From b5e5252dcf433048a3226294d520f9597e7e1db6 Mon Sep 17 00:00:00 2001 From: Onuralp SEZER Date: Sun, 1 Dec 2024 23:10:57 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=E2=9C=A8=20D-FINE=20Object=20Detection?= =?UTF-8?q?=20model=20inference=20and=20training=20added?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Onuralp SEZER --- README.md | 3 +- automation/notebooks-table-data.csv | 1 + ...e-object-detection-on-custom-dataset.ipynb | 4440 +++++++++++++++++ 3 files changed, 4443 insertions(+), 1 deletion(-) create mode 100644 notebooks/train-d-fine-object-detection-on-custom-dataset.ipynb diff --git a/README.md b/README.md index 0c2aa95..6307a12 100644 --- a/README.md +++ b/README.md @@ -70,11 +70,12 @@ Curious to learn more about GPT-4 Vision? [Check out our GPT-4V experiments ๐Ÿงช WARNING: DO NOT EDIT THIS TABLE MANUALLY. IT IS AUTOMATICALLY GENERATED. HEAD OVER TO CONTRIBUTING.MD FOR MORE DETAILS ON HOW TO MAKE CHANGES PROPERLY. --> -## ๐Ÿš€ model tutorials (43 notebooks) +## ๐Ÿš€ model tutorials (44 notebooks) | **notebook** | **open in colab / kaggle / sagemaker studio lab** | **complementary materials** | **repository / paper** | |:------------:|:-------------------------------------------------:|:---------------------------:|:----------------------:| | [Fine-Tune Segment Anything 2.1 (SAM-2.1)](https://github.com/roboflow-ai/notebooks/blob/main/notebooks/fine-tune-sam-2.1.ipynb) | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/roboflow-ai/notebooks/blob/main/notebooks/fine-tune-sam-2.1.ipynb) [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://kaggle.com/kernels/welcome?src=https://github.com/roboflow-ai/notebooks/blob/main/notebooks/fine-tune-sam-2.1.ipynb) | [![Roboflow](https://raw.githubusercontent.com/roboflow-ai/notebooks/main/assets/badges/roboflow-blogpost.svg)](https://blog.roboflow.com/fine-tune-sam-2-1/) | [![GitHub](https://badges.aleen42.com/src/github.svg)](https://github.com/facebookresearch/sam2) | | [Fine-Tune GPT-4o](https://github.com/roboflow-ai/notebooks/blob/main/notebooks/openai-gpt-4o-fine-tuning.ipynb) | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/roboflow-ai/notebooks/blob/main/notebooks/openai-gpt-4o-fine-tuning.ipynb) [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://kaggle.com/kernels/welcome?src=https://github.com/roboflow-ai/notebooks/blob/main/notebooks/openai-gpt-4o-fine-tuning.ipynb) | [![Roboflow](https://raw.githubusercontent.com/roboflow-ai/notebooks/main/assets/badges/roboflow-blogpost.svg)](https://blog.roboflow.com/gpt-4o-object-detection/) [![YouTube](https://badges.aleen42.com/src/youtube.svg)](https://www.youtube.com/watch?v=6Q6TieCBA4E) | | +| [D-FINE Object Detection](https://github.com/roboflow-ai/notebooks/blob/main/notebooks/train-d-fine-object-detection-on-custom-dataset.ipynb) | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/roboflow-ai/notebooks/blob/main/notebooks/train-d-fine-object-detection-on-custom-dataset.ipynb) [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://kaggle.com/kernels/welcome?src=https://github.com/roboflow-ai/notebooks/blob/main/notebooks/train-d-fine-object-detection-on-custom-dataset.ipynb) | | [![GitHub](https://badges.aleen42.com/src/github.svg)](https://github.com/Peterande/D-FINE) [![arXiv](https://img.shields.io/badge/arXiv-2410.13842-b31b1b.svg)](https://arxiv.org/abs/2410.13842)| | [YOLO11 Object Detection](https://github.com/roboflow-ai/notebooks/blob/main/notebooks/train-yolo11-object-detection-on-custom-dataset.ipynb) | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/roboflow-ai/notebooks/blob/main/notebooks/train-yolo11-object-detection-on-custom-dataset.ipynb) [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://kaggle.com/kernels/welcome?src=https://github.com/roboflow-ai/notebooks/blob/main/notebooks/train-yolo11-object-detection-on-custom-dataset.ipynb) | [![Roboflow](https://raw.githubusercontent.com/roboflow-ai/notebooks/main/assets/badges/roboflow-blogpost.svg)](https://blog.roboflow.com/yolov11-how-to-train-custom-data/) [![YouTube](https://badges.aleen42.com/src/youtube.svg)](https://www.youtube.com/watch?v=jE_s4tVgPHA) | [![GitHub](https://badges.aleen42.com/src/github.svg)](https://github.com/ultralytics/ultralytics) | | [YOLO11 Instance Segmentation](https://github.com/roboflow-ai/notebooks/blob/main/notebooks/train-yolo11-instance-segmentation-on-custom-dataset.ipynb) | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/roboflow-ai/notebooks/blob/main/notebooks/train-yolo11-instance-segmentation-on-custom-dataset.ipynb) [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://kaggle.com/kernels/welcome?src=https://github.com/roboflow-ai/notebooks/blob/main/notebooks/train-yolo11-instance-segmentation-on-custom-dataset.ipynb) | [![YouTube](https://badges.aleen42.com/src/youtube.svg)](https://www.youtube.com/watch?v=jE_s4tVgPHA) | [![GitHub](https://badges.aleen42.com/src/github.svg)](https://github.com/ultralytics/ultralytics) | | [Segment Images with SAM2](https://github.com/roboflow-ai/notebooks/blob/main/notebooks/how-to-segment-images-with-sam-2.ipynb) | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/roboflow-ai/notebooks/blob/main/notebooks/how-to-segment-images-with-sam-2.ipynb) [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://kaggle.com/kernels/welcome?src=https://github.com/roboflow-ai/notebooks/blob/main/notebooks/how-to-segment-images-with-sam-2.ipynb) | [![Roboflow](https://raw.githubusercontent.com/roboflow-ai/notebooks/main/assets/badges/roboflow-blogpost.svg)](https://blog.roboflow.com/what-is-segment-anything-2/) [![YouTube](https://badges.aleen42.com/src/youtube.svg)](https://www.youtube.com/live/Dv003fTyO-Y) | [![GitHub](https://badges.aleen42.com/src/github.svg)](https://github.com/facebookresearch/segment-anything-2) [![arXiv](https://img.shields.io/badge/arXiv-2408.00714-b31b1b.svg)](https://arxiv.org/abs/2408.00714)| diff --git a/automation/notebooks-table-data.csv b/automation/notebooks-table-data.csv index 25a06d1..04bc9fa 100644 --- a/automation/notebooks-table-data.csv +++ b/automation/notebooks-table-data.csv @@ -1,6 +1,7 @@ display_name, notebook_name, roboflow_blogpost_path, youtube_video_path, github_repository_path, arxiv_index, should_open_in_sagemaker_labs, readme_section Fine-Tune Segment Anything 2.1 (SAM-2.1), fine-tune-sam-2.1.ipynb, https://blog.roboflow.com/fine-tune-sam-2-1/, , https://github.com/facebookresearch/sam2, , False, models Fine-Tune GPT-4o, openai-gpt-4o-fine-tuning.ipynb, https://blog.roboflow.com/gpt-4o-object-detection/, https://www.youtube.com/watch?v=6Q6TieCBA4E, , , False, models +D-FINE Object Detection, train-d-fine-object-detection-on-custom-dataset.ipynb, , , https://github.com/Peterande/D-FINE, 2410.13842, False, models YOLO11 Object Detection, train-yolo11-object-detection-on-custom-dataset.ipynb, https://blog.roboflow.com/yolov11-how-to-train-custom-data/, https://www.youtube.com/watch?v=jE_s4tVgPHA, https://github.com/ultralytics/ultralytics, , False, models YOLO11 Instance Segmentation, train-yolo11-instance-segmentation-on-custom-dataset.ipynb, , https://www.youtube.com/watch?v=jE_s4tVgPHA, https://github.com/ultralytics/ultralytics, , False, models Football AI, football-ai.ipynb, https://blog.roboflow.com/camera-calibration-sports-computer-vision/, https://youtu.be/aBVGKoNZQUw, https://github.com/roboflow/sports, , False, skills diff --git a/notebooks/train-d-fine-object-detection-on-custom-dataset.ipynb b/notebooks/train-d-fine-object-detection-on-custom-dataset.ipynb new file mode 100644 index 0000000..5fb5cef --- /dev/null +++ b/notebooks/train-d-fine-object-detection-on-custom-dataset.ipynb @@ -0,0 +1,4440 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b203c2ffe0284d6b", + "metadata": { + "id": "b203c2ffe0284d6b" + }, + "source": [ + "[![Roboflow Notebooks](https://media.roboflow.com/notebooks/template/bannertest2-2.png?ik-sdk-version=javascript-1.4.3&updatedAt=1672932710194)](https://github.com/roboflow/notebooks)\n", + "\n", + "# How to Train D-Fine Object Detection on a Custom Dataset\n", + "\n", + "---\n", + "\n", + "[![D-FINE Grpah](https://raw.githubusercontent.com/Peterande/storage/master/figs/stats_padded.png)](https://raw.githubusercontent.com/Peterande/storage/master/figs/stats_padded.png)\n", + "\n", + "\n", + "[![GitHub](https://badges.aleen42.com/src/github.svg)](https://github.com/Peterande/D-FINE/)\n", + "[![arXiv](https://img.shields.io/badge/arXiv-2311.06242-b31b1b.svg)](https://arxiv.org/abs/2410.13842)\n", + "\n", + "\n", + "D-FINE is a powerful real-time object detector that redefines the bounding box regression task in DETRs as Fine-grained Distribution Refinement (FDR) and introduces Global Optimal Localization Self-Distillation (GO-LSD), achieving outstanding performance without introducing additional inference and training costs.\n", + "\n", + "D-FINE is available in 5 different sizes, ranging from `4M` to `62M` parameters, and capable of achieving from `42.8` to `55.8` mAP on the COCO dataset. It is also available in Object365+COCO trained 4 different sizes, ranging from `10M` to `62M` parameters, and capable of achieving from `50.7` to `59.3` mAP on the Object365 finetuned models" + ] + }, + { + "cell_type": "markdown", + "id": "297447a84ad90149", + "metadata": { + "id": "297447a84ad90149" + }, + "source": [ + "## Setup" + ] + }, + { + "cell_type": "markdown", + "id": "803977ea935e03b2", + "metadata": { + "id": "803977ea935e03b2" + }, + "source": [ + "### Configure API keys\n", + "\n", + "To train D-FINE model, you need to provide your Roboflow API key. Follow these steps:\n", + "\n", + "- Go to your [`Roboflow Settings`](https://app.roboflow.com/settings/api) page. Click `Copy`. This will place your private key in the clipboard.\n", + "- In Colab, go to the left pane and click on `Secrets` (๐Ÿ”‘). Store Roboflow API Key under the name `ROBOFLOW_API_KEY`.\n", + "- In your local environment make sure you set `export ROBOFLOW_API_KEY=MY_ROBOFLOW_API_KEY`\n" + ] + }, + { + "cell_type": "markdown", + "id": "8ff4fef615211f8", + "metadata": { + "id": "8ff4fef615211f8" + }, + "source": [ + "### Before you start\n", + "\n", + "Let's make sure that we have access to GPU. We can use `nvidia-smi` command to do that. In case of any problems navigate to `Edit` -> `Notebook settings` -> `Hardware accelerator`, set it to `GPU`, and then click `Save`.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "37798482db25eca6", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-30T18:21:26.748362Z", + "start_time": "2024-11-30T18:21:26.484655Z" + }, + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "37798482db25eca6", + "outputId": "978ac4e9-1480-4aa2-b2e8-d407c0222ecd" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Sun Dec 1 15:37:02 2024 \n", + "+---------------------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 535.104.05 Driver Version: 535.104.05 CUDA Version: 12.2 |\n", + "|-----------------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|=========================================+======================+======================|\n", + "| 0 NVIDIA A100-SXM4-40GB Off | 00000000:00:04.0 Off | 0 |\n", + "| N/A 32C P0 45W / 400W | 2MiB / 40960MiB | 0% Default |\n", + "| | | Disabled |\n", + "+-----------------------------------------+----------------------+----------------------+\n", + " \n", + "+---------------------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=======================================================================================|\n", + "| No running processes found |\n", + "+---------------------------------------------------------------------------------------+\n" + ] + } + ], + "source": [ + "!nvidia-smi" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "814133ddbac32b8e", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-30T18:22:10.162080Z", + "start_time": "2024-11-30T18:22:10.159660Z" + }, + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "814133ddbac32b8e", + "outputId": "5aa93adb-d631-43f2-ba4d-2f9ac4a5286c" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "/content\n" + ] + } + ], + "source": [ + "import os\n", + "HOME = os.getcwd()\n", + "print(HOME)" + ] + }, + { + "cell_type": "markdown", + "id": "cbbb3457b885a940", + "metadata": { + "id": "cbbb3457b885a940" + }, + "source": [ + "## Clone D-FINE Repository\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "f975614144c5c102", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-30T18:32:58.889163Z", + "start_time": "2024-11-30T18:32:57.617092Z" + }, + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "f975614144c5c102", + "outputId": "357c02b9-009c-48ab-f0cc-c559070d9137" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Cloning into 'D-FINE'...\n", + "remote: Enumerating objects: 899, done.\u001b[K\n", + "remote: Counting objects: 100% (608/608), done.\u001b[K\n", + "remote: Compressing objects: 100% (307/307), done.\u001b[K\n", + "remote: Total 899 (delta 359), reused 488 (delta 293), pack-reused 291 (from 1)\u001b[K\n", + "Receiving objects: 100% (899/899), 388.81 KiB | 869.00 KiB/s, done.\n", + "Resolving deltas: 100% (485/485), done.\n" + ] + } + ], + "source": [ + "!git clone https://github.com/Peterande/D-FINE/" + ] + }, + { + "cell_type": "markdown", + "id": "d734f9b08166783e", + "metadata": { + "id": "d734f9b08166783e" + }, + "source": [ + "## Inference with model pre-trained on COCO dataset" + ] + }, + { + "cell_type": "markdown", + "id": "ce9ead8f191872e0", + "metadata": { + "id": "ce9ead8f191872e0" + }, + "source": [ + "### Download example image and large model weight file" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "453a827f-7eb7-4905-9b01-c4202fb1900f", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-30T18:36:02.349658Z", + "start_time": "2024-11-30T18:36:01.587779Z" + }, + "id": "453a827f-7eb7-4905-9b01-c4202fb1900f" + }, + "outputs": [], + "source": [ + "!wget https://media.roboflow.com/notebooks/examples/dog.jpeg\n", + "!wget -O dfine_l_coco.pth https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_l_coco.pth" + ] + }, + { + "cell_type": "markdown", + "id": "0ba0b3f5-c6fe-4ef2-a054-40554a6b9c68", + "metadata": { + "id": "0ba0b3f5-c6fe-4ef2-a054-40554a6b9c68" + }, + "source": [ + "### Install D-FINE Package requirements" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "180d524494279206", + "metadata": { + "id": "180d524494279206" + }, + "outputs": [], + "source": [ + "%pip install torch torchvision supervision\n", + "%pip install -r D-FINE/requirements.txt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee6ea203c389d03e", + "metadata": { + "id": "ee6ea203c389d03e" + }, + "outputs": [], + "source": [ + "!python D-FINE/tools/inference/torch_inf.py -c D-FINE/configs/dfine/dfine_hgnetv2_l_coco.yml -r dfine_l_coco.pth --input dog.jpeg --device cuda:0" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9b40bb75829434a3", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-30T19:05:42.386269Z", + "start_time": "2024-11-30T19:05:42.376676Z" + }, + "id": "9b40bb75829434a3", + "outputId": "187a650b-27e8-4649-a6a5-ada39fdc2b95" + }, + "outputs": [ + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "" + ] + }, + "execution_count": 28, + "metadata": { + "image/jpeg": { + "width": 600 + } + }, + "output_type": "execute_result" + } + ], + "source": [ + "from IPython.display import Image as IPyImage\n", + "IPyImage(filename=f'{HOME}/torch_results.jpg', width=600)" + ] + }, + { + "cell_type": "markdown", + "id": "4f699c6d-6ac7-459e-baab-828523421e41", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-30T19:00:29.526353Z", + "start_time": "2024-11-30T19:00:29.522847Z" + }, + "id": "4f699c6d-6ac7-459e-baab-828523421e41" + }, + "source": [ + "### Inference via Pytorch and Visualize with Supervision" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "b3afdb63-ee02-4352-a69d-c8c6182f9998", + "metadata": { + "id": "b3afdb63-ee02-4352-a69d-c8c6182f9998" + }, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "from pathlib import Path\n", + "from typing import List, Optional\n", + "import supervision as sv\n", + "import torch\n", + "import torch.nn as nn\n", + "import torchvision.transforms as T\n", + "from PIL import Image\n", + "from tqdm import tqdm\n", + "import cv2\n", + "sys.path.append(os.path.abspath(\"./D-FINE/\"))\n", + "from src.core import YAMLConfig" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2f8a17ef-078e-4b1a-9187-57ab85116c64", + "metadata": { + "id": "2f8a17ef-078e-4b1a-9187-57ab85116c64" + }, + "outputs": [], + "source": [ + "MSCOCO_NAMELIST = (\n", + "'person',\n", + "'bicycle',\n", + "'car',\n", + "'motorcycle',\n", + "'airplane',\n", + "'bus',\n", + "'train',\n", + "'truck',\n", + "'boat',\n", + "'traffic light',\n", + "'fire hydrant',\n", + "'stop sign',\n", + "'parking meter',\n", + "'bench',\n", + "'bird',\n", + "'cat',\n", + "'dog',\n", + "'horse',\n", + "'sheep',\n", + "'cow',\n", + "'elephant',\n", + "'bear',\n", + "'zebra',\n", + "'giraffe',\n", + "'backpack',\n", + "'umbrella',\n", + "'handbag',\n", + "'tie',\n", + "'suitcase',\n", + "'frisbee',\n", + "'skis',\n", + "'snowboard',\n", + "'sports ball',\n", + "'kite',\n", + "'baseball bat',\n", + "'baseball glove',\n", + "'skateboard',\n", + "'surfboard',\n", + "'tennis racket',\n", + "'bottle',\n", + "'wine glass',\n", + "'cup',\n", + "'fork',\n", + "'knife',\n", + "'spoon',\n", + "'bowl',\n", + "'banana',\n", + "'apple',\n", + "'sandwich',\n", + "'orange',\n", + "'broccoli',\n", + "'carrot',\n", + "'hot dog',\n", + "'pizza',\n", + "'donut',\n", + "'cake',\n", + "'chair',\n", + "'couch',\n", + "'potted plant',\n", + "'bed',\n", + "'dining table',\n", + "'toilet',\n", + "'tv',\n", + "'laptop',\n", + "'mouse',\n", + "'remote',\n", + "'keyboard',\n", + "'cell phone',\n", + "'microwave',\n", + "'oven',\n", + "'toaster',\n", + "'sink',\n", + "'refrigerator',\n", + "'book',\n", + "'clock',\n", + "'vase',\n", + "'scissors',\n", + "'teddy bear',\n", + "'hair drier',\n", + "'toothbrush'\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bbef580aa48e318", + "metadata": { + "id": "bbef580aa48e318" + }, + "outputs": [], + "source": [ + "MODEL_FILENAME = \"dfine_l_coco.pth\"\n", + "YAML_CONFIG_PATH = \"./D-FINE/configs/dfine/dfine_hgnetv2_l_coco.yml\"\n", + "INPUT_IMAGE = \"dog.jpeg\"\n", + "CONFIDENCE_THRESHOLD = 0.4\n", + "DEVICE = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", + "BOX_ANNOTATOR = sv.BoxAnnotator()\n", + "LABEL_ANNOTATOR = sv.LabelAnnotator()\n", + "TRANSFORMS = T.Compose(\n", + " [T.Resize((640,640)), T.ToTensor()]\n", + ")\n", + "\n", + "\n", + "cfg = YAMLConfig(\n", + " YAML_CONFIG_PATH, resume=MODEL_FILENAME\n", + ")\n", + "\n", + "if \"HGNetv2\" in cfg.yaml_cfg:\n", + " cfg.yaml_cfg[\"HGNetv2\"][\"pretrained\"] = False\n", + "checkpoint = torch.load(MODEL_FILENAME, map_location=DEVICE)\n", + "if \"ema\" in checkpoint:\n", + " state = checkpoint[\"ema\"][\"module\"]\n", + "else:\n", + " state = checkpoint[\"model\"]\n", + "\n", + "\n", + "cfg.model.load_state_dict(state)\n", + "\n", + "class Model(nn.Module):\n", + " def __init__(self):\n", + " super().__init__()\n", + " self.model = cfg.model.deploy()\n", + " self.postprocessor = cfg.postprocessor.deploy()\n", + "\n", + " def forward(self, images, orig_target_sizes):\n", + " outputs = self.model(images)\n", + " outputs = self.postprocessor(outputs, orig_target_sizes)\n", + " return outputs\n", + "\n", + "model = Model().to(DEVICE)\n", + "\n", + "im_pil = Image.open(INPUT_IMAGE).convert('RGB')\n", + "w, h = im_pil.size\n", + "orig_size = torch.tensor([[w, h]]).to(DEVICE)\n", + "im_data = TRANSFORMS(im_pil).unsqueeze(0).to(DEVICE)\n", + "output = model(im_data, orig_size)\n", + "labels, boxes, scores = output\n", + "class_id = labels.detach().cpu().numpy().astype(int)\n", + "xyxy = boxes.detach().cpu().numpy()\n", + "confidence = scores.detach().cpu().numpy()\n", + "\n", + "detections = sv.Detections(\n", + " xyxy=xyxy[0],\n", + " confidence=confidence[0],\n", + " class_id=class_id[0],\n", + ")\n", + "\n", + "\n", + "detections = detections[detections.confidence > CONFIDENCE_THRESHOLD].with_nms()\n", + "\n", + "class_names = []\n", + "for idx in detections.class_id:\n", + " class_names.append(MSCOCO_NAMELIST[idx])\n", + "\n", + "labels = [\n", + " f\"{class_name} {confidence:.2f}\"\n", + " for class_name, confidence\n", + " in zip(class_names, detections.confidence)\n", + "]\n", + "\n", + "\n", + "annotated_image = BOX_ANNOTATOR.annotate(scene=im_pil,detections=detections)\n", + "annotated_image = LABEL_ANNOTATOR.annotate(scene=annotated_image,detections=detections,labels=labels)\n", + "\n", + "\n", + "detections = detections[detections.confidence > CONFIDENCE_THRESHOLD].with_nms()\n", + "\n", + "annotated_image = BOX_ANNOTATOR.annotate(scene=im_pil,detections=detections)\n", + "annotated_image = LABEL_ANNOTATOR.annotate(scene=annotated_image,detections=detections,labels=labels)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c5533d75-e5bc-46ef-b0ee-1363b03402d3", + "metadata": { + "id": "c5533d75-e5bc-46ef-b0ee-1363b03402d3", + "outputId": "2a17f601-6ea4-4ce1-c67f-558de299c88c" + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sv.plot_image(annotated_image)" + ] + }, + { + "cell_type": "markdown", + "id": "8a60a19d-fdd2-4b70-9017-5591bbd54183", + "metadata": { + "id": "8a60a19d-fdd2-4b70-9017-5591bbd54183" + }, + "source": [ + "# Training D-FINE on custom dataset\n", + "\n", + "In this tutorial, we will use one of the [datasets](https://universe.roboflow.com/roboflow-100/circuit-elements) available on [Roboflow Universe](https://universe.roboflow.com/). When downloading, make sure to select the `coco` export format.\n", + "\n", + "## About Dataset\n", + "\n", + "It is RF-100 Circuit dataset\n", + "\n", + "* Class Number: 46\n", + "* Train Image: 672\n", + "* Validation Image: 64\n", + "* Test Image : 36\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0e847361-c10f-4229-bc7a-a0af1394e76e", + "metadata": { + "id": "0e847361-c10f-4229-bc7a-a0af1394e76e" + }, + "outputs": [], + "source": [ + "%pip install roboflow" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b29c4368-f206-460b-800c-c1b966dcddd2", + "metadata": { + "id": "b29c4368-f206-460b-800c-c1b966dcddd2" + }, + "outputs": [], + "source": [ + "!mkdir -p {HOME}/datasets\n", + "%cd {HOME}/datasets" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "31bef82b-502f-4bb4-b30e-8ad2e5e0fc0a", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "31bef82b-502f-4bb4-b30e-8ad2e5e0fc0a", + "outputId": "0049b4bb-7a95-4915-9cd5-1caa4db6853d" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "loading Roboflow workspace...\n", + "loading Roboflow project...\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Downloading Dataset Version Zip in circuit-elements-3 to coco:: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 84888/84888 [00:06<00:00, 14065.44it/s]" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "\n", + "Extracting Dataset Version Zip to circuit-elements-3 in coco:: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 780/780 [00:00<00:00, 3108.44it/s]" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "/content\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "\n" + ] + } + ], + "source": [ + "from roboflow import Roboflow\n", + "from google.colab import userdata\n", + "ROBOFLOW_API_KEY = userdata.get('ROBOFLOW_API_KEY')\n", + "\n", + "rf = Roboflow(api_key=ROBOFLOW_API_KEY)\n", + "project = rf.workspace(\"roboflow-100\").project(\"circuit-elements\")\n", + "version = project.version(3)\n", + "dataset = version.download(\"coco\")\n", + "\n", + "%cd .." + ] + }, + { + "cell_type": "markdown", + "id": "7bb6cdee-f9ba-4933-b967-b2812233eb71", + "metadata": { + "id": "7bb6cdee-f9ba-4933-b967-b2812233eb71" + }, + "source": [ + "## Training on Custom Dataset" + ] + }, + { + "cell_type": "markdown", + "id": "b0259955-55c5-49e7-a157-cc67aa6a1927", + "metadata": { + "id": "b0259955-55c5-49e7-a157-cc67aa6a1927" + }, + "source": [ + "## Configuration File Modifications\n", + "\n", + "This code modifies two YAML configuration files for a machine learning project:\n", + "\n", + "### 1. Custom Detection Configuration\n", + "- Opens `custom_detection.yml` and updates:\n", + " - Dataset paths to point to circuit-elements-3 dataset\n", + " - Changes training data path from `/data/yourdataset/train` to dataset path\n", + " - Updates validation data path from `/data/yourdataset/val` to dataset path\n", + " - Sets number of classes from 777 to 46 (based on dataset)\n", + " - Reduces number of workers from 4 to 2\n", + "\n", + "### 2. Data Loader Configuration\n", + "- Opens `dataloader.yml` and modifies:\n", + " - Reduces total batch size from 32 to 8\n", + " - Reduces another batch size from 64 to 16\n", + " - Decreases number of workers from 4 to 1\n", + "\n", + "The changes appear to optimize the configuration for a smaller compute environment by:\n", + "- Using local paths instead of network paths\n", + "- Reducing batch sizes\n", + "- Decreasing parallel workers\n", + "- Updating dataset-specific parameters\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "91b4bada-36bb-47b0-9098-4c1e7e3ba5a0", + "metadata": { + "id": "91b4bada-36bb-47b0-9098-4c1e7e3ba5a0" + }, + "outputs": [], + "source": [ + "import os\n", + "\n", + "custom_detection_config = os.path.join(HOME, 'D-FINE/configs/dataset/custom_detection.yml')\n", + "\n", + "with open(custom_detection_config, 'r') as file:\n", + " data = file.read()\n", + "\n", + "\n", + "data = data.replace('/data/yourdataset/train/train.json', os.path.join(HOME, 'datasets/circuit-elements-3/train/_annotations.coco.json'))\n", + "data = data.replace('/data/yourdataset/val/val.json', os.path.join(HOME, 'datasets/circuit-elements-3/valid/_annotations.coco.json'))\n", + "data = data.replace('/data/yourdataset/train', os.path.join(HOME, 'datasets/circuit-elements-3/train'))\n", + "data = data.replace('/data/yourdataset/val', os.path.join(HOME, 'datasets/circuit-elements-3/valid'))\n", + "data = data.replace('num_classes: 777 # your dataset classes', 'num_classes: 46') # class number coming from the dataset\n", + "data = data.replace('num_workers: 4', 'num_workers: 2')\n", + "\n", + "\n", + "with open(custom_detection_config, 'w') as file:\n", + " file.write(data)" + ] + }, + { + "cell_type": "code", + "source": [ + "data_loader_path = os.path.join(HOME, 'D-FINE/configs/dfine/include/dataloader.yml')\n", + "\n", + "with open(data_loader_path, 'r') as file:\n", + " data = file.read()\n", + "\n", + "data = data.replace('total_batch_size: 32 #', 'total_batch_size: 8 #')\n", + "data = data.replace('total_batch_size: 64', 'total_batch_size: 16')\n", + "data = data.replace('num_workers: 4', 'num_workers: 1')\n", + "\n", + "\n", + "with open(data_loader_path, 'w') as file:\n", + " file.write(data)" + ], + "metadata": { + "id": "yyK1U0WkyukH" + }, + "id": "yyK1U0WkyukH", + "execution_count": 12, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Let's do a final check of our custom detection dataset configurations" + ], + "metadata": { + "id": "f8eySozMxH2O" + }, + "id": "f8eySozMxH2O" + }, + { + "cell_type": "code", + "source": [ + "!cat /content/D-FINE/configs/dataset/custom_detection.yml" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "b0yM9ZydwkqM", + "outputId": "588a89dd-236d-4f55-ade9-a6640087bbdd" + }, + "id": "b0yM9ZydwkqM", + "execution_count": 33, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "task: detection\n", + "\n", + "evaluator:\n", + " type: CocoEvaluator\n", + " iou_types: ['bbox', ]\n", + "\n", + "num_classes: 46\n", + "remap_mscoco_category: False\n", + "\n", + "train_dataloader:\n", + " type: DataLoader\n", + " dataset:\n", + " type: CocoDetection\n", + " img_folder: /content/datasets/circuit-elements-3/train\n", + " ann_file: /content/datasets/circuit-elements-3/train/_annotations.coco.json\n", + " return_masks: False\n", + " transforms:\n", + " type: Compose\n", + " ops: ~\n", + " shuffle: True\n", + " num_workers: 2\n", + " drop_last: True\n", + " collate_fn:\n", + " type: BatchImageCollateFunction\n", + "\n", + "\n", + "val_dataloader:\n", + " type: DataLoader\n", + " dataset:\n", + " type: CocoDetection\n", + " img_folder: /content/datasets/circuit-elements-3/valid\n", + " ann_file: /content/datasets/circuit-elements-3/valid/_annotations.coco.json\n", + " return_masks: False\n", + " transforms:\n", + " type: Compose\n", + " ops: ~\n", + " shuffle: False\n", + " num_workers: 2\n", + " drop_last: False\n", + " collate_fn:\n", + " type: BatchImageCollateFunction\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "!cat /content/D-FINE/configs/dfine/include/dataloader.yml" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "JQ0H1TAO0AmF", + "outputId": "e437ba30-83ca-4d3b-d091-2c7c1b3640c0" + }, + "id": "JQ0H1TAO0AmF", + "execution_count": 32, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "train_dataloader:\n", + " dataset:\n", + " transforms:\n", + " ops:\n", + " - {type: RandomPhotometricDistort, p: 0.5}\n", + " - {type: RandomZoomOut, fill: 0}\n", + " - {type: RandomIoUCrop, p: 0.8}\n", + " - {type: SanitizeBoundingBoxes, min_size: 1}\n", + " - {type: RandomHorizontalFlip}\n", + " - {type: Resize, size: [640, 640], }\n", + " - {type: SanitizeBoundingBoxes, min_size: 1}\n", + " - {type: ConvertPILImage, dtype: 'float32', scale: True}\n", + " - {type: ConvertBoxes, fmt: 'cxcywh', normalize: True}\n", + " policy:\n", + " name: stop_epoch\n", + " epoch: 72 # epoch in [71, ~) stop `ops`\n", + " ops: ['RandomPhotometricDistort', 'RandomZoomOut', 'RandomIoUCrop']\n", + "\n", + " collate_fn:\n", + " type: BatchImageCollateFunction\n", + " base_size: 640\n", + " base_size_repeat: 3\n", + " stop_epoch: 72 # epoch in [72, ~) stop `multiscales`\n", + "\n", + " shuffle: True\n", + " total_batch_size: 8 # total batch size equals to 32 (4 * 8)\n", + " num_workers: 1\n", + "\n", + "\n", + "val_dataloader:\n", + " dataset:\n", + " transforms:\n", + " ops:\n", + " - {type: Resize, size: [640, 640], }\n", + " - {type: ConvertPILImage, dtype: 'float32', scale: True}\n", + " shuffle: False\n", + " total_batch_size: 16\n", + " num_workers: 1\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Load the TensorBoard notebook extension\n", + "%load_ext tensorboard" + ], + "metadata": { + "id": "wMk4_DxXRh4a" + }, + "id": "wMk4_DxXRh4a", + "execution_count": 14, + "outputs": [] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "4aceba72-9809-41e8-96b6-636dc7c44779", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "4aceba72-9809-41e8-96b6-636dc7c44779", + "outputId": "4d3e1ba5-f528-4b3f-f425-702c2a5db98a" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "2024-12-01 15:40:16.548160: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n", + "2024-12-01 15:40:16.565327: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:485] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", + "2024-12-01 15:40:16.586433: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:8454] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", + "2024-12-01 15:40:16.592798: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1452] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n", + "2024-12-01 15:40:16.607674: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "To enable the following instructions: AVX2 AVX512F AVX512_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", + "2024-12-01 15:40:17.734048: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n", + "Initialized distributed mode...\n", + "cfg: {'task': 'detection', '_model': None, '_postprocessor': None, '_criterion': None, '_optimizer': None, '_lr_scheduler': None, '_lr_warmup_scheduler': None, '_train_dataloader': None, '_val_dataloader': None, '_ema': None, '_scaler': None, '_train_dataset': None, '_val_dataset': None, '_collate_fn': None, '_evaluator': None, '_writer': None, 'num_workers': 0, 'batch_size': None, '_train_batch_size': None, '_val_batch_size': None, '_train_shuffle': None, '_val_shuffle': None, 'resume': None, 'tuning': None, 'epoches': 80, 'last_epoch': -1, 'use_amp': True, 'use_ema': True, 'ema_decay': 0.9999, 'ema_warmups': 2000, 'sync_bn': True, 'clip_max_norm': 0.1, 'find_unused_parameters': False, 'seed': 0, 'print_freq': 100, 'checkpoint_freq': 12, 'output_dir': './output/dfine_hgnetv2_l_custom', 'summary_dir': None, 'device': '', 'yaml_cfg': {'task': 'detection', 'evaluator': {'type': 'CocoEvaluator', 'iou_types': ['bbox']}, 'num_classes': 46, 'remap_mscoco_category': False, 'train_dataloader': {'type': 'DataLoader', 'dataset': {'type': 'CocoDetection', 'img_folder': '/content/datasets/circuit-elements-3/train', 'ann_file': '/content/datasets/circuit-elements-3/train/_annotations.coco.json', 'return_masks': False, 'transforms': {'type': 'Compose', 'ops': [{'type': 'RandomPhotometricDistort', 'p': 0.5}, {'type': 'RandomZoomOut', 'fill': 0}, {'type': 'RandomIoUCrop', 'p': 0.8}, {'type': 'SanitizeBoundingBoxes', 'min_size': 1}, {'type': 'RandomHorizontalFlip'}, {'type': 'Resize', 'size': [640, 640]}, {'type': 'SanitizeBoundingBoxes', 'min_size': 1}, {'type': 'ConvertPILImage', 'dtype': 'float32', 'scale': True}, {'type': 'ConvertBoxes', 'fmt': 'cxcywh', 'normalize': True}], 'policy': {'name': 'stop_epoch', 'epoch': 72, 'ops': ['RandomPhotometricDistort', 'RandomZoomOut', 'RandomIoUCrop']}}}, 'shuffle': True, 'num_workers': 1, 'drop_last': True, 'collate_fn': {'type': 'BatchImageCollateFunction', 'base_size': 640, 'base_size_repeat': 4, 'stop_epoch': 72, 'ema_restart_decay': 0.9999}, 'total_batch_size': 8}, 'val_dataloader': {'type': 'DataLoader', 'dataset': {'type': 'CocoDetection', 'img_folder': '/content/datasets/circuit-elements-3/valid', 'ann_file': '/content/datasets/circuit-elements-3/valid/_annotations.coco.json', 'return_masks': False, 'transforms': {'type': 'Compose', 'ops': [{'type': 'Resize', 'size': [640, 640]}, {'type': 'ConvertPILImage', 'dtype': 'float32', 'scale': True}]}}, 'shuffle': False, 'num_workers': 1, 'drop_last': False, 'collate_fn': {'type': 'BatchImageCollateFunction'}, 'total_batch_size': 16}, 'print_freq': 100, 'output_dir': './output/dfine_hgnetv2_l_custom', 'checkpoint_freq': 12, 'sync_bn': True, 'find_unused_parameters': False, 'use_amp': True, 'scaler': {'type': 'GradScaler', 'enabled': True}, 'use_ema': True, 'ema': {'type': 'ModelEMA', 'decay': 0.9999, 'warmups': 1000, 'start': 0}, 'epoches': 80, 'clip_max_norm': 0.1, 'optimizer': {'type': 'AdamW', 'params': [{'params': '^(?=.*backbone)(?!.*norm|bn).*$', 'lr': 1.25e-05}, {'params': '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$', 'weight_decay': 0.0}], 'lr': 0.00025, 'betas': [0.9, 0.999], 'weight_decay': 0.000125}, 'lr_scheduler': {'type': 'MultiStepLR', 'milestones': [500], 'gamma': 0.1}, 'lr_warmup_scheduler': {'type': 'LinearWarmup', 'warmup_duration': 500}, 'model': 'DFINE', 'criterion': 'DFINECriterion', 'postprocessor': 'DFINEPostProcessor', 'use_focal_loss': True, 'eval_spatial_size': [640, 640], 'DFINE': {'backbone': 'HGNetv2', 'encoder': 'HybridEncoder', 'decoder': 'DFINETransformer'}, 'HGNetv2': {'pretrained': True, 'local_model_dir': 'weight/hgnetv2/', 'name': 'B4', 'return_idx': [1, 2, 3], 'freeze_stem_only': True, 'freeze_at': 0, 'freeze_norm': True}, 'HybridEncoder': {'in_channels': [512, 1024, 2048], 'feat_strides': [8, 16, 32], 'hidden_dim': 256, 'use_encoder_idx': [2], 'num_encoder_layers': 1, 'nhead': 8, 'dim_feedforward': 1024, 'dropout': 0.0, 'enc_act': 'gelu', 'expansion': 1.0, 'depth_mult': 1, 'act': 'silu'}, 'DFINETransformer': {'feat_channels': [256, 256, 256], 'feat_strides': [8, 16, 32], 'hidden_dim': 256, 'num_levels': 3, 'num_layers': 6, 'eval_idx': -1, 'num_queries': 300, 'num_denoising': 100, 'label_noise_ratio': 0.5, 'box_noise_scale': 1.0, 'reg_max': 32, 'reg_scale': 4, 'layer_scale': 1, 'num_points': [3, 6, 3], 'cross_attn_method': 'default', 'query_select_method': 'default'}, 'DFINEPostProcessor': {'num_top_queries': 300}, 'DFINECriterion': {'weight_dict': {'loss_vfl': 1, 'loss_bbox': 5, 'loss_giou': 2, 'loss_fgl': 0.15, 'loss_ddf': 1.5}, 'losses': ['vfl', 'boxes', 'local'], 'alpha': 0.75, 'gamma': 2.0, 'reg_max': 32, 'matcher': {'type': 'HungarianMatcher', 'weight_dict': {'cost_class': 2, 'cost_bbox': 5, 'cost_giou': 2}, 'alpha': 0.25, 'gamma': 2.0}}, '__include__': ['../../dataset/custom_detection.yml', '../../runtime.yml', '../include/dataloader.yml', '../include/optimizer.yml', '../include/dfine_hgnetv2.yml'], 'config': 'D-FINE/configs/dfine/custom/dfine_hgnetv2_l_custom.yml', 'seed': 0, 'test_only': False, 'print_method': 'builtin', 'print_rank': 0}}\n", + "\u001b[92mIf the pretrained HGNetV2 can't be downloaded automatically. Please check your network connection.\u001b[0m\n", + "\u001b[92mPlease check your network connection. Or download the model manually from \u001b[0mhttps://github.com/Peterande/storage/releases/download/dfinev1.0/PPHGNetV2_B4_stage1.pth\u001b[92m to \u001b[0mweight/hgnetv2/.\u001b[0m\n", + "Downloading: \"https://github.com/Peterande/storage/releases/download/dfinev1.0/PPHGNetV2_B4_stage1.pth\" to weight/hgnetv2/PPHGNetV2_B4_stage1.pth\n", + "100% 52.0M/52.0M [00:00<00:00, 358MB/s]\n", + "Loaded stage1 B4 HGNetV2 from URL.\n", + "/content/D-FINE/src/core/workspace.py:180: FutureWarning: `torch.cuda.amp.GradScaler(args...)` is deprecated. Please use `torch.amp.GradScaler('cuda', args...)` instead.\n", + " return module(**module_kwargs)\n", + "Initial lr: [1.25e-05, 0.00025, 0.00025]\n", + "building train_dataloader with batch_size=8...\n", + "building val_dataloader with batch_size=16...\n", + "\n", + "------------------------------------- Calculate Flops Results -------------------------------------\n", + "Notations:\n", + "number of parameters (Params), number of multiply-accumulate operations(MACs),\n", + "number of floating-point operations (FLOPs), floating-point operations per second (FLOPS),\n", + "fwd FLOPs (model forward propagation FLOPs), bwd FLOPs (model backward propagation FLOPs),\n", + "default model backpropagation takes 2.00 times as much computation as forward propagation.\n", + "\n", + "Total Training Params: 30.67 M \n", + "fwd MACs: 45.3752 GMACs\n", + "fwd FLOPs: 90.883 GFLOPS\n", + "fwd+bwd MACs: 136.125 GMACs\n", + "fwd+bwd FLOPs: 272.649 GFLOPS\n", + "---------------------------------------------------------------------------------------------------\n", + "{'Model FLOPs:90.883 GFLOPS MACs:45.3752 GMACs Params:30698015'}\n", + "------------------------------------------Start training-------------------------------------------\n", + "Epoch: [0] [ 0/84] eta: 0:05:58 lr: 0.000000 loss: 60.5611 (60.5611) loss_vfl: 0.0102 (0.0102) loss_bbox: 1.8449 (1.8449) loss_giou: 3.1346 (3.1346) loss_fgl: 0.0343 (0.0343) loss_vfl_aux_0: 0.0094 (0.0094) loss_bbox_aux_0: 1.8449 (1.8449) loss_giou_aux_0: 3.1346 (3.1346) loss_fgl_aux_0: 0.0343 (0.0343) loss_ddf_aux_0: 0.0000 (0.0000) loss_vfl_aux_1: 0.0106 (0.0106) loss_bbox_aux_1: 1.8449 (1.8449) loss_giou_aux_1: 3.1346 (3.1346) loss_fgl_aux_1: 0.0343 (0.0343) loss_ddf_aux_1: 0.0000 (0.0000) loss_vfl_aux_2: 0.0108 (0.0108) loss_bbox_aux_2: 1.8449 (1.8449) loss_giou_aux_2: 3.1346 (3.1346) loss_fgl_aux_2: 0.0343 (0.0343) loss_ddf_aux_2: 0.0000 (0.0000) loss_vfl_aux_3: 0.0091 (0.0091) loss_bbox_aux_3: 1.8449 (1.8449) loss_giou_aux_3: 3.1346 (3.1346) loss_fgl_aux_3: 0.0343 (0.0343) loss_ddf_aux_3: 0.0000 (0.0000) loss_vfl_aux_4: 0.0102 (0.0102) loss_bbox_aux_4: 1.8449 (1.8449) loss_giou_aux_4: 3.1346 (3.1346) loss_fgl_aux_4: 0.0343 (0.0343) loss_ddf_aux_4: 0.0000 (0.0000) loss_vfl_pre: 0.0094 (0.0094) loss_bbox_pre: 1.8449 (1.8449) loss_giou_pre: 3.1346 (3.1346) loss_vfl_enc_0: 0.0080 (0.0080) loss_bbox_enc_0: 1.8449 (1.8449) loss_giou_enc_0: 3.1346 (3.1346) loss_vfl_dn_0: 0.7197 (0.7197) loss_bbox_dn_0: 0.0544 (0.0544) loss_giou_dn_0: 1.3859 (1.3859) loss_fgl_dn_0: 0.8090 (0.8090) loss_ddf_dn_0: 0.0000 (0.0000) loss_vfl_dn_1: 0.8516 (0.8516) loss_bbox_dn_1: 0.0544 (0.0544) loss_giou_dn_1: 1.3859 (1.3859) loss_fgl_dn_1: 0.8090 (0.8090) loss_ddf_dn_1: 0.0000 (0.0000) loss_vfl_dn_2: 0.8496 (0.8496) loss_bbox_dn_2: 0.0544 (0.0544) loss_giou_dn_2: 1.3859 (1.3859) loss_fgl_dn_2: 0.8090 (0.8090) loss_ddf_dn_2: 0.0000 (0.0000) loss_vfl_dn_3: 0.8350 (0.8350) loss_bbox_dn_3: 0.0544 (0.0544) loss_giou_dn_3: 1.3859 (1.3859) loss_fgl_dn_3: 0.8090 (0.8090) loss_ddf_dn_3: 0.0000 (0.0000) loss_vfl_dn_4: 0.7393 (0.7393) loss_bbox_dn_4: 0.0544 (0.0544) loss_giou_dn_4: 1.3859 (1.3859) loss_fgl_dn_4: 0.8090 (0.8090) loss_ddf_dn_4: 0.0000 (0.0000) loss_vfl_dn_5: 0.7905 (0.7905) loss_bbox_dn_5: 0.0544 (0.0544) loss_giou_dn_5: 1.3859 (1.3859) loss_fgl_dn_5: 0.8090 (0.8090) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.7197 (0.7197) loss_bbox_dn_pre: 0.0544 (0.0544) loss_giou_dn_pre: 1.3859 (1.3859) time: 4.2679 data: 0.7943 max mem: 24867\n", + "Epoch: [0] [83/84] eta: 0:00:01 lr: 0.000002 loss: 54.1478 (59.2502) loss_vfl: 0.0312 (0.0261) loss_bbox: 1.4277 (1.8090) loss_giou: 2.9221 (3.1084) loss_fgl: 0.0668 (0.0544) loss_vfl_aux_0: 0.0307 (0.0245) loss_bbox_aux_0: 1.4725 (1.8316) loss_giou_aux_0: 2.9024 (3.0921) loss_fgl_aux_0: 0.0681 (0.0546) loss_ddf_aux_0: 0.0054 (0.0020) loss_vfl_aux_1: 0.0322 (0.0263) loss_bbox_aux_1: 1.4580 (1.8255) loss_giou_aux_1: 2.9144 (3.0966) loss_fgl_aux_1: 0.0679 (0.0545) loss_ddf_aux_1: 0.0032 (0.0011) loss_vfl_aux_2: 0.0323 (0.0263) loss_bbox_aux_2: 1.4471 (1.8205) loss_giou_aux_2: 2.9205 (3.1003) loss_fgl_aux_2: 0.0675 (0.0544) loss_ddf_aux_2: 0.0015 (0.0005) loss_vfl_aux_3: 0.0336 (0.0253) loss_bbox_aux_3: 1.4365 (1.8148) loss_giou_aux_3: 2.9267 (3.1044) loss_fgl_aux_3: 0.0671 (0.0543) loss_ddf_aux_3: 0.0006 (0.0002) loss_vfl_aux_4: 0.0329 (0.0263) loss_bbox_aux_4: 1.4308 (1.8115) loss_giou_aux_4: 2.9244 (3.1067) loss_fgl_aux_4: 0.0669 (0.0544) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.0305 (0.0245) loss_bbox_pre: 1.4809 (1.8351) loss_giou_pre: 2.8950 (3.0896) loss_vfl_enc_0: 0.0328 (0.0252) loss_bbox_enc_0: 1.4986 (1.8422) loss_giou_enc_0: 2.8794 (3.0845) loss_vfl_dn_0: 0.4773 (0.6095) loss_bbox_dn_0: 0.0606 (0.0673) loss_giou_dn_0: 1.3910 (1.3901) loss_fgl_dn_0: 0.7979 (0.8031) loss_ddf_dn_0: 0.0280 (0.0086) loss_vfl_dn_1: 0.4897 (0.6653) loss_bbox_dn_1: 0.0601 (0.0670) loss_giou_dn_1: 1.3925 (1.3909) loss_fgl_dn_1: 0.7886 (0.7994) loss_ddf_dn_1: 0.0157 (0.0050) loss_vfl_dn_2: 0.4502 (0.6346) loss_bbox_dn_2: 0.0598 (0.0668) loss_giou_dn_2: 1.3935 (1.3914) loss_fgl_dn_2: 0.7811 (0.7964) loss_ddf_dn_2: 0.0069 (0.0022) loss_vfl_dn_3: 0.4724 (0.6271) loss_bbox_dn_3: 0.0597 (0.0667) loss_giou_dn_3: 1.3935 (1.3920) loss_fgl_dn_3: 0.7774 (0.7943) loss_ddf_dn_3: 0.0029 (0.0010) loss_vfl_dn_4: 0.4780 (0.5993) loss_bbox_dn_4: 0.0601 (0.0666) loss_giou_dn_4: 1.3940 (1.3922) loss_fgl_dn_4: 0.7760 (0.7928) loss_ddf_dn_4: 0.0007 (0.0004) loss_vfl_dn_5: 0.4624 (0.5945) loss_bbox_dn_5: 0.0606 (0.0665) loss_giou_dn_5: 1.3935 (1.3923) loss_fgl_dn_5: 0.7752 (0.7919) loss_ddf_dn_5: -0.0000 (0.0000) loss_vfl_dn_pre: 0.4780 (0.6100) loss_bbox_dn_pre: 0.0610 (0.0675) loss_giou_dn_pre: 1.3902 (1.3898) time: 1.1291 data: 0.0166 max mem: 28434\n", + "Epoch: [0] Total time: 0:01:49 (1.3023 s / it)\n", + "Averaged stats: lr: 0.000002 loss: 54.1478 (59.2502) loss_vfl: 0.0312 (0.0261) loss_bbox: 1.4277 (1.8090) loss_giou: 2.9221 (3.1084) loss_fgl: 0.0668 (0.0544) loss_vfl_aux_0: 0.0307 (0.0245) loss_bbox_aux_0: 1.4725 (1.8316) loss_giou_aux_0: 2.9024 (3.0921) loss_fgl_aux_0: 0.0681 (0.0546) loss_ddf_aux_0: 0.0054 (0.0020) loss_vfl_aux_1: 0.0322 (0.0263) loss_bbox_aux_1: 1.4580 (1.8255) loss_giou_aux_1: 2.9144 (3.0966) loss_fgl_aux_1: 0.0679 (0.0545) loss_ddf_aux_1: 0.0032 (0.0011) loss_vfl_aux_2: 0.0323 (0.0263) loss_bbox_aux_2: 1.4471 (1.8205) loss_giou_aux_2: 2.9205 (3.1003) loss_fgl_aux_2: 0.0675 (0.0544) loss_ddf_aux_2: 0.0015 (0.0005) loss_vfl_aux_3: 0.0336 (0.0253) loss_bbox_aux_3: 1.4365 (1.8148) loss_giou_aux_3: 2.9267 (3.1044) loss_fgl_aux_3: 0.0671 (0.0543) loss_ddf_aux_3: 0.0006 (0.0002) loss_vfl_aux_4: 0.0329 (0.0263) loss_bbox_aux_4: 1.4308 (1.8115) loss_giou_aux_4: 2.9244 (3.1067) loss_fgl_aux_4: 0.0669 (0.0544) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.0305 (0.0245) loss_bbox_pre: 1.4809 (1.8351) loss_giou_pre: 2.8950 (3.0896) loss_vfl_enc_0: 0.0328 (0.0252) loss_bbox_enc_0: 1.4986 (1.8422) loss_giou_enc_0: 2.8794 (3.0845) loss_vfl_dn_0: 0.4773 (0.6095) loss_bbox_dn_0: 0.0606 (0.0673) loss_giou_dn_0: 1.3910 (1.3901) loss_fgl_dn_0: 0.7979 (0.8031) loss_ddf_dn_0: 0.0280 (0.0086) loss_vfl_dn_1: 0.4897 (0.6653) loss_bbox_dn_1: 0.0601 (0.0670) loss_giou_dn_1: 1.3925 (1.3909) loss_fgl_dn_1: 0.7886 (0.7994) loss_ddf_dn_1: 0.0157 (0.0050) loss_vfl_dn_2: 0.4502 (0.6346) loss_bbox_dn_2: 0.0598 (0.0668) loss_giou_dn_2: 1.3935 (1.3914) loss_fgl_dn_2: 0.7811 (0.7964) loss_ddf_dn_2: 0.0069 (0.0022) loss_vfl_dn_3: 0.4724 (0.6271) loss_bbox_dn_3: 0.0597 (0.0667) loss_giou_dn_3: 1.3935 (1.3920) loss_fgl_dn_3: 0.7774 (0.7943) loss_ddf_dn_3: 0.0029 (0.0010) loss_vfl_dn_4: 0.4780 (0.5993) loss_bbox_dn_4: 0.0601 (0.0666) loss_giou_dn_4: 1.3940 (1.3922) loss_fgl_dn_4: 0.7760 (0.7928) loss_ddf_dn_4: 0.0007 (0.0004) loss_vfl_dn_5: 0.4624 (0.5945) loss_bbox_dn_5: 0.0606 (0.0665) loss_giou_dn_5: 1.3935 (1.3923) loss_fgl_dn_5: 0.7752 (0.7919) loss_ddf_dn_5: -0.0000 (0.0000) loss_vfl_dn_pre: 0.4780 (0.6100) loss_bbox_dn_pre: 0.0610 (0.0675) loss_giou_dn_pre: 1.3902 (1.3898)\n", + "Test: [0/4] eta: 0:00:03 time: 0.8483 data: 0.5054 max mem: 28434\n", + "Test: [3/4] eta: 0:00:00 time: 0.5833 data: 0.1673 max mem: 28434\n", + "Test: Total time: 0:00:02 (0.5995 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.04s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.000\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.000\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.000\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.000\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.000\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.007\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.000\n", + "best_stat: {'epoch': 0, 'coco_eval_bbox': 1.1819770171391798e-06}\n", + "Epoch: [1] [ 0/84] eta: 0:03:04 lr: 0.000002 loss: 47.5798 (47.5798) loss_vfl: 0.0385 (0.0385) loss_bbox: 0.9823 (0.9823) loss_giou: 2.5776 (2.5776) loss_fgl: 0.1034 (0.1034) loss_vfl_aux_0: 0.0339 (0.0339) loss_bbox_aux_0: 0.9963 (0.9963) loss_giou_aux_0: 2.5663 (2.5663) loss_fgl_aux_0: 0.1000 (0.1000) loss_ddf_aux_0: 0.0124 (0.0124) loss_vfl_aux_1: 0.0355 (0.0355) loss_bbox_aux_1: 0.9827 (0.9827) loss_giou_aux_1: 2.5774 (2.5774) loss_fgl_aux_1: 0.1002 (0.1002) loss_ddf_aux_1: 0.0062 (0.0062) loss_vfl_aux_2: 0.0358 (0.0358) loss_bbox_aux_2: 0.9776 (0.9776) loss_giou_aux_2: 2.5817 (2.5817) loss_fgl_aux_2: 0.1010 (0.1010) loss_ddf_aux_2: 0.0025 (0.0025) loss_vfl_aux_3: 0.0356 (0.0356) loss_bbox_aux_3: 0.9725 (0.9725) loss_giou_aux_3: 2.5860 (2.5860) loss_fgl_aux_3: 0.1017 (0.1017) loss_ddf_aux_3: 0.0010 (0.0010) loss_vfl_aux_4: 0.0354 (0.0354) loss_bbox_aux_4: 0.9778 (0.9778) loss_giou_aux_4: 2.5813 (2.5813) loss_fgl_aux_4: 0.1027 (0.1027) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.0339 (0.0339) loss_bbox_pre: 1.0057 (1.0057) loss_giou_pre: 2.5591 (2.5591) loss_vfl_enc_0: 0.0361 (0.0361) loss_bbox_enc_0: 1.0270 (1.0270) loss_giou_enc_0: 2.5434 (2.5434) loss_vfl_dn_0: 0.4495 (0.4495) loss_bbox_dn_0: 0.0636 (0.0636) loss_giou_dn_0: 1.3864 (1.3864) loss_fgl_dn_0: 0.7978 (0.7978) loss_ddf_dn_0: 0.0514 (0.0514) loss_vfl_dn_1: 0.4756 (0.4756) loss_bbox_dn_1: 0.0633 (0.0633) loss_giou_dn_1: 1.3879 (1.3879) loss_fgl_dn_1: 0.7854 (0.7854) loss_ddf_dn_1: 0.0259 (0.0259) loss_vfl_dn_2: 0.4353 (0.4353) loss_bbox_dn_2: 0.0633 (0.0633) loss_giou_dn_2: 1.3877 (1.3877) loss_fgl_dn_2: 0.7804 (0.7804) loss_ddf_dn_2: 0.0098 (0.0098) loss_vfl_dn_3: 0.4834 (0.4834) loss_bbox_dn_3: 0.0634 (0.0634) loss_giou_dn_3: 1.3874 (1.3874) loss_fgl_dn_3: 0.7800 (0.7800) loss_ddf_dn_3: 0.0044 (0.0044) loss_vfl_dn_4: 0.4700 (0.4700) loss_bbox_dn_4: 0.0639 (0.0639) loss_giou_dn_4: 1.3853 (1.3853) loss_fgl_dn_4: 0.7834 (0.7834) loss_ddf_dn_4: 0.0009 (0.0009) loss_vfl_dn_5: 0.4495 (0.4495) loss_bbox_dn_5: 0.0645 (0.0645) loss_giou_dn_5: 1.3841 (1.3841) loss_fgl_dn_5: 0.7860 (0.7860) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4507 (0.4507) loss_bbox_dn_pre: 0.0640 (0.0640) loss_giou_dn_pre: 1.3854 (1.3854) time: 2.1975 data: 0.7972 max mem: 28434\n", + "Epoch: [1] [83/84] eta: 0:00:00 lr: 0.000004 loss: 41.3792 (43.5945) loss_vfl: 0.0663 (0.0707) loss_bbox: 0.5932 (0.7276) loss_giou: 2.1889 (2.3246) loss_fgl: 0.1861 (0.1656) loss_vfl_aux_0: 0.0644 (0.0644) loss_bbox_aux_0: 0.6013 (0.7290) loss_giou_aux_0: 2.1907 (2.3263) loss_fgl_aux_0: 0.1823 (0.1621) loss_ddf_aux_0: 0.0031 (0.0075) loss_vfl_aux_1: 0.0629 (0.0652) loss_bbox_aux_1: 0.6018 (0.7260) loss_giou_aux_1: 2.1890 (2.3281) loss_fgl_aux_1: 0.1842 (0.1636) loss_ddf_aux_1: 0.0017 (0.0028) loss_vfl_aux_2: 0.0632 (0.0658) loss_bbox_aux_2: 0.5997 (0.7270) loss_giou_aux_2: 2.1877 (2.3265) loss_fgl_aux_2: 0.1852 (0.1645) loss_ddf_aux_2: 0.0010 (0.0012) loss_vfl_aux_3: 0.0649 (0.0672) loss_bbox_aux_3: 0.5946 (0.7254) loss_giou_aux_3: 2.1897 (2.3275) loss_fgl_aux_3: 0.1861 (0.1651) loss_ddf_aux_3: 0.0005 (0.0005) loss_vfl_aux_4: 0.0667 (0.0679) loss_bbox_aux_4: 0.5932 (0.7272) loss_giou_aux_4: 2.1901 (2.3253) loss_fgl_aux_4: 0.1862 (0.1654) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.0655 (0.0642) loss_bbox_pre: 0.5970 (0.7301) loss_giou_pre: 2.1927 (2.3262) loss_vfl_enc_0: 0.0623 (0.0652) loss_bbox_enc_0: 0.5984 (0.7408) loss_giou_enc_0: 2.1942 (2.3173) loss_vfl_dn_0: 0.3584 (0.3786) loss_bbox_dn_0: 0.0639 (0.0694) loss_giou_dn_0: 1.3896 (1.3903) loss_fgl_dn_0: 0.7772 (0.7824) loss_ddf_dn_0: 0.0100 (0.0255) loss_vfl_dn_1: 0.3538 (0.3785) loss_bbox_dn_1: 0.0637 (0.0699) loss_giou_dn_1: 1.3903 (1.3901) loss_fgl_dn_1: 0.7759 (0.7792) loss_ddf_dn_1: 0.0041 (0.0095) loss_vfl_dn_2: 0.3535 (0.3751) loss_bbox_dn_2: 0.0639 (0.0706) loss_giou_dn_2: 1.3908 (1.3896) loss_fgl_dn_2: 0.7755 (0.7799) loss_ddf_dn_2: 0.0024 (0.0035) loss_vfl_dn_3: 0.3582 (0.3850) loss_bbox_dn_3: 0.0639 (0.0707) loss_giou_dn_3: 1.3908 (1.3894) loss_fgl_dn_3: 0.7756 (0.7806) loss_ddf_dn_3: 0.0010 (0.0015) loss_vfl_dn_4: 0.3640 (0.3894) loss_bbox_dn_4: 0.0642 (0.0711) loss_giou_dn_4: 1.3906 (1.3891) loss_fgl_dn_4: 0.7760 (0.7816) loss_ddf_dn_4: 0.0004 (0.0004) loss_vfl_dn_5: 0.3730 (0.3995) loss_bbox_dn_5: 0.0647 (0.0712) loss_giou_dn_5: 1.3905 (1.3891) loss_fgl_dn_5: 0.7765 (0.7820) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3577 (0.3784) loss_bbox_dn_pre: 0.0637 (0.0689) loss_giou_dn_pre: 1.3898 (1.3904) time: 0.9432 data: 0.0167 max mem: 28434\n", + "Epoch: [1] Total time: 0:01:23 (0.9924 s / it)\n", + "Averaged stats: lr: 0.000004 loss: 41.3792 (43.5945) loss_vfl: 0.0663 (0.0707) loss_bbox: 0.5932 (0.7276) loss_giou: 2.1889 (2.3246) loss_fgl: 0.1861 (0.1656) loss_vfl_aux_0: 0.0644 (0.0644) loss_bbox_aux_0: 0.6013 (0.7290) loss_giou_aux_0: 2.1907 (2.3263) loss_fgl_aux_0: 0.1823 (0.1621) loss_ddf_aux_0: 0.0031 (0.0075) loss_vfl_aux_1: 0.0629 (0.0652) loss_bbox_aux_1: 0.6018 (0.7260) loss_giou_aux_1: 2.1890 (2.3281) loss_fgl_aux_1: 0.1842 (0.1636) loss_ddf_aux_1: 0.0017 (0.0028) loss_vfl_aux_2: 0.0632 (0.0658) loss_bbox_aux_2: 0.5997 (0.7270) loss_giou_aux_2: 2.1877 (2.3265) loss_fgl_aux_2: 0.1852 (0.1645) loss_ddf_aux_2: 0.0010 (0.0012) loss_vfl_aux_3: 0.0649 (0.0672) loss_bbox_aux_3: 0.5946 (0.7254) loss_giou_aux_3: 2.1897 (2.3275) loss_fgl_aux_3: 0.1861 (0.1651) loss_ddf_aux_3: 0.0005 (0.0005) loss_vfl_aux_4: 0.0667 (0.0679) loss_bbox_aux_4: 0.5932 (0.7272) loss_giou_aux_4: 2.1901 (2.3253) loss_fgl_aux_4: 0.1862 (0.1654) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.0655 (0.0642) loss_bbox_pre: 0.5970 (0.7301) loss_giou_pre: 2.1927 (2.3262) loss_vfl_enc_0: 0.0623 (0.0652) loss_bbox_enc_0: 0.5984 (0.7408) loss_giou_enc_0: 2.1942 (2.3173) loss_vfl_dn_0: 0.3584 (0.3786) loss_bbox_dn_0: 0.0639 (0.0694) loss_giou_dn_0: 1.3896 (1.3903) loss_fgl_dn_0: 0.7772 (0.7824) loss_ddf_dn_0: 0.0100 (0.0255) loss_vfl_dn_1: 0.3538 (0.3785) loss_bbox_dn_1: 0.0637 (0.0699) loss_giou_dn_1: 1.3903 (1.3901) loss_fgl_dn_1: 0.7759 (0.7792) loss_ddf_dn_1: 0.0041 (0.0095) loss_vfl_dn_2: 0.3535 (0.3751) loss_bbox_dn_2: 0.0639 (0.0706) loss_giou_dn_2: 1.3908 (1.3896) loss_fgl_dn_2: 0.7755 (0.7799) loss_ddf_dn_2: 0.0024 (0.0035) loss_vfl_dn_3: 0.3582 (0.3850) loss_bbox_dn_3: 0.0639 (0.0707) loss_giou_dn_3: 1.3908 (1.3894) loss_fgl_dn_3: 0.7756 (0.7806) loss_ddf_dn_3: 0.0010 (0.0015) loss_vfl_dn_4: 0.3640 (0.3894) loss_bbox_dn_4: 0.0642 (0.0711) loss_giou_dn_4: 1.3906 (1.3891) loss_fgl_dn_4: 0.7760 (0.7816) loss_ddf_dn_4: 0.0004 (0.0004) loss_vfl_dn_5: 0.3730 (0.3995) loss_bbox_dn_5: 0.0647 (0.0712) loss_giou_dn_5: 1.3905 (1.3891) loss_fgl_dn_5: 0.7765 (0.7820) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3577 (0.3784) loss_bbox_dn_pre: 0.0637 (0.0689) loss_giou_dn_pre: 1.3898 (1.3904)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7280 data: 0.4943 max mem: 28434\n", + "Test: [3/4] eta: 0:00:00 time: 0.3960 data: 0.1710 max mem: 28434\n", + "Test: Total time: 0:00:01 (0.4104 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.04s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.000\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.001\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.000\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.000\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.000\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.001\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.002\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.002\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.002\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.007\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.000\n", + "best_stat: {'epoch': 1, 'coco_eval_bbox': 0.0001096125950098194}\n", + "Epoch: [2] [ 0/84] eta: 0:03:06 lr: 0.000004 loss: 39.2806 (39.2806) loss_vfl: 0.0624 (0.0624) loss_bbox: 0.4263 (0.4263) loss_giou: 2.0715 (2.0715) loss_fgl: 0.2152 (0.2152) loss_vfl_aux_0: 0.0601 (0.0601) loss_bbox_aux_0: 0.4253 (0.4253) loss_giou_aux_0: 2.0752 (2.0752) loss_fgl_aux_0: 0.2141 (0.2141) loss_ddf_aux_0: 0.0051 (0.0051) loss_vfl_aux_1: 0.0617 (0.0617) loss_bbox_aux_1: 0.4221 (0.4221) loss_giou_aux_1: 2.0787 (2.0787) loss_fgl_aux_1: 0.2154 (0.2154) loss_ddf_aux_1: 0.0028 (0.0028) loss_vfl_aux_2: 0.0628 (0.0628) loss_bbox_aux_2: 0.4226 (0.4226) loss_giou_aux_2: 2.0771 (2.0771) loss_fgl_aux_2: 0.2159 (0.2159) loss_ddf_aux_2: 0.0017 (0.0017) loss_vfl_aux_3: 0.0646 (0.0646) loss_bbox_aux_3: 0.4224 (0.4224) loss_giou_aux_3: 2.0766 (2.0766) loss_fgl_aux_3: 0.2161 (0.2161) loss_ddf_aux_3: 0.0009 (0.0009) loss_vfl_aux_4: 0.0638 (0.0638) loss_bbox_aux_4: 0.4242 (0.4242) loss_giou_aux_4: 2.0740 (2.0740) loss_fgl_aux_4: 0.2158 (0.2158) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.0594 (0.0594) loss_bbox_pre: 0.4260 (0.4260) loss_giou_pre: 2.0754 (2.0754) loss_vfl_enc_0: 0.0617 (0.0617) loss_bbox_enc_0: 0.4258 (0.4258) loss_giou_enc_0: 2.0769 (2.0769) loss_vfl_dn_0: 0.3562 (0.3562) loss_bbox_dn_0: 0.0816 (0.0816) loss_giou_dn_0: 1.3810 (1.3810) loss_fgl_dn_0: 0.7854 (0.7854) loss_ddf_dn_0: 0.0168 (0.0168) loss_vfl_dn_1: 0.3545 (0.3545) loss_bbox_dn_1: 0.0820 (0.0820) loss_giou_dn_1: 1.3816 (1.3816) loss_fgl_dn_1: 0.7842 (0.7842) loss_ddf_dn_1: 0.0061 (0.0061) loss_vfl_dn_2: 0.3569 (0.3569) loss_bbox_dn_2: 0.0825 (0.0825) loss_giou_dn_2: 1.3823 (1.3823) loss_fgl_dn_2: 0.7836 (0.7836) loss_ddf_dn_2: 0.0028 (0.0028) loss_vfl_dn_3: 0.3560 (0.3560) loss_bbox_dn_3: 0.0827 (0.0827) loss_giou_dn_3: 1.3827 (1.3827) loss_fgl_dn_3: 0.7834 (0.7834) loss_ddf_dn_3: 0.0010 (0.0010) loss_vfl_dn_4: 0.3542 (0.3542) loss_bbox_dn_4: 0.0833 (0.0833) loss_giou_dn_4: 1.3836 (1.3836) loss_fgl_dn_4: 0.7833 (0.7833) loss_ddf_dn_4: 0.0003 (0.0003) loss_vfl_dn_5: 0.3643 (0.3643) loss_bbox_dn_5: 0.0838 (0.0838) loss_giou_dn_5: 1.3844 (1.3844) loss_fgl_dn_5: 0.7832 (0.7832) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3552 (0.3552) loss_bbox_dn_pre: 0.0809 (0.0809) loss_giou_dn_pre: 1.3808 (1.3808) time: 2.2222 data: 1.1492 max mem: 28434\n", + "Epoch: [2] [83/84] eta: 0:00:00 lr: 0.000006 loss: 40.4128 (40.3949) loss_vfl: 0.0980 (0.0952) loss_bbox: 0.4688 (0.4830) loss_giou: 2.1141 (2.1117) loss_fgl: 0.2300 (0.2303) loss_vfl_aux_0: 0.0961 (0.0940) loss_bbox_aux_0: 0.4703 (0.4844) loss_giou_aux_0: 2.1150 (2.1122) loss_fgl_aux_0: 0.2318 (0.2306) loss_ddf_aux_0: 0.0489 (0.0205) loss_vfl_aux_1: 0.0948 (0.0946) loss_bbox_aux_1: 0.4688 (0.4820) loss_giou_aux_1: 2.1163 (2.1147) loss_fgl_aux_1: 0.2315 (0.2311) loss_ddf_aux_1: 0.0038 (0.0032) loss_vfl_aux_2: 0.0967 (0.0949) loss_bbox_aux_2: 0.4691 (0.4830) loss_giou_aux_2: 2.1160 (2.1132) loss_fgl_aux_2: 0.2307 (0.2308) loss_ddf_aux_2: 0.0010 (0.0013) loss_vfl_aux_3: 0.0963 (0.0951) loss_bbox_aux_3: 0.4691 (0.4826) loss_giou_aux_3: 2.1156 (2.1131) loss_fgl_aux_3: 0.2303 (0.2307) loss_ddf_aux_3: 0.0004 (0.0006) loss_vfl_aux_4: 0.0956 (0.0951) loss_bbox_aux_4: 0.4689 (0.4828) loss_giou_aux_4: 2.1148 (2.1123) loss_fgl_aux_4: 0.2300 (0.2305) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.0952 (0.0931) loss_bbox_pre: 0.4712 (0.4852) loss_giou_pre: 2.1167 (2.1121) loss_vfl_enc_0: 0.0931 (0.0911) loss_bbox_enc_0: 0.4654 (0.4829) loss_giou_enc_0: 2.1216 (2.1158) loss_vfl_dn_0: 0.3521 (0.3548) loss_bbox_dn_0: 0.0747 (0.0703) loss_giou_dn_0: 1.3863 (1.3867) loss_fgl_dn_0: 0.7821 (0.7814) loss_ddf_dn_0: 0.1910 (0.0811) loss_vfl_dn_1: 0.3469 (0.3508) loss_bbox_dn_1: 0.0757 (0.0710) loss_giou_dn_1: 1.3854 (1.3867) loss_fgl_dn_1: 0.7809 (0.7811) loss_ddf_dn_1: 0.0099 (0.0074) loss_vfl_dn_2: 0.3481 (0.3505) loss_bbox_dn_2: 0.0759 (0.0714) loss_giou_dn_2: 1.3852 (1.3867) loss_fgl_dn_2: 0.7808 (0.7811) loss_ddf_dn_2: 0.0015 (0.0018) loss_vfl_dn_3: 0.3491 (0.3523) loss_bbox_dn_3: 0.0759 (0.0715) loss_giou_dn_3: 1.3854 (1.3866) loss_fgl_dn_3: 0.7812 (0.7812) loss_ddf_dn_3: 0.0004 (0.0006) loss_vfl_dn_4: 0.3489 (0.3557) loss_bbox_dn_4: 0.0759 (0.0717) loss_giou_dn_4: 1.3854 (1.3866) loss_fgl_dn_4: 0.7815 (0.7813) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.3552 (0.3614) loss_bbox_dn_5: 0.0757 (0.0717) loss_giou_dn_5: 1.3853 (1.3866) loss_fgl_dn_5: 0.7817 (0.7814) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3503 (0.3534) loss_bbox_dn_pre: 0.0755 (0.0697) loss_giou_dn_pre: 1.3860 (1.3867) time: 0.8865 data: 0.0173 max mem: 28434\n", + "Epoch: [2] Total time: 0:01:18 (0.9347 s / it)\n", + "Averaged stats: lr: 0.000006 loss: 40.4128 (40.3949) loss_vfl: 0.0980 (0.0952) loss_bbox: 0.4688 (0.4830) loss_giou: 2.1141 (2.1117) loss_fgl: 0.2300 (0.2303) loss_vfl_aux_0: 0.0961 (0.0940) loss_bbox_aux_0: 0.4703 (0.4844) loss_giou_aux_0: 2.1150 (2.1122) loss_fgl_aux_0: 0.2318 (0.2306) loss_ddf_aux_0: 0.0489 (0.0205) loss_vfl_aux_1: 0.0948 (0.0946) loss_bbox_aux_1: 0.4688 (0.4820) loss_giou_aux_1: 2.1163 (2.1147) loss_fgl_aux_1: 0.2315 (0.2311) loss_ddf_aux_1: 0.0038 (0.0032) loss_vfl_aux_2: 0.0967 (0.0949) loss_bbox_aux_2: 0.4691 (0.4830) loss_giou_aux_2: 2.1160 (2.1132) loss_fgl_aux_2: 0.2307 (0.2308) loss_ddf_aux_2: 0.0010 (0.0013) loss_vfl_aux_3: 0.0963 (0.0951) loss_bbox_aux_3: 0.4691 (0.4826) loss_giou_aux_3: 2.1156 (2.1131) loss_fgl_aux_3: 0.2303 (0.2307) loss_ddf_aux_3: 0.0004 (0.0006) loss_vfl_aux_4: 0.0956 (0.0951) loss_bbox_aux_4: 0.4689 (0.4828) loss_giou_aux_4: 2.1148 (2.1123) loss_fgl_aux_4: 0.2300 (0.2305) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.0952 (0.0931) loss_bbox_pre: 0.4712 (0.4852) loss_giou_pre: 2.1167 (2.1121) loss_vfl_enc_0: 0.0931 (0.0911) loss_bbox_enc_0: 0.4654 (0.4829) loss_giou_enc_0: 2.1216 (2.1158) loss_vfl_dn_0: 0.3521 (0.3548) loss_bbox_dn_0: 0.0747 (0.0703) loss_giou_dn_0: 1.3863 (1.3867) loss_fgl_dn_0: 0.7821 (0.7814) loss_ddf_dn_0: 0.1910 (0.0811) loss_vfl_dn_1: 0.3469 (0.3508) loss_bbox_dn_1: 0.0757 (0.0710) loss_giou_dn_1: 1.3854 (1.3867) loss_fgl_dn_1: 0.7809 (0.7811) loss_ddf_dn_1: 0.0099 (0.0074) loss_vfl_dn_2: 0.3481 (0.3505) loss_bbox_dn_2: 0.0759 (0.0714) loss_giou_dn_2: 1.3852 (1.3867) loss_fgl_dn_2: 0.7808 (0.7811) loss_ddf_dn_2: 0.0015 (0.0018) loss_vfl_dn_3: 0.3491 (0.3523) loss_bbox_dn_3: 0.0759 (0.0715) loss_giou_dn_3: 1.3854 (1.3866) loss_fgl_dn_3: 0.7812 (0.7812) loss_ddf_dn_3: 0.0004 (0.0006) loss_vfl_dn_4: 0.3489 (0.3557) loss_bbox_dn_4: 0.0759 (0.0717) loss_giou_dn_4: 1.3854 (1.3866) loss_fgl_dn_4: 0.7815 (0.7813) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.3552 (0.3614) loss_bbox_dn_5: 0.0757 (0.0717) loss_giou_dn_5: 1.3853 (1.3866) loss_fgl_dn_5: 0.7817 (0.7814) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3503 (0.3534) loss_bbox_dn_pre: 0.0755 (0.0697) loss_giou_dn_pre: 1.3860 (1.3867)\n", + "Test: [0/4] eta: 0:00:02 time: 0.6851 data: 0.4740 max mem: 28434\n", + "Test: [3/4] eta: 0:00:00 time: 0.3546 data: 0.1584 max mem: 28434\n", + "Test: Total time: 0:00:01 (0.3677 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.04s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.000\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.002\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.000\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.000\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.002\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.001\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.002\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.002\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.036\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.010\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.000\n", + "best_stat: {'epoch': 2, 'coco_eval_bbox': 0.0002828161935537151}\n", + "Epoch: [3] [ 0/84] eta: 0:02:30 lr: 0.000006 loss: 38.3657 (38.3657) loss_vfl: 0.1711 (0.1711) loss_bbox: 0.3639 (0.3639) loss_giou: 1.8109 (1.8109) loss_fgl: 0.2979 (0.2979) loss_vfl_aux_0: 0.1803 (0.1803) loss_bbox_aux_0: 0.3711 (0.3711) loss_giou_aux_0: 1.8115 (1.8115) loss_fgl_aux_0: 0.2945 (0.2945) loss_ddf_aux_0: 0.0956 (0.0956) loss_vfl_aux_1: 0.1781 (0.1781) loss_bbox_aux_1: 0.3680 (0.3680) loss_giou_aux_1: 1.8117 (1.8117) loss_fgl_aux_1: 0.2960 (0.2960) loss_ddf_aux_1: 0.0064 (0.0064) loss_vfl_aux_2: 0.1658 (0.1658) loss_bbox_aux_2: 0.3672 (0.3672) loss_giou_aux_2: 1.8114 (1.8114) loss_fgl_aux_2: 0.2963 (0.2963) loss_ddf_aux_2: 0.0018 (0.0018) loss_vfl_aux_3: 0.1675 (0.1675) loss_bbox_aux_3: 0.3659 (0.3659) loss_giou_aux_3: 1.8106 (1.8106) loss_fgl_aux_3: 0.2970 (0.2970) loss_ddf_aux_3: 0.0007 (0.0007) loss_vfl_aux_4: 0.1669 (0.1669) loss_bbox_aux_4: 0.3649 (0.3649) loss_giou_aux_4: 1.8103 (1.8103) loss_fgl_aux_4: 0.2975 (0.2975) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.1793 (0.1793) loss_bbox_pre: 0.3659 (0.3659) loss_giou_pre: 1.8124 (1.8124) loss_vfl_enc_0: 0.1639 (0.1639) loss_bbox_enc_0: 0.3617 (0.3617) loss_giou_enc_0: 1.8155 (1.8155) loss_vfl_dn_0: 0.3533 (0.3533) loss_bbox_dn_0: 0.0819 (0.0819) loss_giou_dn_0: 1.3969 (1.3969) loss_fgl_dn_0: 0.7794 (0.7794) loss_ddf_dn_0: 0.1706 (0.1706) loss_vfl_dn_1: 0.3501 (0.3501) loss_bbox_dn_1: 0.0828 (0.0828) loss_giou_dn_1: 1.3961 (1.3961) loss_fgl_dn_1: 0.7802 (0.7802) loss_ddf_dn_1: 0.0111 (0.0111) loss_vfl_dn_2: 0.3501 (0.3501) loss_bbox_dn_2: 0.0828 (0.0828) loss_giou_dn_2: 1.3961 (1.3961) loss_fgl_dn_2: 0.7806 (0.7806) loss_ddf_dn_2: 0.0013 (0.0013) loss_vfl_dn_3: 0.3484 (0.3484) loss_bbox_dn_3: 0.0826 (0.0826) loss_giou_dn_3: 1.3952 (1.3952) loss_fgl_dn_3: 0.7815 (0.7815) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.3545 (0.3545) loss_bbox_dn_4: 0.0822 (0.0822) loss_giou_dn_4: 1.3944 (1.3944) loss_fgl_dn_4: 0.7823 (0.7823) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.3635 (0.3635) loss_bbox_dn_5: 0.0816 (0.0816) loss_giou_dn_5: 1.3944 (1.3944) loss_fgl_dn_5: 0.7824 (0.7824) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3503 (0.3503) loss_bbox_dn_pre: 0.0799 (0.0799) loss_giou_dn_pre: 1.3988 (1.3988) time: 1.7952 data: 1.0894 max mem: 28434\n", + "Epoch: [3] [83/84] eta: 0:00:00 lr: 0.000008 loss: 40.1163 (40.0748) loss_vfl: 0.0908 (0.1032) loss_bbox: 0.4504 (0.4565) loss_giou: 2.0940 (2.0913) loss_fgl: 0.2419 (0.2467) loss_vfl_aux_0: 0.0870 (0.1000) loss_bbox_aux_0: 0.4510 (0.4623) loss_giou_aux_0: 2.0920 (2.0874) loss_fgl_aux_0: 0.2402 (0.2450) loss_ddf_aux_0: 0.0090 (0.0213) loss_vfl_aux_1: 0.0880 (0.1007) loss_bbox_aux_1: 0.4463 (0.4577) loss_giou_aux_1: 2.0998 (2.0926) loss_fgl_aux_1: 0.2390 (0.2458) loss_ddf_aux_1: 0.0030 (0.0028) loss_vfl_aux_2: 0.0880 (0.1011) loss_bbox_aux_2: 0.4472 (0.4573) loss_giou_aux_2: 2.0993 (2.0923) loss_fgl_aux_2: 0.2397 (0.2461) loss_ddf_aux_2: 0.0018 (0.0016) loss_vfl_aux_3: 0.0891 (0.1019) loss_bbox_aux_3: 0.4478 (0.4567) loss_giou_aux_3: 2.0977 (2.0916) loss_fgl_aux_3: 0.2407 (0.2466) loss_ddf_aux_3: 0.0005 (0.0005) loss_vfl_aux_4: 0.0889 (0.1021) loss_bbox_aux_4: 0.4493 (0.4564) loss_giou_aux_4: 2.0951 (2.0915) loss_fgl_aux_4: 0.2415 (0.2467) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.0862 (0.1000) loss_bbox_pre: 0.4593 (0.4650) loss_giou_pre: 2.0726 (2.0792) loss_vfl_enc_0: 0.0894 (0.1004) loss_bbox_enc_0: 0.4619 (0.4632) loss_giou_enc_0: 2.0725 (2.0820) loss_vfl_dn_0: 0.3484 (0.3499) loss_bbox_dn_0: 0.0688 (0.0728) loss_giou_dn_0: 1.3879 (1.3875) loss_fgl_dn_0: 0.7797 (0.7797) loss_ddf_dn_0: 0.0075 (0.0264) loss_vfl_dn_1: 0.3433 (0.3467) loss_bbox_dn_1: 0.0690 (0.0734) loss_giou_dn_1: 1.3871 (1.3875) loss_fgl_dn_1: 0.7807 (0.7800) loss_ddf_dn_1: 0.0023 (0.0028) loss_vfl_dn_2: 0.3447 (0.3473) loss_bbox_dn_2: 0.0685 (0.0733) loss_giou_dn_2: 1.3862 (1.3869) loss_fgl_dn_2: 0.7816 (0.7805) loss_ddf_dn_2: 0.0014 (0.0013) loss_vfl_dn_3: 0.3472 (0.3493) loss_bbox_dn_3: 0.0681 (0.0730) loss_giou_dn_3: 1.3854 (1.3859) loss_fgl_dn_3: 0.7825 (0.7811) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.3506 (0.3521) loss_bbox_dn_4: 0.0679 (0.0728) loss_giou_dn_4: 1.3844 (1.3851) loss_fgl_dn_4: 0.7826 (0.7815) loss_ddf_dn_4: 0.0001 (0.0002) loss_vfl_dn_5: 0.3562 (0.3563) loss_bbox_dn_5: 0.0678 (0.0725) loss_giou_dn_5: 1.3840 (1.3848) loss_fgl_dn_5: 0.7829 (0.7817) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3459 (0.3483) loss_bbox_dn_pre: 0.0675 (0.0711) loss_giou_dn_pre: 1.3883 (1.3870) time: 0.8932 data: 0.0172 max mem: 28724\n", + "Epoch: [3] Total time: 0:01:17 (0.9187 s / it)\n", + "Averaged stats: lr: 0.000008 loss: 40.1163 (40.0748) loss_vfl: 0.0908 (0.1032) loss_bbox: 0.4504 (0.4565) loss_giou: 2.0940 (2.0913) loss_fgl: 0.2419 (0.2467) loss_vfl_aux_0: 0.0870 (0.1000) loss_bbox_aux_0: 0.4510 (0.4623) loss_giou_aux_0: 2.0920 (2.0874) loss_fgl_aux_0: 0.2402 (0.2450) loss_ddf_aux_0: 0.0090 (0.0213) loss_vfl_aux_1: 0.0880 (0.1007) loss_bbox_aux_1: 0.4463 (0.4577) loss_giou_aux_1: 2.0998 (2.0926) loss_fgl_aux_1: 0.2390 (0.2458) loss_ddf_aux_1: 0.0030 (0.0028) loss_vfl_aux_2: 0.0880 (0.1011) loss_bbox_aux_2: 0.4472 (0.4573) loss_giou_aux_2: 2.0993 (2.0923) loss_fgl_aux_2: 0.2397 (0.2461) loss_ddf_aux_2: 0.0018 (0.0016) loss_vfl_aux_3: 0.0891 (0.1019) loss_bbox_aux_3: 0.4478 (0.4567) loss_giou_aux_3: 2.0977 (2.0916) loss_fgl_aux_3: 0.2407 (0.2466) loss_ddf_aux_3: 0.0005 (0.0005) loss_vfl_aux_4: 0.0889 (0.1021) loss_bbox_aux_4: 0.4493 (0.4564) loss_giou_aux_4: 2.0951 (2.0915) loss_fgl_aux_4: 0.2415 (0.2467) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.0862 (0.1000) loss_bbox_pre: 0.4593 (0.4650) loss_giou_pre: 2.0726 (2.0792) loss_vfl_enc_0: 0.0894 (0.1004) loss_bbox_enc_0: 0.4619 (0.4632) loss_giou_enc_0: 2.0725 (2.0820) loss_vfl_dn_0: 0.3484 (0.3499) loss_bbox_dn_0: 0.0688 (0.0728) loss_giou_dn_0: 1.3879 (1.3875) loss_fgl_dn_0: 0.7797 (0.7797) loss_ddf_dn_0: 0.0075 (0.0264) loss_vfl_dn_1: 0.3433 (0.3467) loss_bbox_dn_1: 0.0690 (0.0734) loss_giou_dn_1: 1.3871 (1.3875) loss_fgl_dn_1: 0.7807 (0.7800) loss_ddf_dn_1: 0.0023 (0.0028) loss_vfl_dn_2: 0.3447 (0.3473) loss_bbox_dn_2: 0.0685 (0.0733) loss_giou_dn_2: 1.3862 (1.3869) loss_fgl_dn_2: 0.7816 (0.7805) loss_ddf_dn_2: 0.0014 (0.0013) loss_vfl_dn_3: 0.3472 (0.3493) loss_bbox_dn_3: 0.0681 (0.0730) loss_giou_dn_3: 1.3854 (1.3859) loss_fgl_dn_3: 0.7825 (0.7811) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.3506 (0.3521) loss_bbox_dn_4: 0.0679 (0.0728) loss_giou_dn_4: 1.3844 (1.3851) loss_fgl_dn_4: 0.7826 (0.7815) loss_ddf_dn_4: 0.0001 (0.0002) loss_vfl_dn_5: 0.3562 (0.3563) loss_bbox_dn_5: 0.0678 (0.0725) loss_giou_dn_5: 1.3840 (1.3848) loss_fgl_dn_5: 0.7829 (0.7817) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3459 (0.3483) loss_bbox_dn_pre: 0.0675 (0.0711) loss_giou_dn_pre: 1.3883 (1.3870)\n", + "Test: [0/4] eta: 0:00:02 time: 0.6992 data: 0.4786 max mem: 28724\n", + "Test: [3/4] eta: 0:00:00 time: 0.3739 data: 0.1567 max mem: 28724\n", + "Test: Total time: 0:00:01 (0.3877 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.04s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.001\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.005\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.001\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.001\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.003\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.001\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.002\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.004\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.003\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.011\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.013\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.001\n", + "best_stat: {'epoch': 3, 'coco_eval_bbox': 0.0014412864607787567}\n", + "Epoch: [4] [ 0/84] eta: 0:03:01 lr: 0.000008 loss: 38.8551 (38.8551) loss_vfl: 0.0535 (0.0535) loss_bbox: 0.4100 (0.4100) loss_giou: 2.1093 (2.1093) loss_fgl: 0.1807 (0.1807) loss_vfl_aux_0: 0.0574 (0.0574) loss_bbox_aux_0: 0.4093 (0.4093) loss_giou_aux_0: 2.1123 (2.1123) loss_fgl_aux_0: 0.1814 (0.1814) loss_ddf_aux_0: 0.0053 (0.0053) loss_vfl_aux_1: 0.0579 (0.0579) loss_bbox_aux_1: 0.4047 (0.4047) loss_giou_aux_1: 2.1159 (2.1159) loss_fgl_aux_1: 0.1826 (0.1826) loss_ddf_aux_1: 0.0037 (0.0037) loss_vfl_aux_2: 0.0563 (0.0563) loss_bbox_aux_2: 0.4051 (0.4051) loss_giou_aux_2: 2.1139 (2.1139) loss_fgl_aux_2: 0.1826 (0.1826) loss_ddf_aux_2: 0.0022 (0.0022) loss_vfl_aux_3: 0.0559 (0.0559) loss_bbox_aux_3: 0.4072 (0.4072) loss_giou_aux_3: 2.1112 (2.1112) loss_fgl_aux_3: 0.1818 (0.1818) loss_ddf_aux_3: 0.0005 (0.0005) loss_vfl_aux_4: 0.0548 (0.0548) loss_bbox_aux_4: 0.4088 (0.4088) loss_giou_aux_4: 2.1102 (2.1102) loss_fgl_aux_4: 0.1812 (0.1812) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.0570 (0.0570) loss_bbox_pre: 0.4089 (0.4089) loss_giou_pre: 2.1119 (2.1119) loss_vfl_enc_0: 0.0528 (0.0528) loss_bbox_enc_0: 0.4091 (0.4091) loss_giou_enc_0: 2.1120 (2.1120) loss_vfl_dn_0: 0.3416 (0.3416) loss_bbox_dn_0: 0.0504 (0.0504) loss_giou_dn_0: 1.4073 (1.4073) loss_fgl_dn_0: 0.7653 (0.7653) loss_ddf_dn_0: 0.0071 (0.0071) loss_vfl_dn_1: 0.3347 (0.3347) loss_bbox_dn_1: 0.0508 (0.0508) loss_giou_dn_1: 1.4069 (1.4069) loss_fgl_dn_1: 0.7659 (0.7659) loss_ddf_dn_1: 0.0028 (0.0028) loss_vfl_dn_2: 0.3301 (0.3301) loss_bbox_dn_2: 0.0506 (0.0506) loss_giou_dn_2: 1.4063 (1.4063) loss_fgl_dn_2: 0.7663 (0.7663) loss_ddf_dn_2: 0.0018 (0.0018) loss_vfl_dn_3: 0.3306 (0.3306) loss_bbox_dn_3: 0.0506 (0.0506) loss_giou_dn_3: 1.4060 (1.4060) loss_fgl_dn_3: 0.7665 (0.7665) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.3320 (0.3320) loss_bbox_dn_4: 0.0506 (0.0506) loss_giou_dn_4: 1.4052 (1.4052) loss_fgl_dn_4: 0.7669 (0.7669) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.3330 (0.3330) loss_bbox_dn_5: 0.0507 (0.0507) loss_giou_dn_5: 1.4049 (1.4049) loss_fgl_dn_5: 0.7671 (0.7671) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3384 (0.3384) loss_bbox_dn_pre: 0.0486 (0.0486) loss_giou_dn_pre: 1.4079 (1.4079) time: 2.1649 data: 0.9466 max mem: 28724\n", + "Epoch: [4] [83/84] eta: 0:00:00 lr: 0.000011 loss: 40.7012 (40.1741) loss_vfl: 0.1099 (0.1098) loss_bbox: 0.5113 (0.4661) loss_giou: 2.1408 (2.0787) loss_fgl: 0.2503 (0.2572) loss_vfl_aux_0: 0.0935 (0.1029) loss_bbox_aux_0: 0.5205 (0.4708) loss_giou_aux_0: 2.1431 (2.0833) loss_fgl_aux_0: 0.2459 (0.2535) loss_ddf_aux_0: 0.0283 (0.0158) loss_vfl_aux_1: 0.0949 (0.1029) loss_bbox_aux_1: 0.5170 (0.4670) loss_giou_aux_1: 2.1419 (2.0859) loss_fgl_aux_1: 0.2476 (0.2546) loss_ddf_aux_1: 0.0234 (0.0113) loss_vfl_aux_2: 0.0999 (0.1049) loss_bbox_aux_2: 0.5138 (0.4666) loss_giou_aux_2: 2.1356 (2.0809) loss_fgl_aux_2: 0.2501 (0.2564) loss_ddf_aux_2: 0.0091 (0.0049) loss_vfl_aux_3: 0.1034 (0.1073) loss_bbox_aux_3: 0.5123 (0.4657) loss_giou_aux_3: 2.1377 (2.0799) loss_fgl_aux_3: 0.2512 (0.2572) loss_ddf_aux_3: 0.0032 (0.0014) loss_vfl_aux_4: 0.1055 (0.1087) loss_bbox_aux_4: 0.5116 (0.4658) loss_giou_aux_4: 2.1398 (2.0792) loss_fgl_aux_4: 0.2505 (0.2573) loss_ddf_aux_4: 0.0004 (0.0002) loss_vfl_pre: 0.0922 (0.1017) loss_bbox_pre: 0.5301 (0.4779) loss_giou_pre: 2.1346 (2.0758) loss_vfl_enc_0: 0.0934 (0.1027) loss_bbox_enc_0: 0.5316 (0.4777) loss_giou_enc_0: 2.1450 (2.0786) loss_vfl_dn_0: 0.3464 (0.3485) loss_bbox_dn_0: 0.0661 (0.0733) loss_giou_dn_0: 1.3874 (1.3856) loss_fgl_dn_0: 0.7795 (0.7821) loss_ddf_dn_0: 0.0169 (0.0120) loss_vfl_dn_1: 0.3472 (0.3458) loss_bbox_dn_1: 0.0659 (0.0733) loss_giou_dn_1: 1.3843 (1.3844) loss_fgl_dn_1: 0.7813 (0.7831) loss_ddf_dn_1: 0.0137 (0.0085) loss_vfl_dn_2: 0.3486 (0.3492) loss_bbox_dn_2: 0.0645 (0.0724) loss_giou_dn_2: 1.3744 (1.3795) loss_fgl_dn_2: 0.7866 (0.7855) loss_ddf_dn_2: 0.0056 (0.0040) loss_vfl_dn_3: 0.3506 (0.3532) loss_bbox_dn_3: 0.0640 (0.0717) loss_giou_dn_3: 1.3710 (1.3760) loss_fgl_dn_3: 0.7868 (0.7872) loss_ddf_dn_3: 0.0017 (0.0013) loss_vfl_dn_4: 0.3547 (0.3557) loss_bbox_dn_4: 0.0642 (0.0715) loss_giou_dn_4: 1.3706 (1.3746) loss_fgl_dn_4: 0.7877 (0.7879) loss_ddf_dn_4: 0.0003 (0.0002) loss_vfl_dn_5: 0.3601 (0.3595) loss_bbox_dn_5: 0.0644 (0.0715) loss_giou_dn_5: 1.3716 (1.3743) loss_fgl_dn_5: 0.7875 (0.7882) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3457 (0.3466) loss_bbox_dn_pre: 0.0636 (0.0715) loss_giou_dn_pre: 1.3865 (1.3857) time: 0.9185 data: 0.0169 max mem: 29062\n", + "Epoch: [4] Total time: 0:01:17 (0.9197 s / it)\n", + "Averaged stats: lr: 0.000011 loss: 40.7012 (40.1741) loss_vfl: 0.1099 (0.1098) loss_bbox: 0.5113 (0.4661) loss_giou: 2.1408 (2.0787) loss_fgl: 0.2503 (0.2572) loss_vfl_aux_0: 0.0935 (0.1029) loss_bbox_aux_0: 0.5205 (0.4708) loss_giou_aux_0: 2.1431 (2.0833) loss_fgl_aux_0: 0.2459 (0.2535) loss_ddf_aux_0: 0.0283 (0.0158) loss_vfl_aux_1: 0.0949 (0.1029) loss_bbox_aux_1: 0.5170 (0.4670) loss_giou_aux_1: 2.1419 (2.0859) loss_fgl_aux_1: 0.2476 (0.2546) loss_ddf_aux_1: 0.0234 (0.0113) loss_vfl_aux_2: 0.0999 (0.1049) loss_bbox_aux_2: 0.5138 (0.4666) loss_giou_aux_2: 2.1356 (2.0809) loss_fgl_aux_2: 0.2501 (0.2564) loss_ddf_aux_2: 0.0091 (0.0049) loss_vfl_aux_3: 0.1034 (0.1073) loss_bbox_aux_3: 0.5123 (0.4657) loss_giou_aux_3: 2.1377 (2.0799) loss_fgl_aux_3: 0.2512 (0.2572) loss_ddf_aux_3: 0.0032 (0.0014) loss_vfl_aux_4: 0.1055 (0.1087) loss_bbox_aux_4: 0.5116 (0.4658) loss_giou_aux_4: 2.1398 (2.0792) loss_fgl_aux_4: 0.2505 (0.2573) loss_ddf_aux_4: 0.0004 (0.0002) loss_vfl_pre: 0.0922 (0.1017) loss_bbox_pre: 0.5301 (0.4779) loss_giou_pre: 2.1346 (2.0758) loss_vfl_enc_0: 0.0934 (0.1027) loss_bbox_enc_0: 0.5316 (0.4777) loss_giou_enc_0: 2.1450 (2.0786) loss_vfl_dn_0: 0.3464 (0.3485) loss_bbox_dn_0: 0.0661 (0.0733) loss_giou_dn_0: 1.3874 (1.3856) loss_fgl_dn_0: 0.7795 (0.7821) loss_ddf_dn_0: 0.0169 (0.0120) loss_vfl_dn_1: 0.3472 (0.3458) loss_bbox_dn_1: 0.0659 (0.0733) loss_giou_dn_1: 1.3843 (1.3844) loss_fgl_dn_1: 0.7813 (0.7831) loss_ddf_dn_1: 0.0137 (0.0085) loss_vfl_dn_2: 0.3486 (0.3492) loss_bbox_dn_2: 0.0645 (0.0724) loss_giou_dn_2: 1.3744 (1.3795) loss_fgl_dn_2: 0.7866 (0.7855) loss_ddf_dn_2: 0.0056 (0.0040) loss_vfl_dn_3: 0.3506 (0.3532) loss_bbox_dn_3: 0.0640 (0.0717) loss_giou_dn_3: 1.3710 (1.3760) loss_fgl_dn_3: 0.7868 (0.7872) loss_ddf_dn_3: 0.0017 (0.0013) loss_vfl_dn_4: 0.3547 (0.3557) loss_bbox_dn_4: 0.0642 (0.0715) loss_giou_dn_4: 1.3706 (1.3746) loss_fgl_dn_4: 0.7877 (0.7879) loss_ddf_dn_4: 0.0003 (0.0002) loss_vfl_dn_5: 0.3601 (0.3595) loss_bbox_dn_5: 0.0644 (0.0715) loss_giou_dn_5: 1.3716 (1.3743) loss_fgl_dn_5: 0.7875 (0.7882) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3457 (0.3466) loss_bbox_dn_pre: 0.0636 (0.0715) loss_giou_dn_pre: 1.3865 (1.3857)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7274 data: 0.4836 max mem: 29062\n", + "Test: [3/4] eta: 0:00:00 time: 0.3944 data: 0.1610 max mem: 29062\n", + "Test: Total time: 0:00:01 (0.4084 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.05s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.001\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.005\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.001\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.001\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.012\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.001\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.003\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.005\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.005\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.023\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.018\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.002\n", + "best_stat: {'epoch': 4, 'coco_eval_bbox': 0.0014631443945622975}\n", + "Epoch: [5] [ 0/84] eta: 0:02:14 lr: 0.000011 loss: 39.8672 (39.8672) loss_vfl: 0.1268 (0.1268) loss_bbox: 0.3851 (0.3851) loss_giou: 2.0757 (2.0757) loss_fgl: 0.2979 (0.2979) loss_vfl_aux_0: 0.1227 (0.1227) loss_bbox_aux_0: 0.3900 (0.3900) loss_giou_aux_0: 2.0792 (2.0792) loss_fgl_aux_0: 0.2901 (0.2901) loss_ddf_aux_0: 0.0153 (0.0153) loss_vfl_aux_1: 0.1218 (0.1218) loss_bbox_aux_1: 0.3863 (0.3863) loss_giou_aux_1: 2.0807 (2.0807) loss_fgl_aux_1: 0.2934 (0.2934) loss_ddf_aux_1: 0.0090 (0.0090) loss_vfl_aux_2: 0.1238 (0.1238) loss_bbox_aux_2: 0.3857 (0.3857) loss_giou_aux_2: 2.0746 (2.0746) loss_fgl_aux_2: 0.2965 (0.2965) loss_ddf_aux_2: 0.0030 (0.0030) loss_vfl_aux_3: 0.1245 (0.1245) loss_bbox_aux_3: 0.3847 (0.3847) loss_giou_aux_3: 2.0754 (2.0754) loss_fgl_aux_3: 0.2980 (0.2980) loss_ddf_aux_3: 0.0006 (0.0006) loss_vfl_aux_4: 0.1240 (0.1240) loss_bbox_aux_4: 0.3849 (0.3849) loss_giou_aux_4: 2.0761 (2.0761) loss_fgl_aux_4: 0.2979 (0.2979) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1191 (0.1191) loss_bbox_pre: 0.3961 (0.3961) loss_giou_pre: 2.0749 (2.0749) loss_vfl_enc_0: 0.1159 (0.1159) loss_bbox_enc_0: 0.3988 (0.3988) loss_giou_enc_0: 2.0769 (2.0769) loss_vfl_dn_0: 0.3450 (0.3450) loss_bbox_dn_0: 0.0835 (0.0835) loss_giou_dn_0: 1.3787 (1.3787) loss_fgl_dn_0: 0.7882 (0.7882) loss_ddf_dn_0: 0.0110 (0.0110) loss_vfl_dn_1: 0.3428 (0.3428) loss_bbox_dn_1: 0.0830 (0.0830) loss_giou_dn_1: 1.3748 (1.3748) loss_fgl_dn_1: 0.7897 (0.7897) loss_ddf_dn_1: 0.0077 (0.0077) loss_vfl_dn_2: 0.3445 (0.3445) loss_bbox_dn_2: 0.0812 (0.0812) loss_giou_dn_2: 1.3670 (1.3670) loss_fgl_dn_2: 0.7924 (0.7924) loss_ddf_dn_2: 0.0024 (0.0024) loss_vfl_dn_3: 0.3486 (0.3486) loss_bbox_dn_3: 0.0802 (0.0802) loss_giou_dn_3: 1.3638 (1.3638) loss_fgl_dn_3: 0.7935 (0.7935) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.3503 (0.3503) loss_bbox_dn_4: 0.0798 (0.0798) loss_giou_dn_4: 1.3622 (1.3622) loss_fgl_dn_4: 0.7940 (0.7940) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.3574 (0.3574) loss_bbox_dn_5: 0.0798 (0.0798) loss_giou_dn_5: 1.3617 (1.3617) loss_fgl_dn_5: 0.7941 (0.7941) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3430 (0.3430) loss_bbox_dn_pre: 0.0811 (0.0811) loss_giou_dn_pre: 1.3794 (1.3794) time: 1.6051 data: 0.8375 max mem: 29062\n", + "Epoch: [5] [83/84] eta: 0:00:00 lr: 0.000013 loss: 40.0608 (40.3957) loss_vfl: 0.1069 (0.1111) loss_bbox: 0.4879 (0.4759) loss_giou: 2.0982 (2.0915) loss_fgl: 0.2462 (0.2551) loss_vfl_aux_0: 0.0967 (0.0994) loss_bbox_aux_0: 0.4920 (0.4821) loss_giou_aux_0: 2.1093 (2.1059) loss_fgl_aux_0: 0.2425 (0.2479) loss_ddf_aux_0: 0.0617 (0.0400) loss_vfl_aux_1: 0.0986 (0.1020) loss_bbox_aux_1: 0.4876 (0.4783) loss_giou_aux_1: 2.1008 (2.1009) loss_fgl_aux_1: 0.2415 (0.2511) loss_ddf_aux_1: 0.0379 (0.0248) loss_vfl_aux_2: 0.1055 (0.1080) loss_bbox_aux_2: 0.4892 (0.4763) loss_giou_aux_2: 2.0987 (2.0929) loss_fgl_aux_2: 0.2433 (0.2542) loss_ddf_aux_2: 0.0076 (0.0062) loss_vfl_aux_3: 0.1068 (0.1099) loss_bbox_aux_3: 0.4896 (0.4759) loss_giou_aux_3: 2.0985 (2.0916) loss_fgl_aux_3: 0.2455 (0.2549) loss_ddf_aux_3: 0.0018 (0.0011) loss_vfl_aux_4: 0.1089 (0.1111) loss_bbox_aux_4: 0.4907 (0.4761) loss_giou_aux_4: 2.0981 (2.0912) loss_fgl_aux_4: 0.2461 (0.2550) loss_ddf_aux_4: 0.0002 (0.0001) loss_vfl_pre: 0.0942 (0.0970) loss_bbox_pre: 0.4991 (0.4907) loss_giou_pre: 2.1102 (2.0964) loss_vfl_enc_0: 0.0890 (0.0951) loss_bbox_enc_0: 0.5152 (0.4959) loss_giou_enc_0: 2.1142 (2.1025) loss_vfl_dn_0: 0.3455 (0.3460) loss_bbox_dn_0: 0.0694 (0.0721) loss_giou_dn_0: 1.3780 (1.3865) loss_fgl_dn_0: 0.7851 (0.7814) loss_ddf_dn_0: 0.0323 (0.0226) loss_vfl_dn_1: 0.3499 (0.3464) loss_bbox_dn_1: 0.0663 (0.0709) loss_giou_dn_1: 1.3691 (1.3813) loss_fgl_dn_1: 0.7901 (0.7835) loss_ddf_dn_1: 0.0209 (0.0151) loss_vfl_dn_2: 0.3562 (0.3510) loss_bbox_dn_2: 0.0640 (0.0696) loss_giou_dn_2: 1.3600 (1.3739) loss_fgl_dn_2: 0.7947 (0.7867) loss_ddf_dn_2: 0.0061 (0.0050) loss_vfl_dn_3: 0.3560 (0.3538) loss_bbox_dn_3: 0.0635 (0.0692) loss_giou_dn_3: 1.3561 (1.3711) loss_fgl_dn_3: 0.7962 (0.7880) loss_ddf_dn_3: 0.0016 (0.0011) loss_vfl_dn_4: 0.3574 (0.3558) loss_bbox_dn_4: 0.0635 (0.0692) loss_giou_dn_4: 1.3550 (1.3702) loss_fgl_dn_4: 0.7964 (0.7887) loss_ddf_dn_4: 0.0003 (0.0002) loss_vfl_dn_5: 0.3594 (0.3594) loss_bbox_dn_5: 0.0630 (0.0692) loss_giou_dn_5: 1.3557 (1.3701) loss_fgl_dn_5: 0.7961 (0.7888) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3438 (0.3444) loss_bbox_dn_pre: 0.0687 (0.0701) loss_giou_dn_pre: 1.3789 (1.3866) time: 0.9119 data: 0.0166 max mem: 29062\n", + "Epoch: [5] Total time: 0:01:17 (0.9250 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 40.0608 (40.3957) loss_vfl: 0.1069 (0.1111) loss_bbox: 0.4879 (0.4759) loss_giou: 2.0982 (2.0915) loss_fgl: 0.2462 (0.2551) loss_vfl_aux_0: 0.0967 (0.0994) loss_bbox_aux_0: 0.4920 (0.4821) loss_giou_aux_0: 2.1093 (2.1059) loss_fgl_aux_0: 0.2425 (0.2479) loss_ddf_aux_0: 0.0617 (0.0400) loss_vfl_aux_1: 0.0986 (0.1020) loss_bbox_aux_1: 0.4876 (0.4783) loss_giou_aux_1: 2.1008 (2.1009) loss_fgl_aux_1: 0.2415 (0.2511) loss_ddf_aux_1: 0.0379 (0.0248) loss_vfl_aux_2: 0.1055 (0.1080) loss_bbox_aux_2: 0.4892 (0.4763) loss_giou_aux_2: 2.0987 (2.0929) loss_fgl_aux_2: 0.2433 (0.2542) loss_ddf_aux_2: 0.0076 (0.0062) loss_vfl_aux_3: 0.1068 (0.1099) loss_bbox_aux_3: 0.4896 (0.4759) loss_giou_aux_3: 2.0985 (2.0916) loss_fgl_aux_3: 0.2455 (0.2549) loss_ddf_aux_3: 0.0018 (0.0011) loss_vfl_aux_4: 0.1089 (0.1111) loss_bbox_aux_4: 0.4907 (0.4761) loss_giou_aux_4: 2.0981 (2.0912) loss_fgl_aux_4: 0.2461 (0.2550) loss_ddf_aux_4: 0.0002 (0.0001) loss_vfl_pre: 0.0942 (0.0970) loss_bbox_pre: 0.4991 (0.4907) loss_giou_pre: 2.1102 (2.0964) loss_vfl_enc_0: 0.0890 (0.0951) loss_bbox_enc_0: 0.5152 (0.4959) loss_giou_enc_0: 2.1142 (2.1025) loss_vfl_dn_0: 0.3455 (0.3460) loss_bbox_dn_0: 0.0694 (0.0721) loss_giou_dn_0: 1.3780 (1.3865) loss_fgl_dn_0: 0.7851 (0.7814) loss_ddf_dn_0: 0.0323 (0.0226) loss_vfl_dn_1: 0.3499 (0.3464) loss_bbox_dn_1: 0.0663 (0.0709) loss_giou_dn_1: 1.3691 (1.3813) loss_fgl_dn_1: 0.7901 (0.7835) loss_ddf_dn_1: 0.0209 (0.0151) loss_vfl_dn_2: 0.3562 (0.3510) loss_bbox_dn_2: 0.0640 (0.0696) loss_giou_dn_2: 1.3600 (1.3739) loss_fgl_dn_2: 0.7947 (0.7867) loss_ddf_dn_2: 0.0061 (0.0050) loss_vfl_dn_3: 0.3560 (0.3538) loss_bbox_dn_3: 0.0635 (0.0692) loss_giou_dn_3: 1.3561 (1.3711) loss_fgl_dn_3: 0.7962 (0.7880) loss_ddf_dn_3: 0.0016 (0.0011) loss_vfl_dn_4: 0.3574 (0.3558) loss_bbox_dn_4: 0.0635 (0.0692) loss_giou_dn_4: 1.3550 (1.3702) loss_fgl_dn_4: 0.7964 (0.7887) loss_ddf_dn_4: 0.0003 (0.0002) loss_vfl_dn_5: 0.3594 (0.3594) loss_bbox_dn_5: 0.0630 (0.0692) loss_giou_dn_5: 1.3557 (1.3701) loss_fgl_dn_5: 0.7961 (0.7888) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3438 (0.3444) loss_bbox_dn_pre: 0.0687 (0.0701) loss_giou_dn_pre: 1.3789 (1.3866)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7346 data: 0.4924 max mem: 29062\n", + "Test: [3/4] eta: 0:00:00 time: 0.3991 data: 0.1673 max mem: 29062\n", + "Test: Total time: 0:00:01 (0.4141 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.05s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.003\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.010\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.001\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.003\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.009\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.003\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.013\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.018\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.012\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.072\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.051\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.007\n", + "best_stat: {'epoch': 5, 'coco_eval_bbox': 0.0028719066435348864}\n", + "Epoch: [6] [ 0/84] eta: 0:02:48 lr: 0.000013 loss: 40.0193 (40.0193) loss_vfl: 0.1401 (0.1401) loss_bbox: 0.3735 (0.3735) loss_giou: 2.0502 (2.0502) loss_fgl: 0.2833 (0.2833) loss_vfl_aux_0: 0.1237 (0.1237) loss_bbox_aux_0: 0.3762 (0.3762) loss_giou_aux_0: 2.0785 (2.0785) loss_fgl_aux_0: 0.2703 (0.2703) loss_ddf_aux_0: 0.1286 (0.1286) loss_vfl_aux_1: 0.1320 (0.1320) loss_bbox_aux_1: 0.3722 (0.3722) loss_giou_aux_1: 2.0740 (2.0740) loss_fgl_aux_1: 0.2733 (0.2733) loss_ddf_aux_1: 0.1021 (0.1021) loss_vfl_aux_2: 0.1376 (0.1376) loss_bbox_aux_2: 0.3709 (0.3709) loss_giou_aux_2: 2.0641 (2.0641) loss_fgl_aux_2: 0.2779 (0.2779) loss_ddf_aux_2: 0.0421 (0.0421) loss_vfl_aux_3: 0.1426 (0.1426) loss_bbox_aux_3: 0.3717 (0.3717) loss_giou_aux_3: 2.0568 (2.0568) loss_fgl_aux_3: 0.2808 (0.2808) loss_ddf_aux_3: 0.0080 (0.0080) loss_vfl_aux_4: 0.1392 (0.1392) loss_bbox_aux_4: 0.3736 (0.3736) loss_giou_aux_4: 2.0511 (2.0511) loss_fgl_aux_4: 0.2828 (0.2828) loss_ddf_aux_4: 0.0004 (0.0004) loss_vfl_pre: 0.1227 (0.1227) loss_bbox_pre: 0.3842 (0.3842) loss_giou_pre: 2.0632 (2.0632) loss_vfl_enc_0: 0.1212 (0.1212) loss_bbox_enc_0: 0.3900 (0.3900) loss_giou_enc_0: 2.0742 (2.0742) loss_vfl_dn_0: 0.3513 (0.3513) loss_bbox_dn_0: 0.0683 (0.0683) loss_giou_dn_0: 1.3712 (1.3712) loss_fgl_dn_0: 0.7950 (0.7950) loss_ddf_dn_0: 0.0689 (0.0689) loss_vfl_dn_1: 0.3555 (0.3555) loss_bbox_dn_1: 0.0664 (0.0664) loss_giou_dn_1: 1.3602 (1.3602) loss_fgl_dn_1: 0.7996 (0.7996) loss_ddf_dn_1: 0.0559 (0.0559) loss_vfl_dn_2: 0.3657 (0.3657) loss_bbox_dn_2: 0.0643 (0.0643) loss_giou_dn_2: 1.3481 (1.3481) loss_fgl_dn_2: 0.8064 (0.8064) loss_ddf_dn_2: 0.0241 (0.0241) loss_vfl_dn_3: 0.3755 (0.3755) loss_bbox_dn_3: 0.0645 (0.0645) loss_giou_dn_3: 1.3485 (1.3485) loss_fgl_dn_3: 0.8078 (0.8078) loss_ddf_dn_3: 0.0048 (0.0048) loss_vfl_dn_4: 0.3689 (0.3689) loss_bbox_dn_4: 0.0661 (0.0661) loss_giou_dn_4: 1.3523 (1.3523) loss_fgl_dn_4: 0.8075 (0.8075) loss_ddf_dn_4: 0.0004 (0.0004) loss_vfl_dn_5: 0.3735 (0.3735) loss_bbox_dn_5: 0.0662 (0.0662) loss_giou_dn_5: 1.3526 (1.3526) loss_fgl_dn_5: 0.8077 (0.8077) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3496 (0.3496) loss_bbox_dn_pre: 0.0666 (0.0666) loss_giou_dn_pre: 1.3729 (1.3729) time: 2.0015 data: 1.0377 max mem: 29062\n", + "Epoch: [6] [83/84] eta: 0:00:00 lr: 0.000013 loss: 39.8314 (40.3415) loss_vfl: 0.1302 (0.1299) loss_bbox: 0.3896 (0.4708) loss_giou: 2.0005 (2.0358) loss_fgl: 0.3285 (0.2933) loss_vfl_aux_0: 0.1204 (0.1198) loss_bbox_aux_0: 0.3941 (0.4726) loss_giou_aux_0: 2.0083 (2.0460) loss_fgl_aux_0: 0.3228 (0.2872) loss_ddf_aux_0: 0.0677 (0.0795) loss_vfl_aux_1: 0.1249 (0.1239) loss_bbox_aux_1: 0.3936 (0.4710) loss_giou_aux_1: 2.0025 (2.0394) loss_fgl_aux_1: 0.3263 (0.2902) loss_ddf_aux_1: 0.0236 (0.0349) loss_vfl_aux_2: 0.1321 (0.1290) loss_bbox_aux_2: 0.3912 (0.4701) loss_giou_aux_2: 2.0000 (2.0365) loss_fgl_aux_2: 0.3278 (0.2923) loss_ddf_aux_2: 0.0039 (0.0076) loss_vfl_aux_3: 0.1313 (0.1293) loss_bbox_aux_3: 0.3912 (0.4705) loss_giou_aux_3: 1.9999 (2.0358) loss_fgl_aux_3: 0.3282 (0.2929) loss_ddf_aux_3: 0.0010 (0.0017) loss_vfl_aux_4: 0.1313 (0.1298) loss_bbox_aux_4: 0.3910 (0.4707) loss_giou_aux_4: 1.9999 (2.0357) loss_fgl_aux_4: 0.3284 (0.2932) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.1195 (0.1175) loss_bbox_pre: 0.4022 (0.4785) loss_giou_pre: 2.0007 (2.0392) loss_vfl_enc_0: 0.1069 (0.1077) loss_bbox_enc_0: 0.4278 (0.4921) loss_giou_enc_0: 2.0447 (2.0702) loss_vfl_dn_0: 0.3489 (0.3474) loss_bbox_dn_0: 0.0651 (0.0711) loss_giou_dn_0: 1.3687 (1.3771) loss_fgl_dn_0: 0.7912 (0.7876) loss_ddf_dn_0: 0.0383 (0.0352) loss_vfl_dn_1: 0.3560 (0.3545) loss_bbox_dn_1: 0.0634 (0.0690) loss_giou_dn_1: 1.3539 (1.3646) loss_fgl_dn_1: 0.7982 (0.7929) loss_ddf_dn_1: 0.0134 (0.0174) loss_vfl_dn_2: 0.3596 (0.3581) loss_bbox_dn_2: 0.0620 (0.0677) loss_giou_dn_2: 1.3490 (1.3579) loss_fgl_dn_2: 0.8007 (0.7960) loss_ddf_dn_2: 0.0028 (0.0046) loss_vfl_dn_3: 0.3611 (0.3600) loss_bbox_dn_3: 0.0618 (0.0676) loss_giou_dn_3: 1.3480 (1.3567) loss_fgl_dn_3: 0.8009 (0.7968) loss_ddf_dn_3: 0.0008 (0.0012) loss_vfl_dn_4: 0.3611 (0.3618) loss_bbox_dn_4: 0.0617 (0.0675) loss_giou_dn_4: 1.3471 (1.3562) loss_fgl_dn_4: 0.8011 (0.7974) loss_ddf_dn_4: 0.0003 (0.0003) loss_vfl_dn_5: 0.3616 (0.3653) loss_bbox_dn_5: 0.0617 (0.0674) loss_giou_dn_5: 1.3469 (1.3563) loss_fgl_dn_5: 0.8012 (0.7974) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3452 (0.3445) loss_bbox_dn_pre: 0.0640 (0.0694) loss_giou_dn_pre: 1.3723 (1.3797) time: 0.9055 data: 0.0170 max mem: 29062\n", + "Epoch: [6] Total time: 0:01:18 (0.9300 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 39.8314 (40.3415) loss_vfl: 0.1302 (0.1299) loss_bbox: 0.3896 (0.4708) loss_giou: 2.0005 (2.0358) loss_fgl: 0.3285 (0.2933) loss_vfl_aux_0: 0.1204 (0.1198) loss_bbox_aux_0: 0.3941 (0.4726) loss_giou_aux_0: 2.0083 (2.0460) loss_fgl_aux_0: 0.3228 (0.2872) loss_ddf_aux_0: 0.0677 (0.0795) loss_vfl_aux_1: 0.1249 (0.1239) loss_bbox_aux_1: 0.3936 (0.4710) loss_giou_aux_1: 2.0025 (2.0394) loss_fgl_aux_1: 0.3263 (0.2902) loss_ddf_aux_1: 0.0236 (0.0349) loss_vfl_aux_2: 0.1321 (0.1290) loss_bbox_aux_2: 0.3912 (0.4701) loss_giou_aux_2: 2.0000 (2.0365) loss_fgl_aux_2: 0.3278 (0.2923) loss_ddf_aux_2: 0.0039 (0.0076) loss_vfl_aux_3: 0.1313 (0.1293) loss_bbox_aux_3: 0.3912 (0.4705) loss_giou_aux_3: 1.9999 (2.0358) loss_fgl_aux_3: 0.3282 (0.2929) loss_ddf_aux_3: 0.0010 (0.0017) loss_vfl_aux_4: 0.1313 (0.1298) loss_bbox_aux_4: 0.3910 (0.4707) loss_giou_aux_4: 1.9999 (2.0357) loss_fgl_aux_4: 0.3284 (0.2932) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.1195 (0.1175) loss_bbox_pre: 0.4022 (0.4785) loss_giou_pre: 2.0007 (2.0392) loss_vfl_enc_0: 0.1069 (0.1077) loss_bbox_enc_0: 0.4278 (0.4921) loss_giou_enc_0: 2.0447 (2.0702) loss_vfl_dn_0: 0.3489 (0.3474) loss_bbox_dn_0: 0.0651 (0.0711) loss_giou_dn_0: 1.3687 (1.3771) loss_fgl_dn_0: 0.7912 (0.7876) loss_ddf_dn_0: 0.0383 (0.0352) loss_vfl_dn_1: 0.3560 (0.3545) loss_bbox_dn_1: 0.0634 (0.0690) loss_giou_dn_1: 1.3539 (1.3646) loss_fgl_dn_1: 0.7982 (0.7929) loss_ddf_dn_1: 0.0134 (0.0174) loss_vfl_dn_2: 0.3596 (0.3581) loss_bbox_dn_2: 0.0620 (0.0677) loss_giou_dn_2: 1.3490 (1.3579) loss_fgl_dn_2: 0.8007 (0.7960) loss_ddf_dn_2: 0.0028 (0.0046) loss_vfl_dn_3: 0.3611 (0.3600) loss_bbox_dn_3: 0.0618 (0.0676) loss_giou_dn_3: 1.3480 (1.3567) loss_fgl_dn_3: 0.8009 (0.7968) loss_ddf_dn_3: 0.0008 (0.0012) loss_vfl_dn_4: 0.3611 (0.3618) loss_bbox_dn_4: 0.0617 (0.0675) loss_giou_dn_4: 1.3471 (1.3562) loss_fgl_dn_4: 0.8011 (0.7974) loss_ddf_dn_4: 0.0003 (0.0003) loss_vfl_dn_5: 0.3616 (0.3653) loss_bbox_dn_5: 0.0617 (0.0674) loss_giou_dn_5: 1.3469 (1.3563) loss_fgl_dn_5: 0.8012 (0.7974) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3452 (0.3445) loss_bbox_dn_pre: 0.0640 (0.0694) loss_giou_dn_pre: 1.3723 (1.3797)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7619 data: 0.5238 max mem: 29062\n", + "Test: [3/4] eta: 0:00:00 time: 0.4010 data: 0.1720 max mem: 29062\n", + "Test: Total time: 0:00:01 (0.4152 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.05s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.003\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.010\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.001\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.003\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.021\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.002\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.011\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.018\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.015\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.205\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.058\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.006\n", + "best_stat: {'epoch': 6, 'coco_eval_bbox': 0.002885499499098386}\n", + "Epoch: [7] [ 0/84] eta: 0:02:18 lr: 0.000013 loss: 39.0678 (39.0678) loss_vfl: 0.1414 (0.1414) loss_bbox: 0.3411 (0.3411) loss_giou: 2.0102 (2.0102) loss_fgl: 0.2867 (0.2867) loss_vfl_aux_0: 0.1392 (0.1392) loss_bbox_aux_0: 0.3381 (0.3381) loss_giou_aux_0: 2.0232 (2.0232) loss_fgl_aux_0: 0.2826 (0.2826) loss_ddf_aux_0: 0.0249 (0.0249) loss_vfl_aux_1: 0.1375 (0.1375) loss_bbox_aux_1: 0.3406 (0.3406) loss_giou_aux_1: 2.0119 (2.0119) loss_fgl_aux_1: 0.2863 (0.2863) loss_ddf_aux_1: 0.0055 (0.0055) loss_vfl_aux_2: 0.1475 (0.1475) loss_bbox_aux_2: 0.3409 (0.3409) loss_giou_aux_2: 2.0105 (2.0105) loss_fgl_aux_2: 0.2868 (0.2868) loss_ddf_aux_2: 0.0012 (0.0012) loss_vfl_aux_3: 0.1426 (0.1426) loss_bbox_aux_3: 0.3410 (0.3410) loss_giou_aux_3: 2.0101 (2.0101) loss_fgl_aux_3: 0.2868 (0.2868) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1416 (0.1416) loss_bbox_aux_4: 0.3412 (0.3412) loss_giou_aux_4: 2.0100 (2.0100) loss_fgl_aux_4: 0.2868 (0.2868) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1353 (0.1353) loss_bbox_pre: 0.3429 (0.3429) loss_giou_pre: 2.0172 (2.0172) loss_vfl_enc_0: 0.1287 (0.1287) loss_bbox_enc_0: 0.3527 (0.3527) loss_giou_enc_0: 2.0309 (2.0309) loss_vfl_dn_0: 0.3516 (0.3516) loss_bbox_dn_0: 0.0698 (0.0698) loss_giou_dn_0: 1.3692 (1.3692) loss_fgl_dn_0: 0.7970 (0.7970) loss_ddf_dn_0: 0.0278 (0.0278) loss_vfl_dn_1: 0.3613 (0.3613) loss_bbox_dn_1: 0.0689 (0.0689) loss_giou_dn_1: 1.3564 (1.3564) loss_fgl_dn_1: 0.8008 (0.8008) loss_ddf_dn_1: 0.0080 (0.0080) loss_vfl_dn_2: 0.3633 (0.3633) loss_bbox_dn_2: 0.0670 (0.0670) loss_giou_dn_2: 1.3536 (1.3536) loss_fgl_dn_2: 0.8016 (0.8016) loss_ddf_dn_2: 0.0014 (0.0014) loss_vfl_dn_3: 0.3628 (0.3628) loss_bbox_dn_3: 0.0670 (0.0670) loss_giou_dn_3: 1.3537 (1.3537) loss_fgl_dn_3: 0.8014 (0.8014) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.3630 (0.3630) loss_bbox_dn_4: 0.0669 (0.0669) loss_giou_dn_4: 1.3536 (1.3536) loss_fgl_dn_4: 0.8015 (0.8015) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.3667 (0.3667) loss_bbox_dn_5: 0.0669 (0.0669) loss_giou_dn_5: 1.3538 (1.3538) loss_fgl_dn_5: 0.8014 (0.8014) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3501 (0.3501) loss_bbox_dn_pre: 0.0667 (0.0667) loss_giou_dn_pre: 1.3700 (1.3700) time: 1.6466 data: 0.7883 max mem: 29062\n", + "Epoch: [7] [83/84] eta: 0:00:00 lr: 0.000013 loss: 39.3517 (40.1790) loss_vfl: 0.1315 (0.1374) loss_bbox: 0.3775 (0.4554) loss_giou: 1.9706 (2.0203) loss_fgl: 0.3164 (0.3037) loss_vfl_aux_0: 0.1220 (0.1305) loss_bbox_aux_0: 0.3787 (0.4573) loss_giou_aux_0: 1.9857 (2.0292) loss_fgl_aux_0: 0.3097 (0.3001) loss_ddf_aux_0: 0.0557 (0.0704) loss_vfl_aux_1: 0.1274 (0.1341) loss_bbox_aux_1: 0.3767 (0.4559) loss_giou_aux_1: 1.9798 (2.0222) loss_fgl_aux_1: 0.3144 (0.3024) loss_ddf_aux_1: 0.0153 (0.0217) loss_vfl_aux_2: 0.1296 (0.1372) loss_bbox_aux_2: 0.3765 (0.4548) loss_giou_aux_2: 1.9770 (2.0213) loss_fgl_aux_2: 0.3153 (0.3034) loss_ddf_aux_2: 0.0032 (0.0036) loss_vfl_aux_3: 0.1345 (0.1378) loss_bbox_aux_3: 0.3771 (0.4550) loss_giou_aux_3: 1.9741 (2.0208) loss_fgl_aux_3: 0.3159 (0.3036) loss_ddf_aux_3: 0.0006 (0.0007) loss_vfl_aux_4: 0.1320 (0.1370) loss_bbox_aux_4: 0.3775 (0.4555) loss_giou_aux_4: 1.9709 (2.0203) loss_fgl_aux_4: 0.3163 (0.3037) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1210 (0.1281) loss_bbox_pre: 0.3837 (0.4626) loss_giou_pre: 1.9786 (2.0227) loss_vfl_enc_0: 0.1078 (0.1124) loss_bbox_enc_0: 0.4059 (0.4830) loss_giou_enc_0: 2.0032 (2.0634) loss_vfl_dn_0: 0.3538 (0.3538) loss_bbox_dn_0: 0.0657 (0.0690) loss_giou_dn_0: 1.3584 (1.3636) loss_fgl_dn_0: 0.7991 (0.7981) loss_ddf_dn_0: 0.0427 (0.0466) loss_vfl_dn_1: 0.3633 (0.3639) loss_bbox_dn_1: 0.0610 (0.0658) loss_giou_dn_1: 1.3385 (1.3439) loss_fgl_dn_1: 0.8047 (0.8049) loss_ddf_dn_1: 0.0127 (0.0169) loss_vfl_dn_2: 0.3650 (0.3656) loss_bbox_dn_2: 0.0598 (0.0641) loss_giou_dn_2: 1.3318 (1.3361) loss_fgl_dn_2: 0.8078 (0.8076) loss_ddf_dn_2: 0.0030 (0.0032) loss_vfl_dn_3: 0.3660 (0.3673) loss_bbox_dn_3: 0.0601 (0.0640) loss_giou_dn_3: 1.3303 (1.3346) loss_fgl_dn_3: 0.8080 (0.8080) loss_ddf_dn_3: 0.0007 (0.0008) loss_vfl_dn_4: 0.3687 (0.3677) loss_bbox_dn_4: 0.0602 (0.0640) loss_giou_dn_4: 1.3292 (1.3340) loss_fgl_dn_4: 0.8072 (0.8082) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.3687 (0.3690) loss_bbox_dn_5: 0.0602 (0.0639) loss_giou_dn_5: 1.3293 (1.3339) loss_fgl_dn_5: 0.8073 (0.8082) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3516 (0.3511) loss_bbox_dn_pre: 0.0636 (0.0668) loss_giou_dn_pre: 1.3620 (1.3665) time: 0.8534 data: 0.0167 max mem: 29062\n", + "Epoch: [7] Total time: 0:01:16 (0.9165 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 39.3517 (40.1790) loss_vfl: 0.1315 (0.1374) loss_bbox: 0.3775 (0.4554) loss_giou: 1.9706 (2.0203) loss_fgl: 0.3164 (0.3037) loss_vfl_aux_0: 0.1220 (0.1305) loss_bbox_aux_0: 0.3787 (0.4573) loss_giou_aux_0: 1.9857 (2.0292) loss_fgl_aux_0: 0.3097 (0.3001) loss_ddf_aux_0: 0.0557 (0.0704) loss_vfl_aux_1: 0.1274 (0.1341) loss_bbox_aux_1: 0.3767 (0.4559) loss_giou_aux_1: 1.9798 (2.0222) loss_fgl_aux_1: 0.3144 (0.3024) loss_ddf_aux_1: 0.0153 (0.0217) loss_vfl_aux_2: 0.1296 (0.1372) loss_bbox_aux_2: 0.3765 (0.4548) loss_giou_aux_2: 1.9770 (2.0213) loss_fgl_aux_2: 0.3153 (0.3034) loss_ddf_aux_2: 0.0032 (0.0036) loss_vfl_aux_3: 0.1345 (0.1378) loss_bbox_aux_3: 0.3771 (0.4550) loss_giou_aux_3: 1.9741 (2.0208) loss_fgl_aux_3: 0.3159 (0.3036) loss_ddf_aux_3: 0.0006 (0.0007) loss_vfl_aux_4: 0.1320 (0.1370) loss_bbox_aux_4: 0.3775 (0.4555) loss_giou_aux_4: 1.9709 (2.0203) loss_fgl_aux_4: 0.3163 (0.3037) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1210 (0.1281) loss_bbox_pre: 0.3837 (0.4626) loss_giou_pre: 1.9786 (2.0227) loss_vfl_enc_0: 0.1078 (0.1124) loss_bbox_enc_0: 0.4059 (0.4830) loss_giou_enc_0: 2.0032 (2.0634) loss_vfl_dn_0: 0.3538 (0.3538) loss_bbox_dn_0: 0.0657 (0.0690) loss_giou_dn_0: 1.3584 (1.3636) loss_fgl_dn_0: 0.7991 (0.7981) loss_ddf_dn_0: 0.0427 (0.0466) loss_vfl_dn_1: 0.3633 (0.3639) loss_bbox_dn_1: 0.0610 (0.0658) loss_giou_dn_1: 1.3385 (1.3439) loss_fgl_dn_1: 0.8047 (0.8049) loss_ddf_dn_1: 0.0127 (0.0169) loss_vfl_dn_2: 0.3650 (0.3656) loss_bbox_dn_2: 0.0598 (0.0641) loss_giou_dn_2: 1.3318 (1.3361) loss_fgl_dn_2: 0.8078 (0.8076) loss_ddf_dn_2: 0.0030 (0.0032) loss_vfl_dn_3: 0.3660 (0.3673) loss_bbox_dn_3: 0.0601 (0.0640) loss_giou_dn_3: 1.3303 (1.3346) loss_fgl_dn_3: 0.8080 (0.8080) loss_ddf_dn_3: 0.0007 (0.0008) loss_vfl_dn_4: 0.3687 (0.3677) loss_bbox_dn_4: 0.0602 (0.0640) loss_giou_dn_4: 1.3292 (1.3340) loss_fgl_dn_4: 0.8072 (0.8082) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.3687 (0.3690) loss_bbox_dn_5: 0.0602 (0.0639) loss_giou_dn_5: 1.3293 (1.3339) loss_fgl_dn_5: 0.8073 (0.8082) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3516 (0.3511) loss_bbox_dn_pre: 0.0636 (0.0668) loss_giou_dn_pre: 1.3620 (1.3665)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7246 data: 0.4778 max mem: 29062\n", + "Test: [3/4] eta: 0:00:00 time: 0.5311 data: 0.1658 max mem: 29062\n", + "Test: Total time: 0:00:02 (0.5487 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.05s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.004\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.012\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.002\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.004\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.029\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.051\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.004\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.015\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.022\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.025\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.097\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.175\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.061\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.010\n", + "best_stat: {'epoch': 7, 'coco_eval_bbox': 0.00395076620349019}\n", + "Epoch: [8] [ 0/84] eta: 0:02:26 lr: 0.000013 loss: 40.3788 (40.3788) loss_vfl: 0.1235 (0.1235) loss_bbox: 0.3892 (0.3892) loss_giou: 2.1162 (2.1162) loss_fgl: 0.2906 (0.2906) loss_vfl_aux_0: 0.1197 (0.1197) loss_bbox_aux_0: 0.3865 (0.3865) loss_giou_aux_0: 2.1288 (2.1288) loss_fgl_aux_0: 0.2889 (0.2889) loss_ddf_aux_0: 0.0647 (0.0647) loss_vfl_aux_1: 0.1281 (0.1281) loss_bbox_aux_1: 0.3879 (0.3879) loss_giou_aux_1: 2.1199 (2.1199) loss_fgl_aux_1: 0.2900 (0.2900) loss_ddf_aux_1: 0.0212 (0.0212) loss_vfl_aux_2: 0.1273 (0.1273) loss_bbox_aux_2: 0.3866 (0.3866) loss_giou_aux_2: 2.1198 (2.1198) loss_fgl_aux_2: 0.2907 (0.2907) loss_ddf_aux_2: 0.0046 (0.0046) loss_vfl_aux_3: 0.1252 (0.1252) loss_bbox_aux_3: 0.3875 (0.3875) loss_giou_aux_3: 2.1182 (2.1182) loss_fgl_aux_3: 0.2908 (0.2908) loss_ddf_aux_3: 0.0010 (0.0010) loss_vfl_aux_4: 0.1243 (0.1243) loss_bbox_aux_4: 0.3889 (0.3889) loss_giou_aux_4: 2.1168 (2.1168) loss_fgl_aux_4: 0.2906 (0.2906) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1196 (0.1196) loss_bbox_pre: 0.3880 (0.3880) loss_giou_pre: 2.1254 (2.1254) loss_vfl_enc_0: 0.1106 (0.1106) loss_bbox_enc_0: 0.3960 (0.3960) loss_giou_enc_0: 2.1647 (2.1647) loss_vfl_dn_0: 0.3511 (0.3511) loss_bbox_dn_0: 0.0826 (0.0826) loss_giou_dn_0: 1.3669 (1.3669) loss_fgl_dn_0: 0.7955 (0.7955) loss_ddf_dn_0: 0.0567 (0.0567) loss_vfl_dn_1: 0.3616 (0.3616) loss_bbox_dn_1: 0.0796 (0.0796) loss_giou_dn_1: 1.3542 (1.3542) loss_fgl_dn_1: 0.8001 (0.8001) loss_ddf_dn_1: 0.0230 (0.0230) loss_vfl_dn_2: 0.3628 (0.3628) loss_bbox_dn_2: 0.0776 (0.0776) loss_giou_dn_2: 1.3507 (1.3507) loss_fgl_dn_2: 0.8018 (0.8018) loss_ddf_dn_2: 0.0048 (0.0048) loss_vfl_dn_3: 0.3611 (0.3611) loss_bbox_dn_3: 0.0783 (0.0783) loss_giou_dn_3: 1.3506 (1.3506) loss_fgl_dn_3: 0.8017 (0.8017) loss_ddf_dn_3: 0.0010 (0.0010) loss_vfl_dn_4: 0.3613 (0.3613) loss_bbox_dn_4: 0.0789 (0.0789) loss_giou_dn_4: 1.3511 (1.3511) loss_fgl_dn_4: 0.8011 (0.8011) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.3655 (0.3655) loss_bbox_dn_5: 0.0790 (0.0790) loss_giou_dn_5: 1.3512 (1.3512) loss_fgl_dn_5: 0.8011 (0.8011) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3491 (0.3491) loss_bbox_dn_pre: 0.0783 (0.0783) loss_giou_dn_pre: 1.3689 (1.3689) time: 1.7425 data: 0.8358 max mem: 29062\n", + "Epoch: [8] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.5613 (39.3211) loss_vfl: 0.1299 (0.1477) loss_bbox: 0.3342 (0.3901) loss_giou: 1.9129 (1.9548) loss_fgl: 0.3386 (0.3240) loss_vfl_aux_0: 0.1283 (0.1407) loss_bbox_aux_0: 0.3350 (0.3930) loss_giou_aux_0: 1.9149 (1.9637) loss_fgl_aux_0: 0.3357 (0.3209) loss_ddf_aux_0: 0.0728 (0.0828) loss_vfl_aux_1: 0.1299 (0.1466) loss_bbox_aux_1: 0.3329 (0.3903) loss_giou_aux_1: 1.9185 (1.9566) loss_fgl_aux_1: 0.3382 (0.3229) loss_ddf_aux_1: 0.0138 (0.0194) loss_vfl_aux_2: 0.1293 (0.1482) loss_bbox_aux_2: 0.3333 (0.3893) loss_giou_aux_2: 1.9160 (1.9559) loss_fgl_aux_2: 0.3391 (0.3237) loss_ddf_aux_2: 0.0023 (0.0029) loss_vfl_aux_3: 0.1268 (0.1473) loss_bbox_aux_3: 0.3338 (0.3897) loss_giou_aux_3: 1.9142 (1.9553) loss_fgl_aux_3: 0.3389 (0.3239) loss_ddf_aux_3: 0.0005 (0.0005) loss_vfl_aux_4: 0.1288 (0.1474) loss_bbox_aux_4: 0.3341 (0.3900) loss_giou_aux_4: 1.9131 (1.9549) loss_fgl_aux_4: 0.3386 (0.3240) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1266 (0.1387) loss_bbox_pre: 0.3383 (0.3966) loss_giou_pre: 1.9131 (1.9593) loss_vfl_enc_0: 0.1152 (0.1243) loss_bbox_enc_0: 0.3490 (0.4133) loss_giou_enc_0: 1.9710 (2.0019) loss_vfl_dn_0: 0.3567 (0.3592) loss_bbox_dn_0: 0.0569 (0.0654) loss_giou_dn_0: 1.3491 (1.3493) loss_fgl_dn_0: 0.8117 (0.8091) loss_ddf_dn_0: 0.0683 (0.0667) loss_vfl_dn_1: 0.3789 (0.3755) loss_bbox_dn_1: 0.0525 (0.0609) loss_giou_dn_1: 1.3097 (1.3185) loss_fgl_dn_1: 0.8205 (0.8181) loss_ddf_dn_1: 0.0139 (0.0172) loss_vfl_dn_2: 0.3774 (0.3756) loss_bbox_dn_2: 0.0524 (0.0599) loss_giou_dn_2: 1.3019 (1.3113) loss_fgl_dn_2: 0.8222 (0.8200) loss_ddf_dn_2: 0.0026 (0.0030) loss_vfl_dn_3: 0.3792 (0.3756) loss_bbox_dn_3: 0.0524 (0.0597) loss_giou_dn_3: 1.3001 (1.3094) loss_fgl_dn_3: 0.8226 (0.8204) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.3796 (0.3765) loss_bbox_dn_4: 0.0522 (0.0597) loss_giou_dn_4: 1.2997 (1.3088) loss_fgl_dn_4: 0.8224 (0.8205) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.3804 (0.3783) loss_bbox_dn_5: 0.0521 (0.0597) loss_giou_dn_5: 1.2996 (1.3087) loss_fgl_dn_5: 0.8224 (0.8205) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3555 (0.3570) loss_bbox_dn_pre: 0.0548 (0.0630) loss_giou_dn_pre: 1.3520 (1.3519) time: 0.8685 data: 0.0167 max mem: 29062\n", + "Epoch: [8] Total time: 0:01:15 (0.9030 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.5613 (39.3211) loss_vfl: 0.1299 (0.1477) loss_bbox: 0.3342 (0.3901) loss_giou: 1.9129 (1.9548) loss_fgl: 0.3386 (0.3240) loss_vfl_aux_0: 0.1283 (0.1407) loss_bbox_aux_0: 0.3350 (0.3930) loss_giou_aux_0: 1.9149 (1.9637) loss_fgl_aux_0: 0.3357 (0.3209) loss_ddf_aux_0: 0.0728 (0.0828) loss_vfl_aux_1: 0.1299 (0.1466) loss_bbox_aux_1: 0.3329 (0.3903) loss_giou_aux_1: 1.9185 (1.9566) loss_fgl_aux_1: 0.3382 (0.3229) loss_ddf_aux_1: 0.0138 (0.0194) loss_vfl_aux_2: 0.1293 (0.1482) loss_bbox_aux_2: 0.3333 (0.3893) loss_giou_aux_2: 1.9160 (1.9559) loss_fgl_aux_2: 0.3391 (0.3237) loss_ddf_aux_2: 0.0023 (0.0029) loss_vfl_aux_3: 0.1268 (0.1473) loss_bbox_aux_3: 0.3338 (0.3897) loss_giou_aux_3: 1.9142 (1.9553) loss_fgl_aux_3: 0.3389 (0.3239) loss_ddf_aux_3: 0.0005 (0.0005) loss_vfl_aux_4: 0.1288 (0.1474) loss_bbox_aux_4: 0.3341 (0.3900) loss_giou_aux_4: 1.9131 (1.9549) loss_fgl_aux_4: 0.3386 (0.3240) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1266 (0.1387) loss_bbox_pre: 0.3383 (0.3966) loss_giou_pre: 1.9131 (1.9593) loss_vfl_enc_0: 0.1152 (0.1243) loss_bbox_enc_0: 0.3490 (0.4133) loss_giou_enc_0: 1.9710 (2.0019) loss_vfl_dn_0: 0.3567 (0.3592) loss_bbox_dn_0: 0.0569 (0.0654) loss_giou_dn_0: 1.3491 (1.3493) loss_fgl_dn_0: 0.8117 (0.8091) loss_ddf_dn_0: 0.0683 (0.0667) loss_vfl_dn_1: 0.3789 (0.3755) loss_bbox_dn_1: 0.0525 (0.0609) loss_giou_dn_1: 1.3097 (1.3185) loss_fgl_dn_1: 0.8205 (0.8181) loss_ddf_dn_1: 0.0139 (0.0172) loss_vfl_dn_2: 0.3774 (0.3756) loss_bbox_dn_2: 0.0524 (0.0599) loss_giou_dn_2: 1.3019 (1.3113) loss_fgl_dn_2: 0.8222 (0.8200) loss_ddf_dn_2: 0.0026 (0.0030) loss_vfl_dn_3: 0.3792 (0.3756) loss_bbox_dn_3: 0.0524 (0.0597) loss_giou_dn_3: 1.3001 (1.3094) loss_fgl_dn_3: 0.8226 (0.8204) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.3796 (0.3765) loss_bbox_dn_4: 0.0522 (0.0597) loss_giou_dn_4: 1.2997 (1.3088) loss_fgl_dn_4: 0.8224 (0.8205) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.3804 (0.3783) loss_bbox_dn_5: 0.0521 (0.0597) loss_giou_dn_5: 1.2996 (1.3087) loss_fgl_dn_5: 0.8224 (0.8205) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3555 (0.3570) loss_bbox_dn_pre: 0.0548 (0.0630) loss_giou_dn_pre: 1.3520 (1.3519)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7231 data: 0.4803 max mem: 29062\n", + "Test: [3/4] eta: 0:00:00 time: 0.3883 data: 0.1616 max mem: 29062\n", + "Test: Total time: 0:00:01 (0.4035 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.007\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.020\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.005\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.006\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.070\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.003\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.022\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.036\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.039\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.156\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.100\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.025\n", + "best_stat: {'epoch': 8, 'coco_eval_bbox': 0.007344170564153883}\n", + "Epoch: [9] [ 0/84] eta: 0:02:57 lr: 0.000013 loss: 36.9528 (36.9528) loss_vfl: 0.0934 (0.0934) loss_bbox: 0.2474 (0.2474) loss_giou: 1.9109 (1.9109) loss_fgl: 0.3059 (0.3059) loss_vfl_aux_0: 0.1001 (0.1001) loss_bbox_aux_0: 0.2494 (0.2494) loss_giou_aux_0: 1.9110 (1.9110) loss_fgl_aux_0: 0.3042 (0.3042) loss_ddf_aux_0: 0.0260 (0.0260) loss_vfl_aux_1: 0.1012 (0.1012) loss_bbox_aux_1: 0.2470 (0.2470) loss_giou_aux_1: 1.9105 (1.9105) loss_fgl_aux_1: 0.3056 (0.3056) loss_ddf_aux_1: 0.0049 (0.0049) loss_vfl_aux_2: 0.0989 (0.0989) loss_bbox_aux_2: 0.2465 (0.2465) loss_giou_aux_2: 1.9113 (1.9113) loss_fgl_aux_2: 0.3057 (0.3057) loss_ddf_aux_2: 0.0009 (0.0009) loss_vfl_aux_3: 0.0955 (0.0955) loss_bbox_aux_3: 0.2468 (0.2468) loss_giou_aux_3: 1.9112 (1.9112) loss_fgl_aux_3: 0.3058 (0.3058) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.0931 (0.0931) loss_bbox_aux_4: 0.2473 (0.2473) loss_giou_aux_4: 1.9109 (1.9109) loss_fgl_aux_4: 0.3058 (0.3058) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.0973 (0.0973) loss_bbox_pre: 0.2546 (0.2546) loss_giou_pre: 1.9050 (1.9050) loss_vfl_enc_0: 0.0859 (0.0859) loss_bbox_enc_0: 0.2670 (0.2670) loss_giou_enc_0: 1.9352 (1.9352) loss_vfl_dn_0: 0.3542 (0.3542) loss_bbox_dn_0: 0.0338 (0.0338) loss_giou_dn_0: 1.3606 (1.3606) loss_fgl_dn_0: 0.8029 (0.8029) loss_ddf_dn_0: 0.0466 (0.0466) loss_vfl_dn_1: 0.3677 (0.3677) loss_bbox_dn_1: 0.0315 (0.0315) loss_giou_dn_1: 1.3229 (1.3229) loss_fgl_dn_1: 0.8126 (0.8126) loss_ddf_dn_1: 0.0108 (0.0108) loss_vfl_dn_2: 0.3704 (0.3704) loss_bbox_dn_2: 0.0312 (0.0312) loss_giou_dn_2: 1.3126 (1.3126) loss_fgl_dn_2: 0.8146 (0.8146) loss_ddf_dn_2: 0.0027 (0.0027) loss_vfl_dn_3: 0.3721 (0.3721) loss_bbox_dn_3: 0.0314 (0.0314) loss_giou_dn_3: 1.3110 (1.3110) loss_fgl_dn_3: 0.8144 (0.8144) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.3738 (0.3738) loss_bbox_dn_4: 0.0315 (0.0315) loss_giou_dn_4: 1.3100 (1.3100) loss_fgl_dn_4: 0.8144 (0.8144) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.3718 (0.3718) loss_bbox_dn_5: 0.0315 (0.0315) loss_giou_dn_5: 1.3099 (1.3099) loss_fgl_dn_5: 0.8144 (0.8144) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3516 (0.3516) loss_bbox_dn_pre: 0.0319 (0.0319) loss_giou_dn_pre: 1.3650 (1.3650) time: 2.1084 data: 1.1137 max mem: 29062\n", + "Epoch: [9] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.4143 (39.4255) loss_vfl: 0.1130 (0.1526) loss_bbox: 0.3584 (0.4027) loss_giou: 1.9329 (1.9406) loss_fgl: 0.3245 (0.3382) loss_vfl_aux_0: 0.1069 (0.1476) loss_bbox_aux_0: 0.3612 (0.4019) loss_giou_aux_0: 1.9443 (1.9537) loss_fgl_aux_0: 0.3228 (0.3361) loss_ddf_aux_0: 0.0708 (0.0861) loss_vfl_aux_1: 0.1092 (0.1512) loss_bbox_aux_1: 0.3582 (0.4015) loss_giou_aux_1: 1.9334 (1.9435) loss_fgl_aux_1: 0.3243 (0.3375) loss_ddf_aux_1: 0.0116 (0.0159) loss_vfl_aux_2: 0.1131 (0.1518) loss_bbox_aux_2: 0.3585 (0.4022) loss_giou_aux_2: 1.9327 (1.9416) loss_fgl_aux_2: 0.3244 (0.3379) loss_ddf_aux_2: 0.0022 (0.0024) loss_vfl_aux_3: 0.1096 (0.1511) loss_bbox_aux_3: 0.3584 (0.4023) loss_giou_aux_3: 1.9328 (1.9411) loss_fgl_aux_3: 0.3245 (0.3381) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1121 (0.1514) loss_bbox_aux_4: 0.3584 (0.4027) loss_giou_aux_4: 1.9327 (1.9407) loss_fgl_aux_4: 0.3246 (0.3382) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1051 (0.1454) loss_bbox_pre: 0.3653 (0.4067) loss_giou_pre: 1.9358 (1.9480) loss_vfl_enc_0: 0.1001 (0.1318) loss_bbox_enc_0: 0.3867 (0.4238) loss_giou_enc_0: 1.9830 (1.9899) loss_vfl_dn_0: 0.3557 (0.3616) loss_bbox_dn_0: 0.0607 (0.0670) loss_giou_dn_0: 1.3451 (1.3412) loss_fgl_dn_0: 0.8091 (0.8153) loss_ddf_dn_0: 0.1011 (0.1104) loss_vfl_dn_1: 0.3928 (0.3941) loss_bbox_dn_1: 0.0520 (0.0603) loss_giou_dn_1: 1.2604 (1.2751) loss_fgl_dn_1: 0.8391 (0.8352) loss_ddf_dn_1: 0.0188 (0.0254) loss_vfl_dn_2: 0.3982 (0.3972) loss_bbox_dn_2: 0.0513 (0.0593) loss_giou_dn_2: 1.2500 (1.2601) loss_fgl_dn_2: 0.8376 (0.8384) loss_ddf_dn_2: 0.0029 (0.0040) loss_vfl_dn_3: 0.3923 (0.3964) loss_bbox_dn_3: 0.0509 (0.0591) loss_giou_dn_3: 1.2485 (1.2576) loss_fgl_dn_3: 0.8377 (0.8389) loss_ddf_dn_3: 0.0005 (0.0007) loss_vfl_dn_4: 0.3958 (0.3964) loss_bbox_dn_4: 0.0505 (0.0590) loss_giou_dn_4: 1.2473 (1.2568) loss_fgl_dn_4: 0.8387 (0.8391) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.3989 (0.3974) loss_bbox_dn_5: 0.0506 (0.0589) loss_giou_dn_5: 1.2473 (1.2568) loss_fgl_dn_5: 0.8388 (0.8391) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3560 (0.3600) loss_bbox_dn_pre: 0.0584 (0.0645) loss_giou_dn_pre: 1.3464 (1.3436) time: 0.9246 data: 0.0209 max mem: 29062\n", + "Epoch: [9] Total time: 0:01:16 (0.9070 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.4143 (39.4255) loss_vfl: 0.1130 (0.1526) loss_bbox: 0.3584 (0.4027) loss_giou: 1.9329 (1.9406) loss_fgl: 0.3245 (0.3382) loss_vfl_aux_0: 0.1069 (0.1476) loss_bbox_aux_0: 0.3612 (0.4019) loss_giou_aux_0: 1.9443 (1.9537) loss_fgl_aux_0: 0.3228 (0.3361) loss_ddf_aux_0: 0.0708 (0.0861) loss_vfl_aux_1: 0.1092 (0.1512) loss_bbox_aux_1: 0.3582 (0.4015) loss_giou_aux_1: 1.9334 (1.9435) loss_fgl_aux_1: 0.3243 (0.3375) loss_ddf_aux_1: 0.0116 (0.0159) loss_vfl_aux_2: 0.1131 (0.1518) loss_bbox_aux_2: 0.3585 (0.4022) loss_giou_aux_2: 1.9327 (1.9416) loss_fgl_aux_2: 0.3244 (0.3379) loss_ddf_aux_2: 0.0022 (0.0024) loss_vfl_aux_3: 0.1096 (0.1511) loss_bbox_aux_3: 0.3584 (0.4023) loss_giou_aux_3: 1.9328 (1.9411) loss_fgl_aux_3: 0.3245 (0.3381) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1121 (0.1514) loss_bbox_aux_4: 0.3584 (0.4027) loss_giou_aux_4: 1.9327 (1.9407) loss_fgl_aux_4: 0.3246 (0.3382) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1051 (0.1454) loss_bbox_pre: 0.3653 (0.4067) loss_giou_pre: 1.9358 (1.9480) loss_vfl_enc_0: 0.1001 (0.1318) loss_bbox_enc_0: 0.3867 (0.4238) loss_giou_enc_0: 1.9830 (1.9899) loss_vfl_dn_0: 0.3557 (0.3616) loss_bbox_dn_0: 0.0607 (0.0670) loss_giou_dn_0: 1.3451 (1.3412) loss_fgl_dn_0: 0.8091 (0.8153) loss_ddf_dn_0: 0.1011 (0.1104) loss_vfl_dn_1: 0.3928 (0.3941) loss_bbox_dn_1: 0.0520 (0.0603) loss_giou_dn_1: 1.2604 (1.2751) loss_fgl_dn_1: 0.8391 (0.8352) loss_ddf_dn_1: 0.0188 (0.0254) loss_vfl_dn_2: 0.3982 (0.3972) loss_bbox_dn_2: 0.0513 (0.0593) loss_giou_dn_2: 1.2500 (1.2601) loss_fgl_dn_2: 0.8376 (0.8384) loss_ddf_dn_2: 0.0029 (0.0040) loss_vfl_dn_3: 0.3923 (0.3964) loss_bbox_dn_3: 0.0509 (0.0591) loss_giou_dn_3: 1.2485 (1.2576) loss_fgl_dn_3: 0.8377 (0.8389) loss_ddf_dn_3: 0.0005 (0.0007) loss_vfl_dn_4: 0.3958 (0.3964) loss_bbox_dn_4: 0.0505 (0.0590) loss_giou_dn_4: 1.2473 (1.2568) loss_fgl_dn_4: 0.8387 (0.8391) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.3989 (0.3974) loss_bbox_dn_5: 0.0506 (0.0589) loss_giou_dn_5: 1.2473 (1.2568) loss_fgl_dn_5: 0.8388 (0.8391) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3560 (0.3600) loss_bbox_dn_pre: 0.0584 (0.0645) loss_giou_dn_pre: 1.3464 (1.3436)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7268 data: 0.4910 max mem: 29062\n", + "Test: [3/4] eta: 0:00:00 time: 0.3796 data: 0.1605 max mem: 29062\n", + "Test: Total time: 0:00:01 (0.3941 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.011\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.025\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.008\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.007\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.092\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.034\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.006\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.029\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.043\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.033\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.323\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.100\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.090\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.034\n", + "best_stat: {'epoch': 9, 'coco_eval_bbox': 0.010720836875337045}\n", + "Epoch: [10] [ 0/84] eta: 0:02:30 lr: 0.000013 loss: 38.4105 (38.4105) loss_vfl: 0.0932 (0.0932) loss_bbox: 0.4065 (0.4065) loss_giou: 1.9276 (1.9276) loss_fgl: 0.2774 (0.2774) loss_vfl_aux_0: 0.0906 (0.0906) loss_bbox_aux_0: 0.3965 (0.3965) loss_giou_aux_0: 1.9464 (1.9464) loss_fgl_aux_0: 0.2791 (0.2791) loss_ddf_aux_0: 0.1605 (0.1605) loss_vfl_aux_1: 0.0967 (0.0967) loss_bbox_aux_1: 0.3993 (0.3993) loss_giou_aux_1: 1.9319 (1.9319) loss_fgl_aux_1: 0.2778 (0.2778) loss_ddf_aux_1: 0.0335 (0.0335) loss_vfl_aux_2: 0.0967 (0.0967) loss_bbox_aux_2: 0.4060 (0.4060) loss_giou_aux_2: 1.9285 (1.9285) loss_fgl_aux_2: 0.2771 (0.2771) loss_ddf_aux_2: 0.0057 (0.0057) loss_vfl_aux_3: 0.0953 (0.0953) loss_bbox_aux_3: 0.4063 (0.4063) loss_giou_aux_3: 1.9284 (1.9284) loss_fgl_aux_3: 0.2774 (0.2774) loss_ddf_aux_3: 0.0008 (0.0008) loss_vfl_aux_4: 0.0952 (0.0952) loss_bbox_aux_4: 0.4064 (0.4064) loss_giou_aux_4: 1.9277 (1.9277) loss_fgl_aux_4: 0.2775 (0.2775) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.0894 (0.0894) loss_bbox_pre: 0.4017 (0.4017) loss_giou_pre: 1.9417 (1.9417) loss_vfl_enc_0: 0.0867 (0.0867) loss_bbox_enc_0: 0.4130 (0.4130) loss_giou_enc_0: 2.0000 (2.0000) loss_vfl_dn_0: 0.3542 (0.3542) loss_bbox_dn_0: 0.0528 (0.0528) loss_giou_dn_0: 1.3510 (1.3510) loss_fgl_dn_0: 0.8049 (0.8049) loss_ddf_dn_0: 0.0969 (0.0969) loss_vfl_dn_1: 0.4011 (0.4011) loss_bbox_dn_1: 0.0445 (0.0445) loss_giou_dn_1: 1.2570 (1.2570) loss_fgl_dn_1: 0.8355 (0.8355) loss_ddf_dn_1: 0.0182 (0.0182) loss_vfl_dn_2: 0.4038 (0.4038) loss_bbox_dn_2: 0.0426 (0.0426) loss_giou_dn_2: 1.2321 (1.2321) loss_fgl_dn_2: 0.8414 (0.8414) loss_ddf_dn_2: 0.0027 (0.0027) loss_vfl_dn_3: 0.3970 (0.3970) loss_bbox_dn_3: 0.0420 (0.0420) loss_giou_dn_3: 1.2294 (1.2294) loss_fgl_dn_3: 0.8419 (0.8419) loss_ddf_dn_3: 0.0007 (0.0007) loss_vfl_dn_4: 0.3977 (0.3977) loss_bbox_dn_4: 0.0416 (0.0416) loss_giou_dn_4: 1.2286 (1.2286) loss_fgl_dn_4: 0.8425 (0.8425) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4021 (0.4021) loss_bbox_dn_5: 0.0415 (0.0415) loss_giou_dn_5: 1.2285 (1.2285) loss_fgl_dn_5: 0.8426 (0.8426) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3538 (0.3538) loss_bbox_dn_pre: 0.0510 (0.0510) loss_giou_dn_pre: 1.3518 (1.3518) time: 1.7888 data: 0.6602 max mem: 29062\n", + "Epoch: [10] [83/84] eta: 0:00:00 lr: 0.000013 loss: 39.4834 (39.4397) loss_vfl: 0.1616 (0.1590) loss_bbox: 0.3650 (0.3992) loss_giou: 1.9208 (1.9393) loss_fgl: 0.3544 (0.3382) loss_vfl_aux_0: 0.1583 (0.1522) loss_bbox_aux_0: 0.3686 (0.4004) loss_giou_aux_0: 1.9339 (1.9498) loss_fgl_aux_0: 0.3484 (0.3363) loss_ddf_aux_0: 0.0786 (0.0953) loss_vfl_aux_1: 0.1678 (0.1576) loss_bbox_aux_1: 0.3670 (0.3992) loss_giou_aux_1: 1.9223 (1.9406) loss_fgl_aux_1: 0.3515 (0.3372) loss_ddf_aux_1: 0.0148 (0.0183) loss_vfl_aux_2: 0.1609 (0.1597) loss_bbox_aux_2: 0.3659 (0.3992) loss_giou_aux_2: 1.9206 (1.9395) loss_fgl_aux_2: 0.3538 (0.3379) loss_ddf_aux_2: 0.0020 (0.0027) loss_vfl_aux_3: 0.1603 (0.1584) loss_bbox_aux_3: 0.3652 (0.3990) loss_giou_aux_3: 1.9207 (1.9396) loss_fgl_aux_3: 0.3542 (0.3382) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1604 (0.1583) loss_bbox_aux_4: 0.3650 (0.3992) loss_giou_aux_4: 1.9208 (1.9393) loss_fgl_aux_4: 0.3544 (0.3382) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1560 (0.1500) loss_bbox_pre: 0.3757 (0.4059) loss_giou_pre: 1.9302 (1.9434) loss_vfl_enc_0: 0.1481 (0.1391) loss_bbox_enc_0: 0.3963 (0.4226) loss_giou_enc_0: 1.9573 (1.9813) loss_vfl_dn_0: 0.3726 (0.3678) loss_bbox_dn_0: 0.0610 (0.0660) loss_giou_dn_0: 1.3041 (1.3246) loss_fgl_dn_0: 0.8446 (0.8275) loss_ddf_dn_0: 0.1441 (0.1395) loss_vfl_dn_1: 0.4119 (0.4096) loss_bbox_dn_1: 0.0559 (0.0589) loss_giou_dn_1: 1.2260 (1.2397) loss_fgl_dn_1: 0.8626 (0.8535) loss_ddf_dn_1: 0.0357 (0.0340) loss_vfl_dn_2: 0.4253 (0.4176) loss_bbox_dn_2: 0.0536 (0.0573) loss_giou_dn_2: 1.1947 (1.2149) loss_fgl_dn_2: 0.8695 (0.8593) loss_ddf_dn_2: 0.0045 (0.0047) loss_vfl_dn_3: 0.4216 (0.4145) loss_bbox_dn_3: 0.0530 (0.0568) loss_giou_dn_3: 1.1968 (1.2125) loss_fgl_dn_3: 0.8705 (0.8602) loss_ddf_dn_3: 0.0007 (0.0008) loss_vfl_dn_4: 0.4216 (0.4144) loss_bbox_dn_4: 0.0529 (0.0566) loss_giou_dn_4: 1.1966 (1.2118) loss_fgl_dn_4: 0.8714 (0.8606) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4226 (0.4160) loss_bbox_dn_5: 0.0529 (0.0566) loss_giou_dn_5: 1.1964 (1.2118) loss_fgl_dn_5: 0.8715 (0.8606) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3735 (0.3668) loss_bbox_dn_pre: 0.0600 (0.0642) loss_giou_dn_pre: 1.3059 (1.3264) time: 0.8609 data: 0.0168 max mem: 29821\n", + "Epoch: [10] Total time: 0:01:14 (0.8882 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 39.4834 (39.4397) loss_vfl: 0.1616 (0.1590) loss_bbox: 0.3650 (0.3992) loss_giou: 1.9208 (1.9393) loss_fgl: 0.3544 (0.3382) loss_vfl_aux_0: 0.1583 (0.1522) loss_bbox_aux_0: 0.3686 (0.4004) loss_giou_aux_0: 1.9339 (1.9498) loss_fgl_aux_0: 0.3484 (0.3363) loss_ddf_aux_0: 0.0786 (0.0953) loss_vfl_aux_1: 0.1678 (0.1576) loss_bbox_aux_1: 0.3670 (0.3992) loss_giou_aux_1: 1.9223 (1.9406) loss_fgl_aux_1: 0.3515 (0.3372) loss_ddf_aux_1: 0.0148 (0.0183) loss_vfl_aux_2: 0.1609 (0.1597) loss_bbox_aux_2: 0.3659 (0.3992) loss_giou_aux_2: 1.9206 (1.9395) loss_fgl_aux_2: 0.3538 (0.3379) loss_ddf_aux_2: 0.0020 (0.0027) loss_vfl_aux_3: 0.1603 (0.1584) loss_bbox_aux_3: 0.3652 (0.3990) loss_giou_aux_3: 1.9207 (1.9396) loss_fgl_aux_3: 0.3542 (0.3382) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1604 (0.1583) loss_bbox_aux_4: 0.3650 (0.3992) loss_giou_aux_4: 1.9208 (1.9393) loss_fgl_aux_4: 0.3544 (0.3382) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1560 (0.1500) loss_bbox_pre: 0.3757 (0.4059) loss_giou_pre: 1.9302 (1.9434) loss_vfl_enc_0: 0.1481 (0.1391) loss_bbox_enc_0: 0.3963 (0.4226) loss_giou_enc_0: 1.9573 (1.9813) loss_vfl_dn_0: 0.3726 (0.3678) loss_bbox_dn_0: 0.0610 (0.0660) loss_giou_dn_0: 1.3041 (1.3246) loss_fgl_dn_0: 0.8446 (0.8275) loss_ddf_dn_0: 0.1441 (0.1395) loss_vfl_dn_1: 0.4119 (0.4096) loss_bbox_dn_1: 0.0559 (0.0589) loss_giou_dn_1: 1.2260 (1.2397) loss_fgl_dn_1: 0.8626 (0.8535) loss_ddf_dn_1: 0.0357 (0.0340) loss_vfl_dn_2: 0.4253 (0.4176) loss_bbox_dn_2: 0.0536 (0.0573) loss_giou_dn_2: 1.1947 (1.2149) loss_fgl_dn_2: 0.8695 (0.8593) loss_ddf_dn_2: 0.0045 (0.0047) loss_vfl_dn_3: 0.4216 (0.4145) loss_bbox_dn_3: 0.0530 (0.0568) loss_giou_dn_3: 1.1968 (1.2125) loss_fgl_dn_3: 0.8705 (0.8602) loss_ddf_dn_3: 0.0007 (0.0008) loss_vfl_dn_4: 0.4216 (0.4144) loss_bbox_dn_4: 0.0529 (0.0566) loss_giou_dn_4: 1.1966 (1.2118) loss_fgl_dn_4: 0.8714 (0.8606) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4226 (0.4160) loss_bbox_dn_5: 0.0529 (0.0566) loss_giou_dn_5: 1.1964 (1.2118) loss_fgl_dn_5: 0.8715 (0.8606) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3735 (0.3668) loss_bbox_dn_pre: 0.0600 (0.0642) loss_giou_dn_pre: 1.3059 (1.3264)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7364 data: 0.4858 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.5286 data: 0.2991 max mem: 29821\n", + "Test: Total time: 0:00:02 (0.5457 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.008\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.022\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.005\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.007\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.070\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.149\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.006\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.023\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.037\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.037\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.185\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.300\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.084\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.028\n", + "best_stat: {'epoch': 9, 'coco_eval_bbox': 0.010720836875337045}\n", + "Epoch: [11] [ 0/84] eta: 0:02:54 lr: 0.000013 loss: 38.8446 (38.8446) loss_vfl: 0.1500 (0.1500) loss_bbox: 0.3984 (0.3984) loss_giou: 1.9003 (1.9003) loss_fgl: 0.3309 (0.3309) loss_vfl_aux_0: 0.1467 (0.1467) loss_bbox_aux_0: 0.3943 (0.3943) loss_giou_aux_0: 1.9106 (1.9106) loss_fgl_aux_0: 0.3284 (0.3284) loss_ddf_aux_0: 0.0745 (0.0745) loss_vfl_aux_1: 0.1526 (0.1526) loss_bbox_aux_1: 0.3953 (0.3953) loss_giou_aux_1: 1.9011 (1.9011) loss_fgl_aux_1: 0.3306 (0.3306) loss_ddf_aux_1: 0.0099 (0.0099) loss_vfl_aux_2: 0.1552 (0.1552) loss_bbox_aux_2: 0.3966 (0.3966) loss_giou_aux_2: 1.9008 (1.9008) loss_fgl_aux_2: 0.3310 (0.3310) loss_ddf_aux_2: 0.0009 (0.0009) loss_vfl_aux_3: 0.1516 (0.1516) loss_bbox_aux_3: 0.3975 (0.3975) loss_giou_aux_3: 1.9005 (1.9005) loss_fgl_aux_3: 0.3310 (0.3310) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1504 (0.1504) loss_bbox_aux_4: 0.3983 (0.3983) loss_giou_aux_4: 1.9003 (1.9003) loss_fgl_aux_4: 0.3309 (0.3309) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1440 (0.1440) loss_bbox_pre: 0.3997 (0.3997) loss_giou_pre: 1.9071 (1.9071) loss_vfl_enc_0: 0.1388 (0.1388) loss_bbox_enc_0: 0.4000 (0.4000) loss_giou_enc_0: 1.9431 (1.9431) loss_vfl_dn_0: 0.3608 (0.3608) loss_bbox_dn_0: 0.0626 (0.0626) loss_giou_dn_0: 1.3161 (1.3161) loss_fgl_dn_0: 0.8248 (0.8248) loss_ddf_dn_0: 0.1202 (0.1202) loss_vfl_dn_1: 0.4221 (0.4221) loss_bbox_dn_1: 0.0561 (0.0561) loss_giou_dn_1: 1.2228 (1.2228) loss_fgl_dn_1: 0.8584 (0.8584) loss_ddf_dn_1: 0.0342 (0.0342) loss_vfl_dn_2: 0.4443 (0.4443) loss_bbox_dn_2: 0.0543 (0.0543) loss_giou_dn_2: 1.1863 (1.1863) loss_fgl_dn_2: 0.8652 (0.8652) loss_ddf_dn_2: 0.0037 (0.0037) loss_vfl_dn_3: 0.4233 (0.4233) loss_bbox_dn_3: 0.0546 (0.0546) loss_giou_dn_3: 1.1868 (1.1868) loss_fgl_dn_3: 0.8627 (0.8627) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.4182 (0.4182) loss_bbox_dn_4: 0.0549 (0.0549) loss_giou_dn_4: 1.1873 (1.1873) loss_fgl_dn_4: 0.8620 (0.8620) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4192 (0.4192) loss_bbox_dn_5: 0.0549 (0.0549) loss_giou_dn_5: 1.1873 (1.1873) loss_fgl_dn_5: 0.8621 (0.8621) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3640 (0.3640) loss_bbox_dn_pre: 0.0606 (0.0606) loss_giou_dn_pre: 1.3127 (1.3127) time: 2.0750 data: 1.2181 max mem: 29821\n", + "Epoch: [11] [83/84] eta: 0:00:00 lr: 0.000013 loss: 39.3343 (39.4527) loss_vfl: 0.1582 (0.1581) loss_bbox: 0.3923 (0.3993) loss_giou: 1.9309 (1.9337) loss_fgl: 0.3500 (0.3470) loss_vfl_aux_0: 0.1495 (0.1540) loss_bbox_aux_0: 0.3921 (0.4000) loss_giou_aux_0: 1.9380 (1.9443) loss_fgl_aux_0: 0.3492 (0.3445) loss_ddf_aux_0: 0.1014 (0.0984) loss_vfl_aux_1: 0.1606 (0.1589) loss_bbox_aux_1: 0.3927 (0.3991) loss_giou_aux_1: 1.9326 (1.9355) loss_fgl_aux_1: 0.3495 (0.3458) loss_ddf_aux_1: 0.0167 (0.0165) loss_vfl_aux_2: 0.1587 (0.1584) loss_bbox_aux_2: 0.3928 (0.3993) loss_giou_aux_2: 1.9305 (1.9342) loss_fgl_aux_2: 0.3500 (0.3466) loss_ddf_aux_2: 0.0020 (0.0025) loss_vfl_aux_3: 0.1577 (0.1577) loss_bbox_aux_3: 0.3925 (0.3993) loss_giou_aux_3: 1.9306 (1.9339) loss_fgl_aux_3: 0.3500 (0.3469) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1581 (0.1574) loss_bbox_aux_4: 0.3924 (0.3994) loss_giou_aux_4: 1.9308 (1.9337) loss_fgl_aux_4: 0.3500 (0.3470) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1458 (0.1518) loss_bbox_pre: 0.3982 (0.4054) loss_giou_pre: 1.9286 (1.9375) loss_vfl_enc_0: 0.1353 (0.1413) loss_bbox_enc_0: 0.4040 (0.4222) loss_giou_enc_0: 1.9817 (1.9721) loss_vfl_dn_0: 0.3765 (0.3737) loss_bbox_dn_0: 0.0643 (0.0631) loss_giou_dn_0: 1.2966 (1.3037) loss_fgl_dn_0: 0.8483 (0.8425) loss_ddf_dn_0: 0.1549 (0.1465) loss_vfl_dn_1: 0.4148 (0.4136) loss_bbox_dn_1: 0.0592 (0.0565) loss_giou_dn_1: 1.2100 (1.2229) loss_fgl_dn_1: 0.8711 (0.8683) loss_ddf_dn_1: 0.0407 (0.0354) loss_vfl_dn_2: 0.4185 (0.4216) loss_bbox_dn_2: 0.0583 (0.0550) loss_giou_dn_2: 1.1993 (1.2018) loss_fgl_dn_2: 0.8759 (0.8749) loss_ddf_dn_2: 0.0052 (0.0044) loss_vfl_dn_3: 0.4160 (0.4181) loss_bbox_dn_3: 0.0577 (0.0546) loss_giou_dn_3: 1.1962 (1.1996) loss_fgl_dn_3: 0.8760 (0.8759) loss_ddf_dn_3: 0.0008 (0.0008) loss_vfl_dn_4: 0.4182 (0.4182) loss_bbox_dn_4: 0.0574 (0.0544) loss_giou_dn_4: 1.1959 (1.1990) loss_fgl_dn_4: 0.8760 (0.8764) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4180 (0.4197) loss_bbox_dn_5: 0.0574 (0.0544) loss_giou_dn_5: 1.1958 (1.1990) loss_fgl_dn_5: 0.8762 (0.8764) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3770 (0.3727) loss_bbox_dn_pre: 0.0631 (0.0621) loss_giou_dn_pre: 1.2974 (1.3052) time: 0.8901 data: 0.0172 max mem: 29821\n", + "Epoch: [11] Total time: 0:01:15 (0.8975 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 39.3343 (39.4527) loss_vfl: 0.1582 (0.1581) loss_bbox: 0.3923 (0.3993) loss_giou: 1.9309 (1.9337) loss_fgl: 0.3500 (0.3470) loss_vfl_aux_0: 0.1495 (0.1540) loss_bbox_aux_0: 0.3921 (0.4000) loss_giou_aux_0: 1.9380 (1.9443) loss_fgl_aux_0: 0.3492 (0.3445) loss_ddf_aux_0: 0.1014 (0.0984) loss_vfl_aux_1: 0.1606 (0.1589) loss_bbox_aux_1: 0.3927 (0.3991) loss_giou_aux_1: 1.9326 (1.9355) loss_fgl_aux_1: 0.3495 (0.3458) loss_ddf_aux_1: 0.0167 (0.0165) loss_vfl_aux_2: 0.1587 (0.1584) loss_bbox_aux_2: 0.3928 (0.3993) loss_giou_aux_2: 1.9305 (1.9342) loss_fgl_aux_2: 0.3500 (0.3466) loss_ddf_aux_2: 0.0020 (0.0025) loss_vfl_aux_3: 0.1577 (0.1577) loss_bbox_aux_3: 0.3925 (0.3993) loss_giou_aux_3: 1.9306 (1.9339) loss_fgl_aux_3: 0.3500 (0.3469) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1581 (0.1574) loss_bbox_aux_4: 0.3924 (0.3994) loss_giou_aux_4: 1.9308 (1.9337) loss_fgl_aux_4: 0.3500 (0.3470) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1458 (0.1518) loss_bbox_pre: 0.3982 (0.4054) loss_giou_pre: 1.9286 (1.9375) loss_vfl_enc_0: 0.1353 (0.1413) loss_bbox_enc_0: 0.4040 (0.4222) loss_giou_enc_0: 1.9817 (1.9721) loss_vfl_dn_0: 0.3765 (0.3737) loss_bbox_dn_0: 0.0643 (0.0631) loss_giou_dn_0: 1.2966 (1.3037) loss_fgl_dn_0: 0.8483 (0.8425) loss_ddf_dn_0: 0.1549 (0.1465) loss_vfl_dn_1: 0.4148 (0.4136) loss_bbox_dn_1: 0.0592 (0.0565) loss_giou_dn_1: 1.2100 (1.2229) loss_fgl_dn_1: 0.8711 (0.8683) loss_ddf_dn_1: 0.0407 (0.0354) loss_vfl_dn_2: 0.4185 (0.4216) loss_bbox_dn_2: 0.0583 (0.0550) loss_giou_dn_2: 1.1993 (1.2018) loss_fgl_dn_2: 0.8759 (0.8749) loss_ddf_dn_2: 0.0052 (0.0044) loss_vfl_dn_3: 0.4160 (0.4181) loss_bbox_dn_3: 0.0577 (0.0546) loss_giou_dn_3: 1.1962 (1.1996) loss_fgl_dn_3: 0.8760 (0.8759) loss_ddf_dn_3: 0.0008 (0.0008) loss_vfl_dn_4: 0.4182 (0.4182) loss_bbox_dn_4: 0.0574 (0.0544) loss_giou_dn_4: 1.1959 (1.1990) loss_fgl_dn_4: 0.8760 (0.8764) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4180 (0.4197) loss_bbox_dn_5: 0.0574 (0.0544) loss_giou_dn_5: 1.1958 (1.1990) loss_fgl_dn_5: 0.8762 (0.8764) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3770 (0.3727) loss_bbox_dn_pre: 0.0631 (0.0621) loss_giou_dn_pre: 1.2974 (1.3052)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7112 data: 0.4716 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3896 data: 0.1664 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4033 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.014\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.033\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.012\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.007\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.104\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.059\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.004\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.024\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.039\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.030\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.217\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.275\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.094\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.028\n", + "best_stat: {'epoch': 11, 'coco_eval_bbox': 0.013863723494761776}\n", + "Epoch: [12] [ 0/84] eta: 0:02:30 lr: 0.000013 loss: 39.3418 (39.3418) loss_vfl: 0.1569 (0.1569) loss_bbox: 0.3615 (0.3615) loss_giou: 1.9137 (1.9137) loss_fgl: 0.4010 (0.4010) loss_vfl_aux_0: 0.1473 (0.1473) loss_bbox_aux_0: 0.3584 (0.3584) loss_giou_aux_0: 1.9281 (1.9281) loss_fgl_aux_0: 0.3956 (0.3956) loss_ddf_aux_0: 0.1488 (0.1488) loss_vfl_aux_1: 0.1519 (0.1519) loss_bbox_aux_1: 0.3602 (0.3602) loss_giou_aux_1: 1.9166 (1.9166) loss_fgl_aux_1: 0.3984 (0.3984) loss_ddf_aux_1: 0.0300 (0.0300) loss_vfl_aux_2: 0.1531 (0.1531) loss_bbox_aux_2: 0.3616 (0.3616) loss_giou_aux_2: 1.9143 (1.9143) loss_fgl_aux_2: 0.4000 (0.4000) loss_ddf_aux_2: 0.0050 (0.0050) loss_vfl_aux_3: 0.1544 (0.1544) loss_bbox_aux_3: 0.3617 (0.3617) loss_giou_aux_3: 1.9138 (1.9138) loss_fgl_aux_3: 0.4007 (0.4007) loss_ddf_aux_3: 0.0008 (0.0008) loss_vfl_aux_4: 0.1552 (0.1552) loss_bbox_aux_4: 0.3616 (0.3616) loss_giou_aux_4: 1.9136 (1.9136) loss_fgl_aux_4: 0.4010 (0.4010) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1450 (0.1450) loss_bbox_pre: 0.3654 (0.3654) loss_giou_pre: 1.9190 (1.9190) loss_vfl_enc_0: 0.1447 (0.1447) loss_bbox_enc_0: 0.3797 (0.3797) loss_giou_enc_0: 1.9487 (1.9487) loss_vfl_dn_0: 0.3789 (0.3789) loss_bbox_dn_0: 0.0639 (0.0639) loss_giou_dn_0: 1.2970 (1.2970) loss_fgl_dn_0: 0.8480 (0.8480) loss_ddf_dn_0: 0.1521 (0.1521) loss_vfl_dn_1: 0.4048 (0.4048) loss_bbox_dn_1: 0.0600 (0.0600) loss_giou_dn_1: 1.2310 (1.2310) loss_fgl_dn_1: 0.8669 (0.8669) loss_ddf_dn_1: 0.0382 (0.0382) loss_vfl_dn_2: 0.4043 (0.4043) loss_bbox_dn_2: 0.0606 (0.0606) loss_giou_dn_2: 1.2256 (1.2256) loss_fgl_dn_2: 0.8612 (0.8612) loss_ddf_dn_2: 0.0052 (0.0052) loss_vfl_dn_3: 0.4004 (0.4004) loss_bbox_dn_3: 0.0599 (0.0599) loss_giou_dn_3: 1.2248 (1.2248) loss_fgl_dn_3: 0.8602 (0.8602) loss_ddf_dn_3: 0.0010 (0.0010) loss_vfl_dn_4: 0.3977 (0.3977) loss_bbox_dn_4: 0.0595 (0.0595) loss_giou_dn_4: 1.2254 (1.2254) loss_fgl_dn_4: 0.8594 (0.8594) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4043 (0.4043) loss_bbox_dn_5: 0.0593 (0.0593) loss_giou_dn_5: 1.2252 (1.2252) loss_fgl_dn_5: 0.8596 (0.8596) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3767 (0.3767) loss_bbox_dn_pre: 0.0632 (0.0632) loss_giou_dn_pre: 1.2999 (1.2999) time: 1.7947 data: 0.9162 max mem: 29821\n", + "Epoch: [12] [83/84] eta: 0:00:00 lr: 0.000013 loss: 39.1506 (39.4461) loss_vfl: 0.1425 (0.1644) loss_bbox: 0.3817 (0.3920) loss_giou: 1.9397 (1.9192) loss_fgl: 0.3340 (0.3648) loss_vfl_aux_0: 0.1405 (0.1614) loss_bbox_aux_0: 0.3809 (0.3936) loss_giou_aux_0: 1.9442 (1.9309) loss_fgl_aux_0: 0.3335 (0.3631) loss_ddf_aux_0: 0.0976 (0.1035) loss_vfl_aux_1: 0.1455 (0.1657) loss_bbox_aux_1: 0.3820 (0.3919) loss_giou_aux_1: 1.9393 (1.9213) loss_fgl_aux_1: 0.3327 (0.3641) loss_ddf_aux_1: 0.0172 (0.0179) loss_vfl_aux_2: 0.1431 (0.1645) loss_bbox_aux_2: 0.3816 (0.3920) loss_giou_aux_2: 1.9392 (1.9194) loss_fgl_aux_2: 0.3337 (0.3646) loss_ddf_aux_2: 0.0020 (0.0024) loss_vfl_aux_3: 0.1420 (0.1633) loss_bbox_aux_3: 0.3817 (0.3919) loss_giou_aux_3: 1.9397 (1.9193) loss_fgl_aux_3: 0.3340 (0.3647) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1428 (0.1636) loss_bbox_aux_4: 0.3817 (0.3920) loss_giou_aux_4: 1.9396 (1.9191) loss_fgl_aux_4: 0.3340 (0.3648) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1387 (0.1591) loss_bbox_pre: 0.3865 (0.3987) loss_giou_pre: 1.9398 (1.9241) loss_vfl_enc_0: 0.1152 (0.1470) loss_bbox_enc_0: 0.3962 (0.4155) loss_giou_enc_0: 1.9547 (1.9637) loss_vfl_dn_0: 0.3887 (0.3843) loss_bbox_dn_0: 0.0565 (0.0627) loss_giou_dn_0: 1.2750 (1.2761) loss_fgl_dn_0: 0.8583 (0.8597) loss_ddf_dn_0: 0.1324 (0.1444) loss_vfl_dn_1: 0.4253 (0.4200) loss_bbox_dn_1: 0.0516 (0.0562) loss_giou_dn_1: 1.2019 (1.2045) loss_fgl_dn_1: 0.8882 (0.8838) loss_ddf_dn_1: 0.0333 (0.0363) loss_vfl_dn_2: 0.4277 (0.4261) loss_bbox_dn_2: 0.0495 (0.0545) loss_giou_dn_2: 1.1750 (1.1850) loss_fgl_dn_2: 0.8917 (0.8896) loss_ddf_dn_2: 0.0035 (0.0044) loss_vfl_dn_3: 0.4255 (0.4227) loss_bbox_dn_3: 0.0493 (0.0541) loss_giou_dn_3: 1.1744 (1.1832) loss_fgl_dn_3: 0.8923 (0.8903) loss_ddf_dn_3: 0.0006 (0.0007) loss_vfl_dn_4: 0.4243 (0.4226) loss_bbox_dn_4: 0.0490 (0.0539) loss_giou_dn_4: 1.1747 (1.1828) loss_fgl_dn_4: 0.8928 (0.8906) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4255 (0.4240) loss_bbox_dn_5: 0.0490 (0.0539) loss_giou_dn_5: 1.1747 (1.1828) loss_fgl_dn_5: 0.8929 (0.8906) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3870 (0.3835) loss_bbox_dn_pre: 0.0561 (0.0621) loss_giou_dn_pre: 1.2737 (1.2768) time: 0.8972 data: 0.0167 max mem: 29821\n", + "Epoch: [12] Total time: 0:01:17 (0.9174 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 39.1506 (39.4461) loss_vfl: 0.1425 (0.1644) loss_bbox: 0.3817 (0.3920) loss_giou: 1.9397 (1.9192) loss_fgl: 0.3340 (0.3648) loss_vfl_aux_0: 0.1405 (0.1614) loss_bbox_aux_0: 0.3809 (0.3936) loss_giou_aux_0: 1.9442 (1.9309) loss_fgl_aux_0: 0.3335 (0.3631) loss_ddf_aux_0: 0.0976 (0.1035) loss_vfl_aux_1: 0.1455 (0.1657) loss_bbox_aux_1: 0.3820 (0.3919) loss_giou_aux_1: 1.9393 (1.9213) loss_fgl_aux_1: 0.3327 (0.3641) loss_ddf_aux_1: 0.0172 (0.0179) loss_vfl_aux_2: 0.1431 (0.1645) loss_bbox_aux_2: 0.3816 (0.3920) loss_giou_aux_2: 1.9392 (1.9194) loss_fgl_aux_2: 0.3337 (0.3646) loss_ddf_aux_2: 0.0020 (0.0024) loss_vfl_aux_3: 0.1420 (0.1633) loss_bbox_aux_3: 0.3817 (0.3919) loss_giou_aux_3: 1.9397 (1.9193) loss_fgl_aux_3: 0.3340 (0.3647) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1428 (0.1636) loss_bbox_aux_4: 0.3817 (0.3920) loss_giou_aux_4: 1.9396 (1.9191) loss_fgl_aux_4: 0.3340 (0.3648) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1387 (0.1591) loss_bbox_pre: 0.3865 (0.3987) loss_giou_pre: 1.9398 (1.9241) loss_vfl_enc_0: 0.1152 (0.1470) loss_bbox_enc_0: 0.3962 (0.4155) loss_giou_enc_0: 1.9547 (1.9637) loss_vfl_dn_0: 0.3887 (0.3843) loss_bbox_dn_0: 0.0565 (0.0627) loss_giou_dn_0: 1.2750 (1.2761) loss_fgl_dn_0: 0.8583 (0.8597) loss_ddf_dn_0: 0.1324 (0.1444) loss_vfl_dn_1: 0.4253 (0.4200) loss_bbox_dn_1: 0.0516 (0.0562) loss_giou_dn_1: 1.2019 (1.2045) loss_fgl_dn_1: 0.8882 (0.8838) loss_ddf_dn_1: 0.0333 (0.0363) loss_vfl_dn_2: 0.4277 (0.4261) loss_bbox_dn_2: 0.0495 (0.0545) loss_giou_dn_2: 1.1750 (1.1850) loss_fgl_dn_2: 0.8917 (0.8896) loss_ddf_dn_2: 0.0035 (0.0044) loss_vfl_dn_3: 0.4255 (0.4227) loss_bbox_dn_3: 0.0493 (0.0541) loss_giou_dn_3: 1.1744 (1.1832) loss_fgl_dn_3: 0.8923 (0.8903) loss_ddf_dn_3: 0.0006 (0.0007) loss_vfl_dn_4: 0.4243 (0.4226) loss_bbox_dn_4: 0.0490 (0.0539) loss_giou_dn_4: 1.1747 (1.1828) loss_fgl_dn_4: 0.8928 (0.8906) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4255 (0.4240) loss_bbox_dn_5: 0.0490 (0.0539) loss_giou_dn_5: 1.1747 (1.1828) loss_fgl_dn_5: 0.8929 (0.8906) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3870 (0.3835) loss_bbox_dn_pre: 0.0561 (0.0621) loss_giou_dn_pre: 1.2737 (1.2768)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7835 data: 0.5414 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3981 data: 0.1757 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4120 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.011\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.026\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.007\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.010\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.064\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.127\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.005\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.019\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.042\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.041\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.225\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.125\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.091\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.032\n", + "best_stat: {'epoch': 11, 'coco_eval_bbox': 0.013863723494761776}\n", + "Epoch: [13] [ 0/84] eta: 0:02:51 lr: 0.000013 loss: 37.5473 (37.5473) loss_vfl: 0.0947 (0.0947) loss_bbox: 0.3195 (0.3195) loss_giou: 1.8911 (1.8911) loss_fgl: 0.2954 (0.2954) loss_vfl_aux_0: 0.0919 (0.0919) loss_bbox_aux_0: 0.3166 (0.3166) loss_giou_aux_0: 1.8985 (1.8985) loss_fgl_aux_0: 0.2951 (0.2951) loss_ddf_aux_0: 0.0601 (0.0601) loss_vfl_aux_1: 0.0936 (0.0936) loss_bbox_aux_1: 0.3200 (0.3200) loss_giou_aux_1: 1.8931 (1.8931) loss_fgl_aux_1: 0.2949 (0.2949) loss_ddf_aux_1: 0.0081 (0.0081) loss_vfl_aux_2: 0.0940 (0.0940) loss_bbox_aux_2: 0.3198 (0.3198) loss_giou_aux_2: 1.8916 (1.8916) loss_fgl_aux_2: 0.2952 (0.2952) loss_ddf_aux_2: 0.0015 (0.0015) loss_vfl_aux_3: 0.0945 (0.0945) loss_bbox_aux_3: 0.3196 (0.3196) loss_giou_aux_3: 1.8913 (1.8913) loss_fgl_aux_3: 0.2954 (0.2954) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.0945 (0.0945) loss_bbox_aux_4: 0.3195 (0.3195) loss_giou_aux_4: 1.8911 (1.8911) loss_fgl_aux_4: 0.2954 (0.2954) loss_ddf_aux_4: 0.0000 (0.0000) loss_vfl_pre: 0.0903 (0.0903) loss_bbox_pre: 0.3233 (0.3233) loss_giou_pre: 1.8935 (1.8935) loss_vfl_enc_0: 0.0831 (0.0831) loss_bbox_enc_0: 0.3322 (0.3322) loss_giou_enc_0: 1.9256 (1.9256) loss_vfl_dn_0: 0.3721 (0.3721) loss_bbox_dn_0: 0.0461 (0.0461) loss_giou_dn_0: 1.2900 (1.2900) loss_fgl_dn_0: 0.8485 (0.8485) loss_ddf_dn_0: 0.1217 (0.1217) loss_vfl_dn_1: 0.4192 (0.4192) loss_bbox_dn_1: 0.0394 (0.0394) loss_giou_dn_1: 1.2229 (1.2229) loss_fgl_dn_1: 0.8810 (0.8810) loss_ddf_dn_1: 0.0265 (0.0265) loss_vfl_dn_2: 0.4373 (0.4373) loss_bbox_dn_2: 0.0379 (0.0379) loss_giou_dn_2: 1.2136 (1.2136) loss_fgl_dn_2: 0.8848 (0.8848) loss_ddf_dn_2: 0.0025 (0.0025) loss_vfl_dn_3: 0.4207 (0.4207) loss_bbox_dn_3: 0.0376 (0.0376) loss_giou_dn_3: 1.2133 (1.2133) loss_fgl_dn_3: 0.8850 (0.8850) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.4214 (0.4214) loss_bbox_dn_4: 0.0371 (0.0371) loss_giou_dn_4: 1.2130 (1.2130) loss_fgl_dn_4: 0.8850 (0.8850) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4231 (0.4231) loss_bbox_dn_5: 0.0370 (0.0370) loss_giou_dn_5: 1.2129 (1.2129) loss_fgl_dn_5: 0.8850 (0.8850) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3721 (0.3721) loss_bbox_dn_pre: 0.0459 (0.0459) loss_giou_dn_pre: 1.2895 (1.2895) time: 2.0465 data: 0.8869 max mem: 29821\n", + "Epoch: [13] [83/84] eta: 0:00:00 lr: 0.000013 loss: 39.4332 (39.4129) loss_vfl: 0.1521 (0.1535) loss_bbox: 0.3916 (0.3883) loss_giou: 1.9373 (1.9354) loss_fgl: 0.3329 (0.3572) loss_vfl_aux_0: 0.1476 (0.1509) loss_bbox_aux_0: 0.3851 (0.3881) loss_giou_aux_0: 1.9582 (1.9485) loss_fgl_aux_0: 0.3317 (0.3559) loss_ddf_aux_0: 0.0831 (0.1041) loss_vfl_aux_1: 0.1541 (0.1551) loss_bbox_aux_1: 0.3880 (0.3882) loss_giou_aux_1: 1.9389 (1.9375) loss_fgl_aux_1: 0.3326 (0.3565) loss_ddf_aux_1: 0.0135 (0.0164) loss_vfl_aux_2: 0.1481 (0.1539) loss_bbox_aux_2: 0.3918 (0.3885) loss_giou_aux_2: 1.9380 (1.9355) loss_fgl_aux_2: 0.3327 (0.3569) loss_ddf_aux_2: 0.0020 (0.0024) loss_vfl_aux_3: 0.1455 (0.1528) loss_bbox_aux_3: 0.3922 (0.3884) loss_giou_aux_3: 1.9377 (1.9354) loss_fgl_aux_3: 0.3329 (0.3570) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1436 (0.1527) loss_bbox_aux_4: 0.3918 (0.3883) loss_giou_aux_4: 1.9373 (1.9353) loss_fgl_aux_4: 0.3329 (0.3571) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1447 (0.1485) loss_bbox_pre: 0.3916 (0.3941) loss_giou_pre: 1.9510 (1.9401) loss_vfl_enc_0: 0.1326 (0.1376) loss_bbox_enc_0: 0.4138 (0.4115) loss_giou_enc_0: 1.9806 (1.9710) loss_vfl_dn_0: 0.3713 (0.3852) loss_bbox_dn_0: 0.0556 (0.0593) loss_giou_dn_0: 1.3172 (1.2788) loss_fgl_dn_0: 0.8391 (0.8621) loss_ddf_dn_0: 0.1400 (0.1404) loss_vfl_dn_1: 0.4136 (0.4201) loss_bbox_dn_1: 0.0506 (0.0532) loss_giou_dn_1: 1.2206 (1.2108) loss_fgl_dn_1: 0.8624 (0.8830) loss_ddf_dn_1: 0.0359 (0.0340) loss_vfl_dn_2: 0.4202 (0.4254) loss_bbox_dn_2: 0.0487 (0.0512) loss_giou_dn_2: 1.1924 (1.1916) loss_fgl_dn_2: 0.8728 (0.8889) loss_ddf_dn_2: 0.0043 (0.0043) loss_vfl_dn_3: 0.4214 (0.4224) loss_bbox_dn_3: 0.0483 (0.0508) loss_giou_dn_3: 1.1923 (1.1902) loss_fgl_dn_3: 0.8737 (0.8896) loss_ddf_dn_3: 0.0009 (0.0008) loss_vfl_dn_4: 0.4209 (0.4222) loss_bbox_dn_4: 0.0479 (0.0506) loss_giou_dn_4: 1.1924 (1.1897) loss_fgl_dn_4: 0.8743 (0.8899) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4214 (0.4226) loss_bbox_dn_5: 0.0478 (0.0506) loss_giou_dn_5: 1.1924 (1.1897) loss_fgl_dn_5: 0.8745 (0.8899) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3711 (0.3845) loss_bbox_dn_pre: 0.0545 (0.0591) loss_giou_dn_pre: 1.3173 (1.2789) time: 0.8724 data: 0.0184 max mem: 29821\n", + "Epoch: [13] Total time: 0:01:16 (0.9123 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 39.4332 (39.4129) loss_vfl: 0.1521 (0.1535) loss_bbox: 0.3916 (0.3883) loss_giou: 1.9373 (1.9354) loss_fgl: 0.3329 (0.3572) loss_vfl_aux_0: 0.1476 (0.1509) loss_bbox_aux_0: 0.3851 (0.3881) loss_giou_aux_0: 1.9582 (1.9485) loss_fgl_aux_0: 0.3317 (0.3559) loss_ddf_aux_0: 0.0831 (0.1041) loss_vfl_aux_1: 0.1541 (0.1551) loss_bbox_aux_1: 0.3880 (0.3882) loss_giou_aux_1: 1.9389 (1.9375) loss_fgl_aux_1: 0.3326 (0.3565) loss_ddf_aux_1: 0.0135 (0.0164) loss_vfl_aux_2: 0.1481 (0.1539) loss_bbox_aux_2: 0.3918 (0.3885) loss_giou_aux_2: 1.9380 (1.9355) loss_fgl_aux_2: 0.3327 (0.3569) loss_ddf_aux_2: 0.0020 (0.0024) loss_vfl_aux_3: 0.1455 (0.1528) loss_bbox_aux_3: 0.3922 (0.3884) loss_giou_aux_3: 1.9377 (1.9354) loss_fgl_aux_3: 0.3329 (0.3570) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1436 (0.1527) loss_bbox_aux_4: 0.3918 (0.3883) loss_giou_aux_4: 1.9373 (1.9353) loss_fgl_aux_4: 0.3329 (0.3571) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1447 (0.1485) loss_bbox_pre: 0.3916 (0.3941) loss_giou_pre: 1.9510 (1.9401) loss_vfl_enc_0: 0.1326 (0.1376) loss_bbox_enc_0: 0.4138 (0.4115) loss_giou_enc_0: 1.9806 (1.9710) loss_vfl_dn_0: 0.3713 (0.3852) loss_bbox_dn_0: 0.0556 (0.0593) loss_giou_dn_0: 1.3172 (1.2788) loss_fgl_dn_0: 0.8391 (0.8621) loss_ddf_dn_0: 0.1400 (0.1404) loss_vfl_dn_1: 0.4136 (0.4201) loss_bbox_dn_1: 0.0506 (0.0532) loss_giou_dn_1: 1.2206 (1.2108) loss_fgl_dn_1: 0.8624 (0.8830) loss_ddf_dn_1: 0.0359 (0.0340) loss_vfl_dn_2: 0.4202 (0.4254) loss_bbox_dn_2: 0.0487 (0.0512) loss_giou_dn_2: 1.1924 (1.1916) loss_fgl_dn_2: 0.8728 (0.8889) loss_ddf_dn_2: 0.0043 (0.0043) loss_vfl_dn_3: 0.4214 (0.4224) loss_bbox_dn_3: 0.0483 (0.0508) loss_giou_dn_3: 1.1923 (1.1902) loss_fgl_dn_3: 0.8737 (0.8896) loss_ddf_dn_3: 0.0009 (0.0008) loss_vfl_dn_4: 0.4209 (0.4222) loss_bbox_dn_4: 0.0479 (0.0506) loss_giou_dn_4: 1.1924 (1.1897) loss_fgl_dn_4: 0.8743 (0.8899) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4214 (0.4226) loss_bbox_dn_5: 0.0478 (0.0506) loss_giou_dn_5: 1.1924 (1.1897) loss_fgl_dn_5: 0.8745 (0.8899) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3711 (0.3845) loss_bbox_dn_pre: 0.0545 (0.0591) loss_giou_dn_pre: 1.3173 (1.2789)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7698 data: 0.5274 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3904 data: 0.1704 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4058 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.05s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.011\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.028\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.007\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.010\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.085\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.320\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.005\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.025\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.033\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.033\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.176\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.775\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.074\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.022\n", + "best_stat: {'epoch': 11, 'coco_eval_bbox': 0.013863723494761776}\n", + "Epoch: [14] [ 0/84] eta: 0:02:43 lr: 0.000013 loss: 39.4087 (39.4087) loss_vfl: 0.0861 (0.0861) loss_bbox: 0.3572 (0.3572) loss_giou: 2.1871 (2.1871) loss_fgl: 0.1883 (0.1883) loss_vfl_aux_0: 0.0834 (0.0834) loss_bbox_aux_0: 0.3520 (0.3520) loss_giou_aux_0: 2.2010 (2.2010) loss_fgl_aux_0: 0.1891 (0.1891) loss_ddf_aux_0: 0.0512 (0.0512) loss_vfl_aux_1: 0.0880 (0.0880) loss_bbox_aux_1: 0.3530 (0.3530) loss_giou_aux_1: 2.1963 (2.1963) loss_fgl_aux_1: 0.1891 (0.1891) loss_ddf_aux_1: 0.0118 (0.0118) loss_vfl_aux_2: 0.0875 (0.0875) loss_bbox_aux_2: 0.3567 (0.3567) loss_giou_aux_2: 2.1869 (2.1869) loss_fgl_aux_2: 0.1884 (0.1884) loss_ddf_aux_2: 0.0018 (0.0018) loss_vfl_aux_3: 0.0820 (0.0820) loss_bbox_aux_3: 0.3573 (0.3573) loss_giou_aux_3: 2.1863 (2.1863) loss_fgl_aux_3: 0.1883 (0.1883) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.0829 (0.0829) loss_bbox_aux_4: 0.3573 (0.3573) loss_giou_aux_4: 2.1869 (2.1869) loss_fgl_aux_4: 0.1883 (0.1883) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.0815 (0.0815) loss_bbox_pre: 0.3578 (0.3578) loss_giou_pre: 2.1848 (2.1848) loss_vfl_enc_0: 0.0717 (0.0717) loss_bbox_enc_0: 0.3723 (0.3723) loss_giou_enc_0: 2.2324 (2.2324) loss_vfl_dn_0: 0.3467 (0.3467) loss_bbox_dn_0: 0.0461 (0.0461) loss_giou_dn_0: 1.3587 (1.3587) loss_fgl_dn_0: 0.7933 (0.7933) loss_ddf_dn_0: 0.1506 (0.1506) loss_vfl_dn_1: 0.3982 (0.3982) loss_bbox_dn_1: 0.0388 (0.0388) loss_giou_dn_1: 1.2688 (1.2688) loss_fgl_dn_1: 0.8319 (0.8319) loss_ddf_dn_1: 0.0689 (0.0689) loss_vfl_dn_2: 0.4102 (0.4102) loss_bbox_dn_2: 0.0394 (0.0394) loss_giou_dn_2: 1.2345 (1.2345) loss_fgl_dn_2: 0.8309 (0.8309) loss_ddf_dn_2: 0.0045 (0.0045) loss_vfl_dn_3: 0.4104 (0.4104) loss_bbox_dn_3: 0.0398 (0.0398) loss_giou_dn_3: 1.2380 (1.2380) loss_fgl_dn_3: 0.8283 (0.8283) loss_ddf_dn_3: 0.0009 (0.0009) loss_vfl_dn_4: 0.4131 (0.4131) loss_bbox_dn_4: 0.0397 (0.0397) loss_giou_dn_4: 1.2382 (1.2382) loss_fgl_dn_4: 0.8284 (0.8284) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4121 (0.4121) loss_bbox_dn_5: 0.0397 (0.0397) loss_giou_dn_5: 1.2383 (1.2383) loss_fgl_dn_5: 0.8285 (0.8285) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3518 (0.3518) loss_bbox_dn_pre: 0.0442 (0.0442) loss_giou_dn_pre: 1.3504 (1.3504) time: 1.9518 data: 0.9244 max mem: 29821\n", + "Epoch: [14] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.8574 (39.0711) loss_vfl: 0.1434 (0.1584) loss_bbox: 0.3352 (0.3641) loss_giou: 1.9194 (1.9082) loss_fgl: 0.3218 (0.3527) loss_vfl_aux_0: 0.1320 (0.1545) loss_bbox_aux_0: 0.3460 (0.3657) loss_giou_aux_0: 1.9239 (1.9215) loss_fgl_aux_0: 0.3184 (0.3502) loss_ddf_aux_0: 0.1230 (0.1316) loss_vfl_aux_1: 0.1440 (0.1594) loss_bbox_aux_1: 0.3451 (0.3644) loss_giou_aux_1: 1.9178 (1.9102) loss_fgl_aux_1: 0.3197 (0.3515) loss_ddf_aux_1: 0.0254 (0.0221) loss_vfl_aux_2: 0.1472 (0.1610) loss_bbox_aux_2: 0.3366 (0.3642) loss_giou_aux_2: 1.9190 (1.9083) loss_fgl_aux_2: 0.3211 (0.3524) loss_ddf_aux_2: 0.0031 (0.0028) loss_vfl_aux_3: 0.1420 (0.1580) loss_bbox_aux_3: 0.3354 (0.3642) loss_giou_aux_3: 1.9194 (1.9081) loss_fgl_aux_3: 0.3216 (0.3526) loss_ddf_aux_3: 0.0005 (0.0005) loss_vfl_aux_4: 0.1423 (0.1579) loss_bbox_aux_4: 0.3353 (0.3642) loss_giou_aux_4: 1.9193 (1.9081) loss_fgl_aux_4: 0.3218 (0.3527) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1267 (0.1519) loss_bbox_pre: 0.3521 (0.3712) loss_giou_pre: 1.9164 (1.9146) loss_vfl_enc_0: 0.1230 (0.1407) loss_bbox_enc_0: 0.3746 (0.3879) loss_giou_enc_0: 1.9439 (1.9536) loss_vfl_dn_0: 0.3921 (0.3875) loss_bbox_dn_0: 0.0565 (0.0590) loss_giou_dn_0: 1.2447 (1.2684) loss_fgl_dn_0: 0.8689 (0.8667) loss_ddf_dn_0: 0.1263 (0.1653) loss_vfl_dn_1: 0.4148 (0.4201) loss_bbox_dn_1: 0.0511 (0.0532) loss_giou_dn_1: 1.2041 (1.2038) loss_fgl_dn_1: 0.8797 (0.8842) loss_ddf_dn_1: 0.0425 (0.0496) loss_vfl_dn_2: 0.4312 (0.4316) loss_bbox_dn_2: 0.0478 (0.0508) loss_giou_dn_2: 1.1895 (1.1812) loss_fgl_dn_2: 0.8907 (0.8926) loss_ddf_dn_2: 0.0045 (0.0049) loss_vfl_dn_3: 0.4202 (0.4257) loss_bbox_dn_3: 0.0476 (0.0505) loss_giou_dn_3: 1.1901 (1.1800) loss_fgl_dn_3: 0.8923 (0.8932) loss_ddf_dn_3: 0.0007 (0.0008) loss_vfl_dn_4: 0.4146 (0.4251) loss_bbox_dn_4: 0.0474 (0.0503) loss_giou_dn_4: 1.1897 (1.1797) loss_fgl_dn_4: 0.8928 (0.8935) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4153 (0.4262) loss_bbox_dn_5: 0.0473 (0.0503) loss_giou_dn_5: 1.1896 (1.1797) loss_fgl_dn_5: 0.8929 (0.8936) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3938 (0.3872) loss_bbox_dn_pre: 0.0556 (0.0587) loss_giou_dn_pre: 1.2472 (1.2678) time: 0.8812 data: 0.0195 max mem: 29821\n", + "Epoch: [14] Total time: 0:01:16 (0.9078 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.8574 (39.0711) loss_vfl: 0.1434 (0.1584) loss_bbox: 0.3352 (0.3641) loss_giou: 1.9194 (1.9082) loss_fgl: 0.3218 (0.3527) loss_vfl_aux_0: 0.1320 (0.1545) loss_bbox_aux_0: 0.3460 (0.3657) loss_giou_aux_0: 1.9239 (1.9215) loss_fgl_aux_0: 0.3184 (0.3502) loss_ddf_aux_0: 0.1230 (0.1316) loss_vfl_aux_1: 0.1440 (0.1594) loss_bbox_aux_1: 0.3451 (0.3644) loss_giou_aux_1: 1.9178 (1.9102) loss_fgl_aux_1: 0.3197 (0.3515) loss_ddf_aux_1: 0.0254 (0.0221) loss_vfl_aux_2: 0.1472 (0.1610) loss_bbox_aux_2: 0.3366 (0.3642) loss_giou_aux_2: 1.9190 (1.9083) loss_fgl_aux_2: 0.3211 (0.3524) loss_ddf_aux_2: 0.0031 (0.0028) loss_vfl_aux_3: 0.1420 (0.1580) loss_bbox_aux_3: 0.3354 (0.3642) loss_giou_aux_3: 1.9194 (1.9081) loss_fgl_aux_3: 0.3216 (0.3526) loss_ddf_aux_3: 0.0005 (0.0005) loss_vfl_aux_4: 0.1423 (0.1579) loss_bbox_aux_4: 0.3353 (0.3642) loss_giou_aux_4: 1.9193 (1.9081) loss_fgl_aux_4: 0.3218 (0.3527) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1267 (0.1519) loss_bbox_pre: 0.3521 (0.3712) loss_giou_pre: 1.9164 (1.9146) loss_vfl_enc_0: 0.1230 (0.1407) loss_bbox_enc_0: 0.3746 (0.3879) loss_giou_enc_0: 1.9439 (1.9536) loss_vfl_dn_0: 0.3921 (0.3875) loss_bbox_dn_0: 0.0565 (0.0590) loss_giou_dn_0: 1.2447 (1.2684) loss_fgl_dn_0: 0.8689 (0.8667) loss_ddf_dn_0: 0.1263 (0.1653) loss_vfl_dn_1: 0.4148 (0.4201) loss_bbox_dn_1: 0.0511 (0.0532) loss_giou_dn_1: 1.2041 (1.2038) loss_fgl_dn_1: 0.8797 (0.8842) loss_ddf_dn_1: 0.0425 (0.0496) loss_vfl_dn_2: 0.4312 (0.4316) loss_bbox_dn_2: 0.0478 (0.0508) loss_giou_dn_2: 1.1895 (1.1812) loss_fgl_dn_2: 0.8907 (0.8926) loss_ddf_dn_2: 0.0045 (0.0049) loss_vfl_dn_3: 0.4202 (0.4257) loss_bbox_dn_3: 0.0476 (0.0505) loss_giou_dn_3: 1.1901 (1.1800) loss_fgl_dn_3: 0.8923 (0.8932) loss_ddf_dn_3: 0.0007 (0.0008) loss_vfl_dn_4: 0.4146 (0.4251) loss_bbox_dn_4: 0.0474 (0.0503) loss_giou_dn_4: 1.1897 (1.1797) loss_fgl_dn_4: 0.8928 (0.8935) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4153 (0.4262) loss_bbox_dn_5: 0.0473 (0.0503) loss_giou_dn_5: 1.1896 (1.1797) loss_fgl_dn_5: 0.8929 (0.8936) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3938 (0.3872) loss_bbox_dn_pre: 0.0556 (0.0587) loss_giou_dn_pre: 1.2472 (1.2678)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7347 data: 0.4916 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3901 data: 0.1646 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4075 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.019\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.045\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.012\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.013\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.137\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.099\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.023\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.050\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.069\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.065\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.335\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.450\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.155\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.046\n", + "best_stat: {'epoch': 14, 'coco_eval_bbox': 0.018554424649616506}\n", + "Epoch: [15] [ 0/84] eta: 0:02:32 lr: 0.000013 loss: 38.8573 (38.8573) loss_vfl: 0.1042 (0.1042) loss_bbox: 0.4804 (0.4804) loss_giou: 1.7753 (1.7753) loss_fgl: 0.4471 (0.4471) loss_vfl_aux_0: 0.1088 (0.1088) loss_bbox_aux_0: 0.4933 (0.4933) loss_giou_aux_0: 1.7808 (1.7808) loss_fgl_aux_0: 0.4353 (0.4353) loss_ddf_aux_0: 0.2667 (0.2667) loss_vfl_aux_1: 0.1098 (0.1098) loss_bbox_aux_1: 0.4830 (0.4830) loss_giou_aux_1: 1.7715 (1.7715) loss_fgl_aux_1: 0.4408 (0.4408) loss_ddf_aux_1: 0.0490 (0.0490) loss_vfl_aux_2: 0.1096 (0.1096) loss_bbox_aux_2: 0.4800 (0.4800) loss_giou_aux_2: 1.7725 (1.7725) loss_fgl_aux_2: 0.4449 (0.4449) loss_ddf_aux_2: 0.0076 (0.0076) loss_vfl_aux_3: 0.1018 (0.1018) loss_bbox_aux_3: 0.4801 (0.4801) loss_giou_aux_3: 1.7748 (1.7748) loss_fgl_aux_3: 0.4467 (0.4467) loss_ddf_aux_3: 0.0008 (0.0008) loss_vfl_aux_4: 0.1027 (0.1027) loss_bbox_aux_4: 0.4804 (0.4804) loss_giou_aux_4: 1.7752 (1.7752) loss_fgl_aux_4: 0.4471 (0.4471) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1071 (0.1071) loss_bbox_pre: 0.4984 (0.4984) loss_giou_pre: 1.7777 (1.7777) loss_vfl_enc_0: 0.1049 (0.1049) loss_bbox_enc_0: 0.5147 (0.5147) loss_giou_enc_0: 1.8362 (1.8362) loss_vfl_dn_0: 0.3601 (0.3601) loss_bbox_dn_0: 0.0400 (0.0400) loss_giou_dn_0: 1.2941 (1.2941) loss_fgl_dn_0: 0.8176 (0.8176) loss_ddf_dn_0: 0.1108 (0.1108) loss_vfl_dn_1: 0.4158 (0.4158) loss_bbox_dn_1: 0.0373 (0.0373) loss_giou_dn_1: 1.2373 (1.2373) loss_fgl_dn_1: 0.8226 (0.8226) loss_ddf_dn_1: 0.0281 (0.0281) loss_vfl_dn_2: 0.4377 (0.4377) loss_bbox_dn_2: 0.0370 (0.0370) loss_giou_dn_2: 1.2326 (1.2326) loss_fgl_dn_2: 0.8262 (0.8262) loss_ddf_dn_2: 0.0039 (0.0039) loss_vfl_dn_3: 0.3867 (0.3867) loss_bbox_dn_3: 0.0368 (0.0368) loss_giou_dn_3: 1.2317 (1.2317) loss_fgl_dn_3: 0.8291 (0.8291) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.3877 (0.3877) loss_bbox_dn_4: 0.0367 (0.0367) loss_giou_dn_4: 1.2312 (1.2312) loss_fgl_dn_4: 0.8299 (0.8299) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.3879 (0.3879) loss_bbox_dn_5: 0.0366 (0.0366) loss_giou_dn_5: 1.2311 (1.2311) loss_fgl_dn_5: 0.8300 (0.8300) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3623 (0.3623) loss_bbox_dn_pre: 0.0397 (0.0397) loss_giou_dn_pre: 1.2887 (1.2887) time: 1.8185 data: 0.7951 max mem: 29821\n", + "Epoch: [15] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.7254 (39.5323) loss_vfl: 0.1516 (0.1531) loss_bbox: 0.3656 (0.4067) loss_giou: 1.9061 (1.9372) loss_fgl: 0.3191 (0.3474) loss_vfl_aux_0: 0.1459 (0.1496) loss_bbox_aux_0: 0.3696 (0.4087) loss_giou_aux_0: 1.9093 (1.9495) loss_fgl_aux_0: 0.3114 (0.3452) loss_ddf_aux_0: 0.0972 (0.1163) loss_vfl_aux_1: 0.1517 (0.1541) loss_bbox_aux_1: 0.3653 (0.4062) loss_giou_aux_1: 1.9066 (1.9391) loss_fgl_aux_1: 0.3178 (0.3467) loss_ddf_aux_1: 0.0098 (0.0151) loss_vfl_aux_2: 0.1498 (0.1535) loss_bbox_aux_2: 0.3654 (0.4067) loss_giou_aux_2: 1.9051 (1.9373) loss_fgl_aux_2: 0.3189 (0.3472) loss_ddf_aux_2: 0.0015 (0.0023) loss_vfl_aux_3: 0.1532 (0.1531) loss_bbox_aux_3: 0.3655 (0.4067) loss_giou_aux_3: 1.9054 (1.9371) loss_fgl_aux_3: 0.3190 (0.3473) loss_ddf_aux_3: 0.0003 (0.0005) loss_vfl_aux_4: 0.1517 (0.1526) loss_bbox_aux_4: 0.3656 (0.4067) loss_giou_aux_4: 1.9059 (1.9371) loss_fgl_aux_4: 0.3191 (0.3474) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1432 (0.1476) loss_bbox_pre: 0.3764 (0.4132) loss_giou_pre: 1.9057 (1.9441) loss_vfl_enc_0: 0.1282 (0.1375) loss_bbox_enc_0: 0.3923 (0.4306) loss_giou_enc_0: 1.9546 (1.9827) loss_vfl_dn_0: 0.3657 (0.3779) loss_bbox_dn_0: 0.0586 (0.0587) loss_giou_dn_0: 1.3268 (1.3040) loss_fgl_dn_0: 0.8268 (0.8491) loss_ddf_dn_0: 0.2053 (0.1692) loss_vfl_dn_1: 0.4216 (0.4204) loss_bbox_dn_1: 0.0479 (0.0511) loss_giou_dn_1: 1.2034 (1.2084) loss_fgl_dn_1: 0.8643 (0.8737) loss_ddf_dn_1: 0.0340 (0.0337) loss_vfl_dn_2: 0.4336 (0.4282) loss_bbox_dn_2: 0.0458 (0.0496) loss_giou_dn_2: 1.1802 (1.1933) loss_fgl_dn_2: 0.8746 (0.8792) loss_ddf_dn_2: 0.0047 (0.0045) loss_vfl_dn_3: 0.4275 (0.4204) loss_bbox_dn_3: 0.0451 (0.0492) loss_giou_dn_3: 1.1775 (1.1921) loss_fgl_dn_3: 0.8756 (0.8797) loss_ddf_dn_3: 0.0008 (0.0010) loss_vfl_dn_4: 0.4287 (0.4203) loss_bbox_dn_4: 0.0449 (0.0490) loss_giou_dn_4: 1.1770 (1.1914) loss_fgl_dn_4: 0.8759 (0.8801) loss_ddf_dn_4: 0.0001 (0.0002) loss_vfl_dn_5: 0.4253 (0.4211) loss_bbox_dn_5: 0.0449 (0.0490) loss_giou_dn_5: 1.1771 (1.1914) loss_fgl_dn_5: 0.8760 (0.8802) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3645 (0.3765) loss_bbox_dn_pre: 0.0585 (0.0584) loss_giou_dn_pre: 1.3288 (1.3050) time: 0.9085 data: 0.0181 max mem: 29821\n", + "Epoch: [15] Total time: 0:01:16 (0.9160 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.7254 (39.5323) loss_vfl: 0.1516 (0.1531) loss_bbox: 0.3656 (0.4067) loss_giou: 1.9061 (1.9372) loss_fgl: 0.3191 (0.3474) loss_vfl_aux_0: 0.1459 (0.1496) loss_bbox_aux_0: 0.3696 (0.4087) loss_giou_aux_0: 1.9093 (1.9495) loss_fgl_aux_0: 0.3114 (0.3452) loss_ddf_aux_0: 0.0972 (0.1163) loss_vfl_aux_1: 0.1517 (0.1541) loss_bbox_aux_1: 0.3653 (0.4062) loss_giou_aux_1: 1.9066 (1.9391) loss_fgl_aux_1: 0.3178 (0.3467) loss_ddf_aux_1: 0.0098 (0.0151) loss_vfl_aux_2: 0.1498 (0.1535) loss_bbox_aux_2: 0.3654 (0.4067) loss_giou_aux_2: 1.9051 (1.9373) loss_fgl_aux_2: 0.3189 (0.3472) loss_ddf_aux_2: 0.0015 (0.0023) loss_vfl_aux_3: 0.1532 (0.1531) loss_bbox_aux_3: 0.3655 (0.4067) loss_giou_aux_3: 1.9054 (1.9371) loss_fgl_aux_3: 0.3190 (0.3473) loss_ddf_aux_3: 0.0003 (0.0005) loss_vfl_aux_4: 0.1517 (0.1526) loss_bbox_aux_4: 0.3656 (0.4067) loss_giou_aux_4: 1.9059 (1.9371) loss_fgl_aux_4: 0.3191 (0.3474) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1432 (0.1476) loss_bbox_pre: 0.3764 (0.4132) loss_giou_pre: 1.9057 (1.9441) loss_vfl_enc_0: 0.1282 (0.1375) loss_bbox_enc_0: 0.3923 (0.4306) loss_giou_enc_0: 1.9546 (1.9827) loss_vfl_dn_0: 0.3657 (0.3779) loss_bbox_dn_0: 0.0586 (0.0587) loss_giou_dn_0: 1.3268 (1.3040) loss_fgl_dn_0: 0.8268 (0.8491) loss_ddf_dn_0: 0.2053 (0.1692) loss_vfl_dn_1: 0.4216 (0.4204) loss_bbox_dn_1: 0.0479 (0.0511) loss_giou_dn_1: 1.2034 (1.2084) loss_fgl_dn_1: 0.8643 (0.8737) loss_ddf_dn_1: 0.0340 (0.0337) loss_vfl_dn_2: 0.4336 (0.4282) loss_bbox_dn_2: 0.0458 (0.0496) loss_giou_dn_2: 1.1802 (1.1933) loss_fgl_dn_2: 0.8746 (0.8792) loss_ddf_dn_2: 0.0047 (0.0045) loss_vfl_dn_3: 0.4275 (0.4204) loss_bbox_dn_3: 0.0451 (0.0492) loss_giou_dn_3: 1.1775 (1.1921) loss_fgl_dn_3: 0.8756 (0.8797) loss_ddf_dn_3: 0.0008 (0.0010) loss_vfl_dn_4: 0.4287 (0.4203) loss_bbox_dn_4: 0.0449 (0.0490) loss_giou_dn_4: 1.1770 (1.1914) loss_fgl_dn_4: 0.8759 (0.8801) loss_ddf_dn_4: 0.0001 (0.0002) loss_vfl_dn_5: 0.4253 (0.4211) loss_bbox_dn_5: 0.0449 (0.0490) loss_giou_dn_5: 1.1771 (1.1914) loss_fgl_dn_5: 0.8760 (0.8802) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3645 (0.3765) loss_bbox_dn_pre: 0.0585 (0.0584) loss_giou_dn_pre: 1.3288 (1.3050)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7641 data: 0.5235 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3955 data: 0.1727 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4102 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.011\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.030\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.005\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.012\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.035\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.077\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.003\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.032\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.049\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.056\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.126\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.075\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.114\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.029\n", + "best_stat: {'epoch': 14, 'coco_eval_bbox': 0.018554424649616506}\n", + "Epoch: [16] [ 0/84] eta: 0:02:58 lr: 0.000013 loss: 40.3817 (40.3817) loss_vfl: 0.1763 (0.1763) loss_bbox: 0.4278 (0.4278) loss_giou: 2.0710 (2.0710) loss_fgl: 0.2943 (0.2943) loss_vfl_aux_0: 0.1729 (0.1729) loss_bbox_aux_0: 0.4379 (0.4379) loss_giou_aux_0: 2.0671 (2.0671) loss_fgl_aux_0: 0.2898 (0.2898) loss_ddf_aux_0: 0.0439 (0.0439) loss_vfl_aux_1: 0.1840 (0.1840) loss_bbox_aux_1: 0.4268 (0.4268) loss_giou_aux_1: 2.0717 (2.0717) loss_fgl_aux_1: 0.2945 (0.2945) loss_ddf_aux_1: 0.0058 (0.0058) loss_vfl_aux_2: 0.1847 (0.1847) loss_bbox_aux_2: 0.4282 (0.4282) loss_giou_aux_2: 2.0700 (2.0700) loss_fgl_aux_2: 0.2941 (0.2941) loss_ddf_aux_2: 0.0012 (0.0012) loss_vfl_aux_3: 0.1826 (0.1826) loss_bbox_aux_3: 0.4281 (0.4281) loss_giou_aux_3: 2.0704 (2.0704) loss_fgl_aux_3: 0.2942 (0.2942) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1782 (0.1782) loss_bbox_aux_4: 0.4279 (0.4279) loss_giou_aux_4: 2.0709 (2.0709) loss_fgl_aux_4: 0.2943 (0.2943) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1682 (0.1682) loss_bbox_pre: 0.4450 (0.4450) loss_giou_pre: 2.0618 (2.0618) loss_vfl_enc_0: 0.1597 (0.1597) loss_bbox_enc_0: 0.4619 (0.4619) loss_giou_enc_0: 2.0796 (2.0796) loss_vfl_dn_0: 0.3555 (0.3555) loss_bbox_dn_0: 0.0521 (0.0521) loss_giou_dn_0: 1.3261 (1.3261) loss_fgl_dn_0: 0.8251 (0.8251) loss_ddf_dn_0: 0.2397 (0.2397) loss_vfl_dn_1: 0.4255 (0.4255) loss_bbox_dn_1: 0.0426 (0.0426) loss_giou_dn_1: 1.1862 (1.1862) loss_fgl_dn_1: 0.8615 (0.8615) loss_ddf_dn_1: 0.0513 (0.0513) loss_vfl_dn_2: 0.4216 (0.4216) loss_bbox_dn_2: 0.0415 (0.0415) loss_giou_dn_2: 1.1696 (1.1696) loss_fgl_dn_2: 0.8652 (0.8652) loss_ddf_dn_2: 0.0058 (0.0058) loss_vfl_dn_3: 0.4275 (0.4275) loss_bbox_dn_3: 0.0411 (0.0411) loss_giou_dn_3: 1.1669 (1.1669) loss_fgl_dn_3: 0.8665 (0.8665) loss_ddf_dn_3: 0.0011 (0.0011) loss_vfl_dn_4: 0.4312 (0.4312) loss_bbox_dn_4: 0.0410 (0.0410) loss_giou_dn_4: 1.1668 (1.1668) loss_fgl_dn_4: 0.8668 (0.8668) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4321 (0.4321) loss_bbox_dn_5: 0.0410 (0.0410) loss_giou_dn_5: 1.1669 (1.1669) loss_fgl_dn_5: 0.8668 (0.8668) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3577 (0.3577) loss_bbox_dn_pre: 0.0504 (0.0504) loss_giou_dn_pre: 1.3230 (1.3230) time: 2.1225 data: 1.0782 max mem: 29821\n", + "Epoch: [16] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.5950 (38.7666) loss_vfl: 0.1389 (0.1535) loss_bbox: 0.3014 (0.3448) loss_giou: 1.8792 (1.9063) loss_fgl: 0.3714 (0.3571) loss_vfl_aux_0: 0.1320 (0.1511) loss_bbox_aux_0: 0.3102 (0.3464) loss_giou_aux_0: 1.8883 (1.9178) loss_fgl_aux_0: 0.3671 (0.3554) loss_ddf_aux_0: 0.0804 (0.0968) loss_vfl_aux_1: 0.1495 (0.1563) loss_bbox_aux_1: 0.3046 (0.3452) loss_giou_aux_1: 1.8838 (1.9081) loss_fgl_aux_1: 0.3702 (0.3563) loss_ddf_aux_1: 0.0177 (0.0140) loss_vfl_aux_2: 0.1398 (0.1535) loss_bbox_aux_2: 0.3032 (0.3451) loss_giou_aux_2: 1.8800 (1.9064) loss_fgl_aux_2: 0.3713 (0.3568) loss_ddf_aux_2: 0.0031 (0.0024) loss_vfl_aux_3: 0.1395 (0.1524) loss_bbox_aux_3: 0.3020 (0.3448) loss_giou_aux_3: 1.8793 (1.9062) loss_fgl_aux_3: 0.3713 (0.3570) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1378 (0.1525) loss_bbox_aux_4: 0.3015 (0.3448) loss_giou_aux_4: 1.8792 (1.9063) loss_fgl_aux_4: 0.3713 (0.3571) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1293 (0.1485) loss_bbox_pre: 0.3155 (0.3521) loss_giou_pre: 1.8834 (1.9103) loss_vfl_enc_0: 0.1255 (0.1390) loss_bbox_enc_0: 0.3229 (0.3728) loss_giou_enc_0: 1.9199 (1.9452) loss_vfl_dn_0: 0.3918 (0.3830) loss_bbox_dn_0: 0.0551 (0.0587) loss_giou_dn_0: 1.2608 (1.2737) loss_fgl_dn_0: 0.8802 (0.8605) loss_ddf_dn_0: 0.1700 (0.1766) loss_vfl_dn_1: 0.4233 (0.4277) loss_bbox_dn_1: 0.0465 (0.0506) loss_giou_dn_1: 1.1888 (1.1843) loss_fgl_dn_1: 0.8917 (0.8883) loss_ddf_dn_1: 0.0451 (0.0371) loss_vfl_dn_2: 0.4333 (0.4328) loss_bbox_dn_2: 0.0446 (0.0489) loss_giou_dn_2: 1.1640 (1.1632) loss_fgl_dn_2: 0.9024 (0.8942) loss_ddf_dn_2: 0.0065 (0.0046) loss_vfl_dn_3: 0.4290 (0.4296) loss_bbox_dn_3: 0.0443 (0.0485) loss_giou_dn_3: 1.1606 (1.1617) loss_fgl_dn_3: 0.9034 (0.8948) loss_ddf_dn_3: 0.0009 (0.0008) loss_vfl_dn_4: 0.4275 (0.4296) loss_bbox_dn_4: 0.0442 (0.0484) loss_giou_dn_4: 1.1617 (1.1615) loss_fgl_dn_4: 0.9042 (0.8950) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4263 (0.4302) loss_bbox_dn_5: 0.0442 (0.0484) loss_giou_dn_5: 1.1616 (1.1615) loss_fgl_dn_5: 0.9041 (0.8951) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3894 (0.3831) loss_bbox_dn_pre: 0.0545 (0.0579) loss_giou_dn_pre: 1.2675 (1.2732) time: 0.8931 data: 0.0177 max mem: 29821\n", + "Epoch: [16] Total time: 0:01:16 (0.9100 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.5950 (38.7666) loss_vfl: 0.1389 (0.1535) loss_bbox: 0.3014 (0.3448) loss_giou: 1.8792 (1.9063) loss_fgl: 0.3714 (0.3571) loss_vfl_aux_0: 0.1320 (0.1511) loss_bbox_aux_0: 0.3102 (0.3464) loss_giou_aux_0: 1.8883 (1.9178) loss_fgl_aux_0: 0.3671 (0.3554) loss_ddf_aux_0: 0.0804 (0.0968) loss_vfl_aux_1: 0.1495 (0.1563) loss_bbox_aux_1: 0.3046 (0.3452) loss_giou_aux_1: 1.8838 (1.9081) loss_fgl_aux_1: 0.3702 (0.3563) loss_ddf_aux_1: 0.0177 (0.0140) loss_vfl_aux_2: 0.1398 (0.1535) loss_bbox_aux_2: 0.3032 (0.3451) loss_giou_aux_2: 1.8800 (1.9064) loss_fgl_aux_2: 0.3713 (0.3568) loss_ddf_aux_2: 0.0031 (0.0024) loss_vfl_aux_3: 0.1395 (0.1524) loss_bbox_aux_3: 0.3020 (0.3448) loss_giou_aux_3: 1.8793 (1.9062) loss_fgl_aux_3: 0.3713 (0.3570) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1378 (0.1525) loss_bbox_aux_4: 0.3015 (0.3448) loss_giou_aux_4: 1.8792 (1.9063) loss_fgl_aux_4: 0.3713 (0.3571) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1293 (0.1485) loss_bbox_pre: 0.3155 (0.3521) loss_giou_pre: 1.8834 (1.9103) loss_vfl_enc_0: 0.1255 (0.1390) loss_bbox_enc_0: 0.3229 (0.3728) loss_giou_enc_0: 1.9199 (1.9452) loss_vfl_dn_0: 0.3918 (0.3830) loss_bbox_dn_0: 0.0551 (0.0587) loss_giou_dn_0: 1.2608 (1.2737) loss_fgl_dn_0: 0.8802 (0.8605) loss_ddf_dn_0: 0.1700 (0.1766) loss_vfl_dn_1: 0.4233 (0.4277) loss_bbox_dn_1: 0.0465 (0.0506) loss_giou_dn_1: 1.1888 (1.1843) loss_fgl_dn_1: 0.8917 (0.8883) loss_ddf_dn_1: 0.0451 (0.0371) loss_vfl_dn_2: 0.4333 (0.4328) loss_bbox_dn_2: 0.0446 (0.0489) loss_giou_dn_2: 1.1640 (1.1632) loss_fgl_dn_2: 0.9024 (0.8942) loss_ddf_dn_2: 0.0065 (0.0046) loss_vfl_dn_3: 0.4290 (0.4296) loss_bbox_dn_3: 0.0443 (0.0485) loss_giou_dn_3: 1.1606 (1.1617) loss_fgl_dn_3: 0.9034 (0.8948) loss_ddf_dn_3: 0.0009 (0.0008) loss_vfl_dn_4: 0.4275 (0.4296) loss_bbox_dn_4: 0.0442 (0.0484) loss_giou_dn_4: 1.1617 (1.1615) loss_fgl_dn_4: 0.9042 (0.8950) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4263 (0.4302) loss_bbox_dn_5: 0.0442 (0.0484) loss_giou_dn_5: 1.1616 (1.1615) loss_fgl_dn_5: 0.9041 (0.8951) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3894 (0.3831) loss_bbox_dn_pre: 0.0545 (0.0579) loss_giou_dn_pre: 1.2675 (1.2732)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7453 data: 0.5004 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3995 data: 0.1702 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4146 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.011\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.030\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.006\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.012\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.080\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.304\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.006\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.038\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.052\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.060\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.132\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.300\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.136\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.027\n", + "best_stat: {'epoch': 14, 'coco_eval_bbox': 0.018554424649616506}\n", + "Epoch: [17] [ 0/84] eta: 0:02:35 lr: 0.000013 loss: 38.2785 (38.2785) loss_vfl: 0.1008 (0.1008) loss_bbox: 0.3136 (0.3136) loss_giou: 2.0399 (2.0399) loss_fgl: 0.2679 (0.2679) loss_vfl_aux_0: 0.1046 (0.1046) loss_bbox_aux_0: 0.3198 (0.3198) loss_giou_aux_0: 2.0299 (2.0299) loss_fgl_aux_0: 0.2667 (0.2667) loss_ddf_aux_0: 0.0542 (0.0542) loss_vfl_aux_1: 0.1108 (0.1108) loss_bbox_aux_1: 0.3154 (0.3154) loss_giou_aux_1: 2.0346 (2.0346) loss_fgl_aux_1: 0.2674 (0.2674) loss_ddf_aux_1: 0.0098 (0.0098) loss_vfl_aux_2: 0.1036 (0.1036) loss_bbox_aux_2: 0.3143 (0.3143) loss_giou_aux_2: 2.0359 (2.0359) loss_fgl_aux_2: 0.2680 (0.2680) loss_ddf_aux_2: 0.0018 (0.0018) loss_vfl_aux_3: 0.1047 (0.1047) loss_bbox_aux_3: 0.3139 (0.3139) loss_giou_aux_3: 2.0387 (2.0387) loss_fgl_aux_3: 0.2678 (0.2678) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1017 (0.1017) loss_bbox_aux_4: 0.3136 (0.3136) loss_giou_aux_4: 2.0398 (2.0398) loss_fgl_aux_4: 0.2678 (0.2678) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1024 (0.1024) loss_bbox_pre: 0.3268 (0.3268) loss_giou_pre: 2.0215 (2.0215) loss_vfl_enc_0: 0.0942 (0.0942) loss_bbox_enc_0: 0.3326 (0.3326) loss_giou_enc_0: 2.0517 (2.0517) loss_vfl_dn_0: 0.3486 (0.3486) loss_bbox_dn_0: 0.0507 (0.0507) loss_giou_dn_0: 1.3112 (1.3112) loss_fgl_dn_0: 0.7972 (0.7972) loss_ddf_dn_0: 0.1615 (0.1615) loss_vfl_dn_1: 0.4172 (0.4172) loss_bbox_dn_1: 0.0395 (0.0395) loss_giou_dn_1: 1.1947 (1.1947) loss_fgl_dn_1: 0.8639 (0.8639) loss_ddf_dn_1: 0.0371 (0.0371) loss_vfl_dn_2: 0.4204 (0.4204) loss_bbox_dn_2: 0.0365 (0.0365) loss_giou_dn_2: 1.1766 (1.1766) loss_fgl_dn_2: 0.8735 (0.8735) loss_ddf_dn_2: 0.0028 (0.0028) loss_vfl_dn_3: 0.4170 (0.4170) loss_bbox_dn_3: 0.0366 (0.0366) loss_giou_dn_3: 1.1777 (1.1777) loss_fgl_dn_3: 0.8733 (0.8733) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.4133 (0.4133) loss_bbox_dn_4: 0.0365 (0.0365) loss_giou_dn_4: 1.1784 (1.1784) loss_fgl_dn_4: 0.8731 (0.8731) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4116 (0.4116) loss_bbox_dn_5: 0.0365 (0.0365) loss_giou_dn_5: 1.1785 (1.1785) loss_fgl_dn_5: 0.8731 (0.8731) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3550 (0.3550) loss_bbox_dn_pre: 0.0489 (0.0489) loss_giou_dn_pre: 1.3004 (1.3004) time: 1.8511 data: 0.9097 max mem: 29821\n", + "Epoch: [17] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.9714 (39.1231) loss_vfl: 0.1500 (0.1641) loss_bbox: 0.3213 (0.3565) loss_giou: 1.9326 (1.9033) loss_fgl: 0.3737 (0.3726) loss_vfl_aux_0: 0.1512 (0.1635) loss_bbox_aux_0: 0.3207 (0.3586) loss_giou_aux_0: 1.9486 (1.9165) loss_fgl_aux_0: 0.3727 (0.3711) loss_ddf_aux_0: 0.1022 (0.1107) loss_vfl_aux_1: 0.1536 (0.1669) loss_bbox_aux_1: 0.3221 (0.3578) loss_giou_aux_1: 1.9344 (1.9048) loss_fgl_aux_1: 0.3729 (0.3718) loss_ddf_aux_1: 0.0135 (0.0163) loss_vfl_aux_2: 0.1489 (0.1652) loss_bbox_aux_2: 0.3213 (0.3569) loss_giou_aux_2: 1.9331 (1.9035) loss_fgl_aux_2: 0.3734 (0.3725) loss_ddf_aux_2: 0.0025 (0.0024) loss_vfl_aux_3: 0.1506 (0.1650) loss_bbox_aux_3: 0.3212 (0.3567) loss_giou_aux_3: 1.9327 (1.9034) loss_fgl_aux_3: 0.3736 (0.3726) loss_ddf_aux_3: 0.0004 (0.0003) loss_vfl_aux_4: 0.1506 (0.1639) loss_bbox_aux_4: 0.3212 (0.3566) loss_giou_aux_4: 1.9327 (1.9033) loss_fgl_aux_4: 0.3737 (0.3726) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1486 (0.1612) loss_bbox_pre: 0.3248 (0.3634) loss_giou_pre: 1.9404 (1.9100) loss_vfl_enc_0: 0.1407 (0.1513) loss_bbox_enc_0: 0.3490 (0.3850) loss_giou_enc_0: 1.9681 (1.9460) loss_vfl_dn_0: 0.3792 (0.3952) loss_bbox_dn_0: 0.0546 (0.0572) loss_giou_dn_0: 1.3011 (1.2548) loss_fgl_dn_0: 0.8507 (0.8787) loss_ddf_dn_0: 0.2352 (0.1906) loss_vfl_dn_1: 0.4312 (0.4392) loss_bbox_dn_1: 0.0481 (0.0497) loss_giou_dn_1: 1.1785 (1.1648) loss_fgl_dn_1: 0.8856 (0.9078) loss_ddf_dn_1: 0.0296 (0.0362) loss_vfl_dn_2: 0.4302 (0.4412) loss_bbox_dn_2: 0.0483 (0.0478) loss_giou_dn_2: 1.1649 (1.1508) loss_fgl_dn_2: 0.8898 (0.9114) loss_ddf_dn_2: 0.0038 (0.0037) loss_vfl_dn_3: 0.4285 (0.4381) loss_bbox_dn_3: 0.0478 (0.0474) loss_giou_dn_3: 1.1643 (1.1496) loss_fgl_dn_3: 0.8908 (0.9119) loss_ddf_dn_3: 0.0007 (0.0006) loss_vfl_dn_4: 0.4272 (0.4373) loss_bbox_dn_4: 0.0476 (0.0473) loss_giou_dn_4: 1.1636 (1.1494) loss_fgl_dn_4: 0.8914 (0.9120) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4282 (0.4380) loss_bbox_dn_5: 0.0476 (0.0473) loss_giou_dn_5: 1.1636 (1.1494) loss_fgl_dn_5: 0.8915 (0.9121) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3770 (0.3937) loss_bbox_dn_pre: 0.0545 (0.0573) loss_giou_dn_pre: 1.3051 (1.2562) time: 0.9066 data: 0.0171 max mem: 29821\n", + "Epoch: [17] Total time: 0:01:16 (0.9153 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.9714 (39.1231) loss_vfl: 0.1500 (0.1641) loss_bbox: 0.3213 (0.3565) loss_giou: 1.9326 (1.9033) loss_fgl: 0.3737 (0.3726) loss_vfl_aux_0: 0.1512 (0.1635) loss_bbox_aux_0: 0.3207 (0.3586) loss_giou_aux_0: 1.9486 (1.9165) loss_fgl_aux_0: 0.3727 (0.3711) loss_ddf_aux_0: 0.1022 (0.1107) loss_vfl_aux_1: 0.1536 (0.1669) loss_bbox_aux_1: 0.3221 (0.3578) loss_giou_aux_1: 1.9344 (1.9048) loss_fgl_aux_1: 0.3729 (0.3718) loss_ddf_aux_1: 0.0135 (0.0163) loss_vfl_aux_2: 0.1489 (0.1652) loss_bbox_aux_2: 0.3213 (0.3569) loss_giou_aux_2: 1.9331 (1.9035) loss_fgl_aux_2: 0.3734 (0.3725) loss_ddf_aux_2: 0.0025 (0.0024) loss_vfl_aux_3: 0.1506 (0.1650) loss_bbox_aux_3: 0.3212 (0.3567) loss_giou_aux_3: 1.9327 (1.9034) loss_fgl_aux_3: 0.3736 (0.3726) loss_ddf_aux_3: 0.0004 (0.0003) loss_vfl_aux_4: 0.1506 (0.1639) loss_bbox_aux_4: 0.3212 (0.3566) loss_giou_aux_4: 1.9327 (1.9033) loss_fgl_aux_4: 0.3737 (0.3726) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1486 (0.1612) loss_bbox_pre: 0.3248 (0.3634) loss_giou_pre: 1.9404 (1.9100) loss_vfl_enc_0: 0.1407 (0.1513) loss_bbox_enc_0: 0.3490 (0.3850) loss_giou_enc_0: 1.9681 (1.9460) loss_vfl_dn_0: 0.3792 (0.3952) loss_bbox_dn_0: 0.0546 (0.0572) loss_giou_dn_0: 1.3011 (1.2548) loss_fgl_dn_0: 0.8507 (0.8787) loss_ddf_dn_0: 0.2352 (0.1906) loss_vfl_dn_1: 0.4312 (0.4392) loss_bbox_dn_1: 0.0481 (0.0497) loss_giou_dn_1: 1.1785 (1.1648) loss_fgl_dn_1: 0.8856 (0.9078) loss_ddf_dn_1: 0.0296 (0.0362) loss_vfl_dn_2: 0.4302 (0.4412) loss_bbox_dn_2: 0.0483 (0.0478) loss_giou_dn_2: 1.1649 (1.1508) loss_fgl_dn_2: 0.8898 (0.9114) loss_ddf_dn_2: 0.0038 (0.0037) loss_vfl_dn_3: 0.4285 (0.4381) loss_bbox_dn_3: 0.0478 (0.0474) loss_giou_dn_3: 1.1643 (1.1496) loss_fgl_dn_3: 0.8908 (0.9119) loss_ddf_dn_3: 0.0007 (0.0006) loss_vfl_dn_4: 0.4272 (0.4373) loss_bbox_dn_4: 0.0476 (0.0473) loss_giou_dn_4: 1.1636 (1.1494) loss_fgl_dn_4: 0.8914 (0.9120) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4282 (0.4380) loss_bbox_dn_5: 0.0476 (0.0473) loss_giou_dn_5: 1.1636 (1.1494) loss_fgl_dn_5: 0.8915 (0.9121) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3770 (0.3937) loss_bbox_dn_pre: 0.0545 (0.0573) loss_giou_dn_pre: 1.3051 (1.2562)\n", + "Test: [0/4] eta: 0:00:03 time: 0.8058 data: 0.5627 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4044 data: 0.1781 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4194 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.013\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.034\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.007\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.014\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.100\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.034\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.005\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.044\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.057\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.064\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.188\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.100\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.139\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.033\n", + "best_stat: {'epoch': 14, 'coco_eval_bbox': 0.018554424649616506}\n", + "Epoch: [18] [ 0/84] eta: 0:02:50 lr: 0.000013 loss: 38.3527 (38.3527) loss_vfl: 0.0899 (0.0899) loss_bbox: 0.3186 (0.3186) loss_giou: 2.0559 (2.0559) loss_fgl: 0.2535 (0.2535) loss_vfl_aux_0: 0.0909 (0.0909) loss_bbox_aux_0: 0.3176 (0.3176) loss_giou_aux_0: 2.0707 (2.0707) loss_fgl_aux_0: 0.2529 (0.2529) loss_ddf_aux_0: 0.0552 (0.0552) loss_vfl_aux_1: 0.0960 (0.0960) loss_bbox_aux_1: 0.3181 (0.3181) loss_giou_aux_1: 2.0579 (2.0579) loss_fgl_aux_1: 0.2539 (0.2539) loss_ddf_aux_1: 0.0075 (0.0075) loss_vfl_aux_2: 0.0925 (0.0925) loss_bbox_aux_2: 0.3186 (0.3186) loss_giou_aux_2: 2.0563 (2.0563) loss_fgl_aux_2: 0.2538 (0.2538) loss_ddf_aux_2: 0.0017 (0.0017) loss_vfl_aux_3: 0.0895 (0.0895) loss_bbox_aux_3: 0.3187 (0.3187) loss_giou_aux_3: 2.0559 (2.0559) loss_fgl_aux_3: 0.2536 (0.2536) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.0892 (0.0892) loss_bbox_aux_4: 0.3186 (0.3186) loss_giou_aux_4: 2.0559 (2.0559) loss_fgl_aux_4: 0.2536 (0.2536) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.0897 (0.0897) loss_bbox_pre: 0.3212 (0.3212) loss_giou_pre: 2.0662 (2.0662) loss_vfl_enc_0: 0.0896 (0.0896) loss_bbox_enc_0: 0.3503 (0.3503) loss_giou_enc_0: 2.0887 (2.0887) loss_vfl_dn_0: 0.3586 (0.3586) loss_bbox_dn_0: 0.0406 (0.0406) loss_giou_dn_0: 1.3343 (1.3343) loss_fgl_dn_0: 0.8209 (0.8209) loss_ddf_dn_0: 0.1531 (0.1531) loss_vfl_dn_1: 0.4268 (0.4268) loss_bbox_dn_1: 0.0376 (0.0376) loss_giou_dn_1: 1.1850 (1.1850) loss_fgl_dn_1: 0.8639 (0.8639) loss_ddf_dn_1: 0.0164 (0.0164) loss_vfl_dn_2: 0.4229 (0.4229) loss_bbox_dn_2: 0.0369 (0.0369) loss_giou_dn_2: 1.1711 (1.1711) loss_fgl_dn_2: 0.8664 (0.8664) loss_ddf_dn_2: 0.0022 (0.0022) loss_vfl_dn_3: 0.4170 (0.4170) loss_bbox_dn_3: 0.0368 (0.0368) loss_giou_dn_3: 1.1704 (1.1704) loss_fgl_dn_3: 0.8673 (0.8673) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4185 (0.4185) loss_bbox_dn_4: 0.0368 (0.0368) loss_giou_dn_4: 1.1701 (1.1701) loss_fgl_dn_4: 0.8679 (0.8679) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4214 (0.4214) loss_bbox_dn_5: 0.0368 (0.0368) loss_giou_dn_5: 1.1702 (1.1702) loss_fgl_dn_5: 0.8679 (0.8679) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3564 (0.3564) loss_bbox_dn_pre: 0.0407 (0.0407) loss_giou_dn_pre: 1.3349 (1.3349) time: 2.0294 data: 0.9535 max mem: 29821\n", + "Epoch: [18] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.5546 (38.9107) loss_vfl: 0.1570 (0.1585) loss_bbox: 0.3023 (0.3490) loss_giou: 1.8883 (1.8973) loss_fgl: 0.3608 (0.3681) loss_vfl_aux_0: 0.1541 (0.1560) loss_bbox_aux_0: 0.3092 (0.3553) loss_giou_aux_0: 1.9075 (1.9100) loss_fgl_aux_0: 0.3605 (0.3659) loss_ddf_aux_0: 0.1203 (0.1187) loss_vfl_aux_1: 0.1569 (0.1608) loss_bbox_aux_1: 0.3054 (0.3496) loss_giou_aux_1: 1.8930 (1.8997) loss_fgl_aux_1: 0.3605 (0.3675) loss_ddf_aux_1: 0.0165 (0.0161) loss_vfl_aux_2: 0.1569 (0.1598) loss_bbox_aux_2: 0.3041 (0.3492) loss_giou_aux_2: 1.8896 (1.8977) loss_fgl_aux_2: 0.3607 (0.3679) loss_ddf_aux_2: 0.0026 (0.0026) loss_vfl_aux_3: 0.1554 (0.1588) loss_bbox_aux_3: 0.3027 (0.3490) loss_giou_aux_3: 1.8887 (1.8973) loss_fgl_aux_3: 0.3606 (0.3680) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1566 (0.1583) loss_bbox_aux_4: 0.3023 (0.3490) loss_giou_aux_4: 1.8884 (1.8972) loss_fgl_aux_4: 0.3608 (0.3681) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1503 (0.1537) loss_bbox_pre: 0.3165 (0.3606) loss_giou_pre: 1.8955 (1.9040) loss_vfl_enc_0: 0.1450 (0.1471) loss_bbox_enc_0: 0.3397 (0.3789) loss_giou_enc_0: 1.9335 (1.9384) loss_vfl_dn_0: 0.3945 (0.3928) loss_bbox_dn_0: 0.0562 (0.0587) loss_giou_dn_0: 1.2324 (1.2518) loss_fgl_dn_0: 0.8845 (0.8767) loss_ddf_dn_0: 0.1626 (0.1841) loss_vfl_dn_1: 0.4275 (0.4350) loss_bbox_dn_1: 0.0481 (0.0503) loss_giou_dn_1: 1.1713 (1.1667) loss_fgl_dn_1: 0.9059 (0.9046) loss_ddf_dn_1: 0.0323 (0.0357) loss_vfl_dn_2: 0.4355 (0.4401) loss_bbox_dn_2: 0.0460 (0.0484) loss_giou_dn_2: 1.1518 (1.1483) loss_fgl_dn_2: 0.9090 (0.9093) loss_ddf_dn_2: 0.0033 (0.0041) loss_vfl_dn_3: 0.4343 (0.4360) loss_bbox_dn_3: 0.0459 (0.0481) loss_giou_dn_3: 1.1500 (1.1470) loss_fgl_dn_3: 0.9101 (0.9098) loss_ddf_dn_3: 0.0005 (0.0007) loss_vfl_dn_4: 0.4353 (0.4357) loss_bbox_dn_4: 0.0457 (0.0480) loss_giou_dn_4: 1.1497 (1.1466) loss_fgl_dn_4: 0.9109 (0.9101) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4370 (0.4362) loss_bbox_dn_5: 0.0456 (0.0480) loss_giou_dn_5: 1.1499 (1.1466) loss_fgl_dn_5: 0.9109 (0.9101) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3967 (0.3923) loss_bbox_dn_pre: 0.0558 (0.0585) loss_giou_dn_pre: 1.2370 (1.2515) time: 0.8812 data: 0.0185 max mem: 29821\n", + "Epoch: [18] Total time: 0:01:15 (0.8936 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.5546 (38.9107) loss_vfl: 0.1570 (0.1585) loss_bbox: 0.3023 (0.3490) loss_giou: 1.8883 (1.8973) loss_fgl: 0.3608 (0.3681) loss_vfl_aux_0: 0.1541 (0.1560) loss_bbox_aux_0: 0.3092 (0.3553) loss_giou_aux_0: 1.9075 (1.9100) loss_fgl_aux_0: 0.3605 (0.3659) loss_ddf_aux_0: 0.1203 (0.1187) loss_vfl_aux_1: 0.1569 (0.1608) loss_bbox_aux_1: 0.3054 (0.3496) loss_giou_aux_1: 1.8930 (1.8997) loss_fgl_aux_1: 0.3605 (0.3675) loss_ddf_aux_1: 0.0165 (0.0161) loss_vfl_aux_2: 0.1569 (0.1598) loss_bbox_aux_2: 0.3041 (0.3492) loss_giou_aux_2: 1.8896 (1.8977) loss_fgl_aux_2: 0.3607 (0.3679) loss_ddf_aux_2: 0.0026 (0.0026) loss_vfl_aux_3: 0.1554 (0.1588) loss_bbox_aux_3: 0.3027 (0.3490) loss_giou_aux_3: 1.8887 (1.8973) loss_fgl_aux_3: 0.3606 (0.3680) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1566 (0.1583) loss_bbox_aux_4: 0.3023 (0.3490) loss_giou_aux_4: 1.8884 (1.8972) loss_fgl_aux_4: 0.3608 (0.3681) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1503 (0.1537) loss_bbox_pre: 0.3165 (0.3606) loss_giou_pre: 1.8955 (1.9040) loss_vfl_enc_0: 0.1450 (0.1471) loss_bbox_enc_0: 0.3397 (0.3789) loss_giou_enc_0: 1.9335 (1.9384) loss_vfl_dn_0: 0.3945 (0.3928) loss_bbox_dn_0: 0.0562 (0.0587) loss_giou_dn_0: 1.2324 (1.2518) loss_fgl_dn_0: 0.8845 (0.8767) loss_ddf_dn_0: 0.1626 (0.1841) loss_vfl_dn_1: 0.4275 (0.4350) loss_bbox_dn_1: 0.0481 (0.0503) loss_giou_dn_1: 1.1713 (1.1667) loss_fgl_dn_1: 0.9059 (0.9046) loss_ddf_dn_1: 0.0323 (0.0357) loss_vfl_dn_2: 0.4355 (0.4401) loss_bbox_dn_2: 0.0460 (0.0484) loss_giou_dn_2: 1.1518 (1.1483) loss_fgl_dn_2: 0.9090 (0.9093) loss_ddf_dn_2: 0.0033 (0.0041) loss_vfl_dn_3: 0.4343 (0.4360) loss_bbox_dn_3: 0.0459 (0.0481) loss_giou_dn_3: 1.1500 (1.1470) loss_fgl_dn_3: 0.9101 (0.9098) loss_ddf_dn_3: 0.0005 (0.0007) loss_vfl_dn_4: 0.4353 (0.4357) loss_bbox_dn_4: 0.0457 (0.0480) loss_giou_dn_4: 1.1497 (1.1466) loss_fgl_dn_4: 0.9109 (0.9101) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4370 (0.4362) loss_bbox_dn_5: 0.0456 (0.0480) loss_giou_dn_5: 1.1499 (1.1466) loss_fgl_dn_5: 0.9109 (0.9101) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3967 (0.3923) loss_bbox_dn_pre: 0.0558 (0.0585) loss_giou_dn_pre: 1.2370 (1.2515)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7281 data: 0.4800 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3922 data: 0.1619 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4069 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.016\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.044\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.008\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.016\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.090\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.114\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.015\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.049\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.064\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.069\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.183\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.175\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.146\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.030\n", + "best_stat: {'epoch': 14, 'coco_eval_bbox': 0.018554424649616506}\n", + "Epoch: [19] [ 0/84] eta: 0:03:25 lr: 0.000013 loss: 42.1010 (42.1010) loss_vfl: 0.0566 (0.0566) loss_bbox: 0.6762 (0.6762) loss_giou: 2.2830 (2.2830) loss_fgl: 0.1968 (0.1968) loss_vfl_aux_0: 0.0574 (0.0574) loss_bbox_aux_0: 0.6754 (0.6754) loss_giou_aux_0: 2.2880 (2.2880) loss_fgl_aux_0: 0.1965 (0.1965) loss_ddf_aux_0: 0.0102 (0.0102) loss_vfl_aux_1: 0.0593 (0.0593) loss_bbox_aux_1: 0.6752 (0.6752) loss_giou_aux_1: 2.2848 (2.2848) loss_fgl_aux_1: 0.1969 (0.1969) loss_ddf_aux_1: 0.0013 (0.0013) loss_vfl_aux_2: 0.0578 (0.0578) loss_bbox_aux_2: 0.6759 (0.6759) loss_giou_aux_2: 2.2832 (2.2832) loss_fgl_aux_2: 0.1968 (0.1968) loss_ddf_aux_2: 0.0002 (0.0002) loss_vfl_aux_3: 0.0560 (0.0560) loss_bbox_aux_3: 0.6761 (0.6761) loss_giou_aux_3: 2.2830 (2.2830) loss_fgl_aux_3: 0.1968 (0.1968) loss_ddf_aux_3: 0.0001 (0.0001) loss_vfl_aux_4: 0.0565 (0.0565) loss_bbox_aux_4: 0.6762 (0.6762) loss_giou_aux_4: 2.2829 (2.2829) loss_fgl_aux_4: 0.1968 (0.1968) loss_ddf_aux_4: 0.0000 (0.0000) loss_vfl_pre: 0.0562 (0.0562) loss_bbox_pre: 0.6804 (0.6804) loss_giou_pre: 2.2810 (2.2810) loss_vfl_enc_0: 0.0546 (0.0546) loss_bbox_enc_0: 0.6949 (0.6949) loss_giou_enc_0: 2.3009 (2.3009) loss_vfl_dn_0: 0.3391 (0.3391) loss_bbox_dn_0: 0.0357 (0.0357) loss_giou_dn_0: 1.3542 (1.3542) loss_fgl_dn_0: 0.7591 (0.7591) loss_ddf_dn_0: 0.1217 (0.1217) loss_vfl_dn_1: 0.4048 (0.4048) loss_bbox_dn_1: 0.0272 (0.0272) loss_giou_dn_1: 1.2190 (1.2190) loss_fgl_dn_1: 0.8351 (0.8351) loss_ddf_dn_1: 0.0156 (0.0156) loss_vfl_dn_2: 0.4185 (0.4185) loss_bbox_dn_2: 0.0268 (0.0268) loss_giou_dn_2: 1.2035 (1.2035) loss_fgl_dn_2: 0.8377 (0.8377) loss_ddf_dn_2: 0.0011 (0.0011) loss_vfl_dn_3: 0.4065 (0.4065) loss_bbox_dn_3: 0.0268 (0.0268) loss_giou_dn_3: 1.2035 (1.2035) loss_fgl_dn_3: 0.8374 (0.8374) loss_ddf_dn_3: 0.0002 (0.0002) loss_vfl_dn_4: 0.4065 (0.4065) loss_bbox_dn_4: 0.0268 (0.0268) loss_giou_dn_4: 1.2031 (1.2031) loss_fgl_dn_4: 0.8377 (0.8377) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4019 (0.4019) loss_bbox_dn_5: 0.0268 (0.0268) loss_giou_dn_5: 1.2032 (1.2032) loss_fgl_dn_5: 0.8376 (0.8376) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3464 (0.3464) loss_bbox_dn_pre: 0.0342 (0.0342) loss_giou_dn_pre: 1.3393 (1.3393) time: 2.4516 data: 1.0064 max mem: 29821\n", + "Epoch: [19] [83/84] eta: 0:00:00 lr: 0.000013 loss: 39.1447 (39.2976) loss_vfl: 0.1404 (0.1541) loss_bbox: 0.3324 (0.3707) loss_giou: 1.9042 (1.9272) loss_fgl: 0.3329 (0.3655) loss_vfl_aux_0: 0.1342 (0.1510) loss_bbox_aux_0: 0.3362 (0.3765) loss_giou_aux_0: 1.9204 (1.9372) loss_fgl_aux_0: 0.3321 (0.3620) loss_ddf_aux_0: 0.0983 (0.1282) loss_vfl_aux_1: 0.1417 (0.1574) loss_bbox_aux_1: 0.3330 (0.3706) loss_giou_aux_1: 1.9057 (1.9300) loss_fgl_aux_1: 0.3319 (0.3647) loss_ddf_aux_1: 0.0177 (0.0177) loss_vfl_aux_2: 0.1382 (0.1567) loss_bbox_aux_2: 0.3325 (0.3708) loss_giou_aux_2: 1.9045 (1.9275) loss_fgl_aux_2: 0.3328 (0.3652) loss_ddf_aux_2: 0.0023 (0.0027) loss_vfl_aux_3: 0.1362 (0.1538) loss_bbox_aux_3: 0.3325 (0.3707) loss_giou_aux_3: 1.9042 (1.9272) loss_fgl_aux_3: 0.3328 (0.3654) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1376 (0.1533) loss_bbox_aux_4: 0.3324 (0.3708) loss_giou_aux_4: 1.9041 (1.9271) loss_fgl_aux_4: 0.3328 (0.3655) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1315 (0.1488) loss_bbox_pre: 0.3417 (0.3809) loss_giou_pre: 1.9150 (1.9317) loss_vfl_enc_0: 0.1243 (0.1408) loss_bbox_enc_0: 0.3684 (0.4020) loss_giou_enc_0: 1.9530 (1.9695) loss_vfl_dn_0: 0.3882 (0.3863) loss_bbox_dn_0: 0.0560 (0.0567) loss_giou_dn_0: 1.2559 (1.2686) loss_fgl_dn_0: 0.8734 (0.8623) loss_ddf_dn_0: 0.1689 (0.1932) loss_vfl_dn_1: 0.4199 (0.4272) loss_bbox_dn_1: 0.0510 (0.0492) loss_giou_dn_1: 1.1995 (1.1891) loss_fgl_dn_1: 0.8997 (0.8925) loss_ddf_dn_1: 0.0393 (0.0403) loss_vfl_dn_2: 0.4268 (0.4343) loss_bbox_dn_2: 0.0496 (0.0475) loss_giou_dn_2: 1.1855 (1.1685) loss_fgl_dn_2: 0.8934 (0.8980) loss_ddf_dn_2: 0.0039 (0.0045) loss_vfl_dn_3: 0.4238 (0.4285) loss_bbox_dn_3: 0.0491 (0.0473) loss_giou_dn_3: 1.1846 (1.1674) loss_fgl_dn_3: 0.8934 (0.8986) loss_ddf_dn_3: 0.0005 (0.0007) loss_vfl_dn_4: 0.4219 (0.4272) loss_bbox_dn_4: 0.0490 (0.0472) loss_giou_dn_4: 1.1851 (1.1672) loss_fgl_dn_4: 0.8939 (0.8989) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4233 (0.4282) loss_bbox_dn_5: 0.0490 (0.0472) loss_giou_dn_5: 1.1853 (1.1672) loss_fgl_dn_5: 0.8939 (0.8989) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3882 (0.3855) loss_bbox_dn_pre: 0.0564 (0.0564) loss_giou_dn_pre: 1.2544 (1.2691) time: 0.8947 data: 0.0181 max mem: 29821\n", + "Epoch: [19] Total time: 0:01:17 (0.9259 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 39.1447 (39.2976) loss_vfl: 0.1404 (0.1541) loss_bbox: 0.3324 (0.3707) loss_giou: 1.9042 (1.9272) loss_fgl: 0.3329 (0.3655) loss_vfl_aux_0: 0.1342 (0.1510) loss_bbox_aux_0: 0.3362 (0.3765) loss_giou_aux_0: 1.9204 (1.9372) loss_fgl_aux_0: 0.3321 (0.3620) loss_ddf_aux_0: 0.0983 (0.1282) loss_vfl_aux_1: 0.1417 (0.1574) loss_bbox_aux_1: 0.3330 (0.3706) loss_giou_aux_1: 1.9057 (1.9300) loss_fgl_aux_1: 0.3319 (0.3647) loss_ddf_aux_1: 0.0177 (0.0177) loss_vfl_aux_2: 0.1382 (0.1567) loss_bbox_aux_2: 0.3325 (0.3708) loss_giou_aux_2: 1.9045 (1.9275) loss_fgl_aux_2: 0.3328 (0.3652) loss_ddf_aux_2: 0.0023 (0.0027) loss_vfl_aux_3: 0.1362 (0.1538) loss_bbox_aux_3: 0.3325 (0.3707) loss_giou_aux_3: 1.9042 (1.9272) loss_fgl_aux_3: 0.3328 (0.3654) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1376 (0.1533) loss_bbox_aux_4: 0.3324 (0.3708) loss_giou_aux_4: 1.9041 (1.9271) loss_fgl_aux_4: 0.3328 (0.3655) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1315 (0.1488) loss_bbox_pre: 0.3417 (0.3809) loss_giou_pre: 1.9150 (1.9317) loss_vfl_enc_0: 0.1243 (0.1408) loss_bbox_enc_0: 0.3684 (0.4020) loss_giou_enc_0: 1.9530 (1.9695) loss_vfl_dn_0: 0.3882 (0.3863) loss_bbox_dn_0: 0.0560 (0.0567) loss_giou_dn_0: 1.2559 (1.2686) loss_fgl_dn_0: 0.8734 (0.8623) loss_ddf_dn_0: 0.1689 (0.1932) loss_vfl_dn_1: 0.4199 (0.4272) loss_bbox_dn_1: 0.0510 (0.0492) loss_giou_dn_1: 1.1995 (1.1891) loss_fgl_dn_1: 0.8997 (0.8925) loss_ddf_dn_1: 0.0393 (0.0403) loss_vfl_dn_2: 0.4268 (0.4343) loss_bbox_dn_2: 0.0496 (0.0475) loss_giou_dn_2: 1.1855 (1.1685) loss_fgl_dn_2: 0.8934 (0.8980) loss_ddf_dn_2: 0.0039 (0.0045) loss_vfl_dn_3: 0.4238 (0.4285) loss_bbox_dn_3: 0.0491 (0.0473) loss_giou_dn_3: 1.1846 (1.1674) loss_fgl_dn_3: 0.8934 (0.8986) loss_ddf_dn_3: 0.0005 (0.0007) loss_vfl_dn_4: 0.4219 (0.4272) loss_bbox_dn_4: 0.0490 (0.0472) loss_giou_dn_4: 1.1851 (1.1672) loss_fgl_dn_4: 0.8939 (0.8989) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4233 (0.4282) loss_bbox_dn_5: 0.0490 (0.0472) loss_giou_dn_5: 1.1853 (1.1672) loss_fgl_dn_5: 0.8939 (0.8989) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3882 (0.3855) loss_bbox_dn_pre: 0.0564 (0.0564) loss_giou_dn_pre: 1.2544 (1.2691)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7581 data: 0.5148 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3928 data: 0.1670 max mem: 29821\n", + "Test: Total time: 0:00:02 (0.5658 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.016\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.047\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.007\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.015\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.094\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.196\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.011\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.043\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.054\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.053\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.233\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.325\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.143\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.023\n", + "best_stat: {'epoch': 14, 'coco_eval_bbox': 0.018554424649616506}\n", + "Epoch: [20] [ 0/84] eta: 0:02:41 lr: 0.000013 loss: 40.6656 (40.6656) loss_vfl: 0.1316 (0.1316) loss_bbox: 0.4890 (0.4890) loss_giou: 2.0148 (2.0148) loss_fgl: 0.3342 (0.3342) loss_vfl_aux_0: 0.1439 (0.1439) loss_bbox_aux_0: 0.4854 (0.4854) loss_giou_aux_0: 2.0244 (2.0244) loss_fgl_aux_0: 0.3307 (0.3307) loss_ddf_aux_0: 0.1230 (0.1230) loss_vfl_aux_1: 0.1459 (0.1459) loss_bbox_aux_1: 0.4882 (0.4882) loss_giou_aux_1: 2.0162 (2.0162) loss_fgl_aux_1: 0.3328 (0.3328) loss_ddf_aux_1: 0.0142 (0.0142) loss_vfl_aux_2: 0.1398 (0.1398) loss_bbox_aux_2: 0.4888 (0.4888) loss_giou_aux_2: 2.0150 (2.0150) loss_fgl_aux_2: 0.3338 (0.3338) loss_ddf_aux_2: 0.0012 (0.0012) loss_vfl_aux_3: 0.1328 (0.1328) loss_bbox_aux_3: 0.4888 (0.4888) loss_giou_aux_3: 2.0149 (2.0149) loss_fgl_aux_3: 0.3340 (0.3340) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1338 (0.1338) loss_bbox_aux_4: 0.4890 (0.4890) loss_giou_aux_4: 2.0148 (2.0148) loss_fgl_aux_4: 0.3341 (0.3341) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1414 (0.1414) loss_bbox_pre: 0.4888 (0.4888) loss_giou_pre: 2.0203 (2.0203) loss_vfl_enc_0: 0.1298 (0.1298) loss_bbox_enc_0: 0.4782 (0.4782) loss_giou_enc_0: 2.0640 (2.0640) loss_vfl_dn_0: 0.3730 (0.3730) loss_bbox_dn_0: 0.0801 (0.0801) loss_giou_dn_0: 1.2774 (1.2774) loss_fgl_dn_0: 0.8488 (0.8488) loss_ddf_dn_0: 0.1811 (0.1811) loss_vfl_dn_1: 0.4187 (0.4187) loss_bbox_dn_1: 0.0632 (0.0632) loss_giou_dn_1: 1.2071 (1.2071) loss_fgl_dn_1: 0.8906 (0.8906) loss_ddf_dn_1: 0.0336 (0.0336) loss_vfl_dn_2: 0.4290 (0.4290) loss_bbox_dn_2: 0.0601 (0.0601) loss_giou_dn_2: 1.1774 (1.1774) loss_fgl_dn_2: 0.9002 (0.9002) loss_ddf_dn_2: 0.0011 (0.0011) loss_vfl_dn_3: 0.4229 (0.4229) loss_bbox_dn_3: 0.0598 (0.0598) loss_giou_dn_3: 1.1762 (1.1762) loss_fgl_dn_3: 0.9009 (0.9009) loss_ddf_dn_3: 0.0002 (0.0002) loss_vfl_dn_4: 0.4260 (0.4260) loss_bbox_dn_4: 0.0598 (0.0598) loss_giou_dn_4: 1.1759 (1.1759) loss_fgl_dn_4: 0.9010 (0.9010) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4229 (0.4229) loss_bbox_dn_5: 0.0597 (0.0597) loss_giou_dn_5: 1.1758 (1.1758) loss_fgl_dn_5: 0.9011 (0.9011) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3789 (0.3789) loss_bbox_dn_pre: 0.0781 (0.0781) loss_giou_dn_pre: 1.2673 (1.2673) time: 1.9181 data: 1.0026 max mem: 29821\n", + "Epoch: [20] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.4207 (38.8492) loss_vfl: 0.1483 (0.1598) loss_bbox: 0.3526 (0.3518) loss_giou: 1.8677 (1.8866) loss_fgl: 0.3524 (0.3720) loss_vfl_aux_0: 0.1337 (0.1597) loss_bbox_aux_0: 0.3564 (0.3552) loss_giou_aux_0: 1.8762 (1.8982) loss_fgl_aux_0: 0.3473 (0.3700) loss_ddf_aux_0: 0.0847 (0.0979) loss_vfl_aux_1: 0.1404 (0.1636) loss_bbox_aux_1: 0.3514 (0.3523) loss_giou_aux_1: 1.8701 (1.8884) loss_fgl_aux_1: 0.3510 (0.3715) loss_ddf_aux_1: 0.0100 (0.0130) loss_vfl_aux_2: 0.1410 (0.1619) loss_bbox_aux_2: 0.3525 (0.3519) loss_giou_aux_2: 1.8679 (1.8869) loss_fgl_aux_2: 0.3519 (0.3719) loss_ddf_aux_2: 0.0013 (0.0015) loss_vfl_aux_3: 0.1415 (0.1597) loss_bbox_aux_3: 0.3526 (0.3518) loss_giou_aux_3: 1.8677 (1.8867) loss_fgl_aux_3: 0.3523 (0.3720) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1437 (0.1592) loss_bbox_aux_4: 0.3526 (0.3518) loss_giou_aux_4: 1.8676 (1.8866) loss_fgl_aux_4: 0.3524 (0.3720) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1331 (0.1574) loss_bbox_pre: 0.3569 (0.3593) loss_giou_pre: 1.8740 (1.8935) loss_vfl_enc_0: 0.1332 (0.1478) loss_bbox_enc_0: 0.3726 (0.3783) loss_giou_enc_0: 1.9137 (1.9355) loss_vfl_dn_0: 0.4019 (0.4026) loss_bbox_dn_0: 0.0512 (0.0572) loss_giou_dn_0: 1.2280 (1.2244) loss_fgl_dn_0: 0.8880 (0.8941) loss_ddf_dn_0: 0.1636 (0.1726) loss_vfl_dn_1: 0.4387 (0.4409) loss_bbox_dn_1: 0.0421 (0.0491) loss_giou_dn_1: 1.1490 (1.1530) loss_fgl_dn_1: 0.9147 (0.9192) loss_ddf_dn_1: 0.0289 (0.0311) loss_vfl_dn_2: 0.4502 (0.4452) loss_bbox_dn_2: 0.0414 (0.0474) loss_giou_dn_2: 1.1346 (1.1367) loss_fgl_dn_2: 0.9197 (0.9233) loss_ddf_dn_2: 0.0028 (0.0027) loss_vfl_dn_3: 0.4409 (0.4402) loss_bbox_dn_3: 0.0416 (0.0472) loss_giou_dn_3: 1.1334 (1.1358) loss_fgl_dn_3: 0.9197 (0.9236) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4412 (0.4400) loss_bbox_dn_4: 0.0416 (0.0471) loss_giou_dn_4: 1.1329 (1.1355) loss_fgl_dn_4: 0.9198 (0.9238) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4402 (0.4403) loss_bbox_dn_5: 0.0417 (0.0471) loss_giou_dn_5: 1.1328 (1.1355) loss_fgl_dn_5: 0.9198 (0.9238) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4004 (0.4022) loss_bbox_dn_pre: 0.0513 (0.0571) loss_giou_dn_pre: 1.2251 (1.2243) time: 0.9008 data: 0.0174 max mem: 29821\n", + "Epoch: [20] Total time: 0:01:14 (0.8899 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.4207 (38.8492) loss_vfl: 0.1483 (0.1598) loss_bbox: 0.3526 (0.3518) loss_giou: 1.8677 (1.8866) loss_fgl: 0.3524 (0.3720) loss_vfl_aux_0: 0.1337 (0.1597) loss_bbox_aux_0: 0.3564 (0.3552) loss_giou_aux_0: 1.8762 (1.8982) loss_fgl_aux_0: 0.3473 (0.3700) loss_ddf_aux_0: 0.0847 (0.0979) loss_vfl_aux_1: 0.1404 (0.1636) loss_bbox_aux_1: 0.3514 (0.3523) loss_giou_aux_1: 1.8701 (1.8884) loss_fgl_aux_1: 0.3510 (0.3715) loss_ddf_aux_1: 0.0100 (0.0130) loss_vfl_aux_2: 0.1410 (0.1619) loss_bbox_aux_2: 0.3525 (0.3519) loss_giou_aux_2: 1.8679 (1.8869) loss_fgl_aux_2: 0.3519 (0.3719) loss_ddf_aux_2: 0.0013 (0.0015) loss_vfl_aux_3: 0.1415 (0.1597) loss_bbox_aux_3: 0.3526 (0.3518) loss_giou_aux_3: 1.8677 (1.8867) loss_fgl_aux_3: 0.3523 (0.3720) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1437 (0.1592) loss_bbox_aux_4: 0.3526 (0.3518) loss_giou_aux_4: 1.8676 (1.8866) loss_fgl_aux_4: 0.3524 (0.3720) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1331 (0.1574) loss_bbox_pre: 0.3569 (0.3593) loss_giou_pre: 1.8740 (1.8935) loss_vfl_enc_0: 0.1332 (0.1478) loss_bbox_enc_0: 0.3726 (0.3783) loss_giou_enc_0: 1.9137 (1.9355) loss_vfl_dn_0: 0.4019 (0.4026) loss_bbox_dn_0: 0.0512 (0.0572) loss_giou_dn_0: 1.2280 (1.2244) loss_fgl_dn_0: 0.8880 (0.8941) loss_ddf_dn_0: 0.1636 (0.1726) loss_vfl_dn_1: 0.4387 (0.4409) loss_bbox_dn_1: 0.0421 (0.0491) loss_giou_dn_1: 1.1490 (1.1530) loss_fgl_dn_1: 0.9147 (0.9192) loss_ddf_dn_1: 0.0289 (0.0311) loss_vfl_dn_2: 0.4502 (0.4452) loss_bbox_dn_2: 0.0414 (0.0474) loss_giou_dn_2: 1.1346 (1.1367) loss_fgl_dn_2: 0.9197 (0.9233) loss_ddf_dn_2: 0.0028 (0.0027) loss_vfl_dn_3: 0.4409 (0.4402) loss_bbox_dn_3: 0.0416 (0.0472) loss_giou_dn_3: 1.1334 (1.1358) loss_fgl_dn_3: 0.9197 (0.9236) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4412 (0.4400) loss_bbox_dn_4: 0.0416 (0.0471) loss_giou_dn_4: 1.1329 (1.1355) loss_fgl_dn_4: 0.9198 (0.9238) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4402 (0.4403) loss_bbox_dn_5: 0.0417 (0.0471) loss_giou_dn_5: 1.1328 (1.1355) loss_fgl_dn_5: 0.9198 (0.9238) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4004 (0.4022) loss_bbox_dn_pre: 0.0513 (0.0571) loss_giou_dn_pre: 1.2251 (1.2243)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7307 data: 0.4839 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.5378 data: 0.1718 max mem: 29821\n", + "Test: Total time: 0:00:02 (0.5548 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.016\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.038\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.009\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.016\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.081\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.346\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.005\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.044\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.058\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.060\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.207\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.350\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.134\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.032\n", + "best_stat: {'epoch': 14, 'coco_eval_bbox': 0.018554424649616506}\n", + "Epoch: [21] [ 0/84] eta: 0:02:47 lr: 0.000013 loss: 43.2279 (43.2279) loss_vfl: 0.1978 (0.1978) loss_bbox: 0.6738 (0.6738) loss_giou: 2.0710 (2.0710) loss_fgl: 0.3151 (0.3151) loss_vfl_aux_0: 0.1921 (0.1921) loss_bbox_aux_0: 0.6817 (0.6817) loss_giou_aux_0: 2.0898 (2.0898) loss_fgl_aux_0: 0.3124 (0.3124) loss_ddf_aux_0: 0.0947 (0.0947) loss_vfl_aux_1: 0.1937 (0.1937) loss_bbox_aux_1: 0.6760 (0.6760) loss_giou_aux_1: 2.0703 (2.0703) loss_fgl_aux_1: 0.3147 (0.3147) loss_ddf_aux_1: 0.0119 (0.0119) loss_vfl_aux_2: 0.1936 (0.1936) loss_bbox_aux_2: 0.6745 (0.6745) loss_giou_aux_2: 2.0705 (2.0705) loss_fgl_aux_2: 0.3150 (0.3150) loss_ddf_aux_2: 0.0015 (0.0015) loss_vfl_aux_3: 0.1937 (0.1937) loss_bbox_aux_3: 0.6741 (0.6741) loss_giou_aux_3: 2.0708 (2.0708) loss_fgl_aux_3: 0.3151 (0.3151) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1948 (0.1948) loss_bbox_aux_4: 0.6739 (0.6739) loss_giou_aux_4: 2.0708 (2.0708) loss_fgl_aux_4: 0.3152 (0.3152) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1881 (0.1881) loss_bbox_pre: 0.6869 (0.6869) loss_giou_pre: 2.0859 (2.0859) loss_vfl_enc_0: 0.1836 (0.1836) loss_bbox_enc_0: 0.7226 (0.7226) loss_giou_enc_0: 2.1037 (2.1037) loss_vfl_dn_0: 0.4324 (0.4324) loss_bbox_dn_0: 0.0845 (0.0845) loss_giou_dn_0: 1.1787 (1.1787) loss_fgl_dn_0: 0.9406 (0.9406) loss_ddf_dn_0: 0.1955 (0.1955) loss_vfl_dn_1: 0.4622 (0.4622) loss_bbox_dn_1: 0.0759 (0.0759) loss_giou_dn_1: 1.1063 (1.1063) loss_fgl_dn_1: 0.9629 (0.9629) loss_ddf_dn_1: 0.0348 (0.0348) loss_vfl_dn_2: 0.4673 (0.4673) loss_bbox_dn_2: 0.0731 (0.0731) loss_giou_dn_2: 1.1026 (1.1026) loss_fgl_dn_2: 0.9632 (0.9632) loss_ddf_dn_2: 0.0036 (0.0036) loss_vfl_dn_3: 0.4666 (0.4666) loss_bbox_dn_3: 0.0725 (0.0725) loss_giou_dn_3: 1.1005 (1.1005) loss_fgl_dn_3: 0.9638 (0.9638) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.4690 (0.4690) loss_bbox_dn_4: 0.0723 (0.0723) loss_giou_dn_4: 1.0999 (1.0999) loss_fgl_dn_4: 0.9637 (0.9637) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4707 (0.4707) loss_bbox_dn_5: 0.0723 (0.0723) loss_giou_dn_5: 1.0999 (1.0999) loss_fgl_dn_5: 0.9638 (0.9638) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4277 (0.4277) loss_bbox_dn_pre: 0.0858 (0.0858) loss_giou_dn_pre: 1.1852 (1.1852) time: 1.9911 data: 1.0905 max mem: 29821\n", + "Epoch: [21] [83/84] eta: 0:00:00 lr: 0.000013 loss: 39.1083 (39.1843) loss_vfl: 0.1361 (0.1664) loss_bbox: 0.3352 (0.3510) loss_giou: 1.9169 (1.8986) loss_fgl: 0.3453 (0.3835) loss_vfl_aux_0: 0.1333 (0.1632) loss_bbox_aux_0: 0.3448 (0.3572) loss_giou_aux_0: 1.9092 (1.9107) loss_fgl_aux_0: 0.3472 (0.3805) loss_ddf_aux_0: 0.0930 (0.1324) loss_vfl_aux_1: 0.1394 (0.1692) loss_bbox_aux_1: 0.3364 (0.3517) loss_giou_aux_1: 1.9170 (1.9007) loss_fgl_aux_1: 0.3463 (0.3829) loss_ddf_aux_1: 0.0142 (0.0188) loss_vfl_aux_2: 0.1378 (0.1683) loss_bbox_aux_2: 0.3351 (0.3512) loss_giou_aux_2: 1.9172 (1.8988) loss_fgl_aux_2: 0.3452 (0.3833) loss_ddf_aux_2: 0.0015 (0.0028) loss_vfl_aux_3: 0.1371 (0.1667) loss_bbox_aux_3: 0.3353 (0.3510) loss_giou_aux_3: 1.9168 (1.8986) loss_fgl_aux_3: 0.3453 (0.3835) loss_ddf_aux_3: 0.0002 (0.0004) loss_vfl_aux_4: 0.1371 (0.1663) loss_bbox_aux_4: 0.3353 (0.3510) loss_giou_aux_4: 1.9169 (1.8985) loss_fgl_aux_4: 0.3453 (0.3835) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1306 (0.1607) loss_bbox_pre: 0.3518 (0.3684) loss_giou_pre: 1.9017 (1.9037) loss_vfl_enc_0: 0.1187 (0.1524) loss_bbox_enc_0: 0.3690 (0.3942) loss_giou_enc_0: 1.9553 (1.9430) loss_vfl_dn_0: 0.4004 (0.3871) loss_bbox_dn_0: 0.0498 (0.0584) loss_giou_dn_0: 1.2319 (1.2732) loss_fgl_dn_0: 0.8925 (0.8682) loss_ddf_dn_0: 0.1801 (0.2389) loss_vfl_dn_1: 0.4487 (0.4403) loss_bbox_dn_1: 0.0423 (0.0489) loss_giou_dn_1: 1.1510 (1.1562) loss_fgl_dn_1: 0.9220 (0.9041) loss_ddf_dn_1: 0.0441 (0.0430) loss_vfl_dn_2: 0.4500 (0.4435) loss_bbox_dn_2: 0.0420 (0.0469) loss_giou_dn_2: 1.1285 (1.1384) loss_fgl_dn_2: 0.9278 (0.9102) loss_ddf_dn_2: 0.0033 (0.0051) loss_vfl_dn_3: 0.4521 (0.4418) loss_bbox_dn_3: 0.0420 (0.0465) loss_giou_dn_3: 1.1268 (1.1365) loss_fgl_dn_3: 0.9280 (0.9109) loss_ddf_dn_3: 0.0004 (0.0007) loss_vfl_dn_4: 0.4514 (0.4419) loss_bbox_dn_4: 0.0419 (0.0464) loss_giou_dn_4: 1.1261 (1.1362) loss_fgl_dn_4: 0.9284 (0.9111) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4509 (0.4428) loss_bbox_dn_5: 0.0419 (0.0464) loss_giou_dn_5: 1.1260 (1.1362) loss_fgl_dn_5: 0.9284 (0.9112) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3994 (0.3861) loss_bbox_dn_pre: 0.0487 (0.0583) loss_giou_dn_pre: 1.2343 (1.2751) time: 0.8691 data: 0.0229 max mem: 29821\n", + "Epoch: [21] Total time: 0:01:15 (0.9026 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 39.1083 (39.1843) loss_vfl: 0.1361 (0.1664) loss_bbox: 0.3352 (0.3510) loss_giou: 1.9169 (1.8986) loss_fgl: 0.3453 (0.3835) loss_vfl_aux_0: 0.1333 (0.1632) loss_bbox_aux_0: 0.3448 (0.3572) loss_giou_aux_0: 1.9092 (1.9107) loss_fgl_aux_0: 0.3472 (0.3805) loss_ddf_aux_0: 0.0930 (0.1324) loss_vfl_aux_1: 0.1394 (0.1692) loss_bbox_aux_1: 0.3364 (0.3517) loss_giou_aux_1: 1.9170 (1.9007) loss_fgl_aux_1: 0.3463 (0.3829) loss_ddf_aux_1: 0.0142 (0.0188) loss_vfl_aux_2: 0.1378 (0.1683) loss_bbox_aux_2: 0.3351 (0.3512) loss_giou_aux_2: 1.9172 (1.8988) loss_fgl_aux_2: 0.3452 (0.3833) loss_ddf_aux_2: 0.0015 (0.0028) loss_vfl_aux_3: 0.1371 (0.1667) loss_bbox_aux_3: 0.3353 (0.3510) loss_giou_aux_3: 1.9168 (1.8986) loss_fgl_aux_3: 0.3453 (0.3835) loss_ddf_aux_3: 0.0002 (0.0004) loss_vfl_aux_4: 0.1371 (0.1663) loss_bbox_aux_4: 0.3353 (0.3510) loss_giou_aux_4: 1.9169 (1.8985) loss_fgl_aux_4: 0.3453 (0.3835) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1306 (0.1607) loss_bbox_pre: 0.3518 (0.3684) loss_giou_pre: 1.9017 (1.9037) loss_vfl_enc_0: 0.1187 (0.1524) loss_bbox_enc_0: 0.3690 (0.3942) loss_giou_enc_0: 1.9553 (1.9430) loss_vfl_dn_0: 0.4004 (0.3871) loss_bbox_dn_0: 0.0498 (0.0584) loss_giou_dn_0: 1.2319 (1.2732) loss_fgl_dn_0: 0.8925 (0.8682) loss_ddf_dn_0: 0.1801 (0.2389) loss_vfl_dn_1: 0.4487 (0.4403) loss_bbox_dn_1: 0.0423 (0.0489) loss_giou_dn_1: 1.1510 (1.1562) loss_fgl_dn_1: 0.9220 (0.9041) loss_ddf_dn_1: 0.0441 (0.0430) loss_vfl_dn_2: 0.4500 (0.4435) loss_bbox_dn_2: 0.0420 (0.0469) loss_giou_dn_2: 1.1285 (1.1384) loss_fgl_dn_2: 0.9278 (0.9102) loss_ddf_dn_2: 0.0033 (0.0051) loss_vfl_dn_3: 0.4521 (0.4418) loss_bbox_dn_3: 0.0420 (0.0465) loss_giou_dn_3: 1.1268 (1.1365) loss_fgl_dn_3: 0.9280 (0.9109) loss_ddf_dn_3: 0.0004 (0.0007) loss_vfl_dn_4: 0.4514 (0.4419) loss_bbox_dn_4: 0.0419 (0.0464) loss_giou_dn_4: 1.1261 (1.1362) loss_fgl_dn_4: 0.9284 (0.9111) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4509 (0.4428) loss_bbox_dn_5: 0.0419 (0.0464) loss_giou_dn_5: 1.1260 (1.1362) loss_fgl_dn_5: 0.9284 (0.9112) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3994 (0.3861) loss_bbox_dn_pre: 0.0487 (0.0583) loss_giou_dn_pre: 1.2343 (1.2751)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7337 data: 0.4827 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3891 data: 0.1620 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4042 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.05s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.015\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.038\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.009\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.015\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.087\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.261\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.004\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.026\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.043\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.042\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.210\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.400\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.102\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.029\n", + "best_stat: {'epoch': 14, 'coco_eval_bbox': 0.018554424649616506}\n", + "Epoch: [22] [ 0/84] eta: 0:02:53 lr: 0.000013 loss: 39.9577 (39.9577) loss_vfl: 0.1813 (0.1813) loss_bbox: 0.4328 (0.4328) loss_giou: 1.9725 (1.9725) loss_fgl: 0.3289 (0.3289) loss_vfl_aux_0: 0.1954 (0.1954) loss_bbox_aux_0: 0.4337 (0.4337) loss_giou_aux_0: 1.9842 (1.9842) loss_fgl_aux_0: 0.3308 (0.3308) loss_ddf_aux_0: 0.0798 (0.0798) loss_vfl_aux_1: 0.1978 (0.1978) loss_bbox_aux_1: 0.4351 (0.4351) loss_giou_aux_1: 1.9695 (1.9695) loss_fgl_aux_1: 0.3293 (0.3293) loss_ddf_aux_1: 0.0121 (0.0121) loss_vfl_aux_2: 0.2001 (0.2001) loss_bbox_aux_2: 0.4332 (0.4332) loss_giou_aux_2: 1.9718 (1.9718) loss_fgl_aux_2: 0.3290 (0.3290) loss_ddf_aux_2: 0.0015 (0.0015) loss_vfl_aux_3: 0.1882 (0.1882) loss_bbox_aux_3: 0.4329 (0.4329) loss_giou_aux_3: 1.9721 (1.9721) loss_fgl_aux_3: 0.3288 (0.3288) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1814 (0.1814) loss_bbox_aux_4: 0.4329 (0.4329) loss_giou_aux_4: 1.9721 (1.9721) loss_fgl_aux_4: 0.3289 (0.3289) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1927 (0.1927) loss_bbox_pre: 0.4366 (0.4366) loss_giou_pre: 1.9779 (1.9779) loss_vfl_enc_0: 0.1646 (0.1646) loss_bbox_enc_0: 0.4607 (0.4607) loss_giou_enc_0: 2.0365 (2.0365) loss_vfl_dn_0: 0.3806 (0.3806) loss_bbox_dn_0: 0.0493 (0.0493) loss_giou_dn_0: 1.2562 (1.2562) loss_fgl_dn_0: 0.8438 (0.8438) loss_ddf_dn_0: 0.2119 (0.2119) loss_vfl_dn_1: 0.4578 (0.4578) loss_bbox_dn_1: 0.0385 (0.0385) loss_giou_dn_1: 1.1334 (1.1334) loss_fgl_dn_1: 0.9036 (0.9036) loss_ddf_dn_1: 0.0432 (0.0432) loss_vfl_dn_2: 0.4609 (0.4609) loss_bbox_dn_2: 0.0364 (0.0364) loss_giou_dn_2: 1.1073 (1.1073) loss_fgl_dn_2: 0.9088 (0.9088) loss_ddf_dn_2: 0.0044 (0.0044) loss_vfl_dn_3: 0.4563 (0.4563) loss_bbox_dn_3: 0.0361 (0.0361) loss_giou_dn_3: 1.1062 (1.1062) loss_fgl_dn_3: 0.9089 (0.9089) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.4507 (0.4507) loss_bbox_dn_4: 0.0359 (0.0359) loss_giou_dn_4: 1.1057 (1.1057) loss_fgl_dn_4: 0.9092 (0.9092) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4539 (0.4539) loss_bbox_dn_5: 0.0359 (0.0359) loss_giou_dn_5: 1.1057 (1.1057) loss_fgl_dn_5: 0.9092 (0.9092) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3845 (0.3845) loss_bbox_dn_pre: 0.0490 (0.0490) loss_giou_dn_pre: 1.2480 (1.2480) time: 2.0597 data: 1.1475 max mem: 29821\n", + "Epoch: [22] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.5792 (38.8645) loss_vfl: 0.1307 (0.1573) loss_bbox: 0.3078 (0.3458) loss_giou: 1.9356 (1.8924) loss_fgl: 0.3320 (0.3665) loss_vfl_aux_0: 0.1320 (0.1575) loss_bbox_aux_0: 0.3111 (0.3486) loss_giou_aux_0: 1.9371 (1.9037) loss_fgl_aux_0: 0.3306 (0.3651) loss_ddf_aux_0: 0.1418 (0.1218) loss_vfl_aux_1: 0.1334 (0.1607) loss_bbox_aux_1: 0.3097 (0.3470) loss_giou_aux_1: 1.9337 (1.8930) loss_fgl_aux_1: 0.3335 (0.3660) loss_ddf_aux_1: 0.0202 (0.0164) loss_vfl_aux_2: 0.1287 (0.1590) loss_bbox_aux_2: 0.3080 (0.3460) loss_giou_aux_2: 1.9353 (1.8924) loss_fgl_aux_2: 0.3322 (0.3664) loss_ddf_aux_2: 0.0024 (0.0019) loss_vfl_aux_3: 0.1312 (0.1576) loss_bbox_aux_3: 0.3078 (0.3459) loss_giou_aux_3: 1.9354 (1.8923) loss_fgl_aux_3: 0.3321 (0.3665) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1302 (0.1571) loss_bbox_aux_4: 0.3079 (0.3459) loss_giou_aux_4: 1.9356 (1.8923) loss_fgl_aux_4: 0.3321 (0.3665) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1307 (0.1550) loss_bbox_pre: 0.3167 (0.3527) loss_giou_pre: 1.9333 (1.8987) loss_vfl_enc_0: 0.1274 (0.1473) loss_bbox_enc_0: 0.3303 (0.3712) loss_giou_enc_0: 1.9777 (1.9364) loss_vfl_dn_0: 0.3750 (0.3938) loss_bbox_dn_0: 0.0509 (0.0552) loss_giou_dn_0: 1.2832 (1.2529) loss_fgl_dn_0: 0.8559 (0.8789) loss_ddf_dn_0: 0.2838 (0.2314) loss_vfl_dn_1: 0.4214 (0.4389) loss_bbox_dn_1: 0.0423 (0.0467) loss_giou_dn_1: 1.1771 (1.1580) loss_fgl_dn_1: 0.8794 (0.9091) loss_ddf_dn_1: 0.0575 (0.0450) loss_vfl_dn_2: 0.4358 (0.4450) loss_bbox_dn_2: 0.0399 (0.0447) loss_giou_dn_2: 1.1491 (1.1366) loss_fgl_dn_2: 0.8938 (0.9162) loss_ddf_dn_2: 0.0039 (0.0036) loss_vfl_dn_3: 0.4316 (0.4414) loss_bbox_dn_3: 0.0396 (0.0445) loss_giou_dn_3: 1.1481 (1.1357) loss_fgl_dn_3: 0.8947 (0.9167) loss_ddf_dn_3: 0.0007 (0.0006) loss_vfl_dn_4: 0.4324 (0.4405) loss_bbox_dn_4: 0.0398 (0.0444) loss_giou_dn_4: 1.1485 (1.1356) loss_fgl_dn_4: 0.8948 (0.9169) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4324 (0.4411) loss_bbox_dn_5: 0.0398 (0.0444) loss_giou_dn_5: 1.1484 (1.1355) loss_fgl_dn_5: 0.8948 (0.9170) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3735 (0.3931) loss_bbox_dn_pre: 0.0497 (0.0549) loss_giou_dn_pre: 1.2770 (1.2527) time: 0.8853 data: 0.0173 max mem: 29821\n", + "Epoch: [22] Total time: 0:01:15 (0.8960 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.5792 (38.8645) loss_vfl: 0.1307 (0.1573) loss_bbox: 0.3078 (0.3458) loss_giou: 1.9356 (1.8924) loss_fgl: 0.3320 (0.3665) loss_vfl_aux_0: 0.1320 (0.1575) loss_bbox_aux_0: 0.3111 (0.3486) loss_giou_aux_0: 1.9371 (1.9037) loss_fgl_aux_0: 0.3306 (0.3651) loss_ddf_aux_0: 0.1418 (0.1218) loss_vfl_aux_1: 0.1334 (0.1607) loss_bbox_aux_1: 0.3097 (0.3470) loss_giou_aux_1: 1.9337 (1.8930) loss_fgl_aux_1: 0.3335 (0.3660) loss_ddf_aux_1: 0.0202 (0.0164) loss_vfl_aux_2: 0.1287 (0.1590) loss_bbox_aux_2: 0.3080 (0.3460) loss_giou_aux_2: 1.9353 (1.8924) loss_fgl_aux_2: 0.3322 (0.3664) loss_ddf_aux_2: 0.0024 (0.0019) loss_vfl_aux_3: 0.1312 (0.1576) loss_bbox_aux_3: 0.3078 (0.3459) loss_giou_aux_3: 1.9354 (1.8923) loss_fgl_aux_3: 0.3321 (0.3665) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1302 (0.1571) loss_bbox_aux_4: 0.3079 (0.3459) loss_giou_aux_4: 1.9356 (1.8923) loss_fgl_aux_4: 0.3321 (0.3665) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1307 (0.1550) loss_bbox_pre: 0.3167 (0.3527) loss_giou_pre: 1.9333 (1.8987) loss_vfl_enc_0: 0.1274 (0.1473) loss_bbox_enc_0: 0.3303 (0.3712) loss_giou_enc_0: 1.9777 (1.9364) loss_vfl_dn_0: 0.3750 (0.3938) loss_bbox_dn_0: 0.0509 (0.0552) loss_giou_dn_0: 1.2832 (1.2529) loss_fgl_dn_0: 0.8559 (0.8789) loss_ddf_dn_0: 0.2838 (0.2314) loss_vfl_dn_1: 0.4214 (0.4389) loss_bbox_dn_1: 0.0423 (0.0467) loss_giou_dn_1: 1.1771 (1.1580) loss_fgl_dn_1: 0.8794 (0.9091) loss_ddf_dn_1: 0.0575 (0.0450) loss_vfl_dn_2: 0.4358 (0.4450) loss_bbox_dn_2: 0.0399 (0.0447) loss_giou_dn_2: 1.1491 (1.1366) loss_fgl_dn_2: 0.8938 (0.9162) loss_ddf_dn_2: 0.0039 (0.0036) loss_vfl_dn_3: 0.4316 (0.4414) loss_bbox_dn_3: 0.0396 (0.0445) loss_giou_dn_3: 1.1481 (1.1357) loss_fgl_dn_3: 0.8947 (0.9167) loss_ddf_dn_3: 0.0007 (0.0006) loss_vfl_dn_4: 0.4324 (0.4405) loss_bbox_dn_4: 0.0398 (0.0444) loss_giou_dn_4: 1.1485 (1.1356) loss_fgl_dn_4: 0.8948 (0.9169) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4324 (0.4411) loss_bbox_dn_5: 0.0398 (0.0444) loss_giou_dn_5: 1.1484 (1.1355) loss_fgl_dn_5: 0.8948 (0.9170) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3735 (0.3931) loss_bbox_dn_pre: 0.0497 (0.0549) loss_giou_dn_pre: 1.2770 (1.2527)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7964 data: 0.5430 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4243 data: 0.1882 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4392 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.019\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.048\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.010\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.021\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.127\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.724\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.014\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.041\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.055\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.053\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.267\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.825\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.120\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.034\n", + "best_stat: {'epoch': 22, 'coco_eval_bbox': 0.01885204964041436}\n", + "Epoch: [23] [ 0/84] eta: 0:02:10 lr: 0.000013 loss: 39.2771 (39.2771) loss_vfl: 0.1803 (0.1803) loss_bbox: 0.3172 (0.3172) loss_giou: 1.8470 (1.8470) loss_fgl: 0.4315 (0.4315) loss_vfl_aux_0: 0.1744 (0.1744) loss_bbox_aux_0: 0.3144 (0.3144) loss_giou_aux_0: 1.8747 (1.8747) loss_fgl_aux_0: 0.4250 (0.4250) loss_ddf_aux_0: 0.1988 (0.1988) loss_vfl_aux_1: 0.1783 (0.1783) loss_bbox_aux_1: 0.3222 (0.3222) loss_giou_aux_1: 1.8465 (1.8465) loss_fgl_aux_1: 0.4283 (0.4283) loss_ddf_aux_1: 0.0344 (0.0344) loss_vfl_aux_2: 0.1853 (0.1853) loss_bbox_aux_2: 0.3179 (0.3179) loss_giou_aux_2: 1.8470 (1.8470) loss_fgl_aux_2: 0.4309 (0.4309) loss_ddf_aux_2: 0.0035 (0.0035) loss_vfl_aux_3: 0.1809 (0.1809) loss_bbox_aux_3: 0.3175 (0.3175) loss_giou_aux_3: 1.8471 (1.8471) loss_fgl_aux_3: 0.4313 (0.4313) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1813 (0.1813) loss_bbox_aux_4: 0.3173 (0.3173) loss_giou_aux_4: 1.8470 (1.8470) loss_fgl_aux_4: 0.4315 (0.4315) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1744 (0.1744) loss_bbox_pre: 0.3185 (0.3185) loss_giou_pre: 1.8652 (1.8652) loss_vfl_enc_0: 0.1635 (0.1635) loss_bbox_enc_0: 0.3338 (0.3338) loss_giou_enc_0: 1.9102 (1.9102) loss_vfl_dn_0: 0.4009 (0.4009) loss_bbox_dn_0: 0.0786 (0.0786) loss_giou_dn_0: 1.2882 (1.2882) loss_fgl_dn_0: 0.8628 (0.8628) loss_ddf_dn_0: 0.3611 (0.3611) loss_vfl_dn_1: 0.4478 (0.4478) loss_bbox_dn_1: 0.0667 (0.0667) loss_giou_dn_1: 1.1660 (1.1660) loss_fgl_dn_1: 0.8932 (0.8932) loss_ddf_dn_1: 0.0655 (0.0655) loss_vfl_dn_2: 0.4521 (0.4521) loss_bbox_dn_2: 0.0645 (0.0645) loss_giou_dn_2: 1.1412 (1.1412) loss_fgl_dn_2: 0.9005 (0.9005) loss_ddf_dn_2: 0.0043 (0.0043) loss_vfl_dn_3: 0.4438 (0.4438) loss_bbox_dn_3: 0.0644 (0.0644) loss_giou_dn_3: 1.1414 (1.1414) loss_fgl_dn_3: 0.9004 (0.9004) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4375 (0.4375) loss_bbox_dn_4: 0.0645 (0.0645) loss_giou_dn_4: 1.1421 (1.1421) loss_fgl_dn_4: 0.9002 (0.9002) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4377 (0.4377) loss_bbox_dn_5: 0.0645 (0.0645) loss_giou_dn_5: 1.1421 (1.1421) loss_fgl_dn_5: 0.9002 (0.9002) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3977 (0.3977) loss_bbox_dn_pre: 0.0791 (0.0791) loss_giou_dn_pre: 1.2900 (1.2900) time: 1.5581 data: 0.7043 max mem: 29821\n", + "Epoch: [23] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.6944 (38.8261) loss_vfl: 0.1919 (0.1645) loss_bbox: 0.3097 (0.3315) loss_giou: 1.8144 (1.8800) loss_fgl: 0.4155 (0.3821) loss_vfl_aux_0: 0.1958 (0.1662) loss_bbox_aux_0: 0.3101 (0.3321) loss_giou_aux_0: 1.8238 (1.8935) loss_fgl_aux_0: 0.4080 (0.3808) loss_ddf_aux_0: 0.0908 (0.1243) loss_vfl_aux_1: 0.1929 (0.1689) loss_bbox_aux_1: 0.3098 (0.3316) loss_giou_aux_1: 1.8149 (1.8821) loss_fgl_aux_1: 0.4146 (0.3818) loss_ddf_aux_1: 0.0151 (0.0172) loss_vfl_aux_2: 0.1891 (0.1671) loss_bbox_aux_2: 0.3097 (0.3312) loss_giou_aux_2: 1.8146 (1.8806) loss_fgl_aux_2: 0.4158 (0.3821) loss_ddf_aux_2: 0.0018 (0.0024) loss_vfl_aux_3: 0.1893 (0.1647) loss_bbox_aux_3: 0.3096 (0.3313) loss_giou_aux_3: 1.8145 (1.8803) loss_fgl_aux_3: 0.4154 (0.3821) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1926 (0.1644) loss_bbox_aux_4: 0.3097 (0.3315) loss_giou_aux_4: 1.8144 (1.8800) loss_fgl_aux_4: 0.4155 (0.3821) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1914 (0.1629) loss_bbox_pre: 0.3181 (0.3391) loss_giou_pre: 1.8136 (1.8851) loss_vfl_enc_0: 0.1876 (0.1546) loss_bbox_enc_0: 0.3373 (0.3599) loss_giou_enc_0: 1.8634 (1.9245) loss_vfl_dn_0: 0.4167 (0.4026) loss_bbox_dn_0: 0.0647 (0.0584) loss_giou_dn_0: 1.2055 (1.2282) loss_fgl_dn_0: 0.9128 (0.8957) loss_ddf_dn_0: 0.2025 (0.2308) loss_vfl_dn_1: 0.4573 (0.4457) loss_bbox_dn_1: 0.0531 (0.0498) loss_giou_dn_1: 1.1181 (1.1401) loss_fgl_dn_1: 0.9397 (0.9232) loss_ddf_dn_1: 0.0371 (0.0367) loss_vfl_dn_2: 0.4541 (0.4483) loss_bbox_dn_2: 0.0524 (0.0483) loss_giou_dn_2: 1.1013 (1.1248) loss_fgl_dn_2: 0.9437 (0.9276) loss_ddf_dn_2: 0.0032 (0.0039) loss_vfl_dn_3: 0.4497 (0.4442) loss_bbox_dn_3: 0.0526 (0.0480) loss_giou_dn_3: 1.1010 (1.1237) loss_fgl_dn_3: 0.9437 (0.9280) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.4526 (0.4434) loss_bbox_dn_4: 0.0523 (0.0479) loss_giou_dn_4: 1.1006 (1.1234) loss_fgl_dn_4: 0.9438 (0.9282) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4507 (0.4438) loss_bbox_dn_5: 0.0524 (0.0479) loss_giou_dn_5: 1.1005 (1.1234) loss_fgl_dn_5: 0.9438 (0.9282) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4143 (0.4014) loss_bbox_dn_pre: 0.0641 (0.0586) loss_giou_dn_pre: 1.2076 (1.2285) time: 0.7827 data: 0.0180 max mem: 29821\n", + "Epoch: [23] Total time: 0:01:12 (0.8619 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.6944 (38.8261) loss_vfl: 0.1919 (0.1645) loss_bbox: 0.3097 (0.3315) loss_giou: 1.8144 (1.8800) loss_fgl: 0.4155 (0.3821) loss_vfl_aux_0: 0.1958 (0.1662) loss_bbox_aux_0: 0.3101 (0.3321) loss_giou_aux_0: 1.8238 (1.8935) loss_fgl_aux_0: 0.4080 (0.3808) loss_ddf_aux_0: 0.0908 (0.1243) loss_vfl_aux_1: 0.1929 (0.1689) loss_bbox_aux_1: 0.3098 (0.3316) loss_giou_aux_1: 1.8149 (1.8821) loss_fgl_aux_1: 0.4146 (0.3818) loss_ddf_aux_1: 0.0151 (0.0172) loss_vfl_aux_2: 0.1891 (0.1671) loss_bbox_aux_2: 0.3097 (0.3312) loss_giou_aux_2: 1.8146 (1.8806) loss_fgl_aux_2: 0.4158 (0.3821) loss_ddf_aux_2: 0.0018 (0.0024) loss_vfl_aux_3: 0.1893 (0.1647) loss_bbox_aux_3: 0.3096 (0.3313) loss_giou_aux_3: 1.8145 (1.8803) loss_fgl_aux_3: 0.4154 (0.3821) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1926 (0.1644) loss_bbox_aux_4: 0.3097 (0.3315) loss_giou_aux_4: 1.8144 (1.8800) loss_fgl_aux_4: 0.4155 (0.3821) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1914 (0.1629) loss_bbox_pre: 0.3181 (0.3391) loss_giou_pre: 1.8136 (1.8851) loss_vfl_enc_0: 0.1876 (0.1546) loss_bbox_enc_0: 0.3373 (0.3599) loss_giou_enc_0: 1.8634 (1.9245) loss_vfl_dn_0: 0.4167 (0.4026) loss_bbox_dn_0: 0.0647 (0.0584) loss_giou_dn_0: 1.2055 (1.2282) loss_fgl_dn_0: 0.9128 (0.8957) loss_ddf_dn_0: 0.2025 (0.2308) loss_vfl_dn_1: 0.4573 (0.4457) loss_bbox_dn_1: 0.0531 (0.0498) loss_giou_dn_1: 1.1181 (1.1401) loss_fgl_dn_1: 0.9397 (0.9232) loss_ddf_dn_1: 0.0371 (0.0367) loss_vfl_dn_2: 0.4541 (0.4483) loss_bbox_dn_2: 0.0524 (0.0483) loss_giou_dn_2: 1.1013 (1.1248) loss_fgl_dn_2: 0.9437 (0.9276) loss_ddf_dn_2: 0.0032 (0.0039) loss_vfl_dn_3: 0.4497 (0.4442) loss_bbox_dn_3: 0.0526 (0.0480) loss_giou_dn_3: 1.1010 (1.1237) loss_fgl_dn_3: 0.9437 (0.9280) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.4526 (0.4434) loss_bbox_dn_4: 0.0523 (0.0479) loss_giou_dn_4: 1.1006 (1.1234) loss_fgl_dn_4: 0.9438 (0.9282) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4507 (0.4438) loss_bbox_dn_5: 0.0524 (0.0479) loss_giou_dn_5: 1.1005 (1.1234) loss_fgl_dn_5: 0.9438 (0.9282) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4143 (0.4014) loss_bbox_dn_pre: 0.0641 (0.0586) loss_giou_dn_pre: 1.2076 (1.2285)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7622 data: 0.5113 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3980 data: 0.1694 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4124 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.024\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.063\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.012\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.026\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.159\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.401\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.007\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.044\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.061\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.057\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.383\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.450\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.142\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.043\n", + "best_stat: {'epoch': 23, 'coco_eval_bbox': 0.02352958378082212}\n", + "Epoch: [24] [ 0/84] eta: 0:02:38 lr: 0.000013 loss: 37.5161 (37.5161) loss_vfl: 0.1028 (0.1028) loss_bbox: 0.3173 (0.3173) loss_giou: 1.8740 (1.8740) loss_fgl: 0.3179 (0.3179) loss_vfl_aux_0: 0.1022 (0.1022) loss_bbox_aux_0: 0.3183 (0.3183) loss_giou_aux_0: 1.8910 (1.8910) loss_fgl_aux_0: 0.3171 (0.3171) loss_ddf_aux_0: 0.1219 (0.1219) loss_vfl_aux_1: 0.1069 (0.1069) loss_bbox_aux_1: 0.3174 (0.3174) loss_giou_aux_1: 1.8778 (1.8778) loss_fgl_aux_1: 0.3174 (0.3174) loss_ddf_aux_1: 0.0204 (0.0204) loss_vfl_aux_2: 0.1085 (0.1085) loss_bbox_aux_2: 0.3172 (0.3172) loss_giou_aux_2: 1.8747 (1.8747) loss_fgl_aux_2: 0.3177 (0.3177) loss_ddf_aux_2: 0.0029 (0.0029) loss_vfl_aux_3: 0.1033 (0.1033) loss_bbox_aux_3: 0.3172 (0.3172) loss_giou_aux_3: 1.8743 (1.8743) loss_fgl_aux_3: 0.3178 (0.3178) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1024 (0.1024) loss_bbox_aux_4: 0.3174 (0.3174) loss_giou_aux_4: 1.8740 (1.8740) loss_fgl_aux_4: 0.3179 (0.3179) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1002 (0.1002) loss_bbox_pre: 0.3265 (0.3265) loss_giou_pre: 1.8833 (1.8833) loss_vfl_enc_0: 0.0948 (0.0948) loss_bbox_enc_0: 0.3577 (0.3577) loss_giou_enc_0: 1.9182 (1.9182) loss_vfl_dn_0: 0.3801 (0.3801) loss_bbox_dn_0: 0.0520 (0.0520) loss_giou_dn_0: 1.2391 (1.2391) loss_fgl_dn_0: 0.8620 (0.8620) loss_ddf_dn_0: 0.1448 (0.1448) loss_vfl_dn_1: 0.4380 (0.4380) loss_bbox_dn_1: 0.0389 (0.0389) loss_giou_dn_1: 1.1404 (1.1404) loss_fgl_dn_1: 0.9104 (0.9104) loss_ddf_dn_1: 0.0195 (0.0195) loss_vfl_dn_2: 0.4363 (0.4363) loss_bbox_dn_2: 0.0372 (0.0372) loss_giou_dn_2: 1.1347 (1.1347) loss_fgl_dn_2: 0.9118 (0.9118) loss_ddf_dn_2: 0.0016 (0.0016) loss_vfl_dn_3: 0.4390 (0.4390) loss_bbox_dn_3: 0.0371 (0.0371) loss_giou_dn_3: 1.1347 (1.1347) loss_fgl_dn_3: 0.9120 (0.9120) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4407 (0.4407) loss_bbox_dn_4: 0.0371 (0.0371) loss_giou_dn_4: 1.1347 (1.1347) loss_fgl_dn_4: 0.9120 (0.9120) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4397 (0.4397) loss_bbox_dn_5: 0.0371 (0.0371) loss_giou_dn_5: 1.1347 (1.1347) loss_fgl_dn_5: 0.9120 (0.9120) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3831 (0.3831) loss_bbox_dn_pre: 0.0515 (0.0515) loss_giou_dn_pre: 1.2345 (1.2345) time: 1.8878 data: 0.7601 max mem: 29821\n", + "Epoch: [24] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.3165 (38.4097) loss_vfl: 0.1536 (0.1630) loss_bbox: 0.3158 (0.3112) loss_giou: 1.8670 (1.8436) loss_fgl: 0.3650 (0.3868) loss_vfl_aux_0: 0.1548 (0.1662) loss_bbox_aux_0: 0.3217 (0.3126) loss_giou_aux_0: 1.8763 (1.8584) loss_fgl_aux_0: 0.3601 (0.3863) loss_ddf_aux_0: 0.1771 (0.1369) loss_vfl_aux_1: 0.1549 (0.1678) loss_bbox_aux_1: 0.3145 (0.3112) loss_giou_aux_1: 1.8674 (1.8460) loss_fgl_aux_1: 0.3644 (0.3869) loss_ddf_aux_1: 0.0248 (0.0202) loss_vfl_aux_2: 0.1553 (0.1663) loss_bbox_aux_2: 0.3165 (0.3113) loss_giou_aux_2: 1.8667 (1.8438) loss_fgl_aux_2: 0.3655 (0.3869) loss_ddf_aux_2: 0.0029 (0.0026) loss_vfl_aux_3: 0.1500 (0.1635) loss_bbox_aux_3: 0.3162 (0.3112) loss_giou_aux_3: 1.8668 (1.8436) loss_fgl_aux_3: 0.3651 (0.3868) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1511 (0.1627) loss_bbox_aux_4: 0.3161 (0.3113) loss_giou_aux_4: 1.8668 (1.8435) loss_fgl_aux_4: 0.3649 (0.3868) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1504 (0.1630) loss_bbox_pre: 0.3254 (0.3194) loss_giou_pre: 1.8680 (1.8524) loss_vfl_enc_0: 0.1436 (0.1541) loss_bbox_enc_0: 0.3331 (0.3389) loss_giou_enc_0: 1.9275 (1.8965) loss_vfl_dn_0: 0.4001 (0.3994) loss_bbox_dn_0: 0.0468 (0.0552) loss_giou_dn_0: 1.2213 (1.2364) loss_fgl_dn_0: 0.8916 (0.8911) loss_ddf_dn_0: 0.2398 (0.2428) loss_vfl_dn_1: 0.4460 (0.4440) loss_bbox_dn_1: 0.0402 (0.0464) loss_giou_dn_1: 1.1393 (1.1392) loss_fgl_dn_1: 0.9196 (0.9224) loss_ddf_dn_1: 0.0448 (0.0375) loss_vfl_dn_2: 0.4448 (0.4462) loss_bbox_dn_2: 0.0394 (0.0447) loss_giou_dn_2: 1.1167 (1.1242) loss_fgl_dn_2: 0.9282 (0.9272) loss_ddf_dn_2: 0.0050 (0.0038) loss_vfl_dn_3: 0.4424 (0.4437) loss_bbox_dn_3: 0.0395 (0.0445) loss_giou_dn_3: 1.1159 (1.1231) loss_fgl_dn_3: 0.9285 (0.9277) loss_ddf_dn_3: 0.0007 (0.0006) loss_vfl_dn_4: 0.4395 (0.4428) loss_bbox_dn_4: 0.0393 (0.0444) loss_giou_dn_4: 1.1160 (1.1230) loss_fgl_dn_4: 0.9286 (0.9279) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4387 (0.4430) loss_bbox_dn_5: 0.0392 (0.0444) loss_giou_dn_5: 1.1160 (1.1230) loss_fgl_dn_5: 0.9286 (0.9279) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4014 (0.3984) loss_bbox_dn_pre: 0.0468 (0.0552) loss_giou_dn_pre: 1.2224 (1.2372) time: 0.8800 data: 0.0174 max mem: 29821\n", + "Epoch: [24] Total time: 0:01:14 (0.8856 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.3165 (38.4097) loss_vfl: 0.1536 (0.1630) loss_bbox: 0.3158 (0.3112) loss_giou: 1.8670 (1.8436) loss_fgl: 0.3650 (0.3868) loss_vfl_aux_0: 0.1548 (0.1662) loss_bbox_aux_0: 0.3217 (0.3126) loss_giou_aux_0: 1.8763 (1.8584) loss_fgl_aux_0: 0.3601 (0.3863) loss_ddf_aux_0: 0.1771 (0.1369) loss_vfl_aux_1: 0.1549 (0.1678) loss_bbox_aux_1: 0.3145 (0.3112) loss_giou_aux_1: 1.8674 (1.8460) loss_fgl_aux_1: 0.3644 (0.3869) loss_ddf_aux_1: 0.0248 (0.0202) loss_vfl_aux_2: 0.1553 (0.1663) loss_bbox_aux_2: 0.3165 (0.3113) loss_giou_aux_2: 1.8667 (1.8438) loss_fgl_aux_2: 0.3655 (0.3869) loss_ddf_aux_2: 0.0029 (0.0026) loss_vfl_aux_3: 0.1500 (0.1635) loss_bbox_aux_3: 0.3162 (0.3112) loss_giou_aux_3: 1.8668 (1.8436) loss_fgl_aux_3: 0.3651 (0.3868) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1511 (0.1627) loss_bbox_aux_4: 0.3161 (0.3113) loss_giou_aux_4: 1.8668 (1.8435) loss_fgl_aux_4: 0.3649 (0.3868) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1504 (0.1630) loss_bbox_pre: 0.3254 (0.3194) loss_giou_pre: 1.8680 (1.8524) loss_vfl_enc_0: 0.1436 (0.1541) loss_bbox_enc_0: 0.3331 (0.3389) loss_giou_enc_0: 1.9275 (1.8965) loss_vfl_dn_0: 0.4001 (0.3994) loss_bbox_dn_0: 0.0468 (0.0552) loss_giou_dn_0: 1.2213 (1.2364) loss_fgl_dn_0: 0.8916 (0.8911) loss_ddf_dn_0: 0.2398 (0.2428) loss_vfl_dn_1: 0.4460 (0.4440) loss_bbox_dn_1: 0.0402 (0.0464) loss_giou_dn_1: 1.1393 (1.1392) loss_fgl_dn_1: 0.9196 (0.9224) loss_ddf_dn_1: 0.0448 (0.0375) loss_vfl_dn_2: 0.4448 (0.4462) loss_bbox_dn_2: 0.0394 (0.0447) loss_giou_dn_2: 1.1167 (1.1242) loss_fgl_dn_2: 0.9282 (0.9272) loss_ddf_dn_2: 0.0050 (0.0038) loss_vfl_dn_3: 0.4424 (0.4437) loss_bbox_dn_3: 0.0395 (0.0445) loss_giou_dn_3: 1.1159 (1.1231) loss_fgl_dn_3: 0.9285 (0.9277) loss_ddf_dn_3: 0.0007 (0.0006) loss_vfl_dn_4: 0.4395 (0.4428) loss_bbox_dn_4: 0.0393 (0.0444) loss_giou_dn_4: 1.1160 (1.1230) loss_fgl_dn_4: 0.9286 (0.9279) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4387 (0.4430) loss_bbox_dn_5: 0.0392 (0.0444) loss_giou_dn_5: 1.1160 (1.1230) loss_fgl_dn_5: 0.9286 (0.9279) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4014 (0.3984) loss_bbox_dn_pre: 0.0468 (0.0552) loss_giou_dn_pre: 1.2224 (1.2372)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7458 data: 0.4932 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4013 data: 0.1647 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4159 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.023\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.065\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.009\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.026\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.171\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.413\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.007\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.056\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.071\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.069\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.358\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.425\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.164\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.029\n", + "best_stat: {'epoch': 23, 'coco_eval_bbox': 0.02352958378082212}\n", + "Epoch: [25] [ 0/84] eta: 0:02:38 lr: 0.000013 loss: 38.8252 (38.8252) loss_vfl: 0.1541 (0.1541) loss_bbox: 0.3258 (0.3258) loss_giou: 1.9083 (1.9083) loss_fgl: 0.3724 (0.3724) loss_vfl_aux_0: 0.1509 (0.1509) loss_bbox_aux_0: 0.3365 (0.3365) loss_giou_aux_0: 1.9089 (1.9089) loss_fgl_aux_0: 0.3705 (0.3705) loss_ddf_aux_0: 0.1478 (0.1478) loss_vfl_aux_1: 0.1532 (0.1532) loss_bbox_aux_1: 0.3263 (0.3263) loss_giou_aux_1: 1.9081 (1.9081) loss_fgl_aux_1: 0.3738 (0.3738) loss_ddf_aux_1: 0.0284 (0.0284) loss_vfl_aux_2: 0.1495 (0.1495) loss_bbox_aux_2: 0.3264 (0.3264) loss_giou_aux_2: 1.9072 (1.9072) loss_fgl_aux_2: 0.3730 (0.3730) loss_ddf_aux_2: 0.0075 (0.0075) loss_vfl_aux_3: 0.1494 (0.1494) loss_bbox_aux_3: 0.3262 (0.3262) loss_giou_aux_3: 1.9078 (1.9078) loss_fgl_aux_3: 0.3724 (0.3724) loss_ddf_aux_3: 0.0007 (0.0007) loss_vfl_aux_4: 0.1552 (0.1552) loss_bbox_aux_4: 0.3259 (0.3259) loss_giou_aux_4: 1.9081 (1.9081) loss_fgl_aux_4: 0.3723 (0.3723) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.1469 (0.1469) loss_bbox_pre: 0.3442 (0.3442) loss_giou_pre: 1.9019 (1.9019) loss_vfl_enc_0: 0.1382 (0.1382) loss_bbox_enc_0: 0.3725 (0.3725) loss_giou_enc_0: 1.9285 (1.9285) loss_vfl_dn_0: 0.4104 (0.4104) loss_bbox_dn_0: 0.0454 (0.0454) loss_giou_dn_0: 1.2059 (1.2059) loss_fgl_dn_0: 0.9163 (0.9163) loss_ddf_dn_0: 0.2312 (0.2312) loss_vfl_dn_1: 0.4365 (0.4365) loss_bbox_dn_1: 0.0385 (0.0385) loss_giou_dn_1: 1.1411 (1.1411) loss_fgl_dn_1: 0.9339 (0.9339) loss_ddf_dn_1: 0.0530 (0.0530) loss_vfl_dn_2: 0.4495 (0.4495) loss_bbox_dn_2: 0.0359 (0.0359) loss_giou_dn_2: 1.1121 (1.1121) loss_fgl_dn_2: 0.9438 (0.9438) loss_ddf_dn_2: 0.0076 (0.0076) loss_vfl_dn_3: 0.4443 (0.4443) loss_bbox_dn_3: 0.0359 (0.0359) loss_giou_dn_3: 1.1127 (1.1127) loss_fgl_dn_3: 0.9435 (0.9435) loss_ddf_dn_3: 0.0011 (0.0011) loss_vfl_dn_4: 0.4482 (0.4482) loss_bbox_dn_4: 0.0360 (0.0360) loss_giou_dn_4: 1.1143 (1.1143) loss_fgl_dn_4: 0.9431 (0.9431) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4507 (0.4507) loss_bbox_dn_5: 0.0360 (0.0360) loss_giou_dn_5: 1.1144 (1.1144) loss_fgl_dn_5: 0.9431 (0.9431) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4089 (0.4089) loss_bbox_dn_pre: 0.0460 (0.0460) loss_giou_dn_pre: 1.2067 (1.2067) time: 1.8911 data: 0.9582 max mem: 29821\n", + "Epoch: [25] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.9456 (38.4224) loss_vfl: 0.1548 (0.1578) loss_bbox: 0.3150 (0.3066) loss_giou: 1.9291 (1.8674) loss_fgl: 0.3304 (0.3818) loss_vfl_aux_0: 0.1522 (0.1599) loss_bbox_aux_0: 0.3120 (0.3082) loss_giou_aux_0: 1.9339 (1.8807) loss_fgl_aux_0: 0.3302 (0.3817) loss_ddf_aux_0: 0.0939 (0.1054) loss_vfl_aux_1: 0.1548 (0.1627) loss_bbox_aux_1: 0.3190 (0.3075) loss_giou_aux_1: 1.9289 (1.8690) loss_fgl_aux_1: 0.3307 (0.3817) loss_ddf_aux_1: 0.0124 (0.0139) loss_vfl_aux_2: 0.1556 (0.1612) loss_bbox_aux_2: 0.3166 (0.3071) loss_giou_aux_2: 1.9290 (1.8673) loss_fgl_aux_2: 0.3303 (0.3816) loss_ddf_aux_2: 0.0017 (0.0020) loss_vfl_aux_3: 0.1539 (0.1588) loss_bbox_aux_3: 0.3157 (0.3068) loss_giou_aux_3: 1.9290 (1.8673) loss_fgl_aux_3: 0.3302 (0.3817) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1537 (0.1580) loss_bbox_aux_4: 0.3153 (0.3067) loss_giou_aux_4: 1.9290 (1.8673) loss_fgl_aux_4: 0.3303 (0.3818) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1503 (0.1567) loss_bbox_pre: 0.3177 (0.3142) loss_giou_pre: 1.9327 (1.8734) loss_vfl_enc_0: 0.1451 (0.1491) loss_bbox_enc_0: 0.3523 (0.3351) loss_giou_enc_0: 1.9903 (1.9152) loss_vfl_dn_0: 0.3982 (0.4062) loss_bbox_dn_0: 0.0469 (0.0534) loss_giou_dn_0: 1.2485 (1.2181) loss_fgl_dn_0: 0.8869 (0.9025) loss_ddf_dn_0: 0.2082 (0.2145) loss_vfl_dn_1: 0.4402 (0.4442) loss_bbox_dn_1: 0.0409 (0.0453) loss_giou_dn_1: 1.1503 (1.1393) loss_fgl_dn_1: 0.9164 (0.9288) loss_ddf_dn_1: 0.0240 (0.0372) loss_vfl_dn_2: 0.4424 (0.4484) loss_bbox_dn_2: 0.0401 (0.0439) loss_giou_dn_2: 1.1425 (1.1233) loss_fgl_dn_2: 0.9216 (0.9336) loss_ddf_dn_2: 0.0024 (0.0028) loss_vfl_dn_3: 0.4338 (0.4426) loss_bbox_dn_3: 0.0398 (0.0437) loss_giou_dn_3: 1.1415 (1.1228) loss_fgl_dn_3: 0.9220 (0.9338) loss_ddf_dn_3: 0.0006 (0.0005) loss_vfl_dn_4: 0.4348 (0.4419) loss_bbox_dn_4: 0.0397 (0.0436) loss_giou_dn_4: 1.1409 (1.1226) loss_fgl_dn_4: 0.9222 (0.9340) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4358 (0.4422) loss_bbox_dn_5: 0.0397 (0.0436) loss_giou_dn_5: 1.1408 (1.1226) loss_fgl_dn_5: 0.9222 (0.9340) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3975 (0.4051) loss_bbox_dn_pre: 0.0475 (0.0535) loss_giou_dn_pre: 1.2475 (1.2183) time: 0.8838 data: 0.0178 max mem: 29821\n", + "Epoch: [25] Total time: 0:01:14 (0.8830 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.9456 (38.4224) loss_vfl: 0.1548 (0.1578) loss_bbox: 0.3150 (0.3066) loss_giou: 1.9291 (1.8674) loss_fgl: 0.3304 (0.3818) loss_vfl_aux_0: 0.1522 (0.1599) loss_bbox_aux_0: 0.3120 (0.3082) loss_giou_aux_0: 1.9339 (1.8807) loss_fgl_aux_0: 0.3302 (0.3817) loss_ddf_aux_0: 0.0939 (0.1054) loss_vfl_aux_1: 0.1548 (0.1627) loss_bbox_aux_1: 0.3190 (0.3075) loss_giou_aux_1: 1.9289 (1.8690) loss_fgl_aux_1: 0.3307 (0.3817) loss_ddf_aux_1: 0.0124 (0.0139) loss_vfl_aux_2: 0.1556 (0.1612) loss_bbox_aux_2: 0.3166 (0.3071) loss_giou_aux_2: 1.9290 (1.8673) loss_fgl_aux_2: 0.3303 (0.3816) loss_ddf_aux_2: 0.0017 (0.0020) loss_vfl_aux_3: 0.1539 (0.1588) loss_bbox_aux_3: 0.3157 (0.3068) loss_giou_aux_3: 1.9290 (1.8673) loss_fgl_aux_3: 0.3302 (0.3817) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1537 (0.1580) loss_bbox_aux_4: 0.3153 (0.3067) loss_giou_aux_4: 1.9290 (1.8673) loss_fgl_aux_4: 0.3303 (0.3818) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1503 (0.1567) loss_bbox_pre: 0.3177 (0.3142) loss_giou_pre: 1.9327 (1.8734) loss_vfl_enc_0: 0.1451 (0.1491) loss_bbox_enc_0: 0.3523 (0.3351) loss_giou_enc_0: 1.9903 (1.9152) loss_vfl_dn_0: 0.3982 (0.4062) loss_bbox_dn_0: 0.0469 (0.0534) loss_giou_dn_0: 1.2485 (1.2181) loss_fgl_dn_0: 0.8869 (0.9025) loss_ddf_dn_0: 0.2082 (0.2145) loss_vfl_dn_1: 0.4402 (0.4442) loss_bbox_dn_1: 0.0409 (0.0453) loss_giou_dn_1: 1.1503 (1.1393) loss_fgl_dn_1: 0.9164 (0.9288) loss_ddf_dn_1: 0.0240 (0.0372) loss_vfl_dn_2: 0.4424 (0.4484) loss_bbox_dn_2: 0.0401 (0.0439) loss_giou_dn_2: 1.1425 (1.1233) loss_fgl_dn_2: 0.9216 (0.9336) loss_ddf_dn_2: 0.0024 (0.0028) loss_vfl_dn_3: 0.4338 (0.4426) loss_bbox_dn_3: 0.0398 (0.0437) loss_giou_dn_3: 1.1415 (1.1228) loss_fgl_dn_3: 0.9220 (0.9338) loss_ddf_dn_3: 0.0006 (0.0005) loss_vfl_dn_4: 0.4348 (0.4419) loss_bbox_dn_4: 0.0397 (0.0436) loss_giou_dn_4: 1.1409 (1.1226) loss_fgl_dn_4: 0.9222 (0.9340) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4358 (0.4422) loss_bbox_dn_5: 0.0397 (0.0436) loss_giou_dn_5: 1.1408 (1.1226) loss_fgl_dn_5: 0.9222 (0.9340) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3975 (0.4051) loss_bbox_dn_pre: 0.0475 (0.0535) loss_giou_dn_pre: 1.2475 (1.2183)\n", + "Test: [0/4] eta: 0:00:05 time: 1.2967 data: 0.4964 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.5355 data: 0.1608 max mem: 29821\n", + "Test: Total time: 0:00:02 (0.5531 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.022\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.056\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.012\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.022\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.139\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.206\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.008\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.058\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.074\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.074\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.364\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.200\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.163\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.036\n", + "best_stat: {'epoch': 23, 'coco_eval_bbox': 0.02352958378082212}\n", + "Epoch: [26] [ 0/84] eta: 0:02:33 lr: 0.000013 loss: 37.9496 (37.9496) loss_vfl: 0.2260 (0.2260) loss_bbox: 0.2826 (0.2826) loss_giou: 1.5754 (1.5754) loss_fgl: 0.5397 (0.5397) loss_vfl_aux_0: 0.2317 (0.2317) loss_bbox_aux_0: 0.2962 (0.2962) loss_giou_aux_0: 1.5992 (1.5992) loss_fgl_aux_0: 0.5331 (0.5331) loss_ddf_aux_0: 0.2131 (0.2131) loss_vfl_aux_1: 0.2412 (0.2412) loss_bbox_aux_1: 0.2862 (0.2862) loss_giou_aux_1: 1.5784 (1.5784) loss_fgl_aux_1: 0.5388 (0.5388) loss_ddf_aux_1: 0.0322 (0.0322) loss_vfl_aux_2: 0.2400 (0.2400) loss_bbox_aux_2: 0.2840 (0.2840) loss_giou_aux_2: 1.5763 (1.5763) loss_fgl_aux_2: 0.5398 (0.5398) loss_ddf_aux_2: 0.0060 (0.0060) loss_vfl_aux_3: 0.2290 (0.2290) loss_bbox_aux_3: 0.2830 (0.2830) loss_giou_aux_3: 1.5755 (1.5755) loss_fgl_aux_3: 0.5396 (0.5396) loss_ddf_aux_3: 0.0009 (0.0009) loss_vfl_aux_4: 0.2269 (0.2269) loss_bbox_aux_4: 0.2827 (0.2827) loss_giou_aux_4: 1.5754 (1.5754) loss_fgl_aux_4: 0.5397 (0.5397) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.2262 (0.2262) loss_bbox_pre: 0.3009 (0.3009) loss_giou_pre: 1.5992 (1.5992) loss_vfl_enc_0: 0.2174 (0.2174) loss_bbox_enc_0: 0.3174 (0.3174) loss_giou_enc_0: 1.6629 (1.6629) loss_vfl_dn_0: 0.4272 (0.4272) loss_bbox_dn_0: 0.0694 (0.0694) loss_giou_dn_0: 1.1919 (1.1919) loss_fgl_dn_0: 0.9289 (0.9289) loss_ddf_dn_0: 0.3069 (0.3069) loss_vfl_dn_1: 0.4800 (0.4800) loss_bbox_dn_1: 0.0560 (0.0560) loss_giou_dn_1: 1.1022 (1.1022) loss_fgl_dn_1: 0.9553 (0.9553) loss_ddf_dn_1: 0.0370 (0.0370) loss_vfl_dn_2: 0.4792 (0.4792) loss_bbox_dn_2: 0.0542 (0.0542) loss_giou_dn_2: 1.0933 (1.0933) loss_fgl_dn_2: 0.9569 (0.9569) loss_ddf_dn_2: 0.0051 (0.0051) loss_vfl_dn_3: 0.4739 (0.4739) loss_bbox_dn_3: 0.0532 (0.0532) loss_giou_dn_3: 1.0894 (1.0894) loss_fgl_dn_3: 0.9576 (0.9576) loss_ddf_dn_3: 0.0010 (0.0010) loss_vfl_dn_4: 0.4736 (0.4736) loss_bbox_dn_4: 0.0526 (0.0526) loss_giou_dn_4: 1.0881 (1.0881) loss_fgl_dn_4: 0.9578 (0.9578) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4771 (0.4771) loss_bbox_dn_5: 0.0524 (0.0524) loss_giou_dn_5: 1.0880 (1.0880) loss_fgl_dn_5: 0.9578 (0.9578) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4265 (0.4265) loss_bbox_dn_pre: 0.0696 (0.0696) loss_giou_dn_pre: 1.1905 (1.1905) time: 1.8239 data: 0.9568 max mem: 29821\n", + "Epoch: [26] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.7658 (38.2779) loss_vfl: 0.1647 (0.1620) loss_bbox: 0.2685 (0.3018) loss_giou: 1.7812 (1.8462) loss_fgl: 0.4149 (0.3918) loss_vfl_aux_0: 0.1716 (0.1653) loss_bbox_aux_0: 0.2714 (0.3045) loss_giou_aux_0: 1.7979 (1.8571) loss_fgl_aux_0: 0.4135 (0.3901) loss_ddf_aux_0: 0.0942 (0.1195) loss_vfl_aux_1: 0.1686 (0.1674) loss_bbox_aux_1: 0.2691 (0.3025) loss_giou_aux_1: 1.7829 (1.8476) loss_fgl_aux_1: 0.4143 (0.3914) loss_ddf_aux_1: 0.0109 (0.0169) loss_vfl_aux_2: 0.1652 (0.1655) loss_bbox_aux_2: 0.2685 (0.3020) loss_giou_aux_2: 1.7813 (1.8463) loss_fgl_aux_2: 0.4148 (0.3917) loss_ddf_aux_2: 0.0016 (0.0027) loss_vfl_aux_3: 0.1660 (0.1633) loss_bbox_aux_3: 0.2685 (0.3019) loss_giou_aux_3: 1.7810 (1.8462) loss_fgl_aux_3: 0.4148 (0.3917) loss_ddf_aux_3: 0.0003 (0.0005) loss_vfl_aux_4: 0.1647 (0.1620) loss_bbox_aux_4: 0.2686 (0.3018) loss_giou_aux_4: 1.7811 (1.8461) loss_fgl_aux_4: 0.4149 (0.3918) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1697 (0.1622) loss_bbox_pre: 0.2768 (0.3100) loss_giou_pre: 1.7931 (1.8509) loss_vfl_enc_0: 0.1597 (0.1552) loss_bbox_enc_0: 0.2897 (0.3316) loss_giou_enc_0: 1.8393 (1.8895) loss_vfl_dn_0: 0.4067 (0.4088) loss_bbox_dn_0: 0.0525 (0.0526) loss_giou_dn_0: 1.2023 (1.2086) loss_fgl_dn_0: 0.9076 (0.9071) loss_ddf_dn_0: 0.2143 (0.2148) loss_vfl_dn_1: 0.4519 (0.4505) loss_bbox_dn_1: 0.0477 (0.0443) loss_giou_dn_1: 1.1068 (1.1215) loss_fgl_dn_1: 0.9389 (0.9356) loss_ddf_dn_1: 0.0266 (0.0297) loss_vfl_dn_2: 0.4524 (0.4503) loss_bbox_dn_2: 0.0465 (0.0429) loss_giou_dn_2: 1.0973 (1.1098) loss_fgl_dn_2: 0.9416 (0.9385) loss_ddf_dn_2: 0.0026 (0.0033) loss_vfl_dn_3: 0.4512 (0.4475) loss_bbox_dn_3: 0.0463 (0.0427) loss_giou_dn_3: 1.0962 (1.1090) loss_fgl_dn_3: 0.9420 (0.9388) loss_ddf_dn_3: 0.0004 (0.0006) loss_vfl_dn_4: 0.4512 (0.4465) loss_bbox_dn_4: 0.0463 (0.0426) loss_giou_dn_4: 1.0959 (1.1088) loss_fgl_dn_4: 0.9420 (0.9389) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4521 (0.4471) loss_bbox_dn_5: 0.0463 (0.0426) loss_giou_dn_5: 1.0959 (1.1088) loss_fgl_dn_5: 0.9420 (0.9390) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4062 (0.4078) loss_bbox_dn_pre: 0.0525 (0.0529) loss_giou_dn_pre: 1.2019 (1.2088) time: 0.8515 data: 0.0183 max mem: 29821\n", + "Epoch: [26] Total time: 0:01:13 (0.8763 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.7658 (38.2779) loss_vfl: 0.1647 (0.1620) loss_bbox: 0.2685 (0.3018) loss_giou: 1.7812 (1.8462) loss_fgl: 0.4149 (0.3918) loss_vfl_aux_0: 0.1716 (0.1653) loss_bbox_aux_0: 0.2714 (0.3045) loss_giou_aux_0: 1.7979 (1.8571) loss_fgl_aux_0: 0.4135 (0.3901) loss_ddf_aux_0: 0.0942 (0.1195) loss_vfl_aux_1: 0.1686 (0.1674) loss_bbox_aux_1: 0.2691 (0.3025) loss_giou_aux_1: 1.7829 (1.8476) loss_fgl_aux_1: 0.4143 (0.3914) loss_ddf_aux_1: 0.0109 (0.0169) loss_vfl_aux_2: 0.1652 (0.1655) loss_bbox_aux_2: 0.2685 (0.3020) loss_giou_aux_2: 1.7813 (1.8463) loss_fgl_aux_2: 0.4148 (0.3917) loss_ddf_aux_2: 0.0016 (0.0027) loss_vfl_aux_3: 0.1660 (0.1633) loss_bbox_aux_3: 0.2685 (0.3019) loss_giou_aux_3: 1.7810 (1.8462) loss_fgl_aux_3: 0.4148 (0.3917) loss_ddf_aux_3: 0.0003 (0.0005) loss_vfl_aux_4: 0.1647 (0.1620) loss_bbox_aux_4: 0.2686 (0.3018) loss_giou_aux_4: 1.7811 (1.8461) loss_fgl_aux_4: 0.4149 (0.3918) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1697 (0.1622) loss_bbox_pre: 0.2768 (0.3100) loss_giou_pre: 1.7931 (1.8509) loss_vfl_enc_0: 0.1597 (0.1552) loss_bbox_enc_0: 0.2897 (0.3316) loss_giou_enc_0: 1.8393 (1.8895) loss_vfl_dn_0: 0.4067 (0.4088) loss_bbox_dn_0: 0.0525 (0.0526) loss_giou_dn_0: 1.2023 (1.2086) loss_fgl_dn_0: 0.9076 (0.9071) loss_ddf_dn_0: 0.2143 (0.2148) loss_vfl_dn_1: 0.4519 (0.4505) loss_bbox_dn_1: 0.0477 (0.0443) loss_giou_dn_1: 1.1068 (1.1215) loss_fgl_dn_1: 0.9389 (0.9356) loss_ddf_dn_1: 0.0266 (0.0297) loss_vfl_dn_2: 0.4524 (0.4503) loss_bbox_dn_2: 0.0465 (0.0429) loss_giou_dn_2: 1.0973 (1.1098) loss_fgl_dn_2: 0.9416 (0.9385) loss_ddf_dn_2: 0.0026 (0.0033) loss_vfl_dn_3: 0.4512 (0.4475) loss_bbox_dn_3: 0.0463 (0.0427) loss_giou_dn_3: 1.0962 (1.1090) loss_fgl_dn_3: 0.9420 (0.9388) loss_ddf_dn_3: 0.0004 (0.0006) loss_vfl_dn_4: 0.4512 (0.4465) loss_bbox_dn_4: 0.0463 (0.0426) loss_giou_dn_4: 1.0959 (1.1088) loss_fgl_dn_4: 0.9420 (0.9389) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4521 (0.4471) loss_bbox_dn_5: 0.0463 (0.0426) loss_giou_dn_5: 1.0959 (1.1088) loss_fgl_dn_5: 0.9420 (0.9390) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4062 (0.4078) loss_bbox_dn_pre: 0.0525 (0.0529) loss_giou_dn_pre: 1.2019 (1.2088)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7923 data: 0.5355 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4075 data: 0.1731 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4238 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.022\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.053\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.013\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.023\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.087\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.280\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.017\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.056\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.072\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.077\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.202\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.300\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.158\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.041\n", + "best_stat: {'epoch': 23, 'coco_eval_bbox': 0.02352958378082212}\n", + "Epoch: [27] [ 0/84] eta: 0:02:36 lr: 0.000013 loss: 38.3921 (38.3921) loss_vfl: 0.1158 (0.1158) loss_bbox: 0.3387 (0.3387) loss_giou: 1.9838 (1.9838) loss_fgl: 0.2785 (0.2785) loss_vfl_aux_0: 0.1142 (0.1142) loss_bbox_aux_0: 0.3412 (0.3412) loss_giou_aux_0: 1.9932 (1.9932) loss_fgl_aux_0: 0.2815 (0.2815) loss_ddf_aux_0: 0.0792 (0.0792) loss_vfl_aux_1: 0.1171 (0.1171) loss_bbox_aux_1: 0.3402 (0.3402) loss_giou_aux_1: 1.9850 (1.9850) loss_fgl_aux_1: 0.2797 (0.2797) loss_ddf_aux_1: 0.0105 (0.0105) loss_vfl_aux_2: 0.1146 (0.1146) loss_bbox_aux_2: 0.3393 (0.3393) loss_giou_aux_2: 1.9840 (1.9840) loss_fgl_aux_2: 0.2786 (0.2786) loss_ddf_aux_2: 0.0013 (0.0013) loss_vfl_aux_3: 0.1161 (0.1161) loss_bbox_aux_3: 0.3389 (0.3389) loss_giou_aux_3: 1.9837 (1.9837) loss_fgl_aux_3: 0.2785 (0.2785) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1163 (0.1163) loss_bbox_aux_4: 0.3388 (0.3388) loss_giou_aux_4: 1.9837 (1.9837) loss_fgl_aux_4: 0.2785 (0.2785) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1130 (0.1130) loss_bbox_pre: 0.3466 (0.3466) loss_giou_pre: 1.9835 (1.9835) loss_vfl_enc_0: 0.1058 (0.1058) loss_bbox_enc_0: 0.3727 (0.3727) loss_giou_enc_0: 2.0493 (2.0493) loss_vfl_dn_0: 0.3977 (0.3977) loss_bbox_dn_0: 0.0424 (0.0424) loss_giou_dn_0: 1.2165 (1.2165) loss_fgl_dn_0: 0.8904 (0.8904) loss_ddf_dn_0: 0.1674 (0.1674) loss_vfl_dn_1: 0.4399 (0.4399) loss_bbox_dn_1: 0.0355 (0.0355) loss_giou_dn_1: 1.1376 (1.1376) loss_fgl_dn_1: 0.9214 (0.9214) loss_ddf_dn_1: 0.0197 (0.0197) loss_vfl_dn_2: 0.4480 (0.4480) loss_bbox_dn_2: 0.0333 (0.0333) loss_giou_dn_2: 1.1151 (1.1151) loss_fgl_dn_2: 0.9295 (0.9295) loss_ddf_dn_2: 0.0017 (0.0017) loss_vfl_dn_3: 0.4417 (0.4417) loss_bbox_dn_3: 0.0330 (0.0330) loss_giou_dn_3: 1.1138 (1.1138) loss_fgl_dn_3: 0.9301 (0.9301) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4419 (0.4419) loss_bbox_dn_4: 0.0329 (0.0329) loss_giou_dn_4: 1.1135 (1.1135) loss_fgl_dn_4: 0.9303 (0.9303) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4417 (0.4417) loss_bbox_dn_5: 0.0329 (0.0329) loss_giou_dn_5: 1.1135 (1.1135) loss_fgl_dn_5: 0.9303 (0.9303) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3972 (0.3972) loss_bbox_dn_pre: 0.0430 (0.0430) loss_giou_dn_pre: 1.2179 (1.2179) time: 1.8607 data: 0.9783 max mem: 29821\n", + "Epoch: [27] [83/84] eta: 0:00:00 lr: 0.000013 loss: 39.2337 (38.6692) loss_vfl: 0.1548 (0.1727) loss_bbox: 0.3376 (0.3205) loss_giou: 1.9358 (1.8596) loss_fgl: 0.3600 (0.3922) loss_vfl_aux_0: 0.1548 (0.1734) loss_bbox_aux_0: 0.3375 (0.3235) loss_giou_aux_0: 1.9457 (1.8716) loss_fgl_aux_0: 0.3580 (0.3907) loss_ddf_aux_0: 0.0946 (0.1126) loss_vfl_aux_1: 0.1610 (0.1776) loss_bbox_aux_1: 0.3351 (0.3209) loss_giou_aux_1: 1.9384 (1.8613) loss_fgl_aux_1: 0.3596 (0.3919) loss_ddf_aux_1: 0.0153 (0.0148) loss_vfl_aux_2: 0.1586 (0.1756) loss_bbox_aux_2: 0.3380 (0.3208) loss_giou_aux_2: 1.9358 (1.8596) loss_fgl_aux_2: 0.3600 (0.3920) loss_ddf_aux_2: 0.0018 (0.0022) loss_vfl_aux_3: 0.1576 (0.1740) loss_bbox_aux_3: 0.3377 (0.3206) loss_giou_aux_3: 1.9358 (1.8595) loss_fgl_aux_3: 0.3599 (0.3921) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1548 (0.1725) loss_bbox_aux_4: 0.3377 (0.3206) loss_giou_aux_4: 1.9358 (1.8596) loss_fgl_aux_4: 0.3599 (0.3922) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1509 (0.1708) loss_bbox_pre: 0.3466 (0.3282) loss_giou_pre: 1.9402 (1.8664) loss_vfl_enc_0: 0.1443 (0.1629) loss_bbox_enc_0: 0.3656 (0.3481) loss_giou_enc_0: 1.9685 (1.9072) loss_vfl_dn_0: 0.3892 (0.4057) loss_bbox_dn_0: 0.0529 (0.0575) loss_giou_dn_0: 1.2602 (1.2208) loss_fgl_dn_0: 0.8798 (0.9026) loss_ddf_dn_0: 0.2516 (0.2455) loss_vfl_dn_1: 0.4412 (0.4517) loss_bbox_dn_1: 0.0465 (0.0480) loss_giou_dn_1: 1.1314 (1.1176) loss_fgl_dn_1: 0.9141 (0.9344) loss_ddf_dn_1: 0.0384 (0.0343) loss_vfl_dn_2: 0.4431 (0.4527) loss_bbox_dn_2: 0.0447 (0.0464) loss_giou_dn_2: 1.1131 (1.1036) loss_fgl_dn_2: 0.9200 (0.9384) loss_ddf_dn_2: 0.0033 (0.0036) loss_vfl_dn_3: 0.4429 (0.4504) loss_bbox_dn_3: 0.0446 (0.0461) loss_giou_dn_3: 1.1129 (1.1027) loss_fgl_dn_3: 0.9203 (0.9389) loss_ddf_dn_3: 0.0004 (0.0005) loss_vfl_dn_4: 0.4404 (0.4496) loss_bbox_dn_4: 0.0446 (0.0460) loss_giou_dn_4: 1.1133 (1.1025) loss_fgl_dn_4: 0.9205 (0.9390) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4399 (0.4504) loss_bbox_dn_5: 0.0446 (0.0460) loss_giou_dn_5: 1.1134 (1.1025) loss_fgl_dn_5: 0.9205 (0.9390) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3879 (0.4044) loss_bbox_dn_pre: 0.0535 (0.0578) loss_giou_dn_pre: 1.2621 (1.2216) time: 0.8706 data: 0.0174 max mem: 29821\n", + "Epoch: [27] Total time: 0:01:13 (0.8716 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 39.2337 (38.6692) loss_vfl: 0.1548 (0.1727) loss_bbox: 0.3376 (0.3205) loss_giou: 1.9358 (1.8596) loss_fgl: 0.3600 (0.3922) loss_vfl_aux_0: 0.1548 (0.1734) loss_bbox_aux_0: 0.3375 (0.3235) loss_giou_aux_0: 1.9457 (1.8716) loss_fgl_aux_0: 0.3580 (0.3907) loss_ddf_aux_0: 0.0946 (0.1126) loss_vfl_aux_1: 0.1610 (0.1776) loss_bbox_aux_1: 0.3351 (0.3209) loss_giou_aux_1: 1.9384 (1.8613) loss_fgl_aux_1: 0.3596 (0.3919) loss_ddf_aux_1: 0.0153 (0.0148) loss_vfl_aux_2: 0.1586 (0.1756) loss_bbox_aux_2: 0.3380 (0.3208) loss_giou_aux_2: 1.9358 (1.8596) loss_fgl_aux_2: 0.3600 (0.3920) loss_ddf_aux_2: 0.0018 (0.0022) loss_vfl_aux_3: 0.1576 (0.1740) loss_bbox_aux_3: 0.3377 (0.3206) loss_giou_aux_3: 1.9358 (1.8595) loss_fgl_aux_3: 0.3599 (0.3921) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1548 (0.1725) loss_bbox_aux_4: 0.3377 (0.3206) loss_giou_aux_4: 1.9358 (1.8596) loss_fgl_aux_4: 0.3599 (0.3922) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1509 (0.1708) loss_bbox_pre: 0.3466 (0.3282) loss_giou_pre: 1.9402 (1.8664) loss_vfl_enc_0: 0.1443 (0.1629) loss_bbox_enc_0: 0.3656 (0.3481) loss_giou_enc_0: 1.9685 (1.9072) loss_vfl_dn_0: 0.3892 (0.4057) loss_bbox_dn_0: 0.0529 (0.0575) loss_giou_dn_0: 1.2602 (1.2208) loss_fgl_dn_0: 0.8798 (0.9026) loss_ddf_dn_0: 0.2516 (0.2455) loss_vfl_dn_1: 0.4412 (0.4517) loss_bbox_dn_1: 0.0465 (0.0480) loss_giou_dn_1: 1.1314 (1.1176) loss_fgl_dn_1: 0.9141 (0.9344) loss_ddf_dn_1: 0.0384 (0.0343) loss_vfl_dn_2: 0.4431 (0.4527) loss_bbox_dn_2: 0.0447 (0.0464) loss_giou_dn_2: 1.1131 (1.1036) loss_fgl_dn_2: 0.9200 (0.9384) loss_ddf_dn_2: 0.0033 (0.0036) loss_vfl_dn_3: 0.4429 (0.4504) loss_bbox_dn_3: 0.0446 (0.0461) loss_giou_dn_3: 1.1129 (1.1027) loss_fgl_dn_3: 0.9203 (0.9389) loss_ddf_dn_3: 0.0004 (0.0005) loss_vfl_dn_4: 0.4404 (0.4496) loss_bbox_dn_4: 0.0446 (0.0460) loss_giou_dn_4: 1.1133 (1.1025) loss_fgl_dn_4: 0.9205 (0.9390) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4399 (0.4504) loss_bbox_dn_5: 0.0446 (0.0460) loss_giou_dn_5: 1.1134 (1.1025) loss_fgl_dn_5: 0.9205 (0.9390) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3879 (0.4044) loss_bbox_dn_pre: 0.0535 (0.0578) loss_giou_dn_pre: 1.2621 (1.2216)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7770 data: 0.5264 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4029 data: 0.1693 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4193 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.022\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.062\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.011\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.023\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.165\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.478\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.028\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.059\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.075\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.079\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.326\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.475\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.168\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.034\n", + "best_stat: {'epoch': 23, 'coco_eval_bbox': 0.02352958378082212}\n", + "Epoch: [28] [ 0/84] eta: 0:02:14 lr: 0.000013 loss: 38.8317 (38.8317) loss_vfl: 0.2186 (0.2186) loss_bbox: 0.2844 (0.2844) loss_giou: 1.7541 (1.7541) loss_fgl: 0.4887 (0.4887) loss_vfl_aux_0: 0.2178 (0.2178) loss_bbox_aux_0: 0.2865 (0.2865) loss_giou_aux_0: 1.7814 (1.7814) loss_fgl_aux_0: 0.4895 (0.4895) loss_ddf_aux_0: 0.2168 (0.2168) loss_vfl_aux_1: 0.2429 (0.2429) loss_bbox_aux_1: 0.2823 (0.2823) loss_giou_aux_1: 1.7661 (1.7661) loss_fgl_aux_1: 0.4890 (0.4890) loss_ddf_aux_1: 0.0324 (0.0324) loss_vfl_aux_2: 0.2435 (0.2435) loss_bbox_aux_2: 0.2851 (0.2851) loss_giou_aux_2: 1.7559 (1.7559) loss_fgl_aux_2: 0.4884 (0.4884) loss_ddf_aux_2: 0.0039 (0.0039) loss_vfl_aux_3: 0.2264 (0.2264) loss_bbox_aux_3: 0.2860 (0.2860) loss_giou_aux_3: 1.7546 (1.7546) loss_fgl_aux_3: 0.4885 (0.4885) loss_ddf_aux_3: 0.0007 (0.0007) loss_vfl_aux_4: 0.2225 (0.2225) loss_bbox_aux_4: 0.2848 (0.2848) loss_giou_aux_4: 1.7542 (1.7542) loss_fgl_aux_4: 0.4887 (0.4887) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.2170 (0.2170) loss_bbox_pre: 0.2920 (0.2920) loss_giou_pre: 1.7721 (1.7721) loss_vfl_enc_0: 0.2013 (0.2013) loss_bbox_enc_0: 0.3137 (0.3137) loss_giou_enc_0: 1.8151 (1.8151) loss_vfl_dn_0: 0.3882 (0.3882) loss_bbox_dn_0: 0.0708 (0.0708) loss_giou_dn_0: 1.2619 (1.2619) loss_fgl_dn_0: 0.8806 (0.8806) loss_ddf_dn_0: 0.3031 (0.3031) loss_vfl_dn_1: 0.4414 (0.4414) loss_bbox_dn_1: 0.0601 (0.0601) loss_giou_dn_1: 1.1546 (1.1546) loss_fgl_dn_1: 0.9026 (0.9026) loss_ddf_dn_1: 0.0409 (0.0409) loss_vfl_dn_2: 0.4519 (0.4519) loss_bbox_dn_2: 0.0572 (0.0572) loss_giou_dn_2: 1.1308 (1.1308) loss_fgl_dn_2: 0.9108 (0.9108) loss_ddf_dn_2: 0.0034 (0.0034) loss_vfl_dn_3: 0.4407 (0.4407) loss_bbox_dn_3: 0.0566 (0.0566) loss_giou_dn_3: 1.1282 (1.1282) loss_fgl_dn_3: 0.9121 (0.9121) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4368 (0.4368) loss_bbox_dn_4: 0.0564 (0.0564) loss_giou_dn_4: 1.1278 (1.1278) loss_fgl_dn_4: 0.9126 (0.9126) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4365 (0.4365) loss_bbox_dn_5: 0.0564 (0.0564) loss_giou_dn_5: 1.1278 (1.1278) loss_fgl_dn_5: 0.9127 (0.9127) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3860 (0.3860) loss_bbox_dn_pre: 0.0713 (0.0713) loss_giou_dn_pre: 1.2659 (1.2659) time: 1.6040 data: 0.8245 max mem: 29821\n", + "Epoch: [28] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.1926 (38.5720) loss_vfl: 0.1472 (0.1649) loss_bbox: 0.2910 (0.3147) loss_giou: 1.8629 (1.8623) loss_fgl: 0.4061 (0.3865) loss_vfl_aux_0: 0.1514 (0.1665) loss_bbox_aux_0: 0.2867 (0.3171) loss_giou_aux_0: 1.8855 (1.8744) loss_fgl_aux_0: 0.4016 (0.3844) loss_ddf_aux_0: 0.1018 (0.1330) loss_vfl_aux_1: 0.1528 (0.1703) loss_bbox_aux_1: 0.2929 (0.3153) loss_giou_aux_1: 1.8649 (1.8634) loss_fgl_aux_1: 0.4051 (0.3858) loss_ddf_aux_1: 0.0158 (0.0175) loss_vfl_aux_2: 0.1527 (0.1691) loss_bbox_aux_2: 0.2909 (0.3150) loss_giou_aux_2: 1.8634 (1.8620) loss_fgl_aux_2: 0.4060 (0.3862) loss_ddf_aux_2: 0.0022 (0.0027) loss_vfl_aux_3: 0.1517 (0.1659) loss_bbox_aux_3: 0.2909 (0.3149) loss_giou_aux_3: 1.8630 (1.8621) loss_fgl_aux_3: 0.4061 (0.3864) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1455 (0.1651) loss_bbox_aux_4: 0.2910 (0.3147) loss_giou_aux_4: 1.8629 (1.8622) loss_fgl_aux_4: 0.4061 (0.3865) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1488 (0.1637) loss_bbox_pre: 0.2915 (0.3216) loss_giou_pre: 1.8773 (1.8687) loss_vfl_enc_0: 0.1394 (0.1562) loss_bbox_enc_0: 0.3238 (0.3438) loss_giou_enc_0: 1.9092 (1.9087) loss_vfl_dn_0: 0.4077 (0.4022) loss_bbox_dn_0: 0.0492 (0.0564) loss_giou_dn_0: 1.2148 (1.2242) loss_fgl_dn_0: 0.9043 (0.8954) loss_ddf_dn_0: 0.2174 (0.2579) loss_vfl_dn_1: 0.4558 (0.4509) loss_bbox_dn_1: 0.0394 (0.0472) loss_giou_dn_1: 1.1189 (1.1248) loss_fgl_dn_1: 0.9342 (0.9282) loss_ddf_dn_1: 0.0316 (0.0372) loss_vfl_dn_2: 0.4519 (0.4513) loss_bbox_dn_2: 0.0394 (0.0458) loss_giou_dn_2: 1.1082 (1.1109) loss_fgl_dn_2: 0.9402 (0.9322) loss_ddf_dn_2: 0.0042 (0.0042) loss_vfl_dn_3: 0.4504 (0.4475) loss_bbox_dn_3: 0.0396 (0.0456) loss_giou_dn_3: 1.1076 (1.1100) loss_fgl_dn_3: 0.9410 (0.9327) loss_ddf_dn_3: 0.0005 (0.0007) loss_vfl_dn_4: 0.4497 (0.4473) loss_bbox_dn_4: 0.0395 (0.0456) loss_giou_dn_4: 1.1084 (1.1099) loss_fgl_dn_4: 0.9411 (0.9328) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4509 (0.4478) loss_bbox_dn_5: 0.0394 (0.0456) loss_giou_dn_5: 1.1085 (1.1099) loss_fgl_dn_5: 0.9411 (0.9328) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4053 (0.4011) loss_bbox_dn_pre: 0.0496 (0.0566) loss_giou_dn_pre: 1.2228 (1.2249) time: 0.8978 data: 0.0169 max mem: 29821\n", + "Epoch: [28] Total time: 0:01:13 (0.8746 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.1926 (38.5720) loss_vfl: 0.1472 (0.1649) loss_bbox: 0.2910 (0.3147) loss_giou: 1.8629 (1.8623) loss_fgl: 0.4061 (0.3865) loss_vfl_aux_0: 0.1514 (0.1665) loss_bbox_aux_0: 0.2867 (0.3171) loss_giou_aux_0: 1.8855 (1.8744) loss_fgl_aux_0: 0.4016 (0.3844) loss_ddf_aux_0: 0.1018 (0.1330) loss_vfl_aux_1: 0.1528 (0.1703) loss_bbox_aux_1: 0.2929 (0.3153) loss_giou_aux_1: 1.8649 (1.8634) loss_fgl_aux_1: 0.4051 (0.3858) loss_ddf_aux_1: 0.0158 (0.0175) loss_vfl_aux_2: 0.1527 (0.1691) loss_bbox_aux_2: 0.2909 (0.3150) loss_giou_aux_2: 1.8634 (1.8620) loss_fgl_aux_2: 0.4060 (0.3862) loss_ddf_aux_2: 0.0022 (0.0027) loss_vfl_aux_3: 0.1517 (0.1659) loss_bbox_aux_3: 0.2909 (0.3149) loss_giou_aux_3: 1.8630 (1.8621) loss_fgl_aux_3: 0.4061 (0.3864) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1455 (0.1651) loss_bbox_aux_4: 0.2910 (0.3147) loss_giou_aux_4: 1.8629 (1.8622) loss_fgl_aux_4: 0.4061 (0.3865) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1488 (0.1637) loss_bbox_pre: 0.2915 (0.3216) loss_giou_pre: 1.8773 (1.8687) loss_vfl_enc_0: 0.1394 (0.1562) loss_bbox_enc_0: 0.3238 (0.3438) loss_giou_enc_0: 1.9092 (1.9087) loss_vfl_dn_0: 0.4077 (0.4022) loss_bbox_dn_0: 0.0492 (0.0564) loss_giou_dn_0: 1.2148 (1.2242) loss_fgl_dn_0: 0.9043 (0.8954) loss_ddf_dn_0: 0.2174 (0.2579) loss_vfl_dn_1: 0.4558 (0.4509) loss_bbox_dn_1: 0.0394 (0.0472) loss_giou_dn_1: 1.1189 (1.1248) loss_fgl_dn_1: 0.9342 (0.9282) loss_ddf_dn_1: 0.0316 (0.0372) loss_vfl_dn_2: 0.4519 (0.4513) loss_bbox_dn_2: 0.0394 (0.0458) loss_giou_dn_2: 1.1082 (1.1109) loss_fgl_dn_2: 0.9402 (0.9322) loss_ddf_dn_2: 0.0042 (0.0042) loss_vfl_dn_3: 0.4504 (0.4475) loss_bbox_dn_3: 0.0396 (0.0456) loss_giou_dn_3: 1.1076 (1.1100) loss_fgl_dn_3: 0.9410 (0.9327) loss_ddf_dn_3: 0.0005 (0.0007) loss_vfl_dn_4: 0.4497 (0.4473) loss_bbox_dn_4: 0.0395 (0.0456) loss_giou_dn_4: 1.1084 (1.1099) loss_fgl_dn_4: 0.9411 (0.9328) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4509 (0.4478) loss_bbox_dn_5: 0.0394 (0.0456) loss_giou_dn_5: 1.1085 (1.1099) loss_fgl_dn_5: 0.9411 (0.9328) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4053 (0.4011) loss_bbox_dn_pre: 0.0496 (0.0566) loss_giou_dn_pre: 1.2228 (1.2249)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7938 data: 0.5453 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4106 data: 0.1745 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4274 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.022\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.059\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.012\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.020\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.113\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.350\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.005\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.030\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.047\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.045\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.228\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.375\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.108\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.032\n", + "best_stat: {'epoch': 23, 'coco_eval_bbox': 0.02352958378082212}\n", + "Epoch: [29] [ 0/84] eta: 0:02:38 lr: 0.000013 loss: 38.1779 (38.1779) loss_vfl: 0.1752 (0.1752) loss_bbox: 0.2412 (0.2412) loss_giou: 1.9143 (1.9143) loss_fgl: 0.3495 (0.3495) loss_vfl_aux_0: 0.1680 (0.1680) loss_bbox_aux_0: 0.2422 (0.2422) loss_giou_aux_0: 1.9394 (1.9394) loss_fgl_aux_0: 0.3492 (0.3492) loss_ddf_aux_0: 0.1352 (0.1352) loss_vfl_aux_1: 0.1682 (0.1682) loss_bbox_aux_1: 0.2437 (0.2437) loss_giou_aux_1: 1.9181 (1.9181) loss_fgl_aux_1: 0.3483 (0.3483) loss_ddf_aux_1: 0.0196 (0.0196) loss_vfl_aux_2: 0.1687 (0.1687) loss_bbox_aux_2: 0.2416 (0.2416) loss_giou_aux_2: 1.9155 (1.9155) loss_fgl_aux_2: 0.3492 (0.3492) loss_ddf_aux_2: 0.0020 (0.0020) loss_vfl_aux_3: 0.1761 (0.1761) loss_bbox_aux_3: 0.2412 (0.2412) loss_giou_aux_3: 1.9145 (1.9145) loss_fgl_aux_3: 0.3493 (0.3493) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1749 (0.1749) loss_bbox_aux_4: 0.2412 (0.2412) loss_giou_aux_4: 1.9142 (1.9142) loss_fgl_aux_4: 0.3495 (0.3495) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1671 (0.1671) loss_bbox_pre: 0.2443 (0.2443) loss_giou_pre: 1.9338 (1.9338) loss_vfl_enc_0: 0.1677 (0.1677) loss_bbox_enc_0: 0.2657 (0.2657) loss_giou_enc_0: 2.0091 (2.0091) loss_vfl_dn_0: 0.4180 (0.4180) loss_bbox_dn_0: 0.0483 (0.0483) loss_giou_dn_0: 1.1733 (1.1733) loss_fgl_dn_0: 0.9383 (0.9383) loss_ddf_dn_0: 0.2338 (0.2338) loss_vfl_dn_1: 0.4453 (0.4453) loss_bbox_dn_1: 0.0391 (0.0391) loss_giou_dn_1: 1.1007 (1.1007) loss_fgl_dn_1: 0.9554 (0.9554) loss_ddf_dn_1: 0.0343 (0.0343) loss_vfl_dn_2: 0.4490 (0.4490) loss_bbox_dn_2: 0.0377 (0.0377) loss_giou_dn_2: 1.0874 (1.0874) loss_fgl_dn_2: 0.9581 (0.9581) loss_ddf_dn_2: 0.0037 (0.0037) loss_vfl_dn_3: 0.4431 (0.4431) loss_bbox_dn_3: 0.0374 (0.0374) loss_giou_dn_3: 1.0857 (1.0857) loss_fgl_dn_3: 0.9584 (0.9584) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4426 (0.4426) loss_bbox_dn_4: 0.0371 (0.0371) loss_giou_dn_4: 1.0853 (1.0853) loss_fgl_dn_4: 0.9584 (0.9584) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4443 (0.4443) loss_bbox_dn_5: 0.0371 (0.0371) loss_giou_dn_5: 1.0854 (1.0854) loss_fgl_dn_5: 0.9584 (0.9584) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4165 (0.4165) loss_bbox_dn_pre: 0.0493 (0.0493) loss_giou_dn_pre: 1.1774 (1.1774) time: 1.8907 data: 1.0548 max mem: 29821\n", + "Epoch: [29] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.5078 (38.4470) loss_vfl: 0.1423 (0.1662) loss_bbox: 0.2969 (0.3065) loss_giou: 1.8771 (1.8433) loss_fgl: 0.3509 (0.3983) loss_vfl_aux_0: 0.1473 (0.1689) loss_bbox_aux_0: 0.3093 (0.3117) loss_giou_aux_0: 1.8913 (1.8544) loss_fgl_aux_0: 0.3472 (0.3965) loss_ddf_aux_0: 0.1503 (0.1373) loss_vfl_aux_1: 0.1512 (0.1722) loss_bbox_aux_1: 0.2988 (0.3083) loss_giou_aux_1: 1.8789 (1.8442) loss_fgl_aux_1: 0.3504 (0.3975) loss_ddf_aux_1: 0.0141 (0.0175) loss_vfl_aux_2: 0.1464 (0.1710) loss_bbox_aux_2: 0.2973 (0.3069) loss_giou_aux_2: 1.8774 (1.8434) loss_fgl_aux_2: 0.3508 (0.3982) loss_ddf_aux_2: 0.0020 (0.0026) loss_vfl_aux_3: 0.1442 (0.1678) loss_bbox_aux_3: 0.2970 (0.3067) loss_giou_aux_3: 1.8770 (1.8432) loss_fgl_aux_3: 0.3508 (0.3983) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1420 (0.1659) loss_bbox_aux_4: 0.2970 (0.3065) loss_giou_aux_4: 1.8771 (1.8433) loss_fgl_aux_4: 0.3508 (0.3983) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1451 (0.1663) loss_bbox_pre: 0.3136 (0.3156) loss_giou_pre: 1.8867 (1.8502) loss_vfl_enc_0: 0.1262 (0.1584) loss_bbox_enc_0: 0.3363 (0.3362) loss_giou_enc_0: 1.9614 (1.8993) loss_vfl_dn_0: 0.4167 (0.4072) loss_bbox_dn_0: 0.0478 (0.0542) loss_giou_dn_0: 1.1914 (1.2092) loss_fgl_dn_0: 0.9229 (0.9060) loss_ddf_dn_0: 0.1954 (0.2307) loss_vfl_dn_1: 0.4531 (0.4446) loss_bbox_dn_1: 0.0394 (0.0462) loss_giou_dn_1: 1.1183 (1.1361) loss_fgl_dn_1: 0.9503 (0.9322) loss_ddf_dn_1: 0.0288 (0.0439) loss_vfl_dn_2: 0.4546 (0.4526) loss_bbox_dn_2: 0.0383 (0.0441) loss_giou_dn_2: 1.1062 (1.1086) loss_fgl_dn_2: 0.9485 (0.9392) loss_ddf_dn_2: 0.0027 (0.0033) loss_vfl_dn_3: 0.4507 (0.4484) loss_bbox_dn_3: 0.0382 (0.0438) loss_giou_dn_3: 1.1041 (1.1077) loss_fgl_dn_3: 0.9493 (0.9396) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4524 (0.4474) loss_bbox_dn_4: 0.0383 (0.0437) loss_giou_dn_4: 1.1040 (1.1075) loss_fgl_dn_4: 0.9496 (0.9397) loss_ddf_dn_4: 0.0001 (0.0002) loss_vfl_dn_5: 0.4504 (0.4477) loss_bbox_dn_5: 0.0383 (0.0437) loss_giou_dn_5: 1.1040 (1.1075) loss_fgl_dn_5: 0.9497 (0.9397) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4136 (0.4062) loss_bbox_dn_pre: 0.0479 (0.0544) loss_giou_dn_pre: 1.1960 (1.2100) time: 0.8243 data: 0.0175 max mem: 29821\n", + "Epoch: [29] Total time: 0:01:13 (0.8747 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.5078 (38.4470) loss_vfl: 0.1423 (0.1662) loss_bbox: 0.2969 (0.3065) loss_giou: 1.8771 (1.8433) loss_fgl: 0.3509 (0.3983) loss_vfl_aux_0: 0.1473 (0.1689) loss_bbox_aux_0: 0.3093 (0.3117) loss_giou_aux_0: 1.8913 (1.8544) loss_fgl_aux_0: 0.3472 (0.3965) loss_ddf_aux_0: 0.1503 (0.1373) loss_vfl_aux_1: 0.1512 (0.1722) loss_bbox_aux_1: 0.2988 (0.3083) loss_giou_aux_1: 1.8789 (1.8442) loss_fgl_aux_1: 0.3504 (0.3975) loss_ddf_aux_1: 0.0141 (0.0175) loss_vfl_aux_2: 0.1464 (0.1710) loss_bbox_aux_2: 0.2973 (0.3069) loss_giou_aux_2: 1.8774 (1.8434) loss_fgl_aux_2: 0.3508 (0.3982) loss_ddf_aux_2: 0.0020 (0.0026) loss_vfl_aux_3: 0.1442 (0.1678) loss_bbox_aux_3: 0.2970 (0.3067) loss_giou_aux_3: 1.8770 (1.8432) loss_fgl_aux_3: 0.3508 (0.3983) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1420 (0.1659) loss_bbox_aux_4: 0.2970 (0.3065) loss_giou_aux_4: 1.8771 (1.8433) loss_fgl_aux_4: 0.3508 (0.3983) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1451 (0.1663) loss_bbox_pre: 0.3136 (0.3156) loss_giou_pre: 1.8867 (1.8502) loss_vfl_enc_0: 0.1262 (0.1584) loss_bbox_enc_0: 0.3363 (0.3362) loss_giou_enc_0: 1.9614 (1.8993) loss_vfl_dn_0: 0.4167 (0.4072) loss_bbox_dn_0: 0.0478 (0.0542) loss_giou_dn_0: 1.1914 (1.2092) loss_fgl_dn_0: 0.9229 (0.9060) loss_ddf_dn_0: 0.1954 (0.2307) loss_vfl_dn_1: 0.4531 (0.4446) loss_bbox_dn_1: 0.0394 (0.0462) loss_giou_dn_1: 1.1183 (1.1361) loss_fgl_dn_1: 0.9503 (0.9322) loss_ddf_dn_1: 0.0288 (0.0439) loss_vfl_dn_2: 0.4546 (0.4526) loss_bbox_dn_2: 0.0383 (0.0441) loss_giou_dn_2: 1.1062 (1.1086) loss_fgl_dn_2: 0.9485 (0.9392) loss_ddf_dn_2: 0.0027 (0.0033) loss_vfl_dn_3: 0.4507 (0.4484) loss_bbox_dn_3: 0.0382 (0.0438) loss_giou_dn_3: 1.1041 (1.1077) loss_fgl_dn_3: 0.9493 (0.9396) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4524 (0.4474) loss_bbox_dn_4: 0.0383 (0.0437) loss_giou_dn_4: 1.1040 (1.1075) loss_fgl_dn_4: 0.9496 (0.9397) loss_ddf_dn_4: 0.0001 (0.0002) loss_vfl_dn_5: 0.4504 (0.4477) loss_bbox_dn_5: 0.0383 (0.0437) loss_giou_dn_5: 1.1040 (1.1075) loss_fgl_dn_5: 0.9497 (0.9397) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4136 (0.4062) loss_bbox_dn_pre: 0.0479 (0.0544) loss_giou_dn_pre: 1.1960 (1.2100)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7552 data: 0.5064 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3982 data: 0.1704 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4133 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.024\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.066\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.012\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.024\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.115\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.378\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.007\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.060\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.072\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.071\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.238\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.450\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.156\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.031\n", + "best_stat: {'epoch': 29, 'coco_eval_bbox': 0.023576797723323908}\n", + "Epoch: [30] [ 0/84] eta: 0:02:54 lr: 0.000013 loss: 37.6904 (37.6904) loss_vfl: 0.1014 (0.1014) loss_bbox: 0.2909 (0.2909) loss_giou: 1.9236 (1.9236) loss_fgl: 0.2989 (0.2989) loss_vfl_aux_0: 0.1020 (0.1020) loss_bbox_aux_0: 0.2906 (0.2906) loss_giou_aux_0: 1.9297 (1.9297) loss_fgl_aux_0: 0.2954 (0.2954) loss_ddf_aux_0: 0.0887 (0.0887) loss_vfl_aux_1: 0.1034 (0.1034) loss_bbox_aux_1: 0.2914 (0.2914) loss_giou_aux_1: 1.9232 (1.9232) loss_fgl_aux_1: 0.2981 (0.2981) loss_ddf_aux_1: 0.0105 (0.0105) loss_vfl_aux_2: 0.1059 (0.1059) loss_bbox_aux_2: 0.2910 (0.2910) loss_giou_aux_2: 1.9234 (1.9234) loss_fgl_aux_2: 0.2987 (0.2987) loss_ddf_aux_2: 0.0016 (0.0016) loss_vfl_aux_3: 0.1031 (0.1031) loss_bbox_aux_3: 0.2910 (0.2910) loss_giou_aux_3: 1.9235 (1.9235) loss_fgl_aux_3: 0.2988 (0.2988) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1016 (0.1016) loss_bbox_aux_4: 0.2910 (0.2910) loss_giou_aux_4: 1.9235 (1.9235) loss_fgl_aux_4: 0.2989 (0.2989) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.0997 (0.0997) loss_bbox_pre: 0.2951 (0.2951) loss_giou_pre: 1.9257 (1.9257) loss_vfl_enc_0: 0.0937 (0.0937) loss_bbox_enc_0: 0.3166 (0.3166) loss_giou_enc_0: 1.9585 (1.9585) loss_vfl_dn_0: 0.3845 (0.3845) loss_bbox_dn_0: 0.0373 (0.0373) loss_giou_dn_0: 1.2517 (1.2517) loss_fgl_dn_0: 0.8653 (0.8653) loss_ddf_dn_0: 0.1746 (0.1746) loss_vfl_dn_1: 0.4297 (0.4297) loss_bbox_dn_1: 0.0306 (0.0306) loss_giou_dn_1: 1.1813 (1.1813) loss_fgl_dn_1: 0.9063 (0.9063) loss_ddf_dn_1: 0.0267 (0.0267) loss_vfl_dn_2: 0.4270 (0.4270) loss_bbox_dn_2: 0.0313 (0.0313) loss_giou_dn_2: 1.1963 (1.1963) loss_fgl_dn_2: 0.9039 (0.9039) loss_ddf_dn_2: 0.0016 (0.0016) loss_vfl_dn_3: 0.4314 (0.4314) loss_bbox_dn_3: 0.0312 (0.0312) loss_giou_dn_3: 1.1965 (1.1965) loss_fgl_dn_3: 0.9042 (0.9042) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4282 (0.4282) loss_bbox_dn_4: 0.0311 (0.0311) loss_giou_dn_4: 1.1963 (1.1963) loss_fgl_dn_4: 0.9043 (0.9043) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4263 (0.4263) loss_bbox_dn_5: 0.0311 (0.0311) loss_giou_dn_5: 1.1963 (1.1963) loss_fgl_dn_5: 0.9044 (0.9044) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3862 (0.3862) loss_bbox_dn_pre: 0.0369 (0.0369) loss_giou_dn_pre: 1.2480 (1.2480) time: 2.0824 data: 1.0318 max mem: 29821\n", + "Epoch: [30] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.1019 (38.4340) loss_vfl: 0.1240 (0.1723) loss_bbox: 0.2875 (0.3021) loss_giou: 1.8788 (1.8402) loss_fgl: 0.3479 (0.4020) loss_vfl_aux_0: 0.1215 (0.1739) loss_bbox_aux_0: 0.3011 (0.3054) loss_giou_aux_0: 1.8802 (1.8534) loss_fgl_aux_0: 0.3411 (0.4006) loss_ddf_aux_0: 0.1303 (0.1261) loss_vfl_aux_1: 0.1279 (0.1776) loss_bbox_aux_1: 0.2897 (0.3024) loss_giou_aux_1: 1.8810 (1.8419) loss_fgl_aux_1: 0.3492 (0.4019) loss_ddf_aux_1: 0.0165 (0.0158) loss_vfl_aux_2: 0.1257 (0.1762) loss_bbox_aux_2: 0.2886 (0.3023) loss_giou_aux_2: 1.8787 (1.8403) loss_fgl_aux_2: 0.3481 (0.4019) loss_ddf_aux_2: 0.0024 (0.0024) loss_vfl_aux_3: 0.1246 (0.1733) loss_bbox_aux_3: 0.2877 (0.3022) loss_giou_aux_3: 1.8785 (1.8402) loss_fgl_aux_3: 0.3480 (0.4020) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1233 (0.1723) loss_bbox_aux_4: 0.2875 (0.3022) loss_giou_aux_4: 1.8787 (1.8402) loss_fgl_aux_4: 0.3479 (0.4020) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1197 (0.1713) loss_bbox_pre: 0.3033 (0.3097) loss_giou_pre: 1.8743 (1.8482) loss_vfl_enc_0: 0.1213 (0.1636) loss_bbox_enc_0: 0.3254 (0.3317) loss_giou_enc_0: 1.9229 (1.8898) loss_vfl_dn_0: 0.4067 (0.4102) loss_bbox_dn_0: 0.0453 (0.0546) loss_giou_dn_0: 1.2164 (1.2058) loss_fgl_dn_0: 0.9035 (0.9114) loss_ddf_dn_0: 0.1997 (0.2460) loss_vfl_dn_1: 0.4355 (0.4541) loss_bbox_dn_1: 0.0399 (0.0457) loss_giou_dn_1: 1.1419 (1.1122) loss_fgl_dn_1: 0.9247 (0.9404) loss_ddf_dn_1: 0.0338 (0.0321) loss_vfl_dn_2: 0.4426 (0.4537) loss_bbox_dn_2: 0.0379 (0.0444) loss_giou_dn_2: 1.1145 (1.1014) loss_fgl_dn_2: 0.9302 (0.9434) loss_ddf_dn_2: 0.0035 (0.0035) loss_vfl_dn_3: 0.4443 (0.4504) loss_bbox_dn_3: 0.0375 (0.0442) loss_giou_dn_3: 1.1137 (1.1006) loss_fgl_dn_3: 0.9295 (0.9437) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4414 (0.4502) loss_bbox_dn_4: 0.0375 (0.0441) loss_giou_dn_4: 1.1134 (1.1005) loss_fgl_dn_4: 0.9299 (0.9438) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4424 (0.4506) loss_bbox_dn_5: 0.0376 (0.0441) loss_giou_dn_5: 1.1133 (1.1005) loss_fgl_dn_5: 0.9299 (0.9438) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4045 (0.4093) loss_bbox_dn_pre: 0.0453 (0.0549) loss_giou_dn_pre: 1.2167 (1.2060) time: 0.8509 data: 0.0168 max mem: 29821\n", + "Epoch: [30] Total time: 0:01:12 (0.8630 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.1019 (38.4340) loss_vfl: 0.1240 (0.1723) loss_bbox: 0.2875 (0.3021) loss_giou: 1.8788 (1.8402) loss_fgl: 0.3479 (0.4020) loss_vfl_aux_0: 0.1215 (0.1739) loss_bbox_aux_0: 0.3011 (0.3054) loss_giou_aux_0: 1.8802 (1.8534) loss_fgl_aux_0: 0.3411 (0.4006) loss_ddf_aux_0: 0.1303 (0.1261) loss_vfl_aux_1: 0.1279 (0.1776) loss_bbox_aux_1: 0.2897 (0.3024) loss_giou_aux_1: 1.8810 (1.8419) loss_fgl_aux_1: 0.3492 (0.4019) loss_ddf_aux_1: 0.0165 (0.0158) loss_vfl_aux_2: 0.1257 (0.1762) loss_bbox_aux_2: 0.2886 (0.3023) loss_giou_aux_2: 1.8787 (1.8403) loss_fgl_aux_2: 0.3481 (0.4019) loss_ddf_aux_2: 0.0024 (0.0024) loss_vfl_aux_3: 0.1246 (0.1733) loss_bbox_aux_3: 0.2877 (0.3022) loss_giou_aux_3: 1.8785 (1.8402) loss_fgl_aux_3: 0.3480 (0.4020) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1233 (0.1723) loss_bbox_aux_4: 0.2875 (0.3022) loss_giou_aux_4: 1.8787 (1.8402) loss_fgl_aux_4: 0.3479 (0.4020) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1197 (0.1713) loss_bbox_pre: 0.3033 (0.3097) loss_giou_pre: 1.8743 (1.8482) loss_vfl_enc_0: 0.1213 (0.1636) loss_bbox_enc_0: 0.3254 (0.3317) loss_giou_enc_0: 1.9229 (1.8898) loss_vfl_dn_0: 0.4067 (0.4102) loss_bbox_dn_0: 0.0453 (0.0546) loss_giou_dn_0: 1.2164 (1.2058) loss_fgl_dn_0: 0.9035 (0.9114) loss_ddf_dn_0: 0.1997 (0.2460) loss_vfl_dn_1: 0.4355 (0.4541) loss_bbox_dn_1: 0.0399 (0.0457) loss_giou_dn_1: 1.1419 (1.1122) loss_fgl_dn_1: 0.9247 (0.9404) loss_ddf_dn_1: 0.0338 (0.0321) loss_vfl_dn_2: 0.4426 (0.4537) loss_bbox_dn_2: 0.0379 (0.0444) loss_giou_dn_2: 1.1145 (1.1014) loss_fgl_dn_2: 0.9302 (0.9434) loss_ddf_dn_2: 0.0035 (0.0035) loss_vfl_dn_3: 0.4443 (0.4504) loss_bbox_dn_3: 0.0375 (0.0442) loss_giou_dn_3: 1.1137 (1.1006) loss_fgl_dn_3: 0.9295 (0.9437) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4414 (0.4502) loss_bbox_dn_4: 0.0375 (0.0441) loss_giou_dn_4: 1.1134 (1.1005) loss_fgl_dn_4: 0.9299 (0.9438) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4424 (0.4506) loss_bbox_dn_5: 0.0376 (0.0441) loss_giou_dn_5: 1.1133 (1.1005) loss_fgl_dn_5: 0.9299 (0.9438) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4045 (0.4093) loss_bbox_dn_pre: 0.0453 (0.0549) loss_giou_dn_pre: 1.2167 (1.2060)\n", + "Test: [0/4] eta: 0:00:05 time: 1.2883 data: 0.4933 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.5287 data: 0.1616 max mem: 29821\n", + "Test: Total time: 0:00:02 (0.5459 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.029\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.076\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.013\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.028\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.157\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.487\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.030\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.065\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.081\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.079\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.281\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.550\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.173\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.039\n", + "best_stat: {'epoch': 30, 'coco_eval_bbox': 0.029212015460184978}\n", + "Epoch: [31] [ 0/84] eta: 0:02:54 lr: 0.000013 loss: 38.9538 (38.9538) loss_vfl: 0.0884 (0.0884) loss_bbox: 0.3703 (0.3703) loss_giou: 2.0365 (2.0365) loss_fgl: 0.3108 (0.3108) loss_vfl_aux_0: 0.0846 (0.0846) loss_bbox_aux_0: 0.3790 (0.3790) loss_giou_aux_0: 2.0425 (2.0425) loss_fgl_aux_0: 0.3030 (0.3030) loss_ddf_aux_0: 0.0792 (0.0792) loss_vfl_aux_1: 0.0884 (0.0884) loss_bbox_aux_1: 0.3750 (0.3750) loss_giou_aux_1: 2.0381 (2.0381) loss_fgl_aux_1: 0.3103 (0.3103) loss_ddf_aux_1: 0.0112 (0.0112) loss_vfl_aux_2: 0.0904 (0.0904) loss_bbox_aux_2: 0.3717 (0.3717) loss_giou_aux_2: 2.0347 (2.0347) loss_fgl_aux_2: 0.3109 (0.3109) loss_ddf_aux_2: 0.0018 (0.0018) loss_vfl_aux_3: 0.0882 (0.0882) loss_bbox_aux_3: 0.3713 (0.3713) loss_giou_aux_3: 2.0360 (2.0360) loss_fgl_aux_3: 0.3107 (0.3107) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.0888 (0.0888) loss_bbox_aux_4: 0.3705 (0.3705) loss_giou_aux_4: 2.0364 (2.0364) loss_fgl_aux_4: 0.3108 (0.3108) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.0826 (0.0826) loss_bbox_pre: 0.3878 (0.3878) loss_giou_pre: 2.0320 (2.0320) loss_vfl_enc_0: 0.0828 (0.0828) loss_bbox_enc_0: 0.4232 (0.4232) loss_giou_enc_0: 2.0704 (2.0704) loss_vfl_dn_0: 0.3960 (0.3960) loss_bbox_dn_0: 0.0362 (0.0362) loss_giou_dn_0: 1.2381 (1.2381) loss_fgl_dn_0: 0.8713 (0.8713) loss_ddf_dn_0: 0.1112 (0.1112) loss_vfl_dn_1: 0.4265 (0.4265) loss_bbox_dn_1: 0.0298 (0.0298) loss_giou_dn_1: 1.1642 (1.1642) loss_fgl_dn_1: 0.9046 (0.9046) loss_ddf_dn_1: 0.0206 (0.0206) loss_vfl_dn_2: 0.4355 (0.4355) loss_bbox_dn_2: 0.0300 (0.0300) loss_giou_dn_2: 1.1557 (1.1557) loss_fgl_dn_2: 0.9009 (0.9009) loss_ddf_dn_2: 0.0015 (0.0015) loss_vfl_dn_3: 0.4285 (0.4285) loss_bbox_dn_3: 0.0300 (0.0300) loss_giou_dn_3: 1.1559 (1.1559) loss_fgl_dn_3: 0.9003 (0.9003) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4287 (0.4287) loss_bbox_dn_4: 0.0299 (0.0299) loss_giou_dn_4: 1.1556 (1.1556) loss_fgl_dn_4: 0.9006 (0.9006) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4285 (0.4285) loss_bbox_dn_5: 0.0299 (0.0299) loss_giou_dn_5: 1.1556 (1.1556) loss_fgl_dn_5: 0.9006 (0.9006) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3960 (0.3960) loss_bbox_dn_pre: 0.0361 (0.0361) loss_giou_dn_pre: 1.2362 (1.2362) time: 2.0793 data: 0.8522 max mem: 29821\n", + "Epoch: [31] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.2214 (38.5123) loss_vfl: 0.1561 (0.1667) loss_bbox: 0.2892 (0.3100) loss_giou: 1.8349 (1.8587) loss_fgl: 0.3896 (0.3902) loss_vfl_aux_0: 0.1561 (0.1705) loss_bbox_aux_0: 0.2892 (0.3130) loss_giou_aux_0: 1.8546 (1.8706) loss_fgl_aux_0: 0.3913 (0.3898) loss_ddf_aux_0: 0.1373 (0.1245) loss_vfl_aux_1: 0.1569 (0.1726) loss_bbox_aux_1: 0.2887 (0.3110) loss_giou_aux_1: 1.8381 (1.8595) loss_fgl_aux_1: 0.3898 (0.3900) loss_ddf_aux_1: 0.0148 (0.0156) loss_vfl_aux_2: 0.1550 (0.1708) loss_bbox_aux_2: 0.2896 (0.3103) loss_giou_aux_2: 1.8346 (1.8584) loss_fgl_aux_2: 0.3896 (0.3901) loss_ddf_aux_2: 0.0016 (0.0021) loss_vfl_aux_3: 0.1567 (0.1683) loss_bbox_aux_3: 0.2892 (0.3101) loss_giou_aux_3: 1.8349 (1.8586) loss_fgl_aux_3: 0.3896 (0.3902) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1571 (0.1667) loss_bbox_aux_4: 0.2892 (0.3100) loss_giou_aux_4: 1.8348 (1.8586) loss_fgl_aux_4: 0.3896 (0.3902) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1534 (0.1678) loss_bbox_pre: 0.2923 (0.3185) loss_giou_pre: 1.8511 (1.8641) loss_vfl_enc_0: 0.1464 (0.1581) loss_bbox_enc_0: 0.3086 (0.3414) loss_giou_enc_0: 1.8872 (1.9094) loss_vfl_dn_0: 0.4075 (0.4107) loss_bbox_dn_0: 0.0537 (0.0524) loss_giou_dn_0: 1.2226 (1.2050) loss_fgl_dn_0: 0.9021 (0.9119) loss_ddf_dn_0: 0.2748 (0.2470) loss_vfl_dn_1: 0.4497 (0.4535) loss_bbox_dn_1: 0.0445 (0.0438) loss_giou_dn_1: 1.1154 (1.1121) loss_fgl_dn_1: 0.9330 (0.9400) loss_ddf_dn_1: 0.0260 (0.0318) loss_vfl_dn_2: 0.4507 (0.4532) loss_bbox_dn_2: 0.0437 (0.0426) loss_giou_dn_2: 1.1074 (1.1015) loss_fgl_dn_2: 0.9331 (0.9425) loss_ddf_dn_2: 0.0022 (0.0034) loss_vfl_dn_3: 0.4458 (0.4496) loss_bbox_dn_3: 0.0429 (0.0424) loss_giou_dn_3: 1.1067 (1.1008) loss_fgl_dn_3: 0.9339 (0.9428) loss_ddf_dn_3: 0.0004 (0.0005) loss_vfl_dn_4: 0.4480 (0.4487) loss_bbox_dn_4: 0.0426 (0.0423) loss_giou_dn_4: 1.1066 (1.1007) loss_fgl_dn_4: 0.9343 (0.9429) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4497 (0.4498) loss_bbox_dn_5: 0.0425 (0.0423) loss_giou_dn_5: 1.1065 (1.1007) loss_fgl_dn_5: 0.9344 (0.9429) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4043 (0.4097) loss_bbox_dn_pre: 0.0548 (0.0527) loss_giou_dn_pre: 1.2247 (1.2053) time: 0.8898 data: 0.0187 max mem: 29821\n", + "Epoch: [31] Total time: 0:01:14 (0.8856 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.2214 (38.5123) loss_vfl: 0.1561 (0.1667) loss_bbox: 0.2892 (0.3100) loss_giou: 1.8349 (1.8587) loss_fgl: 0.3896 (0.3902) loss_vfl_aux_0: 0.1561 (0.1705) loss_bbox_aux_0: 0.2892 (0.3130) loss_giou_aux_0: 1.8546 (1.8706) loss_fgl_aux_0: 0.3913 (0.3898) loss_ddf_aux_0: 0.1373 (0.1245) loss_vfl_aux_1: 0.1569 (0.1726) loss_bbox_aux_1: 0.2887 (0.3110) loss_giou_aux_1: 1.8381 (1.8595) loss_fgl_aux_1: 0.3898 (0.3900) loss_ddf_aux_1: 0.0148 (0.0156) loss_vfl_aux_2: 0.1550 (0.1708) loss_bbox_aux_2: 0.2896 (0.3103) loss_giou_aux_2: 1.8346 (1.8584) loss_fgl_aux_2: 0.3896 (0.3901) loss_ddf_aux_2: 0.0016 (0.0021) loss_vfl_aux_3: 0.1567 (0.1683) loss_bbox_aux_3: 0.2892 (0.3101) loss_giou_aux_3: 1.8349 (1.8586) loss_fgl_aux_3: 0.3896 (0.3902) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1571 (0.1667) loss_bbox_aux_4: 0.2892 (0.3100) loss_giou_aux_4: 1.8348 (1.8586) loss_fgl_aux_4: 0.3896 (0.3902) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1534 (0.1678) loss_bbox_pre: 0.2923 (0.3185) loss_giou_pre: 1.8511 (1.8641) loss_vfl_enc_0: 0.1464 (0.1581) loss_bbox_enc_0: 0.3086 (0.3414) loss_giou_enc_0: 1.8872 (1.9094) loss_vfl_dn_0: 0.4075 (0.4107) loss_bbox_dn_0: 0.0537 (0.0524) loss_giou_dn_0: 1.2226 (1.2050) loss_fgl_dn_0: 0.9021 (0.9119) loss_ddf_dn_0: 0.2748 (0.2470) loss_vfl_dn_1: 0.4497 (0.4535) loss_bbox_dn_1: 0.0445 (0.0438) loss_giou_dn_1: 1.1154 (1.1121) loss_fgl_dn_1: 0.9330 (0.9400) loss_ddf_dn_1: 0.0260 (0.0318) loss_vfl_dn_2: 0.4507 (0.4532) loss_bbox_dn_2: 0.0437 (0.0426) loss_giou_dn_2: 1.1074 (1.1015) loss_fgl_dn_2: 0.9331 (0.9425) loss_ddf_dn_2: 0.0022 (0.0034) loss_vfl_dn_3: 0.4458 (0.4496) loss_bbox_dn_3: 0.0429 (0.0424) loss_giou_dn_3: 1.1067 (1.1008) loss_fgl_dn_3: 0.9339 (0.9428) loss_ddf_dn_3: 0.0004 (0.0005) loss_vfl_dn_4: 0.4480 (0.4487) loss_bbox_dn_4: 0.0426 (0.0423) loss_giou_dn_4: 1.1066 (1.1007) loss_fgl_dn_4: 0.9343 (0.9429) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4497 (0.4498) loss_bbox_dn_5: 0.0425 (0.0423) loss_giou_dn_5: 1.1065 (1.1007) loss_fgl_dn_5: 0.9344 (0.9429) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4043 (0.4097) loss_bbox_dn_pre: 0.0548 (0.0527) loss_giou_dn_pre: 1.2247 (1.2053)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7457 data: 0.4971 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3957 data: 0.1656 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4102 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.027\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.074\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.014\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.027\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.164\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.403\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.016\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.060\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.077\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.076\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.370\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.425\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.174\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.041\n", + "best_stat: {'epoch': 30, 'coco_eval_bbox': 0.029212015460184978}\n", + "Epoch: [32] [ 0/84] eta: 0:02:32 lr: 0.000013 loss: 37.9532 (37.9532) loss_vfl: 0.2181 (0.2181) loss_bbox: 0.2439 (0.2439) loss_giou: 1.7851 (1.7851) loss_fgl: 0.4440 (0.4440) loss_vfl_aux_0: 0.2246 (0.2246) loss_bbox_aux_0: 0.2517 (0.2517) loss_giou_aux_0: 1.7896 (1.7896) loss_fgl_aux_0: 0.4424 (0.4424) loss_ddf_aux_0: 0.1138 (0.1138) loss_vfl_aux_1: 0.2214 (0.2214) loss_bbox_aux_1: 0.2445 (0.2445) loss_giou_aux_1: 1.7867 (1.7867) loss_fgl_aux_1: 0.4448 (0.4448) loss_ddf_aux_1: 0.0108 (0.0108) loss_vfl_aux_2: 0.2283 (0.2283) loss_bbox_aux_2: 0.2437 (0.2437) loss_giou_aux_2: 1.7852 (1.7852) loss_fgl_aux_2: 0.4443 (0.4443) loss_ddf_aux_2: 0.0011 (0.0011) loss_vfl_aux_3: 0.2252 (0.2252) loss_bbox_aux_3: 0.2437 (0.2437) loss_giou_aux_3: 1.7851 (1.7851) loss_fgl_aux_3: 0.4442 (0.4442) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.2195 (0.2195) loss_bbox_aux_4: 0.2439 (0.2439) loss_giou_aux_4: 1.7851 (1.7851) loss_fgl_aux_4: 0.4441 (0.4441) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.2198 (0.2198) loss_bbox_pre: 0.2565 (0.2565) loss_giou_pre: 1.7876 (1.7876) loss_vfl_enc_0: 0.2198 (0.2198) loss_bbox_enc_0: 0.2875 (0.2875) loss_giou_enc_0: 1.8262 (1.8262) loss_vfl_dn_0: 0.4177 (0.4177) loss_bbox_dn_0: 0.0527 (0.0527) loss_giou_dn_0: 1.1556 (1.1556) loss_fgl_dn_0: 0.9457 (0.9457) loss_ddf_dn_0: 0.2669 (0.2669) loss_vfl_dn_1: 0.4565 (0.4565) loss_bbox_dn_1: 0.0426 (0.0426) loss_giou_dn_1: 1.0476 (1.0476) loss_fgl_dn_1: 0.9732 (0.9732) loss_ddf_dn_1: 0.0292 (0.0292) loss_vfl_dn_2: 0.4543 (0.4543) loss_bbox_dn_2: 0.0419 (0.0419) loss_giou_dn_2: 1.0372 (1.0372) loss_fgl_dn_2: 0.9746 (0.9746) loss_ddf_dn_2: 0.0028 (0.0028) loss_vfl_dn_3: 0.4524 (0.4524) loss_bbox_dn_3: 0.0416 (0.0416) loss_giou_dn_3: 1.0366 (1.0366) loss_fgl_dn_3: 0.9750 (0.9750) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4524 (0.4524) loss_bbox_dn_4: 0.0416 (0.0416) loss_giou_dn_4: 1.0364 (1.0364) loss_fgl_dn_4: 0.9752 (0.9752) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4534 (0.4534) loss_bbox_dn_5: 0.0415 (0.0415) loss_giou_dn_5: 1.0364 (1.0364) loss_fgl_dn_5: 0.9752 (0.9752) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4177 (0.4177) loss_bbox_dn_pre: 0.0524 (0.0524) loss_giou_dn_pre: 1.1536 (1.1536) time: 1.8113 data: 1.0020 max mem: 29821\n", + "Epoch: [32] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.6608 (38.6416) loss_vfl: 0.1702 (0.1698) loss_bbox: 0.2962 (0.3144) loss_giou: 1.8001 (1.8583) loss_fgl: 0.4097 (0.3980) loss_vfl_aux_0: 0.1796 (0.1741) loss_bbox_aux_0: 0.2975 (0.3176) loss_giou_aux_0: 1.8129 (1.8716) loss_fgl_aux_0: 0.4073 (0.3965) loss_ddf_aux_0: 0.1399 (0.1342) loss_vfl_aux_1: 0.1772 (0.1773) loss_bbox_aux_1: 0.2992 (0.3148) loss_giou_aux_1: 1.8012 (1.8599) loss_fgl_aux_1: 0.4066 (0.3977) loss_ddf_aux_1: 0.0166 (0.0168) loss_vfl_aux_2: 0.1753 (0.1767) loss_bbox_aux_2: 0.2964 (0.3145) loss_giou_aux_2: 1.8000 (1.8584) loss_fgl_aux_2: 0.4088 (0.3978) loss_ddf_aux_2: 0.0022 (0.0024) loss_vfl_aux_3: 0.1718 (0.1723) loss_bbox_aux_3: 0.2959 (0.3144) loss_giou_aux_3: 1.8001 (1.8584) loss_fgl_aux_3: 0.4096 (0.3980) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1689 (0.1700) loss_bbox_aux_4: 0.2962 (0.3144) loss_giou_aux_4: 1.8001 (1.8583) loss_fgl_aux_4: 0.4097 (0.3980) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1765 (0.1711) loss_bbox_pre: 0.2992 (0.3222) loss_giou_pre: 1.8105 (1.8659) loss_vfl_enc_0: 0.1647 (0.1636) loss_bbox_enc_0: 0.3201 (0.3452) loss_giou_enc_0: 1.8605 (1.9101) loss_vfl_dn_0: 0.4045 (0.4062) loss_bbox_dn_0: 0.0564 (0.0548) loss_giou_dn_0: 1.1994 (1.2095) loss_fgl_dn_0: 0.9063 (0.9043) loss_ddf_dn_0: 0.3061 (0.2784) loss_vfl_dn_1: 0.4475 (0.4538) loss_bbox_dn_1: 0.0470 (0.0449) loss_giou_dn_1: 1.1133 (1.1073) loss_fgl_dn_1: 0.9296 (0.9374) loss_ddf_dn_1: 0.0325 (0.0317) loss_vfl_dn_2: 0.4463 (0.4528) loss_bbox_dn_2: 0.0449 (0.0436) loss_giou_dn_2: 1.1152 (1.0985) loss_fgl_dn_2: 0.9323 (0.9400) loss_ddf_dn_2: 0.0028 (0.0035) loss_vfl_dn_3: 0.4407 (0.4497) loss_bbox_dn_3: 0.0445 (0.0434) loss_giou_dn_3: 1.1145 (1.0977) loss_fgl_dn_3: 0.9329 (0.9404) loss_ddf_dn_3: 0.0004 (0.0005) loss_vfl_dn_4: 0.4414 (0.4487) loss_bbox_dn_4: 0.0446 (0.0433) loss_giou_dn_4: 1.1147 (1.0976) loss_fgl_dn_4: 0.9331 (0.9404) loss_ddf_dn_4: 0.0001 (0.0002) loss_vfl_dn_5: 0.4421 (0.4488) loss_bbox_dn_5: 0.0446 (0.0433) loss_giou_dn_5: 1.1147 (1.0976) loss_fgl_dn_5: 0.9330 (0.9405) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4060 (0.4054) loss_bbox_dn_pre: 0.0566 (0.0549) loss_giou_dn_pre: 1.2023 (1.2094) time: 0.8567 data: 0.0182 max mem: 29821\n", + "Epoch: [32] Total time: 0:01:15 (0.9007 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.6608 (38.6416) loss_vfl: 0.1702 (0.1698) loss_bbox: 0.2962 (0.3144) loss_giou: 1.8001 (1.8583) loss_fgl: 0.4097 (0.3980) loss_vfl_aux_0: 0.1796 (0.1741) loss_bbox_aux_0: 0.2975 (0.3176) loss_giou_aux_0: 1.8129 (1.8716) loss_fgl_aux_0: 0.4073 (0.3965) loss_ddf_aux_0: 0.1399 (0.1342) loss_vfl_aux_1: 0.1772 (0.1773) loss_bbox_aux_1: 0.2992 (0.3148) loss_giou_aux_1: 1.8012 (1.8599) loss_fgl_aux_1: 0.4066 (0.3977) loss_ddf_aux_1: 0.0166 (0.0168) loss_vfl_aux_2: 0.1753 (0.1767) loss_bbox_aux_2: 0.2964 (0.3145) loss_giou_aux_2: 1.8000 (1.8584) loss_fgl_aux_2: 0.4088 (0.3978) loss_ddf_aux_2: 0.0022 (0.0024) loss_vfl_aux_3: 0.1718 (0.1723) loss_bbox_aux_3: 0.2959 (0.3144) loss_giou_aux_3: 1.8001 (1.8584) loss_fgl_aux_3: 0.4096 (0.3980) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1689 (0.1700) loss_bbox_aux_4: 0.2962 (0.3144) loss_giou_aux_4: 1.8001 (1.8583) loss_fgl_aux_4: 0.4097 (0.3980) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1765 (0.1711) loss_bbox_pre: 0.2992 (0.3222) loss_giou_pre: 1.8105 (1.8659) loss_vfl_enc_0: 0.1647 (0.1636) loss_bbox_enc_0: 0.3201 (0.3452) loss_giou_enc_0: 1.8605 (1.9101) loss_vfl_dn_0: 0.4045 (0.4062) loss_bbox_dn_0: 0.0564 (0.0548) loss_giou_dn_0: 1.1994 (1.2095) loss_fgl_dn_0: 0.9063 (0.9043) loss_ddf_dn_0: 0.3061 (0.2784) loss_vfl_dn_1: 0.4475 (0.4538) loss_bbox_dn_1: 0.0470 (0.0449) loss_giou_dn_1: 1.1133 (1.1073) loss_fgl_dn_1: 0.9296 (0.9374) loss_ddf_dn_1: 0.0325 (0.0317) loss_vfl_dn_2: 0.4463 (0.4528) loss_bbox_dn_2: 0.0449 (0.0436) loss_giou_dn_2: 1.1152 (1.0985) loss_fgl_dn_2: 0.9323 (0.9400) loss_ddf_dn_2: 0.0028 (0.0035) loss_vfl_dn_3: 0.4407 (0.4497) loss_bbox_dn_3: 0.0445 (0.0434) loss_giou_dn_3: 1.1145 (1.0977) loss_fgl_dn_3: 0.9329 (0.9404) loss_ddf_dn_3: 0.0004 (0.0005) loss_vfl_dn_4: 0.4414 (0.4487) loss_bbox_dn_4: 0.0446 (0.0433) loss_giou_dn_4: 1.1147 (1.0976) loss_fgl_dn_4: 0.9331 (0.9404) loss_ddf_dn_4: 0.0001 (0.0002) loss_vfl_dn_5: 0.4421 (0.4488) loss_bbox_dn_5: 0.0446 (0.0433) loss_giou_dn_5: 1.1147 (1.0976) loss_fgl_dn_5: 0.9330 (0.9405) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4060 (0.4054) loss_bbox_dn_pre: 0.0566 (0.0549) loss_giou_dn_pre: 1.2023 (1.2094)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7971 data: 0.5461 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4108 data: 0.1740 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4266 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.027\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.075\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.016\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.025\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.173\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.304\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.017\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.061\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.079\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.077\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.338\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.350\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.172\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.040\n", + "best_stat: {'epoch': 30, 'coco_eval_bbox': 0.029212015460184978}\n", + "Epoch: [33] [ 0/84] eta: 0:02:32 lr: 0.000013 loss: 40.4842 (40.4842) loss_vfl: 0.2561 (0.2561) loss_bbox: 0.3948 (0.3948) loss_giou: 1.8612 (1.8612) loss_fgl: 0.4471 (0.4471) loss_vfl_aux_0: 0.2578 (0.2578) loss_bbox_aux_0: 0.4037 (0.4037) loss_giou_aux_0: 1.8788 (1.8788) loss_fgl_aux_0: 0.4503 (0.4503) loss_ddf_aux_0: 0.1910 (0.1910) loss_vfl_aux_1: 0.2610 (0.2610) loss_bbox_aux_1: 0.3968 (0.3968) loss_giou_aux_1: 1.8618 (1.8618) loss_fgl_aux_1: 0.4472 (0.4472) loss_ddf_aux_1: 0.0217 (0.0217) loss_vfl_aux_2: 0.2600 (0.2600) loss_bbox_aux_2: 0.3949 (0.3949) loss_giou_aux_2: 1.8613 (1.8613) loss_fgl_aux_2: 0.4470 (0.4470) loss_ddf_aux_2: 0.0029 (0.0029) loss_vfl_aux_3: 0.2554 (0.2554) loss_bbox_aux_3: 0.3947 (0.3947) loss_giou_aux_3: 1.8612 (1.8612) loss_fgl_aux_3: 0.4471 (0.4471) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.2583 (0.2583) loss_bbox_aux_4: 0.3948 (0.3948) loss_giou_aux_4: 1.8613 (1.8613) loss_fgl_aux_4: 0.4471 (0.4471) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.2554 (0.2554) loss_bbox_pre: 0.4065 (0.4065) loss_giou_pre: 1.8737 (1.8737) loss_vfl_enc_0: 0.2578 (0.2578) loss_bbox_enc_0: 0.4117 (0.4117) loss_giou_enc_0: 1.9238 (1.9238) loss_vfl_dn_0: 0.4209 (0.4209) loss_bbox_dn_0: 0.0681 (0.0681) loss_giou_dn_0: 1.1955 (1.1955) loss_fgl_dn_0: 0.9290 (0.9290) loss_ddf_dn_0: 0.4054 (0.4054) loss_vfl_dn_1: 0.4851 (0.4851) loss_bbox_dn_1: 0.0513 (0.0513) loss_giou_dn_1: 1.0555 (1.0555) loss_fgl_dn_1: 0.9523 (0.9523) loss_ddf_dn_1: 0.0544 (0.0544) loss_vfl_dn_2: 0.4700 (0.4700) loss_bbox_dn_2: 0.0478 (0.0478) loss_giou_dn_2: 1.0532 (1.0532) loss_fgl_dn_2: 0.9478 (0.9478) loss_ddf_dn_2: 0.0054 (0.0054) loss_vfl_dn_3: 0.4563 (0.4563) loss_bbox_dn_3: 0.0474 (0.0474) loss_giou_dn_3: 1.0533 (1.0533) loss_fgl_dn_3: 0.9474 (0.9474) loss_ddf_dn_3: 0.0008 (0.0008) loss_vfl_dn_4: 0.4551 (0.4551) loss_bbox_dn_4: 0.0473 (0.0473) loss_giou_dn_4: 1.0534 (1.0534) loss_fgl_dn_4: 0.9475 (0.9475) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4580 (0.4580) loss_bbox_dn_5: 0.0473 (0.0473) loss_giou_dn_5: 1.0535 (1.0535) loss_fgl_dn_5: 0.9475 (0.9475) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4199 (0.4199) loss_bbox_dn_pre: 0.0692 (0.0692) loss_giou_dn_pre: 1.1939 (1.1939) time: 1.8103 data: 0.9632 max mem: 29821\n", + "Epoch: [33] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.0007 (38.4219) loss_vfl: 0.1503 (0.1692) loss_bbox: 0.2971 (0.3087) loss_giou: 1.8700 (1.8412) loss_fgl: 0.3515 (0.3957) loss_vfl_aux_0: 0.1488 (0.1718) loss_bbox_aux_0: 0.3036 (0.3132) loss_giou_aux_0: 1.8817 (1.8538) loss_fgl_aux_0: 0.3506 (0.3944) loss_ddf_aux_0: 0.1127 (0.1288) loss_vfl_aux_1: 0.1550 (0.1754) loss_bbox_aux_1: 0.2987 (0.3096) loss_giou_aux_1: 1.8696 (1.8427) loss_fgl_aux_1: 0.3510 (0.3955) loss_ddf_aux_1: 0.0140 (0.0172) loss_vfl_aux_2: 0.1534 (0.1744) loss_bbox_aux_2: 0.2974 (0.3090) loss_giou_aux_2: 1.8697 (1.8413) loss_fgl_aux_2: 0.3513 (0.3956) loss_ddf_aux_2: 0.0017 (0.0023) loss_vfl_aux_3: 0.1503 (0.1709) loss_bbox_aux_3: 0.2972 (0.3087) loss_giou_aux_3: 1.8701 (1.8412) loss_fgl_aux_3: 0.3515 (0.3957) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1482 (0.1694) loss_bbox_aux_4: 0.2971 (0.3087) loss_giou_aux_4: 1.8699 (1.8412) loss_fgl_aux_4: 0.3515 (0.3957) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1469 (0.1691) loss_bbox_pre: 0.3074 (0.3173) loss_giou_pre: 1.8790 (1.8490) loss_vfl_enc_0: 0.1426 (0.1637) loss_bbox_enc_0: 0.3273 (0.3372) loss_giou_enc_0: 1.9187 (1.8929) loss_vfl_dn_0: 0.4092 (0.4124) loss_bbox_dn_0: 0.0459 (0.0518) loss_giou_dn_0: 1.2126 (1.2015) loss_fgl_dn_0: 0.9052 (0.9155) loss_ddf_dn_0: 0.2595 (0.2602) loss_vfl_dn_1: 0.4529 (0.4584) loss_bbox_dn_1: 0.0383 (0.0428) loss_giou_dn_1: 1.1102 (1.0991) loss_fgl_dn_1: 0.9403 (0.9468) loss_ddf_dn_1: 0.0272 (0.0306) loss_vfl_dn_2: 0.4565 (0.4577) loss_bbox_dn_2: 0.0364 (0.0416) loss_giou_dn_2: 1.0953 (1.0874) loss_fgl_dn_2: 0.9438 (0.9495) loss_ddf_dn_2: 0.0025 (0.0033) loss_vfl_dn_3: 0.4539 (0.4548) loss_bbox_dn_3: 0.0359 (0.0414) loss_giou_dn_3: 1.0952 (1.0866) loss_fgl_dn_3: 0.9440 (0.9499) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4507 (0.4539) loss_bbox_dn_4: 0.0359 (0.0413) loss_giou_dn_4: 1.0953 (1.0865) loss_fgl_dn_4: 0.9441 (0.9500) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4514 (0.4541) loss_bbox_dn_5: 0.0359 (0.0413) loss_giou_dn_5: 1.0953 (1.0865) loss_fgl_dn_5: 0.9441 (0.9500) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4067 (0.4112) loss_bbox_dn_pre: 0.0461 (0.0519) loss_giou_dn_pre: 1.2134 (1.2024) time: 0.8247 data: 0.0192 max mem: 29821\n", + "Epoch: [33] Total time: 0:01:13 (0.8717 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.0007 (38.4219) loss_vfl: 0.1503 (0.1692) loss_bbox: 0.2971 (0.3087) loss_giou: 1.8700 (1.8412) loss_fgl: 0.3515 (0.3957) loss_vfl_aux_0: 0.1488 (0.1718) loss_bbox_aux_0: 0.3036 (0.3132) loss_giou_aux_0: 1.8817 (1.8538) loss_fgl_aux_0: 0.3506 (0.3944) loss_ddf_aux_0: 0.1127 (0.1288) loss_vfl_aux_1: 0.1550 (0.1754) loss_bbox_aux_1: 0.2987 (0.3096) loss_giou_aux_1: 1.8696 (1.8427) loss_fgl_aux_1: 0.3510 (0.3955) loss_ddf_aux_1: 0.0140 (0.0172) loss_vfl_aux_2: 0.1534 (0.1744) loss_bbox_aux_2: 0.2974 (0.3090) loss_giou_aux_2: 1.8697 (1.8413) loss_fgl_aux_2: 0.3513 (0.3956) loss_ddf_aux_2: 0.0017 (0.0023) loss_vfl_aux_3: 0.1503 (0.1709) loss_bbox_aux_3: 0.2972 (0.3087) loss_giou_aux_3: 1.8701 (1.8412) loss_fgl_aux_3: 0.3515 (0.3957) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1482 (0.1694) loss_bbox_aux_4: 0.2971 (0.3087) loss_giou_aux_4: 1.8699 (1.8412) loss_fgl_aux_4: 0.3515 (0.3957) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1469 (0.1691) loss_bbox_pre: 0.3074 (0.3173) loss_giou_pre: 1.8790 (1.8490) loss_vfl_enc_0: 0.1426 (0.1637) loss_bbox_enc_0: 0.3273 (0.3372) loss_giou_enc_0: 1.9187 (1.8929) loss_vfl_dn_0: 0.4092 (0.4124) loss_bbox_dn_0: 0.0459 (0.0518) loss_giou_dn_0: 1.2126 (1.2015) loss_fgl_dn_0: 0.9052 (0.9155) loss_ddf_dn_0: 0.2595 (0.2602) loss_vfl_dn_1: 0.4529 (0.4584) loss_bbox_dn_1: 0.0383 (0.0428) loss_giou_dn_1: 1.1102 (1.0991) loss_fgl_dn_1: 0.9403 (0.9468) loss_ddf_dn_1: 0.0272 (0.0306) loss_vfl_dn_2: 0.4565 (0.4577) loss_bbox_dn_2: 0.0364 (0.0416) loss_giou_dn_2: 1.0953 (1.0874) loss_fgl_dn_2: 0.9438 (0.9495) loss_ddf_dn_2: 0.0025 (0.0033) loss_vfl_dn_3: 0.4539 (0.4548) loss_bbox_dn_3: 0.0359 (0.0414) loss_giou_dn_3: 1.0952 (1.0866) loss_fgl_dn_3: 0.9440 (0.9499) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4507 (0.4539) loss_bbox_dn_4: 0.0359 (0.0413) loss_giou_dn_4: 1.0953 (1.0865) loss_fgl_dn_4: 0.9441 (0.9500) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4514 (0.4541) loss_bbox_dn_5: 0.0359 (0.0413) loss_giou_dn_5: 1.0953 (1.0865) loss_fgl_dn_5: 0.9441 (0.9500) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4067 (0.4112) loss_bbox_dn_pre: 0.0461 (0.0519) loss_giou_dn_pre: 1.2134 (1.2024)\n", + "Test: [0/4] eta: 0:00:03 time: 0.8265 data: 0.5736 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.5598 data: 0.1900 max mem: 29821\n", + "Test: Total time: 0:00:02 (0.5786 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.032\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.080\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.016\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.030\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.192\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.176\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.020\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.063\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.080\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.076\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.365\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.325\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.173\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.038\n", + "best_stat: {'epoch': 33, 'coco_eval_bbox': 0.03221177616279706}\n", + "Epoch: [34] [ 0/84] eta: 0:03:02 lr: 0.000013 loss: 38.3559 (38.3559) loss_vfl: 0.1628 (0.1628) loss_bbox: 0.2522 (0.2522) loss_giou: 1.8108 (1.8108) loss_fgl: 0.4680 (0.4680) loss_vfl_aux_0: 0.1696 (0.1696) loss_bbox_aux_0: 0.2595 (0.2595) loss_giou_aux_0: 1.8210 (1.8210) loss_fgl_aux_0: 0.4686 (0.4686) loss_ddf_aux_0: 0.3076 (0.3076) loss_vfl_aux_1: 0.1747 (0.1747) loss_bbox_aux_1: 0.2530 (0.2530) loss_giou_aux_1: 1.8139 (1.8139) loss_fgl_aux_1: 0.4689 (0.4689) loss_ddf_aux_1: 0.0463 (0.0463) loss_vfl_aux_2: 0.1700 (0.1700) loss_bbox_aux_2: 0.2530 (0.2530) loss_giou_aux_2: 1.8114 (1.8114) loss_fgl_aux_2: 0.4683 (0.4683) loss_ddf_aux_2: 0.0047 (0.0047) loss_vfl_aux_3: 0.1656 (0.1656) loss_bbox_aux_3: 0.2523 (0.2523) loss_giou_aux_3: 1.8110 (1.8110) loss_fgl_aux_3: 0.4680 (0.4680) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1624 (0.1624) loss_bbox_aux_4: 0.2522 (0.2522) loss_giou_aux_4: 1.8109 (1.8109) loss_fgl_aux_4: 0.4680 (0.4680) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1669 (0.1669) loss_bbox_pre: 0.2644 (0.2644) loss_giou_pre: 1.8151 (1.8151) loss_vfl_enc_0: 0.1533 (0.1533) loss_bbox_enc_0: 0.2994 (0.2994) loss_giou_enc_0: 1.8587 (1.8587) loss_vfl_dn_0: 0.3914 (0.3914) loss_bbox_dn_0: 0.0510 (0.0510) loss_giou_dn_0: 1.2416 (1.2416) loss_fgl_dn_0: 0.8993 (0.8993) loss_ddf_dn_0: 0.2382 (0.2382) loss_vfl_dn_1: 0.4514 (0.4514) loss_bbox_dn_1: 0.0410 (0.0410) loss_giou_dn_1: 1.1116 (1.1116) loss_fgl_dn_1: 0.9470 (0.9470) loss_ddf_dn_1: 0.0316 (0.0316) loss_vfl_dn_2: 0.4548 (0.4548) loss_bbox_dn_2: 0.0404 (0.0404) loss_giou_dn_2: 1.0904 (1.0904) loss_fgl_dn_2: 0.9524 (0.9524) loss_ddf_dn_2: 0.0025 (0.0025) loss_vfl_dn_3: 0.4502 (0.4502) loss_bbox_dn_3: 0.0404 (0.0404) loss_giou_dn_3: 1.0898 (1.0898) loss_fgl_dn_3: 0.9526 (0.9526) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4492 (0.4492) loss_bbox_dn_4: 0.0401 (0.0401) loss_giou_dn_4: 1.0896 (1.0896) loss_fgl_dn_4: 0.9526 (0.9526) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4460 (0.4460) loss_bbox_dn_5: 0.0401 (0.0401) loss_giou_dn_5: 1.0895 (1.0895) loss_fgl_dn_5: 0.9526 (0.9526) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3882 (0.3882) loss_bbox_dn_pre: 0.0515 (0.0515) loss_giou_dn_pre: 1.2455 (1.2455) time: 2.1729 data: 1.3128 max mem: 29821\n", + "Epoch: [34] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.5761 (38.2526) loss_vfl: 0.1520 (0.1688) loss_bbox: 0.2859 (0.2902) loss_giou: 1.8775 (1.8391) loss_fgl: 0.3650 (0.4027) loss_vfl_aux_0: 0.1498 (0.1729) loss_bbox_aux_0: 0.2863 (0.2939) loss_giou_aux_0: 1.8899 (1.8516) loss_fgl_aux_0: 0.3633 (0.4017) loss_ddf_aux_0: 0.0893 (0.1228) loss_vfl_aux_1: 0.1534 (0.1738) loss_bbox_aux_1: 0.2868 (0.2912) loss_giou_aux_1: 1.8777 (1.8404) loss_fgl_aux_1: 0.3642 (0.4024) loss_ddf_aux_1: 0.0128 (0.0174) loss_vfl_aux_2: 0.1520 (0.1732) loss_bbox_aux_2: 0.2859 (0.2904) loss_giou_aux_2: 1.8775 (1.8393) loss_fgl_aux_2: 0.3647 (0.4026) loss_ddf_aux_2: 0.0018 (0.0027) loss_vfl_aux_3: 0.1520 (0.1706) loss_bbox_aux_3: 0.2855 (0.2902) loss_giou_aux_3: 1.8777 (1.8392) loss_fgl_aux_3: 0.3649 (0.4027) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1514 (0.1689) loss_bbox_aux_4: 0.2854 (0.2901) loss_giou_aux_4: 1.8776 (1.8392) loss_fgl_aux_4: 0.3650 (0.4027) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1481 (0.1700) loss_bbox_pre: 0.2886 (0.2979) loss_giou_pre: 1.8846 (1.8470) loss_vfl_enc_0: 0.1409 (0.1607) loss_bbox_enc_0: 0.3039 (0.3209) loss_giou_enc_0: 1.9245 (1.8920) loss_vfl_dn_0: 0.4167 (0.4130) loss_bbox_dn_0: 0.0443 (0.0530) loss_giou_dn_0: 1.1833 (1.1892) loss_fgl_dn_0: 0.9188 (0.9168) loss_ddf_dn_0: 0.2482 (0.2583) loss_vfl_dn_1: 0.4531 (0.4576) loss_bbox_dn_1: 0.0398 (0.0436) loss_giou_dn_1: 1.0914 (1.0958) loss_fgl_dn_1: 0.9432 (0.9466) loss_ddf_dn_1: 0.0257 (0.0311) loss_vfl_dn_2: 0.4553 (0.4563) loss_bbox_dn_2: 0.0382 (0.0423) loss_giou_dn_2: 1.0791 (1.0844) loss_fgl_dn_2: 0.9452 (0.9498) loss_ddf_dn_2: 0.0026 (0.0031) loss_vfl_dn_3: 0.4517 (0.4534) loss_bbox_dn_3: 0.0381 (0.0420) loss_giou_dn_3: 1.0784 (1.0837) loss_fgl_dn_3: 0.9457 (0.9501) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4578 (0.4527) loss_bbox_dn_4: 0.0381 (0.0420) loss_giou_dn_4: 1.0782 (1.0836) loss_fgl_dn_4: 0.9456 (0.9502) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4575 (0.4532) loss_bbox_dn_5: 0.0381 (0.0420) loss_giou_dn_5: 1.0782 (1.0836) loss_fgl_dn_5: 0.9456 (0.9502) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4146 (0.4117) loss_bbox_dn_pre: 0.0447 (0.0532) loss_giou_dn_pre: 1.1830 (1.1900) time: 0.8952 data: 0.0212 max mem: 29821\n", + "Epoch: [34] Total time: 0:01:13 (0.8723 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.5761 (38.2526) loss_vfl: 0.1520 (0.1688) loss_bbox: 0.2859 (0.2902) loss_giou: 1.8775 (1.8391) loss_fgl: 0.3650 (0.4027) loss_vfl_aux_0: 0.1498 (0.1729) loss_bbox_aux_0: 0.2863 (0.2939) loss_giou_aux_0: 1.8899 (1.8516) loss_fgl_aux_0: 0.3633 (0.4017) loss_ddf_aux_0: 0.0893 (0.1228) loss_vfl_aux_1: 0.1534 (0.1738) loss_bbox_aux_1: 0.2868 (0.2912) loss_giou_aux_1: 1.8777 (1.8404) loss_fgl_aux_1: 0.3642 (0.4024) loss_ddf_aux_1: 0.0128 (0.0174) loss_vfl_aux_2: 0.1520 (0.1732) loss_bbox_aux_2: 0.2859 (0.2904) loss_giou_aux_2: 1.8775 (1.8393) loss_fgl_aux_2: 0.3647 (0.4026) loss_ddf_aux_2: 0.0018 (0.0027) loss_vfl_aux_3: 0.1520 (0.1706) loss_bbox_aux_3: 0.2855 (0.2902) loss_giou_aux_3: 1.8777 (1.8392) loss_fgl_aux_3: 0.3649 (0.4027) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1514 (0.1689) loss_bbox_aux_4: 0.2854 (0.2901) loss_giou_aux_4: 1.8776 (1.8392) loss_fgl_aux_4: 0.3650 (0.4027) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1481 (0.1700) loss_bbox_pre: 0.2886 (0.2979) loss_giou_pre: 1.8846 (1.8470) loss_vfl_enc_0: 0.1409 (0.1607) loss_bbox_enc_0: 0.3039 (0.3209) loss_giou_enc_0: 1.9245 (1.8920) loss_vfl_dn_0: 0.4167 (0.4130) loss_bbox_dn_0: 0.0443 (0.0530) loss_giou_dn_0: 1.1833 (1.1892) loss_fgl_dn_0: 0.9188 (0.9168) loss_ddf_dn_0: 0.2482 (0.2583) loss_vfl_dn_1: 0.4531 (0.4576) loss_bbox_dn_1: 0.0398 (0.0436) loss_giou_dn_1: 1.0914 (1.0958) loss_fgl_dn_1: 0.9432 (0.9466) loss_ddf_dn_1: 0.0257 (0.0311) loss_vfl_dn_2: 0.4553 (0.4563) loss_bbox_dn_2: 0.0382 (0.0423) loss_giou_dn_2: 1.0791 (1.0844) loss_fgl_dn_2: 0.9452 (0.9498) loss_ddf_dn_2: 0.0026 (0.0031) loss_vfl_dn_3: 0.4517 (0.4534) loss_bbox_dn_3: 0.0381 (0.0420) loss_giou_dn_3: 1.0784 (1.0837) loss_fgl_dn_3: 0.9457 (0.9501) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4578 (0.4527) loss_bbox_dn_4: 0.0381 (0.0420) loss_giou_dn_4: 1.0782 (1.0836) loss_fgl_dn_4: 0.9456 (0.9502) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4575 (0.4532) loss_bbox_dn_5: 0.0381 (0.0420) loss_giou_dn_5: 1.0782 (1.0836) loss_fgl_dn_5: 0.9456 (0.9502) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4146 (0.4117) loss_bbox_dn_pre: 0.0447 (0.0532) loss_giou_dn_pre: 1.1830 (1.1900)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7644 data: 0.5079 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4176 data: 0.1790 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4328 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.030\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.082\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.016\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.029\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.121\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.404\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.026\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.061\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.077\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.076\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.214\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.575\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.175\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.038\n", + "best_stat: {'epoch': 33, 'coco_eval_bbox': 0.03221177616279706}\n", + "Epoch: [35] [ 0/84] eta: 0:02:24 lr: 0.000013 loss: 39.6013 (39.6013) loss_vfl: 0.2030 (0.2030) loss_bbox: 0.3070 (0.3070) loss_giou: 1.9406 (1.9406) loss_fgl: 0.4072 (0.4072) loss_vfl_aux_0: 0.2190 (0.2190) loss_bbox_aux_0: 0.3112 (0.3112) loss_giou_aux_0: 1.9539 (1.9539) loss_fgl_aux_0: 0.4085 (0.4085) loss_ddf_aux_0: 0.1806 (0.1806) loss_vfl_aux_1: 0.2216 (0.2216) loss_bbox_aux_1: 0.3076 (0.3076) loss_giou_aux_1: 1.9426 (1.9426) loss_fgl_aux_1: 0.4070 (0.4070) loss_ddf_aux_1: 0.0260 (0.0260) loss_vfl_aux_2: 0.2137 (0.2137) loss_bbox_aux_2: 0.3071 (0.3071) loss_giou_aux_2: 1.9413 (1.9413) loss_fgl_aux_2: 0.4070 (0.4070) loss_ddf_aux_2: 0.0044 (0.0044) loss_vfl_aux_3: 0.2065 (0.2065) loss_bbox_aux_3: 0.3068 (0.3068) loss_giou_aux_3: 1.9409 (1.9409) loss_fgl_aux_3: 0.4072 (0.4072) loss_ddf_aux_3: 0.0005 (0.0005) loss_vfl_aux_4: 0.2061 (0.2061) loss_bbox_aux_4: 0.3067 (0.3067) loss_giou_aux_4: 1.9408 (1.9408) loss_fgl_aux_4: 0.4073 (0.4073) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.2151 (0.2151) loss_bbox_pre: 0.3153 (0.3153) loss_giou_pre: 1.9505 (1.9505) loss_vfl_enc_0: 0.2003 (0.2003) loss_bbox_enc_0: 0.3416 (0.3416) loss_giou_enc_0: 1.9720 (1.9720) loss_vfl_dn_0: 0.4172 (0.4172) loss_bbox_dn_0: 0.0530 (0.0530) loss_giou_dn_0: 1.1867 (1.1867) loss_fgl_dn_0: 0.9236 (0.9236) loss_ddf_dn_0: 0.2754 (0.2754) loss_vfl_dn_1: 0.4658 (0.4658) loss_bbox_dn_1: 0.0447 (0.0447) loss_giou_dn_1: 1.0856 (1.0856) loss_fgl_dn_1: 0.9509 (0.9509) loss_ddf_dn_1: 0.0359 (0.0359) loss_vfl_dn_2: 0.4519 (0.4519) loss_bbox_dn_2: 0.0428 (0.0428) loss_giou_dn_2: 1.0757 (1.0757) loss_fgl_dn_2: 0.9540 (0.9540) loss_ddf_dn_2: 0.0039 (0.0039) loss_vfl_dn_3: 0.4458 (0.4458) loss_bbox_dn_3: 0.0422 (0.0422) loss_giou_dn_3: 1.0749 (1.0749) loss_fgl_dn_3: 0.9540 (0.9540) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4458 (0.4458) loss_bbox_dn_4: 0.0422 (0.0422) loss_giou_dn_4: 1.0750 (1.0750) loss_fgl_dn_4: 0.9540 (0.9540) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4473 (0.4473) loss_bbox_dn_5: 0.0422 (0.0422) loss_giou_dn_5: 1.0750 (1.0750) loss_fgl_dn_5: 0.9541 (0.9541) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4170 (0.4170) loss_bbox_dn_pre: 0.0529 (0.0529) loss_giou_dn_pre: 1.1842 (1.1842) time: 1.7167 data: 0.8189 max mem: 29821\n", + "Epoch: [35] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.4118 (38.1987) loss_vfl: 0.1475 (0.1631) loss_bbox: 0.2586 (0.2922) loss_giou: 1.8226 (1.8411) loss_fgl: 0.4077 (0.3954) loss_vfl_aux_0: 0.1477 (0.1666) loss_bbox_aux_0: 0.2602 (0.2958) loss_giou_aux_0: 1.8393 (1.8548) loss_fgl_aux_0: 0.4090 (0.3946) loss_ddf_aux_0: 0.1219 (0.1314) loss_vfl_aux_1: 0.1462 (0.1689) loss_bbox_aux_1: 0.2576 (0.2925) loss_giou_aux_1: 1.8252 (1.8438) loss_fgl_aux_1: 0.4077 (0.3953) loss_ddf_aux_1: 0.0125 (0.0198) loss_vfl_aux_2: 0.1478 (0.1673) loss_bbox_aux_2: 0.2585 (0.2925) loss_giou_aux_2: 1.8227 (1.8412) loss_fgl_aux_2: 0.4076 (0.3953) loss_ddf_aux_2: 0.0019 (0.0029) loss_vfl_aux_3: 0.1443 (0.1645) loss_bbox_aux_3: 0.2585 (0.2923) loss_giou_aux_3: 1.8227 (1.8411) loss_fgl_aux_3: 0.4078 (0.3954) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1469 (0.1630) loss_bbox_aux_4: 0.2586 (0.2922) loss_giou_aux_4: 1.8227 (1.8411) loss_fgl_aux_4: 0.4077 (0.3954) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1459 (0.1639) loss_bbox_pre: 0.2653 (0.3003) loss_giou_pre: 1.8344 (1.8494) loss_vfl_enc_0: 0.1415 (0.1571) loss_bbox_enc_0: 0.2963 (0.3230) loss_giou_enc_0: 1.8659 (1.8979) loss_vfl_dn_0: 0.4058 (0.4103) loss_bbox_dn_0: 0.0499 (0.0501) loss_giou_dn_0: 1.2112 (1.1987) loss_fgl_dn_0: 0.9134 (0.9124) loss_ddf_dn_0: 0.2439 (0.2725) loss_vfl_dn_1: 0.4543 (0.4567) loss_bbox_dn_1: 0.0399 (0.0412) loss_giou_dn_1: 1.0891 (1.0937) loss_fgl_dn_1: 0.9446 (0.9445) loss_ddf_dn_1: 0.0240 (0.0310) loss_vfl_dn_2: 0.4578 (0.4552) loss_bbox_dn_2: 0.0392 (0.0400) loss_giou_dn_2: 1.0782 (1.0845) loss_fgl_dn_2: 0.9471 (0.9469) loss_ddf_dn_2: 0.0024 (0.0029) loss_vfl_dn_3: 0.4517 (0.4524) loss_bbox_dn_3: 0.0391 (0.0398) loss_giou_dn_3: 1.0776 (1.0839) loss_fgl_dn_3: 0.9473 (0.9471) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4517 (0.4512) loss_bbox_dn_4: 0.0391 (0.0398) loss_giou_dn_4: 1.0776 (1.0838) loss_fgl_dn_4: 0.9473 (0.9472) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4521 (0.4515) loss_bbox_dn_5: 0.0391 (0.0398) loss_giou_dn_5: 1.0776 (1.0838) loss_fgl_dn_5: 0.9473 (0.9472) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4048 (0.4087) loss_bbox_dn_pre: 0.0498 (0.0504) loss_giou_dn_pre: 1.2103 (1.1996) time: 0.8467 data: 0.0187 max mem: 29821\n", + "Epoch: [35] Total time: 0:01:12 (0.8595 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.4118 (38.1987) loss_vfl: 0.1475 (0.1631) loss_bbox: 0.2586 (0.2922) loss_giou: 1.8226 (1.8411) loss_fgl: 0.4077 (0.3954) loss_vfl_aux_0: 0.1477 (0.1666) loss_bbox_aux_0: 0.2602 (0.2958) loss_giou_aux_0: 1.8393 (1.8548) loss_fgl_aux_0: 0.4090 (0.3946) loss_ddf_aux_0: 0.1219 (0.1314) loss_vfl_aux_1: 0.1462 (0.1689) loss_bbox_aux_1: 0.2576 (0.2925) loss_giou_aux_1: 1.8252 (1.8438) loss_fgl_aux_1: 0.4077 (0.3953) loss_ddf_aux_1: 0.0125 (0.0198) loss_vfl_aux_2: 0.1478 (0.1673) loss_bbox_aux_2: 0.2585 (0.2925) loss_giou_aux_2: 1.8227 (1.8412) loss_fgl_aux_2: 0.4076 (0.3953) loss_ddf_aux_2: 0.0019 (0.0029) loss_vfl_aux_3: 0.1443 (0.1645) loss_bbox_aux_3: 0.2585 (0.2923) loss_giou_aux_3: 1.8227 (1.8411) loss_fgl_aux_3: 0.4078 (0.3954) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1469 (0.1630) loss_bbox_aux_4: 0.2586 (0.2922) loss_giou_aux_4: 1.8227 (1.8411) loss_fgl_aux_4: 0.4077 (0.3954) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1459 (0.1639) loss_bbox_pre: 0.2653 (0.3003) loss_giou_pre: 1.8344 (1.8494) loss_vfl_enc_0: 0.1415 (0.1571) loss_bbox_enc_0: 0.2963 (0.3230) loss_giou_enc_0: 1.8659 (1.8979) loss_vfl_dn_0: 0.4058 (0.4103) loss_bbox_dn_0: 0.0499 (0.0501) loss_giou_dn_0: 1.2112 (1.1987) loss_fgl_dn_0: 0.9134 (0.9124) loss_ddf_dn_0: 0.2439 (0.2725) loss_vfl_dn_1: 0.4543 (0.4567) loss_bbox_dn_1: 0.0399 (0.0412) loss_giou_dn_1: 1.0891 (1.0937) loss_fgl_dn_1: 0.9446 (0.9445) loss_ddf_dn_1: 0.0240 (0.0310) loss_vfl_dn_2: 0.4578 (0.4552) loss_bbox_dn_2: 0.0392 (0.0400) loss_giou_dn_2: 1.0782 (1.0845) loss_fgl_dn_2: 0.9471 (0.9469) loss_ddf_dn_2: 0.0024 (0.0029) loss_vfl_dn_3: 0.4517 (0.4524) loss_bbox_dn_3: 0.0391 (0.0398) loss_giou_dn_3: 1.0776 (1.0839) loss_fgl_dn_3: 0.9473 (0.9471) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4517 (0.4512) loss_bbox_dn_4: 0.0391 (0.0398) loss_giou_dn_4: 1.0776 (1.0838) loss_fgl_dn_4: 0.9473 (0.9472) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4521 (0.4515) loss_bbox_dn_5: 0.0391 (0.0398) loss_giou_dn_5: 1.0776 (1.0838) loss_fgl_dn_5: 0.9473 (0.9472) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4048 (0.4087) loss_bbox_dn_pre: 0.0498 (0.0504) loss_giou_dn_pre: 1.2103 (1.1996)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7404 data: 0.4940 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3964 data: 0.1642 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4107 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.036\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.084\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.016\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.031\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.180\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.169\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.032\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.066\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.082\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.077\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.343\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.425\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.174\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.038\n", + "best_stat: {'epoch': 35, 'coco_eval_bbox': 0.03588876627707357}\n", + "Epoch: [36] [ 0/84] eta: 0:02:37 lr: 0.000013 loss: 37.6394 (37.6394) loss_vfl: 0.1038 (0.1038) loss_bbox: 0.3009 (0.3009) loss_giou: 1.8532 (1.8532) loss_fgl: 0.3649 (0.3649) loss_vfl_aux_0: 0.1085 (0.1085) loss_bbox_aux_0: 0.2926 (0.2926) loss_giou_aux_0: 1.8666 (1.8666) loss_fgl_aux_0: 0.3688 (0.3688) loss_ddf_aux_0: 0.1989 (0.1989) loss_vfl_aux_1: 0.1063 (0.1063) loss_bbox_aux_1: 0.2985 (0.2985) loss_giou_aux_1: 1.8540 (1.8540) loss_fgl_aux_1: 0.3654 (0.3654) loss_ddf_aux_1: 0.0184 (0.0184) loss_vfl_aux_2: 0.1065 (0.1065) loss_bbox_aux_2: 0.3008 (0.3008) loss_giou_aux_2: 1.8532 (1.8532) loss_fgl_aux_2: 0.3648 (0.3648) loss_ddf_aux_2: 0.0020 (0.0020) loss_vfl_aux_3: 0.1051 (0.1051) loss_bbox_aux_3: 0.3008 (0.3008) loss_giou_aux_3: 1.8532 (1.8532) loss_fgl_aux_3: 0.3649 (0.3649) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1043 (0.1043) loss_bbox_aux_4: 0.3008 (0.3008) loss_giou_aux_4: 1.8532 (1.8532) loss_fgl_aux_4: 0.3650 (0.3650) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1072 (0.1072) loss_bbox_pre: 0.2947 (0.2947) loss_giou_pre: 1.8641 (1.8641) loss_vfl_enc_0: 0.1060 (0.1060) loss_bbox_enc_0: 0.3109 (0.3109) loss_giou_enc_0: 1.8986 (1.8986) loss_vfl_dn_0: 0.4219 (0.4219) loss_bbox_dn_0: 0.0425 (0.0425) loss_giou_dn_0: 1.1631 (1.1631) loss_fgl_dn_0: 0.9421 (0.9421) loss_ddf_dn_0: 0.2141 (0.2141) loss_vfl_dn_1: 0.4526 (0.4526) loss_bbox_dn_1: 0.0369 (0.0369) loss_giou_dn_1: 1.0835 (1.0835) loss_fgl_dn_1: 0.9645 (0.9645) loss_ddf_dn_1: 0.0190 (0.0190) loss_vfl_dn_2: 0.4534 (0.4534) loss_bbox_dn_2: 0.0361 (0.0361) loss_giou_dn_2: 1.0755 (1.0755) loss_fgl_dn_2: 0.9661 (0.9661) loss_ddf_dn_2: 0.0016 (0.0016) loss_vfl_dn_3: 0.4504 (0.4504) loss_bbox_dn_3: 0.0360 (0.0360) loss_giou_dn_3: 1.0751 (1.0751) loss_fgl_dn_3: 0.9663 (0.9663) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4497 (0.4497) loss_bbox_dn_4: 0.0360 (0.0360) loss_giou_dn_4: 1.0750 (1.0750) loss_fgl_dn_4: 0.9664 (0.9664) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4487 (0.4487) loss_bbox_dn_5: 0.0360 (0.0360) loss_giou_dn_5: 1.0750 (1.0750) loss_fgl_dn_5: 0.9664 (0.9664) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4207 (0.4207) loss_bbox_dn_pre: 0.0428 (0.0428) loss_giou_dn_pre: 1.1640 (1.1640) time: 1.8806 data: 0.8373 max mem: 29821\n", + "Epoch: [36] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.9401 (38.2269) loss_vfl: 0.1329 (0.1630) loss_bbox: 0.2724 (0.2953) loss_giou: 1.9114 (1.8377) loss_fgl: 0.3741 (0.4033) loss_vfl_aux_0: 0.1359 (0.1674) loss_bbox_aux_0: 0.2785 (0.2994) loss_giou_aux_0: 1.9266 (1.8494) loss_fgl_aux_0: 0.3741 (0.4020) loss_ddf_aux_0: 0.1130 (0.1238) loss_vfl_aux_1: 0.1393 (0.1692) loss_bbox_aux_1: 0.2752 (0.2960) loss_giou_aux_1: 1.9134 (1.8389) loss_fgl_aux_1: 0.3732 (0.4033) loss_ddf_aux_1: 0.0183 (0.0185) loss_vfl_aux_2: 0.1422 (0.1674) loss_bbox_aux_2: 0.2748 (0.2955) loss_giou_aux_2: 1.9118 (1.8379) loss_fgl_aux_2: 0.3740 (0.4033) loss_ddf_aux_2: 0.0025 (0.0027) loss_vfl_aux_3: 0.1356 (0.1649) loss_bbox_aux_3: 0.2717 (0.2952) loss_giou_aux_3: 1.9115 (1.8378) loss_fgl_aux_3: 0.3742 (0.4034) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1342 (0.1629) loss_bbox_aux_4: 0.2723 (0.2953) loss_giou_aux_4: 1.9115 (1.8377) loss_fgl_aux_4: 0.3741 (0.4034) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1343 (0.1648) loss_bbox_pre: 0.2807 (0.3036) loss_giou_pre: 1.9204 (1.8444) loss_vfl_enc_0: 0.1272 (0.1592) loss_bbox_enc_0: 0.3054 (0.3238) loss_giou_enc_0: 1.9518 (1.8891) loss_vfl_dn_0: 0.4099 (0.4163) loss_bbox_dn_0: 0.0461 (0.0519) loss_giou_dn_0: 1.1910 (1.1872) loss_fgl_dn_0: 0.9137 (0.9218) loss_ddf_dn_0: 0.2477 (0.2544) loss_vfl_dn_1: 0.4607 (0.4609) loss_bbox_dn_1: 0.0375 (0.0424) loss_giou_dn_1: 1.0926 (1.0858) loss_fgl_dn_1: 0.9461 (0.9527) loss_ddf_dn_1: 0.0294 (0.0285) loss_vfl_dn_2: 0.4553 (0.4586) loss_bbox_dn_2: 0.0361 (0.0412) loss_giou_dn_2: 1.0838 (1.0751) loss_fgl_dn_2: 0.9470 (0.9550) loss_ddf_dn_2: 0.0032 (0.0029) loss_vfl_dn_3: 0.4514 (0.4552) loss_bbox_dn_3: 0.0357 (0.0410) loss_giou_dn_3: 1.0844 (1.0744) loss_fgl_dn_3: 0.9468 (0.9552) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4507 (0.4550) loss_bbox_dn_4: 0.0357 (0.0410) loss_giou_dn_4: 1.0843 (1.0743) loss_fgl_dn_4: 0.9469 (0.9553) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4514 (0.4552) loss_bbox_dn_5: 0.0357 (0.0410) loss_giou_dn_5: 1.0843 (1.0743) loss_fgl_dn_5: 0.9470 (0.9553) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4092 (0.4151) loss_bbox_dn_pre: 0.0467 (0.0521) loss_giou_dn_pre: 1.1926 (1.1874) time: 0.9114 data: 0.0174 max mem: 29821\n", + "Epoch: [36] Total time: 0:01:13 (0.8737 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.9401 (38.2269) loss_vfl: 0.1329 (0.1630) loss_bbox: 0.2724 (0.2953) loss_giou: 1.9114 (1.8377) loss_fgl: 0.3741 (0.4033) loss_vfl_aux_0: 0.1359 (0.1674) loss_bbox_aux_0: 0.2785 (0.2994) loss_giou_aux_0: 1.9266 (1.8494) loss_fgl_aux_0: 0.3741 (0.4020) loss_ddf_aux_0: 0.1130 (0.1238) loss_vfl_aux_1: 0.1393 (0.1692) loss_bbox_aux_1: 0.2752 (0.2960) loss_giou_aux_1: 1.9134 (1.8389) loss_fgl_aux_1: 0.3732 (0.4033) loss_ddf_aux_1: 0.0183 (0.0185) loss_vfl_aux_2: 0.1422 (0.1674) loss_bbox_aux_2: 0.2748 (0.2955) loss_giou_aux_2: 1.9118 (1.8379) loss_fgl_aux_2: 0.3740 (0.4033) loss_ddf_aux_2: 0.0025 (0.0027) loss_vfl_aux_3: 0.1356 (0.1649) loss_bbox_aux_3: 0.2717 (0.2952) loss_giou_aux_3: 1.9115 (1.8378) loss_fgl_aux_3: 0.3742 (0.4034) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1342 (0.1629) loss_bbox_aux_4: 0.2723 (0.2953) loss_giou_aux_4: 1.9115 (1.8377) loss_fgl_aux_4: 0.3741 (0.4034) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1343 (0.1648) loss_bbox_pre: 0.2807 (0.3036) loss_giou_pre: 1.9204 (1.8444) loss_vfl_enc_0: 0.1272 (0.1592) loss_bbox_enc_0: 0.3054 (0.3238) loss_giou_enc_0: 1.9518 (1.8891) loss_vfl_dn_0: 0.4099 (0.4163) loss_bbox_dn_0: 0.0461 (0.0519) loss_giou_dn_0: 1.1910 (1.1872) loss_fgl_dn_0: 0.9137 (0.9218) loss_ddf_dn_0: 0.2477 (0.2544) loss_vfl_dn_1: 0.4607 (0.4609) loss_bbox_dn_1: 0.0375 (0.0424) loss_giou_dn_1: 1.0926 (1.0858) loss_fgl_dn_1: 0.9461 (0.9527) loss_ddf_dn_1: 0.0294 (0.0285) loss_vfl_dn_2: 0.4553 (0.4586) loss_bbox_dn_2: 0.0361 (0.0412) loss_giou_dn_2: 1.0838 (1.0751) loss_fgl_dn_2: 0.9470 (0.9550) loss_ddf_dn_2: 0.0032 (0.0029) loss_vfl_dn_3: 0.4514 (0.4552) loss_bbox_dn_3: 0.0357 (0.0410) loss_giou_dn_3: 1.0844 (1.0744) loss_fgl_dn_3: 0.9468 (0.9552) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4507 (0.4550) loss_bbox_dn_4: 0.0357 (0.0410) loss_giou_dn_4: 1.0843 (1.0743) loss_fgl_dn_4: 0.9469 (0.9553) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4514 (0.4552) loss_bbox_dn_5: 0.0357 (0.0410) loss_giou_dn_5: 1.0843 (1.0743) loss_fgl_dn_5: 0.9470 (0.9553) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4092 (0.4151) loss_bbox_dn_pre: 0.0467 (0.0521) loss_giou_dn_pre: 1.1926 (1.1874)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7313 data: 0.4843 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3932 data: 0.1629 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4079 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.031\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.077\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.015\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.030\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.186\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.429\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.017\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.058\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.074\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.071\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.279\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.450\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.166\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.035\n", + "best_stat: {'epoch': 35, 'coco_eval_bbox': 0.03588876627707357}\n", + "Epoch: [37] [ 0/84] eta: 0:02:28 lr: 0.000013 loss: 38.5124 (38.5124) loss_vfl: 0.2162 (0.2162) loss_bbox: 0.2432 (0.2432) loss_giou: 1.7903 (1.7903) loss_fgl: 0.4599 (0.4599) loss_vfl_aux_0: 0.2242 (0.2242) loss_bbox_aux_0: 0.2487 (0.2487) loss_giou_aux_0: 1.8035 (1.8035) loss_fgl_aux_0: 0.4593 (0.4593) loss_ddf_aux_0: 0.2617 (0.2617) loss_vfl_aux_1: 0.2302 (0.2302) loss_bbox_aux_1: 0.2439 (0.2439) loss_giou_aux_1: 1.7891 (1.7891) loss_fgl_aux_1: 0.4569 (0.4569) loss_ddf_aux_1: 0.0385 (0.0385) loss_vfl_aux_2: 0.2345 (0.2345) loss_bbox_aux_2: 0.2427 (0.2427) loss_giou_aux_2: 1.7905 (1.7905) loss_fgl_aux_2: 0.4587 (0.4587) loss_ddf_aux_2: 0.0058 (0.0058) loss_vfl_aux_3: 0.2169 (0.2169) loss_bbox_aux_3: 0.2431 (0.2431) loss_giou_aux_3: 1.7907 (1.7907) loss_fgl_aux_3: 0.4598 (0.4598) loss_ddf_aux_3: 0.0008 (0.0008) loss_vfl_aux_4: 0.2142 (0.2142) loss_bbox_aux_4: 0.2432 (0.2432) loss_giou_aux_4: 1.7903 (1.7903) loss_fgl_aux_4: 0.4599 (0.4599) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.2185 (0.2185) loss_bbox_pre: 0.2553 (0.2553) loss_giou_pre: 1.7992 (1.7992) loss_vfl_enc_0: 0.1980 (0.1980) loss_bbox_enc_0: 0.2850 (0.2850) loss_giou_enc_0: 1.8427 (1.8427) loss_vfl_dn_0: 0.4150 (0.4150) loss_bbox_dn_0: 0.0638 (0.0638) loss_giou_dn_0: 1.1875 (1.1875) loss_fgl_dn_0: 0.9196 (0.9196) loss_ddf_dn_0: 0.3243 (0.3243) loss_vfl_dn_1: 0.4832 (0.4832) loss_bbox_dn_1: 0.0521 (0.0521) loss_giou_dn_1: 1.0629 (1.0629) loss_fgl_dn_1: 0.9544 (0.9544) loss_ddf_dn_1: 0.0396 (0.0396) loss_vfl_dn_2: 0.4744 (0.4744) loss_bbox_dn_2: 0.0511 (0.0511) loss_giou_dn_2: 1.0531 (1.0531) loss_fgl_dn_2: 0.9564 (0.9564) loss_ddf_dn_2: 0.0045 (0.0045) loss_vfl_dn_3: 0.4636 (0.4636) loss_bbox_dn_3: 0.0508 (0.0508) loss_giou_dn_3: 1.0526 (1.0526) loss_fgl_dn_3: 0.9571 (0.9571) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4658 (0.4658) loss_bbox_dn_4: 0.0512 (0.0512) loss_giou_dn_4: 1.0527 (1.0527) loss_fgl_dn_4: 0.9573 (0.9573) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4719 (0.4719) loss_bbox_dn_5: 0.0512 (0.0512) loss_giou_dn_5: 1.0526 (1.0526) loss_fgl_dn_5: 0.9573 (0.9573) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4128 (0.4128) loss_bbox_dn_pre: 0.0654 (0.0654) loss_giou_dn_pre: 1.1919 (1.1919) time: 1.7653 data: 0.9893 max mem: 29821\n", + "Epoch: [37] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.9284 (38.0766) loss_vfl: 0.1565 (0.1660) loss_bbox: 0.2856 (0.2826) loss_giou: 1.8426 (1.8274) loss_fgl: 0.3824 (0.4016) loss_vfl_aux_0: 0.1676 (0.1708) loss_bbox_aux_0: 0.2845 (0.2864) loss_giou_aux_0: 1.8473 (1.8422) loss_fgl_aux_0: 0.3797 (0.4005) loss_ddf_aux_0: 0.1031 (0.1319) loss_vfl_aux_1: 0.1675 (0.1738) loss_bbox_aux_1: 0.2859 (0.2837) loss_giou_aux_1: 1.8421 (1.8284) loss_fgl_aux_1: 0.3825 (0.4013) loss_ddf_aux_1: 0.0131 (0.0174) loss_vfl_aux_2: 0.1669 (0.1715) loss_bbox_aux_2: 0.2857 (0.2830) loss_giou_aux_2: 1.8424 (1.8274) loss_fgl_aux_2: 0.3824 (0.4014) loss_ddf_aux_2: 0.0020 (0.0026) loss_vfl_aux_3: 0.1588 (0.1681) loss_bbox_aux_3: 0.2855 (0.2827) loss_giou_aux_3: 1.8425 (1.8274) loss_fgl_aux_3: 0.3825 (0.4016) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1580 (0.1664) loss_bbox_aux_4: 0.2856 (0.2826) loss_giou_aux_4: 1.8426 (1.8274) loss_fgl_aux_4: 0.3824 (0.4016) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1621 (0.1680) loss_bbox_pre: 0.2865 (0.2905) loss_giou_pre: 1.8430 (1.8372) loss_vfl_enc_0: 0.1594 (0.1619) loss_bbox_enc_0: 0.2963 (0.3126) loss_giou_enc_0: 1.8718 (1.8853) loss_vfl_dn_0: 0.4124 (0.4115) loss_bbox_dn_0: 0.0462 (0.0513) loss_giou_dn_0: 1.1807 (1.1962) loss_fgl_dn_0: 0.9184 (0.9148) loss_ddf_dn_0: 0.2929 (0.2723) loss_vfl_dn_1: 0.4609 (0.4598) loss_bbox_dn_1: 0.0357 (0.0415) loss_giou_dn_1: 1.0826 (1.0879) loss_fgl_dn_1: 0.9459 (0.9473) loss_ddf_dn_1: 0.0292 (0.0302) loss_vfl_dn_2: 0.4551 (0.4579) loss_bbox_dn_2: 0.0345 (0.0403) loss_giou_dn_2: 1.0789 (1.0763) loss_fgl_dn_2: 0.9466 (0.9505) loss_ddf_dn_2: 0.0025 (0.0028) loss_vfl_dn_3: 0.4517 (0.4547) loss_bbox_dn_3: 0.0344 (0.0401) loss_giou_dn_3: 1.0778 (1.0756) loss_fgl_dn_3: 0.9472 (0.9508) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4514 (0.4545) loss_bbox_dn_4: 0.0345 (0.0400) loss_giou_dn_4: 1.0776 (1.0755) loss_fgl_dn_4: 0.9472 (0.9508) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4519 (0.4547) loss_bbox_dn_5: 0.0345 (0.0400) loss_giou_dn_5: 1.0776 (1.0755) loss_fgl_dn_5: 0.9472 (0.9508) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4121 (0.4104) loss_bbox_dn_pre: 0.0462 (0.0515) loss_giou_dn_pre: 1.1803 (1.1968) time: 0.8387 data: 0.0183 max mem: 29821\n", + "Epoch: [37] Total time: 0:01:12 (0.8589 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.9284 (38.0766) loss_vfl: 0.1565 (0.1660) loss_bbox: 0.2856 (0.2826) loss_giou: 1.8426 (1.8274) loss_fgl: 0.3824 (0.4016) loss_vfl_aux_0: 0.1676 (0.1708) loss_bbox_aux_0: 0.2845 (0.2864) loss_giou_aux_0: 1.8473 (1.8422) loss_fgl_aux_0: 0.3797 (0.4005) loss_ddf_aux_0: 0.1031 (0.1319) loss_vfl_aux_1: 0.1675 (0.1738) loss_bbox_aux_1: 0.2859 (0.2837) loss_giou_aux_1: 1.8421 (1.8284) loss_fgl_aux_1: 0.3825 (0.4013) loss_ddf_aux_1: 0.0131 (0.0174) loss_vfl_aux_2: 0.1669 (0.1715) loss_bbox_aux_2: 0.2857 (0.2830) loss_giou_aux_2: 1.8424 (1.8274) loss_fgl_aux_2: 0.3824 (0.4014) loss_ddf_aux_2: 0.0020 (0.0026) loss_vfl_aux_3: 0.1588 (0.1681) loss_bbox_aux_3: 0.2855 (0.2827) loss_giou_aux_3: 1.8425 (1.8274) loss_fgl_aux_3: 0.3825 (0.4016) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1580 (0.1664) loss_bbox_aux_4: 0.2856 (0.2826) loss_giou_aux_4: 1.8426 (1.8274) loss_fgl_aux_4: 0.3824 (0.4016) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1621 (0.1680) loss_bbox_pre: 0.2865 (0.2905) loss_giou_pre: 1.8430 (1.8372) loss_vfl_enc_0: 0.1594 (0.1619) loss_bbox_enc_0: 0.2963 (0.3126) loss_giou_enc_0: 1.8718 (1.8853) loss_vfl_dn_0: 0.4124 (0.4115) loss_bbox_dn_0: 0.0462 (0.0513) loss_giou_dn_0: 1.1807 (1.1962) loss_fgl_dn_0: 0.9184 (0.9148) loss_ddf_dn_0: 0.2929 (0.2723) loss_vfl_dn_1: 0.4609 (0.4598) loss_bbox_dn_1: 0.0357 (0.0415) loss_giou_dn_1: 1.0826 (1.0879) loss_fgl_dn_1: 0.9459 (0.9473) loss_ddf_dn_1: 0.0292 (0.0302) loss_vfl_dn_2: 0.4551 (0.4579) loss_bbox_dn_2: 0.0345 (0.0403) loss_giou_dn_2: 1.0789 (1.0763) loss_fgl_dn_2: 0.9466 (0.9505) loss_ddf_dn_2: 0.0025 (0.0028) loss_vfl_dn_3: 0.4517 (0.4547) loss_bbox_dn_3: 0.0344 (0.0401) loss_giou_dn_3: 1.0778 (1.0756) loss_fgl_dn_3: 0.9472 (0.9508) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4514 (0.4545) loss_bbox_dn_4: 0.0345 (0.0400) loss_giou_dn_4: 1.0776 (1.0755) loss_fgl_dn_4: 0.9472 (0.9508) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4519 (0.4547) loss_bbox_dn_5: 0.0345 (0.0400) loss_giou_dn_5: 1.0776 (1.0755) loss_fgl_dn_5: 0.9472 (0.9508) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4121 (0.4104) loss_bbox_dn_pre: 0.0462 (0.0515) loss_giou_dn_pre: 1.1803 (1.1968)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7541 data: 0.5006 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4003 data: 0.1671 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4151 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.034\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.082\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.017\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.030\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.184\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.296\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.035\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.067\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.083\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.077\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.288\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.525\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.165\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.081\n", + "best_stat: {'epoch': 35, 'coco_eval_bbox': 0.03588876627707357}\n", + "Epoch: [38] [ 0/84] eta: 0:02:37 lr: 0.000013 loss: 40.7357 (40.7357) loss_vfl: 0.2861 (0.2861) loss_bbox: 0.3565 (0.3565) loss_giou: 1.7693 (1.7693) loss_fgl: 0.5608 (0.5608) loss_vfl_aux_0: 0.2803 (0.2803) loss_bbox_aux_0: 0.3747 (0.3747) loss_giou_aux_0: 1.7806 (1.7806) loss_fgl_aux_0: 0.5629 (0.5629) loss_ddf_aux_0: 0.2618 (0.2618) loss_vfl_aux_1: 0.2920 (0.2920) loss_bbox_aux_1: 0.3582 (0.3582) loss_giou_aux_1: 1.7710 (1.7710) loss_fgl_aux_1: 0.5619 (0.5619) loss_ddf_aux_1: 0.0344 (0.0344) loss_vfl_aux_2: 0.2871 (0.2871) loss_bbox_aux_2: 0.3563 (0.3563) loss_giou_aux_2: 1.7695 (1.7695) loss_fgl_aux_2: 0.5613 (0.5613) loss_ddf_aux_2: 0.0054 (0.0054) loss_vfl_aux_3: 0.2849 (0.2849) loss_bbox_aux_3: 0.3564 (0.3564) loss_giou_aux_3: 1.7694 (1.7694) loss_fgl_aux_3: 0.5609 (0.5609) loss_ddf_aux_3: 0.0005 (0.0005) loss_vfl_aux_4: 0.2847 (0.2847) loss_bbox_aux_4: 0.3565 (0.3565) loss_giou_aux_4: 1.7694 (1.7694) loss_fgl_aux_4: 0.5608 (0.5608) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.2756 (0.2756) loss_bbox_pre: 0.3794 (0.3794) loss_giou_pre: 1.7771 (1.7771) loss_vfl_enc_0: 0.2656 (0.2656) loss_bbox_enc_0: 0.4367 (0.4367) loss_giou_enc_0: 1.8583 (1.8583) loss_vfl_dn_0: 0.4260 (0.4260) loss_bbox_dn_0: 0.0827 (0.0827) loss_giou_dn_0: 1.1761 (1.1761) loss_fgl_dn_0: 0.9404 (0.9404) loss_ddf_dn_0: 0.4679 (0.4679) loss_vfl_dn_1: 0.4856 (0.4856) loss_bbox_dn_1: 0.0645 (0.0645) loss_giou_dn_1: 1.0400 (1.0400) loss_fgl_dn_1: 0.9741 (0.9741) loss_ddf_dn_1: 0.0621 (0.0621) loss_vfl_dn_2: 0.4915 (0.4915) loss_bbox_dn_2: 0.0598 (0.0598) loss_giou_dn_2: 1.0190 (1.0190) loss_fgl_dn_2: 0.9765 (0.9765) loss_ddf_dn_2: 0.0076 (0.0076) loss_vfl_dn_3: 0.4863 (0.4863) loss_bbox_dn_3: 0.0591 (0.0591) loss_giou_dn_3: 1.0159 (1.0159) loss_fgl_dn_3: 0.9769 (0.9769) loss_ddf_dn_3: 0.0007 (0.0007) loss_vfl_dn_4: 0.4868 (0.4868) loss_bbox_dn_4: 0.0589 (0.0589) loss_giou_dn_4: 1.0152 (1.0152) loss_fgl_dn_4: 0.9772 (0.9772) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4878 (0.4878) loss_bbox_dn_5: 0.0588 (0.0588) loss_giou_dn_5: 1.0151 (1.0151) loss_fgl_dn_5: 0.9772 (0.9772) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4258 (0.4258) loss_bbox_dn_pre: 0.0824 (0.0824) loss_giou_dn_pre: 1.1713 (1.1713) time: 1.8758 data: 1.0623 max mem: 29821\n", + "Epoch: [38] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.9193 (38.4840) loss_vfl: 0.1393 (0.1623) loss_bbox: 0.2881 (0.3085) loss_giou: 1.8201 (1.8586) loss_fgl: 0.4078 (0.3955) loss_vfl_aux_0: 0.1447 (0.1663) loss_bbox_aux_0: 0.2896 (0.3124) loss_giou_aux_0: 1.8380 (1.8723) loss_fgl_aux_0: 0.4088 (0.3950) loss_ddf_aux_0: 0.1169 (0.1396) loss_vfl_aux_1: 0.1469 (0.1693) loss_bbox_aux_1: 0.2882 (0.3092) loss_giou_aux_1: 1.8230 (1.8605) loss_fgl_aux_1: 0.4081 (0.3956) loss_ddf_aux_1: 0.0151 (0.0196) loss_vfl_aux_2: 0.1451 (0.1674) loss_bbox_aux_2: 0.2883 (0.3088) loss_giou_aux_2: 1.8211 (1.8589) loss_fgl_aux_2: 0.4075 (0.3954) loss_ddf_aux_2: 0.0023 (0.0030) loss_vfl_aux_3: 0.1429 (0.1642) loss_bbox_aux_3: 0.2879 (0.3086) loss_giou_aux_3: 1.8208 (1.8587) loss_fgl_aux_3: 0.4077 (0.3955) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1403 (0.1623) loss_bbox_aux_4: 0.2880 (0.3085) loss_giou_aux_4: 1.8201 (1.8587) loss_fgl_aux_4: 0.4078 (0.3955) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1417 (0.1636) loss_bbox_pre: 0.2923 (0.3162) loss_giou_pre: 1.8373 (1.8676) loss_vfl_enc_0: 0.1381 (0.1571) loss_bbox_enc_0: 0.3181 (0.3409) loss_giou_enc_0: 1.8908 (1.9171) loss_vfl_dn_0: 0.4172 (0.4187) loss_bbox_dn_0: 0.0465 (0.0501) loss_giou_dn_0: 1.1724 (1.1807) loss_fgl_dn_0: 0.9294 (0.9282) loss_ddf_dn_0: 0.2347 (0.2740) loss_vfl_dn_1: 0.4607 (0.4623) loss_bbox_dn_1: 0.0365 (0.0408) loss_giou_dn_1: 1.0819 (1.0789) loss_fgl_dn_1: 0.9547 (0.9573) loss_ddf_dn_1: 0.0247 (0.0300) loss_vfl_dn_2: 0.4558 (0.4606) loss_bbox_dn_2: 0.0362 (0.0395) loss_giou_dn_2: 1.0734 (1.0680) loss_fgl_dn_2: 0.9554 (0.9597) loss_ddf_dn_2: 0.0025 (0.0030) loss_vfl_dn_3: 0.4529 (0.4575) loss_bbox_dn_3: 0.0357 (0.0392) loss_giou_dn_3: 1.0722 (1.0672) loss_fgl_dn_3: 0.9554 (0.9599) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4500 (0.4568) loss_bbox_dn_4: 0.0355 (0.0392) loss_giou_dn_4: 1.0719 (1.0670) loss_fgl_dn_4: 0.9556 (0.9600) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4512 (0.4570) loss_bbox_dn_5: 0.0355 (0.0392) loss_giou_dn_5: 1.0719 (1.0670) loss_fgl_dn_5: 0.9556 (0.9600) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4160 (0.4173) loss_bbox_dn_pre: 0.0466 (0.0503) loss_giou_dn_pre: 1.1734 (1.1811) time: 0.9173 data: 0.0183 max mem: 29821\n", + "Epoch: [38] Total time: 0:01:15 (0.9006 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.9193 (38.4840) loss_vfl: 0.1393 (0.1623) loss_bbox: 0.2881 (0.3085) loss_giou: 1.8201 (1.8586) loss_fgl: 0.4078 (0.3955) loss_vfl_aux_0: 0.1447 (0.1663) loss_bbox_aux_0: 0.2896 (0.3124) loss_giou_aux_0: 1.8380 (1.8723) loss_fgl_aux_0: 0.4088 (0.3950) loss_ddf_aux_0: 0.1169 (0.1396) loss_vfl_aux_1: 0.1469 (0.1693) loss_bbox_aux_1: 0.2882 (0.3092) loss_giou_aux_1: 1.8230 (1.8605) loss_fgl_aux_1: 0.4081 (0.3956) loss_ddf_aux_1: 0.0151 (0.0196) loss_vfl_aux_2: 0.1451 (0.1674) loss_bbox_aux_2: 0.2883 (0.3088) loss_giou_aux_2: 1.8211 (1.8589) loss_fgl_aux_2: 0.4075 (0.3954) loss_ddf_aux_2: 0.0023 (0.0030) loss_vfl_aux_3: 0.1429 (0.1642) loss_bbox_aux_3: 0.2879 (0.3086) loss_giou_aux_3: 1.8208 (1.8587) loss_fgl_aux_3: 0.4077 (0.3955) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1403 (0.1623) loss_bbox_aux_4: 0.2880 (0.3085) loss_giou_aux_4: 1.8201 (1.8587) loss_fgl_aux_4: 0.4078 (0.3955) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1417 (0.1636) loss_bbox_pre: 0.2923 (0.3162) loss_giou_pre: 1.8373 (1.8676) loss_vfl_enc_0: 0.1381 (0.1571) loss_bbox_enc_0: 0.3181 (0.3409) loss_giou_enc_0: 1.8908 (1.9171) loss_vfl_dn_0: 0.4172 (0.4187) loss_bbox_dn_0: 0.0465 (0.0501) loss_giou_dn_0: 1.1724 (1.1807) loss_fgl_dn_0: 0.9294 (0.9282) loss_ddf_dn_0: 0.2347 (0.2740) loss_vfl_dn_1: 0.4607 (0.4623) loss_bbox_dn_1: 0.0365 (0.0408) loss_giou_dn_1: 1.0819 (1.0789) loss_fgl_dn_1: 0.9547 (0.9573) loss_ddf_dn_1: 0.0247 (0.0300) loss_vfl_dn_2: 0.4558 (0.4606) loss_bbox_dn_2: 0.0362 (0.0395) loss_giou_dn_2: 1.0734 (1.0680) loss_fgl_dn_2: 0.9554 (0.9597) loss_ddf_dn_2: 0.0025 (0.0030) loss_vfl_dn_3: 0.4529 (0.4575) loss_bbox_dn_3: 0.0357 (0.0392) loss_giou_dn_3: 1.0722 (1.0672) loss_fgl_dn_3: 0.9554 (0.9599) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4500 (0.4568) loss_bbox_dn_4: 0.0355 (0.0392) loss_giou_dn_4: 1.0719 (1.0670) loss_fgl_dn_4: 0.9556 (0.9600) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4512 (0.4570) loss_bbox_dn_5: 0.0355 (0.0392) loss_giou_dn_5: 1.0719 (1.0670) loss_fgl_dn_5: 0.9556 (0.9600) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4160 (0.4173) loss_bbox_dn_pre: 0.0466 (0.0503) loss_giou_dn_pre: 1.1734 (1.1811)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7455 data: 0.4974 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.5438 data: 0.1713 max mem: 29821\n", + "Test: Total time: 0:00:02 (0.5614 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.032\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.082\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.016\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.030\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.196\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.165\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.030\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.064\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.081\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.076\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.348\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.275\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.175\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.037\n", + "best_stat: {'epoch': 35, 'coco_eval_bbox': 0.03588876627707357}\n", + "Epoch: [39] [ 0/84] eta: 0:02:21 lr: 0.000013 loss: 36.3366 (36.3366) loss_vfl: 0.1866 (0.1866) loss_bbox: 0.1674 (0.1674) loss_giou: 1.7436 (1.7436) loss_fgl: 0.3682 (0.3682) loss_vfl_aux_0: 0.1869 (0.1869) loss_bbox_aux_0: 0.1705 (0.1705) loss_giou_aux_0: 1.7544 (1.7544) loss_fgl_aux_0: 0.3676 (0.3676) loss_ddf_aux_0: 0.1597 (0.1597) loss_vfl_aux_1: 0.1908 (0.1908) loss_bbox_aux_1: 0.1670 (0.1670) loss_giou_aux_1: 1.7448 (1.7448) loss_fgl_aux_1: 0.3670 (0.3670) loss_ddf_aux_1: 0.0256 (0.0256) loss_vfl_aux_2: 0.1876 (0.1876) loss_bbox_aux_2: 0.1669 (0.1669) loss_giou_aux_2: 1.7434 (1.7434) loss_fgl_aux_2: 0.3678 (0.3678) loss_ddf_aux_2: 0.0039 (0.0039) loss_vfl_aux_3: 0.1807 (0.1807) loss_bbox_aux_3: 0.1672 (0.1672) loss_giou_aux_3: 1.7438 (1.7438) loss_fgl_aux_3: 0.3683 (0.3683) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1812 (0.1812) loss_bbox_aux_4: 0.1674 (0.1674) loss_giou_aux_4: 1.7436 (1.7436) loss_fgl_aux_4: 0.3682 (0.3682) loss_ddf_aux_4: 0.0000 (0.0000) loss_vfl_pre: 0.1832 (0.1832) loss_bbox_pre: 0.1737 (0.1737) loss_giou_pre: 1.7476 (1.7476) loss_vfl_enc_0: 0.1802 (0.1802) loss_bbox_enc_0: 0.1913 (0.1913) loss_giou_enc_0: 1.7799 (1.7799) loss_vfl_dn_0: 0.4333 (0.4333) loss_bbox_dn_0: 0.0436 (0.0436) loss_giou_dn_0: 1.1531 (1.1531) loss_fgl_dn_0: 0.9552 (0.9552) loss_ddf_dn_0: 0.3013 (0.3013) loss_vfl_dn_1: 0.4705 (0.4705) loss_bbox_dn_1: 0.0334 (0.0334) loss_giou_dn_1: 1.0384 (1.0384) loss_fgl_dn_1: 0.9758 (0.9758) loss_ddf_dn_1: 0.0347 (0.0347) loss_vfl_dn_2: 0.4717 (0.4717) loss_bbox_dn_2: 0.0313 (0.0313) loss_giou_dn_2: 1.0284 (1.0284) loss_fgl_dn_2: 0.9745 (0.9745) loss_ddf_dn_2: 0.0040 (0.0040) loss_vfl_dn_3: 0.4678 (0.4678) loss_bbox_dn_3: 0.0313 (0.0313) loss_giou_dn_3: 1.0281 (1.0281) loss_fgl_dn_3: 0.9747 (0.9747) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4683 (0.4683) loss_bbox_dn_4: 0.0315 (0.0315) loss_giou_dn_4: 1.0281 (1.0281) loss_fgl_dn_4: 0.9749 (0.9749) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4722 (0.4722) loss_bbox_dn_5: 0.0315 (0.0315) loss_giou_dn_5: 1.0281 (1.0281) loss_fgl_dn_5: 0.9749 (0.9749) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4326 (0.4326) loss_bbox_dn_pre: 0.0437 (0.0437) loss_giou_dn_pre: 1.1523 (1.1523) time: 1.6848 data: 0.9611 max mem: 29821\n", + "Epoch: [39] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.0187 (37.9943) loss_vfl: 0.1521 (0.1633) loss_bbox: 0.2960 (0.2759) loss_giou: 1.8713 (1.8188) loss_fgl: 0.3825 (0.4055) loss_vfl_aux_0: 0.1562 (0.1671) loss_bbox_aux_0: 0.3188 (0.2822) loss_giou_aux_0: 1.8826 (1.8316) loss_fgl_aux_0: 0.3810 (0.4034) loss_ddf_aux_0: 0.1699 (0.1462) loss_vfl_aux_1: 0.1610 (0.1703) loss_bbox_aux_1: 0.2961 (0.2769) loss_giou_aux_1: 1.8736 (1.8204) loss_fgl_aux_1: 0.3835 (0.4054) loss_ddf_aux_1: 0.0211 (0.0217) loss_vfl_aux_2: 0.1572 (0.1692) loss_bbox_aux_2: 0.2960 (0.2760) loss_giou_aux_2: 1.8711 (1.8191) loss_fgl_aux_2: 0.3827 (0.4054) loss_ddf_aux_2: 0.0022 (0.0032) loss_vfl_aux_3: 0.1534 (0.1650) loss_bbox_aux_3: 0.2959 (0.2758) loss_giou_aux_3: 1.8713 (1.8189) loss_fgl_aux_3: 0.3826 (0.4056) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1533 (0.1633) loss_bbox_aux_4: 0.2959 (0.2758) loss_giou_aux_4: 1.8714 (1.8188) loss_fgl_aux_4: 0.3826 (0.4055) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1547 (0.1645) loss_bbox_pre: 0.3202 (0.2849) loss_giou_pre: 1.8766 (1.8277) loss_vfl_enc_0: 0.1488 (0.1601) loss_bbox_enc_0: 0.3220 (0.3096) loss_giou_enc_0: 1.9298 (1.8746) loss_vfl_dn_0: 0.4062 (0.4184) loss_bbox_dn_0: 0.0504 (0.0510) loss_giou_dn_0: 1.2099 (1.1822) loss_fgl_dn_0: 0.9083 (0.9271) loss_ddf_dn_0: 0.2684 (0.2827) loss_vfl_dn_1: 0.4524 (0.4607) loss_bbox_dn_1: 0.0404 (0.0414) loss_giou_dn_1: 1.1014 (1.0795) loss_fgl_dn_1: 0.9388 (0.9570) loss_ddf_dn_1: 0.0409 (0.0314) loss_vfl_dn_2: 0.4485 (0.4598) loss_bbox_dn_2: 0.0403 (0.0401) loss_giou_dn_2: 1.0827 (1.0671) loss_fgl_dn_2: 0.9415 (0.9600) loss_ddf_dn_2: 0.0023 (0.0029) loss_vfl_dn_3: 0.4443 (0.4567) loss_bbox_dn_3: 0.0404 (0.0400) loss_giou_dn_3: 1.0828 (1.0665) loss_fgl_dn_3: 0.9411 (0.9603) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4438 (0.4562) loss_bbox_dn_4: 0.0402 (0.0399) loss_giou_dn_4: 1.0827 (1.0664) loss_fgl_dn_4: 0.9413 (0.9604) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4463 (0.4567) loss_bbox_dn_5: 0.0402 (0.0399) loss_giou_dn_5: 1.0827 (1.0664) loss_fgl_dn_5: 0.9412 (0.9604) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4075 (0.4172) loss_bbox_dn_pre: 0.0498 (0.0510) loss_giou_dn_pre: 1.2071 (1.1824) time: 0.8678 data: 0.0185 max mem: 29821\n", + "Epoch: [39] Total time: 0:01:12 (0.8614 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.0187 (37.9943) loss_vfl: 0.1521 (0.1633) loss_bbox: 0.2960 (0.2759) loss_giou: 1.8713 (1.8188) loss_fgl: 0.3825 (0.4055) loss_vfl_aux_0: 0.1562 (0.1671) loss_bbox_aux_0: 0.3188 (0.2822) loss_giou_aux_0: 1.8826 (1.8316) loss_fgl_aux_0: 0.3810 (0.4034) loss_ddf_aux_0: 0.1699 (0.1462) loss_vfl_aux_1: 0.1610 (0.1703) loss_bbox_aux_1: 0.2961 (0.2769) loss_giou_aux_1: 1.8736 (1.8204) loss_fgl_aux_1: 0.3835 (0.4054) loss_ddf_aux_1: 0.0211 (0.0217) loss_vfl_aux_2: 0.1572 (0.1692) loss_bbox_aux_2: 0.2960 (0.2760) loss_giou_aux_2: 1.8711 (1.8191) loss_fgl_aux_2: 0.3827 (0.4054) loss_ddf_aux_2: 0.0022 (0.0032) loss_vfl_aux_3: 0.1534 (0.1650) loss_bbox_aux_3: 0.2959 (0.2758) loss_giou_aux_3: 1.8713 (1.8189) loss_fgl_aux_3: 0.3826 (0.4056) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1533 (0.1633) loss_bbox_aux_4: 0.2959 (0.2758) loss_giou_aux_4: 1.8714 (1.8188) loss_fgl_aux_4: 0.3826 (0.4055) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1547 (0.1645) loss_bbox_pre: 0.3202 (0.2849) loss_giou_pre: 1.8766 (1.8277) loss_vfl_enc_0: 0.1488 (0.1601) loss_bbox_enc_0: 0.3220 (0.3096) loss_giou_enc_0: 1.9298 (1.8746) loss_vfl_dn_0: 0.4062 (0.4184) loss_bbox_dn_0: 0.0504 (0.0510) loss_giou_dn_0: 1.2099 (1.1822) loss_fgl_dn_0: 0.9083 (0.9271) loss_ddf_dn_0: 0.2684 (0.2827) loss_vfl_dn_1: 0.4524 (0.4607) loss_bbox_dn_1: 0.0404 (0.0414) loss_giou_dn_1: 1.1014 (1.0795) loss_fgl_dn_1: 0.9388 (0.9570) loss_ddf_dn_1: 0.0409 (0.0314) loss_vfl_dn_2: 0.4485 (0.4598) loss_bbox_dn_2: 0.0403 (0.0401) loss_giou_dn_2: 1.0827 (1.0671) loss_fgl_dn_2: 0.9415 (0.9600) loss_ddf_dn_2: 0.0023 (0.0029) loss_vfl_dn_3: 0.4443 (0.4567) loss_bbox_dn_3: 0.0404 (0.0400) loss_giou_dn_3: 1.0828 (1.0665) loss_fgl_dn_3: 0.9411 (0.9603) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4438 (0.4562) loss_bbox_dn_4: 0.0402 (0.0399) loss_giou_dn_4: 1.0827 (1.0664) loss_fgl_dn_4: 0.9413 (0.9604) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4463 (0.4567) loss_bbox_dn_5: 0.0402 (0.0399) loss_giou_dn_5: 1.0827 (1.0664) loss_fgl_dn_5: 0.9412 (0.9604) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4075 (0.4172) loss_bbox_dn_pre: 0.0498 (0.0510) loss_giou_dn_pre: 1.2071 (1.1824)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7575 data: 0.5092 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3995 data: 0.1692 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4145 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.035\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.083\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.016\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.032\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.190\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.125\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.020\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.065\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.080\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.076\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.296\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.350\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.170\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.037\n", + "best_stat: {'epoch': 35, 'coco_eval_bbox': 0.03588876627707357}\n", + "Epoch: [40] [ 0/84] eta: 0:02:16 lr: 0.000013 loss: 36.3178 (36.3178) loss_vfl: 0.1204 (0.1204) loss_bbox: 0.2079 (0.2079) loss_giou: 1.7165 (1.7165) loss_fgl: 0.4154 (0.4154) loss_vfl_aux_0: 0.1233 (0.1233) loss_bbox_aux_0: 0.2121 (0.2121) loss_giou_aux_0: 1.7313 (1.7313) loss_fgl_aux_0: 0.4138 (0.4138) loss_ddf_aux_0: 0.1647 (0.1647) loss_vfl_aux_1: 0.1212 (0.1212) loss_bbox_aux_1: 0.2115 (0.2115) loss_giou_aux_1: 1.7209 (1.7209) loss_fgl_aux_1: 0.4173 (0.4173) loss_ddf_aux_1: 0.0375 (0.0375) loss_vfl_aux_2: 0.1268 (0.1268) loss_bbox_aux_2: 0.2085 (0.2085) loss_giou_aux_2: 1.7171 (1.7171) loss_fgl_aux_2: 0.4154 (0.4154) loss_ddf_aux_2: 0.0040 (0.0040) loss_vfl_aux_3: 0.1243 (0.1243) loss_bbox_aux_3: 0.2080 (0.2080) loss_giou_aux_3: 1.7166 (1.7166) loss_fgl_aux_3: 0.4153 (0.4153) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1207 (0.1207) loss_bbox_aux_4: 0.2079 (0.2079) loss_giou_aux_4: 1.7166 (1.7166) loss_fgl_aux_4: 0.4154 (0.4154) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1212 (0.1212) loss_bbox_pre: 0.2153 (0.2153) loss_giou_pre: 1.7269 (1.7269) loss_vfl_enc_0: 0.1224 (0.1224) loss_bbox_enc_0: 0.2529 (0.2529) loss_giou_enc_0: 1.7670 (1.7670) loss_vfl_dn_0: 0.4097 (0.4097) loss_bbox_dn_0: 0.0380 (0.0380) loss_giou_dn_0: 1.2038 (1.2038) loss_fgl_dn_0: 0.9173 (0.9173) loss_ddf_dn_0: 0.2401 (0.2401) loss_vfl_dn_1: 0.4526 (0.4526) loss_bbox_dn_1: 0.0334 (0.0334) loss_giou_dn_1: 1.1069 (1.1069) loss_fgl_dn_1: 0.9436 (0.9436) loss_ddf_dn_1: 0.0474 (0.0474) loss_vfl_dn_2: 0.4541 (0.4541) loss_bbox_dn_2: 0.0309 (0.0309) loss_giou_dn_2: 1.0928 (1.0928) loss_fgl_dn_2: 0.9429 (0.9429) loss_ddf_dn_2: 0.0029 (0.0029) loss_vfl_dn_3: 0.4470 (0.4470) loss_bbox_dn_3: 0.0306 (0.0306) loss_giou_dn_3: 1.0919 (1.0919) loss_fgl_dn_3: 0.9427 (0.9427) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4443 (0.4443) loss_bbox_dn_4: 0.0304 (0.0304) loss_giou_dn_4: 1.0920 (1.0920) loss_fgl_dn_4: 0.9426 (0.9426) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4473 (0.4473) loss_bbox_dn_5: 0.0304 (0.0304) loss_giou_dn_5: 1.0920 (1.0920) loss_fgl_dn_5: 0.9426 (0.9426) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4077 (0.4077) loss_bbox_dn_pre: 0.0378 (0.0378) loss_giou_dn_pre: 1.2052 (1.2052) time: 1.6195 data: 0.7137 max mem: 29821\n", + "Epoch: [40] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.3385 (37.8836) loss_vfl: 0.1450 (0.1599) loss_bbox: 0.2327 (0.2643) loss_giou: 1.8171 (1.8335) loss_fgl: 0.3802 (0.3993) loss_vfl_aux_0: 0.1503 (0.1647) loss_bbox_aux_0: 0.2407 (0.2684) loss_giou_aux_0: 1.8321 (1.8451) loss_fgl_aux_0: 0.3784 (0.3979) loss_ddf_aux_0: 0.0901 (0.1239) loss_vfl_aux_1: 0.1544 (0.1674) loss_bbox_aux_1: 0.2342 (0.2657) loss_giou_aux_1: 1.8169 (1.8337) loss_fgl_aux_1: 0.3804 (0.3989) loss_ddf_aux_1: 0.0108 (0.0175) loss_vfl_aux_2: 0.1464 (0.1655) loss_bbox_aux_2: 0.2325 (0.2645) loss_giou_aux_2: 1.8163 (1.8334) loss_fgl_aux_2: 0.3801 (0.3992) loss_ddf_aux_2: 0.0015 (0.0031) loss_vfl_aux_3: 0.1481 (0.1626) loss_bbox_aux_3: 0.2326 (0.2643) loss_giou_aux_3: 1.8168 (1.8335) loss_fgl_aux_3: 0.3801 (0.3993) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1453 (0.1603) loss_bbox_aux_4: 0.2327 (0.2643) loss_giou_aux_4: 1.8171 (1.8335) loss_fgl_aux_4: 0.3802 (0.3993) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1462 (0.1620) loss_bbox_pre: 0.2446 (0.2718) loss_giou_pre: 1.8250 (1.8405) loss_vfl_enc_0: 0.1368 (0.1561) loss_bbox_enc_0: 0.2643 (0.2948) loss_giou_enc_0: 1.8475 (1.8849) loss_vfl_dn_0: 0.4248 (0.4162) loss_bbox_dn_0: 0.0449 (0.0473) loss_giou_dn_0: 1.1577 (1.1872) loss_fgl_dn_0: 0.9432 (0.9243) loss_ddf_dn_0: 0.2207 (0.2543) loss_vfl_dn_1: 0.4587 (0.4602) loss_bbox_dn_1: 0.0370 (0.0394) loss_giou_dn_1: 1.0747 (1.0860) loss_fgl_dn_1: 0.9664 (0.9526) loss_ddf_dn_1: 0.0197 (0.0264) loss_vfl_dn_2: 0.4556 (0.4590) loss_bbox_dn_2: 0.0366 (0.0382) loss_giou_dn_2: 1.0742 (1.0770) loss_fgl_dn_2: 0.9665 (0.9549) loss_ddf_dn_2: 0.0021 (0.0028) loss_vfl_dn_3: 0.4531 (0.4556) loss_bbox_dn_3: 0.0366 (0.0380) loss_giou_dn_3: 1.0748 (1.0764) loss_fgl_dn_3: 0.9664 (0.9551) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4536 (0.4545) loss_bbox_dn_4: 0.0365 (0.0380) loss_giou_dn_4: 1.0748 (1.0763) loss_fgl_dn_4: 0.9664 (0.9552) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4556 (0.4547) loss_bbox_dn_5: 0.0365 (0.0380) loss_giou_dn_5: 1.0748 (1.0763) loss_fgl_dn_5: 0.9664 (0.9552) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4236 (0.4149) loss_bbox_dn_pre: 0.0446 (0.0476) loss_giou_dn_pre: 1.1588 (1.1876) time: 0.8735 data: 0.0187 max mem: 29821\n", + "Epoch: [40] Total time: 0:01:12 (0.8689 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.3385 (37.8836) loss_vfl: 0.1450 (0.1599) loss_bbox: 0.2327 (0.2643) loss_giou: 1.8171 (1.8335) loss_fgl: 0.3802 (0.3993) loss_vfl_aux_0: 0.1503 (0.1647) loss_bbox_aux_0: 0.2407 (0.2684) loss_giou_aux_0: 1.8321 (1.8451) loss_fgl_aux_0: 0.3784 (0.3979) loss_ddf_aux_0: 0.0901 (0.1239) loss_vfl_aux_1: 0.1544 (0.1674) loss_bbox_aux_1: 0.2342 (0.2657) loss_giou_aux_1: 1.8169 (1.8337) loss_fgl_aux_1: 0.3804 (0.3989) loss_ddf_aux_1: 0.0108 (0.0175) loss_vfl_aux_2: 0.1464 (0.1655) loss_bbox_aux_2: 0.2325 (0.2645) loss_giou_aux_2: 1.8163 (1.8334) loss_fgl_aux_2: 0.3801 (0.3992) loss_ddf_aux_2: 0.0015 (0.0031) loss_vfl_aux_3: 0.1481 (0.1626) loss_bbox_aux_3: 0.2326 (0.2643) loss_giou_aux_3: 1.8168 (1.8335) loss_fgl_aux_3: 0.3801 (0.3993) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1453 (0.1603) loss_bbox_aux_4: 0.2327 (0.2643) loss_giou_aux_4: 1.8171 (1.8335) loss_fgl_aux_4: 0.3802 (0.3993) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1462 (0.1620) loss_bbox_pre: 0.2446 (0.2718) loss_giou_pre: 1.8250 (1.8405) loss_vfl_enc_0: 0.1368 (0.1561) loss_bbox_enc_0: 0.2643 (0.2948) loss_giou_enc_0: 1.8475 (1.8849) loss_vfl_dn_0: 0.4248 (0.4162) loss_bbox_dn_0: 0.0449 (0.0473) loss_giou_dn_0: 1.1577 (1.1872) loss_fgl_dn_0: 0.9432 (0.9243) loss_ddf_dn_0: 0.2207 (0.2543) loss_vfl_dn_1: 0.4587 (0.4602) loss_bbox_dn_1: 0.0370 (0.0394) loss_giou_dn_1: 1.0747 (1.0860) loss_fgl_dn_1: 0.9664 (0.9526) loss_ddf_dn_1: 0.0197 (0.0264) loss_vfl_dn_2: 0.4556 (0.4590) loss_bbox_dn_2: 0.0366 (0.0382) loss_giou_dn_2: 1.0742 (1.0770) loss_fgl_dn_2: 0.9665 (0.9549) loss_ddf_dn_2: 0.0021 (0.0028) loss_vfl_dn_3: 0.4531 (0.4556) loss_bbox_dn_3: 0.0366 (0.0380) loss_giou_dn_3: 1.0748 (1.0764) loss_fgl_dn_3: 0.9664 (0.9551) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4536 (0.4545) loss_bbox_dn_4: 0.0365 (0.0380) loss_giou_dn_4: 1.0748 (1.0763) loss_fgl_dn_4: 0.9664 (0.9552) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4556 (0.4547) loss_bbox_dn_5: 0.0365 (0.0380) loss_giou_dn_5: 1.0748 (1.0763) loss_fgl_dn_5: 0.9664 (0.9552) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4236 (0.4149) loss_bbox_dn_pre: 0.0446 (0.0476) loss_giou_dn_pre: 1.1588 (1.1876)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7548 data: 0.5058 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4028 data: 0.1713 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4190 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.032\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.084\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.016\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.030\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.177\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.430\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.019\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.068\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.083\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.083\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.283\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.675\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.177\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.043\n", + "best_stat: {'epoch': 35, 'coco_eval_bbox': 0.03588876627707357}\n", + "Epoch: [41] [ 0/84] eta: 0:02:32 lr: 0.000013 loss: 37.6367 (37.6367) loss_vfl: 0.1694 (0.1694) loss_bbox: 0.2280 (0.2280) loss_giou: 1.8182 (1.8182) loss_fgl: 0.4318 (0.4318) loss_vfl_aux_0: 0.1703 (0.1703) loss_bbox_aux_0: 0.2289 (0.2289) loss_giou_aux_0: 1.8395 (1.8395) loss_fgl_aux_0: 0.4336 (0.4336) loss_ddf_aux_0: 0.1077 (0.1077) loss_vfl_aux_1: 0.1738 (0.1738) loss_bbox_aux_1: 0.2296 (0.2296) loss_giou_aux_1: 1.8204 (1.8204) loss_fgl_aux_1: 0.4323 (0.4323) loss_ddf_aux_1: 0.0119 (0.0119) loss_vfl_aux_2: 0.1768 (0.1768) loss_bbox_aux_2: 0.2283 (0.2283) loss_giou_aux_2: 1.8189 (1.8189) loss_fgl_aux_2: 0.4323 (0.4323) loss_ddf_aux_2: 0.0019 (0.0019) loss_vfl_aux_3: 0.1700 (0.1700) loss_bbox_aux_3: 0.2279 (0.2279) loss_giou_aux_3: 1.8185 (1.8185) loss_fgl_aux_3: 0.4320 (0.4320) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1677 (0.1677) loss_bbox_aux_4: 0.2280 (0.2280) loss_giou_aux_4: 1.8183 (1.8183) loss_fgl_aux_4: 0.4318 (0.4318) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1667 (0.1667) loss_bbox_pre: 0.2330 (0.2330) loss_giou_pre: 1.8314 (1.8314) loss_vfl_enc_0: 0.1654 (0.1654) loss_bbox_enc_0: 0.2600 (0.2600) loss_giou_enc_0: 1.8589 (1.8589) loss_vfl_dn_0: 0.4351 (0.4351) loss_bbox_dn_0: 0.0437 (0.0437) loss_giou_dn_0: 1.1567 (1.1567) loss_fgl_dn_0: 0.9472 (0.9472) loss_ddf_dn_0: 0.2043 (0.2043) loss_vfl_dn_1: 0.4705 (0.4705) loss_bbox_dn_1: 0.0353 (0.0353) loss_giou_dn_1: 1.0601 (1.0601) loss_fgl_dn_1: 0.9676 (0.9676) loss_ddf_dn_1: 0.0188 (0.0188) loss_vfl_dn_2: 0.4744 (0.4744) loss_bbox_dn_2: 0.0342 (0.0342) loss_giou_dn_2: 1.0512 (1.0512) loss_fgl_dn_2: 0.9700 (0.9700) loss_ddf_dn_2: 0.0016 (0.0016) loss_vfl_dn_3: 0.4675 (0.4675) loss_bbox_dn_3: 0.0340 (0.0340) loss_giou_dn_3: 1.0513 (1.0513) loss_fgl_dn_3: 0.9698 (0.9698) loss_ddf_dn_3: 0.0002 (0.0002) loss_vfl_dn_4: 0.4666 (0.4666) loss_bbox_dn_4: 0.0339 (0.0339) loss_giou_dn_4: 1.0512 (1.0512) loss_fgl_dn_4: 0.9698 (0.9698) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4697 (0.4697) loss_bbox_dn_5: 0.0339 (0.0339) loss_giou_dn_5: 1.0512 (1.0512) loss_fgl_dn_5: 0.9699 (0.9699) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4343 (0.4343) loss_bbox_dn_pre: 0.0440 (0.0440) loss_giou_dn_pre: 1.1551 (1.1551) time: 1.8150 data: 0.8592 max mem: 29821\n", + "Epoch: [41] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.8089 (37.9732) loss_vfl: 0.1678 (0.1675) loss_bbox: 0.2708 (0.2743) loss_giou: 1.8430 (1.8114) loss_fgl: 0.4157 (0.4098) loss_vfl_aux_0: 0.1649 (0.1736) loss_bbox_aux_0: 0.2760 (0.2789) loss_giou_aux_0: 1.8522 (1.8247) loss_fgl_aux_0: 0.4141 (0.4096) loss_ddf_aux_0: 0.1358 (0.1382) loss_vfl_aux_1: 0.1681 (0.1756) loss_bbox_aux_1: 0.2713 (0.2749) loss_giou_aux_1: 1.8454 (1.8128) loss_fgl_aux_1: 0.4163 (0.4098) loss_ddf_aux_1: 0.0150 (0.0189) loss_vfl_aux_2: 0.1722 (0.1737) loss_bbox_aux_2: 0.2713 (0.2744) loss_giou_aux_2: 1.8432 (1.8116) loss_fgl_aux_2: 0.4158 (0.4097) loss_ddf_aux_2: 0.0020 (0.0027) loss_vfl_aux_3: 0.1696 (0.1701) loss_bbox_aux_3: 0.2709 (0.2742) loss_giou_aux_3: 1.8430 (1.8116) loss_fgl_aux_3: 0.4159 (0.4098) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1672 (0.1677) loss_bbox_aux_4: 0.2708 (0.2743) loss_giou_aux_4: 1.8429 (1.8114) loss_fgl_aux_4: 0.4157 (0.4098) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1616 (0.1707) loss_bbox_pre: 0.2814 (0.2826) loss_giou_pre: 1.8449 (1.8199) loss_vfl_enc_0: 0.1693 (0.1669) loss_bbox_enc_0: 0.2926 (0.3065) loss_giou_enc_0: 1.8896 (1.8676) loss_vfl_dn_0: 0.4077 (0.4213) loss_bbox_dn_0: 0.0507 (0.0512) loss_giou_dn_0: 1.2014 (1.1769) loss_fgl_dn_0: 0.9103 (0.9310) loss_ddf_dn_0: 0.2817 (0.2817) loss_vfl_dn_1: 0.4583 (0.4630) loss_bbox_dn_1: 0.0406 (0.0417) loss_giou_dn_1: 1.0782 (1.0741) loss_fgl_dn_1: 0.9442 (0.9591) loss_ddf_dn_1: 0.0307 (0.0279) loss_vfl_dn_2: 0.4568 (0.4621) loss_bbox_dn_2: 0.0383 (0.0403) loss_giou_dn_2: 1.0702 (1.0639) loss_fgl_dn_2: 0.9496 (0.9617) loss_ddf_dn_2: 0.0022 (0.0024) loss_vfl_dn_3: 0.4519 (0.4588) loss_bbox_dn_3: 0.0382 (0.0401) loss_giou_dn_3: 1.0695 (1.0633) loss_fgl_dn_3: 0.9501 (0.9619) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4514 (0.4576) loss_bbox_dn_4: 0.0382 (0.0401) loss_giou_dn_4: 1.0693 (1.0632) loss_fgl_dn_4: 0.9504 (0.9619) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4512 (0.4579) loss_bbox_dn_5: 0.0382 (0.0401) loss_giou_dn_5: 1.0694 (1.0632) loss_fgl_dn_5: 0.9504 (0.9620) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4062 (0.4197) loss_bbox_dn_pre: 0.0499 (0.0515) loss_giou_dn_pre: 1.2028 (1.1777) time: 0.8357 data: 0.0177 max mem: 29821\n", + "Epoch: [41] Total time: 0:01:11 (0.8555 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.8089 (37.9732) loss_vfl: 0.1678 (0.1675) loss_bbox: 0.2708 (0.2743) loss_giou: 1.8430 (1.8114) loss_fgl: 0.4157 (0.4098) loss_vfl_aux_0: 0.1649 (0.1736) loss_bbox_aux_0: 0.2760 (0.2789) loss_giou_aux_0: 1.8522 (1.8247) loss_fgl_aux_0: 0.4141 (0.4096) loss_ddf_aux_0: 0.1358 (0.1382) loss_vfl_aux_1: 0.1681 (0.1756) loss_bbox_aux_1: 0.2713 (0.2749) loss_giou_aux_1: 1.8454 (1.8128) loss_fgl_aux_1: 0.4163 (0.4098) loss_ddf_aux_1: 0.0150 (0.0189) loss_vfl_aux_2: 0.1722 (0.1737) loss_bbox_aux_2: 0.2713 (0.2744) loss_giou_aux_2: 1.8432 (1.8116) loss_fgl_aux_2: 0.4158 (0.4097) loss_ddf_aux_2: 0.0020 (0.0027) loss_vfl_aux_3: 0.1696 (0.1701) loss_bbox_aux_3: 0.2709 (0.2742) loss_giou_aux_3: 1.8430 (1.8116) loss_fgl_aux_3: 0.4159 (0.4098) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1672 (0.1677) loss_bbox_aux_4: 0.2708 (0.2743) loss_giou_aux_4: 1.8429 (1.8114) loss_fgl_aux_4: 0.4157 (0.4098) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1616 (0.1707) loss_bbox_pre: 0.2814 (0.2826) loss_giou_pre: 1.8449 (1.8199) loss_vfl_enc_0: 0.1693 (0.1669) loss_bbox_enc_0: 0.2926 (0.3065) loss_giou_enc_0: 1.8896 (1.8676) loss_vfl_dn_0: 0.4077 (0.4213) loss_bbox_dn_0: 0.0507 (0.0512) loss_giou_dn_0: 1.2014 (1.1769) loss_fgl_dn_0: 0.9103 (0.9310) loss_ddf_dn_0: 0.2817 (0.2817) loss_vfl_dn_1: 0.4583 (0.4630) loss_bbox_dn_1: 0.0406 (0.0417) loss_giou_dn_1: 1.0782 (1.0741) loss_fgl_dn_1: 0.9442 (0.9591) loss_ddf_dn_1: 0.0307 (0.0279) loss_vfl_dn_2: 0.4568 (0.4621) loss_bbox_dn_2: 0.0383 (0.0403) loss_giou_dn_2: 1.0702 (1.0639) loss_fgl_dn_2: 0.9496 (0.9617) loss_ddf_dn_2: 0.0022 (0.0024) loss_vfl_dn_3: 0.4519 (0.4588) loss_bbox_dn_3: 0.0382 (0.0401) loss_giou_dn_3: 1.0695 (1.0633) loss_fgl_dn_3: 0.9501 (0.9619) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4514 (0.4576) loss_bbox_dn_4: 0.0382 (0.0401) loss_giou_dn_4: 1.0693 (1.0632) loss_fgl_dn_4: 0.9504 (0.9619) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4512 (0.4579) loss_bbox_dn_5: 0.0382 (0.0401) loss_giou_dn_5: 1.0694 (1.0632) loss_fgl_dn_5: 0.9504 (0.9620) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4062 (0.4197) loss_bbox_dn_pre: 0.0499 (0.0515) loss_giou_dn_pre: 1.2028 (1.1777)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7494 data: 0.5039 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4001 data: 0.1710 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4151 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.032\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.085\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.017\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.032\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.194\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.305\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.009\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.065\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.082\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.079\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.338\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.300\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.177\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.039\n", + "best_stat: {'epoch': 35, 'coco_eval_bbox': 0.03588876627707357}\n", + "Epoch: [42] [ 0/84] eta: 0:02:24 lr: 0.000013 loss: 38.5971 (38.5971) loss_vfl: 0.1663 (0.1663) loss_bbox: 0.3126 (0.3126) loss_giou: 1.8128 (1.8128) loss_fgl: 0.4667 (0.4667) loss_vfl_aux_0: 0.1700 (0.1700) loss_bbox_aux_0: 0.3204 (0.3204) loss_giou_aux_0: 1.8123 (1.8123) loss_fgl_aux_0: 0.4647 (0.4647) loss_ddf_aux_0: 0.1230 (0.1230) loss_vfl_aux_1: 0.1774 (0.1774) loss_bbox_aux_1: 0.3129 (0.3129) loss_giou_aux_1: 1.8134 (1.8134) loss_fgl_aux_1: 0.4669 (0.4669) loss_ddf_aux_1: 0.0132 (0.0132) loss_vfl_aux_2: 0.1700 (0.1700) loss_bbox_aux_2: 0.3128 (0.3128) loss_giou_aux_2: 1.8131 (1.8131) loss_fgl_aux_2: 0.4670 (0.4670) loss_ddf_aux_2: 0.0019 (0.0019) loss_vfl_aux_3: 0.1642 (0.1642) loss_bbox_aux_3: 0.3127 (0.3127) loss_giou_aux_3: 1.8131 (1.8131) loss_fgl_aux_3: 0.4667 (0.4667) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1655 (0.1655) loss_bbox_aux_4: 0.3126 (0.3126) loss_giou_aux_4: 1.8129 (1.8129) loss_fgl_aux_4: 0.4667 (0.4667) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1666 (0.1666) loss_bbox_pre: 0.3273 (0.3273) loss_giou_pre: 1.8075 (1.8075) loss_vfl_enc_0: 0.1722 (0.1722) loss_bbox_enc_0: 0.3655 (0.3655) loss_giou_enc_0: 1.8643 (1.8643) loss_vfl_dn_0: 0.4050 (0.4050) loss_bbox_dn_0: 0.0579 (0.0579) loss_giou_dn_0: 1.1785 (1.1785) loss_fgl_dn_0: 0.9157 (0.9157) loss_ddf_dn_0: 0.4213 (0.4213) loss_vfl_dn_1: 0.4651 (0.4651) loss_bbox_dn_1: 0.0427 (0.0427) loss_giou_dn_1: 1.0491 (1.0491) loss_fgl_dn_1: 0.9569 (0.9569) loss_ddf_dn_1: 0.0265 (0.0265) loss_vfl_dn_2: 0.4644 (0.4644) loss_bbox_dn_2: 0.0420 (0.0420) loss_giou_dn_2: 1.0347 (1.0347) loss_fgl_dn_2: 0.9633 (0.9633) loss_ddf_dn_2: 0.0021 (0.0021) loss_vfl_dn_3: 0.4668 (0.4668) loss_bbox_dn_3: 0.0420 (0.0420) loss_giou_dn_3: 1.0339 (1.0339) loss_fgl_dn_3: 0.9637 (0.9637) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4680 (0.4680) loss_bbox_dn_4: 0.0421 (0.0421) loss_giou_dn_4: 1.0337 (1.0337) loss_fgl_dn_4: 0.9638 (0.9638) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4653 (0.4653) loss_bbox_dn_5: 0.0421 (0.0421) loss_giou_dn_5: 1.0336 (1.0336) loss_fgl_dn_5: 0.9638 (0.9638) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4070 (0.4070) loss_bbox_dn_pre: 0.0575 (0.0575) loss_giou_dn_pre: 1.1728 (1.1728) time: 1.7175 data: 0.8179 max mem: 29821\n", + "Epoch: [42] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.4431 (38.0899) loss_vfl: 0.1576 (0.1752) loss_bbox: 0.2463 (0.2700) loss_giou: 1.7460 (1.8147) loss_fgl: 0.4281 (0.4191) loss_vfl_aux_0: 0.1637 (0.1808) loss_bbox_aux_0: 0.2536 (0.2757) loss_giou_aux_0: 1.7563 (1.8282) loss_fgl_aux_0: 0.4263 (0.4182) loss_ddf_aux_0: 0.1427 (0.1424) loss_vfl_aux_1: 0.1671 (0.1835) loss_bbox_aux_1: 0.2477 (0.2713) loss_giou_aux_1: 1.7461 (1.8160) loss_fgl_aux_1: 0.4281 (0.4191) loss_ddf_aux_1: 0.0160 (0.0222) loss_vfl_aux_2: 0.1642 (0.1810) loss_bbox_aux_2: 0.2459 (0.2704) loss_giou_aux_2: 1.7459 (1.8146) loss_fgl_aux_2: 0.4279 (0.4189) loss_ddf_aux_2: 0.0022 (0.0036) loss_vfl_aux_3: 0.1616 (0.1774) loss_bbox_aux_3: 0.2461 (0.2700) loss_giou_aux_3: 1.7463 (1.8147) loss_fgl_aux_3: 0.4281 (0.4190) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1581 (0.1753) loss_bbox_aux_4: 0.2462 (0.2700) loss_giou_aux_4: 1.7461 (1.8147) loss_fgl_aux_4: 0.4281 (0.4191) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1616 (0.1781) loss_bbox_pre: 0.2563 (0.2789) loss_giou_pre: 1.7524 (1.8238) loss_vfl_enc_0: 0.1592 (0.1720) loss_bbox_enc_0: 0.2757 (0.3047) loss_giou_enc_0: 1.7820 (1.8696) loss_vfl_dn_0: 0.4302 (0.4240) loss_bbox_dn_0: 0.0471 (0.0506) loss_giou_dn_0: 1.1472 (1.1664) loss_fgl_dn_0: 0.9447 (0.9371) loss_ddf_dn_0: 0.2690 (0.2739) loss_vfl_dn_1: 0.4700 (0.4627) loss_bbox_dn_1: 0.0381 (0.0418) loss_giou_dn_1: 1.0636 (1.0754) loss_fgl_dn_1: 0.9648 (0.9613) loss_ddf_dn_1: 0.0314 (0.0336) loss_vfl_dn_2: 0.4644 (0.4611) loss_bbox_dn_2: 0.0372 (0.0404) loss_giou_dn_2: 1.0548 (1.0636) loss_fgl_dn_2: 0.9664 (0.9651) loss_ddf_dn_2: 0.0027 (0.0035) loss_vfl_dn_3: 0.4570 (0.4577) loss_bbox_dn_3: 0.0370 (0.0401) loss_giou_dn_3: 1.0541 (1.0628) loss_fgl_dn_3: 0.9666 (0.9654) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4568 (0.4568) loss_bbox_dn_4: 0.0370 (0.0401) loss_giou_dn_4: 1.0539 (1.0627) loss_fgl_dn_4: 0.9666 (0.9654) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4580 (0.4571) loss_bbox_dn_5: 0.0370 (0.0401) loss_giou_dn_5: 1.0539 (1.0627) loss_fgl_dn_5: 0.9666 (0.9654) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4302 (0.4227) loss_bbox_dn_pre: 0.0471 (0.0508) loss_giou_dn_pre: 1.1461 (1.1665) time: 0.8618 data: 0.0169 max mem: 29821\n", + "Epoch: [42] Total time: 0:01:11 (0.8531 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.4431 (38.0899) loss_vfl: 0.1576 (0.1752) loss_bbox: 0.2463 (0.2700) loss_giou: 1.7460 (1.8147) loss_fgl: 0.4281 (0.4191) loss_vfl_aux_0: 0.1637 (0.1808) loss_bbox_aux_0: 0.2536 (0.2757) loss_giou_aux_0: 1.7563 (1.8282) loss_fgl_aux_0: 0.4263 (0.4182) loss_ddf_aux_0: 0.1427 (0.1424) loss_vfl_aux_1: 0.1671 (0.1835) loss_bbox_aux_1: 0.2477 (0.2713) loss_giou_aux_1: 1.7461 (1.8160) loss_fgl_aux_1: 0.4281 (0.4191) loss_ddf_aux_1: 0.0160 (0.0222) loss_vfl_aux_2: 0.1642 (0.1810) loss_bbox_aux_2: 0.2459 (0.2704) loss_giou_aux_2: 1.7459 (1.8146) loss_fgl_aux_2: 0.4279 (0.4189) loss_ddf_aux_2: 0.0022 (0.0036) loss_vfl_aux_3: 0.1616 (0.1774) loss_bbox_aux_3: 0.2461 (0.2700) loss_giou_aux_3: 1.7463 (1.8147) loss_fgl_aux_3: 0.4281 (0.4190) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1581 (0.1753) loss_bbox_aux_4: 0.2462 (0.2700) loss_giou_aux_4: 1.7461 (1.8147) loss_fgl_aux_4: 0.4281 (0.4191) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1616 (0.1781) loss_bbox_pre: 0.2563 (0.2789) loss_giou_pre: 1.7524 (1.8238) loss_vfl_enc_0: 0.1592 (0.1720) loss_bbox_enc_0: 0.2757 (0.3047) loss_giou_enc_0: 1.7820 (1.8696) loss_vfl_dn_0: 0.4302 (0.4240) loss_bbox_dn_0: 0.0471 (0.0506) loss_giou_dn_0: 1.1472 (1.1664) loss_fgl_dn_0: 0.9447 (0.9371) loss_ddf_dn_0: 0.2690 (0.2739) loss_vfl_dn_1: 0.4700 (0.4627) loss_bbox_dn_1: 0.0381 (0.0418) loss_giou_dn_1: 1.0636 (1.0754) loss_fgl_dn_1: 0.9648 (0.9613) loss_ddf_dn_1: 0.0314 (0.0336) loss_vfl_dn_2: 0.4644 (0.4611) loss_bbox_dn_2: 0.0372 (0.0404) loss_giou_dn_2: 1.0548 (1.0636) loss_fgl_dn_2: 0.9664 (0.9651) loss_ddf_dn_2: 0.0027 (0.0035) loss_vfl_dn_3: 0.4570 (0.4577) loss_bbox_dn_3: 0.0370 (0.0401) loss_giou_dn_3: 1.0541 (1.0628) loss_fgl_dn_3: 0.9666 (0.9654) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4568 (0.4568) loss_bbox_dn_4: 0.0370 (0.0401) loss_giou_dn_4: 1.0539 (1.0627) loss_fgl_dn_4: 0.9666 (0.9654) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4580 (0.4571) loss_bbox_dn_5: 0.0370 (0.0401) loss_giou_dn_5: 1.0539 (1.0627) loss_fgl_dn_5: 0.9666 (0.9654) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4302 (0.4227) loss_bbox_dn_pre: 0.0471 (0.0508) loss_giou_dn_pre: 1.1461 (1.1665)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7596 data: 0.5111 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4014 data: 0.1706 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4168 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.037\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.087\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.019\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.032\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.205\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.643\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.009\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.071\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.089\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.085\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.309\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.700\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.186\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.049\n", + "best_stat: {'epoch': 42, 'coco_eval_bbox': 0.0368201782041263}\n", + "Epoch: [43] [ 0/84] eta: 0:02:25 lr: 0.000013 loss: 37.4087 (37.4087) loss_vfl: 0.1477 (0.1477) loss_bbox: 0.2415 (0.2415) loss_giou: 1.8105 (1.8105) loss_fgl: 0.4225 (0.4225) loss_vfl_aux_0: 0.1525 (0.1525) loss_bbox_aux_0: 0.2448 (0.2448) loss_giou_aux_0: 1.8235 (1.8235) loss_fgl_aux_0: 0.4266 (0.4266) loss_ddf_aux_0: 0.0838 (0.0838) loss_vfl_aux_1: 0.1533 (0.1533) loss_bbox_aux_1: 0.2426 (0.2426) loss_giou_aux_1: 1.8109 (1.8109) loss_fgl_aux_1: 0.4224 (0.4224) loss_ddf_aux_1: 0.0094 (0.0094) loss_vfl_aux_2: 0.1511 (0.1511) loss_bbox_aux_2: 0.2416 (0.2416) loss_giou_aux_2: 1.8102 (1.8102) loss_fgl_aux_2: 0.4224 (0.4224) loss_ddf_aux_2: 0.0009 (0.0009) loss_vfl_aux_3: 0.1487 (0.1487) loss_bbox_aux_3: 0.2414 (0.2414) loss_giou_aux_3: 1.8105 (1.8105) loss_fgl_aux_3: 0.4226 (0.4226) loss_ddf_aux_3: 0.0001 (0.0001) loss_vfl_aux_4: 0.1482 (0.1482) loss_bbox_aux_4: 0.2415 (0.2415) loss_giou_aux_4: 1.8105 (1.8105) loss_fgl_aux_4: 0.4225 (0.4225) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1503 (0.1503) loss_bbox_pre: 0.2496 (0.2496) loss_giou_pre: 1.8170 (1.8170) loss_vfl_enc_0: 0.1534 (0.1534) loss_bbox_enc_0: 0.2637 (0.2637) loss_giou_enc_0: 1.8564 (1.8564) loss_vfl_dn_0: 0.4321 (0.4321) loss_bbox_dn_0: 0.0458 (0.0458) loss_giou_dn_0: 1.1459 (1.1459) loss_fgl_dn_0: 0.9485 (0.9485) loss_ddf_dn_0: 0.2141 (0.2141) loss_vfl_dn_1: 0.4661 (0.4661) loss_bbox_dn_1: 0.0369 (0.0369) loss_giou_dn_1: 1.0651 (1.0651) loss_fgl_dn_1: 0.9690 (0.9690) loss_ddf_dn_1: 0.0210 (0.0210) loss_vfl_dn_2: 0.4548 (0.4548) loss_bbox_dn_2: 0.0366 (0.0366) loss_giou_dn_2: 1.0617 (1.0617) loss_fgl_dn_2: 0.9679 (0.9679) loss_ddf_dn_2: 0.0015 (0.0015) loss_vfl_dn_3: 0.4536 (0.4536) loss_bbox_dn_3: 0.0365 (0.0365) loss_giou_dn_3: 1.0615 (1.0615) loss_fgl_dn_3: 0.9680 (0.9680) loss_ddf_dn_3: 0.0002 (0.0002) loss_vfl_dn_4: 0.4543 (0.4543) loss_bbox_dn_4: 0.0365 (0.0365) loss_giou_dn_4: 1.0614 (1.0614) loss_fgl_dn_4: 0.9680 (0.9680) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4561 (0.4561) loss_bbox_dn_5: 0.0365 (0.0365) loss_giou_dn_5: 1.0615 (1.0615) loss_fgl_dn_5: 0.9680 (0.9680) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4309 (0.4309) loss_bbox_dn_pre: 0.0460 (0.0460) loss_giou_dn_pre: 1.1477 (1.1477) time: 1.7349 data: 0.8896 max mem: 29821\n", + "Epoch: [43] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.3870 (37.8411) loss_vfl: 0.1799 (0.1693) loss_bbox: 0.2417 (0.2692) loss_giou: 1.7585 (1.8011) loss_fgl: 0.4038 (0.4132) loss_vfl_aux_0: 0.1854 (0.1737) loss_bbox_aux_0: 0.2505 (0.2739) loss_giou_aux_0: 1.7968 (1.8148) loss_fgl_aux_0: 0.4057 (0.4132) loss_ddf_aux_0: 0.1202 (0.1411) loss_vfl_aux_1: 0.1868 (0.1759) loss_bbox_aux_1: 0.2419 (0.2703) loss_giou_aux_1: 1.7620 (1.8021) loss_fgl_aux_1: 0.4036 (0.4132) loss_ddf_aux_1: 0.0125 (0.0179) loss_vfl_aux_2: 0.1832 (0.1753) loss_bbox_aux_2: 0.2414 (0.2693) loss_giou_aux_2: 1.7599 (1.8013) loss_fgl_aux_2: 0.4037 (0.4132) loss_ddf_aux_2: 0.0018 (0.0028) loss_vfl_aux_3: 0.1823 (0.1715) loss_bbox_aux_3: 0.2415 (0.2690) loss_giou_aux_3: 1.7592 (1.8013) loss_fgl_aux_3: 0.4037 (0.4132) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1807 (0.1696) loss_bbox_aux_4: 0.2416 (0.2691) loss_giou_aux_4: 1.7586 (1.8011) loss_fgl_aux_4: 0.4038 (0.4132) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1846 (0.1713) loss_bbox_pre: 0.2507 (0.2775) loss_giou_pre: 1.7918 (1.8102) loss_vfl_enc_0: 0.1759 (0.1659) loss_bbox_enc_0: 0.2858 (0.3024) loss_giou_enc_0: 1.8478 (1.8570) loss_vfl_dn_0: 0.4250 (0.4219) loss_bbox_dn_0: 0.0470 (0.0505) loss_giou_dn_0: 1.1609 (1.1689) loss_fgl_dn_0: 0.9463 (0.9339) loss_ddf_dn_0: 0.2713 (0.2826) loss_vfl_dn_1: 0.4683 (0.4654) loss_bbox_dn_1: 0.0396 (0.0404) loss_giou_dn_1: 1.0420 (1.0643) loss_fgl_dn_1: 0.9698 (0.9633) loss_ddf_dn_1: 0.0277 (0.0273) loss_vfl_dn_2: 0.4683 (0.4619) loss_bbox_dn_2: 0.0387 (0.0392) loss_giou_dn_2: 1.0340 (1.0554) loss_fgl_dn_2: 0.9727 (0.9650) loss_ddf_dn_2: 0.0027 (0.0028) loss_vfl_dn_3: 0.4639 (0.4594) loss_bbox_dn_3: 0.0385 (0.0389) loss_giou_dn_3: 1.0331 (1.0547) loss_fgl_dn_3: 0.9730 (0.9652) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4619 (0.4590) loss_bbox_dn_4: 0.0385 (0.0389) loss_giou_dn_4: 1.0332 (1.0546) loss_fgl_dn_4: 0.9732 (0.9653) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4646 (0.4589) loss_bbox_dn_5: 0.0386 (0.0389) loss_giou_dn_5: 1.0332 (1.0546) loss_fgl_dn_5: 0.9732 (0.9653) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4233 (0.4204) loss_bbox_dn_pre: 0.0473 (0.0508) loss_giou_dn_pre: 1.1614 (1.1696) time: 0.8327 data: 0.0175 max mem: 29821\n", + "Epoch: [43] Total time: 0:01:12 (0.8616 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.3870 (37.8411) loss_vfl: 0.1799 (0.1693) loss_bbox: 0.2417 (0.2692) loss_giou: 1.7585 (1.8011) loss_fgl: 0.4038 (0.4132) loss_vfl_aux_0: 0.1854 (0.1737) loss_bbox_aux_0: 0.2505 (0.2739) loss_giou_aux_0: 1.7968 (1.8148) loss_fgl_aux_0: 0.4057 (0.4132) loss_ddf_aux_0: 0.1202 (0.1411) loss_vfl_aux_1: 0.1868 (0.1759) loss_bbox_aux_1: 0.2419 (0.2703) loss_giou_aux_1: 1.7620 (1.8021) loss_fgl_aux_1: 0.4036 (0.4132) loss_ddf_aux_1: 0.0125 (0.0179) loss_vfl_aux_2: 0.1832 (0.1753) loss_bbox_aux_2: 0.2414 (0.2693) loss_giou_aux_2: 1.7599 (1.8013) loss_fgl_aux_2: 0.4037 (0.4132) loss_ddf_aux_2: 0.0018 (0.0028) loss_vfl_aux_3: 0.1823 (0.1715) loss_bbox_aux_3: 0.2415 (0.2690) loss_giou_aux_3: 1.7592 (1.8013) loss_fgl_aux_3: 0.4037 (0.4132) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1807 (0.1696) loss_bbox_aux_4: 0.2416 (0.2691) loss_giou_aux_4: 1.7586 (1.8011) loss_fgl_aux_4: 0.4038 (0.4132) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1846 (0.1713) loss_bbox_pre: 0.2507 (0.2775) loss_giou_pre: 1.7918 (1.8102) loss_vfl_enc_0: 0.1759 (0.1659) loss_bbox_enc_0: 0.2858 (0.3024) loss_giou_enc_0: 1.8478 (1.8570) loss_vfl_dn_0: 0.4250 (0.4219) loss_bbox_dn_0: 0.0470 (0.0505) loss_giou_dn_0: 1.1609 (1.1689) loss_fgl_dn_0: 0.9463 (0.9339) loss_ddf_dn_0: 0.2713 (0.2826) loss_vfl_dn_1: 0.4683 (0.4654) loss_bbox_dn_1: 0.0396 (0.0404) loss_giou_dn_1: 1.0420 (1.0643) loss_fgl_dn_1: 0.9698 (0.9633) loss_ddf_dn_1: 0.0277 (0.0273) loss_vfl_dn_2: 0.4683 (0.4619) loss_bbox_dn_2: 0.0387 (0.0392) loss_giou_dn_2: 1.0340 (1.0554) loss_fgl_dn_2: 0.9727 (0.9650) loss_ddf_dn_2: 0.0027 (0.0028) loss_vfl_dn_3: 0.4639 (0.4594) loss_bbox_dn_3: 0.0385 (0.0389) loss_giou_dn_3: 1.0331 (1.0547) loss_fgl_dn_3: 0.9730 (0.9652) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4619 (0.4590) loss_bbox_dn_4: 0.0385 (0.0389) loss_giou_dn_4: 1.0332 (1.0546) loss_fgl_dn_4: 0.9732 (0.9653) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4646 (0.4589) loss_bbox_dn_5: 0.0386 (0.0389) loss_giou_dn_5: 1.0332 (1.0546) loss_fgl_dn_5: 0.9732 (0.9653) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4233 (0.4204) loss_bbox_dn_pre: 0.0473 (0.0508) loss_giou_dn_pre: 1.1614 (1.1696)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7480 data: 0.4980 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.5383 data: 0.1675 max mem: 29821\n", + "Test: Total time: 0:00:02 (0.5560 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.037\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.090\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.019\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.034\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.187\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.552\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.008\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.070\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.088\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.084\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.287\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.725\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.180\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.066\n", + "best_stat: {'epoch': 42, 'coco_eval_bbox': 0.0368201782041263}\n", + "Epoch: [44] [ 0/84] eta: 0:02:25 lr: 0.000013 loss: 36.8697 (36.8697) loss_vfl: 0.1870 (0.1870) loss_bbox: 0.2219 (0.2219) loss_giou: 1.6968 (1.6968) loss_fgl: 0.4324 (0.4324) loss_vfl_aux_0: 0.1941 (0.1941) loss_bbox_aux_0: 0.2321 (0.2321) loss_giou_aux_0: 1.6935 (1.6935) loss_fgl_aux_0: 0.4336 (0.4336) loss_ddf_aux_0: 0.2410 (0.2410) loss_vfl_aux_1: 0.1941 (0.1941) loss_bbox_aux_1: 0.2235 (0.2235) loss_giou_aux_1: 1.6972 (1.6972) loss_fgl_aux_1: 0.4325 (0.4325) loss_ddf_aux_1: 0.0251 (0.0251) loss_vfl_aux_2: 0.1888 (0.1888) loss_bbox_aux_2: 0.2223 (0.2223) loss_giou_aux_2: 1.6971 (1.6971) loss_fgl_aux_2: 0.4324 (0.4324) loss_ddf_aux_2: 0.0043 (0.0043) loss_vfl_aux_3: 0.1871 (0.1871) loss_bbox_aux_3: 0.2218 (0.2218) loss_giou_aux_3: 1.6969 (1.6969) loss_fgl_aux_3: 0.4325 (0.4325) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1854 (0.1854) loss_bbox_aux_4: 0.2218 (0.2218) loss_giou_aux_4: 1.6969 (1.6969) loss_fgl_aux_4: 0.4325 (0.4325) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1917 (0.1917) loss_bbox_pre: 0.2357 (0.2357) loss_giou_pre: 1.6915 (1.6915) loss_vfl_enc_0: 0.1946 (0.1946) loss_bbox_enc_0: 0.2447 (0.2447) loss_giou_enc_0: 1.7416 (1.7416) loss_vfl_dn_0: 0.4414 (0.4414) loss_bbox_dn_0: 0.0447 (0.0447) loss_giou_dn_0: 1.1110 (1.1110) loss_fgl_dn_0: 0.9627 (0.9627) loss_ddf_dn_0: 0.2703 (0.2703) loss_vfl_dn_1: 0.4680 (0.4680) loss_bbox_dn_1: 0.0367 (0.0367) loss_giou_dn_1: 1.0365 (1.0365) loss_fgl_dn_1: 0.9795 (0.9795) loss_ddf_dn_1: 0.0186 (0.0186) loss_vfl_dn_2: 0.4714 (0.4714) loss_bbox_dn_2: 0.0356 (0.0356) loss_giou_dn_2: 1.0252 (1.0252) loss_fgl_dn_2: 0.9831 (0.9831) loss_ddf_dn_2: 0.0021 (0.0021) loss_vfl_dn_3: 0.4751 (0.4751) loss_bbox_dn_3: 0.0355 (0.0355) loss_giou_dn_3: 1.0243 (1.0243) loss_fgl_dn_3: 0.9835 (0.9835) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4758 (0.4758) loss_bbox_dn_4: 0.0355 (0.0355) loss_giou_dn_4: 1.0245 (1.0245) loss_fgl_dn_4: 0.9835 (0.9835) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4773 (0.4773) loss_bbox_dn_5: 0.0355 (0.0355) loss_giou_dn_5: 1.0246 (1.0246) loss_fgl_dn_5: 0.9834 (0.9834) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4392 (0.4392) loss_bbox_dn_pre: 0.0453 (0.0453) loss_giou_dn_pre: 1.1141 (1.1141) time: 1.7265 data: 0.9038 max mem: 29821\n", + "Epoch: [44] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.1208 (37.9822) loss_vfl: 0.1475 (0.1729) loss_bbox: 0.2456 (0.2662) loss_giou: 1.8045 (1.8066) loss_fgl: 0.4012 (0.4222) loss_vfl_aux_0: 0.1533 (0.1805) loss_bbox_aux_0: 0.2406 (0.2713) loss_giou_aux_0: 1.8162 (1.8182) loss_fgl_aux_0: 0.4038 (0.4221) loss_ddf_aux_0: 0.1356 (0.1486) loss_vfl_aux_1: 0.1577 (0.1829) loss_bbox_aux_1: 0.2437 (0.2667) loss_giou_aux_1: 1.8056 (1.8086) loss_fgl_aux_1: 0.4011 (0.4224) loss_ddf_aux_1: 0.0147 (0.0192) loss_vfl_aux_2: 0.1538 (0.1804) loss_bbox_aux_2: 0.2451 (0.2662) loss_giou_aux_2: 1.8047 (1.8071) loss_fgl_aux_2: 0.4012 (0.4222) loss_ddf_aux_2: 0.0021 (0.0029) loss_vfl_aux_3: 0.1508 (0.1765) loss_bbox_aux_3: 0.2454 (0.2661) loss_giou_aux_3: 1.8049 (1.8068) loss_fgl_aux_3: 0.4013 (0.4222) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1483 (0.1734) loss_bbox_aux_4: 0.2455 (0.2661) loss_giou_aux_4: 1.8046 (1.8067) loss_fgl_aux_4: 0.4013 (0.4222) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1512 (0.1780) loss_bbox_pre: 0.2421 (0.2745) loss_giou_pre: 1.8117 (1.8143) loss_vfl_enc_0: 0.1447 (0.1730) loss_bbox_enc_0: 0.2743 (0.3000) loss_giou_enc_0: 1.8702 (1.8605) loss_vfl_dn_0: 0.4207 (0.4238) loss_bbox_dn_0: 0.0466 (0.0494) loss_giou_dn_0: 1.1756 (1.1641) loss_fgl_dn_0: 0.9355 (0.9377) loss_ddf_dn_0: 0.3109 (0.2997) loss_vfl_dn_1: 0.4626 (0.4657) loss_bbox_dn_1: 0.0358 (0.0402) loss_giou_dn_1: 1.0703 (1.0618) loss_fgl_dn_1: 0.9598 (0.9656) loss_ddf_dn_1: 0.0274 (0.0323) loss_vfl_dn_2: 0.4543 (0.4629) loss_bbox_dn_2: 0.0350 (0.0389) loss_giou_dn_2: 1.0644 (1.0514) loss_fgl_dn_2: 0.9618 (0.9679) loss_ddf_dn_2: 0.0023 (0.0032) loss_vfl_dn_3: 0.4548 (0.4602) loss_bbox_dn_3: 0.0349 (0.0388) loss_giou_dn_3: 1.0642 (1.0506) loss_fgl_dn_3: 0.9620 (0.9681) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4543 (0.4595) loss_bbox_dn_4: 0.0349 (0.0387) loss_giou_dn_4: 1.0643 (1.0506) loss_fgl_dn_4: 0.9620 (0.9681) loss_ddf_dn_4: 0.0001 (0.0002) loss_vfl_dn_5: 0.4536 (0.4598) loss_bbox_dn_5: 0.0349 (0.0387) loss_giou_dn_5: 1.0644 (1.0506) loss_fgl_dn_5: 0.9619 (0.9681) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4192 (0.4225) loss_bbox_dn_pre: 0.0468 (0.0497) loss_giou_dn_pre: 1.1782 (1.1648) time: 0.8467 data: 0.0173 max mem: 29821\n", + "Epoch: [44] Total time: 0:01:12 (0.8582 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.1208 (37.9822) loss_vfl: 0.1475 (0.1729) loss_bbox: 0.2456 (0.2662) loss_giou: 1.8045 (1.8066) loss_fgl: 0.4012 (0.4222) loss_vfl_aux_0: 0.1533 (0.1805) loss_bbox_aux_0: 0.2406 (0.2713) loss_giou_aux_0: 1.8162 (1.8182) loss_fgl_aux_0: 0.4038 (0.4221) loss_ddf_aux_0: 0.1356 (0.1486) loss_vfl_aux_1: 0.1577 (0.1829) loss_bbox_aux_1: 0.2437 (0.2667) loss_giou_aux_1: 1.8056 (1.8086) loss_fgl_aux_1: 0.4011 (0.4224) loss_ddf_aux_1: 0.0147 (0.0192) loss_vfl_aux_2: 0.1538 (0.1804) loss_bbox_aux_2: 0.2451 (0.2662) loss_giou_aux_2: 1.8047 (1.8071) loss_fgl_aux_2: 0.4012 (0.4222) loss_ddf_aux_2: 0.0021 (0.0029) loss_vfl_aux_3: 0.1508 (0.1765) loss_bbox_aux_3: 0.2454 (0.2661) loss_giou_aux_3: 1.8049 (1.8068) loss_fgl_aux_3: 0.4013 (0.4222) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1483 (0.1734) loss_bbox_aux_4: 0.2455 (0.2661) loss_giou_aux_4: 1.8046 (1.8067) loss_fgl_aux_4: 0.4013 (0.4222) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1512 (0.1780) loss_bbox_pre: 0.2421 (0.2745) loss_giou_pre: 1.8117 (1.8143) loss_vfl_enc_0: 0.1447 (0.1730) loss_bbox_enc_0: 0.2743 (0.3000) loss_giou_enc_0: 1.8702 (1.8605) loss_vfl_dn_0: 0.4207 (0.4238) loss_bbox_dn_0: 0.0466 (0.0494) loss_giou_dn_0: 1.1756 (1.1641) loss_fgl_dn_0: 0.9355 (0.9377) loss_ddf_dn_0: 0.3109 (0.2997) loss_vfl_dn_1: 0.4626 (0.4657) loss_bbox_dn_1: 0.0358 (0.0402) loss_giou_dn_1: 1.0703 (1.0618) loss_fgl_dn_1: 0.9598 (0.9656) loss_ddf_dn_1: 0.0274 (0.0323) loss_vfl_dn_2: 0.4543 (0.4629) loss_bbox_dn_2: 0.0350 (0.0389) loss_giou_dn_2: 1.0644 (1.0514) loss_fgl_dn_2: 0.9618 (0.9679) loss_ddf_dn_2: 0.0023 (0.0032) loss_vfl_dn_3: 0.4548 (0.4602) loss_bbox_dn_3: 0.0349 (0.0388) loss_giou_dn_3: 1.0642 (1.0506) loss_fgl_dn_3: 0.9620 (0.9681) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4543 (0.4595) loss_bbox_dn_4: 0.0349 (0.0387) loss_giou_dn_4: 1.0643 (1.0506) loss_fgl_dn_4: 0.9620 (0.9681) loss_ddf_dn_4: 0.0001 (0.0002) loss_vfl_dn_5: 0.4536 (0.4598) loss_bbox_dn_5: 0.0349 (0.0387) loss_giou_dn_5: 1.0644 (1.0506) loss_fgl_dn_5: 0.9619 (0.9681) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4192 (0.4225) loss_bbox_dn_pre: 0.0468 (0.0497) loss_giou_dn_pre: 1.1782 (1.1648)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7309 data: 0.4828 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3937 data: 0.1630 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4085 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.039\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.089\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.021\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.035\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.225\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.444\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.020\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.069\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.088\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.081\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.345\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.800\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.183\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.053\n", + "best_stat: {'epoch': 44, 'coco_eval_bbox': 0.03912518198242201}\n", + "Epoch: [45] [ 0/84] eta: 0:02:50 lr: 0.000013 loss: 38.7655 (38.7655) loss_vfl: 0.0826 (0.0826) loss_bbox: 0.3570 (0.3570) loss_giou: 2.0804 (2.0804) loss_fgl: 0.2090 (0.2090) loss_vfl_aux_0: 0.0854 (0.0854) loss_bbox_aux_0: 0.3600 (0.3600) loss_giou_aux_0: 2.0937 (2.0937) loss_fgl_aux_0: 0.2055 (0.2055) loss_ddf_aux_0: 0.1325 (0.1325) loss_vfl_aux_1: 0.0866 (0.0866) loss_bbox_aux_1: 0.3578 (0.3578) loss_giou_aux_1: 2.0817 (2.0817) loss_fgl_aux_1: 0.2089 (0.2089) loss_ddf_aux_1: 0.0111 (0.0111) loss_vfl_aux_2: 0.0853 (0.0853) loss_bbox_aux_2: 0.3572 (0.3572) loss_giou_aux_2: 2.0806 (2.0806) loss_fgl_aux_2: 0.2091 (0.2091) loss_ddf_aux_2: 0.0017 (0.0017) loss_vfl_aux_3: 0.0836 (0.0836) loss_bbox_aux_3: 0.3570 (0.3570) loss_giou_aux_3: 2.0804 (2.0804) loss_fgl_aux_3: 0.2090 (0.2090) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.0833 (0.0833) loss_bbox_aux_4: 0.3570 (0.3570) loss_giou_aux_4: 2.0804 (2.0804) loss_fgl_aux_4: 0.2090 (0.2090) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.0839 (0.0839) loss_bbox_pre: 0.3639 (0.3639) loss_giou_pre: 2.0920 (2.0920) loss_vfl_enc_0: 0.0823 (0.0823) loss_bbox_enc_0: 0.3790 (0.3790) loss_giou_enc_0: 2.1293 (2.1293) loss_vfl_dn_0: 0.3948 (0.3948) loss_bbox_dn_0: 0.0360 (0.0360) loss_giou_dn_0: 1.2340 (1.2340) loss_fgl_dn_0: 0.8984 (0.8984) loss_ddf_dn_0: 0.2574 (0.2574) loss_vfl_dn_1: 0.4490 (0.4490) loss_bbox_dn_1: 0.0280 (0.0280) loss_giou_dn_1: 1.1131 (1.1131) loss_fgl_dn_1: 0.9365 (0.9365) loss_ddf_dn_1: 0.0197 (0.0197) loss_vfl_dn_2: 0.4397 (0.4397) loss_bbox_dn_2: 0.0277 (0.0277) loss_giou_dn_2: 1.1103 (1.1103) loss_fgl_dn_2: 0.9383 (0.9383) loss_ddf_dn_2: 0.0016 (0.0016) loss_vfl_dn_3: 0.4368 (0.4368) loss_bbox_dn_3: 0.0276 (0.0276) loss_giou_dn_3: 1.1103 (1.1103) loss_fgl_dn_3: 0.9384 (0.9384) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4368 (0.4368) loss_bbox_dn_4: 0.0275 (0.0275) loss_giou_dn_4: 1.1100 (1.1100) loss_fgl_dn_4: 0.9385 (0.9385) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4390 (0.4390) loss_bbox_dn_5: 0.0275 (0.0275) loss_giou_dn_5: 1.1100 (1.1100) loss_fgl_dn_5: 0.9385 (0.9385) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.3940 (0.3940) loss_bbox_dn_pre: 0.0361 (0.0361) loss_giou_dn_pre: 1.2327 (1.2327) time: 2.0279 data: 0.8741 max mem: 29821\n", + "Epoch: [45] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.7185 (38.0907) loss_vfl: 0.1670 (0.1612) loss_bbox: 0.2583 (0.2771) loss_giou: 1.7860 (1.8354) loss_fgl: 0.4327 (0.4061) loss_vfl_aux_0: 0.1676 (0.1672) loss_bbox_aux_0: 0.2570 (0.2821) loss_giou_aux_0: 1.7965 (1.8484) loss_fgl_aux_0: 0.4332 (0.4063) loss_ddf_aux_0: 0.0995 (0.1531) loss_vfl_aux_1: 0.1735 (0.1691) loss_bbox_aux_1: 0.2592 (0.2784) loss_giou_aux_1: 1.7857 (1.8361) loss_fgl_aux_1: 0.4326 (0.4061) loss_ddf_aux_1: 0.0110 (0.0177) loss_vfl_aux_2: 0.1688 (0.1669) loss_bbox_aux_2: 0.2581 (0.2773) loss_giou_aux_2: 1.7862 (1.8356) loss_fgl_aux_2: 0.4326 (0.4061) loss_ddf_aux_2: 0.0023 (0.0028) loss_vfl_aux_3: 0.1675 (0.1637) loss_bbox_aux_3: 0.2582 (0.2771) loss_giou_aux_3: 1.7861 (1.8354) loss_fgl_aux_3: 0.4325 (0.4061) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1665 (0.1618) loss_bbox_aux_4: 0.2583 (0.2771) loss_giou_aux_4: 1.7860 (1.8354) loss_fgl_aux_4: 0.4327 (0.4061) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1665 (0.1646) loss_bbox_pre: 0.2613 (0.2858) loss_giou_pre: 1.7900 (1.8436) loss_vfl_enc_0: 0.1632 (0.1583) loss_bbox_enc_0: 0.2860 (0.3113) loss_giou_enc_0: 1.8519 (1.8868) loss_vfl_dn_0: 0.4285 (0.4185) loss_bbox_dn_0: 0.0458 (0.0477) loss_giou_dn_0: 1.1506 (1.1759) loss_fgl_dn_0: 0.9476 (0.9320) loss_ddf_dn_0: 0.2602 (0.2938) loss_vfl_dn_1: 0.4697 (0.4640) loss_bbox_dn_1: 0.0382 (0.0384) loss_giou_dn_1: 1.0441 (1.0685) loss_fgl_dn_1: 0.9769 (0.9610) loss_ddf_dn_1: 0.0234 (0.0267) loss_vfl_dn_2: 0.4648 (0.4606) loss_bbox_dn_2: 0.0371 (0.0374) loss_giou_dn_2: 1.0401 (1.0611) loss_fgl_dn_2: 0.9796 (0.9628) loss_ddf_dn_2: 0.0029 (0.0032) loss_vfl_dn_3: 0.4622 (0.4569) loss_bbox_dn_3: 0.0370 (0.0372) loss_giou_dn_3: 1.0392 (1.0605) loss_fgl_dn_3: 0.9798 (0.9630) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4604 (0.4558) loss_bbox_dn_4: 0.0369 (0.0372) loss_giou_dn_4: 1.0393 (1.0604) loss_fgl_dn_4: 0.9798 (0.9630) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4624 (0.4561) loss_bbox_dn_5: 0.0369 (0.0371) loss_giou_dn_5: 1.0392 (1.0604) loss_fgl_dn_5: 0.9798 (0.9630) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4263 (0.4175) loss_bbox_dn_pre: 0.0458 (0.0479) loss_giou_dn_pre: 1.1494 (1.1759) time: 0.8750 data: 0.0174 max mem: 29821\n", + "Epoch: [45] Total time: 0:01:13 (0.8733 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.7185 (38.0907) loss_vfl: 0.1670 (0.1612) loss_bbox: 0.2583 (0.2771) loss_giou: 1.7860 (1.8354) loss_fgl: 0.4327 (0.4061) loss_vfl_aux_0: 0.1676 (0.1672) loss_bbox_aux_0: 0.2570 (0.2821) loss_giou_aux_0: 1.7965 (1.8484) loss_fgl_aux_0: 0.4332 (0.4063) loss_ddf_aux_0: 0.0995 (0.1531) loss_vfl_aux_1: 0.1735 (0.1691) loss_bbox_aux_1: 0.2592 (0.2784) loss_giou_aux_1: 1.7857 (1.8361) loss_fgl_aux_1: 0.4326 (0.4061) loss_ddf_aux_1: 0.0110 (0.0177) loss_vfl_aux_2: 0.1688 (0.1669) loss_bbox_aux_2: 0.2581 (0.2773) loss_giou_aux_2: 1.7862 (1.8356) loss_fgl_aux_2: 0.4326 (0.4061) loss_ddf_aux_2: 0.0023 (0.0028) loss_vfl_aux_3: 0.1675 (0.1637) loss_bbox_aux_3: 0.2582 (0.2771) loss_giou_aux_3: 1.7861 (1.8354) loss_fgl_aux_3: 0.4325 (0.4061) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1665 (0.1618) loss_bbox_aux_4: 0.2583 (0.2771) loss_giou_aux_4: 1.7860 (1.8354) loss_fgl_aux_4: 0.4327 (0.4061) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1665 (0.1646) loss_bbox_pre: 0.2613 (0.2858) loss_giou_pre: 1.7900 (1.8436) loss_vfl_enc_0: 0.1632 (0.1583) loss_bbox_enc_0: 0.2860 (0.3113) loss_giou_enc_0: 1.8519 (1.8868) loss_vfl_dn_0: 0.4285 (0.4185) loss_bbox_dn_0: 0.0458 (0.0477) loss_giou_dn_0: 1.1506 (1.1759) loss_fgl_dn_0: 0.9476 (0.9320) loss_ddf_dn_0: 0.2602 (0.2938) loss_vfl_dn_1: 0.4697 (0.4640) loss_bbox_dn_1: 0.0382 (0.0384) loss_giou_dn_1: 1.0441 (1.0685) loss_fgl_dn_1: 0.9769 (0.9610) loss_ddf_dn_1: 0.0234 (0.0267) loss_vfl_dn_2: 0.4648 (0.4606) loss_bbox_dn_2: 0.0371 (0.0374) loss_giou_dn_2: 1.0401 (1.0611) loss_fgl_dn_2: 0.9796 (0.9628) loss_ddf_dn_2: 0.0029 (0.0032) loss_vfl_dn_3: 0.4622 (0.4569) loss_bbox_dn_3: 0.0370 (0.0372) loss_giou_dn_3: 1.0392 (1.0605) loss_fgl_dn_3: 0.9798 (0.9630) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4604 (0.4558) loss_bbox_dn_4: 0.0369 (0.0372) loss_giou_dn_4: 1.0393 (1.0604) loss_fgl_dn_4: 0.9798 (0.9630) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4624 (0.4561) loss_bbox_dn_5: 0.0369 (0.0371) loss_giou_dn_5: 1.0392 (1.0604) loss_fgl_dn_5: 0.9798 (0.9630) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4263 (0.4175) loss_bbox_dn_pre: 0.0458 (0.0479) loss_giou_dn_pre: 1.1494 (1.1759)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7705 data: 0.5259 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4005 data: 0.1689 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4171 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.039\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.091\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.020\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.035\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.193\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.422\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.009\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.072\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.091\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.087\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.294\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.650\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.185\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.050\n", + "best_stat: {'epoch': 44, 'coco_eval_bbox': 0.03912518198242201}\n", + "Epoch: [46] [ 0/84] eta: 0:02:46 lr: 0.000013 loss: 37.3497 (37.3497) loss_vfl: 0.1376 (0.1376) loss_bbox: 0.2533 (0.2533) loss_giou: 1.7892 (1.7892) loss_fgl: 0.4011 (0.4011) loss_vfl_aux_0: 0.1471 (0.1471) loss_bbox_aux_0: 0.2574 (0.2574) loss_giou_aux_0: 1.8031 (1.8031) loss_fgl_aux_0: 0.4037 (0.4037) loss_ddf_aux_0: 0.1638 (0.1638) loss_vfl_aux_1: 0.1504 (0.1504) loss_bbox_aux_1: 0.2555 (0.2555) loss_giou_aux_1: 1.7891 (1.7891) loss_fgl_aux_1: 0.4006 (0.4006) loss_ddf_aux_1: 0.0221 (0.0221) loss_vfl_aux_2: 0.1449 (0.1449) loss_bbox_aux_2: 0.2535 (0.2535) loss_giou_aux_2: 1.7894 (1.7894) loss_fgl_aux_2: 0.4010 (0.4010) loss_ddf_aux_2: 0.0028 (0.0028) loss_vfl_aux_3: 0.1414 (0.1414) loss_bbox_aux_3: 0.2534 (0.2534) loss_giou_aux_3: 1.7893 (1.7893) loss_fgl_aux_3: 0.4011 (0.4011) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1381 (0.1381) loss_bbox_aux_4: 0.2533 (0.2533) loss_giou_aux_4: 1.7892 (1.7892) loss_fgl_aux_4: 0.4011 (0.4011) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1449 (0.1449) loss_bbox_pre: 0.2596 (0.2596) loss_giou_pre: 1.7996 (1.7996) loss_vfl_enc_0: 0.1444 (0.1444) loss_bbox_enc_0: 0.2742 (0.2742) loss_giou_enc_0: 1.8386 (1.8386) loss_vfl_dn_0: 0.4302 (0.4302) loss_bbox_dn_0: 0.0497 (0.0497) loss_giou_dn_0: 1.1436 (1.1436) loss_fgl_dn_0: 0.9473 (0.9473) loss_ddf_dn_0: 0.2815 (0.2815) loss_vfl_dn_1: 0.4695 (0.4695) loss_bbox_dn_1: 0.0420 (0.0420) loss_giou_dn_1: 1.0698 (1.0698) loss_fgl_dn_1: 0.9640 (0.9640) loss_ddf_dn_1: 0.0245 (0.0245) loss_vfl_dn_2: 0.4561 (0.4561) loss_bbox_dn_2: 0.0416 (0.0416) loss_giou_dn_2: 1.0640 (1.0640) loss_fgl_dn_2: 0.9653 (0.9653) loss_ddf_dn_2: 0.0031 (0.0031) loss_vfl_dn_3: 0.4531 (0.4531) loss_bbox_dn_3: 0.0416 (0.0416) loss_giou_dn_3: 1.0638 (1.0638) loss_fgl_dn_3: 0.9655 (0.9655) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4541 (0.4541) loss_bbox_dn_4: 0.0416 (0.0416) loss_giou_dn_4: 1.0637 (1.0637) loss_fgl_dn_4: 0.9656 (0.9656) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4578 (0.4578) loss_bbox_dn_5: 0.0416 (0.0416) loss_giou_dn_5: 1.0637 (1.0637) loss_fgl_dn_5: 0.9656 (0.9656) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4285 (0.4285) loss_bbox_dn_pre: 0.0502 (0.0502) loss_giou_dn_pre: 1.1462 (1.1462) time: 1.9833 data: 1.0228 max mem: 29821\n", + "Epoch: [46] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.7085 (38.2200) loss_vfl: 0.1387 (0.1660) loss_bbox: 0.2592 (0.2914) loss_giou: 1.8177 (1.8268) loss_fgl: 0.3888 (0.4211) loss_vfl_aux_0: 0.1429 (0.1716) loss_bbox_aux_0: 0.2601 (0.2954) loss_giou_aux_0: 1.8355 (1.8395) loss_fgl_aux_0: 0.3842 (0.4207) loss_ddf_aux_0: 0.1283 (0.1453) loss_vfl_aux_1: 0.1475 (0.1738) loss_bbox_aux_1: 0.2585 (0.2926) loss_giou_aux_1: 1.8201 (1.8276) loss_fgl_aux_1: 0.3878 (0.4210) loss_ddf_aux_1: 0.0153 (0.0189) loss_vfl_aux_2: 0.1461 (0.1721) loss_bbox_aux_2: 0.2593 (0.2916) loss_giou_aux_2: 1.8179 (1.8270) loss_fgl_aux_2: 0.3887 (0.4211) loss_ddf_aux_2: 0.0018 (0.0027) loss_vfl_aux_3: 0.1427 (0.1684) loss_bbox_aux_3: 0.2591 (0.2914) loss_giou_aux_3: 1.8177 (1.8269) loss_fgl_aux_3: 0.3889 (0.4211) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1361 (0.1664) loss_bbox_aux_4: 0.2591 (0.2914) loss_giou_aux_4: 1.8177 (1.8268) loss_fgl_aux_4: 0.3888 (0.4211) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1400 (0.1690) loss_bbox_pre: 0.2648 (0.2993) loss_giou_pre: 1.8304 (1.8344) loss_vfl_enc_0: 0.1284 (0.1645) loss_bbox_enc_0: 0.2916 (0.3270) loss_giou_enc_0: 1.8843 (1.8819) loss_vfl_dn_0: 0.4226 (0.4271) loss_bbox_dn_0: 0.0438 (0.0469) loss_giou_dn_0: 1.1627 (1.1516) loss_fgl_dn_0: 0.9354 (0.9437) loss_ddf_dn_0: 0.2429 (0.2715) loss_vfl_dn_1: 0.4644 (0.4654) loss_bbox_dn_1: 0.0350 (0.0382) loss_giou_dn_1: 1.0667 (1.0587) loss_fgl_dn_1: 0.9605 (0.9704) loss_ddf_dn_1: 0.0226 (0.0245) loss_vfl_dn_2: 0.4568 (0.4622) loss_bbox_dn_2: 0.0339 (0.0373) loss_giou_dn_2: 1.0613 (1.0508) loss_fgl_dn_2: 0.9597 (0.9718) loss_ddf_dn_2: 0.0018 (0.0025) loss_vfl_dn_3: 0.4543 (0.4595) loss_bbox_dn_3: 0.0339 (0.0372) loss_giou_dn_3: 1.0611 (1.0502) loss_fgl_dn_3: 0.9602 (0.9720) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4529 (0.4587) loss_bbox_dn_4: 0.0338 (0.0372) loss_giou_dn_4: 1.0613 (1.0502) loss_fgl_dn_4: 0.9602 (0.9720) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4539 (0.4591) loss_bbox_dn_5: 0.0338 (0.0372) loss_giou_dn_5: 1.0613 (1.0502) loss_fgl_dn_5: 0.9602 (0.9721) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4216 (0.4257) loss_bbox_dn_pre: 0.0442 (0.0473) loss_giou_dn_pre: 1.1636 (1.1519) time: 0.8586 data: 0.0170 max mem: 29821\n", + "Epoch: [46] Total time: 0:01:13 (0.8792 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.7085 (38.2200) loss_vfl: 0.1387 (0.1660) loss_bbox: 0.2592 (0.2914) loss_giou: 1.8177 (1.8268) loss_fgl: 0.3888 (0.4211) loss_vfl_aux_0: 0.1429 (0.1716) loss_bbox_aux_0: 0.2601 (0.2954) loss_giou_aux_0: 1.8355 (1.8395) loss_fgl_aux_0: 0.3842 (0.4207) loss_ddf_aux_0: 0.1283 (0.1453) loss_vfl_aux_1: 0.1475 (0.1738) loss_bbox_aux_1: 0.2585 (0.2926) loss_giou_aux_1: 1.8201 (1.8276) loss_fgl_aux_1: 0.3878 (0.4210) loss_ddf_aux_1: 0.0153 (0.0189) loss_vfl_aux_2: 0.1461 (0.1721) loss_bbox_aux_2: 0.2593 (0.2916) loss_giou_aux_2: 1.8179 (1.8270) loss_fgl_aux_2: 0.3887 (0.4211) loss_ddf_aux_2: 0.0018 (0.0027) loss_vfl_aux_3: 0.1427 (0.1684) loss_bbox_aux_3: 0.2591 (0.2914) loss_giou_aux_3: 1.8177 (1.8269) loss_fgl_aux_3: 0.3889 (0.4211) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1361 (0.1664) loss_bbox_aux_4: 0.2591 (0.2914) loss_giou_aux_4: 1.8177 (1.8268) loss_fgl_aux_4: 0.3888 (0.4211) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1400 (0.1690) loss_bbox_pre: 0.2648 (0.2993) loss_giou_pre: 1.8304 (1.8344) loss_vfl_enc_0: 0.1284 (0.1645) loss_bbox_enc_0: 0.2916 (0.3270) loss_giou_enc_0: 1.8843 (1.8819) loss_vfl_dn_0: 0.4226 (0.4271) loss_bbox_dn_0: 0.0438 (0.0469) loss_giou_dn_0: 1.1627 (1.1516) loss_fgl_dn_0: 0.9354 (0.9437) loss_ddf_dn_0: 0.2429 (0.2715) loss_vfl_dn_1: 0.4644 (0.4654) loss_bbox_dn_1: 0.0350 (0.0382) loss_giou_dn_1: 1.0667 (1.0587) loss_fgl_dn_1: 0.9605 (0.9704) loss_ddf_dn_1: 0.0226 (0.0245) loss_vfl_dn_2: 0.4568 (0.4622) loss_bbox_dn_2: 0.0339 (0.0373) loss_giou_dn_2: 1.0613 (1.0508) loss_fgl_dn_2: 0.9597 (0.9718) loss_ddf_dn_2: 0.0018 (0.0025) loss_vfl_dn_3: 0.4543 (0.4595) loss_bbox_dn_3: 0.0339 (0.0372) loss_giou_dn_3: 1.0611 (1.0502) loss_fgl_dn_3: 0.9602 (0.9720) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4529 (0.4587) loss_bbox_dn_4: 0.0338 (0.0372) loss_giou_dn_4: 1.0613 (1.0502) loss_fgl_dn_4: 0.9602 (0.9720) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4539 (0.4591) loss_bbox_dn_5: 0.0338 (0.0372) loss_giou_dn_5: 1.0613 (1.0502) loss_fgl_dn_5: 0.9602 (0.9721) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4216 (0.4257) loss_bbox_dn_pre: 0.0442 (0.0473) loss_giou_dn_pre: 1.1636 (1.1519)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7757 data: 0.5297 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4001 data: 0.1711 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4168 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.037\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.090\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.019\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.034\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.190\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.356\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.020\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.070\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.089\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.086\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.293\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.775\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.186\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.045\n", + "best_stat: {'epoch': 44, 'coco_eval_bbox': 0.03912518198242201}\n", + "Epoch: [47] [ 0/84] eta: 0:02:59 lr: 0.000013 loss: 37.2600 (37.2600) loss_vfl: 0.1302 (0.1302) loss_bbox: 0.2593 (0.2593) loss_giou: 1.7774 (1.7774) loss_fgl: 0.4312 (0.4312) loss_vfl_aux_0: 0.1361 (0.1361) loss_bbox_aux_0: 0.2626 (0.2626) loss_giou_aux_0: 1.7920 (1.7920) loss_fgl_aux_0: 0.4318 (0.4318) loss_ddf_aux_0: 0.1523 (0.1523) loss_vfl_aux_1: 0.1366 (0.1366) loss_bbox_aux_1: 0.2596 (0.2596) loss_giou_aux_1: 1.7788 (1.7788) loss_fgl_aux_1: 0.4306 (0.4306) loss_ddf_aux_1: 0.0202 (0.0202) loss_vfl_aux_2: 0.1350 (0.1350) loss_bbox_aux_2: 0.2598 (0.2598) loss_giou_aux_2: 1.7781 (1.7781) loss_fgl_aux_2: 0.4309 (0.4309) loss_ddf_aux_2: 0.0031 (0.0031) loss_vfl_aux_3: 0.1322 (0.1322) loss_bbox_aux_3: 0.2594 (0.2594) loss_giou_aux_3: 1.7777 (1.7777) loss_fgl_aux_3: 0.4311 (0.4311) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1301 (0.1301) loss_bbox_aux_4: 0.2593 (0.2593) loss_giou_aux_4: 1.7775 (1.7775) loss_fgl_aux_4: 0.4311 (0.4311) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1353 (0.1353) loss_bbox_pre: 0.2662 (0.2662) loss_giou_pre: 1.7853 (1.7853) loss_vfl_enc_0: 0.1334 (0.1334) loss_bbox_enc_0: 0.2957 (0.2957) loss_giou_enc_0: 1.8094 (1.8094) loss_vfl_dn_0: 0.4216 (0.4216) loss_bbox_dn_0: 0.0431 (0.0431) loss_giou_dn_0: 1.1549 (1.1549) loss_fgl_dn_0: 0.9460 (0.9460) loss_ddf_dn_0: 0.2194 (0.2194) loss_vfl_dn_1: 0.4653 (0.4653) loss_bbox_dn_1: 0.0355 (0.0355) loss_giou_dn_1: 1.0587 (1.0587) loss_fgl_dn_1: 0.9740 (0.9740) loss_ddf_dn_1: 0.0220 (0.0220) loss_vfl_dn_2: 0.4561 (0.4561) loss_bbox_dn_2: 0.0347 (0.0347) loss_giou_dn_2: 1.0511 (1.0511) loss_fgl_dn_2: 0.9734 (0.9734) loss_ddf_dn_2: 0.0022 (0.0022) loss_vfl_dn_3: 0.4583 (0.4583) loss_bbox_dn_3: 0.0345 (0.0345) loss_giou_dn_3: 1.0506 (1.0506) loss_fgl_dn_3: 0.9732 (0.9732) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4604 (0.4604) loss_bbox_dn_4: 0.0344 (0.0344) loss_giou_dn_4: 1.0506 (1.0506) loss_fgl_dn_4: 0.9731 (0.9731) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4602 (0.4602) loss_bbox_dn_5: 0.0344 (0.0344) loss_giou_dn_5: 1.0506 (1.0506) loss_fgl_dn_5: 0.9731 (0.9731) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4204 (0.4204) loss_bbox_dn_pre: 0.0434 (0.0434) loss_giou_dn_pre: 1.1544 (1.1544) time: 2.1396 data: 1.0924 max mem: 29821\n", + "Epoch: [47] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.8120 (38.2344) loss_vfl: 0.1324 (0.1640) loss_bbox: 0.2630 (0.2929) loss_giou: 1.8773 (1.8279) loss_fgl: 0.3520 (0.4097) loss_vfl_aux_0: 0.1389 (0.1700) loss_bbox_aux_0: 0.2611 (0.2963) loss_giou_aux_0: 1.8893 (1.8434) loss_fgl_aux_0: 0.3552 (0.4096) loss_ddf_aux_0: 0.1475 (0.1607) loss_vfl_aux_1: 0.1409 (0.1719) loss_bbox_aux_1: 0.2626 (0.2938) loss_giou_aux_1: 1.8769 (1.8292) loss_fgl_aux_1: 0.3521 (0.4098) loss_ddf_aux_1: 0.0118 (0.0214) loss_vfl_aux_2: 0.1398 (0.1704) loss_bbox_aux_2: 0.2627 (0.2930) loss_giou_aux_2: 1.8776 (1.8281) loss_fgl_aux_2: 0.3517 (0.4097) loss_ddf_aux_2: 0.0017 (0.0032) loss_vfl_aux_3: 0.1355 (0.1667) loss_bbox_aux_3: 0.2629 (0.2928) loss_giou_aux_3: 1.8774 (1.8280) loss_fgl_aux_3: 0.3520 (0.4098) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1327 (0.1642) loss_bbox_aux_4: 0.2629 (0.2928) loss_giou_aux_4: 1.8773 (1.8280) loss_fgl_aux_4: 0.3520 (0.4098) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1377 (0.1676) loss_bbox_pre: 0.2638 (0.3006) loss_giou_pre: 1.8788 (1.8383) loss_vfl_enc_0: 0.1259 (0.1606) loss_bbox_enc_0: 0.2916 (0.3288) loss_giou_enc_0: 1.9233 (1.8900) loss_vfl_dn_0: 0.4175 (0.4256) loss_bbox_dn_0: 0.0433 (0.0479) loss_giou_dn_0: 1.1816 (1.1642) loss_fgl_dn_0: 0.9272 (0.9412) loss_ddf_dn_0: 0.3006 (0.2906) loss_vfl_dn_1: 0.4607 (0.4650) loss_bbox_dn_1: 0.0380 (0.0393) loss_giou_dn_1: 1.0763 (1.0628) loss_fgl_dn_1: 0.9541 (0.9668) loss_ddf_dn_1: 0.0228 (0.0288) loss_vfl_dn_2: 0.4609 (0.4632) loss_bbox_dn_2: 0.0363 (0.0382) loss_giou_dn_2: 1.0725 (1.0524) loss_fgl_dn_2: 0.9551 (0.9693) loss_ddf_dn_2: 0.0015 (0.0027) loss_vfl_dn_3: 0.4553 (0.4595) loss_bbox_dn_3: 0.0363 (0.0380) loss_giou_dn_3: 1.0721 (1.0518) loss_fgl_dn_3: 0.9551 (0.9695) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4534 (0.4585) loss_bbox_dn_4: 0.0363 (0.0380) loss_giou_dn_4: 1.0720 (1.0517) loss_fgl_dn_4: 0.9551 (0.9695) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4548 (0.4590) loss_bbox_dn_5: 0.0363 (0.0380) loss_giou_dn_5: 1.0720 (1.0517) loss_fgl_dn_5: 0.9551 (0.9696) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4163 (0.4241) loss_bbox_dn_pre: 0.0436 (0.0484) loss_giou_dn_pre: 1.1816 (1.1649) time: 0.8708 data: 0.0173 max mem: 29821\n", + "Epoch: [47] Total time: 0:01:13 (0.8787 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.8120 (38.2344) loss_vfl: 0.1324 (0.1640) loss_bbox: 0.2630 (0.2929) loss_giou: 1.8773 (1.8279) loss_fgl: 0.3520 (0.4097) loss_vfl_aux_0: 0.1389 (0.1700) loss_bbox_aux_0: 0.2611 (0.2963) loss_giou_aux_0: 1.8893 (1.8434) loss_fgl_aux_0: 0.3552 (0.4096) loss_ddf_aux_0: 0.1475 (0.1607) loss_vfl_aux_1: 0.1409 (0.1719) loss_bbox_aux_1: 0.2626 (0.2938) loss_giou_aux_1: 1.8769 (1.8292) loss_fgl_aux_1: 0.3521 (0.4098) loss_ddf_aux_1: 0.0118 (0.0214) loss_vfl_aux_2: 0.1398 (0.1704) loss_bbox_aux_2: 0.2627 (0.2930) loss_giou_aux_2: 1.8776 (1.8281) loss_fgl_aux_2: 0.3517 (0.4097) loss_ddf_aux_2: 0.0017 (0.0032) loss_vfl_aux_3: 0.1355 (0.1667) loss_bbox_aux_3: 0.2629 (0.2928) loss_giou_aux_3: 1.8774 (1.8280) loss_fgl_aux_3: 0.3520 (0.4098) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1327 (0.1642) loss_bbox_aux_4: 0.2629 (0.2928) loss_giou_aux_4: 1.8773 (1.8280) loss_fgl_aux_4: 0.3520 (0.4098) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1377 (0.1676) loss_bbox_pre: 0.2638 (0.3006) loss_giou_pre: 1.8788 (1.8383) loss_vfl_enc_0: 0.1259 (0.1606) loss_bbox_enc_0: 0.2916 (0.3288) loss_giou_enc_0: 1.9233 (1.8900) loss_vfl_dn_0: 0.4175 (0.4256) loss_bbox_dn_0: 0.0433 (0.0479) loss_giou_dn_0: 1.1816 (1.1642) loss_fgl_dn_0: 0.9272 (0.9412) loss_ddf_dn_0: 0.3006 (0.2906) loss_vfl_dn_1: 0.4607 (0.4650) loss_bbox_dn_1: 0.0380 (0.0393) loss_giou_dn_1: 1.0763 (1.0628) loss_fgl_dn_1: 0.9541 (0.9668) loss_ddf_dn_1: 0.0228 (0.0288) loss_vfl_dn_2: 0.4609 (0.4632) loss_bbox_dn_2: 0.0363 (0.0382) loss_giou_dn_2: 1.0725 (1.0524) loss_fgl_dn_2: 0.9551 (0.9693) loss_ddf_dn_2: 0.0015 (0.0027) loss_vfl_dn_3: 0.4553 (0.4595) loss_bbox_dn_3: 0.0363 (0.0380) loss_giou_dn_3: 1.0721 (1.0518) loss_fgl_dn_3: 0.9551 (0.9695) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4534 (0.4585) loss_bbox_dn_4: 0.0363 (0.0380) loss_giou_dn_4: 1.0720 (1.0517) loss_fgl_dn_4: 0.9551 (0.9695) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4548 (0.4590) loss_bbox_dn_5: 0.0363 (0.0380) loss_giou_dn_5: 1.0720 (1.0517) loss_fgl_dn_5: 0.9551 (0.9696) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4163 (0.4241) loss_bbox_dn_pre: 0.0436 (0.0484) loss_giou_dn_pre: 1.1816 (1.1649)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7576 data: 0.5122 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4041 data: 0.1705 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4186 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.040\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.094\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.019\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.036\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.198\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.291\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.009\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.070\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.089\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.086\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.290\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.600\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.187\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.047\n", + "best_stat: {'epoch': 47, 'coco_eval_bbox': 0.039503500975091616}\n", + "Epoch: [48] [ 0/84] eta: 0:02:39 lr: 0.000013 loss: 36.4474 (36.4474) loss_vfl: 0.2257 (0.2257) loss_bbox: 0.1789 (0.1789) loss_giou: 1.6039 (1.6039) loss_fgl: 0.4856 (0.4856) loss_vfl_aux_0: 0.2389 (0.2389) loss_bbox_aux_0: 0.1832 (0.1832) loss_giou_aux_0: 1.6065 (1.6065) loss_fgl_aux_0: 0.4880 (0.4880) loss_ddf_aux_0: 0.1253 (0.1253) loss_vfl_aux_1: 0.2428 (0.2428) loss_bbox_aux_1: 0.1783 (0.1783) loss_giou_aux_1: 1.6047 (1.6047) loss_fgl_aux_1: 0.4861 (0.4861) loss_ddf_aux_1: 0.0114 (0.0114) loss_vfl_aux_2: 0.2445 (0.2445) loss_bbox_aux_2: 0.1788 (0.1788) loss_giou_aux_2: 1.6043 (1.6043) loss_fgl_aux_2: 0.4856 (0.4856) loss_ddf_aux_2: 0.0023 (0.0023) loss_vfl_aux_3: 0.2307 (0.2307) loss_bbox_aux_3: 0.1788 (0.1788) loss_giou_aux_3: 1.6042 (1.6042) loss_fgl_aux_3: 0.4856 (0.4856) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.2291 (0.2291) loss_bbox_aux_4: 0.1788 (0.1788) loss_giou_aux_4: 1.6040 (1.6040) loss_fgl_aux_4: 0.4857 (0.4857) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.2375 (0.2375) loss_bbox_pre: 0.1862 (0.1862) loss_giou_pre: 1.6021 (1.6021) loss_vfl_enc_0: 0.2368 (0.2368) loss_bbox_enc_0: 0.1993 (0.1993) loss_giou_enc_0: 1.6196 (1.6196) loss_vfl_dn_0: 0.4319 (0.4319) loss_bbox_dn_0: 0.0514 (0.0514) loss_giou_dn_0: 1.1349 (1.1349) loss_fgl_dn_0: 0.9571 (0.9571) loss_ddf_dn_0: 0.3212 (0.3212) loss_vfl_dn_1: 0.4617 (0.4617) loss_bbox_dn_1: 0.0424 (0.0424) loss_giou_dn_1: 1.0567 (1.0567) loss_fgl_dn_1: 0.9760 (0.9760) loss_ddf_dn_1: 0.0245 (0.0245) loss_vfl_dn_2: 0.4656 (0.4656) loss_bbox_dn_2: 0.0406 (0.0406) loss_giou_dn_2: 1.0495 (1.0495) loss_fgl_dn_2: 0.9767 (0.9767) loss_ddf_dn_2: 0.0023 (0.0023) loss_vfl_dn_3: 0.4609 (0.4609) loss_bbox_dn_3: 0.0404 (0.0404) loss_giou_dn_3: 1.0490 (1.0490) loss_fgl_dn_3: 0.9763 (0.9763) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4604 (0.4604) loss_bbox_dn_4: 0.0405 (0.0405) loss_giou_dn_4: 1.0489 (1.0489) loss_fgl_dn_4: 0.9765 (0.9765) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4634 (0.4634) loss_bbox_dn_5: 0.0405 (0.0405) loss_giou_dn_5: 1.0489 (1.0489) loss_fgl_dn_5: 0.9765 (0.9765) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4316 (0.4316) loss_bbox_dn_pre: 0.0518 (0.0518) loss_giou_dn_pre: 1.1350 (1.1350) time: 1.9032 data: 1.1538 max mem: 29821\n", + "Epoch: [48] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.7828 (37.7765) loss_vfl: 0.1646 (0.1699) loss_bbox: 0.2372 (0.2548) loss_giou: 1.7560 (1.8004) loss_fgl: 0.4593 (0.4217) loss_vfl_aux_0: 0.1768 (0.1750) loss_bbox_aux_0: 0.2420 (0.2587) loss_giou_aux_0: 1.7620 (1.8110) loss_fgl_aux_0: 0.4559 (0.4216) loss_ddf_aux_0: 0.1342 (0.1353) loss_vfl_aux_1: 0.1797 (0.1775) loss_bbox_aux_1: 0.2364 (0.2554) loss_giou_aux_1: 1.7571 (1.8021) loss_fgl_aux_1: 0.4584 (0.4218) loss_ddf_aux_1: 0.0139 (0.0179) loss_vfl_aux_2: 0.1796 (0.1759) loss_bbox_aux_2: 0.2362 (0.2548) loss_giou_aux_2: 1.7565 (1.8008) loss_fgl_aux_2: 0.4585 (0.4217) loss_ddf_aux_2: 0.0021 (0.0031) loss_vfl_aux_3: 0.1713 (0.1723) loss_bbox_aux_3: 0.2367 (0.2546) loss_giou_aux_3: 1.7560 (1.8007) loss_fgl_aux_3: 0.4591 (0.4217) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1669 (0.1702) loss_bbox_aux_4: 0.2370 (0.2547) loss_giou_aux_4: 1.7560 (1.8006) loss_fgl_aux_4: 0.4593 (0.4217) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1749 (0.1725) loss_bbox_pre: 0.2443 (0.2625) loss_giou_pre: 1.7590 (1.8061) loss_vfl_enc_0: 0.1804 (0.1695) loss_bbox_enc_0: 0.2711 (0.2871) loss_giou_enc_0: 1.8128 (1.8525) loss_vfl_dn_0: 0.4348 (0.4230) loss_bbox_dn_0: 0.0487 (0.0487) loss_giou_dn_0: 1.1459 (1.1663) loss_fgl_dn_0: 0.9472 (0.9378) loss_ddf_dn_0: 0.3160 (0.2861) loss_vfl_dn_1: 0.4751 (0.4631) loss_bbox_dn_1: 0.0371 (0.0399) loss_giou_dn_1: 1.0405 (1.0666) loss_fgl_dn_1: 0.9705 (0.9655) loss_ddf_dn_1: 0.0286 (0.0270) loss_vfl_dn_2: 0.4688 (0.4600) loss_bbox_dn_2: 0.0362 (0.0389) loss_giou_dn_2: 1.0290 (1.0581) loss_fgl_dn_2: 0.9724 (0.9675) loss_ddf_dn_2: 0.0022 (0.0028) loss_vfl_dn_3: 0.4666 (0.4569) loss_bbox_dn_3: 0.0360 (0.0387) loss_giou_dn_3: 1.0277 (1.0576) loss_fgl_dn_3: 0.9729 (0.9677) loss_ddf_dn_3: 0.0004 (0.0003) loss_vfl_dn_4: 0.4675 (0.4559) loss_bbox_dn_4: 0.0359 (0.0387) loss_giou_dn_4: 1.0275 (1.0576) loss_fgl_dn_4: 0.9729 (0.9678) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4668 (0.4561) loss_bbox_dn_5: 0.0359 (0.0387) loss_giou_dn_5: 1.0275 (1.0576) loss_fgl_dn_5: 0.9729 (0.9678) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4331 (0.4219) loss_bbox_dn_pre: 0.0481 (0.0490) loss_giou_dn_pre: 1.1445 (1.1663) time: 0.8386 data: 0.0244 max mem: 29821\n", + "Epoch: [48] Total time: 0:01:12 (0.8600 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.7828 (37.7765) loss_vfl: 0.1646 (0.1699) loss_bbox: 0.2372 (0.2548) loss_giou: 1.7560 (1.8004) loss_fgl: 0.4593 (0.4217) loss_vfl_aux_0: 0.1768 (0.1750) loss_bbox_aux_0: 0.2420 (0.2587) loss_giou_aux_0: 1.7620 (1.8110) loss_fgl_aux_0: 0.4559 (0.4216) loss_ddf_aux_0: 0.1342 (0.1353) loss_vfl_aux_1: 0.1797 (0.1775) loss_bbox_aux_1: 0.2364 (0.2554) loss_giou_aux_1: 1.7571 (1.8021) loss_fgl_aux_1: 0.4584 (0.4218) loss_ddf_aux_1: 0.0139 (0.0179) loss_vfl_aux_2: 0.1796 (0.1759) loss_bbox_aux_2: 0.2362 (0.2548) loss_giou_aux_2: 1.7565 (1.8008) loss_fgl_aux_2: 0.4585 (0.4217) loss_ddf_aux_2: 0.0021 (0.0031) loss_vfl_aux_3: 0.1713 (0.1723) loss_bbox_aux_3: 0.2367 (0.2546) loss_giou_aux_3: 1.7560 (1.8007) loss_fgl_aux_3: 0.4591 (0.4217) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1669 (0.1702) loss_bbox_aux_4: 0.2370 (0.2547) loss_giou_aux_4: 1.7560 (1.8006) loss_fgl_aux_4: 0.4593 (0.4217) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1749 (0.1725) loss_bbox_pre: 0.2443 (0.2625) loss_giou_pre: 1.7590 (1.8061) loss_vfl_enc_0: 0.1804 (0.1695) loss_bbox_enc_0: 0.2711 (0.2871) loss_giou_enc_0: 1.8128 (1.8525) loss_vfl_dn_0: 0.4348 (0.4230) loss_bbox_dn_0: 0.0487 (0.0487) loss_giou_dn_0: 1.1459 (1.1663) loss_fgl_dn_0: 0.9472 (0.9378) loss_ddf_dn_0: 0.3160 (0.2861) loss_vfl_dn_1: 0.4751 (0.4631) loss_bbox_dn_1: 0.0371 (0.0399) loss_giou_dn_1: 1.0405 (1.0666) loss_fgl_dn_1: 0.9705 (0.9655) loss_ddf_dn_1: 0.0286 (0.0270) loss_vfl_dn_2: 0.4688 (0.4600) loss_bbox_dn_2: 0.0362 (0.0389) loss_giou_dn_2: 1.0290 (1.0581) loss_fgl_dn_2: 0.9724 (0.9675) loss_ddf_dn_2: 0.0022 (0.0028) loss_vfl_dn_3: 0.4666 (0.4569) loss_bbox_dn_3: 0.0360 (0.0387) loss_giou_dn_3: 1.0277 (1.0576) loss_fgl_dn_3: 0.9729 (0.9677) loss_ddf_dn_3: 0.0004 (0.0003) loss_vfl_dn_4: 0.4675 (0.4559) loss_bbox_dn_4: 0.0359 (0.0387) loss_giou_dn_4: 1.0275 (1.0576) loss_fgl_dn_4: 0.9729 (0.9678) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4668 (0.4561) loss_bbox_dn_5: 0.0359 (0.0387) loss_giou_dn_5: 1.0275 (1.0576) loss_fgl_dn_5: 0.9729 (0.9678) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4331 (0.4219) loss_bbox_dn_pre: 0.0481 (0.0490) loss_giou_dn_pre: 1.1445 (1.1663)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7965 data: 0.5509 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.5480 data: 0.1778 max mem: 29821\n", + "Test: Total time: 0:00:02 (0.5674 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.040\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.095\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.021\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.038\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.200\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.495\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.009\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.067\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.086\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.083\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.300\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.775\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.188\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.049\n", + "best_stat: {'epoch': 48, 'coco_eval_bbox': 0.039881316315969896}\n", + "Epoch: [49] [ 0/84] eta: 0:02:48 lr: 0.000013 loss: 41.0351 (41.0351) loss_vfl: 0.1342 (0.1342) loss_bbox: 0.4364 (0.4364) loss_giou: 2.1746 (2.1746) loss_fgl: 0.2783 (0.2783) loss_vfl_aux_0: 0.1349 (0.1349) loss_bbox_aux_0: 0.4366 (0.4366) loss_giou_aux_0: 2.1830 (2.1830) loss_fgl_aux_0: 0.2761 (0.2761) loss_ddf_aux_0: 0.0901 (0.0901) loss_vfl_aux_1: 0.1387 (0.1387) loss_bbox_aux_1: 0.4373 (0.4373) loss_giou_aux_1: 2.1729 (2.1729) loss_fgl_aux_1: 0.2785 (0.2785) loss_ddf_aux_1: 0.0078 (0.0078) loss_vfl_aux_2: 0.1385 (0.1385) loss_bbox_aux_2: 0.4365 (0.4365) loss_giou_aux_2: 2.1746 (2.1746) loss_fgl_aux_2: 0.2784 (0.2784) loss_ddf_aux_2: 0.0008 (0.0008) loss_vfl_aux_3: 0.1368 (0.1368) loss_bbox_aux_3: 0.4363 (0.4363) loss_giou_aux_3: 2.1748 (2.1748) loss_fgl_aux_3: 0.2783 (0.2783) loss_ddf_aux_3: 0.0001 (0.0001) loss_vfl_aux_4: 0.1346 (0.1346) loss_bbox_aux_4: 0.4364 (0.4364) loss_giou_aux_4: 2.1746 (2.1746) loss_fgl_aux_4: 0.2783 (0.2783) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1328 (0.1328) loss_bbox_pre: 0.4405 (0.4405) loss_giou_pre: 2.1749 (2.1749) loss_vfl_enc_0: 0.1227 (0.1227) loss_bbox_enc_0: 0.4295 (0.4295) loss_giou_enc_0: 2.2380 (2.2380) loss_vfl_dn_0: 0.4285 (0.4285) loss_bbox_dn_0: 0.0449 (0.0449) loss_giou_dn_0: 1.1798 (1.1798) loss_fgl_dn_0: 0.9269 (0.9269) loss_ddf_dn_0: 0.2828 (0.2828) loss_vfl_dn_1: 0.4644 (0.4644) loss_bbox_dn_1: 0.0400 (0.0400) loss_giou_dn_1: 1.0876 (1.0876) loss_fgl_dn_1: 0.9566 (0.9566) loss_ddf_dn_1: 0.0241 (0.0241) loss_vfl_dn_2: 0.4604 (0.4604) loss_bbox_dn_2: 0.0395 (0.0395) loss_giou_dn_2: 1.0852 (1.0852) loss_fgl_dn_2: 0.9561 (0.9561) loss_ddf_dn_2: 0.0012 (0.0012) loss_vfl_dn_3: 0.4543 (0.4543) loss_bbox_dn_3: 0.0395 (0.0395) loss_giou_dn_3: 1.0853 (1.0853) loss_fgl_dn_3: 0.9560 (0.9560) loss_ddf_dn_3: 0.0002 (0.0002) loss_vfl_dn_4: 0.4543 (0.4543) loss_bbox_dn_4: 0.0396 (0.0396) loss_giou_dn_4: 1.0854 (1.0854) loss_fgl_dn_4: 0.9560 (0.9560) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4551 (0.4551) loss_bbox_dn_5: 0.0396 (0.0396) loss_giou_dn_5: 1.0854 (1.0854) loss_fgl_dn_5: 0.9560 (0.9560) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4272 (0.4272) loss_bbox_dn_pre: 0.0453 (0.0453) loss_giou_dn_pre: 1.1801 (1.1801) time: 2.0057 data: 1.0505 max mem: 29821\n", + "Epoch: [49] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.7834 (38.0678) loss_vfl: 0.1351 (0.1664) loss_bbox: 0.2537 (0.2833) loss_giou: 1.8172 (1.8130) loss_fgl: 0.3942 (0.4135) loss_vfl_aux_0: 0.1394 (0.1719) loss_bbox_aux_0: 0.2543 (0.2871) loss_giou_aux_0: 1.8403 (1.8281) loss_fgl_aux_0: 0.3910 (0.4134) loss_ddf_aux_0: 0.1221 (0.1455) loss_vfl_aux_1: 0.1414 (0.1744) loss_bbox_aux_1: 0.2549 (0.2846) loss_giou_aux_1: 1.8199 (1.8146) loss_fgl_aux_1: 0.3948 (0.4134) loss_ddf_aux_1: 0.0137 (0.0194) loss_vfl_aux_2: 0.1416 (0.1725) loss_bbox_aux_2: 0.2539 (0.2835) loss_giou_aux_2: 1.8180 (1.8132) loss_fgl_aux_2: 0.3941 (0.4134) loss_ddf_aux_2: 0.0017 (0.0030) loss_vfl_aux_3: 0.1384 (0.1687) loss_bbox_aux_3: 0.2536 (0.2833) loss_giou_aux_3: 1.8177 (1.8131) loss_fgl_aux_3: 0.3943 (0.4135) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1353 (0.1667) loss_bbox_aux_4: 0.2537 (0.2833) loss_giou_aux_4: 1.8173 (1.8130) loss_fgl_aux_4: 0.3942 (0.4135) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1365 (0.1692) loss_bbox_pre: 0.2598 (0.2923) loss_giou_pre: 1.8317 (1.8218) loss_vfl_enc_0: 0.1278 (0.1649) loss_bbox_enc_0: 0.2942 (0.3197) loss_giou_enc_0: 1.9132 (1.8783) loss_vfl_dn_0: 0.4238 (0.4320) loss_bbox_dn_0: 0.0382 (0.0479) loss_giou_dn_0: 1.1662 (1.1442) loss_fgl_dn_0: 0.9394 (0.9513) loss_ddf_dn_0: 0.3112 (0.3071) loss_vfl_dn_1: 0.4639 (0.4693) loss_bbox_dn_1: 0.0337 (0.0391) loss_giou_dn_1: 1.0715 (1.0486) loss_fgl_dn_1: 0.9695 (0.9777) loss_ddf_dn_1: 0.0220 (0.0262) loss_vfl_dn_2: 0.4597 (0.4654) loss_bbox_dn_2: 0.0332 (0.0381) loss_giou_dn_2: 1.0663 (1.0407) loss_fgl_dn_2: 0.9727 (0.9791) loss_ddf_dn_2: 0.0016 (0.0026) loss_vfl_dn_3: 0.4578 (0.4626) loss_bbox_dn_3: 0.0334 (0.0379) loss_giou_dn_3: 1.0656 (1.0400) loss_fgl_dn_3: 0.9728 (0.9793) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4597 (0.4622) loss_bbox_dn_4: 0.0334 (0.0379) loss_giou_dn_4: 1.0655 (1.0399) loss_fgl_dn_4: 0.9728 (0.9793) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4612 (0.4626) loss_bbox_dn_5: 0.0334 (0.0379) loss_giou_dn_5: 1.0655 (1.0399) loss_fgl_dn_5: 0.9728 (0.9793) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4221 (0.4308) loss_bbox_dn_pre: 0.0386 (0.0482) loss_giou_dn_pre: 1.1650 (1.1444) time: 0.8945 data: 0.0169 max mem: 29821\n", + "Epoch: [49] Total time: 0:01:13 (0.8727 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.7834 (38.0678) loss_vfl: 0.1351 (0.1664) loss_bbox: 0.2537 (0.2833) loss_giou: 1.8172 (1.8130) loss_fgl: 0.3942 (0.4135) loss_vfl_aux_0: 0.1394 (0.1719) loss_bbox_aux_0: 0.2543 (0.2871) loss_giou_aux_0: 1.8403 (1.8281) loss_fgl_aux_0: 0.3910 (0.4134) loss_ddf_aux_0: 0.1221 (0.1455) loss_vfl_aux_1: 0.1414 (0.1744) loss_bbox_aux_1: 0.2549 (0.2846) loss_giou_aux_1: 1.8199 (1.8146) loss_fgl_aux_1: 0.3948 (0.4134) loss_ddf_aux_1: 0.0137 (0.0194) loss_vfl_aux_2: 0.1416 (0.1725) loss_bbox_aux_2: 0.2539 (0.2835) loss_giou_aux_2: 1.8180 (1.8132) loss_fgl_aux_2: 0.3941 (0.4134) loss_ddf_aux_2: 0.0017 (0.0030) loss_vfl_aux_3: 0.1384 (0.1687) loss_bbox_aux_3: 0.2536 (0.2833) loss_giou_aux_3: 1.8177 (1.8131) loss_fgl_aux_3: 0.3943 (0.4135) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1353 (0.1667) loss_bbox_aux_4: 0.2537 (0.2833) loss_giou_aux_4: 1.8173 (1.8130) loss_fgl_aux_4: 0.3942 (0.4135) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1365 (0.1692) loss_bbox_pre: 0.2598 (0.2923) loss_giou_pre: 1.8317 (1.8218) loss_vfl_enc_0: 0.1278 (0.1649) loss_bbox_enc_0: 0.2942 (0.3197) loss_giou_enc_0: 1.9132 (1.8783) loss_vfl_dn_0: 0.4238 (0.4320) loss_bbox_dn_0: 0.0382 (0.0479) loss_giou_dn_0: 1.1662 (1.1442) loss_fgl_dn_0: 0.9394 (0.9513) loss_ddf_dn_0: 0.3112 (0.3071) loss_vfl_dn_1: 0.4639 (0.4693) loss_bbox_dn_1: 0.0337 (0.0391) loss_giou_dn_1: 1.0715 (1.0486) loss_fgl_dn_1: 0.9695 (0.9777) loss_ddf_dn_1: 0.0220 (0.0262) loss_vfl_dn_2: 0.4597 (0.4654) loss_bbox_dn_2: 0.0332 (0.0381) loss_giou_dn_2: 1.0663 (1.0407) loss_fgl_dn_2: 0.9727 (0.9791) loss_ddf_dn_2: 0.0016 (0.0026) loss_vfl_dn_3: 0.4578 (0.4626) loss_bbox_dn_3: 0.0334 (0.0379) loss_giou_dn_3: 1.0656 (1.0400) loss_fgl_dn_3: 0.9728 (0.9793) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4597 (0.4622) loss_bbox_dn_4: 0.0334 (0.0379) loss_giou_dn_4: 1.0655 (1.0399) loss_fgl_dn_4: 0.9728 (0.9793) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4612 (0.4626) loss_bbox_dn_5: 0.0334 (0.0379) loss_giou_dn_5: 1.0655 (1.0399) loss_fgl_dn_5: 0.9728 (0.9793) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4221 (0.4308) loss_bbox_dn_pre: 0.0386 (0.0482) loss_giou_dn_pre: 1.1650 (1.1444)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7629 data: 0.5138 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4049 data: 0.1709 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4210 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.041\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.093\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.021\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.037\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.203\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.313\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.019\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.066\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.084\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.078\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.282\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.875\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.179\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.046\n", + "best_stat: {'epoch': 49, 'coco_eval_bbox': 0.040527129924679134}\n", + "Epoch: [50] [ 0/84] eta: 0:02:28 lr: 0.000013 loss: 37.1050 (37.1050) loss_vfl: 0.1522 (0.1522) loss_bbox: 0.2451 (0.2451) loss_giou: 1.7936 (1.7936) loss_fgl: 0.4041 (0.4041) loss_vfl_aux_0: 0.1495 (0.1495) loss_bbox_aux_0: 0.2481 (0.2481) loss_giou_aux_0: 1.8025 (1.8025) loss_fgl_aux_0: 0.4019 (0.4019) loss_ddf_aux_0: 0.0613 (0.0613) loss_vfl_aux_1: 0.1545 (0.1545) loss_bbox_aux_1: 0.2450 (0.2450) loss_giou_aux_1: 1.7952 (1.7952) loss_fgl_aux_1: 0.4046 (0.4046) loss_ddf_aux_1: 0.0043 (0.0043) loss_vfl_aux_2: 0.1521 (0.1521) loss_bbox_aux_2: 0.2451 (0.2451) loss_giou_aux_2: 1.7940 (1.7940) loss_fgl_aux_2: 0.4041 (0.4041) loss_ddf_aux_2: 0.0005 (0.0005) loss_vfl_aux_3: 0.1521 (0.1521) loss_bbox_aux_3: 0.2450 (0.2450) loss_giou_aux_3: 1.7938 (1.7938) loss_fgl_aux_3: 0.4042 (0.4042) loss_ddf_aux_3: 0.0001 (0.0001) loss_vfl_aux_4: 0.1534 (0.1534) loss_bbox_aux_4: 0.2451 (0.2451) loss_giou_aux_4: 1.7936 (1.7936) loss_fgl_aux_4: 0.4042 (0.4042) loss_ddf_aux_4: 0.0000 (0.0000) loss_vfl_pre: 0.1465 (0.1465) loss_bbox_pre: 0.2545 (0.2545) loss_giou_pre: 1.7948 (1.7948) loss_vfl_enc_0: 0.1375 (0.1375) loss_bbox_enc_0: 0.2702 (0.2702) loss_giou_enc_0: 1.8367 (1.8367) loss_vfl_dn_0: 0.4097 (0.4097) loss_bbox_dn_0: 0.0450 (0.0450) loss_giou_dn_0: 1.1825 (1.1825) loss_fgl_dn_0: 0.9067 (0.9067) loss_ddf_dn_0: 0.2405 (0.2405) loss_vfl_dn_1: 0.4600 (0.4600) loss_bbox_dn_1: 0.0354 (0.0354) loss_giou_dn_1: 1.0860 (1.0860) loss_fgl_dn_1: 0.9459 (0.9459) loss_ddf_dn_1: 0.0109 (0.0109) loss_vfl_dn_2: 0.4526 (0.4526) loss_bbox_dn_2: 0.0351 (0.0351) loss_giou_dn_2: 1.0753 (1.0753) loss_fgl_dn_2: 0.9502 (0.9502) loss_ddf_dn_2: 0.0008 (0.0008) loss_vfl_dn_3: 0.4509 (0.4509) loss_bbox_dn_3: 0.0352 (0.0352) loss_giou_dn_3: 1.0754 (1.0754) loss_fgl_dn_3: 0.9500 (0.9500) loss_ddf_dn_3: 0.0002 (0.0002) loss_vfl_dn_4: 0.4521 (0.4521) loss_bbox_dn_4: 0.0352 (0.0352) loss_giou_dn_4: 1.0754 (1.0754) loss_fgl_dn_4: 0.9501 (0.9501) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4541 (0.4541) loss_bbox_dn_5: 0.0351 (0.0351) loss_giou_dn_5: 1.0754 (1.0754) loss_fgl_dn_5: 0.9501 (0.9501) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4070 (0.4070) loss_bbox_dn_pre: 0.0456 (0.0456) loss_giou_dn_pre: 1.1867 (1.1867) time: 1.7704 data: 0.9477 max mem: 29821\n", + "Epoch: [50] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.6639 (37.6766) loss_vfl: 0.1595 (0.1587) loss_bbox: 0.2346 (0.2603) loss_giou: 1.7267 (1.7951) loss_fgl: 0.4601 (0.4174) loss_vfl_aux_0: 0.1631 (0.1657) loss_bbox_aux_0: 0.2363 (0.2640) loss_giou_aux_0: 1.7483 (1.8106) loss_fgl_aux_0: 0.4626 (0.4174) loss_ddf_aux_0: 0.1697 (0.1486) loss_vfl_aux_1: 0.1588 (0.1677) loss_bbox_aux_1: 0.2342 (0.2611) loss_giou_aux_1: 1.7311 (1.7973) loss_fgl_aux_1: 0.4615 (0.4174) loss_ddf_aux_1: 0.0242 (0.0187) loss_vfl_aux_2: 0.1594 (0.1652) loss_bbox_aux_2: 0.2351 (0.2604) loss_giou_aux_2: 1.7279 (1.7956) loss_fgl_aux_2: 0.4611 (0.4174) loss_ddf_aux_2: 0.0031 (0.0025) loss_vfl_aux_3: 0.1588 (0.1613) loss_bbox_aux_3: 0.2347 (0.2602) loss_giou_aux_3: 1.7275 (1.7953) loss_fgl_aux_3: 0.4604 (0.4175) loss_ddf_aux_3: 0.0003 (0.0002) loss_vfl_aux_4: 0.1571 (0.1591) loss_bbox_aux_4: 0.2346 (0.2602) loss_giou_aux_4: 1.7269 (1.7952) loss_fgl_aux_4: 0.4602 (0.4175) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1617 (0.1634) loss_bbox_pre: 0.2404 (0.2681) loss_giou_pre: 1.7436 (1.8057) loss_vfl_enc_0: 0.1603 (0.1578) loss_bbox_enc_0: 0.2654 (0.2961) loss_giou_enc_0: 1.8044 (1.8589) loss_vfl_dn_0: 0.4131 (0.4223) loss_bbox_dn_0: 0.0497 (0.0465) loss_giou_dn_0: 1.1745 (1.1598) loss_fgl_dn_0: 0.9316 (0.9371) loss_ddf_dn_0: 0.3192 (0.3134) loss_vfl_dn_1: 0.4619 (0.4653) loss_bbox_dn_1: 0.0390 (0.0375) loss_giou_dn_1: 1.0492 (1.0566) loss_fgl_dn_1: 0.9686 (0.9687) loss_ddf_dn_1: 0.0271 (0.0258) loss_vfl_dn_2: 0.4639 (0.4619) loss_bbox_dn_2: 0.0380 (0.0366) loss_giou_dn_2: 1.0387 (1.0482) loss_fgl_dn_2: 0.9712 (0.9706) loss_ddf_dn_2: 0.0024 (0.0022) loss_vfl_dn_3: 0.4570 (0.4585) loss_bbox_dn_3: 0.0375 (0.0364) loss_giou_dn_3: 1.0370 (1.0476) loss_fgl_dn_3: 0.9712 (0.9708) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4551 (0.4575) loss_bbox_dn_4: 0.0374 (0.0364) loss_giou_dn_4: 1.0369 (1.0476) loss_fgl_dn_4: 0.9711 (0.9709) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4553 (0.4574) loss_bbox_dn_5: 0.0374 (0.0364) loss_giou_dn_5: 1.0369 (1.0476) loss_fgl_dn_5: 0.9712 (0.9709) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4116 (0.4213) loss_bbox_dn_pre: 0.0500 (0.0468) loss_giou_dn_pre: 1.1758 (1.1600) time: 0.8460 data: 0.0203 max mem: 29821\n", + "Epoch: [50] Total time: 0:01:13 (0.8789 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.6639 (37.6766) loss_vfl: 0.1595 (0.1587) loss_bbox: 0.2346 (0.2603) loss_giou: 1.7267 (1.7951) loss_fgl: 0.4601 (0.4174) loss_vfl_aux_0: 0.1631 (0.1657) loss_bbox_aux_0: 0.2363 (0.2640) loss_giou_aux_0: 1.7483 (1.8106) loss_fgl_aux_0: 0.4626 (0.4174) loss_ddf_aux_0: 0.1697 (0.1486) loss_vfl_aux_1: 0.1588 (0.1677) loss_bbox_aux_1: 0.2342 (0.2611) loss_giou_aux_1: 1.7311 (1.7973) loss_fgl_aux_1: 0.4615 (0.4174) loss_ddf_aux_1: 0.0242 (0.0187) loss_vfl_aux_2: 0.1594 (0.1652) loss_bbox_aux_2: 0.2351 (0.2604) loss_giou_aux_2: 1.7279 (1.7956) loss_fgl_aux_2: 0.4611 (0.4174) loss_ddf_aux_2: 0.0031 (0.0025) loss_vfl_aux_3: 0.1588 (0.1613) loss_bbox_aux_3: 0.2347 (0.2602) loss_giou_aux_3: 1.7275 (1.7953) loss_fgl_aux_3: 0.4604 (0.4175) loss_ddf_aux_3: 0.0003 (0.0002) loss_vfl_aux_4: 0.1571 (0.1591) loss_bbox_aux_4: 0.2346 (0.2602) loss_giou_aux_4: 1.7269 (1.7952) loss_fgl_aux_4: 0.4602 (0.4175) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1617 (0.1634) loss_bbox_pre: 0.2404 (0.2681) loss_giou_pre: 1.7436 (1.8057) loss_vfl_enc_0: 0.1603 (0.1578) loss_bbox_enc_0: 0.2654 (0.2961) loss_giou_enc_0: 1.8044 (1.8589) loss_vfl_dn_0: 0.4131 (0.4223) loss_bbox_dn_0: 0.0497 (0.0465) loss_giou_dn_0: 1.1745 (1.1598) loss_fgl_dn_0: 0.9316 (0.9371) loss_ddf_dn_0: 0.3192 (0.3134) loss_vfl_dn_1: 0.4619 (0.4653) loss_bbox_dn_1: 0.0390 (0.0375) loss_giou_dn_1: 1.0492 (1.0566) loss_fgl_dn_1: 0.9686 (0.9687) loss_ddf_dn_1: 0.0271 (0.0258) loss_vfl_dn_2: 0.4639 (0.4619) loss_bbox_dn_2: 0.0380 (0.0366) loss_giou_dn_2: 1.0387 (1.0482) loss_fgl_dn_2: 0.9712 (0.9706) loss_ddf_dn_2: 0.0024 (0.0022) loss_vfl_dn_3: 0.4570 (0.4585) loss_bbox_dn_3: 0.0375 (0.0364) loss_giou_dn_3: 1.0370 (1.0476) loss_fgl_dn_3: 0.9712 (0.9708) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4551 (0.4575) loss_bbox_dn_4: 0.0374 (0.0364) loss_giou_dn_4: 1.0369 (1.0476) loss_fgl_dn_4: 0.9711 (0.9709) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4553 (0.4574) loss_bbox_dn_5: 0.0374 (0.0364) loss_giou_dn_5: 1.0369 (1.0476) loss_fgl_dn_5: 0.9712 (0.9709) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4116 (0.4213) loss_bbox_dn_pre: 0.0500 (0.0468) loss_giou_dn_pre: 1.1758 (1.1600)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7451 data: 0.4999 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3980 data: 0.1679 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4135 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.043\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.099\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.022\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.039\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.228\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.529\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.009\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.072\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.091\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.087\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.380\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.825\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.191\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.049\n", + "best_stat: {'epoch': 50, 'coco_eval_bbox': 0.0434274456294194}\n", + "Epoch: [51] [ 0/84] eta: 0:03:13 lr: 0.000013 loss: 39.1431 (39.1431) loss_vfl: 0.1191 (0.1191) loss_bbox: 0.3903 (0.3903) loss_giou: 1.9568 (1.9568) loss_fgl: 0.3091 (0.3091) loss_vfl_aux_0: 0.1284 (0.1284) loss_bbox_aux_0: 0.3882 (0.3882) loss_giou_aux_0: 1.9700 (1.9700) loss_fgl_aux_0: 0.3088 (0.3088) loss_ddf_aux_0: 0.1797 (0.1797) loss_vfl_aux_1: 0.1262 (0.1262) loss_bbox_aux_1: 0.3934 (0.3934) loss_giou_aux_1: 1.9558 (1.9558) loss_fgl_aux_1: 0.3085 (0.3085) loss_ddf_aux_1: 0.0255 (0.0255) loss_vfl_aux_2: 0.1228 (0.1228) loss_bbox_aux_2: 0.3907 (0.3907) loss_giou_aux_2: 1.9568 (1.9568) loss_fgl_aux_2: 0.3086 (0.3086) loss_ddf_aux_2: 0.0042 (0.0042) loss_vfl_aux_3: 0.1209 (0.1209) loss_bbox_aux_3: 0.3902 (0.3902) loss_giou_aux_3: 1.9565 (1.9565) loss_fgl_aux_3: 0.3090 (0.3090) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1190 (0.1190) loss_bbox_aux_4: 0.3902 (0.3902) loss_giou_aux_4: 1.9569 (1.9569) loss_fgl_aux_4: 0.3091 (0.3091) loss_ddf_aux_4: -0.0000 (-0.0000) loss_vfl_pre: 0.1256 (0.1256) loss_bbox_pre: 0.3947 (0.3947) loss_giou_pre: 1.9625 (1.9625) loss_vfl_enc_0: 0.1302 (0.1302) loss_bbox_enc_0: 0.4089 (0.4089) loss_giou_enc_0: 2.0452 (2.0452) loss_vfl_dn_0: 0.4092 (0.4092) loss_bbox_dn_0: 0.0476 (0.0476) loss_giou_dn_0: 1.1843 (1.1843) loss_fgl_dn_0: 0.9146 (0.9146) loss_ddf_dn_0: 0.3732 (0.3732) loss_vfl_dn_1: 0.4578 (0.4578) loss_bbox_dn_1: 0.0387 (0.0387) loss_giou_dn_1: 1.0868 (1.0868) loss_fgl_dn_1: 0.9449 (0.9449) loss_ddf_dn_1: 0.0281 (0.0281) loss_vfl_dn_2: 0.4453 (0.4453) loss_bbox_dn_2: 0.0386 (0.0386) loss_giou_dn_2: 1.0826 (1.0826) loss_fgl_dn_2: 0.9460 (0.9460) loss_ddf_dn_2: 0.0025 (0.0025) loss_vfl_dn_3: 0.4453 (0.4453) loss_bbox_dn_3: 0.0387 (0.0387) loss_giou_dn_3: 1.0823 (1.0823) loss_fgl_dn_3: 0.9463 (0.9463) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4438 (0.4438) loss_bbox_dn_4: 0.0386 (0.0386) loss_giou_dn_4: 1.0823 (1.0823) loss_fgl_dn_4: 0.9465 (0.9465) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4468 (0.4468) loss_bbox_dn_5: 0.0387 (0.0387) loss_giou_dn_5: 1.0824 (1.0824) loss_fgl_dn_5: 0.9465 (0.9465) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4072 (0.4072) loss_bbox_dn_pre: 0.0480 (0.0480) loss_giou_dn_pre: 1.1867 (1.1867) time: 2.3033 data: 1.0484 max mem: 29821\n", + "Epoch: [51] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.5449 (38.1645) loss_vfl: 0.1652 (0.1676) loss_bbox: 0.2568 (0.2747) loss_giou: 1.8312 (1.8188) loss_fgl: 0.3765 (0.4148) loss_vfl_aux_0: 0.1670 (0.1731) loss_bbox_aux_0: 0.2667 (0.2801) loss_giou_aux_0: 1.8554 (1.8344) loss_fgl_aux_0: 0.3773 (0.4145) loss_ddf_aux_0: 0.1252 (0.1685) loss_vfl_aux_1: 0.1672 (0.1759) loss_bbox_aux_1: 0.2598 (0.2755) loss_giou_aux_1: 1.8325 (1.8206) loss_fgl_aux_1: 0.3768 (0.4149) loss_ddf_aux_1: 0.0145 (0.0215) loss_vfl_aux_2: 0.1638 (0.1742) loss_bbox_aux_2: 0.2574 (0.2750) loss_giou_aux_2: 1.8311 (1.8190) loss_fgl_aux_2: 0.3765 (0.4147) loss_ddf_aux_2: 0.0020 (0.0029) loss_vfl_aux_3: 0.1652 (0.1703) loss_bbox_aux_3: 0.2569 (0.2747) loss_giou_aux_3: 1.8312 (1.8189) loss_fgl_aux_3: 0.3765 (0.4148) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1641 (0.1679) loss_bbox_aux_4: 0.2568 (0.2746) loss_giou_aux_4: 1.8313 (1.8189) loss_fgl_aux_4: 0.3765 (0.4148) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1637 (0.1708) loss_bbox_pre: 0.2704 (0.2846) loss_giou_pre: 1.8502 (1.8290) loss_vfl_enc_0: 0.1628 (0.1667) loss_bbox_enc_0: 0.2884 (0.3090) loss_giou_enc_0: 1.8975 (1.8810) loss_vfl_dn_0: 0.4094 (0.4200) loss_bbox_dn_0: 0.0496 (0.0491) loss_giou_dn_0: 1.1950 (1.1722) loss_fgl_dn_0: 0.9194 (0.9375) loss_ddf_dn_0: 0.3347 (0.3561) loss_vfl_dn_1: 0.4658 (0.4640) loss_bbox_dn_1: 0.0410 (0.0396) loss_giou_dn_1: 1.0583 (1.0617) loss_fgl_dn_1: 0.9579 (0.9689) loss_ddf_dn_1: 0.0249 (0.0321) loss_vfl_dn_2: 0.4573 (0.4601) loss_bbox_dn_2: 0.0404 (0.0385) loss_giou_dn_2: 1.0532 (1.0538) loss_fgl_dn_2: 0.9578 (0.9708) loss_ddf_dn_2: 0.0022 (0.0027) loss_vfl_dn_3: 0.4541 (0.4578) loss_bbox_dn_3: 0.0403 (0.0383) loss_giou_dn_3: 1.0523 (1.0530) loss_fgl_dn_3: 0.9574 (0.9710) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4529 (0.4571) loss_bbox_dn_4: 0.0402 (0.0383) loss_giou_dn_4: 1.0523 (1.0529) loss_fgl_dn_4: 0.9575 (0.9711) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4529 (0.4575) loss_bbox_dn_5: 0.0402 (0.0382) loss_giou_dn_5: 1.0524 (1.0529) loss_fgl_dn_5: 0.9575 (0.9711) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4084 (0.4187) loss_bbox_dn_pre: 0.0494 (0.0493) loss_giou_dn_pre: 1.1928 (1.1726) time: 0.8229 data: 0.0189 max mem: 29821\n", + "Epoch: [51] Total time: 0:01:12 (0.8621 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.5449 (38.1645) loss_vfl: 0.1652 (0.1676) loss_bbox: 0.2568 (0.2747) loss_giou: 1.8312 (1.8188) loss_fgl: 0.3765 (0.4148) loss_vfl_aux_0: 0.1670 (0.1731) loss_bbox_aux_0: 0.2667 (0.2801) loss_giou_aux_0: 1.8554 (1.8344) loss_fgl_aux_0: 0.3773 (0.4145) loss_ddf_aux_0: 0.1252 (0.1685) loss_vfl_aux_1: 0.1672 (0.1759) loss_bbox_aux_1: 0.2598 (0.2755) loss_giou_aux_1: 1.8325 (1.8206) loss_fgl_aux_1: 0.3768 (0.4149) loss_ddf_aux_1: 0.0145 (0.0215) loss_vfl_aux_2: 0.1638 (0.1742) loss_bbox_aux_2: 0.2574 (0.2750) loss_giou_aux_2: 1.8311 (1.8190) loss_fgl_aux_2: 0.3765 (0.4147) loss_ddf_aux_2: 0.0020 (0.0029) loss_vfl_aux_3: 0.1652 (0.1703) loss_bbox_aux_3: 0.2569 (0.2747) loss_giou_aux_3: 1.8312 (1.8189) loss_fgl_aux_3: 0.3765 (0.4148) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1641 (0.1679) loss_bbox_aux_4: 0.2568 (0.2746) loss_giou_aux_4: 1.8313 (1.8189) loss_fgl_aux_4: 0.3765 (0.4148) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1637 (0.1708) loss_bbox_pre: 0.2704 (0.2846) loss_giou_pre: 1.8502 (1.8290) loss_vfl_enc_0: 0.1628 (0.1667) loss_bbox_enc_0: 0.2884 (0.3090) loss_giou_enc_0: 1.8975 (1.8810) loss_vfl_dn_0: 0.4094 (0.4200) loss_bbox_dn_0: 0.0496 (0.0491) loss_giou_dn_0: 1.1950 (1.1722) loss_fgl_dn_0: 0.9194 (0.9375) loss_ddf_dn_0: 0.3347 (0.3561) loss_vfl_dn_1: 0.4658 (0.4640) loss_bbox_dn_1: 0.0410 (0.0396) loss_giou_dn_1: 1.0583 (1.0617) loss_fgl_dn_1: 0.9579 (0.9689) loss_ddf_dn_1: 0.0249 (0.0321) loss_vfl_dn_2: 0.4573 (0.4601) loss_bbox_dn_2: 0.0404 (0.0385) loss_giou_dn_2: 1.0532 (1.0538) loss_fgl_dn_2: 0.9578 (0.9708) loss_ddf_dn_2: 0.0022 (0.0027) loss_vfl_dn_3: 0.4541 (0.4578) loss_bbox_dn_3: 0.0403 (0.0383) loss_giou_dn_3: 1.0523 (1.0530) loss_fgl_dn_3: 0.9574 (0.9710) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4529 (0.4571) loss_bbox_dn_4: 0.0402 (0.0383) loss_giou_dn_4: 1.0523 (1.0529) loss_fgl_dn_4: 0.9575 (0.9711) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4529 (0.4575) loss_bbox_dn_5: 0.0402 (0.0382) loss_giou_dn_5: 1.0524 (1.0529) loss_fgl_dn_5: 0.9575 (0.9711) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4084 (0.4187) loss_bbox_dn_pre: 0.0494 (0.0493) loss_giou_dn_pre: 1.1928 (1.1726)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7666 data: 0.5220 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.5403 data: 0.1726 max mem: 29821\n", + "Test: Total time: 0:00:02 (0.5589 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.044\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.096\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.023\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.035\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.208\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.457\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.010\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.071\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.090\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.085\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.293\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.800\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.186\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.053\n", + "best_stat: {'epoch': 51, 'coco_eval_bbox': 0.04358917660514121}\n", + "Epoch: [52] [ 0/84] eta: 0:02:29 lr: 0.000013 loss: 38.6466 (38.6466) loss_vfl: 0.1287 (0.1287) loss_bbox: 0.3580 (0.3580) loss_giou: 1.8794 (1.8794) loss_fgl: 0.3767 (0.3767) loss_vfl_aux_0: 0.1421 (0.1421) loss_bbox_aux_0: 0.3702 (0.3702) loss_giou_aux_0: 1.8826 (1.8826) loss_fgl_aux_0: 0.3763 (0.3763) loss_ddf_aux_0: 0.2217 (0.2217) loss_vfl_aux_1: 0.1453 (0.1453) loss_bbox_aux_1: 0.3592 (0.3592) loss_giou_aux_1: 1.8819 (1.8819) loss_fgl_aux_1: 0.3763 (0.3763) loss_ddf_aux_1: 0.0284 (0.0284) loss_vfl_aux_2: 0.1412 (0.1412) loss_bbox_aux_2: 0.3586 (0.3586) loss_giou_aux_2: 1.8796 (1.8796) loss_fgl_aux_2: 0.3765 (0.3765) loss_ddf_aux_2: 0.0050 (0.0050) loss_vfl_aux_3: 0.1331 (0.1331) loss_bbox_aux_3: 0.3583 (0.3583) loss_giou_aux_3: 1.8792 (1.8792) loss_fgl_aux_3: 0.3766 (0.3766) loss_ddf_aux_3: 0.0005 (0.0005) loss_vfl_aux_4: 0.1287 (0.1287) loss_bbox_aux_4: 0.3579 (0.3579) loss_giou_aux_4: 1.8793 (1.8793) loss_fgl_aux_4: 0.3767 (0.3767) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1405 (0.1405) loss_bbox_pre: 0.3757 (0.3757) loss_giou_pre: 1.8773 (1.8773) loss_vfl_enc_0: 0.1467 (0.1467) loss_bbox_enc_0: 0.3898 (0.3898) loss_giou_enc_0: 1.9188 (1.9188) loss_vfl_dn_0: 0.4097 (0.4097) loss_bbox_dn_0: 0.0588 (0.0588) loss_giou_dn_0: 1.1645 (1.1645) loss_fgl_dn_0: 0.9378 (0.9378) loss_ddf_dn_0: 0.3390 (0.3390) loss_vfl_dn_1: 0.4568 (0.4568) loss_bbox_dn_1: 0.0459 (0.0459) loss_giou_dn_1: 1.0426 (1.0426) loss_fgl_dn_1: 0.9668 (0.9668) loss_ddf_dn_1: 0.0268 (0.0268) loss_vfl_dn_2: 0.4497 (0.4497) loss_bbox_dn_2: 0.0432 (0.0432) loss_giou_dn_2: 1.0292 (1.0292) loss_fgl_dn_2: 0.9669 (0.9669) loss_ddf_dn_2: 0.0030 (0.0030) loss_vfl_dn_3: 0.4451 (0.4451) loss_bbox_dn_3: 0.0431 (0.0431) loss_giou_dn_3: 1.0279 (1.0279) loss_fgl_dn_3: 0.9671 (0.9671) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4421 (0.4421) loss_bbox_dn_4: 0.0432 (0.0432) loss_giou_dn_4: 1.0281 (1.0281) loss_fgl_dn_4: 0.9670 (0.9670) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4419 (0.4419) loss_bbox_dn_5: 0.0432 (0.0432) loss_giou_dn_5: 1.0281 (1.0281) loss_fgl_dn_5: 0.9670 (0.9670) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4084 (0.4084) loss_bbox_dn_pre: 0.0590 (0.0590) loss_giou_dn_pre: 1.1673 (1.1673) time: 1.7792 data: 0.8174 max mem: 29821\n", + "Epoch: [52] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.5741 (37.9143) loss_vfl: 0.1500 (0.1674) loss_bbox: 0.2583 (0.2633) loss_giou: 1.8032 (1.8026) loss_fgl: 0.4089 (0.4217) loss_vfl_aux_0: 0.1616 (0.1728) loss_bbox_aux_0: 0.2566 (0.2674) loss_giou_aux_0: 1.8098 (1.8147) loss_fgl_aux_0: 0.4086 (0.4207) loss_ddf_aux_0: 0.1543 (0.1589) loss_vfl_aux_1: 0.1620 (0.1755) loss_bbox_aux_1: 0.2594 (0.2640) loss_giou_aux_1: 1.8044 (1.8044) loss_fgl_aux_1: 0.4090 (0.4217) loss_ddf_aux_1: 0.0215 (0.0235) loss_vfl_aux_2: 0.1598 (0.1731) loss_bbox_aux_2: 0.2581 (0.2636) loss_giou_aux_2: 1.8033 (1.8026) loss_fgl_aux_2: 0.4087 (0.4216) loss_ddf_aux_2: 0.0022 (0.0035) loss_vfl_aux_3: 0.1542 (0.1696) loss_bbox_aux_3: 0.2580 (0.2633) loss_giou_aux_3: 1.8035 (1.8026) loss_fgl_aux_3: 0.4089 (0.4217) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1503 (0.1674) loss_bbox_aux_4: 0.2583 (0.2632) loss_giou_aux_4: 1.8032 (1.8026) loss_fgl_aux_4: 0.4090 (0.4217) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1599 (0.1704) loss_bbox_pre: 0.2579 (0.2710) loss_giou_pre: 1.8080 (1.8107) loss_vfl_enc_0: 0.1526 (0.1669) loss_bbox_enc_0: 0.2782 (0.2952) loss_giou_enc_0: 1.8732 (1.8576) loss_vfl_dn_0: 0.4382 (0.4326) loss_bbox_dn_0: 0.0437 (0.0472) loss_giou_dn_0: 1.1305 (1.1381) loss_fgl_dn_0: 0.9592 (0.9552) loss_ddf_dn_0: 0.3213 (0.3187) loss_vfl_dn_1: 0.4719 (0.4681) loss_bbox_dn_1: 0.0338 (0.0385) loss_giou_dn_1: 1.0448 (1.0476) loss_fgl_dn_1: 0.9848 (0.9849) loss_ddf_dn_1: 0.0290 (0.0311) loss_vfl_dn_2: 0.4690 (0.4650) loss_bbox_dn_2: 0.0325 (0.0375) loss_giou_dn_2: 1.0361 (1.0396) loss_fgl_dn_2: 0.9873 (0.9869) loss_ddf_dn_2: 0.0031 (0.0036) loss_vfl_dn_3: 0.4675 (0.4615) loss_bbox_dn_3: 0.0322 (0.0373) loss_giou_dn_3: 1.0347 (1.0389) loss_fgl_dn_3: 0.9875 (0.9873) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4656 (0.4608) loss_bbox_dn_4: 0.0323 (0.0373) loss_giou_dn_4: 1.0345 (1.0388) loss_fgl_dn_4: 0.9876 (0.9874) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4658 (0.4609) loss_bbox_dn_5: 0.0322 (0.0373) loss_giou_dn_5: 1.0345 (1.0388) loss_fgl_dn_5: 0.9876 (0.9874) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4370 (0.4313) loss_bbox_dn_pre: 0.0440 (0.0475) loss_giou_dn_pre: 1.1332 (1.1392) time: 0.8561 data: 0.0168 max mem: 29821\n", + "Epoch: [52] Total time: 0:01:12 (0.8575 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.5741 (37.9143) loss_vfl: 0.1500 (0.1674) loss_bbox: 0.2583 (0.2633) loss_giou: 1.8032 (1.8026) loss_fgl: 0.4089 (0.4217) loss_vfl_aux_0: 0.1616 (0.1728) loss_bbox_aux_0: 0.2566 (0.2674) loss_giou_aux_0: 1.8098 (1.8147) loss_fgl_aux_0: 0.4086 (0.4207) loss_ddf_aux_0: 0.1543 (0.1589) loss_vfl_aux_1: 0.1620 (0.1755) loss_bbox_aux_1: 0.2594 (0.2640) loss_giou_aux_1: 1.8044 (1.8044) loss_fgl_aux_1: 0.4090 (0.4217) loss_ddf_aux_1: 0.0215 (0.0235) loss_vfl_aux_2: 0.1598 (0.1731) loss_bbox_aux_2: 0.2581 (0.2636) loss_giou_aux_2: 1.8033 (1.8026) loss_fgl_aux_2: 0.4087 (0.4216) loss_ddf_aux_2: 0.0022 (0.0035) loss_vfl_aux_3: 0.1542 (0.1696) loss_bbox_aux_3: 0.2580 (0.2633) loss_giou_aux_3: 1.8035 (1.8026) loss_fgl_aux_3: 0.4089 (0.4217) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1503 (0.1674) loss_bbox_aux_4: 0.2583 (0.2632) loss_giou_aux_4: 1.8032 (1.8026) loss_fgl_aux_4: 0.4090 (0.4217) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1599 (0.1704) loss_bbox_pre: 0.2579 (0.2710) loss_giou_pre: 1.8080 (1.8107) loss_vfl_enc_0: 0.1526 (0.1669) loss_bbox_enc_0: 0.2782 (0.2952) loss_giou_enc_0: 1.8732 (1.8576) loss_vfl_dn_0: 0.4382 (0.4326) loss_bbox_dn_0: 0.0437 (0.0472) loss_giou_dn_0: 1.1305 (1.1381) loss_fgl_dn_0: 0.9592 (0.9552) loss_ddf_dn_0: 0.3213 (0.3187) loss_vfl_dn_1: 0.4719 (0.4681) loss_bbox_dn_1: 0.0338 (0.0385) loss_giou_dn_1: 1.0448 (1.0476) loss_fgl_dn_1: 0.9848 (0.9849) loss_ddf_dn_1: 0.0290 (0.0311) loss_vfl_dn_2: 0.4690 (0.4650) loss_bbox_dn_2: 0.0325 (0.0375) loss_giou_dn_2: 1.0361 (1.0396) loss_fgl_dn_2: 0.9873 (0.9869) loss_ddf_dn_2: 0.0031 (0.0036) loss_vfl_dn_3: 0.4675 (0.4615) loss_bbox_dn_3: 0.0322 (0.0373) loss_giou_dn_3: 1.0347 (1.0389) loss_fgl_dn_3: 0.9875 (0.9873) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4656 (0.4608) loss_bbox_dn_4: 0.0323 (0.0373) loss_giou_dn_4: 1.0345 (1.0388) loss_fgl_dn_4: 0.9876 (0.9874) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4658 (0.4609) loss_bbox_dn_5: 0.0322 (0.0373) loss_giou_dn_5: 1.0345 (1.0388) loss_fgl_dn_5: 0.9876 (0.9874) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4370 (0.4313) loss_bbox_dn_pre: 0.0440 (0.0475) loss_giou_dn_pre: 1.1332 (1.1392)\n", + "Test: [0/4] eta: 0:00:03 time: 0.8120 data: 0.5666 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4171 data: 0.1903 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4320 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.041\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.097\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.023\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.036\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.194\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.343\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.009\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.074\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.093\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.089\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.273\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.800\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.186\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.074\n", + "best_stat: {'epoch': 51, 'coco_eval_bbox': 0.04358917660514121}\n", + "Epoch: [53] [ 0/84] eta: 0:02:18 lr: 0.000013 loss: 38.0534 (38.0534) loss_vfl: 0.2292 (0.2292) loss_bbox: 0.2880 (0.2880) loss_giou: 1.6789 (1.6789) loss_fgl: 0.4797 (0.4797) loss_vfl_aux_0: 0.2343 (0.2343) loss_bbox_aux_0: 0.2955 (0.2955) loss_giou_aux_0: 1.6938 (1.6938) loss_fgl_aux_0: 0.4804 (0.4804) loss_ddf_aux_0: 0.1984 (0.1984) loss_vfl_aux_1: 0.2377 (0.2377) loss_bbox_aux_1: 0.2895 (0.2895) loss_giou_aux_1: 1.6790 (1.6790) loss_fgl_aux_1: 0.4793 (0.4793) loss_ddf_aux_1: 0.0233 (0.0233) loss_vfl_aux_2: 0.2363 (0.2363) loss_bbox_aux_2: 0.2881 (0.2881) loss_giou_aux_2: 1.6793 (1.6793) loss_fgl_aux_2: 0.4797 (0.4797) loss_ddf_aux_2: 0.0026 (0.0026) loss_vfl_aux_3: 0.2349 (0.2349) loss_bbox_aux_3: 0.2879 (0.2879) loss_giou_aux_3: 1.6793 (1.6793) loss_fgl_aux_3: 0.4798 (0.4798) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.2290 (0.2290) loss_bbox_aux_4: 0.2880 (0.2880) loss_giou_aux_4: 1.6789 (1.6789) loss_fgl_aux_4: 0.4797 (0.4797) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.2324 (0.2324) loss_bbox_pre: 0.2989 (0.2989) loss_giou_pre: 1.6866 (1.6866) loss_vfl_enc_0: 0.2424 (0.2424) loss_bbox_enc_0: 0.3223 (0.3223) loss_giou_enc_0: 1.7455 (1.7455) loss_vfl_dn_0: 0.4346 (0.4346) loss_bbox_dn_0: 0.0578 (0.0578) loss_giou_dn_0: 1.0864 (1.0864) loss_fgl_dn_0: 0.9726 (0.9726) loss_ddf_dn_0: 0.4871 (0.4871) loss_vfl_dn_1: 0.4802 (0.4802) loss_bbox_dn_1: 0.0448 (0.0448) loss_giou_dn_1: 0.9912 (0.9912) loss_fgl_dn_1: 1.0005 (1.0005) loss_ddf_dn_1: 0.0363 (0.0363) loss_vfl_dn_2: 0.4753 (0.4753) loss_bbox_dn_2: 0.0434 (0.0434) loss_giou_dn_2: 0.9767 (0.9767) loss_fgl_dn_2: 1.0065 (1.0065) loss_ddf_dn_2: 0.0043 (0.0043) loss_vfl_dn_3: 0.4795 (0.4795) loss_bbox_dn_3: 0.0431 (0.0431) loss_giou_dn_3: 0.9760 (0.9760) loss_fgl_dn_3: 1.0071 (1.0071) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4802 (0.4802) loss_bbox_dn_4: 0.0430 (0.0430) loss_giou_dn_4: 0.9757 (0.9757) loss_fgl_dn_4: 1.0074 (1.0074) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4812 (0.4812) loss_bbox_dn_5: 0.0430 (0.0430) loss_giou_dn_5: 0.9757 (0.9757) loss_fgl_dn_5: 1.0073 (1.0073) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4338 (0.4338) loss_bbox_dn_pre: 0.0576 (0.0576) loss_giou_dn_pre: 1.0849 (1.0849) time: 1.6528 data: 0.8605 max mem: 29821\n", + "Epoch: [53] [83/84] eta: 0:00:00 lr: 0.000013 loss: 36.9474 (37.7391) loss_vfl: 0.1843 (0.1722) loss_bbox: 0.2049 (0.2525) loss_giou: 1.7263 (1.7847) loss_fgl: 0.4599 (0.4326) loss_vfl_aux_0: 0.1873 (0.1778) loss_bbox_aux_0: 0.2135 (0.2573) loss_giou_aux_0: 1.7451 (1.8000) loss_fgl_aux_0: 0.4602 (0.4314) loss_ddf_aux_0: 0.1369 (0.1586) loss_vfl_aux_1: 0.1907 (0.1812) loss_bbox_aux_1: 0.2071 (0.2533) loss_giou_aux_1: 1.7257 (1.7866) loss_fgl_aux_1: 0.4607 (0.4325) loss_ddf_aux_1: 0.0238 (0.0219) loss_vfl_aux_2: 0.1904 (0.1791) loss_bbox_aux_2: 0.2052 (0.2525) loss_giou_aux_2: 1.7262 (1.7853) loss_fgl_aux_2: 0.4599 (0.4326) loss_ddf_aux_2: 0.0036 (0.0031) loss_vfl_aux_3: 0.1857 (0.1753) loss_bbox_aux_3: 0.2049 (0.2523) loss_giou_aux_3: 1.7263 (1.7850) loss_fgl_aux_3: 0.4599 (0.4327) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1831 (0.1728) loss_bbox_aux_4: 0.2050 (0.2525) loss_giou_aux_4: 1.7263 (1.7847) loss_fgl_aux_4: 0.4599 (0.4326) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1843 (0.1753) loss_bbox_pre: 0.2168 (0.2611) loss_giou_pre: 1.7393 (1.7955) loss_vfl_enc_0: 0.1805 (0.1735) loss_bbox_enc_0: 0.2550 (0.2902) loss_giou_enc_0: 1.8007 (1.8472) loss_vfl_dn_0: 0.4363 (0.4318) loss_bbox_dn_0: 0.0448 (0.0476) loss_giou_dn_0: 1.1359 (1.1405) loss_fgl_dn_0: 0.9556 (0.9544) loss_ddf_dn_0: 0.2662 (0.2768) loss_vfl_dn_1: 0.4724 (0.4677) loss_bbox_dn_1: 0.0344 (0.0385) loss_giou_dn_1: 1.0470 (1.0441) loss_fgl_dn_1: 0.9804 (0.9828) loss_ddf_dn_1: 0.0246 (0.0269) loss_vfl_dn_2: 0.4673 (0.4645) loss_bbox_dn_2: 0.0343 (0.0375) loss_giou_dn_2: 1.0386 (1.0350) loss_fgl_dn_2: 0.9823 (0.9855) loss_ddf_dn_2: 0.0021 (0.0031) loss_vfl_dn_3: 0.4658 (0.4617) loss_bbox_dn_3: 0.0340 (0.0374) loss_giou_dn_3: 1.0388 (1.0342) loss_fgl_dn_3: 0.9830 (0.9859) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4661 (0.4607) loss_bbox_dn_4: 0.0339 (0.0374) loss_giou_dn_4: 1.0388 (1.0342) loss_fgl_dn_4: 0.9833 (0.9860) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4639 (0.4610) loss_bbox_dn_5: 0.0339 (0.0374) loss_giou_dn_5: 1.0389 (1.0342) loss_fgl_dn_5: 0.9834 (0.9860) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4343 (0.4305) loss_bbox_dn_pre: 0.0451 (0.0478) loss_giou_dn_pre: 1.1380 (1.1414) time: 0.7966 data: 0.0170 max mem: 29821\n", + "Epoch: [53] Total time: 0:01:12 (0.8612 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 36.9474 (37.7391) loss_vfl: 0.1843 (0.1722) loss_bbox: 0.2049 (0.2525) loss_giou: 1.7263 (1.7847) loss_fgl: 0.4599 (0.4326) loss_vfl_aux_0: 0.1873 (0.1778) loss_bbox_aux_0: 0.2135 (0.2573) loss_giou_aux_0: 1.7451 (1.8000) loss_fgl_aux_0: 0.4602 (0.4314) loss_ddf_aux_0: 0.1369 (0.1586) loss_vfl_aux_1: 0.1907 (0.1812) loss_bbox_aux_1: 0.2071 (0.2533) loss_giou_aux_1: 1.7257 (1.7866) loss_fgl_aux_1: 0.4607 (0.4325) loss_ddf_aux_1: 0.0238 (0.0219) loss_vfl_aux_2: 0.1904 (0.1791) loss_bbox_aux_2: 0.2052 (0.2525) loss_giou_aux_2: 1.7262 (1.7853) loss_fgl_aux_2: 0.4599 (0.4326) loss_ddf_aux_2: 0.0036 (0.0031) loss_vfl_aux_3: 0.1857 (0.1753) loss_bbox_aux_3: 0.2049 (0.2523) loss_giou_aux_3: 1.7263 (1.7850) loss_fgl_aux_3: 0.4599 (0.4327) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1831 (0.1728) loss_bbox_aux_4: 0.2050 (0.2525) loss_giou_aux_4: 1.7263 (1.7847) loss_fgl_aux_4: 0.4599 (0.4326) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1843 (0.1753) loss_bbox_pre: 0.2168 (0.2611) loss_giou_pre: 1.7393 (1.7955) loss_vfl_enc_0: 0.1805 (0.1735) loss_bbox_enc_0: 0.2550 (0.2902) loss_giou_enc_0: 1.8007 (1.8472) loss_vfl_dn_0: 0.4363 (0.4318) loss_bbox_dn_0: 0.0448 (0.0476) loss_giou_dn_0: 1.1359 (1.1405) loss_fgl_dn_0: 0.9556 (0.9544) loss_ddf_dn_0: 0.2662 (0.2768) loss_vfl_dn_1: 0.4724 (0.4677) loss_bbox_dn_1: 0.0344 (0.0385) loss_giou_dn_1: 1.0470 (1.0441) loss_fgl_dn_1: 0.9804 (0.9828) loss_ddf_dn_1: 0.0246 (0.0269) loss_vfl_dn_2: 0.4673 (0.4645) loss_bbox_dn_2: 0.0343 (0.0375) loss_giou_dn_2: 1.0386 (1.0350) loss_fgl_dn_2: 0.9823 (0.9855) loss_ddf_dn_2: 0.0021 (0.0031) loss_vfl_dn_3: 0.4658 (0.4617) loss_bbox_dn_3: 0.0340 (0.0374) loss_giou_dn_3: 1.0388 (1.0342) loss_fgl_dn_3: 0.9830 (0.9859) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4661 (0.4607) loss_bbox_dn_4: 0.0339 (0.0374) loss_giou_dn_4: 1.0388 (1.0342) loss_fgl_dn_4: 0.9833 (0.9860) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4639 (0.4610) loss_bbox_dn_5: 0.0339 (0.0374) loss_giou_dn_5: 1.0389 (1.0342) loss_fgl_dn_5: 0.9834 (0.9860) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4343 (0.4305) loss_bbox_dn_pre: 0.0451 (0.0478) loss_giou_dn_pre: 1.1380 (1.1414)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7462 data: 0.5008 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4004 data: 0.1714 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4152 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.043\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.096\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.022\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.035\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.202\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.314\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.009\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.073\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.093\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.086\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.284\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.675\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.184\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.073\n", + "best_stat: {'epoch': 51, 'coco_eval_bbox': 0.04358917660514121}\n", + "Epoch: [54] [ 0/84] eta: 0:02:49 lr: 0.000013 loss: 38.9142 (38.9142) loss_vfl: 0.1624 (0.1624) loss_bbox: 0.3105 (0.3105) loss_giou: 1.9811 (1.9811) loss_fgl: 0.3440 (0.3440) loss_vfl_aux_0: 0.1674 (0.1674) loss_bbox_aux_0: 0.3121 (0.3121) loss_giou_aux_0: 1.9890 (1.9890) loss_fgl_aux_0: 0.3440 (0.3440) loss_ddf_aux_0: 0.0512 (0.0512) loss_vfl_aux_1: 0.1713 (0.1713) loss_bbox_aux_1: 0.3117 (0.3117) loss_giou_aux_1: 1.9810 (1.9810) loss_fgl_aux_1: 0.3438 (0.3438) loss_ddf_aux_1: 0.0054 (0.0054) loss_vfl_aux_2: 0.1677 (0.1677) loss_bbox_aux_2: 0.3103 (0.3103) loss_giou_aux_2: 1.9815 (1.9815) loss_fgl_aux_2: 0.3440 (0.3440) loss_ddf_aux_2: 0.0006 (0.0006) loss_vfl_aux_3: 0.1643 (0.1643) loss_bbox_aux_3: 0.3104 (0.3104) loss_giou_aux_3: 1.9812 (1.9812) loss_fgl_aux_3: 0.3440 (0.3440) loss_ddf_aux_3: 0.0001 (0.0001) loss_vfl_aux_4: 0.1624 (0.1624) loss_bbox_aux_4: 0.3105 (0.3105) loss_giou_aux_4: 1.9811 (1.9811) loss_fgl_aux_4: 0.3440 (0.3440) loss_ddf_aux_4: 0.0000 (0.0000) loss_vfl_pre: 0.1633 (0.1633) loss_bbox_pre: 0.3160 (0.3160) loss_giou_pre: 1.9849 (1.9849) loss_vfl_enc_0: 0.1628 (0.1628) loss_bbox_enc_0: 0.3416 (0.3416) loss_giou_enc_0: 2.0103 (2.0103) loss_vfl_dn_0: 0.4270 (0.4270) loss_bbox_dn_0: 0.0361 (0.0361) loss_giou_dn_0: 1.1487 (1.1487) loss_fgl_dn_0: 0.9362 (0.9362) loss_ddf_dn_0: 0.2823 (0.2823) loss_vfl_dn_1: 0.4658 (0.4658) loss_bbox_dn_1: 0.0281 (0.0281) loss_giou_dn_1: 1.0606 (1.0606) loss_fgl_dn_1: 0.9690 (0.9690) loss_ddf_dn_1: 0.0209 (0.0209) loss_vfl_dn_2: 0.4712 (0.4712) loss_bbox_dn_2: 0.0282 (0.0282) loss_giou_dn_2: 1.0557 (1.0557) loss_fgl_dn_2: 0.9722 (0.9722) loss_ddf_dn_2: 0.0017 (0.0017) loss_vfl_dn_3: 0.4600 (0.4600) loss_bbox_dn_3: 0.0282 (0.0282) loss_giou_dn_3: 1.0549 (1.0549) loss_fgl_dn_3: 0.9727 (0.9727) loss_ddf_dn_3: 0.0002 (0.0002) loss_vfl_dn_4: 0.4585 (0.4585) loss_bbox_dn_4: 0.0282 (0.0282) loss_giou_dn_4: 1.0550 (1.0550) loss_fgl_dn_4: 0.9728 (0.9728) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4585 (0.4585) loss_bbox_dn_5: 0.0282 (0.0282) loss_giou_dn_5: 1.0550 (1.0550) loss_fgl_dn_5: 0.9729 (0.9729) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4260 (0.4260) loss_bbox_dn_pre: 0.0361 (0.0361) loss_giou_dn_pre: 1.1472 (1.1472) time: 2.0225 data: 1.0121 max mem: 29821\n", + "Epoch: [54] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.1003 (37.7657) loss_vfl: 0.1479 (0.1659) loss_bbox: 0.2241 (0.2579) loss_giou: 1.7344 (1.7885) loss_fgl: 0.4542 (0.4333) loss_vfl_aux_0: 0.1577 (0.1730) loss_bbox_aux_0: 0.2264 (0.2623) loss_giou_aux_0: 1.7499 (1.8018) loss_fgl_aux_0: 0.4547 (0.4337) loss_ddf_aux_0: 0.1978 (0.1498) loss_vfl_aux_1: 0.1602 (0.1743) loss_bbox_aux_1: 0.2251 (0.2596) loss_giou_aux_1: 1.7352 (1.7894) loss_fgl_aux_1: 0.4553 (0.4331) loss_ddf_aux_1: 0.0253 (0.0217) loss_vfl_aux_2: 0.1564 (0.1725) loss_bbox_aux_2: 0.2245 (0.2581) loss_giou_aux_2: 1.7338 (1.7887) loss_fgl_aux_2: 0.4543 (0.4332) loss_ddf_aux_2: 0.0021 (0.0025) loss_vfl_aux_3: 0.1523 (0.1689) loss_bbox_aux_3: 0.2242 (0.2579) loss_giou_aux_3: 1.7342 (1.7886) loss_fgl_aux_3: 0.4541 (0.4333) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1500 (0.1666) loss_bbox_aux_4: 0.2241 (0.2579) loss_giou_aux_4: 1.7344 (1.7885) loss_fgl_aux_4: 0.4542 (0.4333) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1556 (0.1705) loss_bbox_pre: 0.2297 (0.2659) loss_giou_pre: 1.7468 (1.7974) loss_vfl_enc_0: 0.1550 (0.1665) loss_bbox_enc_0: 0.2547 (0.2891) loss_giou_enc_0: 1.7923 (1.8451) loss_vfl_dn_0: 0.4263 (0.4298) loss_bbox_dn_0: 0.0449 (0.0471) loss_giou_dn_0: 1.1521 (1.1466) loss_fgl_dn_0: 0.9454 (0.9511) loss_ddf_dn_0: 0.3845 (0.2987) loss_vfl_dn_1: 0.4683 (0.4668) loss_bbox_dn_1: 0.0345 (0.0382) loss_giou_dn_1: 1.0379 (1.0504) loss_fgl_dn_1: 0.9731 (0.9777) loss_ddf_dn_1: 0.0294 (0.0295) loss_vfl_dn_2: 0.4636 (0.4632) loss_bbox_dn_2: 0.0335 (0.0372) loss_giou_dn_2: 1.0288 (1.0412) loss_fgl_dn_2: 0.9746 (0.9802) loss_ddf_dn_2: 0.0020 (0.0022) loss_vfl_dn_3: 0.4624 (0.4602) loss_bbox_dn_3: 0.0332 (0.0370) loss_giou_dn_3: 1.0281 (1.0406) loss_fgl_dn_3: 0.9740 (0.9804) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4600 (0.4593) loss_bbox_dn_4: 0.0332 (0.0370) loss_giou_dn_4: 1.0282 (1.0406) loss_fgl_dn_4: 0.9741 (0.9805) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4587 (0.4597) loss_bbox_dn_5: 0.0332 (0.0370) loss_giou_dn_5: 1.0282 (1.0406) loss_fgl_dn_5: 0.9741 (0.9805) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4255 (0.4289) loss_bbox_dn_pre: 0.0452 (0.0473) loss_giou_dn_pre: 1.1532 (1.1467) time: 0.8484 data: 0.0176 max mem: 29821\n", + "Epoch: [54] Total time: 0:01:12 (0.8580 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.1003 (37.7657) loss_vfl: 0.1479 (0.1659) loss_bbox: 0.2241 (0.2579) loss_giou: 1.7344 (1.7885) loss_fgl: 0.4542 (0.4333) loss_vfl_aux_0: 0.1577 (0.1730) loss_bbox_aux_0: 0.2264 (0.2623) loss_giou_aux_0: 1.7499 (1.8018) loss_fgl_aux_0: 0.4547 (0.4337) loss_ddf_aux_0: 0.1978 (0.1498) loss_vfl_aux_1: 0.1602 (0.1743) loss_bbox_aux_1: 0.2251 (0.2596) loss_giou_aux_1: 1.7352 (1.7894) loss_fgl_aux_1: 0.4553 (0.4331) loss_ddf_aux_1: 0.0253 (0.0217) loss_vfl_aux_2: 0.1564 (0.1725) loss_bbox_aux_2: 0.2245 (0.2581) loss_giou_aux_2: 1.7338 (1.7887) loss_fgl_aux_2: 0.4543 (0.4332) loss_ddf_aux_2: 0.0021 (0.0025) loss_vfl_aux_3: 0.1523 (0.1689) loss_bbox_aux_3: 0.2242 (0.2579) loss_giou_aux_3: 1.7342 (1.7886) loss_fgl_aux_3: 0.4541 (0.4333) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1500 (0.1666) loss_bbox_aux_4: 0.2241 (0.2579) loss_giou_aux_4: 1.7344 (1.7885) loss_fgl_aux_4: 0.4542 (0.4333) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1556 (0.1705) loss_bbox_pre: 0.2297 (0.2659) loss_giou_pre: 1.7468 (1.7974) loss_vfl_enc_0: 0.1550 (0.1665) loss_bbox_enc_0: 0.2547 (0.2891) loss_giou_enc_0: 1.7923 (1.8451) loss_vfl_dn_0: 0.4263 (0.4298) loss_bbox_dn_0: 0.0449 (0.0471) loss_giou_dn_0: 1.1521 (1.1466) loss_fgl_dn_0: 0.9454 (0.9511) loss_ddf_dn_0: 0.3845 (0.2987) loss_vfl_dn_1: 0.4683 (0.4668) loss_bbox_dn_1: 0.0345 (0.0382) loss_giou_dn_1: 1.0379 (1.0504) loss_fgl_dn_1: 0.9731 (0.9777) loss_ddf_dn_1: 0.0294 (0.0295) loss_vfl_dn_2: 0.4636 (0.4632) loss_bbox_dn_2: 0.0335 (0.0372) loss_giou_dn_2: 1.0288 (1.0412) loss_fgl_dn_2: 0.9746 (0.9802) loss_ddf_dn_2: 0.0020 (0.0022) loss_vfl_dn_3: 0.4624 (0.4602) loss_bbox_dn_3: 0.0332 (0.0370) loss_giou_dn_3: 1.0281 (1.0406) loss_fgl_dn_3: 0.9740 (0.9804) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4600 (0.4593) loss_bbox_dn_4: 0.0332 (0.0370) loss_giou_dn_4: 1.0282 (1.0406) loss_fgl_dn_4: 0.9741 (0.9805) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4587 (0.4597) loss_bbox_dn_5: 0.0332 (0.0370) loss_giou_dn_5: 1.0282 (1.0406) loss_fgl_dn_5: 0.9741 (0.9805) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4255 (0.4289) loss_bbox_dn_pre: 0.0452 (0.0473) loss_giou_dn_pre: 1.1532 (1.1467)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7394 data: 0.4925 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3986 data: 0.1664 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4134 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.042\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.096\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.022\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.037\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.195\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.269\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.010\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.070\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.090\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.085\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.290\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.650\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.188\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.050\n", + "best_stat: {'epoch': 51, 'coco_eval_bbox': 0.04358917660514121}\n", + "Epoch: [55] [ 0/84] eta: 0:02:24 lr: 0.000013 loss: 36.9403 (36.9403) loss_vfl: 0.2180 (0.2180) loss_bbox: 0.1988 (0.1988) loss_giou: 1.6005 (1.6005) loss_fgl: 0.5075 (0.5075) loss_vfl_aux_0: 0.2334 (0.2334) loss_bbox_aux_0: 0.2046 (0.2046) loss_giou_aux_0: 1.6140 (1.6140) loss_fgl_aux_0: 0.5091 (0.5091) loss_ddf_aux_0: 0.3622 (0.3622) loss_vfl_aux_1: 0.2279 (0.2279) loss_bbox_aux_1: 0.1994 (0.1994) loss_giou_aux_1: 1.6009 (1.6009) loss_fgl_aux_1: 0.5071 (0.5071) loss_ddf_aux_1: 0.0704 (0.0704) loss_vfl_aux_2: 0.2217 (0.2217) loss_bbox_aux_2: 0.1995 (0.1995) loss_giou_aux_2: 1.6008 (1.6008) loss_fgl_aux_2: 0.5072 (0.5072) loss_ddf_aux_2: 0.0070 (0.0070) loss_vfl_aux_3: 0.2217 (0.2217) loss_bbox_aux_3: 0.1990 (0.1990) loss_giou_aux_3: 1.6007 (1.6007) loss_fgl_aux_3: 0.5076 (0.5076) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.2172 (0.2172) loss_bbox_aux_4: 0.1988 (0.1988) loss_giou_aux_4: 1.6005 (1.6005) loss_fgl_aux_4: 0.5076 (0.5076) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.2305 (0.2305) loss_bbox_pre: 0.2044 (0.2044) loss_giou_pre: 1.6116 (1.6116) loss_vfl_enc_0: 0.2294 (0.2294) loss_bbox_enc_0: 0.2271 (0.2271) loss_giou_enc_0: 1.6836 (1.6836) loss_vfl_dn_0: 0.4355 (0.4355) loss_bbox_dn_0: 0.0579 (0.0579) loss_giou_dn_0: 1.1179 (1.1179) loss_fgl_dn_0: 0.9777 (0.9777) loss_ddf_dn_0: 0.3772 (0.3772) loss_vfl_dn_1: 0.4727 (0.4727) loss_bbox_dn_1: 0.0437 (0.0437) loss_giou_dn_1: 0.9885 (0.9885) loss_fgl_dn_1: 1.0028 (1.0028) loss_ddf_dn_1: 0.0358 (0.0358) loss_vfl_dn_2: 0.4714 (0.4714) loss_bbox_dn_2: 0.0427 (0.0427) loss_giou_dn_2: 0.9799 (0.9799) loss_fgl_dn_2: 1.0046 (1.0046) loss_ddf_dn_2: 0.0026 (0.0026) loss_vfl_dn_3: 0.4717 (0.4717) loss_bbox_dn_3: 0.0422 (0.0422) loss_giou_dn_3: 0.9797 (0.9797) loss_fgl_dn_3: 1.0049 (1.0049) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4680 (0.4680) loss_bbox_dn_4: 0.0421 (0.0421) loss_giou_dn_4: 0.9797 (0.9797) loss_fgl_dn_4: 1.0049 (1.0049) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4661 (0.4661) loss_bbox_dn_5: 0.0420 (0.0420) loss_giou_dn_5: 0.9798 (0.9798) loss_fgl_dn_5: 1.0049 (1.0049) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4348 (0.4348) loss_bbox_dn_pre: 0.0588 (0.0588) loss_giou_dn_pre: 1.1191 (1.1191) time: 1.7213 data: 0.9917 max mem: 29821\n", + "Epoch: [55] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.2946 (37.9996) loss_vfl: 0.1570 (0.1712) loss_bbox: 0.2683 (0.2562) loss_giou: 1.8419 (1.8016) loss_fgl: 0.4162 (0.4307) loss_vfl_aux_0: 0.1659 (0.1778) loss_bbox_aux_0: 0.2687 (0.2591) loss_giou_aux_0: 1.8686 (1.8166) loss_fgl_aux_0: 0.4173 (0.4313) loss_ddf_aux_0: 0.1489 (0.1779) loss_vfl_aux_1: 0.1665 (0.1792) loss_bbox_aux_1: 0.2698 (0.2572) loss_giou_aux_1: 1.8462 (1.8030) loss_fgl_aux_1: 0.4140 (0.4306) loss_ddf_aux_1: 0.0194 (0.0231) loss_vfl_aux_2: 0.1625 (0.1779) loss_bbox_aux_2: 0.2685 (0.2566) loss_giou_aux_2: 1.8435 (1.8017) loss_fgl_aux_2: 0.4153 (0.4307) loss_ddf_aux_2: 0.0025 (0.0029) loss_vfl_aux_3: 0.1591 (0.1739) loss_bbox_aux_3: 0.2684 (0.2563) loss_giou_aux_3: 1.8427 (1.8015) loss_fgl_aux_3: 0.4161 (0.4308) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1580 (0.1718) loss_bbox_aux_4: 0.2684 (0.2561) loss_giou_aux_4: 1.8419 (1.8016) loss_fgl_aux_4: 0.4161 (0.4308) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1630 (0.1748) loss_bbox_pre: 0.2754 (0.2646) loss_giou_pre: 1.8603 (1.8097) loss_vfl_enc_0: 0.1569 (0.1710) loss_bbox_enc_0: 0.3012 (0.2911) loss_giou_enc_0: 1.8933 (1.8578) loss_vfl_dn_0: 0.4241 (0.4245) loss_bbox_dn_0: 0.0452 (0.0472) loss_giou_dn_0: 1.1517 (1.1518) loss_fgl_dn_0: 0.9410 (0.9439) loss_ddf_dn_0: 0.4154 (0.4108) loss_vfl_dn_1: 0.4631 (0.4661) loss_bbox_dn_1: 0.0371 (0.0382) loss_giou_dn_1: 1.0480 (1.0466) loss_fgl_dn_1: 0.9778 (0.9764) loss_ddf_dn_1: 0.0301 (0.0365) loss_vfl_dn_2: 0.4609 (0.4627) loss_bbox_dn_2: 0.0361 (0.0372) loss_giou_dn_2: 1.0455 (1.0378) loss_fgl_dn_2: 0.9765 (0.9785) loss_ddf_dn_2: 0.0028 (0.0032) loss_vfl_dn_3: 0.4597 (0.4604) loss_bbox_dn_3: 0.0357 (0.0371) loss_giou_dn_3: 1.0444 (1.0370) loss_fgl_dn_3: 0.9766 (0.9788) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4585 (0.4593) loss_bbox_dn_4: 0.0357 (0.0370) loss_giou_dn_4: 1.0447 (1.0370) loss_fgl_dn_4: 0.9764 (0.9788) loss_ddf_dn_4: 0.0001 (0.0002) loss_vfl_dn_5: 0.4583 (0.4593) loss_bbox_dn_5: 0.0357 (0.0370) loss_giou_dn_5: 1.0449 (1.0370) loss_fgl_dn_5: 0.9762 (0.9787) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4248 (0.4235) loss_bbox_dn_pre: 0.0458 (0.0475) loss_giou_dn_pre: 1.1507 (1.1520) time: 0.8458 data: 0.0189 max mem: 29821\n", + "Epoch: [55] Total time: 0:01:12 (0.8640 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.2946 (37.9996) loss_vfl: 0.1570 (0.1712) loss_bbox: 0.2683 (0.2562) loss_giou: 1.8419 (1.8016) loss_fgl: 0.4162 (0.4307) loss_vfl_aux_0: 0.1659 (0.1778) loss_bbox_aux_0: 0.2687 (0.2591) loss_giou_aux_0: 1.8686 (1.8166) loss_fgl_aux_0: 0.4173 (0.4313) loss_ddf_aux_0: 0.1489 (0.1779) loss_vfl_aux_1: 0.1665 (0.1792) loss_bbox_aux_1: 0.2698 (0.2572) loss_giou_aux_1: 1.8462 (1.8030) loss_fgl_aux_1: 0.4140 (0.4306) loss_ddf_aux_1: 0.0194 (0.0231) loss_vfl_aux_2: 0.1625 (0.1779) loss_bbox_aux_2: 0.2685 (0.2566) loss_giou_aux_2: 1.8435 (1.8017) loss_fgl_aux_2: 0.4153 (0.4307) loss_ddf_aux_2: 0.0025 (0.0029) loss_vfl_aux_3: 0.1591 (0.1739) loss_bbox_aux_3: 0.2684 (0.2563) loss_giou_aux_3: 1.8427 (1.8015) loss_fgl_aux_3: 0.4161 (0.4308) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1580 (0.1718) loss_bbox_aux_4: 0.2684 (0.2561) loss_giou_aux_4: 1.8419 (1.8016) loss_fgl_aux_4: 0.4161 (0.4308) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1630 (0.1748) loss_bbox_pre: 0.2754 (0.2646) loss_giou_pre: 1.8603 (1.8097) loss_vfl_enc_0: 0.1569 (0.1710) loss_bbox_enc_0: 0.3012 (0.2911) loss_giou_enc_0: 1.8933 (1.8578) loss_vfl_dn_0: 0.4241 (0.4245) loss_bbox_dn_0: 0.0452 (0.0472) loss_giou_dn_0: 1.1517 (1.1518) loss_fgl_dn_0: 0.9410 (0.9439) loss_ddf_dn_0: 0.4154 (0.4108) loss_vfl_dn_1: 0.4631 (0.4661) loss_bbox_dn_1: 0.0371 (0.0382) loss_giou_dn_1: 1.0480 (1.0466) loss_fgl_dn_1: 0.9778 (0.9764) loss_ddf_dn_1: 0.0301 (0.0365) loss_vfl_dn_2: 0.4609 (0.4627) loss_bbox_dn_2: 0.0361 (0.0372) loss_giou_dn_2: 1.0455 (1.0378) loss_fgl_dn_2: 0.9765 (0.9785) loss_ddf_dn_2: 0.0028 (0.0032) loss_vfl_dn_3: 0.4597 (0.4604) loss_bbox_dn_3: 0.0357 (0.0371) loss_giou_dn_3: 1.0444 (1.0370) loss_fgl_dn_3: 0.9766 (0.9788) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4585 (0.4593) loss_bbox_dn_4: 0.0357 (0.0370) loss_giou_dn_4: 1.0447 (1.0370) loss_fgl_dn_4: 0.9764 (0.9788) loss_ddf_dn_4: 0.0001 (0.0002) loss_vfl_dn_5: 0.4583 (0.4593) loss_bbox_dn_5: 0.0357 (0.0370) loss_giou_dn_5: 1.0449 (1.0370) loss_fgl_dn_5: 0.9762 (0.9787) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4248 (0.4235) loss_bbox_dn_pre: 0.0458 (0.0475) loss_giou_dn_pre: 1.1507 (1.1520)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7398 data: 0.4907 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4004 data: 0.1659 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4159 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.043\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.098\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.023\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.037\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.206\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.173\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.010\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.071\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.091\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.085\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.318\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.400\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.186\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.049\n", + "best_stat: {'epoch': 51, 'coco_eval_bbox': 0.04358917660514121}\n", + "Epoch: [56] [ 0/84] eta: 0:03:03 lr: 0.000013 loss: 37.4380 (37.4380) loss_vfl: 0.1096 (0.1096) loss_bbox: 0.2558 (0.2558) loss_giou: 1.8638 (1.8638) loss_fgl: 0.3719 (0.3719) loss_vfl_aux_0: 0.1166 (0.1166) loss_bbox_aux_0: 0.2481 (0.2481) loss_giou_aux_0: 1.8809 (1.8809) loss_fgl_aux_0: 0.3762 (0.3762) loss_ddf_aux_0: 0.0751 (0.0751) loss_vfl_aux_1: 0.1145 (0.1145) loss_bbox_aux_1: 0.2542 (0.2542) loss_giou_aux_1: 1.8660 (1.8660) loss_fgl_aux_1: 0.3727 (0.3727) loss_ddf_aux_1: 0.0089 (0.0089) loss_vfl_aux_2: 0.1145 (0.1145) loss_bbox_aux_2: 0.2554 (0.2554) loss_giou_aux_2: 1.8643 (1.8643) loss_fgl_aux_2: 0.3720 (0.3720) loss_ddf_aux_2: 0.0015 (0.0015) loss_vfl_aux_3: 0.1104 (0.1104) loss_bbox_aux_3: 0.2555 (0.2555) loss_giou_aux_3: 1.8641 (1.8641) loss_fgl_aux_3: 0.3720 (0.3720) loss_ddf_aux_3: 0.0001 (0.0001) loss_vfl_aux_4: 0.1099 (0.1099) loss_bbox_aux_4: 0.2557 (0.2557) loss_giou_aux_4: 1.8638 (1.8638) loss_fgl_aux_4: 0.3719 (0.3719) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1142 (0.1142) loss_bbox_pre: 0.2536 (0.2536) loss_giou_pre: 1.8735 (1.8735) loss_vfl_enc_0: 0.1104 (0.1104) loss_bbox_enc_0: 0.2690 (0.2690) loss_giou_enc_0: 1.9058 (1.9058) loss_vfl_dn_0: 0.4302 (0.4302) loss_bbox_dn_0: 0.0376 (0.0376) loss_giou_dn_0: 1.1569 (1.1569) loss_fgl_dn_0: 0.9486 (0.9486) loss_ddf_dn_0: 0.2768 (0.2768) loss_vfl_dn_1: 0.4583 (0.4583) loss_bbox_dn_1: 0.0329 (0.0329) loss_giou_dn_1: 1.0807 (1.0807) loss_fgl_dn_1: 0.9731 (0.9731) loss_ddf_dn_1: 0.0181 (0.0181) loss_vfl_dn_2: 0.4573 (0.4573) loss_bbox_dn_2: 0.0326 (0.0326) loss_giou_dn_2: 1.0734 (1.0734) loss_fgl_dn_2: 0.9748 (0.9748) loss_ddf_dn_2: 0.0021 (0.0021) loss_vfl_dn_3: 0.4556 (0.4556) loss_bbox_dn_3: 0.0325 (0.0325) loss_giou_dn_3: 1.0719 (1.0719) loss_fgl_dn_3: 0.9751 (0.9751) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4556 (0.4556) loss_bbox_dn_4: 0.0324 (0.0324) loss_giou_dn_4: 1.0717 (1.0717) loss_fgl_dn_4: 0.9753 (0.9753) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4583 (0.4583) loss_bbox_dn_5: 0.0324 (0.0324) loss_giou_dn_5: 1.0718 (1.0718) loss_fgl_dn_5: 0.9752 (0.9752) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4294 (0.4294) loss_bbox_dn_pre: 0.0377 (0.0377) loss_giou_dn_pre: 1.1574 (1.1574) time: 2.1812 data: 1.1616 max mem: 29821\n", + "Epoch: [56] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.7750 (37.7258) loss_vfl: 0.1575 (0.1784) loss_bbox: 0.2364 (0.2427) loss_giou: 1.8173 (1.7779) loss_fgl: 0.4073 (0.4365) loss_vfl_aux_0: 0.1545 (0.1846) loss_bbox_aux_0: 0.2329 (0.2453) loss_giou_aux_0: 1.8438 (1.7931) loss_fgl_aux_0: 0.4104 (0.4374) loss_ddf_aux_0: 0.1177 (0.1531) loss_vfl_aux_1: 0.1589 (0.1871) loss_bbox_aux_1: 0.2363 (0.2429) loss_giou_aux_1: 1.8190 (1.7803) loss_fgl_aux_1: 0.4077 (0.4367) loss_ddf_aux_1: 0.0125 (0.0211) loss_vfl_aux_2: 0.1597 (0.1844) loss_bbox_aux_2: 0.2361 (0.2428) loss_giou_aux_2: 1.8176 (1.7781) loss_fgl_aux_2: 0.4073 (0.4365) loss_ddf_aux_2: 0.0017 (0.0029) loss_vfl_aux_3: 0.1598 (0.1805) loss_bbox_aux_3: 0.2363 (0.2427) loss_giou_aux_3: 1.8172 (1.7779) loss_fgl_aux_3: 0.4073 (0.4365) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1593 (0.1781) loss_bbox_aux_4: 0.2364 (0.2426) loss_giou_aux_4: 1.8173 (1.7779) loss_fgl_aux_4: 0.4073 (0.4365) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1511 (0.1819) loss_bbox_pre: 0.2397 (0.2496) loss_giou_pre: 1.8351 (1.7874) loss_vfl_enc_0: 0.1536 (0.1794) loss_bbox_enc_0: 0.2580 (0.2728) loss_giou_enc_0: 1.8779 (1.8325) loss_vfl_dn_0: 0.4353 (0.4287) loss_bbox_dn_0: 0.0420 (0.0481) loss_giou_dn_0: 1.1443 (1.1477) loss_fgl_dn_0: 0.9524 (0.9510) loss_ddf_dn_0: 0.3073 (0.3611) loss_vfl_dn_1: 0.4680 (0.4678) loss_bbox_dn_1: 0.0343 (0.0387) loss_giou_dn_1: 1.0496 (1.0442) loss_fgl_dn_1: 0.9782 (0.9787) loss_ddf_dn_1: 0.0204 (0.0340) loss_vfl_dn_2: 0.4648 (0.4651) loss_bbox_dn_2: 0.0335 (0.0375) loss_giou_dn_2: 1.0364 (1.0338) loss_fgl_dn_2: 0.9813 (0.9818) loss_ddf_dn_2: 0.0021 (0.0030) loss_vfl_dn_3: 0.4580 (0.4616) loss_bbox_dn_3: 0.0335 (0.0373) loss_giou_dn_3: 1.0354 (1.0330) loss_fgl_dn_3: 0.9816 (0.9822) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4612 (0.4610) loss_bbox_dn_4: 0.0336 (0.0373) loss_giou_dn_4: 1.0352 (1.0330) loss_fgl_dn_4: 0.9816 (0.9822) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4629 (0.4617) loss_bbox_dn_5: 0.0336 (0.0373) loss_giou_dn_5: 1.0352 (1.0330) loss_fgl_dn_5: 0.9815 (0.9822) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4341 (0.4278) loss_bbox_dn_pre: 0.0422 (0.0483) loss_giou_dn_pre: 1.1431 (1.1478) time: 0.8562 data: 0.0199 max mem: 29821\n", + "Epoch: [56] Total time: 0:01:12 (0.8631 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.7750 (37.7258) loss_vfl: 0.1575 (0.1784) loss_bbox: 0.2364 (0.2427) loss_giou: 1.8173 (1.7779) loss_fgl: 0.4073 (0.4365) loss_vfl_aux_0: 0.1545 (0.1846) loss_bbox_aux_0: 0.2329 (0.2453) loss_giou_aux_0: 1.8438 (1.7931) loss_fgl_aux_0: 0.4104 (0.4374) loss_ddf_aux_0: 0.1177 (0.1531) loss_vfl_aux_1: 0.1589 (0.1871) loss_bbox_aux_1: 0.2363 (0.2429) loss_giou_aux_1: 1.8190 (1.7803) loss_fgl_aux_1: 0.4077 (0.4367) loss_ddf_aux_1: 0.0125 (0.0211) loss_vfl_aux_2: 0.1597 (0.1844) loss_bbox_aux_2: 0.2361 (0.2428) loss_giou_aux_2: 1.8176 (1.7781) loss_fgl_aux_2: 0.4073 (0.4365) loss_ddf_aux_2: 0.0017 (0.0029) loss_vfl_aux_3: 0.1598 (0.1805) loss_bbox_aux_3: 0.2363 (0.2427) loss_giou_aux_3: 1.8172 (1.7779) loss_fgl_aux_3: 0.4073 (0.4365) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1593 (0.1781) loss_bbox_aux_4: 0.2364 (0.2426) loss_giou_aux_4: 1.8173 (1.7779) loss_fgl_aux_4: 0.4073 (0.4365) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1511 (0.1819) loss_bbox_pre: 0.2397 (0.2496) loss_giou_pre: 1.8351 (1.7874) loss_vfl_enc_0: 0.1536 (0.1794) loss_bbox_enc_0: 0.2580 (0.2728) loss_giou_enc_0: 1.8779 (1.8325) loss_vfl_dn_0: 0.4353 (0.4287) loss_bbox_dn_0: 0.0420 (0.0481) loss_giou_dn_0: 1.1443 (1.1477) loss_fgl_dn_0: 0.9524 (0.9510) loss_ddf_dn_0: 0.3073 (0.3611) loss_vfl_dn_1: 0.4680 (0.4678) loss_bbox_dn_1: 0.0343 (0.0387) loss_giou_dn_1: 1.0496 (1.0442) loss_fgl_dn_1: 0.9782 (0.9787) loss_ddf_dn_1: 0.0204 (0.0340) loss_vfl_dn_2: 0.4648 (0.4651) loss_bbox_dn_2: 0.0335 (0.0375) loss_giou_dn_2: 1.0364 (1.0338) loss_fgl_dn_2: 0.9813 (0.9818) loss_ddf_dn_2: 0.0021 (0.0030) loss_vfl_dn_3: 0.4580 (0.4616) loss_bbox_dn_3: 0.0335 (0.0373) loss_giou_dn_3: 1.0354 (1.0330) loss_fgl_dn_3: 0.9816 (0.9822) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4612 (0.4610) loss_bbox_dn_4: 0.0336 (0.0373) loss_giou_dn_4: 1.0352 (1.0330) loss_fgl_dn_4: 0.9816 (0.9822) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4629 (0.4617) loss_bbox_dn_5: 0.0336 (0.0373) loss_giou_dn_5: 1.0352 (1.0330) loss_fgl_dn_5: 0.9815 (0.9822) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4341 (0.4278) loss_bbox_dn_pre: 0.0422 (0.0483) loss_giou_dn_pre: 1.1431 (1.1478)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7486 data: 0.4971 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.5442 data: 0.1675 max mem: 29821\n", + "Test: Total time: 0:00:02 (0.5627 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.043\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.097\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.022\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.035\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.210\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.242\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.009\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.055\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.076\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.068\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.326\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.500\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.161\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.047\n", + "best_stat: {'epoch': 51, 'coco_eval_bbox': 0.04358917660514121}\n", + "Epoch: [57] [ 0/84] eta: 0:02:45 lr: 0.000013 loss: 37.2532 (37.2532) loss_vfl: 0.2166 (0.2166) loss_bbox: 0.2089 (0.2089) loss_giou: 1.6330 (1.6330) loss_fgl: 0.5198 (0.5198) loss_vfl_aux_0: 0.2341 (0.2341) loss_bbox_aux_0: 0.2126 (0.2126) loss_giou_aux_0: 1.6504 (1.6504) loss_fgl_aux_0: 0.5205 (0.5205) loss_ddf_aux_0: 0.2082 (0.2082) loss_vfl_aux_1: 0.2312 (0.2312) loss_bbox_aux_1: 0.2086 (0.2086) loss_giou_aux_1: 1.6358 (1.6358) loss_fgl_aux_1: 0.5201 (0.5201) loss_ddf_aux_1: 0.0301 (0.0301) loss_vfl_aux_2: 0.2245 (0.2245) loss_bbox_aux_2: 0.2086 (0.2086) loss_giou_aux_2: 1.6330 (1.6330) loss_fgl_aux_2: 0.5198 (0.5198) loss_ddf_aux_2: 0.0052 (0.0052) loss_vfl_aux_3: 0.2208 (0.2208) loss_bbox_aux_3: 0.2089 (0.2089) loss_giou_aux_3: 1.6331 (1.6331) loss_fgl_aux_3: 0.5199 (0.5199) loss_ddf_aux_3: 0.0005 (0.0005) loss_vfl_aux_4: 0.2169 (0.2169) loss_bbox_aux_4: 0.2088 (0.2088) loss_giou_aux_4: 1.6331 (1.6331) loss_fgl_aux_4: 0.5198 (0.5198) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.2305 (0.2305) loss_bbox_pre: 0.2162 (0.2162) loss_giou_pre: 1.6470 (1.6470) loss_vfl_enc_0: 0.2238 (0.2238) loss_bbox_enc_0: 0.2490 (0.2490) loss_giou_enc_0: 1.7016 (1.7016) loss_vfl_dn_0: 0.4434 (0.4434) loss_bbox_dn_0: 0.0450 (0.0450) loss_giou_dn_0: 1.0944 (1.0944) loss_fgl_dn_0: 0.9869 (0.9869) loss_ddf_dn_0: 0.5029 (0.5029) loss_vfl_dn_1: 0.4771 (0.4771) loss_bbox_dn_1: 0.0359 (0.0359) loss_giou_dn_1: 0.9897 (0.9897) loss_fgl_dn_1: 1.0132 (1.0132) loss_ddf_dn_1: 0.0396 (0.0396) loss_vfl_dn_2: 0.4729 (0.4729) loss_bbox_dn_2: 0.0339 (0.0339) loss_giou_dn_2: 0.9771 (0.9771) loss_fgl_dn_2: 1.0155 (1.0155) loss_ddf_dn_2: 0.0046 (0.0046) loss_vfl_dn_3: 0.4729 (0.4729) loss_bbox_dn_3: 0.0335 (0.0335) loss_giou_dn_3: 0.9758 (0.9758) loss_fgl_dn_3: 1.0157 (1.0157) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.4717 (0.4717) loss_bbox_dn_4: 0.0334 (0.0334) loss_giou_dn_4: 0.9755 (0.9755) loss_fgl_dn_4: 1.0158 (1.0158) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4678 (0.4678) loss_bbox_dn_5: 0.0334 (0.0334) loss_giou_dn_5: 0.9755 (0.9755) loss_fgl_dn_5: 1.0158 (1.0158) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4421 (0.4421) loss_bbox_dn_pre: 0.0455 (0.0455) loss_giou_dn_pre: 1.0948 (1.0948) time: 1.9682 data: 1.0861 max mem: 29821\n", + "Epoch: [57] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.4123 (37.4880) loss_vfl: 0.1680 (0.1699) loss_bbox: 0.2261 (0.2369) loss_giou: 1.7779 (1.7659) loss_fgl: 0.4097 (0.4362) loss_vfl_aux_0: 0.1831 (0.1771) loss_bbox_aux_0: 0.2324 (0.2414) loss_giou_aux_0: 1.7931 (1.7785) loss_fgl_aux_0: 0.4088 (0.4367) loss_ddf_aux_0: 0.1485 (0.1502) loss_vfl_aux_1: 0.1820 (0.1791) loss_bbox_aux_1: 0.2270 (0.2377) loss_giou_aux_1: 1.7793 (1.7672) loss_fgl_aux_1: 0.4099 (0.4364) loss_ddf_aux_1: 0.0207 (0.0208) loss_vfl_aux_2: 0.1775 (0.1774) loss_bbox_aux_2: 0.2258 (0.2370) loss_giou_aux_2: 1.7779 (1.7661) loss_fgl_aux_2: 0.4100 (0.4362) loss_ddf_aux_2: 0.0033 (0.0028) loss_vfl_aux_3: 0.1753 (0.1732) loss_bbox_aux_3: 0.2261 (0.2368) loss_giou_aux_3: 1.7786 (1.7660) loss_fgl_aux_3: 0.4098 (0.4363) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1696 (0.1703) loss_bbox_aux_4: 0.2262 (0.2368) loss_giou_aux_4: 1.7780 (1.7659) loss_fgl_aux_4: 0.4097 (0.4363) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1798 (0.1745) loss_bbox_pre: 0.2360 (0.2454) loss_giou_pre: 1.7914 (1.7735) loss_vfl_enc_0: 0.1637 (0.1718) loss_bbox_enc_0: 0.2671 (0.2686) loss_giou_enc_0: 1.8717 (1.8220) loss_vfl_dn_0: 0.4382 (0.4287) loss_bbox_dn_0: 0.0478 (0.0466) loss_giou_dn_0: 1.1201 (1.1485) loss_fgl_dn_0: 0.9648 (0.9520) loss_ddf_dn_0: 0.2572 (0.3251) loss_vfl_dn_1: 0.4692 (0.4654) loss_bbox_dn_1: 0.0352 (0.0377) loss_giou_dn_1: 1.0370 (1.0492) loss_fgl_dn_1: 0.9813 (0.9781) loss_ddf_dn_1: 0.0245 (0.0334) loss_vfl_dn_2: 0.4658 (0.4621) loss_bbox_dn_2: 0.0341 (0.0367) loss_giou_dn_2: 1.0262 (1.0401) loss_fgl_dn_2: 0.9830 (0.9806) loss_ddf_dn_2: 0.0027 (0.0030) loss_vfl_dn_3: 0.4626 (0.4589) loss_bbox_dn_3: 0.0339 (0.0365) loss_giou_dn_3: 1.0258 (1.0394) loss_fgl_dn_3: 0.9835 (0.9809) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4626 (0.4580) loss_bbox_dn_4: 0.0339 (0.0365) loss_giou_dn_4: 1.0258 (1.0394) loss_fgl_dn_4: 0.9838 (0.9809) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4602 (0.4581) loss_bbox_dn_5: 0.0339 (0.0365) loss_giou_dn_5: 1.0258 (1.0394) loss_fgl_dn_5: 0.9838 (0.9810) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4368 (0.4278) loss_bbox_dn_pre: 0.0479 (0.0468) loss_giou_dn_pre: 1.1237 (1.1485) time: 0.8113 data: 0.0172 max mem: 29821\n", + "Epoch: [57] Total time: 0:01:11 (0.8487 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.4123 (37.4880) loss_vfl: 0.1680 (0.1699) loss_bbox: 0.2261 (0.2369) loss_giou: 1.7779 (1.7659) loss_fgl: 0.4097 (0.4362) loss_vfl_aux_0: 0.1831 (0.1771) loss_bbox_aux_0: 0.2324 (0.2414) loss_giou_aux_0: 1.7931 (1.7785) loss_fgl_aux_0: 0.4088 (0.4367) loss_ddf_aux_0: 0.1485 (0.1502) loss_vfl_aux_1: 0.1820 (0.1791) loss_bbox_aux_1: 0.2270 (0.2377) loss_giou_aux_1: 1.7793 (1.7672) loss_fgl_aux_1: 0.4099 (0.4364) loss_ddf_aux_1: 0.0207 (0.0208) loss_vfl_aux_2: 0.1775 (0.1774) loss_bbox_aux_2: 0.2258 (0.2370) loss_giou_aux_2: 1.7779 (1.7661) loss_fgl_aux_2: 0.4100 (0.4362) loss_ddf_aux_2: 0.0033 (0.0028) loss_vfl_aux_3: 0.1753 (0.1732) loss_bbox_aux_3: 0.2261 (0.2368) loss_giou_aux_3: 1.7786 (1.7660) loss_fgl_aux_3: 0.4098 (0.4363) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1696 (0.1703) loss_bbox_aux_4: 0.2262 (0.2368) loss_giou_aux_4: 1.7780 (1.7659) loss_fgl_aux_4: 0.4097 (0.4363) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1798 (0.1745) loss_bbox_pre: 0.2360 (0.2454) loss_giou_pre: 1.7914 (1.7735) loss_vfl_enc_0: 0.1637 (0.1718) loss_bbox_enc_0: 0.2671 (0.2686) loss_giou_enc_0: 1.8717 (1.8220) loss_vfl_dn_0: 0.4382 (0.4287) loss_bbox_dn_0: 0.0478 (0.0466) loss_giou_dn_0: 1.1201 (1.1485) loss_fgl_dn_0: 0.9648 (0.9520) loss_ddf_dn_0: 0.2572 (0.3251) loss_vfl_dn_1: 0.4692 (0.4654) loss_bbox_dn_1: 0.0352 (0.0377) loss_giou_dn_1: 1.0370 (1.0492) loss_fgl_dn_1: 0.9813 (0.9781) loss_ddf_dn_1: 0.0245 (0.0334) loss_vfl_dn_2: 0.4658 (0.4621) loss_bbox_dn_2: 0.0341 (0.0367) loss_giou_dn_2: 1.0262 (1.0401) loss_fgl_dn_2: 0.9830 (0.9806) loss_ddf_dn_2: 0.0027 (0.0030) loss_vfl_dn_3: 0.4626 (0.4589) loss_bbox_dn_3: 0.0339 (0.0365) loss_giou_dn_3: 1.0258 (1.0394) loss_fgl_dn_3: 0.9835 (0.9809) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4626 (0.4580) loss_bbox_dn_4: 0.0339 (0.0365) loss_giou_dn_4: 1.0258 (1.0394) loss_fgl_dn_4: 0.9838 (0.9809) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4602 (0.4581) loss_bbox_dn_5: 0.0339 (0.0365) loss_giou_dn_5: 1.0258 (1.0394) loss_fgl_dn_5: 0.9838 (0.9810) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4368 (0.4278) loss_bbox_dn_pre: 0.0479 (0.0468) loss_giou_dn_pre: 1.1237 (1.1485)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7707 data: 0.5199 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4130 data: 0.1773 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4281 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.044\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.099\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.023\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.035\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.211\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.417\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.009\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.059\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.079\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.073\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.328\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.800\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.164\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.048\n", + "best_stat: {'epoch': 57, 'coco_eval_bbox': 0.04362503105829931}\n", + "Epoch: [58] [ 0/84] eta: 0:02:36 lr: 0.000013 loss: 38.8638 (38.8638) loss_vfl: 0.0975 (0.0975) loss_bbox: 0.3901 (0.3901) loss_giou: 2.0074 (2.0074) loss_fgl: 0.2759 (0.2759) loss_vfl_aux_0: 0.0992 (0.0992) loss_bbox_aux_0: 0.3832 (0.3832) loss_giou_aux_0: 2.0363 (2.0363) loss_fgl_aux_0: 0.2780 (0.2780) loss_ddf_aux_0: 0.1157 (0.1157) loss_vfl_aux_1: 0.1020 (0.1020) loss_bbox_aux_1: 0.3899 (0.3899) loss_giou_aux_1: 2.0095 (2.0095) loss_fgl_aux_1: 0.2759 (0.2759) loss_ddf_aux_1: 0.0121 (0.0121) loss_vfl_aux_2: 0.0990 (0.0990) loss_bbox_aux_2: 0.3898 (0.3898) loss_giou_aux_2: 2.0079 (2.0079) loss_fgl_aux_2: 0.2760 (0.2760) loss_ddf_aux_2: 0.0016 (0.0016) loss_vfl_aux_3: 0.0966 (0.0966) loss_bbox_aux_3: 0.3897 (0.3897) loss_giou_aux_3: 2.0078 (2.0078) loss_fgl_aux_3: 0.2760 (0.2760) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.0964 (0.0964) loss_bbox_aux_4: 0.3901 (0.3901) loss_giou_aux_4: 2.0074 (2.0074) loss_fgl_aux_4: 0.2758 (0.2758) loss_ddf_aux_4: 0.0000 (0.0000) loss_vfl_pre: 0.0980 (0.0980) loss_bbox_pre: 0.3873 (0.3873) loss_giou_pre: 2.0327 (2.0327) loss_vfl_enc_0: 0.0901 (0.0901) loss_bbox_enc_0: 0.4080 (0.4080) loss_giou_enc_0: 2.1281 (2.1281) loss_vfl_dn_0: 0.4131 (0.4131) loss_bbox_dn_0: 0.0359 (0.0359) loss_giou_dn_0: 1.1678 (1.1678) loss_fgl_dn_0: 0.9169 (0.9169) loss_ddf_dn_0: 0.1989 (0.1989) loss_vfl_dn_1: 0.4519 (0.4519) loss_bbox_dn_1: 0.0283 (0.0283) loss_giou_dn_1: 1.1006 (1.1006) loss_fgl_dn_1: 0.9415 (0.9415) loss_ddf_dn_1: 0.0127 (0.0127) loss_vfl_dn_2: 0.4480 (0.4480) loss_bbox_dn_2: 0.0279 (0.0279) loss_giou_dn_2: 1.0954 (1.0954) loss_fgl_dn_2: 0.9430 (0.9430) loss_ddf_dn_2: 0.0013 (0.0013) loss_vfl_dn_3: 0.4438 (0.4438) loss_bbox_dn_3: 0.0276 (0.0276) loss_giou_dn_3: 1.0946 (1.0946) loss_fgl_dn_3: 0.9433 (0.9433) loss_ddf_dn_3: 0.0002 (0.0002) loss_vfl_dn_4: 0.4448 (0.4448) loss_bbox_dn_4: 0.0276 (0.0276) loss_giou_dn_4: 1.0946 (1.0946) loss_fgl_dn_4: 0.9434 (0.9434) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4458 (0.4458) loss_bbox_dn_5: 0.0276 (0.0276) loss_giou_dn_5: 1.0946 (1.0946) loss_fgl_dn_5: 0.9435 (0.9435) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4106 (0.4106) loss_bbox_dn_pre: 0.0364 (0.0364) loss_giou_dn_pre: 1.1706 (1.1706) time: 1.8655 data: 0.8216 max mem: 29821\n", + "Epoch: [58] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.0113 (37.4772) loss_vfl: 0.1571 (0.1673) loss_bbox: 0.2291 (0.2437) loss_giou: 1.7792 (1.7730) loss_fgl: 0.4008 (0.4276) loss_vfl_aux_0: 0.1547 (0.1731) loss_bbox_aux_0: 0.2312 (0.2479) loss_giou_aux_0: 1.7975 (1.7860) loss_fgl_aux_0: 0.3951 (0.4277) loss_ddf_aux_0: 0.1423 (0.1395) loss_vfl_aux_1: 0.1581 (0.1757) loss_bbox_aux_1: 0.2302 (0.2449) loss_giou_aux_1: 1.7814 (1.7741) loss_fgl_aux_1: 0.3984 (0.4275) loss_ddf_aux_1: 0.0141 (0.0177) loss_vfl_aux_2: 0.1578 (0.1735) loss_bbox_aux_2: 0.2297 (0.2439) loss_giou_aux_2: 1.7800 (1.7731) loss_fgl_aux_2: 0.4004 (0.4276) loss_ddf_aux_2: 0.0019 (0.0024) loss_vfl_aux_3: 0.1554 (0.1698) loss_bbox_aux_3: 0.2289 (0.2437) loss_giou_aux_3: 1.7794 (1.7731) loss_fgl_aux_3: 0.4007 (0.4276) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1560 (0.1679) loss_bbox_aux_4: 0.2290 (0.2437) loss_giou_aux_4: 1.7793 (1.7730) loss_fgl_aux_4: 0.4008 (0.4276) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1526 (0.1706) loss_bbox_pre: 0.2388 (0.2509) loss_giou_pre: 1.7943 (1.7819) loss_vfl_enc_0: 0.1562 (0.1692) loss_bbox_enc_0: 0.2580 (0.2709) loss_giou_enc_0: 1.8456 (1.8273) loss_vfl_dn_0: 0.4207 (0.4259) loss_bbox_dn_0: 0.0428 (0.0462) loss_giou_dn_0: 1.1662 (1.1546) loss_fgl_dn_0: 0.9486 (0.9496) loss_ddf_dn_0: 0.2829 (0.3052) loss_vfl_dn_1: 0.4641 (0.4649) loss_bbox_dn_1: 0.0355 (0.0372) loss_giou_dn_1: 1.0589 (1.0515) loss_fgl_dn_1: 0.9759 (0.9763) loss_ddf_dn_1: 0.0262 (0.0304) loss_vfl_dn_2: 0.4583 (0.4611) loss_bbox_dn_2: 0.0338 (0.0362) loss_giou_dn_2: 1.0493 (1.0426) loss_fgl_dn_2: 0.9790 (0.9789) loss_ddf_dn_2: 0.0027 (0.0028) loss_vfl_dn_3: 0.4561 (0.4578) loss_bbox_dn_3: 0.0335 (0.0360) loss_giou_dn_3: 1.0485 (1.0420) loss_fgl_dn_3: 0.9796 (0.9791) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4575 (0.4573) loss_bbox_dn_4: 0.0334 (0.0360) loss_giou_dn_4: 1.0483 (1.0419) loss_fgl_dn_4: 0.9796 (0.9792) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4578 (0.4574) loss_bbox_dn_5: 0.0334 (0.0360) loss_giou_dn_5: 1.0483 (1.0419) loss_fgl_dn_5: 0.9797 (0.9792) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4199 (0.4249) loss_bbox_dn_pre: 0.0427 (0.0463) loss_giou_dn_pre: 1.1655 (1.1548) time: 0.8423 data: 0.0176 max mem: 29821\n", + "Epoch: [58] Total time: 0:01:12 (0.8669 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.0113 (37.4772) loss_vfl: 0.1571 (0.1673) loss_bbox: 0.2291 (0.2437) loss_giou: 1.7792 (1.7730) loss_fgl: 0.4008 (0.4276) loss_vfl_aux_0: 0.1547 (0.1731) loss_bbox_aux_0: 0.2312 (0.2479) loss_giou_aux_0: 1.7975 (1.7860) loss_fgl_aux_0: 0.3951 (0.4277) loss_ddf_aux_0: 0.1423 (0.1395) loss_vfl_aux_1: 0.1581 (0.1757) loss_bbox_aux_1: 0.2302 (0.2449) loss_giou_aux_1: 1.7814 (1.7741) loss_fgl_aux_1: 0.3984 (0.4275) loss_ddf_aux_1: 0.0141 (0.0177) loss_vfl_aux_2: 0.1578 (0.1735) loss_bbox_aux_2: 0.2297 (0.2439) loss_giou_aux_2: 1.7800 (1.7731) loss_fgl_aux_2: 0.4004 (0.4276) loss_ddf_aux_2: 0.0019 (0.0024) loss_vfl_aux_3: 0.1554 (0.1698) loss_bbox_aux_3: 0.2289 (0.2437) loss_giou_aux_3: 1.7794 (1.7731) loss_fgl_aux_3: 0.4007 (0.4276) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1560 (0.1679) loss_bbox_aux_4: 0.2290 (0.2437) loss_giou_aux_4: 1.7793 (1.7730) loss_fgl_aux_4: 0.4008 (0.4276) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1526 (0.1706) loss_bbox_pre: 0.2388 (0.2509) loss_giou_pre: 1.7943 (1.7819) loss_vfl_enc_0: 0.1562 (0.1692) loss_bbox_enc_0: 0.2580 (0.2709) loss_giou_enc_0: 1.8456 (1.8273) loss_vfl_dn_0: 0.4207 (0.4259) loss_bbox_dn_0: 0.0428 (0.0462) loss_giou_dn_0: 1.1662 (1.1546) loss_fgl_dn_0: 0.9486 (0.9496) loss_ddf_dn_0: 0.2829 (0.3052) loss_vfl_dn_1: 0.4641 (0.4649) loss_bbox_dn_1: 0.0355 (0.0372) loss_giou_dn_1: 1.0589 (1.0515) loss_fgl_dn_1: 0.9759 (0.9763) loss_ddf_dn_1: 0.0262 (0.0304) loss_vfl_dn_2: 0.4583 (0.4611) loss_bbox_dn_2: 0.0338 (0.0362) loss_giou_dn_2: 1.0493 (1.0426) loss_fgl_dn_2: 0.9790 (0.9789) loss_ddf_dn_2: 0.0027 (0.0028) loss_vfl_dn_3: 0.4561 (0.4578) loss_bbox_dn_3: 0.0335 (0.0360) loss_giou_dn_3: 1.0485 (1.0420) loss_fgl_dn_3: 0.9796 (0.9791) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4575 (0.4573) loss_bbox_dn_4: 0.0334 (0.0360) loss_giou_dn_4: 1.0483 (1.0419) loss_fgl_dn_4: 0.9796 (0.9792) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4578 (0.4574) loss_bbox_dn_5: 0.0334 (0.0360) loss_giou_dn_5: 1.0483 (1.0419) loss_fgl_dn_5: 0.9797 (0.9792) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4199 (0.4249) loss_bbox_dn_pre: 0.0427 (0.0463) loss_giou_dn_pre: 1.1655 (1.1548)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7522 data: 0.5063 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4019 data: 0.1694 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4169 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.046\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.102\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.025\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.038\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.228\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.145\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.009\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.077\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.097\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.090\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.331\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.350\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.190\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.077\n", + "best_stat: {'epoch': 58, 'coco_eval_bbox': 0.046290457162162124}\n", + "Epoch: [59] [ 0/84] eta: 0:02:40 lr: 0.000013 loss: 38.9577 (38.9577) loss_vfl: 0.1763 (0.1763) loss_bbox: 0.3455 (0.3455) loss_giou: 1.8669 (1.8669) loss_fgl: 0.3980 (0.3980) loss_vfl_aux_0: 0.1868 (0.1868) loss_bbox_aux_0: 0.3487 (0.3487) loss_giou_aux_0: 1.8770 (1.8770) loss_fgl_aux_0: 0.4003 (0.4003) loss_ddf_aux_0: 0.0820 (0.0820) loss_vfl_aux_1: 0.1862 (0.1862) loss_bbox_aux_1: 0.3469 (0.3469) loss_giou_aux_1: 1.8691 (1.8691) loss_fgl_aux_1: 0.3983 (0.3983) loss_ddf_aux_1: 0.0096 (0.0096) loss_vfl_aux_2: 0.1837 (0.1837) loss_bbox_aux_2: 0.3459 (0.3459) loss_giou_aux_2: 1.8666 (1.8666) loss_fgl_aux_2: 0.3980 (0.3980) loss_ddf_aux_2: 0.0014 (0.0014) loss_vfl_aux_3: 0.1803 (0.1803) loss_bbox_aux_3: 0.3456 (0.3456) loss_giou_aux_3: 1.8665 (1.8665) loss_fgl_aux_3: 0.3980 (0.3980) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1765 (0.1765) loss_bbox_aux_4: 0.3455 (0.3455) loss_giou_aux_4: 1.8668 (1.8668) loss_fgl_aux_4: 0.3980 (0.3980) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1838 (0.1838) loss_bbox_pre: 0.3552 (0.3552) loss_giou_pre: 1.8709 (1.8709) loss_vfl_enc_0: 0.1841 (0.1841) loss_bbox_enc_0: 0.3777 (0.3777) loss_giou_enc_0: 1.8989 (1.8989) loss_vfl_dn_0: 0.4287 (0.4287) loss_bbox_dn_0: 0.0493 (0.0493) loss_giou_dn_0: 1.1407 (1.1407) loss_fgl_dn_0: 0.9670 (0.9670) loss_ddf_dn_0: 0.3731 (0.3731) loss_vfl_dn_1: 0.4666 (0.4666) loss_bbox_dn_1: 0.0407 (0.0407) loss_giou_dn_1: 1.0428 (1.0428) loss_fgl_dn_1: 0.9819 (0.9819) loss_ddf_dn_1: 0.0395 (0.0395) loss_vfl_dn_2: 0.4680 (0.4680) loss_bbox_dn_2: 0.0382 (0.0382) loss_giou_dn_2: 1.0314 (1.0314) loss_fgl_dn_2: 0.9857 (0.9857) loss_ddf_dn_2: 0.0044 (0.0044) loss_vfl_dn_3: 0.4609 (0.4609) loss_bbox_dn_3: 0.0378 (0.0378) loss_giou_dn_3: 1.0302 (1.0302) loss_fgl_dn_3: 0.9858 (0.9858) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4604 (0.4604) loss_bbox_dn_4: 0.0378 (0.0378) loss_giou_dn_4: 1.0301 (1.0301) loss_fgl_dn_4: 0.9857 (0.9857) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4595 (0.4595) loss_bbox_dn_5: 0.0378 (0.0378) loss_giou_dn_5: 1.0301 (1.0301) loss_fgl_dn_5: 0.9858 (0.9858) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4270 (0.4270) loss_bbox_dn_pre: 0.0498 (0.0498) loss_giou_dn_pre: 1.1449 (1.1449) time: 1.9084 data: 0.8689 max mem: 29821\n", + "Epoch: [59] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.6033 (37.8649) loss_vfl: 0.1700 (0.1672) loss_bbox: 0.2274 (0.2633) loss_giou: 1.8114 (1.8017) loss_fgl: 0.4259 (0.4250) loss_vfl_aux_0: 0.1796 (0.1754) loss_bbox_aux_0: 0.2268 (0.2666) loss_giou_aux_0: 1.8259 (1.8164) loss_fgl_aux_0: 0.4309 (0.4259) loss_ddf_aux_0: 0.1676 (0.1643) loss_vfl_aux_1: 0.1788 (0.1760) loss_bbox_aux_1: 0.2283 (0.2644) loss_giou_aux_1: 1.8114 (1.8030) loss_fgl_aux_1: 0.4275 (0.4252) loss_ddf_aux_1: 0.0247 (0.0222) loss_vfl_aux_2: 0.1749 (0.1746) loss_bbox_aux_2: 0.2274 (0.2636) loss_giou_aux_2: 1.8113 (1.8016) loss_fgl_aux_2: 0.4258 (0.4249) loss_ddf_aux_2: 0.0024 (0.0029) loss_vfl_aux_3: 0.1710 (0.1710) loss_bbox_aux_3: 0.2274 (0.2633) loss_giou_aux_3: 1.8115 (1.8017) loss_fgl_aux_3: 0.4260 (0.4250) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1700 (0.1681) loss_bbox_aux_4: 0.2274 (0.2633) loss_giou_aux_4: 1.8114 (1.8016) loss_fgl_aux_4: 0.4260 (0.4250) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1776 (0.1725) loss_bbox_pre: 0.2304 (0.2713) loss_giou_pre: 1.8197 (1.8105) loss_vfl_enc_0: 0.1859 (0.1686) loss_bbox_enc_0: 0.2716 (0.3008) loss_giou_enc_0: 1.8625 (1.8563) loss_vfl_dn_0: 0.4353 (0.4339) loss_bbox_dn_0: 0.0401 (0.0445) loss_giou_dn_0: 1.1225 (1.1339) loss_fgl_dn_0: 0.9633 (0.9584) loss_ddf_dn_0: 0.2962 (0.2992) loss_vfl_dn_1: 0.4700 (0.4689) loss_bbox_dn_1: 0.0334 (0.0358) loss_giou_dn_1: 1.0324 (1.0406) loss_fgl_dn_1: 0.9909 (0.9838) loss_ddf_dn_1: 0.0256 (0.0309) loss_vfl_dn_2: 0.4651 (0.4656) loss_bbox_dn_2: 0.0325 (0.0349) loss_giou_dn_2: 1.0246 (1.0313) loss_fgl_dn_2: 0.9946 (0.9860) loss_ddf_dn_2: 0.0028 (0.0029) loss_vfl_dn_3: 0.4600 (0.4620) loss_bbox_dn_3: 0.0323 (0.0347) loss_giou_dn_3: 1.0238 (1.0307) loss_fgl_dn_3: 0.9957 (0.9862) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4595 (0.4609) loss_bbox_dn_4: 0.0322 (0.0347) loss_giou_dn_4: 1.0238 (1.0307) loss_fgl_dn_4: 0.9958 (0.9863) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4590 (0.4610) loss_bbox_dn_5: 0.0323 (0.0347) loss_giou_dn_5: 1.0238 (1.0307) loss_fgl_dn_5: 0.9958 (0.9863) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4346 (0.4326) loss_bbox_dn_pre: 0.0403 (0.0447) loss_giou_dn_pre: 1.1182 (1.1341) time: 0.8240 data: 0.0178 max mem: 29821\n", + "Epoch: [59] Total time: 0:01:12 (0.8672 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.6033 (37.8649) loss_vfl: 0.1700 (0.1672) loss_bbox: 0.2274 (0.2633) loss_giou: 1.8114 (1.8017) loss_fgl: 0.4259 (0.4250) loss_vfl_aux_0: 0.1796 (0.1754) loss_bbox_aux_0: 0.2268 (0.2666) loss_giou_aux_0: 1.8259 (1.8164) loss_fgl_aux_0: 0.4309 (0.4259) loss_ddf_aux_0: 0.1676 (0.1643) loss_vfl_aux_1: 0.1788 (0.1760) loss_bbox_aux_1: 0.2283 (0.2644) loss_giou_aux_1: 1.8114 (1.8030) loss_fgl_aux_1: 0.4275 (0.4252) loss_ddf_aux_1: 0.0247 (0.0222) loss_vfl_aux_2: 0.1749 (0.1746) loss_bbox_aux_2: 0.2274 (0.2636) loss_giou_aux_2: 1.8113 (1.8016) loss_fgl_aux_2: 0.4258 (0.4249) loss_ddf_aux_2: 0.0024 (0.0029) loss_vfl_aux_3: 0.1710 (0.1710) loss_bbox_aux_3: 0.2274 (0.2633) loss_giou_aux_3: 1.8115 (1.8017) loss_fgl_aux_3: 0.4260 (0.4250) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1700 (0.1681) loss_bbox_aux_4: 0.2274 (0.2633) loss_giou_aux_4: 1.8114 (1.8016) loss_fgl_aux_4: 0.4260 (0.4250) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1776 (0.1725) loss_bbox_pre: 0.2304 (0.2713) loss_giou_pre: 1.8197 (1.8105) loss_vfl_enc_0: 0.1859 (0.1686) loss_bbox_enc_0: 0.2716 (0.3008) loss_giou_enc_0: 1.8625 (1.8563) loss_vfl_dn_0: 0.4353 (0.4339) loss_bbox_dn_0: 0.0401 (0.0445) loss_giou_dn_0: 1.1225 (1.1339) loss_fgl_dn_0: 0.9633 (0.9584) loss_ddf_dn_0: 0.2962 (0.2992) loss_vfl_dn_1: 0.4700 (0.4689) loss_bbox_dn_1: 0.0334 (0.0358) loss_giou_dn_1: 1.0324 (1.0406) loss_fgl_dn_1: 0.9909 (0.9838) loss_ddf_dn_1: 0.0256 (0.0309) loss_vfl_dn_2: 0.4651 (0.4656) loss_bbox_dn_2: 0.0325 (0.0349) loss_giou_dn_2: 1.0246 (1.0313) loss_fgl_dn_2: 0.9946 (0.9860) loss_ddf_dn_2: 0.0028 (0.0029) loss_vfl_dn_3: 0.4600 (0.4620) loss_bbox_dn_3: 0.0323 (0.0347) loss_giou_dn_3: 1.0238 (1.0307) loss_fgl_dn_3: 0.9957 (0.9862) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4595 (0.4609) loss_bbox_dn_4: 0.0322 (0.0347) loss_giou_dn_4: 1.0238 (1.0307) loss_fgl_dn_4: 0.9958 (0.9863) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4590 (0.4610) loss_bbox_dn_5: 0.0323 (0.0347) loss_giou_dn_5: 1.0238 (1.0307) loss_fgl_dn_5: 0.9958 (0.9863) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4346 (0.4326) loss_bbox_dn_pre: 0.0403 (0.0447) loss_giou_dn_pre: 1.1182 (1.1341)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7766 data: 0.5324 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.5479 data: 0.1777 max mem: 29821\n", + "Test: Total time: 0:00:02 (0.5659 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.045\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.099\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.023\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.035\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.212\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.069\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.009\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.071\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.091\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.084\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.299\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.200\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.187\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.047\n", + "best_stat: {'epoch': 58, 'coco_eval_bbox': 0.046290457162162124}\n", + "Epoch: [60] [ 0/84] eta: 0:02:32 lr: 0.000013 loss: 36.1905 (36.1905) loss_vfl: 0.1647 (0.1647) loss_bbox: 0.2202 (0.2202) loss_giou: 1.5781 (1.5781) loss_fgl: 0.5100 (0.5100) loss_vfl_aux_0: 0.1918 (0.1918) loss_bbox_aux_0: 0.2220 (0.2220) loss_giou_aux_0: 1.6024 (1.6024) loss_fgl_aux_0: 0.5090 (0.5090) loss_ddf_aux_0: 0.2196 (0.2196) loss_vfl_aux_1: 0.1816 (0.1816) loss_bbox_aux_1: 0.2189 (0.2189) loss_giou_aux_1: 1.5807 (1.5807) loss_fgl_aux_1: 0.5116 (0.5116) loss_ddf_aux_1: 0.0264 (0.0264) loss_vfl_aux_2: 0.1782 (0.1782) loss_bbox_aux_2: 0.2202 (0.2202) loss_giou_aux_2: 1.5783 (1.5783) loss_fgl_aux_2: 0.5102 (0.5102) loss_ddf_aux_2: 0.0038 (0.0038) loss_vfl_aux_3: 0.1720 (0.1720) loss_bbox_aux_3: 0.2200 (0.2200) loss_giou_aux_3: 1.5781 (1.5781) loss_fgl_aux_3: 0.5102 (0.5102) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1658 (0.1658) loss_bbox_aux_4: 0.2202 (0.2202) loss_giou_aux_4: 1.5780 (1.5780) loss_fgl_aux_4: 0.5101 (0.5101) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1886 (0.1886) loss_bbox_pre: 0.2276 (0.2276) loss_giou_pre: 1.6016 (1.6016) loss_vfl_enc_0: 0.1765 (0.1765) loss_bbox_enc_0: 0.2446 (0.2446) loss_giou_enc_0: 1.6651 (1.6651) loss_vfl_dn_0: 0.4377 (0.4377) loss_bbox_dn_0: 0.0547 (0.0547) loss_giou_dn_0: 1.1136 (1.1136) loss_fgl_dn_0: 0.9495 (0.9495) loss_ddf_dn_0: 0.2622 (0.2622) loss_vfl_dn_1: 0.4592 (0.4592) loss_bbox_dn_1: 0.0420 (0.0420) loss_giou_dn_1: 1.0248 (1.0248) loss_fgl_dn_1: 0.9761 (0.9761) loss_ddf_dn_1: 0.0257 (0.0257) loss_vfl_dn_2: 0.4548 (0.4548) loss_bbox_dn_2: 0.0406 (0.0406) loss_giou_dn_2: 1.0194 (1.0194) loss_fgl_dn_2: 0.9778 (0.9778) loss_ddf_dn_2: 0.0032 (0.0032) loss_vfl_dn_3: 0.4492 (0.4492) loss_bbox_dn_3: 0.0402 (0.0402) loss_giou_dn_3: 1.0193 (1.0193) loss_fgl_dn_3: 0.9775 (0.9775) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4463 (0.4463) loss_bbox_dn_4: 0.0402 (0.0402) loss_giou_dn_4: 1.0194 (1.0194) loss_fgl_dn_4: 0.9774 (0.9774) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4468 (0.4468) loss_bbox_dn_5: 0.0402 (0.0402) loss_giou_dn_5: 1.0195 (1.0195) loss_fgl_dn_5: 0.9773 (0.9773) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4358 (0.4358) loss_bbox_dn_pre: 0.0554 (0.0554) loss_giou_dn_pre: 1.1185 (1.1185) time: 1.8208 data: 1.0330 max mem: 29821\n", + "Epoch: [60] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.3438 (37.6968) loss_vfl: 0.1522 (0.1665) loss_bbox: 0.2142 (0.2532) loss_giou: 1.7864 (1.7857) loss_fgl: 0.4316 (0.4344) loss_vfl_aux_0: 0.1536 (0.1740) loss_bbox_aux_0: 0.2203 (0.2578) loss_giou_aux_0: 1.7978 (1.7992) loss_fgl_aux_0: 0.4325 (0.4335) loss_ddf_aux_0: 0.1217 (0.1536) loss_vfl_aux_1: 0.1584 (0.1760) loss_bbox_aux_1: 0.2163 (0.2545) loss_giou_aux_1: 1.7856 (1.7869) loss_fgl_aux_1: 0.4308 (0.4342) loss_ddf_aux_1: 0.0128 (0.0208) loss_vfl_aux_2: 0.1562 (0.1742) loss_bbox_aux_2: 0.2146 (0.2536) loss_giou_aux_2: 1.7852 (1.7857) loss_fgl_aux_2: 0.4311 (0.4343) loss_ddf_aux_2: 0.0021 (0.0029) loss_vfl_aux_3: 0.1558 (0.1697) loss_bbox_aux_3: 0.2145 (0.2533) loss_giou_aux_3: 1.7853 (1.7857) loss_fgl_aux_3: 0.4312 (0.4344) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1522 (0.1670) loss_bbox_aux_4: 0.2143 (0.2533) loss_giou_aux_4: 1.7863 (1.7856) loss_fgl_aux_4: 0.4315 (0.4344) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1517 (0.1713) loss_bbox_pre: 0.2256 (0.2613) loss_giou_pre: 1.7922 (1.7950) loss_vfl_enc_0: 0.1479 (0.1681) loss_bbox_enc_0: 0.2495 (0.2877) loss_giou_enc_0: 1.8443 (1.8471) loss_vfl_dn_0: 0.4429 (0.4295) loss_bbox_dn_0: 0.0453 (0.0476) loss_giou_dn_0: 1.1252 (1.1447) loss_fgl_dn_0: 0.9671 (0.9505) loss_ddf_dn_0: 0.2442 (0.2847) loss_vfl_dn_1: 0.4680 (0.4662) loss_bbox_dn_1: 0.0369 (0.0386) loss_giou_dn_1: 1.0471 (1.0473) loss_fgl_dn_1: 0.9900 (0.9787) loss_ddf_dn_1: 0.0223 (0.0282) loss_vfl_dn_2: 0.4626 (0.4622) loss_bbox_dn_2: 0.0360 (0.0375) loss_giou_dn_2: 1.0385 (1.0384) loss_fgl_dn_2: 0.9924 (0.9808) loss_ddf_dn_2: 0.0021 (0.0031) loss_vfl_dn_3: 0.4634 (0.4589) loss_bbox_dn_3: 0.0360 (0.0374) loss_giou_dn_3: 1.0371 (1.0377) loss_fgl_dn_3: 0.9918 (0.9809) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4600 (0.4578) loss_bbox_dn_4: 0.0360 (0.0373) loss_giou_dn_4: 1.0373 (1.0376) loss_fgl_dn_4: 0.9918 (0.9810) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4602 (0.4577) loss_bbox_dn_5: 0.0360 (0.0373) loss_giou_dn_5: 1.0373 (1.0376) loss_fgl_dn_5: 0.9918 (0.9809) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4407 (0.4284) loss_bbox_dn_pre: 0.0456 (0.0477) loss_giou_dn_pre: 1.1270 (1.1450) time: 0.7916 data: 0.0186 max mem: 29821\n", + "Epoch: [60] Total time: 0:01:11 (0.8542 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.3438 (37.6968) loss_vfl: 0.1522 (0.1665) loss_bbox: 0.2142 (0.2532) loss_giou: 1.7864 (1.7857) loss_fgl: 0.4316 (0.4344) loss_vfl_aux_0: 0.1536 (0.1740) loss_bbox_aux_0: 0.2203 (0.2578) loss_giou_aux_0: 1.7978 (1.7992) loss_fgl_aux_0: 0.4325 (0.4335) loss_ddf_aux_0: 0.1217 (0.1536) loss_vfl_aux_1: 0.1584 (0.1760) loss_bbox_aux_1: 0.2163 (0.2545) loss_giou_aux_1: 1.7856 (1.7869) loss_fgl_aux_1: 0.4308 (0.4342) loss_ddf_aux_1: 0.0128 (0.0208) loss_vfl_aux_2: 0.1562 (0.1742) loss_bbox_aux_2: 0.2146 (0.2536) loss_giou_aux_2: 1.7852 (1.7857) loss_fgl_aux_2: 0.4311 (0.4343) loss_ddf_aux_2: 0.0021 (0.0029) loss_vfl_aux_3: 0.1558 (0.1697) loss_bbox_aux_3: 0.2145 (0.2533) loss_giou_aux_3: 1.7853 (1.7857) loss_fgl_aux_3: 0.4312 (0.4344) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1522 (0.1670) loss_bbox_aux_4: 0.2143 (0.2533) loss_giou_aux_4: 1.7863 (1.7856) loss_fgl_aux_4: 0.4315 (0.4344) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1517 (0.1713) loss_bbox_pre: 0.2256 (0.2613) loss_giou_pre: 1.7922 (1.7950) loss_vfl_enc_0: 0.1479 (0.1681) loss_bbox_enc_0: 0.2495 (0.2877) loss_giou_enc_0: 1.8443 (1.8471) loss_vfl_dn_0: 0.4429 (0.4295) loss_bbox_dn_0: 0.0453 (0.0476) loss_giou_dn_0: 1.1252 (1.1447) loss_fgl_dn_0: 0.9671 (0.9505) loss_ddf_dn_0: 0.2442 (0.2847) loss_vfl_dn_1: 0.4680 (0.4662) loss_bbox_dn_1: 0.0369 (0.0386) loss_giou_dn_1: 1.0471 (1.0473) loss_fgl_dn_1: 0.9900 (0.9787) loss_ddf_dn_1: 0.0223 (0.0282) loss_vfl_dn_2: 0.4626 (0.4622) loss_bbox_dn_2: 0.0360 (0.0375) loss_giou_dn_2: 1.0385 (1.0384) loss_fgl_dn_2: 0.9924 (0.9808) loss_ddf_dn_2: 0.0021 (0.0031) loss_vfl_dn_3: 0.4634 (0.4589) loss_bbox_dn_3: 0.0360 (0.0374) loss_giou_dn_3: 1.0371 (1.0377) loss_fgl_dn_3: 0.9918 (0.9809) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4600 (0.4578) loss_bbox_dn_4: 0.0360 (0.0373) loss_giou_dn_4: 1.0373 (1.0376) loss_fgl_dn_4: 0.9918 (0.9810) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4602 (0.4577) loss_bbox_dn_5: 0.0360 (0.0373) loss_giou_dn_5: 1.0373 (1.0376) loss_fgl_dn_5: 0.9918 (0.9809) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4407 (0.4284) loss_bbox_dn_pre: 0.0456 (0.0477) loss_giou_dn_pre: 1.1270 (1.1450)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7621 data: 0.5157 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4028 data: 0.1731 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4172 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.045\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.098\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.023\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.037\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.224\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.076\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.010\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.071\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.091\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.083\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.304\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.275\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.185\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.046\n", + "best_stat: {'epoch': 58, 'coco_eval_bbox': 0.046290457162162124}\n", + "Epoch: [61] [ 0/84] eta: 0:02:34 lr: 0.000013 loss: 37.6974 (37.6974) loss_vfl: 0.1736 (0.1736) loss_bbox: 0.2316 (0.2316) loss_giou: 1.7633 (1.7633) loss_fgl: 0.4698 (0.4698) loss_vfl_aux_0: 0.1815 (0.1815) loss_bbox_aux_0: 0.2365 (0.2365) loss_giou_aux_0: 1.7817 (1.7817) loss_fgl_aux_0: 0.4730 (0.4730) loss_ddf_aux_0: 0.1735 (0.1735) loss_vfl_aux_1: 0.1871 (0.1871) loss_bbox_aux_1: 0.2328 (0.2328) loss_giou_aux_1: 1.7667 (1.7667) loss_fgl_aux_1: 0.4710 (0.4710) loss_ddf_aux_1: 0.0278 (0.0278) loss_vfl_aux_2: 0.1829 (0.1829) loss_bbox_aux_2: 0.2321 (0.2321) loss_giou_aux_2: 1.7633 (1.7633) loss_fgl_aux_2: 0.4705 (0.4705) loss_ddf_aux_2: 0.0051 (0.0051) loss_vfl_aux_3: 0.1779 (0.1779) loss_bbox_aux_3: 0.2318 (0.2318) loss_giou_aux_3: 1.7631 (1.7631) loss_fgl_aux_3: 0.4701 (0.4701) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.1738 (0.1738) loss_bbox_aux_4: 0.2316 (0.2316) loss_giou_aux_4: 1.7632 (1.7632) loss_fgl_aux_4: 0.4698 (0.4698) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1779 (0.1779) loss_bbox_pre: 0.2400 (0.2400) loss_giou_pre: 1.7769 (1.7769) loss_vfl_enc_0: 0.1726 (0.1726) loss_bbox_enc_0: 0.2798 (0.2798) loss_giou_enc_0: 1.8240 (1.8240) loss_vfl_dn_0: 0.4353 (0.4353) loss_bbox_dn_0: 0.0495 (0.0495) loss_giou_dn_0: 1.1382 (1.1382) loss_fgl_dn_0: 0.9632 (0.9632) loss_ddf_dn_0: 0.2697 (0.2697) loss_vfl_dn_1: 0.4729 (0.4729) loss_bbox_dn_1: 0.0390 (0.0390) loss_giou_dn_1: 1.0313 (1.0313) loss_fgl_dn_1: 0.9917 (0.9917) loss_ddf_dn_1: 0.0294 (0.0294) loss_vfl_dn_2: 0.4700 (0.4700) loss_bbox_dn_2: 0.0374 (0.0374) loss_giou_dn_2: 1.0211 (1.0211) loss_fgl_dn_2: 0.9937 (0.9937) loss_ddf_dn_2: 0.0034 (0.0034) loss_vfl_dn_3: 0.4678 (0.4678) loss_bbox_dn_3: 0.0371 (0.0371) loss_giou_dn_3: 1.0197 (1.0197) loss_fgl_dn_3: 0.9937 (0.9937) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4680 (0.4680) loss_bbox_dn_4: 0.0370 (0.0370) loss_giou_dn_4: 1.0196 (1.0196) loss_fgl_dn_4: 0.9936 (0.9936) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4675 (0.4675) loss_bbox_dn_5: 0.0370 (0.0370) loss_giou_dn_5: 1.0196 (1.0196) loss_fgl_dn_5: 0.9936 (0.9936) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4353 (0.4353) loss_bbox_dn_pre: 0.0492 (0.0492) loss_giou_dn_pre: 1.1362 (1.1362) time: 1.8410 data: 0.9103 max mem: 29821\n", + "Epoch: [61] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.6031 (37.7877) loss_vfl: 0.1531 (0.1699) loss_bbox: 0.2463 (0.2562) loss_giou: 1.7990 (1.7945) loss_fgl: 0.3806 (0.4272) loss_vfl_aux_0: 0.1566 (0.1772) loss_bbox_aux_0: 0.2513 (0.2605) loss_giou_aux_0: 1.8069 (1.8061) loss_fgl_aux_0: 0.3805 (0.4270) loss_ddf_aux_0: 0.1392 (0.1433) loss_vfl_aux_1: 0.1595 (0.1791) loss_bbox_aux_1: 0.2466 (0.2577) loss_giou_aux_1: 1.7988 (1.7957) loss_fgl_aux_1: 0.3812 (0.4271) loss_ddf_aux_1: 0.0183 (0.0206) loss_vfl_aux_2: 0.1582 (0.1766) loss_bbox_aux_2: 0.2466 (0.2565) loss_giou_aux_2: 1.7985 (1.7944) loss_fgl_aux_2: 0.3809 (0.4272) loss_ddf_aux_2: 0.0020 (0.0028) loss_vfl_aux_3: 0.1561 (0.1725) loss_bbox_aux_3: 0.2464 (0.2563) loss_giou_aux_3: 1.7986 (1.7944) loss_fgl_aux_3: 0.3807 (0.4273) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1517 (0.1703) loss_bbox_aux_4: 0.2463 (0.2562) loss_giou_aux_4: 1.7990 (1.7944) loss_fgl_aux_4: 0.3807 (0.4272) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1555 (0.1745) loss_bbox_pre: 0.2546 (0.2633) loss_giou_pre: 1.8022 (1.8020) loss_vfl_enc_0: 0.1411 (0.1712) loss_bbox_enc_0: 0.2828 (0.2869) loss_giou_enc_0: 1.8354 (1.8478) loss_vfl_dn_0: 0.4272 (0.4294) loss_bbox_dn_0: 0.0439 (0.0470) loss_giou_dn_0: 1.1495 (1.1446) loss_fgl_dn_0: 0.9543 (0.9522) loss_ddf_dn_0: 0.2792 (0.3113) loss_vfl_dn_1: 0.4636 (0.4657) loss_bbox_dn_1: 0.0359 (0.0381) loss_giou_dn_1: 1.0502 (1.0461) loss_fgl_dn_1: 0.9874 (0.9816) loss_ddf_dn_1: 0.0340 (0.0385) loss_vfl_dn_2: 0.4609 (0.4621) loss_bbox_dn_2: 0.0347 (0.0369) loss_giou_dn_2: 1.0394 (1.0362) loss_fgl_dn_2: 0.9910 (0.9844) loss_ddf_dn_2: 0.0019 (0.0034) loss_vfl_dn_3: 0.4563 (0.4590) loss_bbox_dn_3: 0.0346 (0.0367) loss_giou_dn_3: 1.0395 (1.0356) loss_fgl_dn_3: 0.9914 (0.9846) loss_ddf_dn_3: 0.0004 (0.0003) loss_vfl_dn_4: 0.4568 (0.4579) loss_bbox_dn_4: 0.0346 (0.0367) loss_giou_dn_4: 1.0396 (1.0356) loss_fgl_dn_4: 0.9913 (0.9846) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4531 (0.4579) loss_bbox_dn_5: 0.0345 (0.0367) loss_giou_dn_5: 1.0396 (1.0356) loss_fgl_dn_5: 0.9913 (0.9846) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4280 (0.4284) loss_bbox_dn_pre: 0.0436 (0.0471) loss_giou_dn_pre: 1.1470 (1.1447) time: 0.8433 data: 0.0182 max mem: 29821\n", + "Epoch: [61] Total time: 0:01:09 (0.8303 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.6031 (37.7877) loss_vfl: 0.1531 (0.1699) loss_bbox: 0.2463 (0.2562) loss_giou: 1.7990 (1.7945) loss_fgl: 0.3806 (0.4272) loss_vfl_aux_0: 0.1566 (0.1772) loss_bbox_aux_0: 0.2513 (0.2605) loss_giou_aux_0: 1.8069 (1.8061) loss_fgl_aux_0: 0.3805 (0.4270) loss_ddf_aux_0: 0.1392 (0.1433) loss_vfl_aux_1: 0.1595 (0.1791) loss_bbox_aux_1: 0.2466 (0.2577) loss_giou_aux_1: 1.7988 (1.7957) loss_fgl_aux_1: 0.3812 (0.4271) loss_ddf_aux_1: 0.0183 (0.0206) loss_vfl_aux_2: 0.1582 (0.1766) loss_bbox_aux_2: 0.2466 (0.2565) loss_giou_aux_2: 1.7985 (1.7944) loss_fgl_aux_2: 0.3809 (0.4272) loss_ddf_aux_2: 0.0020 (0.0028) loss_vfl_aux_3: 0.1561 (0.1725) loss_bbox_aux_3: 0.2464 (0.2563) loss_giou_aux_3: 1.7986 (1.7944) loss_fgl_aux_3: 0.3807 (0.4273) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1517 (0.1703) loss_bbox_aux_4: 0.2463 (0.2562) loss_giou_aux_4: 1.7990 (1.7944) loss_fgl_aux_4: 0.3807 (0.4272) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1555 (0.1745) loss_bbox_pre: 0.2546 (0.2633) loss_giou_pre: 1.8022 (1.8020) loss_vfl_enc_0: 0.1411 (0.1712) loss_bbox_enc_0: 0.2828 (0.2869) loss_giou_enc_0: 1.8354 (1.8478) loss_vfl_dn_0: 0.4272 (0.4294) loss_bbox_dn_0: 0.0439 (0.0470) loss_giou_dn_0: 1.1495 (1.1446) loss_fgl_dn_0: 0.9543 (0.9522) loss_ddf_dn_0: 0.2792 (0.3113) loss_vfl_dn_1: 0.4636 (0.4657) loss_bbox_dn_1: 0.0359 (0.0381) loss_giou_dn_1: 1.0502 (1.0461) loss_fgl_dn_1: 0.9874 (0.9816) loss_ddf_dn_1: 0.0340 (0.0385) loss_vfl_dn_2: 0.4609 (0.4621) loss_bbox_dn_2: 0.0347 (0.0369) loss_giou_dn_2: 1.0394 (1.0362) loss_fgl_dn_2: 0.9910 (0.9844) loss_ddf_dn_2: 0.0019 (0.0034) loss_vfl_dn_3: 0.4563 (0.4590) loss_bbox_dn_3: 0.0346 (0.0367) loss_giou_dn_3: 1.0395 (1.0356) loss_fgl_dn_3: 0.9914 (0.9846) loss_ddf_dn_3: 0.0004 (0.0003) loss_vfl_dn_4: 0.4568 (0.4579) loss_bbox_dn_4: 0.0346 (0.0367) loss_giou_dn_4: 1.0396 (1.0356) loss_fgl_dn_4: 0.9913 (0.9846) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4531 (0.4579) loss_bbox_dn_5: 0.0345 (0.0367) loss_giou_dn_5: 1.0396 (1.0356) loss_fgl_dn_5: 0.9913 (0.9846) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4280 (0.4284) loss_bbox_dn_pre: 0.0436 (0.0471) loss_giou_dn_pre: 1.1470 (1.1447)\n", + "Test: [0/4] eta: 0:00:05 time: 1.2799 data: 0.4896 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.5228 data: 0.1603 max mem: 29821\n", + "Test: Total time: 0:00:02 (0.5402 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.045\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.099\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.024\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.037\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.219\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.056\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.009\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.073\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.093\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.086\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.308\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.275\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.185\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.069\n", + "best_stat: {'epoch': 58, 'coco_eval_bbox': 0.046290457162162124}\n", + "Epoch: [62] [ 0/84] eta: 0:02:32 lr: 0.000013 loss: 36.7485 (36.7485) loss_vfl: 0.1570 (0.1570) loss_bbox: 0.1933 (0.1933) loss_giou: 1.6727 (1.6727) loss_fgl: 0.5062 (0.5062) loss_vfl_aux_0: 0.1727 (0.1727) loss_bbox_aux_0: 0.1968 (0.1968) loss_giou_aux_0: 1.6856 (1.6856) loss_fgl_aux_0: 0.5012 (0.5012) loss_ddf_aux_0: 0.2011 (0.2011) loss_vfl_aux_1: 0.1696 (0.1696) loss_bbox_aux_1: 0.1930 (0.1930) loss_giou_aux_1: 1.6761 (1.6761) loss_fgl_aux_1: 0.5047 (0.5047) loss_ddf_aux_1: 0.0268 (0.0268) loss_vfl_aux_2: 0.1661 (0.1661) loss_bbox_aux_2: 0.1936 (0.1936) loss_giou_aux_2: 1.6730 (1.6730) loss_fgl_aux_2: 0.5058 (0.5058) loss_ddf_aux_2: 0.0025 (0.0025) loss_vfl_aux_3: 0.1646 (0.1646) loss_bbox_aux_3: 0.1934 (0.1934) loss_giou_aux_3: 1.6728 (1.6728) loss_fgl_aux_3: 0.5061 (0.5061) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1588 (0.1588) loss_bbox_aux_4: 0.1934 (0.1934) loss_giou_aux_4: 1.6726 (1.6726) loss_fgl_aux_4: 0.5062 (0.5062) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1702 (0.1702) loss_bbox_pre: 0.2011 (0.2011) loss_giou_pre: 1.6807 (1.6807) loss_vfl_enc_0: 0.1608 (0.1608) loss_bbox_enc_0: 0.2220 (0.2220) loss_giou_enc_0: 1.7353 (1.7353) loss_vfl_dn_0: 0.4294 (0.4294) loss_bbox_dn_0: 0.0456 (0.0456) loss_giou_dn_0: 1.1259 (1.1259) loss_fgl_dn_0: 0.9655 (0.9655) loss_ddf_dn_0: 0.2766 (0.2766) loss_vfl_dn_1: 0.4597 (0.4597) loss_bbox_dn_1: 0.0394 (0.0394) loss_giou_dn_1: 1.0384 (1.0384) loss_fgl_dn_1: 0.9994 (0.9994) loss_ddf_dn_1: 0.0307 (0.0307) loss_vfl_dn_2: 0.4536 (0.4536) loss_bbox_dn_2: 0.0392 (0.0392) loss_giou_dn_2: 1.0291 (1.0291) loss_fgl_dn_2: 1.0055 (1.0055) loss_ddf_dn_2: 0.0024 (0.0024) loss_vfl_dn_3: 0.4517 (0.4517) loss_bbox_dn_3: 0.0391 (0.0391) loss_giou_dn_3: 1.0281 (1.0281) loss_fgl_dn_3: 1.0063 (1.0063) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4509 (0.4509) loss_bbox_dn_4: 0.0390 (0.0390) loss_giou_dn_4: 1.0277 (1.0277) loss_fgl_dn_4: 1.0066 (1.0066) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4482 (0.4482) loss_bbox_dn_5: 0.0390 (0.0390) loss_giou_dn_5: 1.0278 (1.0278) loss_fgl_dn_5: 1.0067 (1.0067) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4285 (0.4285) loss_bbox_dn_pre: 0.0455 (0.0455) loss_giou_dn_pre: 1.1266 (1.1266) time: 1.8204 data: 0.9389 max mem: 29821\n", + "Epoch: [62] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.1450 (37.5549) loss_vfl: 0.1462 (0.1643) loss_bbox: 0.2256 (0.2411) loss_giou: 1.7997 (1.7839) loss_fgl: 0.3936 (0.4329) loss_vfl_aux_0: 0.1534 (0.1724) loss_bbox_aux_0: 0.2319 (0.2463) loss_giou_aux_0: 1.8076 (1.7964) loss_fgl_aux_0: 0.3939 (0.4316) loss_ddf_aux_0: 0.1456 (0.1507) loss_vfl_aux_1: 0.1560 (0.1738) loss_bbox_aux_1: 0.2258 (0.2425) loss_giou_aux_1: 1.8002 (1.7854) loss_fgl_aux_1: 0.3935 (0.4321) loss_ddf_aux_1: 0.0202 (0.0218) loss_vfl_aux_2: 0.1504 (0.1716) loss_bbox_aux_2: 0.2255 (0.2415) loss_giou_aux_2: 1.7999 (1.7839) loss_fgl_aux_2: 0.3942 (0.4327) loss_ddf_aux_2: 0.0026 (0.0035) loss_vfl_aux_3: 0.1504 (0.1676) loss_bbox_aux_3: 0.2254 (0.2412) loss_giou_aux_3: 1.7998 (1.7837) loss_fgl_aux_3: 0.3939 (0.4329) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1471 (0.1648) loss_bbox_aux_4: 0.2254 (0.2411) loss_giou_aux_4: 1.7998 (1.7838) loss_fgl_aux_4: 0.3937 (0.4330) loss_ddf_aux_4: 0.0001 (0.0002) loss_vfl_pre: 0.1498 (0.1699) loss_bbox_pre: 0.2330 (0.2492) loss_giou_pre: 1.8041 (1.7925) loss_vfl_enc_0: 0.1483 (0.1670) loss_bbox_enc_0: 0.2618 (0.2710) loss_giou_enc_0: 1.8496 (1.8390) loss_vfl_dn_0: 0.4302 (0.4309) loss_bbox_dn_0: 0.0418 (0.0462) loss_giou_dn_0: 1.1371 (1.1396) loss_fgl_dn_0: 0.9466 (0.9538) loss_ddf_dn_0: 0.2381 (0.2775) loss_vfl_dn_1: 0.4631 (0.4663) loss_bbox_dn_1: 0.0342 (0.0371) loss_giou_dn_1: 1.0550 (1.0427) loss_fgl_dn_1: 0.9791 (0.9856) loss_ddf_dn_1: 0.0226 (0.0330) loss_vfl_dn_2: 0.4631 (0.4628) loss_bbox_dn_2: 0.0329 (0.0362) loss_giou_dn_2: 1.0457 (1.0342) loss_fgl_dn_2: 0.9809 (0.9891) loss_ddf_dn_2: 0.0027 (0.0042) loss_vfl_dn_3: 0.4607 (0.4593) loss_bbox_dn_3: 0.0329 (0.0361) loss_giou_dn_3: 1.0450 (1.0334) loss_fgl_dn_3: 0.9806 (0.9895) loss_ddf_dn_3: 0.0004 (0.0005) loss_vfl_dn_4: 0.4607 (0.4584) loss_bbox_dn_4: 0.0329 (0.0360) loss_giou_dn_4: 1.0448 (1.0334) loss_fgl_dn_4: 0.9805 (0.9896) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4607 (0.4584) loss_bbox_dn_5: 0.0329 (0.0361) loss_giou_dn_5: 1.0447 (1.0334) loss_fgl_dn_5: 0.9803 (0.9895) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4282 (0.4303) loss_bbox_dn_pre: 0.0415 (0.0462) loss_giou_dn_pre: 1.1348 (1.1399) time: 0.8692 data: 0.0178 max mem: 29821\n", + "Epoch: [62] Total time: 0:01:11 (0.8524 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.1450 (37.5549) loss_vfl: 0.1462 (0.1643) loss_bbox: 0.2256 (0.2411) loss_giou: 1.7997 (1.7839) loss_fgl: 0.3936 (0.4329) loss_vfl_aux_0: 0.1534 (0.1724) loss_bbox_aux_0: 0.2319 (0.2463) loss_giou_aux_0: 1.8076 (1.7964) loss_fgl_aux_0: 0.3939 (0.4316) loss_ddf_aux_0: 0.1456 (0.1507) loss_vfl_aux_1: 0.1560 (0.1738) loss_bbox_aux_1: 0.2258 (0.2425) loss_giou_aux_1: 1.8002 (1.7854) loss_fgl_aux_1: 0.3935 (0.4321) loss_ddf_aux_1: 0.0202 (0.0218) loss_vfl_aux_2: 0.1504 (0.1716) loss_bbox_aux_2: 0.2255 (0.2415) loss_giou_aux_2: 1.7999 (1.7839) loss_fgl_aux_2: 0.3942 (0.4327) loss_ddf_aux_2: 0.0026 (0.0035) loss_vfl_aux_3: 0.1504 (0.1676) loss_bbox_aux_3: 0.2254 (0.2412) loss_giou_aux_3: 1.7998 (1.7837) loss_fgl_aux_3: 0.3939 (0.4329) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1471 (0.1648) loss_bbox_aux_4: 0.2254 (0.2411) loss_giou_aux_4: 1.7998 (1.7838) loss_fgl_aux_4: 0.3937 (0.4330) loss_ddf_aux_4: 0.0001 (0.0002) loss_vfl_pre: 0.1498 (0.1699) loss_bbox_pre: 0.2330 (0.2492) loss_giou_pre: 1.8041 (1.7925) loss_vfl_enc_0: 0.1483 (0.1670) loss_bbox_enc_0: 0.2618 (0.2710) loss_giou_enc_0: 1.8496 (1.8390) loss_vfl_dn_0: 0.4302 (0.4309) loss_bbox_dn_0: 0.0418 (0.0462) loss_giou_dn_0: 1.1371 (1.1396) loss_fgl_dn_0: 0.9466 (0.9538) loss_ddf_dn_0: 0.2381 (0.2775) loss_vfl_dn_1: 0.4631 (0.4663) loss_bbox_dn_1: 0.0342 (0.0371) loss_giou_dn_1: 1.0550 (1.0427) loss_fgl_dn_1: 0.9791 (0.9856) loss_ddf_dn_1: 0.0226 (0.0330) loss_vfl_dn_2: 0.4631 (0.4628) loss_bbox_dn_2: 0.0329 (0.0362) loss_giou_dn_2: 1.0457 (1.0342) loss_fgl_dn_2: 0.9809 (0.9891) loss_ddf_dn_2: 0.0027 (0.0042) loss_vfl_dn_3: 0.4607 (0.4593) loss_bbox_dn_3: 0.0329 (0.0361) loss_giou_dn_3: 1.0450 (1.0334) loss_fgl_dn_3: 0.9806 (0.9895) loss_ddf_dn_3: 0.0004 (0.0005) loss_vfl_dn_4: 0.4607 (0.4584) loss_bbox_dn_4: 0.0329 (0.0360) loss_giou_dn_4: 1.0448 (1.0334) loss_fgl_dn_4: 0.9805 (0.9896) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4607 (0.4584) loss_bbox_dn_5: 0.0329 (0.0361) loss_giou_dn_5: 1.0447 (1.0334) loss_fgl_dn_5: 0.9803 (0.9895) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4282 (0.4303) loss_bbox_dn_pre: 0.0415 (0.0462) loss_giou_dn_pre: 1.1348 (1.1399)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7500 data: 0.5016 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3976 data: 0.1668 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4124 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.046\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.102\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.025\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.038\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.220\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.249\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.009\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.074\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.095\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.088\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.313\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.525\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.188\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.072\n", + "best_stat: {'epoch': 58, 'coco_eval_bbox': 0.046290457162162124}\n", + "Epoch: [63] [ 0/84] eta: 0:02:25 lr: 0.000013 loss: 38.0043 (38.0043) loss_vfl: 0.2502 (0.2502) loss_bbox: 0.2465 (0.2465) loss_giou: 1.7076 (1.7076) loss_fgl: 0.5092 (0.5092) loss_vfl_aux_0: 0.2551 (0.2551) loss_bbox_aux_0: 0.2545 (0.2545) loss_giou_aux_0: 1.7119 (1.7119) loss_fgl_aux_0: 0.5039 (0.5039) loss_ddf_aux_0: 0.2026 (0.2026) loss_vfl_aux_1: 0.2603 (0.2603) loss_bbox_aux_1: 0.2482 (0.2482) loss_giou_aux_1: 1.7063 (1.7063) loss_fgl_aux_1: 0.5081 (0.5081) loss_ddf_aux_1: 0.0250 (0.0250) loss_vfl_aux_2: 0.2507 (0.2507) loss_bbox_aux_2: 0.2467 (0.2467) loss_giou_aux_2: 1.7067 (1.7067) loss_fgl_aux_2: 0.5087 (0.5087) loss_ddf_aux_2: 0.0035 (0.0035) loss_vfl_aux_3: 0.2500 (0.2500) loss_bbox_aux_3: 0.2467 (0.2467) loss_giou_aux_3: 1.7073 (1.7073) loss_fgl_aux_3: 0.5089 (0.5089) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.2515 (0.2515) loss_bbox_aux_4: 0.2465 (0.2465) loss_giou_aux_4: 1.7075 (1.7075) loss_fgl_aux_4: 0.5090 (0.5090) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.2534 (0.2534) loss_bbox_pre: 0.2576 (0.2576) loss_giou_pre: 1.7079 (1.7079) loss_vfl_enc_0: 0.2595 (0.2595) loss_bbox_enc_0: 0.2743 (0.2743) loss_giou_enc_0: 1.7552 (1.7552) loss_vfl_dn_0: 0.4409 (0.4409) loss_bbox_dn_0: 0.0550 (0.0550) loss_giou_dn_0: 1.0903 (1.0903) loss_fgl_dn_0: 0.9635 (0.9635) loss_ddf_dn_0: 0.3910 (0.3910) loss_vfl_dn_1: 0.4783 (0.4783) loss_bbox_dn_1: 0.0399 (0.0399) loss_giou_dn_1: 0.9706 (0.9706) loss_fgl_dn_1: 1.0043 (1.0043) loss_ddf_dn_1: 0.0262 (0.0262) loss_vfl_dn_2: 0.4680 (0.4680) loss_bbox_dn_2: 0.0387 (0.0387) loss_giou_dn_2: 0.9638 (0.9638) loss_fgl_dn_2: 1.0058 (1.0058) loss_ddf_dn_2: 0.0026 (0.0026) loss_vfl_dn_3: 0.4695 (0.4695) loss_bbox_dn_3: 0.0386 (0.0386) loss_giou_dn_3: 0.9633 (0.9633) loss_fgl_dn_3: 1.0060 (1.0060) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.4731 (0.4731) loss_bbox_dn_4: 0.0385 (0.0385) loss_giou_dn_4: 0.9632 (0.9632) loss_fgl_dn_4: 1.0061 (1.0061) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4722 (0.4722) loss_bbox_dn_5: 0.0384 (0.0384) loss_giou_dn_5: 0.9632 (0.9632) loss_fgl_dn_5: 1.0060 (1.0060) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4409 (0.4409) loss_bbox_dn_pre: 0.0550 (0.0550) loss_giou_dn_pre: 1.0890 (1.0890) time: 1.7310 data: 0.9236 max mem: 29821\n", + "Epoch: [63] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.6530 (37.3604) loss_vfl: 0.1642 (0.1686) loss_bbox: 0.2409 (0.2340) loss_giou: 1.8176 (1.7631) loss_fgl: 0.4527 (0.4401) loss_vfl_aux_0: 0.1691 (0.1769) loss_bbox_aux_0: 0.2440 (0.2392) loss_giou_aux_0: 1.8293 (1.7758) loss_fgl_aux_0: 0.4492 (0.4380) loss_ddf_aux_0: 0.1168 (0.1309) loss_vfl_aux_1: 0.1711 (0.1780) loss_bbox_aux_1: 0.2435 (0.2360) loss_giou_aux_1: 1.8179 (1.7637) loss_fgl_aux_1: 0.4512 (0.4393) loss_ddf_aux_1: 0.0177 (0.0181) loss_vfl_aux_2: 0.1674 (0.1756) loss_bbox_aux_2: 0.2413 (0.2346) loss_giou_aux_2: 1.8174 (1.7629) loss_fgl_aux_2: 0.4516 (0.4399) loss_ddf_aux_2: 0.0028 (0.0028) loss_vfl_aux_3: 0.1649 (0.1708) loss_bbox_aux_3: 0.2411 (0.2344) loss_giou_aux_3: 1.8172 (1.7628) loss_fgl_aux_3: 0.4519 (0.4401) loss_ddf_aux_3: 0.0005 (0.0003) loss_vfl_aux_4: 0.1630 (0.1687) loss_bbox_aux_4: 0.2410 (0.2342) loss_giou_aux_4: 1.8172 (1.7629) loss_fgl_aux_4: 0.4522 (0.4401) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1660 (0.1746) loss_bbox_pre: 0.2498 (0.2419) loss_giou_pre: 1.8231 (1.7720) loss_vfl_enc_0: 0.1692 (0.1724) loss_bbox_enc_0: 0.2700 (0.2641) loss_giou_enc_0: 1.8433 (1.8199) loss_vfl_dn_0: 0.4321 (0.4298) loss_bbox_dn_0: 0.0485 (0.0466) loss_giou_dn_0: 1.1158 (1.1367) loss_fgl_dn_0: 0.9552 (0.9509) loss_ddf_dn_0: 0.3409 (0.3022) loss_vfl_dn_1: 0.4656 (0.4664) loss_bbox_dn_1: 0.0377 (0.0371) loss_giou_dn_1: 1.0318 (1.0376) loss_fgl_dn_1: 0.9835 (0.9830) loss_ddf_dn_1: 0.0319 (0.0338) loss_vfl_dn_2: 0.4639 (0.4622) loss_bbox_dn_2: 0.0369 (0.0360) loss_giou_dn_2: 1.0224 (1.0288) loss_fgl_dn_2: 0.9848 (0.9863) loss_ddf_dn_2: 0.0036 (0.0040) loss_vfl_dn_3: 0.4590 (0.4593) loss_bbox_dn_3: 0.0368 (0.0359) loss_giou_dn_3: 1.0223 (1.0281) loss_fgl_dn_3: 0.9851 (0.9866) loss_ddf_dn_3: 0.0006 (0.0005) loss_vfl_dn_4: 0.4592 (0.4584) loss_bbox_dn_4: 0.0367 (0.0358) loss_giou_dn_4: 1.0224 (1.0281) loss_fgl_dn_4: 0.9851 (0.9866) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4570 (0.4586) loss_bbox_dn_5: 0.0367 (0.0358) loss_giou_dn_5: 1.0225 (1.0281) loss_fgl_dn_5: 0.9851 (0.9866) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4312 (0.4290) loss_bbox_dn_pre: 0.0482 (0.0467) loss_giou_dn_pre: 1.1141 (1.1375) time: 0.8353 data: 0.0177 max mem: 29821\n", + "Epoch: [63] Total time: 0:01:11 (0.8521 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.6530 (37.3604) loss_vfl: 0.1642 (0.1686) loss_bbox: 0.2409 (0.2340) loss_giou: 1.8176 (1.7631) loss_fgl: 0.4527 (0.4401) loss_vfl_aux_0: 0.1691 (0.1769) loss_bbox_aux_0: 0.2440 (0.2392) loss_giou_aux_0: 1.8293 (1.7758) loss_fgl_aux_0: 0.4492 (0.4380) loss_ddf_aux_0: 0.1168 (0.1309) loss_vfl_aux_1: 0.1711 (0.1780) loss_bbox_aux_1: 0.2435 (0.2360) loss_giou_aux_1: 1.8179 (1.7637) loss_fgl_aux_1: 0.4512 (0.4393) loss_ddf_aux_1: 0.0177 (0.0181) loss_vfl_aux_2: 0.1674 (0.1756) loss_bbox_aux_2: 0.2413 (0.2346) loss_giou_aux_2: 1.8174 (1.7629) loss_fgl_aux_2: 0.4516 (0.4399) loss_ddf_aux_2: 0.0028 (0.0028) loss_vfl_aux_3: 0.1649 (0.1708) loss_bbox_aux_3: 0.2411 (0.2344) loss_giou_aux_3: 1.8172 (1.7628) loss_fgl_aux_3: 0.4519 (0.4401) loss_ddf_aux_3: 0.0005 (0.0003) loss_vfl_aux_4: 0.1630 (0.1687) loss_bbox_aux_4: 0.2410 (0.2342) loss_giou_aux_4: 1.8172 (1.7629) loss_fgl_aux_4: 0.4522 (0.4401) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1660 (0.1746) loss_bbox_pre: 0.2498 (0.2419) loss_giou_pre: 1.8231 (1.7720) loss_vfl_enc_0: 0.1692 (0.1724) loss_bbox_enc_0: 0.2700 (0.2641) loss_giou_enc_0: 1.8433 (1.8199) loss_vfl_dn_0: 0.4321 (0.4298) loss_bbox_dn_0: 0.0485 (0.0466) loss_giou_dn_0: 1.1158 (1.1367) loss_fgl_dn_0: 0.9552 (0.9509) loss_ddf_dn_0: 0.3409 (0.3022) loss_vfl_dn_1: 0.4656 (0.4664) loss_bbox_dn_1: 0.0377 (0.0371) loss_giou_dn_1: 1.0318 (1.0376) loss_fgl_dn_1: 0.9835 (0.9830) loss_ddf_dn_1: 0.0319 (0.0338) loss_vfl_dn_2: 0.4639 (0.4622) loss_bbox_dn_2: 0.0369 (0.0360) loss_giou_dn_2: 1.0224 (1.0288) loss_fgl_dn_2: 0.9848 (0.9863) loss_ddf_dn_2: 0.0036 (0.0040) loss_vfl_dn_3: 0.4590 (0.4593) loss_bbox_dn_3: 0.0368 (0.0359) loss_giou_dn_3: 1.0223 (1.0281) loss_fgl_dn_3: 0.9851 (0.9866) loss_ddf_dn_3: 0.0006 (0.0005) loss_vfl_dn_4: 0.4592 (0.4584) loss_bbox_dn_4: 0.0367 (0.0358) loss_giou_dn_4: 1.0224 (1.0281) loss_fgl_dn_4: 0.9851 (0.9866) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4570 (0.4586) loss_bbox_dn_5: 0.0367 (0.0358) loss_giou_dn_5: 1.0225 (1.0281) loss_fgl_dn_5: 0.9851 (0.9866) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4312 (0.4290) loss_bbox_dn_pre: 0.0482 (0.0467) loss_giou_dn_pre: 1.1141 (1.1375)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7435 data: 0.4962 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3994 data: 0.1707 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4144 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.046\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.103\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.024\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.038\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.228\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.243\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.009\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.072\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.092\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.086\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.315\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.450\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.187\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.049\n", + "best_stat: {'epoch': 58, 'coco_eval_bbox': 0.046290457162162124}\n", + "Epoch: [64] [ 0/84] eta: 0:02:45 lr: 0.000013 loss: 39.6094 (39.6094) loss_vfl: 0.2659 (0.2659) loss_bbox: 0.3159 (0.3159) loss_giou: 1.7302 (1.7302) loss_fgl: 0.6014 (0.6014) loss_vfl_aux_0: 0.2732 (0.2732) loss_bbox_aux_0: 0.3161 (0.3161) loss_giou_aux_0: 1.7431 (1.7431) loss_fgl_aux_0: 0.5976 (0.5976) loss_ddf_aux_0: 0.1273 (0.1273) loss_vfl_aux_1: 0.2791 (0.2791) loss_bbox_aux_1: 0.3163 (0.3163) loss_giou_aux_1: 1.7321 (1.7321) loss_fgl_aux_1: 0.5992 (0.5992) loss_ddf_aux_1: 0.0201 (0.0201) loss_vfl_aux_2: 0.2812 (0.2812) loss_bbox_aux_2: 0.3159 (0.3159) loss_giou_aux_2: 1.7305 (1.7305) loss_fgl_aux_2: 0.6006 (0.6006) loss_ddf_aux_2: 0.0030 (0.0030) loss_vfl_aux_3: 0.2734 (0.2734) loss_bbox_aux_3: 0.3158 (0.3158) loss_giou_aux_3: 1.7306 (1.7306) loss_fgl_aux_3: 0.6009 (0.6009) loss_ddf_aux_3: 0.0005 (0.0005) loss_vfl_aux_4: 0.2671 (0.2671) loss_bbox_aux_4: 0.3159 (0.3159) loss_giou_aux_4: 1.7300 (1.7300) loss_fgl_aux_4: 0.6013 (0.6013) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.2725 (0.2725) loss_bbox_pre: 0.3182 (0.3182) loss_giou_pre: 1.7356 (1.7356) loss_vfl_enc_0: 0.2773 (0.2773) loss_bbox_enc_0: 0.3314 (0.3314) loss_giou_enc_0: 1.7611 (1.7611) loss_vfl_dn_0: 0.4487 (0.4487) loss_bbox_dn_0: 0.0586 (0.0586) loss_giou_dn_0: 1.0746 (1.0746) loss_fgl_dn_0: 1.0051 (1.0051) loss_ddf_dn_0: 0.4233 (0.4233) loss_vfl_dn_1: 0.4888 (0.4888) loss_bbox_dn_1: 0.0501 (0.0501) loss_giou_dn_1: 0.9535 (0.9535) loss_fgl_dn_1: 1.0425 (1.0425) loss_ddf_dn_1: 0.0313 (0.0313) loss_vfl_dn_2: 0.4834 (0.4834) loss_bbox_dn_2: 0.0484 (0.0484) loss_giou_dn_2: 0.9396 (0.9396) loss_fgl_dn_2: 1.0468 (1.0468) loss_ddf_dn_2: 0.0031 (0.0031) loss_vfl_dn_3: 0.4846 (0.4846) loss_bbox_dn_3: 0.0481 (0.0481) loss_giou_dn_3: 0.9381 (0.9381) loss_fgl_dn_3: 1.0476 (1.0476) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.4824 (0.4824) loss_bbox_dn_4: 0.0482 (0.0482) loss_giou_dn_4: 0.9375 (0.9375) loss_fgl_dn_4: 1.0478 (1.0478) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4807 (0.4807) loss_bbox_dn_5: 0.0482 (0.0482) loss_giou_dn_5: 0.9375 (0.9375) loss_fgl_dn_5: 1.0478 (1.0478) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4475 (0.4475) loss_bbox_dn_pre: 0.0585 (0.0585) loss_giou_dn_pre: 1.0763 (1.0763) time: 1.9752 data: 1.1182 max mem: 29821\n", + "Epoch: [64] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.1240 (37.5559) loss_vfl: 0.1431 (0.1674) loss_bbox: 0.2261 (0.2430) loss_giou: 1.8231 (1.7851) loss_fgl: 0.3995 (0.4275) loss_vfl_aux_0: 0.1500 (0.1750) loss_bbox_aux_0: 0.2334 (0.2487) loss_giou_aux_0: 1.8312 (1.7944) loss_fgl_aux_0: 0.3969 (0.4267) loss_ddf_aux_0: 0.1300 (0.1427) loss_vfl_aux_1: 0.1489 (0.1764) loss_bbox_aux_1: 0.2280 (0.2443) loss_giou_aux_1: 1.8244 (1.7855) loss_fgl_aux_1: 0.3997 (0.4269) loss_ddf_aux_1: 0.0108 (0.0176) loss_vfl_aux_2: 0.1462 (0.1742) loss_bbox_aux_2: 0.2269 (0.2435) loss_giou_aux_2: 1.8228 (1.7848) loss_fgl_aux_2: 0.3992 (0.4272) loss_ddf_aux_2: 0.0013 (0.0024) loss_vfl_aux_3: 0.1428 (0.1701) loss_bbox_aux_3: 0.2266 (0.2432) loss_giou_aux_3: 1.8226 (1.7848) loss_fgl_aux_3: 0.3993 (0.4274) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1439 (0.1680) loss_bbox_aux_4: 0.2262 (0.2430) loss_giou_aux_4: 1.8230 (1.7850) loss_fgl_aux_4: 0.3995 (0.4275) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1486 (0.1727) loss_bbox_pre: 0.2347 (0.2511) loss_giou_pre: 1.8279 (1.7913) loss_vfl_enc_0: 0.1464 (0.1705) loss_bbox_enc_0: 0.2579 (0.2730) loss_giou_enc_0: 1.8565 (1.8398) loss_vfl_dn_0: 0.4211 (0.4292) loss_bbox_dn_0: 0.0415 (0.0454) loss_giou_dn_0: 1.1646 (1.1440) loss_fgl_dn_0: 0.9459 (0.9514) loss_ddf_dn_0: 0.2984 (0.3180) loss_vfl_dn_1: 0.4622 (0.4660) loss_bbox_dn_1: 0.0331 (0.0365) loss_giou_dn_1: 1.0662 (1.0418) loss_fgl_dn_1: 0.9744 (0.9812) loss_ddf_dn_1: 0.0195 (0.0317) loss_vfl_dn_2: 0.4558 (0.4620) loss_bbox_dn_2: 0.0328 (0.0356) loss_giou_dn_2: 1.0575 (1.0338) loss_fgl_dn_2: 0.9756 (0.9843) loss_ddf_dn_2: 0.0022 (0.0030) loss_vfl_dn_3: 0.4521 (0.4584) loss_bbox_dn_3: 0.0323 (0.0354) loss_giou_dn_3: 1.0566 (1.0330) loss_fgl_dn_3: 0.9763 (0.9847) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4531 (0.4572) loss_bbox_dn_4: 0.0323 (0.0354) loss_giou_dn_4: 1.0566 (1.0329) loss_fgl_dn_4: 0.9765 (0.9847) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4521 (0.4570) loss_bbox_dn_5: 0.0323 (0.0354) loss_giou_dn_5: 1.0567 (1.0330) loss_fgl_dn_5: 0.9763 (0.9847) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4202 (0.4288) loss_bbox_dn_pre: 0.0414 (0.0453) loss_giou_dn_pre: 1.1679 (1.1443) time: 0.8627 data: 0.0197 max mem: 29821\n", + "Epoch: [64] Total time: 0:01:11 (0.8525 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.1240 (37.5559) loss_vfl: 0.1431 (0.1674) loss_bbox: 0.2261 (0.2430) loss_giou: 1.8231 (1.7851) loss_fgl: 0.3995 (0.4275) loss_vfl_aux_0: 0.1500 (0.1750) loss_bbox_aux_0: 0.2334 (0.2487) loss_giou_aux_0: 1.8312 (1.7944) loss_fgl_aux_0: 0.3969 (0.4267) loss_ddf_aux_0: 0.1300 (0.1427) loss_vfl_aux_1: 0.1489 (0.1764) loss_bbox_aux_1: 0.2280 (0.2443) loss_giou_aux_1: 1.8244 (1.7855) loss_fgl_aux_1: 0.3997 (0.4269) loss_ddf_aux_1: 0.0108 (0.0176) loss_vfl_aux_2: 0.1462 (0.1742) loss_bbox_aux_2: 0.2269 (0.2435) loss_giou_aux_2: 1.8228 (1.7848) loss_fgl_aux_2: 0.3992 (0.4272) loss_ddf_aux_2: 0.0013 (0.0024) loss_vfl_aux_3: 0.1428 (0.1701) loss_bbox_aux_3: 0.2266 (0.2432) loss_giou_aux_3: 1.8226 (1.7848) loss_fgl_aux_3: 0.3993 (0.4274) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1439 (0.1680) loss_bbox_aux_4: 0.2262 (0.2430) loss_giou_aux_4: 1.8230 (1.7850) loss_fgl_aux_4: 0.3995 (0.4275) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1486 (0.1727) loss_bbox_pre: 0.2347 (0.2511) loss_giou_pre: 1.8279 (1.7913) loss_vfl_enc_0: 0.1464 (0.1705) loss_bbox_enc_0: 0.2579 (0.2730) loss_giou_enc_0: 1.8565 (1.8398) loss_vfl_dn_0: 0.4211 (0.4292) loss_bbox_dn_0: 0.0415 (0.0454) loss_giou_dn_0: 1.1646 (1.1440) loss_fgl_dn_0: 0.9459 (0.9514) loss_ddf_dn_0: 0.2984 (0.3180) loss_vfl_dn_1: 0.4622 (0.4660) loss_bbox_dn_1: 0.0331 (0.0365) loss_giou_dn_1: 1.0662 (1.0418) loss_fgl_dn_1: 0.9744 (0.9812) loss_ddf_dn_1: 0.0195 (0.0317) loss_vfl_dn_2: 0.4558 (0.4620) loss_bbox_dn_2: 0.0328 (0.0356) loss_giou_dn_2: 1.0575 (1.0338) loss_fgl_dn_2: 0.9756 (0.9843) loss_ddf_dn_2: 0.0022 (0.0030) loss_vfl_dn_3: 0.4521 (0.4584) loss_bbox_dn_3: 0.0323 (0.0354) loss_giou_dn_3: 1.0566 (1.0330) loss_fgl_dn_3: 0.9763 (0.9847) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4531 (0.4572) loss_bbox_dn_4: 0.0323 (0.0354) loss_giou_dn_4: 1.0566 (1.0329) loss_fgl_dn_4: 0.9765 (0.9847) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4521 (0.4570) loss_bbox_dn_5: 0.0323 (0.0354) loss_giou_dn_5: 1.0567 (1.0330) loss_fgl_dn_5: 0.9763 (0.9847) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4202 (0.4288) loss_bbox_dn_pre: 0.0414 (0.0453) loss_giou_dn_pre: 1.1679 (1.1443)\n", + "Test: [0/4] eta: 0:00:03 time: 0.8023 data: 0.5548 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4145 data: 0.1817 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4302 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.047\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.104\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.025\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.039\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.230\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.262\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.020\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.074\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.094\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.087\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.321\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.475\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.189\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.053\n", + "best_stat: {'epoch': 64, 'coco_eval_bbox': 0.047491897575043886}\n", + "Epoch: [65] [ 0/84] eta: 0:02:46 lr: 0.000013 loss: 35.8682 (35.8682) loss_vfl: 0.1337 (0.1337) loss_bbox: 0.1787 (0.1787) loss_giou: 1.6119 (1.6119) loss_fgl: 0.5164 (0.5164) loss_vfl_aux_0: 0.1398 (0.1398) loss_bbox_aux_0: 0.1886 (0.1886) loss_giou_aux_0: 1.6241 (1.6241) loss_fgl_aux_0: 0.5139 (0.5139) loss_ddf_aux_0: 0.1123 (0.1123) loss_vfl_aux_1: 0.1418 (0.1418) loss_bbox_aux_1: 0.1807 (0.1807) loss_giou_aux_1: 1.6135 (1.6135) loss_fgl_aux_1: 0.5160 (0.5160) loss_ddf_aux_1: 0.0079 (0.0079) loss_vfl_aux_2: 0.1403 (0.1403) loss_bbox_aux_2: 0.1794 (0.1794) loss_giou_aux_2: 1.6120 (1.6120) loss_fgl_aux_2: 0.5162 (0.5162) loss_ddf_aux_2: 0.0011 (0.0011) loss_vfl_aux_3: 0.1356 (0.1356) loss_bbox_aux_3: 0.1790 (0.1790) loss_giou_aux_3: 1.6120 (1.6120) loss_fgl_aux_3: 0.5163 (0.5163) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1331 (0.1331) loss_bbox_aux_4: 0.1787 (0.1787) loss_giou_aux_4: 1.6120 (1.6120) loss_fgl_aux_4: 0.5165 (0.5165) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.1384 (0.1384) loss_bbox_pre: 0.1925 (0.1925) loss_giou_pre: 1.6195 (1.6195) loss_vfl_enc_0: 0.1433 (0.1433) loss_bbox_enc_0: 0.2151 (0.2151) loss_giou_enc_0: 1.6612 (1.6612) loss_vfl_dn_0: 0.4138 (0.4138) loss_bbox_dn_0: 0.0509 (0.0509) loss_giou_dn_0: 1.1910 (1.1910) loss_fgl_dn_0: 0.9406 (0.9406) loss_ddf_dn_0: 0.2470 (0.2470) loss_vfl_dn_1: 0.4561 (0.4561) loss_bbox_dn_1: 0.0400 (0.0400) loss_giou_dn_1: 1.0628 (1.0628) loss_fgl_dn_1: 0.9681 (0.9681) loss_ddf_dn_1: 0.0143 (0.0143) loss_vfl_dn_2: 0.4473 (0.4473) loss_bbox_dn_2: 0.0388 (0.0388) loss_giou_dn_2: 1.0587 (1.0587) loss_fgl_dn_2: 0.9689 (0.9689) loss_ddf_dn_2: 0.0019 (0.0019) loss_vfl_dn_3: 0.4434 (0.4434) loss_bbox_dn_3: 0.0386 (0.0386) loss_giou_dn_3: 1.0581 (1.0581) loss_fgl_dn_3: 0.9689 (0.9689) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4463 (0.4463) loss_bbox_dn_4: 0.0386 (0.0386) loss_giou_dn_4: 1.0579 (1.0579) loss_fgl_dn_4: 0.9688 (0.9688) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4473 (0.4473) loss_bbox_dn_5: 0.0386 (0.0386) loss_giou_dn_5: 1.0579 (1.0579) loss_fgl_dn_5: 0.9688 (0.9688) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4141 (0.4141) loss_bbox_dn_pre: 0.0505 (0.0505) loss_giou_dn_pre: 1.1884 (1.1884) time: 1.9795 data: 1.0663 max mem: 29821\n", + "Epoch: [65] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.4764 (37.5716) loss_vfl: 0.1611 (0.1586) loss_bbox: 0.2146 (0.2547) loss_giou: 1.7966 (1.7941) loss_fgl: 0.4100 (0.4240) loss_vfl_aux_0: 0.1637 (0.1654) loss_bbox_aux_0: 0.2185 (0.2594) loss_giou_aux_0: 1.8005 (1.8064) loss_fgl_aux_0: 0.4108 (0.4243) loss_ddf_aux_0: 0.1227 (0.1410) loss_vfl_aux_1: 0.1649 (0.1666) loss_bbox_aux_1: 0.2170 (0.2555) loss_giou_aux_1: 1.7988 (1.7960) loss_fgl_aux_1: 0.4109 (0.4243) loss_ddf_aux_1: 0.0240 (0.0207) loss_vfl_aux_2: 0.1649 (0.1651) loss_bbox_aux_2: 0.2148 (0.2550) loss_giou_aux_2: 1.7972 (1.7941) loss_fgl_aux_2: 0.4103 (0.4240) loss_ddf_aux_2: 0.0031 (0.0028) loss_vfl_aux_3: 0.1611 (0.1613) loss_bbox_aux_3: 0.2146 (0.2547) loss_giou_aux_3: 1.7969 (1.7941) loss_fgl_aux_3: 0.4100 (0.4241) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1599 (0.1592) loss_bbox_aux_4: 0.2145 (0.2547) loss_giou_aux_4: 1.7967 (1.7941) loss_fgl_aux_4: 0.4100 (0.4240) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1609 (0.1629) loss_bbox_pre: 0.2199 (0.2623) loss_giou_pre: 1.7969 (1.8019) loss_vfl_enc_0: 0.1562 (0.1610) loss_bbox_enc_0: 0.2471 (0.2864) loss_giou_enc_0: 1.8211 (1.8477) loss_vfl_dn_0: 0.4346 (0.4315) loss_bbox_dn_0: 0.0411 (0.0439) loss_giou_dn_0: 1.1241 (1.1383) loss_fgl_dn_0: 0.9623 (0.9550) loss_ddf_dn_0: 0.2819 (0.2546) loss_vfl_dn_1: 0.4692 (0.4650) loss_bbox_dn_1: 0.0322 (0.0360) loss_giou_dn_1: 1.0353 (1.0464) loss_fgl_dn_1: 0.9836 (0.9793) loss_ddf_dn_1: 0.0349 (0.0291) loss_vfl_dn_2: 0.4639 (0.4616) loss_bbox_dn_2: 0.0315 (0.0351) loss_giou_dn_2: 1.0240 (1.0381) loss_fgl_dn_2: 0.9863 (0.9815) loss_ddf_dn_2: 0.0024 (0.0030) loss_vfl_dn_3: 0.4602 (0.4591) loss_bbox_dn_3: 0.0314 (0.0350) loss_giou_dn_3: 1.0226 (1.0375) loss_fgl_dn_3: 0.9860 (0.9817) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4595 (0.4584) loss_bbox_dn_4: 0.0314 (0.0350) loss_giou_dn_4: 1.0227 (1.0374) loss_fgl_dn_4: 0.9860 (0.9818) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4600 (0.4586) loss_bbox_dn_5: 0.0314 (0.0350) loss_giou_dn_5: 1.0227 (1.0374) loss_fgl_dn_5: 0.9861 (0.9818) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4336 (0.4308) loss_bbox_dn_pre: 0.0411 (0.0440) loss_giou_dn_pre: 1.1257 (1.1387) time: 0.8332 data: 0.0171 max mem: 29821\n", + "Epoch: [65] Total time: 0:01:12 (0.8658 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.4764 (37.5716) loss_vfl: 0.1611 (0.1586) loss_bbox: 0.2146 (0.2547) loss_giou: 1.7966 (1.7941) loss_fgl: 0.4100 (0.4240) loss_vfl_aux_0: 0.1637 (0.1654) loss_bbox_aux_0: 0.2185 (0.2594) loss_giou_aux_0: 1.8005 (1.8064) loss_fgl_aux_0: 0.4108 (0.4243) loss_ddf_aux_0: 0.1227 (0.1410) loss_vfl_aux_1: 0.1649 (0.1666) loss_bbox_aux_1: 0.2170 (0.2555) loss_giou_aux_1: 1.7988 (1.7960) loss_fgl_aux_1: 0.4109 (0.4243) loss_ddf_aux_1: 0.0240 (0.0207) loss_vfl_aux_2: 0.1649 (0.1651) loss_bbox_aux_2: 0.2148 (0.2550) loss_giou_aux_2: 1.7972 (1.7941) loss_fgl_aux_2: 0.4103 (0.4240) loss_ddf_aux_2: 0.0031 (0.0028) loss_vfl_aux_3: 0.1611 (0.1613) loss_bbox_aux_3: 0.2146 (0.2547) loss_giou_aux_3: 1.7969 (1.7941) loss_fgl_aux_3: 0.4100 (0.4241) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1599 (0.1592) loss_bbox_aux_4: 0.2145 (0.2547) loss_giou_aux_4: 1.7967 (1.7941) loss_fgl_aux_4: 0.4100 (0.4240) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1609 (0.1629) loss_bbox_pre: 0.2199 (0.2623) loss_giou_pre: 1.7969 (1.8019) loss_vfl_enc_0: 0.1562 (0.1610) loss_bbox_enc_0: 0.2471 (0.2864) loss_giou_enc_0: 1.8211 (1.8477) loss_vfl_dn_0: 0.4346 (0.4315) loss_bbox_dn_0: 0.0411 (0.0439) loss_giou_dn_0: 1.1241 (1.1383) loss_fgl_dn_0: 0.9623 (0.9550) loss_ddf_dn_0: 0.2819 (0.2546) loss_vfl_dn_1: 0.4692 (0.4650) loss_bbox_dn_1: 0.0322 (0.0360) loss_giou_dn_1: 1.0353 (1.0464) loss_fgl_dn_1: 0.9836 (0.9793) loss_ddf_dn_1: 0.0349 (0.0291) loss_vfl_dn_2: 0.4639 (0.4616) loss_bbox_dn_2: 0.0315 (0.0351) loss_giou_dn_2: 1.0240 (1.0381) loss_fgl_dn_2: 0.9863 (0.9815) loss_ddf_dn_2: 0.0024 (0.0030) loss_vfl_dn_3: 0.4602 (0.4591) loss_bbox_dn_3: 0.0314 (0.0350) loss_giou_dn_3: 1.0226 (1.0375) loss_fgl_dn_3: 0.9860 (0.9817) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4595 (0.4584) loss_bbox_dn_4: 0.0314 (0.0350) loss_giou_dn_4: 1.0227 (1.0374) loss_fgl_dn_4: 0.9860 (0.9818) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4600 (0.4586) loss_bbox_dn_5: 0.0314 (0.0350) loss_giou_dn_5: 1.0227 (1.0374) loss_fgl_dn_5: 0.9861 (0.9818) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4336 (0.4308) loss_bbox_dn_pre: 0.0411 (0.0440) loss_giou_dn_pre: 1.1257 (1.1387)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7426 data: 0.4965 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3978 data: 0.1667 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4137 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.050\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.108\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.026\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.042\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.232\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.186\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.024\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.076\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.096\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.090\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.308\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.500\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.190\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.072\n", + "best_stat: {'epoch': 65, 'coco_eval_bbox': 0.050347537111746846}\n", + "Epoch: [66] [ 0/84] eta: 0:02:23 lr: 0.000013 loss: 36.0707 (36.0707) loss_vfl: 0.1888 (0.1888) loss_bbox: 0.1631 (0.1631) loss_giou: 1.6325 (1.6325) loss_fgl: 0.4800 (0.4800) loss_vfl_aux_0: 0.2075 (0.2075) loss_bbox_aux_0: 0.1670 (0.1670) loss_giou_aux_0: 1.6393 (1.6393) loss_fgl_aux_0: 0.4846 (0.4846) loss_ddf_aux_0: 0.1231 (0.1231) loss_vfl_aux_1: 0.2026 (0.2026) loss_bbox_aux_1: 0.1641 (0.1641) loss_giou_aux_1: 1.6341 (1.6341) loss_fgl_aux_1: 0.4811 (0.4811) loss_ddf_aux_1: 0.0187 (0.0187) loss_vfl_aux_2: 0.2001 (0.2001) loss_bbox_aux_2: 0.1634 (0.1634) loss_giou_aux_2: 1.6322 (1.6322) loss_fgl_aux_2: 0.4802 (0.4802) loss_ddf_aux_2: 0.0020 (0.0020) loss_vfl_aux_3: 0.1945 (0.1945) loss_bbox_aux_3: 0.1632 (0.1632) loss_giou_aux_3: 1.6326 (1.6326) loss_fgl_aux_3: 0.4799 (0.4799) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1915 (0.1915) loss_bbox_aux_4: 0.1630 (0.1630) loss_giou_aux_4: 1.6326 (1.6326) loss_fgl_aux_4: 0.4800 (0.4800) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.2042 (0.2042) loss_bbox_pre: 0.1706 (0.1706) loss_giou_pre: 1.6348 (1.6348) loss_vfl_enc_0: 0.2028 (0.2028) loss_bbox_enc_0: 0.1959 (0.1959) loss_giou_enc_0: 1.6897 (1.6897) loss_vfl_dn_0: 0.4490 (0.4490) loss_bbox_dn_0: 0.0384 (0.0384) loss_giou_dn_0: 1.0868 (1.0868) loss_fgl_dn_0: 0.9829 (0.9829) loss_ddf_dn_0: 0.3475 (0.3475) loss_vfl_dn_1: 0.4736 (0.4736) loss_bbox_dn_1: 0.0319 (0.0319) loss_giou_dn_1: 0.9969 (0.9969) loss_fgl_dn_1: 0.9981 (0.9981) loss_ddf_dn_1: 0.0339 (0.0339) loss_vfl_dn_2: 0.4709 (0.4709) loss_bbox_dn_2: 0.0308 (0.0308) loss_giou_dn_2: 0.9890 (0.9890) loss_fgl_dn_2: 0.9999 (0.9999) loss_ddf_dn_2: 0.0035 (0.0035) loss_vfl_dn_3: 0.4692 (0.4692) loss_bbox_dn_3: 0.0307 (0.0307) loss_giou_dn_3: 0.9886 (0.9886) loss_fgl_dn_3: 1.0004 (1.0004) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4670 (0.4670) loss_bbox_dn_4: 0.0307 (0.0307) loss_giou_dn_4: 0.9885 (0.9885) loss_fgl_dn_4: 1.0006 (1.0006) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4666 (0.4666) loss_bbox_dn_5: 0.0307 (0.0307) loss_giou_dn_5: 0.9885 (0.9885) loss_fgl_dn_5: 1.0007 (1.0007) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4482 (0.4482) loss_bbox_dn_pre: 0.0385 (0.0385) loss_giou_dn_pre: 1.0878 (1.0878) time: 1.7135 data: 0.8702 max mem: 29821\n", + "Epoch: [66] [83/84] eta: 0:00:00 lr: 0.000013 loss: 36.9712 (37.5308) loss_vfl: 0.1460 (0.1624) loss_bbox: 0.2416 (0.2487) loss_giou: 1.7501 (1.7829) loss_fgl: 0.4226 (0.4302) loss_vfl_aux_0: 0.1564 (0.1703) loss_bbox_aux_0: 0.2480 (0.2533) loss_giou_aux_0: 1.7506 (1.7956) loss_fgl_aux_0: 0.4221 (0.4302) loss_ddf_aux_0: 0.1213 (0.1338) loss_vfl_aux_1: 0.1592 (0.1724) loss_bbox_aux_1: 0.2443 (0.2494) loss_giou_aux_1: 1.7531 (1.7848) loss_fgl_aux_1: 0.4229 (0.4303) loss_ddf_aux_1: 0.0237 (0.0210) loss_vfl_aux_2: 0.1556 (0.1703) loss_bbox_aux_2: 0.2429 (0.2488) loss_giou_aux_2: 1.7519 (1.7833) loss_fgl_aux_2: 0.4222 (0.4301) loss_ddf_aux_2: 0.0035 (0.0031) loss_vfl_aux_3: 0.1517 (0.1662) loss_bbox_aux_3: 0.2419 (0.2486) loss_giou_aux_3: 1.7509 (1.7831) loss_fgl_aux_3: 0.4225 (0.4302) loss_ddf_aux_3: 0.0003 (0.0002) loss_vfl_aux_4: 0.1477 (0.1631) loss_bbox_aux_4: 0.2416 (0.2486) loss_giou_aux_4: 1.7503 (1.7830) loss_fgl_aux_4: 0.4226 (0.4302) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1533 (0.1675) loss_bbox_pre: 0.2527 (0.2569) loss_giou_pre: 1.7448 (1.7902) loss_vfl_enc_0: 0.1447 (0.1662) loss_bbox_enc_0: 0.2758 (0.2806) loss_giou_enc_0: 1.8191 (1.8409) loss_vfl_dn_0: 0.4368 (0.4280) loss_bbox_dn_0: 0.0399 (0.0448) loss_giou_dn_0: 1.1240 (1.1401) loss_fgl_dn_0: 0.9629 (0.9490) loss_ddf_dn_0: 0.2583 (0.3066) loss_vfl_dn_1: 0.4670 (0.4662) loss_bbox_dn_1: 0.0341 (0.0361) loss_giou_dn_1: 1.0451 (1.0409) loss_fgl_dn_1: 0.9830 (0.9784) loss_ddf_dn_1: 0.0369 (0.0368) loss_vfl_dn_2: 0.4609 (0.4615) loss_bbox_dn_2: 0.0338 (0.0352) loss_giou_dn_2: 1.0424 (1.0335) loss_fgl_dn_2: 0.9873 (0.9805) loss_ddf_dn_2: 0.0045 (0.0040) loss_vfl_dn_3: 0.4580 (0.4588) loss_bbox_dn_3: 0.0333 (0.0351) loss_giou_dn_3: 1.0428 (1.0329) loss_fgl_dn_3: 0.9879 (0.9808) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4580 (0.4575) loss_bbox_dn_4: 0.0332 (0.0351) loss_giou_dn_4: 1.0427 (1.0329) loss_fgl_dn_4: 0.9879 (0.9808) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4546 (0.4575) loss_bbox_dn_5: 0.0332 (0.0351) loss_giou_dn_5: 1.0428 (1.0329) loss_fgl_dn_5: 0.9879 (0.9808) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4355 (0.4269) loss_bbox_dn_pre: 0.0400 (0.0450) loss_giou_dn_pre: 1.1253 (1.1405) time: 0.8567 data: 0.0178 max mem: 29821\n", + "Epoch: [66] Total time: 0:01:11 (0.8466 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 36.9712 (37.5308) loss_vfl: 0.1460 (0.1624) loss_bbox: 0.2416 (0.2487) loss_giou: 1.7501 (1.7829) loss_fgl: 0.4226 (0.4302) loss_vfl_aux_0: 0.1564 (0.1703) loss_bbox_aux_0: 0.2480 (0.2533) loss_giou_aux_0: 1.7506 (1.7956) loss_fgl_aux_0: 0.4221 (0.4302) loss_ddf_aux_0: 0.1213 (0.1338) loss_vfl_aux_1: 0.1592 (0.1724) loss_bbox_aux_1: 0.2443 (0.2494) loss_giou_aux_1: 1.7531 (1.7848) loss_fgl_aux_1: 0.4229 (0.4303) loss_ddf_aux_1: 0.0237 (0.0210) loss_vfl_aux_2: 0.1556 (0.1703) loss_bbox_aux_2: 0.2429 (0.2488) loss_giou_aux_2: 1.7519 (1.7833) loss_fgl_aux_2: 0.4222 (0.4301) loss_ddf_aux_2: 0.0035 (0.0031) loss_vfl_aux_3: 0.1517 (0.1662) loss_bbox_aux_3: 0.2419 (0.2486) loss_giou_aux_3: 1.7509 (1.7831) loss_fgl_aux_3: 0.4225 (0.4302) loss_ddf_aux_3: 0.0003 (0.0002) loss_vfl_aux_4: 0.1477 (0.1631) loss_bbox_aux_4: 0.2416 (0.2486) loss_giou_aux_4: 1.7503 (1.7830) loss_fgl_aux_4: 0.4226 (0.4302) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1533 (0.1675) loss_bbox_pre: 0.2527 (0.2569) loss_giou_pre: 1.7448 (1.7902) loss_vfl_enc_0: 0.1447 (0.1662) loss_bbox_enc_0: 0.2758 (0.2806) loss_giou_enc_0: 1.8191 (1.8409) loss_vfl_dn_0: 0.4368 (0.4280) loss_bbox_dn_0: 0.0399 (0.0448) loss_giou_dn_0: 1.1240 (1.1401) loss_fgl_dn_0: 0.9629 (0.9490) loss_ddf_dn_0: 0.2583 (0.3066) loss_vfl_dn_1: 0.4670 (0.4662) loss_bbox_dn_1: 0.0341 (0.0361) loss_giou_dn_1: 1.0451 (1.0409) loss_fgl_dn_1: 0.9830 (0.9784) loss_ddf_dn_1: 0.0369 (0.0368) loss_vfl_dn_2: 0.4609 (0.4615) loss_bbox_dn_2: 0.0338 (0.0352) loss_giou_dn_2: 1.0424 (1.0335) loss_fgl_dn_2: 0.9873 (0.9805) loss_ddf_dn_2: 0.0045 (0.0040) loss_vfl_dn_3: 0.4580 (0.4588) loss_bbox_dn_3: 0.0333 (0.0351) loss_giou_dn_3: 1.0428 (1.0329) loss_fgl_dn_3: 0.9879 (0.9808) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4580 (0.4575) loss_bbox_dn_4: 0.0332 (0.0351) loss_giou_dn_4: 1.0427 (1.0329) loss_fgl_dn_4: 0.9879 (0.9808) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4546 (0.4575) loss_bbox_dn_5: 0.0332 (0.0351) loss_giou_dn_5: 1.0428 (1.0329) loss_fgl_dn_5: 0.9879 (0.9808) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4355 (0.4269) loss_bbox_dn_pre: 0.0400 (0.0450) loss_giou_dn_pre: 1.1253 (1.1405)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7465 data: 0.4972 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.3960 data: 0.1667 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4123 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.050\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.109\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.026\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.041\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.225\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.305\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.023\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.076\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.097\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.090\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.317\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.525\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.192\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.074\n", + "best_stat: {'epoch': 65, 'coco_eval_bbox': 0.050347537111746846}\n", + "Epoch: [67] [ 0/84] eta: 0:02:53 lr: 0.000013 loss: 38.6691 (38.6691) loss_vfl: 0.1255 (0.1255) loss_bbox: 0.3259 (0.3259) loss_giou: 2.0156 (2.0156) loss_fgl: 0.2705 (0.2705) loss_vfl_aux_0: 0.1312 (0.1312) loss_bbox_aux_0: 0.3262 (0.3262) loss_giou_aux_0: 2.0287 (2.0287) loss_fgl_aux_0: 0.2735 (0.2735) loss_ddf_aux_0: 0.1286 (0.1286) loss_vfl_aux_1: 0.1338 (0.1338) loss_bbox_aux_1: 0.3263 (0.3263) loss_giou_aux_1: 2.0163 (2.0163) loss_fgl_aux_1: 0.2700 (0.2700) loss_ddf_aux_1: 0.0221 (0.0221) loss_vfl_aux_2: 0.1355 (0.1355) loss_bbox_aux_2: 0.3254 (0.3254) loss_giou_aux_2: 2.0153 (2.0153) loss_fgl_aux_2: 0.2706 (0.2706) loss_ddf_aux_2: 0.0036 (0.0036) loss_vfl_aux_3: 0.1302 (0.1302) loss_bbox_aux_3: 0.3254 (0.3254) loss_giou_aux_3: 2.0156 (2.0156) loss_fgl_aux_3: 0.2705 (0.2705) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1274 (0.1274) loss_bbox_aux_4: 0.3257 (0.3257) loss_giou_aux_4: 2.0157 (2.0157) loss_fgl_aux_4: 0.2705 (0.2705) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1290 (0.1290) loss_bbox_pre: 0.3334 (0.3334) loss_giou_pre: 2.0204 (2.0204) loss_vfl_enc_0: 0.1333 (0.1333) loss_bbox_enc_0: 0.3535 (0.3535) loss_giou_enc_0: 2.0946 (2.0946) loss_vfl_dn_0: 0.4258 (0.4258) loss_bbox_dn_0: 0.0363 (0.0363) loss_giou_dn_0: 1.1563 (1.1563) loss_fgl_dn_0: 0.9430 (0.9430) loss_ddf_dn_0: 0.1996 (0.1996) loss_vfl_dn_1: 0.4553 (0.4553) loss_bbox_dn_1: 0.0325 (0.0325) loss_giou_dn_1: 1.0619 (1.0619) loss_fgl_dn_1: 0.9728 (0.9728) loss_ddf_dn_1: 0.0238 (0.0238) loss_vfl_dn_2: 0.4514 (0.4514) loss_bbox_dn_2: 0.0325 (0.0325) loss_giou_dn_2: 1.0601 (1.0601) loss_fgl_dn_2: 0.9725 (0.9725) loss_ddf_dn_2: 0.0042 (0.0042) loss_vfl_dn_3: 0.4482 (0.4482) loss_bbox_dn_3: 0.0322 (0.0322) loss_giou_dn_3: 1.0593 (1.0593) loss_fgl_dn_3: 0.9726 (0.9726) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4465 (0.4465) loss_bbox_dn_4: 0.0321 (0.0321) loss_giou_dn_4: 1.0592 (1.0592) loss_fgl_dn_4: 0.9726 (0.9726) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4458 (0.4458) loss_bbox_dn_5: 0.0322 (0.0322) loss_giou_dn_5: 1.0592 (1.0592) loss_fgl_dn_5: 0.9727 (0.9727) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4248 (0.4248) loss_bbox_dn_pre: 0.0363 (0.0363) loss_giou_dn_pre: 1.1568 (1.1568) time: 2.0615 data: 1.1904 max mem: 29821\n", + "Epoch: [67] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.4054 (37.9063) loss_vfl: 0.1294 (0.1659) loss_bbox: 0.2410 (0.2645) loss_giou: 1.8023 (1.7887) loss_fgl: 0.4002 (0.4353) loss_vfl_aux_0: 0.1320 (0.1728) loss_bbox_aux_0: 0.2447 (0.2675) loss_giou_aux_0: 1.8153 (1.8038) loss_fgl_aux_0: 0.3999 (0.4349) loss_ddf_aux_0: 0.1589 (0.1626) loss_vfl_aux_1: 0.1366 (0.1751) loss_bbox_aux_1: 0.2415 (0.2656) loss_giou_aux_1: 1.8037 (1.7899) loss_fgl_aux_1: 0.3989 (0.4348) loss_ddf_aux_1: 0.0419 (0.0368) loss_vfl_aux_2: 0.1343 (0.1730) loss_bbox_aux_2: 0.2403 (0.2646) loss_giou_aux_2: 1.8030 (1.7888) loss_fgl_aux_2: 0.4000 (0.4352) loss_ddf_aux_2: 0.0045 (0.0046) loss_vfl_aux_3: 0.1328 (0.1692) loss_bbox_aux_3: 0.2405 (0.2644) loss_giou_aux_3: 1.8026 (1.7888) loss_fgl_aux_3: 0.4005 (0.4353) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1301 (0.1664) loss_bbox_aux_4: 0.2408 (0.2644) loss_giou_aux_4: 1.8024 (1.7888) loss_fgl_aux_4: 0.4004 (0.4353) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1302 (0.1702) loss_bbox_pre: 0.2444 (0.2718) loss_giou_pre: 1.8151 (1.7985) loss_vfl_enc_0: 0.1313 (0.1705) loss_bbox_enc_0: 0.2779 (0.2996) loss_giou_enc_0: 1.8438 (1.8449) loss_vfl_dn_0: 0.4248 (0.4355) loss_bbox_dn_0: 0.0396 (0.0457) loss_giou_dn_0: 1.1439 (1.1264) loss_fgl_dn_0: 0.9478 (0.9640) loss_ddf_dn_0: 0.2621 (0.3215) loss_vfl_dn_1: 0.4597 (0.4678) loss_bbox_dn_1: 0.0334 (0.0373) loss_giou_dn_1: 1.0562 (1.0350) loss_fgl_dn_1: 0.9780 (0.9901) loss_ddf_dn_1: 0.0588 (0.0654) loss_vfl_dn_2: 0.4563 (0.4636) loss_bbox_dn_2: 0.0327 (0.0363) loss_giou_dn_2: 1.0499 (1.0268) loss_fgl_dn_2: 0.9813 (0.9936) loss_ddf_dn_2: 0.0054 (0.0098) loss_vfl_dn_3: 0.4539 (0.4603) loss_bbox_dn_3: 0.0327 (0.0361) loss_giou_dn_3: 1.0497 (1.0261) loss_fgl_dn_3: 0.9817 (0.9938) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4543 (0.4593) loss_bbox_dn_4: 0.0328 (0.0361) loss_giou_dn_4: 1.0496 (1.0260) loss_fgl_dn_4: 0.9815 (0.9937) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4548 (0.4594) loss_bbox_dn_5: 0.0328 (0.0361) loss_giou_dn_5: 1.0497 (1.0260) loss_fgl_dn_5: 0.9815 (0.9937) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4241 (0.4347) loss_bbox_dn_pre: 0.0400 (0.0459) loss_giou_dn_pre: 1.1462 (1.1265) time: 0.8814 data: 0.0179 max mem: 29821\n", + "Epoch: [67] Total time: 0:01:12 (0.8636 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.4054 (37.9063) loss_vfl: 0.1294 (0.1659) loss_bbox: 0.2410 (0.2645) loss_giou: 1.8023 (1.7887) loss_fgl: 0.4002 (0.4353) loss_vfl_aux_0: 0.1320 (0.1728) loss_bbox_aux_0: 0.2447 (0.2675) loss_giou_aux_0: 1.8153 (1.8038) loss_fgl_aux_0: 0.3999 (0.4349) loss_ddf_aux_0: 0.1589 (0.1626) loss_vfl_aux_1: 0.1366 (0.1751) loss_bbox_aux_1: 0.2415 (0.2656) loss_giou_aux_1: 1.8037 (1.7899) loss_fgl_aux_1: 0.3989 (0.4348) loss_ddf_aux_1: 0.0419 (0.0368) loss_vfl_aux_2: 0.1343 (0.1730) loss_bbox_aux_2: 0.2403 (0.2646) loss_giou_aux_2: 1.8030 (1.7888) loss_fgl_aux_2: 0.4000 (0.4352) loss_ddf_aux_2: 0.0045 (0.0046) loss_vfl_aux_3: 0.1328 (0.1692) loss_bbox_aux_3: 0.2405 (0.2644) loss_giou_aux_3: 1.8026 (1.7888) loss_fgl_aux_3: 0.4005 (0.4353) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1301 (0.1664) loss_bbox_aux_4: 0.2408 (0.2644) loss_giou_aux_4: 1.8024 (1.7888) loss_fgl_aux_4: 0.4004 (0.4353) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1302 (0.1702) loss_bbox_pre: 0.2444 (0.2718) loss_giou_pre: 1.8151 (1.7985) loss_vfl_enc_0: 0.1313 (0.1705) loss_bbox_enc_0: 0.2779 (0.2996) loss_giou_enc_0: 1.8438 (1.8449) loss_vfl_dn_0: 0.4248 (0.4355) loss_bbox_dn_0: 0.0396 (0.0457) loss_giou_dn_0: 1.1439 (1.1264) loss_fgl_dn_0: 0.9478 (0.9640) loss_ddf_dn_0: 0.2621 (0.3215) loss_vfl_dn_1: 0.4597 (0.4678) loss_bbox_dn_1: 0.0334 (0.0373) loss_giou_dn_1: 1.0562 (1.0350) loss_fgl_dn_1: 0.9780 (0.9901) loss_ddf_dn_1: 0.0588 (0.0654) loss_vfl_dn_2: 0.4563 (0.4636) loss_bbox_dn_2: 0.0327 (0.0363) loss_giou_dn_2: 1.0499 (1.0268) loss_fgl_dn_2: 0.9813 (0.9936) loss_ddf_dn_2: 0.0054 (0.0098) loss_vfl_dn_3: 0.4539 (0.4603) loss_bbox_dn_3: 0.0327 (0.0361) loss_giou_dn_3: 1.0497 (1.0261) loss_fgl_dn_3: 0.9817 (0.9938) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4543 (0.4593) loss_bbox_dn_4: 0.0328 (0.0361) loss_giou_dn_4: 1.0496 (1.0260) loss_fgl_dn_4: 0.9815 (0.9937) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4548 (0.4594) loss_bbox_dn_5: 0.0328 (0.0361) loss_giou_dn_5: 1.0497 (1.0260) loss_fgl_dn_5: 0.9815 (0.9937) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4241 (0.4347) loss_bbox_dn_pre: 0.0400 (0.0459) loss_giou_dn_pre: 1.1462 (1.1265)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7746 data: 0.5189 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4043 data: 0.1723 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4195 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.049\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.107\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.026\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.040\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.228\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.259\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.035\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.076\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.096\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.089\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.309\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.650\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.192\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.074\n", + "best_stat: {'epoch': 65, 'coco_eval_bbox': 0.050347537111746846}\n", + "Epoch: [68] [ 0/84] eta: 0:02:42 lr: 0.000013 loss: 36.5164 (36.5164) loss_vfl: 0.1459 (0.1459) loss_bbox: 0.1978 (0.1978) loss_giou: 1.7863 (1.7863) loss_fgl: 0.3673 (0.3673) loss_vfl_aux_0: 0.1520 (0.1520) loss_bbox_aux_0: 0.2008 (0.2008) loss_giou_aux_0: 1.7945 (1.7945) loss_fgl_aux_0: 0.3632 (0.3632) loss_ddf_aux_0: 0.1695 (0.1695) loss_vfl_aux_1: 0.1538 (0.1538) loss_bbox_aux_1: 0.1988 (0.1988) loss_giou_aux_1: 1.7869 (1.7869) loss_fgl_aux_1: 0.3664 (0.3664) loss_ddf_aux_1: 0.0587 (0.0587) loss_vfl_aux_2: 0.1476 (0.1476) loss_bbox_aux_2: 0.1978 (0.1978) loss_giou_aux_2: 1.7867 (1.7867) loss_fgl_aux_2: 0.3673 (0.3673) loss_ddf_aux_2: 0.0029 (0.0029) loss_vfl_aux_3: 0.1439 (0.1439) loss_bbox_aux_3: 0.1977 (0.1977) loss_giou_aux_3: 1.7865 (1.7865) loss_fgl_aux_3: 0.3675 (0.3675) loss_ddf_aux_3: 0.0005 (0.0005) loss_vfl_aux_4: 0.1450 (0.1450) loss_bbox_aux_4: 0.1976 (0.1976) loss_giou_aux_4: 1.7866 (1.7866) loss_fgl_aux_4: 0.3674 (0.3674) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.1495 (0.1495) loss_bbox_pre: 0.2023 (0.2023) loss_giou_pre: 1.7918 (1.7918) loss_vfl_enc_0: 0.1487 (0.1487) loss_bbox_enc_0: 0.2224 (0.2224) loss_giou_enc_0: 1.8305 (1.8305) loss_vfl_dn_0: 0.4302 (0.4302) loss_bbox_dn_0: 0.0277 (0.0277) loss_giou_dn_0: 1.1306 (1.1306) loss_fgl_dn_0: 0.9635 (0.9635) loss_ddf_dn_0: 0.2540 (0.2540) loss_vfl_dn_1: 0.4590 (0.4590) loss_bbox_dn_1: 0.0230 (0.0230) loss_giou_dn_1: 1.0288 (1.0288) loss_fgl_dn_1: 0.9943 (0.9943) loss_ddf_dn_1: 0.0499 (0.0499) loss_vfl_dn_2: 0.4558 (0.4558) loss_bbox_dn_2: 0.0226 (0.0226) loss_giou_dn_2: 1.0218 (1.0218) loss_fgl_dn_2: 0.9989 (0.9989) loss_ddf_dn_2: 0.0039 (0.0039) loss_vfl_dn_3: 0.4553 (0.4553) loss_bbox_dn_3: 0.0226 (0.0226) loss_giou_dn_3: 1.0209 (1.0209) loss_fgl_dn_3: 0.9994 (0.9994) loss_ddf_dn_3: 0.0007 (0.0007) loss_vfl_dn_4: 0.4514 (0.4514) loss_bbox_dn_4: 0.0226 (0.0226) loss_giou_dn_4: 1.0206 (1.0206) loss_fgl_dn_4: 0.9990 (0.9990) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4514 (0.4514) loss_bbox_dn_5: 0.0227 (0.0227) loss_giou_dn_5: 1.0205 (1.0205) loss_fgl_dn_5: 0.9986 (0.9986) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4302 (0.4302) loss_bbox_dn_pre: 0.0275 (0.0275) loss_giou_dn_pre: 1.1267 (1.1267) time: 1.9314 data: 0.9780 max mem: 29821\n", + "Epoch: [68] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.3881 (37.7920) loss_vfl: 0.1604 (0.1712) loss_bbox: 0.2336 (0.2475) loss_giou: 1.7664 (1.7885) loss_fgl: 0.4382 (0.4326) loss_vfl_aux_0: 0.1699 (0.1778) loss_bbox_aux_0: 0.2421 (0.2544) loss_giou_aux_0: 1.7841 (1.7984) loss_fgl_aux_0: 0.4420 (0.4316) loss_ddf_aux_0: 0.1142 (0.1347) loss_vfl_aux_1: 0.1710 (0.1796) loss_bbox_aux_1: 0.2352 (0.2492) loss_giou_aux_1: 1.7674 (1.7895) loss_fgl_aux_1: 0.4391 (0.4320) loss_ddf_aux_1: 0.0168 (0.0228) loss_vfl_aux_2: 0.1656 (0.1788) loss_bbox_aux_2: 0.2341 (0.2478) loss_giou_aux_2: 1.7668 (1.7887) loss_fgl_aux_2: 0.4384 (0.4324) loss_ddf_aux_2: 0.0023 (0.0040) loss_vfl_aux_3: 0.1630 (0.1741) loss_bbox_aux_3: 0.2339 (0.2477) loss_giou_aux_3: 1.7667 (1.7883) loss_fgl_aux_3: 0.4383 (0.4326) loss_ddf_aux_3: 0.0004 (0.0006) loss_vfl_aux_4: 0.1610 (0.1718) loss_bbox_aux_4: 0.2336 (0.2475) loss_giou_aux_4: 1.7664 (1.7885) loss_fgl_aux_4: 0.4381 (0.4326) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1677 (0.1756) loss_bbox_pre: 0.2480 (0.2563) loss_giou_pre: 1.7753 (1.7945) loss_vfl_enc_0: 0.1654 (0.1733) loss_bbox_enc_0: 0.2711 (0.2816) loss_giou_enc_0: 1.8093 (1.8462) loss_vfl_dn_0: 0.4253 (0.4331) loss_bbox_dn_0: 0.0440 (0.0457) loss_giou_dn_0: 1.1464 (1.1349) loss_fgl_dn_0: 0.9507 (0.9592) loss_ddf_dn_0: 0.3214 (0.3734) loss_vfl_dn_1: 0.4653 (0.4672) loss_bbox_dn_1: 0.0349 (0.0369) loss_giou_dn_1: 1.0361 (1.0361) loss_fgl_dn_1: 0.9809 (0.9869) loss_ddf_dn_1: 0.0199 (0.0576) loss_vfl_dn_2: 0.4651 (0.4641) loss_bbox_dn_2: 0.0343 (0.0359) loss_giou_dn_2: 1.0306 (1.0282) loss_fgl_dn_2: 0.9848 (0.9906) loss_ddf_dn_2: 0.0026 (0.0100) loss_vfl_dn_3: 0.4575 (0.4610) loss_bbox_dn_3: 0.0342 (0.0357) loss_giou_dn_3: 1.0301 (1.0273) loss_fgl_dn_3: 0.9851 (0.9914) loss_ddf_dn_3: 0.0007 (0.0011) loss_vfl_dn_4: 0.4570 (0.4607) loss_bbox_dn_4: 0.0342 (0.0356) loss_giou_dn_4: 1.0297 (1.0273) loss_fgl_dn_4: 0.9851 (0.9909) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4570 (0.4611) loss_bbox_dn_5: 0.0342 (0.0356) loss_giou_dn_5: 1.0297 (1.0274) loss_fgl_dn_5: 0.9851 (0.9909) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4248 (0.4323) loss_bbox_dn_pre: 0.0437 (0.0458) loss_giou_dn_pre: 1.1484 (1.1350) time: 0.8601 data: 0.0180 max mem: 29821\n", + "Epoch: [68] Total time: 0:01:12 (0.8659 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.3881 (37.7920) loss_vfl: 0.1604 (0.1712) loss_bbox: 0.2336 (0.2475) loss_giou: 1.7664 (1.7885) loss_fgl: 0.4382 (0.4326) loss_vfl_aux_0: 0.1699 (0.1778) loss_bbox_aux_0: 0.2421 (0.2544) loss_giou_aux_0: 1.7841 (1.7984) loss_fgl_aux_0: 0.4420 (0.4316) loss_ddf_aux_0: 0.1142 (0.1347) loss_vfl_aux_1: 0.1710 (0.1796) loss_bbox_aux_1: 0.2352 (0.2492) loss_giou_aux_1: 1.7674 (1.7895) loss_fgl_aux_1: 0.4391 (0.4320) loss_ddf_aux_1: 0.0168 (0.0228) loss_vfl_aux_2: 0.1656 (0.1788) loss_bbox_aux_2: 0.2341 (0.2478) loss_giou_aux_2: 1.7668 (1.7887) loss_fgl_aux_2: 0.4384 (0.4324) loss_ddf_aux_2: 0.0023 (0.0040) loss_vfl_aux_3: 0.1630 (0.1741) loss_bbox_aux_3: 0.2339 (0.2477) loss_giou_aux_3: 1.7667 (1.7883) loss_fgl_aux_3: 0.4383 (0.4326) loss_ddf_aux_3: 0.0004 (0.0006) loss_vfl_aux_4: 0.1610 (0.1718) loss_bbox_aux_4: 0.2336 (0.2475) loss_giou_aux_4: 1.7664 (1.7885) loss_fgl_aux_4: 0.4381 (0.4326) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1677 (0.1756) loss_bbox_pre: 0.2480 (0.2563) loss_giou_pre: 1.7753 (1.7945) loss_vfl_enc_0: 0.1654 (0.1733) loss_bbox_enc_0: 0.2711 (0.2816) loss_giou_enc_0: 1.8093 (1.8462) loss_vfl_dn_0: 0.4253 (0.4331) loss_bbox_dn_0: 0.0440 (0.0457) loss_giou_dn_0: 1.1464 (1.1349) loss_fgl_dn_0: 0.9507 (0.9592) loss_ddf_dn_0: 0.3214 (0.3734) loss_vfl_dn_1: 0.4653 (0.4672) loss_bbox_dn_1: 0.0349 (0.0369) loss_giou_dn_1: 1.0361 (1.0361) loss_fgl_dn_1: 0.9809 (0.9869) loss_ddf_dn_1: 0.0199 (0.0576) loss_vfl_dn_2: 0.4651 (0.4641) loss_bbox_dn_2: 0.0343 (0.0359) loss_giou_dn_2: 1.0306 (1.0282) loss_fgl_dn_2: 0.9848 (0.9906) loss_ddf_dn_2: 0.0026 (0.0100) loss_vfl_dn_3: 0.4575 (0.4610) loss_bbox_dn_3: 0.0342 (0.0357) loss_giou_dn_3: 1.0301 (1.0273) loss_fgl_dn_3: 0.9851 (0.9914) loss_ddf_dn_3: 0.0007 (0.0011) loss_vfl_dn_4: 0.4570 (0.4607) loss_bbox_dn_4: 0.0342 (0.0356) loss_giou_dn_4: 1.0297 (1.0273) loss_fgl_dn_4: 0.9851 (0.9909) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4570 (0.4611) loss_bbox_dn_5: 0.0342 (0.0356) loss_giou_dn_5: 1.0297 (1.0274) loss_fgl_dn_5: 0.9851 (0.9909) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4248 (0.4323) loss_bbox_dn_pre: 0.0437 (0.0458) loss_giou_dn_pre: 1.1484 (1.1350)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7592 data: 0.5013 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4064 data: 0.1697 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4229 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.048\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.107\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.024\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.040\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.225\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.432\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.021\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.073\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.094\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.087\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.306\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.700\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.193\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.051\n", + "best_stat: {'epoch': 65, 'coco_eval_bbox': 0.050347537111746846}\n", + "Epoch: [69] [ 0/84] eta: 0:02:22 lr: 0.000013 loss: 38.3774 (38.3774) loss_vfl: 0.1559 (0.1559) loss_bbox: 0.1984 (0.1984) loss_giou: 1.8021 (1.8021) loss_fgl: 0.5115 (0.5115) loss_vfl_aux_0: 0.1615 (0.1615) loss_bbox_aux_0: 0.2023 (0.2023) loss_giou_aux_0: 1.8198 (1.8198) loss_fgl_aux_0: 0.5144 (0.5144) loss_ddf_aux_0: 0.2923 (0.2923) loss_vfl_aux_1: 0.1665 (0.1665) loss_bbox_aux_1: 0.1995 (0.1995) loss_giou_aux_1: 1.8039 (1.8039) loss_fgl_aux_1: 0.5111 (0.5111) loss_ddf_aux_1: 0.0745 (0.0745) loss_vfl_aux_2: 0.1577 (0.1577) loss_bbox_aux_2: 0.1987 (0.1987) loss_giou_aux_2: 1.8021 (1.8021) loss_fgl_aux_2: 0.5109 (0.5109) loss_ddf_aux_2: 0.0062 (0.0062) loss_vfl_aux_3: 0.1550 (0.1550) loss_bbox_aux_3: 0.1983 (0.1983) loss_giou_aux_3: 1.8013 (1.8013) loss_fgl_aux_3: 0.5110 (0.5110) loss_ddf_aux_3: 0.0007 (0.0007) loss_vfl_aux_4: 0.1555 (0.1555) loss_bbox_aux_4: 0.1983 (0.1983) loss_giou_aux_4: 1.8022 (1.8022) loss_fgl_aux_4: 0.5115 (0.5115) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1602 (0.1602) loss_bbox_pre: 0.2053 (0.2053) loss_giou_pre: 1.8110 (1.8110) loss_vfl_enc_0: 0.1637 (0.1637) loss_bbox_enc_0: 0.2411 (0.2411) loss_giou_enc_0: 1.8269 (1.8269) loss_vfl_dn_0: 0.4177 (0.4177) loss_bbox_dn_0: 0.0504 (0.0504) loss_giou_dn_0: 1.1657 (1.1657) loss_fgl_dn_0: 0.9483 (0.9483) loss_ddf_dn_0: 0.4947 (0.4947) loss_vfl_dn_1: 0.4697 (0.4697) loss_bbox_dn_1: 0.0429 (0.0429) loss_giou_dn_1: 1.0405 (1.0405) loss_fgl_dn_1: 0.9787 (0.9787) loss_ddf_dn_1: 0.1985 (0.1985) loss_vfl_dn_2: 0.4668 (0.4668) loss_bbox_dn_2: 0.0419 (0.0419) loss_giou_dn_2: 1.0313 (1.0313) loss_fgl_dn_2: 0.9813 (0.9813) loss_ddf_dn_2: 0.0041 (0.0041) loss_vfl_dn_3: 0.4727 (0.4727) loss_bbox_dn_3: 0.0414 (0.0414) loss_giou_dn_3: 1.0302 (1.0302) loss_fgl_dn_3: 0.9817 (0.9817) loss_ddf_dn_3: 0.0008 (0.0008) loss_vfl_dn_4: 0.4717 (0.4717) loss_bbox_dn_4: 0.0415 (0.0415) loss_giou_dn_4: 1.0304 (1.0304) loss_fgl_dn_4: 0.9818 (0.9818) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4753 (0.4753) loss_bbox_dn_5: 0.0415 (0.0415) loss_giou_dn_5: 1.0304 (1.0304) loss_fgl_dn_5: 0.9818 (0.9818) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4175 (0.4175) loss_bbox_dn_pre: 0.0491 (0.0491) loss_giou_dn_pre: 1.1653 (1.1653) time: 1.7024 data: 0.8569 max mem: 29821\n", + "Epoch: [69] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.3396 (37.3869) loss_vfl: 0.1364 (0.1642) loss_bbox: 0.2310 (0.2333) loss_giou: 1.8148 (1.7751) loss_fgl: 0.4047 (0.4271) loss_vfl_aux_0: 0.1379 (0.1708) loss_bbox_aux_0: 0.2374 (0.2386) loss_giou_aux_0: 1.8184 (1.7867) loss_fgl_aux_0: 0.4030 (0.4271) loss_ddf_aux_0: 0.1305 (0.1391) loss_vfl_aux_1: 0.1428 (0.1729) loss_bbox_aux_1: 0.2317 (0.2343) loss_giou_aux_1: 1.8155 (1.7765) loss_fgl_aux_1: 0.4050 (0.4271) loss_ddf_aux_1: 0.0128 (0.0169) loss_vfl_aux_2: 0.1432 (0.1718) loss_bbox_aux_2: 0.2308 (0.2334) loss_giou_aux_2: 1.8151 (1.7753) loss_fgl_aux_2: 0.4048 (0.4271) loss_ddf_aux_2: 0.0019 (0.0028) loss_vfl_aux_3: 0.1390 (0.1672) loss_bbox_aux_3: 0.2309 (0.2333) loss_giou_aux_3: 1.8147 (1.7751) loss_fgl_aux_3: 0.4048 (0.4272) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1384 (0.1647) loss_bbox_aux_4: 0.2308 (0.2332) loss_giou_aux_4: 1.8148 (1.7752) loss_fgl_aux_4: 0.4048 (0.4272) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1354 (0.1687) loss_bbox_pre: 0.2448 (0.2408) loss_giou_pre: 1.8148 (1.7831) loss_vfl_enc_0: 0.1421 (0.1677) loss_bbox_enc_0: 0.2641 (0.2615) loss_giou_enc_0: 1.8507 (1.8292) loss_vfl_dn_0: 0.4158 (0.4283) loss_bbox_dn_0: 0.0431 (0.0457) loss_giou_dn_0: 1.1678 (1.1449) loss_fgl_dn_0: 0.9288 (0.9488) loss_ddf_dn_0: 0.4685 (0.3394) loss_vfl_dn_1: 0.4548 (0.4632) loss_bbox_dn_1: 0.0345 (0.0370) loss_giou_dn_1: 1.0535 (1.0472) loss_fgl_dn_1: 0.9598 (0.9763) loss_ddf_dn_1: 0.0420 (0.0375) loss_vfl_dn_2: 0.4565 (0.4604) loss_bbox_dn_2: 0.0335 (0.0360) loss_giou_dn_2: 1.0468 (1.0377) loss_fgl_dn_2: 0.9657 (0.9793) loss_ddf_dn_2: 0.0065 (0.0060) loss_vfl_dn_3: 0.4541 (0.4572) loss_bbox_dn_3: 0.0334 (0.0359) loss_giou_dn_3: 1.0464 (1.0369) loss_fgl_dn_3: 0.9659 (0.9796) loss_ddf_dn_3: 0.0007 (0.0008) loss_vfl_dn_4: 0.4531 (0.4556) loss_bbox_dn_4: 0.0334 (0.0358) loss_giou_dn_4: 1.0463 (1.0368) loss_fgl_dn_4: 0.9659 (0.9795) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4524 (0.4558) loss_bbox_dn_5: 0.0334 (0.0358) loss_giou_dn_5: 1.0469 (1.0368) loss_fgl_dn_5: 0.9659 (0.9795) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4155 (0.4274) loss_bbox_dn_pre: 0.0431 (0.0459) loss_giou_dn_pre: 1.1694 (1.1456) time: 0.8280 data: 0.0180 max mem: 29821\n", + "Epoch: [69] Total time: 0:01:10 (0.8432 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.3396 (37.3869) loss_vfl: 0.1364 (0.1642) loss_bbox: 0.2310 (0.2333) loss_giou: 1.8148 (1.7751) loss_fgl: 0.4047 (0.4271) loss_vfl_aux_0: 0.1379 (0.1708) loss_bbox_aux_0: 0.2374 (0.2386) loss_giou_aux_0: 1.8184 (1.7867) loss_fgl_aux_0: 0.4030 (0.4271) loss_ddf_aux_0: 0.1305 (0.1391) loss_vfl_aux_1: 0.1428 (0.1729) loss_bbox_aux_1: 0.2317 (0.2343) loss_giou_aux_1: 1.8155 (1.7765) loss_fgl_aux_1: 0.4050 (0.4271) loss_ddf_aux_1: 0.0128 (0.0169) loss_vfl_aux_2: 0.1432 (0.1718) loss_bbox_aux_2: 0.2308 (0.2334) loss_giou_aux_2: 1.8151 (1.7753) loss_fgl_aux_2: 0.4048 (0.4271) loss_ddf_aux_2: 0.0019 (0.0028) loss_vfl_aux_3: 0.1390 (0.1672) loss_bbox_aux_3: 0.2309 (0.2333) loss_giou_aux_3: 1.8147 (1.7751) loss_fgl_aux_3: 0.4048 (0.4272) loss_ddf_aux_3: 0.0003 (0.0004) loss_vfl_aux_4: 0.1384 (0.1647) loss_bbox_aux_4: 0.2308 (0.2332) loss_giou_aux_4: 1.8148 (1.7752) loss_fgl_aux_4: 0.4048 (0.4272) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1354 (0.1687) loss_bbox_pre: 0.2448 (0.2408) loss_giou_pre: 1.8148 (1.7831) loss_vfl_enc_0: 0.1421 (0.1677) loss_bbox_enc_0: 0.2641 (0.2615) loss_giou_enc_0: 1.8507 (1.8292) loss_vfl_dn_0: 0.4158 (0.4283) loss_bbox_dn_0: 0.0431 (0.0457) loss_giou_dn_0: 1.1678 (1.1449) loss_fgl_dn_0: 0.9288 (0.9488) loss_ddf_dn_0: 0.4685 (0.3394) loss_vfl_dn_1: 0.4548 (0.4632) loss_bbox_dn_1: 0.0345 (0.0370) loss_giou_dn_1: 1.0535 (1.0472) loss_fgl_dn_1: 0.9598 (0.9763) loss_ddf_dn_1: 0.0420 (0.0375) loss_vfl_dn_2: 0.4565 (0.4604) loss_bbox_dn_2: 0.0335 (0.0360) loss_giou_dn_2: 1.0468 (1.0377) loss_fgl_dn_2: 0.9657 (0.9793) loss_ddf_dn_2: 0.0065 (0.0060) loss_vfl_dn_3: 0.4541 (0.4572) loss_bbox_dn_3: 0.0334 (0.0359) loss_giou_dn_3: 1.0464 (1.0369) loss_fgl_dn_3: 0.9659 (0.9796) loss_ddf_dn_3: 0.0007 (0.0008) loss_vfl_dn_4: 0.4531 (0.4556) loss_bbox_dn_4: 0.0334 (0.0358) loss_giou_dn_4: 1.0463 (1.0368) loss_fgl_dn_4: 0.9659 (0.9795) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4524 (0.4558) loss_bbox_dn_5: 0.0334 (0.0358) loss_giou_dn_5: 1.0469 (1.0368) loss_fgl_dn_5: 0.9659 (0.9795) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4155 (0.4274) loss_bbox_dn_pre: 0.0431 (0.0459) loss_giou_dn_pre: 1.1694 (1.1456)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7838 data: 0.5399 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4081 data: 0.1751 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4250 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.049\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.107\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.026\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.040\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.224\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.389\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.021\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.073\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.094\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.087\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.323\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.825\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.192\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.055\n", + "best_stat: {'epoch': 65, 'coco_eval_bbox': 0.050347537111746846}\n", + "Epoch: [70] [ 0/84] eta: 0:02:34 lr: 0.000013 loss: 37.2481 (37.2481) loss_vfl: 0.2163 (0.2163) loss_bbox: 0.1906 (0.1906) loss_giou: 1.7347 (1.7347) loss_fgl: 0.4270 (0.4270) loss_vfl_aux_0: 0.2158 (0.2158) loss_bbox_aux_0: 0.1963 (0.1963) loss_giou_aux_0: 1.7477 (1.7477) loss_fgl_aux_0: 0.4236 (0.4236) loss_ddf_aux_0: 0.2906 (0.2906) loss_vfl_aux_1: 0.2313 (0.2313) loss_bbox_aux_1: 0.1916 (0.1916) loss_giou_aux_1: 1.7346 (1.7346) loss_fgl_aux_1: 0.4274 (0.4274) loss_ddf_aux_1: 0.0179 (0.0179) loss_vfl_aux_2: 0.2307 (0.2307) loss_bbox_aux_2: 0.1910 (0.1910) loss_giou_aux_2: 1.7347 (1.7347) loss_fgl_aux_2: 0.4272 (0.4272) loss_ddf_aux_2: 0.0025 (0.0025) loss_vfl_aux_3: 0.2214 (0.2214) loss_bbox_aux_3: 0.1907 (0.1907) loss_giou_aux_3: 1.7346 (1.7346) loss_fgl_aux_3: 0.4272 (0.4272) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.2188 (0.2188) loss_bbox_aux_4: 0.1907 (0.1907) loss_giou_aux_4: 1.7347 (1.7347) loss_fgl_aux_4: 0.4271 (0.4271) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.2095 (0.2095) loss_bbox_pre: 0.2028 (0.2028) loss_giou_pre: 1.7438 (1.7438) loss_vfl_enc_0: 0.2214 (0.2214) loss_bbox_enc_0: 0.2169 (0.2169) loss_giou_enc_0: 1.7801 (1.7801) loss_vfl_dn_0: 0.4031 (0.4031) loss_bbox_dn_0: 0.0473 (0.0473) loss_giou_dn_0: 1.1668 (1.1668) loss_fgl_dn_0: 0.9129 (0.9129) loss_ddf_dn_0: 0.4980 (0.4980) loss_vfl_dn_1: 0.4553 (0.4553) loss_bbox_dn_1: 0.0349 (0.0349) loss_giou_dn_1: 1.0556 (1.0556) loss_fgl_dn_1: 0.9440 (0.9440) loss_ddf_dn_1: 0.0291 (0.0291) loss_vfl_dn_2: 0.4553 (0.4553) loss_bbox_dn_2: 0.0343 (0.0343) loss_giou_dn_2: 1.0487 (1.0487) loss_fgl_dn_2: 0.9469 (0.9469) loss_ddf_dn_2: 0.0038 (0.0038) loss_vfl_dn_3: 0.4514 (0.4514) loss_bbox_dn_3: 0.0346 (0.0346) loss_giou_dn_3: 1.0472 (1.0472) loss_fgl_dn_3: 0.9476 (0.9476) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.4514 (0.4514) loss_bbox_dn_4: 0.0348 (0.0348) loss_giou_dn_4: 1.0469 (1.0469) loss_fgl_dn_4: 0.9476 (0.9476) loss_ddf_dn_4: 0.0001 (0.0001) loss_vfl_dn_5: 0.4497 (0.4497) loss_bbox_dn_5: 0.0348 (0.0348) loss_giou_dn_5: 1.0468 (1.0468) loss_fgl_dn_5: 0.9477 (0.9477) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4006 (0.4006) loss_bbox_dn_pre: 0.0479 (0.0479) loss_giou_dn_pre: 1.1705 (1.1705) time: 1.8364 data: 1.0956 max mem: 29821\n", + "Epoch: [70] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.3173 (37.5367) loss_vfl: 0.1490 (0.1743) loss_bbox: 0.2174 (0.2374) loss_giou: 1.8229 (1.7582) loss_fgl: 0.3940 (0.4540) loss_vfl_aux_0: 0.1547 (0.1834) loss_bbox_aux_0: 0.2226 (0.2413) loss_giou_aux_0: 1.8344 (1.7727) loss_fgl_aux_0: 0.3951 (0.4549) loss_ddf_aux_0: 0.1300 (0.1598) loss_vfl_aux_1: 0.1534 (0.1849) loss_bbox_aux_1: 0.2178 (0.2383) loss_giou_aux_1: 1.8238 (1.7593) loss_fgl_aux_1: 0.3922 (0.4540) loss_ddf_aux_1: 0.0176 (0.0169) loss_vfl_aux_2: 0.1503 (0.1824) loss_bbox_aux_2: 0.2179 (0.2378) loss_giou_aux_2: 1.8223 (1.7581) loss_fgl_aux_2: 0.3941 (0.4539) loss_ddf_aux_2: 0.0032 (0.0036) loss_vfl_aux_3: 0.1505 (0.1777) loss_bbox_aux_3: 0.2178 (0.2376) loss_giou_aux_3: 1.8224 (1.7580) loss_fgl_aux_3: 0.3939 (0.4540) loss_ddf_aux_3: 0.0006 (0.0005) loss_vfl_aux_4: 0.1493 (0.1748) loss_bbox_aux_4: 0.2175 (0.2375) loss_giou_aux_4: 1.8225 (1.7581) loss_fgl_aux_4: 0.3940 (0.4540) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1517 (0.1809) loss_bbox_pre: 0.2267 (0.2444) loss_giou_pre: 1.8323 (1.7677) loss_vfl_enc_0: 0.1444 (0.1782) loss_bbox_enc_0: 0.2438 (0.2732) loss_giou_enc_0: 1.8957 (1.8189) loss_vfl_dn_0: 0.4395 (0.4372) loss_bbox_dn_0: 0.0393 (0.0450) loss_giou_dn_0: 1.1227 (1.1200) loss_fgl_dn_0: 0.9681 (0.9666) loss_ddf_dn_0: 0.2811 (0.3173) loss_vfl_dn_1: 0.4612 (0.4686) loss_bbox_dn_1: 0.0317 (0.0368) loss_giou_dn_1: 1.0502 (1.0309) loss_fgl_dn_1: 0.9868 (0.9890) loss_ddf_dn_1: 0.0249 (0.0377) loss_vfl_dn_2: 0.4597 (0.4624) loss_bbox_dn_2: 0.0313 (0.0360) loss_giou_dn_2: 1.0448 (1.0232) loss_fgl_dn_2: 0.9898 (0.9910) loss_ddf_dn_2: 0.0034 (0.0073) loss_vfl_dn_3: 0.4580 (0.4593) loss_bbox_dn_3: 0.0312 (0.0358) loss_giou_dn_3: 1.0439 (1.0224) loss_fgl_dn_3: 0.9898 (0.9914) loss_ddf_dn_3: 0.0007 (0.0008) loss_vfl_dn_4: 0.4580 (0.4581) loss_bbox_dn_4: 0.0312 (0.0357) loss_giou_dn_4: 1.0437 (1.0223) loss_fgl_dn_4: 0.9897 (0.9914) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4580 (0.4584) loss_bbox_dn_5: 0.0312 (0.0357) loss_giou_dn_5: 1.0436 (1.0224) loss_fgl_dn_5: 0.9897 (0.9913) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4382 (0.4362) loss_bbox_dn_pre: 0.0394 (0.0453) loss_giou_dn_pre: 1.1252 (1.1203) time: 0.8458 data: 0.0174 max mem: 29821\n", + "Epoch: [70] Total time: 0:01:11 (0.8470 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.3173 (37.5367) loss_vfl: 0.1490 (0.1743) loss_bbox: 0.2174 (0.2374) loss_giou: 1.8229 (1.7582) loss_fgl: 0.3940 (0.4540) loss_vfl_aux_0: 0.1547 (0.1834) loss_bbox_aux_0: 0.2226 (0.2413) loss_giou_aux_0: 1.8344 (1.7727) loss_fgl_aux_0: 0.3951 (0.4549) loss_ddf_aux_0: 0.1300 (0.1598) loss_vfl_aux_1: 0.1534 (0.1849) loss_bbox_aux_1: 0.2178 (0.2383) loss_giou_aux_1: 1.8238 (1.7593) loss_fgl_aux_1: 0.3922 (0.4540) loss_ddf_aux_1: 0.0176 (0.0169) loss_vfl_aux_2: 0.1503 (0.1824) loss_bbox_aux_2: 0.2179 (0.2378) loss_giou_aux_2: 1.8223 (1.7581) loss_fgl_aux_2: 0.3941 (0.4539) loss_ddf_aux_2: 0.0032 (0.0036) loss_vfl_aux_3: 0.1505 (0.1777) loss_bbox_aux_3: 0.2178 (0.2376) loss_giou_aux_3: 1.8224 (1.7580) loss_fgl_aux_3: 0.3939 (0.4540) loss_ddf_aux_3: 0.0006 (0.0005) loss_vfl_aux_4: 0.1493 (0.1748) loss_bbox_aux_4: 0.2175 (0.2375) loss_giou_aux_4: 1.8225 (1.7581) loss_fgl_aux_4: 0.3940 (0.4540) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1517 (0.1809) loss_bbox_pre: 0.2267 (0.2444) loss_giou_pre: 1.8323 (1.7677) loss_vfl_enc_0: 0.1444 (0.1782) loss_bbox_enc_0: 0.2438 (0.2732) loss_giou_enc_0: 1.8957 (1.8189) loss_vfl_dn_0: 0.4395 (0.4372) loss_bbox_dn_0: 0.0393 (0.0450) loss_giou_dn_0: 1.1227 (1.1200) loss_fgl_dn_0: 0.9681 (0.9666) loss_ddf_dn_0: 0.2811 (0.3173) loss_vfl_dn_1: 0.4612 (0.4686) loss_bbox_dn_1: 0.0317 (0.0368) loss_giou_dn_1: 1.0502 (1.0309) loss_fgl_dn_1: 0.9868 (0.9890) loss_ddf_dn_1: 0.0249 (0.0377) loss_vfl_dn_2: 0.4597 (0.4624) loss_bbox_dn_2: 0.0313 (0.0360) loss_giou_dn_2: 1.0448 (1.0232) loss_fgl_dn_2: 0.9898 (0.9910) loss_ddf_dn_2: 0.0034 (0.0073) loss_vfl_dn_3: 0.4580 (0.4593) loss_bbox_dn_3: 0.0312 (0.0358) loss_giou_dn_3: 1.0439 (1.0224) loss_fgl_dn_3: 0.9898 (0.9914) loss_ddf_dn_3: 0.0007 (0.0008) loss_vfl_dn_4: 0.4580 (0.4581) loss_bbox_dn_4: 0.0312 (0.0357) loss_giou_dn_4: 1.0437 (1.0223) loss_fgl_dn_4: 0.9897 (0.9914) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4580 (0.4584) loss_bbox_dn_5: 0.0312 (0.0357) loss_giou_dn_5: 1.0436 (1.0224) loss_fgl_dn_5: 0.9897 (0.9913) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4382 (0.4362) loss_bbox_dn_pre: 0.0394 (0.0453) loss_giou_dn_pre: 1.1252 (1.1203)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7857 data: 0.5424 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.4048 data: 0.1740 max mem: 29821\n", + "Test: Total time: 0:00:01 (0.4214 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.049\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.107\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.027\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.041\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.227\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.543\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.010\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.074\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.095\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.087\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.312\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.850\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.192\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.056\n", + "best_stat: {'epoch': 65, 'coco_eval_bbox': 0.050347537111746846}\n", + "Epoch: [71] [ 0/84] eta: 0:02:39 lr: 0.000013 loss: 35.8345 (35.8345) loss_vfl: 0.1005 (0.1005) loss_bbox: 0.2220 (0.2220) loss_giou: 1.7936 (1.7936) loss_fgl: 0.2884 (0.2884) loss_vfl_aux_0: 0.1014 (0.1014) loss_bbox_aux_0: 0.2231 (0.2231) loss_giou_aux_0: 1.8044 (1.8044) loss_fgl_aux_0: 0.2873 (0.2873) loss_ddf_aux_0: 0.0973 (0.0973) loss_vfl_aux_1: 0.1064 (0.1064) loss_bbox_aux_1: 0.2244 (0.2244) loss_giou_aux_1: 1.7938 (1.7938) loss_fgl_aux_1: 0.2883 (0.2883) loss_ddf_aux_1: 0.0119 (0.0119) loss_vfl_aux_2: 0.1068 (0.1068) loss_bbox_aux_2: 0.2236 (0.2236) loss_giou_aux_2: 1.7940 (1.7940) loss_fgl_aux_2: 0.2882 (0.2882) loss_ddf_aux_2: 0.0035 (0.0035) loss_vfl_aux_3: 0.1025 (0.1025) loss_bbox_aux_3: 0.2234 (0.2234) loss_giou_aux_3: 1.7937 (1.7937) loss_fgl_aux_3: 0.2881 (0.2881) loss_ddf_aux_3: 0.0006 (0.0006) loss_vfl_aux_4: 0.1006 (0.1006) loss_bbox_aux_4: 0.2220 (0.2220) loss_giou_aux_4: 1.7935 (1.7935) loss_fgl_aux_4: 0.2884 (0.2884) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1003 (0.1003) loss_bbox_pre: 0.2257 (0.2257) loss_giou_pre: 1.8037 (1.8037) loss_vfl_enc_0: 0.1057 (0.1057) loss_bbox_enc_0: 0.2421 (0.2421) loss_giou_enc_0: 1.8950 (1.8950) loss_vfl_dn_0: 0.4331 (0.4331) loss_bbox_dn_0: 0.0287 (0.0287) loss_giou_dn_0: 1.1249 (1.1249) loss_fgl_dn_0: 0.9416 (0.9416) loss_ddf_dn_0: 0.1959 (0.1959) loss_vfl_dn_1: 0.4731 (0.4731) loss_bbox_dn_1: 0.0240 (0.0240) loss_giou_dn_1: 1.0588 (1.0588) loss_fgl_dn_1: 0.9687 (0.9687) loss_ddf_dn_1: 0.0125 (0.0125) loss_vfl_dn_2: 0.4731 (0.4731) loss_bbox_dn_2: 0.0233 (0.0233) loss_giou_dn_2: 1.0527 (1.0527) loss_fgl_dn_2: 0.9704 (0.9704) loss_ddf_dn_2: 0.0025 (0.0025) loss_vfl_dn_3: 0.4658 (0.4658) loss_bbox_dn_3: 0.0229 (0.0229) loss_giou_dn_3: 1.0515 (1.0515) loss_fgl_dn_3: 0.9706 (0.9706) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.4602 (0.4602) loss_bbox_dn_4: 0.0228 (0.0228) loss_giou_dn_4: 1.0512 (1.0512) loss_fgl_dn_4: 0.9706 (0.9706) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4597 (0.4597) loss_bbox_dn_5: 0.0228 (0.0228) loss_giou_dn_5: 1.0512 (1.0512) loss_fgl_dn_5: 0.9706 (0.9706) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4329 (0.4329) loss_bbox_dn_pre: 0.0287 (0.0287) loss_giou_dn_pre: 1.1243 (1.1243) time: 1.9046 data: 0.9919 max mem: 29821\n", + "Epoch: [71] [83/84] eta: 0:00:00 lr: 0.000013 loss: 38.1294 (38.1196) loss_vfl: 0.1443 (0.1602) loss_bbox: 0.2943 (0.2899) loss_giou: 1.9054 (1.8202) loss_fgl: 0.3933 (0.4258) loss_vfl_aux_0: 0.1479 (0.1683) loss_bbox_aux_0: 0.2956 (0.2958) loss_giou_aux_0: 1.9189 (1.8322) loss_fgl_aux_0: 0.3918 (0.4264) loss_ddf_aux_0: 0.1617 (0.1564) loss_vfl_aux_1: 0.1498 (0.1700) loss_bbox_aux_1: 0.2955 (0.2921) loss_giou_aux_1: 1.9100 (1.8205) loss_fgl_aux_1: 0.3927 (0.4257) loss_ddf_aux_1: 0.0314 (0.0272) loss_vfl_aux_2: 0.1520 (0.1681) loss_bbox_aux_2: 0.2945 (0.2906) loss_giou_aux_2: 1.9060 (1.8200) loss_fgl_aux_2: 0.3932 (0.4257) loss_ddf_aux_2: 0.0073 (0.0065) loss_vfl_aux_3: 0.1466 (0.1636) loss_bbox_aux_3: 0.2943 (0.2902) loss_giou_aux_3: 1.9055 (1.8200) loss_fgl_aux_3: 0.3935 (0.4258) loss_ddf_aux_3: 0.0004 (0.0005) loss_vfl_aux_4: 0.1454 (0.1608) loss_bbox_aux_4: 0.2944 (0.2900) loss_giou_aux_4: 1.9054 (1.8202) loss_fgl_aux_4: 0.3933 (0.4258) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1459 (0.1658) loss_bbox_pre: 0.2971 (0.2975) loss_giou_pre: 1.9152 (1.8284) loss_vfl_enc_0: 0.1438 (0.1653) loss_bbox_enc_0: 0.3288 (0.3291) loss_giou_enc_0: 1.9558 (1.8802) loss_vfl_dn_0: 0.4250 (0.4358) loss_bbox_dn_0: 0.0394 (0.0442) loss_giou_dn_0: 1.1413 (1.1252) loss_fgl_dn_0: 0.9464 (0.9632) loss_ddf_dn_0: 0.2389 (0.2656) loss_vfl_dn_1: 0.4612 (0.4670) loss_bbox_dn_1: 0.0317 (0.0358) loss_giou_dn_1: 1.0452 (1.0334) loss_fgl_dn_1: 0.9698 (0.9862) loss_ddf_dn_1: 0.0234 (0.0383) loss_vfl_dn_2: 0.4551 (0.4631) loss_bbox_dn_2: 0.0317 (0.0349) loss_giou_dn_2: 1.0378 (1.0248) loss_fgl_dn_2: 0.9723 (0.9884) loss_ddf_dn_2: 0.0037 (0.0060) loss_vfl_dn_3: 0.4517 (0.4593) loss_bbox_dn_3: 0.0317 (0.0347) loss_giou_dn_3: 1.0370 (1.0242) loss_fgl_dn_3: 0.9724 (0.9886) loss_ddf_dn_3: 0.0004 (0.0005) loss_vfl_dn_4: 0.4504 (0.4579) loss_bbox_dn_4: 0.0317 (0.0347) loss_giou_dn_4: 1.0371 (1.0241) loss_fgl_dn_4: 0.9722 (0.9886) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4521 (0.4581) loss_bbox_dn_5: 0.0317 (0.0347) loss_giou_dn_5: 1.0370 (1.0242) loss_fgl_dn_5: 0.9721 (0.9886) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4233 (0.4348) loss_bbox_dn_pre: 0.0397 (0.0445) loss_giou_dn_pre: 1.1425 (1.1255) time: 0.8776 data: 0.0171 max mem: 29821\n", + "Epoch: [71] Total time: 0:01:13 (0.8746 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 38.1294 (38.1196) loss_vfl: 0.1443 (0.1602) loss_bbox: 0.2943 (0.2899) loss_giou: 1.9054 (1.8202) loss_fgl: 0.3933 (0.4258) loss_vfl_aux_0: 0.1479 (0.1683) loss_bbox_aux_0: 0.2956 (0.2958) loss_giou_aux_0: 1.9189 (1.8322) loss_fgl_aux_0: 0.3918 (0.4264) loss_ddf_aux_0: 0.1617 (0.1564) loss_vfl_aux_1: 0.1498 (0.1700) loss_bbox_aux_1: 0.2955 (0.2921) loss_giou_aux_1: 1.9100 (1.8205) loss_fgl_aux_1: 0.3927 (0.4257) loss_ddf_aux_1: 0.0314 (0.0272) loss_vfl_aux_2: 0.1520 (0.1681) loss_bbox_aux_2: 0.2945 (0.2906) loss_giou_aux_2: 1.9060 (1.8200) loss_fgl_aux_2: 0.3932 (0.4257) loss_ddf_aux_2: 0.0073 (0.0065) loss_vfl_aux_3: 0.1466 (0.1636) loss_bbox_aux_3: 0.2943 (0.2902) loss_giou_aux_3: 1.9055 (1.8200) loss_fgl_aux_3: 0.3935 (0.4258) loss_ddf_aux_3: 0.0004 (0.0005) loss_vfl_aux_4: 0.1454 (0.1608) loss_bbox_aux_4: 0.2944 (0.2900) loss_giou_aux_4: 1.9054 (1.8202) loss_fgl_aux_4: 0.3933 (0.4258) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1459 (0.1658) loss_bbox_pre: 0.2971 (0.2975) loss_giou_pre: 1.9152 (1.8284) loss_vfl_enc_0: 0.1438 (0.1653) loss_bbox_enc_0: 0.3288 (0.3291) loss_giou_enc_0: 1.9558 (1.8802) loss_vfl_dn_0: 0.4250 (0.4358) loss_bbox_dn_0: 0.0394 (0.0442) loss_giou_dn_0: 1.1413 (1.1252) loss_fgl_dn_0: 0.9464 (0.9632) loss_ddf_dn_0: 0.2389 (0.2656) loss_vfl_dn_1: 0.4612 (0.4670) loss_bbox_dn_1: 0.0317 (0.0358) loss_giou_dn_1: 1.0452 (1.0334) loss_fgl_dn_1: 0.9698 (0.9862) loss_ddf_dn_1: 0.0234 (0.0383) loss_vfl_dn_2: 0.4551 (0.4631) loss_bbox_dn_2: 0.0317 (0.0349) loss_giou_dn_2: 1.0378 (1.0248) loss_fgl_dn_2: 0.9723 (0.9884) loss_ddf_dn_2: 0.0037 (0.0060) loss_vfl_dn_3: 0.4517 (0.4593) loss_bbox_dn_3: 0.0317 (0.0347) loss_giou_dn_3: 1.0370 (1.0242) loss_fgl_dn_3: 0.9724 (0.9886) loss_ddf_dn_3: 0.0004 (0.0005) loss_vfl_dn_4: 0.4504 (0.4579) loss_bbox_dn_4: 0.0317 (0.0347) loss_giou_dn_4: 1.0371 (1.0241) loss_fgl_dn_4: 0.9722 (0.9886) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4521 (0.4581) loss_bbox_dn_5: 0.0317 (0.0347) loss_giou_dn_5: 1.0370 (1.0242) loss_fgl_dn_5: 0.9721 (0.9886) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4233 (0.4348) loss_bbox_dn_pre: 0.0397 (0.0445) loss_giou_dn_pre: 1.1425 (1.1255)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7498 data: 0.4917 max mem: 29821\n", + "Test: [3/4] eta: 0:00:00 time: 0.5503 data: 0.1767 max mem: 29821\n", + "Test: Total time: 0:00:02 (0.5678 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.048\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.105\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.025\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.040\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.238\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.376\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.010\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.073\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.094\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.087\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.326\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.625\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.190\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.053\n", + "best_stat: {'epoch': 65, 'coco_eval_bbox': 0.050347537111746846}\n", + "/content/D-FINE/src/solver/_solver.py:159: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n", + " state = torch.load(path, map_location='cpu')\n", + "Load last_epoch\n", + "Load model.state_dict\n", + "Load criterion.state_dict\n", + "Load postprocessor.state_dict\n", + "Load ema.state_dict\n", + "Load scaler.state_dict\n", + "Load optimizer.state_dict\n", + "Load lr_scheduler.state_dict\n", + "Load lr_warmup_scheduler.state_dict\n", + "Refresh EMA at epoch 72 with decay 0.9999\n", + "Epoch: [72] [ 0/84] eta: 0:03:57 lr: 0.000013 loss: 36.7809 (36.7809) loss_vfl: 0.1781 (0.1781) loss_bbox: 0.2054 (0.2054) loss_giou: 1.6441 (1.6441) loss_fgl: 0.5296 (0.5296) loss_vfl_aux_0: 0.1952 (0.1952) loss_bbox_aux_0: 0.2108 (0.2108) loss_giou_aux_0: 1.6548 (1.6548) loss_fgl_aux_0: 0.5325 (0.5325) loss_ddf_aux_0: 0.0928 (0.0928) loss_vfl_aux_1: 0.1926 (0.1926) loss_bbox_aux_1: 0.2059 (0.2059) loss_giou_aux_1: 1.6442 (1.6442) loss_fgl_aux_1: 0.5298 (0.5298) loss_ddf_aux_1: 0.0149 (0.0149) loss_vfl_aux_2: 0.1884 (0.1884) loss_bbox_aux_2: 0.2058 (0.2058) loss_giou_aux_2: 1.6439 (1.6439) loss_fgl_aux_2: 0.5297 (0.5297) loss_ddf_aux_2: 0.0018 (0.0018) loss_vfl_aux_3: 0.1831 (0.1831) loss_bbox_aux_3: 0.2057 (0.2057) loss_giou_aux_3: 1.6441 (1.6441) loss_fgl_aux_3: 0.5295 (0.5295) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1793 (0.1793) loss_bbox_aux_4: 0.2054 (0.2054) loss_giou_aux_4: 1.6441 (1.6441) loss_fgl_aux_4: 0.5296 (0.5296) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1913 (0.1913) loss_bbox_pre: 0.2156 (0.2156) loss_giou_pre: 1.6541 (1.6541) loss_vfl_enc_0: 0.1830 (0.1830) loss_bbox_enc_0: 0.2503 (0.2503) loss_giou_enc_0: 1.7222 (1.7222) loss_vfl_dn_0: 0.4392 (0.4392) loss_bbox_dn_0: 0.0465 (0.0465) loss_giou_dn_0: 1.0963 (1.0963) loss_fgl_dn_0: 0.9779 (0.9779) loss_ddf_dn_0: 0.3889 (0.3889) loss_vfl_dn_1: 0.4690 (0.4690) loss_bbox_dn_1: 0.0362 (0.0362) loss_giou_dn_1: 0.9959 (0.9959) loss_fgl_dn_1: 0.9991 (0.9991) loss_ddf_dn_1: 0.0488 (0.0488) loss_vfl_dn_2: 0.4712 (0.4712) loss_bbox_dn_2: 0.0358 (0.0358) loss_giou_dn_2: 0.9886 (0.9886) loss_fgl_dn_2: 1.0009 (1.0009) loss_ddf_dn_2: 0.0053 (0.0053) loss_vfl_dn_3: 0.4663 (0.4663) loss_bbox_dn_3: 0.0356 (0.0356) loss_giou_dn_3: 0.9888 (0.9888) loss_fgl_dn_3: 1.0012 (1.0012) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4609 (0.4609) loss_bbox_dn_4: 0.0355 (0.0355) loss_giou_dn_4: 0.9886 (0.9886) loss_fgl_dn_4: 1.0014 (1.0014) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4597 (0.4597) loss_bbox_dn_5: 0.0355 (0.0355) loss_giou_dn_5: 0.9886 (0.9886) loss_fgl_dn_5: 1.0014 (1.0014) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4385 (0.4385) loss_bbox_dn_pre: 0.0463 (0.0463) loss_giou_dn_pre: 1.0950 (1.0950) time: 2.8264 data: 1.8439 max mem: 29821\n", + "Epoch: [72] [83/84] eta: 0:00:00 lr: 0.000013 loss: 36.9541 (37.1308) loss_vfl: 0.1560 (0.1783) loss_bbox: 0.1958 (0.2107) loss_giou: 1.6967 (1.6716) loss_fgl: 0.4966 (0.5286) loss_vfl_aux_0: 0.1627 (0.1921) loss_bbox_aux_0: 0.2005 (0.2153) loss_giou_aux_0: 1.7053 (1.6843) loss_fgl_aux_0: 0.4958 (0.5310) loss_ddf_aux_0: 0.1195 (0.1701) loss_vfl_aux_1: 0.1630 (0.1917) loss_bbox_aux_1: 0.1964 (0.2118) loss_giou_aux_1: 1.6995 (1.6731) loss_fgl_aux_1: 0.4961 (0.5287) loss_ddf_aux_1: 0.0250 (0.0276) loss_vfl_aux_2: 0.1628 (0.1887) loss_bbox_aux_2: 0.1953 (0.2109) loss_giou_aux_2: 1.6974 (1.6718) loss_fgl_aux_2: 0.4963 (0.5285) loss_ddf_aux_2: 0.0037 (0.0046) loss_vfl_aux_3: 0.1593 (0.1827) loss_bbox_aux_3: 0.1954 (0.2107) loss_giou_aux_3: 1.6970 (1.6717) loss_fgl_aux_3: 0.4965 (0.5286) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1570 (0.1792) loss_bbox_aux_4: 0.1957 (0.2107) loss_giou_aux_4: 1.6968 (1.6716) loss_fgl_aux_4: 0.4965 (0.5286) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1583 (0.1894) loss_bbox_pre: 0.2054 (0.2188) loss_giou_pre: 1.6994 (1.6791) loss_vfl_enc_0: 0.1649 (0.1952) loss_bbox_enc_0: 0.2246 (0.2403) loss_giou_enc_0: 1.7258 (1.7225) loss_vfl_dn_0: 0.4343 (0.4353) loss_bbox_dn_0: 0.0387 (0.0456) loss_giou_dn_0: 1.1190 (1.1115) loss_fgl_dn_0: 0.9679 (0.9694) loss_ddf_dn_0: 0.3903 (0.4007) loss_vfl_dn_1: 0.4631 (0.4680) loss_bbox_dn_1: 0.0313 (0.0358) loss_giou_dn_1: 1.0229 (1.0144) loss_fgl_dn_1: 0.9895 (0.9903) loss_ddf_dn_1: 0.0507 (0.0470) loss_vfl_dn_2: 0.4624 (0.4624) loss_bbox_dn_2: 0.0305 (0.0349) loss_giou_dn_2: 1.0137 (1.0069) loss_fgl_dn_2: 0.9905 (0.9913) loss_ddf_dn_2: 0.0059 (0.0054) loss_vfl_dn_3: 0.4587 (0.4588) loss_bbox_dn_3: 0.0304 (0.0346) loss_giou_dn_3: 1.0134 (1.0062) loss_fgl_dn_3: 0.9909 (0.9914) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4580 (0.4573) loss_bbox_dn_4: 0.0304 (0.0346) loss_giou_dn_4: 1.0133 (1.0062) loss_fgl_dn_4: 0.9909 (0.9915) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4575 (0.4576) loss_bbox_dn_5: 0.0304 (0.0346) loss_giou_dn_5: 1.0133 (1.0062) loss_fgl_dn_5: 0.9909 (0.9915) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4336 (0.4343) loss_bbox_dn_pre: 0.0389 (0.0458) loss_giou_dn_pre: 1.1194 (1.1117) time: 0.8990 data: 0.0169 max mem: 30164\n", + "Epoch: [72] Total time: 0:01:18 (0.9383 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 36.9541 (37.1308) loss_vfl: 0.1560 (0.1783) loss_bbox: 0.1958 (0.2107) loss_giou: 1.6967 (1.6716) loss_fgl: 0.4966 (0.5286) loss_vfl_aux_0: 0.1627 (0.1921) loss_bbox_aux_0: 0.2005 (0.2153) loss_giou_aux_0: 1.7053 (1.6843) loss_fgl_aux_0: 0.4958 (0.5310) loss_ddf_aux_0: 0.1195 (0.1701) loss_vfl_aux_1: 0.1630 (0.1917) loss_bbox_aux_1: 0.1964 (0.2118) loss_giou_aux_1: 1.6995 (1.6731) loss_fgl_aux_1: 0.4961 (0.5287) loss_ddf_aux_1: 0.0250 (0.0276) loss_vfl_aux_2: 0.1628 (0.1887) loss_bbox_aux_2: 0.1953 (0.2109) loss_giou_aux_2: 1.6974 (1.6718) loss_fgl_aux_2: 0.4963 (0.5285) loss_ddf_aux_2: 0.0037 (0.0046) loss_vfl_aux_3: 0.1593 (0.1827) loss_bbox_aux_3: 0.1954 (0.2107) loss_giou_aux_3: 1.6970 (1.6717) loss_fgl_aux_3: 0.4965 (0.5286) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1570 (0.1792) loss_bbox_aux_4: 0.1957 (0.2107) loss_giou_aux_4: 1.6968 (1.6716) loss_fgl_aux_4: 0.4965 (0.5286) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1583 (0.1894) loss_bbox_pre: 0.2054 (0.2188) loss_giou_pre: 1.6994 (1.6791) loss_vfl_enc_0: 0.1649 (0.1952) loss_bbox_enc_0: 0.2246 (0.2403) loss_giou_enc_0: 1.7258 (1.7225) loss_vfl_dn_0: 0.4343 (0.4353) loss_bbox_dn_0: 0.0387 (0.0456) loss_giou_dn_0: 1.1190 (1.1115) loss_fgl_dn_0: 0.9679 (0.9694) loss_ddf_dn_0: 0.3903 (0.4007) loss_vfl_dn_1: 0.4631 (0.4680) loss_bbox_dn_1: 0.0313 (0.0358) loss_giou_dn_1: 1.0229 (1.0144) loss_fgl_dn_1: 0.9895 (0.9903) loss_ddf_dn_1: 0.0507 (0.0470) loss_vfl_dn_2: 0.4624 (0.4624) loss_bbox_dn_2: 0.0305 (0.0349) loss_giou_dn_2: 1.0137 (1.0069) loss_fgl_dn_2: 0.9905 (0.9913) loss_ddf_dn_2: 0.0059 (0.0054) loss_vfl_dn_3: 0.4587 (0.4588) loss_bbox_dn_3: 0.0304 (0.0346) loss_giou_dn_3: 1.0134 (1.0062) loss_fgl_dn_3: 0.9909 (0.9914) loss_ddf_dn_3: 0.0003 (0.0004) loss_vfl_dn_4: 0.4580 (0.4573) loss_bbox_dn_4: 0.0304 (0.0346) loss_giou_dn_4: 1.0133 (1.0062) loss_fgl_dn_4: 0.9909 (0.9915) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4575 (0.4576) loss_bbox_dn_5: 0.0304 (0.0346) loss_giou_dn_5: 1.0133 (1.0062) loss_fgl_dn_5: 0.9909 (0.9915) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4336 (0.4343) loss_bbox_dn_pre: 0.0389 (0.0458) loss_giou_dn_pre: 1.1194 (1.1117)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7775 data: 0.5446 max mem: 30164\n", + "Test: [3/4] eta: 0:00:00 time: 0.3994 data: 0.1733 max mem: 30164\n", + "Test: Total time: 0:00:01 (0.4155 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.052\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.110\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.028\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.042\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.239\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.138\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.023\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.077\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.098\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.090\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.327\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.425\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.190\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.079\n", + "best_stat: {'epoch': 72, 'coco_eval_bbox': 0.05215868535188683}\n", + "Epoch: [73] [ 0/84] eta: 0:01:53 lr: 0.000013 loss: 35.9285 (35.9285) loss_vfl: 0.1500 (0.1500) loss_bbox: 0.1661 (0.1661) loss_giou: 1.5633 (1.5633) loss_fgl: 0.5695 (0.5695) loss_vfl_aux_0: 0.1597 (0.1597) loss_bbox_aux_0: 0.1714 (0.1714) loss_giou_aux_0: 1.5753 (1.5753) loss_fgl_aux_0: 0.5682 (0.5682) loss_ddf_aux_0: 0.1133 (0.1133) loss_vfl_aux_1: 0.1655 (0.1655) loss_bbox_aux_1: 0.1674 (0.1674) loss_giou_aux_1: 1.5645 (1.5645) loss_fgl_aux_1: 0.5693 (0.5693) loss_ddf_aux_1: 0.0178 (0.0178) loss_vfl_aux_2: 0.1588 (0.1588) loss_bbox_aux_2: 0.1667 (0.1667) loss_giou_aux_2: 1.5625 (1.5625) loss_fgl_aux_2: 0.5696 (0.5696) loss_ddf_aux_2: 0.0027 (0.0027) loss_vfl_aux_3: 0.1539 (0.1539) loss_bbox_aux_3: 0.1664 (0.1664) loss_giou_aux_3: 1.5628 (1.5628) loss_fgl_aux_3: 0.5695 (0.5695) loss_ddf_aux_3: 0.0002 (0.0002) loss_vfl_aux_4: 0.1503 (0.1503) loss_bbox_aux_4: 0.1661 (0.1661) loss_giou_aux_4: 1.5633 (1.5633) loss_fgl_aux_4: 0.5695 (0.5695) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.1578 (0.1578) loss_bbox_pre: 0.1752 (0.1752) loss_giou_pre: 1.5695 (1.5695) loss_vfl_enc_0: 0.1622 (0.1622) loss_bbox_enc_0: 0.1899 (0.1899) loss_giou_enc_0: 1.6002 (1.6002) loss_vfl_dn_0: 0.4355 (0.4355) loss_bbox_dn_0: 0.0395 (0.0395) loss_giou_dn_0: 1.1182 (1.1182) loss_fgl_dn_0: 0.9645 (0.9645) loss_ddf_dn_0: 0.4705 (0.4705) loss_vfl_dn_1: 0.4702 (0.4702) loss_bbox_dn_1: 0.0313 (0.0313) loss_giou_dn_1: 1.0062 (1.0062) loss_fgl_dn_1: 0.9917 (0.9917) loss_ddf_dn_1: 0.0961 (0.0961) loss_vfl_dn_2: 0.4680 (0.4680) loss_bbox_dn_2: 0.0311 (0.0311) loss_giou_dn_2: 1.0019 (1.0019) loss_fgl_dn_2: 0.9929 (0.9929) loss_ddf_dn_2: 0.0101 (0.0101) loss_vfl_dn_3: 0.4617 (0.4617) loss_bbox_dn_3: 0.0311 (0.0311) loss_giou_dn_3: 1.0018 (1.0018) loss_fgl_dn_3: 0.9929 (0.9929) loss_ddf_dn_3: 0.0002 (0.0002) loss_vfl_dn_4: 0.4646 (0.4646) loss_bbox_dn_4: 0.0312 (0.0312) loss_giou_dn_4: 1.0018 (1.0018) loss_fgl_dn_4: 0.9930 (0.9930) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4644 (0.4644) loss_bbox_dn_5: 0.0312 (0.0312) loss_giou_dn_5: 1.0018 (1.0018) loss_fgl_dn_5: 0.9931 (0.9931) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4358 (0.4358) loss_bbox_dn_pre: 0.0396 (0.0396) loss_giou_dn_pre: 1.1180 (1.1180) time: 1.3483 data: 0.3394 max mem: 30164\n", + "Epoch: [73] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.1351 (37.0342) loss_vfl: 0.1664 (0.1772) loss_bbox: 0.2147 (0.2078) loss_giou: 1.6376 (1.6508) loss_fgl: 0.5184 (0.5379) loss_vfl_aux_0: 0.1776 (0.1911) loss_bbox_aux_0: 0.2203 (0.2115) loss_giou_aux_0: 1.6568 (1.6637) loss_fgl_aux_0: 0.5214 (0.5412) loss_ddf_aux_0: 0.1712 (0.1905) loss_vfl_aux_1: 0.1743 (0.1899) loss_bbox_aux_1: 0.2145 (0.2091) loss_giou_aux_1: 1.6385 (1.6522) loss_fgl_aux_1: 0.5189 (0.5381) loss_ddf_aux_1: 0.0265 (0.0307) loss_vfl_aux_2: 0.1735 (0.1870) loss_bbox_aux_2: 0.2144 (0.2081) loss_giou_aux_2: 1.6377 (1.6509) loss_fgl_aux_2: 0.5185 (0.5378) loss_ddf_aux_2: 0.0031 (0.0050) loss_vfl_aux_3: 0.1696 (0.1813) loss_bbox_aux_3: 0.2145 (0.2080) loss_giou_aux_3: 1.6379 (1.6507) loss_fgl_aux_3: 0.5186 (0.5379) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1678 (0.1780) loss_bbox_aux_4: 0.2146 (0.2078) loss_giou_aux_4: 1.6377 (1.6508) loss_fgl_aux_4: 0.5185 (0.5379) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1757 (0.1885) loss_bbox_pre: 0.2222 (0.2145) loss_giou_pre: 1.6519 (1.6594) loss_vfl_enc_0: 0.1761 (0.1944) loss_bbox_enc_0: 0.2384 (0.2354) loss_giou_enc_0: 1.7065 (1.7017) loss_vfl_dn_0: 0.4214 (0.4366) loss_bbox_dn_0: 0.0400 (0.0451) loss_giou_dn_0: 1.1487 (1.1121) loss_fgl_dn_0: 0.9500 (0.9747) loss_ddf_dn_0: 0.4289 (0.4133) loss_vfl_dn_1: 0.4648 (0.4695) loss_bbox_dn_1: 0.0319 (0.0355) loss_giou_dn_1: 1.0287 (1.0108) loss_fgl_dn_1: 0.9726 (0.9937) loss_ddf_dn_1: 0.0423 (0.0464) loss_vfl_dn_2: 0.4580 (0.4638) loss_bbox_dn_2: 0.0311 (0.0344) loss_giou_dn_2: 1.0229 (1.0027) loss_fgl_dn_2: 0.9747 (0.9956) loss_ddf_dn_2: 0.0059 (0.0054) loss_vfl_dn_3: 0.4561 (0.4603) loss_bbox_dn_3: 0.0309 (0.0342) loss_giou_dn_3: 1.0221 (1.0020) loss_fgl_dn_3: 0.9750 (0.9959) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4534 (0.4586) loss_bbox_dn_4: 0.0309 (0.0342) loss_giou_dn_4: 1.0221 (1.0019) loss_fgl_dn_4: 0.9750 (0.9959) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4526 (0.4585) loss_bbox_dn_5: 0.0309 (0.0342) loss_giou_dn_5: 1.0221 (1.0019) loss_fgl_dn_5: 0.9750 (0.9960) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4199 (0.4358) loss_bbox_dn_pre: 0.0404 (0.0453) loss_giou_dn_pre: 1.1420 (1.1120) time: 0.9202 data: 0.0172 max mem: 30164\n", + "Epoch: [73] Total time: 0:01:17 (0.9171 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.1351 (37.0342) loss_vfl: 0.1664 (0.1772) loss_bbox: 0.2147 (0.2078) loss_giou: 1.6376 (1.6508) loss_fgl: 0.5184 (0.5379) loss_vfl_aux_0: 0.1776 (0.1911) loss_bbox_aux_0: 0.2203 (0.2115) loss_giou_aux_0: 1.6568 (1.6637) loss_fgl_aux_0: 0.5214 (0.5412) loss_ddf_aux_0: 0.1712 (0.1905) loss_vfl_aux_1: 0.1743 (0.1899) loss_bbox_aux_1: 0.2145 (0.2091) loss_giou_aux_1: 1.6385 (1.6522) loss_fgl_aux_1: 0.5189 (0.5381) loss_ddf_aux_1: 0.0265 (0.0307) loss_vfl_aux_2: 0.1735 (0.1870) loss_bbox_aux_2: 0.2144 (0.2081) loss_giou_aux_2: 1.6377 (1.6509) loss_fgl_aux_2: 0.5185 (0.5378) loss_ddf_aux_2: 0.0031 (0.0050) loss_vfl_aux_3: 0.1696 (0.1813) loss_bbox_aux_3: 0.2145 (0.2080) loss_giou_aux_3: 1.6379 (1.6507) loss_fgl_aux_3: 0.5186 (0.5379) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1678 (0.1780) loss_bbox_aux_4: 0.2146 (0.2078) loss_giou_aux_4: 1.6377 (1.6508) loss_fgl_aux_4: 0.5185 (0.5379) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1757 (0.1885) loss_bbox_pre: 0.2222 (0.2145) loss_giou_pre: 1.6519 (1.6594) loss_vfl_enc_0: 0.1761 (0.1944) loss_bbox_enc_0: 0.2384 (0.2354) loss_giou_enc_0: 1.7065 (1.7017) loss_vfl_dn_0: 0.4214 (0.4366) loss_bbox_dn_0: 0.0400 (0.0451) loss_giou_dn_0: 1.1487 (1.1121) loss_fgl_dn_0: 0.9500 (0.9747) loss_ddf_dn_0: 0.4289 (0.4133) loss_vfl_dn_1: 0.4648 (0.4695) loss_bbox_dn_1: 0.0319 (0.0355) loss_giou_dn_1: 1.0287 (1.0108) loss_fgl_dn_1: 0.9726 (0.9937) loss_ddf_dn_1: 0.0423 (0.0464) loss_vfl_dn_2: 0.4580 (0.4638) loss_bbox_dn_2: 0.0311 (0.0344) loss_giou_dn_2: 1.0229 (1.0027) loss_fgl_dn_2: 0.9747 (0.9956) loss_ddf_dn_2: 0.0059 (0.0054) loss_vfl_dn_3: 0.4561 (0.4603) loss_bbox_dn_3: 0.0309 (0.0342) loss_giou_dn_3: 1.0221 (1.0020) loss_fgl_dn_3: 0.9750 (0.9959) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4534 (0.4586) loss_bbox_dn_4: 0.0309 (0.0342) loss_giou_dn_4: 1.0221 (1.0019) loss_fgl_dn_4: 0.9750 (0.9959) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4526 (0.4585) loss_bbox_dn_5: 0.0309 (0.0342) loss_giou_dn_5: 1.0221 (1.0019) loss_fgl_dn_5: 0.9750 (0.9960) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4199 (0.4358) loss_bbox_dn_pre: 0.0404 (0.0453) loss_giou_dn_pre: 1.1420 (1.1120)\n", + "Test: [0/4] eta: 0:00:05 time: 1.3144 data: 0.5298 max mem: 30164\n", + "Test: [3/4] eta: 0:00:00 time: 0.5352 data: 0.1703 max mem: 30164\n", + "Test: Total time: 0:00:02 (0.5541 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.049\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.104\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.028\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.038\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.238\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.263\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.010\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.063\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.084\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.076\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.344\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.600\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.168\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.056\n", + "best_stat: {'epoch': 72, 'coco_eval_bbox': 0.05215868535188683}\n", + "Load last_epoch\n", + "Load model.state_dict\n", + "Load criterion.state_dict\n", + "Load postprocessor.state_dict\n", + "Load ema.state_dict\n", + "Load scaler.state_dict\n", + "Load optimizer.state_dict\n", + "Load lr_scheduler.state_dict\n", + "Load lr_warmup_scheduler.state_dict\n", + "Refresh EMA at epoch 73 with decay 0.9998\n", + "Epoch: [74] [ 0/84] eta: 0:01:36 lr: 0.000013 loss: 37.2312 (37.2312) loss_vfl: 0.3435 (0.3435) loss_bbox: 0.1843 (0.1843) loss_giou: 1.3433 (1.3433) loss_fgl: 0.7193 (0.7193) loss_vfl_aux_0: 0.3870 (0.3870) loss_bbox_aux_0: 0.1900 (0.1900) loss_giou_aux_0: 1.3599 (1.3599) loss_fgl_aux_0: 0.7290 (0.7290) loss_ddf_aux_0: 0.3490 (0.3490) loss_vfl_aux_1: 0.3716 (0.3716) loss_bbox_aux_1: 0.1832 (0.1832) loss_giou_aux_1: 1.3464 (1.3464) loss_fgl_aux_1: 0.7199 (0.7199) loss_ddf_aux_1: 0.0657 (0.0657) loss_vfl_aux_2: 0.3657 (0.3657) loss_bbox_aux_2: 0.1846 (0.1846) loss_giou_aux_2: 1.3439 (1.3439) loss_fgl_aux_2: 0.7192 (0.7192) loss_ddf_aux_2: 0.0102 (0.0102) loss_vfl_aux_3: 0.3542 (0.3542) loss_bbox_aux_3: 0.1842 (0.1842) loss_giou_aux_3: 1.3434 (1.3434) loss_fgl_aux_3: 0.7191 (0.7191) loss_ddf_aux_3: 0.0006 (0.0006) loss_vfl_aux_4: 0.3467 (0.3467) loss_bbox_aux_4: 0.1843 (0.1843) loss_giou_aux_4: 1.3433 (1.3433) loss_fgl_aux_4: 0.7193 (0.7193) loss_ddf_aux_4: 0.0002 (0.0002) loss_vfl_pre: 0.3826 (0.3826) loss_bbox_pre: 0.1936 (0.1936) loss_giou_pre: 1.3605 (1.3605) loss_vfl_enc_0: 0.3679 (0.3679) loss_bbox_enc_0: 0.2317 (0.2317) loss_giou_enc_0: 1.4479 (1.4479) loss_vfl_dn_0: 0.4895 (0.4895) loss_bbox_dn_0: 0.0743 (0.0743) loss_giou_dn_0: 0.9589 (0.9589) loss_fgl_dn_0: 1.0578 (1.0578) loss_ddf_dn_0: 0.6268 (0.6268) loss_vfl_dn_1: 0.5205 (0.5205) loss_bbox_dn_1: 0.0559 (0.0559) loss_giou_dn_1: 0.8363 (0.8363) loss_fgl_dn_1: 1.0635 (1.0635) loss_ddf_dn_1: 0.0823 (0.0823) loss_vfl_dn_2: 0.5117 (0.5117) loss_bbox_dn_2: 0.0566 (0.0566) loss_giou_dn_2: 0.8358 (0.8358) loss_fgl_dn_2: 1.0607 (1.0607) loss_ddf_dn_2: 0.0096 (0.0096) loss_vfl_dn_3: 0.5093 (0.5093) loss_bbox_dn_3: 0.0561 (0.0561) loss_giou_dn_3: 0.8352 (0.8352) loss_fgl_dn_3: 1.0613 (1.0613) loss_ddf_dn_3: 0.0006 (0.0006) loss_vfl_dn_4: 0.5034 (0.5034) loss_bbox_dn_4: 0.0562 (0.0562) loss_giou_dn_4: 0.8357 (0.8357) loss_fgl_dn_4: 1.0612 (1.0612) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.5020 (0.5020) loss_bbox_dn_5: 0.0562 (0.0562) loss_giou_dn_5: 0.8357 (0.8357) loss_fgl_dn_5: 1.0612 (1.0612) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4885 (0.4885) loss_bbox_dn_pre: 0.0742 (0.0742) loss_giou_dn_pre: 0.9591 (0.9591) time: 1.1506 data: 0.3354 max mem: 30164\n", + "Epoch: [74] [83/84] eta: 0:00:00 lr: 0.000013 loss: 36.7424 (37.0340) loss_vfl: 0.1595 (0.1758) loss_bbox: 0.2134 (0.2111) loss_giou: 1.7058 (1.6686) loss_fgl: 0.5122 (0.5296) loss_vfl_aux_0: 0.1713 (0.1894) loss_bbox_aux_0: 0.2153 (0.2151) loss_giou_aux_0: 1.7221 (1.6806) loss_fgl_aux_0: 0.5181 (0.5328) loss_ddf_aux_0: 0.1341 (0.1623) loss_vfl_aux_1: 0.1718 (0.1890) loss_bbox_aux_1: 0.2133 (0.2121) loss_giou_aux_1: 1.7083 (1.6703) loss_fgl_aux_1: 0.5126 (0.5298) loss_ddf_aux_1: 0.0165 (0.0233) loss_vfl_aux_2: 0.1671 (0.1860) loss_bbox_aux_2: 0.2132 (0.2113) loss_giou_aux_2: 1.7062 (1.6689) loss_fgl_aux_2: 0.5125 (0.5296) loss_ddf_aux_2: 0.0022 (0.0036) loss_vfl_aux_3: 0.1621 (0.1801) loss_bbox_aux_3: 0.2131 (0.2110) loss_giou_aux_3: 1.7063 (1.6688) loss_fgl_aux_3: 0.5123 (0.5297) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1602 (0.1768) loss_bbox_aux_4: 0.2131 (0.2110) loss_giou_aux_4: 1.7061 (1.6688) loss_fgl_aux_4: 0.5123 (0.5297) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1682 (0.1867) loss_bbox_pre: 0.2194 (0.2187) loss_giou_pre: 1.7182 (1.6751) loss_vfl_enc_0: 0.1727 (0.1918) loss_bbox_enc_0: 0.2380 (0.2393) loss_giou_enc_0: 1.7605 (1.7170) loss_vfl_dn_0: 0.4329 (0.4353) loss_bbox_dn_0: 0.0424 (0.0452) loss_giou_dn_0: 1.1180 (1.1111) loss_fgl_dn_0: 0.9642 (0.9691) loss_ddf_dn_0: 0.3247 (0.3808) loss_vfl_dn_1: 0.4648 (0.4684) loss_bbox_dn_1: 0.0341 (0.0357) loss_giou_dn_1: 1.0187 (1.0126) loss_fgl_dn_1: 0.9894 (0.9902) loss_ddf_dn_1: 0.0264 (0.0357) loss_vfl_dn_2: 0.4604 (0.4637) loss_bbox_dn_2: 0.0324 (0.0348) loss_giou_dn_2: 1.0100 (1.0044) loss_fgl_dn_2: 0.9881 (0.9916) loss_ddf_dn_2: 0.0019 (0.0035) loss_vfl_dn_3: 0.4563 (0.4600) loss_bbox_dn_3: 0.0321 (0.0346) loss_giou_dn_3: 1.0099 (1.0037) loss_fgl_dn_3: 0.9881 (0.9918) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4565 (0.4583) loss_bbox_dn_4: 0.0322 (0.0346) loss_giou_dn_4: 1.0100 (1.0037) loss_fgl_dn_4: 0.9882 (0.9918) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4568 (0.4582) loss_bbox_dn_5: 0.0322 (0.0346) loss_giou_dn_5: 1.0101 (1.0037) loss_fgl_dn_5: 0.9881 (0.9918) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4329 (0.4343) loss_bbox_dn_pre: 0.0425 (0.0454) loss_giou_dn_pre: 1.1170 (1.1111) time: 0.9178 data: 0.0173 max mem: 31559\n", + "Epoch: [74] Total time: 0:01:17 (0.9257 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 36.7424 (37.0340) loss_vfl: 0.1595 (0.1758) loss_bbox: 0.2134 (0.2111) loss_giou: 1.7058 (1.6686) loss_fgl: 0.5122 (0.5296) loss_vfl_aux_0: 0.1713 (0.1894) loss_bbox_aux_0: 0.2153 (0.2151) loss_giou_aux_0: 1.7221 (1.6806) loss_fgl_aux_0: 0.5181 (0.5328) loss_ddf_aux_0: 0.1341 (0.1623) loss_vfl_aux_1: 0.1718 (0.1890) loss_bbox_aux_1: 0.2133 (0.2121) loss_giou_aux_1: 1.7083 (1.6703) loss_fgl_aux_1: 0.5126 (0.5298) loss_ddf_aux_1: 0.0165 (0.0233) loss_vfl_aux_2: 0.1671 (0.1860) loss_bbox_aux_2: 0.2132 (0.2113) loss_giou_aux_2: 1.7062 (1.6689) loss_fgl_aux_2: 0.5125 (0.5296) loss_ddf_aux_2: 0.0022 (0.0036) loss_vfl_aux_3: 0.1621 (0.1801) loss_bbox_aux_3: 0.2131 (0.2110) loss_giou_aux_3: 1.7063 (1.6688) loss_fgl_aux_3: 0.5123 (0.5297) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1602 (0.1768) loss_bbox_aux_4: 0.2131 (0.2110) loss_giou_aux_4: 1.7061 (1.6688) loss_fgl_aux_4: 0.5123 (0.5297) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1682 (0.1867) loss_bbox_pre: 0.2194 (0.2187) loss_giou_pre: 1.7182 (1.6751) loss_vfl_enc_0: 0.1727 (0.1918) loss_bbox_enc_0: 0.2380 (0.2393) loss_giou_enc_0: 1.7605 (1.7170) loss_vfl_dn_0: 0.4329 (0.4353) loss_bbox_dn_0: 0.0424 (0.0452) loss_giou_dn_0: 1.1180 (1.1111) loss_fgl_dn_0: 0.9642 (0.9691) loss_ddf_dn_0: 0.3247 (0.3808) loss_vfl_dn_1: 0.4648 (0.4684) loss_bbox_dn_1: 0.0341 (0.0357) loss_giou_dn_1: 1.0187 (1.0126) loss_fgl_dn_1: 0.9894 (0.9902) loss_ddf_dn_1: 0.0264 (0.0357) loss_vfl_dn_2: 0.4604 (0.4637) loss_bbox_dn_2: 0.0324 (0.0348) loss_giou_dn_2: 1.0100 (1.0044) loss_fgl_dn_2: 0.9881 (0.9916) loss_ddf_dn_2: 0.0019 (0.0035) loss_vfl_dn_3: 0.4563 (0.4600) loss_bbox_dn_3: 0.0321 (0.0346) loss_giou_dn_3: 1.0099 (1.0037) loss_fgl_dn_3: 0.9881 (0.9918) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4565 (0.4583) loss_bbox_dn_4: 0.0322 (0.0346) loss_giou_dn_4: 1.0100 (1.0037) loss_fgl_dn_4: 0.9882 (0.9918) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4568 (0.4582) loss_bbox_dn_5: 0.0322 (0.0346) loss_giou_dn_5: 1.0101 (1.0037) loss_fgl_dn_5: 0.9881 (0.9918) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4329 (0.4343) loss_bbox_dn_pre: 0.0425 (0.0454) loss_giou_dn_pre: 1.1170 (1.1111)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7162 data: 0.4840 max mem: 31559\n", + "Test: [3/4] eta: 0:00:00 time: 0.3856 data: 0.1589 max mem: 31559\n", + "Test: Total time: 0:00:01 (0.4018 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.052\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.109\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.028\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.041\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.241\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.216\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.023\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.077\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.098\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.090\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.315\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.525\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.191\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.077\n", + "best_stat: {'epoch': 72, 'coco_eval_bbox': 0.05215868535188683}\n", + "Epoch: [75] [ 0/84] eta: 0:02:08 lr: 0.000013 loss: 37.5589 (37.5589) loss_vfl: 0.1125 (0.1125) loss_bbox: 0.2657 (0.2657) loss_giou: 1.8786 (1.8786) loss_fgl: 0.3813 (0.3813) loss_vfl_aux_0: 0.1181 (0.1181) loss_bbox_aux_0: 0.2711 (0.2711) loss_giou_aux_0: 1.8880 (1.8880) loss_fgl_aux_0: 0.3770 (0.3770) loss_ddf_aux_0: 0.1248 (0.1248) loss_vfl_aux_1: 0.1215 (0.1215) loss_bbox_aux_1: 0.2666 (0.2666) loss_giou_aux_1: 1.8799 (1.8799) loss_fgl_aux_1: 0.3812 (0.3812) loss_ddf_aux_1: 0.0183 (0.0183) loss_vfl_aux_2: 0.1169 (0.1169) loss_bbox_aux_2: 0.2656 (0.2656) loss_giou_aux_2: 1.8786 (1.8786) loss_fgl_aux_2: 0.3813 (0.3813) loss_ddf_aux_2: 0.0021 (0.0021) loss_vfl_aux_3: 0.1147 (0.1147) loss_bbox_aux_3: 0.2655 (0.2655) loss_giou_aux_3: 1.8786 (1.8786) loss_fgl_aux_3: 0.3813 (0.3813) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1124 (0.1124) loss_bbox_aux_4: 0.2656 (0.2656) loss_giou_aux_4: 1.8788 (1.8788) loss_fgl_aux_4: 0.3813 (0.3813) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1155 (0.1155) loss_bbox_pre: 0.2757 (0.2757) loss_giou_pre: 1.8844 (1.8844) loss_vfl_enc_0: 0.1181 (0.1181) loss_bbox_enc_0: 0.2834 (0.2834) loss_giou_enc_0: 1.9224 (1.9224) loss_vfl_dn_0: 0.4121 (0.4121) loss_bbox_dn_0: 0.0426 (0.0426) loss_giou_dn_0: 1.1576 (1.1576) loss_fgl_dn_0: 0.9141 (0.9141) loss_ddf_dn_0: 0.3381 (0.3381) loss_vfl_dn_1: 0.4612 (0.4612) loss_bbox_dn_1: 0.0316 (0.0316) loss_giou_dn_1: 1.0541 (1.0541) loss_fgl_dn_1: 0.9525 (0.9525) loss_ddf_dn_1: 0.0258 (0.0258) loss_vfl_dn_2: 0.4563 (0.4563) loss_bbox_dn_2: 0.0313 (0.0313) loss_giou_dn_2: 1.0483 (1.0483) loss_fgl_dn_2: 0.9551 (0.9551) loss_ddf_dn_2: 0.0018 (0.0018) loss_vfl_dn_3: 0.4519 (0.4519) loss_bbox_dn_3: 0.0312 (0.0312) loss_giou_dn_3: 1.0479 (1.0479) loss_fgl_dn_3: 0.9552 (0.9552) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4509 (0.4509) loss_bbox_dn_4: 0.0311 (0.0311) loss_giou_dn_4: 1.0479 (1.0479) loss_fgl_dn_4: 0.9553 (0.9553) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4517 (0.4517) loss_bbox_dn_5: 0.0312 (0.0312) loss_giou_dn_5: 1.0479 (1.0479) loss_fgl_dn_5: 0.9553 (0.9553) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4104 (0.4104) loss_bbox_dn_pre: 0.0427 (0.0427) loss_giou_dn_pre: 1.1583 (1.1583) time: 1.5313 data: 0.3212 max mem: 31559\n", + "Epoch: [75] [83/84] eta: 0:00:00 lr: 0.000013 loss: 36.9735 (37.1443) loss_vfl: 0.1510 (0.1770) loss_bbox: 0.2000 (0.2151) loss_giou: 1.7301 (1.6583) loss_fgl: 0.4942 (0.5342) loss_vfl_aux_0: 0.1575 (0.1896) loss_bbox_aux_0: 0.2065 (0.2203) loss_giou_aux_0: 1.7406 (1.6719) loss_fgl_aux_0: 0.4909 (0.5365) loss_ddf_aux_0: 0.1727 (0.2136) loss_vfl_aux_1: 0.1593 (0.1903) loss_bbox_aux_1: 0.2017 (0.2162) loss_giou_aux_1: 1.7318 (1.6603) loss_fgl_aux_1: 0.4943 (0.5344) loss_ddf_aux_1: 0.0267 (0.0332) loss_vfl_aux_2: 0.1578 (0.1870) loss_bbox_aux_2: 0.2004 (0.2152) loss_giou_aux_2: 1.7288 (1.6587) loss_fgl_aux_2: 0.4943 (0.5341) loss_ddf_aux_2: 0.0041 (0.0047) loss_vfl_aux_3: 0.1539 (0.1817) loss_bbox_aux_3: 0.2002 (0.2151) loss_giou_aux_3: 1.7294 (1.6584) loss_fgl_aux_3: 0.4941 (0.5342) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1517 (0.1781) loss_bbox_aux_4: 0.2000 (0.2150) loss_giou_aux_4: 1.7301 (1.6584) loss_fgl_aux_4: 0.4942 (0.5342) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1573 (0.1872) loss_bbox_pre: 0.2106 (0.2232) loss_giou_pre: 1.7357 (1.6675) loss_vfl_enc_0: 0.1637 (0.1928) loss_bbox_enc_0: 0.2459 (0.2493) loss_giou_enc_0: 1.7921 (1.7139) loss_vfl_dn_0: 0.4336 (0.4382) loss_bbox_dn_0: 0.0394 (0.0449) loss_giou_dn_0: 1.1174 (1.1037) loss_fgl_dn_0: 0.9688 (0.9770) loss_ddf_dn_0: 0.3197 (0.4078) loss_vfl_dn_1: 0.4631 (0.4691) loss_bbox_dn_1: 0.0321 (0.0354) loss_giou_dn_1: 1.0225 (1.0088) loss_fgl_dn_1: 0.9939 (0.9946) loss_ddf_dn_1: 0.0480 (0.0504) loss_vfl_dn_2: 0.4575 (0.4636) loss_bbox_dn_2: 0.0312 (0.0343) loss_giou_dn_2: 1.0138 (0.9999) loss_fgl_dn_2: 0.9940 (0.9968) loss_ddf_dn_2: 0.0038 (0.0056) loss_vfl_dn_3: 0.4570 (0.4602) loss_bbox_dn_3: 0.0311 (0.0341) loss_giou_dn_3: 1.0140 (0.9991) loss_fgl_dn_3: 0.9939 (0.9970) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4575 (0.4585) loss_bbox_dn_4: 0.0311 (0.0341) loss_giou_dn_4: 1.0139 (0.9990) loss_fgl_dn_4: 0.9939 (0.9971) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4583 (0.4586) loss_bbox_dn_5: 0.0311 (0.0341) loss_giou_dn_5: 1.0139 (0.9990) loss_fgl_dn_5: 0.9939 (0.9971) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4324 (0.4372) loss_bbox_dn_pre: 0.0394 (0.0451) loss_giou_dn_pre: 1.1163 (1.1037) time: 0.9841 data: 0.0168 max mem: 31559\n", + "Epoch: [75] Total time: 0:01:18 (0.9319 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 36.9735 (37.1443) loss_vfl: 0.1510 (0.1770) loss_bbox: 0.2000 (0.2151) loss_giou: 1.7301 (1.6583) loss_fgl: 0.4942 (0.5342) loss_vfl_aux_0: 0.1575 (0.1896) loss_bbox_aux_0: 0.2065 (0.2203) loss_giou_aux_0: 1.7406 (1.6719) loss_fgl_aux_0: 0.4909 (0.5365) loss_ddf_aux_0: 0.1727 (0.2136) loss_vfl_aux_1: 0.1593 (0.1903) loss_bbox_aux_1: 0.2017 (0.2162) loss_giou_aux_1: 1.7318 (1.6603) loss_fgl_aux_1: 0.4943 (0.5344) loss_ddf_aux_1: 0.0267 (0.0332) loss_vfl_aux_2: 0.1578 (0.1870) loss_bbox_aux_2: 0.2004 (0.2152) loss_giou_aux_2: 1.7288 (1.6587) loss_fgl_aux_2: 0.4943 (0.5341) loss_ddf_aux_2: 0.0041 (0.0047) loss_vfl_aux_3: 0.1539 (0.1817) loss_bbox_aux_3: 0.2002 (0.2151) loss_giou_aux_3: 1.7294 (1.6584) loss_fgl_aux_3: 0.4941 (0.5342) loss_ddf_aux_3: 0.0002 (0.0003) loss_vfl_aux_4: 0.1517 (0.1781) loss_bbox_aux_4: 0.2000 (0.2150) loss_giou_aux_4: 1.7301 (1.6584) loss_fgl_aux_4: 0.4942 (0.5342) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1573 (0.1872) loss_bbox_pre: 0.2106 (0.2232) loss_giou_pre: 1.7357 (1.6675) loss_vfl_enc_0: 0.1637 (0.1928) loss_bbox_enc_0: 0.2459 (0.2493) loss_giou_enc_0: 1.7921 (1.7139) loss_vfl_dn_0: 0.4336 (0.4382) loss_bbox_dn_0: 0.0394 (0.0449) loss_giou_dn_0: 1.1174 (1.1037) loss_fgl_dn_0: 0.9688 (0.9770) loss_ddf_dn_0: 0.3197 (0.4078) loss_vfl_dn_1: 0.4631 (0.4691) loss_bbox_dn_1: 0.0321 (0.0354) loss_giou_dn_1: 1.0225 (1.0088) loss_fgl_dn_1: 0.9939 (0.9946) loss_ddf_dn_1: 0.0480 (0.0504) loss_vfl_dn_2: 0.4575 (0.4636) loss_bbox_dn_2: 0.0312 (0.0343) loss_giou_dn_2: 1.0138 (0.9999) loss_fgl_dn_2: 0.9940 (0.9968) loss_ddf_dn_2: 0.0038 (0.0056) loss_vfl_dn_3: 0.4570 (0.4602) loss_bbox_dn_3: 0.0311 (0.0341) loss_giou_dn_3: 1.0140 (0.9991) loss_fgl_dn_3: 0.9939 (0.9970) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4575 (0.4585) loss_bbox_dn_4: 0.0311 (0.0341) loss_giou_dn_4: 1.0139 (0.9990) loss_fgl_dn_4: 0.9939 (0.9971) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4583 (0.4586) loss_bbox_dn_5: 0.0311 (0.0341) loss_giou_dn_5: 1.0139 (0.9990) loss_fgl_dn_5: 0.9939 (0.9971) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4324 (0.4372) loss_bbox_dn_pre: 0.0394 (0.0451) loss_giou_dn_pre: 1.1163 (1.1037)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7837 data: 0.5501 max mem: 31559\n", + "Test: [3/4] eta: 0:00:00 time: 0.4029 data: 0.1746 max mem: 31559\n", + "Test: Total time: 0:00:01 (0.4231 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.049\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.103\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.028\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.038\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.236\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.222\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.010\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.064\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.085\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.077\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.319\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.525\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.169\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.058\n", + "best_stat: {'epoch': 72, 'coco_eval_bbox': 0.05215868535188683}\n", + "Load last_epoch\n", + "Load model.state_dict\n", + "Load criterion.state_dict\n", + "Load postprocessor.state_dict\n", + "Load ema.state_dict\n", + "Load scaler.state_dict\n", + "Load optimizer.state_dict\n", + "Load lr_scheduler.state_dict\n", + "Load lr_warmup_scheduler.state_dict\n", + "Refresh EMA at epoch 75 with decay 0.9997\n", + "Epoch: [76] [ 0/84] eta: 0:01:42 lr: 0.000013 loss: 35.8548 (35.8548) loss_vfl: 0.1598 (0.1598) loss_bbox: 0.1621 (0.1621) loss_giou: 1.6381 (1.6381) loss_fgl: 0.4881 (0.4881) loss_vfl_aux_0: 0.1725 (0.1725) loss_bbox_aux_0: 0.1667 (0.1667) loss_giou_aux_0: 1.6479 (1.6479) loss_fgl_aux_0: 0.4838 (0.4838) loss_ddf_aux_0: 0.0809 (0.0809) loss_vfl_aux_1: 0.1727 (0.1727) loss_bbox_aux_1: 0.1634 (0.1634) loss_giou_aux_1: 1.6400 (1.6400) loss_fgl_aux_1: 0.4867 (0.4867) loss_ddf_aux_1: 0.0135 (0.0135) loss_vfl_aux_2: 0.1731 (0.1731) loss_bbox_aux_2: 0.1627 (0.1627) loss_giou_aux_2: 1.6390 (1.6390) loss_fgl_aux_2: 0.4873 (0.4873) loss_ddf_aux_2: 0.0016 (0.0016) loss_vfl_aux_3: 0.1663 (0.1663) loss_bbox_aux_3: 0.1624 (0.1624) loss_giou_aux_3: 1.6385 (1.6385) loss_fgl_aux_3: 0.4875 (0.4875) loss_ddf_aux_3: 0.0001 (0.0001) loss_vfl_aux_4: 0.1625 (0.1625) loss_bbox_aux_4: 0.1621 (0.1621) loss_giou_aux_4: 1.6382 (1.6382) loss_fgl_aux_4: 0.4881 (0.4881) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1682 (0.1682) loss_bbox_pre: 0.1701 (0.1701) loss_giou_pre: 1.6479 (1.6479) loss_vfl_enc_0: 0.1660 (0.1660) loss_bbox_enc_0: 0.1960 (0.1960) loss_giou_enc_0: 1.6977 (1.6977) loss_vfl_dn_0: 0.4321 (0.4321) loss_bbox_dn_0: 0.0379 (0.0379) loss_giou_dn_0: 1.1290 (1.1290) loss_fgl_dn_0: 0.9539 (0.9539) loss_ddf_dn_0: 0.2348 (0.2348) loss_vfl_dn_1: 0.4634 (0.4634) loss_bbox_dn_1: 0.0309 (0.0309) loss_giou_dn_1: 1.0392 (1.0392) loss_fgl_dn_1: 0.9837 (0.9837) loss_ddf_dn_1: 0.0236 (0.0236) loss_vfl_dn_2: 0.4644 (0.4644) loss_bbox_dn_2: 0.0307 (0.0307) loss_giou_dn_2: 1.0332 (1.0332) loss_fgl_dn_2: 0.9860 (0.9860) loss_ddf_dn_2: 0.0022 (0.0022) loss_vfl_dn_3: 0.4602 (0.4602) loss_bbox_dn_3: 0.0306 (0.0306) loss_giou_dn_3: 1.0330 (1.0330) loss_fgl_dn_3: 0.9860 (0.9860) loss_ddf_dn_3: 0.0002 (0.0002) loss_vfl_dn_4: 0.4563 (0.4563) loss_bbox_dn_4: 0.0306 (0.0306) loss_giou_dn_4: 1.0329 (1.0329) loss_fgl_dn_4: 0.9860 (0.9860) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4541 (0.4541) loss_bbox_dn_5: 0.0306 (0.0306) loss_giou_dn_5: 1.0329 (1.0329) loss_fgl_dn_5: 0.9860 (0.9860) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4312 (0.4312) loss_bbox_dn_pre: 0.0378 (0.0378) loss_giou_dn_pre: 1.1298 (1.1298) time: 1.2241 data: 0.3244 max mem: 31559\n", + "Epoch: [76] [83/84] eta: 0:00:00 lr: 0.000013 loss: 37.3437 (37.2090) loss_vfl: 0.1733 (0.1766) loss_bbox: 0.2157 (0.2190) loss_giou: 1.6028 (1.6763) loss_fgl: 0.5428 (0.5289) loss_vfl_aux_0: 0.1802 (0.1892) loss_bbox_aux_0: 0.2219 (0.2237) loss_giou_aux_0: 1.6112 (1.6876) loss_fgl_aux_0: 0.5474 (0.5317) loss_ddf_aux_0: 0.1803 (0.1788) loss_vfl_aux_1: 0.1787 (0.1890) loss_bbox_aux_1: 0.2161 (0.2205) loss_giou_aux_1: 1.6044 (1.6775) loss_fgl_aux_1: 0.5431 (0.5290) loss_ddf_aux_1: 0.0297 (0.0260) loss_vfl_aux_2: 0.1764 (0.1864) loss_bbox_aux_2: 0.2155 (0.2194) loss_giou_aux_2: 1.6031 (1.6763) loss_fgl_aux_2: 0.5433 (0.5288) loss_ddf_aux_2: 0.0042 (0.0037) loss_vfl_aux_3: 0.1740 (0.1806) loss_bbox_aux_3: 0.2155 (0.2191) loss_giou_aux_3: 1.6029 (1.6762) loss_fgl_aux_3: 0.5430 (0.5289) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1730 (0.1773) loss_bbox_aux_4: 0.2156 (0.2190) loss_giou_aux_4: 1.6028 (1.6763) loss_fgl_aux_4: 0.5428 (0.5290) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1781 (0.1866) loss_bbox_pre: 0.2234 (0.2269) loss_giou_pre: 1.6107 (1.6830) loss_vfl_enc_0: 0.1866 (0.1933) loss_bbox_enc_0: 0.2509 (0.2486) loss_giou_enc_0: 1.6667 (1.7244) loss_vfl_dn_0: 0.4429 (0.4382) loss_bbox_dn_0: 0.0419 (0.0448) loss_giou_dn_0: 1.0952 (1.1050) loss_fgl_dn_0: 0.9835 (0.9746) loss_ddf_dn_0: 0.3591 (0.3861) loss_vfl_dn_1: 0.4705 (0.4689) loss_bbox_dn_1: 0.0330 (0.0353) loss_giou_dn_1: 1.0136 (1.0121) loss_fgl_dn_1: 0.9959 (0.9940) loss_ddf_dn_1: 0.0302 (0.0421) loss_vfl_dn_2: 0.4644 (0.4645) loss_bbox_dn_2: 0.0322 (0.0344) loss_giou_dn_2: 1.0047 (1.0041) loss_fgl_dn_2: 0.9970 (0.9954) loss_ddf_dn_2: 0.0033 (0.0042) loss_vfl_dn_3: 0.4609 (0.4608) loss_bbox_dn_3: 0.0320 (0.0342) loss_giou_dn_3: 1.0040 (1.0034) loss_fgl_dn_3: 0.9972 (0.9956) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4609 (0.4593) loss_bbox_dn_4: 0.0320 (0.0342) loss_giou_dn_4: 1.0038 (1.0034) loss_fgl_dn_4: 0.9973 (0.9956) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4602 (0.4592) loss_bbox_dn_5: 0.0320 (0.0342) loss_giou_dn_5: 1.0038 (1.0034) loss_fgl_dn_5: 0.9973 (0.9956) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4414 (0.4372) loss_bbox_dn_pre: 0.0421 (0.0450) loss_giou_dn_pre: 1.0934 (1.1053) time: 0.9429 data: 0.0168 max mem: 31559\n", + "Epoch: [76] Total time: 0:01:18 (0.9372 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 37.3437 (37.2090) loss_vfl: 0.1733 (0.1766) loss_bbox: 0.2157 (0.2190) loss_giou: 1.6028 (1.6763) loss_fgl: 0.5428 (0.5289) loss_vfl_aux_0: 0.1802 (0.1892) loss_bbox_aux_0: 0.2219 (0.2237) loss_giou_aux_0: 1.6112 (1.6876) loss_fgl_aux_0: 0.5474 (0.5317) loss_ddf_aux_0: 0.1803 (0.1788) loss_vfl_aux_1: 0.1787 (0.1890) loss_bbox_aux_1: 0.2161 (0.2205) loss_giou_aux_1: 1.6044 (1.6775) loss_fgl_aux_1: 0.5431 (0.5290) loss_ddf_aux_1: 0.0297 (0.0260) loss_vfl_aux_2: 0.1764 (0.1864) loss_bbox_aux_2: 0.2155 (0.2194) loss_giou_aux_2: 1.6031 (1.6763) loss_fgl_aux_2: 0.5433 (0.5288) loss_ddf_aux_2: 0.0042 (0.0037) loss_vfl_aux_3: 0.1740 (0.1806) loss_bbox_aux_3: 0.2155 (0.2191) loss_giou_aux_3: 1.6029 (1.6762) loss_fgl_aux_3: 0.5430 (0.5289) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1730 (0.1773) loss_bbox_aux_4: 0.2156 (0.2190) loss_giou_aux_4: 1.6028 (1.6763) loss_fgl_aux_4: 0.5428 (0.5290) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1781 (0.1866) loss_bbox_pre: 0.2234 (0.2269) loss_giou_pre: 1.6107 (1.6830) loss_vfl_enc_0: 0.1866 (0.1933) loss_bbox_enc_0: 0.2509 (0.2486) loss_giou_enc_0: 1.6667 (1.7244) loss_vfl_dn_0: 0.4429 (0.4382) loss_bbox_dn_0: 0.0419 (0.0448) loss_giou_dn_0: 1.0952 (1.1050) loss_fgl_dn_0: 0.9835 (0.9746) loss_ddf_dn_0: 0.3591 (0.3861) loss_vfl_dn_1: 0.4705 (0.4689) loss_bbox_dn_1: 0.0330 (0.0353) loss_giou_dn_1: 1.0136 (1.0121) loss_fgl_dn_1: 0.9959 (0.9940) loss_ddf_dn_1: 0.0302 (0.0421) loss_vfl_dn_2: 0.4644 (0.4645) loss_bbox_dn_2: 0.0322 (0.0344) loss_giou_dn_2: 1.0047 (1.0041) loss_fgl_dn_2: 0.9970 (0.9954) loss_ddf_dn_2: 0.0033 (0.0042) loss_vfl_dn_3: 0.4609 (0.4608) loss_bbox_dn_3: 0.0320 (0.0342) loss_giou_dn_3: 1.0040 (1.0034) loss_fgl_dn_3: 0.9972 (0.9956) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4609 (0.4593) loss_bbox_dn_4: 0.0320 (0.0342) loss_giou_dn_4: 1.0038 (1.0034) loss_fgl_dn_4: 0.9973 (0.9956) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4602 (0.4592) loss_bbox_dn_5: 0.0320 (0.0342) loss_giou_dn_5: 1.0038 (1.0034) loss_fgl_dn_5: 0.9973 (0.9956) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4414 (0.4372) loss_bbox_dn_pre: 0.0421 (0.0450) loss_giou_dn_pre: 1.0934 (1.1053)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7652 data: 0.5267 max mem: 31559\n", + "Test: [3/4] eta: 0:00:00 time: 0.4107 data: 0.1827 max mem: 31559\n", + "Test: Total time: 0:00:01 (0.4255 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.049\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.107\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.026\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.040\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.231\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.264\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.009\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.076\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.097\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.089\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.314\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.550\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.191\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.074\n", + "best_stat: {'epoch': 72, 'coco_eval_bbox': 0.05215868535188683}\n", + "Epoch: [77] [ 0/84] eta: 0:01:57 lr: 0.000013 loss: 37.0568 (37.0568) loss_vfl: 0.1998 (0.1998) loss_bbox: 0.2270 (0.2270) loss_giou: 1.5220 (1.5220) loss_fgl: 0.6302 (0.6302) loss_vfl_aux_0: 0.2140 (0.2140) loss_bbox_aux_0: 0.2290 (0.2290) loss_giou_aux_0: 1.5354 (1.5354) loss_fgl_aux_0: 0.6279 (0.6279) loss_ddf_aux_0: 0.1577 (0.1577) loss_vfl_aux_1: 0.2141 (0.2141) loss_bbox_aux_1: 0.2287 (0.2287) loss_giou_aux_1: 1.5239 (1.5239) loss_fgl_aux_1: 0.6296 (0.6296) loss_ddf_aux_1: 0.0273 (0.0273) loss_vfl_aux_2: 0.2123 (0.2123) loss_bbox_aux_2: 0.2280 (0.2280) loss_giou_aux_2: 1.5230 (1.5230) loss_fgl_aux_2: 0.6295 (0.6295) loss_ddf_aux_2: 0.0046 (0.0046) loss_vfl_aux_3: 0.2040 (0.2040) loss_bbox_aux_3: 0.2274 (0.2274) loss_giou_aux_3: 1.5220 (1.5220) loss_fgl_aux_3: 0.6301 (0.6301) loss_ddf_aux_3: 0.0004 (0.0004) loss_vfl_aux_4: 0.2017 (0.2017) loss_bbox_aux_4: 0.2270 (0.2270) loss_giou_aux_4: 1.5221 (1.5221) loss_fgl_aux_4: 0.6303 (0.6303) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.2115 (0.2115) loss_bbox_pre: 0.2324 (0.2324) loss_giou_pre: 1.5332 (1.5332) loss_vfl_enc_0: 0.2158 (0.2158) loss_bbox_enc_0: 0.2646 (0.2646) loss_giou_enc_0: 1.5944 (1.5944) loss_vfl_dn_0: 0.4583 (0.4583) loss_bbox_dn_0: 0.0530 (0.0530) loss_giou_dn_0: 1.0610 (1.0610) loss_fgl_dn_0: 1.0042 (1.0042) loss_ddf_dn_0: 0.5422 (0.5422) loss_vfl_dn_1: 0.4932 (0.4932) loss_bbox_dn_1: 0.0443 (0.0443) loss_giou_dn_1: 0.9587 (0.9587) loss_fgl_dn_1: 1.0195 (1.0195) loss_ddf_dn_1: 0.0936 (0.0936) loss_vfl_dn_2: 0.4836 (0.4836) loss_bbox_dn_2: 0.0429 (0.0429) loss_giou_dn_2: 0.9515 (0.9515) loss_fgl_dn_2: 1.0206 (1.0206) loss_ddf_dn_2: 0.0058 (0.0058) loss_vfl_dn_3: 0.4768 (0.4768) loss_bbox_dn_3: 0.0425 (0.0425) loss_giou_dn_3: 0.9503 (0.9503) loss_fgl_dn_3: 1.0210 (1.0210) loss_ddf_dn_3: 0.0005 (0.0005) loss_vfl_dn_4: 0.4768 (0.4768) loss_bbox_dn_4: 0.0425 (0.0425) loss_giou_dn_4: 0.9501 (0.9501) loss_fgl_dn_4: 1.0211 (1.0211) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4768 (0.4768) loss_bbox_dn_5: 0.0425 (0.0425) loss_giou_dn_5: 0.9501 (0.9501) loss_fgl_dn_5: 1.0211 (1.0211) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4568 (0.4568) loss_bbox_dn_pre: 0.0532 (0.0532) loss_giou_dn_pre: 1.0608 (1.0608) time: 1.3931 data: 0.3326 max mem: 31559\n", + "Epoch: [77] [83/84] eta: 0:00:00 lr: 0.000013 loss: 36.8868 (37.2079) loss_vfl: 0.1504 (0.1792) loss_bbox: 0.2094 (0.2156) loss_giou: 1.6754 (1.6605) loss_fgl: 0.5165 (0.5354) loss_vfl_aux_0: 0.1597 (0.1922) loss_bbox_aux_0: 0.2111 (0.2202) loss_giou_aux_0: 1.6850 (1.6740) loss_fgl_aux_0: 0.5207 (0.5377) loss_ddf_aux_0: 0.1853 (0.1907) loss_vfl_aux_1: 0.1589 (0.1930) loss_bbox_aux_1: 0.2091 (0.2168) loss_giou_aux_1: 1.6784 (1.6620) loss_fgl_aux_1: 0.5184 (0.5354) loss_ddf_aux_1: 0.0281 (0.0310) loss_vfl_aux_2: 0.1571 (0.1894) loss_bbox_aux_2: 0.2095 (0.2157) loss_giou_aux_2: 1.6759 (1.6608) loss_fgl_aux_2: 0.5168 (0.5352) loss_ddf_aux_2: 0.0055 (0.0051) loss_vfl_aux_3: 0.1542 (0.1836) loss_bbox_aux_3: 0.2093 (0.2155) loss_giou_aux_3: 1.6756 (1.6606) loss_fgl_aux_3: 0.5166 (0.5354) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1519 (0.1804) loss_bbox_aux_4: 0.2094 (0.2155) loss_giou_aux_4: 1.6754 (1.6605) loss_fgl_aux_4: 0.5166 (0.5354) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1580 (0.1897) loss_bbox_pre: 0.2149 (0.2233) loss_giou_pre: 1.6810 (1.6690) loss_vfl_enc_0: 0.1622 (0.1953) loss_bbox_enc_0: 0.2411 (0.2493) loss_giou_enc_0: 1.7373 (1.7153) loss_vfl_dn_0: 0.4348 (0.4384) loss_bbox_dn_0: 0.0403 (0.0451) loss_giou_dn_0: 1.1180 (1.1102) loss_fgl_dn_0: 0.9702 (0.9767) loss_ddf_dn_0: 0.3239 (0.4115) loss_vfl_dn_1: 0.4607 (0.4705) loss_bbox_dn_1: 0.0331 (0.0357) loss_giou_dn_1: 1.0390 (1.0106) loss_fgl_dn_1: 0.9867 (0.9962) loss_ddf_dn_1: 0.0303 (0.0515) loss_vfl_dn_2: 0.4587 (0.4648) loss_bbox_dn_2: 0.0318 (0.0347) loss_giou_dn_2: 1.0305 (1.0024) loss_fgl_dn_2: 0.9902 (0.9982) loss_ddf_dn_2: 0.0043 (0.0070) loss_vfl_dn_3: 0.4573 (0.4605) loss_bbox_dn_3: 0.0317 (0.0345) loss_giou_dn_3: 1.0297 (1.0016) loss_fgl_dn_3: 0.9907 (0.9984) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4561 (0.4590) loss_bbox_dn_4: 0.0316 (0.0344) loss_giou_dn_4: 1.0297 (1.0015) loss_fgl_dn_4: 0.9907 (0.9985) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4558 (0.4589) loss_bbox_dn_5: 0.0316 (0.0345) loss_giou_dn_5: 1.0298 (1.0015) loss_fgl_dn_5: 0.9907 (0.9985) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4338 (0.4378) loss_bbox_dn_pre: 0.0405 (0.0453) loss_giou_dn_pre: 1.1215 (1.1097) time: 0.9515 data: 0.0167 max mem: 31828\n", + "Epoch: [77] Total time: 0:01:18 (0.9352 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 36.8868 (37.2079) loss_vfl: 0.1504 (0.1792) loss_bbox: 0.2094 (0.2156) loss_giou: 1.6754 (1.6605) loss_fgl: 0.5165 (0.5354) loss_vfl_aux_0: 0.1597 (0.1922) loss_bbox_aux_0: 0.2111 (0.2202) loss_giou_aux_0: 1.6850 (1.6740) loss_fgl_aux_0: 0.5207 (0.5377) loss_ddf_aux_0: 0.1853 (0.1907) loss_vfl_aux_1: 0.1589 (0.1930) loss_bbox_aux_1: 0.2091 (0.2168) loss_giou_aux_1: 1.6784 (1.6620) loss_fgl_aux_1: 0.5184 (0.5354) loss_ddf_aux_1: 0.0281 (0.0310) loss_vfl_aux_2: 0.1571 (0.1894) loss_bbox_aux_2: 0.2095 (0.2157) loss_giou_aux_2: 1.6759 (1.6608) loss_fgl_aux_2: 0.5168 (0.5352) loss_ddf_aux_2: 0.0055 (0.0051) loss_vfl_aux_3: 0.1542 (0.1836) loss_bbox_aux_3: 0.2093 (0.2155) loss_giou_aux_3: 1.6756 (1.6606) loss_fgl_aux_3: 0.5166 (0.5354) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1519 (0.1804) loss_bbox_aux_4: 0.2094 (0.2155) loss_giou_aux_4: 1.6754 (1.6605) loss_fgl_aux_4: 0.5166 (0.5354) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1580 (0.1897) loss_bbox_pre: 0.2149 (0.2233) loss_giou_pre: 1.6810 (1.6690) loss_vfl_enc_0: 0.1622 (0.1953) loss_bbox_enc_0: 0.2411 (0.2493) loss_giou_enc_0: 1.7373 (1.7153) loss_vfl_dn_0: 0.4348 (0.4384) loss_bbox_dn_0: 0.0403 (0.0451) loss_giou_dn_0: 1.1180 (1.1102) loss_fgl_dn_0: 0.9702 (0.9767) loss_ddf_dn_0: 0.3239 (0.4115) loss_vfl_dn_1: 0.4607 (0.4705) loss_bbox_dn_1: 0.0331 (0.0357) loss_giou_dn_1: 1.0390 (1.0106) loss_fgl_dn_1: 0.9867 (0.9962) loss_ddf_dn_1: 0.0303 (0.0515) loss_vfl_dn_2: 0.4587 (0.4648) loss_bbox_dn_2: 0.0318 (0.0347) loss_giou_dn_2: 1.0305 (1.0024) loss_fgl_dn_2: 0.9902 (0.9982) loss_ddf_dn_2: 0.0043 (0.0070) loss_vfl_dn_3: 0.4573 (0.4605) loss_bbox_dn_3: 0.0317 (0.0345) loss_giou_dn_3: 1.0297 (1.0016) loss_fgl_dn_3: 0.9907 (0.9984) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4561 (0.4590) loss_bbox_dn_4: 0.0316 (0.0344) loss_giou_dn_4: 1.0297 (1.0015) loss_fgl_dn_4: 0.9907 (0.9985) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4558 (0.4589) loss_bbox_dn_5: 0.0316 (0.0345) loss_giou_dn_5: 1.0298 (1.0015) loss_fgl_dn_5: 0.9907 (0.9985) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4338 (0.4378) loss_bbox_dn_pre: 0.0405 (0.0453) loss_giou_dn_pre: 1.1215 (1.1097)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7185 data: 0.4815 max mem: 31828\n", + "Test: [3/4] eta: 0:00:00 time: 0.3887 data: 0.1622 max mem: 31828\n", + "Test: Total time: 0:00:01 (0.4038 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.051\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.108\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.029\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.042\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.232\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.266\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.010\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.077\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.097\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.090\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.324\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.475\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.191\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.077\n", + "best_stat: {'epoch': 72, 'coco_eval_bbox': 0.05215868535188683}\n", + "Epoch: [78] [ 0/84] eta: 0:02:29 lr: 0.000013 loss: 37.1916 (37.1916) loss_vfl: 0.1233 (0.1233) loss_bbox: 0.2309 (0.2309) loss_giou: 1.7295 (1.7295) loss_fgl: 0.5007 (0.5007) loss_vfl_aux_0: 0.1317 (0.1317) loss_bbox_aux_0: 0.2395 (0.2395) loss_giou_aux_0: 1.7428 (1.7428) loss_fgl_aux_0: 0.4995 (0.4995) loss_ddf_aux_0: 0.0954 (0.0954) loss_vfl_aux_1: 0.1304 (0.1304) loss_bbox_aux_1: 0.2325 (0.2325) loss_giou_aux_1: 1.7320 (1.7320) loss_fgl_aux_1: 0.5008 (0.5008) loss_ddf_aux_1: 0.0171 (0.0171) loss_vfl_aux_2: 0.1289 (0.1289) loss_bbox_aux_2: 0.2316 (0.2316) loss_giou_aux_2: 1.7291 (1.7291) loss_fgl_aux_2: 0.5009 (0.5009) loss_ddf_aux_2: 0.0031 (0.0031) loss_vfl_aux_3: 0.1255 (0.1255) loss_bbox_aux_3: 0.2311 (0.2311) loss_giou_aux_3: 1.7294 (1.7294) loss_fgl_aux_3: 0.5008 (0.5008) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1241 (0.1241) loss_bbox_aux_4: 0.2310 (0.2310) loss_giou_aux_4: 1.7296 (1.7296) loss_fgl_aux_4: 0.5008 (0.5008) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1295 (0.1295) loss_bbox_pre: 0.2438 (0.2438) loss_giou_pre: 1.7400 (1.7400) loss_vfl_enc_0: 0.1294 (0.1294) loss_bbox_enc_0: 0.2660 (0.2660) loss_giou_enc_0: 1.7774 (1.7774) loss_vfl_dn_0: 0.4250 (0.4250) loss_bbox_dn_0: 0.0436 (0.0436) loss_giou_dn_0: 1.1471 (1.1471) loss_fgl_dn_0: 0.9568 (0.9568) loss_ddf_dn_0: 0.4045 (0.4045) loss_vfl_dn_1: 0.4507 (0.4507) loss_bbox_dn_1: 0.0366 (0.0366) loss_giou_dn_1: 1.0491 (1.0491) loss_fgl_dn_1: 0.9760 (0.9760) loss_ddf_dn_1: 0.1088 (0.1088) loss_vfl_dn_2: 0.4561 (0.4561) loss_bbox_dn_2: 0.0348 (0.0348) loss_giou_dn_2: 1.0318 (1.0318) loss_fgl_dn_2: 0.9831 (0.9831) loss_ddf_dn_2: 0.0213 (0.0213) loss_vfl_dn_3: 0.4495 (0.4495) loss_bbox_dn_3: 0.0345 (0.0345) loss_giou_dn_3: 1.0300 (1.0300) loss_fgl_dn_3: 0.9840 (0.9840) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4492 (0.4492) loss_bbox_dn_4: 0.0345 (0.0345) loss_giou_dn_4: 1.0299 (1.0299) loss_fgl_dn_4: 0.9842 (0.9842) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4482 (0.4482) loss_bbox_dn_5: 0.0345 (0.0345) loss_giou_dn_5: 1.0299 (1.0299) loss_fgl_dn_5: 0.9843 (0.9843) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4246 (0.4246) loss_bbox_dn_pre: 0.0436 (0.0436) loss_giou_dn_pre: 1.1467 (1.1467) time: 1.7788 data: 0.3355 max mem: 31828\n", + "Epoch: [78] [83/84] eta: 0:00:00 lr: 0.000013 loss: 36.6044 (36.9079) loss_vfl: 0.1754 (0.1837) loss_bbox: 0.1799 (0.2005) loss_giou: 1.5977 (1.6300) loss_fgl: 0.5458 (0.5485) loss_vfl_aux_0: 0.1870 (0.1974) loss_bbox_aux_0: 0.1785 (0.2047) loss_giou_aux_0: 1.6086 (1.6430) loss_fgl_aux_0: 0.5501 (0.5510) loss_ddf_aux_0: 0.1317 (0.1949) loss_vfl_aux_1: 0.1886 (0.1975) loss_bbox_aux_1: 0.1788 (0.2016) loss_giou_aux_1: 1.6009 (1.6317) loss_fgl_aux_1: 0.5462 (0.5485) loss_ddf_aux_1: 0.0128 (0.0312) loss_vfl_aux_2: 0.1853 (0.1946) loss_bbox_aux_2: 0.1792 (0.2005) loss_giou_aux_2: 1.5984 (1.6306) loss_fgl_aux_2: 0.5463 (0.5485) loss_ddf_aux_2: 0.0024 (0.0041) loss_vfl_aux_3: 0.1791 (0.1882) loss_bbox_aux_3: 0.1793 (0.2003) loss_giou_aux_3: 1.5979 (1.6303) loss_fgl_aux_3: 0.5464 (0.5486) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1759 (0.1844) loss_bbox_aux_4: 0.1796 (0.2004) loss_giou_aux_4: 1.5978 (1.6301) loss_fgl_aux_4: 0.5461 (0.5486) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1842 (0.1950) loss_bbox_pre: 0.1813 (0.2077) loss_giou_pre: 1.6030 (1.6385) loss_vfl_enc_0: 0.1908 (0.2010) loss_bbox_enc_0: 0.2108 (0.2292) loss_giou_enc_0: 1.6404 (1.6788) loss_vfl_dn_0: 0.4480 (0.4421) loss_bbox_dn_0: 0.0399 (0.0442) loss_giou_dn_0: 1.0796 (1.0918) loss_fgl_dn_0: 0.9858 (0.9838) loss_ddf_dn_0: 0.3319 (0.4050) loss_vfl_dn_1: 0.4690 (0.4693) loss_bbox_dn_1: 0.0319 (0.0350) loss_giou_dn_1: 1.0004 (1.0023) loss_fgl_dn_1: 0.9976 (1.0006) loss_ddf_dn_1: 0.0299 (0.0619) loss_vfl_dn_2: 0.4670 (0.4645) loss_bbox_dn_2: 0.0311 (0.0340) loss_giou_dn_2: 0.9912 (0.9927) loss_fgl_dn_2: 1.0008 (1.0038) loss_ddf_dn_2: 0.0035 (0.0073) loss_vfl_dn_3: 0.4612 (0.4603) loss_bbox_dn_3: 0.0311 (0.0337) loss_giou_dn_3: 0.9908 (0.9917) loss_fgl_dn_3: 1.0010 (1.0044) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4602 (0.4587) loss_bbox_dn_4: 0.0311 (0.0337) loss_giou_dn_4: 0.9906 (0.9916) loss_fgl_dn_4: 1.0010 (1.0044) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4600 (0.4587) loss_bbox_dn_5: 0.0312 (0.0337) loss_giou_dn_5: 0.9907 (0.9916) loss_fgl_dn_5: 1.0009 (1.0044) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4468 (0.4414) loss_bbox_dn_pre: 0.0398 (0.0444) loss_giou_dn_pre: 1.0807 (1.0921) time: 0.9186 data: 0.0171 max mem: 32919\n", + "Epoch: [78] Total time: 0:01:17 (0.9271 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 36.6044 (36.9079) loss_vfl: 0.1754 (0.1837) loss_bbox: 0.1799 (0.2005) loss_giou: 1.5977 (1.6300) loss_fgl: 0.5458 (0.5485) loss_vfl_aux_0: 0.1870 (0.1974) loss_bbox_aux_0: 0.1785 (0.2047) loss_giou_aux_0: 1.6086 (1.6430) loss_fgl_aux_0: 0.5501 (0.5510) loss_ddf_aux_0: 0.1317 (0.1949) loss_vfl_aux_1: 0.1886 (0.1975) loss_bbox_aux_1: 0.1788 (0.2016) loss_giou_aux_1: 1.6009 (1.6317) loss_fgl_aux_1: 0.5462 (0.5485) loss_ddf_aux_1: 0.0128 (0.0312) loss_vfl_aux_2: 0.1853 (0.1946) loss_bbox_aux_2: 0.1792 (0.2005) loss_giou_aux_2: 1.5984 (1.6306) loss_fgl_aux_2: 0.5463 (0.5485) loss_ddf_aux_2: 0.0024 (0.0041) loss_vfl_aux_3: 0.1791 (0.1882) loss_bbox_aux_3: 0.1793 (0.2003) loss_giou_aux_3: 1.5979 (1.6303) loss_fgl_aux_3: 0.5464 (0.5486) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1759 (0.1844) loss_bbox_aux_4: 0.1796 (0.2004) loss_giou_aux_4: 1.5978 (1.6301) loss_fgl_aux_4: 0.5461 (0.5486) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1842 (0.1950) loss_bbox_pre: 0.1813 (0.2077) loss_giou_pre: 1.6030 (1.6385) loss_vfl_enc_0: 0.1908 (0.2010) loss_bbox_enc_0: 0.2108 (0.2292) loss_giou_enc_0: 1.6404 (1.6788) loss_vfl_dn_0: 0.4480 (0.4421) loss_bbox_dn_0: 0.0399 (0.0442) loss_giou_dn_0: 1.0796 (1.0918) loss_fgl_dn_0: 0.9858 (0.9838) loss_ddf_dn_0: 0.3319 (0.4050) loss_vfl_dn_1: 0.4690 (0.4693) loss_bbox_dn_1: 0.0319 (0.0350) loss_giou_dn_1: 1.0004 (1.0023) loss_fgl_dn_1: 0.9976 (1.0006) loss_ddf_dn_1: 0.0299 (0.0619) loss_vfl_dn_2: 0.4670 (0.4645) loss_bbox_dn_2: 0.0311 (0.0340) loss_giou_dn_2: 0.9912 (0.9927) loss_fgl_dn_2: 1.0008 (1.0038) loss_ddf_dn_2: 0.0035 (0.0073) loss_vfl_dn_3: 0.4612 (0.4603) loss_bbox_dn_3: 0.0311 (0.0337) loss_giou_dn_3: 0.9908 (0.9917) loss_fgl_dn_3: 1.0010 (1.0044) loss_ddf_dn_3: 0.0004 (0.0004) loss_vfl_dn_4: 0.4602 (0.4587) loss_bbox_dn_4: 0.0311 (0.0337) loss_giou_dn_4: 0.9906 (0.9916) loss_fgl_dn_4: 1.0010 (1.0044) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4600 (0.4587) loss_bbox_dn_5: 0.0312 (0.0337) loss_giou_dn_5: 0.9907 (0.9916) loss_fgl_dn_5: 1.0009 (1.0044) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4468 (0.4414) loss_bbox_dn_pre: 0.0398 (0.0444) loss_giou_dn_pre: 1.0807 (1.0921)\n", + "Test: [0/4] eta: 0:00:02 time: 0.7423 data: 0.5002 max mem: 32919\n", + "Test: [3/4] eta: 0:00:00 time: 0.3998 data: 0.1686 max mem: 32919\n", + "Test: Total time: 0:00:01 (0.4151 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.048\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.102\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.027\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.039\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.232\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.305\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.010\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.062\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.083\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.076\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.323\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.525\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.167\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.054\n", + "best_stat: {'epoch': 72, 'coco_eval_bbox': 0.05215868535188683}\n", + "Load last_epoch\n", + "Load model.state_dict\n", + "Load criterion.state_dict\n", + "Load postprocessor.state_dict\n", + "Load ema.state_dict\n", + "Load scaler.state_dict\n", + "Load optimizer.state_dict\n", + "Load lr_scheduler.state_dict\n", + "Load lr_warmup_scheduler.state_dict\n", + "Refresh EMA at epoch 78 with decay 0.9996\n", + "Epoch: [79] [ 0/84] eta: 0:02:30 lr: 0.000013 loss: 37.7048 (37.7048) loss_vfl: 0.1086 (0.1086) loss_bbox: 0.2490 (0.2490) loss_giou: 1.9012 (1.9012) loss_fgl: 0.4019 (0.4019) loss_vfl_aux_0: 0.1133 (0.1133) loss_bbox_aux_0: 0.2547 (0.2547) loss_giou_aux_0: 1.9058 (1.9058) loss_fgl_aux_0: 0.4012 (0.4012) loss_ddf_aux_0: 0.0590 (0.0590) loss_vfl_aux_1: 0.1112 (0.1112) loss_bbox_aux_1: 0.2497 (0.2497) loss_giou_aux_1: 1.9011 (1.9011) loss_fgl_aux_1: 0.4015 (0.4015) loss_ddf_aux_1: 0.0088 (0.0088) loss_vfl_aux_2: 0.1130 (0.1130) loss_bbox_aux_2: 0.2496 (0.2496) loss_giou_aux_2: 1.9009 (1.9009) loss_fgl_aux_2: 0.4016 (0.4016) loss_ddf_aux_2: 0.0009 (0.0009) loss_vfl_aux_3: 0.1111 (0.1111) loss_bbox_aux_3: 0.2493 (0.2493) loss_giou_aux_3: 1.9011 (1.9011) loss_fgl_aux_3: 0.4016 (0.4016) loss_ddf_aux_3: 0.0001 (0.0001) loss_vfl_aux_4: 0.1097 (0.1097) loss_bbox_aux_4: 0.2490 (0.2490) loss_giou_aux_4: 1.9012 (1.9012) loss_fgl_aux_4: 0.4019 (0.4019) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1105 (0.1105) loss_bbox_pre: 0.2599 (0.2599) loss_giou_pre: 1.9022 (1.9022) loss_vfl_enc_0: 0.1039 (0.1039) loss_bbox_enc_0: 0.2960 (0.2960) loss_giou_enc_0: 1.9371 (1.9371) loss_vfl_dn_0: 0.4253 (0.4253) loss_bbox_dn_0: 0.0362 (0.0362) loss_giou_dn_0: 1.1491 (1.1491) loss_fgl_dn_0: 0.9448 (0.9448) loss_ddf_dn_0: 0.2800 (0.2800) loss_vfl_dn_1: 0.4541 (0.4541) loss_bbox_dn_1: 0.0299 (0.0299) loss_giou_dn_1: 1.0674 (1.0674) loss_fgl_dn_1: 0.9689 (0.9689) loss_ddf_dn_1: 0.0278 (0.0278) loss_vfl_dn_2: 0.4519 (0.4519) loss_bbox_dn_2: 0.0296 (0.0296) loss_giou_dn_2: 1.0597 (1.0597) loss_fgl_dn_2: 0.9715 (0.9715) loss_ddf_dn_2: 0.0025 (0.0025) loss_vfl_dn_3: 0.4514 (0.4514) loss_bbox_dn_3: 0.0295 (0.0295) loss_giou_dn_3: 1.0594 (1.0594) loss_fgl_dn_3: 0.9717 (0.9717) loss_ddf_dn_3: 0.0003 (0.0003) loss_vfl_dn_4: 0.4480 (0.4480) loss_bbox_dn_4: 0.0295 (0.0295) loss_giou_dn_4: 1.0594 (1.0594) loss_fgl_dn_4: 0.9718 (0.9718) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4470 (0.4470) loss_bbox_dn_5: 0.0295 (0.0295) loss_giou_dn_5: 1.0594 (1.0594) loss_fgl_dn_5: 0.9718 (0.9718) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4243 (0.4243) loss_bbox_dn_pre: 0.0360 (0.0360) loss_giou_dn_pre: 1.1489 (1.1489) time: 1.7894 data: 0.3276 max mem: 32919\n", + "Epoch: [79] [83/84] eta: 0:00:00 lr: 0.000013 loss: 36.9421 (37.0464) loss_vfl: 0.1910 (0.1762) loss_bbox: 0.2145 (0.2115) loss_giou: 1.6483 (1.6684) loss_fgl: 0.5111 (0.5266) loss_vfl_aux_0: 0.2013 (0.1891) loss_bbox_aux_0: 0.2144 (0.2163) loss_giou_aux_0: 1.6693 (1.6808) loss_fgl_aux_0: 0.5140 (0.5289) loss_ddf_aux_0: 0.1965 (0.1723) loss_vfl_aux_1: 0.2009 (0.1889) loss_bbox_aux_1: 0.2151 (0.2129) loss_giou_aux_1: 1.6512 (1.6698) loss_fgl_aux_1: 0.5101 (0.5266) loss_ddf_aux_1: 0.0325 (0.0262) loss_vfl_aux_2: 0.1960 (0.1861) loss_bbox_aux_2: 0.2146 (0.2118) loss_giou_aux_2: 1.6482 (1.6684) loss_fgl_aux_2: 0.5105 (0.5264) loss_ddf_aux_2: 0.0048 (0.0038) loss_vfl_aux_3: 0.1951 (0.1804) loss_bbox_aux_3: 0.2146 (0.2115) loss_giou_aux_3: 1.6484 (1.6684) loss_fgl_aux_3: 0.5111 (0.5266) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1902 (0.1769) loss_bbox_aux_4: 0.2144 (0.2114) loss_giou_aux_4: 1.6484 (1.6685) loss_fgl_aux_4: 0.5111 (0.5267) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1985 (0.1865) loss_bbox_pre: 0.2199 (0.2192) loss_giou_pre: 1.6664 (1.6762) loss_vfl_enc_0: 0.2075 (0.1914) loss_bbox_enc_0: 0.2419 (0.2424) loss_giou_enc_0: 1.7115 (1.7217) loss_vfl_dn_0: 0.4365 (0.4330) loss_bbox_dn_0: 0.0470 (0.0454) loss_giou_dn_0: 1.1082 (1.1160) loss_fgl_dn_0: 0.9730 (0.9663) loss_ddf_dn_0: 0.3890 (0.3810) loss_vfl_dn_1: 0.4683 (0.4679) loss_bbox_dn_1: 0.0360 (0.0357) loss_giou_dn_1: 1.0003 (1.0140) loss_fgl_dn_1: 0.9928 (0.9898) loss_ddf_dn_1: 0.0388 (0.0389) loss_vfl_dn_2: 0.4609 (0.4626) loss_bbox_dn_2: 0.0350 (0.0347) loss_giou_dn_2: 0.9909 (1.0059) loss_fgl_dn_2: 0.9942 (0.9913) loss_ddf_dn_2: 0.0039 (0.0036) loss_vfl_dn_3: 0.4568 (0.4590) loss_bbox_dn_3: 0.0346 (0.0346) loss_giou_dn_3: 0.9896 (1.0052) loss_fgl_dn_3: 0.9945 (0.9915) loss_ddf_dn_3: 0.0004 (0.0003) loss_vfl_dn_4: 0.4543 (0.4571) loss_bbox_dn_4: 0.0346 (0.0345) loss_giou_dn_4: 0.9895 (1.0052) loss_fgl_dn_4: 0.9944 (0.9915) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4539 (0.4572) loss_bbox_dn_5: 0.0346 (0.0345) loss_giou_dn_5: 0.9895 (1.0052) loss_fgl_dn_5: 0.9943 (0.9915) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4358 (0.4320) loss_bbox_dn_pre: 0.0472 (0.0456) loss_giou_dn_pre: 1.1078 (1.1161) time: 0.8736 data: 0.0172 max mem: 32919\n", + "Epoch: [79] Total time: 0:01:19 (0.9426 s / it)\n", + "Averaged stats: lr: 0.000013 loss: 36.9421 (37.0464) loss_vfl: 0.1910 (0.1762) loss_bbox: 0.2145 (0.2115) loss_giou: 1.6483 (1.6684) loss_fgl: 0.5111 (0.5266) loss_vfl_aux_0: 0.2013 (0.1891) loss_bbox_aux_0: 0.2144 (0.2163) loss_giou_aux_0: 1.6693 (1.6808) loss_fgl_aux_0: 0.5140 (0.5289) loss_ddf_aux_0: 0.1965 (0.1723) loss_vfl_aux_1: 0.2009 (0.1889) loss_bbox_aux_1: 0.2151 (0.2129) loss_giou_aux_1: 1.6512 (1.6698) loss_fgl_aux_1: 0.5101 (0.5266) loss_ddf_aux_1: 0.0325 (0.0262) loss_vfl_aux_2: 0.1960 (0.1861) loss_bbox_aux_2: 0.2146 (0.2118) loss_giou_aux_2: 1.6482 (1.6684) loss_fgl_aux_2: 0.5105 (0.5264) loss_ddf_aux_2: 0.0048 (0.0038) loss_vfl_aux_3: 0.1951 (0.1804) loss_bbox_aux_3: 0.2146 (0.2115) loss_giou_aux_3: 1.6484 (1.6684) loss_fgl_aux_3: 0.5111 (0.5266) loss_ddf_aux_3: 0.0003 (0.0003) loss_vfl_aux_4: 0.1902 (0.1769) loss_bbox_aux_4: 0.2144 (0.2114) loss_giou_aux_4: 1.6484 (1.6685) loss_fgl_aux_4: 0.5111 (0.5267) loss_ddf_aux_4: 0.0001 (0.0001) loss_vfl_pre: 0.1985 (0.1865) loss_bbox_pre: 0.2199 (0.2192) loss_giou_pre: 1.6664 (1.6762) loss_vfl_enc_0: 0.2075 (0.1914) loss_bbox_enc_0: 0.2419 (0.2424) loss_giou_enc_0: 1.7115 (1.7217) loss_vfl_dn_0: 0.4365 (0.4330) loss_bbox_dn_0: 0.0470 (0.0454) loss_giou_dn_0: 1.1082 (1.1160) loss_fgl_dn_0: 0.9730 (0.9663) loss_ddf_dn_0: 0.3890 (0.3810) loss_vfl_dn_1: 0.4683 (0.4679) loss_bbox_dn_1: 0.0360 (0.0357) loss_giou_dn_1: 1.0003 (1.0140) loss_fgl_dn_1: 0.9928 (0.9898) loss_ddf_dn_1: 0.0388 (0.0389) loss_vfl_dn_2: 0.4609 (0.4626) loss_bbox_dn_2: 0.0350 (0.0347) loss_giou_dn_2: 0.9909 (1.0059) loss_fgl_dn_2: 0.9942 (0.9913) loss_ddf_dn_2: 0.0039 (0.0036) loss_vfl_dn_3: 0.4568 (0.4590) loss_bbox_dn_3: 0.0346 (0.0346) loss_giou_dn_3: 0.9896 (1.0052) loss_fgl_dn_3: 0.9945 (0.9915) loss_ddf_dn_3: 0.0004 (0.0003) loss_vfl_dn_4: 0.4543 (0.4571) loss_bbox_dn_4: 0.0346 (0.0345) loss_giou_dn_4: 0.9895 (1.0052) loss_fgl_dn_4: 0.9944 (0.9915) loss_ddf_dn_4: 0.0002 (0.0002) loss_vfl_dn_5: 0.4539 (0.4572) loss_bbox_dn_5: 0.0346 (0.0345) loss_giou_dn_5: 0.9895 (1.0052) loss_fgl_dn_5: 0.9943 (0.9915) loss_ddf_dn_5: 0.0000 (0.0000) loss_vfl_dn_pre: 0.4358 (0.4320) loss_bbox_dn_pre: 0.0472 (0.0456) loss_giou_dn_pre: 1.1078 (1.1161)\n", + "Test: [0/4] eta: 0:00:03 time: 0.7636 data: 0.5302 max mem: 32919\n", + "Test: [3/4] eta: 0:00:00 time: 0.4043 data: 0.1767 max mem: 32919\n", + "Test: Total time: 0:00:01 (0.4199 s / it)\n", + "Averaged stats: \n", + "Accumulating evaluation results...\n", + "COCOeval_opt.accumulate() finished...\n", + "DONE (t=0.06s).\n", + "IoU metric: bbox\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.052\n", + " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.110\n", + " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.026\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.043\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.238\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.216\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.023\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.077\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.098\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.091\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.313\n", + " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.525\n", + " Average Recall (AR) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.193\n", + " Average Recall (AR) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.075\n", + "best_stat: {'epoch': 72, 'coco_eval_bbox': 0.05215868535188683}\n", + "Training time 1:45:35\n" + ] + } + ], + "source": [ + "!CUDA_VISIBLE_DEVICES=0 torchrun --master_port=7777 --nproc_per_node=1 D-FINE/train.py -c D-FINE/configs/dfine/custom/dfine_hgnetv2_l_custom.yml --use-amp --seed=0" + ] + }, + { + "cell_type": "code", + "source": [ + "%tensorboard --logdir /content/output/dfine_hgnetv2_l_custom/summary" + ], + "metadata": { + "colab": { + "resources": { + "https://localhost:6007/?tensorboardColab=true": { + "data": "PCFkb2N0eXBlIGh0bWw+PG1ldGEgbmFtZT0idGItcmVsYXRpdmUtcm9vdCIgY29udGVudD0iLi8iPjwhZG9jdHlwZSBodG1sPjwhLS0KQGxpY2Vuc2UKQ29weXJpZ2h0IDIwMTkgVGhlIFRlbnNvckZsb3cgQXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwp5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQpkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLApXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZApsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLS0+PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmLTgiPgo8dGl0bGU+VGVuc29yQm9hcmQ8L3RpdGxlPgo8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBTVFBQUFERUNBWUFBQURBcG81ckFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUFBbHdTRmx6QUFCYWJnQUFXbTRCeFdzak9BQUFBQmwwUlZoMFUyOW1kSGRoY21VQWQzZDNMbWx1YTNOallYQmxMbTl5WjV2dVBCb0FBQmwwU1VSQlZIaWM3WjE1ZUZUVjNjYy92NXNGQ1ZSeHFWdHB0VlcyVmx4ZjYxcXRpcTBMOUdsOU5YVUJGRXBGUlRJaGhCQURDVGRBTUFFa0NZc0s3cUI5K2tENzJxZkJXaXZxVzdWYTY3NGlyZTlyYXhYMWJaVldaVEhML040LzVnNEdTR0R1ekwxejc1MDVuMzg0ek13NTU4dk0vWEsyM3prSERJR2ppemhQRjNGZTBEb01JRUVMeUdkMFBvT3dhQUF1Y1Y1YWgwVzVWUEI2a0xyeUdXT0lBRkNiL3ZTakVxZ0crdXp3S3dnZHdDMTBVQ2ZWL0RzWWhmbUxNVVFXVVJ1TEVrWUQ4eEVPMnY3R2pvWndQc3hIV014aElFdWxsSzVzNnN4bmpDR3loQzdnSkpSVzRDU2daeFAwbkg0Smk1aVU4N2pmR2czR0VMNmpUUXdFNWdHamtXN2ZkK3FHU0xLV0lzcGtNbS83SU5QZ1lBemhFMnBUUWgrcXNLZ0MrZ0x1VGJCcmVpdXdtSFlhWkRxZmVpcllBQmhEZUk0cVFpTVhBd3NRRHZQQUJEMmxOeUxVczRuYnhTYWV1V3BERW1NSUQ5RWJPUUZvUlRodCs0ditHQ0w1NTdOQXVjUjRLaTNCaGwwd2h2QUFiZUFRTEd4Z0FtRDVhb0x1NmNTZml2QUxsRXFKOFk1TDZZYWRNSWJJQUxVcHBvaHJFV1lqN0wzOWpld2FJcG5lakxLUXZXbVVjV3hMNlI5ZzJBVmppRFRSdVl6Q29nWDRCcEE5RTNSUDkveiszNEdaVXNiS1hxUWJkb014aEV1MGdhTVJtbEhPOXZBQi82T1RPdGtEUXlUU3lpTW81UkxqdFo3K0hZYWVzWUlXRUJYVVpqK2RTeXZ3UE1yWkhoVzdFV0VpbjNFYVV6a1ZvUlQ0bXljbEMrZGc4Ykl1WmFYZXdvR2VsSmtIbUJaaUQ2aE5JVVdNUjJrQUR2Q29WZGlLc0pqNHJ1c0p1cHdTUHFNS3FFS2M5WXZleWttOXprMUFFd2ZTTEtXMFkrZ1ZZNGpkb1BXY2cwVUx3bEhiWDh6Y0VHc1J5bVRhN2xlY3RZbUJGRGtyM095d3hwMk9JWkxwRFFoVDVUb2UyRjNkK1l3eFJBL29IQVpCdDdCc2IxcUZGeW1nWENyZHhTVHBJczRFV2hDTzNhWE05TFdzbzRDWVhNTWJiclRrQThZUTNWQ2IvZ2lWeUU1aDJaa1o0aU9FT1J5ZWZ0U3EybGdNWURUS2ZPQWdqM1Ixb054Q0lYVXkwWVNaSnpHR3dIbmdMT2VCNnlrc083MEhML0hBaVhmN0duUVovV252d2JEcGF3U2NNUFA5VEpnNUdFT2dzMU1JeTNiL3NLMGpUa3hxL09tU2FDdURVQnFRN1R2dHZPald2WWhRTHRma2Q1aDUzaHBDYlJkaDJhay9WQnRRS3FTRzMzZ3F0aGUwbFhPQUZ1QW9EOWRFMWxKQW1mdzBQOFBNODg0UWFsTUN6clJtcW1IWmUzNlFOaUUwOFRuTlltZDNXbE50Q3RtWDhZZ3pMZHk3UmpmcFJKaDVFUTN5ay93S004OGJReWdJZFZ5TXhRTFVaVmgyNys5M290eUpNRk5xK0lmWG10MmdpOWlQUW1ZQjF5RVVibjhqTTNPOGgxTERSRmFKb0o0S0RpbDVZUWl0NVFRa2c3RHNubDk3Rkl0eXFlWlZUOFZtaUM1aEtFb3o0aHhyNDAxWDZsbVVtRnpEMHg1S0RTVTViUWl0NFJDS3NORU13N0ozZk8wdGxCcVp5UnFQNVhxS0xtWVVRZ3ZpQkI5Q3B1WlE0RjQ2cUpKSmZPQ3AyQkNSazRaUW0ySTZQUXpMVHZ5WkNLL2VoeHVsak04OWx1d0xhbFBNL3M3M0FIdDcxRnBzUmxoSVlXNkdtZWVjSVhTRzUySFpjWVQ3RUtiSkRENzBWbTEyME9VY1FnYzI0clNVNE1YMzhoWkNqVXdJZDB2cGxwd3hoTjdBVUFwb0JzN3pjQXJ5R1pTWTFQR01oMUlEUTI5MnRyZ3FwM24ySFZrOFNwd3A4bE5lOFZCcVlFVGVFR3F6SHgzTVFyZ09uTm1Wekgvc2Q0RVoxT2JlN0lvcXdpM09JUWh3R09ERjk5V0pPTE50NDRPZGJjdVV5QnBDYlFycFlEeDRHcGE5QlZqQWwyaVNDclo2S0RkMDZISks2S1FLU1NITVBOVzB4U2JpTkxGM2RNUE1JMmtJclhGV2FMMEx5MWJnRnhRd1RXWjZ0RUVuSXVqaUZNTE0zYVlUWWVZVk1pNDdLL1plRWlsRDZFd0dFZmM4TFBzNUxNcWxqajk0cHpSNjZNMmM2VXhHN0JwbTdqYjl4V3ZyS0tSTXhyTGVPNlgrRWdsRHFPMUVlU3JWQ0gyMnY1R1pJVFlDOVdBTyswcWlOaFlITzRjeGR3OHpoMHpXYlJKUnZ4M1JDRE1QdFNIVXhtSXJvN0djSHdpOGFCWGFnVnNwWWFZNURySm5kQm45c2FqRWNzTE1JUk5ESkVtRW1mY05kNWg1YUEyaE4zUUx5L1p1R25VdFFreHMvdGREcVRtTDNzb2d4T21pWm02SVpQb0ZsSElaeHhOZWF2V0swQmxDcXhpSTFXMlFCMTYwQ2kraGxNc2NmdStwMkR4QlZ6RENpWTlLVEdKa1pvaGtlaTF4SnNzNC91cWwxa3dKalNIVXBvUXR6alFnOVBXb1ZVaHMzMXpQVWxrVDNtWTZDcWhOSVY5eFRoOFJKOHdjTWpFRUpLYTVsOUNYdVZMS1o5NHFUby9BRGFFZ1RPTml4RmtvY3YrbDlwUk9YRXZWVHAwMGhYOGdGeVgwZHZaRG1RVk1BZ295TkVReS9SNUNEYU9EWHdnTjFCQTZsUk93ZWduTFR0OFE2eERLWlk2NXVOQlA5RGFHQVl1UWJyZW5adjdiL1FtTG1JemVmcEpoMWduRUVGcnVoR1h2N3JSczkxL3FCdUpNbFhubXpLRnNvcmN6Q3B4Z1NtOWFkMFdjTVBOeDJROHp6Nm9obk83Uk5KUmFoUDQ5cW5EL3BYNE0xRlBFeldMVDZhMWlReXJvWGV4Rm5BcmdCcUMvUitPL1Q3Q1lReEdMc3hrR2t2VVdRaXM0emprTjc0d2VWYVJ1aUVSWWRoR1ZZdk4vZm1nMXVFT1hjd2lGUG9XWlg1R2RNUFBBeGhCYXlTaUVWdURycmcyaFBJb3dSZWJsUnNoeHJxRjNjd0pkenRqUXV6V2tSMUhLWmJTL1czYURIVlRiRkxPWmF4SG1BRi9hUVZIUFg4eGJXTlJJUTI1dFNzbEZWQkh1OWlITUhPNmtpSmxTNmsrWWVlRFRyZ0JheGFIQUxHQUMwbU5UbTlpMldFeWoyTG0zYlRHWDBlV1VVSnppYWVhcHB6ZWgxSE1veStRc2I4ZU5vVEJFRXEzaVA1eHUxS21Pc3NURzlpNnFaRUh1Ym16UEIvUTJCbExNUE5URE1ITjRFNHNLdVpRSHZkSVpLa09BTXhNMW5URUlGMk5oeXp4ZUNGcVR3VHYwTHI3cmhKa2ZzLzNGek0xeFAzRXE1WXJNWTlSQ1p3aEQ3cU0yRm9jN1llYVNRWmo1anVrT0xHNmhnMW9aelNmcGFqT0dNQVNHcnFZL1c3dWRaZzZadHhiQyt5ZzJGbmVrRTJadURHRUlITDJQUVhTbEVXYSt1elE4ajBXNWxQS2tHeTNHRUliUW9QZHdQc0lpaEtGQXBvYUF4S1gyRStUSDNKbXFCdGUza0dvNUU3U2NIN3JOWnpEc0NibVNCOW5LMGNCRTRKOWVGQWtjNmlhRCsydDVsU05SN3RjWTYvUjZ4OGtHZzBmSVJEcGtEQ3Zvd3hCZ01XUjNIMHM2aGloeVV1ZFF3Q3NhbzFXdjZ4YW9aekI0Z0pUeXNZd21ScHpod0crelZhOTdRMWpiRFFGUUJKUlJ4SHFOTWRZelZRYURnNHhsdll6bWZJUWZnUDk3NFROcElib3pFTGhIeTNqWWRLTU1maUNYMDBZUnc0QnlTSCtkWVUrNE53UTlHaUtCTUlJQ1h0WXBOS3JOWHVuTE1oaDJSVXBwbHl0b1JSZ0cvcHlsNWEwaEVoU2pUT2Rmdks0eFJxWWp5bURZSFhJWkc4R2Z2ZGQrR0NMSk54RGFkQXB0V3NuWDA2akhZTWc2WG8waGRzZEl1bmhkSzdCTk44b1FkaktkWlVxVnZpaXorSVRYdEpJTDA4aHZNR1NGYkxRUTNUbUNPR3UxZ2pZdDUvQU15akVZZk1IUE1jVHVHRWtCYjJpbDZVWVp3a1ZRaG9Ca04rcFRYdFZwWE9CUm1RWkRSZ1JwaUNSSG9qeWdVMm5UYXRPTk1nUkx0c2NRdlNPTXBKUFh0UXBiSjNlN0ZNVmd5Q0x1RFNFK0dTSkJDY29zK3ZDYVR1dDJacWpCa0NYQzBHWGFGZUZJNEVHdG9rMm5PbWY2R0F4WklKeUcrSUxFYkpUcFJobXlSTmdOQVZBQ3pLS0VWM1U2Mzg5eTNZWThJd3FHU0RJSStLMVcwNmJUK1ZwQUdndzVUcFFNa1VBWmliQmVxN0hWcGpoUUxZYWNJM3FHU0pEb1JtM2pWYTNtZTBHTE1lUU9VVFZFa3NFSUQra050T2tNdmhxMEdFUDBpYm9oa293a3pucXRNZDBvUTJia2lpRUErZ0d6YU9jVnJlSGNvTVVZb29rclEyamk0S2RDbjdSNHhSRGdkenJEZEtNTTduSFhRbHdkZWpOMFp5U3dYbWVhYmxSZUUzZDNHSUhiTGxOWXUwdTkwUTlsRmwyOHJETVpFYlFZUTFiWmpGTFBOaGE1eWVUT0VQdEd6aEFKbEtIQTczUW1LN1dHZzRLV1kvQVZCVmJSd1NDNURGdkd1YnVDelowaE9pTnFpQVFDaktHQURUcVRtTnFSNnY0WlVrSDVFeGFueWFXTWxURzhuMDRSN2d6UkZXbERKTmtIb1lVdW50TmFUZ3Rhak1FVDNrVzRra3M1V1VwNU9wT0MzQm5DcjgxQndYQU13aE5hWjdwUmtVWFpBdFJUd0dDNWxKVWltUjllNXM0UThad3lCQ1M3VVlXOHFYWEU5QklLZ2haa1NCRmhGVVVNbHN1d3BaU3QzaFhyQXIyZW9SU3czbFdwMFVxL2hEQkpiSjdDa0plNGF5R0tjcTZGMkpsamdTZlZacVhhSEJpMEdFUDJ5ZWN4Uk0rbzA0MkNEVnBQVEZlYmJsUStZUXpST3dOUVdsalBzenFiVTRJV1k4Z091YjVTN1FYSG9meEI2MW1wOC9oeTBHSU0vbUphaU5SSWRLTTYyYUJ6VERjcWwzRm5DTW43SUxsOVVWcll3SjkwTGljSExjYmdQYWJMbEE3SzhTaFA2UnpUamNvMVRKY3BmUkxkcUM3VGpjb2xUQXVST2ZzaXRQQVhudEhabkJTMEdFTm11RE5FZXJjSDVRZktDVmc4cFhOWnFUWUhCQzNIa0I2bWhmQVdDMkVNUld6UUJtSnFwN1ZuUFZSb013T0MxcEFKdXBxRDNYemU3USsyNXowRXJxS2pjcGI5Z0JhS2VWSWJPU1pvTWVtZ1N6aFVsN0tjWXVZRXJTVWRkQlZEOUdjOFFBZFQzZVJ6TzZoMk4rMXF6SEVLU2xuUUl0eWdOc1c2aEJnV2J5SmNUWG9uc3dTRzNzZStlaCtOV0x3QzdtK21jcmRyVENsSyt5SGZNZDltNERHZ2pTNmVvSWpIMEJ6ZGt4Q25QV2dKcWFMTEdJWFNDdEc3VjF4dExJNWdOTEFBMGcvTWRMdU5NcE14eE5zb0R3TnIyWWVIeFA3aVFkRktLb0Q3TWlnN3ZBZ2RRVXZZRTdxTVk0blRnbkptMEZyU1FlL2pMT0swSUJ5ZGFWbnVER0ZSNUdKUFVoZUovUVZyRWRya0pwN3Y3WU95a0o5cEpaZEREdDVoTGVGdElYUXArd04xeEprRTBWdEgwWlY4RFl1NUtHTzg2cDY3N3pMdG5zMkkweFVxNU5leWdBOWNLTG1lTHI1TDRnUyszRUhEMTBMb2NvcG81enJpMUNQc0U3UWV0K2hLK2lGTUE2YWo3T1hsV05XTEx0UGJDQThqdTNhRjNDQ04vRldyYUVDWmwzZ2huVkpDU01nTW9Zc1p3ZWUwQU44S1dvdGJWQkh1WlF4S0U3aWJUazJWZEF6eFJWY29UcHNzN3IwcjVKb1NGckNaVWhJNzEzSURLeHlHMEtVTXBvdEZLQmRHOFQ4YnZZc1RXVVVyK0xzM3haMGh1cmliSXVaTE14LzdJVVpzT3JXUzZ4Q2VwUHQwWDIvN29LTkJvR01JYldZQVFqVmRUSUhvUlN2clBYd0Z1QkVZVFJaK2ZWZUdrS1c4NlplUTdYVXM1R21keG5MZ1dyL3J5Z29CZFpuVXhtSkE1dE9RUWFHcjZjdFd5b0Fad0pleVZXODRGMTIyVVkzdzNoNC9GNFhXSW9CWkpyMkpzOWlIRjRCN2lLSVo3bUlVVzNnRHBaRXNtZ0ZDYWdoWndpZEFoYnRNL21qSm1DeTJFSG9UWDlWbVZtTHhLRVF2WkVUdjVIaTlpOGNSZmcwY0hvU0cwSjV2S2syczFtbU1SaGpsUHJNUGd0SWxDNGJRQmZURFlockNkR0F2dit2ekdyMkgvZW1pRGdsK1BTUzBoZ0RBNG5xVXM0RCthWmNSdkRsODZ6S3BJaXppWW9TRkVMMnJpblU1UlJSekhWM2hXUThKWlpjcGlUVHhEa0s5ZHdWNlZsTHErRFR0cWdzNWtVVThDYXdtaW1hNGt4RVU4UkpLQzRURERKQmxRNmhOb2JwOUxQdlNBcnpvdVpqc21HTVR5cXRlRnFoTkhLb0xXWTd3UitCVUw4dk9Cbm9IUS9SMkhuRGkycjRadEo2ZDhkMFFPcGsrT29VUldrRXJuL0F1VTdqS1RYNng2VVM1bXNTQ29ELzRZUTdsQXl6T2tocmU4S3pJaFZ4RUFYK0c2SVZsQStqdGpBZGVROXlIWldjTFg3NVVuVUpmbmNJb25jSktDdmtRZUJnb0F3NUNhTllxQnJvcFQrYnpISEN6SDFwM3JjeVRVdDZtZ085SU5TOTdVdG9YSEVPMFk3MkdFZkp4cTJmaXRKd0JLT2NpakVMNUVkQy9sNGRySDdxNEJWek9IaWt6RUg0RTdzeVVFZW1aNHpVSytiNU1aNlBIYWd4WklLTVdRaWV4djhZWXF6SGFVRDRrTWNBYnc1NW5oVVpxQlQ5MlU1Zk01MU1rOUx2UEhxZUEwNDBab290clEraGtCbW9aVjJ1TU5ncDVuOFJxNkVqY3hza0lTN1hTM1NxcU5ISS95cTljMWVNVmUyNHQxbExDZVZMTnY3T2d4dUFUN2k1dUwrY2lMTjVCV0U3Q0JKbnNvRHVBT00ydWN5bVRJT0NIYm1kektQZnlaUzZTQ3U5dXNqRUVnOXNydGZyaDVaeU1jTGxPNVlldXNzeG5JOG9zenpSa2lzVVN1cmhTSm9ZanpOdVFHY0ZQM1FrM2F6WDd1c3JUbHlYQUgvMFJsRElLMU1zTXlzUW1IckFXZzBjRWJ3ZzRoRTZhM0dRUW16Z1dFeUd3LzVXN1VLNlJXdXlBNmpmNFJCZ01BVEJCcC9FOU54bGtIcThBUzN6U3N6dmFFUzZUT2xZRVVMZkJaOEppQ0NIT2NyVmRCdkgxb1JaNDJ4OUpQYklaWVpUTVpFMFc2elJra2JBWUFvVEQyY3hjVjFsc3RqZ2h3OW5nWXl4R1NDMi95MUo5aGdBSWp5RVNUTmJwbk80bWc4empRZUFYUHVsSjhnN0NxVEl6OElHOHdXZkNaZ2lMT0xlcjdYS1RTeWVUZ1gvNUk0bjFGSEM2MUxMQnAvSU5JU0pzaGdBWXdtWnEzV1J3RGtTYjZZT1c1eWppVEpuSjM5TXRRQnM0eWt0QkJuOEpveUVBcXJTYUUxemxLT1lXNENrUE5UekdYcHd0TmZ3ajNRTDBScVlqVkhxb3llQXpZVFZFSVhIdTBLdFREdzBSbXpnRlhJTTNheE8vQWk2UTZYeWFiZ0hhd0d6bjFBaERoQWlySVFDT1lRQlZiakxJSEY1RjBvaVAycEc3Z1V2RVpsczZtVlVSYmFBRmNkZnRNNFNETUJzQ29GYW51enlEZEFzMjhEOXAxU1kwaWMwNHNlbE1KN3V1cG9CNTNBN0UwcXJmRURoaE4wUWY0QTY5SlBXalNhU1pyVTVFYk9vSWlsSXBOdFZ1QlNiUjFSVHdaKzRDeHFkYmhpRjR3bTRJVUU3aTYweDJrMFhtOFJEQ3oxUDhlQmN3UVdaemszdHhDZFNtbUQrekJtRk11bVVZd2tINERRRWdOR2cxUjdyS0U2Y2MyTFNIVDMxT1lyeHdaN3JTMUthRVF0cUFINlZiaGlFOFJNTVFVSUp5bTVzamJHUWVIOEp1dTBEL3dtS0V6T2IrZEVYcEF2bzVabkFWbUdnSUwxRXhCTUIzcWVhbnJuSTBjQnZ3WkEvdkpJNklzWHQ4THlYVVpnRGJXQWVjblc0Wmh2QVJKVU9Bc2tCbjhOVlVQeTZKVFR3VFNIU05raVNPaUxGNUtXMFpOZ2RTd0g4REo2ZGJoaUdjUk1zUXNEZGQzT29tZzh4bEE3RFErZXZyeFBtTzJMeVZyZ0MxT1pnQ0hpR0NwMnNiOWt6VURBRndnVlp6aGFzY2hjeEZ1WnNDVHBlR0ZPNmQ2QVdkeTJGWVBBRW1QaWxYQ2ZVcGFydWhWV3RZNXd5Yzk0aXo2and1a3dyVlpqQngxa0hxWFRaRDlJaGlDd0d3UDhyaWJGV21jeGlHeFdNWU0rUThVVFVFS0tWNkF4ZjVYbzNOOGNSNUhEalU3N29Nd1JOZFF5UllwamI3K1ZXNHp1WkVoSWVCQS95cXd4QXVvbTZJZzltV2ZzakY3dERabklueUNQaG5PRVA0aUxvaFFMaEtxem5QeXlLMW52T0o4eUJadmdIVEVEelJOd1NBc0Z5cnZIbDQxZVlIS1BjRGZiMG96eEF0Y3NNUThEVUt1VEhUUXJTT3k0QmZrZ2c3TitRaHVXSUlnR3QxQm1la20xbHRya2E0bCtpdXpSZzhJSmNNWWFIY3BsUGNkM1cwamtuQXJlVFc5MkZJZzF4N0FBWlQ0dTRBWXExak9zSlNOQVEzV2hzQ0o5Y01BY3BVcmVYRWxENDZpM293SjJQa01HK2cvTkpOQm5lRzZPSnhKUFJubXhZUTV3NjFlNy9pUzBGMEZxMG9kZGtVWnNnYW00QnFDamxPUnJzN2Z0VFZBRktXOFRmZyt6cUZFY1JwQVpjblltU1A0YlJ6QTFDLzh4dHFZOUhKQ3BTZkJLREw0Qzl4NEQ2S21DcWw2UjB3bDFhWFNacFp4MWFPUXlrbjZQdmVla09vMFZxR2QzOUpMNkdBVHU1RWpCbHlEdUZSTEk2VEt4aWJyaGtnZ3pHRXJLQkRGdE5LSjBjQWkwbWNYaEVtaW9semo5cUpWbEJ0aWhuS2FvUXJneFptOEpTM0VFcmxDczZSeTNrbDA4SXlIbFRMTWo2U1ZtSUl3NEdITWkzUFk0NmpnM0tkVEI4NldRUCtSOGNhc3NabW9KNU9oc3NWM2wxZzQ5a2lsTFN3SGpoUFkxeUNNQjg0M0t1eU0wS1l6VDVjQkp3U3RCU0RKeWh3TDUxVXlUZys4THB3ejZkZHBaVTFER0FJUWpud2lkZmxwMEZmakJseWhXZFJUcE94alBYRERPRFRPb1RZdEVzenJSUXhERmdCNXRwYVEwYThoM0lsWXpoSnJ1UnBQeXZ5ZFdGTzVyTlJtcGtJbkFUOHdjKzZERG5KVnFDSnZneVZxMWdwZ3ZwZFlWWUMyYVNaNXhTK1F3VVhBd3VBdzdKUnJ5SFNyRVdaTEZmeDEyeFdtclhRRFFHVlJhemhNNzZKVUUvQy9RYkR6cnlBY29aY3hTZ1psMTB6UUFDeFRMS0NMYklRbXdJR0E2dkEvMmJRRUFrK0FzcnB4N2RsSEU4RUpTS3c0RDZaejd0eUUyT0JVeEJ6M1cwZTB3RXNwcDBqWkJ5dFVocnNBbS9nMGE2eWtHZm94Mm5PQ25KS0I0OFpjb1oxd0xFeW5waE1ERWNJVU9DR2dNU0ZpYktBbFNoSE9PT0x6L2VZeVJCbE5tQnhvWXpuWEJuUEcwR0w2VTRvREpGRUZySlo1bU5Ud0ZHSWQ4dnhodER3TWNway9zNVJNbzdmQkMybUowSzVmMWdhZVFzbzFXck9kc0xNaCs4cGp5SDh5SVRNRDRMd20xQzFFRHNqalR4S0NjY2pUSVQwUTNvTmhsUUp0U0VBeEtaVEdsbUJNQVNsQ1dnUFdwTWhkd205SVpKSUk1dGtQdFhFT1JyQzJmODBSSi9JR0NLSnpHZUROSEloY0M2RWE0YkNFSDBpWjRnazBzZzZQdUpZSjh3OEZIUFlodWdUV1VPQXM0MTFIcTNBRWM0RkttSGJ4bXFJR0pFMlJCSzVrWS9rUm1MRU9SRjRQR2c5aHVpU0U0WklJbzI4S1BNNEUvZ0I4SGJRZWd6Ukk2Y01rVVFhYUdNTDMwS3BCajROV284aE91U2tJUUNrbWEweWp5WUtHWXFhYmF5RzFNaFpReVFSbTQzU3dFU1VreENlQ2xwUHhQZ3Y0dHN2dmM4TGN0NFFTYVNCNTVqTjZRaWx3RHRCNndrNWJ3TG55eVQrVXlibjExZ3Nid3dCempiVzJheWhnR0Vrem4zZEZyU21rUEV4U2puL1pMaE00cmRCaXdtQ3ZESkVFckhaSXJPeHNSZ0VyQ0lMcHptRW5FNWdCVVVNa2NtMGlrMW4wSUtDSWk4TmtVUnMzcFhaaktXTHM0Q1hndFlUQ01vanhEbE9Kak5SSnZMUG9PVUVUVjRiSW9uTTRmY0lKK1RaTnRhL0lKUktHU01reG10Qml3a0x4aEFPWWhNWG01WEFrWkRUMjFnL1E2a0hoc3Rrc3l0eFo0d2hka0pzUGhNYm13S0dRMDQ5TUhGZ0ZjcVJFc09Xc3B3MWZFYUVjZ3RwR0pCYS9nS1VhajNuQU0xRWV4dnJNeWd4S2VlWm9JV0VIZE5DN0FHWnhTTW94ME1rdDdHK0MxeEpqRk9NR1ZMREdDSUZ4S1pUNmxoQm5LRWtia3NLKzdUa0ZxQ2VPSU9sUER1SEJPY0t4aEF1RUp1UHBZNFlCUXhIZVRCb1BUMmd3QnE2K0taTXdaWUtjMzZ1Vzh3WUlnMmtoamVCQzNRT0kwaTBHTU1DbGdUQzgwQk1wcGhyQnpMQnRCQVpJTFdzNDhzY0UvQnRyTzhqVE9UZmZOdVlJWE9NSVRKRUp0SWh0YlJpY1FTUzFXMnM3Y0JpaWhncVUxZ2h0Z2x2OXdKakNJK1FHajZTR21MQXQ4SDM0OXpYWWpGTXBoS1RzbERjNDVjem1ER0V4OGdNWGdETzBMbU13cUxWNCtMZlJEaGJwdktZeCtVYURQNmpOaVhheUJsQjZ6Q2t6djhEUWQ3UXJNYkxSMUFBQUFBQVNVVk9SSzVDWUlJPSI+CjxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFNUUFBQURFQ0FZQUFBREFwbzVyQUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQUFsd1NGbHpBQUJhYmdBQVdtNEJ4V3NqT0FBQUFCbDBSVmgwVTI5bWRIZGhjbVVBZDNkM0xtbHVhM05qWVhCbExtOXlaNXZ1UEJvQUFCbDBTVVJCVkhpYzdaMTVlRlRWM2NjL3Y1c0ZDVlJ4cVZ0cHRWVzJWbHhmNjFxdGlxMEw5R2w5TlhVQkZFcEZSVEloaEJBRENUZEFNQUVrQ1lzSzdxQjkra0Q3MnFmQldpdnFXN1ZhNjc0aXJlOXJheFgxYlpWV1pUSEwvTjQvNWc0R1NHRHV6TDF6NzUwNW4zODR6TXc1NTh2TS9YSzIzemtIRElHaml6aFBGM0ZlMERvTUlFRUx5R2QwUG9Pd2FBQXVjVjVhaDBXNVZQQjZrTHJ5R1dPSUFGQ2IvdlNqRXFnRyt1endLd2dkd0MxMFVDZlYvRHNZaGZtTE1VUVdVUnVMRWtZRDh4RU8ydjdHam9ad1BzeEhXTXhoSUV1bGxLNXM2c3huakNHeWhDN2dKSlJXNENTZ1p4UDBuSDRKaTVpVTg3amZHZzNHRUw2alRRd0U1Z0dqa1c3ZmQrcUdTTEtXSXNwa01tLzdJTlBnWUF6aEUycFRRaCtxc0tnQytnTHVUYkJyZWl1d21IWWFaRHFmZWlyWUFCaERlSTRxUWlNWEF3c1FEdlBBQkQybE55TFVzNG5ieFNhZXVXcERFbU1JRDlFYk9RRm9SVGh0KzR2K0dDTDU1N05BdWNSNEtpM0JobDB3aHZBQWJlQVFMR3hnQW1ENWFvTHU2Y1NmaXZBTGxFcUo4WTVMNllhZE1JYklBTFVwcG9ockVXWWo3TDM5amV3YUlwbmVqTEtRdldtVWNXeEw2UjlnMkFWamlEVFJ1WXpDb2dYNEJwQTlFM1JQOS96KzM0R1pVc2JLWHFRYmRvTXhoRXUwZ2FNUm1sSE85dkFCLzZPVE90a0RReVRTeWlNbzVSTGp0WjcrSFlhZXNZSVdFQlhVWmorZFN5dndQTXJaSGhXN0VXRWluM0VhVXprVm9SVDRteWNsQytkZzhiSXVaYVhld29HZWxKa0htQlppRDZoTklVV01SMmtBRHZDb1ZkaUtzSmo0cnVzSnVwd1NQcU1LcUVLYzlZdmV5a205emsxQUV3ZlNMS1cwWStnVlk0amRvUFdjZzBVTHdsSGJYOHpjRUdzUnltVGE3bGVjdFltQkZEa3IzT3l3eHAyT0laTHBEUWhUNVRvZTJGM2QrWXd4UkEvb0hBWkJ0N0JzYjFxRkZ5bWdYQ3JkeFNUcElzNEVXaENPM2FYTTlMV3NvNENZWE1NYmJyVGtBOFlRM1ZDYi9naVZ5RTVoMlprWjRpT0VPUnllZnRTcTJsZ01ZRFRLZk9BZ2ozUjFvTnhDSVhVeTBZU1pKekdHd0huZ0xPZUI2eWtzTzcwSEwvSEFpWGY3R25RWi9XbnZ3YkRwYXdTY01QUDlUSmc1R0VPZ3MxTUl5M2Ivc0swalRreHEvT21TYUN1RFVCcVE3VHZ0dk9qV3ZZaFFMdGZrZDVoNTNocENiUmRoMmFrL1ZCdFFLcVNHMzNncXRoZTBsWE9BRnVBb0Q5ZEUxbEpBbWZ3MFA4UE04ODRRYWxNQ3pyUm1xbUhaZTM2UU5pRTA4VG5OWW1kM1dsTnRDdG1YOFlnekxkeTdSamZwUkpoNUVRM3lrL3dLTTg4YlF5Z0lkVnlNeFFMVVpWaDI3Kzkzb3R5Sk1GTnErSWZYbXQyZ2k5aVBRbVlCMXlFVWJuOGpNM084aDFMRFJGYUpvSjRLRGlsNVlRaXQ1UVFrZzdEc25sOTdGSXR5cWVaVlQ4Vm1pQzVoS0VvejRoeHI0MDFYNmxtVW1GekQweDVLRFNVNWJRaXQ0UkNLc05FTXc3SjNmTzB0bEJxWnlScVA1WHFLTG1ZVVFndmlCQjlDcHVaUTRGNDZxSkpKZk9DcDJCQ1JrNFpRbTJJNlBRekxUdnlaQ0svZWh4dWxqTTg5bHV3TGFsUE0vczczQUh0NzFGcHNSbGhJWVc2R21lZWNJWFNHNTJIWmNZVDdFS2JKREQ3MFZtMTIwT1VjUWdjMjRyU1U0TVgzOGhaQ2pVd0lkMHZwbHB3eGhON0FVQXBvQnM3emNBcnlHWlNZMVBHTWgxSURRMjkydHJncXAzbjJIVms4U3B3cDhsTmU4VkJxWUVUZUVHcXpIeDNNUXJnT25ObVZ6SC9zZDRFWjFPYmU3SW9xd2kzT0lRaHdHT0RGOTlXSk9MTnQ0NE9kYmN1VXlCcENiUXJwWUR4NEdwYTlCVmpBbDJpU0NyWjZLRGQwNkhKSzZLUUtTU0hNUE5XMHhTYmlOTEYzZE1QTUkya0lyWEZXYUwwTHkxYmdGeFF3VFdaNnRFRW5JdWppRk1MTTNhWVRZZVlWTWk0N0svWmVFaWxENkV3R0VmYzhMUHM1TE1xbGpqOTRwelI2Nk0yYzZVeEc3QnBtN2piOXhXdnJLS1JNeHJMZU82WCtFZ2xEcU8xRWVTclZDSDIydjVHWklUWUM5V0FPKzBxaU5oWUhPNGN4ZHc4emgweldiUkpSdngzUkNETVB0U0hVeG1Jcm83R2NId2k4YUJYYWdWc3BZYVk1RHJKbmRCbjlzYWpFY3NMTUlSTkRKRW1FbWZjTmQ1aDVhQTJoTjNRTHkvWnVHblV0UWt4cy90ZERxVG1MM3NvZ3hPbWlabTZJWlBvRmxISVp4eE5lYXZXSzBCbENxeGlJMVcyUUIxNjBDaStobE1zY2Z1K3AyRHhCVnpEQ2lZOUtUR0prWm9oa2VpMXhKc3M0L3VxbDFrd0pqU0hVcG9RdHpqUWc5UFdvVlVoczMxelBVbGtUM21ZNkNxaE5JVjl4VGg4Uko4d2NNakVFSkthNWw5Q1h1VkxLWjk0cVRvL0FEYUVnVE9OaXhGa29jditsOXBST1hFdlZUcDAwaFg4Z0Z5WDBkdlpEbVFWTUFnb3lORVF5L1I1Q0RhT0RYd2dOMUJBNmxST3dlZ25MVHQ4UTZ4REtaWTY1dU5CUDlEYUdBWXVRYnJlblp2N2IvUW1MbUl6ZWZwSmgxZ25FRUZydWhHWHY3clJzOTEvcUJ1Sk1sWG5tektGc29yY3pDcHhnU205YWQwV2NNUE54MlE4eno2b2huTzdSTkpSYWhQNDlxbkQvcFg0TTFGUEV6V0xUNmExaVF5cm9YZXhGbkFyZ0JxQy9SK08vVDdDWVF4R0xzeGtHa3ZVV1FpczR6amtONzR3ZVZhUnVpRVJZZGhHVll2Ti9mbWcxdUVPWGN3aUZQb1daWDVHZE1QUEF4aEJheVNpRVZ1RHJyZzJoUElvd1JlYmxSc2h4cnFGM2N3SmR6dGpRdXpXa1IxSEtaYlMvVzNhREhWVGJGTE9aYXhIbUFGL2FRVkhQWDh4YldOUklRMjV0U3NsRlZCSHU5aUhNSE82a2lKbFM2aytZZWVEVHJnQmF4YUhBTEdBQzBtTlRtOWkyV0V5ajJMbTNiVEdYMGVXVVVKemlhZWFwcHplaDFITW95K1FzYjhlTm9UQkVFcTNpUDV4dTFLbU9zc1RHOWk2cVpFSHVibXpQQi9RMkJsTE1QTlRETUhONEU0c0t1WlFIdmRJWktrT0FNeE0xblRFSUYyTmh5enhlQ0ZxVHdUdjBMcjdyaEprZnMvM0Z6TTF4UDNFcTVZck1ZOVJDWndoRDdxTTJGb2M3WWVhU1FaajVqdWtPTEc2aGcxb1p6U2ZwYWpPR01BU0dycVkvVzd1ZFpnNlp0eGJDK3lnMkZuZWtFMlp1REdFSUhMMlBRWFNsRVdhK3V6UThqMFc1bFBLa0d5M0dFSWJRb1Bkd1BzSWloS0ZBcG9hQXhLWDJFK1RIM0ptcUJ0ZTNrR281RTdTY0g3ck5aekRzQ2JtU0I5bkswY0JFNEo5ZUZBa2M2aWFEKzJ0NWxTTlI3dGNZNi9SNng4a0dnMGZJUkRwa0RDdm93eEJnTVdSM0gwczZoaWh5VXVkUXdDc2FvMVd2Nnhhb1p6QjRnSlR5c1l3bVJwemh3Ryt6VmE5N1ExamJEUUZRQkpSUnhIcU5NZFl6VlFhRGc0eGx2WXptZklRZmdQOTc0VE5wSWJvekVMaEh5M2pZZEtNTWZpQ1gwMFlSdzRCeVNIK2RZVSs0TndROUdpS0JNSUlDWHRZcE5Lck5YdW5MTWhoMlJVcHBseXRvUlJnRy9weWw1YTBoRWhTalRPZGZ2SzR4UnFZanltRFlIWElaRzhHZnZkZCtHQ0xKTnhEYWRBcHRXc25YMDZqSFlNZzZYbzBoZHNkSXVuaGRLN0JOTjhvUWRqS2RaVXFWdmlpeitJVFh0SklMMDhodk1HU0ZiTFFRM1RtQ09HdTFnall0NS9BTXlqRVlmTUhQTWNUdUdFa0JiMmlsNlVZWndrVlFob0JrTitwVFh0VnBYT0JSbVFaRFJnUnBpQ1JIb2p5Z1UyblRhdE9OTWdSTHRzY1F2U09NcEpQWHRRcGJKM2U3Rk1WZ3lDTHVEU0UrR1NKQkNjb3MrdkNhVHV0MlpxakJrQ1hDMEdYYUZlRkk0RUd0b2sybk9tZjZHQXhaSUp5RytJTEViSlRwUmhteVJOZ05BVkFDektLRVYzVTYzODl5M1lZOEl3cUdTRElJK0sxVzA2YlQrVnBBR2d3NVRwUU1rVUFaaWJCZXE3SFZwamhRTFlhY0kzcUdTSkRvUm0zalZhM21lMEdMTWVRT1VUVkVrc0VJRCtrTnRPa012aHEwR0VQMGlib2hrb3drem5xdE1kMG9RMmJraWlFQStnR3phT2NWcmVIY29NVVlvb2tyUTJqaTRLZENuN1I0eFJEZ2R6ckRkS01NN25IWFFsd2Rlak4wWnlTd1htZWFibFJlRTNkM0dJSGJMbE5ZdTB1OTBROWxGbDI4ckRNWkViUVlRMWJaakZMUE5oYTV5ZVRPRVB0R3poQUpsS0hBNzNRbUs3V0dnNEtXWS9BVkJWYlJ3U0M1REZ2R3VidUN6WjBoT2lOcWlBUUNqS0dBRFRxVG1OcVI2djRaVWtINUV4YW55YVdNbFRHOG4wNFI3Z3pSRldsREpOa0hvWVV1bnROYVRndGFqTUVUM2tXNGtrczVXVXA1T3BPQzNCbkNyODFCd1hBTXdoTmFaN3BSa1VYWkF0UlR3R0M1bEpVaW1SOWU1czRROFp3eUJDUzdVWVc4cVhYRTlCSUtnaFprU0JGaEZVVU1sc3V3cFpTdDNoWHJBcjJlb1JTdzNsV3AwVXEvaERCSmJKN0NrSmU0YXlHS2NxNkYySmxqZ1NmVlpxWGFIQmkwR0VQMnllY3hSTStvMDQyQ0RWcFBURmViYmxRK1lRelJPd05RV2xqUHN6cWJVNElXWThnT3ViNVM3UVhIb2Z4QjYxbXA4L2h5MEdJTS9tSmFpTlJJZEtNNjJhQnpURGNxbDNGbkNNbjdJTGw5VVZyWXdKOTBMaWNITGNiZ1BhYkxsQTdLOFNoUDZSelRqY28xVEpjcGZSTGRxQzdUamNvbFRBdVJPZnNpdFBBWG50SFpuQlMwR0VObXVETkVlcmNINVFmS0NWZzhwWE5acVRZSEJDM0hrQjZtaGZBV0MyRU1SV3pRQm1KcXA3Vm5QVlJvTXdPQzFwQUp1cHFEM1h6ZTdRKzI1ejBFcnFLamNwYjlnQmFLZVZJYk9TWm9NZW1nU3poVWw3S2NZdVlFclNVZGRCVkQ5R2M4UUFkVDNlUnpPNmgyTisxcXpIRUtTbG5RSXR5Z05zVzZoQmdXYnlKY1RYb25zd1NHM3NlK2VoK05XTHdDN20rbWNyZHJUQ2xLK3lIZk1kOW00REdnalM2ZW9JakgwQnpka3hDblBXZ0pxYUxMR0lYU0N0RzdWMXh0TEk1Z05MQUEwZy9NZEx1Tk1wTXh4TnNvRHdOcjJZZUh4UDdpUWRGS0tvRDdNaWc3dkFnZFFVdllFN3FNWTRuVGduSm0wRnJTUWUvakxPSzBJQnlkYVZudURHRlI1R0pQVWhlSi9RVnJFZHJrSnA3djdZT3lrSjlwSlpkRER0NWhMZUZ0SVhRcCt3TjF4SmtFMFZ0SDBaVjhEWXU1S0dPODZwNjc3ekx0bnMySTB4VXE1TmV5Z0E5Y0tMbWVMcjVMNGdTKzNFSEQxMExvY29wbzV6cmkxQ1BzRTdRZXQraEsraUZNQTZhajdPWGxXTldMTHRQYkNBOGp1M2FGM0NDTi9GV3JhRUNabDNnaG5WSkNTTWdNb1lzWndlZTBBTjhLV290YlZCSHVaUXhLRTdpYlRrMlZkQXp4UlZjb1Rwc3M3cjByNUpvU0ZyQ1pVaEk3MTNJREt4eUcwS1VNcG90RktCZEc4VDhidllzVFdVVXIrTHMzeFowaHVyaWJJdVpMTXgvN0lVWnNPcldTNnhDZXBQdDBYMi83b0tOQm9HTUliV1lBUWpWZFRJSG9SU3ZyUFh3RnVCRVlUUlorZlZlR2tLVzg2WmVRN1hVczVHbWR4bkxnV3Ivcnlnb0JkWm5VeG1KQTV0T1FRYUdyNmN0V3lvQVp3SmV5Vlc4NEYxMjJVWTN3M2g0L0Y0WFdJb0JaSnIySnM5aUhGNEI3aUtJWjdtSVVXM2dEcFpFc21nRkNhZ2had2lkQWhidE0vbWpKbUN5MkVIb1RYOVZtVm1MeEtFUXZaRVR2NUhpOWk4Y1JmZzBjSG9TRzBKNXZLazJzMW1tTVJoamxQck1QZ3RJbEM0YlFCZlREWWhyQ2RHQXZ2K3Z6R3IySC9lbWlEZ2wrUFNTMGhnREE0bnFVczREK2FaY1J2RGw4NnpLcElpemlZb1NGRUwycmluVTVSUlJ6SFYzaFdROEpaWmNwaVRUeERrSzlkd1Y2VmxMcStEVHRxZ3M1a1VVOENhd21pbWE0a3hFVThSSktDNFREREpCbFE2aE5vYnA5TFB2U0Fyem91WmpzbUdNVHlxdGVGcWhOSEtvTFdZN3dSK0JVTDh2T0Jub0hRL1IySG5EaTJyNFp0SjZkOGQwUU9waytPb1VSV2tFcm4vQXVVN2pLVFg2eDZVUzVtc1NDb0QvNFlRN2xBeXpPa2hyZThLekloVnhFQVgrRzZJVmxBK2p0akFkZVE5eUhaV2NMWDc1VW5VSmZuY0lvbmNKS0N2a1FlQmdvQXc1Q2FOWXFCcm9wVCtiekhIQ3pIMXAzcmN5VFV0Nm1nTzlJTlM5N1V0b1hIRU8wWTcyR0VmSnhxMmZpdEp3QktPY2lqRUw1RWRDL2w0ZHJIN3E0QlZ6T0hpa3pFSDRFN3N5VUVlbVo0elVLK2I1TVo2UEhhZ3haSUtNV1FpZXh2OFlZcXpIYVVENGtNY0FidzU1bmhVWnFCVDkyVTVmTTUxTWs5THZQSHFlQTA0MFpvb3RyUStoa0Jtb1pWMnVNTmdwNW44UnE2RWpjeHNrSVM3WFMzU3FxTkhJL3lxOWMxZU1WZTI0dDFsTENlVkxOdjdPZ3h1QVQ3aTV1TCtjaUxONUJXRTdDQkpuc29EdUFPTTJ1Y3ltVElPQ0hibWR6S1BmeVpTNlNDdTl1c2pFRWc5c3J0ZnJoNVp5TWNMbE81WWV1c3N4bkk4b3N6elJraXNVU3VyaFNKb1lqek51UUdjRlAzUWszYXpYN3VzclRseVhBSC8wUmxESUsxTXNNeXNRbUhyQVdnMGNFYndnNGhFNmEzR1FRbXpnV0V5R3cvNVc3VUs2Uld1eUE2amY0UkJnTUFUQkJwL0U5Tnhsa0hxOEFTM3pTc3p2YUVTNlRPbFlFVUxmQlo4SmlDQ0hPY3JWZEJ2SDFvUlo0Mng5SlBiSVpZWlRNWkUwVzZ6UmtrYkFZQW9URDJjeGNWMWxzdGpnaHc5bmdZeXhHU0MyL3kxSjloZ0FJanlFU1ROYnBuTzRtZzh6alFlQVhQdWxKOGc3Q3FUSXo4SUc4d1dmQ1pnaUxPTGVyN1hLVFN5ZVRnWC81STRuMUZIQzYxTExCcC9JTklTSnNoZ0FZd21acTNXUndEa1NiNllPVzV5amlUSm5KMzlNdFFCczR5a3RCQm44Sm95RUFxclNhRTF6bEtPWVc0Q2tQTlR6R1hwd3ROZndqM1FMMFJxWWpWSHFveWVBellUVkVJWEh1MEt0VER3MFJtemdGWElNM2F4Ty9BaTZRNlh5YWJnSGF3R3puMUFoRGhBaXJJUUNPWVFCVmJqTElIRjVGMG9pUDJwRzdnVXZFWmxzNm1WVVJiYUFGY2RmdE00U0RNQnNDb0ZhbnV6eURkQXMyOEQ5cDFTWTBpYzA0c2VsTUo3dXVwb0I1M0E3RTBxcmZFRGhoTjBRZjRBNjlKUFdqU2FTWnJVNUViT29JaWxJcE50VnVCU2JSMVJUd1orNEN4cWRiaGlGNHdtNElVRTdpNjB4MmswWG04UkRDejFQOGVCY3dRV1p6azN0eENkU21tRCt6Qm1GTXVtVVl3a0g0RFFFZ05HZzFSN3JLRTZjYzJMU0hUMzFPWXJ4d1o3clMxS2FFUXRxQUg2VmJoaUU4Uk1NUVVJSnltNXNqYkdRZUg4SnV1MEQvd21LRXpPYitkRVhwQXZvNVpuQVZtR2dJTDFFeEJNQjNxZWFucm5JMGNCdndaQS92Skk2SXNYdDhMeVhVWmdEYldBZWNuVzRaaHZBUkpVT0Fza0JuOE5WVVB5NkpUVHdUU0hTTmtpU09pTEY1S1cwWk5nZFN3SDhESjZkYmhpR2NSTXNRc0RkZDNPb21nOHhsQTdEUStldnJ4UG1PMkx5VnJnQzFPWmdDSGlHQ3Ayc2I5a3pVREFGd2dWWnpoYXNjaGN4RnVac0NUcGVHRk82ZDZBV2R5MkZZUEFFbVBpbFhDZlVwYXJ1aFZXdFk1d3ljOTRpejZqd3Vrd3JWWmpCeDFrSHFYVFpEOUloaUN3R3dQOHJpYkZXbWN4aUd4V01ZTStROFVUVUVLS1Y2QXhmNVhvM044Y1I1SERqVTc3b013Uk5kUXlSWXBqYjcrVlc0enVaRWhJZUJBL3lxd3hBdW9tNklnOW1XZnNqRjd0RFpuSW55Q1Bobk9FUDRpTG9oUUxoS3F6blB5eUsxbnZPSjh5Qlp2Z0hURUR6Uk53U0FzRnlydkhsNDFlWUhLUGNEZmIwb3p4QXRjc01ROERVS3VUSFRRclNPeTRCZmtnZzdOK1FodVdJSWdHdDFCbWVrbTFsdHJrYTRsK2l1elJnOElKY01ZYUhjcGxQY2QzVzBqa25BcmVUVzkyRklnMXg3QUFaVDR1NEFZcTFqT3NKU05BUTNXaHNDSjljTUFjcFVyZVhFbEQ0Nmkzb3dKMlBrTUcrZy9OSk5CbmVHNk9KeEpQUm5teFlRNXc2MWU3L2lTMEYwRnEwb2Rka1Vac2dhbTRCcUNqbE9ScnM3ZnRUVkFGS1c4VGZnK3pxRkVjUnBBWmNuWW1TUDRiUnpBMUMvOHh0cVk5SEpDcFNmQktETDRDOXg0RDZLbUNxbDZSMHdsMWFYU1pwWngxYU9ReWtuNlB2ZWVrT28wVnFHZDM5Skw2R0FUdTVFakJseUR1RlJMSTZUS3hpYnJoa2dnekdFcktCREZ0TktKMGNBaTBtY1hoRW1pb2x6ajlxSlZsQnRpaG5LYW9Rcmd4Wm04SlMzRUVybENzNlJ5M2tsMDhJeUhsVExNajZTVm1JSXc0R0hNaTNQWTQ2amczS2RUQjg2V1FQK1I4Y2Fzc1ptb0o1T2hzc1YzbDFnNDlraWxMU3dIamhQWTF5Q01CODQzS3V5TTBLWXpUNWNCSndTdEJTREp5aHdMNTFVeVRnKzhMcHd6NmRkcFpVMURHQUlRam53aWRmbHAwRmZqQmx5aFdkUlRwT3hqUFhERE9EVE9vVFl0RXN6clJReERGZ0I1dHBhUTBhOGgzSWxZemhKcnVScFB5dnlkV0ZPNXJOUm1wa0luQVQ4d2MrNkREbkpWcUNKdmd5VnExZ3BndnBkWVZZQzJhU1o1eFMrUXdVWEF3dUF3N0pScnlIU3JFV1pMRmZ4MTJ4V21yWFFEUUdWUmF6aE03NkpVRS9DL1FiRHpyeUFjb1pjeFNnWmwxMHpRQUN4VExLQ0xiSVFtd0lHQTZ2QS8yYlFFQWsrQXNycHg3ZGxIRThFSlNLdzRENlp6N3R5RTJPQlV4QnozVzBlMHdFc3BwMGpaQnl0VWhyc0FtL2cwYTZ5a0dmb3gybk9DbkpLQjQ4WmNvWjF3TEV5bnBoTURFY0lVT0NHZ01TRmliS0FsU2hIT09PTHovZVl5UkJsTm1CeG9Zem5YQm5QRzBHTDZVNG9ESkZFRnJKWjVtTlR3RkdJZDh2eGh0RHdNY3BrL3M1Uk1vN2ZCQzJtSjBLNWYxZ2FlUXNvMVdyT2RzTE1oKzhwanlIOHlJVE1ENEx3bTFDMUVEc2pqVHhLQ2NjalRJVDBRM29OaGxRSnRTRUF4S1pUR2xtQk1BU2xDV2dQV3BNaGR3bTlJWkpJSTV0a1B0WEVPUnJDMmY4MFJKL0lHQ0tKekdlRE5ISWhjQzZFYTRiQ0VIMGlaNGdrMHNnNlB1SllKOHc4RkhQWWh1Z1RXVU9BczQxMUhxM0FFYzRGS21IYnhtcUlHSkUyUkJLNWtZL2tSbUxFT1JGNFBHZzlodWlTRTRaSUlvMjhLUE00RS9nQjhIYlFlZ3pSSTZjTWtVUWFhR01MMzBLcEJqNE5XbzhoT3VTa0lRQ2ttYTB5anlZS0dZcWFiYXlHMU1oWlF5UVJtNDNTd0VTVWt4Q2VDbHBQeFBndjR0c3Z2YzhMY3Q0UVNhU0I1NWpONlFpbHdEdEI2d2s1YndMbnl5VCtVeWJuMTFnc2J3d0J6amJXMmF5aGdHRWt6bjNkRnJTbWtQRXhTam4vWkxoTTRyZEJpd21DdkRKRUVySFpJck94c1JnRXJDSUxwem1FbkU1Z0JVVU1rY20waWsxbjBJS0NJaThOa1VSczNwWFpqS1dMczRDWGd0WVRDTW9qeERsT0pqTlJKdkxQb09VRVRWNGJJb25NNGZjSUorVFpOdGEvSUpSS0dTTWt4bXRCaXdrTHhoQU9ZaE1YbTVYQWtaRFQyMWcvUTZrSGhzdGtzeXR4WjR3aGRrSnNQaE1ibXdLR1EwNDlNSEZnRmNxUkVzT1dzcHcxZkVhRWNndHBHSkJhL2dLVWFqM25BTTFFZXh2ck15Z3hLZWVab0lXRUhkTkM3QUdaeFNNb3gwTWt0N0crQzF4SmpGT01HVkxER0NJRnhLWlQ2bGhCbktFa2Jrc0srN1RrRnFDZU9JT2xQRHVIQk9jS3hoQXVFSnVQcFk0WUJReEhlVEJvUFQyZ3dCcTYrS1pNd1pZS2MzNnVXOHdZSWcya2hqZUJDM1FPSTBpMEdNTUNsZ1RDODBCTXBwaHJCekxCdEJBWklMV3M0OHNjRS9CdHJPOGpUT1RmZk51WUlYT01JVEpFSnRJaHRiUmljUVNTMVcyczdjQmlpaGdxVTFnaHRnbHY5d0pqQ0krUUdqNlNHbUxBdDhIMzQ5elhZakZNcGhLVHNsRGM0NWN6bURHRXg4Z01YZ0RPMExtTXdxTFY0K0xmUkRoYnB2S1l4K1VhRFA2ak5pWGF5QmxCNnpDa3p2OERRZDdRck1iTFIxQUFBQUFBU1VWT1JLNUNZSUk9Ij4KCjxzdHlsZT4KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ1JvYm90bycpLCBsb2NhbCgnUm9ib3RvLVJlZ3VsYXInKSwgdXJsKC9mb250LXJvYm90by91WUVDTUtvSGNPOXgxd2RtYnlISW0zLV9rZjZCeVlPNkNMWWRCNEhRRS1ZLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8nKSwgbG9jYWwoJ1JvYm90by1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vc1RkYUE2ajBQc2I5MjBWanYtbXJ6SC1fa2Y2QnlZTzZDTFlkQjRIUUUtWS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksIGxvY2FsKCdSb2JvdG8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL19WWUZ4LXM4MjRrWHFfVWwyQkhxWUgtX2tmNkJ5WU82Q0xZZEI0SFFFLVkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksIGxvY2FsKCdSb2JvdG8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL3RuajRTQjZETmJkYVFuc004Q0ZxQlgtX2tmNkJ5WU82Q0xZZEI0SFFFLVkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksIGxvY2FsKCdSb2JvdG8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL29NTWdmWk1RdGhPcnlRbzluMjJkY3V2dkRpbjFwSzhhS3RlTHBlWjVjMEEud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksIGxvY2FsKCdSb2JvdG8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL0tzX2NWeGlDaXdVV1ZzRldGQTNCam4tX2tmNkJ5WU82Q0xZZEI0SFFFLVkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8nKSwgbG9jYWwoJ1JvYm90by1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vTko0dnhsZ1d3V2JFc3YxOGRBaHFubi1fa2Y2QnlZTzZDTFlkQjRIUUUtWS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by9pc1otd2JDWE5LQWJuam82X1R3SFRvWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by83N0ZYRmpSYkd6TjRhQ3JTRmhsaDNvWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by9qU04yQ0dWRGJjVnlDbmZKZmpTZGZJWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkJyksIGxvY2FsKCdSb2JvdG8tQm9sZCcpLCB1cmwoL2ZvbnQtcm9ib3RvL1VYNmk0SnhRRG0zZlZUYzFDUHV3cW9YMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQnKSwgbG9jYWwoJ1JvYm90by1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vZC02SVlwbE9Gb2NDYWNLenh3WFNPSkJ3MXhVMXJLcHRKal8wamFuczkyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by85N3VhaHhpcVpSb25jQmFDRUkzYVc0WDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMUUwMC0xRUZGLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQ0YsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQnKSwgbG9jYWwoJ1JvYm90by1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vUHdaYy1ZYklMNDE0d0I5ckIxSUFQWVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1Cb2xkSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vdDZOZDRjZlBSaFpQNDRRNVFBamNDMTRzWVlkSmc1ZFUycXpKRVZTdXRhMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQgSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tQm9sZEl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL3Q2TmQ0Y2ZQUmhaUDQ0UTVRQWpjQ19acmFSMlRnOHcybHptN2tMTkwwLXcud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUJvbGRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by90Nk5kNGNmUFJoWlA0NFE1UUFqY0N3dF9SbTY5MUxUZWJLZlkyWmtLU21JLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUJvbGRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by90Nk5kNGNmUFJoWlA0NFE1UUFqY0MxQlcyNlF4cFNqLV9aS21feFQ0aFd3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUJvbGRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by90Nk5kNGNmUFJoWlA0NFE1UUFqY0M0Z3A5UThnYllyaHFHbFJhdl9JWGZrLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTU7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUJvbGRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by90Nk5kNGNmUFJoWlA0NFE1UUFqY0M2RThrTTR4V1IxXzFiWVVSUm9qUkdjLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMUUwMC0xRUZGLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQ0YsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQgSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tQm9sZEl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL3Q2TmQ0Y2ZQUmhaUDQ0UTVRQWpjQzlEaU5zUjVhLTlPZV9JdnB1OFhXbFkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL09wWFVxVG8wVWdRUWhHal9TRmRMV0JrQXo0clluNDdaeTJydmlnV1FmNncud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1JdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by9XeHJYSmEwQzNLZHRDN2xNYWZHNGRSa0F6NHJZbjQ3WnkycnZpZ1dRZjZ3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vY0RLaFJhWG5RVE9WYmFveHdkT3I5eGtBejRyWW40N1p5MnJ2aWdXUWY2dy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vMWhaZjAyUE9BTmgzMmsyVmtnRW9VQmtBejRyWW40N1p5MnJ2aWdXUWY2dy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vdlBjeW5TTDBxSHFfNmRYN2xLVkJ5WFloamJTcHZjNDdlZTZ4Ul84MEhudy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vdlN6dWxmS1NLMExMampmZWF4Y1JFaGtBejRyWW40N1p5MnJ2aWdXUWY2dy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1JdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by9LMjNjeFdWVHJJRkQ2REpzRVZpMDdSa0F6NHJZbjQ3WnkycnZpZ1dRZjZ3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogMzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBMaWdodCcpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0JyksIHVybCgvZm9udC1yb2JvdG8vRmw0eTBRZE94eXlUSEVHTVhYOGtjWVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0JyksIGxvY2FsKCdSb2JvdG8tTGlnaHQnKSwgdXJsKC9mb250LXJvYm90by8wZUM2ZmwwNmx1WEVZV3BCU0p2WENJWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTGlnaHQnKSwgbG9jYWwoJ1JvYm90by1MaWdodCcpLCB1cmwoL2ZvbnQtcm9ib3RvL0kzUzF3c2dTZzlZQ3VyVjZQVWtUT1lYMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0JyksIGxvY2FsKCdSb2JvdG8tTGlnaHQnKSwgdXJsKC9mb250LXJvYm90by8tTDE0SmswNm02cFVIQi01bVhRUW5ZWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogMzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBMaWdodCcpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0JyksIHVybCgvZm9udC1yb2JvdG8vSGdvMTNrLXRmU3BuMHFpMVNGZFVmWkJ3MXhVMXJLcHRKal8wamFuczkyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTGlnaHQnKSwgbG9jYWwoJ1JvYm90by1MaWdodCcpLCB1cmwoL2ZvbnQtcm9ib3RvL1BydTMzcWpTaHBaU21HM3o2Vll3bllYMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTGlnaHQnKSwgbG9jYWwoJ1JvYm90by1MaWdodCcpLCB1cmwoL2ZvbnQtcm9ib3RvL05ZRFdCZEQ0Z0lxMjZHNVhZYkhzRklYMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0SXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vN204bDdUbEZPLVMzVmtoSHVSMGF0MTRzWVlkSmc1ZFUycXpKRVZTdXRhMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0SXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vN204bDdUbEZPLVMzVmtoSHVSMGF0X1pyYVIyVGc4dzJsem03a0xOTDAtdy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0SXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vN204bDdUbEZPLVMzVmtoSHVSMGF0d3RfUm02OTFMVGViS2ZZMlprS1NtSS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTGlnaHQgSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tTGlnaHRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by83bThsN1RsRk8tUzNWa2hIdVIwYXQxQlcyNlF4cFNqLV9aS21feFQ0aFd3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogMzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBMaWdodCBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1MaWdodEl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvLzdtOGw3VGxGTy1TM1ZraEh1UjBhdDRncDlROGdiWXJocUdsUmF2X0lYZmsud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0SXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vN204bDdUbEZPLVMzVmtoSHVSMGF0NkU4a000eFdSMV8xYllVUlJvalJHYy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogMzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBMaWdodCBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1MaWdodEl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvLzdtOGw3VGxGTy1TM1ZraEh1UjBhdDlEaU5zUjVhLTlPZV9JdnB1OFhXbFkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1lZGl1bScpLCBsb2NhbCgnUm9ib3RvLU1lZGl1bScpLCB1cmwoL2ZvbnQtcm9ib3RvL29IaTMwa3dRV3ZwQ1dxQWh6SGNDU0lYMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNZWRpdW0nKSwgbG9jYWwoJ1JvYm90by1NZWRpdW0nKSwgdXJsKC9mb250LXJvYm90by9aTHFLZWVsWWJBVEc2MEVwWkJTRHk0WDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtJyksIHVybCgvZm9udC1yb2JvdG8vbXg5VWNrNnVCNjNWSUtGWW5FTVhyWVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtJyksIHVybCgvZm9udC1yb2JvdG8vckd2SGRKbnIybDc1cWIwWU5EOU55SVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtJyksIHVybCgvZm9udC1yb2JvdG8vUnhaSmRuemVvM1I1elNleGdlOFVVWkJ3MXhVMXJLcHRKal8wamFuczkyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtJyksIHVybCgvZm9udC1yb2JvdG8vb09lRndaTmxyVGVmekxZbWxWVjFVSVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNZWRpdW0nKSwgbG9jYWwoJ1JvYm90by1NZWRpdW0nKSwgdXJsKC9mb250LXJvYm90by9tYm1ocHJNSDY5Wmk2ZUVQQllWRmhZWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNZWRpdW0gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vT0xmZkdCVGFGMFhGT1cxZ251SEYwVjRzWVlkSmc1ZFUycXpKRVZTdXRhMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1lZGl1bSBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1NZWRpdW1JdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by9PTGZmR0JUYUYwWEZPVzFnbnVIRjBmWnJhUjJUZzh3Mmx6bTdrTE5MMC13LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLU1lZGl1bUl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL09MZmZHQlRhRjBYRk9XMWdudUhGMFF0X1JtNjkxTFRlYktmWTJaa0tTbUkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1lZGl1bSBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1NZWRpdW1JdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by9PTGZmR0JUYUYwWEZPVzFnbnVIRjBWQlcyNlF4cFNqLV9aS21feFQ0aFd3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNZWRpdW0gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vT0xmZkdCVGFGMFhGT1cxZ251SEYwWWdwOVE4Z2JZcmhxR2xSYXZfSVhmay53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLU1lZGl1bUl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL09MZmZHQlRhRjBYRk9XMWdudUhGMGFFOGtNNHhXUjFfMWJZVVJSb2pSR2Mud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLU1lZGl1bUl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL09MZmZHQlRhRjBYRk9XMWdudUhGMGREaU5zUjVhLTlPZV9JdnB1OFhXbFkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubycpLCBsb2NhbCgnUm9ib3RvTW9uby1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vaE1xUE5Mc3VfZHl3TWE0Q19ERXBZMTRzWVlkSmc1ZFUycXpKRVZTdXRhMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubycpLCBsb2NhbCgnUm9ib3RvTW9uby1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vaE1xUE5Mc3VfZHl3TWE0Q19ERXBZX1pyYVIyVGc4dzJsem03a0xOTDAtdy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubycpLCBsb2NhbCgnUm9ib3RvTW9uby1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vaE1xUE5Mc3VfZHl3TWE0Q19ERXBZd3RfUm02OTFMVGViS2ZZMlprS1NtSS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNb25vJyksIGxvY2FsKCdSb2JvdG9Nb25vLVJlZ3VsYXInKSwgdXJsKC9mb250LXJvYm90by9oTXFQTkxzdV9keXdNYTRDX0RFcFkxQlcyNlF4cFNqLV9aS21feFQ0aFd3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8nKSwgbG9jYWwoJ1JvYm90b01vbm8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL2hNcVBOTHN1X2R5d01hNENfREVwWTRncDlROGdiWXJocUdsUmF2X0lYZmsud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubycpLCBsb2NhbCgnUm9ib3RvTW9uby1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vaE1xUE5Mc3VfZHl3TWE0Q19ERXBZNkU4a000eFdSMV8xYllVUlJvalJHYy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8nKSwgbG9jYWwoJ1JvYm90b01vbm8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL2hNcVBOTHN1X2R5d01hNENfREVwWTlEaU5zUjVhLTlPZV9JdnB1OFhXbFkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubyBCb2xkJyksIGxvY2FsKCdSb2JvdG9Nb25vLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by9ONGR1VmM5QzU4dXdQaVk4XzU5RnoxeC1NMUkxdzVPTWlxblZGOHhCTGhVLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNb25vIEJvbGQnKSwgbG9jYWwoJ1JvYm90b01vbm8tQm9sZCcpLCB1cmwoL2ZvbnQtcm9ib3RvL040ZHVWYzlDNTh1d1BpWThfNTlGendYYUFYdXA1bVpsZks2eFJMcmhzY28ud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvTW9uby1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vTjRkdVZjOUM1OHV3UGlZOF81OUZ6d242V3F4by14d3hpbERYUFU4Y2hWVS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNb25vIEJvbGQnKSwgbG9jYWwoJ1JvYm90b01vbm8tQm9sZCcpLCB1cmwoL2ZvbnQtcm9ib3RvL040ZHVWYzlDNTh1d1BpWThfNTlGejFUN2FKTEs2bktwbjM2SU13VGNNTWMud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubyBCb2xkJyksIGxvY2FsKCdSb2JvdG9Nb25vLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by9ONGR1VmM5QzU4dXdQaVk4XzU5RnpfNzlfWnVVeENpZ00yRGVzcFRuRmF3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTU7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvTW9uby1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vTjRkdVZjOUM1OHV3UGlZOF81OUZ6NGdkOU9FUFVDTjNBZFlXMGU4dGF0NC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvTW9uby1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vTjRkdVZjOUM1OHV3UGlZOF81OUZ6OGJJUVNZWm5XTGFXQzlRTkNwVEtfVS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9Cjwvc3R5bGU+CgoKCjxzdHlsZT4ubWF0LXJpcHBsZXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGU6bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWR7b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50e3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlM2QoMCwgMCwgMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXJpcHBsZS1lbGVtZW50e2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbntib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lO2xlZnQ6MH1bZGlyPXJ0bF0gLmNkay12aXN1YWxseS1oaWRkZW57bGVmdDphdXRvO3JpZ2h0OjB9LmNkay1vdmVybGF5LWNvbnRhaW5lciwuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJ7cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVye3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJ7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3B7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCk7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ3tvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ3tvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9we2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcHt0cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIGxpbmVhcixvcGFjaXR5IDFtcyBsaW5lYXI7dmlzaWJpbGl0eTpoaWRkZW47b3BhY2l0eToxfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5ne29wYWNpdHk6MDt2aXNpYmlsaXR5OnZpc2libGV9LmNkay1vdmVybGF5LWJhY2tkcm9wLW5vb3AtYW5pbWF0aW9ue3RyYW5zaXRpb246bm9uZX0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveHtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2Nre3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXple3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmd7cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveHtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHsvKiEqL31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHsvKiEqL30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3J7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9pbnRlci1ldmVudHM6bm9uZTtkaXNwbGF5OnZhcigtLW1hdC1mb2N1cy1pbmRpY2F0b3ItZGlzcGxheSwgbm9uZSk7Ym9yZGVyOnZhcigtLW1hdC1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoLCAzcHgpIHZhcigtLW1hdC1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXN0eWxlLCBzb2xpZCkgdmFyKC0tbWF0LWZvY3VzLWluZGljYXRvci1ib3JkZXItY29sb3IsIHRyYW5zcGFyZW50KTtib3JkZXItcmFkaXVzOnZhcigtLW1hdC1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1cywgNHB4KX0ubWF0LWZvY3VzLWluZGljYXRvcjpmb2N1czo6YmVmb3Jle2NvbnRlbnQ6IiJ9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZXstLW1hdC1mb2N1cy1pbmRpY2F0b3ItZGlzcGxheTogYmxvY2t9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9ye3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcjo6YmVmb3Jle3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwb2ludGVyLWV2ZW50czpub25lO2Rpc3BsYXk6dmFyKC0tbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3ItZGlzcGxheSwgbm9uZSk7Ym9yZGVyOnZhcigtLW1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLWJvcmRlci13aWR0aCwgM3B4KSB2YXIoLS1tYXQtbWRjLWZvY3VzLWluZGljYXRvci1ib3JkZXItc3R5bGUsIHNvbGlkKSB2YXIoLS1tYXQtbWRjLWZvY3VzLWluZGljYXRvci1ib3JkZXItY29sb3IsIHRyYW5zcGFyZW50KTtib3JkZXItcmFkaXVzOnZhcigtLW1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1yYWRpdXMsIDRweCl9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yOmZvY3VzOjpiZWZvcmV7Y29udGVudDoiIn0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZley0tbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3ItZGlzcGxheTogYmxvY2t9Lm1hdC1oMSwubWF0LWhlYWRsaW5lLC5tYXQtdHlwb2dyYXBoeSAubWF0LWgxLC5tYXQtdHlwb2dyYXBoeSAubWF0LWhlYWRsaW5lLC5tYXQtdHlwb2dyYXBoeSBoMXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MzJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyLC5tYXQtdGl0bGUsLm1hdC10eXBvZ3JhcGh5IC5tYXQtaDIsLm1hdC10eXBvZ3JhcGh5IC5tYXQtdGl0bGUsLm1hdC10eXBvZ3JhcGh5IGgye2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDozMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDMsLm1hdC1zdWJoZWFkaW5nLTIsLm1hdC10eXBvZ3JhcGh5IC5tYXQtaDMsLm1hdC10eXBvZ3JhcGh5IC5tYXQtc3ViaGVhZGluZy0yLC5tYXQtdHlwb2dyYXBoeSBoM3tmb250LXNpemU6MTZweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MjhweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0LC5tYXQtc3ViaGVhZGluZy0xLC5tYXQtdHlwb2dyYXBoeSAubWF0LWg0LC5tYXQtdHlwb2dyYXBoeSAubWF0LXN1YmhlYWRpbmctMSwubWF0LXR5cG9ncmFwaHkgaDR7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjI0cHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNSwubWF0LXR5cG9ncmFwaHkgLm1hdC1oNSwubWF0LXR5cG9ncmFwaHkgaDV7Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDYsLm1hdC10eXBvZ3JhcGh5IC5tYXQtaDYsLm1hdC10eXBvZ3JhcGh5IGg2e2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nLC5tYXQtYm9keS0yLC5tYXQtdHlwb2dyYXBoeSAubWF0LWJvZHktc3Ryb25nLC5tYXQtdHlwb2dyYXBoeSAubWF0LWJvZHktMntmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MjRweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keSwubWF0LWJvZHktMSwubWF0LXR5cG9ncmFwaHkgLm1hdC1ib2R5LC5tYXQtdHlwb2dyYXBoeSAubWF0LWJvZHktMSwubWF0LXR5cG9ncmFwaHl7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjIwcHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHkgcCwubWF0LWJvZHktMSBwLC5tYXQtdHlwb2dyYXBoeSAubWF0LWJvZHkgcCwubWF0LXR5cG9ncmFwaHkgLm1hdC1ib2R5LTEgcCwubWF0LXR5cG9ncmFwaHkgcHttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbCwubWF0LWNhcHRpb24sLm1hdC10eXBvZ3JhcGh5IC5tYXQtc21hbGwsLm1hdC10eXBvZ3JhcGh5IC5tYXQtY2FwdGlvbntmb250LXNpemU6MTJweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MjBweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00LC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktNHtmb250LXNpemU6MTEycHg7Zm9udC13ZWlnaHQ6MzAwO2xpbmUtaGVpZ2h0OjExMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktMywubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTN7Zm9udC1zaXplOjU2cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjU2cHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yLC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMntmb250LXNpemU6NDVweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6NDhweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xLC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMXtmb250LXNpemU6MzRweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6NDBweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJhZGdlLWNvbnRlbnR7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudHtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50e2ZvbnQtc2l6ZToyNHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcntmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MjBweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uLXRvZ2dsZXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhcntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5e2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCwubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b257Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoe2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50e2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyLC5tYXQtZ3JpZC10aWxlLWZvb3Rlcntmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lLC5tYXQtZ3JpZC10aWxlLWZvb3RlciAubWF0LWxpbmV7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlciAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMiksLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LXN0ZXBwZXItdmVydGljYWwsLm1hdC1zdGVwcGVyLWhvcml6b250YWx7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcntmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9ye2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyLC5tYXQtdG9vbGJhciBoMSwubWF0LXRvb2xiYXIgaDIsLm1hdC10b29sYmFyIGgzLC5tYXQtdG9vbGJhciBoNCwubWF0LXRvb2xiYXIgaDUsLm1hdC10b29sYmFyIGg2e2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDozMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10cmVle2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZSwubWF0LW5lc3RlZC10cmVlLW5vZGV7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtb3B0aW9ue2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVse2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoyNHB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b24sLm1hdC1yYWlzZWQtYnV0dG9uLC5tYXQtaWNvbi1idXR0b24sLm1hdC1zdHJva2VkLWJ1dHRvbiwubWF0LWZsYXQtYnV0dG9uLC5tYXQtZmFiLC5tYXQtbWluaS1mYWJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWRjLWJ1dHRvbnstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtmb250LWZhbWlseTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWYpKTtmb250LXNpemU6dmFyKC0tbWRjLXR5cG9ncmFwaHktYnV0dG9uLWZvbnQtc2l6ZSwgMTRweCk7bGluZS1oZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktYnV0dG9uLWxpbmUtaGVpZ2h0LCAxNHB4KTtmb250LXdlaWdodDp2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tZm9udC13ZWlnaHQsIDUwMCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tbWRjLXR5cG9ncmFwaHktYnV0dG9uLWxldHRlci1zcGFjaW5nLCBub3JtYWwpO3RleHQtZGVjb3JhdGlvbjp2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tdGV4dC1kZWNvcmF0aW9uLCBub25lKTt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tdGV4dC10cmFuc2Zvcm0sIG5vbmUpfS5tYXQtY2FyZHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxle2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyIC5tYXQtY2FyZC10aXRsZXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGUsLm1hdC1jYXJkLWNvbnRlbnR7Zm9udC1zaXplOjE0cHh9Lm1hdC10b29sdGlwe2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0e2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnR7bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1mb3JtLWZpZWxke2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVye3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbiwubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbntmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24sLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9ue2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uLC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb257aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4e3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgcmdiYSgwLDAsMCwwKX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cysubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJ7dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVse3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcntmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtd3JhcHBlcntwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cysubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF0rLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWx7dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF0rLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF0rLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LXNlbGVjdHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcntoZWlnaHQ6MS4xMjVlbX0ubWF0LWNoZWNrYm94e2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dCAubWF0LWNoZWNrYm94LWxhYmVse2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1kaWFsb2ctdGl0bGV7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjMycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWNoaXB7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcCAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbiwubWF0LWNoaXAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbntmb250LXNpemU6MThweH0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50e2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1ncm91cHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWwsLm1hdC10YWItbGlua3tmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtcmFkaW8tYnV0dG9ue2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1tZW51LWl0ZW17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWxpc3QtaXRlbXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5le3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbntmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2UgLm1hdC1zdWJoZWFkZXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbntmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmV7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1zdWJoZWFkZXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXBhZ2luYXRvciwubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlcntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1zaW1wbGUtc25hY2tiYXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbntsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFibGV7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGx7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbCwubWF0LWZvb3Rlci1jZWxse2ZvbnQtc2l6ZToxNHB4fS5tYXQtYmFkZ2UtY29udGVudHtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGwgLm1hdC1iYWRnZS1jb250ZW50e2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnR7Zm9udC1zaXplOjI0cHh9Lm1hdC1oMSwubWF0LWhlYWRsaW5lLTUsLm1hdC10eXBvZ3JhcGh5IC5tYXQtaDEsLm1hdC10eXBvZ3JhcGh5IC5tYXQtaGVhZGxpbmUtNSwubWF0LXR5cG9ncmFwaHkgaDF7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjMycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMiwubWF0LWhlYWRsaW5lLTYsLm1hdC10eXBvZ3JhcGh5IC5tYXQtaDIsLm1hdC10eXBvZ3JhcGh5IC5tYXQtaGVhZGxpbmUtNiwubWF0LXR5cG9ncmFwaHkgaDJ7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjMycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi4wMTI1ZW07bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDMsLm1hdC1zdWJ0aXRsZS0xLC5tYXQtdHlwb2dyYXBoeSAubWF0LWgzLC5tYXQtdHlwb2dyYXBoeSAubWF0LXN1YnRpdGxlLTEsLm1hdC10eXBvZ3JhcGh5IGgze2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoyOHB4O2ZvbnQtZmFtaWx5OlJvYm90bywgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzouMDA5Mzc1ZW07bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDQsLm1hdC1ib2R5LTEsLm1hdC10eXBvZ3JhcGh5IC5tYXQtaDQsLm1hdC10eXBvZ3JhcGh5IC5tYXQtYm9keS0xLC5tYXQtdHlwb2dyYXBoeSBoNHtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MjRweDtmb250LWZhbWlseTpSb2JvdG8sIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LjAzMTI1ZW07bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDUsLm1hdC10eXBvZ3JhcGh5IC5tYXQtaDUsLm1hdC10eXBvZ3JhcGh5IGg1e2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2LC5tYXQtdHlwb2dyYXBoeSAubWF0LWg2LC5tYXQtdHlwb2dyYXBoeSBoNntmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZywubWF0LXN1YnRpdGxlLTIsLm1hdC10eXBvZ3JhcGh5IC5tYXQtYm9keS1zdHJvbmcsLm1hdC10eXBvZ3JhcGh5IC5tYXQtc3VidGl0bGUtMntmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MjJweDtmb250LWZhbWlseTpSb2JvdG8sIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LjAwNzE0Mjg1NzFlbX0ubWF0LWJvZHksLm1hdC1ib2R5LTIsLm1hdC10eXBvZ3JhcGh5IC5tYXQtYm9keSwubWF0LXR5cG9ncmFwaHkgLm1hdC1ib2R5LTIsLm1hdC10eXBvZ3JhcGh5e2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtZmFtaWx5OlJvYm90bywgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzouMDE3ODU3MTQyOWVtfS5tYXQtYm9keSBwLC5tYXQtYm9keS0yIHAsLm1hdC10eXBvZ3JhcGh5IC5tYXQtYm9keSBwLC5tYXQtdHlwb2dyYXBoeSAubWF0LWJvZHktMiBwLC5tYXQtdHlwb2dyYXBoeSBwe21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsLC5tYXQtY2FwdGlvbiwubWF0LXR5cG9ncmFwaHkgLm1hdC1zbWFsbCwubWF0LXR5cG9ncmFwaHkgLm1hdC1jYXB0aW9ue2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtZmFtaWx5OlJvYm90bywgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzouMDMzMzMzMzMzM2VtfS5tYXQtaGVhZGxpbmUtMSwubWF0LXR5cG9ncmFwaHkgLm1hdC1oZWFkbGluZS0xe2ZvbnQtc2l6ZTo5NnB4O2ZvbnQtd2VpZ2h0OjMwMDtsaW5lLWhlaWdodDo5NnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMTU2MjVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1oZWFkbGluZS0yLC5tYXQtdHlwb2dyYXBoeSAubWF0LWhlYWRsaW5lLTJ7Zm9udC1zaXplOjYwcHg7Zm9udC13ZWlnaHQ6MzAwO2xpbmUtaGVpZ2h0OjYwcHg7Zm9udC1mYW1pbHk6Um9ib3RvLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0uMDA4MzMzMzMzM2VtO21hcmdpbjowIDAgNjRweH0ubWF0LWhlYWRsaW5lLTMsLm1hdC10eXBvZ3JhcGh5IC5tYXQtaGVhZGxpbmUtM3tmb250LXNpemU6NDhweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6NTBweDtmb250LWZhbWlseTpSb2JvdG8sIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWhlYWRsaW5lLTQsLm1hdC10eXBvZ3JhcGh5IC5tYXQtaGVhZGxpbmUtNHtmb250LXNpemU6MzRweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6NDBweDtmb250LWZhbWlseTpSb2JvdG8sIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LjAwNzM1Mjk0MTJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVye2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtZmFtaWx5OlJvYm90bywgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzouMDE3ODU3MTQyOWVtfS5tYXQtYnV0dG9uLXRvZ2dsZXtmb250LWZhbWlseTpSb2JvdG8sIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhcntmb250LWZhbWlseTpSb2JvdG8sIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5e2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCwubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b257Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoe2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50e2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtZmFtaWx5OlJvYm90bywgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzouMDE3ODU3MTQyOWVtfS5tYXQtZ3JpZC10aWxlLWhlYWRlciwubWF0LWdyaWQtdGlsZS1mb290ZXJ7Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyIC5tYXQtbGluZSwubWF0LWdyaWQtdGlsZS1mb290ZXIgLm1hdC1saW5le3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpLC5tYXQtZ3JpZC10aWxlLWZvb3RlciAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsLC5tYXQtc3RlcHBlci1ob3Jpem9udGFse2ZvbnQtZmFtaWx5OlJvYm90bywgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWx7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3J7Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcntmb250LXNpemU6MTZweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWR7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtdG9vbGJhciwubWF0LXRvb2xiYXIgaDEsLm1hdC10b29sYmFyIGgyLC5tYXQtdG9vbGJhciBoMywubWF0LXRvb2xiYXIgaDQsLm1hdC10b29sYmFyIGg1LC5tYXQtdG9vbGJhciBoNntmb250LXNpemU6MjBweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MzJweDtmb250LWZhbWlseTpSb2JvdG8sIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LjAxMjVlbTttYXJnaW46MH0ubWF0LXRyZWV7Zm9udC1mYW1pbHk6Um9ib3RvLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlLC5tYXQtbmVzdGVkLXRyZWUtbm9kZXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1tZGMtb3B0aW9uey1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2ZvbnQtZmFtaWx5OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7Zm9udC1zaXplOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWZvbnQtc2l6ZSwgMTZweCk7bGluZS1oZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTEtbGluZS1oZWlnaHQsIDI0cHgpO2ZvbnQtd2VpZ2h0OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWxldHRlci1zcGFjaW5nLCAwLjAzMTI1ZW0pfS5tYXQtbWRjLWNhcmQtdGl0bGV7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7Zm9udC1mYW1pbHk6dmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmU2LWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7Zm9udC1zaXplOnZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNi1mb250LXNpemUsIDIwcHgpO2xpbmUtaGVpZ2h0OnZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNi1saW5lLWhlaWdodCwgMzJweCk7Zm9udC13ZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmU2LWZvbnQtd2VpZ2h0LCA1MDApO2xldHRlci1zcGFjaW5nOnZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNi1sZXR0ZXItc3BhY2luZywgMC4wMTI1ZW0pO3RleHQtZGVjb3JhdGlvbjp2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTYtdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTYtdGV4dC10cmFuc2Zvcm0sIG5vbmUpfS5tYXQtbWRjLWNhcmQtc3VidGl0bGV7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7Zm9udC1mYW1pbHk6dmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUyLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7Zm9udC1zaXplOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMi1mb250LXNpemUsIDE0cHgpO2xpbmUtaGVpZ2h0OnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMi1saW5lLWhlaWdodCwgMjJweCk7Zm9udC13ZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUyLWZvbnQtd2VpZ2h0LCA1MDApO2xldHRlci1zcGFjaW5nOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMi1sZXR0ZXItc3BhY2luZywgMC4wMDcxNDI4NTcxZW0pO3RleHQtZGVjb3JhdGlvbjp2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTItdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTItdGV4dC10cmFuc2Zvcm0sIG5vbmUpfS5tYXQtbWRjLXRvb2x0aXB7LS1tZGMtcGxhaW4tdG9vbHRpcC1zdXBwb3J0aW5nLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tZGMtcGxhaW4tdG9vbHRpcC1zdXBwb3J0aW5nLXRleHQtc2l6ZToxMnB4Oy0tbWRjLXBsYWluLXRvb2x0aXAtc3VwcG9ydGluZy10ZXh0LXdlaWdodDo0MDA7LS1tZGMtcGxhaW4tdG9vbHRpcC1zdXBwb3J0aW5nLXRleHQtdHJhY2tpbmc6MC4wMzMzMzMzMzMzZW19Lm1kYy10ZXh0LWZpZWxkX19pbnB1dHstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtmb250LWZhbWlseTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtmb250LXNpemU6dmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWZvbnQtc2l6ZSwgMTZweCk7Zm9udC13ZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS1sZXR0ZXItc3BhY2luZywgMC4wMDkzNzVlbSk7dGV4dC1kZWNvcmF0aW9uOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO3RleHQtdHJhbnNmb3JtOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS10ZXh0LXRyYW5zZm9ybSwgbm9uZSl9Lm1kYy10ZXh0LWZpZWxkX19hZmZpeHstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtmb250LWZhbWlseTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtmb250LXNpemU6dmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWZvbnQtc2l6ZSwgMTZweCk7Zm9udC13ZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS1sZXR0ZXItc3BhY2luZywgMC4wMDkzNzVlbSk7dGV4dC1kZWNvcmF0aW9uOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO3RleHQtdHJhbnNmb3JtOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS10ZXh0LXRyYW5zZm9ybSwgbm9uZSl9Lm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLXRleHQtZmllbGRfX2lucHV0e2xpbmUtaGVpZ2h0OjEuNXJlbX0ubWRjLWZsb2F0aW5nLWxhYmVsey1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2ZvbnQtZmFtaWx5OnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO2ZvbnQtc2l6ZTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtZm9udC1zaXplLCAxNnB4KTtmb250LXdlaWdodDp2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtZm9udC13ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWxldHRlci1zcGFjaW5nLCAwLjAwOTM3NWVtKTt0ZXh0LWRlY29yYXRpb246dmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLXRleHQtZGVjb3JhdGlvbiwgaW5oZXJpdCk7dGV4dC10cmFuc2Zvcm06dmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLXRleHQtdHJhbnNmb3JtLCBub25lKX0ubWF0LW1kYy1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyLC5tYXQtbWRjLWZvcm0tZmllbGQtYm90dG9tLWFsaWduOjpiZWZvcmV7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7Zm9udC1mYW1pbHk6dmFyKC0tbWRjLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO2ZvbnQtc2l6ZTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1jYXB0aW9uLWZvbnQtc2l6ZSwgMTJweCk7bGluZS1oZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktY2FwdGlvbi1saW5lLWhlaWdodCwgMjBweCk7Zm9udC13ZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LXdlaWdodCwgNDAwKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1tZGMtdHlwb2dyYXBoeS1jYXB0aW9uLWxldHRlci1zcGFjaW5nLCAwLjAzMzMzMzMzMzNlbSk7dGV4dC1kZWNvcmF0aW9uOnZhcigtLW1kYy10eXBvZ3JhcGh5LWNhcHRpb24tdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1jYXB0aW9uLXRleHQtdHJhbnNmb3JtLCBub25lKX0ubWF0LW1kYy1mb3JtLWZpZWxkLC5tYXQtbWRjLWZsb2F0aW5nLWxhYmVsey1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2ZvbnQtZmFtaWx5OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7Zm9udC1zaXplOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWZvbnQtc2l6ZSwgMTZweCk7bGluZS1oZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTEtbGluZS1oZWlnaHQsIDI0cHgpO2ZvbnQtd2VpZ2h0OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWxldHRlci1zcGFjaW5nLCAwLjAzMTI1ZW0pO3RleHQtZGVjb3JhdGlvbjp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5MS10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO3RleHQtdHJhbnNmb3JtOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLXRleHQtdHJhbnNmb3JtLCBub25lKX0ubWF0LW1kYy1mb3JtLWZpZWxkIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmV7Zm9udC1zaXplOmNhbGMoMTZweCAqIHZhcigtLW1hdC1tZGMtZm9ybS1maWVsZC1mbG9hdGluZy1sYWJlbC1zY2FsZSwgMC43NSkpfS5tYXQtbWRjLWZvcm0tZmllbGQgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmV7Zm9udC1zaXplOjE2cHh9Lm1hdC1tZGMtc2VsZWN0LXBhbmVsey1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2ZvbnQtZmFtaWx5OnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO2ZvbnQtc2l6ZTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtZm9udC1zaXplLCAxNnB4KTtsaW5lLWhlaWdodDp2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtbGluZS1oZWlnaHQsIDI4cHgpO2ZvbnQtd2VpZ2h0OnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS1mb250LXdlaWdodCwgNDAwKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtbGV0dGVyLXNwYWNpbmcsIDAuMDA5Mzc1ZW0pO3RleHQtZGVjb3JhdGlvbjp2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtdGV4dC10cmFuc2Zvcm0sIG5vbmUpO2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1tZGMtc2VsZWN0ey1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2ZvbnQtZmFtaWx5OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7Zm9udC1zaXplOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWZvbnQtc2l6ZSwgMTZweCk7bGluZS1oZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTEtbGluZS1oZWlnaHQsIDI0cHgpO2ZvbnQtd2VpZ2h0OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWxldHRlci1zcGFjaW5nLCAwLjAzMTI1ZW0pO3RleHQtZGVjb3JhdGlvbjp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5MS10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO3RleHQtdHJhbnNmb3JtOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLXRleHQtdHJhbnNmb3JtLCBub25lKX0ubWF0LW1kYy1hdXRvY29tcGxldGUtcGFuZWx7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7Zm9udC1mYW1pbHk6dmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7Zm9udC1zaXplOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS1mb250LXNpemUsIDE2cHgpO2xpbmUtaGVpZ2h0OnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS1saW5lLWhlaWdodCwgMjhweCk7Zm9udC13ZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS1sZXR0ZXItc3BhY2luZywgMC4wMDkzNzVlbSk7dGV4dC1kZWNvcmF0aW9uOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO3RleHQtdHJhbnNmb3JtOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS10ZXh0LXRyYW5zZm9ybSwgbm9uZSk7bGluZS1oZWlnaHQ6MjRweH0ubWF0LW1kYy1kaWFsb2ctY29udGFpbmVyey0tbWRjLWRpYWxvZy1zdWJoZWFkLWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLWRpYWxvZy1zdWJoZWFkLWxpbmUtaGVpZ2h0OjMycHg7LS1tZGMtZGlhbG9nLXN1YmhlYWQtc2l6ZToyMHB4Oy0tbWRjLWRpYWxvZy1zdWJoZWFkLXdlaWdodDo1MDA7LS1tZGMtZGlhbG9nLXN1YmhlYWQtdHJhY2tpbmc6MC4wMTI1ZW07LS1tZGMtZGlhbG9nLXN1cHBvcnRpbmctdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1kYy1kaWFsb2ctc3VwcG9ydGluZy10ZXh0LWxpbmUtaGVpZ2h0OjI0cHg7LS1tZGMtZGlhbG9nLXN1cHBvcnRpbmctdGV4dC1zaXplOjE2cHg7LS1tZGMtZGlhbG9nLXN1cHBvcnRpbmctdGV4dC13ZWlnaHQ6NDAwOy0tbWRjLWRpYWxvZy1zdXBwb3J0aW5nLXRleHQtdHJhY2tpbmc6MC4wMzEyNWVtfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXB7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7Zm9udC1mYW1pbHk6dmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtmb250LXNpemU6dmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItZm9udC1zaXplLCAxNHB4KTtsaW5lLWhlaWdodDp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1saW5lLWhlaWdodCwgMjBweCk7Zm9udC13ZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItZm9udC13ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItbGV0dGVyLXNwYWNpbmcsIDAuMDE3ODU3MTQyOWVtKTt0ZXh0LWRlY29yYXRpb246dmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi10ZXh0LXRyYW5zZm9ybSwgbm9uZSl9Lm1kYy1mb3JtLWZpZWxkey1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2ZvbnQtZmFtaWx5OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7Zm9udC1zaXplOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWZvbnQtc2l6ZSwgMTRweCk7bGluZS1oZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItbGluZS1oZWlnaHQsIDIwcHgpO2ZvbnQtd2VpZ2h0OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWxldHRlci1zcGFjaW5nLCAwLjAxNzg1NzE0MjllbSk7dGV4dC1kZWNvcmF0aW9uOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLXRleHQtZGVjb3JhdGlvbiwgaW5oZXJpdCk7dGV4dC10cmFuc2Zvcm06dmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItdGV4dC10cmFuc2Zvcm0sIG5vbmUpfS5tZGMtZm9ybS1maWVsZHstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtmb250LWZhbWlseTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO2ZvbnQtc2l6ZTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LXNpemUsIDE0cHgpO2xpbmUtaGVpZ2h0OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWxpbmUtaGVpZ2h0LCAyMHB4KTtmb250LXdlaWdodDp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LXdlaWdodCwgNDAwKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1sZXR0ZXItc3BhY2luZywgMC4wMTc4NTcxNDI5ZW0pO3RleHQtZGVjb3JhdGlvbjp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO3RleHQtdHJhbnNmb3JtOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLXRleHQtdHJhbnNmb3JtLCBub25lKX0ubWF0LW1kYy1zbGlkZXJ7LS1tZGMtc2xpZGVyLWxhYmVsLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tZGMtc2xpZGVyLWxhYmVsLWxhYmVsLXRleHQtc2l6ZToxNHB4Oy0tbWRjLXNsaWRlci1sYWJlbC1sYWJlbC10ZXh0LWxpbmUtaGVpZ2h0OjIycHg7LS1tZGMtc2xpZGVyLWxhYmVsLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wMDcxNDI4NTcxZW07LS1tZGMtc2xpZGVyLWxhYmVsLWxhYmVsLXRleHQtd2VpZ2h0OjUwMH0ubWF0LW1kYy1tZW51LWNvbnRlbnR7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7Zm9udC1mYW1pbHk6dmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7Zm9udC1zaXplOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS1mb250LXNpemUsIDE2cHgpO2xpbmUtaGVpZ2h0OnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS1saW5lLWhlaWdodCwgMjhweCk7Zm9udC13ZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS1sZXR0ZXItc3BhY2luZywgMC4wMDkzNzVlbSk7dGV4dC1kZWNvcmF0aW9uOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO3RleHQtdHJhbnNmb3JtOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS10ZXh0LXRyYW5zZm9ybSwgbm9uZSk7bGluZS1oZWlnaHQ6MjRweH0ubWF0LW1kYy1tZW51LWNvbnRlbnQsLm1hdC1tZGMtbWVudS1jb250ZW50IC5tYXQtbWRjLW1lbnUtaXRlbSAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0ey1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2ZvbnQtZmFtaWx5OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7Zm9udC1zaXplOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWZvbnQtc2l6ZSwgMTZweCk7bGluZS1oZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTEtbGluZS1oZWlnaHQsIDI0cHgpO2ZvbnQtd2VpZ2h0OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWxldHRlci1zcGFjaW5nLCAwLjAzMTI1ZW0pO3RleHQtZGVjb3JhdGlvbjp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5MS10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO3RleHQtdHJhbnNmb3JtOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLXRleHQtdHJhbnNmb3JtLCBub25lKX0ubWF0LW1kYy1saXN0LWJhc2V7LS1tZGMtbGlzdC1saXN0LWl0ZW0tbGFiZWwtdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1kYy1saXN0LWxpc3QtaXRlbS1sYWJlbC10ZXh0LWxpbmUtaGVpZ2h0OjI0cHg7LS1tZGMtbGlzdC1saXN0LWl0ZW0tbGFiZWwtdGV4dC1zaXplOjE2cHg7LS1tZGMtbGlzdC1saXN0LWl0ZW0tbGFiZWwtdGV4dC10cmFja2luZzowLjAzMTI1ZW07LS1tZGMtbGlzdC1saXN0LWl0ZW0tbGFiZWwtdGV4dC13ZWlnaHQ6NDAwOy0tbWRjLWxpc3QtbGlzdC1pdGVtLXN1cHBvcnRpbmctdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1kYy1saXN0LWxpc3QtaXRlbS1zdXBwb3J0aW5nLXRleHQtbGluZS1oZWlnaHQ6MjBweDstLW1kYy1saXN0LWxpc3QtaXRlbS1zdXBwb3J0aW5nLXRleHQtc2l6ZToxNHB4Oy0tbWRjLWxpc3QtbGlzdC1pdGVtLXN1cHBvcnRpbmctdGV4dC10cmFja2luZzowLjAxNzg1NzE0MjllbTstLW1kYy1saXN0LWxpc3QtaXRlbS1zdXBwb3J0aW5nLXRleHQtd2VpZ2h0OjQwMDstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1zdXBwb3J0aW5nLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tZGMtbGlzdC1saXN0LWl0ZW0tdHJhaWxpbmctc3VwcG9ydGluZy10ZXh0LWxpbmUtaGVpZ2h0OjIwcHg7LS1tZGMtbGlzdC1saXN0LWl0ZW0tdHJhaWxpbmctc3VwcG9ydGluZy10ZXh0LXNpemU6MTJweDstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1zdXBwb3J0aW5nLXRleHQtdHJhY2tpbmc6MC4wMzMzMzMzMzMzZW07LS1tZGMtbGlzdC1saXN0LWl0ZW0tdHJhaWxpbmctc3VwcG9ydGluZy10ZXh0LXdlaWdodDo0MDB9Lm1kYy1saXN0LWdyb3VwX19zdWJoZWFkZXJ7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjI4cHg7Zm9udC1mYW1pbHk6Um9ib3RvLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi4wMDkzNzVlbX0ubWF0LW1kYy1wYWdpbmF0b3J7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7Zm9udC1mYW1pbHk6dmFyKC0tbWRjLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO2ZvbnQtc2l6ZTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1jYXB0aW9uLWZvbnQtc2l6ZSwgMTJweCk7bGluZS1oZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktY2FwdGlvbi1saW5lLWhlaWdodCwgMjBweCk7Zm9udC13ZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LXdlaWdodCwgNDAwKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1tZGMtdHlwb2dyYXBoeS1jYXB0aW9uLWxldHRlci1zcGFjaW5nLCAwLjAzMzMzMzMzMzNlbSk7dGV4dC1kZWNvcmF0aW9uOnZhcigtLW1kYy10eXBvZ3JhcGh5LWNhcHRpb24tdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1jYXB0aW9uLXRleHQtdHJhbnNmb3JtLCBub25lKX0ubWF0LW1kYy1wYWdpbmF0b3IgLm1hdC1tZGMtc2VsZWN0LXZhbHVle2ZvbnQtc2l6ZToxMnB4fS5tZGMtdGFiey1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2ZvbnQtZmFtaWx5OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJ1dHRvbi1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO2ZvbnQtc2l6ZTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tZm9udC1zaXplLCAxNHB4KTtsaW5lLWhlaWdodDp2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tbGluZS1oZWlnaHQsIDM2cHgpO2ZvbnQtd2VpZ2h0OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJ1dHRvbi1mb250LXdlaWdodCwgNTAwKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tbGV0dGVyLXNwYWNpbmcsIDAuMDg5Mjg1NzE0M2VtKTt0ZXh0LWRlY29yYXRpb246dmFyKC0tbWRjLXR5cG9ncmFwaHktYnV0dG9uLXRleHQtZGVjb3JhdGlvbiwgbm9uZSk7dGV4dC10cmFuc2Zvcm06dmFyKC0tbWRjLXR5cG9ncmFwaHktYnV0dG9uLXRleHQtdHJhbnNmb3JtLCBub25lKX1AbWVkaWEgYWxsIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpey5tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveF9fZm9jdXMtcmluZ3tkaXNwbGF5Om5vbmV9fS5tZGMtZm9ybS1maWVsZHstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtmb250LWZhbWlseTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO2ZvbnQtc2l6ZTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LXNpemUsIDE0cHgpO2xpbmUtaGVpZ2h0OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWxpbmUtaGVpZ2h0LCAyMHB4KTtmb250LXdlaWdodDp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LXdlaWdodCwgNDAwKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1sZXR0ZXItc3BhY2luZywgMC4wMTc4NTcxNDI5ZW0pO3RleHQtZGVjb3JhdGlvbjp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO3RleHQtdHJhbnNmb3JtOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLXRleHQtdHJhbnNmb3JtLCBub25lKX0ubWRjLWJ1dHRvbnstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtmb250LWZhbWlseTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtmb250LXNpemU6dmFyKC0tbWRjLXR5cG9ncmFwaHktYnV0dG9uLWZvbnQtc2l6ZSwgMTRweCk7bGluZS1oZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktYnV0dG9uLWxpbmUtaGVpZ2h0LCAzNnB4KTtmb250LXdlaWdodDp2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tZm9udC13ZWlnaHQsIDUwMCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tbWRjLXR5cG9ncmFwaHktYnV0dG9uLWxldHRlci1zcGFjaW5nLCAwLjA4OTI4NTcxNDNlbSk7dGV4dC1kZWNvcmF0aW9uOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJ1dHRvbi10ZXh0LWRlY29yYXRpb24sIG5vbmUpO3RleHQtdHJhbnNmb3JtOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJ1dHRvbi10ZXh0LXRyYW5zZm9ybSwgbm9uZSl9Lm1kYy1mYWItLWV4dGVuZGVkey1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2ZvbnQtZmFtaWx5OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJ1dHRvbi1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO2ZvbnQtc2l6ZTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tZm9udC1zaXplLCAxNHB4KTtsaW5lLWhlaWdodDp2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tbGluZS1oZWlnaHQsIDM2cHgpO2ZvbnQtd2VpZ2h0OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJ1dHRvbi1mb250LXdlaWdodCwgNTAwKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tbGV0dGVyLXNwYWNpbmcsIDAuMDg5Mjg1NzE0M2VtKTt0ZXh0LWRlY29yYXRpb246dmFyKC0tbWRjLXR5cG9ncmFwaHktYnV0dG9uLXRleHQtZGVjb3JhdGlvbiwgbm9uZSk7dGV4dC10cmFuc2Zvcm06dmFyKC0tbWRjLXR5cG9ncmFwaHktYnV0dG9uLXRleHQtdHJhbnNmb3JtLCBub25lKX0ubWF0LW1kYy1zbmFjay1iYXItY29udGFpbmVyey0tbWRjLXNuYWNrYmFyLXN1cHBvcnRpbmctdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1kYy1zbmFja2Jhci1zdXBwb3J0aW5nLXRleHQtbGluZS1oZWlnaHQ6MjBweDstLW1kYy1zbmFja2Jhci1zdXBwb3J0aW5nLXRleHQtc2l6ZToxNHB4Oy0tbWRjLXNuYWNrYmFyLXN1cHBvcnRpbmctdGV4dC13ZWlnaHQ6NDAwfS5tZGMtZGF0YS10YWJsZV9fY29udGVudHstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtmb250LWZhbWlseTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO2ZvbnQtc2l6ZTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LXNpemUsIDE0cHgpO2xpbmUtaGVpZ2h0OnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWxpbmUtaGVpZ2h0LCAyMHB4KTtmb250LXdlaWdodDp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LXdlaWdodCwgNDAwKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1sZXR0ZXItc3BhY2luZywgMC4wMTc4NTcxNDI5ZW0pO3RleHQtZGVjb3JhdGlvbjp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO3RleHQtdHJhbnNmb3JtOnZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLXRleHQtdHJhbnNmb3JtLCBub25lKX0ubWRjLWRhdGEtdGFibGVfX2NlbGx7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7Zm9udC1mYW1pbHk6dmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtmb250LXNpemU6dmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItZm9udC1zaXplLCAxNHB4KTtsaW5lLWhlaWdodDp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1saW5lLWhlaWdodCwgMjBweCk7Zm9udC13ZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItZm9udC13ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItbGV0dGVyLXNwYWNpbmcsIDAuMDE3ODU3MTQyOWVtKTt0ZXh0LWRlY29yYXRpb246dmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi10ZXh0LXRyYW5zZm9ybSwgbm9uZSl9Lm1kYy1kYXRhLXRhYmxlX19oZWFkZXItY2VsbHstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtmb250LWZhbWlseTp2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTItZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtmb250LXNpemU6dmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUyLWZvbnQtc2l6ZSwgMTRweCk7bGluZS1oZWlnaHQ6dmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUyLWxpbmUtaGVpZ2h0LCAyMnB4KTtmb250LXdlaWdodDp2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTItZm9udC13ZWlnaHQsIDUwMCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUyLWxldHRlci1zcGFjaW5nLCAwLjAwNzE0Mjg1NzFlbSk7dGV4dC1kZWNvcmF0aW9uOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMi10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO3RleHQtdHJhbnNmb3JtOnZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMi10ZXh0LXRyYW5zZm9ybSwgbm9uZSl9Lm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEpfS5tYXQtbWRjLW9wdGlvbntjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpfS5tYXQtbWRjLW9wdGlvbjpob3Zlcjpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKSwubWF0LW1kYy1vcHRpb246Zm9jdXM6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCksLm1hdC1tZGMtb3B0aW9uLm1hdC1tZGMtb3B0aW9uLWFjdGl2ZSwubWF0LW1kYy1vcHRpb24ubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tYXQtbWRjLW9wdGlvbi1tdWx0aXBsZSk6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCl7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wNCl9Lm1hdC1wcmltYXJ5IC5tYXQtbWRjLW9wdGlvbi5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKSAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjZjU3YzAwKX0ubWF0LWFjY2VudCAubWF0LW1kYy1vcHRpb24ubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjZmY5ODAwKX0ubWF0LXdhcm4gLm1hdC1tZGMtb3B0aW9uLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1vcHRncm91cC1sYWJlbHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpfS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGx7Y29sb3I6IzYxNjE2MX0ubWF0LXBzZXVkby1jaGVja2JveC1mdWxsLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWR7Y29sb3I6I2IwYjBiMH0ubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWw6OmFmdGVyLC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXJ7Y29sb3I6I2Y1N2MwMH0ubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGwsLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1mdWxse2JhY2tncm91bmQ6I2Y1N2MwMH0ubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGw6OmFmdGVyLC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbDo6YWZ0ZXJ7Y29sb3I6I2ZmZn0ubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXIsLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWw6OmFmdGVye2NvbG9yOiNmZjk4MDB9Lm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGwsLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGx7YmFja2dyb3VuZDojZmY5ODAwfS5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1mdWxsOjphZnRlciwubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbDo6YWZ0ZXJ7Y29sb3I6I2ZmZn0ubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXIsLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWw6OmFmdGVye2NvbG9yOiNmZjk4MDB9Lm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGwsLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGx7YmFja2dyb3VuZDojZmY5ODAwfS5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1mdWxsOjphZnRlciwubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbDo6YWZ0ZXJ7Y29sb3I6I2ZmZn0ubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWw6OmFmdGVyLC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXJ7Y29sb3I6I2Y0NDMzNn0ubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGwsLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1mdWxse2JhY2tncm91bmQ6I2Y0NDMzNn0ubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGw6OmFmdGVyLC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbDo6YWZ0ZXJ7Y29sb3I6I2ZmZn0ubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsOjphZnRlciwubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsOjphZnRlcntjb2xvcjojYjBiMGIwfS5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGwsLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbHtiYWNrZ3JvdW5kOiNiMGIwYjB9Lm1hdC1hcHAtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWVsZXZhdGlvbi16MCwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MHtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MSwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MXtib3gtc2hhZG93OjBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejIsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejJ7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXozLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoze2JveC1zaGFkb3c6MHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16NCwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16NHtib3gtc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXo1LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXo1e2JveC1zaGFkb3c6MHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA1cHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejYsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejZ7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejcsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejd7Ym94LXNoYWRvdzowcHggNHB4IDVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDdweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMnB4IDE2cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejgsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejh7Ym94LXNoYWRvdzowcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejksLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejl7Ym94LXNoYWRvdzowcHggNXB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDlweCAxMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejEwLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxMHtib3gtc2hhZG93OjBweCA2cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTBweCAxNHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDE4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejExLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxMXtib3gtc2hhZG93OjBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejEyLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxMntib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejEzLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxM3tib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTNweCAxOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE0LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxNHtib3gtc2hhZG93OjBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE1LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxNXtib3gtc2hhZG93OjBweCA4cHggOXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTVweCAyMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDI4cHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE2LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxNntib3gtc2hhZG93OjBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxNywubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MTd7Ym94LXNoYWRvdzowcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MTgsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejE4e2JveC1zaGFkb3c6MHB4IDlweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMThweCAyOHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggN3B4IDM0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE5LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxOXtib3gtc2hhZG93OjBweCA5cHggMTJweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE5cHggMjlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDdweCAzNnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoyMCwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MjB7Ym94LXNoYWRvdzowcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejIxLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoyMXtib3gtc2hhZG93OjBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMXB4IDMzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDBweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MjIsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejIye2JveC1zaGFkb3c6MHB4IDEwcHggMTRweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIycHggMzVweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MnB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoyMywubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MjN7Ym94LXNoYWRvdzowcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejI0LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoyNHtib3gtc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXJ7ZGlzcGxheTpub25lfS5tYXQtbWRjLWNhcmR7Ym94LXNoYWRvdzowcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLWVsZXZhdGVkLWNhcmQtY29udGFpbmVyLWNvbG9yOiNmZmZ9Lm1hdC1tZGMtY2FyZC1vdXRsaW5lZHtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1vdXRsaW5lZC1jYXJkLW91dGxpbmUtY29sb3I6I2UwZTBlMH0ubWF0LW1kYy1jYXJkLXN1YnRpdGxle2NvbG9yOiM2MTYxNjF9Lm1hdC1tZGMtcHJvZ3Jlc3MtYmFyey0tbWRjLWxpbmVhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiNmNTdjMDB9Lm1hdC1tZGMtcHJvZ3Jlc3MtYmFyIC5tZGMtbGluZWFyLXByb2dyZXNzX19idWZmZXItZG90c3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA1IDInIHhtbDpzcGFjZT0ncHJlc2VydmUnIHZpZXdCb3g9JzAgMCA1IDInIHByZXNlcnZlQXNwZWN0UmF0aW89J25vbmUgc2xpY2UnJTNFJTNDY2lyY2xlIGN4PScxJyBjeT0nMScgcj0nMScgZmlsbD0ncmdiYSgyNDUsIDEyNCwgMCwgMC4yNSknLyUzRSUzQy9zdmclM0UiKX0ubWF0LW1kYy1wcm9ncmVzcy1iYXIgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2J1ZmZlci1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NSwgMTI0LCAwLCAwLjI1KX0ubWF0LW1kYy1wcm9ncmVzcy1iYXIubWF0LWFjY2VudHstLW1kYy1saW5lYXItcHJvZ3Jlc3MtYWN0aXZlLWluZGljYXRvci1jb2xvcjojZmY5ODAwfS5tYXQtbWRjLXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tZGMtbGluZWFyLXByb2dyZXNzX19idWZmZXItZG90c3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA1IDInIHhtbDpzcGFjZT0ncHJlc2VydmUnIHZpZXdCb3g9JzAgMCA1IDInIHByZXNlcnZlQXNwZWN0UmF0aW89J25vbmUgc2xpY2UnJTNFJTNDY2lyY2xlIGN4PScxJyBjeT0nMScgcj0nMScgZmlsbD0ncmdiYSgyNTUsIDE1MiwgMCwgMC4yNSknLyUzRSUzQy9zdmclM0UiKX0ubWF0LW1kYy1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAxNTIsIDAsIDAuMjUpfS5tYXQtbWRjLXByb2dyZXNzLWJhci5tYXQtd2FybnstLW1kYy1saW5lYXItcHJvZ3Jlc3MtYWN0aXZlLWluZGljYXRvci1jb2xvcjojZjQ0MzM2fS5tYXQtbWRjLXByb2dyZXNzLWJhci5tYXQtd2FybiAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyLWRvdHN7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB4PScwcHgnIHk9JzBweCcgZW5hYmxlLWJhY2tncm91bmQ9J25ldyAwIDAgNSAyJyB4bWw6c3BhY2U9J3ByZXNlcnZlJyB2aWV3Qm94PScwIDAgNSAyJyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSdub25lIHNsaWNlJyUzRSUzQ2NpcmNsZSBjeD0nMScgY3k9JzEnIHI9JzEnIGZpbGw9J3JnYmEoMjQ0LCA2NywgNTQsIDAuMjUpJy8lM0UlM0Mvc3ZnJTNFIil9Lm1hdC1tZGMtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tZGMtbGluZWFyLXByb2dyZXNzX19idWZmZXItYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsIDY3LCA1NCwgMC4yNSl9Lm1hdC1tZGMtdG9vbHRpcHstLW1kYy1wbGFpbi10b29sdGlwLWNvbnRhaW5lci1jb2xvcjojNjE2MTYxOy0tbWRjLXBsYWluLXRvb2x0aXAtc3VwcG9ydGluZy10ZXh0LWNvbG9yOndoaXRlfS5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1mbG9hdGluZy1sYWJlbHtjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNil9Lm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLXRleHQtZmllbGRfX2lucHV0e2NvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyl9QG1lZGlhIGFsbHsubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6OnBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMCwgMCwgMCwgMC42KX19QG1lZGlhIGFsbHsubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMCwgMCwgMCwgMC42KX19Lm1kYy10ZXh0LWZpZWxkIC5tZGMtdGV4dC1maWVsZF9faW5wdXR7Y2FyZXQtY29sb3I6dmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICNmNTdjMDApfS5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkrLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dHtjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNil9Lm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIsLm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSsubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVye2NvbG9yOnJnYmEoMCwgMCwgMCwgMC42KX0ubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbi0tbGVhZGluZ3tjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpfS5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uLS10cmFpbGluZ3tjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpfS5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkX19hZmZpeC0tcHJlZml4e2NvbG9yOnJnYmEoMCwgMCwgMCwgMC42KX0ubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9fYWZmaXgtLXN1ZmZpeHtjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNil9Lm1kYy10ZXh0LWZpZWxkLS1maWxsZWQgLm1kYy10ZXh0LWZpZWxkX19yaXBwbGU6OmJlZm9yZSwubWRjLXRleHQtZmllbGQtLWZpbGxlZCAubWRjLXRleHQtZmllbGRfX3JpcHBsZTo6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtcmlwcGxlLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuODcpKX0ubWRjLXRleHQtZmllbGQtLWZpbGxlZDpob3ZlciAubWRjLXRleHQtZmllbGRfX3JpcHBsZTo6YmVmb3JlLC5tZGMtdGV4dC1maWVsZC0tZmlsbGVkLm1kYy1yaXBwbGUtc3VyZmFjZS0taG92ZXIgLm1kYy10ZXh0LWZpZWxkX19yaXBwbGU6OmJlZm9yZXtvcGFjaXR5OnZhcigtLW1kYy1yaXBwbGUtaG92ZXItb3BhY2l0eSwgMC4wNCl9Lm1kYy10ZXh0LWZpZWxkLS1maWxsZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkIC5tZGMtdGV4dC1maWVsZF9fcmlwcGxlOjpiZWZvcmUsLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1cyAubWRjLXRleHQtZmllbGRfX3JpcHBsZTo6YmVmb3Jle29wYWNpdHk6dmFyKC0tbWRjLXJpcHBsZS1mb2N1cy1vcGFjaXR5LCAwLjEyKX0ubWRjLXRleHQtZmllbGQtLWZpbGxlZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZXNtb2tlfS5tZGMtdGV4dC1maWVsZC0tZmlsbGVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWxpbmUtcmlwcGxlOjpiZWZvcmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNDIpfS5tZGMtdGV4dC1maWVsZC0tZmlsbGVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpob3ZlciAubWRjLWxpbmUtcmlwcGxlOjpiZWZvcmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpfS5tZGMtdGV4dC1maWVsZC0tZmlsbGVkIC5tZGMtbGluZS1yaXBwbGU6OmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICNmNTdjMDApfS5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCwubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmd7Ym9yZGVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCl9Lm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCk6aG92ZXIgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCk6aG92ZXIgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpOmhvdmVyIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KX0ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgI2Y1N2MwMCl9Lm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX3JpcHBsZTo6YmVmb3JlLC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19yaXBwbGU6OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLXJpcHBsZS1jb2xvciwgdHJhbnNwYXJlbnQpfS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1mbG9hdGluZy1sYWJlbHtjb2xvcjpyZ2JhKDI0NSwgMTI0LCAwLCAwLjg3KX0ubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOmhvdmVyIC5tZGMtbGluZS1yaXBwbGU6OmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWxpbmUtcmlwcGxlOjphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWZsb2F0aW5nLWxhYmVse2NvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0taW52YWxpZCsubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LS12YWxpZGF0aW9uLW1zZ3tjb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tZGMtdGV4dC1maWVsZC0taW52YWxpZCAubWRjLXRleHQtZmllbGRfX2lucHV0e2NhcmV0LWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLXRleHQtZmllbGRfX2ljb24tLXRyYWlsaW5ne2NvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWxpbmUtcmlwcGxlOjpiZWZvcmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmd7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKTpob3ZlciAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpOmhvdmVyIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCwubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpOmhvdmVyIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dHtjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfUBtZWRpYSBhbGx7Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2lucHV0OjpwbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfX1AbWVkaWEgYWxsey5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KX19Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLWZsb2F0aW5nLWxhYmVse2NvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCl9Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCsubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0e2NvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCl9Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIsLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCsubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVye2NvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCl9Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2ljb24tLWxlYWRpbmd7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjMpfS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pY29uLS10cmFpbGluZ3tjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMyl9Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2FmZml4LS1wcmVmaXh7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KX0ubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZF9fYWZmaXgtLXN1ZmZpeHtjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1saW5lLXJpcHBsZTo6YmVmb3Jle2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA2KX0ubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMDYpfUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKXsubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6OnBsYWNlaG9sZGVye2NvbG9yOkdyYXlUZXh0fX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSwoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSl7Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2lucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjpHcmF5VGV4dH19QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpey5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1mbG9hdGluZy1sYWJlbHtjb2xvcjpHcmF5VGV4dH19QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpey5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQrLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dHtjb2xvcjpHcmF5VGV4dH19QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpey5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQrLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlcntjb2xvcjpHcmF5VGV4dH19QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpey5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pY29uLS1sZWFkaW5ne2NvbG9yOkdyYXlUZXh0fX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSwoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSl7Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2ljb24tLXRyYWlsaW5ne2NvbG9yOkdyYXlUZXh0fX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSwoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSl7Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2FmZml4LS1wcmVmaXh7Y29sb3I6R3JheVRleHR9fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKXsubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZF9fYWZmaXgtLXN1ZmZpeHtjb2xvcjpHcmF5VGV4dH19QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpey5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1saW5lLXJpcHBsZTo6YmVmb3Jle2JvcmRlci1ib3R0b20tY29sb3I6R3JheVRleHR9fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKXsubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjpHcmF5VGV4dH19Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZC5tZGMtdGV4dC1maWVsZC0tZmlsbGVke2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYX0ubWF0LW1kYy1mb3JtLWZpZWxkLWVycm9ye2NvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1hdC1tZGMtZm9ybS1maWVsZC1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtbWRjLWZvcm0tZmllbGQ6aG92ZXIgLm1hdC1tZGMtZm9ybS1maWVsZC1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjA0fS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1tZGMtZm9ybS1maWVsZC1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5tYXQtbWRjLWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LW1kYy1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjpyZ2JhKDAsMCwwLC41NCl9Lm1hdC1tZGMtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkLm1hdC1wcmltYXJ5IC5tYXQtbWRjLWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOnJnYmEoMjQ1LDEyNCwwLC44Nyl9Lm1hdC1tZGMtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1tZGMtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6cmdiYSgyNTUsMTUyLDAsLjg3KX0ubWF0LW1kYy1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1tZGMtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6cmdiYSgyNDQsNjcsNTQsLjg3KX0ubWF0LW1kYy1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1tZGMtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGRfX2lucHV0e2NhcmV0LWNvbG9yOnZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICNmZjk4MDApfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1saW5lLXJpcHBsZTo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjZmY5ODAwKX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWZsb2F0aW5nLWxhYmVse2NvbG9yOnJnYmEoMjU1LCAxNTIsIDAsIDAuODcpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOmhvdmVyIC5tZGMtbGluZS1yaXBwbGU6OmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1saW5lLXJpcHBsZTo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtZmxvYXRpbmctbGFiZWx7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0taW52YWxpZCsubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LS12YWxpZGF0aW9uLW1zZ3tjb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWludmFsaWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dHtjYXJldC1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbi0tdHJhaWxpbmd7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWxpbmUtcmlwcGxlOjpiZWZvcmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCwubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmd7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCk6aG92ZXIgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCk6aG92ZXIgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpOmhvdmVyIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmd7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICNmZjk4MDApfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkX19pbnB1dHtjYXJldC1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm46bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbGluZS1yaXBwbGU6OmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1mbG9hdGluZy1sYWJlbHtjb2xvcjpyZ2JhKDI0NCwgNjcsIDU0LCAwLjg3KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6aG92ZXIgLm1kYy1saW5lLXJpcHBsZTo6YmVmb3Jle2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1saW5lLXJpcHBsZTo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWZsb2F0aW5nLWxhYmVse2NvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkKy5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNne2NvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWludmFsaWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dHtjYXJldC1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLXRleHQtZmllbGRfX2ljb24tLXRyYWlsaW5ne2NvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbGluZS1yaXBwbGU6OmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCk6aG92ZXIgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpOmhvdmVyIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCwubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCk6aG92ZXIgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmd7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCwubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1tZGMtZm9ybS1maWVsZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2h7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMCl9W2Rpcj1ydGxdIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LW1kYy1mb3JtLWZpZWxkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaHtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgwLDAsMCwwKX0ubWF0LW1kYy1mb3JtLWZpZWxkLWluZml4e21pbi1oZWlnaHQ6NTZweH0ubWF0LW1kYy10ZXh0LWZpZWxkLXdyYXBwZXIgLm1hdC1tZGMtZm9ybS1maWVsZC1mbGV4IC5tYXQtbWRjLWZsb2F0aW5nLWxhYmVse3RvcDoyOHB4fS5tYXQtbWRjLXRleHQtZmllbGQtd3JhcHBlci5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3Zley0tbWF0LW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRyYW5zZm9ybTogdHJhbnNsYXRlWSggLTM0Ljc1cHgpIHNjYWxlKHZhcigtLW1hdC1tZGMtZm9ybS1maWVsZC1mbG9hdGluZy1sYWJlbC1zY2FsZSwgMC43NSkpO3RyYW5zZm9ybTp2YXIoLS1tYXQtbWRjLWZvcm0tZmllbGQtbGFiZWwtdHJhbnNmb3JtKX0ubWF0LW1kYy10ZXh0LWZpZWxkLXdyYXBwZXIubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tYXQtbWRjLWZvcm0tZmllbGQtaW5maXh7cGFkZGluZy10b3A6MTZweDtwYWRkaW5nLWJvdHRvbToxNnB4fS5tYXQtbWRjLXRleHQtZmllbGQtd3JhcHBlcjpub3QoLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCkgLm1hdC1tZGMtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nLXRvcDoyNHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWRjLXRleHQtZmllbGQtLW5vLWxhYmVsOm5vdCgubWRjLXRleHQtZmllbGQtLW91dGxpbmVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkgLm1hdC1tZGMtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nLXRvcDoxNnB4O3BhZGRpbmctYm90dG9tOjE2cHh9Lm1kYy1tZW51LXN1cmZhY2V7Ym94LXNoYWRvdzowcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtc3VyZmFjZSwgI2ZmZik7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApfS5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuODcpKX0ubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtc2Vjb25kYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC41NCkpfS5tZGMtbGlzdC1pdGVtX19vdmVybGluZS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LWhpbnQtb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjM4KSl9Lm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWRjLWxpc3QtaXRlbS0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19lbmR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LC5tZGMtbGlzdC1pdGVtLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX2VuZHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1pY29uLW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpfS5tZGMtbGlzdC1pdGVtX19lbmR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuMzgpKX0ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fY29udGVudCwubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX2VuZHtvcGFjaXR5OjAuMzh9Lm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApfS5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApfS5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fb3ZlcmxpbmUtdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCl9Lm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCl9Lm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fZW5ke2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQubWRjLWxpc3QtaXRlbS0td2l0aC10cmFpbGluZy1tZXRhIC5tZGMtbGlzdC1pdGVtX19lbmR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApfS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZCAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0LC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgI2Y1N2MwMCl9Lm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgI2Y1N2MwMCl9Lm1kYy1kZXByZWNhdGVkLWxpc3QtZ3JvdXBfX3N1YmhlYWRlcntjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpfS5tZGMtbGlzdC1kaXZpZGVyOjphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOndoaXRlfS5tZGMtbGlzdC1kaXZpZGVye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LW1kYy1zZWxlY3QtdmFsdWV7Y29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtbWRjLXNlbGVjdC1wbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDAsMCwwLC42KX0ubWF0LW1kYy1zZWxlY3QtZGlzYWJsZWQgLm1hdC1tZGMtc2VsZWN0LXZhbHVle2NvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWF0LW1kYy1zZWxlY3QtYXJyb3d7Y29sb3I6cmdiYSgwLDAsMCwuNTQpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXByaW1hcnkgLm1hdC1tZGMtc2VsZWN0LWFycm93e2NvbG9yOnJnYmEoMjQ1LDEyNCwwLC44Nyl9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtbWRjLXNlbGVjdC1hcnJvd3tjb2xvcjpyZ2JhKDI1NSwxNTIsMCwuODcpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1tZGMtc2VsZWN0LWFycm93e2NvbG9yOnJnYmEoMjQ0LDY3LDU0LC44Nyl9Lm1hdC1tZGMtZm9ybS1maWVsZCAubWF0LW1kYy1zZWxlY3QubWF0LW1kYy1zZWxlY3QtaW52YWxpZCAubWF0LW1kYy1zZWxlY3QtYXJyb3d7Y29sb3I6cmdiYSgyNDQsNjcsNTQsLjg3KX0ubWF0LW1kYy1mb3JtLWZpZWxkIC5tYXQtbWRjLXNlbGVjdC5tYXQtbWRjLXNlbGVjdC1kaXNhYmxlZCAubWF0LW1kYy1zZWxlY3QtYXJyb3d7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tZGMtbWVudS1zdXJmYWNle2JveC1zaGFkb3c6MHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLXRoZW1lLXN1cmZhY2UsICNmZmYpO2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjg3KSl9Lm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LXNlY29uZGFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuNTQpKX0ubWRjLWxpc3QtaXRlbV9fb3ZlcmxpbmUtdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1oaW50LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpfS5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fZW5ke2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWRjLWxpc3QtaXRlbS0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19lbmR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtaWNvbi1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuMzgpKX0ubWRjLWxpc3QtaXRlbV9fZW5ke2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LWhpbnQtb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjM4KSl9Lm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX2NvbnRlbnQsLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19lbmR7b3BhY2l0eTowLjM4fS5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX292ZXJsaW5lLXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApfS5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApfS5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZC5tZGMtbGlzdC1pdGVtLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX2VuZHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCl9Lm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHJhaWxpbmctbWV0YSAubWRjLWxpc3QtaXRlbV9fZW5ke2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dCwubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICNmNTdjMDApfS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICNmNTdjMDApfS5tZGMtZGVwcmVjYXRlZC1saXN0LWdyb3VwX19zdWJoZWFkZXJ7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuODcpKX0ubWRjLWxpc3QtZGl2aWRlcjo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp3aGl0ZX0ubWRjLWxpc3QtZGl2aWRlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1tZGMtZGlhbG9nLWNvbnRhaW5lcnstLW1kYy1kaWFsb2ctY29udGFpbmVyLWNvbG9yOndoaXRlOy0tbWRjLWRpYWxvZy13aXRoLWRpdmlkZXItZGl2aWRlci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLWRpYWxvZy1zdWJoZWFkLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tZGMtZGlhbG9nLXN1cHBvcnRpbmctdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNil9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcHstLW1kYy1jaGlwLWVsZXZhdGVkLWNvbnRhaW5lci1jb2xvcjojZTBlMGUwOy0tbWRjLWNoaXAtZWxldmF0ZWQtZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yOiNlMGUwZTA7LS1tZGMtY2hpcC1sYWJlbC10ZXh0LWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hpcC1kaXNhYmxlZC1sYWJlbC10ZXh0LWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hpcC13aXRoLWljb24taWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoaXAtd2l0aC1pY29uLWRpc2FibGVkLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi1kaXNhYmxlZC10cmFpbGluZy1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tdHJhaWxpbmctaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoaXAtd2l0aC1pY29uLXNlbGVjdGVkLWljb24tY29sb3I6IzIxMjEyMX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1hdC1wcmltYXJ5Lm1hdC1tZGMtY2hpcC1zZWxlY3RlZCwubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1hdC1wcmltYXJ5Lm1hdC1tZGMtY2hpcC1oaWdobGlnaHRlZHstLW1kYy1jaGlwLWVsZXZhdGVkLWNvbnRhaW5lci1jb2xvcjojZjU3YzAwOy0tbWRjLWNoaXAtZWxldmF0ZWQtZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yOiNmNTdjMDA7LS1tZGMtY2hpcC1sYWJlbC10ZXh0LWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC1pY29uLWRpc2FibGVkLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tZGlzYWJsZWQtdHJhaWxpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi10cmFpbGluZy1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC1pY29uLXNlbGVjdGVkLWljb24tY29sb3I6d2hpdGV9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtYWNjZW50Lm1hdC1tZGMtY2hpcC1zZWxlY3RlZCwubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1hdC1hY2NlbnQubWF0LW1kYy1jaGlwLWhpZ2hsaWdodGVkey0tbWRjLWNoaXAtZWxldmF0ZWQtY29udGFpbmVyLWNvbG9yOiNmZjk4MDA7LS1tZGMtY2hpcC1lbGV2YXRlZC1kaXNhYmxlZC1jb250YWluZXItY29sb3I6I2ZmOTgwMDstLW1kYy1jaGlwLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tZGMtY2hpcC1kaXNhYmxlZC1sYWJlbC10ZXh0LWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC1pY29uLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLWljb24tZGlzYWJsZWQtaWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi1kaXNhYmxlZC10cmFpbGluZy1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC10cmFpbGluZy1pY29uLXRyYWlsaW5nLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLWljb24tc2VsZWN0ZWQtaWNvbi1jb2xvcjp3aGl0ZX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1hdC13YXJuLm1hdC1tZGMtY2hpcC1zZWxlY3RlZCwubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1hdC13YXJuLm1hdC1tZGMtY2hpcC1oaWdobGlnaHRlZHstLW1kYy1jaGlwLWVsZXZhdGVkLWNvbnRhaW5lci1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoaXAtZWxldmF0ZWQtZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hpcC1sYWJlbC10ZXh0LWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC1pY29uLWRpc2FibGVkLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tZGlzYWJsZWQtdHJhaWxpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi10cmFpbGluZy1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC1pY29uLXNlbGVjdGVkLWljb24tY29sb3I6d2hpdGV9Lm1hdC1tZGMtY2hpcC1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQ6IzAwMH0ubWF0LW1kYy1jaGlwe2hlaWdodDozMnB4fS5tYXQtbWRjLXNsaWRlLXRvZ2dsZXstLW1kYy1zd2l0Y2gtZGlzYWJsZWQtc2VsZWN0ZWQtaGFuZGxlLWNvbG9yOiM0MjQyNDI7LS1tZGMtc3dpdGNoLWRpc2FibGVkLXVuc2VsZWN0ZWQtaGFuZGxlLWNvbG9yOiM0MjQyNDI7LS1tZGMtc3dpdGNoLWRpc2FibGVkLXNlbGVjdGVkLXRyYWNrLWNvbG9yOiM0MjQyNDI7LS1tZGMtc3dpdGNoLWRpc2FibGVkLXVuc2VsZWN0ZWQtdHJhY2stY29sb3I6IzQyNDI0MjstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjojNDI0MjQyOy0tbWRjLXN3aXRjaC11bnNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItY29sb3I6IzQyNDI0MjstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjojNDI0MjQyOy0tbWRjLXN3aXRjaC11bnNlbGVjdGVkLWZvY3VzLXRyYWNrLWNvbG9yOiNlMGUwZTA7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtaG92ZXItdHJhY2stY29sb3I6I2UwZTBlMDstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1wcmVzc2VkLXRyYWNrLWNvbG9yOiNlMGUwZTA7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtdHJhY2stY29sb3I6I2UwZTBlMDstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1mb2N1cy1oYW5kbGUtY29sb3I6IzIxMjEyMTstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1ob3Zlci1oYW5kbGUtY29sb3I6IzIxMjEyMTstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1wcmVzc2VkLWhhbmRsZS1jb2xvcjojMjEyMTIxOy0tbWRjLXN3aXRjaC1oYW5kbGUtc3VyZmFjZS1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtc3VyZmFjZSwgI2ZmZik7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtaGFuZGxlLWNvbG9yOiM2MTYxNjE7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWljb24tY29sb3I6I2ZmZjstLW1kYy1zd2l0Y2gtZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmZmOy0tbWRjLXN3aXRjaC1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6I2ZmZjstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1pY29uLWNvbG9yOiNmZmZ9Lm1hdC1tZGMtc2xpZGUtdG9nZ2xlIC5tZGMtZm9ybS1maWVsZHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpfS5tYXQtbWRjLXNsaWRlLXRvZ2dsZSAubWRjLXN3aXRjaC0tZGlzYWJsZWQrbGFiZWx7Y29sb3I6Izc1NzU3NX0ubWF0LW1kYy1zbGlkZS10b2dnbGUubWF0LXByaW1hcnl7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOiNmYjhjMDA7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhhbmRsZS1jb2xvcjojZmI4YzAwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjojZmI4YzAwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1wcmVzc2VkLXN0YXRlLWxheWVyLWNvbG9yOiNmYjhjMDA7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWZvY3VzLWhhbmRsZS1jb2xvcjojZTY1MTAwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1ob3Zlci1oYW5kbGUtY29sb3I6I2U2NTEwMDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtcHJlc3NlZC1oYW5kbGUtY29sb3I6I2U2NTEwMDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtZm9jdXMtdHJhY2stY29sb3I6I2ZmYjc0ZDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItdHJhY2stY29sb3I6I2ZmYjc0ZDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtcHJlc3NlZC10cmFjay1jb2xvcjojZmZiNzRkOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC10cmFjay1jb2xvcjojZmZiNzRkfS5tYXQtbWRjLXNsaWRlLXRvZ2dsZS5tYXQtYWNjZW50ey0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjojZmI4YzAwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1oYW5kbGUtY29sb3I6I2ZiOGMwMDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6I2ZiOGMwMDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjojZmI4YzAwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy1oYW5kbGUtY29sb3I6I2U2NTEwMDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItaGFuZGxlLWNvbG9yOiNlNjUxMDA7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtaGFuZGxlLWNvbG9yOiNlNjUxMDA7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWZvY3VzLXRyYWNrLWNvbG9yOiNmZmI3NGQ7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLXRyYWNrLWNvbG9yOiNmZmI3NGQ7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtdHJhY2stY29sb3I6I2ZmYjc0ZDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtdHJhY2stY29sb3I6I2ZmYjc0ZH0ubWF0LW1kYy1zbGlkZS10b2dnbGUubWF0LXdhcm57LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOiNlNTM5MzU7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhhbmRsZS1jb2xvcjojZTUzOTM1Oy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjojZTUzOTM1Oy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1wcmVzc2VkLXN0YXRlLWxheWVyLWNvbG9yOiNlNTM5MzU7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWZvY3VzLWhhbmRsZS1jb2xvcjojYjcxYzFjOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1ob3Zlci1oYW5kbGUtY29sb3I6I2I3MWMxYzstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtcHJlc3NlZC1oYW5kbGUtY29sb3I6I2I3MWMxYzstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtZm9jdXMtdHJhY2stY29sb3I6I2U1NzM3MzstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItdHJhY2stY29sb3I6I2U1NzM3MzstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtcHJlc3NlZC10cmFjay1jb2xvcjojZTU3MzczOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC10cmFjay1jb2xvcjojZTU3MzczfS5tYXQtbWRjLXNsaWRlLXRvZ2dsZXstLW1kYy1zd2l0Y2gtc3RhdGUtbGF5ZXItc2l6ZTo0OHB4fS5tYXQtbWRjLXJhZGlvLWJ1dHRvbiAubWRjLWZvcm0tZmllbGR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuODcpKX0ubWF0LW1kYy1yYWRpby1idXR0b24ubWF0LXByaW1hcnl7LS1tZGMtcmFkaW8tZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjojMDAwOy0tbWRjLXJhZGlvLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojMDAwOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZjU3YzAwOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2Y1N2MwMDstLW1kYy1yYWRpby1zZWxlY3RlZC1pY29uLWNvbG9yOiNmNTdjMDA7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNmNTdjMDA7LS1tYXQtbWRjLXJhZGlvLXJpcHBsZS1jb2xvcjogIzAwMDstLW1hdC1tZGMtcmFkaW8tY2hlY2tlZC1yaXBwbGUtY29sb3I6ICNmNTdjMDB9Lm1hdC1tZGMtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tZGMtcmFkaW8tLWRpc2FibGVkK2xhYmVse2NvbG9yOiM3NTc1NzV9Lm1hdC1tZGMtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnR7LS1tZGMtcmFkaW8tZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjojMDAwOy0tbWRjLXJhZGlvLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojMDAwOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZmY5ODAwOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2ZmOTgwMDstLW1kYy1yYWRpby1zZWxlY3RlZC1pY29uLWNvbG9yOiNmZjk4MDA7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNmZjk4MDA7LS1tYXQtbWRjLXJhZGlvLXJpcHBsZS1jb2xvcjogIzAwMDstLW1hdC1tZGMtcmFkaW8tY2hlY2tlZC1yaXBwbGUtY29sb3I6ICNmZjk4MDB9Lm1hdC1tZGMtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1kYy1yYWRpby0tZGlzYWJsZWQrbGFiZWx7Y29sb3I6Izc1NzU3NX0ubWF0LW1kYy1yYWRpby1idXR0b24ubWF0LXdhcm57LS1tZGMtcmFkaW8tZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjojMDAwOy0tbWRjLXJhZGlvLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojMDAwOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLXJhZGlvLXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1yYWRpby1zZWxlY3RlZC1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNmNDQzMzY7LS1tYXQtbWRjLXJhZGlvLXJpcHBsZS1jb2xvcjogIzAwMDstLW1hdC1tZGMtcmFkaW8tY2hlY2tlZC1yaXBwbGUtY29sb3I6ICNmNDQzMzZ9Lm1hdC1tZGMtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tZGMtcmFkaW8tLWRpc2FibGVkK2xhYmVse2NvbG9yOiM3NTc1NzV9Lm1hdC1tZGMtcmFkaW8tYnV0dG9uIC5tZGMtcmFkaW97cGFkZGluZzpjYWxjKCg0MHB4IC0gMjBweCkgLyAyKX0ubWF0LW1kYy1yYWRpby1idXR0b24gLm1kYy1yYWRpbyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kOjpiZWZvcmV7dG9wOmNhbGMoLTEgKiAoNDBweCAtIDIwcHgpIC8gMik7bGVmdDpjYWxjKC0xICogKDQwcHggLSAyMHB4KSAvIDIpO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHh9Lm1hdC1tZGMtcmFkaW8tYnV0dG9uIC5tZGMtcmFkaW8gLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2x7dG9wOmNhbGMoKDQwcHggLSA0MHB4KSAvIDIpO3JpZ2h0OmNhbGMoKDQwcHggLSA0MHB4KSAvIDIpO2xlZnQ6Y2FsYygoNDBweCAtIDQwcHgpIC8gMik7d2lkdGg6NDBweDtoZWlnaHQ6NDBweH0ubWF0LW1kYy1zbGlkZXJ7LS1tZGMtc2xpZGVyLWxhYmVsLWNvbnRhaW5lci1jb2xvcjpibGFjazstLW1kYy1zbGlkZXItbGFiZWwtbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1kYy1zbGlkZXItZGlzYWJsZWQtaGFuZGxlLWNvbG9yOiMwMDA7LS1tZGMtc2xpZGVyLWRpc2FibGVkLWFjdGl2ZS10cmFjay1jb2xvcjojMDAwOy0tbWRjLXNsaWRlci1kaXNhYmxlZC1pbmFjdGl2ZS10cmFjay1jb2xvcjojMDAwOy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yOiMwMDA7LS1tYXQtbWRjLXNsaWRlci12YWx1ZS1pbmRpY2F0b3Itb3BhY2l0eTogMC42fS5tYXQtbWRjLXNsaWRlci5tYXQtcHJpbWFyeXstLW1kYy1zbGlkZXItaGFuZGxlLWNvbG9yOiNmNTdjMDA7LS1tZGMtc2xpZGVyLWZvY3VzLWhhbmRsZS1jb2xvcjojZjU3YzAwOy0tbWRjLXNsaWRlci1ob3Zlci1oYW5kbGUtY29sb3I6I2Y1N2MwMDstLW1kYy1zbGlkZXItYWN0aXZlLXRyYWNrLWNvbG9yOiNmNTdjMDA7LS1tZGMtc2xpZGVyLWluYWN0aXZlLXRyYWNrLWNvbG9yOiNmNTdjMDA7LS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1hY3RpdmUtY29udGFpbmVyLWNvbG9yOiMwMDA7LS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1pbmFjdGl2ZS1jb250YWluZXItY29sb3I6I2Y1N2MwMDstLW1hdC1tZGMtc2xpZGVyLXJpcHBsZS1jb2xvcjogI2Y1N2MwMDstLW1hdC1tZGMtc2xpZGVyLWhvdmVyLXJpcHBsZS1jb2xvcjogcmdiYSgyNDUsIDEyNCwgMCwgMC4wNSk7LS1tYXQtbWRjLXNsaWRlci1mb2N1cy1yaXBwbGUtY29sb3I6IHJnYmEoMjQ1LCAxMjQsIDAsIDAuMil9Lm1hdC1tZGMtc2xpZGVyLm1hdC1hY2NlbnR7LS1tZGMtc2xpZGVyLWhhbmRsZS1jb2xvcjojZmY5ODAwOy0tbWRjLXNsaWRlci1mb2N1cy1oYW5kbGUtY29sb3I6I2ZmOTgwMDstLW1kYy1zbGlkZXItaG92ZXItaGFuZGxlLWNvbG9yOiNmZjk4MDA7LS1tZGMtc2xpZGVyLWFjdGl2ZS10cmFjay1jb2xvcjojZmY5ODAwOy0tbWRjLXNsaWRlci1pbmFjdGl2ZS10cmFjay1jb2xvcjojZmY5ODAwOy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtYWN0aXZlLWNvbnRhaW5lci1jb2xvcjojMDAwOy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtaW5hY3RpdmUtY29udGFpbmVyLWNvbG9yOiNmZjk4MDA7LS1tYXQtbWRjLXNsaWRlci1yaXBwbGUtY29sb3I6ICNmZjk4MDA7LS1tYXQtbWRjLXNsaWRlci1ob3Zlci1yaXBwbGUtY29sb3I6IHJnYmEoMjU1LCAxNTIsIDAsIDAuMDUpOy0tbWF0LW1kYy1zbGlkZXItZm9jdXMtcmlwcGxlLWNvbG9yOiByZ2JhKDI1NSwgMTUyLCAwLCAwLjIpfS5tYXQtbWRjLXNsaWRlci5tYXQtd2FybnstLW1kYy1zbGlkZXItaGFuZGxlLWNvbG9yOiNmNDQzMzY7LS1tZGMtc2xpZGVyLWZvY3VzLWhhbmRsZS1jb2xvcjojZjQ0MzM2Oy0tbWRjLXNsaWRlci1ob3Zlci1oYW5kbGUtY29sb3I6I2Y0NDMzNjstLW1kYy1zbGlkZXItYWN0aXZlLXRyYWNrLWNvbG9yOiNmNDQzMzY7LS1tZGMtc2xpZGVyLWluYWN0aXZlLXRyYWNrLWNvbG9yOiNmNDQzMzY7LS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1hY3RpdmUtY29udGFpbmVyLWNvbG9yOiNmZmY7LS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1pbmFjdGl2ZS1jb250YWluZXItY29sb3I6I2Y0NDMzNjstLW1hdC1tZGMtc2xpZGVyLXJpcHBsZS1jb2xvcjogI2Y0NDMzNjstLW1hdC1tZGMtc2xpZGVyLWhvdmVyLXJpcHBsZS1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC4wNSk7LS1tYXQtbWRjLXNsaWRlci1mb2N1cy1yaXBwbGUtY29sb3I6IHJnYmEoMjQ0LCA2NywgNTQsIDAuMil9Lm1kYy1tZW51LXN1cmZhY2V7Ym94LXNoYWRvdzowcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtc3VyZmFjZSwgI2ZmZik7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApfS5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuODcpKX0ubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtc2Vjb25kYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC41NCkpfS5tZGMtbGlzdC1pdGVtX19vdmVybGluZS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LWhpbnQtb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjM4KSl9Lm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWRjLWxpc3QtaXRlbS0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19lbmR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LC5tZGMtbGlzdC1pdGVtLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX2VuZHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1pY29uLW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpfS5tZGMtbGlzdC1pdGVtX19lbmR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuMzgpKX0ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fY29udGVudCwubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX2VuZHtvcGFjaXR5OjAuMzh9Lm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApfS5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApfS5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fb3ZlcmxpbmUtdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCl9Lm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCl9Lm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fZW5ke2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQubWRjLWxpc3QtaXRlbS0td2l0aC10cmFpbGluZy1tZXRhIC5tZGMtbGlzdC1pdGVtX19lbmR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApfS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZCAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0LC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgI2Y1N2MwMCl9Lm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgI2Y1N2MwMCl9Lm1kYy1kZXByZWNhdGVkLWxpc3QtZ3JvdXBfX3N1YmhlYWRlcntjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpfS5tZGMtbGlzdC1kaXZpZGVyOjphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOndoaXRlfS5tZGMtbGlzdC1kaXZpZGVye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LW1kYy1tZW51LWl0ZW1bZGlzYWJsZWRdLC5tYXQtbWRjLW1lbnUtaXRlbVtkaXNhYmxlZF0gLm1hdC1tZGMtbWVudS1zdWJtZW51LWljb24sLm1hdC1tZGMtbWVudS1pdGVtW2Rpc2FibGVkXSAubWF0LWljb24tbm8tY29sb3J7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtZGlzYWJsZWQtb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjM4KSl9Lm1hdC1tZGMtbWVudS1pdGVtIC5tYXQtaWNvbi1uby1jb2xvciwubWF0LW1kYy1tZW51LXN1Ym1lbnUtaWNvbntjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpfS5tYXQtbWRjLW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksLm1hdC1tZGMtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLC5tYXQtbWRjLW1lbnUtaXRlbS5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksLm1hdC1tZGMtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA0KX0ubWF0LW1kYy1saXN0LWJhc2V7LS1tZGMtbGlzdC1saXN0LWl0ZW0tbGFiZWwtdGV4dC1jb2xvcjojMjEyMTIxOy0tbWRjLWxpc3QtbGlzdC1pdGVtLXN1cHBvcnRpbmctdGV4dC1jb2xvcjojNjE2MTYxOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWxlYWRpbmctaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWxpc3QtbGlzdC1pdGVtLXRyYWlsaW5nLXN1cHBvcnRpbmctdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWxpc3QtbGlzdC1pdGVtLXRyYWlsaW5nLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1saXN0LWxpc3QtaXRlbS1zZWxlY3RlZC10cmFpbGluZy1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtbGlzdC1saXN0LWl0ZW0tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjpibGFjazstLW1kYy1saXN0LWxpc3QtaXRlbS1kaXNhYmxlZC1sZWFkaW5nLWljb24tY29sb3I6YmxhY2s7LS1tZGMtbGlzdC1saXN0LWl0ZW0tZGlzYWJsZWQtdHJhaWxpbmctaWNvbi1jb2xvcjpibGFjazstLW1kYy1saXN0LWxpc3QtaXRlbS1ob3Zlci1sYWJlbC10ZXh0LWNvbG9yOiMyMTIxMjE7LS1tZGMtbGlzdC1saXN0LWl0ZW0taG92ZXItbGVhZGluZy1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtbGlzdC1saXN0LWl0ZW0taG92ZXItdHJhaWxpbmctaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWZvY3VzLWxhYmVsLXRleHQtY29sb3I6IzIxMjEyMTstLW1kYy1saXN0LWxpc3QtaXRlbS1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1saXN0LWxpc3QtaXRlbS1ob3Zlci1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMDQ7LS1tZGMtbGlzdC1saXN0LWl0ZW0tZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtbGlzdC1saXN0LWl0ZW0tZm9jdXMtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyfS5tYXQtbWRjLWxpc3Qtb3B0aW9uIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWF0LW1kYy1saXN0LW9wdGlvbiAubWRjLWxpc3QtaXRlbV9fZW5key0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojMDAwOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2Y1N2MwMDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNmNTdjMDA7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZjU3YzAwOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojZjU3YzAwOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpfS5tYXQtbWRjLWxpc3Qtb3B0aW9uIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWF0LW1kYy1saXN0LW9wdGlvbiAubWRjLWxpc3QtaXRlbV9fZW5key0tbWRjLXJhZGlvLWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6IzAwMDstLW1kYy1yYWRpby1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6IzAwMDstLW1kYy1yYWRpby11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1yYWRpby11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1yYWRpby11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1yYWRpby11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2Y1N2MwMDstLW1kYy1yYWRpby1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNmNTdjMDA7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaWNvbi1jb2xvcjojZjU3YzAwOy0tbWRjLXJhZGlvLXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojZjU3YzAwOy0tbWF0LW1kYy1yYWRpby1yaXBwbGUtY29sb3I6ICMwMDA7LS1tYXQtbWRjLXJhZGlvLWNoZWNrZWQtcmlwcGxlLWNvbG9yOiAjZjU3YzAwfS5tYXQtbWRjLWxpc3Qtb3B0aW9uIC5tZGMtbGlzdC1pdGVtX19zdGFydCAubWRjLXJhZGlvLS1kaXNhYmxlZCtsYWJlbCwubWF0LW1kYy1saXN0LW9wdGlvbiAubWRjLWxpc3QtaXRlbV9fZW5kIC5tZGMtcmFkaW8tLWRpc2FibGVkK2xhYmVse2NvbG9yOiM3NTc1NzV9Lm1hdC1tZGMtbGlzdC1vcHRpb24ubWF0LWFjY2VudCAubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1hdC1tZGMtbGlzdC1vcHRpb24ubWF0LWFjY2VudCAubWRjLWxpc3QtaXRlbV9fZW5key0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojMDAwOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2ZmOTgwMDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNmZjk4MDA7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmY5ODAwOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojZmY5ODAwOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpfS5tYXQtbWRjLWxpc3Qtb3B0aW9uLm1hdC1hY2NlbnQgLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LC5tYXQtbWRjLWxpc3Qtb3B0aW9uLm1hdC1hY2NlbnQgLm1kYy1saXN0LWl0ZW1fX2VuZHstLW1kYy1yYWRpby1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOiMwMDA7LS1tZGMtcmFkaW8tZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOiMwMDA7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1yYWRpby1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNmZjk4MDA7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZmY5ODAwOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWljb24tY29sb3I6I2ZmOTgwMDstLW1kYy1yYWRpby1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6I2ZmOTgwMDstLW1hdC1tZGMtcmFkaW8tcmlwcGxlLWNvbG9yOiAjMDAwOy0tbWF0LW1kYy1yYWRpby1jaGVja2VkLXJpcHBsZS1jb2xvcjogI2ZmOTgwMH0ubWF0LW1kYy1saXN0LW9wdGlvbi5tYXQtYWNjZW50IC5tZGMtbGlzdC1pdGVtX19zdGFydCAubWRjLXJhZGlvLS1kaXNhYmxlZCtsYWJlbCwubWF0LW1kYy1saXN0LW9wdGlvbi5tYXQtYWNjZW50IC5tZGMtbGlzdC1pdGVtX19lbmQgLm1kYy1yYWRpby0tZGlzYWJsZWQrbGFiZWx7Y29sb3I6Izc1NzU3NX0ubWF0LW1kYy1saXN0LW9wdGlvbi5tYXQtd2FybiAubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1hdC1tZGMtbGlzdC1vcHRpb24ubWF0LXdhcm4gLm1kYy1saXN0LWl0ZW1fX2VuZHstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6I2ZmZjstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KX0ubWF0LW1kYy1saXN0LW9wdGlvbi5tYXQtd2FybiAubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1hdC1tZGMtbGlzdC1vcHRpb24ubWF0LXdhcm4gLm1kYy1saXN0LWl0ZW1fX2VuZHstLW1kYy1yYWRpby1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOiMwMDA7LS1tZGMtcmFkaW8tZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOiMwMDA7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1yYWRpby1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLXJhZGlvLXNlbGVjdGVkLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1yYWRpby1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6I2Y0NDMzNjstLW1hdC1tZGMtcmFkaW8tcmlwcGxlLWNvbG9yOiAjMDAwOy0tbWF0LW1kYy1yYWRpby1jaGVja2VkLXJpcHBsZS1jb2xvcjogI2Y0NDMzNn0ubWF0LW1kYy1saXN0LW9wdGlvbi5tYXQtd2FybiAubWRjLWxpc3QtaXRlbV9fc3RhcnQgLm1kYy1yYWRpby0tZGlzYWJsZWQrbGFiZWwsLm1hdC1tZGMtbGlzdC1vcHRpb24ubWF0LXdhcm4gLm1kYy1saXN0LWl0ZW1fX2VuZCAubWRjLXJhZGlvLS1kaXNhYmxlZCtsYWJlbHtjb2xvcjojNzU3NTc1fS5tYXQtbWRjLWxpc3QtYmFzZS5tYXQtbWRjLWxpc3QtYmFzZSAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dCwubWF0LW1kYy1saXN0LWJhc2UubWF0LW1kYy1saXN0LWJhc2UgLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0e2NvbG9yOiNmNTdjMDB9Lm1hdC1tZGMtbGlzdC1iYXNlLm1hdC1tZGMtbGlzdC1iYXNlIC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1hdC1tZGMtbGlzdC1iYXNlLm1hdC1tZGMtbGlzdC1iYXNlIC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0e2NvbG9yOiNmNTdjMDB9Lm1hdC1tZGMtbGlzdC1iYXNlIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1hdC1tZGMtbGlzdC1iYXNlIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fY29udGVudCwubWF0LW1kYy1saXN0LWJhc2UgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19lbmR7b3BhY2l0eToxfS5tYXQtbWRjLWxpc3QtYmFzZXstLW1kYy1saXN0LWxpc3QtaXRlbS1vbmUtbGluZS1jb250YWluZXItaGVpZ2h0OjQ4cHg7LS1tZGMtbGlzdC1saXN0LWl0ZW0tdHdvLWxpbmUtY29udGFpbmVyLWhlaWdodDo2NHB4Oy0tbWRjLWxpc3QtbGlzdC1pdGVtLXRocmVlLWxpbmUtY29udGFpbmVyLWhlaWdodDo4OHB4fS5tYXQtbWRjLWxpc3QtaXRlbS5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctYXZhdGFyLm1kYy1saXN0LWl0ZW0tLXdpdGgtb25lLWxpbmUsLm1hdC1tZGMtbGlzdC1pdGVtLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1jaGVja2JveC5tZGMtbGlzdC1pdGVtLS13aXRoLW9uZS1saW5lLC5tYXQtbWRjLWxpc3QtaXRlbS5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtbGlzdC1pdGVtLS13aXRoLW9uZS1saW5le2hlaWdodDo1NnB4fS5tYXQtbWRjLWxpc3QtaXRlbS5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctYXZhdGFyLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHdvLWxpbmVzLC5tYXQtbWRjLWxpc3QtaXRlbS5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctY2hlY2tib3gubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXMsLm1hdC1tZGMtbGlzdC1pdGVtLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHdvLWxpbmVze2hlaWdodDo3MnB4fS5tYXQtbWRjLXBhZ2luYXRvcntiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtbWRjLXBhZ2luYXRvci1pY29ue2ZpbGw6cmdiYSgwLDAsMCwuNTQpfS5tYXQtbWRjLXBhZ2luYXRvci1kZWNyZW1lbnQsLm1hdC1tZGMtcGFnaW5hdG9yLWluY3JlbWVudHtib3JkZXItdG9wOjJweCBzb2xpZCByZ2JhKDAsMCwwLC41NCk7Ym9yZGVyLXJpZ2h0OjJweCBzb2xpZCByZ2JhKDAsMCwwLC41NCl9Lm1hdC1tZGMtcGFnaW5hdG9yLWZpcnN0LC5tYXQtbWRjLXBhZ2luYXRvci1sYXN0e2JvcmRlci10b3A6MnB4IHNvbGlkIHJnYmEoMCwwLDAsLjU0KX0ubWF0LW1kYy1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1tZGMtcGFnaW5hdG9yLWRlY3JlbWVudCwubWF0LW1kYy1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1tZGMtcGFnaW5hdG9yLWluY3JlbWVudCwubWF0LW1kYy1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1tZGMtcGFnaW5hdG9yLWZpcnN0LC5tYXQtbWRjLWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LW1kYy1wYWdpbmF0b3ItbGFzdHtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tYXQtbWRjLWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LW1kYy1wYWdpbmF0b3ItaWNvbntmaWxsOnJnYmEoMCwwLDAsLjEyKX0ubWF0LW1kYy1wYWdpbmF0b3IgLm1hdC1tZGMtZm9ybS1maWVsZC1pbmZpeHttaW4taGVpZ2h0OjQwcHh9Lm1hdC1tZGMtcGFnaW5hdG9yIC5tYXQtbWRjLXRleHQtZmllbGQtd3JhcHBlciAubWF0LW1kYy1mb3JtLWZpZWxkLWZsZXggLm1hdC1tZGMtZmxvYXRpbmctbGFiZWx7dG9wOjIwcHh9Lm1hdC1tZGMtcGFnaW5hdG9yIC5tYXQtbWRjLXRleHQtZmllbGQtd3JhcHBlci5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3Zley0tbWF0LW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRyYW5zZm9ybTogdHJhbnNsYXRlWSggLTI2Ljc1cHgpIHNjYWxlKHZhcigtLW1hdC1tZGMtZm9ybS1maWVsZC1mbG9hdGluZy1sYWJlbC1zY2FsZSwgMC43NSkpO3RyYW5zZm9ybTp2YXIoLS1tYXQtbWRjLWZvcm0tZmllbGQtbGFiZWwtdHJhbnNmb3JtKX0ubWF0LW1kYy1wYWdpbmF0b3IgLm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWF0LW1kYy1mb3JtLWZpZWxkLWluZml4e3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1tZGMtcGFnaW5hdG9yIC5tYXQtbWRjLXRleHQtZmllbGQtd3JhcHBlcjpub3QoLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCkgLm1hdC1tZGMtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbWRjLXBhZ2luYXRvciAubWRjLXRleHQtZmllbGQtLW5vLWxhYmVsOm5vdCgubWRjLXRleHQtZmllbGQtLW91dGxpbmVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkgLm1hdC1tZGMtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbWRjLXBhZ2luYXRvciAubWF0LW1kYy10ZXh0LWZpZWxkLXdyYXBwZXI6bm90KC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQpIC5tYXQtbWRjLWZsb2F0aW5nLWxhYmVse2Rpc3BsYXk6bm9uZX0ubWF0LW1kYy1wYWdpbmF0b3ItY29udGFpbmVye21pbi1oZWlnaHQ6NTZweH0ubWF0LW1kYy10YWIsLm1hdC1tZGMtdGFiLWxpbmt7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApfS5tYXQtbWRjLXRhYiAubWRjLXRhYl9fdGV4dC1sYWJlbCwubWF0LW1kYy10YWItbGluayAubWRjLXRhYl9fdGV4dC1sYWJlbHtjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNil9Lm1hdC1tZGMtdGFiLm1hdC1tZGMtdGFiLWRpc2FibGVkIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy10YWIubWF0LW1kYy10YWItZGlzYWJsZWQgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1kYy10YWItbGluay5tYXQtbWRjLXRhYi1kaXNhYmxlZCAubWRjLXRhYl9fcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtdGFiLWxpbmsubWF0LW1kYy10YWItZGlzYWJsZWQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWF0LW1kYy10YWI6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkubWRjLXRhYi0tYWN0aXZlIC5tZGMtdGFiX190ZXh0LWxhYmVsLC5tYXQtbWRjLXRhYi1saW5rOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9fdGV4dC1sYWJlbHtjb2xvcjojZjU3YzAwfS5tYXQtbWRjLXRhYjpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKSAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSwubWF0LW1kYy10YWItbGluazpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKSAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZXtib3JkZXItY29sb3I6dmFyKC0tbWRjLXRhYi1pbmRpY2F0b3ItYWN0aXZlLWluZGljYXRvci1jb2xvciwgI2Y1N2MwMCl9Lm1kYy10YWJfX3JpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLXRhYiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWRjLXRhYi1saW5rIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfS5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYjpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKS5tZGMtdGFiLS1hY3RpdmUgLm1kYy10YWJfX3RleHQtbGFiZWwsLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1tZGMtdGFiLWxpbms6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkubWRjLXRhYi0tYWN0aXZlIC5tZGMtdGFiX190ZXh0LWxhYmVsLC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC1tZGMtdGFiOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9fdGV4dC1sYWJlbCwubWF0LW1kYy10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYi1saW5rOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9fdGV4dC1sYWJlbHtjb2xvcjojZmY5ODAwfS5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYjpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKSAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSwubWF0LW1kYy10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LW1kYy10YWItbGluazpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKSAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSwubWF0LW1kYy10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYjpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKSAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSwubWF0LW1kYy10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYi1saW5rOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpIC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0tdW5kZXJsaW5le2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtdGFiLWluZGljYXRvci1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yLCAjZmY5ODAwKX0ubWF0LW1kYy10YWItZ3JvdXAubWF0LWFjY2VudCAubWRjLXRhYl9fcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1tZGMtdGFiIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1tZGMtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1tZGMtdGFiLWxpbmsgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1kYy10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC1tZGMtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LW1kYy10YWItbGluayAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMH0ubWF0LW1kYy10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1tZGMtdGFiOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9fdGV4dC1sYWJlbCwubWF0LW1kYy10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1tZGMtdGFiLWxpbms6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkubWRjLXRhYi0tYWN0aXZlIC5tZGMtdGFiX190ZXh0LWxhYmVsLC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtbWRjLXRhYjpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKS5tZGMtdGFiLS1hY3RpdmUgLm1kYy10YWJfX3RleHQtbGFiZWwsLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC1tZGMtdGFiLWxpbms6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkubWRjLXRhYi0tYWN0aXZlIC5tZGMtdGFiX190ZXh0LWxhYmVse2NvbG9yOiNmNDQzMzZ9Lm1hdC1tZGMtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtbWRjLXRhYjpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKSAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSwubWF0LW1kYy10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1tZGMtdGFiLWxpbms6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUsLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC1tZGMtdGFiOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpIC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0tdW5kZXJsaW5lLC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtbWRjLXRhYi1saW5rOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpIC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0tdW5kZXJsaW5le2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtdGFiLWluZGljYXRvci1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yLCAjZjQ0MzM2KX0ubWF0LW1kYy10YWItZ3JvdXAubWF0LXdhcm4gLm1kYy10YWJfX3JpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtd2FybiAubWF0LW1kYy10YWIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1kYy10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1tZGMtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtbWRjLXRhYi1saW5rIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1kYy10YWJfX3JpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtbWRjLXRhYiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtbWRjLXRhYi1saW5rIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5LC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnl7LS1tYXQtbWRjLXRhYi1oZWFkZXItd2l0aC1iYWNrZ3JvdW5kLWJhY2tncm91bmQtY29sb3I6ICNmNTdjMDA7LS1tYXQtbWRjLXRhYi1oZWFkZXItd2l0aC1iYWNrZ3JvdW5kLWZvcmVncm91bmQtY29sb3I6ICMwMDB9Lm1hdC1tZGMtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCwubWF0LW1kYy10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnR7LS1tYXQtbWRjLXRhYi1oZWFkZXItd2l0aC1iYWNrZ3JvdW5kLWJhY2tncm91bmQtY29sb3I6ICNmZjk4MDA7LS1tYXQtbWRjLXRhYi1oZWFkZXItd2l0aC1iYWNrZ3JvdW5kLWZvcmVncm91bmQtY29sb3I6ICMwMDB9Lm1hdC1tZGMtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4sLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybnstLW1hdC1tZGMtdGFiLWhlYWRlci13aXRoLWJhY2tncm91bmQtYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjstLW1hdC1tZGMtdGFiLWhlYWRlci13aXRoLWJhY2tncm91bmQtZm9yZWdyb3VuZC1jb2xvcjogI2ZmZn0ubWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApfS5tYXQtbWRjLXRhYi1oZWFkZXIgLm1kYy10YWJ7aGVpZ2h0OjQ4cHh9Lm1hdC1tZGMtY2hlY2tib3ggLm1kYy1mb3JtLWZpZWxke2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjg3KSl9Lm1hdC1tZGMtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEpfS5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3hfX3JpcHBsZXtiYWNrZ3JvdW5kOiMwMDB9Lm1hdC1tZGMtY2hlY2tib3gubWF0LXByaW1hcnl7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtY2hlY2ttYXJrLWNvbG9yOiMwMDA7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZjU3YzAwOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2Y1N2MwMDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1pY29uLWNvbG9yOiNmNTdjMDA7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNmNTdjMDA7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCl9Lm1hdC1tZGMtY2hlY2tib3gubWF0LXByaW1hcnkgLm1kYy1jaGVja2JveC0tc2VsZWN0ZWR+Lm1hdC1tZGMtY2hlY2tib3gtcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NSwxMjQsMCwuMSl9Lm1hdC1tZGMtY2hlY2tib3gubWF0LXByaW1hcnkgLm1kYy1jaGVja2JveC0tc2VsZWN0ZWR+Lm1kYy1jaGVja2JveF9fcmlwcGxle2JhY2tncm91bmQ6I2Y1N2MwMH0ubWF0LW1kYy1jaGVja2JveC5tYXQtYWNjZW50ey0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojMDAwOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2ZmOTgwMDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNmZjk4MDA7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmY5ODAwOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojZmY5ODAwOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpfS5tYXQtbWRjLWNoZWNrYm94Lm1hdC1hY2NlbnQgLm1kYy1jaGVja2JveC0tc2VsZWN0ZWR+Lm1hdC1tZGMtY2hlY2tib3gtcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxNTIsMCwuMSl9Lm1hdC1tZGMtY2hlY2tib3gubWF0LWFjY2VudCAubWRjLWNoZWNrYm94LS1zZWxlY3RlZH4ubWRjLWNoZWNrYm94X19yaXBwbGV7YmFja2dyb3VuZDojZmY5ODAwfS5tYXQtbWRjLWNoZWNrYm94Lm1hdC13YXJuey0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojZmZmOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpfS5tYXQtbWRjLWNoZWNrYm94Lm1hdC13YXJuIC5tZGMtY2hlY2tib3gtLXNlbGVjdGVkfi5tYXQtbWRjLWNoZWNrYm94LXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsNjcsNTQsLjEpfS5tYXQtbWRjLWNoZWNrYm94Lm1hdC13YXJuIC5tZGMtY2hlY2tib3gtLXNlbGVjdGVkfi5tZGMtY2hlY2tib3hfX3JpcHBsZXtiYWNrZ3JvdW5kOiNmNDQzMzZ9Lm1hdC1tZGMtY2hlY2tib3gtZGlzYWJsZWQgbGFiZWx7Y29sb3I6Izc1NzU3NX0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94e3BhZGRpbmc6Y2FsYygodmFyKC0tbWRjLWNoZWNrYm94LXJpcHBsZS1zaXplLCA0MHB4KSAtIDE4cHgpIC8gMik7bWFyZ2luOmNhbGMoKHZhcigtLW1kYy1jaGVja2JveC10b3VjaC10YXJnZXQtc2l6ZSwgNDBweCkgLSA0MHB4KSAvIDIpfS5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZHt0b3A6Y2FsYygodmFyKC0tbWRjLWNoZWNrYm94LXJpcHBsZS1zaXplLCA0MHB4KSAtIDE4cHgpIC8gMik7bGVmdDpjYWxjKCh2YXIoLS1tZGMtY2hlY2tib3gtcmlwcGxlLXNpemUsIDQwcHgpIC0gMThweCkgLyAyKX0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9se3RvcDpjYWxjKCg0MHB4IC0gdmFyKC0tbWRjLWNoZWNrYm94LXRvdWNoLXRhcmdldC1zaXplLCA0MHB4KSkgLyAyKTtyaWdodDpjYWxjKCg0MHB4IC0gdmFyKC0tbWRjLWNoZWNrYm94LXRvdWNoLXRhcmdldC1zaXplLCA0MHB4KSkgLyAyKTtsZWZ0OmNhbGMoKDQwcHggLSB2YXIoLS1tZGMtY2hlY2tib3gtdG91Y2gtdGFyZ2V0LXNpemUsIDQwcHgpKSAvIDIpO3dpZHRoOnZhcigtLW1kYy1jaGVja2JveC10b3VjaC10YXJnZXQtc2l6ZSwgNDBweCk7aGVpZ2h0OnZhcigtLW1kYy1jaGVja2JveC10b3VjaC10YXJnZXQtc2l6ZSwgNDBweCl9Lm1hdC1tZGMtYnV0dG9uLm1hdC11bnRoZW1lZHstLW1kYy10ZXh0LWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiMwMDB9Lm1hdC1tZGMtYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2Y1N2MwMH0ubWF0LW1kYy1idXR0b24ubWF0LWFjY2VudHstLW1kYy10ZXh0LWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmZjk4MDB9Lm1hdC1tZGMtYnV0dG9uLm1hdC13YXJuey0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2Y0NDMzNn0ubWF0LW1kYy1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXXstLW1kYy10ZXh0LWJ1dHRvbi1kaXNhYmxlZC1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtdGV4dC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfS5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC11bnRoZW1lZHstLW1kYy1maWxsZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZmZmOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojMDAwfS5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWRjLWZpbGxlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiNmNTdjMDA7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiMwMDB9Lm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24ubWF0LWFjY2VudHstLW1kYy1maWxsZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZmY5ODAwOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojMDAwfS5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC13YXJuey0tbWRjLWZpbGxlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmZmZ9Lm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXXstLW1kYy1maWxsZWQtYnV0dG9uLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLWZpbGxlZC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWZpbGxlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCl9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tYXQtdW50aGVtZWR7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6I2ZmZjstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6IzAwMH0ubWF0LW1kYy1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiNmNTdjMDA7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiMwMDB9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiNmZjk4MDA7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiMwMDB9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybnstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZjQ0MzM2Oy0tbWRjLXByb3RlY3RlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojZmZmfS5tYXQtbWRjLXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXXstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLXByb3RlY3RlZC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1jb250YWluZXItZWxldmF0aW9uOjB9Lm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uey0tbWRjLW91dGxpbmVkLWJ1dHRvbi1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uLm1hdC11bnRoZW1lZHstLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojMDAwfS5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbi5tYXQtcHJpbWFyeXstLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojZjU3YzAwfS5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWRjLW91dGxpbmVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmZjk4MDB9Lm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uLm1hdC13YXJuey0tbWRjLW91dGxpbmVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzZ9Lm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF17LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1vdXRsaW5lZC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLW91dGxpbmVkLWJ1dHRvbi1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWRpc2FibGVkLW91dGxpbmUtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LW1kYy1idXR0b24sLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICMwMDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKX0ubWF0LW1kYy1idXR0b246aG92ZXIgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjA0fS5tYXQtbWRjLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMTJ9Lm1hdC1tZGMtYnV0dG9uOmFjdGl2ZSAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy1vdXRsaW5lZC1idXR0b246YWN0aXZlIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjEyfS5tYXQtbWRjLWJ1dHRvbi5tYXQtcHJpbWFyeSwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXByaW1hcnl7LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2Y1N2MwMDstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyNDUsIDEyNCwgMCwgMC4xKX0ubWF0LW1kYy1idXR0b24ubWF0LWFjY2VudCwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LWFjY2VudHstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjZmY5ODAwOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpfS5tYXQtbWRjLWJ1dHRvbi5tYXQtd2FybiwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXdhcm57LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2Y0NDMzNjstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC4xKX0ubWF0LW1kYy1yYWlzZWQtYnV0dG9uLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICMwMDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKX0ubWF0LW1kYy1yYWlzZWQtYnV0dG9uOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjA0fS5tYXQtbWRjLXJhaXNlZC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy1yYWlzZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMTJ9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbjphY3RpdmUgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b246YWN0aXZlIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjEyfS5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24ubWF0LXByaW1hcnl7LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogIzAwMDstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpfS5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICMwMDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKX0ubWF0LW1kYy1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC13YXJuey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNmZmY7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX0ubWF0LW1kYy1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZSwubWF0LW1kYy1yYWlzZWQtYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UsLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZSwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZXtoZWlnaHQ6MzZweH0ubWF0LW1kYy1pY29uLWJ1dHRvbnstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjMDAwOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSl9Lm1hdC1tZGMtaWNvbi1idXR0b246aG92ZXIgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMDR9Lm1hdC1tZGMtaWNvbi1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy1pY29uLWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZXtvcGFjaXR5Oi4xMn0ubWF0LW1kYy1pY29uLWJ1dHRvbjphY3RpdmUgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMTJ9Lm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LXByaW1hcnl7LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2Y1N2MwMDstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyNDUsIDEyNCwgMCwgMC4xKX0ubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNmZjk4MDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjU1LCAxNTIsIDAsIDAuMSl9Lm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LXdhcm57LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2Y0NDMzNjstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC4xKX0ubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeXstLW1kYy1pY29uLWJ1dHRvbi1pY29uLWNvbG9yOiNmNTdjMDB9Lm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LWFjY2VudHstLW1kYy1pY29uLWJ1dHRvbi1pY29uLWNvbG9yOiNmZjk4MDB9Lm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LXdhcm57LS1tZGMtaWNvbi1idXR0b24taWNvbi1jb2xvcjojZjQ0MzM2fS5tYXQtbWRjLWljb24tYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF17LS1tZGMtaWNvbi1idXR0b24taWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWljb24tYnV0dG9uLWRpc2FibGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KX0ubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNle3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7cGFkZGluZzoxMnB4fS5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UgLm1kYy1pY29uLWJ1dHRvbl9fZm9jdXMtcmluZ3ttYXgtaGVpZ2h0OjQ4cHg7bWF4LXdpZHRoOjQ4cHh9Lm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZS5tZGMtaWNvbi1idXR0b24tLXJlZHVjZWQtc2l6ZSAubWRjLWljb24tYnV0dG9uX19yaXBwbGV7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDttYXJnaW4tdG9wOjRweDttYXJnaW4tYm90dG9tOjRweDttYXJnaW4tcmlnaHQ6NHB4O21hcmdpbi1sZWZ0OjRweH0ubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlLm1kYy1pY29uLWJ1dHRvbi0tcmVkdWNlZC1zaXplIC5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmd7bWF4LWhlaWdodDo0MHB4O21heC13aWR0aDo0MHB4fS5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UgLm1kYy1pY29uLWJ1dHRvbl9fdG91Y2h7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtoZWlnaHQ6NDhweDtsZWZ0OjUwJTt3aWR0aDo0OHB4O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSl9Lm1hdC1tZGMtZmFiLC5tYXQtbWRjLW1pbmktZmFiey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICMwMDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKX0ubWF0LW1kYy1mYWI6aG92ZXIgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtbWluaS1mYWI6aG92ZXIgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMDR9Lm1hdC1tZGMtZmFiLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtZmFiLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLW1pbmktZmFiLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtbWluaS1mYWIuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMTJ9Lm1hdC1tZGMtZmFiOmFjdGl2ZSAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy1taW5pLWZhYjphY3RpdmUgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMTJ9Lm1hdC1tZGMtZmFiLm1hdC1wcmltYXJ5LC5tYXQtbWRjLW1pbmktZmFiLm1hdC1wcmltYXJ5ey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICMwMDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKX0ubWF0LW1kYy1mYWIubWF0LWFjY2VudCwubWF0LW1kYy1taW5pLWZhYi5tYXQtYWNjZW50ey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICMwMDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKX0ubWF0LW1kYy1mYWIubWF0LXdhcm4sLm1hdC1tZGMtbWluaS1mYWIubWF0LXdhcm57LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2ZmZjstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpfS5tYXQtbWRjLWZhYi5tYXQtdW50aGVtZWQsLm1hdC1tZGMtbWluaS1mYWIubWF0LXVudGhlbWVkey0tbWRjLWZhYi1jb250YWluZXItY29sb3I6I2ZmZjstLW1kYy1mYWItaWNvbi1jb2xvcjojMDAwOy0tbWF0LW1kYy1mYWItY29sb3I6ICMwMDB9Lm1hdC1tZGMtZmFiLm1hdC1wcmltYXJ5LC5tYXQtbWRjLW1pbmktZmFiLm1hdC1wcmltYXJ5ey0tbWRjLWZhYi1jb250YWluZXItY29sb3I6I2Y1N2MwMDstLW1kYy1mYWItaWNvbi1jb2xvcjojMDAwOy0tbWF0LW1kYy1mYWItY29sb3I6ICMwMDB9Lm1hdC1tZGMtZmFiLm1hdC1hY2NlbnQsLm1hdC1tZGMtbWluaS1mYWIubWF0LWFjY2VudHstLW1kYy1mYWItY29udGFpbmVyLWNvbG9yOiNmZjk4MDA7LS1tZGMtZmFiLWljb24tY29sb3I6IzAwMDstLW1hdC1tZGMtZmFiLWNvbG9yOiAjMDAwfS5tYXQtbWRjLWZhYi5tYXQtd2FybiwubWF0LW1kYy1taW5pLWZhYi5tYXQtd2FybnstLW1kYy1mYWItY29udGFpbmVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtZmFiLWljb24tY29sb3I6I2ZmZjstLW1hdC1tZGMtZmFiLWNvbG9yOiAjZmZmfS5tYXQtbWRjLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLC5tYXQtbWRjLW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF17LS1tZGMtZmFiLWNvbnRhaW5lci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLWZhYi1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtbWRjLWZhYi1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KX0ubWF0LW1kYy1zbmFjay1iYXItY29udGFpbmVyey0tbWF0LW1kYy1zbmFjay1iYXItYnV0dG9uLWNvbG9yOiAjZmY5ODAwOy0tbWRjLXNuYWNrYmFyLWNvbnRhaW5lci1jb2xvcjojMzMzMzMzOy0tbWRjLXNuYWNrYmFyLXN1cHBvcnRpbmctdGV4dC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpfS5tZGMtZGF0YS10YWJsZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy10aGVtZS1zdXJmYWNlLCAjZmZmKTtib3JkZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKX0ubWRjLWRhdGEtdGFibGVfX3Jvd3tiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXR9Lm1kYy1kYXRhLXRhYmxlX19oZWFkZXItY2VsbHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy10aGVtZS1zdXJmYWNlLCAjZmZmKX0ubWRjLWRhdGEtdGFibGVfX3Jvdy0tc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NSwgMTI0LCAwLCAwLjA0KX0ubWRjLWRhdGEtdGFibGVfX3BhZ2luYXRpb24tcm93cy1wZXItcGFnZS1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLC5tZGMtZGF0YS10YWJsZV9fcGFnaW5hdGlvbi1yb3dzLXBlci1wYWdlLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLC5tZGMtZGF0YS10YWJsZV9fcGFnaW5hdGlvbi1yb3dzLXBlci1wYWdlLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpfS5tZGMtZGF0YS10YWJsZV9fY2VsbCwubWRjLWRhdGEtdGFibGVfX2hlYWRlci1jZWxse2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKX0ubWRjLWRhdGEtdGFibGVfX3BhZ2luYXRpb257Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpfS5tZGMtZGF0YS10YWJsZV9fcm93Om5vdCgubWRjLWRhdGEtdGFibGVfX3Jvdy0tc2VsZWN0ZWQpOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KX0ubWRjLWRhdGEtdGFibGVfX2hlYWRlci1jZWxse2NvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyl9Lm1kYy1kYXRhLXRhYmxlX19wYWdpbmF0aW9uLXRvdGFsLC5tZGMtZGF0YS10YWJsZV9fcGFnaW5hdGlvbi1yb3dzLXBlci1wYWdlLWxhYmVsLC5tZGMtZGF0YS10YWJsZV9fY2VsbHtjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpfS5tYXQtbWRjLXRhYmxle2JhY2tncm91bmQ6I2ZmZn0ubWF0LW1kYy10YWJsZSAubWRjLWRhdGEtdGFibGVfX3Jvd3toZWlnaHQ6NTJweH0ubWF0LW1kYy10YWJsZSAubWRjLWRhdGEtdGFibGVfX3BhZ2luYXRpb257bWluLWhlaWdodDo1MnB4fS5tYXQtbWRjLXRhYmxlIC5tZGMtZGF0YS10YWJsZV9faGVhZGVyLXJvd3toZWlnaHQ6NTZweH0ubWF0LW1kYy1wcm9ncmVzcy1zcGlubmVyey0tbWRjLWNpcmN1bGFyLXByb2dyZXNzLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6I2Y1N2MwMH0ubWF0LW1kYy1wcm9ncmVzcy1zcGlubmVyLm1hdC1hY2NlbnR7LS1tZGMtY2lyY3VsYXItcHJvZ3Jlc3MtYWN0aXZlLWluZGljYXRvci1jb2xvcjojZmY5ODAwfS5tYXQtbWRjLXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm57LS1tZGMtY2lyY3VsYXItcHJvZ3Jlc3MtYWN0aXZlLWluZGljYXRvci1jb2xvcjojZjQ0MzM2fS5tYXQtYmFkZ2V7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1iYWRnZS5tYXQtYmFkZ2V7b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LWJhZGdlLWhpZGRlbiAubWF0LWJhZGdlLWNvbnRlbnR7ZGlzcGxheTpub25lfS5tYXQtYmFkZ2UtY29udGVudHtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztib3JkZXItcmFkaXVzOjUwJTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAyMDBtcyBlYXNlLWluLW91dDt0cmFuc2Zvcm06c2NhbGUoMC42KTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7cG9pbnRlci1ldmVudHM6bm9uZX0ubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxle3RyYW5zaXRpb246bm9uZX0ubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZXt0cmFuc2Zvcm06bm9uZX0ubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudHt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2xpbmUtaGVpZ2h0OjE2cHh9Lm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWJvdmUgLm1hdC1iYWRnZS1jb250ZW50e3RvcDotOHB4fS5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWJlbG93IC5tYXQtYmFkZ2UtY29udGVudHtib3R0b206LThweH0ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6LTE2cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDphdXRvO3JpZ2h0Oi0xNnB4fS5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDotMTZweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0OmF1dG87bGVmdDotMTZweH0ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6LThweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0OmF1dG87cmlnaHQ6LThweH0ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnR7cmlnaHQ6LThweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0OmF1dG87bGVmdDotOHB4fS5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudHt3aWR0aDoyMnB4O2hlaWdodDoyMnB4O2xpbmUtaGVpZ2h0OjIycHh9Lm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudHt0b3A6LTExcHh9Lm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlbG93IC5tYXQtYmFkZ2UtY29udGVudHtib3R0b206LTExcHh9Lm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDotMjJweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDphdXRvO3JpZ2h0Oi0yMnB4fS5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnR7cmlnaHQ6LTIycHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnR7cmlnaHQ6YXV0bztsZWZ0Oi0yMnB4fS5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6LTExcHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6YXV0bztyaWdodDotMTFweH0ubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0Oi0xMXB4fVtkaXI9cnRsXSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0OmF1dG87bGVmdDotMTFweH0ubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudHt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O2xpbmUtaGVpZ2h0OjI4cHh9Lm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWJvdmUgLm1hdC1iYWRnZS1jb250ZW50e3RvcDotMTRweH0ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnR7Ym90dG9tOi0xNHB4fS5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDotMjhweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0OmF1dG87cmlnaHQ6LTI4cHh9Lm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0Oi0yOHB4fVtkaXI9cnRsXSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnR7cmlnaHQ6YXV0bztsZWZ0Oi0yOHB4fS5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDotMTRweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0OmF1dG87cmlnaHQ6LTE0cHh9Lm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0Oi0xNHB4fVtkaXI9cnRsXSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnR7cmlnaHQ6YXV0bztsZWZ0Oi0xNHB4fS5tYXQtYmFkZ2UtY29udGVudHtjb2xvcjojZmZmO2JhY2tncm91bmQ6I2Y1N2MwMH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYmFkZ2UtY29udGVudHtvdXRsaW5lOnNvbGlkIDFweDtib3JkZXItcmFkaXVzOjB9Lm1hdC1iYWRnZS1hY2NlbnQgLm1hdC1iYWRnZS1jb250ZW50e2JhY2tncm91bmQ6I2ZmOTgwMDtjb2xvcjojZmZmfS5tYXQtYmFkZ2Utd2FybiAubWF0LWJhZGdlLWNvbnRlbnR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiNmNDQzMzZ9Lm1hdC1iYWRnZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnR7YmFja2dyb3VuZDojYmRiZGJkO2NvbG9yOiM3NTc1NzV9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVye2JveC1zaGFkb3c6MHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMyMTIxMjF9Lm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6bm9uZX0ubWF0LWJ1dHRvbi10b2dnbGV7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtYnV0dG9uLXRvZ2dsZSAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZHtjb2xvcjojMjEyMTIxO2JhY2tncm91bmQ6I2ZmZn0ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9Lm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlKy5tYXQtYnV0dG9uLXRvZ2dsZXtib3JkZXItbGVmdDpzb2xpZCAxcHggI2UwZTBlMH1bZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlKy5tYXQtYnV0dG9uLXRvZ2dsZXtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDpzb2xpZCAxcHggI2UwZTBlMH0ubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbCAubWF0LWJ1dHRvbi10b2dnbGUrLm1hdC1idXR0b24tdG9nZ2xle2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLXJpZ2h0Om5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAxcHggI2UwZTBlMH0ubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTA7Y29sb3I6IzYxNjE2MX0ubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJke2NvbG9yOiMyMTIxMjF9Lm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVke2NvbG9yOnJnYmEoMCwwLDAsLjI2KTtiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9Lm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7YmFja2dyb3VuZDojZmZmfS5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2Vke2JhY2tncm91bmQtY29sb3I6I2JkYmRiZH0ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJke2JvcmRlcjpzb2xpZCAxcHggI2UwZTBlMH0ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudHtsaW5lLWhlaWdodDo0OHB4fS5tYXQtY2FsZW5kYXItYXJyb3d7ZmlsbDpyZ2JhKDAsMCwwLC41NCl9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZSwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLW5leHQtYnV0dG9uLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9ue2NvbG9yOnJnYmEoMCwwLDAsLjU0KX0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlci1kaXZpZGVyOjphZnRlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciwubWF0LWNhbGVuZGFyLWJvZHktbGFiZWx7Y29sb3I6IzYxNjE2MX0ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50LC5tYXQtZGF0ZS1yYW5nZS1pbnB1dC1zZXBhcmF0b3J7Y29sb3I6IzIxMjEyMTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKX0ubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQ+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtjb2xvcjojNzU3NTc1fS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWRhdGUtcmFuZ2UtaW5wdXQtc2VwYXJhdG9ye2NvbG9yOiM3NTc1NzV9Lm1hdC1jYWxlbmRhci1ib2R5LWluLXByZXZpZXd7Y29sb3I6cmdiYSgwLDAsMCwuMjQpfS5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjE4KX0ubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ1LDEyNCwwLC4yKX0ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ5LDE3MSwwLC4yKX0ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZSxbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI0NSwgMTI0LCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfS5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZSxbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgyNDUsIDEyNCwgMCwgMC4yKSA1MCUsIHJnYmEoMjQ5LCAxNzEsIDAsIDAuMikgNTAlKX0ubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjphZnRlcntiYWNrZ3JvdW5kOiNhOGRhYjV9Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkLC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMDtjb2xvcjojZmZmfS5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NSwxMjQsMCwuNCl9Lm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9LmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSwuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NSwxMjQsMCwuMyl9QG1lZGlhKGhvdmVyOiBob3Zlcil7Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXI+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ1LDEyNCwwLC4zKX19Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnR7Ym94LXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNTUsMTUyLDAsLjIpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ5LDE3MSwwLC4yKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3JlLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4yKSA1MCUsIHJnYmEoMjQ5LCAxNzEsIDAsIDAuMikgNTAlKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjphZnRlcntiYWNrZ3JvdW5kOiNhOGRhYjV9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZT4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZDojNDZhMzVlfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMDtjb2xvcjojZmZmfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE1MiwwLC40KX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjZmZmfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE1MiwwLC4zKX1AbWVkaWEoaG92ZXI6IGhvdmVyKXsubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxNTIsMCwuMyl9fS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDQsNjcsNTQsLjIpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3JlLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjQ0LCA2NywgNTQsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDI0NCwgNjcsIDU0LCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZT4ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQ6IzQ2YTM1ZX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2O2NvbG9yOiNmZmZ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC40KX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZn0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC4zKX1AbWVkaWEoaG92ZXI6IGhvdmVyKXsubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsNjcsNTQsLjMpfX0ubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaHtib3gtc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZXtjb2xvcjojZjU3YzAwfS5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnR7Y29sb3I6I2ZmOTgwMH0ubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fS5tYXQtZGF0ZS1yYW5nZS1pbnB1dC1pbm5lcltkaXNhYmxlZF17Y29sb3I6Izc1NzU3NX0ubWF0LWNhbGVuZGFyLWNvbnRyb2xzIC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2V7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtwYWRkaW5nOjhweH0ubWF0LWNhbGVuZGFyLWNvbnRyb2xzIC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UgLm1kYy1pY29uLWJ1dHRvbl9fZm9jdXMtcmluZ3ttYXgtaGVpZ2h0OjQwcHg7bWF4LXdpZHRoOjQwcHh9Lm1hdC1jYWxlbmRhci1jb250cm9scyAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlLm1kYy1pY29uLWJ1dHRvbi0tcmVkdWNlZC1zaXplIC5tZGMtaWNvbi1idXR0b25fX3JpcHBsZXt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O21hcmdpbi10b3A6MHB4O21hcmdpbi1ib3R0b206MHB4O21hcmdpbi1yaWdodDowcHg7bWFyZ2luLWxlZnQ6MHB4fS5tYXQtY2FsZW5kYXItY29udHJvbHMgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZS5tZGMtaWNvbi1idXR0b24tLXJlZHVjZWQtc2l6ZSAubWRjLWljb24tYnV0dG9uX19mb2N1cy1yaW5ne21heC1oZWlnaHQ6NDBweDttYXgtd2lkdGg6NDBweH0ubWF0LWNhbGVuZGFyLWNvbnRyb2xzIC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UgLm1kYy1pY29uLWJ1dHRvbl9fdG91Y2h7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtoZWlnaHQ6NDBweDtsZWZ0OjUwJTt3aWR0aDo0MHB4O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSl9Lm1hdC1jYWxlbmRhci1jb250cm9scyAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlIC5tYXQtbWRjLWJ1dHRvbi10b3VjaC10YXJnZXR7ZGlzcGxheTpub25lfS5tYXQtZGl2aWRlcntib3JkZXItdG9wLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWRpdmlkZXItdmVydGljYWx7Ym9yZGVyLXJpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWV4cGFuc2lvbi1wYW5lbHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1hY3Rpb24tcm93e2JvcmRlci10b3AtY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tYXQtZXhwYW5zaW9uLXBhbmVsIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLC5tYXQtZXhwYW5zaW9uLXBhbmVsIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSksLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pe2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDQpfUBtZWRpYShob3Zlcjogbm9uZSl7Lm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6I2ZmZn19Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxle2NvbG9yOiMyMTIxMjF9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXJ7Y29sb3I6IzYxNjE2MX0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXXtjb2xvcjpyZ2JhKDAsMCwwLC4yNil9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlLC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbntjb2xvcjppbmhlcml0fS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcntoZWlnaHQ6NDhweH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIubWF0LWV4cGFuZGVke2hlaWdodDo2NHB4fS5tYXQtaWNvbi5tYXQtcHJpbWFyeXtjb2xvcjojZjU3YzAwfS5tYXQtaWNvbi5tYXQtYWNjZW50e2NvbG9yOiNmZjk4MDB9Lm1hdC1pY29uLm1hdC13YXJue2NvbG9yOiNmNDQzMzZ9Lm1hdC1kcmF3ZXItY29udGFpbmVye2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMjEyMTIxfS5tYXQtZHJhd2Vye2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMjEyMTIxfS5tYXQtZHJhd2VyLm1hdC1kcmF3ZXItcHVzaHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lm1hdC1kcmF3ZXI6bm90KC5tYXQtZHJhd2VyLXNpZGUpe2JveC1zaGFkb3c6MHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1kcmF3ZXItc2lkZXtib3JkZXItcmlnaHQ6c29saWQgMXB4IHJnYmEoMCwwLDAsLjEyKX0ubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5ke2JvcmRlci1sZWZ0OnNvbGlkIDFweCByZ2JhKDAsMCwwLC4xMik7Ym9yZGVyLXJpZ2h0Om5vbmV9W2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGV7Ym9yZGVyLWxlZnQ6c29saWQgMXB4IHJnYmEoMCwwLDAsLjEyKTtib3JkZXItcmlnaHQ6bm9uZX1bZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZHtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDpzb2xpZCAxcHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KX0ubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLC5tYXQtc3RlcC1oZWFkZXIuY2RrLXByb2dyYW0tZm9jdXNlZCwubWF0LXN0ZXAtaGVhZGVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZF0pLC5tYXQtc3RlcC1oZWFkZXI6aG92ZXJbYXJpYS1kaXNhYmxlZD1mYWxzZV17YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wNCl9Lm1hdC1zdGVwLWhlYWRlcjpob3ZlclthcmlhLWRpc2FibGVkPXRydWVde2N1cnNvcjpkZWZhdWx0fUBtZWRpYShob3Zlcjogbm9uZSl7Lm1hdC1zdGVwLWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kOm5vbmV9fS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLW9wdGlvbmFse2NvbG9yOiM2MTYxNjF9Lm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbntiYWNrZ3JvdW5kLWNvbG9yOiM2MTYxNjE7Y29sb3I6I2ZmZn0ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXNlbGVjdGVkLC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSwubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXR7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwO2NvbG9yOiNmZmZ9Lm1hdC1zdGVwLWhlYWRlci5tYXQtYWNjZW50IC5tYXQtc3RlcC1pY29ue2NvbG9yOiNmZmZ9Lm1hdC1zdGVwLWhlYWRlci5tYXQtYWNjZW50IC5tYXQtc3RlcC1pY29uLXNlbGVjdGVkLC5tYXQtc3RlcC1oZWFkZXIubWF0LWFjY2VudCAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLC5tYXQtc3RlcC1oZWFkZXIubWF0LWFjY2VudCAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0e2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMDtjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIubWF0LXdhcm4gLm1hdC1zdGVwLWljb257Y29sb3I6I2ZmZn0ubWF0LXN0ZXAtaGVhZGVyLm1hdC13YXJuIC5tYXQtc3RlcC1pY29uLXNlbGVjdGVkLC5tYXQtc3RlcC1oZWFkZXIubWF0LXdhcm4gLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSwubWF0LXN0ZXAtaGVhZGVyLm1hdC13YXJuIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXR7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2O2NvbG9yOiNmZmZ9Lm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lcnJvcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2Y0NDMzNn0ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1hY3RpdmV7Y29sb3I6IzIxMjEyMX0ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1lcnJvcntjb2xvcjojZjQ0MzM2fS5tYXQtc3RlcHBlci1ob3Jpem9udGFsLC5tYXQtc3RlcHBlci12ZXJ0aWNhbHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsLWxpbmU6OmJlZm9yZXtib3JkZXItbGVmdC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlciwubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5le2JvcmRlci10b3AtY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcntoZWlnaHQ6NzJweH0ubWF0LXN0ZXBwZXItbGFiZWwtcG9zaXRpb24tYm90dG9tIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlciwubWF0LXZlcnRpY2FsLXN0ZXBwZXItaGVhZGVye3BhZGRpbmc6MjRweCAyNHB4fS5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmV7dG9wOi0xNnB4O2JvdHRvbTotMTZweH0ubWF0LXN0ZXBwZXItbGFiZWwtcG9zaXRpb24tYm90dG9tIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsLm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmJlZm9yZXt0b3A6MzZweH0ubWF0LXN0ZXBwZXItbGFiZWwtcG9zaXRpb24tYm90dG9tIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmV7dG9wOjM2cHh9Lm1hdC1zb3J0LWhlYWRlci1hcnJvd3tjb2xvcjojNjE2MTYxfS5tYXQtdG9vbGJhcntiYWNrZ3JvdW5kOiNmNTdjMDA7Y29sb3I6IzIxMjEyMX0ubWF0LXRvb2xiYXIubWF0LXByaW1hcnl7YmFja2dyb3VuZDojZjU3YzAwO2NvbG9yOiNmZmZ9Lm1hdC10b29sYmFyLm1hdC1hY2NlbnR7YmFja2dyb3VuZDojZmY5ODAwO2NvbG9yOiNmZmZ9Lm1hdC10b29sYmFyLm1hdC13YXJue2JhY2tncm91bmQ6I2Y0NDMzNjtjb2xvcjojZmZmfS5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lLC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtcmlwcGxlLC5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcn0ubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtdG9vbGJhciAubWF0LXNlbGVjdC12YWx1ZSwubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtYXJyb3csLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjppbmhlcml0fS5tYXQtdG9vbGJhciAubWF0LWlucHV0LWVsZW1lbnR7Y2FyZXQtY29sb3I6Y3VycmVudENvbG9yfS5tYXQtdG9vbGJhci1tdWx0aXBsZS1yb3dze21pbi1oZWlnaHQ6NjRweH0ubWF0LXRvb2xiYXItcm93LC5tYXQtdG9vbGJhci1zaW5nbGUtcm93e2hlaWdodDo2NHB4fUBtZWRpYShtYXgtd2lkdGg6IDU5OXB4KXsubWF0LXRvb2xiYXItbXVsdGlwbGUtcm93c3ttaW4taGVpZ2h0OjU2cHh9Lm1hdC10b29sYmFyLXJvdywubWF0LXRvb2xiYXItc2luZ2xlLXJvd3toZWlnaHQ6NTZweH19Lm1hdC10cmVle2JhY2tncm91bmQ6I2ZmZn0ubWF0LXRyZWUtbm9kZSwubWF0LW5lc3RlZC10cmVlLW5vZGV7Y29sb3I6IzIxMjEyMX0ubWF0LXRyZWUtbm9kZXttaW4taGVpZ2h0OjQ4cHh9Lm1hdC1idXR0b24sLm1hdC1pY29uLWJ1dHRvbiwubWF0LXN0cm9rZWQtYnV0dG9ue2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDApfS5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5LC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeXtjb2xvcjojZjU3YzAwfS5tYXQtYnV0dG9uLm1hdC1hY2NlbnQsLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50LC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudHtjb2xvcjojZmY5ODAwfS5tYXQtYnV0dG9uLm1hdC13YXJuLC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4sLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fS5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWljb24tYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1pY29uLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4yNil9Lm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMH0ubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwfS5tYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX0ubWF0LWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtaWNvbi1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnR7b3BhY2l0eTouMTtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcn0ubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQ6IzAwMH0ubWF0LXN0cm9rZWQtYnV0dG9uOm5vdCgubWF0LWJ1dHRvbi1kaXNhYmxlZCl7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWZsYXQtYnV0dG9uLC5tYXQtcmFpc2VkLWJ1dHRvbiwubWF0LWZhYiwubWF0LW1pbmktZmFie2NvbG9yOiMyMTIxMjE7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LC5tYXQtZmFiLm1hdC1wcmltYXJ5LC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnl7Y29sb3I6I2ZmZn0ubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsLm1hdC1mYWIubWF0LWFjY2VudCwubWF0LW1pbmktZmFiLm1hdC1hY2NlbnR7Y29sb3I6I2ZmZn0ubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwubWF0LWZhYi5tYXQtd2FybiwubWF0LW1pbmktZmFiLm1hdC13YXJue2NvbG9yOiNmZmZ9Lm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZsYXQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mYWIubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZhYi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mYWIubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZhYi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtbWluaS1mYWIubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtbWluaS1mYWIubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LW1pbmktZmFiLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4yNil9Lm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksLm1hdC1mYWIubWF0LXByaW1hcnksLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LC5tYXQtZmFiLm1hdC1hY2NlbnQsLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50e2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMH0ubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwubWF0LWZhYi5tYXQtd2FybiwubWF0LW1pbmktZmFiLm1hdC13YXJue2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmxhdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZhYi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmFiLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZhYi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmFiLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1taW5pLWZhYi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtbWluaS1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Lm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1taW5pLWZhYi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Lm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwubWF0LWZsYXQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1yYWlzZWQtYnV0dG9uOm5vdCgubWF0LWJ1dHRvbi1kaXNhYmxlZCk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLC5tYXQtbWluaS1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1mYWI6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksLm1hdC1taW5pLWZhYjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwubWF0LW1pbmktZmFiLm1hdC1idXR0b24tZGlzYWJsZWQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtYnV0dG9uLm1hdC11bnRoZW1lZHstLW1kYy10ZXh0LWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiMwMDB9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2Y1N2MwMH0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1idXR0b24ubWF0LWFjY2VudHstLW1kYy10ZXh0LWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmZjk4MDB9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtYnV0dG9uLm1hdC13YXJuey0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2Y0NDMzNn0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXXstLW1kYy10ZXh0LWJ1dHRvbi1kaXNhYmxlZC1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtdGV4dC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC11bnRoZW1lZHstLW1kYy1maWxsZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZmZmOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojMDAwfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWRjLWZpbGxlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiNmNTdjMDA7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiMwMDB9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24ubWF0LWFjY2VudHstLW1kYy1maWxsZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZmY5ODAwOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojMDAwfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC13YXJuey0tbWRjLWZpbGxlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmZmZ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXXstLW1kYy1maWxsZWQtYnV0dG9uLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLWZpbGxlZC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWZpbGxlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tYXQtdW50aGVtZWR7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6I2ZmZjstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6IzAwMH0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiNmNTdjMDA7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiMwMDB9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiNmZjk4MDA7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiMwMDB9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybnstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZjQ0MzM2Oy0tbWRjLXByb3RlY3RlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojZmZmfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXXstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLXByb3RlY3RlZC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1jb250YWluZXItZWxldmF0aW9uOjB9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uey0tbWRjLW91dGxpbmVkLWJ1dHRvbi1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uLm1hdC11bnRoZW1lZHstLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojMDAwfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbi5tYXQtcHJpbWFyeXstLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojZjU3YzAwfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWRjLW91dGxpbmVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmZjk4MDB9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uLm1hdC13YXJuey0tbWRjLW91dGxpbmVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzZ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF17LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1vdXRsaW5lZC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLW91dGxpbmVkLWJ1dHRvbi1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWRpc2FibGVkLW91dGxpbmUtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1idXR0b24sLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICMwMDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKX0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1idXR0b246aG92ZXIgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjA0fS5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMTJ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtYnV0dG9uOmFjdGl2ZSAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b246YWN0aXZlIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjEyfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLWJ1dHRvbi5tYXQtcHJpbWFyeSwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXByaW1hcnl7LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2Y1N2MwMDstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyNDUsIDEyNCwgMCwgMC4xKX0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1idXR0b24ubWF0LWFjY2VudCwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LWFjY2VudHstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjZmY5ODAwOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLWJ1dHRvbi5tYXQtd2FybiwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXdhcm57LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2Y0NDMzNjstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC4xKX0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1yYWlzZWQtYnV0dG9uLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICMwMDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKX0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1yYWlzZWQtYnV0dG9uOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjA0fS5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXJhaXNlZC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1yYWlzZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMTJ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbjphY3RpdmUgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b246YWN0aXZlIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjEyfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24ubWF0LXByaW1hcnl7LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogIzAwMDstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICMwMDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKX0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC13YXJuey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNmZmY7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1pY29uLWJ1dHRvbnstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjMDAwOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtaWNvbi1idXR0b246aG92ZXIgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMDR9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtaWNvbi1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1pY29uLWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZXtvcGFjaXR5Oi4xMn0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1pY29uLWJ1dHRvbjphY3RpdmUgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMTJ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LXByaW1hcnl7LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2Y1N2MwMDstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyNDUsIDEyNCwgMCwgMC4xKX0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNmZjk4MDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjU1LCAxNTIsIDAsIDAuMSl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LXdhcm57LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2Y0NDMzNjstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC4xKX0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeXstLW1kYy1pY29uLWJ1dHRvbi1pY29uLWNvbG9yOiNmNTdjMDB9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LWFjY2VudHstLW1kYy1pY29uLWJ1dHRvbi1pY29uLWNvbG9yOiNmZjk4MDB9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LXdhcm57LS1tZGMtaWNvbi1idXR0b24taWNvbi1jb2xvcjojZjQ0MzM2fS5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLWljb24tYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF17LS1tZGMtaWNvbi1idXR0b24taWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWljb24tYnV0dG9uLWRpc2FibGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KX0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZSwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1yYWlzZWQtYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZSwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZXtoZWlnaHQ6MzZweH0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNle3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7cGFkZGluZzoxMnB4fS5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UgLm1kYy1pY29uLWJ1dHRvbl9fZm9jdXMtcmluZ3ttYXgtaGVpZ2h0OjQ4cHg7bWF4LXdpZHRoOjQ4cHh9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZS5tZGMtaWNvbi1idXR0b24tLXJlZHVjZWQtc2l6ZSAubWRjLWljb24tYnV0dG9uX19yaXBwbGV7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDttYXJnaW4tdG9wOjRweDttYXJnaW4tYm90dG9tOjRweDttYXJnaW4tcmlnaHQ6NHB4O21hcmdpbi1sZWZ0OjRweH0ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlLm1kYy1pY29uLWJ1dHRvbi0tcmVkdWNlZC1zaXplIC5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmd7bWF4LWhlaWdodDo0MHB4O21heC13aWR0aDo0MHB4fS5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UgLm1kYy1pY29uLWJ1dHRvbl9fdG91Y2h7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtoZWlnaHQ6NDhweDtsZWZ0OjUwJTt3aWR0aDo0OHB4O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSl9Lm1hdC1vcHRpb257Y29sb3I6IzIxMjEyMX0ubWF0LW9wdGlvbjpob3Zlcjpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpLC5tYXQtb3B0aW9uOmZvY3VzOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCl7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wNCl9Lm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSk6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA0KX0ubWF0LW9wdGlvbi5tYXQtYWN0aXZle2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDQpO2NvbG9yOiMyMTIxMjF9Lm1hdC1vcHRpb24ubWF0LW9wdGlvbi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNmNTdjMDB9Lm1hdC1hY2NlbnQgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCl7Y29sb3I6I2ZmOTgwMH0ubWF0LXdhcm4gLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCl7Y29sb3I6I2Y0NDMzNn0ubWF0LW9wdGdyb3VwLWxhYmVse2NvbG9yOiM2MTYxNjF9Lm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVse2NvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMSl9Lm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbHtjb2xvcjojNjE2MTYxfS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGwubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZHtjb2xvcjojYjBiMGIwfS5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXIsLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsOjphZnRlcntjb2xvcjojZjU3YzAwfS5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbCwubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGx7YmFja2dyb3VuZDojZjU3YzAwfS5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbDo6YWZ0ZXIsLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1mdWxsOjphZnRlcntjb2xvcjojZmZmfS5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsOjphZnRlciwubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXJ7Y29sb3I6I2ZmOTgwMH0ubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbCwubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbHtiYWNrZ3JvdW5kOiNmZjk4MDB9Lm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGw6OmFmdGVyLC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1mdWxsOjphZnRlcntjb2xvcjojZmZmfS5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsOjphZnRlciwubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXJ7Y29sb3I6I2ZmOTgwMH0ubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbCwubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbHtiYWNrZ3JvdW5kOiNmZjk4MDB9Lm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGw6OmFmdGVyLC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1mdWxsOjphZnRlcntjb2xvcjojZmZmfS5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXIsLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsOjphZnRlcntjb2xvcjojZjQ0MzM2fS5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbCwubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGx7YmFja2dyb3VuZDojZjQ0MzM2fS5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbDo6YWZ0ZXIsLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1mdWxsOjphZnRlcntjb2xvcjojZmZmfS5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWw6OmFmdGVyLC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWw6OmFmdGVye2NvbG9yOiNiMGIwYjB9Lm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbCwubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1mdWxse2JhY2tncm91bmQ6I2IwYjBiMH0ubWF0LWFwcC1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMjEyMTIxfS5tYXQtZWxldmF0aW9uLXowe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxe2JveC1zaGFkb3c6MHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16Mntib3gtc2hhZG93OjBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejN7Ym94LXNoYWRvdzowcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXo0e2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejV7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16Nntib3gtc2hhZG93OjBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16N3tib3gtc2hhZG93OjBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16OHtib3gtc2hhZG93OjBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16OXtib3gtc2hhZG93OjBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MTB7Ym94LXNoYWRvdzowcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxMXtib3gtc2hhZG93OjBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejEye2JveC1zaGFkb3c6MHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MTN7Ym94LXNoYWRvdzowcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxNHtib3gtc2hhZG93OjBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE1e2JveC1zaGFkb3c6MHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MTZ7Ym94LXNoYWRvdzowcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MTd7Ym94LXNoYWRvdzowcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MTh7Ym94LXNoYWRvdzowcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MTl7Ym94LXNoYWRvdzowcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MjB7Ym94LXNoYWRvdzowcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejIxe2JveC1zaGFkb3c6MHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoyMntib3gtc2hhZG93OjBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MjN7Ym94LXNoYWRvdzowcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejI0e2JveC1zaGFkb3c6MHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtdGhlbWUtbG9hZGVkLW1hcmtlcntkaXNwbGF5Om5vbmV9Lm1hdC1jYXJke2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMjEyMTIxfS5tYXQtY2FyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1jYXJkLm1hdC1jYXJkLWZsYXQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1jYXJkLXN1YnRpdGxle2NvbG9yOiM2MTYxNjF9Lm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiNmZGRlYmZ9Lm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye2JhY2tncm91bmQtY29sb3I6I2ZkZGViZn0ubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5ke2ZpbGw6I2ZmZTViZn0ubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmU1YmZ9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiNmY2QwY2R9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye2JhY2tncm91bmQtY29sb3I6I2ZjZDBjZH0ubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZSwubWF0LXNwaW5uZXIgY2lyY2xle3N0cm9rZTojZjU3YzAwfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwubWF0LXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGV7c3Ryb2tlOiNmZjk4MDB9Lm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSwubWF0LXNwaW5uZXIubWF0LXdhcm4gY2lyY2xle3N0cm9rZTojZjQ0MzM2fS5tYXQtdG9vbHRpcHtiYWNrZ3JvdW5kOnJnYmEoOTcsOTcsOTcsLjkpfS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6IzYxNjE2MX0ubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojNzU3NTc1fS5tYXQtaW5wdXQtZWxlbWVudHtjYXJldC1jb2xvcjojZjU3YzAwfS5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSg5Nyw5Nyw5NywuNDIpfS5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDk3LDk3LDk3LC40Mil9Lm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoOTcsOTcsOTcsLjQyKX0ubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoOTcsOTcsOTcsLjQyKX0ubWF0LWZvcm0tZmllbGQubWF0LWFjY2VudCAubWF0LWlucHV0LWVsZW1lbnR7Y2FyZXQtY29sb3I6I2ZmOTgwMH0ubWF0LWZvcm0tZmllbGQubWF0LXdhcm4gLm1hdC1pbnB1dC1lbGVtZW50LC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtaW5wdXQtZWxlbWVudHtjYXJldC1jb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtcHJlZml4LC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtc3VmZml4e2NvbG9yOiM3NTc1NzV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOnJnYmEoOTcsOTcsOTcsLjYpfS5tYXQtaGludHtjb2xvcjpyZ2JhKDk3LDk3LDk3LC42KX0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiNmNTdjMDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50e2NvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2Vye2NvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LXdhcm57YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZjU3YzAwfS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQsLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXJ7Y29sb3I6I2Y0NDMzNn0ubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1lcnJvcntjb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWx7Y29sb3I6IzYxNjE2MX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1oaW50e2NvbG9yOiM2MTYxNjF9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC40Mil9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC40MikgMCUsIHJnYmEoMCwgMCwgMCwgMC40MikgMzMlLCB0cmFuc3BhcmVudCAwJSk7YmFja2dyb3VuZC1zaXplOjRweCAxMDAlO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC40Mil9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjQyKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjQyKSAzMyUsIHRyYW5zcGFyZW50IDAlKTtiYWNrZ3JvdW5kLXNpemU6NHB4IDEwMCU7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjA0KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1mbGV4e2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDIpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNDIpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiM3NTc1NzV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmV7Y29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7Y29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7Y29sb3I6I2Y1N2MwMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7Y29sb3I6I2ZmOTgwMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7Y29sb3I6I2Y0NDMzNn0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbHtjb2xvcjojNzU3NTc1fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmV7Y29sb3I6cmdiYSgwLDAsMCwuMDYpfS5tYXQtc2VsZWN0LXZhbHVle2NvbG9yOiMyMTIxMjF9Lm1hdC1zZWxlY3QtcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSg5Nyw5Nyw5NywuNDIpfS5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVle2NvbG9yOiM3NTc1NzV9Lm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6IzYxNjE2MX0ubWF0LXNlbGVjdC1wYW5lbHtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC1zZWxlY3QtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXByaW1hcnkgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6I2Y1N2MwMH0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjojZmY5ODAwfS5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtd2FybiAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6I2Y0NDMzNn0ubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjojNzU3NTc1fS5tYXQtY2hlY2tib3gtZnJhbWV7Ym9yZGVyLWNvbG9yOiM2MTYxNjF9Lm1hdC1jaGVja2JveC1jaGVja21hcmt7ZmlsbDojZmZmfS5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGh7c3Ryb2tlOiNmZmYgIWltcG9ydGFudH0ubWF0LWNoZWNrYm94LW1peGVkbWFya3tiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMH0ubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMH0ubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6I2IwYjBiMH0ubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWV7Ym9yZGVyLWNvbG9yOiNiMGIwYjB9Lm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWxhYmVse2NvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kOiNmNTdjMDB9Lm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kOiNmZjk4MDB9Lm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQ6I2Y0NDMzNn0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpe2JhY2tncm91bmQ6I2ZmZn0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiMyMTIxMjF9Lm1hdC1kaWFsb2ctY29udGFpbmVye2JveC1zaGFkb3c6MHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMjEyMTIxfS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcHtiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTA7Y29sb3I6IzIxMjEyMX0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojMjEyMTIxO29wYWNpdHk6LjR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpOmFjdGl2ZXtib3gtc2hhZG93OjBweCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggM3B4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXJ7b3BhY2l0eTouNTR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVke29wYWNpdHk6LjR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlcntiYWNrZ3JvdW5kOiMwMDB9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5e2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMDtjb2xvcjojZmZmfS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LWNoaXAtcmVtb3Zle2NvbG9yOiNmZmY7b3BhY2l0eTouNH0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7Y29sb3I6I2ZmZn0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojZmZmO29wYWNpdHk6LjR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDA7Y29sb3I6I2ZmZn0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LWNoaXAtcmVtb3Zle2NvbG9yOiNmZmY7b3BhY2l0eTouNH0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Lm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwfS5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE1MiwwLC41NCl9Lm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfS5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ1LDEyNCwwLC41NCl9Lm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtc2xpZGUtdG9nZ2xlLm1hdC13YXJuLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC41NCl9Lm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9Lm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7Ym94LXNoYWRvdzowcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYX0ubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1yYWRpby1vdXRlci1jaXJjbGV7Ym9yZGVyLWNvbG9yOiM2MTYxNjF9Lm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGV7Ym9yZGVyLWNvbG9yOiNmNTdjMDB9Lm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeTphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZXtib3JkZXItY29sb3I6I2ZmOTgwMH0ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQ6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwfS5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjojZjQ0MzM2fS5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm46YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGV7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudHtjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1yYWRpby1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9Lm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjI2KX0ubWF0LXNsaWRlci5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10cmFjay1maWxsLC5tYXQtc2xpZGVyLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLC5tYXQtc2xpZGVyLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMH0ubWF0LXNsaWRlci5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e2NvbG9yOiNmZmZ9Lm1hdC1zbGlkZXIubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItZm9jdXMtcmluZ3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ1LDEyNCwwLC4yKX0ubWF0LXNsaWRlci5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsLm1hdC1zbGlkZXIubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlci5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMH0ubWF0LXNsaWRlci5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7Y29sb3I6I2ZmZn0ubWF0LXNsaWRlci5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxNTIsMCwuMil9Lm1hdC1zbGlkZXIubWF0LXdhcm4gLm1hdC1zbGlkZXItdHJhY2stZmlsbCwubWF0LXNsaWRlci5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlci5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1zbGlkZXIubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHtjb2xvcjojZmZmfS5tYXQtc2xpZGVyLm1hdC13YXJuIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuMil9Lm1hdC1zbGlkZXI6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCwubWF0LXNsaWRlci5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtc2xpZGVyLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCwubWF0LXNsaWRlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsLm1hdC1zbGlkZXIubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjI2KX0ubWF0LXNsaWRlci5tYXQtc2xpZGVyLWRpc2FibGVkOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4yNil9Lm1hdC1zbGlkZXIubWF0LXNsaWRlci1taW4tdmFsdWUgLm1hdC1zbGlkZXItZm9jdXMtcmluZ3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LXNsaWRlci5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1zbGlkZXIubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtc2xpZGVyLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlci5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4yNil9Lm1hdC1zbGlkZXIubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1ie2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4yNik7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApfS5tYXQtc2xpZGVyLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3ZlciAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlci5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWF0LXNsaWRlci5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlci5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyl9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrc3tiYWNrZ3JvdW5kLWltYWdlOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6LW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgcmdiYSgwLCAwLCAwLCAwLjcpLCByZ2JhKDAsIDAsIDAsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCl9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGlja3N7YmFja2dyb3VuZC1pbWFnZTpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjcpLCByZ2JhKDAsIDAsIDAsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCl9Lm1hdC1tZW51LXBhbmVse2JhY2tncm91bmQ6I2ZmZn0ubWF0LW1lbnUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LW1lbnUtaXRlbXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Y29sb3I6IzIxMjEyMX0ubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sLm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdIC5tYXQtbWVudS1zdWJtZW51LWljb24sLm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdIC5tYXQtaWNvbi1uby1jb2xvcntjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLC5tYXQtbWVudS1zdWJtZW51LWljb257Y29sb3I6cmdiYSgwLDAsMCwuNTQpfS5tYXQtbWVudS1pdGVtOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwubWF0LW1lbnUtaXRlbS5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdChbZGlzYWJsZWRdKSwubWF0LW1lbnUtaXRlbS5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksLm1hdC1tZW51LWl0ZW0taGlnaGxpZ2h0ZWQ6bm90KFtkaXNhYmxlZF0pe2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDQpfS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVte2NvbG9yOiMyMTIxMjF9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbntjb2xvcjojMjEyMTIxfS5tYXQtbGlzdC1iYXNlIC5tYXQtc3ViaGVhZGVye2NvbG9yOiM2MTYxNjF9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjojZWVlO2NvbG9yOiM3NTc1NzV9Lm1hdC1saXN0LW9wdGlvbjpob3ZlciwubWF0LWxpc3Qtb3B0aW9uOmZvY3VzLC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06aG92ZXIsLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbTpmb2N1cywubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLC5tYXQtYWN0aW9uLWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXN7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wNCl9Lm1hdC1saXN0LXNpbmdsZS1zZWxlY3RlZC1vcHRpb24sLm1hdC1saXN0LXNpbmdsZS1zZWxlY3RlZC1vcHRpb246aG92ZXIsLm1hdC1saXN0LXNpbmdsZS1zZWxlY3RlZC1vcHRpb246Zm9jdXN7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1wYWdpbmF0b3J7YmFja2dyb3VuZDojZmZmfS5tYXQtcGFnaW5hdG9yLC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2Vye2NvbG9yOiM2MTYxNjF9Lm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudHtib3JkZXItdG9wOjJweCBzb2xpZCByZ2JhKDAsMCwwLC41NCk7Ym9yZGVyLXJpZ2h0OjJweCBzb2xpZCByZ2JhKDAsMCwwLC41NCl9Lm1hdC1wYWdpbmF0b3ItZmlyc3QsLm1hdC1wYWdpbmF0b3ItbGFzdHtib3JkZXItdG9wOjJweCBzb2xpZCByZ2JhKDAsMCwwLC41NCl9Lm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCwubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1maXJzdCwubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1sYXN0e2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1wYWdpbmF0b3ItY29udGFpbmVye21pbi1oZWlnaHQ6NTZweH0ubWF0LXRhYi1uYXYtYmFyLC5tYXQtdGFiLWhlYWRlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMil9Lm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLW5hdi1iYXIsLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLWhlYWRlcntib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMik7Ym9yZGVyLWJvdHRvbTpub25lfS5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLWxpbmt7Y29sb3I6IzIxMjEyMX0ubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjb2xvcjojNzU3NTc1fS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOiMyMTIxMjF9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6Izc1NzU3NX0ubWF0LXRhYi1ncm91cFtjbGFzcyo9bWF0LWJhY2tncm91bmQtXT4ubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItbmF2LWJhcltjbGFzcyo9bWF0LWJhY2tncm91bmQtXXtib3JkZXItYm90dG9tOm5vbmU7Ym9yZGVyLXRvcDpub25lfS5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkLC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQsLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZCwubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQsLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQsLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2Vke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTY3LDM4LC4zKX0ubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xKX0ubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIsLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfS5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtaW5rLWJhciwubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6I2ZmZn0ubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkLC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZCwubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQsLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyMjQsMTc4LC4zKX0ubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMSl9Lm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LWluay1iYXIsLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC10YWItZ3JvdXAubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtaW5rLWJhciwubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXIsLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6I2ZmZn0ubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZCwubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQsLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkLC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQsLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIwNSwyMTAsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEpfS5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC10YWItZ3JvdXAubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE2NywzOCwuMyl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluaywubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5re2NvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KX0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3Jle2JvcmRlci1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6I2ZmZjtvcGFjaXR5Oi40fS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjojZmZmO29wYWNpdHk6LjEyfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyMjQsMTc4LC4zKX0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmssLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmt7Y29sb3I6I2ZmZn0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmV7Ym9yZGVyLWNvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOiNmZmY7b3BhY2l0eTouNH0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2ZmZjtvcGFjaXR5Oi4xMn0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyMDUsMjEwLC4zKX0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMSl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmt7Y29sb3I6I2ZmZn0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVke2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmV7Ym9yZGVyLWNvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1jb2xvcjojZmZmO29wYWNpdHk6LjR9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7b3BhY2l0eTouMTJ9Lm1hdC1zbmFjay1iYXItY29udGFpbmVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpO2JhY2tncm91bmQ6IzMyMzIzMjtib3gtc2hhZG93OjBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb257Y29sb3I6I2ZmOTgwMH0ubWF0LXRhYmxle2JhY2tncm91bmQ6I2ZmZn0ubWF0LXRhYmxlIHRoZWFkLC5tYXQtdGFibGUgdGJvZHksLm1hdC10YWJsZSB0Zm9vdCxtYXQtaGVhZGVyLXJvdyxtYXQtcm93LG1hdC1mb290ZXItcm93LFttYXQtaGVhZGVyLXJvd10sW21hdC1yb3ddLFttYXQtZm9vdGVyLXJvd10sLm1hdC10YWJsZS1zdGlja3l7YmFja2dyb3VuZDppbmhlcml0fW1hdC1yb3csbWF0LWhlYWRlci1yb3csbWF0LWZvb3Rlci1yb3csdGgubWF0LWhlYWRlci1jZWxsLHRkLm1hdC1jZWxsLHRkLm1hdC1mb290ZXItY2VsbHtib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWhlYWRlci1jZWxse2NvbG9yOiM2MTYxNjF9Lm1hdC1jZWxsLC5tYXQtZm9vdGVyLWNlbGx7Y29sb3I6IzIxMjEyMX0ubWF0LWJhZGdlLWNvbnRlbnR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiNmNTdjMDB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJhZGdlLWNvbnRlbnR7b3V0bGluZTpzb2xpZCAxcHg7Ym9yZGVyLXJhZGl1czowfS5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudHtiYWNrZ3JvdW5kOiNmZjk4MDA7Y29sb3I6I2ZmZn0ubWF0LWJhZGdlLXdhcm4gLm1hdC1iYWRnZS1jb250ZW50e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZjQ0MzM2fS5tYXQtYmFkZ2UtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50e2JhY2tncm91bmQ6I2JkYmRiZDtjb2xvcjojNzU3NTc1fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcntib3gtc2hhZG93OjBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMjEyMTIxfS5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93Om5vbmV9Lm1hdC1idXR0b24tdG9nZ2xle2NvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWF0LWJ1dHRvbi10b2dnbGUgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7Y29sb3I6IzIxMjEyMTtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSsubWF0LWJ1dHRvbi10b2dnbGV7Ym9yZGVyLWxlZnQ6c29saWQgMXB4ICNlMGUwZTB9W2Rpcj1ydGxdIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSsubWF0LWJ1dHRvbi10b2dnbGV7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmlnaHQ6c29saWQgMXB4ICNlMGUwZTB9Lm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlKy5tYXQtYnV0dG9uLXRvZ2dsZXtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDpub25lO2JvcmRlci10b3A6c29saWQgMXB4ICNlMGUwZTB9Lm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjojZTBlMGUwO2NvbG9yOiM2MTYxNjF9Lm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZHtjb2xvcjojMjEyMTIxfS5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4yNik7YmFja2dyb3VuZC1jb2xvcjojZWVlfS5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJke2JhY2tncm91bmQ6I2ZmZn0ubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOiNiZGJkYmR9Lm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCwubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZHtib3JkZXI6c29saWQgMXB4ICNlMGUwZTB9Lm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnR7bGluZS1oZWlnaHQ6NDhweH0ubWF0LWNhbGVuZGFyLWFycm93e2ZpbGw6cmdiYSgwLDAsMCwuNTQpfS5tYXQtZGF0ZXBpY2tlci10b2dnbGUsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbiwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbntjb2xvcjpyZ2JhKDAsMCwwLC41NCl9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIsLm1hdC1jYWxlbmRhci1ib2R5LWxhYmVse2NvbG9yOiM2MTYxNjF9Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCwubWF0LWRhdGUtcmFuZ2UtaW5wdXQtc2VwYXJhdG9ye2NvbG9yOiMyMTIxMjE7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCl9Lm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Y29sb3I6Izc1NzU3NX0ubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1kYXRlLXJhbmdlLWlucHV0LXNlcGFyYXRvcntjb2xvcjojNzU3NTc1fS5tYXQtY2FsZW5kYXItYm9keS1pbi1wcmV2aWV3e2NvbG9yOnJnYmEoMCwwLDAsLjI0KX0ubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQ+Lm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4xOCl9Lm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDI0NSwxMjQsMCwuMil9Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDI0OSwxNzEsMCwuMil9Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUsW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNDUsIDEyNCwgMCwgMC4yKSA1MCUsIHJnYmEoMjQ5LCAxNzEsIDAsIDAuMikgNTAlKX0ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmUsW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMjQ1LCAxMjQsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Lm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCwubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZS5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YWZ0ZXJ7YmFja2dyb3VuZDojYThkYWI1fS5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCwubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZT4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZDojNDZhMzVlfS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDA7Y29sb3I6I2ZmZn0ubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQ+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsMTI0LDAsLjQpfS5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjZmZmfS5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCksLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsMTI0LDAsLjMpfUBtZWRpYShob3ZlcjogaG92ZXIpey5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NSwxMjQsMCwuMyl9fS5tYXQtZGF0ZXBpY2tlci1jb250ZW50e2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMyMTIxMjF9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDE1MiwwLC4yKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDI0OSwxNzEsMCwuMil9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmUsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4yKSA1MCUsIHJnYmEoMjQ5LCAxNzEsIDAsIDAuMikgNTAlKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZT4ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZS5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YWZ0ZXJ7YmFja2dyb3VuZDojYThkYWI1fS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQ6IzQ2YTM1ZX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDA7Y29sb3I6I2ZmZn0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxNTIsMCwuNCl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZn0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCksLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxNTIsMCwuMyl9QG1lZGlhKGhvdmVyOiBob3Zlcil7Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTUyLDAsLjMpfX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ0LDY3LDU0LC4yKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ5LDE3MSwwLC4yKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI0NCwgNjcsIDU0LCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgyNDQsIDY3LCA1NCwgMC4yKSA1MCUsIHJnYmEoMjQ5LCAxNzEsIDAsIDAuMikgNTAlKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjphZnRlcntiYWNrZ3JvdW5kOiNhOGRhYjV9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNjtjb2xvcjojZmZmfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNCl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuMyl9QG1lZGlhKGhvdmVyOiBob3Zlcil7Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXI+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC4zKX19Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2h7Ym94LXNoYWRvdzowcHggMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmV7Y29sb3I6I2Y1N2MwMH0ubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtYWNjZW50e2NvbG9yOiNmZjk4MDB9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn0ubWF0LWRhdGUtcmFuZ2UtaW5wdXQtaW5uZXJbZGlzYWJsZWRde2NvbG9yOiM3NTc1NzV9Lm1hdC1jYWxlbmRhci1jb250cm9scyAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNle3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7cGFkZGluZzo4cHh9Lm1hdC1jYWxlbmRhci1jb250cm9scyAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlIC5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmd7bWF4LWhlaWdodDo0MHB4O21heC13aWR0aDo0MHB4fS5tYXQtY2FsZW5kYXItY29udHJvbHMgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZS5tZGMtaWNvbi1idXR0b24tLXJlZHVjZWQtc2l6ZSAubWRjLWljb24tYnV0dG9uX19yaXBwbGV7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDttYXJnaW4tdG9wOjBweDttYXJnaW4tYm90dG9tOjBweDttYXJnaW4tcmlnaHQ6MHB4O21hcmdpbi1sZWZ0OjBweH0ubWF0LWNhbGVuZGFyLWNvbnRyb2xzIC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UubWRjLWljb24tYnV0dG9uLS1yZWR1Y2VkLXNpemUgLm1kYy1pY29uLWJ1dHRvbl9fZm9jdXMtcmluZ3ttYXgtaGVpZ2h0OjQwcHg7bWF4LXdpZHRoOjQwcHh9Lm1hdC1jYWxlbmRhci1jb250cm9scyAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlIC5tZGMtaWNvbi1idXR0b25fX3RvdWNoe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7aGVpZ2h0OjQwcHg7bGVmdDo1MCU7d2lkdGg6NDBweDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpfS5tYXQtY2FsZW5kYXItY29udHJvbHMgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZSAubWF0LW1kYy1idXR0b24tdG91Y2gtdGFyZ2V0e2Rpc3BsYXk6bm9uZX0ubWF0LWRpdmlkZXJ7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1kaXZpZGVyLXZlcnRpY2Fse2JvcmRlci1yaWdodC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1leHBhbnNpb24tcGFuZWx7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMyMTIxMjF9Lm1hdC1leHBhbnNpb24tcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtYWN0aW9uLXJvd3tib3JkZXItdG9wLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWV4cGFuc2lvbi1wYW5lbCAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwubWF0LWV4cGFuc2lvbi1wYW5lbCAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA0KX1AbWVkaWEoaG92ZXI6IG5vbmUpey5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKTpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kOiNmZmZ9fS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZXtjb2xvcjojMjEyMTIxfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiwubWF0LWV4cGFuc2lvbi1pbmRpY2F0b3I6OmFmdGVye2NvbG9yOiM2MTYxNjF9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV17Y29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSwubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb257Y29sb3I6aW5oZXJpdH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJ7aGVpZ2h0OjQ4cHh9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLm1hdC1leHBhbmRlZHtoZWlnaHQ6NjRweH0ubWF0LWljb24ubWF0LXByaW1hcnl7Y29sb3I6I2Y1N2MwMH0ubWF0LWljb24ubWF0LWFjY2VudHtjb2xvcjojZmY5ODAwfS5tYXQtaWNvbi5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fS5tYXQtZHJhd2VyLWNvbnRhaW5lcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWRyYXdlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWRyYXdlci5tYXQtZHJhd2VyLXB1c2h7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtZHJhd2VyOm5vdCgubWF0LWRyYXdlci1zaWRlKXtib3gtc2hhZG93OjBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZHJhd2VyLXNpZGV7Ym9yZGVyLXJpZ2h0OnNvbGlkIDFweCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZHtib3JkZXItbGVmdDpzb2xpZCAxcHggcmdiYSgwLDAsMCwuMTIpO2JvcmRlci1yaWdodDpub25lfVtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRle2JvcmRlci1sZWZ0OnNvbGlkIDFweCByZ2JhKDAsMCwwLC4xMik7Ym9yZGVyLXJpZ2h0Om5vbmV9W2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmR7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmlnaHQ6c29saWQgMXB4IHJnYmEoMCwwLDAsLjEyKX0ubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3due2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNil9Lm1hdC1zdGVwLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZCwubWF0LXN0ZXAtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsLm1hdC1zdGVwLWhlYWRlcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWRdKSwubWF0LXN0ZXAtaGVhZGVyOmhvdmVyW2FyaWEtZGlzYWJsZWQ9ZmFsc2Vde2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDQpfS5tYXQtc3RlcC1oZWFkZXI6aG92ZXJbYXJpYS1kaXNhYmxlZD10cnVlXXtjdXJzb3I6ZGVmYXVsdH1AbWVkaWEoaG92ZXI6IG5vbmUpey5tYXQtc3RlcC1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDpub25lfX0ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbCwubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1vcHRpb25hbHtjb2xvcjojNjE2MTYxfS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb257YmFja2dyb3VuZC1jb2xvcjojNjE2MTYxO2NvbG9yOiNmZmZ9Lm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCwubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0e2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMDtjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIubWF0LWFjY2VudCAubWF0LXN0ZXAtaWNvbntjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIubWF0LWFjY2VudCAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCwubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSwubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDA7Y29sb3I6I2ZmZn0ubWF0LXN0ZXAtaGVhZGVyLm1hdC13YXJuIC5tYXQtc3RlcC1pY29ue2NvbG9yOiNmZmZ9Lm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCwubWF0LXN0ZXAtaGVhZGVyLm1hdC13YXJuIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0e2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNjtjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3J7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmNDQzMzZ9Lm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtYWN0aXZle2NvbG9yOiMyMTIxMjF9Lm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3J7Y29sb3I6I2Y0NDMzNn0ubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCwubWF0LXN0ZXBwZXItdmVydGljYWx7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmV7Ym9yZGVyLWxlZnQtY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YmVmb3JlLC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsLm1hdC1zdGVwcGVyLWhvcml6b250YWwtbGluZXtib3JkZXItdG9wLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXJ7aGVpZ2h0OjcycHh9Lm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXIsLm1hdC12ZXJ0aWNhbC1zdGVwcGVyLWhlYWRlcntwYWRkaW5nOjI0cHggMjRweH0ubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3Jle3RvcDotMTZweDtib3R0b206LTE2cHh9Lm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLC5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmV7dG9wOjM2cHh9Lm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5le3RvcDozNnB4fS5tYXQtc29ydC1oZWFkZXItYXJyb3d7Y29sb3I6IzYxNjE2MX0ubWF0LXRvb2xiYXJ7YmFja2dyb3VuZDojZjU3YzAwO2NvbG9yOiMyMTIxMjF9Lm1hdC10b29sYmFyLm1hdC1wcmltYXJ5e2JhY2tncm91bmQ6I2Y1N2MwMDtjb2xvcjojZmZmfS5tYXQtdG9vbGJhci5tYXQtYWNjZW50e2JhY2tncm91bmQ6I2ZmOTgwMDtjb2xvcjojZmZmfS5tYXQtdG9vbGJhci5tYXQtd2FybntiYWNrZ3JvdW5kOiNmNDQzMzY7Y29sb3I6I2ZmZn0ubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSwubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSwubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9Lm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6aW5oZXJpdH0ubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50e2NhcmV0LWNvbG9yOmN1cnJlbnRDb2xvcn0ubWF0LXRvb2xiYXItbXVsdGlwbGUtcm93c3ttaW4taGVpZ2h0OjY0cHh9Lm1hdC10b29sYmFyLXJvdywubWF0LXRvb2xiYXItc2luZ2xlLXJvd3toZWlnaHQ6NjRweH1AbWVkaWEobWF4LXdpZHRoOiA1OTlweCl7Lm1hdC10b29sYmFyLW11bHRpcGxlLXJvd3N7bWluLWhlaWdodDo1NnB4fS5tYXQtdG9vbGJhci1yb3csLm1hdC10b29sYmFyLXNpbmdsZS1yb3d7aGVpZ2h0OjU2cHh9fS5tYXQtdHJlZXtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC10cmVlLW5vZGUsLm1hdC1uZXN0ZWQtdHJlZS1ub2Rle2NvbG9yOiMyMTIxMjF9Lm1hdC10cmVlLW5vZGV7bWluLWhlaWdodDo0OHB4fS5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xKX0ubWF0LW1kYy1vcHRpb257Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuODcpKX0ubWF0LW1kYy1vcHRpb246aG92ZXI6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCksLm1hdC1tZGMtb3B0aW9uOmZvY3VzOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLC5tYXQtbWRjLW9wdGlvbi5tYXQtbWRjLW9wdGlvbi1hY3RpdmUsLm1hdC1tZGMtb3B0aW9uLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOm5vdCgubWF0LW1kYy1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpe2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDQpfS5tYXQtcHJpbWFyeSAubWF0LW1kYy1vcHRpb24ubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgI2Y1N2MwMCl9Lm1hdC1hY2NlbnQgLm1hdC1tZGMtb3B0aW9uLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgI2ZmOTgwMCl9Lm1hdC13YXJuIC5tYXQtbWRjLW9wdGlvbi5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKSAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1hdC1tZGMtb3B0Z3JvdXAtbGFiZWx7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuODcpKX0ubWF0LXBzZXVkby1jaGVja2JveC1mdWxse2NvbG9yOiM2MTYxNjF9Lm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVke2NvbG9yOiNiMGIwYjB9Lm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsOjphZnRlciwubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWw6OmFmdGVye2NvbG9yOiNmNTdjMDB9Lm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1mdWxsLC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbHtiYWNrZ3JvdW5kOiNmNTdjMDB9Lm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1mdWxsOjphZnRlciwubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGw6OmFmdGVye2NvbG9yOiNmZmZ9Lm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWw6OmFmdGVyLC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsOjphZnRlcntjb2xvcjojZmY5ODAwfS5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1mdWxsLC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1mdWxse2JhY2tncm91bmQ6I2ZmOTgwMH0ubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbDo6YWZ0ZXIsLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGw6OmFmdGVye2NvbG9yOiNmZmZ9Lm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWw6OmFmdGVyLC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsOjphZnRlcntjb2xvcjojZmY5ODAwfS5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1mdWxsLC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1mdWxse2JhY2tncm91bmQ6I2ZmOTgwMH0ubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbDo6YWZ0ZXIsLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGw6OmFmdGVye2NvbG9yOiNmZmZ9Lm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsOjphZnRlciwubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWw6OmFmdGVye2NvbG9yOiNmNDQzMzZ9Lm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1mdWxsLC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbHtiYWNrZ3JvdW5kOiNmNDQzMzZ9Lm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1mdWxsOjphZnRlciwubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGw6OmFmdGVye2NvbG9yOiNmZmZ9Lm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXIsLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXJ7Y29sb3I6I2IwYjBiMH0ubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1mdWxsLC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGx7YmFja2dyb3VuZDojYjBiMGIwfS5tYXQtYXBwLWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMyMTIxMjF9Lm1hdC1lbGV2YXRpb24tejAsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejB7Ym94LXNoYWRvdzowcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejEsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejF7Ym94LXNoYWRvdzowcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoyLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoye2JveC1zaGFkb3c6MHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MywubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16M3tib3gtc2hhZG93OjBweCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggM3B4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejQsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejR7Ym94LXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16NSwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16NXtib3gtc2hhZG93OjBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXo2LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXo2e2JveC1zaGFkb3c6MHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXo3LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXo3e2JveC1zaGFkb3c6MHB4IDRweCA1cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA3cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDJweCAxNnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXo4LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXo4e2JveC1zaGFkb3c6MHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXo5LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXo5e2JveC1zaGFkb3c6MHB4IDVweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA5cHggMTJweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxMCwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MTB7Ym94LXNoYWRvdzowcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxMSwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MTF7Ym94LXNoYWRvdzowcHggNnB4IDdweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDExcHggMTVweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAyMHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxMiwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MTJ7Ym94LXNoYWRvdzowcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxMywubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MTN7Ym94LXNoYWRvdzowcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxNCwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MTR7Ym94LXNoYWRvdzowcHggN3B4IDlweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE0cHggMjFweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxNSwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MTV7Ym94LXNoYWRvdzowcHggOHB4IDlweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE1cHggMjJweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAyOHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxNiwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MTZ7Ym94LXNoYWRvdzowcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MTcsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejE3e2JveC1zaGFkb3c6MHB4IDhweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTdweCAyNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE4LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxOHtib3gtc2hhZG93OjBweCA5cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE4cHggMjhweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDdweCAzNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxOSwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MTl7Ym94LXNoYWRvdzowcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MjAsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejIwe2JveC1zaGFkb3c6MHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIwcHggMzFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCAzOHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoyMSwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MjF7Ym94LXNoYWRvdzowcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjFweCAzM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDQwcHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejIyLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoyMntib3gtc2hhZG93OjBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MjMsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejIze2JveC1zaGFkb3c6MHB4IDExcHggMTRweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIzcHggMzZweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoyNCwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MjR7Ym94LXNoYWRvdzowcHggMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC10aGVtZS1sb2FkZWQtbWFya2Vye2Rpc3BsYXk6bm9uZX0ubWF0LW1kYy1jYXJke2JveC1zaGFkb3c6MHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1lbGV2YXRlZC1jYXJkLWNvbnRhaW5lci1jb2xvcjojZmZmfS5tYXQtbWRjLWNhcmQtb3V0bGluZWR7Ym94LXNoYWRvdzowcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtb3V0bGluZWQtY2FyZC1vdXRsaW5lLWNvbG9yOiNlMGUwZTB9Lm1hdC1tZGMtY2FyZC1zdWJ0aXRsZXtjb2xvcjojNjE2MTYxfS5tYXQtbWRjLXByb2dyZXNzLWJhcnstLW1kYy1saW5lYXItcHJvZ3Jlc3MtYWN0aXZlLWluZGljYXRvci1jb2xvcjojZjU3YzAwfS5tYXQtbWRjLXByb2dyZXNzLWJhciAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyLWRvdHN7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB4PScwcHgnIHk9JzBweCcgZW5hYmxlLWJhY2tncm91bmQ9J25ldyAwIDAgNSAyJyB4bWw6c3BhY2U9J3ByZXNlcnZlJyB2aWV3Qm94PScwIDAgNSAyJyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSdub25lIHNsaWNlJyUzRSUzQ2NpcmNsZSBjeD0nMScgY3k9JzEnIHI9JzEnIGZpbGw9J3JnYmEoMjQ1LCAxMjQsIDAsIDAuMjUpJy8lM0UlM0Mvc3ZnJTNFIil9Lm1hdC1tZGMtcHJvZ3Jlc3MtYmFyIC5tZGMtbGluZWFyLXByb2dyZXNzX19idWZmZXItYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsIDEyNCwgMCwgMC4yNSl9Lm1hdC1tZGMtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnR7LS1tZGMtbGluZWFyLXByb2dyZXNzLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6I2ZmOTgwMH0ubWF0LW1kYy1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyLWRvdHN7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB4PScwcHgnIHk9JzBweCcgZW5hYmxlLWJhY2tncm91bmQ9J25ldyAwIDAgNSAyJyB4bWw6c3BhY2U9J3ByZXNlcnZlJyB2aWV3Qm94PScwIDAgNSAyJyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSdub25lIHNsaWNlJyUzRSUzQ2NpcmNsZSBjeD0nMScgY3k9JzEnIHI9JzEnIGZpbGw9J3JnYmEoMjU1LCAxNTIsIDAsIDAuMjUpJy8lM0UlM0Mvc3ZnJTNFIil9Lm1hdC1tZGMtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2J1ZmZlci1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMTUyLCAwLCAwLjI1KX0ubWF0LW1kYy1wcm9ncmVzcy1iYXIubWF0LXdhcm57LS1tZGMtbGluZWFyLXByb2dyZXNzLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6I2Y0NDMzNn0ubWF0LW1kYy1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2J1ZmZlci1kb3Rze2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHZlcnNpb249JzEuMScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgeD0nMHB4JyB5PScwcHgnIGVuYWJsZS1iYWNrZ3JvdW5kPSduZXcgMCAwIDUgMicgeG1sOnNwYWNlPSdwcmVzZXJ2ZScgdmlld0JveD0nMCAwIDUgMicgcHJlc2VydmVBc3BlY3RSYXRpbz0nbm9uZSBzbGljZSclM0UlM0NjaXJjbGUgY3g9JzEnIGN5PScxJyByPScxJyBmaWxsPSdyZ2JhKDI0NCwgNjcsIDU0LCAwLjI1KScvJTNFJTNDL3N2ZyUzRSIpfS5tYXQtbWRjLXByb2dyZXNzLWJhci5tYXQtd2FybiAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LCA2NywgNTQsIDAuMjUpfS5tYXQtbWRjLXRvb2x0aXB7LS1tZGMtcGxhaW4tdG9vbHRpcC1jb250YWluZXItY29sb3I6IzYxNjE2MTstLW1kYy1wbGFpbi10b29sdGlwLXN1cHBvcnRpbmctdGV4dC1jb2xvcjp3aGl0ZX0ubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtZmxvYXRpbmctbGFiZWx7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpfS5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dHtjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpfUBtZWRpYSBhbGx7Lm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OjpwbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNil9fUBtZWRpYSBhbGx7Lm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLXRleHQtZmllbGRfX2lucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNil9fS5tZGMtdGV4dC1maWVsZCAubWRjLXRleHQtZmllbGRfX2lucHV0e2NhcmV0LWNvbG9yOnZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjZjU3YzAwKX0ubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpKy5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHR7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpfS5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkrLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlcntjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNil9Lm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLXRleHQtZmllbGRfX2ljb24tLWxlYWRpbmd7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KX0ubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbi0tdHJhaWxpbmd7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KX0ubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9fYWZmaXgtLXByZWZpeHtjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNil9Lm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLXRleHQtZmllbGRfX2FmZml4LS1zdWZmaXh7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpfS5tZGMtdGV4dC1maWVsZC0tZmlsbGVkIC5tZGMtdGV4dC1maWVsZF9fcmlwcGxlOjpiZWZvcmUsLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQgLm1kYy10ZXh0LWZpZWxkX19yaXBwbGU6OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLXJpcHBsZS1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjg3KSl9Lm1kYy10ZXh0LWZpZWxkLS1maWxsZWQ6aG92ZXIgLm1kYy10ZXh0LWZpZWxkX19yaXBwbGU6OmJlZm9yZSwubWRjLXRleHQtZmllbGQtLWZpbGxlZC5tZGMtcmlwcGxlLXN1cmZhY2UtLWhvdmVyIC5tZGMtdGV4dC1maWVsZF9fcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTp2YXIoLS1tZGMtcmlwcGxlLWhvdmVyLW9wYWNpdHksIDAuMDQpfS5tZGMtdGV4dC1maWVsZC0tZmlsbGVkLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCAubWRjLXRleHQtZmllbGRfX3JpcHBsZTo6YmVmb3JlLC5tZGMtdGV4dC1maWVsZC0tZmlsbGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXMgLm1kYy10ZXh0LWZpZWxkX19yaXBwbGU6OmJlZm9yZXtvcGFjaXR5OnZhcigtLW1kYy1yaXBwbGUtZm9jdXMtb3BhY2l0eSwgMC4xMil9Lm1kYy10ZXh0LWZpZWxkLS1maWxsZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6d2hpdGVzbW9rZX0ubWRjLXRleHQtZmllbGQtLWZpbGxlZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1saW5lLXJpcHBsZTo6YmVmb3Jle2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjQyKX0ubWRjLXRleHQtZmllbGQtLWZpbGxlZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6aG92ZXIgLm1kYy1saW5lLXJpcHBsZTo6YmVmb3Jle2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KX0ubWRjLXRleHQtZmllbGQtLWZpbGxlZCAubWRjLWxpbmUtcmlwcGxlOjphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjZjU3YzAwKX0ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfS5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpOmhvdmVyIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpOmhvdmVyIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCwubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKTpob3ZlciAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmd7Ym9yZGVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyl9Lm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6dmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICNmNTdjMDApfS5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19yaXBwbGU6OmJlZm9yZSwubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9fcmlwcGxlOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1yaXBwbGUtY29sb3IsIHRyYW5zcGFyZW50KX0ubWRjLXRleHQtZmllbGQtLWZvY3VzZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtZmxvYXRpbmctbGFiZWx7Y29sb3I6cmdiYSgyNDUsIDEyNCwgMCwgMC44Nyl9Lm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpob3ZlciAubWRjLWxpbmUtcmlwcGxlOjpiZWZvcmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1saW5lLXJpcHBsZTo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1mbG9hdGluZy1sYWJlbHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWludmFsaWQrLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC0tdmFsaWRhdGlvbi1tc2d7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWRjLXRleHQtZmllbGQtLWludmFsaWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dHtjYXJldC1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uLS10cmFpbGluZ3tjb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1saW5lLXJpcHBsZTo6YmVmb3Jle2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCk6aG92ZXIgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKTpob3ZlciAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKTpob3ZlciAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmd7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCwubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXR7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KX1AbWVkaWEgYWxsey5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDo6cGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KX19QG1lZGlhIGFsbHsubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCl9fS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1mbG9hdGluZy1sYWJlbHtjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQrLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dHtjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQrLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlcntjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pY29uLS1sZWFkaW5ne2NvbG9yOnJnYmEoMCwgMCwgMCwgMC4zKX0ubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZF9faWNvbi0tdHJhaWxpbmd7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjMpfS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19hZmZpeC0tcHJlZml4e2NvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCl9Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2FmZml4LS1zdWZmaXh7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KX0ubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbGluZS1yaXBwbGU6OmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4wNil9Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCwubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA2KX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSwoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSl7Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2lucHV0OjpwbGFjZWhvbGRlcntjb2xvcjpHcmF5VGV4dH19QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpey5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6R3JheVRleHR9fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKXsubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtZmxvYXRpbmctbGFiZWx7Y29sb3I6R3JheVRleHR9fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKXsubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKy5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHR7Y29sb3I6R3JheVRleHR9fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKXsubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlciwubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKy5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXJ7Y29sb3I6R3JheVRleHR9fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKXsubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZF9faWNvbi0tbGVhZGluZ3tjb2xvcjpHcmF5VGV4dH19QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpey5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pY29uLS10cmFpbGluZ3tjb2xvcjpHcmF5VGV4dH19QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpey5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19hZmZpeC0tcHJlZml4e2NvbG9yOkdyYXlUZXh0fX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSwoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSl7Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2FmZml4LS1zdWZmaXh7Y29sb3I6R3JheVRleHR9fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKXsubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbGluZS1yaXBwbGU6OmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOkdyYXlUZXh0fX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSwoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSl7Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCwubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6R3JheVRleHR9fS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQubWRjLXRleHQtZmllbGQtLWZpbGxlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmF9Lm1hdC1tZGMtZm9ybS1maWVsZC1lcnJvcntjb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQtZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LW1kYy1mb3JtLWZpZWxkOmhvdmVyIC5tYXQtbWRjLWZvcm0tZmllbGQtZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4wNH0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtbWRjLWZvcm0tZmllbGQtZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LW1kYy1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1tZGMtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6cmdiYSgwLDAsMCwuNTQpfS5tYXQtbWRjLWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZC5tYXQtcHJpbWFyeSAubWF0LW1kYy1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjpyZ2JhKDI0NSwxMjQsMCwuODcpfS5tYXQtbWRjLWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtbWRjLWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOnJnYmEoMjU1LDE1MiwwLC44Nyl9Lm1hdC1tZGMtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtbWRjLWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOnJnYmEoMjQ0LDY3LDU0LC44Nyl9Lm1hdC1tZGMtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtbWRjLWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dHtjYXJldC1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjZmY5ODAwKX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbGluZS1yaXBwbGU6OmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgI2ZmOTgwMCl9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1mbG9hdGluZy1sYWJlbHtjb2xvcjpyZ2JhKDI1NSwgMTUyLCAwLCAwLjg3KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpob3ZlciAubWRjLWxpbmUtcmlwcGxlOjpiZWZvcmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbGluZS1yaXBwbGU6OmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWZsb2F0aW5nLWxhYmVse2NvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWludmFsaWQrLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC0tdmFsaWRhdGlvbi1tc2d7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkIC5tZGMtdGV4dC1maWVsZF9faW5wdXR7Y2FyZXQtY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLXRleHQtZmllbGRfX2ljb24tLXRyYWlsaW5ne2NvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1saW5lLXJpcHBsZTo6YmVmb3Jle2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpOmhvdmVyIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpOmhvdmVyIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCwubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKTpob3ZlciAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmd7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCwubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjZmY5ODAwKX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZF9faW5wdXR7Y2FyZXQtY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWxpbmUtcmlwcGxlOjphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWZvY3VzZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtZmxvYXRpbmctbGFiZWx7Y29sb3I6cmdiYSgyNDQsIDY3LCA1NCwgMC44Nyl9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOmhvdmVyIC5tZGMtbGluZS1yaXBwbGU6OmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbGluZS1yaXBwbGU6OmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1mbG9hdGluZy1sYWJlbHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0taW52YWxpZCsubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LS12YWxpZGF0aW9uLW1zZ3tjb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkIC5tZGMtdGV4dC1maWVsZF9faW5wdXR7Y2FyZXQtY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uLS10cmFpbGluZ3tjb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWxpbmUtcmlwcGxlOjpiZWZvcmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmd7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpOmhvdmVyIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKTpob3ZlciAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpOmhvdmVyIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCwubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmd7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Lm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtbWRjLWZvcm0tZmllbGQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoe2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDAsMCwwLDApfVtkaXI9cnRsXSAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1tZGMtZm9ybS1maWVsZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2h7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMCl9Lm1hdC1tZGMtZm9ybS1maWVsZC1pbmZpeHttaW4taGVpZ2h0OjU2cHh9Lm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyIC5tYXQtbWRjLWZvcm0tZmllbGQtZmxleCAubWF0LW1kYy1mbG9hdGluZy1sYWJlbHt0b3A6MjhweH0ubWF0LW1kYy10ZXh0LWZpZWxkLXdyYXBwZXIubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZXstLW1hdC1tZGMtZm9ybS1maWVsZC1sYWJlbC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoIC0zNC43NXB4KSBzY2FsZSh2YXIoLS1tYXQtbWRjLWZvcm0tZmllbGQtZmxvYXRpbmctbGFiZWwtc2NhbGUsIDAuNzUpKTt0cmFuc2Zvcm06dmFyKC0tbWF0LW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRyYW5zZm9ybSl9Lm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWF0LW1kYy1mb3JtLWZpZWxkLWluZml4e3BhZGRpbmctdG9wOjE2cHg7cGFkZGluZy1ib3R0b206MTZweH0ubWF0LW1kYy10ZXh0LWZpZWxkLXdyYXBwZXI6bm90KC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQpIC5tYXQtbWRjLWZvcm0tZmllbGQtaW5maXh7cGFkZGluZy10b3A6MjRweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1kYy10ZXh0LWZpZWxkLS1uby1sYWJlbDpub3QoLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIC5tYXQtbWRjLWZvcm0tZmllbGQtaW5maXh7cGFkZGluZy10b3A6MTZweDtwYWRkaW5nLWJvdHRvbToxNnB4fS5tZGMtbWVudS1zdXJmYWNle2JveC1zaGFkb3c6MHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLXRoZW1lLXN1cmZhY2UsICNmZmYpO2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjg3KSl9Lm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LXNlY29uZGFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuNTQpKX0ubWRjLWxpc3QtaXRlbV9fb3ZlcmxpbmUtdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1oaW50LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpfS5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fZW5ke2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWRjLWxpc3QtaXRlbS0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19lbmR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtaWNvbi1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuMzgpKX0ubWRjLWxpc3QtaXRlbV9fZW5ke2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LWhpbnQtb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjM4KSl9Lm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX2NvbnRlbnQsLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19lbmR7b3BhY2l0eTowLjM4fS5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX292ZXJsaW5lLXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApfS5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApfS5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZC5tZGMtbGlzdC1pdGVtLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX2VuZHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCl9Lm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHJhaWxpbmctbWV0YSAubWRjLWxpc3QtaXRlbV9fZW5ke2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dCwubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICNmNTdjMDApfS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICNmNTdjMDApfS5tZGMtZGVwcmVjYXRlZC1saXN0LWdyb3VwX19zdWJoZWFkZXJ7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuODcpKX0ubWRjLWxpc3QtZGl2aWRlcjo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp3aGl0ZX0ubWRjLWxpc3QtZGl2aWRlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1tZGMtc2VsZWN0LXZhbHVle2NvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LW1kYy1zZWxlY3QtcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSgwLDAsMCwuNil9Lm1hdC1tZGMtc2VsZWN0LWRpc2FibGVkIC5tYXQtbWRjLXNlbGVjdC12YWx1ZXtjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1tZGMtc2VsZWN0LWFycm93e2NvbG9yOnJnYmEoMCwwLDAsLjU0KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1wcmltYXJ5IC5tYXQtbWRjLXNlbGVjdC1hcnJvd3tjb2xvcjpyZ2JhKDI0NSwxMjQsMCwuODcpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LW1kYy1zZWxlY3QtYXJyb3d7Y29sb3I6cmdiYSgyNTUsMTUyLDAsLjg3KX0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtbWRjLXNlbGVjdC1hcnJvd3tjb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuODcpfS5tYXQtbWRjLWZvcm0tZmllbGQgLm1hdC1tZGMtc2VsZWN0Lm1hdC1tZGMtc2VsZWN0LWludmFsaWQgLm1hdC1tZGMtc2VsZWN0LWFycm93e2NvbG9yOnJnYmEoMjQ0LDY3LDU0LC44Nyl9Lm1hdC1tZGMtZm9ybS1maWVsZCAubWF0LW1kYy1zZWxlY3QubWF0LW1kYy1zZWxlY3QtZGlzYWJsZWQgLm1hdC1tZGMtc2VsZWN0LWFycm93e2NvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWRjLW1lbnUtc3VyZmFjZXtib3gtc2hhZG93OjBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy10aGVtZS1zdXJmYWNlLCAjZmZmKTtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCl9Lm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpfS5tZGMtbGlzdC1pdGVtX19zZWNvbmRhcnktdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1zZWNvbmRhcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjU0KSl9Lm1kYy1saXN0LWl0ZW1fX292ZXJsaW5lLXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuMzgpKX0ubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LC5tZGMtbGlzdC1pdGVtLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX2VuZHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fZW5ke2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LWljb24tb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjM4KSl9Lm1kYy1saXN0LWl0ZW1fX2VuZHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1oaW50LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpfS5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19jb250ZW50LC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fZW5ke29wYWNpdHk6MC4zOH0ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCl9Lm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19zZWNvbmRhcnktdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCl9Lm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19vdmVybGluZS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQubWRjLWxpc3QtaXRlbS0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19lbmR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApfS5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZC5tZGMtbGlzdC1pdGVtLS13aXRoLXRyYWlsaW5nLW1ldGEgLm1kYy1saXN0LWl0ZW1fX2VuZHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCl9Lm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQsLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjZjU3YzAwKX0ubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjZjU3YzAwKX0ubWRjLWRlcHJlY2F0ZWQtbGlzdC1ncm91cF9fc3ViaGVhZGVye2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjg3KSl9Lm1kYy1saXN0LWRpdmlkZXI6OmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6d2hpdGV9Lm1kYy1saXN0LWRpdmlkZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtbWRjLWRpYWxvZy1jb250YWluZXJ7LS1tZGMtZGlhbG9nLWNvbnRhaW5lci1jb2xvcjp3aGl0ZTstLW1kYy1kaWFsb2ctd2l0aC1kaXZpZGVyLWRpdmlkZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1kaWFsb2ctc3ViaGVhZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWRjLWRpYWxvZy1zdXBwb3J0aW5nLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXB7LS1tZGMtY2hpcC1lbGV2YXRlZC1jb250YWluZXItY29sb3I6I2UwZTBlMDstLW1kYy1jaGlwLWVsZXZhdGVkLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjojZTBlMGUwOy0tbWRjLWNoaXAtbGFiZWwtdGV4dC1jb2xvcjojMjEyMTIxOy0tbWRjLWNoaXAtZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjojMjEyMTIxOy0tbWRjLWNoaXAtd2l0aC1pY29uLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGlwLXdpdGgtaWNvbi1kaXNhYmxlZC1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tZGlzYWJsZWQtdHJhaWxpbmctaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoaXAtd2l0aC10cmFpbGluZy1pY29uLXRyYWlsaW5nLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGlwLXdpdGgtaWNvbi1zZWxlY3RlZC1pY29uLWNvbG9yOiMyMTIxMjF9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtcHJpbWFyeS5tYXQtbWRjLWNoaXAtc2VsZWN0ZWQsLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtcHJpbWFyeS5tYXQtbWRjLWNoaXAtaGlnaGxpZ2h0ZWR7LS1tZGMtY2hpcC1lbGV2YXRlZC1jb250YWluZXItY29sb3I6I2Y1N2MwMDstLW1kYy1jaGlwLWVsZXZhdGVkLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjojZjU3YzAwOy0tbWRjLWNoaXAtbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLWljb24taWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1kaXNhYmxlZC1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC10cmFpbGluZy1pY29uLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tdHJhaWxpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1zZWxlY3RlZC1pY29uLWNvbG9yOndoaXRlfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWF0LWFjY2VudC5tYXQtbWRjLWNoaXAtc2VsZWN0ZWQsLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtYWNjZW50Lm1hdC1tZGMtY2hpcC1oaWdobGlnaHRlZHstLW1kYy1jaGlwLWVsZXZhdGVkLWNvbnRhaW5lci1jb2xvcjojZmY5ODAwOy0tbWRjLWNoaXAtZWxldmF0ZWQtZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yOiNmZjk4MDA7LS1tZGMtY2hpcC1sYWJlbC10ZXh0LWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC1pY29uLWRpc2FibGVkLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tZGlzYWJsZWQtdHJhaWxpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi10cmFpbGluZy1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC1pY29uLXNlbGVjdGVkLWljb24tY29sb3I6d2hpdGV9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtd2Fybi5tYXQtbWRjLWNoaXAtc2VsZWN0ZWQsLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtd2Fybi5tYXQtbWRjLWNoaXAtaGlnaGxpZ2h0ZWR7LS1tZGMtY2hpcC1lbGV2YXRlZC1jb250YWluZXItY29sb3I6I2Y0NDMzNjstLW1kYy1jaGlwLWVsZXZhdGVkLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoaXAtbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLWljb24taWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1kaXNhYmxlZC1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC10cmFpbGluZy1pY29uLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tdHJhaWxpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1zZWxlY3RlZC1pY29uLWNvbG9yOndoaXRlfS5tYXQtbWRjLWNoaXAtZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kOiMwMDB9Lm1hdC1tZGMtY2hpcHtoZWlnaHQ6MzJweH0ubWF0LW1kYy1zbGlkZS10b2dnbGV7LS1tZGMtc3dpdGNoLWRpc2FibGVkLXNlbGVjdGVkLWhhbmRsZS1jb2xvcjojNDI0MjQyOy0tbWRjLXN3aXRjaC1kaXNhYmxlZC11bnNlbGVjdGVkLWhhbmRsZS1jb2xvcjojNDI0MjQyOy0tbWRjLXN3aXRjaC1kaXNhYmxlZC1zZWxlY3RlZC10cmFjay1jb2xvcjojNDI0MjQyOy0tbWRjLXN3aXRjaC1kaXNhYmxlZC11bnNlbGVjdGVkLXRyYWNrLWNvbG9yOiM0MjQyNDI7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6IzQyNDI0MjstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1wcmVzc2VkLXN0YXRlLWxheWVyLWNvbG9yOiM0MjQyNDI7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6IzQyNDI0MjstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1mb2N1cy10cmFjay1jb2xvcjojZTBlMGUwOy0tbWRjLXN3aXRjaC11bnNlbGVjdGVkLWhvdmVyLXRyYWNrLWNvbG9yOiNlMGUwZTA7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtcHJlc3NlZC10cmFjay1jb2xvcjojZTBlMGUwOy0tbWRjLXN3aXRjaC11bnNlbGVjdGVkLXRyYWNrLWNvbG9yOiNlMGUwZTA7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtZm9jdXMtaGFuZGxlLWNvbG9yOiMyMTIxMjE7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtaG92ZXItaGFuZGxlLWNvbG9yOiMyMTIxMjE7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtcHJlc3NlZC1oYW5kbGUtY29sb3I6IzIxMjEyMTstLW1kYy1zd2l0Y2gtaGFuZGxlLXN1cmZhY2UtY29sb3I6dmFyKC0tbWRjLXRoZW1lLXN1cmZhY2UsICNmZmYpOy0tbWRjLXN3aXRjaC11bnNlbGVjdGVkLWhhbmRsZS1jb2xvcjojNjE2MTYxOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1pY29uLWNvbG9yOiNmZmY7LS1tZGMtc3dpdGNoLWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6I2ZmZjstLW1kYy1zd2l0Y2gtZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOiNmZmY7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmZmfS5tYXQtbWRjLXNsaWRlLXRvZ2dsZSAubWRjLWZvcm0tZmllbGR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuODcpKX0ubWF0LW1kYy1zbGlkZS10b2dnbGUgLm1kYy1zd2l0Y2gtLWRpc2FibGVkK2xhYmVse2NvbG9yOiM3NTc1NzV9Lm1hdC1tZGMtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5ey0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjojZmI4YzAwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1oYW5kbGUtY29sb3I6I2ZiOGMwMDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6I2ZiOGMwMDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjojZmI4YzAwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy1oYW5kbGUtY29sb3I6I2U2NTEwMDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItaGFuZGxlLWNvbG9yOiNlNjUxMDA7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtaGFuZGxlLWNvbG9yOiNlNjUxMDA7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWZvY3VzLXRyYWNrLWNvbG9yOiNmZmI3NGQ7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLXRyYWNrLWNvbG9yOiNmZmI3NGQ7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtdHJhY2stY29sb3I6I2ZmYjc0ZDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtdHJhY2stY29sb3I6I2ZmYjc0ZH0ubWF0LW1kYy1zbGlkZS10b2dnbGUubWF0LWFjY2VudHstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6I2ZiOGMwMDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaGFuZGxlLWNvbG9yOiNmYjhjMDA7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOiNmYjhjMDA7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItY29sb3I6I2ZiOGMwMDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtZm9jdXMtaGFuZGxlLWNvbG9yOiNlNjUxMDA7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLWhhbmRsZS1jb2xvcjojZTY1MTAwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1wcmVzc2VkLWhhbmRsZS1jb2xvcjojZTY1MTAwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy10cmFjay1jb2xvcjojZmZiNzRkOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1ob3Zlci10cmFjay1jb2xvcjojZmZiNzRkOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1wcmVzc2VkLXRyYWNrLWNvbG9yOiNmZmI3NGQ7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXRyYWNrLWNvbG9yOiNmZmI3NGR9Lm1hdC1tZGMtc2xpZGUtdG9nZ2xlLm1hdC13YXJuey0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjojZTUzOTM1Oy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1oYW5kbGUtY29sb3I6I2U1MzkzNTstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6I2U1MzkzNTstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjojZTUzOTM1Oy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy1oYW5kbGUtY29sb3I6I2I3MWMxYzstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItaGFuZGxlLWNvbG9yOiNiNzFjMWM7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtaGFuZGxlLWNvbG9yOiNiNzFjMWM7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWZvY3VzLXRyYWNrLWNvbG9yOiNlNTczNzM7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLXRyYWNrLWNvbG9yOiNlNTczNzM7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtdHJhY2stY29sb3I6I2U1NzM3MzstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtdHJhY2stY29sb3I6I2U1NzM3M30ubWF0LW1kYy1zbGlkZS10b2dnbGV7LS1tZGMtc3dpdGNoLXN0YXRlLWxheWVyLXNpemU6NDhweH0ubWF0LW1kYy1yYWRpby1idXR0b24gLm1kYy1mb3JtLWZpZWxke2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjg3KSl9Lm1hdC1tZGMtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWRjLXJhZGlvLWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6IzAwMDstLW1kYy1yYWRpby1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6IzAwMDstLW1kYy1yYWRpby11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1yYWRpby11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1yYWRpby11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1yYWRpby11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2Y1N2MwMDstLW1kYy1yYWRpby1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNmNTdjMDA7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaWNvbi1jb2xvcjojZjU3YzAwOy0tbWRjLXJhZGlvLXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojZjU3YzAwOy0tbWF0LW1kYy1yYWRpby1yaXBwbGUtY29sb3I6ICMwMDA7LS1tYXQtbWRjLXJhZGlvLWNoZWNrZWQtcmlwcGxlLWNvbG9yOiAjZjU3YzAwfS5tYXQtbWRjLXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWRjLXJhZGlvLS1kaXNhYmxlZCtsYWJlbHtjb2xvcjojNzU3NTc1fS5tYXQtbWRjLXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWRjLXJhZGlvLWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6IzAwMDstLW1kYy1yYWRpby1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6IzAwMDstLW1kYy1yYWRpby11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1yYWRpby11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1yYWRpby11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1yYWRpby11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2ZmOTgwMDstLW1kYy1yYWRpby1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNmZjk4MDA7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmY5ODAwOy0tbWRjLXJhZGlvLXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojZmY5ODAwOy0tbWF0LW1kYy1yYWRpby1yaXBwbGUtY29sb3I6ICMwMDA7LS1tYXQtbWRjLXJhZGlvLWNoZWNrZWQtcmlwcGxlLWNvbG9yOiAjZmY5ODAwfS5tYXQtbWRjLXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tZGMtcmFkaW8tLWRpc2FibGVkK2xhYmVse2NvbG9yOiM3NTc1NzV9Lm1hdC1tZGMtcmFkaW8tYnV0dG9uLm1hdC13YXJuey0tbWRjLXJhZGlvLWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6IzAwMDstLW1kYy1yYWRpby1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6IzAwMDstLW1kYy1yYWRpby11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1yYWRpby11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1yYWRpby11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1yYWRpby11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1yYWRpby1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLXJhZGlvLXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWF0LW1kYy1yYWRpby1yaXBwbGUtY29sb3I6ICMwMDA7LS1tYXQtbWRjLXJhZGlvLWNoZWNrZWQtcmlwcGxlLWNvbG9yOiAjZjQ0MzM2fS5tYXQtbWRjLXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWRjLXJhZGlvLS1kaXNhYmxlZCtsYWJlbHtjb2xvcjojNzU3NTc1fS5tYXQtbWRjLXJhZGlvLWJ1dHRvbiAubWRjLXJhZGlve3BhZGRpbmc6Y2FsYygoNDBweCAtIDIwcHgpIC8gMil9Lm1hdC1tZGMtcmFkaW8tYnV0dG9uIC5tZGMtcmFkaW8gLm1kYy1yYWRpb19fYmFja2dyb3VuZDo6YmVmb3Jle3RvcDpjYWxjKC0xICogKDQwcHggLSAyMHB4KSAvIDIpO2xlZnQ6Y2FsYygtMSAqICg0MHB4IC0gMjBweCkgLyAyKTt3aWR0aDo0MHB4O2hlaWdodDo0MHB4fS5tYXQtbWRjLXJhZGlvLWJ1dHRvbiAubWRjLXJhZGlvIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9se3RvcDpjYWxjKCg0MHB4IC0gNDBweCkgLyAyKTtyaWdodDpjYWxjKCg0MHB4IC0gNDBweCkgLyAyKTtsZWZ0OmNhbGMoKDQwcHggLSA0MHB4KSAvIDIpO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHh9Lm1hdC1tZGMtc2xpZGVyey0tbWRjLXNsaWRlci1sYWJlbC1jb250YWluZXItY29sb3I6YmxhY2s7LS1tZGMtc2xpZGVyLWxhYmVsLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tZGMtc2xpZGVyLWRpc2FibGVkLWhhbmRsZS1jb2xvcjojMDAwOy0tbWRjLXNsaWRlci1kaXNhYmxlZC1hY3RpdmUtdHJhY2stY29sb3I6IzAwMDstLW1kYy1zbGlkZXItZGlzYWJsZWQtaW5hY3RpdmUtdHJhY2stY29sb3I6IzAwMDstLW1kYy1zbGlkZXItd2l0aC10aWNrLW1hcmtzLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjojMDAwOy0tbWF0LW1kYy1zbGlkZXItdmFsdWUtaW5kaWNhdG9yLW9wYWNpdHk6IDAuNn0ubWF0LW1kYy1zbGlkZXIubWF0LXByaW1hcnl7LS1tZGMtc2xpZGVyLWhhbmRsZS1jb2xvcjojZjU3YzAwOy0tbWRjLXNsaWRlci1mb2N1cy1oYW5kbGUtY29sb3I6I2Y1N2MwMDstLW1kYy1zbGlkZXItaG92ZXItaGFuZGxlLWNvbG9yOiNmNTdjMDA7LS1tZGMtc2xpZGVyLWFjdGl2ZS10cmFjay1jb2xvcjojZjU3YzAwOy0tbWRjLXNsaWRlci1pbmFjdGl2ZS10cmFjay1jb2xvcjojZjU3YzAwOy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtYWN0aXZlLWNvbnRhaW5lci1jb2xvcjojMDAwOy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtaW5hY3RpdmUtY29udGFpbmVyLWNvbG9yOiNmNTdjMDA7LS1tYXQtbWRjLXNsaWRlci1yaXBwbGUtY29sb3I6ICNmNTdjMDA7LS1tYXQtbWRjLXNsaWRlci1ob3Zlci1yaXBwbGUtY29sb3I6IHJnYmEoMjQ1LCAxMjQsIDAsIDAuMDUpOy0tbWF0LW1kYy1zbGlkZXItZm9jdXMtcmlwcGxlLWNvbG9yOiByZ2JhKDI0NSwgMTI0LCAwLCAwLjIpfS5tYXQtbWRjLXNsaWRlci5tYXQtYWNjZW50ey0tbWRjLXNsaWRlci1oYW5kbGUtY29sb3I6I2ZmOTgwMDstLW1kYy1zbGlkZXItZm9jdXMtaGFuZGxlLWNvbG9yOiNmZjk4MDA7LS1tZGMtc2xpZGVyLWhvdmVyLWhhbmRsZS1jb2xvcjojZmY5ODAwOy0tbWRjLXNsaWRlci1hY3RpdmUtdHJhY2stY29sb3I6I2ZmOTgwMDstLW1kYy1zbGlkZXItaW5hY3RpdmUtdHJhY2stY29sb3I6I2ZmOTgwMDstLW1kYy1zbGlkZXItd2l0aC10aWNrLW1hcmtzLWFjdGl2ZS1jb250YWluZXItY29sb3I6IzAwMDstLW1kYy1zbGlkZXItd2l0aC10aWNrLW1hcmtzLWluYWN0aXZlLWNvbnRhaW5lci1jb2xvcjojZmY5ODAwOy0tbWF0LW1kYy1zbGlkZXItcmlwcGxlLWNvbG9yOiAjZmY5ODAwOy0tbWF0LW1kYy1zbGlkZXItaG92ZXItcmlwcGxlLWNvbG9yOiByZ2JhKDI1NSwgMTUyLCAwLCAwLjA1KTstLW1hdC1tZGMtc2xpZGVyLWZvY3VzLXJpcHBsZS1jb2xvcjogcmdiYSgyNTUsIDE1MiwgMCwgMC4yKX0ubWF0LW1kYy1zbGlkZXIubWF0LXdhcm57LS1tZGMtc2xpZGVyLWhhbmRsZS1jb2xvcjojZjQ0MzM2Oy0tbWRjLXNsaWRlci1mb2N1cy1oYW5kbGUtY29sb3I6I2Y0NDMzNjstLW1kYy1zbGlkZXItaG92ZXItaGFuZGxlLWNvbG9yOiNmNDQzMzY7LS1tZGMtc2xpZGVyLWFjdGl2ZS10cmFjay1jb2xvcjojZjQ0MzM2Oy0tbWRjLXNsaWRlci1pbmFjdGl2ZS10cmFjay1jb2xvcjojZjQ0MzM2Oy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtYWN0aXZlLWNvbnRhaW5lci1jb2xvcjojZmZmOy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtaW5hY3RpdmUtY29udGFpbmVyLWNvbG9yOiNmNDQzMzY7LS1tYXQtbWRjLXNsaWRlci1yaXBwbGUtY29sb3I6ICNmNDQzMzY7LS1tYXQtbWRjLXNsaWRlci1ob3Zlci1yaXBwbGUtY29sb3I6IHJnYmEoMjQ0LCA2NywgNTQsIDAuMDUpOy0tbWF0LW1kYy1zbGlkZXItZm9jdXMtcmlwcGxlLWNvbG9yOiByZ2JhKDI0NCwgNjcsIDU0LCAwLjIpfS5tZGMtbWVudS1zdXJmYWNle2JveC1zaGFkb3c6MHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLXRoZW1lLXN1cmZhY2UsICNmZmYpO2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjg3KSl9Lm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LXNlY29uZGFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuNTQpKX0ubWRjLWxpc3QtaXRlbV9fb3ZlcmxpbmUtdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1oaW50LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpfS5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fZW5ke2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWRjLWxpc3QtaXRlbS0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19lbmR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtaWNvbi1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuMzgpKX0ubWRjLWxpc3QtaXRlbV9fZW5ke2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LWhpbnQtb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjM4KSl9Lm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX2NvbnRlbnQsLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19lbmR7b3BhY2l0eTowLjM4fS5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX292ZXJsaW5lLXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApfS5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApfS5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZC5tZGMtbGlzdC1pdGVtLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX2VuZHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCl9Lm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHJhaWxpbmctbWV0YSAubWRjLWxpc3QtaXRlbV9fZW5ke2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dCwubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICNmNTdjMDApfS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICNmNTdjMDApfS5tZGMtZGVwcmVjYXRlZC1saXN0LWdyb3VwX19zdWJoZWFkZXJ7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuODcpKX0ubWRjLWxpc3QtZGl2aWRlcjo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp3aGl0ZX0ubWRjLWxpc3QtZGl2aWRlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1tZGMtbWVudS1pdGVtW2Rpc2FibGVkXSwubWF0LW1kYy1tZW51LWl0ZW1bZGlzYWJsZWRdIC5tYXQtbWRjLW1lbnUtc3VibWVudS1pY29uLC5tYXQtbWRjLW1lbnUtaXRlbVtkaXNhYmxlZF0gLm1hdC1pY29uLW5vLWNvbG9ye2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LWRpc2FibGVkLW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpfS5tYXQtbWRjLW1lbnUtaXRlbSAubWF0LWljb24tbm8tY29sb3IsLm1hdC1tZGMtbWVudS1zdWJtZW51LWljb257Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuODcpKX0ubWF0LW1kYy1tZW51LWl0ZW06aG92ZXI6bm90KFtkaXNhYmxlZF0pLC5tYXQtbWRjLW1lbnUtaXRlbS5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdChbZGlzYWJsZWRdKSwubWF0LW1kYy1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLC5tYXQtbWRjLW1lbnUtaXRlbS1oaWdobGlnaHRlZDpub3QoW2Rpc2FibGVkXSl7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wNCl9Lm1hdC1tZGMtbGlzdC1iYXNley0tbWRjLWxpc3QtbGlzdC1pdGVtLWxhYmVsLXRleHQtY29sb3I6IzIxMjEyMTstLW1kYy1saXN0LWxpc3QtaXRlbS1zdXBwb3J0aW5nLXRleHQtY29sb3I6IzYxNjE2MTstLW1kYy1saXN0LWxpc3QtaXRlbS1sZWFkaW5nLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1zdXBwb3J0aW5nLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtbGlzdC1saXN0LWl0ZW0tc2VsZWN0ZWQtdHJhaWxpbmctaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6YmxhY2s7LS1tZGMtbGlzdC1saXN0LWl0ZW0tZGlzYWJsZWQtbGVhZGluZy1pY29uLWNvbG9yOmJsYWNrOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6YmxhY2s7LS1tZGMtbGlzdC1saXN0LWl0ZW0taG92ZXItbGFiZWwtdGV4dC1jb2xvcjojMjEyMTIxOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWhvdmVyLWxlYWRpbmctaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWhvdmVyLXRyYWlsaW5nLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1saXN0LWxpc3QtaXRlbS1mb2N1cy1sYWJlbC10ZXh0LWNvbG9yOiMyMTIxMjE7LS1tZGMtbGlzdC1saXN0LWl0ZW0taG92ZXItc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtbGlzdC1saXN0LWl0ZW0taG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowLjA0Oy0tbWRjLWxpc3QtbGlzdC1pdGVtLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMn0ubWF0LW1kYy1saXN0LW9wdGlvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1hdC1tZGMtbGlzdC1vcHRpb24gLm1kYy1saXN0LWl0ZW1fX2VuZHstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6IzAwMDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNmNTdjMDA7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZjU3YzAwOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWljb24tY29sb3I6I2Y1N2MwMDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6I2Y1N2MwMDstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KX0ubWF0LW1kYy1saXN0LW9wdGlvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1hdC1tZGMtbGlzdC1vcHRpb24gLm1kYy1saXN0LWl0ZW1fX2VuZHstLW1kYy1yYWRpby1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOiMwMDA7LS1tZGMtcmFkaW8tZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOiMwMDA7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1yYWRpby1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNmNTdjMDA7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZjU3YzAwOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWljb24tY29sb3I6I2Y1N2MwMDstLW1kYy1yYWRpby1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6I2Y1N2MwMDstLW1hdC1tZGMtcmFkaW8tcmlwcGxlLWNvbG9yOiAjMDAwOy0tbWF0LW1kYy1yYWRpby1jaGVja2VkLXJpcHBsZS1jb2xvcjogI2Y1N2MwMH0ubWF0LW1kYy1saXN0LW9wdGlvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnQgLm1kYy1yYWRpby0tZGlzYWJsZWQrbGFiZWwsLm1hdC1tZGMtbGlzdC1vcHRpb24gLm1kYy1saXN0LWl0ZW1fX2VuZCAubWRjLXJhZGlvLS1kaXNhYmxlZCtsYWJlbHtjb2xvcjojNzU3NTc1fS5tYXQtbWRjLWxpc3Qtb3B0aW9uLm1hdC1hY2NlbnQgLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LC5tYXQtbWRjLWxpc3Qtb3B0aW9uLm1hdC1hY2NlbnQgLm1kYy1saXN0LWl0ZW1fX2VuZHstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6IzAwMDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNmZjk4MDA7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZmY5ODAwOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWljb24tY29sb3I6I2ZmOTgwMDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6I2ZmOTgwMDstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KX0ubWF0LW1kYy1saXN0LW9wdGlvbi5tYXQtYWNjZW50IC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWF0LW1kYy1saXN0LW9wdGlvbi5tYXQtYWNjZW50IC5tZGMtbGlzdC1pdGVtX19lbmR7LS1tZGMtcmFkaW8tZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjojMDAwOy0tbWRjLXJhZGlvLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojMDAwOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZmY5ODAwOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2ZmOTgwMDstLW1kYy1yYWRpby1zZWxlY3RlZC1pY29uLWNvbG9yOiNmZjk4MDA7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNmZjk4MDA7LS1tYXQtbWRjLXJhZGlvLXJpcHBsZS1jb2xvcjogIzAwMDstLW1hdC1tZGMtcmFkaW8tY2hlY2tlZC1yaXBwbGUtY29sb3I6ICNmZjk4MDB9Lm1hdC1tZGMtbGlzdC1vcHRpb24ubWF0LWFjY2VudCAubWRjLWxpc3QtaXRlbV9fc3RhcnQgLm1kYy1yYWRpby0tZGlzYWJsZWQrbGFiZWwsLm1hdC1tZGMtbGlzdC1vcHRpb24ubWF0LWFjY2VudCAubWRjLWxpc3QtaXRlbV9fZW5kIC5tZGMtcmFkaW8tLWRpc2FibGVkK2xhYmVse2NvbG9yOiM3NTc1NzV9Lm1hdC1tZGMtbGlzdC1vcHRpb24ubWF0LXdhcm4gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LC5tYXQtbWRjLWxpc3Qtb3B0aW9uLm1hdC13YXJuIC5tZGMtbGlzdC1pdGVtX19lbmR7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtY2hlY2ttYXJrLWNvbG9yOiNmZmY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCl9Lm1hdC1tZGMtbGlzdC1vcHRpb24ubWF0LXdhcm4gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LC5tYXQtbWRjLWxpc3Qtb3B0aW9uLm1hdC13YXJuIC5tZGMtbGlzdC1pdGVtX19lbmR7LS1tZGMtcmFkaW8tZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjojMDAwOy0tbWRjLXJhZGlvLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojMDAwOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLXJhZGlvLXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1yYWRpby1zZWxlY3RlZC1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNmNDQzMzY7LS1tYXQtbWRjLXJhZGlvLXJpcHBsZS1jb2xvcjogIzAwMDstLW1hdC1tZGMtcmFkaW8tY2hlY2tlZC1yaXBwbGUtY29sb3I6ICNmNDQzMzZ9Lm1hdC1tZGMtbGlzdC1vcHRpb24ubWF0LXdhcm4gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0IC5tZGMtcmFkaW8tLWRpc2FibGVkK2xhYmVsLC5tYXQtbWRjLWxpc3Qtb3B0aW9uLm1hdC13YXJuIC5tZGMtbGlzdC1pdGVtX19lbmQgLm1kYy1yYWRpby0tZGlzYWJsZWQrbGFiZWx7Y29sb3I6Izc1NzU3NX0ubWF0LW1kYy1saXN0LWJhc2UubWF0LW1kYy1saXN0LWJhc2UgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQsLm1hdC1tZGMtbGlzdC1iYXNlLm1hdC1tZGMtbGlzdC1iYXNlIC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dHtjb2xvcjojZjU3YzAwfS5tYXQtbWRjLWxpc3QtYmFzZS5tYXQtbWRjLWxpc3QtYmFzZSAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LC5tYXQtbWRjLWxpc3QtYmFzZS5tYXQtbWRjLWxpc3QtYmFzZSAubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydHtjb2xvcjojZjU3YzAwfS5tYXQtbWRjLWxpc3QtYmFzZSAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LC5tYXQtbWRjLWxpc3QtYmFzZSAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX2NvbnRlbnQsLm1hdC1tZGMtbGlzdC1iYXNlIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fZW5ke29wYWNpdHk6MX0ubWF0LW1kYy1saXN0LWJhc2V7LS1tZGMtbGlzdC1saXN0LWl0ZW0tb25lLWxpbmUtY29udGFpbmVyLWhlaWdodDo0OHB4Oy0tbWRjLWxpc3QtbGlzdC1pdGVtLXR3by1saW5lLWNvbnRhaW5lci1oZWlnaHQ6NjRweDstLW1kYy1saXN0LWxpc3QtaXRlbS10aHJlZS1saW5lLWNvbnRhaW5lci1oZWlnaHQ6ODhweH0ubWF0LW1kYy1saXN0LWl0ZW0ubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWF2YXRhci5tZGMtbGlzdC1pdGVtLS13aXRoLW9uZS1saW5lLC5tYXQtbWRjLWxpc3QtaXRlbS5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctY2hlY2tib3gubWRjLWxpc3QtaXRlbS0td2l0aC1vbmUtbGluZSwubWF0LW1kYy1saXN0LWl0ZW0ubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24ubWRjLWxpc3QtaXRlbS0td2l0aC1vbmUtbGluZXtoZWlnaHQ6NTZweH0ubWF0LW1kYy1saXN0LWl0ZW0ubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWF2YXRhci5tZGMtbGlzdC1pdGVtLS13aXRoLXR3by1saW5lcywubWF0LW1kYy1saXN0LWl0ZW0ubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWNoZWNrYm94Lm1kYy1saXN0LWl0ZW0tLXdpdGgtdHdvLWxpbmVzLC5tYXQtbWRjLWxpc3QtaXRlbS5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtbGlzdC1pdGVtLS13aXRoLXR3by1saW5lc3toZWlnaHQ6NzJweH0ubWF0LW1kYy1wYWdpbmF0b3J7YmFja2dyb3VuZDojZmZmO2NvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LW1kYy1wYWdpbmF0b3ItaWNvbntmaWxsOnJnYmEoMCwwLDAsLjU0KX0ubWF0LW1kYy1wYWdpbmF0b3ItZGVjcmVtZW50LC5tYXQtbWRjLXBhZ2luYXRvci1pbmNyZW1lbnR7Ym9yZGVyLXRvcDoycHggc29saWQgcmdiYSgwLDAsMCwuNTQpO2JvcmRlci1yaWdodDoycHggc29saWQgcmdiYSgwLDAsMCwuNTQpfS5tYXQtbWRjLXBhZ2luYXRvci1maXJzdCwubWF0LW1kYy1wYWdpbmF0b3ItbGFzdHtib3JkZXItdG9wOjJweCBzb2xpZCByZ2JhKDAsMCwwLC41NCl9Lm1hdC1tZGMtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtbWRjLXBhZ2luYXRvci1kZWNyZW1lbnQsLm1hdC1tZGMtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtbWRjLXBhZ2luYXRvci1pbmNyZW1lbnQsLm1hdC1tZGMtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtbWRjLXBhZ2luYXRvci1maXJzdCwubWF0LW1kYy1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1tZGMtcGFnaW5hdG9yLWxhc3R7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LW1kYy1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1tZGMtcGFnaW5hdG9yLWljb257ZmlsbDpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1tZGMtcGFnaW5hdG9yIC5tYXQtbWRjLWZvcm0tZmllbGQtaW5maXh7bWluLWhlaWdodDo0MHB4fS5tYXQtbWRjLXBhZ2luYXRvciAubWF0LW1kYy10ZXh0LWZpZWxkLXdyYXBwZXIgLm1hdC1tZGMtZm9ybS1maWVsZC1mbGV4IC5tYXQtbWRjLWZsb2F0aW5nLWxhYmVse3RvcDoyMHB4fS5tYXQtbWRjLXBhZ2luYXRvciAubWF0LW1kYy10ZXh0LWZpZWxkLXdyYXBwZXIubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZXstLW1hdC1tZGMtZm9ybS1maWVsZC1sYWJlbC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoIC0yNi43NXB4KSBzY2FsZSh2YXIoLS1tYXQtbWRjLWZvcm0tZmllbGQtZmxvYXRpbmctbGFiZWwtc2NhbGUsIDAuNzUpKTt0cmFuc2Zvcm06dmFyKC0tbWF0LW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRyYW5zZm9ybSl9Lm1hdC1tZGMtcGFnaW5hdG9yIC5tYXQtbWRjLXRleHQtZmllbGQtd3JhcHBlci5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1hdC1tZGMtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbWRjLXBhZ2luYXRvciAubWF0LW1kYy10ZXh0LWZpZWxkLXdyYXBwZXI6bm90KC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQpIC5tYXQtbWRjLWZvcm0tZmllbGQtaW5maXh7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LW1kYy1wYWdpbmF0b3IgLm1kYy10ZXh0LWZpZWxkLS1uby1sYWJlbDpub3QoLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIC5tYXQtbWRjLWZvcm0tZmllbGQtaW5maXh7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LW1kYy1wYWdpbmF0b3IgLm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyOm5vdCgubWRjLXRleHQtZmllbGQtLW91dGxpbmVkKSAubWF0LW1kYy1mbG9hdGluZy1sYWJlbHtkaXNwbGF5Om5vbmV9Lm1hdC1tZGMtcGFnaW5hdG9yLWNvbnRhaW5lcnttaW4taGVpZ2h0OjU2cHh9Lm1hdC1tZGMtdGFiLC5tYXQtbWRjLXRhYi1saW5re2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX0ubWF0LW1kYy10YWIgLm1kYy10YWJfX3RleHQtbGFiZWwsLm1hdC1tZGMtdGFiLWxpbmsgLm1kYy10YWJfX3RleHQtbGFiZWx7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpfS5tYXQtbWRjLXRhYi5tYXQtbWRjLXRhYi1kaXNhYmxlZCAubWRjLXRhYl9fcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtdGFiLm1hdC1tZGMtdGFiLWRpc2FibGVkIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1tZGMtdGFiLWxpbmsubWF0LW1kYy10YWItZGlzYWJsZWQgLm1kYy10YWJfX3JpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLXRhYi1saW5rLm1hdC1tZGMtdGFiLWRpc2FibGVkIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1tZGMtdGFiOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9fdGV4dC1sYWJlbCwubWF0LW1kYy10YWItbGluazpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKS5tZGMtdGFiLS1hY3RpdmUgLm1kYy10YWJfX3RleHQtbGFiZWx7Y29sb3I6I2Y1N2MwMH0ubWF0LW1kYy10YWI6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUsLm1hdC1tZGMtdGFiLWxpbms6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmV7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy10YWItaW5kaWNhdG9yLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3IsICNmNTdjMDApfS5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy10YWIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1kYy10YWItbGluayAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMH0ubWF0LW1kYy10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LW1kYy10YWI6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkubWRjLXRhYi0tYWN0aXZlIC5tZGMtdGFiX190ZXh0LWxhYmVsLC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYi1saW5rOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9fdGV4dC1sYWJlbCwubWF0LW1kYy10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYjpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKS5tZGMtdGFiLS1hY3RpdmUgLm1kYy10YWJfX3RleHQtbGFiZWwsLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LW1kYy10YWItbGluazpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKS5tZGMtdGFiLS1hY3RpdmUgLm1kYy10YWJfX3RleHQtbGFiZWx7Y29sb3I6I2ZmOTgwMH0ubWF0LW1kYy10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LW1kYy10YWI6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUsLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1tZGMtdGFiLWxpbms6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUsLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LW1kYy10YWI6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUsLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LW1kYy10YWItbGluazpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKSAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZXtib3JkZXItY29sb3I6dmFyKC0tbWRjLXRhYi1pbmRpY2F0b3ItYWN0aXZlLWluZGljYXRvci1jb2xvciwgI2ZmOTgwMCl9Lm1hdC1tZGMtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1kYy10YWJfX3JpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYi1saW5rIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWRjLXRhYl9fcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LW1kYy10YWIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1kYy10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC1tZGMtdGFiLWxpbmsgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1tZGMtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtbWRjLXRhYjpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKS5tZGMtdGFiLS1hY3RpdmUgLm1kYy10YWJfX3RleHQtbGFiZWwsLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtbWRjLXRhYi1saW5rOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9fdGV4dC1sYWJlbCwubWF0LW1kYy10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LW1kYy10YWI6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkubWRjLXRhYi0tYWN0aXZlIC5tZGMtdGFiX190ZXh0LWxhYmVsLC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtbWRjLXRhYi1saW5rOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9fdGV4dC1sYWJlbHtjb2xvcjojZjQ0MzM2fS5tYXQtbWRjLXRhYi1ncm91cC5tYXQtd2FybiAubWF0LW1kYy10YWI6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUsLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtbWRjLXRhYi1saW5rOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpIC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0tdW5kZXJsaW5lLC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtbWRjLXRhYjpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKSAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSwubWF0LW1kYy10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LW1kYy10YWItbGluazpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKSAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZXtib3JkZXItY29sb3I6dmFyKC0tbWRjLXRhYi1pbmRpY2F0b3ItYWN0aXZlLWluZGljYXRvci1jb2xvciwgI2Y0NDMzNil9Lm1hdC1tZGMtdGFiLWdyb3VwLm1hdC13YXJuIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1tZGMtdGFiIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtd2FybiAubWF0LW1kYy10YWItbGluayAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LW1kYy10YWIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1kYy10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1kYy10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LW1kYy10YWItbGluayAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LW1kYy10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSwubWF0LW1kYy10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5ey0tbWF0LW1kYy10YWItaGVhZGVyLXdpdGgtYmFja2dyb3VuZC1iYWNrZ3JvdW5kLWNvbG9yOiAjZjU3YzAwOy0tbWF0LW1kYy10YWItaGVhZGVyLXdpdGgtYmFja2dyb3VuZC1mb3JlZ3JvdW5kLWNvbG9yOiAjMDAwfS5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQsLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50ey0tbWF0LW1kYy10YWItaGVhZGVyLXdpdGgtYmFja2dyb3VuZC1iYWNrZ3JvdW5kLWNvbG9yOiAjZmY5ODAwOy0tbWF0LW1kYy10YWItaGVhZGVyLXdpdGgtYmFja2dyb3VuZC1mb3JlZ3JvdW5kLWNvbG9yOiAjMDAwfS5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuLC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm57LS1tYXQtbWRjLXRhYi1oZWFkZXItd2l0aC1iYWNrZ3JvdW5kLWJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7LS1tYXQtbWRjLXRhYi1oZWFkZXItd2l0aC1iYWNrZ3JvdW5kLWZvcmVncm91bmQtY29sb3I6ICNmZmZ9Lm1hdC1tZGMtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKX0ubWF0LW1kYy10YWItaGVhZGVyIC5tZGMtdGFie2hlaWdodDo0OHB4fS5tYXQtbWRjLWNoZWNrYm94IC5tZGMtZm9ybS1maWVsZHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpfS5tYXQtbWRjLWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xKX0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94X19yaXBwbGV7YmFja2dyb3VuZDojMDAwfS5tYXQtbWRjLWNoZWNrYm94Lm1hdC1wcmltYXJ5ey0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojMDAwOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2Y1N2MwMDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNmNTdjMDA7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZjU3YzAwOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojZjU3YzAwOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpfS5tYXQtbWRjLWNoZWNrYm94Lm1hdC1wcmltYXJ5IC5tZGMtY2hlY2tib3gtLXNlbGVjdGVkfi5tYXQtbWRjLWNoZWNrYm94LXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsMTI0LDAsLjEpfS5tYXQtbWRjLWNoZWNrYm94Lm1hdC1wcmltYXJ5IC5tZGMtY2hlY2tib3gtLXNlbGVjdGVkfi5tZGMtY2hlY2tib3hfX3JpcHBsZXtiYWNrZ3JvdW5kOiNmNTdjMDB9Lm1hdC1tZGMtY2hlY2tib3gubWF0LWFjY2VudHstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6IzAwMDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNmZjk4MDA7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZmY5ODAwOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWljb24tY29sb3I6I2ZmOTgwMDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6I2ZmOTgwMDstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KX0ubWF0LW1kYy1jaGVja2JveC5tYXQtYWNjZW50IC5tZGMtY2hlY2tib3gtLXNlbGVjdGVkfi5tYXQtbWRjLWNoZWNrYm94LXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTUyLDAsLjEpfS5tYXQtbWRjLWNoZWNrYm94Lm1hdC1hY2NlbnQgLm1kYy1jaGVja2JveC0tc2VsZWN0ZWR+Lm1kYy1jaGVja2JveF9fcmlwcGxle2JhY2tncm91bmQ6I2ZmOTgwMH0ubWF0LW1kYy1jaGVja2JveC5tYXQtd2FybnstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6I2ZmZjstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KX0ubWF0LW1kYy1jaGVja2JveC5tYXQtd2FybiAubWRjLWNoZWNrYm94LS1zZWxlY3RlZH4ubWF0LW1kYy1jaGVja2JveC1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC4xKX0ubWF0LW1kYy1jaGVja2JveC5tYXQtd2FybiAubWRjLWNoZWNrYm94LS1zZWxlY3RlZH4ubWRjLWNoZWNrYm94X19yaXBwbGV7YmFja2dyb3VuZDojZjQ0MzM2fS5tYXQtbWRjLWNoZWNrYm94LWRpc2FibGVkIGxhYmVse2NvbG9yOiM3NTc1NzV9Lm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveHtwYWRkaW5nOmNhbGMoKHZhcigtLW1kYy1jaGVja2JveC1yaXBwbGUtc2l6ZSwgNDBweCkgLSAxOHB4KSAvIDIpO21hcmdpbjpjYWxjKCh2YXIoLS1tZGMtY2hlY2tib3gtdG91Y2gtdGFyZ2V0LXNpemUsIDQwcHgpIC0gNDBweCkgLyAyKX0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmR7dG9wOmNhbGMoKHZhcigtLW1kYy1jaGVja2JveC1yaXBwbGUtc2l6ZSwgNDBweCkgLSAxOHB4KSAvIDIpO2xlZnQ6Y2FsYygodmFyKC0tbWRjLWNoZWNrYm94LXJpcHBsZS1zaXplLCA0MHB4KSAtIDE4cHgpIC8gMil9Lm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbHt0b3A6Y2FsYygoNDBweCAtIHZhcigtLW1kYy1jaGVja2JveC10b3VjaC10YXJnZXQtc2l6ZSwgNDBweCkpIC8gMik7cmlnaHQ6Y2FsYygoNDBweCAtIHZhcigtLW1kYy1jaGVja2JveC10b3VjaC10YXJnZXQtc2l6ZSwgNDBweCkpIC8gMik7bGVmdDpjYWxjKCg0MHB4IC0gdmFyKC0tbWRjLWNoZWNrYm94LXRvdWNoLXRhcmdldC1zaXplLCA0MHB4KSkgLyAyKTt3aWR0aDp2YXIoLS1tZGMtY2hlY2tib3gtdG91Y2gtdGFyZ2V0LXNpemUsIDQwcHgpO2hlaWdodDp2YXIoLS1tZGMtY2hlY2tib3gtdG91Y2gtdGFyZ2V0LXNpemUsIDQwcHgpfS5tYXQtbWRjLWJ1dHRvbi5tYXQtdW50aGVtZWR7LS1tZGMtdGV4dC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojMDAwfS5tYXQtbWRjLWJ1dHRvbi5tYXQtcHJpbWFyeXstLW1kYy10ZXh0LWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmNTdjMDB9Lm1hdC1tZGMtYnV0dG9uLm1hdC1hY2NlbnR7LS1tZGMtdGV4dC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojZmY5ODAwfS5tYXQtbWRjLWJ1dHRvbi5tYXQtd2FybnstLW1kYy10ZXh0LWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzZ9Lm1hdC1tZGMtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF17LS1tZGMtdGV4dC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KX0ubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbi5tYXQtdW50aGVtZWR7LS1tZGMtZmlsbGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6I2ZmZjstLW1kYy1maWxsZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6IzAwMH0ubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbi5tYXQtcHJpbWFyeXstLW1kYy1maWxsZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZjU3YzAwOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojMDAwfS5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC1hY2NlbnR7LS1tZGMtZmlsbGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6I2ZmOTgwMDstLW1kYy1maWxsZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6IzAwMH0ubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbi5tYXQtd2FybnstLW1kYy1maWxsZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZjQ0MzM2Oy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojZmZmfS5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF17LS1tZGMtZmlsbGVkLWJ1dHRvbi1kaXNhYmxlZC1jb250YWluZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1maWxsZWQtYnV0dG9uLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1maWxsZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfS5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LXVudGhlbWVkey0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiNmZmY7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiMwMDB9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeXstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZjU3YzAwOy0tbWRjLXByb3RlY3RlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojMDAwfS5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LWFjY2VudHstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZmY5ODAwOy0tbWRjLXByb3RlY3RlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojMDAwfS5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LXdhcm57LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6I2Y0NDMzNjstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2ZmZn0ubWF0LW1kYy1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF17LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1kaXNhYmxlZC1jb250YWluZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLXByb3RlY3RlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWVsZXZhdGlvbjowfS5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbnstLW1kYy1vdXRsaW5lZC1idXR0b24tb3V0bGluZS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbi5tYXQtdW50aGVtZWR7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6IzAwMH0ubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXByaW1hcnl7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2Y1N2MwMH0ubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LWFjY2VudHstLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojZmY5ODAwfS5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbi5tYXQtd2FybnstLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojZjQ0MzM2fS5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdey0tbWRjLW91dGxpbmVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1vdXRsaW5lZC1idXR0b24tb3V0bGluZS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLW91dGxpbmVkLWJ1dHRvbi1kaXNhYmxlZC1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1tZGMtYnV0dG9uLC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbnstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjMDAwOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSl9Lm1hdC1tZGMtYnV0dG9uOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbjpob3ZlciAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZXtvcGFjaXR5Oi4wNH0ubWF0LW1kYy1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjEyfS5tYXQtbWRjLWJ1dHRvbjphY3RpdmUgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uOmFjdGl2ZSAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZXtvcGFjaXR5Oi4xMn0ubWF0LW1kYy1idXR0b24ubWF0LXByaW1hcnksLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNmNTdjMDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjQ1LCAxMjQsIDAsIDAuMSl9Lm1hdC1tZGMtYnV0dG9uLm1hdC1hY2NlbnQsLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uLm1hdC1hY2NlbnR7LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2ZmOTgwMDstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyNTUsIDE1MiwgMCwgMC4xKX0ubWF0LW1kYy1idXR0b24ubWF0LXdhcm4sLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uLm1hdC13YXJuey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNmNDQzMzY7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjQ0LCA2NywgNTQsIDAuMSl9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbiwubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbnstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjMDAwOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSl9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbjpob3ZlciAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbjpob3ZlciAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZXtvcGFjaXR5Oi4wNH0ubWF0LW1kYy1yYWlzZWQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjEyfS5tYXQtbWRjLXJhaXNlZC1idXR0b246YWN0aXZlIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uOmFjdGl2ZSAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZXtvcGFjaXR5Oi4xMn0ubWF0LW1kYy1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICMwMDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKX0ubWF0LW1kYy1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24ubWF0LWFjY2VudHstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjMDAwOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSl9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbi5tYXQtd2FybnstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjZmZmOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSl9Lm1hdC1tZGMtYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UsLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UsLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2V7aGVpZ2h0OjM2cHh9Lm1hdC1tZGMtaWNvbi1idXR0b257LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogIzAwMDstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpfS5tYXQtbWRjLWljb24tYnV0dG9uOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjA0fS5tYXQtbWRjLWljb24tYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtaWNvbi1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMTJ9Lm1hdC1tZGMtaWNvbi1idXR0b246YWN0aXZlIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjEyfS5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNmNTdjMDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjQ1LCAxMjQsIDAsIDAuMSl9Lm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LWFjY2VudHstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjZmY5ODAwOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpfS5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC13YXJuey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNmNDQzMzY7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjQ0LCA2NywgNTQsIDAuMSl9Lm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LXByaW1hcnl7LS1tZGMtaWNvbi1idXR0b24taWNvbi1jb2xvcjojZjU3YzAwfS5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1hY2NlbnR7LS1tZGMtaWNvbi1idXR0b24taWNvbi1jb2xvcjojZmY5ODAwfS5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC13YXJuey0tbWRjLWljb24tYnV0dG9uLWljb24tY29sb3I6I2Y0NDMzNn0ubWF0LW1kYy1pY29uLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdey0tbWRjLWljb24tYnV0dG9uLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1pY29uLWJ1dHRvbi1kaXNhYmxlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCl9Lm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZXt3aWR0aDo0OHB4O2hlaWdodDo0OHB4O3BhZGRpbmc6MTJweH0ubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlIC5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmd7bWF4LWhlaWdodDo0OHB4O21heC13aWR0aDo0OHB4fS5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UubWRjLWljb24tYnV0dG9uLS1yZWR1Y2VkLXNpemUgLm1kYy1pY29uLWJ1dHRvbl9fcmlwcGxle3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7bWFyZ2luLXRvcDo0cHg7bWFyZ2luLWJvdHRvbTo0cHg7bWFyZ2luLXJpZ2h0OjRweDttYXJnaW4tbGVmdDo0cHh9Lm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZS5tZGMtaWNvbi1idXR0b24tLXJlZHVjZWQtc2l6ZSAubWRjLWljb24tYnV0dG9uX19mb2N1cy1yaW5ne21heC1oZWlnaHQ6NDBweDttYXgtd2lkdGg6NDBweH0ubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlIC5tZGMtaWNvbi1idXR0b25fX3RvdWNoe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7aGVpZ2h0OjQ4cHg7bGVmdDo1MCU7d2lkdGg6NDhweDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpfS5tYXQtbWRjLWZhYiwubWF0LW1kYy1taW5pLWZhYnstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjMDAwOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSl9Lm1hdC1tZGMtZmFiOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLW1pbmktZmFiOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjA0fS5tYXQtbWRjLWZhYi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLWZhYi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy1taW5pLWZhYi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLW1pbmktZmFiLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjEyfS5tYXQtbWRjLWZhYjphY3RpdmUgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtbWluaS1mYWI6YWN0aXZlIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjEyfS5tYXQtbWRjLWZhYi5tYXQtcHJpbWFyeSwubWF0LW1kYy1taW5pLWZhYi5tYXQtcHJpbWFyeXstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjMDAwOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSl9Lm1hdC1tZGMtZmFiLm1hdC1hY2NlbnQsLm1hdC1tZGMtbWluaS1mYWIubWF0LWFjY2VudHstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjMDAwOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSl9Lm1hdC1tZGMtZmFiLm1hdC13YXJuLC5tYXQtbWRjLW1pbmktZmFiLm1hdC13YXJuey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNmZmY7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX0ubWF0LW1kYy1mYWIubWF0LXVudGhlbWVkLC5tYXQtbWRjLW1pbmktZmFiLm1hdC11bnRoZW1lZHstLW1kYy1mYWItY29udGFpbmVyLWNvbG9yOiNmZmY7LS1tZGMtZmFiLWljb24tY29sb3I6IzAwMDstLW1hdC1tZGMtZmFiLWNvbG9yOiAjMDAwfS5tYXQtbWRjLWZhYi5tYXQtcHJpbWFyeSwubWF0LW1kYy1taW5pLWZhYi5tYXQtcHJpbWFyeXstLW1kYy1mYWItY29udGFpbmVyLWNvbG9yOiNmNTdjMDA7LS1tZGMtZmFiLWljb24tY29sb3I6IzAwMDstLW1hdC1tZGMtZmFiLWNvbG9yOiAjMDAwfS5tYXQtbWRjLWZhYi5tYXQtYWNjZW50LC5tYXQtbWRjLW1pbmktZmFiLm1hdC1hY2NlbnR7LS1tZGMtZmFiLWNvbnRhaW5lci1jb2xvcjojZmY5ODAwOy0tbWRjLWZhYi1pY29uLWNvbG9yOiMwMDA7LS1tYXQtbWRjLWZhYi1jb2xvcjogIzAwMH0ubWF0LW1kYy1mYWIubWF0LXdhcm4sLm1hdC1tZGMtbWluaS1mYWIubWF0LXdhcm57LS1tZGMtZmFiLWNvbnRhaW5lci1jb2xvcjojZjQ0MzM2Oy0tbWRjLWZhYi1pY29uLWNvbG9yOiNmZmY7LS1tYXQtbWRjLWZhYi1jb2xvcjogI2ZmZn0ubWF0LW1kYy1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSwubWF0LW1kYy1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdey0tbWRjLWZhYi1jb250YWluZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1mYWItaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LW1kYy1mYWItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCl9Lm1hdC1tZGMtc25hY2stYmFyLWNvbnRhaW5lcnstLW1hdC1tZGMtc25hY2stYmFyLWJ1dHRvbi1jb2xvcjogI2ZmOTgwMDstLW1kYy1zbmFja2Jhci1jb250YWluZXItY29sb3I6IzMzMzMzMzstLW1kYy1zbmFja2Jhci1zdXBwb3J0aW5nLXRleHQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KX0ubWRjLWRhdGEtdGFibGV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtc3VyZmFjZSwgI2ZmZik7Ym9yZGVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMil9Lm1kYy1kYXRhLXRhYmxlX19yb3d7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0fS5tZGMtZGF0YS10YWJsZV9faGVhZGVyLWNlbGx7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtc3VyZmFjZSwgI2ZmZil9Lm1kYy1kYXRhLXRhYmxlX19yb3ctLXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsIDEyNCwgMCwgMC4wNCl9Lm1kYy1kYXRhLXRhYmxlX19wYWdpbmF0aW9uLXJvd3MtcGVyLXBhZ2Utc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWRjLWRhdGEtdGFibGVfX3BhZ2luYXRpb24tcm93cy1wZXItcGFnZS1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCwubWRjLWRhdGEtdGFibGVfX3BhZ2luYXRpb24tcm93cy1wZXItcGFnZS1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKX0ubWRjLWRhdGEtdGFibGVfX2NlbGwsLm1kYy1kYXRhLXRhYmxlX19oZWFkZXItY2VsbHtib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMil9Lm1kYy1kYXRhLXRhYmxlX19wYWdpbmF0aW9ue2JvcmRlci10b3AtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKX0ubWRjLWRhdGEtdGFibGVfX3Jvdzpub3QoLm1kYy1kYXRhLXRhYmxlX19yb3ctLXNlbGVjdGVkKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4wNCl9Lm1kYy1kYXRhLXRhYmxlX19oZWFkZXItY2VsbHtjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpfS5tZGMtZGF0YS10YWJsZV9fcGFnaW5hdGlvbi10b3RhbCwubWRjLWRhdGEtdGFibGVfX3BhZ2luYXRpb24tcm93cy1wZXItcGFnZS1sYWJlbCwubWRjLWRhdGEtdGFibGVfX2NlbGx7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KX0ubWF0LW1kYy10YWJsZXtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC1tZGMtdGFibGUgLm1kYy1kYXRhLXRhYmxlX19yb3d7aGVpZ2h0OjUycHh9Lm1hdC1tZGMtdGFibGUgLm1kYy1kYXRhLXRhYmxlX19wYWdpbmF0aW9ue21pbi1oZWlnaHQ6NTJweH0ubWF0LW1kYy10YWJsZSAubWRjLWRhdGEtdGFibGVfX2hlYWRlci1yb3d7aGVpZ2h0OjU2cHh9Lm1hdC1tZGMtcHJvZ3Jlc3Mtc3Bpbm5lcnstLW1kYy1jaXJjdWxhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiNmNTdjMDB9Lm1hdC1tZGMtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50ey0tbWRjLWNpcmN1bGFyLXByb2dyZXNzLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6I2ZmOTgwMH0ubWF0LW1kYy1wcm9ncmVzcy1zcGlubmVyLm1hdC13YXJuey0tbWRjLWNpcmN1bGFyLXByb2dyZXNzLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6I2Y0NDMzNn0ubWF0LWJhZGdlLWNvbnRlbnR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiNmNTdjMDB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJhZGdlLWNvbnRlbnR7b3V0bGluZTpzb2xpZCAxcHg7Ym9yZGVyLXJhZGl1czowfS5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudHtiYWNrZ3JvdW5kOiNmZjk4MDA7Y29sb3I6I2ZmZn0ubWF0LWJhZGdlLXdhcm4gLm1hdC1iYWRnZS1jb250ZW50e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZjQ0MzM2fS5tYXQtYmFkZ2UtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50e2JhY2tncm91bmQ6I2JkYmRiZDtjb2xvcjojNzU3NTc1fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcntib3gtc2hhZG93OjBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMjEyMTIxfS5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93Om5vbmV9Lm1hdC1idXR0b24tdG9nZ2xle2NvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWF0LWJ1dHRvbi10b2dnbGUgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7Y29sb3I6IzIxMjEyMTtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSsubWF0LWJ1dHRvbi10b2dnbGV7Ym9yZGVyLWxlZnQ6c29saWQgMXB4ICNlMGUwZTB9W2Rpcj1ydGxdIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSsubWF0LWJ1dHRvbi10b2dnbGV7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmlnaHQ6c29saWQgMXB4ICNlMGUwZTB9Lm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlKy5tYXQtYnV0dG9uLXRvZ2dsZXtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDpub25lO2JvcmRlci10b3A6c29saWQgMXB4ICNlMGUwZTB9Lm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjojZTBlMGUwO2NvbG9yOiM2MTYxNjF9Lm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZHtjb2xvcjojMjEyMTIxfS5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4yNik7YmFja2dyb3VuZC1jb2xvcjojZWVlfS5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJke2JhY2tncm91bmQ6I2ZmZn0ubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOiNiZGJkYmR9Lm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCwubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZHtib3JkZXI6c29saWQgMXB4ICNlMGUwZTB9Lm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnR7bGluZS1oZWlnaHQ6NDhweH0ubWF0LWNhbGVuZGFyLWFycm93e2ZpbGw6cmdiYSgwLDAsMCwuNTQpfS5tYXQtZGF0ZXBpY2tlci10b2dnbGUsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbiwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbntjb2xvcjpyZ2JhKDAsMCwwLC41NCl9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIsLm1hdC1jYWxlbmRhci1ib2R5LWxhYmVse2NvbG9yOiM2MTYxNjF9Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCwubWF0LWRhdGUtcmFuZ2UtaW5wdXQtc2VwYXJhdG9ye2NvbG9yOiMyMTIxMjE7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCl9Lm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Y29sb3I6Izc1NzU3NX0ubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1kYXRlLXJhbmdlLWlucHV0LXNlcGFyYXRvcntjb2xvcjojNzU3NTc1fS5tYXQtY2FsZW5kYXItYm9keS1pbi1wcmV2aWV3e2NvbG9yOnJnYmEoMCwwLDAsLjI0KX0ubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQ+Lm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4xOCl9Lm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDI0NSwxMjQsMCwuMil9Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDI0OSwxNzEsMCwuMil9Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUsW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNDUsIDEyNCwgMCwgMC4yKSA1MCUsIHJnYmEoMjQ5LCAxNzEsIDAsIDAuMikgNTAlKX0ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmUsW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMjQ1LCAxMjQsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Lm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCwubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZS5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YWZ0ZXJ7YmFja2dyb3VuZDojYThkYWI1fS5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCwubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZT4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZDojNDZhMzVlfS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDA7Y29sb3I6I2ZmZn0ubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQ+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsMTI0LDAsLjQpfS5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjZmZmfS5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCksLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsMTI0LDAsLjMpfUBtZWRpYShob3ZlcjogaG92ZXIpey5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NSwxMjQsMCwuMyl9fS5tYXQtZGF0ZXBpY2tlci1jb250ZW50e2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMyMTIxMjF9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDE1MiwwLC4yKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDI0OSwxNzEsMCwuMil9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmUsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4yKSA1MCUsIHJnYmEoMjQ5LCAxNzEsIDAsIDAuMikgNTAlKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZT4ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZS5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YWZ0ZXJ7YmFja2dyb3VuZDojYThkYWI1fS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQ6IzQ2YTM1ZX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDA7Y29sb3I6I2ZmZn0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxNTIsMCwuNCl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZn0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCksLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxNTIsMCwuMyl9QG1lZGlhKGhvdmVyOiBob3Zlcil7Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTUyLDAsLjMpfX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ0LDY3LDU0LC4yKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ5LDE3MSwwLC4yKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI0NCwgNjcsIDU0LCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgyNDQsIDY3LCA1NCwgMC4yKSA1MCUsIHJnYmEoMjQ5LCAxNzEsIDAsIDAuMikgNTAlKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjphZnRlcntiYWNrZ3JvdW5kOiNhOGRhYjV9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNjtjb2xvcjojZmZmfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNCl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuMyl9QG1lZGlhKGhvdmVyOiBob3Zlcil7Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXI+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC4zKX19Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2h7Ym94LXNoYWRvdzowcHggMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmV7Y29sb3I6I2Y1N2MwMH0ubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtYWNjZW50e2NvbG9yOiNmZjk4MDB9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn0ubWF0LWRhdGUtcmFuZ2UtaW5wdXQtaW5uZXJbZGlzYWJsZWRde2NvbG9yOiM3NTc1NzV9Lm1hdC1jYWxlbmRhci1jb250cm9scyAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNle3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7cGFkZGluZzo4cHh9Lm1hdC1jYWxlbmRhci1jb250cm9scyAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlIC5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmd7bWF4LWhlaWdodDo0MHB4O21heC13aWR0aDo0MHB4fS5tYXQtY2FsZW5kYXItY29udHJvbHMgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZS5tZGMtaWNvbi1idXR0b24tLXJlZHVjZWQtc2l6ZSAubWRjLWljb24tYnV0dG9uX19yaXBwbGV7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDttYXJnaW4tdG9wOjBweDttYXJnaW4tYm90dG9tOjBweDttYXJnaW4tcmlnaHQ6MHB4O21hcmdpbi1sZWZ0OjBweH0ubWF0LWNhbGVuZGFyLWNvbnRyb2xzIC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UubWRjLWljb24tYnV0dG9uLS1yZWR1Y2VkLXNpemUgLm1kYy1pY29uLWJ1dHRvbl9fZm9jdXMtcmluZ3ttYXgtaGVpZ2h0OjQwcHg7bWF4LXdpZHRoOjQwcHh9Lm1hdC1jYWxlbmRhci1jb250cm9scyAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlIC5tZGMtaWNvbi1idXR0b25fX3RvdWNoe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7aGVpZ2h0OjQwcHg7bGVmdDo1MCU7d2lkdGg6NDBweDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpfS5tYXQtY2FsZW5kYXItY29udHJvbHMgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZSAubWF0LW1kYy1idXR0b24tdG91Y2gtdGFyZ2V0e2Rpc3BsYXk6bm9uZX0ubWF0LWRpdmlkZXJ7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1kaXZpZGVyLXZlcnRpY2Fse2JvcmRlci1yaWdodC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1leHBhbnNpb24tcGFuZWx7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMyMTIxMjF9Lm1hdC1leHBhbnNpb24tcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtYWN0aW9uLXJvd3tib3JkZXItdG9wLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWV4cGFuc2lvbi1wYW5lbCAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwubWF0LWV4cGFuc2lvbi1wYW5lbCAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA0KX1AbWVkaWEoaG92ZXI6IG5vbmUpey5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKTpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kOiNmZmZ9fS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZXtjb2xvcjojMjEyMTIxfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiwubWF0LWV4cGFuc2lvbi1pbmRpY2F0b3I6OmFmdGVye2NvbG9yOiM2MTYxNjF9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV17Y29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSwubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb257Y29sb3I6aW5oZXJpdH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJ7aGVpZ2h0OjQ4cHh9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLm1hdC1leHBhbmRlZHtoZWlnaHQ6NjRweH0ubWF0LWljb24ubWF0LXByaW1hcnl7Y29sb3I6I2Y1N2MwMH0ubWF0LWljb24ubWF0LWFjY2VudHtjb2xvcjojZmY5ODAwfS5tYXQtaWNvbi5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fS5tYXQtZHJhd2VyLWNvbnRhaW5lcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWRyYXdlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWRyYXdlci5tYXQtZHJhd2VyLXB1c2h7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtZHJhd2VyOm5vdCgubWF0LWRyYXdlci1zaWRlKXtib3gtc2hhZG93OjBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZHJhd2VyLXNpZGV7Ym9yZGVyLXJpZ2h0OnNvbGlkIDFweCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZHtib3JkZXItbGVmdDpzb2xpZCAxcHggcmdiYSgwLDAsMCwuMTIpO2JvcmRlci1yaWdodDpub25lfVtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRle2JvcmRlci1sZWZ0OnNvbGlkIDFweCByZ2JhKDAsMCwwLC4xMik7Ym9yZGVyLXJpZ2h0Om5vbmV9W2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmR7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmlnaHQ6c29saWQgMXB4IHJnYmEoMCwwLDAsLjEyKX0ubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3due2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNil9Lm1hdC1zdGVwLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZCwubWF0LXN0ZXAtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsLm1hdC1zdGVwLWhlYWRlcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWRdKSwubWF0LXN0ZXAtaGVhZGVyOmhvdmVyW2FyaWEtZGlzYWJsZWQ9ZmFsc2Vde2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDQpfS5tYXQtc3RlcC1oZWFkZXI6aG92ZXJbYXJpYS1kaXNhYmxlZD10cnVlXXtjdXJzb3I6ZGVmYXVsdH1AbWVkaWEoaG92ZXI6IG5vbmUpey5tYXQtc3RlcC1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDpub25lfX0ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbCwubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1vcHRpb25hbHtjb2xvcjojNjE2MTYxfS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb257YmFja2dyb3VuZC1jb2xvcjojNjE2MTYxO2NvbG9yOiNmZmZ9Lm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCwubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0e2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMDtjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIubWF0LWFjY2VudCAubWF0LXN0ZXAtaWNvbntjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIubWF0LWFjY2VudCAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCwubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSwubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDA7Y29sb3I6I2ZmZn0ubWF0LXN0ZXAtaGVhZGVyLm1hdC13YXJuIC5tYXQtc3RlcC1pY29ue2NvbG9yOiNmZmZ9Lm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCwubWF0LXN0ZXAtaGVhZGVyLm1hdC13YXJuIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0e2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNjtjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3J7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmNDQzMzZ9Lm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtYWN0aXZle2NvbG9yOiMyMTIxMjF9Lm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3J7Y29sb3I6I2Y0NDMzNn0ubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCwubWF0LXN0ZXBwZXItdmVydGljYWx7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmV7Ym9yZGVyLWxlZnQtY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YmVmb3JlLC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsLm1hdC1zdGVwcGVyLWhvcml6b250YWwtbGluZXtib3JkZXItdG9wLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXJ7aGVpZ2h0OjcycHh9Lm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXIsLm1hdC12ZXJ0aWNhbC1zdGVwcGVyLWhlYWRlcntwYWRkaW5nOjI0cHggMjRweH0ubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3Jle3RvcDotMTZweDtib3R0b206LTE2cHh9Lm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLC5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmV7dG9wOjM2cHh9Lm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5le3RvcDozNnB4fS5tYXQtc29ydC1oZWFkZXItYXJyb3d7Y29sb3I6IzYxNjE2MX0ubWF0LXRvb2xiYXJ7YmFja2dyb3VuZDojZjU3YzAwO2NvbG9yOiMyMTIxMjF9Lm1hdC10b29sYmFyLm1hdC1wcmltYXJ5e2JhY2tncm91bmQ6I2Y1N2MwMDtjb2xvcjojZmZmfS5tYXQtdG9vbGJhci5tYXQtYWNjZW50e2JhY2tncm91bmQ6I2ZmOTgwMDtjb2xvcjojZmZmfS5tYXQtdG9vbGJhci5tYXQtd2FybntiYWNrZ3JvdW5kOiNmNDQzMzY7Y29sb3I6I2ZmZn0ubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSwubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSwubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9Lm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6aW5oZXJpdH0ubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50e2NhcmV0LWNvbG9yOmN1cnJlbnRDb2xvcn0ubWF0LXRvb2xiYXItbXVsdGlwbGUtcm93c3ttaW4taGVpZ2h0OjY0cHh9Lm1hdC10b29sYmFyLXJvdywubWF0LXRvb2xiYXItc2luZ2xlLXJvd3toZWlnaHQ6NjRweH1AbWVkaWEobWF4LXdpZHRoOiA1OTlweCl7Lm1hdC10b29sYmFyLW11bHRpcGxlLXJvd3N7bWluLWhlaWdodDo1NnB4fS5tYXQtdG9vbGJhci1yb3csLm1hdC10b29sYmFyLXNpbmdsZS1yb3d7aGVpZ2h0OjU2cHh9fS5tYXQtdHJlZXtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC10cmVlLW5vZGUsLm1hdC1uZXN0ZWQtdHJlZS1ub2Rle2NvbG9yOiMyMTIxMjF9Lm1hdC10cmVlLW5vZGV7bWluLWhlaWdodDo0OHB4fWJvZHl7b3ZlcmZsb3c6aGlkZGVufS5jZGstb3ZlcmxheS1jb250YWluZXJ7Y29udGFpbjpzdHJpY3R9LmNkay1vdmVybGF5LWNvbnRhaW5lciAubWF0LW1kYy1kaWFsb2ctc3VyZmFjZXtwYWRkaW5nOjE2cHh9YTpub3QoLm1kYy1idXR0b24sLm1kYy1pY29uLWJ1dHRvbil7Y29sb3I6IzE5NzZkMn1hOm5vdCgubWRjLWJ1dHRvbiwubWRjLWljb24tYnV0dG9uKTp2aXNpdGVke2NvbG9yOiM3YjFmYTJ9Ym9keSBtYXQtc2xpZGVyLGJvZHkuZGFyay1tb2RlIG1hdC1zbGlkZXJ7LS1tZGMtc2xpZGVyLWhhbmRsZS13aWR0aDogMTJweDstLW1kYy1zbGlkZXItaGFuZGxlLWhlaWdodDogMTJweDstLW1kYy1zbGlkZXItYWN0aXZlLXRyYWNrLWhlaWdodDogMnB4Oy0tbWRjLXNsaWRlci1pbmFjdGl2ZS10cmFjay1oZWlnaHQ6IDJweH1ib2R5IGEsYm9keSBidXR0b24ubWF0LW1kYy1idXR0b24tYmFzZSxib2R5LmRhcmstbW9kZSBhLGJvZHkuZGFyay1tb2RlIGJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNley0tdGItaWNvbi13aWR0aDogMjRweDstLXRiLWljb24taGVpZ2h0OiAyNHB4Oy0tdGItaWNvbi1idXR0b24td2lkdGg6IDQwcHg7LS10Yi1pY29uLWJ1dHRvbi1oZWlnaHQ6IDQwcHg7LS1tZGMtdGV4dC1idXR0b24tbGFiZWwtdGV4dC10cmFja2luZzogbm9ybWFsOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC10cmFja2luZzogbm9ybWFsOy0tbWRjLW91dGxpbmVkLWJ1dHRvbi1sYWJlbC10ZXh0LXRyYWNraW5nOiBub3JtYWw7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LXRyYWNraW5nOiBub3JtYWx9Ym9keSBhW21hdC1pY29uLWJ1dHRvbl0ubWF0LW1kYy1pY29uLWJ1dHRvbixib2R5IGJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlW21hdC1pY29uLWJ1dHRvbl0ubWF0LW1kYy1pY29uLWJ1dHRvbixib2R5LmRhcmstbW9kZSBhW21hdC1pY29uLWJ1dHRvbl0ubWF0LW1kYy1pY29uLWJ1dHRvbixib2R5LmRhcmstbW9kZSBidXR0b24ubWF0LW1kYy1idXR0b24tYmFzZVttYXQtaWNvbi1idXR0b25dLm1hdC1tZGMtaWNvbi1idXR0b257d2lkdGg6dmFyKC0tdGItaWNvbi1idXR0b24td2lkdGgpO2hlaWdodDp2YXIoLS10Yi1pY29uLWJ1dHRvbi1oZWlnaHQpO2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Ym9keSBhW21hdC1pY29uLWJ1dHRvbl0ubWF0LW1kYy1pY29uLWJ1dHRvbiAubWF0LW1kYy1idXR0b24tdG91Y2gtdGFyZ2V0LGJvZHkgYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2VbbWF0LWljb24tYnV0dG9uXS5tYXQtbWRjLWljb24tYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi10b3VjaC10YXJnZXQsYm9keS5kYXJrLW1vZGUgYVttYXQtaWNvbi1idXR0b25dLm1hdC1tZGMtaWNvbi1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXRvdWNoLXRhcmdldCxib2R5LmRhcmstbW9kZSBidXR0b24ubWF0LW1kYy1idXR0b24tYmFzZVttYXQtaWNvbi1idXR0b25dLm1hdC1tZGMtaWNvbi1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXRvdWNoLXRhcmdldHtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfWJvZHkgYSBtYXQtaWNvbi5tYXQtaWNvbixib2R5IGJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlIG1hdC1pY29uLm1hdC1pY29uLGJvZHkuZGFyay1tb2RlIGEgbWF0LWljb24ubWF0LWljb24sYm9keS5kYXJrLW1vZGUgYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UgbWF0LWljb24ubWF0LWljb257ZmxleC1zaHJpbms6MH1ib2R5IGEgbWF0LWljb24ubWF0LWljb24sYm9keSBhIHN2Zyxib2R5IGJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlIG1hdC1pY29uLm1hdC1pY29uLGJvZHkgYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2Ugc3ZnLGJvZHkuZGFyay1tb2RlIGEgbWF0LWljb24ubWF0LWljb24sYm9keS5kYXJrLW1vZGUgYSBzdmcsYm9keS5kYXJrLW1vZGUgYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UgbWF0LWljb24ubWF0LWljb24sYm9keS5kYXJrLW1vZGUgYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2Ugc3Zne3dpZHRoOnZhcigtLXRiLWljb24tc2l6ZSwgdmFyKC0tdGItaWNvbi13aWR0aCkpO2hlaWdodDp2YXIoLS10Yi1pY29uLXNpemUsIHZhcigtLXRiLWljb24taGVpZ2h0KSk7bGluZS1oZWlnaHQ6dmFyKC0tdGItaWNvbi1zaXplLCB2YXIoLS10Yi1pY29uLWhlaWdodCkpfWJvZHkuZGFyay1tb2Rle2JhY2tncm91bmQtY29sb3I6IzMwMzAzMH1ib2R5LmRhcmstbW9kZSBhOm5vdCgubWRjLWJ1dHRvbiwubWRjLWljb24tYnV0dG9uKXtjb2xvcjojNDJhNWY1fWJvZHkuZGFyay1tb2RlIGE6bm90KC5tZGMtYnV0dG9uLC5tZGMtaWNvbi1idXR0b24pOnZpc2l0ZWR7Y29sb3I6I2JhNjhjOH1ib2R5LmRhcmstbW9kZSAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtb3B0aW9ue2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCwgd2hpdGUpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLW9wdGlvbjpob3Zlcjpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1vcHRpb246Zm9jdXM6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtb3B0aW9uLm1hdC1tZGMtb3B0aW9uLWFjdGl2ZSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1vcHRpb24ubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tYXQtbWRjLW9wdGlvbi1tdWx0aXBsZSk6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCl7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wOCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcmltYXJ5IC5tYXQtbWRjLW9wdGlvbi5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKSAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjZWY2YzAwKX1ib2R5LmRhcmstbW9kZSAubWF0LWFjY2VudCAubWF0LW1kYy1vcHRpb24ubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjZWY2YzAwKX1ib2R5LmRhcmstbW9kZSAubWF0LXdhcm4gLm1hdC1tZGMtb3B0aW9uLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1vcHRncm91cC1sYWJlbHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHdoaXRlKX1ib2R5LmRhcmstbW9kZSAubWF0LXBzZXVkby1jaGVja2JveC1mdWxse2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGwubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZHtjb2xvcjojNjg2ODY4fWJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXIsYm9keS5kYXJrLW1vZGUgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsOjphZnRlcntjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbCxib2R5LmRhcmstbW9kZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGx7YmFja2dyb3VuZDojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbDo6YWZ0ZXIsYm9keS5kYXJrLW1vZGUgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1mdWxsOjphZnRlcntjb2xvcjojMzAzMDMwfWJvZHkuZGFyay1tb2RlIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsOjphZnRlcixib2R5LmRhcmstbW9kZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXJ7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbCxib2R5LmRhcmstbW9kZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbHtiYWNrZ3JvdW5kOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGw6OmFmdGVyLGJvZHkuZGFyay1tb2RlIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1mdWxsOjphZnRlcntjb2xvcjojMzAzMDMwfWJvZHkuZGFyay1tb2RlIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsOjphZnRlcixib2R5LmRhcmstbW9kZSAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXJ7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbCxib2R5LmRhcmstbW9kZSAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbHtiYWNrZ3JvdW5kOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGw6OmFmdGVyLGJvZHkuZGFyay1tb2RlIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1mdWxsOjphZnRlcntjb2xvcjojMzAzMDMwfWJvZHkuZGFyay1tb2RlIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXIsYm9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsOjphZnRlcntjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbCxib2R5LmRhcmstbW9kZSAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGx7YmFja2dyb3VuZDojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbDo6YWZ0ZXIsYm9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1mdWxsOjphZnRlcntjb2xvcjojMzAzMDMwfWJvZHkuZGFyay1tb2RlIC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWw6OmFmdGVyLGJvZHkuZGFyay1tb2RlIC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWw6OmFmdGVye2NvbG9yOiM2ODY4Njh9Ym9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbCxib2R5LmRhcmstbW9kZSAubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1mdWxse2JhY2tncm91bmQ6IzY4Njg2OH1ib2R5LmRhcmstbW9kZSAubWF0LWFwcC1iYWNrZ3JvdW5kLGJvZHkuZGFyay1tb2RlLm1hdC1hcHAtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiMzMDMwMzA7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MHtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MXtib3gtc2hhZG93OjBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejIsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejJ7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXozLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoze2JveC1zaGFkb3c6MHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16NCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16NHtib3gtc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXo1LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXo1e2JveC1zaGFkb3c6MHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA1cHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejYsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejZ7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejcsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejd7Ym94LXNoYWRvdzowcHggNHB4IDVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDdweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMnB4IDE2cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejgsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejh7Ym94LXNoYWRvdzowcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejksYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejl7Ym94LXNoYWRvdzowcHggNXB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDlweCAxMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejEwLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxMHtib3gtc2hhZG93OjBweCA2cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTBweCAxNHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDE4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejExLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxMXtib3gtc2hhZG93OjBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejEyLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxMntib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejEzLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxM3tib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTNweCAxOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE0LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxNHtib3gtc2hhZG93OjBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE1LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxNXtib3gtc2hhZG93OjBweCA4cHggOXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTVweCAyMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDI4cHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE2LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxNntib3gtc2hhZG93OjBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoxNyxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MTd7Ym94LXNoYWRvdzowcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MTgsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejE4e2JveC1zaGFkb3c6MHB4IDlweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMThweCAyOHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggN3B4IDM0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE5LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxOXtib3gtc2hhZG93OjBweCA5cHggMTJweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE5cHggMjlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDdweCAzNnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoyMCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MjB7Ym94LXNoYWRvdzowcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejIxLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoyMXtib3gtc2hhZG93OjBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMXB4IDMzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDBweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MjIsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejIye2JveC1zaGFkb3c6MHB4IDEwcHggMTRweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIycHggMzVweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MnB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoyMyxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MjN7Ym94LXNoYWRvdzowcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejI0LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoyNHtib3gtc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXJ7ZGlzcGxheTpub25lfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWNhcmR7Ym94LXNoYWRvdzowcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLWVsZXZhdGVkLWNhcmQtY29udGFpbmVyLWNvbG9yOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtY2FyZC1vdXRsaW5lZHtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1vdXRsaW5lZC1jYXJkLW91dGxpbmUtY29sb3I6IzU5NTk1OX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1jYXJkLXN1YnRpdGxle2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXByb2dyZXNzLWJhcnstLW1kYy1saW5lYXItcHJvZ3Jlc3MtYWN0aXZlLWluZGljYXRvci1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXByb2dyZXNzLWJhciAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyLWRvdHN7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB4PScwcHgnIHk9JzBweCcgZW5hYmxlLWJhY2tncm91bmQ9J25ldyAwIDAgNSAyJyB4bWw6c3BhY2U9J3ByZXNlcnZlJyB2aWV3Qm94PScwIDAgNSAyJyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSdub25lIHNsaWNlJyUzRSUzQ2NpcmNsZSBjeD0nMScgY3k9JzEnIHI9JzEnIGZpbGw9J3JnYmEoMjM5LCAxMDgsIDAsIDAuMjUpJy8lM0UlM0Mvc3ZnJTNFIil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcHJvZ3Jlc3MtYmFyIC5tZGMtbGluZWFyLXByb2dyZXNzX19idWZmZXItYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzksIDEwOCwgMCwgMC4yNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnR7LS1tZGMtbGluZWFyLXByb2dyZXNzLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyLWRvdHN7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB4PScwcHgnIHk9JzBweCcgZW5hYmxlLWJhY2tncm91bmQ9J25ldyAwIDAgNSAyJyB4bWw6c3BhY2U9J3ByZXNlcnZlJyB2aWV3Qm94PScwIDAgNSAyJyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSdub25lIHNsaWNlJyUzRSUzQ2NpcmNsZSBjeD0nMScgY3k9JzEnIHI9JzEnIGZpbGw9J3JnYmEoMjM5LCAxMDgsIDAsIDAuMjUpJy8lM0UlM0Mvc3ZnJTNFIil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2J1ZmZlci1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzOSwgMTA4LCAwLCAwLjI1KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1wcm9ncmVzcy1iYXIubWF0LXdhcm57LS1tZGMtbGluZWFyLXByb2dyZXNzLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2J1ZmZlci1kb3Rze2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHZlcnNpb249JzEuMScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgeD0nMHB4JyB5PScwcHgnIGVuYWJsZS1iYWNrZ3JvdW5kPSduZXcgMCAwIDUgMicgeG1sOnNwYWNlPSdwcmVzZXJ2ZScgdmlld0JveD0nMCAwIDUgMicgcHJlc2VydmVBc3BlY3RSYXRpbz0nbm9uZSBzbGljZSclM0UlM0NjaXJjbGUgY3g9JzEnIGN5PScxJyByPScxJyBmaWxsPSdyZ2JhKDI0NCwgNjcsIDU0LCAwLjI1KScvJTNFJTNDL3N2ZyUzRSIpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXByb2dyZXNzLWJhci5tYXQtd2FybiAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LCA2NywgNTQsIDAuMjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRvb2x0aXB7LS1tZGMtcGxhaW4tdG9vbHRpcC1jb250YWluZXItY29sb3I6IzYxNjE2MTstLW1kYy1wbGFpbi10b29sdGlwLXN1cHBvcnRpbmctdGV4dC1jb2xvcjp3aGl0ZX1ib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtZmxvYXRpbmctbGFiZWx7Y29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpfWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dHtjb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpfUBtZWRpYSBhbGx7Ym9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OjpwbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNil9fUBtZWRpYSBhbGx7Ym9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLXRleHQtZmllbGRfX2lucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNil9fWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZCAubWRjLXRleHQtZmllbGRfX2lucHV0e2NhcmV0LWNvbG9yOnZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjZWY2YzAwKX1ib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpKy5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHR7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpfWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLGJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkrLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlcntjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNil9Ym9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLXRleHQtZmllbGRfX2ljb24tLWxlYWRpbmd7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KX1ib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbi0tdHJhaWxpbmd7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KX1ib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9fYWZmaXgtLXByZWZpeHtjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNil9Ym9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLXRleHQtZmllbGRfX2FmZml4LS1zdWZmaXh7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpfWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tZmlsbGVkIC5tZGMtdGV4dC1maWVsZF9fcmlwcGxlOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQgLm1kYy10ZXh0LWZpZWxkX19yaXBwbGU6OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLXJpcHBsZS1jb2xvciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KSl9Ym9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQ6aG92ZXIgLm1kYy10ZXh0LWZpZWxkX19yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWZpbGxlZC5tZGMtcmlwcGxlLXN1cmZhY2UtLWhvdmVyIC5tZGMtdGV4dC1maWVsZF9fcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTp2YXIoLS1tZGMtcmlwcGxlLWhvdmVyLW9wYWNpdHksIDAuMDgpfWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tZmlsbGVkLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCAubWRjLXRleHQtZmllbGRfX3JpcHBsZTo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tZmlsbGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXMgLm1kYy10ZXh0LWZpZWxkX19yaXBwbGU6OmJlZm9yZXtvcGFjaXR5OnZhcigtLW1kYy1yaXBwbGUtZm9jdXMtb3BhY2l0eSwgMC4yNCl9Ym9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6IzRhNGE0YX1ib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWZpbGxlZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1saW5lLXJpcHBsZTo6YmVmb3Jle2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQyKX1ib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWZpbGxlZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6aG92ZXIgLm1kYy1saW5lLXJpcHBsZTo6YmVmb3Jle2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KX1ib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWZpbGxlZCAubWRjLWxpbmUtcmlwcGxlOjphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjZWY2YzAwKX1ib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsYm9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzgpfWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpOmhvdmVyIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLGJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpOmhvdmVyIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKTpob3ZlciAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmd7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyl9Ym9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsYm9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLGJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6dmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICNlZjZjMDApfWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9fcmlwcGxlOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1yaXBwbGUtY29sb3IsIHRyYW5zcGFyZW50KX1ib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWZvY3VzZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtZmxvYXRpbmctbGFiZWx7Y29sb3I6cmdiYSgyMzksIDEwOCwgMCwgMC44Nyl9Ym9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpob3ZlciAubWRjLWxpbmUtcmlwcGxlOjpiZWZvcmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1saW5lLXJpcHBsZTo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1mbG9hdGluZy1sYWJlbHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWludmFsaWQrLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC0tdmFsaWRhdGlvbi1tc2d7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX1ib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWludmFsaWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dHtjYXJldC1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uLS10cmFpbGluZ3tjb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1saW5lLXJpcHBsZTo6YmVmb3Jle2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX1ib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLGJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLGJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCk6aG92ZXIgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsYm9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKTpob3ZlciAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsYm9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKTpob3ZlciAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmd7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Ym9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX1ib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXR7Y29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM4KX1AbWVkaWEgYWxse2JvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDo6cGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM4KX19QG1lZGlhIGFsbHtib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zOCl9fWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1mbG9hdGluZy1sYWJlbHtjb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzgpfWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQrLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dHtjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLGJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQrLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlcntjb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pY29uLS1sZWFkaW5ne2NvbG9yOnJnYmEoMCwgMCwgMCwgMC4zKX1ib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZF9faWNvbi0tdHJhaWxpbmd7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjMpfWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19hZmZpeC0tcHJlZml4e2NvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCl9Ym9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2FmZml4LS1zdWZmaXh7Y29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KX1ib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbGluZS1yaXBwbGU6OmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNil9Ym9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSwoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSl7Ym9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2lucHV0OjpwbGFjZWhvbGRlcntjb2xvcjpHcmF5VGV4dH19QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpe2JvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6R3JheVRleHR9fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKXtib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtZmxvYXRpbmctbGFiZWx7Y29sb3I6R3JheVRleHR9fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKXtib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKy5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHR7Y29sb3I6R3JheVRleHR9fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKXtib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlcixib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKy5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXJ7Y29sb3I6R3JheVRleHR9fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKXtib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZF9faWNvbi0tbGVhZGluZ3tjb2xvcjpHcmF5VGV4dH19QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpe2JvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pY29uLS10cmFpbGluZ3tjb2xvcjpHcmF5VGV4dH19QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpe2JvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19hZmZpeC0tcHJlZml4e2NvbG9yOkdyYXlUZXh0fX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSwoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSl7Ym9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2FmZml4LS1zdWZmaXh7Y29sb3I6R3JheVRleHR9fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKXtib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbGluZS1yaXBwbGU6OmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOkdyYXlUZXh0fX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSwoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSl7Ym9keS5kYXJrLW1vZGUgLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxib2R5LmRhcmstbW9kZSAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6R3JheVRleHR9fWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQubWRjLXRleHQtZmllbGQtLWZpbGxlZHtiYWNrZ3JvdW5kLWNvbG9yOiM0NjQ2NDZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC1lcnJvcntjb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQtZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjg3KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkOmhvdmVyIC5tYXQtbWRjLWZvcm0tZmllbGQtZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4wOH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtbWRjLWZvcm0tZmllbGQtZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4yNH1ib2R5LmRhcmstbW9kZSBzZWxlY3QubWF0LW1kYy1mb3JtLWZpZWxkLWlucHV0LWNvbnRyb2w6bm90KC5tYXQtbWRjLW5hdGl2ZS1zZWxlY3QtaW5saW5lKSBvcHRpb257Y29sb3I6cmdiYSgwLDAsMCwuODcpfWJvZHkuZGFyay1tb2RlIHNlbGVjdC5tYXQtbWRjLWZvcm0tZmllbGQtaW5wdXQtY29udHJvbDpub3QoLm1hdC1tZGMtbmF0aXZlLXNlbGVjdC1pbmxpbmUpIG9wdGlvbjpkaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtbWRjLWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjU0KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQubWF0LXByaW1hcnkgLm1hdC1tZGMtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6cmdiYSgyMzksMTA4LDAsLjg3KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LW1kYy1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjpyZ2JhKDIzOSwxMDgsMCwuODcpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZC5tYXQtd2FybiAubWF0LW1kYy1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuODcpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LW1kYy1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zOCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZF9faW5wdXR7Y2FyZXQtY29sb3I6dmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgI2VmNmMwMCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50Om5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWxpbmUtcmlwcGxlOjphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICNlZjZjMDApfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWZvY3VzZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtZmxvYXRpbmctbGFiZWx7Y29sb3I6cmdiYSgyMzksIDEwOCwgMCwgMC44Nyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6aG92ZXIgLm1kYy1saW5lLXJpcHBsZTo6YmVmb3Jle2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWxpbmUtcmlwcGxlOjphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1mbG9hdGluZy1sYWJlbHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkKy5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNne2NvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0taW52YWxpZCAubWRjLXRleHQtZmllbGRfX2lucHV0e2NhcmV0LWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uLS10cmFpbGluZ3tjb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbGluZS1yaXBwbGU6OmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKTpob3ZlciAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKTpob3ZlciAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCk6aG92ZXIgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmd7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LWFjY2VudCAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6dmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgI2VmNmMwMCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGRfX2lucHV0e2NhcmV0LWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2Fybjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1saW5lLXJpcHBsZTo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWZsb2F0aW5nLWxhYmVse2NvbG9yOnJnYmEoMjQ0LCA2NywgNTQsIDAuODcpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpob3ZlciAubWRjLWxpbmUtcmlwcGxlOjpiZWZvcmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWxpbmUtcmlwcGxlOjphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtZmxvYXRpbmctbGFiZWx7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWludmFsaWQrLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC0tdmFsaWRhdGlvbi1tc2d7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZCAubWRjLXRleHQtZmllbGRfX2lucHV0e2NhcmV0LWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbi0tdHJhaWxpbmd7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1saW5lLXJpcHBsZTo6YmVmb3Jle2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKTpob3ZlciAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCk6aG92ZXIgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKTpob3ZlciAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmd7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy10aGVtZS1lcnJvciwgI2Y0NDMzNil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtd2FybiAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ3tib3JkZXItY29sb3I6dmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjZjQ0MzM2KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC13YXJuIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm4gLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNmNDQzMzYpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LW1kYy1mb3JtLWZpZWxkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaHtib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgwLDAsMCwwKX1ib2R5LmRhcmstbW9kZSBbZGlyPXJ0bF0gLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtbWRjLWZvcm0tZmllbGQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoe2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDAsMCwwLDApfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQtaW5maXh7bWluLWhlaWdodDo1NnB4fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRleHQtZmllbGQtd3JhcHBlciAubWF0LW1kYy1mb3JtLWZpZWxkLWZsZXggLm1hdC1tZGMtZmxvYXRpbmctbGFiZWx7dG9wOjI4cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmV7LS1tYXQtbWRjLWZvcm0tZmllbGQtbGFiZWwtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCAtMzQuNzVweCkgc2NhbGUodmFyKC0tbWF0LW1kYy1mb3JtLWZpZWxkLWZsb2F0aW5nLWxhYmVsLXNjYWxlLCAwLjc1KSk7dHJhbnNmb3JtOnZhcigtLW1hdC1tZGMtZm9ybS1maWVsZC1sYWJlbC10cmFuc2Zvcm0pfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRleHQtZmllbGQtd3JhcHBlci5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1hdC1tZGMtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nLXRvcDoxNnB4O3BhZGRpbmctYm90dG9tOjE2cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyOm5vdCgubWRjLXRleHQtZmllbGQtLW91dGxpbmVkKSAubWF0LW1kYy1mb3JtLWZpZWxkLWluZml4e3BhZGRpbmctdG9wOjI0cHg7cGFkZGluZy1ib3R0b206OHB4fWJvZHkuZGFyay1tb2RlIC5tZGMtdGV4dC1maWVsZC0tbm8tbGFiZWw6bm90KC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKSAubWF0LW1kYy1mb3JtLWZpZWxkLWluZml4e3BhZGRpbmctdG9wOjE2cHg7cGFkZGluZy1ib3R0b206MTZweH1ib2R5LmRhcmstbW9kZSAubWRjLW1lbnUtc3VyZmFjZXtib3gtc2hhZG93OjBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy10aGVtZS1zdXJmYWNlLCAjNDI0MjQyKTtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgI2ZmZil9Ym9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHdoaXRlKX1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtc2Vjb25kYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSl9Ym9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW1fX292ZXJsaW5lLXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1iYWNrZ3JvdW5kLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkpfWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnQsYm9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fZW5ke2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Ym9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydCxib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbS0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19lbmR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtaWNvbi1vbi1iYWNrZ3JvdW5kLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkpfWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtX19lbmR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1iYWNrZ3JvdW5kLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkpfWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fc3RhcnQsYm9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19jb250ZW50LGJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fZW5ke29wYWNpdHk6MC4zOH1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgI2ZmZil9Ym9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19zZWNvbmRhcnktdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgI2ZmZil9Ym9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19vdmVybGluZS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjZmZmKX1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjZmZmKX1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQubWRjLWxpc3QtaXRlbS0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19lbmR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICNmZmYpfWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZC5tZGMtbGlzdC1pdGVtLS13aXRoLXRyYWlsaW5nLW1ldGEgLm1kYy1saXN0LWl0ZW1fX2VuZHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgI2ZmZil9Ym9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQsYm9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjZWY2YzAwKX1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LGJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0e2NvbG9yOnZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjZWY2YzAwKX1ib2R5LmRhcmstbW9kZSAubWRjLWRlcHJlY2F0ZWQtbGlzdC1ncm91cF9fc3ViaGVhZGVye2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCwgd2hpdGUpfWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1kaXZpZGVyOjphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOndoaXRlfWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1kaXZpZGVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXNlbGVjdC12YWx1ZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC44Nyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtc2VsZWN0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjYpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXNlbGVjdC1kaXNhYmxlZCAubWF0LW1kYy1zZWxlY3QtdmFsdWV7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMzgpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXNlbGVjdC1hcnJvd3tjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtcHJpbWFyeSAubWF0LW1kYy1zZWxlY3QtYXJyb3d7Y29sb3I6cmdiYSgyMzksMTA4LDAsLjg3KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1tZGMtc2VsZWN0LWFycm93e2NvbG9yOnJnYmEoMjM5LDEwOCwwLC44Nyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtd2FybiAubWF0LW1kYy1zZWxlY3QtYXJyb3d7Y29sb3I6cmdiYSgyNDQsNjcsNTQsLjg3KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mb3JtLWZpZWxkIC5tYXQtbWRjLXNlbGVjdC5tYXQtbWRjLXNlbGVjdC1pbnZhbGlkIC5tYXQtbWRjLXNlbGVjdC1hcnJvd3tjb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuODcpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZvcm0tZmllbGQgLm1hdC1tZGMtc2VsZWN0Lm1hdC1tZGMtc2VsZWN0LWRpc2FibGVkIC5tYXQtbWRjLXNlbGVjdC1hcnJvd3tjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zOCl9Ym9keS5kYXJrLW1vZGUgLm1kYy1tZW51LXN1cmZhY2V7Ym94LXNoYWRvdzowcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtc3VyZmFjZSwgIzQyNDI0Mik7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICNmZmYpfWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCB3aGl0ZSl9Ym9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LXNlY29uZGFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykpfWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtX19vdmVybGluZS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LWhpbnQtb24tYmFja2dyb3VuZCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpKX1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LGJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX2VuZHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnQsYm9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fZW5ke2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LWljb24tb24tYmFja2dyb3VuZCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpKX1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbV9fZW5ke2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LWhpbnQtb24tYmFja2dyb3VuZCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpKX1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LGJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fY29udGVudCxib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX2VuZHtvcGFjaXR5OjAuMzh9Ym9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICNmZmYpfWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICNmZmYpfWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fb3ZlcmxpbmUtdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgI2ZmZil9Ym9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgI2ZmZil9Ym9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fZW5ke2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjZmZmKX1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQubWRjLWxpc3QtaXRlbS0td2l0aC10cmFpbGluZy1tZXRhIC5tZGMtbGlzdC1pdGVtX19lbmR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICNmZmYpfWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZCAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0LGJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgI2VmNmMwMCl9Ym9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydCxib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgI2VmNmMwMCl9Ym9keS5kYXJrLW1vZGUgLm1kYy1kZXByZWNhdGVkLWxpc3QtZ3JvdXBfX3N1YmhlYWRlcntjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHdoaXRlKX1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtZGl2aWRlcjo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp3aGl0ZX1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtZGl2aWRlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1kaWFsb2ctY29udGFpbmVyey0tbWRjLWRpYWxvZy1jb250YWluZXItY29sb3I6IzQyNDI0MjstLW1kYy1kaWFsb2ctd2l0aC1kaXZpZGVyLWRpdmlkZXItY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTstLW1kYy1kaWFsb2ctc3ViaGVhZC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpOy0tbWRjLWRpYWxvZy1zdXBwb3J0aW5nLXRleHQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXN0YW5kYXJkLWNoaXB7LS1tZGMtY2hpcC1lbGV2YXRlZC1jb250YWluZXItY29sb3I6IzU5NTk1OTstLW1kYy1jaGlwLWVsZXZhdGVkLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjojNTk1OTU5Oy0tbWRjLWNoaXAtbGFiZWwtdGV4dC1jb2xvcjojZmFmYWZhOy0tbWRjLWNoaXAtZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjojZmFmYWZhOy0tbWRjLWNoaXAtd2l0aC1pY29uLWljb24tY29sb3I6I2ZhZmFmYTstLW1kYy1jaGlwLXdpdGgtaWNvbi1kaXNhYmxlZC1pY29uLWNvbG9yOiNmYWZhZmE7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tZGlzYWJsZWQtdHJhaWxpbmctaWNvbi1jb2xvcjojZmFmYWZhOy0tbWRjLWNoaXAtd2l0aC10cmFpbGluZy1pY29uLXRyYWlsaW5nLWljb24tY29sb3I6I2ZhZmFmYTstLW1kYy1jaGlwLXdpdGgtaWNvbi1zZWxlY3RlZC1pY29uLWNvbG9yOiNmYWZhZmF9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtcHJpbWFyeS5tYXQtbWRjLWNoaXAtc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtcHJpbWFyeS5tYXQtbWRjLWNoaXAtaGlnaGxpZ2h0ZWR7LS1tZGMtY2hpcC1lbGV2YXRlZC1jb250YWluZXItY29sb3I6I2VmNmMwMDstLW1kYy1jaGlwLWVsZXZhdGVkLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjojZWY2YzAwOy0tbWRjLWNoaXAtbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLWljb24taWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1kaXNhYmxlZC1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC10cmFpbGluZy1pY29uLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tdHJhaWxpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1zZWxlY3RlZC1pY29uLWNvbG9yOndoaXRlfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWF0LWFjY2VudC5tYXQtbWRjLWNoaXAtc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtYWNjZW50Lm1hdC1tZGMtY2hpcC1oaWdobGlnaHRlZHstLW1kYy1jaGlwLWVsZXZhdGVkLWNvbnRhaW5lci1jb2xvcjojZWY2YzAwOy0tbWRjLWNoaXAtZWxldmF0ZWQtZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yOiNlZjZjMDA7LS1tZGMtY2hpcC1sYWJlbC10ZXh0LWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC1pY29uLWRpc2FibGVkLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tZGlzYWJsZWQtdHJhaWxpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi10cmFpbGluZy1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC1pY29uLXNlbGVjdGVkLWljb24tY29sb3I6d2hpdGV9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtd2Fybi5tYXQtbWRjLWNoaXAtc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtd2Fybi5tYXQtbWRjLWNoaXAtaGlnaGxpZ2h0ZWR7LS1tZGMtY2hpcC1lbGV2YXRlZC1jb250YWluZXItY29sb3I6I2Y0NDMzNjstLW1kYy1jaGlwLWVsZXZhdGVkLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoaXAtbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLWljb24taWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1kaXNhYmxlZC1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC10cmFpbGluZy1pY29uLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tdHJhaWxpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1zZWxlY3RlZC1pY29uLWNvbG9yOndoaXRlfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWNoaXAtZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtY2hpcHtoZWlnaHQ6MzJweH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1zbGlkZS10b2dnbGV7LS1tZGMtc3dpdGNoLWRpc2FibGVkLXNlbGVjdGVkLWhhbmRsZS1jb2xvcjojMDAwOy0tbWRjLXN3aXRjaC1kaXNhYmxlZC11bnNlbGVjdGVkLWhhbmRsZS1jb2xvcjojMDAwOy0tbWRjLXN3aXRjaC1kaXNhYmxlZC1zZWxlY3RlZC10cmFjay1jb2xvcjojZjVmNWY1Oy0tbWRjLXN3aXRjaC1kaXNhYmxlZC11bnNlbGVjdGVkLXRyYWNrLWNvbG9yOiNmNWY1ZjU7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6I2Y1ZjVmNTstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1wcmVzc2VkLXN0YXRlLWxheWVyLWNvbG9yOiNmNWY1ZjU7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6I2Y1ZjVmNTstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1mb2N1cy10cmFjay1jb2xvcjojNjE2MTYxOy0tbWRjLXN3aXRjaC11bnNlbGVjdGVkLWhvdmVyLXRyYWNrLWNvbG9yOiM2MTYxNjE7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtcHJlc3NlZC10cmFjay1jb2xvcjojNjE2MTYxOy0tbWRjLXN3aXRjaC11bnNlbGVjdGVkLXRyYWNrLWNvbG9yOiM2MTYxNjE7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtZm9jdXMtaGFuZGxlLWNvbG9yOiNmYWZhZmE7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtaG92ZXItaGFuZGxlLWNvbG9yOiNmYWZhZmE7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtcHJlc3NlZC1oYW5kbGUtY29sb3I6I2ZhZmFmYTstLW1kYy1zd2l0Y2gtaGFuZGxlLXN1cmZhY2UtY29sb3I6dmFyKC0tbWRjLXRoZW1lLXN1cmZhY2UsICNmZmYpOy0tbWRjLXN3aXRjaC11bnNlbGVjdGVkLWhhbmRsZS1jb2xvcjojOWU5ZTllOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtc3dpdGNoLWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1zd2l0Y2gtZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojMjEyMTIxfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXNsaWRlLXRvZ2dsZSAubWRjLWZvcm0tZmllbGR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCB3aGl0ZSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtc2xpZGUtdG9nZ2xlIC5tZGMtc3dpdGNoLS1kaXNhYmxlZCtsYWJlbHtjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeXstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6I2ZmYjc0ZDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaGFuZGxlLWNvbG9yOiNmZmI3NGQ7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOiNmZmI3NGQ7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItY29sb3I6I2ZmYjc0ZDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtZm9jdXMtaGFuZGxlLWNvbG9yOiNmZmNjODA7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLWhhbmRsZS1jb2xvcjojZmZjYzgwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1wcmVzc2VkLWhhbmRsZS1jb2xvcjojZmZjYzgwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy10cmFjay1jb2xvcjojZmI4YzAwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1ob3Zlci10cmFjay1jb2xvcjojZmI4YzAwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1wcmVzc2VkLXRyYWNrLWNvbG9yOiNmYjhjMDA7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXRyYWNrLWNvbG9yOiNmYjhjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtc2xpZGUtdG9nZ2xlLm1hdC1hY2NlbnR7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOiNmZmI3NGQ7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhhbmRsZS1jb2xvcjojZmZiNzRkOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjojZmZiNzRkOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1wcmVzc2VkLXN0YXRlLWxheWVyLWNvbG9yOiNmZmI3NGQ7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWZvY3VzLWhhbmRsZS1jb2xvcjojZmZjYzgwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1ob3Zlci1oYW5kbGUtY29sb3I6I2ZmY2M4MDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtcHJlc3NlZC1oYW5kbGUtY29sb3I6I2ZmY2M4MDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtZm9jdXMtdHJhY2stY29sb3I6I2ZiOGMwMDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItdHJhY2stY29sb3I6I2ZiOGMwMDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtcHJlc3NlZC10cmFjay1jb2xvcjojZmI4YzAwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC10cmFjay1jb2xvcjojZmI4YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXNsaWRlLXRvZ2dsZS5tYXQtd2FybnstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6I2U1NzM3MzstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaGFuZGxlLWNvbG9yOiNlNTczNzM7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOiNlNTczNzM7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItY29sb3I6I2U1NzM3MzstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtZm9jdXMtaGFuZGxlLWNvbG9yOiNlZjlhOWE7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLWhhbmRsZS1jb2xvcjojZWY5YTlhOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1wcmVzc2VkLWhhbmRsZS1jb2xvcjojZWY5YTlhOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy10cmFjay1jb2xvcjojZTUzOTM1Oy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1ob3Zlci10cmFjay1jb2xvcjojZTUzOTM1Oy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1wcmVzc2VkLXRyYWNrLWNvbG9yOiNlNTM5MzU7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXRyYWNrLWNvbG9yOiNlNTM5MzV9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtc2xpZGUtdG9nZ2xley0tbWRjLXN3aXRjaC1zdGF0ZS1sYXllci1zaXplOjQ4cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcmFkaW8tYnV0dG9uIC5tZGMtZm9ybS1maWVsZHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHdoaXRlKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1yYWRpby1idXR0b24ubWF0LXByaW1hcnl7LS1tZGMtcmFkaW8tZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmZmOy0tbWRjLXJhZGlvLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmZmOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZWVlZWVlOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZWVlZWVlOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NCk7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZWY2YzAwOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2VmNmMwMDstLW1kYy1yYWRpby1zZWxlY3RlZC1pY29uLWNvbG9yOiNlZjZjMDA7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNlZjZjMDA7LS1tYXQtbWRjLXJhZGlvLXJpcHBsZS1jb2xvcjogI2ZmZjstLW1hdC1tZGMtcmFkaW8tY2hlY2tlZC1yaXBwbGUtY29sb3I6ICNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tZGMtcmFkaW8tLWRpc2FibGVkK2xhYmVse2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnR7LS1tZGMtcmFkaW8tZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmZmOy0tbWRjLXJhZGlvLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmZmOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZWVlZWVlOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZWVlZWVlOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NCk7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZWY2YzAwOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2VmNmMwMDstLW1kYy1yYWRpby1zZWxlY3RlZC1pY29uLWNvbG9yOiNlZjZjMDA7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNlZjZjMDA7LS1tYXQtbWRjLXJhZGlvLXJpcHBsZS1jb2xvcjogI2ZmZjstLW1hdC1tZGMtcmFkaW8tY2hlY2tlZC1yaXBwbGUtY29sb3I6ICNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1kYy1yYWRpby0tZGlzYWJsZWQrbGFiZWx7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1yYWRpby1idXR0b24ubWF0LXdhcm57LS1tZGMtcmFkaW8tZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmZmOy0tbWRjLXJhZGlvLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmZmOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZWVlZWVlOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZWVlZWVlOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NCk7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLXJhZGlvLXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1yYWRpby1zZWxlY3RlZC1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNmNDQzMzY7LS1tYXQtbWRjLXJhZGlvLXJpcHBsZS1jb2xvcjogI2ZmZjstLW1hdC1tZGMtcmFkaW8tY2hlY2tlZC1yaXBwbGUtY29sb3I6ICNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tZGMtcmFkaW8tLWRpc2FibGVkK2xhYmVse2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcmFkaW8tYnV0dG9uIC5tZGMtcmFkaW97cGFkZGluZzpjYWxjKCg0MHB4IC0gMjBweCkgLyAyKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1yYWRpby1idXR0b24gLm1kYy1yYWRpbyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kOjpiZWZvcmV7dG9wOmNhbGMoLTEgKiAoNDBweCAtIDIwcHgpIC8gMik7bGVmdDpjYWxjKC0xICogKDQwcHggLSAyMHB4KSAvIDIpO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcmFkaW8tYnV0dG9uIC5tZGMtcmFkaW8gLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2x7dG9wOmNhbGMoKDQwcHggLSA0MHB4KSAvIDIpO3JpZ2h0OmNhbGMoKDQwcHggLSA0MHB4KSAvIDIpO2xlZnQ6Y2FsYygoNDBweCAtIDQwcHgpIC8gMik7d2lkdGg6NDBweDtoZWlnaHQ6NDBweH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1zbGlkZXJ7LS1tZGMtc2xpZGVyLWxhYmVsLWNvbnRhaW5lci1jb2xvcjp3aGl0ZTstLW1kYy1zbGlkZXItbGFiZWwtbGFiZWwtdGV4dC1jb2xvcjpibGFjazstLW1kYy1zbGlkZXItZGlzYWJsZWQtaGFuZGxlLWNvbG9yOiNmZmY7LS1tZGMtc2xpZGVyLWRpc2FibGVkLWFjdGl2ZS10cmFjay1jb2xvcjojZmZmOy0tbWRjLXNsaWRlci1kaXNhYmxlZC1pbmFjdGl2ZS10cmFjay1jb2xvcjojZmZmOy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yOiNmZmY7LS1tYXQtbWRjLXNsaWRlci12YWx1ZS1pbmRpY2F0b3Itb3BhY2l0eTogMC45fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXNsaWRlci5tYXQtcHJpbWFyeXstLW1kYy1zbGlkZXItaGFuZGxlLWNvbG9yOiNlZjZjMDA7LS1tZGMtc2xpZGVyLWZvY3VzLWhhbmRsZS1jb2xvcjojZWY2YzAwOy0tbWRjLXNsaWRlci1ob3Zlci1oYW5kbGUtY29sb3I6I2VmNmMwMDstLW1kYy1zbGlkZXItYWN0aXZlLXRyYWNrLWNvbG9yOiNlZjZjMDA7LS1tZGMtc2xpZGVyLWluYWN0aXZlLXRyYWNrLWNvbG9yOiNlZjZjMDA7LS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1hY3RpdmUtY29udGFpbmVyLWNvbG9yOiMwMDA7LS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1pbmFjdGl2ZS1jb250YWluZXItY29sb3I6I2VmNmMwMDstLW1hdC1tZGMtc2xpZGVyLXJpcHBsZS1jb2xvcjogI2VmNmMwMDstLW1hdC1tZGMtc2xpZGVyLWhvdmVyLXJpcHBsZS1jb2xvcjogcmdiYSgyMzksIDEwOCwgMCwgMC4wNSk7LS1tYXQtbWRjLXNsaWRlci1mb2N1cy1yaXBwbGUtY29sb3I6IHJnYmEoMjM5LCAxMDgsIDAsIDAuMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtc2xpZGVyLm1hdC1hY2NlbnR7LS1tZGMtc2xpZGVyLWhhbmRsZS1jb2xvcjojZWY2YzAwOy0tbWRjLXNsaWRlci1mb2N1cy1oYW5kbGUtY29sb3I6I2VmNmMwMDstLW1kYy1zbGlkZXItaG92ZXItaGFuZGxlLWNvbG9yOiNlZjZjMDA7LS1tZGMtc2xpZGVyLWFjdGl2ZS10cmFjay1jb2xvcjojZWY2YzAwOy0tbWRjLXNsaWRlci1pbmFjdGl2ZS10cmFjay1jb2xvcjojZWY2YzAwOy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtYWN0aXZlLWNvbnRhaW5lci1jb2xvcjojMDAwOy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtaW5hY3RpdmUtY29udGFpbmVyLWNvbG9yOiNlZjZjMDA7LS1tYXQtbWRjLXNsaWRlci1yaXBwbGUtY29sb3I6ICNlZjZjMDA7LS1tYXQtbWRjLXNsaWRlci1ob3Zlci1yaXBwbGUtY29sb3I6IHJnYmEoMjM5LCAxMDgsIDAsIDAuMDUpOy0tbWF0LW1kYy1zbGlkZXItZm9jdXMtcmlwcGxlLWNvbG9yOiByZ2JhKDIzOSwgMTA4LCAwLCAwLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXNsaWRlci5tYXQtd2FybnstLW1kYy1zbGlkZXItaGFuZGxlLWNvbG9yOiNmNDQzMzY7LS1tZGMtc2xpZGVyLWZvY3VzLWhhbmRsZS1jb2xvcjojZjQ0MzM2Oy0tbWRjLXNsaWRlci1ob3Zlci1oYW5kbGUtY29sb3I6I2Y0NDMzNjstLW1kYy1zbGlkZXItYWN0aXZlLXRyYWNrLWNvbG9yOiNmNDQzMzY7LS1tZGMtc2xpZGVyLWluYWN0aXZlLXRyYWNrLWNvbG9yOiNmNDQzMzY7LS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1hY3RpdmUtY29udGFpbmVyLWNvbG9yOiNmZmY7LS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1pbmFjdGl2ZS1jb250YWluZXItY29sb3I6I2Y0NDMzNjstLW1hdC1tZGMtc2xpZGVyLXJpcHBsZS1jb2xvcjogI2Y0NDMzNjstLW1hdC1tZGMtc2xpZGVyLWhvdmVyLXJpcHBsZS1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC4wNSk7LS1tYXQtbWRjLXNsaWRlci1mb2N1cy1yaXBwbGUtY29sb3I6IHJnYmEoMjQ0LCA2NywgNTQsIDAuMil9Ym9keS5kYXJrLW1vZGUgLm1kYy1tZW51LXN1cmZhY2V7Ym94LXNoYWRvdzowcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtdGhlbWUtc3VyZmFjZSwgIzQyNDI0Mik7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICNmZmYpfWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCB3aGl0ZSl9Ym9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LXNlY29uZGFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykpfWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtX19vdmVybGluZS10ZXh0e2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LWhpbnQtb24tYmFja2dyb3VuZCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpKX1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LGJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy1saXN0LWl0ZW1fX2VuZHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnQsYm9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fZW5ke2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LWljb24tb24tYmFja2dyb3VuZCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpKX1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbV9fZW5ke2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LWhpbnQtb24tYmFja2dyb3VuZCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpKX1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LGJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fY29udGVudCxib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX2VuZHtvcGFjaXR5OjAuMzh9Ym9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICNmZmYpfWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICNmZmYpfWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fb3ZlcmxpbmUtdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgI2ZmZil9Ym9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgI2ZmZil9Ym9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fZW5ke2NvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjZmZmKX1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQubWRjLWxpc3QtaXRlbS0td2l0aC10cmFpbGluZy1tZXRhIC5tZGMtbGlzdC1pdGVtX19lbmR7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICNmZmYpfWJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZCAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0LGJvZHkuZGFyay1tb2RlIC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgI2VmNmMwMCl9Ym9keS5kYXJrLW1vZGUgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydCxib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgI2VmNmMwMCl9Ym9keS5kYXJrLW1vZGUgLm1kYy1kZXByZWNhdGVkLWxpc3QtZ3JvdXBfX3N1YmhlYWRlcntjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHdoaXRlKX1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtZGl2aWRlcjo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp3aGl0ZX1ib2R5LmRhcmstbW9kZSAubWRjLWxpc3QtZGl2aWRlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1tZW51LWl0ZW1bZGlzYWJsZWRdLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLW1lbnUtaXRlbVtkaXNhYmxlZF0gLm1hdC1tZGMtbWVudS1zdWJtZW51LWljb24sYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbWVudS1pdGVtW2Rpc2FibGVkXSAubWF0LWljb24tbm8tY29sb3J7Y29sb3I6dmFyKC0tbWRjLXRoZW1lLXRleHQtZGlzYWJsZWQtb24tYmFja2dyb3VuZCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLW1lbnUtc3VibWVudS1pY29ue2NvbG9yOnZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCwgd2hpdGUpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLW1lbnUtaXRlbS5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA4KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1saXN0LWJhc2V7LS1tZGMtbGlzdC1saXN0LWl0ZW0tbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1kYy1saXN0LWxpc3QtaXRlbS1zdXBwb3J0aW5nLXRleHQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWxlYWRpbmctaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7LS1tZGMtbGlzdC1saXN0LWl0ZW0tdHJhaWxpbmctc3VwcG9ydGluZy10ZXh0LWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1pY29uLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTstLW1kYy1saXN0LWxpc3QtaXRlbS1zZWxlY3RlZC10cmFpbGluZy1pY29uLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTstLW1kYy1saXN0LWxpc3QtaXRlbS1kaXNhYmxlZC1sYWJlbC10ZXh0LWNvbG9yOndoaXRlOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWRpc2FibGVkLWxlYWRpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1saXN0LWxpc3QtaXRlbS1kaXNhYmxlZC10cmFpbGluZy1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWhvdmVyLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tZGMtbGlzdC1saXN0LWl0ZW0taG92ZXItbGVhZGluZy1pY29uLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTstLW1kYy1saXN0LWxpc3QtaXRlbS1ob3Zlci10cmFpbGluZy1pY29uLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTstLW1kYy1saXN0LWxpc3QtaXRlbS1mb2N1cy1sYWJlbC10ZXh0LWNvbG9yOndoaXRlOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOndoaXRlOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWhvdmVyLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4wODstLW1kYy1saXN0LWxpc3QtaXRlbS1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjp3aGl0ZTstLW1kYy1saXN0LWxpc3QtaXRlbS1mb2N1cy1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbGlzdC1vcHRpb24gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWxpc3Qtb3B0aW9uIC5tZGMtbGlzdC1pdGVtX19lbmR7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtY2hlY2ttYXJrLWNvbG9yOiMwMDA7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZWY2YzAwOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2VmNmMwMDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1pY29uLWNvbG9yOiNlZjZjMDA7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNlZjZjMDA7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNlZWVlZWU7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNlZWVlZWU7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzgpOy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzgpOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbGlzdC1vcHRpb24gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWxpc3Qtb3B0aW9uIC5tZGMtbGlzdC1pdGVtX19lbmR7LS1tZGMtcmFkaW8tZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmZmOy0tbWRjLXJhZGlvLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmZmOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZWVlZWVlOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZWVlZWVlOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NCk7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZWY2YzAwOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2VmNmMwMDstLW1kYy1yYWRpby1zZWxlY3RlZC1pY29uLWNvbG9yOiNlZjZjMDA7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNlZjZjMDA7LS1tYXQtbWRjLXJhZGlvLXJpcHBsZS1jb2xvcjogI2ZmZjstLW1hdC1tZGMtcmFkaW8tY2hlY2tlZC1yaXBwbGUtY29sb3I6ICNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbGlzdC1vcHRpb24gLm1kYy1saXN0LWl0ZW1fX3N0YXJ0IC5tZGMtcmFkaW8tLWRpc2FibGVkK2xhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWxpc3Qtb3B0aW9uIC5tZGMtbGlzdC1pdGVtX19lbmQgLm1kYy1yYWRpby0tZGlzYWJsZWQrbGFiZWx7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1saXN0LW9wdGlvbi5tYXQtYWNjZW50IC5tZGMtbGlzdC1pdGVtX19zdGFydCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1saXN0LW9wdGlvbi5tYXQtYWNjZW50IC5tZGMtbGlzdC1pdGVtX19lbmR7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtY2hlY2ttYXJrLWNvbG9yOiMwMDA7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZWY2YzAwOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2VmNmMwMDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1pY29uLWNvbG9yOiNlZjZjMDA7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNlZjZjMDA7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNlZWVlZWU7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNlZWVlZWU7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzgpOy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzgpOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbGlzdC1vcHRpb24ubWF0LWFjY2VudCAubWRjLWxpc3QtaXRlbV9fc3RhcnQsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbGlzdC1vcHRpb24ubWF0LWFjY2VudCAubWRjLWxpc3QtaXRlbV9fZW5key0tbWRjLXJhZGlvLWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6I2ZmZjstLW1kYy1yYWRpby1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6I2ZmZjstLW1kYy1yYWRpby11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2VlZWVlZTstLW1kYy1yYWRpby11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2VlZWVlZTstLW1kYy1yYWRpby11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU0KTstLW1kYy1yYWRpby11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2VmNmMwMDstLW1kYy1yYWRpby1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNlZjZjMDA7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaWNvbi1jb2xvcjojZWY2YzAwOy0tbWRjLXJhZGlvLXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojZWY2YzAwOy0tbWF0LW1kYy1yYWRpby1yaXBwbGUtY29sb3I6ICNmZmY7LS1tYXQtbWRjLXJhZGlvLWNoZWNrZWQtcmlwcGxlLWNvbG9yOiAjZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWxpc3Qtb3B0aW9uLm1hdC1hY2NlbnQgLm1kYy1saXN0LWl0ZW1fX3N0YXJ0IC5tZGMtcmFkaW8tLWRpc2FibGVkK2xhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWxpc3Qtb3B0aW9uLm1hdC1hY2NlbnQgLm1kYy1saXN0LWl0ZW1fX2VuZCAubWRjLXJhZGlvLS1kaXNhYmxlZCtsYWJlbHtjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWxpc3Qtb3B0aW9uLm1hdC13YXJuIC5tZGMtbGlzdC1pdGVtX19zdGFydCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1saXN0LW9wdGlvbi5tYXQtd2FybiAubWRjLWxpc3QtaXRlbV9fZW5key0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojZmZmOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZWVlZWVlOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZWVlZWVlOy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM4KTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM4KTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU0KTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWxpc3Qtb3B0aW9uLm1hdC13YXJuIC5tZGMtbGlzdC1pdGVtX19zdGFydCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1saXN0LW9wdGlvbi5tYXQtd2FybiAubWRjLWxpc3QtaXRlbV9fZW5key0tbWRjLXJhZGlvLWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6I2ZmZjstLW1kYy1yYWRpby1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6I2ZmZjstLW1kYy1yYWRpby11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2VlZWVlZTstLW1kYy1yYWRpby11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2VlZWVlZTstLW1kYy1yYWRpby11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU0KTstLW1kYy1yYWRpby11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1yYWRpby1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLXJhZGlvLXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWF0LW1kYy1yYWRpby1yaXBwbGUtY29sb3I6ICNmZmY7LS1tYXQtbWRjLXJhZGlvLWNoZWNrZWQtcmlwcGxlLWNvbG9yOiAjZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWxpc3Qtb3B0aW9uLm1hdC13YXJuIC5tZGMtbGlzdC1pdGVtX19zdGFydCAubWRjLXJhZGlvLS1kaXNhYmxlZCtsYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1saXN0LW9wdGlvbi5tYXQtd2FybiAubWRjLWxpc3QtaXRlbV9fZW5kIC5tZGMtcmFkaW8tLWRpc2FibGVkK2xhYmVse2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbGlzdC1iYXNlLm1hdC1tZGMtbGlzdC1iYXNlIC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZCAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWxpc3QtYmFzZS5tYXQtbWRjLWxpc3QtYmFzZSAubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1saXN0LWJhc2UubWF0LW1kYy1saXN0LWJhc2UgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1saXN0LWJhc2UubWF0LW1kYy1saXN0LWJhc2UgLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnR7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1saXN0LWJhc2UgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19zdGFydCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1saXN0LWJhc2UgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19jb250ZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWxpc3QtYmFzZSAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX2VuZHtvcGFjaXR5OjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbGlzdC1iYXNley0tbWRjLWxpc3QtbGlzdC1pdGVtLW9uZS1saW5lLWNvbnRhaW5lci1oZWlnaHQ6NDhweDstLW1kYy1saXN0LWxpc3QtaXRlbS10d28tbGluZS1jb250YWluZXItaGVpZ2h0OjY0cHg7LS1tZGMtbGlzdC1saXN0LWl0ZW0tdGhyZWUtbGluZS1jb250YWluZXItaGVpZ2h0Ojg4cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbGlzdC1pdGVtLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1hdmF0YXIubWRjLWxpc3QtaXRlbS0td2l0aC1vbmUtbGluZSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1saXN0LWl0ZW0ubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWNoZWNrYm94Lm1kYy1saXN0LWl0ZW0tLXdpdGgtb25lLWxpbmUsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbGlzdC1pdGVtLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uLm1kYy1saXN0LWl0ZW0tLXdpdGgtb25lLWxpbmV7aGVpZ2h0OjU2cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbGlzdC1pdGVtLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1hdmF0YXIubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXMsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbGlzdC1pdGVtLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1jaGVja2JveC5tZGMtbGlzdC1pdGVtLS13aXRoLXR3by1saW5lcyxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1saXN0LWl0ZW0ubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24ubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXN7aGVpZ2h0OjcycHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcGFnaW5hdG9ye2JhY2tncm91bmQ6IzQyNDI0Mjtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC44Nyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcGFnaW5hdG9yLWljb257ZmlsbDpyZ2JhKDI1NSwyNTUsMjU1LC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcGFnaW5hdG9yLWRlY3JlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1wYWdpbmF0b3ItaW5jcmVtZW50e2JvcmRlci10b3A6MnB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjU0KTtib3JkZXItcmlnaHQ6MnB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjU0KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1wYWdpbmF0b3ItZmlyc3QsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcGFnaW5hdG9yLWxhc3R7Ym9yZGVyLXRvcDoycHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNTQpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LW1kYy1wYWdpbmF0b3ItZGVjcmVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LW1kYy1wYWdpbmF0b3ItaW5jcmVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LW1kYy1wYWdpbmF0b3ItZmlyc3QsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtbWRjLXBhZ2luYXRvci1sYXN0e2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtbWRjLXBhZ2luYXRvci1pY29ue2ZpbGw6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXBhZ2luYXRvciAubWF0LW1kYy1mb3JtLWZpZWxkLWluZml4e21pbi1oZWlnaHQ6NDBweH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1wYWdpbmF0b3IgLm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyIC5tYXQtbWRjLWZvcm0tZmllbGQtZmxleCAubWF0LW1kYy1mbG9hdGluZy1sYWJlbHt0b3A6MjBweH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1wYWdpbmF0b3IgLm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmV7LS1tYXQtbWRjLWZvcm0tZmllbGQtbGFiZWwtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCAtMjYuNzVweCkgc2NhbGUodmFyKC0tbWF0LW1kYy1mb3JtLWZpZWxkLWZsb2F0aW5nLWxhYmVsLXNjYWxlLCAwLjc1KSk7dHJhbnNmb3JtOnZhcigtLW1hdC1tZGMtZm9ybS1maWVsZC1sYWJlbC10cmFuc2Zvcm0pfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXBhZ2luYXRvciAubWF0LW1kYy10ZXh0LWZpZWxkLXdyYXBwZXIubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tYXQtbWRjLWZvcm0tZmllbGQtaW5maXh7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1wYWdpbmF0b3IgLm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyOm5vdCgubWRjLXRleHQtZmllbGQtLW91dGxpbmVkKSAubWF0LW1kYy1mb3JtLWZpZWxkLWluZml4e3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcGFnaW5hdG9yIC5tZGMtdGV4dC1maWVsZC0tbm8tbGFiZWw6bm90KC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKSAubWF0LW1kYy1mb3JtLWZpZWxkLWluZml4e3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcGFnaW5hdG9yIC5tYXQtbWRjLXRleHQtZmllbGQtd3JhcHBlcjpub3QoLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCkgLm1hdC1tZGMtZmxvYXRpbmctbGFiZWx7ZGlzcGxheTpub25lfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXBhZ2luYXRvci1jb250YWluZXJ7bWluLWhlaWdodDo1NnB4fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYixib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItbGlua3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiIC5tZGMtdGFiX190ZXh0LWxhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYi1saW5rIC5tZGMtdGFiX190ZXh0LWxhYmVse2NvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWIubWF0LW1kYy10YWItZGlzYWJsZWQgLm1kYy10YWJfX3JpcHBsZTo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYi5tYXQtbWRjLXRhYi1kaXNhYmxlZCAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYi1saW5rLm1hdC1tZGMtdGFiLWRpc2FibGVkIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItbGluay5tYXQtbWRjLXRhYi1kaXNhYmxlZCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9fdGV4dC1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItbGluazpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKS5tZGMtdGFiLS1hY3RpdmUgLm1kYy10YWJfX3RleHQtbGFiZWx7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWI6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiLWxpbms6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmV7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy10YWItaW5kaWNhdG9yLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3IsICNlZjZjMDApfWJvZHkuZGFyay1tb2RlIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWIgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItbGluayAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LW1kYy10YWI6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkubWRjLXRhYi0tYWN0aXZlIC5tZGMtdGFiX190ZXh0LWxhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYi1saW5rOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9fdGV4dC1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYjpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKS5tZGMtdGFiLS1hY3RpdmUgLm1kYy10YWJfX3RleHQtbGFiZWwsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LW1kYy10YWItbGluazpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKS5tZGMtdGFiLS1hY3RpdmUgLm1kYy10YWJfX3RleHQtbGFiZWx7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LW1kYy10YWI6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1tZGMtdGFiLWxpbms6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LW1kYy10YWI6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LW1kYy10YWItbGluazpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKSAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZXtib3JkZXItY29sb3I6dmFyKC0tbWRjLXRhYi1pbmRpY2F0b3ItYWN0aXZlLWluZGljYXRvci1jb2xvciwgI2VmNmMwMCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1kYy10YWJfX3JpcHBsZTo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYiAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYi1saW5rIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWRjLXRhYl9fcmlwcGxlOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LW1kYy10YWIgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC1tZGMtdGFiLWxpbmsgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtbWRjLXRhYjpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKS5tZGMtdGFiLS1hY3RpdmUgLm1kYy10YWJfX3RleHQtbGFiZWwsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtbWRjLXRhYi1saW5rOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9fdGV4dC1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LW1kYy10YWI6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkubWRjLXRhYi0tYWN0aXZlIC5tZGMtdGFiX190ZXh0LWxhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtbWRjLXRhYi1saW5rOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9fdGV4dC1sYWJlbHtjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtd2FybiAubWF0LW1kYy10YWI6bm90KC5tYXQtbWRjLXRhYi1kaXNhYmxlZCkgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtbWRjLXRhYi1saW5rOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpIC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0tdW5kZXJsaW5lLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtbWRjLXRhYjpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKSAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LW1kYy10YWItbGluazpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKSAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZXtib3JkZXItY29sb3I6dmFyKC0tbWRjLXRhYi1pbmRpY2F0b3ItYWN0aXZlLWluZGljYXRvci1jb2xvciwgI2Y0NDMzNil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC13YXJuIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1tZGMtdGFiIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtd2FybiAubWF0LW1kYy10YWItbGluayAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LW1kYy10YWIgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LW1kYy10YWItbGluayAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5ey0tbWF0LW1kYy10YWItaGVhZGVyLXdpdGgtYmFja2dyb3VuZC1iYWNrZ3JvdW5kLWNvbG9yOiAjZWY2YzAwOy0tbWF0LW1kYy10YWItaGVhZGVyLXdpdGgtYmFja2dyb3VuZC1mb3JlZ3JvdW5kLWNvbG9yOiAjMDAwfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50ey0tbWF0LW1kYy10YWItaGVhZGVyLXdpdGgtYmFja2dyb3VuZC1iYWNrZ3JvdW5kLWNvbG9yOiAjZWY2YzAwOy0tbWF0LW1kYy10YWItaGVhZGVyLXdpdGgtYmFja2dyb3VuZC1mb3JlZ3JvdW5kLWNvbG9yOiAjMDAwfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm57LS1tYXQtbWRjLXRhYi1oZWFkZXItd2l0aC1iYWNrZ3JvdW5kLWJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7LS1tYXQtbWRjLXRhYi1oZWFkZXItd2l0aC1iYWNrZ3JvdW5kLWZvcmVncm91bmQtY29sb3I6ICNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjZmZmKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy10YWItaGVhZGVyIC5tZGMtdGFie2hlaWdodDo0OHB4fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWNoZWNrYm94IC5tZGMtZm9ybS1maWVsZHtjb2xvcjp2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHdoaXRlKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveF9fcmlwcGxle2JhY2tncm91bmQ6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1jaGVja2JveC5tYXQtcHJpbWFyeXstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6IzAwMDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNlZjZjMDA7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZWY2YzAwOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWljb24tY29sb3I6I2VmNmMwMDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6I2VmNmMwMDstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2VlZWVlZTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2VlZWVlZTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zOCk7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zOCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU0KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1jaGVja2JveC5tYXQtcHJpbWFyeSAubWRjLWNoZWNrYm94LS1zZWxlY3RlZH4ubWF0LW1kYy1jaGVja2JveC1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1jaGVja2JveC5tYXQtcHJpbWFyeSAubWRjLWNoZWNrYm94LS1zZWxlY3RlZH4ubWRjLWNoZWNrYm94X19yaXBwbGV7YmFja2dyb3VuZDojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWNoZWNrYm94Lm1hdC1hY2NlbnR7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtY2hlY2ttYXJrLWNvbG9yOiMwMDA7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZWY2YzAwOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2VmNmMwMDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1pY29uLWNvbG9yOiNlZjZjMDA7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNlZjZjMDA7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNlZWVlZWU7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNlZWVlZWU7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzgpOy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzgpOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtY2hlY2tib3gubWF0LWFjY2VudCAubWRjLWNoZWNrYm94LS1zZWxlY3RlZH4ubWF0LW1kYy1jaGVja2JveC1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1jaGVja2JveC5tYXQtYWNjZW50IC5tZGMtY2hlY2tib3gtLXNlbGVjdGVkfi5tZGMtY2hlY2tib3hfX3JpcHBsZXtiYWNrZ3JvdW5kOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtY2hlY2tib3gubWF0LXdhcm57LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtY2hlY2ttYXJrLWNvbG9yOiNmZmY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNlZWVlZWU7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNlZWVlZWU7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzgpOy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzgpOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtY2hlY2tib3gubWF0LXdhcm4gLm1kYy1jaGVja2JveC0tc2VsZWN0ZWR+Lm1hdC1tZGMtY2hlY2tib3gtcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtY2hlY2tib3gubWF0LXdhcm4gLm1kYy1jaGVja2JveC0tc2VsZWN0ZWR+Lm1kYy1jaGVja2JveF9fcmlwcGxle2JhY2tncm91bmQ6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1jaGVja2JveC1kaXNhYmxlZCBsYWJlbHtjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3h7cGFkZGluZzpjYWxjKCh2YXIoLS1tZGMtY2hlY2tib3gtcmlwcGxlLXNpemUsIDQwcHgpIC0gMThweCkgLyAyKTttYXJnaW46Y2FsYygodmFyKC0tbWRjLWNoZWNrYm94LXRvdWNoLXRhcmdldC1zaXplLCA0MHB4KSAtIDQwcHgpIC8gMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5ke3RvcDpjYWxjKCh2YXIoLS1tZGMtY2hlY2tib3gtcmlwcGxlLXNpemUsIDQwcHgpIC0gMThweCkgLyAyKTtsZWZ0OmNhbGMoKHZhcigtLW1kYy1jaGVja2JveC1yaXBwbGUtc2l6ZSwgNDBweCkgLSAxOHB4KSAvIDIpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2x7dG9wOmNhbGMoKDQwcHggLSB2YXIoLS1tZGMtY2hlY2tib3gtdG91Y2gtdGFyZ2V0LXNpemUsIDQwcHgpKSAvIDIpO3JpZ2h0OmNhbGMoKDQwcHggLSB2YXIoLS1tZGMtY2hlY2tib3gtdG91Y2gtdGFyZ2V0LXNpemUsIDQwcHgpKSAvIDIpO2xlZnQ6Y2FsYygoNDBweCAtIHZhcigtLW1kYy1jaGVja2JveC10b3VjaC10YXJnZXQtc2l6ZSwgNDBweCkpIC8gMik7d2lkdGg6dmFyKC0tbWRjLWNoZWNrYm94LXRvdWNoLXRhcmdldC1zaXplLCA0MHB4KTtoZWlnaHQ6dmFyKC0tbWRjLWNoZWNrYm94LXRvdWNoLXRhcmdldC1zaXplLCA0MHB4KX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1idXR0b24ubWF0LXVudGhlbWVkey0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1idXR0b24ubWF0LXByaW1hcnl7LS1tZGMtdGV4dC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1idXR0b24ubWF0LXdhcm57LS1tZGMtdGV4dC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdey0tbWRjLXRleHQtYnV0dG9uLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOy0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC11bnRoZW1lZHstLW1kYy1maWxsZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojNDI0MjQyOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWRjLWZpbGxlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiNlZjZjMDA7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiMwMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24ubWF0LWFjY2VudHstLW1kYy1maWxsZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZWY2YzAwOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojMDAwfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC13YXJuey0tbWRjLWZpbGxlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXXstLW1kYy1maWxsZWQtYnV0dG9uLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpOy0tbWRjLWZpbGxlZC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7LS1tZGMtZmlsbGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTstLW1kYy1maWxsZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LXVudGhlbWVkey0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiM0MjQyNDI7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeXstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZWY2YzAwOy0tbWRjLXByb3RlY3RlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojMDAwfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LWFjY2VudHstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZWY2YzAwOy0tbWRjLXByb3RlY3RlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojMDAwfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LXdhcm57LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6I2Y0NDMzNjstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF17LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1kaXNhYmxlZC1jb250YWluZXItY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOy0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1lbGV2YXRpb246MH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1vdXRsaW5lZC1idXR0b257LS1tZGMtb3V0bGluZWQtYnV0dG9uLW91dGxpbmUtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXVudGhlbWVkey0tbWRjLW91dGxpbmVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWRjLW91dGxpbmVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uLm1hdC1hY2NlbnR7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXdhcm57LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1vdXRsaW5lZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXXstLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOy0tbWRjLW91dGxpbmVkLWJ1dHRvbi1vdXRsaW5lLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWRpc2FibGVkLW91dGxpbmUtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1idXR0b24sYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNmZmY7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1idXR0b246aG92ZXIgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjA4fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtYnV0dG9uOmFjdGl2ZSAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1vdXRsaW5lZC1idXR0b246YWN0aXZlIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjI0fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWJ1dHRvbi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXByaW1hcnl7LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2VmNmMwMDstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyMzksIDEwOCwgMCwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1idXR0b24ubWF0LWFjY2VudCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LWFjY2VudHstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjZWY2YzAwOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDIzOSwgMTA4LCAwLCAwLjEpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWJ1dHRvbi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXdhcm57LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2Y0NDMzNjstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1yYWlzZWQtYnV0dG9uLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNmZmY7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1yYWlzZWQtYnV0dG9uOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjA4fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXJhaXNlZC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1yYWlzZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbjphY3RpdmUgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b246YWN0aXZlIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjI0fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24ubWF0LXByaW1hcnl7LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogIzAwMDstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCxib2R5LmRhcmstbW9kZSAubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICMwMDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC13YXJuey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNmZmY7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1yYWlzZWQtYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZXtoZWlnaHQ6MzZweH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1pY29uLWJ1dHRvbnstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjZmZmOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtaWNvbi1idXR0b246aG92ZXIgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMDh9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtaWNvbi1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1pY29uLWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZXtvcGFjaXR5Oi4yNH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1pY29uLWJ1dHRvbjphY3RpdmUgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LXByaW1hcnl7LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2VmNmMwMDstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyMzksIDEwOCwgMCwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNlZjZjMDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjM5LCAxMDgsIDAsIDAuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LXdhcm57LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2Y0NDMzNjstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeXstLW1kYy1pY29uLWJ1dHRvbi1pY29uLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LWFjY2VudHstLW1kYy1pY29uLWJ1dHRvbi1pY29uLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LXdhcm57LS1tZGMtaWNvbi1idXR0b24taWNvbi1jb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWljb24tYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF17LS1tZGMtaWNvbi1idXR0b24taWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7LS1tZGMtaWNvbi1idXR0b24tZGlzYWJsZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZXt3aWR0aDo0OHB4O2hlaWdodDo0OHB4O3BhZGRpbmc6MTJweH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlIC5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmd7bWF4LWhlaWdodDo0OHB4O21heC13aWR0aDo0OHB4fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UubWRjLWljb24tYnV0dG9uLS1yZWR1Y2VkLXNpemUgLm1kYy1pY29uLWJ1dHRvbl9fcmlwcGxle3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7bWFyZ2luLXRvcDo0cHg7bWFyZ2luLWJvdHRvbTo0cHg7bWFyZ2luLXJpZ2h0OjRweDttYXJnaW4tbGVmdDo0cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZS5tZGMtaWNvbi1idXR0b24tLXJlZHVjZWQtc2l6ZSAubWRjLWljb24tYnV0dG9uX19mb2N1cy1yaW5ne21heC1oZWlnaHQ6NDBweDttYXgtd2lkdGg6NDBweH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlIC5tZGMtaWNvbi1idXR0b25fX3RvdWNoe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7aGVpZ2h0OjQ4cHg7bGVmdDo1MCU7d2lkdGg6NDhweDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZhYixib2R5LmRhcmstbW9kZSAubWF0LW1kYy1taW5pLWZhYnstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjZmZmOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZmFiOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLW1pbmktZmFiOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjA4fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZhYi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZhYi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1taW5pLWZhYi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLW1pbmktZmFiLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjI0fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZhYjphY3RpdmUgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbWluaS1mYWI6YWN0aXZlIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjI0fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZhYi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1taW5pLWZhYi5tYXQtcHJpbWFyeXstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjMDAwOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZmFiLm1hdC1hY2NlbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbWluaS1mYWIubWF0LWFjY2VudHstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjMDAwOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtZmFiLm1hdC13YXJuLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLW1pbmktZmFiLm1hdC13YXJuey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNmZmY7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mYWIubWF0LXVudGhlbWVkLGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLW1pbmktZmFiLm1hdC11bnRoZW1lZHstLW1kYy1mYWItY29udGFpbmVyLWNvbG9yOiM0MjQyNDI7LS1tZGMtZmFiLWljb24tY29sb3I6I2ZmZjstLW1hdC1tZGMtZmFiLWNvbG9yOiAjZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZhYi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1taW5pLWZhYi5tYXQtcHJpbWFyeXstLW1kYy1mYWItY29udGFpbmVyLWNvbG9yOiNlZjZjMDA7LS1tZGMtZmFiLWljb24tY29sb3I6IzAwMDstLW1hdC1tZGMtZmFiLWNvbG9yOiAjMDAwfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLWZhYi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLW1pbmktZmFiLm1hdC1hY2NlbnR7LS1tZGMtZmFiLWNvbnRhaW5lci1jb2xvcjojZWY2YzAwOy0tbWRjLWZhYi1pY29uLWNvbG9yOiMwMDA7LS1tYXQtbWRjLWZhYi1jb2xvcjogIzAwMH1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mYWIubWF0LXdhcm4sYm9keS5kYXJrLW1vZGUgLm1hdC1tZGMtbWluaS1mYWIubWF0LXdhcm57LS1tZGMtZmFiLWNvbnRhaW5lci1jb2xvcjojZjQ0MzM2Oy0tbWRjLWZhYi1pY29uLWNvbG9yOiNmZmY7LS1tYXQtbWRjLWZhYi1jb2xvcjogI2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LW1kYy1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSxib2R5LmRhcmstbW9kZSAubWF0LW1kYy1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdey0tbWRjLWZhYi1jb250YWluZXItY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTstLW1kYy1mYWItaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7LS1tYXQtbWRjLWZhYi1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXNuYWNrLWJhci1jb250YWluZXJ7LS1tYXQtbWRjLXNuYWNrLWJhci1idXR0b24tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tZGMtc25hY2tiYXItY29udGFpbmVyLWNvbG9yOiNkOWQ5ZDk7LS1tZGMtc25hY2tiYXItc3VwcG9ydGluZy10ZXh0LWNvbG9yOnJnYmEoNjYsIDY2LCA2NiwgMC44Nyl9Ym9keS5kYXJrLW1vZGUgLm1kYy1kYXRhLXRhYmxle2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLXRoZW1lLXN1cmZhY2UsICM0MjQyNDIpO2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tZGMtZGF0YS10YWJsZV9fcm93e2JhY2tncm91bmQtY29sb3I6aW5oZXJpdH1ib2R5LmRhcmstbW9kZSAubWRjLWRhdGEtdGFibGVfX2hlYWRlci1jZWxse2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLXRoZW1lLXN1cmZhY2UsICM0MjQyNDIpfWJvZHkuZGFyay1tb2RlIC5tZGMtZGF0YS10YWJsZV9fcm93LS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LCAxMDgsIDAsIDAuMDQpfWJvZHkuZGFyay1tb2RlIC5tZGMtZGF0YS10YWJsZV9fcGFnaW5hdGlvbi1yb3dzLXBlci1wYWdlLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsYm9keS5kYXJrLW1vZGUgLm1kYy1kYXRhLXRhYmxlX19wYWdpbmF0aW9uLXJvd3MtcGVyLXBhZ2Utc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsYm9keS5kYXJrLW1vZGUgLm1kYy1kYXRhLXRhYmxlX19wYWdpbmF0aW9uLXJvd3MtcGVyLXBhZ2Utc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmd7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1kYy1kYXRhLXRhYmxlX19jZWxsLGJvZHkuZGFyay1tb2RlIC5tZGMtZGF0YS10YWJsZV9faGVhZGVyLWNlbGx7Ym9yZGVyLWJvdHRvbS1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tZGMtZGF0YS10YWJsZV9fcGFnaW5hdGlvbntib3JkZXItdG9wLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1kYy1kYXRhLXRhYmxlX19yb3c6bm90KC5tZGMtZGF0YS10YWJsZV9fcm93LS1zZWxlY3RlZCk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpfWJvZHkuZGFyay1tb2RlIC5tZGMtZGF0YS10YWJsZV9faGVhZGVyLWNlbGx7Y29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KX1ib2R5LmRhcmstbW9kZSAubWRjLWRhdGEtdGFibGVfX3BhZ2luYXRpb24tdG90YWwsYm9keS5kYXJrLW1vZGUgLm1kYy1kYXRhLXRhYmxlX19wYWdpbmF0aW9uLXJvd3MtcGVyLXBhZ2UtbGFiZWwsYm9keS5kYXJrLW1vZGUgLm1kYy1kYXRhLXRhYmxlX19jZWxse2NvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFibGV7YmFja2dyb3VuZDojNDI0MjQyfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYmxlIC5tZGMtZGF0YS10YWJsZV9fcm93e2hlaWdodDo1MnB4fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXRhYmxlIC5tZGMtZGF0YS10YWJsZV9fcGFnaW5hdGlvbnttaW4taGVpZ2h0OjUycHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtdGFibGUgLm1kYy1kYXRhLXRhYmxlX19oZWFkZXItcm93e2hlaWdodDo1NnB4fWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXByb2dyZXNzLXNwaW5uZXJ7LS1tZGMtY2lyY3VsYXItcHJvZ3Jlc3MtYWN0aXZlLWluZGljYXRvci1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtbWRjLXByb2dyZXNzLXNwaW5uZXIubWF0LWFjY2VudHstLW1kYy1jaXJjdWxhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZGMtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtd2FybnstLW1kYy1jaXJjdWxhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1iYWRnZS1jb250ZW50e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZWY2YzAwfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgYm9keS5kYXJrLW1vZGUgLm1hdC1iYWRnZS1jb250ZW50e291dGxpbmU6c29saWQgMXB4O2JvcmRlci1yYWRpdXM6MH1ib2R5LmRhcmstbW9kZSAubWF0LWJhZGdlLWFjY2VudCAubWF0LWJhZGdlLWNvbnRlbnR7YmFja2dyb3VuZDojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1iYWRnZS13YXJuIC5tYXQtYmFkZ2UtY29udGVudHtjb2xvcjojZmZmO2JhY2tncm91bmQ6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWJhZGdlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudHtiYWNrZ3JvdW5kOiM2ZTZlNmU7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJ7Ym94LXNoYWRvdzowcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kOiM0MjQyNDI7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksYm9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzpub25lfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSsubWF0LWJ1dHRvbi10b2dnbGV7Ym9yZGVyLWxlZnQ6c29saWQgMXB4ICM1OTU5NTl9Ym9keS5kYXJrLW1vZGUgW2Rpcj1ydGxdIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSsubWF0LWJ1dHRvbi10b2dnbGV7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmlnaHQ6c29saWQgMXB4ICM1OTU5NTl9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlKy5tYXQtYnV0dG9uLXRvZ2dsZXtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDpub25lO2JvcmRlci10b3A6c29saWQgMXB4ICM1OTU5NTl9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjojMjEyMTIxO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyk7YmFja2dyb3VuZC1jb2xvcjojMDAwfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJke2JhY2tncm91bmQ6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZHtib3JkZXI6c29saWQgMXB4ICM1OTU5NTl9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnR7bGluZS1oZWlnaHQ6NDhweH1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWFycm93e2ZpbGw6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1wcmV2aW91cy1idXR0b257Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlci1kaXZpZGVyOjphZnRlcntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWx7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCxib2R5LmRhcmstbW9kZSAubWF0LWRhdGUtcmFuZ2UtaW5wdXQtc2VwYXJhdG9ye2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1kYXRlLXJhbmdlLWlucHV0LXNlcGFyYXRvcntjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1pbi1wcmV2aWV3e2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjI0KX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyMzksMTA4LDAsLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCxib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjM5LCAxMDgsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDIzOSwgMTA4LCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZT4ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsYm9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQ6IzQ2YTM1ZX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC40KX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZn1ib2R5LmRhcmstbW9kZSAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLGJvZHkuZGFyay1tb2RlIC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC4zKX1AbWVkaWEoaG92ZXI6IGhvdmVyKXtib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzksMTA4LDAsLjMpfX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudHtib3gtc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDIzOSwxMDgsMCwuMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDIzOSwgMTA4LCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMjM5LCAxMDgsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQ+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzksMTA4LDAsLjQpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzksMTA4LDAsLjMpfUBtZWRpYShob3ZlcjogaG92ZXIpe2JvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXI+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC4zKX19Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDI0NCw2Nyw1NCwuMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDI0OSwxNzEsMCwuMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNDQsIDY3LCA1NCwgMC4yKSA1MCUsIHJnYmEoMjQ5LCAxNzEsIDAsIDAuMikgNTAlKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMjQ0LCA2NywgNTQsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZS5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YWZ0ZXJ7YmFja2dyb3VuZDojYThkYWI1fWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZT4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZDojNDZhMzVlfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQ+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsNjcsNTQsLjQpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCksYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsNjcsNTQsLjMpfUBtZWRpYShob3ZlcjogaG92ZXIpe2JvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuMyl9fWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50LXRvdWNoe2JveC1zaGFkb3c6MHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZle2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LWFjY2VudHtjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC13YXJue2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlLXJhbmdlLWlucHV0LWlubmVyW2Rpc2FibGVkXXtjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItY29udHJvbHMgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZXt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3BhZGRpbmc6OHB4fWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItY29udHJvbHMgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZSAubWRjLWljb24tYnV0dG9uX19mb2N1cy1yaW5ne21heC1oZWlnaHQ6NDBweDttYXgtd2lkdGg6NDBweH1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWNvbnRyb2xzIC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UubWRjLWljb24tYnV0dG9uLS1yZWR1Y2VkLXNpemUgLm1kYy1pY29uLWJ1dHRvbl9fcmlwcGxle3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7bWFyZ2luLXRvcDowcHg7bWFyZ2luLWJvdHRvbTowcHg7bWFyZ2luLXJpZ2h0OjBweDttYXJnaW4tbGVmdDowcHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1jb250cm9scyAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlLm1kYy1pY29uLWJ1dHRvbi0tcmVkdWNlZC1zaXplIC5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmd7bWF4LWhlaWdodDo0MHB4O21heC13aWR0aDo0MHB4fWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItY29udHJvbHMgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZSAubWRjLWljb24tYnV0dG9uX190b3VjaHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2hlaWdodDo0MHB4O2xlZnQ6NTAlO3dpZHRoOjQwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWNvbnRyb2xzIC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UgLm1hdC1tZGMtYnV0dG9uLXRvdWNoLXRhcmdldHtkaXNwbGF5Om5vbmV9Ym9keS5kYXJrLW1vZGUgLm1hdC1kaXZpZGVye2JvcmRlci10b3AtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGl2aWRlci12ZXJ0aWNhbHtib3JkZXItcmlnaHQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZXhwYW5zaW9uLXBhbmVse2JhY2tncm91bmQ6IzQyNDI0Mjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWFjdGlvbi1yb3d7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSksYm9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSxib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSl7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCl9QG1lZGlhKGhvdmVyOiBub25lKXtib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDojNDI0MjQyfX1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGV7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24sYm9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsYm9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9ue2NvbG9yOmluaGVyaXR9Ym9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVye2hlaWdodDo0OHB4fWJvZHkuZGFyay1tb2RlIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5tYXQtZXhwYW5kZWR7aGVpZ2h0OjY0cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1pY29uLm1hdC1wcmltYXJ5e2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1pY29uLm1hdC1hY2NlbnR7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWljb24ubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWRyYXdlci1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kcmF3ZXJ7YmFja2dyb3VuZC1jb2xvcjojNDI0MjQyO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kcmF3ZXIubWF0LWRyYXdlci1wdXNoe2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LWRyYXdlcjpub3QoLm1hdC1kcmF3ZXItc2lkZSl7Ym94LXNoYWRvdzowcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWRyYXdlci1zaWRle2JvcmRlci1yaWdodDpzb2xpZCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmR7Ym9yZGVyLWxlZnQ6c29saWQgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjEyKTtib3JkZXItcmlnaHQ6bm9uZX1ib2R5LmRhcmstbW9kZSBbZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZXtib3JkZXItbGVmdDpzb2xpZCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMTIpO2JvcmRlci1yaWdodDpub25lfWJvZHkuZGFyay1tb2RlIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5ke2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLXJpZ2h0OnNvbGlkIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93bntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTg5LDE4OSwxODksLjYpfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIuY2RrLWtleWJvYXJkLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkXSksYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlclthcmlhLWRpc2FibGVkPWZhbHNlXXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjA0KX1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV17Y3Vyc29yOmRlZmF1bHR9QG1lZGlhKGhvdmVyOiBub25lKXtib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6bm9uZX19Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWx7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0e2JhY2tncm91bmQtY29sb3I6I2VmNmMwMDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIubWF0LWFjY2VudCAubWF0LXN0ZXAtaWNvbntjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIubWF0LWFjY2VudCAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSxib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDA7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLm1hdC13YXJuIC5tYXQtc3RlcC1pY29ue2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLm1hdC13YXJuIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0e2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3J7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtYWN0aXZle2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3J7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCxib2R5LmRhcmstbW9kZSAubWF0LXN0ZXBwZXItdmVydGljYWx7YmFja2dyb3VuZC1jb2xvcjojNDI0MjQyfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmV7Ym9yZGVyLWxlZnQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwcGVyLWhvcml6b250YWwtbGluZXtib3JkZXItdG9wLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXJ7aGVpZ2h0OjcycHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXIsYm9keS5kYXJrLW1vZGUgLm1hdC12ZXJ0aWNhbC1zdGVwcGVyLWhlYWRlcntwYWRkaW5nOjI0cHggMjRweH1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3Jle3RvcDotMTZweDtib3R0b206LTE2cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmV7dG9wOjM2cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5le3RvcDozNnB4fWJvZHkuZGFyay1tb2RlIC5tYXQtc29ydC1oZWFkZXItYXJyb3d7Y29sb3I6I2M2YzZjNn1ib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXJ7YmFja2dyb3VuZDojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5e2JhY2tncm91bmQ6I2VmNmMwMDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhci5tYXQtYWNjZW50e2JhY2tncm91bmQ6I2VmNmMwMDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhci5tYXQtd2FybntiYWNrZ3JvdW5kOiNmNDQzMzY7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9Ym9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsYm9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LGJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6aW5oZXJpdH1ib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50e2NhcmV0LWNvbG9yOmN1cnJlbnRDb2xvcn1ib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXItbXVsdGlwbGUtcm93c3ttaW4taGVpZ2h0OjY0cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyLXJvdyxib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXItc2luZ2xlLXJvd3toZWlnaHQ6NjRweH1AbWVkaWEobWF4LXdpZHRoOiA1OTlweCl7Ym9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyLW11bHRpcGxlLXJvd3N7bWluLWhlaWdodDo1NnB4fWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhci1yb3csYm9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyLXNpbmdsZS1yb3d7aGVpZ2h0OjU2cHh9fWJvZHkuZGFyay1tb2RlIC5tYXQtdHJlZXtiYWNrZ3JvdW5kOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC10cmVlLW5vZGUsYm9keS5kYXJrLW1vZGUgLm1hdC1uZXN0ZWQtdHJlZS1ub2Rle2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10cmVlLW5vZGV7bWluLWhlaWdodDo0OHB4fWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLGJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b24sYm9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbntjb2xvcjppbmhlcml0O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKX1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5LGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnl7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCxib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnR7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuLGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksYm9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksYm9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LGJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnR7b3BhY2l0eTouMTtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQ6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdCgubWF0LWJ1dHRvbi1kaXNhYmxlZCl7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbixib2R5LmRhcmstbW9kZSAubWF0LWZhYixib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFie2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojNDI0MjQyfWJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1wcmltYXJ5LGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnl7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LWFjY2VudCxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnR7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC13YXJue2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5e2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LWFjY2VudCxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4sYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC13YXJuLGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LXdhcm57YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLGJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b246bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWZhYjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiOm5vdCgubWF0LWJ1dHRvbi1kaXNhYmxlZCk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtYnV0dG9uLWRpc2FibGVkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1idXR0b24ubWF0LXVudGhlbWVkey0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1idXR0b24ubWF0LXByaW1hcnl7LS1tZGMtdGV4dC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1idXR0b24ubWF0LXdhcm57LS1tZGMtdGV4dC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdey0tbWRjLXRleHQtYnV0dG9uLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOy0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC11bnRoZW1lZHstLW1kYy1maWxsZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojNDI0MjQyOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWRjLWZpbGxlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiNlZjZjMDA7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiMwMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24ubWF0LWFjY2VudHstLW1kYy1maWxsZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZWY2YzAwOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojMDAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC13YXJuey0tbWRjLWZpbGxlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXXstLW1kYy1maWxsZWQtYnV0dG9uLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpOy0tbWRjLWZpbGxlZC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7LS1tZGMtZmlsbGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTstLW1kYy1maWxsZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LXVudGhlbWVkey0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiM0MjQyNDI7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeXstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZWY2YzAwOy0tbWRjLXByb3RlY3RlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojMDAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LWFjY2VudHstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZWY2YzAwOy0tbWRjLXByb3RlY3RlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojMDAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LXdhcm57LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6I2Y0NDMzNjstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF17LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1kaXNhYmxlZC1jb250YWluZXItY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOy0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1lbGV2YXRpb246MH1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b257LS1tZGMtb3V0bGluZWQtYnV0dG9uLW91dGxpbmUtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXVudGhlbWVkey0tbWRjLW91dGxpbmVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWRjLW91dGxpbmVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uLm1hdC1hY2NlbnR7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXdhcm57LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXXstLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOy0tbWRjLW91dGxpbmVkLWJ1dHRvbi1vdXRsaW5lLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWRpc2FibGVkLW91dGxpbmUtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1idXR0b24sYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNmZmY7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1idXR0b246aG92ZXIgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjA4fWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtYnV0dG9uOmFjdGl2ZSAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b246YWN0aXZlIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjI0fWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLWJ1dHRvbi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXByaW1hcnl7LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2VmNmMwMDstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyMzksIDEwOCwgMCwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1idXR0b24ubWF0LWFjY2VudCxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LWFjY2VudHstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjZWY2YzAwOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDIzOSwgMTA4LCAwLCAwLjEpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLWJ1dHRvbi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXdhcm57LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2Y0NDMzNjstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1yYWlzZWQtYnV0dG9uLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNmZmY7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1yYWlzZWQtYnV0dG9uOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uOmhvdmVyIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjA4fWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXJhaXNlZC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1yYWlzZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbjphY3RpdmUgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b246YWN0aXZlIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle29wYWNpdHk6LjI0fWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24ubWF0LXByaW1hcnl7LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogIzAwMDstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICMwMDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC13YXJuey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNmZmY7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1pY29uLWJ1dHRvbnstLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yOiAjZmZmOy0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtaWNvbi1idXR0b246aG92ZXIgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMDh9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtaWNvbi1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1pY29uLWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZXtvcGFjaXR5Oi4yNH1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1pY29uLWJ1dHRvbjphY3RpdmUgLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7b3BhY2l0eTouMjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LXByaW1hcnl7LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2VmNmMwMDstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyMzksIDEwOCwgMCwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6ICNlZjZjMDA7LS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3I6IHJnYmEoMjM5LCAxMDgsIDAsIDAuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LXdhcm57LS1tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZS1jb2xvcjogI2Y0NDMzNjstLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeXstLW1kYy1pY29uLWJ1dHRvbi1pY29uLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LWFjY2VudHstLW1kYy1pY29uLWJ1dHRvbi1pY29uLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LXdhcm57LS1tZGMtaWNvbi1idXR0b24taWNvbi1jb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLWljb24tYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF17LS1tZGMtaWNvbi1idXR0b24taWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7LS1tZGMtaWNvbi1idXR0b24tZGlzYWJsZWQtaWNvbi1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2V7aGVpZ2h0OjM2cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZXt3aWR0aDo0OHB4O2hlaWdodDo0OHB4O3BhZGRpbmc6MTJweH1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlIC5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmd7bWF4LWhlaWdodDo0OHB4O21heC13aWR0aDo0OHB4fWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UubWRjLWljb24tYnV0dG9uLS1yZWR1Y2VkLXNpemUgLm1kYy1pY29uLWJ1dHRvbl9fcmlwcGxle3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7bWFyZ2luLXRvcDo0cHg7bWFyZ2luLWJvdHRvbTo0cHg7bWFyZ2luLXJpZ2h0OjRweDttYXJnaW4tbGVmdDo0cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZS5tZGMtaWNvbi1idXR0b24tLXJlZHVjZWQtc2l6ZSAubWRjLWljb24tYnV0dG9uX19mb2N1cy1yaW5ne21heC1oZWlnaHQ6NDBweDttYXgtd2lkdGg6NDBweH1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlIC5tZGMtaWNvbi1idXR0b25fX3RvdWNoe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7aGVpZ2h0OjQ4cHg7bGVmdDo1MCU7d2lkdGg6NDhweDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpfWJvZHkuZGFyay1tb2RlIC5tYXQtb3B0aW9ue2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1vcHRpb246aG92ZXI6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDQpfWJvZHkuZGFyay1tb2RlIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCl7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1vcHRpb24ubWF0LWFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA0KTtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtb3B0aW9uLm1hdC1vcHRpb24tZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1hY2NlbnQgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCl7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXdhcm4gLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCl7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LW9wdGdyb3VwLWxhYmVse2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtb3B0Z3JvdXAtZGlzYWJsZWQgLm1hdC1vcHRncm91cC1sYWJlbHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LXBzZXVkby1jaGVja2JveC1mdWxsLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWR7Y29sb3I6IzY4Njg2OH1ib2R5LmRhcmstbW9kZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWw6OmFmdGVyLGJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXJ7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGwsYm9keS5kYXJrLW1vZGUgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1mdWxse2JhY2tncm91bmQ6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGw6OmFmdGVyLGJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbDo6YWZ0ZXJ7Y29sb3I6IzMwMzAzMH1ib2R5LmRhcmstbW9kZSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXIsYm9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWw6OmFmdGVye2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGwsYm9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGx7YmFja2dyb3VuZDojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1mdWxsOjphZnRlcixib2R5LmRhcmstbW9kZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbDo6YWZ0ZXJ7Y29sb3I6IzMwMzAzMH1ib2R5LmRhcmstbW9kZSAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXIsYm9keS5kYXJrLW1vZGUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWw6OmFmdGVye2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGwsYm9keS5kYXJrLW1vZGUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGx7YmFja2dyb3VuZDojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1mdWxsOjphZnRlcixib2R5LmRhcmstbW9kZSAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbDo6YWZ0ZXJ7Y29sb3I6IzMwMzAzMH1ib2R5LmRhcmstbW9kZSAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWw6OmFmdGVyLGJvZHkuZGFyay1tb2RlIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbDo6YWZ0ZXJ7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGwsYm9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1mdWxse2JhY2tncm91bmQ6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGw6OmFmdGVyLGJvZHkuZGFyay1tb2RlIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbDo6YWZ0ZXJ7Y29sb3I6IzMwMzAzMH1ib2R5LmRhcmstbW9kZSAubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsOjphZnRlcixib2R5LmRhcmstbW9kZSAubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsOjphZnRlcntjb2xvcjojNjg2ODY4fWJvZHkuZGFyay1tb2RlIC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGwsYm9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbHtiYWNrZ3JvdW5kOiM2ODY4Njh9Ym9keS5kYXJrLW1vZGUgLm1hdC1hcHAtYmFja2dyb3VuZCxib2R5LmRhcmstbW9kZS5tYXQtYXBwLWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejB7Ym94LXNoYWRvdzowcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejF7Ym94LXNoYWRvdzowcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoye2JveC1zaGFkb3c6MHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16M3tib3gtc2hhZG93OjBweCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggM3B4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejR7Ym94LXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16NXtib3gtc2hhZG93OjBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXo2e2JveC1zaGFkb3c6MHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXo3e2JveC1zaGFkb3c6MHB4IDRweCA1cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA3cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDJweCAxNnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXo4e2JveC1zaGFkb3c6MHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXo5e2JveC1zaGFkb3c6MHB4IDVweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA5cHggMTJweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoxMHtib3gtc2hhZG93OjBweCA2cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTBweCAxNHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDE4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejExe2JveC1zaGFkb3c6MHB4IDZweCA3cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMXB4IDE1cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA0cHggMjBweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MTJ7Ym94LXNoYWRvdzowcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoxM3tib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTNweCAxOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE0e2JveC1zaGFkb3c6MHB4IDdweCA5cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNHB4IDIxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjZweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MTV7Ym94LXNoYWRvdzowcHggOHB4IDlweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE1cHggMjJweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAyOHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoxNntib3gtc2hhZG93OjBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoxN3tib3gtc2hhZG93OjBweCA4cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE3cHggMjZweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoxOHtib3gtc2hhZG93OjBweCA5cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE4cHggMjhweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDdweCAzNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoxOXtib3gtc2hhZG93OjBweCA5cHggMTJweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE5cHggMjlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDdweCAzNnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoyMHtib3gtc2hhZG93OjBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMHB4IDMxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggMzhweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MjF7Ym94LXNoYWRvdzowcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjFweCAzM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDQwcHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejIye2JveC1zaGFkb3c6MHB4IDEwcHggMTRweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIycHggMzVweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MnB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoyM3tib3gtc2hhZG93OjBweCAxMXB4IDE0cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyM3B4IDM2cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MjR7Ym94LXNoYWRvdzowcHggMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC10aGVtZS1sb2FkZWQtbWFya2Vye2Rpc3BsYXk6bm9uZX1ib2R5LmRhcmstbW9kZSAubWF0LWNhcmR7YmFja2dyb3VuZDojNDI0MjQyO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWNhcmQubWF0LWNhcmQtZmxhdDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWNhcmQtc3VidGl0bGV7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiM2MDNmMjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye2JhY2tncm91bmQtY29sb3I6IzYwM2YyNH1ib2R5LmRhcmstbW9kZSAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5ke2ZpbGw6IzYwM2YyNH1ib2R5LmRhcmstbW9kZSAubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlcntiYWNrZ3JvdW5kLWNvbG9yOiM2MDNmMjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiM2MTM1MzJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye2JhY2tncm91bmQtY29sb3I6IzYxMzUzMn1ib2R5LmRhcmstbW9kZSAubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZSxib2R5LmRhcmstbW9kZSAubWF0LXNwaW5uZXIgY2lyY2xle3N0cm9rZTojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSxib2R5LmRhcmstbW9kZSAubWF0LXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGV7c3Ryb2tlOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSxib2R5LmRhcmstbW9kZSAubWF0LXNwaW5uZXIubWF0LXdhcm4gY2lyY2xle3N0cm9rZTojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbHRpcHtiYWNrZ3JvdW5kOnJnYmEoOTcsOTcsOTcsLjkpfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50OmRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LWlucHV0LWVsZW1lbnR7Y2FyZXQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWlucHV0LWVsZW1lbnQ6OnBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LWlucHV0LWVsZW1lbnQ6bm90KC5tYXQtbmF0aXZlLXNlbGVjdC1pbmxpbmUpIG9wdGlvbntjb2xvcjpyZ2JhKDAsMCwwLC44Nyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50Om5vdCgubWF0LW5hdGl2ZS1zZWxlY3QtaW5saW5lKSBvcHRpb246ZGlzYWJsZWR7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tYXQtaW5wdXQtZWxlbWVudHtjYXJldC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtd2FybiAubWF0LWlucHV0LWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50e2NhcmV0LWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1wcmVmaXgsYm9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1zdWZmaXh7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtbGFiZWx7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1oaW50e2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWx7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnR7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC13YXJue2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXJ7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtcmlwcGxle2JhY2tncm91bmQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LXdhcm57YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXJ7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLGJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1lcnJvcntjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWx7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtaGludHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAzMyUsIHRyYW5zcGFyZW50IDAlKTtiYWNrZ3JvdW5kLXNpemU6NHB4IDEwMCU7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO2JhY2tncm91bmQtc2l6ZTo0cHggMTAwJTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1mbGV4e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtZmxleHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjA1KX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmV7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbHtjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmV7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTUpfWJvZHkuZGFyay1tb2RlIC5tYXQtc2VsZWN0LXZhbHVle2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zZWxlY3QtcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtdmFsdWV7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LXNlbGVjdC1wYW5lbHtiYWNrZ3JvdW5kOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zZWxlY3QtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXByaW1hcnkgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtd2FybiAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtZnJhbWV7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJre2ZpbGw6IzMwMzAzMH1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe3N0cm9rZTojMzAzMDMwICFpbXBvcnRhbnR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsYm9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLGJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCxib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCxib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiM2ODY4Njh9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1kaXNhYmxlZDpub3QoLm1hdC1jaGVja2JveC1jaGVja2VkKSAubWF0LWNoZWNrYm94LWZyYW1le2JvcmRlci1jb2xvcjojNjg2ODY4fWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQgLm1hdC1jaGVja2JveC1sYWJlbHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQ6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbHtiYWNrZ3JvdW5kOiM0MjQyNDI7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpe2JhY2tncm91bmQ6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kaWFsb2ctY29udGFpbmVye2JveC1zaGFkb3c6MHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQ6IzQyNDI0Mjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcHtiYWNrZ3JvdW5kLWNvbG9yOiM2MTYxNjE7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojZmZmO29wYWNpdHk6LjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpOmFjdGl2ZXtib3gtc2hhZG93OjBweCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggM3B4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXJ7b3BhY2l0eTouNTR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVke29wYWNpdHk6LjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlcntiYWNrZ3JvdW5kOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5e2JhY2tncm91bmQtY29sb3I6I2VmNmMwMDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LWNoaXAtcmVtb3Zle2NvbG9yOiNmZmY7b3BhY2l0eTouNH1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojZmZmO29wYWNpdHk6LjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDA7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LWNoaXAtcmVtb3Zle2NvbG9yOiNmZmY7b3BhY2l0eTouNH1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC13YXJuLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7Ym94LXNoYWRvdzowcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQtY29sb3I6I2JkYmRiZH1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLW91dGVyLWNpcmNsZXtib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGV7Ym9yZGVyLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSxib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeTphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZXtib3JkZXItY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQ6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm46YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSxib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGV7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsYm9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXIubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWIsYm9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXIubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci1mb2N1cy1yaW5ne2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzksMTA4LDAsLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItZm9jdXMtcmluZ3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC4yKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci5tYXQtd2FybiAubWF0LXNsaWRlci10cmFjay1maWxsLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXIubWF0LXdhcm4gLm1hdC1zbGlkZXItZm9jdXMtcmluZ3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC4yKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlcjpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsYm9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXIubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1maWxsLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci5tYXQtc2xpZGVyLWRpc2FibGVkOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci5tYXQtc2xpZGVyLW1pbi12YWx1ZSAubWF0LXNsaWRlci1mb2N1cy1yaW5ne2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYixib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYixib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykgLm1hdC1zbGlkZXItdGh1bWJ7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjMpO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIgLm1hdC1zbGlkZXItdGh1bWIsYm9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXIubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1ie2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYixib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tze2JhY2tncm91bmQtaW1hZ2U6cmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTotbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrc3tiYWNrZ3JvdW5kLWltYWdlOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KX1ib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtcGFuZWx7YmFja2dyb3VuZDojNDI0MjQyfWJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVte2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXSxib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0gLm1hdC1tZW51LXN1Ym1lbnUtaWNvbixib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0gLm1hdC1pY29uLW5vLWNvbG9ye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbi1uby1jb2xvcixib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtc3VibWVudS1pY29ue2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZW51LWl0ZW06aG92ZXI6bm90KFtkaXNhYmxlZF0pLGJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLGJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbZGlzYWJsZWRdKSxib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZDpub3QoW2Rpc2FibGVkXSl7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW17Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9ue2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1saXN0LWJhc2UgLm1hdC1zdWJoZWFkZXJ7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMik7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLGJvZHkuZGFyay1tb2RlIC5tYXQtbGlzdC1vcHRpb246Zm9jdXMsYm9keS5kYXJrLW1vZGUgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixib2R5LmRhcmstbW9kZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzLGJvZHkuZGFyay1tb2RlIC5tYXQtYWN0aW9uLWxpc3QgLm1hdC1saXN0LWl0ZW06aG92ZXIsYm9keS5kYXJrLW1vZGUgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpmb2N1c3tiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA0KX1ib2R5LmRhcmstbW9kZSAubWF0LWxpc3Qtc2luZ2xlLXNlbGVjdGVkLW9wdGlvbixib2R5LmRhcmstbW9kZSAubWF0LWxpc3Qtc2luZ2xlLXNlbGVjdGVkLW9wdGlvbjpob3Zlcixib2R5LmRhcmstbW9kZSAubWF0LWxpc3Qtc2luZ2xlLXNlbGVjdGVkLW9wdGlvbjpmb2N1c3tiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LXBhZ2luYXRvcntiYWNrZ3JvdW5kOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1wYWdpbmF0b3IsYm9keS5kYXJrLW1vZGUgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXJ7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudHtib3JkZXItdG9wOjJweCBzb2xpZCAjZmZmO2JvcmRlci1yaWdodDoycHggc29saWQgI2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXBhZ2luYXRvci1maXJzdCxib2R5LmRhcmstbW9kZSAubWF0LXBhZ2luYXRvci1sYXN0e2JvcmRlci10b3A6MnB4IHNvbGlkICNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1maXJzdCxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1sYXN0e2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LXBhZ2luYXRvci1jb250YWluZXJ7bWluLWhlaWdodDo1NnB4fWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItaGVhZGVye2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItbmF2LWJhcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItaGVhZGVye2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjEyKTtib3JkZXItYm90dG9tOm5vbmV9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItbGFiZWwsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbGlua3tjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVke2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1jb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dPi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1de2JvcmRlci1ib3R0b206bm9uZTtib3JkZXItdG9wOm5vbmV9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1MSwxNDAsMCwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2Vke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTEsMTQwLDAsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtaW5rLWJhcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtaW5rLWJhcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2Vke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjA1LDIxMCwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2Vke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTEsMTQwLDAsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9ue2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmssYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGlua3tjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXtib3JkZXItY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOiNmZmY7b3BhY2l0eTouNH1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2ZmZjtvcGFjaXR5Oi4xMn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2Vke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTEsMTQwLDAsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluayxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGlua3tjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXtib3JkZXItY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6I2ZmZjtvcGFjaXR5Oi40fWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjojZmZmO29wYWNpdHk6LjEyfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIwNSwyMTAsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkLm1hdC10YWItZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9ue2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmssYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGlua3tjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXtib3JkZXItY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOiNmZmY7b3BhY2l0eTouNH1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2ZmZjtvcGFjaXR5Oi4xMn1ib2R5LmRhcmstbW9kZSAubWF0LXNuYWNrLWJhci1jb250YWluZXJ7Y29sb3I6cmdiYSgwLDAsMCwuODcpO2JhY2tncm91bmQ6I2ZhZmFmYTtib3gtc2hhZG93OjBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb257Y29sb3I6aW5oZXJpdH1ib2R5LmRhcmstbW9kZSAubWF0LXRhYmxle2JhY2tncm91bmQ6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYmxlIHRoZWFkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFibGUgdGJvZHksYm9keS5kYXJrLW1vZGUgLm1hdC10YWJsZSB0Zm9vdCxib2R5LmRhcmstbW9kZSBtYXQtaGVhZGVyLXJvdyxib2R5LmRhcmstbW9kZSBtYXQtcm93LGJvZHkuZGFyay1tb2RlIG1hdC1mb290ZXItcm93LGJvZHkuZGFyay1tb2RlIFttYXQtaGVhZGVyLXJvd10sYm9keS5kYXJrLW1vZGUgW21hdC1yb3ddLGJvZHkuZGFyay1tb2RlIFttYXQtZm9vdGVyLXJvd10sYm9keS5kYXJrLW1vZGUgLm1hdC10YWJsZS1zdGlja3l7YmFja2dyb3VuZDppbmhlcml0fWJvZHkuZGFyay1tb2RlIG1hdC1yb3csYm9keS5kYXJrLW1vZGUgbWF0LWhlYWRlci1yb3csYm9keS5kYXJrLW1vZGUgbWF0LWZvb3Rlci1yb3csYm9keS5kYXJrLW1vZGUgdGgubWF0LWhlYWRlci1jZWxsLGJvZHkuZGFyay1tb2RlIHRkLm1hdC1jZWxsLGJvZHkuZGFyay1tb2RlIHRkLm1hdC1mb290ZXItY2VsbHtib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWhlYWRlci1jZWxse2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2VsbCxib2R5LmRhcmstbW9kZSAubWF0LWZvb3Rlci1jZWxse2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1iYWRnZS1jb250ZW50e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZWY2YzAwfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgYm9keS5kYXJrLW1vZGUgLm1hdC1iYWRnZS1jb250ZW50e291dGxpbmU6c29saWQgMXB4O2JvcmRlci1yYWRpdXM6MH1ib2R5LmRhcmstbW9kZSAubWF0LWJhZGdlLWFjY2VudCAubWF0LWJhZGdlLWNvbnRlbnR7YmFja2dyb3VuZDojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1iYWRnZS13YXJuIC5tYXQtYmFkZ2UtY29udGVudHtjb2xvcjojZmZmO2JhY2tncm91bmQ6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWJhZGdlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudHtiYWNrZ3JvdW5kOiM2ZTZlNmU7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJ7Ym94LXNoYWRvdzowcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kOiM0MjQyNDI7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksYm9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzpub25lfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSsubWF0LWJ1dHRvbi10b2dnbGV7Ym9yZGVyLWxlZnQ6c29saWQgMXB4ICM1OTU5NTl9Ym9keS5kYXJrLW1vZGUgW2Rpcj1ydGxdIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSsubWF0LWJ1dHRvbi10b2dnbGV7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmlnaHQ6c29saWQgMXB4ICM1OTU5NTl9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlKy5tYXQtYnV0dG9uLXRvZ2dsZXtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDpub25lO2JvcmRlci10b3A6c29saWQgMXB4ICM1OTU5NTl9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjojMjEyMTIxO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyk7YmFja2dyb3VuZC1jb2xvcjojMDAwfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJke2JhY2tncm91bmQ6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZHtib3JkZXI6c29saWQgMXB4ICM1OTU5NTl9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnR7bGluZS1oZWlnaHQ6NDhweH1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWFycm93e2ZpbGw6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1wcmV2aW91cy1idXR0b257Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlci1kaXZpZGVyOjphZnRlcntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWx7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCxib2R5LmRhcmstbW9kZSAubWF0LWRhdGUtcmFuZ2UtaW5wdXQtc2VwYXJhdG9ye2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1kYXRlLXJhbmdlLWlucHV0LXNlcGFyYXRvcntjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1pbi1wcmV2aWV3e2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjI0KX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyMzksMTA4LDAsLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCxib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjM5LCAxMDgsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDIzOSwgMTA4LCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZT4ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsYm9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQ6IzQ2YTM1ZX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC40KX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZn1ib2R5LmRhcmstbW9kZSAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLGJvZHkuZGFyay1tb2RlIC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC4zKX1AbWVkaWEoaG92ZXI6IGhvdmVyKXtib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzksMTA4LDAsLjMpfX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudHtib3gtc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDIzOSwxMDgsMCwuMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDIzOSwgMTA4LCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMjM5LCAxMDgsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQ+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzksMTA4LDAsLjQpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzksMTA4LDAsLjMpfUBtZWRpYShob3ZlcjogaG92ZXIpe2JvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXI+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC4zKX19Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDI0NCw2Nyw1NCwuMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDI0OSwxNzEsMCwuMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNDQsIDY3LCA1NCwgMC4yKSA1MCUsIHJnYmEoMjQ5LCAxNzEsIDAsIDAuMikgNTAlKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMjQ0LCA2NywgNTQsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZS5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YWZ0ZXJ7YmFja2dyb3VuZDojYThkYWI1fWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZT4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZDojNDZhMzVlfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQ+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsNjcsNTQsLjQpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCksYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsNjcsNTQsLjMpfUBtZWRpYShob3ZlcjogaG92ZXIpe2JvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuMyl9fWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50LXRvdWNoe2JveC1zaGFkb3c6MHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZle2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LWFjY2VudHtjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC13YXJue2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlLXJhbmdlLWlucHV0LWlubmVyW2Rpc2FibGVkXXtjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItY29udHJvbHMgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZXt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3BhZGRpbmc6OHB4fWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItY29udHJvbHMgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZSAubWRjLWljb24tYnV0dG9uX19mb2N1cy1yaW5ne21heC1oZWlnaHQ6NDBweDttYXgtd2lkdGg6NDBweH1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWNvbnRyb2xzIC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UubWRjLWljb24tYnV0dG9uLS1yZWR1Y2VkLXNpemUgLm1kYy1pY29uLWJ1dHRvbl9fcmlwcGxle3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7bWFyZ2luLXRvcDowcHg7bWFyZ2luLWJvdHRvbTowcHg7bWFyZ2luLXJpZ2h0OjBweDttYXJnaW4tbGVmdDowcHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1jb250cm9scyAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNlLm1kYy1pY29uLWJ1dHRvbi0tcmVkdWNlZC1zaXplIC5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmd7bWF4LWhlaWdodDo0MHB4O21heC13aWR0aDo0MHB4fWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItY29udHJvbHMgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LW1kYy1idXR0b24tYmFzZSAubWRjLWljb24tYnV0dG9uX190b3VjaHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2hlaWdodDo0MHB4O2xlZnQ6NTAlO3dpZHRoOjQwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWNvbnRyb2xzIC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2UgLm1hdC1tZGMtYnV0dG9uLXRvdWNoLXRhcmdldHtkaXNwbGF5Om5vbmV9Ym9keS5kYXJrLW1vZGUgLm1hdC1kaXZpZGVye2JvcmRlci10b3AtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGl2aWRlci12ZXJ0aWNhbHtib3JkZXItcmlnaHQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZXhwYW5zaW9uLXBhbmVse2JhY2tncm91bmQ6IzQyNDI0Mjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWFjdGlvbi1yb3d7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSksYm9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSxib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSl7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCl9QG1lZGlhKGhvdmVyOiBub25lKXtib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDojNDI0MjQyfX1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGV7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24sYm9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsYm9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9ue2NvbG9yOmluaGVyaXR9Ym9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVye2hlaWdodDo0OHB4fWJvZHkuZGFyay1tb2RlIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5tYXQtZXhwYW5kZWR7aGVpZ2h0OjY0cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1pY29uLm1hdC1wcmltYXJ5e2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1pY29uLm1hdC1hY2NlbnR7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWljb24ubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWRyYXdlci1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kcmF3ZXJ7YmFja2dyb3VuZC1jb2xvcjojNDI0MjQyO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kcmF3ZXIubWF0LWRyYXdlci1wdXNoe2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LWRyYXdlcjpub3QoLm1hdC1kcmF3ZXItc2lkZSl7Ym94LXNoYWRvdzowcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWRyYXdlci1zaWRle2JvcmRlci1yaWdodDpzb2xpZCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmR7Ym9yZGVyLWxlZnQ6c29saWQgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjEyKTtib3JkZXItcmlnaHQ6bm9uZX1ib2R5LmRhcmstbW9kZSBbZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZXtib3JkZXItbGVmdDpzb2xpZCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMTIpO2JvcmRlci1yaWdodDpub25lfWJvZHkuZGFyay1tb2RlIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5ke2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLXJpZ2h0OnNvbGlkIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93bntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTg5LDE4OSwxODksLjYpfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIuY2RrLWtleWJvYXJkLWZvY3VzZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkXSksYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlclthcmlhLWRpc2FibGVkPWZhbHNlXXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjA0KX1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV17Y3Vyc29yOmRlZmF1bHR9QG1lZGlhKGhvdmVyOiBub25lKXtib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6bm9uZX19Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWx7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0e2JhY2tncm91bmQtY29sb3I6I2VmNmMwMDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIubWF0LWFjY2VudCAubWF0LXN0ZXAtaWNvbntjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIubWF0LWFjY2VudCAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSxib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDA7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLm1hdC13YXJuIC5tYXQtc3RlcC1pY29ue2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLm1hdC13YXJuIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0e2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3J7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtYWN0aXZle2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3J7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCxib2R5LmRhcmstbW9kZSAubWF0LXN0ZXBwZXItdmVydGljYWx7YmFja2dyb3VuZC1jb2xvcjojNDI0MjQyfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmV7Ym9yZGVyLWxlZnQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwcGVyLWhvcml6b250YWwtbGluZXtib3JkZXItdG9wLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXJ7aGVpZ2h0OjcycHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXIsYm9keS5kYXJrLW1vZGUgLm1hdC12ZXJ0aWNhbC1zdGVwcGVyLWhlYWRlcntwYWRkaW5nOjI0cHggMjRweH1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3Jle3RvcDotMTZweDtib3R0b206LTE2cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmV7dG9wOjM2cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5le3RvcDozNnB4fWJvZHkuZGFyay1tb2RlIC5tYXQtc29ydC1oZWFkZXItYXJyb3d7Y29sb3I6I2M2YzZjNn1ib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXJ7YmFja2dyb3VuZDojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5e2JhY2tncm91bmQ6I2VmNmMwMDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhci5tYXQtYWNjZW50e2JhY2tncm91bmQ6I2VmNmMwMDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhci5tYXQtd2FybntiYWNrZ3JvdW5kOiNmNDQzMzY7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9Ym9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsYm9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LGJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6aW5oZXJpdH1ib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50e2NhcmV0LWNvbG9yOmN1cnJlbnRDb2xvcn1ib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXItbXVsdGlwbGUtcm93c3ttaW4taGVpZ2h0OjY0cHh9Ym9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyLXJvdyxib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXItc2luZ2xlLXJvd3toZWlnaHQ6NjRweH1AbWVkaWEobWF4LXdpZHRoOiA1OTlweCl7Ym9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyLW11bHRpcGxlLXJvd3N7bWluLWhlaWdodDo1NnB4fWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhci1yb3csYm9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyLXNpbmdsZS1yb3d7aGVpZ2h0OjU2cHh9fWJvZHkuZGFyay1tb2RlIC5tYXQtdHJlZXtiYWNrZ3JvdW5kOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC10cmVlLW5vZGUsYm9keS5kYXJrLW1vZGUgLm1hdC1uZXN0ZWQtdHJlZS1ub2Rle2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10cmVlLW5vZGV7bWluLWhlaWdodDo0OHB4fQo8L3N0eWxlPgoKPHN0eWxlPgogIGh0bWwsCiAgYm9keSB7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiAwOwogICAgaGVpZ2h0OiAxMDAlOwogICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjsKICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpOwoKICAgIC8qIExlZ2FjeSBtZWNoYW5pc20gdG8gYXZvaWQgaXNzdWVzIHdpdGggc3VicGl4ZWwgYW50aS1hbGlhc2luZyBvbiBtYWNPUy4KICAgICAqCiAgICAgKiBJbiB0aGUgcGFzdCBbMV0sIG1hY09TIHN1YnBpeGVsIEFBIGNhdXNlZCBleGNlc3NpdmUgYm9sZGluZyBmb3IgbGlnaHQtb24tZGFyayB0ZXh0OyB0aGlzIHJ1bGUKICAgICAqIGF2b2lkcyB0aGF0IGJ5IHJlcXVlc3Rpbmcgbm9uLXN1YnBpeGVsIEFBIGFsd2F5cywgcmF0aGVyIHRoYW4gdGhlIGRlZmF1bHQgYmVoYXZpb3IsIHdoaWNoIGlzCiAgICAgKiB0byB1c2Ugc3VicGl4ZWwgQUEgd2hlbiBhdmFpbGFibGUuIFRoZSBvcmlnaW5hbCBpc3N1ZSB3YXMgImZpeGVkIiBieSByZW1vdmluZyBzdWJwaXhlbCBBQSBpbgogICAgICogbWFjT1MgMTQgKE1vamF2ZSksIGJ1dCBmb3IgbGVnYWN5IHJlYXNvbnMgdGhleSBwcmVzZXJ2ZWQgdGhlIGJvbGRpbmcgZWZmZWN0IGFzIGFuIG9wdGlvbi4KICAgICAqIENocm9tZSB0aGVuIGluIHR1cm4gdXBkYXRlZCBpdHMgZm9udCByZW5kZXJpbmcgdG8gYXBwbHkgdGhhdCBib2xkaW5nIGVmZmVjdCBbMl0sIHdoaWNoIG1lYW5zCiAgICAgKiB0aGF0IGV2ZW4gdGhvdWdoIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgZG9jcyBbM10gc3VnZ2VzdCB0aGF0IHNldHRpbmcgYGFudGlhbGlhc2VkYAogICAgICogd291bGQgaGF2ZSBubyBlZmZlY3QgZm9yIHJlY2VudCB2ZXJzaW9ucyBvZiBtYWNPUywgaXQgc3RpbGwgaXMgbmVlZGVkIHRvIGF2b2lkIHRoZSBib2xkaW5nLgogICAgICoKICAgICAqIFsxXTogaHR0cDovL3d3dy5saWdodGVycmEuY29tL2FydGljbGVzL21hY29zeHRleHRhYWJ1Zy8KICAgICAqIFsyXTogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9ODU4ODYxCiAgICAgKiBbM106IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9mb250LXNtb290aAogICAgICoKICAgICAqLwoKICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogIH0KICBub3NjcmlwdCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbjogMCBhdXRvOwogICAgbWF4LXdpZHRoOiA2MDBweDsKICAgIHBhZGRpbmc6IDEwcHg7CiAgfQo8L3N0eWxlPgoKPC9oZWFkPjxib2R5Pjxub3NjcmlwdD4KICAgIDxoMT5UZW5zb3JCb2FyZCByZXF1aXJlcyBKYXZhU2NyaXB0PC9oMT4KICAgIDxwPlBsZWFzZSBlbmFibGUgSmF2YVNjcmlwdCBhbmQgcmVsb2FkIHRoaXMgcGFnZS48L3A+CiAgPC9ub3NjcmlwdD48dGItd2ViYXBwPjwvdGItd2ViYXBwPjxzY3JpcHQgc3JjPSJpbmRleC5qcz9fZmlsZV9oYXNoPTVjYWEwMmY1Ij48L3NjcmlwdD48L2JvZHk+PC9odG1sPg==", + "ok": true, + "headers": [ + [ + "content-length", + "533863" + ], + [ + "content-type", + "text/html; charset=utf-8" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/font-roboto/oMMgfZMQthOryQo9n22dcuvvDin1pK8aKteLpeZ5c0A.woff2": { + "data": "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", + "ok": true, + "headers": [ + [ + "content-length", + "10771" + ], + [ + "content-type", + "font/woff2" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/index.js?_file_hash=5caa02f5": { + "data": "dmFyIENMT1NVUkVfTk9fREVQUyA9IHRydWU7CndpbmRvdy5wb2x5bWVyU2tpcExvYWRpbmdGb250Um9ib3RvID0gdHJ1ZTsKLy8gQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLy8KLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLy8gICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAovLwovLyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgohZnVuY3Rpb24oKXt2YXIgYT17fSxiPXt9LGM9e307IWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhhKXtpZigibnVtYmVyIj09dHlwZW9mIGEpcmV0dXJuIGE7dmFyIGI9e307Zm9yKHZhciBjIGluIGEpYltjXT1hW2NdO3JldHVybiBifWZ1bmN0aW9uIGQoKXt0aGlzLl9kZWxheT0wLHRoaXMuX2VuZERlbGF5PTAsdGhpcy5fZmlsbD0ibm9uZSIsdGhpcy5faXRlcmF0aW9uU3RhcnQ9MCx0aGlzLl9pdGVyYXRpb25zPTEsdGhpcy5fZHVyYXRpb249MCx0aGlzLl9wbGF5YmFja1JhdGU9MSx0aGlzLl9kaXJlY3Rpb249Im5vcm1hbCIsdGhpcy5fZWFzaW5nPSJsaW5lYXIiLHRoaXMuX2Vhc2luZ0Z1bmN0aW9uPXh9ZnVuY3Rpb24gZSgpe3JldHVybiBhLmlzRGVwcmVjYXRlZCgiSW52YWxpZCB0aW1pbmcgaW5wdXRzIiwiMjAxNi0wMy0wMiIsIlR5cGVFcnJvciBleGNlcHRpb25zIHdpbGwgYmUgdGhyb3duIGluc3RlYWQuIiwhMCl9ZnVuY3Rpb24gZihiLGMsZSl7dmFyIGY9bmV3IGQ7cmV0dXJuIGMmJihmLmZpbGw9ImJvdGgiLGYuZHVyYXRpb249ImF1dG8iKSwibnVtYmVyIiE9dHlwZW9mIGJ8fGlzTmFOKGIpP3ZvaWQgMCE9PWImJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGIpLmZvckVhY2goZnVuY3Rpb24oYyl7aWYoImF1dG8iIT1iW2NdKXtpZigoIm51bWJlciI9PXR5cGVvZiBmW2NdfHwiZHVyYXRpb24iPT1jKSYmKCJudW1iZXIiIT10eXBlb2YgYltjXXx8aXNOYU4oYltjXSkpKXJldHVybjtpZigiZmlsbCI9PWMmJi0xPT12LmluZGV4T2YoYltjXSkpcmV0dXJuO2lmKCJkaXJlY3Rpb24iPT1jJiYtMT09dy5pbmRleE9mKGJbY10pKXJldHVybjtpZigicGxheWJhY2tSYXRlIj09YyYmMSE9PWJbY10mJmEuaXNEZXByZWNhdGVkKCJBbmltYXRpb25FZmZlY3RUaW1pbmcucGxheWJhY2tSYXRlIiwiMjAxNC0xMS0yOCIsIlVzZSBBbmltYXRpb24ucGxheWJhY2tSYXRlIGluc3RlYWQuIikpcmV0dXJuO2ZbY109YltjXX19KTpmLmR1cmF0aW9uPWIsZn1mdW5jdGlvbiBnKGEpe3JldHVybiJudW1iZXIiPT10eXBlb2YgYSYmKGE9aXNOYU4oYSk/e2R1cmF0aW9uOjB9OntkdXJhdGlvbjphfSksYX1mdW5jdGlvbiBoKGIsYyl7cmV0dXJuIGI9YS5udW1lcmljVGltaW5nVG9PYmplY3QoYiksZihiLGMpfWZ1bmN0aW9uIGkoYSxiLGMsZCl7cmV0dXJuIGE8MHx8YT4xfHxjPDB8fGM+MT94OmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGYoYSxiLGMpe3JldHVybiAzKmEqKDEtYykqKDEtYykqYyszKmIqKDEtYykqYypjK2MqYypjfWlmKGU8PTApe3ZhciBnPTA7cmV0dXJuIGE+MD9nPWIvYTohYiYmYz4wJiYoZz1kL2MpLGcqZX1pZihlPj0xKXt2YXIgaD0wO3JldHVybiBjPDE/aD0oZC0xKS8oYy0xKToxPT1jJiZhPDEmJihoPShiLTEpLyhhLTEpKSwxK2gqKGUtMSl9Zm9yKHZhciBpPTAsaj0xO2k8ajspe3ZhciBrPShpK2opLzIsbD1mKGEsYyxrKTtpZihNYXRoLmFicyhlLWwpPDFlLTUpcmV0dXJuIGYoYixkLGspO2w8ZT9pPWs6aj1rfXJldHVybiBmKGIsZCxrKX19ZnVuY3Rpb24gaihhLGIpe3JldHVybiBmdW5jdGlvbihjKXtpZihjPj0xKXJldHVybiAxO3ZhciBkPTEvYTtyZXR1cm4oYys9YipkKS1jJWR9fWZ1bmN0aW9uIGsoYSl7Q3x8KEM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUpLEMuYW5pbWF0aW9uVGltaW5nRnVuY3Rpb249IiIsQy5hbmltYXRpb25UaW1pbmdGdW5jdGlvbj1hO3ZhciBiPUMuYW5pbWF0aW9uVGltaW5nRnVuY3Rpb247aWYoIiI9PWImJmUoKSl0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgZWFzaW5nIik7cmV0dXJuIGJ9ZnVuY3Rpb24gbChhKXtpZigibGluZWFyIj09YSlyZXR1cm4geDt2YXIgYj1FLmV4ZWMoYSk7aWYoYilyZXR1cm4gaS5hcHBseSh0aGlzLGIuc2xpY2UoMSkubWFwKE51bWJlcikpO3ZhciBjPUYuZXhlYyhhKTtpZihjKXJldHVybiBqKE51bWJlcihjWzFdKSxBKTt2YXIgZD1HLmV4ZWMoYSk7cmV0dXJuIGQ/aihOdW1iZXIoZFsxXSkse3N0YXJ0OnksbWlkZGxlOnosZW5kOkF9W2RbMl1dKTpCW2FdfHx4fWZ1bmN0aW9uIG0oYSl7cmV0dXJuIE1hdGguYWJzKG4oYSkvYS5wbGF5YmFja1JhdGUpfWZ1bmN0aW9uIG4oYSl7cmV0dXJuIDA9PT1hLmR1cmF0aW9ufHwwPT09YS5pdGVyYXRpb25zPzA6YS5kdXJhdGlvbiphLml0ZXJhdGlvbnN9ZnVuY3Rpb24gbyhhLGIsYyl7aWYobnVsbD09YilyZXR1cm4gSDt2YXIgZD1jLmRlbGF5K2ErYy5lbmREZWxheTtyZXR1cm4gYjxNYXRoLm1pbihjLmRlbGF5LGQpP0k6Yj49TWF0aC5taW4oYy5kZWxheSthLGQpP0o6S31mdW5jdGlvbiBwKGEsYixjLGQsZSl7c3dpdGNoKGQpe2Nhc2UgSTpyZXR1cm4iYmFja3dhcmRzIj09Ynx8ImJvdGgiPT1iPzA6bnVsbDtjYXNlIEs6cmV0dXJuIGMtZTtjYXNlIEo6cmV0dXJuImZvcndhcmRzIj09Ynx8ImJvdGgiPT1iP2E6bnVsbDtjYXNlIEg6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIHEoYSxiLGMsZCxlKXt2YXIgZj1lO3JldHVybiAwPT09YT9iIT09SSYmKGYrPWMpOmYrPWQvYSxmfWZ1bmN0aW9uIHIoYSxiLGMsZCxlLGYpe3ZhciBnPWE9PT0xLzA/YiUxOmElMTtyZXR1cm4gMCE9PWd8fGMhPT1KfHwwPT09ZHx8MD09PWUmJjAhPT1mfHwoZz0xKSxnfWZ1bmN0aW9uIHMoYSxiLGMsZCl7cmV0dXJuIGE9PT1KJiZiPT09MS8wPzEvMDoxPT09Yz9NYXRoLmZsb29yKGQpLTE6TWF0aC5mbG9vcihkKX1mdW5jdGlvbiB0KGEsYixjKXt2YXIgZD1hO2lmKCJub3JtYWwiIT09YSYmInJldmVyc2UiIT09YSl7dmFyIGU9YjsiYWx0ZXJuYXRlLXJldmVyc2UiPT09YSYmKGUrPTEpLGQ9Im5vcm1hbCIsZSE9PTEvMCYmZSUyIT0wJiYoZD0icmV2ZXJzZSIpfXJldHVybiJub3JtYWwiPT09ZD9jOjEtY31mdW5jdGlvbiB1KGEsYixjKXt2YXIgZD1vKGEsYixjKSxlPXAoYSxjLmZpbGwsYixkLGMuZGVsYXkpO2lmKG51bGw9PT1lKXJldHVybiBudWxsO3ZhciBmPXEoYy5kdXJhdGlvbixkLGMuaXRlcmF0aW9ucyxlLGMuaXRlcmF0aW9uU3RhcnQpLGc9cihmLGMuaXRlcmF0aW9uU3RhcnQsZCxjLml0ZXJhdGlvbnMsZSxjLmR1cmF0aW9uKSxoPXMoZCxjLml0ZXJhdGlvbnMsZyxmKSxpPXQoYy5kaXJlY3Rpb24saCxnKTtyZXR1cm4gYy5fZWFzaW5nRnVuY3Rpb24oaSl9dmFyIHY9ImJhY2t3YXJkc3xmb3J3YXJkc3xib3RofG5vbmUiLnNwbGl0KCJ8Iiksdz0icmV2ZXJzZXxhbHRlcm5hdGV8YWx0ZXJuYXRlLXJldmVyc2UiLnNwbGl0KCJ8IikseD1mdW5jdGlvbihhKXtyZXR1cm4gYX07ZC5wcm90b3R5cGU9e19zZXRNZW1iZXI6ZnVuY3Rpb24oYixjKXt0aGlzWyJfIitiXT1jLHRoaXMuX2VmZmVjdCYmKHRoaXMuX2VmZmVjdC5fdGltaW5nSW5wdXRbYl09Yyx0aGlzLl9lZmZlY3QuX3RpbWluZz1hLm5vcm1hbGl6ZVRpbWluZ0lucHV0KHRoaXMuX2VmZmVjdC5fdGltaW5nSW5wdXQpLHRoaXMuX2VmZmVjdC5hY3RpdmVEdXJhdGlvbj1hLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uKHRoaXMuX2VmZmVjdC5fdGltaW5nKSx0aGlzLl9lZmZlY3QuX2FuaW1hdGlvbiYmdGhpcy5fZWZmZWN0Ll9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCkpfSxnZXQgcGxheWJhY2tSYXRlKCl7cmV0dXJuIHRoaXMuX3BsYXliYWNrUmF0ZX0sc2V0IGRlbGF5KGEpe3RoaXMuX3NldE1lbWJlcigiZGVsYXkiLGEpfSxnZXQgZGVsYXkoKXtyZXR1cm4gdGhpcy5fZGVsYXl9LHNldCBlbmREZWxheShhKXt0aGlzLl9zZXRNZW1iZXIoImVuZERlbGF5IixhKX0sZ2V0IGVuZERlbGF5KCl7cmV0dXJuIHRoaXMuX2VuZERlbGF5fSxzZXQgZmlsbChhKXt0aGlzLl9zZXRNZW1iZXIoImZpbGwiLGEpfSxnZXQgZmlsbCgpe3JldHVybiB0aGlzLl9maWxsfSxzZXQgaXRlcmF0aW9uU3RhcnQoYSl7aWYoKGlzTmFOKGEpfHxhPDApJiZlKCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiaXRlcmF0aW9uU3RhcnQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIsIHJlY2VpdmVkOiAiK2EpO3RoaXMuX3NldE1lbWJlcigiaXRlcmF0aW9uU3RhcnQiLGEpfSxnZXQgaXRlcmF0aW9uU3RhcnQoKXtyZXR1cm4gdGhpcy5faXRlcmF0aW9uU3RhcnR9LHNldCBkdXJhdGlvbihhKXtpZigiYXV0byIhPWEmJihpc05hTihhKXx8YTwwKSYmZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoImR1cmF0aW9uIG11c3QgYmUgbm9uLW5lZ2F0aXZlIG9yIGF1dG8sIHJlY2VpdmVkOiAiK2EpO3RoaXMuX3NldE1lbWJlcigiZHVyYXRpb24iLGEpfSxnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5fZHVyYXRpb259LHNldCBkaXJlY3Rpb24oYSl7dGhpcy5fc2V0TWVtYmVyKCJkaXJlY3Rpb24iLGEpfSxnZXQgZGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuX2RpcmVjdGlvbn0sc2V0IGVhc2luZyhhKXt0aGlzLl9lYXNpbmdGdW5jdGlvbj1sKGsoYSkpLHRoaXMuX3NldE1lbWJlcigiZWFzaW5nIixhKX0sZ2V0IGVhc2luZygpe3JldHVybiB0aGlzLl9lYXNpbmd9LHNldCBpdGVyYXRpb25zKGEpe2lmKChpc05hTihhKXx8YTwwKSYmZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoIml0ZXJhdGlvbnMgbXVzdCBiZSBub24tbmVnYXRpdmUsIHJlY2VpdmVkOiAiK2EpO3RoaXMuX3NldE1lbWJlcigiaXRlcmF0aW9ucyIsYSl9LGdldCBpdGVyYXRpb25zKCl7cmV0dXJuIHRoaXMuX2l0ZXJhdGlvbnN9fTt2YXIgeT0xLHo9LjUsQT0wLEI9e2Vhc2U6aSguMjUsLjEsLjI1LDEpLCJlYXNlLWluIjppKC40MiwwLDEsMSksImVhc2Utb3V0IjppKDAsMCwuNTgsMSksImVhc2UtaW4tb3V0IjppKC40MiwwLC41OCwxKSwic3RlcC1zdGFydCI6aigxLHkpLCJzdGVwLW1pZGRsZSI6aigxLHopLCJzdGVwLWVuZCI6aigxLEEpfSxDPW51bGwsRD0iXFxzKigtP1xcZCtcXC4/XFxkKnwtP1xcLlxcZCspXFxzKiIsRT1uZXcgUmVnRXhwKCJjdWJpYy1iZXppZXJcXCgiK0QrIiwiK0QrIiwiK0QrIiwiK0QrIlxcKSIpLEY9L3N0ZXBzXChccyooXGQrKVxzKlwpLyxHPS9zdGVwc1woXHMqKFxkKylccyosXHMqKHN0YXJ0fG1pZGRsZXxlbmQpXHMqXCkvLEg9MCxJPTEsSj0yLEs9MzthLmNsb25lVGltaW5nSW5wdXQ9YyxhLm1ha2VUaW1pbmc9ZixhLm51bWVyaWNUaW1pbmdUb09iamVjdD1nLGEubm9ybWFsaXplVGltaW5nSW5wdXQ9aCxhLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uPW0sYS5jYWxjdWxhdGVJdGVyYXRpb25Qcm9ncmVzcz11LGEuY2FsY3VsYXRlUGhhc2U9byxhLm5vcm1hbGl6ZUVhc2luZz1rLGEucGFyc2VFYXNpbmdGdW5jdGlvbj1sfShhKSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSxiKXtyZXR1cm4gYSBpbiBrP2tbYV1bYl18fGI6Yn1mdW5jdGlvbiBkKGEpe3JldHVybiJkaXNwbGF5Ij09PWF8fDA9PT1hLmxhc3RJbmRleE9mKCJhbmltYXRpb24iLDApfHwwPT09YS5sYXN0SW5kZXhPZigidHJhbnNpdGlvbiIsMCl9ZnVuY3Rpb24gZShhLGIsZSl7aWYoIWQoYSkpe3ZhciBmPWhbYV07aWYoZil7aS5zdHlsZVthXT1iO2Zvcih2YXIgZyBpbiBmKXt2YXIgaj1mW2ddLGs9aS5zdHlsZVtqXTtlW2pdPWMoaixrKX19ZWxzZSBlW2FdPWMoYSxiKX19ZnVuY3Rpb24gZihhKXt2YXIgYj1bXTtmb3IodmFyIGMgaW4gYSlpZighKGMgaW5bImVhc2luZyIsIm9mZnNldCIsImNvbXBvc2l0ZSJdKSl7dmFyIGQ9YVtjXTtBcnJheS5pc0FycmF5KGQpfHwoZD1bZF0pO2Zvcih2YXIgZSxmPWQubGVuZ3RoLGc9MDtnPGY7ZysrKWU9e30sZS5vZmZzZXQ9Im9mZnNldCJpbiBhP2Eub2Zmc2V0OjE9PWY/MTpnLyhmLTEpLCJlYXNpbmciaW4gYSYmKGUuZWFzaW5nPWEuZWFzaW5nKSwiY29tcG9zaXRlImluIGEmJihlLmNvbXBvc2l0ZT1hLmNvbXBvc2l0ZSksZVtjXT1kW2ddLGIucHVzaChlKX1yZXR1cm4gYi5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEub2Zmc2V0LWIub2Zmc2V0fSksYn1mdW5jdGlvbiBnKGIpe2Z1bmN0aW9uIGMoKXt2YXIgYT1kLmxlbmd0aDtudWxsPT1kW2EtMV0ub2Zmc2V0JiYoZFthLTFdLm9mZnNldD0xKSxhPjEmJm51bGw9PWRbMF0ub2Zmc2V0JiYoZFswXS5vZmZzZXQ9MCk7Zm9yKHZhciBiPTAsYz1kWzBdLm9mZnNldCxlPTE7ZTxhO2UrKyl7dmFyIGY9ZFtlXS5vZmZzZXQ7aWYobnVsbCE9Zil7Zm9yKHZhciBnPTE7ZzxlLWI7ZysrKWRbYitnXS5vZmZzZXQ9YysoZi1jKSpnLyhlLWIpO2I9ZSxjPWZ9fX1pZihudWxsPT1iKXJldHVybltdO3dpbmRvdy5TeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmQXJyYXkucHJvdG90eXBlLmZyb20mJmJbU3ltYm9sLml0ZXJhdG9yXSYmKGI9QXJyYXkuZnJvbShiKSksQXJyYXkuaXNBcnJheShiKXx8KGI9ZihiKSk7Zm9yKHZhciBkPWIubWFwKGZ1bmN0aW9uKGIpe3ZhciBjPXt9O2Zvcih2YXIgZCBpbiBiKXt2YXIgZj1iW2RdO2lmKCJvZmZzZXQiPT1kKXtpZihudWxsIT1mKXtpZihmPU51bWJlcihmKSwhaXNGaW5pdGUoZikpdGhyb3cgbmV3IFR5cGVFcnJvcigiS2V5ZnJhbWUgb2Zmc2V0cyBtdXN0IGJlIG51bWJlcnMuIik7aWYoZjwwfHxmPjEpdGhyb3cgbmV3IFR5cGVFcnJvcigiS2V5ZnJhbWUgb2Zmc2V0cyBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMS4iKX19ZWxzZSBpZigiY29tcG9zaXRlIj09ZCl7aWYoImFkZCI9PWZ8fCJhY2N1bXVsYXRlIj09Zil0aHJvd3t0eXBlOkRPTUV4Y2VwdGlvbi5OT1RfU1VQUE9SVEVEX0VSUixuYW1lOiJOb3RTdXBwb3J0ZWRFcnJvciIsbWVzc2FnZToiYWRkIGNvbXBvc2l0aW5nIGlzIG5vdCBzdXBwb3J0ZWQifTtpZigicmVwbGFjZSIhPWYpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBjb21wb3NpdGUgbW9kZSAiK2YrIi4iKX1lbHNlIGY9ImVhc2luZyI9PWQ/YS5ub3JtYWxpemVFYXNpbmcoZik6IiIrZjtlKGQsZixjKX1yZXR1cm4gdm9pZCAwPT1jLm9mZnNldCYmKGMub2Zmc2V0PW51bGwpLHZvaWQgMD09Yy5lYXNpbmcmJihjLmVhc2luZz0ibGluZWFyIiksY30pLGc9ITAsaD0tMS8wLGk9MDtpPGQubGVuZ3RoO2krKyl7dmFyIGo9ZFtpXS5vZmZzZXQ7aWYobnVsbCE9ail7aWYoajxoKXRocm93IG5ldyBUeXBlRXJyb3IoIktleWZyYW1lcyBhcmUgbm90IGxvb3NlbHkgc29ydGVkIGJ5IG9mZnNldC4gU29ydCBvciBzcGVjaWZ5IG9mZnNldHMuIik7aD1qfWVsc2UgZz0hMX1yZXR1cm4gZD1kLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5vZmZzZXQ+PTAmJmEub2Zmc2V0PD0xfSksZ3x8YygpLGR9dmFyIGg9e2JhY2tncm91bmQ6WyJiYWNrZ3JvdW5kSW1hZ2UiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJiYWNrZ3JvdW5kU2l6ZSIsImJhY2tncm91bmRSZXBlYXQiLCJiYWNrZ3JvdW5kQXR0YWNobWVudCIsImJhY2tncm91bmRPcmlnaW4iLCJiYWNrZ3JvdW5kQ2xpcCIsImJhY2tncm91bmRDb2xvciJdLGJvcmRlcjpbImJvcmRlclRvcENvbG9yIiwiYm9yZGVyVG9wU3R5bGUiLCJib3JkZXJUb3BXaWR0aCIsImJvcmRlclJpZ2h0Q29sb3IiLCJib3JkZXJSaWdodFN0eWxlIiwiYm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlckJvdHRvbUNvbG9yIiwiYm9yZGVyQm90dG9tU3R5bGUiLCJib3JkZXJCb3R0b21XaWR0aCIsImJvcmRlckxlZnRDb2xvciIsImJvcmRlckxlZnRTdHlsZSIsImJvcmRlckxlZnRXaWR0aCJdLGJvcmRlckJvdHRvbTpbImJvcmRlckJvdHRvbVdpZHRoIiwiYm9yZGVyQm90dG9tU3R5bGUiLCJib3JkZXJCb3R0b21Db2xvciJdLGJvcmRlckNvbG9yOlsiYm9yZGVyVG9wQ29sb3IiLCJib3JkZXJSaWdodENvbG9yIiwiYm9yZGVyQm90dG9tQ29sb3IiLCJib3JkZXJMZWZ0Q29sb3IiXSxib3JkZXJMZWZ0OlsiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyTGVmdFN0eWxlIiwiYm9yZGVyTGVmdENvbG9yIl0sYm9yZGVyUmFkaXVzOlsiYm9yZGVyVG9wTGVmdFJhZGl1cyIsImJvcmRlclRvcFJpZ2h0UmFkaXVzIiwiYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMiLCJib3JkZXJCb3R0b21MZWZ0UmFkaXVzIl0sYm9yZGVyUmlnaHQ6WyJib3JkZXJSaWdodFdpZHRoIiwiYm9yZGVyUmlnaHRTdHlsZSIsImJvcmRlclJpZ2h0Q29sb3IiXSxib3JkZXJUb3A6WyJib3JkZXJUb3BXaWR0aCIsImJvcmRlclRvcFN0eWxlIiwiYm9yZGVyVG9wQ29sb3IiXSxib3JkZXJXaWR0aDpbImJvcmRlclRvcFdpZHRoIiwiYm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlckJvdHRvbVdpZHRoIiwiYm9yZGVyTGVmdFdpZHRoIl0sZmxleDpbImZsZXhHcm93IiwiZmxleFNocmluayIsImZsZXhCYXNpcyJdLGZvbnQ6WyJmb250RmFtaWx5IiwiZm9udFNpemUiLCJmb250U3R5bGUiLCJmb250VmFyaWFudCIsImZvbnRXZWlnaHQiLCJsaW5lSGVpZ2h0Il0sbWFyZ2luOlsibWFyZ2luVG9wIiwibWFyZ2luUmlnaHQiLCJtYXJnaW5Cb3R0b20iLCJtYXJnaW5MZWZ0Il0sb3V0bGluZTpbIm91dGxpbmVDb2xvciIsIm91dGxpbmVTdHlsZSIsIm91dGxpbmVXaWR0aCJdLHBhZGRpbmc6WyJwYWRkaW5nVG9wIiwicGFkZGluZ1JpZ2h0IiwicGFkZGluZ0JvdHRvbSIsInBhZGRpbmdMZWZ0Il19LGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiZGl2Iiksaj17dGhpbjoiMXB4IixtZWRpdW06IjNweCIsdGhpY2s6IjVweCJ9LGs9e2JvcmRlckJvdHRvbVdpZHRoOmosYm9yZGVyTGVmdFdpZHRoOmosYm9yZGVyUmlnaHRXaWR0aDpqLGJvcmRlclRvcFdpZHRoOmosZm9udFNpemU6eyJ4eC1zbWFsbCI6IjYwJSIsIngtc21hbGwiOiI3NSUiLHNtYWxsOiI4OSUiLG1lZGl1bToiMTAwJSIsbGFyZ2U6IjEyMCUiLCJ4LWxhcmdlIjoiMTUwJSIsInh4LWxhcmdlIjoiMjAwJSJ9LGZvbnRXZWlnaHQ6e25vcm1hbDoiNDAwIixib2xkOiI3MDAifSxvdXRsaW5lV2lkdGg6aix0ZXh0U2hhZG93Ontub25lOiIwcHggMHB4IDBweCB0cmFuc3BhcmVudCJ9LGJveFNoYWRvdzp7bm9uZToiMHB4IDBweCAwcHggMHB4IHRyYW5zcGFyZW50In19O2EuY29udmVydFRvQXJyYXlGb3JtPWYsYS5ub3JtYWxpemVLZXlmcmFtZXM9Z30oYSksZnVuY3Rpb24oYSl7dmFyIGI9e307YS5pc0RlcHJlY2F0ZWQ9ZnVuY3Rpb24oYSxjLGQsZSl7dmFyIGY9ZT8iYXJlIjoiaXMiLGc9bmV3IERhdGUsaD1uZXcgRGF0ZShjKTtyZXR1cm4gaC5zZXRNb250aChoLmdldE1vbnRoKCkrMyksIShnPGgmJihhIGluIGJ8fGNvbnNvbGUud2FybigiV2ViIEFuaW1hdGlvbnM6ICIrYSsiICIrZisiIGRlcHJlY2F0ZWQgYW5kIHdpbGwgc3RvcCB3b3JraW5nIG9uICIraC50b0RhdGVTdHJpbmcoKSsiLiAiK2QpLGJbYV09ITAsMSkpfSxhLmRlcHJlY2F0ZWQ9ZnVuY3Rpb24oYixjLGQsZSl7dmFyIGY9ZT8iYXJlIjoiaXMiO2lmKGEuaXNEZXByZWNhdGVkKGIsYyxkLGUpKXRocm93IG5ldyBFcnJvcihiKyIgIitmKyIgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gIitkKX19KGEpLGZ1bmN0aW9uKCl7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFuaW1hdGUpe3ZhciBjPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hbmltYXRlKFtdLDApLGQ9ITA7aWYoYyYmKGQ9ITEsInBsYXl8Y3VycmVudFRpbWV8cGF1c2V8cmV2ZXJzZXxwbGF5YmFja1JhdGV8Y2FuY2VsfGZpbmlzaHxzdGFydFRpbWV8cGxheVN0YXRlIi5zcGxpdCgifCIpLmZvckVhY2goZnVuY3Rpb24oYSl7dm9pZCAwPT09Y1thXSYmKGQ9ITApfSkpLCFkKXJldHVybn0hZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYSl7Zm9yKHZhciBiPXt9LGM9MDtjPGEubGVuZ3RoO2MrKylmb3IodmFyIGQgaW4gYVtjXSlpZigib2Zmc2V0IiE9ZCYmImVhc2luZyIhPWQmJiJjb21wb3NpdGUiIT1kKXt2YXIgZT17b2Zmc2V0OmFbY10ub2Zmc2V0LGVhc2luZzphW2NdLmVhc2luZyx2YWx1ZTphW2NdW2RdfTtiW2RdPWJbZF18fFtdLGJbZF0ucHVzaChlKX1mb3IodmFyIGYgaW4gYil7dmFyIGc9YltmXTtpZigwIT1nWzBdLm9mZnNldHx8MSE9Z1tnLmxlbmd0aC0xXS5vZmZzZXQpdGhyb3d7dHlwZTpET01FeGNlcHRpb24uTk9UX1NVUFBPUlRFRF9FUlIsbmFtZToiTm90U3VwcG9ydGVkRXJyb3IiLG1lc3NhZ2U6IlBhcnRpYWwga2V5ZnJhbWVzIGFyZSBub3Qgc3VwcG9ydGVkIn19cmV0dXJuIGJ9ZnVuY3Rpb24gZShjKXt2YXIgZD1bXTtmb3IodmFyIGUgaW4gYylmb3IodmFyIGY9Y1tlXSxnPTA7ZzxmLmxlbmd0aC0xO2crKyl7dmFyIGg9ZyxpPWcrMSxqPWZbaF0ub2Zmc2V0LGs9ZltpXS5vZmZzZXQsbD1qLG09azswPT1nJiYobD0tMS8wLDA9PWsmJihpPWgpKSxnPT1mLmxlbmd0aC0yJiYobT0xLzAsMT09aiYmKGg9aSkpLGQucHVzaCh7YXBwbHlGcm9tOmwsYXBwbHlUbzptLHN0YXJ0T2Zmc2V0OmZbaF0ub2Zmc2V0LGVuZE9mZnNldDpmW2ldLm9mZnNldCxlYXNpbmdGdW5jdGlvbjphLnBhcnNlRWFzaW5nRnVuY3Rpb24oZltoXS5lYXNpbmcpLHByb3BlcnR5OmUsaW50ZXJwb2xhdGlvbjpiLnByb3BlcnR5SW50ZXJwb2xhdGlvbihlLGZbaF0udmFsdWUsZltpXS52YWx1ZSl9KX1yZXR1cm4gZC5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuc3RhcnRPZmZzZXQtYi5zdGFydE9mZnNldH0pLGR9Yi5jb252ZXJ0RWZmZWN0SW5wdXQ9ZnVuY3Rpb24oYyl7dmFyIGY9YS5ub3JtYWxpemVLZXlmcmFtZXMoYyksZz1kKGYpLGg9ZShnKTtyZXR1cm4gZnVuY3Rpb24oYSxjKXtpZihudWxsIT1jKWguZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBjPj1hLmFwcGx5RnJvbSYmYzxhLmFwcGx5VG99KS5mb3JFYWNoKGZ1bmN0aW9uKGQpe3ZhciBlPWMtZC5zdGFydE9mZnNldCxmPWQuZW5kT2Zmc2V0LWQuc3RhcnRPZmZzZXQsZz0wPT1mPzA6ZC5lYXNpbmdGdW5jdGlvbihlL2YpO2IuYXBwbHkoYSxkLnByb3BlcnR5LGQuaW50ZXJwb2xhdGlvbihnKSl9KTtlbHNlIGZvcih2YXIgZCBpbiBnKSJvZmZzZXQiIT1kJiYiZWFzaW5nIiE9ZCYmImNvbXBvc2l0ZSIhPWQmJmIuY2xlYXIoYSxkKX19fShhLGIpLGZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGEpe3JldHVybiBhLnJlcGxhY2UoLy0oLikvZyxmdW5jdGlvbihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9KX1mdW5jdGlvbiBlKGEsYixjKXtoW2NdPWhbY118fFtdLGhbY10ucHVzaChbYSxiXSl9ZnVuY3Rpb24gZihhLGIsYyl7Zm9yKHZhciBmPTA7ZjxjLmxlbmd0aDtmKyspe2UoYSxiLGQoY1tmXSkpfX1mdW5jdGlvbiBnKGMsZSxmKXt2YXIgZz1jOy8tLy50ZXN0KGMpJiYhYS5pc0RlcHJlY2F0ZWQoIkh5cGhlbmF0ZWQgcHJvcGVydHkgbmFtZXMiLCIyMDE2LTAzLTIyIiwiVXNlIGNhbWVsQ2FzZSBpbnN0ZWFkLiIsITApJiYoZz1kKGMpKSwiaW5pdGlhbCIhPWUmJiJpbml0aWFsIiE9Znx8KCJpbml0aWFsIj09ZSYmKGU9aVtnXSksImluaXRpYWwiPT1mJiYoZj1pW2ddKSk7Zm9yKHZhciBqPWU9PWY/W106aFtnXSxrPTA7aiYmazxqLmxlbmd0aDtrKyspe3ZhciBsPWpba11bMF0oZSksbT1qW2tdWzBdKGYpO2lmKHZvaWQgMCE9PWwmJnZvaWQgMCE9PW0pe3ZhciBuPWpba11bMV0obCxtKTtpZihuKXt2YXIgbz1iLkludGVycG9sYXRpb24uYXBwbHkobnVsbCxuKTtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIDA9PWE/ZToxPT1hP2Y6byhhKX19fX1yZXR1cm4gYi5JbnRlcnBvbGF0aW9uKCExLCEwLGZ1bmN0aW9uKGEpe3JldHVybiBhP2Y6ZX0pfXZhciBoPXt9O2IuYWRkUHJvcGVydGllc0hhbmRsZXI9Zjt2YXIgaT17YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYmFja2dyb3VuZFBvc2l0aW9uOiIwJSAwJSIsYm9yZGVyQm90dG9tQ29sb3I6ImN1cnJlbnRDb2xvciIsYm9yZGVyQm90dG9tTGVmdFJhZGl1czoiMHB4Iixib3JkZXJCb3R0b21SaWdodFJhZGl1czoiMHB4Iixib3JkZXJCb3R0b21XaWR0aDoiM3B4Iixib3JkZXJMZWZ0Q29sb3I6ImN1cnJlbnRDb2xvciIsYm9yZGVyTGVmdFdpZHRoOiIzcHgiLGJvcmRlclJpZ2h0Q29sb3I6ImN1cnJlbnRDb2xvciIsYm9yZGVyUmlnaHRXaWR0aDoiM3B4Iixib3JkZXJTcGFjaW5nOiIycHgiLGJvcmRlclRvcENvbG9yOiJjdXJyZW50Q29sb3IiLGJvcmRlclRvcExlZnRSYWRpdXM6IjBweCIsYm9yZGVyVG9wUmlnaHRSYWRpdXM6IjBweCIsYm9yZGVyVG9wV2lkdGg6IjNweCIsYm90dG9tOiJhdXRvIixjbGlwOiJyZWN0KDBweCwgMHB4LCAwcHgsIDBweCkiLGNvbG9yOiJibGFjayIsZm9udFNpemU6IjEwMCUiLGZvbnRXZWlnaHQ6IjQwMCIsaGVpZ2h0OiJhdXRvIixsZWZ0OiJhdXRvIixsZXR0ZXJTcGFjaW5nOiJub3JtYWwiLGxpbmVIZWlnaHQ6IjEyMCUiLG1hcmdpbkJvdHRvbToiMHB4IixtYXJnaW5MZWZ0OiIwcHgiLG1hcmdpblJpZ2h0OiIwcHgiLG1hcmdpblRvcDoiMHB4IixtYXhIZWlnaHQ6Im5vbmUiLG1heFdpZHRoOiJub25lIixtaW5IZWlnaHQ6IjBweCIsbWluV2lkdGg6IjBweCIsb3BhY2l0eToiMS4wIixvdXRsaW5lQ29sb3I6ImludmVydCIsb3V0bGluZU9mZnNldDoiMHB4IixvdXRsaW5lV2lkdGg6IjNweCIscGFkZGluZ0JvdHRvbToiMHB4IixwYWRkaW5nTGVmdDoiMHB4IixwYWRkaW5nUmlnaHQ6IjBweCIscGFkZGluZ1RvcDoiMHB4IixyaWdodDoiYXV0byIsc3Ryb2tlRGFzaGFycmF5OiJub25lIixzdHJva2VEYXNob2Zmc2V0OiIwcHgiLHRleHRJbmRlbnQ6IjBweCIsdGV4dFNoYWRvdzoiMHB4IDBweCAwcHggdHJhbnNwYXJlbnQiLHRvcDoiYXV0byIsdHJhbnNmb3JtOiIiLHZlcnRpY2FsQWxpZ246IjBweCIsdmlzaWJpbGl0eToidmlzaWJsZSIsd2lkdGg6ImF1dG8iLHdvcmRTcGFjaW5nOiJub3JtYWwiLHpJbmRleDoiYXV0byJ9O2IucHJvcGVydHlJbnRlcnBvbGF0aW9uPWd9KGEsYiksZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYil7dmFyIGM9YS5jYWxjdWxhdGVBY3RpdmVEdXJhdGlvbihiKSxkPWZ1bmN0aW9uKGQpe3JldHVybiBhLmNhbGN1bGF0ZUl0ZXJhdGlvblByb2dyZXNzKGMsZCxiKX07cmV0dXJuIGQuX3RvdGFsRHVyYXRpb249Yi5kZWxheStjK2IuZW5kRGVsYXksZH1iLktleWZyYW1lRWZmZWN0PWZ1bmN0aW9uKGMsZSxmLGcpe3ZhciBoLGk9ZChhLm5vcm1hbGl6ZVRpbWluZ0lucHV0KGYpKSxqPWIuY29udmVydEVmZmVjdElucHV0KGUpLGs9ZnVuY3Rpb24oKXtqKGMsaCl9O3JldHVybiBrLl91cGRhdGU9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPT0oaD1pKGEpKX0say5fY2xlYXI9ZnVuY3Rpb24oKXtqKGMsbnVsbCl9LGsuX2hhc1NhbWVUYXJnZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGM9PT1hfSxrLl90YXJnZXQ9YyxrLl90b3RhbER1cmF0aW9uPWkuX3RvdGFsRHVyYXRpb24say5faWQ9ZyxrfX0oYSxiKSxmdW5jdGlvbihhLGIpe2EuYXBwbHk9ZnVuY3Rpb24oYixjLGQpe2Iuc3R5bGVbYS5wcm9wZXJ0eU5hbWUoYyldPWR9LGEuY2xlYXI9ZnVuY3Rpb24oYixjKXtiLnN0eWxlW2EucHJvcGVydHlOYW1lKGMpXT0iIn19KGIpLGZ1bmN0aW9uKGEpe3dpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKGIsYyl7dmFyIGQ9IiI7cmV0dXJuIGMmJmMuaWQmJihkPWMuaWQpLGEudGltZWxpbmUuX3BsYXkoYS5LZXlmcmFtZUVmZmVjdCh0aGlzLGIsYyxkKSl9fShiKSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSxiLGQpe2lmKCJudW1iZXIiPT10eXBlb2YgYSYmIm51bWJlciI9PXR5cGVvZiBiKXJldHVybiBhKigxLWQpK2IqZDtpZigiYm9vbGVhbiI9PXR5cGVvZiBhJiYiYm9vbGVhbiI9PXR5cGVvZiBiKXJldHVybiBkPC41P2E6YjtpZihhLmxlbmd0aD09Yi5sZW5ndGgpe2Zvcih2YXIgZT1bXSxmPTA7ZjxhLmxlbmd0aDtmKyspZS5wdXNoKGMoYVtmXSxiW2ZdLGQpKTtyZXR1cm4gZX10aHJvdyJNaXNtYXRjaGVkIGludGVycG9sYXRpb24gYXJndW1lbnRzICIrYSsiOiIrYn1hLkludGVycG9sYXRpb249ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZChjKGEsYixlKSl9fX0oYiksZnVuY3Rpb24oYSxiLGMpe2Euc2VxdWVuY2VOdW1iZXI9MDt2YXIgZD1mdW5jdGlvbihhLGIsYyl7dGhpcy50YXJnZXQ9YSx0aGlzLmN1cnJlbnRUaW1lPWIsdGhpcy50aW1lbGluZVRpbWU9Yyx0aGlzLnR5cGU9ImZpbmlzaCIsdGhpcy5idWJibGVzPSExLHRoaXMuY2FuY2VsYWJsZT0hMSx0aGlzLmN1cnJlbnRUYXJnZXQ9YSx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITEsdGhpcy5ldmVudFBoYXNlPUV2ZW50LkFUX1RBUkdFVCx0aGlzLnRpbWVTdGFtcD1EYXRlLm5vdygpfTtiLkFuaW1hdGlvbj1mdW5jdGlvbihiKXt0aGlzLmlkPSIiLGImJmIuX2lkJiYodGhpcy5pZD1iLl9pZCksdGhpcy5fc2VxdWVuY2VOdW1iZXI9YS5zZXF1ZW5jZU51bWJlcisrLHRoaXMuX2N1cnJlbnRUaW1lPTAsdGhpcy5fc3RhcnRUaW1lPW51bGwsdGhpcy5fcGF1c2VkPSExLHRoaXMuX3BsYXliYWNrUmF0ZT0xLHRoaXMuX2luVGltZWxpbmU9ITAsdGhpcy5fZmluaXNoZWRGbGFnPSEwLHRoaXMub25maW5pc2g9bnVsbCx0aGlzLl9maW5pc2hIYW5kbGVycz1bXSx0aGlzLl9lZmZlY3Q9Yix0aGlzLl9pbkVmZmVjdD10aGlzLl9lZmZlY3QuX3VwZGF0ZSgwKSx0aGlzLl9pZGxlPSEwLHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz0hMX0sYi5BbmltYXRpb24ucHJvdG90eXBlPXtfZW5zdXJlQWxpdmU6ZnVuY3Rpb24oKXt0aGlzLnBsYXliYWNrUmF0ZTwwJiYwPT09dGhpcy5jdXJyZW50VGltZT90aGlzLl9pbkVmZmVjdD10aGlzLl9lZmZlY3QuX3VwZGF0ZSgtMSk6dGhpcy5faW5FZmZlY3Q9dGhpcy5fZWZmZWN0Ll91cGRhdGUodGhpcy5jdXJyZW50VGltZSksdGhpcy5faW5UaW1lbGluZXx8IXRoaXMuX2luRWZmZWN0JiZ0aGlzLl9maW5pc2hlZEZsYWd8fCh0aGlzLl9pblRpbWVsaW5lPSEwLGIudGltZWxpbmUuX2FuaW1hdGlvbnMucHVzaCh0aGlzKSl9LF90aWNrQ3VycmVudFRpbWU6ZnVuY3Rpb24oYSxiKXthIT10aGlzLl9jdXJyZW50VGltZSYmKHRoaXMuX2N1cnJlbnRUaW1lPWEsdGhpcy5faXNGaW5pc2hlZCYmIWImJih0aGlzLl9jdXJyZW50VGltZT10aGlzLl9wbGF5YmFja1JhdGU+MD90aGlzLl90b3RhbER1cmF0aW9uOjApLHRoaXMuX2Vuc3VyZUFsaXZlKCkpfSxnZXQgY3VycmVudFRpbWUoKXtyZXR1cm4gdGhpcy5faWRsZXx8dGhpcy5fY3VycmVudFRpbWVQZW5kaW5nP251bGw6dGhpcy5fY3VycmVudFRpbWV9LHNldCBjdXJyZW50VGltZShhKXthPSthLGlzTmFOKGEpfHwoYi5yZXN0YXJ0KCksdGhpcy5fcGF1c2VkfHxudWxsPT10aGlzLl9zdGFydFRpbWV8fCh0aGlzLl9zdGFydFRpbWU9dGhpcy5fdGltZWxpbmUuY3VycmVudFRpbWUtYS90aGlzLl9wbGF5YmFja1JhdGUpLHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz0hMSx0aGlzLl9jdXJyZW50VGltZSE9YSYmKHRoaXMuX2lkbGUmJih0aGlzLl9pZGxlPSExLHRoaXMuX3BhdXNlZD0hMCksdGhpcy5fdGlja0N1cnJlbnRUaW1lKGEsITApLGIuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpKSl9LGdldCBzdGFydFRpbWUoKXtyZXR1cm4gdGhpcy5fc3RhcnRUaW1lfSxzZXQgc3RhcnRUaW1lKGEpe2E9K2EsaXNOYU4oYSl8fHRoaXMuX3BhdXNlZHx8dGhpcy5faWRsZXx8KHRoaXMuX3N0YXJ0VGltZT1hLHRoaXMuX3RpY2tDdXJyZW50VGltZSgodGhpcy5fdGltZWxpbmUuY3VycmVudFRpbWUtdGhpcy5fc3RhcnRUaW1lKSp0aGlzLnBsYXliYWNrUmF0ZSksYi5hcHBseURpcnRpZWRBbmltYXRpb24odGhpcykpfSxnZXQgcGxheWJhY2tSYXRlKCl7cmV0dXJuIHRoaXMuX3BsYXliYWNrUmF0ZX0sc2V0IHBsYXliYWNrUmF0ZShhKXtpZihhIT10aGlzLl9wbGF5YmFja1JhdGUpe3ZhciBjPXRoaXMuY3VycmVudFRpbWU7dGhpcy5fcGxheWJhY2tSYXRlPWEsdGhpcy5fc3RhcnRUaW1lPW51bGwsInBhdXNlZCIhPXRoaXMucGxheVN0YXRlJiYiaWRsZSIhPXRoaXMucGxheVN0YXRlJiYodGhpcy5fZmluaXNoZWRGbGFnPSExLHRoaXMuX2lkbGU9ITEsdGhpcy5fZW5zdXJlQWxpdmUoKSxiLmFwcGx5RGlydGllZEFuaW1hdGlvbih0aGlzKSksbnVsbCE9YyYmKHRoaXMuY3VycmVudFRpbWU9Yyl9fSxnZXQgX2lzRmluaXNoZWQoKXtyZXR1cm4hdGhpcy5faWRsZSYmKHRoaXMuX3BsYXliYWNrUmF0ZT4wJiZ0aGlzLl9jdXJyZW50VGltZT49dGhpcy5fdG90YWxEdXJhdGlvbnx8dGhpcy5fcGxheWJhY2tSYXRlPDAmJnRoaXMuX2N1cnJlbnRUaW1lPD0wKX0sZ2V0IF90b3RhbER1cmF0aW9uKCl7cmV0dXJuIHRoaXMuX2VmZmVjdC5fdG90YWxEdXJhdGlvbn0sZ2V0IHBsYXlTdGF0ZSgpe3JldHVybiB0aGlzLl9pZGxlPyJpZGxlIjpudWxsPT10aGlzLl9zdGFydFRpbWUmJiF0aGlzLl9wYXVzZWQmJjAhPXRoaXMucGxheWJhY2tSYXRlfHx0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc/InBlbmRpbmciOnRoaXMuX3BhdXNlZD8icGF1c2VkIjp0aGlzLl9pc0ZpbmlzaGVkPyJmaW5pc2hlZCI6InJ1bm5pbmcifSxfcmV3aW5kOmZ1bmN0aW9uKCl7aWYodGhpcy5fcGxheWJhY2tSYXRlPj0wKXRoaXMuX2N1cnJlbnRUaW1lPTA7ZWxzZXtpZighKHRoaXMuX3RvdGFsRHVyYXRpb248MS8wKSl0aHJvdyBuZXcgRE9NRXhjZXB0aW9uKCJVbmFibGUgdG8gcmV3aW5kIG5lZ2F0aXZlIHBsYXliYWNrIHJhdGUgYW5pbWF0aW9uIHdpdGggaW5maW5pdGUgZHVyYXRpb24iLCJJbnZhbGlkU3RhdGVFcnJvciIpO3RoaXMuX2N1cnJlbnRUaW1lPXRoaXMuX3RvdGFsRHVyYXRpb259fSxwbGF5OmZ1bmN0aW9uKCl7dGhpcy5fcGF1c2VkPSExLCh0aGlzLl9pc0ZpbmlzaGVkfHx0aGlzLl9pZGxlKSYmKHRoaXMuX3Jld2luZCgpLHRoaXMuX3N0YXJ0VGltZT1udWxsKSx0aGlzLl9maW5pc2hlZEZsYWc9ITEsdGhpcy5faWRsZT0hMSx0aGlzLl9lbnN1cmVBbGl2ZSgpLGIuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpfSxwYXVzZTpmdW5jdGlvbigpe3RoaXMuX2lzRmluaXNoZWR8fHRoaXMuX3BhdXNlZHx8dGhpcy5faWRsZT90aGlzLl9pZGxlJiYodGhpcy5fcmV3aW5kKCksdGhpcy5faWRsZT0hMSk6dGhpcy5fY3VycmVudFRpbWVQZW5kaW5nPSEwLHRoaXMuX3N0YXJ0VGltZT1udWxsLHRoaXMuX3BhdXNlZD0hMH0sZmluaXNoOmZ1bmN0aW9uKCl7dGhpcy5faWRsZXx8KHRoaXMuY3VycmVudFRpbWU9dGhpcy5fcGxheWJhY2tSYXRlPjA/dGhpcy5fdG90YWxEdXJhdGlvbjowLHRoaXMuX3N0YXJ0VGltZT10aGlzLl90b3RhbER1cmF0aW9uLXRoaXMuY3VycmVudFRpbWUsdGhpcy5fY3VycmVudFRpbWVQZW5kaW5nPSExLGIuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpKX0sY2FuY2VsOmZ1bmN0aW9uKCl7dGhpcy5faW5FZmZlY3QmJih0aGlzLl9pbkVmZmVjdD0hMSx0aGlzLl9pZGxlPSEwLHRoaXMuX3BhdXNlZD0hMSx0aGlzLl9maW5pc2hlZEZsYWc9ITAsdGhpcy5fY3VycmVudFRpbWU9MCx0aGlzLl9zdGFydFRpbWU9bnVsbCx0aGlzLl9lZmZlY3QuX3VwZGF0ZShudWxsKSxiLmFwcGx5RGlydGllZEFuaW1hdGlvbih0aGlzKSl9LHJldmVyc2U6ZnVuY3Rpb24oKXt0aGlzLnBsYXliYWNrUmF0ZSo9LTEsdGhpcy5wbGF5KCl9LGFkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oYSxiKXsiZnVuY3Rpb24iPT10eXBlb2YgYiYmImZpbmlzaCI9PWEmJnRoaXMuX2ZpbmlzaEhhbmRsZXJzLnB1c2goYil9LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oYSxiKXtpZigiZmluaXNoIj09YSl7dmFyIGM9dGhpcy5fZmluaXNoSGFuZGxlcnMuaW5kZXhPZihiKTtjPj0wJiZ0aGlzLl9maW5pc2hIYW5kbGVycy5zcGxpY2UoYywxKX19LF9maXJlRXZlbnRzOmZ1bmN0aW9uKGEpe2lmKHRoaXMuX2lzRmluaXNoZWQpe2lmKCF0aGlzLl9maW5pc2hlZEZsYWcpe3ZhciBiPW5ldyBkKHRoaXMsdGhpcy5fY3VycmVudFRpbWUsYSksYz10aGlzLl9maW5pc2hIYW5kbGVycy5jb25jYXQodGhpcy5vbmZpbmlzaD9bdGhpcy5vbmZpbmlzaF06W10pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjLmZvckVhY2goZnVuY3Rpb24oYSl7YS5jYWxsKGIudGFyZ2V0LGIpfSl9LDApLHRoaXMuX2ZpbmlzaGVkRmxhZz0hMH19ZWxzZSB0aGlzLl9maW5pc2hlZEZsYWc9ITF9LF90aWNrOmZ1bmN0aW9uKGEsYil7dGhpcy5faWRsZXx8dGhpcy5fcGF1c2VkfHwobnVsbD09dGhpcy5fc3RhcnRUaW1lP2ImJih0aGlzLnN0YXJ0VGltZT1hLXRoaXMuX2N1cnJlbnRUaW1lL3RoaXMucGxheWJhY2tSYXRlKTp0aGlzLl9pc0ZpbmlzaGVkfHx0aGlzLl90aWNrQ3VycmVudFRpbWUoKGEtdGhpcy5fc3RhcnRUaW1lKSp0aGlzLnBsYXliYWNrUmF0ZSkpLGImJih0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc9ITEsdGhpcy5fZmlyZUV2ZW50cyhhKSl9LGdldCBfbmVlZHNUaWNrKCl7cmV0dXJuIHRoaXMucGxheVN0YXRlIGlue3BlbmRpbmc6MSxydW5uaW5nOjF9fHwhdGhpcy5fZmluaXNoZWRGbGFnfSxfdGFyZ2V0QW5pbWF0aW9uczpmdW5jdGlvbigpe3ZhciBhPXRoaXMuX2VmZmVjdC5fdGFyZ2V0O3JldHVybiBhLl9hY3RpdmVBbmltYXRpb25zfHwoYS5fYWN0aXZlQW5pbWF0aW9ucz1bXSksYS5fYWN0aXZlQW5pbWF0aW9uc30sX21hcmtUYXJnZXQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl90YXJnZXRBbmltYXRpb25zKCk7LTE9PT1hLmluZGV4T2YodGhpcykmJmEucHVzaCh0aGlzKX0sX3VubWFya1RhcmdldDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuX3RhcmdldEFuaW1hdGlvbnMoKSxiPWEuaW5kZXhPZih0aGlzKTstMSE9PWImJmEuc3BsaWNlKGIsMSl9fX0oYSxiKSxmdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChhKXt2YXIgYj1qO2o9W10sYTxxLmN1cnJlbnRUaW1lJiYoYT1xLmN1cnJlbnRUaW1lKSxxLl9hbmltYXRpb25zLnNvcnQoZSkscS5fYW5pbWF0aW9ucz1oKGEsITAscS5fYW5pbWF0aW9ucylbMF0sYi5mb3JFYWNoKGZ1bmN0aW9uKGIpe2JbMV0oYSl9KSxnKCksbD12b2lkIDB9ZnVuY3Rpb24gZShhLGIpe3JldHVybiBhLl9zZXF1ZW5jZU51bWJlci1iLl9zZXF1ZW5jZU51bWJlcn1mdW5jdGlvbiBmKCl7dGhpcy5fYW5pbWF0aW9ucz1bXSx0aGlzLmN1cnJlbnRUaW1lPXdpbmRvdy5wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlLm5vdygpOjB9ZnVuY3Rpb24gZygpe28uZm9yRWFjaChmdW5jdGlvbihhKXthKCl9KSxvLmxlbmd0aD0wfWZ1bmN0aW9uIGgoYSxjLGQpe3A9ITAsbj0hMSxiLnRpbWVsaW5lLmN1cnJlbnRUaW1lPWEsbT0hMTt2YXIgZT1bXSxmPVtdLGc9W10saD1bXTtyZXR1cm4gZC5mb3JFYWNoKGZ1bmN0aW9uKGIpe2IuX3RpY2soYSxjKSxiLl9pbkVmZmVjdD8oZi5wdXNoKGIuX2VmZmVjdCksYi5fbWFya1RhcmdldCgpKTooZS5wdXNoKGIuX2VmZmVjdCksYi5fdW5tYXJrVGFyZ2V0KCkpLGIuX25lZWRzVGljayYmKG09ITApO3ZhciBkPWIuX2luRWZmZWN0fHxiLl9uZWVkc1RpY2s7Yi5faW5UaW1lbGluZT1kLGQ/Zy5wdXNoKGIpOmgucHVzaChiKX0pLG8ucHVzaC5hcHBseShvLGUpLG8ucHVzaC5hcHBseShvLGYpLG0mJnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe30pLHA9ITEsW2csaF19dmFyIGk9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSxqPVtdLGs9MDt3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lPWZ1bmN0aW9uKGEpe3ZhciBiPWsrKztyZXR1cm4gMD09ai5sZW5ndGgmJmkoZCksai5wdXNoKFtiLGFdKSxifSx3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWU9ZnVuY3Rpb24oYSl7ai5mb3JFYWNoKGZ1bmN0aW9uKGIpe2JbMF09PWEmJihiWzFdPWZ1bmN0aW9uKCl7fSl9KX0sZi5wcm90b3R5cGU9e19wbGF5OmZ1bmN0aW9uKGMpe2MuX3RpbWluZz1hLm5vcm1hbGl6ZVRpbWluZ0lucHV0KGMudGltaW5nKTt2YXIgZD1uZXcgYi5BbmltYXRpb24oYyk7cmV0dXJuIGQuX2lkbGU9ITEsZC5fdGltZWxpbmU9dGhpcyx0aGlzLl9hbmltYXRpb25zLnB1c2goZCksYi5yZXN0YXJ0KCksYi5hcHBseURpcnRpZWRBbmltYXRpb24oZCksZH19O3ZhciBsPXZvaWQgMCxtPSExLG49ITE7Yi5yZXN0YXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIG18fChtPSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe30pLG49ITApLG59LGIuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uPWZ1bmN0aW9uKGEpe2lmKCFwKXthLl9tYXJrVGFyZ2V0KCk7dmFyIGM9YS5fdGFyZ2V0QW5pbWF0aW9ucygpO2Muc29ydChlKSxoKGIudGltZWxpbmUuY3VycmVudFRpbWUsITEsYy5zbGljZSgpKVsxXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPXEuX2FuaW1hdGlvbnMuaW5kZXhPZihhKTstMSE9PWImJnEuX2FuaW1hdGlvbnMuc3BsaWNlKGIsMSl9KSxnKCl9fTt2YXIgbz1bXSxwPSExLHE9bmV3IGY7Yi50aW1lbGluZT1xfShhLGIpLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSxiKXt2YXIgYz1hLmV4ZWMoYik7aWYoYylyZXR1cm4gYz1hLmlnbm9yZUNhc2U/Y1swXS50b0xvd2VyQ2FzZSgpOmNbMF0sW2MsYi5zdWJzdHIoYy5sZW5ndGgpXX1mdW5jdGlvbiBjKGEsYil7Yj1iLnJlcGxhY2UoL15ccyovLCIiKTt2YXIgYz1hKGIpO2lmKGMpcmV0dXJuW2NbMF0sY1sxXS5yZXBsYWNlKC9eXHMqLywiIildfWZ1bmN0aW9uIGQoYSxkLGUpe2E9Yy5iaW5kKG51bGwsYSk7Zm9yKHZhciBmPVtdOzspe3ZhciBnPWEoZSk7aWYoIWcpcmV0dXJuW2YsZV07aWYoZi5wdXNoKGdbMF0pLGU9Z1sxXSwhKGc9YihkLGUpKXx8IiI9PWdbMV0pcmV0dXJuW2YsZV07ZT1nWzFdfX1mdW5jdGlvbiBlKGEsYil7Zm9yKHZhciBjPTAsZD0wO2Q8Yi5sZW5ndGgmJighL1xzfCwvLnRlc3QoYltkXSl8fDAhPWMpO2QrKylpZigiKCI9PWJbZF0pYysrO2Vsc2UgaWYoIikiPT1iW2RdJiYoYy0tLDA9PWMmJmQrKyxjPD0wKSlicmVhazt2YXIgZT1hKGIuc3Vic3RyKDAsZCkpO3JldHVybiB2b2lkIDA9PWU/dm9pZCAwOltlLGIuc3Vic3RyKGQpXX1mdW5jdGlvbiBmKGEsYil7Zm9yKHZhciBjPWEsZD1iO2MmJmQ7KWM+ZD9jJT1kOmQlPWM7cmV0dXJuIGM9YSpiLyhjK2QpfWZ1bmN0aW9uIGcoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWEoYik7cmV0dXJuIGMmJihjWzBdPXZvaWQgMCksY319ZnVuY3Rpb24gaChhLGIpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gYShjKXx8W2IsY119fWZ1bmN0aW9uIGkoYixjKXtmb3IodmFyIGQ9W10sZT0wO2U8Yi5sZW5ndGg7ZSsrKXt2YXIgZj1hLmNvbnN1bWVUcmltbWVkKGJbZV0sYyk7aWYoIWZ8fCIiPT1mWzBdKXJldHVybjt2b2lkIDAhPT1mWzBdJiZkLnB1c2goZlswXSksYz1mWzFdfWlmKCIiPT1jKXJldHVybiBkfWZ1bmN0aW9uIGooYSxiLGMsZCxlKXtmb3IodmFyIGc9W10saD1bXSxpPVtdLGo9ZihkLmxlbmd0aCxlLmxlbmd0aCksaz0wO2s8ajtrKyspe3ZhciBsPWIoZFtrJWQubGVuZ3RoXSxlW2slZS5sZW5ndGhdKTtpZighbClyZXR1cm47Zy5wdXNoKGxbMF0pLGgucHVzaChsWzFdKSxpLnB1c2gobFsyXSl9cmV0dXJuW2csaCxmdW5jdGlvbihiKXt2YXIgZD1iLm1hcChmdW5jdGlvbihhLGIpe3JldHVybiBpW2JdKGEpfSkuam9pbihjKTtyZXR1cm4gYT9hKGQpOmR9XX1mdW5jdGlvbiBrKGEsYixjKXtmb3IodmFyIGQ9W10sZT1bXSxmPVtdLGc9MCxoPTA7aDxjLmxlbmd0aDtoKyspaWYoImZ1bmN0aW9uIj09dHlwZW9mIGNbaF0pe3ZhciBpPWNbaF0oYVtnXSxiW2crK10pO2QucHVzaChpWzBdKSxlLnB1c2goaVsxXSksZi5wdXNoKGlbMl0pfWVsc2UhZnVuY3Rpb24oYSl7ZC5wdXNoKCExKSxlLnB1c2goITEpLGYucHVzaChmdW5jdGlvbigpe3JldHVybiBjW2FdfSl9KGgpO3JldHVybltkLGUsZnVuY3Rpb24oYSl7Zm9yKHZhciBiPSIiLGM9MDtjPGEubGVuZ3RoO2MrKyliKz1mW2NdKGFbY10pO3JldHVybiBifV19YS5jb25zdW1lVG9rZW49YixhLmNvbnN1bWVUcmltbWVkPWMsYS5jb25zdW1lUmVwZWF0ZWQ9ZCxhLmNvbnN1bWVQYXJlbnRoZXNpc2VkPWUsYS5pZ25vcmU9ZyxhLm9wdGlvbmFsPWgsYS5jb25zdW1lTGlzdD1pLGEubWVyZ2VOZXN0ZWRSZXBlYXRlZD1qLmJpbmQobnVsbCxudWxsKSxhLm1lcmdlV3JhcHBlZE5lc3RlZFJlcGVhdGVkPWosYS5tZXJnZUxpc3Q9a30oYiksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihiKXtmdW5jdGlvbiBjKGIpe3ZhciBjPWEuY29uc3VtZVRva2VuKC9eaW5zZXQvaSxiKTtyZXR1cm4gYz8oZC5pbnNldD0hMCxjKTooYz1hLmNvbnN1bWVMZW5ndGhPclBlcmNlbnQoYikpPyhkLmxlbmd0aHMucHVzaChjWzBdKSxjKTooYz1hLmNvbnN1bWVDb2xvcihiKSxjPyhkLmNvbG9yPWNbMF0sYyk6dm9pZCAwKX12YXIgZD17aW5zZXQ6ITEsbGVuZ3RoczpbXSxjb2xvcjpudWxsfSxlPWEuY29uc3VtZVJlcGVhdGVkKGMsL14vLGIpO2lmKGUmJmVbMF0ubGVuZ3RoKXJldHVybltkLGVbMV1dfWZ1bmN0aW9uIGMoYyl7dmFyIGQ9YS5jb25zdW1lUmVwZWF0ZWQoYiwvXiwvLGMpO2lmKGQmJiIiPT1kWzFdKXJldHVybiBkWzBdfWZ1bmN0aW9uIGQoYixjKXtmb3IoO2IubGVuZ3Rocy5sZW5ndGg8TWF0aC5tYXgoYi5sZW5ndGhzLmxlbmd0aCxjLmxlbmd0aHMubGVuZ3RoKTspYi5sZW5ndGhzLnB1c2goe3B4OjB9KTtmb3IoO2MubGVuZ3Rocy5sZW5ndGg8TWF0aC5tYXgoYi5sZW5ndGhzLmxlbmd0aCxjLmxlbmd0aHMubGVuZ3RoKTspYy5sZW5ndGhzLnB1c2goe3B4OjB9KTtpZihiLmluc2V0PT1jLmluc2V0JiYhIWIuY29sb3I9PSEhYy5jb2xvcil7Zm9yKHZhciBkLGU9W10sZj1bW10sMF0sZz1bW10sMF0saD0wO2g8Yi5sZW5ndGhzLmxlbmd0aDtoKyspe3ZhciBpPWEubWVyZ2VEaW1lbnNpb25zKGIubGVuZ3Roc1toXSxjLmxlbmd0aHNbaF0sMj09aCk7ZlswXS5wdXNoKGlbMF0pLGdbMF0ucHVzaChpWzFdKSxlLnB1c2goaVsyXSl9aWYoYi5jb2xvciYmYy5jb2xvcil7dmFyIGo9YS5tZXJnZUNvbG9ycyhiLmNvbG9yLGMuY29sb3IpO2ZbMV09alswXSxnWzFdPWpbMV0sZD1qWzJdfXJldHVybltmLGcsZnVuY3Rpb24oYSl7Zm9yKHZhciBjPWIuaW5zZXQ/Imluc2V0ICI6IiAiLGY9MDtmPGUubGVuZ3RoO2YrKyljKz1lW2ZdKGFbMF1bZl0pKyIgIjtyZXR1cm4gZCYmKGMrPWQoYVsxXSkpLGN9XX19ZnVuY3Rpb24gZShiLGMsZCxlKXtmdW5jdGlvbiBmKGEpe3JldHVybntpbnNldDphLGNvbG9yOlswLDAsMCwwXSxsZW5ndGhzOlt7cHg6MH0se3B4OjB9LHtweDowfSx7cHg6MH1dfX1mb3IodmFyIGc9W10saD1bXSxpPTA7aTxkLmxlbmd0aHx8aTxlLmxlbmd0aDtpKyspe3ZhciBqPWRbaV18fGYoZVtpXS5pbnNldCksaz1lW2ldfHxmKGRbaV0uaW5zZXQpO2cucHVzaChqKSxoLnB1c2goayl9cmV0dXJuIGEubWVyZ2VOZXN0ZWRSZXBlYXRlZChiLGMsZyxoKX12YXIgZj1lLmJpbmQobnVsbCxkLCIsICIpO2EuYWRkUHJvcGVydGllc0hhbmRsZXIoYyxmLFsiYm94LXNoYWRvdyIsInRleHQtc2hhZG93Il0pfShiKSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSl7cmV0dXJuIGEudG9GaXhlZCgzKS5yZXBsYWNlKC8wKyQvLCIiKS5yZXBsYWNlKC9cLiQvLCIiKX1mdW5jdGlvbiBkKGEsYixjKXtyZXR1cm4gTWF0aC5taW4oYixNYXRoLm1heChhLGMpKX1mdW5jdGlvbiBlKGEpe2lmKC9eXHMqWy0rXT8oXGQqXC4pP1xkK1xzKiQvLnRlc3QoYSkpcmV0dXJuIE51bWJlcihhKX1mdW5jdGlvbiBmKGEsYil7cmV0dXJuW2EsYixjXX1mdW5jdGlvbiBnKGEsYil7aWYoMCE9YSlyZXR1cm4gaSgwLDEvMCkoYSxiKX1mdW5jdGlvbiBoKGEsYil7cmV0dXJuW2EsYixmdW5jdGlvbihhKXtyZXR1cm4gTWF0aC5yb3VuZChkKDEsMS8wLGEpKX1dfWZ1bmN0aW9uIGkoYSxiKXtyZXR1cm4gZnVuY3Rpb24oZSxmKXtyZXR1cm5bZSxmLGZ1bmN0aW9uKGUpe3JldHVybiBjKGQoYSxiLGUpKX1dfX1mdW5jdGlvbiBqKGEpe3ZhciBiPWEudHJpbSgpLnNwbGl0KC9ccypbXHMsXVxzKi8pO2lmKDAhPT1iLmxlbmd0aCl7Zm9yKHZhciBjPVtdLGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGY9ZShiW2RdKTtpZih2b2lkIDA9PT1mKXJldHVybjtjLnB1c2goZil9cmV0dXJuIGN9fWZ1bmN0aW9uIGsoYSxiKXtpZihhLmxlbmd0aD09Yi5sZW5ndGgpcmV0dXJuW2EsYixmdW5jdGlvbihhKXtyZXR1cm4gYS5tYXAoYykuam9pbigiICIpfV19ZnVuY3Rpb24gbChhLGIpe3JldHVyblthLGIsTWF0aC5yb3VuZF19YS5jbGFtcD1kLGEuYWRkUHJvcGVydGllc0hhbmRsZXIoaixrLFsic3Ryb2tlLWRhc2hhcnJheSJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsaSgwLDEvMCksWyJib3JkZXItaW1hZ2Utd2lkdGgiLCJsaW5lLWhlaWdodCJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsaSgwLDEpLFsib3BhY2l0eSIsInNoYXBlLWltYWdlLXRocmVzaG9sZCJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsZyxbImZsZXgtZ3JvdyIsImZsZXgtc2hyaW5rIl0pLGEuYWRkUHJvcGVydGllc0hhbmRsZXIoZSxoLFsib3JwaGFucyIsIndpZG93cyJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsbCxbInotaW5kZXgiXSksYS5wYXJzZU51bWJlcj1lLGEucGFyc2VOdW1iZXJMaXN0PWosYS5tZXJnZU51bWJlcnM9ZixhLm51bWJlclRvU3RyaW5nPWN9KGIpLGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhhLGIpe2lmKCJ2aXNpYmxlIj09YXx8InZpc2libGUiPT1iKXJldHVyblswLDEsZnVuY3Rpb24oYyl7cmV0dXJuIGM8PTA/YTpjPj0xP2I6InZpc2libGUifV19YS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihTdHJpbmcsYyxbInZpc2liaWxpdHkiXSl9KGIpLGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhhKXthPWEudHJpbSgpLGYuZmlsbFN0eWxlPSIjMDAwIixmLmZpbGxTdHlsZT1hO3ZhciBiPWYuZmlsbFN0eWxlO2lmKGYuZmlsbFN0eWxlPSIjZmZmIixmLmZpbGxTdHlsZT1hLGI9PWYuZmlsbFN0eWxlKXtmLmZpbGxSZWN0KDAsMCwxLDEpO3ZhciBjPWYuZ2V0SW1hZ2VEYXRhKDAsMCwxLDEpLmRhdGE7Zi5jbGVhclJlY3QoMCwwLDEsMSk7dmFyIGQ9Y1szXS8yNTU7cmV0dXJuW2NbMF0qZCxjWzFdKmQsY1syXSpkLGRdfX1mdW5jdGlvbiBkKGIsYyl7cmV0dXJuW2IsYyxmdW5jdGlvbihiKXtmdW5jdGlvbiBjKGEpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKDI1NSxhKSl9aWYoYlszXSlmb3IodmFyIGQ9MDtkPDM7ZCsrKWJbZF09TWF0aC5yb3VuZChjKGJbZF0vYlszXSkpO3JldHVybiBiWzNdPWEubnVtYmVyVG9TdHJpbmcoYS5jbGFtcCgwLDEsYlszXSkpLCJyZ2JhKCIrYi5qb2luKCIsIikrIikifV19dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiY2FudmFzIik7ZS53aWR0aD1lLmhlaWdodD0xO3ZhciBmPWUuZ2V0Q29udGV4dCgiMmQiKTthLmFkZFByb3BlcnRpZXNIYW5kbGVyKGMsZCxbImJhY2tncm91bmQtY29sb3IiLCJib3JkZXItYm90dG9tLWNvbG9yIiwiYm9yZGVyLWxlZnQtY29sb3IiLCJib3JkZXItcmlnaHQtY29sb3IiLCJib3JkZXItdG9wLWNvbG9yIiwiY29sb3IiLCJmaWxsIiwiZmxvb2QtY29sb3IiLCJsaWdodGluZy1jb2xvciIsIm91dGxpbmUtY29sb3IiLCJzdG9wLWNvbG9yIiwic3Ryb2tlIiwidGV4dC1kZWNvcmF0aW9uLWNvbG9yIl0pLGEuY29uc3VtZUNvbG9yPWEuY29uc3VtZVBhcmVudGhlc2lzZWQuYmluZChudWxsLGMpLGEubWVyZ2VDb2xvcnM9ZH0oYiksZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEpe2Z1bmN0aW9uIGIoKXt2YXIgYj1oLmV4ZWMoYSk7Zz1iP2JbMF06dm9pZCAwfWZ1bmN0aW9uIGMoKXt2YXIgYT1OdW1iZXIoZyk7cmV0dXJuIGIoKSxhfWZ1bmN0aW9uIGQoKXtpZigiKCIhPT1nKXJldHVybiBjKCk7YigpO3ZhciBhPWYoKTtyZXR1cm4iKSIhPT1nP05hTjooYigpLGEpfWZ1bmN0aW9uIGUoKXtmb3IodmFyIGE9ZCgpOyIqIj09PWd8fCIvIj09PWc7KXt2YXIgYz1nO2IoKTt2YXIgZT1kKCk7IioiPT09Yz9hKj1lOmEvPWV9cmV0dXJuIGF9ZnVuY3Rpb24gZigpe2Zvcih2YXIgYT1lKCk7IisiPT09Z3x8Ii0iPT09Zzspe3ZhciBjPWc7YigpO3ZhciBkPWUoKTsiKyI9PT1jP2ErPWQ6YS09ZH1yZXR1cm4gYX12YXIgZyxoPS8oW1wrXC1cd1wuXSt8W1woXClcKlwvXSkvZztyZXR1cm4gYigpLGYoKX1mdW5jdGlvbiBkKGEsYil7aWYoIjAiPT0oYj1iLnRyaW0oKS50b0xvd2VyQ2FzZSgpKSYmInB4Ii5zZWFyY2goYSk+PTApcmV0dXJue3B4OjB9O2lmKC9eW14oXSokfF5jYWxjLy50ZXN0KGIpKXtiPWIucmVwbGFjZSgvY2FsY1woL2csIigiKTt2YXIgZD17fTtiPWIucmVwbGFjZShhLGZ1bmN0aW9uKGEpe3JldHVybiBkW2FdPW51bGwsIlUiK2F9KTtmb3IodmFyIGU9IlUoIithLnNvdXJjZSsiKSIsZj1iLnJlcGxhY2UoL1stK10/KFxkKlwuKT9cZCsoW0VlXVstK10/XGQrKT8vZywiTiIpLnJlcGxhY2UobmV3IFJlZ0V4cCgiTiIrZSwiZyIpLCJEIikucmVwbGFjZSgvXHNbKy1dXHMvZywiTyIpLnJlcGxhY2UoL1xzL2csIiIpLGc9Wy9OXCooRCkvZywvKE58RClbKlwvXU4vZywvKE58RClPXDEvZywvXCgoTnxEKVwpL2ddLGg9MDtoPGcubGVuZ3RoOylnW2hdLnRlc3QoZik/KGY9Zi5yZXBsYWNlKGdbaF0sIiQxIiksaD0wKTpoKys7aWYoIkQiPT1mKXtmb3IodmFyIGkgaW4gZCl7dmFyIGo9YyhiLnJlcGxhY2UobmV3IFJlZ0V4cCgiVSIraSwiZyIpLCIiKS5yZXBsYWNlKG5ldyBSZWdFeHAoZSwiZyIpLCIqMCIpKTtpZighaXNGaW5pdGUoaikpcmV0dXJuO2RbaV09an1yZXR1cm4gZH19fWZ1bmN0aW9uIGUoYSxiKXtyZXR1cm4gZihhLGIsITApfWZ1bmN0aW9uIGYoYixjLGQpe3ZhciBlLGY9W107Zm9yKGUgaW4gYilmLnB1c2goZSk7Zm9yKGUgaW4gYylmLmluZGV4T2YoZSk8MCYmZi5wdXNoKGUpO3JldHVybiBiPWYubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBiW2FdfHwwfSksYz1mLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gY1thXXx8MH0pLFtiLGMsZnVuY3Rpb24oYil7dmFyIGM9Yi5tYXAoZnVuY3Rpb24oYyxlKXtyZXR1cm4gMT09Yi5sZW5ndGgmJmQmJihjPU1hdGgubWF4KGMsMCkpLGEubnVtYmVyVG9TdHJpbmcoYykrZltlXX0pLmpvaW4oIiArICIpO3JldHVybiBiLmxlbmd0aD4xPyJjYWxjKCIrYysiKSI6Y31dfXZhciBnPSJweHxlbXxleHxjaHxyZW18dnd8dmh8dm1pbnx2bWF4fGNtfG1tfGlufHB0fHBjIixoPWQuYmluZChudWxsLG5ldyBSZWdFeHAoZywiZyIpKSxpPWQuYmluZChudWxsLG5ldyBSZWdFeHAoZysifCUiLCJnIikpLGo9ZC5iaW5kKG51bGwsL2RlZ3xyYWR8Z3JhZHx0dXJuL2cpO2EucGFyc2VMZW5ndGg9aCxhLnBhcnNlTGVuZ3RoT3JQZXJjZW50PWksYS5jb25zdW1lTGVuZ3RoT3JQZXJjZW50PWEuY29uc3VtZVBhcmVudGhlc2lzZWQuYmluZChudWxsLGkpLGEucGFyc2VBbmdsZT1qLGEubWVyZ2VEaW1lbnNpb25zPWY7dmFyIGs9YS5jb25zdW1lUGFyZW50aGVzaXNlZC5iaW5kKG51bGwsaCksbD1hLmNvbnN1bWVSZXBlYXRlZC5iaW5kKHZvaWQgMCxrLC9eLyksbT1hLmNvbnN1bWVSZXBlYXRlZC5iaW5kKHZvaWQgMCxsLC9eLC8pO2EuY29uc3VtZVNpemVQYWlyTGlzdD1tO3ZhciBuPWZ1bmN0aW9uKGEpe3ZhciBiPW0oYSk7aWYoYiYmIiI9PWJbMV0pcmV0dXJuIGJbMF19LG89YS5tZXJnZU5lc3RlZFJlcGVhdGVkLmJpbmQodm9pZCAwLGUsIiAiKSxwPWEubWVyZ2VOZXN0ZWRSZXBlYXRlZC5iaW5kKHZvaWQgMCxvLCIsIik7YS5tZXJnZU5vbk5lZ2F0aXZlU2l6ZVBhaXI9byxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKG4scCxbImJhY2tncm91bmQtc2l6ZSJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGksZSxbImJvcmRlci1ib3R0b20td2lkdGgiLCJib3JkZXItaW1hZ2Utd2lkdGgiLCJib3JkZXItbGVmdC13aWR0aCIsImJvcmRlci1yaWdodC13aWR0aCIsImJvcmRlci10b3Atd2lkdGgiLCJmbGV4LWJhc2lzIiwiZm9udC1zaXplIiwiaGVpZ2h0IiwibGluZS1oZWlnaHQiLCJtYXgtaGVpZ2h0IiwibWF4LXdpZHRoIiwib3V0bGluZS13aWR0aCIsIndpZHRoIl0pLGEuYWRkUHJvcGVydGllc0hhbmRsZXIoaSxmLFsiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyIsImJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzIiwiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyIsImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIiwiYm90dG9tIiwibGVmdCIsImxldHRlci1zcGFjaW5nIiwibWFyZ2luLWJvdHRvbSIsIm1hcmdpbi1sZWZ0IiwibWFyZ2luLXJpZ2h0IiwibWFyZ2luLXRvcCIsIm1pbi1oZWlnaHQiLCJtaW4td2lkdGgiLCJvdXRsaW5lLW9mZnNldCIsInBhZGRpbmctYm90dG9tIiwicGFkZGluZy1sZWZ0IiwicGFkZGluZy1yaWdodCIsInBhZGRpbmctdG9wIiwicGVyc3BlY3RpdmUiLCJyaWdodCIsInNoYXBlLW1hcmdpbiIsInN0cm9rZS1kYXNob2Zmc2V0IiwidGV4dC1pbmRlbnQiLCJ0b3AiLCJ2ZXJ0aWNhbC1hbGlnbiIsIndvcmQtc3BhY2luZyJdKX0oYiksZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGIpe3JldHVybiBhLmNvbnN1bWVMZW5ndGhPclBlcmNlbnQoYil8fGEuY29uc3VtZVRva2VuKC9eYXV0by8sYil9ZnVuY3Rpb24gZChiKXt2YXIgZD1hLmNvbnN1bWVMaXN0KFthLmlnbm9yZShhLmNvbnN1bWVUb2tlbi5iaW5kKG51bGwsL15yZWN0LykpLGEuaWdub3JlKGEuY29uc3VtZVRva2VuLmJpbmQobnVsbCwvXlwoLykpLGEuY29uc3VtZVJlcGVhdGVkLmJpbmQobnVsbCxjLC9eLC8pLGEuaWdub3JlKGEuY29uc3VtZVRva2VuLmJpbmQobnVsbCwvXlwpLykpXSxiKTtpZihkJiY0PT1kWzBdLmxlbmd0aClyZXR1cm4gZFswXX1mdW5jdGlvbiBlKGIsYyl7cmV0dXJuImF1dG8iPT1ifHwiYXV0byI9PWM/WyEwLCExLGZ1bmN0aW9uKGQpe3ZhciBlPWQ/YjpjO2lmKCJhdXRvIj09ZSlyZXR1cm4iYXV0byI7dmFyIGY9YS5tZXJnZURpbWVuc2lvbnMoZSxlKTtyZXR1cm4gZlsyXShmWzBdKX1dOmEubWVyZ2VEaW1lbnNpb25zKGIsYyl9ZnVuY3Rpb24gZihhKXtyZXR1cm4icmVjdCgiK2ErIikifXZhciBnPWEubWVyZ2VXcmFwcGVkTmVzdGVkUmVwZWF0ZWQuYmluZChudWxsLGYsZSwiLCAiKTthLnBhcnNlQm94PWQsYS5tZXJnZUJveGVzPWcsYS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihkLGcsWyJjbGlwIl0pfShiKSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPTA7cmV0dXJuIGEubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhPT09az9iW2MrK106YX0pfX1mdW5jdGlvbiBkKGEpe3JldHVybiBhfWZ1bmN0aW9uIGUoYil7aWYoIm5vbmUiPT0oYj1iLnRvTG93ZXJDYXNlKCkudHJpbSgpKSlyZXR1cm5bXTtmb3IodmFyIGMsZD0vXHMqKFx3KylcKChbXildKilcKS9nLGU9W10sZj0wO2M9ZC5leGVjKGIpOyl7aWYoYy5pbmRleCE9ZilyZXR1cm47Zj1jLmluZGV4K2NbMF0ubGVuZ3RoO3ZhciBnPWNbMV0saD1uW2ddO2lmKCFoKXJldHVybjt2YXIgaT1jWzJdLnNwbGl0KCIsIiksaj1oWzBdO2lmKGoubGVuZ3RoPGkubGVuZ3RoKXJldHVybjtmb3IodmFyIGs9W10sbz0wO288ai5sZW5ndGg7bysrKXt2YXIgcCxxPWlbb10scj1qW29dO2lmKHZvaWQgMD09PShwPXE/e0E6ZnVuY3Rpb24oYil7cmV0dXJuIjAiPT1iLnRyaW0oKT9tOmEucGFyc2VBbmdsZShiKX0sTjphLnBhcnNlTnVtYmVyLFQ6YS5wYXJzZUxlbmd0aE9yUGVyY2VudCxMOmEucGFyc2VMZW5ndGh9W3IudG9VcHBlckNhc2UoKV0ocSk6e2E6bSxuOmtbMF0sdDpsfVtyXSkpcmV0dXJuO2sucHVzaChwKX1pZihlLnB1c2goe3Q6ZyxkOmt9KSxkLmxhc3RJbmRleD09Yi5sZW5ndGgpcmV0dXJuIGV9fWZ1bmN0aW9uIGYoYSl7cmV0dXJuIGEudG9GaXhlZCg2KS5yZXBsYWNlKCIuMDAwMDAwIiwiIil9ZnVuY3Rpb24gZyhiLGMpe2lmKGIuZGVjb21wb3NpdGlvblBhaXIhPT1jKXtiLmRlY29tcG9zaXRpb25QYWlyPWM7dmFyIGQ9YS5tYWtlTWF0cml4RGVjb21wb3NpdGlvbihiKX1pZihjLmRlY29tcG9zaXRpb25QYWlyIT09Yil7Yy5kZWNvbXBvc2l0aW9uUGFpcj1iO3ZhciBlPWEubWFrZU1hdHJpeERlY29tcG9zaXRpb24oYyl9cmV0dXJuIG51bGw9PWRbMF18fG51bGw9PWVbMF0/W1shMV0sWyEwXSxmdW5jdGlvbihhKXtyZXR1cm4gYT9jWzBdLmQ6YlswXS5kfV06KGRbMF0ucHVzaCgwKSxlWzBdLnB1c2goMSksW2QsZSxmdW5jdGlvbihiKXt2YXIgYz1hLnF1YXQoZFswXVszXSxlWzBdWzNdLGJbNV0pO3JldHVybiBhLmNvbXBvc2VNYXRyaXgoYlswXSxiWzFdLGJbMl0sYyxiWzRdKS5tYXAoZikuam9pbigiLCIpfV0pfWZ1bmN0aW9uIGgoYSl7cmV0dXJuIGEucmVwbGFjZSgvW3h5XS8sIiIpfWZ1bmN0aW9uIGkoYSl7cmV0dXJuIGEucmVwbGFjZSgvKHh8eXx6fDNkKT8kLywiM2QiKX1mdW5jdGlvbiBqKGIsYyl7dmFyIGQ9YS5tYWtlTWF0cml4RGVjb21wb3NpdGlvbiYmITAsZT0hMTtpZighYi5sZW5ndGh8fCFjLmxlbmd0aCl7Yi5sZW5ndGh8fChlPSEwLGI9YyxjPVtdKTtmb3IodmFyIGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGo9YltmXS50LGs9YltmXS5kLGw9InNjYWxlIj09ai5zdWJzdHIoMCw1KT8xOjA7Yy5wdXNoKHt0OmosZDprLm1hcChmdW5jdGlvbihhKXtpZigibnVtYmVyIj09dHlwZW9mIGEpcmV0dXJuIGw7dmFyIGI9e307Zm9yKHZhciBjIGluIGEpYltjXT1sO3JldHVybiBifSl9KX19dmFyIG09ZnVuY3Rpb24oYSxiKXtyZXR1cm4icGVyc3BlY3RpdmUiPT1hJiYicGVyc3BlY3RpdmUiPT1ifHwoIm1hdHJpeCI9PWF8fCJtYXRyaXgzZCI9PWEpJiYoIm1hdHJpeCI9PWJ8fCJtYXRyaXgzZCI9PWIpfSxvPVtdLHA9W10scT1bXTtpZihiLmxlbmd0aCE9Yy5sZW5ndGgpe2lmKCFkKXJldHVybjt2YXIgcj1nKGIsYyk7bz1bclswXV0scD1bclsxXV0scT1bWyJtYXRyaXgiLFtyWzJdXV1dfWVsc2UgZm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspe3ZhciBqLHM9YltmXS50LHQ9Y1tmXS50LHU9YltmXS5kLHY9Y1tmXS5kLHc9bltzXSx4PW5bdF07aWYobShzLHQpKXtpZighZClyZXR1cm47dmFyIHI9ZyhbYltmXV0sW2NbZl1dKTtvLnB1c2goclswXSkscC5wdXNoKHJbMV0pLHEucHVzaChbIm1hdHJpeCIsW3JbMl1dXSl9ZWxzZXtpZihzPT10KWo9cztlbHNlIGlmKHdbMl0mJnhbMl0mJmgocyk9PWgodCkpaj1oKHMpLHU9d1syXSh1KSx2PXhbMl0odik7ZWxzZXtpZighd1sxXXx8IXhbMV18fGkocykhPWkodCkpe2lmKCFkKXJldHVybjt2YXIgcj1nKGIsYyk7bz1bclswXV0scD1bclsxXV0scT1bWyJtYXRyaXgiLFtyWzJdXV1dO2JyZWFrfWo9aShzKSx1PXdbMV0odSksdj14WzFdKHYpfWZvcih2YXIgeT1bXSx6PVtdLEE9W10sQj0wO0I8dS5sZW5ndGg7QisrKXt2YXIgQz0ibnVtYmVyIj09dHlwZW9mIHVbQl0/YS5tZXJnZU51bWJlcnM6YS5tZXJnZURpbWVuc2lvbnMscj1DKHVbQl0sdltCXSk7eVtCXT1yWzBdLHpbQl09clsxXSxBLnB1c2goclsyXSl9by5wdXNoKHkpLHAucHVzaCh6KSxxLnB1c2goW2osQV0pfX1pZihlKXt2YXIgRD1vO289cCxwPUR9cmV0dXJuW28scCxmdW5jdGlvbihhKXtyZXR1cm4gYS5tYXAoZnVuY3Rpb24oYSxiKXt2YXIgYz1hLm1hcChmdW5jdGlvbihhLGMpe3JldHVybiBxW2JdWzFdW2NdKGEpfSkuam9pbigiLCIpO3JldHVybiJtYXRyaXgiPT1xW2JdWzBdJiYxNj09Yy5zcGxpdCgiLCIpLmxlbmd0aCYmKHFbYl1bMF09Im1hdHJpeDNkIikscVtiXVswXSsiKCIrYysiKSJ9KS5qb2luKCIgIil9XX12YXIgaz1udWxsLGw9e3B4OjB9LG09e2RlZzowfSxuPXttYXRyaXg6WyJOTk5OTk4iLFtrLGssMCwwLGssaywwLDAsMCwwLDEsMCxrLGssMCwxXSxkXSxtYXRyaXgzZDpbIk5OTk5OTk5OTk5OTk5OTk4iLGRdLHJvdGF0ZTpbIkEiXSxyb3RhdGV4OlsiQSJdLHJvdGF0ZXk6WyJBIl0scm90YXRlejpbIkEiXSxyb3RhdGUzZDpbIk5OTkEiXSxwZXJzcGVjdGl2ZTpbIkwiXSxzY2FsZTpbIk5uIixjKFtrLGssMV0pLGRdLHNjYWxleDpbIk4iLGMoW2ssMSwxXSksYyhbaywxXSldLHNjYWxleTpbIk4iLGMoWzEsaywxXSksYyhbMSxrXSldLHNjYWxlejpbIk4iLGMoWzEsMSxrXSldLHNjYWxlM2Q6WyJOTk4iLGRdLHNrZXc6WyJBYSIsbnVsbCxkXSxza2V3eDpbIkEiLG51bGwsYyhbayxtXSldLHNrZXd5OlsiQSIsbnVsbCxjKFttLGtdKV0sdHJhbnNsYXRlOlsiVHQiLGMoW2ssayxsXSksZF0sdHJhbnNsYXRleDpbIlQiLGMoW2ssbCxsXSksYyhbayxsXSldLHRyYW5zbGF0ZXk6WyJUIixjKFtsLGssbF0pLGMoW2wsa10pXSx0cmFuc2xhdGV6OlsiTCIsYyhbbCxsLGtdKV0sdHJhbnNsYXRlM2Q6WyJUVEwiLGRdfTthLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsaixbInRyYW5zZm9ybSJdKSxhLnRyYW5zZm9ybVRvU3ZnTWF0cml4PWZ1bmN0aW9uKGIpe3ZhciBjPWEudHJhbnNmb3JtTGlzdFRvTWF0cml4KGUoYikpO3JldHVybiJtYXRyaXgoIitmKGNbMF0pKyIgIitmKGNbMV0pKyIgIitmKGNbNF0pKyIgIitmKGNbNV0pKyIgIitmKGNbMTJdKSsiICIrZihjWzEzXSkrIikifX0oYiksZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYil7Yi5jb25jYXQoW2FdKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2IgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlJiYoZFthXT1iKSxlW2JdPWF9KX12YXIgZD17fSxlPXt9O2MoInRyYW5zZm9ybSIsWyJ3ZWJraXRUcmFuc2Zvcm0iLCJtc1RyYW5zZm9ybSJdKSxjKCJ0cmFuc2Zvcm1PcmlnaW4iLFsid2Via2l0VHJhbnNmb3JtT3JpZ2luIl0pLGMoInBlcnNwZWN0aXZlIixbIndlYmtpdFBlcnNwZWN0aXZlIl0pLGMoInBlcnNwZWN0aXZlT3JpZ2luIixbIndlYmtpdFBlcnNwZWN0aXZlT3JpZ2luIl0pLGEucHJvcGVydHlOYW1lPWZ1bmN0aW9uKGEpe3JldHVybiBkW2FdfHxhfSxhLnVucHJlZml4ZWRQcm9wZXJ0eU5hbWU9ZnVuY3Rpb24oYSl7cmV0dXJuIGVbYV18fGF9fShiKX0oKSxmdW5jdGlvbigpe2lmKHZvaWQgMD09PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLmFuaW1hdGUoW10pLm9uY2FuY2VsKXt2YXIgYTtpZih3aW5kb3cucGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdyl2YXIgYT1mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX07ZWxzZSB2YXIgYT1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpfTt2YXIgYj1mdW5jdGlvbihhLGIsYyl7dGhpcy50YXJnZXQ9YSx0aGlzLmN1cnJlbnRUaW1lPWIsdGhpcy50aW1lbGluZVRpbWU9Yyx0aGlzLnR5cGU9ImNhbmNlbCIsdGhpcy5idWJibGVzPSExLHRoaXMuY2FuY2VsYWJsZT0hMSx0aGlzLmN1cnJlbnRUYXJnZXQ9YSx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITEsdGhpcy5ldmVudFBoYXNlPUV2ZW50LkFUX1RBUkdFVCx0aGlzLnRpbWVTdGFtcD1EYXRlLm5vdygpfSxjPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlO3dpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKGQsZSl7dmFyIGY9Yy5jYWxsKHRoaXMsZCxlKTtmLl9jYW5jZWxIYW5kbGVycz1bXSxmLm9uY2FuY2VsPW51bGw7dmFyIGc9Zi5jYW5jZWw7Zi5jYW5jZWw9ZnVuY3Rpb24oKXtnLmNhbGwodGhpcyk7dmFyIGM9bmV3IGIodGhpcyxudWxsLGEoKSksZD10aGlzLl9jYW5jZWxIYW5kbGVycy5jb25jYXQodGhpcy5vbmNhbmNlbD9bdGhpcy5vbmNhbmNlbF06W10pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtkLmZvckVhY2goZnVuY3Rpb24oYSl7YS5jYWxsKGMudGFyZ2V0LGMpfSl9LDApfTt2YXIgaD1mLmFkZEV2ZW50TGlzdGVuZXI7Zi5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEsYil7ImZ1bmN0aW9uIj09dHlwZW9mIGImJiJjYW5jZWwiPT1hP3RoaXMuX2NhbmNlbEhhbmRsZXJzLnB1c2goYik6aC5jYWxsKHRoaXMsYSxiKX07dmFyIGk9Zi5yZW1vdmVFdmVudExpc3RlbmVyO3JldHVybiBmLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSxiKXtpZigiY2FuY2VsIj09YSl7dmFyIGM9dGhpcy5fY2FuY2VsSGFuZGxlcnMuaW5kZXhPZihiKTtjPj0wJiZ0aGlzLl9jYW5jZWxIYW5kbGVycy5zcGxpY2UoYywxKX1lbHNlIGkuY2FsbCh0aGlzLGEsYil9LGZ9fX0oKSxmdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsYz1udWxsLGQ9ITE7dHJ5e3ZhciBlPWdldENvbXB1dGVkU3R5bGUoYikuZ2V0UHJvcGVydHlWYWx1ZSgib3BhY2l0eSIpLGY9IjAiPT1lPyIxIjoiMCI7Yz1iLmFuaW1hdGUoe29wYWNpdHk6W2YsZl19LHtkdXJhdGlvbjoxfSksYy5jdXJyZW50VGltZT0wLGQ9Z2V0Q29tcHV0ZWRTdHlsZShiKS5nZXRQcm9wZXJ0eVZhbHVlKCJvcGFjaXR5Iik9PWZ9Y2F0Y2goYSl7fWZpbmFsbHl7YyYmYy5jYW5jZWwoKX1pZighZCl7dmFyIGc9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFuaW1hdGU7d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24oYixjKXtyZXR1cm4gd2luZG93LlN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZBcnJheS5wcm90b3R5cGUuZnJvbSYmYltTeW1ib2wuaXRlcmF0b3JdJiYoYj1BcnJheS5mcm9tKGIpKSxBcnJheS5pc0FycmF5KGIpfHxudWxsPT09Ynx8KGI9YS5jb252ZXJ0VG9BcnJheUZvcm0oYikpLGcuY2FsbCh0aGlzLGIsYyl9fX0oYSksZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYSl7dmFyIGM9Yi50aW1lbGluZTtjLmN1cnJlbnRUaW1lPWEsYy5fZGlzY2FyZEFuaW1hdGlvbnMoKSwwPT1jLl9hbmltYXRpb25zLmxlbmd0aD9mPSExOnJlcXVlc3RBbmltYXRpb25GcmFtZShkKX12YXIgZT13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lO3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU9ZnVuY3Rpb24oYSl7cmV0dXJuIGUoZnVuY3Rpb24oYyl7Yi50aW1lbGluZS5fdXBkYXRlQW5pbWF0aW9uc1Byb21pc2VzKCksYShjKSxiLnRpbWVsaW5lLl91cGRhdGVBbmltYXRpb25zUHJvbWlzZXMoKX0pfSxiLkFuaW1hdGlvblRpbWVsaW5lPWZ1bmN0aW9uKCl7dGhpcy5fYW5pbWF0aW9ucz1bXSx0aGlzLmN1cnJlbnRUaW1lPXZvaWQgMH0sYi5BbmltYXRpb25UaW1lbGluZS5wcm90b3R5cGU9e2dldEFuaW1hdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGlzY2FyZEFuaW1hdGlvbnMoKSx0aGlzLl9hbmltYXRpb25zLnNsaWNlKCl9LF91cGRhdGVBbmltYXRpb25zUHJvbWlzZXM6ZnVuY3Rpb24oKXtiLmFuaW1hdGlvbnNXaXRoUHJvbWlzZXM9Yi5hbmltYXRpb25zV2l0aFByb21pc2VzLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5fdXBkYXRlUHJvbWlzZXMoKX0pfSxfZGlzY2FyZEFuaW1hdGlvbnM6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVBbmltYXRpb25zUHJvbWlzZXMoKSx0aGlzLl9hbmltYXRpb25zPXRoaXMuX2FuaW1hdGlvbnMuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiJmaW5pc2hlZCIhPWEucGxheVN0YXRlJiYiaWRsZSIhPWEucGxheVN0YXRlfSl9LF9wbGF5OmZ1bmN0aW9uKGEpe3ZhciBjPW5ldyBiLkFuaW1hdGlvbihhLHRoaXMpO3JldHVybiB0aGlzLl9hbmltYXRpb25zLnB1c2goYyksYi5yZXN0YXJ0V2ViQW5pbWF0aW9uc05leHRUaWNrKCksYy5fdXBkYXRlUHJvbWlzZXMoKSxjLl9hbmltYXRpb24ucGxheSgpLGMuX3VwZGF0ZVByb21pc2VzKCksY30scGxheTpmdW5jdGlvbihhKXtyZXR1cm4gYSYmYS5yZW1vdmUoKSx0aGlzLl9wbGF5KGEpfX07dmFyIGY9ITE7Yi5yZXN0YXJ0V2ViQW5pbWF0aW9uc05leHRUaWNrPWZ1bmN0aW9uKCl7Znx8KGY9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGQpKX07dmFyIGc9bmV3IGIuQW5pbWF0aW9uVGltZWxpbmU7Yi50aW1lbGluZT1nO3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LmRvY3VtZW50LCJ0aW1lbGluZSIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ319KX1jYXRjaChhKXt9dHJ5e3dpbmRvdy5kb2N1bWVudC50aW1lbGluZT1nfWNhdGNoKGEpe319KDAsYyksZnVuY3Rpb24oYSxiLGMpe2IuYW5pbWF0aW9uc1dpdGhQcm9taXNlcz1bXSxiLkFuaW1hdGlvbj1mdW5jdGlvbihiLGMpe2lmKHRoaXMuaWQ9IiIsYiYmYi5faWQmJih0aGlzLmlkPWIuX2lkKSx0aGlzLmVmZmVjdD1iLGImJihiLl9hbmltYXRpb249dGhpcyksIWMpdGhyb3cgbmV3IEVycm9yKCJBbmltYXRpb24gd2l0aCBudWxsIHRpbWVsaW5lIGlzIG5vdCBzdXBwb3J0ZWQiKTt0aGlzLl90aW1lbGluZT1jLHRoaXMuX3NlcXVlbmNlTnVtYmVyPWEuc2VxdWVuY2VOdW1iZXIrKyx0aGlzLl9ob2xkVGltZT0wLHRoaXMuX3BhdXNlZD0hMSx0aGlzLl9pc0dyb3VwPSExLHRoaXMuX2FuaW1hdGlvbj1udWxsLHRoaXMuX2NoaWxkQW5pbWF0aW9ucz1bXSx0aGlzLl9jYWxsYmFjaz1udWxsLHRoaXMuX29sZFBsYXlTdGF0ZT0iaWRsZSIsdGhpcy5fcmVidWlsZFVuZGVybHlpbmdBbmltYXRpb24oKSx0aGlzLl9hbmltYXRpb24uY2FuY2VsKCksdGhpcy5fdXBkYXRlUHJvbWlzZXMoKX0sYi5BbmltYXRpb24ucHJvdG90eXBlPXtfdXBkYXRlUHJvbWlzZXM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9vbGRQbGF5U3RhdGUsYj10aGlzLnBsYXlTdGF0ZTtyZXR1cm4gdGhpcy5fcmVhZHlQcm9taXNlJiZiIT09YSYmKCJpZGxlIj09Yj8odGhpcy5fcmVqZWN0UmVhZHlQcm9taXNlKCksdGhpcy5fcmVhZHlQcm9taXNlPXZvaWQgMCk6InBlbmRpbmciPT1hP3RoaXMuX3Jlc29sdmVSZWFkeVByb21pc2UoKToicGVuZGluZyI9PWImJih0aGlzLl9yZWFkeVByb21pc2U9dm9pZCAwKSksdGhpcy5fZmluaXNoZWRQcm9taXNlJiZiIT09YSYmKCJpZGxlIj09Yj8odGhpcy5fcmVqZWN0RmluaXNoZWRQcm9taXNlKCksdGhpcy5fZmluaXNoZWRQcm9taXNlPXZvaWQgMCk6ImZpbmlzaGVkIj09Yj90aGlzLl9yZXNvbHZlRmluaXNoZWRQcm9taXNlKCk6ImZpbmlzaGVkIj09YSYmKHRoaXMuX2ZpbmlzaGVkUHJvbWlzZT12b2lkIDApKSx0aGlzLl9vbGRQbGF5U3RhdGU9dGhpcy5wbGF5U3RhdGUsdGhpcy5fcmVhZHlQcm9taXNlfHx0aGlzLl9maW5pc2hlZFByb21pc2V9LF9yZWJ1aWxkVW5kZXJseWluZ0FuaW1hdGlvbjpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCk7dmFyIGEsYyxkLGUsZj0hIXRoaXMuX2FuaW1hdGlvbjtmJiYoYT10aGlzLnBsYXliYWNrUmF0ZSxjPXRoaXMuX3BhdXNlZCxkPXRoaXMuc3RhcnRUaW1lLGU9dGhpcy5jdXJyZW50VGltZSx0aGlzLl9hbmltYXRpb24uY2FuY2VsKCksdGhpcy5fYW5pbWF0aW9uLl93cmFwcGVyPW51bGwsdGhpcy5fYW5pbWF0aW9uPW51bGwpLCghdGhpcy5lZmZlY3R8fHRoaXMuZWZmZWN0IGluc3RhbmNlb2Ygd2luZG93LktleWZyYW1lRWZmZWN0KSYmKHRoaXMuX2FuaW1hdGlvbj1iLm5ld1VuZGVybHlpbmdBbmltYXRpb25Gb3JLZXlmcmFtZUVmZmVjdCh0aGlzLmVmZmVjdCksYi5iaW5kQW5pbWF0aW9uRm9yS2V5ZnJhbWVFZmZlY3QodGhpcykpLCh0aGlzLmVmZmVjdCBpbnN0YW5jZW9mIHdpbmRvdy5TZXF1ZW5jZUVmZmVjdHx8dGhpcy5lZmZlY3QgaW5zdGFuY2VvZiB3aW5kb3cuR3JvdXBFZmZlY3QpJiYodGhpcy5fYW5pbWF0aW9uPWIubmV3VW5kZXJseWluZ0FuaW1hdGlvbkZvckdyb3VwKHRoaXMuZWZmZWN0KSxiLmJpbmRBbmltYXRpb25Gb3JHcm91cCh0aGlzKSksdGhpcy5lZmZlY3QmJnRoaXMuZWZmZWN0Ll9vbnNhbXBsZSYmYi5iaW5kQW5pbWF0aW9uRm9yQ3VzdG9tRWZmZWN0KHRoaXMpLGYmJigxIT1hJiYodGhpcy5wbGF5YmFja1JhdGU9YSksbnVsbCE9PWQ/dGhpcy5zdGFydFRpbWU9ZDpudWxsIT09ZT90aGlzLmN1cnJlbnRUaW1lPWU6bnVsbCE9PXRoaXMuX2hvbGRUaW1lJiYodGhpcy5jdXJyZW50VGltZT10aGlzLl9ob2xkVGltZSksYyYmdGhpcy5wYXVzZSgpKSx0aGlzLl91cGRhdGVQcm9taXNlcygpfSxfdXBkYXRlQ2hpbGRyZW46ZnVuY3Rpb24oKXtpZih0aGlzLmVmZmVjdCYmImlkbGUiIT10aGlzLnBsYXlTdGF0ZSl7dmFyIGE9dGhpcy5lZmZlY3QuX3RpbWluZy5kZWxheTt0aGlzLl9jaGlsZEFuaW1hdGlvbnMuZm9yRWFjaChmdW5jdGlvbihjKXt0aGlzLl9hcnJhbmdlQ2hpbGRyZW4oYyxhKSx0aGlzLmVmZmVjdCBpbnN0YW5jZW9mIHdpbmRvdy5TZXF1ZW5jZUVmZmVjdCYmKGErPWIuZ3JvdXBDaGlsZER1cmF0aW9uKGMuZWZmZWN0KSl9LmJpbmQodGhpcykpfX0sX3NldEV4dGVybmFsQW5pbWF0aW9uOmZ1bmN0aW9uKGEpe2lmKHRoaXMuZWZmZWN0JiZ0aGlzLl9pc0dyb3VwKWZvcih2YXIgYj0wO2I8dGhpcy5lZmZlY3QuY2hpbGRyZW4ubGVuZ3RoO2IrKyl0aGlzLmVmZmVjdC5jaGlsZHJlbltiXS5fYW5pbWF0aW9uPWEsdGhpcy5fY2hpbGRBbmltYXRpb25zW2JdLl9zZXRFeHRlcm5hbEFuaW1hdGlvbihhKX0sX2NvbnN0cnVjdENoaWxkQW5pbWF0aW9uczpmdW5jdGlvbigpe2lmKHRoaXMuZWZmZWN0JiZ0aGlzLl9pc0dyb3VwKXt2YXIgYT10aGlzLmVmZmVjdC5fdGltaW5nLmRlbGF5O3RoaXMuX3JlbW92ZUNoaWxkQW5pbWF0aW9ucygpLHRoaXMuZWZmZWN0LmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oYyl7dmFyIGQ9Yi50aW1lbGluZS5fcGxheShjKTt0aGlzLl9jaGlsZEFuaW1hdGlvbnMucHVzaChkKSxkLnBsYXliYWNrUmF0ZT10aGlzLnBsYXliYWNrUmF0ZSx0aGlzLl9wYXVzZWQmJmQucGF1c2UoKSxjLl9hbmltYXRpb249dGhpcy5lZmZlY3QuX2FuaW1hdGlvbix0aGlzLl9hcnJhbmdlQ2hpbGRyZW4oZCxhKSx0aGlzLmVmZmVjdCBpbnN0YW5jZW9mIHdpbmRvdy5TZXF1ZW5jZUVmZmVjdCYmKGErPWIuZ3JvdXBDaGlsZER1cmF0aW9uKGMpKX0uYmluZCh0aGlzKSl9fSxfYXJyYW5nZUNoaWxkcmVuOmZ1bmN0aW9uKGEsYil7bnVsbD09PXRoaXMuc3RhcnRUaW1lP2EuY3VycmVudFRpbWU9dGhpcy5jdXJyZW50VGltZS1iL3RoaXMucGxheWJhY2tSYXRlOmEuc3RhcnRUaW1lIT09dGhpcy5zdGFydFRpbWUrYi90aGlzLnBsYXliYWNrUmF0ZSYmKGEuc3RhcnRUaW1lPXRoaXMuc3RhcnRUaW1lK2IvdGhpcy5wbGF5YmFja1JhdGUpfSxnZXQgdGltZWxpbmUoKXtyZXR1cm4gdGhpcy5fdGltZWxpbmV9LGdldCBwbGF5U3RhdGUoKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uP3RoaXMuX2FuaW1hdGlvbi5wbGF5U3RhdGU6ImlkbGUifSxnZXQgZmluaXNoZWQoKXtyZXR1cm4gd2luZG93LlByb21pc2U/KHRoaXMuX2ZpbmlzaGVkUHJvbWlzZXx8KC0xPT1iLmFuaW1hdGlvbnNXaXRoUHJvbWlzZXMuaW5kZXhPZih0aGlzKSYmYi5hbmltYXRpb25zV2l0aFByb21pc2VzLnB1c2godGhpcyksdGhpcy5fZmluaXNoZWRQcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGEsYil7dGhpcy5fcmVzb2x2ZUZpbmlzaGVkUHJvbWlzZT1mdW5jdGlvbigpe2EodGhpcyl9LHRoaXMuX3JlamVjdEZpbmlzaGVkUHJvbWlzZT1mdW5jdGlvbigpe2Ioe3R5cGU6RE9NRXhjZXB0aW9uLkFCT1JUX0VSUixuYW1lOiJBYm9ydEVycm9yIn0pfX0uYmluZCh0aGlzKSksImZpbmlzaGVkIj09dGhpcy5wbGF5U3RhdGUmJnRoaXMuX3Jlc29sdmVGaW5pc2hlZFByb21pc2UoKSksdGhpcy5fZmluaXNoZWRQcm9taXNlKTooY29uc29sZS53YXJuKCJBbmltYXRpb24gUHJvbWlzZXMgcmVxdWlyZSBKYXZhU2NyaXB0IFByb21pc2UgY29uc3RydWN0b3IiKSxudWxsKX0sZ2V0IHJlYWR5KCl7cmV0dXJuIHdpbmRvdy5Qcm9taXNlPyh0aGlzLl9yZWFkeVByb21pc2V8fCgtMT09Yi5hbmltYXRpb25zV2l0aFByb21pc2VzLmluZGV4T2YodGhpcykmJmIuYW5pbWF0aW9uc1dpdGhQcm9taXNlcy5wdXNoKHRoaXMpLHRoaXMuX3JlYWR5UHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihhLGIpe3RoaXMuX3Jlc29sdmVSZWFkeVByb21pc2U9ZnVuY3Rpb24oKXthKHRoaXMpfSx0aGlzLl9yZWplY3RSZWFkeVByb21pc2U9ZnVuY3Rpb24oKXtiKHt0eXBlOkRPTUV4Y2VwdGlvbi5BQk9SVF9FUlIsbmFtZToiQWJvcnRFcnJvciJ9KX19LmJpbmQodGhpcykpLCJwZW5kaW5nIiE9PXRoaXMucGxheVN0YXRlJiZ0aGlzLl9yZXNvbHZlUmVhZHlQcm9taXNlKCkpLHRoaXMuX3JlYWR5UHJvbWlzZSk6KGNvbnNvbGUud2FybigiQW5pbWF0aW9uIFByb21pc2VzIHJlcXVpcmUgSmF2YVNjcmlwdCBQcm9taXNlIGNvbnN0cnVjdG9yIiksbnVsbCl9LGdldCBvbmZpbmlzaCgpe3JldHVybiB0aGlzLl9hbmltYXRpb24ub25maW5pc2h9LHNldCBvbmZpbmlzaChhKXt0aGlzLl9hbmltYXRpb24ub25maW5pc2g9ImZ1bmN0aW9uIj09dHlwZW9mIGE/ZnVuY3Rpb24oYil7Yi50YXJnZXQ9dGhpcyxhLmNhbGwodGhpcyxiKX0uYmluZCh0aGlzKTphfSxnZXQgb25jYW5jZWwoKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uLm9uY2FuY2VsfSxzZXQgb25jYW5jZWwoYSl7dGhpcy5fYW5pbWF0aW9uLm9uY2FuY2VsPSJmdW5jdGlvbiI9PXR5cGVvZiBhP2Z1bmN0aW9uKGIpe2IudGFyZ2V0PXRoaXMsYS5jYWxsKHRoaXMsYil9LmJpbmQodGhpcyk6YX0sZ2V0IGN1cnJlbnRUaW1lKCl7dGhpcy5fdXBkYXRlUHJvbWlzZXMoKTt2YXIgYT10aGlzLl9hbmltYXRpb24uY3VycmVudFRpbWU7cmV0dXJuIHRoaXMuX3VwZGF0ZVByb21pc2VzKCksYX0sc2V0IGN1cnJlbnRUaW1lKGEpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCksdGhpcy5fYW5pbWF0aW9uLmN1cnJlbnRUaW1lPWlzRmluaXRlKGEpP2E6TWF0aC5zaWduKGEpKk51bWJlci5NQVhfVkFMVUUsdGhpcy5fcmVnaXN0ZXIoKSx0aGlzLl9mb3JFYWNoQ2hpbGQoZnVuY3Rpb24oYixjKXtiLmN1cnJlbnRUaW1lPWEtY30pLHRoaXMuX3VwZGF0ZVByb21pc2VzKCl9LGdldCBzdGFydFRpbWUoKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uLnN0YXJ0VGltZX0sc2V0IHN0YXJ0VGltZShhKXt0aGlzLl91cGRhdGVQcm9taXNlcygpLHRoaXMuX2FuaW1hdGlvbi5zdGFydFRpbWU9aXNGaW5pdGUoYSk/YTpNYXRoLnNpZ24oYSkqTnVtYmVyLk1BWF9WQUxVRSx0aGlzLl9yZWdpc3RlcigpLHRoaXMuX2ZvckVhY2hDaGlsZChmdW5jdGlvbihiLGMpe2Iuc3RhcnRUaW1lPWErY30pLHRoaXMuX3VwZGF0ZVByb21pc2VzKCl9LGdldCBwbGF5YmFja1JhdGUoKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uLnBsYXliYWNrUmF0ZX0sc2V0IHBsYXliYWNrUmF0ZShhKXt0aGlzLl91cGRhdGVQcm9taXNlcygpO3ZhciBiPXRoaXMuY3VycmVudFRpbWU7dGhpcy5fYW5pbWF0aW9uLnBsYXliYWNrUmF0ZT1hLHRoaXMuX2ZvckVhY2hDaGlsZChmdW5jdGlvbihiKXtiLnBsYXliYWNrUmF0ZT1hfSksbnVsbCE9PWImJih0aGlzLmN1cnJlbnRUaW1lPWIpLHRoaXMuX3VwZGF0ZVByb21pc2VzKCl9LHBsYXk6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVQcm9taXNlcygpLHRoaXMuX3BhdXNlZD0hMSx0aGlzLl9hbmltYXRpb24ucGxheSgpLC0xPT10aGlzLl90aW1lbGluZS5fYW5pbWF0aW9ucy5pbmRleE9mKHRoaXMpJiZ0aGlzLl90aW1lbGluZS5fYW5pbWF0aW9ucy5wdXNoKHRoaXMpLHRoaXMuX3JlZ2lzdGVyKCksYi5hd2FpdFN0YXJ0VGltZSh0aGlzKSx0aGlzLl9mb3JFYWNoQ2hpbGQoZnVuY3Rpb24oYSl7dmFyIGI9YS5jdXJyZW50VGltZTthLnBsYXkoKSxhLmN1cnJlbnRUaW1lPWJ9KSx0aGlzLl91cGRhdGVQcm9taXNlcygpfSxwYXVzZTpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCksdGhpcy5jdXJyZW50VGltZSYmKHRoaXMuX2hvbGRUaW1lPXRoaXMuY3VycmVudFRpbWUpLHRoaXMuX2FuaW1hdGlvbi5wYXVzZSgpLHRoaXMuX3JlZ2lzdGVyKCksdGhpcy5fZm9yRWFjaENoaWxkKGZ1bmN0aW9uKGEpe2EucGF1c2UoKX0pLHRoaXMuX3BhdXNlZD0hMCx0aGlzLl91cGRhdGVQcm9taXNlcygpfSxmaW5pc2g6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVQcm9taXNlcygpLHRoaXMuX2FuaW1hdGlvbi5maW5pc2goKSx0aGlzLl9yZWdpc3RlcigpLHRoaXMuX3VwZGF0ZVByb21pc2VzKCl9LGNhbmNlbDpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCksdGhpcy5fYW5pbWF0aW9uLmNhbmNlbCgpLHRoaXMuX3JlZ2lzdGVyKCksdGhpcy5fcmVtb3ZlQ2hpbGRBbmltYXRpb25zKCksdGhpcy5fdXBkYXRlUHJvbWlzZXMoKX0scmV2ZXJzZTpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCk7dmFyIGE9dGhpcy5jdXJyZW50VGltZTt0aGlzLl9hbmltYXRpb24ucmV2ZXJzZSgpLHRoaXMuX2ZvckVhY2hDaGlsZChmdW5jdGlvbihhKXthLnJldmVyc2UoKX0pLG51bGwhPT1hJiYodGhpcy5jdXJyZW50VGltZT1hKSx0aGlzLl91cGRhdGVQcm9taXNlcygpfSxhZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9YjsiZnVuY3Rpb24iPT10eXBlb2YgYiYmKGM9ZnVuY3Rpb24oYSl7YS50YXJnZXQ9dGhpcyxiLmNhbGwodGhpcyxhKX0uYmluZCh0aGlzKSxiLl93cmFwcGVyPWMpLHRoaXMuX2FuaW1hdGlvbi5hZGRFdmVudExpc3RlbmVyKGEsYyl9LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oYSxiKXt0aGlzLl9hbmltYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGImJmIuX3dyYXBwZXJ8fGIpfSxfcmVtb3ZlQ2hpbGRBbmltYXRpb25zOmZ1bmN0aW9uKCl7Zm9yKDt0aGlzLl9jaGlsZEFuaW1hdGlvbnMubGVuZ3RoOyl0aGlzLl9jaGlsZEFuaW1hdGlvbnMucG9wKCkuY2FuY2VsKCl9LF9mb3JFYWNoQ2hpbGQ6ZnVuY3Rpb24oYil7dmFyIGM9MDtpZih0aGlzLmVmZmVjdC5jaGlsZHJlbiYmdGhpcy5fY2hpbGRBbmltYXRpb25zLmxlbmd0aDx0aGlzLmVmZmVjdC5jaGlsZHJlbi5sZW5ndGgmJnRoaXMuX2NvbnN0cnVjdENoaWxkQW5pbWF0aW9ucygpLHRoaXMuX2NoaWxkQW5pbWF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGEpe2IuY2FsbCh0aGlzLGEsYyksdGhpcy5lZmZlY3QgaW5zdGFuY2VvZiB3aW5kb3cuU2VxdWVuY2VFZmZlY3QmJihjKz1hLmVmZmVjdC5hY3RpdmVEdXJhdGlvbil9LmJpbmQodGhpcykpLCJwZW5kaW5nIiE9dGhpcy5wbGF5U3RhdGUpe3ZhciBkPXRoaXMuZWZmZWN0Ll90aW1pbmcsZT10aGlzLmN1cnJlbnRUaW1lO251bGwhPT1lJiYoZT1hLmNhbGN1bGF0ZUl0ZXJhdGlvblByb2dyZXNzKGEuY2FsY3VsYXRlQWN0aXZlRHVyYXRpb24oZCksZSxkKSksKG51bGw9PWV8fGlzTmFOKGUpKSYmdGhpcy5fcmVtb3ZlQ2hpbGRBbmltYXRpb25zKCl9fX0sd2luZG93LkFuaW1hdGlvbj1iLkFuaW1hdGlvbn0oYSxjKSxmdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChiKXt0aGlzLl9mcmFtZXM9YS5ub3JtYWxpemVLZXlmcmFtZXMoYil9ZnVuY3Rpb24gZSgpe2Zvcih2YXIgYT0hMTtpLmxlbmd0aDspaS5zaGlmdCgpLl91cGRhdGVDaGlsZHJlbigpLGE9ITA7cmV0dXJuIGF9dmFyIGY9ZnVuY3Rpb24oYSl7aWYoYS5fYW5pbWF0aW9uPXZvaWQgMCxhIGluc3RhbmNlb2Ygd2luZG93LlNlcXVlbmNlRWZmZWN0fHxhIGluc3RhbmNlb2Ygd2luZG93Lkdyb3VwRWZmZWN0KWZvcih2YXIgYj0wO2I8YS5jaGlsZHJlbi5sZW5ndGg7YisrKWYoYS5jaGlsZHJlbltiXSl9O2IucmVtb3ZlTXVsdGk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXTtkLl9wYXJlbnQ/KC0xPT1iLmluZGV4T2YoZC5fcGFyZW50KSYmYi5wdXNoKGQuX3BhcmVudCksZC5fcGFyZW50LmNoaWxkcmVuLnNwbGljZShkLl9wYXJlbnQuY2hpbGRyZW4uaW5kZXhPZihkKSwxKSxkLl9wYXJlbnQ9bnVsbCxmKGQpKTpkLl9hbmltYXRpb24mJmQuX2FuaW1hdGlvbi5lZmZlY3Q9PWQmJihkLl9hbmltYXRpb24uY2FuY2VsKCksZC5fYW5pbWF0aW9uLmVmZmVjdD1uZXcgS2V5ZnJhbWVFZmZlY3QobnVsbCxbXSksZC5fYW5pbWF0aW9uLl9jYWxsYmFjayYmKGQuX2FuaW1hdGlvbi5fY2FsbGJhY2suX2FuaW1hdGlvbj1udWxsKSxkLl9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCksZihkKSl9Zm9yKGM9MDtjPGIubGVuZ3RoO2MrKyliW2NdLl9yZWJ1aWxkKCl9LGIuS2V5ZnJhbWVFZmZlY3Q9ZnVuY3Rpb24oYixjLGUsZil7cmV0dXJuIHRoaXMudGFyZ2V0PWIsdGhpcy5fcGFyZW50PW51bGwsZT1hLm51bWVyaWNUaW1pbmdUb09iamVjdChlKSx0aGlzLl90aW1pbmdJbnB1dD1hLmNsb25lVGltaW5nSW5wdXQoZSksdGhpcy5fdGltaW5nPWEubm9ybWFsaXplVGltaW5nSW5wdXQoZSksdGhpcy50aW1pbmc9YS5tYWtlVGltaW5nKGUsITEsdGhpcyksdGhpcy50aW1pbmcuX2VmZmVjdD10aGlzLCJmdW5jdGlvbiI9PXR5cGVvZiBjPyhhLmRlcHJlY2F0ZWQoIkN1c3RvbSBLZXlmcmFtZUVmZmVjdCIsIjIwMTUtMDYtMjIiLCJVc2UgS2V5ZnJhbWVFZmZlY3Qub25zYW1wbGUgaW5zdGVhZC4iKSx0aGlzLl9ub3JtYWxpemVkS2V5ZnJhbWVzPWMpOnRoaXMuX25vcm1hbGl6ZWRLZXlmcmFtZXM9bmV3IGQoYyksdGhpcy5fa2V5ZnJhbWVzPWMsdGhpcy5hY3RpdmVEdXJhdGlvbj1hLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uKHRoaXMuX3RpbWluZyksdGhpcy5faWQ9Zix0aGlzfSxiLktleWZyYW1lRWZmZWN0LnByb3RvdHlwZT17Z2V0RnJhbWVzOmZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuX25vcm1hbGl6ZWRLZXlmcmFtZXM/dGhpcy5fbm9ybWFsaXplZEtleWZyYW1lczp0aGlzLl9ub3JtYWxpemVkS2V5ZnJhbWVzLl9mcmFtZXN9LHNldCBvbnNhbXBsZShhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5nZXRGcmFtZXMoKSl0aHJvdyBuZXcgRXJyb3IoIlNldHRpbmcgb25zYW1wbGUgb24gY3VzdG9tIGVmZmVjdCBLZXlmcmFtZUVmZmVjdCBpcyBub3Qgc3VwcG9ydGVkLiIpO3RoaXMuX29uc2FtcGxlPWEsdGhpcy5fYW5pbWF0aW9uJiZ0aGlzLl9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCl9LGdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy5fcGFyZW50fSxjbG9uZTpmdW5jdGlvbigpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLmdldEZyYW1lcygpKXRocm93IG5ldyBFcnJvcigiQ2xvbmluZyBjdXN0b20gZWZmZWN0cyBpcyBub3Qgc3VwcG9ydGVkLiIpO3ZhciBiPW5ldyBLZXlmcmFtZUVmZmVjdCh0aGlzLnRhcmdldCxbXSxhLmNsb25lVGltaW5nSW5wdXQodGhpcy5fdGltaW5nSW5wdXQpLHRoaXMuX2lkKTtyZXR1cm4gYi5fbm9ybWFsaXplZEtleWZyYW1lcz10aGlzLl9ub3JtYWxpemVkS2V5ZnJhbWVzLGIuX2tleWZyYW1lcz10aGlzLl9rZXlmcmFtZXMsYn0scmVtb3ZlOmZ1bmN0aW9uKCl7Yi5yZW1vdmVNdWx0aShbdGhpc10pfX07dmFyIGc9RWxlbWVudC5wcm90b3R5cGUuYW5pbWF0ZTtFbGVtZW50LnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKGEsYyl7dmFyIGQ9IiI7cmV0dXJuIGMmJmMuaWQmJihkPWMuaWQpLGIudGltZWxpbmUuX3BsYXkobmV3IGIuS2V5ZnJhbWVFZmZlY3QodGhpcyxhLGMsZCkpfTt2YXIgaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkaXYiKTtiLm5ld1VuZGVybHlpbmdBbmltYXRpb25Gb3JLZXlmcmFtZUVmZmVjdD1mdW5jdGlvbihhKXtpZihhKXt2YXIgYj1hLnRhcmdldHx8aCxjPWEuX2tleWZyYW1lczsiZnVuY3Rpb24iPT10eXBlb2YgYyYmKGM9W10pO3ZhciBkPWEuX3RpbWluZ0lucHV0O2QuaWQ9YS5faWR9ZWxzZSB2YXIgYj1oLGM9W10sZD0wO3JldHVybiBnLmFwcGx5KGIsW2MsZF0pfSxiLmJpbmRBbmltYXRpb25Gb3JLZXlmcmFtZUVmZmVjdD1mdW5jdGlvbihhKXthLmVmZmVjdCYmImZ1bmN0aW9uIj09dHlwZW9mIGEuZWZmZWN0Ll9ub3JtYWxpemVkS2V5ZnJhbWVzJiZiLmJpbmRBbmltYXRpb25Gb3JDdXN0b21FZmZlY3QoYSl9O3ZhciBpPVtdO2IuYXdhaXRTdGFydFRpbWU9ZnVuY3Rpb24oYSl7bnVsbD09PWEuc3RhcnRUaW1lJiZhLl9pc0dyb3VwJiYoMD09aS5sZW5ndGgmJnJlcXVlc3RBbmltYXRpb25GcmFtZShlKSxpLnB1c2goYSkpfTt2YXIgaj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZTtPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCJnZXRDb21wdXRlZFN0eWxlIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oKXtiLnRpbWVsaW5lLl91cGRhdGVBbmltYXRpb25zUHJvbWlzZXMoKTt2YXIgYT1qLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZSgpJiYoYT1qLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksYi50aW1lbGluZS5fdXBkYXRlQW5pbWF0aW9uc1Byb21pc2VzKCksYX19KSx3aW5kb3cuS2V5ZnJhbWVFZmZlY3Q9Yi5LZXlmcmFtZUVmZmVjdCx3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuZ2V0QW5pbWF0aW9ucz1mdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC50aW1lbGluZS5nZXRBbmltYXRpb25zKCkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT09YS5lZmZlY3QmJmEuZWZmZWN0LnRhcmdldD09dGhpc30uYmluZCh0aGlzKSl9fShhLGMpLGZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGEpe2EuX3JlZ2lzdGVyZWR8fChhLl9yZWdpc3RlcmVkPSEwLGcucHVzaChhKSxofHwoaD0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSkpKX1mdW5jdGlvbiBlKGEpe3ZhciBiPWc7Zz1bXSxiLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5fc2VxdWVuY2VOdW1iZXItYi5fc2VxdWVuY2VOdW1iZXJ9KSxiPWIuZmlsdGVyKGZ1bmN0aW9uKGEpe2EoKTt2YXIgYj1hLl9hbmltYXRpb24/YS5fYW5pbWF0aW9uLnBsYXlTdGF0ZToiaWRsZSI7cmV0dXJuInJ1bm5pbmciIT1iJiYicGVuZGluZyIhPWImJihhLl9yZWdpc3RlcmVkPSExKSxhLl9yZWdpc3RlcmVkfSksZy5wdXNoLmFwcGx5KGcsYiksZy5sZW5ndGg/KGg9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpKTpoPSExfXZhciBmPShkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkaXYiKSwwKTtiLmJpbmRBbmltYXRpb25Gb3JDdXN0b21FZmZlY3Q9ZnVuY3Rpb24oYil7dmFyIGMsZT1iLmVmZmVjdC50YXJnZXQsZz0iZnVuY3Rpb24iPT10eXBlb2YgYi5lZmZlY3QuZ2V0RnJhbWVzKCk7Yz1nP2IuZWZmZWN0LmdldEZyYW1lcygpOmIuZWZmZWN0Ll9vbnNhbXBsZTt2YXIgaD1iLmVmZmVjdC50aW1pbmcsaT1udWxsO2g9YS5ub3JtYWxpemVUaW1pbmdJbnB1dChoKTt2YXIgaj1mdW5jdGlvbigpe3ZhciBkPWouX2FuaW1hdGlvbj9qLl9hbmltYXRpb24uY3VycmVudFRpbWU6bnVsbDtudWxsIT09ZCYmKGQ9YS5jYWxjdWxhdGVJdGVyYXRpb25Qcm9ncmVzcyhhLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uKGgpLGQsaCksaXNOYU4oZCkmJihkPW51bGwpKSxkIT09aSYmKGc/YyhkLGUsYi5lZmZlY3QpOmMoZCxiLmVmZmVjdCxiLmVmZmVjdC5fYW5pbWF0aW9uKSksaT1kfTtqLl9hbmltYXRpb249YixqLl9yZWdpc3RlcmVkPSExLGouX3NlcXVlbmNlTnVtYmVyPWYrKyxiLl9jYWxsYmFjaz1qLGQoail9O3ZhciBnPVtdLGg9ITE7Yi5BbmltYXRpb24ucHJvdG90eXBlLl9yZWdpc3Rlcj1mdW5jdGlvbigpe3RoaXMuX2NhbGxiYWNrJiZkKHRoaXMuX2NhbGxiYWNrKX19KGEsYyksZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYSl7cmV0dXJuIGEuX3RpbWluZy5kZWxheSthLmFjdGl2ZUR1cmF0aW9uK2EuX3RpbWluZy5lbmREZWxheX1mdW5jdGlvbiBlKGIsYyxkKXt0aGlzLl9pZD1kLHRoaXMuX3BhcmVudD1udWxsLHRoaXMuY2hpbGRyZW49Ynx8W10sdGhpcy5fcmVwYXJlbnQodGhpcy5jaGlsZHJlbiksYz1hLm51bWVyaWNUaW1pbmdUb09iamVjdChjKSx0aGlzLl90aW1pbmdJbnB1dD1hLmNsb25lVGltaW5nSW5wdXQoYyksdGhpcy5fdGltaW5nPWEubm9ybWFsaXplVGltaW5nSW5wdXQoYywhMCksdGhpcy50aW1pbmc9YS5tYWtlVGltaW5nKGMsITAsdGhpcyksdGhpcy50aW1pbmcuX2VmZmVjdD10aGlzLCJhdXRvIj09PXRoaXMuX3RpbWluZy5kdXJhdGlvbiYmKHRoaXMuX3RpbWluZy5kdXJhdGlvbj10aGlzLmFjdGl2ZUR1cmF0aW9uKX13aW5kb3cuU2VxdWVuY2VFZmZlY3Q9ZnVuY3Rpb24oKXtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sd2luZG93Lkdyb3VwRWZmZWN0PWZ1bmN0aW9uKCl7ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGUucHJvdG90eXBlPXtfaXNBbmNlc3RvcjpmdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcztudWxsIT09Yjspe2lmKGI9PWEpcmV0dXJuITA7Yj1iLl9wYXJlbnR9cmV0dXJuITF9LF9yZWJ1aWxkOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXM7YTspImF1dG8iPT09YS50aW1pbmcuZHVyYXRpb24mJihhLl90aW1pbmcuZHVyYXRpb249YS5hY3RpdmVEdXJhdGlvbiksYT1hLl9wYXJlbnQ7dGhpcy5fYW5pbWF0aW9uJiZ0aGlzLl9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCl9LF9yZXBhcmVudDpmdW5jdGlvbihhKXtiLnJlbW92ZU11bHRpKGEpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWFbY10uX3BhcmVudD10aGlzfSxfcHV0Q2hpbGQ6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9Yj8iQ2Fubm90IGFwcGVuZCBhbiBhbmNlc3RvciBvciBzZWxmIjoiQ2Fubm90IHByZXBlbmQgYW4gYW5jZXN0b3Igb3Igc2VsZiIsZD0wO2Q8YS5sZW5ndGg7ZCsrKWlmKHRoaXMuX2lzQW5jZXN0b3IoYVtkXSkpdGhyb3d7dHlwZTpET01FeGNlcHRpb24uSElFUkFSQ0hZX1JFUVVFU1RfRVJSLG5hbWU6IkhpZXJhcmNoeVJlcXVlc3RFcnJvciIsbWVzc2FnZTpjfTtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoO2QrKyliP3RoaXMuY2hpbGRyZW4ucHVzaChhW2RdKTp0aGlzLmNoaWxkcmVuLnVuc2hpZnQoYVtkXSk7dGhpcy5fcmVwYXJlbnQoYSksdGhpcy5fcmVidWlsZCgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXt0aGlzLl9wdXRDaGlsZChhcmd1bWVudHMsITApfSxwcmVwZW5kOmZ1bmN0aW9uKCl7dGhpcy5fcHV0Q2hpbGQoYXJndW1lbnRzLCExKX0sZ2V0IHBhcmVudCgpe3JldHVybiB0aGlzLl9wYXJlbnR9LGdldCBmaXJzdENoaWxkKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoP3RoaXMuY2hpbGRyZW5bMF06bnVsbH0sZ2V0IGxhc3RDaGlsZCgpe3JldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aD90aGlzLmNoaWxkcmVuW3RoaXMuY2hpbGRyZW4ubGVuZ3RoLTFdOm51bGx9LGNsb25lOmZ1bmN0aW9uKCl7Zm9yKHZhciBiPWEuY2xvbmVUaW1pbmdJbnB1dCh0aGlzLl90aW1pbmdJbnB1dCksYz1bXSxkPTA7ZDx0aGlzLmNoaWxkcmVuLmxlbmd0aDtkKyspYy5wdXNoKHRoaXMuY2hpbGRyZW5bZF0uY2xvbmUoKSk7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBHcm91cEVmZmVjdD9uZXcgR3JvdXBFZmZlY3QoYyxiKTpuZXcgU2VxdWVuY2VFZmZlY3QoYyxiKX0scmVtb3ZlOmZ1bmN0aW9uKCl7Yi5yZW1vdmVNdWx0aShbdGhpc10pfX0sd2luZG93LlNlcXVlbmNlRWZmZWN0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNlcXVlbmNlRWZmZWN0LnByb3RvdHlwZSwiYWN0aXZlRHVyYXRpb24iLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgYT0wO3JldHVybiB0aGlzLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oYil7YSs9ZChiKX0pLE1hdGgubWF4KGEsMCl9fSksd2luZG93Lkdyb3VwRWZmZWN0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93Lkdyb3VwRWZmZWN0LnByb3RvdHlwZSwiYWN0aXZlRHVyYXRpb24iLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgYT0wO3JldHVybiB0aGlzLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oYil7YT1NYXRoLm1heChhLGQoYikpfSksYX19KSxiLm5ld1VuZGVybHlpbmdBbmltYXRpb25Gb3JHcm91cD1mdW5jdGlvbihjKXt2YXIgZCxlPW51bGwsZj1mdW5jdGlvbihiKXt2YXIgYz1kLl93cmFwcGVyO2lmKGMmJiJwZW5kaW5nIiE9Yy5wbGF5U3RhdGUmJmMuZWZmZWN0KXJldHVybiBudWxsPT1iP3ZvaWQgYy5fcmVtb3ZlQ2hpbGRBbmltYXRpb25zKCk6MD09YiYmYy5wbGF5YmFja1JhdGU8MCYmKGV8fChlPWEubm9ybWFsaXplVGltaW5nSW5wdXQoYy5lZmZlY3QudGltaW5nKSksYj1hLmNhbGN1bGF0ZUl0ZXJhdGlvblByb2dyZXNzKGEuY2FsY3VsYXRlQWN0aXZlRHVyYXRpb24oZSksLTEsZSksaXNOYU4oYil8fG51bGw9PWIpPyhjLl9mb3JFYWNoQ2hpbGQoZnVuY3Rpb24oYSl7YS5jdXJyZW50VGltZT0tMX0pLHZvaWQgYy5fcmVtb3ZlQ2hpbGRBbmltYXRpb25zKCkpOnZvaWQgMH0sZz1uZXcgS2V5ZnJhbWVFZmZlY3QobnVsbCxbXSxjLl90aW1pbmcsYy5faWQpO3JldHVybiBnLm9uc2FtcGxlPWYsZD1iLnRpbWVsaW5lLl9wbGF5KGcpfSxiLmJpbmRBbmltYXRpb25Gb3JHcm91cD1mdW5jdGlvbihhKXthLl9hbmltYXRpb24uX3dyYXBwZXI9YSxhLl9pc0dyb3VwPSEwLGIuYXdhaXRTdGFydFRpbWUoYSksYS5fY29uc3RydWN0Q2hpbGRBbmltYXRpb25zKCksYS5fc2V0RXh0ZXJuYWxBbmltYXRpb24oYSl9LGIuZ3JvdXBDaGlsZER1cmF0aW9uPWR9KGEsYyl9KCk7KCgpPT57dmFyIHZ2ZT1PYmplY3QuY3JlYXRlO3ZhciBCTT1PYmplY3QuZGVmaW5lUHJvcGVydHkseHZlPU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzLGJ2ZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHd2ZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyxTdmU9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMsaGR0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsTXZlPU9iamVjdC5nZXRQcm90b3R5cGVPZixwZHQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxFdmU9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgVEk9TWF0aC5wb3csZmR0PShlLHQscik9PnQgaW4gZT9CTShlLHQse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnJ9KTplW3RdPXIsaWE9KGUsdCk9Pntmb3IodmFyIHIgaW4gdHx8KHQ9e30pKXBkdC5jYWxsKHQscikmJmZkdChlLHIsdFtyXSk7aWYoaGR0KWZvcih2YXIgciBvZiBoZHQodCkpRXZlLmNhbGwodCxyKSYmZmR0KGUscix0W3JdKTtyZXR1cm4gZX0seWg9KGUsdCk9Pnh2ZShlLHd2ZSh0KSk7dmFyIEV4PShlPT50eXBlb2YgcmVxdWlyZSE9InVuZGVmaW5lZCI/cmVxdWlyZTp0eXBlb2YgUHJveHkhPSJ1bmRlZmluZWQiP25ldyBQcm94eShlLHtnZXQ6KHQscik9Pih0eXBlb2YgcmVxdWlyZSE9InVuZGVmaW5lZCI/cmVxdWlyZTp0KVtyXX0pOmUpKGZ1bmN0aW9uKGUpe2lmKHR5cGVvZiByZXF1aXJlIT0idW5kZWZpbmVkIilyZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgbmV3IEVycm9yKCdEeW5hbWljIHJlcXVpcmUgb2YgIicrZSsnIiBpcyBub3Qgc3VwcG9ydGVkJyl9KTt2YXIgTT0oZSx0KT0+KCk9PihlJiYodD1lKGU9MCkpLHQpO3ZhciBIPShlLHQpPT4oKT0+KHR8fGUoKHQ9e2V4cG9ydHM6e319KS5leHBvcnRzLHQpLHQuZXhwb3J0cyksWnM9KGUsdCk9Pntmb3IodmFyIHIgaW4gdClCTShlLHIse2dldDp0W3JdLGVudW1lcmFibGU6ITB9KX0sZGR0PShlLHQscixuKT0+e2lmKHQmJnR5cGVvZiB0PT0ib2JqZWN0Inx8dHlwZW9mIHQ9PSJmdW5jdGlvbiIpZm9yKGxldCBpIG9mIFN2ZSh0KSkhcGR0LmNhbGwoZSxpKSYmaSE9PXImJkJNKGUsaSx7Z2V0OigpPT50W2ldLGVudW1lcmFibGU6IShuPWJ2ZSh0LGkpKXx8bi5lbnVtZXJhYmxlfSk7cmV0dXJuIGV9O3ZhciBFZT0oZSx0LHIpPT4ocj1lIT1udWxsP3Z2ZShNdmUoZSkpOnt9LGRkdCh0fHwhZXx8IWUuX19lc01vZHVsZT9CTShyLCJkZWZhdWx0Iix7dmFsdWU6ZSxlbnVtZXJhYmxlOiEwfSk6cixlKSksVXQ9ZT0+ZGR0KEJNKHt9LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlKTt2YXIgUmk9KGUsdCxyKT0+bmV3IFByb21pc2UoKG4saSk9Pnt2YXIgbz1sPT57dHJ5e3Moci5uZXh0KGwpKX1jYXRjaChjKXtpKGMpfX0sYT1sPT57dHJ5e3Moci50aHJvdyhsKSl9Y2F0Y2goYyl7aShjKX19LHM9bD0+bC5kb25lP24obC52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGwudmFsdWUpLnRoZW4obyxhKTtzKChyPXIuYXBwbHkoZSx0KSkubmV4dCgpKX0pO3ZhciBIZHQ9SCgocF9yLFBJKT0+e3ZhciBtZHQsZ2R0LF9kdCx5ZHQsdmR0LHhkdCxiZHQsd2R0LFNkdCxNZHQsRWR0LFRkdCxDZHQsQ0ksaEcsQWR0LFBkdCxJZHQsVHgsTGR0LGtkdCxSZHQsTmR0LERkdCxPZHQsemR0LEZkdCxCZHQsQUk7KGZ1bmN0aW9uKGUpe3ZhciB0PXR5cGVvZiBnbG9iYWw9PSJvYmplY3QiP2dsb2JhbDp0eXBlb2Ygc2VsZj09Im9iamVjdCI/c2VsZjp0eXBlb2YgdGhpcz09Im9iamVjdCI/dGhpczp7fTt0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZSgidHNsaWIiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKG4pe2Uocih0LHIobikpKX0pOnR5cGVvZiBQST09Im9iamVjdCImJnR5cGVvZiBQSS5leHBvcnRzPT0ib2JqZWN0Ij9lKHIodCxyKFBJLmV4cG9ydHMpKSk6ZShyKHQpKTtmdW5jdGlvbiByKG4saSl7cmV0dXJuIG4hPT10JiYodHlwZW9mIE9iamVjdC5jcmVhdGU9PSJmdW5jdGlvbiI/T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pOm4uX19lc01vZHVsZT0hMCksZnVuY3Rpb24obyxhKXtyZXR1cm4gbltvXT1pP2kobyxhKTphfX19KShmdW5jdGlvbihlKXt2YXIgdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24obixpKXtuLl9fcHJvdG9fXz1pfXx8ZnVuY3Rpb24obixpKXtmb3IodmFyIG8gaW4gaSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxvKSYmKG5bb109aVtvXSl9O21kdD1mdW5jdGlvbihuLGkpe2lmKHR5cGVvZiBpIT0iZnVuY3Rpb24iJiZpIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKGkpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO3QobixpKTtmdW5jdGlvbiBvKCl7dGhpcy5jb25zdHJ1Y3Rvcj1ufW4ucHJvdG90eXBlPWk9PT1udWxsP09iamVjdC5jcmVhdGUoaSk6KG8ucHJvdG90eXBlPWkucHJvdG90eXBlLG5ldyBvKX0sZ2R0PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKG4pe2Zvcih2YXIgaSxvPTEsYT1hcmd1bWVudHMubGVuZ3RoO288YTtvKyspe2k9YXJndW1lbnRzW29dO2Zvcih2YXIgcyBpbiBpKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLHMpJiYobltzXT1pW3NdKX1yZXR1cm4gbn0sX2R0PWZ1bmN0aW9uKG4saSl7dmFyIG89e307Zm9yKHZhciBhIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sYSkmJmkuaW5kZXhPZihhKTwwJiYob1thXT1uW2FdKTtpZihuIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIHM9MCxhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobik7czxhLmxlbmd0aDtzKyspaS5pbmRleE9mKGFbc10pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChuLGFbc10pJiYob1thW3NdXT1uW2Fbc11dKTtyZXR1cm4gb30seWR0PWZ1bmN0aW9uKG4saSxvLGEpe3ZhciBzPWFyZ3VtZW50cy5sZW5ndGgsbD1zPDM/aTphPT09bnVsbD9hPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSxvKTphLGM7aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZT09ImZ1bmN0aW9uIilsPVJlZmxlY3QuZGVjb3JhdGUobixpLG8sYSk7ZWxzZSBmb3IodmFyIHU9bi5sZW5ndGgtMTt1Pj0wO3UtLSkoYz1uW3VdKSYmKGw9KHM8Mz9jKGwpOnM+Mz9jKGksbyxsKTpjKGksbykpfHxsKTtyZXR1cm4gcz4zJiZsJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxvLGwpLGx9LHZkdD1mdW5jdGlvbihuLGkpe3JldHVybiBmdW5jdGlvbihvLGEpe2kobyxhLG4pfX0seGR0PWZ1bmN0aW9uKG4saSxvLGEscyxsKXtmdW5jdGlvbiBjKFMpe2lmKFMhPT12b2lkIDAmJnR5cGVvZiBTIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIFN9Zm9yKHZhciB1PWEua2luZCxoPXU9PT0iZ2V0dGVyIj8iZ2V0Ijp1PT09InNldHRlciI/InNldCI6InZhbHVlIixmPSFpJiZuP2Euc3RhdGljP246bi5wcm90b3R5cGU6bnVsbCxwPWl8fChmP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZixhLm5hbWUpOnt9KSxkLGc9ITEsXz1vLmxlbmd0aC0xO18+PTA7Xy0tKXt2YXIgeT17fTtmb3IodmFyIHggaW4gYSl5W3hdPXg9PT0iYWNjZXNzIj97fTphW3hdO2Zvcih2YXIgeCBpbiBhLmFjY2Vzcyl5LmFjY2Vzc1t4XT1hLmFjY2Vzc1t4XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKFMpe2lmKGcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bC5wdXNoKGMoU3x8bnVsbCkpfTt2YXIgYj0oMCxvW19dKSh1PT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtoXSx5KTtpZih1PT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPWMoYi5nZXQpKSYmKHAuZ2V0PWQpLChkPWMoYi5zZXQpKSYmKHAuc2V0PWQpLChkPWMoYi5pbml0KSkmJnMucHVzaChkKX1lbHNlKGQ9YyhiKSkmJih1PT09ImZpZWxkIj9zLnB1c2goZCk6cFtoXT1kKX1mJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZixhLm5hbWUscCksZz0hMH0sYmR0PWZ1bmN0aW9uKG4saSxvKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGkubGVuZ3RoO3MrKylvPWE/aVtzXS5jYWxsKG4sbyk6aVtzXS5jYWxsKG4pO3JldHVybiBhP286dm9pZCAwfSx3ZHQ9ZnVuY3Rpb24obil7cmV0dXJuIHR5cGVvZiBuPT0ic3ltYm9sIj9uOiIiLmNvbmNhdChuKX0sU2R0PWZ1bmN0aW9uKG4saSxvKXtyZXR1cm4gdHlwZW9mIGk9PSJzeW1ib2wiJiYoaT1pLmRlc2NyaXB0aW9uPyJbIi5jb25jYXQoaS5kZXNjcmlwdGlvbiwiXSIpOiIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwibmFtZSIse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTpvPyIiLmNvbmNhdChvLCIgIixpKTppfSl9LE1kdD1mdW5jdGlvbihuLGkpe2lmKHR5cGVvZiBSZWZsZWN0PT0ib2JqZWN0IiYmdHlwZW9mIFJlZmxlY3QubWV0YWRhdGE9PSJmdW5jdGlvbiIpcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobixpKX0sRWR0PWZ1bmN0aW9uKG4saSxvLGEpe2Z1bmN0aW9uIHMobCl7cmV0dXJuIGwgaW5zdGFuY2VvZiBvP2w6bmV3IG8oZnVuY3Rpb24oYyl7YyhsKX0pfXJldHVybiBuZXcob3x8KG89UHJvbWlzZSkpKGZ1bmN0aW9uKGwsYyl7ZnVuY3Rpb24gdShwKXt0cnl7ZihhLm5leHQocCkpfWNhdGNoKGQpe2MoZCl9fWZ1bmN0aW9uIGgocCl7dHJ5e2YoYS50aHJvdyhwKSl9Y2F0Y2goZCl7YyhkKX19ZnVuY3Rpb24gZihwKXtwLmRvbmU/bChwLnZhbHVlKTpzKHAudmFsdWUpLnRoZW4odSxoKX1mKChhPWEuYXBwbHkobixpfHxbXSkpLm5leHQoKSl9KX0sVGR0PWZ1bmN0aW9uKG4saSl7dmFyIG89e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKGxbMF0mMSl0aHJvdyBsWzFdO3JldHVybiBsWzFdfSx0cnlzOltdLG9wczpbXX0sYSxzLGwsYztyZXR1cm4gYz17bmV4dDp1KDApLHRocm93OnUoMSkscmV0dXJuOnUoMil9LHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJihjW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGM7ZnVuY3Rpb24gdShmKXtyZXR1cm4gZnVuY3Rpb24ocCl7cmV0dXJuIGgoW2YscF0pfX1mdW5jdGlvbiBoKGYpe2lmKGEpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7YyYmKGM9MCxmWzBdJiYobz0wKSksbzspdHJ5e2lmKGE9MSxzJiYobD1mWzBdJjI/cy5yZXR1cm46ZlswXT9zLnRocm93fHwoKGw9cy5yZXR1cm4pJiZsLmNhbGwocyksMCk6cy5uZXh0KSYmIShsPWwuY2FsbChzLGZbMV0pKS5kb25lKXJldHVybiBsO3N3aXRjaChzPTAsbCYmKGY9W2ZbMF0mMixsLnZhbHVlXSksZlswXSl7Y2FzZSAwOmNhc2UgMTpsPWY7YnJlYWs7Y2FzZSA0OnJldHVybiBvLmxhYmVsKysse3ZhbHVlOmZbMV0sZG9uZTohMX07Y2FzZSA1Om8ubGFiZWwrKyxzPWZbMV0sZj1bMF07Y29udGludWU7Y2FzZSA3OmY9by5vcHMucG9wKCksby50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYobD1vLnRyeXMsIShsPWwubGVuZ3RoPjAmJmxbbC5sZW5ndGgtMV0pJiYoZlswXT09PTZ8fGZbMF09PT0yKSl7bz0wO2NvbnRpbnVlfWlmKGZbMF09PT0zJiYoIWx8fGZbMV0+bFswXSYmZlsxXTxsWzNdKSl7by5sYWJlbD1mWzFdO2JyZWFrfWlmKGZbMF09PT02JiZvLmxhYmVsPGxbMV0pe28ubGFiZWw9bFsxXSxsPWY7YnJlYWt9aWYobCYmby5sYWJlbDxsWzJdKXtvLmxhYmVsPWxbMl0sby5vcHMucHVzaChmKTticmVha31sWzJdJiZvLm9wcy5wb3AoKSxvLnRyeXMucG9wKCk7Y29udGludWV9Zj1pLmNhbGwobixvKX1jYXRjaChwKXtmPVs2LHBdLHM9MH1maW5hbGx5e2E9bD0wfWlmKGZbMF0mNSl0aHJvdyBmWzFdO3JldHVybnt2YWx1ZTpmWzBdP2ZbMV06dm9pZCAwLGRvbmU6ITB9fX0sQ2R0PWZ1bmN0aW9uKG4saSl7Zm9yKHZhciBvIGluIG4pbyE9PSJkZWZhdWx0IiYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLG8pJiZBSShpLG4sbyl9LEFJPU9iamVjdC5jcmVhdGU/ZnVuY3Rpb24obixpLG8sYSl7YT09PXZvaWQgMCYmKGE9byk7dmFyIHM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLG8pOyghc3x8KCJnZXQiaW4gcz8haS5fX2VzTW9kdWxlOnMud3JpdGFibGV8fHMuY29uZmlndXJhYmxlKSkmJihzPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpW29dfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGEscyl9OmZ1bmN0aW9uKG4saSxvLGEpe2E9PT12b2lkIDAmJihhPW8pLG5bYV09aVtvXX0sQ0k9ZnVuY3Rpb24obil7dmFyIGk9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLml0ZXJhdG9yLG89aSYmbltpXSxhPTA7aWYobylyZXR1cm4gby5jYWxsKG4pO2lmKG4mJnR5cGVvZiBuLmxlbmd0aD09Im51bWJlciIpcmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gbiYmYT49bi5sZW5ndGgmJihuPXZvaWQgMCkse3ZhbHVlOm4mJm5bYSsrXSxkb25lOiFufX19O3Rocm93IG5ldyBUeXBlRXJyb3IoaT8iT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS4iOiJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIil9LGhHPWZ1bmN0aW9uKG4saSl7dmFyIG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmbltTeW1ib2wuaXRlcmF0b3JdO2lmKCFvKXJldHVybiBuO3ZhciBhPW8uY2FsbChuKSxzLGw9W10sYzt0cnl7Zm9yKDsoaT09PXZvaWQgMHx8aS0tID4wKSYmIShzPWEubmV4dCgpKS5kb25lOylsLnB1c2gocy52YWx1ZSl9Y2F0Y2godSl7Yz17ZXJyb3I6dX19ZmluYWxseXt0cnl7cyYmIXMuZG9uZSYmKG89YS5yZXR1cm4pJiZvLmNhbGwoYSl9ZmluYWxseXtpZihjKXRocm93IGMuZXJyb3J9fXJldHVybiBsfSxBZHQ9ZnVuY3Rpb24oKXtmb3IodmFyIG49W10saT0wO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspbj1uLmNvbmNhdChoRyhhcmd1bWVudHNbaV0pKTtyZXR1cm4gbn0sUGR0PWZ1bmN0aW9uKCl7Zm9yKHZhciBuPTAsaT0wLG89YXJndW1lbnRzLmxlbmd0aDtpPG87aSsrKW4rPWFyZ3VtZW50c1tpXS5sZW5ndGg7Zm9yKHZhciBhPUFycmF5KG4pLHM9MCxpPTA7aTxvO2krKylmb3IodmFyIGw9YXJndW1lbnRzW2ldLGM9MCx1PWwubGVuZ3RoO2M8dTtjKysscysrKWFbc109bFtjXTtyZXR1cm4gYX0sSWR0PWZ1bmN0aW9uKG4saSxvKXtpZihvfHxhcmd1bWVudHMubGVuZ3RoPT09Milmb3IodmFyIGE9MCxzPWkubGVuZ3RoLGw7YTxzO2ErKykobHx8IShhIGluIGkpKSYmKGx8fChsPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGksMCxhKSksbFthXT1pW2FdKTtyZXR1cm4gbi5jb25jYXQobHx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaSkpfSxUeD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIFR4Pyh0aGlzLnY9bix0aGlzKTpuZXcgVHgobil9LExkdD1mdW5jdGlvbihuLGksbyl7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBhPW8uYXBwbHkobixpfHxbXSkscyxsPVtdO3JldHVybiBzPXt9LGMoIm5leHQiKSxjKCJ0aHJvdyIpLGMoInJldHVybiIpLHNbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHM7ZnVuY3Rpb24gYyhnKXthW2ddJiYoc1tnXT1mdW5jdGlvbihfKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oeSx4KXtsLnB1c2goW2csXyx5LHhdKT4xfHx1KGcsXyl9KX0pfWZ1bmN0aW9uIHUoZyxfKXt0cnl7aChhW2ddKF8pKX1jYXRjaCh5KXtkKGxbMF1bM10seSl9fWZ1bmN0aW9uIGgoZyl7Zy52YWx1ZSBpbnN0YW5jZW9mIFR4P1Byb21pc2UucmVzb2x2ZShnLnZhbHVlLnYpLnRoZW4oZixwKTpkKGxbMF1bMl0sZyl9ZnVuY3Rpb24gZihnKXt1KCJuZXh0IixnKX1mdW5jdGlvbiBwKGcpe3UoInRocm93IixnKX1mdW5jdGlvbiBkKGcsXyl7ZyhfKSxsLnNoaWZ0KCksbC5sZW5ndGgmJnUobFswXVswXSxsWzBdWzFdKX19LGtkdD1mdW5jdGlvbihuKXt2YXIgaSxvO3JldHVybiBpPXt9LGEoIm5leHQiKSxhKCJ0aHJvdyIsZnVuY3Rpb24ocyl7dGhyb3cgc30pLGEoInJldHVybiIpLGlbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxpO2Z1bmN0aW9uIGEocyxsKXtpW3NdPW5bc10/ZnVuY3Rpb24oYyl7cmV0dXJuKG89IW8pP3t2YWx1ZTpUeChuW3NdKGMpKSxkb25lOiExfTpsP2woYyk6Y306bH19LFJkdD1mdW5jdGlvbihuKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIGk9bltTeW1ib2wuYXN5bmNJdGVyYXRvcl0sbztyZXR1cm4gaT9pLmNhbGwobik6KG49dHlwZW9mIENJPT0iZnVuY3Rpb24iP0NJKG4pOm5bU3ltYm9sLml0ZXJhdG9yXSgpLG89e30sYSgibmV4dCIpLGEoInRocm93IiksYSgicmV0dXJuIiksb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sbyk7ZnVuY3Rpb24gYShsKXtvW2xdPW5bbF0mJmZ1bmN0aW9uKGMpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih1LGgpe2M9bltsXShjKSxzKHUsaCxjLmRvbmUsYy52YWx1ZSl9KX19ZnVuY3Rpb24gcyhsLGMsdSxoKXtQcm9taXNlLnJlc29sdmUoaCkudGhlbihmdW5jdGlvbihmKXtsKHt2YWx1ZTpmLGRvbmU6dX0pfSxjKX19LE5kdD1mdW5jdGlvbihuLGkpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHk/T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sInJhdyIse3ZhbHVlOml9KTpuLnJhdz1pLG59O3ZhciByPU9iamVjdC5jcmVhdGU/ZnVuY3Rpb24obixpKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6aX0pfTpmdW5jdGlvbihuLGkpe24uZGVmYXVsdD1pfTtEZHQ9ZnVuY3Rpb24obil7aWYobiYmbi5fX2VzTW9kdWxlKXJldHVybiBuO3ZhciBpPXt9O2lmKG4hPW51bGwpZm9yKHZhciBvIGluIG4pbyE9PSJkZWZhdWx0IiYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sbykmJkFJKGksbixvKTtyZXR1cm4gcihpLG4pLGl9LE9kdD1mdW5jdGlvbihuKXtyZXR1cm4gbiYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn19LHpkdD1mdW5jdGlvbihuLGksbyxhKXtpZihvPT09ImEiJiYhYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXIiKTtpZih0eXBlb2YgaT09ImZ1bmN0aW9uIj9uIT09aXx8IWE6IWkuaGFzKG4pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdCIpO3JldHVybiBvPT09Im0iP2E6bz09PSJhIj9hLmNhbGwobik6YT9hLnZhbHVlOmkuZ2V0KG4pfSxGZHQ9ZnVuY3Rpb24obixpLG8sYSxzKXtpZihhPT09Im0iKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZSIpO2lmKGE9PT0iYSImJiFzKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlciIpO2lmKHR5cGVvZiBpPT0iZnVuY3Rpb24iP24hPT1pfHwhczohaS5oYXMobikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXQiKTtyZXR1cm4gYT09PSJhIj9zLmNhbGwobixvKTpzP3MudmFsdWU9bzppLnNldChuLG8pLG99LEJkdD1mdW5jdGlvbihuLGkpe2lmKGk9PT1udWxsfHx0eXBlb2YgaSE9Im9iamVjdCImJnR5cGVvZiBpIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0Iik7cmV0dXJuIHR5cGVvZiBuPT0iZnVuY3Rpb24iP2k9PT1uOm4uaGFzKGkpfSxlKCJfX2V4dGVuZHMiLG1kdCksZSgiX19hc3NpZ24iLGdkdCksZSgiX19yZXN0IixfZHQpLGUoIl9fZGVjb3JhdGUiLHlkdCksZSgiX19wYXJhbSIsdmR0KSxlKCJfX2VzRGVjb3JhdGUiLHhkdCksZSgiX19ydW5Jbml0aWFsaXplcnMiLGJkdCksZSgiX19wcm9wS2V5Iix3ZHQpLGUoIl9fc2V0RnVuY3Rpb25OYW1lIixTZHQpLGUoIl9fbWV0YWRhdGEiLE1kdCksZSgiX19hd2FpdGVyIixFZHQpLGUoIl9fZ2VuZXJhdG9yIixUZHQpLGUoIl9fZXhwb3J0U3RhciIsQ2R0KSxlKCJfX2NyZWF0ZUJpbmRpbmciLEFJKSxlKCJfX3ZhbHVlcyIsQ0kpLGUoIl9fcmVhZCIsaEcpLGUoIl9fc3ByZWFkIixBZHQpLGUoIl9fc3ByZWFkQXJyYXlzIixQZHQpLGUoIl9fc3ByZWFkQXJyYXkiLElkdCksZSgiX19hd2FpdCIsVHgpLGUoIl9fYXN5bmNHZW5lcmF0b3IiLExkdCksZSgiX19hc3luY0RlbGVnYXRvciIsa2R0KSxlKCJfX2FzeW5jVmFsdWVzIixSZHQpLGUoIl9fbWFrZVRlbXBsYXRlT2JqZWN0IixOZHQpLGUoIl9faW1wb3J0U3RhciIsRGR0KSxlKCJfX2ltcG9ydERlZmF1bHQiLE9kdCksZSgiX19jbGFzc1ByaXZhdGVGaWVsZEdldCIsemR0KSxlKCJfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0IixGZHQpLGUoIl9fY2xhc3NQcml2YXRlRmllbGRJbiIsQmR0KX0pfSk7dmFyIE9lPUgoKFJ4LCRNKT0+eyhmdW5jdGlvbigpe3ZhciBlLHQ9IjQuMTcuMjEiLHI9MjAwLG49IlVuc3VwcG9ydGVkIGNvcmUtanMgdXNlLiBUcnkgaHR0cHM6Ly9ucG1zLmlvL3NlYXJjaD9xPXBvbnlmaWxsLiIsaT0iRXhwZWN0ZWQgYSBmdW5jdGlvbiIsbz0iSW52YWxpZCBgdmFyaWFibGVgIG9wdGlvbiBwYXNzZWQgaW50byBgXy50ZW1wbGF0ZWAiLGE9Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iLHM9NTAwLGw9Il9fbG9kYXNoX3BsYWNlaG9sZGVyX18iLGM9MSx1PTIsaD00LGY9MSxwPTIsZD0xLGc9MixfPTQseT04LHg9MTYsYj0zMixTPTY0LEM9MTI4LFA9MjU2LGs9NTEyLE89MzAsRD0iLi4uIixCPTgwMCxJPTE2LEw9MSxSPTIsRj0zLHo9MS8wLFU9OTAwNzE5OTI1NDc0MDk5MSxXPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixaPTAvMCxydD00Mjk0OTY3Mjk1LG90PXJ0LTEsc3Q9cnQ+Pj4xLFN0PVtbImFyeSIsQ10sWyJiaW5kIixkXSxbImJpbmRLZXkiLGddLFsiY3VycnkiLHldLFsiY3VycnlSaWdodCIseF0sWyJmbGlwIixrXSxbInBhcnRpYWwiLGJdLFsicGFydGlhbFJpZ2h0IixTXSxbInJlYXJnIixQXV0sYnQ9IltvYmplY3QgQXJndW1lbnRzXSIsTXQ9IltvYmplY3QgQXJyYXldIixsdD0iW29iamVjdCBBc3luY0Z1bmN0aW9uXSIsS3Q9IltvYmplY3QgQm9vbGVhbl0iLF90PSJbb2JqZWN0IERhdGVdIixjdD0iW29iamVjdCBET01FeGNlcHRpb25dIixYPSJbb2JqZWN0IEVycm9yXSIsZXQ9IltvYmplY3QgRnVuY3Rpb25dIixkdD0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLHE9IltvYmplY3QgTWFwXSIscHQ9IltvYmplY3QgTnVtYmVyXSIsaHQ9IltvYmplY3QgTnVsbF0iLHd0PSJbb2JqZWN0IE9iamVjdF0iLGt0PSJbb2JqZWN0IFByb21pc2VdIixpZT0iW29iamVjdCBQcm94eV0iLGVlPSJbb2JqZWN0IFJlZ0V4cF0iLExlPSJbb2JqZWN0IFNldF0iLGFyPSJbb2JqZWN0IFN0cmluZ10iLGZyPSJbb2JqZWN0IFN5bWJvbF0iLHR0PSJbb2JqZWN0IFVuZGVmaW5lZF0iLCQ9IltvYmplY3QgV2Vha01hcF0iLEl0PSJbb2JqZWN0IFdlYWtTZXRdIiwkdD0iW29iamVjdCBBcnJheUJ1ZmZlcl0iLGhlPSJbb2JqZWN0IERhdGFWaWV3XSIsVHQ9IltvYmplY3QgRmxvYXQzMkFycmF5XSIsYmU9IltvYmplY3QgRmxvYXQ2NEFycmF5XSIsbnQ9IltvYmplY3QgSW50OEFycmF5XSIsQ3Q9IltvYmplY3QgSW50MTZBcnJheV0iLFd0PSJbb2JqZWN0IEludDMyQXJyYXldIixmZT0iW29iamVjdCBVaW50OEFycmF5XSIsYXQ9IltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIixzZT0iW29iamVjdCBVaW50MTZBcnJheV0iLFF0PSJbb2JqZWN0IFVpbnQzMkFycmF5XSIsQ2U9L1xiX19wIFwrPSAnJzsvZyxQdD0vXGIoX19wIFwrPSkgJycgXCsvZyxOdD0vKF9fZVwoLio/XCl8XGJfX3RcKSkgXCtcbicnOy9nLHplPS8mKD86YW1wfGx0fGd0fHF1b3R8IzM5KTsvZyx5bj0vWyY8PiInXS9nLFdpPVJlZ0V4cCh6ZS5zb3VyY2UpLEFyPVJlZ0V4cCh5bi5zb3VyY2UpLElhPS88JS0oW1xzXFNdKz8pJT4vZyxobz0vPCUoW1xzXFNdKz8pJT4vZyxMYT0vPCU9KFtcc1xTXSs/KSU+L2csY3g9L1wufFxbKD86W15bXF1dKnwoWyInXSkoPzooPyFcMSlbXlxcXXxcXC4pKj9cMSlcXS8sdW09L15cdyokLyxRMD0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxjbj0vW1xcXiQuKis/KClbXF17fXxdL2csdXg9UmVnRXhwKGNuLnNvdXJjZSksbnA9L15ccysvLEs9L1xzLyxndD0vXHsoPzpcblwvXCogXFt3cmFwcGVkIHdpdGggLitcXSBcKlwvKT9cbj8vLEV0PS9ce1xuXC9cKiBcW3dyYXBwZWQgd2l0aCAoLispXF0gXCovLHh0PS8sPyAmIC8sRnQ9L1teXHgwMC1ceDJmXHgzYS1ceDQwXHg1Yi1ceDYwXHg3Yi1ceDdmXSsvZyxWZT0vWygpPSx7fVxbXF1cL1xzXS8sVWU9L1xcKFxcKT8vZyx0cj0vXCRceyhbXlxcfV0qKD86XFwuW15cXH1dKikqKVx9L2csS2U9L1x3KiQvLFhyPS9eWy0rXTB4WzAtOWEtZl0rJC9pLF9yPS9eMGJbMDFdKyQvaSxQcj0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxYbj0vXjBvWzAtN10rJC9pLGlwPS9eKD86MHxbMS05XVxkKikkLyxobT0vW1x4YzAtXHhkNlx4ZDgtXHhmNlx4ZjgtXHhmZlx1MDEwMC1cdTAxN2ZdL2csbXI9LygkXikvLEJsPS9bJ1xuXHJcdTIwMjhcdTIwMjlcXF0vZywkbj0iXFx1ZDgwMC1cXHVkZmZmIixIbD0iXFx1MDMwMC1cXHUwMzZmIixoeD0iXFx1ZmUyMC1cXHVmZTJmIixWbD0iXFx1MjBkMC1cXHUyMGZmIixVbD1IbCtoeCtWbCxZaT0iXFx1MjcwMC1cXHUyN2JmIixmbT0iYS16XFx4ZGYtXFx4ZjZcXHhmOC1cXHhmZiIsR3M9IlxceGFjXFx4YjFcXHhkN1xceGY3IixncGU9IlxceDAwLVxceDJmXFx4M2EtXFx4NDBcXHg1Yi1cXHg2MFxceDdiLVxceGJmIixfcGU9IlxcdTIwMDAtXFx1MjA2ZiIseXBlPSIgXFx0XFx4MGJcXGZcXHhhMFxcdWZlZmZcXG5cXHJcXHUyMDI4XFx1MjAyOVxcdTE2ODBcXHUxODBlXFx1MjAwMFxcdTIwMDFcXHUyMDAyXFx1MjAwM1xcdTIwMDRcXHUyMDA1XFx1MjAwNlxcdTIwMDdcXHUyMDA4XFx1MjAwOVxcdTIwMGFcXHUyMDJmXFx1MjA1ZlxcdTMwMDAiLHFodD0iQS1aXFx4YzAtXFx4ZDZcXHhkOC1cXHhkZSIsR2h0PSJcXHVmZTBlXFx1ZmUwZiIsV2h0PUdzK2dwZStfcGUreXBlLGVxPSJbJ1x1MjAxOV0iLHZwZT0iWyIrJG4rIl0iLFlodD0iWyIrV2h0KyJdIixINj0iWyIrVWwrIl0iLGpodD0iXFxkKyIseHBlPSJbIitZaSsiXSIsWGh0PSJbIitmbSsiXSIsJGh0PSJbXiIrJG4rV2h0K2podCtZaStmbStxaHQrIl0iLHJxPSJcXHVkODNjW1xcdWRmZmItXFx1ZGZmZl0iLGJwZT0iKD86IitINisifCIrcnErIikiLEtodD0iW14iKyRuKyJdIixucT0iKD86XFx1ZDgzY1tcXHVkZGU2LVxcdWRkZmZdKXsyfSIsaXE9IltcXHVkODAwLVxcdWRiZmZdW1xcdWRjMDAtXFx1ZGZmZl0iLGZ4PSJbIitxaHQrIl0iLFpodD0iXFx1MjAwZCIsSmh0PSIoPzoiK1hodCsifCIrJGh0KyIpIix3cGU9Iig/OiIrZngrInwiKyRodCsiKSIsUWh0PSIoPzoiK2VxKyIoPzpkfGxsfG18cmV8c3x0fHZlKSk/Iix0ZnQ9Iig/OiIrZXErIig/OkR8TEx8TXxSRXxTfFR8VkUpKT8iLGVmdD1icGUrIj8iLHJmdD0iWyIrR2h0KyJdPyIsU3BlPSIoPzoiK1podCsiKD86IitbS2h0LG5xLGlxXS5qb2luKCJ8IikrIikiK3JmdCtlZnQrIikqIixNcGU9IlxcZCooPzoxc3R8Mm5kfDNyZHwoPyFbMTIzXSlcXGR0aCkoPz1cXGJ8W0EtWl9dKSIsRXBlPSJcXGQqKD86MVNUfDJORHwzUkR8KD8hWzEyM10pXFxkVEgpKD89XFxifFthLXpfXSkiLG5mdD1yZnQrZWZ0K1NwZSxUcGU9Iig/OiIrW3hwZSxucSxpcV0uam9pbigifCIpKyIpIituZnQsQ3BlPSIoPzoiK1tLaHQrSDYrIj8iLEg2LG5xLGlxLHZwZV0uam9pbigifCIpKyIpIixBcGU9UmVnRXhwKGVxLCJnIiksUHBlPVJlZ0V4cChINiwiZyIpLG9xPVJlZ0V4cChycSsiKD89IitycSsiKXwiK0NwZStuZnQsImciKSxJcGU9UmVnRXhwKFtmeCsiPyIrWGh0KyIrIitRaHQrIig/PSIrW1lodCxmeCwiJCJdLmpvaW4oInwiKSsiKSIsd3BlKyIrIit0ZnQrIig/PSIrW1lodCxmeCtKaHQsIiQiXS5qb2luKCJ8IikrIikiLGZ4KyI/IitKaHQrIisiK1FodCxmeCsiKyIrdGZ0LEVwZSxNcGUsamh0LFRwZV0uam9pbigifCIpLCJnIiksTHBlPVJlZ0V4cCgiWyIrWmh0KyRuK1VsK0dodCsiXSIpLGtwZT0vW2Etel1bQS1aXXxbQS1aXXsyfVthLXpdfFswLTldW2EtekEtWl18W2EtekEtWl1bMC05XXxbXmEtekEtWjAtOSBdLyxScGU9WyJBcnJheSIsIkJ1ZmZlciIsIkRhdGFWaWV3IiwiRGF0ZSIsIkVycm9yIiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiRnVuY3Rpb24iLCJJbnQ4QXJyYXkiLCJJbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIk1hcCIsIk1hdGgiLCJPYmplY3QiLCJQcm9taXNlIiwiUmVnRXhwIiwiU2V0IiwiU3RyaW5nIiwiU3ltYm9sIiwiVHlwZUVycm9yIiwiVWludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiVWludDE2QXJyYXkiLCJVaW50MzJBcnJheSIsIldlYWtNYXAiLCJfIiwiY2xlYXJUaW1lb3V0IiwiaXNGaW5pdGUiLCJwYXJzZUludCIsInNldFRpbWVvdXQiXSxOcGU9LTEsUm49e307Um5bVHRdPVJuW2JlXT1SbltudF09Um5bQ3RdPVJuW1d0XT1SbltmZV09Um5bYXRdPVJuW3NlXT1SbltRdF09ITAsUm5bYnRdPVJuW010XT1SblskdF09Um5bS3RdPVJuW2hlXT1SbltfdF09Um5bWF09Um5bZXRdPVJuW3FdPVJuW3B0XT1Sblt3dF09Um5bZWVdPVJuW0xlXT1Sblthcl09Um5bJF09ITE7dmFyIFRuPXt9O1RuW2J0XT1UbltNdF09VG5bJHRdPVRuW2hlXT1UbltLdF09VG5bX3RdPVRuW1R0XT1UbltiZV09VG5bbnRdPVRuW0N0XT1UbltXdF09VG5bcV09VG5bcHRdPVRuW3d0XT1UbltlZV09VG5bTGVdPVRuW2FyXT1Ubltmcl09VG5bZmVdPVRuW2F0XT1UbltzZV09VG5bUXRdPSEwLFRuW1hdPVRuW2V0XT1UblskXT0hMTt2YXIgRHBlPXtcdTAwQzA6IkEiLFx1MDBDMToiQSIsXHUwMEMyOiJBIixcdTAwQzM6IkEiLFx1MDBDNDoiQSIsXHUwMEM1OiJBIixcdTAwRTA6ImEiLFx1MDBFMToiYSIsXHUwMEUyOiJhIixcdTAwRTM6ImEiLFx1MDBFNDoiYSIsXHUwMEU1OiJhIixcdTAwQzc6IkMiLFx1MDBFNzoiYyIsXHUwMEQwOiJEIixcdTAwRjA6ImQiLFx1MDBDODoiRSIsXHUwMEM5OiJFIixcdTAwQ0E6IkUiLFx1MDBDQjoiRSIsXHUwMEU4OiJlIixcdTAwRTk6ImUiLFx1MDBFQToiZSIsXHUwMEVCOiJlIixcdTAwQ0M6IkkiLFx1MDBDRDoiSSIsXHUwMENFOiJJIixcdTAwQ0Y6IkkiLFx1MDBFQzoiaSIsXHUwMEVEOiJpIixcdTAwRUU6ImkiLFx1MDBFRjoiaSIsXHUwMEQxOiJOIixcdTAwRjE6Im4iLFx1MDBEMjoiTyIsXHUwMEQzOiJPIixcdTAwRDQ6Ik8iLFx1MDBENToiTyIsXHUwMEQ2OiJPIixcdTAwRDg6Ik8iLFx1MDBGMjoibyIsXHUwMEYzOiJvIixcdTAwRjQ6Im8iLFx1MDBGNToibyIsXHUwMEY2OiJvIixcdTAwRjg6Im8iLFx1MDBEOToiVSIsXHUwMERBOiJVIixcdTAwREI6IlUiLFx1MDBEQzoiVSIsXHUwMEY5OiJ1IixcdTAwRkE6InUiLFx1MDBGQjoidSIsXHUwMEZDOiJ1IixcdTAwREQ6IlkiLFx1MDBGRDoieSIsXHUwMEZGOiJ5IixcdTAwQzY6IkFlIixcdTAwRTY6ImFlIixcdTAwREU6IlRoIixcdTAwRkU6InRoIixcdTAwREY6InNzIixcdTAxMDA6IkEiLFx1MDEwMjoiQSIsXHUwMTA0OiJBIixcdTAxMDE6ImEiLFx1MDEwMzoiYSIsXHUwMTA1OiJhIixcdTAxMDY6IkMiLFx1MDEwODoiQyIsXHUwMTBBOiJDIixcdTAxMEM6IkMiLFx1MDEwNzoiYyIsXHUwMTA5OiJjIixcdTAxMEI6ImMiLFx1MDEwRDoiYyIsXHUwMTBFOiJEIixcdTAxMTA6IkQiLFx1MDEwRjoiZCIsXHUwMTExOiJkIixcdTAxMTI6IkUiLFx1MDExNDoiRSIsXHUwMTE2OiJFIixcdTAxMTg6IkUiLFx1MDExQToiRSIsXHUwMTEzOiJlIixcdTAxMTU6ImUiLFx1MDExNzoiZSIsXHUwMTE5OiJlIixcdTAxMUI6ImUiLFx1MDExQzoiRyIsXHUwMTFFOiJHIixcdTAxMjA6IkciLFx1MDEyMjoiRyIsXHUwMTFEOiJnIixcdTAxMUY6ImciLFx1MDEyMToiZyIsXHUwMTIzOiJnIixcdTAxMjQ6IkgiLFx1MDEyNjoiSCIsXHUwMTI1OiJoIixcdTAxMjc6ImgiLFx1MDEyODoiSSIsXHUwMTJBOiJJIixcdTAxMkM6IkkiLFx1MDEyRToiSSIsXHUwMTMwOiJJIixcdTAxMjk6ImkiLFx1MDEyQjoiaSIsXHUwMTJEOiJpIixcdTAxMkY6ImkiLFx1MDEzMToiaSIsXHUwMTM0OiJKIixcdTAxMzU6ImoiLFx1MDEzNjoiSyIsXHUwMTM3OiJrIixcdTAxMzg6ImsiLFx1MDEzOToiTCIsXHUwMTNCOiJMIixcdTAxM0Q6IkwiLFx1MDEzRjoiTCIsXHUwMTQxOiJMIixcdTAxM0E6ImwiLFx1MDEzQzoibCIsXHUwMTNFOiJsIixcdTAxNDA6ImwiLFx1MDE0MjoibCIsXHUwMTQzOiJOIixcdTAxNDU6Ik4iLFx1MDE0NzoiTiIsXHUwMTRBOiJOIixcdTAxNDQ6Im4iLFx1MDE0NjoibiIsXHUwMTQ4OiJuIixcdTAxNEI6Im4iLFx1MDE0QzoiTyIsXHUwMTRFOiJPIixcdTAxNTA6Ik8iLFx1MDE0RDoibyIsXHUwMTRGOiJvIixcdTAxNTE6Im8iLFx1MDE1NDoiUiIsXHUwMTU2OiJSIixcdTAxNTg6IlIiLFx1MDE1NToiciIsXHUwMTU3OiJyIixcdTAxNTk6InIiLFx1MDE1QToiUyIsXHUwMTVDOiJTIixcdTAxNUU6IlMiLFx1MDE2MDoiUyIsXHUwMTVCOiJzIixcdTAxNUQ6InMiLFx1MDE1RjoicyIsXHUwMTYxOiJzIixcdTAxNjI6IlQiLFx1MDE2NDoiVCIsXHUwMTY2OiJUIixcdTAxNjM6InQiLFx1MDE2NToidCIsXHUwMTY3OiJ0IixcdTAxNjg6IlUiLFx1MDE2QToiVSIsXHUwMTZDOiJVIixcdTAxNkU6IlUiLFx1MDE3MDoiVSIsXHUwMTcyOiJVIixcdTAxNjk6InUiLFx1MDE2QjoidSIsXHUwMTZEOiJ1IixcdTAxNkY6InUiLFx1MDE3MToidSIsXHUwMTczOiJ1IixcdTAxNzQ6IlciLFx1MDE3NToidyIsXHUwMTc2OiJZIixcdTAxNzc6InkiLFx1MDE3ODoiWSIsXHUwMTc5OiJaIixcdTAxN0I6IloiLFx1MDE3RDoiWiIsXHUwMTdBOiJ6IixcdTAxN0M6InoiLFx1MDE3RToieiIsXHUwMTMyOiJJSiIsXHUwMTMzOiJpaiIsXHUwMTUyOiJPZSIsXHUwMTUzOiJvZSIsXHUwMTQ5OiInbiIsXHUwMTdGOiJzIn0sT3BlPXsiJiI6IiZhbXA7IiwiPCI6IiZsdDsiLCI+IjoiJmd0OyIsJyInOiImcXVvdDsiLCInIjoiJiMzOTsifSx6cGU9eyImYW1wOyI6IiYiLCImbHQ7IjoiPCIsIiZndDsiOiI+IiwiJnF1b3Q7IjonIicsIiYjMzk7IjoiJyJ9LEZwZT17IlxcIjoiXFwiLCInIjoiJyIsIlxuIjoibiIsIlxyIjoiciIsIlx1MjAyOCI6InUyMDI4IiwiXHUyMDI5IjoidTIwMjkifSxCcGU9cGFyc2VGbG9hdCxIcGU9cGFyc2VJbnQsaWZ0PXR5cGVvZiBnbG9iYWw9PSJvYmplY3QiJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCxWcGU9dHlwZW9mIHNlbGY9PSJvYmplY3QiJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixmbz1pZnR8fFZwZXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxhcT10eXBlb2YgUng9PSJvYmplY3QiJiZSeCYmIVJ4Lm5vZGVUeXBlJiZSeCx0Xz1hcSYmdHlwZW9mICRNPT0ib2JqZWN0IiYmJE0mJiEkTS5ub2RlVHlwZSYmJE0sb2Z0PXRfJiZ0Xy5leHBvcnRzPT09YXEsc3E9b2Z0JiZpZnQucHJvY2VzcyxxbD1mdW5jdGlvbigpe3RyeXt2YXIgdXQ9dF8mJnRfLnJlcXVpcmUmJnRfLnJlcXVpcmUoInV0aWwiKS50eXBlcztyZXR1cm4gdXR8fHNxJiZzcS5iaW5kaW5nJiZzcS5iaW5kaW5nKCJ1dGlsIil9Y2F0Y2goQXQpe319KCksYWZ0PXFsJiZxbC5pc0FycmF5QnVmZmVyLHNmdD1xbCYmcWwuaXNEYXRlLGxmdD1xbCYmcWwuaXNNYXAsY2Z0PXFsJiZxbC5pc1JlZ0V4cCx1ZnQ9cWwmJnFsLmlzU2V0LGhmdD1xbCYmcWwuaXNUeXBlZEFycmF5O2Z1bmN0aW9uIFdzKHV0LEF0LHZ0KXtzd2l0Y2godnQubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIHV0LmNhbGwoQXQpO2Nhc2UgMTpyZXR1cm4gdXQuY2FsbChBdCx2dFswXSk7Y2FzZSAyOnJldHVybiB1dC5jYWxsKEF0LHZ0WzBdLHZ0WzFdKTtjYXNlIDM6cmV0dXJuIHV0LmNhbGwoQXQsdnRbMF0sdnRbMV0sdnRbMl0pfXJldHVybiB1dC5hcHBseShBdCx2dCl9ZnVuY3Rpb24gVXBlKHV0LEF0LHZ0LGdlKXtmb3IodmFyIFdlPS0xLCRyPXV0PT1udWxsPzA6dXQubGVuZ3RoOysrV2U8JHI7KXt2YXIgamk9dXRbV2VdO0F0KGdlLGppLHZ0KGppKSx1dCl9cmV0dXJuIGdlfWZ1bmN0aW9uIEdsKHV0LEF0KXtmb3IodmFyIHZ0PS0xLGdlPXV0PT1udWxsPzA6dXQubGVuZ3RoOysrdnQ8Z2UmJkF0KHV0W3Z0XSx2dCx1dCkhPT0hMTspO3JldHVybiB1dH1mdW5jdGlvbiBxcGUodXQsQXQpe2Zvcih2YXIgdnQ9dXQ9PW51bGw/MDp1dC5sZW5ndGg7dnQtLSYmQXQodXRbdnRdLHZ0LHV0KSE9PSExOyk7cmV0dXJuIHV0fWZ1bmN0aW9uIGZmdCh1dCxBdCl7Zm9yKHZhciB2dD0tMSxnZT11dD09bnVsbD8wOnV0Lmxlbmd0aDsrK3Z0PGdlOylpZighQXQodXRbdnRdLHZ0LHV0KSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBwbSh1dCxBdCl7Zm9yKHZhciB2dD0tMSxnZT11dD09bnVsbD8wOnV0Lmxlbmd0aCxXZT0wLCRyPVtdOysrdnQ8Z2U7KXt2YXIgamk9dXRbdnRdO0F0KGppLHZ0LHV0KSYmKCRyW1dlKytdPWppKX1yZXR1cm4gJHJ9ZnVuY3Rpb24gVjYodXQsQXQpe3ZhciB2dD11dD09bnVsbD8wOnV0Lmxlbmd0aDtyZXR1cm4hIXZ0JiZweCh1dCxBdCwwKT4tMX1mdW5jdGlvbiBscSh1dCxBdCx2dCl7Zm9yKHZhciBnZT0tMSxXZT11dD09bnVsbD8wOnV0Lmxlbmd0aDsrK2dlPFdlOylpZih2dChBdCx1dFtnZV0pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEtuKHV0LEF0KXtmb3IodmFyIHZ0PS0xLGdlPXV0PT1udWxsPzA6dXQubGVuZ3RoLFdlPUFycmF5KGdlKTsrK3Z0PGdlOylXZVt2dF09QXQodXRbdnRdLHZ0LHV0KTtyZXR1cm4gV2V9ZnVuY3Rpb24gZG0odXQsQXQpe2Zvcih2YXIgdnQ9LTEsZ2U9QXQubGVuZ3RoLFdlPXV0Lmxlbmd0aDsrK3Z0PGdlOyl1dFtXZSt2dF09QXRbdnRdO3JldHVybiB1dH1mdW5jdGlvbiBjcSh1dCxBdCx2dCxnZSl7dmFyIFdlPS0xLCRyPXV0PT1udWxsPzA6dXQubGVuZ3RoO2ZvcihnZSYmJHImJih2dD11dFsrK1dlXSk7KytXZTwkcjspdnQ9QXQodnQsdXRbV2VdLFdlLHV0KTtyZXR1cm4gdnR9ZnVuY3Rpb24gR3BlKHV0LEF0LHZ0LGdlKXt2YXIgV2U9dXQ9PW51bGw/MDp1dC5sZW5ndGg7Zm9yKGdlJiZXZSYmKHZ0PXV0Wy0tV2VdKTtXZS0tOyl2dD1BdCh2dCx1dFtXZV0sV2UsdXQpO3JldHVybiB2dH1mdW5jdGlvbiB1cSh1dCxBdCl7Zm9yKHZhciB2dD0tMSxnZT11dD09bnVsbD8wOnV0Lmxlbmd0aDsrK3Z0PGdlOylpZihBdCh1dFt2dF0sdnQsdXQpKXJldHVybiEwO3JldHVybiExfXZhciBXcGU9aHEoImxlbmd0aCIpO2Z1bmN0aW9uIFlwZSh1dCl7cmV0dXJuIHV0LnNwbGl0KCIiKX1mdW5jdGlvbiBqcGUodXQpe3JldHVybiB1dC5tYXRjaChGdCl8fFtdfWZ1bmN0aW9uIHBmdCh1dCxBdCx2dCl7dmFyIGdlO3JldHVybiB2dCh1dCxmdW5jdGlvbihXZSwkcixqaSl7aWYoQXQoV2UsJHIsamkpKXJldHVybiBnZT0kciwhMX0pLGdlfWZ1bmN0aW9uIFU2KHV0LEF0LHZ0LGdlKXtmb3IodmFyIFdlPXV0Lmxlbmd0aCwkcj12dCsoZ2U/MTotMSk7Z2U/JHItLTorKyRyPFdlOylpZihBdCh1dFskcl0sJHIsdXQpKXJldHVybiAkcjtyZXR1cm4tMX1mdW5jdGlvbiBweCh1dCxBdCx2dCl7cmV0dXJuIEF0PT09QXQ/b2RlKHV0LEF0LHZ0KTpVNih1dCxkZnQsdnQpfWZ1bmN0aW9uIFhwZSh1dCxBdCx2dCxnZSl7Zm9yKHZhciBXZT12dC0xLCRyPXV0Lmxlbmd0aDsrK1dlPCRyOylpZihnZSh1dFtXZV0sQXQpKXJldHVybiBXZTtyZXR1cm4tMX1mdW5jdGlvbiBkZnQodXQpe3JldHVybiB1dCE9PXV0fWZ1bmN0aW9uIG1mdCh1dCxBdCl7dmFyIHZ0PXV0PT1udWxsPzA6dXQubGVuZ3RoO3JldHVybiB2dD9wcSh1dCxBdCkvdnQ6Wn1mdW5jdGlvbiBocSh1dCl7cmV0dXJuIGZ1bmN0aW9uKEF0KXtyZXR1cm4gQXQ9PW51bGw/ZTpBdFt1dF19fWZ1bmN0aW9uIGZxKHV0KXtyZXR1cm4gZnVuY3Rpb24oQXQpe3JldHVybiB1dD09bnVsbD9lOnV0W0F0XX19ZnVuY3Rpb24gZ2Z0KHV0LEF0LHZ0LGdlLFdlKXtyZXR1cm4gV2UodXQsZnVuY3Rpb24oJHIsamksdm4pe3Z0PWdlPyhnZT0hMSwkcik6QXQodnQsJHIsamksdm4pfSksdnR9ZnVuY3Rpb24gJHBlKHV0LEF0KXt2YXIgdnQ9dXQubGVuZ3RoO2Zvcih1dC5zb3J0KEF0KTt2dC0tOyl1dFt2dF09dXRbdnRdLnZhbHVlO3JldHVybiB1dH1mdW5jdGlvbiBwcSh1dCxBdCl7Zm9yKHZhciB2dCxnZT0tMSxXZT11dC5sZW5ndGg7KytnZTxXZTspe3ZhciAkcj1BdCh1dFtnZV0pOyRyIT09ZSYmKHZ0PXZ0PT09ZT8kcjp2dCskcil9cmV0dXJuIHZ0fWZ1bmN0aW9uIGRxKHV0LEF0KXtmb3IodmFyIHZ0PS0xLGdlPUFycmF5KHV0KTsrK3Z0PHV0OylnZVt2dF09QXQodnQpO3JldHVybiBnZX1mdW5jdGlvbiBLcGUodXQsQXQpe3JldHVybiBLbihBdCxmdW5jdGlvbih2dCl7cmV0dXJuW3Z0LHV0W3Z0XV19KX1mdW5jdGlvbiBfZnQodXQpe3JldHVybiB1dCYmdXQuc2xpY2UoMCxiZnQodXQpKzEpLnJlcGxhY2UobnAsIiIpfWZ1bmN0aW9uIFlzKHV0KXtyZXR1cm4gZnVuY3Rpb24oQXQpe3JldHVybiB1dChBdCl9fWZ1bmN0aW9uIG1xKHV0LEF0KXtyZXR1cm4gS24oQXQsZnVuY3Rpb24odnQpe3JldHVybiB1dFt2dF19KX1mdW5jdGlvbiBNTSh1dCxBdCl7cmV0dXJuIHV0LmhhcyhBdCl9ZnVuY3Rpb24geWZ0KHV0LEF0KXtmb3IodmFyIHZ0PS0xLGdlPXV0Lmxlbmd0aDsrK3Z0PGdlJiZweChBdCx1dFt2dF0sMCk+LTE7KTtyZXR1cm4gdnR9ZnVuY3Rpb24gdmZ0KHV0LEF0KXtmb3IodmFyIHZ0PXV0Lmxlbmd0aDt2dC0tJiZweChBdCx1dFt2dF0sMCk+LTE7KTtyZXR1cm4gdnR9ZnVuY3Rpb24gWnBlKHV0LEF0KXtmb3IodmFyIHZ0PXV0Lmxlbmd0aCxnZT0wO3Z0LS07KXV0W3Z0XT09PUF0JiYrK2dlO3JldHVybiBnZX12YXIgSnBlPWZxKERwZSksUXBlPWZxKE9wZSk7ZnVuY3Rpb24gdGRlKHV0KXtyZXR1cm4iXFwiK0ZwZVt1dF19ZnVuY3Rpb24gZWRlKHV0LEF0KXtyZXR1cm4gdXQ9PW51bGw/ZTp1dFtBdF19ZnVuY3Rpb24gZHgodXQpe3JldHVybiBMcGUudGVzdCh1dCl9ZnVuY3Rpb24gcmRlKHV0KXtyZXR1cm4ga3BlLnRlc3QodXQpfWZ1bmN0aW9uIG5kZSh1dCl7Zm9yKHZhciBBdCx2dD1bXTshKEF0PXV0Lm5leHQoKSkuZG9uZTspdnQucHVzaChBdC52YWx1ZSk7cmV0dXJuIHZ0fWZ1bmN0aW9uIGdxKHV0KXt2YXIgQXQ9LTEsdnQ9QXJyYXkodXQuc2l6ZSk7cmV0dXJuIHV0LmZvckVhY2goZnVuY3Rpb24oZ2UsV2Upe3Z0WysrQXRdPVtXZSxnZV19KSx2dH1mdW5jdGlvbiB4ZnQodXQsQXQpe3JldHVybiBmdW5jdGlvbih2dCl7cmV0dXJuIHV0KEF0KHZ0KSl9fWZ1bmN0aW9uIG1tKHV0LEF0KXtmb3IodmFyIHZ0PS0xLGdlPXV0Lmxlbmd0aCxXZT0wLCRyPVtdOysrdnQ8Z2U7KXt2YXIgamk9dXRbdnRdOyhqaT09PUF0fHxqaT09PWwpJiYodXRbdnRdPWwsJHJbV2UrK109dnQpfXJldHVybiAkcn1mdW5jdGlvbiBxNih1dCl7dmFyIEF0PS0xLHZ0PUFycmF5KHV0LnNpemUpO3JldHVybiB1dC5mb3JFYWNoKGZ1bmN0aW9uKGdlKXt2dFsrK0F0XT1nZX0pLHZ0fWZ1bmN0aW9uIGlkZSh1dCl7dmFyIEF0PS0xLHZ0PUFycmF5KHV0LnNpemUpO3JldHVybiB1dC5mb3JFYWNoKGZ1bmN0aW9uKGdlKXt2dFsrK0F0XT1bZ2UsZ2VdfSksdnR9ZnVuY3Rpb24gb2RlKHV0LEF0LHZ0KXtmb3IodmFyIGdlPXZ0LTEsV2U9dXQubGVuZ3RoOysrZ2U8V2U7KWlmKHV0W2dlXT09PUF0KXJldHVybiBnZTtyZXR1cm4tMX1mdW5jdGlvbiBhZGUodXQsQXQsdnQpe2Zvcih2YXIgZ2U9dnQrMTtnZS0tOylpZih1dFtnZV09PT1BdClyZXR1cm4gZ2U7cmV0dXJuIGdlfWZ1bmN0aW9uIG14KHV0KXtyZXR1cm4gZHgodXQpP2xkZSh1dCk6V3BlKHV0KX1mdW5jdGlvbiB0dSh1dCl7cmV0dXJuIGR4KHV0KT9jZGUodXQpOllwZSh1dCl9ZnVuY3Rpb24gYmZ0KHV0KXtmb3IodmFyIEF0PXV0Lmxlbmd0aDtBdC0tJiZLLnRlc3QodXQuY2hhckF0KEF0KSk7KTtyZXR1cm4gQXR9dmFyIHNkZT1mcSh6cGUpO2Z1bmN0aW9uIGxkZSh1dCl7Zm9yKHZhciBBdD1vcS5sYXN0SW5kZXg9MDtvcS50ZXN0KHV0KTspKytBdDtyZXR1cm4gQXR9ZnVuY3Rpb24gY2RlKHV0KXtyZXR1cm4gdXQubWF0Y2gob3EpfHxbXX1mdW5jdGlvbiB1ZGUodXQpe3JldHVybiB1dC5tYXRjaChJcGUpfHxbXX12YXIgaGRlPWZ1bmN0aW9uIHV0KEF0KXtBdD1BdD09bnVsbD9mbzpnbS5kZWZhdWx0cyhmby5PYmplY3QoKSxBdCxnbS5waWNrKGZvLFJwZSkpO3ZhciB2dD1BdC5BcnJheSxnZT1BdC5EYXRlLFdlPUF0LkVycm9yLCRyPUF0LkZ1bmN0aW9uLGppPUF0Lk1hdGgsdm49QXQuT2JqZWN0LF9xPUF0LlJlZ0V4cCxmZGU9QXQuU3RyaW5nLFdsPUF0LlR5cGVFcnJvcixHNj12dC5wcm90b3R5cGUscGRlPSRyLnByb3RvdHlwZSxneD12bi5wcm90b3R5cGUsVzY9QXRbIl9fY29yZS1qc19zaGFyZWRfXyJdLFk2PXBkZS50b1N0cmluZyx1bj1neC5oYXNPd25Qcm9wZXJ0eSxkZGU9MCx3ZnQ9ZnVuY3Rpb24oKXt2YXIgbT0vW14uXSskLy5leGVjKFc2JiZXNi5rZXlzJiZXNi5rZXlzLklFX1BST1RPfHwiIik7cmV0dXJuIG0/IlN5bWJvbChzcmMpXzEuIittOiIifSgpLGo2PWd4LnRvU3RyaW5nLG1kZT1ZNi5jYWxsKHZuKSxnZGU9Zm8uXyxfZGU9X3EoIl4iK1k2LmNhbGwodW4pLnJlcGxhY2UoY24sIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIiksWDY9b2Z0P0F0LkJ1ZmZlcjplLF9tPUF0LlN5bWJvbCwkNj1BdC5VaW50OEFycmF5LFNmdD1YNj9YNi5hbGxvY1Vuc2FmZTplLEs2PXhmdCh2bi5nZXRQcm90b3R5cGVPZix2biksTWZ0PXZuLmNyZWF0ZSxFZnQ9Z3gucHJvcGVydHlJc0VudW1lcmFibGUsWjY9RzYuc3BsaWNlLFRmdD1fbT9fbS5pc0NvbmNhdFNwcmVhZGFibGU6ZSxFTT1fbT9fbS5pdGVyYXRvcjplLGVfPV9tP19tLnRvU3RyaW5nVGFnOmUsSjY9ZnVuY3Rpb24oKXt0cnl7dmFyIG09YV8odm4sImRlZmluZVByb3BlcnR5Iik7cmV0dXJuIG0oe30sIiIse30pLG19Y2F0Y2godil7fX0oKSx5ZGU9QXQuY2xlYXJUaW1lb3V0IT09Zm8uY2xlYXJUaW1lb3V0JiZBdC5jbGVhclRpbWVvdXQsdmRlPWdlJiZnZS5ub3chPT1mby5EYXRlLm5vdyYmZ2Uubm93LHhkZT1BdC5zZXRUaW1lb3V0IT09Zm8uc2V0VGltZW91dCYmQXQuc2V0VGltZW91dCxRNj1qaS5jZWlsLHRJPWppLmZsb29yLHlxPXZuLmdldE93blByb3BlcnR5U3ltYm9scyxiZGU9WDY/WDYuaXNCdWZmZXI6ZSxDZnQ9QXQuaXNGaW5pdGUsd2RlPUc2LmpvaW4sU2RlPXhmdCh2bi5rZXlzLHZuKSxYaT1qaS5tYXgscmE9amkubWluLE1kZT1nZS5ub3csRWRlPUF0LnBhcnNlSW50LEFmdD1qaS5yYW5kb20sVGRlPUc2LnJldmVyc2UsdnE9YV8oQXQsIkRhdGFWaWV3IiksVE09YV8oQXQsIk1hcCIpLHhxPWFfKEF0LCJQcm9taXNlIiksX3g9YV8oQXQsIlNldCIpLENNPWFfKEF0LCJXZWFrTWFwIiksQU09YV8odm4sImNyZWF0ZSIpLGVJPUNNJiZuZXcgQ00seXg9e30sQ2RlPXNfKHZxKSxBZGU9c18oVE0pLFBkZT1zXyh4cSksSWRlPXNfKF94KSxMZGU9c18oQ00pLHJJPV9tP19tLnByb3RvdHlwZTplLFBNPXJJP3JJLnZhbHVlT2Y6ZSxQZnQ9ckk/ckkudG9TdHJpbmc6ZTtmdW5jdGlvbiBHKG0pe2lmKHNpKG0pJiYhJGUobSkmJiEobSBpbnN0YW5jZW9mIGdyKSl7aWYobSBpbnN0YW5jZW9mIFlsKXJldHVybiBtO2lmKHVuLmNhbGwobSwiX193cmFwcGVkX18iKSlyZXR1cm4gSXB0KG0pfXJldHVybiBuZXcgWWwobSl9dmFyIHZ4PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbSgpe31yZXR1cm4gZnVuY3Rpb24odil7aWYoIWVpKHYpKXJldHVybnt9O2lmKE1mdClyZXR1cm4gTWZ0KHYpO20ucHJvdG90eXBlPXY7dmFyIFQ9bmV3IG07cmV0dXJuIG0ucHJvdG90eXBlPWUsVH19KCk7ZnVuY3Rpb24gbkkoKXt9ZnVuY3Rpb24gWWwobSx2KXt0aGlzLl9fd3JhcHBlZF9fPW0sdGhpcy5fX2FjdGlvbnNfXz1bXSx0aGlzLl9fY2hhaW5fXz0hIXYsdGhpcy5fX2luZGV4X189MCx0aGlzLl9fdmFsdWVzX189ZX1HLnRlbXBsYXRlU2V0dGluZ3M9e2VzY2FwZTpJYSxldmFsdWF0ZTpobyxpbnRlcnBvbGF0ZTpMYSx2YXJpYWJsZToiIixpbXBvcnRzOntfOkd9fSxHLnByb3RvdHlwZT1uSS5wcm90b3R5cGUsRy5wcm90b3R5cGUuY29uc3RydWN0b3I9RyxZbC5wcm90b3R5cGU9dngobkkucHJvdG90eXBlKSxZbC5wcm90b3R5cGUuY29uc3RydWN0b3I9WWw7ZnVuY3Rpb24gZ3IobSl7dGhpcy5fX3dyYXBwZWRfXz1tLHRoaXMuX19hY3Rpb25zX189W10sdGhpcy5fX2Rpcl9fPTEsdGhpcy5fX2ZpbHRlcmVkX189ITEsdGhpcy5fX2l0ZXJhdGVlc19fPVtdLHRoaXMuX190YWtlQ291bnRfXz1ydCx0aGlzLl9fdmlld3NfXz1bXX1mdW5jdGlvbiBrZGUoKXt2YXIgbT1uZXcgZ3IodGhpcy5fX3dyYXBwZWRfXyk7cmV0dXJuIG0uX19hY3Rpb25zX189ZHModGhpcy5fX2FjdGlvbnNfXyksbS5fX2Rpcl9fPXRoaXMuX19kaXJfXyxtLl9fZmlsdGVyZWRfXz10aGlzLl9fZmlsdGVyZWRfXyxtLl9faXRlcmF0ZWVzX189ZHModGhpcy5fX2l0ZXJhdGVlc19fKSxtLl9fdGFrZUNvdW50X189dGhpcy5fX3Rha2VDb3VudF9fLG0uX192aWV3c19fPWRzKHRoaXMuX192aWV3c19fKSxtfWZ1bmN0aW9uIFJkZSgpe2lmKHRoaXMuX19maWx0ZXJlZF9fKXt2YXIgbT1uZXcgZ3IodGhpcyk7bS5fX2Rpcl9fPS0xLG0uX19maWx0ZXJlZF9fPSEwfWVsc2UgbT10aGlzLmNsb25lKCksbS5fX2Rpcl9fKj0tMTtyZXR1cm4gbX1mdW5jdGlvbiBOZGUoKXt2YXIgbT10aGlzLl9fd3JhcHBlZF9fLnZhbHVlKCksdj10aGlzLl9fZGlyX18sVD0kZShtKSxOPXY8MCxWPVQ/bS5sZW5ndGg6MCxZPVltZSgwLFYsdGhpcy5fX3ZpZXdzX18pLEo9WS5zdGFydCxpdD1ZLmVuZCxmdD1pdC1KLER0PU4/aXQ6Si0xLE90PXRoaXMuX19pdGVyYXRlZXNfXyxWdD1PdC5sZW5ndGgsb2U9MCxUZT1yYShmdCx0aGlzLl9fdGFrZUNvdW50X18pO2lmKCFUfHwhTiYmVj09ZnQmJlRlPT1mdClyZXR1cm4gUWZ0KG0sdGhpcy5fX2FjdGlvbnNfXyk7dmFyIE5lPVtdO3Q6Zm9yKDtmdC0tJiZvZTxUZTspe0R0Kz12O2Zvcih2YXIgZXI9LTEsRGU9bVtEdF07KytlcjxWdDspe3ZhciBwcj1PdFtlcl0seXI9cHIuaXRlcmF0ZWUsJHM9cHIudHlwZSxOYT15cihEZSk7aWYoJHM9PVIpRGU9TmE7ZWxzZSBpZighTmEpe2lmKCRzPT1MKWNvbnRpbnVlIHQ7YnJlYWsgdH19TmVbb2UrK109RGV9cmV0dXJuIE5lfWdyLnByb3RvdHlwZT12eChuSS5wcm90b3R5cGUpLGdyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1ncjtmdW5jdGlvbiByXyhtKXt2YXIgdj0tMSxUPW09PW51bGw/MDptLmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrdjxUOyl7dmFyIE49bVt2XTt0aGlzLnNldChOWzBdLE5bMV0pfX1mdW5jdGlvbiBEZGUoKXt0aGlzLl9fZGF0YV9fPUFNP0FNKG51bGwpOnt9LHRoaXMuc2l6ZT0wfWZ1bmN0aW9uIE9kZShtKXt2YXIgdj10aGlzLmhhcyhtKSYmZGVsZXRlIHRoaXMuX19kYXRhX19bbV07cmV0dXJuIHRoaXMuc2l6ZS09dj8xOjAsdn1mdW5jdGlvbiB6ZGUobSl7dmFyIHY9dGhpcy5fX2RhdGFfXztpZihBTSl7dmFyIFQ9dlttXTtyZXR1cm4gVD09PWE/ZTpUfXJldHVybiB1bi5jYWxsKHYsbSk/dlttXTplfWZ1bmN0aW9uIEZkZShtKXt2YXIgdj10aGlzLl9fZGF0YV9fO3JldHVybiBBTT92W21dIT09ZTp1bi5jYWxsKHYsbSl9ZnVuY3Rpb24gQmRlKG0sdil7dmFyIFQ9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyhtKT8wOjEsVFttXT1BTSYmdj09PWU/YTp2LHRoaXN9cl8ucHJvdG90eXBlLmNsZWFyPURkZSxyXy5wcm90b3R5cGUuZGVsZXRlPU9kZSxyXy5wcm90b3R5cGUuZ2V0PXpkZSxyXy5wcm90b3R5cGUuaGFzPUZkZSxyXy5wcm90b3R5cGUuc2V0PUJkZTtmdW5jdGlvbiBvcChtKXt2YXIgdj0tMSxUPW09PW51bGw/MDptLmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrdjxUOyl7dmFyIE49bVt2XTt0aGlzLnNldChOWzBdLE5bMV0pfX1mdW5jdGlvbiBIZGUoKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfWZ1bmN0aW9uIFZkZShtKXt2YXIgdj10aGlzLl9fZGF0YV9fLFQ9aUkodixtKTtpZihUPDApcmV0dXJuITE7dmFyIE49di5sZW5ndGgtMTtyZXR1cm4gVD09Tj92LnBvcCgpOlo2LmNhbGwodixULDEpLC0tdGhpcy5zaXplLCEwfWZ1bmN0aW9uIFVkZShtKXt2YXIgdj10aGlzLl9fZGF0YV9fLFQ9aUkodixtKTtyZXR1cm4gVDwwP2U6dltUXVsxXX1mdW5jdGlvbiBxZGUobSl7cmV0dXJuIGlJKHRoaXMuX19kYXRhX18sbSk+LTF9ZnVuY3Rpb24gR2RlKG0sdil7dmFyIFQ9dGhpcy5fX2RhdGFfXyxOPWlJKFQsbSk7cmV0dXJuIE48MD8oKyt0aGlzLnNpemUsVC5wdXNoKFttLHZdKSk6VFtOXVsxXT12LHRoaXN9b3AucHJvdG90eXBlLmNsZWFyPUhkZSxvcC5wcm90b3R5cGUuZGVsZXRlPVZkZSxvcC5wcm90b3R5cGUuZ2V0PVVkZSxvcC5wcm90b3R5cGUuaGFzPXFkZSxvcC5wcm90b3R5cGUuc2V0PUdkZTtmdW5jdGlvbiBhcChtKXt2YXIgdj0tMSxUPW09PW51bGw/MDptLmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrdjxUOyl7dmFyIE49bVt2XTt0aGlzLnNldChOWzBdLE5bMV0pfX1mdW5jdGlvbiBXZGUoKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyByXyxtYXA6bmV3KFRNfHxvcCksc3RyaW5nOm5ldyByX319ZnVuY3Rpb24gWWRlKG0pe3ZhciB2PWdJKHRoaXMsbSkuZGVsZXRlKG0pO3JldHVybiB0aGlzLnNpemUtPXY/MTowLHZ9ZnVuY3Rpb24gamRlKG0pe3JldHVybiBnSSh0aGlzLG0pLmdldChtKX1mdW5jdGlvbiBYZGUobSl7cmV0dXJuIGdJKHRoaXMsbSkuaGFzKG0pfWZ1bmN0aW9uICRkZShtLHYpe3ZhciBUPWdJKHRoaXMsbSksTj1ULnNpemU7cmV0dXJuIFQuc2V0KG0sdiksdGhpcy5zaXplKz1ULnNpemU9PU4/MDoxLHRoaXN9YXAucHJvdG90eXBlLmNsZWFyPVdkZSxhcC5wcm90b3R5cGUuZGVsZXRlPVlkZSxhcC5wcm90b3R5cGUuZ2V0PWpkZSxhcC5wcm90b3R5cGUuaGFzPVhkZSxhcC5wcm90b3R5cGUuc2V0PSRkZTtmdW5jdGlvbiBuXyhtKXt2YXIgdj0tMSxUPW09PW51bGw/MDptLmxlbmd0aDtmb3IodGhpcy5fX2RhdGFfXz1uZXcgYXA7Kyt2PFQ7KXRoaXMuYWRkKG1bdl0pfWZ1bmN0aW9uIEtkZShtKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5zZXQobSxhKSx0aGlzfWZ1bmN0aW9uIFpkZShtKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMobSl9bl8ucHJvdG90eXBlLmFkZD1uXy5wcm90b3R5cGUucHVzaD1LZGUsbl8ucHJvdG90eXBlLmhhcz1aZGU7ZnVuY3Rpb24gZXUobSl7dmFyIHY9dGhpcy5fX2RhdGFfXz1uZXcgb3AobSk7dGhpcy5zaXplPXYuc2l6ZX1mdW5jdGlvbiBKZGUoKXt0aGlzLl9fZGF0YV9fPW5ldyBvcCx0aGlzLnNpemU9MH1mdW5jdGlvbiBRZGUobSl7dmFyIHY9dGhpcy5fX2RhdGFfXyxUPXYuZGVsZXRlKG0pO3JldHVybiB0aGlzLnNpemU9di5zaXplLFR9ZnVuY3Rpb24gdG1lKG0pe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldChtKX1mdW5jdGlvbiBlbWUobSl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKG0pfWZ1bmN0aW9uIHJtZShtLHYpe3ZhciBUPXRoaXMuX19kYXRhX187aWYoVCBpbnN0YW5jZW9mIG9wKXt2YXIgTj1ULl9fZGF0YV9fO2lmKCFUTXx8Ti5sZW5ndGg8ci0xKXJldHVybiBOLnB1c2goW20sdl0pLHRoaXMuc2l6ZT0rK1Quc2l6ZSx0aGlzO1Q9dGhpcy5fX2RhdGFfXz1uZXcgYXAoTil9cmV0dXJuIFQuc2V0KG0sdiksdGhpcy5zaXplPVQuc2l6ZSx0aGlzfWV1LnByb3RvdHlwZS5jbGVhcj1KZGUsZXUucHJvdG90eXBlLmRlbGV0ZT1RZGUsZXUucHJvdG90eXBlLmdldD10bWUsZXUucHJvdG90eXBlLmhhcz1lbWUsZXUucHJvdG90eXBlLnNldD1ybWU7ZnVuY3Rpb24gSWZ0KG0sdil7dmFyIFQ9JGUobSksTj0hVCYmbF8obSksVj0hVCYmIU4mJndtKG0pLFk9IVQmJiFOJiYhViYmU3gobSksSj1UfHxOfHxWfHxZLGl0PUo/ZHEobS5sZW5ndGgsZmRlKTpbXSxmdD1pdC5sZW5ndGg7Zm9yKHZhciBEdCBpbiBtKSh2fHx1bi5jYWxsKG0sRHQpKSYmIShKJiYoRHQ9PSJsZW5ndGgifHxWJiYoRHQ9PSJvZmZzZXQifHxEdD09InBhcmVudCIpfHxZJiYoRHQ9PSJidWZmZXIifHxEdD09ImJ5dGVMZW5ndGgifHxEdD09ImJ5dGVPZmZzZXQiKXx8dXAoRHQsZnQpKSkmJml0LnB1c2goRHQpO3JldHVybiBpdH1mdW5jdGlvbiBMZnQobSl7dmFyIHY9bS5sZW5ndGg7cmV0dXJuIHY/bVtMcSgwLHYtMSldOmV9ZnVuY3Rpb24gbm1lKG0sdil7cmV0dXJuIF9JKGRzKG0pLGlfKHYsMCxtLmxlbmd0aCkpfWZ1bmN0aW9uIGltZShtKXtyZXR1cm4gX0koZHMobSkpfWZ1bmN0aW9uIGJxKG0sdixUKXsoVCE9PWUmJiFydShtW3ZdLFQpfHxUPT09ZSYmISh2IGluIG0pKSYmc3AobSx2LFQpfWZ1bmN0aW9uIElNKG0sdixUKXt2YXIgTj1tW3ZdOyghKHVuLmNhbGwobSx2KSYmcnUoTixUKSl8fFQ9PT1lJiYhKHYgaW4gbSkpJiZzcChtLHYsVCl9ZnVuY3Rpb24gaUkobSx2KXtmb3IodmFyIFQ9bS5sZW5ndGg7VC0tOylpZihydShtW1RdWzBdLHYpKXJldHVybiBUO3JldHVybi0xfWZ1bmN0aW9uIG9tZShtLHYsVCxOKXtyZXR1cm4geW0obSxmdW5jdGlvbihWLFksSil7dihOLFYsVChWKSxKKX0pLE59ZnVuY3Rpb24ga2Z0KG0sdil7cmV0dXJuIG0mJmdoKHYscG8odiksbSl9ZnVuY3Rpb24gYW1lKG0sdil7cmV0dXJuIG0mJmdoKHYsZ3ModiksbSl9ZnVuY3Rpb24gc3AobSx2LFQpe3Y9PSJfX3Byb3RvX18iJiZKNj9KNihtLHYse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOlQsd3JpdGFibGU6ITB9KTptW3ZdPVR9ZnVuY3Rpb24gd3EobSx2KXtmb3IodmFyIFQ9LTEsTj12Lmxlbmd0aCxWPXZ0KE4pLFk9bT09bnVsbDsrK1Q8TjspVltUXT1ZP2U6ckcobSx2W1RdKTtyZXR1cm4gVn1mdW5jdGlvbiBpXyhtLHYsVCl7cmV0dXJuIG09PT1tJiYoVCE9PWUmJihtPW08PVQ/bTpUKSx2IT09ZSYmKG09bT49dj9tOnYpKSxtfWZ1bmN0aW9uIGpsKG0sdixULE4sVixZKXt2YXIgSixpdD12JmMsZnQ9diZ1LER0PXYmaDtpZihUJiYoSj1WP1QobSxOLFYsWSk6VChtKSksSiE9PWUpcmV0dXJuIEo7aWYoIWVpKG0pKXJldHVybiBtO3ZhciBPdD0kZShtKTtpZihPdCl7aWYoSj1YbWUobSksIWl0KXJldHVybiBkcyhtLEopfWVsc2V7dmFyIFZ0PW5hKG0pLG9lPVZ0PT1ldHx8VnQ9PWR0O2lmKHdtKG0pKXJldHVybiBycHQobSxpdCk7aWYoVnQ9PXd0fHxWdD09YnR8fG9lJiYhVil7aWYoSj1mdHx8b2U/e306YnB0KG0pLCFpdClyZXR1cm4gZnQ/em1lKG0sYW1lKEosbSkpOk9tZShtLGtmdChKLG0pKX1lbHNle2lmKCFUbltWdF0pcmV0dXJuIFY/bTp7fTtKPSRtZShtLFZ0LGl0KX19WXx8KFk9bmV3IGV1KTt2YXIgVGU9WS5nZXQobSk7aWYoVGUpcmV0dXJuIFRlO1kuc2V0KG0sSiksS3B0KG0pP20uZm9yRWFjaChmdW5jdGlvbihEZSl7Si5hZGQoamwoRGUsdixULERlLG0sWSkpfSk6WHB0KG0pJiZtLmZvckVhY2goZnVuY3Rpb24oRGUscHIpe0ouc2V0KHByLGpsKERlLHYsVCxwcixtLFkpKX0pO3ZhciBOZT1EdD9mdD9VcTpWcTpmdD9nczpwbyxlcj1PdD9lOk5lKG0pO3JldHVybiBHbChlcnx8bSxmdW5jdGlvbihEZSxwcil7ZXImJihwcj1EZSxEZT1tW3ByXSksSU0oSixwcixqbChEZSx2LFQscHIsbSxZKSl9KSxKfWZ1bmN0aW9uIHNtZShtKXt2YXIgdj1wbyhtKTtyZXR1cm4gZnVuY3Rpb24oVCl7cmV0dXJuIFJmdChULG0sdil9fWZ1bmN0aW9uIFJmdChtLHYsVCl7dmFyIE49VC5sZW5ndGg7aWYobT09bnVsbClyZXR1cm4hTjtmb3IobT12bihtKTtOLS07KXt2YXIgVj1UW05dLFk9dltWXSxKPW1bVl07aWYoSj09PWUmJiEoViBpbiBtKXx8IVkoSikpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gTmZ0KG0sdixUKXtpZih0eXBlb2YgbSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgV2woaSk7cmV0dXJuIHpNKGZ1bmN0aW9uKCl7bS5hcHBseShlLFQpfSx2KX1mdW5jdGlvbiBMTShtLHYsVCxOKXt2YXIgVj0tMSxZPVY2LEo9ITAsaXQ9bS5sZW5ndGgsZnQ9W10sRHQ9di5sZW5ndGg7aWYoIWl0KXJldHVybiBmdDtUJiYodj1Lbih2LFlzKFQpKSksTj8oWT1scSxKPSExKTp2Lmxlbmd0aD49ciYmKFk9TU0sSj0hMSx2PW5ldyBuXyh2KSk7dDpmb3IoOysrVjxpdDspe3ZhciBPdD1tW1ZdLFZ0PVQ9PW51bGw/T3Q6VChPdCk7aWYoT3Q9Tnx8T3QhPT0wP090OjAsSiYmVnQ9PT1WdCl7Zm9yKHZhciBvZT1EdDtvZS0tOylpZih2W29lXT09PVZ0KWNvbnRpbnVlIHQ7ZnQucHVzaChPdCl9ZWxzZSBZKHYsVnQsTil8fGZ0LnB1c2goT3QpfXJldHVybiBmdH12YXIgeW09c3B0KG1oKSxEZnQ9c3B0KE1xLCEwKTtmdW5jdGlvbiBsbWUobSx2KXt2YXIgVD0hMDtyZXR1cm4geW0obSxmdW5jdGlvbihOLFYsWSl7cmV0dXJuIFQ9ISF2KE4sVixZKSxUfSksVH1mdW5jdGlvbiBvSShtLHYsVCl7Zm9yKHZhciBOPS0xLFY9bS5sZW5ndGg7KytOPFY7KXt2YXIgWT1tW05dLEo9dihZKTtpZihKIT1udWxsJiYoaXQ9PT1lP0o9PT1KJiYhWHMoSik6VChKLGl0KSkpdmFyIGl0PUosZnQ9WX1yZXR1cm4gZnR9ZnVuY3Rpb24gY21lKG0sdixULE4pe3ZhciBWPW0ubGVuZ3RoO2ZvcihUPVFlKFQpLFQ8MCYmKFQ9LVQ+Vj8wOlYrVCksTj1OPT09ZXx8Tj5WP1Y6UWUoTiksTjwwJiYoTis9ViksTj1UPk4/MDpKcHQoTik7VDxOOyltW1QrK109djtyZXR1cm4gbX1mdW5jdGlvbiBPZnQobSx2KXt2YXIgVD1bXTtyZXR1cm4geW0obSxmdW5jdGlvbihOLFYsWSl7dihOLFYsWSkmJlQucHVzaChOKX0pLFR9ZnVuY3Rpb24gUm8obSx2LFQsTixWKXt2YXIgWT0tMSxKPW0ubGVuZ3RoO2ZvcihUfHwoVD1abWUpLFZ8fChWPVtdKTsrK1k8Sjspe3ZhciBpdD1tW1ldO3Y+MCYmVChpdCk/dj4xP1JvKGl0LHYtMSxULE4sVik6ZG0oVixpdCk6Tnx8KFZbVi5sZW5ndGhdPWl0KX1yZXR1cm4gVn12YXIgU3E9bHB0KCksemZ0PWxwdCghMCk7ZnVuY3Rpb24gbWgobSx2KXtyZXR1cm4gbSYmU3EobSx2LHBvKX1mdW5jdGlvbiBNcShtLHYpe3JldHVybiBtJiZ6ZnQobSx2LHBvKX1mdW5jdGlvbiBhSShtLHYpe3JldHVybiBwbSh2LGZ1bmN0aW9uKFQpe3JldHVybiBocChtW1RdKX0pfWZ1bmN0aW9uIG9fKG0sdil7dj14bSh2LG0pO2Zvcih2YXIgVD0wLE49di5sZW5ndGg7bSE9bnVsbCYmVDxOOyltPW1bX2godltUKytdKV07cmV0dXJuIFQmJlQ9PU4/bTplfWZ1bmN0aW9uIEZmdChtLHYsVCl7dmFyIE49dihtKTtyZXR1cm4gJGUobSk/TjpkbShOLFQobSkpfWZ1bmN0aW9uIGthKG0pe3JldHVybiBtPT1udWxsP209PT1lP3R0Omh0OmVfJiZlXyBpbiB2bihtKT9XbWUobSk6aWdlKG0pfWZ1bmN0aW9uIEVxKG0sdil7cmV0dXJuIG0+dn1mdW5jdGlvbiB1bWUobSx2KXtyZXR1cm4gbSE9bnVsbCYmdW4uY2FsbChtLHYpfWZ1bmN0aW9uIGhtZShtLHYpe3JldHVybiBtIT1udWxsJiZ2IGluIHZuKG0pfWZ1bmN0aW9uIGZtZShtLHYsVCl7cmV0dXJuIG0+PXJhKHYsVCkmJm08WGkodixUKX1mdW5jdGlvbiBUcShtLHYsVCl7Zm9yKHZhciBOPVQ/bHE6VjYsVj1tWzBdLmxlbmd0aCxZPW0ubGVuZ3RoLEo9WSxpdD12dChZKSxmdD0xLzAsRHQ9W107Si0tOyl7dmFyIE90PW1bSl07SiYmdiYmKE90PUtuKE90LFlzKHYpKSksZnQ9cmEoT3QubGVuZ3RoLGZ0KSxpdFtKXT0hVCYmKHZ8fFY+PTEyMCYmT3QubGVuZ3RoPj0xMjApP25ldyBuXyhKJiZPdCk6ZX1PdD1tWzBdO3ZhciBWdD0tMSxvZT1pdFswXTt0OmZvcig7KytWdDxWJiZEdC5sZW5ndGg8ZnQ7KXt2YXIgVGU9T3RbVnRdLE5lPXY/dihUZSk6VGU7aWYoVGU9VHx8VGUhPT0wP1RlOjAsIShvZT9NTShvZSxOZSk6TihEdCxOZSxUKSkpe2ZvcihKPVk7LS1KOyl7dmFyIGVyPWl0W0pdO2lmKCEoZXI/TU0oZXIsTmUpOk4obVtKXSxOZSxUKSkpY29udGludWUgdH1vZSYmb2UucHVzaChOZSksRHQucHVzaChUZSl9fXJldHVybiBEdH1mdW5jdGlvbiBwbWUobSx2LFQsTil7cmV0dXJuIG1oKG0sZnVuY3Rpb24oVixZLEope3YoTixUKFYpLFksSil9KSxOfWZ1bmN0aW9uIGtNKG0sdixUKXt2PXhtKHYsbSksbT1FcHQobSx2KTt2YXIgTj1tPT1udWxsP206bVtfaCgkbCh2KSldO3JldHVybiBOPT1udWxsP2U6V3MoTixtLFQpfWZ1bmN0aW9uIEJmdChtKXtyZXR1cm4gc2kobSkmJmthKG0pPT1idH1mdW5jdGlvbiBkbWUobSl7cmV0dXJuIHNpKG0pJiZrYShtKT09JHR9ZnVuY3Rpb24gbW1lKG0pe3JldHVybiBzaShtKSYma2EobSk9PV90fWZ1bmN0aW9uIFJNKG0sdixULE4sVil7cmV0dXJuIG09PT12PyEwOm09PW51bGx8fHY9PW51bGx8fCFzaShtKSYmIXNpKHYpP20hPT1tJiZ2IT09djpnbWUobSx2LFQsTixSTSxWKX1mdW5jdGlvbiBnbWUobSx2LFQsTixWLFkpe3ZhciBKPSRlKG0pLGl0PSRlKHYpLGZ0PUo/TXQ6bmEobSksRHQ9aXQ/TXQ6bmEodik7ZnQ9ZnQ9PWJ0P3d0OmZ0LER0PUR0PT1idD93dDpEdDt2YXIgT3Q9ZnQ9PXd0LFZ0PUR0PT13dCxvZT1mdD09RHQ7aWYob2UmJndtKG0pKXtpZighd20odikpcmV0dXJuITE7Sj0hMCxPdD0hMX1pZihvZSYmIU90KXJldHVybiBZfHwoWT1uZXcgZXUpLEp8fFN4KG0pP3lwdChtLHYsVCxOLFYsWSk6cW1lKG0sdixmdCxULE4sVixZKTtpZighKFQmZikpe3ZhciBUZT1PdCYmdW4uY2FsbChtLCJfX3dyYXBwZWRfXyIpLE5lPVZ0JiZ1bi5jYWxsKHYsIl9fd3JhcHBlZF9fIik7aWYoVGV8fE5lKXt2YXIgZXI9VGU/bS52YWx1ZSgpOm0sRGU9TmU/di52YWx1ZSgpOnY7cmV0dXJuIFl8fChZPW5ldyBldSksVihlcixEZSxULE4sWSl9fXJldHVybiBvZT8oWXx8KFk9bmV3IGV1KSxHbWUobSx2LFQsTixWLFkpKTohMX1mdW5jdGlvbiBfbWUobSl7cmV0dXJuIHNpKG0pJiZuYShtKT09cX1mdW5jdGlvbiBDcShtLHYsVCxOKXt2YXIgVj1ULmxlbmd0aCxZPVYsSj0hTjtpZihtPT1udWxsKXJldHVybiFZO2ZvcihtPXZuKG0pO1YtLTspe3ZhciBpdD1UW1ZdO2lmKEomJml0WzJdP2l0WzFdIT09bVtpdFswXV06IShpdFswXWluIG0pKXJldHVybiExfWZvcig7KytWPFk7KXtpdD1UW1ZdO3ZhciBmdD1pdFswXSxEdD1tW2Z0XSxPdD1pdFsxXTtpZihKJiZpdFsyXSl7aWYoRHQ9PT1lJiYhKGZ0IGluIG0pKXJldHVybiExfWVsc2V7dmFyIFZ0PW5ldyBldTtpZihOKXZhciBvZT1OKER0LE90LGZ0LG0sdixWdCk7aWYoIShvZT09PWU/Uk0oT3QsRHQsZnxwLE4sVnQpOm9lKSlyZXR1cm4hMX19cmV0dXJuITB9ZnVuY3Rpb24gSGZ0KG0pe2lmKCFlaShtKXx8UW1lKG0pKXJldHVybiExO3ZhciB2PWhwKG0pP19kZTpQcjtyZXR1cm4gdi50ZXN0KHNfKG0pKX1mdW5jdGlvbiB5bWUobSl7cmV0dXJuIHNpKG0pJiZrYShtKT09ZWV9ZnVuY3Rpb24gdm1lKG0pe3JldHVybiBzaShtKSYmbmEobSk9PUxlfWZ1bmN0aW9uIHhtZShtKXtyZXR1cm4gc2kobSkmJlNJKG0ubGVuZ3RoKSYmISFSbltrYShtKV19ZnVuY3Rpb24gVmZ0KG0pe3JldHVybiB0eXBlb2YgbT09ImZ1bmN0aW9uIj9tOm09PW51bGw/X3M6dHlwZW9mIG09PSJvYmplY3QiPyRlKG0pP0dmdChtWzBdLG1bMV0pOnFmdChtKTpjZHQobSl9ZnVuY3Rpb24gQXEobSl7aWYoIU9NKG0pKXJldHVybiBTZGUobSk7dmFyIHY9W107Zm9yKHZhciBUIGluIHZuKG0pKXVuLmNhbGwobSxUKSYmVCE9ImNvbnN0cnVjdG9yIiYmdi5wdXNoKFQpO3JldHVybiB2fWZ1bmN0aW9uIGJtZShtKXtpZighZWkobSkpcmV0dXJuIG5nZShtKTt2YXIgdj1PTShtKSxUPVtdO2Zvcih2YXIgTiBpbiBtKU49PSJjb25zdHJ1Y3RvciImJih2fHwhdW4uY2FsbChtLE4pKXx8VC5wdXNoKE4pO3JldHVybiBUfWZ1bmN0aW9uIFBxKG0sdil7cmV0dXJuIG08dn1mdW5jdGlvbiBVZnQobSx2KXt2YXIgVD0tMSxOPW1zKG0pP3Z0KG0ubGVuZ3RoKTpbXTtyZXR1cm4geW0obSxmdW5jdGlvbihWLFksSil7TlsrK1RdPXYoVixZLEopfSksTn1mdW5jdGlvbiBxZnQobSl7dmFyIHY9R3EobSk7cmV0dXJuIHYubGVuZ3RoPT0xJiZ2WzBdWzJdP1NwdCh2WzBdWzBdLHZbMF1bMV0pOmZ1bmN0aW9uKFQpe3JldHVybiBUPT09bXx8Q3EoVCxtLHYpfX1mdW5jdGlvbiBHZnQobSx2KXtyZXR1cm4gWXEobSkmJndwdCh2KT9TcHQoX2gobSksdik6ZnVuY3Rpb24oVCl7dmFyIE49ckcoVCxtKTtyZXR1cm4gTj09PWUmJk49PT12P25HKFQsbSk6Uk0odixOLGZ8cCl9fWZ1bmN0aW9uIHNJKG0sdixULE4sVil7bSE9PXYmJlNxKHYsZnVuY3Rpb24oWSxKKXtpZihWfHwoVj1uZXcgZXUpLGVpKFkpKXdtZShtLHYsSixULHNJLE4sVik7ZWxzZXt2YXIgaXQ9Tj9OKFhxKG0sSiksWSxKKyIiLG0sdixWKTplO2l0PT09ZSYmKGl0PVkpLGJxKG0sSixpdCl9fSxncyl9ZnVuY3Rpb24gd21lKG0sdixULE4sVixZLEope3ZhciBpdD1YcShtLFQpLGZ0PVhxKHYsVCksRHQ9Si5nZXQoZnQpO2lmKER0KXticShtLFQsRHQpO3JldHVybn12YXIgT3Q9WT9ZKGl0LGZ0LFQrIiIsbSx2LEopOmUsVnQ9T3Q9PT1lO2lmKFZ0KXt2YXIgb2U9JGUoZnQpLFRlPSFvZSYmd20oZnQpLE5lPSFvZSYmIVRlJiZTeChmdCk7T3Q9ZnQsb2V8fFRlfHxOZT8kZShpdCk/T3Q9aXQ6eGkoaXQpP090PWRzKGl0KTpUZT8oVnQ9ITEsT3Q9cnB0KGZ0LCEwKSk6TmU/KFZ0PSExLE90PW5wdChmdCwhMCkpOk90PVtdOkZNKGZ0KXx8bF8oZnQpPyhPdD1pdCxsXyhpdCk/T3Q9UXB0KGl0KTooIWVpKGl0KXx8aHAoaXQpKSYmKE90PWJwdChmdCkpKTpWdD0hMX1WdCYmKEouc2V0KGZ0LE90KSxWKE90LGZ0LE4sWSxKKSxKLmRlbGV0ZShmdCkpLGJxKG0sVCxPdCl9ZnVuY3Rpb24gV2Z0KG0sdil7dmFyIFQ9bS5sZW5ndGg7aWYoISFUKXJldHVybiB2Kz12PDA/VDowLHVwKHYsVCk/bVt2XTplfWZ1bmN0aW9uIFlmdChtLHYsVCl7di5sZW5ndGg/dj1Lbih2LGZ1bmN0aW9uKFkpe3JldHVybiAkZShZKT9mdW5jdGlvbihKKXtyZXR1cm4gb18oSixZLmxlbmd0aD09PTE/WVswXTpZKX06WX0pOnY9W19zXTt2YXIgTj0tMTt2PUtuKHYsWXMoa2UoKSkpO3ZhciBWPVVmdChtLGZ1bmN0aW9uKFksSixpdCl7dmFyIGZ0PUtuKHYsZnVuY3Rpb24oRHQpe3JldHVybiBEdChZKX0pO3JldHVybntjcml0ZXJpYTpmdCxpbmRleDorK04sdmFsdWU6WX19KTtyZXR1cm4gJHBlKFYsZnVuY3Rpb24oWSxKKXtyZXR1cm4gRG1lKFksSixUKX0pfWZ1bmN0aW9uIFNtZShtLHYpe3JldHVybiBqZnQobSx2LGZ1bmN0aW9uKFQsTil7cmV0dXJuIG5HKG0sTil9KX1mdW5jdGlvbiBqZnQobSx2LFQpe2Zvcih2YXIgTj0tMSxWPXYubGVuZ3RoLFk9e307KytOPFY7KXt2YXIgSj12W05dLGl0PW9fKG0sSik7VChpdCxKKSYmTk0oWSx4bShKLG0pLGl0KX1yZXR1cm4gWX1mdW5jdGlvbiBNbWUobSl7cmV0dXJuIGZ1bmN0aW9uKHYpe3JldHVybiBvXyh2LG0pfX1mdW5jdGlvbiBJcShtLHYsVCxOKXt2YXIgVj1OP1hwZTpweCxZPS0xLEo9di5sZW5ndGgsaXQ9bTtmb3IobT09PXYmJih2PWRzKHYpKSxUJiYoaXQ9S24obSxZcyhUKSkpOysrWTxKOylmb3IodmFyIGZ0PTAsRHQ9dltZXSxPdD1UP1QoRHQpOkR0OyhmdD1WKGl0LE90LGZ0LE4pKT4tMTspaXQhPT1tJiZaNi5jYWxsKGl0LGZ0LDEpLFo2LmNhbGwobSxmdCwxKTtyZXR1cm4gbX1mdW5jdGlvbiBYZnQobSx2KXtmb3IodmFyIFQ9bT92Lmxlbmd0aDowLE49VC0xO1QtLTspe3ZhciBWPXZbVF07aWYoVD09Tnx8ViE9PVkpe3ZhciBZPVY7dXAoVik/WjYuY2FsbChtLFYsMSk6TnEobSxWKX19cmV0dXJuIG19ZnVuY3Rpb24gTHEobSx2KXtyZXR1cm4gbSt0SShBZnQoKSoodi1tKzEpKX1mdW5jdGlvbiBFbWUobSx2LFQsTil7Zm9yKHZhciBWPS0xLFk9WGkoUTYoKHYtbSkvKFR8fDEpKSwwKSxKPXZ0KFkpO1ktLTspSltOP1k6KytWXT1tLG0rPVQ7cmV0dXJuIEp9ZnVuY3Rpb24ga3EobSx2KXt2YXIgVD0iIjtpZighbXx8djwxfHx2PlUpcmV0dXJuIFQ7ZG8gdiUyJiYoVCs9bSksdj10SSh2LzIpLHYmJihtKz1tKTt3aGlsZSh2KTtyZXR1cm4gVH1mdW5jdGlvbiBucihtLHYpe3JldHVybiAkcShNcHQobSx2LF9zKSxtKyIiKX1mdW5jdGlvbiBUbWUobSl7cmV0dXJuIExmdChNeChtKSl9ZnVuY3Rpb24gQ21lKG0sdil7dmFyIFQ9TXgobSk7cmV0dXJuIF9JKFQsaV8odiwwLFQubGVuZ3RoKSl9ZnVuY3Rpb24gTk0obSx2LFQsTil7aWYoIWVpKG0pKXJldHVybiBtO3Y9eG0odixtKTtmb3IodmFyIFY9LTEsWT12Lmxlbmd0aCxKPVktMSxpdD1tO2l0IT1udWxsJiYrK1Y8WTspe3ZhciBmdD1faCh2W1ZdKSxEdD1UO2lmKGZ0PT09Il9fcHJvdG9fXyJ8fGZ0PT09ImNvbnN0cnVjdG9yInx8ZnQ9PT0icHJvdG90eXBlIilyZXR1cm4gbTtpZihWIT1KKXt2YXIgT3Q9aXRbZnRdO0R0PU4/TihPdCxmdCxpdCk6ZSxEdD09PWUmJihEdD1laShPdCk/T3Q6dXAodltWKzFdKT9bXTp7fSl9SU0oaXQsZnQsRHQpLGl0PWl0W2Z0XX1yZXR1cm4gbX12YXIgJGZ0PWVJP2Z1bmN0aW9uKG0sdil7cmV0dXJuIGVJLnNldChtLHYpLG19Ol9zLEFtZT1KNj9mdW5jdGlvbihtLHYpe3JldHVybiBKNihtLCJ0b1N0cmluZyIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHZhbHVlOm9HKHYpLHdyaXRhYmxlOiEwfSl9Ol9zO2Z1bmN0aW9uIFBtZShtKXtyZXR1cm4gX0koTXgobSkpfWZ1bmN0aW9uIFhsKG0sdixUKXt2YXIgTj0tMSxWPW0ubGVuZ3RoO3Y8MCYmKHY9LXY+Vj8wOlYrdiksVD1UPlY/VjpULFQ8MCYmKFQrPVYpLFY9dj5UPzA6VC12Pj4+MCx2Pj4+PTA7Zm9yKHZhciBZPXZ0KFYpOysrTjxWOylZW05dPW1bTit2XTtyZXR1cm4gWX1mdW5jdGlvbiBJbWUobSx2KXt2YXIgVDtyZXR1cm4geW0obSxmdW5jdGlvbihOLFYsWSl7cmV0dXJuIFQ9dihOLFYsWSksIVR9KSwhIVR9ZnVuY3Rpb24gbEkobSx2LFQpe3ZhciBOPTAsVj1tPT1udWxsP046bS5sZW5ndGg7aWYodHlwZW9mIHY9PSJudW1iZXIiJiZ2PT09diYmVjw9c3Qpe2Zvcig7TjxWOyl7dmFyIFk9TitWPj4+MSxKPW1bWV07SiE9PW51bGwmJiFYcyhKKSYmKFQ/Sjw9djpKPHYpP049WSsxOlY9WX1yZXR1cm4gVn1yZXR1cm4gUnEobSx2LF9zLFQpfWZ1bmN0aW9uIFJxKG0sdixULE4pe3ZhciBWPTAsWT1tPT1udWxsPzA6bS5sZW5ndGg7aWYoWT09PTApcmV0dXJuIDA7dj1UKHYpO2Zvcih2YXIgSj12IT09dixpdD12PT09bnVsbCxmdD1Ycyh2KSxEdD12PT09ZTtWPFk7KXt2YXIgT3Q9dEkoKFYrWSkvMiksVnQ9VChtW090XSksb2U9VnQhPT1lLFRlPVZ0PT09bnVsbCxOZT1WdD09PVZ0LGVyPVhzKFZ0KTtpZihKKXZhciBEZT1OfHxOZTtlbHNlIER0P0RlPU5lJiYoTnx8b2UpOml0P0RlPU5lJiZvZSYmKE58fCFUZSk6ZnQ/RGU9TmUmJm9lJiYhVGUmJihOfHwhZXIpOlRlfHxlcj9EZT0hMTpEZT1OP1Z0PD12OlZ0PHY7RGU/Vj1PdCsxOlk9T3R9cmV0dXJuIHJhKFksb3QpfWZ1bmN0aW9uIEtmdChtLHYpe2Zvcih2YXIgVD0tMSxOPW0ubGVuZ3RoLFY9MCxZPVtdOysrVDxOOyl7dmFyIEo9bVtUXSxpdD12P3YoSik6SjtpZighVHx8IXJ1KGl0LGZ0KSl7dmFyIGZ0PWl0O1lbVisrXT1KPT09MD8wOkp9fXJldHVybiBZfWZ1bmN0aW9uIFpmdChtKXtyZXR1cm4gdHlwZW9mIG09PSJudW1iZXIiP206WHMobSk/WjorbX1mdW5jdGlvbiBqcyhtKXtpZih0eXBlb2YgbT09InN0cmluZyIpcmV0dXJuIG07aWYoJGUobSkpcmV0dXJuIEtuKG0sanMpKyIiO2lmKFhzKG0pKXJldHVybiBQZnQ/UGZ0LmNhbGwobSk6IiI7dmFyIHY9bSsiIjtyZXR1cm4gdj09IjAiJiYxL209PS16PyItMCI6dn1mdW5jdGlvbiB2bShtLHYsVCl7dmFyIE49LTEsVj1WNixZPW0ubGVuZ3RoLEo9ITAsaXQ9W10sZnQ9aXQ7aWYoVClKPSExLFY9bHE7ZWxzZSBpZihZPj1yKXt2YXIgRHQ9dj9udWxsOlZtZShtKTtpZihEdClyZXR1cm4gcTYoRHQpO0o9ITEsVj1NTSxmdD1uZXcgbl99ZWxzZSBmdD12P1tdOml0O3Q6Zm9yKDsrK048WTspe3ZhciBPdD1tW05dLFZ0PXY/dihPdCk6T3Q7aWYoT3Q9VHx8T3QhPT0wP090OjAsSiYmVnQ9PT1WdCl7Zm9yKHZhciBvZT1mdC5sZW5ndGg7b2UtLTspaWYoZnRbb2VdPT09VnQpY29udGludWUgdDt2JiZmdC5wdXNoKFZ0KSxpdC5wdXNoKE90KX1lbHNlIFYoZnQsVnQsVCl8fChmdCE9PWl0JiZmdC5wdXNoKFZ0KSxpdC5wdXNoKE90KSl9cmV0dXJuIGl0fWZ1bmN0aW9uIE5xKG0sdil7cmV0dXJuIHY9eG0odixtKSxtPUVwdChtLHYpLG09PW51bGx8fGRlbGV0ZSBtW19oKCRsKHYpKV19ZnVuY3Rpb24gSmZ0KG0sdixULE4pe3JldHVybiBOTShtLHYsVChvXyhtLHYpKSxOKX1mdW5jdGlvbiBjSShtLHYsVCxOKXtmb3IodmFyIFY9bS5sZW5ndGgsWT1OP1Y6LTE7KE4/WS0tOisrWTxWKSYmdihtW1ldLFksbSk7KTtyZXR1cm4gVD9YbChtLE4/MDpZLE4/WSsxOlYpOlhsKG0sTj9ZKzE6MCxOP1Y6WSl9ZnVuY3Rpb24gUWZ0KG0sdil7dmFyIFQ9bTtyZXR1cm4gVCBpbnN0YW5jZW9mIGdyJiYoVD1ULnZhbHVlKCkpLGNxKHYsZnVuY3Rpb24oTixWKXtyZXR1cm4gVi5mdW5jLmFwcGx5KFYudGhpc0FyZyxkbShbTl0sVi5hcmdzKSl9LFQpfWZ1bmN0aW9uIERxKG0sdixUKXt2YXIgTj1tLmxlbmd0aDtpZihOPDIpcmV0dXJuIE4/dm0obVswXSk6W107Zm9yKHZhciBWPS0xLFk9dnQoTik7KytWPE47KWZvcih2YXIgSj1tW1ZdLGl0PS0xOysraXQ8TjspaXQhPVYmJihZW1ZdPUxNKFlbVl18fEosbVtpdF0sdixUKSk7cmV0dXJuIHZtKFJvKFksMSksdixUKX1mdW5jdGlvbiB0cHQobSx2LFQpe2Zvcih2YXIgTj0tMSxWPW0ubGVuZ3RoLFk9di5sZW5ndGgsSj17fTsrK048Vjspe3ZhciBpdD1OPFk/dltOXTplO1QoSixtW05dLGl0KX1yZXR1cm4gSn1mdW5jdGlvbiBPcShtKXtyZXR1cm4geGkobSk/bTpbXX1mdW5jdGlvbiB6cShtKXtyZXR1cm4gdHlwZW9mIG09PSJmdW5jdGlvbiI/bTpfc31mdW5jdGlvbiB4bShtLHYpe3JldHVybiAkZShtKT9tOllxKG0sdik/W21dOlBwdChvbihtKSl9dmFyIExtZT1ucjtmdW5jdGlvbiBibShtLHYsVCl7dmFyIE49bS5sZW5ndGg7cmV0dXJuIFQ9VD09PWU/TjpULCF2JiZUPj1OP206WGwobSx2LFQpfXZhciBlcHQ9eWRlfHxmdW5jdGlvbihtKXtyZXR1cm4gZm8uY2xlYXJUaW1lb3V0KG0pfTtmdW5jdGlvbiBycHQobSx2KXtpZih2KXJldHVybiBtLnNsaWNlKCk7dmFyIFQ9bS5sZW5ndGgsTj1TZnQ/U2Z0KFQpOm5ldyBtLmNvbnN0cnVjdG9yKFQpO3JldHVybiBtLmNvcHkoTiksTn1mdW5jdGlvbiBGcShtKXt2YXIgdj1uZXcgbS5jb25zdHJ1Y3RvcihtLmJ5dGVMZW5ndGgpO3JldHVybiBuZXcgJDYodikuc2V0KG5ldyAkNihtKSksdn1mdW5jdGlvbiBrbWUobSx2KXt2YXIgVD12P0ZxKG0uYnVmZmVyKTptLmJ1ZmZlcjtyZXR1cm4gbmV3IG0uY29uc3RydWN0b3IoVCxtLmJ5dGVPZmZzZXQsbS5ieXRlTGVuZ3RoKX1mdW5jdGlvbiBSbWUobSl7dmFyIHY9bmV3IG0uY29uc3RydWN0b3IobS5zb3VyY2UsS2UuZXhlYyhtKSk7cmV0dXJuIHYubGFzdEluZGV4PW0ubGFzdEluZGV4LHZ9ZnVuY3Rpb24gTm1lKG0pe3JldHVybiBQTT92bihQTS5jYWxsKG0pKTp7fX1mdW5jdGlvbiBucHQobSx2KXt2YXIgVD12P0ZxKG0uYnVmZmVyKTptLmJ1ZmZlcjtyZXR1cm4gbmV3IG0uY29uc3RydWN0b3IoVCxtLmJ5dGVPZmZzZXQsbS5sZW5ndGgpfWZ1bmN0aW9uIGlwdChtLHYpe2lmKG0hPT12KXt2YXIgVD1tIT09ZSxOPW09PT1udWxsLFY9bT09PW0sWT1YcyhtKSxKPXYhPT1lLGl0PXY9PT1udWxsLGZ0PXY9PT12LER0PVhzKHYpO2lmKCFpdCYmIUR0JiYhWSYmbT52fHxZJiZKJiZmdCYmIWl0JiYhRHR8fE4mJkomJmZ0fHwhVCYmZnR8fCFWKXJldHVybiAxO2lmKCFOJiYhWSYmIUR0JiZtPHZ8fER0JiZUJiZWJiYhTiYmIVl8fGl0JiZUJiZWfHwhSiYmVnx8IWZ0KXJldHVybi0xfXJldHVybiAwfWZ1bmN0aW9uIERtZShtLHYsVCl7Zm9yKHZhciBOPS0xLFY9bS5jcml0ZXJpYSxZPXYuY3JpdGVyaWEsSj1WLmxlbmd0aCxpdD1ULmxlbmd0aDsrK048Sjspe3ZhciBmdD1pcHQoVltOXSxZW05dKTtpZihmdCl7aWYoTj49aXQpcmV0dXJuIGZ0O3ZhciBEdD1UW05dO3JldHVybiBmdCooRHQ9PSJkZXNjIj8tMToxKX19cmV0dXJuIG0uaW5kZXgtdi5pbmRleH1mdW5jdGlvbiBvcHQobSx2LFQsTil7Zm9yKHZhciBWPS0xLFk9bS5sZW5ndGgsSj1ULmxlbmd0aCxpdD0tMSxmdD12Lmxlbmd0aCxEdD1YaShZLUosMCksT3Q9dnQoZnQrRHQpLFZ0PSFOOysraXQ8ZnQ7KU90W2l0XT12W2l0XTtmb3IoOysrVjxKOykoVnR8fFY8WSkmJihPdFtUW1ZdXT1tW1ZdKTtmb3IoO0R0LS07KU90W2l0KytdPW1bVisrXTtyZXR1cm4gT3R9ZnVuY3Rpb24gYXB0KG0sdixULE4pe2Zvcih2YXIgVj0tMSxZPW0ubGVuZ3RoLEo9LTEsaXQ9VC5sZW5ndGgsZnQ9LTEsRHQ9di5sZW5ndGgsT3Q9WGkoWS1pdCwwKSxWdD12dChPdCtEdCksb2U9IU47KytWPE90OylWdFtWXT1tW1ZdO2Zvcih2YXIgVGU9VjsrK2Z0PER0OylWdFtUZStmdF09dltmdF07Zm9yKDsrK0o8aXQ7KShvZXx8VjxZKSYmKFZ0W1RlK1RbSl1dPW1bVisrXSk7cmV0dXJuIFZ0fWZ1bmN0aW9uIGRzKG0sdil7dmFyIFQ9LTEsTj1tLmxlbmd0aDtmb3Iodnx8KHY9dnQoTikpOysrVDxOOyl2W1RdPW1bVF07cmV0dXJuIHZ9ZnVuY3Rpb24gZ2gobSx2LFQsTil7dmFyIFY9IVQ7VHx8KFQ9e30pO2Zvcih2YXIgWT0tMSxKPXYubGVuZ3RoOysrWTxKOyl7dmFyIGl0PXZbWV0sZnQ9Tj9OKFRbaXRdLG1baXRdLGl0LFQsbSk6ZTtmdD09PWUmJihmdD1tW2l0XSksVj9zcChULGl0LGZ0KTpJTShULGl0LGZ0KX1yZXR1cm4gVH1mdW5jdGlvbiBPbWUobSx2KXtyZXR1cm4gZ2gobSxXcShtKSx2KX1mdW5jdGlvbiB6bWUobSx2KXtyZXR1cm4gZ2gobSx2cHQobSksdil9ZnVuY3Rpb24gdUkobSx2KXtyZXR1cm4gZnVuY3Rpb24oVCxOKXt2YXIgVj0kZShUKT9VcGU6b21lLFk9dj92KCk6e307cmV0dXJuIFYoVCxtLGtlKE4sMiksWSl9fWZ1bmN0aW9uIHh4KG0pe3JldHVybiBucihmdW5jdGlvbih2LFQpe3ZhciBOPS0xLFY9VC5sZW5ndGgsWT1WPjE/VFtWLTFdOmUsSj1WPjI/VFsyXTplO2ZvcihZPW0ubGVuZ3RoPjMmJnR5cGVvZiBZPT0iZnVuY3Rpb24iPyhWLS0sWSk6ZSxKJiZSYShUWzBdLFRbMV0sSikmJihZPVY8Mz9lOlksVj0xKSx2PXZuKHYpOysrTjxWOyl7dmFyIGl0PVRbTl07aXQmJm0odixpdCxOLFkpfXJldHVybiB2fSl9ZnVuY3Rpb24gc3B0KG0sdil7cmV0dXJuIGZ1bmN0aW9uKFQsTil7aWYoVD09bnVsbClyZXR1cm4gVDtpZighbXMoVCkpcmV0dXJuIG0oVCxOKTtmb3IodmFyIFY9VC5sZW5ndGgsWT12P1Y6LTEsSj12bihUKTsodj9ZLS06KytZPFYpJiZOKEpbWV0sWSxKKSE9PSExOyk7cmV0dXJuIFR9fWZ1bmN0aW9uIGxwdChtKXtyZXR1cm4gZnVuY3Rpb24odixULE4pe2Zvcih2YXIgVj0tMSxZPXZuKHYpLEo9Tih2KSxpdD1KLmxlbmd0aDtpdC0tOyl7dmFyIGZ0PUpbbT9pdDorK1ZdO2lmKFQoWVtmdF0sZnQsWSk9PT0hMSlicmVha31yZXR1cm4gdn19ZnVuY3Rpb24gRm1lKG0sdixUKXt2YXIgTj12JmQsVj1ETShtKTtmdW5jdGlvbiBZKCl7dmFyIEo9dGhpcyYmdGhpcyE9PWZvJiZ0aGlzIGluc3RhbmNlb2YgWT9WOm07cmV0dXJuIEouYXBwbHkoTj9UOnRoaXMsYXJndW1lbnRzKX1yZXR1cm4gWX1mdW5jdGlvbiBjcHQobSl7cmV0dXJuIGZ1bmN0aW9uKHYpe3Y9b24odik7dmFyIFQ9ZHgodik/dHUodik6ZSxOPVQ/VFswXTp2LmNoYXJBdCgwKSxWPVQ/Ym0oVCwxKS5qb2luKCIiKTp2LnNsaWNlKDEpO3JldHVybiBOW21dKCkrVn19ZnVuY3Rpb24gYngobSl7cmV0dXJuIGZ1bmN0aW9uKHYpe3JldHVybiBjcShzZHQoYWR0KHYpLnJlcGxhY2UoQXBlLCIiKSksbSwiIil9fWZ1bmN0aW9uIERNKG0pe3JldHVybiBmdW5jdGlvbigpe3ZhciB2PWFyZ3VtZW50cztzd2l0Y2godi5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gbmV3IG07Y2FzZSAxOnJldHVybiBuZXcgbSh2WzBdKTtjYXNlIDI6cmV0dXJuIG5ldyBtKHZbMF0sdlsxXSk7Y2FzZSAzOnJldHVybiBuZXcgbSh2WzBdLHZbMV0sdlsyXSk7Y2FzZSA0OnJldHVybiBuZXcgbSh2WzBdLHZbMV0sdlsyXSx2WzNdKTtjYXNlIDU6cmV0dXJuIG5ldyBtKHZbMF0sdlsxXSx2WzJdLHZbM10sdls0XSk7Y2FzZSA2OnJldHVybiBuZXcgbSh2WzBdLHZbMV0sdlsyXSx2WzNdLHZbNF0sdls1XSk7Y2FzZSA3OnJldHVybiBuZXcgbSh2WzBdLHZbMV0sdlsyXSx2WzNdLHZbNF0sdls1XSx2WzZdKX12YXIgVD12eChtLnByb3RvdHlwZSksTj1tLmFwcGx5KFQsdik7cmV0dXJuIGVpKE4pP046VH19ZnVuY3Rpb24gQm1lKG0sdixUKXt2YXIgTj1ETShtKTtmdW5jdGlvbiBWKCl7Zm9yKHZhciBZPWFyZ3VtZW50cy5sZW5ndGgsSj12dChZKSxpdD1ZLGZ0PXd4KFYpO2l0LS07KUpbaXRdPWFyZ3VtZW50c1tpdF07dmFyIER0PVk8MyYmSlswXSE9PWZ0JiZKW1ktMV0hPT1mdD9bXTptbShKLGZ0KTtpZihZLT1EdC5sZW5ndGgsWTxUKXJldHVybiBkcHQobSx2LGhJLFYucGxhY2Vob2xkZXIsZSxKLER0LGUsZSxULVkpO3ZhciBPdD10aGlzJiZ0aGlzIT09Zm8mJnRoaXMgaW5zdGFuY2VvZiBWP046bTtyZXR1cm4gV3MoT3QsdGhpcyxKKX1yZXR1cm4gVn1mdW5jdGlvbiB1cHQobSl7cmV0dXJuIGZ1bmN0aW9uKHYsVCxOKXt2YXIgVj12bih2KTtpZighbXModikpe3ZhciBZPWtlKFQsMyk7dj1wbyh2KSxUPWZ1bmN0aW9uKGl0KXtyZXR1cm4gWShWW2l0XSxpdCxWKX19dmFyIEo9bSh2LFQsTik7cmV0dXJuIEo+LTE/VltZP3ZbSl06Sl06ZX19ZnVuY3Rpb24gaHB0KG0pe3JldHVybiBjcChmdW5jdGlvbih2KXt2YXIgVD12Lmxlbmd0aCxOPVQsVj1ZbC5wcm90b3R5cGUudGhydTtmb3IobSYmdi5yZXZlcnNlKCk7Ti0tOyl7dmFyIFk9dltOXTtpZih0eXBlb2YgWSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgV2woaSk7aWYoViYmIUomJm1JKFkpPT0id3JhcHBlciIpdmFyIEo9bmV3IFlsKFtdLCEwKX1mb3IoTj1KP046VDsrK048VDspe1k9dltOXTt2YXIgaXQ9bUkoWSksZnQ9aXQ9PSJ3cmFwcGVyIj9xcShZKTplO2Z0JiZqcShmdFswXSkmJmZ0WzFdPT0oQ3x5fGJ8UCkmJiFmdFs0XS5sZW5ndGgmJmZ0WzldPT0xP0o9SlttSShmdFswXSldLmFwcGx5KEosZnRbM10pOko9WS5sZW5ndGg9PTEmJmpxKFkpP0pbaXRdKCk6Si50aHJ1KFkpfXJldHVybiBmdW5jdGlvbigpe3ZhciBEdD1hcmd1bWVudHMsT3Q9RHRbMF07aWYoSiYmRHQubGVuZ3RoPT0xJiYkZShPdCkpcmV0dXJuIEoucGxhbnQoT3QpLnZhbHVlKCk7Zm9yKHZhciBWdD0wLG9lPVQ/dltWdF0uYXBwbHkodGhpcyxEdCk6T3Q7KytWdDxUOylvZT12W1Z0XS5jYWxsKHRoaXMsb2UpO3JldHVybiBvZX19KX1mdW5jdGlvbiBoSShtLHYsVCxOLFYsWSxKLGl0LGZ0LER0KXt2YXIgT3Q9diZDLFZ0PXYmZCxvZT12JmcsVGU9diYoeXx4KSxOZT12JmssZXI9b2U/ZTpETShtKTtmdW5jdGlvbiBEZSgpe2Zvcih2YXIgcHI9YXJndW1lbnRzLmxlbmd0aCx5cj12dChwciksJHM9cHI7JHMtLTspeXJbJHNdPWFyZ3VtZW50c1skc107aWYoVGUpdmFyIE5hPXd4KERlKSxLcz1acGUoeXIsTmEpO2lmKE4mJih5cj1vcHQoeXIsTixWLFRlKSksWSYmKHlyPWFwdCh5cixZLEosVGUpKSxwci09S3MsVGUmJnByPER0KXt2YXIgYmk9bW0oeXIsTmEpO3JldHVybiBkcHQobSx2LGhJLERlLnBsYWNlaG9sZGVyLFQseXIsYmksaXQsZnQsRHQtcHIpfXZhciBudT1WdD9UOnRoaXMscHA9b2U/bnVbbV06bTtyZXR1cm4gcHI9eXIubGVuZ3RoLGl0P3lyPW9nZSh5cixpdCk6TmUmJnByPjEmJnlyLnJldmVyc2UoKSxPdCYmZnQ8cHImJih5ci5sZW5ndGg9ZnQpLHRoaXMmJnRoaXMhPT1mbyYmdGhpcyBpbnN0YW5jZW9mIERlJiYocHA9ZXJ8fERNKHBwKSkscHAuYXBwbHkobnUseXIpfXJldHVybiBEZX1mdW5jdGlvbiBmcHQobSx2KXtyZXR1cm4gZnVuY3Rpb24oVCxOKXtyZXR1cm4gcG1lKFQsbSx2KE4pLHt9KX19ZnVuY3Rpb24gZkkobSx2KXtyZXR1cm4gZnVuY3Rpb24oVCxOKXt2YXIgVjtpZihUPT09ZSYmTj09PWUpcmV0dXJuIHY7aWYoVCE9PWUmJihWPVQpLE4hPT1lKXtpZihWPT09ZSlyZXR1cm4gTjt0eXBlb2YgVD09InN0cmluZyJ8fHR5cGVvZiBOPT0ic3RyaW5nIj8oVD1qcyhUKSxOPWpzKE4pKTooVD1aZnQoVCksTj1aZnQoTikpLFY9bShULE4pfXJldHVybiBWfX1mdW5jdGlvbiBCcShtKXtyZXR1cm4gY3AoZnVuY3Rpb24odil7cmV0dXJuIHY9S24odixZcyhrZSgpKSksbnIoZnVuY3Rpb24oVCl7dmFyIE49dGhpcztyZXR1cm4gbSh2LGZ1bmN0aW9uKFYpe3JldHVybiBXcyhWLE4sVCl9KX0pfSl9ZnVuY3Rpb24gcEkobSx2KXt2PXY9PT1lPyIgIjpqcyh2KTt2YXIgVD12Lmxlbmd0aDtpZihUPDIpcmV0dXJuIFQ/a3EodixtKTp2O3ZhciBOPWtxKHYsUTYobS9teCh2KSkpO3JldHVybiBkeCh2KT9ibSh0dShOKSwwLG0pLmpvaW4oIiIpOk4uc2xpY2UoMCxtKX1mdW5jdGlvbiBIbWUobSx2LFQsTil7dmFyIFY9diZkLFk9RE0obSk7ZnVuY3Rpb24gSigpe2Zvcih2YXIgaXQ9LTEsZnQ9YXJndW1lbnRzLmxlbmd0aCxEdD0tMSxPdD1OLmxlbmd0aCxWdD12dChPdCtmdCksb2U9dGhpcyYmdGhpcyE9PWZvJiZ0aGlzIGluc3RhbmNlb2YgSj9ZOm07KytEdDxPdDspVnRbRHRdPU5bRHRdO2Zvcig7ZnQtLTspVnRbRHQrK109YXJndW1lbnRzWysraXRdO3JldHVybiBXcyhvZSxWP1Q6dGhpcyxWdCl9cmV0dXJuIEp9ZnVuY3Rpb24gcHB0KG0pe3JldHVybiBmdW5jdGlvbih2LFQsTil7cmV0dXJuIE4mJnR5cGVvZiBOIT0ibnVtYmVyIiYmUmEodixULE4pJiYoVD1OPWUpLHY9ZnAodiksVD09PWU/KFQ9dix2PTApOlQ9ZnAoVCksTj1OPT09ZT92PFQ/MTotMTpmcChOKSxFbWUodixULE4sbSl9fWZ1bmN0aW9uIGRJKG0pe3JldHVybiBmdW5jdGlvbih2LFQpe3JldHVybiB0eXBlb2Ygdj09InN0cmluZyImJnR5cGVvZiBUPT0ic3RyaW5nInx8KHY9S2wodiksVD1LbChUKSksbSh2LFQpfX1mdW5jdGlvbiBkcHQobSx2LFQsTixWLFksSixpdCxmdCxEdCl7dmFyIE90PXYmeSxWdD1PdD9KOmUsb2U9T3Q/ZTpKLFRlPU90P1k6ZSxOZT1PdD9lOlk7dnw9T3Q/YjpTLHYmPX4oT3Q/UzpiKSx2Jl98fCh2Jj1+KGR8ZykpO3ZhciBlcj1bbSx2LFYsVGUsVnQsTmUsb2UsaXQsZnQsRHRdLERlPVQuYXBwbHkoZSxlcik7cmV0dXJuIGpxKG0pJiZUcHQoRGUsZXIpLERlLnBsYWNlaG9sZGVyPU4sQ3B0KERlLG0sdil9ZnVuY3Rpb24gSHEobSl7dmFyIHY9amlbbV07cmV0dXJuIGZ1bmN0aW9uKFQsTil7aWYoVD1LbChUKSxOPU49PW51bGw/MDpyYShRZShOKSwyOTIpLE4mJkNmdChUKSl7dmFyIFY9KG9uKFQpKyJlIikuc3BsaXQoImUiKSxZPXYoVlswXSsiZSIrKCtWWzFdK04pKTtyZXR1cm4gVj0ob24oWSkrImUiKS5zcGxpdCgiZSIpLCsoVlswXSsiZSIrKCtWWzFdLU4pKX1yZXR1cm4gdihUKX19dmFyIFZtZT1feCYmMS9xNihuZXcgX3goWywtMF0pKVsxXT09ej9mdW5jdGlvbihtKXtyZXR1cm4gbmV3IF94KG0pfTpsRztmdW5jdGlvbiBtcHQobSl7cmV0dXJuIGZ1bmN0aW9uKHYpe3ZhciBUPW5hKHYpO3JldHVybiBUPT1xP2dxKHYpOlQ9PUxlP2lkZSh2KTpLcGUodixtKHYpKX19ZnVuY3Rpb24gbHAobSx2LFQsTixWLFksSixpdCl7dmFyIGZ0PXYmZztpZighZnQmJnR5cGVvZiBtIT0iZnVuY3Rpb24iKXRocm93IG5ldyBXbChpKTt2YXIgRHQ9Tj9OLmxlbmd0aDowO2lmKER0fHwodiY9fihifFMpLE49Vj1lKSxKPUo9PT1lP0o6WGkoUWUoSiksMCksaXQ9aXQ9PT1lP2l0OlFlKGl0KSxEdC09Vj9WLmxlbmd0aDowLHYmUyl7dmFyIE90PU4sVnQ9VjtOPVY9ZX12YXIgb2U9ZnQ/ZTpxcShtKSxUZT1bbSx2LFQsTixWLE90LFZ0LFksSixpdF07aWYob2UmJnJnZShUZSxvZSksbT1UZVswXSx2PVRlWzFdLFQ9VGVbMl0sTj1UZVszXSxWPVRlWzRdLGl0PVRlWzldPVRlWzldPT09ZT9mdD8wOm0ubGVuZ3RoOlhpKFRlWzldLUR0LDApLCFpdCYmdiYoeXx4KSYmKHYmPX4oeXx4KSksIXZ8fHY9PWQpdmFyIE5lPUZtZShtLHYsVCk7ZWxzZSB2PT15fHx2PT14P05lPUJtZShtLHYsaXQpOih2PT1ifHx2PT0oZHxiKSkmJiFWLmxlbmd0aD9OZT1IbWUobSx2LFQsTik6TmU9aEkuYXBwbHkoZSxUZSk7dmFyIGVyPW9lPyRmdDpUcHQ7cmV0dXJuIENwdChlcihOZSxUZSksbSx2KX1mdW5jdGlvbiBncHQobSx2LFQsTil7cmV0dXJuIG09PT1lfHxydShtLGd4W1RdKSYmIXVuLmNhbGwoTixUKT92Om19ZnVuY3Rpb24gX3B0KG0sdixULE4sVixZKXtyZXR1cm4gZWkobSkmJmVpKHYpJiYoWS5zZXQodixtKSxzSShtLHYsZSxfcHQsWSksWS5kZWxldGUodikpLG19ZnVuY3Rpb24gVW1lKG0pe3JldHVybiBGTShtKT9lOm19ZnVuY3Rpb24geXB0KG0sdixULE4sVixZKXt2YXIgSj1UJmYsaXQ9bS5sZW5ndGgsZnQ9di5sZW5ndGg7aWYoaXQhPWZ0JiYhKEomJmZ0Pml0KSlyZXR1cm4hMTt2YXIgRHQ9WS5nZXQobSksT3Q9WS5nZXQodik7aWYoRHQmJk90KXJldHVybiBEdD09diYmT3Q9PW07dmFyIFZ0PS0xLG9lPSEwLFRlPVQmcD9uZXcgbl86ZTtmb3IoWS5zZXQobSx2KSxZLnNldCh2LG0pOysrVnQ8aXQ7KXt2YXIgTmU9bVtWdF0sZXI9dltWdF07aWYoTil2YXIgRGU9Sj9OKGVyLE5lLFZ0LHYsbSxZKTpOKE5lLGVyLFZ0LG0sdixZKTtpZihEZSE9PWUpe2lmKERlKWNvbnRpbnVlO29lPSExO2JyZWFrfWlmKFRlKXtpZighdXEodixmdW5jdGlvbihwcix5cil7aWYoIU1NKFRlLHlyKSYmKE5lPT09cHJ8fFYoTmUscHIsVCxOLFkpKSlyZXR1cm4gVGUucHVzaCh5cil9KSl7b2U9ITE7YnJlYWt9fWVsc2UgaWYoIShOZT09PWVyfHxWKE5lLGVyLFQsTixZKSkpe29lPSExO2JyZWFrfX1yZXR1cm4gWS5kZWxldGUobSksWS5kZWxldGUodiksb2V9ZnVuY3Rpb24gcW1lKG0sdixULE4sVixZLEope3N3aXRjaChUKXtjYXNlIGhlOmlmKG0uYnl0ZUxlbmd0aCE9di5ieXRlTGVuZ3RofHxtLmJ5dGVPZmZzZXQhPXYuYnl0ZU9mZnNldClyZXR1cm4hMTttPW0uYnVmZmVyLHY9di5idWZmZXI7Y2FzZSAkdDpyZXR1cm4hKG0uYnl0ZUxlbmd0aCE9di5ieXRlTGVuZ3RofHwhWShuZXcgJDYobSksbmV3ICQ2KHYpKSk7Y2FzZSBLdDpjYXNlIF90OmNhc2UgcHQ6cmV0dXJuIHJ1KCttLCt2KTtjYXNlIFg6cmV0dXJuIG0ubmFtZT09di5uYW1lJiZtLm1lc3NhZ2U9PXYubWVzc2FnZTtjYXNlIGVlOmNhc2UgYXI6cmV0dXJuIG09PXYrIiI7Y2FzZSBxOnZhciBpdD1ncTtjYXNlIExlOnZhciBmdD1OJmY7aWYoaXR8fChpdD1xNiksbS5zaXplIT12LnNpemUmJiFmdClyZXR1cm4hMTt2YXIgRHQ9Si5nZXQobSk7aWYoRHQpcmV0dXJuIER0PT12O058PXAsSi5zZXQobSx2KTt2YXIgT3Q9eXB0KGl0KG0pLGl0KHYpLE4sVixZLEopO3JldHVybiBKLmRlbGV0ZShtKSxPdDtjYXNlIGZyOmlmKFBNKXJldHVybiBQTS5jYWxsKG0pPT1QTS5jYWxsKHYpfXJldHVybiExfWZ1bmN0aW9uIEdtZShtLHYsVCxOLFYsWSl7dmFyIEo9VCZmLGl0PVZxKG0pLGZ0PWl0Lmxlbmd0aCxEdD1WcSh2KSxPdD1EdC5sZW5ndGg7aWYoZnQhPU90JiYhSilyZXR1cm4hMTtmb3IodmFyIFZ0PWZ0O1Z0LS07KXt2YXIgb2U9aXRbVnRdO2lmKCEoSj9vZSBpbiB2OnVuLmNhbGwodixvZSkpKXJldHVybiExfXZhciBUZT1ZLmdldChtKSxOZT1ZLmdldCh2KTtpZihUZSYmTmUpcmV0dXJuIFRlPT12JiZOZT09bTt2YXIgZXI9ITA7WS5zZXQobSx2KSxZLnNldCh2LG0pO2Zvcih2YXIgRGU9SjsrK1Z0PGZ0Oyl7b2U9aXRbVnRdO3ZhciBwcj1tW29lXSx5cj12W29lXTtpZihOKXZhciAkcz1KP04oeXIscHIsb2UsdixtLFkpOk4ocHIseXIsb2UsbSx2LFkpO2lmKCEoJHM9PT1lP3ByPT09eXJ8fFYocHIseXIsVCxOLFkpOiRzKSl7ZXI9ITE7YnJlYWt9RGV8fChEZT1vZT09ImNvbnN0cnVjdG9yIil9aWYoZXImJiFEZSl7dmFyIE5hPW0uY29uc3RydWN0b3IsS3M9di5jb25zdHJ1Y3RvcjtOYSE9S3MmJiJjb25zdHJ1Y3RvciJpbiBtJiYiY29uc3RydWN0b3IiaW4gdiYmISh0eXBlb2YgTmE9PSJmdW5jdGlvbiImJk5hIGluc3RhbmNlb2YgTmEmJnR5cGVvZiBLcz09ImZ1bmN0aW9uIiYmS3MgaW5zdGFuY2VvZiBLcykmJihlcj0hMSl9cmV0dXJuIFkuZGVsZXRlKG0pLFkuZGVsZXRlKHYpLGVyfWZ1bmN0aW9uIGNwKG0pe3JldHVybiAkcShNcHQobSxlLFJwdCksbSsiIil9ZnVuY3Rpb24gVnEobSl7cmV0dXJuIEZmdChtLHBvLFdxKX1mdW5jdGlvbiBVcShtKXtyZXR1cm4gRmZ0KG0sZ3MsdnB0KX12YXIgcXE9ZUk/ZnVuY3Rpb24obSl7cmV0dXJuIGVJLmdldChtKX06bEc7ZnVuY3Rpb24gbUkobSl7Zm9yKHZhciB2PW0ubmFtZSsiIixUPXl4W3ZdLE49dW4uY2FsbCh5eCx2KT9ULmxlbmd0aDowO04tLTspe3ZhciBWPVRbTl0sWT1WLmZ1bmM7aWYoWT09bnVsbHx8WT09bSlyZXR1cm4gVi5uYW1lfXJldHVybiB2fWZ1bmN0aW9uIHd4KG0pe3ZhciB2PXVuLmNhbGwoRywicGxhY2Vob2xkZXIiKT9HOm07cmV0dXJuIHYucGxhY2Vob2xkZXJ9ZnVuY3Rpb24ga2UoKXt2YXIgbT1HLml0ZXJhdGVlfHxhRztyZXR1cm4gbT1tPT09YUc/VmZ0Om0sYXJndW1lbnRzLmxlbmd0aD9tKGFyZ3VtZW50c1swXSxhcmd1bWVudHNbMV0pOm19ZnVuY3Rpb24gZ0kobSx2KXt2YXIgVD1tLl9fZGF0YV9fO3JldHVybiBKbWUodik/VFt0eXBlb2Ygdj09InN0cmluZyI/InN0cmluZyI6Imhhc2giXTpULm1hcH1mdW5jdGlvbiBHcShtKXtmb3IodmFyIHY9cG8obSksVD12Lmxlbmd0aDtULS07KXt2YXIgTj12W1RdLFY9bVtOXTt2W1RdPVtOLFYsd3B0KFYpXX1yZXR1cm4gdn1mdW5jdGlvbiBhXyhtLHYpe3ZhciBUPWVkZShtLHYpO3JldHVybiBIZnQoVCk/VDplfWZ1bmN0aW9uIFdtZShtKXt2YXIgdj11bi5jYWxsKG0sZV8pLFQ9bVtlX107dHJ5e21bZV9dPWU7dmFyIE49ITB9Y2F0Y2goWSl7fXZhciBWPWo2LmNhbGwobSk7cmV0dXJuIE4mJih2P21bZV9dPVQ6ZGVsZXRlIG1bZV9dKSxWfXZhciBXcT15cT9mdW5jdGlvbihtKXtyZXR1cm4gbT09bnVsbD9bXToobT12bihtKSxwbSh5cShtKSxmdW5jdGlvbih2KXtyZXR1cm4gRWZ0LmNhbGwobSx2KX0pKX06Y0csdnB0PXlxP2Z1bmN0aW9uKG0pe2Zvcih2YXIgdj1bXTttOylkbSh2LFdxKG0pKSxtPUs2KG0pO3JldHVybiB2fTpjRyxuYT1rYTsodnEmJm5hKG5ldyB2cShuZXcgQXJyYXlCdWZmZXIoMSkpKSE9aGV8fFRNJiZuYShuZXcgVE0pIT1xfHx4cSYmbmEoeHEucmVzb2x2ZSgpKSE9a3R8fF94JiZuYShuZXcgX3gpIT1MZXx8Q00mJm5hKG5ldyBDTSkhPSQpJiYobmE9ZnVuY3Rpb24obSl7dmFyIHY9a2EobSksVD12PT13dD9tLmNvbnN0cnVjdG9yOmUsTj1UP3NfKFQpOiIiO2lmKE4pc3dpdGNoKE4pe2Nhc2UgQ2RlOnJldHVybiBoZTtjYXNlIEFkZTpyZXR1cm4gcTtjYXNlIFBkZTpyZXR1cm4ga3Q7Y2FzZSBJZGU6cmV0dXJuIExlO2Nhc2UgTGRlOnJldHVybiAkfXJldHVybiB2fSk7ZnVuY3Rpb24gWW1lKG0sdixUKXtmb3IodmFyIE49LTEsVj1ULmxlbmd0aDsrK048Vjspe3ZhciBZPVRbTl0sSj1ZLnNpemU7c3dpdGNoKFkudHlwZSl7Y2FzZSJkcm9wIjptKz1KO2JyZWFrO2Nhc2UiZHJvcFJpZ2h0Ijp2LT1KO2JyZWFrO2Nhc2UidGFrZSI6dj1yYSh2LG0rSik7YnJlYWs7Y2FzZSJ0YWtlUmlnaHQiOm09WGkobSx2LUopO2JyZWFrfX1yZXR1cm57c3RhcnQ6bSxlbmQ6dn19ZnVuY3Rpb24gam1lKG0pe3ZhciB2PW0ubWF0Y2goRXQpO3JldHVybiB2P3ZbMV0uc3BsaXQoeHQpOltdfWZ1bmN0aW9uIHhwdChtLHYsVCl7dj14bSh2LG0pO2Zvcih2YXIgTj0tMSxWPXYubGVuZ3RoLFk9ITE7KytOPFY7KXt2YXIgSj1faCh2W05dKTtpZighKFk9bSE9bnVsbCYmVChtLEopKSlicmVhazttPW1bSl19cmV0dXJuIFl8fCsrTiE9Vj9ZOihWPW09PW51bGw/MDptLmxlbmd0aCwhIVYmJlNJKFYpJiZ1cChKLFYpJiYoJGUobSl8fGxfKG0pKSl9ZnVuY3Rpb24gWG1lKG0pe3ZhciB2PW0ubGVuZ3RoLFQ9bmV3IG0uY29uc3RydWN0b3Iodik7cmV0dXJuIHYmJnR5cGVvZiBtWzBdPT0ic3RyaW5nIiYmdW4uY2FsbChtLCJpbmRleCIpJiYoVC5pbmRleD1tLmluZGV4LFQuaW5wdXQ9bS5pbnB1dCksVH1mdW5jdGlvbiBicHQobSl7cmV0dXJuIHR5cGVvZiBtLmNvbnN0cnVjdG9yPT0iZnVuY3Rpb24iJiYhT00obSk/dngoSzYobSkpOnt9fWZ1bmN0aW9uICRtZShtLHYsVCl7dmFyIE49bS5jb25zdHJ1Y3Rvcjtzd2l0Y2godil7Y2FzZSAkdDpyZXR1cm4gRnEobSk7Y2FzZSBLdDpjYXNlIF90OnJldHVybiBuZXcgTigrbSk7Y2FzZSBoZTpyZXR1cm4ga21lKG0sVCk7Y2FzZSBUdDpjYXNlIGJlOmNhc2UgbnQ6Y2FzZSBDdDpjYXNlIFd0OmNhc2UgZmU6Y2FzZSBhdDpjYXNlIHNlOmNhc2UgUXQ6cmV0dXJuIG5wdChtLFQpO2Nhc2UgcTpyZXR1cm4gbmV3IE47Y2FzZSBwdDpjYXNlIGFyOnJldHVybiBuZXcgTihtKTtjYXNlIGVlOnJldHVybiBSbWUobSk7Y2FzZSBMZTpyZXR1cm4gbmV3IE47Y2FzZSBmcjpyZXR1cm4gTm1lKG0pfX1mdW5jdGlvbiBLbWUobSx2KXt2YXIgVD12Lmxlbmd0aDtpZighVClyZXR1cm4gbTt2YXIgTj1ULTE7cmV0dXJuIHZbTl09KFQ+MT8iJiAiOiIiKSt2W05dLHY9di5qb2luKFQ+Mj8iLCAiOiIgIiksbS5yZXBsYWNlKGd0LGB7Ci8qIFt3cmFwcGVkIHdpdGggYCt2K2BdICovCmApfWZ1bmN0aW9uIFptZShtKXtyZXR1cm4gJGUobSl8fGxfKG0pfHwhIShUZnQmJm0mJm1bVGZ0XSl9ZnVuY3Rpb24gdXAobSx2KXt2YXIgVD10eXBlb2YgbTtyZXR1cm4gdj12PT1udWxsP1U6diwhIXYmJihUPT0ibnVtYmVyInx8VCE9InN5bWJvbCImJmlwLnRlc3QobSkpJiZtPi0xJiZtJTE9PTAmJm08dn1mdW5jdGlvbiBSYShtLHYsVCl7aWYoIWVpKFQpKXJldHVybiExO3ZhciBOPXR5cGVvZiB2O3JldHVybihOPT0ibnVtYmVyIj9tcyhUKSYmdXAodixULmxlbmd0aCk6Tj09InN0cmluZyImJnYgaW4gVCk/cnUoVFt2XSxtKTohMX1mdW5jdGlvbiBZcShtLHYpe2lmKCRlKG0pKXJldHVybiExO3ZhciBUPXR5cGVvZiBtO3JldHVybiBUPT0ibnVtYmVyInx8VD09InN5bWJvbCJ8fFQ9PSJib29sZWFuInx8bT09bnVsbHx8WHMobSk/ITA6dW0udGVzdChtKXx8IWN4LnRlc3QobSl8fHYhPW51bGwmJm0gaW4gdm4odil9ZnVuY3Rpb24gSm1lKG0pe3ZhciB2PXR5cGVvZiBtO3JldHVybiB2PT0ic3RyaW5nInx8dj09Im51bWJlciJ8fHY9PSJzeW1ib2wifHx2PT0iYm9vbGVhbiI/bSE9PSJfX3Byb3RvX18iOm09PT1udWxsfWZ1bmN0aW9uIGpxKG0pe3ZhciB2PW1JKG0pLFQ9R1t2XTtpZih0eXBlb2YgVCE9ImZ1bmN0aW9uInx8ISh2IGluIGdyLnByb3RvdHlwZSkpcmV0dXJuITE7aWYobT09PVQpcmV0dXJuITA7dmFyIE49cXEoVCk7cmV0dXJuISFOJiZtPT09TlswXX1mdW5jdGlvbiBRbWUobSl7cmV0dXJuISF3ZnQmJndmdCBpbiBtfXZhciB0Z2U9VzY/aHA6dUc7ZnVuY3Rpb24gT00obSl7dmFyIHY9bSYmbS5jb25zdHJ1Y3RvcixUPXR5cGVvZiB2PT0iZnVuY3Rpb24iJiZ2LnByb3RvdHlwZXx8Z3g7cmV0dXJuIG09PT1UfWZ1bmN0aW9uIHdwdChtKXtyZXR1cm4gbT09PW0mJiFlaShtKX1mdW5jdGlvbiBTcHQobSx2KXtyZXR1cm4gZnVuY3Rpb24oVCl7cmV0dXJuIFQ9PW51bGw/ITE6VFttXT09PXYmJih2IT09ZXx8bSBpbiB2bihUKSl9fWZ1bmN0aW9uIGVnZShtKXt2YXIgdj1iSShtLGZ1bmN0aW9uKE4pe3JldHVybiBULnNpemU9PT1zJiZULmNsZWFyKCksTn0pLFQ9di5jYWNoZTtyZXR1cm4gdn1mdW5jdGlvbiByZ2UobSx2KXt2YXIgVD1tWzFdLE49dlsxXSxWPVR8TixZPVY8KGR8Z3xDKSxKPU49PUMmJlQ9PXl8fE49PUMmJlQ9PVAmJm1bN10ubGVuZ3RoPD12WzhdfHxOPT0oQ3xQKSYmdls3XS5sZW5ndGg8PXZbOF0mJlQ9PXk7aWYoIShZfHxKKSlyZXR1cm4gbTtOJmQmJihtWzJdPXZbMl0sVnw9VCZkPzA6Xyk7dmFyIGl0PXZbM107aWYoaXQpe3ZhciBmdD1tWzNdO21bM109ZnQ/b3B0KGZ0LGl0LHZbNF0pOml0LG1bNF09ZnQ/bW0obVszXSxsKTp2WzRdfXJldHVybiBpdD12WzVdLGl0JiYoZnQ9bVs1XSxtWzVdPWZ0P2FwdChmdCxpdCx2WzZdKTppdCxtWzZdPWZ0P21tKG1bNV0sbCk6dls2XSksaXQ9dls3XSxpdCYmKG1bN109aXQpLE4mQyYmKG1bOF09bVs4XT09bnVsbD92WzhdOnJhKG1bOF0sdls4XSkpLG1bOV09PW51bGwmJihtWzldPXZbOV0pLG1bMF09dlswXSxtWzFdPVYsbX1mdW5jdGlvbiBuZ2UobSl7dmFyIHY9W107aWYobSE9bnVsbClmb3IodmFyIFQgaW4gdm4obSkpdi5wdXNoKFQpO3JldHVybiB2fWZ1bmN0aW9uIGlnZShtKXtyZXR1cm4gajYuY2FsbChtKX1mdW5jdGlvbiBNcHQobSx2LFQpe3JldHVybiB2PVhpKHY9PT1lP20ubGVuZ3RoLTE6diwwKSxmdW5jdGlvbigpe2Zvcih2YXIgTj1hcmd1bWVudHMsVj0tMSxZPVhpKE4ubGVuZ3RoLXYsMCksSj12dChZKTsrK1Y8WTspSltWXT1OW3YrVl07Vj0tMTtmb3IodmFyIGl0PXZ0KHYrMSk7KytWPHY7KWl0W1ZdPU5bVl07cmV0dXJuIGl0W3ZdPVQoSiksV3MobSx0aGlzLGl0KX19ZnVuY3Rpb24gRXB0KG0sdil7cmV0dXJuIHYubGVuZ3RoPDI/bTpvXyhtLFhsKHYsMCwtMSkpfWZ1bmN0aW9uIG9nZShtLHYpe2Zvcih2YXIgVD1tLmxlbmd0aCxOPXJhKHYubGVuZ3RoLFQpLFY9ZHMobSk7Ti0tOyl7dmFyIFk9dltOXTttW05dPXVwKFksVCk/VltZXTplfXJldHVybiBtfWZ1bmN0aW9uIFhxKG0sdil7aWYoISh2PT09ImNvbnN0cnVjdG9yIiYmdHlwZW9mIG1bdl09PSJmdW5jdGlvbiIpJiZ2IT0iX19wcm90b19fIilyZXR1cm4gbVt2XX12YXIgVHB0PUFwdCgkZnQpLHpNPXhkZXx8ZnVuY3Rpb24obSx2KXtyZXR1cm4gZm8uc2V0VGltZW91dChtLHYpfSwkcT1BcHQoQW1lKTtmdW5jdGlvbiBDcHQobSx2LFQpe3ZhciBOPXYrIiI7cmV0dXJuICRxKG0sS21lKE4sYWdlKGptZShOKSxUKSkpfWZ1bmN0aW9uIEFwdChtKXt2YXIgdj0wLFQ9MDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgTj1NZGUoKSxWPUktKE4tVCk7aWYoVD1OLFY+MCl7aWYoKyt2Pj1CKXJldHVybiBhcmd1bWVudHNbMF19ZWxzZSB2PTA7cmV0dXJuIG0uYXBwbHkoZSxhcmd1bWVudHMpfX1mdW5jdGlvbiBfSShtLHYpe3ZhciBUPS0xLE49bS5sZW5ndGgsVj1OLTE7Zm9yKHY9dj09PWU/Tjp2OysrVDx2Oyl7dmFyIFk9THEoVCxWKSxKPW1bWV07bVtZXT1tW1RdLG1bVF09Sn1yZXR1cm4gbS5sZW5ndGg9dixtfXZhciBQcHQ9ZWdlKGZ1bmN0aW9uKG0pe3ZhciB2PVtdO3JldHVybiBtLmNoYXJDb2RlQXQoMCk9PT00NiYmdi5wdXNoKCIiKSxtLnJlcGxhY2UoUTAsZnVuY3Rpb24oVCxOLFYsWSl7di5wdXNoKFY/WS5yZXBsYWNlKFVlLCIkMSIpOk58fFQpfSksdn0pO2Z1bmN0aW9uIF9oKG0pe2lmKHR5cGVvZiBtPT0ic3RyaW5nInx8WHMobSkpcmV0dXJuIG07dmFyIHY9bSsiIjtyZXR1cm4gdj09IjAiJiYxL209PS16PyItMCI6dn1mdW5jdGlvbiBzXyhtKXtpZihtIT1udWxsKXt0cnl7cmV0dXJuIFk2LmNhbGwobSl9Y2F0Y2godil7fXRyeXtyZXR1cm4gbSsiIn1jYXRjaCh2KXt9fXJldHVybiIifWZ1bmN0aW9uIGFnZShtLHYpe3JldHVybiBHbChTdCxmdW5jdGlvbihUKXt2YXIgTj0iXy4iK1RbMF07diZUWzFdJiYhVjYobSxOKSYmbS5wdXNoKE4pfSksbS5zb3J0KCl9ZnVuY3Rpb24gSXB0KG0pe2lmKG0gaW5zdGFuY2VvZiBncilyZXR1cm4gbS5jbG9uZSgpO3ZhciB2PW5ldyBZbChtLl9fd3JhcHBlZF9fLG0uX19jaGFpbl9fKTtyZXR1cm4gdi5fX2FjdGlvbnNfXz1kcyhtLl9fYWN0aW9uc19fKSx2Ll9faW5kZXhfXz1tLl9faW5kZXhfXyx2Ll9fdmFsdWVzX189bS5fX3ZhbHVlc19fLHZ9ZnVuY3Rpb24gc2dlKG0sdixUKXsoVD9SYShtLHYsVCk6dj09PWUpP3Y9MTp2PVhpKFFlKHYpLDApO3ZhciBOPW09PW51bGw/MDptLmxlbmd0aDtpZighTnx8djwxKXJldHVybltdO2Zvcih2YXIgVj0wLFk9MCxKPXZ0KFE2KE4vdikpO1Y8TjspSltZKytdPVhsKG0sVixWKz12KTtyZXR1cm4gSn1mdW5jdGlvbiBsZ2UobSl7Zm9yKHZhciB2PS0xLFQ9bT09bnVsbD8wOm0ubGVuZ3RoLE49MCxWPVtdOysrdjxUOyl7dmFyIFk9bVt2XTtZJiYoVltOKytdPVkpfXJldHVybiBWfWZ1bmN0aW9uIGNnZSgpe3ZhciBtPWFyZ3VtZW50cy5sZW5ndGg7aWYoIW0pcmV0dXJuW107Zm9yKHZhciB2PXZ0KG0tMSksVD1hcmd1bWVudHNbMF0sTj1tO04tLTspdltOLTFdPWFyZ3VtZW50c1tOXTtyZXR1cm4gZG0oJGUoVCk/ZHMoVCk6W1RdLFJvKHYsMSkpfXZhciB1Z2U9bnIoZnVuY3Rpb24obSx2KXtyZXR1cm4geGkobSk/TE0obSxSbyh2LDEseGksITApKTpbXX0pLGhnZT1ucihmdW5jdGlvbihtLHYpe3ZhciBUPSRsKHYpO3JldHVybiB4aShUKSYmKFQ9ZSkseGkobSk/TE0obSxSbyh2LDEseGksITApLGtlKFQsMikpOltdfSksZmdlPW5yKGZ1bmN0aW9uKG0sdil7dmFyIFQ9JGwodik7cmV0dXJuIHhpKFQpJiYoVD1lKSx4aShtKT9MTShtLFJvKHYsMSx4aSwhMCksZSxUKTpbXX0pO2Z1bmN0aW9uIHBnZShtLHYsVCl7dmFyIE49bT09bnVsbD8wOm0ubGVuZ3RoO3JldHVybiBOPyh2PVR8fHY9PT1lPzE6UWUodiksWGwobSx2PDA/MDp2LE4pKTpbXX1mdW5jdGlvbiBkZ2UobSx2LFQpe3ZhciBOPW09PW51bGw/MDptLmxlbmd0aDtyZXR1cm4gTj8odj1UfHx2PT09ZT8xOlFlKHYpLHY9Ti12LFhsKG0sMCx2PDA/MDp2KSk6W119ZnVuY3Rpb24gbWdlKG0sdil7cmV0dXJuIG0mJm0ubGVuZ3RoP2NJKG0sa2UodiwzKSwhMCwhMCk6W119ZnVuY3Rpb24gZ2dlKG0sdil7cmV0dXJuIG0mJm0ubGVuZ3RoP2NJKG0sa2UodiwzKSwhMCk6W119ZnVuY3Rpb24gX2dlKG0sdixULE4pe3ZhciBWPW09PW51bGw/MDptLmxlbmd0aDtyZXR1cm4gVj8oVCYmdHlwZW9mIFQhPSJudW1iZXIiJiZSYShtLHYsVCkmJihUPTAsTj1WKSxjbWUobSx2LFQsTikpOltdfWZ1bmN0aW9uIExwdChtLHYsVCl7dmFyIE49bT09bnVsbD8wOm0ubGVuZ3RoO2lmKCFOKXJldHVybi0xO3ZhciBWPVQ9PW51bGw/MDpRZShUKTtyZXR1cm4gVjwwJiYoVj1YaShOK1YsMCkpLFU2KG0sa2UodiwzKSxWKX1mdW5jdGlvbiBrcHQobSx2LFQpe3ZhciBOPW09PW51bGw/MDptLmxlbmd0aDtpZighTilyZXR1cm4tMTt2YXIgVj1OLTE7cmV0dXJuIFQhPT1lJiYoVj1RZShUKSxWPVQ8MD9YaShOK1YsMCk6cmEoVixOLTEpKSxVNihtLGtlKHYsMyksViwhMCl9ZnVuY3Rpb24gUnB0KG0pe3ZhciB2PW09PW51bGw/MDptLmxlbmd0aDtyZXR1cm4gdj9SbyhtLDEpOltdfWZ1bmN0aW9uIHlnZShtKXt2YXIgdj1tPT1udWxsPzA6bS5sZW5ndGg7cmV0dXJuIHY/Um8obSx6KTpbXX1mdW5jdGlvbiB2Z2UobSx2KXt2YXIgVD1tPT1udWxsPzA6bS5sZW5ndGg7cmV0dXJuIFQ/KHY9dj09PWU/MTpRZSh2KSxSbyhtLHYpKTpbXX1mdW5jdGlvbiB4Z2UobSl7Zm9yKHZhciB2PS0xLFQ9bT09bnVsbD8wOm0ubGVuZ3RoLE49e307Kyt2PFQ7KXt2YXIgVj1tW3ZdO05bVlswXV09VlsxXX1yZXR1cm4gTn1mdW5jdGlvbiBOcHQobSl7cmV0dXJuIG0mJm0ubGVuZ3RoP21bMF06ZX1mdW5jdGlvbiBiZ2UobSx2LFQpe3ZhciBOPW09PW51bGw/MDptLmxlbmd0aDtpZighTilyZXR1cm4tMTt2YXIgVj1UPT1udWxsPzA6UWUoVCk7cmV0dXJuIFY8MCYmKFY9WGkoTitWLDApKSxweChtLHYsVil9ZnVuY3Rpb24gd2dlKG0pe3ZhciB2PW09PW51bGw/MDptLmxlbmd0aDtyZXR1cm4gdj9YbChtLDAsLTEpOltdfXZhciBTZ2U9bnIoZnVuY3Rpb24obSl7dmFyIHY9S24obSxPcSk7cmV0dXJuIHYubGVuZ3RoJiZ2WzBdPT09bVswXT9UcSh2KTpbXX0pLE1nZT1ucihmdW5jdGlvbihtKXt2YXIgdj0kbChtKSxUPUtuKG0sT3EpO3JldHVybiB2PT09JGwoVCk/dj1lOlQucG9wKCksVC5sZW5ndGgmJlRbMF09PT1tWzBdP1RxKFQsa2UodiwyKSk6W119KSxFZ2U9bnIoZnVuY3Rpb24obSl7dmFyIHY9JGwobSksVD1LbihtLE9xKTtyZXR1cm4gdj10eXBlb2Ygdj09ImZ1bmN0aW9uIj92OmUsdiYmVC5wb3AoKSxULmxlbmd0aCYmVFswXT09PW1bMF0/VHEoVCxlLHYpOltdfSk7ZnVuY3Rpb24gVGdlKG0sdil7cmV0dXJuIG09PW51bGw/IiI6d2RlLmNhbGwobSx2KX1mdW5jdGlvbiAkbChtKXt2YXIgdj1tPT1udWxsPzA6bS5sZW5ndGg7cmV0dXJuIHY/bVt2LTFdOmV9ZnVuY3Rpb24gQ2dlKG0sdixUKXt2YXIgTj1tPT1udWxsPzA6bS5sZW5ndGg7aWYoIU4pcmV0dXJuLTE7dmFyIFY9TjtyZXR1cm4gVCE9PWUmJihWPVFlKFQpLFY9VjwwP1hpKE4rViwwKTpyYShWLE4tMSkpLHY9PT12P2FkZShtLHYsVik6VTYobSxkZnQsViwhMCl9ZnVuY3Rpb24gQWdlKG0sdil7cmV0dXJuIG0mJm0ubGVuZ3RoP1dmdChtLFFlKHYpKTplfXZhciBQZ2U9bnIoRHB0KTtmdW5jdGlvbiBEcHQobSx2KXtyZXR1cm4gbSYmbS5sZW5ndGgmJnYmJnYubGVuZ3RoP0lxKG0sdik6bX1mdW5jdGlvbiBJZ2UobSx2LFQpe3JldHVybiBtJiZtLmxlbmd0aCYmdiYmdi5sZW5ndGg/SXEobSx2LGtlKFQsMikpOm19ZnVuY3Rpb24gTGdlKG0sdixUKXtyZXR1cm4gbSYmbS5sZW5ndGgmJnYmJnYubGVuZ3RoP0lxKG0sdixlLFQpOm19dmFyIGtnZT1jcChmdW5jdGlvbihtLHYpe3ZhciBUPW09PW51bGw/MDptLmxlbmd0aCxOPXdxKG0sdik7cmV0dXJuIFhmdChtLEtuKHYsZnVuY3Rpb24oVil7cmV0dXJuIHVwKFYsVCk/K1Y6Vn0pLnNvcnQoaXB0KSksTn0pO2Z1bmN0aW9uIFJnZShtLHYpe3ZhciBUPVtdO2lmKCEobSYmbS5sZW5ndGgpKXJldHVybiBUO3ZhciBOPS0xLFY9W10sWT1tLmxlbmd0aDtmb3Iodj1rZSh2LDMpOysrTjxZOyl7dmFyIEo9bVtOXTt2KEosTixtKSYmKFQucHVzaChKKSxWLnB1c2goTikpfXJldHVybiBYZnQobSxWKSxUfWZ1bmN0aW9uIEtxKG0pe3JldHVybiBtPT1udWxsP206VGRlLmNhbGwobSl9ZnVuY3Rpb24gTmdlKG0sdixUKXt2YXIgTj1tPT1udWxsPzA6bS5sZW5ndGg7cmV0dXJuIE4/KFQmJnR5cGVvZiBUIT0ibnVtYmVyIiYmUmEobSx2LFQpPyh2PTAsVD1OKToodj12PT1udWxsPzA6UWUodiksVD1UPT09ZT9OOlFlKFQpKSxYbChtLHYsVCkpOltdfWZ1bmN0aW9uIERnZShtLHYpe3JldHVybiBsSShtLHYpfWZ1bmN0aW9uIE9nZShtLHYsVCl7cmV0dXJuIFJxKG0sdixrZShULDIpKX1mdW5jdGlvbiB6Z2UobSx2KXt2YXIgVD1tPT1udWxsPzA6bS5sZW5ndGg7aWYoVCl7dmFyIE49bEkobSx2KTtpZihOPFQmJnJ1KG1bTl0sdikpcmV0dXJuIE59cmV0dXJuLTF9ZnVuY3Rpb24gRmdlKG0sdil7cmV0dXJuIGxJKG0sdiwhMCl9ZnVuY3Rpb24gQmdlKG0sdixUKXtyZXR1cm4gUnEobSx2LGtlKFQsMiksITApfWZ1bmN0aW9uIEhnZShtLHYpe3ZhciBUPW09PW51bGw/MDptLmxlbmd0aDtpZihUKXt2YXIgTj1sSShtLHYsITApLTE7aWYocnUobVtOXSx2KSlyZXR1cm4gTn1yZXR1cm4tMX1mdW5jdGlvbiBWZ2UobSl7cmV0dXJuIG0mJm0ubGVuZ3RoP0tmdChtKTpbXX1mdW5jdGlvbiBVZ2UobSx2KXtyZXR1cm4gbSYmbS5sZW5ndGg/S2Z0KG0sa2UodiwyKSk6W119ZnVuY3Rpb24gcWdlKG0pe3ZhciB2PW09PW51bGw/MDptLmxlbmd0aDtyZXR1cm4gdj9YbChtLDEsdik6W119ZnVuY3Rpb24gR2dlKG0sdixUKXtyZXR1cm4gbSYmbS5sZW5ndGg/KHY9VHx8dj09PWU/MTpRZSh2KSxYbChtLDAsdjwwPzA6dikpOltdfWZ1bmN0aW9uIFdnZShtLHYsVCl7dmFyIE49bT09bnVsbD8wOm0ubGVuZ3RoO3JldHVybiBOPyh2PVR8fHY9PT1lPzE6UWUodiksdj1OLXYsWGwobSx2PDA/MDp2LE4pKTpbXX1mdW5jdGlvbiBZZ2UobSx2KXtyZXR1cm4gbSYmbS5sZW5ndGg/Y0kobSxrZSh2LDMpLCExLCEwKTpbXX1mdW5jdGlvbiBqZ2UobSx2KXtyZXR1cm4gbSYmbS5sZW5ndGg/Y0kobSxrZSh2LDMpKTpbXX12YXIgWGdlPW5yKGZ1bmN0aW9uKG0pe3JldHVybiB2bShSbyhtLDEseGksITApKX0pLCRnZT1ucihmdW5jdGlvbihtKXt2YXIgdj0kbChtKTtyZXR1cm4geGkodikmJih2PWUpLHZtKFJvKG0sMSx4aSwhMCksa2UodiwyKSl9KSxLZ2U9bnIoZnVuY3Rpb24obSl7dmFyIHY9JGwobSk7cmV0dXJuIHY9dHlwZW9mIHY9PSJmdW5jdGlvbiI/djplLHZtKFJvKG0sMSx4aSwhMCksZSx2KX0pO2Z1bmN0aW9uIFpnZShtKXtyZXR1cm4gbSYmbS5sZW5ndGg/dm0obSk6W119ZnVuY3Rpb24gSmdlKG0sdil7cmV0dXJuIG0mJm0ubGVuZ3RoP3ZtKG0sa2UodiwyKSk6W119ZnVuY3Rpb24gUWdlKG0sdil7cmV0dXJuIHY9dHlwZW9mIHY9PSJmdW5jdGlvbiI/djplLG0mJm0ubGVuZ3RoP3ZtKG0sZSx2KTpbXX1mdW5jdGlvbiBacShtKXtpZighKG0mJm0ubGVuZ3RoKSlyZXR1cm5bXTt2YXIgdj0wO3JldHVybiBtPXBtKG0sZnVuY3Rpb24oVCl7aWYoeGkoVCkpcmV0dXJuIHY9WGkoVC5sZW5ndGgsdiksITB9KSxkcSh2LGZ1bmN0aW9uKFQpe3JldHVybiBLbihtLGhxKFQpKX0pfWZ1bmN0aW9uIE9wdChtLHYpe2lmKCEobSYmbS5sZW5ndGgpKXJldHVybltdO3ZhciBUPVpxKG0pO3JldHVybiB2PT1udWxsP1Q6S24oVCxmdW5jdGlvbihOKXtyZXR1cm4gV3ModixlLE4pfSl9dmFyIHQwZT1ucihmdW5jdGlvbihtLHYpe3JldHVybiB4aShtKT9MTShtLHYpOltdfSksZTBlPW5yKGZ1bmN0aW9uKG0pe3JldHVybiBEcShwbShtLHhpKSl9KSxyMGU9bnIoZnVuY3Rpb24obSl7dmFyIHY9JGwobSk7cmV0dXJuIHhpKHYpJiYodj1lKSxEcShwbShtLHhpKSxrZSh2LDIpKX0pLG4wZT1ucihmdW5jdGlvbihtKXt2YXIgdj0kbChtKTtyZXR1cm4gdj10eXBlb2Ygdj09ImZ1bmN0aW9uIj92OmUsRHEocG0obSx4aSksZSx2KX0pLGkwZT1ucihacSk7ZnVuY3Rpb24gbzBlKG0sdil7cmV0dXJuIHRwdChtfHxbXSx2fHxbXSxJTSl9ZnVuY3Rpb24gYTBlKG0sdil7cmV0dXJuIHRwdChtfHxbXSx2fHxbXSxOTSl9dmFyIHMwZT1ucihmdW5jdGlvbihtKXt2YXIgdj1tLmxlbmd0aCxUPXY+MT9tW3YtMV06ZTtyZXR1cm4gVD10eXBlb2YgVD09ImZ1bmN0aW9uIj8obS5wb3AoKSxUKTplLE9wdChtLFQpfSk7ZnVuY3Rpb24genB0KG0pe3ZhciB2PUcobSk7cmV0dXJuIHYuX19jaGFpbl9fPSEwLHZ9ZnVuY3Rpb24gbDBlKG0sdil7cmV0dXJuIHYobSksbX1mdW5jdGlvbiB5SShtLHYpe3JldHVybiB2KG0pfXZhciBjMGU9Y3AoZnVuY3Rpb24obSl7dmFyIHY9bS5sZW5ndGgsVD12P21bMF06MCxOPXRoaXMuX193cmFwcGVkX18sVj1mdW5jdGlvbihZKXtyZXR1cm4gd3EoWSxtKX07cmV0dXJuIHY+MXx8dGhpcy5fX2FjdGlvbnNfXy5sZW5ndGh8fCEoTiBpbnN0YW5jZW9mIGdyKXx8IXVwKFQpP3RoaXMudGhydShWKTooTj1OLnNsaWNlKFQsK1QrKHY/MTowKSksTi5fX2FjdGlvbnNfXy5wdXNoKHtmdW5jOnlJLGFyZ3M6W1ZdLHRoaXNBcmc6ZX0pLG5ldyBZbChOLHRoaXMuX19jaGFpbl9fKS50aHJ1KGZ1bmN0aW9uKFkpe3JldHVybiB2JiYhWS5sZW5ndGgmJlkucHVzaChlKSxZfSkpfSk7ZnVuY3Rpb24gdTBlKCl7cmV0dXJuIHpwdCh0aGlzKX1mdW5jdGlvbiBoMGUoKXtyZXR1cm4gbmV3IFlsKHRoaXMudmFsdWUoKSx0aGlzLl9fY2hhaW5fXyl9ZnVuY3Rpb24gZjBlKCl7dGhpcy5fX3ZhbHVlc19fPT09ZSYmKHRoaXMuX192YWx1ZXNfXz1acHQodGhpcy52YWx1ZSgpKSk7dmFyIG09dGhpcy5fX2luZGV4X18+PXRoaXMuX192YWx1ZXNfXy5sZW5ndGgsdj1tP2U6dGhpcy5fX3ZhbHVlc19fW3RoaXMuX19pbmRleF9fKytdO3JldHVybntkb25lOm0sdmFsdWU6dn19ZnVuY3Rpb24gcDBlKCl7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gZDBlKG0pe2Zvcih2YXIgdixUPXRoaXM7VCBpbnN0YW5jZW9mIG5JOyl7dmFyIE49SXB0KFQpO04uX19pbmRleF9fPTAsTi5fX3ZhbHVlc19fPWUsdj9WLl9fd3JhcHBlZF9fPU46dj1OO3ZhciBWPU47VD1ULl9fd3JhcHBlZF9ffXJldHVybiBWLl9fd3JhcHBlZF9fPW0sdn1mdW5jdGlvbiBtMGUoKXt2YXIgbT10aGlzLl9fd3JhcHBlZF9fO2lmKG0gaW5zdGFuY2VvZiBncil7dmFyIHY9bTtyZXR1cm4gdGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgmJih2PW5ldyBncih0aGlzKSksdj12LnJldmVyc2UoKSx2Ll9fYWN0aW9uc19fLnB1c2goe2Z1bmM6eUksYXJnczpbS3FdLHRoaXNBcmc6ZX0pLG5ldyBZbCh2LHRoaXMuX19jaGFpbl9fKX1yZXR1cm4gdGhpcy50aHJ1KEtxKX1mdW5jdGlvbiBnMGUoKXtyZXR1cm4gUWZ0KHRoaXMuX193cmFwcGVkX18sdGhpcy5fX2FjdGlvbnNfXyl9dmFyIF8wZT11SShmdW5jdGlvbihtLHYsVCl7dW4uY2FsbChtLFQpPysrbVtUXTpzcChtLFQsMSl9KTtmdW5jdGlvbiB5MGUobSx2LFQpe3ZhciBOPSRlKG0pP2ZmdDpsbWU7cmV0dXJuIFQmJlJhKG0sdixUKSYmKHY9ZSksTihtLGtlKHYsMykpfWZ1bmN0aW9uIHYwZShtLHYpe3ZhciBUPSRlKG0pP3BtOk9mdDtyZXR1cm4gVChtLGtlKHYsMykpfXZhciB4MGU9dXB0KExwdCksYjBlPXVwdChrcHQpO2Z1bmN0aW9uIHcwZShtLHYpe3JldHVybiBSbyh2SShtLHYpLDEpfWZ1bmN0aW9uIFMwZShtLHYpe3JldHVybiBSbyh2SShtLHYpLHopfWZ1bmN0aW9uIE0wZShtLHYsVCl7cmV0dXJuIFQ9VD09PWU/MTpRZShUKSxSbyh2SShtLHYpLFQpfWZ1bmN0aW9uIEZwdChtLHYpe3ZhciBUPSRlKG0pP0dsOnltO3JldHVybiBUKG0sa2UodiwzKSl9ZnVuY3Rpb24gQnB0KG0sdil7dmFyIFQ9JGUobSk/cXBlOkRmdDtyZXR1cm4gVChtLGtlKHYsMykpfXZhciBFMGU9dUkoZnVuY3Rpb24obSx2LFQpe3VuLmNhbGwobSxUKT9tW1RdLnB1c2godik6c3AobSxULFt2XSl9KTtmdW5jdGlvbiBUMGUobSx2LFQsTil7bT1tcyhtKT9tOk14KG0pLFQ9VCYmIU4/UWUoVCk6MDt2YXIgVj1tLmxlbmd0aDtyZXR1cm4gVDwwJiYoVD1YaShWK1QsMCkpLE1JKG0pP1Q8PVYmJm0uaW5kZXhPZih2LFQpPi0xOiEhViYmcHgobSx2LFQpPi0xfXZhciBDMGU9bnIoZnVuY3Rpb24obSx2LFQpe3ZhciBOPS0xLFY9dHlwZW9mIHY9PSJmdW5jdGlvbiIsWT1tcyhtKT92dChtLmxlbmd0aCk6W107cmV0dXJuIHltKG0sZnVuY3Rpb24oSil7WVsrK05dPVY/V3ModixKLFQpOmtNKEosdixUKX0pLFl9KSxBMGU9dUkoZnVuY3Rpb24obSx2LFQpe3NwKG0sVCx2KX0pO2Z1bmN0aW9uIHZJKG0sdil7dmFyIFQ9JGUobSk/S246VWZ0O3JldHVybiBUKG0sa2UodiwzKSl9ZnVuY3Rpb24gUDBlKG0sdixULE4pe3JldHVybiBtPT1udWxsP1tdOigkZSh2KXx8KHY9dj09bnVsbD9bXTpbdl0pLFQ9Tj9lOlQsJGUoVCl8fChUPVQ9PW51bGw/W106W1RdKSxZZnQobSx2LFQpKX12YXIgSTBlPXVJKGZ1bmN0aW9uKG0sdixUKXttW1Q/MDoxXS5wdXNoKHYpfSxmdW5jdGlvbigpe3JldHVybltbXSxbXV19KTtmdW5jdGlvbiBMMGUobSx2LFQpe3ZhciBOPSRlKG0pP2NxOmdmdCxWPWFyZ3VtZW50cy5sZW5ndGg8MztyZXR1cm4gTihtLGtlKHYsNCksVCxWLHltKX1mdW5jdGlvbiBrMGUobSx2LFQpe3ZhciBOPSRlKG0pP0dwZTpnZnQsVj1hcmd1bWVudHMubGVuZ3RoPDM7cmV0dXJuIE4obSxrZSh2LDQpLFQsVixEZnQpfWZ1bmN0aW9uIFIwZShtLHYpe3ZhciBUPSRlKG0pP3BtOk9mdDtyZXR1cm4gVChtLHdJKGtlKHYsMykpKX1mdW5jdGlvbiBOMGUobSl7dmFyIHY9JGUobSk/TGZ0OlRtZTtyZXR1cm4gdihtKX1mdW5jdGlvbiBEMGUobSx2LFQpeyhUP1JhKG0sdixUKTp2PT09ZSk/dj0xOnY9UWUodik7dmFyIE49JGUobSk/bm1lOkNtZTtyZXR1cm4gTihtLHYpfWZ1bmN0aW9uIE8wZShtKXt2YXIgdj0kZShtKT9pbWU6UG1lO3JldHVybiB2KG0pfWZ1bmN0aW9uIHowZShtKXtpZihtPT1udWxsKXJldHVybiAwO2lmKG1zKG0pKXJldHVybiBNSShtKT9teChtKTptLmxlbmd0aDt2YXIgdj1uYShtKTtyZXR1cm4gdj09cXx8dj09TGU/bS5zaXplOkFxKG0pLmxlbmd0aH1mdW5jdGlvbiBGMGUobSx2LFQpe3ZhciBOPSRlKG0pP3VxOkltZTtyZXR1cm4gVCYmUmEobSx2LFQpJiYodj1lKSxOKG0sa2UodiwzKSl9dmFyIEIwZT1ucihmdW5jdGlvbihtLHYpe2lmKG09PW51bGwpcmV0dXJuW107dmFyIFQ9di5sZW5ndGg7cmV0dXJuIFQ+MSYmUmEobSx2WzBdLHZbMV0pP3Y9W106VD4yJiZSYSh2WzBdLHZbMV0sdlsyXSkmJih2PVt2WzBdXSksWWZ0KG0sUm8odiwxKSxbXSl9KSx4ST12ZGV8fGZ1bmN0aW9uKCl7cmV0dXJuIGZvLkRhdGUubm93KCl9O2Z1bmN0aW9uIEgwZShtLHYpe2lmKHR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBXbChpKTtyZXR1cm4gbT1RZShtKSxmdW5jdGlvbigpe2lmKC0tbTwxKXJldHVybiB2LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gSHB0KG0sdixUKXtyZXR1cm4gdj1UP2U6dix2PW0mJnY9PW51bGw/bS5sZW5ndGg6dixscChtLEMsZSxlLGUsZSx2KX1mdW5jdGlvbiBWcHQobSx2KXt2YXIgVDtpZih0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgV2woaSk7cmV0dXJuIG09UWUobSksZnVuY3Rpb24oKXtyZXR1cm4tLW0+MCYmKFQ9di5hcHBseSh0aGlzLGFyZ3VtZW50cykpLG08PTEmJih2PWUpLFR9fXZhciBKcT1ucihmdW5jdGlvbihtLHYsVCl7dmFyIE49ZDtpZihULmxlbmd0aCl7dmFyIFY9bW0oVCx3eChKcSkpO058PWJ9cmV0dXJuIGxwKG0sTix2LFQsVil9KSxVcHQ9bnIoZnVuY3Rpb24obSx2LFQpe3ZhciBOPWR8ZztpZihULmxlbmd0aCl7dmFyIFY9bW0oVCx3eChVcHQpKTtOfD1ifXJldHVybiBscCh2LE4sbSxULFYpfSk7ZnVuY3Rpb24gcXB0KG0sdixUKXt2PVQ/ZTp2O3ZhciBOPWxwKG0seSxlLGUsZSxlLGUsdik7cmV0dXJuIE4ucGxhY2Vob2xkZXI9cXB0LnBsYWNlaG9sZGVyLE59ZnVuY3Rpb24gR3B0KG0sdixUKXt2PVQ/ZTp2O3ZhciBOPWxwKG0seCxlLGUsZSxlLGUsdik7cmV0dXJuIE4ucGxhY2Vob2xkZXI9R3B0LnBsYWNlaG9sZGVyLE59ZnVuY3Rpb24gV3B0KG0sdixUKXt2YXIgTixWLFksSixpdCxmdCxEdD0wLE90PSExLFZ0PSExLG9lPSEwO2lmKHR5cGVvZiBtIT0iZnVuY3Rpb24iKXRocm93IG5ldyBXbChpKTt2PUtsKHYpfHwwLGVpKFQpJiYoT3Q9ISFULmxlYWRpbmcsVnQ9Im1heFdhaXQiaW4gVCxZPVZ0P1hpKEtsKFQubWF4V2FpdCl8fDAsdik6WSxvZT0idHJhaWxpbmciaW4gVD8hIVQudHJhaWxpbmc6b2UpO2Z1bmN0aW9uIFRlKGJpKXt2YXIgbnU9TixwcD1WO3JldHVybiBOPVY9ZSxEdD1iaSxKPW0uYXBwbHkocHAsbnUpLEp9ZnVuY3Rpb24gTmUoYmkpe3JldHVybiBEdD1iaSxpdD16TShwcix2KSxPdD9UZShiaSk6Sn1mdW5jdGlvbiBlcihiaSl7dmFyIG51PWJpLWZ0LHBwPWJpLUR0LHVkdD12LW51O3JldHVybiBWdD9yYSh1ZHQsWS1wcCk6dWR0fWZ1bmN0aW9uIERlKGJpKXt2YXIgbnU9YmktZnQscHA9YmktRHQ7cmV0dXJuIGZ0PT09ZXx8bnU+PXZ8fG51PDB8fFZ0JiZwcD49WX1mdW5jdGlvbiBwcigpe3ZhciBiaT14SSgpO2lmKERlKGJpKSlyZXR1cm4geXIoYmkpO2l0PXpNKHByLGVyKGJpKSl9ZnVuY3Rpb24geXIoYmkpe3JldHVybiBpdD1lLG9lJiZOP1RlKGJpKTooTj1WPWUsSil9ZnVuY3Rpb24gJHMoKXtpdCE9PWUmJmVwdChpdCksRHQ9MCxOPWZ0PVY9aXQ9ZX1mdW5jdGlvbiBOYSgpe3JldHVybiBpdD09PWU/Sjp5cih4SSgpKX1mdW5jdGlvbiBLcygpe3ZhciBiaT14SSgpLG51PURlKGJpKTtpZihOPWFyZ3VtZW50cyxWPXRoaXMsZnQ9YmksbnUpe2lmKGl0PT09ZSlyZXR1cm4gTmUoZnQpO2lmKFZ0KXJldHVybiBlcHQoaXQpLGl0PXpNKHByLHYpLFRlKGZ0KX1yZXR1cm4gaXQ9PT1lJiYoaXQ9ek0ocHIsdikpLEp9cmV0dXJuIEtzLmNhbmNlbD0kcyxLcy5mbHVzaD1OYSxLc312YXIgVjBlPW5yKGZ1bmN0aW9uKG0sdil7cmV0dXJuIE5mdChtLDEsdil9KSxVMGU9bnIoZnVuY3Rpb24obSx2LFQpe3JldHVybiBOZnQobSxLbCh2KXx8MCxUKX0pO2Z1bmN0aW9uIHEwZShtKXtyZXR1cm4gbHAobSxrKX1mdW5jdGlvbiBiSShtLHYpe2lmKHR5cGVvZiBtIT0iZnVuY3Rpb24ifHx2IT1udWxsJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgV2woaSk7dmFyIFQ9ZnVuY3Rpb24oKXt2YXIgTj1hcmd1bWVudHMsVj12P3YuYXBwbHkodGhpcyxOKTpOWzBdLFk9VC5jYWNoZTtpZihZLmhhcyhWKSlyZXR1cm4gWS5nZXQoVik7dmFyIEo9bS5hcHBseSh0aGlzLE4pO3JldHVybiBULmNhY2hlPVkuc2V0KFYsSil8fFksSn07cmV0dXJuIFQuY2FjaGU9bmV3KGJJLkNhY2hlfHxhcCksVH1iSS5DYWNoZT1hcDtmdW5jdGlvbiB3SShtKXtpZih0eXBlb2YgbSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgV2woaSk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHY9YXJndW1lbnRzO3N3aXRjaCh2Lmxlbmd0aCl7Y2FzZSAwOnJldHVybiFtLmNhbGwodGhpcyk7Y2FzZSAxOnJldHVybiFtLmNhbGwodGhpcyx2WzBdKTtjYXNlIDI6cmV0dXJuIW0uY2FsbCh0aGlzLHZbMF0sdlsxXSk7Y2FzZSAzOnJldHVybiFtLmNhbGwodGhpcyx2WzBdLHZbMV0sdlsyXSl9cmV0dXJuIW0uYXBwbHkodGhpcyx2KX19ZnVuY3Rpb24gRzBlKG0pe3JldHVybiBWcHQoMixtKX12YXIgVzBlPUxtZShmdW5jdGlvbihtLHYpe3Y9di5sZW5ndGg9PTEmJiRlKHZbMF0pP0tuKHZbMF0sWXMoa2UoKSkpOktuKFJvKHYsMSksWXMoa2UoKSkpO3ZhciBUPXYubGVuZ3RoO3JldHVybiBucihmdW5jdGlvbihOKXtmb3IodmFyIFY9LTEsWT1yYShOLmxlbmd0aCxUKTsrK1Y8WTspTltWXT12W1ZdLmNhbGwodGhpcyxOW1ZdKTtyZXR1cm4gV3MobSx0aGlzLE4pfSl9KSxRcT1ucihmdW5jdGlvbihtLHYpe3ZhciBUPW1tKHYsd3goUXEpKTtyZXR1cm4gbHAobSxiLGUsdixUKX0pLFlwdD1ucihmdW5jdGlvbihtLHYpe3ZhciBUPW1tKHYsd3goWXB0KSk7cmV0dXJuIGxwKG0sUyxlLHYsVCl9KSxZMGU9Y3AoZnVuY3Rpb24obSx2KXtyZXR1cm4gbHAobSxQLGUsZSxlLHYpfSk7ZnVuY3Rpb24gajBlKG0sdil7aWYodHlwZW9mIG0hPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFdsKGkpO3JldHVybiB2PXY9PT1lP3Y6UWUodiksbnIobSx2KX1mdW5jdGlvbiBYMGUobSx2KXtpZih0eXBlb2YgbSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgV2woaSk7cmV0dXJuIHY9dj09bnVsbD8wOlhpKFFlKHYpLDApLG5yKGZ1bmN0aW9uKFQpe3ZhciBOPVRbdl0sVj1ibShULDAsdik7cmV0dXJuIE4mJmRtKFYsTiksV3MobSx0aGlzLFYpfSl9ZnVuY3Rpb24gJDBlKG0sdixUKXt2YXIgTj0hMCxWPSEwO2lmKHR5cGVvZiBtIT0iZnVuY3Rpb24iKXRocm93IG5ldyBXbChpKTtyZXR1cm4gZWkoVCkmJihOPSJsZWFkaW5nImluIFQ/ISFULmxlYWRpbmc6TixWPSJ0cmFpbGluZyJpbiBUPyEhVC50cmFpbGluZzpWKSxXcHQobSx2LHtsZWFkaW5nOk4sbWF4V2FpdDp2LHRyYWlsaW5nOlZ9KX1mdW5jdGlvbiBLMGUobSl7cmV0dXJuIEhwdChtLDEpfWZ1bmN0aW9uIFowZShtLHYpe3JldHVybiBRcSh6cSh2KSxtKX1mdW5jdGlvbiBKMGUoKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm5bXTt2YXIgbT1hcmd1bWVudHNbMF07cmV0dXJuICRlKG0pP206W21dfWZ1bmN0aW9uIFEwZShtKXtyZXR1cm4gamwobSxoKX1mdW5jdGlvbiB0X2UobSx2KXtyZXR1cm4gdj10eXBlb2Ygdj09ImZ1bmN0aW9uIj92OmUsamwobSxoLHYpfWZ1bmN0aW9uIGVfZShtKXtyZXR1cm4gamwobSxjfGgpfWZ1bmN0aW9uIHJfZShtLHYpe3JldHVybiB2PXR5cGVvZiB2PT0iZnVuY3Rpb24iP3Y6ZSxqbChtLGN8aCx2KX1mdW5jdGlvbiBuX2UobSx2KXtyZXR1cm4gdj09bnVsbHx8UmZ0KG0sdixwbyh2KSl9ZnVuY3Rpb24gcnUobSx2KXtyZXR1cm4gbT09PXZ8fG0hPT1tJiZ2IT09dn12YXIgaV9lPWRJKEVxKSxvX2U9ZEkoZnVuY3Rpb24obSx2KXtyZXR1cm4gbT49dn0pLGxfPUJmdChmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpP0JmdDpmdW5jdGlvbihtKXtyZXR1cm4gc2kobSkmJnVuLmNhbGwobSwiY2FsbGVlIikmJiFFZnQuY2FsbChtLCJjYWxsZWUiKX0sJGU9dnQuaXNBcnJheSxhX2U9YWZ0P1lzKGFmdCk6ZG1lO2Z1bmN0aW9uIG1zKG0pe3JldHVybiBtIT1udWxsJiZTSShtLmxlbmd0aCkmJiFocChtKX1mdW5jdGlvbiB4aShtKXtyZXR1cm4gc2kobSkmJm1zKG0pfWZ1bmN0aW9uIHNfZShtKXtyZXR1cm4gbT09PSEwfHxtPT09ITF8fHNpKG0pJiZrYShtKT09S3R9dmFyIHdtPWJkZXx8dUcsbF9lPXNmdD9ZcyhzZnQpOm1tZTtmdW5jdGlvbiBjX2UobSl7cmV0dXJuIHNpKG0pJiZtLm5vZGVUeXBlPT09MSYmIUZNKG0pfWZ1bmN0aW9uIHVfZShtKXtpZihtPT1udWxsKXJldHVybiEwO2lmKG1zKG0pJiYoJGUobSl8fHR5cGVvZiBtPT0ic3RyaW5nInx8dHlwZW9mIG0uc3BsaWNlPT0iZnVuY3Rpb24ifHx3bShtKXx8U3gobSl8fGxfKG0pKSlyZXR1cm4hbS5sZW5ndGg7dmFyIHY9bmEobSk7aWYodj09cXx8dj09TGUpcmV0dXJuIW0uc2l6ZTtpZihPTShtKSlyZXR1cm4hQXEobSkubGVuZ3RoO2Zvcih2YXIgVCBpbiBtKWlmKHVuLmNhbGwobSxUKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBoX2UobSx2KXtyZXR1cm4gUk0obSx2KX1mdW5jdGlvbiBmX2UobSx2LFQpe1Q9dHlwZW9mIFQ9PSJmdW5jdGlvbiI/VDplO3ZhciBOPVQ/VChtLHYpOmU7cmV0dXJuIE49PT1lP1JNKG0sdixlLFQpOiEhTn1mdW5jdGlvbiB0RyhtKXtpZighc2kobSkpcmV0dXJuITE7dmFyIHY9a2EobSk7cmV0dXJuIHY9PVh8fHY9PWN0fHx0eXBlb2YgbS5tZXNzYWdlPT0ic3RyaW5nIiYmdHlwZW9mIG0ubmFtZT09InN0cmluZyImJiFGTShtKX1mdW5jdGlvbiBwX2UobSl7cmV0dXJuIHR5cGVvZiBtPT0ibnVtYmVyIiYmQ2Z0KG0pfWZ1bmN0aW9uIGhwKG0pe2lmKCFlaShtKSlyZXR1cm4hMTt2YXIgdj1rYShtKTtyZXR1cm4gdj09ZXR8fHY9PWR0fHx2PT1sdHx8dj09aWV9ZnVuY3Rpb24ganB0KG0pe3JldHVybiB0eXBlb2YgbT09Im51bWJlciImJm09PVFlKG0pfWZ1bmN0aW9uIFNJKG0pe3JldHVybiB0eXBlb2YgbT09Im51bWJlciImJm0+LTEmJm0lMT09MCYmbTw9VX1mdW5jdGlvbiBlaShtKXt2YXIgdj10eXBlb2YgbTtyZXR1cm4gbSE9bnVsbCYmKHY9PSJvYmplY3QifHx2PT0iZnVuY3Rpb24iKX1mdW5jdGlvbiBzaShtKXtyZXR1cm4gbSE9bnVsbCYmdHlwZW9mIG09PSJvYmplY3QifXZhciBYcHQ9bGZ0P1lzKGxmdCk6X21lO2Z1bmN0aW9uIGRfZShtLHYpe3JldHVybiBtPT09dnx8Q3EobSx2LEdxKHYpKX1mdW5jdGlvbiBtX2UobSx2LFQpe3JldHVybiBUPXR5cGVvZiBUPT0iZnVuY3Rpb24iP1Q6ZSxDcShtLHYsR3EodiksVCl9ZnVuY3Rpb24gZ19lKG0pe3JldHVybiAkcHQobSkmJm0hPSttfWZ1bmN0aW9uIF9fZShtKXtpZih0Z2UobSkpdGhyb3cgbmV3IFdlKG4pO3JldHVybiBIZnQobSl9ZnVuY3Rpb24geV9lKG0pe3JldHVybiBtPT09bnVsbH1mdW5jdGlvbiB2X2UobSl7cmV0dXJuIG09PW51bGx9ZnVuY3Rpb24gJHB0KG0pe3JldHVybiB0eXBlb2YgbT09Im51bWJlciJ8fHNpKG0pJiZrYShtKT09cHR9ZnVuY3Rpb24gRk0obSl7aWYoIXNpKG0pfHxrYShtKSE9d3QpcmV0dXJuITE7dmFyIHY9SzYobSk7aWYodj09PW51bGwpcmV0dXJuITA7dmFyIFQ9dW4uY2FsbCh2LCJjb25zdHJ1Y3RvciIpJiZ2LmNvbnN0cnVjdG9yO3JldHVybiB0eXBlb2YgVD09ImZ1bmN0aW9uIiYmVCBpbnN0YW5jZW9mIFQmJlk2LmNhbGwoVCk9PW1kZX12YXIgZUc9Y2Z0P1lzKGNmdCk6eW1lO2Z1bmN0aW9uIHhfZShtKXtyZXR1cm4ganB0KG0pJiZtPj0tVSYmbTw9VX12YXIgS3B0PXVmdD9Zcyh1ZnQpOnZtZTtmdW5jdGlvbiBNSShtKXtyZXR1cm4gdHlwZW9mIG09PSJzdHJpbmcifHwhJGUobSkmJnNpKG0pJiZrYShtKT09YXJ9ZnVuY3Rpb24gWHMobSl7cmV0dXJuIHR5cGVvZiBtPT0ic3ltYm9sInx8c2kobSkmJmthKG0pPT1mcn12YXIgU3g9aGZ0P1lzKGhmdCk6eG1lO2Z1bmN0aW9uIGJfZShtKXtyZXR1cm4gbT09PWV9ZnVuY3Rpb24gd19lKG0pe3JldHVybiBzaShtKSYmbmEobSk9PSR9ZnVuY3Rpb24gU19lKG0pe3JldHVybiBzaShtKSYma2EobSk9PUl0fXZhciBNX2U9ZEkoUHEpLEVfZT1kSShmdW5jdGlvbihtLHYpe3JldHVybiBtPD12fSk7ZnVuY3Rpb24gWnB0KG0pe2lmKCFtKXJldHVybltdO2lmKG1zKG0pKXJldHVybiBNSShtKT90dShtKTpkcyhtKTtpZihFTSYmbVtFTV0pcmV0dXJuIG5kZShtW0VNXSgpKTt2YXIgdj1uYShtKSxUPXY9PXE/Z3E6dj09TGU/cTY6TXg7cmV0dXJuIFQobSl9ZnVuY3Rpb24gZnAobSl7aWYoIW0pcmV0dXJuIG09PT0wP206MDtpZihtPUtsKG0pLG09PT16fHxtPT09LXope3ZhciB2PW08MD8tMToxO3JldHVybiB2Kld9cmV0dXJuIG09PT1tP206MH1mdW5jdGlvbiBRZShtKXt2YXIgdj1mcChtKSxUPXYlMTtyZXR1cm4gdj09PXY/VD92LVQ6djowfWZ1bmN0aW9uIEpwdChtKXtyZXR1cm4gbT9pXyhRZShtKSwwLHJ0KTowfWZ1bmN0aW9uIEtsKG0pe2lmKHR5cGVvZiBtPT0ibnVtYmVyIilyZXR1cm4gbTtpZihYcyhtKSlyZXR1cm4gWjtpZihlaShtKSl7dmFyIHY9dHlwZW9mIG0udmFsdWVPZj09ImZ1bmN0aW9uIj9tLnZhbHVlT2YoKTptO209ZWkodik/disiIjp2fWlmKHR5cGVvZiBtIT0ic3RyaW5nIilyZXR1cm4gbT09PTA/bTorbTttPV9mdChtKTt2YXIgVD1fci50ZXN0KG0pO3JldHVybiBUfHxYbi50ZXN0KG0pP0hwZShtLnNsaWNlKDIpLFQ/Mjo4KTpYci50ZXN0KG0pP1o6K219ZnVuY3Rpb24gUXB0KG0pe3JldHVybiBnaChtLGdzKG0pKX1mdW5jdGlvbiBUX2UobSl7cmV0dXJuIG0/aV8oUWUobSksLVUsVSk6bT09PTA/bTowfWZ1bmN0aW9uIG9uKG0pe3JldHVybiBtPT1udWxsPyIiOmpzKG0pfXZhciBDX2U9eHgoZnVuY3Rpb24obSx2KXtpZihPTSh2KXx8bXModikpe2doKHYscG8odiksbSk7cmV0dXJufWZvcih2YXIgVCBpbiB2KXVuLmNhbGwodixUKSYmSU0obSxULHZbVF0pfSksdGR0PXh4KGZ1bmN0aW9uKG0sdil7Z2godixncyh2KSxtKX0pLEVJPXh4KGZ1bmN0aW9uKG0sdixULE4pe2doKHYsZ3ModiksbSxOKX0pLEFfZT14eChmdW5jdGlvbihtLHYsVCxOKXtnaCh2LHBvKHYpLG0sTil9KSxQX2U9Y3Aod3EpO2Z1bmN0aW9uIElfZShtLHYpe3ZhciBUPXZ4KG0pO3JldHVybiB2PT1udWxsP1Q6a2Z0KFQsdil9dmFyIExfZT1ucihmdW5jdGlvbihtLHYpe209dm4obSk7dmFyIFQ9LTEsTj12Lmxlbmd0aCxWPU4+Mj92WzJdOmU7Zm9yKFYmJlJhKHZbMF0sdlsxXSxWKSYmKE49MSk7KytUPE47KWZvcih2YXIgWT12W1RdLEo9Z3MoWSksaXQ9LTEsZnQ9Si5sZW5ndGg7KytpdDxmdDspe3ZhciBEdD1KW2l0XSxPdD1tW0R0XTsoT3Q9PT1lfHxydShPdCxneFtEdF0pJiYhdW4uY2FsbChtLER0KSkmJihtW0R0XT1ZW0R0XSl9cmV0dXJuIG19KSxrX2U9bnIoZnVuY3Rpb24obSl7cmV0dXJuIG0ucHVzaChlLF9wdCksV3MoZWR0LGUsbSl9KTtmdW5jdGlvbiBSX2UobSx2KXtyZXR1cm4gcGZ0KG0sa2UodiwzKSxtaCl9ZnVuY3Rpb24gTl9lKG0sdil7cmV0dXJuIHBmdChtLGtlKHYsMyksTXEpfWZ1bmN0aW9uIERfZShtLHYpe3JldHVybiBtPT1udWxsP206U3EobSxrZSh2LDMpLGdzKX1mdW5jdGlvbiBPX2UobSx2KXtyZXR1cm4gbT09bnVsbD9tOnpmdChtLGtlKHYsMyksZ3MpfWZ1bmN0aW9uIHpfZShtLHYpe3JldHVybiBtJiZtaChtLGtlKHYsMykpfWZ1bmN0aW9uIEZfZShtLHYpe3JldHVybiBtJiZNcShtLGtlKHYsMykpfWZ1bmN0aW9uIEJfZShtKXtyZXR1cm4gbT09bnVsbD9bXTphSShtLHBvKG0pKX1mdW5jdGlvbiBIX2UobSl7cmV0dXJuIG09PW51bGw/W106YUkobSxncyhtKSl9ZnVuY3Rpb24gckcobSx2LFQpe3ZhciBOPW09PW51bGw/ZTpvXyhtLHYpO3JldHVybiBOPT09ZT9UOk59ZnVuY3Rpb24gVl9lKG0sdil7cmV0dXJuIG0hPW51bGwmJnhwdChtLHYsdW1lKX1mdW5jdGlvbiBuRyhtLHYpe3JldHVybiBtIT1udWxsJiZ4cHQobSx2LGhtZSl9dmFyIFVfZT1mcHQoZnVuY3Rpb24obSx2LFQpe3YhPW51bGwmJnR5cGVvZiB2LnRvU3RyaW5nIT0iZnVuY3Rpb24iJiYodj1qNi5jYWxsKHYpKSxtW3ZdPVR9LG9HKF9zKSkscV9lPWZwdChmdW5jdGlvbihtLHYsVCl7diE9bnVsbCYmdHlwZW9mIHYudG9TdHJpbmchPSJmdW5jdGlvbiImJih2PWo2LmNhbGwodikpLHVuLmNhbGwobSx2KT9tW3ZdLnB1c2goVCk6bVt2XT1bVF19LGtlKSxHX2U9bnIoa00pO2Z1bmN0aW9uIHBvKG0pe3JldHVybiBtcyhtKT9JZnQobSk6QXEobSl9ZnVuY3Rpb24gZ3MobSl7cmV0dXJuIG1zKG0pP0lmdChtLCEwKTpibWUobSl9ZnVuY3Rpb24gV19lKG0sdil7dmFyIFQ9e307cmV0dXJuIHY9a2UodiwzKSxtaChtLGZ1bmN0aW9uKE4sVixZKXtzcChULHYoTixWLFkpLE4pfSksVH1mdW5jdGlvbiBZX2UobSx2KXt2YXIgVD17fTtyZXR1cm4gdj1rZSh2LDMpLG1oKG0sZnVuY3Rpb24oTixWLFkpe3NwKFQsVix2KE4sVixZKSl9KSxUfXZhciBqX2U9eHgoZnVuY3Rpb24obSx2LFQpe3NJKG0sdixUKX0pLGVkdD14eChmdW5jdGlvbihtLHYsVCxOKXtzSShtLHYsVCxOKX0pLFhfZT1jcChmdW5jdGlvbihtLHYpe3ZhciBUPXt9O2lmKG09PW51bGwpcmV0dXJuIFQ7dmFyIE49ITE7dj1Lbih2LGZ1bmN0aW9uKFkpe3JldHVybiBZPXhtKFksbSksTnx8KE49WS5sZW5ndGg+MSksWX0pLGdoKG0sVXEobSksVCksTiYmKFQ9amwoVCxjfHV8aCxVbWUpKTtmb3IodmFyIFY9di5sZW5ndGg7Vi0tOylOcShULHZbVl0pO3JldHVybiBUfSk7ZnVuY3Rpb24gJF9lKG0sdil7cmV0dXJuIHJkdChtLHdJKGtlKHYpKSl9dmFyIEtfZT1jcChmdW5jdGlvbihtLHYpe3JldHVybiBtPT1udWxsP3t9OlNtZShtLHYpfSk7ZnVuY3Rpb24gcmR0KG0sdil7aWYobT09bnVsbClyZXR1cm57fTt2YXIgVD1LbihVcShtKSxmdW5jdGlvbihOKXtyZXR1cm5bTl19KTtyZXR1cm4gdj1rZSh2KSxqZnQobSxULGZ1bmN0aW9uKE4sVil7cmV0dXJuIHYoTixWWzBdKX0pfWZ1bmN0aW9uIFpfZShtLHYsVCl7dj14bSh2LG0pO3ZhciBOPS0xLFY9di5sZW5ndGg7Zm9yKFZ8fChWPTEsbT1lKTsrK048Vjspe3ZhciBZPW09PW51bGw/ZTptW19oKHZbTl0pXTtZPT09ZSYmKE49VixZPVQpLG09aHAoWSk/WS5jYWxsKG0pOll9cmV0dXJuIG19ZnVuY3Rpb24gSl9lKG0sdixUKXtyZXR1cm4gbT09bnVsbD9tOk5NKG0sdixUKX1mdW5jdGlvbiBRX2UobSx2LFQsTil7cmV0dXJuIE49dHlwZW9mIE49PSJmdW5jdGlvbiI/TjplLG09PW51bGw/bTpOTShtLHYsVCxOKX12YXIgbmR0PW1wdChwbyksaWR0PW1wdChncyk7ZnVuY3Rpb24gdHllKG0sdixUKXt2YXIgTj0kZShtKSxWPU58fHdtKG0pfHxTeChtKTtpZih2PWtlKHYsNCksVD09bnVsbCl7dmFyIFk9bSYmbS5jb25zdHJ1Y3RvcjtWP1Q9Tj9uZXcgWTpbXTplaShtKT9UPWhwKFkpP3Z4KEs2KG0pKTp7fTpUPXt9fXJldHVybihWP0dsOm1oKShtLGZ1bmN0aW9uKEosaXQsZnQpe3JldHVybiB2KFQsSixpdCxmdCl9KSxUfWZ1bmN0aW9uIGV5ZShtLHYpe3JldHVybiBtPT1udWxsPyEwOk5xKG0sdil9ZnVuY3Rpb24gcnllKG0sdixUKXtyZXR1cm4gbT09bnVsbD9tOkpmdChtLHYsenEoVCkpfWZ1bmN0aW9uIG55ZShtLHYsVCxOKXtyZXR1cm4gTj10eXBlb2YgTj09ImZ1bmN0aW9uIj9OOmUsbT09bnVsbD9tOkpmdChtLHYsenEoVCksTil9ZnVuY3Rpb24gTXgobSl7cmV0dXJuIG09PW51bGw/W106bXEobSxwbyhtKSl9ZnVuY3Rpb24gaXllKG0pe3JldHVybiBtPT1udWxsP1tdOm1xKG0sZ3MobSkpfWZ1bmN0aW9uIG95ZShtLHYsVCl7cmV0dXJuIFQ9PT1lJiYoVD12LHY9ZSksVCE9PWUmJihUPUtsKFQpLFQ9VD09PVQ/VDowKSx2IT09ZSYmKHY9S2wodiksdj12PT09dj92OjApLGlfKEtsKG0pLHYsVCl9ZnVuY3Rpb24gYXllKG0sdixUKXtyZXR1cm4gdj1mcCh2KSxUPT09ZT8oVD12LHY9MCk6VD1mcChUKSxtPUtsKG0pLGZtZShtLHYsVCl9ZnVuY3Rpb24gc3llKG0sdixUKXtpZihUJiZ0eXBlb2YgVCE9ImJvb2xlYW4iJiZSYShtLHYsVCkmJih2PVQ9ZSksVD09PWUmJih0eXBlb2Ygdj09ImJvb2xlYW4iPyhUPXYsdj1lKTp0eXBlb2YgbT09ImJvb2xlYW4iJiYoVD1tLG09ZSkpLG09PT1lJiZ2PT09ZT8obT0wLHY9MSk6KG09ZnAobSksdj09PWU/KHY9bSxtPTApOnY9ZnAodikpLG0+dil7dmFyIE49bTttPXYsdj1OfWlmKFR8fG0lMXx8diUxKXt2YXIgVj1BZnQoKTtyZXR1cm4gcmEobStWKih2LW0rQnBlKCIxZS0iKygoVisiIikubGVuZ3RoLTEpKSksdil9cmV0dXJuIExxKG0sdil9dmFyIGx5ZT1ieChmdW5jdGlvbihtLHYsVCl7cmV0dXJuIHY9di50b0xvd2VyQ2FzZSgpLG0rKFQ/b2R0KHYpOnYpfSk7ZnVuY3Rpb24gb2R0KG0pe3JldHVybiBpRyhvbihtKS50b0xvd2VyQ2FzZSgpKX1mdW5jdGlvbiBhZHQobSl7cmV0dXJuIG09b24obSksbSYmbS5yZXBsYWNlKGhtLEpwZSkucmVwbGFjZShQcGUsIiIpfWZ1bmN0aW9uIGN5ZShtLHYsVCl7bT1vbihtKSx2PWpzKHYpO3ZhciBOPW0ubGVuZ3RoO1Q9VD09PWU/TjppXyhRZShUKSwwLE4pO3ZhciBWPVQ7cmV0dXJuIFQtPXYubGVuZ3RoLFQ+PTAmJm0uc2xpY2UoVCxWKT09dn1mdW5jdGlvbiB1eWUobSl7cmV0dXJuIG09b24obSksbSYmQXIudGVzdChtKT9tLnJlcGxhY2UoeW4sUXBlKTptfWZ1bmN0aW9uIGh5ZShtKXtyZXR1cm4gbT1vbihtKSxtJiZ1eC50ZXN0KG0pP20ucmVwbGFjZShjbiwiXFwkJiIpOm19dmFyIGZ5ZT1ieChmdW5jdGlvbihtLHYsVCl7cmV0dXJuIG0rKFQ/Ii0iOiIiKSt2LnRvTG93ZXJDYXNlKCl9KSxweWU9YngoZnVuY3Rpb24obSx2LFQpe3JldHVybiBtKyhUPyIgIjoiIikrdi50b0xvd2VyQ2FzZSgpfSksZHllPWNwdCgidG9Mb3dlckNhc2UiKTtmdW5jdGlvbiBteWUobSx2LFQpe209b24obSksdj1RZSh2KTt2YXIgTj12P214KG0pOjA7aWYoIXZ8fE4+PXYpcmV0dXJuIG07dmFyIFY9KHYtTikvMjtyZXR1cm4gcEkodEkoViksVCkrbStwSShRNihWKSxUKX1mdW5jdGlvbiBneWUobSx2LFQpe209b24obSksdj1RZSh2KTt2YXIgTj12P214KG0pOjA7cmV0dXJuIHYmJk48dj9tK3BJKHYtTixUKTptfWZ1bmN0aW9uIF95ZShtLHYsVCl7bT1vbihtKSx2PVFlKHYpO3ZhciBOPXY/bXgobSk6MDtyZXR1cm4gdiYmTjx2P3BJKHYtTixUKSttOm19ZnVuY3Rpb24geXllKG0sdixUKXtyZXR1cm4gVHx8dj09bnVsbD92PTA6diYmKHY9K3YpLEVkZShvbihtKS5yZXBsYWNlKG5wLCIiKSx2fHwwKX1mdW5jdGlvbiB2eWUobSx2LFQpe3JldHVybihUP1JhKG0sdixUKTp2PT09ZSk/dj0xOnY9UWUodiksa3Eob24obSksdil9ZnVuY3Rpb24geHllKCl7dmFyIG09YXJndW1lbnRzLHY9b24obVswXSk7cmV0dXJuIG0ubGVuZ3RoPDM/djp2LnJlcGxhY2UobVsxXSxtWzJdKX12YXIgYnllPWJ4KGZ1bmN0aW9uKG0sdixUKXtyZXR1cm4gbSsoVD8iXyI6IiIpK3YudG9Mb3dlckNhc2UoKX0pO2Z1bmN0aW9uIHd5ZShtLHYsVCl7cmV0dXJuIFQmJnR5cGVvZiBUIT0ibnVtYmVyIiYmUmEobSx2LFQpJiYodj1UPWUpLFQ9VD09PWU/cnQ6VD4+PjAsVD8obT1vbihtKSxtJiYodHlwZW9mIHY9PSJzdHJpbmcifHx2IT1udWxsJiYhZUcodikpJiYodj1qcyh2KSwhdiYmZHgobSkpP2JtKHR1KG0pLDAsVCk6bS5zcGxpdCh2LFQpKTpbXX12YXIgU3llPWJ4KGZ1bmN0aW9uKG0sdixUKXtyZXR1cm4gbSsoVD8iICI6IiIpK2lHKHYpfSk7ZnVuY3Rpb24gTXllKG0sdixUKXtyZXR1cm4gbT1vbihtKSxUPVQ9PW51bGw/MDppXyhRZShUKSwwLG0ubGVuZ3RoKSx2PWpzKHYpLG0uc2xpY2UoVCxUK3YubGVuZ3RoKT09dn1mdW5jdGlvbiBFeWUobSx2LFQpe3ZhciBOPUcudGVtcGxhdGVTZXR0aW5ncztUJiZSYShtLHYsVCkmJih2PWUpLG09b24obSksdj1FSSh7fSx2LE4sZ3B0KTt2YXIgVj1FSSh7fSx2LmltcG9ydHMsTi5pbXBvcnRzLGdwdCksWT1wbyhWKSxKPW1xKFYsWSksaXQsZnQsRHQ9MCxPdD12LmludGVycG9sYXRlfHxtcixWdD0iX19wICs9ICciLG9lPV9xKCh2LmVzY2FwZXx8bXIpLnNvdXJjZSsifCIrT3Quc291cmNlKyJ8IisoT3Q9PT1MYT90cjptcikuc291cmNlKyJ8Iisodi5ldmFsdWF0ZXx8bXIpLnNvdXJjZSsifCQiLCJnIiksVGU9Ii8vIyBzb3VyY2VVUkw9IisodW4uY2FsbCh2LCJzb3VyY2VVUkwiKT8odi5zb3VyY2VVUkwrIiIpLnJlcGxhY2UoL1xzL2csIiAiKToibG9kYXNoLnRlbXBsYXRlU291cmNlc1siKyArK05wZSsiXSIpK2AKYDttLnJlcGxhY2Uob2UsZnVuY3Rpb24oRGUscHIseXIsJHMsTmEsS3Mpe3JldHVybiB5cnx8KHlyPSRzKSxWdCs9bS5zbGljZShEdCxLcykucmVwbGFjZShCbCx0ZGUpLHByJiYoaXQ9ITAsVnQrPWAnICsKX19lKGArcHIrYCkgKwonYCksTmEmJihmdD0hMCxWdCs9YCc7CmArTmErYDsKX19wICs9ICdgKSx5ciYmKFZ0Kz1gJyArCigoX190ID0gKGAreXIrYCkpID09IG51bGwgPyAnJyA6IF9fdCkgKwonYCksRHQ9S3MrRGUubGVuZ3RoLERlfSksVnQrPWAnOwpgO3ZhciBOZT11bi5jYWxsKHYsInZhcmlhYmxlIikmJnYudmFyaWFibGU7aWYoIU5lKVZ0PWB3aXRoIChvYmopIHsKYCtWdCtgCn0KYDtlbHNlIGlmKFZlLnRlc3QoTmUpKXRocm93IG5ldyBXZShvKTtWdD0oZnQ/VnQucmVwbGFjZShDZSwiIik6VnQpLnJlcGxhY2UoUHQsIiQxIikucmVwbGFjZShOdCwiJDE7IiksVnQ9ImZ1bmN0aW9uKCIrKE5lfHwib2JqIikrYCkgewpgKyhOZT8iIjpgb2JqIHx8IChvYmogPSB7fSk7CmApKyJ2YXIgX190LCBfX3AgPSAnJyIrKGl0PyIsIF9fZSA9IF8uZXNjYXBlIjoiIikrKGZ0P2AsIF9faiA9IEFycmF5LnByb3RvdHlwZS5qb2luOwpmdW5jdGlvbiBwcmludCgpIHsgX19wICs9IF9fai5jYWxsKGFyZ3VtZW50cywgJycpIH0KYDpgOwpgKStWdCtgcmV0dXJuIF9fcAp9YDt2YXIgZXI9bGR0KGZ1bmN0aW9uKCl7cmV0dXJuICRyKFksVGUrInJldHVybiAiK1Z0KS5hcHBseShlLEopfSk7aWYoZXIuc291cmNlPVZ0LHRHKGVyKSl0aHJvdyBlcjtyZXR1cm4gZXJ9ZnVuY3Rpb24gVHllKG0pe3JldHVybiBvbihtKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIEN5ZShtKXtyZXR1cm4gb24obSkudG9VcHBlckNhc2UoKX1mdW5jdGlvbiBBeWUobSx2LFQpe2lmKG09b24obSksbSYmKFR8fHY9PT1lKSlyZXR1cm4gX2Z0KG0pO2lmKCFtfHwhKHY9anModikpKXJldHVybiBtO3ZhciBOPXR1KG0pLFY9dHUodiksWT15ZnQoTixWKSxKPXZmdChOLFYpKzE7cmV0dXJuIGJtKE4sWSxKKS5qb2luKCIiKX1mdW5jdGlvbiBQeWUobSx2LFQpe2lmKG09b24obSksbSYmKFR8fHY9PT1lKSlyZXR1cm4gbS5zbGljZSgwLGJmdChtKSsxKTtpZighbXx8ISh2PWpzKHYpKSlyZXR1cm4gbTt2YXIgTj10dShtKSxWPXZmdChOLHR1KHYpKSsxO3JldHVybiBibShOLDAsVikuam9pbigiIil9ZnVuY3Rpb24gSXllKG0sdixUKXtpZihtPW9uKG0pLG0mJihUfHx2PT09ZSkpcmV0dXJuIG0ucmVwbGFjZShucCwiIik7aWYoIW18fCEodj1qcyh2KSkpcmV0dXJuIG07dmFyIE49dHUobSksVj15ZnQoTix0dSh2KSk7cmV0dXJuIGJtKE4sVikuam9pbigiIil9ZnVuY3Rpb24gTHllKG0sdil7dmFyIFQ9TyxOPUQ7aWYoZWkodikpe3ZhciBWPSJzZXBhcmF0b3IiaW4gdj92LnNlcGFyYXRvcjpWO1Q9Imxlbmd0aCJpbiB2P1FlKHYubGVuZ3RoKTpULE49Im9taXNzaW9uImluIHY/anModi5vbWlzc2lvbik6Tn1tPW9uKG0pO3ZhciBZPW0ubGVuZ3RoO2lmKGR4KG0pKXt2YXIgSj10dShtKTtZPUoubGVuZ3RofWlmKFQ+PVkpcmV0dXJuIG07dmFyIGl0PVQtbXgoTik7aWYoaXQ8MSlyZXR1cm4gTjt2YXIgZnQ9Sj9ibShKLDAsaXQpLmpvaW4oIiIpOm0uc2xpY2UoMCxpdCk7aWYoVj09PWUpcmV0dXJuIGZ0K047aWYoSiYmKGl0Kz1mdC5sZW5ndGgtaXQpLGVHKFYpKXtpZihtLnNsaWNlKGl0KS5zZWFyY2goVikpe3ZhciBEdCxPdD1mdDtmb3IoVi5nbG9iYWx8fChWPV9xKFYuc291cmNlLG9uKEtlLmV4ZWMoVikpKyJnIikpLFYubGFzdEluZGV4PTA7RHQ9Vi5leGVjKE90KTspdmFyIFZ0PUR0LmluZGV4O2Z0PWZ0LnNsaWNlKDAsVnQ9PT1lP2l0OlZ0KX19ZWxzZSBpZihtLmluZGV4T2YoanMoViksaXQpIT1pdCl7dmFyIG9lPWZ0Lmxhc3RJbmRleE9mKFYpO29lPi0xJiYoZnQ9ZnQuc2xpY2UoMCxvZSkpfXJldHVybiBmdCtOfWZ1bmN0aW9uIGt5ZShtKXtyZXR1cm4gbT1vbihtKSxtJiZXaS50ZXN0KG0pP20ucmVwbGFjZSh6ZSxzZGUpOm19dmFyIFJ5ZT1ieChmdW5jdGlvbihtLHYsVCl7cmV0dXJuIG0rKFQ/IiAiOiIiKSt2LnRvVXBwZXJDYXNlKCl9KSxpRz1jcHQoInRvVXBwZXJDYXNlIik7ZnVuY3Rpb24gc2R0KG0sdixUKXtyZXR1cm4gbT1vbihtKSx2PVQ/ZTp2LHY9PT1lP3JkZShtKT91ZGUobSk6anBlKG0pOm0ubWF0Y2godil8fFtdfXZhciBsZHQ9bnIoZnVuY3Rpb24obSx2KXt0cnl7cmV0dXJuIFdzKG0sZSx2KX1jYXRjaChUKXtyZXR1cm4gdEcoVCk/VDpuZXcgV2UoVCl9fSksTnllPWNwKGZ1bmN0aW9uKG0sdil7cmV0dXJuIEdsKHYsZnVuY3Rpb24oVCl7VD1faChUKSxzcChtLFQsSnEobVtUXSxtKSl9KSxtfSk7ZnVuY3Rpb24gRHllKG0pe3ZhciB2PW09PW51bGw/MDptLmxlbmd0aCxUPWtlKCk7cmV0dXJuIG09dj9LbihtLGZ1bmN0aW9uKE4pe2lmKHR5cGVvZiBOWzFdIT0iZnVuY3Rpb24iKXRocm93IG5ldyBXbChpKTtyZXR1cm5bVChOWzBdKSxOWzFdXX0pOltdLG5yKGZ1bmN0aW9uKE4pe2Zvcih2YXIgVj0tMTsrK1Y8djspe3ZhciBZPW1bVl07aWYoV3MoWVswXSx0aGlzLE4pKXJldHVybiBXcyhZWzFdLHRoaXMsTil9fSl9ZnVuY3Rpb24gT3llKG0pe3JldHVybiBzbWUoamwobSxjKSl9ZnVuY3Rpb24gb0cobSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG19fWZ1bmN0aW9uIHp5ZShtLHYpe3JldHVybiBtPT1udWxsfHxtIT09bT92Om19dmFyIEZ5ZT1ocHQoKSxCeWU9aHB0KCEwKTtmdW5jdGlvbiBfcyhtKXtyZXR1cm4gbX1mdW5jdGlvbiBhRyhtKXtyZXR1cm4gVmZ0KHR5cGVvZiBtPT0iZnVuY3Rpb24iP206amwobSxjKSl9ZnVuY3Rpb24gSHllKG0pe3JldHVybiBxZnQoamwobSxjKSl9ZnVuY3Rpb24gVnllKG0sdil7cmV0dXJuIEdmdChtLGpsKHYsYykpfXZhciBVeWU9bnIoZnVuY3Rpb24obSx2KXtyZXR1cm4gZnVuY3Rpb24oVCl7cmV0dXJuIGtNKFQsbSx2KX19KSxxeWU9bnIoZnVuY3Rpb24obSx2KXtyZXR1cm4gZnVuY3Rpb24oVCl7cmV0dXJuIGtNKG0sVCx2KX19KTtmdW5jdGlvbiBzRyhtLHYsVCl7dmFyIE49cG8odiksVj1hSSh2LE4pO1Q9PW51bGwmJiEoZWkodikmJihWLmxlbmd0aHx8IU4ubGVuZ3RoKSkmJihUPXYsdj1tLG09dGhpcyxWPWFJKHYscG8odikpKTt2YXIgWT0hKGVpKFQpJiYiY2hhaW4iaW4gVCl8fCEhVC5jaGFpbixKPWhwKG0pO3JldHVybiBHbChWLGZ1bmN0aW9uKGl0KXt2YXIgZnQ9dltpdF07bVtpdF09ZnQsSiYmKG0ucHJvdG90eXBlW2l0XT1mdW5jdGlvbigpe3ZhciBEdD10aGlzLl9fY2hhaW5fXztpZihZfHxEdCl7dmFyIE90PW0odGhpcy5fX3dyYXBwZWRfXyksVnQ9T3QuX19hY3Rpb25zX189ZHModGhpcy5fX2FjdGlvbnNfXyk7cmV0dXJuIFZ0LnB1c2goe2Z1bmM6ZnQsYXJnczphcmd1bWVudHMsdGhpc0FyZzptfSksT3QuX19jaGFpbl9fPUR0LE90fXJldHVybiBmdC5hcHBseShtLGRtKFt0aGlzLnZhbHVlKCldLGFyZ3VtZW50cykpfSl9KSxtfWZ1bmN0aW9uIEd5ZSgpe3JldHVybiBmby5fPT09dGhpcyYmKGZvLl89Z2RlKSx0aGlzfWZ1bmN0aW9uIGxHKCl7fWZ1bmN0aW9uIFd5ZShtKXtyZXR1cm4gbT1RZShtKSxucihmdW5jdGlvbih2KXtyZXR1cm4gV2Z0KHYsbSl9KX12YXIgWXllPUJxKEtuKSxqeWU9QnEoZmZ0KSxYeWU9QnEodXEpO2Z1bmN0aW9uIGNkdChtKXtyZXR1cm4gWXEobSk/aHEoX2gobSkpOk1tZShtKX1mdW5jdGlvbiAkeWUobSl7cmV0dXJuIGZ1bmN0aW9uKHYpe3JldHVybiBtPT1udWxsP2U6b18obSx2KX19dmFyIEt5ZT1wcHQoKSxaeWU9cHB0KCEwKTtmdW5jdGlvbiBjRygpe3JldHVybltdfWZ1bmN0aW9uIHVHKCl7cmV0dXJuITF9ZnVuY3Rpb24gSnllKCl7cmV0dXJue319ZnVuY3Rpb24gUXllKCl7cmV0dXJuIiJ9ZnVuY3Rpb24gdHZlKCl7cmV0dXJuITB9ZnVuY3Rpb24gZXZlKG0sdil7aWYobT1RZShtKSxtPDF8fG0+VSlyZXR1cm5bXTt2YXIgVD1ydCxOPXJhKG0scnQpO3Y9a2UodiksbS09cnQ7Zm9yKHZhciBWPWRxKE4sdik7KytUPG07KXYoVCk7cmV0dXJuIFZ9ZnVuY3Rpb24gcnZlKG0pe3JldHVybiAkZShtKT9LbihtLF9oKTpYcyhtKT9bbV06ZHMoUHB0KG9uKG0pKSl9ZnVuY3Rpb24gbnZlKG0pe3ZhciB2PSsrZGRlO3JldHVybiBvbihtKSt2fXZhciBpdmU9ZkkoZnVuY3Rpb24obSx2KXtyZXR1cm4gbSt2fSwwKSxvdmU9SHEoImNlaWwiKSxhdmU9ZkkoZnVuY3Rpb24obSx2KXtyZXR1cm4gbS92fSwxKSxzdmU9SHEoImZsb29yIik7ZnVuY3Rpb24gbHZlKG0pe3JldHVybiBtJiZtLmxlbmd0aD9vSShtLF9zLEVxKTplfWZ1bmN0aW9uIGN2ZShtLHYpe3JldHVybiBtJiZtLmxlbmd0aD9vSShtLGtlKHYsMiksRXEpOmV9ZnVuY3Rpb24gdXZlKG0pe3JldHVybiBtZnQobSxfcyl9ZnVuY3Rpb24gaHZlKG0sdil7cmV0dXJuIG1mdChtLGtlKHYsMikpfWZ1bmN0aW9uIGZ2ZShtKXtyZXR1cm4gbSYmbS5sZW5ndGg/b0kobSxfcyxQcSk6ZX1mdW5jdGlvbiBwdmUobSx2KXtyZXR1cm4gbSYmbS5sZW5ndGg/b0kobSxrZSh2LDIpLFBxKTplfXZhciBkdmU9ZkkoZnVuY3Rpb24obSx2KXtyZXR1cm4gbSp2fSwxKSxtdmU9SHEoInJvdW5kIiksZ3ZlPWZJKGZ1bmN0aW9uKG0sdil7cmV0dXJuIG0tdn0sMCk7ZnVuY3Rpb24gX3ZlKG0pe3JldHVybiBtJiZtLmxlbmd0aD9wcShtLF9zKTowfWZ1bmN0aW9uIHl2ZShtLHYpe3JldHVybiBtJiZtLmxlbmd0aD9wcShtLGtlKHYsMikpOjB9cmV0dXJuIEcuYWZ0ZXI9SDBlLEcuYXJ5PUhwdCxHLmFzc2lnbj1DX2UsRy5hc3NpZ25Jbj10ZHQsRy5hc3NpZ25JbldpdGg9RUksRy5hc3NpZ25XaXRoPUFfZSxHLmF0PVBfZSxHLmJlZm9yZT1WcHQsRy5iaW5kPUpxLEcuYmluZEFsbD1OeWUsRy5iaW5kS2V5PVVwdCxHLmNhc3RBcnJheT1KMGUsRy5jaGFpbj16cHQsRy5jaHVuaz1zZ2UsRy5jb21wYWN0PWxnZSxHLmNvbmNhdD1jZ2UsRy5jb25kPUR5ZSxHLmNvbmZvcm1zPU95ZSxHLmNvbnN0YW50PW9HLEcuY291bnRCeT1fMGUsRy5jcmVhdGU9SV9lLEcuY3Vycnk9cXB0LEcuY3VycnlSaWdodD1HcHQsRy5kZWJvdW5jZT1XcHQsRy5kZWZhdWx0cz1MX2UsRy5kZWZhdWx0c0RlZXA9a19lLEcuZGVmZXI9VjBlLEcuZGVsYXk9VTBlLEcuZGlmZmVyZW5jZT11Z2UsRy5kaWZmZXJlbmNlQnk9aGdlLEcuZGlmZmVyZW5jZVdpdGg9ZmdlLEcuZHJvcD1wZ2UsRy5kcm9wUmlnaHQ9ZGdlLEcuZHJvcFJpZ2h0V2hpbGU9bWdlLEcuZHJvcFdoaWxlPWdnZSxHLmZpbGw9X2dlLEcuZmlsdGVyPXYwZSxHLmZsYXRNYXA9dzBlLEcuZmxhdE1hcERlZXA9UzBlLEcuZmxhdE1hcERlcHRoPU0wZSxHLmZsYXR0ZW49UnB0LEcuZmxhdHRlbkRlZXA9eWdlLEcuZmxhdHRlbkRlcHRoPXZnZSxHLmZsaXA9cTBlLEcuZmxvdz1GeWUsRy5mbG93UmlnaHQ9QnllLEcuZnJvbVBhaXJzPXhnZSxHLmZ1bmN0aW9ucz1CX2UsRy5mdW5jdGlvbnNJbj1IX2UsRy5ncm91cEJ5PUUwZSxHLmluaXRpYWw9d2dlLEcuaW50ZXJzZWN0aW9uPVNnZSxHLmludGVyc2VjdGlvbkJ5PU1nZSxHLmludGVyc2VjdGlvbldpdGg9RWdlLEcuaW52ZXJ0PVVfZSxHLmludmVydEJ5PXFfZSxHLmludm9rZU1hcD1DMGUsRy5pdGVyYXRlZT1hRyxHLmtleUJ5PUEwZSxHLmtleXM9cG8sRy5rZXlzSW49Z3MsRy5tYXA9dkksRy5tYXBLZXlzPVdfZSxHLm1hcFZhbHVlcz1ZX2UsRy5tYXRjaGVzPUh5ZSxHLm1hdGNoZXNQcm9wZXJ0eT1WeWUsRy5tZW1vaXplPWJJLEcubWVyZ2U9al9lLEcubWVyZ2VXaXRoPWVkdCxHLm1ldGhvZD1VeWUsRy5tZXRob2RPZj1xeWUsRy5taXhpbj1zRyxHLm5lZ2F0ZT13SSxHLm50aEFyZz1XeWUsRy5vbWl0PVhfZSxHLm9taXRCeT0kX2UsRy5vbmNlPUcwZSxHLm9yZGVyQnk9UDBlLEcub3Zlcj1ZeWUsRy5vdmVyQXJncz1XMGUsRy5vdmVyRXZlcnk9anllLEcub3ZlclNvbWU9WHllLEcucGFydGlhbD1RcSxHLnBhcnRpYWxSaWdodD1ZcHQsRy5wYXJ0aXRpb249STBlLEcucGljaz1LX2UsRy5waWNrQnk9cmR0LEcucHJvcGVydHk9Y2R0LEcucHJvcGVydHlPZj0keWUsRy5wdWxsPVBnZSxHLnB1bGxBbGw9RHB0LEcucHVsbEFsbEJ5PUlnZSxHLnB1bGxBbGxXaXRoPUxnZSxHLnB1bGxBdD1rZ2UsRy5yYW5nZT1LeWUsRy5yYW5nZVJpZ2h0PVp5ZSxHLnJlYXJnPVkwZSxHLnJlamVjdD1SMGUsRy5yZW1vdmU9UmdlLEcucmVzdD1qMGUsRy5yZXZlcnNlPUtxLEcuc2FtcGxlU2l6ZT1EMGUsRy5zZXQ9Sl9lLEcuc2V0V2l0aD1RX2UsRy5zaHVmZmxlPU8wZSxHLnNsaWNlPU5nZSxHLnNvcnRCeT1CMGUsRy5zb3J0ZWRVbmlxPVZnZSxHLnNvcnRlZFVuaXFCeT1VZ2UsRy5zcGxpdD13eWUsRy5zcHJlYWQ9WDBlLEcudGFpbD1xZ2UsRy50YWtlPUdnZSxHLnRha2VSaWdodD1XZ2UsRy50YWtlUmlnaHRXaGlsZT1ZZ2UsRy50YWtlV2hpbGU9amdlLEcudGFwPWwwZSxHLnRocm90dGxlPSQwZSxHLnRocnU9eUksRy50b0FycmF5PVpwdCxHLnRvUGFpcnM9bmR0LEcudG9QYWlyc0luPWlkdCxHLnRvUGF0aD1ydmUsRy50b1BsYWluT2JqZWN0PVFwdCxHLnRyYW5zZm9ybT10eWUsRy51bmFyeT1LMGUsRy51bmlvbj1YZ2UsRy51bmlvbkJ5PSRnZSxHLnVuaW9uV2l0aD1LZ2UsRy51bmlxPVpnZSxHLnVuaXFCeT1KZ2UsRy51bmlxV2l0aD1RZ2UsRy51bnNldD1leWUsRy51bnppcD1acSxHLnVuemlwV2l0aD1PcHQsRy51cGRhdGU9cnllLEcudXBkYXRlV2l0aD1ueWUsRy52YWx1ZXM9TXgsRy52YWx1ZXNJbj1peWUsRy53aXRob3V0PXQwZSxHLndvcmRzPXNkdCxHLndyYXA9WjBlLEcueG9yPWUwZSxHLnhvckJ5PXIwZSxHLnhvcldpdGg9bjBlLEcuemlwPWkwZSxHLnppcE9iamVjdD1vMGUsRy56aXBPYmplY3REZWVwPWEwZSxHLnppcFdpdGg9czBlLEcuZW50cmllcz1uZHQsRy5lbnRyaWVzSW49aWR0LEcuZXh0ZW5kPXRkdCxHLmV4dGVuZFdpdGg9RUksc0coRyxHKSxHLmFkZD1pdmUsRy5hdHRlbXB0PWxkdCxHLmNhbWVsQ2FzZT1seWUsRy5jYXBpdGFsaXplPW9kdCxHLmNlaWw9b3ZlLEcuY2xhbXA9b3llLEcuY2xvbmU9UTBlLEcuY2xvbmVEZWVwPWVfZSxHLmNsb25lRGVlcFdpdGg9cl9lLEcuY2xvbmVXaXRoPXRfZSxHLmNvbmZvcm1zVG89bl9lLEcuZGVidXJyPWFkdCxHLmRlZmF1bHRUbz16eWUsRy5kaXZpZGU9YXZlLEcuZW5kc1dpdGg9Y3llLEcuZXE9cnUsRy5lc2NhcGU9dXllLEcuZXNjYXBlUmVnRXhwPWh5ZSxHLmV2ZXJ5PXkwZSxHLmZpbmQ9eDBlLEcuZmluZEluZGV4PUxwdCxHLmZpbmRLZXk9Ul9lLEcuZmluZExhc3Q9YjBlLEcuZmluZExhc3RJbmRleD1rcHQsRy5maW5kTGFzdEtleT1OX2UsRy5mbG9vcj1zdmUsRy5mb3JFYWNoPUZwdCxHLmZvckVhY2hSaWdodD1CcHQsRy5mb3JJbj1EX2UsRy5mb3JJblJpZ2h0PU9fZSxHLmZvck93bj16X2UsRy5mb3JPd25SaWdodD1GX2UsRy5nZXQ9ckcsRy5ndD1pX2UsRy5ndGU9b19lLEcuaGFzPVZfZSxHLmhhc0luPW5HLEcuaGVhZD1OcHQsRy5pZGVudGl0eT1fcyxHLmluY2x1ZGVzPVQwZSxHLmluZGV4T2Y9YmdlLEcuaW5SYW5nZT1heWUsRy5pbnZva2U9R19lLEcuaXNBcmd1bWVudHM9bF8sRy5pc0FycmF5PSRlLEcuaXNBcnJheUJ1ZmZlcj1hX2UsRy5pc0FycmF5TGlrZT1tcyxHLmlzQXJyYXlMaWtlT2JqZWN0PXhpLEcuaXNCb29sZWFuPXNfZSxHLmlzQnVmZmVyPXdtLEcuaXNEYXRlPWxfZSxHLmlzRWxlbWVudD1jX2UsRy5pc0VtcHR5PXVfZSxHLmlzRXF1YWw9aF9lLEcuaXNFcXVhbFdpdGg9Zl9lLEcuaXNFcnJvcj10RyxHLmlzRmluaXRlPXBfZSxHLmlzRnVuY3Rpb249aHAsRy5pc0ludGVnZXI9anB0LEcuaXNMZW5ndGg9U0ksRy5pc01hcD1YcHQsRy5pc01hdGNoPWRfZSxHLmlzTWF0Y2hXaXRoPW1fZSxHLmlzTmFOPWdfZSxHLmlzTmF0aXZlPV9fZSxHLmlzTmlsPXZfZSxHLmlzTnVsbD15X2UsRy5pc051bWJlcj0kcHQsRy5pc09iamVjdD1laSxHLmlzT2JqZWN0TGlrZT1zaSxHLmlzUGxhaW5PYmplY3Q9Rk0sRy5pc1JlZ0V4cD1lRyxHLmlzU2FmZUludGVnZXI9eF9lLEcuaXNTZXQ9S3B0LEcuaXNTdHJpbmc9TUksRy5pc1N5bWJvbD1YcyxHLmlzVHlwZWRBcnJheT1TeCxHLmlzVW5kZWZpbmVkPWJfZSxHLmlzV2Vha01hcD13X2UsRy5pc1dlYWtTZXQ9U19lLEcuam9pbj1UZ2UsRy5rZWJhYkNhc2U9ZnllLEcubGFzdD0kbCxHLmxhc3RJbmRleE9mPUNnZSxHLmxvd2VyQ2FzZT1weWUsRy5sb3dlckZpcnN0PWR5ZSxHLmx0PU1fZSxHLmx0ZT1FX2UsRy5tYXg9bHZlLEcubWF4Qnk9Y3ZlLEcubWVhbj11dmUsRy5tZWFuQnk9aHZlLEcubWluPWZ2ZSxHLm1pbkJ5PXB2ZSxHLnN0dWJBcnJheT1jRyxHLnN0dWJGYWxzZT11RyxHLnN0dWJPYmplY3Q9SnllLEcuc3R1YlN0cmluZz1ReWUsRy5zdHViVHJ1ZT10dmUsRy5tdWx0aXBseT1kdmUsRy5udGg9QWdlLEcubm9Db25mbGljdD1HeWUsRy5ub29wPWxHLEcubm93PXhJLEcucGFkPW15ZSxHLnBhZEVuZD1neWUsRy5wYWRTdGFydD1feWUsRy5wYXJzZUludD15eWUsRy5yYW5kb209c3llLEcucmVkdWNlPUwwZSxHLnJlZHVjZVJpZ2h0PWswZSxHLnJlcGVhdD12eWUsRy5yZXBsYWNlPXh5ZSxHLnJlc3VsdD1aX2UsRy5yb3VuZD1tdmUsRy5ydW5JbkNvbnRleHQ9dXQsRy5zYW1wbGU9TjBlLEcuc2l6ZT16MGUsRy5zbmFrZUNhc2U9YnllLEcuc29tZT1GMGUsRy5zb3J0ZWRJbmRleD1EZ2UsRy5zb3J0ZWRJbmRleEJ5PU9nZSxHLnNvcnRlZEluZGV4T2Y9emdlLEcuc29ydGVkTGFzdEluZGV4PUZnZSxHLnNvcnRlZExhc3RJbmRleEJ5PUJnZSxHLnNvcnRlZExhc3RJbmRleE9mPUhnZSxHLnN0YXJ0Q2FzZT1TeWUsRy5zdGFydHNXaXRoPU15ZSxHLnN1YnRyYWN0PWd2ZSxHLnN1bT1fdmUsRy5zdW1CeT15dmUsRy50ZW1wbGF0ZT1FeWUsRy50aW1lcz1ldmUsRy50b0Zpbml0ZT1mcCxHLnRvSW50ZWdlcj1RZSxHLnRvTGVuZ3RoPUpwdCxHLnRvTG93ZXI9VHllLEcudG9OdW1iZXI9S2wsRy50b1NhZmVJbnRlZ2VyPVRfZSxHLnRvU3RyaW5nPW9uLEcudG9VcHBlcj1DeWUsRy50cmltPUF5ZSxHLnRyaW1FbmQ9UHllLEcudHJpbVN0YXJ0PUl5ZSxHLnRydW5jYXRlPUx5ZSxHLnVuZXNjYXBlPWt5ZSxHLnVuaXF1ZUlkPW52ZSxHLnVwcGVyQ2FzZT1SeWUsRy51cHBlckZpcnN0PWlHLEcuZWFjaD1GcHQsRy5lYWNoUmlnaHQ9QnB0LEcuZmlyc3Q9TnB0LHNHKEcsZnVuY3Rpb24oKXt2YXIgbT17fTtyZXR1cm4gbWgoRyxmdW5jdGlvbih2LFQpe3VuLmNhbGwoRy5wcm90b3R5cGUsVCl8fChtW1RdPXYpfSksbX0oKSx7Y2hhaW46ITF9KSxHLlZFUlNJT049dCxHbChbImJpbmQiLCJiaW5kS2V5IiwiY3VycnkiLCJjdXJyeVJpZ2h0IiwicGFydGlhbCIsInBhcnRpYWxSaWdodCJdLGZ1bmN0aW9uKG0pe0dbbV0ucGxhY2Vob2xkZXI9R30pLEdsKFsiZHJvcCIsInRha2UiXSxmdW5jdGlvbihtLHYpe2dyLnByb3RvdHlwZVttXT1mdW5jdGlvbihUKXtUPVQ9PT1lPzE6WGkoUWUoVCksMCk7dmFyIE49dGhpcy5fX2ZpbHRlcmVkX18mJiF2P25ldyBncih0aGlzKTp0aGlzLmNsb25lKCk7cmV0dXJuIE4uX19maWx0ZXJlZF9fP04uX190YWtlQ291bnRfXz1yYShULE4uX190YWtlQ291bnRfXyk6Ti5fX3ZpZXdzX18ucHVzaCh7c2l6ZTpyYShULHJ0KSx0eXBlOm0rKE4uX19kaXJfXzwwPyJSaWdodCI6IiIpfSksTn0sZ3IucHJvdG90eXBlW20rIlJpZ2h0Il09ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMucmV2ZXJzZSgpW21dKFQpLnJldmVyc2UoKX19KSxHbChbImZpbHRlciIsIm1hcCIsInRha2VXaGlsZSJdLGZ1bmN0aW9uKG0sdil7dmFyIFQ9disxLE49VD09THx8VD09Rjtnci5wcm90b3R5cGVbbV09ZnVuY3Rpb24oVil7dmFyIFk9dGhpcy5jbG9uZSgpO3JldHVybiBZLl9faXRlcmF0ZWVzX18ucHVzaCh7aXRlcmF0ZWU6a2UoViwzKSx0eXBlOlR9KSxZLl9fZmlsdGVyZWRfXz1ZLl9fZmlsdGVyZWRfX3x8TixZfX0pLEdsKFsiaGVhZCIsImxhc3QiXSxmdW5jdGlvbihtLHYpe3ZhciBUPSJ0YWtlIisodj8iUmlnaHQiOiIiKTtnci5wcm90b3R5cGVbbV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tUXSgxKS52YWx1ZSgpWzBdfX0pLEdsKFsiaW5pdGlhbCIsInRhaWwiXSxmdW5jdGlvbihtLHYpe3ZhciBUPSJkcm9wIisodj8iIjoiUmlnaHQiKTtnci5wcm90b3R5cGVbbV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX2ZpbHRlcmVkX18/bmV3IGdyKHRoaXMpOnRoaXNbVF0oMSl9fSksZ3IucHJvdG90eXBlLmNvbXBhY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWx0ZXIoX3MpfSxnci5wcm90b3R5cGUuZmluZD1mdW5jdGlvbihtKXtyZXR1cm4gdGhpcy5maWx0ZXIobSkuaGVhZCgpfSxnci5wcm90b3R5cGUuZmluZExhc3Q9ZnVuY3Rpb24obSl7cmV0dXJuIHRoaXMucmV2ZXJzZSgpLmZpbmQobSl9LGdyLnByb3RvdHlwZS5pbnZva2VNYXA9bnIoZnVuY3Rpb24obSx2KXtyZXR1cm4gdHlwZW9mIG09PSJmdW5jdGlvbiI/bmV3IGdyKHRoaXMpOnRoaXMubWFwKGZ1bmN0aW9uKFQpe3JldHVybiBrTShULG0sdil9KX0pLGdyLnByb3RvdHlwZS5yZWplY3Q9ZnVuY3Rpb24obSl7cmV0dXJuIHRoaXMuZmlsdGVyKHdJKGtlKG0pKSl9LGdyLnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbihtLHYpe209UWUobSk7dmFyIFQ9dGhpcztyZXR1cm4gVC5fX2ZpbHRlcmVkX18mJihtPjB8fHY8MCk/bmV3IGdyKFQpOihtPDA/VD1ULnRha2VSaWdodCgtbSk6bSYmKFQ9VC5kcm9wKG0pKSx2IT09ZSYmKHY9UWUodiksVD12PDA/VC5kcm9wUmlnaHQoLXYpOlQudGFrZSh2LW0pKSxUKX0sZ3IucHJvdG90eXBlLnRha2VSaWdodFdoaWxlPWZ1bmN0aW9uKG0pe3JldHVybiB0aGlzLnJldmVyc2UoKS50YWtlV2hpbGUobSkucmV2ZXJzZSgpfSxnci5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRha2UocnQpfSxtaChnci5wcm90b3R5cGUsZnVuY3Rpb24obSx2KXt2YXIgVD0vXig/OmZpbHRlcnxmaW5kfG1hcHxyZWplY3QpfFdoaWxlJC8udGVzdCh2KSxOPS9eKD86aGVhZHxsYXN0KSQvLnRlc3QodiksVj1HW04/InRha2UiKyh2PT0ibGFzdCI/IlJpZ2h0IjoiIik6dl0sWT1OfHwvXmZpbmQvLnRlc3Qodik7IVZ8fChHLnByb3RvdHlwZVt2XT1mdW5jdGlvbigpe3ZhciBKPXRoaXMuX193cmFwcGVkX18saXQ9Tj9bMV06YXJndW1lbnRzLGZ0PUogaW5zdGFuY2VvZiBncixEdD1pdFswXSxPdD1mdHx8JGUoSiksVnQ9ZnVuY3Rpb24ocHIpe3ZhciB5cj1WLmFwcGx5KEcsZG0oW3ByXSxpdCkpO3JldHVybiBOJiZvZT95clswXTp5cn07T3QmJlQmJnR5cGVvZiBEdD09ImZ1bmN0aW9uIiYmRHQubGVuZ3RoIT0xJiYoZnQ9T3Q9ITEpO3ZhciBvZT10aGlzLl9fY2hhaW5fXyxUZT0hIXRoaXMuX19hY3Rpb25zX18ubGVuZ3RoLE5lPVkmJiFvZSxlcj1mdCYmIVRlO2lmKCFZJiZPdCl7Sj1lcj9KOm5ldyBncih0aGlzKTt2YXIgRGU9bS5hcHBseShKLGl0KTtyZXR1cm4gRGUuX19hY3Rpb25zX18ucHVzaCh7ZnVuYzp5SSxhcmdzOltWdF0sdGhpc0FyZzplfSksbmV3IFlsKERlLG9lKX1yZXR1cm4gTmUmJmVyP20uYXBwbHkodGhpcyxpdCk6KERlPXRoaXMudGhydShWdCksTmU/Tj9EZS52YWx1ZSgpWzBdOkRlLnZhbHVlKCk6RGUpfSl9KSxHbChbInBvcCIsInB1c2giLCJzaGlmdCIsInNvcnQiLCJzcGxpY2UiLCJ1bnNoaWZ0Il0sZnVuY3Rpb24obSl7dmFyIHY9RzZbbV0sVD0vXig/OnB1c2h8c29ydHx1bnNoaWZ0KSQvLnRlc3QobSk/InRhcCI6InRocnUiLE49L14oPzpwb3B8c2hpZnQpJC8udGVzdChtKTtHLnByb3RvdHlwZVttXT1mdW5jdGlvbigpe3ZhciBWPWFyZ3VtZW50cztpZihOJiYhdGhpcy5fX2NoYWluX18pe3ZhciBZPXRoaXMudmFsdWUoKTtyZXR1cm4gdi5hcHBseSgkZShZKT9ZOltdLFYpfXJldHVybiB0aGlzW1RdKGZ1bmN0aW9uKEope3JldHVybiB2LmFwcGx5KCRlKEopP0o6W10sVil9KX19KSxtaChnci5wcm90b3R5cGUsZnVuY3Rpb24obSx2KXt2YXIgVD1HW3ZdO2lmKFQpe3ZhciBOPVQubmFtZSsiIjt1bi5jYWxsKHl4LE4pfHwoeXhbTl09W10pLHl4W05dLnB1c2goe25hbWU6dixmdW5jOlR9KX19KSx5eFtoSShlLGcpLm5hbWVdPVt7bmFtZToid3JhcHBlciIsZnVuYzplfV0sZ3IucHJvdG90eXBlLmNsb25lPWtkZSxnci5wcm90b3R5cGUucmV2ZXJzZT1SZGUsZ3IucHJvdG90eXBlLnZhbHVlPU5kZSxHLnByb3RvdHlwZS5hdD1jMGUsRy5wcm90b3R5cGUuY2hhaW49dTBlLEcucHJvdG90eXBlLmNvbW1pdD1oMGUsRy5wcm90b3R5cGUubmV4dD1mMGUsRy5wcm90b3R5cGUucGxhbnQ9ZDBlLEcucHJvdG90eXBlLnJldmVyc2U9bTBlLEcucHJvdG90eXBlLnRvSlNPTj1HLnByb3RvdHlwZS52YWx1ZU9mPUcucHJvdG90eXBlLnZhbHVlPWcwZSxHLnByb3RvdHlwZS5maXJzdD1HLnByb3RvdHlwZS5oZWFkLEVNJiYoRy5wcm90b3R5cGVbRU1dPXAwZSksR30sZ209aGRlKCk7dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmdHlwZW9mIGRlZmluZS5hbWQ9PSJvYmplY3QiJiZkZWZpbmUuYW1kPyhmby5fPWdtLGRlZmluZShmdW5jdGlvbigpe3JldHVybiBnbX0pKTp0Xz8oKHRfLmV4cG9ydHM9Z20pLl89Z20sYXEuXz1nbSk6Zm8uXz1nbX0pLmNhbGwoUngpfSk7ZnVuY3Rpb24gX190KCl7Zm9yKHZhciBlPTAsdD1hcmd1bWVudHMubGVuZ3RoLHI9e30sbjtlPHQ7KytlKXtpZighKG49YXJndW1lbnRzW2VdKyIiKXx8biBpbiByfHwvW1xzLl0vLnRlc3QobikpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIHR5cGU6ICIrbik7cltuXT1bXX1yZXR1cm4gbmV3IEo5KHIpfWZ1bmN0aW9uIEo5KGUpe3RoaXMuXz1lfWZ1bmN0aW9uIGcyZShlLHQpe3JldHVybiBlLnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoZnVuY3Rpb24ocil7dmFyIG49IiIsaT1yLmluZGV4T2YoIi4iKTtpZihpPj0wJiYobj1yLnNsaWNlKGkrMSkscj1yLnNsaWNlKDAsaSkpLHImJiF0Lmhhc093blByb3BlcnR5KHIpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3IpO3JldHVybnt0eXBlOnIsbmFtZTpufX0pfWZ1bmN0aW9uIF8yZShlLHQpe2Zvcih2YXIgcj0wLG49ZS5sZW5ndGgsaTtyPG47KytyKWlmKChpPWVbcl0pLm5hbWU9PT10KXJldHVybiBpLnZhbHVlfWZ1bmN0aW9uIGdfdChlLHQscil7Zm9yKHZhciBuPTAsaT1lLmxlbmd0aDtuPGk7KytuKWlmKGVbbl0ubmFtZT09PXQpe2Vbbl09bTJlLGU9ZS5zbGljZSgwLG4pLmNvbmNhdChlLnNsaWNlKG4rMSkpO2JyZWFrfXJldHVybiByIT1udWxsJiZlLnB1c2goe25hbWU6dCx2YWx1ZTpyfSksZX12YXIgbTJlLHhzLHlfdD1NKCgpPT57bTJlPXt2YWx1ZTpmdW5jdGlvbigpe319O0o5LnByb3RvdHlwZT1fX3QucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpKOSxvbjpmdW5jdGlvbihlLHQpe3ZhciByPXRoaXMuXyxuPWcyZShlKyIiLHIpLGksbz0tMSxhPW4ubGVuZ3RoO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKDsrK288YTspaWYoKGk9KGU9bltvXSkudHlwZSkmJihpPV8yZShyW2ldLGUubmFtZSkpKXJldHVybiBpO3JldHVybn1pZih0IT1udWxsJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrdCk7Zm9yKDsrK288YTspaWYoaT0oZT1uW29dKS50eXBlKXJbaV09Z190KHJbaV0sZS5uYW1lLHQpO2Vsc2UgaWYodD09bnVsbClmb3IoaSBpbiByKXJbaV09Z190KHJbaV0sZS5uYW1lLG51bGwpO3JldHVybiB0aGlzfSxjb3B5OmZ1bmN0aW9uKCl7dmFyIGU9e30sdD10aGlzLl87Zm9yKHZhciByIGluIHQpZVtyXT10W3JdLnNsaWNlKCk7cmV0dXJuIG5ldyBKOShlKX0sY2FsbDpmdW5jdGlvbihlLHQpe2lmKChpPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIHI9bmV3IEFycmF5KGkpLG49MCxpLG87bjxpOysrbilyW25dPWFyZ3VtZW50c1tuKzJdO2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkoZSkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrZSk7Zm9yKG89dGhpcy5fW2VdLG49MCxpPW8ubGVuZ3RoO248aTsrK24pb1tuXS52YWx1ZS5hcHBseSh0LHIpfSxhcHBseTpmdW5jdGlvbihlLHQscil7aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eShlKSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIitlKTtmb3IodmFyIG49dGhpcy5fW2VdLGk9MCxvPW4ubGVuZ3RoO2k8bzsrK2kpbltpXS52YWx1ZS5hcHBseSh0LHIpfX07eHM9X190fSk7dmFyIFJtPU0oKCk9Pnt5X3QoKX0pO2Z1bmN0aW9uIF9ZKGUpe3JldHVybitlfXZhciBDdnQ9TSgoKT0+e30pO2Z1bmN0aW9uIHlZKGUpe3JldHVybiBlKmV9ZnVuY3Rpb24gdlkoZSl7cmV0dXJuIGUqKDItZSl9ZnVuY3Rpb24gSUwoZSl7cmV0dXJuKChlKj0yKTw9MT9lKmU6LS1lKigyLWUpKzEpLzJ9dmFyIEF2dD1NKCgpPT57fSk7ZnVuY3Rpb24geFkoZSl7cmV0dXJuIGUqZSplfWZ1bmN0aW9uIGJZKGUpe3JldHVybi0tZSplKmUrMX1mdW5jdGlvbiBicyhlKXtyZXR1cm4oKGUqPTIpPD0xP2UqZSplOihlLT0yKSplKmUrMikvMn12YXIgUHZ0PU0oKCk9Pnt9KTt2YXIgd1ksU1ksTVksTEwsSXZ0PU0oKCk9Pnt3WT0zLFNZPWZ1bmN0aW9uIGUodCl7dD0rdDtmdW5jdGlvbiByKG4pe3JldHVybiBNYXRoLnBvdyhuLHQpfXJldHVybiByLmV4cG9uZW50PWUscn0od1kpLE1ZPWZ1bmN0aW9uIGUodCl7dD0rdDtmdW5jdGlvbiByKG4pe3JldHVybiAxLU1hdGgucG93KDEtbix0KX1yZXR1cm4gci5leHBvbmVudD1lLHJ9KHdZKSxMTD1mdW5jdGlvbiBlKHQpe3Q9K3Q7ZnVuY3Rpb24gcihuKXtyZXR1cm4oKG4qPTIpPD0xP01hdGgucG93KG4sdCk6Mi1NYXRoLnBvdygyLW4sdCkpLzJ9cmV0dXJuIHIuZXhwb25lbnQ9ZSxyfSh3WSl9KTtmdW5jdGlvbiBFWShlKXtyZXR1cm4rZT09MT8xOjEtTWF0aC5jb3MoZSprdnQpfWZ1bmN0aW9uIFRZKGUpe3JldHVybiBNYXRoLnNpbihlKmt2dCl9ZnVuY3Rpb24ga0woZSl7cmV0dXJuKDEtTWF0aC5jb3MoTHZ0KmUpKS8yfXZhciBMdnQsa3Z0LFJ2dD1NKCgpPT57THZ0PU1hdGguUEksa3Z0PUx2dC8yfSk7ZnVuY3Rpb24gT2goZSl7cmV0dXJuKE1hdGgucG93KDIsLTEwKmUpLS4wMDA5NzY1NjI1KSoxLjAwMDk3NzUxNzEwNjU0OTR9dmFyIENZPU0oKCk9Pnt9KTtmdW5jdGlvbiBBWShlKXtyZXR1cm4gT2goMS0rZSl9ZnVuY3Rpb24gUFkoZSl7cmV0dXJuIDEtT2goZSl9ZnVuY3Rpb24gUkwoZSl7cmV0dXJuKChlKj0yKTw9MT9PaCgxLWUpOjItT2goZS0xKSkvMn12YXIgTnZ0PU0oKCk9PntDWSgpfSk7ZnVuY3Rpb24gSVkoZSl7cmV0dXJuIDEtTWF0aC5zcXJ0KDEtZSplKX1mdW5jdGlvbiBMWShlKXtyZXR1cm4gTWF0aC5zcXJ0KDEtIC0tZSplKX1mdW5jdGlvbiBOTChlKXtyZXR1cm4oKGUqPTIpPD0xPzEtTWF0aC5zcXJ0KDEtZSplKTpNYXRoLnNxcnQoMS0oZS09MikqZSkrMSkvMn12YXIgRHZ0PU0oKCk9Pnt9KTtmdW5jdGlvbiBSWShlKXtyZXR1cm4gMS1JXygxLWUpfWZ1bmN0aW9uIElfKGUpe3JldHVybihlPStlKTxrWT9ETCplKmU6ZTx1U2U/REwqKGUtPWNTZSkqZStoU2U6ZTxwU2U/REwqKGUtPWZTZSkqZStkU2U6REwqKGUtPW1TZSkqZStnU2V9ZnVuY3Rpb24gTlkoZSl7cmV0dXJuKChlKj0yKTw9MT8xLUlfKDEtZSk6SV8oZS0xKSsxKS8yfXZhciBrWSxjU2UsdVNlLGhTZSxmU2UscFNlLGRTZSxtU2UsZ1NlLERMLE92dD1NKCgpPT57a1k9LjM2MzYzNjM2MzYzNjM2MzY1LGNTZT02LzExLHVTZT04LzExLGhTZT0zLzQsZlNlPTkvMTEscFNlPTEwLzExLGRTZT0xNS8xNixtU2U9MjEvMjIsZ1NlPTYzLzY0LERMPTEva1kva1l9KTt2YXIgRFksT1kselksT0wsenZ0PU0oKCk9PntEWT0xLjcwMTU4LE9ZPWZ1bmN0aW9uIGUodCl7dD0rdDtmdW5jdGlvbiByKG4pe3JldHVybihuPStuKSpuKih0KihuLTEpK24pfXJldHVybiByLm92ZXJzaG9vdD1lLHJ9KERZKSx6WT1mdW5jdGlvbiBlKHQpe3Q9K3Q7ZnVuY3Rpb24gcihuKXtyZXR1cm4tLW4qbiooKG4rMSkqdCtuKSsxfXJldHVybiByLm92ZXJzaG9vdD1lLHJ9KERZKSxPTD1mdW5jdGlvbiBlKHQpe3Q9K3Q7ZnVuY3Rpb24gcihuKXtyZXR1cm4oKG4qPTIpPDE/bipuKigodCsxKSpuLXQpOihuLT0yKSpuKigodCsxKSpuK3QpKzIpLzJ9cmV0dXJuIHIub3ZlcnNob290PWUscn0oRFkpfSk7dmFyIFNiLEZZLEJZLEhZLHpMLFZZLEZ2dD1NKCgpPT57Q1koKTtTYj0yKk1hdGguUEksRlk9MSxCWT0uMyxIWT1mdW5jdGlvbiBlKHQscil7dmFyIG49TWF0aC5hc2luKDEvKHQ9TWF0aC5tYXgoMSx0KSkpKihyLz1TYik7ZnVuY3Rpb24gaShvKXtyZXR1cm4gdCpPaCgtIC0tbykqTWF0aC5zaW4oKG4tbykvcil9cmV0dXJuIGkuYW1wbGl0dWRlPWZ1bmN0aW9uKG8pe3JldHVybiBlKG8scipTYil9LGkucGVyaW9kPWZ1bmN0aW9uKG8pe3JldHVybiBlKHQsbyl9LGl9KEZZLEJZKSx6TD1mdW5jdGlvbiBlKHQscil7dmFyIG49TWF0aC5hc2luKDEvKHQ9TWF0aC5tYXgoMSx0KSkpKihyLz1TYik7ZnVuY3Rpb24gaShvKXtyZXR1cm4gMS10Kk9oKG89K28pKk1hdGguc2luKChvK24pL3IpfXJldHVybiBpLmFtcGxpdHVkZT1mdW5jdGlvbihvKXtyZXR1cm4gZShvLHIqU2IpfSxpLnBlcmlvZD1mdW5jdGlvbihvKXtyZXR1cm4gZSh0LG8pfSxpfShGWSxCWSksVlk9ZnVuY3Rpb24gZSh0LHIpe3ZhciBuPU1hdGguYXNpbigxLyh0PU1hdGgubWF4KDEsdCkpKSooci89U2IpO2Z1bmN0aW9uIGkobyl7cmV0dXJuKChvPW8qMi0xKTwwP3QqT2goLW8pKk1hdGguc2luKChuLW8pL3IpOjItdCpPaChvKSpNYXRoLnNpbigobitvKS9yKSkvMn1yZXR1cm4gaS5hbXBsaXR1ZGU9ZnVuY3Rpb24obyl7cmV0dXJuIGUobyxyKlNiKX0saS5wZXJpb2Q9ZnVuY3Rpb24obyl7cmV0dXJuIGUodCxvKX0saX0oRlksQlkpfSk7dmFyIEJ2dD17fTtacyhCdnQse2Vhc2VCYWNrOigpPT5PTCxlYXNlQmFja0luOigpPT5PWSxlYXNlQmFja0luT3V0OigpPT5PTCxlYXNlQmFja091dDooKT0+elksZWFzZUJvdW5jZTooKT0+SV8sZWFzZUJvdW5jZUluOigpPT5SWSxlYXNlQm91bmNlSW5PdXQ6KCk9Pk5ZLGVhc2VCb3VuY2VPdXQ6KCk9PklfLGVhc2VDaXJjbGU6KCk9Pk5MLGVhc2VDaXJjbGVJbjooKT0+SVksZWFzZUNpcmNsZUluT3V0OigpPT5OTCxlYXNlQ2lyY2xlT3V0OigpPT5MWSxlYXNlQ3ViaWM6KCk9PmJzLGVhc2VDdWJpY0luOigpPT54WSxlYXNlQ3ViaWNJbk91dDooKT0+YnMsZWFzZUN1YmljT3V0OigpPT5iWSxlYXNlRWxhc3RpYzooKT0+ekwsZWFzZUVsYXN0aWNJbjooKT0+SFksZWFzZUVsYXN0aWNJbk91dDooKT0+VlksZWFzZUVsYXN0aWNPdXQ6KCk9PnpMLGVhc2VFeHA6KCk9PlJMLGVhc2VFeHBJbjooKT0+QVksZWFzZUV4cEluT3V0OigpPT5STCxlYXNlRXhwT3V0OigpPT5QWSxlYXNlTGluZWFyOigpPT5fWSxlYXNlUG9seTooKT0+TEwsZWFzZVBvbHlJbjooKT0+U1ksZWFzZVBvbHlJbk91dDooKT0+TEwsZWFzZVBvbHlPdXQ6KCk9Pk1ZLGVhc2VRdWFkOigpPT5JTCxlYXNlUXVhZEluOigpPT55WSxlYXNlUXVhZEluT3V0OigpPT5JTCxlYXNlUXVhZE91dDooKT0+dlksZWFzZVNpbjooKT0+a0wsZWFzZVNpbkluOigpPT5FWSxlYXNlU2luSW5PdXQ6KCk9PmtMLGVhc2VTaW5PdXQ6KCk9PlRZfSk7dmFyIExfPU0oKCk9PntDdnQoKTtBdnQoKTtQdnQoKTtJdnQoKTtSdnQoKTtOdnQoKTtEdnQoKTtPdnQoKTt6dnQoKTtGdnQoKX0pO2Z1bmN0aW9uIFlMKCl7fWZ1bmN0aW9uIFF2dChlLHQpe3ZhciByPW5ldyBZTDtpZihlIGluc3RhbmNlb2YgWUwpZS5lYWNoKGZ1bmN0aW9uKHMsbCl7ci5zZXQobCxzKX0pO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlKSl7dmFyIG49LTEsaT1lLmxlbmd0aCxvO2lmKHQ9PW51bGwpZm9yKDsrK248aTspci5zZXQobixlW25dKTtlbHNlIGZvcig7KytuPGk7KXIuc2V0KHQobz1lW25dLG4sZSksbyl9ZWxzZSBpZihlKWZvcih2YXIgYSBpbiBlKXIuc2V0KGEsZVthXSk7cmV0dXJuIHJ9dmFyIHJsLEppLGpMPU0oKCk9PntybD0iJCI7WUwucHJvdG90eXBlPVF2dC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOllMLGhhczpmdW5jdGlvbihlKXtyZXR1cm4gcmwrZSBpbiB0aGlzfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXNbcmwrZV19LHNldDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzW3JsK2VdPXQsdGhpc30scmVtb3ZlOmZ1bmN0aW9uKGUpe3ZhciB0PXJsK2U7cmV0dXJuIHQgaW4gdGhpcyYmZGVsZXRlIHRoaXNbdF19LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PXJsJiZkZWxldGUgdGhpc1tlXX0sa2V5czpmdW5jdGlvbigpe3ZhciBlPVtdO2Zvcih2YXIgdCBpbiB0aGlzKXRbMF09PT1ybCYmZS5wdXNoKHQuc2xpY2UoMSkpO3JldHVybiBlfSx2YWx1ZXM6ZnVuY3Rpb24oKXt2YXIgZT1bXTtmb3IodmFyIHQgaW4gdGhpcyl0WzBdPT09cmwmJmUucHVzaCh0aGlzW3RdKTtyZXR1cm4gZX0sZW50cmllczpmdW5jdGlvbigpe3ZhciBlPVtdO2Zvcih2YXIgdCBpbiB0aGlzKXRbMF09PT1ybCYmZS5wdXNoKHtrZXk6dC5zbGljZSgxKSx2YWx1ZTp0aGlzW3RdfSk7cmV0dXJuIGV9LHNpemU6ZnVuY3Rpb24oKXt2YXIgZT0wO2Zvcih2YXIgdCBpbiB0aGlzKXRbMF09PT1ybCYmKytlO3JldHVybiBlfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgZSBpbiB0aGlzKWlmKGVbMF09PT1ybClyZXR1cm4hMTtyZXR1cm4hMH0sZWFjaDpmdW5jdGlvbihlKXtmb3IodmFyIHQgaW4gdGhpcyl0WzBdPT09cmwmJmUodGhpc1t0XSx0LnNsaWNlKDEpLHRoaXMpfX07Smk9UXZ0fSk7ZnVuY3Rpb24gcjF0KCl7dmFyIGU9W10sdD1bXSxyLG4saTtmdW5jdGlvbiBvKHMsbCxjLHUpe2lmKGw+PWUubGVuZ3RoKXJldHVybiByIT1udWxsJiZzLnNvcnQociksbiE9bnVsbD9uKHMpOnM7Zm9yKHZhciBoPS0xLGY9cy5sZW5ndGgscD1lW2wrK10sZCxnLF89SmkoKSx5LHg9YygpOysraDxmOykoeT1fLmdldChkPXAoZz1zW2hdKSsiIikpP3kucHVzaChnKTpfLnNldChkLFtnXSk7cmV0dXJuIF8uZWFjaChmdW5jdGlvbihiLFMpe3UoeCxTLG8oYixsLGMsdSkpfSkseH1mdW5jdGlvbiBhKHMsbCl7aWYoKytsPmUubGVuZ3RoKXJldHVybiBzO3ZhciBjLHU9dFtsLTFdO3JldHVybiBuIT1udWxsJiZsPj1lLmxlbmd0aD9jPXMuZW50cmllcygpOihjPVtdLHMuZWFjaChmdW5jdGlvbihoLGYpe2MucHVzaCh7a2V5OmYsdmFsdWVzOmEoaCxsKX0pfSkpLHUhPW51bGw/Yy5zb3J0KGZ1bmN0aW9uKGgsZil7cmV0dXJuIHUoaC5rZXksZi5rZXkpfSk6Y31yZXR1cm4gaT17b2JqZWN0OmZ1bmN0aW9uKHMpe3JldHVybiBvKHMsMCxOU2UsRFNlKX0sbWFwOmZ1bmN0aW9uKHMpe3JldHVybiBvKHMsMCx0MXQsZTF0KX0sZW50cmllczpmdW5jdGlvbihzKXtyZXR1cm4gYShvKHMsMCx0MXQsZTF0KSwwKX0sa2V5OmZ1bmN0aW9uKHMpe3JldHVybiBlLnB1c2gocyksaX0sc29ydEtleXM6ZnVuY3Rpb24ocyl7cmV0dXJuIHRbZS5sZW5ndGgtMV09cyxpfSxzb3J0VmFsdWVzOmZ1bmN0aW9uKHMpe3JldHVybiByPXMsaX0scm9sbHVwOmZ1bmN0aW9uKHMpe3JldHVybiBuPXMsaX19fWZ1bmN0aW9uIE5TZSgpe3JldHVybnt9fWZ1bmN0aW9uIERTZShlLHQscil7ZVt0XT1yfWZ1bmN0aW9uIHQxdCgpe3JldHVybiBKaSgpfWZ1bmN0aW9uIGUxdChlLHQscil7ZS5zZXQodCxyKX12YXIgbjF0PU0oKCk9PntqTCgpfSk7ZnVuY3Rpb24gWEwoKXt9ZnVuY3Rpb24gaTF0KGUsdCl7dmFyIHI9bmV3IFhMO2lmKGUgaW5zdGFuY2VvZiBYTCllLmVhY2goZnVuY3Rpb24obyl7ci5hZGQobyl9KTtlbHNlIGlmKGUpe3ZhciBuPS0xLGk9ZS5sZW5ndGg7aWYodD09bnVsbClmb3IoOysrbjxpOylyLmFkZChlW25dKTtlbHNlIGZvcig7KytuPGk7KXIuYWRkKHQoZVtuXSxuLGUpKX1yZXR1cm4gcn12YXIgUl8sbzF0LGExdD1NKCgpPT57akwoKTtSXz1KaS5wcm90b3R5cGU7WEwucHJvdG90eXBlPWkxdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlhMLGhhczpSXy5oYXMsYWRkOmZ1bmN0aW9uKGUpe3JldHVybiBlKz0iIix0aGlzW3JsK2VdPWUsdGhpc30scmVtb3ZlOlJfLnJlbW92ZSxjbGVhcjpSXy5jbGVhcix2YWx1ZXM6Ul8ua2V5cyxzaXplOlJfLnNpemUsZW1wdHk6Ul8uZW1wdHksZWFjaDpSXy5lYWNofTtvMXQ9aTF0fSk7ZnVuY3Rpb24gJEwoZSl7dmFyIHQ9W107Zm9yKHZhciByIGluIGUpdC5wdXNoKHIpO3JldHVybiB0fXZhciBzMXQ9TSgoKT0+e30pO2Z1bmN0aW9uIGwxdChlKXt2YXIgdD1bXTtmb3IodmFyIHIgaW4gZSl0LnB1c2goZVtyXSk7cmV0dXJuIHR9dmFyIGMxdD1NKCgpPT57fSk7ZnVuY3Rpb24gdTF0KGUpe3ZhciB0PVtdO2Zvcih2YXIgciBpbiBlKXQucHVzaCh7a2V5OnIsdmFsdWU6ZVtyXX0pO3JldHVybiB0fXZhciBoMXQ9TSgoKT0+e30pO3ZhciBUYj1NKCgpPT57bjF0KCk7YTF0KCk7akwoKTtzMXQoKTtjMXQoKTtoMXQoKX0pO2Z1bmN0aW9uIHYxdChlKXtyZXR1cm4gbmV3IEZ1bmN0aW9uKCJkIiwicmV0dXJuIHsiK2UubWFwKGZ1bmN0aW9uKHQscil7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpKyI6IGRbIityKyddIHx8ICIiJ30pLmpvaW4oIiwiKSsifSIpfWZ1bmN0aW9uIEdTZShlLHQpe3ZhciByPXYxdChlKTtyZXR1cm4gZnVuY3Rpb24obixpKXtyZXR1cm4gdChyKG4pLGksZSl9fWZ1bmN0aW9uIHkxdChlKXt2YXIgdD1PYmplY3QuY3JlYXRlKG51bGwpLHI9W107cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihuKXtmb3IodmFyIGkgaW4gbilpIGluIHR8fHIucHVzaCh0W2ldPWkpfSkscn1mdW5jdGlvbiBTcyhlLHQpe3ZhciByPWUrIiIsbj1yLmxlbmd0aDtyZXR1cm4gbjx0P25ldyBBcnJheSh0LW4rMSkuam9pbigwKStyOnJ9ZnVuY3Rpb24gV1NlKGUpe3JldHVybiBlPDA/Ii0iK1NzKC1lLDYpOmU+OTk5OT8iKyIrU3MoZSw2KTpTcyhlLDQpfWZ1bmN0aW9uIFlTZShlKXt2YXIgdD1lLmdldFVUQ0hvdXJzKCkscj1lLmdldFVUQ01pbnV0ZXMoKSxuPWUuZ2V0VVRDU2Vjb25kcygpLGk9ZS5nZXRVVENNaWxsaXNlY29uZHMoKTtyZXR1cm4gaXNOYU4oZSk/IkludmFsaWQgRGF0ZSI6V1NlKGUuZ2V0VVRDRnVsbFllYXIoKSw0KSsiLSIrU3MoZS5nZXRVVENNb250aCgpKzEsMikrIi0iK1NzKGUuZ2V0VVRDRGF0ZSgpLDIpKyhpPyJUIitTcyh0LDIpKyI6IitTcyhyLDIpKyI6IitTcyhuLDIpKyIuIitTcyhpLDMpKyJaIjpuPyJUIitTcyh0LDIpKyI6IitTcyhyLDIpKyI6IitTcyhuLDIpKyJaIjpyfHx0PyJUIitTcyh0LDIpKyI6IitTcyhyLDIpKyJaIjoiIil9ZnVuY3Rpb24gWW0oZSl7dmFyIHQ9bmV3IFJlZ0V4cCgnWyInK2UrYApccl1gKSxyPWUuY2hhckNvZGVBdCgwKTtmdW5jdGlvbiBuKGgsZil7dmFyIHAsZCxnPWkoaCxmdW5jdGlvbihfLHkpe2lmKHApcmV0dXJuIHAoXyx5LTEpO2Q9XyxwPWY/R1NlKF8sZik6djF0KF8pfSk7cmV0dXJuIGcuY29sdW1ucz1kfHxbXSxnfWZ1bmN0aW9uIGkoaCxmKXt2YXIgcD1bXSxkPWgubGVuZ3RoLGc9MCxfPTAseSx4PWQ8PTAsYj0hMTtoLmNoYXJDb2RlQXQoZC0xKT09PVVFJiYtLWQsaC5jaGFyQ29kZUF0KGQtMSk9PT1uaiYmLS1kO2Z1bmN0aW9uIFMoKXtpZih4KXJldHVybiBlajtpZihiKXJldHVybiBiPSExLF8xdDt2YXIgUCxrPWcsTztpZihoLmNoYXJDb2RlQXQoayk9PT1yail7Zm9yKDtnKys8ZCYmaC5jaGFyQ29kZUF0KGcpIT09cmp8fGguY2hhckNvZGVBdCgrK2cpPT09cmo7KTtyZXR1cm4oUD1nKT49ZD94PSEwOihPPWguY2hhckNvZGVBdChnKyspKT09PVVFP2I9ITA6Tz09PW5qJiYoYj0hMCxoLmNoYXJDb2RlQXQoZyk9PT1VRSYmKytnKSxoLnNsaWNlKGsrMSxQLTEpLnJlcGxhY2UoLyIiL2csJyInKX1mb3IoO2c8ZDspe2lmKChPPWguY2hhckNvZGVBdChQPWcrKykpPT09VUUpYj0hMDtlbHNlIGlmKE89PT1uailiPSEwLGguY2hhckNvZGVBdChnKT09PVVFJiYrK2c7ZWxzZSBpZihPIT09ciljb250aW51ZTtyZXR1cm4gaC5zbGljZShrLFApfXJldHVybiB4PSEwLGguc2xpY2UoayxkKX1mb3IoOyh5PVMoKSkhPT1lajspe2Zvcih2YXIgQz1bXTt5IT09XzF0JiZ5IT09ZWo7KUMucHVzaCh5KSx5PVMoKTtmJiYoQz1mKEMsXysrKSk9PW51bGx8fHAucHVzaChDKX1yZXR1cm4gcH1mdW5jdGlvbiBvKGgsZil7cmV0dXJuIGgubWFwKGZ1bmN0aW9uKHApe3JldHVybiBmLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gdShwW2RdKX0pLmpvaW4oZSl9KX1mdW5jdGlvbiBhKGgsZil7cmV0dXJuIGY9PW51bGwmJihmPXkxdChoKSksW2YubWFwKHUpLmpvaW4oZSldLmNvbmNhdChvKGgsZikpLmpvaW4oYApgKX1mdW5jdGlvbiBzKGgsZil7cmV0dXJuIGY9PW51bGwmJihmPXkxdChoKSksbyhoLGYpLmpvaW4oYApgKX1mdW5jdGlvbiBsKGgpe3JldHVybiBoLm1hcChjKS5qb2luKGAKYCl9ZnVuY3Rpb24gYyhoKXtyZXR1cm4gaC5tYXAodSkuam9pbihlKX1mdW5jdGlvbiB1KGgpe3JldHVybiBoPT1udWxsPyIiOmggaW5zdGFuY2VvZiBEYXRlP1lTZShoKTp0LnRlc3QoaCs9IiIpPyciJytoLnJlcGxhY2UoLyIvZywnIiInKSsnIic6aH1yZXR1cm57cGFyc2U6bixwYXJzZVJvd3M6aSxmb3JtYXQ6YSxmb3JtYXRCb2R5OnMsZm9ybWF0Um93czpsLGZvcm1hdFJvdzpjLGZvcm1hdFZhbHVlOnV9fXZhciBfMXQsZWoscmosVUUsbmosdGs9TSgoKT0+e18xdD17fSxlaj17fSxyaj0zNCxVRT0xMCxuaj0xM30pO3ZhciBOXyxDYix4MXQsYjF0LHcxdCxTMXQsTTF0LEUxdCxUMXQ9TSgoKT0+e3RrKCk7Tl89WW0oIiwiKSxDYj1OXy5wYXJzZSx4MXQ9Tl8ucGFyc2VSb3dzLGIxdD1OXy5mb3JtYXQsdzF0PU5fLmZvcm1hdEJvZHksUzF0PU5fLmZvcm1hdFJvd3MsTTF0PU5fLmZvcm1hdFJvdyxFMXQ9Tl8uZm9ybWF0VmFsdWV9KTt2YXIgRF8sQWIsQzF0LEExdCxQMXQsSTF0LEwxdCxrMXQsUjF0PU0oKCk9Pnt0aygpO0RfPVltKCIJIiksQWI9RF8ucGFyc2UsQzF0PURfLnBhcnNlUm93cyxBMXQ9RF8uZm9ybWF0LFAxdD1EXy5mb3JtYXRCb2R5LEkxdD1EXy5mb3JtYXRSb3dzLEwxdD1EXy5mb3JtYXRSb3csazF0PURfLmZvcm1hdFZhbHVlfSk7ZnVuY3Rpb24gaWooZSl7Zm9yKHZhciB0IGluIGUpe3ZhciByPWVbdF0udHJpbSgpLG4saTtpZighcilyPW51bGw7ZWxzZSBpZihyPT09InRydWUiKXI9ITA7ZWxzZSBpZihyPT09ImZhbHNlIilyPSExO2Vsc2UgaWYocj09PSJOYU4iKXI9TmFOO2Vsc2UgaWYoIWlzTmFOKG49K3IpKXI9bjtlbHNlIGlmKGk9ci5tYXRjaCgvXihbLStdXGR7Mn0pP1xkezR9KC1cZHsyfSgtXGR7Mn0pPyk/KFRcZHsyfTpcZHsyfSg6XGR7Mn0oXC5cZHszfSk/KT8oWnxbLStdXGR7Mn06XGR7Mn0pPyk/JC8pKWpTZSYmISFpWzRdJiYhaVs3XSYmKHI9ci5yZXBsYWNlKC8tL2csIi8iKS5yZXBsYWNlKC9ULywiICIpKSxyPW5ldyBEYXRlKHIpO2Vsc2UgY29udGludWU7ZVt0XT1yfXJldHVybiBlfXZhciBqU2UsTjF0PU0oKCk9PntqU2U9bmV3IERhdGUoIjIwMTktMDEtMDFUMDA6MDAiKS5nZXRIb3VycygpfHxuZXcgRGF0ZSgiMjAxOS0wNy0wMVQwMDowMCIpLmdldEhvdXJzKCl9KTt2YXIgcUU9TSgoKT0+e3RrKCk7VDF0KCk7UjF0KCk7TjF0KCl9KTt2YXIgcGU9e307WnMocGUse19fYXNzaWduOigpPT55NWUsX19hc3luY0RlbGVnYXRvcjooKT0+QTVlLF9fYXN5bmNHZW5lcmF0b3I6KCk9PkM1ZSxfX2FzeW5jVmFsdWVzOigpPT5QNWUsX19hd2FpdDooKT0+VTUsX19hd2FpdGVyOigpPT5TNWUsX19kZWNvcmF0ZTooKT0+eDVlLF9fZXhwb3J0U3RhcjooKT0+RTVlLF9fZXh0ZW5kczooKT0+XzVlLF9fZ2VuZXJhdG9yOigpPT5NNWUsX19tYWtlVGVtcGxhdGVPYmplY3Q6KCk9Pkk1ZSxfX21ldGFkYXRhOigpPT53NWUsX19wYXJhbTooKT0+YjVlLF9fcmVhZDooKT0+bk10LF9fcmVzdDooKT0+djVlLF9fc3ByZWFkOigpPT5UNWUsX192YWx1ZXM6KCk9PnkkfSk7ZnVuY3Rpb24gXzVlKGUsdCl7ZzVlKGUsdCk7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT10PT09bnVsbD9PYmplY3QuY3JlYXRlKHQpOihyLnByb3RvdHlwZT10LnByb3RvdHlwZSxuZXcgcil9ZnVuY3Rpb24gdjVlKGUsdCl7dmFyIHI9e307Zm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJnQuaW5kZXhPZihuKTwwJiYocltuXT1lW25dKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGk9MCxuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7aTxuLmxlbmd0aDtpKyspdC5pbmRleE9mKG5baV0pPDAmJihyW25baV1dPWVbbltpXV0pO3JldHVybiByfWZ1bmN0aW9uIHg1ZShlLHQscixuKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoLG89aTwzP3Q6bj09PW51bGw/bj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQscik6bixhO2lmKHR5cGVvZiBSZWZsZWN0PT0ib2JqZWN0IiYmdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGU9PSJmdW5jdGlvbiIpbz1SZWZsZWN0LmRlY29yYXRlKGUsdCxyLG4pO2Vsc2UgZm9yKHZhciBzPWUubGVuZ3RoLTE7cz49MDtzLS0pKGE9ZVtzXSkmJihvPShpPDM/YShvKTppPjM/YSh0LHIsbyk6YSh0LHIpKXx8byk7cmV0dXJuIGk+MyYmbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHQscixvKSxvfWZ1bmN0aW9uIGI1ZShlLHQpe3JldHVybiBmdW5jdGlvbihyLG4pe3QocixuLGUpfX1mdW5jdGlvbiB3NWUoZSx0KXtpZih0eXBlb2YgUmVmbGVjdD09Im9iamVjdCImJnR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhPT0iZnVuY3Rpb24iKXJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKGUsdCl9ZnVuY3Rpb24gUzVlKGUsdCxyLG4pe3JldHVybiBuZXcocnx8KHI9UHJvbWlzZSkpKGZ1bmN0aW9uKGksbyl7ZnVuY3Rpb24gYShjKXt0cnl7bChuLm5leHQoYykpfWNhdGNoKHUpe28odSl9fWZ1bmN0aW9uIHMoYyl7dHJ5e2wobi50aHJvdyhjKSl9Y2F0Y2godSl7byh1KX19ZnVuY3Rpb24gbChjKXtjLmRvbmU/aShjLnZhbHVlKTpuZXcgcihmdW5jdGlvbih1KXt1KGMudmFsdWUpfSkudGhlbihhLHMpfWwoKG49bi5hcHBseShlLHR8fFtdKSkubmV4dCgpKX0pfWZ1bmN0aW9uIE01ZShlLHQpe3ZhciByPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZihvWzBdJjEpdGhyb3cgb1sxXTtyZXR1cm4gb1sxXX0sdHJ5czpbXSxvcHM6W119LG4saSxvLGE7cmV0dXJuIGE9e25leHQ6cygwKSx0aHJvdzpzKDEpLHJldHVybjpzKDIpfSx0eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiYoYVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxhO2Z1bmN0aW9uIHMoYyl7cmV0dXJuIGZ1bmN0aW9uKHUpe3JldHVybiBsKFtjLHVdKX19ZnVuY3Rpb24gbChjKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3I7KXRyeXtpZihuPTEsaSYmKG89aVtjWzBdJjI/InJldHVybiI6Y1swXT8idGhyb3ciOiJuZXh0Il0pJiYhKG89by5jYWxsKGksY1sxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKGk9MCxvJiYoYz1bMCxvLnZhbHVlXSksY1swXSl7Y2FzZSAwOmNhc2UgMTpvPWM7YnJlYWs7Y2FzZSA0OnJldHVybiByLmxhYmVsKysse3ZhbHVlOmNbMV0sZG9uZTohMX07Y2FzZSA1OnIubGFiZWwrKyxpPWNbMV0sYz1bMF07Y29udGludWU7Y2FzZSA3OmM9ci5vcHMucG9wKCksci50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYobz1yLnRyeXMsIShvPW8ubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pJiYoY1swXT09PTZ8fGNbMF09PT0yKSl7cj0wO2NvbnRpbnVlfWlmKGNbMF09PT0zJiYoIW98fGNbMV0+b1swXSYmY1sxXTxvWzNdKSl7ci5sYWJlbD1jWzFdO2JyZWFrfWlmKGNbMF09PT02JiZyLmxhYmVsPG9bMV0pe3IubGFiZWw9b1sxXSxvPWM7YnJlYWt9aWYobyYmci5sYWJlbDxvWzJdKXtyLmxhYmVsPW9bMl0sci5vcHMucHVzaChjKTticmVha31vWzJdJiZyLm9wcy5wb3AoKSxyLnRyeXMucG9wKCk7Y29udGludWV9Yz10LmNhbGwoZSxyKX1jYXRjaCh1KXtjPVs2LHVdLGk9MH1maW5hbGx5e249bz0wfWlmKGNbMF0mNSl0aHJvdyBjWzFdO3JldHVybnt2YWx1ZTpjWzBdP2NbMV06dm9pZCAwLGRvbmU6ITB9fX1mdW5jdGlvbiBFNWUoZSx0KXtmb3IodmFyIHIgaW4gZSl0Lmhhc093blByb3BlcnR5KHIpfHwodFtyXT1lW3JdKX1mdW5jdGlvbiB5JChlKXt2YXIgdD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZlW1N5bWJvbC5pdGVyYXRvcl0scj0wO3JldHVybiB0P3QuY2FsbChlKTp7bmV4dDpmdW5jdGlvbigpe3JldHVybiBlJiZyPj1lLmxlbmd0aCYmKGU9dm9pZCAwKSx7dmFsdWU6ZSYmZVtyKytdLGRvbmU6IWV9fX19ZnVuY3Rpb24gbk10KGUsdCl7dmFyIHI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmZVtTeW1ib2wuaXRlcmF0b3JdO2lmKCFyKXJldHVybiBlO3ZhciBuPXIuY2FsbChlKSxpLG89W10sYTt0cnl7Zm9yKDsodD09PXZvaWQgMHx8dC0tID4wKSYmIShpPW4ubmV4dCgpKS5kb25lOylvLnB1c2goaS52YWx1ZSl9Y2F0Y2gocyl7YT17ZXJyb3I6c319ZmluYWxseXt0cnl7aSYmIWkuZG9uZSYmKHI9bi5yZXR1cm4pJiZyLmNhbGwobil9ZmluYWxseXtpZihhKXRocm93IGEuZXJyb3J9fXJldHVybiBvfWZ1bmN0aW9uIFQ1ZSgpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllPWUuY29uY2F0KG5NdChhcmd1bWVudHNbdF0pKTtyZXR1cm4gZX1mdW5jdGlvbiBVNShlKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIFU1Pyh0aGlzLnY9ZSx0aGlzKTpuZXcgVTUoZSl9ZnVuY3Rpb24gQzVlKGUsdCxyKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIG49ci5hcHBseShlLHR8fFtdKSxpLG89W107cmV0dXJuIGk9e30sYSgibmV4dCIpLGEoInRocm93IiksYSgicmV0dXJuIiksaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30saTtmdW5jdGlvbiBhKGYpe25bZl0mJihpW2ZdPWZ1bmN0aW9uKHApe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGcpe28ucHVzaChbZixwLGQsZ10pPjF8fHMoZixwKX0pfSl9ZnVuY3Rpb24gcyhmLHApe3RyeXtsKG5bZl0ocCkpfWNhdGNoKGQpe2gob1swXVszXSxkKX19ZnVuY3Rpb24gbChmKXtmLnZhbHVlIGluc3RhbmNlb2YgVTU/UHJvbWlzZS5yZXNvbHZlKGYudmFsdWUudikudGhlbihjLHUpOmgob1swXVsyXSxmKX1mdW5jdGlvbiBjKGYpe3MoIm5leHQiLGYpfWZ1bmN0aW9uIHUoZil7cygidGhyb3ciLGYpfWZ1bmN0aW9uIGgoZixwKXtmKHApLG8uc2hpZnQoKSxvLmxlbmd0aCYmcyhvWzBdWzBdLG9bMF1bMV0pfX1mdW5jdGlvbiBBNWUoZSl7dmFyIHQscjtyZXR1cm4gdD17fSxuKCJuZXh0IiksbigidGhyb3ciLGZ1bmN0aW9uKGkpe3Rocm93IGl9KSxuKCJyZXR1cm4iKSx0W1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdDtmdW5jdGlvbiBuKGksbyl7ZVtpXSYmKHRbaV09ZnVuY3Rpb24oYSl7cmV0dXJuKHI9IXIpP3t2YWx1ZTpVNShlW2ldKGEpKSxkb25lOmk9PT0icmV0dXJuIn06bz9vKGEpOmF9KX19ZnVuY3Rpb24gUDVlKGUpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgdD1lW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTtyZXR1cm4gdD90LmNhbGwoZSk6dHlwZW9mIHkkPT0iZnVuY3Rpb24iP3kkKGUpOmVbU3ltYm9sLml0ZXJhdG9yXSgpfWZ1bmN0aW9uIEk1ZShlLHQpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHk/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInJhdyIse3ZhbHVlOnR9KTplLnJhdz10LGV9dmFyIGc1ZSx5NWUsZGU9TSgoKT0+e2c1ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHIgaW4gdCl0Lmhhc093blByb3BlcnR5KHIpJiYoZVtyXT10W3JdKX07eTVlPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgcixuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspe3I9YXJndW1lbnRzW25dO2Zvcih2YXIgbyBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLG8pJiYodFtvXT1yW29dKX1yZXR1cm4gdH19KTt2YXIgaU10LG9NdD1NKCgpPT57aU10PSI0LjEzLjAifSk7ZnVuY3Rpb24gX2MoZSx0KXtyZXR1cm4gZTx0Py0xOmU+dD8xOmU+PXQ/MDpOYU59dmFyIGR5PU0oKCk9Pnt9KTtmdW5jdGlvbiBhUihlKXtyZXR1cm4gZS5sZW5ndGg9PT0xJiYoZT1MNWUoZSkpLHtsZWZ0OmZ1bmN0aW9uKHQscixuLGkpe2ZvcihuPT1udWxsJiYobj0wKSxpPT1udWxsJiYoaT10Lmxlbmd0aCk7bjxpOyl7dmFyIG89bitpPj4+MTtlKHRbb10scik8MD9uPW8rMTppPW99cmV0dXJuIG59LHJpZ2h0OmZ1bmN0aW9uKHQscixuLGkpe2ZvcihuPT1udWxsJiYobj0wKSxpPT1udWxsJiYoaT10Lmxlbmd0aCk7bjxpOyl7dmFyIG89bitpPj4+MTtlKHRbb10scik+MD9pPW86bj1vKzF9cmV0dXJuIG59fX1mdW5jdGlvbiBMNWUoZSl7cmV0dXJuIGZ1bmN0aW9uKHQscil7cmV0dXJuIF9jKGUodCkscil9fXZhciB2JD1NKCgpPT57ZHkoKX0pO3ZhciBhTXQseCQsc010LHNSLGIkPU0oKCk9PntkeSgpO3YkKCk7YU10PWFSKF9jKSx4JD1hTXQucmlnaHQsc010PWFNdC5sZWZ0LHNSPXgkfSk7ZnVuY3Rpb24gbE10KGUsdCl7dD09bnVsbCYmKHQ9dyQpO2Zvcih2YXIgcj0wLG49ZS5sZW5ndGgtMSxpPWVbMF0sbz1uZXcgQXJyYXkobjwwPzA6bik7cjxuOylvW3JdPXQoaSxpPWVbKytyXSk7cmV0dXJuIG99ZnVuY3Rpb24gdyQoZSx0KXtyZXR1cm5bZSx0XX12YXIgUyQ9TSgoKT0+e30pO2Z1bmN0aW9uIGNNdChlLHQscil7dmFyIG49ZS5sZW5ndGgsaT10Lmxlbmd0aCxvPW5ldyBBcnJheShuKmkpLGEscyxsLGM7Zm9yKHI9PW51bGwmJihyPXckKSxhPWw9MDthPG47KythKWZvcihjPWVbYV0scz0wO3M8aTsrK3MsKytsKW9bbF09cihjLHRbc10pO3JldHVybiBvfXZhciB1TXQ9TSgoKT0+e1MkKCl9KTtmdW5jdGlvbiBoTXQoZSx0KXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59dmFyIGZNdD1NKCgpPT57fSk7ZnVuY3Rpb24gc2woZSl7cmV0dXJuIGU9PT1udWxsP05hTjorZX12YXIgbDI9TSgoKT0+e30pO2Z1bmN0aW9uIGxSKGUsdCl7dmFyIHI9ZS5sZW5ndGgsbj0wLGk9LTEsbz0wLGEscyxsPTA7aWYodD09bnVsbClmb3IoOysraTxyOylpc05hTihhPXNsKGVbaV0pKXx8KHM9YS1vLG8rPXMvKytuLGwrPXMqKGEtbykpO2Vsc2UgZm9yKDsrK2k8cjspaXNOYU4oYT1zbCh0KGVbaV0saSxlKSkpfHwocz1hLW8sbys9cy8rK24sbCs9cyooYS1vKSk7aWYobj4xKXJldHVybiBsLyhuLTEpfXZhciBNJD1NKCgpPT57bDIoKX0pO2Z1bmN0aW9uIGNSKGUsdCl7dmFyIHI9bFIoZSx0KTtyZXR1cm4gciYmTWF0aC5zcXJ0KHIpfXZhciBFJD1NKCgpPT57TSQoKX0pO2Z1bmN0aW9uIHVSKGUsdCl7dmFyIHI9ZS5sZW5ndGgsbj0tMSxpLG8sYTtpZih0PT1udWxsKXtmb3IoOysrbjxyOylpZigoaT1lW25dKSE9bnVsbCYmaT49aSlmb3Iobz1hPWk7KytuPHI7KShpPWVbbl0pIT1udWxsJiYobz5pJiYobz1pKSxhPGkmJihhPWkpKX1lbHNlIGZvcig7KytuPHI7KWlmKChpPXQoZVtuXSxuLGUpKSE9bnVsbCYmaT49aSlmb3Iobz1hPWk7KytuPHI7KShpPXQoZVtuXSxuLGUpKSE9bnVsbCYmKG8+aSYmKG89aSksYTxpJiYoYT1pKSk7cmV0dXJuW28sYV19dmFyIFQkPU0oKCk9Pnt9KTt2YXIgcE10LGRNdCxtTXQsQyQ9TSgoKT0+e3BNdD1BcnJheS5wcm90b3R5cGUsZE10PXBNdC5zbGljZSxtTXQ9cE10Lm1hcH0pO2Z1bmN0aW9uIHE1KGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX12YXIgZ010PU0oKCk9Pnt9KTtmdW5jdGlvbiBfTXQoZSl7cmV0dXJuIGV9dmFyIHlNdD1NKCgpPT57fSk7ZnVuY3Rpb24gaFIoZSx0LHIpe2U9K2UsdD0rdCxyPShpPWFyZ3VtZW50cy5sZW5ndGgpPDI/KHQ9ZSxlPTAsMSk6aTwzPzE6K3I7Zm9yKHZhciBuPS0xLGk9TWF0aC5tYXgoMCxNYXRoLmNlaWwoKHQtZSkvcikpfDAsbz1uZXcgQXJyYXkoaSk7KytuPGk7KW9bbl09ZStuKnI7cmV0dXJuIG99dmFyIEEkPU0oKCk9Pnt9KTtmdW5jdGlvbiB2TXQoZSx0LHIpe3ZhciBuLGk9LTEsbyxhLHM7aWYodD0rdCxlPStlLHI9K3IsZT09PXQmJnI+MClyZXR1cm5bZV07aWYoKG49dDxlKSYmKG89ZSxlPXQsdD1vKSwocz1rJChlLHQscikpPT09MHx8IWlzRmluaXRlKHMpKXJldHVybltdO2lmKHM+MClmb3IoZT1NYXRoLmNlaWwoZS9zKSx0PU1hdGguZmxvb3IodC9zKSxhPW5ldyBBcnJheShvPU1hdGguY2VpbCh0LWUrMSkpOysraTxvOylhW2ldPShlK2kpKnM7ZWxzZSBmb3IoZT1NYXRoLmZsb29yKGUqcyksdD1NYXRoLmNlaWwodCpzKSxhPW5ldyBBcnJheShvPU1hdGguY2VpbChlLXQrMSkpOysraTxvOylhW2ldPShlLWkpL3M7cmV0dXJuIG4mJmEucmV2ZXJzZSgpLGF9ZnVuY3Rpb24gayQoZSx0LHIpe3ZhciBuPSh0LWUpL01hdGgubWF4KDAsciksaT1NYXRoLmZsb29yKE1hdGgubG9nKG4pL01hdGguTE4xMCksbz1uL01hdGgucG93KDEwLGkpO3JldHVybiBpPj0wPyhvPj1QJD8xMDpvPj1JJD81Om8+PUwkPzI6MSkqTWF0aC5wb3coMTAsaSk6LU1hdGgucG93KDEwLC1pKS8obz49UCQ/MTA6bz49SSQ/NTpvPj1MJD8yOjEpfWZ1bmN0aW9uIGZSKGUsdCxyKXt2YXIgbj1NYXRoLmFicyh0LWUpL01hdGgubWF4KDAsciksaT1NYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubG9nKG4pL01hdGguTE4xMCkpLG89bi9pO3JldHVybiBvPj1QJD9pKj0xMDpvPj1JJD9pKj01Om8+PUwkJiYoaSo9MiksdDxlPy1pOml9dmFyIFAkLEkkLEwkLFIkPU0oKCk9PntQJD1NYXRoLnNxcnQoNTApLEkkPU1hdGguc3FydCgxMCksTCQ9TWF0aC5zcXJ0KDIpfSk7ZnVuY3Rpb24gcFIoZSl7cmV0dXJuIE1hdGguY2VpbChNYXRoLmxvZyhlLmxlbmd0aCkvTWF0aC5MTjIpKzF9dmFyIE4kPU0oKCk9Pnt9KTtmdW5jdGlvbiB4TXQoKXt2YXIgZT1fTXQsdD11UixyPXBSO2Z1bmN0aW9uIG4oaSl7dmFyIG8sYT1pLmxlbmd0aCxzLGw9bmV3IEFycmF5KGEpO2ZvcihvPTA7bzxhOysrbylsW29dPWUoaVtvXSxvLGkpO3ZhciBjPXQobCksdT1jWzBdLGg9Y1sxXSxmPXIobCx1LGgpO0FycmF5LmlzQXJyYXkoZil8fChmPWZSKHUsaCxmKSxmPWhSKE1hdGguY2VpbCh1L2YpKmYsTWF0aC5mbG9vcihoL2YpKmYsZikpO2Zvcih2YXIgcD1mLmxlbmd0aDtmWzBdPD11OylmLnNoaWZ0KCksLS1wO2Zvcig7ZltwLTFdPmg7KWYucG9wKCksLS1wO3ZhciBkPW5ldyBBcnJheShwKzEpLGc7Zm9yKG89MDtvPD1wOysrbylnPWRbb109W10sZy54MD1vPjA/ZltvLTFdOnUsZy54MT1vPHA/ZltvXTpoO2ZvcihvPTA7bzxhOysrbylzPWxbb10sdTw9cyYmczw9aCYmZFtzUihmLHMsMCxwKV0ucHVzaChpW29dKTtyZXR1cm4gZH1yZXR1cm4gbi52YWx1ZT1mdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10eXBlb2YgaT09ImZ1bmN0aW9uIj9pOnE1KGkpLG4pOmV9LG4uZG9tYWluPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXR5cGVvZiBpPT0iZnVuY3Rpb24iP2k6cTUoW2lbMF0saVsxXV0pLG4pOnR9LG4udGhyZXNob2xkcz1mdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10eXBlb2YgaT09ImZ1bmN0aW9uIj9pOkFycmF5LmlzQXJyYXkoaSk/cTUoZE10LmNhbGwoaSkpOnE1KGkpLG4pOnJ9LG59dmFyIGJNdD1NKCgpPT57QyQoKTtiJCgpO2dNdCgpO1QkKCk7eU10KCk7QSQoKTtSJCgpO04kKCl9KTtmdW5jdGlvbiBteShlLHQscil7aWYocj09bnVsbCYmKHI9c2wpLCEhKG49ZS5sZW5ndGgpKXtpZigodD0rdCk8PTB8fG48MilyZXR1cm4rcihlWzBdLDAsZSk7aWYodD49MSlyZXR1cm4rcihlW24tMV0sbi0xLGUpO3ZhciBuLGk9KG4tMSkqdCxvPU1hdGguZmxvb3IoaSksYT0rcihlW29dLG8sZSkscz0rcihlW28rMV0sbysxLGUpO3JldHVybiBhKyhzLWEpKihpLW8pfX12YXIgZFI9TSgoKT0+e2wyKCl9KTtmdW5jdGlvbiB3TXQoZSx0LHIpe3JldHVybiBlPW1NdC5jYWxsKGUsc2wpLnNvcnQoX2MpLE1hdGguY2VpbCgoci10KS8oMioobXkoZSwuNzUpLW15KGUsLjI1KSkqTWF0aC5wb3coZS5sZW5ndGgsLTEvMykpKX12YXIgU010PU0oKCk9PntDJCgpO2R5KCk7bDIoKTtkUigpfSk7ZnVuY3Rpb24gTU10KGUsdCxyKXtyZXR1cm4gTWF0aC5jZWlsKChyLXQpLygzLjUqY1IoZSkqTWF0aC5wb3coZS5sZW5ndGgsLTEvMykpKX12YXIgRU10PU0oKCk9PntFJCgpfSk7ZnVuY3Rpb24gVE10KGUsdCl7dmFyIHI9ZS5sZW5ndGgsbj0tMSxpLG87aWYodD09bnVsbCl7Zm9yKDsrK248cjspaWYoKGk9ZVtuXSkhPW51bGwmJmk+PWkpZm9yKG89aTsrK248cjspKGk9ZVtuXSkhPW51bGwmJmk+byYmKG89aSl9ZWxzZSBmb3IoOysrbjxyOylpZigoaT10KGVbbl0sbixlKSkhPW51bGwmJmk+PWkpZm9yKG89aTsrK248cjspKGk9dChlW25dLG4sZSkpIT1udWxsJiZpPm8mJihvPWkpO3JldHVybiBvfXZhciBDTXQ9TSgoKT0+e30pO2Z1bmN0aW9uIEFNdChlLHQpe3ZhciByPWUubGVuZ3RoLG49cixpPS0xLG8sYT0wO2lmKHQ9PW51bGwpZm9yKDsrK2k8cjspaXNOYU4obz1zbChlW2ldKSk/LS1uOmErPW87ZWxzZSBmb3IoOysraTxyOylpc05hTihvPXNsKHQoZVtpXSxpLGUpKSk/LS1uOmErPW87aWYobilyZXR1cm4gYS9ufXZhciBQTXQ9TSgoKT0+e2wyKCl9KTtmdW5jdGlvbiBJTXQoZSx0KXt2YXIgcj1lLmxlbmd0aCxuPS0xLGksbz1bXTtpZih0PT1udWxsKWZvcig7KytuPHI7KWlzTmFOKGk9c2woZVtuXSkpfHxvLnB1c2goaSk7ZWxzZSBmb3IoOysrbjxyOylpc05hTihpPXNsKHQoZVtuXSxuLGUpKSl8fG8ucHVzaChpKTtyZXR1cm4gbXkoby5zb3J0KF9jKSwuNSl9dmFyIExNdD1NKCgpPT57ZHkoKTtsMigpO2RSKCl9KTtmdW5jdGlvbiBrTXQoZSl7Zm9yKHZhciB0PWUubGVuZ3RoLHIsbj0tMSxpPTAsbyxhOysrbjx0OylpKz1lW25dLmxlbmd0aDtmb3Iobz1uZXcgQXJyYXkoaSk7LS10Pj0wOylmb3IoYT1lW3RdLHI9YS5sZW5ndGg7LS1yPj0wOylvWy0taV09YVtyXTtyZXR1cm4gb312YXIgUk10PU0oKCk9Pnt9KTtmdW5jdGlvbiBtUihlLHQpe3ZhciByPWUubGVuZ3RoLG49LTEsaSxvO2lmKHQ9PW51bGwpe2Zvcig7KytuPHI7KWlmKChpPWVbbl0pIT1udWxsJiZpPj1pKWZvcihvPWk7KytuPHI7KShpPWVbbl0pIT1udWxsJiZvPmkmJihvPWkpfWVsc2UgZm9yKDsrK248cjspaWYoKGk9dChlW25dLG4sZSkpIT1udWxsJiZpPj1pKWZvcihvPWk7KytuPHI7KShpPXQoZVtuXSxuLGUpKSE9bnVsbCYmbz5pJiYobz1pKTtyZXR1cm4gb312YXIgRCQ9TSgoKT0+e30pO2Z1bmN0aW9uIE5NdChlLHQpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPW5ldyBBcnJheShyKTtyLS07KW5bcl09ZVt0W3JdXTtyZXR1cm4gbn12YXIgRE10PU0oKCk9Pnt9KTtmdW5jdGlvbiBPTXQoZSx0KXtpZighIShyPWUubGVuZ3RoKSl7dmFyIHIsbj0wLGk9MCxvLGE9ZVtpXTtmb3IodD09bnVsbCYmKHQ9X2MpOysrbjxyOykodChvPWVbbl0sYSk8MHx8dChhLGEpIT09MCkmJihhPW8saT1uKTtpZih0KGEsYSk9PT0wKXJldHVybiBpfX12YXIgek10PU0oKCk9PntkeSgpfSk7ZnVuY3Rpb24gRk10KGUsdCxyKXtmb3IodmFyIG49KHI9PW51bGw/ZS5sZW5ndGg6ciktKHQ9dD09bnVsbD8wOit0KSxpLG87bjspbz1NYXRoLnJhbmRvbSgpKm4tLXwwLGk9ZVtuK3RdLGVbbit0XT1lW28rdF0sZVtvK3RdPWk7cmV0dXJuIGV9dmFyIEJNdD1NKCgpPT57fSk7ZnVuY3Rpb24gSE10KGUsdCl7dmFyIHI9ZS5sZW5ndGgsbj0tMSxpLG89MDtpZih0PT1udWxsKWZvcig7KytuPHI7KShpPStlW25dKSYmKG8rPWkpO2Vsc2UgZm9yKDsrK248cjspKGk9K3QoZVtuXSxuLGUpKSYmKG8rPWkpO3JldHVybiBvfXZhciBWTXQ9TSgoKT0+e30pO2Z1bmN0aW9uIGdSKGUpe2lmKCEobz1lLmxlbmd0aCkpcmV0dXJuW107Zm9yKHZhciB0PS0xLHI9bVIoZSxrNWUpLG49bmV3IEFycmF5KHIpOysrdDxyOylmb3IodmFyIGk9LTEsbyxhPW5bdF09bmV3IEFycmF5KG8pOysraTxvOylhW2ldPWVbaV1bdF07cmV0dXJuIG59ZnVuY3Rpb24gazVlKGUpe3JldHVybiBlLmxlbmd0aH12YXIgTyQ9TSgoKT0+e0QkKCl9KTtmdW5jdGlvbiBVTXQoKXtyZXR1cm4gZ1IoYXJndW1lbnRzKX12YXIgcU10PU0oKCk9PntPJCgpfSk7dmFyIEdNdD1NKCgpPT57YiQoKTtkeSgpO3YkKCk7dU10KCk7Zk10KCk7RSQoKTtUJCgpO2JNdCgpO1NNdCgpO0VNdCgpO04kKCk7Q010KCk7UE10KCk7TE10KCk7Uk10KCk7RCQoKTtTJCgpO0RNdCgpO2RSKCk7QSQoKTt6TXQoKTtCTXQoKTtWTXQoKTtSJCgpO08kKCk7TSQoKTtxTXQoKX0pO3ZhciBfUixXTXQ9TSgoKT0+e19SPUFycmF5LnByb3RvdHlwZS5zbGljZX0pO2Z1bmN0aW9uIFlNdChlKXtyZXR1cm4gZX12YXIgak10PU0oKCk9Pnt9KTtmdW5jdGlvbiBSNWUoZSl7cmV0dXJuInRyYW5zbGF0ZSgiKyhlKy41KSsiLDApIn1mdW5jdGlvbiBONWUoZSl7cmV0dXJuInRyYW5zbGF0ZSgwLCIrKGUrLjUpKyIpIn1mdW5jdGlvbiBENWUoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybitlKHQpfX1mdW5jdGlvbiBPNWUoZSl7dmFyIHQ9TWF0aC5tYXgoMCxlLmJhbmR3aWR0aCgpLTEpLzI7cmV0dXJuIGUucm91bmQoKSYmKHQ9TWF0aC5yb3VuZCh0KSksZnVuY3Rpb24ocil7cmV0dXJuK2UocikrdH19ZnVuY3Rpb24gejVlKCl7cmV0dXJuIXRoaXMuX19heGlzfWZ1bmN0aW9uIHhSKGUsdCl7dmFyIHI9W10sbj1udWxsLGk9bnVsbCxvPTYsYT02LHM9MyxsPWU9PT15Unx8ZT09PUc1Py0xOjEsYz1lPT09RzV8fGU9PT12Uj8ieCI6InkiLHU9ZT09PXlSfHxlPT09eiQ/UjVlOk41ZTtmdW5jdGlvbiBoKGYpe3ZhciBwPW49PW51bGw/dC50aWNrcz90LnRpY2tzLmFwcGx5KHQscik6dC5kb21haW4oKTpuLGQ9aT09bnVsbD90LnRpY2tGb3JtYXQ/dC50aWNrRm9ybWF0LmFwcGx5KHQscik6WU10OmksZz1NYXRoLm1heChvLDApK3MsXz10LnJhbmdlKCkseT0rX1swXSsuNSx4PStfW18ubGVuZ3RoLTFdKy41LGI9KHQuYmFuZHdpZHRoP081ZTpENWUpKHQuY29weSgpKSxTPWYuc2VsZWN0aW9uP2Yuc2VsZWN0aW9uKCk6ZixDPVMuc2VsZWN0QWxsKCIuZG9tYWluIikuZGF0YShbbnVsbF0pLFA9Uy5zZWxlY3RBbGwoIi50aWNrIikuZGF0YShwLHQpLm9yZGVyKCksaz1QLmV4aXQoKSxPPVAuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsInRpY2siKSxEPVAuc2VsZWN0KCJsaW5lIiksQj1QLnNlbGVjdCgidGV4dCIpO0M9Qy5tZXJnZShDLmVudGVyKCkuaW5zZXJ0KCJwYXRoIiwiLnRpY2siKS5hdHRyKCJjbGFzcyIsImRvbWFpbiIpLmF0dHIoInN0cm9rZSIsIiMwMDAiKSksUD1QLm1lcmdlKE8pLEQ9RC5tZXJnZShPLmFwcGVuZCgibGluZSIpLmF0dHIoInN0cm9rZSIsIiMwMDAiKS5hdHRyKGMrIjIiLGwqbykpLEI9Qi5tZXJnZShPLmFwcGVuZCgidGV4dCIpLmF0dHIoImZpbGwiLCIjMDAwIikuYXR0cihjLGwqZykuYXR0cigiZHkiLGU9PT15Uj8iMGVtIjplPT09eiQ/IjAuNzFlbSI6IjAuMzJlbSIpKSxmIT09UyYmKEM9Qy50cmFuc2l0aW9uKGYpLFA9UC50cmFuc2l0aW9uKGYpLEQ9RC50cmFuc2l0aW9uKGYpLEI9Qi50cmFuc2l0aW9uKGYpLGs9ay50cmFuc2l0aW9uKGYpLmF0dHIoIm9wYWNpdHkiLFhNdCkuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbihJKXtyZXR1cm4gaXNGaW5pdGUoST1iKEkpKT91KEkpOnRoaXMuZ2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iKX0pLE8uYXR0cigib3BhY2l0eSIsWE10KS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKEkpe3ZhciBMPXRoaXMucGFyZW50Tm9kZS5fX2F4aXM7cmV0dXJuIHUoTCYmaXNGaW5pdGUoTD1MKEkpKT9MOmIoSSkpfSkpLGsucmVtb3ZlKCksQy5hdHRyKCJkIixlPT09RzV8fGU9PXZSPyJNIitsKmErIiwiK3krIkgwLjVWIit4KyJIIitsKmE6Ik0iK3krIiwiK2wqYSsiVjAuNUgiK3grIlYiK2wqYSksUC5hdHRyKCJvcGFjaXR5IiwxKS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKEkpe3JldHVybiB1KGIoSSkpfSksRC5hdHRyKGMrIjIiLGwqbyksQi5hdHRyKGMsbCpnKS50ZXh0KGQpLFMuZmlsdGVyKHo1ZSkuYXR0cigiZmlsbCIsIm5vbmUiKS5hdHRyKCJmb250LXNpemUiLDEwKS5hdHRyKCJmb250LWZhbWlseSIsInNhbnMtc2VyaWYiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsZT09PXZSPyJzdGFydCI6ZT09PUc1PyJlbmQiOiJtaWRkbGUiKSxTLmVhY2goZnVuY3Rpb24oKXt0aGlzLl9fYXhpcz1ifSl9cmV0dXJuIGguc2NhbGU9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZixoKTp0fSxoLnRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHI9X1IuY2FsbChhcmd1bWVudHMpLGh9LGgudGlja0FyZ3VtZW50cz1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1mPT1udWxsP1tdOl9SLmNhbGwoZiksaCk6ci5zbGljZSgpfSxoLnRpY2tWYWx1ZXM9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49Zj09bnVsbD9udWxsOl9SLmNhbGwoZiksaCk6biYmbi5zbGljZSgpfSxoLnRpY2tGb3JtYXQ9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ZixoKTppfSxoLnRpY2tTaXplPWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPWE9K2YsaCk6b30saC50aWNrU2l6ZUlubmVyPWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPStmLGgpOm99LGgudGlja1NpemVPdXRlcj1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0rZixoKTphfSxoLnRpY2tQYWRkaW5nPWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPStmLGgpOnN9LGh9ZnVuY3Rpb24gJE10KGUpe3JldHVybiB4Uih5UixlKX1mdW5jdGlvbiBLTXQoZSl7cmV0dXJuIHhSKHZSLGUpfWZ1bmN0aW9uIFpNdChlKXtyZXR1cm4geFIoeiQsZSl9ZnVuY3Rpb24gSk10KGUpe3JldHVybiB4UihHNSxlKX12YXIgeVIsdlIseiQsRzUsWE10LFFNdD1NKCgpPT57V010KCk7ak10KCk7eVI9MSx2Uj0yLHokPTMsRzU9NCxYTXQ9MWUtNn0pO3ZhciB0RXQ9TSgoKT0+e1FNdCgpfSk7ZnVuY3Rpb24gckV0KCl7Zm9yKHZhciBlPTAsdD1hcmd1bWVudHMubGVuZ3RoLHI9e30sbjtlPHQ7KytlKXtpZighKG49YXJndW1lbnRzW2VdKyIiKXx8biBpbiByfHwvW1xzLl0vLnRlc3QobikpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIHR5cGU6ICIrbik7cltuXT1bXX1yZXR1cm4gbmV3IGJSKHIpfWZ1bmN0aW9uIGJSKGUpe3RoaXMuXz1lfWZ1bmN0aW9uIEI1ZShlLHQpe3JldHVybiBlLnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoZnVuY3Rpb24ocil7dmFyIG49IiIsaT1yLmluZGV4T2YoIi4iKTtpZihpPj0wJiYobj1yLnNsaWNlKGkrMSkscj1yLnNsaWNlKDAsaSkpLHImJiF0Lmhhc093blByb3BlcnR5KHIpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3IpO3JldHVybnt0eXBlOnIsbmFtZTpufX0pfWZ1bmN0aW9uIEg1ZShlLHQpe2Zvcih2YXIgcj0wLG49ZS5sZW5ndGgsaTtyPG47KytyKWlmKChpPWVbcl0pLm5hbWU9PT10KXJldHVybiBpLnZhbHVlfWZ1bmN0aW9uIGVFdChlLHQscil7Zm9yKHZhciBuPTAsaT1lLmxlbmd0aDtuPGk7KytuKWlmKGVbbl0ubmFtZT09PXQpe2Vbbl09RjVlLGU9ZS5zbGljZSgwLG4pLmNvbmNhdChlLnNsaWNlKG4rMSkpO2JyZWFrfXJldHVybiByIT1udWxsJiZlLnB1c2goe25hbWU6dCx2YWx1ZTpyfSksZX12YXIgRjVlLFc1LG5FdD1NKCgpPT57RjVlPXt2YWx1ZTpmdW5jdGlvbigpe319O2JSLnByb3RvdHlwZT1yRXQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpiUixvbjpmdW5jdGlvbihlLHQpe3ZhciByPXRoaXMuXyxuPUI1ZShlKyIiLHIpLGksbz0tMSxhPW4ubGVuZ3RoO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKDsrK288YTspaWYoKGk9KGU9bltvXSkudHlwZSkmJihpPUg1ZShyW2ldLGUubmFtZSkpKXJldHVybiBpO3JldHVybn1pZih0IT1udWxsJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrdCk7Zm9yKDsrK288YTspaWYoaT0oZT1uW29dKS50eXBlKXJbaV09ZUV0KHJbaV0sZS5uYW1lLHQpO2Vsc2UgaWYodD09bnVsbClmb3IoaSBpbiByKXJbaV09ZUV0KHJbaV0sZS5uYW1lLG51bGwpO3JldHVybiB0aGlzfSxjb3B5OmZ1bmN0aW9uKCl7dmFyIGU9e30sdD10aGlzLl87Zm9yKHZhciByIGluIHQpZVtyXT10W3JdLnNsaWNlKCk7cmV0dXJuIG5ldyBiUihlKX0sY2FsbDpmdW5jdGlvbihlLHQpe2lmKChpPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIHI9bmV3IEFycmF5KGkpLG49MCxpLG87bjxpOysrbilyW25dPWFyZ3VtZW50c1tuKzJdO2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkoZSkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrZSk7Zm9yKG89dGhpcy5fW2VdLG49MCxpPW8ubGVuZ3RoO248aTsrK24pb1tuXS52YWx1ZS5hcHBseSh0LHIpfSxhcHBseTpmdW5jdGlvbihlLHQscil7aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eShlKSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIitlKTtmb3IodmFyIG49dGhpcy5fW2VdLGk9MCxvPW4ubGVuZ3RoO2k8bzsrK2kpbltpXS52YWx1ZS5hcHBseSh0LHIpfX07VzU9ckV0fSk7dmFyIEYkPU0oKCk9PntuRXQoKX0pO3ZhciB3UixCJCxIJD1NKCgpPT57d1I9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLEIkPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDp3Uix4bGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIseG1sOiJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyJ9fSk7ZnVuY3Rpb24gVXAoZSl7dmFyIHQ9ZSs9IiIscj10LmluZGV4T2YoIjoiKTtyZXR1cm4gcj49MCYmKHQ9ZS5zbGljZSgwLHIpKSE9PSJ4bWxucyImJihlPWUuc2xpY2UocisxKSksQiQuaGFzT3duUHJvcGVydHkodCk/e3NwYWNlOkIkW3RdLGxvY2FsOmV9OmV9dmFyIFNSPU0oKCk9PntIJCgpfSk7ZnVuY3Rpb24gVjVlKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMub3duZXJEb2N1bWVudCxyPXRoaXMubmFtZXNwYWNlVVJJO3JldHVybiByPT09d1ImJnQuZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PXdSP3QuY3JlYXRlRWxlbWVudChlKTp0LmNyZWF0ZUVsZW1lbnROUyhyLGUpfX1mdW5jdGlvbiBVNWUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZS5zcGFjZSxlLmxvY2FsKX19ZnVuY3Rpb24gTVIoZSl7dmFyIHQ9VXAoZSk7cmV0dXJuKHQubG9jYWw/VTVlOlY1ZSkodCl9dmFyIFYkPU0oKCk9PntTUigpO0gkKCl9KTtmdW5jdGlvbiBxNWUoKXt9ZnVuY3Rpb24gZ3koZSl7cmV0dXJuIGU9PW51bGw/cTVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvcihlKX19dmFyIEVSPU0oKCk9Pnt9KTtmdW5jdGlvbiBpRXQoZSl7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPWd5KGUpKTtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9dC5sZW5ndGgsbj1uZXcgQXJyYXkociksaT0wO2k8cjsrK2kpZm9yKHZhciBvPXRbaV0sYT1vLmxlbmd0aCxzPW5baV09bmV3IEFycmF5KGEpLGwsYyx1PTA7dTxhOysrdSkobD1vW3VdKSYmKGM9ZS5jYWxsKGwsbC5fX2RhdGFfXyx1LG8pKSYmKCJfX2RhdGFfXyJpbiBsJiYoYy5fX2RhdGFfXz1sLl9fZGF0YV9fKSxzW3VdPWMpO3JldHVybiBuZXcgZmkobix0aGlzLl9wYXJlbnRzKX12YXIgb0V0PU0oKCk9Pnt3dSgpO0VSKCl9KTtmdW5jdGlvbiBHNWUoKXtyZXR1cm5bXX1mdW5jdGlvbiBZNShlKXtyZXR1cm4gZT09bnVsbD9HNWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKGUpfX12YXIgVSQ9TSgoKT0+e30pO2Z1bmN0aW9uIGFFdChlKXt0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmKGU9WTUoZSkpO2Zvcih2YXIgdD10aGlzLl9ncm91cHMscj10Lmxlbmd0aCxuPVtdLGk9W10sbz0wO288cjsrK28pZm9yKHZhciBhPXRbb10scz1hLmxlbmd0aCxsLGM9MDtjPHM7KytjKShsPWFbY10pJiYobi5wdXNoKGUuY2FsbChsLGwuX19kYXRhX18sYyxhKSksaS5wdXNoKGwpKTtyZXR1cm4gbmV3IGZpKG4saSl9dmFyIHNFdD1NKCgpPT57d3UoKTtVJCgpfSk7ZnVuY3Rpb24gajUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0Y2hlcyhlKX19dmFyIHEkPU0oKCk9Pnt9KTtmdW5jdGlvbiBsRXQoZSl7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPWo1KGUpKTtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9dC5sZW5ndGgsbj1uZXcgQXJyYXkociksaT0wO2k8cjsrK2kpZm9yKHZhciBvPXRbaV0sYT1vLmxlbmd0aCxzPW5baV09W10sbCxjPTA7YzxhOysrYykobD1vW2NdKSYmZS5jYWxsKGwsbC5fX2RhdGFfXyxjLG8pJiZzLnB1c2gobCk7cmV0dXJuIG5ldyBmaShuLHRoaXMuX3BhcmVudHMpfXZhciBjRXQ9TSgoKT0+e3d1KCk7cSQoKX0pO2Z1bmN0aW9uIFRSKGUpe3JldHVybiBuZXcgQXJyYXkoZS5sZW5ndGgpfXZhciBHJD1NKCgpPT57fSk7ZnVuY3Rpb24gdUV0KCl7cmV0dXJuIG5ldyBmaSh0aGlzLl9lbnRlcnx8dGhpcy5fZ3JvdXBzLm1hcChUUiksdGhpcy5fcGFyZW50cyl9ZnVuY3Rpb24gWDUoZSx0KXt0aGlzLm93bmVyRG9jdW1lbnQ9ZS5vd25lckRvY3VtZW50LHRoaXMubmFtZXNwYWNlVVJJPWUubmFtZXNwYWNlVVJJLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wYXJlbnQ9ZSx0aGlzLl9fZGF0YV9fPXR9dmFyIFckPU0oKCk9PntHJCgpO3d1KCk7WDUucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpYNSxhcHBlbmRDaGlsZDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZShlLHRoaXMuX25leHQpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZShlLHQpfSxxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvcihlKX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZSl9fX0pO2Z1bmN0aW9uIGhFdChlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZX19dmFyIGZFdD1NKCgpPT57fSk7ZnVuY3Rpb24gVzVlKGUsdCxyLG4saSxvKXtmb3IodmFyIGE9MCxzLGw9dC5sZW5ndGgsYz1vLmxlbmd0aDthPGM7KythKShzPXRbYV0pPyhzLl9fZGF0YV9fPW9bYV0sblthXT1zKTpyW2FdPW5ldyBYNShlLG9bYV0pO2Zvcig7YTxsOysrYSkocz10W2FdKSYmKGlbYV09cyl9ZnVuY3Rpb24gWTVlKGUsdCxyLG4saSxvLGEpe3ZhciBzLGwsYz17fSx1PXQubGVuZ3RoLGg9by5sZW5ndGgsZj1uZXcgQXJyYXkodSkscDtmb3Iocz0wO3M8dTsrK3MpKGw9dFtzXSkmJihmW3NdPXA9cEV0K2EuY2FsbChsLGwuX19kYXRhX18scyx0KSxwIGluIGM/aVtzXT1sOmNbcF09bCk7Zm9yKHM9MDtzPGg7KytzKXA9cEV0K2EuY2FsbChlLG9bc10scyxvKSwobD1jW3BdKT8obltzXT1sLGwuX19kYXRhX189b1tzXSxjW3BdPW51bGwpOnJbc109bmV3IFg1KGUsb1tzXSk7Zm9yKHM9MDtzPHU7KytzKShsPXRbc10pJiZjW2Zbc11dPT09bCYmKGlbc109bCl9ZnVuY3Rpb24gZEV0KGUsdCl7aWYoIWUpcmV0dXJuIHA9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxjPS0xLHRoaXMuZWFjaChmdW5jdGlvbihQKXtwWysrY109UH0pLHA7dmFyIHI9dD9ZNWU6VzVlLG49dGhpcy5fcGFyZW50cyxpPXRoaXMuX2dyb3Vwczt0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmKGU9aEV0KGUpKTtmb3IodmFyIG89aS5sZW5ndGgsYT1uZXcgQXJyYXkobykscz1uZXcgQXJyYXkobyksbD1uZXcgQXJyYXkobyksYz0wO2M8bzsrK2Mpe3ZhciB1PW5bY10saD1pW2NdLGY9aC5sZW5ndGgscD1lLmNhbGwodSx1JiZ1Ll9fZGF0YV9fLGMsbiksZD1wLmxlbmd0aCxnPXNbY109bmV3IEFycmF5KGQpLF89YVtjXT1uZXcgQXJyYXkoZCkseT1sW2NdPW5ldyBBcnJheShmKTtyKHUsaCxnLF8seSxwLHQpO2Zvcih2YXIgeD0wLGI9MCxTLEM7eDxkOysreClpZihTPWdbeF0pe2Zvcih4Pj1iJiYoYj14KzEpOyEoQz1fW2JdKSYmKytiPGQ7KTtTLl9uZXh0PUN8fG51bGx9fXJldHVybiBhPW5ldyBmaShhLG4pLGEuX2VudGVyPXMsYS5fZXhpdD1sLGF9dmFyIHBFdCxtRXQ9TSgoKT0+e3d1KCk7VyQoKTtmRXQoKTtwRXQ9IiQifSk7ZnVuY3Rpb24gZ0V0KCl7cmV0dXJuIG5ldyBmaSh0aGlzLl9leGl0fHx0aGlzLl9ncm91cHMubWFwKFRSKSx0aGlzLl9wYXJlbnRzKX12YXIgX0V0PU0oKCk9PntHJCgpO3d1KCl9KTtmdW5jdGlvbiB5RXQoZSx0LHIpe3ZhciBuPXRoaXMuZW50ZXIoKSxpPXRoaXMsbz10aGlzLmV4aXQoKTtyZXR1cm4gbj10eXBlb2YgZT09ImZ1bmN0aW9uIj9lKG4pOm4uYXBwZW5kKGUrIiIpLHQhPW51bGwmJihpPXQoaSkpLHI9PW51bGw/by5yZW1vdmUoKTpyKG8pLG4mJmk/bi5tZXJnZShpKS5vcmRlcigpOml9dmFyIHZFdD1NKCgpPT57fSk7ZnVuY3Rpb24geEV0KGUpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMscj1lLl9ncm91cHMsbj10Lmxlbmd0aCxpPXIubGVuZ3RoLG89TWF0aC5taW4obixpKSxhPW5ldyBBcnJheShuKSxzPTA7czxvOysrcylmb3IodmFyIGw9dFtzXSxjPXJbc10sdT1sLmxlbmd0aCxoPWFbc109bmV3IEFycmF5KHUpLGYscD0wO3A8dTsrK3ApKGY9bFtwXXx8Y1twXSkmJihoW3BdPWYpO2Zvcig7czxuOysrcylhW3NdPXRbc107cmV0dXJuIG5ldyBmaShhLHRoaXMuX3BhcmVudHMpfXZhciBiRXQ9TSgoKT0+e3d1KCl9KTtmdW5jdGlvbiB3RXQoKXtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLHQ9LTEscj1lLmxlbmd0aDsrK3Q8cjspZm9yKHZhciBuPWVbdF0saT1uLmxlbmd0aC0xLG89bltpXSxhOy0taT49MDspKGE9bltpXSkmJihvJiZhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG8pXjQmJm8ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxvKSxvPWEpO3JldHVybiB0aGlzfXZhciBTRXQ9TSgoKT0+e30pO2Z1bmN0aW9uIE1FdChlKXtlfHwoZT1qNWUpO2Z1bmN0aW9uIHQoaCxmKXtyZXR1cm4gaCYmZj9lKGguX19kYXRhX18sZi5fX2RhdGFfXyk6IWgtIWZ9Zm9yKHZhciByPXRoaXMuX2dyb3VwcyxuPXIubGVuZ3RoLGk9bmV3IEFycmF5KG4pLG89MDtvPG47KytvKXtmb3IodmFyIGE9cltvXSxzPWEubGVuZ3RoLGw9aVtvXT1uZXcgQXJyYXkocyksYyx1PTA7dTxzOysrdSkoYz1hW3VdKSYmKGxbdV09Yyk7bC5zb3J0KHQpfXJldHVybiBuZXcgZmkoaSx0aGlzLl9wYXJlbnRzKS5vcmRlcigpfWZ1bmN0aW9uIGo1ZShlLHQpe3JldHVybiBlPHQ/LTE6ZT50PzE6ZT49dD8wOk5hTn12YXIgRUV0PU0oKCk9Pnt3dSgpfSk7ZnVuY3Rpb24gVEV0KCl7dmFyIGU9YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyxlLmFwcGx5KG51bGwsYXJndW1lbnRzKSx0aGlzfXZhciBDRXQ9TSgoKT0+e30pO2Z1bmN0aW9uIEFFdCgpe3ZhciBlPW5ldyBBcnJheSh0aGlzLnNpemUoKSksdD0tMTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZVsrK3RdPXRoaXN9KSxlfXZhciBQRXQ9TSgoKT0+e30pO2Z1bmN0aW9uIElFdCgpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsdD0wLHI9ZS5sZW5ndGg7dDxyOysrdClmb3IodmFyIG49ZVt0XSxpPTAsbz1uLmxlbmd0aDtpPG87KytpKXt2YXIgYT1uW2ldO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9dmFyIExFdD1NKCgpPT57fSk7ZnVuY3Rpb24ga0V0KCl7dmFyIGU9MDtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7KytlfSksZX12YXIgUkV0PU0oKCk9Pnt9KTtmdW5jdGlvbiBORXQoKXtyZXR1cm4hdGhpcy5ub2RlKCl9dmFyIERFdD1NKCgpPT57fSk7ZnVuY3Rpb24gT0V0KGUpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMscj0wLG49dC5sZW5ndGg7cjxuOysrcilmb3IodmFyIGk9dFtyXSxvPTAsYT1pLmxlbmd0aCxzO288YTsrK28pKHM9aVtvXSkmJmUuY2FsbChzLHMuX19kYXRhX18sbyxpKTtyZXR1cm4gdGhpc312YXIgekV0PU0oKCk9Pnt9KTtmdW5jdGlvbiBYNWUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUoZSl9fWZ1bmN0aW9uICQ1ZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCl9fWZ1bmN0aW9uIEs1ZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKGUsdCl9fWZ1bmN0aW9uIFo1ZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsLHQpfX1mdW5jdGlvbiBKNWUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyPT1udWxsP3RoaXMucmVtb3ZlQXR0cmlidXRlKGUpOnRoaXMuc2V0QXR0cmlidXRlKGUscil9fWZ1bmN0aW9uIFE1ZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciByPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3I9PW51bGw/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsLHIpfX1mdW5jdGlvbiBGRXQoZSx0KXt2YXIgcj1VcChlKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBuPXRoaXMubm9kZSgpO3JldHVybiByLmxvY2FsP24uZ2V0QXR0cmlidXRlTlMoci5zcGFjZSxyLmxvY2FsKTpuLmdldEF0dHJpYnV0ZShyKX1yZXR1cm4gdGhpcy5lYWNoKCh0PT1udWxsP3IubG9jYWw/JDVlOlg1ZTp0eXBlb2YgdD09ImZ1bmN0aW9uIj9yLmxvY2FsP1E1ZTpKNWU6ci5sb2NhbD9aNWU6SzVlKShyLHQpKX12YXIgQkV0PU0oKCk9PntTUigpfSk7ZnVuY3Rpb24gQ1IoZSl7cmV0dXJuIGUub3duZXJEb2N1bWVudCYmZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHxlLmRvY3VtZW50JiZlfHxlLmRlZmF1bHRWaWV3fXZhciBZJD1NKCgpPT57fSk7ZnVuY3Rpb24gdFRlKGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoZSl9fWZ1bmN0aW9uIGVUZShlLHQscil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eShlLHQscil9fWZ1bmN0aW9uIHJUZShlLHQscil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bj09bnVsbD90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KGUpOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkoZSxuLHIpfX1mdW5jdGlvbiBIRXQoZSx0LHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKCh0PT1udWxsP3RUZTp0eXBlb2YgdD09ImZ1bmN0aW9uIj9yVGU6ZVRlKShlLHQscj09bnVsbD8iIjpyKSk6c2codGhpcy5ub2RlKCksZSl9ZnVuY3Rpb24gc2coZSx0KXtyZXR1cm4gZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHQpfHxDUihlKS5nZXRDb21wdXRlZFN0eWxlKGUsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSh0KX12YXIgaiQ9TSgoKT0+e1kkKCl9KTtmdW5jdGlvbiBuVGUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbZV19fWZ1bmN0aW9uIGlUZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXNbZV09dH19ZnVuY3Rpb24gb1RlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cj09bnVsbD9kZWxldGUgdGhpc1tlXTp0aGlzW2VdPXJ9fWZ1bmN0aW9uIFZFdChlLHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKCh0PT1udWxsP25UZTp0eXBlb2YgdD09ImZ1bmN0aW9uIj9vVGU6aVRlKShlLHQpKTp0aGlzLm5vZGUoKVtlXX12YXIgVUV0PU0oKCk9Pnt9KTtmdW5jdGlvbiBxRXQoZSl7cmV0dXJuIGUudHJpbSgpLnNwbGl0KC9efFxzKy8pfWZ1bmN0aW9uIFgkKGUpe3JldHVybiBlLmNsYXNzTGlzdHx8bmV3IEdFdChlKX1mdW5jdGlvbiBHRXQoZSl7dGhpcy5fbm9kZT1lLHRoaXMuX25hbWVzPXFFdChlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfWZ1bmN0aW9uIFdFdChlLHQpe2Zvcih2YXIgcj1YJChlKSxuPS0xLGk9dC5sZW5ndGg7KytuPGk7KXIuYWRkKHRbbl0pfWZ1bmN0aW9uIFlFdChlLHQpe2Zvcih2YXIgcj1YJChlKSxuPS0xLGk9dC5sZW5ndGg7KytuPGk7KXIucmVtb3ZlKHRbbl0pfWZ1bmN0aW9uIGFUZShlKXtyZXR1cm4gZnVuY3Rpb24oKXtXRXQodGhpcyxlKX19ZnVuY3Rpb24gc1RlKGUpe3JldHVybiBmdW5jdGlvbigpe1lFdCh0aGlzLGUpfX1mdW5jdGlvbiBsVGUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXsodC5hcHBseSh0aGlzLGFyZ3VtZW50cyk/V0V0OllFdCkodGhpcyxlKX19ZnVuY3Rpb24gakV0KGUsdCl7dmFyIHI9cUV0KGUrIiIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBuPVgkKHRoaXMubm9kZSgpKSxpPS0xLG89ci5sZW5ndGg7KytpPG87KWlmKCFuLmNvbnRhaW5zKHJbaV0pKXJldHVybiExO3JldHVybiEwfXJldHVybiB0aGlzLmVhY2goKHR5cGVvZiB0PT0iZnVuY3Rpb24iP2xUZTp0P2FUZTpzVGUpKHIsdCkpfXZhciBYRXQ9TSgoKT0+e0dFdC5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9uYW1lcy5pbmRleE9mKGUpO3Q8MCYmKHRoaXMuX25hbWVzLnB1c2goZSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0scmVtb3ZlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX25hbWVzLmluZGV4T2YoZSk7dD49MCYmKHRoaXMuX25hbWVzLnNwbGljZSh0LDEpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LGNvbnRhaW5zOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9uYW1lcy5pbmRleE9mKGUpPj0wfX19KTtmdW5jdGlvbiBjVGUoKXt0aGlzLnRleHRDb250ZW50PSIifWZ1bmN0aW9uIHVUZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PWV9fWZ1bmN0aW9uIGhUZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnRleHRDb250ZW50PXQ9PW51bGw/IiI6dH19ZnVuY3Rpb24gJEV0KGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChlPT1udWxsP2NUZToodHlwZW9mIGU9PSJmdW5jdGlvbiI/aFRlOnVUZSkoZSkpOnRoaXMubm9kZSgpLnRleHRDb250ZW50fXZhciBLRXQ9TSgoKT0+e30pO2Z1bmN0aW9uIGZUZSgpe3RoaXMuaW5uZXJIVE1MPSIifWZ1bmN0aW9uIHBUZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLmlubmVySFRNTD1lfX1mdW5jdGlvbiBkVGUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5pbm5lckhUTUw9dD09bnVsbD8iIjp0fX1mdW5jdGlvbiBaRXQoZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKGU9PW51bGw/ZlRlOih0eXBlb2YgZT09ImZ1bmN0aW9uIj9kVGU6cFRlKShlKSk6dGhpcy5ub2RlKCkuaW5uZXJIVE1MfXZhciBKRXQ9TSgoKT0+e30pO2Z1bmN0aW9uIG1UZSgpe3RoaXMubmV4dFNpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGlzKX1mdW5jdGlvbiBRRXQoKXtyZXR1cm4gdGhpcy5lYWNoKG1UZSl9dmFyIHQ1dD1NKCgpPT57fSk7ZnVuY3Rpb24gZ1RlKCl7dGhpcy5wcmV2aW91c1NpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcyx0aGlzLnBhcmVudE5vZGUuZmlyc3RDaGlsZCl9ZnVuY3Rpb24gZTV0KCl7cmV0dXJuIHRoaXMuZWFjaChnVGUpfXZhciByNXQ9TSgoKT0+e30pO2Z1bmN0aW9uIG41dChlKXt2YXIgdD10eXBlb2YgZT09ImZ1bmN0aW9uIj9lOk1SKGUpO3JldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpe3JldHVybiB0aGlzLmFwcGVuZENoaWxkKHQuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pfXZhciBpNXQ9TSgoKT0+e1YkKCl9KTtmdW5jdGlvbiBfVGUoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBvNXQoZSx0KXt2YXIgcj10eXBlb2YgZT09ImZ1bmN0aW9uIj9lOk1SKGUpLG49dD09bnVsbD9fVGU6dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDpneSh0KTtyZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUoci5hcHBseSh0aGlzLGFyZ3VtZW50cyksbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSl9dmFyIGE1dD1NKCgpPT57ViQoKTtFUigpfSk7ZnVuY3Rpb24geVRlKCl7dmFyIGU9dGhpcy5wYXJlbnROb2RlO2UmJmUucmVtb3ZlQ2hpbGQodGhpcyl9ZnVuY3Rpb24gczV0KCl7cmV0dXJuIHRoaXMuZWFjaCh5VGUpfXZhciBsNXQ9TSgoKT0+e30pO2Z1bmN0aW9uIHZUZSgpe3ZhciBlPXRoaXMuY2xvbmVOb2RlKCExKSx0PXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gdD90Lmluc2VydEJlZm9yZShlLHRoaXMubmV4dFNpYmxpbmcpOmV9ZnVuY3Rpb24geFRlKCl7dmFyIGU9dGhpcy5jbG9uZU5vZGUoITApLHQ9dGhpcy5wYXJlbnROb2RlO3JldHVybiB0P3QuaW5zZXJ0QmVmb3JlKGUsdGhpcy5uZXh0U2libGluZyk6ZX1mdW5jdGlvbiBjNXQoZSl7cmV0dXJuIHRoaXMuc2VsZWN0KGU/eFRlOnZUZSl9dmFyIHU1dD1NKCgpPT57fSk7ZnVuY3Rpb24gaDV0KGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoIl9fZGF0YV9fIixlKTp0aGlzLm5vZGUoKS5fX2RhdGFfX312YXIgZjV0PU0oKCk9Pnt9KTtmdW5jdGlvbiBiVGUoZSx0LHIpe3JldHVybiBlPW01dChlLHQsciksZnVuY3Rpb24obil7dmFyIGk9bi5yZWxhdGVkVGFyZ2V0OyghaXx8aSE9PXRoaXMmJiEoaS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSY4KSkmJmUuY2FsbCh0aGlzLG4pfX1mdW5jdGlvbiBtNXQoZSx0LHIpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgaT13cjt3cj1uO3RyeXtlLmNhbGwodGhpcyx0aGlzLl9fZGF0YV9fLHQscil9ZmluYWxseXt3cj1pfX19ZnVuY3Rpb24gd1RlKGUpe3JldHVybiBlLnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoZnVuY3Rpb24odCl7dmFyIHI9IiIsbj10LmluZGV4T2YoIi4iKTtyZXR1cm4gbj49MCYmKHI9dC5zbGljZShuKzEpLHQ9dC5zbGljZSgwLG4pKSx7dHlwZTp0LG5hbWU6cn19KX1mdW5jdGlvbiBTVGUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fX29uO2lmKCEhdCl7Zm9yKHZhciByPTAsbj0tMSxpPXQubGVuZ3RoLG87cjxpOysrcilvPXRbcl0sKCFlLnR5cGV8fG8udHlwZT09PWUudHlwZSkmJm8ubmFtZT09PWUubmFtZT90aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoby50eXBlLG8ubGlzdGVuZXIsby5jYXB0dXJlKTp0Wysrbl09bzsrK24/dC5sZW5ndGg9bjpkZWxldGUgdGhpcy5fX29ufX19ZnVuY3Rpb24gTVRlKGUsdCxyKXt2YXIgbj1kNXQuaGFzT3duUHJvcGVydHkoZS50eXBlKT9iVGU6bTV0O3JldHVybiBmdW5jdGlvbihpLG8sYSl7dmFyIHM9dGhpcy5fX29uLGwsYz1uKHQsbyxhKTtpZihzKXtmb3IodmFyIHU9MCxoPXMubGVuZ3RoO3U8aDsrK3UpaWYoKGw9c1t1XSkudHlwZT09PWUudHlwZSYmbC5uYW1lPT09ZS5uYW1lKXt0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIobC50eXBlLGwubGlzdGVuZXIsbC5jYXB0dXJlKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIobC50eXBlLGwubGlzdGVuZXI9YyxsLmNhcHR1cmU9ciksbC52YWx1ZT10O3JldHVybn19dGhpcy5hZGRFdmVudExpc3RlbmVyKGUudHlwZSxjLHIpLGw9e3R5cGU6ZS50eXBlLG5hbWU6ZS5uYW1lLHZhbHVlOnQsbGlzdGVuZXI6YyxjYXB0dXJlOnJ9LHM/cy5wdXNoKGwpOnRoaXMuX19vbj1bbF19fWZ1bmN0aW9uIGc1dChlLHQscil7dmFyIG49d1RlKGUrIiIpLGksbz1uLmxlbmd0aCxhO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7dmFyIHM9dGhpcy5ub2RlKCkuX19vbjtpZihzKXtmb3IodmFyIGw9MCxjPXMubGVuZ3RoLHU7bDxjOysrbClmb3IoaT0wLHU9c1tsXTtpPG87KytpKWlmKChhPW5baV0pLnR5cGU9PT11LnR5cGUmJmEubmFtZT09PXUubmFtZSlyZXR1cm4gdS52YWx1ZX1yZXR1cm59Zm9yKHM9dD9NVGU6U1RlLHI9PW51bGwmJihyPSExKSxpPTA7aTxvOysraSl0aGlzLmVhY2gocyhuW2ldLHQscikpO3JldHVybiB0aGlzfWZ1bmN0aW9uICQkKGUsdCxyLG4pe3ZhciBpPXdyO2Uuc291cmNlRXZlbnQ9d3Isd3I9ZTt0cnl7cmV0dXJuIHQuYXBwbHkocixuKX1maW5hbGx5e3dyPWl9fXZhciBkNXQsd3IscDV0LEFSPU0oKCk9PntkNXQ9e30sd3I9bnVsbDt0eXBlb2YgZG9jdW1lbnQhPSJ1bmRlZmluZWQiJiYocDV0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwib25tb3VzZWVudGVyImluIHA1dHx8KGQ1dD17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSl9KTtmdW5jdGlvbiBfNXQoZSx0LHIpe3ZhciBuPUNSKGUpLGk9bi5DdXN0b21FdmVudDt0eXBlb2YgaT09ImZ1bmN0aW9uIj9pPW5ldyBpKHQscik6KGk9bi5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSxyPyhpLmluaXRFdmVudCh0LHIuYnViYmxlcyxyLmNhbmNlbGFibGUpLGkuZGV0YWlsPXIuZGV0YWlsKTppLmluaXRFdmVudCh0LCExLCExKSksZS5kaXNwYXRjaEV2ZW50KGkpfWZ1bmN0aW9uIEVUZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBfNXQodGhpcyxlLHQpfX1mdW5jdGlvbiBUVGUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gXzV0KHRoaXMsZSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fWZ1bmN0aW9uIHk1dChlLHQpe3JldHVybiB0aGlzLmVhY2goKHR5cGVvZiB0PT0iZnVuY3Rpb24iP1RUZTpFVGUpKGUsdCkpfXZhciB2NXQ9TSgoKT0+e1kkKCl9KTtmdW5jdGlvbiBmaShlLHQpe3RoaXMuX2dyb3Vwcz1lLHRoaXMuX3BhcmVudHM9dH1mdW5jdGlvbiB4NXQoKXtyZXR1cm4gbmV3IGZpKFtbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XV0sSyQpfXZhciBLJCxxcCx3dT1NKCgpPT57b0V0KCk7c0V0KCk7Y0V0KCk7bUV0KCk7VyQoKTtfRXQoKTt2RXQoKTtiRXQoKTtTRXQoKTtFRXQoKTtDRXQoKTtQRXQoKTtMRXQoKTtSRXQoKTtERXQoKTt6RXQoKTtCRXQoKTtqJCgpO1VFdCgpO1hFdCgpO0tFdCgpO0pFdCgpO3Q1dCgpO3I1dCgpO2k1dCgpO2E1dCgpO2w1dCgpO3U1dCgpO2Y1dCgpO0FSKCk7djV0KCk7SyQ9W251bGxdO2ZpLnByb3RvdHlwZT14NXQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpmaSxzZWxlY3Q6aUV0LHNlbGVjdEFsbDphRXQsZmlsdGVyOmxFdCxkYXRhOmRFdCxlbnRlcjp1RXQsZXhpdDpnRXQsam9pbjp5RXQsbWVyZ2U6eEV0LG9yZGVyOndFdCxzb3J0Ok1FdCxjYWxsOlRFdCxub2RlczpBRXQsbm9kZTpJRXQsc2l6ZTprRXQsZW1wdHk6TkV0LGVhY2g6T0V0LGF0dHI6RkV0LHN0eWxlOkhFdCxwcm9wZXJ0eTpWRXQsY2xhc3NlZDpqRXQsdGV4dDokRXQsaHRtbDpaRXQscmFpc2U6UUV0LGxvd2VyOmU1dCxhcHBlbmQ6bjV0LGluc2VydDpvNXQscmVtb3ZlOnM1dCxjbG9uZTpjNXQsZGF0dW06aDV0LG9uOmc1dCxkaXNwYXRjaDp5NXR9O3FwPXg1dH0pO2Z1bmN0aW9uIEdwKGUpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyI/bmV3IGZpKFtbZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlKV1dLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgZmkoW1tlXV0sSyQpfXZhciBiNXQ9TSgoKT0+e3d1KCl9KTtmdW5jdGlvbiB3NXQoKXtmb3IodmFyIGU9d3IsdDt0PWUuc291cmNlRXZlbnQ7KWU9dDtyZXR1cm4gZX12YXIgUzV0PU0oKCk9PntBUigpfSk7ZnVuY3Rpb24gTTV0KGUsdCl7dmFyIHI9ZS5vd25lclNWR0VsZW1lbnR8fGU7aWYoci5jcmVhdGVTVkdQb2ludCl7dmFyIG49ci5jcmVhdGVTVkdQb2ludCgpO3JldHVybiBuLng9dC5jbGllbnRYLG4ueT10LmNsaWVudFksbj1uLm1hdHJpeFRyYW5zZm9ybShlLmdldFNjcmVlbkNUTSgpLmludmVyc2UoKSksW24ueCxuLnldfXZhciBpPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW3QuY2xpZW50WC1pLmxlZnQtZS5jbGllbnRMZWZ0LHQuY2xpZW50WS1pLnRvcC1lLmNsaWVudFRvcF19dmFyIEU1dD1NKCgpPT57fSk7ZnVuY3Rpb24gUFIoZSl7dmFyIHQ9dzV0KCk7cmV0dXJuIHQuY2hhbmdlZFRvdWNoZXMmJih0PXQuY2hhbmdlZFRvdWNoZXNbMF0pLE01dChlLHQpfXZhciBUNXQ9TSgoKT0+e1M1dCgpO0U1dCgpfSk7dmFyIFRzPU0oKCk9PntxJCgpO1Q1dCgpO1NSKCk7YjV0KCk7d3UoKTtFUigpO1UkKCk7aiQoKTtBUigpfSk7ZnVuY3Rpb24gSVIoKXt3ci5wcmV2ZW50RGVmYXVsdCgpLHdyLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfXZhciBDNXQ9TSgoKT0+e1RzKCl9KTtmdW5jdGlvbiBaJChlKXt2YXIgdD1lLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxyPUdwKGUpLm9uKCJkcmFnc3RhcnQuZHJhZyIsSVIsITApOyJvbnNlbGVjdHN0YXJ0ImluIHQ/ci5vbigic2VsZWN0c3RhcnQuZHJhZyIsSVIsITApOih0Ll9fbm9zZWxlY3Q9dC5zdHlsZS5Nb3pVc2VyU2VsZWN0LHQuc3R5bGUuTW96VXNlclNlbGVjdD0ibm9uZSIpfWZ1bmN0aW9uIEokKGUsdCl7dmFyIHI9ZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbj1HcChlKS5vbigiZHJhZ3N0YXJ0LmRyYWciLG51bGwpO3QmJihuLm9uKCJjbGljay5kcmFnIixJUiwhMCksc2V0VGltZW91dChmdW5jdGlvbigpe24ub24oImNsaWNrLmRyYWciLG51bGwpfSwwKSksIm9uc2VsZWN0c3RhcnQiaW4gcj9uLm9uKCJzZWxlY3RzdGFydC5kcmFnIixudWxsKTooci5zdHlsZS5Nb3pVc2VyU2VsZWN0PXIuX19ub3NlbGVjdCxkZWxldGUgci5fX25vc2VsZWN0KX12YXIgQTV0PU0oKCk9PntUcygpO0M1dCgpfSk7dmFyIFA1dD1NKCgpPT57QTV0KCl9KTtmdW5jdGlvbiBMUihlLHQscil7ZS5wcm90b3R5cGU9dC5wcm90b3R5cGU9cixyLmNvbnN0cnVjdG9yPWV9ZnVuY3Rpb24gUSQoZSx0KXt2YXIgcj1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKTtmb3IodmFyIG4gaW4gdClyW25dPXRbbl07cmV0dXJuIHJ9dmFyIEk1dD1NKCgpPT57fSk7ZnVuY3Rpb24gWjUoKXt9ZnVuY3Rpb24gazV0KCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4KCl9ZnVuY3Rpb24gTlRlKCl7cmV0dXJuIEY1dCh0aGlzKS5mb3JtYXRIc2woKX1mdW5jdGlvbiBSNXQoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRSZ2IoKX1mdW5jdGlvbiBTdShlKXt2YXIgdCxyO3JldHVybiBlPShlKyIiKS50cmltKCkudG9Mb3dlckNhc2UoKSwodD1DVGUuZXhlYyhlKSk/KHI9dFsxXS5sZW5ndGgsdD1wYXJzZUludCh0WzFdLDE2KSxyPT09Nj9ONXQodCk6cj09PTM/bmV3IGxsKHQ+PjgmMTV8dD4+NCYyNDAsdD4+NCYxNXx0JjI0MCwodCYxNSk8PDR8dCYxNSwxKTpyPT09OD9rUih0Pj4yNCYyNTUsdD4+MTYmMjU1LHQ+PjgmMjU1LCh0JjI1NSkvMjU1KTpyPT09ND9rUih0Pj4xMiYxNXx0Pj44JjI0MCx0Pj44JjE1fHQ+PjQmMjQwLHQ+PjQmMTV8dCYyNDAsKCh0JjE1KTw8NHx0JjE1KS8yNTUpOm51bGwpOih0PUFUZS5leGVjKGUpKT9uZXcgbGwodFsxXSx0WzJdLHRbM10sMSk6KHQ9UFRlLmV4ZWMoZSkpP25ldyBsbCh0WzFdKjI1NS8xMDAsdFsyXSoyNTUvMTAwLHRbM10qMjU1LzEwMCwxKToodD1JVGUuZXhlYyhlKSk/a1IodFsxXSx0WzJdLHRbM10sdFs0XSk6KHQ9TFRlLmV4ZWMoZSkpP2tSKHRbMV0qMjU1LzEwMCx0WzJdKjI1NS8xMDAsdFszXSoyNTUvMTAwLHRbNF0pOih0PWtUZS5leGVjKGUpKT96NXQodFsxXSx0WzJdLzEwMCx0WzNdLzEwMCwxKToodD1SVGUuZXhlYyhlKSk/ejV0KHRbMV0sdFsyXS8xMDAsdFszXS8xMDAsdFs0XSk6TDV0Lmhhc093blByb3BlcnR5KGUpP041dChMNXRbZV0pOmU9PT0idHJhbnNwYXJlbnQiP25ldyBsbChOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIE41dChlKXtyZXR1cm4gbmV3IGxsKGU+PjE2JjI1NSxlPj44JjI1NSxlJjI1NSwxKX1mdW5jdGlvbiBrUihlLHQscixuKXtyZXR1cm4gbjw9MCYmKGU9dD1yPU5hTiksbmV3IGxsKGUsdCxyLG4pfWZ1bmN0aW9uIERUZShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIFo1fHwoZT1TdShlKSksZT8oZT1lLnJnYigpLG5ldyBsbChlLnIsZS5nLGUuYixlLm9wYWNpdHkpKTpuZXcgbGx9ZnVuY3Rpb24gdTIoZSx0LHIsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP0RUZShlKTpuZXcgbGwoZSx0LHIsbj09bnVsbD8xOm4pfWZ1bmN0aW9uIGxsKGUsdCxyLG4pe3RoaXMucj0rZSx0aGlzLmc9K3QsdGhpcy5iPStyLHRoaXMub3BhY2l0eT0rbn1mdW5jdGlvbiBENXQoKXtyZXR1cm4iIyIrdEsodGhpcy5yKSt0Syh0aGlzLmcpK3RLKHRoaXMuYil9ZnVuY3Rpb24gTzV0KCl7dmFyIGU9dGhpcy5vcGFjaXR5O3JldHVybiBlPWlzTmFOKGUpPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLGUpKSwoZT09PTE/InJnYigiOiJyZ2JhKCIpK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5yKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmcpfHwwKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuYil8fDApKSsoZT09PTE/IikiOiIsICIrZSsiKSIpfWZ1bmN0aW9uIHRLKGUpe3JldHVybiBlPU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQoZSl8fDApKSwoZTwxNj8iMCI6IiIpK2UudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIHo1dChlLHQscixuKXtyZXR1cm4gbjw9MD9lPXQ9cj1OYU46cjw9MHx8cj49MT9lPXQ9TmFOOnQ8PTAmJihlPU5hTiksbmV3IFpoKGUsdCxyLG4pfWZ1bmN0aW9uIEY1dChlKXtpZihlIGluc3RhbmNlb2YgWmgpcmV0dXJuIG5ldyBaaChlLmgsZS5zLGUubCxlLm9wYWNpdHkpO2lmKGUgaW5zdGFuY2VvZiBaNXx8KGU9U3UoZSkpLCFlKXJldHVybiBuZXcgWmg7aWYoZSBpbnN0YW5jZW9mIFpoKXJldHVybiBlO2U9ZS5yZ2IoKTt2YXIgdD1lLnIvMjU1LHI9ZS5nLzI1NSxuPWUuYi8yNTUsaT1NYXRoLm1pbih0LHIsbiksbz1NYXRoLm1heCh0LHIsbiksYT1OYU4scz1vLWksbD0obytpKS8yO3JldHVybiBzPyh0PT09bz9hPShyLW4pL3MrKHI8bikqNjpyPT09bz9hPShuLXQpL3MrMjphPSh0LXIpL3MrNCxzLz1sPC41P28raToyLW8taSxhKj02MCk6cz1sPjAmJmw8MT8wOmEsbmV3IFpoKGEscyxsLGUub3BhY2l0eSl9ZnVuY3Rpb24gQjV0KGUsdCxyLG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT9GNXQoZSk6bmV3IFpoKGUsdCxyLG49PW51bGw/MTpuKX1mdW5jdGlvbiBaaChlLHQscixuKXt0aGlzLmg9K2UsdGhpcy5zPSt0LHRoaXMubD0rcix0aGlzLm9wYWNpdHk9K259ZnVuY3Rpb24gZUsoZSx0LHIpe3JldHVybihlPDYwP3QrKHItdCkqZS82MDplPDE4MD9yOmU8MjQwP3QrKHItdCkqKDI0MC1lKS82MDp0KSoyNTV9dmFyICQ1LFJSLGMyLEs1LEpoLENUZSxBVGUsUFRlLElUZSxMVGUsa1RlLFJUZSxMNXQsSDV0PU0oKCk9PntJNXQoKTskNT0uNyxSUj0xLyQ1LGMyPSJcXHMqKFsrLV0/XFxkKylcXHMqIixLNT0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPylcXHMqIixKaD0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPyklXFxzKiIsQ1RlPS9eIyhbMC05YS1mXXszLDh9KSQvLEFUZT1uZXcgUmVnRXhwKCJecmdiXFwoIitbYzIsYzIsYzJdKyJcXCkkIiksUFRlPW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1tKaCxKaCxKaF0rIlxcKSQiKSxJVGU9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tjMixjMixjMixLNV0rIlxcKSQiKSxMVGU9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tKaCxKaCxKaCxLNV0rIlxcKSQiKSxrVGU9bmV3IFJlZ0V4cCgiXmhzbFxcKCIrW0s1LEpoLEpoXSsiXFwpJCIpLFJUZT1uZXcgUmVnRXhwKCJeaHNsYVxcKCIrW0s1LEpoLEpoLEs1XSsiXFwpJCIpLEw1dD17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtMUihaNSxTdSx7Y29weTpmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLGUpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDprNXQsZm9ybWF0SGV4Oms1dCxmb3JtYXRIc2w6TlRlLGZvcm1hdFJnYjpSNXQsdG9TdHJpbmc6UjV0fSk7TFIobGwsdTIsUSQoWjUse2JyaWdodGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/UlI6TWF0aC5wb3coUlIsZSksbmV3IGxsKHRoaXMuciplLHRoaXMuZyplLHRoaXMuYiplLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT1lPT1udWxsPyQ1Ok1hdGgucG93KCQ1LGUpLG5ldyBsbCh0aGlzLnIqZSx0aGlzLmcqZSx0aGlzLmIqZSx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4tLjU8PXRoaXMuciYmdGhpcy5yPDI1NS41JiYtLjU8PXRoaXMuZyYmdGhpcy5nPDI1NS41JiYtLjU8PXRoaXMuYiYmdGhpcy5iPDI1NS41JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0saGV4OkQ1dCxmb3JtYXRIZXg6RDV0LGZvcm1hdFJnYjpPNXQsdG9TdHJpbmc6TzV0fSkpO0xSKFpoLEI1dCxRJChaNSx7YnJpZ2h0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZT09bnVsbD9SUjpNYXRoLnBvdyhSUixlKSxuZXcgWmgodGhpcy5oLHRoaXMucyx0aGlzLmwqZSx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZT09bnVsbD8kNTpNYXRoLnBvdygkNSxlKSxuZXcgWmgodGhpcy5oLHRoaXMucyx0aGlzLmwqZSx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmglMzYwKyh0aGlzLmg8MCkqMzYwLHQ9aXNOYU4oZSl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMscj10aGlzLmwsbj1yKyhyPC41P3I6MS1yKSp0LGk9MipyLW47cmV0dXJuIG5ldyBsbChlSyhlPj0yNDA/ZS0yNDA6ZSsxMjAsaSxuKSxlSyhlLGksbiksZUsoZTwxMjA/ZSsyNDA6ZS0xMjAsaSxuKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcGFjaXR5O3JldHVybiBlPWlzTmFOKGUpPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLGUpKSwoZT09PTE/ImhzbCgiOiJoc2xhKCIpKyh0aGlzLmh8fDApKyIsICIrKHRoaXMuc3x8MCkqMTAwKyIlLCAiKyh0aGlzLmx8fDApKjEwMCsiJSIrKGU9PT0xPyIpIjoiLCAiK2UrIikiKX19KSl9KTt2YXIgTlI9TSgoKT0+e0g1dCgpfSk7ZnVuY3Rpb24gcksoZSx0LHIsbixpKXt2YXIgbz1lKmUsYT1vKmU7cmV0dXJuKCgxLTMqZSszKm8tYSkqdCsoNC02Km8rMyphKSpyKygxKzMqZSszKm8tMyphKSpuK2EqaSkvNn1mdW5jdGlvbiBWNXQoZSl7dmFyIHQ9ZS5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIG49cjw9MD9yPTA6cj49MT8ocj0xLHQtMSk6TWF0aC5mbG9vcihyKnQpLGk9ZVtuXSxvPWVbbisxXSxhPW4+MD9lW24tMV06MippLW8scz1uPHQtMT9lW24rMl06MipvLWk7cmV0dXJuIHJLKChyLW4vdCkqdCxhLGksbyxzKX19dmFyIG5LPU0oKCk9Pnt9KTtmdW5jdGlvbiBVNXQoZSl7dmFyIHQ9ZS5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBuPU1hdGguZmxvb3IoKChyJT0xKTwwPysrcjpyKSp0KSxpPWVbKG4rdC0xKSV0XSxvPWVbbiV0XSxhPWVbKG4rMSkldF0scz1lWyhuKzIpJXRdO3JldHVybiBySygoci1uL3QpKnQsaSxvLGEscyl9fXZhciBxNXQ9TSgoKT0+e25LKCl9KTtmdW5jdGlvbiBKNShlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZX19dmFyIGlLPU0oKCk9Pnt9KTtmdW5jdGlvbiBPVGUoZSx0KXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIGUrcip0fX1mdW5jdGlvbiB6VGUoZSx0LHIpe3JldHVybiBlPU1hdGgucG93KGUsciksdD1NYXRoLnBvdyh0LHIpLWUscj0xL3IsZnVuY3Rpb24obil7cmV0dXJuIE1hdGgucG93KGUrbip0LHIpfX1mdW5jdGlvbiBHNXQoZSl7cmV0dXJuKGU9K2UpPT0xP0RSOmZ1bmN0aW9uKHQscil7cmV0dXJuIHItdD96VGUodCxyLGUpOko1KGlzTmFOKHQpP3I6dCl9fWZ1bmN0aW9uIERSKGUsdCl7dmFyIHI9dC1lO3JldHVybiByP09UZShlLHIpOko1KGlzTmFOKGUpP3Q6ZSl9dmFyIFc1dD1NKCgpPT57aUsoKX0pO2Z1bmN0aW9uIFk1dChlKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIHI9dC5sZW5ndGgsbj1uZXcgQXJyYXkociksaT1uZXcgQXJyYXkociksbz1uZXcgQXJyYXkociksYSxzO2ZvcihhPTA7YTxyOysrYSlzPXUyKHRbYV0pLG5bYV09cy5yfHwwLGlbYV09cy5nfHwwLG9bYV09cy5ifHwwO3JldHVybiBuPWUobiksaT1lKGkpLG89ZShvKSxzLm9wYWNpdHk9MSxmdW5jdGlvbihsKXtyZXR1cm4gcy5yPW4obCkscy5nPWkobCkscy5iPW8obCkscysiIn19fXZhciBfeSxGVGUsQlRlLG9LPU0oKCk9PntOUigpO25LKCk7cTV0KCk7VzV0KCk7X3k9ZnVuY3Rpb24gZSh0KXt2YXIgcj1HNXQodCk7ZnVuY3Rpb24gbihpLG8pe3ZhciBhPXIoKGk9dTIoaSkpLnIsKG89dTIobykpLnIpLHM9cihpLmcsby5nKSxsPXIoaS5iLG8uYiksYz1EUihpLm9wYWNpdHksby5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odSl7cmV0dXJuIGkucj1hKHUpLGkuZz1zKHUpLGkuYj1sKHUpLGkub3BhY2l0eT1jKHUpLGkrIiJ9fXJldHVybiBuLmdhbW1hPWUsbn0oMSk7RlRlPVk1dChWNXQpLEJUZT1ZNXQoVTV0KX0pO2Z1bmN0aW9uIGo1dChlLHQpe3R8fCh0PVtdKTt2YXIgcj1lP01hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKTowLG49dC5zbGljZSgpLGk7cmV0dXJuIGZ1bmN0aW9uKG8pe2ZvcihpPTA7aTxyOysraSluW2ldPWVbaV0qKDEtbykrdFtpXSpvO3JldHVybiBufX1mdW5jdGlvbiBYNXQoZSl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyhlKSYmIShlIGluc3RhbmNlb2YgRGF0YVZpZXcpfXZhciAkNXQ9TSgoKT0+e30pO2Z1bmN0aW9uIEs1dChlLHQpe3ZhciByPXQ/dC5sZW5ndGg6MCxuPWU/TWF0aC5taW4ocixlLmxlbmd0aCk6MCxpPW5ldyBBcnJheShuKSxvPW5ldyBBcnJheShyKSxhO2ZvcihhPTA7YTxuOysrYSlpW2FdPXl5KGVbYV0sdFthXSk7Zm9yKDthPHI7KythKW9bYV09dFthXTtyZXR1cm4gZnVuY3Rpb24ocyl7Zm9yKGE9MDthPG47KythKW9bYV09aVthXShzKTtyZXR1cm4gb319dmFyIFo1dD1NKCgpPT57T1IoKX0pO2Z1bmN0aW9uIEo1dChlLHQpe3ZhciByPW5ldyBEYXRlO3JldHVybiBlPStlLHQ9K3QsZnVuY3Rpb24obil7cmV0dXJuIHIuc2V0VGltZShlKigxLW4pK3Qqbikscn19dmFyIFE1dD1NKCgpPT57fSk7ZnVuY3Rpb24gcWEoZSx0KXtyZXR1cm4gZT0rZSx0PSt0LGZ1bmN0aW9uKHIpe3JldHVybiBlKigxLXIpK3Qqcn19dmFyIFE1PU0oKCk9Pnt9KTtmdW5jdGlvbiB0VHQoZSx0KXt2YXIgcj17fSxuPXt9LGk7KGU9PT1udWxsfHx0eXBlb2YgZSE9Im9iamVjdCIpJiYoZT17fSksKHQ9PT1udWxsfHx0eXBlb2YgdCE9Im9iamVjdCIpJiYodD17fSk7Zm9yKGkgaW4gdClpIGluIGU/cltpXT15eShlW2ldLHRbaV0pOm5baV09dFtpXTtyZXR1cm4gZnVuY3Rpb24obyl7Zm9yKGkgaW4gciluW2ldPXJbaV0obyk7cmV0dXJuIG59fXZhciBlVHQ9TSgoKT0+e09SKCl9KTtmdW5jdGlvbiBIVGUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fWZ1bmN0aW9uIFZUZShlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUodCkrIiJ9fWZ1bmN0aW9uIHRUKGUsdCl7dmFyIHI9c0subGFzdEluZGV4PWFLLmxhc3RJbmRleD0wLG4saSxvLGE9LTEscz1bXSxsPVtdO2ZvcihlPWUrIiIsdD10KyIiOyhuPXNLLmV4ZWMoZSkpJiYoaT1hSy5leGVjKHQpKTspKG89aS5pbmRleCk+ciYmKG89dC5zbGljZShyLG8pLHNbYV0/c1thXSs9bzpzWysrYV09byksKG49blswXSk9PT0oaT1pWzBdKT9zW2FdP3NbYV0rPWk6c1srK2FdPWk6KHNbKythXT1udWxsLGwucHVzaCh7aTphLHg6cWEobixpKX0pKSxyPWFLLmxhc3RJbmRleDtyZXR1cm4gcjx0Lmxlbmd0aCYmKG89dC5zbGljZShyKSxzW2FdP3NbYV0rPW86c1srK2FdPW8pLHMubGVuZ3RoPDI/bFswXT9WVGUobFswXS54KTpIVGUodCk6KHQ9bC5sZW5ndGgsZnVuY3Rpb24oYyl7Zm9yKHZhciB1PTAsaDt1PHQ7Kyt1KXNbKGg9bFt1XSkuaV09aC54KGMpO3JldHVybiBzLmpvaW4oIiIpfSl9dmFyIHNLLGFLLGxLPU0oKCk9PntRNSgpO3NLPS9bLStdPyg/OlxkK1wuP1xkKnxcLj9cZCspKD86W2VFXVstK10/XGQrKT8vZyxhSz1uZXcgUmVnRXhwKHNLLnNvdXJjZSwiZyIpfSk7ZnVuY3Rpb24geXkoZSx0KXt2YXIgcj10eXBlb2YgdCxuO3JldHVybiB0PT1udWxsfHxyPT09ImJvb2xlYW4iP0o1KHQpOihyPT09Im51bWJlciI/cWE6cj09PSJzdHJpbmciPyhuPVN1KHQpKT8odD1uLF95KTp0VDp0IGluc3RhbmNlb2YgU3U/X3k6dCBpbnN0YW5jZW9mIERhdGU/SjV0Olg1dCh0KT9qNXQ6QXJyYXkuaXNBcnJheSh0KT9LNXQ6dHlwZW9mIHQudmFsdWVPZiE9ImZ1bmN0aW9uIiYmdHlwZW9mIHQudG9TdHJpbmchPSJmdW5jdGlvbiJ8fGlzTmFOKHQpP3RUdDpxYSkoZSx0KX12YXIgT1I9TSgoKT0+e05SKCk7b0soKTtaNXQoKTtRNXQoKTtRNSgpO2VUdCgpO2xLKCk7aUsoKTskNXQoKX0pO2Z1bmN0aW9uIGNLKGUsdCxyLG4saSxvKXt2YXIgYSxzLGw7cmV0dXJuKGE9TWF0aC5zcXJ0KGUqZSt0KnQpKSYmKGUvPWEsdC89YSksKGw9ZSpyK3QqbikmJihyLT1lKmwsbi09dCpsKSwocz1NYXRoLnNxcnQocipyK24qbikpJiYoci89cyxuLz1zLGwvPXMpLGUqbjx0KnImJihlPS1lLHQ9LXQsbD0tbCxhPS1hKSx7dHJhbnNsYXRlWDppLHRyYW5zbGF0ZVk6byxyb3RhdGU6TWF0aC5hdGFuMih0LGUpKnJUdCxza2V3WDpNYXRoLmF0YW4obCkqclR0LHNjYWxlWDphLHNjYWxlWTpzfX12YXIgclR0LHpSLG5UdD1NKCgpPT57clR0PTE4MC9NYXRoLlBJLHpSPXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9fSk7ZnVuY3Rpb24gb1R0KGUpe3JldHVybiBlPT09Im5vbmUiP3pSOihlVHx8KGVUPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLHVLPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxpVHQ9ZG9jdW1lbnQuZGVmYXVsdFZpZXcpLGVULnN0eWxlLnRyYW5zZm9ybT1lLGU9aVR0LmdldENvbXB1dGVkU3R5bGUodUsuYXBwZW5kQ2hpbGQoZVQpLG51bGwpLmdldFByb3BlcnR5VmFsdWUoInRyYW5zZm9ybSIpLHVLLnJlbW92ZUNoaWxkKGVUKSxlPWUuc2xpY2UoNywtMSkuc3BsaXQoIiwiKSxjSygrZVswXSwrZVsxXSwrZVsyXSwrZVszXSwrZVs0XSwrZVs1XSkpfWZ1bmN0aW9uIGFUdChlKXtyZXR1cm4gZT09bnVsbD96UjooRlJ8fChGUj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpKSxGUi5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsZSksKGU9RlIudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSk/KGU9ZS5tYXRyaXgsY0soZS5hLGUuYixlLmMsZS5kLGUuZSxlLmYpKTp6Uil9dmFyIGVULHVLLGlUdCxGUixzVHQ9TSgoKT0+e25UdCgpfSk7ZnVuY3Rpb24gbFR0KGUsdCxyLG4pe2Z1bmN0aW9uIGkoYyl7cmV0dXJuIGMubGVuZ3RoP2MucG9wKCkrIiAiOiIifWZ1bmN0aW9uIG8oYyx1LGgsZixwLGQpe2lmKGMhPT1ofHx1IT09Zil7dmFyIGc9cC5wdXNoKCJ0cmFuc2xhdGUoIixudWxsLHQsbnVsbCxyKTtkLnB1c2goe2k6Zy00LHg6cWEoYyxoKX0se2k6Zy0yLHg6cWEodSxmKX0pfWVsc2UoaHx8ZikmJnAucHVzaCgidHJhbnNsYXRlKCIraCt0K2Yrcil9ZnVuY3Rpb24gYShjLHUsaCxmKXtjIT09dT8oYy11PjE4MD91Kz0zNjA6dS1jPjE4MCYmKGMrPTM2MCksZi5wdXNoKHtpOmgucHVzaChpKGgpKyJyb3RhdGUoIixudWxsLG4pLTIseDpxYShjLHUpfSkpOnUmJmgucHVzaChpKGgpKyJyb3RhdGUoIit1K24pfWZ1bmN0aW9uIHMoYyx1LGgsZil7YyE9PXU/Zi5wdXNoKHtpOmgucHVzaChpKGgpKyJza2V3WCgiLG51bGwsbiktMix4OnFhKGMsdSl9KTp1JiZoLnB1c2goaShoKSsic2tld1goIit1K24pfWZ1bmN0aW9uIGwoYyx1LGgsZixwLGQpe2lmKGMhPT1ofHx1IT09Zil7dmFyIGc9cC5wdXNoKGkocCkrInNjYWxlKCIsbnVsbCwiLCIsbnVsbCwiKSIpO2QucHVzaCh7aTpnLTQseDpxYShjLGgpfSx7aTpnLTIseDpxYSh1LGYpfSl9ZWxzZShoIT09MXx8ZiE9PTEpJiZwLnB1c2goaShwKSsic2NhbGUoIitoKyIsIitmKyIpIil9cmV0dXJuIGZ1bmN0aW9uKGMsdSl7dmFyIGg9W10sZj1bXTtyZXR1cm4gYz1lKGMpLHU9ZSh1KSxvKGMudHJhbnNsYXRlWCxjLnRyYW5zbGF0ZVksdS50cmFuc2xhdGVYLHUudHJhbnNsYXRlWSxoLGYpLGEoYy5yb3RhdGUsdS5yb3RhdGUsaCxmKSxzKGMuc2tld1gsdS5za2V3WCxoLGYpLGwoYy5zY2FsZVgsYy5zY2FsZVksdS5zY2FsZVgsdS5zY2FsZVksaCxmKSxjPXU9bnVsbCxmdW5jdGlvbihwKXtmb3IodmFyIGQ9LTEsZz1mLmxlbmd0aCxfOysrZDxnOyloWyhfPWZbZF0pLmldPV8ueChwKTtyZXR1cm4gaC5qb2luKCIiKX19fXZhciBoSyxmSyxjVHQ9TSgoKT0+e1E1KCk7c1R0KCk7aEs9bFR0KG9UdCwicHgsICIsInB4KSIsImRlZykiKSxmSz1sVHQoYVR0LCIsICIsIikiLCIpIil9KTt2YXIgclQ9TSgoKT0+e09SKCk7UTUoKTtsSygpO2NUdCgpO29LKCl9KTtmdW5jdGlvbiBmMigpe3JldHVybiB2eXx8KGZUdChVVGUpLHZ5PWFULm5vdygpK1ZSKX1mdW5jdGlvbiBVVGUoKXt2eT0wfWZ1bmN0aW9uIHNUKCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiBVUihlLHQscil7dmFyIG49bmV3IHNUO3JldHVybiBuLnJlc3RhcnQoZSx0LHIpLG59ZnVuY3Rpb24gcFR0KCl7ZjIoKSwrK2gyO2Zvcih2YXIgZT1CUix0O2U7KSh0PXZ5LWUuX3RpbWUpPj0wJiZlLl9jYWxsLmNhbGwobnVsbCx0KSxlPWUuX25leHQ7LS1oMn1mdW5jdGlvbiB1VHQoKXt2eT0oSFI9YVQubm93KCkpK1ZSLGgyPWlUPTA7dHJ5e3BUdCgpfWZpbmFsbHl7aDI9MCxHVGUoKSx2eT0wfX1mdW5jdGlvbiBxVGUoKXt2YXIgZT1hVC5ub3coKSx0PWUtSFI7dD5oVHQmJihWUi09dCxIUj1lKX1mdW5jdGlvbiBHVGUoKXtmb3IodmFyIGUsdD1CUixyLG49MS8wO3Q7KXQuX2NhbGw/KG4+dC5fdGltZSYmKG49dC5fdGltZSksZT10LHQ9dC5fbmV4dCk6KHI9dC5fbmV4dCx0Ll9uZXh0PW51bGwsdD1lP2UuX25leHQ9cjpCUj1yKTtvVD1lLHBLKG4pfWZ1bmN0aW9uIHBLKGUpe2lmKCFoMil7aVQmJihpVD1jbGVhclRpbWVvdXQoaVQpKTt2YXIgdD1lLXZ5O3Q+MjQ/KGU8MS8wJiYoaVQ9c2V0VGltZW91dCh1VHQsZS1hVC5ub3coKS1WUikpLG5UJiYoblQ9Y2xlYXJJbnRlcnZhbChuVCkpKTooblR8fChIUj1hVC5ub3coKSxuVD1zZXRJbnRlcnZhbChxVGUsaFR0KSksaDI9MSxmVHQodVR0KSl9fXZhciBoMixpVCxuVCxoVHQsQlIsb1QsSFIsdnksVlIsYVQsZlR0LGRLPU0oKCk9PntoMj0wLGlUPTAsblQ9MCxoVHQ9MWUzLEhSPTAsdnk9MCxWUj0wLGFUPXR5cGVvZiBwZXJmb3JtYW5jZT09Im9iamVjdCImJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLGZUdD10eXBlb2Ygd2luZG93PT0ib2JqZWN0IiYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpmdW5jdGlvbihlKXtzZXRUaW1lb3V0KGUsMTcpfTtzVC5wcm90b3R5cGU9VVIucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpzVCxyZXN0YXJ0OmZ1bmN0aW9uKGUsdCxyKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbiIpO3I9KHI9PW51bGw/ZjIoKTorcikrKHQ9PW51bGw/MDordCksIXRoaXMuX25leHQmJm9UIT09dGhpcyYmKG9UP29ULl9uZXh0PXRoaXM6QlI9dGhpcyxvVD10aGlzKSx0aGlzLl9jYWxsPWUsdGhpcy5fdGltZT1yLHBLKCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLl9jYWxsJiYodGhpcy5fY2FsbD1udWxsLHRoaXMuX3RpbWU9MS8wLHBLKCkpfX19KTtmdW5jdGlvbiBxUihlLHQscil7dmFyIG49bmV3IHNUO3JldHVybiB0PXQ9PW51bGw/MDordCxuLnJlc3RhcnQoZnVuY3Rpb24oaSl7bi5zdG9wKCksZShpK3QpfSx0LHIpLG59dmFyIGRUdD1NKCgpPT57ZEsoKX0pO3ZhciBtSz1NKCgpPT57ZEsoKTtkVHQoKX0pO2Z1bmN0aW9uIGxnKGUsdCxyLG4saSxvKXt2YXIgYT1lLl9fdHJhbnNpdGlvbjtpZighYSllLl9fdHJhbnNpdGlvbj17fTtlbHNlIGlmKHIgaW4gYSlyZXR1cm47alRlKGUscix7bmFtZTp0LGluZGV4Om4sZ3JvdXA6aSxvbjpXVGUsdHdlZW46WVRlLHRpbWU6by50aW1lLGRlbGF5Om8uZGVsYXksZHVyYXRpb246by5kdXJhdGlvbixlYXNlOm8uZWFzZSx0aW1lcjpudWxsLHN0YXRlOmdUdH0pfWZ1bmN0aW9uIGNUKGUsdCl7dmFyIHI9UWkoZSx0KTtpZihyLnN0YXRlPmdUdCl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZCIpO3JldHVybiByfWZ1bmN0aW9uIEdhKGUsdCl7dmFyIHI9UWkoZSx0KTtpZihyLnN0YXRlPkdSKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgcnVubmluZyIpO3JldHVybiByfWZ1bmN0aW9uIFFpKGUsdCl7dmFyIHI9ZS5fX3RyYW5zaXRpb247aWYoIXJ8fCEocj1yW3RdKSl0aHJvdyBuZXcgRXJyb3IoInRyYW5zaXRpb24gbm90IGZvdW5kIik7cmV0dXJuIHJ9ZnVuY3Rpb24galRlKGUsdCxyKXt2YXIgbj1lLl9fdHJhbnNpdGlvbixpO25bdF09cixyLnRpbWVyPVVSKG8sMCxyLnRpbWUpO2Z1bmN0aW9uIG8oYyl7ci5zdGF0ZT1nSyxyLnRpbWVyLnJlc3RhcnQoYSxyLmRlbGF5LHIudGltZSksci5kZWxheTw9YyYmYShjLXIuZGVsYXkpfWZ1bmN0aW9uIGEoYyl7dmFyIHUsaCxmLHA7aWYoci5zdGF0ZSE9PWdLKXJldHVybiBsKCk7Zm9yKHUgaW4gbilpZihwPW5bdV0scC5uYW1lPT09ci5uYW1lKXtpZihwLnN0YXRlPT09R1IpcmV0dXJuIHFSKGEpO3Auc3RhdGU9PT1tVHQ/KHAuc3RhdGU9bFQscC50aW1lci5zdG9wKCkscC5vbi5jYWxsKCJpbnRlcnJ1cHQiLGUsZS5fX2RhdGFfXyxwLmluZGV4LHAuZ3JvdXApLGRlbGV0ZSBuW3VdKTordTx0JiYocC5zdGF0ZT1sVCxwLnRpbWVyLnN0b3AoKSxwLm9uLmNhbGwoImNhbmNlbCIsZSxlLl9fZGF0YV9fLHAuaW5kZXgscC5ncm91cCksZGVsZXRlIG5bdV0pfWlmKHFSKGZ1bmN0aW9uKCl7ci5zdGF0ZT09PUdSJiYoci5zdGF0ZT1tVHQsci50aW1lci5yZXN0YXJ0KHMsci5kZWxheSxyLnRpbWUpLHMoYykpfSksci5zdGF0ZT1XUixyLm9uLmNhbGwoInN0YXJ0IixlLGUuX19kYXRhX18sci5pbmRleCxyLmdyb3VwKSxyLnN0YXRlPT09V1Ipe2ZvcihyLnN0YXRlPUdSLGk9bmV3IEFycmF5KGY9ci50d2Vlbi5sZW5ndGgpLHU9MCxoPS0xO3U8ZjsrK3UpKHA9ci50d2Vlblt1XS52YWx1ZS5jYWxsKGUsZS5fX2RhdGFfXyxyLmluZGV4LHIuZ3JvdXApKSYmKGlbKytoXT1wKTtpLmxlbmd0aD1oKzF9fWZ1bmN0aW9uIHMoYyl7Zm9yKHZhciB1PWM8ci5kdXJhdGlvbj9yLmVhc2UuY2FsbChudWxsLGMvci5kdXJhdGlvbik6KHIudGltZXIucmVzdGFydChsKSxyLnN0YXRlPVlSLDEpLGg9LTEsZj1pLmxlbmd0aDsrK2g8ZjspaVtoXS5jYWxsKGUsdSk7ci5zdGF0ZT09PVlSJiYoci5vbi5jYWxsKCJlbmQiLGUsZS5fX2RhdGFfXyxyLmluZGV4LHIuZ3JvdXApLGwoKSl9ZnVuY3Rpb24gbCgpe3Iuc3RhdGU9bFQsci50aW1lci5zdG9wKCksZGVsZXRlIG5bdF07Zm9yKHZhciBjIGluIG4pcmV0dXJuO2RlbGV0ZSBlLl9fdHJhbnNpdGlvbn19dmFyIFdUZSxZVGUsZ1R0LGdLLFdSLEdSLG1UdCxZUixsVCxDcz1NKCgpPT57RiQoKTttSygpO1dUZT1XNSgic3RhcnQiLCJlbmQiLCJjYW5jZWwiLCJpbnRlcnJ1cHQiKSxZVGU9W10sZ1R0PTAsZ0s9MSxXUj0yLEdSPTMsbVR0PTQsWVI9NSxsVD02fSk7ZnVuY3Rpb24gcDIoZSx0KXt2YXIgcj1lLl9fdHJhbnNpdGlvbixuLGksbz0hMCxhO2lmKCEhcil7dD10PT1udWxsP251bGw6dCsiIjtmb3IoYSBpbiByKXtpZigobj1yW2FdKS5uYW1lIT09dCl7bz0hMTtjb250aW51ZX1pPW4uc3RhdGU+V1ImJm4uc3RhdGU8WVIsbi5zdGF0ZT1sVCxuLnRpbWVyLnN0b3AoKSxuLm9uLmNhbGwoaT8iaW50ZXJydXB0IjoiY2FuY2VsIixlLGUuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSxkZWxldGUgclthXX1vJiZkZWxldGUgZS5fX3RyYW5zaXRpb259fXZhciBfSz1NKCgpPT57Q3MoKX0pO2Z1bmN0aW9uIF9UdChlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7cDIodGhpcyxlKX0pfXZhciB5VHQ9TSgoKT0+e19LKCl9KTtmdW5jdGlvbiBYVGUoZSx0KXt2YXIgcixuO3JldHVybiBmdW5jdGlvbigpe3ZhciBpPUdhKHRoaXMsZSksbz1pLnR3ZWVuO2lmKG8hPT1yKXtuPXI9bztmb3IodmFyIGE9MCxzPW4ubGVuZ3RoO2E8czsrK2EpaWYoblthXS5uYW1lPT09dCl7bj1uLnNsaWNlKCksbi5zcGxpY2UoYSwxKTticmVha319aS50d2Vlbj1ufX1mdW5jdGlvbiAkVGUoZSx0LHIpe3ZhciBuLGk7aWYodHlwZW9mIHIhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPUdhKHRoaXMsZSksYT1vLnR3ZWVuO2lmKGEhPT1uKXtpPShuPWEpLnNsaWNlKCk7Zm9yKHZhciBzPXtuYW1lOnQsdmFsdWU6cn0sbD0wLGM9aS5sZW5ndGg7bDxjOysrbClpZihpW2xdLm5hbWU9PT10KXtpW2xdPXM7YnJlYWt9bD09PWMmJmkucHVzaChzKX1vLnR3ZWVuPWl9fWZ1bmN0aW9uIHZUdChlLHQpe3ZhciByPXRoaXMuX2lkO2lmKGUrPSIiLGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBuPVFpKHRoaXMubm9kZSgpLHIpLnR3ZWVuLGk9MCxvPW4ubGVuZ3RoLGE7aTxvOysraSlpZigoYT1uW2ldKS5uYW1lPT09ZSlyZXR1cm4gYS52YWx1ZTtyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5lYWNoKCh0PT1udWxsP1hUZTokVGUpKHIsZSx0KSl9ZnVuY3Rpb24gZDIoZSx0LHIpe3ZhciBuPWUuX2lkO3JldHVybiBlLmVhY2goZnVuY3Rpb24oKXt2YXIgaT1HYSh0aGlzLG4pOyhpLnZhbHVlfHwoaS52YWx1ZT17fSkpW3RdPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksZnVuY3Rpb24oaSl7cmV0dXJuIFFpKGksbikudmFsdWVbdF19fXZhciB1VD1NKCgpPT57Q3MoKX0pO2Z1bmN0aW9uIGpSKGUsdCl7dmFyIHI7cmV0dXJuKHR5cGVvZiB0PT0ibnVtYmVyIj9xYTp0IGluc3RhbmNlb2YgU3U/X3k6KHI9U3UodCkpPyh0PXIsX3kpOnRUKShlLHQpfXZhciB5Sz1NKCgpPT57TlIoKTtyVCgpfSk7ZnVuY3Rpb24gS1RlKGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKGUpfX1mdW5jdGlvbiBaVGUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpfX1mdW5jdGlvbiBKVGUoZSx0LHIpe3ZhciBuLGk9cisiIixvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0QXR0cmlidXRlKGUpO3JldHVybiBhPT09aT9udWxsOmE9PT1uP286bz10KG49YSxyKX19ZnVuY3Rpb24gUVRlKGUsdCxyKXt2YXIgbixpPXIrIiIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT10aGlzLmdldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCk7cmV0dXJuIGE9PT1pP251bGw6YT09PW4/bzpvPXQobj1hLHIpfX1mdW5jdGlvbiB0Q2UoZSx0LHIpe3ZhciBuLGksbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzPXIodGhpcyksbDtyZXR1cm4gcz09bnVsbD92b2lkIHRoaXMucmVtb3ZlQXR0cmlidXRlKGUpOihhPXRoaXMuZ2V0QXR0cmlidXRlKGUpLGw9cysiIixhPT09bD9udWxsOmE9PT1uJiZsPT09aT9vOihpPWwsbz10KG49YSxzKSkpfX1mdW5jdGlvbiBlQ2UoZSx0LHIpe3ZhciBuLGksbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzPXIodGhpcyksbDtyZXR1cm4gcz09bnVsbD92b2lkIHRoaXMucmVtb3ZlQXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsKTooYT10aGlzLmdldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCksbD1zKyIiLGE9PT1sP251bGw6YT09PW4mJmw9PT1pP286KGk9bCxvPXQobj1hLHMpKSl9fWZ1bmN0aW9uIHhUdChlLHQpe3ZhciByPVVwKGUpLG49cj09PSJ0cmFuc2Zvcm0iP2ZLOmpSO3JldHVybiB0aGlzLmF0dHJUd2VlbihlLHR5cGVvZiB0PT0iZnVuY3Rpb24iPyhyLmxvY2FsP2VDZTp0Q2UpKHIsbixkMih0aGlzLCJhdHRyLiIrZSx0KSk6dD09bnVsbD8oci5sb2NhbD9aVGU6S1RlKShyKTooci5sb2NhbD9RVGU6SlRlKShyLG4sdCkpfXZhciBiVHQ9TSgoKT0+e3JUKCk7VHMoKTt1VCgpO3lLKCl9KTtmdW5jdGlvbiByQ2UoZSx0KXtyZXR1cm4gZnVuY3Rpb24ocil7dGhpcy5zZXRBdHRyaWJ1dGUoZSx0LmNhbGwodGhpcyxyKSl9fWZ1bmN0aW9uIG5DZShlLHQpe3JldHVybiBmdW5jdGlvbihyKXt0aGlzLnNldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCx0LmNhbGwodGhpcyxyKSl9fWZ1bmN0aW9uIGlDZShlLHQpe3ZhciByLG47ZnVuY3Rpb24gaSgpe3ZhciBvPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBvIT09biYmKHI9KG49bykmJm5DZShlLG8pKSxyfXJldHVybiBpLl92YWx1ZT10LGl9ZnVuY3Rpb24gb0NlKGUsdCl7dmFyIHIsbjtmdW5jdGlvbiBpKCl7dmFyIG89dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG8hPT1uJiYocj0obj1vKSYmckNlKGUsbykpLHJ9cmV0dXJuIGkuX3ZhbHVlPXQsaX1mdW5jdGlvbiB3VHQoZSx0KXt2YXIgcj0iYXR0ci4iK2U7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihyPXRoaXMudHdlZW4ocikpJiZyLl92YWx1ZTtpZih0PT1udWxsKXJldHVybiB0aGlzLnR3ZWVuKHIsbnVsbCk7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yO3ZhciBuPVVwKGUpO3JldHVybiB0aGlzLnR3ZWVuKHIsKG4ubG9jYWw/aUNlOm9DZSkobix0KSl9dmFyIFNUdD1NKCgpPT57VHMoKX0pO2Z1bmN0aW9uIGFDZShlLHQpe3JldHVybiBmdW5jdGlvbigpe2NUKHRoaXMsZSkuZGVsYXk9K3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBzQ2UoZSx0KXtyZXR1cm4gdD0rdCxmdW5jdGlvbigpe2NUKHRoaXMsZSkuZGVsYXk9dH19ZnVuY3Rpb24gTVR0KGUpe3ZhciB0PXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgodHlwZW9mIGU9PSJmdW5jdGlvbiI/YUNlOnNDZSkodCxlKSk6UWkodGhpcy5ub2RlKCksdCkuZGVsYXl9dmFyIEVUdD1NKCgpPT57Q3MoKX0pO2Z1bmN0aW9uIGxDZShlLHQpe3JldHVybiBmdW5jdGlvbigpe0dhKHRoaXMsZSkuZHVyYXRpb249K3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBjQ2UoZSx0KXtyZXR1cm4gdD0rdCxmdW5jdGlvbigpe0dhKHRoaXMsZSkuZHVyYXRpb249dH19ZnVuY3Rpb24gVFR0KGUpe3ZhciB0PXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgodHlwZW9mIGU9PSJmdW5jdGlvbiI/bENlOmNDZSkodCxlKSk6UWkodGhpcy5ub2RlKCksdCkuZHVyYXRpb259dmFyIENUdD1NKCgpPT57Q3MoKX0pO2Z1bmN0aW9uIHVDZShlLHQpe2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXtHYSh0aGlzLGUpLmVhc2U9dH19ZnVuY3Rpb24gQVR0KGUpe3ZhciB0PXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCh1Q2UodCxlKSk6UWkodGhpcy5ub2RlKCksdCkuZWFzZX12YXIgUFR0PU0oKCk9PntDcygpfSk7ZnVuY3Rpb24gSVR0KGUpe3R5cGVvZiBlIT0iZnVuY3Rpb24iJiYoZT1qNShlKSk7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxyPXQubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPHI7KytpKWZvcih2YXIgbz10W2ldLGE9by5sZW5ndGgscz1uW2ldPVtdLGwsYz0wO2M8YTsrK2MpKGw9b1tjXSkmJmUuY2FsbChsLGwuX19kYXRhX18sYyxvKSYmcy5wdXNoKGwpO3JldHVybiBuZXcgaGEobix0aGlzLl9wYXJlbnRzLHRoaXMuX25hbWUsdGhpcy5faWQpfXZhciBMVHQ9TSgoKT0+e1RzKCk7V3AoKX0pO2Z1bmN0aW9uIGtUdChlKXtpZihlLl9pZCE9PXRoaXMuX2lkKXRocm93IG5ldyBFcnJvcjtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9ZS5fZ3JvdXBzLG49dC5sZW5ndGgsaT1yLmxlbmd0aCxvPU1hdGgubWluKG4saSksYT1uZXcgQXJyYXkobikscz0wO3M8bzsrK3MpZm9yKHZhciBsPXRbc10sYz1yW3NdLHU9bC5sZW5ndGgsaD1hW3NdPW5ldyBBcnJheSh1KSxmLHA9MDtwPHU7KytwKShmPWxbcF18fGNbcF0pJiYoaFtwXT1mKTtmb3IoO3M8bjsrK3MpYVtzXT10W3NdO3JldHVybiBuZXcgaGEoYSx0aGlzLl9wYXJlbnRzLHRoaXMuX25hbWUsdGhpcy5faWQpfXZhciBSVHQ9TSgoKT0+e1dwKCl9KTtmdW5jdGlvbiBoQ2UoZSl7cmV0dXJuKGUrIiIpLnRyaW0oKS5zcGxpdCgvXnxccysvKS5ldmVyeShmdW5jdGlvbih0KXt2YXIgcj10LmluZGV4T2YoIi4iKTtyZXR1cm4gcj49MCYmKHQ9dC5zbGljZSgwLHIpKSwhdHx8dD09PSJzdGFydCJ9KX1mdW5jdGlvbiBmQ2UoZSx0LHIpe3ZhciBuLGksbz1oQ2UodCk/Y1Q6R2E7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9byh0aGlzLGUpLHM9YS5vbjtzIT09biYmKGk9KG49cykuY29weSgpKS5vbih0LHIpLGEub249aX19ZnVuY3Rpb24gTlR0KGUsdCl7dmFyIHI9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9RaSh0aGlzLm5vZGUoKSxyKS5vbi5vbihlKTp0aGlzLmVhY2goZkNlKHIsZSx0KSl9dmFyIERUdD1NKCgpPT57Q3MoKX0pO2Z1bmN0aW9uIHBDZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciByIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtyIT09ZSlyZXR1cm47dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX19ZnVuY3Rpb24gT1R0KCl7cmV0dXJuIHRoaXMub24oImVuZC5yZW1vdmUiLHBDZSh0aGlzLl9pZCkpfXZhciB6VHQ9TSgoKT0+e30pO2Z1bmN0aW9uIEZUdChlKXt2YXIgdD10aGlzLl9uYW1lLHI9dGhpcy5faWQ7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPWd5KGUpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGk9bi5sZW5ndGgsbz1uZXcgQXJyYXkoaSksYT0wO2E8aTsrK2EpZm9yKHZhciBzPW5bYV0sbD1zLmxlbmd0aCxjPW9bYV09bmV3IEFycmF5KGwpLHUsaCxmPTA7ZjxsOysrZikodT1zW2ZdKSYmKGg9ZS5jYWxsKHUsdS5fX2RhdGFfXyxmLHMpKSYmKCJfX2RhdGFfXyJpbiB1JiYoaC5fX2RhdGFfXz11Ll9fZGF0YV9fKSxjW2ZdPWgsbGcoY1tmXSx0LHIsZixjLFFpKHUscikpKTtyZXR1cm4gbmV3IGhhKG8sdGhpcy5fcGFyZW50cyx0LHIpfXZhciBCVHQ9TSgoKT0+e1RzKCk7V3AoKTtDcygpfSk7ZnVuY3Rpb24gSFR0KGUpe3ZhciB0PXRoaXMuX25hbWUscj10aGlzLl9pZDt0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmKGU9WTUoZSkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsaT1uLmxlbmd0aCxvPVtdLGE9W10scz0wO3M8aTsrK3MpZm9yKHZhciBsPW5bc10sYz1sLmxlbmd0aCx1LGg9MDtoPGM7KytoKWlmKHU9bFtoXSl7Zm9yKHZhciBmPWUuY2FsbCh1LHUuX19kYXRhX18saCxsKSxwLGQ9UWkodSxyKSxnPTAsXz1mLmxlbmd0aDtnPF87KytnKShwPWZbZ10pJiZsZyhwLHQscixnLGYsZCk7by5wdXNoKGYpLGEucHVzaCh1KX1yZXR1cm4gbmV3IGhhKG8sYSx0LHIpfXZhciBWVHQ9TSgoKT0+e1RzKCk7V3AoKTtDcygpfSk7ZnVuY3Rpb24gVVR0KCl7cmV0dXJuIG5ldyBkQ2UodGhpcy5fZ3JvdXBzLHRoaXMuX3BhcmVudHMpfXZhciBkQ2UscVR0PU0oKCk9PntUcygpO2RDZT1xcC5wcm90b3R5cGUuY29uc3RydWN0b3J9KTtmdW5jdGlvbiBtQ2UoZSx0KXt2YXIgcixuLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89c2codGhpcyxlKSxhPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KGUpLHNnKHRoaXMsZSkpO3JldHVybiBvPT09YT9udWxsOm89PT1yJiZhPT09bj9pOmk9dChyPW8sbj1hKX19ZnVuY3Rpb24gR1R0KGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoZSl9fWZ1bmN0aW9uIGdDZShlLHQscil7dmFyIG4saT1yKyIiLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9c2codGhpcyxlKTtyZXR1cm4gYT09PWk/bnVsbDphPT09bj9vOm89dChuPWEscil9fWZ1bmN0aW9uIF9DZShlLHQscil7dmFyIG4saSxvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPXNnKHRoaXMsZSkscz1yKHRoaXMpLGw9cysiIjtyZXR1cm4gcz09bnVsbCYmKGw9cz0odGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShlKSxzZyh0aGlzLGUpKSksYT09PWw/bnVsbDphPT09biYmbD09PWk/bzooaT1sLG89dChuPWEscykpfX1mdW5jdGlvbiB5Q2UoZSx0KXt2YXIgcixuLGksbz0ic3R5bGUuIit0LGE9ImVuZC4iK28scztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbD1HYSh0aGlzLGUpLGM9bC5vbix1PWwudmFsdWVbb109PW51bGw/c3x8KHM9R1R0KHQpKTp2b2lkIDA7KGMhPT1yfHxpIT09dSkmJihuPShyPWMpLmNvcHkoKSkub24oYSxpPXUpLGwub249bn19ZnVuY3Rpb24gV1R0KGUsdCxyKXt2YXIgbj0oZSs9IiIpPT0idHJhbnNmb3JtIj9oSzpqUjtyZXR1cm4gdD09bnVsbD90aGlzLnN0eWxlVHdlZW4oZSxtQ2UoZSxuKSkub24oImVuZC5zdHlsZS4iK2UsR1R0KGUpKTp0eXBlb2YgdD09ImZ1bmN0aW9uIj90aGlzLnN0eWxlVHdlZW4oZSxfQ2UoZSxuLGQyKHRoaXMsInN0eWxlLiIrZSx0KSkpLmVhY2goeUNlKHRoaXMuX2lkLGUpKTp0aGlzLnN0eWxlVHdlZW4oZSxnQ2UoZSxuLHQpLHIpLm9uKCJlbmQuc3R5bGUuIitlLG51bGwpfXZhciBZVHQ9TSgoKT0+e3JUKCk7VHMoKTtDcygpO3VUKCk7eUsoKX0pO2Z1bmN0aW9uIHZDZShlLHQscil7cmV0dXJuIGZ1bmN0aW9uKG4pe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkoZSx0LmNhbGwodGhpcyxuKSxyKX19ZnVuY3Rpb24geENlKGUsdCxyKXt2YXIgbixpO2Z1bmN0aW9uIG8oKXt2YXIgYT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gYSE9PWkmJihuPShpPWEpJiZ2Q2UoZSxhLHIpKSxufXJldHVybiBvLl92YWx1ZT10LG99ZnVuY3Rpb24galR0KGUsdCxyKXt2YXIgbj0ic3R5bGUuIisoZSs9IiIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4obj10aGlzLnR3ZWVuKG4pKSYmbi5fdmFsdWU7aWYodD09bnVsbClyZXR1cm4gdGhpcy50d2VlbihuLG51bGwpO2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gdGhpcy50d2VlbihuLHhDZShlLHQscj09bnVsbD8iIjpyKSl9dmFyIFhUdD1NKCgpPT57fSk7ZnVuY3Rpb24gYkNlKGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9ZX19ZnVuY3Rpb24gd0NlKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PWUodGhpcyk7dGhpcy50ZXh0Q29udGVudD10PT1udWxsPyIiOnR9fWZ1bmN0aW9uICRUdChlKXtyZXR1cm4gdGhpcy50d2VlbigidGV4dCIsdHlwZW9mIGU9PSJmdW5jdGlvbiI/d0NlKGQyKHRoaXMsInRleHQiLGUpKTpiQ2UoZT09bnVsbD8iIjplKyIiKSl9dmFyIEtUdD1NKCgpPT57dVQoKX0pO2Z1bmN0aW9uIFNDZShlKXtyZXR1cm4gZnVuY3Rpb24odCl7dGhpcy50ZXh0Q29udGVudD1lLmNhbGwodGhpcyx0KX19ZnVuY3Rpb24gTUNlKGUpe3ZhciB0LHI7ZnVuY3Rpb24gbigpe3ZhciBpPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBpIT09ciYmKHQ9KHI9aSkmJlNDZShpKSksdH1yZXR1cm4gbi5fdmFsdWU9ZSxufWZ1bmN0aW9uIFpUdChlKXt2YXIgdD0idGV4dCI7aWYoYXJndW1lbnRzLmxlbmd0aDwxKXJldHVybih0PXRoaXMudHdlZW4odCkpJiZ0Ll92YWx1ZTtpZihlPT1udWxsKXJldHVybiB0aGlzLnR3ZWVuKHQsbnVsbCk7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0aGlzLnR3ZWVuKHQsTUNlKGUpKX12YXIgSlR0PU0oKCk9Pnt9KTtmdW5jdGlvbiBRVHQoKXtmb3IodmFyIGU9dGhpcy5fbmFtZSx0PXRoaXMuX2lkLHI9WFIoKSxuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLG89MDtvPGk7KytvKWZvcih2YXIgYT1uW29dLHM9YS5sZW5ndGgsbCxjPTA7YzxzOysrYylpZihsPWFbY10pe3ZhciB1PVFpKGwsdCk7bGcobCxlLHIsYyxhLHt0aW1lOnUudGltZSt1LmRlbGF5K3UuZHVyYXRpb24sZGVsYXk6MCxkdXJhdGlvbjp1LmR1cmF0aW9uLGVhc2U6dS5lYXNlfSl9cmV0dXJuIG5ldyBoYShuLHRoaXMuX3BhcmVudHMsZSxyKX12YXIgdEN0PU0oKCk9PntXcCgpO0NzKCl9KTtmdW5jdGlvbiBlQ3QoKXt2YXIgZSx0LHI9dGhpcyxuPXIuX2lkLGk9ci5zaXplKCk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8sYSl7dmFyIHM9e3ZhbHVlOmF9LGw9e3ZhbHVlOmZ1bmN0aW9uKCl7LS1pPT09MCYmbygpfX07ci5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9R2EodGhpcyxuKSx1PWMub247dSE9PWUmJih0PShlPXUpLmNvcHkoKSx0Ll8uY2FuY2VsLnB1c2gocyksdC5fLmludGVycnVwdC5wdXNoKHMpLHQuXy5lbmQucHVzaChsKSksYy5vbj10fSl9KX12YXIgckN0PU0oKCk9PntDcygpfSk7ZnVuY3Rpb24gaGEoZSx0LHIsbil7dGhpcy5fZ3JvdXBzPWUsdGhpcy5fcGFyZW50cz10LHRoaXMuX25hbWU9cix0aGlzLl9pZD1ufWZ1bmN0aW9uIHZLKGUpe3JldHVybiBxcCgpLnRyYW5zaXRpb24oZSl9ZnVuY3Rpb24gWFIoKXtyZXR1cm4rK0VDZX12YXIgRUNlLG0yLFdwPU0oKCk9PntUcygpO2JUdCgpO1NUdCgpO0VUdCgpO0NUdCgpO1BUdCgpO0xUdCgpO1JUdCgpO0RUdCgpO3pUdCgpO0JUdCgpO1ZUdCgpO3FUdCgpO1lUdCgpO1hUdCgpO0tUdCgpO0pUdCgpO3RDdCgpO3VUKCk7ckN0KCk7RUNlPTA7bTI9cXAucHJvdG90eXBlO2hhLnByb3RvdHlwZT12Sy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmhhLHNlbGVjdDpGVHQsc2VsZWN0QWxsOkhUdCxmaWx0ZXI6SVR0LG1lcmdlOmtUdCxzZWxlY3Rpb246VVR0LHRyYW5zaXRpb246UVR0LGNhbGw6bTIuY2FsbCxub2RlczptMi5ub2Rlcyxub2RlOm0yLm5vZGUsc2l6ZTptMi5zaXplLGVtcHR5Om0yLmVtcHR5LGVhY2g6bTIuZWFjaCxvbjpOVHQsYXR0cjp4VHQsYXR0clR3ZWVuOndUdCxzdHlsZTpXVHQsc3R5bGVUd2VlbjpqVHQsdGV4dDokVHQsdGV4dFR3ZWVuOlpUdCxyZW1vdmU6T1R0LHR3ZWVuOnZUdCxkZWxheTpNVHQsZHVyYXRpb246VFR0LGVhc2U6QVR0LGVuZDplQ3R9fSk7ZnVuY3Rpb24gVENlKGUsdCl7Zm9yKHZhciByOyEocj1lLl9fdHJhbnNpdGlvbil8fCEocj1yW3RdKTspaWYoIShlPWUucGFyZW50Tm9kZSkpcmV0dXJuIHhLLnRpbWU9ZjIoKSx4SztyZXR1cm4gcn1mdW5jdGlvbiBuQ3QoZSl7dmFyIHQscjtlIGluc3RhbmNlb2YgaGE/KHQ9ZS5faWQsZT1lLl9uYW1lKToodD1YUigpLChyPXhLKS50aW1lPWYyKCksZT1lPT1udWxsP251bGw6ZSsiIik7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLG89MDtvPGk7KytvKWZvcih2YXIgYT1uW29dLHM9YS5sZW5ndGgsbCxjPTA7YzxzOysrYykobD1hW2NdKSYmbGcobCxlLHQsYyxhLHJ8fFRDZShsLHQpKTtyZXR1cm4gbmV3IGhhKG4sdGhpcy5fcGFyZW50cyxlLHQpfXZhciB4SyxpQ3Q9TSgoKT0+e1dwKCk7Q3MoKTtMXygpO21LKCk7eEs9e3RpbWU6bnVsbCxkZWxheTowLGR1cmF0aW9uOjI1MCxlYXNlOmJzfX0pO3ZhciBvQ3Q9TSgoKT0+e1RzKCk7eVR0KCk7aUN0KCk7cXAucHJvdG90eXBlLmludGVycnVwdD1fVHQ7cXAucHJvdG90eXBlLnRyYW5zaXRpb249bkN0fSk7dmFyIGFDdD1NKCgpPT57V3AoKTtDcygpfSk7dmFyIHNDdD1NKCgpPT57b0N0KCk7V3AoKTthQ3QoKTtfSygpfSk7ZnVuY3Rpb24gYksoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciBsQ3Q9TSgoKT0+e30pO2Z1bmN0aW9uIGNDdChlLHQscil7dGhpcy50YXJnZXQ9ZSx0aGlzLnR5cGU9dCx0aGlzLnNlbGVjdGlvbj1yfXZhciB1Q3Q9TSgoKT0+e30pO2Z1bmN0aW9uIHdLKCl7d3Iuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gaFQoKXt3ci5wcmV2ZW50RGVmYXVsdCgpLHdyLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfXZhciBoQ3Q9TSgoKT0+e1RzKCl9KTtmdW5jdGlvbiBmVChlKXtyZXR1cm57dHlwZTplfX1mdW5jdGlvbiBJQ2UoKXtyZXR1cm4hd3IuYnV0dG9ufWZ1bmN0aW9uIExDZSgpe3ZhciBlPXRoaXMub3duZXJTVkdFbGVtZW50fHx0aGlzO3JldHVybltbMCwwXSxbZS53aWR0aC5iYXNlVmFsLnZhbHVlLGUuaGVpZ2h0LmJhc2VWYWwudmFsdWVdXX1mdW5jdGlvbiBNSyhlKXtmb3IoOyFlLl9fYnJ1c2g7KWlmKCEoZT1lLnBhcmVudE5vZGUpKXJldHVybjtyZXR1cm4gZS5fX2JydXNofWZ1bmN0aW9uIEVLKGUpe3JldHVybiBlWzBdWzBdPT09ZVsxXVswXXx8ZVswXVsxXT09PWVbMV1bMV19ZnVuY3Rpb24gbUN0KGUpe3ZhciB0PWUuX19icnVzaDtyZXR1cm4gdD90LmRpbS5vdXRwdXQodC5zZWxlY3Rpb24pOm51bGx9ZnVuY3Rpb24gZ0N0KCl7cmV0dXJuIFRLKCRSKX1mdW5jdGlvbiBfQ3QoKXtyZXR1cm4gVEsoS1IpfWZ1bmN0aW9uIHlDdCgpe3JldHVybiBUSyhDQ2UpfWZ1bmN0aW9uIFRLKGUpe3ZhciB0PUxDZSxyPUlDZSxuPVc1KGEsInN0YXJ0IiwiYnJ1c2giLCJlbmQiKSxpPTYsbztmdW5jdGlvbiBhKGYpe3ZhciBwPWYucHJvcGVydHkoIl9fYnJ1c2giLGgpLnNlbGVjdEFsbCgiLm92ZXJsYXkiKS5kYXRhKFtmVCgib3ZlcmxheSIpXSk7cC5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwib3ZlcmxheSIpLmF0dHIoInBvaW50ZXItZXZlbnRzIiwiYWxsIikuYXR0cigiY3Vyc29yIixZcC5vdmVybGF5KS5tZXJnZShwKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGc9TUsodGhpcykuZXh0ZW50O0dwKHRoaXMpLmF0dHIoIngiLGdbMF1bMF0pLmF0dHIoInkiLGdbMF1bMV0pLmF0dHIoIndpZHRoIixnWzFdWzBdLWdbMF1bMF0pLmF0dHIoImhlaWdodCIsZ1sxXVsxXS1nWzBdWzFdKX0pLGYuc2VsZWN0QWxsKCIuc2VsZWN0aW9uIikuZGF0YShbZlQoInNlbGVjdGlvbiIpXSkuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsInNlbGVjdGlvbiIpLmF0dHIoImN1cnNvciIsWXAuc2VsZWN0aW9uKS5hdHRyKCJmaWxsIiwiIzc3NyIpLmF0dHIoImZpbGwtb3BhY2l0eSIsLjMpLmF0dHIoInN0cm9rZSIsIiNmZmYiKS5hdHRyKCJzaGFwZS1yZW5kZXJpbmciLCJjcmlzcEVkZ2VzIik7dmFyIGQ9Zi5zZWxlY3RBbGwoIi5oYW5kbGUiKS5kYXRhKGUuaGFuZGxlcyxmdW5jdGlvbihnKXtyZXR1cm4gZy50eXBlfSk7ZC5leGl0KCkucmVtb3ZlKCksZC5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIixmdW5jdGlvbihnKXtyZXR1cm4iaGFuZGxlIGhhbmRsZS0tIitnLnR5cGV9KS5hdHRyKCJjdXJzb3IiLGZ1bmN0aW9uKGcpe3JldHVybiBZcFtnLnR5cGVdfSksZi5lYWNoKHMpLmF0dHIoImZpbGwiLCJub25lIikuYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKS5zdHlsZSgiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIiwicmdiYSgwLDAsMCwwKSIpLm9uKCJtb3VzZWRvd24uYnJ1c2ggdG91Y2hzdGFydC5icnVzaCIsdSl9YS5tb3ZlPWZ1bmN0aW9uKGYscCl7Zi5zZWxlY3Rpb24/Zi5vbigic3RhcnQuYnJ1c2giLGZ1bmN0aW9uKCl7bCh0aGlzLGFyZ3VtZW50cykuYmVmb3Jlc3RhcnQoKS5zdGFydCgpfSkub24oImludGVycnVwdC5icnVzaCBlbmQuYnJ1c2giLGZ1bmN0aW9uKCl7bCh0aGlzLGFyZ3VtZW50cykuZW5kKCl9KS50d2VlbigiYnJ1c2giLGZ1bmN0aW9uKCl7dmFyIGQ9dGhpcyxnPWQuX19icnVzaCxfPWwoZCxhcmd1bWVudHMpLHk9Zy5zZWxlY3Rpb24seD1lLmlucHV0KHR5cGVvZiBwPT0iZnVuY3Rpb24iP3AuYXBwbHkodGhpcyxhcmd1bWVudHMpOnAsZy5leHRlbnQpLGI9eXkoeSx4KTtmdW5jdGlvbiBTKEMpe2cuc2VsZWN0aW9uPUM9PT0xJiZFSyh4KT9udWxsOmIoQykscy5jYWxsKGQpLF8uYnJ1c2goKX1yZXR1cm4geSYmeD9TOlMoMSl9KTpmLmVhY2goZnVuY3Rpb24oKXt2YXIgZD10aGlzLGc9YXJndW1lbnRzLF89ZC5fX2JydXNoLHk9ZS5pbnB1dCh0eXBlb2YgcD09ImZ1bmN0aW9uIj9wLmFwcGx5KGQsZyk6cCxfLmV4dGVudCkseD1sKGQsZykuYmVmb3Jlc3RhcnQoKTtwMihkKSxfLnNlbGVjdGlvbj15PT1udWxsfHxFSyh5KT9udWxsOnkscy5jYWxsKGQpLHguc3RhcnQoKS5icnVzaCgpLmVuZCgpfSl9O2Z1bmN0aW9uIHMoKXt2YXIgZj1HcCh0aGlzKSxwPU1LKHRoaXMpLnNlbGVjdGlvbjtwPyhmLnNlbGVjdEFsbCgiLnNlbGVjdGlvbiIpLnN0eWxlKCJkaXNwbGF5IixudWxsKS5hdHRyKCJ4IixwWzBdWzBdKS5hdHRyKCJ5IixwWzBdWzFdKS5hdHRyKCJ3aWR0aCIscFsxXVswXS1wWzBdWzBdKS5hdHRyKCJoZWlnaHQiLHBbMV1bMV0tcFswXVsxXSksZi5zZWxlY3RBbGwoIi5oYW5kbGUiKS5zdHlsZSgiZGlzcGxheSIsbnVsbCkuYXR0cigieCIsZnVuY3Rpb24oZCl7cmV0dXJuIGQudHlwZVtkLnR5cGUubGVuZ3RoLTFdPT09ImUiP3BbMV1bMF0taS8yOnBbMF1bMF0taS8yfSkuYXR0cigieSIsZnVuY3Rpb24oZCl7cmV0dXJuIGQudHlwZVswXT09PSJzIj9wWzFdWzFdLWkvMjpwWzBdWzFdLWkvMn0pLmF0dHIoIndpZHRoIixmdW5jdGlvbihkKXtyZXR1cm4gZC50eXBlPT09Im4ifHxkLnR5cGU9PT0icyI/cFsxXVswXS1wWzBdWzBdK2k6aX0pLmF0dHIoImhlaWdodCIsZnVuY3Rpb24oZCl7cmV0dXJuIGQudHlwZT09PSJlInx8ZC50eXBlPT09InciP3BbMV1bMV0tcFswXVsxXStpOml9KSk6Zi5zZWxlY3RBbGwoIi5zZWxlY3Rpb24sLmhhbmRsZSIpLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpLmF0dHIoIngiLG51bGwpLmF0dHIoInkiLG51bGwpLmF0dHIoIndpZHRoIixudWxsKS5hdHRyKCJoZWlnaHQiLG51bGwpfWZ1bmN0aW9uIGwoZixwKXtyZXR1cm4gZi5fX2JydXNoLmVtaXR0ZXJ8fG5ldyBjKGYscCl9ZnVuY3Rpb24gYyhmLHApe3RoaXMudGhhdD1mLHRoaXMuYXJncz1wLHRoaXMuc3RhdGU9Zi5fX2JydXNoLHRoaXMuYWN0aXZlPTB9Yy5wcm90b3R5cGU9e2JlZm9yZXN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuKyt0aGlzLmFjdGl2ZT09PTEmJih0aGlzLnN0YXRlLmVtaXR0ZXI9dGhpcyx0aGlzLnN0YXJ0aW5nPSEwKSx0aGlzfSxzdGFydDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0aW5nJiYodGhpcy5zdGFydGluZz0hMSx0aGlzLmVtaXQoInN0YXJ0IikpLHRoaXN9LGJydXNoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW1pdCgiYnJ1c2giKSx0aGlzfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4tLXRoaXMuYWN0aXZlPT09MCYmKGRlbGV0ZSB0aGlzLnN0YXRlLmVtaXR0ZXIsdGhpcy5lbWl0KCJlbmQiKSksdGhpc30sZW1pdDpmdW5jdGlvbihmKXskJChuZXcgY0N0KGEsZixlLm91dHB1dCh0aGlzLnN0YXRlLnNlbGVjdGlvbikpLG4uYXBwbHksbixbZix0aGlzLnRoYXQsdGhpcy5hcmdzXSl9fTtmdW5jdGlvbiB1KCl7aWYod3IudG91Y2hlcyl7aWYod3IuY2hhbmdlZFRvdWNoZXMubGVuZ3RoPHdyLnRvdWNoZXMubGVuZ3RoKXJldHVybiBoVCgpfWVsc2UgaWYobylyZXR1cm47aWYoIXIuYXBwbHkodGhpcyxhcmd1bWVudHMpKXJldHVybjt2YXIgZj10aGlzLHA9d3IudGFyZ2V0Ll9fZGF0YV9fLnR5cGUsZD0od3IubWV0YUtleT9wPSJvdmVybGF5IjpwKT09PSJzZWxlY3Rpb24iP2ZDdDp3ci5hbHRLZXk/XzI6ZzIsZz1lPT09S1I/bnVsbDpBQ2VbcF0sXz1lPT09JFI/bnVsbDpQQ2VbcF0seT1NSyhmKSx4PXkuZXh0ZW50LGI9eS5zZWxlY3Rpb24sUz14WzBdWzBdLEMsUCxrPXhbMF1bMV0sTyxELEI9eFsxXVswXSxJLEwsUj14WzFdWzFdLEYseixVLFcsWixydD1nJiZfJiZ3ci5zaGlmdEtleSxvdCxzdCxTdD1QUihmKSxidD1TdCxNdD1sKGYsYXJndW1lbnRzKS5iZWZvcmVzdGFydCgpO3A9PT0ib3ZlcmxheSI/eS5zZWxlY3Rpb249Yj1bW0M9ZT09PUtSP1M6U3RbMF0sTz1lPT09JFI/azpTdFsxXV0sW0k9ZT09PUtSP0I6QyxGPWU9PT0kUj9SOk9dXTooQz1iWzBdWzBdLE89YlswXVsxXSxJPWJbMV1bMF0sRj1iWzFdWzFdKSxQPUMsRD1PLEw9SSx6PUY7dmFyIGx0PUdwKGYpLmF0dHIoInBvaW50ZXItZXZlbnRzIiwibm9uZSIpLEt0PWx0LnNlbGVjdEFsbCgiLm92ZXJsYXkiKS5hdHRyKCJjdXJzb3IiLFlwW3BdKTtpZih3ci50b3VjaGVzKWx0Lm9uKCJ0b3VjaG1vdmUuYnJ1c2giLGN0LCEwKS5vbigidG91Y2hlbmQuYnJ1c2ggdG91Y2hjYW5jZWwuYnJ1c2giLGV0LCEwKTtlbHNle3ZhciBfdD1HcCh3ci52aWV3KS5vbigia2V5ZG93bi5icnVzaCIsZHQsITApLm9uKCJrZXl1cC5icnVzaCIscSwhMCkub24oIm1vdXNlbW92ZS5icnVzaCIsY3QsITApLm9uKCJtb3VzZXVwLmJydXNoIixldCwhMCk7WiQod3Iudmlldyl9d0soKSxwMihmKSxzLmNhbGwoZiksTXQuc3RhcnQoKTtmdW5jdGlvbiBjdCgpe3ZhciBwdD1QUihmKTtydCYmIW90JiYhc3QmJihNYXRoLmFicyhwdFswXS1idFswXSk+TWF0aC5hYnMocHRbMV0tYnRbMV0pP3N0PSEwOm90PSEwKSxidD1wdCxaPSEwLGhUKCksWCgpfWZ1bmN0aW9uIFgoKXt2YXIgcHQ7c3dpdGNoKFU9YnRbMF0tU3RbMF0sVz1idFsxXS1TdFsxXSxkKXtjYXNlIFNLOmNhc2UgZkN0OntnJiYoVT1NYXRoLm1heChTLUMsTWF0aC5taW4oQi1JLFUpKSxQPUMrVSxMPUkrVSksXyYmKFc9TWF0aC5tYXgoay1PLE1hdGgubWluKFItRixXKSksRD1PK1csej1GK1cpO2JyZWFrfWNhc2UgZzI6e2c8MD8oVT1NYXRoLm1heChTLUMsTWF0aC5taW4oQi1DLFUpKSxQPUMrVSxMPUkpOmc+MCYmKFU9TWF0aC5tYXgoUy1JLE1hdGgubWluKEItSSxVKSksUD1DLEw9SStVKSxfPDA/KFc9TWF0aC5tYXgoay1PLE1hdGgubWluKFItTyxXKSksRD1PK1csej1GKTpfPjAmJihXPU1hdGgubWF4KGstRixNYXRoLm1pbihSLUYsVykpLEQ9Tyx6PUYrVyk7YnJlYWt9Y2FzZSBfMjp7ZyYmKFA9TWF0aC5tYXgoUyxNYXRoLm1pbihCLEMtVSpnKSksTD1NYXRoLm1heChTLE1hdGgubWluKEIsSStVKmcpKSksXyYmKEQ9TWF0aC5tYXgoayxNYXRoLm1pbihSLE8tVypfKSksej1NYXRoLm1heChrLE1hdGgubWluKFIsRitXKl8pKSk7YnJlYWt9fUw8UCYmKGcqPS0xLHB0PUMsQz1JLEk9cHQscHQ9UCxQPUwsTD1wdCxwIGluIHBDdCYmS3QuYXR0cigiY3Vyc29yIixZcFtwPXBDdFtwXV0pKSx6PEQmJihfKj0tMSxwdD1PLE89RixGPXB0LHB0PUQsRD16LHo9cHQscCBpbiBkQ3QmJkt0LmF0dHIoImN1cnNvciIsWXBbcD1kQ3RbcF1dKSkseS5zZWxlY3Rpb24mJihiPXkuc2VsZWN0aW9uKSxvdCYmKFA9YlswXVswXSxMPWJbMV1bMF0pLHN0JiYoRD1iWzBdWzFdLHo9YlsxXVsxXSksKGJbMF1bMF0hPT1QfHxiWzBdWzFdIT09RHx8YlsxXVswXSE9PUx8fGJbMV1bMV0hPT16KSYmKHkuc2VsZWN0aW9uPVtbUCxEXSxbTCx6XV0scy5jYWxsKGYpLE10LmJydXNoKCkpfWZ1bmN0aW9uIGV0KCl7aWYod0soKSx3ci50b3VjaGVzKXtpZih3ci50b3VjaGVzLmxlbmd0aClyZXR1cm47byYmY2xlYXJUaW1lb3V0KG8pLG89c2V0VGltZW91dChmdW5jdGlvbigpe289bnVsbH0sNTAwKSxsdC5vbigidG91Y2htb3ZlLmJydXNoIHRvdWNoZW5kLmJydXNoIHRvdWNoY2FuY2VsLmJydXNoIixudWxsKX1lbHNlIEokKHdyLnZpZXcsWiksX3Qub24oImtleWRvd24uYnJ1c2gga2V5dXAuYnJ1c2ggbW91c2Vtb3ZlLmJydXNoIG1vdXNldXAuYnJ1c2giLG51bGwpO2x0LmF0dHIoInBvaW50ZXItZXZlbnRzIiwiYWxsIiksS3QuYXR0cigiY3Vyc29yIixZcC5vdmVybGF5KSx5LnNlbGVjdGlvbiYmKGI9eS5zZWxlY3Rpb24pLEVLKGIpJiYoeS5zZWxlY3Rpb249bnVsbCxzLmNhbGwoZikpLE10LmVuZCgpfWZ1bmN0aW9uIGR0KCl7c3dpdGNoKHdyLmtleUNvZGUpe2Nhc2UgMTY6e3J0PWcmJl87YnJlYWt9Y2FzZSAxODp7ZD09PWcyJiYoZyYmKEk9TC1VKmcsQz1QK1UqZyksXyYmKEY9ei1XKl8sTz1EK1cqXyksZD1fMixYKCkpO2JyZWFrfWNhc2UgMzI6eyhkPT09ZzJ8fGQ9PT1fMikmJihnPDA/ST1MLVU6Zz4wJiYoQz1QLVUpLF88MD9GPXotVzpfPjAmJihPPUQtVyksZD1TSyxLdC5hdHRyKCJjdXJzb3IiLFlwLnNlbGVjdGlvbiksWCgpKTticmVha31kZWZhdWx0OnJldHVybn1oVCgpfWZ1bmN0aW9uIHEoKXtzd2l0Y2god3Iua2V5Q29kZSl7Y2FzZSAxNjp7cnQmJihvdD1zdD1ydD0hMSxYKCkpO2JyZWFrfWNhc2UgMTg6e2Q9PT1fMiYmKGc8MD9JPUw6Zz4wJiYoQz1QKSxfPDA/Rj16Ol8+MCYmKE89RCksZD1nMixYKCkpO2JyZWFrfWNhc2UgMzI6e2Q9PT1TSyYmKHdyLmFsdEtleT8oZyYmKEk9TC1VKmcsQz1QK1UqZyksXyYmKEY9ei1XKl8sTz1EK1cqXyksZD1fMik6KGc8MD9JPUw6Zz4wJiYoQz1QKSxfPDA/Rj16Ol8+MCYmKE89RCksZD1nMiksS3QuYXR0cigiY3Vyc29yIixZcFtwXSksWCgpKTticmVha31kZWZhdWx0OnJldHVybn1oVCgpfX1mdW5jdGlvbiBoKCl7dmFyIGY9dGhpcy5fX2JydXNofHx7c2VsZWN0aW9uOm51bGx9O3JldHVybiBmLmV4dGVudD10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxmLmRpbT1lLGZ9cmV0dXJuIGEuZXh0ZW50PWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXR5cGVvZiBmPT0iZnVuY3Rpb24iP2Y6YksoW1srZlswXVswXSwrZlswXVsxXV0sWytmWzFdWzBdLCtmWzFdWzFdXV0pLGEpOnR9LGEuZmlsdGVyPWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXR5cGVvZiBmPT0iZnVuY3Rpb24iP2Y6YksoISFmKSxhKTpyfSxhLmhhbmRsZVNpemU9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K2YsYSk6aX0sYS5vbj1mdW5jdGlvbigpe3ZhciBmPW4ub24uYXBwbHkobixhcmd1bWVudHMpO3JldHVybiBmPT09bj9hOmZ9LGF9dmFyIGZDdCxTSyxnMixfMiwkUixLUixDQ2UsWXAscEN0LGRDdCxBQ2UsUENlLHZDdD1NKCgpPT57RiQoKTtQNXQoKTtyVCgpO1RzKCk7c0N0KCk7bEN0KCk7dUN0KCk7aEN0KCk7ZkN0PXtuYW1lOiJkcmFnIn0sU0s9e25hbWU6InNwYWNlIn0sZzI9e25hbWU6ImhhbmRsZSJ9LF8yPXtuYW1lOiJjZW50ZXIifSwkUj17bmFtZToieCIsaGFuZGxlczpbImUiLCJ3Il0ubWFwKGZUKSxpbnB1dDpmdW5jdGlvbihlLHQpe3JldHVybiBlJiZbW2VbMF0sdFswXVsxXV0sW2VbMV0sdFsxXVsxXV1dfSxvdXRwdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJltlWzBdWzBdLGVbMV1bMF1dfX0sS1I9e25hbWU6InkiLGhhbmRsZXM6WyJuIiwicyJdLm1hcChmVCksaW5wdXQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmW1t0WzBdWzBdLGVbMF1dLFt0WzFdWzBdLGVbMV1dXX0sb3V0cHV0OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZbZVswXVsxXSxlWzFdWzFdXX19LENDZT17bmFtZToieHkiLGhhbmRsZXM6WyJuIiwiZSIsInMiLCJ3IiwibnciLCJuZSIsInNlIiwic3ciXS5tYXAoZlQpLGlucHV0OmZ1bmN0aW9uKGUpe3JldHVybiBlfSxvdXRwdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9fSxZcD17b3ZlcmxheToiY3Jvc3NoYWlyIixzZWxlY3Rpb246Im1vdmUiLG46Im5zLXJlc2l6ZSIsZToiZXctcmVzaXplIixzOiJucy1yZXNpemUiLHc6ImV3LXJlc2l6ZSIsbnc6Im53c2UtcmVzaXplIixuZToibmVzdy1yZXNpemUiLHNlOiJud3NlLXJlc2l6ZSIsc3c6Im5lc3ctcmVzaXplIn0scEN0PXtlOiJ3Iix3OiJlIixudzoibmUiLG5lOiJudyIsc2U6InN3Iixzdzoic2UifSxkQ3Q9e246InMiLHM6Im4iLG53OiJzdyIsbmU6InNlIixzZToibmUiLHN3OiJudyJ9LEFDZT17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46bnVsbCxlOjEsczpudWxsLHc6LTEsbnc6LTEsbmU6MSxzZToxLHN3Oi0xfSxQQ2U9e292ZXJsYXk6MSxzZWxlY3Rpb246MSxuOi0xLGU6bnVsbCxzOjEsdzpudWxsLG53Oi0xLG5lOi0xLHNlOjEsc3c6MX19KTt2YXIgeEN0PU0oKCk9Pnt2Q3QoKX0pO2Z1bmN0aW9uIGNnKGUsdCl7cmV0dXJuIGU8dD8tMTplPnQ/MTplPj10PzA6TmFOfXZhciB4eT1NKCgpPT57fSk7ZnVuY3Rpb24gQ0soZSl7cmV0dXJuIGUubGVuZ3RoPT09MSYmKGU9a0NlKGUpKSx7bGVmdDpmdW5jdGlvbih0LHIsbixpKXtmb3Iobj09bnVsbCYmKG49MCksaT09bnVsbCYmKGk9dC5sZW5ndGgpO248aTspe3ZhciBvPW4raT4+PjE7ZSh0W29dLHIpPDA/bj1vKzE6aT1vfXJldHVybiBufSxyaWdodDpmdW5jdGlvbih0LHIsbixpKXtmb3Iobj09bnVsbCYmKG49MCksaT09bnVsbCYmKGk9dC5sZW5ndGgpO248aTspe3ZhciBvPW4raT4+PjE7ZSh0W29dLHIpPjA/aT1vOm49bysxfXJldHVybiBufX19ZnVuY3Rpb24ga0NlKGUpe3JldHVybiBmdW5jdGlvbih0LHIpe3JldHVybiBjZyhlKHQpLHIpfX12YXIgQUs9TSgoKT0+e3h5KCl9KTt2YXIgYkN0LFJDZSxOQ2UsUEs9TSgoKT0+e3h5KCk7QUsoKTtiQ3Q9Q0soY2cpLFJDZT1iQ3QucmlnaHQsTkNlPWJDdC5sZWZ0fSk7dmFyIElLPU0oKCk9Pnt9KTt2YXIgd0N0PU0oKCk9PntJSygpfSk7dmFyIFNDdD1NKCgpPT57fSk7dmFyIHkyPU0oKCk9Pnt9KTt2YXIgTEs9TSgoKT0+e3kyKCl9KTt2YXIga0s9TSgoKT0+e0xLKCl9KTt2YXIgUks9TSgoKT0+e30pO3ZhciBNQ3QsT0NlLHpDZSxOSz1NKCgpPT57TUN0PUFycmF5LnByb3RvdHlwZSxPQ2U9TUN0LnNsaWNlLHpDZT1NQ3QubWFwfSk7dmFyIEVDdD1NKCgpPT57fSk7dmFyIFRDdD1NKCgpPT57fSk7ZnVuY3Rpb24gcFQoZSx0LHIpe2U9K2UsdD0rdCxyPShpPWFyZ3VtZW50cy5sZW5ndGgpPDI/KHQ9ZSxlPTAsMSk6aTwzPzE6K3I7Zm9yKHZhciBuPS0xLGk9TWF0aC5tYXgoMCxNYXRoLmNlaWwoKHQtZSkvcikpfDAsbz1uZXcgQXJyYXkoaSk7KytuPGk7KW9bbl09ZStuKnI7cmV0dXJuIG99dmFyIERLPU0oKCk9Pnt9KTt2YXIgU2xuLE1sbixFbG4sT0s9TSgoKT0+e1Nsbj1NYXRoLnNxcnQoNTApLE1sbj1NYXRoLnNxcnQoMTApLEVsbj1NYXRoLnNxcnQoMil9KTt2YXIgeks9TSgoKT0+e30pO3ZhciBDQ3Q9TSgoKT0+e05LKCk7UEsoKTtFQ3QoKTtSSygpO1RDdCgpO0RLKCk7T0soKTt6SygpfSk7dmFyIEpSPU0oKCk9Pnt5MigpfSk7dmFyIFBDdD1NKCgpPT57TksoKTt4eSgpO3kyKCk7SlIoKX0pO3ZhciBJQ3Q9TSgoKT0+e2tLKCl9KTt2YXIgTEN0PU0oKCk9Pnt9KTt2YXIga0N0PU0oKCk9Pnt5MigpfSk7dmFyIFJDdD1NKCgpPT57eHkoKTt5MigpO0pSKCl9KTt2YXIgTkN0PU0oKCk9Pnt9KTt2YXIgRks9TSgoKT0+e30pO3ZhciBEQ3Q9TSgoKT0+e30pO3ZhciBPQ3Q9TSgoKT0+e3h5KCl9KTt2YXIgekN0PU0oKCk9Pnt9KTt2YXIgRkN0PU0oKCk9Pnt9KTt2YXIgQks9TSgoKT0+e0ZLKCl9KTt2YXIgQkN0PU0oKCk9PntCSygpfSk7dmFyIEhDdD1NKCgpPT57UEsoKTt4eSgpO0FLKCk7d0N0KCk7U0N0KCk7a0soKTtSSygpO0NDdCgpO1BDdCgpO0lDdCgpO3pLKCk7TEN0KCk7a0N0KCk7UkN0KCk7TkN0KCk7RksoKTtJSygpO0RDdCgpO0pSKCk7REsoKTtPQ3QoKTt6Q3QoKTtGQ3QoKTtPSygpO0JLKCk7TEsoKTtCQ3QoKX0pO3ZhciBISyxWSyxWQ3QsZFQsVUsscUssR0s9TSgoKT0+e0hLPU1hdGguY29zLFZLPU1hdGguc2luLFZDdD1NYXRoLlBJLGRUPVZDdC8yLFVLPVZDdCoyLHFLPU1hdGgubWF4fSk7ZnVuY3Rpb24gV0NlKGUpe3JldHVybiBmdW5jdGlvbih0LHIpe3JldHVybiBlKHQuc291cmNlLnZhbHVlK3QudGFyZ2V0LnZhbHVlLHIuc291cmNlLnZhbHVlK3IudGFyZ2V0LnZhbHVlKX19ZnVuY3Rpb24gVUN0KCl7dmFyIGU9MCx0PW51bGwscj1udWxsLG49bnVsbDtmdW5jdGlvbiBpKG8pe3ZhciBhPW8ubGVuZ3RoLHM9W10sbD1wVChhKSxjPVtdLHU9W10saD11Lmdyb3Vwcz1uZXcgQXJyYXkoYSksZj1uZXcgQXJyYXkoYSphKSxwLGQsZyxfLHkseDtmb3IocD0wLHk9LTE7Kyt5PGE7KXtmb3IoZD0wLHg9LTE7Kyt4PGE7KWQrPW9beV1beF07cy5wdXNoKGQpLGMucHVzaChwVChhKSkscCs9ZH1mb3IodCYmbC5zb3J0KGZ1bmN0aW9uKEIsSSl7cmV0dXJuIHQoc1tCXSxzW0ldKX0pLHImJmMuZm9yRWFjaChmdW5jdGlvbihCLEkpe0Iuc29ydChmdW5jdGlvbihMLFIpe3JldHVybiByKG9bSV1bTF0sb1tJXVtSXSl9KX0pLHA9cUsoMCxVSy1lKmEpL3AsXz1wP2U6VUsvYSxkPTAseT0tMTsrK3k8YTspe2ZvcihnPWQseD0tMTsrK3g8YTspe3ZhciBiPWxbeV0sUz1jW2JdW3hdLEM9b1tiXVtTXSxQPWQsaz1kKz1DKnA7ZltTKmErYl09e2luZGV4OmIsc3ViaW5kZXg6UyxzdGFydEFuZ2xlOlAsZW5kQW5nbGU6ayx2YWx1ZTpDfX1oW2JdPXtpbmRleDpiLHN0YXJ0QW5nbGU6ZyxlbmRBbmdsZTpkLHZhbHVlOnNbYl19LGQrPV99Zm9yKHk9LTE7Kyt5PGE7KWZvcih4PXktMTsrK3g8YTspe3ZhciBPPWZbeCphK3ldLEQ9Zlt5KmEreF07KE8udmFsdWV8fEQudmFsdWUpJiZ1LnB1c2goTy52YWx1ZTxELnZhbHVlP3tzb3VyY2U6RCx0YXJnZXQ6T306e3NvdXJjZTpPLHRhcmdldDpEfSl9cmV0dXJuIG4/dS5zb3J0KG4pOnV9cmV0dXJuIGkucGFkQW5nbGU9ZnVuY3Rpb24obyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9cUsoMCxvKSxpKTplfSxpLnNvcnRHcm91cHM9ZnVuY3Rpb24obyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9byxpKTp0fSxpLnNvcnRTdWJncm91cHM9ZnVuY3Rpb24obyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9byxpKTpyfSxpLnNvcnRDaG9yZHM9ZnVuY3Rpb24obyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89PW51bGw/bj1udWxsOihuPVdDZShvKSkuXz1vLGkpOm4mJm4uX30saX12YXIgcUN0PU0oKCk9PntIQ3QoKTtHSygpfSk7dmFyIEdDdCxXQ3Q9TSgoKT0+e0dDdD1BcnJheS5wcm90b3R5cGUuc2xpY2V9KTtmdW5jdGlvbiBRUihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZX19dmFyIFlDdD1NKCgpPT57fSk7ZnVuY3Rpb24gaksoKXt0aGlzLl94MD10aGlzLl95MD10aGlzLl94MT10aGlzLl95MT1udWxsLHRoaXMuXz0iIn1mdW5jdGlvbiBqQ3QoKXtyZXR1cm4gbmV3IGpLfXZhciBXSyxZSyxieSxZQ2UsWEssWEN0PU0oKCk9PntXSz1NYXRoLlBJLFlLPTIqV0ssYnk9MWUtNixZQ2U9WUstYnk7aksucHJvdG90eXBlPWpDdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmpLLG1vdmVUbzpmdW5jdGlvbihlLHQpe3RoaXMuXys9Ik0iKyh0aGlzLl94MD10aGlzLl94MT0rZSkrIiwiKyh0aGlzLl95MD10aGlzLl95MT0rdCl9LGNsb3NlUGF0aDpmdW5jdGlvbigpe3RoaXMuX3gxIT09bnVsbCYmKHRoaXMuX3gxPXRoaXMuX3gwLHRoaXMuX3kxPXRoaXMuX3kwLHRoaXMuXys9IloiKX0sbGluZVRvOmZ1bmN0aW9uKGUsdCl7dGhpcy5fKz0iTCIrKHRoaXMuX3gxPStlKSsiLCIrKHRoaXMuX3kxPSt0KX0scXVhZHJhdGljQ3VydmVUbzpmdW5jdGlvbihlLHQscixuKXt0aGlzLl8rPSJRIisgK2UrIiwiKyArdCsiLCIrKHRoaXMuX3gxPStyKSsiLCIrKHRoaXMuX3kxPStuKX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbihlLHQscixuLGksbyl7dGhpcy5fKz0iQyIrICtlKyIsIisgK3QrIiwiKyArcisiLCIrICtuKyIsIisodGhpcy5feDE9K2kpKyIsIisodGhpcy5feTE9K28pfSxhcmNUbzpmdW5jdGlvbihlLHQscixuLGkpe2U9K2UsdD0rdCxyPStyLG49K24saT0raTt2YXIgbz10aGlzLl94MSxhPXRoaXMuX3kxLHM9ci1lLGw9bi10LGM9by1lLHU9YS10LGg9YypjK3UqdTtpZihpPDApdGhyb3cgbmV3IEVycm9yKCJuZWdhdGl2ZSByYWRpdXM6ICIraSk7aWYodGhpcy5feDE9PT1udWxsKXRoaXMuXys9Ik0iKyh0aGlzLl94MT1lKSsiLCIrKHRoaXMuX3kxPXQpO2Vsc2UgaWYoaD5ieSlpZighKE1hdGguYWJzKHUqcy1sKmMpPmJ5KXx8IWkpdGhpcy5fKz0iTCIrKHRoaXMuX3gxPWUpKyIsIisodGhpcy5feTE9dCk7ZWxzZXt2YXIgZj1yLW8scD1uLWEsZD1zKnMrbCpsLGc9ZipmK3AqcCxfPU1hdGguc3FydChkKSx5PU1hdGguc3FydChoKSx4PWkqTWF0aC50YW4oKFdLLU1hdGguYWNvcygoZCtoLWcpLygyKl8qeSkpKS8yKSxiPXgveSxTPXgvXztNYXRoLmFicyhiLTEpPmJ5JiYodGhpcy5fKz0iTCIrKGUrYipjKSsiLCIrKHQrYip1KSksdGhpcy5fKz0iQSIraSsiLCIraSsiLDAsMCwiKyArKHUqZj5jKnApKyIsIisodGhpcy5feDE9ZStTKnMpKyIsIisodGhpcy5feTE9dCtTKmwpfX0sYXJjOmZ1bmN0aW9uKGUsdCxyLG4saSxvKXtlPStlLHQ9K3Qscj0rcixvPSEhbzt2YXIgYT1yKk1hdGguY29zKG4pLHM9cipNYXRoLnNpbihuKSxsPWUrYSxjPXQrcyx1PTFebyxoPW8/bi1pOmktbjtpZihyPDApdGhyb3cgbmV3IEVycm9yKCJuZWdhdGl2ZSByYWRpdXM6ICIrcik7dGhpcy5feDE9PT1udWxsP3RoaXMuXys9Ik0iK2wrIiwiK2M6KE1hdGguYWJzKHRoaXMuX3gxLWwpPmJ5fHxNYXRoLmFicyh0aGlzLl95MS1jKT5ieSkmJih0aGlzLl8rPSJMIitsKyIsIitjKSxyJiYoaDwwJiYoaD1oJVlLK1lLKSxoPllDZT90aGlzLl8rPSJBIityKyIsIityKyIsMCwxLCIrdSsiLCIrKGUtYSkrIiwiKyh0LXMpKyJBIityKyIsIityKyIsMCwxLCIrdSsiLCIrKHRoaXMuX3gxPWwpKyIsIisodGhpcy5feTE9Yyk6aD5ieSYmKHRoaXMuXys9IkEiK3IrIiwiK3IrIiwwLCIrICsoaD49V0spKyIsIit1KyIsIisodGhpcy5feDE9ZStyKk1hdGguY29zKGkpKSsiLCIrKHRoaXMuX3kxPXQrcipNYXRoLnNpbihpKSkpKX0scmVjdDpmdW5jdGlvbihlLHQscixuKXt0aGlzLl8rPSJNIisodGhpcy5feDA9dGhpcy5feDE9K2UpKyIsIisodGhpcy5feTA9dGhpcy5feTE9K3QpKyJoIisgK3IrInYiKyArbisiaCIrLXIrIloifSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fTtYSz1qQ3R9KTt2YXIgJEN0PU0oKCk9PntYQ3QoKX0pO2Z1bmN0aW9uIGpDZShlKXtyZXR1cm4gZS5zb3VyY2V9ZnVuY3Rpb24gWENlKGUpe3JldHVybiBlLnRhcmdldH1mdW5jdGlvbiAkQ2UoZSl7cmV0dXJuIGUucmFkaXVzfWZ1bmN0aW9uIEtDZShlKXtyZXR1cm4gZS5zdGFydEFuZ2xlfWZ1bmN0aW9uIFpDZShlKXtyZXR1cm4gZS5lbmRBbmdsZX1mdW5jdGlvbiBLQ3QoKXt2YXIgZT1qQ2UsdD1YQ2Uscj0kQ2Usbj1LQ2UsaT1aQ2Usbz1udWxsO2Z1bmN0aW9uIGEoKXt2YXIgcyxsPUdDdC5jYWxsKGFyZ3VtZW50cyksYz1lLmFwcGx5KHRoaXMsbCksdT10LmFwcGx5KHRoaXMsbCksaD0rci5hcHBseSh0aGlzLChsWzBdPWMsbCkpLGY9bi5hcHBseSh0aGlzLGwpLWRULHA9aS5hcHBseSh0aGlzLGwpLWRULGQ9aCpISyhmKSxnPWgqVksoZiksXz0rci5hcHBseSh0aGlzLChsWzBdPXUsbCkpLHk9bi5hcHBseSh0aGlzLGwpLWRULHg9aS5hcHBseSh0aGlzLGwpLWRUO2lmKG98fChvPXM9WEsoKSksby5tb3ZlVG8oZCxnKSxvLmFyYygwLDAsaCxmLHApLChmIT09eXx8cCE9PXgpJiYoby5xdWFkcmF0aWNDdXJ2ZVRvKDAsMCxfKkhLKHkpLF8qVksoeSkpLG8uYXJjKDAsMCxfLHkseCkpLG8ucXVhZHJhdGljQ3VydmVUbygwLDAsZCxnKSxvLmNsb3NlUGF0aCgpLHMpcmV0dXJuIG89bnVsbCxzKyIifHxudWxsfXJldHVybiBhLnJhZGl1cz1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10eXBlb2Ygcz09ImZ1bmN0aW9uIj9zOlFSKCtzKSxhKTpyfSxhLnN0YXJ0QW5nbGU9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dHlwZW9mIHM9PSJmdW5jdGlvbiI/czpRUigrcyksYSk6bn0sYS5lbmRBbmdsZT1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10eXBlb2Ygcz09ImZ1bmN0aW9uIj9zOlFSKCtzKSxhKTppfSxhLnNvdXJjZT1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1zLGEpOmV9LGEudGFyZ2V0PWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXMsYSk6dH0sYS5jb250ZXh0PWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXM9PW51bGw/bnVsbDpzLGEpOm99LGF9dmFyIFpDdD1NKCgpPT57V0N0KCk7WUN0KCk7R0soKTskQ3QoKX0pO3ZhciBKQ3Q9TSgoKT0+e3FDdCgpO1pDdCgpfSk7ZnVuY3Rpb24gdE4oKXt9ZnVuY3Rpb24gUUN0KGUsdCl7dmFyIHI9bmV3IHROO2lmKGUgaW5zdGFuY2VvZiB0TillLmVhY2goZnVuY3Rpb24ocyxsKXtyLnNldChsLHMpfSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKXt2YXIgbj0tMSxpPWUubGVuZ3RoLG87aWYodD09bnVsbClmb3IoOysrbjxpOylyLnNldChuLGVbbl0pO2Vsc2UgZm9yKDsrK248aTspci5zZXQodChvPWVbbl0sbixlKSxvKX1lbHNlIGlmKGUpZm9yKHZhciBhIGluIGUpci5zZXQoYSxlW2FdKTtyZXR1cm4gcn12YXIgY2wsd3ksZU49TSgoKT0+e2NsPSIkIjt0Ti5wcm90b3R5cGU9UUN0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6dE4saGFzOmZ1bmN0aW9uKGUpe3JldHVybiBjbCtlIGluIHRoaXN9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpc1tjbCtlXX0sc2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXNbY2wrZV09dCx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oZSl7dmFyIHQ9Y2wrZTtyZXR1cm4gdCBpbiB0aGlzJiZkZWxldGUgdGhpc1t0XX0sY2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09Y2wmJmRlbGV0ZSB0aGlzW2VdfSxrZXlzOmZ1bmN0aW9uKCl7dmFyIGU9W107Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PWNsJiZlLnB1c2godC5zbGljZSgxKSk7cmV0dXJuIGV9LHZhbHVlczpmdW5jdGlvbigpe3ZhciBlPVtdO2Zvcih2YXIgdCBpbiB0aGlzKXRbMF09PT1jbCYmZS5wdXNoKHRoaXNbdF0pO3JldHVybiBlfSxlbnRyaWVzOmZ1bmN0aW9uKCl7dmFyIGU9W107Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PWNsJiZlLnB1c2goe2tleTp0LnNsaWNlKDEpLHZhbHVlOnRoaXNbdF19KTtyZXR1cm4gZX0sc2l6ZTpmdW5jdGlvbigpe3ZhciBlPTA7Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PWNsJiYrK2U7cmV0dXJuIGV9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBlIGluIHRoaXMpaWYoZVswXT09PWNsKXJldHVybiExO3JldHVybiEwfSxlYWNoOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCBpbiB0aGlzKXRbMF09PT1jbCYmZSh0aGlzW3RdLHQuc2xpY2UoMSksdGhpcyl9fTt3eT1RQ3R9KTtmdW5jdGlvbiByQXQoKXt2YXIgZT1bXSx0PVtdLHIsbixpO2Z1bmN0aW9uIG8ocyxsLGMsdSl7aWYobD49ZS5sZW5ndGgpcmV0dXJuIHIhPW51bGwmJnMuc29ydChyKSxuIT1udWxsP24ocyk6cztmb3IodmFyIGg9LTEsZj1zLmxlbmd0aCxwPWVbbCsrXSxkLGcsXz13eSgpLHkseD1jKCk7KytoPGY7KSh5PV8uZ2V0KGQ9cChnPXNbaF0pKyIiKSk/eS5wdXNoKGcpOl8uc2V0KGQsW2ddKTtyZXR1cm4gXy5lYWNoKGZ1bmN0aW9uKGIsUyl7dSh4LFMsbyhiLGwsYyx1KSl9KSx4fWZ1bmN0aW9uIGEocyxsKXtpZigrK2w+ZS5sZW5ndGgpcmV0dXJuIHM7dmFyIGMsdT10W2wtMV07cmV0dXJuIG4hPW51bGwmJmw+PWUubGVuZ3RoP2M9cy5lbnRyaWVzKCk6KGM9W10scy5lYWNoKGZ1bmN0aW9uKGgsZil7Yy5wdXNoKHtrZXk6Zix2YWx1ZXM6YShoLGwpfSl9KSksdSE9bnVsbD9jLnNvcnQoZnVuY3Rpb24oaCxmKXtyZXR1cm4gdShoLmtleSxmLmtleSl9KTpjfXJldHVybiBpPXtvYmplY3Q6ZnVuY3Rpb24ocyl7cmV0dXJuIG8ocywwLEpDZSxRQ2UpfSxtYXA6ZnVuY3Rpb24ocyl7cmV0dXJuIG8ocywwLHRBdCxlQXQpfSxlbnRyaWVzOmZ1bmN0aW9uKHMpe3JldHVybiBhKG8ocywwLHRBdCxlQXQpLDApfSxrZXk6ZnVuY3Rpb24ocyl7cmV0dXJuIGUucHVzaChzKSxpfSxzb3J0S2V5czpmdW5jdGlvbihzKXtyZXR1cm4gdFtlLmxlbmd0aC0xXT1zLGl9LHNvcnRWYWx1ZXM6ZnVuY3Rpb24ocyl7cmV0dXJuIHI9cyxpfSxyb2xsdXA6ZnVuY3Rpb24ocyl7cmV0dXJuIG49cyxpfX19ZnVuY3Rpb24gSkNlKCl7cmV0dXJue319ZnVuY3Rpb24gUUNlKGUsdCxyKXtlW3RdPXJ9ZnVuY3Rpb24gdEF0KCl7cmV0dXJuIHd5KCl9ZnVuY3Rpb24gZUF0KGUsdCxyKXtlLnNldCh0LHIpfXZhciBuQXQ9TSgoKT0+e2VOKCl9KTtmdW5jdGlvbiByTigpe31mdW5jdGlvbiBpQXQoZSx0KXt2YXIgcj1uZXcgck47aWYoZSBpbnN0YW5jZW9mIHJOKWUuZWFjaChmdW5jdGlvbihvKXtyLmFkZChvKX0pO2Vsc2UgaWYoZSl7dmFyIG49LTEsaT1lLmxlbmd0aDtpZih0PT1udWxsKWZvcig7KytuPGk7KXIuYWRkKGVbbl0pO2Vsc2UgZm9yKDsrK248aTspci5hZGQodChlW25dLG4sZSkpfXJldHVybiByfXZhciBTeSxvQXQsYUF0PU0oKCk9PntlTigpO1N5PXd5LnByb3RvdHlwZTtyTi5wcm90b3R5cGU9aUF0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6ck4saGFzOlN5LmhhcyxhZGQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrPSIiLHRoaXNbY2wrZV09ZSx0aGlzfSxyZW1vdmU6U3kucmVtb3ZlLGNsZWFyOlN5LmNsZWFyLHZhbHVlczpTeS5rZXlzLHNpemU6U3kuc2l6ZSxlbXB0eTpTeS5lbXB0eSxlYWNoOlN5LmVhY2h9O29BdD1pQXR9KTtmdW5jdGlvbiBzQXQoZSl7dmFyIHQ9W107Zm9yKHZhciByIGluIGUpdC5wdXNoKHIpO3JldHVybiB0fXZhciBsQXQ9TSgoKT0+e30pO2Z1bmN0aW9uIGNBdChlKXt2YXIgdD1bXTtmb3IodmFyIHIgaW4gZSl0LnB1c2goZVtyXSk7cmV0dXJuIHR9dmFyIHVBdD1NKCgpPT57fSk7ZnVuY3Rpb24gaEF0KGUpe3ZhciB0PVtdO2Zvcih2YXIgciBpbiBlKXQucHVzaCh7a2V5OnIsdmFsdWU6ZVtyXX0pO3JldHVybiB0fXZhciBmQXQ9TSgoKT0+e30pO3ZhciBwQXQ9TSgoKT0+e25BdCgpO2FBdCgpO2VOKCk7bEF0KCk7dUF0KCk7ZkF0KCl9KTtmdW5jdGlvbiBqcChlLHQscil7ZS5wcm90b3R5cGU9dC5wcm90b3R5cGU9cixyLmNvbnN0cnVjdG9yPWV9ZnVuY3Rpb24gdWcoZSx0KXt2YXIgcj1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKTtmb3IodmFyIG4gaW4gdClyW25dPXRbbl07cmV0dXJuIHJ9dmFyIG5OPU0oKCk9Pnt9KTtmdW5jdGlvbiBlZigpe31mdW5jdGlvbiB4MihlKXt2YXIgdDtyZXR1cm4gZT0oZSsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKHQ9dEFlLmV4ZWMoZSkpPyh0PXBhcnNlSW50KHRbMV0sMTYpLG5ldyB0byh0Pj44JjE1fHQ+PjQmMjQwLHQ+PjQmMTV8dCYyNDAsKHQmMTUpPDw0fHQmMTUsMSkpOih0PWVBZS5leGVjKGUpKT9tQXQocGFyc2VJbnQodFsxXSwxNikpOih0PXJBZS5leGVjKGUpKT9uZXcgdG8odFsxXSx0WzJdLHRbM10sMSk6KHQ9bkFlLmV4ZWMoZSkpP25ldyB0byh0WzFdKjI1NS8xMDAsdFsyXSoyNTUvMTAwLHRbM10qMjU1LzEwMCwxKToodD1pQWUuZXhlYyhlKSk/Z0F0KHRbMV0sdFsyXSx0WzNdLHRbNF0pOih0PW9BZS5leGVjKGUpKT9nQXQodFsxXSoyNTUvMTAwLHRbMl0qMjU1LzEwMCx0WzNdKjI1NS8xMDAsdFs0XSk6KHQ9YUFlLmV4ZWMoZSkpP19BdCh0WzFdLHRbMl0vMTAwLHRbM10vMTAwLDEpOih0PXNBZS5leGVjKGUpKT9fQXQodFsxXSx0WzJdLzEwMCx0WzNdLzEwMCx0WzRdKTpkQXQuaGFzT3duUHJvcGVydHkoZSk/bUF0KGRBdFtlXSk6ZT09PSJ0cmFuc3BhcmVudCI/bmV3IHRvKE5hTixOYU4sTmFOLDApOm51bGx9ZnVuY3Rpb24gbUF0KGUpe3JldHVybiBuZXcgdG8oZT4+MTYmMjU1LGU+PjgmMjU1LGUmMjU1LDEpfWZ1bmN0aW9uIGdBdChlLHQscixuKXtyZXR1cm4gbjw9MCYmKGU9dD1yPU5hTiksbmV3IHRvKGUsdCxyLG4pfWZ1bmN0aW9uIGdUKGUpe3JldHVybiBlIGluc3RhbmNlb2YgZWZ8fChlPXgyKGUpKSxlPyhlPWUucmdiKCksbmV3IHRvKGUucixlLmcsZS5iLGUub3BhY2l0eSkpOm5ldyB0b31mdW5jdGlvbiBLSyhlLHQscixuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/Z1QoZSk6bmV3IHRvKGUsdCxyLG49PW51bGw/MTpuKX1mdW5jdGlvbiB0byhlLHQscixuKXt0aGlzLnI9K2UsdGhpcy5nPSt0LHRoaXMuYj0rcix0aGlzLm9wYWNpdHk9K259ZnVuY3Rpb24gX0F0KGUsdCxyLG4pe3JldHVybiBuPD0wP2U9dD1yPU5hTjpyPD0wfHxyPj0xP2U9dD1OYU46dDw9MCYmKGU9TmFOKSxuZXcgUWgoZSx0LHIsbil9ZnVuY3Rpb24gbEFlKGUpe2lmKGUgaW5zdGFuY2VvZiBRaClyZXR1cm4gbmV3IFFoKGUuaCxlLnMsZS5sLGUub3BhY2l0eSk7aWYoZSBpbnN0YW5jZW9mIGVmfHwoZT14MihlKSksIWUpcmV0dXJuIG5ldyBRaDtpZihlIGluc3RhbmNlb2YgUWgpcmV0dXJuIGU7ZT1lLnJnYigpO3ZhciB0PWUuci8yNTUscj1lLmcvMjU1LG49ZS5iLzI1NSxpPU1hdGgubWluKHQscixuKSxvPU1hdGgubWF4KHQscixuKSxhPU5hTixzPW8taSxsPShvK2kpLzI7cmV0dXJuIHM/KHQ9PT1vP2E9KHItbikvcysocjxuKSo2OnI9PT1vP2E9KG4tdCkvcysyOmE9KHQtcikvcys0LHMvPWw8LjU/bytpOjItby1pLGEqPTYwKTpzPWw+MCYmbDwxPzA6YSxuZXcgUWgoYSxzLGwsZS5vcGFjaXR5KX1mdW5jdGlvbiBaSyhlLHQscixuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/bEFlKGUpOm5ldyBRaChlLHQscixuPT1udWxsPzE6bil9ZnVuY3Rpb24gUWgoZSx0LHIsbil7dGhpcy5oPStlLHRoaXMucz0rdCx0aGlzLmw9K3IsdGhpcy5vcGFjaXR5PStufWZ1bmN0aW9uICRLKGUsdCxyKXtyZXR1cm4oZTw2MD90KyhyLXQpKmUvNjA6ZTwxODA/cjplPDI0MD90KyhyLXQpKigyNDAtZSkvNjA6dCkqMjU1fXZhciBoZyxNeSx2MixtVCx0Zix0QWUsZUFlLHJBZSxuQWUsaUFlLG9BZSxhQWUsc0FlLGRBdCxpTj1NKCgpPT57bk4oKTtoZz0uNyxNeT0xL2hnLHYyPSJcXHMqKFsrLV0/XFxkKylcXHMqIixtVD0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPylcXHMqIix0Zj0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPyklXFxzKiIsdEFlPS9eIyhbMC05YS1mXXszfSkkLyxlQWU9L14jKFswLTlhLWZdezZ9KSQvLHJBZT1uZXcgUmVnRXhwKCJecmdiXFwoIitbdjIsdjIsdjJdKyJcXCkkIiksbkFlPW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1t0Zix0Zix0Zl0rIlxcKSQiKSxpQWU9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1t2Mix2Mix2MixtVF0rIlxcKSQiKSxvQWU9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1t0Zix0Zix0ZixtVF0rIlxcKSQiKSxhQWU9bmV3IFJlZ0V4cCgiXmhzbFxcKCIrW21ULHRmLHRmXSsiXFwpJCIpLHNBZT1uZXcgUmVnRXhwKCJeaHNsYVxcKCIrW21ULHRmLHRmLG1UXSsiXFwpJCIpLGRBdD17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtqcChlZix4Mix7ZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKS5kaXNwbGF5YWJsZSgpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpKyIifX0pO2pwKHRvLEtLLHVnKGVmLHticmlnaHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT1lPT1udWxsP015Ok1hdGgucG93KE15LGUpLG5ldyB0byh0aGlzLnIqZSx0aGlzLmcqZSx0aGlzLmIqZSx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZT09bnVsbD9oZzpNYXRoLnBvdyhoZyxlKSxuZXcgdG8odGhpcy5yKmUsdGhpcy5nKmUsdGhpcy5iKmUsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIDA8PXRoaXMuciYmdGhpcy5yPD0yNTUmJjA8PXRoaXMuZyYmdGhpcy5nPD0yNTUmJjA8PXRoaXMuYiYmdGhpcy5iPD0yNTUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSx0b1N0cmluZzpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3BhY2l0eTtyZXR1cm4gZT1pc05hTihlKT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSxlKSksKGU9PT0xPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKGU9PT0xPyIpIjoiLCAiK2UrIikiKX19KSk7anAoUWgsWkssdWcoZWYse2JyaWdodGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/TXk6TWF0aC5wb3coTXksZSksbmV3IFFoKHRoaXMuaCx0aGlzLnMsdGhpcy5sKmUsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/aGc6TWF0aC5wb3coaGcsZSksbmV3IFFoKHRoaXMuaCx0aGlzLnMsdGhpcy5sKmUsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5oJTM2MCsodGhpcy5oPDApKjM2MCx0PWlzTmFOKGUpfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLHI9dGhpcy5sLG49cisocjwuNT9yOjEtcikqdCxpPTIqci1uO3JldHVybiBuZXcgdG8oJEsoZT49MjQwP2UtMjQwOmUrMTIwLGksbiksJEsoZSxpLG4pLCRLKGU8MTIwP2UrMjQwOmUtMTIwLGksbiksdGhpcy5vcGFjaXR5KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9fSkpfSk7dmFyIG9OLGFOLEpLPU0oKCk9PntvTj1NYXRoLlBJLzE4MCxhTj0xODAvTWF0aC5QSX0pO2Z1bmN0aW9uIG5aKGUpe2lmKGUgaW5zdGFuY2VvZiBYcClyZXR1cm4gbmV3IFhwKGUubCxlLmEsZS5iLGUub3BhY2l0eSk7aWYoZSBpbnN0YW5jZW9mIGZnKXt2YXIgdD1lLmgqb047cmV0dXJuIG5ldyBYcChlLmwsTWF0aC5jb3ModCkqZS5jLE1hdGguc2luKHQpKmUuYyxlLm9wYWNpdHkpfWUgaW5zdGFuY2VvZiB0b3x8KGU9Z1QoZSkpO3ZhciByPXJaKGUuciksbj1yWihlLmcpLGk9clooZS5iKSxvPVFLKCguNDEyNDU2NCpyKy4zNTc1NzYxKm4rLjE4MDQzNzUqaSkveUF0KSxhPVFLKCguMjEyNjcyOSpyKy43MTUxNTIyKm4rLjA3MjE3NSppKS92QXQpLHM9UUsoKC4wMTkzMzM5KnIrLjExOTE5MipuKy45NTAzMDQxKmkpL3hBdCk7cmV0dXJuIG5ldyBYcCgxMTYqYS0xNiw1MDAqKG8tYSksMjAwKihhLXMpLGUub3BhY2l0eSl9ZnVuY3Rpb24gbE4oZSx0LHIsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP25aKGUpOm5ldyBYcChlLHQscixuPT1udWxsPzE6bil9ZnVuY3Rpb24gWHAoZSx0LHIsbil7dGhpcy5sPStlLHRoaXMuYT0rdCx0aGlzLmI9K3IsdGhpcy5vcGFjaXR5PStufWZ1bmN0aW9uIFFLKGUpe3JldHVybiBlPmNBZT9NYXRoLnBvdyhlLDEvMyk6ZS93QXQrYkF0fWZ1bmN0aW9uIHRaKGUpe3JldHVybiBlPmIyP2UqZSplOndBdCooZS1iQXQpfWZ1bmN0aW9uIGVaKGUpe3JldHVybiAyNTUqKGU8PS4wMDMxMzA4PzEyLjkyKmU6MS4wNTUqTWF0aC5wb3coZSwxLzIuNCktLjA1NSl9ZnVuY3Rpb24gclooZSl7cmV0dXJuKGUvPTI1NSk8PS4wNDA0NT9lLzEyLjkyOk1hdGgucG93KChlKy4wNTUpLzEuMDU1LDIuNCl9ZnVuY3Rpb24gdUFlKGUpe2lmKGUgaW5zdGFuY2VvZiBmZylyZXR1cm4gbmV3IGZnKGUuaCxlLmMsZS5sLGUub3BhY2l0eSk7ZSBpbnN0YW5jZW9mIFhwfHwoZT1uWihlKSk7dmFyIHQ9TWF0aC5hdGFuMihlLmIsZS5hKSphTjtyZXR1cm4gbmV3IGZnKHQ8MD90KzM2MDp0LE1hdGguc3FydChlLmEqZS5hK2UuYiplLmIpLGUubCxlLm9wYWNpdHkpfWZ1bmN0aW9uIGlaKGUsdCxyLG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT91QWUoZSk6bmV3IGZnKGUsdCxyLG49PW51bGw/MTpuKX1mdW5jdGlvbiBmZyhlLHQscixuKXt0aGlzLmg9K2UsdGhpcy5jPSt0LHRoaXMubD0rcix0aGlzLm9wYWNpdHk9K259dmFyIHNOLHlBdCx2QXQseEF0LGJBdCxiMix3QXQsY0FlLFNBdD1NKCgpPT57bk4oKTtpTigpO0pLKCk7c049MTgseUF0PS45NTA0Nyx2QXQ9MSx4QXQ9MS4wODg4MyxiQXQ9NC8yOSxiMj02LzI5LHdBdD0zKmIyKmIyLGNBZT1iMipiMipiMjtqcChYcCxsTix1ZyhlZix7YnJpZ2h0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBYcCh0aGlzLmwrc04qKGU9PW51bGw/MTplKSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IFhwKHRoaXMubC1zTiooZT09bnVsbD8xOmUpLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIGU9KHRoaXMubCsxNikvMTE2LHQ9aXNOYU4odGhpcy5hKT9lOmUrdGhpcy5hLzUwMCxyPWlzTmFOKHRoaXMuYik/ZTplLXRoaXMuYi8yMDA7cmV0dXJuIGU9dkF0KnRaKGUpLHQ9eUF0KnRaKHQpLHI9eEF0KnRaKHIpLG5ldyB0byhlWigzLjI0MDQ1NDIqdC0xLjUzNzEzODUqZS0uNDk4NTMxNCpyKSxlWigtLjk2OTI2Nip0KzEuODc2MDEwOCplKy4wNDE1NTYqciksZVooLjA1NTY0MzQqdC0uMjA0MDI1OSplKzEuMDU3MjI1MipyKSx0aGlzLm9wYWNpdHkpfX0pKTtqcChmZyxpWix1ZyhlZix7YnJpZ2h0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBmZyh0aGlzLmgsdGhpcy5jLHRoaXMubCtzTiooZT09bnVsbD8xOmUpLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IGZnKHRoaXMuaCx0aGlzLmMsdGhpcy5sLXNOKihlPT1udWxsPzE6ZSksdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIG5aKHRoaXMpLnJnYigpfX0pKX0pO2Z1bmN0aW9uIGhBZShlKXtpZihlIGluc3RhbmNlb2YgRXkpcmV0dXJuIG5ldyBFeShlLmgsZS5zLGUubCxlLm9wYWNpdHkpO2UgaW5zdGFuY2VvZiB0b3x8KGU9Z1QoZSkpO3ZhciB0PWUuci8yNTUscj1lLmcvMjU1LG49ZS5iLzI1NSxpPShUQXQqbitNQXQqdC1FQXQqcikvKFRBdCtNQXQtRUF0KSxvPW4taSxhPShfVCooci1pKS1hWipvKS9jTixzPU1hdGguc3FydChhKmErbypvKS8oX1QqaSooMS1pKSksbD1zP01hdGguYXRhbjIoYSxvKSphTi0xMjA6TmFOO3JldHVybiBuZXcgRXkobDwwP2wrMzYwOmwscyxpLGUub3BhY2l0eSl9ZnVuY3Rpb24gdU4oZSx0LHIsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP2hBZShlKTpuZXcgRXkoZSx0LHIsbj09bnVsbD8xOm4pfWZ1bmN0aW9uIEV5KGUsdCxyLG4pe3RoaXMuaD0rZSx0aGlzLnM9K3QsdGhpcy5sPStyLHRoaXMub3BhY2l0eT0rbn12YXIgQ0F0LG9aLGFaLGNOLF9ULE1BdCxFQXQsVEF0LEFBdD1NKCgpPT57bk4oKTtpTigpO0pLKCk7Q0F0PS0uMTQ4NjEsb1o9MS43ODI3NyxhWj0tLjI5MjI3LGNOPS0uOTA2NDksX1Q9MS45NzI5NCxNQXQ9X1QqY04sRUF0PV9UKm9aLFRBdD1vWiphWi1jTipDQXQ7anAoRXksdU4sdWcoZWYse2JyaWdodGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/TXk6TWF0aC5wb3coTXksZSksbmV3IEV5KHRoaXMuaCx0aGlzLnMsdGhpcy5sKmUsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/aGc6TWF0aC5wb3coaGcsZSksbmV3IEV5KHRoaXMuaCx0aGlzLnMsdGhpcy5sKmUsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIGU9aXNOYU4odGhpcy5oKT8wOih0aGlzLmgrMTIwKSpvTix0PSt0aGlzLmwscj1pc05hTih0aGlzLnMpPzA6dGhpcy5zKnQqKDEtdCksbj1NYXRoLmNvcyhlKSxpPU1hdGguc2luKGUpO3JldHVybiBuZXcgdG8oMjU1Kih0K3IqKENBdCpuK29aKmkpKSwyNTUqKHQrciooYVoqbitjTippKSksMjU1Kih0K3IqKF9UKm4pKSx0aGlzLm9wYWNpdHkpfX0pKX0pO3ZhciBQQXQ9TSgoKT0+e2lOKCk7U0F0KCk7QUF0KCl9KTtmdW5jdGlvbiBMQXQoKXtmb3IodmFyIGU9MCx0PWFyZ3VtZW50cy5sZW5ndGgscj17fSxuO2U8dDsrK2Upe2lmKCEobj1hcmd1bWVudHNbZV0rIiIpfHxuIGluIHIpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIHR5cGU6ICIrbik7cltuXT1bXX1yZXR1cm4gbmV3IGhOKHIpfWZ1bmN0aW9uIGhOKGUpe3RoaXMuXz1lfWZ1bmN0aW9uIHBBZShlLHQpe3JldHVybiBlLnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoZnVuY3Rpb24ocil7dmFyIG49IiIsaT1yLmluZGV4T2YoIi4iKTtpZihpPj0wJiYobj1yLnNsaWNlKGkrMSkscj1yLnNsaWNlKDAsaSkpLHImJiF0Lmhhc093blByb3BlcnR5KHIpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3IpO3JldHVybnt0eXBlOnIsbmFtZTpufX0pfWZ1bmN0aW9uIGRBZShlLHQpe2Zvcih2YXIgcj0wLG49ZS5sZW5ndGgsaTtyPG47KytyKWlmKChpPWVbcl0pLm5hbWU9PT10KXJldHVybiBpLnZhbHVlfWZ1bmN0aW9uIElBdChlLHQscil7Zm9yKHZhciBuPTAsaT1lLmxlbmd0aDtuPGk7KytuKWlmKGVbbl0ubmFtZT09PXQpe2Vbbl09ZkFlLGU9ZS5zbGljZSgwLG4pLmNvbmNhdChlLnNsaWNlKG4rMSkpO2JyZWFrfXJldHVybiByIT1udWxsJiZlLnB1c2goe25hbWU6dCx2YWx1ZTpyfSksZX12YXIgZkFlLGtBdCxSQXQ9TSgoKT0+e2ZBZT17dmFsdWU6ZnVuY3Rpb24oKXt9fTtoTi5wcm90b3R5cGU9TEF0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6aE4sb246ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLl8sbj1wQWUoZSsiIixyKSxpLG89LTEsYT1uLmxlbmd0aDtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcig7KytvPGE7KWlmKChpPShlPW5bb10pLnR5cGUpJiYoaT1kQWUocltpXSxlLm5hbWUpKSlyZXR1cm4gaTtyZXR1cm59aWYodCE9bnVsbCYmdHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrOiAiK3QpO2Zvcig7KytvPGE7KWlmKGk9KGU9bltvXSkudHlwZSlyW2ldPUlBdChyW2ldLGUubmFtZSx0KTtlbHNlIGlmKHQ9PW51bGwpZm9yKGkgaW4gcilyW2ldPUlBdChyW2ldLGUubmFtZSxudWxsKTtyZXR1cm4gdGhpc30sY29weTpmdW5jdGlvbigpe3ZhciBlPXt9LHQ9dGhpcy5fO2Zvcih2YXIgciBpbiB0KWVbcl09dFtyXS5zbGljZSgpO3JldHVybiBuZXcgaE4oZSl9LGNhbGw6ZnVuY3Rpb24oZSx0KXtpZigoaT1hcmd1bWVudHMubGVuZ3RoLTIpPjApZm9yKHZhciByPW5ldyBBcnJheShpKSxuPTAsaSxvO248aTsrK24pcltuXT1hcmd1bWVudHNbbisyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KGUpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK2UpO2ZvcihvPXRoaXMuX1tlXSxuPTAsaT1vLmxlbmd0aDtuPGk7KytuKW9bbl0udmFsdWUuYXBwbHkodCxyKX0sYXBwbHk6ZnVuY3Rpb24oZSx0LHIpe2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkoZSkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrZSk7Zm9yKHZhciBuPXRoaXMuX1tlXSxpPTAsbz1uLmxlbmd0aDtpPG87KytpKW5baV0udmFsdWUuYXBwbHkodCxyKX19O2tBdD1MQXR9KTt2YXIgTkF0PU0oKCk9PntSQXQoKX0pO2Z1bmN0aW9uIE9BdCgpe2Zvcih2YXIgZT0wLHQ9YXJndW1lbnRzLmxlbmd0aCxyPXt9LG47ZTx0OysrZSl7aWYoIShuPWFyZ3VtZW50c1tlXSsiIil8fG4gaW4gcnx8L1tccy5dLy50ZXN0KG4pKXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCB0eXBlOiAiK24pO3Jbbl09W119cmV0dXJuIG5ldyBmTihyKX1mdW5jdGlvbiBmTihlKXt0aGlzLl89ZX1mdW5jdGlvbiBnQWUoZSx0KXtyZXR1cm4gZS50cmltKCkuc3BsaXQoL158XHMrLykubWFwKGZ1bmN0aW9uKHIpe3ZhciBuPSIiLGk9ci5pbmRleE9mKCIuIik7aWYoaT49MCYmKG49ci5zbGljZShpKzEpLHI9ci5zbGljZSgwLGkpKSxyJiYhdC5oYXNPd25Qcm9wZXJ0eShyKSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIityKTtyZXR1cm57dHlwZTpyLG5hbWU6bn19KX1mdW5jdGlvbiBfQWUoZSx0KXtmb3IodmFyIHI9MCxuPWUubGVuZ3RoLGk7cjxuOysrcilpZigoaT1lW3JdKS5uYW1lPT09dClyZXR1cm4gaS52YWx1ZX1mdW5jdGlvbiBEQXQoZSx0LHIpe2Zvcih2YXIgbj0wLGk9ZS5sZW5ndGg7bjxpOysrbilpZihlW25dLm5hbWU9PT10KXtlW25dPW1BZSxlPWUuc2xpY2UoMCxuKS5jb25jYXQoZS5zbGljZShuKzEpKTticmVha31yZXR1cm4gciE9bnVsbCYmZS5wdXNoKHtuYW1lOnQsdmFsdWU6cn0pLGV9dmFyIG1BZSxzWix6QXQ9TSgoKT0+e21BZT17dmFsdWU6ZnVuY3Rpb24oKXt9fTtmTi5wcm90b3R5cGU9T0F0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6Zk4sb246ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLl8sbj1nQWUoZSsiIixyKSxpLG89LTEsYT1uLmxlbmd0aDtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcig7KytvPGE7KWlmKChpPShlPW5bb10pLnR5cGUpJiYoaT1fQWUocltpXSxlLm5hbWUpKSlyZXR1cm4gaTtyZXR1cm59aWYodCE9bnVsbCYmdHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrOiAiK3QpO2Zvcig7KytvPGE7KWlmKGk9KGU9bltvXSkudHlwZSlyW2ldPURBdChyW2ldLGUubmFtZSx0KTtlbHNlIGlmKHQ9PW51bGwpZm9yKGkgaW4gcilyW2ldPURBdChyW2ldLGUubmFtZSxudWxsKTtyZXR1cm4gdGhpc30sY29weTpmdW5jdGlvbigpe3ZhciBlPXt9LHQ9dGhpcy5fO2Zvcih2YXIgciBpbiB0KWVbcl09dFtyXS5zbGljZSgpO3JldHVybiBuZXcgZk4oZSl9LGNhbGw6ZnVuY3Rpb24oZSx0KXtpZigoaT1hcmd1bWVudHMubGVuZ3RoLTIpPjApZm9yKHZhciByPW5ldyBBcnJheShpKSxuPTAsaSxvO248aTsrK24pcltuXT1hcmd1bWVudHNbbisyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KGUpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK2UpO2ZvcihvPXRoaXMuX1tlXSxuPTAsaT1vLmxlbmd0aDtuPGk7KytuKW9bbl0udmFsdWUuYXBwbHkodCxyKX0sYXBwbHk6ZnVuY3Rpb24oZSx0LHIpe2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkoZSkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrZSk7Zm9yKHZhciBuPXRoaXMuX1tlXSxpPTAsbz1uLmxlbmd0aDtpPG87KytpKW5baV0udmFsdWUuYXBwbHkodCxyKX19O3NaPU9BdH0pO3ZhciBGQXQ9TSgoKT0+e3pBdCgpfSk7dmFyIHBOLGxaLGNaPU0oKCk9PntwTj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsbFo9e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhodG1sOnBOLHhsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIix4bWw6Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIn19KTtmdW5jdGlvbiBkTihlKXt2YXIgdD1lKz0iIixyPXQuaW5kZXhPZigiOiIpO3JldHVybiByPj0wJiYodD1lLnNsaWNlKDAscikpIT09InhtbG5zIiYmKGU9ZS5zbGljZShyKzEpKSxsWi5oYXNPd25Qcm9wZXJ0eSh0KT97c3BhY2U6bFpbdF0sbG9jYWw6ZX06ZX12YXIgdVo9TSgoKT0+e2NaKCl9KTtmdW5jdGlvbiB5QWUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vd25lckRvY3VtZW50LHI9dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIHI9PT1wTiYmdC5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09cE4/dC5jcmVhdGVFbGVtZW50KGUpOnQuY3JlYXRlRWxlbWVudE5TKHIsZSl9fWZ1bmN0aW9uIHZBZShlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhlLnNwYWNlLGUubG9jYWwpfX1mdW5jdGlvbiBtTihlKXt2YXIgdD1kTihlKTtyZXR1cm4odC5sb2NhbD92QWU6eUFlKSh0KX12YXIgaFo9TSgoKT0+e3VaKCk7Y1ooKX0pO2Z1bmN0aW9uIHhBZSgpe31mdW5jdGlvbiBnTihlKXtyZXR1cm4gZT09bnVsbD94QWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKGUpfX12YXIgZlo9TSgoKT0+e30pO2Z1bmN0aW9uIEJBdChlKXt0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmKGU9Z04oZSkpO2Zvcih2YXIgdD10aGlzLl9ncm91cHMscj10Lmxlbmd0aCxuPW5ldyBBcnJheShyKSxpPTA7aTxyOysraSlmb3IodmFyIG89dFtpXSxhPW8ubGVuZ3RoLHM9bltpXT1uZXcgQXJyYXkoYSksbCxjLHU9MDt1PGE7Kyt1KShsPW9bdV0pJiYoYz1lLmNhbGwobCxsLl9fZGF0YV9fLHUsbykpJiYoIl9fZGF0YV9fImluIGwmJihjLl9fZGF0YV9fPWwuX19kYXRhX18pLHNbdV09Yyk7cmV0dXJuIG5ldyBwaShuLHRoaXMuX3BhcmVudHMpfXZhciBIQXQ9TSgoKT0+e3JmKCk7ZlooKX0pO2Z1bmN0aW9uIGJBZSgpe3JldHVybltdfWZ1bmN0aW9uIFZBdChlKXtyZXR1cm4gZT09bnVsbD9iQWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKGUpfX12YXIgVUF0PU0oKCk9Pnt9KTtmdW5jdGlvbiBxQXQoZSl7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPVZBdChlKSk7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxyPXQubGVuZ3RoLG49W10saT1bXSxvPTA7bzxyOysrbylmb3IodmFyIGE9dFtvXSxzPWEubGVuZ3RoLGwsYz0wO2M8czsrK2MpKGw9YVtjXSkmJihuLnB1c2goZS5jYWxsKGwsbC5fX2RhdGFfXyxjLGEpKSxpLnB1c2gobCkpO3JldHVybiBuZXcgcGkobixpKX12YXIgR0F0PU0oKCk9PntyZigpO1VBdCgpfSk7ZnVuY3Rpb24gV0F0KGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdGNoZXMoZSl9fXZhciBZQXQ9TSgoKT0+e30pO2Z1bmN0aW9uIGpBdChlKXt0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmKGU9V0F0KGUpKTtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9dC5sZW5ndGgsbj1uZXcgQXJyYXkociksaT0wO2k8cjsrK2kpZm9yKHZhciBvPXRbaV0sYT1vLmxlbmd0aCxzPW5baV09W10sbCxjPTA7YzxhOysrYykobD1vW2NdKSYmZS5jYWxsKGwsbC5fX2RhdGFfXyxjLG8pJiZzLnB1c2gobCk7cmV0dXJuIG5ldyBwaShuLHRoaXMuX3BhcmVudHMpfXZhciBYQXQ9TSgoKT0+e3JmKCk7WUF0KCl9KTtmdW5jdGlvbiBfTihlKXtyZXR1cm4gbmV3IEFycmF5KGUubGVuZ3RoKX12YXIgcFo9TSgoKT0+e30pO2Z1bmN0aW9uICRBdCgpe3JldHVybiBuZXcgcGkodGhpcy5fZW50ZXJ8fHRoaXMuX2dyb3Vwcy5tYXAoX04pLHRoaXMuX3BhcmVudHMpfWZ1bmN0aW9uIHlUKGUsdCl7dGhpcy5vd25lckRvY3VtZW50PWUub3duZXJEb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSST1lLm5hbWVzcGFjZVVSSSx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcGFyZW50PWUsdGhpcy5fX2RhdGFfXz10fXZhciBkWj1NKCgpPT57cFooKTtyZigpO3lULnByb3RvdHlwZT17Y29uc3RydWN0b3I6eVQsYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUoZSx0aGlzLl9uZXh0KX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUoZSx0KX0scXVlcnlTZWxlY3RvcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3IoZSl9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKGUpfX19KTtmdW5jdGlvbiBLQXQoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciBaQXQ9TSgoKT0+e30pO2Z1bmN0aW9uIHdBZShlLHQscixuLGksbyl7Zm9yKHZhciBhPTAscyxsPXQubGVuZ3RoLGM9by5sZW5ndGg7YTxjOysrYSkocz10W2FdKT8ocy5fX2RhdGFfXz1vW2FdLG5bYV09cyk6clthXT1uZXcgeVQoZSxvW2FdKTtmb3IoO2E8bDsrK2EpKHM9dFthXSkmJihpW2FdPXMpfWZ1bmN0aW9uIFNBZShlLHQscixuLGksbyxhKXt2YXIgcyxsLGM9e30sdT10Lmxlbmd0aCxoPW8ubGVuZ3RoLGY9bmV3IEFycmF5KHUpLHA7Zm9yKHM9MDtzPHU7KytzKShsPXRbc10pJiYoZltzXT1wPUpBdCthLmNhbGwobCxsLl9fZGF0YV9fLHMsdCkscCBpbiBjP2lbc109bDpjW3BdPWwpO2ZvcihzPTA7czxoOysrcylwPUpBdCthLmNhbGwoZSxvW3NdLHMsbyksKGw9Y1twXSk/KG5bc109bCxsLl9fZGF0YV9fPW9bc10sY1twXT1udWxsKTpyW3NdPW5ldyB5VChlLG9bc10pO2ZvcihzPTA7czx1OysrcykobD10W3NdKSYmY1tmW3NdXT09PWwmJihpW3NdPWwpfWZ1bmN0aW9uIFFBdChlLHQpe2lmKCFlKXJldHVybiBwPW5ldyBBcnJheSh0aGlzLnNpemUoKSksYz0tMSx0aGlzLmVhY2goZnVuY3Rpb24oUCl7cFsrK2NdPVB9KSxwO3ZhciByPXQ/U0FlOndBZSxuPXRoaXMuX3BhcmVudHMsaT10aGlzLl9ncm91cHM7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPUtBdChlKSk7Zm9yKHZhciBvPWkubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHM9bmV3IEFycmF5KG8pLGw9bmV3IEFycmF5KG8pLGM9MDtjPG87KytjKXt2YXIgdT1uW2NdLGg9aVtjXSxmPWgubGVuZ3RoLHA9ZS5jYWxsKHUsdSYmdS5fX2RhdGFfXyxjLG4pLGQ9cC5sZW5ndGgsZz1zW2NdPW5ldyBBcnJheShkKSxfPWFbY109bmV3IEFycmF5KGQpLHk9bFtjXT1uZXcgQXJyYXkoZik7cih1LGgsZyxfLHkscCx0KTtmb3IodmFyIHg9MCxiPTAsUyxDO3g8ZDsrK3gpaWYoUz1nW3hdKXtmb3IoeD49YiYmKGI9eCsxKTshKEM9X1tiXSkmJisrYjxkOyk7Uy5fbmV4dD1DfHxudWxsfX1yZXR1cm4gYT1uZXcgcGkoYSxuKSxhLl9lbnRlcj1zLGEuX2V4aXQ9bCxhfXZhciBKQXQsdDR0PU0oKCk9PntyZigpO2RaKCk7WkF0KCk7SkF0PSIkIn0pO2Z1bmN0aW9uIGU0dCgpe3JldHVybiBuZXcgcGkodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChfTiksdGhpcy5fcGFyZW50cyl9dmFyIHI0dD1NKCgpPT57cFooKTtyZigpfSk7ZnVuY3Rpb24gbjR0KGUsdCxyKXt2YXIgbj10aGlzLmVudGVyKCksaT10aGlzLG89dGhpcy5leGl0KCk7cmV0dXJuIG49dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZShuKTpuLmFwcGVuZChlKyIiKSx0IT1udWxsJiYoaT10KGkpKSxyPT1udWxsP28ucmVtb3ZlKCk6cihvKSxuJiZpP24ubWVyZ2UoaSkub3JkZXIoKTppfXZhciBpNHQ9TSgoKT0+e30pO2Z1bmN0aW9uIG80dChlKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9ZS5fZ3JvdXBzLG49dC5sZW5ndGgsaT1yLmxlbmd0aCxvPU1hdGgubWluKG4saSksYT1uZXcgQXJyYXkobikscz0wO3M8bzsrK3MpZm9yKHZhciBsPXRbc10sYz1yW3NdLHU9bC5sZW5ndGgsaD1hW3NdPW5ldyBBcnJheSh1KSxmLHA9MDtwPHU7KytwKShmPWxbcF18fGNbcF0pJiYoaFtwXT1mKTtmb3IoO3M8bjsrK3MpYVtzXT10W3NdO3JldHVybiBuZXcgcGkoYSx0aGlzLl9wYXJlbnRzKX12YXIgYTR0PU0oKCk9PntyZigpfSk7ZnVuY3Rpb24gczR0KCl7Zm9yKHZhciBlPXRoaXMuX2dyb3Vwcyx0PS0xLHI9ZS5sZW5ndGg7Kyt0PHI7KWZvcih2YXIgbj1lW3RdLGk9bi5sZW5ndGgtMSxvPW5baV0sYTstLWk+PTA7KShhPW5baV0pJiYobyYmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihvKV40JiZvLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsbyksbz1hKTtyZXR1cm4gdGhpc312YXIgbDR0PU0oKCk9Pnt9KTtmdW5jdGlvbiBjNHQoZSl7ZXx8KGU9TUFlKTtmdW5jdGlvbiB0KGgsZil7cmV0dXJuIGgmJmY/ZShoLl9fZGF0YV9fLGYuX19kYXRhX18pOiFoLSFmfWZvcih2YXIgcj10aGlzLl9ncm91cHMsbj1yLmxlbmd0aCxpPW5ldyBBcnJheShuKSxvPTA7bzxuOysrbyl7Zm9yKHZhciBhPXJbb10scz1hLmxlbmd0aCxsPWlbb109bmV3IEFycmF5KHMpLGMsdT0wO3U8czsrK3UpKGM9YVt1XSkmJihsW3VdPWMpO2wuc29ydCh0KX1yZXR1cm4gbmV3IHBpKGksdGhpcy5fcGFyZW50cykub3JkZXIoKX1mdW5jdGlvbiBNQWUoZSx0KXtyZXR1cm4gZTx0Py0xOmU+dD8xOmU+PXQ/MDpOYU59dmFyIHU0dD1NKCgpPT57cmYoKX0pO2Z1bmN0aW9uIGg0dCgpe3ZhciBlPWFyZ3VtZW50c1swXTtyZXR1cm4gYXJndW1lbnRzWzBdPXRoaXMsZS5hcHBseShudWxsLGFyZ3VtZW50cyksdGhpc312YXIgZjR0PU0oKCk9Pnt9KTtmdW5jdGlvbiBwNHQoKXt2YXIgZT1uZXcgQXJyYXkodGhpcy5zaXplKCkpLHQ9LTE7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2VbKyt0XT10aGlzfSksZX12YXIgZDR0PU0oKCk9Pnt9KTtmdW5jdGlvbiBtNHQoKXtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLHQ9MCxyPWUubGVuZ3RoO3Q8cjsrK3QpZm9yKHZhciBuPWVbdF0saT0wLG89bi5sZW5ndGg7aTxvOysraSl7dmFyIGE9bltpXTtpZihhKXJldHVybiBhfXJldHVybiBudWxsfXZhciBnNHQ9TSgoKT0+e30pO2Z1bmN0aW9uIF80dCgpe3ZhciBlPTA7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpeysrZX0pLGV9dmFyIHk0dD1NKCgpPT57fSk7ZnVuY3Rpb24gdjR0KCl7cmV0dXJuIXRoaXMubm9kZSgpfXZhciB4NHQ9TSgoKT0+e30pO2Z1bmN0aW9uIGI0dChlKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9MCxuPXQubGVuZ3RoO3I8bjsrK3IpZm9yKHZhciBpPXRbcl0sbz0wLGE9aS5sZW5ndGgscztvPGE7KytvKShzPWlbb10pJiZlLmNhbGwocyxzLl9fZGF0YV9fLG8saSk7cmV0dXJuIHRoaXN9dmFyIHc0dD1NKCgpPT57fSk7ZnVuY3Rpb24gRUFlKGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKGUpfX1mdW5jdGlvbiBUQWUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpfX1mdW5jdGlvbiBDQWUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZShlLHQpfX1mdW5jdGlvbiBBQWUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCx0KX19ZnVuY3Rpb24gUEFlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cj09bnVsbD90aGlzLnJlbW92ZUF0dHJpYnV0ZShlKTp0aGlzLnNldEF0dHJpYnV0ZShlLHIpfX1mdW5jdGlvbiBJQWUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyPT1udWxsP3RoaXMucmVtb3ZlQXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsKTp0aGlzLnNldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCxyKX19ZnVuY3Rpb24gUzR0KGUsdCl7dmFyIHI9ZE4oZSk7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgbj10aGlzLm5vZGUoKTtyZXR1cm4gci5sb2NhbD9uLmdldEF0dHJpYnV0ZU5TKHIuc3BhY2Usci5sb2NhbCk6bi5nZXRBdHRyaWJ1dGUocil9cmV0dXJuIHRoaXMuZWFjaCgodD09bnVsbD9yLmxvY2FsP1RBZTpFQWU6dHlwZW9mIHQ9PSJmdW5jdGlvbiI/ci5sb2NhbD9JQWU6UEFlOnIubG9jYWw/QUFlOkNBZSkocix0KSl9dmFyIE00dD1NKCgpPT57dVooKX0pO2Z1bmN0aW9uIHlOKGUpe3JldHVybiBlLm93bmVyRG9jdW1lbnQmJmUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8ZS5kb2N1bWVudCYmZXx8ZS5kZWZhdWx0Vmlld312YXIgbVo9TSgoKT0+e30pO2Z1bmN0aW9uIExBZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KGUpfX1mdW5jdGlvbiBrQWUoZSx0LHIpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkoZSx0LHIpfX1mdW5jdGlvbiBSQWUoZSx0LHIpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO249PW51bGw/dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShlKTp0aGlzLnN0eWxlLnNldFByb3BlcnR5KGUsbixyKX19ZnVuY3Rpb24gRTR0KGUsdCxyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgodD09bnVsbD9MQWU6dHlwZW9mIHQ9PSJmdW5jdGlvbiI/UkFlOmtBZSkoZSx0LHI9PW51bGw/IiI6cikpOk5BZSh0aGlzLm5vZGUoKSxlKX1mdW5jdGlvbiBOQWUoZSx0KXtyZXR1cm4gZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHQpfHx5TihlKS5nZXRDb21wdXRlZFN0eWxlKGUsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSh0KX12YXIgVDR0PU0oKCk9PnttWigpfSk7ZnVuY3Rpb24gREFlKGUpe3JldHVybiBmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW2VdfX1mdW5jdGlvbiBPQWUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzW2VdPXR9fWZ1bmN0aW9uIHpBZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciByPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3I9PW51bGw/ZGVsZXRlIHRoaXNbZV06dGhpc1tlXT1yfX1mdW5jdGlvbiBDNHQoZSx0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgodD09bnVsbD9EQWU6dHlwZW9mIHQ9PSJmdW5jdGlvbiI/ekFlOk9BZSkoZSx0KSk6dGhpcy5ub2RlKClbZV19dmFyIEE0dD1NKCgpPT57fSk7ZnVuY3Rpb24gUDR0KGUpe3JldHVybiBlLnRyaW0oKS5zcGxpdCgvXnxccysvKX1mdW5jdGlvbiBnWihlKXtyZXR1cm4gZS5jbGFzc0xpc3R8fG5ldyBJNHQoZSl9ZnVuY3Rpb24gSTR0KGUpe3RoaXMuX25vZGU9ZSx0aGlzLl9uYW1lcz1QNHQoZS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX1mdW5jdGlvbiBMNHQoZSx0KXtmb3IodmFyIHI9Z1ooZSksbj0tMSxpPXQubGVuZ3RoOysrbjxpOylyLmFkZCh0W25dKX1mdW5jdGlvbiBrNHQoZSx0KXtmb3IodmFyIHI9Z1ooZSksbj0tMSxpPXQubGVuZ3RoOysrbjxpOylyLnJlbW92ZSh0W25dKX1mdW5jdGlvbiBGQWUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7TDR0KHRoaXMsZSl9fWZ1bmN0aW9uIEJBZShlKXtyZXR1cm4gZnVuY3Rpb24oKXtrNHQodGhpcyxlKX19ZnVuY3Rpb24gSEFlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7KHQuYXBwbHkodGhpcyxhcmd1bWVudHMpP0w0dDprNHQpKHRoaXMsZSl9fWZ1bmN0aW9uIFI0dChlLHQpe3ZhciByPVA0dChlKyIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgbj1nWih0aGlzLm5vZGUoKSksaT0tMSxvPXIubGVuZ3RoOysraTxvOylpZighbi5jb250YWlucyhyW2ldKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4gdGhpcy5lYWNoKCh0eXBlb2YgdD09ImZ1bmN0aW9uIj9IQWU6dD9GQWU6QkFlKShyLHQpKX12YXIgTjR0PU0oKCk9PntJNHQucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fbmFtZXMuaW5kZXhPZihlKTt0PDAmJih0aGlzLl9uYW1lcy5wdXNoKGUpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LHJlbW92ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9uYW1lcy5pbmRleE9mKGUpO3Q+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UodCwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxjb250YWluczpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZihlKT49MH19fSk7ZnVuY3Rpb24gVkFlKCl7dGhpcy50ZXh0Q29udGVudD0iIn1mdW5jdGlvbiBVQWUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD1lfX1mdW5jdGlvbiBxQWUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50ZXh0Q29udGVudD10PT1udWxsPyIiOnR9fWZ1bmN0aW9uIEQ0dChlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goZT09bnVsbD9WQWU6KHR5cGVvZiBlPT0iZnVuY3Rpb24iP3FBZTpVQWUpKGUpKTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH12YXIgTzR0PU0oKCk9Pnt9KTtmdW5jdGlvbiBHQWUoKXt0aGlzLmlubmVySFRNTD0iIn1mdW5jdGlvbiBXQWUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9ZX19ZnVuY3Rpb24gWUFlKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPXQ9PW51bGw/IiI6dH19ZnVuY3Rpb24gejR0KGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChlPT1udWxsP0dBZToodHlwZW9mIGU9PSJmdW5jdGlvbiI/WUFlOldBZSkoZSkpOnRoaXMubm9kZSgpLmlubmVySFRNTH12YXIgRjR0PU0oKCk9Pnt9KTtmdW5jdGlvbiBqQWUoKXt0aGlzLm5leHRTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcyl9ZnVuY3Rpb24gQjR0KCl7cmV0dXJuIHRoaXMuZWFjaChqQWUpfXZhciBINHQ9TSgoKT0+e30pO2Z1bmN0aW9uIFhBZSgpe3RoaXMucHJldmlvdXNTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsdGhpcy5wYXJlbnROb2RlLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIFY0dCgpe3JldHVybiB0aGlzLmVhY2goWEFlKX12YXIgVTR0PU0oKCk9Pnt9KTtmdW5jdGlvbiBxNHQoZSl7dmFyIHQ9dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTptTihlKTtyZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZCh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KX12YXIgRzR0PU0oKCk9PntoWigpfSk7ZnVuY3Rpb24gJEFlKCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gVzR0KGUsdCl7dmFyIHI9dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTptTihlKSxuPXQ9PW51bGw/JEFlOnR5cGVvZiB0PT0iZnVuY3Rpb24iP3Q6Z04odCk7cmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zZXJ0QmVmb3JlKHIuYXBwbHkodGhpcyxhcmd1bWVudHMpLG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfHxudWxsKX0pfXZhciBZNHQ9TSgoKT0+e2haKCk7ZlooKX0pO2Z1bmN0aW9uIEtBZSgpe3ZhciBlPXRoaXMucGFyZW50Tm9kZTtlJiZlLnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIGo0dCgpe3JldHVybiB0aGlzLmVhY2goS0FlKX12YXIgWDR0PU0oKCk9Pnt9KTtmdW5jdGlvbiBaQWUoKXt2YXIgZT10aGlzLmNsb25lTm9kZSghMSksdD10aGlzLnBhcmVudE5vZGU7cmV0dXJuIHQ/dC5pbnNlcnRCZWZvcmUoZSx0aGlzLm5leHRTaWJsaW5nKTplfWZ1bmN0aW9uIEpBZSgpe3ZhciBlPXRoaXMuY2xvbmVOb2RlKCEwKSx0PXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gdD90Lmluc2VydEJlZm9yZShlLHRoaXMubmV4dFNpYmxpbmcpOmV9ZnVuY3Rpb24gJDR0KGUpe3JldHVybiB0aGlzLnNlbGVjdChlP0pBZTpaQWUpfXZhciBLNHQ9TSgoKT0+e30pO2Z1bmN0aW9uIFo0dChlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsZSk6dGhpcy5ub2RlKCkuX19kYXRhX199dmFyIEo0dD1NKCgpPT57fSk7ZnVuY3Rpb24gUUFlKGUsdCxyKXtyZXR1cm4gZT1lUHQoZSx0LHIpLGZ1bmN0aW9uKG4pe3ZhciBpPW4ucmVsYXRlZFRhcmdldDsoIWl8fGkhPT10aGlzJiYhKGkuY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcykmOCkpJiZlLmNhbGwodGhpcyxuKX19ZnVuY3Rpb24gZVB0KGUsdCxyKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGk9c247c249bjt0cnl7ZS5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyx0LHIpfWZpbmFsbHl7c249aX19fWZ1bmN0aW9uIHQ0ZShlKXtyZXR1cm4gZS50cmltKCkuc3BsaXQoL158XHMrLykubWFwKGZ1bmN0aW9uKHQpe3ZhciByPSIiLG49dC5pbmRleE9mKCIuIik7cmV0dXJuIG4+PTAmJihyPXQuc2xpY2UobisxKSx0PXQuc2xpY2UoMCxuKSkse3R5cGU6dCxuYW1lOnJ9fSl9ZnVuY3Rpb24gZTRlKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMuX19vbjtpZighIXQpe2Zvcih2YXIgcj0wLG49LTEsaT10Lmxlbmd0aCxvO3I8aTsrK3Ipbz10W3JdLCghZS50eXBlfHxvLnR5cGU9PT1lLnR5cGUpJiZvLm5hbWU9PT1lLm5hbWU/dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKG8udHlwZSxvLmxpc3RlbmVyLG8uY2FwdHVyZSk6dFsrK25dPW87KytuP3QubGVuZ3RoPW46ZGVsZXRlIHRoaXMuX19vbn19fWZ1bmN0aW9uIHI0ZShlLHQscil7dmFyIG49dFB0Lmhhc093blByb3BlcnR5KGUudHlwZSk/UUFlOmVQdDtyZXR1cm4gZnVuY3Rpb24oaSxvLGEpe3ZhciBzPXRoaXMuX19vbixsLGM9bih0LG8sYSk7aWYocyl7Zm9yKHZhciB1PTAsaD1zLmxlbmd0aDt1PGg7Kyt1KWlmKChsPXNbdV0pLnR5cGU9PT1lLnR5cGUmJmwubmFtZT09PWUubmFtZSl7dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGwudHlwZSxsLmxpc3RlbmVyLGwuY2FwdHVyZSksdGhpcy5hZGRFdmVudExpc3RlbmVyKGwudHlwZSxsLmxpc3RlbmVyPWMsbC5jYXB0dXJlPXIpLGwudmFsdWU9dDtyZXR1cm59fXRoaXMuYWRkRXZlbnRMaXN0ZW5lcihlLnR5cGUsYyxyKSxsPXt0eXBlOmUudHlwZSxuYW1lOmUubmFtZSx2YWx1ZTp0LGxpc3RlbmVyOmMsY2FwdHVyZTpyfSxzP3MucHVzaChsKTp0aGlzLl9fb249W2xdfX1mdW5jdGlvbiByUHQoZSx0LHIpe3ZhciBuPXQ0ZShlKyIiKSxpLG89bi5sZW5ndGgsYTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBzPXRoaXMubm9kZSgpLl9fb247aWYocyl7Zm9yKHZhciBsPTAsYz1zLmxlbmd0aCx1O2w8YzsrK2wpZm9yKGk9MCx1PXNbbF07aTxvOysraSlpZigoYT1uW2ldKS50eXBlPT09dS50eXBlJiZhLm5hbWU9PT11Lm5hbWUpcmV0dXJuIHUudmFsdWV9cmV0dXJufWZvcihzPXQ/cjRlOmU0ZSxyPT1udWxsJiYocj0hMSksaT0wO2k8bzsrK2kpdGhpcy5lYWNoKHMobltpXSx0LHIpKTtyZXR1cm4gdGhpc31mdW5jdGlvbiB2TihlLHQscixuKXt2YXIgaT1zbjtlLnNvdXJjZUV2ZW50PXNuLHNuPWU7dHJ5e3JldHVybiB0LmFwcGx5KHIsbil9ZmluYWxseXtzbj1pfX12YXIgdFB0LHNuLFE0dCx4Tj1NKCgpPT57dFB0PXt9LHNuPW51bGw7dHlwZW9mIGRvY3VtZW50IT0idW5kZWZpbmVkIiYmKFE0dD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIm9ubW91c2VlbnRlciJpbiBRNHR8fCh0UHQ9e21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSkpfSk7ZnVuY3Rpb24gblB0KGUsdCxyKXt2YXIgbj15TihlKSxpPW4uQ3VzdG9tRXZlbnQ7dHlwZW9mIGk9PSJmdW5jdGlvbiI/aT1uZXcgaSh0LHIpOihpPW4uZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iikscj8oaS5pbml0RXZlbnQodCxyLmJ1YmJsZXMsci5jYW5jZWxhYmxlKSxpLmRldGFpbD1yLmRldGFpbCk6aS5pbml0RXZlbnQodCwhMSwhMSkpLGUuZGlzcGF0Y2hFdmVudChpKX1mdW5jdGlvbiBuNGUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gblB0KHRoaXMsZSx0KX19ZnVuY3Rpb24gaTRlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5QdCh0aGlzLGUsdC5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX1mdW5jdGlvbiBpUHQoZSx0KXtyZXR1cm4gdGhpcy5lYWNoKCh0eXBlb2YgdD09ImZ1bmN0aW9uIj9pNGU6bjRlKShlLHQpKX12YXIgb1B0PU0oKCk9PnttWigpfSk7ZnVuY3Rpb24gcGkoZSx0KXt0aGlzLl9ncm91cHM9ZSx0aGlzLl9wYXJlbnRzPXR9ZnVuY3Rpb24gbzRlKCl7cmV0dXJuIG5ldyBwaShbW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF1dLF9aKX12YXIgX1oscmY9TSgoKT0+e0hBdCgpO0dBdCgpO1hBdCgpO3Q0dCgpO2RaKCk7cjR0KCk7aTR0KCk7YTR0KCk7bDR0KCk7dTR0KCk7ZjR0KCk7ZDR0KCk7ZzR0KCk7eTR0KCk7eDR0KCk7dzR0KCk7TTR0KCk7VDR0KCk7QTR0KCk7TjR0KCk7TzR0KCk7RjR0KCk7SDR0KCk7VTR0KCk7RzR0KCk7WTR0KCk7WDR0KCk7SzR0KCk7SjR0KCk7eE4oKTtvUHQoKTtfWj1bbnVsbF07cGkucHJvdG90eXBlPW80ZS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnBpLHNlbGVjdDpCQXQsc2VsZWN0QWxsOnFBdCxmaWx0ZXI6akF0LGRhdGE6UUF0LGVudGVyOiRBdCxleGl0OmU0dCxqb2luOm40dCxtZXJnZTpvNHQsb3JkZXI6czR0LHNvcnQ6YzR0LGNhbGw6aDR0LG5vZGVzOnA0dCxub2RlOm00dCxzaXplOl80dCxlbXB0eTp2NHQsZWFjaDpiNHQsYXR0cjpTNHQsc3R5bGU6RTR0LHByb3BlcnR5OkM0dCxjbGFzc2VkOlI0dCx0ZXh0OkQ0dCxodG1sOno0dCxyYWlzZTpCNHQsbG93ZXI6VjR0LGFwcGVuZDpxNHQsaW5zZXJ0Olc0dCxyZW1vdmU6ajR0LGNsb25lOiQ0dCxkYXR1bTpaNHQsb246clB0LGRpc3BhdGNoOmlQdH19KTtmdW5jdGlvbiBUeShlKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciP25ldyBwaShbW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSldXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IHBpKFtbZV1dLF9aKX12YXIgYVB0PU0oKCk9PntyZigpfSk7ZnVuY3Rpb24gYk4oKXtmb3IodmFyIGU9c24sdDt0PWUuc291cmNlRXZlbnQ7KWU9dDtyZXR1cm4gZX12YXIgeVo9TSgoKT0+e3hOKCl9KTtmdW5jdGlvbiB3TihlLHQpe3ZhciByPWUub3duZXJTVkdFbGVtZW50fHxlO2lmKHIuY3JlYXRlU1ZHUG9pbnQpe3ZhciBuPXIuY3JlYXRlU1ZHUG9pbnQoKTtyZXR1cm4gbi54PXQuY2xpZW50WCxuLnk9dC5jbGllbnRZLG49bi5tYXRyaXhUcmFuc2Zvcm0oZS5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkpLFtuLngsbi55XX12YXIgaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVyblt0LmNsaWVudFgtaS5sZWZ0LWUuY2xpZW50TGVmdCx0LmNsaWVudFktaS50b3AtZS5jbGllbnRUb3BdfXZhciB2Wj1NKCgpPT57fSk7ZnVuY3Rpb24geFooZSl7dmFyIHQ9Yk4oKTtyZXR1cm4gdC5jaGFuZ2VkVG91Y2hlcyYmKHQ9dC5jaGFuZ2VkVG91Y2hlc1swXSksd04oZSx0KX12YXIgc1B0PU0oKCk9Pnt5WigpO3ZaKCl9KTtmdW5jdGlvbiBiWihlLHQscil7YXJndW1lbnRzLmxlbmd0aDwzJiYocj10LHQ9Yk4oKS5jaGFuZ2VkVG91Y2hlcyk7Zm9yKHZhciBuPTAsaT10P3QubGVuZ3RoOjAsbztuPGk7KytuKWlmKChvPXRbbl0pLmlkZW50aWZpZXI9PT1yKXJldHVybiB3TihlLG8pO3JldHVybiBudWxsfXZhciBsUHQ9TSgoKT0+e3laKCk7dlooKX0pO3ZhciBTTj1NKCgpPT57c1B0KCk7YVB0KCk7bFB0KCk7eE4oKX0pO2Z1bmN0aW9uIE1OKCl7c24uc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gcGcoKXtzbi5wcmV2ZW50RGVmYXVsdCgpLHNuLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfXZhciB3Wj1NKCgpPT57U04oKX0pO2Z1bmN0aW9uIEVOKGUpe3ZhciB0PWUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHI9VHkoZSkub24oImRyYWdzdGFydC5kcmFnIixwZywhMCk7Im9uc2VsZWN0c3RhcnQiaW4gdD9yLm9uKCJzZWxlY3RzdGFydC5kcmFnIixwZywhMCk6KHQuX19ub3NlbGVjdD10LnN0eWxlLk1velVzZXJTZWxlY3QsdC5zdHlsZS5Nb3pVc2VyU2VsZWN0PSJub25lIil9ZnVuY3Rpb24gVE4oZSx0KXt2YXIgcj1lLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxuPVR5KGUpLm9uKCJkcmFnc3RhcnQuZHJhZyIsbnVsbCk7dCYmKG4ub24oImNsaWNrLmRyYWciLHBnLCEwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bi5vbigiY2xpY2suZHJhZyIsbnVsbCl9LDApKSwib25zZWxlY3RzdGFydCJpbiByP24ub24oInNlbGVjdHN0YXJ0LmRyYWciLG51bGwpOihyLnN0eWxlLk1velVzZXJTZWxlY3Q9ci5fX25vc2VsZWN0LGRlbGV0ZSByLl9fbm9zZWxlY3QpfXZhciBTWj1NKCgpPT57U04oKTt3WigpfSk7ZnVuY3Rpb24gdlQoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciBjUHQ9TSgoKT0+e30pO2Z1bmN0aW9uIHhUKGUsdCxyLG4saSxvLGEscyxsLGMpe3RoaXMudGFyZ2V0PWUsdGhpcy50eXBlPXQsdGhpcy5zdWJqZWN0PXIsdGhpcy5pZGVudGlmaWVyPW4sdGhpcy5hY3RpdmU9aSx0aGlzLng9byx0aGlzLnk9YSx0aGlzLmR4PXMsdGhpcy5keT1sLHRoaXMuXz1jfXZhciB1UHQ9TSgoKT0+e3hULnByb3RvdHlwZS5vbj1mdW5jdGlvbigpe3ZhciBlPXRoaXMuXy5vbi5hcHBseSh0aGlzLl8sYXJndW1lbnRzKTtyZXR1cm4gZT09PXRoaXMuXz90aGlzOmV9fSk7ZnVuY3Rpb24gYTRlKCl7cmV0dXJuIXNuLmJ1dHRvbn1mdW5jdGlvbiBzNGUoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlfWZ1bmN0aW9uIGw0ZShlKXtyZXR1cm4gZT09bnVsbD97eDpzbi54LHk6c24ueX06ZX1mdW5jdGlvbiBjNGUoKXtyZXR1cm4ib250b3VjaHN0YXJ0ImluIHRoaXN9ZnVuY3Rpb24gaFB0KCl7dmFyIGU9YTRlLHQ9czRlLHI9bDRlLG49YzRlLGk9e30sbz1zWigic3RhcnQiLCJkcmFnIiwiZW5kIiksYT0wLHMsbCxjLHUsaD0wO2Z1bmN0aW9uIGYoUyl7Uy5vbigibW91c2Vkb3duLmRyYWciLHApLmZpbHRlcihuKS5vbigidG91Y2hzdGFydC5kcmFnIixfKS5vbigidG91Y2htb3ZlLmRyYWciLHkpLm9uKCJ0b3VjaGVuZC5kcmFnIHRvdWNoY2FuY2VsLmRyYWciLHgpLnN0eWxlKCJ0b3VjaC1hY3Rpb24iLCJub25lIikuc3R5bGUoIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvciIsInJnYmEoMCwwLDAsMCkiKX1mdW5jdGlvbiBwKCl7aWYoISh1fHwhZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpKXt2YXIgUz1iKCJtb3VzZSIsdC5hcHBseSh0aGlzLGFyZ3VtZW50cykseFosdGhpcyxhcmd1bWVudHMpOyFTfHwoVHkoc24udmlldykub24oIm1vdXNlbW92ZS5kcmFnIixkLCEwKS5vbigibW91c2V1cC5kcmFnIixnLCEwKSxFTihzbi52aWV3KSxNTigpLGM9ITEscz1zbi5jbGllbnRYLGw9c24uY2xpZW50WSxTKCJzdGFydCIpKX19ZnVuY3Rpb24gZCgpe2lmKHBnKCksIWMpe3ZhciBTPXNuLmNsaWVudFgtcyxDPXNuLmNsaWVudFktbDtjPVMqUytDKkM+aH1pLm1vdXNlKCJkcmFnIil9ZnVuY3Rpb24gZygpe1R5KHNuLnZpZXcpLm9uKCJtb3VzZW1vdmUuZHJhZyBtb3VzZXVwLmRyYWciLG51bGwpLFROKHNuLnZpZXcsYykscGcoKSxpLm1vdXNlKCJlbmQiKX1mdW5jdGlvbiBfKCl7aWYoISFlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIFM9c24uY2hhbmdlZFRvdWNoZXMsQz10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxQPVMubGVuZ3RoLGssTztmb3Ioaz0wO2s8UDsrK2spKE89YihTW2tdLmlkZW50aWZpZXIsQyxiWix0aGlzLGFyZ3VtZW50cykpJiYoTU4oKSxPKCJzdGFydCIpKX19ZnVuY3Rpb24geSgpe3ZhciBTPXNuLmNoYW5nZWRUb3VjaGVzLEM9Uy5sZW5ndGgsUCxrO2ZvcihQPTA7UDxDOysrUCkoaz1pW1NbUF0uaWRlbnRpZmllcl0pJiYocGcoKSxrKCJkcmFnIikpfWZ1bmN0aW9uIHgoKXt2YXIgUz1zbi5jaGFuZ2VkVG91Y2hlcyxDPVMubGVuZ3RoLFAsaztmb3IodSYmY2xlYXJUaW1lb3V0KHUpLHU9c2V0VGltZW91dChmdW5jdGlvbigpe3U9bnVsbH0sNTAwKSxQPTA7UDxDOysrUCkoaz1pW1NbUF0uaWRlbnRpZmllcl0pJiYoTU4oKSxrKCJlbmQiKSl9ZnVuY3Rpb24gYihTLEMsUCxrLE8pe3ZhciBEPVAoQyxTKSxCLEksTCxSPW8uY29weSgpO2lmKCEhdk4obmV3IHhUKGYsImJlZm9yZXN0YXJ0IixCLFMsYSxEWzBdLERbMV0sMCwwLFIpLGZ1bmN0aW9uKCl7cmV0dXJuKHNuLnN1YmplY3Q9Qj1yLmFwcGx5KGssTykpPT1udWxsPyExOihJPUIueC1EWzBdfHwwLEw9Qi55LURbMV18fDAsITApfSkpcmV0dXJuIGZ1bmN0aW9uIEYoeil7dmFyIFU9RCxXO3N3aXRjaCh6KXtjYXNlInN0YXJ0IjppW1NdPUYsVz1hKys7YnJlYWs7Y2FzZSJlbmQiOmRlbGV0ZSBpW1NdLC0tYTtjYXNlImRyYWciOkQ9UChDLFMpLFc9YTticmVha312TihuZXcgeFQoZix6LEIsUyxXLERbMF0rSSxEWzFdK0wsRFswXS1VWzBdLERbMV0tVVsxXSxSKSxSLmFwcGx5LFIsW3osayxPXSl9fXJldHVybiBmLmZpbHRlcj1mdW5jdGlvbihTKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10eXBlb2YgUz09ImZ1bmN0aW9uIj9TOnZUKCEhUyksZik6ZX0sZi5jb250YWluZXI9ZnVuY3Rpb24oUyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9dHlwZW9mIFM9PSJmdW5jdGlvbiI/Uzp2VChTKSxmKTp0fSxmLnN1YmplY3Q9ZnVuY3Rpb24oUyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dHlwZW9mIFM9PSJmdW5jdGlvbiI/Uzp2VChTKSxmKTpyfSxmLnRvdWNoYWJsZT1mdW5jdGlvbihTKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10eXBlb2YgUz09ImZ1bmN0aW9uIj9TOnZUKCEhUyksZik6bn0sZi5vbj1mdW5jdGlvbigpe3ZhciBTPW8ub24uYXBwbHkobyxhcmd1bWVudHMpO3JldHVybiBTPT09bz9mOlN9LGYuY2xpY2tEaXN0YW5jZT1mdW5jdGlvbihTKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD0oUz0rUykqUyxmKTpNYXRoLnNxcnQoaCl9LGZ9dmFyIGZQdD1NKCgpPT57RkF0KCk7U04oKTtTWigpO3daKCk7Y1B0KCk7dVB0KCl9KTt2YXIgcFB0PU0oKCk9PntmUHQoKTtTWigpfSk7ZnVuY3Rpb24gbVB0KGUpe3JldHVybiBuZXcgRnVuY3Rpb24oImQiLCJyZXR1cm4geyIrZS5tYXAoZnVuY3Rpb24odCxyKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCkrIjogZFsiK3IrIl0ifSkuam9pbigiLCIpKyJ9Iil9ZnVuY3Rpb24gdTRlKGUsdCl7dmFyIHI9bVB0KGUpO3JldHVybiBmdW5jdGlvbihuLGkpe3JldHVybiB0KHIobiksaSxlKX19ZnVuY3Rpb24gaDRlKGUpe3ZhciB0PU9iamVjdC5jcmVhdGUobnVsbCkscj1bXTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2Zvcih2YXIgaSBpbiBuKWkgaW4gdHx8ci5wdXNoKHRbaV09aSl9KSxyfWZ1bmN0aW9uIHcyKGUpe3ZhciB0PW5ldyBSZWdFeHAoJ1siJytlK2AKXHJdYCkscj1lLmNoYXJDb2RlQXQoMCk7ZnVuY3Rpb24gbihjLHUpe3ZhciBoLGYscD1pKGMsZnVuY3Rpb24oZCxnKXtpZihoKXJldHVybiBoKGQsZy0xKTtmPWQsaD11P3U0ZShkLHUpOm1QdChkKX0pO3JldHVybiBwLmNvbHVtbnM9Znx8W10scH1mdW5jdGlvbiBpKGMsdSl7dmFyIGg9W10sZj1jLmxlbmd0aCxwPTAsZD0wLGcsXz1mPD0wLHk9ITE7Yy5jaGFyQ29kZUF0KGYtMSk9PT1iVCYmLS1mLGMuY2hhckNvZGVBdChmLTEpPT09VFomJi0tZjtmdW5jdGlvbiB4KCl7aWYoXylyZXR1cm4gTVo7aWYoeSlyZXR1cm4geT0hMSxkUHQ7dmFyIFMsQz1wLFA7aWYoYy5jaGFyQ29kZUF0KEMpPT09RVope2Zvcig7cCsrPGYmJmMuY2hhckNvZGVBdChwKSE9PUVafHxjLmNoYXJDb2RlQXQoKytwKT09PUVaOyk7cmV0dXJuKFM9cCk+PWY/Xz0hMDooUD1jLmNoYXJDb2RlQXQocCsrKSk9PT1iVD95PSEwOlA9PT1UWiYmKHk9ITAsYy5jaGFyQ29kZUF0KHApPT09YlQmJisrcCksYy5zbGljZShDKzEsUy0xKS5yZXBsYWNlKC8iIi9nLCciJyl9Zm9yKDtwPGY7KXtpZigoUD1jLmNoYXJDb2RlQXQoUz1wKyspKT09PWJUKXk9ITA7ZWxzZSBpZihQPT09VFopeT0hMCxjLmNoYXJDb2RlQXQocCk9PT1iVCYmKytwO2Vsc2UgaWYoUCE9PXIpY29udGludWU7cmV0dXJuIGMuc2xpY2UoQyxTKX1yZXR1cm4gXz0hMCxjLnNsaWNlKEMsZil9Zm9yKDsoZz14KCkpIT09TVo7KXtmb3IodmFyIGI9W107ZyE9PWRQdCYmZyE9PU1aOyliLnB1c2goZyksZz14KCk7dSYmKGI9dShiLGQrKykpPT1udWxsfHxoLnB1c2goYil9cmV0dXJuIGh9ZnVuY3Rpb24gbyhjLHUpe3JldHVybiB1PT1udWxsJiYodT1oNGUoYykpLFt1Lm1hcChsKS5qb2luKGUpXS5jb25jYXQoYy5tYXAoZnVuY3Rpb24oaCl7cmV0dXJuIHUubWFwKGZ1bmN0aW9uKGYpe3JldHVybiBsKGhbZl0pfSkuam9pbihlKX0pKS5qb2luKGAKYCl9ZnVuY3Rpb24gYShjKXtyZXR1cm4gYy5tYXAocykuam9pbihgCmApfWZ1bmN0aW9uIHMoYyl7cmV0dXJuIGMubWFwKGwpLmpvaW4oZSl9ZnVuY3Rpb24gbChjKXtyZXR1cm4gYz09bnVsbD8iIjp0LnRlc3QoYys9IiIpPyciJytjLnJlcGxhY2UoLyIvZywnIiInKSsnIic6Y31yZXR1cm57cGFyc2U6bixwYXJzZVJvd3M6aSxmb3JtYXQ6byxmb3JtYXRSb3dzOmF9fXZhciBkUHQsTVosRVosYlQsVFosQ049TSgoKT0+e2RQdD17fSxNWj17fSxFWj0zNCxiVD0xMCxUWj0xM30pO3ZhciBBTixnUHQsX1B0LHlQdCx2UHQseFB0PU0oKCk9PntDTigpO0FOPXcyKCIsIiksZ1B0PUFOLnBhcnNlLF9QdD1BTi5wYXJzZVJvd3MseVB0PUFOLmZvcm1hdCx2UHQ9QU4uZm9ybWF0Um93c30pO3ZhciBQTixiUHQsd1B0LFNQdCxNUHQsRVB0PU0oKCk9PntDTigpO1BOPXcyKCIJIiksYlB0PVBOLnBhcnNlLHdQdD1QTi5wYXJzZVJvd3MsU1B0PVBOLmZvcm1hdCxNUHQ9UE4uZm9ybWF0Um93c30pO3ZhciBUUHQ9TSgoKT0+e0NOKCk7eFB0KCk7RVB0KCl9KTtmdW5jdGlvbiBDUHQoZSl7cmV0dXJuK2V9dmFyIEFQdD1NKCgpPT57fSk7ZnVuY3Rpb24gUFB0KGUpe3JldHVybiBlKmV9ZnVuY3Rpb24gSVB0KGUpe3JldHVybiBlKigyLWUpfWZ1bmN0aW9uIENaKGUpe3JldHVybigoZSo9Mik8PTE/ZSplOi0tZSooMi1lKSsxKS8yfXZhciBMUHQ9TSgoKT0+e30pO2Z1bmN0aW9uIGtQdChlKXtyZXR1cm4gZSplKmV9ZnVuY3Rpb24gUlB0KGUpe3JldHVybi0tZSplKmUrMX1mdW5jdGlvbiBBWihlKXtyZXR1cm4oKGUqPTIpPD0xP2UqZSplOihlLT0yKSplKmUrMikvMn12YXIgTlB0PU0oKCk9Pnt9KTt2YXIgUFosRFB0LE9QdCxJWix6UHQ9TSgoKT0+e1BaPTMsRFB0PWZ1bmN0aW9uIGUodCl7dD0rdDtmdW5jdGlvbiByKG4pe3JldHVybiBNYXRoLnBvdyhuLHQpfXJldHVybiByLmV4cG9uZW50PWUscn0oUFopLE9QdD1mdW5jdGlvbiBlKHQpe3Q9K3Q7ZnVuY3Rpb24gcihuKXtyZXR1cm4gMS1NYXRoLnBvdygxLW4sdCl9cmV0dXJuIHIuZXhwb25lbnQ9ZSxyfShQWiksSVo9ZnVuY3Rpb24gZSh0KXt0PSt0O2Z1bmN0aW9uIHIobil7cmV0dXJuKChuKj0yKTw9MT9NYXRoLnBvdyhuLHQpOjItTWF0aC5wb3coMi1uLHQpKS8yfXJldHVybiByLmV4cG9uZW50PWUscn0oUFopfSk7ZnVuY3Rpb24gSFB0KGUpe3JldHVybiAxLU1hdGguY29zKGUqQlB0KX1mdW5jdGlvbiBWUHQoZSl7cmV0dXJuIE1hdGguc2luKGUqQlB0KX1mdW5jdGlvbiBMWihlKXtyZXR1cm4oMS1NYXRoLmNvcyhGUHQqZSkpLzJ9dmFyIEZQdCxCUHQsVVB0PU0oKCk9PntGUHQ9TWF0aC5QSSxCUHQ9RlB0LzJ9KTtmdW5jdGlvbiBxUHQoZSl7cmV0dXJuIE1hdGgucG93KDIsMTAqZS0xMCl9ZnVuY3Rpb24gR1B0KGUpe3JldHVybiAxLU1hdGgucG93KDIsLTEwKmUpfWZ1bmN0aW9uIGtaKGUpe3JldHVybigoZSo9Mik8PTE/TWF0aC5wb3coMiwxMCplLTEwKToyLU1hdGgucG93KDIsMTAtMTAqZSkpLzJ9dmFyIFdQdD1NKCgpPT57fSk7ZnVuY3Rpb24gWVB0KGUpe3JldHVybiAxLU1hdGguc3FydCgxLWUqZSl9ZnVuY3Rpb24galB0KGUpe3JldHVybiBNYXRoLnNxcnQoMS0gLS1lKmUpfWZ1bmN0aW9uIFJaKGUpe3JldHVybigoZSo9Mik8PTE/MS1NYXRoLnNxcnQoMS1lKmUpOk1hdGguc3FydCgxLShlLT0yKSplKSsxKS8yfXZhciBYUHQ9TSgoKT0+e30pO2Z1bmN0aW9uICRQdChlKXtyZXR1cm4gMS1TMigxLWUpfWZ1bmN0aW9uIFMyKGUpe3JldHVybihlPStlKTxOWj9JTiplKmU6ZTxwNGU/SU4qKGUtPWY0ZSkqZStkNGU6ZTxnNGU/SU4qKGUtPW00ZSkqZStfNGU6SU4qKGUtPXk0ZSkqZSt2NGV9ZnVuY3Rpb24gS1B0KGUpe3JldHVybigoZSo9Mik8PTE/MS1TMigxLWUpOlMyKGUtMSkrMSkvMn12YXIgTlosZjRlLHA0ZSxkNGUsbTRlLGc0ZSxfNGUseTRlLHY0ZSxJTixaUHQ9TSgoKT0+e05aPS4zNjM2MzYzNjM2MzYzNjM2NSxmNGU9Ni8xMSxwNGU9OC8xMSxkNGU9My80LG00ZT05LzExLGc0ZT0xMC8xMSxfNGU9MTUvMTYseTRlPTIxLzIyLHY0ZT02My82NCxJTj0xL05aL05afSk7dmFyIERaLEpQdCxRUHQsT1osdDZ0PU0oKCk9PntEWj0xLjcwMTU4LEpQdD1mdW5jdGlvbiBlKHQpe3Q9K3Q7ZnVuY3Rpb24gcihuKXtyZXR1cm4gbipuKigodCsxKSpuLXQpfXJldHVybiByLm92ZXJzaG9vdD1lLHJ9KERaKSxRUHQ9ZnVuY3Rpb24gZSh0KXt0PSt0O2Z1bmN0aW9uIHIobil7cmV0dXJuLS1uKm4qKCh0KzEpKm4rdCkrMX1yZXR1cm4gci5vdmVyc2hvb3Q9ZSxyfShEWiksT1o9ZnVuY3Rpb24gZSh0KXt0PSt0O2Z1bmN0aW9uIHIobil7cmV0dXJuKChuKj0yKTwxP24qbiooKHQrMSkqbi10KToobi09MikqbiooKHQrMSkqbit0KSsyKS8yfXJldHVybiByLm92ZXJzaG9vdD1lLHJ9KERaKX0pO3ZhciBNMix6WixGWixlNnQsQloscjZ0LG42dD1NKCgpPT57TTI9MipNYXRoLlBJLHpaPTEsRlo9LjMsZTZ0PWZ1bmN0aW9uIGUodCxyKXt2YXIgbj1NYXRoLmFzaW4oMS8odD1NYXRoLm1heCgxLHQpKSkqKHIvPU0yKTtmdW5jdGlvbiBpKG8pe3JldHVybiB0Kk1hdGgucG93KDIsMTAqLS1vKSpNYXRoLnNpbigobi1vKS9yKX1yZXR1cm4gaS5hbXBsaXR1ZGU9ZnVuY3Rpb24obyl7cmV0dXJuIGUobyxyKk0yKX0saS5wZXJpb2Q9ZnVuY3Rpb24obyl7cmV0dXJuIGUodCxvKX0saX0oelosRlopLEJaPWZ1bmN0aW9uIGUodCxyKXt2YXIgbj1NYXRoLmFzaW4oMS8odD1NYXRoLm1heCgxLHQpKSkqKHIvPU0yKTtmdW5jdGlvbiBpKG8pe3JldHVybiAxLXQqTWF0aC5wb3coMiwtMTAqKG89K28pKSpNYXRoLnNpbigobytuKS9yKX1yZXR1cm4gaS5hbXBsaXR1ZGU9ZnVuY3Rpb24obyl7cmV0dXJuIGUobyxyKk0yKX0saS5wZXJpb2Q9ZnVuY3Rpb24obyl7cmV0dXJuIGUodCxvKX0saX0oelosRlopLHI2dD1mdW5jdGlvbiBlKHQscil7dmFyIG49TWF0aC5hc2luKDEvKHQ9TWF0aC5tYXgoMSx0KSkpKihyLz1NMik7ZnVuY3Rpb24gaShvKXtyZXR1cm4oKG89byoyLTEpPDA/dCpNYXRoLnBvdygyLDEwKm8pKk1hdGguc2luKChuLW8pL3IpOjItdCpNYXRoLnBvdygyLC0xMCpvKSpNYXRoLnNpbigobitvKS9yKSkvMn1yZXR1cm4gaS5hbXBsaXR1ZGU9ZnVuY3Rpb24obyl7cmV0dXJuIGUobyxyKk0yKX0saS5wZXJpb2Q9ZnVuY3Rpb24obyl7cmV0dXJuIGUodCxvKX0saX0oelosRlopfSk7dmFyIGk2dD1NKCgpPT57QVB0KCk7TFB0KCk7TlB0KCk7elB0KCk7VVB0KCk7V1B0KCk7WFB0KCk7WlB0KCk7dDZ0KCk7bjZ0KCl9KTtmdW5jdGlvbiBvNnQoZSx0KXt2YXIgcjtlPT1udWxsJiYoZT0wKSx0PT1udWxsJiYodD0wKTtmdW5jdGlvbiBuKCl7dmFyIGksbz1yLmxlbmd0aCxhLHM9MCxsPTA7Zm9yKGk9MDtpPG87KytpKWE9cltpXSxzKz1hLngsbCs9YS55O2ZvcihzPXMvby1lLGw9bC9vLXQsaT0wO2k8bzsrK2kpYT1yW2ldLGEueC09cyxhLnktPWx9cmV0dXJuIG4uaW5pdGlhbGl6ZT1mdW5jdGlvbihpKXtyPWl9LG4ueD1mdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0raSxuKTplfSxuLnk9ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K2ksbik6dH0sbn12YXIgYTZ0PU0oKCk9Pnt9KTtmdW5jdGlvbiBGbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZX19dmFyIEN5PU0oKCk9Pnt9KTtmdW5jdGlvbiBNdSgpe3JldHVybihNYXRoLnJhbmRvbSgpLS41KSoxZS02fXZhciBMTj1NKCgpPT57fSk7ZnVuY3Rpb24gczZ0KGUpe3ZhciB0PSt0aGlzLl94LmNhbGwobnVsbCxlKSxyPSt0aGlzLl95LmNhbGwobnVsbCxlKTtyZXR1cm4gbDZ0KHRoaXMuY292ZXIodCxyKSx0LHIsZSl9ZnVuY3Rpb24gbDZ0KGUsdCxyLG4pe2lmKGlzTmFOKHQpfHxpc05hTihyKSlyZXR1cm4gZTt2YXIgaSxvPWUuX3Jvb3QsYT17ZGF0YTpufSxzPWUuX3gwLGw9ZS5feTAsYz1lLl94MSx1PWUuX3kxLGgsZixwLGQsZyxfLHkseDtpZighbylyZXR1cm4gZS5fcm9vdD1hLGU7Zm9yKDtvLmxlbmd0aDspaWYoKGc9dD49KGg9KHMrYykvMikpP3M9aDpjPWgsKF89cj49KGY9KGwrdSkvMikpP2w9Zjp1PWYsaT1vLCEobz1vW3k9Xzw8MXxnXSkpcmV0dXJuIGlbeV09YSxlO2lmKHA9K2UuX3guY2FsbChudWxsLG8uZGF0YSksZD0rZS5feS5jYWxsKG51bGwsby5kYXRhKSx0PT09cCYmcj09PWQpcmV0dXJuIGEubmV4dD1vLGk/aVt5XT1hOmUuX3Jvb3Q9YSxlO2RvIGk9aT9pW3ldPW5ldyBBcnJheSg0KTplLl9yb290PW5ldyBBcnJheSg0KSwoZz10Pj0oaD0ocytjKS8yKSk/cz1oOmM9aCwoXz1yPj0oZj0obCt1KS8yKSk/bD1mOnU9Zjt3aGlsZSgoeT1fPDwxfGcpPT09KHg9KGQ+PWYpPDwxfHA+PWgpKTtyZXR1cm4gaVt4XT1vLGlbeV09YSxlfWZ1bmN0aW9uIGM2dChlKXt2YXIgdCxyLG49ZS5sZW5ndGgsaSxvLGE9bmV3IEFycmF5KG4pLHM9bmV3IEFycmF5KG4pLGw9MS8wLGM9MS8wLHU9LTEvMCxoPS0xLzA7Zm9yKHI9MDtyPG47KytyKWlzTmFOKGk9K3RoaXMuX3guY2FsbChudWxsLHQ9ZVtyXSkpfHxpc05hTihvPSt0aGlzLl95LmNhbGwobnVsbCx0KSl8fChhW3JdPWksc1tyXT1vLGk8bCYmKGw9aSksaT51JiYodT1pKSxvPGMmJihjPW8pLG8+aCYmKGg9bykpO2lmKGw+dXx8Yz5oKXJldHVybiB0aGlzO2Zvcih0aGlzLmNvdmVyKGwsYykuY292ZXIodSxoKSxyPTA7cjxuOysrcilsNnQodGhpcyxhW3JdLHNbcl0sZVtyXSk7cmV0dXJuIHRoaXN9dmFyIHU2dD1NKCgpPT57fSk7ZnVuY3Rpb24gaDZ0KGUsdCl7aWYoaXNOYU4oZT0rZSl8fGlzTmFOKHQ9K3QpKXJldHVybiB0aGlzO3ZhciByPXRoaXMuX3gwLG49dGhpcy5feTAsaT10aGlzLl94MSxvPXRoaXMuX3kxO2lmKGlzTmFOKHIpKWk9KHI9TWF0aC5mbG9vcihlKSkrMSxvPShuPU1hdGguZmxvb3IodCkpKzE7ZWxzZXtmb3IodmFyIGE9aS1yLHM9dGhpcy5fcm9vdCxsLGM7cj5lfHxlPj1pfHxuPnR8fHQ+PW87KXN3aXRjaChjPSh0PG4pPDwxfGU8cixsPW5ldyBBcnJheSg0KSxsW2NdPXMscz1sLGEqPTIsYyl7Y2FzZSAwOmk9cithLG89bithO2JyZWFrO2Nhc2UgMTpyPWktYSxvPW4rYTticmVhaztjYXNlIDI6aT1yK2Esbj1vLWE7YnJlYWs7Y2FzZSAzOnI9aS1hLG49by1hO2JyZWFrfXRoaXMuX3Jvb3QmJnRoaXMuX3Jvb3QubGVuZ3RoJiYodGhpcy5fcm9vdD1zKX1yZXR1cm4gdGhpcy5feDA9cix0aGlzLl95MD1uLHRoaXMuX3gxPWksdGhpcy5feTE9byx0aGlzfXZhciBmNnQ9TSgoKT0+e30pO2Z1bmN0aW9uIHA2dCgpe3ZhciBlPVtdO3JldHVybiB0aGlzLnZpc2l0KGZ1bmN0aW9uKHQpe2lmKCF0Lmxlbmd0aClkbyBlLnB1c2godC5kYXRhKTt3aGlsZSh0PXQubmV4dCl9KSxlfXZhciBkNnQ9TSgoKT0+e30pO2Z1bmN0aW9uIG02dChlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmNvdmVyKCtlWzBdWzBdLCtlWzBdWzFdKS5jb3ZlcigrZVsxXVswXSwrZVsxXVsxXSk6aXNOYU4odGhpcy5feDApP3ZvaWQgMDpbW3RoaXMuX3gwLHRoaXMuX3kwXSxbdGhpcy5feDEsdGhpcy5feTFdXX12YXIgZzZ0PU0oKCk9Pnt9KTtmdW5jdGlvbiBTbyhlLHQscixuLGkpe3RoaXMubm9kZT1lLHRoaXMueDA9dCx0aGlzLnkwPXIsdGhpcy54MT1uLHRoaXMueTE9aX12YXIga049TSgoKT0+e30pO2Z1bmN0aW9uIF82dChlLHQscil7dmFyIG4saT10aGlzLl94MCxvPXRoaXMuX3kwLGEscyxsLGMsdT10aGlzLl94MSxoPXRoaXMuX3kxLGY9W10scD10aGlzLl9yb290LGQsZztmb3IocCYmZi5wdXNoKG5ldyBTbyhwLGksbyx1LGgpKSxyPT1udWxsP3I9MS8wOihpPWUtcixvPXQtcix1PWUrcixoPXQrcixyKj1yKTtkPWYucG9wKCk7KWlmKCEoIShwPWQubm9kZSl8fChhPWQueDApPnV8fChzPWQueTApPmh8fChsPWQueDEpPGl8fChjPWQueTEpPG8pKWlmKHAubGVuZ3RoKXt2YXIgXz0oYStsKS8yLHk9KHMrYykvMjtmLnB1c2gobmV3IFNvKHBbM10sXyx5LGwsYyksbmV3IFNvKHBbMl0sYSx5LF8sYyksbmV3IFNvKHBbMV0sXyxzLGwseSksbmV3IFNvKHBbMF0sYSxzLF8seSkpLChnPSh0Pj15KTw8MXxlPj1fKSYmKGQ9ZltmLmxlbmd0aC0xXSxmW2YubGVuZ3RoLTFdPWZbZi5sZW5ndGgtMS1nXSxmW2YubGVuZ3RoLTEtZ109ZCl9ZWxzZXt2YXIgeD1lLSt0aGlzLl94LmNhbGwobnVsbCxwLmRhdGEpLGI9dC0rdGhpcy5feS5jYWxsKG51bGwscC5kYXRhKSxTPXgqeCtiKmI7aWYoUzxyKXt2YXIgQz1NYXRoLnNxcnQocj1TKTtpPWUtQyxvPXQtQyx1PWUrQyxoPXQrQyxuPXAuZGF0YX19cmV0dXJuIG59dmFyIHk2dD1NKCgpPT57a04oKX0pO2Z1bmN0aW9uIHY2dChlKXtpZihpc05hTih1PSt0aGlzLl94LmNhbGwobnVsbCxlKSl8fGlzTmFOKGg9K3RoaXMuX3kuY2FsbChudWxsLGUpKSlyZXR1cm4gdGhpczt2YXIgdCxyPXRoaXMuX3Jvb3QsbixpLG8sYT10aGlzLl94MCxzPXRoaXMuX3kwLGw9dGhpcy5feDEsYz10aGlzLl95MSx1LGgsZixwLGQsZyxfLHk7aWYoIXIpcmV0dXJuIHRoaXM7aWYoci5sZW5ndGgpZm9yKDs7KXtpZigoZD11Pj0oZj0oYStsKS8yKSk/YT1mOmw9ZiwoZz1oPj0ocD0ocytjKS8yKSk/cz1wOmM9cCx0PXIsIShyPXJbXz1nPDwxfGRdKSlyZXR1cm4gdGhpcztpZighci5sZW5ndGgpYnJlYWs7KHRbXysxJjNdfHx0W18rMiYzXXx8dFtfKzMmM10pJiYobj10LHk9Xyl9Zm9yKDtyLmRhdGEhPT1lOylpZihpPXIsIShyPXIubmV4dCkpcmV0dXJuIHRoaXM7cmV0dXJuKG89ci5uZXh0KSYmZGVsZXRlIHIubmV4dCxpPyhvP2kubmV4dD1vOmRlbGV0ZSBpLm5leHQsdGhpcyk6dD8obz90W19dPW86ZGVsZXRlIHRbX10sKHI9dFswXXx8dFsxXXx8dFsyXXx8dFszXSkmJnI9PT0odFszXXx8dFsyXXx8dFsxXXx8dFswXSkmJiFyLmxlbmd0aCYmKG4/blt5XT1yOnRoaXMuX3Jvb3Q9ciksdGhpcyk6KHRoaXMuX3Jvb3Q9byx0aGlzKX1mdW5jdGlvbiB4NnQoZSl7Zm9yKHZhciB0PTAscj1lLmxlbmd0aDt0PHI7Kyt0KXRoaXMucmVtb3ZlKGVbdF0pO3JldHVybiB0aGlzfXZhciBiNnQ9TSgoKT0+e30pO2Z1bmN0aW9uIHc2dCgpe3JldHVybiB0aGlzLl9yb290fXZhciBTNnQ9TSgoKT0+e30pO2Z1bmN0aW9uIE02dCgpe3ZhciBlPTA7cmV0dXJuIHRoaXMudmlzaXQoZnVuY3Rpb24odCl7aWYoIXQubGVuZ3RoKWRvKytlO3doaWxlKHQ9dC5uZXh0KX0pLGV9dmFyIEU2dD1NKCgpPT57fSk7ZnVuY3Rpb24gVDZ0KGUpe3ZhciB0PVtdLHIsbj10aGlzLl9yb290LGksbyxhLHMsbDtmb3IobiYmdC5wdXNoKG5ldyBTbyhuLHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7cj10LnBvcCgpOylpZighZShuPXIubm9kZSxvPXIueDAsYT1yLnkwLHM9ci54MSxsPXIueTEpJiZuLmxlbmd0aCl7dmFyIGM9KG8rcykvMix1PShhK2wpLzI7KGk9blszXSkmJnQucHVzaChuZXcgU28oaSxjLHUscyxsKSksKGk9blsyXSkmJnQucHVzaChuZXcgU28oaSxvLHUsYyxsKSksKGk9blsxXSkmJnQucHVzaChuZXcgU28oaSxjLGEscyx1KSksKGk9blswXSkmJnQucHVzaChuZXcgU28oaSxvLGEsYyx1KSl9cmV0dXJuIHRoaXN9dmFyIEM2dD1NKCgpPT57a04oKX0pO2Z1bmN0aW9uIEE2dChlKXt2YXIgdD1bXSxyPVtdLG47Zm9yKHRoaXMuX3Jvb3QmJnQucHVzaChuZXcgU28odGhpcy5fcm9vdCx0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkpO249dC5wb3AoKTspe3ZhciBpPW4ubm9kZTtpZihpLmxlbmd0aCl7dmFyIG8sYT1uLngwLHM9bi55MCxsPW4ueDEsYz1uLnkxLHU9KGErbCkvMixoPShzK2MpLzI7KG89aVswXSkmJnQucHVzaChuZXcgU28obyxhLHMsdSxoKSksKG89aVsxXSkmJnQucHVzaChuZXcgU28obyx1LHMsbCxoKSksKG89aVsyXSkmJnQucHVzaChuZXcgU28obyxhLGgsdSxjKSksKG89aVszXSkmJnQucHVzaChuZXcgU28obyx1LGgsbCxjKSl9ci5wdXNoKG4pfWZvcig7bj1yLnBvcCgpOyllKG4ubm9kZSxuLngwLG4ueTAsbi54MSxuLnkxKTtyZXR1cm4gdGhpc312YXIgUDZ0PU0oKCk9PntrTigpfSk7ZnVuY3Rpb24gSTZ0KGUpe3JldHVybiBlWzBdfWZ1bmN0aW9uIEw2dChlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feD1lLHRoaXMpOnRoaXMuX3h9dmFyIGs2dD1NKCgpPT57fSk7ZnVuY3Rpb24gUjZ0KGUpe3JldHVybiBlWzFdfWZ1bmN0aW9uIE42dChlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feT1lLHRoaXMpOnRoaXMuX3l9dmFyIEQ2dD1NKCgpPT57fSk7ZnVuY3Rpb24gQXkoZSx0LHIpe3ZhciBuPW5ldyBIWih0PT1udWxsP0k2dDp0LHI9PW51bGw/UjZ0OnIsTmFOLE5hTixOYU4sTmFOKTtyZXR1cm4gZT09bnVsbD9uOm4uYWRkQWxsKGUpfWZ1bmN0aW9uIEhaKGUsdCxyLG4saSxvKXt0aGlzLl94PWUsdGhpcy5feT10LHRoaXMuX3gwPXIsdGhpcy5feTA9bix0aGlzLl94MT1pLHRoaXMuX3kxPW8sdGhpcy5fcm9vdD12b2lkIDB9ZnVuY3Rpb24gTzZ0KGUpe2Zvcih2YXIgdD17ZGF0YTplLmRhdGF9LHI9dDtlPWUubmV4dDspcj1yLm5leHQ9e2RhdGE6ZS5kYXRhfTtyZXR1cm4gdH12YXIgV2EsejZ0PU0oKCk9Pnt1NnQoKTtmNnQoKTtkNnQoKTtnNnQoKTt5NnQoKTtiNnQoKTtTNnQoKTtFNnQoKTtDNnQoKTtQNnQoKTtrNnQoKTtENnQoKTtXYT1BeS5wcm90b3R5cGU9SFoucHJvdG90eXBlO1dhLmNvcHk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgSFoodGhpcy5feCx0aGlzLl95LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSx0PXRoaXMuX3Jvb3QscixuO2lmKCF0KXJldHVybiBlO2lmKCF0Lmxlbmd0aClyZXR1cm4gZS5fcm9vdD1PNnQodCksZTtmb3Iocj1be3NvdXJjZTp0LHRhcmdldDplLl9yb290PW5ldyBBcnJheSg0KX1dO3Q9ci5wb3AoKTspZm9yKHZhciBpPTA7aTw0OysraSkobj10LnNvdXJjZVtpXSkmJihuLmxlbmd0aD9yLnB1c2goe3NvdXJjZTpuLHRhcmdldDp0LnRhcmdldFtpXT1uZXcgQXJyYXkoNCl9KTp0LnRhcmdldFtpXT1PNnQobikpO3JldHVybiBlfTtXYS5hZGQ9czZ0O1dhLmFkZEFsbD1jNnQ7V2EuY292ZXI9aDZ0O1dhLmRhdGE9cDZ0O1dhLmV4dGVudD1tNnQ7V2EuZmluZD1fNnQ7V2EucmVtb3ZlPXY2dDtXYS5yZW1vdmVBbGw9eDZ0O1dhLnJvb3Q9dzZ0O1dhLnNpemU9TTZ0O1dhLnZpc2l0PVQ2dDtXYS52aXNpdEFmdGVyPUE2dDtXYS54PUw2dDtXYS55PU42dH0pO3ZhciBWWj1NKCgpPT57ejZ0KCl9KTtmdW5jdGlvbiB4NGUoZSl7cmV0dXJuIGUueCtlLnZ4fWZ1bmN0aW9uIGI0ZShlKXtyZXR1cm4gZS55K2Uudnl9ZnVuY3Rpb24gRjZ0KGUpe3ZhciB0LHIsbj0xLGk9MTt0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmKGU9Rm4oZT09bnVsbD8xOitlKSk7ZnVuY3Rpb24gbygpe2Zvcih2YXIgbCxjPXQubGVuZ3RoLHUsaCxmLHAsZCxnLF89MDtfPGk7KytfKWZvcih1PUF5KHQseDRlLGI0ZSkudmlzaXRBZnRlcihhKSxsPTA7bDxjOysrbCloPXRbbF0sZD1yW2guaW5kZXhdLGc9ZCpkLGY9aC54K2gudngscD1oLnkraC52eSx1LnZpc2l0KHkpO2Z1bmN0aW9uIHkoeCxiLFMsQyxQKXt2YXIgaz14LmRhdGEsTz14LnIsRD1kK087aWYoayl7aWYoay5pbmRleD5oLmluZGV4KXt2YXIgQj1mLWsueC1rLnZ4LEk9cC1rLnktay52eSxMPUIqQitJKkk7TDxEKkQmJihCPT09MCYmKEI9TXUoKSxMKz1CKkIpLEk9PT0wJiYoST1NdSgpLEwrPUkqSSksTD0oRC0oTD1NYXRoLnNxcnQoTCkpKS9MKm4saC52eCs9KEIqPUwpKihEPShPKj1PKS8oZytPKSksaC52eSs9KEkqPUwpKkQsay52eC09QiooRD0xLUQpLGsudnktPUkqRCl9cmV0dXJufXJldHVybiBiPmYrRHx8QzxmLUR8fFM+cCtEfHxQPHAtRH19ZnVuY3Rpb24gYShsKXtpZihsLmRhdGEpcmV0dXJuIGwucj1yW2wuZGF0YS5pbmRleF07Zm9yKHZhciBjPWwucj0wO2M8NDsrK2MpbFtjXSYmbFtjXS5yPmwuciYmKGwucj1sW2NdLnIpfWZ1bmN0aW9uIHMoKXtpZighIXQpe3ZhciBsLGM9dC5sZW5ndGgsdTtmb3Iocj1uZXcgQXJyYXkoYyksbD0wO2w8YzsrK2wpdT10W2xdLHJbdS5pbmRleF09K2UodSxsLHQpfX1yZXR1cm4gby5pbml0aWFsaXplPWZ1bmN0aW9uKGwpe3Q9bCxzKCl9LG8uaXRlcmF0aW9ucz1mdW5jdGlvbihsKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rbCxvKTppfSxvLnN0cmVuZ3RoPWZ1bmN0aW9uKGwpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPStsLG8pOm59LG8ucmFkaXVzPWZ1bmN0aW9uKGwpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiBsPT0iZnVuY3Rpb24iP2w6Rm4oK2wpLHMoKSxvKTplfSxvfXZhciBCNnQ9TSgoKT0+e0N5KCk7TE4oKTtWWigpfSk7ZnVuY3Rpb24gUk4oKXt9ZnVuY3Rpb24gSDZ0KGUsdCl7dmFyIHI9bmV3IFJOO2lmKGUgaW5zdGFuY2VvZiBSTillLmVhY2goZnVuY3Rpb24ocyxsKXtyLnNldChsLHMpfSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKXt2YXIgbj0tMSxpPWUubGVuZ3RoLG87aWYodD09bnVsbClmb3IoOysrbjxpOylyLnNldChuLGVbbl0pO2Vsc2UgZm9yKDsrK248aTspci5zZXQodChvPWVbbl0sbixlKSxvKX1lbHNlIGlmKGUpZm9yKHZhciBhIGluIGUpci5zZXQoYSxlW2FdKTtyZXR1cm4gcn12YXIgdWwsZGcsTk49TSgoKT0+e3VsPSIkIjtSTi5wcm90b3R5cGU9SDZ0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6Uk4saGFzOmZ1bmN0aW9uKGUpe3JldHVybiB1bCtlIGluIHRoaXN9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpc1t1bCtlXX0sc2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXNbdWwrZV09dCx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oZSl7dmFyIHQ9dWwrZTtyZXR1cm4gdCBpbiB0aGlzJiZkZWxldGUgdGhpc1t0XX0sY2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09dWwmJmRlbGV0ZSB0aGlzW2VdfSxrZXlzOmZ1bmN0aW9uKCl7dmFyIGU9W107Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PXVsJiZlLnB1c2godC5zbGljZSgxKSk7cmV0dXJuIGV9LHZhbHVlczpmdW5jdGlvbigpe3ZhciBlPVtdO2Zvcih2YXIgdCBpbiB0aGlzKXRbMF09PT11bCYmZS5wdXNoKHRoaXNbdF0pO3JldHVybiBlfSxlbnRyaWVzOmZ1bmN0aW9uKCl7dmFyIGU9W107Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PXVsJiZlLnB1c2goe2tleTp0LnNsaWNlKDEpLHZhbHVlOnRoaXNbdF19KTtyZXR1cm4gZX0sc2l6ZTpmdW5jdGlvbigpe3ZhciBlPTA7Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PXVsJiYrK2U7cmV0dXJuIGV9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBlIGluIHRoaXMpaWYoZVswXT09PXVsKXJldHVybiExO3JldHVybiEwfSxlYWNoOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCBpbiB0aGlzKXRbMF09PT11bCYmZSh0aGlzW3RdLHQuc2xpY2UoMSksdGhpcyl9fTtkZz1INnR9KTt2YXIgVjZ0PU0oKCk9PntOTigpfSk7ZnVuY3Rpb24gRE4oKXt9ZnVuY3Rpb24gdzRlKGUsdCl7dmFyIHI9bmV3IEROO2lmKGUgaW5zdGFuY2VvZiBETillLmVhY2goZnVuY3Rpb24obyl7ci5hZGQobyl9KTtlbHNlIGlmKGUpe3ZhciBuPS0xLGk9ZS5sZW5ndGg7aWYodD09bnVsbClmb3IoOysrbjxpOylyLmFkZChlW25dKTtlbHNlIGZvcig7KytuPGk7KXIuYWRkKHQoZVtuXSxuLGUpKX1yZXR1cm4gcn12YXIgUHksVTZ0PU0oKCk9PntOTigpO1B5PWRnLnByb3RvdHlwZTtETi5wcm90b3R5cGU9dzRlLnByb3RvdHlwZT17Y29uc3RydWN0b3I6RE4saGFzOlB5LmhhcyxhZGQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrPSIiLHRoaXNbdWwrZV09ZSx0aGlzfSxyZW1vdmU6UHkucmVtb3ZlLGNsZWFyOlB5LmNsZWFyLHZhbHVlczpQeS5rZXlzLHNpemU6UHkuc2l6ZSxlbXB0eTpQeS5lbXB0eSxlYWNoOlB5LmVhY2h9fSk7dmFyIHE2dD1NKCgpPT57fSk7dmFyIEc2dD1NKCgpPT57fSk7dmFyIFc2dD1NKCgpPT57fSk7dmFyIFVaPU0oKCk9PntWNnQoKTtVNnQoKTtOTigpO3E2dCgpO0c2dCgpO1c2dCgpfSk7ZnVuY3Rpb24gUzRlKGUpe3JldHVybiBlLmluZGV4fWZ1bmN0aW9uIFk2dChlLHQpe3ZhciByPWUuZ2V0KHQpO2lmKCFyKXRocm93IG5ldyBFcnJvcigibWlzc2luZzogIit0KTtyZXR1cm4gcn1mdW5jdGlvbiBqNnQoZSl7dmFyIHQ9UzRlLHI9dSxuLGk9Rm4oMzApLG8sYSxzLGwsYz0xO2U9PW51bGwmJihlPVtdKTtmdW5jdGlvbiB1KGcpe3JldHVybiAxL01hdGgubWluKHNbZy5zb3VyY2UuaW5kZXhdLHNbZy50YXJnZXQuaW5kZXhdKX1mdW5jdGlvbiBoKGcpe2Zvcih2YXIgXz0wLHk9ZS5sZW5ndGg7XzxjOysrXylmb3IodmFyIHg9MCxiLFMsQyxQLGssTyxEO3g8eTsrK3gpYj1lW3hdLFM9Yi5zb3VyY2UsQz1iLnRhcmdldCxQPUMueCtDLnZ4LVMueC1TLnZ4fHxNdSgpLGs9Qy55K0MudnktUy55LVMudnl8fE11KCksTz1NYXRoLnNxcnQoUCpQK2sqayksTz0oTy1vW3hdKS9PKmcqblt4XSxQKj1PLGsqPU8sQy52eC09UCooRD1sW3hdKSxDLnZ5LT1rKkQsUy52eCs9UCooRD0xLUQpLFMudnkrPWsqRH1mdW5jdGlvbiBmKCl7aWYoISFhKXt2YXIgZyxfPWEubGVuZ3RoLHk9ZS5sZW5ndGgseD1kZyhhLHQpLGI7Zm9yKGc9MCxzPW5ldyBBcnJheShfKTtnPHk7KytnKWI9ZVtnXSxiLmluZGV4PWcsdHlwZW9mIGIuc291cmNlIT0ib2JqZWN0IiYmKGIuc291cmNlPVk2dCh4LGIuc291cmNlKSksdHlwZW9mIGIudGFyZ2V0IT0ib2JqZWN0IiYmKGIudGFyZ2V0PVk2dCh4LGIudGFyZ2V0KSksc1tiLnNvdXJjZS5pbmRleF09KHNbYi5zb3VyY2UuaW5kZXhdfHwwKSsxLHNbYi50YXJnZXQuaW5kZXhdPShzW2IudGFyZ2V0LmluZGV4XXx8MCkrMTtmb3IoZz0wLGw9bmV3IEFycmF5KHkpO2c8eTsrK2cpYj1lW2ddLGxbZ109c1tiLnNvdXJjZS5pbmRleF0vKHNbYi5zb3VyY2UuaW5kZXhdK3NbYi50YXJnZXQuaW5kZXhdKTtuPW5ldyBBcnJheSh5KSxwKCksbz1uZXcgQXJyYXkoeSksZCgpfX1mdW5jdGlvbiBwKCl7aWYoISFhKWZvcih2YXIgZz0wLF89ZS5sZW5ndGg7ZzxfOysrZyluW2ddPStyKGVbZ10sZyxlKX1mdW5jdGlvbiBkKCl7aWYoISFhKWZvcih2YXIgZz0wLF89ZS5sZW5ndGg7ZzxfOysrZylvW2ddPStpKGVbZ10sZyxlKX1yZXR1cm4gaC5pbml0aWFsaXplPWZ1bmN0aW9uKGcpe2E9ZyxmKCl9LGgubGlua3M9ZnVuY3Rpb24oZyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ZyxmKCksaCk6ZX0saC5pZD1mdW5jdGlvbihnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1nLGgpOnR9LGguaXRlcmF0aW9ucz1mdW5jdGlvbihnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz0rZyxoKTpjfSxoLnN0cmVuZ3RoPWZ1bmN0aW9uKGcpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXR5cGVvZiBnPT0iZnVuY3Rpb24iP2c6Rm4oK2cpLHAoKSxoKTpyfSxoLmRpc3RhbmNlPWZ1bmN0aW9uKGcpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXR5cGVvZiBnPT0iZnVuY3Rpb24iP2c6Rm4oK2cpLGQoKSxoKTppfSxofXZhciBYNnQ9TSgoKT0+e0N5KCk7TE4oKTtVWigpfSk7ZnVuY3Rpb24gSzZ0KCl7Zm9yKHZhciBlPTAsdD1hcmd1bWVudHMubGVuZ3RoLHI9e30sbjtlPHQ7KytlKXtpZighKG49YXJndW1lbnRzW2VdKyIiKXx8biBpbiByfHwvW1xzLl0vLnRlc3QobikpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIHR5cGU6ICIrbik7cltuXT1bXX1yZXR1cm4gbmV3IE9OKHIpfWZ1bmN0aW9uIE9OKGUpe3RoaXMuXz1lfWZ1bmN0aW9uIEU0ZShlLHQpe3JldHVybiBlLnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoZnVuY3Rpb24ocil7dmFyIG49IiIsaT1yLmluZGV4T2YoIi4iKTtpZihpPj0wJiYobj1yLnNsaWNlKGkrMSkscj1yLnNsaWNlKDAsaSkpLHImJiF0Lmhhc093blByb3BlcnR5KHIpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3IpO3JldHVybnt0eXBlOnIsbmFtZTpufX0pfWZ1bmN0aW9uIFQ0ZShlLHQpe2Zvcih2YXIgcj0wLG49ZS5sZW5ndGgsaTtyPG47KytyKWlmKChpPWVbcl0pLm5hbWU9PT10KXJldHVybiBpLnZhbHVlfWZ1bmN0aW9uICQ2dChlLHQscil7Zm9yKHZhciBuPTAsaT1lLmxlbmd0aDtuPGk7KytuKWlmKGVbbl0ubmFtZT09PXQpe2Vbbl09TTRlLGU9ZS5zbGljZSgwLG4pLmNvbmNhdChlLnNsaWNlKG4rMSkpO2JyZWFrfXJldHVybiByIT1udWxsJiZlLnB1c2goe25hbWU6dCx2YWx1ZTpyfSksZX12YXIgTTRlLHFaLFo2dD1NKCgpPT57TTRlPXt2YWx1ZTpmdW5jdGlvbigpe319O09OLnByb3RvdHlwZT1LNnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpPTixvbjpmdW5jdGlvbihlLHQpe3ZhciByPXRoaXMuXyxuPUU0ZShlKyIiLHIpLGksbz0tMSxhPW4ubGVuZ3RoO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKDsrK288YTspaWYoKGk9KGU9bltvXSkudHlwZSkmJihpPVQ0ZShyW2ldLGUubmFtZSkpKXJldHVybiBpO3JldHVybn1pZih0IT1udWxsJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrdCk7Zm9yKDsrK288YTspaWYoaT0oZT1uW29dKS50eXBlKXJbaV09JDZ0KHJbaV0sZS5uYW1lLHQpO2Vsc2UgaWYodD09bnVsbClmb3IoaSBpbiByKXJbaV09JDZ0KHJbaV0sZS5uYW1lLG51bGwpO3JldHVybiB0aGlzfSxjb3B5OmZ1bmN0aW9uKCl7dmFyIGU9e30sdD10aGlzLl87Zm9yKHZhciByIGluIHQpZVtyXT10W3JdLnNsaWNlKCk7cmV0dXJuIG5ldyBPTihlKX0sY2FsbDpmdW5jdGlvbihlLHQpe2lmKChpPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIHI9bmV3IEFycmF5KGkpLG49MCxpLG87bjxpOysrbilyW25dPWFyZ3VtZW50c1tuKzJdO2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkoZSkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrZSk7Zm9yKG89dGhpcy5fW2VdLG49MCxpPW8ubGVuZ3RoO248aTsrK24pb1tuXS52YWx1ZS5hcHBseSh0LHIpfSxhcHBseTpmdW5jdGlvbihlLHQscil7aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eShlKSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIitlKTtmb3IodmFyIG49dGhpcy5fW2VdLGk9MCxvPW4ubGVuZ3RoO2k8bzsrK2kpbltpXS52YWx1ZS5hcHBseSh0LHIpfX07cVo9SzZ0fSk7dmFyIEo2dD1NKCgpPT57WjZ0KCl9KTtmdW5jdGlvbiBZWigpe3JldHVybiBJeXx8KGVJdChDNGUpLEl5PUVULm5vdygpK0JOKX1mdW5jdGlvbiBDNGUoKXtJeT0wfWZ1bmN0aW9uIEdaKCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiBITihlLHQscil7dmFyIG49bmV3IEdaO3JldHVybiBuLnJlc3RhcnQoZSx0LHIpLG59ZnVuY3Rpb24gckl0KCl7WVooKSwrK0UyO2Zvcih2YXIgZT16Tix0O2U7KSh0PUl5LWUuX3RpbWUpPj0wJiZlLl9jYWxsLmNhbGwobnVsbCx0KSxlPWUuX25leHQ7LS1FMn1mdW5jdGlvbiBRNnQoKXtJeT0oRk49RVQubm93KCkpK0JOLEUyPVNUPTA7dHJ5e3JJdCgpfWZpbmFsbHl7RTI9MCxQNGUoKSxJeT0wfX1mdW5jdGlvbiBBNGUoKXt2YXIgZT1FVC5ub3coKSx0PWUtRk47dD50SXQmJihCTi09dCxGTj1lKX1mdW5jdGlvbiBQNGUoKXtmb3IodmFyIGUsdD16TixyLG49MS8wO3Q7KXQuX2NhbGw/KG4+dC5fdGltZSYmKG49dC5fdGltZSksZT10LHQ9dC5fbmV4dCk6KHI9dC5fbmV4dCx0Ll9uZXh0PW51bGwsdD1lP2UuX25leHQ9cjp6Tj1yKTtNVD1lLFdaKG4pfWZ1bmN0aW9uIFdaKGUpe2lmKCFFMil7U1QmJihTVD1jbGVhclRpbWVvdXQoU1QpKTt2YXIgdD1lLUl5O3Q+MjQ/KGU8MS8wJiYoU1Q9c2V0VGltZW91dChRNnQsZS1FVC5ub3coKS1CTikpLHdUJiYod1Q9Y2xlYXJJbnRlcnZhbCh3VCkpKTood1R8fChGTj1FVC5ub3coKSx3VD1zZXRJbnRlcnZhbChBNGUsdEl0KSksRTI9MSxlSXQoUTZ0KSl9fXZhciBFMixTVCx3VCx0SXQsek4sTVQsRk4sSXksQk4sRVQsZUl0LG5JdD1NKCgpPT57RTI9MCxTVD0wLHdUPTAsdEl0PTFlMyxGTj0wLEl5PTAsQk49MCxFVD10eXBlb2YgcGVyZm9ybWFuY2U9PSJvYmplY3QiJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2U6RGF0ZSxlSXQ9dHlwZW9mIHdpbmRvdz09Im9iamVjdCImJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6ZnVuY3Rpb24oZSl7c2V0VGltZW91dChlLDE3KX07R1oucHJvdG90eXBlPUhOLnByb3RvdHlwZT17Y29uc3RydWN0b3I6R1oscmVzdGFydDpmdW5jdGlvbihlLHQscil7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb24iKTtyPShyPT1udWxsP1laKCk6K3IpKyh0PT1udWxsPzA6K3QpLCF0aGlzLl9uZXh0JiZNVCE9PXRoaXMmJihNVD9NVC5fbmV4dD10aGlzOnpOPXRoaXMsTVQ9dGhpcyksdGhpcy5fY2FsbD1lLHRoaXMuX3RpbWU9cixXWigpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5fY2FsbCYmKHRoaXMuX2NhbGw9bnVsbCx0aGlzLl90aW1lPTEvMCxXWigpKX19fSk7dmFyIGlJdD1NKCgpPT57bkl0KCl9KTtmdW5jdGlvbiBvSXQoZSl7cmV0dXJuIGUueH1mdW5jdGlvbiBhSXQoZSl7cmV0dXJuIGUueX1mdW5jdGlvbiBzSXQoZSl7dmFyIHQscj0xLG49LjAwMSxpPTEtTWF0aC5wb3cobiwxLzMwMCksbz0wLGE9LjYscz1kZygpLGw9SE4odSksYz1xWigidGljayIsImVuZCIpO2U9PW51bGwmJihlPVtdKTtmdW5jdGlvbiB1KCl7aCgpLGMuY2FsbCgidGljayIsdCkscjxuJiYobC5zdG9wKCksYy5jYWxsKCJlbmQiLHQpKX1mdW5jdGlvbiBoKCl7dmFyIGQsZz1lLmxlbmd0aCxfO2ZvcihyKz0oby1yKSppLHMuZWFjaChmdW5jdGlvbih5KXt5KHIpfSksZD0wO2Q8ZzsrK2QpXz1lW2RdLF8uZng9PW51bGw/Xy54Kz1fLnZ4Kj1hOihfLng9Xy5meCxfLnZ4PTApLF8uZnk9PW51bGw/Xy55Kz1fLnZ5Kj1hOihfLnk9Xy5meSxfLnZ5PTApfWZ1bmN0aW9uIGYoKXtmb3IodmFyIGQ9MCxnPWUubGVuZ3RoLF87ZDxnOysrZCl7aWYoXz1lW2RdLF8uaW5kZXg9ZCxpc05hTihfLngpfHxpc05hTihfLnkpKXt2YXIgeT1JNGUqTWF0aC5zcXJ0KGQpLHg9ZCpMNGU7Xy54PXkqTWF0aC5jb3MoeCksXy55PXkqTWF0aC5zaW4oeCl9KGlzTmFOKF8udngpfHxpc05hTihfLnZ5KSkmJihfLnZ4PV8udnk9MCl9fWZ1bmN0aW9uIHAoZCl7cmV0dXJuIGQuaW5pdGlhbGl6ZSYmZC5pbml0aWFsaXplKGUpLGR9cmV0dXJuIGYoKSx0PXt0aWNrOmgscmVzdGFydDpmdW5jdGlvbigpe3JldHVybiBsLnJlc3RhcnQodSksdH0sc3RvcDpmdW5jdGlvbigpe3JldHVybiBsLnN0b3AoKSx0fSxub2RlczpmdW5jdGlvbihkKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1kLGYoKSxzLmVhY2gocCksdCk6ZX0sYWxwaGE6ZnVuY3Rpb24oZCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K2QsdCk6cn0sYWxwaGFNaW46ZnVuY3Rpb24oZCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K2QsdCk6bn0sYWxwaGFEZWNheTpmdW5jdGlvbihkKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rZCx0KToraX0sYWxwaGFUYXJnZXQ6ZnVuY3Rpb24oZCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K2QsdCk6b30sdmVsb2NpdHlEZWNheTpmdW5jdGlvbihkKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0xLWQsdCk6MS1hfSxmb3JjZTpmdW5jdGlvbihkLGcpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KGc9PW51bGw/cy5yZW1vdmUoZCk6cy5zZXQoZCxwKGcpKSx0KTpzLmdldChkKX0sZmluZDpmdW5jdGlvbihkLGcsXyl7dmFyIHk9MCx4PWUubGVuZ3RoLGIsUyxDLFAsaztmb3IoXz09bnVsbD9fPTEvMDpfKj1fLHk9MDt5PHg7Kyt5KVA9ZVt5XSxiPWQtUC54LFM9Zy1QLnksQz1iKmIrUypTLEM8XyYmKGs9UCxfPUMpO3JldHVybiBrfSxvbjpmdW5jdGlvbihkLGcpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KGMub24oZCxnKSx0KTpjLm9uKGQpfX19dmFyIEk0ZSxMNGUsalo9TSgoKT0+e0o2dCgpO1VaKCk7aUl0KCk7STRlPTEwLEw0ZT1NYXRoLlBJKigzLU1hdGguc3FydCg1KSl9KTtmdW5jdGlvbiBsSXQoKXt2YXIgZSx0LHIsbj1GbigtMzApLGksbz0xLGE9MS8wLHM9LjgxO2Z1bmN0aW9uIGwoZil7dmFyIHAsZD1lLmxlbmd0aCxnPUF5KGUsb0l0LGFJdCkudmlzaXRBZnRlcih1KTtmb3Iocj1mLHA9MDtwPGQ7KytwKXQ9ZVtwXSxnLnZpc2l0KGgpfWZ1bmN0aW9uIGMoKXtpZighIWUpe3ZhciBmLHA9ZS5sZW5ndGgsZDtmb3IoaT1uZXcgQXJyYXkocCksZj0wO2Y8cDsrK2YpZD1lW2ZdLGlbZC5pbmRleF09K24oZCxmLGUpfX1mdW5jdGlvbiB1KGYpe3ZhciBwPTAsZCxnLF89MCx5LHgsYjtpZihmLmxlbmd0aCl7Zm9yKHk9eD1iPTA7Yjw0OysrYikoZD1mW2JdKSYmKGc9TWF0aC5hYnMoZC52YWx1ZSkpJiYocCs9ZC52YWx1ZSxfKz1nLHkrPWcqZC54LHgrPWcqZC55KTtmLng9eS9fLGYueT14L199ZWxzZXtkPWYsZC54PWQuZGF0YS54LGQueT1kLmRhdGEueTtkbyBwKz1pW2QuZGF0YS5pbmRleF07d2hpbGUoZD1kLm5leHQpfWYudmFsdWU9cH1mdW5jdGlvbiBoKGYscCxkLGcpe2lmKCFmLnZhbHVlKXJldHVybiEwO3ZhciBfPWYueC10LngseT1mLnktdC55LHg9Zy1wLGI9XypfK3kqeTtpZih4KngvczxiKXJldHVybiBiPGEmJihfPT09MCYmKF89TXUoKSxiKz1fKl8pLHk9PT0wJiYoeT1NdSgpLGIrPXkqeSksYjxvJiYoYj1NYXRoLnNxcnQobypiKSksdC52eCs9XypmLnZhbHVlKnIvYix0LnZ5Kz15KmYudmFsdWUqci9iKSwhMDtpZihmLmxlbmd0aHx8Yj49YSlyZXR1cm47KGYuZGF0YSE9PXR8fGYubmV4dCkmJihfPT09MCYmKF89TXUoKSxiKz1fKl8pLHk9PT0wJiYoeT1NdSgpLGIrPXkqeSksYjxvJiYoYj1NYXRoLnNxcnQobypiKSkpO2RvIGYuZGF0YSE9PXQmJih4PWlbZi5kYXRhLmluZGV4XSpyL2IsdC52eCs9Xyp4LHQudnkrPXkqeCk7d2hpbGUoZj1mLm5leHQpfXJldHVybiBsLmluaXRpYWxpemU9ZnVuY3Rpb24oZil7ZT1mLGMoKX0sbC5zdHJlbmd0aD1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10eXBlb2YgZj09ImZ1bmN0aW9uIj9mOkZuKCtmKSxjKCksbCk6bn0sbC5kaXN0YW5jZU1pbj1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1mKmYsbCk6TWF0aC5zcXJ0KG8pfSxsLmRpc3RhbmNlTWF4PWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPWYqZixsKTpNYXRoLnNxcnQoYSl9LGwudGhldGE9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9ZipmLGwpOk1hdGguc3FydChzKX0sbH12YXIgY0l0PU0oKCk9PntDeSgpO0xOKCk7VlooKTtqWigpfSk7ZnVuY3Rpb24gdUl0KGUsdCxyKXt2YXIgbixpPUZuKC4xKSxvLGE7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPUZuKCtlKSksdD09bnVsbCYmKHQ9MCkscj09bnVsbCYmKHI9MCk7ZnVuY3Rpb24gcyhjKXtmb3IodmFyIHU9MCxoPW4ubGVuZ3RoO3U8aDsrK3Upe3ZhciBmPW5bdV0scD1mLngtdHx8MWUtNixkPWYueS1yfHwxZS02LGc9TWF0aC5zcXJ0KHAqcCtkKmQpLF89KGFbdV0tZykqb1t1XSpjL2c7Zi52eCs9cCpfLGYudnkrPWQqX319ZnVuY3Rpb24gbCgpe2lmKCEhbil7dmFyIGMsdT1uLmxlbmd0aDtmb3Iobz1uZXcgQXJyYXkodSksYT1uZXcgQXJyYXkodSksYz0wO2M8dTsrK2MpYVtjXT0rZShuW2NdLGMsbiksb1tjXT1pc05hTihhW2NdKT8wOitpKG5bY10sYyxuKX19cmV0dXJuIHMuaW5pdGlhbGl6ZT1mdW5jdGlvbihjKXtuPWMsbCgpfSxzLnN0cmVuZ3RoPWZ1bmN0aW9uKGMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXR5cGVvZiBjPT0iZnVuY3Rpb24iP2M6Rm4oK2MpLGwoKSxzKTppfSxzLnJhZGl1cz1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10eXBlb2YgYz09ImZ1bmN0aW9uIj9jOkZuKCtjKSxsKCkscyk6ZX0scy54PWZ1bmN0aW9uKGMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PStjLHMpOnR9LHMueT1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rYyxzKTpyfSxzfXZhciBoSXQ9TSgoKT0+e0N5KCl9KTtmdW5jdGlvbiBmSXQoZSl7dmFyIHQ9Rm4oLjEpLHIsbixpO3R5cGVvZiBlIT0iZnVuY3Rpb24iJiYoZT1GbihlPT1udWxsPzA6K2UpKTtmdW5jdGlvbiBvKHMpe2Zvcih2YXIgbD0wLGM9ci5sZW5ndGgsdTtsPGM7KytsKXU9cltsXSx1LnZ4Kz0oaVtsXS11LngpKm5bbF0qc31mdW5jdGlvbiBhKCl7aWYoISFyKXt2YXIgcyxsPXIubGVuZ3RoO2ZvcihuPW5ldyBBcnJheShsKSxpPW5ldyBBcnJheShsKSxzPTA7czxsOysrcyluW3NdPWlzTmFOKGlbc109K2UocltzXSxzLHIpKT8wOit0KHJbc10scyxyKX19cmV0dXJuIG8uaW5pdGlhbGl6ZT1mdW5jdGlvbihzKXtyPXMsYSgpfSxvLnN0cmVuZ3RoPWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXR5cGVvZiBzPT0iZnVuY3Rpb24iP3M6Rm4oK3MpLGEoKSxvKTp0fSxvLng9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dHlwZW9mIHM9PSJmdW5jdGlvbiI/czpGbigrcyksYSgpLG8pOmV9LG99dmFyIHBJdD1NKCgpPT57Q3koKX0pO2Z1bmN0aW9uIGRJdChlKXt2YXIgdD1GbiguMSkscixuLGk7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPUZuKGU9PW51bGw/MDorZSkpO2Z1bmN0aW9uIG8ocyl7Zm9yKHZhciBsPTAsYz1yLmxlbmd0aCx1O2w8YzsrK2wpdT1yW2xdLHUudnkrPShpW2xdLXUueSkqbltsXSpzfWZ1bmN0aW9uIGEoKXtpZighIXIpe3ZhciBzLGw9ci5sZW5ndGg7Zm9yKG49bmV3IEFycmF5KGwpLGk9bmV3IEFycmF5KGwpLHM9MDtzPGw7KytzKW5bc109aXNOYU4oaVtzXT0rZShyW3NdLHMscikpPzA6K3QocltzXSxzLHIpfX1yZXR1cm4gby5pbml0aWFsaXplPWZ1bmN0aW9uKHMpe3I9cyxhKCl9LG8uc3RyZW5ndGg9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9dHlwZW9mIHM9PSJmdW5jdGlvbiI/czpGbigrcyksYSgpLG8pOnR9LG8ueT1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10eXBlb2Ygcz09ImZ1bmN0aW9uIj9zOkZuKCtzKSxhKCksbyk6ZX0sb312YXIgbUl0PU0oKCk9PntDeSgpfSk7dmFyIGdJdD1NKCgpPT57YTZ0KCk7QjZ0KCk7WDZ0KCk7Y0l0KCk7aEl0KCk7alooKTtwSXQoKTttSXQoKX0pO2Z1bmN0aW9uIEx5KGUsdCl7aWYoKHI9KGU9dD9lLnRvRXhwb25lbnRpYWwodC0xKTplLnRvRXhwb25lbnRpYWwoKSkuaW5kZXhPZigiZSIpKTwwKXJldHVybiBudWxsO3ZhciByLG49ZS5zbGljZSgwLHIpO3JldHVybltuLmxlbmd0aD4xP25bMF0rbi5zbGljZSgyKTpuLCtlLnNsaWNlKHIrMSldfXZhciBWTj1NKCgpPT57fSk7ZnVuY3Rpb24gbmYoZSl7cmV0dXJuIGU9THkoTWF0aC5hYnMoZSkpLGU/ZVsxXTpOYU59dmFyIFRUPU0oKCk9PntWTigpfSk7ZnVuY3Rpb24gX0l0KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHIsbil7Zm9yKHZhciBpPXIubGVuZ3RoLG89W10sYT0wLHM9ZVswXSxsPTA7aT4wJiZzPjAmJihsK3MrMT5uJiYocz1NYXRoLm1heCgxLG4tbCkpLG8ucHVzaChyLnN1YnN0cmluZyhpLT1zLGkrcykpLCEoKGwrPXMrMSk+bikpOylzPWVbYT0oYSsxKSVlLmxlbmd0aF07cmV0dXJuIG8ucmV2ZXJzZSgpLmpvaW4odCl9fXZhciB5SXQ9TSgoKT0+e30pO2Z1bmN0aW9uIHZJdChlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZSgvWzAtOV0vZyxmdW5jdGlvbihyKXtyZXR1cm4gZVsrcl19KX19dmFyIHhJdD1NKCgpPT57fSk7ZnVuY3Rpb24gYkl0KGUsdCl7ZT1lLnRvUHJlY2lzaW9uKHQpO3Q6Zm9yKHZhciByPWUubGVuZ3RoLG49MSxpPS0xLG87bjxyOysrbilzd2l0Y2goZVtuXSl7Y2FzZSIuIjppPW89bjticmVhaztjYXNlIjAiOmk9PT0wJiYoaT1uKSxvPW47YnJlYWs7Y2FzZSJlIjpicmVhayB0O2RlZmF1bHQ6aT4wJiYoaT0wKTticmVha31yZXR1cm4gaT4wP2Uuc2xpY2UoMCxpKStlLnNsaWNlKG8rMSk6ZX12YXIgd0l0PU0oKCk9Pnt9KTtmdW5jdGlvbiBTSXQoZSx0KXt2YXIgcj1MeShlLHQpO2lmKCFyKXJldHVybiBlKyIiO3ZhciBuPXJbMF0saT1yWzFdLG89aS0oWFo9TWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKGkvMykpKSozKSsxLGE9bi5sZW5ndGg7cmV0dXJuIG89PT1hP246bz5hP24rbmV3IEFycmF5KG8tYSsxKS5qb2luKCIwIik6bz4wP24uc2xpY2UoMCxvKSsiLiIrbi5zbGljZShvKToiMC4iK25ldyBBcnJheSgxLW8pLmpvaW4oIjAiKStMeShlLE1hdGgubWF4KDAsdCtvLTEpKVswXX12YXIgWFosJFo9TSgoKT0+e1ZOKCl9KTtmdW5jdGlvbiBLWihlLHQpe3ZhciByPUx5KGUsdCk7aWYoIXIpcmV0dXJuIGUrIiI7dmFyIG49clswXSxpPXJbMV07cmV0dXJuIGk8MD8iMC4iK25ldyBBcnJheSgtaSkuam9pbigiMCIpK246bi5sZW5ndGg+aSsxP24uc2xpY2UoMCxpKzEpKyIuIituLnNsaWNlKGkrMSk6bituZXcgQXJyYXkoaS1uLmxlbmd0aCsyKS5qb2luKCIwIil9dmFyIE1JdD1NKCgpPT57Vk4oKX0pO3ZhciBVTixaWj1NKCgpPT57d0l0KCk7JFooKTtNSXQoKTtVTj17IiI6Ykl0LCIlIjpmdW5jdGlvbihlLHQpe3JldHVybihlKjEwMCkudG9GaXhlZCh0KX0sYjpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5yb3VuZChlKS50b1N0cmluZygyKX0sYzpmdW5jdGlvbihlKXtyZXR1cm4gZSsiIn0sZDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5yb3VuZChlKS50b1N0cmluZygxMCl9LGU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS50b0V4cG9uZW50aWFsKHQpfSxmOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUudG9GaXhlZCh0KX0sZzpmdW5jdGlvbihlLHQpe3JldHVybiBlLnRvUHJlY2lzaW9uKHQpfSxvOmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnJvdW5kKGUpLnRvU3RyaW5nKDgpfSxwOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIEtaKGUqMTAwLHQpfSxyOktaLHM6U0l0LFg6ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucm91bmQoZSkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9LHg6ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucm91bmQoZSkudG9TdHJpbmcoMTYpfX19KTtmdW5jdGlvbiBreShlKXtyZXR1cm4gbmV3IEpaKGUpfWZ1bmN0aW9uIEpaKGUpe2lmKCEodD1rNGUuZXhlYyhlKSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGZvcm1hdDogIitlKTt2YXIgdCxyPXRbMV18fCIgIixuPXRbMl18fCI+IixpPXRbM118fCItIixvPXRbNF18fCIiLGE9ISF0WzVdLHM9dFs2XSYmK3RbNl0sbD0hIXRbN10sYz10WzhdJiYrdFs4XS5zbGljZSgxKSx1PXRbOV18fCIiO3U9PT0ibiI/KGw9ITAsdT0iZyIpOlVOW3VdfHwodT0iIiksKGF8fHI9PT0iMCImJm49PT0iPSIpJiYoYT0hMCxyPSIwIixuPSI9IiksdGhpcy5maWxsPXIsdGhpcy5hbGlnbj1uLHRoaXMuc2lnbj1pLHRoaXMuc3ltYm9sPW8sdGhpcy56ZXJvPWEsdGhpcy53aWR0aD1zLHRoaXMuY29tbWE9bCx0aGlzLnByZWNpc2lvbj1jLHRoaXMudHlwZT11fXZhciBrNGUsUVo9TSgoKT0+e1paKCk7azRlPS9eKD86KC4pPyhbPD49Xl0pKT8oWytcLVwoIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KFthLXolXSk/JC9pO2t5LnByb3RvdHlwZT1KWi5wcm90b3R5cGU7SloucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsbCt0aGlzLmFsaWduK3RoaXMuc2lnbit0aGlzLnN5bWJvbCsodGhpcy56ZXJvPyIwIjoiIikrKHRoaXMud2lkdGg9PW51bGw/IiI6TWF0aC5tYXgoMSx0aGlzLndpZHRofDApKSsodGhpcy5jb21tYT8iLCI6IiIpKyh0aGlzLnByZWNpc2lvbj09bnVsbD8iIjoiLiIrTWF0aC5tYXgoMCx0aGlzLnByZWNpc2lvbnwwKSkrdGhpcy50eXBlfX0pO2Z1bmN0aW9uIHRKKGUpe3JldHVybiBlfXZhciBFSXQ9TSgoKT0+e30pO2Z1bmN0aW9uIHFOKGUpe3ZhciB0PWUuZ3JvdXBpbmcmJmUudGhvdXNhbmRzP19JdChlLmdyb3VwaW5nLGUudGhvdXNhbmRzKTp0SixyPWUuY3VycmVuY3ksbj1lLmRlY2ltYWwsaT1lLm51bWVyYWxzP3ZJdChlLm51bWVyYWxzKTp0SixvPWUucGVyY2VudHx8IiUiO2Z1bmN0aW9uIGEobCl7bD1reShsKTt2YXIgYz1sLmZpbGwsdT1sLmFsaWduLGg9bC5zaWduLGY9bC5zeW1ib2wscD1sLnplcm8sZD1sLndpZHRoLGc9bC5jb21tYSxfPWwucHJlY2lzaW9uLHk9bC50eXBlLHg9Zj09PSIkIj9yWzBdOmY9PT0iIyImJi9bYm94WF0vLnRlc3QoeSk/IjAiK3kudG9Mb3dlckNhc2UoKToiIixiPWY9PT0iJCI/clsxXTovWyVwXS8udGVzdCh5KT9vOiIiLFM9VU5beV0sQz0heXx8L1tkZWZncHJzJV0vLnRlc3QoeSk7Xz1fPT1udWxsP3k/NjoxMjovW2dwcnNdLy50ZXN0KHkpP01hdGgubWF4KDEsTWF0aC5taW4oMjEsXykpOk1hdGgubWF4KDAsTWF0aC5taW4oMjAsXykpO2Z1bmN0aW9uIFAoayl7dmFyIE89eCxEPWIsQixJLEw7aWYoeT09PSJjIilEPVMoaykrRCxrPSIiO2Vsc2V7az0razt2YXIgUj1rPDA7aWYoaz1TKE1hdGguYWJzKGspLF8pLFImJitrPT0wJiYoUj0hMSksTz0oUj9oPT09IigiP2g6Ii0iOmg9PT0iLSJ8fGg9PT0iKCI/IiI6aCkrTyxEPSh5PT09InMiP1RJdFs4K1haLzNdOiIiKStEKyhSJiZoPT09IigiPyIpIjoiIiksQyl7Zm9yKEI9LTEsST1rLmxlbmd0aDsrK0I8STspaWYoTD1rLmNoYXJDb2RlQXQoQiksNDg+THx8TD41Nyl7RD0oTD09PTQ2P24ray5zbGljZShCKzEpOmsuc2xpY2UoQikpK0Qsaz1rLnNsaWNlKDAsQik7YnJlYWt9fX1nJiYhcCYmKGs9dChrLDEvMCkpO3ZhciBGPU8ubGVuZ3RoK2subGVuZ3RoK0QubGVuZ3RoLHo9RjxkP25ldyBBcnJheShkLUYrMSkuam9pbihjKToiIjtzd2l0Y2goZyYmcCYmKGs9dCh6K2ssei5sZW5ndGg/ZC1ELmxlbmd0aDoxLzApLHo9IiIpLHUpe2Nhc2UiPCI6az1PK2srRCt6O2JyZWFrO2Nhc2UiPSI6az1PK3oraytEO2JyZWFrO2Nhc2UiXiI6az16LnNsaWNlKDAsRj16Lmxlbmd0aD4+MSkrTytrK0Qrei5zbGljZShGKTticmVhaztkZWZhdWx0Oms9eitPK2srRDticmVha31yZXR1cm4gaShrKX1yZXR1cm4gUC50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBsKyIifSxQfWZ1bmN0aW9uIHMobCxjKXt2YXIgdT1hKChsPWt5KGwpLGwudHlwZT0iZiIsbCkpLGg9TWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKG5mKGMpLzMpKSkqMyxmPU1hdGgucG93KDEwLC1oKSxwPVRJdFs4K2gvM107cmV0dXJuIGZ1bmN0aW9uKGQpe3JldHVybiB1KGYqZCkrcH19cmV0dXJue2Zvcm1hdDphLGZvcm1hdFByZWZpeDpzfX12YXIgVEl0LGVKPU0oKCk9PntUVCgpO3lJdCgpO3hJdCgpO1FaKCk7WlooKTskWigpO0VJdCgpO1RJdD1bInkiLCJ6IiwiYSIsImYiLCJwIiwibiIsIlx4QjUiLCJtIiwiIiwiayIsIk0iLCJHIiwiVCIsIlAiLCJFIiwiWiIsIlkiXX0pO2Z1bmN0aW9uIFdOKGUpe3JldHVybiBHTj1xTihlKSxySj1HTi5mb3JtYXQsbko9R04uZm9ybWF0UHJlZml4LEdOfXZhciBHTixySixuSixDSXQ9TSgoKT0+e2VKKCk7V04oe2RlY2ltYWw6Ii4iLHRob3VzYW5kczoiLCIsZ3JvdXBpbmc6WzNdLGN1cnJlbmN5OlsiJCIsIiJdfSl9KTtmdW5jdGlvbiBBSXQoZSl7cmV0dXJuIE1hdGgubWF4KDAsLW5mKE1hdGguYWJzKGUpKSl9dmFyIFBJdD1NKCgpPT57VFQoKX0pO2Z1bmN0aW9uIElJdChlLHQpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihuZih0KS8zKSkpKjMtbmYoTWF0aC5hYnMoZSkpKX12YXIgTEl0PU0oKCk9PntUVCgpfSk7ZnVuY3Rpb24ga0l0KGUsdCl7cmV0dXJuIGU9TWF0aC5hYnMoZSksdD1NYXRoLmFicyh0KS1lLE1hdGgubWF4KDAsbmYodCktbmYoZSkpKzF9dmFyIFJJdD1NKCgpPT57VFQoKX0pO3ZhciBOSXQ9TSgoKT0+e0NJdCgpO2VKKCk7UVooKTtQSXQoKTtMSXQoKTtSSXQoKX0pO2Z1bmN0aW9uIEFzKCl7cmV0dXJuIG5ldyBqTn1mdW5jdGlvbiBqTigpe3RoaXMucmVzZXQoKX1mdW5jdGlvbiBESXQoZSx0LHIpe3ZhciBuPWUucz10K3IsaT1uLXQsbz1uLWk7ZS50PXQtbysoci1pKX12YXIgWU4sUnk9TSgoKT0+e2pOLnByb3RvdHlwZT17Y29uc3RydWN0b3I6ak4scmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLnM9dGhpcy50PTB9LGFkZDpmdW5jdGlvbihlKXtESXQoWU4sZSx0aGlzLnQpLERJdCh0aGlzLFlOLnMsdGhpcy5zKSx0aGlzLnM/dGhpcy50Kz1ZTi50OnRoaXMucz1ZTi50fSx2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc319O1lOPW5ldyBqTn0pO2Z1bmN0aW9uIEtOKGUpe3JldHVybiBlPjE/MDplPC0xP3JyOk1hdGguYWNvcyhlKX1mdW5jdGlvbiBKbihlKXtyZXR1cm4gZT4xP0JuOmU8LTE/LUJuOk1hdGguYXNpbihlKX1mdW5jdGlvbiBvSihlKXtyZXR1cm4oZT1KdChlLzIpKSplfXZhciBjZSxpSixycixCbixUMixCaSxVcix3ZSxZZSx5YyxTbixhZSxDVCxYTixOeSwkTixKdCxtZyxScixDMixscj1NKCgpPT57Y2U9MWUtNixpSj0xZS0xMixycj1NYXRoLlBJLEJuPXJyLzIsVDI9cnIvNCxCaT1ycioyLFVyPTE4MC9ycix3ZT1yci8xODAsWWU9TWF0aC5hYnMseWM9TWF0aC5hdGFuLFNuPU1hdGguYXRhbjIsYWU9TWF0aC5jb3MsQ1Q9TWF0aC5jZWlsLFhOPU1hdGguZXhwLE55PU1hdGgubG9nLCROPU1hdGgucG93LEp0PU1hdGguc2luLG1nPU1hdGguc2lnbnx8ZnVuY3Rpb24oZSl7cmV0dXJuIGU+MD8xOmU8MD8tMTowfSxScj1NYXRoLnNxcnQsQzI9TWF0aC50YW59KTtmdW5jdGlvbiBxcigpe312YXIgJHA9TSgoKT0+e30pO2Z1bmN0aW9uIFpOKGUsdCl7ZSYmekl0Lmhhc093blByb3BlcnR5KGUudHlwZSkmJnpJdFtlLnR5cGVdKGUsdCl9ZnVuY3Rpb24gYUooZSx0LHIpe3ZhciBuPS0xLGk9ZS5sZW5ndGgtcixvO2Zvcih0LmxpbmVTdGFydCgpOysrbjxpOylvPWVbbl0sdC5wb2ludChvWzBdLG9bMV0sb1syXSk7dC5saW5lRW5kKCl9ZnVuY3Rpb24gRkl0KGUsdCl7dmFyIHI9LTEsbj1lLmxlbmd0aDtmb3IodC5wb2x5Z29uU3RhcnQoKTsrK3I8bjspYUooZVtyXSx0LDEpO3QucG9seWdvbkVuZCgpfWZ1bmN0aW9uIE1vKGUsdCl7ZSYmT0l0Lmhhc093blByb3BlcnR5KGUudHlwZSk/T0l0W2UudHlwZV0oZSx0KTpaTihlLHQpfXZhciBPSXQsekl0LGdnPU0oKCk9PntPSXQ9e0ZlYXR1cmU6ZnVuY3Rpb24oZSx0KXtaTihlLmdlb21ldHJ5LHQpfSxGZWF0dXJlQ29sbGVjdGlvbjpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1lLmZlYXR1cmVzLG49LTEsaT1yLmxlbmd0aDsrK248aTspWk4ocltuXS5nZW9tZXRyeSx0KX19LHpJdD17U3BoZXJlOmZ1bmN0aW9uKGUsdCl7dC5zcGhlcmUoKX0sUG9pbnQ6ZnVuY3Rpb24oZSx0KXtlPWUuY29vcmRpbmF0ZXMsdC5wb2ludChlWzBdLGVbMV0sZVsyXSl9LE11bHRpUG9pbnQ6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9ZS5jb29yZGluYXRlcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KWU9cltuXSx0LnBvaW50KGVbMF0sZVsxXSxlWzJdKX0sTGluZVN0cmluZzpmdW5jdGlvbihlLHQpe2FKKGUuY29vcmRpbmF0ZXMsdCwwKX0sTXVsdGlMaW5lU3RyaW5nOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPWUuY29vcmRpbmF0ZXMsbj0tMSxpPXIubGVuZ3RoOysrbjxpOylhSihyW25dLHQsMCl9LFBvbHlnb246ZnVuY3Rpb24oZSx0KXtGSXQoZS5jb29yZGluYXRlcyx0KX0sTXVsdGlQb2x5Z29uOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPWUuY29vcmRpbmF0ZXMsbj0tMSxpPXIubGVuZ3RoOysrbjxpOylGSXQocltuXSx0KX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPWUuZ2VvbWV0cmllcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KVpOKHJbbl0sdCl9fX0pO2Z1bmN0aW9uIFI0ZSgpe0V1LnBvaW50PUQ0ZX1mdW5jdGlvbiBONGUoKXtWSXQoQkl0LEhJdCl9ZnVuY3Rpb24gRDRlKGUsdCl7RXUucG9pbnQ9Vkl0LEJJdD1lLEhJdD10LGUqPXdlLHQqPXdlLHNKPWUsbEo9YWUodD10LzIrVDIpLGNKPUp0KHQpfWZ1bmN0aW9uIFZJdChlLHQpe2UqPXdlLHQqPXdlLHQ9dC8yK1QyO3ZhciByPWUtc0osbj1yPj0wPzE6LTEsaT1uKnIsbz1hZSh0KSxhPUp0KHQpLHM9Y0oqYSxsPWxKKm8rcyphZShpKSxjPXMqbipKdChpKTtBVC5hZGQoU24oYyxsKSksc0o9ZSxsSj1vLGNKPWF9ZnVuY3Rpb24gVUl0KGUpe3JldHVybiBKTi5yZXNldCgpLE1vKGUsRXUpLEpOKjJ9dmFyIEFULEpOLEJJdCxISXQsc0osbEosY0osRXUsdUo9TSgoKT0+e1J5KCk7bHIoKTskcCgpO2dnKCk7QVQ9QXMoKSxKTj1BcygpLEV1PXtwb2ludDpxcixsaW5lU3RhcnQ6cXIsbGluZUVuZDpxcixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtBVC5yZXNldCgpLEV1LmxpbmVTdGFydD1SNGUsRXUubGluZUVuZD1ONGV9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt2YXIgZT0rQVQ7Sk4uYWRkKGU8MD9CaStlOmUpLHRoaXMubGluZVN0YXJ0PXRoaXMubGluZUVuZD10aGlzLnBvaW50PXFyfSxzcGhlcmU6ZnVuY3Rpb24oKXtKTi5hZGQoQmkpfX19KTtmdW5jdGlvbiBEeShlKXtyZXR1cm5bU24oZVsxXSxlWzBdKSxKbihlWzJdKV19ZnVuY3Rpb24gdmMoZSl7dmFyIHQ9ZVswXSxyPWVbMV0sbj1hZShyKTtyZXR1cm5bbiphZSh0KSxuKkp0KHQpLEp0KHIpXX1mdW5jdGlvbiBQVChlLHQpe3JldHVybiBlWzBdKnRbMF0rZVsxXSp0WzFdK2VbMl0qdFsyXX1mdW5jdGlvbiBLcChlLHQpe3JldHVybltlWzFdKnRbMl0tZVsyXSp0WzFdLGVbMl0qdFswXS1lWzBdKnRbMl0sZVswXSp0WzFdLWVbMV0qdFswXV19ZnVuY3Rpb24gUU4oZSx0KXtlWzBdKz10WzBdLGVbMV0rPXRbMV0sZVsyXSs9dFsyXX1mdW5jdGlvbiBJVChlLHQpe3JldHVybltlWzBdKnQsZVsxXSp0LGVbMl0qdF19ZnVuY3Rpb24gT3koZSl7dmFyIHQ9UnIoZVswXSplWzBdK2VbMV0qZVsxXStlWzJdKmVbMl0pO2VbMF0vPXQsZVsxXS89dCxlWzJdLz10fXZhciBBMj1NKCgpPT57bHIoKX0pO2Z1bmN0aW9uIGhKKGUsdCl7X2cucHVzaChKcD1bZGk9ZSxFaT1lXSksdDxmbCYmKGZsPXQpLHQ+eGMmJih4Yz10KX1mdW5jdGlvbiBYSXQoZSx0KXt2YXIgcj12YyhbZSp3ZSx0KndlXSk7aWYoUDIpe3ZhciBuPUtwKFAyLHIpLGk9W25bMV0sLW5bMF0sMF0sbz1LcChpLG4pO095KG8pLG89RHkobyk7dmFyIGE9ZS16eSxzPWE+MD8xOi0xLGw9b1swXSpVcipzLGMsdT1ZZShhKT4xODA7dV4ocyp6eTxsJiZsPHMqZSk/KGM9b1sxXSpVcixjPnhjJiYoeGM9YykpOihsPShsKzM2MCklMzYwLTE4MCx1XihzKnp5PGwmJmw8cyplKT8oYz0tb1sxXSpVcixjPGZsJiYoZmw9YykpOih0PGZsJiYoZmw9dCksdD54YyYmKHhjPXQpKSksdT9lPHp5P2hsKGRpLGUpPmhsKGRpLEVpKSYmKEVpPWUpOmhsKGUsRWkpPmhsKGRpLEVpKSYmKGRpPWUpOkVpPj1kaT8oZTxkaSYmKGRpPWUpLGU+RWkmJihFaT1lKSk6ZT56eT9obChkaSxlKT5obChkaSxFaSkmJihFaT1lKTpobChlLEVpKT5obChkaSxFaSkmJihkaT1lKX1lbHNlIF9nLnB1c2goSnA9W2RpPWUsRWk9ZV0pO3Q8ZmwmJihmbD10KSx0PnhjJiYoeGM9dCksUDI9cix6eT1lfWZ1bmN0aW9uIHFJdCgpe1pwLnBvaW50PVhJdH1mdW5jdGlvbiBHSXQoKXtKcFswXT1kaSxKcFsxXT1FaSxacC5wb2ludD1oSixQMj1udWxsfWZ1bmN0aW9uICRJdChlLHQpe2lmKFAyKXt2YXIgcj1lLXp5O0xULmFkZChZZShyKT4xODA/cisocj4wPzM2MDotMzYwKTpyKX1lbHNlIFlJdD1lLGpJdD10O0V1LnBvaW50KGUsdCksWEl0KGUsdCl9ZnVuY3Rpb24gTzRlKCl7RXUubGluZVN0YXJ0KCl9ZnVuY3Rpb24gejRlKCl7JEl0KFlJdCxqSXQpLEV1LmxpbmVFbmQoKSxZZShMVCk+Y2UmJihkaT0tKEVpPTE4MCkpLEpwWzBdPWRpLEpwWzFdPUVpLFAyPW51bGx9ZnVuY3Rpb24gaGwoZSx0KXtyZXR1cm4odC09ZSk8MD90KzM2MDp0fWZ1bmN0aW9uIEY0ZShlLHQpe3JldHVybiBlWzBdLXRbMF19ZnVuY3Rpb24gV0l0KGUsdCl7cmV0dXJuIGVbMF08PWVbMV0/ZVswXTw9dCYmdDw9ZVsxXTp0PGVbMF18fGVbMV08dH1mdW5jdGlvbiBLSXQoZSl7dmFyIHQscixuLGksbyxhLHM7aWYoeGM9RWk9LShkaT1mbD0xLzApLF9nPVtdLE1vKGUsWnApLHI9X2cubGVuZ3RoKXtmb3IoX2cuc29ydChGNGUpLHQ9MSxuPV9nWzBdLG89W25dO3Q8cjsrK3QpaT1fZ1t0XSxXSXQobixpWzBdKXx8V0l0KG4saVsxXSk/KGhsKG5bMF0saVsxXSk+aGwoblswXSxuWzFdKSYmKG5bMV09aVsxXSksaGwoaVswXSxuWzFdKT5obChuWzBdLG5bMV0pJiYoblswXT1pWzBdKSk6by5wdXNoKG49aSk7Zm9yKGE9LTEvMCxyPW8ubGVuZ3RoLTEsdD0wLG49b1tyXTt0PD1yO249aSwrK3QpaT1vW3RdLChzPWhsKG5bMV0saVswXSkpPmEmJihhPXMsZGk9aVswXSxFaT1uWzFdKX1yZXR1cm4gX2c9SnA9bnVsbCxkaT09PTEvMHx8Zmw9PT0xLzA/W1tOYU4sTmFOXSxbTmFOLE5hTl1dOltbZGksZmxdLFtFaSx4Y11dfXZhciBkaSxmbCxFaSx4Yyx6eSxZSXQsakl0LFAyLExULF9nLEpwLFpwLFpJdD1NKCgpPT57UnkoKTt1SigpO0EyKCk7bHIoKTtnZygpO0xUPUFzKCksWnA9e3BvaW50OmhKLGxpbmVTdGFydDpxSXQsbGluZUVuZDpHSXQscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7WnAucG9pbnQ9JEl0LFpwLmxpbmVTdGFydD1PNGUsWnAubGluZUVuZD16NGUsTFQucmVzZXQoKSxFdS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe0V1LnBvbHlnb25FbmQoKSxacC5wb2ludD1oSixacC5saW5lU3RhcnQ9cUl0LFpwLmxpbmVFbmQ9R0l0LEFUPDA/KGRpPS0oRWk9MTgwKSxmbD0tKHhjPTkwKSk6TFQ+Y2U/eGM9OTA6TFQ8LWNlJiYoZmw9LTkwKSxKcFswXT1kaSxKcFsxXT1FaX19fSk7ZnVuY3Rpb24gbUooZSx0KXtlKj13ZSx0Kj13ZTt2YXIgcj1hZSh0KTtSVChyKmFlKGUpLHIqSnQoZSksSnQodCkpfWZ1bmN0aW9uIFJUKGUsdCxyKXsrK2tULGVEKz0oZS1lRCkva1QsckQrPSh0LXJEKS9rVCxuRCs9KHItbkQpL2tUfWZ1bmN0aW9uIEpJdCgpe1R1LnBvaW50PUI0ZX1mdW5jdGlvbiBCNGUoZSx0KXtlKj13ZSx0Kj13ZTt2YXIgcj1hZSh0KTtZYT1yKmFlKGUpLGphPXIqSnQoZSksWGE9SnQodCksVHUucG9pbnQ9SDRlLFJUKFlhLGphLFhhKX1mdW5jdGlvbiBINGUoZSx0KXtlKj13ZSx0Kj13ZTt2YXIgcj1hZSh0KSxuPXIqYWUoZSksaT1yKkp0KGUpLG89SnQodCksYT1TbihScigoYT1qYSpvLVhhKmkpKmErKGE9WGEqbi1ZYSpvKSphKyhhPVlhKmktamEqbikqYSksWWEqbitqYSppK1hhKm8pO3REKz1hLGlEKz1hKihZYSsoWWE9bikpLG9EKz1hKihqYSsoamE9aSkpLGFEKz1hKihYYSsoWGE9bykpLFJUKFlhLGphLFhhKX1mdW5jdGlvbiBRSXQoKXtUdS5wb2ludD1tSn1mdW5jdGlvbiBWNGUoKXtUdS5wb2ludD1xNGV9ZnVuY3Rpb24gVTRlKCl7cjl0KHQ5dCxlOXQpLFR1LnBvaW50PW1KfWZ1bmN0aW9uIHE0ZShlLHQpe3Q5dD1lLGU5dD10LGUqPXdlLHQqPXdlLFR1LnBvaW50PXI5dDt2YXIgcj1hZSh0KTtZYT1yKmFlKGUpLGphPXIqSnQoZSksWGE9SnQodCksUlQoWWEsamEsWGEpfWZ1bmN0aW9uIHI5dChlLHQpe2UqPXdlLHQqPXdlO3ZhciByPWFlKHQpLG49ciphZShlKSxpPXIqSnQoZSksbz1KdCh0KSxhPWphKm8tWGEqaSxzPVhhKm4tWWEqbyxsPVlhKmktamEqbixjPVJyKGEqYStzKnMrbCpsKSx1PUpuKGMpLGg9YyYmLXUvYztmSis9aCphLHBKKz1oKnMsZEorPWgqbCx0RCs9dSxpRCs9dSooWWErKFlhPW4pKSxvRCs9dSooamErKGphPWkpKSxhRCs9dSooWGErKFhhPW8pKSxSVChZYSxqYSxYYSl9ZnVuY3Rpb24gbjl0KGUpe2tUPXREPWVEPXJEPW5EPWlEPW9EPWFEPWZKPXBKPWRKPTAsTW8oZSxUdSk7dmFyIHQ9Zkoscj1wSixuPWRKLGk9dCp0K3IqcituKm47cmV0dXJuIGk8aUomJih0PWlELHI9b0Qsbj1hRCx0RDxjZSYmKHQ9ZUQscj1yRCxuPW5EKSxpPXQqdCtyKnIrbipuLGk8aUopP1tOYU4sTmFOXTpbU24ocix0KSpVcixKbihuL1JyKGkpKSpVcl19dmFyIGtULHRELGVELHJELG5ELGlELG9ELGFELGZKLHBKLGRKLHQ5dCxlOXQsWWEsamEsWGEsVHUsaTl0PU0oKCk9PntscigpOyRwKCk7Z2coKTtUdT17c3BoZXJlOnFyLHBvaW50Om1KLGxpbmVTdGFydDpKSXQsbGluZUVuZDpRSXQscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7VHUubGluZVN0YXJ0PVY0ZSxUdS5saW5lRW5kPVU0ZX0scG9seWdvbkVuZDpmdW5jdGlvbigpe1R1LmxpbmVTdGFydD1KSXQsVHUubGluZUVuZD1RSXR9fX0pO2Z1bmN0aW9uIEZ5KGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX12YXIgbzl0PU0oKCk9Pnt9KTtmdW5jdGlvbiBzRChlLHQpe2Z1bmN0aW9uIHIobixpKXtyZXR1cm4gbj1lKG4saSksdChuWzBdLG5bMV0pfXJldHVybiBlLmludmVydCYmdC5pbnZlcnQmJihyLmludmVydD1mdW5jdGlvbihuLGkpe3JldHVybiBuPXQuaW52ZXJ0KG4saSksbiYmZS5pbnZlcnQoblswXSxuWzFdKX0pLHJ9dmFyIGdKPU0oKCk9Pnt9KTtmdW5jdGlvbiBfSihlLHQpe3JldHVybltlPnJyP2UtQmk6ZTwtcnI/ZStCaTplLHRdfWZ1bmN0aW9uIE5UKGUsdCxyKXtyZXR1cm4oZSU9QmkpP3R8fHI/c0Qoczl0KGUpLGw5dCh0LHIpKTpzOXQoZSk6dHx8cj9sOXQodCxyKTpfSn1mdW5jdGlvbiBhOXQoZSl7cmV0dXJuIGZ1bmN0aW9uKHQscil7cmV0dXJuIHQrPWUsW3Q+cnI/dC1CaTp0PC1ycj90K0JpOnQscl19fWZ1bmN0aW9uIHM5dChlKXt2YXIgdD1hOXQoZSk7cmV0dXJuIHQuaW52ZXJ0PWE5dCgtZSksdH1mdW5jdGlvbiBsOXQoZSx0KXt2YXIgcj1hZShlKSxuPUp0KGUpLGk9YWUodCksbz1KdCh0KTtmdW5jdGlvbiBhKHMsbCl7dmFyIGM9YWUobCksdT1hZShzKSpjLGg9SnQocykqYyxmPUp0KGwpLHA9ZipyK3UqbjtyZXR1cm5bU24oaCppLXAqbyx1KnItZipuKSxKbihwKmkraCpvKV19cmV0dXJuIGEuaW52ZXJ0PWZ1bmN0aW9uKHMsbCl7dmFyIGM9YWUobCksdT1hZShzKSpjLGg9SnQocykqYyxmPUp0KGwpLHA9ZippLWgqbztyZXR1cm5bU24oaCppK2Yqbyx1KnIrcCpuKSxKbihwKnItdSpuKV19LGF9ZnVuY3Rpb24gbEQoZSl7ZT1OVChlWzBdKndlLGVbMV0qd2UsZS5sZW5ndGg+Mj9lWzJdKndlOjApO2Z1bmN0aW9uIHQocil7cmV0dXJuIHI9ZShyWzBdKndlLHJbMV0qd2UpLHJbMF0qPVVyLHJbMV0qPVVyLHJ9cmV0dXJuIHQuaW52ZXJ0PWZ1bmN0aW9uKHIpe3JldHVybiByPWUuaW52ZXJ0KHJbMF0qd2UsclsxXSp3ZSksclswXSo9VXIsclsxXSo9VXIscn0sdH12YXIgRFQ9TSgoKT0+e2dKKCk7bHIoKTtfSi5pbnZlcnQ9X0p9KTtmdW5jdGlvbiB5SihlLHQscixuLGksbyl7aWYoISFyKXt2YXIgYT1hZSh0KSxzPUp0KHQpLGw9bipyO2k9PW51bGw/KGk9dCtuKkJpLG89dC1sLzIpOihpPWM5dChhLGkpLG89Yzl0KGEsbyksKG4+MD9pPG86aT5vKSYmKGkrPW4qQmkpKTtmb3IodmFyIGMsdT1pO24+MD91Pm86dTxvO3UtPWwpYz1EeShbYSwtcyphZSh1KSwtcypKdCh1KV0pLGUucG9pbnQoY1swXSxjWzFdKX19ZnVuY3Rpb24gYzl0KGUsdCl7dD12Yyh0KSx0WzBdLT1lLE95KHQpO3ZhciByPUtOKC10WzFdKTtyZXR1cm4oKC10WzJdPDA/LXI6cikrQmktY2UpJUJpfWZ1bmN0aW9uIHU5dCgpe3ZhciBlPUZ5KFswLDBdKSx0PUZ5KDkwKSxyPUZ5KDYpLG4saSxvPXtwb2ludDphfTtmdW5jdGlvbiBhKGwsYyl7bi5wdXNoKGw9aShsLGMpKSxsWzBdKj1VcixsWzFdKj1Vcn1mdW5jdGlvbiBzKCl7dmFyIGw9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksYz10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSp3ZSx1PXIuYXBwbHkodGhpcyxhcmd1bWVudHMpKndlO3JldHVybiBuPVtdLGk9TlQoLWxbMF0qd2UsLWxbMV0qd2UsMCkuaW52ZXJ0LHlKKG8sYyx1LDEpLGw9e3R5cGU6IlBvbHlnb24iLGNvb3JkaW5hdGVzOltuXX0sbj1pPW51bGwsbH1yZXR1cm4gcy5jZW50ZXI9ZnVuY3Rpb24obCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dHlwZW9mIGw9PSJmdW5jdGlvbiI/bDpGeShbK2xbMF0sK2xbMV1dKSxzKTplfSxzLnJhZGl1cz1mdW5jdGlvbihsKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD10eXBlb2YgbD09ImZ1bmN0aW9uIj9sOkZ5KCtsKSxzKTp0fSxzLnByZWNpc2lvbj1mdW5jdGlvbihsKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10eXBlb2YgbD09ImZ1bmN0aW9uIj9sOkZ5KCtsKSxzKTpyfSxzfXZhciB2Sj1NKCgpPT57QTIoKTtvOXQoKTtscigpO0RUKCl9KTtmdW5jdGlvbiBjRCgpe3ZhciBlPVtdLHQ7cmV0dXJue3BvaW50OmZ1bmN0aW9uKHIsbil7dC5wdXNoKFtyLG5dKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7ZS5wdXNoKHQ9W10pfSxsaW5lRW5kOnFyLHJlam9pbjpmdW5jdGlvbigpe2UubGVuZ3RoPjEmJmUucHVzaChlLnBvcCgpLmNvbmNhdChlLnNoaWZ0KCkpKX0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHI9ZTtyZXR1cm4gZT1bXSx0PW51bGwscn19fXZhciB4Sj1NKCgpPT57JHAoKX0pO2Z1bmN0aW9uIEkyKGUsdCl7cmV0dXJuIFllKGVbMF0tdFswXSk8Y2UmJlllKGVbMV0tdFsxXSk8Y2V9dmFyIGJKPU0oKCk9PntscigpfSk7ZnVuY3Rpb24gdUQoZSx0LHIsbil7dGhpcy54PWUsdGhpcy56PXQsdGhpcy5vPXIsdGhpcy5lPW4sdGhpcy52PSExLHRoaXMubj10aGlzLnA9bnVsbH1mdW5jdGlvbiBoRChlLHQscixuLGkpe3ZhciBvPVtdLGE9W10scyxsO2lmKGUuZm9yRWFjaChmdW5jdGlvbihkKXtpZighKChnPWQubGVuZ3RoLTEpPD0wKSl7dmFyIGcsXz1kWzBdLHk9ZFtnXSx4O2lmKEkyKF8seSkpe2ZvcihpLmxpbmVTdGFydCgpLHM9MDtzPGc7KytzKWkucG9pbnQoKF89ZFtzXSlbMF0sX1sxXSk7aS5saW5lRW5kKCk7cmV0dXJufW8ucHVzaCh4PW5ldyB1RChfLGQsbnVsbCwhMCkpLGEucHVzaCh4Lm89bmV3IHVEKF8sbnVsbCx4LCExKSksby5wdXNoKHg9bmV3IHVEKHksZCxudWxsLCExKSksYS5wdXNoKHgubz1uZXcgdUQoeSxudWxsLHgsITApKX19KSwhIW8ubGVuZ3RoKXtmb3IoYS5zb3J0KHQpLGg5dChvKSxoOXQoYSkscz0wLGw9YS5sZW5ndGg7czxsOysrcylhW3NdLmU9cj0hcjtmb3IodmFyIGM9b1swXSx1LGg7Oyl7Zm9yKHZhciBmPWMscD0hMDtmLnY7KWlmKChmPWYubik9PT1jKXJldHVybjt1PWYueixpLmxpbmVTdGFydCgpO2Rve2lmKGYudj1mLm8udj0hMCxmLmUpe2lmKHApZm9yKHM9MCxsPXUubGVuZ3RoO3M8bDsrK3MpaS5wb2ludCgoaD11W3NdKVswXSxoWzFdKTtlbHNlIG4oZi54LGYubi54LDEsaSk7Zj1mLm59ZWxzZXtpZihwKWZvcih1PWYucC56LHM9dS5sZW5ndGgtMTtzPj0wOy0tcylpLnBvaW50KChoPXVbc10pWzBdLGhbMV0pO2Vsc2UgbihmLngsZi5wLngsLTEsaSk7Zj1mLnB9Zj1mLm8sdT1mLnoscD0hcH13aGlsZSghZi52KTtpLmxpbmVFbmQoKX19fWZ1bmN0aW9uIGg5dChlKXtpZighISh0PWUubGVuZ3RoKSl7Zm9yKHZhciB0LHI9MCxuPWVbMF0saTsrK3I8dDspbi5uPWk9ZVtyXSxpLnA9bixuPWk7bi5uPWk9ZVswXSxpLnA9bn19dmFyIHdKPU0oKCk9PntiSigpfSk7ZnVuY3Rpb24gZkQoZSx0KXt2YXIgcj10WzBdLG49dFsxXSxpPVtKdChyKSwtYWUociksMF0sbz0wLGE9MDtTSi5yZXNldCgpO2Zvcih2YXIgcz0wLGw9ZS5sZW5ndGg7czxsOysrcylpZighISh1PShjPWVbc10pLmxlbmd0aCkpZm9yKHZhciBjLHUsaD1jW3UtMV0sZj1oWzBdLHA9aFsxXS8yK1QyLGQ9SnQocCksZz1hZShwKSxfPTA7Xzx1OysrXyxmPXgsZD1TLGc9QyxoPXkpe3ZhciB5PWNbX10seD15WzBdLGI9eVsxXS8yK1QyLFM9SnQoYiksQz1hZShiKSxQPXgtZixrPVA+PTA/MTotMSxPPWsqUCxEPU8+cnIsQj1kKlM7aWYoU0ouYWRkKFNuKEIqaypKdChPKSxnKkMrQiphZShPKSkpLG8rPUQ/UCtrKkJpOlAsRF5mPj1yXng+PXIpe3ZhciBJPUtwKHZjKGgpLHZjKHkpKTtPeShJKTt2YXIgTD1LcChpLEkpO095KEwpO3ZhciBSPShEXlA+PTA/LTE6MSkqSm4oTFsyXSk7KG4+Unx8bj09PVImJihJWzBdfHxJWzFdKSkmJihhKz1EXlA+PTA/MTotMSl9fXJldHVybihvPC1jZXx8bzxjZSYmU0o8LWNlKV5hJjF9dmFyIFNKLE1KPU0oKCk9PntSeSgpO0EyKCk7bHIoKTtTSj1BcygpfSk7ZnVuY3Rpb24geWcoZSx0KXtyZXR1cm4gZTx0Py0xOmU+dD8xOmU+PXQ/MDpOYU59dmFyIEJ5PU0oKCk9Pnt9KTtmdW5jdGlvbiBFSihlKXtyZXR1cm4gZS5sZW5ndGg9PT0xJiYoZT1HNGUoZSkpLHtsZWZ0OmZ1bmN0aW9uKHQscixuLGkpe2ZvcihuPT1udWxsJiYobj0wKSxpPT1udWxsJiYoaT10Lmxlbmd0aCk7bjxpOyl7dmFyIG89bitpPj4+MTtlKHRbb10scik8MD9uPW8rMTppPW99cmV0dXJuIG59LHJpZ2h0OmZ1bmN0aW9uKHQscixuLGkpe2ZvcihuPT1udWxsJiYobj0wKSxpPT1udWxsJiYoaT10Lmxlbmd0aCk7bjxpOyl7dmFyIG89bitpPj4+MTtlKHRbb10scik+MD9pPW86bj1vKzF9cmV0dXJuIG59fX1mdW5jdGlvbiBHNGUoZSl7cmV0dXJuIGZ1bmN0aW9uKHQscil7cmV0dXJuIHlnKGUodCkscil9fXZhciBUSj1NKCgpPT57QnkoKX0pO3ZhciBmOXQsVzRlLFk0ZSxDSj1NKCgpPT57QnkoKTtUSigpO2Y5dD1FSih5ZyksVzRlPWY5dC5yaWdodCxZNGU9Zjl0LmxlZnR9KTt2YXIgQUo9TSgoKT0+e30pO3ZhciBwOXQ9TSgoKT0+e0FKKCl9KTt2YXIgZDl0PU0oKCk9Pnt9KTt2YXIgTDI9TSgoKT0+e30pO3ZhciBQSj1NKCgpPT57TDIoKX0pO3ZhciBJSj1NKCgpPT57UEooKX0pO3ZhciBMSj1NKCgpPT57fSk7dmFyIG05dCxYNGUsJDRlLGtKPU0oKCk9PnttOXQ9QXJyYXkucHJvdG90eXBlLFg0ZT1tOXQuc2xpY2UsJDRlPW05dC5tYXB9KTt2YXIgZzl0PU0oKCk9Pnt9KTt2YXIgXzl0PU0oKCk9Pnt9KTtmdW5jdGlvbiBRcChlLHQscil7ZT0rZSx0PSt0LHI9KGk9YXJndW1lbnRzLmxlbmd0aCk8Mj8odD1lLGU9MCwxKTppPDM/MTorcjtmb3IodmFyIG49LTEsaT1NYXRoLm1heCgwLE1hdGguY2VpbCgodC1lKS9yKSl8MCxvPW5ldyBBcnJheShpKTsrK248aTspb1tuXT1lK24qcjtyZXR1cm4gb312YXIgUko9TSgoKT0+e30pO3ZhciBrMG4sUjBuLE4wbixOSj1NKCgpPT57azBuPU1hdGguc3FydCg1MCksUjBuPU1hdGguc3FydCgxMCksTjBuPU1hdGguc3FydCgyKX0pO3ZhciBESj1NKCgpPT57fSk7dmFyIHk5dD1NKCgpPT57a0ooKTtDSigpO2c5dCgpO0xKKCk7Xzl0KCk7UkooKTtOSigpO0RKKCl9KTt2YXIgZEQ9TSgoKT0+e0wyKCl9KTt2YXIgeDl0PU0oKCk9PntrSigpO0J5KCk7TDIoKTtkRCgpfSk7dmFyIGI5dD1NKCgpPT57SUooKX0pO3ZhciB3OXQ9TSgoKT0+e30pO3ZhciBTOXQ9TSgoKT0+e0wyKCl9KTt2YXIgTTl0PU0oKCk9PntCeSgpO0wyKCk7ZEQoKX0pO2Z1bmN0aW9uIE9UKGUpe2Zvcih2YXIgdD1lLmxlbmd0aCxyLG49LTEsaT0wLG8sYTsrK248dDspaSs9ZVtuXS5sZW5ndGg7Zm9yKG89bmV3IEFycmF5KGkpOy0tdD49MDspZm9yKGE9ZVt0XSxyPWEubGVuZ3RoOy0tcj49MDspb1stLWldPWFbcl07cmV0dXJuIG99dmFyIEU5dD1NKCgpPT57fSk7dmFyIE9KPU0oKCk9Pnt9KTt2YXIgVDl0PU0oKCk9Pnt9KTt2YXIgQzl0PU0oKCk9PntCeSgpfSk7dmFyIEE5dD1NKCgpPT57fSk7dmFyIFA5dD1NKCgpPT57fSk7dmFyIHpKPU0oKCk9PntPSigpfSk7dmFyIEk5dD1NKCgpPT57ekooKX0pO3ZhciBtRD1NKCgpPT57Q0ooKTtCeSgpO1RKKCk7cDl0KCk7ZDl0KCk7SUooKTtMSigpO3k5dCgpO3g5dCgpO2I5dCgpO0RKKCk7dzl0KCk7Uzl0KCk7TTl0KCk7RTl0KCk7T0ooKTtBSigpO1Q5dCgpO2REKCk7UkooKTtDOXQoKTtBOXQoKTtQOXQoKTtOSigpO3pKKCk7UEooKTtJOXQoKX0pO2Z1bmN0aW9uIGdEKGUsdCxyLG4pe3JldHVybiBmdW5jdGlvbihpKXt2YXIgbz10KGkpLGE9Y0QoKSxzPXQoYSksbD0hMSxjLHUsaCxmPXtwb2ludDpwLGxpbmVTdGFydDpnLGxpbmVFbmQ6Xyxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtmLnBvaW50PXksZi5saW5lU3RhcnQ9eCxmLmxpbmVFbmQ9Yix1PVtdLGM9W119LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtmLnBvaW50PXAsZi5saW5lU3RhcnQ9ZyxmLmxpbmVFbmQ9Xyx1PU9UKHUpO3ZhciBTPWZEKGMsbik7dS5sZW5ndGg/KGx8fChpLnBvbHlnb25TdGFydCgpLGw9ITApLGhEKHUsaVBlLFMscixpKSk6UyYmKGx8fChpLnBvbHlnb25TdGFydCgpLGw9ITApLGkubGluZVN0YXJ0KCkscihudWxsLG51bGwsMSxpKSxpLmxpbmVFbmQoKSksbCYmKGkucG9seWdvbkVuZCgpLGw9ITEpLHU9Yz1udWxsfSxzcGhlcmU6ZnVuY3Rpb24oKXtpLnBvbHlnb25TdGFydCgpLGkubGluZVN0YXJ0KCkscihudWxsLG51bGwsMSxpKSxpLmxpbmVFbmQoKSxpLnBvbHlnb25FbmQoKX19O2Z1bmN0aW9uIHAoUyxDKXtlKFMsQykmJmkucG9pbnQoUyxDKX1mdW5jdGlvbiBkKFMsQyl7by5wb2ludChTLEMpfWZ1bmN0aW9uIGcoKXtmLnBvaW50PWQsby5saW5lU3RhcnQoKX1mdW5jdGlvbiBfKCl7Zi5wb2ludD1wLG8ubGluZUVuZCgpfWZ1bmN0aW9uIHkoUyxDKXtoLnB1c2goW1MsQ10pLHMucG9pbnQoUyxDKX1mdW5jdGlvbiB4KCl7cy5saW5lU3RhcnQoKSxoPVtdfWZ1bmN0aW9uIGIoKXt5KGhbMF1bMF0saFswXVsxXSkscy5saW5lRW5kKCk7dmFyIFM9cy5jbGVhbigpLEM9YS5yZXN1bHQoKSxQLGs9Qy5sZW5ndGgsTyxELEI7aWYoaC5wb3AoKSxjLnB1c2goaCksaD1udWxsLCEhayl7aWYoUyYxKXtpZihEPUNbMF0sKE89RC5sZW5ndGgtMSk+MCl7Zm9yKGx8fChpLnBvbHlnb25TdGFydCgpLGw9ITApLGkubGluZVN0YXJ0KCksUD0wO1A8TzsrK1ApaS5wb2ludCgoQj1EW1BdKVswXSxCWzFdKTtpLmxpbmVFbmQoKX1yZXR1cm59az4xJiZTJjImJkMucHVzaChDLnBvcCgpLmNvbmNhdChDLnNoaWZ0KCkpKSx1LnB1c2goQy5maWx0ZXIoblBlKSl9fXJldHVybiBmfX1mdW5jdGlvbiBuUGUoZSl7cmV0dXJuIGUubGVuZ3RoPjF9ZnVuY3Rpb24gaVBlKGUsdCl7cmV0dXJuKChlPWUueClbMF08MD9lWzFdLUJuLWNlOkJuLWVbMV0pLSgodD10LngpWzBdPDA/dFsxXS1Cbi1jZTpCbi10WzFdKX12YXIgRko9TSgoKT0+e3hKKCk7d0ooKTtscigpO01KKCk7bUQoKX0pO2Z1bmN0aW9uIG9QZShlKXt2YXIgdD1OYU4scj1OYU4sbj1OYU4saTtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7ZS5saW5lU3RhcnQoKSxpPTF9LHBvaW50OmZ1bmN0aW9uKG8sYSl7dmFyIHM9bz4wP3JyOi1ycixsPVllKG8tdCk7WWUobC1ycik8Y2U/KGUucG9pbnQodCxyPShyK2EpLzI+MD9CbjotQm4pLGUucG9pbnQobixyKSxlLmxpbmVFbmQoKSxlLmxpbmVTdGFydCgpLGUucG9pbnQocyxyKSxlLnBvaW50KG8sciksaT0wKTpuIT09cyYmbD49cnImJihZZSh0LW4pPGNlJiYodC09bipjZSksWWUoby1zKTxjZSYmKG8tPXMqY2UpLHI9YVBlKHQscixvLGEpLGUucG9pbnQobixyKSxlLmxpbmVFbmQoKSxlLmxpbmVTdGFydCgpLGUucG9pbnQocyxyKSxpPTApLGUucG9pbnQodD1vLHI9YSksbj1zfSxsaW5lRW5kOmZ1bmN0aW9uKCl7ZS5saW5lRW5kKCksdD1yPU5hTn0sY2xlYW46ZnVuY3Rpb24oKXtyZXR1cm4gMi1pfX19ZnVuY3Rpb24gYVBlKGUsdCxyLG4pe3ZhciBpLG8sYT1KdChlLXIpO3JldHVybiBZZShhKT5jZT95YygoSnQodCkqKG89YWUobikpKkp0KHIpLUp0KG4pKihpPWFlKHQpKSpKdChlKSkvKGkqbyphKSk6KHQrbikvMn1mdW5jdGlvbiBzUGUoZSx0LHIsbil7dmFyIGk7aWYoZT09bnVsbClpPXIqQm4sbi5wb2ludCgtcnIsaSksbi5wb2ludCgwLGkpLG4ucG9pbnQocnIsaSksbi5wb2ludChyciwwKSxuLnBvaW50KHJyLC1pKSxuLnBvaW50KDAsLWkpLG4ucG9pbnQoLXJyLC1pKSxuLnBvaW50KC1yciwwKSxuLnBvaW50KC1ycixpKTtlbHNlIGlmKFllKGVbMF0tdFswXSk+Y2Upe3ZhciBvPWVbMF08dFswXT9ycjotcnI7aT1yKm8vMixuLnBvaW50KC1vLGkpLG4ucG9pbnQoMCxpKSxuLnBvaW50KG8saSl9ZWxzZSBuLnBvaW50KHRbMF0sdFsxXSl9dmFyIHpULEJKPU0oKCk9PntGSigpO2xyKCk7elQ9Z0QoZnVuY3Rpb24oKXtyZXR1cm4hMH0sb1BlLHNQZSxbLXJyLC1Cbl0pfSk7ZnVuY3Rpb24gX0QoZSl7dmFyIHQ9YWUoZSkscj02KndlLG49dD4wLGk9WWUodCk+Y2U7ZnVuY3Rpb24gbyh1LGgsZixwKXt5SihwLGUscixmLHUsaCl9ZnVuY3Rpb24gYSh1LGgpe3JldHVybiBhZSh1KSphZShoKT50fWZ1bmN0aW9uIHModSl7dmFyIGgsZixwLGQsZztyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7ZD1wPSExLGc9MX0scG9pbnQ6ZnVuY3Rpb24oXyx5KXt2YXIgeD1bXyx5XSxiLFM9YShfLHkpLEM9bj9TPzA6YyhfLHkpOlM/YyhfKyhfPDA/cnI6LXJyKSx5KTowO2lmKCFoJiYoZD1wPVMpJiZ1LmxpbmVTdGFydCgpLFMhPT1wJiYoYj1sKGgseCksKCFifHxJMihoLGIpfHxJMih4LGIpKSYmKHhbMF0rPWNlLHhbMV0rPWNlLFM9YSh4WzBdLHhbMV0pKSksUyE9PXApZz0wLFM/KHUubGluZVN0YXJ0KCksYj1sKHgsaCksdS5wb2ludChiWzBdLGJbMV0pKTooYj1sKGgseCksdS5wb2ludChiWzBdLGJbMV0pLHUubGluZUVuZCgpKSxoPWI7ZWxzZSBpZihpJiZoJiZuXlMpe3ZhciBQOyEoQyZmKSYmKFA9bCh4LGgsITApKSYmKGc9MCxuPyh1LmxpbmVTdGFydCgpLHUucG9pbnQoUFswXVswXSxQWzBdWzFdKSx1LnBvaW50KFBbMV1bMF0sUFsxXVsxXSksdS5saW5lRW5kKCkpOih1LnBvaW50KFBbMV1bMF0sUFsxXVsxXSksdS5saW5lRW5kKCksdS5saW5lU3RhcnQoKSx1LnBvaW50KFBbMF1bMF0sUFswXVsxXSkpKX1TJiYoIWh8fCFJMihoLHgpKSYmdS5wb2ludCh4WzBdLHhbMV0pLGg9eCxwPVMsZj1DfSxsaW5lRW5kOmZ1bmN0aW9uKCl7cCYmdS5saW5lRW5kKCksaD1udWxsfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiBnfChkJiZwKTw8MX19fWZ1bmN0aW9uIGwodSxoLGYpe3ZhciBwPXZjKHUpLGQ9dmMoaCksZz1bMSwwLDBdLF89S3AocCxkKSx5PVBUKF8sXykseD1fWzBdLGI9eS14Kng7aWYoIWIpcmV0dXJuIWYmJnU7dmFyIFM9dCp5L2IsQz0tdCp4L2IsUD1LcChnLF8pLGs9SVQoZyxTKSxPPUlUKF8sQyk7UU4oayxPKTt2YXIgRD1QLEI9UFQoayxEKSxJPVBUKEQsRCksTD1CKkItSSooUFQoayxrKS0xKTtpZighKEw8MCkpe3ZhciBSPVJyKEwpLEY9SVQoRCwoLUItUikvSSk7aWYoUU4oRixrKSxGPUR5KEYpLCFmKXJldHVybiBGO3ZhciB6PXVbMF0sVT1oWzBdLFc9dVsxXSxaPWhbMV0scnQ7VTx6JiYocnQ9eix6PVUsVT1ydCk7dmFyIG90PVUteixzdD1ZZShvdC1ycik8Y2UsU3Q9c3R8fG90PGNlO2lmKCFzdCYmWjxXJiYocnQ9VyxXPVosWj1ydCksU3Q/c3Q/VytaPjBeRlsxXTwoWWUoRlswXS16KTxjZT9XOlopOlc8PUZbMV0mJkZbMV08PVo6b3Q+cnJeKHo8PUZbMF0mJkZbMF08PVUpKXt2YXIgYnQ9SVQoRCwoLUIrUikvSSk7cmV0dXJuIFFOKGJ0LGspLFtGLER5KGJ0KV19fX1mdW5jdGlvbiBjKHUsaCl7dmFyIGY9bj9lOnJyLWUscD0wO3JldHVybiB1PC1mP3B8PTE6dT5mJiYocHw9MiksaDwtZj9wfD00Omg+ZiYmKHB8PTgpLHB9cmV0dXJuIGdEKGEscyxvLG4/WzAsLWVdOlstcnIsZS1ycl0pfXZhciBISj1NKCgpPT57QTIoKTt2SigpO2xyKCk7YkooKTtGSigpfSk7ZnVuY3Rpb24gTDl0KGUsdCxyLG4saSxvKXt2YXIgYT1lWzBdLHM9ZVsxXSxsPXRbMF0sYz10WzFdLHU9MCxoPTEsZj1sLWEscD1jLXMsZDtpZihkPXItYSwhKCFmJiZkPjApKXtpZihkLz1mLGY8MCl7aWYoZDx1KXJldHVybjtkPGgmJihoPWQpfWVsc2UgaWYoZj4wKXtpZihkPmgpcmV0dXJuO2Q+dSYmKHU9ZCl9aWYoZD1pLWEsISghZiYmZDwwKSl7aWYoZC89ZixmPDApe2lmKGQ+aClyZXR1cm47ZD51JiYodT1kKX1lbHNlIGlmKGY+MCl7aWYoZDx1KXJldHVybjtkPGgmJihoPWQpfWlmKGQ9bi1zLCEoIXAmJmQ+MCkpe2lmKGQvPXAscDwwKXtpZihkPHUpcmV0dXJuO2Q8aCYmKGg9ZCl9ZWxzZSBpZihwPjApe2lmKGQ+aClyZXR1cm47ZD51JiYodT1kKX1pZihkPW8tcywhKCFwJiZkPDApKXtpZihkLz1wLHA8MCl7aWYoZD5oKXJldHVybjtkPnUmJih1PWQpfWVsc2UgaWYocD4wKXtpZihkPHUpcmV0dXJuO2Q8aCYmKGg9ZCl9cmV0dXJuIHU+MCYmKGVbMF09YSt1KmYsZVsxXT1zK3UqcCksaDwxJiYodFswXT1hK2gqZix0WzFdPXMraCpwKSwhMH19fX19dmFyIGs5dD1NKCgpPT57fSk7ZnVuY3Rpb24gdGQoZSx0LHIsbil7ZnVuY3Rpb24gaShjLHUpe3JldHVybiBlPD1jJiZjPD1yJiZ0PD11JiZ1PD1ufWZ1bmN0aW9uIG8oYyx1LGgsZil7dmFyIHA9MCxkPTA7aWYoYz09bnVsbHx8KHA9YShjLGgpKSE9PShkPWEodSxoKSl8fGwoYyx1KTwwXmg+MClkbyBmLnBvaW50KHA9PT0wfHxwPT09Mz9lOnIscD4xP246dCk7d2hpbGUoKHA9KHAraCs0KSU0KSE9PWQpO2Vsc2UgZi5wb2ludCh1WzBdLHVbMV0pfWZ1bmN0aW9uIGEoYyx1KXtyZXR1cm4gWWUoY1swXS1lKTxjZT91PjA/MDozOlllKGNbMF0tcik8Y2U/dT4wPzI6MTpZZShjWzFdLXQpPGNlP3U+MD8xOjA6dT4wPzM6Mn1mdW5jdGlvbiBzKGMsdSl7cmV0dXJuIGwoYy54LHUueCl9ZnVuY3Rpb24gbChjLHUpe3ZhciBoPWEoYywxKSxmPWEodSwxKTtyZXR1cm4gaCE9PWY/aC1mOmg9PT0wP3VbMV0tY1sxXTpoPT09MT9jWzBdLXVbMF06aD09PTI/Y1sxXS11WzFdOnVbMF0tY1swXX1yZXR1cm4gZnVuY3Rpb24oYyl7dmFyIHU9YyxoPWNEKCksZixwLGQsZyxfLHkseCxiLFMsQyxQLGs9e3BvaW50Ok8sbGluZVN0YXJ0OkwsbGluZUVuZDpSLHBvbHlnb25TdGFydDpCLHBvbHlnb25FbmQ6SX07ZnVuY3Rpb24gTyh6LFUpe2koeixVKSYmdS5wb2ludCh6LFUpfWZ1bmN0aW9uIEQoKXtmb3IodmFyIHo9MCxVPTAsVz1wLmxlbmd0aDtVPFc7KytVKWZvcih2YXIgWj1wW1VdLHJ0PTEsb3Q9Wi5sZW5ndGgsc3Q9WlswXSxTdCxidCxNdD1zdFswXSxsdD1zdFsxXTtydDxvdDsrK3J0KVN0PU10LGJ0PWx0LHN0PVpbcnRdLE10PXN0WzBdLGx0PXN0WzFdLGJ0PD1uP2x0Pm4mJihNdC1TdCkqKG4tYnQpPihsdC1idCkqKGUtU3QpJiYrK3o6bHQ8PW4mJihNdC1TdCkqKG4tYnQpPChsdC1idCkqKGUtU3QpJiYtLXo7cmV0dXJuIHp9ZnVuY3Rpb24gQigpe3U9aCxmPVtdLHA9W10sUD0hMH1mdW5jdGlvbiBJKCl7dmFyIHo9RCgpLFU9UCYmeixXPShmPU9UKGYpKS5sZW5ndGg7KFV8fFcpJiYoYy5wb2x5Z29uU3RhcnQoKSxVJiYoYy5saW5lU3RhcnQoKSxvKG51bGwsbnVsbCwxLGMpLGMubGluZUVuZCgpKSxXJiZoRChmLHMseixvLGMpLGMucG9seWdvbkVuZCgpKSx1PWMsZj1wPWQ9bnVsbH1mdW5jdGlvbiBMKCl7ay5wb2ludD1GLHAmJnAucHVzaChkPVtdKSxDPSEwLFM9ITEseD1iPU5hTn1mdW5jdGlvbiBSKCl7ZiYmKEYoZyxfKSx5JiZTJiZoLnJlam9pbigpLGYucHVzaChoLnJlc3VsdCgpKSksay5wb2ludD1PLFMmJnUubGluZUVuZCgpfWZ1bmN0aW9uIEYoeixVKXt2YXIgVz1pKHosVSk7aWYocCYmZC5wdXNoKFt6LFVdKSxDKWc9eixfPVUseT1XLEM9ITEsVyYmKHUubGluZVN0YXJ0KCksdS5wb2ludCh6LFUpKTtlbHNlIGlmKFcmJlMpdS5wb2ludCh6LFUpO2Vsc2V7dmFyIFo9W3g9TWF0aC5tYXgoeUQsTWF0aC5taW4oRlQseCkpLGI9TWF0aC5tYXgoeUQsTWF0aC5taW4oRlQsYikpXSxydD1bej1NYXRoLm1heCh5RCxNYXRoLm1pbihGVCx6KSksVT1NYXRoLm1heCh5RCxNYXRoLm1pbihGVCxVKSldO0w5dChaLHJ0LGUsdCxyLG4pPyhTfHwodS5saW5lU3RhcnQoKSx1LnBvaW50KFpbMF0sWlsxXSkpLHUucG9pbnQocnRbMF0scnRbMV0pLFd8fHUubGluZUVuZCgpLFA9ITEpOlcmJih1LmxpbmVTdGFydCgpLHUucG9pbnQoeixVKSxQPSExKX14PXosYj1VLFM9V31yZXR1cm4ga319dmFyIEZULHlELEJUPU0oKCk9PntscigpO3hKKCk7azl0KCk7d0ooKTttRCgpO0ZUPTFlOSx5RD0tRlR9KTtmdW5jdGlvbiBSOXQoKXt2YXIgZT0wLHQ9MCxyPTk2MCxuPTUwMCxpLG8sYTtyZXR1cm4gYT17c3RyZWFtOmZ1bmN0aW9uKHMpe3JldHVybiBpJiZvPT09cz9pOmk9dGQoZSx0LHIsbikobz1zKX0sZXh0ZW50OmZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPStzWzBdWzBdLHQ9K3NbMF1bMV0scj0rc1sxXVswXSxuPStzWzFdWzFdLGk9bz1udWxsLGEpOltbZSx0XSxbcixuXV19fX12YXIgTjl0PU0oKCk9PntCVCgpfSk7ZnVuY3Rpb24gbFBlKCl7azIucG9pbnQ9dVBlLGsyLmxpbmVFbmQ9Y1BlfWZ1bmN0aW9uIGNQZSgpe2syLnBvaW50PWsyLmxpbmVFbmQ9cXJ9ZnVuY3Rpb24gdVBlKGUsdCl7ZSo9d2UsdCo9d2UsVUo9ZSx2RD1KdCh0KSx4RD1hZSh0KSxrMi5wb2ludD1oUGV9ZnVuY3Rpb24gaFBlKGUsdCl7ZSo9d2UsdCo9d2U7dmFyIHI9SnQodCksbj1hZSh0KSxpPVllKGUtVUopLG89YWUoaSksYT1KdChpKSxzPW4qYSxsPXhEKnItdkQqbipvLGM9dkQqcit4RCpuKm87VkouYWRkKFNuKFJyKHMqcytsKmwpLGMpKSxVSj1lLHZEPXIseEQ9bn1mdW5jdGlvbiBiRChlKXtyZXR1cm4gVkoucmVzZXQoKSxNbyhlLGsyKSwrVkp9dmFyIFZKLFVKLHZELHhELGsyLHFKPU0oKCk9PntSeSgpO2xyKCk7JHAoKTtnZygpO1ZKPUFzKCksazI9e3NwaGVyZTpxcixwb2ludDpxcixsaW5lU3RhcnQ6bFBlLGxpbmVFbmQ6cXIscG9seWdvblN0YXJ0OnFyLHBvbHlnb25FbmQ6cXJ9fSk7ZnVuY3Rpb24gSHkoZSx0KXtyZXR1cm4gR0pbMF09ZSxHSlsxXT10LGJEKGZQZSl9dmFyIEdKLGZQZSxXSj1NKCgpPT57cUooKTtHSj1bbnVsbCxudWxsXSxmUGU9e3R5cGU6IkxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOkdKfX0pO2Z1bmN0aW9uIHdEKGUsdCl7cmV0dXJuIGUmJk85dC5oYXNPd25Qcm9wZXJ0eShlLnR5cGUpP085dFtlLnR5cGVdKGUsdCk6ITF9ZnVuY3Rpb24gejl0KGUsdCl7cmV0dXJuIEh5KGUsdCk9PT0wfWZ1bmN0aW9uIEY5dChlLHQpe3ZhciByPUh5KGVbMF0sZVsxXSksbj1IeShlWzBdLHQpLGk9SHkodCxlWzFdKTtyZXR1cm4gbitpPD1yK2NlfWZ1bmN0aW9uIEI5dChlLHQpe3JldHVybiEhZkQoZS5tYXAocFBlKSxIOXQodCkpfWZ1bmN0aW9uIHBQZShlKXtyZXR1cm4gZT1lLm1hcChIOXQpLGUucG9wKCksZX1mdW5jdGlvbiBIOXQoZSl7cmV0dXJuW2VbMF0qd2UsZVsxXSp3ZV19ZnVuY3Rpb24gVjl0KGUsdCl7cmV0dXJuKGUmJkQ5dC5oYXNPd25Qcm9wZXJ0eShlLnR5cGUpP0Q5dFtlLnR5cGVdOndEKShlLHQpfXZhciBEOXQsTzl0LFU5dD1NKCgpPT57TUooKTtXSigpO2xyKCk7RDl0PXtGZWF0dXJlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHdEKGUuZ2VvbWV0cnksdCl9LEZlYXR1cmVDb2xsZWN0aW9uOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPWUuZmVhdHVyZXMsbj0tMSxpPXIubGVuZ3RoOysrbjxpOylpZih3RChyW25dLmdlb21ldHJ5LHQpKXJldHVybiEwO3JldHVybiExfX0sTzl0PXtTcGhlcmU6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sUG9pbnQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gejl0KGUuY29vcmRpbmF0ZXMsdCl9LE11bHRpUG9pbnQ6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9ZS5jb29yZGluYXRlcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KWlmKHo5dChyW25dLHQpKXJldHVybiEwO3JldHVybiExfSxMaW5lU3RyaW5nOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIEY5dChlLmNvb3JkaW5hdGVzLHQpfSxNdWx0aUxpbmVTdHJpbmc6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9ZS5jb29yZGluYXRlcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KWlmKEY5dChyW25dLHQpKXJldHVybiEwO3JldHVybiExfSxQb2x5Z29uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIEI5dChlLmNvb3JkaW5hdGVzLHQpfSxNdWx0aVBvbHlnb246ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9ZS5jb29yZGluYXRlcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KWlmKEI5dChyW25dLHQpKXJldHVybiEwO3JldHVybiExfSxHZW9tZXRyeUNvbGxlY3Rpb246ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9ZS5nZW9tZXRyaWVzLG49LTEsaT1yLmxlbmd0aDsrK248aTspaWYod0QocltuXSx0KSlyZXR1cm4hMDtyZXR1cm4hMX19fSk7ZnVuY3Rpb24gcTl0KGUsdCxyKXt2YXIgbj1RcChlLHQtY2UscikuY29uY2F0KHQpO3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gbi5tYXAoZnVuY3Rpb24obyl7cmV0dXJuW2ksb119KX19ZnVuY3Rpb24gRzl0KGUsdCxyKXt2YXIgbj1RcChlLHQtY2UscikuY29uY2F0KHQpO3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gbi5tYXAoZnVuY3Rpb24obyl7cmV0dXJuW28saV19KX19ZnVuY3Rpb24gU0QoKXt2YXIgZSx0LHIsbixpLG8sYSxzLGw9MTAsYz1sLHU9OTAsaD0zNjAsZixwLGQsZyxfPTIuNTtmdW5jdGlvbiB5KCl7cmV0dXJue3R5cGU6Ik11bHRpTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6eCgpfX1mdW5jdGlvbiB4KCl7cmV0dXJuIFFwKENUKG4vdSkqdSxyLHUpLm1hcChkKS5jb25jYXQoUXAoQ1Qocy9oKSpoLGEsaCkubWFwKGcpKS5jb25jYXQoUXAoQ1QodC9sKSpsLGUsbCkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBZZShiJXUpPmNlfSkubWFwKGYpKS5jb25jYXQoUXAoQ1Qoby9jKSpjLGksYykuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBZZShiJWgpPmNlfSkubWFwKHApKX1yZXR1cm4geS5saW5lcz1mdW5jdGlvbigpe3JldHVybiB4KCkubWFwKGZ1bmN0aW9uKGIpe3JldHVybnt0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczpifX0pfSx5Lm91dGxpbmU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6W2QobikuY29uY2F0KGcoYSkuc2xpY2UoMSksZChyKS5yZXZlcnNlKCkuc2xpY2UoMSksZyhzKS5yZXZlcnNlKCkuc2xpY2UoMSkpXX19LHkuZXh0ZW50PWZ1bmN0aW9uKGIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3kuZXh0ZW50TWFqb3IoYikuZXh0ZW50TWlub3IoYik6eS5leHRlbnRNaW5vcigpfSx5LmV4dGVudE1ham9yPWZ1bmN0aW9uKGIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPStiWzBdWzBdLHI9K2JbMV1bMF0scz0rYlswXVsxXSxhPStiWzFdWzFdLG4+ciYmKGI9bixuPXIscj1iKSxzPmEmJihiPXMscz1hLGE9YikseS5wcmVjaXNpb24oXykpOltbbixzXSxbcixhXV19LHkuZXh0ZW50TWlub3I9ZnVuY3Rpb24oYil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K2JbMF1bMF0sZT0rYlsxXVswXSxvPStiWzBdWzFdLGk9K2JbMV1bMV0sdD5lJiYoYj10LHQ9ZSxlPWIpLG8+aSYmKGI9byxvPWksaT1iKSx5LnByZWNpc2lvbihfKSk6W1t0LG9dLFtlLGldXX0seS5zdGVwPWZ1bmN0aW9uKGIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3kuc3RlcE1ham9yKGIpLnN0ZXBNaW5vcihiKTp5LnN0ZXBNaW5vcigpfSx5LnN0ZXBNYWpvcj1mdW5jdGlvbihiKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0rYlswXSxoPStiWzFdLHkpOlt1LGhdfSx5LnN0ZXBNaW5vcj1mdW5jdGlvbihiKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD0rYlswXSxjPStiWzFdLHkpOltsLGNdfSx5LnByZWNpc2lvbj1mdW5jdGlvbihiKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oXz0rYixmPXE5dChvLGksOTApLHA9Rzl0KHQsZSxfKSxkPXE5dChzLGEsOTApLGc9Rzl0KG4scixfKSx5KTpffSx5LmV4dGVudE1ham9yKFtbLTE4MCwtOTArY2VdLFsxODAsOTAtY2VdXSkuZXh0ZW50TWlub3IoW1stMTgwLC04MC1jZV0sWzE4MCw4MCtjZV1dKX1mdW5jdGlvbiBXOXQoKXtyZXR1cm4gU0QoKSgpfXZhciBZOXQ9TSgoKT0+e21EKCk7bHIoKX0pO2Z1bmN0aW9uIGo5dChlLHQpe3ZhciByPWVbMF0qd2Usbj1lWzFdKndlLGk9dFswXSp3ZSxvPXRbMV0qd2UsYT1hZShuKSxzPUp0KG4pLGw9YWUobyksYz1KdChvKSx1PWEqYWUociksaD1hKkp0KHIpLGY9bCphZShpKSxwPWwqSnQoaSksZD0yKkpuKFJyKG9KKG8tbikrYSpsKm9KKGktcikpKSxnPUp0KGQpLF89ZD9mdW5jdGlvbih5KXt2YXIgeD1KdCh5Kj1kKS9nLGI9SnQoZC15KS9nLFM9Yip1K3gqZixDPWIqaCt4KnAsUD1iKnMreCpjO3JldHVybltTbihDLFMpKlVyLFNuKFAsUnIoUypTK0MqQykpKlVyXX06ZnVuY3Rpb24oKXtyZXR1cm5bcipVcixuKlVyXX07cmV0dXJuIF8uZGlzdGFuY2U9ZCxffXZhciBYOXQ9TSgoKT0+e2xyKCl9KTtmdW5jdGlvbiBvZihlKXtyZXR1cm4gZX12YXIgTUQ9TSgoKT0+e30pO2Z1bmN0aW9uIGRQZSgpe3ZnLnBvaW50PW1QZX1mdW5jdGlvbiBtUGUoZSx0KXt2Zy5wb2ludD1aOXQsJDl0PVhKPWUsSzl0PSRKPXR9ZnVuY3Rpb24gWjl0KGUsdCl7akouYWRkKCRKKmUtWEoqdCksWEo9ZSwkSj10fWZ1bmN0aW9uIGdQZSgpe1o5dCgkOXQsSzl0KX12YXIgWUosakosJDl0LEs5dCxYSiwkSix2ZyxLSixKOXQ9TSgoKT0+e1J5KCk7bHIoKTskcCgpO1lKPUFzKCksako9QXMoKSx2Zz17cG9pbnQ6cXIsbGluZVN0YXJ0OnFyLGxpbmVFbmQ6cXIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dmcubGluZVN0YXJ0PWRQZSx2Zy5saW5lRW5kPWdQZX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3ZnLmxpbmVTdGFydD12Zy5saW5lRW5kPXZnLnBvaW50PXFyLFlKLmFkZChZZShqSikpLGpKLnJlc2V0KCl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciBlPVlKLzI7cmV0dXJuIFlKLnJlc2V0KCksZX19O0tKPXZnfSk7ZnVuY3Rpb24geVBlKGUsdCl7ZTxSMiYmKFIyPWUpLGU+SFQmJihIVD1lKSx0PEVEJiYoRUQ9dCksdD5URCYmKFREPXQpfXZhciBSMixFRCxIVCxURCxfUGUsTjIsWko9TSgoKT0+eyRwKCk7UjI9MS8wLEVEPVIyLEhUPS1SMixURD1IVCxfUGU9e3BvaW50OnlQZSxsaW5lU3RhcnQ6cXIsbGluZUVuZDpxcixwb2x5Z29uU3RhcnQ6cXIscG9seWdvbkVuZDpxcixyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgZT1bW1IyLEVEXSxbSFQsVERdXTtyZXR1cm4gSFQ9VEQ9LShFRD1SMj0xLzApLGV9fTtOMj1fUGV9KTtmdW5jdGlvbiBWeShlLHQpe0pKKz1lLFFKKz10LCsrVlR9ZnVuY3Rpb24gUTl0KCl7Q3UucG9pbnQ9dlBlfWZ1bmN0aW9uIHZQZShlLHQpe0N1LnBvaW50PXhQZSxWeShhZj1lLHNmPXQpfWZ1bmN0aW9uIHhQZShlLHQpe3ZhciByPWUtYWYsbj10LXNmLGk9UnIocipyK24qbik7Q0QrPWkqKGFmK2UpLzIsQUQrPWkqKHNmK3QpLzIsRDIrPWksVnkoYWY9ZSxzZj10KX1mdW5jdGlvbiB0THQoKXtDdS5wb2ludD1WeX1mdW5jdGlvbiBiUGUoKXtDdS5wb2ludD1TUGV9ZnVuY3Rpb24gd1BlKCl7bkx0KGVMdCxyTHQpfWZ1bmN0aW9uIFNQZShlLHQpe0N1LnBvaW50PW5MdCxWeShlTHQ9YWY9ZSxyTHQ9c2Y9dCl9ZnVuY3Rpb24gbkx0KGUsdCl7dmFyIHI9ZS1hZixuPXQtc2YsaT1ScihyKnIrbipuKTtDRCs9aSooYWYrZSkvMixBRCs9aSooc2YrdCkvMixEMis9aSxpPXNmKmUtYWYqdCx0USs9aSooYWYrZSksZVErPWkqKHNmK3QpLFVUKz1pKjMsVnkoYWY9ZSxzZj10KX12YXIgSkosUUosVlQsQ0QsQUQsRDIsdFEsZVEsVVQsZUx0LHJMdCxhZixzZixDdSxyUSxpTHQ9TSgoKT0+e2xyKCk7Sko9MCxRSj0wLFZUPTAsQ0Q9MCxBRD0wLEQyPTAsdFE9MCxlUT0wLFVUPTAsQ3U9e3BvaW50OlZ5LGxpbmVTdGFydDpROXQsbGluZUVuZDp0THQscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7Q3UubGluZVN0YXJ0PWJQZSxDdS5saW5lRW5kPXdQZX0scG9seWdvbkVuZDpmdW5jdGlvbigpe0N1LnBvaW50PVZ5LEN1LmxpbmVTdGFydD1ROXQsQ3UubGluZUVuZD10THR9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciBlPVVUP1t0US9VVCxlUS9VVF06RDI/W0NEL0QyLEFEL0QyXTpWVD9bSkovVlQsUUovVlRdOltOYU4sTmFOXTtyZXR1cm4gSko9UUo9VlQ9Q0Q9QUQ9RDI9dFE9ZVE9VVQ9MCxlfX07clE9Q3V9KTtmdW5jdGlvbiBQRChlKXt0aGlzLl9jb250ZXh0PWV9dmFyIG9MdD1NKCgpPT57bHIoKTskcCgpO1BELnByb3RvdHlwZT17X3JhZGl1czo0LjUscG9pbnRSYWRpdXM6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3JhZGl1cz1lLHRoaXN9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT09PTAmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fcG9pbnQ9TmFOfSxwb2ludDpmdW5jdGlvbihlLHQpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnt0aGlzLl9jb250ZXh0Lm1vdmVUbyhlLHQpLHRoaXMuX3BvaW50PTE7YnJlYWt9Y2FzZSAxOnt0aGlzLl9jb250ZXh0LmxpbmVUbyhlLHQpO2JyZWFrfWRlZmF1bHQ6e3RoaXMuX2NvbnRleHQubW92ZVRvKGUrdGhpcy5fcmFkaXVzLHQpLHRoaXMuX2NvbnRleHQuYXJjKGUsdCx0aGlzLl9yYWRpdXMsMCxCaSk7YnJlYWt9fX0scmVzdWx0OnFyfX0pO2Z1bmN0aW9uIE1QZShlLHQpe0lELnBvaW50PWxMdCxhTHQ9cVQ9ZSxzTHQ9R1Q9dH1mdW5jdGlvbiBsTHQoZSx0KXtxVC09ZSxHVC09dCxpUS5hZGQoUnIocVQqcVQrR1QqR1QpKSxxVD1lLEdUPXR9dmFyIGlRLG5RLGFMdCxzTHQscVQsR1QsSUQsb1EsY0x0PU0oKCk9PntSeSgpO2xyKCk7JHAoKTtpUT1BcygpLElEPXtwb2ludDpxcixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtJRC5wb2ludD1NUGV9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtuUSYmbEx0KGFMdCxzTHQpLElELnBvaW50PXFyfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtuUT0hMH0scG9seWdvbkVuZDpmdW5jdGlvbigpe25RPW51bGx9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciBlPStpUTtyZXR1cm4gaVEucmVzZXQoKSxlfX07b1E9SUR9KTtmdW5jdGlvbiBMRCgpe3RoaXMuX3N0cmluZz1bXX1mdW5jdGlvbiB1THQoZSl7cmV0dXJuIm0wLCIrZSsiYSIrZSsiLCIrZSsiIDAgMSwxIDAsIistMiplKyJhIitlKyIsIitlKyIgMCAxLDEgMCwiKzIqZSsieiJ9dmFyIGhMdD1NKCgpPT57TEQucHJvdG90eXBlPXtfcmFkaXVzOjQuNSxfY2lyY2xlOnVMdCg0LjUpLHBvaW50UmFkaXVzOmZ1bmN0aW9uKGUpe3JldHVybihlPStlKSE9PXRoaXMuX3JhZGl1cyYmKHRoaXMuX3JhZGl1cz1lLHRoaXMuX2NpcmNsZT1udWxsKSx0aGlzfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9PT0wJiZ0aGlzLl9zdHJpbmcucHVzaCgiWiIpLHRoaXMuX3BvaW50PU5hTn0scG9pbnQ6ZnVuY3Rpb24oZSx0KXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp7dGhpcy5fc3RyaW5nLnB1c2goIk0iLGUsIiwiLHQpLHRoaXMuX3BvaW50PTE7YnJlYWt9Y2FzZSAxOnt0aGlzLl9zdHJpbmcucHVzaCgiTCIsZSwiLCIsdCk7YnJlYWt9ZGVmYXVsdDp7dGhpcy5fY2lyY2xlPT1udWxsJiYodGhpcy5fY2lyY2xlPXVMdCh0aGlzLl9yYWRpdXMpKSx0aGlzLl9zdHJpbmcucHVzaCgiTSIsZSwiLCIsdCx0aGlzLl9jaXJjbGUpO2JyZWFrfX19LHJlc3VsdDpmdW5jdGlvbigpe2lmKHRoaXMuX3N0cmluZy5sZW5ndGgpe3ZhciBlPXRoaXMuX3N0cmluZy5qb2luKCIiKTtyZXR1cm4gdGhpcy5fc3RyaW5nPVtdLGV9ZWxzZSByZXR1cm4gbnVsbH19fSk7ZnVuY3Rpb24gZkx0KGUsdCl7dmFyIHI9NC41LG4saTtmdW5jdGlvbiBvKGEpe3JldHVybiBhJiYodHlwZW9mIHI9PSJmdW5jdGlvbiImJmkucG9pbnRSYWRpdXMoK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxNbyhhLG4oaSkpKSxpLnJlc3VsdCgpfXJldHVybiBvLmFyZWE9ZnVuY3Rpb24oYSl7cmV0dXJuIE1vKGEsbihLSikpLEtKLnJlc3VsdCgpfSxvLm1lYXN1cmU9ZnVuY3Rpb24oYSl7cmV0dXJuIE1vKGEsbihvUSkpLG9RLnJlc3VsdCgpfSxvLmJvdW5kcz1mdW5jdGlvbihhKXtyZXR1cm4gTW8oYSxuKE4yKSksTjIucmVzdWx0KCl9LG8uY2VudHJvaWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIE1vKGEsbihyUSkpLHJRLnJlc3VsdCgpfSxvLnByb2plY3Rpb249ZnVuY3Rpb24oYSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49YT09bnVsbD8oZT1udWxsLG9mKTooZT1hKS5zdHJlYW0sbyk6ZX0sby5jb250ZXh0PWZ1bmN0aW9uKGEpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPWE9PW51bGw/KHQ9bnVsbCxuZXcgTEQpOm5ldyBQRCh0PWEpLHR5cGVvZiByIT0iZnVuY3Rpb24iJiZpLnBvaW50UmFkaXVzKHIpLG8pOnR9LG8ucG9pbnRSYWRpdXM9ZnVuY3Rpb24oYSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dHlwZW9mIGE9PSJmdW5jdGlvbiI/YTooaS5wb2ludFJhZGl1cygrYSksK2EpLG8pOnJ9LG8ucHJvamVjdGlvbihlKS5jb250ZXh0KHQpfXZhciBwTHQ9TSgoKT0+e01EKCk7Z2coKTtKOXQoKTtaSigpO2lMdCgpO29MdCgpO2NMdCgpO2hMdCgpfSk7ZnVuY3Rpb24gZEx0KGUpe3JldHVybntzdHJlYW06eGcoZSl9fWZ1bmN0aW9uIHhnKGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgcj1uZXcgYVE7Zm9yKHZhciBuIGluIGUpcltuXT1lW25dO3JldHVybiByLnN0cmVhbT10LHJ9fWZ1bmN0aW9uIGFRKCl7fXZhciBXVD1NKCgpPT57YVEucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjphUSxwb2ludDpmdW5jdGlvbihlLHQpe3RoaXMuc3RyZWFtLnBvaW50KGUsdCl9LHNwaGVyZTpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnNwaGVyZSgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5wb2x5Z29uRW5kKCl9fX0pO2Z1bmN0aW9uIHNRKGUsdCxyKXt2YXIgbj1lLmNsaXBFeHRlbnQmJmUuY2xpcEV4dGVudCgpO3JldHVybiBlLnNjYWxlKDE1MCkudHJhbnNsYXRlKFswLDBdKSxuIT1udWxsJiZlLmNsaXBFeHRlbnQobnVsbCksTW8ocixlLnN0cmVhbShOMikpLHQoTjIucmVzdWx0KCkpLG4hPW51bGwmJmUuY2xpcEV4dGVudChuKSxlfWZ1bmN0aW9uIFV5KGUsdCxyKXtyZXR1cm4gc1EoZSxmdW5jdGlvbihuKXt2YXIgaT10WzFdWzBdLXRbMF1bMF0sbz10WzFdWzFdLXRbMF1bMV0sYT1NYXRoLm1pbihpLyhuWzFdWzBdLW5bMF1bMF0pLG8vKG5bMV1bMV0tblswXVsxXSkpLHM9K3RbMF1bMF0rKGktYSooblsxXVswXStuWzBdWzBdKSkvMixsPSt0WzBdWzFdKyhvLWEqKG5bMV1bMV0rblswXVsxXSkpLzI7ZS5zY2FsZSgxNTAqYSkudHJhbnNsYXRlKFtzLGxdKX0scil9ZnVuY3Rpb24gTzIoZSx0LHIpe3JldHVybiBVeShlLFtbMCwwXSx0XSxyKX1mdW5jdGlvbiB6MihlLHQscil7cmV0dXJuIHNRKGUsZnVuY3Rpb24obil7dmFyIGk9K3Qsbz1pLyhuWzFdWzBdLW5bMF1bMF0pLGE9KGktbyooblsxXVswXStuWzBdWzBdKSkvMixzPS1vKm5bMF1bMV07ZS5zY2FsZSgxNTAqbykudHJhbnNsYXRlKFthLHNdKX0scil9ZnVuY3Rpb24gRjIoZSx0LHIpe3JldHVybiBzUShlLGZ1bmN0aW9uKG4pe3ZhciBpPSt0LG89aS8oblsxXVsxXS1uWzBdWzFdKSxhPS1vKm5bMF1bMF0scz0oaS1vKihuWzFdWzFdK25bMF1bMV0pKS8yO2Uuc2NhbGUoMTUwKm8pLnRyYW5zbGF0ZShbYSxzXSl9LHIpfXZhciBrRD1NKCgpPT57Z2coKTtaSigpfSk7ZnVuY3Rpb24gbFEoZSx0KXtyZXR1cm4rdD9DUGUoZSx0KTpUUGUoZSl9ZnVuY3Rpb24gVFBlKGUpe3JldHVybiB4Zyh7cG9pbnQ6ZnVuY3Rpb24odCxyKXt0PWUodCxyKSx0aGlzLnN0cmVhbS5wb2ludCh0WzBdLHRbMV0pfX0pfWZ1bmN0aW9uIENQZShlLHQpe2Z1bmN0aW9uIHIobixpLG8sYSxzLGwsYyx1LGgsZixwLGQsZyxfKXt2YXIgeT1jLW4seD11LWksYj15KnkreCp4O2lmKGI+NCp0JiZnLS0pe3ZhciBTPWErZixDPXMrcCxQPWwrZCxrPVJyKFMqUytDKkMrUCpQKSxPPUpuKFAvPWspLEQ9WWUoWWUoUCktMSk8Y2V8fFllKG8taCk8Y2U/KG8raCkvMjpTbihDLFMpLEI9ZShELE8pLEk9QlswXSxMPUJbMV0sUj1JLW4sRj1MLWksej14KlIteSpGOyh6KnovYj50fHxZZSgoeSpSK3gqRikvYi0uNSk+LjN8fGEqZitzKnArbCpkPEVQZSkmJihyKG4saSxvLGEscyxsLEksTCxELFMvPWssQy89ayxQLGcsXyksXy5wb2ludChJLEwpLHIoSSxMLEQsUyxDLFAsYyx1LGgsZixwLGQsZyxfKSl9fXJldHVybiBmdW5jdGlvbihuKXt2YXIgaSxvLGEscyxsLGMsdSxoLGYscCxkLGcsXz17cG9pbnQ6eSxsaW5lU3RhcnQ6eCxsaW5lRW5kOlMscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7bi5wb2x5Z29uU3RhcnQoKSxfLmxpbmVTdGFydD1DfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7bi5wb2x5Z29uRW5kKCksXy5saW5lU3RhcnQ9eH19O2Z1bmN0aW9uIHkoTyxEKXtPPWUoTyxEKSxuLnBvaW50KE9bMF0sT1sxXSl9ZnVuY3Rpb24geCgpe2g9TmFOLF8ucG9pbnQ9YixuLmxpbmVTdGFydCgpfWZ1bmN0aW9uIGIoTyxEKXt2YXIgQj12YyhbTyxEXSksST1lKE8sRCk7cihoLGYsdSxwLGQsZyxoPUlbMF0sZj1JWzFdLHU9TyxwPUJbMF0sZD1CWzFdLGc9QlsyXSxtTHQsbiksbi5wb2ludChoLGYpfWZ1bmN0aW9uIFMoKXtfLnBvaW50PXksbi5saW5lRW5kKCl9ZnVuY3Rpb24gQygpe3goKSxfLnBvaW50PVAsXy5saW5lRW5kPWt9ZnVuY3Rpb24gUChPLEQpe2IoaT1PLEQpLG89aCxhPWYscz1wLGw9ZCxjPWcsXy5wb2ludD1ifWZ1bmN0aW9uIGsoKXtyKGgsZix1LHAsZCxnLG8sYSxpLHMsbCxjLG1MdCxuKSxfLmxpbmVFbmQ9UyxTKCl9cmV0dXJuIF99fXZhciBtTHQsRVBlLGdMdD1NKCgpPT57QTIoKTtscigpO1dUKCk7bUx0PTE2LEVQZT1hZSgzMCp3ZSl9KTtmdW5jdGlvbiBQUGUoZSl7cmV0dXJuIHhnKHtwb2ludDpmdW5jdGlvbih0LHIpe3ZhciBuPWUodCxyKTtyZXR1cm4gdGhpcy5zdHJlYW0ucG9pbnQoblswXSxuWzFdKX19KX1mdW5jdGlvbiBlbyhlKXtyZXR1cm4gWVQoZnVuY3Rpb24oKXtyZXR1cm4gZX0pKCl9ZnVuY3Rpb24gWVQoZSl7dmFyIHQscj0xNTAsbj00ODAsaT0yNTAsbyxhLHM9MCxsPTAsYz0wLHU9MCxoPTAsZixwLGQ9bnVsbCxnPXpULF89bnVsbCx5LHgsYixTPW9mLEM9LjUsUD1sUShJLEMpLGssTztmdW5jdGlvbiBEKEYpe3JldHVybiBGPXAoRlswXSp3ZSxGWzFdKndlKSxbRlswXSpyK28sYS1GWzFdKnJdfWZ1bmN0aW9uIEIoRil7cmV0dXJuIEY9cC5pbnZlcnQoKEZbMF0tbykvciwoYS1GWzFdKS9yKSxGJiZbRlswXSpVcixGWzFdKlVyXX1mdW5jdGlvbiBJKEYseil7cmV0dXJuIEY9dChGLHopLFtGWzBdKnIrbyxhLUZbMV0qcl19RC5zdHJlYW09ZnVuY3Rpb24oRil7cmV0dXJuIGsmJk89PT1GP2s6az1BUGUoUFBlKGYpKGcoUChTKE89RikpKSkpfSxELnByZWNsaXA9ZnVuY3Rpb24oRil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGc9RixkPXZvaWQgMCxSKCkpOmd9LEQucG9zdGNsaXA9ZnVuY3Rpb24oRil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KFM9RixfPXk9eD1iPW51bGwsUigpKTpTfSxELmNsaXBBbmdsZT1mdW5jdGlvbihGKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz0rRj9fRChkPUYqd2UpOihkPW51bGwselQpLFIoKSk6ZCpVcn0sRC5jbGlwRXh0ZW50PWZ1bmN0aW9uKEYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhTPUY9PW51bGw/KF89eT14PWI9bnVsbCxvZik6dGQoXz0rRlswXVswXSx5PStGWzBdWzFdLHg9K0ZbMV1bMF0sYj0rRlsxXVsxXSksUigpKTpfPT1udWxsP251bGw6W1tfLHldLFt4LGJdXX0sRC5zY2FsZT1mdW5jdGlvbihGKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rRixMKCkpOnJ9LEQudHJhbnNsYXRlPWZ1bmN0aW9uKEYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPStGWzBdLGk9K0ZbMV0sTCgpKTpbbixpXX0sRC5jZW50ZXI9ZnVuY3Rpb24oRil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9RlswXSUzNjAqd2UsbD1GWzFdJTM2MCp3ZSxMKCkpOltzKlVyLGwqVXJdfSxELnJvdGF0ZT1mdW5jdGlvbihGKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1GWzBdJTM2MCp3ZSx1PUZbMV0lMzYwKndlLGg9Ri5sZW5ndGg+Mj9GWzJdJTM2MCp3ZTowLEwoKSk6W2MqVXIsdSpVcixoKlVyXX0sRC5wcmVjaXNpb249ZnVuY3Rpb24oRil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KFA9bFEoSSxDPUYqRiksUigpKTpScihDKX0sRC5maXRFeHRlbnQ9ZnVuY3Rpb24oRix6KXtyZXR1cm4gVXkoRCxGLHopfSxELmZpdFNpemU9ZnVuY3Rpb24oRix6KXtyZXR1cm4gTzIoRCxGLHopfSxELmZpdFdpZHRoPWZ1bmN0aW9uKEYseil7cmV0dXJuIHoyKEQsRix6KX0sRC5maXRIZWlnaHQ9ZnVuY3Rpb24oRix6KXtyZXR1cm4gRjIoRCxGLHopfTtmdW5jdGlvbiBMKCl7cD1zRChmPU5UKGMsdSxoKSx0KTt2YXIgRj10KHMsbCk7cmV0dXJuIG89bi1GWzBdKnIsYT1pK0ZbMV0qcixSKCl9ZnVuY3Rpb24gUigpe3JldHVybiBrPU89bnVsbCxEfXJldHVybiBmdW5jdGlvbigpe3JldHVybiB0PWUuYXBwbHkodGhpcyxhcmd1bWVudHMpLEQuaW52ZXJ0PXQuaW52ZXJ0JiZCLEwoKX19dmFyIEFQZSxBdT1NKCgpPT57QkooKTtISigpO0JUKCk7Z0ooKTtNRCgpO2xyKCk7RFQoKTtXVCgpO2tEKCk7Z0x0KCk7QVBlPXhnKHtwb2ludDpmdW5jdGlvbihlLHQpe3RoaXMuc3RyZWFtLnBvaW50KGUqd2UsdCp3ZSl9fSl9KTtmdW5jdGlvbiBCMihlKXt2YXIgdD0wLHI9cnIvMyxuPVlUKGUpLGk9bih0LHIpO3JldHVybiBpLnBhcmFsbGVscz1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uKHQ9b1swXSp3ZSxyPW9bMV0qd2UpOlt0KlVyLHIqVXJdfSxpfXZhciBSRD1NKCgpPT57bHIoKTtBdSgpfSk7ZnVuY3Rpb24gX0x0KGUpe3ZhciB0PWFlKGUpO2Z1bmN0aW9uIHIobixpKXtyZXR1cm5bbip0LEp0KGkpL3RdfXJldHVybiByLmludmVydD1mdW5jdGlvbihuLGkpe3JldHVybltuL3QsSm4oaSp0KV19LHJ9dmFyIHlMdD1NKCgpPT57bHIoKX0pO2Z1bmN0aW9uIGNRKGUsdCl7dmFyIHI9SnQoZSksbj0ocitKdCh0KSkvMjtpZihZZShuKTxjZSlyZXR1cm4gX0x0KGUpO3ZhciBpPTErciooMipuLXIpLG89UnIoaSkvbjtmdW5jdGlvbiBhKHMsbCl7dmFyIGM9UnIoaS0yKm4qSnQobCkpL247cmV0dXJuW2MqSnQocyo9biksby1jKmFlKHMpXX1yZXR1cm4gYS5pbnZlcnQ9ZnVuY3Rpb24ocyxsKXt2YXIgYz1vLWw7cmV0dXJuW1NuKHMsWWUoYykpL24qbWcoYyksSm4oKGktKHMqcytjKmMpKm4qbikvKDIqbikpXX0sYX1mdW5jdGlvbiBxeSgpe3JldHVybiBCMihjUSkuc2NhbGUoMTU1LjQyNCkuY2VudGVyKFswLDMzLjY0NDJdKX12YXIgTkQ9TSgoKT0+e2xyKCk7UkQoKTt5THQoKX0pO2Z1bmN0aW9uIEREKCl7cmV0dXJuIHF5KCkucGFyYWxsZWxzKFsyOS41LDQ1LjVdKS5zY2FsZSgxMDcwKS50cmFuc2xhdGUoWzQ4MCwyNTBdKS5yb3RhdGUoWzk2LDBdKS5jZW50ZXIoWy0uNiwzOC43XSl9dmFyIHVRPU0oKCk9PntORCgpfSk7ZnVuY3Rpb24gSVBlKGUpe3ZhciB0PWUubGVuZ3RoO3JldHVybntwb2ludDpmdW5jdGlvbihyLG4pe2Zvcih2YXIgaT0tMTsrK2k8dDspZVtpXS5wb2ludChyLG4pfSxzcGhlcmU6ZnVuY3Rpb24oKXtmb3IodmFyIHI9LTE7KytyPHQ7KWVbcl0uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe2Zvcih2YXIgcj0tMTsrK3I8dDspZVtyXS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe2Zvcih2YXIgcj0tMTsrK3I8dDspZVtyXS5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2Zvcih2YXIgcj0tMTsrK3I8dDspZVtyXS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2Zvcih2YXIgcj0tMTsrK3I8dDspZVtyXS5wb2x5Z29uRW5kKCl9fX1mdW5jdGlvbiB2THQoKXt2YXIgZSx0LHI9REQoKSxuLGk9cXkoKS5yb3RhdGUoWzE1NCwwXSkuY2VudGVyKFstMiw1OC41XSkucGFyYWxsZWxzKFs1NSw2NV0pLG8sYT1xeSgpLnJvdGF0ZShbMTU3LDBdKS5jZW50ZXIoWy0zLDE5LjldKS5wYXJhbGxlbHMoWzgsMThdKSxzLGwsYz17cG9pbnQ6ZnVuY3Rpb24oZixwKXtsPVtmLHBdfX07ZnVuY3Rpb24gdShmKXt2YXIgcD1mWzBdLGQ9ZlsxXTtyZXR1cm4gbD1udWxsLG4ucG9pbnQocCxkKSxsfHwoby5wb2ludChwLGQpLGwpfHwocy5wb2ludChwLGQpLGwpfXUuaW52ZXJ0PWZ1bmN0aW9uKGYpe3ZhciBwPXIuc2NhbGUoKSxkPXIudHJhbnNsYXRlKCksZz0oZlswXS1kWzBdKS9wLF89KGZbMV0tZFsxXSkvcDtyZXR1cm4oXz49LjEyJiZfPC4yMzQmJmc+PS0uNDI1JiZnPC0uMjE0P2k6Xz49LjE2NiYmXzwuMjM0JiZnPj0tLjIxNCYmZzwtLjExNT9hOnIpLmludmVydChmKX0sdS5zdHJlYW09ZnVuY3Rpb24oZil7cmV0dXJuIGUmJnQ9PT1mP2U6ZT1JUGUoW3Iuc3RyZWFtKHQ9ZiksaS5zdHJlYW0oZiksYS5zdHJlYW0oZildKX0sdS5wcmVjaXNpb249ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHIucHJlY2lzaW9uKGYpLGkucHJlY2lzaW9uKGYpLGEucHJlY2lzaW9uKGYpLGgoKSk6ci5wcmVjaXNpb24oKX0sdS5zY2FsZT1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oci5zY2FsZShmKSxpLnNjYWxlKGYqLjM1KSxhLnNjYWxlKGYpLHUudHJhbnNsYXRlKHIudHJhbnNsYXRlKCkpKTpyLnNjYWxlKCl9LHUudHJhbnNsYXRlPWZ1bmN0aW9uKGYpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiByLnRyYW5zbGF0ZSgpO3ZhciBwPXIuc2NhbGUoKSxkPStmWzBdLGc9K2ZbMV07cmV0dXJuIG49ci50cmFuc2xhdGUoZikuY2xpcEV4dGVudChbW2QtLjQ1NSpwLGctLjIzOCpwXSxbZCsuNDU1KnAsZysuMjM4KnBdXSkuc3RyZWFtKGMpLG89aS50cmFuc2xhdGUoW2QtLjMwNypwLGcrLjIwMSpwXSkuY2xpcEV4dGVudChbW2QtLjQyNSpwK2NlLGcrLjEyKnArY2VdLFtkLS4yMTQqcC1jZSxnKy4yMzQqcC1jZV1dKS5zdHJlYW0oYykscz1hLnRyYW5zbGF0ZShbZC0uMjA1KnAsZysuMjEyKnBdKS5jbGlwRXh0ZW50KFtbZC0uMjE0KnArY2UsZysuMTY2KnArY2VdLFtkLS4xMTUqcC1jZSxnKy4yMzQqcC1jZV1dKS5zdHJlYW0oYyksaCgpfSx1LmZpdEV4dGVudD1mdW5jdGlvbihmLHApe3JldHVybiBVeSh1LGYscCl9LHUuZml0U2l6ZT1mdW5jdGlvbihmLHApe3JldHVybiBPMih1LGYscCl9LHUuZml0V2lkdGg9ZnVuY3Rpb24oZixwKXtyZXR1cm4gejIodSxmLHApfSx1LmZpdEhlaWdodD1mdW5jdGlvbihmLHApe3JldHVybiBGMih1LGYscCl9O2Z1bmN0aW9uIGgoKXtyZXR1cm4gZT10PW51bGwsdX1yZXR1cm4gdS5zY2FsZSgxMDcwKX12YXIgeEx0PU0oKCk9PntscigpO3VRKCk7TkQoKTtrRCgpfSk7ZnVuY3Rpb24gT0QoZSl7cmV0dXJuIGZ1bmN0aW9uKHQscil7dmFyIG49YWUodCksaT1hZShyKSxvPWUobippKTtyZXR1cm5bbyppKkp0KHQpLG8qSnQocildfX1mdW5jdGlvbiBsZihlKXtyZXR1cm4gZnVuY3Rpb24odCxyKXt2YXIgbj1Scih0KnQrcipyKSxpPWUobiksbz1KdChpKSxhPWFlKGkpO3JldHVybltTbih0Km8sbiphKSxKbihuJiZyKm8vbildfX12YXIgSDI9TSgoKT0+e2xyKCl9KTtmdW5jdGlvbiBiTHQoKXtyZXR1cm4gZW8oekQpLnNjYWxlKDEyNC43NSkuY2xpcEFuZ2xlKDE4MC0uMDAxKX12YXIgekQsd0x0PU0oKCk9PntscigpO0gyKCk7QXUoKTt6RD1PRChmdW5jdGlvbihlKXtyZXR1cm4gUnIoMi8oMStlKSl9KTt6RC5pbnZlcnQ9bGYoZnVuY3Rpb24oZSl7cmV0dXJuIDIqSm4oZS8yKX0pfSk7ZnVuY3Rpb24gU0x0KCl7cmV0dXJuIGVvKEZEKS5zY2FsZSg3OS40MTg4KS5jbGlwQW5nbGUoMTgwLS4wMDEpfXZhciBGRCxNTHQ9TSgoKT0+e2xyKCk7SDIoKTtBdSgpO0ZEPU9EKGZ1bmN0aW9uKGUpe3JldHVybihlPUtOKGUpKSYmZS9KdChlKX0pO0ZELmludmVydD1sZihmdW5jdGlvbihlKXtyZXR1cm4gZX0pfSk7ZnVuY3Rpb24gR3koZSx0KXtyZXR1cm5bZSxOeShDMigoQm4rdCkvMikpXX1mdW5jdGlvbiBFTHQoKXtyZXR1cm4gaFEoR3kpLnNjYWxlKDk2MS9CaSl9ZnVuY3Rpb24gaFEoZSl7dmFyIHQ9ZW8oZSkscj10LmNlbnRlcixuPXQuc2NhbGUsaT10LnRyYW5zbGF0ZSxvPXQuY2xpcEV4dGVudCxhPW51bGwscyxsLGM7dC5zY2FsZT1mdW5jdGlvbihoKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obihoKSx1KCkpOm4oKX0sdC50cmFuc2xhdGU9ZnVuY3Rpb24oaCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGkoaCksdSgpKTppKCl9LHQuY2VudGVyPWZ1bmN0aW9uKGgpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyKGgpLHUoKSk6cigpfSx0LmNsaXBFeHRlbnQ9ZnVuY3Rpb24oaCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9PW51bGw/YT1zPWw9Yz1udWxsOihhPStoWzBdWzBdLHM9K2hbMF1bMV0sbD0raFsxXVswXSxjPStoWzFdWzFdKSx1KCkpOmE9PW51bGw/bnVsbDpbW2Esc10sW2wsY11dfTtmdW5jdGlvbiB1KCl7dmFyIGg9cnIqbigpLGY9dChsRCh0LnJvdGF0ZSgpKS5pbnZlcnQoWzAsMF0pKTtyZXR1cm4gbyhhPT1udWxsP1tbZlswXS1oLGZbMV0taF0sW2ZbMF0raCxmWzFdK2hdXTplPT09R3k/W1tNYXRoLm1heChmWzBdLWgsYSksc10sW01hdGgubWluKGZbMF0raCxsKSxjXV06W1thLE1hdGgubWF4KGZbMV0taCxzKV0sW2wsTWF0aC5taW4oZlsxXStoLGMpXV0pfXJldHVybiB1KCl9dmFyIEJEPU0oKCk9PntscigpO0RUKCk7QXUoKTtHeS5pbnZlcnQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm5bZSwyKnljKFhOKHQpKS1Cbl19fSk7ZnVuY3Rpb24gSEQoZSl7cmV0dXJuIEMyKChCbitlKS8yKX1mdW5jdGlvbiBmUShlLHQpe3ZhciByPWFlKGUpLG49ZT09PXQ/SnQoZSk6Tnkoci9hZSh0KSkvTnkoSEQodCkvSEQoZSkpLGk9ciokTihIRChlKSxuKS9uO2lmKCFuKXJldHVybiBHeTtmdW5jdGlvbiBvKGEscyl7aT4wP3M8LUJuK2NlJiYocz0tQm4rY2UpOnM+Qm4tY2UmJihzPUJuLWNlKTt2YXIgbD1pLyROKEhEKHMpLG4pO3JldHVybltsKkp0KG4qYSksaS1sKmFlKG4qYSldfXJldHVybiBvLmludmVydD1mdW5jdGlvbihhLHMpe3ZhciBsPWktcyxjPW1nKG4pKlJyKGEqYStsKmwpO3JldHVybltTbihhLFllKGwpKS9uKm1nKGwpLDIqeWMoJE4oaS9jLDEvbikpLUJuXX0sb31mdW5jdGlvbiBUTHQoKXtyZXR1cm4gQjIoZlEpLnNjYWxlKDEwOS41KS5wYXJhbGxlbHMoWzMwLDMwXSl9dmFyIENMdD1NKCgpPT57bHIoKTtSRCgpO0JEKCl9KTtmdW5jdGlvbiBXeShlLHQpe3JldHVybltlLHRdfWZ1bmN0aW9uIEFMdCgpe3JldHVybiBlbyhXeSkuc2NhbGUoMTUyLjYzKX12YXIgcFE9TSgoKT0+e0F1KCk7V3kuaW52ZXJ0PVd5fSk7ZnVuY3Rpb24gZFEoZSx0KXt2YXIgcj1hZShlKSxuPWU9PT10P0p0KGUpOihyLWFlKHQpKS8odC1lKSxpPXIvbitlO2lmKFllKG4pPGNlKXJldHVybiBXeTtmdW5jdGlvbiBvKGEscyl7dmFyIGw9aS1zLGM9biphO3JldHVybltsKkp0KGMpLGktbCphZShjKV19cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKGEscyl7dmFyIGw9aS1zO3JldHVybltTbihhLFllKGwpKS9uKm1nKGwpLGktbWcobikqUnIoYSphK2wqbCldfSxvfWZ1bmN0aW9uIFBMdCgpe3JldHVybiBCMihkUSkuc2NhbGUoMTMxLjE1NCkuY2VudGVyKFswLDEzLjkzODldKX12YXIgSUx0PU0oKCk9PntscigpO1JEKCk7cFEoKX0pO2Z1bmN0aW9uIFZEKGUsdCl7dmFyIHI9YWUodCksbj1hZShlKSpyO3JldHVybltyKkp0KGUpL24sSnQodCkvbl19ZnVuY3Rpb24gTEx0KCl7cmV0dXJuIGVvKFZEKS5zY2FsZSgxNDQuMDQ5KS5jbGlwQW5nbGUoNjApfXZhciBrTHQ9TSgoKT0+e2xyKCk7SDIoKTtBdSgpO1ZELmludmVydD1sZih5Yyl9KTtmdW5jdGlvbiBVRChlLHQscixuKXtyZXR1cm4gZT09PTEmJnQ9PT0xJiZyPT09MCYmbj09PTA/b2Y6eGcoe3BvaW50OmZ1bmN0aW9uKGksbyl7dGhpcy5zdHJlYW0ucG9pbnQoaSplK3Isbyp0K24pfX0pfWZ1bmN0aW9uIFJMdCgpe3ZhciBlPTEsdD0wLHI9MCxuPTEsaT0xLG89b2YsYT1udWxsLHMsbCxjLHU9b2YsaCxmLHA7ZnVuY3Rpb24gZCgpe3JldHVybiBoPWY9bnVsbCxwfXJldHVybiBwPXtzdHJlYW06ZnVuY3Rpb24oZyl7cmV0dXJuIGgmJmY9PT1nP2g6aD1vKHUoZj1nKSl9LHBvc3RjbGlwOmZ1bmN0aW9uKGcpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PWcsYT1zPWw9Yz1udWxsLGQoKSk6dX0sY2xpcEV4dGVudDpmdW5jdGlvbihnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1nPT1udWxsPyhhPXM9bD1jPW51bGwsb2YpOnRkKGE9K2dbMF1bMF0scz0rZ1swXVsxXSxsPStnWzFdWzBdLGM9K2dbMV1bMV0pLGQoKSk6YT09bnVsbD9udWxsOltbYSxzXSxbbCxjXV19LHNjYWxlOmZ1bmN0aW9uKGcpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVVEKChlPStnKSpuLGUqaSx0LHIpLGQoKSk6ZX0sdHJhbnNsYXRlOmZ1bmN0aW9uKGcpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVVEKGUqbixlKmksdD0rZ1swXSxyPStnWzFdKSxkKCkpOlt0LHJdfSxyZWZsZWN0WDpmdW5jdGlvbihnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1VRChlKihuPWc/LTE6MSksZSppLHQsciksZCgpKTpuPDB9LHJlZmxlY3RZOmZ1bmN0aW9uKGcpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVVEKGUqbixlKihpPWc/LTE6MSksdCxyKSxkKCkpOmk8MH0sZml0RXh0ZW50OmZ1bmN0aW9uKGcsXyl7cmV0dXJuIFV5KHAsZyxfKX0sZml0U2l6ZTpmdW5jdGlvbihnLF8pe3JldHVybiBPMihwLGcsXyl9LGZpdFdpZHRoOmZ1bmN0aW9uKGcsXyl7cmV0dXJuIHoyKHAsZyxfKX0sZml0SGVpZ2h0OmZ1bmN0aW9uKGcsXyl7cmV0dXJuIEYyKHAsZyxfKX19fXZhciBOTHQ9TSgoKT0+e0JUKCk7TUQoKTtXVCgpO2tEKCl9KTtmdW5jdGlvbiBxRChlLHQpe3ZhciByPXQqdCxuPXIqcjtyZXR1cm5bZSooLjg3MDctLjEzMTk3OSpyK24qKC0uMDEzNzkxK24qKC4wMDM5NzEqci0uMDAxNTI5Km4pKSksdCooMS4wMDcyMjYrciooLjAxNTA4NStuKigtLjA0NDQ3NSsuMDI4ODc0KnItLjAwNTkxNipuKSkpXX1mdW5jdGlvbiBETHQoKXtyZXR1cm4gZW8ocUQpLnNjYWxlKDE3NS4yOTUpfXZhciBPTHQ9TSgoKT0+e0F1KCk7bHIoKTtxRC5pbnZlcnQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj10LG49MjUsaTtkb3t2YXIgbz1yKnIsYT1vKm87ci09aT0ociooMS4wMDcyMjYrbyooLjAxNTA4NSthKigtLjA0NDQ3NSsuMDI4ODc0Km8tLjAwNTkxNiphKSkpLXQpLygxLjAwNzIyNitvKiguMDE1MDg1KjMrYSooLS4wNDQ0NzUqNysuMDI4ODc0Kjkqby0uMDA1OTE2KjExKmEpKSl9d2hpbGUoWWUoaSk+Y2UmJi0tbj4wKTtyZXR1cm5bZS8oLjg3MDcrKG89cipyKSooLS4xMzE5NzkrbyooLS4wMTM3OTErbypvKm8qKC4wMDM5NzEtLjAwMTUyOSpvKSkpKSxyXX19KTtmdW5jdGlvbiBHRChlLHQpe3JldHVyblthZSh0KSpKdChlKSxKdCh0KV19ZnVuY3Rpb24gekx0KCl7cmV0dXJuIGVvKEdEKS5zY2FsZSgyNDkuNSkuY2xpcEFuZ2xlKDkwK2NlKX12YXIgRkx0PU0oKCk9PntscigpO0gyKCk7QXUoKTtHRC5pbnZlcnQ9bGYoSm4pfSk7ZnVuY3Rpb24gV0QoZSx0KXt2YXIgcj1hZSh0KSxuPTErYWUoZSkqcjtyZXR1cm5bcipKdChlKS9uLEp0KHQpL25dfWZ1bmN0aW9uIEJMdCgpe3JldHVybiBlbyhXRCkuc2NhbGUoMjUwKS5jbGlwQW5nbGUoMTQyKX12YXIgSEx0PU0oKCk9PntscigpO0gyKCk7QXUoKTtXRC5pbnZlcnQ9bGYoZnVuY3Rpb24oZSl7cmV0dXJuIDIqeWMoZSl9KX0pO2Z1bmN0aW9uIFlEKGUsdCl7cmV0dXJuW055KEMyKChCbit0KS8yKSksLWVdfWZ1bmN0aW9uIFZMdCgpe3ZhciBlPWhRKFlEKSx0PWUuY2VudGVyLHI9ZS5yb3RhdGU7cmV0dXJuIGUuY2VudGVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3QoWy1uWzFdLG5bMF1dKToobj10KCksW25bMV0sLW5bMF1dKX0sZS5yb3RhdGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/cihbblswXSxuWzFdLG4ubGVuZ3RoPjI/blsyXSs5MDo5MF0pOihuPXIoKSxbblswXSxuWzFdLG5bMl0tOTBdKX0scihbMCwwLDkwXSkuc2NhbGUoMTU5LjE1NSl9dmFyIFVMdD1NKCgpPT57bHIoKTtCRCgpO1lELmludmVydD1mdW5jdGlvbihlLHQpe3JldHVyblstdCwyKnljKFhOKGUpKS1Cbl19fSk7dmFyIHFMdD1NKCgpPT57dUooKTtaSXQoKTtpOXQoKTt2SigpO0JKKCk7SEooKTtOOXQoKTtCVCgpO1U5dCgpO1dKKCk7WTl0KCk7WDl0KCk7cUooKTtwTHQoKTt1USgpO3hMdCgpO3dMdCgpO01MdCgpO0NMdCgpO05EKCk7SUx0KCk7cFEoKTtrTHQoKTtOTHQoKTtBdSgpO0JEKCk7T0x0KCk7Rkx0KCk7SEx0KCk7VUx0KCk7RFQoKTtnZygpO1dUKCl9KTtmdW5jdGlvbiBMUGUoZSx0KXtyZXR1cm4gZS5wYXJlbnQ9PT10LnBhcmVudD8xOjJ9ZnVuY3Rpb24ga1BlKGUpe3JldHVybiBlLnJlZHVjZShSUGUsMCkvZS5sZW5ndGh9ZnVuY3Rpb24gUlBlKGUsdCl7cmV0dXJuIGUrdC54fWZ1bmN0aW9uIE5QZShlKXtyZXR1cm4gMStlLnJlZHVjZShEUGUsMCl9ZnVuY3Rpb24gRFBlKGUsdCl7cmV0dXJuIE1hdGgubWF4KGUsdC55KX1mdW5jdGlvbiBPUGUoZSl7Zm9yKHZhciB0O3Q9ZS5jaGlsZHJlbjspZT10WzBdO3JldHVybiBlfWZ1bmN0aW9uIHpQZShlKXtmb3IodmFyIHQ7dD1lLmNoaWxkcmVuOyllPXRbdC5sZW5ndGgtMV07cmV0dXJuIGV9ZnVuY3Rpb24gR0x0KCl7dmFyIGU9TFBlLHQ9MSxyPTEsbj0hMTtmdW5jdGlvbiBpKG8pe3ZhciBhLHM9MDtvLmVhY2hBZnRlcihmdW5jdGlvbihmKXt2YXIgcD1mLmNoaWxkcmVuO3A/KGYueD1rUGUocCksZi55PU5QZShwKSk6KGYueD1hP3MrPWUoZixhKTowLGYueT0wLGE9Zil9KTt2YXIgbD1PUGUobyksYz16UGUobyksdT1sLngtZShsLGMpLzIsaD1jLngrZShjLGwpLzI7cmV0dXJuIG8uZWFjaEFmdGVyKG4/ZnVuY3Rpb24oZil7Zi54PShmLngtby54KSp0LGYueT0oby55LWYueSkqcn06ZnVuY3Rpb24oZil7Zi54PShmLngtdSkvKGgtdSkqdCxmLnk9KDEtKG8ueT9mLnkvby55OjEpKSpyfSl9cmV0dXJuIGkuc2VwYXJhdGlvbj1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1vLGkpOmV9LGkuc2l6ZT1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0hMSx0PStvWzBdLHI9K29bMV0saSk6bj9udWxsOlt0LHJdfSxpLm5vZGVTaXplPWZ1bmN0aW9uKG8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSEwLHQ9K29bMF0scj0rb1sxXSxpKTpuP1t0LHJdOm51bGx9LGl9dmFyIFdMdD1NKCgpPT57fSk7ZnVuY3Rpb24gRlBlKGUpe3ZhciB0PTAscj1lLmNoaWxkcmVuLG49ciYmci5sZW5ndGg7aWYoIW4pdD0xO2Vsc2UgZm9yKDstLW4+PTA7KXQrPXJbbl0udmFsdWU7ZS52YWx1ZT10fWZ1bmN0aW9uIFlMdCgpe3JldHVybiB0aGlzLmVhY2hBZnRlcihGUGUpfXZhciBqTHQ9TSgoKT0+e30pO2Z1bmN0aW9uIFhMdChlKXt2YXIgdD10aGlzLHIsbj1bdF0saSxvLGE7ZG8gZm9yKHI9bi5yZXZlcnNlKCksbj1bXTt0PXIucG9wKCk7KWlmKGUodCksaT10LmNoaWxkcmVuLGkpZm9yKG89MCxhPWkubGVuZ3RoO288YTsrK28pbi5wdXNoKGlbb10pO3doaWxlKG4ubGVuZ3RoKTtyZXR1cm4gdGhpc312YXIgJEx0PU0oKCk9Pnt9KTtmdW5jdGlvbiBLTHQoZSl7Zm9yKHZhciB0PXRoaXMscj1bdF0sbixpO3Q9ci5wb3AoKTspaWYoZSh0KSxuPXQuY2hpbGRyZW4sbilmb3IoaT1uLmxlbmd0aC0xO2k+PTA7LS1pKXIucHVzaChuW2ldKTtyZXR1cm4gdGhpc312YXIgWkx0PU0oKCk9Pnt9KTtmdW5jdGlvbiBKTHQoZSl7Zm9yKHZhciB0PXRoaXMscj1bdF0sbj1bXSxpLG8sYTt0PXIucG9wKCk7KWlmKG4ucHVzaCh0KSxpPXQuY2hpbGRyZW4saSlmb3Iobz0wLGE9aS5sZW5ndGg7bzxhOysrbylyLnB1c2goaVtvXSk7Zm9yKDt0PW4ucG9wKCk7KWUodCk7cmV0dXJuIHRoaXN9dmFyIFFMdD1NKCgpPT57fSk7ZnVuY3Rpb24gdGt0KGUpe3JldHVybiB0aGlzLmVhY2hBZnRlcihmdW5jdGlvbih0KXtmb3IodmFyIHI9K2UodC5kYXRhKXx8MCxuPXQuY2hpbGRyZW4saT1uJiZuLmxlbmd0aDstLWk+PTA7KXIrPW5baV0udmFsdWU7dC52YWx1ZT1yfSl9dmFyIGVrdD1NKCgpPT57fSk7ZnVuY3Rpb24gcmt0KGUpe3JldHVybiB0aGlzLmVhY2hCZWZvcmUoZnVuY3Rpb24odCl7dC5jaGlsZHJlbiYmdC5jaGlsZHJlbi5zb3J0KGUpfSl9dmFyIG5rdD1NKCgpPT57fSk7ZnVuY3Rpb24gaWt0KGUpe2Zvcih2YXIgdD10aGlzLHI9QlBlKHQsZSksbj1bdF07dCE9PXI7KXQ9dC5wYXJlbnQsbi5wdXNoKHQpO2Zvcih2YXIgaT1uLmxlbmd0aDtlIT09cjspbi5zcGxpY2UoaSwwLGUpLGU9ZS5wYXJlbnQ7cmV0dXJuIG59ZnVuY3Rpb24gQlBlKGUsdCl7aWYoZT09PXQpcmV0dXJuIGU7dmFyIHI9ZS5hbmNlc3RvcnMoKSxuPXQuYW5jZXN0b3JzKCksaT1udWxsO2ZvcihlPXIucG9wKCksdD1uLnBvcCgpO2U9PT10OylpPWUsZT1yLnBvcCgpLHQ9bi5wb3AoKTtyZXR1cm4gaX12YXIgb2t0PU0oKCk9Pnt9KTtmdW5jdGlvbiBha3QoKXtmb3IodmFyIGU9dGhpcyx0PVtlXTtlPWUucGFyZW50Oyl0LnB1c2goZSk7cmV0dXJuIHR9dmFyIHNrdD1NKCgpPT57fSk7ZnVuY3Rpb24gbGt0KCl7dmFyIGU9W107cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbih0KXtlLnB1c2godCl9KSxlfXZhciBja3Q9TSgoKT0+e30pO2Z1bmN0aW9uIHVrdCgpe3ZhciBlPVtdO3JldHVybiB0aGlzLmVhY2hCZWZvcmUoZnVuY3Rpb24odCl7dC5jaGlsZHJlbnx8ZS5wdXNoKHQpfSksZX12YXIgaGt0PU0oKCk9Pnt9KTtmdW5jdGlvbiBma3QoKXt2YXIgZT10aGlzLHQ9W107cmV0dXJuIGUuZWFjaChmdW5jdGlvbihyKXtyIT09ZSYmdC5wdXNoKHtzb3VyY2U6ci5wYXJlbnQsdGFyZ2V0OnJ9KX0pLHR9dmFyIHBrdD1NKCgpPT57fSk7ZnVuY3Rpb24galQoZSx0KXt2YXIgcj1uZXcgYmcoZSksbj0rZS52YWx1ZSYmKHIudmFsdWU9ZS52YWx1ZSksaSxvPVtyXSxhLHMsbCxjO2Zvcih0PT1udWxsJiYodD1WUGUpO2k9by5wb3AoKTspaWYobiYmKGkudmFsdWU9K2kuZGF0YS52YWx1ZSksKHM9dChpLmRhdGEpKSYmKGM9cy5sZW5ndGgpKWZvcihpLmNoaWxkcmVuPW5ldyBBcnJheShjKSxsPWMtMTtsPj0wOy0tbClvLnB1c2goYT1pLmNoaWxkcmVuW2xdPW5ldyBiZyhzW2xdKSksYS5wYXJlbnQ9aSxhLmRlcHRoPWkuZGVwdGgrMTtyZXR1cm4gci5lYWNoQmVmb3JlKG1RKX1mdW5jdGlvbiBIUGUoKXtyZXR1cm4galQodGhpcykuZWFjaEJlZm9yZShVUGUpfWZ1bmN0aW9uIFZQZShlKXtyZXR1cm4gZS5jaGlsZHJlbn1mdW5jdGlvbiBVUGUoZSl7ZS5kYXRhPWUuZGF0YS5kYXRhfWZ1bmN0aW9uIG1RKGUpe3ZhciB0PTA7ZG8gZS5oZWlnaHQ9dDt3aGlsZSgoZT1lLnBhcmVudCkmJmUuaGVpZ2h0PCsrdCl9ZnVuY3Rpb24gYmcoZSl7dGhpcy5kYXRhPWUsdGhpcy5kZXB0aD10aGlzLmhlaWdodD0wLHRoaXMucGFyZW50PW51bGx9dmFyIGpEPU0oKCk9PntqTHQoKTskTHQoKTtaTHQoKTtRTHQoKTtla3QoKTtua3QoKTtva3QoKTtza3QoKTtja3QoKTtoa3QoKTtwa3QoKTtiZy5wcm90b3R5cGU9alQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpiZyxjb3VudDpZTHQsZWFjaDpYTHQsZWFjaEFmdGVyOkpMdCxlYWNoQmVmb3JlOktMdCxzdW06dGt0LHNvcnQ6cmt0LHBhdGg6aWt0LGFuY2VzdG9yczpha3QsZGVzY2VuZGFudHM6bGt0LGxlYXZlczp1a3QsbGlua3M6Zmt0LGNvcHk6SFBlfX0pO2Z1bmN0aW9uIG1rdChlKXtmb3IodmFyIHQ9ZS5sZW5ndGgscixuO3Q7KW49TWF0aC5yYW5kb20oKSp0LS18MCxyPWVbdF0sZVt0XT1lW25dLGVbbl09cjtyZXR1cm4gZX12YXIgZGt0LGdrdD1NKCgpPT57ZGt0PUFycmF5LnByb3RvdHlwZS5zbGljZX0pO2Z1bmN0aW9uICREKGUpe2Zvcih2YXIgdD0wLHI9KGU9bWt0KGRrdC5jYWxsKGUpKSkubGVuZ3RoLG49W10saSxvO3Q8cjspaT1lW3RdLG8mJl9rdChvLGkpPysrdDoobz1HUGUobj1xUGUobixpKSksdD0wKTtyZXR1cm4gb31mdW5jdGlvbiBxUGUoZSx0KXt2YXIgcixuO2lmKGdRKHQsZSkpcmV0dXJuW3RdO2ZvcihyPTA7cjxlLmxlbmd0aDsrK3IpaWYoWEQodCxlW3JdKSYmZ1EoWFQoZVtyXSx0KSxlKSlyZXR1cm5bZVtyXSx0XTtmb3Iocj0wO3I8ZS5sZW5ndGgtMTsrK3IpZm9yKG49cisxO248ZS5sZW5ndGg7KytuKWlmKFhEKFhUKGVbcl0sZVtuXSksdCkmJlhEKFhUKGVbcl0sdCksZVtuXSkmJlhEKFhUKGVbbl0sdCksZVtyXSkmJmdRKHlrdChlW3JdLGVbbl0sdCksZSkpcmV0dXJuW2Vbcl0sZVtuXSx0XTt0aHJvdyBuZXcgRXJyb3J9ZnVuY3Rpb24gWEQoZSx0KXt2YXIgcj1lLnItdC5yLG49dC54LWUueCxpPXQueS1lLnk7cmV0dXJuIHI8MHx8cipyPG4qbitpKml9ZnVuY3Rpb24gX2t0KGUsdCl7dmFyIHI9ZS5yLXQucisxZS02LG49dC54LWUueCxpPXQueS1lLnk7cmV0dXJuIHI+MCYmcipyPm4qbitpKml9ZnVuY3Rpb24gZ1EoZSx0KXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoOysrcilpZighX2t0KGUsdFtyXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gR1BlKGUpe3N3aXRjaChlLmxlbmd0aCl7Y2FzZSAxOnJldHVybiBXUGUoZVswXSk7Y2FzZSAyOnJldHVybiBYVChlWzBdLGVbMV0pO2Nhc2UgMzpyZXR1cm4geWt0KGVbMF0sZVsxXSxlWzJdKX19ZnVuY3Rpb24gV1BlKGUpe3JldHVybnt4OmUueCx5OmUueSxyOmUucn19ZnVuY3Rpb24gWFQoZSx0KXt2YXIgcj1lLngsbj1lLnksaT1lLnIsbz10LngsYT10Lnkscz10LnIsbD1vLXIsYz1hLW4sdT1zLWksaD1NYXRoLnNxcnQobCpsK2MqYyk7cmV0dXJue3g6KHIrbytsL2gqdSkvMix5OihuK2ErYy9oKnUpLzIscjooaCtpK3MpLzJ9fWZ1bmN0aW9uIHlrdChlLHQscil7dmFyIG49ZS54LGk9ZS55LG89ZS5yLGE9dC54LHM9dC55LGw9dC5yLGM9ci54LHU9ci55LGg9ci5yLGY9bi1hLHA9bi1jLGQ9aS1zLGc9aS11LF89bC1vLHk9aC1vLHg9bipuK2kqaS1vKm8sYj14LWEqYS1zKnMrbCpsLFM9eC1jKmMtdSp1K2gqaCxDPXAqZC1mKmcsUD0oZCpTLWcqYikvKEMqMiktbixrPShnKl8tZCp5KS9DLE89KHAqYi1mKlMpLyhDKjIpLWksRD0oZip5LXAqXykvQyxCPWsqaytEKkQtMSxJPTIqKG8rUCprK08qRCksTD1QKlArTypPLW8qbyxSPS0oQj8oSStNYXRoLnNxcnQoSSpJLTQqQipMKSkvKDIqQik6TC9JKTtyZXR1cm57eDpuK1AraypSLHk6aStPK0QqUixyOlJ9fXZhciBfUT1NKCgpPT57Z2t0KCl9KTtmdW5jdGlvbiB2a3QoZSx0LHIpe3ZhciBuPWUueCxpPWUueSxvPXQucityLnIsYT1lLnIrci5yLHM9dC54LW4sbD10LnktaSxjPXMqcytsKmw7aWYoYyl7dmFyIHU9LjUrKChhKj1hKS0obyo9bykpLygyKmMpLGg9TWF0aC5zcXJ0KE1hdGgubWF4KDAsMipvKihhK2MpLShhLT1jKSphLW8qbykpLygyKmMpO3IueD1uK3UqcytoKmwsci55PWkrdSpsLWgqc31lbHNlIHIueD1uK2Esci55PWl9ZnVuY3Rpb24geGt0KGUsdCl7dmFyIHI9dC54LWUueCxuPXQueS1lLnksaT1lLnIrdC5yO3JldHVybiBpKmktMWUtNj5yKnIrbipufWZ1bmN0aW9uIGJrdChlKXt2YXIgdD1lLl8scj1lLm5leHQuXyxuPXQucityLnIsaT0odC54KnIucityLngqdC5yKS9uLG89KHQueSpyLnIrci55KnQucikvbjtyZXR1cm4gaSppK28qb31mdW5jdGlvbiBLRChlKXt0aGlzLl89ZSx0aGlzLm5leHQ9bnVsbCx0aGlzLnByZXZpb3VzPW51bGx9ZnVuY3Rpb24geVEoZSl7aWYoIShpPWUubGVuZ3RoKSlyZXR1cm4gMDt2YXIgdCxyLG4saSxvLGEscyxsLGMsdSxoO2lmKHQ9ZVswXSx0Lng9MCx0Lnk9MCwhKGk+MSkpcmV0dXJuIHQucjtpZihyPWVbMV0sdC54PS1yLnIsci54PXQucixyLnk9MCwhKGk+MikpcmV0dXJuIHQucityLnI7dmt0KHIsdCxuPWVbMl0pLHQ9bmV3IEtEKHQpLHI9bmV3IEtEKHIpLG49bmV3IEtEKG4pLHQubmV4dD1uLnByZXZpb3VzPXIsci5uZXh0PXQucHJldmlvdXM9bixuLm5leHQ9ci5wcmV2aW91cz10O3Q6Zm9yKHM9MztzPGk7KytzKXt2a3QodC5fLHIuXyxuPWVbc10pLG49bmV3IEtEKG4pLGw9ci5uZXh0LGM9dC5wcmV2aW91cyx1PXIuXy5yLGg9dC5fLnI7ZG8gaWYodTw9aCl7aWYoeGt0KGwuXyxuLl8pKXtyPWwsdC5uZXh0PXIsci5wcmV2aW91cz10LC0tcztjb250aW51ZSB0fXUrPWwuXy5yLGw9bC5uZXh0fWVsc2V7aWYoeGt0KGMuXyxuLl8pKXt0PWMsdC5uZXh0PXIsci5wcmV2aW91cz10LC0tcztjb250aW51ZSB0fWgrPWMuXy5yLGM9Yy5wcmV2aW91c313aGlsZShsIT09Yy5uZXh0KTtmb3Iobi5wcmV2aW91cz10LG4ubmV4dD1yLHQubmV4dD1yLnByZXZpb3VzPXI9bixvPWJrdCh0KTsobj1uLm5leHQpIT09cjspKGE9Ymt0KG4pKTxvJiYodD1uLG89YSk7cj10Lm5leHR9Zm9yKHQ9W3IuX10sbj1yOyhuPW4ubmV4dCkhPT1yOyl0LnB1c2gobi5fKTtmb3Iobj0kRCh0KSxzPTA7czxpOysrcyl0PWVbc10sdC54LT1uLngsdC55LT1uLnk7cmV0dXJuIG4ucn1mdW5jdGlvbiB3a3QoZSl7cmV0dXJuIHlRKGUpLGV9dmFyIHZRPU0oKCk9PntfUSgpfSk7ZnVuY3Rpb24gU2t0KGUpe3JldHVybiBlPT1udWxsP251bGw6VjIoZSl9ZnVuY3Rpb24gVjIoZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yO3JldHVybiBlfXZhciBaRD1NKCgpPT57fSk7ZnVuY3Rpb24gZWQoKXtyZXR1cm4gMH1mdW5jdGlvbiB3ZyhlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZX19dmFyIHhRPU0oKCk9Pnt9KTtmdW5jdGlvbiBZUGUoZSl7cmV0dXJuIE1hdGguc3FydChlLnZhbHVlKX1mdW5jdGlvbiBUa3QoKXt2YXIgZT1udWxsLHQ9MSxyPTEsbj1lZDtmdW5jdGlvbiBpKG8pe3JldHVybiBvLng9dC8yLG8ueT1yLzIsZT9vLmVhY2hCZWZvcmUoTWt0KGUpKS5lYWNoQWZ0ZXIoYlEobiwuNSkpLmVhY2hCZWZvcmUoRWt0KDEpKTpvLmVhY2hCZWZvcmUoTWt0KFlQZSkpLmVhY2hBZnRlcihiUShlZCwxKSkuZWFjaEFmdGVyKGJRKG4sby5yL01hdGgubWluKHQscikpKS5lYWNoQmVmb3JlKEVrdChNYXRoLm1pbih0LHIpLygyKm8ucikpKSxvfXJldHVybiBpLnJhZGl1cz1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1Ta3QobyksaSk6ZX0saS5zaXplPWZ1bmN0aW9uKG8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PStvWzBdLHI9K29bMV0saSk6W3Qscl19LGkucGFkZGluZz1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10eXBlb2Ygbz09ImZ1bmN0aW9uIj9vOndnKCtvKSxpKTpufSxpfWZ1bmN0aW9uIE1rdChlKXtyZXR1cm4gZnVuY3Rpb24odCl7dC5jaGlsZHJlbnx8KHQucj1NYXRoLm1heCgwLCtlKHQpfHwwKSl9fWZ1bmN0aW9uIGJRKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHIpe2lmKG49ci5jaGlsZHJlbil7dmFyIG4saSxvPW4ubGVuZ3RoLGE9ZShyKSp0fHwwLHM7aWYoYSlmb3IoaT0wO2k8bzsrK2kpbltpXS5yKz1hO2lmKHM9eVEobiksYSlmb3IoaT0wO2k8bzsrK2kpbltpXS5yLT1hO3Iucj1zK2F9fX1mdW5jdGlvbiBFa3QoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciByPXQucGFyZW50O3Qucio9ZSxyJiYodC54PXIueCtlKnQueCx0Lnk9ci55K2UqdC55KX19dmFyIENrdD1NKCgpPT57dlEoKTtaRCgpO3hRKCl9KTtmdW5jdGlvbiBKRChlKXtlLngwPU1hdGgucm91bmQoZS54MCksZS55MD1NYXRoLnJvdW5kKGUueTApLGUueDE9TWF0aC5yb3VuZChlLngxKSxlLnkxPU1hdGgucm91bmQoZS55MSl9dmFyIHdRPU0oKCk9Pnt9KTtmdW5jdGlvbiBjZihlLHQscixuLGkpe2Zvcih2YXIgbz1lLmNoaWxkcmVuLGEscz0tMSxsPW8ubGVuZ3RoLGM9ZS52YWx1ZSYmKG4tdCkvZS52YWx1ZTsrK3M8bDspYT1vW3NdLGEueTA9cixhLnkxPWksYS54MD10LGEueDE9dCs9YS52YWx1ZSpjfXZhciBVMj1NKCgpPT57fSk7ZnVuY3Rpb24gQWt0KCl7dmFyIGU9MSx0PTEscj0wLG49ITE7ZnVuY3Rpb24gaShhKXt2YXIgcz1hLmhlaWdodCsxO3JldHVybiBhLngwPWEueTA9cixhLngxPWUsYS55MT10L3MsYS5lYWNoQmVmb3JlKG8odCxzKSksbiYmYS5lYWNoQmVmb3JlKEpEKSxhfWZ1bmN0aW9uIG8oYSxzKXtyZXR1cm4gZnVuY3Rpb24obCl7bC5jaGlsZHJlbiYmY2YobCxsLngwLGEqKGwuZGVwdGgrMSkvcyxsLngxLGEqKGwuZGVwdGgrMikvcyk7dmFyIGM9bC54MCx1PWwueTAsaD1sLngxLXIsZj1sLnkxLXI7aDxjJiYoYz1oPShjK2gpLzIpLGY8dSYmKHU9Zj0odStmKS8yKSxsLngwPWMsbC55MD11LGwueDE9aCxsLnkxPWZ9fXJldHVybiBpLnJvdW5kPWZ1bmN0aW9uKGEpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSEhYSxpKTpufSxpLnNpemU9ZnVuY3Rpb24oYSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K2FbMF0sdD0rYVsxXSxpKTpbZSx0XX0saS5wYWRkaW5nPWZ1bmN0aW9uKGEpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSthLGkpOnJ9LGl9dmFyIFBrdD1NKCgpPT57d1EoKTtVMigpfSk7ZnVuY3Rpb24gWFBlKGUpe3JldHVybiBlLmlkfWZ1bmN0aW9uICRQZShlKXtyZXR1cm4gZS5wYXJlbnRJZH1mdW5jdGlvbiBra3QoKXt2YXIgZT1YUGUsdD0kUGU7ZnVuY3Rpb24gcihuKXt2YXIgaSxvLGE9bi5sZW5ndGgscyxsLGMsdT1uZXcgQXJyYXkoYSksaCxmLHA9e307Zm9yKG89MDtvPGE7KytvKWk9bltvXSxjPXVbb109bmV3IGJnKGkpLChoPWUoaSxvLG4pKSE9bnVsbCYmKGgrPSIiKSYmKGY9SWt0KyhjLmlkPWgpLHBbZl09ZiBpbiBwP0xrdDpjKTtmb3Iobz0wO288YTsrK28paWYoYz11W29dLGg9dChuW29dLG8sbiksaD09bnVsbHx8IShoKz0iIikpe2lmKHMpdGhyb3cgbmV3IEVycm9yKCJtdWx0aXBsZSByb290cyIpO3M9Y31lbHNle2lmKGw9cFtJa3QraF0sIWwpdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nOiAiK2gpO2lmKGw9PT1Ma3QpdGhyb3cgbmV3IEVycm9yKCJhbWJpZ3VvdXM6ICIraCk7bC5jaGlsZHJlbj9sLmNoaWxkcmVuLnB1c2goYyk6bC5jaGlsZHJlbj1bY10sYy5wYXJlbnQ9bH1pZighcyl0aHJvdyBuZXcgRXJyb3IoIm5vIHJvb3QiKTtpZihzLnBhcmVudD1qUGUscy5lYWNoQmVmb3JlKGZ1bmN0aW9uKGQpe2QuZGVwdGg9ZC5wYXJlbnQuZGVwdGgrMSwtLWF9KS5lYWNoQmVmb3JlKG1RKSxzLnBhcmVudD1udWxsLGE+MCl0aHJvdyBuZXcgRXJyb3IoImN5Y2xlIik7cmV0dXJuIHN9cmV0dXJuIHIuaWQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9VjIobikscik6ZX0sci5wYXJlbnRJZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1WMihuKSxyKTp0fSxyfXZhciBJa3QsalBlLExrdCxSa3Q9TSgoKT0+e1pEKCk7akQoKTtJa3Q9IiQiLGpQZT17ZGVwdGg6LTF9LExrdD17fX0pO2Z1bmN0aW9uIEtQZShlLHQpe3JldHVybiBlLnBhcmVudD09PXQucGFyZW50PzE6Mn1mdW5jdGlvbiBTUShlKXt2YXIgdD1lLmNoaWxkcmVuO3JldHVybiB0P3RbMF06ZS50fWZ1bmN0aW9uIE1RKGUpe3ZhciB0PWUuY2hpbGRyZW47cmV0dXJuIHQ/dFt0Lmxlbmd0aC0xXTplLnR9ZnVuY3Rpb24gWlBlKGUsdCxyKXt2YXIgbj1yLyh0LmktZS5pKTt0LmMtPW4sdC5zKz1yLGUuYys9bix0LnorPXIsdC5tKz1yfWZ1bmN0aW9uIEpQZShlKXtmb3IodmFyIHQ9MCxyPTAsbj1lLmNoaWxkcmVuLGk9bi5sZW5ndGgsbzstLWk+PTA7KW89bltpXSxvLnorPXQsby5tKz10LHQrPW8ucysocis9by5jKX1mdW5jdGlvbiBRUGUoZSx0LHIpe3JldHVybiBlLmEucGFyZW50PT09dC5wYXJlbnQ/ZS5hOnJ9ZnVuY3Rpb24gUUQoZSx0KXt0aGlzLl89ZSx0aGlzLnBhcmVudD1udWxsLHRoaXMuY2hpbGRyZW49bnVsbCx0aGlzLkE9bnVsbCx0aGlzLmE9dGhpcyx0aGlzLno9MCx0aGlzLm09MCx0aGlzLmM9MCx0aGlzLnM9MCx0aGlzLnQ9bnVsbCx0aGlzLmk9dH1mdW5jdGlvbiB0NmUoZSl7Zm9yKHZhciB0PW5ldyBRRChlLDApLHIsbj1bdF0saSxvLGEscztyPW4ucG9wKCk7KWlmKG89ci5fLmNoaWxkcmVuKWZvcihyLmNoaWxkcmVuPW5ldyBBcnJheShzPW8ubGVuZ3RoKSxhPXMtMTthPj0wOy0tYSluLnB1c2goaT1yLmNoaWxkcmVuW2FdPW5ldyBRRChvW2FdLGEpKSxpLnBhcmVudD1yO3JldHVybih0LnBhcmVudD1uZXcgUUQobnVsbCwwKSkuY2hpbGRyZW49W3RdLHR9ZnVuY3Rpb24gTmt0KCl7dmFyIGU9S1BlLHQ9MSxyPTEsbj1udWxsO2Z1bmN0aW9uIGkoYyl7dmFyIHU9dDZlKGMpO2lmKHUuZWFjaEFmdGVyKG8pLHUucGFyZW50Lm09LXUueix1LmVhY2hCZWZvcmUoYSksbiljLmVhY2hCZWZvcmUobCk7ZWxzZXt2YXIgaD1jLGY9YyxwPWM7Yy5lYWNoQmVmb3JlKGZ1bmN0aW9uKHgpe3gueDxoLngmJihoPXgpLHgueD5mLngmJihmPXgpLHguZGVwdGg+cC5kZXB0aCYmKHA9eCl9KTt2YXIgZD1oPT09Zj8xOmUoaCxmKS8yLGc9ZC1oLngsXz10LyhmLngrZCtnKSx5PXIvKHAuZGVwdGh8fDEpO2MuZWFjaEJlZm9yZShmdW5jdGlvbih4KXt4Lng9KHgueCtnKSpfLHgueT14LmRlcHRoKnl9KX1yZXR1cm4gY31mdW5jdGlvbiBvKGMpe3ZhciB1PWMuY2hpbGRyZW4saD1jLnBhcmVudC5jaGlsZHJlbixmPWMuaT9oW2MuaS0xXTpudWxsO2lmKHUpe0pQZShjKTt2YXIgcD0odVswXS56K3VbdS5sZW5ndGgtMV0ueikvMjtmPyhjLno9Zi56K2UoYy5fLGYuXyksYy5tPWMuei1wKTpjLno9cH1lbHNlIGYmJihjLno9Zi56K2UoYy5fLGYuXykpO2MucGFyZW50LkE9cyhjLGYsYy5wYXJlbnQuQXx8aFswXSl9ZnVuY3Rpb24gYShjKXtjLl8ueD1jLnorYy5wYXJlbnQubSxjLm0rPWMucGFyZW50Lm19ZnVuY3Rpb24gcyhjLHUsaCl7aWYodSl7Zm9yKHZhciBmPWMscD1jLGQ9dSxnPWYucGFyZW50LmNoaWxkcmVuWzBdLF89Zi5tLHk9cC5tLHg9ZC5tLGI9Zy5tLFM7ZD1NUShkKSxmPVNRKGYpLGQmJmY7KWc9U1EoZykscD1NUShwKSxwLmE9YyxTPWQueit4LWYuei1fK2UoZC5fLGYuXyksUz4wJiYoWlBlKFFQZShkLGMsaCksYyxTKSxfKz1TLHkrPVMpLHgrPWQubSxfKz1mLm0sYis9Zy5tLHkrPXAubTtkJiYhTVEocCkmJihwLnQ9ZCxwLm0rPXgteSksZiYmIVNRKGcpJiYoZy50PWYsZy5tKz1fLWIsaD1jKX1yZXR1cm4gaH1mdW5jdGlvbiBsKGMpe2MueCo9dCxjLnk9Yy5kZXB0aCpyfXJldHVybiBpLnNlcGFyYXRpb249ZnVuY3Rpb24oYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9YyxpKTplfSxpLnNpemU9ZnVuY3Rpb24oYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ITEsdD0rY1swXSxyPStjWzFdLGkpOm4/bnVsbDpbdCxyXX0saS5ub2RlU2l6ZT1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0hMCx0PStjWzBdLHI9K2NbMV0saSk6bj9bdCxyXTpudWxsfSxpfXZhciBEa3Q9TSgoKT0+e2pEKCk7UUQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoYmcucHJvdG90eXBlKX0pO2Z1bmN0aW9uIFNnKGUsdCxyLG4saSl7Zm9yKHZhciBvPWUuY2hpbGRyZW4sYSxzPS0xLGw9by5sZW5ndGgsYz1lLnZhbHVlJiYoaS1yKS9lLnZhbHVlOysrczxsOylhPW9bc10sYS54MD10LGEueDE9bixhLnkwPXIsYS55MT1yKz1hLnZhbHVlKmN9dmFyICRUPU0oKCk9Pnt9KTtmdW5jdGlvbiBUUShlLHQscixuLGksbyl7Zm9yKHZhciBhPVtdLHM9dC5jaGlsZHJlbixsLGMsdT0wLGg9MCxmPXMubGVuZ3RoLHAsZCxnPXQudmFsdWUsXyx5LHgsYixTLEMsUDt1PGY7KXtwPWktcixkPW8tbjtkbyBfPXNbaCsrXS52YWx1ZTt3aGlsZSghXyYmaDxmKTtmb3IoeT14PV8sQz1NYXRoLm1heChkL3AscC9kKS8oZyplKSxQPV8qXypDLFM9TWF0aC5tYXgoeC9QLFAveSk7aDxmOysraCl7aWYoXys9Yz1zW2hdLnZhbHVlLGM8eSYmKHk9YyksYz54JiYoeD1jKSxQPV8qXypDLGI9TWF0aC5tYXgoeC9QLFAveSksYj5TKXtfLT1jO2JyZWFrfVM9Yn1hLnB1c2gobD17dmFsdWU6XyxkaWNlOnA8ZCxjaGlsZHJlbjpzLnNsaWNlKHUsaCl9KSxsLmRpY2U/Y2YobCxyLG4saSxnP24rPWQqXy9nOm8pOlNnKGwscixuLGc/cis9cCpfL2c6aSxvKSxnLT1fLHU9aH1yZXR1cm4gYX12YXIgRVEsdE8sZU89TSgoKT0+e1UyKCk7JFQoKTtFUT0oMStNYXRoLnNxcnQoNSkpLzI7dE89ZnVuY3Rpb24gZSh0KXtmdW5jdGlvbiByKG4saSxvLGEscyl7VFEodCxuLGksbyxhLHMpfXJldHVybiByLnJhdGlvPWZ1bmN0aW9uKG4pe3JldHVybiBlKChuPStuKT4xP246MSl9LHJ9KEVRKX0pO2Z1bmN0aW9uIE9rdCgpe3ZhciBlPXRPLHQ9ITEscj0xLG49MSxpPVswXSxvPWVkLGE9ZWQscz1lZCxsPWVkLGM9ZWQ7ZnVuY3Rpb24gdShmKXtyZXR1cm4gZi54MD1mLnkwPTAsZi54MT1yLGYueTE9bixmLmVhY2hCZWZvcmUoaCksaT1bMF0sdCYmZi5lYWNoQmVmb3JlKEpEKSxmfWZ1bmN0aW9uIGgoZil7dmFyIHA9aVtmLmRlcHRoXSxkPWYueDArcCxnPWYueTArcCxfPWYueDEtcCx5PWYueTEtcDtfPGQmJihkPV89KGQrXykvMikseTxnJiYoZz15PShnK3kpLzIpLGYueDA9ZCxmLnkwPWcsZi54MT1fLGYueTE9eSxmLmNoaWxkcmVuJiYocD1pW2YuZGVwdGgrMV09byhmKS8yLGQrPWMoZiktcCxnKz1hKGYpLXAsXy09cyhmKS1wLHktPWwoZiktcCxfPGQmJihkPV89KGQrXykvMikseTxnJiYoZz15PShnK3kpLzIpLGUoZixkLGcsXyx5KSl9cmV0dXJuIHUucm91bmQ9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ISFmLHUpOnR9LHUuc2l6ZT1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rZlswXSxuPStmWzFdLHUpOltyLG5dfSx1LnRpbGU9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9VjIoZiksdSk6ZX0sdS5wYWRkaW5nPWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3UucGFkZGluZ0lubmVyKGYpLnBhZGRpbmdPdXRlcihmKTp1LnBhZGRpbmdJbm5lcigpfSx1LnBhZGRpbmdJbm5lcj1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz10eXBlb2YgZj09ImZ1bmN0aW9uIj9mOndnKCtmKSx1KTpvfSx1LnBhZGRpbmdPdXRlcj1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD91LnBhZGRpbmdUb3AoZikucGFkZGluZ1JpZ2h0KGYpLnBhZGRpbmdCb3R0b20oZikucGFkZGluZ0xlZnQoZik6dS5wYWRkaW5nVG9wKCl9LHUucGFkZGluZ1RvcD1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10eXBlb2YgZj09ImZ1bmN0aW9uIj9mOndnKCtmKSx1KTphfSx1LnBhZGRpbmdSaWdodD1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz10eXBlb2YgZj09ImZ1bmN0aW9uIj9mOndnKCtmKSx1KTpzfSx1LnBhZGRpbmdCb3R0b209ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9dHlwZW9mIGY9PSJmdW5jdGlvbiI/Zjp3ZygrZiksdSk6bH0sdS5wYWRkaW5nTGVmdD1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz10eXBlb2YgZj09ImZ1bmN0aW9uIj9mOndnKCtmKSx1KTpjfSx1fXZhciB6a3Q9TSgoKT0+e3dRKCk7ZU8oKTtaRCgpO3hRKCl9KTtmdW5jdGlvbiBGa3QoZSx0LHIsbixpKXt2YXIgbz1lLmNoaWxkcmVuLGEscz1vLmxlbmd0aCxsLGM9bmV3IEFycmF5KHMrMSk7Zm9yKGNbMF09bD1hPTA7YTxzOysrYSljW2ErMV09bCs9b1thXS52YWx1ZTt1KDAscyxlLnZhbHVlLHQscixuLGkpO2Z1bmN0aW9uIHUoaCxmLHAsZCxnLF8seSl7aWYoaD49Zi0xKXt2YXIgeD1vW2hdO3gueDA9ZCx4LnkwPWcseC54MT1fLHgueTE9eTtyZXR1cm59Zm9yKHZhciBiPWNbaF0sUz1wLzIrYixDPWgrMSxQPWYtMTtDPFA7KXt2YXIgaz1DK1A+Pj4xO2Nba108Uz9DPWsrMTpQPWt9Uy1jW0MtMV08Y1tDXS1TJiZoKzE8QyYmLS1DO3ZhciBPPWNbQ10tYixEPXAtTztpZihfLWQ+eS1nKXt2YXIgQj0oZCpEK18qTykvcDt1KGgsQyxPLGQsZyxCLHkpLHUoQyxmLEQsQixnLF8seSl9ZWxzZXt2YXIgST0oZypEK3kqTykvcDt1KGgsQyxPLGQsZyxfLEkpLHUoQyxmLEQsZCxJLF8seSl9fX12YXIgQmt0PU0oKCk9Pnt9KTtmdW5jdGlvbiBIa3QoZSx0LHIsbixpKXsoZS5kZXB0aCYxP1NnOmNmKShlLHQscixuLGkpfXZhciBWa3Q9TSgoKT0+e1UyKCk7JFQoKX0pO3ZhciBVa3QscWt0PU0oKCk9PntVMigpOyRUKCk7ZU8oKTtVa3Q9ZnVuY3Rpb24gZSh0KXtmdW5jdGlvbiByKG4saSxvLGEscyl7aWYoKGw9bi5fc3F1YXJpZnkpJiZsLnJhdGlvPT09dClmb3IodmFyIGwsYyx1LGgsZj0tMSxwLGQ9bC5sZW5ndGgsZz1uLnZhbHVlOysrZjxkOyl7Zm9yKGM9bFtmXSx1PWMuY2hpbGRyZW4saD1jLnZhbHVlPTAscD11Lmxlbmd0aDtoPHA7KytoKWMudmFsdWUrPXVbaF0udmFsdWU7Yy5kaWNlP2NmKGMsaSxvLGEsbys9KHMtbykqYy52YWx1ZS9nKTpTZyhjLGksbyxpKz0oYS1pKSpjLnZhbHVlL2cscyksZy09Yy52YWx1ZX1lbHNlIG4uX3NxdWFyaWZ5PWw9VFEodCxuLGksbyxhLHMpLGwucmF0aW89dH1yZXR1cm4gci5yYXRpbz1mdW5jdGlvbihuKXtyZXR1cm4gZSgobj0rbik+MT9uOjEpfSxyfShFUSl9KTt2YXIgR2t0PU0oKCk9PntXTHQoKTtqRCgpO0NrdCgpO3ZRKCk7X1EoKTtQa3QoKTtSa3QoKTtEa3QoKTt6a3QoKTtCa3QoKTtVMigpOyRUKCk7Vmt0KCk7ZU8oKTtxa3QoKX0pO2Z1bmN0aW9uIHJkKGUsdCxyKXtlLnByb3RvdHlwZT10LnByb3RvdHlwZT1yLHIuY29uc3RydWN0b3I9ZX1mdW5jdGlvbiBNZyhlLHQpe3ZhciByPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpO2Zvcih2YXIgbiBpbiB0KXJbbl09dFtuXTtyZXR1cm4gcn12YXIgck89TSgoKT0+e30pO2Z1bmN0aW9uIGZmKCl7fWZ1bmN0aW9uIFlrdCgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIGw2ZSgpe3JldHVybiBKa3QodGhpcykuZm9ybWF0SHNsKCl9ZnVuY3Rpb24gamt0KCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gVGcoZSl7dmFyIHQscjtyZXR1cm4gZT0oZSsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKHQ9ZTZlLmV4ZWMoZSkpPyhyPXRbMV0ubGVuZ3RoLHQ9cGFyc2VJbnQodFsxXSwxNikscj09PTY/WGt0KHQpOnI9PT0zP25ldyBybyh0Pj44JjE1fHQ+PjQmMjQwLHQ+PjQmMTV8dCYyNDAsKHQmMTUpPDw0fHQmMTUsMSk6cj09PTg/bk8odD4+MjQmMjU1LHQ+PjE2JjI1NSx0Pj44JjI1NSwodCYyNTUpLzI1NSk6cj09PTQ/bk8odD4+MTImMTV8dD4+OCYyNDAsdD4+OCYxNXx0Pj40JjI0MCx0Pj40JjE1fHQmMjQwLCgodCYxNSk8PDR8dCYxNSkvMjU1KTpudWxsKToodD1yNmUuZXhlYyhlKSk/bmV3IHJvKHRbMV0sdFsyXSx0WzNdLDEpOih0PW42ZS5leGVjKGUpKT9uZXcgcm8odFsxXSoyNTUvMTAwLHRbMl0qMjU1LzEwMCx0WzNdKjI1NS8xMDAsMSk6KHQ9aTZlLmV4ZWMoZSkpP25PKHRbMV0sdFsyXSx0WzNdLHRbNF0pOih0PW82ZS5leGVjKGUpKT9uTyh0WzFdKjI1NS8xMDAsdFsyXSoyNTUvMTAwLHRbM10qMjU1LzEwMCx0WzRdKToodD1hNmUuZXhlYyhlKSk/Wmt0KHRbMV0sdFsyXS8xMDAsdFszXS8xMDAsMSk6KHQ9czZlLmV4ZWMoZSkpP1prdCh0WzFdLHRbMl0vMTAwLHRbM10vMTAwLHRbNF0pOldrdC5oYXNPd25Qcm9wZXJ0eShlKT9Ya3QoV2t0W2VdKTplPT09InRyYW5zcGFyZW50Ij9uZXcgcm8oTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiBYa3QoZSl7cmV0dXJuIG5ldyBybyhlPj4xNiYyNTUsZT4+OCYyNTUsZSYyNTUsMSl9ZnVuY3Rpb24gbk8oZSx0LHIsbil7cmV0dXJuIG48PTAmJihlPXQ9cj1OYU4pLG5ldyBybyhlLHQscixuKX1mdW5jdGlvbiBaVChlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGZmfHwoZT1UZyhlKSksZT8oZT1lLnJnYigpLG5ldyBybyhlLnIsZS5nLGUuYixlLm9wYWNpdHkpKTpuZXcgcm99ZnVuY3Rpb24gRzIoZSx0LHIsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP1pUKGUpOm5ldyBybyhlLHQscixuPT1udWxsPzE6bil9ZnVuY3Rpb24gcm8oZSx0LHIsbil7dGhpcy5yPStlLHRoaXMuZz0rdCx0aGlzLmI9K3IsdGhpcy5vcGFjaXR5PStufWZ1bmN0aW9uICRrdCgpe3JldHVybiIjIitDUSh0aGlzLnIpK0NRKHRoaXMuZykrQ1EodGhpcy5iKX1mdW5jdGlvbiBLa3QoKXt2YXIgZT10aGlzLm9wYWNpdHk7cmV0dXJuIGU9aXNOYU4oZSk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsZSkpLChlPT09MT8icmdiKCI6InJnYmEoIikrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLnIpfHwwKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuZyl8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5iKXx8MCkpKyhlPT09MT8iKSI6IiwgIitlKyIpIil9ZnVuY3Rpb24gQ1EoZSl7cmV0dXJuIGU9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZChlKXx8MCkpLChlPDE2PyIwIjoiIikrZS50b1N0cmluZygxNil9ZnVuY3Rpb24gWmt0KGUsdCxyLG4pe3JldHVybiBuPD0wP2U9dD1yPU5hTjpyPD0wfHxyPj0xP2U9dD1OYU46dDw9MCYmKGU9TmFOKSxuZXcgdWYoZSx0LHIsbil9ZnVuY3Rpb24gSmt0KGUpe2lmKGUgaW5zdGFuY2VvZiB1ZilyZXR1cm4gbmV3IHVmKGUuaCxlLnMsZS5sLGUub3BhY2l0eSk7aWYoZSBpbnN0YW5jZW9mIGZmfHwoZT1UZyhlKSksIWUpcmV0dXJuIG5ldyB1ZjtpZihlIGluc3RhbmNlb2YgdWYpcmV0dXJuIGU7ZT1lLnJnYigpO3ZhciB0PWUuci8yNTUscj1lLmcvMjU1LG49ZS5iLzI1NSxpPU1hdGgubWluKHQscixuKSxvPU1hdGgubWF4KHQscixuKSxhPU5hTixzPW8taSxsPShvK2kpLzI7cmV0dXJuIHM/KHQ9PT1vP2E9KHItbikvcysocjxuKSo2OnI9PT1vP2E9KG4tdCkvcysyOmE9KHQtcikvcys0LHMvPWw8LjU/bytpOjItby1pLGEqPTYwKTpzPWw+MCYmbDwxPzA6YSxuZXcgdWYoYSxzLGwsZS5vcGFjaXR5KX1mdW5jdGlvbiBKVChlLHQscixuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/Smt0KGUpOm5ldyB1ZihlLHQscixuPT1udWxsPzE6bil9ZnVuY3Rpb24gdWYoZSx0LHIsbil7dGhpcy5oPStlLHRoaXMucz0rdCx0aGlzLmw9K3IsdGhpcy5vcGFjaXR5PStufWZ1bmN0aW9uIEFRKGUsdCxyKXtyZXR1cm4oZTw2MD90KyhyLXQpKmUvNjA6ZTwxODA/cjplPDI0MD90KyhyLXQpKigyNDAtZSkvNjA6dCkqMjU1fXZhciBFZyxZeSxxMixLVCxoZixlNmUscjZlLG42ZSxpNmUsbzZlLGE2ZSxzNmUsV2t0LGlPPU0oKCk9PntyTygpO0VnPS43LFl5PTEvRWcscTI9IlxccyooWystXT9cXGQrKVxccyoiLEtUPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLGhmPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixlNmU9L14jKFswLTlhLWZdezMsOH0pJC8scjZlPW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1txMixxMixxMl0rIlxcKSQiKSxuNmU9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW2hmLGhmLGhmXSsiXFwpJCIpLGk2ZT1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW3EyLHEyLHEyLEtUXSsiXFwpJCIpLG82ZT1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW2hmLGhmLGhmLEtUXSsiXFwpJCIpLGE2ZT1uZXcgUmVnRXhwKCJeaHNsXFwoIitbS1QsaGYsaGZdKyJcXCkkIiksczZlPW5ldyBSZWdFeHAoIl5oc2xhXFwoIitbS1QsaGYsaGYsS1RdKyJcXCkkIiksV2t0PXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9O3JkKGZmLFRnLHtjb3B5OmZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuYXNzaWduKG5ldyB0aGlzLmNvbnN0cnVjdG9yLHRoaXMsZSl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKX0saGV4OllrdCxmb3JtYXRIZXg6WWt0LGZvcm1hdEhzbDpsNmUsZm9ybWF0UmdiOmprdCx0b1N0cmluZzpqa3R9KTtyZChybyxHMixNZyhmZix7YnJpZ2h0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZT09bnVsbD9ZeTpNYXRoLnBvdyhZeSxlKSxuZXcgcm8odGhpcy5yKmUsdGhpcy5nKmUsdGhpcy5iKmUsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/RWc6TWF0aC5wb3coRWcsZSksbmV3IHJvKHRoaXMuciplLHRoaXMuZyplLHRoaXMuYiplLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6JGt0LGZvcm1hdEhleDoka3QsZm9ybWF0UmdiOktrdCx0b1N0cmluZzpLa3R9KSk7cmQodWYsSlQsTWcoZmYse2JyaWdodGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/WXk6TWF0aC5wb3coWXksZSksbmV3IHVmKHRoaXMuaCx0aGlzLnMsdGhpcy5sKmUsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/RWc6TWF0aC5wb3coRWcsZSksbmV3IHVmKHRoaXMuaCx0aGlzLnMsdGhpcy5sKmUsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5oJTM2MCsodGhpcy5oPDApKjM2MCx0PWlzTmFOKGUpfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLHI9dGhpcy5sLG49cisocjwuNT9yOjEtcikqdCxpPTIqci1uO3JldHVybiBuZXcgcm8oQVEoZT49MjQwP2UtMjQwOmUrMTIwLGksbiksQVEoZSxpLG4pLEFRKGU8MTIwP2UrMjQwOmUtMTIwLGksbiksdGhpcy5vcGFjaXR5KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGZvcm1hdEhzbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3BhY2l0eTtyZXR1cm4gZT1pc05hTihlKT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSxlKSksKGU9PT0xPyJoc2woIjoiaHNsYSgiKSsodGhpcy5ofHwwKSsiLCAiKyh0aGlzLnN8fDApKjEwMCsiJSwgIisodGhpcy5sfHwwKSoxMDArIiUiKyhlPT09MT8iKSI6IiwgIitlKyIpIil9fSkpfSk7dmFyIG9PLGFPLFBRPU0oKCk9PntvTz1NYXRoLlBJLzE4MCxhTz0xODAvTWF0aC5QSX0pO2Z1bmN0aW9uIGk4dChlKXtpZihlIGluc3RhbmNlb2YgcGYpcmV0dXJuIG5ldyBwZihlLmwsZS5hLGUuYixlLm9wYWNpdHkpO2lmKGUgaW5zdGFuY2VvZiBuZClyZXR1cm4gbzh0KGUpO2UgaW5zdGFuY2VvZiByb3x8KGU9WlQoZSkpO3ZhciB0PVJRKGUucikscj1SUShlLmcpLG49UlEoZS5iKSxpPUlRKCguMjIyNTA0NSp0Ky43MTY4Nzg2KnIrLjA2MDYxNjkqbikvdDh0KSxvLGE7cmV0dXJuIHQ9PT1yJiZyPT09bj9vPWE9aToobz1JUSgoLjQzNjA3NDcqdCsuMzg1MDY0OSpyKy4xNDMwODA0Km4pL1FrdCksYT1JUSgoLjAxMzkzMjIqdCsuMDk3MTA0NSpyKy43MTQxNzMzKm4pL2U4dCkpLG5ldyBwZigxMTYqaS0xNiw1MDAqKG8taSksMjAwKihpLWEpLGUub3BhY2l0eSl9ZnVuY3Rpb24gWTIoZSx0LHIsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP2k4dChlKTpuZXcgcGYoZSx0LHIsbj09bnVsbD8xOm4pfWZ1bmN0aW9uIHBmKGUsdCxyLG4pe3RoaXMubD0rZSx0aGlzLmE9K3QsdGhpcy5iPStyLHRoaXMub3BhY2l0eT0rbn1mdW5jdGlvbiBJUShlKXtyZXR1cm4gZT5jNmU/TWF0aC5wb3coZSwxLzMpOmUvbjh0K3I4dH1mdW5jdGlvbiBMUShlKXtyZXR1cm4gZT5XMj9lKmUqZTpuOHQqKGUtcjh0KX1mdW5jdGlvbiBrUShlKXtyZXR1cm4gMjU1KihlPD0uMDAzMTMwOD8xMi45MiplOjEuMDU1Kk1hdGgucG93KGUsMS8yLjQpLS4wNTUpfWZ1bmN0aW9uIFJRKGUpe3JldHVybihlLz0yNTUpPD0uMDQwNDU/ZS8xMi45MjpNYXRoLnBvdygoZSsuMDU1KS8xLjA1NSwyLjQpfWZ1bmN0aW9uIHU2ZShlKXtpZihlIGluc3RhbmNlb2YgbmQpcmV0dXJuIG5ldyBuZChlLmgsZS5jLGUubCxlLm9wYWNpdHkpO2lmKGUgaW5zdGFuY2VvZiBwZnx8KGU9aTh0KGUpKSxlLmE9PT0wJiZlLmI9PT0wKXJldHVybiBuZXcgbmQoTmFOLDA8ZS5sJiZlLmw8MTAwPzA6TmFOLGUubCxlLm9wYWNpdHkpO3ZhciB0PU1hdGguYXRhbjIoZS5iLGUuYSkqYU87cmV0dXJuIG5ldyBuZCh0PDA/dCszNjA6dCxNYXRoLnNxcnQoZS5hKmUuYStlLmIqZS5iKSxlLmwsZS5vcGFjaXR5KX1mdW5jdGlvbiBRVChlLHQscixuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/dTZlKGUpOm5ldyBuZChlLHQscixuPT1udWxsPzE6bil9ZnVuY3Rpb24gbmQoZSx0LHIsbil7dGhpcy5oPStlLHRoaXMuYz0rdCx0aGlzLmw9K3IsdGhpcy5vcGFjaXR5PStufWZ1bmN0aW9uIG84dChlKXtpZihpc05hTihlLmgpKXJldHVybiBuZXcgcGYoZS5sLDAsMCxlLm9wYWNpdHkpO3ZhciB0PWUuaCpvTztyZXR1cm4gbmV3IHBmKGUubCxNYXRoLmNvcyh0KSplLmMsTWF0aC5zaW4odCkqZS5jLGUub3BhY2l0eSl9dmFyIHNPLFFrdCx0OHQsZTh0LHI4dCxXMixuOHQsYzZlLGE4dD1NKCgpPT57ck8oKTtpTygpO1BRKCk7c089MTgsUWt0PS45NjQyMix0OHQ9MSxlOHQ9LjgyNTIxLHI4dD00LzI5LFcyPTYvMjksbjh0PTMqVzIqVzIsYzZlPVcyKlcyKlcyO3JkKHBmLFkyLE1nKGZmLHticmlnaHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IHBmKHRoaXMubCtzTyooZT09bnVsbD8xOmUpLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgcGYodGhpcy5sLXNPKihlPT1udWxsPzE6ZSksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgZT0odGhpcy5sKzE2KS8xMTYsdD1pc05hTih0aGlzLmEpP2U6ZSt0aGlzLmEvNTAwLHI9aXNOYU4odGhpcy5iKT9lOmUtdGhpcy5iLzIwMDtyZXR1cm4gdD1Ra3QqTFEodCksZT10OHQqTFEoZSkscj1lOHQqTFEociksbmV3IHJvKGtRKDMuMTMzODU2MSp0LTEuNjE2ODY2NyplLS40OTA2MTQ2KnIpLGtRKC0uOTc4NzY4NCp0KzEuOTE2MTQxNSplKy4wMzM0NTQqciksa1EoLjA3MTk0NTMqdC0uMjI4OTkxNCplKzEuNDA1MjQyNypyKSx0aGlzLm9wYWNpdHkpfX0pKTtyZChuZCxRVCxNZyhmZix7YnJpZ2h0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBuZCh0aGlzLmgsdGhpcy5jLHRoaXMubCtzTyooZT09bnVsbD8xOmUpLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IG5kKHRoaXMuaCx0aGlzLmMsdGhpcy5sLXNPKihlPT1udWxsPzE6ZSksdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIG84dCh0aGlzKS5yZ2IoKX19KSl9KTtmdW5jdGlvbiBoNmUoZSl7aWYoZSBpbnN0YW5jZW9mIGp5KXJldHVybiBuZXcgankoZS5oLGUucyxlLmwsZS5vcGFjaXR5KTtlIGluc3RhbmNlb2Ygcm98fChlPVpUKGUpKTt2YXIgdD1lLnIvMjU1LHI9ZS5nLzI1NSxuPWUuYi8yNTUsaT0oYzh0Km4rczh0KnQtbDh0KnIpLyhjOHQrczh0LWw4dCksbz1uLWksYT0odEMqKHItaSktRFEqbykvbE8scz1NYXRoLnNxcnQoYSphK28qbykvKHRDKmkqKDEtaSkpLGw9cz9NYXRoLmF0YW4yKGEsbykqYU8tMTIwOk5hTjtyZXR1cm4gbmV3IGp5KGw8MD9sKzM2MDpsLHMsaSxlLm9wYWNpdHkpfWZ1bmN0aW9uIGoyKGUsdCxyLG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT9oNmUoZSk6bmV3IGp5KGUsdCxyLG49PW51bGw/MTpuKX1mdW5jdGlvbiBqeShlLHQscixuKXt0aGlzLmg9K2UsdGhpcy5zPSt0LHRoaXMubD0rcix0aGlzLm9wYWNpdHk9K259dmFyIHU4dCxOUSxEUSxsTyx0QyxzOHQsbDh0LGM4dCxoOHQ9TSgoKT0+e3JPKCk7aU8oKTtQUSgpO3U4dD0tLjE0ODYxLE5RPTEuNzgyNzcsRFE9LS4yOTIyNyxsTz0tLjkwNjQ5LHRDPTEuOTcyOTQsczh0PXRDKmxPLGw4dD10QypOUSxjOHQ9TlEqRFEtbE8qdTh0O3JkKGp5LGoyLE1nKGZmLHticmlnaHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT1lPT1udWxsP1l5Ok1hdGgucG93KFl5LGUpLG5ldyBqeSh0aGlzLmgsdGhpcy5zLHRoaXMubCplLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT1lPT1udWxsP0VnOk1hdGgucG93KEVnLGUpLG5ldyBqeSh0aGlzLmgsdGhpcy5zLHRoaXMubCplLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciBlPWlzTmFOKHRoaXMuaCk/MDoodGhpcy5oKzEyMCkqb08sdD0rdGhpcy5sLHI9aXNOYU4odGhpcy5zKT8wOnRoaXMucyp0KigxLXQpLG49TWF0aC5jb3MoZSksaT1NYXRoLnNpbihlKTtyZXR1cm4gbmV3IHJvKDI1NSoodCtyKih1OHQqbitOUSppKSksMjU1Kih0K3IqKERRKm4rbE8qaSkpLDI1NSoodCtyKih0QypuKSksdGhpcy5vcGFjaXR5KX19KSl9KTt2YXIgWHk9TSgoKT0+e2lPKCk7YTh0KCk7aDh0KCl9KTtmdW5jdGlvbiBPUShlLHQscixuLGkpe3ZhciBvPWUqZSxhPW8qZTtyZXR1cm4oKDEtMyplKzMqby1hKSp0Kyg0LTYqbyszKmEpKnIrKDErMyplKzMqby0zKmEpKm4rYSppKS82fWZ1bmN0aW9uIGNPKGUpe3ZhciB0PWUubGVuZ3RoLTE7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBuPXI8PTA/cj0wOnI+PTE/KHI9MSx0LTEpOk1hdGguZmxvb3Iocip0KSxpPWVbbl0sbz1lW24rMV0sYT1uPjA/ZVtuLTFdOjIqaS1vLHM9bjx0LTE/ZVtuKzJdOjIqby1pO3JldHVybiBPUSgoci1uL3QpKnQsYSxpLG8scyl9fXZhciB1Tz1NKCgpPT57fSk7ZnVuY3Rpb24gaE8oZSl7dmFyIHQ9ZS5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBuPU1hdGguZmxvb3IoKChyJT0xKTwwPysrcjpyKSp0KSxpPWVbKG4rdC0xKSV0XSxvPWVbbiV0XSxhPWVbKG4rMSkldF0scz1lWyhuKzIpJXRdO3JldHVybiBPUSgoci1uL3QpKnQsaSxvLGEscyl9fXZhciB6UT1NKCgpPT57dU8oKX0pO2Z1bmN0aW9uIFgyKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX12YXIgRlE9TSgoKT0+e30pO2Z1bmN0aW9uIGY4dChlLHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gZStyKnR9fWZ1bmN0aW9uIGY2ZShlLHQscil7cmV0dXJuIGU9TWF0aC5wb3coZSxyKSx0PU1hdGgucG93KHQsciktZSxyPTEvcixmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5wb3coZStuKnQscil9fWZ1bmN0aW9uICQyKGUsdCl7dmFyIHI9dC1lO3JldHVybiByP2Y4dChlLHI+MTgwfHxyPC0xODA/ci0zNjAqTWF0aC5yb3VuZChyLzM2MCk6cik6WDIoaXNOYU4oZSk/dDplKX1mdW5jdGlvbiBwOHQoZSl7cmV0dXJuKGU9K2UpPT0xP1FuOmZ1bmN0aW9uKHQscil7cmV0dXJuIHItdD9mNmUodCxyLGUpOlgyKGlzTmFOKHQpP3I6dCl9fWZ1bmN0aW9uIFFuKGUsdCl7dmFyIHI9dC1lO3JldHVybiByP2Y4dChlLHIpOlgyKGlzTmFOKGUpP3Q6ZSl9dmFyIEsyPU0oKCk9PntGUSgpfSk7ZnVuY3Rpb24gZDh0KGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgcj10Lmxlbmd0aCxuPW5ldyBBcnJheShyKSxpPW5ldyBBcnJheShyKSxvPW5ldyBBcnJheShyKSxhLHM7Zm9yKGE9MDthPHI7KythKXM9RzIodFthXSksblthXT1zLnJ8fDAsaVthXT1zLmd8fDAsb1thXT1zLmJ8fDA7cmV0dXJuIG49ZShuKSxpPWUoaSksbz1lKG8pLHMub3BhY2l0eT0xLGZ1bmN0aW9uKGwpe3JldHVybiBzLnI9bihsKSxzLmc9aShsKSxzLmI9byhsKSxzKyIifX19dmFyIGVDLG04dCxnOHQsQlE9TSgoKT0+e1h5KCk7dU8oKTt6USgpO0syKCk7ZUM9ZnVuY3Rpb24gZSh0KXt2YXIgcj1wOHQodCk7ZnVuY3Rpb24gbihpLG8pe3ZhciBhPXIoKGk9RzIoaSkpLnIsKG89RzIobykpLnIpLHM9cihpLmcsby5nKSxsPXIoaS5iLG8uYiksYz1RbihpLm9wYWNpdHksby5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odSl7cmV0dXJuIGkucj1hKHUpLGkuZz1zKHUpLGkuYj1sKHUpLGkub3BhY2l0eT1jKHUpLGkrIiJ9fXJldHVybiBuLmdhbW1hPWUsbn0oMSk7bTh0PWQ4dChjTyksZzh0PWQ4dChoTyl9KTtmdW5jdGlvbiBmTyhlLHQpe3ZhciByPXQ/dC5sZW5ndGg6MCxuPWU/TWF0aC5taW4ocixlLmxlbmd0aCk6MCxpPW5ldyBBcnJheShuKSxvPW5ldyBBcnJheShyKSxhO2ZvcihhPTA7YTxuOysrYSlpW2FdPVoyKGVbYV0sdFthXSk7Zm9yKDthPHI7KythKW9bYV09dFthXTtyZXR1cm4gZnVuY3Rpb24ocyl7Zm9yKGE9MDthPG47KythKW9bYV09aVthXShzKTtyZXR1cm4gb319dmFyIEhRPU0oKCk9PntwTygpfSk7ZnVuY3Rpb24gZE8oZSx0KXt2YXIgcj1uZXcgRGF0ZTtyZXR1cm4gZT0rZSx0LT1lLGZ1bmN0aW9uKG4pe3JldHVybiByLnNldFRpbWUoZSt0Km4pLHJ9fXZhciBWUT1NKCgpPT57fSk7ZnVuY3Rpb24gUHMoZSx0KXtyZXR1cm4gZT0rZSx0LT1lLGZ1bmN0aW9uKHIpe3JldHVybiBlK3Qqcn19dmFyIHJDPU0oKCk9Pnt9KTtmdW5jdGlvbiBtTyhlLHQpe3ZhciByPXt9LG49e30saTsoZT09PW51bGx8fHR5cGVvZiBlIT0ib2JqZWN0IikmJihlPXt9KSwodD09PW51bGx8fHR5cGVvZiB0IT0ib2JqZWN0IikmJih0PXt9KTtmb3IoaSBpbiB0KWkgaW4gZT9yW2ldPVoyKGVbaV0sdFtpXSk6bltpXT10W2ldO3JldHVybiBmdW5jdGlvbihvKXtmb3IoaSBpbiByKW5baV09cltpXShvKTtyZXR1cm4gbn19dmFyIFVRPU0oKCk9PntwTygpfSk7ZnVuY3Rpb24gcDZlKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX1mdW5jdGlvbiBkNmUoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpKyIifX1mdW5jdGlvbiBnTyhlLHQpe3ZhciByPUdRLmxhc3RJbmRleD1xUS5sYXN0SW5kZXg9MCxuLGksbyxhPS0xLHM9W10sbD1bXTtmb3IoZT1lKyIiLHQ9dCsiIjsobj1HUS5leGVjKGUpKSYmKGk9cVEuZXhlYyh0KSk7KShvPWkuaW5kZXgpPnImJihvPXQuc2xpY2UocixvKSxzW2FdP3NbYV0rPW86c1srK2FdPW8pLChuPW5bMF0pPT09KGk9aVswXSk/c1thXT9zW2FdKz1pOnNbKythXT1pOihzWysrYV09bnVsbCxsLnB1c2goe2k6YSx4OlBzKG4saSl9KSkscj1xUS5sYXN0SW5kZXg7cmV0dXJuIHI8dC5sZW5ndGgmJihvPXQuc2xpY2Uociksc1thXT9zW2FdKz1vOnNbKythXT1vKSxzLmxlbmd0aDwyP2xbMF0/ZDZlKGxbMF0ueCk6cDZlKHQpOih0PWwubGVuZ3RoLGZ1bmN0aW9uKGMpe2Zvcih2YXIgdT0wLGg7dTx0OysrdSlzWyhoPWxbdV0pLmldPWgueChjKTtyZXR1cm4gcy5qb2luKCIiKX0pfXZhciBHUSxxUSxXUT1NKCgpPT57ckMoKTtHUT0vWy0rXT8oPzpcZCtcLj9cZCp8XC4/XGQrKSg/OltlRV1bLStdP1xkKyk/L2cscVE9bmV3IFJlZ0V4cChHUS5zb3VyY2UsImciKX0pO2Z1bmN0aW9uIFoyKGUsdCl7dmFyIHI9dHlwZW9mIHQsbjtyZXR1cm4gdD09bnVsbHx8cj09PSJib29sZWFuIj9YMih0KToocj09PSJudW1iZXIiP1BzOnI9PT0ic3RyaW5nIj8obj1UZyh0KSk/KHQ9bixlQyk6Z086dCBpbnN0YW5jZW9mIFRnP2VDOnQgaW5zdGFuY2VvZiBEYXRlP2RPOkFycmF5LmlzQXJyYXkodCk/Zk86dHlwZW9mIHQudmFsdWVPZiE9ImZ1bmN0aW9uIiYmdHlwZW9mIHQudG9TdHJpbmchPSJmdW5jdGlvbiJ8fGlzTmFOKHQpP21POlBzKShlLHQpfXZhciBwTz1NKCgpPT57WHkoKTtCUSgpO0hRKCk7VlEoKTtyQygpO1VRKCk7V1EoKTtGUSgpfSk7ZnVuY3Rpb24gXzh0KGUsdCl7cmV0dXJuIGU9K2UsdC09ZSxmdW5jdGlvbihyKXtyZXR1cm4gTWF0aC5yb3VuZChlK3Qqcil9fXZhciB5OHQ9TSgoKT0+e30pO2Z1bmN0aW9uIFlRKGUsdCxyLG4saSxvKXt2YXIgYSxzLGw7cmV0dXJuKGE9TWF0aC5zcXJ0KGUqZSt0KnQpKSYmKGUvPWEsdC89YSksKGw9ZSpyK3QqbikmJihyLT1lKmwsbi09dCpsKSwocz1NYXRoLnNxcnQocipyK24qbikpJiYoci89cyxuLz1zLGwvPXMpLGUqbjx0KnImJihlPS1lLHQ9LXQsbD0tbCxhPS1hKSx7dHJhbnNsYXRlWDppLHRyYW5zbGF0ZVk6byxyb3RhdGU6TWF0aC5hdGFuMih0LGUpKnY4dCxza2V3WDpNYXRoLmF0YW4obCkqdjh0LHNjYWxlWDphLHNjYWxlWTpzfX12YXIgdjh0LF9PLHg4dD1NKCgpPT57djh0PTE4MC9NYXRoLlBJLF9PPXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9fSk7ZnVuY3Rpb24gdzh0KGUpe3JldHVybiBlPT09Im5vbmUiP19POihuQ3x8KG5DPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLGpRPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxiOHQ9ZG9jdW1lbnQuZGVmYXVsdFZpZXcpLG5DLnN0eWxlLnRyYW5zZm9ybT1lLGU9Yjh0LmdldENvbXB1dGVkU3R5bGUoalEuYXBwZW5kQ2hpbGQobkMpLG51bGwpLmdldFByb3BlcnR5VmFsdWUoInRyYW5zZm9ybSIpLGpRLnJlbW92ZUNoaWxkKG5DKSxlPWUuc2xpY2UoNywtMSkuc3BsaXQoIiwiKSxZUSgrZVswXSwrZVsxXSwrZVsyXSwrZVszXSwrZVs0XSwrZVs1XSkpfWZ1bmN0aW9uIFM4dChlKXtyZXR1cm4gZT09bnVsbD9fTzooeU98fCh5Tz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpKSx5Ty5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsZSksKGU9eU8udHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSk/KGU9ZS5tYXRyaXgsWVEoZS5hLGUuYixlLmMsZS5kLGUuZSxlLmYpKTpfTyl9dmFyIG5DLGpRLGI4dCx5TyxNOHQ9TSgoKT0+e3g4dCgpfSk7ZnVuY3Rpb24gRTh0KGUsdCxyLG4pe2Z1bmN0aW9uIGkoYyl7cmV0dXJuIGMubGVuZ3RoP2MucG9wKCkrIiAiOiIifWZ1bmN0aW9uIG8oYyx1LGgsZixwLGQpe2lmKGMhPT1ofHx1IT09Zil7dmFyIGc9cC5wdXNoKCJ0cmFuc2xhdGUoIixudWxsLHQsbnVsbCxyKTtkLnB1c2goe2k6Zy00LHg6UHMoYyxoKX0se2k6Zy0yLHg6UHModSxmKX0pfWVsc2UoaHx8ZikmJnAucHVzaCgidHJhbnNsYXRlKCIraCt0K2Yrcil9ZnVuY3Rpb24gYShjLHUsaCxmKXtjIT09dT8oYy11PjE4MD91Kz0zNjA6dS1jPjE4MCYmKGMrPTM2MCksZi5wdXNoKHtpOmgucHVzaChpKGgpKyJyb3RhdGUoIixudWxsLG4pLTIseDpQcyhjLHUpfSkpOnUmJmgucHVzaChpKGgpKyJyb3RhdGUoIit1K24pfWZ1bmN0aW9uIHMoYyx1LGgsZil7YyE9PXU/Zi5wdXNoKHtpOmgucHVzaChpKGgpKyJza2V3WCgiLG51bGwsbiktMix4OlBzKGMsdSl9KTp1JiZoLnB1c2goaShoKSsic2tld1goIit1K24pfWZ1bmN0aW9uIGwoYyx1LGgsZixwLGQpe2lmKGMhPT1ofHx1IT09Zil7dmFyIGc9cC5wdXNoKGkocCkrInNjYWxlKCIsbnVsbCwiLCIsbnVsbCwiKSIpO2QucHVzaCh7aTpnLTQseDpQcyhjLGgpfSx7aTpnLTIseDpQcyh1LGYpfSl9ZWxzZShoIT09MXx8ZiE9PTEpJiZwLnB1c2goaShwKSsic2NhbGUoIitoKyIsIitmKyIpIil9cmV0dXJuIGZ1bmN0aW9uKGMsdSl7dmFyIGg9W10sZj1bXTtyZXR1cm4gYz1lKGMpLHU9ZSh1KSxvKGMudHJhbnNsYXRlWCxjLnRyYW5zbGF0ZVksdS50cmFuc2xhdGVYLHUudHJhbnNsYXRlWSxoLGYpLGEoYy5yb3RhdGUsdS5yb3RhdGUsaCxmKSxzKGMuc2tld1gsdS5za2V3WCxoLGYpLGwoYy5zY2FsZVgsYy5zY2FsZVksdS5zY2FsZVgsdS5zY2FsZVksaCxmKSxjPXU9bnVsbCxmdW5jdGlvbihwKXtmb3IodmFyIGQ9LTEsZz1mLmxlbmd0aCxfOysrZDxnOyloWyhfPWZbZF0pLmldPV8ueChwKTtyZXR1cm4gaC5qb2luKCIiKX19fXZhciBUOHQsQzh0LEE4dD1NKCgpPT57ckMoKTtNOHQoKTtUOHQ9RTh0KHc4dCwicHgsICIsInB4KSIsImRlZykiKSxDOHQ9RTh0KFM4dCwiLCAiLCIpIiwiKSIpfSk7ZnVuY3Rpb24gSTh0KGUpe3JldHVybigoZT1NYXRoLmV4cChlKSkrMS9lKS8yfWZ1bmN0aW9uIGc2ZShlKXtyZXR1cm4oKGU9TWF0aC5leHAoZSkpLTEvZSkvMn1mdW5jdGlvbiBfNmUoZSl7cmV0dXJuKChlPU1hdGguZXhwKDIqZSkpLTEpLyhlKzEpfWZ1bmN0aW9uIEw4dChlLHQpe3ZhciByPWVbMF0sbj1lWzFdLGk9ZVsyXSxvPXRbMF0sYT10WzFdLHM9dFsyXSxsPW8tcixjPWEtbix1PWwqbCtjKmMsaCxmO2lmKHU8bTZlKWY9TWF0aC5sb2cocy9pKS9pQyxoPWZ1bmN0aW9uKHgpe3JldHVybltyK3gqbCxuK3gqYyxpKk1hdGguZXhwKGlDKngqZildfTtlbHNle3ZhciBwPU1hdGguc3FydCh1KSxkPShzKnMtaSppK1A4dCp1KS8oMippKlhRKnApLGc9KHMqcy1pKmktUDh0KnUpLygyKnMqWFEqcCksXz1NYXRoLmxvZyhNYXRoLnNxcnQoZCpkKzEpLWQpLHk9TWF0aC5sb2coTWF0aC5zcXJ0KGcqZysxKS1nKTtmPSh5LV8pL2lDLGg9ZnVuY3Rpb24oeCl7dmFyIGI9eCpmLFM9STh0KF8pLEM9aS8oWFEqcCkqKFMqXzZlKGlDKmIrXyktZzZlKF8pKTtyZXR1cm5bcitDKmwsbitDKmMsaSpTL0k4dChpQypiK18pXX19cmV0dXJuIGguZHVyYXRpb249ZioxZTMsaH12YXIgaUMsWFEsUDh0LG02ZSxrOHQ9TSgoKT0+e2lDPU1hdGguU1FSVDIsWFE9MixQOHQ9NCxtNmU9MWUtMTJ9KTtmdW5jdGlvbiBSOHQoZSl7cmV0dXJuIGZ1bmN0aW9uKHQscil7dmFyIG49ZSgodD1KVCh0KSkuaCwocj1KVChyKSkuaCksaT1Rbih0LnMsci5zKSxvPVFuKHQubCxyLmwpLGE9UW4odC5vcGFjaXR5LHIub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHMpe3JldHVybiB0Lmg9bihzKSx0LnM9aShzKSx0Lmw9byhzKSx0Lm9wYWNpdHk9YShzKSx0KyIifX19dmFyIE44dCxEOHQsTzh0PU0oKCk9PntYeSgpO0syKCk7Tjh0PVI4dCgkMiksRDh0PVI4dChRbil9KTtmdW5jdGlvbiAkUShlLHQpe3ZhciByPVFuKChlPVkyKGUpKS5sLCh0PVkyKHQpKS5sKSxuPVFuKGUuYSx0LmEpLGk9UW4oZS5iLHQuYiksbz1RbihlLm9wYWNpdHksdC5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIGUubD1yKGEpLGUuYT1uKGEpLGUuYj1pKGEpLGUub3BhY2l0eT1vKGEpLGUrIiJ9fXZhciB6OHQ9TSgoKT0+e1h5KCk7SzIoKX0pO2Z1bmN0aW9uIEY4dChlKXtyZXR1cm4gZnVuY3Rpb24odCxyKXt2YXIgbj1lKCh0PVFUKHQpKS5oLChyPVFUKHIpKS5oKSxpPVFuKHQuYyxyLmMpLG89UW4odC5sLHIubCksYT1Rbih0Lm9wYWNpdHksci5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIHQuaD1uKHMpLHQuYz1pKHMpLHQubD1vKHMpLHQub3BhY2l0eT1hKHMpLHQrIiJ9fX12YXIgQjh0LEg4dCxWOHQ9TSgoKT0+e1h5KCk7SzIoKTtCOHQ9Rjh0KCQyKSxIOHQ9Rjh0KFFuKX0pO2Z1bmN0aW9uIFU4dChlKXtyZXR1cm4gZnVuY3Rpb24gdChyKXtyPStyO2Z1bmN0aW9uIG4oaSxvKXt2YXIgYT1lKChpPWoyKGkpKS5oLChvPWoyKG8pKS5oKSxzPVFuKGkucyxvLnMpLGw9UW4oaS5sLG8ubCksYz1RbihpLm9wYWNpdHksby5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odSl7cmV0dXJuIGkuaD1hKHUpLGkucz1zKHUpLGkubD1sKE1hdGgucG93KHUscikpLGkub3BhY2l0eT1jKHUpLGkrIiJ9fXJldHVybiBuLmdhbW1hPXQsbn0oMSl9dmFyIHE4dCxHOHQsVzh0PU0oKCk9PntYeSgpO0syKCk7cTh0PVU4dCgkMiksRzh0PVU4dChRbil9KTtmdW5jdGlvbiBZOHQoZSx0KXtmb3IodmFyIHI9bmV3IEFycmF5KHQpLG49MDtuPHQ7KytuKXJbbl09ZShuLyh0LTEpKTtyZXR1cm4gcn12YXIgajh0PU0oKCk9Pnt9KTt2YXIgWDh0PU0oKCk9PntwTygpO0hRKCk7dU8oKTt6USgpO1ZRKCk7ckMoKTtVUSgpO3k4dCgpO1dRKCk7QTh0KCk7azh0KCk7QlEoKTtPOHQoKTt6OHQoKTtWOHQoKTtXOHQoKTtqOHQoKX0pO2Z1bmN0aW9uIEpRKCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89IiJ9ZnVuY3Rpb24gJDh0KCl7cmV0dXJuIG5ldyBKUX12YXIgS1EsWlEsJHkseTZlLEs4dCxaOHQ9TSgoKT0+e0tRPU1hdGguUEksWlE9MipLUSwkeT0xZS02LHk2ZT1aUS0keTtKUS5wcm90b3R5cGU9JDh0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6SlEsbW92ZVRvOmZ1bmN0aW9uKGUsdCl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPStlKSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPSt0KX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7dGhpcy5feDEhPT1udWxsJiYodGhpcy5feDE9dGhpcy5feDAsdGhpcy5feTE9dGhpcy5feTAsdGhpcy5fKz0iWiIpfSxsaW5lVG86ZnVuY3Rpb24oZSx0KXt0aGlzLl8rPSJMIisodGhpcy5feDE9K2UpKyIsIisodGhpcy5feTE9K3QpfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKGUsdCxyLG4pe3RoaXMuXys9IlEiKyArZSsiLCIrICt0KyIsIisodGhpcy5feDE9K3IpKyIsIisodGhpcy5feTE9K24pfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKGUsdCxyLG4saSxvKXt0aGlzLl8rPSJDIisgK2UrIiwiKyArdCsiLCIrICtyKyIsIisgK24rIiwiKyh0aGlzLl94MT0raSkrIiwiKyh0aGlzLl95MT0rbyl9LGFyY1RvOmZ1bmN0aW9uKGUsdCxyLG4saSl7ZT0rZSx0PSt0LHI9K3Isbj0rbixpPStpO3ZhciBvPXRoaXMuX3gxLGE9dGhpcy5feTEscz1yLWUsbD1uLXQsYz1vLWUsdT1hLXQsaD1jKmMrdSp1O2lmKGk8MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIitpKTtpZih0aGlzLl94MT09PW51bGwpdGhpcy5fKz0iTSIrKHRoaXMuX3gxPWUpKyIsIisodGhpcy5feTE9dCk7ZWxzZSBpZihoPiR5KWlmKCEoTWF0aC5hYnModSpzLWwqYyk+JHkpfHwhaSl0aGlzLl8rPSJMIisodGhpcy5feDE9ZSkrIiwiKyh0aGlzLl95MT10KTtlbHNle3ZhciBmPXItbyxwPW4tYSxkPXMqcytsKmwsZz1mKmYrcCpwLF89TWF0aC5zcXJ0KGQpLHk9TWF0aC5zcXJ0KGgpLHg9aSpNYXRoLnRhbigoS1EtTWF0aC5hY29zKChkK2gtZykvKDIqXyp5KSkpLzIpLGI9eC95LFM9eC9fO01hdGguYWJzKGItMSk+JHkmJih0aGlzLl8rPSJMIisoZStiKmMpKyIsIisodCtiKnUpKSx0aGlzLl8rPSJBIitpKyIsIitpKyIsMCwwLCIrICsodSpmPmMqcCkrIiwiKyh0aGlzLl94MT1lK1MqcykrIiwiKyh0aGlzLl95MT10K1MqbCl9fSxhcmM6ZnVuY3Rpb24oZSx0LHIsbixpLG8pe2U9K2UsdD0rdCxyPStyO3ZhciBhPXIqTWF0aC5jb3Mobikscz1yKk1hdGguc2luKG4pLGw9ZSthLGM9dCtzLHU9MV5vLGg9bz9uLWk6aS1uO2lmKHI8MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIityKTt0aGlzLl94MT09PW51bGw/dGhpcy5fKz0iTSIrbCsiLCIrYzooTWF0aC5hYnModGhpcy5feDEtbCk+JHl8fE1hdGguYWJzKHRoaXMuX3kxLWMpPiR5KSYmKHRoaXMuXys9IkwiK2wrIiwiK2MpLHImJihoPDAmJihoPWglWlErWlEpLGg+eTZlP3RoaXMuXys9IkEiK3IrIiwiK3IrIiwwLDEsIit1KyIsIisoZS1hKSsiLCIrKHQtcykrIkEiK3IrIiwiK3IrIiwwLDEsIit1KyIsIisodGhpcy5feDE9bCkrIiwiKyh0aGlzLl95MT1jKTpoPiR5JiYodGhpcy5fKz0iQSIrcisiLCIrcisiLDAsIisgKyhoPj1LUSkrIiwiK3UrIiwiKyh0aGlzLl94MT1lK3IqTWF0aC5jb3MoaSkpKyIsIisodGhpcy5feTE9dCtyKk1hdGguc2luKGkpKSkpfSxyZWN0OmZ1bmN0aW9uKGUsdCxyLG4pe3RoaXMuXys9Ik0iKyh0aGlzLl94MD10aGlzLl94MT0rZSkrIiwiKyh0aGlzLl95MD10aGlzLl95MT0rdCkrImgiKyArcisidiIrICtuKyJoIistcisiWiJ9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX319O0s4dD0kOHR9KTt2YXIgSjh0PU0oKCk9PntaOHQoKX0pO2Z1bmN0aW9uIFE4dChlKXtmb3IodmFyIHQ9LTEscj1lLmxlbmd0aCxuLGk9ZVtyLTFdLG89MDsrK3Q8cjspbj1pLGk9ZVt0XSxvKz1uWzFdKmlbMF0tblswXSppWzFdO3JldHVybiBvLzJ9dmFyIHRSdD1NKCgpPT57fSk7ZnVuY3Rpb24gZVJ0KGUpe2Zvcih2YXIgdD0tMSxyPWUubGVuZ3RoLG49MCxpPTAsbyxhPWVbci0xXSxzLGw9MDsrK3Q8cjspbz1hLGE9ZVt0XSxsKz1zPW9bMF0qYVsxXS1hWzBdKm9bMV0sbis9KG9bMF0rYVswXSkqcyxpKz0ob1sxXSthWzFdKSpzO3JldHVybiBsKj0zLFtuL2wsaS9sXX12YXIgclJ0PU0oKCk9Pnt9KTtmdW5jdGlvbiBuUnQoZSx0LHIpe3JldHVybih0WzBdLWVbMF0pKihyWzFdLWVbMV0pLSh0WzFdLWVbMV0pKihyWzBdLWVbMF0pfXZhciBpUnQ9TSgoKT0+e30pO2Z1bmN0aW9uIHY2ZShlLHQpe3JldHVybiBlWzBdLXRbMF18fGVbMV0tdFsxXX1mdW5jdGlvbiBvUnQoZSl7Zm9yKHZhciB0PWUubGVuZ3RoLHI9WzAsMV0sbj0yLGk9MjtpPHQ7KytpKXtmb3IoO24+MSYmblJ0KGVbcltuLTJdXSxlW3Jbbi0xXV0sZVtpXSk8PTA7KS0tbjtyW24rK109aX1yZXR1cm4gci5zbGljZSgwLG4pfWZ1bmN0aW9uIGFSdChlKXtpZigocj1lLmxlbmd0aCk8MylyZXR1cm4gbnVsbDt2YXIgdCxyLG49bmV3IEFycmF5KHIpLGk9bmV3IEFycmF5KHIpO2Zvcih0PTA7dDxyOysrdCluW3RdPVsrZVt0XVswXSwrZVt0XVsxXSx0XTtmb3Iobi5zb3J0KHY2ZSksdD0wO3Q8cjsrK3QpaVt0XT1bblt0XVswXSwtblt0XVsxXV07dmFyIG89b1J0KG4pLGE9b1J0KGkpLHM9YVswXT09PW9bMF0sbD1hW2EubGVuZ3RoLTFdPT09b1tvLmxlbmd0aC0xXSxjPVtdO2Zvcih0PW8ubGVuZ3RoLTE7dD49MDstLXQpYy5wdXNoKGVbbltvW3RdXVsyXV0pO2Zvcih0PStzO3Q8YS5sZW5ndGgtbDsrK3QpYy5wdXNoKGVbblthW3RdXVsyXV0pO3JldHVybiBjfXZhciBzUnQ9TSgoKT0+e2lSdCgpfSk7ZnVuY3Rpb24gbFJ0KGUsdCl7Zm9yKHZhciByPWUubGVuZ3RoLG49ZVtyLTFdLGk9dFswXSxvPXRbMV0sYT1uWzBdLHM9blsxXSxsLGMsdT0hMSxoPTA7aDxyOysraCluPWVbaF0sbD1uWzBdLGM9blsxXSxjPm8hPXM+byYmaTwoYS1sKSooby1jKS8ocy1jKStsJiYodT0hdSksYT1sLHM9YztyZXR1cm4gdX12YXIgY1J0PU0oKCk9Pnt9KTtmdW5jdGlvbiB1UnQoZSl7Zm9yKHZhciB0PS0xLHI9ZS5sZW5ndGgsbj1lW3ItMV0saSxvLGE9blswXSxzPW5bMV0sbD0wOysrdDxyOylpPWEsbz1zLG49ZVt0XSxhPW5bMF0scz1uWzFdLGktPWEsby09cyxsKz1NYXRoLnNxcnQoaSppK28qbyk7cmV0dXJuIGx9dmFyIGhSdD1NKCgpPT57fSk7dmFyIGZSdD1NKCgpPT57dFJ0KCk7clJ0KCk7c1J0KCk7Y1J0KCk7aFJ0KCl9KTtmdW5jdGlvbiBwUnQoZSl7dmFyIHQ9K3RoaXMuX3guY2FsbChudWxsLGUpLHI9K3RoaXMuX3kuY2FsbChudWxsLGUpO3JldHVybiBkUnQodGhpcy5jb3Zlcih0LHIpLHQscixlKX1mdW5jdGlvbiBkUnQoZSx0LHIsbil7aWYoaXNOYU4odCl8fGlzTmFOKHIpKXJldHVybiBlO3ZhciBpLG89ZS5fcm9vdCxhPXtkYXRhOm59LHM9ZS5feDAsbD1lLl95MCxjPWUuX3gxLHU9ZS5feTEsaCxmLHAsZCxnLF8seSx4O2lmKCFvKXJldHVybiBlLl9yb290PWEsZTtmb3IoO28ubGVuZ3RoOylpZigoZz10Pj0oaD0ocytjKS8yKSk/cz1oOmM9aCwoXz1yPj0oZj0obCt1KS8yKSk/bD1mOnU9ZixpPW8sIShvPW9beT1fPDwxfGddKSlyZXR1cm4gaVt5XT1hLGU7aWYocD0rZS5feC5jYWxsKG51bGwsby5kYXRhKSxkPStlLl95LmNhbGwobnVsbCxvLmRhdGEpLHQ9PT1wJiZyPT09ZClyZXR1cm4gYS5uZXh0PW8saT9pW3ldPWE6ZS5fcm9vdD1hLGU7ZG8gaT1pP2lbeV09bmV3IEFycmF5KDQpOmUuX3Jvb3Q9bmV3IEFycmF5KDQpLChnPXQ+PShoPShzK2MpLzIpKT9zPWg6Yz1oLChfPXI+PShmPShsK3UpLzIpKT9sPWY6dT1mO3doaWxlKCh5PV88PDF8Zyk9PT0oeD0oZD49Zik8PDF8cD49aCkpO3JldHVybiBpW3hdPW8saVt5XT1hLGV9ZnVuY3Rpb24gbVJ0KGUpe3ZhciB0LHIsbj1lLmxlbmd0aCxpLG8sYT1uZXcgQXJyYXkobikscz1uZXcgQXJyYXkobiksbD0xLzAsYz0xLzAsdT0tMS8wLGg9LTEvMDtmb3Iocj0wO3I8bjsrK3IpaXNOYU4oaT0rdGhpcy5feC5jYWxsKG51bGwsdD1lW3JdKSl8fGlzTmFOKG89K3RoaXMuX3kuY2FsbChudWxsLHQpKXx8KGFbcl09aSxzW3JdPW8saTxsJiYobD1pKSxpPnUmJih1PWkpLG88YyYmKGM9byksbz5oJiYoaD1vKSk7Zm9yKHU8bCYmKGw9dGhpcy5feDAsdT10aGlzLl94MSksaDxjJiYoYz10aGlzLl95MCxoPXRoaXMuX3kxKSx0aGlzLmNvdmVyKGwsYykuY292ZXIodSxoKSxyPTA7cjxuOysrcilkUnQodGhpcyxhW3JdLHNbcl0sZVtyXSk7cmV0dXJuIHRoaXN9dmFyIGdSdD1NKCgpPT57fSk7ZnVuY3Rpb24gX1J0KGUsdCl7aWYoaXNOYU4oZT0rZSl8fGlzTmFOKHQ9K3QpKXJldHVybiB0aGlzO3ZhciByPXRoaXMuX3gwLG49dGhpcy5feTAsaT10aGlzLl94MSxvPXRoaXMuX3kxO2lmKGlzTmFOKHIpKWk9KHI9TWF0aC5mbG9vcihlKSkrMSxvPShuPU1hdGguZmxvb3IodCkpKzE7ZWxzZSBpZihyPmV8fGU+aXx8bj50fHx0Pm8pe3ZhciBhPWktcixzPXRoaXMuX3Jvb3QsbCxjO3N3aXRjaChjPSh0PChuK28pLzIpPDwxfGU8KHIraSkvMil7Y2FzZSAwOntkbyBsPW5ldyBBcnJheSg0KSxsW2NdPXMscz1sO3doaWxlKGEqPTIsaT1yK2Esbz1uK2EsZT5pfHx0Pm8pO2JyZWFrfWNhc2UgMTp7ZG8gbD1uZXcgQXJyYXkoNCksbFtjXT1zLHM9bDt3aGlsZShhKj0yLHI9aS1hLG89bithLHI+ZXx8dD5vKTticmVha31jYXNlIDI6e2RvIGw9bmV3IEFycmF5KDQpLGxbY109cyxzPWw7d2hpbGUoYSo9MixpPXIrYSxuPW8tYSxlPml8fG4+dCk7YnJlYWt9Y2FzZSAzOntkbyBsPW5ldyBBcnJheSg0KSxsW2NdPXMscz1sO3doaWxlKGEqPTIscj1pLWEsbj1vLWEscj5lfHxuPnQpO2JyZWFrfX10aGlzLl9yb290JiZ0aGlzLl9yb290Lmxlbmd0aCYmKHRoaXMuX3Jvb3Q9cyl9ZWxzZSByZXR1cm4gdGhpcztyZXR1cm4gdGhpcy5feDA9cix0aGlzLl95MD1uLHRoaXMuX3gxPWksdGhpcy5feTE9byx0aGlzfXZhciB5UnQ9TSgoKT0+e30pO2Z1bmN0aW9uIHZSdCgpe3ZhciBlPVtdO3JldHVybiB0aGlzLnZpc2l0KGZ1bmN0aW9uKHQpe2lmKCF0Lmxlbmd0aClkbyBlLnB1c2godC5kYXRhKTt3aGlsZSh0PXQubmV4dCl9KSxlfXZhciB4UnQ9TSgoKT0+e30pO2Z1bmN0aW9uIGJSdChlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmNvdmVyKCtlWzBdWzBdLCtlWzBdWzFdKS5jb3ZlcigrZVsxXVswXSwrZVsxXVsxXSk6aXNOYU4odGhpcy5feDApP3ZvaWQgMDpbW3RoaXMuX3gwLHRoaXMuX3kwXSxbdGhpcy5feDEsdGhpcy5feTFdXX12YXIgd1J0PU0oKCk9Pnt9KTtmdW5jdGlvbiBFbyhlLHQscixuLGkpe3RoaXMubm9kZT1lLHRoaXMueDA9dCx0aGlzLnkwPXIsdGhpcy54MT1uLHRoaXMueTE9aX12YXIgdk89TSgoKT0+e30pO2Z1bmN0aW9uIFNSdChlLHQscil7dmFyIG4saT10aGlzLl94MCxvPXRoaXMuX3kwLGEscyxsLGMsdT10aGlzLl94MSxoPXRoaXMuX3kxLGY9W10scD10aGlzLl9yb290LGQsZztmb3IocCYmZi5wdXNoKG5ldyBFbyhwLGksbyx1LGgpKSxyPT1udWxsP3I9MS8wOihpPWUtcixvPXQtcix1PWUrcixoPXQrcixyKj1yKTtkPWYucG9wKCk7KWlmKCEoIShwPWQubm9kZSl8fChhPWQueDApPnV8fChzPWQueTApPmh8fChsPWQueDEpPGl8fChjPWQueTEpPG8pKWlmKHAubGVuZ3RoKXt2YXIgXz0oYStsKS8yLHk9KHMrYykvMjtmLnB1c2gobmV3IEVvKHBbM10sXyx5LGwsYyksbmV3IEVvKHBbMl0sYSx5LF8sYyksbmV3IEVvKHBbMV0sXyxzLGwseSksbmV3IEVvKHBbMF0sYSxzLF8seSkpLChnPSh0Pj15KTw8MXxlPj1fKSYmKGQ9ZltmLmxlbmd0aC0xXSxmW2YubGVuZ3RoLTFdPWZbZi5sZW5ndGgtMS1nXSxmW2YubGVuZ3RoLTEtZ109ZCl9ZWxzZXt2YXIgeD1lLSt0aGlzLl94LmNhbGwobnVsbCxwLmRhdGEpLGI9dC0rdGhpcy5feS5jYWxsKG51bGwscC5kYXRhKSxTPXgqeCtiKmI7aWYoUzxyKXt2YXIgQz1NYXRoLnNxcnQocj1TKTtpPWUtQyxvPXQtQyx1PWUrQyxoPXQrQyxuPXAuZGF0YX19cmV0dXJuIG59dmFyIE1SdD1NKCgpPT57dk8oKX0pO2Z1bmN0aW9uIEVSdChlKXtpZihpc05hTih1PSt0aGlzLl94LmNhbGwobnVsbCxlKSl8fGlzTmFOKGg9K3RoaXMuX3kuY2FsbChudWxsLGUpKSlyZXR1cm4gdGhpczt2YXIgdCxyPXRoaXMuX3Jvb3QsbixpLG8sYT10aGlzLl94MCxzPXRoaXMuX3kwLGw9dGhpcy5feDEsYz10aGlzLl95MSx1LGgsZixwLGQsZyxfLHk7aWYoIXIpcmV0dXJuIHRoaXM7aWYoci5sZW5ndGgpZm9yKDs7KXtpZigoZD11Pj0oZj0oYStsKS8yKSk/YT1mOmw9ZiwoZz1oPj0ocD0ocytjKS8yKSk/cz1wOmM9cCx0PXIsIShyPXJbXz1nPDwxfGRdKSlyZXR1cm4gdGhpcztpZighci5sZW5ndGgpYnJlYWs7KHRbXysxJjNdfHx0W18rMiYzXXx8dFtfKzMmM10pJiYobj10LHk9Xyl9Zm9yKDtyLmRhdGEhPT1lOylpZihpPXIsIShyPXIubmV4dCkpcmV0dXJuIHRoaXM7cmV0dXJuKG89ci5uZXh0KSYmZGVsZXRlIHIubmV4dCxpPyhvP2kubmV4dD1vOmRlbGV0ZSBpLm5leHQsdGhpcyk6dD8obz90W19dPW86ZGVsZXRlIHRbX10sKHI9dFswXXx8dFsxXXx8dFsyXXx8dFszXSkmJnI9PT0odFszXXx8dFsyXXx8dFsxXXx8dFswXSkmJiFyLmxlbmd0aCYmKG4/blt5XT1yOnRoaXMuX3Jvb3Q9ciksdGhpcyk6KHRoaXMuX3Jvb3Q9byx0aGlzKX1mdW5jdGlvbiBUUnQoZSl7Zm9yKHZhciB0PTAscj1lLmxlbmd0aDt0PHI7Kyt0KXRoaXMucmVtb3ZlKGVbdF0pO3JldHVybiB0aGlzfXZhciBDUnQ9TSgoKT0+e30pO2Z1bmN0aW9uIEFSdCgpe3JldHVybiB0aGlzLl9yb290fXZhciBQUnQ9TSgoKT0+e30pO2Z1bmN0aW9uIElSdCgpe3ZhciBlPTA7cmV0dXJuIHRoaXMudmlzaXQoZnVuY3Rpb24odCl7aWYoIXQubGVuZ3RoKWRvKytlO3doaWxlKHQ9dC5uZXh0KX0pLGV9dmFyIExSdD1NKCgpPT57fSk7ZnVuY3Rpb24ga1J0KGUpe3ZhciB0PVtdLHIsbj10aGlzLl9yb290LGksbyxhLHMsbDtmb3IobiYmdC5wdXNoKG5ldyBFbyhuLHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7cj10LnBvcCgpOylpZighZShuPXIubm9kZSxvPXIueDAsYT1yLnkwLHM9ci54MSxsPXIueTEpJiZuLmxlbmd0aCl7dmFyIGM9KG8rcykvMix1PShhK2wpLzI7KGk9blszXSkmJnQucHVzaChuZXcgRW8oaSxjLHUscyxsKSksKGk9blsyXSkmJnQucHVzaChuZXcgRW8oaSxvLHUsYyxsKSksKGk9blsxXSkmJnQucHVzaChuZXcgRW8oaSxjLGEscyx1KSksKGk9blswXSkmJnQucHVzaChuZXcgRW8oaSxvLGEsYyx1KSl9cmV0dXJuIHRoaXN9dmFyIFJSdD1NKCgpPT57dk8oKX0pO2Z1bmN0aW9uIE5SdChlKXt2YXIgdD1bXSxyPVtdLG47Zm9yKHRoaXMuX3Jvb3QmJnQucHVzaChuZXcgRW8odGhpcy5fcm9vdCx0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkpO249dC5wb3AoKTspe3ZhciBpPW4ubm9kZTtpZihpLmxlbmd0aCl7dmFyIG8sYT1uLngwLHM9bi55MCxsPW4ueDEsYz1uLnkxLHU9KGErbCkvMixoPShzK2MpLzI7KG89aVswXSkmJnQucHVzaChuZXcgRW8obyxhLHMsdSxoKSksKG89aVsxXSkmJnQucHVzaChuZXcgRW8obyx1LHMsbCxoKSksKG89aVsyXSkmJnQucHVzaChuZXcgRW8obyxhLGgsdSxjKSksKG89aVszXSkmJnQucHVzaChuZXcgRW8obyx1LGgsbCxjKSl9ci5wdXNoKG4pfWZvcig7bj1yLnBvcCgpOyllKG4ubm9kZSxuLngwLG4ueTAsbi54MSxuLnkxKTtyZXR1cm4gdGhpc312YXIgRFJ0PU0oKCk9Pnt2TygpfSk7ZnVuY3Rpb24gT1J0KGUpe3JldHVybiBlWzBdfWZ1bmN0aW9uIHpSdChlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feD1lLHRoaXMpOnRoaXMuX3h9dmFyIEZSdD1NKCgpPT57fSk7ZnVuY3Rpb24gQlJ0KGUpe3JldHVybiBlWzFdfWZ1bmN0aW9uIEhSdChlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feT1lLHRoaXMpOnRoaXMuX3l9dmFyIFZSdD1NKCgpPT57fSk7ZnVuY3Rpb24geE8oZSx0LHIpe3ZhciBuPW5ldyBRUSh0PT1udWxsP09SdDp0LHI9PW51bGw/QlJ0OnIsTmFOLE5hTixOYU4sTmFOKTtyZXR1cm4gZT09bnVsbD9uOm4uYWRkQWxsKGUpfWZ1bmN0aW9uIFFRKGUsdCxyLG4saSxvKXt0aGlzLl94PWUsdGhpcy5feT10LHRoaXMuX3gwPXIsdGhpcy5feTA9bix0aGlzLl94MT1pLHRoaXMuX3kxPW8sdGhpcy5fcm9vdD12b2lkIDB9ZnVuY3Rpb24gVVJ0KGUpe2Zvcih2YXIgdD17ZGF0YTplLmRhdGF9LHI9dDtlPWUubmV4dDspcj1yLm5leHQ9e2RhdGE6ZS5kYXRhfTtyZXR1cm4gdH12YXIgJGEscVJ0PU0oKCk9PntnUnQoKTt5UnQoKTt4UnQoKTt3UnQoKTtNUnQoKTtDUnQoKTtQUnQoKTtMUnQoKTtSUnQoKTtEUnQoKTtGUnQoKTtWUnQoKTskYT14Ty5wcm90b3R5cGU9UVEucHJvdG90eXBlOyRhLmNvcHk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgUVEodGhpcy5feCx0aGlzLl95LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSx0PXRoaXMuX3Jvb3QscixuO2lmKCF0KXJldHVybiBlO2lmKCF0Lmxlbmd0aClyZXR1cm4gZS5fcm9vdD1VUnQodCksZTtmb3Iocj1be3NvdXJjZTp0LHRhcmdldDplLl9yb290PW5ldyBBcnJheSg0KX1dO3Q9ci5wb3AoKTspZm9yKHZhciBpPTA7aTw0OysraSkobj10LnNvdXJjZVtpXSkmJihuLmxlbmd0aD9yLnB1c2goe3NvdXJjZTpuLHRhcmdldDp0LnRhcmdldFtpXT1uZXcgQXJyYXkoNCl9KTp0LnRhcmdldFtpXT1VUnQobikpO3JldHVybiBlfTskYS5hZGQ9cFJ0OyRhLmFkZEFsbD1tUnQ7JGEuY292ZXI9X1J0OyRhLmRhdGE9dlJ0OyRhLmV4dGVudD1iUnQ7JGEuZmluZD1TUnQ7JGEucmVtb3ZlPUVSdDskYS5yZW1vdmVBbGw9VFJ0OyRhLnJvb3Q9QVJ0OyRhLnNpemU9SVJ0OyRhLnZpc2l0PWtSdDskYS52aXNpdEFmdGVyPU5SdDskYS54PXpSdDskYS55PUhSdH0pO3ZhciBHUnQ9TSgoKT0+e3FSdCgpfSk7dmFyIFdSdCxZUnQ9TSgoKT0+e1dSdD1bXS5zbGljZX0pO2Z1bmN0aW9uIHR0dChlKXt0aGlzLl9zaXplPWUsdGhpcy5fY2FsbD10aGlzLl9lcnJvcj1udWxsLHRoaXMuX3Rhc2tzPVtdLHRoaXMuX2RhdGE9W10sdGhpcy5fd2FpdGluZz10aGlzLl9hY3RpdmU9dGhpcy5fZW5kZWQ9dGhpcy5fc3RhcnQ9MH1mdW5jdGlvbiBqUnQoZSl7aWYoIWUuX3N0YXJ0KXRyeXtiNmUoZSl9Y2F0Y2godCl7aWYoZS5fdGFza3NbZS5fZW5kZWQrZS5fYWN0aXZlLTFdKWV0dChlLHQpO2Vsc2UgaWYoIWUuX2RhdGEpdGhyb3cgdH19ZnVuY3Rpb24gYjZlKGUpe2Zvcig7ZS5fc3RhcnQ9ZS5fd2FpdGluZyYmZS5fYWN0aXZlPGUuX3NpemU7KXt2YXIgdD1lLl9lbmRlZCtlLl9hY3RpdmUscj1lLl90YXNrc1t0XSxuPXIubGVuZ3RoLTEsaT1yW25dO3Jbbl09dzZlKGUsdCksLS1lLl93YWl0aW5nLCsrZS5fYWN0aXZlLHI9aS5hcHBseShudWxsLHIpLGUuX3Rhc2tzW3RdJiYoZS5fdGFza3NbdF09cnx8eDZlKX19ZnVuY3Rpb24gdzZlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHIsbil7IWUuX3Rhc2tzW3RdfHwoLS1lLl9hY3RpdmUsKytlLl9lbmRlZCxlLl90YXNrc1t0XT1udWxsLGUuX2Vycm9yPT1udWxsJiYociE9bnVsbD9ldHQoZSxyKTooZS5fZGF0YVt0XT1uLGUuX3dhaXRpbmc/alJ0KGUpOmJPKGUpKSkpfX1mdW5jdGlvbiBldHQoZSx0KXt2YXIgcj1lLl90YXNrcy5sZW5ndGgsbjtmb3IoZS5fZXJyb3I9dCxlLl9kYXRhPXZvaWQgMCxlLl93YWl0aW5nPU5hTjstLXI+PTA7KWlmKChuPWUuX3Rhc2tzW3JdKSYmKGUuX3Rhc2tzW3JdPW51bGwsbi5hYm9ydCkpdHJ5e24uYWJvcnQoKX1jYXRjaChpKXt9ZS5fYWN0aXZlPU5hTixiTyhlKX1mdW5jdGlvbiBiTyhlKXtpZighZS5fYWN0aXZlJiZlLl9jYWxsKXt2YXIgdD1lLl9kYXRhO2UuX2RhdGE9dm9pZCAwLGUuX2NhbGwoZS5fZXJyb3IsdCl9fWZ1bmN0aW9uIHdPKGUpe2lmKGU9PW51bGwpZT0xLzA7ZWxzZSBpZighKChlPStlKT49MSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNvbmN1cnJlbmN5Iik7cmV0dXJuIG5ldyB0dHQoZSl9dmFyIHg2ZSxYUnQ9TSgoKT0+e1lSdCgpO3g2ZT17fTt0dHQucHJvdG90eXBlPXdPLnByb3RvdHlwZT17Y29uc3RydWN0b3I6dHR0LGRlZmVyOmZ1bmN0aW9uKGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjayIpO2lmKHRoaXMuX2NhbGwpdGhyb3cgbmV3IEVycm9yKCJkZWZlciBhZnRlciBhd2FpdCIpO2lmKHRoaXMuX2Vycm9yIT1udWxsKXJldHVybiB0aGlzO3ZhciB0PVdSdC5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gdC5wdXNoKGUpLCsrdGhpcy5fd2FpdGluZyx0aGlzLl90YXNrcy5wdXNoKHQpLGpSdCh0aGlzKSx0aGlzfSxhYm9ydDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lcnJvcj09bnVsbCYmZXR0KHRoaXMsbmV3IEVycm9yKCJhYm9ydCIpKSx0aGlzfSxhd2FpdDpmdW5jdGlvbihlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2siKTtpZih0aGlzLl9jYWxsKXRocm93IG5ldyBFcnJvcigibXVsdGlwbGUgYXdhaXQiKTtyZXR1cm4gdGhpcy5fY2FsbD1mdW5jdGlvbih0LHIpe2UuYXBwbHkobnVsbCxbdF0uY29uY2F0KHIpKX0sYk8odGhpcyksdGhpc30sYXdhaXRBbGw6ZnVuY3Rpb24oZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrIik7aWYodGhpcy5fY2FsbCl0aHJvdyBuZXcgRXJyb3IoIm11bHRpcGxlIGF3YWl0Iik7cmV0dXJuIHRoaXMuX2NhbGw9ZSxiTyh0aGlzKSx0aGlzfX19KTt2YXIgJFJ0PU0oKCk9PntYUnQoKX0pO2Z1bmN0aW9uIGJjKCl7cmV0dXJuIE1hdGgucmFuZG9tKCl9dmFyIEt5PU0oKCk9Pnt9KTt2YXIgS1J0LFpSdD1NKCgpPT57S3koKTtLUnQ9ZnVuY3Rpb24gZSh0KXtmdW5jdGlvbiByKG4saSl7cmV0dXJuIG49bj09bnVsbD8wOituLGk9aT09bnVsbD8xOitpLGFyZ3VtZW50cy5sZW5ndGg9PT0xPyhpPW4sbj0wKTppLT1uLGZ1bmN0aW9uKCl7cmV0dXJuIHQoKSppK259fXJldHVybiByLnNvdXJjZT1lLHJ9KGJjKX0pO3ZhciBTTyxydHQ9TSgoKT0+e0t5KCk7U089ZnVuY3Rpb24gZSh0KXtmdW5jdGlvbiByKG4saSl7dmFyIG8sYTtyZXR1cm4gbj1uPT1udWxsPzA6K24saT1pPT1udWxsPzE6K2ksZnVuY3Rpb24oKXt2YXIgcztpZihvIT1udWxsKXM9byxvPW51bGw7ZWxzZSBkbyBvPXQoKSoyLTEscz10KCkqMi0xLGE9bypvK3Mqczt3aGlsZSghYXx8YT4xKTtyZXR1cm4gbitpKnMqTWF0aC5zcXJ0KC0yKk1hdGgubG9nKGEpL2EpfX1yZXR1cm4gci5zb3VyY2U9ZSxyfShiYyl9KTt2YXIgSlJ0LFFSdD1NKCgpPT57S3koKTtydHQoKTtKUnQ9ZnVuY3Rpb24gZSh0KXtmdW5jdGlvbiByKCl7dmFyIG49U08uc291cmNlKHQpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5leHAobigpKX19cmV0dXJuIHIuc291cmNlPWUscn0oYmMpfSk7dmFyIE1PLG50dD1NKCgpPT57S3koKTtNTz1mdW5jdGlvbiBlKHQpe2Z1bmN0aW9uIHIobil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBpPTAsbz0wO288bjsrK28paSs9dCgpO3JldHVybiBpfX1yZXR1cm4gci5zb3VyY2U9ZSxyfShiYyl9KTt2YXIgdE50LGVOdD1NKCgpPT57S3koKTtudHQoKTt0TnQ9ZnVuY3Rpb24gZSh0KXtmdW5jdGlvbiByKG4pe3ZhciBpPU1PLnNvdXJjZSh0KShuKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gaSgpL259fXJldHVybiByLnNvdXJjZT1lLHJ9KGJjKX0pO3ZhciByTnQsbk50PU0oKCk9PntLeSgpO3JOdD1mdW5jdGlvbiBlKHQpe2Z1bmN0aW9uIHIobil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuLU1hdGgubG9nKDEtdCgpKS9ufX1yZXR1cm4gci5zb3VyY2U9ZSxyfShiYyl9KTt2YXIgaU50PU0oKCk9PntaUnQoKTtydHQoKTtRUnQoKTtlTnQoKTtudHQoKTtuTnQoKX0pO2Z1bmN0aW9uIEoyKGUsdCl7dmFyIHIsbj14cygiYmVmb3Jlc2VuZCIsInByb2dyZXNzIiwibG9hZCIsImVycm9yIiksaSxvPUppKCksYT1uZXcgWE1MSHR0cFJlcXVlc3Qscz1udWxsLGw9bnVsbCxjLHUsaD0wO3R5cGVvZiBYRG9tYWluUmVxdWVzdCE9InVuZGVmaW5lZCImJiEoIndpdGhDcmVkZW50aWFscyJpbiBhKSYmL14oaHR0cChzKT86KT9cL1wvLy50ZXN0KGUpJiYoYT1uZXcgWERvbWFpblJlcXVlc3QpLCJvbmxvYWQiaW4gYT9hLm9ubG9hZD1hLm9uZXJyb3I9YS5vbnRpbWVvdXQ9ZjphLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbihwKXthLnJlYWR5U3RhdGU+MyYmZihwKX07ZnVuY3Rpb24gZihwKXt2YXIgZD1hLnN0YXR1cyxnO2lmKCFkJiZNNmUoYSl8fGQ+PTIwMCYmZDwzMDB8fGQ9PT0zMDQpe2lmKGMpdHJ5e2c9Yy5jYWxsKHIsYSl9Y2F0Y2goXyl7bi5jYWxsKCJlcnJvciIscixfKTtyZXR1cm59ZWxzZSBnPWE7bi5jYWxsKCJsb2FkIixyLGcpfWVsc2Ugbi5jYWxsKCJlcnJvciIscixwKX1pZihhLm9ucHJvZ3Jlc3M9ZnVuY3Rpb24ocCl7bi5jYWxsKCJwcm9ncmVzcyIscixwKX0scj17aGVhZGVyOmZ1bmN0aW9uKHAsZCl7cmV0dXJuIHA9KHArIiIpLnRvTG93ZXJDYXNlKCksYXJndW1lbnRzLmxlbmd0aDwyP28uZ2V0KHApOihkPT1udWxsP28ucmVtb3ZlKHApOm8uc2V0KHAsZCsiIikscil9LG1pbWVUeXBlOmZ1bmN0aW9uKHApe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXA9PW51bGw/bnVsbDpwKyIiLHIpOml9LHJlc3BvbnNlVHlwZTpmdW5jdGlvbihwKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1wLHIpOnV9LHRpbWVvdXQ6ZnVuY3Rpb24ocCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9K3Ascik6aH0sdXNlcjpmdW5jdGlvbihwKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwxP3M6KHM9cD09bnVsbD9udWxsOnArIiIscil9LHBhc3N3b3JkOmZ1bmN0aW9uKHApe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDE/bDoobD1wPT1udWxsP251bGw6cCsiIixyKX0scmVzcG9uc2U6ZnVuY3Rpb24ocCl7cmV0dXJuIGM9cCxyfSxnZXQ6ZnVuY3Rpb24ocCxkKXtyZXR1cm4gci5zZW5kKCJHRVQiLHAsZCl9LHBvc3Q6ZnVuY3Rpb24ocCxkKXtyZXR1cm4gci5zZW5kKCJQT1NUIixwLGQpfSxzZW5kOmZ1bmN0aW9uKHAsZCxnKXtyZXR1cm4gYS5vcGVuKHAsZSwhMCxzLGwpLGkhPW51bGwmJiFvLmhhcygiYWNjZXB0IikmJm8uc2V0KCJhY2NlcHQiLGkrIiwqLyoiKSxhLnNldFJlcXVlc3RIZWFkZXImJm8uZWFjaChmdW5jdGlvbihfLHkpe2Euc2V0UmVxdWVzdEhlYWRlcih5LF8pfSksaSE9bnVsbCYmYS5vdmVycmlkZU1pbWVUeXBlJiZhLm92ZXJyaWRlTWltZVR5cGUoaSksdSE9bnVsbCYmKGEucmVzcG9uc2VUeXBlPXUpLGg+MCYmKGEudGltZW91dD1oKSxnPT1udWxsJiZ0eXBlb2YgZD09ImZ1bmN0aW9uIiYmKGc9ZCxkPW51bGwpLGchPW51bGwmJmcubGVuZ3RoPT09MSYmKGc9UzZlKGcpKSxnIT1udWxsJiZyLm9uKCJlcnJvciIsZykub24oImxvYWQiLGZ1bmN0aW9uKF8pe2cobnVsbCxfKX0pLG4uY2FsbCgiYmVmb3Jlc2VuZCIscixhKSxhLnNlbmQoZD09bnVsbD9udWxsOmQpLHJ9LGFib3J0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuYWJvcnQoKSxyfSxvbjpmdW5jdGlvbigpe3ZhciBwPW4ub24uYXBwbHkobixhcmd1bWVudHMpO3JldHVybiBwPT09bj9yOnB9fSx0IT1udWxsKXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrdCk7cmV0dXJuIHIuZ2V0KHQpfXJldHVybiByfWZ1bmN0aW9uIFM2ZShlKXtyZXR1cm4gZnVuY3Rpb24odCxyKXtlKHQ9PW51bGw/cjpudWxsKX19ZnVuY3Rpb24gTTZlKGUpe3ZhciB0PWUucmVzcG9uc2VUeXBlO3JldHVybiB0JiZ0IT09InRleHQiP2UucmVzcG9uc2U6ZS5yZXNwb25zZVRleHR9dmFyIEVPPU0oKCk9PntUYigpO1JtKCl9KTtmdW5jdGlvbiBDZyhlLHQpe3JldHVybiBmdW5jdGlvbihyLG4pe3ZhciBpPUoyKHIpLm1pbWVUeXBlKGUpLnJlc3BvbnNlKHQpO2lmKG4hPW51bGwpe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjazogIituKTtyZXR1cm4gaS5nZXQobil9cmV0dXJuIGl9fXZhciBvQz1NKCgpPT57RU8oKX0pO3ZhciBvTnQsYU50PU0oKCk9PntvQygpO29OdD1DZygidGV4dC9odG1sIixmdW5jdGlvbihlKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoZS5yZXNwb25zZVRleHQpfSl9KTt2YXIgc050LGxOdD1NKCgpPT57b0MoKTtzTnQ9Q2coImFwcGxpY2F0aW9uL2pzb24iLGZ1bmN0aW9uKGUpe3JldHVybiBKU09OLnBhcnNlKGUucmVzcG9uc2VUZXh0KX0pfSk7dmFyIGNOdCx1TnQ9TSgoKT0+e29DKCk7Y050PUNnKCJ0ZXh0L3BsYWluIixmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXNwb25zZVRleHR9KX0pO3ZhciBoTnQsZk50PU0oKCk9PntvQygpO2hOdD1DZygiYXBwbGljYXRpb24veG1sIixmdW5jdGlvbihlKXt2YXIgdD1lLnJlc3BvbnNlWE1MO2lmKCF0KXRocm93IG5ldyBFcnJvcigicGFyc2UgZXJyb3IiKTtyZXR1cm4gdH0pfSk7ZnVuY3Rpb24gVE8oZSx0KXtyZXR1cm4gZnVuY3Rpb24ocixuLGkpe2FyZ3VtZW50cy5sZW5ndGg8MyYmKGk9bixuPW51bGwpO3ZhciBvPUoyKHIpLm1pbWVUeXBlKGUpO3JldHVybiBvLnJvdz1mdW5jdGlvbihhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9vLnJlc3BvbnNlKEU2ZSh0LG49YSkpOm59LG8ucm93KG4pLGk/by5nZXQoaSk6b319ZnVuY3Rpb24gRTZlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBlKHIucmVzcG9uc2VUZXh0LHQpfX12YXIgaXR0PU0oKCk9PntFTygpfSk7dmFyIHBOdCxkTnQ9TSgoKT0+e3FFKCk7aXR0KCk7cE50PVRPKCJ0ZXh0L2NzdiIsQ2IpfSk7dmFyIG1OdCxnTnQ9TSgoKT0+e3FFKCk7aXR0KCk7bU50PVRPKCJ0ZXh0L3RhYi1zZXBhcmF0ZWQtdmFsdWVzIixBYil9KTt2YXIgX050PU0oKCk9PntFTygpO2FOdCgpO2xOdCgpO3VOdCgpO2ZOdCgpO2ROdCgpO2dOdCgpfSk7ZnVuY3Rpb24gZGYoZSx0KXtyZXR1cm4gZTx0Py0xOmU+dD8xOmU+PXQ/MDpOYU59dmFyIFp5PU0oKCk9Pnt9KTtmdW5jdGlvbiBhQyhlKXtyZXR1cm4gZS5sZW5ndGg9PT0xJiYoZT1UNmUoZSkpLHtsZWZ0OmZ1bmN0aW9uKHQscixuLGkpe2ZvcihuPT1udWxsJiYobj0wKSxpPT1udWxsJiYoaT10Lmxlbmd0aCk7bjxpOyl7dmFyIG89bitpPj4+MTtlKHRbb10scik8MD9uPW8rMTppPW99cmV0dXJuIG59LHJpZ2h0OmZ1bmN0aW9uKHQscixuLGkpe2ZvcihuPT1udWxsJiYobj0wKSxpPT1udWxsJiYoaT10Lmxlbmd0aCk7bjxpOyl7dmFyIG89bitpPj4+MTtlKHRbb10scik+MD9pPW86bj1vKzF9cmV0dXJuIG59fX1mdW5jdGlvbiBUNmUoZSl7cmV0dXJuIGZ1bmN0aW9uKHQscil7cmV0dXJuIGRmKGUodCkscil9fXZhciBvdHQ9TSgoKT0+e1p5KCl9KTt2YXIgeU50LHZOdCxDNmUsbWYsYXR0PU0oKCk9PntaeSgpO290dCgpO3lOdD1hQyhkZiksdk50PXlOdC5yaWdodCxDNmU9eU50LmxlZnQsbWY9dk50fSk7dmFyIHN0dD1NKCgpPT57fSk7dmFyIHhOdD1NKCgpPT57c3R0KCl9KTt2YXIgYk50PU0oKCk9Pnt9KTtmdW5jdGlvbiBRMihlKXtyZXR1cm4gZT09PW51bGw/TmFOOitlfXZhciB0dz1NKCgpPT57fSk7dmFyIGx0dD1NKCgpPT57dHcoKX0pO3ZhciBjdHQ9TSgoKT0+e2x0dCgpfSk7dmFyIHV0dD1NKCgpPT57fSk7dmFyIHdOdCxQNmUsSTZlLGh0dD1NKCgpPT57d050PUFycmF5LnByb3RvdHlwZSxQNmU9d050LnNsaWNlLEk2ZT13TnQubWFwfSk7dmFyIFNOdD1NKCgpPT57fSk7dmFyIE1OdD1NKCgpPT57fSk7ZnVuY3Rpb24gQ08oZSx0LHIpe2U9K2UsdD0rdCxyPShpPWFyZ3VtZW50cy5sZW5ndGgpPDI/KHQ9ZSxlPTAsMSk6aTwzPzE6K3I7Zm9yKHZhciBuPS0xLGk9TWF0aC5tYXgoMCxNYXRoLmNlaWwoKHQtZSkvcikpfDAsbz1uZXcgQXJyYXkoaSk7KytuPGk7KW9bbl09ZStuKnI7cmV0dXJuIG99dmFyIGZ0dD1NKCgpPT57fSk7ZnVuY3Rpb24gc0MoZSx0LHIpe3ZhciBuLGk9LTEsbyxhLHM7aWYodD0rdCxlPStlLHI9K3IsZT09PXQmJnI+MClyZXR1cm5bZV07aWYoKG49dDxlKSYmKG89ZSxlPXQsdD1vKSwocz1ldyhlLHQscikpPT09MHx8IWlzRmluaXRlKHMpKXJldHVybltdO2lmKHM+MClmb3IoZT1NYXRoLmNlaWwoZS9zKSx0PU1hdGguZmxvb3IodC9zKSxhPW5ldyBBcnJheShvPU1hdGguY2VpbCh0LWUrMSkpOysraTxvOylhW2ldPShlK2kpKnM7ZWxzZSBmb3IoZT1NYXRoLmZsb29yKGUqcyksdD1NYXRoLmNlaWwodCpzKSxhPW5ldyBBcnJheShvPU1hdGguY2VpbChlLXQrMSkpOysraTxvOylhW2ldPShlLWkpL3M7cmV0dXJuIG4mJmEucmV2ZXJzZSgpLGF9ZnVuY3Rpb24gZXcoZSx0LHIpe3ZhciBuPSh0LWUpL01hdGgubWF4KDAsciksaT1NYXRoLmZsb29yKE1hdGgubG9nKG4pL01hdGguTE4xMCksbz1uL01hdGgucG93KDEwLGkpO3JldHVybiBpPj0wPyhvPj1wdHQ/MTA6bz49ZHR0PzU6bz49bXR0PzI6MSkqTWF0aC5wb3coMTAsaSk6LU1hdGgucG93KDEwLC1pKS8obz49cHR0PzEwOm8+PWR0dD81Om8+PW10dD8yOjEpfWZ1bmN0aW9uIEp5KGUsdCxyKXt2YXIgbj1NYXRoLmFicyh0LWUpL01hdGgubWF4KDAsciksaT1NYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubG9nKG4pL01hdGguTE4xMCkpLG89bi9pO3JldHVybiBvPj1wdHQ/aSo9MTA6bz49ZHR0P2kqPTU6bz49bXR0JiYoaSo9MiksdDxlPy1pOml9dmFyIHB0dCxkdHQsbXR0LGd0dD1NKCgpPT57cHR0PU1hdGguc3FydCg1MCksZHR0PU1hdGguc3FydCgxMCksbXR0PU1hdGguc3FydCgyKX0pO3ZhciBfdHQ9TSgoKT0+e30pO3ZhciBFTnQ9TSgoKT0+e2h0dCgpO2F0dCgpO1NOdCgpO3V0dCgpO01OdCgpO2Z0dCgpO2d0dCgpO190dCgpfSk7ZnVuY3Rpb24gbEMoZSx0LHIpe2lmKHI9PW51bGwmJihyPVEyKSwhIShuPWUubGVuZ3RoKSl7aWYoKHQ9K3QpPD0wfHxuPDIpcmV0dXJuK3IoZVswXSwwLGUpO2lmKHQ+PTEpcmV0dXJuK3IoZVtuLTFdLG4tMSxlKTt2YXIgbixpPShuLTEpKnQsbz1NYXRoLmZsb29yKGkpLGE9K3IoZVtvXSxvLGUpLHM9K3IoZVtvKzFdLG8rMSxlKTtyZXR1cm4gYSsocy1hKSooaS1vKX19dmFyIEFPPU0oKCk9Pnt0dygpfSk7dmFyIFROdD1NKCgpPT57aHR0KCk7WnkoKTt0dygpO0FPKCl9KTt2YXIgQ050PU0oKCk9PntjdHQoKX0pO3ZhciBBTnQ9TSgoKT0+e30pO3ZhciBQTnQ9TSgoKT0+e3R3KCl9KTt2YXIgSU50PU0oKCk9PntaeSgpO3R3KCk7QU8oKX0pO3ZhciBMTnQ9TSgoKT0+e30pO3ZhciB5dHQ9TSgoKT0+e30pO3ZhciBrTnQ9TSgoKT0+e30pO3ZhciBSTnQ9TSgoKT0+e1p5KCl9KTt2YXIgTk50PU0oKCk9Pnt9KTt2YXIgRE50PU0oKCk9Pnt9KTt2YXIgdnR0PU0oKCk9Pnt5dHQoKX0pO3ZhciBPTnQ9TSgoKT0+e3Z0dCgpfSk7dmFyIGdmPU0oKCk9PnthdHQoKTtaeSgpO290dCgpO3hOdCgpO2JOdCgpO2N0dCgpO3V0dCgpO0VOdCgpO1ROdCgpO0NOdCgpO190dCgpO0FOdCgpO1BOdCgpO0lOdCgpO0xOdCgpO3l0dCgpO3N0dCgpO2tOdCgpO0FPKCk7ZnR0KCk7Uk50KCk7Tk50KCk7RE50KCk7Z3R0KCk7dnR0KCk7bHR0KCk7T050KCl9KTtmdW5jdGlvbiBQTygpe31mdW5jdGlvbiB6TnQoZSx0KXt2YXIgcj1uZXcgUE87aWYoZSBpbnN0YW5jZW9mIFBPKWUuZWFjaChmdW5jdGlvbihzLGwpe3Iuc2V0KGwscyl9KTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpe3ZhciBuPS0xLGk9ZS5sZW5ndGgsbztpZih0PT1udWxsKWZvcig7KytuPGk7KXIuc2V0KG4sZVtuXSk7ZWxzZSBmb3IoOysrbjxpOylyLnNldCh0KG89ZVtuXSxuLGUpLG8pfWVsc2UgaWYoZSlmb3IodmFyIGEgaW4gZSlyLnNldChhLGVbYV0pO3JldHVybiByfXZhciBwbCxReSxJTz1NKCgpPT57cGw9IiQiO1BPLnByb3RvdHlwZT16TnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpQTyxoYXM6ZnVuY3Rpb24oZSl7cmV0dXJuIHBsK2UgaW4gdGhpc30sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzW3BsK2VdfSxzZXQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpc1twbCtlXT10LHRoaXN9LHJlbW92ZTpmdW5jdGlvbihlKXt2YXIgdD1wbCtlO3JldHVybiB0IGluIHRoaXMmJmRlbGV0ZSB0aGlzW3RdfSxjbGVhcjpmdW5jdGlvbigpe2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1wbCYmZGVsZXRlIHRoaXNbZV19LGtleXM6ZnVuY3Rpb24oKXt2YXIgZT1bXTtmb3IodmFyIHQgaW4gdGhpcyl0WzBdPT09cGwmJmUucHVzaCh0LnNsaWNlKDEpKTtyZXR1cm4gZX0sdmFsdWVzOmZ1bmN0aW9uKCl7dmFyIGU9W107Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PXBsJiZlLnB1c2godGhpc1t0XSk7cmV0dXJuIGV9LGVudHJpZXM6ZnVuY3Rpb24oKXt2YXIgZT1bXTtmb3IodmFyIHQgaW4gdGhpcyl0WzBdPT09cGwmJmUucHVzaCh7a2V5OnQuc2xpY2UoMSksdmFsdWU6dGhpc1t0XX0pO3JldHVybiBlfSxzaXplOmZ1bmN0aW9uKCl7dmFyIGU9MDtmb3IodmFyIHQgaW4gdGhpcyl0WzBdPT09cGwmJisrZTtyZXR1cm4gZX0sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIGUgaW4gdGhpcylpZihlWzBdPT09cGwpcmV0dXJuITE7cmV0dXJuITB9LGVhY2g6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PXBsJiZlKHRoaXNbdF0sdC5zbGljZSgxKSx0aGlzKX19O1F5PXpOdH0pO3ZhciBGTnQ9TSgoKT0+e0lPKCl9KTtmdW5jdGlvbiBMTygpe31mdW5jdGlvbiBPNmUoZSx0KXt2YXIgcj1uZXcgTE87aWYoZSBpbnN0YW5jZW9mIExPKWUuZWFjaChmdW5jdGlvbihvKXtyLmFkZChvKX0pO2Vsc2UgaWYoZSl7dmFyIG49LTEsaT1lLmxlbmd0aDtpZih0PT1udWxsKWZvcig7KytuPGk7KXIuYWRkKGVbbl0pO2Vsc2UgZm9yKDsrK248aTspci5hZGQodChlW25dLG4sZSkpfXJldHVybiByfXZhciB0dixCTnQ9TSgoKT0+e0lPKCk7dHY9UXkucHJvdG90eXBlO0xPLnByb3RvdHlwZT1PNmUucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpMTyxoYXM6dHYuaGFzLGFkZDpmdW5jdGlvbihlKXtyZXR1cm4gZSs9IiIsdGhpc1twbCtlXT1lLHRoaXN9LHJlbW92ZTp0di5yZW1vdmUsY2xlYXI6dHYuY2xlYXIsdmFsdWVzOnR2LmtleXMsc2l6ZTp0di5zaXplLGVtcHR5OnR2LmVtcHR5LGVhY2g6dHYuZWFjaH19KTt2YXIgSE50PU0oKCk9Pnt9KTt2YXIgVk50PU0oKCk9Pnt9KTt2YXIgVU50PU0oKCk9Pnt9KTt2YXIgcU50PU0oKCk9PntGTnQoKTtCTnQoKTtJTygpO0hOdCgpO1ZOdCgpO1VOdCgpfSk7dmFyIEdOdCxydyxkbCxBZz1NKCgpPT57R050PUFycmF5LnByb3RvdHlwZSxydz1HTnQubWFwLGRsPUdOdC5zbGljZX0pO2Z1bmN0aW9uIG53KGUpe3ZhciB0PVF5KCkscj1bXSxuPWtPO2U9ZT09bnVsbD9bXTpkbC5jYWxsKGUpO2Z1bmN0aW9uIGkobyl7dmFyIGE9bysiIixzPXQuZ2V0KGEpO2lmKCFzKXtpZihuIT09a08pcmV0dXJuIG47dC5zZXQoYSxzPXIucHVzaChvKSl9cmV0dXJuIGVbKHMtMSklZS5sZW5ndGhdfXJldHVybiBpLmRvbWFpbj1mdW5jdGlvbihvKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gci5zbGljZSgpO3I9W10sdD1ReSgpO2Zvcih2YXIgYT0tMSxzPW8ubGVuZ3RoLGwsYzsrK2E8czspdC5oYXMoYz0obD1vW2FdKSsiIil8fHQuc2V0KGMsci5wdXNoKGwpKTtyZXR1cm4gaX0saS5yYW5nZT1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1kbC5jYWxsKG8pLGkpOmUuc2xpY2UoKX0saS51bmtub3duPWZ1bmN0aW9uKG8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW8saSk6bn0saS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIG53KCkuZG9tYWluKHIpLnJhbmdlKGUpLnVua25vd24obil9LGl9dmFyIGtPLHh0dD1NKCgpPT57cU50KCk7QWcoKTtrTz17bmFtZToiaW1wbGljaXQifX0pO2Z1bmN0aW9uIGNDKCl7dmFyIGU9bncoKS51bmtub3duKHZvaWQgMCksdD1lLmRvbWFpbixyPWUucmFuZ2Usbj1bMCwxXSxpLG8sYT0hMSxzPTAsbD0wLGM9LjU7ZGVsZXRlIGUudW5rbm93bjtmdW5jdGlvbiB1KCl7dmFyIGg9dCgpLmxlbmd0aCxmPW5bMV08blswXSxwPW5bZi0wXSxkPW5bMS1mXTtpPShkLXApL01hdGgubWF4KDEsaC1zK2wqMiksYSYmKGk9TWF0aC5mbG9vcihpKSkscCs9KGQtcC1pKihoLXMpKSpjLG89aSooMS1zKSxhJiYocD1NYXRoLnJvdW5kKHApLG89TWF0aC5yb3VuZChvKSk7dmFyIGc9Q08oaCkubWFwKGZ1bmN0aW9uKF8pe3JldHVybiBwK2kqX30pO3JldHVybiByKGY/Zy5yZXZlcnNlKCk6Zyl9cmV0dXJuIGUuZG9tYWluPWZ1bmN0aW9uKGgpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0KGgpLHUoKSk6dCgpfSxlLnJhbmdlPWZ1bmN0aW9uKGgpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVsraFswXSwraFsxXV0sdSgpKTpuLnNsaWNlKCl9LGUucmFuZ2VSb3VuZD1mdW5jdGlvbihoKXtyZXR1cm4gbj1bK2hbMF0sK2hbMV1dLGE9ITAsdSgpfSxlLmJhbmR3aWR0aD1mdW5jdGlvbigpe3JldHVybiBvfSxlLnN0ZXA9ZnVuY3Rpb24oKXtyZXR1cm4gaX0sZS5yb3VuZD1mdW5jdGlvbihoKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0hIWgsdSgpKTphfSxlLnBhZGRpbmc9ZnVuY3Rpb24oaCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9bD1NYXRoLm1heCgwLE1hdGgubWluKDEsaCkpLHUoKSk6c30sZS5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24oaCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9TWF0aC5tYXgoMCxNYXRoLm1pbigxLGgpKSx1KCkpOnN9LGUucGFkZGluZ091dGVyPWZ1bmN0aW9uKGgpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPU1hdGgubWF4KDAsTWF0aC5taW4oMSxoKSksdSgpKTpsfSxlLmFsaWduPWZ1bmN0aW9uKGgpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPU1hdGgubWF4KDAsTWF0aC5taW4oMSxoKSksdSgpKTpjfSxlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gY0MoKS5kb21haW4odCgpKS5yYW5nZShuKS5yb3VuZChhKS5wYWRkaW5nSW5uZXIocykucGFkZGluZ091dGVyKGwpLmFsaWduKGMpfSx1KCl9ZnVuY3Rpb24gV050KGUpe3ZhciB0PWUuY29weTtyZXR1cm4gZS5wYWRkaW5nPWUucGFkZGluZ091dGVyLGRlbGV0ZSBlLnBhZGRpbmdJbm5lcixkZWxldGUgZS5wYWRkaW5nT3V0ZXIsZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIFdOdCh0KCkpfSxlfWZ1bmN0aW9uIFlOdCgpe3JldHVybiBXTnQoY0MoKS5wYWRkaW5nSW5uZXIoMSkpfXZhciBqTnQ9TSgoKT0+e2dmKCk7eHR0KCl9KTtmdW5jdGlvbiBpdyhlLHQscil7ZS5wcm90b3R5cGU9dC5wcm90b3R5cGU9cixyLmNvbnN0cnVjdG9yPWV9ZnVuY3Rpb24gdUMoZSx0KXt2YXIgcj1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKTtmb3IodmFyIG4gaW4gdClyW25dPXRbbl07cmV0dXJuIHJ9dmFyIGJ0dD1NKCgpPT57fSk7ZnVuY3Rpb24gcnYoKXt9ZnVuY3Rpb24gJE50KCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4KCl9ZnVuY3Rpb24gRzZlKCl7cmV0dXJuIGVEdCh0aGlzKS5mb3JtYXRIc2woKX1mdW5jdGlvbiBLTnQoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRSZ2IoKX1mdW5jdGlvbiBJZyhlKXt2YXIgdCxyO3JldHVybiBlPShlKyIiKS50cmltKCkudG9Mb3dlckNhc2UoKSwodD16NmUuZXhlYyhlKSk/KHI9dFsxXS5sZW5ndGgsdD1wYXJzZUludCh0WzFdLDE2KSxyPT09Nj9aTnQodCk6cj09PTM/bmV3IGZhKHQ+PjgmMTV8dD4+NCYyNDAsdD4+NCYxNXx0JjI0MCwodCYxNSk8PDR8dCYxNSwxKTpyPT09OD9STyh0Pj4yNCYyNTUsdD4+MTYmMjU1LHQ+PjgmMjU1LCh0JjI1NSkvMjU1KTpyPT09ND9STyh0Pj4xMiYxNXx0Pj44JjI0MCx0Pj44JjE1fHQ+PjQmMjQwLHQ+PjQmMTV8dCYyNDAsKCh0JjE1KTw8NHx0JjE1KS8yNTUpOm51bGwpOih0PUY2ZS5leGVjKGUpKT9uZXcgZmEodFsxXSx0WzJdLHRbM10sMSk6KHQ9QjZlLmV4ZWMoZSkpP25ldyBmYSh0WzFdKjI1NS8xMDAsdFsyXSoyNTUvMTAwLHRbM10qMjU1LzEwMCwxKToodD1INmUuZXhlYyhlKSk/Uk8odFsxXSx0WzJdLHRbM10sdFs0XSk6KHQ9VjZlLmV4ZWMoZSkpP1JPKHRbMV0qMjU1LzEwMCx0WzJdKjI1NS8xMDAsdFszXSoyNTUvMTAwLHRbNF0pOih0PVU2ZS5leGVjKGUpKT90RHQodFsxXSx0WzJdLzEwMCx0WzNdLzEwMCwxKToodD1xNmUuZXhlYyhlKSk/dER0KHRbMV0sdFsyXS8xMDAsdFszXS8xMDAsdFs0XSk6WE50Lmhhc093blByb3BlcnR5KGUpP1pOdChYTnRbZV0pOmU9PT0idHJhbnNwYXJlbnQiP25ldyBmYShOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIFpOdChlKXtyZXR1cm4gbmV3IGZhKGU+PjE2JjI1NSxlPj44JjI1NSxlJjI1NSwxKX1mdW5jdGlvbiBSTyhlLHQscixuKXtyZXR1cm4gbjw9MCYmKGU9dD1yPU5hTiksbmV3IGZhKGUsdCxyLG4pfWZ1bmN0aW9uIE10dChlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHJ2fHwoZT1JZyhlKSksZT8oZT1lLnJnYigpLG5ldyBmYShlLnIsZS5nLGUuYixlLm9wYWNpdHkpKTpuZXcgZmF9ZnVuY3Rpb24gYXcoZSx0LHIsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP010dChlKTpuZXcgZmEoZSx0LHIsbj09bnVsbD8xOm4pfWZ1bmN0aW9uIGZhKGUsdCxyLG4pe3RoaXMucj0rZSx0aGlzLmc9K3QsdGhpcy5iPStyLHRoaXMub3BhY2l0eT0rbn1mdW5jdGlvbiBKTnQoKXtyZXR1cm4iIyIrd3R0KHRoaXMucikrd3R0KHRoaXMuZykrd3R0KHRoaXMuYil9ZnVuY3Rpb24gUU50KCl7dmFyIGU9dGhpcy5vcGFjaXR5O3JldHVybiBlPWlzTmFOKGUpPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLGUpKSwoZT09PTE/InJnYigiOiJyZ2JhKCIpK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5yKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmcpfHwwKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuYil8fDApKSsoZT09PTE/IikiOiIsICIrZSsiKSIpfWZ1bmN0aW9uIHd0dChlKXtyZXR1cm4gZT1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKGUpfHwwKSksKGU8MTY/IjAiOiIiKStlLnRvU3RyaW5nKDE2KX1mdW5jdGlvbiB0RHQoZSx0LHIsbil7cmV0dXJuIG48PTA/ZT10PXI9TmFOOnI8PTB8fHI+PTE/ZT10PU5hTjp0PD0wJiYoZT1OYU4pLG5ldyBfZihlLHQscixuKX1mdW5jdGlvbiBlRHQoZSl7aWYoZSBpbnN0YW5jZW9mIF9mKXJldHVybiBuZXcgX2YoZS5oLGUucyxlLmwsZS5vcGFjaXR5KTtpZihlIGluc3RhbmNlb2YgcnZ8fChlPUlnKGUpKSwhZSlyZXR1cm4gbmV3IF9mO2lmKGUgaW5zdGFuY2VvZiBfZilyZXR1cm4gZTtlPWUucmdiKCk7dmFyIHQ9ZS5yLzI1NSxyPWUuZy8yNTUsbj1lLmIvMjU1LGk9TWF0aC5taW4odCxyLG4pLG89TWF0aC5tYXgodCxyLG4pLGE9TmFOLHM9by1pLGw9KG8raSkvMjtyZXR1cm4gcz8odD09PW8/YT0oci1uKS9zKyhyPG4pKjY6cj09PW8/YT0obi10KS9zKzI6YT0odC1yKS9zKzQscy89bDwuNT9vK2k6Mi1vLWksYSo9NjApOnM9bD4wJiZsPDE/MDphLG5ldyBfZihhLHMsbCxlLm9wYWNpdHkpfWZ1bmN0aW9uIHJEdChlLHQscixuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/ZUR0KGUpOm5ldyBfZihlLHQscixuPT1udWxsPzE6bil9ZnVuY3Rpb24gX2YoZSx0LHIsbil7dGhpcy5oPStlLHRoaXMucz0rdCx0aGlzLmw9K3IsdGhpcy5vcGFjaXR5PStufWZ1bmN0aW9uIFN0dChlLHQscil7cmV0dXJuKGU8NjA/dCsoci10KSplLzYwOmU8MTgwP3I6ZTwyNDA/dCsoci10KSooMjQwLWUpLzYwOnQpKjI1NX12YXIgUGcsZXYsb3csaEMseWYsejZlLEY2ZSxCNmUsSDZlLFY2ZSxVNmUscTZlLFhOdCxFdHQ9TSgoKT0+e2J0dCgpO1BnPS43LGV2PTEvUGcsb3c9IlxccyooWystXT9cXGQrKVxccyoiLGhDPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLHlmPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIix6NmU9L14jKFswLTlhLWZdezMsOH0pJC8sRjZlPW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1tvdyxvdyxvd10rIlxcKSQiKSxCNmU9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW3lmLHlmLHlmXSsiXFwpJCIpLEg2ZT1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW293LG93LG93LGhDXSsiXFwpJCIpLFY2ZT1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW3lmLHlmLHlmLGhDXSsiXFwpJCIpLFU2ZT1uZXcgUmVnRXhwKCJeaHNsXFwoIitbaEMseWYseWZdKyJcXCkkIikscTZlPW5ldyBSZWdFeHAoIl5oc2xhXFwoIitbaEMseWYseWYsaENdKyJcXCkkIiksWE50PXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9O2l3KHJ2LElnLHtjb3B5OmZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuYXNzaWduKG5ldyB0aGlzLmNvbnN0cnVjdG9yLHRoaXMsZSl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKX0saGV4OiROdCxmb3JtYXRIZXg6JE50LGZvcm1hdEhzbDpHNmUsZm9ybWF0UmdiOktOdCx0b1N0cmluZzpLTnR9KTtpdyhmYSxhdyx1Qyhydix7YnJpZ2h0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZT09bnVsbD9ldjpNYXRoLnBvdyhldixlKSxuZXcgZmEodGhpcy5yKmUsdGhpcy5nKmUsdGhpcy5iKmUsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/UGc6TWF0aC5wb3coUGcsZSksbmV3IGZhKHRoaXMuciplLHRoaXMuZyplLHRoaXMuYiplLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6Sk50LGZvcm1hdEhleDpKTnQsZm9ybWF0UmdiOlFOdCx0b1N0cmluZzpRTnR9KSk7aXcoX2YsckR0LHVDKHJ2LHticmlnaHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT1lPT1udWxsP2V2Ok1hdGgucG93KGV2LGUpLG5ldyBfZih0aGlzLmgsdGhpcy5zLHRoaXMubCplLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT1lPT1udWxsP1BnOk1hdGgucG93KFBnLGUpLG5ldyBfZih0aGlzLmgsdGhpcy5zLHRoaXMubCplLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuaCUzNjArKHRoaXMuaDwwKSozNjAsdD1pc05hTihlKXx8aXNOYU4odGhpcy5zKT8wOnRoaXMucyxyPXRoaXMubCxuPXIrKHI8LjU/cjoxLXIpKnQsaT0yKnItbjtyZXR1cm4gbmV3IGZhKFN0dChlPj0yNDA/ZS0yNDA6ZSsxMjAsaSxuKSxTdHQoZSxpLG4pLFN0dChlPDEyMD9lKzI0MDplLTEyMCxpLG4pLHRoaXMub3BhY2l0eSl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuKDA8PXRoaXMucyYmdGhpcy5zPD0xfHxpc05hTih0aGlzLnMpKSYmMDw9dGhpcy5sJiZ0aGlzLmw8PTEmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxmb3JtYXRIc2w6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wYWNpdHk7cmV0dXJuIGU9aXNOYU4oZSk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsZSkpLChlPT09MT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisodGhpcy5zfHwwKSoxMDArIiUsICIrKHRoaXMubHx8MCkqMTAwKyIlIisoZT09PTE/IikiOiIsICIrZSsiKSIpfX0pKX0pO3ZhciBuRHQsaUR0LG9EdD1NKCgpPT57bkR0PU1hdGguUEkvMTgwLGlEdD0xODAvTWF0aC5QSX0pO2Z1bmN0aW9uIFc2ZShlKXtpZihlIGluc3RhbmNlb2YgbnYpcmV0dXJuIG5ldyBudihlLmgsZS5zLGUubCxlLm9wYWNpdHkpO2UgaW5zdGFuY2VvZiBmYXx8KGU9TXR0KGUpKTt2YXIgdD1lLnIvMjU1LHI9ZS5nLzI1NSxuPWUuYi8yNTUsaT0obER0Km4rYUR0KnQtc0R0KnIpLyhsRHQrYUR0LXNEdCksbz1uLWksYT0oZkMqKHItaSktQ3R0Km8pL05PLHM9TWF0aC5zcXJ0KGEqYStvKm8pLyhmQyppKigxLWkpKSxsPXM/TWF0aC5hdGFuMihhLG8pKmlEdC0xMjA6TmFOO3JldHVybiBuZXcgbnYobDwwP2wrMzYwOmwscyxpLGUub3BhY2l0eSl9ZnVuY3Rpb24gS2EoZSx0LHIsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP1c2ZShlKTpuZXcgbnYoZSx0LHIsbj09bnVsbD8xOm4pfWZ1bmN0aW9uIG52KGUsdCxyLG4pe3RoaXMuaD0rZSx0aGlzLnM9K3QsdGhpcy5sPStyLHRoaXMub3BhY2l0eT0rbn12YXIgY0R0LFR0dCxDdHQsTk8sZkMsYUR0LHNEdCxsRHQsdUR0PU0oKCk9PntidHQoKTtFdHQoKTtvRHQoKTtjRHQ9LS4xNDg2MSxUdHQ9MS43ODI3NyxDdHQ9LS4yOTIyNyxOTz0tLjkwNjQ5LGZDPTEuOTcyOTQsYUR0PWZDKk5PLHNEdD1mQypUdHQsbER0PVR0dCpDdHQtTk8qY0R0O2l3KG52LEthLHVDKHJ2LHticmlnaHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT1lPT1udWxsP2V2Ok1hdGgucG93KGV2LGUpLG5ldyBudih0aGlzLmgsdGhpcy5zLHRoaXMubCplLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT1lPT1udWxsP1BnOk1hdGgucG93KFBnLGUpLG5ldyBudih0aGlzLmgsdGhpcy5zLHRoaXMubCplLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciBlPWlzTmFOKHRoaXMuaCk/MDoodGhpcy5oKzEyMCkqbkR0LHQ9K3RoaXMubCxyPWlzTmFOKHRoaXMucyk/MDp0aGlzLnMqdCooMS10KSxuPU1hdGguY29zKGUpLGk9TWF0aC5zaW4oZSk7cmV0dXJuIG5ldyBmYSgyNTUqKHQrciooY0R0Km4rVHR0KmkpKSwyNTUqKHQrciooQ3R0Km4rTk8qaSkpLDI1NSoodCtyKihmQypuKSksdGhpcy5vcGFjaXR5KX19KSl9KTt2YXIgc3c9TSgoKT0+e0V0dCgpO3VEdCgpfSk7ZnVuY3Rpb24gQXR0KGUsdCxyLG4saSl7dmFyIG89ZSplLGE9byplO3JldHVybigoMS0zKmUrMypvLWEpKnQrKDQtNipvKzMqYSkqcisoMSszKmUrMypvLTMqYSkqbithKmkpLzZ9ZnVuY3Rpb24gaER0KGUpe3ZhciB0PWUubGVuZ3RoLTE7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBuPXI8PTA/cj0wOnI+PTE/KHI9MSx0LTEpOk1hdGguZmxvb3Iocip0KSxpPWVbbl0sbz1lW24rMV0sYT1uPjA/ZVtuLTFdOjIqaS1vLHM9bjx0LTE/ZVtuKzJdOjIqby1pO3JldHVybiBBdHQoKHItbi90KSp0LGEsaSxvLHMpfX12YXIgUHR0PU0oKCk9Pnt9KTtmdW5jdGlvbiBmRHQoZSl7dmFyIHQ9ZS5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBuPU1hdGguZmxvb3IoKChyJT0xKTwwPysrcjpyKSp0KSxpPWVbKG4rdC0xKSV0XSxvPWVbbiV0XSxhPWVbKG4rMSkldF0scz1lWyhuKzIpJXRdO3JldHVybiBBdHQoKHItbi90KSp0LGksbyxhLHMpfX12YXIgcER0PU0oKCk9PntQdHQoKX0pO2Z1bmN0aW9uIGx3KGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX12YXIgSXR0PU0oKCk9Pnt9KTtmdW5jdGlvbiBkRHQoZSx0KXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIGUrcip0fX1mdW5jdGlvbiBZNmUoZSx0LHIpe3JldHVybiBlPU1hdGgucG93KGUsciksdD1NYXRoLnBvdyh0LHIpLWUscj0xL3IsZnVuY3Rpb24obil7cmV0dXJuIE1hdGgucG93KGUrbip0LHIpfX1mdW5jdGlvbiBtRHQoZSx0KXt2YXIgcj10LWU7cmV0dXJuIHI/ZER0KGUscj4xODB8fHI8LTE4MD9yLTM2MCpNYXRoLnJvdW5kKHIvMzYwKTpyKTpsdyhpc05hTihlKT90OmUpfWZ1bmN0aW9uIGdEdChlKXtyZXR1cm4oZT0rZSk9PTE/aWQ6ZnVuY3Rpb24odCxyKXtyZXR1cm4gci10P1k2ZSh0LHIsZSk6bHcoaXNOYU4odCk/cjp0KX19ZnVuY3Rpb24gaWQoZSx0KXt2YXIgcj10LWU7cmV0dXJuIHI/ZER0KGUscik6bHcoaXNOYU4oZSk/dDplKX12YXIgTHR0PU0oKCk9PntJdHQoKX0pO2Z1bmN0aW9uIF9EdChlKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIHI9dC5sZW5ndGgsbj1uZXcgQXJyYXkociksaT1uZXcgQXJyYXkociksbz1uZXcgQXJyYXkociksYSxzO2ZvcihhPTA7YTxyOysrYSlzPWF3KHRbYV0pLG5bYV09cy5yfHwwLGlbYV09cy5nfHwwLG9bYV09cy5ifHwwO3JldHVybiBuPWUobiksaT1lKGkpLG89ZShvKSxzLm9wYWNpdHk9MSxmdW5jdGlvbihsKXtyZXR1cm4gcy5yPW4obCkscy5nPWkobCkscy5iPW8obCkscysiIn19fXZhciBrdHQsXzVuLHk1bix5RHQ9TSgoKT0+e3N3KCk7UHR0KCk7cER0KCk7THR0KCk7a3R0PWZ1bmN0aW9uIGUodCl7dmFyIHI9Z0R0KHQpO2Z1bmN0aW9uIG4oaSxvKXt2YXIgYT1yKChpPWF3KGkpKS5yLChvPWF3KG8pKS5yKSxzPXIoaS5nLG8uZyksbD1yKGkuYixvLmIpLGM9aWQoaS5vcGFjaXR5LG8ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHUpe3JldHVybiBpLnI9YSh1KSxpLmc9cyh1KSxpLmI9bCh1KSxpLm9wYWNpdHk9Yyh1KSxpKyIifX1yZXR1cm4gbi5nYW1tYT1lLG59KDEpO181bj1fRHQoaER0KSx5NW49X0R0KGZEdCl9KTtmdW5jdGlvbiB2RHQoZSx0KXt0fHwodD1bXSk7dmFyIHI9ZT9NYXRoLm1pbih0Lmxlbmd0aCxlLmxlbmd0aCk6MCxuPXQuc2xpY2UoKSxpO3JldHVybiBmdW5jdGlvbihvKXtmb3IoaT0wO2k8cjsrK2kpbltpXT1lW2ldKigxLW8pK3RbaV0qbztyZXR1cm4gbn19ZnVuY3Rpb24geER0KGUpe3JldHVybiBBcnJheUJ1ZmZlci5pc1ZpZXcoZSkmJiEoZSBpbnN0YW5jZW9mIERhdGFWaWV3KX12YXIgYkR0PU0oKCk9Pnt9KTtmdW5jdGlvbiB3RHQoZSx0KXt2YXIgcj10P3QubGVuZ3RoOjAsbj1lP01hdGgubWluKHIsZS5sZW5ndGgpOjAsaT1uZXcgQXJyYXkobiksbz1uZXcgQXJyYXkociksYTtmb3IoYT0wO2E8bjsrK2EpaVthXT1pdihlW2FdLHRbYV0pO2Zvcig7YTxyOysrYSlvW2FdPXRbYV07cmV0dXJuIGZ1bmN0aW9uKHMpe2ZvcihhPTA7YTxuOysrYSlvW2FdPWlbYV0ocyk7cmV0dXJuIG99fXZhciBTRHQ9TSgoKT0+e0RPKCl9KTtmdW5jdGlvbiBNRHQoZSx0KXt2YXIgcj1uZXcgRGF0ZTtyZXR1cm4gZT0rZSx0PSt0LGZ1bmN0aW9uKG4pe3JldHVybiByLnNldFRpbWUoZSooMS1uKSt0Km4pLHJ9fXZhciBFRHQ9TSgoKT0+e30pO2Z1bmN0aW9uIHZmKGUsdCl7cmV0dXJuIGU9K2UsdD0rdCxmdW5jdGlvbihyKXtyZXR1cm4gZSooMS1yKSt0KnJ9fXZhciBPTz1NKCgpPT57fSk7ZnVuY3Rpb24gVER0KGUsdCl7dmFyIHI9e30sbj17fSxpOyhlPT09bnVsbHx8dHlwZW9mIGUhPSJvYmplY3QiKSYmKGU9e30pLCh0PT09bnVsbHx8dHlwZW9mIHQhPSJvYmplY3QiKSYmKHQ9e30pO2ZvcihpIGluIHQpaSBpbiBlP3JbaV09aXYoZVtpXSx0W2ldKTpuW2ldPXRbaV07cmV0dXJuIGZ1bmN0aW9uKG8pe2ZvcihpIGluIHIpbltpXT1yW2ldKG8pO3JldHVybiBufX12YXIgQ0R0PU0oKCk9PntETygpfSk7ZnVuY3Rpb24gajZlKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX1mdW5jdGlvbiBYNmUoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpKyIifX1mdW5jdGlvbiBBRHQoZSx0KXt2YXIgcj1OdHQubGFzdEluZGV4PVJ0dC5sYXN0SW5kZXg9MCxuLGksbyxhPS0xLHM9W10sbD1bXTtmb3IoZT1lKyIiLHQ9dCsiIjsobj1OdHQuZXhlYyhlKSkmJihpPVJ0dC5leGVjKHQpKTspKG89aS5pbmRleCk+ciYmKG89dC5zbGljZShyLG8pLHNbYV0/c1thXSs9bzpzWysrYV09byksKG49blswXSk9PT0oaT1pWzBdKT9zW2FdP3NbYV0rPWk6c1srK2FdPWk6KHNbKythXT1udWxsLGwucHVzaCh7aTphLHg6dmYobixpKX0pKSxyPVJ0dC5sYXN0SW5kZXg7cmV0dXJuIHI8dC5sZW5ndGgmJihvPXQuc2xpY2Uociksc1thXT9zW2FdKz1vOnNbKythXT1vKSxzLmxlbmd0aDwyP2xbMF0/WDZlKGxbMF0ueCk6ajZlKHQpOih0PWwubGVuZ3RoLGZ1bmN0aW9uKGMpe2Zvcih2YXIgdT0wLGg7dTx0OysrdSlzWyhoPWxbdV0pLmldPWgueChjKTtyZXR1cm4gcy5qb2luKCIiKX0pfXZhciBOdHQsUnR0LFBEdD1NKCgpPT57T08oKTtOdHQ9L1stK10/KD86XGQrXC4/XGQqfFwuP1xkKykoPzpbZUVdWy0rXT9cZCspPy9nLFJ0dD1uZXcgUmVnRXhwKE50dC5zb3VyY2UsImciKX0pO2Z1bmN0aW9uIGl2KGUsdCl7dmFyIHI9dHlwZW9mIHQsbjtyZXR1cm4gdD09bnVsbHx8cj09PSJib29sZWFuIj9sdyh0KToocj09PSJudW1iZXIiP3ZmOnI9PT0ic3RyaW5nIj8obj1JZyh0KSk/KHQ9bixrdHQpOkFEdDp0IGluc3RhbmNlb2YgSWc/a3R0OnQgaW5zdGFuY2VvZiBEYXRlP01EdDp4RHQodCk/dkR0OkFycmF5LmlzQXJyYXkodCk/d0R0OnR5cGVvZiB0LnZhbHVlT2YhPSJmdW5jdGlvbiImJnR5cGVvZiB0LnRvU3RyaW5nIT0iZnVuY3Rpb24ifHxpc05hTih0KT9URHQ6dmYpKGUsdCl9dmFyIERPPU0oKCk9PntzdygpO3lEdCgpO1NEdCgpO0VEdCgpO09PKCk7Q0R0KCk7UER0KCk7SXR0KCk7YkR0KCl9KTtmdW5jdGlvbiBEdHQoZSx0KXtyZXR1cm4gZT0rZSx0PSt0LGZ1bmN0aW9uKHIpe3JldHVybiBNYXRoLnJvdW5kKGUqKDEtcikrdCpyKX19dmFyIElEdD1NKCgpPT57fSk7ZnVuY3Rpb24gTER0KGUpe3JldHVybiBmdW5jdGlvbiB0KHIpe3I9K3I7ZnVuY3Rpb24gbihpLG8pe3ZhciBhPWUoKGk9S2EoaSkpLmgsKG89S2EobykpLmgpLHM9aWQoaS5zLG8ucyksbD1pZChpLmwsby5sKSxjPWlkKGkub3BhY2l0eSxvLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih1KXtyZXR1cm4gaS5oPWEodSksaS5zPXModSksaS5sPWwoTWF0aC5wb3codSxyKSksaS5vcGFjaXR5PWModSksaSsiIn19cmV0dXJuIG4uZ2FtbWE9dCxufSgxKX12YXIgJDZlLGN3LGtEdD1NKCgpPT57c3coKTtMdHQoKTskNmU9TER0KG1EdCksY3c9TER0KGlkKX0pO3ZhciB1dz1NKCgpPT57RE8oKTtPTygpO0lEdCgpO2tEdCgpfSk7ZnVuY3Rpb24gaHcoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciB6Tz1NKCgpPT57fSk7ZnVuY3Rpb24gRk8oZSl7cmV0dXJuK2V9dmFyIE90dD1NKCgpPT57fSk7ZnVuY3Rpb24gcEMoZSx0KXtyZXR1cm4odC09ZT0rZSk/ZnVuY3Rpb24ocil7cmV0dXJuKHItZSkvdH06aHcodCl9ZnVuY3Rpb24gSzZlKGUpe3JldHVybiBmdW5jdGlvbih0LHIpe3ZhciBuPWUodD0rdCxyPStyKTtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuIGk8PXQ/MDppPj1yPzE6bihpKX19fWZ1bmN0aW9uIFo2ZShlKXtyZXR1cm4gZnVuY3Rpb24odCxyKXt2YXIgbj1lKHQ9K3Qscj0rcik7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBpPD0wP3Q6aT49MT9yOm4oaSl9fX1mdW5jdGlvbiBKNmUoZSx0LHIsbil7dmFyIGk9ZVswXSxvPWVbMV0sYT10WzBdLHM9dFsxXTtyZXR1cm4gbzxpPyhpPXIobyxpKSxhPW4ocyxhKSk6KGk9cihpLG8pLGE9bihhLHMpKSxmdW5jdGlvbihsKXtyZXR1cm4gYShpKGwpKX19ZnVuY3Rpb24gUTZlKGUsdCxyLG4pe3ZhciBpPU1hdGgubWluKGUubGVuZ3RoLHQubGVuZ3RoKS0xLG89bmV3IEFycmF5KGkpLGE9bmV3IEFycmF5KGkpLHM9LTE7Zm9yKGVbaV08ZVswXSYmKGU9ZS5zbGljZSgpLnJldmVyc2UoKSx0PXQuc2xpY2UoKS5yZXZlcnNlKCkpOysrczxpOylvW3NdPXIoZVtzXSxlW3MrMV0pLGFbc109bih0W3NdLHRbcysxXSk7cmV0dXJuIGZ1bmN0aW9uKGwpe3ZhciBjPW1mKGUsbCwxLGkpLTE7cmV0dXJuIGFbY10ob1tjXShsKSl9fWZ1bmN0aW9uIExnKGUsdCl7cmV0dXJuIHQuZG9tYWluKGUuZG9tYWluKCkpLnJhbmdlKGUucmFuZ2UoKSkuaW50ZXJwb2xhdGUoZS5pbnRlcnBvbGF0ZSgpKS5jbGFtcChlLmNsYW1wKCkpfWZ1bmN0aW9uIG9kKGUsdCl7dmFyIHI9UkR0LG49UkR0LGk9aXYsbz0hMSxhLHMsbDtmdW5jdGlvbiBjKCl7cmV0dXJuIGE9TWF0aC5taW4oci5sZW5ndGgsbi5sZW5ndGgpPjI/UTZlOko2ZSxzPWw9bnVsbCx1fWZ1bmN0aW9uIHUoaCl7cmV0dXJuKHN8fChzPWEocixuLG8/SzZlKGUpOmUsaSkpKSgraCl9cmV0dXJuIHUuaW52ZXJ0PWZ1bmN0aW9uKGgpe3JldHVybihsfHwobD1hKG4scixwQyxvP1o2ZSh0KTp0KSkpKCtoKX0sdS5kb21haW49ZnVuY3Rpb24oaCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9cncuY2FsbChoLEZPKSxjKCkpOnIuc2xpY2UoKX0sdS5yYW5nZT1mdW5jdGlvbihoKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1kbC5jYWxsKGgpLGMoKSk6bi5zbGljZSgpfSx1LnJhbmdlUm91bmQ9ZnVuY3Rpb24oaCl7cmV0dXJuIG49ZGwuY2FsbChoKSxpPUR0dCxjKCl9LHUuY2xhbXA9ZnVuY3Rpb24oaCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ISFoLGMoKSk6b30sdS5pbnRlcnBvbGF0ZT1mdW5jdGlvbihoKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1oLGMoKSk6aX0sYygpfXZhciBSRHQsZEM9TSgoKT0+e2dmKCk7dXcoKTtBZygpO3pPKCk7T3R0KCk7UkR0PVswLDFdfSk7ZnVuY3Rpb24gTkR0KGUpe3JldHVybiBNYXRoLmFicyhlPU1hdGgucm91bmQoZSkpPj0xZTIxP2UudG9Mb2NhbGVTdHJpbmcoImVuIikucmVwbGFjZSgvLC9nLCIiKTplLnRvU3RyaW5nKDEwKX1mdW5jdGlvbiBvdihlLHQpe2lmKChyPShlPXQ/ZS50b0V4cG9uZW50aWFsKHQtMSk6ZS50b0V4cG9uZW50aWFsKCkpLmluZGV4T2YoImUiKSk8MClyZXR1cm4gbnVsbDt2YXIgcixuPWUuc2xpY2UoMCxyKTtyZXR1cm5bbi5sZW5ndGg+MT9uWzBdK24uc2xpY2UoMik6biwrZS5zbGljZShyKzEpXX12YXIgbUM9TSgoKT0+e30pO2Z1bmN0aW9uIHhmKGUpe3JldHVybiBlPW92KE1hdGguYWJzKGUpKSxlP2VbMV06TmFOfXZhciBnQz1NKCgpPT57bUMoKX0pO2Z1bmN0aW9uIEREdChlLHQpe3JldHVybiBmdW5jdGlvbihyLG4pe2Zvcih2YXIgaT1yLmxlbmd0aCxvPVtdLGE9MCxzPWVbMF0sbD0wO2k+MCYmcz4wJiYobCtzKzE+biYmKHM9TWF0aC5tYXgoMSxuLWwpKSxvLnB1c2goci5zdWJzdHJpbmcoaS09cyxpK3MpKSwhKChsKz1zKzEpPm4pKTspcz1lW2E9KGErMSklZS5sZW5ndGhdO3JldHVybiBvLnJldmVyc2UoKS5qb2luKHQpfX12YXIgT0R0PU0oKCk9Pnt9KTtmdW5jdGlvbiB6RHQoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoL1swLTldL2csZnVuY3Rpb24ocil7cmV0dXJuIGVbK3JdfSl9fXZhciBGRHQ9TSgoKT0+e30pO2Z1bmN0aW9uIGtnKGUpe2lmKCEodD10SWUuZXhlYyhlKSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGZvcm1hdDogIitlKTt2YXIgdDtyZXR1cm4gbmV3IEJPKHtmaWxsOnRbMV0sYWxpZ246dFsyXSxzaWduOnRbM10sc3ltYm9sOnRbNF0semVybzp0WzVdLHdpZHRoOnRbNl0sY29tbWE6dFs3XSxwcmVjaXNpb246dFs4XSYmdFs4XS5zbGljZSgxKSx0cmltOnRbOV0sdHlwZTp0WzEwXX0pfWZ1bmN0aW9uIEJPKGUpe3RoaXMuZmlsbD1lLmZpbGw9PT12b2lkIDA/IiAiOmUuZmlsbCsiIix0aGlzLmFsaWduPWUuYWxpZ249PT12b2lkIDA/Ij4iOmUuYWxpZ24rIiIsdGhpcy5zaWduPWUuc2lnbj09PXZvaWQgMD8iLSI6ZS5zaWduKyIiLHRoaXMuc3ltYm9sPWUuc3ltYm9sPT09dm9pZCAwPyIiOmUuc3ltYm9sKyIiLHRoaXMuemVybz0hIWUuemVybyx0aGlzLndpZHRoPWUud2lkdGg9PT12b2lkIDA/dm9pZCAwOitlLndpZHRoLHRoaXMuY29tbWE9ISFlLmNvbW1hLHRoaXMucHJlY2lzaW9uPWUucHJlY2lzaW9uPT09dm9pZCAwP3ZvaWQgMDorZS5wcmVjaXNpb24sdGhpcy50cmltPSEhZS50cmltLHRoaXMudHlwZT1lLnR5cGU9PT12b2lkIDA/IiI6ZS50eXBlKyIifXZhciB0SWUsenR0PU0oKCk9Pnt0SWU9L14oPzooLik/KFs8Pj1eXSkpPyhbK1wtKCBdKT8oWyQjXSk/KDApPyhcZCspPygsKT8oXC5cZCspPyh+KT8oW2EteiVdKT8kL2k7a2cucHJvdG90eXBlPUJPLnByb3RvdHlwZTtCTy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsK3RoaXMuYWxpZ24rdGhpcy5zaWduK3RoaXMuc3ltYm9sKyh0aGlzLnplcm8/IjAiOiIiKSsodGhpcy53aWR0aD09PXZvaWQgMD8iIjpNYXRoLm1heCgxLHRoaXMud2lkdGh8MCkpKyh0aGlzLmNvbW1hPyIsIjoiIikrKHRoaXMucHJlY2lzaW9uPT09dm9pZCAwPyIiOiIuIitNYXRoLm1heCgwLHRoaXMucHJlY2lzaW9ufDApKSsodGhpcy50cmltPyJ+IjoiIikrdGhpcy50eXBlfX0pO2Z1bmN0aW9uIEJEdChlKXt0OmZvcih2YXIgdD1lLmxlbmd0aCxyPTEsbj0tMSxpO3I8dDsrK3Ipc3dpdGNoKGVbcl0pe2Nhc2UiLiI6bj1pPXI7YnJlYWs7Y2FzZSIwIjpuPT09MCYmKG49ciksaT1yO2JyZWFrO2RlZmF1bHQ6aWYoIStlW3JdKWJyZWFrIHQ7bj4wJiYobj0wKTticmVha31yZXR1cm4gbj4wP2Uuc2xpY2UoMCxuKStlLnNsaWNlKGkrMSk6ZX12YXIgSER0PU0oKCk9Pnt9KTtmdW5jdGlvbiBWRHQoZSx0KXt2YXIgcj1vdihlLHQpO2lmKCFyKXJldHVybiBlKyIiO3ZhciBuPXJbMF0saT1yWzFdLG89aS0oRnR0PU1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihpLzMpKSkqMykrMSxhPW4ubGVuZ3RoO3JldHVybiBvPT09YT9uOm8+YT9uK25ldyBBcnJheShvLWErMSkuam9pbigiMCIpOm8+MD9uLnNsaWNlKDAsbykrIi4iK24uc2xpY2Uobyk6IjAuIituZXcgQXJyYXkoMS1vKS5qb2luKCIwIikrb3YoZSxNYXRoLm1heCgwLHQrby0xKSlbMF19dmFyIEZ0dCxCdHQ9TSgoKT0+e21DKCl9KTtmdW5jdGlvbiBIdHQoZSx0KXt2YXIgcj1vdihlLHQpO2lmKCFyKXJldHVybiBlKyIiO3ZhciBuPXJbMF0saT1yWzFdO3JldHVybiBpPDA/IjAuIituZXcgQXJyYXkoLWkpLmpvaW4oIjAiKStuOm4ubGVuZ3RoPmkrMT9uLnNsaWNlKDAsaSsxKSsiLiIrbi5zbGljZShpKzEpOm4rbmV3IEFycmF5KGktbi5sZW5ndGgrMikuam9pbigiMCIpfXZhciBVRHQ9TSgoKT0+e21DKCl9KTt2YXIgVnR0LHFEdD1NKCgpPT57bUMoKTtCdHQoKTtVRHQoKTtWdHQ9eyIlIjpmdW5jdGlvbihlLHQpe3JldHVybihlKjEwMCkudG9GaXhlZCh0KX0sYjpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5yb3VuZChlKS50b1N0cmluZygyKX0sYzpmdW5jdGlvbihlKXtyZXR1cm4gZSsiIn0sZDpORHQsZTpmdW5jdGlvbihlLHQpe3JldHVybiBlLnRvRXhwb25lbnRpYWwodCl9LGY6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS50b0ZpeGVkKHQpfSxnOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUudG9QcmVjaXNpb24odCl9LG86ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucm91bmQoZSkudG9TdHJpbmcoOCl9LHA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gSHR0KGUqMTAwLHQpfSxyOkh0dCxzOlZEdCxYOmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnJvdW5kKGUpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSx4OmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnJvdW5kKGUpLnRvU3RyaW5nKDE2KX19fSk7ZnVuY3Rpb24gVXR0KGUpe3JldHVybiBlfXZhciBHRHQ9TSgoKT0+e30pO2Z1bmN0aW9uIGpEdChlKXt2YXIgdD1lLmdyb3VwaW5nPT09dm9pZCAwfHxlLnRob3VzYW5kcz09PXZvaWQgMD9VdHQ6RER0KFdEdC5jYWxsKGUuZ3JvdXBpbmcsTnVtYmVyKSxlLnRob3VzYW5kcysiIikscj1lLmN1cnJlbmN5PT09dm9pZCAwPyIiOmUuY3VycmVuY3lbMF0rIiIsbj1lLmN1cnJlbmN5PT09dm9pZCAwPyIiOmUuY3VycmVuY3lbMV0rIiIsaT1lLmRlY2ltYWw9PT12b2lkIDA/Ii4iOmUuZGVjaW1hbCsiIixvPWUubnVtZXJhbHM9PT12b2lkIDA/VXR0OnpEdChXRHQuY2FsbChlLm51bWVyYWxzLFN0cmluZykpLGE9ZS5wZXJjZW50PT09dm9pZCAwPyIlIjplLnBlcmNlbnQrIiIscz1lLm1pbnVzPT09dm9pZCAwPyItIjplLm1pbnVzKyIiLGw9ZS5uYW49PT12b2lkIDA/Ik5hTiI6ZS5uYW4rIiI7ZnVuY3Rpb24gYyhoKXtoPWtnKGgpO3ZhciBmPWguZmlsbCxwPWguYWxpZ24sZD1oLnNpZ24sZz1oLnN5bWJvbCxfPWguemVybyx5PWgud2lkdGgseD1oLmNvbW1hLGI9aC5wcmVjaXNpb24sUz1oLnRyaW0sQz1oLnR5cGU7Qz09PSJuIj8oeD0hMCxDPSJnIik6VnR0W0NdfHwoYj09PXZvaWQgMCYmKGI9MTIpLFM9ITAsQz0iZyIpLChffHxmPT09IjAiJiZwPT09Ij0iKSYmKF89ITAsZj0iMCIscD0iPSIpO3ZhciBQPWc9PT0iJCI/cjpnPT09IiMiJiYvW2JveFhdLy50ZXN0KEMpPyIwIitDLnRvTG93ZXJDYXNlKCk6IiIsaz1nPT09IiQiP246L1slcF0vLnRlc3QoQyk/YToiIixPPVZ0dFtDXSxEPS9bZGVmZ3BycyVdLy50ZXN0KEMpO2I9Yj09PXZvaWQgMD82Oi9bZ3Byc10vLnRlc3QoQyk/TWF0aC5tYXgoMSxNYXRoLm1pbigyMSxiKSk6TWF0aC5tYXgoMCxNYXRoLm1pbigyMCxiKSk7ZnVuY3Rpb24gQihJKXt2YXIgTD1QLFI9ayxGLHosVTtpZihDPT09ImMiKVI9TyhJKStSLEk9IiI7ZWxzZXtJPStJO3ZhciBXPUk8MHx8MS9JPDA7aWYoST1pc05hTihJKT9sOk8oTWF0aC5hYnMoSSksYiksUyYmKEk9QkR0KEkpKSxXJiYrST09MCYmZCE9PSIrIiYmKFc9ITEpLEw9KFc/ZD09PSIoIj9kOnM6ZD09PSItInx8ZD09PSIoIj8iIjpkKStMLFI9KEM9PT0icyI/WUR0WzgrRnR0LzNdOiIiKStSKyhXJiZkPT09IigiPyIpIjoiIiksRCl7Zm9yKEY9LTEsej1JLmxlbmd0aDsrK0Y8ejspaWYoVT1JLmNoYXJDb2RlQXQoRiksNDg+VXx8VT41Nyl7Uj0oVT09PTQ2P2krSS5zbGljZShGKzEpOkkuc2xpY2UoRikpK1IsST1JLnNsaWNlKDAsRik7YnJlYWt9fX14JiYhXyYmKEk9dChJLDEvMCkpO3ZhciBaPUwubGVuZ3RoK0kubGVuZ3RoK1IubGVuZ3RoLHJ0PVo8eT9uZXcgQXJyYXkoeS1aKzEpLmpvaW4oZik6IiI7c3dpdGNoKHgmJl8mJihJPXQocnQrSSxydC5sZW5ndGg/eS1SLmxlbmd0aDoxLzApLHJ0PSIiKSxwKXtjYXNlIjwiOkk9TCtJK1IrcnQ7YnJlYWs7Y2FzZSI9IjpJPUwrcnQrSStSO2JyZWFrO2Nhc2UiXiI6ST1ydC5zbGljZSgwLFo9cnQubGVuZ3RoPj4xKStMK0krUitydC5zbGljZShaKTticmVhaztkZWZhdWx0Okk9cnQrTCtJK1I7YnJlYWt9cmV0dXJuIG8oSSl9cmV0dXJuIEIudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gaCsiIn0sQn1mdW5jdGlvbiB1KGgsZil7dmFyIHA9YygoaD1rZyhoKSxoLnR5cGU9ImYiLGgpKSxkPU1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcih4ZihmKS8zKSkpKjMsZz1NYXRoLnBvdygxMCwtZCksXz1ZRHRbOCtkLzNdO3JldHVybiBmdW5jdGlvbih5KXtyZXR1cm4gcChnKnkpK199fXJldHVybntmb3JtYXQ6Yyxmb3JtYXRQcmVmaXg6dX19dmFyIFdEdCxZRHQsWER0PU0oKCk9PntnQygpO09EdCgpO0ZEdCgpO3p0dCgpO0hEdCgpO3FEdCgpO0J0dCgpO0dEdCgpO1dEdD1BcnJheS5wcm90b3R5cGUubWFwLFlEdD1bInkiLCJ6IiwiYSIsImYiLCJwIiwibiIsIlx4QjUiLCJtIiwiIiwiayIsIk0iLCJHIiwiVCIsIlAiLCJFIiwiWiIsIlkiXX0pO2Z1bmN0aW9uIHF0dChlKXtyZXR1cm4gSE89akR0KGUpLGZ3PUhPLmZvcm1hdCxWTz1ITy5mb3JtYXRQcmVmaXgsSE99dmFyIEhPLGZ3LFZPLCREdD1NKCgpPT57WER0KCk7cXR0KHtkZWNpbWFsOiIuIix0aG91c2FuZHM6IiwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbIiQiLCIiXSxtaW51czoiLSJ9KX0pO2Z1bmN0aW9uIEd0dChlKXtyZXR1cm4gTWF0aC5tYXgoMCwteGYoTWF0aC5hYnMoZSkpKX12YXIgS0R0PU0oKCk9PntnQygpfSk7ZnVuY3Rpb24gV3R0KGUsdCl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKHhmKHQpLzMpKSkqMy14ZihNYXRoLmFicyhlKSkpfXZhciBaRHQ9TSgoKT0+e2dDKCl9KTtmdW5jdGlvbiBZdHQoZSx0KXtyZXR1cm4gZT1NYXRoLmFicyhlKSx0PU1hdGguYWJzKHQpLWUsTWF0aC5tYXgoMCx4Zih0KS14ZihlKSkrMX12YXIgSkR0PU0oKCk9PntnQygpfSk7dmFyIGp0dD1NKCgpPT57JER0KCk7enR0KCk7S0R0KCk7WkR0KCk7SkR0KCl9KTtmdW5jdGlvbiBRRHQoZSx0LHIpe3ZhciBuPWVbMF0saT1lW2UubGVuZ3RoLTFdLG89SnkobixpLHQ9PW51bGw/MTA6dCksYTtzd2l0Y2gocj1rZyhyPT1udWxsPyIsZiI6ciksci50eXBlKXtjYXNlInMiOnt2YXIgcz1NYXRoLm1heChNYXRoLmFicyhuKSxNYXRoLmFicyhpKSk7cmV0dXJuIHIucHJlY2lzaW9uPT1udWxsJiYhaXNOYU4oYT1XdHQobyxzKSkmJihyLnByZWNpc2lvbj1hKSxWTyhyLHMpfWNhc2UiIjpjYXNlImUiOmNhc2UiZyI6Y2FzZSJwIjpjYXNlInIiOntyLnByZWNpc2lvbj09bnVsbCYmIWlzTmFOKGE9WXR0KG8sTWF0aC5tYXgoTWF0aC5hYnMobiksTWF0aC5hYnMoaSkpKSkmJihyLnByZWNpc2lvbj1hLShyLnR5cGU9PT0iZSIpKTticmVha31jYXNlImYiOmNhc2UiJSI6e3IucHJlY2lzaW9uPT1udWxsJiYhaXNOYU4oYT1HdHQobykpJiYoci5wcmVjaXNpb249YS0oci50eXBlPT09IiUiKSoyKTticmVha319cmV0dXJuIGZ3KHIpfXZhciB0T3Q9TSgoKT0+e2dmKCk7anR0KCl9KTtmdW5jdGlvbiBhZChlKXt2YXIgdD1lLmRvbWFpbjtyZXR1cm4gZS50aWNrcz1mdW5jdGlvbihyKXt2YXIgbj10KCk7cmV0dXJuIHNDKG5bMF0sbltuLmxlbmd0aC0xXSxyPT1udWxsPzEwOnIpfSxlLnRpY2tGb3JtYXQ9ZnVuY3Rpb24ocixuKXtyZXR1cm4gUUR0KHQoKSxyLG4pfSxlLm5pY2U9ZnVuY3Rpb24ocil7cj09bnVsbCYmKHI9MTApO3ZhciBuPXQoKSxpPTAsbz1uLmxlbmd0aC0xLGE9bltpXSxzPW5bb10sbDtyZXR1cm4gczxhJiYobD1hLGE9cyxzPWwsbD1pLGk9byxvPWwpLGw9ZXcoYSxzLHIpLGw+MD8oYT1NYXRoLmZsb29yKGEvbCkqbCxzPU1hdGguY2VpbChzL2wpKmwsbD1ldyhhLHMscikpOmw8MCYmKGE9TWF0aC5jZWlsKGEqbCkvbCxzPU1hdGguZmxvb3IocypsKS9sLGw9ZXcoYSxzLHIpKSxsPjA/KG5baV09TWF0aC5mbG9vcihhL2wpKmwsbltvXT1NYXRoLmNlaWwocy9sKSpsLHQobikpOmw8MCYmKG5baV09TWF0aC5jZWlsKGEqbCkvbCxuW29dPU1hdGguZmxvb3IocypsKS9sLHQobikpLGV9LGV9ZnVuY3Rpb24gVU8oKXt2YXIgZT1vZChwQyx2Zik7cmV0dXJuIGUuY29weT1mdW5jdGlvbigpe3JldHVybiBMZyhlLFVPKCkpfSxhZChlKX12YXIgcHc9TSgoKT0+e2dmKCk7dXcoKTtkQygpO3RPdCgpfSk7ZnVuY3Rpb24gcU8oKXt2YXIgZT1bMCwxXTtmdW5jdGlvbiB0KHIpe3JldHVybityfXJldHVybiB0LmludmVydD10LHQuZG9tYWluPXQucmFuZ2U9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9cncuY2FsbChyLEZPKSx0KTplLnNsaWNlKCl9LHQuY29weT1mdW5jdGlvbigpe3JldHVybiBxTygpLmRvbWFpbihlKX0sYWQodCl9dmFyIGVPdD1NKCgpPT57QWcoKTtwdygpO090dCgpfSk7ZnVuY3Rpb24gR08oZSx0KXtlPWUuc2xpY2UoKTt2YXIgcj0wLG49ZS5sZW5ndGgtMSxpPWVbcl0sbz1lW25dLGE7cmV0dXJuIG88aSYmKGE9cixyPW4sbj1hLGE9aSxpPW8sbz1hKSxlW3JdPXQuZmxvb3IoaSksZVtuXT10LmNlaWwobyksZX12YXIgWHR0PU0oKCk9Pnt9KTtmdW5jdGlvbiBlSWUoZSx0KXtyZXR1cm4odD1NYXRoLmxvZyh0L2UpKT9mdW5jdGlvbihyKXtyZXR1cm4gTWF0aC5sb2coci9lKS90fTpodyh0KX1mdW5jdGlvbiBySWUoZSx0KXtyZXR1cm4gZTwwP2Z1bmN0aW9uKHIpe3JldHVybi1NYXRoLnBvdygtdCxyKSpNYXRoLnBvdygtZSwxLXIpfTpmdW5jdGlvbihyKXtyZXR1cm4gTWF0aC5wb3codCxyKSpNYXRoLnBvdyhlLDEtcil9fWZ1bmN0aW9uIG5JZShlKXtyZXR1cm4gaXNGaW5pdGUoZSk/KygiMWUiK2UpOmU8MD8wOmV9ZnVuY3Rpb24gck90KGUpe3JldHVybiBlPT09MTA/bkllOmU9PT1NYXRoLkU/TWF0aC5leHA6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucG93KGUsdCl9fWZ1bmN0aW9uIG5PdChlKXtyZXR1cm4gZT09PU1hdGguRT9NYXRoLmxvZzplPT09MTAmJk1hdGgubG9nMTB8fGU9PT0yJiZNYXRoLmxvZzJ8fChlPU1hdGgubG9nKGUpLGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmxvZyh0KS9lfSl9ZnVuY3Rpb24gaU90KGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4tZSgtdCl9fWZ1bmN0aW9uIFdPKCl7dmFyIGU9b2QoZUllLHJJZSkuZG9tYWluKFsxLDEwXSksdD1lLmRvbWFpbixyPTEwLG49bk90KDEwKSxpPXJPdCgxMCk7ZnVuY3Rpb24gbygpe3JldHVybiBuPW5PdChyKSxpPXJPdChyKSx0KClbMF08MCYmKG49aU90KG4pLGk9aU90KGkpKSxlfXJldHVybiBlLmJhc2U9ZnVuY3Rpb24oYSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K2EsbygpKTpyfSxlLmRvbWFpbj1mdW5jdGlvbihhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odChhKSxvKCkpOnQoKX0sZS50aWNrcz1mdW5jdGlvbihhKXt2YXIgcz10KCksbD1zWzBdLGM9c1tzLmxlbmd0aC0xXSx1Oyh1PWM8bCkmJihoPWwsbD1jLGM9aCk7dmFyIGg9bihsKSxmPW4oYykscCxkLGcsXz1hPT1udWxsPzEwOithLHk9W107aWYoIShyJTEpJiZmLWg8Xyl7aWYoaD1NYXRoLnJvdW5kKGgpLTEsZj1NYXRoLnJvdW5kKGYpKzEsbD4wKXtmb3IoO2g8ZjsrK2gpZm9yKGQ9MSxwPWkoaCk7ZDxyOysrZClpZihnPXAqZCwhKGc8bCkpe2lmKGc+YylicmVhazt5LnB1c2goZyl9fWVsc2UgZm9yKDtoPGY7KytoKWZvcihkPXItMSxwPWkoaCk7ZD49MTstLWQpaWYoZz1wKmQsIShnPGwpKXtpZihnPmMpYnJlYWs7eS5wdXNoKGcpfX1lbHNlIHk9c0MoaCxmLE1hdGgubWluKGYtaCxfKSkubWFwKGkpO3JldHVybiB1P3kucmV2ZXJzZSgpOnl9LGUudGlja0Zvcm1hdD1mdW5jdGlvbihhLHMpe2lmKHM9PW51bGwmJihzPXI9PT0xMD8iLjBlIjoiLCIpLHR5cGVvZiBzIT0iZnVuY3Rpb24iJiYocz1mdyhzKSksYT09PTEvMClyZXR1cm4gczthPT1udWxsJiYoYT0xMCk7dmFyIGw9TWF0aC5tYXgoMSxyKmEvZS50aWNrcygpLmxlbmd0aCk7cmV0dXJuIGZ1bmN0aW9uKGMpe3ZhciB1PWMvaShNYXRoLnJvdW5kKG4oYykpKTtyZXR1cm4gdSpyPHItLjUmJih1Kj1yKSx1PD1sP3MoYyk6IiJ9fSxlLm5pY2U9ZnVuY3Rpb24oKXtyZXR1cm4gdChHTyh0KCkse2Zsb29yOmZ1bmN0aW9uKGEpe3JldHVybiBpKE1hdGguZmxvb3IobihhKSkpfSxjZWlsOmZ1bmN0aW9uKGEpe3JldHVybiBpKE1hdGguY2VpbChuKGEpKSl9fSkpfSxlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gTGcoZSxXTygpLmJhc2UocikpfSxlfXZhciBvT3Q9TSgoKT0+e2dmKCk7anR0KCk7ek8oKTtYdHQoKTtkQygpfSk7ZnVuY3Rpb24gZHcoZSx0KXtyZXR1cm4gZTwwPy1NYXRoLnBvdygtZSx0KTpNYXRoLnBvdyhlLHQpfWZ1bmN0aW9uIF9DKCl7dmFyIGU9MSx0PW9kKG4saSkscj10LmRvbWFpbjtmdW5jdGlvbiBuKG8sYSl7cmV0dXJuKGE9ZHcoYSxlKS0obz1kdyhvLGUpKSk/ZnVuY3Rpb24ocyl7cmV0dXJuKGR3KHMsZSktbykvYX06aHcoYSl9ZnVuY3Rpb24gaShvLGEpe3JldHVybiBhPWR3KGEsZSktKG89ZHcobyxlKSksZnVuY3Rpb24ocyl7cmV0dXJuIGR3KG8rYSpzLDEvZSl9fXJldHVybiB0LmV4cG9uZW50PWZ1bmN0aW9uKG8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPStvLHIocigpKSk6ZX0sdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIExnKHQsX0MoKS5leHBvbmVudChlKSl9LGFkKHQpfWZ1bmN0aW9uIGFPdCgpe3JldHVybiBfQygpLmV4cG9uZW50KC41KX12YXIgc090PU0oKCk9Pnt6TygpO3B3KCk7ZEMoKX0pO2Z1bmN0aW9uIFlPKCl7dmFyIGU9W10sdD1bXSxyPVtdO2Z1bmN0aW9uIG4oKXt2YXIgbz0wLGE9TWF0aC5tYXgoMSx0Lmxlbmd0aCk7Zm9yKHI9bmV3IEFycmF5KGEtMSk7KytvPGE7KXJbby0xXT1sQyhlLG8vYSk7cmV0dXJuIGl9ZnVuY3Rpb24gaShvKXtpZighaXNOYU4obz0rbykpcmV0dXJuIHRbbWYocixvKV19cmV0dXJuIGkuaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKG8pe3ZhciBhPXQuaW5kZXhPZihvKTtyZXR1cm4gYTwwP1tOYU4sTmFOXTpbYT4wP3JbYS0xXTplWzBdLGE8ci5sZW5ndGg/clthXTplW2UubGVuZ3RoLTFdXX0saS5kb21haW49ZnVuY3Rpb24obyl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGUuc2xpY2UoKTtlPVtdO2Zvcih2YXIgYT0wLHM9by5sZW5ndGgsbDthPHM7KythKWw9b1thXSxsIT1udWxsJiYhaXNOYU4obD0rbCkmJmUucHVzaChsKTtyZXR1cm4gZS5zb3J0KGRmKSxuKCl9LGkucmFuZ2U9ZnVuY3Rpb24obyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZGwuY2FsbChvKSxuKCkpOnQuc2xpY2UoKX0saS5xdWFudGlsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gci5zbGljZSgpfSxpLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gWU8oKS5kb21haW4oZSkucmFuZ2UodCl9LGl9dmFyIGxPdD1NKCgpPT57Z2YoKTtBZygpfSk7ZnVuY3Rpb24gak8oKXt2YXIgZT0wLHQ9MSxyPTEsbj1bLjVdLGk9WzAsMV07ZnVuY3Rpb24gbyhzKXtpZihzPD1zKXJldHVybiBpW21mKG4scywwLHIpXX1mdW5jdGlvbiBhKCl7dmFyIHM9LTE7Zm9yKG49bmV3IEFycmF5KHIpOysrczxyOyluW3NdPSgocysxKSp0LShzLXIpKmUpLyhyKzEpO3JldHVybiBvfXJldHVybiBvLmRvbWFpbj1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rc1swXSx0PStzWzFdLGEoKSk6W2UsdF19LG8ucmFuZ2U9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9KGk9ZGwuY2FsbChzKSkubGVuZ3RoLTEsYSgpKTppLnNsaWNlKCl9LG8uaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKHMpe3ZhciBsPWkuaW5kZXhPZihzKTtyZXR1cm4gbDwwP1tOYU4sTmFOXTpsPDE/W2UsblswXV06bD49cj9bbltyLTFdLHRdOltuW2wtMV0sbltsXV19LG8uY29weT1mdW5jdGlvbigpe3JldHVybiBqTygpLmRvbWFpbihbZSx0XSkucmFuZ2UoaSl9LGFkKG8pfXZhciBjT3Q9TSgoKT0+e2dmKCk7QWcoKTtwdygpfSk7ZnVuY3Rpb24gWE8oKXt2YXIgZT1bLjVdLHQ9WzAsMV0scj0xO2Z1bmN0aW9uIG4oaSl7aWYoaTw9aSlyZXR1cm4gdFttZihlLGksMCxyKV19cmV0dXJuIG4uZG9tYWluPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPWRsLmNhbGwoaSkscj1NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aC0xKSxuKTplLnNsaWNlKCl9LG4ucmFuZ2U9ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZGwuY2FsbChpKSxyPU1hdGgubWluKGUubGVuZ3RoLHQubGVuZ3RoLTEpLG4pOnQuc2xpY2UoKX0sbi5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24oaSl7dmFyIG89dC5pbmRleE9mKGkpO3JldHVybltlW28tMV0sZVtvXV19LG4uY29weT1mdW5jdGlvbigpe3JldHVybiBYTygpLmRvbWFpbihlKS5yYW5nZSh0KX0sbn12YXIgdU90PU0oKCk9PntnZigpO0FnKCl9KTtmdW5jdGlvbiBOcihlLHQscixuKXtmdW5jdGlvbiBpKG8pe3JldHVybiBlKG89YXJndW1lbnRzLmxlbmd0aD09PTA/bmV3IERhdGU6bmV3IERhdGUoK28pKSxvfXJldHVybiBpLmZsb29yPWZ1bmN0aW9uKG8pe3JldHVybiBlKG89bmV3IERhdGUoK28pKSxvfSxpLmNlaWw9ZnVuY3Rpb24obyl7cmV0dXJuIGUobz1uZXcgRGF0ZShvLTEpKSx0KG8sMSksZShvKSxvfSxpLnJvdW5kPWZ1bmN0aW9uKG8pe3ZhciBhPWkobykscz1pLmNlaWwobyk7cmV0dXJuIG8tYTxzLW8/YTpzfSxpLm9mZnNldD1mdW5jdGlvbihvLGEpe3JldHVybiB0KG89bmV3IERhdGUoK28pLGE9PW51bGw/MTpNYXRoLmZsb29yKGEpKSxvfSxpLnJhbmdlPWZ1bmN0aW9uKG8sYSxzKXt2YXIgbD1bXSxjO2lmKG89aS5jZWlsKG8pLHM9cz09bnVsbD8xOk1hdGguZmxvb3IocyksIShvPGEpfHwhKHM+MCkpcmV0dXJuIGw7ZG8gbC5wdXNoKGM9bmV3IERhdGUoK28pKSx0KG8scyksZShvKTt3aGlsZShjPG8mJm88YSk7cmV0dXJuIGx9LGkuZmlsdGVyPWZ1bmN0aW9uKG8pe3JldHVybiBOcihmdW5jdGlvbihhKXtpZihhPj1hKWZvcig7ZShhKSwhbyhhKTspYS5zZXRUaW1lKGEtMSl9LGZ1bmN0aW9uKGEscyl7aWYoYT49YSlpZihzPDApZm9yKDsrK3M8PTA7KWZvcig7dChhLC0xKSwhbyhhKTspO2Vsc2UgZm9yKDstLXM+PTA7KWZvcig7dChhLDEpLCFvKGEpOyk7fSl9LHImJihpLmNvdW50PWZ1bmN0aW9uKG8sYSl7cmV0dXJuICR0dC5zZXRUaW1lKCtvKSxLdHQuc2V0VGltZSgrYSksZSgkdHQpLGUoS3R0KSxNYXRoLmZsb29yKHIoJHR0LEt0dCkpfSxpLmV2ZXJ5PWZ1bmN0aW9uKG8pe3JldHVybiBvPU1hdGguZmxvb3IobyksIWlzRmluaXRlKG8pfHwhKG8+MCk/bnVsbDpvPjE/aS5maWx0ZXIobj9mdW5jdGlvbihhKXtyZXR1cm4gbihhKSVvPT09MH06ZnVuY3Rpb24oYSl7cmV0dXJuIGkuY291bnQoMCxhKSVvPT09MH0pOml9KSxpfXZhciAkdHQsS3R0LFphPU0oKCk9PnskdHQ9bmV3IERhdGUsS3R0PW5ldyBEYXRlfSk7dmFyICRPLG13LGhPdCxmT3Q9TSgoKT0+e1phKCk7JE89TnIoZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKGUsdCl7ZS5zZXRUaW1lKCtlK3QpfSxmdW5jdGlvbihlLHQpe3JldHVybiB0LWV9KTskTy5ldmVyeT1mdW5jdGlvbihlKXtyZXR1cm4gZT1NYXRoLmZsb29yKGUpLCFpc0Zpbml0ZShlKXx8IShlPjApP251bGw6ZT4xP05yKGZ1bmN0aW9uKHQpe3Quc2V0VGltZShNYXRoLmZsb29yKHQvZSkqZSl9LGZ1bmN0aW9uKHQscil7dC5zZXRUaW1lKCt0K3IqZSl9LGZ1bmN0aW9uKHQscil7cmV0dXJuKHItdCkvZX0pOiRPfTttdz0kTyxoT3Q9JE8ucmFuZ2V9KTt2YXIgYXYsd2MsZ3csS08sWk8sYmY9TSgoKT0+e2F2PTFlMyx3Yz02ZTQsZ3c9MzZlNSxLTz04NjRlNSxaTz02MDQ4ZTV9KTt2YXIgcE90LF93LGRPdCxtT3Q9TSgoKT0+e1phKCk7YmYoKTtwT3Q9TnIoZnVuY3Rpb24oZSl7ZS5zZXRUaW1lKGUtZS5nZXRNaWxsaXNlY29uZHMoKSl9LGZ1bmN0aW9uKGUsdCl7ZS5zZXRUaW1lKCtlK3QqYXYpfSxmdW5jdGlvbihlLHQpe3JldHVybih0LWUpL2F2fSxmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRVVENTZWNvbmRzKCl9KSxfdz1wT3QsZE90PXBPdC5yYW5nZX0pO3ZhciBnT3QsWnR0LGlJZSxfT3Q9TSgoKT0+e1phKCk7YmYoKTtnT3Q9TnIoZnVuY3Rpb24oZSl7ZS5zZXRUaW1lKGUtZS5nZXRNaWxsaXNlY29uZHMoKS1lLmdldFNlY29uZHMoKSphdil9LGZ1bmN0aW9uKGUsdCl7ZS5zZXRUaW1lKCtlK3Qqd2MpfSxmdW5jdGlvbihlLHQpe3JldHVybih0LWUpL3djfSxmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRNaW51dGVzKCl9KSxadHQ9Z090LGlJZT1nT3QucmFuZ2V9KTt2YXIgeU90LEp0dCxvSWUsdk90PU0oKCk9PntaYSgpO2JmKCk7eU90PU5yKGZ1bmN0aW9uKGUpe2Uuc2V0VGltZShlLWUuZ2V0TWlsbGlzZWNvbmRzKCktZS5nZXRTZWNvbmRzKCkqYXYtZS5nZXRNaW51dGVzKCkqd2MpfSxmdW5jdGlvbihlLHQpe2Uuc2V0VGltZSgrZSt0Kmd3KX0sZnVuY3Rpb24oZSx0KXtyZXR1cm4odC1lKS9nd30sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0SG91cnMoKX0pLEp0dD15T3Qsb0llPXlPdC5yYW5nZX0pO3ZhciB4T3QseXcsYUllLGJPdD1NKCgpPT57WmEoKTtiZigpO3hPdD1OcihmdW5jdGlvbihlKXtlLnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbihlLHQpe2Uuc2V0RGF0ZShlLmdldERhdGUoKSt0KX0sZnVuY3Rpb24oZSx0KXtyZXR1cm4odC1lLSh0LmdldFRpbWV6b25lT2Zmc2V0KCktZS5nZXRUaW1lem9uZU9mZnNldCgpKSp3YykvS099LGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldERhdGUoKS0xfSkseXc9eE90LGFJZT14T3QucmFuZ2V9KTtmdW5jdGlvbiBzdihlKXtyZXR1cm4gTnIoZnVuY3Rpb24odCl7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpLSh0LmdldERheSgpKzctZSklNyksdC5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxyKXt0LnNldERhdGUodC5nZXREYXRlKCkrcio3KX0sZnVuY3Rpb24odCxyKXtyZXR1cm4oci10LShyLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSp3YykvWk99KX12YXIgbHYsdncsd090LFNPdCxSZyxNT3QsRU90LFRPdCxzSWUsbEllLGNJZSx1SWUsaEllLGZJZSxDT3Q9TSgoKT0+e1phKCk7YmYoKTtsdj1zdigwKSx2dz1zdigxKSx3T3Q9c3YoMiksU090PXN2KDMpLFJnPXN2KDQpLE1PdD1zdig1KSxFT3Q9c3YoNiksVE90PWx2LnJhbmdlLHNJZT12dy5yYW5nZSxsSWU9d090LnJhbmdlLGNJZT1TT3QucmFuZ2UsdUllPVJnLnJhbmdlLGhJZT1NT3QucmFuZ2UsZkllPUVPdC5yYW5nZX0pO3ZhciBBT3QsUXR0LHBJZSxQT3Q9TSgoKT0+e1phKCk7QU90PU5yKGZ1bmN0aW9uKGUpe2Uuc2V0RGF0ZSgxKSxlLnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbihlLHQpe2Uuc2V0TW9udGgoZS5nZXRNb250aCgpK3QpfSxmdW5jdGlvbihlLHQpe3JldHVybiB0LmdldE1vbnRoKCktZS5nZXRNb250aCgpKyh0LmdldEZ1bGxZZWFyKCktZS5nZXRGdWxsWWVhcigpKSoxMn0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0TW9udGgoKX0pLFF0dD1BT3QscEllPUFPdC5yYW5nZX0pO3ZhciB0ZXQsc2QsZEllLElPdD1NKCgpPT57WmEoKTt0ZXQ9TnIoZnVuY3Rpb24oZSl7ZS5zZXRNb250aCgwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKGUsdCl7ZS5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCkrdCl9LGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuZ2V0RnVsbFllYXIoKS1lLmdldEZ1bGxZZWFyKCl9LGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEZ1bGxZZWFyKCl9KTt0ZXQuZXZlcnk9ZnVuY3Rpb24oZSl7cmV0dXJuIWlzRmluaXRlKGU9TWF0aC5mbG9vcihlKSl8fCEoZT4wKT9udWxsOk5yKGZ1bmN0aW9uKHQpe3Quc2V0RnVsbFllYXIoTWF0aC5mbG9vcih0LmdldEZ1bGxZZWFyKCkvZSkqZSksdC5zZXRNb250aCgwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQscil7dC5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCkrciplKX0pfTtzZD10ZXQsZEllPXRldC5yYW5nZX0pO3ZhciBMT3QsZWV0LG1JZSxrT3Q9TSgoKT0+e1phKCk7YmYoKTtMT3Q9TnIoZnVuY3Rpb24oZSl7ZS5zZXRVVENTZWNvbmRzKDAsMCl9LGZ1bmN0aW9uKGUsdCl7ZS5zZXRUaW1lKCtlK3Qqd2MpfSxmdW5jdGlvbihlLHQpe3JldHVybih0LWUpL3djfSxmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRVVENNaW51dGVzKCl9KSxlZXQ9TE90LG1JZT1MT3QucmFuZ2V9KTt2YXIgUk90LHJldCxnSWUsTk90PU0oKCk9PntaYSgpO2JmKCk7Uk90PU5yKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDTWludXRlcygwLDAsMCl9LGZ1bmN0aW9uKGUsdCl7ZS5zZXRUaW1lKCtlK3QqZ3cpfSxmdW5jdGlvbihlLHQpe3JldHVybih0LWUpL2d3fSxmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRVVENIb3VycygpfSkscmV0PVJPdCxnSWU9Uk90LnJhbmdlfSk7dmFyIERPdCx4dyxfSWUsT090PU0oKCk9PntaYSgpO2JmKCk7RE90PU5yKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKGUsdCl7ZS5zZXRVVENEYXRlKGUuZ2V0VVRDRGF0ZSgpK3QpfSxmdW5jdGlvbihlLHQpe3JldHVybih0LWUpL0tPfSxmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRVVENEYXRlKCktMX0pLHh3PURPdCxfSWU9RE90LnJhbmdlfSk7ZnVuY3Rpb24gY3YoZSl7cmV0dXJuIE5yKGZ1bmN0aW9uKHQpe3Quc2V0VVRDRGF0ZSh0LmdldFVUQ0RhdGUoKS0odC5nZXRVVENEYXkoKSs3LWUpJTcpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQscil7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpK3IqNyl9LGZ1bmN0aW9uKHQscil7cmV0dXJuKHItdCkvWk99KX12YXIgdXYsYncsek90LEZPdCxOZyxCT3QsSE90LFZPdCx5SWUsdkllLHhJZSxiSWUsd0llLFNJZSxVT3Q9TSgoKT0+e1phKCk7YmYoKTt1dj1jdigwKSxidz1jdigxKSx6T3Q9Y3YoMiksRk90PWN2KDMpLE5nPWN2KDQpLEJPdD1jdig1KSxIT3Q9Y3YoNiksVk90PXV2LnJhbmdlLHlJZT1idy5yYW5nZSx2SWU9ek90LnJhbmdlLHhJZT1GT3QucmFuZ2UsYkllPU5nLnJhbmdlLHdJZT1CT3QucmFuZ2UsU0llPUhPdC5yYW5nZX0pO3ZhciBxT3QsbmV0LE1JZSxHT3Q9TSgoKT0+e1phKCk7cU90PU5yKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDRGF0ZSgxKSxlLnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbihlLHQpe2Uuc2V0VVRDTW9udGgoZS5nZXRVVENNb250aCgpK3QpfSxmdW5jdGlvbihlLHQpe3JldHVybiB0LmdldFVUQ01vbnRoKCktZS5nZXRVVENNb250aCgpKyh0LmdldFVUQ0Z1bGxZZWFyKCktZS5nZXRVVENGdWxsWWVhcigpKSoxMn0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0VVRDTW9udGgoKX0pLG5ldD1xT3QsTUllPXFPdC5yYW5nZX0pO3ZhciBpZXQsbGQsRUllLFdPdD1NKCgpPT57WmEoKTtpZXQ9TnIoZnVuY3Rpb24oZSl7ZS5zZXRVVENNb250aCgwLDEpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKGUsdCl7ZS5zZXRVVENGdWxsWWVhcihlLmdldFVUQ0Z1bGxZZWFyKCkrdCl9LGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuZ2V0VVRDRnVsbFllYXIoKS1lLmdldFVUQ0Z1bGxZZWFyKCl9LGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFVUQ0Z1bGxZZWFyKCl9KTtpZXQuZXZlcnk9ZnVuY3Rpb24oZSl7cmV0dXJuIWlzRmluaXRlKGU9TWF0aC5mbG9vcihlKSl8fCEoZT4wKT9udWxsOk5yKGZ1bmN0aW9uKHQpe3Quc2V0VVRDRnVsbFllYXIoTWF0aC5mbG9vcih0LmdldFVUQ0Z1bGxZZWFyKCkvZSkqZSksdC5zZXRVVENNb250aCgwLDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQscil7dC5zZXRVVENGdWxsWWVhcih0LmdldFVUQ0Z1bGxZZWFyKCkrciplKX0pfTtsZD1pZXQsRUllPWlldC5yYW5nZX0pO3ZhciBKTz1NKCgpPT57Zk90KCk7bU90KCk7X090KCk7dk90KCk7Yk90KCk7Q090KCk7UE90KCk7SU90KCk7a090KCk7Tk90KCk7T090KCk7VU90KCk7R090KCk7V090KCl9KTtmdW5jdGlvbiBvZXQoZSl7aWYoMDw9ZS55JiZlLnk8MTAwKXt2YXIgdD1uZXcgRGF0ZSgtMSxlLm0sZS5kLGUuSCxlLk0sZS5TLGUuTCk7cmV0dXJuIHQuc2V0RnVsbFllYXIoZS55KSx0fXJldHVybiBuZXcgRGF0ZShlLnksZS5tLGUuZCxlLkgsZS5NLGUuUyxlLkwpfWZ1bmN0aW9uIGFldChlKXtpZigwPD1lLnkmJmUueTwxMDApe3ZhciB0PW5ldyBEYXRlKERhdGUuVVRDKC0xLGUubSxlLmQsZS5ILGUuTSxlLlMsZS5MKSk7cmV0dXJuIHQuc2V0VVRDRnVsbFllYXIoZS55KSx0fXJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyhlLnksZS5tLGUuZCxlLkgsZS5NLGUuUyxlLkwpKX1mdW5jdGlvbiB5QyhlLHQscil7cmV0dXJue3k6ZSxtOnQsZDpyLEg6MCxNOjAsUzowLEw6MH19ZnVuY3Rpb24gc2V0KGUpe3ZhciB0PWUuZGF0ZVRpbWUscj1lLmRhdGUsbj1lLnRpbWUsaT1lLnBlcmlvZHMsbz1lLmRheXMsYT1lLnNob3J0RGF5cyxzPWUubW9udGhzLGw9ZS5zaG9ydE1vbnRocyxjPXZDKGkpLHU9eEMoaSksaD12QyhvKSxmPXhDKG8pLHA9dkMoYSksZD14QyhhKSxnPXZDKHMpLF89eEMocykseT12QyhsKSx4PXhDKGwpLGI9e2E6VyxBOlosYjpydCxCOm90LGM6bnVsbCxkOlpPdCxlOlpPdCxmOlhJZSxnOmk5ZSxHOmE5ZSxIOldJZSxJOllJZSxqOmpJZSxMOnI3dCxtOiRJZSxNOktJZSxwOnN0LHE6U3QsUTp0N3QsczplN3QsUzpaSWUsdTpKSWUsVTpRSWUsVjp0OWUsdzplOWUsVzpyOWUseDpudWxsLFg6bnVsbCx5Om45ZSxZOm85ZSxaOnM5ZSwiJSI6UU90fSxTPXthOmJ0LEE6TXQsYjpsdCxCOkt0LGM6bnVsbCxkOkpPdCxlOkpPdCxmOmg5ZSxnOmI5ZSxHOlM5ZSxIOmw5ZSxJOmM5ZSxqOnU5ZSxMOmk3dCxtOmY5ZSxNOnA5ZSxwOl90LHE6Y3QsUTp0N3QsczplN3QsUzpkOWUsdTptOWUsVTpnOWUsVjpfOWUsdzp5OWUsVzp2OWUseDpudWxsLFg6bnVsbCx5Ong5ZSxZOnc5ZSxaOk05ZSwiJSI6UU90fSxDPXthOkIsQTpJLGI6TCxCOlIsYzpGLGQ6JE90LGU6JE90LGY6VkllLGc6WE90LEc6ak90LEg6S090LEk6S090LGo6ekllLEw6SEllLG06T0llLE06RkllLHA6RCxxOkRJZSxROnFJZSxzOkdJZSxTOkJJZSx1OklJZSxVOkxJZSxWOmtJZSx3OlBJZSxXOlJJZSx4OnosWDpVLHk6WE90LFk6ak90LFo6TkllLCIlIjpVSWV9O2IueD1QKHIsYiksYi5YPVAobixiKSxiLmM9UCh0LGIpLFMueD1QKHIsUyksUy5YPVAobixTKSxTLmM9UCh0LFMpO2Z1bmN0aW9uIFAoWCxldCl7cmV0dXJuIGZ1bmN0aW9uKGR0KXt2YXIgcT1bXSxwdD0tMSxodD0wLHd0PVgubGVuZ3RoLGt0LGllLGVlO2ZvcihkdCBpbnN0YW5jZW9mIERhdGV8fChkdD1uZXcgRGF0ZSgrZHQpKTsrK3B0PHd0OylYLmNoYXJDb2RlQXQocHQpPT09MzcmJihxLnB1c2goWC5zbGljZShodCxwdCkpLChpZT1ZT3Rba3Q9WC5jaGFyQXQoKytwdCldKSE9bnVsbD9rdD1YLmNoYXJBdCgrK3B0KTppZT1rdD09PSJlIj8iICI6IjAiLChlZT1ldFtrdF0pJiYoa3Q9ZWUoZHQsaWUpKSxxLnB1c2goa3QpLGh0PXB0KzEpO3JldHVybiBxLnB1c2goWC5zbGljZShodCxwdCkpLHEuam9pbigiIil9fWZ1bmN0aW9uIGsoWCxldCl7cmV0dXJuIGZ1bmN0aW9uKGR0KXt2YXIgcT15QygxOTAwLHZvaWQgMCwxKSxwdD1PKHEsWCxkdCs9IiIsMCksaHQsd3Q7aWYocHQhPWR0Lmxlbmd0aClyZXR1cm4gbnVsbDtpZigiUSJpbiBxKXJldHVybiBuZXcgRGF0ZShxLlEpO2lmKCJzImluIHEpcmV0dXJuIG5ldyBEYXRlKHEucyoxZTMrKCJMImluIHE/cS5MOjApKTtpZihldCYmISgiWiJpbiBxKSYmKHEuWj0wKSwicCJpbiBxJiYocS5IPXEuSCUxMitxLnAqMTIpLHEubT09PXZvaWQgMCYmKHEubT0icSJpbiBxP3EucTowKSwiViJpbiBxKXtpZihxLlY8MXx8cS5WPjUzKXJldHVybiBudWxsOyJ3ImluIHF8fChxLnc9MSksIloiaW4gcT8oaHQ9YWV0KHlDKHEueSwwLDEpKSx3dD1odC5nZXRVVENEYXkoKSxodD13dD40fHx3dD09PTA/YncuY2VpbChodCk6YncoaHQpLGh0PXh3Lm9mZnNldChodCwocS5WLTEpKjcpLHEueT1odC5nZXRVVENGdWxsWWVhcigpLHEubT1odC5nZXRVVENNb250aCgpLHEuZD1odC5nZXRVVENEYXRlKCkrKHEudys2KSU3KTooaHQ9b2V0KHlDKHEueSwwLDEpKSx3dD1odC5nZXREYXkoKSxodD13dD40fHx3dD09PTA/dncuY2VpbChodCk6dncoaHQpLGh0PXl3Lm9mZnNldChodCwocS5WLTEpKjcpLHEueT1odC5nZXRGdWxsWWVhcigpLHEubT1odC5nZXRNb250aCgpLHEuZD1odC5nZXREYXRlKCkrKHEudys2KSU3KX1lbHNlKCJXImluIHF8fCJVImluIHEpJiYoInciaW4gcXx8KHEudz0idSJpbiBxP3EudSU3OiJXImluIHE/MTowKSx3dD0iWiJpbiBxP2FldCh5QyhxLnksMCwxKSkuZ2V0VVRDRGF5KCk6b2V0KHlDKHEueSwwLDEpKS5nZXREYXkoKSxxLm09MCxxLmQ9IlciaW4gcT8ocS53KzYpJTcrcS5XKjctKHd0KzUpJTc6cS53K3EuVSo3LSh3dCs2KSU3KTtyZXR1cm4iWiJpbiBxPyhxLkgrPXEuWi8xMDB8MCxxLk0rPXEuWiUxMDAsYWV0KHEpKTpvZXQocSl9fWZ1bmN0aW9uIE8oWCxldCxkdCxxKXtmb3IodmFyIHB0PTAsaHQ9ZXQubGVuZ3RoLHd0PWR0Lmxlbmd0aCxrdCxpZTtwdDxodDspe2lmKHE+PXd0KXJldHVybi0xO2lmKGt0PWV0LmNoYXJDb2RlQXQocHQrKyksa3Q9PT0zNyl7aWYoa3Q9ZXQuY2hhckF0KHB0KyspLGllPUNba3QgaW4gWU90P2V0LmNoYXJBdChwdCsrKTprdF0sIWllfHwocT1pZShYLGR0LHEpKTwwKXJldHVybi0xfWVsc2UgaWYoa3QhPWR0LmNoYXJDb2RlQXQocSsrKSlyZXR1cm4tMX1yZXR1cm4gcX1mdW5jdGlvbiBEKFgsZXQsZHQpe3ZhciBxPWMuZXhlYyhldC5zbGljZShkdCkpO3JldHVybiBxPyhYLnA9dVtxWzBdLnRvTG93ZXJDYXNlKCldLGR0K3FbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBCKFgsZXQsZHQpe3ZhciBxPXAuZXhlYyhldC5zbGljZShkdCkpO3JldHVybiBxPyhYLnc9ZFtxWzBdLnRvTG93ZXJDYXNlKCldLGR0K3FbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBJKFgsZXQsZHQpe3ZhciBxPWguZXhlYyhldC5zbGljZShkdCkpO3JldHVybiBxPyhYLnc9ZltxWzBdLnRvTG93ZXJDYXNlKCldLGR0K3FbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBMKFgsZXQsZHQpe3ZhciBxPXkuZXhlYyhldC5zbGljZShkdCkpO3JldHVybiBxPyhYLm09eFtxWzBdLnRvTG93ZXJDYXNlKCldLGR0K3FbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBSKFgsZXQsZHQpe3ZhciBxPWcuZXhlYyhldC5zbGljZShkdCkpO3JldHVybiBxPyhYLm09X1txWzBdLnRvTG93ZXJDYXNlKCldLGR0K3FbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBGKFgsZXQsZHQpe3JldHVybiBPKFgsdCxldCxkdCl9ZnVuY3Rpb24geihYLGV0LGR0KXtyZXR1cm4gTyhYLHIsZXQsZHQpfWZ1bmN0aW9uIFUoWCxldCxkdCl7cmV0dXJuIE8oWCxuLGV0LGR0KX1mdW5jdGlvbiBXKFgpe3JldHVybiBhW1guZ2V0RGF5KCldfWZ1bmN0aW9uIFooWCl7cmV0dXJuIG9bWC5nZXREYXkoKV19ZnVuY3Rpb24gcnQoWCl7cmV0dXJuIGxbWC5nZXRNb250aCgpXX1mdW5jdGlvbiBvdChYKXtyZXR1cm4gc1tYLmdldE1vbnRoKCldfWZ1bmN0aW9uIHN0KFgpe3JldHVybiBpWysoWC5nZXRIb3VycygpPj0xMildfWZ1bmN0aW9uIFN0KFgpe3JldHVybiAxK35+KFguZ2V0TW9udGgoKS8zKX1mdW5jdGlvbiBidChYKXtyZXR1cm4gYVtYLmdldFVUQ0RheSgpXX1mdW5jdGlvbiBNdChYKXtyZXR1cm4gb1tYLmdldFVUQ0RheSgpXX1mdW5jdGlvbiBsdChYKXtyZXR1cm4gbFtYLmdldFVUQ01vbnRoKCldfWZ1bmN0aW9uIEt0KFgpe3JldHVybiBzW1guZ2V0VVRDTW9udGgoKV19ZnVuY3Rpb24gX3QoWCl7cmV0dXJuIGlbKyhYLmdldFVUQ0hvdXJzKCk+PTEyKV19ZnVuY3Rpb24gY3QoWCl7cmV0dXJuIDErfn4oWC5nZXRVVENNb250aCgpLzMpfXJldHVybntmb3JtYXQ6ZnVuY3Rpb24oWCl7dmFyIGV0PVAoWCs9IiIsYik7cmV0dXJuIGV0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFh9LGV0fSxwYXJzZTpmdW5jdGlvbihYKXt2YXIgZXQ9ayhYKz0iIiwhMSk7cmV0dXJuIGV0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFh9LGV0fSx1dGNGb3JtYXQ6ZnVuY3Rpb24oWCl7dmFyIGV0PVAoWCs9IiIsUyk7cmV0dXJuIGV0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFh9LGV0fSx1dGNQYXJzZTpmdW5jdGlvbihYKXt2YXIgZXQ9ayhYKz0iIiwhMCk7cmV0dXJuIGV0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFh9LGV0fX19ZnVuY3Rpb24gR3IoZSx0LHIpe3ZhciBuPWU8MD8iLSI6IiIsaT0obj8tZTplKSsiIixvPWkubGVuZ3RoO3JldHVybiBuKyhvPHI/bmV3IEFycmF5KHItbysxKS5qb2luKHQpK2k6aSl9ZnVuY3Rpb24gQUllKGUpe3JldHVybiBlLnJlcGxhY2UoQ0llLCJcXCQmIil9ZnVuY3Rpb24gdkMoZSl7cmV0dXJuIG5ldyBSZWdFeHAoIl4oPzoiK2UubWFwKEFJZSkuam9pbigifCIpKyIpIiwiaSIpfWZ1bmN0aW9uIHhDKGUpe2Zvcih2YXIgdD17fSxyPS0xLG49ZS5sZW5ndGg7KytyPG47KXRbZVtyXS50b0xvd2VyQ2FzZSgpXT1yO3JldHVybiB0fWZ1bmN0aW9uIFBJZShlLHQscil7dmFyIG49VG8uZXhlYyh0LnNsaWNlKHIscisxKSk7cmV0dXJuIG4/KGUudz0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBJSWUoZSx0LHIpe3ZhciBuPVRvLmV4ZWModC5zbGljZShyLHIrMSkpO3JldHVybiBuPyhlLnU9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gTEllKGUsdCxyKXt2YXIgbj1Uby5leGVjKHQuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8oZS5VPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGtJZShlLHQscil7dmFyIG49VG8uZXhlYyh0LnNsaWNlKHIscisyKSk7cmV0dXJuIG4/KGUuVj0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBSSWUoZSx0LHIpe3ZhciBuPVRvLmV4ZWModC5zbGljZShyLHIrMikpO3JldHVybiBuPyhlLlc9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gak90KGUsdCxyKXt2YXIgbj1Uby5leGVjKHQuc2xpY2UocixyKzQpKTtyZXR1cm4gbj8oZS55PStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFhPdChlLHQscil7dmFyIG49VG8uZXhlYyh0LnNsaWNlKHIscisyKSk7cmV0dXJuIG4/KGUueT0rblswXSsoK25bMF0+Njg/MTkwMDoyZTMpLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIE5JZShlLHQscil7dmFyIG49L14oWil8KFsrLV1cZFxkKSg/Ojo/KFxkXGQpKT8vLmV4ZWModC5zbGljZShyLHIrNikpO3JldHVybiBuPyhlLlo9blsxXT8wOi0oblsyXSsoblszXXx8IjAwIikpLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIERJZShlLHQscil7dmFyIG49VG8uZXhlYyh0LnNsaWNlKHIscisxKSk7cmV0dXJuIG4/KGUucT1uWzBdKjMtMyxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBPSWUoZSx0LHIpe3ZhciBuPVRvLmV4ZWModC5zbGljZShyLHIrMikpO3JldHVybiBuPyhlLm09blswXS0xLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uICRPdChlLHQscil7dmFyIG49VG8uZXhlYyh0LnNsaWNlKHIscisyKSk7cmV0dXJuIG4/KGUuZD0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB6SWUoZSx0LHIpe3ZhciBuPVRvLmV4ZWModC5zbGljZShyLHIrMykpO3JldHVybiBuPyhlLm09MCxlLmQ9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gS090KGUsdCxyKXt2YXIgbj1Uby5leGVjKHQuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8oZS5IPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEZJZShlLHQscil7dmFyIG49VG8uZXhlYyh0LnNsaWNlKHIscisyKSk7cmV0dXJuIG4/KGUuTT0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBCSWUoZSx0LHIpe3ZhciBuPVRvLmV4ZWModC5zbGljZShyLHIrMikpO3JldHVybiBuPyhlLlM9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gSEllKGUsdCxyKXt2YXIgbj1Uby5leGVjKHQuc2xpY2UocixyKzMpKTtyZXR1cm4gbj8oZS5MPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFZJZShlLHQscil7dmFyIG49VG8uZXhlYyh0LnNsaWNlKHIscis2KSk7cmV0dXJuIG4/KGUuTD1NYXRoLmZsb29yKG5bMF0vMWUzKSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBVSWUoZSx0LHIpe3ZhciBuPVRJZS5leGVjKHQuc2xpY2UocixyKzEpKTtyZXR1cm4gbj9yK25bMF0ubGVuZ3RoOi0xfWZ1bmN0aW9uIHFJZShlLHQscil7dmFyIG49VG8uZXhlYyh0LnNsaWNlKHIpKTtyZXR1cm4gbj8oZS5RPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEdJZShlLHQscil7dmFyIG49VG8uZXhlYyh0LnNsaWNlKHIpKTtyZXR1cm4gbj8oZS5zPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFpPdChlLHQpe3JldHVybiBHcihlLmdldERhdGUoKSx0LDIpfWZ1bmN0aW9uIFdJZShlLHQpe3JldHVybiBHcihlLmdldEhvdXJzKCksdCwyKX1mdW5jdGlvbiBZSWUoZSx0KXtyZXR1cm4gR3IoZS5nZXRIb3VycygpJTEyfHwxMix0LDIpfWZ1bmN0aW9uIGpJZShlLHQpe3JldHVybiBHcigxK3l3LmNvdW50KHNkKGUpLGUpLHQsMyl9ZnVuY3Rpb24gcjd0KGUsdCl7cmV0dXJuIEdyKGUuZ2V0TWlsbGlzZWNvbmRzKCksdCwzKX1mdW5jdGlvbiBYSWUoZSx0KXtyZXR1cm4gcjd0KGUsdCkrIjAwMCJ9ZnVuY3Rpb24gJEllKGUsdCl7cmV0dXJuIEdyKGUuZ2V0TW9udGgoKSsxLHQsMil9ZnVuY3Rpb24gS0llKGUsdCl7cmV0dXJuIEdyKGUuZ2V0TWludXRlcygpLHQsMil9ZnVuY3Rpb24gWkllKGUsdCl7cmV0dXJuIEdyKGUuZ2V0U2Vjb25kcygpLHQsMil9ZnVuY3Rpb24gSkllKGUpe3ZhciB0PWUuZ2V0RGF5KCk7cmV0dXJuIHQ9PT0wPzc6dH1mdW5jdGlvbiBRSWUoZSx0KXtyZXR1cm4gR3IobHYuY291bnQoc2QoZSktMSxlKSx0LDIpfWZ1bmN0aW9uIG43dChlKXt2YXIgdD1lLmdldERheSgpO3JldHVybiB0Pj00fHx0PT09MD9SZyhlKTpSZy5jZWlsKGUpfWZ1bmN0aW9uIHQ5ZShlLHQpe3JldHVybiBlPW43dChlKSxHcihSZy5jb3VudChzZChlKSxlKSsoc2QoZSkuZ2V0RGF5KCk9PT00KSx0LDIpfWZ1bmN0aW9uIGU5ZShlKXtyZXR1cm4gZS5nZXREYXkoKX1mdW5jdGlvbiByOWUoZSx0KXtyZXR1cm4gR3IodncuY291bnQoc2QoZSktMSxlKSx0LDIpfWZ1bmN0aW9uIG45ZShlLHQpe3JldHVybiBHcihlLmdldEZ1bGxZZWFyKCklMTAwLHQsMil9ZnVuY3Rpb24gaTllKGUsdCl7cmV0dXJuIGU9bjd0KGUpLEdyKGUuZ2V0RnVsbFllYXIoKSUxMDAsdCwyKX1mdW5jdGlvbiBvOWUoZSx0KXtyZXR1cm4gR3IoZS5nZXRGdWxsWWVhcigpJTFlNCx0LDQpfWZ1bmN0aW9uIGE5ZShlLHQpe3ZhciByPWUuZ2V0RGF5KCk7cmV0dXJuIGU9cj49NHx8cj09PTA/UmcoZSk6UmcuY2VpbChlKSxHcihlLmdldEZ1bGxZZWFyKCklMWU0LHQsNCl9ZnVuY3Rpb24gczllKGUpe3ZhciB0PWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtyZXR1cm4odD4wPyItIjoodCo9LTEsIisiKSkrR3IodC82MHwwLCIwIiwyKStHcih0JTYwLCIwIiwyKX1mdW5jdGlvbiBKT3QoZSx0KXtyZXR1cm4gR3IoZS5nZXRVVENEYXRlKCksdCwyKX1mdW5jdGlvbiBsOWUoZSx0KXtyZXR1cm4gR3IoZS5nZXRVVENIb3VycygpLHQsMil9ZnVuY3Rpb24gYzllKGUsdCl7cmV0dXJuIEdyKGUuZ2V0VVRDSG91cnMoKSUxMnx8MTIsdCwyKX1mdW5jdGlvbiB1OWUoZSx0KXtyZXR1cm4gR3IoMSt4dy5jb3VudChsZChlKSxlKSx0LDMpfWZ1bmN0aW9uIGk3dChlLHQpe3JldHVybiBHcihlLmdldFVUQ01pbGxpc2Vjb25kcygpLHQsMyl9ZnVuY3Rpb24gaDllKGUsdCl7cmV0dXJuIGk3dChlLHQpKyIwMDAifWZ1bmN0aW9uIGY5ZShlLHQpe3JldHVybiBHcihlLmdldFVUQ01vbnRoKCkrMSx0LDIpfWZ1bmN0aW9uIHA5ZShlLHQpe3JldHVybiBHcihlLmdldFVUQ01pbnV0ZXMoKSx0LDIpfWZ1bmN0aW9uIGQ5ZShlLHQpe3JldHVybiBHcihlLmdldFVUQ1NlY29uZHMoKSx0LDIpfWZ1bmN0aW9uIG05ZShlKXt2YXIgdD1lLmdldFVUQ0RheSgpO3JldHVybiB0PT09MD83OnR9ZnVuY3Rpb24gZzllKGUsdCl7cmV0dXJuIEdyKHV2LmNvdW50KGxkKGUpLTEsZSksdCwyKX1mdW5jdGlvbiBvN3QoZSl7dmFyIHQ9ZS5nZXRVVENEYXkoKTtyZXR1cm4gdD49NHx8dD09PTA/TmcoZSk6TmcuY2VpbChlKX1mdW5jdGlvbiBfOWUoZSx0KXtyZXR1cm4gZT1vN3QoZSksR3IoTmcuY291bnQobGQoZSksZSkrKGxkKGUpLmdldFVUQ0RheSgpPT09NCksdCwyKX1mdW5jdGlvbiB5OWUoZSl7cmV0dXJuIGUuZ2V0VVRDRGF5KCl9ZnVuY3Rpb24gdjllKGUsdCl7cmV0dXJuIEdyKGJ3LmNvdW50KGxkKGUpLTEsZSksdCwyKX1mdW5jdGlvbiB4OWUoZSx0KXtyZXR1cm4gR3IoZS5nZXRVVENGdWxsWWVhcigpJTEwMCx0LDIpfWZ1bmN0aW9uIGI5ZShlLHQpe3JldHVybiBlPW83dChlKSxHcihlLmdldFVUQ0Z1bGxZZWFyKCklMTAwLHQsMil9ZnVuY3Rpb24gdzllKGUsdCl7cmV0dXJuIEdyKGUuZ2V0VVRDRnVsbFllYXIoKSUxZTQsdCw0KX1mdW5jdGlvbiBTOWUoZSx0KXt2YXIgcj1lLmdldFVUQ0RheSgpO3JldHVybiBlPXI+PTR8fHI9PT0wP05nKGUpOk5nLmNlaWwoZSksR3IoZS5nZXRVVENGdWxsWWVhcigpJTFlNCx0LDQpfWZ1bmN0aW9uIE05ZSgpe3JldHVybiIrMDAwMCJ9ZnVuY3Rpb24gUU90KCl7cmV0dXJuIiUifWZ1bmN0aW9uIHQ3dChlKXtyZXR1cm4rZX1mdW5jdGlvbiBlN3QoZSl7cmV0dXJuIE1hdGguZmxvb3IoK2UvMWUzKX12YXIgWU90LFRvLFRJZSxDSWUsYTd0PU0oKCk9PntKTygpO1lPdD17Ii0iOiIiLF86IiAiLDA6IjAifSxUbz0vXlxzKlxkKy8sVEllPS9eJS8sQ0llPS9bXFxeJCorP3xbXF0oKS57fV0vZ30pO2Z1bmN0aW9uIGNldChlKXtyZXR1cm4gd3c9c2V0KGUpLFFPPXd3LmZvcm1hdCxzN3Q9d3cucGFyc2UsdDc9d3cudXRjRm9ybWF0LGw3dD13dy51dGNQYXJzZSx3d312YXIgd3csUU8sczd0LHQ3LGw3dCxjN3Q9TSgoKT0+e2E3dCgpO2NldCh7ZGF0ZVRpbWU6IiV4LCAlWCIsZGF0ZToiJS1tLyUtZC8lWSIsdGltZToiJS1JOiVNOiVTICVwIixwZXJpb2RzOlsiQU0iLCJQTSJdLGRheXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLHNob3J0RGF5czpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLG1vbnRoczpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sc2hvcnRNb250aHM6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXX0pfSk7dmFyIHVldD1NKCgpPT57Yzd0KCl9KTtmdW5jdGlvbiBUOWUoZSl7cmV0dXJuIG5ldyBEYXRlKGUpfWZ1bmN0aW9uIEM5ZShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIERhdGU/K2U6K25ldyBEYXRlKCtlKX1mdW5jdGlvbiBlNyhlLHQscixuLGksbyxhLHMsbCl7dmFyIGM9b2QocEMsdmYpLHU9Yy5pbnZlcnQsaD1jLmRvbWFpbixmPWwoIi4lTCIpLHA9bCgiOiVTIiksZD1sKCIlSTolTSIpLGc9bCgiJUkgJXAiKSxfPWwoIiVhICVkIikseT1sKCIlYiAlZCIpLHg9bCgiJUIiKSxiPWwoIiVZIiksUz1bW2EsMSxiQ10sW2EsNSw1KmJDXSxbYSwxNSwxNSpiQ10sW2EsMzAsMzAqYkNdLFtvLDEsd0NdLFtvLDUsNSp3Q10sW28sMTUsMTUqd0NdLFtvLDMwLDMwKndDXSxbaSwxLFNDXSxbaSwzLDMqU0NdLFtpLDYsNipTQ10sW2ksMTIsMTIqU0NdLFtuLDEsTUNdLFtuLDIsMipNQ10sW3IsMSxFOWVdLFt0LDEsdTd0XSxbdCwzLDMqdTd0XSxbZSwxLGhldF1dO2Z1bmN0aW9uIEMoayl7cmV0dXJuKGEoayk8az9mOm8oayk8az9wOmkoayk8az9kOm4oayk8az9nOnQoayk8az9yKGspPGs/Xzp5OmUoayk8az94OmIpKGspfWZ1bmN0aW9uIFAoayxPLEQsQil7aWYoaz09bnVsbCYmKGs9MTApLHR5cGVvZiBrPT0ibnVtYmVyIil7dmFyIEk9TWF0aC5hYnMoRC1PKS9rLEw9YUMoZnVuY3Rpb24oUil7cmV0dXJuIFJbMl19KS5yaWdodChTLEkpO0w9PT1TLmxlbmd0aD8oQj1KeShPL2hldCxEL2hldCxrKSxrPWUpOkw/KEw9U1tJL1NbTC0xXVsyXTxTW0xdWzJdL0k/TC0xOkxdLEI9TFsxXSxrPUxbMF0pOihCPU1hdGgubWF4KEp5KE8sRCxrKSwxKSxrPXMpfXJldHVybiBCPT1udWxsP2s6ay5ldmVyeShCKX1yZXR1cm4gYy5pbnZlcnQ9ZnVuY3Rpb24oayl7cmV0dXJuIG5ldyBEYXRlKHUoaykpfSxjLmRvbWFpbj1mdW5jdGlvbihrKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9oKHJ3LmNhbGwoayxDOWUpKTpoKCkubWFwKFQ5ZSl9LGMudGlja3M9ZnVuY3Rpb24oayxPKXt2YXIgRD1oKCksQj1EWzBdLEk9RFtELmxlbmd0aC0xXSxMPUk8QixSO3JldHVybiBMJiYoUj1CLEI9SSxJPVIpLFI9UChrLEIsSSxPKSxSPVI/Ui5yYW5nZShCLEkrMSk6W10sTD9SLnJldmVyc2UoKTpSfSxjLnRpY2tGb3JtYXQ9ZnVuY3Rpb24oayxPKXtyZXR1cm4gTz09bnVsbD9DOmwoTyl9LGMubmljZT1mdW5jdGlvbihrLE8pe3ZhciBEPWgoKTtyZXR1cm4oaz1QKGssRFswXSxEW0QubGVuZ3RoLTFdLE8pKT9oKEdPKEQsaykpOmN9LGMuY29weT1mdW5jdGlvbigpe3JldHVybiBMZyhjLGU3KGUsdCxyLG4saSxvLGEscyxsKSl9LGN9ZnVuY3Rpb24gaDd0KCl7cmV0dXJuIGU3KHNkLFF0dCxsdix5dyxKdHQsWnR0LF93LG13LFFPKS5kb21haW4oW25ldyBEYXRlKDJlMywwLDEpLG5ldyBEYXRlKDJlMywwLDIpXSl9dmFyIGJDLHdDLFNDLE1DLEU5ZSx1N3QsaGV0LGZldD1NKCgpPT57Z2YoKTt1dygpO0pPKCk7dWV0KCk7QWcoKTtkQygpO1h0dCgpO2JDPTFlMyx3Qz1iQyo2MCxTQz13Qyo2MCxNQz1TQyoyNCxFOWU9TUMqNyx1N3Q9TUMqMzAsaGV0PU1DKjM2NX0pO2Z1bmN0aW9uIGY3dCgpe3JldHVybiBlNyhsZCxuZXQsdXYseHcscmV0LGVldCxfdyxtdyx0NykuZG9tYWluKFtEYXRlLlVUQygyZTMsMCwxKSxEYXRlLlVUQygyZTMsMCwyKV0pfXZhciBwN3Q9TSgoKT0+e2ZldCgpO3VldCgpO0pPKCl9KTtmdW5jdGlvbiBtbChlKXtyZXR1cm4gZS5tYXRjaCgvLns2fS9nKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIiMiK3R9KX12YXIgU3c9TSgoKT0+e30pO3ZhciBkN3QsbTd0PU0oKCk9PntTdygpO2Q3dD1tbCgiMWY3N2I0ZmY3ZjBlMmNhMDJjZDYyNzI4OTQ2N2JkOGM1NjRiZTM3N2MyN2Y3ZjdmYmNiZDIyMTdiZWNmIil9KTt2YXIgZzd0LF83dD1NKCgpPT57U3coKTtnN3Q9bWwoIjM5M2I3OTUyNTRhMzZiNmVjZjljOWVkZTYzNzkzOThjYTI1MmI1Y2Y2YmNlZGI5YzhjNmQzMWJkOWUzOWU3YmE1MmU3Y2I5NDg0M2MzOWFkNDk0YWQ2NjE2YmU3OTY5YzdiNDE3M2E1NTE5NGNlNmRiZGRlOWVkNiIpfSk7dmFyIHk3dCx2N3Q9TSgoKT0+e1N3KCk7eTd0PW1sKCIzMTgyYmQ2YmFlZDY5ZWNhZTFjNmRiZWZlNjU1MGRmZDhkM2NmZGFlNmJmZGQwYTIzMWEzNTQ3NGM0NzZhMWQ5OWJjN2U5YzA3NTZiYjE5ZTlhYzhiY2JkZGNkYWRhZWI2MzYzNjM5Njk2OTZiZGJkYmRkOWQ5ZDkiKX0pO3ZhciB4N3QsYjd0PU0oKCk9PntTdygpO3g3dD1tbCgiMWY3N2I0YWVjN2U4ZmY3ZjBlZmZiYjc4MmNhMDJjOThkZjhhZDYyNzI4ZmY5ODk2OTQ2N2JkYzViMGQ1OGM1NjRiYzQ5Yzk0ZTM3N2MyZjdiNmQyN2Y3ZjdmYzdjN2M3YmNiZDIyZGJkYjhkMTdiZWNmOWVkYWU1Iil9KTt2YXIgdzd0LFM3dD1NKCgpPT57c3coKTt1dygpO3c3dD1jdyhLYSgzMDAsLjUsMCksS2EoLTI0MCwuNSwxKSl9KTtmdW5jdGlvbiBUN3QoZSl7KGU8MHx8ZT4xKSYmKGUtPU1hdGguZmxvb3IoZSkpO3ZhciB0PU1hdGguYWJzKGUtLjUpO3JldHVybiByNy5oPTM2MCplLTEwMCxyNy5zPTEuNS0xLjUqdCxyNy5sPS44LS45KnQscjcrIiJ9dmFyIE03dCxFN3QscjcsQzd0PU0oKCk9PntzdygpO3V3KCk7TTd0PWN3KEthKC0xMDAsLjc1LC4zNSksS2EoODAsMS41LC44KSksRTd0PWN3KEthKDI2MCwuNzUsLjM1KSxLYSg4MCwxLjUsLjgpKSxyNz1LYSgpfSk7ZnVuY3Rpb24gbjcoZSl7dmFyIHQ9ZS5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBlW01hdGgubWF4KDAsTWF0aC5taW4odC0xLE1hdGguZmxvb3Iocip0KSkpXX19dmFyIEE3dCxQN3QsSTd0LEw3dCxrN3Q9TSgoKT0+e1N3KCk7QTd0PW43KG1sKCI0NDAxNTQ0NDAyNTY0NTA0NTc0NTA1NTk0NjA3NWE0NjA4NWM0NjBhNWQ0NjBiNWU0NzBkNjA0NzBlNjE0NzEwNjM0NzExNjQ0NzEzNjU0ODE0Njc0ODE2Njg0ODE3Njk0ODE4NmE0ODFhNmM0ODFiNmQ0ODFjNmU0ODFkNmY0ODFmNzA0ODIwNzE0ODIxNzM0ODIzNzQ0ODI0NzU0ODI1NzY0ODI2Nzc0ODI4Nzg0ODI5Nzk0NzJhN2E0NzJjN2E0NzJkN2I0NzJlN2M0NzJmN2Q0NjMwN2U0NjMyN2U0NjMzN2Y0NjM0ODA0NTM1ODE0NTM3ODE0NTM4ODI0NDM5ODM0NDNhODM0NDNiODQ0MzNkODQ0MzNlODU0MjNmODU0MjQwODY0MjQxODY0MTQyODc0MTQ0ODc0MDQ1ODg0MDQ2ODgzZjQ3ODgzZjQ4ODkzZTQ5ODkzZTRhODkzZTRjOGEzZDRkOGEzZDRlOGEzYzRmOGEzYzUwOGIzYjUxOGIzYjUyOGIzYTUzOGIzYTU0OGMzOTU1OGMzOTU2OGMzODU4OGMzODU5OGMzNzVhOGMzNzViOGQzNjVjOGQzNjVkOGQzNTVlOGQzNTVmOGQzNDYwOGQzNDYxOGQzMzYyOGQzMzYzOGQzMjY0OGUzMjY1OGUzMTY2OGUzMTY3OGUzMTY4OGUzMDY5OGUzMDZhOGUyZjZiOGUyZjZjOGUyZTZkOGUyZTZlOGUyZTZmOGUyZDcwOGUyZDcxOGUyYzcxOGUyYzcyOGUyYzczOGUyYjc0OGUyYjc1OGUyYTc2OGUyYTc3OGUyYTc4OGUyOTc5OGUyOTdhOGUyOTdiOGUyODdjOGUyODdkOGUyNzdlOGUyNzdmOGUyNzgwOGUyNjgxOGUyNjgyOGUyNjgyOGUyNTgzOGUyNTg0OGUyNTg1OGUyNDg2OGUyNDg3OGUyMzg4OGUyMzg5OGUyMzhhOGQyMjhiOGQyMjhjOGQyMjhkOGQyMThlOGQyMThmOGQyMTkwOGQyMTkxOGMyMDkyOGMyMDkyOGMyMDkzOGMxZjk0OGMxZjk1OGIxZjk2OGIxZjk3OGIxZjk4OGIxZjk5OGExZjlhOGExZTliOGExZTljODkxZTlkODkxZjllODkxZjlmODgxZmEwODgxZmExODgxZmExODcxZmEyODcyMGEzODYyMGE0ODYyMWE1ODUyMWE2ODUyMmE3ODUyMmE4ODQyM2E5ODMyNGFhODMyNWFiODIyNWFjODIyNmFkODEyN2FkODEyOGFlODAyOWFmN2YyYWIwN2YyY2IxN2UyZGIyN2QyZWIzN2MyZmI0N2MzMWI1N2IzMmI2N2EzNGI2NzkzNWI3NzkzN2I4NzgzOGI5NzczYWJhNzYzYmJiNzUzZGJjNzQzZmJjNzM0MGJkNzI0MmJlNzE0NGJmNzA0NmMwNmY0OGMxNmU0YWMxNmQ0Y2MyNmM0ZWMzNmI1MGM0NmE1MmM1Njk1NGM1Njg1NmM2Njc1OGM3NjU1YWM4NjQ1Y2M4NjM1ZWM5NjI2MGNhNjA2M2NiNWY2NWNiNWU2N2NjNWM2OWNkNWI2Y2NkNWE2ZWNlNTg3MGNmNTc3M2QwNTY3NWQwNTQ3N2QxNTM3YWQxNTE3Y2QyNTA3ZmQzNGU4MWQzNGQ4NGQ0NGI4NmQ1NDk4OWQ1NDg4YmQ2NDY4ZWQ2NDU5MGQ3NDM5M2Q3NDE5NWQ4NDA5OGQ4M2U5YmQ5M2M5ZGQ5M2JhMGRhMzlhMmRhMzdhNWRiMzZhOGRiMzRhYWRjMzJhZGRjMzBiMGRkMmZiMmRkMmRiNWRlMmJiOGRlMjliYWRlMjhiZGRmMjZjMGRmMjVjMmRmMjNjNWUwMjFjOGUwMjBjYWUxMWZjZGUxMWRkMGUxMWNkMmUyMWJkNWUyMWFkOGUyMTlkYWUzMTlkZGUzMThkZmUzMThlMmU0MThlNWU0MTllN2U0MTllYWU1MWFlY2U1MWJlZmU1MWNmMWU1MWRmNGU2MWVmNmU2MjBmOGU2MjFmYmU3MjNmZGU3MjUiKSksUDd0PW43KG1sKCIwMDAwMDQwMTAwMDUwMTAxMDYwMTAxMDgwMjAxMDkwMjAyMGIwMjAyMGQwMzAzMGYwMzAzMTIwNDA0MTQwNTA0MTYwNjA1MTgwNjA1MWEwNzA2MWMwODA3MWUwOTA3MjAwYTA4MjIwYjA5MjQwYzA5MjYwZDBhMjkwZTBiMmIxMDBiMmQxMTBjMmYxMjBkMzExMzBkMzQxNDBlMzYxNTBlMzgxNjBmM2IxODBmM2QxOTEwM2YxYTEwNDIxYzEwNDQxZDExNDcxZTExNDkyMDExNGIyMTExNGUyMjExNTAyNDEyNTMyNTEyNTUyNzEyNTgyOTExNWEyYTExNWMyYzExNWYyZDExNjEyZjExNjMzMTExNjUzMzEwNjczNDEwNjkzNjEwNmIzODEwNmMzOTBmNmUzYjBmNzAzZDBmNzEzZjBmNzI0MDBmNzQ0MjBmNzU0NDBmNzY0NTEwNzc0NzEwNzg0OTEwNzg0YTEwNzk0YzExN2E0ZTExN2I0ZjEyN2I1MTEyN2M1MjEzN2M1NDEzN2Q1NjE0N2Q1NzE1N2U1OTE1N2U1YTE2N2U1YzE2N2Y1ZDE3N2Y1ZjE4N2Y2MDE4ODA2MjE5ODA2NDFhODA2NTFhODA2NzFiODA2ODFjODE2YTFjODE2YjFkODE2ZDFkODE2ZTFlODE3MDFmODE3MjFmODE3MzIwODE3NTIxODE3NjIxODE3ODIyODE3OTIyODI3YjIzODI3YzIzODI3ZTI0ODI4MDI1ODI4MTI1ODE4MzI2ODE4NDI2ODE4NjI3ODE4ODI3ODE4OTI4ODE4YjI5ODE4YzI5ODE4ZTJhODE5MDJhODE5MTJiODE5MzJiODA5NDJjODA5NjJjODA5ODJkODA5OTJkODA5YjJlN2Y5YzJlN2Y5ZTJmN2ZhMDJmN2ZhMTMwN2VhMzMwN2VhNTMxN2VhNjMxN2RhODMyN2RhYTMzN2RhYjMzN2NhZDM0N2NhZTM0N2JiMDM1N2JiMjM1N2JiMzM2N2FiNTM2N2FiNzM3NzliODM3NzliYTM4NzhiYzM5NzhiZDM5NzdiZjNhNzdjMDNhNzZjMjNiNzVjNDNjNzVjNTNjNzRjNzNkNzNjODNlNzNjYTNlNzJjYzNmNzFjZDQwNzFjZjQwNzBkMDQxNmZkMjQyNmZkMzQzNmVkNTQ0NmRkNjQ1NmNkODQ1NmNkOTQ2NmJkYjQ3NmFkYzQ4NjlkZTQ5NjhkZjRhNjhlMDRjNjdlMjRkNjZlMzRlNjVlNDRmNjRlNTUwNjRlNzUyNjNlODUzNjJlOTU0NjJlYTU2NjFlYjU3NjBlYzU4NjBlZDVhNWZlZTViNWVlZjVkNWVmMDVmNWVmMTYwNWRmMjYyNWRmMjY0NWNmMzY1NWNmNDY3NWNmNDY5NWNmNTZiNWNmNjZjNWNmNjZlNWNmNzcwNWNmNzcyNWNmODc0NWNmODc2NWNmOTc4NWRmOTc5NWRmOTdiNWRmYTdkNWVmYTdmNWVmYTgxNWZmYjgzNWZmYjg1NjBmYjg3NjFmYzg5NjFmYzhhNjJmYzhjNjNmYzhlNjRmYzkwNjVmZDkyNjZmZDk0NjdmZDk2NjhmZDk4NjlmZDlhNmFmZDliNmJmZTlkNmNmZTlmNmRmZWExNmVmZWEzNmZmZWE1NzFmZWE3NzJmZWE5NzNmZWFhNzRmZWFjNzZmZWFlNzdmZWIwNzhmZWIyN2FmZWI0N2JmZWI2N2NmZWI3N2VmZWI5N2ZmZWJiODFmZWJkODJmZWJmODRmZWMxODVmZWMyODdmZWM0ODhmZWM2OGFmZWM4OGNmZWNhOGRmZWNjOGZmZWNkOTBmZWNmOTJmZWQxOTRmZWQzOTVmZWQ1OTdmZWQ3OTlmZWQ4OWFmZGRhOWNmZGRjOWVmZGRlYTBmZGUwYTFmZGUyYTNmZGUzYTVmZGU1YTdmZGU3YTlmZGU5YWFmZGViYWNmY2VjYWVmY2VlYjBmY2YwYjJmY2YyYjRmY2Y0YjZmY2Y2YjhmY2Y3YjlmY2Y5YmJmY2ZiYmRmY2ZkYmYiKSksSTd0PW43KG1sKCIwMDAwMDQwMTAwMDUwMTAxMDYwMTAxMDgwMjAxMGEwMjAyMGMwMjAyMGUwMzAyMTAwNDAzMTIwNDAzMTQwNTA0MTcwNjA0MTkwNzA1MWIwODA1MWQwOTA2MWYwYTA3MjIwYjA3MjQwYzA4MjYwZDA4MjkwZTA5MmIxMDA5MmQxMTBhMzAxMjBhMzIxNDBiMzQxNTBiMzcxNjBiMzkxODBjM2MxOTBjM2UxYjBjNDExYzBjNDMxZTBjNDUxZjBjNDgyMTBjNGEyMzBjNGMyNDBjNGYyNjBjNTEyODBiNTMyOTBiNTUyYjBiNTcyZDBiNTkyZjBhNWIzMTBhNWMzMjBhNWUzNDBhNWYzNjA5NjEzODA5NjIzOTA5NjMzYjA5NjQzZDA5NjUzZTA5NjY0MDBhNjc0MjBhNjg0NDBhNjg0NTBhNjk0NzBiNmE0OTBiNmE0YTBjNmI0YzBjNmI0ZDBkNmM0ZjBkNmM1MTBlNmM1MjBlNmQ1NDBmNmQ1NTBmNmQ1NzEwNmU1OTEwNmU1YTExNmU1YzEyNmU1ZDEyNmU1ZjEzNmU2MTEzNmU2MjE0NmU2NDE1NmU2NTE1NmU2NzE2NmU2OTE2NmU2YTE3NmU2YzE4NmU2ZDE4NmU2ZjE5NmU3MTE5NmU3MjFhNmU3NDFhNmU3NTFiNmU3NzFjNmQ3ODFjNmQ3YTFkNmQ3YzFkNmQ3ZDFlNmQ3ZjFlNmM4MDFmNmM4MjIwNmM4NDIwNmI4NTIxNmI4NzIxNmI4ODIyNmE4YTIyNmE4YzIzNjk4ZDIzNjk4ZjI0Njk5MDI1Njg5MjI1Njg5MzI2Njc5NTI2Njc5NzI3NjY5ODI3NjY5YTI4NjU5YjI5NjQ5ZDI5NjQ5ZjJhNjNhMDJhNjNhMjJiNjJhMzJjNjFhNTJjNjBhNjJkNjBhODJlNWZhOTJlNWVhYjJmNWVhZDMwNWRhZTMwNWNiMDMxNWJiMTMyNWFiMzMyNWFiNDMzNTliNjM0NThiNzM1NTdiOTM1NTZiYTM2NTViYzM3NTRiZDM4NTNiZjM5NTJjMDNhNTFjMTNhNTBjMzNiNGZjNDNjNGVjNjNkNGRjNzNlNGNjODNmNGJjYTQwNGFjYjQxNDljYzQyNDhjZTQzNDdjZjQ0NDZkMDQ1NDVkMjQ2NDRkMzQ3NDNkNDQ4NDJkNTRhNDFkNzRiM2ZkODRjM2VkOTRkM2RkYTRlM2NkYjUwM2JkZDUxM2FkZTUyMzhkZjUzMzdlMDU1MzZlMTU2MzVlMjU3MzRlMzU5MzNlNDVhMzFlNTVjMzBlNjVkMmZlNzVlMmVlODYwMmRlOTYxMmJlYTYzMmFlYjY0MjllYjY2MjhlYzY3MjZlZDY5MjVlZTZhMjRlZjZjMjNlZjZlMjFmMDZmMjBmMTcxMWZmMTczMWRmMjc0MWNmMzc2MWJmMzc4MTlmNDc5MThmNTdiMTdmNTdkMTVmNjdlMTRmNjgwMTNmNzgyMTJmNzg0MTBmODg1MGZmODg3MGVmODg5MGNmOThiMGJmOThjMGFmOThlMDlmYTkwMDhmYTkyMDdmYTk0MDdmYjk2MDZmYjk3MDZmYjk5MDZmYjliMDZmYjlkMDdmYzlmMDdmY2ExMDhmY2EzMDlmY2E1MGFmY2E2MGNmY2E4MGRmY2FhMGZmY2FjMTFmY2FlMTJmY2IwMTRmY2IyMTZmY2I0MThmYmI2MWFmYmI4MWRmYmJhMWZmYmJjMjFmYmJlMjNmYWMwMjZmYWMyMjhmYWM0MmFmYWM2MmRmOWM3MmZmOWM5MzJmOWNiMzVmOGNkMzdmOGNmM2FmN2QxM2RmN2QzNDBmNmQ1NDNmNmQ3NDZmNWQ5NDlmNWRiNGNmNGRkNGZmNGRmNTNmNGUxNTZmM2UzNWFmM2U1NWRmMmU2NjFmMmU4NjVmMmVhNjlmMWVjNmRmMWVkNzFmMWVmNzVmMWYxNzlmMmYyN2RmMmY0ODJmM2Y1ODZmM2Y2OGFmNGY4OGVmNWY5OTJmNmZhOTZmOGZiOWFmOWZjOWRmYWZkYTFmY2ZmYTQiKSksTDd0PW43KG1sKCIwZDA4ODcxMDA3ODgxMzA3ODkxNjA3OGExOTA2OGMxYjA2OGQxZDA2OGUyMDA2OGYyMjA2OTAyNDA2OTEyNjA1OTEyODA1OTIyYTA1OTMyYzA1OTQyZTA1OTUyZjA1OTYzMTA1OTczMzA1OTczNTA0OTgzNzA0OTkzODA0OWEzYTA0OWEzYzA0OWIzZTA0OWMzZjA0OWM0MTA0OWQ0MzAzOWU0NDAzOWU0NjAzOWY0ODAzOWY0OTAzYTA0YjAzYTE0YzAyYTE0ZTAyYTI1MDAyYTI1MTAyYTM1MzAyYTM1NTAyYTQ1NjAxYTQ1ODAxYTQ1OTAxYTU1YjAxYTU1YzAxYTY1ZTAxYTY2MDAxYTY2MTAwYTc2MzAwYTc2NDAwYTc2NjAwYTc2NzAwYTg2OTAwYTg2YTAwYTg2YzAwYTg2ZTAwYTg2ZjAwYTg3MTAwYTg3MjAxYTg3NDAxYTg3NTAxYTg3NzAxYTg3ODAxYTg3YTAyYTg3YjAyYTg3ZDAzYTg3ZTAzYTg4MDA0YTg4MTA0YTc4MzA1YTc4NDA1YTc4NjA2YTY4NzA3YTY4ODA4YTY4YTA5YTU4YjBhYTU4ZDBiYTU4ZTBjYTQ4ZjBkYTQ5MTBlYTM5MjBmYTM5NDEwYTI5NTExYTE5NjEzYTE5ODE0YTA5OTE1OWY5YTE2OWY5YzE3OWU5ZDE4OWQ5ZTE5OWRhMDFhOWNhMTFiOWJhMjFkOWFhMzFlOWFhNTFmOTlhNjIwOThhNzIxOTdhODIyOTZhYTIzOTVhYjI0OTRhYzI2OTRhZDI3OTNhZTI4OTJiMDI5OTFiMTJhOTBiMjJiOGZiMzJjOGViNDJlOGRiNTJmOGNiNjMwOGJiNzMxOGFiODMyODliYTMzODhiYjM0ODhiYzM1ODdiZDM3ODZiZTM4ODViZjM5ODRjMDNhODNjMTNiODJjMjNjODFjMzNkODBjNDNlN2ZjNTQwN2VjNjQxN2RjNzQyN2NjODQzN2JjOTQ0N2FjYTQ1N2FjYjQ2NzljYzQ3NzhjYzQ5NzdjZDRhNzZjZTRiNzVjZjRjNzRkMDRkNzNkMTRlNzJkMjRmNzFkMzUxNzFkNDUyNzBkNTUzNmZkNTU0NmVkNjU1NmRkNzU2NmNkODU3NmJkOTU4NmFkYTVhNmFkYTViNjlkYjVjNjhkYzVkNjdkZDVlNjZkZTVmNjVkZTYxNjRkZjYyNjNlMDYzNjNlMTY0NjJlMjY1NjFlMjY2NjBlMzY4NWZlNDY5NWVlNTZhNWRlNTZiNWRlNjZjNWNlNzZlNWJlNzZmNWFlODcwNTllOTcxNThlOTcyNTdlYTc0NTdlYjc1NTZlYjc2NTVlYzc3NTRlZDc5NTNlZDdhNTJlZTdiNTFlZjdjNTFlZjdlNTBmMDdmNGZmMDgwNGVmMTgxNGRmMTgzNGNmMjg0NGJmMzg1NGJmMzg3NGFmNDg4NDlmNDg5NDhmNThiNDdmNThjNDZmNjhkNDVmNjhmNDRmNzkwNDRmNzkxNDNmNzkzNDJmODk0NDFmODk1NDBmOTk3M2ZmOTk4M2VmOTlhM2VmYTliM2RmYTljM2NmYTllM2JmYjlmM2FmYmExMzlmYmEyMzhmY2EzMzhmY2E1MzdmY2E2MzZmY2E4MzVmY2E5MzRmZGFiMzNmZGFjMzNmZGFlMzJmZGFmMzFmZGIxMzBmZGIyMmZmZGI0MmZmZGI1MmVmZWI3MmRmZWI4MmNmZWJhMmNmZWJiMmJmZWJkMmFmZWJlMmFmZWMwMjlmZGMyMjlmZGMzMjhmZGM1MjdmZGM2MjdmZGM4MjdmZGNhMjZmZGNiMjZmY2NkMjVmY2NlMjVmY2QwMjVmY2QyMjVmYmQzMjRmYmQ1MjRmYmQ3MjRmYWQ4MjRmYWRhMjRmOWRjMjRmOWRkMjVmOGRmMjVmOGUxMjVmN2UyMjVmN2U0MjVmNmU2MjZmNmU4MjZmNWU5MjZmNWViMjdmNGVkMjdmM2VlMjdmM2YwMjdmMmYyMjdmMWY0MjZmMWY1MjVmMGY3MjRmMGY5MjEiKSl9KTtmdW5jdGlvbiBpNyhlKXt2YXIgdD0wLHI9MSxuPSExO2Z1bmN0aW9uIGkobyl7dmFyIGE9KG8tdCkvKHItdCk7cmV0dXJuIGUobj9NYXRoLm1heCgwLE1hdGgubWluKDEsYSkpOmEpfXJldHVybiBpLmRvbWFpbj1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rb1swXSxyPStvWzFdLGkpOlt0LHJdfSxpLmNsYW1wPWZ1bmN0aW9uKG8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSEhbyxpKTpufSxpLmludGVycG9sYXRvcj1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1vLGkpOmV9LGkuY29weT1mdW5jdGlvbigpe3JldHVybiBpNyhlKS5kb21haW4oW3Qscl0pLmNsYW1wKG4pfSxhZChpKX12YXIgUjd0PU0oKCk9PntwdygpfSk7dmFyIE43dD1NKCgpPT57ak50KCk7ZU90KCk7cHcoKTtvT3QoKTt4dHQoKTtzT3QoKTtsT3QoKTtjT3QoKTt1T3QoKTtmZXQoKTtwN3QoKTttN3QoKTtfN3QoKTt2N3QoKTtiN3QoKTtTN3QoKTtDN3QoKTtrN3QoKTtSN3QoKX0pO3ZhciBvNyxFQyxhNz1NKCgpPT57bzc9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLEVDPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDpvNyx4bGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIseG1sOiJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyJ9fSk7ZnVuY3Rpb24gTXcoZSl7dmFyIHQ9ZSs9IiIscj10LmluZGV4T2YoIjoiKTtyZXR1cm4gcj49MCYmKHQ9ZS5zbGljZSgwLHIpKSE9PSJ4bWxucyImJihlPWUuc2xpY2UocisxKSksRUMuaGFzT3duUHJvcGVydHkodCk/e3NwYWNlOkVDW3RdLGxvY2FsOmV9OmV9dmFyIHM3PU0oKCk9PnthNygpfSk7ZnVuY3Rpb24gQTllKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMub3duZXJEb2N1bWVudCxyPXRoaXMubmFtZXNwYWNlVVJJO3JldHVybiByPT09bzcmJnQuZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PW83P3QuY3JlYXRlRWxlbWVudChlKTp0LmNyZWF0ZUVsZW1lbnROUyhyLGUpfX1mdW5jdGlvbiBQOWUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZS5zcGFjZSxlLmxvY2FsKX19ZnVuY3Rpb24gRGcoZSl7dmFyIHQ9TXcoZSk7cmV0dXJuKHQubG9jYWw/UDllOkE5ZSkodCl9dmFyIFRDPU0oKCk9PntzNygpO2E3KCl9KTtmdW5jdGlvbiBJOWUoKXt9ZnVuY3Rpb24gRXcoZSl7cmV0dXJuIGU9PW51bGw/STllOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvcihlKX19dmFyIGw3PU0oKCk9Pnt9KTtmdW5jdGlvbiBEN3QoZSl7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPUV3KGUpKTtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9dC5sZW5ndGgsbj1uZXcgQXJyYXkociksaT0wO2k8cjsrK2kpZm9yKHZhciBvPXRbaV0sYT1vLmxlbmd0aCxzPW5baV09bmV3IEFycmF5KGEpLGwsYyx1PTA7dTxhOysrdSkobD1vW3VdKSYmKGM9ZS5jYWxsKGwsbC5fX2RhdGFfXyx1LG8pKSYmKCJfX2RhdGFfXyJpbiBsJiYoYy5fX2RhdGFfXz1sLl9fZGF0YV9fKSxzW3VdPWMpO3JldHVybiBuZXcgSG4obix0aGlzLl9wYXJlbnRzKX12YXIgTzd0PU0oKCk9PntTYygpO2w3KCl9KTtmdW5jdGlvbiBMOWUoKXtyZXR1cm5bXX1mdW5jdGlvbiBjNyhlKXtyZXR1cm4gZT09bnVsbD9MOWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKGUpfX12YXIgcGV0PU0oKCk9Pnt9KTtmdW5jdGlvbiB6N3QoZSl7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPWM3KGUpKTtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9dC5sZW5ndGgsbj1bXSxpPVtdLG89MDtvPHI7KytvKWZvcih2YXIgYT10W29dLHM9YS5sZW5ndGgsbCxjPTA7YzxzOysrYykobD1hW2NdKSYmKG4ucHVzaChlLmNhbGwobCxsLl9fZGF0YV9fLGMsYSkpLGkucHVzaChsKSk7cmV0dXJuIG5ldyBIbihuLGkpfXZhciBGN3Q9TSgoKT0+e1NjKCk7cGV0KCl9KTt2YXIgSDd0LFR3LEI3dCx1NyxkZXQ9TSgoKT0+e0g3dD1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaGVzKGUpfX07dHlwZW9mIGRvY3VtZW50IT0idW5kZWZpbmVkIiYmKFR3PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxUdy5tYXRjaGVzfHwoQjd0PVR3LndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8VHcubXNNYXRjaGVzU2VsZWN0b3J8fFR3Lm1vek1hdGNoZXNTZWxlY3Rvcnx8VHcub01hdGNoZXNTZWxlY3RvcixIN3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEI3dC5jYWxsKHRoaXMsZSl9fSkpO3U3PUg3dH0pO2Z1bmN0aW9uIFY3dChlKXt0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmKGU9dTcoZSkpO2Zvcih2YXIgdD10aGlzLl9ncm91cHMscj10Lmxlbmd0aCxuPW5ldyBBcnJheShyKSxpPTA7aTxyOysraSlmb3IodmFyIG89dFtpXSxhPW8ubGVuZ3RoLHM9bltpXT1bXSxsLGM9MDtjPGE7KytjKShsPW9bY10pJiZlLmNhbGwobCxsLl9fZGF0YV9fLGMsbykmJnMucHVzaChsKTtyZXR1cm4gbmV3IEhuKG4sdGhpcy5fcGFyZW50cyl9dmFyIFU3dD1NKCgpPT57U2MoKTtkZXQoKX0pO2Z1bmN0aW9uIGg3KGUpe3JldHVybiBuZXcgQXJyYXkoZS5sZW5ndGgpfXZhciBtZXQ9TSgoKT0+e30pO2Z1bmN0aW9uIHE3dCgpe3JldHVybiBuZXcgSG4odGhpcy5fZW50ZXJ8fHRoaXMuX2dyb3Vwcy5tYXAoaDcpLHRoaXMuX3BhcmVudHMpfWZ1bmN0aW9uIENDKGUsdCl7dGhpcy5vd25lckRvY3VtZW50PWUub3duZXJEb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSST1lLm5hbWVzcGFjZVVSSSx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcGFyZW50PWUsdGhpcy5fX2RhdGFfXz10fXZhciBnZXQ9TSgoKT0+e21ldCgpO1NjKCk7Q0MucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpDQyxhcHBlbmRDaGlsZDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZShlLHRoaXMuX25leHQpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZShlLHQpfSxxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvcihlKX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZSl9fX0pO2Z1bmN0aW9uIEc3dChlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZX19dmFyIFc3dD1NKCgpPT57fSk7ZnVuY3Rpb24gazllKGUsdCxyLG4saSxvKXtmb3IodmFyIGE9MCxzLGw9dC5sZW5ndGgsYz1vLmxlbmd0aDthPGM7KythKShzPXRbYV0pPyhzLl9fZGF0YV9fPW9bYV0sblthXT1zKTpyW2FdPW5ldyBDQyhlLG9bYV0pO2Zvcig7YTxsOysrYSkocz10W2FdKSYmKGlbYV09cyl9ZnVuY3Rpb24gUjllKGUsdCxyLG4saSxvLGEpe3ZhciBzLGwsYz17fSx1PXQubGVuZ3RoLGg9by5sZW5ndGgsZj1uZXcgQXJyYXkodSkscDtmb3Iocz0wO3M8dTsrK3MpKGw9dFtzXSkmJihmW3NdPXA9WTd0K2EuY2FsbChsLGwuX19kYXRhX18scyx0KSxwIGluIGM/aVtzXT1sOmNbcF09bCk7Zm9yKHM9MDtzPGg7KytzKXA9WTd0K2EuY2FsbChlLG9bc10scyxvKSwobD1jW3BdKT8obltzXT1sLGwuX19kYXRhX189b1tzXSxjW3BdPW51bGwpOnJbc109bmV3IENDKGUsb1tzXSk7Zm9yKHM9MDtzPHU7KytzKShsPXRbc10pJiZjW2Zbc11dPT09bCYmKGlbc109bCl9ZnVuY3Rpb24gajd0KGUsdCl7aWYoIWUpcmV0dXJuIHA9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxjPS0xLHRoaXMuZWFjaChmdW5jdGlvbihQKXtwWysrY109UH0pLHA7dmFyIHI9dD9SOWU6azllLG49dGhpcy5fcGFyZW50cyxpPXRoaXMuX2dyb3Vwczt0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmKGU9Rzd0KGUpKTtmb3IodmFyIG89aS5sZW5ndGgsYT1uZXcgQXJyYXkobykscz1uZXcgQXJyYXkobyksbD1uZXcgQXJyYXkobyksYz0wO2M8bzsrK2Mpe3ZhciB1PW5bY10saD1pW2NdLGY9aC5sZW5ndGgscD1lLmNhbGwodSx1JiZ1Ll9fZGF0YV9fLGMsbiksZD1wLmxlbmd0aCxnPXNbY109bmV3IEFycmF5KGQpLF89YVtjXT1uZXcgQXJyYXkoZCkseT1sW2NdPW5ldyBBcnJheShmKTtyKHUsaCxnLF8seSxwLHQpO2Zvcih2YXIgeD0wLGI9MCxTLEM7eDxkOysreClpZihTPWdbeF0pe2Zvcih4Pj1iJiYoYj14KzEpOyEoQz1fW2JdKSYmKytiPGQ7KTtTLl9uZXh0PUN8fG51bGx9fXJldHVybiBhPW5ldyBIbihhLG4pLGEuX2VudGVyPXMsYS5fZXhpdD1sLGF9dmFyIFk3dCxYN3Q9TSgoKT0+e1NjKCk7Z2V0KCk7Vzd0KCk7WTd0PSIkIn0pO2Z1bmN0aW9uICQ3dCgpe3JldHVybiBuZXcgSG4odGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChoNyksdGhpcy5fcGFyZW50cyl9dmFyIEs3dD1NKCgpPT57bWV0KCk7U2MoKX0pO2Z1bmN0aW9uIFo3dChlKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9ZS5fZ3JvdXBzLG49dC5sZW5ndGgsaT1yLmxlbmd0aCxvPU1hdGgubWluKG4saSksYT1uZXcgQXJyYXkobikscz0wO3M8bzsrK3MpZm9yKHZhciBsPXRbc10sYz1yW3NdLHU9bC5sZW5ndGgsaD1hW3NdPW5ldyBBcnJheSh1KSxmLHA9MDtwPHU7KytwKShmPWxbcF18fGNbcF0pJiYoaFtwXT1mKTtmb3IoO3M8bjsrK3MpYVtzXT10W3NdO3JldHVybiBuZXcgSG4oYSx0aGlzLl9wYXJlbnRzKX12YXIgSjd0PU0oKCk9PntTYygpfSk7ZnVuY3Rpb24gUTd0KCl7Zm9yKHZhciBlPXRoaXMuX2dyb3Vwcyx0PS0xLHI9ZS5sZW5ndGg7Kyt0PHI7KWZvcih2YXIgbj1lW3RdLGk9bi5sZW5ndGgtMSxvPW5baV0sYTstLWk+PTA7KShhPW5baV0pJiYobyYmbyE9PWEubmV4dFNpYmxpbmcmJm8ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxvKSxvPWEpO3JldHVybiB0aGlzfXZhciB0enQ9TSgoKT0+e30pO2Z1bmN0aW9uIGV6dChlKXtlfHwoZT1OOWUpO2Z1bmN0aW9uIHQoaCxmKXtyZXR1cm4gaCYmZj9lKGguX19kYXRhX18sZi5fX2RhdGFfXyk6IWgtIWZ9Zm9yKHZhciByPXRoaXMuX2dyb3VwcyxuPXIubGVuZ3RoLGk9bmV3IEFycmF5KG4pLG89MDtvPG47KytvKXtmb3IodmFyIGE9cltvXSxzPWEubGVuZ3RoLGw9aVtvXT1uZXcgQXJyYXkocyksYyx1PTA7dTxzOysrdSkoYz1hW3VdKSYmKGxbdV09Yyk7bC5zb3J0KHQpfXJldHVybiBuZXcgSG4oaSx0aGlzLl9wYXJlbnRzKS5vcmRlcigpfWZ1bmN0aW9uIE45ZShlLHQpe3JldHVybiBlPHQ/LTE6ZT50PzE6ZT49dD8wOk5hTn12YXIgcnp0PU0oKCk9PntTYygpfSk7ZnVuY3Rpb24gbnp0KCl7dmFyIGU9YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyxlLmFwcGx5KG51bGwsYXJndW1lbnRzKSx0aGlzfXZhciBpenQ9TSgoKT0+e30pO2Z1bmN0aW9uIG96dCgpe3ZhciBlPW5ldyBBcnJheSh0aGlzLnNpemUoKSksdD0tMTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZVsrK3RdPXRoaXN9KSxlfXZhciBhenQ9TSgoKT0+e30pO2Z1bmN0aW9uIHN6dCgpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsdD0wLHI9ZS5sZW5ndGg7dDxyOysrdClmb3IodmFyIG49ZVt0XSxpPTAsbz1uLmxlbmd0aDtpPG87KytpKXt2YXIgYT1uW2ldO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9dmFyIGx6dD1NKCgpPT57fSk7ZnVuY3Rpb24gY3p0KCl7dmFyIGU9MDtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7KytlfSksZX12YXIgdXp0PU0oKCk9Pnt9KTtmdW5jdGlvbiBoenQoKXtyZXR1cm4hdGhpcy5ub2RlKCl9dmFyIGZ6dD1NKCgpPT57fSk7ZnVuY3Rpb24gcHp0KGUpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMscj0wLG49dC5sZW5ndGg7cjxuOysrcilmb3IodmFyIGk9dFtyXSxvPTAsYT1pLmxlbmd0aCxzO288YTsrK28pKHM9aVtvXSkmJmUuY2FsbChzLHMuX19kYXRhX18sbyxpKTtyZXR1cm4gdGhpc312YXIgZHp0PU0oKCk9Pnt9KTtmdW5jdGlvbiBEOWUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUoZSl9fWZ1bmN0aW9uIE85ZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCl9fWZ1bmN0aW9uIHo5ZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKGUsdCl9fWZ1bmN0aW9uIEY5ZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsLHQpfX1mdW5jdGlvbiBCOWUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyPT1udWxsP3RoaXMucmVtb3ZlQXR0cmlidXRlKGUpOnRoaXMuc2V0QXR0cmlidXRlKGUscil9fWZ1bmN0aW9uIEg5ZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciByPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3I9PW51bGw/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsLHIpfX1mdW5jdGlvbiBtenQoZSx0KXt2YXIgcj1NdyhlKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBuPXRoaXMubm9kZSgpO3JldHVybiByLmxvY2FsP24uZ2V0QXR0cmlidXRlTlMoci5zcGFjZSxyLmxvY2FsKTpuLmdldEF0dHJpYnV0ZShyKX1yZXR1cm4gdGhpcy5lYWNoKCh0PT1udWxsP3IubG9jYWw/TzllOkQ5ZTp0eXBlb2YgdD09ImZ1bmN0aW9uIj9yLmxvY2FsP0g5ZTpCOWU6ci5sb2NhbD9GOWU6ejllKShyLHQpKX12YXIgZ3p0PU0oKCk9PntzNygpfSk7ZnVuY3Rpb24gQ3coZSl7cmV0dXJuIGUub3duZXJEb2N1bWVudCYmZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHxlLmRvY3VtZW50JiZlfHxlLmRlZmF1bHRWaWV3fXZhciBmNz1NKCgpPT57fSk7ZnVuY3Rpb24gVjllKGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoZSl9fWZ1bmN0aW9uIFU5ZShlLHQscil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eShlLHQscil9fWZ1bmN0aW9uIHE5ZShlLHQscil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bj09bnVsbD90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KGUpOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkoZSxuLHIpfX1mdW5jdGlvbiBfenQoZSx0LHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKCh0PT1udWxsP1Y5ZTp0eXBlb2YgdD09ImZ1bmN0aW9uIj9xOWU6VTllKShlLHQscj09bnVsbD8iIjpyKSk6X2V0KHRoaXMubm9kZSgpLGUpfWZ1bmN0aW9uIF9ldChlLHQpe3JldHVybiBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUodCl8fEN3KGUpLmdldENvbXB1dGVkU3R5bGUoZSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHQpfXZhciB5ZXQ9TSgoKT0+e2Y3KCl9KTtmdW5jdGlvbiBHOWUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbZV19fWZ1bmN0aW9uIFc5ZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXNbZV09dH19ZnVuY3Rpb24gWTllKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cj09bnVsbD9kZWxldGUgdGhpc1tlXTp0aGlzW2VdPXJ9fWZ1bmN0aW9uIHl6dChlLHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKCh0PT1udWxsP0c5ZTp0eXBlb2YgdD09ImZ1bmN0aW9uIj9ZOWU6VzllKShlLHQpKTp0aGlzLm5vZGUoKVtlXX12YXIgdnp0PU0oKCk9Pnt9KTtmdW5jdGlvbiB4enQoZSl7cmV0dXJuIGUudHJpbSgpLnNwbGl0KC9efFxzKy8pfWZ1bmN0aW9uIHZldChlKXtyZXR1cm4gZS5jbGFzc0xpc3R8fG5ldyBienQoZSl9ZnVuY3Rpb24gYnp0KGUpe3RoaXMuX25vZGU9ZSx0aGlzLl9uYW1lcz14enQoZS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX1mdW5jdGlvbiB3enQoZSx0KXtmb3IodmFyIHI9dmV0KGUpLG49LTEsaT10Lmxlbmd0aDsrK248aTspci5hZGQodFtuXSl9ZnVuY3Rpb24gU3p0KGUsdCl7Zm9yKHZhciByPXZldChlKSxuPS0xLGk9dC5sZW5ndGg7KytuPGk7KXIucmVtb3ZlKHRbbl0pfWZ1bmN0aW9uIGo5ZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt3enQodGhpcyxlKX19ZnVuY3Rpb24gWDllKGUpe3JldHVybiBmdW5jdGlvbigpe1N6dCh0aGlzLGUpfX1mdW5jdGlvbiAkOWUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXsodC5hcHBseSh0aGlzLGFyZ3VtZW50cyk/d3p0OlN6dCkodGhpcyxlKX19ZnVuY3Rpb24gTXp0KGUsdCl7dmFyIHI9eHp0KGUrIiIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBuPXZldCh0aGlzLm5vZGUoKSksaT0tMSxvPXIubGVuZ3RoOysraTxvOylpZighbi5jb250YWlucyhyW2ldKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4gdGhpcy5lYWNoKCh0eXBlb2YgdD09ImZ1bmN0aW9uIj8kOWU6dD9qOWU6WDllKShyLHQpKX12YXIgRXp0PU0oKCk9PntienQucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fbmFtZXMuaW5kZXhPZihlKTt0PDAmJih0aGlzLl9uYW1lcy5wdXNoKGUpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LHJlbW92ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9uYW1lcy5pbmRleE9mKGUpO3Q+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UodCwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxjb250YWluczpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZihlKT49MH19fSk7ZnVuY3Rpb24gSzllKCl7dGhpcy50ZXh0Q29udGVudD0iIn1mdW5jdGlvbiBaOWUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD1lfX1mdW5jdGlvbiBKOWUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50ZXh0Q29udGVudD10PT1udWxsPyIiOnR9fWZ1bmN0aW9uIFR6dChlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goZT09bnVsbD9LOWU6KHR5cGVvZiBlPT0iZnVuY3Rpb24iP0o5ZTpaOWUpKGUpKTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH12YXIgQ3p0PU0oKCk9Pnt9KTtmdW5jdGlvbiBROWUoKXt0aGlzLmlubmVySFRNTD0iIn1mdW5jdGlvbiB0TGUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9ZX19ZnVuY3Rpb24gZUxlKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPXQ9PW51bGw/IiI6dH19ZnVuY3Rpb24gQXp0KGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChlPT1udWxsP1E5ZToodHlwZW9mIGU9PSJmdW5jdGlvbiI/ZUxlOnRMZSkoZSkpOnRoaXMubm9kZSgpLmlubmVySFRNTH12YXIgUHp0PU0oKCk9Pnt9KTtmdW5jdGlvbiByTGUoKXt0aGlzLm5leHRTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcyl9ZnVuY3Rpb24gSXp0KCl7cmV0dXJuIHRoaXMuZWFjaChyTGUpfXZhciBMenQ9TSgoKT0+e30pO2Z1bmN0aW9uIG5MZSgpe3RoaXMucHJldmlvdXNTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsdGhpcy5wYXJlbnROb2RlLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIGt6dCgpe3JldHVybiB0aGlzLmVhY2gobkxlKX12YXIgUnp0PU0oKCk9Pnt9KTtmdW5jdGlvbiBOenQoZSl7dmFyIHQ9dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTpEZyhlKTtyZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZCh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KX12YXIgRHp0PU0oKCk9PntUQygpfSk7ZnVuY3Rpb24gaUxlKCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gT3p0KGUsdCl7dmFyIHI9dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTpEZyhlKSxuPXQ9PW51bGw/aUxlOnR5cGVvZiB0PT0iZnVuY3Rpb24iP3Q6RXcodCk7cmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zZXJ0QmVmb3JlKHIuYXBwbHkodGhpcyxhcmd1bWVudHMpLG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfHxudWxsKX0pfXZhciB6enQ9TSgoKT0+e1RDKCk7bDcoKX0pO2Z1bmN0aW9uIG9MZSgpe3ZhciBlPXRoaXMucGFyZW50Tm9kZTtlJiZlLnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIEZ6dCgpe3JldHVybiB0aGlzLmVhY2gob0xlKX12YXIgQnp0PU0oKCk9Pnt9KTtmdW5jdGlvbiBhTGUoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmNsb25lTm9kZSghMSksdGhpcy5uZXh0U2libGluZyl9ZnVuY3Rpb24gc0xlKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5jbG9uZU5vZGUoITApLHRoaXMubmV4dFNpYmxpbmcpfWZ1bmN0aW9uIEh6dChlKXtyZXR1cm4gdGhpcy5zZWxlY3QoZT9zTGU6YUxlKX12YXIgVnp0PU0oKCk9Pnt9KTtmdW5jdGlvbiBVenQoZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5wcm9wZXJ0eSgiX19kYXRhX18iLGUpOnRoaXMubm9kZSgpLl9fZGF0YV9ffXZhciBxenQ9TSgoKT0+e30pO2Z1bmN0aW9uIGxMZShlLHQscil7cmV0dXJuIGU9WXp0KGUsdCxyKSxmdW5jdGlvbihuKXt2YXIgaT1uLnJlbGF0ZWRUYXJnZXQ7KCFpfHxpIT09dGhpcyYmIShpLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHRoaXMpJjgpKSYmZS5jYWxsKHRoaXMsbil9fWZ1bmN0aW9uIFl6dChlLHQscil7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpPVB1O1B1PW47dHJ5e2UuY2FsbCh0aGlzLHRoaXMuX19kYXRhX18sdCxyKX1maW5hbGx5e1B1PWl9fX1mdW5jdGlvbiBjTGUoZSl7cmV0dXJuIGUudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcChmdW5jdGlvbih0KXt2YXIgcj0iIixuPXQuaW5kZXhPZigiLiIpO3JldHVybiBuPj0wJiYocj10LnNsaWNlKG4rMSksdD10LnNsaWNlKDAsbikpLHt0eXBlOnQsbmFtZTpyfX0pfWZ1bmN0aW9uIHVMZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9fb247aWYoISF0KXtmb3IodmFyIHI9MCxuPS0xLGk9dC5sZW5ndGgsbztyPGk7KytyKW89dFtyXSwoIWUudHlwZXx8by50eXBlPT09ZS50eXBlKSYmby5uYW1lPT09ZS5uYW1lP3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihvLnR5cGUsby5saXN0ZW5lcixvLmNhcHR1cmUpOnRbKytuXT1vOysrbj90Lmxlbmd0aD1uOmRlbGV0ZSB0aGlzLl9fb259fX1mdW5jdGlvbiBoTGUoZSx0LHIpe3ZhciBuPVd6dC5oYXNPd25Qcm9wZXJ0eShlLnR5cGUpP2xMZTpZenQ7cmV0dXJuIGZ1bmN0aW9uKGksbyxhKXt2YXIgcz10aGlzLl9fb24sbCxjPW4odCxvLGEpO2lmKHMpe2Zvcih2YXIgdT0wLGg9cy5sZW5ndGg7dTxoOysrdSlpZigobD1zW3VdKS50eXBlPT09ZS50eXBlJiZsLm5hbWU9PT1lLm5hbWUpe3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihsLnR5cGUsbC5saXN0ZW5lcixsLmNhcHR1cmUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihsLnR5cGUsbC5saXN0ZW5lcj1jLGwuY2FwdHVyZT1yKSxsLnZhbHVlPXQ7cmV0dXJufX10aGlzLmFkZEV2ZW50TGlzdGVuZXIoZS50eXBlLGMsciksbD17dHlwZTplLnR5cGUsbmFtZTplLm5hbWUsdmFsdWU6dCxsaXN0ZW5lcjpjLGNhcHR1cmU6cn0scz9zLnB1c2gobCk6dGhpcy5fX29uPVtsXX19ZnVuY3Rpb24ganp0KGUsdCxyKXt2YXIgbj1jTGUoZSsiIiksaSxvPW4ubGVuZ3RoLGE7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgcz10aGlzLm5vZGUoKS5fX29uO2lmKHMpe2Zvcih2YXIgbD0wLGM9cy5sZW5ndGgsdTtsPGM7KytsKWZvcihpPTAsdT1zW2xdO2k8bzsrK2kpaWYoKGE9bltpXSkudHlwZT09PXUudHlwZSYmYS5uYW1lPT09dS5uYW1lKXJldHVybiB1LnZhbHVlfXJldHVybn1mb3Iocz10P2hMZTp1TGUscj09bnVsbCYmKHI9ITEpLGk9MDtpPG87KytpKXRoaXMuZWFjaChzKG5baV0sdCxyKSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gWHp0KGUsdCxyLG4pe3ZhciBpPVB1O2Uuc291cmNlRXZlbnQ9UHUsUHU9ZTt0cnl7cmV0dXJuIHQuYXBwbHkocixuKX1maW5hbGx5e1B1PWl9fXZhciBXenQsUHUsR3p0LHA3PU0oKCk9PntXenQ9e30sUHU9bnVsbDt0eXBlb2YgZG9jdW1lbnQhPSJ1bmRlZmluZWQiJiYoR3p0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwib25tb3VzZWVudGVyImluIEd6dHx8KFd6dD17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSl9KTtmdW5jdGlvbiAkenQoZSx0LHIpe3ZhciBuPUN3KGUpLGk9bi5DdXN0b21FdmVudDt0eXBlb2YgaT09ImZ1bmN0aW9uIj9pPW5ldyBpKHQscik6KGk9bi5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSxyPyhpLmluaXRFdmVudCh0LHIuYnViYmxlcyxyLmNhbmNlbGFibGUpLGkuZGV0YWlsPXIuZGV0YWlsKTppLmluaXRFdmVudCh0LCExLCExKSksZS5kaXNwYXRjaEV2ZW50KGkpfWZ1bmN0aW9uIGZMZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiAkenQodGhpcyxlLHQpfX1mdW5jdGlvbiBwTGUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gJHp0KHRoaXMsZSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fWZ1bmN0aW9uIEt6dChlLHQpe3JldHVybiB0aGlzLmVhY2goKHR5cGVvZiB0PT0iZnVuY3Rpb24iP3BMZTpmTGUpKGUsdCkpfXZhciBaenQ9TSgoKT0+e2Y3KCl9KTtmdW5jdGlvbiBIbihlLHQpe3RoaXMuX2dyb3Vwcz1lLHRoaXMuX3BhcmVudHM9dH1mdW5jdGlvbiBKenQoKXtyZXR1cm4gbmV3IEhuKFtbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XV0sQUMpfXZhciBBQyxRenQsU2M9TSgoKT0+e083dCgpO0Y3dCgpO1U3dCgpO1g3dCgpO2dldCgpO0s3dCgpO0o3dCgpO3R6dCgpO3J6dCgpO2l6dCgpO2F6dCgpO2x6dCgpO3V6dCgpO2Z6dCgpO2R6dCgpO2d6dCgpO3lldCgpO3Z6dCgpO0V6dCgpO0N6dCgpO1B6dCgpO0x6dCgpO1J6dCgpO0R6dCgpO3p6dCgpO0J6dCgpO1Z6dCgpO3F6dCgpO3A3KCk7Wnp0KCk7QUM9W251bGxdO0huLnByb3RvdHlwZT1KenQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpIbixzZWxlY3Q6RDd0LHNlbGVjdEFsbDp6N3QsZmlsdGVyOlY3dCxkYXRhOmo3dCxlbnRlcjpxN3QsZXhpdDokN3QsbWVyZ2U6Wjd0LG9yZGVyOlE3dCxzb3J0OmV6dCxjYWxsOm56dCxub2RlczpvenQsbm9kZTpzenQsc2l6ZTpjenQsZW1wdHk6aHp0LGVhY2g6cHp0LGF0dHI6bXp0LHN0eWxlOl96dCxwcm9wZXJ0eTp5enQsY2xhc3NlZDpNenQsdGV4dDpUenQsaHRtbDpBenQscmFpc2U6SXp0LGxvd2VyOmt6dCxhcHBlbmQ6Tnp0LGluc2VydDpPenQscmVtb3ZlOkZ6dCxjbG9uZTpIenQsZGF0dW06VXp0LG9uOmp6dCxkaXNwYXRjaDpLenR9O1F6dD1KenR9KTtmdW5jdGlvbiBkNyhlKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciP25ldyBIbihbW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSldXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IEhuKFtbZV1dLEFDKX12YXIgeGV0PU0oKCk9PntTYygpfSk7ZnVuY3Rpb24gdEZ0KGUpe3JldHVybiBkNyhEZyhlKS5jYWxsKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpfXZhciBlRnQ9TSgoKT0+e1RDKCk7eGV0KCl9KTtmdW5jdGlvbiBtNygpe3JldHVybiBuZXcgYmV0fWZ1bmN0aW9uIGJldCgpe3RoaXMuXz0iQCIrKCsrZExlKS50b1N0cmluZygzNil9dmFyIGRMZSxyRnQ9TSgoKT0+e2RMZT0wO2JldC5wcm90b3R5cGU9bTcucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpiZXQsZ2V0OmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD10aGlzLl87ISh0IGluIGUpOylpZighKGU9ZS5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIGVbdF19LHNldDpmdW5jdGlvbihlLHQpe3JldHVybiBlW3RoaXMuX109dH0scmVtb3ZlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl8gaW4gZSYmZGVsZXRlIGVbdGhpcy5fXX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX19KTtmdW5jdGlvbiBBdygpe2Zvcih2YXIgZT1QdSx0O3Q9ZS5zb3VyY2VFdmVudDspZT10O3JldHVybiBlfXZhciBnNz1NKCgpPT57cDcoKX0pO2Z1bmN0aW9uIE9nKGUsdCl7dmFyIHI9ZS5vd25lclNWR0VsZW1lbnR8fGU7aWYoci5jcmVhdGVTVkdQb2ludCl7dmFyIG49ci5jcmVhdGVTVkdQb2ludCgpO3JldHVybiBuLng9dC5jbGllbnRYLG4ueT10LmNsaWVudFksbj1uLm1hdHJpeFRyYW5zZm9ybShlLmdldFNjcmVlbkNUTSgpLmludmVyc2UoKSksW24ueCxuLnldfXZhciBpPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW3QuY2xpZW50WC1pLmxlZnQtZS5jbGllbnRMZWZ0LHQuY2xpZW50WS1pLnRvcC1lLmNsaWVudFRvcF19dmFyIFBDPU0oKCk9Pnt9KTtmdW5jdGlvbiBuRnQoZSl7dmFyIHQ9QXcoKTtyZXR1cm4gdC5jaGFuZ2VkVG91Y2hlcyYmKHQ9dC5jaGFuZ2VkVG91Y2hlc1swXSksT2coZSx0KX12YXIgaUZ0PU0oKCk9PntnNygpO1BDKCl9KTtmdW5jdGlvbiBvRnQoZSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIj9uZXcgSG4oW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZSldLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgSG4oW2U9PW51bGw/W106ZV0sQUMpfXZhciBhRnQ9TSgoKT0+e1NjKCl9KTtmdW5jdGlvbiBzRnQoZSx0LHIpe2FyZ3VtZW50cy5sZW5ndGg8MyYmKHI9dCx0PUF3KCkuY2hhbmdlZFRvdWNoZXMpO2Zvcih2YXIgbj0wLGk9dD90Lmxlbmd0aDowLG87bjxpOysrbilpZigobz10W25dKS5pZGVudGlmaWVyPT09cilyZXR1cm4gT2coZSxvKTtyZXR1cm4gbnVsbH12YXIgbEZ0PU0oKCk9PntnNygpO1BDKCl9KTtmdW5jdGlvbiBjRnQoZSx0KXt0PT1udWxsJiYodD1BdygpLnRvdWNoZXMpO2Zvcih2YXIgcj0wLG49dD90Lmxlbmd0aDowLGk9bmV3IEFycmF5KG4pO3I8bjsrK3IpaVtyXT1PZyhlLHRbcl0pO3JldHVybiBpfXZhciB1RnQ9TSgoKT0+e2c3KCk7UEMoKX0pO3ZhciBoRnQ9TSgoKT0+e2VGdCgpO1RDKCk7ckZ0KCk7ZGV0KCk7aUZ0KCk7czcoKTthNygpO1BDKCk7eGV0KCk7YUZ0KCk7U2MoKTtsNygpO3BldCgpO3lldCgpO2xGdCgpO3VGdCgpO2Y3KCk7cDcoKX0pO2Z1bmN0aW9uIEVldCgpe3RoaXMuX3gwPXRoaXMuX3kwPXRoaXMuX3gxPXRoaXMuX3kxPW51bGwsdGhpcy5fPSIifWZ1bmN0aW9uIGZGdCgpe3JldHVybiBuZXcgRWV0fXZhciB3ZXQsTWV0LGh2LG1MZSxJdSxwRnQ9TSgoKT0+e3dldD1NYXRoLlBJLE1ldD0yKndldCxodj0xZS02LG1MZT1NZXQtaHY7RWV0LnByb3RvdHlwZT1mRnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpFZXQsbW92ZVRvOmZ1bmN0aW9uKGUsdCl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPStlKSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPSt0KX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7dGhpcy5feDEhPT1udWxsJiYodGhpcy5feDE9dGhpcy5feDAsdGhpcy5feTE9dGhpcy5feTAsdGhpcy5fKz0iWiIpfSxsaW5lVG86ZnVuY3Rpb24oZSx0KXt0aGlzLl8rPSJMIisodGhpcy5feDE9K2UpKyIsIisodGhpcy5feTE9K3QpfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKGUsdCxyLG4pe3RoaXMuXys9IlEiKyArZSsiLCIrICt0KyIsIisodGhpcy5feDE9K3IpKyIsIisodGhpcy5feTE9K24pfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKGUsdCxyLG4saSxvKXt0aGlzLl8rPSJDIisgK2UrIiwiKyArdCsiLCIrICtyKyIsIisgK24rIiwiKyh0aGlzLl94MT0raSkrIiwiKyh0aGlzLl95MT0rbyl9LGFyY1RvOmZ1bmN0aW9uKGUsdCxyLG4saSl7ZT0rZSx0PSt0LHI9K3Isbj0rbixpPStpO3ZhciBvPXRoaXMuX3gxLGE9dGhpcy5feTEscz1yLWUsbD1uLXQsYz1vLWUsdT1hLXQsaD1jKmMrdSp1O2lmKGk8MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIitpKTtpZih0aGlzLl94MT09PW51bGwpdGhpcy5fKz0iTSIrKHRoaXMuX3gxPWUpKyIsIisodGhpcy5feTE9dCk7ZWxzZSBpZihoPmh2KWlmKCEoTWF0aC5hYnModSpzLWwqYyk+aHYpfHwhaSl0aGlzLl8rPSJMIisodGhpcy5feDE9ZSkrIiwiKyh0aGlzLl95MT10KTtlbHNle3ZhciBmPXItbyxwPW4tYSxkPXMqcytsKmwsZz1mKmYrcCpwLF89TWF0aC5zcXJ0KGQpLHk9TWF0aC5zcXJ0KGgpLHg9aSpNYXRoLnRhbigod2V0LU1hdGguYWNvcygoZCtoLWcpLygyKl8qeSkpKS8yKSxiPXgveSxTPXgvXztNYXRoLmFicyhiLTEpPmh2JiYodGhpcy5fKz0iTCIrKGUrYipjKSsiLCIrKHQrYip1KSksdGhpcy5fKz0iQSIraSsiLCIraSsiLDAsMCwiKyArKHUqZj5jKnApKyIsIisodGhpcy5feDE9ZStTKnMpKyIsIisodGhpcy5feTE9dCtTKmwpfX0sYXJjOmZ1bmN0aW9uKGUsdCxyLG4saSxvKXtlPStlLHQ9K3Qscj0rcixvPSEhbzt2YXIgYT1yKk1hdGguY29zKG4pLHM9cipNYXRoLnNpbihuKSxsPWUrYSxjPXQrcyx1PTFebyxoPW8/bi1pOmktbjtpZihyPDApdGhyb3cgbmV3IEVycm9yKCJuZWdhdGl2ZSByYWRpdXM6ICIrcik7dGhpcy5feDE9PT1udWxsP3RoaXMuXys9Ik0iK2wrIiwiK2M6KE1hdGguYWJzKHRoaXMuX3gxLWwpPmh2fHxNYXRoLmFicyh0aGlzLl95MS1jKT5odikmJih0aGlzLl8rPSJMIitsKyIsIitjKSxyJiYoaDwwJiYoaD1oJU1ldCtNZXQpLGg+bUxlP3RoaXMuXys9IkEiK3IrIiwiK3IrIiwwLDEsIit1KyIsIisoZS1hKSsiLCIrKHQtcykrIkEiK3IrIiwiK3IrIiwwLDEsIit1KyIsIisodGhpcy5feDE9bCkrIiwiKyh0aGlzLl95MT1jKTpoPmh2JiYodGhpcy5fKz0iQSIrcisiLCIrcisiLDAsIisgKyhoPj13ZXQpKyIsIit1KyIsIisodGhpcy5feDE9ZStyKk1hdGguY29zKGkpKSsiLCIrKHRoaXMuX3kxPXQrcipNYXRoLnNpbihpKSkpKX0scmVjdDpmdW5jdGlvbihlLHQscixuKXt0aGlzLl8rPSJNIisodGhpcy5feDA9dGhpcy5feDE9K2UpKyIsIisodGhpcy5feTA9dGhpcy5feTE9K3QpKyJoIisgK3IrInYiKyArbisiaCIrLXIrIloifSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fTtJdT1mRnR9KTt2YXIgUHc9TSgoKT0+e3BGdCgpfSk7ZnVuY3Rpb24gR2UoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciB6Zz1NKCgpPT57fSk7ZnVuY3Rpb24gbUZ0KGUpe3JldHVybiBlPjE/MDplPC0xP2t1Ok1hdGguYWNvcyhlKX1mdW5jdGlvbiBDZXQoZSl7cmV0dXJuIGU+PTE/SUM6ZTw9LTE/LUlDOk1hdGguYXNpbihlKX12YXIgVGV0LEhvLEZnLGRGdCxfNyxMdSxmdixDbyxrdSxJQyxNYyxJdz1NKCgpPT57VGV0PU1hdGguYWJzLEhvPU1hdGguYXRhbjIsRmc9TWF0aC5jb3MsZEZ0PU1hdGgubWF4LF83PU1hdGgubWluLEx1PU1hdGguc2luLGZ2PU1hdGguc3FydCxDbz0xZS0xMixrdT1NYXRoLlBJLElDPWt1LzIsTWM9MiprdX0pO2Z1bmN0aW9uIGdMZShlKXtyZXR1cm4gZS5pbm5lclJhZGl1c31mdW5jdGlvbiBfTGUoZSl7cmV0dXJuIGUub3V0ZXJSYWRpdXN9ZnVuY3Rpb24geUxlKGUpe3JldHVybiBlLnN0YXJ0QW5nbGV9ZnVuY3Rpb24gdkxlKGUpe3JldHVybiBlLmVuZEFuZ2xlfWZ1bmN0aW9uIHhMZShlKXtyZXR1cm4gZSYmZS5wYWRBbmdsZX1mdW5jdGlvbiBiTGUoZSx0LHIsbixpLG8sYSxzKXt2YXIgbD1yLWUsYz1uLXQsdT1hLWksaD1zLW8sZj0odSoodC1vKS1oKihlLWkpKS8oaCpsLXUqYyk7cmV0dXJuW2UrZipsLHQrZipjXX1mdW5jdGlvbiB5NyhlLHQscixuLGksbyxhKXt2YXIgcz1lLXIsbD10LW4sYz0oYT9vOi1vKS9mdihzKnMrbCpsKSx1PWMqbCxoPS1jKnMsZj1lK3UscD10K2gsZD1yK3UsZz1uK2gsXz0oZitkKS8yLHk9KHArZykvMix4PWQtZixiPWctcCxTPXgqeCtiKmIsQz1pLW8sUD1mKmctZCpwLGs9KGI8MD8tMToxKSpmdihkRnQoMCxDKkMqUy1QKlApKSxPPShQKmIteCprKS9TLEQ9KC1QKngtYiprKS9TLEI9KFAqYit4KmspL1MsST0oLVAqeCtiKmspL1MsTD1PLV8sUj1ELXksRj1CLV8sej1JLXk7cmV0dXJuIEwqTCtSKlI+RipGK3oqeiYmKE89QixEPUkpLHtjeDpPLGN5OkQseDAxOi11LHkwMTotaCx4MTE6TyooaS9DLTEpLHkxMTpEKihpL0MtMSl9fWZ1bmN0aW9uIGdGdCgpe3ZhciBlPWdMZSx0PV9MZSxyPUdlKDApLG49bnVsbCxpPXlMZSxvPXZMZSxhPXhMZSxzPW51bGw7ZnVuY3Rpb24gbCgpe3ZhciBjLHUsaD0rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksZj0rdC5hcHBseSh0aGlzLGFyZ3VtZW50cykscD1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1JQyxkPW8uYXBwbHkodGhpcyxhcmd1bWVudHMpLUlDLGc9VGV0KGQtcCksXz1kPnA7aWYoc3x8KHM9Yz1JdSgpKSxmPGgmJih1PWYsZj1oLGg9dSksIShmPkNvKSlzLm1vdmVUbygwLDApO2Vsc2UgaWYoZz5NYy1DbylzLm1vdmVUbyhmKkZnKHApLGYqTHUocCkpLHMuYXJjKDAsMCxmLHAsZCwhXyksaD5DbyYmKHMubW92ZVRvKGgqRmcoZCksaCpMdShkKSkscy5hcmMoMCwwLGgsZCxwLF8pKTtlbHNle3ZhciB5PXAseD1kLGI9cCxTPWQsQz1nLFA9ZyxrPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpLzIsTz1rPkNvJiYobj8rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ZnYoaCpoK2YqZikpLEQ9XzcoVGV0KGYtaCkvMiwrci5hcHBseSh0aGlzLGFyZ3VtZW50cykpLEI9RCxJPUQsTCxSO2lmKE8+Q28pe3ZhciBGPUNldChPL2gqTHUoaykpLHo9Q2V0KE8vZipMdShrKSk7KEMtPUYqMik+Q28/KEYqPV8/MTotMSxiKz1GLFMtPUYpOihDPTAsYj1TPShwK2QpLzIpLChQLT16KjIpPkNvPyh6Kj1fPzE6LTEseSs9eix4LT16KTooUD0wLHk9eD0ocCtkKS8yKX12YXIgVT1mKkZnKHkpLFc9ZipMdSh5KSxaPWgqRmcoUykscnQ9aCpMdShTKTtpZihEPkNvKXt2YXIgb3Q9ZipGZyh4KSxzdD1mKkx1KHgpLFN0PWgqRmcoYiksYnQ9aCpMdShiKTtpZihnPGt1KXt2YXIgTXQ9Qz5Dbz9iTGUoVSxXLFN0LGJ0LG90LHN0LFoscnQpOltaLHJ0XSxsdD1VLU10WzBdLEt0PVctTXRbMV0sX3Q9b3QtTXRbMF0sY3Q9c3QtTXRbMV0sWD0xL0x1KG1GdCgobHQqX3QrS3QqY3QpLyhmdihsdCpsdCtLdCpLdCkqZnYoX3QqX3QrY3QqY3QpKSkvMiksZXQ9ZnYoTXRbMF0qTXRbMF0rTXRbMV0qTXRbMV0pO0I9XzcoRCwoaC1ldCkvKFgtMSkpLEk9XzcoRCwoZi1ldCkvKFgrMSkpfX1QPkNvP0k+Q28/KEw9eTcoU3QsYnQsVSxXLGYsSSxfKSxSPXk3KG90LHN0LFoscnQsZixJLF8pLHMubW92ZVRvKEwuY3grTC54MDEsTC5jeStMLnkwMSksSTxEP3MuYXJjKEwuY3gsTC5jeSxJLEhvKEwueTAxLEwueDAxKSxIbyhSLnkwMSxSLngwMSksIV8pOihzLmFyYyhMLmN4LEwuY3ksSSxIbyhMLnkwMSxMLngwMSksSG8oTC55MTEsTC54MTEpLCFfKSxzLmFyYygwLDAsZixIbyhMLmN5K0wueTExLEwuY3grTC54MTEpLEhvKFIuY3krUi55MTEsUi5jeCtSLngxMSksIV8pLHMuYXJjKFIuY3gsUi5jeSxJLEhvKFIueTExLFIueDExKSxIbyhSLnkwMSxSLngwMSksIV8pKSk6KHMubW92ZVRvKFUsVykscy5hcmMoMCwwLGYseSx4LCFfKSk6cy5tb3ZlVG8oVSxXKSwhKGg+Q28pfHwhKEM+Q28pP3MubGluZVRvKFoscnQpOkI+Q28/KEw9eTcoWixydCxvdCxzdCxoLC1CLF8pLFI9eTcoVSxXLFN0LGJ0LGgsLUIsXykscy5saW5lVG8oTC5jeCtMLngwMSxMLmN5K0wueTAxKSxCPEQ/cy5hcmMoTC5jeCxMLmN5LEIsSG8oTC55MDEsTC54MDEpLEhvKFIueTAxLFIueDAxKSwhXyk6KHMuYXJjKEwuY3gsTC5jeSxCLEhvKEwueTAxLEwueDAxKSxIbyhMLnkxMSxMLngxMSksIV8pLHMuYXJjKDAsMCxoLEhvKEwuY3krTC55MTEsTC5jeCtMLngxMSksSG8oUi5jeStSLnkxMSxSLmN4K1IueDExKSxfKSxzLmFyYyhSLmN4LFIuY3ksQixIbyhSLnkxMSxSLngxMSksSG8oUi55MDEsUi54MDEpLCFfKSkpOnMuYXJjKDAsMCxoLFMsYixfKX1pZihzLmNsb3NlUGF0aCgpLGMpcmV0dXJuIHM9bnVsbCxjKyIifHxudWxsfXJldHVybiBsLmNlbnRyb2lkPWZ1bmN0aW9uKCl7dmFyIGM9KCtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK3QuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLHU9KCtpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK28uYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLWt1LzI7cmV0dXJuW0ZnKHUpKmMsTHUodSkqY119LGwuaW5uZXJSYWRpdXM9ZnVuY3Rpb24oYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dHlwZW9mIGM9PSJmdW5jdGlvbiI/YzpHZSgrYyksbCk6ZX0sbC5vdXRlclJhZGl1cz1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD10eXBlb2YgYz09ImZ1bmN0aW9uIj9jOkdlKCtjKSxsKTp0fSxsLmNvcm5lclJhZGl1cz1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10eXBlb2YgYz09ImZ1bmN0aW9uIj9jOkdlKCtjKSxsKTpyfSxsLnBhZFJhZGl1cz1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1jPT1udWxsP251bGw6dHlwZW9mIGM9PSJmdW5jdGlvbiI/YzpHZSgrYyksbCk6bn0sbC5zdGFydEFuZ2xlPWZ1bmN0aW9uKGMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXR5cGVvZiBjPT0iZnVuY3Rpb24iP2M6R2UoK2MpLGwpOml9LGwuZW5kQW5nbGU9ZnVuY3Rpb24oYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89dHlwZW9mIGM9PSJmdW5jdGlvbiI/YzpHZSgrYyksbCk6b30sbC5wYWRBbmdsZT1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10eXBlb2YgYz09ImZ1bmN0aW9uIj9jOkdlKCtjKSxsKTphfSxsLmNvbnRleHQ9ZnVuY3Rpb24oYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9Yz09bnVsbD9udWxsOmMsbCk6c30sbH12YXIgX0Z0PU0oKCk9PntQdygpO3pnKCk7SXcoKX0pO2Z1bmN0aW9uIHlGdChlKXt0aGlzLl9jb250ZXh0PWV9ZnVuY3Rpb24gQmcoZSl7cmV0dXJuIG5ldyB5RnQoZSl9dmFyIExDPU0oKCk9Pnt5RnQucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHx0aGlzLl9saW5lIT09MCYmdGhpcy5fcG9pbnQ9PT0xKSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZT0rZSx0PSt0LHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKGUsdCk6dGhpcy5fY29udGV4dC5tb3ZlVG8oZSx0KTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjtkZWZhdWx0OnRoaXMuX2NvbnRleHQubGluZVRvKGUsdCk7YnJlYWt9fX19KTtmdW5jdGlvbiBMdyhlKXtyZXR1cm4gZVswXX1mdW5jdGlvbiBrdyhlKXtyZXR1cm4gZVsxXX12YXIgdjc9TSgoKT0+e30pO2Z1bmN0aW9uIFJ3KCl7dmFyIGU9THcsdD1rdyxyPUdlKCEwKSxuPW51bGwsaT1CZyxvPW51bGw7ZnVuY3Rpb24gYShzKXt2YXIgbCxjPXMubGVuZ3RoLHUsaD0hMSxmO2ZvcihuPT1udWxsJiYobz1pKGY9SXUoKSkpLGw9MDtsPD1jOysrbCkhKGw8YyYmcih1PXNbbF0sbCxzKSk9PT1oJiYoKGg9IWgpP28ubGluZVN0YXJ0KCk6by5saW5lRW5kKCkpLGgmJm8ucG9pbnQoK2UodSxsLHMpLCt0KHUsbCxzKSk7aWYoZilyZXR1cm4gbz1udWxsLGYrIiJ8fG51bGx9cmV0dXJuIGEueD1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10eXBlb2Ygcz09ImZ1bmN0aW9uIj9zOkdlKCtzKSxhKTplfSxhLnk9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9dHlwZW9mIHM9PSJmdW5jdGlvbiI/czpHZSgrcyksYSk6dH0sYS5kZWZpbmVkPWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXR5cGVvZiBzPT0iZnVuY3Rpb24iP3M6R2UoISFzKSxhKTpyfSxhLmN1cnZlPWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXMsbiE9bnVsbCYmKG89aShuKSksYSk6aX0sYS5jb250ZXh0PWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPT1udWxsP249bz1udWxsOm89aShuPXMpLGEpOm59LGF9dmFyIHg3PU0oKCk9PntQdygpO3pnKCk7TEMoKTt2NygpfSk7ZnVuY3Rpb24gYjcoKXt2YXIgZT1Mdyx0PW51bGwscj1HZSgwKSxuPWt3LGk9R2UoITApLG89bnVsbCxhPUJnLHM9bnVsbDtmdW5jdGlvbiBsKHUpe3ZhciBoLGYscCxkPXUubGVuZ3RoLGcsXz0hMSx5LHg9bmV3IEFycmF5KGQpLGI9bmV3IEFycmF5KGQpO2ZvcihvPT1udWxsJiYocz1hKHk9SXUoKSkpLGg9MDtoPD1kOysraCl7aWYoIShoPGQmJmkoZz11W2hdLGgsdSkpPT09XylpZihfPSFfKWY9aCxzLmFyZWFTdGFydCgpLHMubGluZVN0YXJ0KCk7ZWxzZXtmb3Iocy5saW5lRW5kKCkscy5saW5lU3RhcnQoKSxwPWgtMTtwPj1mOy0tcClzLnBvaW50KHhbcF0sYltwXSk7cy5saW5lRW5kKCkscy5hcmVhRW5kKCl9XyYmKHhbaF09K2UoZyxoLHUpLGJbaF09K3IoZyxoLHUpLHMucG9pbnQodD8rdChnLGgsdSk6eFtoXSxuPytuKGcsaCx1KTpiW2hdKSl9aWYoeSlyZXR1cm4gcz1udWxsLHkrIiJ8fG51bGx9ZnVuY3Rpb24gYygpe3JldHVybiBSdygpLmRlZmluZWQoaSkuY3VydmUoYSkuY29udGV4dChvKX1yZXR1cm4gbC54PWZ1bmN0aW9uKHUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiB1PT0iZnVuY3Rpb24iP3U6R2UoK3UpLHQ9bnVsbCxsKTplfSxsLngwPWZ1bmN0aW9uKHUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiB1PT0iZnVuY3Rpb24iP3U6R2UoK3UpLGwpOmV9LGwueDE9ZnVuY3Rpb24odSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9dT09bnVsbD9udWxsOnR5cGVvZiB1PT0iZnVuY3Rpb24iP3U6R2UoK3UpLGwpOnR9LGwueT1mdW5jdGlvbih1KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10eXBlb2YgdT09ImZ1bmN0aW9uIj91OkdlKCt1KSxuPW51bGwsbCk6cn0sbC55MD1mdW5jdGlvbih1KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10eXBlb2YgdT09ImZ1bmN0aW9uIj91OkdlKCt1KSxsKTpyfSxsLnkxPWZ1bmN0aW9uKHUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXU9PW51bGw/bnVsbDp0eXBlb2YgdT09ImZ1bmN0aW9uIj91OkdlKCt1KSxsKTpufSxsLmxpbmVYMD1sLmxpbmVZMD1mdW5jdGlvbigpe3JldHVybiBjKCkueChlKS55KHIpfSxsLmxpbmVZMT1mdW5jdGlvbigpe3JldHVybiBjKCkueChlKS55KG4pfSxsLmxpbmVYMT1mdW5jdGlvbigpe3JldHVybiBjKCkueCh0KS55KHIpfSxsLmRlZmluZWQ9ZnVuY3Rpb24odSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dHlwZW9mIHU9PSJmdW5jdGlvbiI/dTpHZSghIXUpLGwpOml9LGwuY3VydmU9ZnVuY3Rpb24odSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dSxvIT1udWxsJiYocz1hKG8pKSxsKTphfSxsLmNvbnRleHQ9ZnVuY3Rpb24odSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9PW51bGw/bz1zPW51bGw6cz1hKG89dSksbCk6b30sbH12YXIgQWV0PU0oKCk9PntQdygpO3pnKCk7TEMoKTt4NygpO3Y3KCl9KTtmdW5jdGlvbiB2RnQoZSx0KXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59dmFyIHhGdD1NKCgpPT57fSk7ZnVuY3Rpb24gYkZ0KGUpe3JldHVybiBlfXZhciB3RnQ9TSgoKT0+e30pO2Z1bmN0aW9uIFNGdCgpe3ZhciBlPWJGdCx0PXZGdCxyPW51bGwsbj1HZSgwKSxpPUdlKE1jKSxvPUdlKDApO2Z1bmN0aW9uIGEocyl7dmFyIGwsYz1zLmxlbmd0aCx1LGgsZj0wLHA9bmV3IEFycmF5KGMpLGQ9bmV3IEFycmF5KGMpLGc9K24uYXBwbHkodGhpcyxhcmd1bWVudHMpLF89TWF0aC5taW4oTWMsTWF0aC5tYXgoLU1jLGkuYXBwbHkodGhpcyxhcmd1bWVudHMpLWcpKSx5LHg9TWF0aC5taW4oTWF0aC5hYnMoXykvYyxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksYj14KihfPDA/LTE6MSksUztmb3IobD0wO2w8YzsrK2wpKFM9ZFtwW2xdPWxdPStlKHNbbF0sbCxzKSk+MCYmKGYrPVMpO2Zvcih0IT1udWxsP3Auc29ydChmdW5jdGlvbihDLFApe3JldHVybiB0KGRbQ10sZFtQXSl9KTpyIT1udWxsJiZwLnNvcnQoZnVuY3Rpb24oQyxQKXtyZXR1cm4gcihzW0NdLHNbUF0pfSksbD0wLGg9Zj8oXy1jKmIpL2Y6MDtsPGM7KytsLGc9eSl1PXBbbF0sUz1kW3VdLHk9ZysoUz4wP1MqaDowKStiLGRbdV09e2RhdGE6c1t1XSxpbmRleDpsLHZhbHVlOlMsc3RhcnRBbmdsZTpnLGVuZEFuZ2xlOnkscGFkQW5nbGU6eH07cmV0dXJuIGR9cmV0dXJuIGEudmFsdWU9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dHlwZW9mIHM9PSJmdW5jdGlvbiI/czpHZSgrcyksYSk6ZX0sYS5zb3J0VmFsdWVzPWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXMscj1udWxsLGEpOnR9LGEuc29ydD1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1zLHQ9bnVsbCxhKTpyfSxhLnN0YXJ0QW5nbGU9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dHlwZW9mIHM9PSJmdW5jdGlvbiI/czpHZSgrcyksYSk6bn0sYS5lbmRBbmdsZT1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10eXBlb2Ygcz09ImZ1bmN0aW9uIj9zOkdlKCtzKSxhKTppfSxhLnBhZEFuZ2xlPWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXR5cGVvZiBzPT0iZnVuY3Rpb24iP3M6R2UoK3MpLGEpOm99LGF9dmFyIE1GdD1NKCgpPT57emcoKTt4RnQoKTt3RnQoKTtJdygpfSk7ZnVuY3Rpb24gRUZ0KGUpe3RoaXMuX2N1cnZlPWV9ZnVuY3Rpb24gTncoZSl7ZnVuY3Rpb24gdChyKXtyZXR1cm4gbmV3IEVGdChlKHIpKX1yZXR1cm4gdC5fY3VydmU9ZSx0fXZhciB3NyxQZXQ9TSgoKT0+e0xDKCk7dzc9TncoQmcpO0VGdC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmFyZWFTdGFydCgpfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUuYXJlYUVuZCgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmxpbmVFbmQoKX0scG9pbnQ6ZnVuY3Rpb24oZSx0KXt0aGlzLl9jdXJ2ZS5wb2ludCh0Kk1hdGguc2luKGUpLHQqLU1hdGguY29zKGUpKX19fSk7ZnVuY3Rpb24gRHcoZSl7dmFyIHQ9ZS5jdXJ2ZTtyZXR1cm4gZS5hbmdsZT1lLngsZGVsZXRlIGUueCxlLnJhZGl1cz1lLnksZGVsZXRlIGUueSxlLmN1cnZlPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3QoTncocikpOnQoKS5fY3VydmV9LGV9ZnVuY3Rpb24gSWV0KCl7cmV0dXJuIER3KFJ3KCkuY3VydmUodzcpKX12YXIgTGV0PU0oKCk9PntQZXQoKTt4NygpfSk7ZnVuY3Rpb24ga2V0KCl7dmFyIGU9YjcoKS5jdXJ2ZSh3NyksdD1lLmN1cnZlLHI9ZS5saW5lWDAsbj1lLmxpbmVYMSxpPWUubGluZVkwLG89ZS5saW5lWTE7cmV0dXJuIGUuYW5nbGU9ZS54LGRlbGV0ZSBlLngsZS5zdGFydEFuZ2xlPWUueDAsZGVsZXRlIGUueDAsZS5lbmRBbmdsZT1lLngxLGRlbGV0ZSBlLngxLGUucmFkaXVzPWUueSxkZWxldGUgZS55LGUuaW5uZXJSYWRpdXM9ZS55MCxkZWxldGUgZS55MCxlLm91dGVyUmFkaXVzPWUueTEsZGVsZXRlIGUueTEsZS5saW5lU3RhcnRBbmdsZT1mdW5jdGlvbigpe3JldHVybiBEdyhyKCkpfSxkZWxldGUgZS5saW5lWDAsZS5saW5lRW5kQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gRHcobigpKX0sZGVsZXRlIGUubGluZVgxLGUubGluZUlubmVyUmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIER3KGkoKSl9LGRlbGV0ZSBlLmxpbmVZMCxlLmxpbmVPdXRlclJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBEdyhvKCkpfSxkZWxldGUgZS5saW5lWTEsZS5jdXJ2ZT1mdW5jdGlvbihhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90KE53KGEpKTp0KCkuX2N1cnZlfSxlfXZhciBURnQ9TSgoKT0+e1BldCgpO0FldCgpO0xldCgpfSk7ZnVuY3Rpb24gcHYoZSx0KXtyZXR1cm5bKHQ9K3QpKk1hdGguY29zKGUtPU1hdGguUEkvMiksdCpNYXRoLnNpbihlKV19dmFyIFJldD1NKCgpPT57fSk7dmFyIGtDLE5ldD1NKCgpPT57a0M9QXJyYXkucHJvdG90eXBlLnNsaWNlfSk7ZnVuY3Rpb24gd0xlKGUpe3JldHVybiBlLnNvdXJjZX1mdW5jdGlvbiBTTGUoZSl7cmV0dXJuIGUudGFyZ2V0fWZ1bmN0aW9uIERldChlKXt2YXIgdD13TGUscj1TTGUsbj1MdyxpPWt3LG89bnVsbDtmdW5jdGlvbiBhKCl7dmFyIHMsbD1rQy5jYWxsKGFyZ3VtZW50cyksYz10LmFwcGx5KHRoaXMsbCksdT1yLmFwcGx5KHRoaXMsbCk7aWYob3x8KG89cz1JdSgpKSxlKG8sK24uYXBwbHkodGhpcywobFswXT1jLGwpKSwraS5hcHBseSh0aGlzLGwpLCtuLmFwcGx5KHRoaXMsKGxbMF09dSxsKSksK2kuYXBwbHkodGhpcyxsKSkscylyZXR1cm4gbz1udWxsLHMrIiJ8fG51bGx9cmV0dXJuIGEuc291cmNlPWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXMsYSk6dH0sYS50YXJnZXQ9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9cyxhKTpyfSxhLng9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dHlwZW9mIHM9PSJmdW5jdGlvbiI/czpHZSgrcyksYSk6bn0sYS55PWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXR5cGVvZiBzPT0iZnVuY3Rpb24iP3M6R2UoK3MpLGEpOml9LGEuY29udGV4dD1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1zPT1udWxsP251bGw6cyxhKTpvfSxhfWZ1bmN0aW9uIE1MZShlLHQscixuLGkpe2UubW92ZVRvKHQsciksZS5iZXppZXJDdXJ2ZVRvKHQ9KHQrbikvMixyLHQsaSxuLGkpfWZ1bmN0aW9uIEVMZShlLHQscixuLGkpe2UubW92ZVRvKHQsciksZS5iZXppZXJDdXJ2ZVRvKHQscj0ocitpKS8yLG4scixuLGkpfWZ1bmN0aW9uIFRMZShlLHQscixuLGkpe3ZhciBvPXB2KHQsciksYT1wdih0LHI9KHIraSkvMikscz1wdihuLHIpLGw9cHYobixpKTtlLm1vdmVUbyhvWzBdLG9bMV0pLGUuYmV6aWVyQ3VydmVUbyhhWzBdLGFbMV0sc1swXSxzWzFdLGxbMF0sbFsxXSl9ZnVuY3Rpb24gQ0Z0KCl7cmV0dXJuIERldChNTGUpfWZ1bmN0aW9uIEFGdCgpe3JldHVybiBEZXQoRUxlKX1mdW5jdGlvbiBQRnQoKXt2YXIgZT1EZXQoVExlKTtyZXR1cm4gZS5hbmdsZT1lLngsZGVsZXRlIGUueCxlLnJhZGl1cz1lLnksZGVsZXRlIGUueSxlfXZhciBJRnQ9TSgoKT0+e1B3KCk7TmV0KCk7emcoKTt2NygpO1JldCgpfSk7dmFyIFJDLE9ldD1NKCgpPT57SXcoKTtSQz17ZHJhdzpmdW5jdGlvbihlLHQpe3ZhciByPU1hdGguc3FydCh0L2t1KTtlLm1vdmVUbyhyLDApLGUuYXJjKDAsMCxyLDAsTWMpfX19KTt2YXIgUzcsemV0PU0oKCk9PntTNz17ZHJhdzpmdW5jdGlvbihlLHQpe3ZhciByPU1hdGguc3FydCh0LzUpLzI7ZS5tb3ZlVG8oLTMqciwtciksZS5saW5lVG8oLXIsLXIpLGUubGluZVRvKC1yLC0zKnIpLGUubGluZVRvKHIsLTMqciksZS5saW5lVG8ociwtciksZS5saW5lVG8oMypyLC1yKSxlLmxpbmVUbygzKnIsciksZS5saW5lVG8ocixyKSxlLmxpbmVUbyhyLDMqciksZS5saW5lVG8oLXIsMypyKSxlLmxpbmVUbygtcixyKSxlLmxpbmVUbygtMypyLHIpLGUuY2xvc2VQYXRoKCl9fX0pO3ZhciBMRnQsQ0xlLE03LEZldD1NKCgpPT57TEZ0PU1hdGguc3FydCguMzMzMzMzMzMzMzMzMzMzMyksQ0xlPUxGdCoyLE03PXtkcmF3OmZ1bmN0aW9uKGUsdCl7dmFyIHI9TWF0aC5zcXJ0KHQvQ0xlKSxuPXIqTEZ0O2UubW92ZVRvKDAsLXIpLGUubGluZVRvKG4sMCksZS5saW5lVG8oMCxyKSxlLmxpbmVUbygtbiwwKSxlLmNsb3NlUGF0aCgpfX19KTt2YXIgQUxlLGtGdCxQTGUsSUxlLEU3LEJldD1NKCgpPT57SXcoKTtBTGU9Ljg5MDgxMzA5MTUyOTI4NTIsa0Z0PU1hdGguc2luKGt1LzEwKS9NYXRoLnNpbig3Kmt1LzEwKSxQTGU9TWF0aC5zaW4oTWMvMTApKmtGdCxJTGU9LU1hdGguY29zKE1jLzEwKSprRnQsRTc9e2RyYXc6ZnVuY3Rpb24oZSx0KXt2YXIgcj1NYXRoLnNxcnQodCpBTGUpLG49UExlKnIsaT1JTGUqcjtlLm1vdmVUbygwLC1yKSxlLmxpbmVUbyhuLGkpO2Zvcih2YXIgbz0xO288NTsrK28pe3ZhciBhPU1jKm8vNSxzPU1hdGguY29zKGEpLGw9TWF0aC5zaW4oYSk7ZS5saW5lVG8obCpyLC1zKnIpLGUubGluZVRvKHMqbi1sKmksbCpuK3MqaSl9ZS5jbG9zZVBhdGgoKX19fSk7dmFyIFQ3LEhldD1NKCgpPT57VDc9e2RyYXc6ZnVuY3Rpb24oZSx0KXt2YXIgcj1NYXRoLnNxcnQodCksbj0tci8yO2UucmVjdChuLG4scixyKX19fSk7dmFyIFZldCxDNyxVZXQ9TSgoKT0+e1ZldD1NYXRoLnNxcnQoMyksQzc9e2RyYXc6ZnVuY3Rpb24oZSx0KXt2YXIgcj0tTWF0aC5zcXJ0KHQvKFZldCozKSk7ZS5tb3ZlVG8oMCxyKjIpLGUubGluZVRvKC1WZXQqciwtciksZS5saW5lVG8oVmV0KnIsLXIpLGUuY2xvc2VQYXRoKCl9fX0pO3ZhciBFYyxUYyxxZXQsTExlLEE3LEdldD1NKCgpPT57RWM9LS41LFRjPU1hdGguc3FydCgzKS8yLHFldD0xL01hdGguc3FydCgxMiksTExlPShxZXQvMisxKSozLEE3PXtkcmF3OmZ1bmN0aW9uKGUsdCl7dmFyIHI9TWF0aC5zcXJ0KHQvTExlKSxuPXIvMixpPXIqcWV0LG89bixhPXIqcWV0K3Iscz0tbyxsPWE7ZS5tb3ZlVG8obixpKSxlLmxpbmVUbyhvLGEpLGUubGluZVRvKHMsbCksZS5saW5lVG8oRWMqbi1UYyppLFRjKm4rRWMqaSksZS5saW5lVG8oRWMqby1UYyphLFRjKm8rRWMqYSksZS5saW5lVG8oRWMqcy1UYypsLFRjKnMrRWMqbCksZS5saW5lVG8oRWMqbitUYyppLEVjKmktVGMqbiksZS5saW5lVG8oRWMqbytUYyphLEVjKmEtVGMqbyksZS5saW5lVG8oRWMqcytUYypsLEVjKmwtVGMqcyksZS5jbG9zZVBhdGgoKX19fSk7ZnVuY3Rpb24gTkZ0KCl7dmFyIGU9R2UoUkMpLHQ9R2UoNjQpLHI9bnVsbDtmdW5jdGlvbiBuKCl7dmFyIGk7aWYocnx8KHI9aT1JdSgpKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKS5kcmF3KHIsK3QuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxpKXJldHVybiByPW51bGwsaSsiInx8bnVsbH1yZXR1cm4gbi50eXBlPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiBpPT0iZnVuY3Rpb24iP2k6R2UoaSksbik6ZX0sbi5zaXplPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXR5cGVvZiBpPT0iZnVuY3Rpb24iP2k6R2UoK2kpLG4pOnR9LG4uY29udGV4dD1mdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1pPT1udWxsP251bGw6aSxuKTpyfSxufXZhciBSRnQsREZ0PU0oKCk9PntQdygpO09ldCgpO3pldCgpO0ZldCgpO0JldCgpO0hldCgpO1VldCgpO0dldCgpO3pnKCk7UkZ0PVtSQyxTNyxNNyxUNyxFNyxDNyxBN119KTtmdW5jdGlvbiBDYygpe312YXIgTkM9TSgoKT0+e30pO2Z1bmN0aW9uIE93KGUsdCxyKXtlLl9jb250ZXh0LmJlemllckN1cnZlVG8oKDIqZS5feDArZS5feDEpLzMsKDIqZS5feTArZS5feTEpLzMsKGUuX3gwKzIqZS5feDEpLzMsKGUuX3kwKzIqZS5feTEpLzMsKGUuX3gwKzQqZS5feDErdCkvNiwoZS5feTArNCplLl95MStyKS82KX1mdW5jdGlvbiBEQyhlKXt0aGlzLl9jb250ZXh0PWV9ZnVuY3Rpb24gT0Z0KGUpe3JldHVybiBuZXcgREMoZSl9dmFyIE9DPU0oKCk9PntEQy5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl95MD10aGlzLl95MT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAzOk93KHRoaXMsdGhpcy5feDEsdGhpcy5feTEpO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSk7YnJlYWt9KHRoaXMuX2xpbmV8fHRoaXMuX2xpbmUhPT0wJiZ0aGlzLl9wb2ludD09PTEpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbihlLHQpe3N3aXRjaChlPStlLHQ9K3QsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8oZSx0KTp0aGlzLl9jb250ZXh0Lm1vdmVUbyhlLHQpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2NvbnRleHQubGluZVRvKCg1KnRoaXMuX3gwK3RoaXMuX3gxKS82LCg1KnRoaXMuX3kwK3RoaXMuX3kxKS82KTtkZWZhdWx0Ok93KHRoaXMsZSx0KTticmVha310aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT1lLHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXR9fX0pO2Z1bmN0aW9uIHpGdChlKXt0aGlzLl9jb250ZXh0PWV9ZnVuY3Rpb24gRkZ0KGUpe3JldHVybiBuZXcgekZ0KGUpfXZhciBCRnQ9TSgoKT0+e05DKCk7T0MoKTt6RnQucHJvdG90eXBlPXthcmVhU3RhcnQ6Q2MsYXJlYUVuZDpDYyxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnt0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Mix0aGlzLl95MiksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVha31jYXNlIDI6e3RoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MisyKnRoaXMuX3gzKS8zLCh0aGlzLl95MisyKnRoaXMuX3kzKS8zKSx0aGlzLl9jb250ZXh0LmxpbmVUbygodGhpcy5feDMrMip0aGlzLl94MikvMywodGhpcy5feTMrMip0aGlzLl95MikvMyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVha31jYXNlIDM6e3RoaXMucG9pbnQodGhpcy5feDIsdGhpcy5feTIpLHRoaXMucG9pbnQodGhpcy5feDMsdGhpcy5feTMpLHRoaXMucG9pbnQodGhpcy5feDQsdGhpcy5feTQpO2JyZWFrfX19LHBvaW50OmZ1bmN0aW9uKGUsdCl7c3dpdGNoKGU9K2UsdD0rdCx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5feDI9ZSx0aGlzLl95Mj10O2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX3gzPWUsdGhpcy5feTM9dDticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94ND1lLHRoaXMuX3k0PXQsdGhpcy5fY29udGV4dC5tb3ZlVG8oKHRoaXMuX3gwKzQqdGhpcy5feDErZSkvNiwodGhpcy5feTArNCp0aGlzLl95MSt0KS82KTticmVhaztkZWZhdWx0Ok93KHRoaXMsZSx0KTticmVha310aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT1lLHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXR9fX0pO2Z1bmN0aW9uIEhGdChlKXt0aGlzLl9jb250ZXh0PWV9ZnVuY3Rpb24gVkZ0KGUpe3JldHVybiBuZXcgSEZ0KGUpfXZhciBVRnQ9TSgoKT0+e09DKCk7SEZ0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3kwPXRoaXMuX3kxPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fHRoaXMuX2xpbmUhPT0wJiZ0aGlzLl9wb2ludD09PTMpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbihlLHQpe3N3aXRjaChlPStlLHQ9K3QsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO3ZhciByPSh0aGlzLl94MCs0KnRoaXMuX3gxK2UpLzYsbj0odGhpcy5feTArNCp0aGlzLl95MSt0KS82O3RoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8ocixuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyhyLG4pO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6T3codGhpcyxlLHQpO2JyZWFrfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPWUsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dH19fSk7ZnVuY3Rpb24gcUZ0KGUsdCl7dGhpcy5fYmFzaXM9bmV3IERDKGUpLHRoaXMuX2JldGE9dH12YXIgR0Z0LFdGdD1NKCgpPT57T0MoKTtxRnQucHJvdG90eXBlPXtsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PVtdLHRoaXMuX3k9W10sdGhpcy5fYmFzaXMubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl94LHQ9dGhpcy5feSxyPWUubGVuZ3RoLTE7aWYocj4wKWZvcih2YXIgbj1lWzBdLGk9dFswXSxvPWVbcl0tbixhPXRbcl0taSxzPS0xLGw7KytzPD1yOylsPXMvcix0aGlzLl9iYXNpcy5wb2ludCh0aGlzLl9iZXRhKmVbc10rKDEtdGhpcy5fYmV0YSkqKG4rbCpvKSx0aGlzLl9iZXRhKnRbc10rKDEtdGhpcy5fYmV0YSkqKGkrbCphKSk7dGhpcy5feD10aGlzLl95PW51bGwsdGhpcy5fYmFzaXMubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbihlLHQpe3RoaXMuX3gucHVzaCgrZSksdGhpcy5feS5wdXNoKCt0KX19O0dGdD1mdW5jdGlvbiBlKHQpe2Z1bmN0aW9uIHIobil7cmV0dXJuIHQ9PT0xP25ldyBEQyhuKTpuZXcgcUZ0KG4sdCl9cmV0dXJuIHIuYmV0YT1mdW5jdGlvbihuKXtyZXR1cm4gZSgrbil9LHJ9KC44NSl9KTtmdW5jdGlvbiB6dyhlLHQscil7ZS5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKGUuX3gxK2UuX2sqKGUuX3gyLWUuX3gwKSxlLl95MStlLl9rKihlLl95Mi1lLl95MCksZS5feDIrZS5fayooZS5feDEtdCksZS5feTIrZS5fayooZS5feTEtciksZS5feDIsZS5feTIpfWZ1bmN0aW9uIFA3KGUsdCl7dGhpcy5fY29udGV4dD1lLHRoaXMuX2s9KDEtdCkvNn12YXIgWUZ0LHpDPU0oKCk9PntQNy5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6encodGhpcyx0aGlzLl94MSx0aGlzLl95MSk7YnJlYWt9KHRoaXMuX2xpbmV8fHRoaXMuX2xpbmUhPT0wJiZ0aGlzLl9wb2ludD09PTEpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbihlLHQpe3N3aXRjaChlPStlLHQ9K3QsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8oZSx0KTp0aGlzLl9jb250ZXh0Lm1vdmVUbyhlLHQpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX3gxPWUsdGhpcy5feTE9dDticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0Onp3KHRoaXMsZSx0KTticmVha310aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj1lLHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPXR9fTtZRnQ9ZnVuY3Rpb24gZSh0KXtmdW5jdGlvbiByKG4pe3JldHVybiBuZXcgUDcobix0KX1yZXR1cm4gci50ZW5zaW9uPWZ1bmN0aW9uKG4pe3JldHVybiBlKCtuKX0scn0oMCl9KTtmdW5jdGlvbiBJNyhlLHQpe3RoaXMuX2NvbnRleHQ9ZSx0aGlzLl9rPSgxLXQpLzZ9dmFyIGpGdCxXZXQ9TSgoKT0+e05DKCk7ekMoKTtJNy5wcm90b3R5cGU9e2FyZWFTdGFydDpDYyxhcmVhRW5kOkNjLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6e3RoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrfWNhc2UgMjp7dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZSAzOnt0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KTticmVha319fSxwb2ludDpmdW5jdGlvbihlLHQpe3N3aXRjaChlPStlLHQ9K3QsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPWUsdGhpcy5feTM9dDticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND1lLHRoaXMuX3k0PXQpO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PWUsdGhpcy5feTU9dDticmVhaztkZWZhdWx0Onp3KHRoaXMsZSx0KTticmVha310aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj1lLHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPXR9fTtqRnQ9ZnVuY3Rpb24gZSh0KXtmdW5jdGlvbiByKG4pe3JldHVybiBuZXcgSTcobix0KX1yZXR1cm4gci50ZW5zaW9uPWZ1bmN0aW9uKG4pe3JldHVybiBlKCtuKX0scn0oMCl9KTtmdW5jdGlvbiBMNyhlLHQpe3RoaXMuX2NvbnRleHQ9ZSx0aGlzLl9rPSgxLXQpLzZ9dmFyIFhGdCxZZXQ9TSgoKT0+e3pDKCk7TDcucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8dGhpcy5fbGluZSE9PTAmJnRoaXMuX3BvaW50PT09MykmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKGUsdCl7c3dpdGNoKGU9K2UsdD0rdCx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6encodGhpcyxlLHQpO2JyZWFrfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPWUsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9dH19O1hGdD1mdW5jdGlvbiBlKHQpe2Z1bmN0aW9uIHIobil7cmV0dXJuIG5ldyBMNyhuLHQpfXJldHVybiByLnRlbnNpb249ZnVuY3Rpb24obil7cmV0dXJuIGUoK24pfSxyfSgwKX0pO2Z1bmN0aW9uIEZDKGUsdCxyKXt2YXIgbj1lLl94MSxpPWUuX3kxLG89ZS5feDIsYT1lLl95MjtpZihlLl9sMDFfYT5Dbyl7dmFyIHM9MiplLl9sMDFfMmErMyplLl9sMDFfYSplLl9sMTJfYStlLl9sMTJfMmEsbD0zKmUuX2wwMV9hKihlLl9sMDFfYStlLl9sMTJfYSk7bj0obipzLWUuX3gwKmUuX2wxMl8yYStlLl94MiplLl9sMDFfMmEpL2wsaT0oaSpzLWUuX3kwKmUuX2wxMl8yYStlLl95MiplLl9sMDFfMmEpL2x9aWYoZS5fbDIzX2E+Q28pe3ZhciBjPTIqZS5fbDIzXzJhKzMqZS5fbDIzX2EqZS5fbDEyX2ErZS5fbDEyXzJhLHU9MyplLl9sMjNfYSooZS5fbDIzX2ErZS5fbDEyX2EpO289KG8qYytlLl94MSplLl9sMjNfMmEtdCplLl9sMTJfMmEpL3UsYT0oYSpjK2UuX3kxKmUuX2wyM18yYS1yKmUuX2wxMl8yYSkvdX1lLl9jb250ZXh0LmJlemllckN1cnZlVG8obixpLG8sYSxlLl94MixlLl95Mil9ZnVuY3Rpb24gJEZ0KGUsdCl7dGhpcy5fY29udGV4dD1lLHRoaXMuX2FscGhhPXR9dmFyIEtGdCxrNz1NKCgpPT57SXcoKTt6QygpOyRGdC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWt9KHRoaXMuX2xpbmV8fHRoaXMuX2xpbmUhPT0wJiZ0aGlzLl9wb2ludD09PTEpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbihlLHQpe2lmKGU9K2UsdD0rdCx0aGlzLl9wb2ludCl7dmFyIHI9dGhpcy5feDItZSxuPXRoaXMuX3kyLXQ7dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhyKnIrbipuLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKGUsdCk6dGhpcy5fY29udGV4dC5tb3ZlVG8oZSx0KTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0OkZDKHRoaXMsZSx0KTticmVha310aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9ZSx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj10fX07S0Z0PWZ1bmN0aW9uIGUodCl7ZnVuY3Rpb24gcihuKXtyZXR1cm4gdD9uZXcgJEZ0KG4sdCk6bmV3IFA3KG4sMCl9cmV0dXJuIHIuYWxwaGE9ZnVuY3Rpb24obil7cmV0dXJuIGUoK24pfSxyfSguNSl9KTtmdW5jdGlvbiBaRnQoZSx0KXt0aGlzLl9jb250ZXh0PWUsdGhpcy5fYWxwaGE9dH12YXIgSkZ0LFFGdD1NKCgpPT57V2V0KCk7TkMoKTtrNygpO1pGdC5wcm90b3R5cGU9e2FyZWFTdGFydDpDYyxhcmVhRW5kOkNjLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6e3RoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrfWNhc2UgMjp7dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZSAzOnt0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KTticmVha319fSxwb2ludDpmdW5jdGlvbihlLHQpe2lmKGU9K2UsdD0rdCx0aGlzLl9wb2ludCl7dmFyIHI9dGhpcy5feDItZSxuPXRoaXMuX3kyLXQ7dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhyKnIrbipuLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mz1lLHRoaXMuX3kzPXQ7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDQ9ZSx0aGlzLl95ND10KTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94NT1lLHRoaXMuX3k1PXQ7YnJlYWs7ZGVmYXVsdDpGQyh0aGlzLGUsdCk7YnJlYWt9dGhpcy5fbDAxX2E9dGhpcy5fbDEyX2EsdGhpcy5fbDEyX2E9dGhpcy5fbDIzX2EsdGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYSx0aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhLHRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPWUsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9dH19O0pGdD1mdW5jdGlvbiBlKHQpe2Z1bmN0aW9uIHIobil7cmV0dXJuIHQ/bmV3IFpGdChuLHQpOm5ldyBJNyhuLDApfXJldHVybiByLmFscGhhPWZ1bmN0aW9uKG4pe3JldHVybiBlKCtuKX0scn0oLjUpfSk7ZnVuY3Rpb24gdEJ0KGUsdCl7dGhpcy5fY29udGV4dD1lLHRoaXMuX2FscGhhPXR9dmFyIGVCdCxyQnQ9TSgoKT0+e1lldCgpO2s3KCk7dEJ0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fHRoaXMuX2xpbmUhPT0wJiZ0aGlzLl9wb2ludD09PTMpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbihlLHQpe2lmKGU9K2UsdD0rdCx0aGlzLl9wb2ludCl7dmFyIHI9dGhpcy5feDItZSxuPXRoaXMuX3kyLXQ7dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhyKnIrbipuLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpGQyh0aGlzLGUsdCk7YnJlYWt9dGhpcy5fbDAxX2E9dGhpcy5fbDEyX2EsdGhpcy5fbDEyX2E9dGhpcy5fbDIzX2EsdGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYSx0aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhLHRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPWUsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9dH19O2VCdD1mdW5jdGlvbiBlKHQpe2Z1bmN0aW9uIHIobil7cmV0dXJuIHQ/bmV3IHRCdChuLHQpOm5ldyBMNyhuLDApfXJldHVybiByLmFscGhhPWZ1bmN0aW9uKG4pe3JldHVybiBlKCtuKX0scn0oLjUpfSk7ZnVuY3Rpb24gbkJ0KGUpe3RoaXMuX2NvbnRleHQ9ZX1mdW5jdGlvbiBpQnQoZSl7cmV0dXJuIG5ldyBuQnQoZSl9dmFyIG9CdD1NKCgpPT57TkMoKTtuQnQucHJvdG90eXBlPXthcmVhU3RhcnQ6Q2MsYXJlYUVuZDpDYyxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCl9LHBvaW50OmZ1bmN0aW9uKGUsdCl7ZT0rZSx0PSt0LHRoaXMuX3BvaW50P3RoaXMuX2NvbnRleHQubGluZVRvKGUsdCk6KHRoaXMuX3BvaW50PTEsdGhpcy5fY29udGV4dC5tb3ZlVG8oZSx0KSl9fX0pO2Z1bmN0aW9uIGFCdChlKXtyZXR1cm4gZTwwPy0xOjF9ZnVuY3Rpb24gc0J0KGUsdCxyKXt2YXIgbj1lLl94MS1lLl94MCxpPXQtZS5feDEsbz0oZS5feTEtZS5feTApLyhufHxpPDAmJi0wKSxhPShyLWUuX3kxKS8oaXx8bjwwJiYtMCkscz0obyppK2EqbikvKG4raSk7cmV0dXJuKGFCdChvKSthQnQoYSkpKk1hdGgubWluKE1hdGguYWJzKG8pLE1hdGguYWJzKGEpLC41Kk1hdGguYWJzKHMpKXx8MH1mdW5jdGlvbiBsQnQoZSx0KXt2YXIgcj1lLl94MS1lLl94MDtyZXR1cm4gcj8oMyooZS5feTEtZS5feTApL3ItdCkvMjp0fWZ1bmN0aW9uIGpldChlLHQscil7dmFyIG49ZS5feDAsaT1lLl95MCxvPWUuX3gxLGE9ZS5feTEscz0oby1uKS8zO2UuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhuK3MsaStzKnQsby1zLGEtcypyLG8sYSl9ZnVuY3Rpb24gUjcoZSl7dGhpcy5fY29udGV4dD1lfWZ1bmN0aW9uIGNCdChlKXt0aGlzLl9jb250ZXh0PW5ldyB1QnQoZSl9ZnVuY3Rpb24gdUJ0KGUpe3RoaXMuX2NvbnRleHQ9ZX1mdW5jdGlvbiBoQnQoZSl7cmV0dXJuIG5ldyBSNyhlKX1mdW5jdGlvbiBmQnQoZSl7cmV0dXJuIG5ldyBjQnQoZSl9dmFyIHBCdD1NKCgpPT57UjcucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5fdDA9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSk7YnJlYWs7Y2FzZSAzOmpldCh0aGlzLHRoaXMuX3QwLGxCdCh0aGlzLHRoaXMuX3QwKSk7YnJlYWt9KHRoaXMuX2xpbmV8fHRoaXMuX2xpbmUhPT0wJiZ0aGlzLl9wb2ludD09PTEpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbihlLHQpe3ZhciByPU5hTjtpZihlPStlLHQ9K3QsIShlPT09dGhpcy5feDEmJnQ9PT10aGlzLl95MSkpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyhlLHQpOnRoaXMuX2NvbnRleHQubW92ZVRvKGUsdCk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsamV0KHRoaXMsbEJ0KHRoaXMscj1zQnQodGhpcyxlLHQpKSxyKTticmVhaztkZWZhdWx0OmpldCh0aGlzLHRoaXMuX3QwLHI9c0J0KHRoaXMsZSx0KSk7YnJlYWt9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9ZSx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10LHRoaXMuX3QwPXJ9fX07KGNCdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShSNy5wcm90b3R5cGUpKS5wb2ludD1mdW5jdGlvbihlLHQpe1I3LnByb3RvdHlwZS5wb2ludC5jYWxsKHRoaXMsdCxlKX07dUJ0LnByb3RvdHlwZT17bW92ZVRvOmZ1bmN0aW9uKGUsdCl7dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7dGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKX0sbGluZVRvOmZ1bmN0aW9uKGUsdCl7dGhpcy5fY29udGV4dC5saW5lVG8odCxlKX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbihlLHQscixuLGksbyl7dGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHQsZSxuLHIsbyxpKX19fSk7ZnVuY3Rpb24gbUJ0KGUpe3RoaXMuX2NvbnRleHQ9ZX1mdW5jdGlvbiBkQnQoZSl7dmFyIHQscj1lLmxlbmd0aC0xLG4saT1uZXcgQXJyYXkociksbz1uZXcgQXJyYXkociksYT1uZXcgQXJyYXkocik7Zm9yKGlbMF09MCxvWzBdPTIsYVswXT1lWzBdKzIqZVsxXSx0PTE7dDxyLTE7Kyt0KWlbdF09MSxvW3RdPTQsYVt0XT00KmVbdF0rMiplW3QrMV07Zm9yKGlbci0xXT0yLG9bci0xXT03LGFbci0xXT04KmVbci0xXStlW3JdLHQ9MTt0PHI7Kyt0KW49aVt0XS9vW3QtMV0sb1t0XS09bixhW3RdLT1uKmFbdC0xXTtmb3IoaVtyLTFdPWFbci0xXS9vW3ItMV0sdD1yLTI7dD49MDstLXQpaVt0XT0oYVt0XS1pW3QrMV0pL29bdF07Zm9yKG9bci0xXT0oZVtyXStpW3ItMV0pLzIsdD0wO3Q8ci0xOysrdClvW3RdPTIqZVt0KzFdLWlbdCsxXTtyZXR1cm5baSxvXX1mdW5jdGlvbiBnQnQoZSl7cmV0dXJuIG5ldyBtQnQoZSl9dmFyIF9CdD1NKCgpPT57bUJ0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9W10sdGhpcy5feT1bXX0sbGluZUVuZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3gsdD10aGlzLl95LHI9ZS5sZW5ndGg7aWYocilpZih0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKGVbMF0sdFswXSk6dGhpcy5fY29udGV4dC5tb3ZlVG8oZVswXSx0WzBdKSxyPT09Mil0aGlzLl9jb250ZXh0LmxpbmVUbyhlWzFdLHRbMV0pO2Vsc2UgZm9yKHZhciBuPWRCdChlKSxpPWRCdCh0KSxvPTAsYT0xO2E8cjsrK28sKythKXRoaXMuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhuWzBdW29dLGlbMF1bb10sblsxXVtvXSxpWzFdW29dLGVbYV0sdFthXSk7KHRoaXMuX2xpbmV8fHRoaXMuX2xpbmUhPT0wJiZyPT09MSkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmUsdGhpcy5feD10aGlzLl95PW51bGx9LHBvaW50OmZ1bmN0aW9uKGUsdCl7dGhpcy5feC5wdXNoKCtlKSx0aGlzLl95LnB1c2goK3QpfX19KTtmdW5jdGlvbiBONyhlLHQpe3RoaXMuX2NvbnRleHQ9ZSx0aGlzLl90PXR9ZnVuY3Rpb24geUJ0KGUpe3JldHVybiBuZXcgTjcoZSwuNSl9ZnVuY3Rpb24gdkJ0KGUpe3JldHVybiBuZXcgTjcoZSwwKX1mdW5jdGlvbiB4QnQoZSl7cmV0dXJuIG5ldyBONyhlLDEpfXZhciBiQnQ9TSgoKT0+e043LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9dGhpcy5feT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA8dGhpcy5fdCYmdGhpcy5fdDwxJiZ0aGlzLl9wb2ludD09PTImJnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsdGhpcy5feSksKHRoaXMuX2xpbmV8fHRoaXMuX2xpbmUhPT0wJiZ0aGlzLl9wb2ludD09PTEpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU+PTAmJih0aGlzLl90PTEtdGhpcy5fdCx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSl9LHBvaW50OmZ1bmN0aW9uKGUsdCl7c3dpdGNoKGU9K2UsdD0rdCx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyhlLHQpOnRoaXMuX2NvbnRleHQubW92ZVRvKGUsdCk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDp7aWYodGhpcy5fdDw9MCl0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94LHQpLHRoaXMuX2NvbnRleHQubGluZVRvKGUsdCk7ZWxzZXt2YXIgcj10aGlzLl94KigxLXRoaXMuX3QpK2UqdGhpcy5fdDt0aGlzLl9jb250ZXh0LmxpbmVUbyhyLHRoaXMuX3kpLHRoaXMuX2NvbnRleHQubGluZVRvKHIsdCl9YnJlYWt9fXRoaXMuX3g9ZSx0aGlzLl95PXR9fX0pO2Z1bmN0aW9uIFJ1KGUsdCl7aWYoKGE9ZS5sZW5ndGgpPjEpZm9yKHZhciByPTEsbixpLG89ZVt0WzBdXSxhLHM9by5sZW5ndGg7cjxhOysrcilmb3IoaT1vLG89ZVt0W3JdXSxuPTA7bjxzOysrbilvW25dWzFdKz1vW25dWzBdPWlzTmFOKGlbbl1bMV0pP2lbbl1bMF06aVtuXVsxXX12YXIgRnc9TSgoKT0+e30pO2Z1bmN0aW9uIE51KGUpe2Zvcih2YXIgdD1lLmxlbmd0aCxyPW5ldyBBcnJheSh0KTstLXQ+PTA7KXJbdF09dDtyZXR1cm4gcn12YXIgQnc9TSgoKT0+e30pO2Z1bmN0aW9uIGtMZShlLHQpe3JldHVybiBlW3RdfWZ1bmN0aW9uIHdCdCgpe3ZhciBlPUdlKFtdKSx0PU51LHI9UnUsbj1rTGU7ZnVuY3Rpb24gaShvKXt2YXIgYT1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxzLGw9by5sZW5ndGgsYz1hLmxlbmd0aCx1PW5ldyBBcnJheShjKSxoO2ZvcihzPTA7czxjOysrcyl7Zm9yKHZhciBmPWFbc10scD11W3NdPW5ldyBBcnJheShsKSxkPTAsZztkPGw7KytkKXBbZF09Zz1bMCwrbihvW2RdLGYsZCxvKV0sZy5kYXRhPW9bZF07cC5rZXk9Zn1mb3Iocz0wLGg9dCh1KTtzPGM7KytzKXVbaFtzXV0uaW5kZXg9cztyZXR1cm4gcih1LGgpLHV9cmV0dXJuIGkua2V5cz1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10eXBlb2Ygbz09ImZ1bmN0aW9uIj9vOkdlKGtDLmNhbGwobykpLGkpOmV9LGkudmFsdWU9ZnVuY3Rpb24obyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dHlwZW9mIG89PSJmdW5jdGlvbiI/bzpHZSgrbyksaSk6bn0saS5vcmRlcj1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1vPT1udWxsP051OnR5cGVvZiBvPT0iZnVuY3Rpb24iP286R2Uoa0MuY2FsbChvKSksaSk6dH0saS5vZmZzZXQ9ZnVuY3Rpb24obyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bz09bnVsbD9SdTpvLGkpOnJ9LGl9dmFyIFNCdD1NKCgpPT57TmV0KCk7emcoKTtGdygpO0J3KCl9KTtmdW5jdGlvbiBNQnQoZSx0KXtpZigobj1lLmxlbmd0aCk+MCl7Zm9yKHZhciByLG4saT0wLG89ZVswXS5sZW5ndGgsYTtpPG87KytpKXtmb3IoYT1yPTA7cjxuOysrcilhKz1lW3JdW2ldWzFdfHwwO2lmKGEpZm9yKHI9MDtyPG47KytyKWVbcl1baV1bMV0vPWF9UnUoZSx0KX19dmFyIEVCdD1NKCgpPT57RncoKX0pO2Z1bmN0aW9uIFRCdChlLHQpe2lmKChsPWUubGVuZ3RoKT4xKWZvcih2YXIgcixuPTAsaSxvLGEscyxsLGM9ZVt0WzBdXS5sZW5ndGg7bjxjOysrbilmb3IoYT1zPTAscj0wO3I8bDsrK3IpKG89KGk9ZVt0W3JdXVtuXSlbMV0taVswXSk+PTA/KGlbMF09YSxpWzFdPWErPW8pOm88MD8oaVsxXT1zLGlbMF09cys9byk6aVswXT1hfXZhciBDQnQ9TSgoKT0+e30pO2Z1bmN0aW9uIEFCdChlLHQpe2lmKChpPWUubGVuZ3RoKT4wKXtmb3IodmFyIHI9MCxuPWVbdFswXV0saSxvPW4ubGVuZ3RoO3I8bzsrK3Ipe2Zvcih2YXIgYT0wLHM9MDthPGk7KythKXMrPWVbYV1bcl1bMV18fDA7bltyXVsxXSs9bltyXVswXT0tcy8yfVJ1KGUsdCl9fXZhciBQQnQ9TSgoKT0+e0Z3KCl9KTtmdW5jdGlvbiBJQnQoZSx0KXtpZighKCEoKGE9ZS5sZW5ndGgpPjApfHwhKChvPShpPWVbdFswXV0pLmxlbmd0aCk+MCkpKXtmb3IodmFyIHI9MCxuPTEsaSxvLGE7bjxvOysrbil7Zm9yKHZhciBzPTAsbD0wLGM9MDtzPGE7KytzKXtmb3IodmFyIHU9ZVt0W3NdXSxoPXVbbl1bMV18fDAsZj11W24tMV1bMV18fDAscD0oaC1mKS8yLGQ9MDtkPHM7KytkKXt2YXIgZz1lW3RbZF1dLF89Z1tuXVsxXXx8MCx5PWdbbi0xXVsxXXx8MDtwKz1fLXl9bCs9aCxjKz1wKmh9aVtuLTFdWzFdKz1pW24tMV1bMF09cixsJiYoci09Yy9sKX1pW24tMV1bMV0rPWlbbi0xXVswXT1yLFJ1KGUsdCl9fXZhciBMQnQ9TSgoKT0+e0Z3KCl9KTtmdW5jdGlvbiBENyhlKXt2YXIgdD1lLm1hcChYZXQpO3JldHVybiBOdShlKS5zb3J0KGZ1bmN0aW9uKHIsbil7cmV0dXJuIHRbcl0tdFtuXX0pfWZ1bmN0aW9uIFhldChlKXtmb3IodmFyIHQ9MCxyPS0xLG49ZS5sZW5ndGgsaTsrK3I8bjspKGk9K2Vbcl1bMV0pJiYodCs9aSk7cmV0dXJuIHR9dmFyIE83PU0oKCk9PntCdygpfSk7ZnVuY3Rpb24ga0J0KGUpe3JldHVybiBENyhlKS5yZXZlcnNlKCl9dmFyIFJCdD1NKCgpPT57TzcoKX0pO2Z1bmN0aW9uIE5CdChlKXt2YXIgdD1lLmxlbmd0aCxyLG4saT1lLm1hcChYZXQpLG89TnUoZSkuc29ydChmdW5jdGlvbih1LGgpe3JldHVybiBpW2hdLWlbdV19KSxhPTAscz0wLGw9W10sYz1bXTtmb3Iocj0wO3I8dDsrK3Ipbj1vW3JdLGE8cz8oYSs9aVtuXSxsLnB1c2gobikpOihzKz1pW25dLGMucHVzaChuKSk7cmV0dXJuIGMucmV2ZXJzZSgpLmNvbmNhdChsKX12YXIgREJ0PU0oKCk9PntCdygpO083KCl9KTtmdW5jdGlvbiBPQnQoZSl7cmV0dXJuIE51KGUpLnJldmVyc2UoKX12YXIgekJ0PU0oKCk9PntCdygpfSk7dmFyIEZCdD1NKCgpPT57X0Z0KCk7QWV0KCk7eDcoKTtNRnQoKTtURnQoKTtMZXQoKTtSZXQoKTtJRnQoKTtERnQoKTtPZXQoKTt6ZXQoKTtGZXQoKTtIZXQoKTtCZXQoKTtVZXQoKTtHZXQoKTtCRnQoKTtVRnQoKTtPQygpO1dGdCgpO1dldCgpO1lldCgpO3pDKCk7UUZ0KCk7ckJ0KCk7azcoKTtvQnQoKTtMQygpO3BCdCgpO19CdCgpO2JCdCgpO1NCdCgpO0VCdCgpO0NCdCgpO0Z3KCk7UEJ0KCk7TEJ0KCk7TzcoKTtSQnQoKTtEQnQoKTtCdygpO3pCdCgpfSk7ZnVuY3Rpb24gU3IoZSx0LHIsbil7ZnVuY3Rpb24gaShvKXtyZXR1cm4gZShvPW5ldyBEYXRlKCtvKSksb31yZXR1cm4gaS5mbG9vcj1pLGkuY2VpbD1mdW5jdGlvbihvKXtyZXR1cm4gZShvPW5ldyBEYXRlKG8tMSkpLHQobywxKSxlKG8pLG99LGkucm91bmQ9ZnVuY3Rpb24obyl7dmFyIGE9aShvKSxzPWkuY2VpbChvKTtyZXR1cm4gby1hPHMtbz9hOnN9LGkub2Zmc2V0PWZ1bmN0aW9uKG8sYSl7cmV0dXJuIHQobz1uZXcgRGF0ZSgrbyksYT09bnVsbD8xOk1hdGguZmxvb3IoYSkpLG99LGkucmFuZ2U9ZnVuY3Rpb24obyxhLHMpe3ZhciBsPVtdLGM7aWYobz1pLmNlaWwobykscz1zPT1udWxsPzE6TWF0aC5mbG9vcihzKSwhKG88YSl8fCEocz4wKSlyZXR1cm4gbDtkbyBsLnB1c2goYz1uZXcgRGF0ZSgrbykpLHQobyxzKSxlKG8pO3doaWxlKGM8byYmbzxhKTtyZXR1cm4gbH0saS5maWx0ZXI9ZnVuY3Rpb24obyl7cmV0dXJuIFNyKGZ1bmN0aW9uKGEpe2lmKGE+PWEpZm9yKDtlKGEpLCFvKGEpOylhLnNldFRpbWUoYS0xKX0sZnVuY3Rpb24oYSxzKXtpZihhPj1hKWlmKHM8MClmb3IoOysrczw9MDspZm9yKDt0KGEsLTEpLCFvKGEpOyk7ZWxzZSBmb3IoOy0tcz49MDspZm9yKDt0KGEsMSksIW8oYSk7KTt9KX0sciYmKGkuY291bnQ9ZnVuY3Rpb24obyxhKXtyZXR1cm4gJGV0LnNldFRpbWUoK28pLEtldC5zZXRUaW1lKCthKSxlKCRldCksZShLZXQpLE1hdGguZmxvb3IocigkZXQsS2V0KSl9LGkuZXZlcnk9ZnVuY3Rpb24obyl7cmV0dXJuIG89TWF0aC5mbG9vcihvKSwhaXNGaW5pdGUobyl8fCEobz4wKT9udWxsOm8+MT9pLmZpbHRlcihuP2Z1bmN0aW9uKGEpe3JldHVybiBuKGEpJW89PT0wfTpmdW5jdGlvbihhKXtyZXR1cm4gaS5jb3VudCgwLGEpJW89PT0wfSk6aX0pLGl9dmFyICRldCxLZXQscGE9TSgoKT0+eyRldD1uZXcgRGF0ZSxLZXQ9bmV3IERhdGV9KTt2YXIgejcsWmV0LEpldCxCQnQ9TSgoKT0+e3BhKCk7ejc9U3IoZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKGUsdCl7ZS5zZXRUaW1lKCtlK3QpfSxmdW5jdGlvbihlLHQpe3JldHVybiB0LWV9KTt6Ny5ldmVyeT1mdW5jdGlvbihlKXtyZXR1cm4gZT1NYXRoLmZsb29yKGUpLCFpc0Zpbml0ZShlKXx8IShlPjApP251bGw6ZT4xP1NyKGZ1bmN0aW9uKHQpe3Quc2V0VGltZShNYXRoLmZsb29yKHQvZSkqZSl9LGZ1bmN0aW9uKHQscil7dC5zZXRUaW1lKCt0K3IqZSl9LGZ1bmN0aW9uKHQscil7cmV0dXJuKHItdCkvZX0pOno3fTtaZXQ9ejcsSmV0PXo3LnJhbmdlfSk7dmFyIEJDLElzLHdmLEY3LEI3LFNmPU0oKCk9PntCQz0xZTMsSXM9NmU0LHdmPTM2ZTUsRjc9ODY0ZTUsQjc9NjA0OGU1fSk7dmFyIEhCdCxRZXQsdHJ0LFZCdD1NKCgpPT57cGEoKTtTZigpO0hCdD1TcihmdW5jdGlvbihlKXtlLnNldFRpbWUoTWF0aC5mbG9vcihlL0JDKSpCQyl9LGZ1bmN0aW9uKGUsdCl7ZS5zZXRUaW1lKCtlK3QqQkMpfSxmdW5jdGlvbihlLHQpe3JldHVybih0LWUpL0JDfSxmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRVVENTZWNvbmRzKCl9KSxRZXQ9SEJ0LHRydD1IQnQucmFuZ2V9KTt2YXIgVUJ0LHFCdCxHQnQsV0J0PU0oKCk9PntwYSgpO1NmKCk7VUJ0PVNyKGZ1bmN0aW9uKGUpe2Uuc2V0VGltZShNYXRoLmZsb29yKGUvSXMpKklzKX0sZnVuY3Rpb24oZSx0KXtlLnNldFRpbWUoK2UrdCpJcyl9LGZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQtZSkvSXN9LGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldE1pbnV0ZXMoKX0pLHFCdD1VQnQsR0J0PVVCdC5yYW5nZX0pO3ZhciBZQnQsakJ0LFhCdCwkQnQ9TSgoKT0+e3BhKCk7U2YoKTtZQnQ9U3IoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5nZXRUaW1lem9uZU9mZnNldCgpKklzJXdmO3Q8MCYmKHQrPXdmKSxlLnNldFRpbWUoTWF0aC5mbG9vcigoK2UtdCkvd2YpKndmK3QpfSxmdW5jdGlvbihlLHQpe2Uuc2V0VGltZSgrZSt0KndmKX0sZnVuY3Rpb24oZSx0KXtyZXR1cm4odC1lKS93Zn0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0SG91cnMoKX0pLGpCdD1ZQnQsWEJ0PVlCdC5yYW5nZX0pO3ZhciBLQnQsWkJ0LEpCdCxRQnQ9TSgoKT0+e3BhKCk7U2YoKTtLQnQ9U3IoZnVuY3Rpb24oZSl7ZS5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24oZSx0KXtlLnNldERhdGUoZS5nZXREYXRlKCkrdCl9LGZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQtZS0odC5nZXRUaW1lem9uZU9mZnNldCgpLWUuZ2V0VGltZXpvbmVPZmZzZXQoKSkqSXMpL0Y3fSxmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXREYXRlKCktMX0pLFpCdD1LQnQsSkJ0PUtCdC5yYW5nZX0pO2Z1bmN0aW9uIGR2KGUpe3JldHVybiBTcihmdW5jdGlvbih0KXt0LnNldERhdGUodC5nZXREYXRlKCktKHQuZ2V0RGF5KCkrNy1lKSU3KSx0LnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LHIpe3Quc2V0RGF0ZSh0LmdldERhdGUoKStyKjcpfSxmdW5jdGlvbih0LHIpe3JldHVybihyLXQtKHIuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKklzKS9CN30pfXZhciBINyxlcnQscnJ0LG5ydCxpcnQsb3J0LGFydCxzcnQsdEh0LGVIdCxySHQsbkh0LGlIdCxvSHQsYUh0PU0oKCk9PntwYSgpO1NmKCk7SDc9ZHYoMCksZXJ0PWR2KDEpLHJydD1kdigyKSxucnQ9ZHYoMyksaXJ0PWR2KDQpLG9ydD1kdig1KSxhcnQ9ZHYoNiksc3J0PUg3LnJhbmdlLHRIdD1lcnQucmFuZ2UsZUh0PXJydC5yYW5nZSxySHQ9bnJ0LnJhbmdlLG5IdD1pcnQucmFuZ2UsaUh0PW9ydC5yYW5nZSxvSHQ9YXJ0LnJhbmdlfSk7dmFyIHNIdCxsSHQsY0h0LHVIdD1NKCgpPT57cGEoKTtzSHQ9U3IoZnVuY3Rpb24oZSl7ZS5zZXREYXRlKDEpLGUuc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKGUsdCl7ZS5zZXRNb250aChlLmdldE1vbnRoKCkrdCl9LGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuZ2V0TW9udGgoKS1lLmdldE1vbnRoKCkrKHQuZ2V0RnVsbFllYXIoKS1lLmdldEZ1bGxZZWFyKCkpKjEyfSxmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRNb250aCgpfSksbEh0PXNIdCxjSHQ9c0h0LnJhbmdlfSk7dmFyIGxydCxoSHQsZkh0LHBIdD1NKCgpPT57cGEoKTtscnQ9U3IoZnVuY3Rpb24oZSl7ZS5zZXRNb250aCgwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKGUsdCl7ZS5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCkrdCl9LGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuZ2V0RnVsbFllYXIoKS1lLmdldEZ1bGxZZWFyKCl9LGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEZ1bGxZZWFyKCl9KTtscnQuZXZlcnk9ZnVuY3Rpb24oZSl7cmV0dXJuIWlzRmluaXRlKGU9TWF0aC5mbG9vcihlKSl8fCEoZT4wKT9udWxsOlNyKGZ1bmN0aW9uKHQpe3Quc2V0RnVsbFllYXIoTWF0aC5mbG9vcih0LmdldEZ1bGxZZWFyKCkvZSkqZSksdC5zZXRNb250aCgwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQscil7dC5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCkrciplKX0pfTtoSHQ9bHJ0LGZIdD1scnQucmFuZ2V9KTt2YXIgZEh0LG1IdCxnSHQsX0h0PU0oKCk9PntwYSgpO1NmKCk7ZEh0PVNyKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDU2Vjb25kcygwLDApfSxmdW5jdGlvbihlLHQpe2Uuc2V0VGltZSgrZSt0KklzKX0sZnVuY3Rpb24oZSx0KXtyZXR1cm4odC1lKS9Jc30sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0VVRDTWludXRlcygpfSksbUh0PWRIdCxnSHQ9ZEh0LnJhbmdlfSk7dmFyIHlIdCx2SHQseEh0LGJIdD1NKCgpPT57cGEoKTtTZigpO3lIdD1TcihmdW5jdGlvbihlKXtlLnNldFVUQ01pbnV0ZXMoMCwwLDApfSxmdW5jdGlvbihlLHQpe2Uuc2V0VGltZSgrZSt0KndmKX0sZnVuY3Rpb24oZSx0KXtyZXR1cm4odC1lKS93Zn0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0VVRDSG91cnMoKX0pLHZIdD15SHQseEh0PXlIdC5yYW5nZX0pO3ZhciB3SHQsU0h0LE1IdCxFSHQ9TSgoKT0+e3BhKCk7U2YoKTt3SHQ9U3IoZnVuY3Rpb24oZSl7ZS5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24oZSx0KXtlLnNldFVUQ0RhdGUoZS5nZXRVVENEYXRlKCkrdCl9LGZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQtZSkvRjd9LGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFVUQ0RhdGUoKS0xfSksU0h0PXdIdCxNSHQ9d0h0LnJhbmdlfSk7ZnVuY3Rpb24gbXYoZSl7cmV0dXJuIFNyKGZ1bmN0aW9uKHQpe3Quc2V0VVRDRGF0ZSh0LmdldFVUQ0RhdGUoKS0odC5nZXRVVENEYXkoKSs3LWUpJTcpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQscil7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpK3IqNyl9LGZ1bmN0aW9uKHQscil7cmV0dXJuKHItdCkvQjd9KX12YXIgVjcsY3J0LHVydCxocnQsZnJ0LHBydCxkcnQsbXJ0LFRIdCxDSHQsQUh0LFBIdCxJSHQsTEh0LGtIdD1NKCgpPT57cGEoKTtTZigpO1Y3PW12KDApLGNydD1tdigxKSx1cnQ9bXYoMiksaHJ0PW12KDMpLGZydD1tdig0KSxwcnQ9bXYoNSksZHJ0PW12KDYpLG1ydD1WNy5yYW5nZSxUSHQ9Y3J0LnJhbmdlLENIdD11cnQucmFuZ2UsQUh0PWhydC5yYW5nZSxQSHQ9ZnJ0LnJhbmdlLElIdD1wcnQucmFuZ2UsTEh0PWRydC5yYW5nZX0pO3ZhciBSSHQsTkh0LERIdCxPSHQ9TSgoKT0+e3BhKCk7Ukh0PVNyKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDRGF0ZSgxKSxlLnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbihlLHQpe2Uuc2V0VVRDTW9udGgoZS5nZXRVVENNb250aCgpK3QpfSxmdW5jdGlvbihlLHQpe3JldHVybiB0LmdldFVUQ01vbnRoKCktZS5nZXRVVENNb250aCgpKyh0LmdldFVUQ0Z1bGxZZWFyKCktZS5nZXRVVENGdWxsWWVhcigpKSoxMn0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0VVRDTW9udGgoKX0pLE5IdD1SSHQsREh0PVJIdC5yYW5nZX0pO3ZhciBncnQsekh0LEZIdCxCSHQ9TSgoKT0+e3BhKCk7Z3J0PVNyKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDTW9udGgoMCwxKSxlLnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbihlLHQpe2Uuc2V0VVRDRnVsbFllYXIoZS5nZXRVVENGdWxsWWVhcigpK3QpfSxmdW5jdGlvbihlLHQpe3JldHVybiB0LmdldFVUQ0Z1bGxZZWFyKCktZS5nZXRVVENGdWxsWWVhcigpfSxmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRVVENGdWxsWWVhcigpfSk7Z3J0LmV2ZXJ5PWZ1bmN0aW9uKGUpe3JldHVybiFpc0Zpbml0ZShlPU1hdGguZmxvb3IoZSkpfHwhKGU+MCk/bnVsbDpTcihmdW5jdGlvbih0KXt0LnNldFVUQ0Z1bGxZZWFyKE1hdGguZmxvb3IodC5nZXRVVENGdWxsWWVhcigpL2UpKmUpLHQuc2V0VVRDTW9udGgoMCwxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LHIpe3Quc2V0VVRDRnVsbFllYXIodC5nZXRVVENGdWxsWWVhcigpK3IqZSl9KX07ekh0PWdydCxGSHQ9Z3J0LnJhbmdlfSk7dmFyIEhIdD1NKCgpPT57cGEoKTtCQnQoKTtWQnQoKTtXQnQoKTskQnQoKTtRQnQoKTthSHQoKTt1SHQoKTtwSHQoKTtfSHQoKTtiSHQoKTtFSHQoKTtrSHQoKTtPSHQoKTtCSHQoKX0pO2Z1bmN0aW9uIGRhKGUsdCxyLG4pe2Z1bmN0aW9uIGkobyl7cmV0dXJuIGUobz1hcmd1bWVudHMubGVuZ3RoPT09MD9uZXcgRGF0ZTpuZXcgRGF0ZSgrbykpLG99cmV0dXJuIGkuZmxvb3I9ZnVuY3Rpb24obyl7cmV0dXJuIGUobz1uZXcgRGF0ZSgrbykpLG99LGkuY2VpbD1mdW5jdGlvbihvKXtyZXR1cm4gZShvPW5ldyBEYXRlKG8tMSkpLHQobywxKSxlKG8pLG99LGkucm91bmQ9ZnVuY3Rpb24obyl7dmFyIGE9aShvKSxzPWkuY2VpbChvKTtyZXR1cm4gby1hPHMtbz9hOnN9LGkub2Zmc2V0PWZ1bmN0aW9uKG8sYSl7cmV0dXJuIHQobz1uZXcgRGF0ZSgrbyksYT09bnVsbD8xOk1hdGguZmxvb3IoYSkpLG99LGkucmFuZ2U9ZnVuY3Rpb24obyxhLHMpe3ZhciBsPVtdLGM7aWYobz1pLmNlaWwobykscz1zPT1udWxsPzE6TWF0aC5mbG9vcihzKSwhKG88YSl8fCEocz4wKSlyZXR1cm4gbDtkbyBsLnB1c2goYz1uZXcgRGF0ZSgrbykpLHQobyxzKSxlKG8pO3doaWxlKGM8byYmbzxhKTtyZXR1cm4gbH0saS5maWx0ZXI9ZnVuY3Rpb24obyl7cmV0dXJuIGRhKGZ1bmN0aW9uKGEpe2lmKGE+PWEpZm9yKDtlKGEpLCFvKGEpOylhLnNldFRpbWUoYS0xKX0sZnVuY3Rpb24oYSxzKXtpZihhPj1hKWlmKHM8MClmb3IoOysrczw9MDspZm9yKDt0KGEsLTEpLCFvKGEpOyk7ZWxzZSBmb3IoOy0tcz49MDspZm9yKDt0KGEsMSksIW8oYSk7KTt9KX0sciYmKGkuY291bnQ9ZnVuY3Rpb24obyxhKXtyZXR1cm4gX3J0LnNldFRpbWUoK28pLHlydC5zZXRUaW1lKCthKSxlKF9ydCksZSh5cnQpLE1hdGguZmxvb3IocihfcnQseXJ0KSl9LGkuZXZlcnk9ZnVuY3Rpb24obyl7cmV0dXJuIG89TWF0aC5mbG9vcihvKSwhaXNGaW5pdGUobyl8fCEobz4wKT9udWxsOm8+MT9pLmZpbHRlcihuP2Z1bmN0aW9uKGEpe3JldHVybiBuKGEpJW89PT0wfTpmdW5jdGlvbihhKXtyZXR1cm4gaS5jb3VudCgwLGEpJW89PT0wfSk6aX0pLGl9dmFyIF9ydCx5cnQsZ3Y9TSgoKT0+e19ydD1uZXcgRGF0ZSx5cnQ9bmV3IERhdGV9KTt2YXIgVTcscTcsRzcsSEM9TSgoKT0+e1U3PTZlNCxxNz04NjRlNSxHNz02MDQ4ZTV9KTt2YXIgVkh0LFc3LFJMZSxVSHQ9TSgoKT0+e2d2KCk7SEMoKTtWSHQ9ZGEoZnVuY3Rpb24oZSl7ZS5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24oZSx0KXtlLnNldERhdGUoZS5nZXREYXRlKCkrdCl9LGZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQtZS0odC5nZXRUaW1lem9uZU9mZnNldCgpLWUuZ2V0VGltZXpvbmVPZmZzZXQoKSkqVTcpL3E3fSxmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXREYXRlKCktMX0pLFc3PVZIdCxSTGU9Vkh0LnJhbmdlfSk7ZnVuY3Rpb24gX3YoZSl7cmV0dXJuIGRhKGZ1bmN0aW9uKHQpe3Quc2V0RGF0ZSh0LmdldERhdGUoKS0odC5nZXREYXkoKSs3LWUpJTcpLHQuc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQscil7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpK3IqNyl9LGZ1bmN0aW9uKHQscil7cmV0dXJuKHItdC0oci5nZXRUaW1lem9uZU9mZnNldCgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSkqVTcpL0c3fSl9dmFyIFZDLEh3LHFIdCxHSHQsVncsV0h0LFlIdCxqSHQsTkxlLERMZSxPTGUsekxlLEZMZSxCTGUsWEh0PU0oKCk9PntndigpO0hDKCk7VkM9X3YoMCksSHc9X3YoMSkscUh0PV92KDIpLEdIdD1fdigzKSxWdz1fdig0KSxXSHQ9X3YoNSksWUh0PV92KDYpLGpIdD1WQy5yYW5nZSxOTGU9SHcucmFuZ2UsRExlPXFIdC5yYW5nZSxPTGU9R0h0LnJhbmdlLHpMZT1Wdy5yYW5nZSxGTGU9V0h0LnJhbmdlLEJMZT1ZSHQucmFuZ2V9KTt2YXIgdnJ0LHl2LEhMZSwkSHQ9TSgoKT0+e2d2KCk7dnJ0PWRhKGZ1bmN0aW9uKGUpe2Uuc2V0TW9udGgoMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbihlLHQpe2Uuc2V0RnVsbFllYXIoZS5nZXRGdWxsWWVhcigpK3QpfSxmdW5jdGlvbihlLHQpe3JldHVybiB0LmdldEZ1bGxZZWFyKCktZS5nZXRGdWxsWWVhcigpfSxmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRGdWxsWWVhcigpfSk7dnJ0LmV2ZXJ5PWZ1bmN0aW9uKGUpe3JldHVybiFpc0Zpbml0ZShlPU1hdGguZmxvb3IoZSkpfHwhKGU+MCk/bnVsbDpkYShmdW5jdGlvbih0KXt0LnNldEZ1bGxZZWFyKE1hdGguZmxvb3IodC5nZXRGdWxsWWVhcigpL2UpKmUpLHQuc2V0TW9udGgoMCwxKSx0LnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LHIpe3Quc2V0RnVsbFllYXIodC5nZXRGdWxsWWVhcigpK3IqZSl9KX07eXY9dnJ0LEhMZT12cnQucmFuZ2V9KTt2YXIgS0h0LFk3LFZMZSxaSHQ9TSgoKT0+e2d2KCk7SEMoKTtLSHQ9ZGEoZnVuY3Rpb24oZSl7ZS5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24oZSx0KXtlLnNldFVUQ0RhdGUoZS5nZXRVVENEYXRlKCkrdCl9LGZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQtZSkvcTd9LGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFVUQ0RhdGUoKS0xfSksWTc9S0h0LFZMZT1LSHQucmFuZ2V9KTtmdW5jdGlvbiB2dihlKXtyZXR1cm4gZGEoZnVuY3Rpb24odCl7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpLSh0LmdldFVUQ0RheSgpKzctZSklNyksdC5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxyKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrcio3KX0sZnVuY3Rpb24odCxyKXtyZXR1cm4oci10KS9HN30pfXZhciBVQyxVdyxKSHQsUUh0LHF3LHRWdCxlVnQsclZ0LFVMZSxxTGUsR0xlLFdMZSxZTGUsakxlLG5WdD1NKCgpPT57Z3YoKTtIQygpO1VDPXZ2KDApLFV3PXZ2KDEpLEpIdD12digyKSxRSHQ9dnYoMykscXc9dnYoNCksdFZ0PXZ2KDUpLGVWdD12dig2KSxyVnQ9VUMucmFuZ2UsVUxlPVV3LnJhbmdlLHFMZT1KSHQucmFuZ2UsR0xlPVFIdC5yYW5nZSxXTGU9cXcucmFuZ2UsWUxlPXRWdC5yYW5nZSxqTGU9ZVZ0LnJhbmdlfSk7dmFyIHhydCx4dixYTGUsaVZ0PU0oKCk9PntndigpO3hydD1kYShmdW5jdGlvbihlKXtlLnNldFVUQ01vbnRoKDAsMSksZS5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24oZSx0KXtlLnNldFVUQ0Z1bGxZZWFyKGUuZ2V0VVRDRnVsbFllYXIoKSt0KX0sZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5nZXRVVENGdWxsWWVhcigpLWUuZ2V0VVRDRnVsbFllYXIoKX0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0VVRDRnVsbFllYXIoKX0pO3hydC5ldmVyeT1mdW5jdGlvbihlKXtyZXR1cm4haXNGaW5pdGUoZT1NYXRoLmZsb29yKGUpKXx8IShlPjApP251bGw6ZGEoZnVuY3Rpb24odCl7dC5zZXRVVENGdWxsWWVhcihNYXRoLmZsb29yKHQuZ2V0VVRDRnVsbFllYXIoKS9lKSplKSx0LnNldFVUQ01vbnRoKDAsMSksdC5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxyKXt0LnNldFVUQ0Z1bGxZZWFyKHQuZ2V0VVRDRnVsbFllYXIoKStyKmUpfSl9O3h2PXhydCxYTGU9eHJ0LnJhbmdlfSk7dmFyIG9WdD1NKCgpPT57VUh0KCk7WEh0KCk7JEh0KCk7Wkh0KCk7blZ0KCk7aVZ0KCl9KTtmdW5jdGlvbiAkTGUoZSl7aWYoMDw9ZS55JiZlLnk8MTAwKXt2YXIgdD1uZXcgRGF0ZSgtMSxlLm0sZS5kLGUuSCxlLk0sZS5TLGUuTCk7cmV0dXJuIHQuc2V0RnVsbFllYXIoZS55KSx0fXJldHVybiBuZXcgRGF0ZShlLnksZS5tLGUuZCxlLkgsZS5NLGUuUyxlLkwpfWZ1bmN0aW9uIGo3KGUpe2lmKDA8PWUueSYmZS55PDEwMCl7dmFyIHQ9bmV3IERhdGUoRGF0ZS5VVEMoLTEsZS5tLGUuZCxlLkgsZS5NLGUuUyxlLkwpKTtyZXR1cm4gdC5zZXRVVENGdWxsWWVhcihlLnkpLHR9cmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKGUueSxlLm0sZS5kLGUuSCxlLk0sZS5TLGUuTCkpfWZ1bmN0aW9uIHFDKGUpe3JldHVybnt5OmUsbTowLGQ6MSxIOjAsTTowLFM6MCxMOjB9fWZ1bmN0aW9uIFlDKGUpe3ZhciB0PWUuZGF0ZVRpbWUscj1lLmRhdGUsbj1lLnRpbWUsaT1lLnBlcmlvZHMsbz1lLmRheXMsYT1lLnNob3J0RGF5cyxzPWUubW9udGhzLGw9ZS5zaG9ydE1vbnRocyxjPUdDKGkpLHU9V0MoaSksaD1HQyhvKSxmPVdDKG8pLHA9R0MoYSksZD1XQyhhKSxnPUdDKHMpLF89V0MocykseT1HQyhsKSx4PVdDKGwpLGI9e2E6VyxBOlosYjpydCxCOm90LGM6bnVsbCxkOmNWdCxlOmNWdCxmOnZrZSxIOmdrZSxJOl9rZSxqOnlrZSxMOmRWdCxtOnhrZSxNOmJrZSxwOnN0LFE6ZlZ0LHM6cFZ0LFM6d2tlLHU6U2tlLFU6TWtlLFY6RWtlLHc6VGtlLFc6Q2tlLHg6bnVsbCxYOm51bGwseTpBa2UsWTpQa2UsWjpJa2UsIiUiOmhWdH0sUz17YTpTdCxBOmJ0LGI6TXQsQjpsdCxjOm51bGwsZDp1VnQsZTp1VnQsZjpOa2UsSDpMa2UsSTpra2UsajpSa2UsTDptVnQsbTpEa2UsTTpPa2UscDpLdCxROmZWdCxzOnBWdCxTOnprZSx1OkZrZSxVOkJrZSxWOkhrZSx3OlZrZSxXOlVrZSx4Om51bGwsWDpudWxsLHk6cWtlLFk6R2tlLFo6V2tlLCIlIjpoVnR9LEM9e2E6QixBOkksYjpMLEI6UixjOkYsZDpzVnQsZTpzVnQsZjpma2UsSDpsVnQsSTpsVnQsajpsa2UsTDpoa2UsbTpza2UsTTpja2UscDpELFE6ZGtlLHM6bWtlLFM6dWtlLHU6dGtlLFU6ZWtlLFY6cmtlLHc6UUxlLFc6bmtlLHg6eixYOlUseTpva2UsWTppa2UsWjpha2UsIiUiOnBrZX07Yi54PVAocixiKSxiLlg9UChuLGIpLGIuYz1QKHQsYiksUy54PVAocixTKSxTLlg9UChuLFMpLFMuYz1QKHQsUyk7ZnVuY3Rpb24gUChfdCxjdCl7cmV0dXJuIGZ1bmN0aW9uKFgpe3ZhciBldD1bXSxkdD0tMSxxPTAscHQ9X3QubGVuZ3RoLGh0LHd0LGt0O2ZvcihYIGluc3RhbmNlb2YgRGF0ZXx8KFg9bmV3IERhdGUoK1gpKTsrK2R0PHB0OylfdC5jaGFyQ29kZUF0KGR0KT09PTM3JiYoZXQucHVzaChfdC5zbGljZShxLGR0KSksKHd0PWFWdFtodD1fdC5jaGFyQXQoKytkdCldKSE9bnVsbD9odD1fdC5jaGFyQXQoKytkdCk6d3Q9aHQ9PT0iZSI/IiAiOiIwIiwoa3Q9Y3RbaHRdKSYmKGh0PWt0KFgsd3QpKSxldC5wdXNoKGh0KSxxPWR0KzEpO3JldHVybiBldC5wdXNoKF90LnNsaWNlKHEsZHQpKSxldC5qb2luKCIiKX19ZnVuY3Rpb24gayhfdCxjdCl7cmV0dXJuIGZ1bmN0aW9uKFgpe3ZhciBldD1xQygxOTAwKSxkdD1PKGV0LF90LFgrPSIiLDApLHEscHQ7aWYoZHQhPVgubGVuZ3RoKXJldHVybiBudWxsO2lmKCJRImluIGV0KXJldHVybiBuZXcgRGF0ZShldC5RKTtpZigicCJpbiBldCYmKGV0Lkg9ZXQuSCUxMitldC5wKjEyKSwiViJpbiBldCl7aWYoZXQuVjwxfHxldC5WPjUzKXJldHVybiBudWxsOyJ3ImluIGV0fHwoZXQudz0xKSwiWiJpbiBldD8ocT1qNyhxQyhldC55KSkscHQ9cS5nZXRVVENEYXkoKSxxPXB0PjR8fHB0PT09MD9Vdy5jZWlsKHEpOlV3KHEpLHE9WTcub2Zmc2V0KHEsKGV0LlYtMSkqNyksZXQueT1xLmdldFVUQ0Z1bGxZZWFyKCksZXQubT1xLmdldFVUQ01vbnRoKCksZXQuZD1xLmdldFVUQ0RhdGUoKSsoZXQudys2KSU3KToocT1jdChxQyhldC55KSkscHQ9cS5nZXREYXkoKSxxPXB0PjR8fHB0PT09MD9Idy5jZWlsKHEpOkh3KHEpLHE9Vzcub2Zmc2V0KHEsKGV0LlYtMSkqNyksZXQueT1xLmdldEZ1bGxZZWFyKCksZXQubT1xLmdldE1vbnRoKCksZXQuZD1xLmdldERhdGUoKSsoZXQudys2KSU3KX1lbHNlKCJXImluIGV0fHwiVSJpbiBldCkmJigidyJpbiBldHx8KGV0Lnc9InUiaW4gZXQ/ZXQudSU3OiJXImluIGV0PzE6MCkscHQ9IloiaW4gZXQ/ajcocUMoZXQueSkpLmdldFVUQ0RheSgpOmN0KHFDKGV0LnkpKS5nZXREYXkoKSxldC5tPTAsZXQuZD0iVyJpbiBldD8oZXQudys2KSU3K2V0LlcqNy0ocHQrNSklNzpldC53K2V0LlUqNy0ocHQrNiklNyk7cmV0dXJuIloiaW4gZXQ/KGV0LkgrPWV0LlovMTAwfDAsZXQuTSs9ZXQuWiUxMDAsajcoZXQpKTpjdChldCl9fWZ1bmN0aW9uIE8oX3QsY3QsWCxldCl7Zm9yKHZhciBkdD0wLHE9Y3QubGVuZ3RoLHB0PVgubGVuZ3RoLGh0LHd0O2R0PHE7KXtpZihldD49cHQpcmV0dXJuLTE7aWYoaHQ9Y3QuY2hhckNvZGVBdChkdCsrKSxodD09PTM3KXtpZihodD1jdC5jaGFyQXQoZHQrKyksd3Q9Q1todCBpbiBhVnQ/Y3QuY2hhckF0KGR0KyspOmh0XSwhd3R8fChldD13dChfdCxYLGV0KSk8MClyZXR1cm4tMX1lbHNlIGlmKGh0IT1YLmNoYXJDb2RlQXQoZXQrKykpcmV0dXJuLTF9cmV0dXJuIGV0fWZ1bmN0aW9uIEQoX3QsY3QsWCl7dmFyIGV0PWMuZXhlYyhjdC5zbGljZShYKSk7cmV0dXJuIGV0PyhfdC5wPXVbZXRbMF0udG9Mb3dlckNhc2UoKV0sWCtldFswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEIoX3QsY3QsWCl7dmFyIGV0PXAuZXhlYyhjdC5zbGljZShYKSk7cmV0dXJuIGV0PyhfdC53PWRbZXRbMF0udG9Mb3dlckNhc2UoKV0sWCtldFswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEkoX3QsY3QsWCl7dmFyIGV0PWguZXhlYyhjdC5zbGljZShYKSk7cmV0dXJuIGV0PyhfdC53PWZbZXRbMF0udG9Mb3dlckNhc2UoKV0sWCtldFswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEwoX3QsY3QsWCl7dmFyIGV0PXkuZXhlYyhjdC5zbGljZShYKSk7cmV0dXJuIGV0PyhfdC5tPXhbZXRbMF0udG9Mb3dlckNhc2UoKV0sWCtldFswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFIoX3QsY3QsWCl7dmFyIGV0PWcuZXhlYyhjdC5zbGljZShYKSk7cmV0dXJuIGV0PyhfdC5tPV9bZXRbMF0udG9Mb3dlckNhc2UoKV0sWCtldFswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEYoX3QsY3QsWCl7cmV0dXJuIE8oX3QsdCxjdCxYKX1mdW5jdGlvbiB6KF90LGN0LFgpe3JldHVybiBPKF90LHIsY3QsWCl9ZnVuY3Rpb24gVShfdCxjdCxYKXtyZXR1cm4gTyhfdCxuLGN0LFgpfWZ1bmN0aW9uIFcoX3Qpe3JldHVybiBhW190LmdldERheSgpXX1mdW5jdGlvbiBaKF90KXtyZXR1cm4gb1tfdC5nZXREYXkoKV19ZnVuY3Rpb24gcnQoX3Qpe3JldHVybiBsW190LmdldE1vbnRoKCldfWZ1bmN0aW9uIG90KF90KXtyZXR1cm4gc1tfdC5nZXRNb250aCgpXX1mdW5jdGlvbiBzdChfdCl7cmV0dXJuIGlbKyhfdC5nZXRIb3VycygpPj0xMildfWZ1bmN0aW9uIFN0KF90KXtyZXR1cm4gYVtfdC5nZXRVVENEYXkoKV19ZnVuY3Rpb24gYnQoX3Qpe3JldHVybiBvW190LmdldFVUQ0RheSgpXX1mdW5jdGlvbiBNdChfdCl7cmV0dXJuIGxbX3QuZ2V0VVRDTW9udGgoKV19ZnVuY3Rpb24gbHQoX3Qpe3JldHVybiBzW190LmdldFVUQ01vbnRoKCldfWZ1bmN0aW9uIEt0KF90KXtyZXR1cm4gaVsrKF90LmdldFVUQ0hvdXJzKCk+PTEyKV19cmV0dXJue2Zvcm1hdDpmdW5jdGlvbihfdCl7dmFyIGN0PVAoX3QrPSIiLGIpO3JldHVybiBjdC50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBfdH0sY3R9LHBhcnNlOmZ1bmN0aW9uKF90KXt2YXIgY3Q9ayhfdCs9IiIsJExlKTtyZXR1cm4gY3QudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gX3R9LGN0fSx1dGNGb3JtYXQ6ZnVuY3Rpb24oX3Qpe3ZhciBjdD1QKF90Kz0iIixTKTtyZXR1cm4gY3QudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gX3R9LGN0fSx1dGNQYXJzZTpmdW5jdGlvbihfdCl7dmFyIGN0PWsoX3QsajcpO3JldHVybiBjdC50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBfdH0sY3R9fX1mdW5jdGlvbiBnbihlLHQscil7dmFyIG49ZTwwPyItIjoiIixpPShuPy1lOmUpKyIiLG89aS5sZW5ndGg7cmV0dXJuIG4rKG88cj9uZXcgQXJyYXkoci1vKzEpLmpvaW4odCkraTppKX1mdW5jdGlvbiBKTGUoZSl7cmV0dXJuIGUucmVwbGFjZShaTGUsIlxcJCYiKX1mdW5jdGlvbiBHQyhlKXtyZXR1cm4gbmV3IFJlZ0V4cCgiXig/OiIrZS5tYXAoSkxlKS5qb2luKCJ8IikrIikiLCJpIil9ZnVuY3Rpb24gV0MoZSl7Zm9yKHZhciB0PXt9LHI9LTEsbj1lLmxlbmd0aDsrK3I8bjspdFtlW3JdLnRvTG93ZXJDYXNlKCldPXI7cmV0dXJuIHR9ZnVuY3Rpb24gUUxlKGUsdCxyKXt2YXIgbj1Wby5leGVjKHQuc2xpY2UocixyKzEpKTtyZXR1cm4gbj8oZS53PStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHRrZShlLHQscil7dmFyIG49Vm8uZXhlYyh0LnNsaWNlKHIscisxKSk7cmV0dXJuIG4/KGUudT0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBla2UoZSx0LHIpe3ZhciBuPVZvLmV4ZWModC5zbGljZShyLHIrMikpO3JldHVybiBuPyhlLlU9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gcmtlKGUsdCxyKXt2YXIgbj1Wby5leGVjKHQuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8oZS5WPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG5rZShlLHQscil7dmFyIG49Vm8uZXhlYyh0LnNsaWNlKHIscisyKSk7cmV0dXJuIG4/KGUuVz0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBpa2UoZSx0LHIpe3ZhciBuPVZvLmV4ZWModC5zbGljZShyLHIrNCkpO3JldHVybiBuPyhlLnk9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gb2tlKGUsdCxyKXt2YXIgbj1Wby5leGVjKHQuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8oZS55PStuWzBdKygrblswXT42OD8xOTAwOjJlMykscituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gYWtlKGUsdCxyKXt2YXIgbj0vXihaKXwoWystXVxkXGQpKD86Oj8oXGRcZCkpPy8uZXhlYyh0LnNsaWNlKHIscis2KSk7cmV0dXJuIG4/KGUuWj1uWzFdPzA6LShuWzJdKyhuWzNdfHwiMDAiKSkscituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gc2tlKGUsdCxyKXt2YXIgbj1Wby5leGVjKHQuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8oZS5tPW5bMF0tMSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBzVnQoZSx0LHIpe3ZhciBuPVZvLmV4ZWModC5zbGljZShyLHIrMikpO3JldHVybiBuPyhlLmQ9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbGtlKGUsdCxyKXt2YXIgbj1Wby5leGVjKHQuc2xpY2UocixyKzMpKTtyZXR1cm4gbj8oZS5tPTAsZS5kPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGxWdChlLHQscil7dmFyIG49Vm8uZXhlYyh0LnNsaWNlKHIscisyKSk7cmV0dXJuIG4/KGUuSD0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBja2UoZSx0LHIpe3ZhciBuPVZvLmV4ZWModC5zbGljZShyLHIrMikpO3JldHVybiBuPyhlLk09K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gdWtlKGUsdCxyKXt2YXIgbj1Wby5leGVjKHQuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8oZS5TPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGhrZShlLHQscil7dmFyIG49Vm8uZXhlYyh0LnNsaWNlKHIsciszKSk7cmV0dXJuIG4/KGUuTD0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBma2UoZSx0LHIpe3ZhciBuPVZvLmV4ZWModC5zbGljZShyLHIrNikpO3JldHVybiBuPyhlLkw9TWF0aC5mbG9vcihuWzBdLzFlMykscituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gcGtlKGUsdCxyKXt2YXIgbj1LTGUuZXhlYyh0LnNsaWNlKHIscisxKSk7cmV0dXJuIG4/cituWzBdLmxlbmd0aDotMX1mdW5jdGlvbiBka2UoZSx0LHIpe3ZhciBuPVZvLmV4ZWModC5zbGljZShyKSk7cmV0dXJuIG4/KGUuUT0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBta2UoZSx0LHIpe3ZhciBuPVZvLmV4ZWModC5zbGljZShyKSk7cmV0dXJuIG4/KGUuUT0rblswXSoxZTMscituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gY1Z0KGUsdCl7cmV0dXJuIGduKGUuZ2V0RGF0ZSgpLHQsMil9ZnVuY3Rpb24gZ2tlKGUsdCl7cmV0dXJuIGduKGUuZ2V0SG91cnMoKSx0LDIpfWZ1bmN0aW9uIF9rZShlLHQpe3JldHVybiBnbihlLmdldEhvdXJzKCklMTJ8fDEyLHQsMil9ZnVuY3Rpb24geWtlKGUsdCl7cmV0dXJuIGduKDErVzcuY291bnQoeXYoZSksZSksdCwzKX1mdW5jdGlvbiBkVnQoZSx0KXtyZXR1cm4gZ24oZS5nZXRNaWxsaXNlY29uZHMoKSx0LDMpfWZ1bmN0aW9uIHZrZShlLHQpe3JldHVybiBkVnQoZSx0KSsiMDAwIn1mdW5jdGlvbiB4a2UoZSx0KXtyZXR1cm4gZ24oZS5nZXRNb250aCgpKzEsdCwyKX1mdW5jdGlvbiBia2UoZSx0KXtyZXR1cm4gZ24oZS5nZXRNaW51dGVzKCksdCwyKX1mdW5jdGlvbiB3a2UoZSx0KXtyZXR1cm4gZ24oZS5nZXRTZWNvbmRzKCksdCwyKX1mdW5jdGlvbiBTa2UoZSl7dmFyIHQ9ZS5nZXREYXkoKTtyZXR1cm4gdD09PTA/Nzp0fWZ1bmN0aW9uIE1rZShlLHQpe3JldHVybiBnbihWQy5jb3VudCh5dihlKSxlKSx0LDIpfWZ1bmN0aW9uIEVrZShlLHQpe3ZhciByPWUuZ2V0RGF5KCk7cmV0dXJuIGU9cj49NHx8cj09PTA/VncoZSk6VncuY2VpbChlKSxnbihWdy5jb3VudCh5dihlKSxlKSsoeXYoZSkuZ2V0RGF5KCk9PT00KSx0LDIpfWZ1bmN0aW9uIFRrZShlKXtyZXR1cm4gZS5nZXREYXkoKX1mdW5jdGlvbiBDa2UoZSx0KXtyZXR1cm4gZ24oSHcuY291bnQoeXYoZSksZSksdCwyKX1mdW5jdGlvbiBBa2UoZSx0KXtyZXR1cm4gZ24oZS5nZXRGdWxsWWVhcigpJTEwMCx0LDIpfWZ1bmN0aW9uIFBrZShlLHQpe3JldHVybiBnbihlLmdldEZ1bGxZZWFyKCklMWU0LHQsNCl9ZnVuY3Rpb24gSWtlKGUpe3ZhciB0PWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtyZXR1cm4odD4wPyItIjoodCo9LTEsIisiKSkrZ24odC82MHwwLCIwIiwyKStnbih0JTYwLCIwIiwyKX1mdW5jdGlvbiB1VnQoZSx0KXtyZXR1cm4gZ24oZS5nZXRVVENEYXRlKCksdCwyKX1mdW5jdGlvbiBMa2UoZSx0KXtyZXR1cm4gZ24oZS5nZXRVVENIb3VycygpLHQsMil9ZnVuY3Rpb24ga2tlKGUsdCl7cmV0dXJuIGduKGUuZ2V0VVRDSG91cnMoKSUxMnx8MTIsdCwyKX1mdW5jdGlvbiBSa2UoZSx0KXtyZXR1cm4gZ24oMStZNy5jb3VudCh4dihlKSxlKSx0LDMpfWZ1bmN0aW9uIG1WdChlLHQpe3JldHVybiBnbihlLmdldFVUQ01pbGxpc2Vjb25kcygpLHQsMyl9ZnVuY3Rpb24gTmtlKGUsdCl7cmV0dXJuIG1WdChlLHQpKyIwMDAifWZ1bmN0aW9uIERrZShlLHQpe3JldHVybiBnbihlLmdldFVUQ01vbnRoKCkrMSx0LDIpfWZ1bmN0aW9uIE9rZShlLHQpe3JldHVybiBnbihlLmdldFVUQ01pbnV0ZXMoKSx0LDIpfWZ1bmN0aW9uIHprZShlLHQpe3JldHVybiBnbihlLmdldFVUQ1NlY29uZHMoKSx0LDIpfWZ1bmN0aW9uIEZrZShlKXt2YXIgdD1lLmdldFVUQ0RheSgpO3JldHVybiB0PT09MD83OnR9ZnVuY3Rpb24gQmtlKGUsdCl7cmV0dXJuIGduKFVDLmNvdW50KHh2KGUpLGUpLHQsMil9ZnVuY3Rpb24gSGtlKGUsdCl7dmFyIHI9ZS5nZXRVVENEYXkoKTtyZXR1cm4gZT1yPj00fHxyPT09MD9xdyhlKTpxdy5jZWlsKGUpLGduKHF3LmNvdW50KHh2KGUpLGUpKyh4dihlKS5nZXRVVENEYXkoKT09PTQpLHQsMil9ZnVuY3Rpb24gVmtlKGUpe3JldHVybiBlLmdldFVUQ0RheSgpfWZ1bmN0aW9uIFVrZShlLHQpe3JldHVybiBnbihVdy5jb3VudCh4dihlKSxlKSx0LDIpfWZ1bmN0aW9uIHFrZShlLHQpe3JldHVybiBnbihlLmdldFVUQ0Z1bGxZZWFyKCklMTAwLHQsMil9ZnVuY3Rpb24gR2tlKGUsdCl7cmV0dXJuIGduKGUuZ2V0VVRDRnVsbFllYXIoKSUxZTQsdCw0KX1mdW5jdGlvbiBXa2UoKXtyZXR1cm4iKzAwMDAifWZ1bmN0aW9uIGhWdCgpe3JldHVybiIlIn1mdW5jdGlvbiBmVnQoZSl7cmV0dXJuK2V9ZnVuY3Rpb24gcFZ0KGUpe3JldHVybiBNYXRoLmZsb29yKCtlLzFlMyl9dmFyIGFWdCxWbyxLTGUsWkxlLGJydD1NKCgpPT57b1Z0KCk7YVZ0PXsiLSI6IiIsXzoiICIsMDoiMCJ9LFZvPS9eXHMqXGQrLyxLTGU9L14lLyxaTGU9L1tcXF4kKis/fFtcXSgpLnt9XS9nfSk7ZnVuY3Rpb24gWDcoZSl7cmV0dXJuIEd3PVlDKGUpLHdydD1Hdy5mb3JtYXQsU3J0PUd3LnBhcnNlLGpDPUd3LnV0Y0Zvcm1hdCxYQz1Hdy51dGNQYXJzZSxHd312YXIgR3csd3J0LFNydCxqQyxYQywkNz1NKCgpPT57YnJ0KCk7WDcoe2RhdGVUaW1lOiIleCwgJVgiLGRhdGU6IiUtbS8lLWQvJVkiLHRpbWU6IiUtSTolTTolUyAlcCIscGVyaW9kczpbIkFNIiwiUE0iXSxkYXlzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxzaG9ydERheXM6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHNob3J0TW9udGhzOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl19KX0pO2Z1bmN0aW9uIFlrZShlKXtyZXR1cm4gZS50b0lTT1N0cmluZygpfXZhciBNcnQsamtlLGdWdCxFcnQ9TSgoKT0+eyQ3KCk7TXJ0PSIlWS0lbS0lZFQlSDolTTolUy4lTFoiO2prZT1EYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZz9Za2U6akMoTXJ0KSxnVnQ9amtlfSk7ZnVuY3Rpb24gWGtlKGUpe3ZhciB0PW5ldyBEYXRlKGUpO3JldHVybiBpc05hTih0KT9udWxsOnR9dmFyICRrZSxfVnQseVZ0PU0oKCk9PntFcnQoKTskNygpOyRrZT0rbmV3IERhdGUoIjIwMDAtMDEtMDFUMDA6MDA6MDAuMDAwWiIpP1hrZTpYQyhNcnQpLF9WdD0ka2V9KTt2YXIgdlZ0PU0oKCk9PnskNygpO2JydCgpO0VydCgpO3lWdCgpfSk7ZnVuY3Rpb24gWXcoKXtyZXR1cm4gYnZ8fCh3VnQoS2tlKSxidj1KQy5ub3coKStKNyl9ZnVuY3Rpb24gS2tlKCl7YnY9MH1mdW5jdGlvbiB3digpe3RoaXMuX2NhbGw9dGhpcy5fdGltZT10aGlzLl9uZXh0PW51bGx9ZnVuY3Rpb24gQ3J0KGUsdCxyKXt2YXIgbj1uZXcgd3Y7cmV0dXJuIG4ucmVzdGFydChlLHQsciksbn1mdW5jdGlvbiBBcnQoKXtZdygpLCsrV3c7Zm9yKHZhciBlPUs3LHQ7ZTspKHQ9YnYtZS5fdGltZSk+PTAmJmUuX2NhbGwuY2FsbChudWxsLHQpLGU9ZS5fbmV4dDstLVd3fWZ1bmN0aW9uIHhWdCgpe2J2PShaNz1KQy5ub3coKSkrSjcsV3c9S0M9MDt0cnl7QXJ0KCl9ZmluYWxseXtXdz0wLEprZSgpLGJ2PTB9fWZ1bmN0aW9uIFprZSgpe3ZhciBlPUpDLm5vdygpLHQ9ZS1aNzt0PmJWdCYmKEo3LT10LFo3PWUpfWZ1bmN0aW9uIEprZSgpe2Zvcih2YXIgZSx0PUs3LHIsbj0xLzA7dDspdC5fY2FsbD8obj50Ll90aW1lJiYobj10Ll90aW1lKSxlPXQsdD10Ll9uZXh0KToocj10Ll9uZXh0LHQuX25leHQ9bnVsbCx0PWU/ZS5fbmV4dD1yOks3PXIpO1pDPWUsVHJ0KG4pfWZ1bmN0aW9uIFRydChlKXtpZighV3cpe0tDJiYoS0M9Y2xlYXJUaW1lb3V0KEtDKSk7dmFyIHQ9ZS1idjt0PjI0PyhlPDEvMCYmKEtDPXNldFRpbWVvdXQoeFZ0LGUtSkMubm93KCktSjcpKSwkQyYmKCRDPWNsZWFySW50ZXJ2YWwoJEMpKSk6KCRDfHwoWjc9SkMubm93KCksJEM9c2V0SW50ZXJ2YWwoWmtlLGJWdCkpLFd3PTEsd1Z0KHhWdCkpfX12YXIgV3csS0MsJEMsYlZ0LEs3LFpDLFo3LGJ2LEo3LEpDLHdWdCxRNz1NKCgpPT57V3c9MCxLQz0wLCRDPTAsYlZ0PTFlMyxaNz0wLGJ2PTAsSjc9MCxKQz10eXBlb2YgcGVyZm9ybWFuY2U9PSJvYmplY3QiJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2U6RGF0ZSx3VnQ9dHlwZW9mIHdpbmRvdz09Im9iamVjdCImJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6ZnVuY3Rpb24oZSl7c2V0VGltZW91dChlLDE3KX07d3YucHJvdG90eXBlPUNydC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnd2LHJlc3RhcnQ6ZnVuY3Rpb24oZSx0LHIpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uIik7cj0ocj09bnVsbD9ZdygpOityKSsodD09bnVsbD8wOit0KSwhdGhpcy5fbmV4dCYmWkMhPT10aGlzJiYoWkM/WkMuX25leHQ9dGhpczpLNz10aGlzLFpDPXRoaXMpLHRoaXMuX2NhbGw9ZSx0aGlzLl90aW1lPXIsVHJ0KCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLl9jYWxsJiYodGhpcy5fY2FsbD1udWxsLHRoaXMuX3RpbWU9MS8wLFRydCgpKX19fSk7ZnVuY3Rpb24gU1Z0KGUsdCxyKXt2YXIgbj1uZXcgd3Y7cmV0dXJuIHQ9dD09bnVsbD8wOit0LG4ucmVzdGFydChmdW5jdGlvbihpKXtuLnN0b3AoKSxlKGkrdCl9LHQsciksbn12YXIgTVZ0PU0oKCk9PntRNygpfSk7ZnVuY3Rpb24gRVZ0KGUsdCxyKXt2YXIgbj1uZXcgd3YsaT10O3JldHVybiB0PT1udWxsPyhuLnJlc3RhcnQoZSx0LHIpLG4pOih0PSt0LHI9cj09bnVsbD9ZdygpOityLG4ucmVzdGFydChmdW5jdGlvbiBvKGEpe2ErPWksbi5yZXN0YXJ0KG8saSs9dCxyKSxlKGEpfSx0LHIpLG4pfXZhciBUVnQ9TSgoKT0+e1E3KCl9KTt2YXIgQ1Z0PU0oKCk9PntRNygpO01WdCgpO1RWdCgpfSk7dmFyIHR6LFBydCxJcnQ9TSgoKT0+e3R6PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIixQcnQ9e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhodG1sOnR6LHhsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIix4bWw6Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIn19KTtmdW5jdGlvbiBjZChlKXt2YXIgdD1lKz0iIixyPXQuaW5kZXhPZigiOiIpO3JldHVybiByPj0wJiYodD1lLnNsaWNlKDAscikpIT09InhtbG5zIiYmKGU9ZS5zbGljZShyKzEpKSxQcnQuaGFzT3duUHJvcGVydHkodCk/e3NwYWNlOlBydFt0XSxsb2NhbDplfTplfXZhciBlej1NKCgpPT57SXJ0KCl9KTtmdW5jdGlvbiBRa2UoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vd25lckRvY3VtZW50LHI9dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIHI9PT10eiYmdC5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09dHo/dC5jcmVhdGVFbGVtZW50KGUpOnQuY3JlYXRlRWxlbWVudE5TKHIsZSl9fWZ1bmN0aW9uIHQ4ZShlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhlLnNwYWNlLGUubG9jYWwpfX1mdW5jdGlvbiByeihlKXt2YXIgdD1jZChlKTtyZXR1cm4odC5sb2NhbD90OGU6UWtlKSh0KX12YXIgTHJ0PU0oKCk9PntleigpO0lydCgpfSk7ZnVuY3Rpb24gZThlKCl7fWZ1bmN0aW9uIFN2KGUpe3JldHVybiBlPT1udWxsP2U4ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IoZSl9fXZhciBuej1NKCgpPT57fSk7ZnVuY3Rpb24gQVZ0KGUpe3R5cGVvZiBlIT0iZnVuY3Rpb24iJiYoZT1TdihlKSk7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxyPXQubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPHI7KytpKWZvcih2YXIgbz10W2ldLGE9by5sZW5ndGgscz1uW2ldPW5ldyBBcnJheShhKSxsLGMsdT0wO3U8YTsrK3UpKGw9b1t1XSkmJihjPWUuY2FsbChsLGwuX19kYXRhX18sdSxvKSkmJigiX19kYXRhX18iaW4gbCYmKGMuX19kYXRhX189bC5fX2RhdGFfXyksc1t1XT1jKTtyZXR1cm4gbmV3IG5vKG4sdGhpcy5fcGFyZW50cyl9dmFyIFBWdD1NKCgpPT57TWYoKTtueigpfSk7ZnVuY3Rpb24gcjhlKCl7cmV0dXJuW119ZnVuY3Rpb24gUUMoZSl7cmV0dXJuIGU9PW51bGw/cjhlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbChlKX19dmFyIGtydD1NKCgpPT57fSk7ZnVuY3Rpb24gSVZ0KGUpe3R5cGVvZiBlIT0iZnVuY3Rpb24iJiYoZT1RQyhlKSk7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxyPXQubGVuZ3RoLG49W10saT1bXSxvPTA7bzxyOysrbylmb3IodmFyIGE9dFtvXSxzPWEubGVuZ3RoLGwsYz0wO2M8czsrK2MpKGw9YVtjXSkmJihuLnB1c2goZS5jYWxsKGwsbC5fX2RhdGFfXyxjLGEpKSxpLnB1c2gobCkpO3JldHVybiBuZXcgbm8obixpKX12YXIgTFZ0PU0oKCk9PntNZigpO2tydCgpfSk7ZnVuY3Rpb24gdEEoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0Y2hlcyhlKX19dmFyIFJydD1NKCgpPT57fSk7ZnVuY3Rpb24ga1Z0KGUpe3R5cGVvZiBlIT0iZnVuY3Rpb24iJiYoZT10QShlKSk7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxyPXQubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPHI7KytpKWZvcih2YXIgbz10W2ldLGE9by5sZW5ndGgscz1uW2ldPVtdLGwsYz0wO2M8YTsrK2MpKGw9b1tjXSkmJmUuY2FsbChsLGwuX19kYXRhX18sYyxvKSYmcy5wdXNoKGwpO3JldHVybiBuZXcgbm8obix0aGlzLl9wYXJlbnRzKX12YXIgUlZ0PU0oKCk9PntNZigpO1JydCgpfSk7ZnVuY3Rpb24gaXooZSl7cmV0dXJuIG5ldyBBcnJheShlLmxlbmd0aCl9dmFyIE5ydD1NKCgpPT57fSk7ZnVuY3Rpb24gTlZ0KCl7cmV0dXJuIG5ldyBubyh0aGlzLl9lbnRlcnx8dGhpcy5fZ3JvdXBzLm1hcChpeiksdGhpcy5fcGFyZW50cyl9ZnVuY3Rpb24gZUEoZSx0KXt0aGlzLm93bmVyRG9jdW1lbnQ9ZS5vd25lckRvY3VtZW50LHRoaXMubmFtZXNwYWNlVVJJPWUubmFtZXNwYWNlVVJJLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wYXJlbnQ9ZSx0aGlzLl9fZGF0YV9fPXR9dmFyIERydD1NKCgpPT57TnJ0KCk7TWYoKTtlQS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmVBLGFwcGVuZENoaWxkOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsdGhpcy5fbmV4dCl9LGluc2VydEJlZm9yZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsdCl9LHF1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yKGUpfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvckFsbChlKX19fSk7ZnVuY3Rpb24gRFZ0KGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX12YXIgT1Z0PU0oKCk9Pnt9KTtmdW5jdGlvbiBuOGUoZSx0LHIsbixpLG8pe2Zvcih2YXIgYT0wLHMsbD10Lmxlbmd0aCxjPW8ubGVuZ3RoO2E8YzsrK2EpKHM9dFthXSk/KHMuX19kYXRhX189b1thXSxuW2FdPXMpOnJbYV09bmV3IGVBKGUsb1thXSk7Zm9yKDthPGw7KythKShzPXRbYV0pJiYoaVthXT1zKX1mdW5jdGlvbiBpOGUoZSx0LHIsbixpLG8sYSl7dmFyIHMsbCxjPXt9LHU9dC5sZW5ndGgsaD1vLmxlbmd0aCxmPW5ldyBBcnJheSh1KSxwO2ZvcihzPTA7czx1OysrcykobD10W3NdKSYmKGZbc109cD16VnQrYS5jYWxsKGwsbC5fX2RhdGFfXyxzLHQpLHAgaW4gYz9pW3NdPWw6Y1twXT1sKTtmb3Iocz0wO3M8aDsrK3MpcD16VnQrYS5jYWxsKGUsb1tzXSxzLG8pLChsPWNbcF0pPyhuW3NdPWwsbC5fX2RhdGFfXz1vW3NdLGNbcF09bnVsbCk6cltzXT1uZXcgZUEoZSxvW3NdKTtmb3Iocz0wO3M8dTsrK3MpKGw9dFtzXSkmJmNbZltzXV09PT1sJiYoaVtzXT1sKX1mdW5jdGlvbiBGVnQoZSx0KXtpZighZSlyZXR1cm4gcD1uZXcgQXJyYXkodGhpcy5zaXplKCkpLGM9LTEsdGhpcy5lYWNoKGZ1bmN0aW9uKFApe3BbKytjXT1QfSkscDt2YXIgcj10P2k4ZTpuOGUsbj10aGlzLl9wYXJlbnRzLGk9dGhpcy5fZ3JvdXBzO3R5cGVvZiBlIT0iZnVuY3Rpb24iJiYoZT1EVnQoZSkpO2Zvcih2YXIgbz1pLmxlbmd0aCxhPW5ldyBBcnJheShvKSxzPW5ldyBBcnJheShvKSxsPW5ldyBBcnJheShvKSxjPTA7YzxvOysrYyl7dmFyIHU9bltjXSxoPWlbY10sZj1oLmxlbmd0aCxwPWUuY2FsbCh1LHUmJnUuX19kYXRhX18sYyxuKSxkPXAubGVuZ3RoLGc9c1tjXT1uZXcgQXJyYXkoZCksXz1hW2NdPW5ldyBBcnJheShkKSx5PWxbY109bmV3IEFycmF5KGYpO3IodSxoLGcsXyx5LHAsdCk7Zm9yKHZhciB4PTAsYj0wLFMsQzt4PGQ7Kyt4KWlmKFM9Z1t4XSl7Zm9yKHg+PWImJihiPXgrMSk7IShDPV9bYl0pJiYrK2I8ZDspO1MuX25leHQ9Q3x8bnVsbH19cmV0dXJuIGE9bmV3IG5vKGEsbiksYS5fZW50ZXI9cyxhLl9leGl0PWwsYX12YXIgelZ0LEJWdD1NKCgpPT57TWYoKTtEcnQoKTtPVnQoKTt6VnQ9IiQifSk7ZnVuY3Rpb24gSFZ0KCl7cmV0dXJuIG5ldyBubyh0aGlzLl9leGl0fHx0aGlzLl9ncm91cHMubWFwKGl6KSx0aGlzLl9wYXJlbnRzKX12YXIgVlZ0PU0oKCk9PntOcnQoKTtNZigpfSk7ZnVuY3Rpb24gVVZ0KGUsdCxyKXt2YXIgbj10aGlzLmVudGVyKCksaT10aGlzLG89dGhpcy5leGl0KCk7cmV0dXJuIG49dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZShuKTpuLmFwcGVuZChlKyIiKSx0IT1udWxsJiYoaT10KGkpKSxyPT1udWxsP28ucmVtb3ZlKCk6cihvKSxuJiZpP24ubWVyZ2UoaSkub3JkZXIoKTppfXZhciBxVnQ9TSgoKT0+e30pO2Z1bmN0aW9uIEdWdChlKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9ZS5fZ3JvdXBzLG49dC5sZW5ndGgsaT1yLmxlbmd0aCxvPU1hdGgubWluKG4saSksYT1uZXcgQXJyYXkobikscz0wO3M8bzsrK3MpZm9yKHZhciBsPXRbc10sYz1yW3NdLHU9bC5sZW5ndGgsaD1hW3NdPW5ldyBBcnJheSh1KSxmLHA9MDtwPHU7KytwKShmPWxbcF18fGNbcF0pJiYoaFtwXT1mKTtmb3IoO3M8bjsrK3MpYVtzXT10W3NdO3JldHVybiBuZXcgbm8oYSx0aGlzLl9wYXJlbnRzKX12YXIgV1Z0PU0oKCk9PntNZigpfSk7ZnVuY3Rpb24gWVZ0KCl7Zm9yKHZhciBlPXRoaXMuX2dyb3Vwcyx0PS0xLHI9ZS5sZW5ndGg7Kyt0PHI7KWZvcih2YXIgbj1lW3RdLGk9bi5sZW5ndGgtMSxvPW5baV0sYTstLWk+PTA7KShhPW5baV0pJiYobyYmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihvKV40JiZvLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsbyksbz1hKTtyZXR1cm4gdGhpc312YXIgalZ0PU0oKCk9Pnt9KTtmdW5jdGlvbiBYVnQoZSl7ZXx8KGU9bzhlKTtmdW5jdGlvbiB0KGgsZil7cmV0dXJuIGgmJmY/ZShoLl9fZGF0YV9fLGYuX19kYXRhX18pOiFoLSFmfWZvcih2YXIgcj10aGlzLl9ncm91cHMsbj1yLmxlbmd0aCxpPW5ldyBBcnJheShuKSxvPTA7bzxuOysrbyl7Zm9yKHZhciBhPXJbb10scz1hLmxlbmd0aCxsPWlbb109bmV3IEFycmF5KHMpLGMsdT0wO3U8czsrK3UpKGM9YVt1XSkmJihsW3VdPWMpO2wuc29ydCh0KX1yZXR1cm4gbmV3IG5vKGksdGhpcy5fcGFyZW50cykub3JkZXIoKX1mdW5jdGlvbiBvOGUoZSx0KXtyZXR1cm4gZTx0Py0xOmU+dD8xOmU+PXQ/MDpOYU59dmFyICRWdD1NKCgpPT57TWYoKX0pO2Z1bmN0aW9uIEtWdCgpe3ZhciBlPWFyZ3VtZW50c1swXTtyZXR1cm4gYXJndW1lbnRzWzBdPXRoaXMsZS5hcHBseShudWxsLGFyZ3VtZW50cyksdGhpc312YXIgWlZ0PU0oKCk9Pnt9KTtmdW5jdGlvbiBKVnQoKXt2YXIgZT1uZXcgQXJyYXkodGhpcy5zaXplKCkpLHQ9LTE7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2VbKyt0XT10aGlzfSksZX12YXIgUVZ0PU0oKCk9Pnt9KTtmdW5jdGlvbiB0VXQoKXtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLHQ9MCxyPWUubGVuZ3RoO3Q8cjsrK3QpZm9yKHZhciBuPWVbdF0saT0wLG89bi5sZW5ndGg7aTxvOysraSl7dmFyIGE9bltpXTtpZihhKXJldHVybiBhfXJldHVybiBudWxsfXZhciBlVXQ9TSgoKT0+e30pO2Z1bmN0aW9uIHJVdCgpe3ZhciBlPTA7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpeysrZX0pLGV9dmFyIG5VdD1NKCgpPT57fSk7ZnVuY3Rpb24gaVV0KCl7cmV0dXJuIXRoaXMubm9kZSgpfXZhciBvVXQ9TSgoKT0+e30pO2Z1bmN0aW9uIGFVdChlKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9MCxuPXQubGVuZ3RoO3I8bjsrK3IpZm9yKHZhciBpPXRbcl0sbz0wLGE9aS5sZW5ndGgscztvPGE7KytvKShzPWlbb10pJiZlLmNhbGwocyxzLl9fZGF0YV9fLG8saSk7cmV0dXJuIHRoaXN9dmFyIHNVdD1NKCgpPT57fSk7ZnVuY3Rpb24gYThlKGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKGUpfX1mdW5jdGlvbiBzOGUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpfX1mdW5jdGlvbiBsOGUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZShlLHQpfX1mdW5jdGlvbiBjOGUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCx0KX19ZnVuY3Rpb24gdThlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cj09bnVsbD90aGlzLnJlbW92ZUF0dHJpYnV0ZShlKTp0aGlzLnNldEF0dHJpYnV0ZShlLHIpfX1mdW5jdGlvbiBoOGUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyPT1udWxsP3RoaXMucmVtb3ZlQXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsKTp0aGlzLnNldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCxyKX19ZnVuY3Rpb24gbFV0KGUsdCl7dmFyIHI9Y2QoZSk7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgbj10aGlzLm5vZGUoKTtyZXR1cm4gci5sb2NhbD9uLmdldEF0dHJpYnV0ZU5TKHIuc3BhY2Usci5sb2NhbCk6bi5nZXRBdHRyaWJ1dGUocil9cmV0dXJuIHRoaXMuZWFjaCgodD09bnVsbD9yLmxvY2FsP3M4ZTphOGU6dHlwZW9mIHQ9PSJmdW5jdGlvbiI/ci5sb2NhbD9oOGU6dThlOnIubG9jYWw/YzhlOmw4ZSkocix0KSl9dmFyIGNVdD1NKCgpPT57ZXooKX0pO2Z1bmN0aW9uIG96KGUpe3JldHVybiBlLm93bmVyRG9jdW1lbnQmJmUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8ZS5kb2N1bWVudCYmZXx8ZS5kZWZhdWx0Vmlld312YXIgT3J0PU0oKCk9Pnt9KTtmdW5jdGlvbiBmOGUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShlKX19ZnVuY3Rpb24gcDhlKGUsdCxyKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KGUsdCxyKX19ZnVuY3Rpb24gZDhlKGUsdCxyKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtuPT1udWxsP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoZSk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eShlLG4scil9fWZ1bmN0aW9uIHVVdChlLHQscil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKHQ9PW51bGw/ZjhlOnR5cGVvZiB0PT0iZnVuY3Rpb24iP2Q4ZTpwOGUpKGUsdCxyPT1udWxsPyIiOnIpKTpIZyh0aGlzLm5vZGUoKSxlKX1mdW5jdGlvbiBIZyhlLHQpe3JldHVybiBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUodCl8fG96KGUpLmdldENvbXB1dGVkU3R5bGUoZSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHQpfXZhciB6cnQ9TSgoKT0+e09ydCgpfSk7ZnVuY3Rpb24gbThlKGUpe3JldHVybiBmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW2VdfX1mdW5jdGlvbiBnOGUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzW2VdPXR9fWZ1bmN0aW9uIF84ZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciByPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3I9PW51bGw/ZGVsZXRlIHRoaXNbZV06dGhpc1tlXT1yfX1mdW5jdGlvbiBoVXQoZSx0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgodD09bnVsbD9tOGU6dHlwZW9mIHQ9PSJmdW5jdGlvbiI/XzhlOmc4ZSkoZSx0KSk6dGhpcy5ub2RlKClbZV19dmFyIGZVdD1NKCgpPT57fSk7ZnVuY3Rpb24gcFV0KGUpe3JldHVybiBlLnRyaW0oKS5zcGxpdCgvXnxccysvKX1mdW5jdGlvbiBGcnQoZSl7cmV0dXJuIGUuY2xhc3NMaXN0fHxuZXcgZFV0KGUpfWZ1bmN0aW9uIGRVdChlKXt0aGlzLl9ub2RlPWUsdGhpcy5fbmFtZXM9cFV0KGUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9ZnVuY3Rpb24gbVV0KGUsdCl7Zm9yKHZhciByPUZydChlKSxuPS0xLGk9dC5sZW5ndGg7KytuPGk7KXIuYWRkKHRbbl0pfWZ1bmN0aW9uIGdVdChlLHQpe2Zvcih2YXIgcj1GcnQoZSksbj0tMSxpPXQubGVuZ3RoOysrbjxpOylyLnJlbW92ZSh0W25dKX1mdW5jdGlvbiB5OGUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7bVV0KHRoaXMsZSl9fWZ1bmN0aW9uIHY4ZShlKXtyZXR1cm4gZnVuY3Rpb24oKXtnVXQodGhpcyxlKX19ZnVuY3Rpb24geDhlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7KHQuYXBwbHkodGhpcyxhcmd1bWVudHMpP21VdDpnVXQpKHRoaXMsZSl9fWZ1bmN0aW9uIF9VdChlLHQpe3ZhciByPXBVdChlKyIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgbj1GcnQodGhpcy5ub2RlKCkpLGk9LTEsbz1yLmxlbmd0aDsrK2k8bzspaWYoIW4uY29udGFpbnMocltpXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgodHlwZW9mIHQ9PSJmdW5jdGlvbiI/eDhlOnQ/eThlOnY4ZSkocix0KSl9dmFyIHlVdD1NKCgpPT57ZFV0LnByb3RvdHlwZT17YWRkOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX25hbWVzLmluZGV4T2YoZSk7dDwwJiYodGhpcy5fbmFtZXMucHVzaChlKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxyZW1vdmU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fbmFtZXMuaW5kZXhPZihlKTt0Pj0wJiYodGhpcy5fbmFtZXMuc3BsaWNlKHQsMSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0sY29udGFpbnM6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2YoZSk+PTB9fX0pO2Z1bmN0aW9uIGI4ZSgpe3RoaXMudGV4dENvbnRlbnQ9IiJ9ZnVuY3Rpb24gdzhlKGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9ZX19ZnVuY3Rpb24gUzhlKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9dD09bnVsbD8iIjp0fX1mdW5jdGlvbiB2VXQoZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKGU9PW51bGw/YjhlOih0eXBlb2YgZT09ImZ1bmN0aW9uIj9TOGU6dzhlKShlKSk6dGhpcy5ub2RlKCkudGV4dENvbnRlbnR9dmFyIHhVdD1NKCgpPT57fSk7ZnVuY3Rpb24gTThlKCl7dGhpcy5pbm5lckhUTUw9IiJ9ZnVuY3Rpb24gRThlKGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPWV9fWZ1bmN0aW9uIFQ4ZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLmlubmVySFRNTD10PT1udWxsPyIiOnR9fWZ1bmN0aW9uIGJVdChlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goZT09bnVsbD9NOGU6KHR5cGVvZiBlPT0iZnVuY3Rpb24iP1Q4ZTpFOGUpKGUpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9dmFyIHdVdD1NKCgpPT57fSk7ZnVuY3Rpb24gQzhlKCl7dGhpcy5uZXh0U2libGluZyYmdGhpcy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMpfWZ1bmN0aW9uIFNVdCgpe3JldHVybiB0aGlzLmVhY2goQzhlKX12YXIgTVV0PU0oKCk9Pnt9KTtmdW5jdGlvbiBBOGUoKXt0aGlzLnByZXZpb3VzU2libGluZyYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLHRoaXMucGFyZW50Tm9kZS5maXJzdENoaWxkKX1mdW5jdGlvbiBFVXQoKXtyZXR1cm4gdGhpcy5lYWNoKEE4ZSl9dmFyIFRVdD1NKCgpPT57fSk7ZnVuY3Rpb24gQ1V0KGUpe3ZhciB0PXR5cGVvZiBlPT0iZnVuY3Rpb24iP2U6cnooZSk7cmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwZW5kQ2hpbGQodC5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSl9dmFyIEFVdD1NKCgpPT57THJ0KCl9KTtmdW5jdGlvbiBQOGUoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBQVXQoZSx0KXt2YXIgcj10eXBlb2YgZT09ImZ1bmN0aW9uIj9lOnJ6KGUpLG49dD09bnVsbD9QOGU6dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDpTdih0KTtyZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUoci5hcHBseSh0aGlzLGFyZ3VtZW50cyksbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSl9dmFyIElVdD1NKCgpPT57THJ0KCk7bnooKX0pO2Z1bmN0aW9uIEk4ZSgpe3ZhciBlPXRoaXMucGFyZW50Tm9kZTtlJiZlLnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIExVdCgpe3JldHVybiB0aGlzLmVhY2goSThlKX12YXIga1V0PU0oKCk9Pnt9KTtmdW5jdGlvbiBMOGUoKXt2YXIgZT10aGlzLmNsb25lTm9kZSghMSksdD10aGlzLnBhcmVudE5vZGU7cmV0dXJuIHQ/dC5pbnNlcnRCZWZvcmUoZSx0aGlzLm5leHRTaWJsaW5nKTplfWZ1bmN0aW9uIGs4ZSgpe3ZhciBlPXRoaXMuY2xvbmVOb2RlKCEwKSx0PXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gdD90Lmluc2VydEJlZm9yZShlLHRoaXMubmV4dFNpYmxpbmcpOmV9ZnVuY3Rpb24gUlV0KGUpe3JldHVybiB0aGlzLnNlbGVjdChlP2s4ZTpMOGUpfXZhciBOVXQ9TSgoKT0+e30pO2Z1bmN0aW9uIERVdChlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsZSk6dGhpcy5ub2RlKCkuX19kYXRhX199dmFyIE9VdD1NKCgpPT57fSk7ZnVuY3Rpb24gUjhlKGUsdCxyKXtyZXR1cm4gZT1CVXQoZSx0LHIpLGZ1bmN0aW9uKG4pe3ZhciBpPW4ucmVsYXRlZFRhcmdldDsoIWl8fGkhPT10aGlzJiYhKGkuY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcykmOCkpJiZlLmNhbGwodGhpcyxuKX19ZnVuY3Rpb24gQlV0KGUsdCxyKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGk9QnJ0O0JydD1uO3RyeXtlLmNhbGwodGhpcyx0aGlzLl9fZGF0YV9fLHQscil9ZmluYWxseXtCcnQ9aX19fWZ1bmN0aW9uIE44ZShlKXtyZXR1cm4gZS50cmltKCkuc3BsaXQoL158XHMrLykubWFwKGZ1bmN0aW9uKHQpe3ZhciByPSIiLG49dC5pbmRleE9mKCIuIik7cmV0dXJuIG4+PTAmJihyPXQuc2xpY2UobisxKSx0PXQuc2xpY2UoMCxuKSkse3R5cGU6dCxuYW1lOnJ9fSl9ZnVuY3Rpb24gRDhlKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMuX19vbjtpZighIXQpe2Zvcih2YXIgcj0wLG49LTEsaT10Lmxlbmd0aCxvO3I8aTsrK3Ipbz10W3JdLCghZS50eXBlfHxvLnR5cGU9PT1lLnR5cGUpJiZvLm5hbWU9PT1lLm5hbWU/dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKG8udHlwZSxvLmxpc3RlbmVyLG8uY2FwdHVyZSk6dFsrK25dPW87KytuP3QubGVuZ3RoPW46ZGVsZXRlIHRoaXMuX19vbn19fWZ1bmN0aW9uIE84ZShlLHQscil7dmFyIG49RlV0Lmhhc093blByb3BlcnR5KGUudHlwZSk/UjhlOkJVdDtyZXR1cm4gZnVuY3Rpb24oaSxvLGEpe3ZhciBzPXRoaXMuX19vbixsLGM9bih0LG8sYSk7aWYocyl7Zm9yKHZhciB1PTAsaD1zLmxlbmd0aDt1PGg7Kyt1KWlmKChsPXNbdV0pLnR5cGU9PT1lLnR5cGUmJmwubmFtZT09PWUubmFtZSl7dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGwudHlwZSxsLmxpc3RlbmVyLGwuY2FwdHVyZSksdGhpcy5hZGRFdmVudExpc3RlbmVyKGwudHlwZSxsLmxpc3RlbmVyPWMsbC5jYXB0dXJlPXIpLGwudmFsdWU9dDtyZXR1cm59fXRoaXMuYWRkRXZlbnRMaXN0ZW5lcihlLnR5cGUsYyxyKSxsPXt0eXBlOmUudHlwZSxuYW1lOmUubmFtZSx2YWx1ZTp0LGxpc3RlbmVyOmMsY2FwdHVyZTpyfSxzP3MucHVzaChsKTp0aGlzLl9fb249W2xdfX1mdW5jdGlvbiBIVXQoZSx0LHIpe3ZhciBuPU44ZShlKyIiKSxpLG89bi5sZW5ndGgsYTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBzPXRoaXMubm9kZSgpLl9fb247aWYocyl7Zm9yKHZhciBsPTAsYz1zLmxlbmd0aCx1O2w8YzsrK2wpZm9yKGk9MCx1PXNbbF07aTxvOysraSlpZigoYT1uW2ldKS50eXBlPT09dS50eXBlJiZhLm5hbWU9PT11Lm5hbWUpcmV0dXJuIHUudmFsdWV9cmV0dXJufWZvcihzPXQ/TzhlOkQ4ZSxyPT1udWxsJiYocj0hMSksaT0wO2k8bzsrK2kpdGhpcy5lYWNoKHMobltpXSx0LHIpKTtyZXR1cm4gdGhpc312YXIgRlV0LEJydCx6VXQsVlV0PU0oKCk9PntGVXQ9e30sQnJ0PW51bGw7dHlwZW9mIGRvY3VtZW50IT0idW5kZWZpbmVkIiYmKHpVdD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIm9ubW91c2VlbnRlciJpbiB6VXR8fChGVXQ9e21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSkpfSk7ZnVuY3Rpb24gVVV0KGUsdCxyKXt2YXIgbj1veihlKSxpPW4uQ3VzdG9tRXZlbnQ7dHlwZW9mIGk9PSJmdW5jdGlvbiI/aT1uZXcgaSh0LHIpOihpPW4uZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iikscj8oaS5pbml0RXZlbnQodCxyLmJ1YmJsZXMsci5jYW5jZWxhYmxlKSxpLmRldGFpbD1yLmRldGFpbCk6aS5pbml0RXZlbnQodCwhMSwhMSkpLGUuZGlzcGF0Y2hFdmVudChpKX1mdW5jdGlvbiB6OGUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gVVV0KHRoaXMsZSx0KX19ZnVuY3Rpb24gRjhlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIFVVdCh0aGlzLGUsdC5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX1mdW5jdGlvbiBxVXQoZSx0KXtyZXR1cm4gdGhpcy5lYWNoKCh0eXBlb2YgdD09ImZ1bmN0aW9uIj9GOGU6ejhlKShlLHQpKX12YXIgR1V0PU0oKCk9PntPcnQoKX0pO2Z1bmN0aW9uIG5vKGUsdCl7dGhpcy5fZ3JvdXBzPWUsdGhpcy5fcGFyZW50cz10fWZ1bmN0aW9uIFdVdCgpe3JldHVybiBuZXcgbm8oW1tkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdXSxCOGUpfXZhciBCOGUsdWQsTWY9TSgoKT0+e1BWdCgpO0xWdCgpO1JWdCgpO0JWdCgpO0RydCgpO1ZWdCgpO3FWdCgpO1dWdCgpO2pWdCgpOyRWdCgpO1pWdCgpO1FWdCgpO2VVdCgpO25VdCgpO29VdCgpO3NVdCgpO2NVdCgpO3pydCgpO2ZVdCgpO3lVdCgpO3hVdCgpO3dVdCgpO01VdCgpO1RVdCgpO0FVdCgpO0lVdCgpO2tVdCgpO05VdCgpO09VdCgpO1ZVdCgpO0dVdCgpO0I4ZT1bbnVsbF07bm8ucHJvdG90eXBlPVdVdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOm5vLHNlbGVjdDpBVnQsc2VsZWN0QWxsOklWdCxmaWx0ZXI6a1Z0LGRhdGE6RlZ0LGVudGVyOk5WdCxleGl0OkhWdCxqb2luOlVWdCxtZXJnZTpHVnQsb3JkZXI6WVZ0LHNvcnQ6WFZ0LGNhbGw6S1Z0LG5vZGVzOkpWdCxub2RlOnRVdCxzaXplOnJVdCxlbXB0eTppVXQsZWFjaDphVXQsYXR0cjpsVXQsc3R5bGU6dVV0LHByb3BlcnR5OmhVdCxjbGFzc2VkOl9VdCx0ZXh0OnZVdCxodG1sOmJVdCxyYWlzZTpTVXQsbG93ZXI6RVV0LGFwcGVuZDpDVXQsaW5zZXJ0OlBVdCxyZW1vdmU6TFV0LGNsb25lOlJVdCxkYXR1bTpEVXQsb246SFV0LGRpc3BhdGNoOnFVdH07dWQ9V1V0fSk7dmFyIEVmPU0oKCk9PntScnQoKTtleigpO01mKCk7bnooKTtrcnQoKTt6cnQoKX0pO2Z1bmN0aW9uIGpVdCgpe2Zvcih2YXIgZT0wLHQ9YXJndW1lbnRzLmxlbmd0aCxyPXt9LG47ZTx0OysrZSl7aWYoIShuPWFyZ3VtZW50c1tlXSsiIil8fG4gaW4gcnx8L1tccy5dLy50ZXN0KG4pKXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCB0eXBlOiAiK24pO3Jbbl09W119cmV0dXJuIG5ldyBheihyKX1mdW5jdGlvbiBheihlKXt0aGlzLl89ZX1mdW5jdGlvbiBWOGUoZSx0KXtyZXR1cm4gZS50cmltKCkuc3BsaXQoL158XHMrLykubWFwKGZ1bmN0aW9uKHIpe3ZhciBuPSIiLGk9ci5pbmRleE9mKCIuIik7aWYoaT49MCYmKG49ci5zbGljZShpKzEpLHI9ci5zbGljZSgwLGkpKSxyJiYhdC5oYXNPd25Qcm9wZXJ0eShyKSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIityKTtyZXR1cm57dHlwZTpyLG5hbWU6bn19KX1mdW5jdGlvbiBVOGUoZSx0KXtmb3IodmFyIHI9MCxuPWUubGVuZ3RoLGk7cjxuOysrcilpZigoaT1lW3JdKS5uYW1lPT09dClyZXR1cm4gaS52YWx1ZX1mdW5jdGlvbiBZVXQoZSx0LHIpe2Zvcih2YXIgbj0wLGk9ZS5sZW5ndGg7bjxpOysrbilpZihlW25dLm5hbWU9PT10KXtlW25dPUg4ZSxlPWUuc2xpY2UoMCxuKS5jb25jYXQoZS5zbGljZShuKzEpKTticmVha31yZXR1cm4gciE9bnVsbCYmZS5wdXNoKHtuYW1lOnQsdmFsdWU6cn0pLGV9dmFyIEg4ZSxIcnQsWFV0PU0oKCk9PntIOGU9e3ZhbHVlOmZ1bmN0aW9uKCl7fX07YXoucHJvdG90eXBlPWpVdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmF6LG9uOmZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5fLG49VjhlKGUrIiIsciksaSxvPS0xLGE9bi5sZW5ndGg7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IoOysrbzxhOylpZigoaT0oZT1uW29dKS50eXBlKSYmKGk9VThlKHJbaV0sZS5uYW1lKSkpcmV0dXJuIGk7cmV0dXJufWlmKHQhPW51bGwmJnR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjazogIit0KTtmb3IoOysrbzxhOylpZihpPShlPW5bb10pLnR5cGUpcltpXT1ZVXQocltpXSxlLm5hbWUsdCk7ZWxzZSBpZih0PT1udWxsKWZvcihpIGluIHIpcltpXT1ZVXQocltpXSxlLm5hbWUsbnVsbCk7cmV0dXJuIHRoaXN9LGNvcHk6ZnVuY3Rpb24oKXt2YXIgZT17fSx0PXRoaXMuXztmb3IodmFyIHIgaW4gdCllW3JdPXRbcl0uc2xpY2UoKTtyZXR1cm4gbmV3IGF6KGUpfSxjYWxsOmZ1bmN0aW9uKGUsdCl7aWYoKGk9YXJndW1lbnRzLmxlbmd0aC0yKT4wKWZvcih2YXIgcj1uZXcgQXJyYXkoaSksbj0wLGksbztuPGk7KytuKXJbbl09YXJndW1lbnRzW24rMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eShlKSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIitlKTtmb3Iobz10aGlzLl9bZV0sbj0wLGk9by5sZW5ndGg7bjxpOysrbilvW25dLnZhbHVlLmFwcGx5KHQscil9LGFwcGx5OmZ1bmN0aW9uKGUsdCxyKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KGUpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK2UpO2Zvcih2YXIgbj10aGlzLl9bZV0saT0wLG89bi5sZW5ndGg7aTxvOysraSluW2ldLnZhbHVlLmFwcGx5KHQscil9fTtIcnQ9alV0fSk7dmFyICRVdD1NKCgpPT57WFV0KCl9KTtmdW5jdGlvbiBYdygpe3JldHVybiBNdnx8KEpVdChxOGUpLE12PW9BLm5vdygpK2N6KX1mdW5jdGlvbiBxOGUoKXtNdj0wfWZ1bmN0aW9uIGFBKCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiB1eihlLHQscil7dmFyIG49bmV3IGFBO3JldHVybiBuLnJlc3RhcnQoZSx0LHIpLG59ZnVuY3Rpb24gUVV0KCl7WHcoKSwrK2p3O2Zvcih2YXIgZT1zeix0O2U7KSh0PU12LWUuX3RpbWUpPj0wJiZlLl9jYWxsLmNhbGwobnVsbCx0KSxlPWUuX25leHQ7LS1qd31mdW5jdGlvbiBLVXQoKXtNdj0obHo9b0Eubm93KCkpK2N6LGp3PW5BPTA7dHJ5e1FVdCgpfWZpbmFsbHl7anc9MCxXOGUoKSxNdj0wfX1mdW5jdGlvbiBHOGUoKXt2YXIgZT1vQS5ub3coKSx0PWUtbHo7dD5aVXQmJihjei09dCxsej1lKX1mdW5jdGlvbiBXOGUoKXtmb3IodmFyIGUsdD1zeixyLG49MS8wO3Q7KXQuX2NhbGw/KG4+dC5fdGltZSYmKG49dC5fdGltZSksZT10LHQ9dC5fbmV4dCk6KHI9dC5fbmV4dCx0Ll9uZXh0PW51bGwsdD1lP2UuX25leHQ9cjpzej1yKTtpQT1lLFZydChuKX1mdW5jdGlvbiBWcnQoZSl7aWYoIWp3KXtuQSYmKG5BPWNsZWFyVGltZW91dChuQSkpO3ZhciB0PWUtTXY7dD4yND8oZTwxLzAmJihuQT1zZXRUaW1lb3V0KEtVdCxlLW9BLm5vdygpLWN6KSksckEmJihyQT1jbGVhckludGVydmFsKHJBKSkpOihyQXx8KGx6PW9BLm5vdygpLHJBPXNldEludGVydmFsKEc4ZSxaVXQpKSxqdz0xLEpVdChLVXQpKX19dmFyIGp3LG5BLHJBLFpVdCxzeixpQSxseixNdixjeixvQSxKVXQsVXJ0PU0oKCk9Pntqdz0wLG5BPTAsckE9MCxaVXQ9MWUzLGx6PTAsTXY9MCxjej0wLG9BPXR5cGVvZiBwZXJmb3JtYW5jZT09Im9iamVjdCImJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLEpVdD10eXBlb2Ygd2luZG93PT0ib2JqZWN0IiYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpmdW5jdGlvbihlKXtzZXRUaW1lb3V0KGUsMTcpfTthQS5wcm90b3R5cGU9dXoucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjphQSxyZXN0YXJ0OmZ1bmN0aW9uKGUsdCxyKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbiIpO3I9KHI9PW51bGw/WHcoKTorcikrKHQ9PW51bGw/MDordCksIXRoaXMuX25leHQmJmlBIT09dGhpcyYmKGlBP2lBLl9uZXh0PXRoaXM6c3o9dGhpcyxpQT10aGlzKSx0aGlzLl9jYWxsPWUsdGhpcy5fdGltZT1yLFZydCgpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5fY2FsbCYmKHRoaXMuX2NhbGw9bnVsbCx0aGlzLl90aW1lPTEvMCxWcnQoKSl9fX0pO2Z1bmN0aW9uIGh6KGUsdCxyKXt2YXIgbj1uZXcgYUE7cmV0dXJuIHQ9dD09bnVsbD8wOit0LG4ucmVzdGFydChmdW5jdGlvbihpKXtuLnN0b3AoKSxlKGkrdCl9LHQsciksbn12YXIgdHF0PU0oKCk9PntVcnQoKX0pO3ZhciBxcnQ9TSgoKT0+e1VydCgpO3RxdCgpfSk7ZnVuY3Rpb24gVmcoZSx0LHIsbixpLG8pe3ZhciBhPWUuX190cmFuc2l0aW9uO2lmKCFhKWUuX190cmFuc2l0aW9uPXt9O2Vsc2UgaWYociBpbiBhKXJldHVybjtYOGUoZSxyLHtuYW1lOnQsaW5kZXg6bixncm91cDppLG9uOlk4ZSx0d2VlbjpqOGUsdGltZTpvLnRpbWUsZGVsYXk6by5kZWxheSxkdXJhdGlvbjpvLmR1cmF0aW9uLGVhc2U6by5lYXNlLHRpbWVyOm51bGwsc3RhdGU6cnF0fSl9ZnVuY3Rpb24gY0EoZSx0KXt2YXIgcj1pbyhlLHQpO2lmKHIuc3RhdGU+cnF0KXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgc2NoZWR1bGVkIik7cmV0dXJuIHJ9ZnVuY3Rpb24gRHUoZSx0KXt2YXIgcj1pbyhlLHQpO2lmKHIuc3RhdGU+bEEpdGhyb3cgbmV3IEVycm9yKCJ0b28gbGF0ZTsgYWxyZWFkeSBzdGFydGVkIik7cmV0dXJuIHJ9ZnVuY3Rpb24gaW8oZSx0KXt2YXIgcj1lLl9fdHJhbnNpdGlvbjtpZighcnx8IShyPXJbdF0pKXRocm93IG5ldyBFcnJvcigidHJhbnNpdGlvbiBub3QgZm91bmQiKTtyZXR1cm4gcn1mdW5jdGlvbiBYOGUoZSx0LHIpe3ZhciBuPWUuX190cmFuc2l0aW9uLGk7blt0XT1yLHIudGltZXI9dXoobywwLHIudGltZSk7ZnVuY3Rpb24gbyhjKXtyLnN0YXRlPWZ6LHIudGltZXIucmVzdGFydChhLHIuZGVsYXksci50aW1lKSxyLmRlbGF5PD1jJiZhKGMtci5kZWxheSl9ZnVuY3Rpb24gYShjKXt2YXIgdSxoLGYscDtpZihyLnN0YXRlIT09ZnopcmV0dXJuIGwoKTtmb3IodSBpbiBuKWlmKHA9blt1XSxwLm5hbWU9PT1yLm5hbWUpe2lmKHAuc3RhdGU9PT1HcnQpcmV0dXJuIGh6KGEpO3Auc3RhdGU9PT1lcXQ/KHAuc3RhdGU9c0EscC50aW1lci5zdG9wKCkscC5vbi5jYWxsKCJpbnRlcnJ1cHQiLGUsZS5fX2RhdGFfXyxwLmluZGV4LHAuZ3JvdXApLGRlbGV0ZSBuW3VdKTordTx0JiYocC5zdGF0ZT1zQSxwLnRpbWVyLnN0b3AoKSxkZWxldGUgblt1XSl9aWYoaHooZnVuY3Rpb24oKXtyLnN0YXRlPT09R3J0JiYoci5zdGF0ZT1lcXQsci50aW1lci5yZXN0YXJ0KHMsci5kZWxheSxyLnRpbWUpLHMoYykpfSksci5zdGF0ZT1sQSxyLm9uLmNhbGwoInN0YXJ0IixlLGUuX19kYXRhX18sci5pbmRleCxyLmdyb3VwKSxyLnN0YXRlPT09bEEpe2ZvcihyLnN0YXRlPUdydCxpPW5ldyBBcnJheShmPXIudHdlZW4ubGVuZ3RoKSx1PTAsaD0tMTt1PGY7Kyt1KShwPXIudHdlZW5bdV0udmFsdWUuY2FsbChlLGUuX19kYXRhX18sci5pbmRleCxyLmdyb3VwKSkmJihpWysraF09cCk7aS5sZW5ndGg9aCsxfX1mdW5jdGlvbiBzKGMpe2Zvcih2YXIgdT1jPHIuZHVyYXRpb24/ci5lYXNlLmNhbGwobnVsbCxjL3IuZHVyYXRpb24pOihyLnRpbWVyLnJlc3RhcnQobCksci5zdGF0ZT1weiwxKSxoPS0xLGY9aS5sZW5ndGg7KytoPGY7KWlbaF0uY2FsbChudWxsLHUpO3Iuc3RhdGU9PT1weiYmKHIub24uY2FsbCgiZW5kIixlLGUuX19kYXRhX18sci5pbmRleCxyLmdyb3VwKSxsKCkpfWZ1bmN0aW9uIGwoKXtyLnN0YXRlPXNBLHIudGltZXIuc3RvcCgpLGRlbGV0ZSBuW3RdO2Zvcih2YXIgYyBpbiBuKXJldHVybjtkZWxldGUgZS5fX3RyYW5zaXRpb259fXZhciBZOGUsajhlLHJxdCxmeixsQSxHcnQsZXF0LHB6LHNBLEFjPU0oKCk9PnskVXQoKTtxcnQoKTtZOGU9SHJ0KCJzdGFydCIsImVuZCIsImludGVycnVwdCIpLGo4ZT1bXSxycXQ9MCxmej0xLGxBPTIsR3J0PTMsZXF0PTQscHo9NSxzQT02fSk7ZnVuY3Rpb24gZHooZSx0KXt2YXIgcj1lLl9fdHJhbnNpdGlvbixuLGksbz0hMCxhO2lmKCEhcil7dD10PT1udWxsP251bGw6dCsiIjtmb3IoYSBpbiByKXtpZigobj1yW2FdKS5uYW1lIT09dCl7bz0hMTtjb250aW51ZX1pPW4uc3RhdGU+bEEmJm4uc3RhdGU8cHosbi5zdGF0ZT1zQSxuLnRpbWVyLnN0b3AoKSxpJiZuLm9uLmNhbGwoImludGVycnVwdCIsZSxlLl9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCksZGVsZXRlIHJbYV19byYmZGVsZXRlIGUuX190cmFuc2l0aW9ufX12YXIgV3J0PU0oKCk9PntBYygpfSk7ZnVuY3Rpb24gbnF0KGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkeih0aGlzLGUpfSl9dmFyIGlxdD1NKCgpPT57V3J0KCl9KTtmdW5jdGlvbiBteihlLHQscil7ZS5wcm90b3R5cGU9dC5wcm90b3R5cGU9cixyLmNvbnN0cnVjdG9yPWV9ZnVuY3Rpb24gWXJ0KGUsdCl7dmFyIHI9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSk7Zm9yKHZhciBuIGluIHQpcltuXT10W25dO3JldHVybiByfXZhciBvcXQ9TSgoKT0+e30pO2Z1bmN0aW9uIGZBKCl7fWZ1bmN0aW9uIHNxdCgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIHJSZSgpe3JldHVybiBwcXQodGhpcykuZm9ybWF0SHNsKCl9ZnVuY3Rpb24gbHF0KCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gVWcoZSl7dmFyIHQscjtyZXR1cm4gZT0oZSsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKHQ9JDhlLmV4ZWMoZSkpPyhyPXRbMV0ubGVuZ3RoLHQ9cGFyc2VJbnQodFsxXSwxNikscj09PTY/Y3F0KHQpOnI9PT0zP25ldyBnbCh0Pj44JjE1fHQ+PjQmMjQwLHQ+PjQmMTV8dCYyNDAsKHQmMTUpPDw0fHQmMTUsMSk6cj09PTg/Z3oodD4+MjQmMjU1LHQ+PjE2JjI1NSx0Pj44JjI1NSwodCYyNTUpLzI1NSk6cj09PTQ/Z3oodD4+MTImMTV8dD4+OCYyNDAsdD4+OCYxNXx0Pj40JjI0MCx0Pj40JjE1fHQmMjQwLCgodCYxNSk8PDR8dCYxNSkvMjU1KTpudWxsKToodD1LOGUuZXhlYyhlKSk/bmV3IGdsKHRbMV0sdFsyXSx0WzNdLDEpOih0PVo4ZS5leGVjKGUpKT9uZXcgZ2wodFsxXSoyNTUvMTAwLHRbMl0qMjU1LzEwMCx0WzNdKjI1NS8xMDAsMSk6KHQ9SjhlLmV4ZWMoZSkpP2d6KHRbMV0sdFsyXSx0WzNdLHRbNF0pOih0PVE4ZS5leGVjKGUpKT9neih0WzFdKjI1NS8xMDAsdFsyXSoyNTUvMTAwLHRbM10qMjU1LzEwMCx0WzRdKToodD10UmUuZXhlYyhlKSk/ZnF0KHRbMV0sdFsyXS8xMDAsdFszXS8xMDAsMSk6KHQ9ZVJlLmV4ZWMoZSkpP2ZxdCh0WzFdLHRbMl0vMTAwLHRbM10vMTAwLHRbNF0pOmFxdC5oYXNPd25Qcm9wZXJ0eShlKT9jcXQoYXF0W2VdKTplPT09InRyYW5zcGFyZW50Ij9uZXcgZ2woTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiBjcXQoZSl7cmV0dXJuIG5ldyBnbChlPj4xNiYyNTUsZT4+OCYyNTUsZSYyNTUsMSl9ZnVuY3Rpb24gZ3ooZSx0LHIsbil7cmV0dXJuIG48PTAmJihlPXQ9cj1OYU4pLG5ldyBnbChlLHQscixuKX1mdW5jdGlvbiBuUmUoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBmQXx8KGU9VWcoZSkpLGU/KGU9ZS5yZ2IoKSxuZXcgZ2woZS5yLGUuZyxlLmIsZS5vcGFjaXR5KSk6bmV3IGdsfWZ1bmN0aW9uIEt3KGUsdCxyLG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT9uUmUoZSk6bmV3IGdsKGUsdCxyLG49PW51bGw/MTpuKX1mdW5jdGlvbiBnbChlLHQscixuKXt0aGlzLnI9K2UsdGhpcy5nPSt0LHRoaXMuYj0rcix0aGlzLm9wYWNpdHk9K259ZnVuY3Rpb24gdXF0KCl7cmV0dXJuIiMiK2pydCh0aGlzLnIpK2pydCh0aGlzLmcpK2pydCh0aGlzLmIpfWZ1bmN0aW9uIGhxdCgpe3ZhciBlPXRoaXMub3BhY2l0eTtyZXR1cm4gZT1pc05hTihlKT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSxlKSksKGU9PT0xPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKGU9PT0xPyIpIjoiLCAiK2UrIikiKX1mdW5jdGlvbiBqcnQoZSl7cmV0dXJuIGU9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZChlKXx8MCkpLChlPDE2PyIwIjoiIikrZS50b1N0cmluZygxNil9ZnVuY3Rpb24gZnF0KGUsdCxyLG4pe3JldHVybiBuPD0wP2U9dD1yPU5hTjpyPD0wfHxyPj0xP2U9dD1OYU46dDw9MCYmKGU9TmFOKSxuZXcgVGYoZSx0LHIsbil9ZnVuY3Rpb24gcHF0KGUpe2lmKGUgaW5zdGFuY2VvZiBUZilyZXR1cm4gbmV3IFRmKGUuaCxlLnMsZS5sLGUub3BhY2l0eSk7aWYoZSBpbnN0YW5jZW9mIGZBfHwoZT1VZyhlKSksIWUpcmV0dXJuIG5ldyBUZjtpZihlIGluc3RhbmNlb2YgVGYpcmV0dXJuIGU7ZT1lLnJnYigpO3ZhciB0PWUuci8yNTUscj1lLmcvMjU1LG49ZS5iLzI1NSxpPU1hdGgubWluKHQscixuKSxvPU1hdGgubWF4KHQscixuKSxhPU5hTixzPW8taSxsPShvK2kpLzI7cmV0dXJuIHM/KHQ9PT1vP2E9KHItbikvcysocjxuKSo2OnI9PT1vP2E9KG4tdCkvcysyOmE9KHQtcikvcys0LHMvPWw8LjU/bytpOjItby1pLGEqPTYwKTpzPWw+MCYmbDwxPzA6YSxuZXcgVGYoYSxzLGwsZS5vcGFjaXR5KX1mdW5jdGlvbiBkcXQoZSx0LHIsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP3BxdChlKTpuZXcgVGYoZSx0LHIsbj09bnVsbD8xOm4pfWZ1bmN0aW9uIFRmKGUsdCxyLG4pe3RoaXMuaD0rZSx0aGlzLnM9K3QsdGhpcy5sPStyLHRoaXMub3BhY2l0eT0rbn1mdW5jdGlvbiBYcnQoZSx0LHIpe3JldHVybihlPDYwP3QrKHItdCkqZS82MDplPDE4MD9yOmU8MjQwP3QrKHItdCkqKDI0MC1lKS82MDp0KSoyNTV9dmFyIHVBLF96LCR3LGhBLENmLCQ4ZSxLOGUsWjhlLEo4ZSxROGUsdFJlLGVSZSxhcXQsbXF0PU0oKCk9PntvcXQoKTt1QT0uNyxfej0xL3VBLCR3PSJcXHMqKFsrLV0/XFxkKylcXHMqIixoQT0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPylcXHMqIixDZj0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPyklXFxzKiIsJDhlPS9eIyhbMC05YS1mXXszLDh9KSQvLEs4ZT1uZXcgUmVnRXhwKCJecmdiXFwoIitbJHcsJHcsJHddKyJcXCkkIiksWjhlPW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1tDZixDZixDZl0rIlxcKSQiKSxKOGU9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1skdywkdywkdyxoQV0rIlxcKSQiKSxROGU9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tDZixDZixDZixoQV0rIlxcKSQiKSx0UmU9bmV3IFJlZ0V4cCgiXmhzbFxcKCIrW2hBLENmLENmXSsiXFwpJCIpLGVSZT1uZXcgUmVnRXhwKCJeaHNsYVxcKCIrW2hBLENmLENmLGhBXSsiXFwpJCIpLGFxdD17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtteihmQSxVZyx7Y29weTpmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLGUpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDpzcXQsZm9ybWF0SGV4OnNxdCxmb3JtYXRIc2w6clJlLGZvcm1hdFJnYjpscXQsdG9TdHJpbmc6bHF0fSk7bXooZ2wsS3csWXJ0KGZBLHticmlnaHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT1lPT1udWxsP196Ok1hdGgucG93KF96LGUpLG5ldyBnbCh0aGlzLnIqZSx0aGlzLmcqZSx0aGlzLmIqZSx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZT09bnVsbD91QTpNYXRoLnBvdyh1QSxlKSxuZXcgZ2wodGhpcy5yKmUsdGhpcy5nKmUsdGhpcy5iKmUsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuLS41PD10aGlzLnImJnRoaXMucjwyNTUuNSYmLS41PD10aGlzLmcmJnRoaXMuZzwyNTUuNSYmLS41PD10aGlzLmImJnRoaXMuYjwyNTUuNSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGhleDp1cXQsZm9ybWF0SGV4OnVxdCxmb3JtYXRSZ2I6aHF0LHRvU3RyaW5nOmhxdH0pKTtteihUZixkcXQsWXJ0KGZBLHticmlnaHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT1lPT1udWxsP196Ok1hdGgucG93KF96LGUpLG5ldyBUZih0aGlzLmgsdGhpcy5zLHRoaXMubCplLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT1lPT1udWxsP3VBOk1hdGgucG93KHVBLGUpLG5ldyBUZih0aGlzLmgsdGhpcy5zLHRoaXMubCplLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuaCUzNjArKHRoaXMuaDwwKSozNjAsdD1pc05hTihlKXx8aXNOYU4odGhpcy5zKT8wOnRoaXMucyxyPXRoaXMubCxuPXIrKHI8LjU/cjoxLXIpKnQsaT0yKnItbjtyZXR1cm4gbmV3IGdsKFhydChlPj0yNDA/ZS0yNDA6ZSsxMjAsaSxuKSxYcnQoZSxpLG4pLFhydChlPDEyMD9lKzI0MDplLTEyMCxpLG4pLHRoaXMub3BhY2l0eSl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuKDA8PXRoaXMucyYmdGhpcy5zPD0xfHxpc05hTih0aGlzLnMpKSYmMDw9dGhpcy5sJiZ0aGlzLmw8PTEmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxmb3JtYXRIc2w6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wYWNpdHk7cmV0dXJuIGU9aXNOYU4oZSk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsZSkpLChlPT09MT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisodGhpcy5zfHwwKSoxMDArIiUsICIrKHRoaXMubHx8MCkqMTAwKyIlIisoZT09PTE/IikiOiIsICIrZSsiKSIpfX0pKX0pO3ZhciAkcnQ9TSgoKT0+e21xdCgpfSk7ZnVuY3Rpb24gS3J0KGUsdCxyLG4saSl7dmFyIG89ZSplLGE9byplO3JldHVybigoMS0zKmUrMypvLWEpKnQrKDQtNipvKzMqYSkqcisoMSszKmUrMypvLTMqYSkqbithKmkpLzZ9ZnVuY3Rpb24gZ3F0KGUpe3ZhciB0PWUubGVuZ3RoLTE7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBuPXI8PTA/cj0wOnI+PTE/KHI9MSx0LTEpOk1hdGguZmxvb3Iocip0KSxpPWVbbl0sbz1lW24rMV0sYT1uPjA/ZVtuLTFdOjIqaS1vLHM9bjx0LTE/ZVtuKzJdOjIqby1pO3JldHVybiBLcnQoKHItbi90KSp0LGEsaSxvLHMpfX12YXIgWnJ0PU0oKCk9Pnt9KTtmdW5jdGlvbiBfcXQoZSl7dmFyIHQ9ZS5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBuPU1hdGguZmxvb3IoKChyJT0xKTwwPysrcjpyKSp0KSxpPWVbKG4rdC0xKSV0XSxvPWVbbiV0XSxhPWVbKG4rMSkldF0scz1lWyhuKzIpJXRdO3JldHVybiBLcnQoKHItbi90KSp0LGksbyxhLHMpfX12YXIgeXF0PU0oKCk9PntacnQoKX0pO2Z1bmN0aW9uIEpydChlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZX19dmFyIHZxdD1NKCgpPT57fSk7ZnVuY3Rpb24gaVJlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBlK3IqdH19ZnVuY3Rpb24gb1JlKGUsdCxyKXtyZXR1cm4gZT1NYXRoLnBvdyhlLHIpLHQ9TWF0aC5wb3codCxyKS1lLHI9MS9yLGZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnBvdyhlK24qdCxyKX19ZnVuY3Rpb24geHF0KGUpe3JldHVybihlPStlKT09MT95ejpmdW5jdGlvbih0LHIpe3JldHVybiByLXQ/b1JlKHQscixlKTpKcnQoaXNOYU4odCk/cjp0KX19ZnVuY3Rpb24geXooZSx0KXt2YXIgcj10LWU7cmV0dXJuIHI/aVJlKGUscik6SnJ0KGlzTmFOKGUpP3Q6ZSl9dmFyIGJxdD1NKCgpPT57dnF0KCl9KTtmdW5jdGlvbiB3cXQoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciByPXQubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9bmV3IEFycmF5KHIpLG89bmV3IEFycmF5KHIpLGEscztmb3IoYT0wO2E8cjsrK2Epcz1Ldyh0W2FdKSxuW2FdPXMucnx8MCxpW2FdPXMuZ3x8MCxvW2FdPXMuYnx8MDtyZXR1cm4gbj1lKG4pLGk9ZShpKSxvPWUobykscy5vcGFjaXR5PTEsZnVuY3Rpb24obCl7cmV0dXJuIHMucj1uKGwpLHMuZz1pKGwpLHMuYj1vKGwpLHMrIiJ9fX12YXIgdnosYVJlLHNSZSxTcXQ9TSgoKT0+eyRydCgpO1pydCgpO3lxdCgpO2JxdCgpO3Z6PWZ1bmN0aW9uIGUodCl7dmFyIHI9eHF0KHQpO2Z1bmN0aW9uIG4oaSxvKXt2YXIgYT1yKChpPUt3KGkpKS5yLChvPUt3KG8pKS5yKSxzPXIoaS5nLG8uZyksbD1yKGkuYixvLmIpLGM9eXooaS5vcGFjaXR5LG8ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHUpe3JldHVybiBpLnI9YSh1KSxpLmc9cyh1KSxpLmI9bCh1KSxpLm9wYWNpdHk9Yyh1KSxpKyIifX1yZXR1cm4gbi5nYW1tYT1lLG59KDEpO2FSZT13cXQoZ3F0KSxzUmU9d3F0KF9xdCl9KTtmdW5jdGlvbiBQYyhlLHQpe3JldHVybiBlPStlLHQ9K3QsZnVuY3Rpb24ocil7cmV0dXJuIGUqKDEtcikrdCpyfX12YXIgeHo9TSgoKT0+e30pO2Z1bmN0aW9uIGxSZShlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZX19ZnVuY3Rpb24gY1JlKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZSh0KSsiIn19ZnVuY3Rpb24gZW50KGUsdCl7dmFyIHI9dG50Lmxhc3RJbmRleD1RcnQubGFzdEluZGV4PTAsbixpLG8sYT0tMSxzPVtdLGw9W107Zm9yKGU9ZSsiIix0PXQrIiI7KG49dG50LmV4ZWMoZSkpJiYoaT1RcnQuZXhlYyh0KSk7KShvPWkuaW5kZXgpPnImJihvPXQuc2xpY2UocixvKSxzW2FdP3NbYV0rPW86c1srK2FdPW8pLChuPW5bMF0pPT09KGk9aVswXSk/c1thXT9zW2FdKz1pOnNbKythXT1pOihzWysrYV09bnVsbCxsLnB1c2goe2k6YSx4OlBjKG4saSl9KSkscj1RcnQubGFzdEluZGV4O3JldHVybiByPHQubGVuZ3RoJiYobz10LnNsaWNlKHIpLHNbYV0/c1thXSs9bzpzWysrYV09bykscy5sZW5ndGg8Mj9sWzBdP2NSZShsWzBdLngpOmxSZSh0KToodD1sLmxlbmd0aCxmdW5jdGlvbihjKXtmb3IodmFyIHU9MCxoO3U8dDsrK3Upc1soaD1sW3VdKS5pXT1oLngoYyk7cmV0dXJuIHMuam9pbigiIil9KX12YXIgdG50LFFydCxNcXQ9TSgoKT0+e3h6KCk7dG50PS9bLStdPyg/OlxkK1wuP1xkKnxcLj9cZCspKD86W2VFXVstK10/XGQrKT8vZyxRcnQ9bmV3IFJlZ0V4cCh0bnQuc291cmNlLCJnIil9KTtmdW5jdGlvbiBybnQoZSx0LHIsbixpLG8pe3ZhciBhLHMsbDtyZXR1cm4oYT1NYXRoLnNxcnQoZSplK3QqdCkpJiYoZS89YSx0Lz1hKSwobD1lKnIrdCpuKSYmKHItPWUqbCxuLT10KmwpLChzPU1hdGguc3FydChyKnIrbipuKSkmJihyLz1zLG4vPXMsbC89cyksZSpuPHQqciYmKGU9LWUsdD0tdCxsPS1sLGE9LWEpLHt0cmFuc2xhdGVYOmksdHJhbnNsYXRlWTpvLHJvdGF0ZTpNYXRoLmF0YW4yKHQsZSkqRXF0LHNrZXdYOk1hdGguYXRhbihsKSpFcXQsc2NhbGVYOmEsc2NhbGVZOnN9fXZhciBFcXQsYnosVHF0PU0oKCk9PntFcXQ9MTgwL01hdGguUEksYno9e3RyYW5zbGF0ZVg6MCx0cmFuc2xhdGVZOjAscm90YXRlOjAsc2tld1g6MCxzY2FsZVg6MSxzY2FsZVk6MX19KTtmdW5jdGlvbiBBcXQoZSl7cmV0dXJuIGU9PT0ibm9uZSI/Yno6KHBBfHwocEE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIiksbm50PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxDcXQ9ZG9jdW1lbnQuZGVmYXVsdFZpZXcpLHBBLnN0eWxlLnRyYW5zZm9ybT1lLGU9Q3F0LmdldENvbXB1dGVkU3R5bGUobm50LmFwcGVuZENoaWxkKHBBKSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKSxubnQucmVtb3ZlQ2hpbGQocEEpLGU9ZS5zbGljZSg3LC0xKS5zcGxpdCgiLCIpLHJudCgrZVswXSwrZVsxXSwrZVsyXSwrZVszXSwrZVs0XSwrZVs1XSkpfWZ1bmN0aW9uIFBxdChlKXtyZXR1cm4gZT09bnVsbD9iejood3p8fCh3ej1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpKSx3ei5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsZSksKGU9d3oudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSk/KGU9ZS5tYXRyaXgscm50KGUuYSxlLmIsZS5jLGUuZCxlLmUsZS5mKSk6YnopfXZhciBwQSxubnQsQ3F0LHd6LElxdD1NKCgpPT57VHF0KCl9KTtmdW5jdGlvbiBMcXQoZSx0LHIsbil7ZnVuY3Rpb24gaShjKXtyZXR1cm4gYy5sZW5ndGg/Yy5wb3AoKSsiICI6IiJ9ZnVuY3Rpb24gbyhjLHUsaCxmLHAsZCl7aWYoYyE9PWh8fHUhPT1mKXt2YXIgZz1wLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsdCxudWxsLHIpO2QucHVzaCh7aTpnLTQseDpQYyhjLGgpfSx7aTpnLTIseDpQYyh1LGYpfSl9ZWxzZShofHxmKSYmcC5wdXNoKCJ0cmFuc2xhdGUoIitoK3QrZityKX1mdW5jdGlvbiBhKGMsdSxoLGYpe2MhPT11PyhjLXU+MTgwP3UrPTM2MDp1LWM+MTgwJiYoYys9MzYwKSxmLnB1c2goe2k6aC5wdXNoKGkoaCkrInJvdGF0ZSgiLG51bGwsbiktMix4OlBjKGMsdSl9KSk6dSYmaC5wdXNoKGkoaCkrInJvdGF0ZSgiK3Urbil9ZnVuY3Rpb24gcyhjLHUsaCxmKXtjIT09dT9mLnB1c2goe2k6aC5wdXNoKGkoaCkrInNrZXdYKCIsbnVsbCxuKS0yLHg6UGMoYyx1KX0pOnUmJmgucHVzaChpKGgpKyJza2V3WCgiK3Urbil9ZnVuY3Rpb24gbChjLHUsaCxmLHAsZCl7aWYoYyE9PWh8fHUhPT1mKXt2YXIgZz1wLnB1c2goaShwKSsic2NhbGUoIixudWxsLCIsIixudWxsLCIpIik7ZC5wdXNoKHtpOmctNCx4OlBjKGMsaCl9LHtpOmctMix4OlBjKHUsZil9KX1lbHNlKGghPT0xfHxmIT09MSkmJnAucHVzaChpKHApKyJzY2FsZSgiK2grIiwiK2YrIikiKX1yZXR1cm4gZnVuY3Rpb24oYyx1KXt2YXIgaD1bXSxmPVtdO3JldHVybiBjPWUoYyksdT1lKHUpLG8oYy50cmFuc2xhdGVYLGMudHJhbnNsYXRlWSx1LnRyYW5zbGF0ZVgsdS50cmFuc2xhdGVZLGgsZiksYShjLnJvdGF0ZSx1LnJvdGF0ZSxoLGYpLHMoYy5za2V3WCx1LnNrZXdYLGgsZiksbChjLnNjYWxlWCxjLnNjYWxlWSx1LnNjYWxlWCx1LnNjYWxlWSxoLGYpLGM9dT1udWxsLGZ1bmN0aW9uKHApe2Zvcih2YXIgZD0tMSxnPWYubGVuZ3RoLF87KytkPGc7KWhbKF89ZltkXSkuaV09Xy54KHApO3JldHVybiBoLmpvaW4oIiIpfX19dmFyIGludCxvbnQsa3F0PU0oKCk9Pnt4eigpO0lxdCgpO2ludD1McXQoQXF0LCJweCwgIiwicHgpIiwiZGVnKSIpLG9udD1McXQoUHF0LCIsICIsIikiLCIpIil9KTt2YXIgU3o9TSgoKT0+e3h6KCk7TXF0KCk7a3F0KCk7U3F0KCl9KTtmdW5jdGlvbiB1UmUoZSx0KXt2YXIgcixuO3JldHVybiBmdW5jdGlvbigpe3ZhciBpPUR1KHRoaXMsZSksbz1pLnR3ZWVuO2lmKG8hPT1yKXtuPXI9bztmb3IodmFyIGE9MCxzPW4ubGVuZ3RoO2E8czsrK2EpaWYoblthXS5uYW1lPT09dCl7bj1uLnNsaWNlKCksbi5zcGxpY2UoYSwxKTticmVha319aS50d2Vlbj1ufX1mdW5jdGlvbiBoUmUoZSx0LHIpe3ZhciBuLGk7aWYodHlwZW9mIHIhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPUR1KHRoaXMsZSksYT1vLnR3ZWVuO2lmKGEhPT1uKXtpPShuPWEpLnNsaWNlKCk7Zm9yKHZhciBzPXtuYW1lOnQsdmFsdWU6cn0sbD0wLGM9aS5sZW5ndGg7bDxjOysrbClpZihpW2xdLm5hbWU9PT10KXtpW2xdPXM7YnJlYWt9bD09PWMmJmkucHVzaChzKX1vLnR3ZWVuPWl9fWZ1bmN0aW9uIFJxdChlLHQpe3ZhciByPXRoaXMuX2lkO2lmKGUrPSIiLGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBuPWlvKHRoaXMubm9kZSgpLHIpLnR3ZWVuLGk9MCxvPW4ubGVuZ3RoLGE7aTxvOysraSlpZigoYT1uW2ldKS5uYW1lPT09ZSlyZXR1cm4gYS52YWx1ZTtyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5lYWNoKCh0PT1udWxsP3VSZTpoUmUpKHIsZSx0KSl9ZnVuY3Rpb24gWncoZSx0LHIpe3ZhciBuPWUuX2lkO3JldHVybiBlLmVhY2goZnVuY3Rpb24oKXt2YXIgaT1EdSh0aGlzLG4pOyhpLnZhbHVlfHwoaS52YWx1ZT17fSkpW3RdPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksZnVuY3Rpb24oaSl7cmV0dXJuIGlvKGksbikudmFsdWVbdF19fXZhciBkQT1NKCgpPT57QWMoKX0pO2Z1bmN0aW9uIE16KGUsdCl7dmFyIHI7cmV0dXJuKHR5cGVvZiB0PT0ibnVtYmVyIj9QYzp0IGluc3RhbmNlb2YgVWc/dno6KHI9VWcodCkpPyh0PXIsdnopOmVudCkoZSx0KX12YXIgYW50PU0oKCk9PnskcnQoKTtTeigpfSk7ZnVuY3Rpb24gZlJlKGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKGUpfX1mdW5jdGlvbiBwUmUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpfX1mdW5jdGlvbiBkUmUoZSx0LHIpe3ZhciBuLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89dGhpcy5nZXRBdHRyaWJ1dGUoZSk7cmV0dXJuIG89PT1yP251bGw6bz09PW4/aTppPXQobj1vLHIpfX1mdW5jdGlvbiBtUmUoZSx0LHIpe3ZhciBuLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89dGhpcy5nZXRBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpO3JldHVybiBvPT09cj9udWxsOm89PT1uP2k6aT10KG49byxyKX19ZnVuY3Rpb24gZ1JlKGUsdCxyKXt2YXIgbixpLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGEscz1yKHRoaXMpO3JldHVybiBzPT1udWxsP3ZvaWQgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoZSk6KGE9dGhpcy5nZXRBdHRyaWJ1dGUoZSksYT09PXM/bnVsbDphPT09biYmcz09PWk/bzpvPXQobj1hLGk9cykpfX1mdW5jdGlvbiBfUmUoZSx0LHIpe3ZhciBuLGksbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzPXIodGhpcyk7cmV0dXJuIHM9PW51bGw/dm9pZCB0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCk6KGE9dGhpcy5nZXRBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpLGE9PT1zP251bGw6YT09PW4mJnM9PT1pP286bz10KG49YSxpPXMpKX19ZnVuY3Rpb24gTnF0KGUsdCl7dmFyIHI9Y2QoZSksbj1yPT09InRyYW5zZm9ybSI/b250Ok16O3JldHVybiB0aGlzLmF0dHJUd2VlbihlLHR5cGVvZiB0PT0iZnVuY3Rpb24iPyhyLmxvY2FsP19SZTpnUmUpKHIsbixadyh0aGlzLCJhdHRyLiIrZSx0KSk6dD09bnVsbD8oci5sb2NhbD9wUmU6ZlJlKShyKTooci5sb2NhbD9tUmU6ZFJlKShyLG4sdCsiIikpfXZhciBEcXQ9TSgoKT0+e1N6KCk7RWYoKTtkQSgpO2FudCgpfSk7ZnVuY3Rpb24geVJlKGUsdCl7ZnVuY3Rpb24gcigpe3ZhciBuPXRoaXMsaT10LmFwcGx5KG4sYXJndW1lbnRzKTtyZXR1cm4gaSYmZnVuY3Rpb24obyl7bi5zZXRBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwsaShvKSl9fXJldHVybiByLl92YWx1ZT10LHJ9ZnVuY3Rpb24gdlJlKGUsdCl7ZnVuY3Rpb24gcigpe3ZhciBuPXRoaXMsaT10LmFwcGx5KG4sYXJndW1lbnRzKTtyZXR1cm4gaSYmZnVuY3Rpb24obyl7bi5zZXRBdHRyaWJ1dGUoZSxpKG8pKX19cmV0dXJuIHIuX3ZhbHVlPXQscn1mdW5jdGlvbiBPcXQoZSx0KXt2YXIgcj0iYXR0ci4iK2U7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihyPXRoaXMudHdlZW4ocikpJiZyLl92YWx1ZTtpZih0PT1udWxsKXJldHVybiB0aGlzLnR3ZWVuKHIsbnVsbCk7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yO3ZhciBuPWNkKGUpO3JldHVybiB0aGlzLnR3ZWVuKHIsKG4ubG9jYWw/eVJlOnZSZSkobix0KSl9dmFyIHpxdD1NKCgpPT57RWYoKX0pO2Z1bmN0aW9uIHhSZShlLHQpe3JldHVybiBmdW5jdGlvbigpe2NBKHRoaXMsZSkuZGVsYXk9K3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBiUmUoZSx0KXtyZXR1cm4gdD0rdCxmdW5jdGlvbigpe2NBKHRoaXMsZSkuZGVsYXk9dH19ZnVuY3Rpb24gRnF0KGUpe3ZhciB0PXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgodHlwZW9mIGU9PSJmdW5jdGlvbiI/eFJlOmJSZSkodCxlKSk6aW8odGhpcy5ub2RlKCksdCkuZGVsYXl9dmFyIEJxdD1NKCgpPT57QWMoKX0pO2Z1bmN0aW9uIHdSZShlLHQpe3JldHVybiBmdW5jdGlvbigpe0R1KHRoaXMsZSkuZHVyYXRpb249K3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBTUmUoZSx0KXtyZXR1cm4gdD0rdCxmdW5jdGlvbigpe0R1KHRoaXMsZSkuZHVyYXRpb249dH19ZnVuY3Rpb24gSHF0KGUpe3ZhciB0PXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgodHlwZW9mIGU9PSJmdW5jdGlvbiI/d1JlOlNSZSkodCxlKSk6aW8odGhpcy5ub2RlKCksdCkuZHVyYXRpb259dmFyIFZxdD1NKCgpPT57QWMoKX0pO2Z1bmN0aW9uIE1SZShlLHQpe2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXtEdSh0aGlzLGUpLmVhc2U9dH19ZnVuY3Rpb24gVXF0KGUpe3ZhciB0PXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChNUmUodCxlKSk6aW8odGhpcy5ub2RlKCksdCkuZWFzZX12YXIgcXF0PU0oKCk9PntBYygpfSk7ZnVuY3Rpb24gR3F0KGUpe3R5cGVvZiBlIT0iZnVuY3Rpb24iJiYoZT10QShlKSk7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxyPXQubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPHI7KytpKWZvcih2YXIgbz10W2ldLGE9by5sZW5ndGgscz1uW2ldPVtdLGwsYz0wO2M8YTsrK2MpKGw9b1tjXSkmJmUuY2FsbChsLGwuX19kYXRhX18sYyxvKSYmcy5wdXNoKGwpO3JldHVybiBuZXcgVW8obix0aGlzLl9wYXJlbnRzLHRoaXMuX25hbWUsdGhpcy5faWQpfXZhciBXcXQ9TSgoKT0+e0VmKCk7aGQoKX0pO2Z1bmN0aW9uIFlxdChlKXtpZihlLl9pZCE9PXRoaXMuX2lkKXRocm93IG5ldyBFcnJvcjtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9ZS5fZ3JvdXBzLG49dC5sZW5ndGgsaT1yLmxlbmd0aCxvPU1hdGgubWluKG4saSksYT1uZXcgQXJyYXkobikscz0wO3M8bzsrK3MpZm9yKHZhciBsPXRbc10sYz1yW3NdLHU9bC5sZW5ndGgsaD1hW3NdPW5ldyBBcnJheSh1KSxmLHA9MDtwPHU7KytwKShmPWxbcF18fGNbcF0pJiYoaFtwXT1mKTtmb3IoO3M8bjsrK3MpYVtzXT10W3NdO3JldHVybiBuZXcgVW8oYSx0aGlzLl9wYXJlbnRzLHRoaXMuX25hbWUsdGhpcy5faWQpfXZhciBqcXQ9TSgoKT0+e2hkKCl9KTtmdW5jdGlvbiBFUmUoZSl7cmV0dXJuKGUrIiIpLnRyaW0oKS5zcGxpdCgvXnxccysvKS5ldmVyeShmdW5jdGlvbih0KXt2YXIgcj10LmluZGV4T2YoIi4iKTtyZXR1cm4gcj49MCYmKHQ9dC5zbGljZSgwLHIpKSwhdHx8dD09PSJzdGFydCJ9KX1mdW5jdGlvbiBUUmUoZSx0LHIpe3ZhciBuLGksbz1FUmUodCk/Y0E6RHU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9byh0aGlzLGUpLHM9YS5vbjtzIT09biYmKGk9KG49cykuY29weSgpKS5vbih0LHIpLGEub249aX19ZnVuY3Rpb24gWHF0KGUsdCl7dmFyIHI9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9pbyh0aGlzLm5vZGUoKSxyKS5vbi5vbihlKTp0aGlzLmVhY2goVFJlKHIsZSx0KSl9dmFyICRxdD1NKCgpPT57QWMoKX0pO2Z1bmN0aW9uIENSZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciByIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtyIT09ZSlyZXR1cm47dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX19ZnVuY3Rpb24gS3F0KCl7cmV0dXJuIHRoaXMub24oImVuZC5yZW1vdmUiLENSZSh0aGlzLl9pZCkpfXZhciBacXQ9TSgoKT0+e30pO2Z1bmN0aW9uIEpxdChlKXt2YXIgdD10aGlzLl9uYW1lLHI9dGhpcy5faWQ7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPVN2KGUpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGk9bi5sZW5ndGgsbz1uZXcgQXJyYXkoaSksYT0wO2E8aTsrK2EpZm9yKHZhciBzPW5bYV0sbD1zLmxlbmd0aCxjPW9bYV09bmV3IEFycmF5KGwpLHUsaCxmPTA7ZjxsOysrZikodT1zW2ZdKSYmKGg9ZS5jYWxsKHUsdS5fX2RhdGFfXyxmLHMpKSYmKCJfX2RhdGFfXyJpbiB1JiYoaC5fX2RhdGFfXz11Ll9fZGF0YV9fKSxjW2ZdPWgsVmcoY1tmXSx0LHIsZixjLGlvKHUscikpKTtyZXR1cm4gbmV3IFVvKG8sdGhpcy5fcGFyZW50cyx0LHIpfXZhciBRcXQ9TSgoKT0+e0VmKCk7aGQoKTtBYygpfSk7ZnVuY3Rpb24gdEd0KGUpe3ZhciB0PXRoaXMuX25hbWUscj10aGlzLl9pZDt0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmKGU9UUMoZSkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsaT1uLmxlbmd0aCxvPVtdLGE9W10scz0wO3M8aTsrK3MpZm9yKHZhciBsPW5bc10sYz1sLmxlbmd0aCx1LGg9MDtoPGM7KytoKWlmKHU9bFtoXSl7Zm9yKHZhciBmPWUuY2FsbCh1LHUuX19kYXRhX18saCxsKSxwLGQ9aW8odSxyKSxnPTAsXz1mLmxlbmd0aDtnPF87KytnKShwPWZbZ10pJiZWZyhwLHQscixnLGYsZCk7by5wdXNoKGYpLGEucHVzaCh1KX1yZXR1cm4gbmV3IFVvKG8sYSx0LHIpfXZhciBlR3Q9TSgoKT0+e0VmKCk7aGQoKTtBYygpfSk7ZnVuY3Rpb24gckd0KCl7cmV0dXJuIG5ldyBBUmUodGhpcy5fZ3JvdXBzLHRoaXMuX3BhcmVudHMpfXZhciBBUmUsbkd0PU0oKCk9PntFZigpO0FSZT11ZC5wcm90b3R5cGUuY29uc3RydWN0b3J9KTtmdW5jdGlvbiBQUmUoZSx0KXt2YXIgcixuLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89SGcodGhpcyxlKSxhPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KGUpLEhnKHRoaXMsZSkpO3JldHVybiBvPT09YT9udWxsOm89PT1yJiZhPT09bj9pOmk9dChyPW8sbj1hKX19ZnVuY3Rpb24gSVJlKGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoZSl9fWZ1bmN0aW9uIExSZShlLHQscil7dmFyIG4saTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1IZyh0aGlzLGUpO3JldHVybiBvPT09cj9udWxsOm89PT1uP2k6aT10KG49byxyKX19ZnVuY3Rpb24ga1JlKGUsdCxyKXt2YXIgbixpLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9SGcodGhpcyxlKSxzPXIodGhpcyk7cmV0dXJuIHM9PW51bGwmJihzPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KGUpLEhnKHRoaXMsZSkpKSxhPT09cz9udWxsOmE9PT1uJiZzPT09aT9vOm89dChuPWEsaT1zKX19ZnVuY3Rpb24gaUd0KGUsdCxyKXt2YXIgbj0oZSs9IiIpPT0idHJhbnNmb3JtIj9pbnQ6TXo7cmV0dXJuIHQ9PW51bGw/dGhpcy5zdHlsZVR3ZWVuKGUsUFJlKGUsbikpLm9uKCJlbmQuc3R5bGUuIitlLElSZShlKSk6dGhpcy5zdHlsZVR3ZWVuKGUsdHlwZW9mIHQ9PSJmdW5jdGlvbiI/a1JlKGUsbixadyh0aGlzLCJzdHlsZS4iK2UsdCkpOkxSZShlLG4sdCsiIikscil9dmFyIG9HdD1NKCgpPT57U3ooKTtFZigpO2RBKCk7YW50KCl9KTtmdW5jdGlvbiBSUmUoZSx0LHIpe2Z1bmN0aW9uIG4oKXt2YXIgaT10aGlzLG89dC5hcHBseShpLGFyZ3VtZW50cyk7cmV0dXJuIG8mJmZ1bmN0aW9uKGEpe2kuc3R5bGUuc2V0UHJvcGVydHkoZSxvKGEpLHIpfX1yZXR1cm4gbi5fdmFsdWU9dCxufWZ1bmN0aW9uIGFHdChlLHQscil7dmFyIG49InN0eWxlLiIrKGUrPSIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKG49dGhpcy50d2VlbihuKSkmJm4uX3ZhbHVlO2lmKHQ9PW51bGwpcmV0dXJuIHRoaXMudHdlZW4obixudWxsKTtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4obixSUmUoZSx0LHI9PW51bGw/IiI6cikpfXZhciBzR3Q9TSgoKT0+e30pO2Z1bmN0aW9uIE5SZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PWV9fWZ1bmN0aW9uIERSZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO3RoaXMudGV4dENvbnRlbnQ9dD09bnVsbD8iIjp0fX1mdW5jdGlvbiBsR3QoZSl7cmV0dXJuIHRoaXMudHdlZW4oInRleHQiLHR5cGVvZiBlPT0iZnVuY3Rpb24iP0RSZShadyh0aGlzLCJ0ZXh0IixlKSk6TlJlKGU9PW51bGw/IiI6ZSsiIikpfXZhciBjR3Q9TSgoKT0+e2RBKCl9KTtmdW5jdGlvbiB1R3QoKXtmb3IodmFyIGU9dGhpcy5fbmFtZSx0PXRoaXMuX2lkLHI9RXooKSxuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLG89MDtvPGk7KytvKWZvcih2YXIgYT1uW29dLHM9YS5sZW5ndGgsbCxjPTA7YzxzOysrYylpZihsPWFbY10pe3ZhciB1PWlvKGwsdCk7VmcobCxlLHIsYyxhLHt0aW1lOnUudGltZSt1LmRlbGF5K3UuZHVyYXRpb24sZGVsYXk6MCxkdXJhdGlvbjp1LmR1cmF0aW9uLGVhc2U6dS5lYXNlfSl9cmV0dXJuIG5ldyBVbyhuLHRoaXMuX3BhcmVudHMsZSxyKX12YXIgaEd0PU0oKCk9PntoZCgpO0FjKCl9KTtmdW5jdGlvbiBVbyhlLHQscixuKXt0aGlzLl9ncm91cHM9ZSx0aGlzLl9wYXJlbnRzPXQsdGhpcy5fbmFtZT1yLHRoaXMuX2lkPW59ZnVuY3Rpb24gVHooZSl7cmV0dXJuIHVkKCkudHJhbnNpdGlvbihlKX1mdW5jdGlvbiBFeigpe3JldHVybisrT1JlfXZhciBPUmUsSncsaGQ9TSgoKT0+e0VmKCk7RHF0KCk7enF0KCk7QnF0KCk7VnF0KCk7cXF0KCk7V3F0KCk7anF0KCk7JHF0KCk7WnF0KCk7UXF0KCk7ZUd0KCk7bkd0KCk7b0d0KCk7c0d0KCk7Y0d0KCk7aEd0KCk7ZEEoKTtPUmU9MDtKdz11ZC5wcm90b3R5cGU7VW8ucHJvdG90eXBlPVR6LnByb3RvdHlwZT17Y29uc3RydWN0b3I6VW8sc2VsZWN0OkpxdCxzZWxlY3RBbGw6dEd0LGZpbHRlcjpHcXQsbWVyZ2U6WXF0LHNlbGVjdGlvbjpyR3QsdHJhbnNpdGlvbjp1R3QsY2FsbDpKdy5jYWxsLG5vZGVzOkp3Lm5vZGVzLG5vZGU6Sncubm9kZSxzaXplOkp3LnNpemUsZW1wdHk6SncuZW1wdHksZWFjaDpKdy5lYWNoLG9uOlhxdCxhdHRyOk5xdCxhdHRyVHdlZW46T3F0LHN0eWxlOmlHdCxzdHlsZVR3ZWVuOmFHdCx0ZXh0OmxHdCxyZW1vdmU6S3F0LHR3ZWVuOlJxdCxkZWxheTpGcXQsZHVyYXRpb246SHF0LGVhc2U6VXF0fX0pO2Z1bmN0aW9uIHpSZShlLHQpe2Zvcih2YXIgcjshKHI9ZS5fX3RyYW5zaXRpb24pfHwhKHI9clt0XSk7KWlmKCEoZT1lLnBhcmVudE5vZGUpKXJldHVybiBzbnQudGltZT1YdygpLHNudDtyZXR1cm4gcn1mdW5jdGlvbiBmR3QoZSl7dmFyIHQscjtlIGluc3RhbmNlb2YgVW8/KHQ9ZS5faWQsZT1lLl9uYW1lKToodD1FeigpLChyPXNudCkudGltZT1YdygpLGU9ZT09bnVsbD9udWxsOmUrIiIpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsaT1uLmxlbmd0aCxvPTA7bzxpOysrbylmb3IodmFyIGE9bltvXSxzPWEubGVuZ3RoLGwsYz0wO2M8czsrK2MpKGw9YVtjXSkmJlZnKGwsZSx0LGMsYSxyfHx6UmUobCx0KSk7cmV0dXJuIG5ldyBVbyhuLHRoaXMuX3BhcmVudHMsZSx0KX12YXIgc250LHBHdD1NKCgpPT57aGQoKTtBYygpO0xfKCk7cXJ0KCk7c250PXt0aW1lOm51bGwsZGVsYXk6MCxkdXJhdGlvbjoyNTAsZWFzZTpic319KTt2YXIgZEd0PU0oKCk9PntFZigpO2lxdCgpO3BHdCgpO3VkLnByb3RvdHlwZS5pbnRlcnJ1cHQ9bnF0O3VkLnByb3RvdHlwZS50cmFuc2l0aW9uPWZHdH0pO2Z1bmN0aW9uIG1HdChlLHQpe3ZhciByPWUuX190cmFuc2l0aW9uLG4saTtpZihyKXt0PXQ9PW51bGw/bnVsbDp0KyIiO2ZvcihpIGluIHIpaWYoKG49cltpXSkuc3RhdGU+ZnomJm4ubmFtZT09PXQpcmV0dXJuIG5ldyBVbyhbW2VdXSxGUmUsdCwraSl9cmV0dXJuIG51bGx9dmFyIEZSZSxnR3Q9TSgoKT0+e2hkKCk7QWMoKTtGUmU9W251bGxdfSk7dmFyIF9HdD1NKCgpPT57ZEd0KCk7aGQoKTtnR3QoKTtXcnQoKX0pO2Z1bmN0aW9uIGxudChlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZX19dmFyIHlHdD1NKCgpPT57fSk7ZnVuY3Rpb24gdkd0KGUpe3JldHVybiBlWzBdfWZ1bmN0aW9uIHhHdChlKXtyZXR1cm4gZVsxXX12YXIgYkd0PU0oKCk9Pnt9KTtmdW5jdGlvbiBjbnQoKXt0aGlzLl89bnVsbH1mdW5jdGlvbiBRdyhlKXtlLlU9ZS5DPWUuTD1lLlI9ZS5QPWUuTj1udWxsfWZ1bmN0aW9uIG1BKGUsdCl7dmFyIHI9dCxuPXQuUixpPXIuVTtpP2kuTD09PXI/aS5MPW46aS5SPW46ZS5fPW4sbi5VPWksci5VPW4sci5SPW4uTCxyLlImJihyLlIuVT1yKSxuLkw9cn1mdW5jdGlvbiBnQShlLHQpe3ZhciByPXQsbj10LkwsaT1yLlU7aT9pLkw9PT1yP2kuTD1uOmkuUj1uOmUuXz1uLG4uVT1pLHIuVT1uLHIuTD1uLlIsci5MJiYoci5MLlU9ciksbi5SPXJ9ZnVuY3Rpb24gd0d0KGUpe2Zvcig7ZS5MOyllPWUuTDtyZXR1cm4gZX12YXIgdW50LEN6PU0oKCk9PntjbnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpjbnQsaW5zZXJ0OmZ1bmN0aW9uKGUsdCl7dmFyIHIsbixpO2lmKGUpe2lmKHQuUD1lLHQuTj1lLk4sZS5OJiYoZS5OLlA9dCksZS5OPXQsZS5SKXtmb3IoZT1lLlI7ZS5MOyllPWUuTDtlLkw9dH1lbHNlIGUuUj10O3I9ZX1lbHNlIHRoaXMuXz8oZT13R3QodGhpcy5fKSx0LlA9bnVsbCx0Lk49ZSxlLlA9ZS5MPXQscj1lKToodC5QPXQuTj1udWxsLHRoaXMuXz10LHI9bnVsbCk7Zm9yKHQuTD10LlI9bnVsbCx0LlU9cix0LkM9ITAsZT10O3ImJnIuQzspbj1yLlUscj09PW4uTD8oaT1uLlIsaSYmaS5DPyhyLkM9aS5DPSExLG4uQz0hMCxlPW4pOihlPT09ci5SJiYobUEodGhpcyxyKSxlPXIscj1lLlUpLHIuQz0hMSxuLkM9ITAsZ0EodGhpcyxuKSkpOihpPW4uTCxpJiZpLkM/KHIuQz1pLkM9ITEsbi5DPSEwLGU9bik6KGU9PT1yLkwmJihnQSh0aGlzLHIpLGU9cixyPWUuVSksci5DPSExLG4uQz0hMCxtQSh0aGlzLG4pKSkscj1lLlU7dGhpcy5fLkM9ITF9LHJlbW92ZTpmdW5jdGlvbihlKXtlLk4mJihlLk4uUD1lLlApLGUuUCYmKGUuUC5OPWUuTiksZS5OPWUuUD1udWxsO3ZhciB0PWUuVSxyLG49ZS5MLGk9ZS5SLG8sYTtpZihuP2k/bz13R3QoaSk6bz1uOm89aSx0P3QuTD09PWU/dC5MPW86dC5SPW86dGhpcy5fPW8sbiYmaT8oYT1vLkMsby5DPWUuQyxvLkw9bixuLlU9byxvIT09aT8odD1vLlUsby5VPWUuVSxlPW8uUix0Lkw9ZSxvLlI9aSxpLlU9byk6KG8uVT10LHQ9byxlPW8uUikpOihhPWUuQyxlPW8pLGUmJihlLlU9dCksIWEpe2lmKGUmJmUuQyl7ZS5DPSExO3JldHVybn1kb3tpZihlPT09dGhpcy5fKWJyZWFrO2lmKGU9PT10Lkwpe2lmKHI9dC5SLHIuQyYmKHIuQz0hMSx0LkM9ITAsbUEodGhpcyx0KSxyPXQuUiksci5MJiZyLkwuQ3x8ci5SJiZyLlIuQyl7KCFyLlJ8fCFyLlIuQykmJihyLkwuQz0hMSxyLkM9ITAsZ0EodGhpcyxyKSxyPXQuUiksci5DPXQuQyx0LkM9ci5SLkM9ITEsbUEodGhpcyx0KSxlPXRoaXMuXzticmVha319ZWxzZSBpZihyPXQuTCxyLkMmJihyLkM9ITEsdC5DPSEwLGdBKHRoaXMsdCkscj10LkwpLHIuTCYmci5MLkN8fHIuUiYmci5SLkMpeyghci5MfHwhci5MLkMpJiYoci5SLkM9ITEsci5DPSEwLG1BKHRoaXMscikscj10LkwpLHIuQz10LkMsdC5DPXIuTC5DPSExLGdBKHRoaXMsdCksZT10aGlzLl87YnJlYWt9ci5DPSEwLGU9dCx0PXQuVX13aGlsZSghZS5DKTtlJiYoZS5DPSExKX19fTt1bnQ9Y250fSk7ZnVuY3Rpb24gdFMoZSx0LHIsbil7dmFyIGk9W251bGwsbnVsbF0sbz1Bby5wdXNoKGkpLTE7cmV0dXJuIGkubGVmdD1lLGkucmlnaHQ9dCxyJiZfQShpLGUsdCxyKSxuJiZfQShpLHQsZSxuKSxKYVtlLmluZGV4XS5oYWxmZWRnZXMucHVzaChvKSxKYVt0LmluZGV4XS5oYWxmZWRnZXMucHVzaChvKSxpfWZ1bmN0aW9uIGVTKGUsdCxyKXt2YXIgbj1bdCxyXTtyZXR1cm4gbi5sZWZ0PWUsbn1mdW5jdGlvbiBfQShlLHQscixuKXshZVswXSYmIWVbMV0/KGVbMF09bixlLmxlZnQ9dCxlLnJpZ2h0PXIpOmUubGVmdD09PXI/ZVsxXT1uOmVbMF09bn1mdW5jdGlvbiBCUmUoZSx0LHIsbixpKXt2YXIgbz1lWzBdLGE9ZVsxXSxzPW9bMF0sbD1vWzFdLGM9YVswXSx1PWFbMV0saD0wLGY9MSxwPWMtcyxkPXUtbCxnO2lmKGc9dC1zLCEoIXAmJmc+MCkpe2lmKGcvPXAscDwwKXtpZihnPGgpcmV0dXJuO2c8ZiYmKGY9Zyl9ZWxzZSBpZihwPjApe2lmKGc+ZilyZXR1cm47Zz5oJiYoaD1nKX1pZihnPW4tcywhKCFwJiZnPDApKXtpZihnLz1wLHA8MCl7aWYoZz5mKXJldHVybjtnPmgmJihoPWcpfWVsc2UgaWYocD4wKXtpZihnPGgpcmV0dXJuO2c8ZiYmKGY9Zyl9aWYoZz1yLWwsISghZCYmZz4wKSl7aWYoZy89ZCxkPDApe2lmKGc8aClyZXR1cm47ZzxmJiYoZj1nKX1lbHNlIGlmKGQ+MCl7aWYoZz5mKXJldHVybjtnPmgmJihoPWcpfWlmKGc9aS1sLCEoIWQmJmc8MCkpe2lmKGcvPWQsZDwwKXtpZihnPmYpcmV0dXJuO2c+aCYmKGg9Zyl9ZWxzZSBpZihkPjApe2lmKGc8aClyZXR1cm47ZzxmJiYoZj1nKX1yZXR1cm4hKGg+MCkmJiEoZjwxKXx8KGg+MCYmKGVbMF09W3MraCpwLGwraCpkXSksZjwxJiYoZVsxXT1bcytmKnAsbCtmKmRdKSksITB9fX19fWZ1bmN0aW9uIEhSZShlLHQscixuLGkpe3ZhciBvPWVbMV07aWYobylyZXR1cm4hMDt2YXIgYT1lWzBdLHM9ZS5sZWZ0LGw9ZS5yaWdodCxjPXNbMF0sdT1zWzFdLGg9bFswXSxmPWxbMV0scD0oYytoKS8yLGQ9KHUrZikvMixnLF87aWYoZj09PXUpe2lmKHA8dHx8cD49bilyZXR1cm47aWYoYz5oKXtpZighYSlhPVtwLHJdO2Vsc2UgaWYoYVsxXT49aSlyZXR1cm47bz1bcCxpXX1lbHNle2lmKCFhKWE9W3AsaV07ZWxzZSBpZihhWzFdPHIpcmV0dXJuO289W3Ascl19fWVsc2UgaWYoZz0oYy1oKS8oZi11KSxfPWQtZypwLGc8LTF8fGc+MSlpZihjPmgpe2lmKCFhKWE9WyhyLV8pL2cscl07ZWxzZSBpZihhWzFdPj1pKXJldHVybjtvPVsoaS1fKS9nLGldfWVsc2V7aWYoIWEpYT1bKGktXykvZyxpXTtlbHNlIGlmKGFbMV08cilyZXR1cm47bz1bKHItXykvZyxyXX1lbHNlIGlmKHU8Zil7aWYoIWEpYT1bdCxnKnQrX107ZWxzZSBpZihhWzBdPj1uKXJldHVybjtvPVtuLGcqbitfXX1lbHNle2lmKCFhKWE9W24sZypuK19dO2Vsc2UgaWYoYVswXTx0KXJldHVybjtvPVt0LGcqdCtfXX1yZXR1cm4gZVswXT1hLGVbMV09bywhMH1mdW5jdGlvbiBTR3QoZSx0LHIsbil7Zm9yKHZhciBpPUFvLmxlbmd0aCxvO2ktLTspKCFIUmUobz1Bb1tpXSxlLHQscixuKXx8IUJSZShvLGUsdCxyLG4pfHwhKE1hdGguYWJzKG9bMF1bMF0tb1sxXVswXSk+V3J8fE1hdGguYWJzKG9bMF1bMV0tb1sxXVsxXSk+V3IpKSYmZGVsZXRlIEFvW2ldfXZhciBBej1NKCgpPT57clMoKX0pO2Z1bmN0aW9uIE1HdChlKXtyZXR1cm4gSmFbZS5pbmRleF09e3NpdGU6ZSxoYWxmZWRnZXM6W119fWZ1bmN0aW9uIFZSZShlLHQpe3ZhciByPWUuc2l0ZSxuPXQubGVmdCxpPXQucmlnaHQ7cmV0dXJuIHI9PT1pJiYoaT1uLG49ciksaT9NYXRoLmF0YW4yKGlbMV0tblsxXSxpWzBdLW5bMF0pOihyPT09bj8obj10WzFdLGk9dFswXSk6KG49dFswXSxpPXRbMV0pLE1hdGguYXRhbjIoblswXS1pWzBdLGlbMV0tblsxXSkpfWZ1bmN0aW9uIGhudChlLHQpe3JldHVybiB0WysodC5sZWZ0IT09ZS5zaXRlKV19ZnVuY3Rpb24gVVJlKGUsdCl7cmV0dXJuIHRbKyh0LmxlZnQ9PT1lLnNpdGUpXX1mdW5jdGlvbiBFR3QoKXtmb3IodmFyIGU9MCx0PUphLmxlbmd0aCxyLG4saSxvO2U8dDsrK2UpaWYoKHI9SmFbZV0pJiYobz0obj1yLmhhbGZlZGdlcykubGVuZ3RoKSl7dmFyIGE9bmV3IEFycmF5KG8pLHM9bmV3IEFycmF5KG8pO2ZvcihpPTA7aTxvOysraSlhW2ldPWksc1tpXT1WUmUocixBb1tuW2ldXSk7Zm9yKGEuc29ydChmdW5jdGlvbihsLGMpe3JldHVybiBzW2NdLXNbbF19KSxpPTA7aTxvOysraSlzW2ldPW5bYVtpXV07Zm9yKGk9MDtpPG87KytpKW5baV09c1tpXX19ZnVuY3Rpb24gVEd0KGUsdCxyLG4pe3ZhciBpPUphLmxlbmd0aCxvLGEscyxsLGMsdSxoLGYscCxkLGcsXyx5PSEwO2ZvcihvPTA7bzxpOysrbylpZihhPUphW29dKXtmb3Iocz1hLnNpdGUsYz1hLmhhbGZlZGdlcyxsPWMubGVuZ3RoO2wtLTspQW9bY1tsXV18fGMuc3BsaWNlKGwsMSk7Zm9yKGw9MCx1PWMubGVuZ3RoO2w8dTspZD1VUmUoYSxBb1tjW2xdXSksZz1kWzBdLF89ZFsxXSxoPWhudChhLEFvW2NbKytsJXVdXSksZj1oWzBdLHA9aFsxXSwoTWF0aC5hYnMoZy1mKT5Xcnx8TWF0aC5hYnMoXy1wKT5XcikmJihjLnNwbGljZShsLDAsQW8ucHVzaChlUyhzLGQsTWF0aC5hYnMoZy1lKTxXciYmbi1fPldyP1tlLE1hdGguYWJzKGYtZSk8V3I/cDpuXTpNYXRoLmFicyhfLW4pPFdyJiZyLWc+V3I/W01hdGguYWJzKHAtbik8V3I/ZjpyLG5dOk1hdGguYWJzKGctcik8V3ImJl8tdD5Xcj9bcixNYXRoLmFicyhmLXIpPFdyP3A6dF06TWF0aC5hYnMoXy10KTxXciYmZy1lPldyP1tNYXRoLmFicyhwLXQpPFdyP2Y6ZSx0XTpudWxsKSktMSksKyt1KTt1JiYoeT0hMSl9aWYoeSl7dmFyIHgsYixTLEM9MS8wO2ZvcihvPTAseT1udWxsO288aTsrK28pKGE9SmFbb10pJiYocz1hLnNpdGUseD1zWzBdLWUsYj1zWzFdLXQsUz14KngrYipiLFM8QyYmKEM9Uyx5PWEpKTtpZih5KXt2YXIgUD1bZSx0XSxrPVtlLG5dLE89W3Isbl0sRD1bcix0XTt5LmhhbGZlZGdlcy5wdXNoKEFvLnB1c2goZVMocz15LnNpdGUsUCxrKSktMSxBby5wdXNoKGVTKHMsayxPKSktMSxBby5wdXNoKGVTKHMsTyxEKSktMSxBby5wdXNoKGVTKHMsRCxQKSktMSl9fWZvcihvPTA7bzxpOysrbykoYT1KYVtvXSkmJihhLmhhbGZlZGdlcy5sZW5ndGh8fGRlbGV0ZSBKYVtvXSl9dmFyIGZudD1NKCgpPT57QXooKTtyUygpfSk7ZnVuY3Rpb24gcVJlKCl7UXcodGhpcyksdGhpcy54PXRoaXMueT10aGlzLmFyYz10aGlzLnNpdGU9dGhpcy5jeT1udWxsfWZ1bmN0aW9uIEV2KGUpe3ZhciB0PWUuUCxyPWUuTjtpZighKCF0fHwhcikpe3ZhciBuPXQuc2l0ZSxpPWUuc2l0ZSxvPXIuc2l0ZTtpZihuIT09byl7dmFyIGE9aVswXSxzPWlbMV0sbD1uWzBdLWEsYz1uWzFdLXMsdT1vWzBdLWEsaD1vWzFdLXMsZj0yKihsKmgtYyp1KTtpZighKGY+PS1BR3QpKXt2YXIgcD1sKmwrYypjLGQ9dSp1K2gqaCxnPShoKnAtYypkKS9mLF89KGwqZC11KnApL2YseT1DR3QucG9wKCl8fG5ldyBxUmU7eS5hcmM9ZSx5LnNpdGU9aSx5Lng9ZythLHkueT0oeS5jeT1fK3MpK01hdGguc3FydChnKmcrXypfKSxlLmNpcmNsZT15O2Zvcih2YXIgeD1udWxsLGI9blMuXztiOylpZih5Lnk8Yi55fHx5Lnk9PT1iLnkmJnkueDw9Yi54KWlmKGIuTCliPWIuTDtlbHNle3g9Yi5QO2JyZWFrfWVsc2UgaWYoYi5SKWI9Yi5SO2Vsc2V7eD1iO2JyZWFrfW5TLmluc2VydCh4LHkpLHh8fChQej15KX19fX1mdW5jdGlvbiBUdihlKXt2YXIgdD1lLmNpcmNsZTt0JiYodC5QfHwoUHo9dC5OKSxuUy5yZW1vdmUodCksQ0d0LnB1c2godCksUXcodCksZS5jaXJjbGU9bnVsbCl9dmFyIENHdCxQeixwbnQ9TSgoKT0+e0N6KCk7clMoKTtDR3Q9W119KTtmdW5jdGlvbiBHUmUoKXtRdyh0aGlzKSx0aGlzLmVkZ2U9dGhpcy5zaXRlPXRoaXMuY2lyY2xlPW51bGx9ZnVuY3Rpb24gUEd0KGUpe3ZhciB0PUlHdC5wb3AoKXx8bmV3IEdSZTtyZXR1cm4gdC5zaXRlPWUsdH1mdW5jdGlvbiBkbnQoZSl7VHYoZSksQ3YucmVtb3ZlKGUpLElHdC5wdXNoKGUpLFF3KGUpfWZ1bmN0aW9uIExHdChlKXt2YXIgdD1lLmNpcmNsZSxyPXQueCxuPXQuY3ksaT1bcixuXSxvPWUuUCxhPWUuTixzPVtlXTtkbnQoZSk7Zm9yKHZhciBsPW87bC5jaXJjbGUmJk1hdGguYWJzKHItbC5jaXJjbGUueCk8V3ImJk1hdGguYWJzKG4tbC5jaXJjbGUuY3kpPFdyOylvPWwuUCxzLnVuc2hpZnQobCksZG50KGwpLGw9bztzLnVuc2hpZnQobCksVHYobCk7Zm9yKHZhciBjPWE7Yy5jaXJjbGUmJk1hdGguYWJzKHItYy5jaXJjbGUueCk8V3ImJk1hdGguYWJzKG4tYy5jaXJjbGUuY3kpPFdyOylhPWMuTixzLnB1c2goYyksZG50KGMpLGM9YTtzLnB1c2goYyksVHYoYyk7dmFyIHU9cy5sZW5ndGgsaDtmb3IoaD0xO2g8dTsrK2gpYz1zW2hdLGw9c1toLTFdLF9BKGMuZWRnZSxsLnNpdGUsYy5zaXRlLGkpO2w9c1swXSxjPXNbdS0xXSxjLmVkZ2U9dFMobC5zaXRlLGMuc2l0ZSxudWxsLGkpLEV2KGwpLEV2KGMpfWZ1bmN0aW9uIGtHdChlKXtmb3IodmFyIHQ9ZVswXSxyPWVbMV0sbixpLG8sYSxzPUN2Ll87czspaWYobz1SR3QocyxyKS10LG8+V3Ipcz1zLkw7ZWxzZSBpZihhPXQtV1JlKHMsciksYT5Xcil7aWYoIXMuUil7bj1zO2JyZWFrfXM9cy5SfWVsc2V7bz4tV3I/KG49cy5QLGk9cyk6YT4tV3I/KG49cyxpPXMuTik6bj1pPXM7YnJlYWt9TUd0KGUpO3ZhciBsPVBHdChlKTtpZihDdi5pbnNlcnQobixsKSwhKCFuJiYhaSkpe2lmKG49PT1pKXtUdihuKSxpPVBHdChuLnNpdGUpLEN2Lmluc2VydChsLGkpLGwuZWRnZT1pLmVkZ2U9dFMobi5zaXRlLGwuc2l0ZSksRXYobiksRXYoaSk7cmV0dXJufWlmKCFpKXtsLmVkZ2U9dFMobi5zaXRlLGwuc2l0ZSk7cmV0dXJufVR2KG4pLFR2KGkpO3ZhciBjPW4uc2l0ZSx1PWNbMF0saD1jWzFdLGY9ZVswXS11LHA9ZVsxXS1oLGQ9aS5zaXRlLGc9ZFswXS11LF89ZFsxXS1oLHk9MiooZipfLXAqZykseD1mKmYrcCpwLGI9ZypnK18qXyxTPVsoXyp4LXAqYikveSt1LChmKmItZyp4KS95K2hdO19BKGkuZWRnZSxjLGQsUyksbC5lZGdlPXRTKGMsZSxudWxsLFMpLGkuZWRnZT10UyhlLGQsbnVsbCxTKSxFdihuKSxFdihpKX19ZnVuY3Rpb24gUkd0KGUsdCl7dmFyIHI9ZS5zaXRlLG49clswXSxpPXJbMV0sbz1pLXQ7aWYoIW8pcmV0dXJuIG47dmFyIGE9ZS5QO2lmKCFhKXJldHVybi0xLzA7cj1hLnNpdGU7dmFyIHM9clswXSxsPXJbMV0sYz1sLXQ7aWYoIWMpcmV0dXJuIHM7dmFyIHU9cy1uLGg9MS9vLTEvYyxmPXUvYztyZXR1cm4gaD8oLWYrTWF0aC5zcXJ0KGYqZi0yKmgqKHUqdS8oLTIqYyktbCtjLzIraS1vLzIpKSkvaCtuOihuK3MpLzJ9ZnVuY3Rpb24gV1JlKGUsdCl7dmFyIHI9ZS5OO2lmKHIpcmV0dXJuIFJHdChyLHQpO3ZhciBuPWUuc2l0ZTtyZXR1cm4gblsxXT09PXQ/blswXToxLzB9dmFyIElHdCxOR3Q9TSgoKT0+e0N6KCk7Zm50KCk7cG50KCk7QXooKTtyUygpO0lHdD1bXX0pO2Z1bmN0aW9uIFlSZShlLHQscil7cmV0dXJuKGVbMF0tclswXSkqKHRbMV0tZVsxXSktKGVbMF0tdFswXSkqKHJbMV0tZVsxXSl9ZnVuY3Rpb24galJlKGUsdCl7cmV0dXJuIHRbMV0tZVsxXXx8dFswXS1lWzBdfWZ1bmN0aW9uIHlBKGUsdCl7dmFyIHI9ZS5zb3J0KGpSZSkucG9wKCksbixpLG87Zm9yKEFvPVtdLEphPW5ldyBBcnJheShlLmxlbmd0aCksQ3Y9bmV3IHVudCxuUz1uZXcgdW50OzspaWYobz1QeixyJiYoIW98fHJbMV08by55fHxyWzFdPT09by55JiZyWzBdPG8ueCkpKHJbMF0hPT1ufHxyWzFdIT09aSkmJihrR3Qociksbj1yWzBdLGk9clsxXSkscj1lLnBvcCgpO2Vsc2UgaWYobylMR3Qoby5hcmMpO2Vsc2UgYnJlYWs7aWYoRUd0KCksdCl7dmFyIGE9K3RbMF1bMF0scz0rdFswXVsxXSxsPSt0WzFdWzBdLGM9K3RbMV1bMV07U0d0KGEscyxsLGMpLFRHdChhLHMsbCxjKX10aGlzLmVkZ2VzPUFvLHRoaXMuY2VsbHM9SmEsQ3Y9blM9QW89SmE9bnVsbH12YXIgV3IsQUd0LEN2LEphLG5TLEFvLHJTPU0oKCk9PntOR3QoKTtmbnQoKTtwbnQoKTtBeigpO0N6KCk7V3I9MWUtNixBR3Q9MWUtMTI7eUEucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp5QSxwb2x5Z29uczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZWRnZXM7cmV0dXJuIHRoaXMuY2VsbHMubWFwKGZ1bmN0aW9uKHQpe3ZhciByPXQuaGFsZmVkZ2VzLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gaG50KHQsZVtuXSl9KTtyZXR1cm4gci5kYXRhPXQuc2l0ZS5kYXRhLHJ9KX0sdHJpYW5nbGVzOmZ1bmN0aW9uKCl7dmFyIGU9W10sdD10aGlzLmVkZ2VzO3JldHVybiB0aGlzLmNlbGxzLmZvckVhY2goZnVuY3Rpb24ocixuKXtpZighIShzPShvPXIuaGFsZmVkZ2VzKS5sZW5ndGgpKWZvcih2YXIgaT1yLnNpdGUsbyxhPS0xLHMsbCxjPXRbb1tzLTFdXSx1PWMubGVmdD09PWk/Yy5yaWdodDpjLmxlZnQ7KythPHM7KWw9dSxjPXRbb1thXV0sdT1jLmxlZnQ9PT1pP2MucmlnaHQ6Yy5sZWZ0LGwmJnUmJm48bC5pbmRleCYmbjx1LmluZGV4JiZZUmUoaSxsLHUpPDAmJmUucHVzaChbaS5kYXRhLGwuZGF0YSx1LmRhdGFdKX0pLGV9LGxpbmtzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRnZXMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJpZ2h0fSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybntzb3VyY2U6ZS5sZWZ0LmRhdGEsdGFyZ2V0OmUucmlnaHQuZGF0YX19KX0sZmluZDpmdW5jdGlvbihlLHQscil7Zm9yKHZhciBuPXRoaXMsaSxvPW4uX2ZvdW5kfHwwLGE9bi5jZWxscy5sZW5ndGgsczshKHM9bi5jZWxsc1tvXSk7KWlmKCsrbz49YSlyZXR1cm4gbnVsbDt2YXIgbD1lLXMuc2l0ZVswXSxjPXQtcy5zaXRlWzFdLHU9bCpsK2MqYztkbyBzPW4uY2VsbHNbaT1vXSxvPW51bGwscy5oYWxmZWRnZXMuZm9yRWFjaChmdW5jdGlvbihoKXt2YXIgZj1uLmVkZ2VzW2hdLHA9Zi5sZWZ0O2lmKCEoKHA9PT1zLnNpdGV8fCFwKSYmIShwPWYucmlnaHQpKSl7dmFyIGQ9ZS1wWzBdLGc9dC1wWzFdLF89ZCpkK2cqZztfPHUmJih1PV8sbz1wLmluZGV4KX19KTt3aGlsZShvIT09bnVsbCk7cmV0dXJuIG4uX2ZvdW5kPWkscj09bnVsbHx8dTw9cipyP3Muc2l0ZTpudWxsfX19KTtmdW5jdGlvbiBER3QoKXt2YXIgZT12R3QsdD14R3Qscj1udWxsO2Z1bmN0aW9uIG4oaSl7cmV0dXJuIG5ldyB5QShpLm1hcChmdW5jdGlvbihvLGEpe3ZhciBzPVtNYXRoLnJvdW5kKGUobyxhLGkpL1dyKSpXcixNYXRoLnJvdW5kKHQobyxhLGkpL1dyKSpXcl07cmV0dXJuIHMuaW5kZXg9YSxzLmRhdGE9byxzfSkscil9cmV0dXJuIG4ucG9seWdvbnM9ZnVuY3Rpb24oaSl7cmV0dXJuIG4oaSkucG9seWdvbnMoKX0sbi5saW5rcz1mdW5jdGlvbihpKXtyZXR1cm4gbihpKS5saW5rcygpfSxuLnRyaWFuZ2xlcz1mdW5jdGlvbihpKXtyZXR1cm4gbihpKS50cmlhbmdsZXMoKX0sbi54PWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiBpPT0iZnVuY3Rpb24iP2k6bG50KCtpKSxuKTplfSxuLnk9ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9dHlwZW9mIGk9PSJmdW5jdGlvbiI/aTpsbnQoK2kpLG4pOnR9LG4uZXh0ZW50PWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPWk9PW51bGw/bnVsbDpbWytpWzBdWzBdLCtpWzBdWzFdXSxbK2lbMV1bMF0sK2lbMV1bMV1dXSxuKTpyJiZbW3JbMF1bMF0sclswXVsxXV0sW3JbMV1bMF0sclsxXVsxXV1dfSxuLnNpemU9ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9aT09bnVsbD9udWxsOltbMCwwXSxbK2lbMF0sK2lbMV1dXSxuKTpyJiZbclsxXVswXS1yWzBdWzBdLHJbMV1bMV0tclswXVsxXV19LG59dmFyIE9HdD1NKCgpPT57eUd0KCk7Ykd0KCk7clMoKX0pO3ZhciB6R3Q9TSgoKT0+e09HdCgpfSk7ZnVuY3Rpb24gQkd0KCl7Zm9yKHZhciBlPTAsdD1hcmd1bWVudHMubGVuZ3RoLHI9e30sbjtlPHQ7KytlKXtpZighKG49YXJndW1lbnRzW2VdKyIiKXx8biBpbiByfHwvW1xzLl0vLnRlc3QobikpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIHR5cGU6ICIrbik7cltuXT1bXX1yZXR1cm4gbmV3IEl6KHIpfWZ1bmN0aW9uIEl6KGUpe3RoaXMuXz1lfWZ1bmN0aW9uICRSZShlLHQpe3JldHVybiBlLnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoZnVuY3Rpb24ocil7dmFyIG49IiIsaT1yLmluZGV4T2YoIi4iKTtpZihpPj0wJiYobj1yLnNsaWNlKGkrMSkscj1yLnNsaWNlKDAsaSkpLHImJiF0Lmhhc093blByb3BlcnR5KHIpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3IpO3JldHVybnt0eXBlOnIsbmFtZTpufX0pfWZ1bmN0aW9uIEtSZShlLHQpe2Zvcih2YXIgcj0wLG49ZS5sZW5ndGgsaTtyPG47KytyKWlmKChpPWVbcl0pLm5hbWU9PT10KXJldHVybiBpLnZhbHVlfWZ1bmN0aW9uIEZHdChlLHQscil7Zm9yKHZhciBuPTAsaT1lLmxlbmd0aDtuPGk7KytuKWlmKGVbbl0ubmFtZT09PXQpe2Vbbl09WFJlLGU9ZS5zbGljZSgwLG4pLmNvbmNhdChlLnNsaWNlKG4rMSkpO2JyZWFrfXJldHVybiByIT1udWxsJiZlLnB1c2goe25hbWU6dCx2YWx1ZTpyfSksZX12YXIgWFJlLHZBLEhHdD1NKCgpPT57WFJlPXt2YWx1ZTpmdW5jdGlvbigpe319O0l6LnByb3RvdHlwZT1CR3QucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpJeixvbjpmdW5jdGlvbihlLHQpe3ZhciByPXRoaXMuXyxuPSRSZShlKyIiLHIpLGksbz0tMSxhPW4ubGVuZ3RoO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKDsrK288YTspaWYoKGk9KGU9bltvXSkudHlwZSkmJihpPUtSZShyW2ldLGUubmFtZSkpKXJldHVybiBpO3JldHVybn1pZih0IT1udWxsJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrdCk7Zm9yKDsrK288YTspaWYoaT0oZT1uW29dKS50eXBlKXJbaV09Rkd0KHJbaV0sZS5uYW1lLHQpO2Vsc2UgaWYodD09bnVsbClmb3IoaSBpbiByKXJbaV09Rkd0KHJbaV0sZS5uYW1lLG51bGwpO3JldHVybiB0aGlzfSxjb3B5OmZ1bmN0aW9uKCl7dmFyIGU9e30sdD10aGlzLl87Zm9yKHZhciByIGluIHQpZVtyXT10W3JdLnNsaWNlKCk7cmV0dXJuIG5ldyBJeihlKX0sY2FsbDpmdW5jdGlvbihlLHQpe2lmKChpPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIHI9bmV3IEFycmF5KGkpLG49MCxpLG87bjxpOysrbilyW25dPWFyZ3VtZW50c1tuKzJdO2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkoZSkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrZSk7Zm9yKG89dGhpcy5fW2VdLG49MCxpPW8ubGVuZ3RoO248aTsrK24pb1tuXS52YWx1ZS5hcHBseSh0LHIpfSxhcHBseTpmdW5jdGlvbihlLHQscil7aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eShlKSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIitlKTtmb3IodmFyIG49dGhpcy5fW2VdLGk9MCxvPW4ubGVuZ3RoO2k8bzsrK2kpbltpXS52YWx1ZS5hcHBseSh0LHIpfX07dkE9Qkd0fSk7dmFyIG1udD1NKCgpPT57SEd0KCl9KTt2YXIgTHosZ250LF9udD1NKCgpPT57THo9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLGdudD17c3ZnOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIseGh0bWw6THoseGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8ifX0pO2Z1bmN0aW9uIGZkKGUpe3ZhciB0PWUrPSIiLHI9dC5pbmRleE9mKCI6Iik7cmV0dXJuIHI+PTAmJih0PWUuc2xpY2UoMCxyKSkhPT0ieG1sbnMiJiYoZT1lLnNsaWNlKHIrMSkpLGdudC5oYXNPd25Qcm9wZXJ0eSh0KT97c3BhY2U6Z250W3RdLGxvY2FsOmV9OmV9dmFyIGt6PU0oKCk9PntfbnQoKX0pO2Z1bmN0aW9uIFpSZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLm93bmVyRG9jdW1lbnQscj10aGlzLm5hbWVzcGFjZVVSSTtyZXR1cm4gcj09PUx6JiZ0LmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkk9PT1Mej90LmNyZWF0ZUVsZW1lbnQoZSk6dC5jcmVhdGVFbGVtZW50TlMocixlKX19ZnVuY3Rpb24gSlJlKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGUuc3BhY2UsZS5sb2NhbCl9fWZ1bmN0aW9uIFJ6KGUpe3ZhciB0PWZkKGUpO3JldHVybih0LmxvY2FsP0pSZTpaUmUpKHQpfXZhciB5bnQ9TSgoKT0+e2t6KCk7X250KCl9KTtmdW5jdGlvbiBRUmUoKXt9ZnVuY3Rpb24gQXYoZSl7cmV0dXJuIGU9PW51bGw/UVJlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvcihlKX19dmFyIE56PU0oKCk9Pnt9KTtmdW5jdGlvbiBWR3QoZSl7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPUF2KGUpKTtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9dC5sZW5ndGgsbj1uZXcgQXJyYXkociksaT0wO2k8cjsrK2kpZm9yKHZhciBvPXRbaV0sYT1vLmxlbmd0aCxzPW5baV09bmV3IEFycmF5KGEpLGwsYyx1PTA7dTxhOysrdSkobD1vW3VdKSYmKGM9ZS5jYWxsKGwsbC5fX2RhdGFfXyx1LG8pKSYmKCJfX2RhdGFfXyJpbiBsJiYoYy5fX2RhdGFfXz1sLl9fZGF0YV9fKSxzW3VdPWMpO3JldHVybiBuZXcgbWkobix0aGlzLl9wYXJlbnRzKX12YXIgVUd0PU0oKCk9PntPdSgpO056KCl9KTtmdW5jdGlvbiB0TmUoKXtyZXR1cm5bXX1mdW5jdGlvbiB4QShlKXtyZXR1cm4gZT09bnVsbD90TmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKGUpfX12YXIgdm50PU0oKCk9Pnt9KTtmdW5jdGlvbiBxR3QoZSl7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPXhBKGUpKTtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9dC5sZW5ndGgsbj1bXSxpPVtdLG89MDtvPHI7KytvKWZvcih2YXIgYT10W29dLHM9YS5sZW5ndGgsbCxjPTA7YzxzOysrYykobD1hW2NdKSYmKG4ucHVzaChlLmNhbGwobCxsLl9fZGF0YV9fLGMsYSkpLGkucHVzaChsKSk7cmV0dXJuIG5ldyBtaShuLGkpfXZhciBHR3Q9TSgoKT0+e091KCk7dm50KCl9KTtmdW5jdGlvbiBiQShlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaGVzKGUpfX12YXIgeG50PU0oKCk9Pnt9KTtmdW5jdGlvbiBXR3QoZSl7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPWJBKGUpKTtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9dC5sZW5ndGgsbj1uZXcgQXJyYXkociksaT0wO2k8cjsrK2kpZm9yKHZhciBvPXRbaV0sYT1vLmxlbmd0aCxzPW5baV09W10sbCxjPTA7YzxhOysrYykobD1vW2NdKSYmZS5jYWxsKGwsbC5fX2RhdGFfXyxjLG8pJiZzLnB1c2gobCk7cmV0dXJuIG5ldyBtaShuLHRoaXMuX3BhcmVudHMpfXZhciBZR3Q9TSgoKT0+e091KCk7eG50KCl9KTtmdW5jdGlvbiBEeihlKXtyZXR1cm4gbmV3IEFycmF5KGUubGVuZ3RoKX12YXIgYm50PU0oKCk9Pnt9KTtmdW5jdGlvbiBqR3QoKXtyZXR1cm4gbmV3IG1pKHRoaXMuX2VudGVyfHx0aGlzLl9ncm91cHMubWFwKER6KSx0aGlzLl9wYXJlbnRzKX1mdW5jdGlvbiB3QShlLHQpe3RoaXMub3duZXJEb2N1bWVudD1lLm93bmVyRG9jdW1lbnQsdGhpcy5uYW1lc3BhY2VVUkk9ZS5uYW1lc3BhY2VVUkksdGhpcy5fbmV4dD1udWxsLHRoaXMuX3BhcmVudD1lLHRoaXMuX19kYXRhX189dH12YXIgd250PU0oKCk9PntibnQoKTtPdSgpO3dBLnByb3RvdHlwZT17Y29uc3RydWN0b3I6d0EsYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUoZSx0aGlzLl9uZXh0KX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUoZSx0KX0scXVlcnlTZWxlY3RvcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3IoZSl9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKGUpfX19KTtmdW5jdGlvbiBYR3QoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciAkR3Q9TSgoKT0+e30pO2Z1bmN0aW9uIGVOZShlLHQscixuLGksbyl7Zm9yKHZhciBhPTAscyxsPXQubGVuZ3RoLGM9by5sZW5ndGg7YTxjOysrYSkocz10W2FdKT8ocy5fX2RhdGFfXz1vW2FdLG5bYV09cyk6clthXT1uZXcgd0EoZSxvW2FdKTtmb3IoO2E8bDsrK2EpKHM9dFthXSkmJihpW2FdPXMpfWZ1bmN0aW9uIHJOZShlLHQscixuLGksbyxhKXt2YXIgcyxsLGM9e30sdT10Lmxlbmd0aCxoPW8ubGVuZ3RoLGY9bmV3IEFycmF5KHUpLHA7Zm9yKHM9MDtzPHU7KytzKShsPXRbc10pJiYoZltzXT1wPUtHdCthLmNhbGwobCxsLl9fZGF0YV9fLHMsdCkscCBpbiBjP2lbc109bDpjW3BdPWwpO2ZvcihzPTA7czxoOysrcylwPUtHdCthLmNhbGwoZSxvW3NdLHMsbyksKGw9Y1twXSk/KG5bc109bCxsLl9fZGF0YV9fPW9bc10sY1twXT1udWxsKTpyW3NdPW5ldyB3QShlLG9bc10pO2ZvcihzPTA7czx1OysrcykobD10W3NdKSYmY1tmW3NdXT09PWwmJihpW3NdPWwpfWZ1bmN0aW9uIFpHdChlLHQpe2lmKCFlKXJldHVybiBwPW5ldyBBcnJheSh0aGlzLnNpemUoKSksYz0tMSx0aGlzLmVhY2goZnVuY3Rpb24oUCl7cFsrK2NdPVB9KSxwO3ZhciByPXQ/ck5lOmVOZSxuPXRoaXMuX3BhcmVudHMsaT10aGlzLl9ncm91cHM7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPVhHdChlKSk7Zm9yKHZhciBvPWkubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHM9bmV3IEFycmF5KG8pLGw9bmV3IEFycmF5KG8pLGM9MDtjPG87KytjKXt2YXIgdT1uW2NdLGg9aVtjXSxmPWgubGVuZ3RoLHA9ZS5jYWxsKHUsdSYmdS5fX2RhdGFfXyxjLG4pLGQ9cC5sZW5ndGgsZz1zW2NdPW5ldyBBcnJheShkKSxfPWFbY109bmV3IEFycmF5KGQpLHk9bFtjXT1uZXcgQXJyYXkoZik7cih1LGgsZyxfLHkscCx0KTtmb3IodmFyIHg9MCxiPTAsUyxDO3g8ZDsrK3gpaWYoUz1nW3hdKXtmb3IoeD49YiYmKGI9eCsxKTshKEM9X1tiXSkmJisrYjxkOyk7Uy5fbmV4dD1DfHxudWxsfX1yZXR1cm4gYT1uZXcgbWkoYSxuKSxhLl9lbnRlcj1zLGEuX2V4aXQ9bCxhfXZhciBLR3QsSkd0PU0oKCk9PntPdSgpO3dudCgpOyRHdCgpO0tHdD0iJCJ9KTtmdW5jdGlvbiBRR3QoKXtyZXR1cm4gbmV3IG1pKHRoaXMuX2V4aXR8fHRoaXMuX2dyb3Vwcy5tYXAoRHopLHRoaXMuX3BhcmVudHMpfXZhciB0V3Q9TSgoKT0+e2JudCgpO091KCl9KTtmdW5jdGlvbiBlV3QoZSx0LHIpe3ZhciBuPXRoaXMuZW50ZXIoKSxpPXRoaXMsbz10aGlzLmV4aXQoKTtyZXR1cm4gbj10eXBlb2YgZT09ImZ1bmN0aW9uIj9lKG4pOm4uYXBwZW5kKGUrIiIpLHQhPW51bGwmJihpPXQoaSkpLHI9PW51bGw/by5yZW1vdmUoKTpyKG8pLG4mJmk/bi5tZXJnZShpKS5vcmRlcigpOml9dmFyIHJXdD1NKCgpPT57fSk7ZnVuY3Rpb24gbld0KGUpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMscj1lLl9ncm91cHMsbj10Lmxlbmd0aCxpPXIubGVuZ3RoLG89TWF0aC5taW4obixpKSxhPW5ldyBBcnJheShuKSxzPTA7czxvOysrcylmb3IodmFyIGw9dFtzXSxjPXJbc10sdT1sLmxlbmd0aCxoPWFbc109bmV3IEFycmF5KHUpLGYscD0wO3A8dTsrK3ApKGY9bFtwXXx8Y1twXSkmJihoW3BdPWYpO2Zvcig7czxuOysrcylhW3NdPXRbc107cmV0dXJuIG5ldyBtaShhLHRoaXMuX3BhcmVudHMpfXZhciBpV3Q9TSgoKT0+e091KCl9KTtmdW5jdGlvbiBvV3QoKXtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLHQ9LTEscj1lLmxlbmd0aDsrK3Q8cjspZm9yKHZhciBuPWVbdF0saT1uLmxlbmd0aC0xLG89bltpXSxhOy0taT49MDspKGE9bltpXSkmJihvJiZhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG8pXjQmJm8ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxvKSxvPWEpO3JldHVybiB0aGlzfXZhciBhV3Q9TSgoKT0+e30pO2Z1bmN0aW9uIHNXdChlKXtlfHwoZT1uTmUpO2Z1bmN0aW9uIHQoaCxmKXtyZXR1cm4gaCYmZj9lKGguX19kYXRhX18sZi5fX2RhdGFfXyk6IWgtIWZ9Zm9yKHZhciByPXRoaXMuX2dyb3VwcyxuPXIubGVuZ3RoLGk9bmV3IEFycmF5KG4pLG89MDtvPG47KytvKXtmb3IodmFyIGE9cltvXSxzPWEubGVuZ3RoLGw9aVtvXT1uZXcgQXJyYXkocyksYyx1PTA7dTxzOysrdSkoYz1hW3VdKSYmKGxbdV09Yyk7bC5zb3J0KHQpfXJldHVybiBuZXcgbWkoaSx0aGlzLl9wYXJlbnRzKS5vcmRlcigpfWZ1bmN0aW9uIG5OZShlLHQpe3JldHVybiBlPHQ/LTE6ZT50PzE6ZT49dD8wOk5hTn12YXIgbFd0PU0oKCk9PntPdSgpfSk7ZnVuY3Rpb24gY1d0KCl7dmFyIGU9YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyxlLmFwcGx5KG51bGwsYXJndW1lbnRzKSx0aGlzfXZhciB1V3Q9TSgoKT0+e30pO2Z1bmN0aW9uIGhXdCgpe3ZhciBlPW5ldyBBcnJheSh0aGlzLnNpemUoKSksdD0tMTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZVsrK3RdPXRoaXN9KSxlfXZhciBmV3Q9TSgoKT0+e30pO2Z1bmN0aW9uIHBXdCgpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsdD0wLHI9ZS5sZW5ndGg7dDxyOysrdClmb3IodmFyIG49ZVt0XSxpPTAsbz1uLmxlbmd0aDtpPG87KytpKXt2YXIgYT1uW2ldO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9dmFyIGRXdD1NKCgpPT57fSk7ZnVuY3Rpb24gbVd0KCl7dmFyIGU9MDtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7KytlfSksZX12YXIgZ1d0PU0oKCk9Pnt9KTtmdW5jdGlvbiBfV3QoKXtyZXR1cm4hdGhpcy5ub2RlKCl9dmFyIHlXdD1NKCgpPT57fSk7ZnVuY3Rpb24gdld0KGUpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMscj0wLG49dC5sZW5ndGg7cjxuOysrcilmb3IodmFyIGk9dFtyXSxvPTAsYT1pLmxlbmd0aCxzO288YTsrK28pKHM9aVtvXSkmJmUuY2FsbChzLHMuX19kYXRhX18sbyxpKTtyZXR1cm4gdGhpc312YXIgeFd0PU0oKCk9Pnt9KTtmdW5jdGlvbiBpTmUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUoZSl9fWZ1bmN0aW9uIG9OZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCl9fWZ1bmN0aW9uIGFOZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKGUsdCl9fWZ1bmN0aW9uIHNOZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsLHQpfX1mdW5jdGlvbiBsTmUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyPT1udWxsP3RoaXMucmVtb3ZlQXR0cmlidXRlKGUpOnRoaXMuc2V0QXR0cmlidXRlKGUscil9fWZ1bmN0aW9uIGNOZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciByPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3I9PW51bGw/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsLHIpfX1mdW5jdGlvbiBiV3QoZSx0KXt2YXIgcj1mZChlKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBuPXRoaXMubm9kZSgpO3JldHVybiByLmxvY2FsP24uZ2V0QXR0cmlidXRlTlMoci5zcGFjZSxyLmxvY2FsKTpuLmdldEF0dHJpYnV0ZShyKX1yZXR1cm4gdGhpcy5lYWNoKCh0PT1udWxsP3IubG9jYWw/b05lOmlOZTp0eXBlb2YgdD09ImZ1bmN0aW9uIj9yLmxvY2FsP2NOZTpsTmU6ci5sb2NhbD9zTmU6YU5lKShyLHQpKX12YXIgd1d0PU0oKCk9PntreigpfSk7ZnVuY3Rpb24gT3ooZSl7cmV0dXJuIGUub3duZXJEb2N1bWVudCYmZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHxlLmRvY3VtZW50JiZlfHxlLmRlZmF1bHRWaWV3fXZhciBTbnQ9TSgoKT0+e30pO2Z1bmN0aW9uIHVOZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KGUpfX1mdW5jdGlvbiBoTmUoZSx0LHIpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkoZSx0LHIpfX1mdW5jdGlvbiBmTmUoZSx0LHIpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO249PW51bGw/dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShlKTp0aGlzLnN0eWxlLnNldFByb3BlcnR5KGUsbixyKX19ZnVuY3Rpb24gU1d0KGUsdCxyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgodD09bnVsbD91TmU6dHlwZW9mIHQ9PSJmdW5jdGlvbiI/Zk5lOmhOZSkoZSx0LHI9PW51bGw/IiI6cikpOnFnKHRoaXMubm9kZSgpLGUpfWZ1bmN0aW9uIHFnKGUsdCl7cmV0dXJuIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSh0KXx8T3ooZSkuZ2V0Q29tcHV0ZWRTdHlsZShlLG51bGwpLmdldFByb3BlcnR5VmFsdWUodCl9dmFyIE1udD1NKCgpPT57U250KCl9KTtmdW5jdGlvbiBwTmUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbZV19fWZ1bmN0aW9uIGROZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXNbZV09dH19ZnVuY3Rpb24gbU5lKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cj09bnVsbD9kZWxldGUgdGhpc1tlXTp0aGlzW2VdPXJ9fWZ1bmN0aW9uIE1XdChlLHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKCh0PT1udWxsP3BOZTp0eXBlb2YgdD09ImZ1bmN0aW9uIj9tTmU6ZE5lKShlLHQpKTp0aGlzLm5vZGUoKVtlXX12YXIgRVd0PU0oKCk9Pnt9KTtmdW5jdGlvbiBUV3QoZSl7cmV0dXJuIGUudHJpbSgpLnNwbGl0KC9efFxzKy8pfWZ1bmN0aW9uIEVudChlKXtyZXR1cm4gZS5jbGFzc0xpc3R8fG5ldyBDV3QoZSl9ZnVuY3Rpb24gQ1d0KGUpe3RoaXMuX25vZGU9ZSx0aGlzLl9uYW1lcz1UV3QoZS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX1mdW5jdGlvbiBBV3QoZSx0KXtmb3IodmFyIHI9RW50KGUpLG49LTEsaT10Lmxlbmd0aDsrK248aTspci5hZGQodFtuXSl9ZnVuY3Rpb24gUFd0KGUsdCl7Zm9yKHZhciByPUVudChlKSxuPS0xLGk9dC5sZW5ndGg7KytuPGk7KXIucmVtb3ZlKHRbbl0pfWZ1bmN0aW9uIGdOZShlKXtyZXR1cm4gZnVuY3Rpb24oKXtBV3QodGhpcyxlKX19ZnVuY3Rpb24gX05lKGUpe3JldHVybiBmdW5jdGlvbigpe1BXdCh0aGlzLGUpfX1mdW5jdGlvbiB5TmUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXsodC5hcHBseSh0aGlzLGFyZ3VtZW50cyk/QVd0OlBXdCkodGhpcyxlKX19ZnVuY3Rpb24gSVd0KGUsdCl7dmFyIHI9VFd0KGUrIiIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBuPUVudCh0aGlzLm5vZGUoKSksaT0tMSxvPXIubGVuZ3RoOysraTxvOylpZighbi5jb250YWlucyhyW2ldKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4gdGhpcy5lYWNoKCh0eXBlb2YgdD09ImZ1bmN0aW9uIj95TmU6dD9nTmU6X05lKShyLHQpKX12YXIgTFd0PU0oKCk9PntDV3QucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fbmFtZXMuaW5kZXhPZihlKTt0PDAmJih0aGlzLl9uYW1lcy5wdXNoKGUpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LHJlbW92ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9uYW1lcy5pbmRleE9mKGUpO3Q+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UodCwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxjb250YWluczpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZihlKT49MH19fSk7ZnVuY3Rpb24gdk5lKCl7dGhpcy50ZXh0Q29udGVudD0iIn1mdW5jdGlvbiB4TmUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD1lfX1mdW5jdGlvbiBiTmUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50ZXh0Q29udGVudD10PT1udWxsPyIiOnR9fWZ1bmN0aW9uIGtXdChlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goZT09bnVsbD92TmU6KHR5cGVvZiBlPT0iZnVuY3Rpb24iP2JOZTp4TmUpKGUpKTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH12YXIgUld0PU0oKCk9Pnt9KTtmdW5jdGlvbiB3TmUoKXt0aGlzLmlubmVySFRNTD0iIn1mdW5jdGlvbiBTTmUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9ZX19ZnVuY3Rpb24gTU5lKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPXQ9PW51bGw/IiI6dH19ZnVuY3Rpb24gTld0KGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChlPT1udWxsP3dOZToodHlwZW9mIGU9PSJmdW5jdGlvbiI/TU5lOlNOZSkoZSkpOnRoaXMubm9kZSgpLmlubmVySFRNTH12YXIgRFd0PU0oKCk9Pnt9KTtmdW5jdGlvbiBFTmUoKXt0aGlzLm5leHRTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcyl9ZnVuY3Rpb24gT1d0KCl7cmV0dXJuIHRoaXMuZWFjaChFTmUpfXZhciB6V3Q9TSgoKT0+e30pO2Z1bmN0aW9uIFROZSgpe3RoaXMucHJldmlvdXNTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsdGhpcy5wYXJlbnROb2RlLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIEZXdCgpe3JldHVybiB0aGlzLmVhY2goVE5lKX12YXIgQld0PU0oKCk9Pnt9KTtmdW5jdGlvbiBIV3QoZSl7dmFyIHQ9dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTpSeihlKTtyZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZCh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KX12YXIgVld0PU0oKCk9Pnt5bnQoKX0pO2Z1bmN0aW9uIENOZSgpe3JldHVybiBudWxsfWZ1bmN0aW9uIFVXdChlLHQpe3ZhciByPXR5cGVvZiBlPT0iZnVuY3Rpb24iP2U6UnooZSksbj10PT1udWxsP0NOZTp0eXBlb2YgdD09ImZ1bmN0aW9uIj90OkF2KHQpO3JldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpe3JldHVybiB0aGlzLmluc2VydEJlZm9yZShyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxuLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8bnVsbCl9KX12YXIgcVd0PU0oKCk9Pnt5bnQoKTtOeigpfSk7ZnVuY3Rpb24gQU5lKCl7dmFyIGU9dGhpcy5wYXJlbnROb2RlO2UmJmUucmVtb3ZlQ2hpbGQodGhpcyl9ZnVuY3Rpb24gR1d0KCl7cmV0dXJuIHRoaXMuZWFjaChBTmUpfXZhciBXV3Q9TSgoKT0+e30pO2Z1bmN0aW9uIFBOZSgpe3ZhciBlPXRoaXMuY2xvbmVOb2RlKCExKSx0PXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gdD90Lmluc2VydEJlZm9yZShlLHRoaXMubmV4dFNpYmxpbmcpOmV9ZnVuY3Rpb24gSU5lKCl7dmFyIGU9dGhpcy5jbG9uZU5vZGUoITApLHQ9dGhpcy5wYXJlbnROb2RlO3JldHVybiB0P3QuaW5zZXJ0QmVmb3JlKGUsdGhpcy5uZXh0U2libGluZyk6ZX1mdW5jdGlvbiBZV3QoZSl7cmV0dXJuIHRoaXMuc2VsZWN0KGU/SU5lOlBOZSl9dmFyIGpXdD1NKCgpPT57fSk7ZnVuY3Rpb24gWFd0KGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoIl9fZGF0YV9fIixlKTp0aGlzLm5vZGUoKS5fX2RhdGFfX312YXIgJFd0PU0oKCk9Pnt9KTtmdW5jdGlvbiBMTmUoZSx0LHIpe3JldHVybiBlPUpXdChlLHQsciksZnVuY3Rpb24obil7dmFyIGk9bi5yZWxhdGVkVGFyZ2V0OyghaXx8aSE9PXRoaXMmJiEoaS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSY4KSkmJmUuY2FsbCh0aGlzLG4pfX1mdW5jdGlvbiBKV3QoZSx0LHIpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgaT1ZcjtZcj1uO3RyeXtlLmNhbGwodGhpcyx0aGlzLl9fZGF0YV9fLHQscil9ZmluYWxseXtZcj1pfX19ZnVuY3Rpb24ga05lKGUpe3JldHVybiBlLnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoZnVuY3Rpb24odCl7dmFyIHI9IiIsbj10LmluZGV4T2YoIi4iKTtyZXR1cm4gbj49MCYmKHI9dC5zbGljZShuKzEpLHQ9dC5zbGljZSgwLG4pKSx7dHlwZTp0LG5hbWU6cn19KX1mdW5jdGlvbiBSTmUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fX29uO2lmKCEhdCl7Zm9yKHZhciByPTAsbj0tMSxpPXQubGVuZ3RoLG87cjxpOysrcilvPXRbcl0sKCFlLnR5cGV8fG8udHlwZT09PWUudHlwZSkmJm8ubmFtZT09PWUubmFtZT90aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoby50eXBlLG8ubGlzdGVuZXIsby5jYXB0dXJlKTp0Wysrbl09bzsrK24/dC5sZW5ndGg9bjpkZWxldGUgdGhpcy5fX29ufX19ZnVuY3Rpb24gTk5lKGUsdCxyKXt2YXIgbj1aV3QuaGFzT3duUHJvcGVydHkoZS50eXBlKT9MTmU6Sld0O3JldHVybiBmdW5jdGlvbihpLG8sYSl7dmFyIHM9dGhpcy5fX29uLGwsYz1uKHQsbyxhKTtpZihzKXtmb3IodmFyIHU9MCxoPXMubGVuZ3RoO3U8aDsrK3UpaWYoKGw9c1t1XSkudHlwZT09PWUudHlwZSYmbC5uYW1lPT09ZS5uYW1lKXt0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIobC50eXBlLGwubGlzdGVuZXIsbC5jYXB0dXJlKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIobC50eXBlLGwubGlzdGVuZXI9YyxsLmNhcHR1cmU9ciksbC52YWx1ZT10O3JldHVybn19dGhpcy5hZGRFdmVudExpc3RlbmVyKGUudHlwZSxjLHIpLGw9e3R5cGU6ZS50eXBlLG5hbWU6ZS5uYW1lLHZhbHVlOnQsbGlzdGVuZXI6YyxjYXB0dXJlOnJ9LHM/cy5wdXNoKGwpOnRoaXMuX19vbj1bbF19fWZ1bmN0aW9uIFFXdChlLHQscil7dmFyIG49a05lKGUrIiIpLGksbz1uLmxlbmd0aCxhO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7dmFyIHM9dGhpcy5ub2RlKCkuX19vbjtpZihzKXtmb3IodmFyIGw9MCxjPXMubGVuZ3RoLHU7bDxjOysrbClmb3IoaT0wLHU9c1tsXTtpPG87KytpKWlmKChhPW5baV0pLnR5cGU9PT11LnR5cGUmJmEubmFtZT09PXUubmFtZSlyZXR1cm4gdS52YWx1ZX1yZXR1cm59Zm9yKHM9dD9OTmU6Uk5lLHI9PW51bGwmJihyPSExKSxpPTA7aTxvOysraSl0aGlzLmVhY2gocyhuW2ldLHQscikpO3JldHVybiB0aGlzfWZ1bmN0aW9uIFRudChlLHQscixuKXt2YXIgaT1ZcjtlLnNvdXJjZUV2ZW50PVlyLFlyPWU7dHJ5e3JldHVybiB0LmFwcGx5KHIsbil9ZmluYWxseXtZcj1pfX12YXIgWld0LFlyLEtXdCx6ej1NKCgpPT57Wld0PXt9LFlyPW51bGw7dHlwZW9mIGRvY3VtZW50IT0idW5kZWZpbmVkIiYmKEtXdD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIm9ubW91c2VlbnRlciJpbiBLV3R8fChaV3Q9e21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSkpfSk7ZnVuY3Rpb24gdFl0KGUsdCxyKXt2YXIgbj1PeihlKSxpPW4uQ3VzdG9tRXZlbnQ7dHlwZW9mIGk9PSJmdW5jdGlvbiI/aT1uZXcgaSh0LHIpOihpPW4uZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iikscj8oaS5pbml0RXZlbnQodCxyLmJ1YmJsZXMsci5jYW5jZWxhYmxlKSxpLmRldGFpbD1yLmRldGFpbCk6aS5pbml0RXZlbnQodCwhMSwhMSkpLGUuZGlzcGF0Y2hFdmVudChpKX1mdW5jdGlvbiBETmUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdFl0KHRoaXMsZSx0KX19ZnVuY3Rpb24gT05lKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRZdCh0aGlzLGUsdC5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX1mdW5jdGlvbiBlWXQoZSx0KXtyZXR1cm4gdGhpcy5lYWNoKCh0eXBlb2YgdD09ImZ1bmN0aW9uIj9PTmU6RE5lKShlLHQpKX12YXIgcll0PU0oKCk9PntTbnQoKX0pO2Z1bmN0aW9uIG1pKGUsdCl7dGhpcy5fZ3JvdXBzPWUsdGhpcy5fcGFyZW50cz10fWZ1bmN0aW9uIG5ZdCgpe3JldHVybiBuZXcgbWkoW1tkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdXSxDbnQpfXZhciBDbnQscGQsT3U9TSgoKT0+e1VHdCgpO0dHdCgpO1lHdCgpO0pHdCgpO3dudCgpO3RXdCgpO3JXdCgpO2lXdCgpO2FXdCgpO2xXdCgpO3VXdCgpO2ZXdCgpO2RXdCgpO2dXdCgpO3lXdCgpO3hXdCgpO3dXdCgpO01udCgpO0VXdCgpO0xXdCgpO1JXdCgpO0RXdCgpO3pXdCgpO0JXdCgpO1ZXdCgpO3FXdCgpO1dXdCgpO2pXdCgpOyRXdCgpO3p6KCk7cll0KCk7Q250PVtudWxsXTttaS5wcm90b3R5cGU9bll0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6bWksc2VsZWN0OlZHdCxzZWxlY3RBbGw6cUd0LGZpbHRlcjpXR3QsZGF0YTpaR3QsZW50ZXI6akd0LGV4aXQ6UUd0LGpvaW46ZVd0LG1lcmdlOm5XdCxvcmRlcjpvV3Qsc29ydDpzV3QsY2FsbDpjV3Qsbm9kZXM6aFd0LG5vZGU6cFd0LHNpemU6bVd0LGVtcHR5Ol9XdCxlYWNoOnZXdCxhdHRyOmJXdCxzdHlsZTpTV3QscHJvcGVydHk6TVd0LGNsYXNzZWQ6SVd0LHRleHQ6a1d0LGh0bWw6Tld0LHJhaXNlOk9XdCxsb3dlcjpGV3QsYXBwZW5kOkhXdCxpbnNlcnQ6VVd0LHJlbW92ZTpHV3QsY2xvbmU6WVd0LGRhdHVtOlhXdCxvbjpRV3QsZGlzcGF0Y2g6ZVl0fTtwZD1uWXR9KTtmdW5jdGlvbiBkZChlKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciP25ldyBtaShbW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSldXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IG1pKFtbZV1dLENudCl9dmFyIGlZdD1NKCgpPT57T3UoKX0pO2Z1bmN0aW9uIEZ6KCl7Zm9yKHZhciBlPVlyLHQ7dD1lLnNvdXJjZUV2ZW50OyllPXQ7cmV0dXJuIGV9dmFyIEFudD1NKCgpPT57enooKX0pO2Z1bmN0aW9uIEJ6KGUsdCl7dmFyIHI9ZS5vd25lclNWR0VsZW1lbnR8fGU7aWYoci5jcmVhdGVTVkdQb2ludCl7dmFyIG49ci5jcmVhdGVTVkdQb2ludCgpO3JldHVybiBuLng9dC5jbGllbnRYLG4ueT10LmNsaWVudFksbj1uLm1hdHJpeFRyYW5zZm9ybShlLmdldFNjcmVlbkNUTSgpLmludmVyc2UoKSksW24ueCxuLnldfXZhciBpPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW3QuY2xpZW50WC1pLmxlZnQtZS5jbGllbnRMZWZ0LHQuY2xpZW50WS1pLnRvcC1lLmNsaWVudFRvcF19dmFyIFBudD1NKCgpPT57fSk7ZnVuY3Rpb24gaVMoZSl7dmFyIHQ9RnooKTtyZXR1cm4gdC5jaGFuZ2VkVG91Y2hlcyYmKHQ9dC5jaGFuZ2VkVG91Y2hlc1swXSksQnooZSx0KX12YXIgb1l0PU0oKCk9PntBbnQoKTtQbnQoKX0pO2Z1bmN0aW9uIEh6KGUsdCxyKXthcmd1bWVudHMubGVuZ3RoPDMmJihyPXQsdD1GeigpLmNoYW5nZWRUb3VjaGVzKTtmb3IodmFyIG49MCxpPXQ/dC5sZW5ndGg6MCxvO248aTsrK24paWYoKG89dFtuXSkuaWRlbnRpZmllcj09PXIpcmV0dXJuIEJ6KGUsbyk7cmV0dXJuIG51bGx9dmFyIGFZdD1NKCgpPT57QW50KCk7UG50KCl9KTt2YXIgTHM9TSgoKT0+e3hudCgpO29ZdCgpO2t6KCk7aVl0KCk7T3UoKTtOeigpO3ZudCgpO01udCgpO2FZdCgpO3p6KCl9KTtmdW5jdGlvbiBWeigpe1lyLnByZXZlbnREZWZhdWx0KCksWXIuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9dmFyIHNZdD1NKCgpPT57THMoKX0pO2Z1bmN0aW9uIEludChlKXt2YXIgdD1lLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxyPWRkKGUpLm9uKCJkcmFnc3RhcnQuZHJhZyIsVnosITApOyJvbnNlbGVjdHN0YXJ0ImluIHQ/ci5vbigic2VsZWN0c3RhcnQuZHJhZyIsVnosITApOih0Ll9fbm9zZWxlY3Q9dC5zdHlsZS5Nb3pVc2VyU2VsZWN0LHQuc3R5bGUuTW96VXNlclNlbGVjdD0ibm9uZSIpfWZ1bmN0aW9uIExudChlLHQpe3ZhciByPWUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LG49ZGQoZSkub24oImRyYWdzdGFydC5kcmFnIixudWxsKTt0JiYobi5vbigiY2xpY2suZHJhZyIsVnosITApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLm9uKCJjbGljay5kcmFnIixudWxsKX0sMCkpLCJvbnNlbGVjdHN0YXJ0ImluIHI/bi5vbigic2VsZWN0c3RhcnQuZHJhZyIsbnVsbCk6KHIuc3R5bGUuTW96VXNlclNlbGVjdD1yLl9fbm9zZWxlY3QsZGVsZXRlIHIuX19ub3NlbGVjdCl9dmFyIGxZdD1NKCgpPT57THMoKTtzWXQoKX0pO3ZhciBjWXQ9TSgoKT0+e2xZdCgpfSk7ZnVuY3Rpb24gVXooZSx0LHIpe2UucHJvdG90eXBlPXQucHJvdG90eXBlPXIsci5jb25zdHJ1Y3Rvcj1lfWZ1bmN0aW9uIGtudChlLHQpe3ZhciByPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpO2Zvcih2YXIgbiBpbiB0KXJbbl09dFtuXTtyZXR1cm4gcn12YXIgdVl0PU0oKCk9Pnt9KTtmdW5jdGlvbiBFQSgpe31mdW5jdGlvbiBmWXQoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRIZXgoKX1mdW5jdGlvbiBHTmUoKXtyZXR1cm4geVl0KHRoaXMpLmZvcm1hdEhzbCgpfWZ1bmN0aW9uIHBZdCgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdFJnYigpfWZ1bmN0aW9uIEdnKGUpe3ZhciB0LHI7cmV0dXJuIGU9KGUrIiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLCh0PXpOZS5leGVjKGUpKT8ocj10WzFdLmxlbmd0aCx0PXBhcnNlSW50KHRbMV0sMTYpLHI9PT02P2RZdCh0KTpyPT09Mz9uZXcgX2wodD4+OCYxNXx0Pj40JjI0MCx0Pj40JjE1fHQmMjQwLCh0JjE1KTw8NHx0JjE1LDEpOnI9PT04P3F6KHQ+PjI0JjI1NSx0Pj4xNiYyNTUsdD4+OCYyNTUsKHQmMjU1KS8yNTUpOnI9PT00P3F6KHQ+PjEyJjE1fHQ+PjgmMjQwLHQ+PjgmMTV8dD4+NCYyNDAsdD4+NCYxNXx0JjI0MCwoKHQmMTUpPDw0fHQmMTUpLzI1NSk6bnVsbCk6KHQ9Rk5lLmV4ZWMoZSkpP25ldyBfbCh0WzFdLHRbMl0sdFszXSwxKToodD1CTmUuZXhlYyhlKSk/bmV3IF9sKHRbMV0qMjU1LzEwMCx0WzJdKjI1NS8xMDAsdFszXSoyNTUvMTAwLDEpOih0PUhOZS5leGVjKGUpKT9xeih0WzFdLHRbMl0sdFszXSx0WzRdKToodD1WTmUuZXhlYyhlKSk/cXoodFsxXSoyNTUvMTAwLHRbMl0qMjU1LzEwMCx0WzNdKjI1NS8xMDAsdFs0XSk6KHQ9VU5lLmV4ZWMoZSkpP19ZdCh0WzFdLHRbMl0vMTAwLHRbM10vMTAwLDEpOih0PXFOZS5leGVjKGUpKT9fWXQodFsxXSx0WzJdLzEwMCx0WzNdLzEwMCx0WzRdKTpoWXQuaGFzT3duUHJvcGVydHkoZSk/ZFl0KGhZdFtlXSk6ZT09PSJ0cmFuc3BhcmVudCI/bmV3IF9sKE5hTixOYU4sTmFOLDApOm51bGx9ZnVuY3Rpb24gZFl0KGUpe3JldHVybiBuZXcgX2woZT4+MTYmMjU1LGU+PjgmMjU1LGUmMjU1LDEpfWZ1bmN0aW9uIHF6KGUsdCxyLG4pe3JldHVybiBuPD0wJiYoZT10PXI9TmFOKSxuZXcgX2woZSx0LHIsbil9ZnVuY3Rpb24gV05lKGUpe3JldHVybiBlIGluc3RhbmNlb2YgRUF8fChlPUdnKGUpKSxlPyhlPWUucmdiKCksbmV3IF9sKGUucixlLmcsZS5iLGUub3BhY2l0eSkpOm5ldyBfbH1mdW5jdGlvbiBhUyhlLHQscixuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/V05lKGUpOm5ldyBfbChlLHQscixuPT1udWxsPzE6bil9ZnVuY3Rpb24gX2woZSx0LHIsbil7dGhpcy5yPStlLHRoaXMuZz0rdCx0aGlzLmI9K3IsdGhpcy5vcGFjaXR5PStufWZ1bmN0aW9uIG1ZdCgpe3JldHVybiIjIitSbnQodGhpcy5yKStSbnQodGhpcy5nKStSbnQodGhpcy5iKX1mdW5jdGlvbiBnWXQoKXt2YXIgZT10aGlzLm9wYWNpdHk7cmV0dXJuIGU9aXNOYU4oZSk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsZSkpLChlPT09MT8icmdiKCI6InJnYmEoIikrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLnIpfHwwKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuZyl8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5iKXx8MCkpKyhlPT09MT8iKSI6IiwgIitlKyIpIil9ZnVuY3Rpb24gUm50KGUpe3JldHVybiBlPU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQoZSl8fDApKSwoZTwxNj8iMCI6IiIpK2UudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIF9ZdChlLHQscixuKXtyZXR1cm4gbjw9MD9lPXQ9cj1OYU46cjw9MHx8cj49MT9lPXQ9TmFOOnQ8PTAmJihlPU5hTiksbmV3IEFmKGUsdCxyLG4pfWZ1bmN0aW9uIHlZdChlKXtpZihlIGluc3RhbmNlb2YgQWYpcmV0dXJuIG5ldyBBZihlLmgsZS5zLGUubCxlLm9wYWNpdHkpO2lmKGUgaW5zdGFuY2VvZiBFQXx8KGU9R2coZSkpLCFlKXJldHVybiBuZXcgQWY7aWYoZSBpbnN0YW5jZW9mIEFmKXJldHVybiBlO2U9ZS5yZ2IoKTt2YXIgdD1lLnIvMjU1LHI9ZS5nLzI1NSxuPWUuYi8yNTUsaT1NYXRoLm1pbih0LHIsbiksbz1NYXRoLm1heCh0LHIsbiksYT1OYU4scz1vLWksbD0obytpKS8yO3JldHVybiBzPyh0PT09bz9hPShyLW4pL3MrKHI8bikqNjpyPT09bz9hPShuLXQpL3MrMjphPSh0LXIpL3MrNCxzLz1sPC41P28raToyLW8taSxhKj02MCk6cz1sPjAmJmw8MT8wOmEsbmV3IEFmKGEscyxsLGUub3BhY2l0eSl9ZnVuY3Rpb24gdll0KGUsdCxyLG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT95WXQoZSk6bmV3IEFmKGUsdCxyLG49PW51bGw/MTpuKX1mdW5jdGlvbiBBZihlLHQscixuKXt0aGlzLmg9K2UsdGhpcy5zPSt0LHRoaXMubD0rcix0aGlzLm9wYWNpdHk9K259ZnVuY3Rpb24gTm50KGUsdCxyKXtyZXR1cm4oZTw2MD90KyhyLXQpKmUvNjA6ZTwxODA/cjplPDI0MD90KyhyLXQpKigyNDAtZSkvNjA6dCkqMjU1fXZhciBTQSxHeixvUyxNQSxQZix6TmUsRk5lLEJOZSxITmUsVk5lLFVOZSxxTmUsaFl0LHhZdD1NKCgpPT57dVl0KCk7U0E9LjcsR3o9MS9TQSxvUz0iXFxzKihbKy1dP1xcZCspXFxzKiIsTUE9IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pXFxzKiIsUGY9IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pJVxccyoiLHpOZT0vXiMoWzAtOWEtZl17Myw4fSkkLyxGTmU9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW29TLG9TLG9TXSsiXFwpJCIpLEJOZT1uZXcgUmVnRXhwKCJecmdiXFwoIitbUGYsUGYsUGZdKyJcXCkkIiksSE5lPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbb1Msb1Msb1MsTUFdKyJcXCkkIiksVk5lPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbUGYsUGYsUGYsTUFdKyJcXCkkIiksVU5lPW5ldyBSZWdFeHAoIl5oc2xcXCgiK1tNQSxQZixQZl0rIlxcKSQiKSxxTmU9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1tNQSxQZixQZixNQV0rIlxcKSQiKSxoWXQ9e2FsaWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUzNSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xldDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRldGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjoxNDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxkYXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJrb2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hpZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtzbGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxvcmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzoxMTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazoxNjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXduZ3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjExMzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGlnaHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjoxNjc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMzMjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1lZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVtc2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRjcmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAyMjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQsb3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVuOjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4Mzg4NzM2LHJlYmVjY2FwdXJwbGU6NjY5Nzg4MSxyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNhbmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgwODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0NTA3NH07VXooRUEsR2cse2NvcHk6ZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IHRoaXMuY29uc3RydWN0b3IsdGhpcyxlKX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKS5kaXNwbGF5YWJsZSgpfSxoZXg6Zll0LGZvcm1hdEhleDpmWXQsZm9ybWF0SHNsOkdOZSxmb3JtYXRSZ2I6cFl0LHRvU3RyaW5nOnBZdH0pO1V6KF9sLGFTLGtudChFQSx7YnJpZ2h0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZT09bnVsbD9HejpNYXRoLnBvdyhHeixlKSxuZXcgX2wodGhpcy5yKmUsdGhpcy5nKmUsdGhpcy5iKmUsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/U0E6TWF0aC5wb3coU0EsZSksbmV3IF9sKHRoaXMuciplLHRoaXMuZyplLHRoaXMuYiplLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6bVl0LGZvcm1hdEhleDptWXQsZm9ybWF0UmdiOmdZdCx0b1N0cmluZzpnWXR9KSk7VXooQWYsdll0LGtudChFQSx7YnJpZ2h0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZT09bnVsbD9HejpNYXRoLnBvdyhHeixlKSxuZXcgQWYodGhpcy5oLHRoaXMucyx0aGlzLmwqZSx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZT09bnVsbD9TQTpNYXRoLnBvdyhTQSxlKSxuZXcgQWYodGhpcy5oLHRoaXMucyx0aGlzLmwqZSx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmglMzYwKyh0aGlzLmg8MCkqMzYwLHQ9aXNOYU4oZSl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMscj10aGlzLmwsbj1yKyhyPC41P3I6MS1yKSp0LGk9MipyLW47cmV0dXJuIG5ldyBfbChObnQoZT49MjQwP2UtMjQwOmUrMTIwLGksbiksTm50KGUsaSxuKSxObnQoZTwxMjA/ZSsyNDA6ZS0xMjAsaSxuKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcGFjaXR5O3JldHVybiBlPWlzTmFOKGUpPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLGUpKSwoZT09PTE/ImhzbCgiOiJoc2xhKCIpKyh0aGlzLmh8fDApKyIsICIrKHRoaXMuc3x8MCkqMTAwKyIlLCAiKyh0aGlzLmx8fDApKjEwMCsiJSIrKGU9PT0xPyIpIjoiLCAiK2UrIikiKX19KSl9KTt2YXIgRG50PU0oKCk9Pnt4WXQoKX0pO2Z1bmN0aW9uIE9udChlLHQscixuLGkpe3ZhciBvPWUqZSxhPW8qZTtyZXR1cm4oKDEtMyplKzMqby1hKSp0Kyg0LTYqbyszKmEpKnIrKDErMyplKzMqby0zKmEpKm4rYSppKS82fWZ1bmN0aW9uIGJZdChlKXt2YXIgdD1lLmxlbmd0aC0xO3JldHVybiBmdW5jdGlvbihyKXt2YXIgbj1yPD0wP3I9MDpyPj0xPyhyPTEsdC0xKTpNYXRoLmZsb29yKHIqdCksaT1lW25dLG89ZVtuKzFdLGE9bj4wP2Vbbi0xXToyKmktbyxzPW48dC0xP2VbbisyXToyKm8taTtyZXR1cm4gT250KChyLW4vdCkqdCxhLGksbyxzKX19dmFyIHpudD1NKCgpPT57fSk7ZnVuY3Rpb24gd1l0KGUpe3ZhciB0PWUubGVuZ3RoO3JldHVybiBmdW5jdGlvbihyKXt2YXIgbj1NYXRoLmZsb29yKCgociU9MSk8MD8rK3I6cikqdCksaT1lWyhuK3QtMSkldF0sbz1lW24ldF0sYT1lWyhuKzEpJXRdLHM9ZVsobisyKSV0XTtyZXR1cm4gT250KChyLW4vdCkqdCxpLG8sYSxzKX19dmFyIFNZdD1NKCgpPT57em50KCl9KTtmdW5jdGlvbiBGbnQoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciBNWXQ9TSgoKT0+e30pO2Z1bmN0aW9uIFlOZShlLHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gZStyKnR9fWZ1bmN0aW9uIGpOZShlLHQscil7cmV0dXJuIGU9TWF0aC5wb3coZSxyKSx0PU1hdGgucG93KHQsciktZSxyPTEvcixmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5wb3coZStuKnQscil9fWZ1bmN0aW9uIEVZdChlKXtyZXR1cm4oZT0rZSk9PTE/V3o6ZnVuY3Rpb24odCxyKXtyZXR1cm4gci10P2pOZSh0LHIsZSk6Rm50KGlzTmFOKHQpP3I6dCl9fWZ1bmN0aW9uIFd6KGUsdCl7dmFyIHI9dC1lO3JldHVybiByP1lOZShlLHIpOkZudChpc05hTihlKT90OmUpfXZhciBUWXQ9TSgoKT0+e01ZdCgpfSk7ZnVuY3Rpb24gQ1l0KGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgcj10Lmxlbmd0aCxuPW5ldyBBcnJheShyKSxpPW5ldyBBcnJheShyKSxvPW5ldyBBcnJheShyKSxhLHM7Zm9yKGE9MDthPHI7KythKXM9YVModFthXSksblthXT1zLnJ8fDAsaVthXT1zLmd8fDAsb1thXT1zLmJ8fDA7cmV0dXJuIG49ZShuKSxpPWUoaSksbz1lKG8pLHMub3BhY2l0eT0xLGZ1bmN0aW9uKGwpe3JldHVybiBzLnI9bihsKSxzLmc9aShsKSxzLmI9byhsKSxzKyIifX19dmFyIFl6LFhOZSwkTmUsQVl0PU0oKCk9PntEbnQoKTt6bnQoKTtTWXQoKTtUWXQoKTtZej1mdW5jdGlvbiBlKHQpe3ZhciByPUVZdCh0KTtmdW5jdGlvbiBuKGksbyl7dmFyIGE9cigoaT1hUyhpKSkuciwobz1hUyhvKSkucikscz1yKGkuZyxvLmcpLGw9cihpLmIsby5iKSxjPVd6KGkub3BhY2l0eSxvLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih1KXtyZXR1cm4gaS5yPWEodSksaS5nPXModSksaS5iPWwodSksaS5vcGFjaXR5PWModSksaSsiIn19cmV0dXJuIG4uZ2FtbWE9ZSxufSgxKTtYTmU9Q1l0KGJZdCksJE5lPUNZdCh3WXQpfSk7ZnVuY3Rpb24gSWMoZSx0KXtyZXR1cm4gZT0rZSx0PSt0LGZ1bmN0aW9uKHIpe3JldHVybiBlKigxLXIpK3Qqcn19dmFyIGp6PU0oKCk9Pnt9KTtmdW5jdGlvbiBLTmUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fWZ1bmN0aW9uIFpOZShlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUodCkrIiJ9fWZ1bmN0aW9uIFZudChlLHQpe3ZhciByPUhudC5sYXN0SW5kZXg9Qm50Lmxhc3RJbmRleD0wLG4saSxvLGE9LTEscz1bXSxsPVtdO2ZvcihlPWUrIiIsdD10KyIiOyhuPUhudC5leGVjKGUpKSYmKGk9Qm50LmV4ZWModCkpOykobz1pLmluZGV4KT5yJiYobz10LnNsaWNlKHIsbyksc1thXT9zW2FdKz1vOnNbKythXT1vKSwobj1uWzBdKT09PShpPWlbMF0pP3NbYV0/c1thXSs9aTpzWysrYV09aTooc1srK2FdPW51bGwsbC5wdXNoKHtpOmEseDpJYyhuLGkpfSkpLHI9Qm50Lmxhc3RJbmRleDtyZXR1cm4gcjx0Lmxlbmd0aCYmKG89dC5zbGljZShyKSxzW2FdP3NbYV0rPW86c1srK2FdPW8pLHMubGVuZ3RoPDI/bFswXT9aTmUobFswXS54KTpLTmUodCk6KHQ9bC5sZW5ndGgsZnVuY3Rpb24oYyl7Zm9yKHZhciB1PTAsaDt1PHQ7Kyt1KXNbKGg9bFt1XSkuaV09aC54KGMpO3JldHVybiBzLmpvaW4oIiIpfSl9dmFyIEhudCxCbnQsUFl0PU0oKCk9PntqeigpO0hudD0vWy0rXT8oPzpcZCtcLj9cZCp8XC4/XGQrKSg/OltlRV1bLStdP1xkKyk/L2csQm50PW5ldyBSZWdFeHAoSG50LnNvdXJjZSwiZyIpfSk7ZnVuY3Rpb24gVW50KGUsdCxyLG4saSxvKXt2YXIgYSxzLGw7cmV0dXJuKGE9TWF0aC5zcXJ0KGUqZSt0KnQpKSYmKGUvPWEsdC89YSksKGw9ZSpyK3QqbikmJihyLT1lKmwsbi09dCpsKSwocz1NYXRoLnNxcnQocipyK24qbikpJiYoci89cyxuLz1zLGwvPXMpLGUqbjx0KnImJihlPS1lLHQ9LXQsbD0tbCxhPS1hKSx7dHJhbnNsYXRlWDppLHRyYW5zbGF0ZVk6byxyb3RhdGU6TWF0aC5hdGFuMih0LGUpKklZdCxza2V3WDpNYXRoLmF0YW4obCkqSVl0LHNjYWxlWDphLHNjYWxlWTpzfX12YXIgSVl0LFh6LExZdD1NKCgpPT57SVl0PTE4MC9NYXRoLlBJLFh6PXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9fSk7ZnVuY3Rpb24gUll0KGUpe3JldHVybiBlPT09Im5vbmUiP1h6OihUQXx8KFRBPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLHFudD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsa1l0PWRvY3VtZW50LmRlZmF1bHRWaWV3KSxUQS5zdHlsZS50cmFuc2Zvcm09ZSxlPWtZdC5nZXRDb21wdXRlZFN0eWxlKHFudC5hcHBlbmRDaGlsZChUQSksbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgidHJhbnNmb3JtIikscW50LnJlbW92ZUNoaWxkKFRBKSxlPWUuc2xpY2UoNywtMSkuc3BsaXQoIiwiKSxVbnQoK2VbMF0sK2VbMV0sK2VbMl0sK2VbM10sK2VbNF0sK2VbNV0pKX1mdW5jdGlvbiBOWXQoZSl7cmV0dXJuIGU9PW51bGw/WHo6KCR6fHwoJHo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKSksJHouc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLGUpLChlPSR6LnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCkpPyhlPWUubWF0cml4LFVudChlLmEsZS5iLGUuYyxlLmQsZS5lLGUuZikpOlh6KX12YXIgVEEscW50LGtZdCwkeixEWXQ9TSgoKT0+e0xZdCgpfSk7ZnVuY3Rpb24gT1l0KGUsdCxyLG4pe2Z1bmN0aW9uIGkoYyl7cmV0dXJuIGMubGVuZ3RoP2MucG9wKCkrIiAiOiIifWZ1bmN0aW9uIG8oYyx1LGgsZixwLGQpe2lmKGMhPT1ofHx1IT09Zil7dmFyIGc9cC5wdXNoKCJ0cmFuc2xhdGUoIixudWxsLHQsbnVsbCxyKTtkLnB1c2goe2k6Zy00LHg6SWMoYyxoKX0se2k6Zy0yLHg6SWModSxmKX0pfWVsc2UoaHx8ZikmJnAucHVzaCgidHJhbnNsYXRlKCIraCt0K2Yrcil9ZnVuY3Rpb24gYShjLHUsaCxmKXtjIT09dT8oYy11PjE4MD91Kz0zNjA6dS1jPjE4MCYmKGMrPTM2MCksZi5wdXNoKHtpOmgucHVzaChpKGgpKyJyb3RhdGUoIixudWxsLG4pLTIseDpJYyhjLHUpfSkpOnUmJmgucHVzaChpKGgpKyJyb3RhdGUoIit1K24pfWZ1bmN0aW9uIHMoYyx1LGgsZil7YyE9PXU/Zi5wdXNoKHtpOmgucHVzaChpKGgpKyJza2V3WCgiLG51bGwsbiktMix4OkljKGMsdSl9KTp1JiZoLnB1c2goaShoKSsic2tld1goIit1K24pfWZ1bmN0aW9uIGwoYyx1LGgsZixwLGQpe2lmKGMhPT1ofHx1IT09Zil7dmFyIGc9cC5wdXNoKGkocCkrInNjYWxlKCIsbnVsbCwiLCIsbnVsbCwiKSIpO2QucHVzaCh7aTpnLTQseDpJYyhjLGgpfSx7aTpnLTIseDpJYyh1LGYpfSl9ZWxzZShoIT09MXx8ZiE9PTEpJiZwLnB1c2goaShwKSsic2NhbGUoIitoKyIsIitmKyIpIil9cmV0dXJuIGZ1bmN0aW9uKGMsdSl7dmFyIGg9W10sZj1bXTtyZXR1cm4gYz1lKGMpLHU9ZSh1KSxvKGMudHJhbnNsYXRlWCxjLnRyYW5zbGF0ZVksdS50cmFuc2xhdGVYLHUudHJhbnNsYXRlWSxoLGYpLGEoYy5yb3RhdGUsdS5yb3RhdGUsaCxmKSxzKGMuc2tld1gsdS5za2V3WCxoLGYpLGwoYy5zY2FsZVgsYy5zY2FsZVksdS5zY2FsZVgsdS5zY2FsZVksaCxmKSxjPXU9bnVsbCxmdW5jdGlvbihwKXtmb3IodmFyIGQ9LTEsZz1mLmxlbmd0aCxfOysrZDxnOyloWyhfPWZbZF0pLmldPV8ueChwKTtyZXR1cm4gaC5qb2luKCIiKX19fXZhciBHbnQsV250LHpZdD1NKCgpPT57anooKTtEWXQoKTtHbnQ9T1l0KFJZdCwicHgsICIsInB4KSIsImRlZykiKSxXbnQ9T1l0KE5ZdCwiLCAiLCIpIiwiKSIpfSk7ZnVuY3Rpb24gQll0KGUpe3JldHVybigoZT1NYXRoLmV4cChlKSkrMS9lKS8yfWZ1bmN0aW9uIFFOZShlKXtyZXR1cm4oKGU9TWF0aC5leHAoZSkpLTEvZSkvMn1mdW5jdGlvbiB0RGUoZSl7cmV0dXJuKChlPU1hdGguZXhwKDIqZSkpLTEpLyhlKzEpfWZ1bmN0aW9uIGpudChlLHQpe3ZhciByPWVbMF0sbj1lWzFdLGk9ZVsyXSxvPXRbMF0sYT10WzFdLHM9dFsyXSxsPW8tcixjPWEtbix1PWwqbCtjKmMsaCxmO2lmKHU8Sk5lKWY9TWF0aC5sb2cocy9pKS9DQSxoPWZ1bmN0aW9uKHgpe3JldHVybltyK3gqbCxuK3gqYyxpKk1hdGguZXhwKENBKngqZildfTtlbHNle3ZhciBwPU1hdGguc3FydCh1KSxkPShzKnMtaSppK0ZZdCp1KS8oMippKlludCpwKSxnPShzKnMtaSppLUZZdCp1KS8oMipzKlludCpwKSxfPU1hdGgubG9nKE1hdGguc3FydChkKmQrMSktZCkseT1NYXRoLmxvZyhNYXRoLnNxcnQoZypnKzEpLWcpO2Y9KHktXykvQ0EsaD1mdW5jdGlvbih4KXt2YXIgYj14KmYsUz1CWXQoXyksQz1pLyhZbnQqcCkqKFMqdERlKENBKmIrXyktUU5lKF8pKTtyZXR1cm5bcitDKmwsbitDKmMsaSpTL0JZdChDQSpiK18pXX19cmV0dXJuIGguZHVyYXRpb249ZioxZTMsaH12YXIgQ0EsWW50LEZZdCxKTmUsSFl0PU0oKCk9PntDQT1NYXRoLlNRUlQyLFludD0yLEZZdD00LEpOZT0xZS0xMn0pO3ZhciBBQT1NKCgpPT57anooKTtQWXQoKTt6WXQoKTtIWXQoKTtBWXQoKX0pO2Z1bmN0aW9uIGxTKCl7cmV0dXJuIFB2fHwocVl0KGVEZSksUHY9a0Eubm93KCkrSnopfWZ1bmN0aW9uIGVEZSgpe1B2PTB9ZnVuY3Rpb24gUkEoKXt0aGlzLl9jYWxsPXRoaXMuX3RpbWU9dGhpcy5fbmV4dD1udWxsfWZ1bmN0aW9uIFF6KGUsdCxyKXt2YXIgbj1uZXcgUkE7cmV0dXJuIG4ucmVzdGFydChlLHQsciksbn1mdW5jdGlvbiBHWXQoKXtsUygpLCsrc1M7Zm9yKHZhciBlPUt6LHQ7ZTspKHQ9UHYtZS5fdGltZSk+PTAmJmUuX2NhbGwuY2FsbChudWxsLHQpLGU9ZS5fbmV4dDstLXNTfWZ1bmN0aW9uIFZZdCgpe1B2PShaej1rQS5ub3coKSkrSnosc1M9SUE9MDt0cnl7R1l0KCl9ZmluYWxseXtzUz0wLG5EZSgpLFB2PTB9fWZ1bmN0aW9uIHJEZSgpe3ZhciBlPWtBLm5vdygpLHQ9ZS1aejt0PlVZdCYmKEp6LT10LFp6PWUpfWZ1bmN0aW9uIG5EZSgpe2Zvcih2YXIgZSx0PUt6LHIsbj0xLzA7dDspdC5fY2FsbD8obj50Ll90aW1lJiYobj10Ll90aW1lKSxlPXQsdD10Ll9uZXh0KToocj10Ll9uZXh0LHQuX25leHQ9bnVsbCx0PWU/ZS5fbmV4dD1yOkt6PXIpO0xBPWUsWG50KG4pfWZ1bmN0aW9uIFhudChlKXtpZighc1Mpe0lBJiYoSUE9Y2xlYXJUaW1lb3V0KElBKSk7dmFyIHQ9ZS1Qdjt0PjI0PyhlPDEvMCYmKElBPXNldFRpbWVvdXQoVll0LGUta0Eubm93KCktSnopKSxQQSYmKFBBPWNsZWFySW50ZXJ2YWwoUEEpKSk6KFBBfHwoWno9a0Eubm93KCksUEE9c2V0SW50ZXJ2YWwockRlLFVZdCkpLHNTPTEscVl0KFZZdCkpfX12YXIgc1MsSUEsUEEsVVl0LEt6LExBLFp6LFB2LEp6LGtBLHFZdCwkbnQ9TSgoKT0+e3NTPTAsSUE9MCxQQT0wLFVZdD0xZTMsWno9MCxQdj0wLEp6PTAsa0E9dHlwZW9mIHBlcmZvcm1hbmNlPT0ib2JqZWN0IiYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlOkRhdGUscVl0PXR5cGVvZiB3aW5kb3c9PSJvYmplY3QiJiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoZSwxNyl9O1JBLnByb3RvdHlwZT1Rei5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlJBLHJlc3RhcnQ6ZnVuY3Rpb24oZSx0LHIpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uIik7cj0ocj09bnVsbD9sUygpOityKSsodD09bnVsbD8wOit0KSwhdGhpcy5fbmV4dCYmTEEhPT10aGlzJiYoTEE/TEEuX25leHQ9dGhpczpLej10aGlzLExBPXRoaXMpLHRoaXMuX2NhbGw9ZSx0aGlzLl90aW1lPXIsWG50KCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLl9jYWxsJiYodGhpcy5fY2FsbD1udWxsLHRoaXMuX3RpbWU9MS8wLFhudCgpKX19fSk7ZnVuY3Rpb24gdEYoZSx0LHIpe3ZhciBuPW5ldyBSQTtyZXR1cm4gdD10PT1udWxsPzA6K3Qsbi5yZXN0YXJ0KGZ1bmN0aW9uKGkpe24uc3RvcCgpLGUoaSt0KX0sdCxyKSxufXZhciBXWXQ9TSgoKT0+eyRudCgpfSk7dmFyIEtudD1NKCgpPT57JG50KCk7V1l0KCl9KTtmdW5jdGlvbiBXZyhlLHQscixuLGksbyl7dmFyIGE9ZS5fX3RyYW5zaXRpb247aWYoIWEpZS5fX3RyYW5zaXRpb249e307ZWxzZSBpZihyIGluIGEpcmV0dXJuO2FEZShlLHIse25hbWU6dCxpbmRleDpuLGdyb3VwOmksb246aURlLHR3ZWVuOm9EZSx0aW1lOm8udGltZSxkZWxheTpvLmRlbGF5LGR1cmF0aW9uOm8uZHVyYXRpb24sZWFzZTpvLmVhc2UsdGltZXI6bnVsbCxzdGF0ZTpqWXR9KX1mdW5jdGlvbiBEQShlLHQpe3ZhciByPW9vKGUsdCk7aWYoci5zdGF0ZT5qWXQpdGhyb3cgbmV3IEVycm9yKCJ0b28gbGF0ZTsgYWxyZWFkeSBzY2hlZHVsZWQiKTtyZXR1cm4gcn1mdW5jdGlvbiBRYShlLHQpe3ZhciByPW9vKGUsdCk7aWYoci5zdGF0ZT5lRil0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHJ1bm5pbmciKTtyZXR1cm4gcn1mdW5jdGlvbiBvbyhlLHQpe3ZhciByPWUuX190cmFuc2l0aW9uO2lmKCFyfHwhKHI9clt0XSkpdGhyb3cgbmV3IEVycm9yKCJ0cmFuc2l0aW9uIG5vdCBmb3VuZCIpO3JldHVybiByfWZ1bmN0aW9uIGFEZShlLHQscil7dmFyIG49ZS5fX3RyYW5zaXRpb24saTtuW3RdPXIsci50aW1lcj1ReihvLDAsci50aW1lKTtmdW5jdGlvbiBvKGMpe3Iuc3RhdGU9Wm50LHIudGltZXIucmVzdGFydChhLHIuZGVsYXksci50aW1lKSxyLmRlbGF5PD1jJiZhKGMtci5kZWxheSl9ZnVuY3Rpb24gYShjKXt2YXIgdSxoLGYscDtpZihyLnN0YXRlIT09Wm50KXJldHVybiBsKCk7Zm9yKHUgaW4gbilpZihwPW5bdV0scC5uYW1lPT09ci5uYW1lKXtpZihwLnN0YXRlPT09ZUYpcmV0dXJuIHRGKGEpO3Auc3RhdGU9PT1ZWXQ/KHAuc3RhdGU9TkEscC50aW1lci5zdG9wKCkscC5vbi5jYWxsKCJpbnRlcnJ1cHQiLGUsZS5fX2RhdGFfXyxwLmluZGV4LHAuZ3JvdXApLGRlbGV0ZSBuW3VdKTordTx0JiYocC5zdGF0ZT1OQSxwLnRpbWVyLnN0b3AoKSxwLm9uLmNhbGwoImNhbmNlbCIsZSxlLl9fZGF0YV9fLHAuaW5kZXgscC5ncm91cCksZGVsZXRlIG5bdV0pfWlmKHRGKGZ1bmN0aW9uKCl7ci5zdGF0ZT09PWVGJiYoci5zdGF0ZT1ZWXQsci50aW1lci5yZXN0YXJ0KHMsci5kZWxheSxyLnRpbWUpLHMoYykpfSksci5zdGF0ZT1yRixyLm9uLmNhbGwoInN0YXJ0IixlLGUuX19kYXRhX18sci5pbmRleCxyLmdyb3VwKSxyLnN0YXRlPT09ckYpe2ZvcihyLnN0YXRlPWVGLGk9bmV3IEFycmF5KGY9ci50d2Vlbi5sZW5ndGgpLHU9MCxoPS0xO3U8ZjsrK3UpKHA9ci50d2Vlblt1XS52YWx1ZS5jYWxsKGUsZS5fX2RhdGFfXyxyLmluZGV4LHIuZ3JvdXApKSYmKGlbKytoXT1wKTtpLmxlbmd0aD1oKzF9fWZ1bmN0aW9uIHMoYyl7Zm9yKHZhciB1PWM8ci5kdXJhdGlvbj9yLmVhc2UuY2FsbChudWxsLGMvci5kdXJhdGlvbik6KHIudGltZXIucmVzdGFydChsKSxyLnN0YXRlPW5GLDEpLGg9LTEsZj1pLmxlbmd0aDsrK2g8ZjspaVtoXS5jYWxsKGUsdSk7ci5zdGF0ZT09PW5GJiYoci5vbi5jYWxsKCJlbmQiLGUsZS5fX2RhdGFfXyxyLmluZGV4LHIuZ3JvdXApLGwoKSl9ZnVuY3Rpb24gbCgpe3Iuc3RhdGU9TkEsci50aW1lci5zdG9wKCksZGVsZXRlIG5bdF07Zm9yKHZhciBjIGluIG4pcmV0dXJuO2RlbGV0ZSBlLl9fdHJhbnNpdGlvbn19dmFyIGlEZSxvRGUsall0LFpudCxyRixlRixZWXQsbkYsTkEsa3M9TSgoKT0+e21udCgpO0tudCgpO2lEZT12QSgic3RhcnQiLCJlbmQiLCJjYW5jZWwiLCJpbnRlcnJ1cHQiKSxvRGU9W10sall0PTAsWm50PTEsckY9MixlRj0zLFlZdD00LG5GPTUsTkE9Nn0pO2Z1bmN0aW9uIEl2KGUsdCl7dmFyIHI9ZS5fX3RyYW5zaXRpb24sbixpLG89ITAsYTtpZighIXIpe3Q9dD09bnVsbD9udWxsOnQrIiI7Zm9yKGEgaW4gcil7aWYoKG49clthXSkubmFtZSE9PXQpe289ITE7Y29udGludWV9aT1uLnN0YXRlPnJGJiZuLnN0YXRlPG5GLG4uc3RhdGU9TkEsbi50aW1lci5zdG9wKCksbi5vbi5jYWxsKGk/ImludGVycnVwdCI6ImNhbmNlbCIsZSxlLl9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCksZGVsZXRlIHJbYV19byYmZGVsZXRlIGUuX190cmFuc2l0aW9ufX12YXIgSm50PU0oKCk9PntrcygpfSk7ZnVuY3Rpb24gWFl0KGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtJdih0aGlzLGUpfSl9dmFyICRZdD1NKCgpPT57Sm50KCl9KTtmdW5jdGlvbiBzRGUoZSx0KXt2YXIgcixuO3JldHVybiBmdW5jdGlvbigpe3ZhciBpPVFhKHRoaXMsZSksbz1pLnR3ZWVuO2lmKG8hPT1yKXtuPXI9bztmb3IodmFyIGE9MCxzPW4ubGVuZ3RoO2E8czsrK2EpaWYoblthXS5uYW1lPT09dCl7bj1uLnNsaWNlKCksbi5zcGxpY2UoYSwxKTticmVha319aS50d2Vlbj1ufX1mdW5jdGlvbiBsRGUoZSx0LHIpe3ZhciBuLGk7aWYodHlwZW9mIHIhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPVFhKHRoaXMsZSksYT1vLnR3ZWVuO2lmKGEhPT1uKXtpPShuPWEpLnNsaWNlKCk7Zm9yKHZhciBzPXtuYW1lOnQsdmFsdWU6cn0sbD0wLGM9aS5sZW5ndGg7bDxjOysrbClpZihpW2xdLm5hbWU9PT10KXtpW2xdPXM7YnJlYWt9bD09PWMmJmkucHVzaChzKX1vLnR3ZWVuPWl9fWZ1bmN0aW9uIEtZdChlLHQpe3ZhciByPXRoaXMuX2lkO2lmKGUrPSIiLGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBuPW9vKHRoaXMubm9kZSgpLHIpLnR3ZWVuLGk9MCxvPW4ubGVuZ3RoLGE7aTxvOysraSlpZigoYT1uW2ldKS5uYW1lPT09ZSlyZXR1cm4gYS52YWx1ZTtyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5lYWNoKCh0PT1udWxsP3NEZTpsRGUpKHIsZSx0KSl9ZnVuY3Rpb24gY1MoZSx0LHIpe3ZhciBuPWUuX2lkO3JldHVybiBlLmVhY2goZnVuY3Rpb24oKXt2YXIgaT1RYSh0aGlzLG4pOyhpLnZhbHVlfHwoaS52YWx1ZT17fSkpW3RdPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksZnVuY3Rpb24oaSl7cmV0dXJuIG9vKGksbikudmFsdWVbdF19fXZhciBPQT1NKCgpPT57a3MoKX0pO2Z1bmN0aW9uIGlGKGUsdCl7dmFyIHI7cmV0dXJuKHR5cGVvZiB0PT0ibnVtYmVyIj9JYzp0IGluc3RhbmNlb2YgR2c/WXo6KHI9R2codCkpPyh0PXIsWXopOlZudCkoZSx0KX12YXIgUW50PU0oKCk9PntEbnQoKTtBQSgpfSk7ZnVuY3Rpb24gY0RlKGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKGUpfX1mdW5jdGlvbiB1RGUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpfX1mdW5jdGlvbiBoRGUoZSx0LHIpe3ZhciBuLGk9cisiIixvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0QXR0cmlidXRlKGUpO3JldHVybiBhPT09aT9udWxsOmE9PT1uP286bz10KG49YSxyKX19ZnVuY3Rpb24gZkRlKGUsdCxyKXt2YXIgbixpPXIrIiIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT10aGlzLmdldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCk7cmV0dXJuIGE9PT1pP251bGw6YT09PW4/bzpvPXQobj1hLHIpfX1mdW5jdGlvbiBwRGUoZSx0LHIpe3ZhciBuLGksbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzPXIodGhpcyksbDtyZXR1cm4gcz09bnVsbD92b2lkIHRoaXMucmVtb3ZlQXR0cmlidXRlKGUpOihhPXRoaXMuZ2V0QXR0cmlidXRlKGUpLGw9cysiIixhPT09bD9udWxsOmE9PT1uJiZsPT09aT9vOihpPWwsbz10KG49YSxzKSkpfX1mdW5jdGlvbiBkRGUoZSx0LHIpe3ZhciBuLGksbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzPXIodGhpcyksbDtyZXR1cm4gcz09bnVsbD92b2lkIHRoaXMucmVtb3ZlQXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsKTooYT10aGlzLmdldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCksbD1zKyIiLGE9PT1sP251bGw6YT09PW4mJmw9PT1pP286KGk9bCxvPXQobj1hLHMpKSl9fWZ1bmN0aW9uIFpZdChlLHQpe3ZhciByPWZkKGUpLG49cj09PSJ0cmFuc2Zvcm0iP1dudDppRjtyZXR1cm4gdGhpcy5hdHRyVHdlZW4oZSx0eXBlb2YgdD09ImZ1bmN0aW9uIj8oci5sb2NhbD9kRGU6cERlKShyLG4sY1ModGhpcywiYXR0ci4iK2UsdCkpOnQ9PW51bGw/KHIubG9jYWw/dURlOmNEZSkocik6KHIubG9jYWw/ZkRlOmhEZSkocixuLHQpKX12YXIgSll0PU0oKCk9PntBQSgpO0xzKCk7T0EoKTtRbnQoKX0pO2Z1bmN0aW9uIG1EZShlLHQpe3JldHVybiBmdW5jdGlvbihyKXt0aGlzLnNldEF0dHJpYnV0ZShlLHQuY2FsbCh0aGlzLHIpKX19ZnVuY3Rpb24gZ0RlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHIpe3RoaXMuc2V0QXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsLHQuY2FsbCh0aGlzLHIpKX19ZnVuY3Rpb24gX0RlKGUsdCl7dmFyIHIsbjtmdW5jdGlvbiBpKCl7dmFyIG89dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG8hPT1uJiYocj0obj1vKSYmZ0RlKGUsbykpLHJ9cmV0dXJuIGkuX3ZhbHVlPXQsaX1mdW5jdGlvbiB5RGUoZSx0KXt2YXIgcixuO2Z1bmN0aW9uIGkoKXt2YXIgbz10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gbyE9PW4mJihyPShuPW8pJiZtRGUoZSxvKSkscn1yZXR1cm4gaS5fdmFsdWU9dCxpfWZ1bmN0aW9uIFFZdChlLHQpe3ZhciByPSJhdHRyLiIrZTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKHI9dGhpcy50d2VlbihyKSkmJnIuX3ZhbHVlO2lmKHQ9PW51bGwpcmV0dXJuIHRoaXMudHdlZW4ocixudWxsKTtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3I7dmFyIG49ZmQoZSk7cmV0dXJuIHRoaXMudHdlZW4ociwobi5sb2NhbD9fRGU6eURlKShuLHQpKX12YXIgdGp0PU0oKCk9PntMcygpfSk7ZnVuY3Rpb24gdkRlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7REEodGhpcyxlKS5kZWxheT0rdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIHhEZShlLHQpe3JldHVybiB0PSt0LGZ1bmN0aW9uKCl7REEodGhpcyxlKS5kZWxheT10fX1mdW5jdGlvbiBlanQoZSl7dmFyIHQ9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCh0eXBlb2YgZT09ImZ1bmN0aW9uIj92RGU6eERlKSh0LGUpKTpvbyh0aGlzLm5vZGUoKSx0KS5kZWxheX12YXIgcmp0PU0oKCk9PntrcygpfSk7ZnVuY3Rpb24gYkRlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7UWEodGhpcyxlKS5kdXJhdGlvbj0rdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIHdEZShlLHQpe3JldHVybiB0PSt0LGZ1bmN0aW9uKCl7UWEodGhpcyxlKS5kdXJhdGlvbj10fX1mdW5jdGlvbiBuanQoZSl7dmFyIHQ9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCh0eXBlb2YgZT09ImZ1bmN0aW9uIj9iRGU6d0RlKSh0LGUpKTpvbyh0aGlzLm5vZGUoKSx0KS5kdXJhdGlvbn12YXIgaWp0PU0oKCk9PntrcygpfSk7ZnVuY3Rpb24gU0RlKGUsdCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe1FhKHRoaXMsZSkuZWFzZT10fX1mdW5jdGlvbiBvanQoZSl7dmFyIHQ9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKFNEZSh0LGUpKTpvbyh0aGlzLm5vZGUoKSx0KS5lYXNlfXZhciBhanQ9TSgoKT0+e2tzKCl9KTtmdW5jdGlvbiBzanQoZSl7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPWJBKGUpKTtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9dC5sZW5ndGgsbj1uZXcgQXJyYXkociksaT0wO2k8cjsrK2kpZm9yKHZhciBvPXRbaV0sYT1vLmxlbmd0aCxzPW5baV09W10sbCxjPTA7YzxhOysrYykobD1vW2NdKSYmZS5jYWxsKGwsbC5fX2RhdGFfXyxjLG8pJiZzLnB1c2gobCk7cmV0dXJuIG5ldyBtYShuLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9dmFyIGxqdD1NKCgpPT57THMoKTttZCgpfSk7ZnVuY3Rpb24gY2p0KGUpe2lmKGUuX2lkIT09dGhpcy5faWQpdGhyb3cgbmV3IEVycm9yO2Zvcih2YXIgdD10aGlzLl9ncm91cHMscj1lLl9ncm91cHMsbj10Lmxlbmd0aCxpPXIubGVuZ3RoLG89TWF0aC5taW4obixpKSxhPW5ldyBBcnJheShuKSxzPTA7czxvOysrcylmb3IodmFyIGw9dFtzXSxjPXJbc10sdT1sLmxlbmd0aCxoPWFbc109bmV3IEFycmF5KHUpLGYscD0wO3A8dTsrK3ApKGY9bFtwXXx8Y1twXSkmJihoW3BdPWYpO2Zvcig7czxuOysrcylhW3NdPXRbc107cmV0dXJuIG5ldyBtYShhLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9dmFyIHVqdD1NKCgpPT57bWQoKX0pO2Z1bmN0aW9uIE1EZShlKXtyZXR1cm4oZSsiIikudHJpbSgpLnNwbGl0KC9efFxzKy8pLmV2ZXJ5KGZ1bmN0aW9uKHQpe3ZhciByPXQuaW5kZXhPZigiLiIpO3JldHVybiByPj0wJiYodD10LnNsaWNlKDAscikpLCF0fHx0PT09InN0YXJ0In0pfWZ1bmN0aW9uIEVEZShlLHQscil7dmFyIG4saSxvPU1EZSh0KT9EQTpRYTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1vKHRoaXMsZSkscz1hLm9uO3MhPT1uJiYoaT0obj1zKS5jb3B5KCkpLm9uKHQsciksYS5vbj1pfX1mdW5jdGlvbiBoanQoZSx0KXt2YXIgcj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP29vKHRoaXMubm9kZSgpLHIpLm9uLm9uKGUpOnRoaXMuZWFjaChFRGUocixlLHQpKX12YXIgZmp0PU0oKCk9PntrcygpfSk7ZnVuY3Rpb24gVERlKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTtmb3IodmFyIHIgaW4gdGhpcy5fX3RyYW5zaXRpb24paWYoK3IhPT1lKXJldHVybjt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfX1mdW5jdGlvbiBwanQoKXtyZXR1cm4gdGhpcy5vbigiZW5kLnJlbW92ZSIsVERlKHRoaXMuX2lkKSl9dmFyIGRqdD1NKCgpPT57fSk7ZnVuY3Rpb24gbWp0KGUpe3ZhciB0PXRoaXMuX25hbWUscj10aGlzLl9pZDt0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmKGU9QXYoZSkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsaT1uLmxlbmd0aCxvPW5ldyBBcnJheShpKSxhPTA7YTxpOysrYSlmb3IodmFyIHM9blthXSxsPXMubGVuZ3RoLGM9b1thXT1uZXcgQXJyYXkobCksdSxoLGY9MDtmPGw7KytmKSh1PXNbZl0pJiYoaD1lLmNhbGwodSx1Ll9fZGF0YV9fLGYscykpJiYoIl9fZGF0YV9fImluIHUmJihoLl9fZGF0YV9fPXUuX19kYXRhX18pLGNbZl09aCxXZyhjW2ZdLHQscixmLGMsb28odSxyKSkpO3JldHVybiBuZXcgbWEobyx0aGlzLl9wYXJlbnRzLHQscil9dmFyIGdqdD1NKCgpPT57THMoKTttZCgpO2tzKCl9KTtmdW5jdGlvbiBfanQoZSl7dmFyIHQ9dGhpcy5fbmFtZSxyPXRoaXMuX2lkO3R5cGVvZiBlIT0iZnVuY3Rpb24iJiYoZT14QShlKSk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLG89W10sYT1bXSxzPTA7czxpOysrcylmb3IodmFyIGw9bltzXSxjPWwubGVuZ3RoLHUsaD0wO2g8YzsrK2gpaWYodT1sW2hdKXtmb3IodmFyIGY9ZS5jYWxsKHUsdS5fX2RhdGFfXyxoLGwpLHAsZD1vbyh1LHIpLGc9MCxfPWYubGVuZ3RoO2c8XzsrK2cpKHA9ZltnXSkmJldnKHAsdCxyLGcsZixkKTtvLnB1c2goZiksYS5wdXNoKHUpfXJldHVybiBuZXcgbWEobyxhLHQscil9dmFyIHlqdD1NKCgpPT57THMoKTttZCgpO2tzKCl9KTtmdW5jdGlvbiB2anQoKXtyZXR1cm4gbmV3IENEZSh0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9dmFyIENEZSx4anQ9TSgoKT0+e0xzKCk7Q0RlPXBkLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcn0pO2Z1bmN0aW9uIEFEZShlLHQpe3ZhciByLG4saTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1xZyh0aGlzLGUpLGE9KHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoZSkscWcodGhpcyxlKSk7cmV0dXJuIG89PT1hP251bGw6bz09PXImJmE9PT1uP2k6aT10KHI9byxuPWEpfX1mdW5jdGlvbiBianQoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShlKX19ZnVuY3Rpb24gUERlKGUsdCxyKXt2YXIgbixpPXIrIiIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1xZyh0aGlzLGUpO3JldHVybiBhPT09aT9udWxsOmE9PT1uP286bz10KG49YSxyKX19ZnVuY3Rpb24gSURlKGUsdCxyKXt2YXIgbixpLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9cWcodGhpcyxlKSxzPXIodGhpcyksbD1zKyIiO3JldHVybiBzPT1udWxsJiYobD1zPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KGUpLHFnKHRoaXMsZSkpKSxhPT09bD9udWxsOmE9PT1uJiZsPT09aT9vOihpPWwsbz10KG49YSxzKSl9fWZ1bmN0aW9uIExEZShlLHQpe3ZhciByLG4saSxvPSJzdHlsZS4iK3QsYT0iZW5kLiIrbyxzO3JldHVybiBmdW5jdGlvbigpe3ZhciBsPVFhKHRoaXMsZSksYz1sLm9uLHU9bC52YWx1ZVtvXT09bnVsbD9zfHwocz1ianQodCkpOnZvaWQgMDsoYyE9PXJ8fGkhPT11KSYmKG49KHI9YykuY29weSgpKS5vbihhLGk9dSksbC5vbj1ufX1mdW5jdGlvbiB3anQoZSx0LHIpe3ZhciBuPShlKz0iIik9PSJ0cmFuc2Zvcm0iP0dudDppRjtyZXR1cm4gdD09bnVsbD90aGlzLnN0eWxlVHdlZW4oZSxBRGUoZSxuKSkub24oImVuZC5zdHlsZS4iK2UsYmp0KGUpKTp0eXBlb2YgdD09ImZ1bmN0aW9uIj90aGlzLnN0eWxlVHdlZW4oZSxJRGUoZSxuLGNTKHRoaXMsInN0eWxlLiIrZSx0KSkpLmVhY2goTERlKHRoaXMuX2lkLGUpKTp0aGlzLnN0eWxlVHdlZW4oZSxQRGUoZSxuLHQpLHIpLm9uKCJlbmQuc3R5bGUuIitlLG51bGwpfXZhciBTanQ9TSgoKT0+e0FBKCk7THMoKTtrcygpO09BKCk7UW50KCl9KTtmdW5jdGlvbiBrRGUoZSx0LHIpe3JldHVybiBmdW5jdGlvbihuKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KGUsdC5jYWxsKHRoaXMsbikscil9fWZ1bmN0aW9uIFJEZShlLHQscil7dmFyIG4saTtmdW5jdGlvbiBvKCl7dmFyIGE9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGEhPT1pJiYobj0oaT1hKSYma0RlKGUsYSxyKSksbn1yZXR1cm4gby5fdmFsdWU9dCxvfWZ1bmN0aW9uIE1qdChlLHQscil7dmFyIG49InN0eWxlLiIrKGUrPSIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKG49dGhpcy50d2VlbihuKSkmJm4uX3ZhbHVlO2lmKHQ9PW51bGwpcmV0dXJuIHRoaXMudHdlZW4obixudWxsKTtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4obixSRGUoZSx0LHI9PW51bGw/IiI6cikpfXZhciBFanQ9TSgoKT0+e30pO2Z1bmN0aW9uIE5EZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PWV9fWZ1bmN0aW9uIEREZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO3RoaXMudGV4dENvbnRlbnQ9dD09bnVsbD8iIjp0fX1mdW5jdGlvbiBUanQoZSl7cmV0dXJuIHRoaXMudHdlZW4oInRleHQiLHR5cGVvZiBlPT0iZnVuY3Rpb24iP0REZShjUyh0aGlzLCJ0ZXh0IixlKSk6TkRlKGU9PW51bGw/IiI6ZSsiIikpfXZhciBDanQ9TSgoKT0+e09BKCl9KTtmdW5jdGlvbiBPRGUoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3RoaXMudGV4dENvbnRlbnQ9ZS5jYWxsKHRoaXMsdCl9fWZ1bmN0aW9uIHpEZShlKXt2YXIgdCxyO2Z1bmN0aW9uIG4oKXt2YXIgaT1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gaSE9PXImJih0PShyPWkpJiZPRGUoaSkpLHR9cmV0dXJuIG4uX3ZhbHVlPWUsbn1mdW5jdGlvbiBBanQoZSl7dmFyIHQ9InRleHQiO2lmKGFyZ3VtZW50cy5sZW5ndGg8MSlyZXR1cm4odD10aGlzLnR3ZWVuKHQpKSYmdC5fdmFsdWU7aWYoZT09bnVsbClyZXR1cm4gdGhpcy50d2Vlbih0LG51bGwpO2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gdGhpcy50d2Vlbih0LHpEZShlKSl9dmFyIFBqdD1NKCgpPT57fSk7ZnVuY3Rpb24gSWp0KCl7Zm9yKHZhciBlPXRoaXMuX25hbWUsdD10aGlzLl9pZCxyPW9GKCksbj10aGlzLl9ncm91cHMsaT1uLmxlbmd0aCxvPTA7bzxpOysrbylmb3IodmFyIGE9bltvXSxzPWEubGVuZ3RoLGwsYz0wO2M8czsrK2MpaWYobD1hW2NdKXt2YXIgdT1vbyhsLHQpO1dnKGwsZSxyLGMsYSx7dGltZTp1LnRpbWUrdS5kZWxheSt1LmR1cmF0aW9uLGRlbGF5OjAsZHVyYXRpb246dS5kdXJhdGlvbixlYXNlOnUuZWFzZX0pfXJldHVybiBuZXcgbWEobix0aGlzLl9wYXJlbnRzLGUscil9dmFyIExqdD1NKCgpPT57bWQoKTtrcygpfSk7ZnVuY3Rpb24ga2p0KCl7dmFyIGUsdCxyPXRoaXMsbj1yLl9pZCxpPXIuc2l6ZSgpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihvLGEpe3ZhciBzPXt2YWx1ZTphfSxsPXt2YWx1ZTpmdW5jdGlvbigpey0taT09PTAmJm8oKX19O3IuZWFjaChmdW5jdGlvbigpe3ZhciBjPVFhKHRoaXMsbiksdT1jLm9uO3UhPT1lJiYodD0oZT11KS5jb3B5KCksdC5fLmNhbmNlbC5wdXNoKHMpLHQuXy5pbnRlcnJ1cHQucHVzaChzKSx0Ll8uZW5kLnB1c2gobCkpLGMub249dH0pfSl9dmFyIFJqdD1NKCgpPT57a3MoKX0pO2Z1bmN0aW9uIG1hKGUsdCxyLG4pe3RoaXMuX2dyb3Vwcz1lLHRoaXMuX3BhcmVudHM9dCx0aGlzLl9uYW1lPXIsdGhpcy5faWQ9bn1mdW5jdGlvbiB0aXQoZSl7cmV0dXJuIHBkKCkudHJhbnNpdGlvbihlKX1mdW5jdGlvbiBvRigpe3JldHVybisrRkRlfXZhciBGRGUsdVMsbWQ9TSgoKT0+e0xzKCk7Sll0KCk7dGp0KCk7cmp0KCk7aWp0KCk7YWp0KCk7bGp0KCk7dWp0KCk7Zmp0KCk7ZGp0KCk7Z2p0KCk7eWp0KCk7eGp0KCk7U2p0KCk7RWp0KCk7Q2p0KCk7UGp0KCk7TGp0KCk7T0EoKTtSanQoKTtGRGU9MDt1Uz1wZC5wcm90b3R5cGU7bWEucHJvdG90eXBlPXRpdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOm1hLHNlbGVjdDptanQsc2VsZWN0QWxsOl9qdCxmaWx0ZXI6c2p0LG1lcmdlOmNqdCxzZWxlY3Rpb246dmp0LHRyYW5zaXRpb246SWp0LGNhbGw6dVMuY2FsbCxub2Rlczp1Uy5ub2Rlcyxub2RlOnVTLm5vZGUsc2l6ZTp1Uy5zaXplLGVtcHR5OnVTLmVtcHR5LGVhY2g6dVMuZWFjaCxvbjpoanQsYXR0cjpaWXQsYXR0clR3ZWVuOlFZdCxzdHlsZTp3anQsc3R5bGVUd2VlbjpNanQsdGV4dDpUanQsdGV4dFR3ZWVuOkFqdCxyZW1vdmU6cGp0LHR3ZWVuOktZdCxkZWxheTplanQsZHVyYXRpb246bmp0LGVhc2U6b2p0LGVuZDpranR9fSk7ZnVuY3Rpb24gQkRlKGUsdCl7Zm9yKHZhciByOyEocj1lLl9fdHJhbnNpdGlvbil8fCEocj1yW3RdKTspaWYoIShlPWUucGFyZW50Tm9kZSkpcmV0dXJuIGVpdC50aW1lPWxTKCksZWl0O3JldHVybiByfWZ1bmN0aW9uIE5qdChlKXt2YXIgdCxyO2UgaW5zdGFuY2VvZiBtYT8odD1lLl9pZCxlPWUuX25hbWUpOih0PW9GKCksKHI9ZWl0KS50aW1lPWxTKCksZT1lPT1udWxsP251bGw6ZSsiIik7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLG89MDtvPGk7KytvKWZvcih2YXIgYT1uW29dLHM9YS5sZW5ndGgsbCxjPTA7YzxzOysrYykobD1hW2NdKSYmV2cobCxlLHQsYyxhLHJ8fEJEZShsLHQpKTtyZXR1cm4gbmV3IG1hKG4sdGhpcy5fcGFyZW50cyxlLHQpfXZhciBlaXQsRGp0PU0oKCk9PnttZCgpO2tzKCk7TF8oKTtLbnQoKTtlaXQ9e3RpbWU6bnVsbCxkZWxheTowLGR1cmF0aW9uOjI1MCxlYXNlOmJzfX0pO3ZhciBPanQ9TSgoKT0+e0xzKCk7JFl0KCk7RGp0KCk7cGQucHJvdG90eXBlLmludGVycnVwdD1YWXQ7cGQucHJvdG90eXBlLnRyYW5zaXRpb249Tmp0fSk7dmFyIHpqdD1NKCgpPT57bWQoKTtrcygpfSk7dmFyIEZqdD1NKCgpPT57T2p0KCk7bWQoKTt6anQoKTtKbnQoKX0pO2Z1bmN0aW9uIHpBKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX12YXIgQmp0PU0oKCk9Pnt9KTtmdW5jdGlvbiByaXQoZSx0LHIpe3RoaXMudGFyZ2V0PWUsdGhpcy50eXBlPXQsdGhpcy50cmFuc2Zvcm09cn12YXIgSGp0PU0oKCk9Pnt9KTtmdW5jdGlvbiBJZihlLHQscil7dGhpcy5rPWUsdGhpcy54PXQsdGhpcy55PXJ9ZnVuY3Rpb24gYUYoZSl7cmV0dXJuIGUuX196b29tfHxoU312YXIgaFMsbml0PU0oKCk9PntJZi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOklmLHNjYWxlOmZ1bmN0aW9uKGUpe3JldHVybiBlPT09MT90aGlzOm5ldyBJZih0aGlzLmsqZSx0aGlzLngsdGhpcy55KX0sdHJhbnNsYXRlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT0wJnQ9PT0wP3RoaXM6bmV3IElmKHRoaXMuayx0aGlzLngrdGhpcy5rKmUsdGhpcy55K3RoaXMuayp0KX0sYXBwbHk6ZnVuY3Rpb24oZSl7cmV0dXJuW2VbMF0qdGhpcy5rK3RoaXMueCxlWzFdKnRoaXMuayt0aGlzLnldfSxhcHBseVg6ZnVuY3Rpb24oZSl7cmV0dXJuIGUqdGhpcy5rK3RoaXMueH0sYXBwbHlZOmZ1bmN0aW9uKGUpe3JldHVybiBlKnRoaXMuayt0aGlzLnl9LGludmVydDpmdW5jdGlvbihlKXtyZXR1cm5bKGVbMF0tdGhpcy54KS90aGlzLmssKGVbMV0tdGhpcy55KS90aGlzLmtdfSxpbnZlcnRYOmZ1bmN0aW9uKGUpe3JldHVybihlLXRoaXMueCkvdGhpcy5rfSxpbnZlcnRZOmZ1bmN0aW9uKGUpe3JldHVybihlLXRoaXMueSkvdGhpcy5rfSxyZXNjYWxlWDpmdW5jdGlvbihlKXtyZXR1cm4gZS5jb3B5KCkuZG9tYWluKGUucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRYLHRoaXMpLm1hcChlLmludmVydCxlKSl9LHJlc2NhbGVZOmZ1bmN0aW9uKGUpe3JldHVybiBlLmNvcHkoKS5kb21haW4oZS5yYW5nZSgpLm1hcCh0aGlzLmludmVydFksdGhpcykubWFwKGUuaW52ZXJ0LGUpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNsYXRlKCIrdGhpcy54KyIsIit0aGlzLnkrIikgc2NhbGUoIit0aGlzLmsrIikifX07aFM9bmV3IElmKDEsMCwwKTthRi5wcm90b3R5cGU9SWYucHJvdG90eXBlfSk7ZnVuY3Rpb24gc0YoKXtZci5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBmUygpe1lyLnByZXZlbnREZWZhdWx0KCksWXIuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9dmFyIFZqdD1NKCgpPT57THMoKX0pO2Z1bmN0aW9uIEhEZSgpe3JldHVybiFZci5idXR0b259ZnVuY3Rpb24gVkRlKCl7dmFyIGU9dGhpcyx0LHI7cmV0dXJuIGUgaW5zdGFuY2VvZiBTVkdFbGVtZW50PyhlPWUub3duZXJTVkdFbGVtZW50fHxlLHQ9ZS53aWR0aC5iYXNlVmFsLnZhbHVlLHI9ZS5oZWlnaHQuYmFzZVZhbC52YWx1ZSk6KHQ9ZS5jbGllbnRXaWR0aCxyPWUuY2xpZW50SGVpZ2h0KSxbWzAsMF0sW3Qscl1dfWZ1bmN0aW9uIFVqdCgpe3JldHVybiB0aGlzLl9fem9vbXx8aFN9ZnVuY3Rpb24gVURlKCl7cmV0dXJuLVlyLmRlbHRhWSooWXIuZGVsdGFNb2RlPzEyMDoxKS81MDB9ZnVuY3Rpb24gcURlKCl7cmV0dXJuIm9udG91Y2hzdGFydCJpbiB0aGlzfWZ1bmN0aW9uIEdEZShlLHQscil7dmFyIG49ZS5pbnZlcnRYKHRbMF1bMF0pLXJbMF1bMF0saT1lLmludmVydFgodFsxXVswXSktclsxXVswXSxvPWUuaW52ZXJ0WSh0WzBdWzFdKS1yWzBdWzFdLGE9ZS5pbnZlcnRZKHRbMV1bMV0pLXJbMV1bMV07cmV0dXJuIGUudHJhbnNsYXRlKGk+bj8obitpKS8yOk1hdGgubWluKDAsbil8fE1hdGgubWF4KDAsaSksYT5vPyhvK2EpLzI6TWF0aC5taW4oMCxvKXx8TWF0aC5tYXgoMCxhKSl9ZnVuY3Rpb24gcWp0KCl7dmFyIGU9SERlLHQ9VkRlLHI9R0RlLG49VURlLGk9cURlLG89WzAsMS8wXSxhPVtbLTEvMCwtMS8wXSxbMS8wLDEvMF1dLHM9MjUwLGw9am50LGM9W10sdT12QSgic3RhcnQiLCJ6b29tIiwiZW5kIiksaCxmLHA9NTAwLGQ9MTUwLGc9MDtmdW5jdGlvbiBfKFIpe1IucHJvcGVydHkoIl9fem9vbSIsVWp0KS5vbigid2hlZWwuem9vbSIsaykub24oIm1vdXNlZG93bi56b29tIixPKS5vbigiZGJsY2xpY2suem9vbSIsRCkuZmlsdGVyKGkpLm9uKCJ0b3VjaHN0YXJ0Lnpvb20iLEIpLm9uKCJ0b3VjaG1vdmUuem9vbSIsSSkub24oInRvdWNoZW5kLnpvb20gdG91Y2hjYW5jZWwuem9vbSIsTCkuc3R5bGUoInRvdWNoLWFjdGlvbiIsIm5vbmUiKS5zdHlsZSgiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIiwicmdiYSgwLDAsMCwwKSIpfV8udHJhbnNmb3JtPWZ1bmN0aW9uKFIsRil7dmFyIHo9Ui5zZWxlY3Rpb24/Ui5zZWxlY3Rpb24oKTpSO3oucHJvcGVydHkoIl9fem9vbSIsVWp0KSxSIT09ej9TKFIsRik6ei5pbnRlcnJ1cHQoKS5lYWNoKGZ1bmN0aW9uKCl7Qyh0aGlzLGFyZ3VtZW50cykuc3RhcnQoKS56b29tKG51bGwsdHlwZW9mIEY9PSJmdW5jdGlvbiI/Ri5hcHBseSh0aGlzLGFyZ3VtZW50cyk6RikuZW5kKCl9KX0sXy5zY2FsZUJ5PWZ1bmN0aW9uKFIsRil7Xy5zY2FsZVRvKFIsZnVuY3Rpb24oKXt2YXIgej10aGlzLl9fem9vbS5rLFU9dHlwZW9mIEY9PSJmdW5jdGlvbiI/Ri5hcHBseSh0aGlzLGFyZ3VtZW50cyk6RjtyZXR1cm4geipVfSl9LF8uc2NhbGVUbz1mdW5jdGlvbihSLEYpe18udHJhbnNmb3JtKFIsZnVuY3Rpb24oKXt2YXIgej10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxVPXRoaXMuX196b29tLFc9Yih6KSxaPVUuaW52ZXJ0KFcpLHJ0PXR5cGVvZiBGPT0iZnVuY3Rpb24iP0YuYXBwbHkodGhpcyxhcmd1bWVudHMpOkY7cmV0dXJuIHIoeCh5KFUscnQpLFcsWikseixhKX0pfSxfLnRyYW5zbGF0ZUJ5PWZ1bmN0aW9uKFIsRix6KXtfLnRyYW5zZm9ybShSLGZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcy5fX3pvb20udHJhbnNsYXRlKHR5cGVvZiBGPT0iZnVuY3Rpb24iP0YuYXBwbHkodGhpcyxhcmd1bWVudHMpOkYsdHlwZW9mIHo9PSJmdW5jdGlvbiI/ei5hcHBseSh0aGlzLGFyZ3VtZW50cyk6eiksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyksYSl9KX0sXy50cmFuc2xhdGVUbz1mdW5jdGlvbihSLEYseil7Xy50cmFuc2Zvcm0oUixmdW5jdGlvbigpe3ZhciBVPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpLFc9dGhpcy5fX3pvb20sWj1iKFUpO3JldHVybiByKGhTLnRyYW5zbGF0ZShaWzBdLFpbMV0pLnNjYWxlKFcuaykudHJhbnNsYXRlKHR5cGVvZiBGPT0iZnVuY3Rpb24iPy1GLmFwcGx5KHRoaXMsYXJndW1lbnRzKTotRix0eXBlb2Ygej09ImZ1bmN0aW9uIj8tei5hcHBseSh0aGlzLGFyZ3VtZW50cyk6LXopLFUsYSl9KX07ZnVuY3Rpb24geShSLEYpe3JldHVybiBGPU1hdGgubWF4KG9bMF0sTWF0aC5taW4ob1sxXSxGKSksRj09PVIuaz9SOm5ldyBJZihGLFIueCxSLnkpfWZ1bmN0aW9uIHgoUixGLHope3ZhciBVPUZbMF0telswXSpSLmssVz1GWzFdLXpbMV0qUi5rO3JldHVybiBVPT09Ui54JiZXPT09Ui55P1I6bmV3IElmKFIuayxVLFcpfWZ1bmN0aW9uIGIoUil7cmV0dXJuWygrUlswXVswXSsgK1JbMV1bMF0pLzIsKCtSWzBdWzFdKyArUlsxXVsxXSkvMl19ZnVuY3Rpb24gUyhSLEYseil7Ui5vbigic3RhcnQuem9vbSIsZnVuY3Rpb24oKXtDKHRoaXMsYXJndW1lbnRzKS5zdGFydCgpfSkub24oImludGVycnVwdC56b29tIGVuZC56b29tIixmdW5jdGlvbigpe0ModGhpcyxhcmd1bWVudHMpLmVuZCgpfSkudHdlZW4oInpvb20iLGZ1bmN0aW9uKCl7dmFyIFU9dGhpcyxXPWFyZ3VtZW50cyxaPUMoVSxXKSxydD10LmFwcGx5KFUsVyksb3Q9enx8YihydCksc3Q9TWF0aC5tYXgocnRbMV1bMF0tcnRbMF1bMF0scnRbMV1bMV0tcnRbMF1bMV0pLFN0PVUuX196b29tLGJ0PXR5cGVvZiBGPT0iZnVuY3Rpb24iP0YuYXBwbHkoVSxXKTpGLE10PWwoU3QuaW52ZXJ0KG90KS5jb25jYXQoc3QvU3QuayksYnQuaW52ZXJ0KG90KS5jb25jYXQoc3QvYnQuaykpO3JldHVybiBmdW5jdGlvbihsdCl7aWYobHQ9PT0xKWx0PWJ0O2Vsc2V7dmFyIEt0PU10KGx0KSxfdD1zdC9LdFsyXTtsdD1uZXcgSWYoX3Qsb3RbMF0tS3RbMF0qX3Qsb3RbMV0tS3RbMV0qX3QpfVouem9vbShudWxsLGx0KX19KX1mdW5jdGlvbiBDKFIsRil7Zm9yKHZhciB6PTAsVT1jLmxlbmd0aCxXO3o8VTsrK3opaWYoKFc9Y1t6XSkudGhhdD09PVIpcmV0dXJuIFc7cmV0dXJuIG5ldyBQKFIsRil9ZnVuY3Rpb24gUChSLEYpe3RoaXMudGhhdD1SLHRoaXMuYXJncz1GLHRoaXMuaW5kZXg9LTEsdGhpcy5hY3RpdmU9MCx0aGlzLmV4dGVudD10LmFwcGx5KFIsRil9UC5wcm90b3R5cGU9e3N0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuKyt0aGlzLmFjdGl2ZT09PTEmJih0aGlzLmluZGV4PWMucHVzaCh0aGlzKS0xLHRoaXMuZW1pdCgic3RhcnQiKSksdGhpc30sem9vbTpmdW5jdGlvbihSLEYpe3JldHVybiB0aGlzLm1vdXNlJiZSIT09Im1vdXNlIiYmKHRoaXMubW91c2VbMV09Ri5pbnZlcnQodGhpcy5tb3VzZVswXSkpLHRoaXMudG91Y2gwJiZSIT09InRvdWNoIiYmKHRoaXMudG91Y2gwWzFdPUYuaW52ZXJ0KHRoaXMudG91Y2gwWzBdKSksdGhpcy50b3VjaDEmJlIhPT0idG91Y2giJiYodGhpcy50b3VjaDFbMV09Ri5pbnZlcnQodGhpcy50b3VjaDFbMF0pKSx0aGlzLnRoYXQuX196b29tPUYsdGhpcy5lbWl0KCJ6b29tIiksdGhpc30sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuLS10aGlzLmFjdGl2ZT09PTAmJihjLnNwbGljZSh0aGlzLmluZGV4LDEpLHRoaXMuaW5kZXg9LTEsdGhpcy5lbWl0KCJlbmQiKSksdGhpc30sZW1pdDpmdW5jdGlvbihSKXtUbnQobmV3IHJpdChfLFIsdGhpcy50aGF0Ll9fem9vbSksdS5hcHBseSx1LFtSLHRoaXMudGhhdCx0aGlzLmFyZ3NdKX19O2Z1bmN0aW9uIGsoKXtpZighZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpcmV0dXJuO3ZhciBSPUModGhpcyxhcmd1bWVudHMpLEY9dGhpcy5fX3pvb20sej1NYXRoLm1heChvWzBdLE1hdGgubWluKG9bMV0sRi5rKk1hdGgucG93KDIsbi5hcHBseSh0aGlzLGFyZ3VtZW50cykpKSksVT1pUyh0aGlzKTtpZihSLndoZWVsKShSLm1vdXNlWzBdWzBdIT09VVswXXx8Ui5tb3VzZVswXVsxXSE9PVVbMV0pJiYoUi5tb3VzZVsxXT1GLmludmVydChSLm1vdXNlWzBdPVUpKSxjbGVhclRpbWVvdXQoUi53aGVlbCk7ZWxzZXtpZihGLms9PT16KXJldHVybjtSLm1vdXNlPVtVLEYuaW52ZXJ0KFUpXSxJdih0aGlzKSxSLnN0YXJ0KCl9ZlMoKSxSLndoZWVsPXNldFRpbWVvdXQoVyxkKSxSLnpvb20oIm1vdXNlIixyKHgoeShGLHopLFIubW91c2VbMF0sUi5tb3VzZVsxXSksUi5leHRlbnQsYSkpO2Z1bmN0aW9uIFcoKXtSLndoZWVsPW51bGwsUi5lbmQoKX19ZnVuY3Rpb24gTygpe2lmKGZ8fCFlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSlyZXR1cm47dmFyIFI9Qyh0aGlzLGFyZ3VtZW50cyksRj1kZChZci52aWV3KS5vbigibW91c2Vtb3ZlLnpvb20iLFosITApLm9uKCJtb3VzZXVwLnpvb20iLHJ0LCEwKSx6PWlTKHRoaXMpLFU9WXIuY2xpZW50WCxXPVlyLmNsaWVudFk7SW50KFlyLnZpZXcpLHNGKCksUi5tb3VzZT1beix0aGlzLl9fem9vbS5pbnZlcnQoeildLEl2KHRoaXMpLFIuc3RhcnQoKTtmdW5jdGlvbiBaKCl7aWYoZlMoKSwhUi5tb3ZlZCl7dmFyIG90PVlyLmNsaWVudFgtVSxzdD1Zci5jbGllbnRZLVc7Ui5tb3ZlZD1vdCpvdCtzdCpzdD5nfVIuem9vbSgibW91c2UiLHIoeChSLnRoYXQuX196b29tLFIubW91c2VbMF09aVMoUi50aGF0KSxSLm1vdXNlWzFdKSxSLmV4dGVudCxhKSl9ZnVuY3Rpb24gcnQoKXtGLm9uKCJtb3VzZW1vdmUuem9vbSBtb3VzZXVwLnpvb20iLG51bGwpLExudChZci52aWV3LFIubW92ZWQpLGZTKCksUi5lbmQoKX19ZnVuY3Rpb24gRCgpe2lmKCEhZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBSPXRoaXMuX196b29tLEY9aVModGhpcyksej1SLmludmVydChGKSxVPVIuayooWXIuc2hpZnRLZXk/LjU6MiksVz1yKHgoeShSLFUpLEYseiksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyksYSk7ZlMoKSxzPjA/ZGQodGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKHMpLmNhbGwoUyxXLEYpOmRkKHRoaXMpLmNhbGwoXy50cmFuc2Zvcm0sVyl9fWZ1bmN0aW9uIEIoKXtpZighIWUuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgUj1DKHRoaXMsYXJndW1lbnRzKSxGPVlyLmNoYW5nZWRUb3VjaGVzLHosVT1GLmxlbmd0aCxXLFoscnQ7Zm9yKHNGKCksVz0wO1c8VTsrK1cpWj1GW1ddLHJ0PUh6KHRoaXMsRixaLmlkZW50aWZpZXIpLHJ0PVtydCx0aGlzLl9fem9vbS5pbnZlcnQocnQpLFouaWRlbnRpZmllcl0sUi50b3VjaDA/Ui50b3VjaDF8fChSLnRvdWNoMT1ydCk6KFIudG91Y2gwPXJ0LHo9ITApO2lmKGgmJihoPWNsZWFyVGltZW91dChoKSwhUi50b3VjaDEpKXtSLmVuZCgpLHJ0PWRkKHRoaXMpLm9uKCJkYmxjbGljay56b29tIikscnQmJnJ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm59eiYmKGg9c2V0VGltZW91dChmdW5jdGlvbigpe2g9bnVsbH0scCksSXYodGhpcyksUi5zdGFydCgpKX19ZnVuY3Rpb24gSSgpe3ZhciBSPUModGhpcyxhcmd1bWVudHMpLEY9WXIuY2hhbmdlZFRvdWNoZXMsej1GLmxlbmd0aCxVLFcsWixydDtmb3IoZlMoKSxoJiYoaD1jbGVhclRpbWVvdXQoaCkpLFU9MDtVPHo7KytVKVc9RltVXSxaPUh6KHRoaXMsRixXLmlkZW50aWZpZXIpLFIudG91Y2gwJiZSLnRvdWNoMFsyXT09PVcuaWRlbnRpZmllcj9SLnRvdWNoMFswXT1aOlIudG91Y2gxJiZSLnRvdWNoMVsyXT09PVcuaWRlbnRpZmllciYmKFIudG91Y2gxWzBdPVopO2lmKFc9Ui50aGF0Ll9fem9vbSxSLnRvdWNoMSl7dmFyIG90PVIudG91Y2gwWzBdLHN0PVIudG91Y2gwWzFdLFN0PVIudG91Y2gxWzBdLGJ0PVIudG91Y2gxWzFdLE10PShNdD1TdFswXS1vdFswXSkqTXQrKE10PVN0WzFdLW90WzFdKSpNdCxsdD0obHQ9YnRbMF0tc3RbMF0pKmx0KyhsdD1idFsxXS1zdFsxXSkqbHQ7Vz15KFcsTWF0aC5zcXJ0KE10L2x0KSksWj1bKG90WzBdK1N0WzBdKS8yLChvdFsxXStTdFsxXSkvMl0scnQ9WyhzdFswXStidFswXSkvMiwoc3RbMV0rYnRbMV0pLzJdfWVsc2UgaWYoUi50b3VjaDApWj1SLnRvdWNoMFswXSxydD1SLnRvdWNoMFsxXTtlbHNlIHJldHVybjtSLnpvb20oInRvdWNoIixyKHgoVyxaLHJ0KSxSLmV4dGVudCxhKSl9ZnVuY3Rpb24gTCgpe3ZhciBSPUModGhpcyxhcmd1bWVudHMpLEY9WXIuY2hhbmdlZFRvdWNoZXMsej1GLmxlbmd0aCxVLFc7Zm9yKHNGKCksZiYmY2xlYXJUaW1lb3V0KGYpLGY9c2V0VGltZW91dChmdW5jdGlvbigpe2Y9bnVsbH0scCksVT0wO1U8ejsrK1UpVz1GW1VdLFIudG91Y2gwJiZSLnRvdWNoMFsyXT09PVcuaWRlbnRpZmllcj9kZWxldGUgUi50b3VjaDA6Ui50b3VjaDEmJlIudG91Y2gxWzJdPT09Vy5pZGVudGlmaWVyJiZkZWxldGUgUi50b3VjaDE7Ui50b3VjaDEmJiFSLnRvdWNoMCYmKFIudG91Y2gwPVIudG91Y2gxLGRlbGV0ZSBSLnRvdWNoMSksUi50b3VjaDA/Ui50b3VjaDBbMV09dGhpcy5fX3pvb20uaW52ZXJ0KFIudG91Y2gwWzBdKTpSLmVuZCgpfXJldHVybiBfLndoZWVsRGVsdGE9ZnVuY3Rpb24oUil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dHlwZW9mIFI9PSJmdW5jdGlvbiI/Ujp6QSgrUiksXyk6bn0sXy5maWx0ZXI9ZnVuY3Rpb24oUil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dHlwZW9mIFI9PSJmdW5jdGlvbiI/Ujp6QSghIVIpLF8pOmV9LF8udG91Y2hhYmxlPWZ1bmN0aW9uKFIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXR5cGVvZiBSPT0iZnVuY3Rpb24iP1I6ekEoISFSKSxfKTppfSxfLmV4dGVudD1mdW5jdGlvbihSKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD10eXBlb2YgUj09ImZ1bmN0aW9uIj9SOnpBKFtbK1JbMF1bMF0sK1JbMF1bMV1dLFsrUlsxXVswXSwrUlsxXVsxXV1dKSxfKTp0fSxfLnNjYWxlRXh0ZW50PWZ1bmN0aW9uKFIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvWzBdPStSWzBdLG9bMV09K1JbMV0sXyk6W29bMF0sb1sxXV19LF8udHJhbnNsYXRlRXh0ZW50PWZ1bmN0aW9uKFIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhWzBdWzBdPStSWzBdWzBdLGFbMV1bMF09K1JbMV1bMF0sYVswXVsxXT0rUlswXVsxXSxhWzFdWzFdPStSWzFdWzFdLF8pOltbYVswXVswXSxhWzBdWzFdXSxbYVsxXVswXSxhWzFdWzFdXV19LF8uY29uc3RyYWluPWZ1bmN0aW9uKFIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVIsXyk6cn0sXy5kdXJhdGlvbj1mdW5jdGlvbihSKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0rUixfKTpzfSxfLmludGVycG9sYXRlPWZ1bmN0aW9uKFIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPVIsXyk6bH0sXy5vbj1mdW5jdGlvbigpe3ZhciBSPXUub24uYXBwbHkodSxhcmd1bWVudHMpO3JldHVybiBSPT09dT9fOlJ9LF8uY2xpY2tEaXN0YW5jZT1mdW5jdGlvbihSKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz0oUj0rUikqUixfKTpNYXRoLnNxcnQoZyl9LF99dmFyIEdqdD1NKCgpPT57bW50KCk7Y1l0KCk7QUEoKTtMcygpO0ZqdCgpO0JqdCgpO0hqdCgpO25pdCgpO1ZqdCgpfSk7dmFyIFdqdD1NKCgpPT57R2p0KCk7bml0KCl9KTt2YXIgTXI9e307WnMoTXIse2FjdGl2ZTooKT0+bUd0LGFyYzooKT0+Z0Z0LGFyZWE6KCk9PmI3LGFyZWFSYWRpYWw6KCk9PmtldCxhc2NlbmRpbmc6KCk9Pl9jLGF4aXNCb3R0b206KCk9PlpNdCxheGlzTGVmdDooKT0+Sk10LGF4aXNSaWdodDooKT0+S010LGF4aXNUb3A6KCk9PiRNdCxiaXNlY3Q6KCk9PnNSLGJpc2VjdExlZnQ6KCk9PnNNdCxiaXNlY3RSaWdodDooKT0+eCQsYmlzZWN0b3I6KCk9PmFSLGJydXNoOigpPT55Q3QsYnJ1c2hTZWxlY3Rpb246KCk9Pm1DdCxicnVzaFg6KCk9PmdDdCxicnVzaFk6KCk9Pl9DdCxjaG9yZDooKT0+VUN0LGNsaWVudFBvaW50OigpPT5PZyxjbHVzdGVyOigpPT5HTHQsY29sb3I6KCk9PngyLGNyZWF0ZTooKT0+dEZ0LGNyZWF0b3I6KCk9PkRnLGNyb3NzOigpPT5jTXQsY3N2OigpPT5wTnQsY3N2Rm9ybWF0OigpPT55UHQsY3N2Rm9ybWF0Um93czooKT0+dlB0LGNzdlBhcnNlOigpPT5nUHQsY3N2UGFyc2VSb3dzOigpPT5fUHQsY3ViZWhlbGl4OigpPT51TixjdXJ2ZUJhc2lzOigpPT5PRnQsY3VydmVCYXNpc0Nsb3NlZDooKT0+RkZ0LGN1cnZlQmFzaXNPcGVuOigpPT5WRnQsY3VydmVCdW5kbGU6KCk9PkdGdCxjdXJ2ZUNhcmRpbmFsOigpPT5ZRnQsY3VydmVDYXJkaW5hbENsb3NlZDooKT0+akZ0LGN1cnZlQ2FyZGluYWxPcGVuOigpPT5YRnQsY3VydmVDYXRtdWxsUm9tOigpPT5LRnQsY3VydmVDYXRtdWxsUm9tQ2xvc2VkOigpPT5KRnQsY3VydmVDYXRtdWxsUm9tT3BlbjooKT0+ZUJ0LGN1cnZlTGluZWFyOigpPT5CZyxjdXJ2ZUxpbmVhckNsb3NlZDooKT0+aUJ0LGN1cnZlTW9ub3RvbmVYOigpPT5oQnQsY3VydmVNb25vdG9uZVk6KCk9PmZCdCxjdXJ2ZU5hdHVyYWw6KCk9PmdCdCxjdXJ2ZVN0ZXA6KCk9PnlCdCxjdXJ2ZVN0ZXBBZnRlcjooKT0+eEJ0LGN1cnZlU3RlcEJlZm9yZTooKT0+dkJ0LGN1c3RvbUV2ZW50OigpPT5YenQsZGVzY2VuZGluZzooKT0+aE10LGRldmlhdGlvbjooKT0+Y1IsZGlzcGF0Y2g6KCk9PmtBdCxkcmFnOigpPT5oUHQsZHJhZ0Rpc2FibGU6KCk9PkVOLGRyYWdFbmFibGU6KCk9PlROLGRzdkZvcm1hdDooKT0+dzIsZWFzZUJhY2s6KCk9Pk9aLGVhc2VCYWNrSW46KCk9PkpQdCxlYXNlQmFja0luT3V0OigpPT5PWixlYXNlQmFja091dDooKT0+UVB0LGVhc2VCb3VuY2U6KCk9PlMyLGVhc2VCb3VuY2VJbjooKT0+JFB0LGVhc2VCb3VuY2VJbk91dDooKT0+S1B0LGVhc2VCb3VuY2VPdXQ6KCk9PlMyLGVhc2VDaXJjbGU6KCk9PlJaLGVhc2VDaXJjbGVJbjooKT0+WVB0LGVhc2VDaXJjbGVJbk91dDooKT0+UlosZWFzZUNpcmNsZU91dDooKT0+alB0LGVhc2VDdWJpYzooKT0+QVosZWFzZUN1YmljSW46KCk9PmtQdCxlYXNlQ3ViaWNJbk91dDooKT0+QVosZWFzZUN1YmljT3V0OigpPT5SUHQsZWFzZUVsYXN0aWM6KCk9PkJaLGVhc2VFbGFzdGljSW46KCk9PmU2dCxlYXNlRWxhc3RpY0luT3V0OigpPT5yNnQsZWFzZUVsYXN0aWNPdXQ6KCk9PkJaLGVhc2VFeHA6KCk9PmtaLGVhc2VFeHBJbjooKT0+cVB0LGVhc2VFeHBJbk91dDooKT0+a1osZWFzZUV4cE91dDooKT0+R1B0LGVhc2VMaW5lYXI6KCk9PkNQdCxlYXNlUG9seTooKT0+SVosZWFzZVBvbHlJbjooKT0+RFB0LGVhc2VQb2x5SW5PdXQ6KCk9PklaLGVhc2VQb2x5T3V0OigpPT5PUHQsZWFzZVF1YWQ6KCk9PkNaLGVhc2VRdWFkSW46KCk9PlBQdCxlYXNlUXVhZEluT3V0OigpPT5DWixlYXNlUXVhZE91dDooKT0+SVB0LGVhc2VTaW46KCk9PkxaLGVhc2VTaW5JbjooKT0+SFB0LGVhc2VTaW5Jbk91dDooKT0+TFosZWFzZVNpbk91dDooKT0+VlB0LGVudHJpZXM6KCk9PmhBdCxldmVudDooKT0+UHUsZXh0ZW50OigpPT51Uixmb3JjZUNlbnRlcjooKT0+bzZ0LGZvcmNlQ29sbGlkZTooKT0+RjZ0LGZvcmNlTGluazooKT0+ajZ0LGZvcmNlTWFueUJvZHk6KCk9PmxJdCxmb3JjZVJhZGlhbDooKT0+dUl0LGZvcmNlU2ltdWxhdGlvbjooKT0+c0l0LGZvcmNlWDooKT0+Zkl0LGZvcmNlWTooKT0+ZEl0LGZvcm1hdDooKT0+ckosZm9ybWF0RGVmYXVsdExvY2FsZTooKT0+V04sZm9ybWF0TG9jYWxlOigpPT5xTixmb3JtYXRQcmVmaXg6KCk9Pm5KLGZvcm1hdFNwZWNpZmllcjooKT0+a3ksZ2VvQWxiZXJzOigpPT5ERCxnZW9BbGJlcnNVc2E6KCk9PnZMdCxnZW9BcmVhOigpPT5VSXQsZ2VvQXppbXV0aGFsRXF1YWxBcmVhOigpPT5iTHQsZ2VvQXppbXV0aGFsRXF1YWxBcmVhUmF3OigpPT56RCxnZW9BemltdXRoYWxFcXVpZGlzdGFudDooKT0+U0x0LGdlb0F6aW11dGhhbEVxdWlkaXN0YW50UmF3OigpPT5GRCxnZW9Cb3VuZHM6KCk9PktJdCxnZW9DZW50cm9pZDooKT0+bjl0LGdlb0NpcmNsZTooKT0+dTl0LGdlb0NsaXBBbnRpbWVyaWRpYW46KCk9PnpULGdlb0NsaXBDaXJjbGU6KCk9Pl9ELGdlb0NsaXBFeHRlbnQ6KCk9PlI5dCxnZW9DbGlwUmVjdGFuZ2xlOigpPT50ZCxnZW9Db25pY0NvbmZvcm1hbDooKT0+VEx0LGdlb0NvbmljQ29uZm9ybWFsUmF3OigpPT5mUSxnZW9Db25pY0VxdWFsQXJlYTooKT0+cXksZ2VvQ29uaWNFcXVhbEFyZWFSYXc6KCk9PmNRLGdlb0NvbmljRXF1aWRpc3RhbnQ6KCk9PlBMdCxnZW9Db25pY0VxdWlkaXN0YW50UmF3OigpPT5kUSxnZW9Db250YWluczooKT0+Vjl0LGdlb0Rpc3RhbmNlOigpPT5IeSxnZW9FcXVpcmVjdGFuZ3VsYXI6KCk9PkFMdCxnZW9FcXVpcmVjdGFuZ3VsYXJSYXc6KCk9Pld5LGdlb0dub21vbmljOigpPT5MTHQsZ2VvR25vbW9uaWNSYXc6KCk9PlZELGdlb0dyYXRpY3VsZTooKT0+U0QsZ2VvR3JhdGljdWxlMTA6KCk9Plc5dCxnZW9JZGVudGl0eTooKT0+Ukx0LGdlb0ludGVycG9sYXRlOigpPT5qOXQsZ2VvTGVuZ3RoOigpPT5iRCxnZW9NZXJjYXRvcjooKT0+RUx0LGdlb01lcmNhdG9yUmF3OigpPT5HeSxnZW9OYXR1cmFsRWFydGgxOigpPT5ETHQsZ2VvTmF0dXJhbEVhcnRoMVJhdzooKT0+cUQsZ2VvT3J0aG9ncmFwaGljOigpPT56THQsZ2VvT3J0aG9ncmFwaGljUmF3OigpPT5HRCxnZW9QYXRoOigpPT5mTHQsZ2VvUHJvamVjdGlvbjooKT0+ZW8sZ2VvUHJvamVjdGlvbk11dGF0b3I6KCk9PllULGdlb1JvdGF0aW9uOigpPT5sRCxnZW9TdGVyZW9ncmFwaGljOigpPT5CTHQsZ2VvU3RlcmVvZ3JhcGhpY1JhdzooKT0+V0QsZ2VvU3RyZWFtOigpPT5NbyxnZW9UcmFuc2Zvcm06KCk9PmRMdCxnZW9UcmFuc3ZlcnNlTWVyY2F0b3I6KCk9PlZMdCxnZW9UcmFuc3ZlcnNlTWVyY2F0b3JSYXc6KCk9PllELGhjbDooKT0+aVosaGllcmFyY2h5OigpPT5qVCxoaXN0b2dyYW06KCk9PnhNdCxoc2w6KCk9PlpLLGh0bWw6KCk9Pm9OdCxpbnRlcnBvbGF0ZTooKT0+WjIsaW50ZXJwb2xhdGVBcnJheTooKT0+Zk8saW50ZXJwb2xhdGVCYXNpczooKT0+Y08saW50ZXJwb2xhdGVCYXNpc0Nsb3NlZDooKT0+aE8saW50ZXJwb2xhdGVDb29sOigpPT5FN3QsaW50ZXJwb2xhdGVDdWJlaGVsaXg6KCk9PnE4dCxpbnRlcnBvbGF0ZUN1YmVoZWxpeERlZmF1bHQ6KCk9Pnc3dCxpbnRlcnBvbGF0ZUN1YmVoZWxpeExvbmc6KCk9Pkc4dCxpbnRlcnBvbGF0ZURhdGU6KCk9PmRPLGludGVycG9sYXRlSGNsOigpPT5COHQsaW50ZXJwb2xhdGVIY2xMb25nOigpPT5IOHQsaW50ZXJwb2xhdGVIc2w6KCk9Pk44dCxpbnRlcnBvbGF0ZUhzbExvbmc6KCk9PkQ4dCxpbnRlcnBvbGF0ZUluZmVybm86KCk9Pkk3dCxpbnRlcnBvbGF0ZUxhYjooKT0+JFEsaW50ZXJwb2xhdGVNYWdtYTooKT0+UDd0LGludGVycG9sYXRlTnVtYmVyOigpPT5QcyxpbnRlcnBvbGF0ZU9iamVjdDooKT0+bU8saW50ZXJwb2xhdGVQbGFzbWE6KCk9Pkw3dCxpbnRlcnBvbGF0ZVJhaW5ib3c6KCk9PlQ3dCxpbnRlcnBvbGF0ZVJnYjooKT0+ZUMsaW50ZXJwb2xhdGVSZ2JCYXNpczooKT0+bTh0LGludGVycG9sYXRlUmdiQmFzaXNDbG9zZWQ6KCk9Pmc4dCxpbnRlcnBvbGF0ZVJvdW5kOigpPT5fOHQsaW50ZXJwb2xhdGVTdHJpbmc6KCk9PmdPLGludGVycG9sYXRlVHJhbnNmb3JtQ3NzOigpPT5UOHQsaW50ZXJwb2xhdGVUcmFuc2Zvcm1Tdmc6KCk9PkM4dCxpbnRlcnBvbGF0ZVZpcmlkaXM6KCk9PkE3dCxpbnRlcnBvbGF0ZVdhcm06KCk9Pk03dCxpbnRlcnBvbGF0ZVpvb206KCk9Pkw4dCxpbnRlcnJ1cHQ6KCk9PmR6LGludGVydmFsOigpPT5FVnQsaXNvRm9ybWF0OigpPT5nVnQsaXNvUGFyc2U6KCk9Pl9WdCxqc29uOigpPT5zTnQsa2V5czooKT0+c0F0LGxhYjooKT0+bE4sbGluZTooKT0+UncsbGluZVJhZGlhbDooKT0+SWV0LGxpbmtIb3Jpem9udGFsOigpPT5DRnQsbGlua1JhZGlhbDooKT0+UEZ0LGxpbmtWZXJ0aWNhbDooKT0+QUZ0LGxvY2FsOigpPT5tNyxtYXA6KCk9Pnd5LG1hdGNoZXI6KCk9PnU3LG1heDooKT0+VE10LG1lYW46KCk9PkFNdCxtZWRpYW46KCk9PklNdCxtZXJnZTooKT0+a010LG1pbjooKT0+bVIsbW91c2U6KCk9Pm5GdCxuYW1lc3BhY2U6KCk9Pk13LG5hbWVzcGFjZXM6KCk9PkVDLG5lc3Q6KCk9PnJBdCxub3c6KCk9Pll3LHBhY2s6KCk9PlRrdCxwYWNrRW5jbG9zZTooKT0+JEQscGFja1NpYmxpbmdzOigpPT53a3QscGFpcnM6KCk9PmxNdCxwYXJ0aXRpb246KCk9PkFrdCxwYXRoOigpPT5LOHQscGVybXV0ZTooKT0+Tk10LHBpZTooKT0+U0Z0LHBvaW50UmFkaWFsOigpPT5wdixwb2x5Z29uQXJlYTooKT0+UTh0LHBvbHlnb25DZW50cm9pZDooKT0+ZVJ0LHBvbHlnb25Db250YWluczooKT0+bFJ0LHBvbHlnb25IdWxsOigpPT5hUnQscG9seWdvbkxlbmd0aDooKT0+dVJ0LHByZWNpc2lvbkZpeGVkOigpPT5BSXQscHJlY2lzaW9uUHJlZml4OigpPT5JSXQscHJlY2lzaW9uUm91bmQ6KCk9PmtJdCxxdWFkdHJlZTooKT0+eE8scXVhbnRpbGU6KCk9Pm15LHF1YW50aXplOigpPT5ZOHQscXVldWU6KCk9PndPLHJhZGlhbEFyZWE6KCk9PmtldCxyYWRpYWxMaW5lOigpPT5JZXQscmFuZG9tQmF0ZXM6KCk9PnROdCxyYW5kb21FeHBvbmVudGlhbDooKT0+ck50LHJhbmRvbUlyd2luSGFsbDooKT0+TU8scmFuZG9tTG9nTm9ybWFsOigpPT5KUnQscmFuZG9tTm9ybWFsOigpPT5TTyxyYW5kb21Vbmlmb3JtOigpPT5LUnQscmFuZ2U6KCk9PmhSLHJlcXVlc3Q6KCk9PkoyLHJnYjooKT0+S0sscmliYm9uOigpPT5LQ3Qsc2NhbGVCYW5kOigpPT5jQyxzY2FsZUlkZW50aXR5OigpPT5xTyxzY2FsZUltcGxpY2l0OigpPT5rTyxzY2FsZUxpbmVhcjooKT0+VU8sc2NhbGVMb2c6KCk9PldPLHNjYWxlT3JkaW5hbDooKT0+bncsc2NhbGVQb2ludDooKT0+WU50LHNjYWxlUG93OigpPT5fQyxzY2FsZVF1YW50aWxlOigpPT5ZTyxzY2FsZVF1YW50aXplOigpPT5qTyxzY2FsZVNlcXVlbnRpYWw6KCk9Pmk3LHNjYWxlU3FydDooKT0+YU90LHNjYWxlVGhyZXNob2xkOigpPT5YTyxzY2FsZVRpbWU6KCk9Pmg3dCxzY2FsZVV0YzooKT0+Zjd0LHNjYW46KCk9Pk9NdCxzY2hlbWVDYXRlZ29yeTEwOigpPT5kN3Qsc2NoZW1lQ2F0ZWdvcnkyMDooKT0+eDd0LHNjaGVtZUNhdGVnb3J5MjBiOigpPT5nN3Qsc2NoZW1lQ2F0ZWdvcnkyMGM6KCk9Pnk3dCxzZWxlY3Q6KCk9PmQ3LHNlbGVjdEFsbDooKT0+b0Z0LHNlbGVjdGlvbjooKT0+UXp0LHNlbGVjdG9yOigpPT5FdyxzZWxlY3RvckFsbDooKT0+Yzcsc2V0OigpPT5vQXQsc2h1ZmZsZTooKT0+Rk10LHN0YWNrOigpPT53QnQsc3RhY2tPZmZzZXREaXZlcmdpbmc6KCk9PlRCdCxzdGFja09mZnNldEV4cGFuZDooKT0+TUJ0LHN0YWNrT2Zmc2V0Tm9uZTooKT0+UnUsc3RhY2tPZmZzZXRTaWxob3VldHRlOigpPT5BQnQsc3RhY2tPZmZzZXRXaWdnbGU6KCk9PklCdCxzdGFja09yZGVyQXNjZW5kaW5nOigpPT5ENyxzdGFja09yZGVyRGVzY2VuZGluZzooKT0+a0J0LHN0YWNrT3JkZXJJbnNpZGVPdXQ6KCk9Pk5CdCxzdGFja09yZGVyTm9uZTooKT0+TnUsc3RhY2tPcmRlclJldmVyc2U6KCk9Pk9CdCxzdHJhdGlmeTooKT0+a2t0LHN0eWxlOigpPT5fZXQsc3VtOigpPT5ITXQsc3ltYm9sOigpPT5ORnQsc3ltYm9sQ2lyY2xlOigpPT5SQyxzeW1ib2xDcm9zczooKT0+Uzcsc3ltYm9sRGlhbW9uZDooKT0+TTcsc3ltYm9sU3F1YXJlOigpPT5UNyxzeW1ib2xTdGFyOigpPT5FNyxzeW1ib2xUcmlhbmdsZTooKT0+Qzcsc3ltYm9sV3llOigpPT5BNyxzeW1ib2xzOigpPT5SRnQsdGV4dDooKT0+Y050LHRocmVzaG9sZEZyZWVkbWFuRGlhY29uaXM6KCk9PndNdCx0aHJlc2hvbGRTY290dDooKT0+TU10LHRocmVzaG9sZFN0dXJnZXM6KCk9PnBSLHRpY2tJbmNyZW1lbnQ6KCk9PmskLHRpY2tTdGVwOigpPT5mUix0aWNrczooKT0+dk10LHRpbWVEYXk6KCk9PlpCdCx0aW1lRGF5czooKT0+SkJ0LHRpbWVGb3JtYXQ6KCk9PndydCx0aW1lRm9ybWF0RGVmYXVsdExvY2FsZTooKT0+WDcsdGltZUZvcm1hdExvY2FsZTooKT0+WUMsdGltZUZyaWRheTooKT0+b3J0LHRpbWVGcmlkYXlzOigpPT5pSHQsdGltZUhvdXI6KCk9PmpCdCx0aW1lSG91cnM6KCk9PlhCdCx0aW1lSW50ZXJ2YWw6KCk9PlNyLHRpbWVNaWxsaXNlY29uZDooKT0+WmV0LHRpbWVNaWxsaXNlY29uZHM6KCk9PkpldCx0aW1lTWludXRlOigpPT5xQnQsdGltZU1pbnV0ZXM6KCk9PkdCdCx0aW1lTW9uZGF5OigpPT5lcnQsdGltZU1vbmRheXM6KCk9PnRIdCx0aW1lTW9udGg6KCk9PmxIdCx0aW1lTW9udGhzOigpPT5jSHQsdGltZVBhcnNlOigpPT5TcnQsdGltZVNhdHVyZGF5OigpPT5hcnQsdGltZVNhdHVyZGF5czooKT0+b0h0LHRpbWVTZWNvbmQ6KCk9PlFldCx0aW1lU2Vjb25kczooKT0+dHJ0LHRpbWVTdW5kYXk6KCk9Pkg3LHRpbWVTdW5kYXlzOigpPT5zcnQsdGltZVRodXJzZGF5OigpPT5pcnQsdGltZVRodXJzZGF5czooKT0+bkh0LHRpbWVUdWVzZGF5OigpPT5ycnQsdGltZVR1ZXNkYXlzOigpPT5lSHQsdGltZVdlZG5lc2RheTooKT0+bnJ0LHRpbWVXZWRuZXNkYXlzOigpPT5ySHQsdGltZVdlZWs6KCk9Pkg3LHRpbWVXZWVrczooKT0+c3J0LHRpbWVZZWFyOigpPT5oSHQsdGltZVllYXJzOigpPT5mSHQsdGltZW91dDooKT0+U1Z0LHRpbWVyOigpPT5DcnQsdGltZXJGbHVzaDooKT0+QXJ0LHRvdWNoOigpPT5zRnQsdG91Y2hlczooKT0+Y0Z0LHRyYW5zaXRpb246KCk9PlR6LHRyYW5zcG9zZTooKT0+Z1IsdHJlZTooKT0+Tmt0LHRyZWVtYXA6KCk9Pk9rdCx0cmVlbWFwQmluYXJ5OigpPT5Ga3QsdHJlZW1hcERpY2U6KCk9PmNmLHRyZWVtYXBSZXNxdWFyaWZ5OigpPT5Va3QsdHJlZW1hcFNsaWNlOigpPT5TZyx0cmVlbWFwU2xpY2VEaWNlOigpPT5Ia3QsdHJlZW1hcFNxdWFyaWZ5OigpPT50Tyx0c3Y6KCk9Pm1OdCx0c3ZGb3JtYXQ6KCk9PlNQdCx0c3ZGb3JtYXRSb3dzOigpPT5NUHQsdHN2UGFyc2U6KCk9PmJQdCx0c3ZQYXJzZVJvd3M6KCk9PndQdCx1dGNEYXk6KCk9PlNIdCx1dGNEYXlzOigpPT5NSHQsdXRjRm9ybWF0OigpPT5qQyx1dGNGcmlkYXk6KCk9PnBydCx1dGNGcmlkYXlzOigpPT5JSHQsdXRjSG91cjooKT0+dkh0LHV0Y0hvdXJzOigpPT54SHQsdXRjTWlsbGlzZWNvbmQ6KCk9PlpldCx1dGNNaWxsaXNlY29uZHM6KCk9PkpldCx1dGNNaW51dGU6KCk9Pm1IdCx1dGNNaW51dGVzOigpPT5nSHQsdXRjTW9uZGF5OigpPT5jcnQsdXRjTW9uZGF5czooKT0+VEh0LHV0Y01vbnRoOigpPT5OSHQsdXRjTW9udGhzOigpPT5ESHQsdXRjUGFyc2U6KCk9PlhDLHV0Y1NhdHVyZGF5OigpPT5kcnQsdXRjU2F0dXJkYXlzOigpPT5MSHQsdXRjU2Vjb25kOigpPT5RZXQsdXRjU2Vjb25kczooKT0+dHJ0LHV0Y1N1bmRheTooKT0+VjcsdXRjU3VuZGF5czooKT0+bXJ0LHV0Y1RodXJzZGF5OigpPT5mcnQsdXRjVGh1cnNkYXlzOigpPT5QSHQsdXRjVHVlc2RheTooKT0+dXJ0LHV0Y1R1ZXNkYXlzOigpPT5DSHQsdXRjV2VkbmVzZGF5OigpPT5ocnQsdXRjV2VkbmVzZGF5czooKT0+QUh0LHV0Y1dlZWs6KCk9PlY3LHV0Y1dlZWtzOigpPT5tcnQsdXRjWWVhcjooKT0+ekh0LHV0Y1llYXJzOigpPT5GSHQsdmFsdWVzOigpPT5jQXQsdmFyaWFuY2U6KCk9PmxSLHZlcnNpb246KCk9PmlNdCx2b3Jvbm9pOigpPT5ER3Qsd2luZG93OigpPT5Ddyx4bWw6KCk9PmhOdCx6aXA6KCk9PlVNdCx6b29tOigpPT5xanQsem9vbUlkZW50aXR5OigpPT5oUyx6b29tVHJhbnNmb3JtOigpPT5hRn0pO3ZhciBFcj1NKCgpPT57b010KCk7R010KCk7dEV0KCk7eEN0KCk7SkN0KCk7cEF0KCk7UEF0KCk7TkF0KCk7cFB0KCk7VFB0KCk7aTZ0KCk7Z0l0KCk7Tkl0KCk7cUx0KCk7R2t0KCk7WDh0KCk7Sjh0KCk7ZlJ0KCk7R1J0KCk7JFJ0KCk7aU50KCk7X050KCk7Tjd0KCk7aEZ0KCk7RkJ0KCk7SEh0KCk7dlZ0KCk7Q1Z0KCk7X0d0KCk7ekd0KCk7V2p0KCl9KTt2YXIgJGp0PUgoWGp0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShYanQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBZanQ9KEVyKCksVXQoTXIpKSxZZz1ZanQsamp0PVlqdDtmdW5jdGlvbiBXRGUoZSx0KXtyZXR1cm4gZS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHI9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj1ZZy5zZWxlY3QodGhpcyk7Zm9yKHZhciBpIGluIHIpbi5hdHRyKGkscltpXSl9KX1mdW5jdGlvbiBZRGUoZSx0KXtmb3IodmFyIHIgaW4gdCllLmF0dHIocix0W3JdKTtyZXR1cm4gZX1mdW5jdGlvbiBqRGUoZSl7cmV0dXJuKHR5cGVvZiBlPT0iZnVuY3Rpb24iP1dEZTpZRGUpKHRoaXMsZSl9ZnVuY3Rpb24gWERlKGUsdCxyKXtyZXR1cm4gZS5lYWNoKGZ1bmN0aW9uKCl7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksaT1ZZy5zZWxlY3QodGhpcyk7Zm9yKHZhciBvIGluIG4paS5zdHlsZShvLG5bb10scil9KX1mdW5jdGlvbiAkRGUoZSx0LHIpe2Zvcih2YXIgbiBpbiB0KWUuc3R5bGUobix0W25dLHIpO3JldHVybiBlfWZ1bmN0aW9uIEtEZShlLHQpe3JldHVybih0eXBlb2YgZT09ImZ1bmN0aW9uIj9YRGU6JERlKSh0aGlzLGUsdD09bnVsbD8iIjp0KX1mdW5jdGlvbiBaRGUoZSx0KXtyZXR1cm4gZS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHI9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj1ZZy5zZWxlY3QodGhpcyk7Zm9yKHZhciBpIGluIHIpbi5wcm9wZXJ0eShpLHJbaV0pfSl9ZnVuY3Rpb24gSkRlKGUsdCl7Zm9yKHZhciByIGluIHQpZS5wcm9wZXJ0eShyLHRbcl0pO3JldHVybiBlfWZ1bmN0aW9uIFFEZShlKXtyZXR1cm4odHlwZW9mIGU9PSJmdW5jdGlvbiI/WkRlOkpEZSkodGhpcyxlKX1mdW5jdGlvbiB0T2UoZSx0KXtyZXR1cm4gZS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHI9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj1ZZy5zZWxlY3QodGhpcykudHJhbnNpdGlvbihlKTtmb3IodmFyIGkgaW4gciluLmF0dHIoaSxyW2ldKX0pfWZ1bmN0aW9uIGVPZShlLHQpe2Zvcih2YXIgciBpbiB0KWUuYXR0cihyLHRbcl0pO3JldHVybiBlfWZ1bmN0aW9uIHJPZShlKXtyZXR1cm4odHlwZW9mIGU9PSJmdW5jdGlvbiI/dE9lOmVPZSkodGhpcyxlKX1mdW5jdGlvbiBuT2UoZSx0LHIpe3JldHVybiBlLmVhY2goZnVuY3Rpb24oKXt2YXIgbj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxpPVlnLnNlbGVjdCh0aGlzKS50cmFuc2l0aW9uKGUpO2Zvcih2YXIgbyBpbiBuKWkuc3R5bGUobyxuW29dLHIpfSl9ZnVuY3Rpb24gaU9lKGUsdCxyKXtmb3IodmFyIG4gaW4gdCllLnN0eWxlKG4sdFtuXSxyKTtyZXR1cm4gZX1mdW5jdGlvbiBvT2UoZSx0KXtyZXR1cm4odHlwZW9mIGU9PSJmdW5jdGlvbiI/bk9lOmlPZSkodGhpcyxlLHQ9PW51bGw/IiI6dCl9WWcuc2VsZWN0aW9uLnByb3RvdHlwZS5hdHRycz1qRGU7WWcuc2VsZWN0aW9uLnByb3RvdHlwZS5zdHlsZXM9S0RlO1lnLnNlbGVjdGlvbi5wcm90b3R5cGUucHJvcGVydGllcz1RRGU7amp0LnRyYW5zaXRpb24ucHJvdG90eXBlLmF0dHJzPXJPZTtqanQudHJhbnNpdGlvbi5wcm90b3R5cGUuc3R5bGVzPW9PZX0pO3ZhciBqZz1IKGlpdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoaWl0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgS2p0PShFcigpLFV0KE1yKSk7ZnVuY3Rpb24gYU9lKGUpe2lmKGUuYXR0cnM9PW51bGwpaWYoZS5ub2Rlcz09bnVsbCl7dmFyIHQ9W107cmV0dXJuIGUuZWFjaChmdW5jdGlvbigpe3QucHVzaCh0aGlzKX0pLEtqdC5zZWxlY3RBbGwodCl9ZWxzZSByZXR1cm4gS2p0LnNlbGVjdEFsbChlLm5vZGVzKCkpO2Vsc2UgcmV0dXJuIGV9aWl0LmNvZXJjZUV4dGVybmFsRDM9YU9lfSk7dmFyIExmPUgob2l0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShvaXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2Z1bmN0aW9uIHNPZShlKXtyZXR1cm4gZS5yZWR1Y2UoZnVuY3Rpb24odCxyKXtyZXR1cm4gdFtyXT1yLHR9LHt9KX1vaXQubWFrZUVudW09c09lfSk7dmFyIEpqdD1IKGxGPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShsRiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGRyPShMXygpLFV0KEJ2dCkpLGxPZT1qZygpLGNPZT1MZigpLFpqdD17bGluZWFyOmRyLmVhc2VMaW5lYXIscXVhZDpkci5lYXNlUXVhZCxxdWFkSW46ZHIuZWFzZVF1YWRJbixxdWFkT3V0OmRyLmVhc2VRdWFkT3V0LHF1YWRJbk91dDpkci5lYXNlUXVhZEluT3V0LGN1YmljOmRyLmVhc2VDdWJpYyxjdWJpY0luOmRyLmVhc2VDdWJpY0luLGN1YmljT3V0OmRyLmVhc2VDdWJpY091dCxjdWJpY0luT3V0OmRyLmVhc2VDdWJpY0luT3V0LHBvbHk6ZHIuZWFzZVBvbHkscG9seUluOmRyLmVhc2VQb2x5SW4scG9seU91dDpkci5lYXNlUG9seU91dCxwb2x5SW5PdXQ6ZHIuZWFzZVBvbHlJbk91dCxzaW46ZHIuZWFzZVNpbixzaW5Jbjpkci5lYXNlU2luSW4sc2luT3V0OmRyLmVhc2VTaW5PdXQsc2luSW5PdXQ6ZHIuZWFzZVNpbkluT3V0LGV4cDpkci5lYXNlRXhwLGV4cEluOmRyLmVhc2VFeHBJbixleHBPdXQ6ZHIuZWFzZUV4cE91dCxleHBJbk91dDpkci5lYXNlRXhwSW5PdXQsY2lyY2xlOmRyLmVhc2VDaXJjbGUsY2lyY2xlSW46ZHIuZWFzZUNpcmNsZUluLGNpcmNsZU91dDpkci5lYXNlQ2lyY2xlT3V0LGNpcmNsZUluT3V0OmRyLmVhc2VDaXJjbGVJbk91dCxib3VuY2U6ZHIuZWFzZUJvdW5jZSxib3VuY2VJbjpkci5lYXNlQm91bmNlSW4sYm91bmNlT3V0OmRyLmVhc2VCb3VuY2VPdXQsYm91bmNlSW5PdXQ6ZHIuZWFzZUJvdW5jZUluT3V0LGJhY2s6ZHIuZWFzZUJhY2ssYmFja0luOmRyLmVhc2VCYWNrSW4sYmFja091dDpkci5lYXNlQmFja091dCxiYWNrSW5PdXQ6ZHIuZWFzZUJhY2tJbk91dCxlbGFzdGljOmRyLmVhc2VFbGFzdGljLGVsYXN0aWNJbjpkci5lYXNlRWxhc3RpY0luLGVsYXN0aWNPdXQ6ZHIuZWFzZUVsYXN0aWNPdXQsZWxhc3RpY0luT3V0OmRyLmVhc2VFbGFzdGljSW5PdXR9O2xGLkVhc2VOYW1lPWNPZS5tYWtlRW51bShbImxpbmVhciIsInF1YWQiLCJxdWFkSW4iLCJxdWFkT3V0IiwicXVhZEluT3V0IiwiY3ViaWMiLCJjdWJpY0luIiwiY3ViaWNPdXQiLCJjdWJpY0luT3V0IiwicG9seSIsInBvbHlJbiIsInBvbHlPdXQiLCJwb2x5SW5PdXQiLCJzaW4iLCJzaW5JbiIsInNpbk91dCIsInNpbkluT3V0IiwiZXhwIiwiZXhwSW4iLCJleHBPdXQiLCJleHBJbk91dCIsImNpcmNsZSIsImNpcmNsZUluIiwiY2lyY2xlT3V0IiwiY2lyY2xlSW5PdXQiLCJib3VuY2UiLCJib3VuY2VJbiIsImJvdW5jZU91dCIsImJvdW5jZUluT3V0IiwiYmFjayIsImJhY2tJbiIsImJhY2tPdXQiLCJiYWNrSW5PdXQiLCJlbGFzdGljIiwiZWxhc3RpY0luIiwiZWxhc3RpY091dCIsImVsYXN0aWNJbk91dCJdKTt2YXIgdU9lPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMuX3N0YXJ0RGVsYXk9ZS5fREVGQVVMVF9TVEFSVF9ERUxBWV9NSUxMSVNFQ09ORFMsdGhpcy5fc3RlcER1cmF0aW9uPWUuX0RFRkFVTFRfU1RFUF9EVVJBVElPTl9NSUxMSVNFQ09ORFMsdGhpcy5fc3RlcERlbGF5PWUuX0RFRkFVTFRfSVRFUkFUSVZFX0RFTEFZX01JTExJU0VDT05EUyx0aGlzLl9tYXhUb3RhbER1cmF0aW9uPWUuX0RFRkFVTFRfTUFYX1RPVEFMX0RVUkFUSU9OX01JTExJU0VDT05EUyx0aGlzLl9lYXNpbmdNb2RlPWUuX0RFRkFVTFRfRUFTSU5HX01PREV9cmV0dXJuIGUucHJvdG90eXBlLnRvdGFsVGltZT1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9nZXRBZGp1c3RlZEl0ZXJhdGl2ZURlbGF5KHQpO3JldHVybiB0aGlzLnN0YXJ0RGVsYXkoKStyKk1hdGgubWF4KHQtMSwwKSt0aGlzLnN0ZXBEdXJhdGlvbigpfSxlLnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKHQscil7dmFyIG49dGhpczt0PWxPZS5jb2VyY2VFeHRlcm5hbEQzKHQpO3ZhciBpPXQuc2l6ZSgpLG89dGhpcy5fZ2V0QWRqdXN0ZWRJdGVyYXRpdmVEZWxheShpKTtyZXR1cm4gdC50cmFuc2l0aW9uKCkuZWFzZSh0aGlzLl9nZXRFYXNlRmFjdG9yeSgpKS5kdXJhdGlvbih0aGlzLnN0ZXBEdXJhdGlvbigpKS5kZWxheShmdW5jdGlvbihhLHMpe3JldHVybiBuLnN0YXJ0RGVsYXkoKStvKnN9KS5hdHRycyhyKX0sZS5wcm90b3R5cGUuc3RhcnREZWxheT1mdW5jdGlvbih0KXtyZXR1cm4gdD09bnVsbD90aGlzLl9zdGFydERlbGF5Oih0aGlzLl9zdGFydERlbGF5PXQsdGhpcyl9LGUucHJvdG90eXBlLnN0ZXBEdXJhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdD09bnVsbD9NYXRoLm1pbih0aGlzLl9zdGVwRHVyYXRpb24sdGhpcy5fbWF4VG90YWxEdXJhdGlvbik6KHRoaXMuX3N0ZXBEdXJhdGlvbj10LHRoaXMpfSxlLnByb3RvdHlwZS5zdGVwRGVsYXk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PW51bGw/dGhpcy5fc3RlcERlbGF5Oih0aGlzLl9zdGVwRGVsYXk9dCx0aGlzKX0sZS5wcm90b3R5cGUubWF4VG90YWxEdXJhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdD09bnVsbD90aGlzLl9tYXhUb3RhbER1cmF0aW9uOih0aGlzLl9tYXhUb3RhbER1cmF0aW9uPXQsdGhpcyl9LGUucHJvdG90eXBlLmVhc2luZ01vZGU9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PW51bGw/dGhpcy5fZWFzaW5nTW9kZToodGhpcy5fZWFzaW5nTW9kZT10LHRoaXMpfSxlLnByb3RvdHlwZS5fZ2V0RWFzZUZhY3Rvcnk9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVhc2luZ01vZGUoKTtpZih0eXBlb2YgdD09InN0cmluZyIpe3ZhciByPVpqdFt0XTtyZXR1cm4gcj09bnVsbD9aanQubGluZWFyOnJ9ZWxzZSByZXR1cm4gdH0sZS5wcm90b3R5cGUuX2dldEFkanVzdGVkSXRlcmF0aXZlRGVsYXk9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5tYXhUb3RhbER1cmF0aW9uKCktdGhpcy5zdGVwRHVyYXRpb24oKTtyPU1hdGgubWF4KHIsMCk7dmFyIG49ci9NYXRoLm1heCh0LTEsMSk7cmV0dXJuIE1hdGgubWluKHRoaXMuc3RlcERlbGF5KCksbil9LGUuX0RFRkFVTFRfU1RBUlRfREVMQVlfTUlMTElTRUNPTkRTPTAsZS5fREVGQVVMVF9TVEVQX0RVUkFUSU9OX01JTExJU0VDT05EUz0zMDAsZS5fREVGQVVMVF9JVEVSQVRJVkVfREVMQVlfTUlMTElTRUNPTkRTPTE1LGUuX0RFRkFVTFRfTUFYX1RPVEFMX0RVUkFUSU9OX01JTExJU0VDT05EUz0xLzAsZS5fREVGQVVMVF9FQVNJTkdfTU9ERT0iZXhwT3V0IixlfSgpO2xGLkVhc2luZz11T2V9KTt2YXIgUWp0PUgoYWl0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhaXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBoT2U9amcoKSxmT2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7fXJldHVybiBlLnByb3RvdHlwZS50b3RhbFRpbWU9ZnVuY3Rpb24odCl7cmV0dXJuIDB9LGUucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24odCxyKXtyZXR1cm4gdD1oT2UuY29lcmNlRXh0ZXJuYWxEMyh0KSx0LmF0dHJzKHIpfSxlfSgpO2FpdC5OdWxsPWZPZX0pO3ZhciBrZj1IKGNGPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShjRiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHRYdD0oZGUoKSxVdChwZSkpO3RYdC5fX2V4cG9ydFN0YXIoSmp0KCksY0YpO3RYdC5fX2V4cG9ydFN0YXIoUWp0KCksY0YpfSk7dmFyIGVYdD1IKHNpdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoc2l0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcE9lPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt0aGlzLmNhY2hlPXt9LHRoaXMuY29tcHV0ZT10fXJldHVybiBlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2FjaGUuaGFzT3duUHJvcGVydHkodCl8fCh0aGlzLmNhY2hlW3RdPXRoaXMuY29tcHV0ZSh0KSksdGhpcy5jYWNoZVt0XX0sZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYWNoZT17fSx0aGlzfSxlfSgpO3NpdC5DYWNoZT1wT2V9KTt2YXIgclh0PUgobGl0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShsaXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBkT2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7fXJldHVybiBlLmFycmF5RXE9ZnVuY3Rpb24odCxyKXtpZih0PT1udWxsfHxyPT1udWxsKXJldHVybiB0PT09cjtpZih0Lmxlbmd0aCE9PXIubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKWlmKHRbbl0hPT1yW25dKXJldHVybiExO3JldHVybiEwfSxlLm9iakVxPWZ1bmN0aW9uKHQscil7aWYodD09bnVsbHx8cj09bnVsbClyZXR1cm4gdD09PXI7dmFyIG49T2JqZWN0LmtleXModCkuc29ydCgpLGk9T2JqZWN0LmtleXMocikuc29ydCgpLG89bi5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIHRbc119KSxhPWkubWFwKGZ1bmN0aW9uKHMpe3JldHVybiByW3NdfSk7cmV0dXJuIGUuYXJyYXlFcShuLGkpJiZlLmFycmF5RXEobyxhKX0sZS5zdHJpY3RFcT1mdW5jdGlvbih0LHIpe3JldHVybiB0PT09cn0sZS5kZWZhdWx0cz1mdW5jdGlvbih0KXtmb3IodmFyIHI9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspcltuLTFdPWFyZ3VtZW50c1tuXTtpZih0PT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IHVuZGVmaW5lZCBvciBudWxsIHRvIG9iamVjdCIpO3ZhciBpPU9iamVjdCh0KTtyZXR1cm4gci5mb3JFYWNoKGZ1bmN0aW9uKG8pe2lmKG8hPW51bGwpZm9yKHZhciBhIGluIG8pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sYSkmJihpW2FdPW9bYV0pfSksaX0sZX0oKTtsaXQuTWV0aG9kcz1kT2V9KTt2YXIgblh0PUgoY2l0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShjaXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBtT2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7fXJldHVybiBlLmNvbWJpbmVXaGl0ZXNwYWNlPWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoL1sgXHRdKy9nLCIgIil9LGUuaXNOb3RFbXB0eVN0cmluZz1mdW5jdGlvbih0KXtyZXR1cm4gdCYmdC50cmltKCkhPT0iIn0sZS50cmltU3RhcnQ9ZnVuY3Rpb24odCxyKXtpZighdClyZXR1cm4gdDt2YXIgbj10LnNwbGl0KCIiKSxpPXI/ZnVuY3Rpb24obyl7cmV0dXJuIG8uc3BsaXQocikuc29tZShlLmlzTm90RW1wdHlTdHJpbmcpfTplLmlzTm90RW1wdHlTdHJpbmc7cmV0dXJuIG4ucmVkdWNlKGZ1bmN0aW9uKG8sYSl7cmV0dXJuIGkobythKT9vK2E6b30sIiIpfSxlLnRyaW1FbmQ9ZnVuY3Rpb24odCxyKXtpZighdClyZXR1cm4gdDt2YXIgbj10LnNwbGl0KCIiKTtyZXR1cm4gbi5yZXZlcnNlKCksbj1lLnRyaW1TdGFydChuLmpvaW4oIiIpLHIpLnNwbGl0KCIiKSxuLnJldmVyc2UoKSxuLmpvaW4oIiIpfSxlfSgpO2NpdC5TdHJpbmdNZXRob2RzPW1PZX0pO3ZhciBpWHQ9SCh1aXQ9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHVpdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGdPZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt0aGlzLldvcmREaXZpZGVyUmVnRXhwPW5ldyBSZWdFeHAoIlxcVyIpLHRoaXMuV2hpdGVzcGFjZVJlZ0V4cD1uZXcgUmVnRXhwKCJcXHMiKX1yZXR1cm4gZS5wcm90b3R5cGUudG9rZW5pemU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcztyZXR1cm4gdC5zcGxpdCgiIikucmVkdWNlKGZ1bmN0aW9uKG4saSl7cmV0dXJuIG4uc2xpY2UoMCwtMSkuY29uY2F0KHIuc2hvdWxkQ3JlYXRlTmV3VG9rZW4obltuLmxlbmd0aC0xXSxpKSl9LFsiIl0pfSxlLnByb3RvdHlwZS5zaG91bGRDcmVhdGVOZXdUb2tlbj1mdW5jdGlvbih0LHIpe2lmKCF0KXJldHVybltyXTt2YXIgbj10W3QubGVuZ3RoLTFdO3JldHVybiB0aGlzLldoaXRlc3BhY2VSZWdFeHAudGVzdChuKSYmdGhpcy5XaGl0ZXNwYWNlUmVnRXhwLnRlc3Qocik/W3Qrcl06dGhpcy5XaGl0ZXNwYWNlUmVnRXhwLnRlc3Qobil8fHRoaXMuV2hpdGVzcGFjZVJlZ0V4cC50ZXN0KHIpP1t0LHJdOnRoaXMuV29yZERpdmlkZXJSZWdFeHAudGVzdChuKT9uPT09cj9bdCtyXTpbdCxyXTpbdCtyXX0sZX0oKTt1aXQuVG9rZW5pemVyPWdPZX0pO3ZhciBwUz1IKHVGPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGhGKGUpe2Zvcih2YXIgdCBpbiBlKXVGLmhhc093blByb3BlcnR5KHQpfHwodUZbdF09ZVt0XSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHVGLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtoRihlWHQoKSk7aEYoclh0KCkpO2hGKG5YdCgpKTtoRihpWHQoKSl9KTt2YXIgYVh0PUgoaGl0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShoaXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvWHQ9cFMoKSxfT2U9e3RleHRSb3RhdGlvbjowLHRleHRTaGVhcjowLHhBbGlnbjoibGVmdCIseUFsaWduOiJ0b3AifSxmRj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxyLG4pe3RoaXMuX21lYXN1cmVyPXQsdGhpcy5fcGVuRmFjdG9yeT1yLHRoaXMuX3dyYXBwZXI9bn1yZXR1cm4gZS5wcm90b3R5cGUubWVhc3VyZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX21lYXN1cmVyPXQsdGhpc30sZS5wcm90b3R5cGUud3JhcHBlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fd3JhcHBlcj10LHRoaXN9LGUucHJvdG90eXBlLnBlbkZhY3Rvcnk9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BlbkZhY3Rvcnk9dCx0aGlzfSxlLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0LHIsbixpLG8pe2lmKGk9PT12b2lkIDAmJihpPXt9KSxpPW9YdC5NZXRob2RzLmRlZmF1bHRzKHt9LF9PZSxpKSxlLlN1cHBvcnRlZFJvdGF0aW9uLmluZGV4T2YoaS50ZXh0Um90YXRpb24pPT09LTEpdGhyb3cgbmV3IEVycm9yKCJ1bnN1cHBvcnRlZCByb3RhdGlvbiAtICIraS50ZXh0Um90YXRpb24rIi4gU3VwcG9ydGVkIHJvdGF0aW9ucyBhcmUgIitlLlN1cHBvcnRlZFJvdGF0aW9uLmpvaW4oIiwgIikpO2lmKGkudGV4dFNoZWFyIT1udWxsJiZpLnRleHRTaGVhcjwtODB8fGkudGV4dFNoZWFyPjgwKXRocm93IG5ldyBFcnJvcigidW5zdXBwb3J0ZWQgc2hlYXIgYW5nbGUgLSAiK2kudGV4dFNoZWFyKyIuIE11c3QgYmUgYmV0d2VlbiAtODAgYW5kIDgwIik7dmFyIGE9TWF0aC5hYnMoTWF0aC5hYnMoaS50ZXh0Um90YXRpb24pLTkwKT40NSxzPWE/cjpuLGw9YT9uOnIsYz1pLnRleHRTaGVhcix1PWMqTWF0aC5QSS8xODAsaD10aGlzLl9tZWFzdXJlci5tZWFzdXJlKCkuaGVpZ2h0LGY9aCpNYXRoLnRhbih1KSxwPXMvTWF0aC5jb3ModSktTWF0aC5hYnMoZiksZD1sKk1hdGguY29zKHUpLGc9b1h0LlN0cmluZ01ldGhvZHMuY29tYmluZVdoaXRlc3BhY2UodCksXz10aGlzLl93cmFwcGVyP3RoaXMuX3dyYXBwZXIud3JhcChnLHRoaXMuX21lYXN1cmVyLHAsZCkud3JhcHBlZFRleHQ6Zyx5PV8uc3BsaXQoYApgKSx4PWUuWE9mZnNldEZhY3RvcltpLnhBbGlnbl0qcCpNYXRoLnNpbih1KSxiPWUuWU9mZnNldEZhY3RvcltpLnlBbGlnbl0qKGQteS5sZW5ndGgqaCksUz14LWIsQz1bMCwwXSxQPWkudGV4dFJvdGF0aW9uK2M7c3dpdGNoKGkudGV4dFJvdGF0aW9uKXtjYXNlIDkwOkM9W3IrUywwXTticmVhaztjYXNlLTkwOkM9Wy1TLG5dO2JyZWFrO2Nhc2UgMTgwOkM9W3IsbitTXTticmVhaztkZWZhdWx0OkM9WzAsLVNdO2JyZWFrfXZhciBrPXRoaXMuX3BlbkZhY3RvcnkuY3JlYXRlUGVuKHQse3RyYW5zbGF0ZTpDLHJvdGF0ZTpQfSxvKTt0aGlzLndyaXRlTGluZXMoeSxrLHAsaCxmLGkueEFsaWduKSxrLmRlc3Ryb3khPW51bGwmJmsuZGVzdHJveSgpfSxlLnByb3RvdHlwZS53cml0ZUxpbmVzPWZ1bmN0aW9uKHQscixuLGksbyxhKXt0LmZvckVhY2goZnVuY3Rpb24ocyxsKXt2YXIgYz1vPjA/KGwrMSkqbzpsKm87ci53cml0ZShzLG4sYSxjLChsKzEpKmkpfSl9LGV9KCk7ZkYuWE9mZnNldEZhY3Rvcj17Y2VudGVyOi41LGxlZnQ6MCxyaWdodDoxfTtmRi5ZT2Zmc2V0RmFjdG9yPXtib3R0b206MSxjZW50ZXI6LjUsdG9wOjB9O2ZGLlN1cHBvcnRlZFJvdGF0aW9uPVstOTAsMCwxODAsOTBdO2hpdC5Xcml0ZXI9ZkZ9KTt2YXIgRkE9SChwRj0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB5T2UoZSl7Zm9yKHZhciB0IGluIGUpcEYuaGFzT3duUHJvcGVydHkodCl8fChwRlt0XT1lW3RdKX1PYmplY3QuZGVmaW5lUHJvcGVydHkocEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3lPZShhWHQoKSl9KTt2YXIgZml0PUgoZEY9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGRGLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgQkE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7fXJldHVybiBlLmFwcGVuZD1mdW5jdGlvbih0LHIpe2Zvcih2YXIgbj1bXSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoO2krKyluW2ktMl09YXJndW1lbnRzW2ldO3ZhciBvPWUuY3JlYXRlLmFwcGx5KGUsW3JdLmNvbmNhdChuKSk7cmV0dXJuIHQuYXBwZW5kQ2hpbGQobyksb30sZS5jcmVhdGU9ZnVuY3Rpb24odCl7Zm9yKHZhciByPVtdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXJbbi0xXT1hcmd1bWVudHNbbl07dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0KTtyZXR1cm4gZS5hZGRDbGFzc2VzLmFwcGx5KGUsW2ldLmNvbmNhdChyKSksaX0sZS5hZGRDbGFzc2VzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgcj1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKylyW24tMV09YXJndW1lbnRzW25dO3I9ci5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIGkhPW51bGx9KSx0LmNsYXNzTGlzdCE9bnVsbD9yLmZvckVhY2goZnVuY3Rpb24oaSl7dC5jbGFzc0xpc3QuYWRkKGkpfSk6dC5zZXRBdHRyaWJ1dGUoImNsYXNzIixyLmpvaW4oIiAiKSl9LGUuZ2V0RGltZW5zaW9ucz1mdW5jdGlvbih0KXtpZih0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCl0cnl7dmFyIHI9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPXIud2lkdGgsaT1yLmhlaWdodDtyZXR1cm57d2lkdGg6bixoZWlnaHQ6aX19Y2F0Y2gobyl7fXJldHVybntoZWlnaHQ6MCx3aWR0aDowfX0sZX0oKTtkRi5IdG1sVXRpbHM9QkE7dmFyIHZPZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxyLG4pe249PT12b2lkIDAmJihuPSExKTt2YXIgaT10aGlzO3RoaXMuZWxlbWVudD10LHRoaXMuY2xhc3NOYW1lPXIsdGhpcy5hZGRUaXRsZT1uLHRoaXMuY3JlYXRlUnVsZXI9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24obyl7dmFyIGE9QkEuYXBwZW5kKGkuZWxlbWVudCwic3BhbiIsInRleHQtdG1wIixpLmNsYXNzTmFtZSk7YS50ZXh0Q29udGVudD1vO3ZhciBzPUJBLmdldERpbWVuc2lvbnMoYSk7cmV0dXJuIGkuZWxlbWVudC5yZW1vdmVDaGlsZChhKSxzfX0sdGhpcy5jcmVhdGVQZW49ZnVuY3Rpb24obyxhLHMpe3M9PW51bGwmJihzPWkuZWxlbWVudCk7dmFyIGw9QkEuYXBwZW5kKHMsImRpdiIsInRleHQtYmxvY2siLGkuY2xhc3NOYW1lKTtyZXR1cm4gbC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLGwuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwgLTFlbSkgIisoInRyYW5zbGF0ZSgiK2EudHJhbnNsYXRlWzBdKyJweCwgIithLnRyYW5zbGF0ZVsxXSsicHgpICIpKygicm90YXRlKCIrYS5yb3RhdGUrImRlZykiKSxsLnN0eWxlLnRyYW5zZm9ybU9yaWdpbj0iMCAxLjJlbSIsaS5hZGRUaXRsZSYmbC5zZXRBdHRyaWJ1dGUoInRpdGxlIixvKSxpLmNyZWF0ZUh0bWxMaW5lUGVuKGwpfX1yZXR1cm4gZS5wcm90b3R5cGUuc2V0QWRkVGl0bGU9ZnVuY3Rpb24odCl7dGhpcy5hZGRUaXRsZT10fSxlLnByb3RvdHlwZS5jcmVhdGVIdG1sTGluZVBlbj1mdW5jdGlvbih0KXtyZXR1cm57d3JpdGU6ZnVuY3Rpb24ocixuLGksbyxhKXt2YXIgcz1CQS5hcHBlbmQodCwiZGl2IiwidGV4dC1saW5lIik7cy50ZXh0Q29udGVudD1yLHMuc3R5bGUud2lkdGg9bisicHgiLHMuc3R5bGUudGV4dEFsaWduPWkscy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHMuc3R5bGUud2hpdGVTcGFjZT0ibm93cmFwIixzLnN0eWxlLnRvcD1hKyJweCIscy5zdHlsZS5sZWZ0PW8rInB4In19fSxlfSgpO2RGLkh0bWxDb250ZXh0PXZPZX0pO3ZhciBjWHQ9SChtRj0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobUYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB4T2U9RkEoKSxzWHQ9Zml0KCksWGc9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7fXJldHVybiBlLmFwcGVuZD1mdW5jdGlvbih0LHIpe2Zvcih2YXIgbj1bXSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoO2krKyluW2ktMl09YXJndW1lbnRzW2ldO3ZhciBvPWUuY3JlYXRlLmFwcGx5KGUsW3JdLmNvbmNhdChuKSk7cmV0dXJuIHQuYXBwZW5kQ2hpbGQobyksb30sZS5jcmVhdGU9ZnVuY3Rpb24odCl7Zm9yKHZhciByPVtdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXJbbi0xXT1hcmd1bWVudHNbbl07dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGUuU1ZHX05TLHQpO3JldHVybiBzWHQuSHRtbFV0aWxzLmFkZENsYXNzZXMuYXBwbHkoc1h0Lkh0bWxVdGlscyxbaV0uY29uY2F0KHIpKSxpfSxlLmdldERpbWVuc2lvbnM9ZnVuY3Rpb24odCl7aWYodC5nZXRCQm94KXRyeXt2YXIgcj10LmdldEJCb3goKSxuPXIud2lkdGgsaT1yLmhlaWdodDtyZXR1cm57d2lkdGg6bixoZWlnaHQ6aX19Y2F0Y2gobyl7fXJldHVybntoZWlnaHQ6MCx3aWR0aDowfX0sZX0oKTtYZy5TVkdfTlM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjttRi5TdmdVdGlscz1YZzt2YXIgbFh0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LHIsbil7bj09PXZvaWQgMCYmKG49ITEpO3ZhciBpPXRoaXM7dGhpcy5lbGVtZW50PXQsdGhpcy5jbGFzc05hbWU9cix0aGlzLmFkZFRpdGxlRWxlbWVudD1uLHRoaXMuY3JlYXRlUnVsZXI9ZnVuY3Rpb24oKXt2YXIgbz1pLmdldFRleHRFbGVtZW50cyhpLmVsZW1lbnQpLGE9by5wYXJlbnRFbGVtZW50LHM9by5jb250YWluZXJFbGVtZW50LGw9by50ZXh0RWxlbWVudDtyZXR1cm4gZnVuY3Rpb24oYyl7YS5hcHBlbmRDaGlsZChzKSxsLnRleHRDb250ZW50PWM7dmFyIHU9WGcuZ2V0RGltZW5zaW9ucyhsKTtyZXR1cm4gYS5yZW1vdmVDaGlsZChzKSx1fX0sdGhpcy5jcmVhdGVQZW49ZnVuY3Rpb24obyxhLHMpe3M9PW51bGwmJihzPWkuZWxlbWVudCk7dmFyIGw9WGcuYXBwZW5kKHMsImciLCJ0ZXh0LWNvbnRhaW5lciIsaS5jbGFzc05hbWUpO2kuYWRkVGl0bGVFbGVtZW50JiYoWGcuYXBwZW5kKGwsInRpdGxlIikudGV4dENvbnRlbnQ9byxsLnNldEF0dHJpYnV0ZSgidGl0bGUiLG8pKTt2YXIgYz1YZy5hcHBlbmQobCwiZyIsInRleHQtYXJlYSIpO3JldHVybiBjLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrYS50cmFuc2xhdGVbMF0rIiwiK2EudHJhbnNsYXRlWzFdKyIpIisoInJvdGF0ZSgiK2Eucm90YXRlKyIpIikpLGkuY3JlYXRlU3ZnTGluZVBlbihjKX19cmV0dXJuIGUucHJvdG90eXBlLnNldEFkZFRpdGxlRWxlbWVudD1mdW5jdGlvbih0KXt0aGlzLmFkZFRpdGxlRWxlbWVudD10fSxlLnByb3RvdHlwZS5jcmVhdGVTdmdMaW5lUGVuPWZ1bmN0aW9uKHQpe3JldHVybnt3cml0ZTpmdW5jdGlvbihyLG4saSxvLGEpe28rPW4qeE9lLldyaXRlci5YT2Zmc2V0RmFjdG9yW2ldO3ZhciBzPVhnLmFwcGVuZCh0LCJ0ZXh0IiwidGV4dC1saW5lIik7cy50ZXh0Q29udGVudD1yLHMuc2V0QXR0cmlidXRlKCJ0ZXh0LWFuY2hvciIsZS5BbmNob3JNYXBbaV0pLHMuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitvKyIsIithKyIpIikscy5zZXRBdHRyaWJ1dGUoInkiLCItMC4yNWVtIil9fX0sZS5wcm90b3R5cGUuZ2V0VGV4dEVsZW1lbnRzPWZ1bmN0aW9uKHQpe2lmKHQudGFnTmFtZT09PSJ0ZXh0Iil7dmFyIHI9dC5wYXJlbnRFbGVtZW50O3JldHVybiByPT1udWxsJiYocj10LnBhcmVudE5vZGUpLHIucmVtb3ZlQ2hpbGQodCkse2NvbnRhaW5lckVsZW1lbnQ6dCxwYXJlbnRFbGVtZW50OnIsdGV4dEVsZW1lbnQ6dH19dmFyIG49dC5xdWVyeVNlbGVjdG9yKCJ0ZXh0Iik7aWYobiE9bnVsbCl7dmFyIHI9bi5wYXJlbnRFbGVtZW50O3JldHVybiByPT1udWxsJiYocj1uLnBhcmVudE5vZGUpLHIucmVtb3ZlQ2hpbGQobikse2NvbnRhaW5lckVsZW1lbnQ6bixwYXJlbnRFbGVtZW50OnIsdGV4dEVsZW1lbnQ6bn19dmFyIGk9WGcuY3JlYXRlKCJ0ZXh0Iix0aGlzLmNsYXNzTmFtZSk7cmV0dXJue2NvbnRhaW5lckVsZW1lbnQ6aSxwYXJlbnRFbGVtZW50OnQsdGV4dEVsZW1lbnQ6aX19LGV9KCk7bFh0LkFuY2hvck1hcD17Y2VudGVyOiJtaWRkbGUiLGxlZnQ6InN0YXJ0IixyaWdodDoiZW5kIn07bUYuU3ZnQ29udGV4dD1sWHR9KTt2YXIgdVh0PUgocGl0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShwaXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBiT2U9RkEoKSx3T2U9IiM0NDQiLFNPZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxyLG4pe3I9PT12b2lkIDAmJihyPTEwKSxuPT09dm9pZCAwJiYobj17fSk7dmFyIGk9dGhpczt0aGlzLmN0eD10LHRoaXMubGluZUhlaWdodD1yLHRoaXMuc3R5bGU9bix0aGlzLmNyZWF0ZVJ1bGVyPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKG8pe2kuY3R4LmZvbnQ9aS5zdHlsZS5mb250O3ZhciBhPWkuY3R4Lm1lYXN1cmVUZXh0KG8pLndpZHRoO3JldHVybnt3aWR0aDphLGhlaWdodDppLmxpbmVIZWlnaHR9fX0sdGhpcy5jcmVhdGVQZW49ZnVuY3Rpb24obyxhLHMpe3JldHVybiBzPT1udWxsJiYocz1pLmN0eCkscy5zYXZlKCkscy50cmFuc2xhdGUoYS50cmFuc2xhdGVbMF0sYS50cmFuc2xhdGVbMV0pLHMucm90YXRlKGEucm90YXRlKk1hdGguUEkvMTgwKSxpLmNyZWF0ZUNhbnZhc1BlbihzKX0sdGhpcy5zdHlsZS5maWxsPT09dm9pZCAwJiYodGhpcy5zdHlsZS5maWxsPXdPZSl9cmV0dXJuIGUucHJvdG90eXBlLmNyZWF0ZUNhbnZhc1Blbj1mdW5jdGlvbih0KXt2YXIgcj10aGlzO3JldHVybntkZXN0cm95OmZ1bmN0aW9uKCl7dC5yZXN0b3JlKCl9LHdyaXRlOmZ1bmN0aW9uKG4saSxvLGEscyl7YSs9aSpiT2UuV3JpdGVyLlhPZmZzZXRGYWN0b3Jbb10sdC50ZXh0QWxpZ249byxyLnN0eWxlLmZvbnQhPW51bGwmJih0LmZvbnQ9ci5zdHlsZS5mb250KSxyLnN0eWxlLmZpbGwhPW51bGwmJih0LmZpbGxTdHlsZT1yLnN0eWxlLmZpbGwsdC5maWxsVGV4dChuLGEscykpLHIuc3R5bGUuc3Ryb2tlIT1udWxsJiYodC5zdHJva2VTdHlsZT1yLnN0eWxlLmZpbGwsdC5zdHJva2VUZXh0KG4sYSxzKSl9fX0sZX0oKTtwaXQuQ2FudmFzQ29udGV4dD1TT2V9KTt2YXIgbWl0PUgoZ0Y9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZGl0KGUpe2Zvcih2YXIgdCBpbiBlKWdGLmhhc093blByb3BlcnR5KHQpfHwoZ0ZbdF09ZVt0XSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGdGLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtkaXQoY1h0KCkpO2RpdCh1WHQoKSk7ZGl0KGZpdCgpKX0pO3ZhciBfRj1IKGdpdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZ2l0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaFh0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt0LmNyZWF0ZVJ1bGVyIT1udWxsP3RoaXMucnVsZXI9dC5jcmVhdGVSdWxlcigpOnRoaXMucnVsZXI9dH1yZXR1cm4gZS5wcm90b3R5cGUubWVhc3VyZT1mdW5jdGlvbih0KXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9ZS5IRUlHSFRfVEVYVCksdGhpcy5ydWxlcih0KX0sZX0oKTtoWHQuSEVJR0hUX1RFWFQ9ImJkcHFsIjtnaXQuQWJzdHJhY3RNZWFzdXJlcj1oWHR9KTt2YXIgX2l0PUgoSEE9PnsidXNlIHN0cmljdCI7dmFyIE1PZT1IQSYmSEEuX19leHRlbmRzfHxmdW5jdGlvbigpe3ZhciBlPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LHIpe3QuX19wcm90b19fPXJ9fHxmdW5jdGlvbih0LHIpe2Zvcih2YXIgbiBpbiByKXIuaGFzT3duUHJvcGVydHkobikmJih0W25dPXJbbl0pfTtyZXR1cm4gZnVuY3Rpb24odCxyKXtlKHQscik7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH10LnByb3RvdHlwZT1yPT09bnVsbD9PYmplY3QuY3JlYXRlKHIpOihuLnByb3RvdHlwZT1yLnByb3RvdHlwZSxuZXcgbil9fSgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShIQSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHlGPV9GKCksRU9lPWZ1bmN0aW9uKGUpe01PZSh0LGUpO2Z1bmN0aW9uIHQocixuKXtuPT09dm9pZCAwJiYobj0hMSk7dmFyIGk9ZS5jYWxsKHRoaXMscil8fHRoaXM7cmV0dXJuIGkudXNlR3VhcmRzPW4saX1yZXR1cm4gdC5wcm90b3R5cGUuX2FkZEd1YXJkcz1mdW5jdGlvbihyKXtyZXR1cm4geUYuQWJzdHJhY3RNZWFzdXJlci5IRUlHSFRfVEVYVCtyK3lGLkFic3RyYWN0TWVhc3VyZXIuSEVJR0hUX1RFWFR9LHQucHJvdG90eXBlLl9tZWFzdXJlTGluZT1mdW5jdGlvbihyLG4pe249PT12b2lkIDAmJihuPSExKTt2YXIgaT10aGlzLnVzZUd1YXJkc3x8bnx8L15bXHQgXSQvLnRlc3Qociksbz1pP3RoaXMuX2FkZEd1YXJkcyhyKTpyLGE9ZS5wcm90b3R5cGUubWVhc3VyZS5jYWxsKHRoaXMsbyk7cmV0dXJuIGEud2lkdGgtPWk/Mip0aGlzLmdldEd1YXJkV2lkdGgoKTowLGF9LHQucHJvdG90eXBlLm1lYXN1cmU9ZnVuY3Rpb24ocil7dmFyIG49dGhpcztpZihyPT09dm9pZCAwJiYocj15Ri5BYnN0cmFjdE1lYXN1cmVyLkhFSUdIVF9URVhUKSxyLnRyaW0oKT09PSIiKXJldHVybnt3aWR0aDowLGhlaWdodDowfTt2YXIgaT1yLnRyaW0oKS5zcGxpdChgCmApLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gbi5fbWVhc3VyZUxpbmUobyl9KTtyZXR1cm57aGVpZ2h0OmkucmVkdWNlKGZ1bmN0aW9uKG8sYSl7cmV0dXJuIG8rYS5oZWlnaHR9LDApLHdpZHRoOmkucmVkdWNlKGZ1bmN0aW9uKG8sYSl7cmV0dXJuIE1hdGgubWF4KG8sYS53aWR0aCl9LDApfX0sdC5wcm90b3R5cGUuZ2V0R3VhcmRXaWR0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd1YXJkV2lkdGg9PW51bGwmJih0aGlzLmd1YXJkV2lkdGg9ZS5wcm90b3R5cGUubWVhc3VyZS5jYWxsKHRoaXMpLndpZHRoKSx0aGlzLmd1YXJkV2lkdGh9LHR9KHlGLkFic3RyYWN0TWVhc3VyZXIpO0hBLk1lYXN1cmVyPUVPZX0pO3ZhciB5aXQ9SChWQT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgVE9lPVZBJiZWQS5fX2V4dGVuZHN8fGZ1bmN0aW9uKCl7dmFyIGU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQscil7dC5fX3Byb3RvX189cn18fGZ1bmN0aW9uKHQscil7Zm9yKHZhciBuIGluIHIpci5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09cltuXSl9O3JldHVybiBmdW5jdGlvbih0LHIpe2UodCxyKTtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fXQucHJvdG90eXBlPXI9PT1udWxsP09iamVjdC5jcmVhdGUocik6KG4ucHJvdG90eXBlPXIucHJvdG90eXBlLG5ldyBuKX19KCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFZBLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgQ09lPV9pdCgpLEFPZT1mdW5jdGlvbihlKXtUT2UodCxlKTtmdW5jdGlvbiB0KCl7cmV0dXJuIGUhPT1udWxsJiZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gdC5wcm90b3R5cGUuX21lYXN1cmVDaGFyYWN0ZXI9ZnVuY3Rpb24ocil7cmV0dXJuIGUucHJvdG90eXBlLl9tZWFzdXJlTGluZS5jYWxsKHRoaXMscil9LHQucHJvdG90eXBlLl9tZWFzdXJlTGluZT1mdW5jdGlvbihyKXt2YXIgbj10aGlzLGk9ci5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKG8pe3JldHVybiBuLl9tZWFzdXJlQ2hhcmFjdGVyKG8pfSk7cmV0dXJue2hlaWdodDppLnJlZHVjZShmdW5jdGlvbihvLGEpe3JldHVybiBNYXRoLm1heChvLGEuaGVpZ2h0KX0sMCksd2lkdGg6aS5yZWR1Y2UoZnVuY3Rpb24obyxhKXtyZXR1cm4gbythLndpZHRofSwwKX19LHR9KENPZS5NZWFzdXJlcik7VkEuQ2hhcmFjdGVyTWVhc3VyZXI9QU9lfSk7dmFyIHZpdD1IKFVBPT57InVzZSBzdHJpY3QiO3ZhciBQT2U9VUEmJlVBLl9fZXh0ZW5kc3x8ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxyKXt0Ll9fcHJvdG9fXz1yfXx8ZnVuY3Rpb24odCxyKXtmb3IodmFyIG4gaW4gcilyLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1yW25dKX07cmV0dXJuIGZ1bmN0aW9uKHQscil7ZSh0LHIpO2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9dC5wcm90b3R5cGU9cj09PW51bGw/T2JqZWN0LmNyZWF0ZShyKToobi5wcm90b3R5cGU9ci5wcm90b3R5cGUsbmV3IG4pfX0oKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoVUEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBJT2U9cFMoKSxMT2U9eWl0KCksa09lPWZ1bmN0aW9uKGUpe1BPZSh0LGUpO2Z1bmN0aW9uIHQocixuKXt2YXIgaT1lLmNhbGwodGhpcyxyLG4pfHx0aGlzO3JldHVybiBpLmNhY2hlPW5ldyBJT2UuQ2FjaGUoZnVuY3Rpb24obyl7cmV0dXJuIGkuX21lYXN1cmVDaGFyYWN0ZXJOb3RGcm9tQ2FjaGUobyl9KSxpfXJldHVybiB0LnByb3RvdHlwZS5fbWVhc3VyZUNoYXJhY3Rlck5vdEZyb21DYWNoZT1mdW5jdGlvbihyKXtyZXR1cm4gZS5wcm90b3R5cGUuX21lYXN1cmVDaGFyYWN0ZXIuY2FsbCh0aGlzLHIpfSx0LnByb3RvdHlwZS5fbWVhc3VyZUNoYXJhY3Rlcj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5jYWNoZS5nZXQocil9LHQucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5jYWNoZS5jbGVhcigpfSx0fShMT2UuQ2hhcmFjdGVyTWVhc3VyZXIpO1VBLkNhY2hlQ2hhcmFjdGVyTWVhc3VyZXI9a09lfSk7dmFyIGZYdD1IKHFBPT57InVzZSBzdHJpY3QiO3ZhciBST2U9cUEmJnFBLl9fZXh0ZW5kc3x8ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxyKXt0Ll9fcHJvdG9fXz1yfXx8ZnVuY3Rpb24odCxyKXtmb3IodmFyIG4gaW4gcilyLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1yW25dKX07cmV0dXJuIGZ1bmN0aW9uKHQscil7ZSh0LHIpO2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9dC5wcm90b3R5cGU9cj09PW51bGw/T2JqZWN0LmNyZWF0ZShyKToobi5wcm90b3R5cGU9ci5wcm90b3R5cGUsbmV3IG4pfX0oKTtPYmplY3QuZGVmaW5lUHJvcGVydHkocUEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBOT2U9cFMoKSxET2U9X0YoKSxPT2U9dml0KCksek9lPWZ1bmN0aW9uKGUpe1JPZSh0LGUpO2Z1bmN0aW9uIHQocil7dmFyIG49ZS5jYWxsKHRoaXMscil8fHRoaXM7cmV0dXJuIG4uZGltQ2FjaGU9bmV3IE5PZS5DYWNoZShmdW5jdGlvbihpKXtyZXR1cm4gbi5fbWVhc3VyZU5vdEZyb21DYWNoZShpKX0pLG59cmV0dXJuIHQucHJvdG90eXBlLl9tZWFzdXJlTm90RnJvbUNhY2hlPWZ1bmN0aW9uKHIpe3JldHVybiBlLnByb3RvdHlwZS5tZWFzdXJlLmNhbGwodGhpcyxyKX0sdC5wcm90b3R5cGUubWVhc3VyZT1mdW5jdGlvbihyKXtyZXR1cm4gcj09PXZvaWQgMCYmKHI9RE9lLkFic3RyYWN0TWVhc3VyZXIuSEVJR0hUX1RFWFQpLHRoaXMuZGltQ2FjaGUuZ2V0KHIpfSx0LnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuZGltQ2FjaGUuY2xlYXIoKSxlLnByb3RvdHlwZS5yZXNldC5jYWxsKHRoaXMpfSx0fShPT2UuQ2FjaGVDaGFyYWN0ZXJNZWFzdXJlcik7cUEuQ2FjaGVNZWFzdXJlcj16T2V9KTt2YXIgeGl0PUgodkY9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gR0EoZSl7Zm9yKHZhciB0IGluIGUpdkYuaGFzT3duUHJvcGVydHkodCl8fCh2Rlt0XT1lW3RdKX1PYmplY3QuZGVmaW5lUHJvcGVydHkodkYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO0dBKF9GKCkpO0dBKHZpdCgpKTtHQShmWHQoKSk7R0EoeWl0KCkpO0dBKF9pdCgpKX0pO3ZhciB3aXQ9SChiaXQ9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGJpdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFdBPXBTKCksRk9lPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMubWF4TGluZXMoMS8wKSx0aGlzLnRleHRUcmltbWluZygiZWxsaXBzaXMiKSx0aGlzLmFsbG93QnJlYWtpbmdXb3JkcyghMSksdGhpcy5fdG9rZW5pemVyPW5ldyBXQS5Ub2tlbml6ZXIsdGhpcy5fYnJlYWtpbmdDaGFyYWN0ZXI9Ii0ifXJldHVybiBlLnByb3RvdHlwZS5tYXhMaW5lcz1mdW5jdGlvbih0KXtyZXR1cm4gdD09bnVsbD90aGlzLl9tYXhMaW5lczoodGhpcy5fbWF4TGluZXM9dCx0aGlzKX0sZS5wcm90b3R5cGUudGV4dFRyaW1taW5nPWZ1bmN0aW9uKHQpe2lmKHQ9PW51bGwpcmV0dXJuIHRoaXMuX3RleHRUcmltbWluZztpZih0IT09ImVsbGlwc2lzIiYmdCE9PSJub25lIil0aHJvdyBuZXcgRXJyb3IodCsiIC0gdW5zdXBwb3J0ZWQgdGV4dCB0cmltbWluZyBvcHRpb24uIik7cmV0dXJuIHRoaXMuX3RleHRUcmltbWluZz10LHRoaXN9LGUucHJvdG90eXBlLmFsbG93QnJlYWtpbmdXb3Jkcz1mdW5jdGlvbih0KXtyZXR1cm4gdD09bnVsbD90aGlzLl9hbGxvd0JyZWFraW5nV29yZHM6KHRoaXMuX2FsbG93QnJlYWtpbmdXb3Jkcz10LHRoaXMpfSxlLnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKHQscixuLGkpe3ZhciBvPXRoaXM7aT09PXZvaWQgMCYmKGk9MS8wKTt2YXIgYT17bm9Ccm9rZVdvcmRzOjAsbm9MaW5lczowLG9yaWdpbmFsVGV4dDp0LHRydW5jYXRlZFRleHQ6IiIsd3JhcHBlZFRleHQ6IiJ9LHM9e2F2YWlsYWJsZUxpbmVzOk1hdGgubWluKE1hdGguZmxvb3IoaS9yLm1lYXN1cmUoKS5oZWlnaHQpLHRoaXMuX21heExpbmVzKSxhdmFpbGFibGVXaWR0aDpuLGNhbkZpdFRleHQ6ITAsY3VycmVudExpbmU6IiIsd3JhcHBpbmc6YX0sbD10LnNwbGl0KGAKYCk7cmV0dXJuIGwucmVkdWNlKGZ1bmN0aW9uKGMsdSxoKXtyZXR1cm4gby5icmVha0xpbmVUb0ZpdFdpZHRoKGMsdSxoIT09bC5sZW5ndGgtMSxyKX0scykud3JhcHBpbmd9LGUucHJvdG90eXBlLmJyZWFrTGluZVRvRml0V2lkdGg9ZnVuY3Rpb24odCxyLG4saSl7dmFyIG89dGhpczshdC5jYW5GaXRUZXh0JiZ0LndyYXBwaW5nLnRydW5jYXRlZFRleHQhPT0iIiYmKHQud3JhcHBpbmcudHJ1bmNhdGVkVGV4dCs9YApgKTt2YXIgYT10aGlzLl90b2tlbml6ZXIudG9rZW5pemUocik7dD1hLnJlZHVjZShmdW5jdGlvbihsLGMpe3JldHVybiBvLndyYXBOZXh0VG9rZW4oYyxsLGkpfSx0KTt2YXIgcz1XQS5TdHJpbmdNZXRob2RzLnRyaW1FbmQodC5jdXJyZW50TGluZSk7cmV0dXJuIHQud3JhcHBpbmcubm9MaW5lcys9KyhzIT09IiIpLHQud3JhcHBpbmcubm9MaW5lcz09PXQuYXZhaWxhYmxlTGluZXMmJnRoaXMuX3RleHRUcmltbWluZyE9PSJub25lIiYmbj90LmNhbkZpdFRleHQ9ITE6dC53cmFwcGluZy53cmFwcGVkVGV4dCs9cyx0LmN1cnJlbnRMaW5lPWAKYCx0fSxlLnByb3RvdHlwZS5jYW5GaXRUb2tlbj1mdW5jdGlvbih0LHIsbil7dmFyIGk9dGhpcyxvPXQuc3BsaXQoIiIpLm1hcChmdW5jdGlvbihhLHMpe3JldHVybiBzIT09dC5sZW5ndGgtMT9hK2kuX2JyZWFraW5nQ2hhcmFjdGVyOmF9KTtyZXR1cm4gbi5tZWFzdXJlKHQpLndpZHRoPD1yfHxvLmV2ZXJ5KGZ1bmN0aW9uKGEpe3JldHVybiBuLm1lYXN1cmUoYSkud2lkdGg8PXJ9KX0sZS5wcm90b3R5cGUuYWRkRWxsaXBzaXM9ZnVuY3Rpb24odCxyLG4pe2lmKHRoaXMuX3RleHRUcmltbWluZz09PSJub25lIilyZXR1cm57cmVtYWluaW5nVG9rZW46IiIsd3JhcHBlZFRva2VuOnR9O3ZhciBpPXQuc3Vic3RyaW5nKDApLnRyaW0oKSxvPW4ubWVhc3VyZShpKS53aWR0aCxhPW4ubWVhc3VyZSgiLi4uIikud2lkdGgscz10Lmxlbmd0aD4wJiZ0WzBdPT09YApgP2AKYDoiIjtpZihyPD1hKXt2YXIgbD1hLzMsYz1NYXRoLmZsb29yKHIvbCk7cmV0dXJue3JlbWFpbmluZ1Rva2VuOnQsd3JhcHBlZFRva2VuOnMrIi4uLiIuc3Vic3RyKDAsYyl9fWZvcig7bythPnI7KWk9V0EuU3RyaW5nTWV0aG9kcy50cmltRW5kKGkuc3Vic3RyKDAsaS5sZW5ndGgtMSkpLG89bi5tZWFzdXJlKGkpLndpZHRoO3JldHVybntyZW1haW5pbmdUb2tlbjpXQS5TdHJpbmdNZXRob2RzLnRyaW1FbmQodC5zdWJzdHJpbmcoaS5sZW5ndGgpLCItIikudHJpbSgpLHdyYXBwZWRUb2tlbjpzK2krIi4uLiJ9fSxlLnByb3RvdHlwZS53cmFwTmV4dFRva2VuPWZ1bmN0aW9uKHQscixuKXtpZighci5jYW5GaXRUZXh0fHxyLmF2YWlsYWJsZUxpbmVzPT09ci53cmFwcGluZy5ub0xpbmVzfHwhdGhpcy5jYW5GaXRUb2tlbih0LHIuYXZhaWxhYmxlV2lkdGgsbikpcmV0dXJuIHRoaXMuZmluaXNoV3JhcHBpbmcodCxyLG4pO2Zvcih2YXIgaT10O2k7KXt2YXIgbz10aGlzLmJyZWFrVG9rZW5Ub0ZpdEluV2lkdGgoaSxyLmN1cnJlbnRMaW5lLHIuYXZhaWxhYmxlV2lkdGgsbik7aWYoci5jdXJyZW50TGluZT1vLmxpbmUsaT1vLnJlbWFpbmluZ1Rva2VuLGkhPW51bGwpaWYoci53cmFwcGluZy5ub0Jyb2tlV29yZHMrPStvLmJyZWFrV29yZCwrK3Iud3JhcHBpbmcubm9MaW5lcyxyLmF2YWlsYWJsZUxpbmVzPT09ci53cmFwcGluZy5ub0xpbmVzKXt2YXIgYT10aGlzLmFkZEVsbGlwc2lzKHIuY3VycmVudExpbmUsci5hdmFpbGFibGVXaWR0aCxuKTtyZXR1cm4gci53cmFwcGluZy53cmFwcGVkVGV4dCs9YS53cmFwcGVkVG9rZW4sci53cmFwcGluZy50cnVuY2F0ZWRUZXh0Kz1hLnJlbWFpbmluZ1Rva2VuK2ksci5jdXJyZW50TGluZT1gCmAscn1lbHNlIHIud3JhcHBpbmcud3JhcHBlZFRleHQrPVdBLlN0cmluZ01ldGhvZHMudHJpbUVuZChyLmN1cnJlbnRMaW5lKSxyLmN1cnJlbnRMaW5lPWAKYH1yZXR1cm4gcn0sZS5wcm90b3R5cGUuZmluaXNoV3JhcHBpbmc9ZnVuY3Rpb24odCxyLG4pe2lmKHIuY2FuRml0VGV4dCYmci5hdmFpbGFibGVMaW5lcyE9PXIud3JhcHBpbmcubm9MaW5lcyYmdGhpcy5fdGV4dFRyaW1taW5nIT09Im5vbmUiKXt2YXIgaT10aGlzLmFkZEVsbGlwc2lzKHIuY3VycmVudExpbmUrdCxyLmF2YWlsYWJsZVdpZHRoLG4pO3Iud3JhcHBpbmcud3JhcHBlZFRleHQrPWkud3JhcHBlZFRva2VuLHIud3JhcHBpbmcudHJ1bmNhdGVkVGV4dCs9aS5yZW1haW5pbmdUb2tlbixyLndyYXBwaW5nLm5vQnJva2VXb3Jkcys9KyhpLnJlbWFpbmluZ1Rva2VuLmxlbmd0aDx0Lmxlbmd0aCksci53cmFwcGluZy5ub0xpbmVzKz0rKGkud3JhcHBlZFRva2VuLmxlbmd0aD4wKSxyLmN1cnJlbnRMaW5lPSIifWVsc2Ugci53cmFwcGluZy50cnVuY2F0ZWRUZXh0Kz10O3JldHVybiByLmNhbkZpdFRleHQ9ITEscn0sZS5wcm90b3R5cGUuYnJlYWtUb2tlblRvRml0SW5XaWR0aD1mdW5jdGlvbih0LHIsbixpLG8pe2lmKG89PT12b2lkIDAmJihvPXRoaXMuX2JyZWFraW5nQ2hhcmFjdGVyKSxpLm1lYXN1cmUocit0KS53aWR0aDw9bilyZXR1cm57YnJlYWtXb3JkOiExLGxpbmU6cit0LHJlbWFpbmluZ1Rva2VuOm51bGx9O2lmKHQudHJpbSgpPT09IiIpcmV0dXJue2JyZWFrV29yZDohMSxsaW5lOnIscmVtYWluaW5nVG9rZW46IiJ9O2lmKCF0aGlzLl9hbGxvd0JyZWFraW5nV29yZHMmJnIudHJpbSgpIT09IiIpcmV0dXJue2JyZWFrV29yZDohMSxsaW5lOnIscmVtYWluaW5nVG9rZW46dH07Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aCYmaS5tZWFzdXJlKHIrdC5zdWJzdHJpbmcoMCxhKzEpK28pLndpZHRoPD1uOykrK2E7dmFyIHM9IiI7cmV0dXJuIGE+MCYmKHM9bykse2JyZWFrV29yZDphPjAsbGluZTpyK3Quc3Vic3RyaW5nKDAsYSkrcyxyZW1haW5pbmdUb2tlbjp0LnN1YnN0cmluZyhhKX19LGV9KCk7Yml0LldyYXBwZXI9Rk9lfSk7dmFyIGRYdD1IKFlBPT57InVzZSBzdHJpY3QiO3ZhciBCT2U9WUEmJllBLl9fZXh0ZW5kc3x8ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxyKXt0Ll9fcHJvdG9fXz1yfXx8ZnVuY3Rpb24odCxyKXtmb3IodmFyIG4gaW4gcilyLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1yW25dKX07cmV0dXJuIGZ1bmN0aW9uKHQscil7ZSh0LHIpO2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9dC5wcm90b3R5cGU9cj09PW51bGw/T2JqZWN0LmNyZWF0ZShyKToobi5wcm90b3R5cGU9ci5wcm90b3R5cGUsbmV3IG4pfX0oKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoWUEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBIT2U9d2l0KCkscFh0PWZ1bmN0aW9uKGUpe0JPZSh0LGUpO2Z1bmN0aW9uIHQoKXtyZXR1cm4gZSE9PW51bGwmJmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiB0LnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKHIsbixpLG8pe3ZhciBhPXRoaXM7bz09PXZvaWQgMCYmKG89MS8wKTt2YXIgcz1yLnNwbGl0KGAKYCk7aWYocy5sZW5ndGg+MSl0aHJvdyBuZXcgRXJyb3IoIlNpbmdsZUxpbmVXcmFwcGVyIGlzIGRlc2lnbmVkIHRvIHdvcmsgb25seSBvbiBzaW5nbGUgbGluZSIpO3ZhciBsPWZ1bmN0aW9uKGcpe3JldHVybiBlLnByb3RvdHlwZS53cmFwLmNhbGwoYSxyLG4sZyxvKX0sYz1sKGkpO2lmKGMubm9MaW5lczwyKXJldHVybiBjO2Zvcih2YXIgdT0wLGg9aSxmPTA7Zjx0Lk5PX1dSQVBfSVRFUkFUSU9OUyYmaD51OysrZil7dmFyIHA9KGgrdSkvMixkPWwocCk7dGhpcy5hcmVTYW1lUmVzdWx0cyhjLGQpPyhoPXAsYz1kKTp1PXB9cmV0dXJuIGN9LHQucHJvdG90eXBlLmFyZVNhbWVSZXN1bHRzPWZ1bmN0aW9uKHIsbil7cmV0dXJuIHIubm9MaW5lcz09PW4ubm9MaW5lcyYmci50cnVuY2F0ZWRUZXh0PT09bi50cnVuY2F0ZWRUZXh0fSx0fShIT2UuV3JhcHBlcik7cFh0Lk5PX1dSQVBfSVRFUkFUSU9OUz01O1lBLlNpbmdsZUxpbmVXcmFwcGVyPXBYdH0pO3ZhciBTaXQ9SCh4Rj0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtWHQoZSl7Zm9yKHZhciB0IGluIGUpeEYuaGFzT3duUHJvcGVydHkodCl8fCh4Rlt0XT1lW3RdKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoeEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO21YdChkWHQoKSk7bVh0KHdpdCgpKX0pO3ZhciBnWHQ9SChFaXQ9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEVpdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIE1pdD1taXQoKSxWT2U9eGl0KCksVU9lPVNpdCgpLHFPZT1GQSgpLEdPZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7dGhpcy5jb250ZXh0PXQsdGhpcy5tZWFzdXJlcj1uZXcgVk9lLkNhY2hlTWVhc3VyZXIodGhpcy5jb250ZXh0KSx0aGlzLndyYXBwZXI9bmV3IFVPZS5XcmFwcGVyLHRoaXMud3JpdGVyPW5ldyBxT2UuV3JpdGVyKHRoaXMubWVhc3VyZXIsdGhpcy5jb250ZXh0LHRoaXMud3JhcHBlcil9cmV0dXJuIGUuc3ZnPWZ1bmN0aW9uKHQscixuKXtyZXR1cm4gbmV3IGUobmV3IE1pdC5TdmdDb250ZXh0KHQscixuKSl9LGUuY2FudmFzPWZ1bmN0aW9uKHQscixuKXtyZXR1cm4gbmV3IGUobmV3IE1pdC5DYW52YXNDb250ZXh0KHQscixuKSl9LGUuaHRtbD1mdW5jdGlvbih0LHIsbil7cmV0dXJuIG5ldyBlKG5ldyBNaXQuSHRtbENvbnRleHQodCxyLG4pKX0sZS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24odCxyLG4saSxvKXt0aGlzLndyaXRlci53cml0ZSh0LHIsbixpLG8pfSxlLnByb3RvdHlwZS5jbGVhck1lYXN1cmVyQ2FjaGU9ZnVuY3Rpb24oKXt0aGlzLm1lYXN1cmVyLnJlc2V0KCl9LGV9KCk7RWl0LlR5cGVzZXR0ZXI9R09lfSk7dmFyIHlsPUgoYkY9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZFMoZSl7Zm9yKHZhciB0IGluIGUpYkYuaGFzT3duUHJvcGVydHkodCl8fChiRlt0XT1lW3RdKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoYkYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2RTKG1pdCgpKTtkUyh4aXQoKSk7ZFMoZ1h0KCkpO2RTKHBTKCkpO2RTKFNpdCgpKTtkUyhGQSgpKX0pO3ZhciBfWHQ9SChtUz0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobVMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBXT2U9KEVyKCksVXQoTXIpKSxZT2U9d2luZG93LkFycmF5O2Z1bmN0aW9uIGpPZShlLHQpe2lmKGUubGVuZ3RoIT09dC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJhdHRlbXB0ZWQgdG8gYWRkIGFycmF5cyBvZiB1bmVxdWFsIGxlbmd0aCIpO3JldHVybiBlLm1hcChmdW5jdGlvbihyLG4pe3JldHVybiBlW25dK3Rbbl19KX1tUy5hZGQ9ak9lO2Z1bmN0aW9uIFhPZShlKXt2YXIgdD1XT2Uuc2V0KCkscj1bXTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3QuaGFzKFN0cmluZyhuKSl8fCh0LmFkZChTdHJpbmcobikpLHIucHVzaChuKSl9KSxyfW1TLnVuaXE9WE9lO2Z1bmN0aW9uICRPZShlKXtyZXR1cm4gWU9lLnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sZSl9bVMuZmxhdHRlbj0kT2U7ZnVuY3Rpb24gS09lKGUsdCl7Zm9yKHZhciByPVtdLG49MDtuPHQ7bisrKXJbbl09dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZShuKTplO3JldHVybiByfW1TLmNyZWF0ZUZpbGxlZEFycmF5PUtPZX0pO3ZhciB4WHQ9SChqQT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoakEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB2WHQ9KEVyKCksVXQoTXIpKSxaT2U9d2luZG93Lk1hdGg7ZnVuY3Rpb24gSk9lKGUsdCl7dmFyIHI9eVh0KGUpKy4wNSxuPXlYdCh0KSsuMDU7cmV0dXJuIHI+bj9yL246bi9yfWpBLmNvbnRyYXN0PUpPZTtmdW5jdGlvbiBRT2UoZSx0KXt2YXIgcj12WHQuY29sb3IoZSkuYnJpZ2h0ZXIodCk7cmV0dXJuIHIucmdiKCkudG9TdHJpbmcoKX1qQS5saWdodGVuQ29sb3I9UU9lO2Z1bmN0aW9uIHQ3ZShlLHQpe2UuY2xhc3NlZCh0LCEwKTt2YXIgcj1lLnN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIik7aWYocj09PSJ0cmFuc3BhcmVudCIpcmV0dXJuIG51bGw7dmFyIG49L1woKC4rKVwpLy5leGVjKHIpO2lmKCFuKXJldHVybiBudWxsO3ZhciBpPW5bMV0uc3BsaXQoIiwiKS5tYXAoZnVuY3Rpb24oYSl7dmFyIHM9K2EsbD1zLnRvU3RyaW5nKDE2KTtyZXR1cm4gczwxNj8iMCIrbDpsfSk7aWYoaS5sZW5ndGg9PT00JiZpWzNdPT09IjAwIilyZXR1cm4gbnVsbDt2YXIgbz0iIyIraS5qb2luKCIiKTtyZXR1cm4gZS5jbGFzc2VkKHQsITEpLG99akEuY29sb3JUZXN0PXQ3ZTtmdW5jdGlvbiB5WHQoZSl7dmFyIHQ9dlh0LnJnYihlKSxyPWZ1bmN0aW9uKGEpe3JldHVybiBhPWEvMjU1LGE8PS4wMzkyOD9hLzEyLjkyOlpPZS5wb3coKGErLjA1NSkvMS4wNTUsMi40KX0sbj1yKHQuciksaT1yKHQuZyksbz1yKHQuYik7cmV0dXJuIC4yMTI2Km4rLjcxNTIqaSsuMDcyMipvfX0pO3ZhciBDaXQ9SChhbz0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoYW8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBUaXQ9KEVyKCksVXQoTXIpKSxnYT13aW5kb3cuTWF0aDtmdW5jdGlvbiBlN2UoZSx0KXtmb3IodmFyIHI9dDtyIT1udWxsJiZyIT09ZTspcj1yLnBhcmVudE5vZGU7cmV0dXJuIHI9PT1lfWFvLmNvbnRhaW5zPWU3ZTtmdW5jdGlvbiB3WHQoZSl7dmFyIHQ7dHJ5e3Q9ZS5ub2RlKCkuZ2V0QkJveCgpfWNhdGNoKHIpe3Q9e3g6MCx5OjAsd2lkdGg6MCxoZWlnaHQ6MH19cmV0dXJuIHR9YW8uZWxlbWVudEJCb3g9d1h0O2Z1bmN0aW9uIHI3ZShlKXtpZihlIGluc3RhbmNlb2YgU1ZHRWxlbWVudClyZXR1cm4gd1h0KFRpdC5zZWxlY3QoZSkpO2lmKGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl7dmFyIHQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm57eDp0LmxlZnQseTp0LnRvcCx3aWR0aDp0LndpZHRoLGhlaWdodDp0LmhlaWdodH19ZWxzZSByZXR1cm57eDowLHk6MCx3aWR0aDowLGhlaWdodDowfX1hby5lbnRpdHlCb3VuZHM9cjdlO2FvLlNDUkVFTl9SRUZSRVNIX1JBVEVfTUlMTElTRUNPTkRTPTFlMy82MDtmdW5jdGlvbiBuN2UoZSl7d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSE9bnVsbD93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpOnNldFRpbWVvdXQoZSxhby5TQ1JFRU5fUkVGUkVTSF9SQVRFX01JTExJU0VDT05EUyl9YW8ucmVxdWVzdEFuaW1hdGlvbkZyYW1lUG9seWZpbGw9bjdlO2Z1bmN0aW9uIGk3ZShlKXt2YXIgdD1lIGluc3RhbmNlb2YgVGl0LnNlbGVjdGlvbj9lLm5vZGUoKTplLHI9d2luZG93LmdldENvbXB1dGVkU3R5bGUodCk7cmV0dXJuIFJmKHIsIndpZHRoIikrUmYociwicGFkZGluZy1sZWZ0IikrUmYociwicGFkZGluZy1yaWdodCIpK1JmKHIsImJvcmRlci1sZWZ0LXdpZHRoIikrUmYociwiYm9yZGVyLXJpZ2h0LXdpZHRoIil9YW8uZWxlbWVudFdpZHRoPWk3ZTtmdW5jdGlvbiBvN2UoZSl7dmFyIHQ9ZSBpbnN0YW5jZW9mIFRpdC5zZWxlY3Rpb24/ZS5ub2RlKCk6ZSxyPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpO3JldHVybiBSZihyLCJoZWlnaHQiKStSZihyLCJwYWRkaW5nLXRvcCIpK1JmKHIsInBhZGRpbmctYm90dG9tIikrUmYociwiYm9yZGVyLXRvcC13aWR0aCIpK1JmKHIsImJvcmRlci1ib3R0b20td2lkdGgiKX1hby5lbGVtZW50SGVpZ2h0PW83ZTt2YXIgTGM9IlxccyIsWEE9Iig/OlstK10/WzAtOV0qXFwuP1swLTldKykiLFNYdD0iKD86KD86IitMYysiKyw/IitMYysiKil8KD86LCIrTGMrIiopKSIsYTdlPW5ldyBSZWdFeHAoInRyYW5zbGF0ZSIrTGMrIipcXCgiK0xjKyIqKCIrWEErIikoPzoiK1NYdCsiKCIrWEErIikpPyIrTGMrIipcXCkiKSxzN2U9bmV3IFJlZ0V4cCgicm90YXRlIitMYysiKlxcKCIrTGMrIiooIitYQSsiKSIrTGMrIipcXCkiKSxsN2U9bmV3IFJlZ0V4cCgic2NhbGUiK0xjKyIqXFwoIitMYysiKigiK1hBKyIpKD86IitTWHQrIigiK1hBKyIpKT8iK0xjKyIqXFwpIik7ZnVuY3Rpb24gYzdlKGUpe3ZhciB0PWE3ZS5leGVjKGUuYXR0cigidHJhbnNmb3JtIikpO2lmKHQhPW51bGwpe3ZhciByPXRbMV0sbj10WzJdLGk9bj09PXZvaWQgMD8wOm47cmV0dXJuWytyLCtpXX1lbHNlIHJldHVyblswLDBdfWFvLmdldFRyYW5zbGF0ZVZhbHVlcz1jN2U7ZnVuY3Rpb24gdTdlKGUpe3ZhciB0PXM3ZS5leGVjKGUuYXR0cigidHJhbnNmb3JtIikpO2lmKHQhPW51bGwpe3ZhciByPXRbMV07cmV0dXJuK3J9ZWxzZSByZXR1cm4gMH1hby5nZXRSb3RhdGU9dTdlO2Z1bmN0aW9uIGg3ZShlKXt2YXIgdD1sN2UuZXhlYyhlLmF0dHIoInRyYW5zZm9ybSIpKTtpZih0IT1udWxsKXt2YXIgcj10WzFdLG49dFsyXTtyZXR1cm5bK3Isbj09bnVsbD8rcjorbl19ZWxzZSByZXR1cm5bMCwwXX1hby5nZXRTY2FsZVZhbHVlcz1oN2U7ZnVuY3Rpb24gZjdlKGUsdCl7cmV0dXJuIShnYS5mbG9vcihlLnJpZ2h0KTw9Z2EuY2VpbCh0LmxlZnQpfHxnYS5jZWlsKGUubGVmdCk+PWdhLmZsb29yKHQucmlnaHQpfHxnYS5mbG9vcihlLmJvdHRvbSk8PWdhLmNlaWwodC50b3ApfHxnYS5jZWlsKGUudG9wKT49Z2EuZmxvb3IodC5ib3R0b20pKX1hby5jbGllbnRSZWN0c092ZXJsYXA9ZjdlO2Z1bmN0aW9uIHA3ZShlLHQpe3JldHVybntsZWZ0OmUubGVmdC10LHRvcDplLnRvcC10LHJpZ2h0OmUucmlnaHQrdCxib3R0b206ZS5ib3R0b20rdCx3aWR0aDplLndpZHRoK3QqMixoZWlnaHQ6ZS5oZWlnaHQrdCoyfX1hby5leHBhbmRSZWN0PXA3ZTtmdW5jdGlvbiBkN2UoZSx0KXtyZXR1cm4gZ2EuZmxvb3IodC5sZWZ0KTw9Z2EuY2VpbChlLmxlZnQpJiZnYS5mbG9vcih0LnRvcCk8PWdhLmNlaWwoZS50b3ApJiZnYS5mbG9vcihlLnJpZ2h0KTw9Z2EuY2VpbCh0LnJpZ2h0KSYmZ2EuZmxvb3IoZS5ib3R0b20pPD1nYS5jZWlsKHQuYm90dG9tKX1hby5jbGllbnRSZWN0SW5zaWRlPWQ3ZTtmdW5jdGlvbiBtN2UoZSx0LHIsbil7bj09PXZvaWQgMCYmKG49LjUpO3ZhciBpPWJYdChlKSxvPWJYdCh0KTtyZXR1cm4gci54K3Iud2lkdGg+PWkubWluLW4mJnIueDw9aS5tYXgrbiYmci55K3IuaGVpZ2h0Pj1vLm1pbi1uJiZyLnk8PW8ubWF4K259YW8uaW50ZXJzZWN0c0JCb3g9bTdlO2Z1bmN0aW9uIGJYdChlKXtpZih0eXBlb2YgZT09Im51bWJlciIpe3ZhciB0PWU7cmV0dXJue21pbjp0LG1heDp0fX12YXIgcj1lO2lmKHIgaW5zdGFuY2VvZiBPYmplY3QmJiJtaW4iaW4gciYmIm1heCJpbiByKXJldHVybiByO3Rocm93IG5ldyBFcnJvcigiaW5wdXQgJyIrZSsiJyBjYW4ndCBiZSBwYXJzZWQgYXMgYW4gUmFuZ2UiKX1mdW5jdGlvbiBSZihlLHQpe3ZhciByPWUuZ2V0UHJvcGVydHlWYWx1ZSh0KSxuPXBhcnNlRmxvYXQocik7cmV0dXJuIG58fDB9ZnVuY3Rpb24gZzdlKGUpe2Zvcih2YXIgdD1bXTtlJiZlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ7KXQucHVzaChlKSxlPWUucGFyZW50RWxlbWVudDtyZXR1cm4gdH1hby5nZXRIdG1sRWxlbWVudEFuY2VzdG9ycz1nN2U7ZnVuY3Rpb24gXzdlKGUpe3ZhciB0PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUsbnVsbCkscj10LmdldFByb3BlcnR5VmFsdWUoIi13ZWJraXQtdHJhbnNmb3JtIil8fHQuZ2V0UHJvcGVydHlWYWx1ZSgiLW1vei10cmFuc2Zvcm0iKXx8dC5nZXRQcm9wZXJ0eVZhbHVlKCItbXMtdHJhbnNmb3JtIil8fHQuZ2V0UHJvcGVydHlWYWx1ZSgiLW8tdHJhbnNmb3JtIil8fHQuZ2V0UHJvcGVydHlWYWx1ZSgidHJhbnNmb3JtIik7cmV0dXJuIHg3ZShyKX1hby5nZXRFbGVtZW50VHJhbnNmb3JtPV83ZTt2YXIgeTdlPS9ebWF0cml4XCgoW14pXSspXCkkLyx2N2U9L1ssIF0rLztmdW5jdGlvbiB4N2UoZSl7aWYoZT09bnVsbHx8ZT09PSJub25lIilyZXR1cm4gbnVsbDt2YXIgdD1lLm1hdGNoKHk3ZSk7aWYodD09bnVsbHx8dC5sZW5ndGg8MilyZXR1cm4gbnVsbDt2YXIgcj10WzFdLnNwbGl0KHY3ZSkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBwYXJzZUZsb2F0KG4pfSk7cmV0dXJuIHIubGVuZ3RoIT02P251bGw6cn19KTt2YXIgQWl0PUgoc289PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHNvLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgU0Y9KEVyKCksVXQoTXIpKSxNWHQ9Q2l0KCksZ2Q9d2luZG93Lk1hdGgsYjdlPVsxLDAsMCwxLDAsMF07ZnVuY3Rpb24gdzdlKGUsdCxyKXtyZXR1cm4gZ2QubWluKHQscik8PWUmJmU8PWdkLm1heCh0LHIpfXNvLmluUmFuZ2U9dzdlO2Z1bmN0aW9uIFM3ZShlLHQscil7cmV0dXJuIGdkLm1pbihnZC5tYXgodCxlKSxyKX1zby5jbGFtcD1TN2U7ZnVuY3Rpb24gTTdlKGUsdCxyKXt2YXIgbj10eXBlb2YgdD09ImZ1bmN0aW9uIj90Om51bGwsaT1uPT1udWxsP3Q6cixvPW49PW51bGw/U0YubWF4KGUpOlNGLm1heChlLG4pO3JldHVybiBvIT09dm9pZCAwP286aX1zby5tYXg9TTdlO2Z1bmN0aW9uIEU3ZShlLHQscil7dmFyIG49dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDpudWxsLGk9bj09bnVsbD90OnIsbz1uPT1udWxsP1NGLm1pbihlKTpTRi5taW4oZSxuKTtyZXR1cm4gbyE9PXZvaWQgMD9vOml9c28ubWluPUU3ZTtmdW5jdGlvbiBUN2UoZSl7cmV0dXJuIGUhPT1lfXNvLmlzTmFOPVQ3ZTtmdW5jdGlvbiBDN2UoZSl7cmV0dXJuIHR5cGVvZiBlPT0ibnVtYmVyIiYmZS1lPDF9c28uaXNWYWxpZE51bWJlcj1DN2U7ZnVuY3Rpb24gQTdlKGUsdCxyKXtpZihyPT09dm9pZCAwJiYocj0xKSxyPT09MCl0aHJvdyBuZXcgRXJyb3IoInN0ZXAgY2Fubm90IGJlIDAiKTtmb3IodmFyIG49Z2QubWF4KGdkLmNlaWwoKHQtZSkvciksMCksaT1bXSxvPTA7bzxuOysrbylpW29dPWUrcipvO3JldHVybiBpfXNvLnJhbmdlPUE3ZTtmdW5jdGlvbiBQN2UoZSx0KXtyZXR1cm4gZ2QucG93KHQueS1lLnksMikrZ2QucG93KHQueC1lLngsMil9c28uZGlzdGFuY2VTcXVhcmVkPVA3ZTtmdW5jdGlvbiBJN2UoZSl7cmV0dXJuIGUvMzYwKmdkLlBJKjJ9c28uZGVncmVlc1RvUmFkaWFucz1JN2U7ZnVuY3Rpb24gTDdlKGUsdCl7cmV0dXJuIHQudG9wTGVmdC54PD1lLngmJnQuYm90dG9tUmlnaHQueD49ZS54JiZ0LnRvcExlZnQueTw9ZS55JiZ0LmJvdHRvbVJpZ2h0Lnk+PWUueX1zby53aXRoaW49TDdlO2Z1bmN0aW9uIGs3ZShlLHQscixuLGksbyxhLHMpe3JldHVybiBlPD1pK2EmJmk8PWUrciYmdDw9bytzJiZvPD10K259c28uYm91bmRzSW50ZXJzZWN0cz1rN2U7ZnVuY3Rpb24gUjdlKGUpe2Zvcih2YXIgdD1NWHQuZ2V0SHRtbEVsZW1lbnRBbmNlc3RvcnMoZSkscj1iN2Usbj1udWxsLGk9MCxvPXQ7aTxvLmxlbmd0aDtpKyspe3ZhciBhPW9baV0scz1NWHQuZ2V0RWxlbWVudFRyYW5zZm9ybShhKTtpZihzIT1udWxsKXt2YXIgbD1hLmNsaWVudFdpZHRoLzIsYz1hLmNsaWVudEhlaWdodC8yO3I9d0YocixbbCxjXSkscj1FWHQocixUWHQocykpLHI9d0YocixbLWwsLWNdKX12YXIgdT1hLnNjcm9sbExlZnQsaD1hLnNjcm9sbFRvcDsobj09PW51bGx8fGE9PT1uKSYmKHUtPWEub2Zmc2V0TGVmdCthLmNsaWVudExlZnQsaC09YS5vZmZzZXRUb3ArYS5jbGllbnRUb3Asbj1hLm9mZnNldFBhcmVudCkscj13RihyLFt1LGhdKX1yZXR1cm4gcn1zby5nZXRDdW11bGF0aXZlVHJhbnNmb3JtPVI3ZTtmdW5jdGlvbiBFWHQoZSx0KXtyZXR1cm5bZVswXSp0WzBdK2VbMl0qdFsxXSxlWzFdKnRbMF0rZVszXSp0WzFdLGVbMF0qdFsyXStlWzJdKnRbM10sZVsxXSp0WzJdK2VbM10qdFszXSxlWzBdKnRbNF0rZVsyXSp0WzVdK2VbNF0sZVsxXSp0WzRdK2VbM10qdFs1XStlWzVdXX1zby5tdWx0aXBseU1hdHJpeD1FWHQ7ZnVuY3Rpb24gTjdlKGUsdCl7cmV0dXJuW3RbMF0sdFsxXSx0WzJdLHRbM10sdFs0XStlWzBdLHRbNV0rZVsxXV19c28ucHJlbXVsdGlwbHlUcmFuc2xhdGU9TjdlO2Z1bmN0aW9uIHdGKGUsdCl7cmV0dXJuW2VbMF0sZVsxXSxlWzJdLGVbM10sZVswXSp0WzBdK2VbMl0qdFsxXStlWzRdLGVbMV0qdFswXStlWzNdKnRbMV0rZVs1XV19c28ubXVsdGlwbHlUcmFuc2xhdGU9d0Y7ZnVuY3Rpb24gVFh0KGUpe3ZhciB0PWVbMF0qZVszXS1lWzFdKmVbMl07aWYodD09PTApdGhyb3cgbmV3IEVycm9yKCJzaW5ndWxhciBtYXRyaXgiKTt2YXIgcj0xL3Q7cmV0dXJuW3IqZVszXSxyKi1lWzFdLHIqLWVbMl0sciplWzBdLHIqKC1lWzNdKmVbNF0rZVsyXSplWzVdKSxyKihlWzFdKmVbNF0rLWVbMF0qZVs1XSldfXNvLmludmVydE1hdHJpeD1UWHQ7ZnVuY3Rpb24gRDdlKGUsdCl7cmV0dXJue3g6ZVswXSp0LngrZVsyXSp0LnkrZVs0XSx5OmVbMV0qdC54K2VbM10qdC55K2VbNV19fXNvLmFwcGx5VHJhbnNmb3JtPUQ3ZX0pO3ZhciBDWHQ9SChNRj0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTUYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBPN2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7fXJldHVybiBlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih0LHIpe2Zvcih2YXIgbj1NYXRoLmNlaWwodC5sZW5ndGgvMiksaT0wO2k8bjtpKyspclswXS5pbnNlcnQodFtpXSk7Zm9yKHZhciBpPW47aTx0Lmxlbmd0aDtpKyspclsxXS5pbnNlcnQodFtpXSl9LGV9KCk7TUYuU3BsaXRTdHJhdGVneVRyaXZpYWw9TzdlO3ZhciB6N2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7fXJldHVybiBlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih0LHIpe2Zvcih0PXQuc2xpY2UoKSx0aGlzLmNob29zZUZpcnN0U3BsaXQodCxyKTt0Lmxlbmd0aD4wOyl0aGlzLmFkZE5leHQodCxyKX0sZS5wcm90b3R5cGUuY2hvb3NlRmlyc3RTcGxpdD1mdW5jdGlvbih0LHIpe2Zvcih2YXIgbj0wLGk9MCxvPXQubGVuZ3RoLTEsYT10Lmxlbmd0aC0xLHM9MTtzPHQubGVuZ3RoLTE7cysrKXt2YXIgbD10W3NdO2wuYm91bmRzLnhsPnRbb10uYm91bmRzLnhsP289czpsLmJvdW5kcy54aDx0W25dLmJvdW5kcy54aCYmKG49cyksbC5ib3VuZHMueWw+dFthXS5ib3VuZHMueWw/YT1zOmwuYm91bmRzLnloPHRbaV0uYm91bmRzLnloJiYoaT1zKX12YXIgYz1NYXRoLmFicyh0W25dLmJvdW5kcy54aC10W29dLmJvdW5kcy54bCksdT1NYXRoLmFicyh0W2ldLmJvdW5kcy55aC10W2FdLmJvdW5kcy55bCksaD1jPnU/W24sb106W2ksYV0sZj1oWzBdLHA9aFsxXTtmPT09cCYmKGY9MCxwPXQubGVuZ3RoLTEpLHJbMF0uaW5zZXJ0KHQuc3BsaWNlKE1hdGgubWF4KGYscCksMSlbMF0pLHJbMV0uaW5zZXJ0KHQuc3BsaWNlKE1hdGgubWluKGYscCksMSlbMF0pfSxlLnByb3RvdHlwZS5hZGROZXh0PWZ1bmN0aW9uKHQscil7Zm9yKHZhciBuPW51bGwsaT1udWxsLG89bnVsbCxhPTA7YTx0Lmxlbmd0aDthKyspe3ZhciBzPXRbYV0sbD1yWzBdLnVuaW9uQXJlYURpZmZlcmVuY2Uocy5ib3VuZHMpLGM9clsxXS51bmlvbkFyZWFEaWZmZXJlbmNlKHMuYm91bmRzKTsobDxpfHxuPT1udWxsKSYmKG49YSxpPWwsbz1yWzBdKSxjPGkmJihuPWEsaT1jLG89clsxXSl9by5pbnNlcnQodC5zcGxpY2UobiwxKVswXSl9LGV9KCk7TUYuU3BsaXRTdHJhdGVneUxpbmVhcj16N2V9KTt2YXIgSWl0PUgoX2Q9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KF9kLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgRjdlPUNYdCgpLEI3ZT01LEg3ZT1uZXcgRjdlLlNwbGl0U3RyYXRlZ3lMaW5lYXIsTmY7KGZ1bmN0aW9uKGUpe2VbZS5QQVNTPTBdPSJQQVNTIixlW2UuRkFJTD0xXT0iRkFJTCIsZVtlLlBBU1NfQU5EX09WRVJXUklURT0yXT0iUEFTU19BTkRfT1ZFUldSSVRFIn0pKE5mPV9kLlF1ZXJ5UHJlZGljYXRlUmVzdWx0fHwoX2QuUXVlcnlQcmVkaWNhdGVSZXN1bHQ9e30pKTtmdW5jdGlvbiBFRihlLHQscil7dmFyIG49MS8wLGk9MS8wLG89MS8wO3JldHVybiBmdW5jdGlvbihhKXt2YXIgcz10KGEuYm91bmRzLGUpLGw9cihhLmJvdW5kcyxlKTtyZXR1cm4gYS52YWx1ZSE9bnVsbD9zPG4/KG49cyxpPXMsbz1sLE5mLlBBU1NfQU5EX09WRVJXUklURSk6cz09PW4/TmYuUEFTUzpOZi5GQUlMOnM+bz9OZi5GQUlMOihpPU1hdGgubWluKHMsaSksbz1NYXRoLm1heChsLG8pLE5mLlBBU1MpfX1fZC5jcmVhdGVNaW5pbWl6aW5nTm9kZVByZWRpY2F0ZT1FRjtmdW5jdGlvbiBQaXQoZSx0KXtyZXR1cm4gZnVuY3Rpb24ocixuKXtyZXR1cm4gdChuLmJvdW5kcyxlKS10KHIuYm91bmRzLGUpfX1fZC5jcmVhdGVOb2RlU29ydD1QaXQ7dmFyIFY3ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxyKXt0PT09dm9pZCAwJiYodD1CN2UpLHI9PT12b2lkIDAmJihyPUg3ZSksdGhpcy5tYXhOb2RlQ2hpbGRyZW49dCx0aGlzLnNwbGl0U3RyYXRlZ3k9cix0aGlzLnJvb3Q9bmV3IFRGKCEwKSx0aGlzLnNpemU9MH1yZXR1cm4gZS5wcm90b3R5cGUuZ2V0Um9vdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3R9LGUucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5yb290PW5ldyBURighMCksdGhpcy5zaXplPTB9LGUucHJvdG90eXBlLmluc2VydD1mdW5jdGlvbih0LHIpe2Zvcih2YXIgbj10aGlzLnJvb3Q7IW4ubGVhZjspbj1uLnN1YnRyZWUodCk7dmFyIGk9VEYudmFsdWVOb2RlKHQscik7Zm9yKG4uaW5zZXJ0KGkpLHRoaXMuc2l6ZSs9MTtuLm92ZXJmbG93KHRoaXMubWF4Tm9kZUNoaWxkcmVuKTspbj1uLnNwbGl0KHRoaXMuc3BsaXRTdHJhdGVneSksbi5wYXJlbnQ9PW51bGwmJih0aGlzLnJvb3Q9bik7cmV0dXJuIGl9LGUucHJvdG90eXBlLmxvY2F0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5xdWVyeShmdW5jdGlvbihyKXtyZXR1cm4gci5jb250YWlucyh0KX0pfSxlLnByb3RvdHlwZS5sb2NhdGVOZWFyZXN0PWZ1bmN0aW9uKHQpe3ZhciByPUVGKHQsdHMuZGlzdGFuY2VTcXVhcmVkVG9OZWFyRWRnZSx0cy5kaXN0YW5jZVNxdWFyZWRUb0ZhckVkZ2UpLG49dGhpcy5xdWVyeU5vZGVzKHIpO3JldHVybiBuLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gaS52YWx1ZX0pfSxlLnByb3RvdHlwZS5sb2NhdGVOZWFyZXN0WD1mdW5jdGlvbih0KXt2YXIgcj1FRih0LHRzLmFic29sdXRlRGlzdGFuY2VUb05lYXJFZGdlWCx0cy5hYnNvbHV0ZURpc3RhbmNlVG9GYXJFZGdlWCksbj10aGlzLnF1ZXJ5Tm9kZXMocik7cmV0dXJuIG4uc29ydChQaXQodCx0cy5hYnNvbHV0ZURpc3RhbmNlVG9OZWFyRWRnZVkpKSxuLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gaS52YWx1ZX0pfSxlLnByb3RvdHlwZS5sb2NhdGVOZWFyZXN0WT1mdW5jdGlvbih0KXt2YXIgcj1FRih0LHRzLmFic29sdXRlRGlzdGFuY2VUb05lYXJFZGdlWSx0cy5hYnNvbHV0ZURpc3RhbmNlVG9GYXJFZGdlWSksbj10aGlzLnF1ZXJ5Tm9kZXMocik7cmV0dXJuIG4uc29ydChQaXQodCx0cy5hYnNvbHV0ZURpc3RhbmNlVG9OZWFyRWRnZVgpKSxuLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gaS52YWx1ZX0pfSxlLnByb3RvdHlwZS5pbnRlcnNlY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucXVlcnkoZnVuY3Rpb24ocil7cmV0dXJuIHRzLmlzQm91bmRzT3ZlcmxhcEJvdW5kcyhyLHQpfSl9LGUucHJvdG90eXBlLmludGVyc2VjdFg9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucXVlcnkoZnVuY3Rpb24ocil7cmV0dXJuIHRzLmlzQm91bmRzT3ZlcmxhcFgocix0KX0pfSxlLnByb3RvdHlwZS5pbnRlcnNlY3RZPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnF1ZXJ5KGZ1bmN0aW9uKHIpe3JldHVybiB0cy5pc0JvdW5kc092ZXJsYXBZKHIsdCl9KX0sZS5wcm90b3R5cGUucXVlcnk9ZnVuY3Rpb24odCl7dmFyIHI9W107aWYodGhpcy5yb290LmJvdW5kcyE9bnVsbCYmIXQodGhpcy5yb290LmJvdW5kcykpcmV0dXJuIHI7Zm9yKHZhciBuPVt0aGlzLnJvb3RdO24ubGVuZ3RoPjA7KWZvcih2YXIgaT1uLnNoaWZ0KCksbz0wO288aS5lbnRyaWVzLmxlbmd0aDtvKyspe3ZhciBhPWkuZW50cmllc1tvXTt0KGEuYm91bmRzKSYmKGkubGVhZj9yLnB1c2goYS52YWx1ZSk6bi5wdXNoKGEpKX1yZXR1cm4gcn0sZS5wcm90b3R5cGUucXVlcnlOb2Rlcz1mdW5jdGlvbih0KXt2YXIgcj1bXTtpZih0aGlzLnJvb3QuYm91bmRzIT1udWxsJiZ0KHRoaXMucm9vdCk9PT1OZi5GQUlMKXJldHVybiByO2Zvcih2YXIgbj1bdGhpcy5yb290XTtuLmxlbmd0aD4wOylmb3IodmFyIGk9bi5zaGlmdCgpLG89MDtvPGkuZW50cmllcy5sZW5ndGg7bysrKXt2YXIgYT1pLmVudHJpZXNbb10scz10KGEpO3M9PT1OZi5QQVNTX0FORF9PVkVSV1JJVEUmJihyPVtdKSwocz09PU5mLlBBU1N8fHM9PT1OZi5QQVNTX0FORF9PVkVSV1JJVEUpJiYoaS5sZWFmP3IucHVzaChhKTpuLnB1c2goYSkpfXJldHVybiByfSxlfSgpO19kLlJUcmVlPVY3ZTt2YXIgVEY9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpe3RoaXMubGVhZj10LHRoaXMuYm91bmRzPW51bGwsdGhpcy5lbnRyaWVzPVtdLHRoaXMucGFyZW50PW51bGwsdGhpcy52YWx1ZT1udWxsfXJldHVybiBlLnZhbHVlTm9kZT1mdW5jdGlvbih0LHIpe3ZhciBuPW5ldyBlKCEwKTtyZXR1cm4gbi5ib3VuZHM9dCxuLnZhbHVlPXIsbn0sZS5wcm90b3R5cGUub3ZlcmZsb3c9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZW50cmllcy5sZW5ndGg+dH0sZS5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHQpe3RoaXMuZW50cmllcy5wdXNoKHQpLHQucGFyZW50PXRoaXM7Zm9yKHZhciByPXRoaXM7ciE9bnVsbDspci5ib3VuZHM9dHMudW5pb25BbGwoW3IuYm91bmRzLHQuYm91bmRzXSkscj1yLnBhcmVudDtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuZW50cmllcy5pbmRleE9mKHQpO2lmKHI+PTApe3RoaXMuZW50cmllcy5zcGxpY2UociwxKTtmb3IodmFyIG49dGhpcztuIT1udWxsOyluLmJvdW5kcz10cy51bmlvbkFsbChuLmVudHJpZXMubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBpLmJvdW5kc30pKSxuPW4ucGFyZW50fXJldHVybiB0aGlzfSxlLnByb3RvdHlwZS5zdWJ0cmVlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgcj0xLzAsbj1udWxsLGk9MDtpPHRoaXMuZW50cmllcy5sZW5ndGg7aSsrKXt2YXIgbz10aGlzLmVudHJpZXNbaV0sYT1vLnVuaW9uQXJlYURpZmZlcmVuY2UodCk7KGE8cnx8YT09PXImJm4hPW51bGwmJm8uZW50cmllcy5sZW5ndGg8bi5lbnRyaWVzLmxlbmd0aCkmJihuPW8pfXJldHVybiBufSxlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudCE9bnVsbCYmdGhpcy5wYXJlbnQucmVtb3ZlKHRoaXMpO3ZhciByPVtuZXcgZSh0aGlzLmxlYWYpLG5ldyBlKHRoaXMubGVhZildO3Quc3BsaXQodGhpcy5lbnRyaWVzLHIpO3ZhciBuPXRoaXMucGFyZW50IT1udWxsP3RoaXMucGFyZW50Om5ldyBlKCExKTtyZXR1cm4gbi5pbnNlcnQoclswXSksbi5pbnNlcnQoclsxXSksbi5sZWFmPSExLG59LGUucHJvdG90eXBlLnVuaW9uQXJlYURpZmZlcmVuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguYWJzKHRzLnVuaW9uKHRoaXMuYm91bmRzLHQpLmFyZWEoKS10aGlzLmJvdW5kcy5hcmVhKCkpfSxlLnByb3RvdHlwZS5tYXhEZXB0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxlYWY/MToxK3RoaXMuZW50cmllcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQubWF4RGVwdGgoKX0pLnJlZHVjZShmdW5jdGlvbih0LHIpe3JldHVybiBNYXRoLm1heCh0LHIpfSl9LGV9KCk7X2QuUlRyZWVOb2RlPVRGO3ZhciB0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxyLG4saSl7dGhpcy54bD10LHRoaXMueWw9cix0aGlzLnhoPW4sdGhpcy55aD1pLHRoaXMud2lkdGg9dGhpcy54aC10aGlzLnhsLHRoaXMuaGVpZ2h0PXRoaXMueWgtdGhpcy55bH1yZXR1cm4gZS54eXdoPWZ1bmN0aW9uKHQscixuLGkpe3JldHVybiBuZXcgZSh0LHIsdCtuLHIraSl9LGUuZW50aXR5Qm91bmRzPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZSh0LngsdC55LHQueCt0LndpZHRoLHQueSt0LmhlaWdodCl9LGUuYm91bmRzPWZ1bmN0aW9uKHQpe3JldHVybiBlLnBvaW50UGFpcih0LnRvcExlZnQsdC5ib3R0b21SaWdodCl9LGUucG9pbnRQYWlyPWZ1bmN0aW9uKHQscil7cmV0dXJuIG5ldyBlKE1hdGgubWluKHQueCxyLngpLE1hdGgubWluKHQueSxyLnkpLE1hdGgubWF4KHQueCxyLngpLE1hdGgubWF4KHQueSxyLnkpKX0sZS5wb2ludHM9ZnVuY3Rpb24odCl7aWYodC5sZW5ndGg8Mil0aHJvdyBuZXcgRXJyb3IoIm5lZWQgYXQgbGVhc3QgMiBwb2ludHMgdG8gY3JlYXRlIGJvdW5kcyIpO3ZhciByPXQubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBpLnh9KSxuPXQubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBpLnl9KTtyZXR1cm4gbmV3IGUoci5yZWR1Y2UoZnVuY3Rpb24oaSxvKXtyZXR1cm4gTWF0aC5taW4oaSxvKX0pLG4ucmVkdWNlKGZ1bmN0aW9uKGksbyl7cmV0dXJuIE1hdGgubWluKGksbyl9KSxyLnJlZHVjZShmdW5jdGlvbihpLG8pe3JldHVybiBNYXRoLm1heChpLG8pfSksbi5yZWR1Y2UoZnVuY3Rpb24oaSxvKXtyZXR1cm4gTWF0aC5tYXgoaSxvKX0pKX0sZS51bmlvbj1mdW5jdGlvbih0LHIpe3JldHVybiBuZXcgZShNYXRoLm1pbih0LnhsLHIueGwpLE1hdGgubWluKHQueWwsci55bCksTWF0aC5tYXgodC54aCxyLnhoKSxNYXRoLm1heCh0LnloLHIueWgpKX0sZS51bmlvbkFsbD1mdW5jdGlvbih0KXtyZXR1cm4gdD10LmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gciE9bnVsbH0pLHQubGVuZ3RoPT09MD9udWxsOnQucmVkdWNlKGZ1bmN0aW9uKHIsbil7cmV0dXJuIGUudW5pb24ocixuKX0pfSxlLmlzQm91bmRzT3ZlcmxhcEJvdW5kcz1mdW5jdGlvbih0LHIpe3JldHVybiBlLmlzQm91bmRzT3ZlcmxhcFgodCxyKSYmZS5pc0JvdW5kc092ZXJsYXBZKHQscil9LGUuaXNCb3VuZHNPdmVybGFwWD1mdW5jdGlvbih0LHIpe3JldHVybiEodC54aDxyLnhsKSYmISh0LnhsPnIueGgpfSxlLmlzQm91bmRzT3ZlcmxhcFk9ZnVuY3Rpb24odCxyKXtyZXR1cm4hKHQueWg8ci55bCkmJiEodC55bD5yLnloKX0sZS5hYnNvbHV0ZURpc3RhbmNlVG9OZWFyRWRnZVg9ZnVuY3Rpb24odCxyKXt2YXIgbj10LndpZHRoLzIsaT10LnhsK247cmV0dXJuIE1hdGgubWF4KE1hdGguYWJzKHIueC1pKS1uLDApfSxlLmFic29sdXRlRGlzdGFuY2VUb05lYXJFZGdlWT1mdW5jdGlvbih0LHIpe3ZhciBuPXQuaGVpZ2h0LzIsaT10LnlsK247cmV0dXJuIE1hdGgubWF4KE1hdGguYWJzKHIueS1pKS1uLDApfSxlLmFic29sdXRlRGlzdGFuY2VUb0ZhckVkZ2VYPWZ1bmN0aW9uKHQscil7dmFyIG49ZS5hYnNvbHV0ZURpc3RhbmNlVG9OZWFyRWRnZVgodCxyKTtyZXR1cm4gbj09PTA/MDpuK3Qud2lkdGh9LGUuYWJzb2x1dGVEaXN0YW5jZVRvRmFyRWRnZVk9ZnVuY3Rpb24odCxyKXt2YXIgbj1lLmFic29sdXRlRGlzdGFuY2VUb05lYXJFZGdlWSh0LHIpO3JldHVybiBuPT09MD8wOm4rdC5oZWlnaHR9LGUuZGlzdGFuY2VTcXVhcmVkVG9OZWFyRWRnZT1mdW5jdGlvbih0LHIpe3ZhciBuPWUuYWJzb2x1dGVEaXN0YW5jZVRvTmVhckVkZ2VYKHQsciksaT1lLmFic29sdXRlRGlzdGFuY2VUb05lYXJFZGdlWSh0LHIpO3JldHVybiBuKm4raSppfSxlLmRpc3RhbmNlU3F1YXJlZFRvRmFyRWRnZT1mdW5jdGlvbih0LHIpe3ZhciBuPWUuYWJzb2x1dGVEaXN0YW5jZVRvRmFyRWRnZVgodCxyKSxpPWUuYWJzb2x1dGVEaXN0YW5jZVRvRmFyRWRnZVkodCxyKTtyZXR1cm4gbipuK2kqaX0sZS5wcm90b3R5cGUuYXJlYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmFyZWFDYWNoZWQ9PW51bGwmJih0aGlzLmFyZWFDYWNoZWQ9KHRoaXMueGgtdGhpcy54bCkqKHRoaXMueWgtdGhpcy55bCkpLHRoaXMuYXJlYUNhY2hlZH0sZS5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueGw8PXQueCYmdGhpcy54aD49dC54JiZ0aGlzLnlsPD10LnkmJnRoaXMueWg+PXQueX0sZX0oKTtfZC5SVHJlZUJvdW5kcz10c30pO3ZhciBJWHQ9SCh5ZD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoeWQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBBWHQ9KEVyKCksVXQoTXIpKSxVN2U9T2UoKSwkZz1GZSgpLHE3ZT1MZigpO3lkLklTdGFja2luZ09yZGVyPXE3ZS5tYWtlRW51bShbInRvcGRvd24iLCJib3R0b211cCJdKTt2YXIgUFh0PXdpbmRvdy5NYXRoO2Z1bmN0aW9uIEc3ZShlLHQscixuKXtuPT09dm9pZCAwJiYobj0iYm90dG9tdXAiKTt2YXIgaT1BWHQubWFwKCksbz1BWHQubWFwKCksYT1uZXcgJGcuTWFwO249PT0idG9wZG93biImJihlPWUuc2xpY2UoKSxlLnJldmVyc2UoKSk7Zm9yKHZhciBzPTAsbD1lO3M8bC5sZW5ndGg7cysrKXtmb3IodmFyIGM9bFtzXSx1PW5ldyAkZy5NYXAsaD1jLmRhdGEoKSxmPWgubGVuZ3RoLHA9MDtwPGY7cCsrKXt2YXIgZD1oW3BdLGc9dChkLHAsYyksXz15ZC5ub3JtYWxpemVLZXkoZykseT0rcihkLHAsYykseD12b2lkIDAsYj15Pj0wP2k6bztiLmhhcyhfKT8oeD1iLmdldChfKSxiLnNldChfLHgreSkpOih4PTAsYi5zZXQoXyx5KSksdS5zZXQoXyx7b2Zmc2V0OngsdmFsdWU6eSxheGlzVmFsdWU6ZyxvcmlnaW5hbERhdHVtOmQsb3JpZ2luYWxEYXRhc2V0OmMsb3JpZ2luYWxJbmRleDpwfSl9YS5zZXQoYyx1KX1yZXR1cm4gYX15ZC5zdGFjaz1HN2U7ZnVuY3Rpb24gVzdlKGUpe3ZhciB0PW5ldyAkZy5NYXAscj1uZXcgJGcuTWFwO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24obil7bi5mb3JFYWNoKGZ1bmN0aW9uKGksbyl7dmFyIGE9aS5vZmZzZXQraS52YWx1ZSxzPSRnLk1hdGgubWF4KFthLGkub2Zmc2V0XSxpLm9mZnNldCksbD0kZy5NYXRoLm1pbihbYSxpLm9mZnNldF0saS5vZmZzZXQpLGM9aS5heGlzVmFsdWU7dC5oYXMobyk/dC5nZXQobykuZXh0ZW50PHMmJnQuc2V0KG8se2V4dGVudDpzLGF4aXNWYWx1ZTpjLHN0YWNrZWREYXR1bTppfSk6dC5zZXQobyx7ZXh0ZW50OnMsYXhpc1ZhbHVlOmMsc3RhY2tlZERhdHVtOml9KSxyLmhhcyhvKT9yLmdldChvKS5leHRlbnQ+bCYmci5zZXQobyx7ZXh0ZW50OmwsYXhpc1ZhbHVlOmMsc3RhY2tlZERhdHVtOml9KTpyLnNldChvLHtleHRlbnQ6bCxheGlzVmFsdWU6YyxzdGFja2VkRGF0dW06aX0pfSl9KSx7bWF4aW11bUV4dGVudHM6dCxtaW5pbXVtRXh0ZW50czpyfX15ZC5zdGFja2VkRXh0ZW50cz1XN2U7ZnVuY3Rpb24gWTdlKGUsdCxyKXt2YXIgbj1bXTtlLmZvckVhY2goZnVuY3Rpb24oYSxzKXtmb3IodmFyIGw9cy5kYXRhKCksYz1sLmxlbmd0aCx1PTA7dTxjO3UrKyl7dmFyIGg9bFt1XTtpZighKHIhPW51bGwmJiFyKGgsdSxzKSkpe3ZhciBmPWEuZ2V0KHlkLm5vcm1hbGl6ZUtleSh0KGgsdSxzKSkpO24ucHVzaChmLnZhbHVlK2Yub2Zmc2V0KX19fSk7dmFyIGk9JGcuTWF0aC5tYXgobiwwKSxvPSRnLk1hdGgubWluKG4sMCk7cmV0dXJuW1BYdC5taW4obywwKSxQWHQubWF4KDAsaSldfXlkLnN0YWNrZWRFeHRlbnQ9WTdlO3lkLm5vcm1hbGl6ZUtleT1VN2UubWVtb2l6ZShmdW5jdGlvbihlKXtyZXR1cm4gU3RyaW5nKGUpfSl9KTt2YXIgJEE9SChDRj0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoQ0YsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO0NGLlNIT1dfV0FSTklOR1M9ITA7Q0YuQUREX1RJVExFX0VMRU1FTlRTPSEwfSk7dmFyIEFGPUgoZ1M9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGdTLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgajdlPSRBKCk7ZnVuY3Rpb24gTFh0KGUpeyFqN2UuU0hPV19XQVJOSU5HU3x8Y29uc29sZS53YXJuKGUpfWdTLndhcm49TFh0O2Z1bmN0aW9uIGtYdChlLHQpe2Zvcih2YXIgcj1bXSxuPTI7bjxhcmd1bWVudHMubGVuZ3RoO24rKylyW24tMl09YXJndW1lbnRzW25dO3JldHVybiB0PT09MD8oZShyKSwtMSk6d2luZG93LnNldFRpbWVvdXQoZSx0LHIpfWdTLnNldFRpbWVvdXQ9a1h0O2Z1bmN0aW9uIFg3ZShlLHQscil7dmFyIG49bnVsbCxpPVtdLG89ZnVuY3Rpb24oKXt0LmFwcGx5KHIsaSl9O3JldHVybiBmdW5jdGlvbigpe2k9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSxjbGVhclRpbWVvdXQobiksbj1rWHQobyxlKX19Z1MuZGVib3VuY2U9WDdlO2Z1bmN0aW9uICQ3ZShlLHQscil7cj09PXZvaWQgMCYmKHI9IiIpLExYdCgiTWV0aG9kICIrZSsiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gdmVyc2lvbiAiK3QrIi4gUGxlYXNlIHJlZmVyIHRvIHRoZSByZWxlYXNlIG5vdGVzLiAiK3IpfWdTLmRlcHJlY2F0ZWQ9JDdlfSk7dmFyIFJYdD1IKExpdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTGl0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgSzdlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LHIsbil7dGhpcy5lbnRyeUluZGV4PXQsdGhpcy5leGl0SW5kZXg9dCx0aGlzLm1pbkluZGV4PXQsdGhpcy5tYXhJbmRleD10LHRoaXMuYnVja2V0VmFsdWU9cix0aGlzLm1pblZhbHVlPW4sdGhpcy5tYXhWYWx1ZT1ufXJldHVybiBlLnByb3RvdHlwZS5pc0luQnVja2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0PT10aGlzLmJ1Y2tldFZhbHVlfSxlLnByb3RvdHlwZS5hZGRUb0J1Y2tldD1mdW5jdGlvbih0LHIpe3Q8dGhpcy5taW5WYWx1ZSYmKHRoaXMubWluVmFsdWU9dCx0aGlzLm1pbkluZGV4PXIpLHQ+dGhpcy5tYXhWYWx1ZSYmKHRoaXMubWF4VmFsdWU9dCx0aGlzLm1heEluZGV4PXIpLHRoaXMuZXhpdEluZGV4PXJ9LGUucHJvdG90eXBlLmdldFVuaXF1ZUluZGljZXM9ZnVuY3Rpb24oKXt2YXIgdD1bdGhpcy5lbnRyeUluZGV4LHRoaXMubWF4SW5kZXgsdGhpcy5taW5JbmRleCx0aGlzLmV4aXRJbmRleF07cmV0dXJuIHQuZmlsdGVyKGZ1bmN0aW9uKHIsbil7cmV0dXJuIG49PTB8fHIhPXRbbi0xXX0pfSxlfSgpO0xpdC5CdWNrZXQ9SzdlfSk7dmFyIFJpdD1IKGtpdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoa2l0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgWjdlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3R5cGVvZiB3aW5kb3cuU2V0PT0iZnVuY3Rpb24iP3RoaXMuX2VzNlNldD1uZXcgd2luZG93LlNldDp0aGlzLl92YWx1ZXM9W10sdGhpcy5zaXplPTB9cmV0dXJuIGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZXM2U2V0IT1udWxsPyh0aGlzLl9lczZTZXQuYWRkKHQpLHRoaXMuc2l6ZT10aGlzLl9lczZTZXQuc2l6ZSx0aGlzKToodGhpcy5oYXModCl8fCh0aGlzLl92YWx1ZXMucHVzaCh0KSx0aGlzLnNpemU9dGhpcy5fdmFsdWVzLmxlbmd0aCksdGhpcyl9LGUucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXtpZih0aGlzLl9lczZTZXQhPW51bGwpe3ZhciByPXRoaXMuX2VzNlNldC5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZT10aGlzLl9lczZTZXQuc2l6ZSxyfXZhciBuPXRoaXMuX3ZhbHVlcy5pbmRleE9mKHQpO3JldHVybiBuIT09LTE/KHRoaXMuX3ZhbHVlcy5zcGxpY2UobiwxKSx0aGlzLnNpemU9dGhpcy5fdmFsdWVzLmxlbmd0aCwhMCk6ITF9LGUucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZXM2U2V0IT1udWxsP3RoaXMuX2VzNlNldC5oYXModCk6dGhpcy5fdmFsdWVzLmluZGV4T2YodCkhPT0tMX0sZS5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbih0LHIpe3ZhciBuPXRoaXM7aWYodGhpcy5fZXM2U2V0IT1udWxsKXt2YXIgaT1mdW5jdGlvbihvLGEpe3JldHVybiB0LmNhbGwocixvLGEsbil9O3RoaXMuX2VzNlNldC5mb3JFYWNoKGkscik7cmV0dXJufXRoaXMuX3ZhbHVlcy5mb3JFYWNoKGZ1bmN0aW9uKG8pe3QuY2FsbChyLG8sbyxuKX0pfSxlfSgpO2tpdC5TZXQ9WjdlfSk7dmFyIE5YdD1IKE5pdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTml0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgSjdlPShkZSgpLFV0KHBlKSksUTdlPVJpdCgpLHR6ZT1mdW5jdGlvbihlKXtKN2UuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdCgpe3JldHVybiBlIT09bnVsbCYmZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHQucHJvdG90eXBlLmNhbGxDYWxsYmFja3M9ZnVuY3Rpb24oKXtmb3IodmFyIHI9dGhpcyxuPVtdLGk9MDtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKW5baV09YXJndW1lbnRzW2ldO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24obyl7by5hcHBseShyLG4pfSksdGhpc30sdH0oUTdlLlNldCk7Tml0LkNhbGxiYWNrU2V0PXR6ZX0pO3ZhciBEWHQ9SChEaXQ9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KERpdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEtnPUlpdCgpLGV6ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt0aGlzLl9lbnRpdGllcz1bXSx0aGlzLl9ydHJlZT1uZXcgS2cuUlRyZWV9cmV0dXJuIGUucHJvdG90eXBlLmFkZEFsbD1mdW5jdGlvbih0LHIsbil7aWYodGhpcy5fZW50aXRpZXM9dGhpcy5fZW50aXRpZXMuY29uY2F0KHQpLG4hPT12b2lkIDApZm9yKHZhciBpPUtnLlJUcmVlQm91bmRzLmJvdW5kcyhuKSxvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBhPXRbb10scz1LZy5SVHJlZUJvdW5kcy5lbnRpdHlCb3VuZHMocihhKSk7S2cuUlRyZWVCb3VuZHMuaXNCb3VuZHNPdmVybGFwQm91bmRzKGkscykmJnRoaXMuX3J0cmVlLmluc2VydChzLGEpfWVsc2UgZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBhPXRbb10scz1LZy5SVHJlZUJvdW5kcy5lbnRpdHlCb3VuZHMocihhKSk7dGhpcy5fcnRyZWUuaW5zZXJ0KHMsYSl9fSxlLnByb3RvdHlwZS5lbnRpdHlOZWFyZXN0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ydHJlZS5sb2NhdGVOZWFyZXN0KHQpLnBvcCgpfSxlLnByb3RvdHlwZS5lbnRpdHlOZWFyZXN0WD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcnRyZWUubG9jYXRlTmVhcmVzdFgodCkucG9wKCl9LGUucHJvdG90eXBlLmVudGl0eU5lYXJlc3RZPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ydHJlZS5sb2NhdGVOZWFyZXN0WSh0KS5wb3AoKX0sZS5wcm90b3R5cGUuZW50aXRpZXNJbkJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcnRyZWUuaW50ZXJzZWN0KEtnLlJUcmVlQm91bmRzLmVudGl0eUJvdW5kcyh0KSl9LGUucHJvdG90eXBlLmVudGl0aWVzSW5YQm91bmRzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ydHJlZS5pbnRlcnNlY3RYKEtnLlJUcmVlQm91bmRzLmVudGl0eUJvdW5kcyh0KSl9LGUucHJvdG90eXBlLmVudGl0aWVzSW5ZQm91bmRzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ydHJlZS5pbnRlcnNlY3RZKEtnLlJUcmVlQm91bmRzLmVudGl0eUJvdW5kcyh0KSl9LGUucHJvdG90eXBlLmVudGl0aWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VudGl0aWVzfSxlfSgpO0RpdC5FbnRpdHlTdG9yZT1lemV9KTt2YXIgT1h0PUgoT2l0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPaXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByemU9QWl0KCksbnplPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3R5cGVvZiB3aW5kb3cuTWFwPT0iZnVuY3Rpb24iP3RoaXMuX2VzNk1hcD1uZXcgd2luZG93Lk1hcDp0aGlzLl9rZXlWYWx1ZVBhaXJzPVtdfXJldHVybiBlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXtpZihyemUuaXNOYU4odCkpdGhyb3cgbmV3IEVycm9yKCJOYU4gbWF5IG5vdCBiZSB1c2VkIGFzIGEga2V5IHRvIHRoZSBNYXAiKTtpZih0aGlzLl9lczZNYXAhPW51bGwpcmV0dXJuIHRoaXMuX2VzNk1hcC5zZXQodCxyKSx0aGlzO2Zvcih2YXIgbj0wO248dGhpcy5fa2V5VmFsdWVQYWlycy5sZW5ndGg7bisrKWlmKHRoaXMuX2tleVZhbHVlUGFpcnNbbl0ua2V5PT09dClyZXR1cm4gdGhpcy5fa2V5VmFsdWVQYWlyc1tuXS52YWx1ZT1yLHRoaXM7cmV0dXJuIHRoaXMuX2tleVZhbHVlUGFpcnMucHVzaCh7a2V5OnQsdmFsdWU6cn0pLHRoaXN9LGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtpZih0aGlzLl9lczZNYXAhPW51bGwpcmV0dXJuIHRoaXMuX2VzNk1hcC5nZXQodCk7Zm9yKHZhciByPTA7cjx0aGlzLl9rZXlWYWx1ZVBhaXJzLmxlbmd0aDtyKyspaWYodGhpcy5fa2V5VmFsdWVQYWlyc1tyXS5rZXk9PT10KXJldHVybiB0aGlzLl9rZXlWYWx1ZVBhaXJzW3JdLnZhbHVlfSxlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7aWYodGhpcy5fZXM2TWFwIT1udWxsKXJldHVybiB0aGlzLl9lczZNYXAuaGFzKHQpO2Zvcih2YXIgcj0wO3I8dGhpcy5fa2V5VmFsdWVQYWlycy5sZW5ndGg7cisrKWlmKHRoaXMuX2tleVZhbHVlUGFpcnNbcl0ua2V5PT09dClyZXR1cm4hMDtyZXR1cm4hMX0sZS5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbih0LHIpe3ZhciBuPXRoaXM7aWYodGhpcy5fZXM2TWFwIT1udWxsKXt2YXIgaT1mdW5jdGlvbihvLGEpe3JldHVybiB0LmNhbGwocixvLGEsbil9O3RoaXMuX2VzNk1hcC5mb3JFYWNoKGkscik7cmV0dXJufXRoaXMuX2tleVZhbHVlUGFpcnMuZm9yRWFjaChmdW5jdGlvbihvKXt0LmNhbGwocixvLnZhbHVlLG8ua2V5LG4pfSl9LGUucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXtpZih0aGlzLl9lczZNYXAhPW51bGwpcmV0dXJuIHRoaXMuX2VzNk1hcC5kZWxldGUodCk7Zm9yKHZhciByPTA7cjx0aGlzLl9rZXlWYWx1ZVBhaXJzLmxlbmd0aDtyKyspaWYodGhpcy5fa2V5VmFsdWVQYWlyc1tyXS5rZXk9PT10KXJldHVybiB0aGlzLl9rZXlWYWx1ZVBhaXJzLnNwbGljZShyLDEpLCEwO3JldHVybiExfSxlfSgpO09pdC5NYXA9bnplfSk7dmFyIHpYdD1IKHppdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoeml0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtmdW5jdGlvbiBpemUoKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZVt0XT1hcmd1bWVudHNbdF07Zm9yKHZhciByPXt9LG49MCxpPWU7bjxpLmxlbmd0aDtuKyspZm9yKHZhciBvPWlbbl0sYT1PYmplY3Qua2V5cyhvKSxzPTAsbD1hO3M8bC5sZW5ndGg7cysrKXt2YXIgYz1sW3NdO3JbY109b1tjXX1yZXR1cm4gcn16aXQuYXNzaWduPWl6ZX0pO3ZhciBIWHQ9SChQRj0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBGaXQ9RmUoKSxGWHQ9Il9fUGxvdHRhYmxlX0NsaWVudFRyYW5zbGF0b3IiO2Z1bmN0aW9uIG96ZShlKXt2YXIgdD1lLnJvb3QoKS5yb290RWxlbWVudCgpLm5vZGUoKSxyPXRbRlh0XTtyZXR1cm4gcj09bnVsbCYmKHI9bmV3IEJYdCh0KSx0W0ZYdF09cikscn1QRi5nZXRUcmFuc2xhdG9yPW96ZTt2YXIgQlh0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt0aGlzLl9yb290RWxlbWVudD10fXJldHVybiBlLnByb3RvdHlwZS5jb21wdXRlUG9zaXRpb249ZnVuY3Rpb24odCxyKXt2YXIgbj17eDp0LHk6cn0saT1GaXQuTWF0aC5nZXRDdW11bGF0aXZlVHJhbnNmb3JtKHRoaXMuX3Jvb3RFbGVtZW50KTtpZihpPT1udWxsKXJldHVybiBuO3ZhciBvPUZpdC5NYXRoLmFwcGx5VHJhbnNmb3JtKGksbik7cmV0dXJuIG99LGUuaXNFdmVudEluc2lkZT1mdW5jdGlvbih0LHIpe3JldHVybiBGaXQuRE9NLmNvbnRhaW5zKHQucm9vdCgpLnJvb3RFbGVtZW50KCkubm9kZSgpLHIudGFyZ2V0KX0sZX0oKTtQRi5UcmFuc2xhdG9yPUJYdH0pO3ZhciBGZT1IKHFvPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShxbywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFpnPShkZSgpLFV0KHBlKSksYXplPV9YdCgpO3FvLkFycmF5PWF6ZTt2YXIgc3plPXhYdCgpO3FvLkNvbG9yPXN6ZTt2YXIgbHplPUNpdCgpO3FvLkRPTT1semU7dmFyIGN6ZT1BaXQoKTtxby5NYXRoPWN6ZTt2YXIgdXplPUlpdCgpO3FvLlJUcmVlPXV6ZTt2YXIgaHplPUlYdCgpO3FvLlN0YWNraW5nPWh6ZTt2YXIgZnplPUFGKCk7cW8uV2luZG93PWZ6ZTtaZy5fX2V4cG9ydFN0YXIoUlh0KCkscW8pO1pnLl9fZXhwb3J0U3RhcihOWHQoKSxxbyk7WmcuX19leHBvcnRTdGFyKGpnKCkscW8pO1pnLl9fZXhwb3J0U3RhcihEWHQoKSxxbyk7WmcuX19leHBvcnRTdGFyKE9YdCgpLHFvKTtaZy5fX2V4cG9ydFN0YXIoelh0KCkscW8pO1pnLl9fZXhwb3J0U3RhcihSaXQoKSxxbyk7WmcuX19leHBvcnRTdGFyKEhYdCgpLHFvKX0pO3ZhciBIaXQ9SChLQT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoS0EsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBWWHQ9RmUoKSxCaXQ9SUYoKSxwemU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7fXJldHVybiBlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXtCaXQuZmx1c2goKX0sZX0oKTtLQS5JbW1lZGlhdGU9cHplO3ZhciBkemU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7fXJldHVybiBlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXtWWHQuRE9NLnJlcXVlc3RBbmltYXRpb25GcmFtZVBvbHlmaWxsKEJpdC5mbHVzaCl9LGV9KCk7S0EuQW5pbWF0aW9uRnJhbWU9ZHplO3ZhciBtemU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5fdGltZW91dE1zZWM9Vlh0LkRPTS5TQ1JFRU5fUkVGUkVTSF9SQVRFX01JTExJU0VDT05EU31yZXR1cm4gZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7c2V0VGltZW91dChCaXQuZmx1c2gsdGhpcy5fdGltZW91dE1zZWMpfSxlfSgpO0tBLlRpbWVvdXQ9bXplfSk7dmFyIElGPUgoenU9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHp1LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgX1M9RmUoKSxnemU9TGYoKSxMRj1IaXQoKSxKQT1uZXcgX1MuU2V0LFZpdD1uZXcgX1MuU2V0LGtGPSExLFVpdD0hMTt6dS5Qb2xpY3k9Z3plLm1ha2VFbnVtKFsiaW1tZWRpYXRlIiwiYW5pbWF0aW9uRnJhbWUiLCJ0aW1lb3V0Il0pO3ZhciBaQT1uZXcgTEYuQW5pbWF0aW9uRnJhbWU7ZnVuY3Rpb24gX3plKGUpe2lmKGU9PW51bGwpcmV0dXJuIFpBO3N3aXRjaChlKXtjYXNlIHp1LlBvbGljeS5pbW1lZGlhdGU6WkE9bmV3IExGLkltbWVkaWF0ZTticmVhaztjYXNlIHp1LlBvbGljeS5hbmltYXRpb25GcmFtZTpaQT1uZXcgTEYuQW5pbWF0aW9uRnJhbWU7YnJlYWs7Y2FzZSB6dS5Qb2xpY3kudGltZW91dDpaQT1uZXcgTEYuVGltZW91dDticmVhaztkZWZhdWx0Ol9TLldpbmRvdy53YXJuKCJVbnJlY29nbml6ZWQgcmVuZGVyUG9saWN5OiAiK2UpfX16dS5yZW5kZXJQb2xpY3k9X3plO2Z1bmN0aW9uIHl6ZShlKXtVaXQmJl9TLldpbmRvdy53YXJuKCJSZWdpc3RlcmVkIHRvIHJlbmRlciB3aGlsZSBvdGhlciBjb21wb25lbnRzIGFyZSBmbHVzaGluZzogcmVxdWVzdCBtYXkgYmUgaWdub3JlZCIpLEpBLmFkZChlKSxxWHQoKX16dS5yZWdpc3RlclRvUmVuZGVyPXl6ZTtmdW5jdGlvbiBVWHQoZSl7Vml0LmFkZChlKSxKQS5hZGQoZSkscVh0KCl9enUucmVnaXN0ZXJUb0NvbXB1dGVMYXlvdXRBbmRSZW5kZXI9VVh0O2Z1bmN0aW9uIHZ6ZShlKXtVWHQoZSl9enUucmVnaXN0ZXJUb0NvbXB1dGVMYXlvdXQ9dnplO2Z1bmN0aW9uIHFYdCgpe2tGfHwoa0Y9ITAsWkEucmVuZGVyKCkpfWZ1bmN0aW9uIHh6ZSgpe2lmKGtGKXtWaXQuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb21wdXRlTGF5b3V0KCl9KSxKQS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlbmRlcigpfSksVWl0PSEwO3ZhciBlPW5ldyBfUy5TZXQ7SkEuZm9yRWFjaChmdW5jdGlvbih0KXt0cnl7dC5yZW5kZXJJbW1lZGlhdGVseSgpfWNhdGNoKHIpe3dpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgcn0sMCksZS5hZGQodCl9fSksVml0PW5ldyBfUy5TZXQsSkE9ZSxrRj0hMSxVaXQ9ITF9fXp1LmZsdXNoPXh6ZX0pO3ZhciBrYz1IKFFBPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRQSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEdYdD0oRXIoKSxVdChNcikpLFJGPUlGKCkseVM9RmUoKSxiemU9T2UoKSxXWHQ9amcoKSxZWHQ9TGYoKTtRQS5YQWxpZ25tZW50PVlYdC5tYWtlRW51bShbImxlZnQiLCJjZW50ZXIiLCJyaWdodCJdKTtRQS5ZQWxpZ25tZW50PVlYdC5tYWtlRW51bShbInRvcCIsImNlbnRlciIsImJvdHRvbSJdKTt2YXIgd3plPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMuX292ZXJmbG93SGlkZGVuPSExLHRoaXMuX29yaWdpbj17eDowLHk6MH0sdGhpcy5feEFsaWdubWVudD0ibGVmdCIsdGhpcy5feUFsaWdubWVudD0idG9wIix0aGlzLl9pc1NldHVwPSExLHRoaXMuX2lzQW5jaG9yZWQ9ITEsdGhpcy5fY3NzQ2xhc3Nlcz1uZXcgeVMuU2V0LHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9vbkFuY2hvckNhbGxiYWNrcz1uZXcgeVMuQ2FsbGJhY2tTZXQsdGhpcy5fb25EZXRhY2hDYWxsYmFja3M9bmV3IHlTLkNhbGxiYWNrU2V0LHRoaXMuX2Nzc0NsYXNzZXMuYWRkKCJjb21wb25lbnQiKX1yZXR1cm4gZS5wcm90b3R5cGUuYW5jaG9yPWZ1bmN0aW9uKHQpe2lmKHQ9V1h0LmNvZXJjZUV4dGVybmFsRDModCksdGhpcy5fZGVzdHJveWVkKXRocm93IG5ldyBFcnJvcigiQ2FuJ3QgcmV1c2UgZGVzdHJveSgpLWVkIENvbXBvbmVudHMhIik7cmV0dXJuIHRoaXMuaXNSb290KCkmJih0aGlzLl9yb290RWxlbWVudD10LHRoaXMuX3Jvb3RFbGVtZW50LmNsYXNzZWQoInBsb3R0YWJsZSIsITApKSx0aGlzLl9lbGVtZW50IT1udWxsP3Qubm9kZSgpLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQubm9kZSgpKToodGhpcy5fZWxlbWVudD10LmFwcGVuZCgiZGl2IiksdGhpcy5fc2V0dXAoKSksdGhpcy5faXNBbmNob3JlZD0hMCx0aGlzLl9vbkFuY2hvckNhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHRoaXMpLHRoaXN9LGUucHJvdG90eXBlLm9uQW5jaG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pc0FuY2hvcmVkJiZ0KHRoaXMpLHRoaXMuX29uQW5jaG9yQ2FsbGJhY2tzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZBbmNob3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX29uQW5jaG9yQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2lzU2V0dXB8fCh0aGlzLl9jc3NDbGFzc2VzLmZvckVhY2goZnVuY3Rpb24ocil7dC5fZWxlbWVudC5jbGFzc2VkKHIsITApfSksdGhpcy5fY3NzQ2xhc3Nlcz1uZXcgeVMuU2V0LHRoaXMuX2JhY2tncm91bmRDb250YWluZXI9dGhpcy5fZWxlbWVudC5hcHBlbmQoInN2ZyIpLmNsYXNzZWQoImJhY2tncm91bmQtY29udGFpbmVyIiwhMCksdGhpcy5fY29udGVudD10aGlzLl9lbGVtZW50LmFwcGVuZCgic3ZnIikuY2xhc3NlZCgiY29udGVudCIsITApLHRoaXMuX2ZvcmVncm91bmRDb250YWluZXI9dGhpcy5fZWxlbWVudC5hcHBlbmQoInN2ZyIpLmNsYXNzZWQoImZvcmVncm91bmQtY29udGFpbmVyIiwhMCksdGhpcy5fb3ZlcmZsb3dIaWRkZW4/dGhpcy5fY29udGVudC5jbGFzc2VkKCJjb21wb25lbnQtb3ZlcmZsb3ctaGlkZGVuIiwhMCk6dGhpcy5fY29udGVudC5jbGFzc2VkKCJjb21wb25lbnQtb3ZlcmZsb3ctdmlzaWJsZSIsITApLHRoaXMuX2lzU2V0dXA9ITApfSxlLnByb3RvdHlwZS5yZXF1ZXN0ZWRTcGFjZT1mdW5jdGlvbih0LHIpe3JldHVybnttaW5XaWR0aDowLG1pbkhlaWdodDowfX0sZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbih0LHIsbil7aWYodD09bnVsbHx8cj09bnVsbHx8bj09bnVsbCl7aWYodGhpcy5fZWxlbWVudD09bnVsbCl0aHJvdyBuZXcgRXJyb3IoImFuY2hvcigpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBjb21wdXRlTGF5b3V0KCkiKTtpZih0aGlzLl9yb290RWxlbWVudCE9bnVsbCl7dD17eDowLHk6MH07dmFyIGk9dGhpcy5fcm9vdEVsZW1lbnQubm9kZSgpO3I9eVMuRE9NLmVsZW1lbnRXaWR0aChpKSxuPXlTLkRPTS5lbGVtZW50SGVpZ2h0KGkpfWVsc2UgdGhyb3cgbmV3IEVycm9yKCJudWxsIGFyZ3VtZW50cyBjYW5ub3QgYmUgcGFzc2VkIHRvIGNvbXB1dGVMYXlvdXQoKSBvbiBhIG5vbi1yb290LCB1bmFuY2hvcmVkIG5vZGUiKX12YXIgbz10aGlzLl9zaXplRnJvbU9mZmVyKHIsbiksYT1vLmhlaWdodCxzPW8ud2lkdGgsbD1lLl94QWxpZ25Ub1Byb3BvcnRpb25bdGhpcy5feEFsaWdubWVudF0sYz1lLl95QWxpZ25Ub1Byb3BvcnRpb25bdGhpcy5feUFsaWdubWVudF0sdT10LngrKHItcykqbCxoPXQueSsobi1hKSpjO3JldHVybiB0aGlzLnNldEJvdW5kcyhzLGEsdSxoKSx0aGlzfSxlLnByb3RvdHlwZS5zZXRCb3VuZHM9ZnVuY3Rpb24odCxyLG4saSl7cmV0dXJuIG49PT12b2lkIDAmJihuPTApLGk9PT12b2lkIDAmJihpPTApLHRoaXMuX3dpZHRoPXQsdGhpcy5faGVpZ2h0PXIsdGhpcy5fb3JpZ2luPXt4Om4seTppfSx0aGlzLl9lbGVtZW50IT1udWxsJiZ0aGlzLl9lbGVtZW50LnN0eWxlcyh7bGVmdDpuKyJweCIsaGVpZ2h0OnIrInB4Iix0b3A6aSsicHgiLHdpZHRoOnQrInB4In0pLHRoaXMuX3Jlc2l6ZUhhbmRsZXIhPW51bGwmJnRoaXMuX3Jlc2l6ZUhhbmRsZXIoe3dpZHRoOnQsaGVpZ2h0OnJ9KSx0aGlzfSxlLnByb3RvdHlwZS5fc2l6ZUZyb21PZmZlcj1mdW5jdGlvbih0LHIpe3ZhciBuPXRoaXMucmVxdWVzdGVkU3BhY2UodCxyKTtyZXR1cm57d2lkdGg6dGhpcy5maXhlZFdpZHRoKCk/TWF0aC5taW4odCxuLm1pbldpZHRoKTp0LGhlaWdodDp0aGlzLmZpeGVkSGVpZ2h0KCk/TWF0aC5taW4ocixuLm1pbkhlaWdodCk6cn19LGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9pc0FuY2hvcmVkJiZ0aGlzLl9pc1NldHVwJiZ0aGlzLndpZHRoKCk+PTAmJnRoaXMuaGVpZ2h0KCk+PTAmJlJGLnJlZ2lzdGVyVG9SZW5kZXIodGhpcyksdGhpc30sZS5wcm90b3R5cGUucmVuZGVyTG93UHJpb3JpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZW5kZXIoKX0sZS5wcm90b3R5cGUuX3NjaGVkdWxlQ29tcHV0ZUxheW91dD1mdW5jdGlvbigpe3RoaXMuX2lzQW5jaG9yZWQmJnRoaXMuX2lzU2V0dXAmJlJGLnJlZ2lzdGVyVG9Db21wdXRlTGF5b3V0QW5kUmVuZGVyKHRoaXMpfSxlLnByb3RvdHlwZS5vblJlc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVzaXplSGFuZGxlcj10LHRoaXN9LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGUucHJvdG90eXBlLnJlZHJhdz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9pc0FuY2hvcmVkJiZ0aGlzLl9pc1NldHVwJiYodGhpcy5pc1Jvb3QoKT90aGlzLl9zY2hlZHVsZUNvbXB1dGVMYXlvdXQoKTp0aGlzLnBhcmVudCgpLnJlZHJhdygpKSx0aGlzfSxlLnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGU9ZnVuY3Rpb24oKXt9LGUucHJvdG90eXBlLnJlbmRlclRvPWZ1bmN0aW9uKHQpe2lmKHRoaXMuZGV0YWNoKCksdCE9bnVsbCl7dmFyIHI9dm9pZCAwO2lmKHR5cGVvZiB0PT0ic3RyaW5nInx8YnplLmlzRWxlbWVudCh0KT9yPUdYdC5zZWxlY3QodCk6cj1XWHQuY29lcmNlRXh0ZXJuYWxEMyh0KSwhci5ub2RlKCl8fHIubm9kZSgpLm5vZGVOYW1lPT1udWxsKXRocm93IG5ldyBFcnJvcigiUGxvdHRhYmxlIHJlcXVpcmVzIGEgdmFsaWQgRWxlbWVudCB0byByZW5kZXJUbyIpO2lmKHIubm9kZSgpLm5vZGVOYW1lPT09InN2ZyIpdGhyb3cgbmV3IEVycm9yKCJQbG90dGFibGUgMy54IGFuZCBsYXRlciBjYW4gb25seSByZW5kZXJUbyBhbiBIVE1MIGNvbXBvbmVudDsgcGFzcyBhIGRpdiBpbnN0ZWFkISIpO3RoaXMuYW5jaG9yKHIpfWlmKHRoaXMuX2VsZW1lbnQ9PW51bGwpdGhyb3cgbmV3IEVycm9yKCJJZiBhIENvbXBvbmVudCBoYXMgbmV2ZXIgYmVlbiByZW5kZXJlZCBiZWZvcmUsIHRoZW4gcmVuZGVyVG8gbXVzdCBiZSBnaXZlbiBhIG5vZGUgdG8gcmVuZGVyIHRvLCBvciBhIGQzLlNlbGVjdGlvbiwgb3IgYSBzZWxlY3RvciBzdHJpbmciKTtyZXR1cm4gUkYucmVnaXN0ZXJUb0NvbXB1dGVMYXlvdXRBbmRSZW5kZXIodGhpcyksUkYuZmx1c2goKSx0aGlzfSxlLnByb3RvdHlwZS54QWxpZ25tZW50PWZ1bmN0aW9uKHQpe2lmKHQ9PW51bGwpcmV0dXJuIHRoaXMuX3hBbGlnbm1lbnQ7aWYodD10LnRvTG93ZXJDYXNlKCksZS5feEFsaWduVG9Qcm9wb3J0aW9uW3RdPT1udWxsKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgYWxpZ25tZW50OiAiK3QpO3JldHVybiB0aGlzLl94QWxpZ25tZW50PXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS55QWxpZ25tZW50PWZ1bmN0aW9uKHQpe2lmKHQ9PW51bGwpcmV0dXJuIHRoaXMuX3lBbGlnbm1lbnQ7aWYodD10LnRvTG93ZXJDYXNlKCksZS5feUFsaWduVG9Qcm9wb3J0aW9uW3RdPT1udWxsKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgYWxpZ25tZW50OiAiK3QpO3JldHVybiB0aGlzLl95QWxpZ25tZW50PXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5oYXNDbGFzcz1mdW5jdGlvbih0KXtyZXR1cm4gdD09bnVsbD8hMTp0aGlzLl9lbGVtZW50PT1udWxsP3RoaXMuX2Nzc0NsYXNzZXMuaGFzKHQpOnRoaXMuX2VsZW1lbnQuY2xhc3NlZCh0KX0sZS5wcm90b3R5cGUuYWRkQ2xhc3M9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PW51bGw/dGhpczoodGhpcy5fZWxlbWVudD09bnVsbD90aGlzLl9jc3NDbGFzc2VzLmFkZCh0KTp0aGlzLl9lbGVtZW50LmNsYXNzZWQodCwhMCksdGhpcyl9LGUucHJvdG90eXBlLnJlbW92ZUNsYXNzPWZ1bmN0aW9uKHQpe3JldHVybiB0PT1udWxsP3RoaXM6KHRoaXMuX2VsZW1lbnQ9PW51bGw/dGhpcy5fY3NzQ2xhc3Nlcy5kZWxldGUodCk6dGhpcy5fZWxlbWVudC5jbGFzc2VkKHQsITEpLHRoaXMpfSxlLnByb3RvdHlwZS5maXhlZFdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLmZpeGVkSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLmRldGFjaD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudChudWxsKSx0aGlzLl9pc0FuY2hvcmVkJiZ0aGlzLl9lbGVtZW50LnJlbW92ZSgpLHRoaXMuX2lzQW5jaG9yZWQ9ITEsdGhpcy5fb25EZXRhY2hDYWxsYmFja3MuY2FsbENhbGxiYWNrcyh0aGlzKSx0aGlzfSxlLnByb3RvdHlwZS5vbkRldGFjaD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fb25EZXRhY2hDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZkRldGFjaD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fb25EZXRhY2hDYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LGUucHJvdG90eXBlLnBhcmVudD1mdW5jdGlvbih0KXtpZih0PT09dm9pZCAwKXJldHVybiB0aGlzLl9wYXJlbnQ7aWYodCE9PW51bGwmJiF0Lmhhcyh0aGlzKSl0aHJvdyBuZXcgRXJyb3IoIlBhc3NlZCBpbnZhbGlkIHBhcmVudCIpO3JldHVybiB0aGlzLl9wYXJlbnQ9dCx0aGlzfSxlLnByb3RvdHlwZS5ib3VuZHM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9yaWdpbigpO3JldHVybnt0b3BMZWZ0OnQsYm90dG9tUmlnaHQ6e3g6dC54K3RoaXMud2lkdGgoKSx5OnQueSt0aGlzLmhlaWdodCgpfX19LGUucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLl9kZXN0cm95ZWQ9ITAsdGhpcy5kZXRhY2goKX0sZS5wcm90b3R5cGUud2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd2lkdGh9LGUucHJvdG90eXBlLmhlaWdodD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9oZWlnaHR9LGUucHJvdG90eXBlLm9yaWdpbj1mdW5jdGlvbigpe3JldHVybnt4OnRoaXMuX29yaWdpbi54LHk6dGhpcy5fb3JpZ2luLnl9fSxlLnByb3RvdHlwZS5vcmlnaW5Ub1Jvb3Q9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5vcmlnaW4oKSxyPXRoaXMucGFyZW50KCk7ciE9bnVsbDspe3ZhciBuPXIub3JpZ2luKCk7dC54Kz1uLngsdC55Kz1uLnkscj1yLnBhcmVudCgpfXJldHVybiB0fSxlLnByb3RvdHlwZS5yb290PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXM7IXQuaXNSb290KCk7KXQ9dC5wYXJlbnQoKTtyZXR1cm4gdH0sZS5wcm90b3R5cGUuaXNSb290PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50KCk9PW51bGx9LGUucHJvdG90eXBlLmZvcmVncm91bmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZm9yZWdyb3VuZENvbnRhaW5lcn0sZS5wcm90b3R5cGUuY29udGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb250ZW50fSxlLnByb3RvdHlwZS5lbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VsZW1lbnR9LGUucHJvdG90eXBlLnJvb3RFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdCgpLl9yb290RWxlbWVudH0sZS5wcm90b3R5cGUuYmFja2dyb3VuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9iYWNrZ3JvdW5kQ29udGFpbmVyfSxlLl94QWxpZ25Ub1Byb3BvcnRpb249e2xlZnQ6MCxjZW50ZXI6LjUscmlnaHQ6MX0sZS5feUFsaWduVG9Qcm9wb3J0aW9uPXt0b3A6MCxjZW50ZXI6LjUsYm90dG9tOjF9LGV9KCk7UUEuQ29tcG9uZW50PXd6ZX0pO3ZhciBCdT1IKEZ1PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShGdSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHZTPShFcigpLFV0KE1yKSksU3plPSExO2Z1bmN0aW9uIE16ZShlLHQscil7ZT09PXZvaWQgMCYmKGU9MiksdD09PXZvaWQgMCYmKHQ9IiQiKSxyPT09dm9pZCAwJiYocj0hMCk7dmFyIG49cWl0KGUpO3JldHVybiBmdW5jdGlvbihpKXt2YXIgbz1uKE1hdGguYWJzKGkpKTtyZXR1cm4gbyE9PSIiJiYocj9vPXQrbzpvKz10LGk8MCYmKG89Ii0iK28pKSxvfX1GdS5jdXJyZW5jeT1NemU7ZnVuY3Rpb24gcWl0KGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT0zKSxORihlKSxmdW5jdGlvbih0KXtyZXR1cm4gdC50b0ZpeGVkKGUpfX1GdS5maXhlZD1xaXQ7ZnVuY3Rpb24gRXplKGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT0zKSxORihlKSxmdW5jdGlvbih0KXtpZih0eXBlb2YgdD09Im51bWJlciIpe3ZhciByPU1hdGgucG93KDEwLGUpO3JldHVybiBTdHJpbmcoTWF0aC5yb3VuZCh0KnIpL3IpfWVsc2UgcmV0dXJuIFN0cmluZyh0KX19RnUuZ2VuZXJhbD1FemU7ZnVuY3Rpb24gVHplKCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBTdHJpbmcoZSl9fUZ1LmlkZW50aXR5PVR6ZTtmdW5jdGlvbiBDemUoZSl7ZT09PXZvaWQgMCYmKGU9MCk7dmFyIHQ9cWl0KGUpO3JldHVybiBmdW5jdGlvbihyKXt2YXIgbj1yKjEwMCxpPXIudG9TdHJpbmcoKSxvPU1hdGgucG93KDEwLGkubGVuZ3RoLShpLmluZGV4T2YoIi4iKSsxKSk7cmV0dXJuIG49cGFyc2VJbnQoKG4qbykudG9TdHJpbmcoKSwxMCkvbyx0KG4pKyIlIn19RnUucGVyY2VudGFnZT1DemU7ZnVuY3Rpb24gQXplKGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT0zKSxORihlKSxmdW5jdGlvbih0KXtyZXR1cm4gdlMuZm9ybWF0KCIuIitlKyJzIikodCl9fUZ1LnNpU3VmZml4PUF6ZTtmdW5jdGlvbiBQemUoZSl7ZT09PXZvaWQgMCYmKGU9MyksTkYoZSk7dmFyIHQ9IktNQlRRIixyPXZTLmZvcm1hdCgiLiIrZSsiZSIpLG49dlMuZm9ybWF0KCIuIitlKyJmIiksaT1NYXRoLnBvdygxMCwzKih0Lmxlbmd0aCsxKSksbz1NYXRoLnBvdygxMCwtZSk7cmV0dXJuIGZ1bmN0aW9uKGEpe3ZhciBzPU1hdGguYWJzKGEpO2lmKChzPG98fHM+PWkpJiZzIT09MClyZXR1cm4gcihhKTtmb3IodmFyIGw9LTE7cz49TWF0aC5wb3coMWUzLGwrMikmJmw8dC5sZW5ndGgtMTspbCsrO3ZhciBjPSIiO3JldHVybiBsPT09LTE/Yz1uKGEpOmM9bihhL01hdGgucG93KDFlMyxsKzEpKSt0W2xdLChhPjAmJmMuc3Vic3RyKDAsNCk9PT0iMTAwMCJ8fGE8MCYmYy5zdWJzdHIoMCw1KT09PSItMTAwMCIpJiYobDx0Lmxlbmd0aC0xPyhsKyssYz1uKGEvTWF0aC5wb3coMWUzLGwrMSkpK3RbbF0pOmM9cihhKSksY319RnUuc2hvcnRTY2FsZT1QemU7ZnVuY3Rpb24gSXplKCl7dmFyIGU9W3tzcGVjaWZpZXI6Ii4lTCIscHJlZGljYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbGxpc2Vjb25kcygpIT09MH19LHtzcGVjaWZpZXI6IjolUyIscHJlZGljYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFNlY29uZHMoKSE9PTB9fSx7c3BlY2lmaWVyOiIlSTolTSIscHJlZGljYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbnV0ZXMoKSE9PTB9fSx7c3BlY2lmaWVyOiIlSSAlcCIscHJlZGljYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEhvdXJzKCkhPT0wfX0se3NwZWNpZmllcjoiJWEgJWQiLHByZWRpY2F0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXkoKSE9PTAmJnQuZ2V0RGF0ZSgpIT09MX19LHtzcGVjaWZpZXI6IiViICVkIixwcmVkaWNhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RGF0ZSgpIT09MX19LHtzcGVjaWZpZXI6IiViIixwcmVkaWNhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TW9udGgoKSE9PTB9fV07cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciByPWUuZmlsdGVyKGZ1bmN0aW9uKGkpe3JldHVybiBpLnByZWRpY2F0ZSh0KX0pLG49ci5sZW5ndGg+MD9yWzBdLnNwZWNpZmllcjoiJVkiO3JldHVybiB2Uy50aW1lRm9ybWF0KG4pKHQpfX1GdS5tdWx0aVRpbWU9SXplO2Z1bmN0aW9uIEx6ZShlLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD1TemUpLHQ/dlMudXRjRm9ybWF0KGUpOnZTLnRpbWVGb3JtYXQoZSl9RnUudGltZT1MemU7ZnVuY3Rpb24gTkYoZSl7aWYoZTwwfHxlPjIwKXRocm93IG5ldyBSYW5nZUVycm9yKCJGb3JtYXR0ZXIgcHJlY2lzaW9uIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMCIpO2lmKGUhPT1NYXRoLmZsb29yKGUpKXRocm93IG5ldyBSYW5nZUVycm9yKCJGb3JtYXR0ZXIgcHJlY2lzaW9uIG11c3QgYmUgYW4gaW50ZWdlciIpfX0pO3ZhciB0ND1IKERGPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShERiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGt6ZT0oZGUoKSxVdChwZSkpLHZkPShFcigpLFV0KE1yKSksR2l0PXlsKCksUnplPWtjKCksalh0PUJ1KCkseFM9RmUoKSxOemU9TGYoKTtERi5BeGlzT3JpZW50YXRpb249TnplLm1ha2VFbnVtKFsiYm90dG9tIiwibGVmdCIsInJpZ2h0IiwidG9wIl0pO3ZhciBEemU9ZnVuY3Rpb24oZSl7a3plLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocixuKXt2YXIgaT1lLmNhbGwodGhpcyl8fHRoaXM7aWYoaS5fZW5kVGlja0xlbmd0aD01LGkuX2lubmVyVGlja0xlbmd0aD01LGkuX3RpY2tMYWJlbFBhZGRpbmc9MTAsaS5fbWFyZ2luPTE1LGkuX3Nob3dFbmRUaWNrTGFiZWxzPSExLGkuX2Fubm90YXRpb25zRW5hYmxlZD0hMSxpLl9hbm5vdGF0aW9uVGllckNvdW50PTEscj09bnVsbHx8bj09bnVsbCl0aHJvdyBuZXcgRXJyb3IoIkF4aXMgcmVxdWlyZXMgYSBzY2FsZSBhbmQgb3JpZW50YXRpb24iKTtyZXR1cm4gaS5fc2NhbGU9cixpLm9yaWVudGF0aW9uKG4pLGkuX3NldERlZmF1bHRBbGlnbm1lbnQoKSxpLmFkZENsYXNzKCJheGlzIiksaS5pc0hvcml6b250YWwoKT9pLmFkZENsYXNzKCJ4LWF4aXMiKTppLmFkZENsYXNzKCJ5LWF4aXMiKSxpLmZvcm1hdHRlcihqWHQuaWRlbnRpdHkoKSksaS5fcmVzY2FsZUNhbGxiYWNrPWZ1bmN0aW9uKG8pe3JldHVybiBpLl9yZXNjYWxlKCl9LGkuX3NjYWxlLm9uVXBkYXRlKGkuX3Jlc2NhbGVDYWxsYmFjayksaS5fYW5ub3RhdGVkVGlja3M9W10saS5fYW5ub3RhdGlvbkZvcm1hdHRlcj1qWHQuaWRlbnRpdHkoKSxpfXJldHVybiB0LnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7ZS5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpLHRoaXMuX3NjYWxlLm9mZlVwZGF0ZSh0aGlzLl9yZXNjYWxlQ2FsbGJhY2spfSx0LnByb3RvdHlwZS50aWNrTGFiZWxEYXRhT25FbGVtZW50PWZ1bmN0aW9uKHIpe2lmKHIhPW51bGwpe2Zvcih2YXIgbjtyIT1udWxsJiZyLmNsYXNzTGlzdCYmbj09PXZvaWQgMDspci5jbGFzc0xpc3QuY29udGFpbnModC5USUNLX0xBQkVMX0NMQVNTKT9uPXI6cj1yLnBhcmVudE5vZGU7cmV0dXJuIHI9PT12b2lkIDA/dm9pZCAwOnZkLnNlbGVjdChyKS5kYXR1bSgpfX0sdC5wcm90b3R5cGUuX2NvbXB1dGVXaWR0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXhMYWJlbFRpY2tMZW5ndGgoKX0sdC5wcm90b3R5cGUuX2NvbXB1dGVIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWF4TGFiZWxUaWNrTGVuZ3RoKCl9LHQucHJvdG90eXBlLnJlcXVlc3RlZFNwYWNlPWZ1bmN0aW9uKHIsbil7dmFyIGk9MCxvPTA7aWYodGhpcy5pc0hvcml6b250YWwoKSl7aWYobz10aGlzLl9jb21wdXRlSGVpZ2h0KCkrdGhpcy5fbWFyZ2luLHRoaXMuYW5ub3RhdGlvbnNFbmFibGVkKCkpe3ZhciBhPXRoaXMuX2Fubm90YXRpb25NZWFzdXJlci5tZWFzdXJlKCkuaGVpZ2h0KzIqdC5fQU5OT1RBVElPTl9MQUJFTF9QQURESU5HO28rPWEqdGhpcy5hbm5vdGF0aW9uVGllckNvdW50KCl9fWVsc2UgaWYoaT10aGlzLl9jb21wdXRlV2lkdGgoKSt0aGlzLl9tYXJnaW4sdGhpcy5hbm5vdGF0aW9uc0VuYWJsZWQoKSl7dmFyIGE9dGhpcy5fYW5ub3RhdGlvbk1lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQrMip0Ll9BTk5PVEFUSU9OX0xBQkVMX1BBRERJTkc7aSs9YSp0aGlzLmFubm90YXRpb25UaWVyQ291bnQoKX1yZXR1cm57bWluV2lkdGg6aSxtaW5IZWlnaHQ6b319LHQucHJvdG90eXBlLmZpeGVkSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNIb3Jpem9udGFsKCl9LHQucHJvdG90eXBlLmZpeGVkV2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5pc0hvcml6b250YWwoKX0sdC5wcm90b3R5cGUuX3Jlc2NhbGU9ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigpfSx0LnByb3RvdHlwZS5jb21wdXRlTGF5b3V0PWZ1bmN0aW9uKHIsbixpKXtyZXR1cm4gZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dC5jYWxsKHRoaXMscixuLGkpLHRoaXMuaXNIb3Jpem9udGFsKCk/dGhpcy5fc2NhbGUucmFuZ2UoWzAsdGhpcy53aWR0aCgpXSk6dGhpcy5fc2NhbGUucmFuZ2UoW3RoaXMuaGVpZ2h0KCksMF0pLHRoaXN9LHQucHJvdG90eXBlLl9zaXplRnJvbU9mZmVyPWZ1bmN0aW9uKHIsbil7dmFyIGk9dGhpcy5yZXF1ZXN0ZWRTcGFjZShyLG4pO3JldHVybiB0aGlzLmlzSG9yaXpvbnRhbCgpP3t3aWR0aDpyLGhlaWdodDppLm1pbkhlaWdodH06e2hlaWdodDpuLHdpZHRoOmkubWluV2lkdGh9fSx0LnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXtlLnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl90aWNrTWFya0NvbnRhaW5lcj10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKHQuVElDS19NQVJLX0NMQVNTKyItY29udGFpbmVyIiwhMCksdGhpcy5fdGlja0xhYmVsQ29udGFpbmVyPXRoaXMuY29udGVudCgpLmFwcGVuZCgiZyIpLmNsYXNzZWQodC5USUNLX0xBQkVMX0NMQVNTKyItY29udGFpbmVyIiwhMCksdGhpcy5fYmFzZWxpbmU9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJsaW5lIikuY2xhc3NlZCgiYmFzZWxpbmUiLCEwKSx0aGlzLl9hbm5vdGF0aW9uQ29udGFpbmVyPXRoaXMuY29udGVudCgpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImFubm90YXRpb24tY29udGFpbmVyIiwhMCksdGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5hcHBlbmQoImciKS5jbGFzc2VkKCJhbm5vdGF0aW9uLWxpbmUtY29udGFpbmVyIiwhMCksdGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5hcHBlbmQoImciKS5jbGFzc2VkKCJhbm5vdGF0aW9uLWNpcmNsZS1jb250YWluZXIiLCEwKSx0aGlzLl9hbm5vdGF0aW9uQ29udGFpbmVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImFubm90YXRpb24tcmVjdC1jb250YWluZXIiLCEwKTt2YXIgcj10aGlzLl9hbm5vdGF0aW9uQ29udGFpbmVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImFubm90YXRpb24tbGFiZWwtY29udGFpbmVyIiwhMCksbj1uZXcgR2l0LlN2Z0NvbnRleHQoci5ub2RlKCkpO3RoaXMuX2Fubm90YXRpb25NZWFzdXJlcj1uZXcgR2l0LkNhY2hlTWVhc3VyZXIobiksdGhpcy5fYW5ub3RhdGlvbldyaXRlcj1uZXcgR2l0LldyaXRlcih0aGlzLl9hbm5vdGF0aW9uTWVhc3VyZXIsbil9LHQucHJvdG90eXBlLl9nZXRUaWNrVmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuW119LHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5fZ2V0VGlja1ZhbHVlcygpLG49dGhpcy5fdGlja01hcmtDb250YWluZXIuc2VsZWN0QWxsKCIuIit0LlRJQ0tfTUFSS19DTEFTUykuZGF0YShyKSxpPW4uZW50ZXIoKS5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKHQuVElDS19NQVJLX0NMQVNTLCEwKS5tZXJnZShuKTtyZXR1cm4gaS5hdHRycyh0aGlzLl9nZW5lcmF0ZVRpY2tNYXJrQXR0ckhhc2goKSksdmQuc2VsZWN0KGkubm9kZXMoKVswXSkuY2xhc3NlZCh0LkVORF9USUNLX01BUktfQ0xBU1MsITApLmF0dHJzKHRoaXMuX2dlbmVyYXRlVGlja01hcmtBdHRySGFzaCghMCkpLHZkLnNlbGVjdChpLm5vZGVzKClbci5sZW5ndGgtMV0pLmNsYXNzZWQodC5FTkRfVElDS19NQVJLX0NMQVNTLCEwKS5hdHRycyh0aGlzLl9nZW5lcmF0ZVRpY2tNYXJrQXR0ckhhc2goITApKSxuLmV4aXQoKS5yZW1vdmUoKSx0aGlzLl9iYXNlbGluZS5hdHRycyh0aGlzLl9nZW5lcmF0ZUJhc2VsaW5lQXR0ckhhc2goKSksdGhpcy5hbm5vdGF0aW9uc0VuYWJsZWQoKT90aGlzLl9kcmF3QW5ub3RhdGlvbnMoKTp0aGlzLl9yZW1vdmVBbm5vdGF0aW9ucygpLHRoaXN9LHQucHJvdG90eXBlLmFubm90YXRlZFRpY2tzPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX2Fubm90YXRlZFRpY2tzOih0aGlzLl9hbm5vdGF0ZWRUaWNrcz1yLHRoaXMucmVuZGVyKCksdGhpcyl9LHQucHJvdG90eXBlLmFubm90YXRpb25Gb3JtYXR0ZXI9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5fYW5ub3RhdGlvbkZvcm1hdHRlcjoodGhpcy5fYW5ub3RhdGlvbkZvcm1hdHRlcj1yLHRoaXMucmVuZGVyKCksdGhpcyl9LHQucHJvdG90eXBlLmFubm90YXRpb25zRW5hYmxlZD1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9hbm5vdGF0aW9uc0VuYWJsZWQ6KHRoaXMuX2Fubm90YXRpb25zRW5hYmxlZD1yLHRoaXMucmVkcmF3KCksdGhpcyl9LHQucHJvdG90eXBlLmFubm90YXRpb25UaWVyQ291bnQ9ZnVuY3Rpb24ocil7aWYocj09bnVsbClyZXR1cm4gdGhpcy5fYW5ub3RhdGlvblRpZXJDb3VudDtpZihyPDApdGhyb3cgbmV3IEVycm9yKCJhbm5vdGF0aW9uVGllckNvdW50IGNhbm5vdCBiZSBuZWdhdGl2ZSIpO3JldHVybiB0aGlzLl9hbm5vdGF0aW9uVGllckNvdW50PXIsdGhpcy5yZWRyYXcoKSx0aGlzfSx0LnByb3RvdHlwZS5fZHJhd0Fubm90YXRpb25zPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxuPXQuX0FOTk9UQVRJT05fTEFCRUxfUEFERElORyxpPW5ldyB4Uy5NYXAsbz10aGlzLl9hbm5vdGF0ZWRUaWNrc1RvUmVuZGVyKCk7by5mb3JFYWNoKGZ1bmN0aW9uKFApe3ZhciBrPXIuX2Fubm90YXRpb25NZWFzdXJlci5tZWFzdXJlKHIuYW5ub3RhdGlvbkZvcm1hdHRlcigpKFApKSxPPXt3aWR0aDprLndpZHRoKzIqbixoZWlnaHQ6ay5oZWlnaHQrMipufTtpLnNldChQLE8pfSk7dmFyIGE9dGhpcy5fYW5ub3RhdGlvbk1lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQrMipuLHM9dGhpcy5fYW5ub3RhdGlvblRvVGllcihpKSxsPW5ldyB4Uy5TZXQsYz10aGlzLmlzSG9yaXpvbnRhbCgpP3RoaXMuaGVpZ2h0KCk6dGhpcy53aWR0aCgpLHU9dGhpcy5fY29yZVNpemUoKSxoPU1hdGgubWluKHRoaXMuYW5ub3RhdGlvblRpZXJDb3VudCgpLE1hdGguZmxvb3IoKGMtdSkvYSkpO3MuZm9yRWFjaChmdW5jdGlvbihQLGspeyhQPT09LTF8fFA+PWgpJiZsLmFkZChrKX0pO3ZhciBmPWZ1bmN0aW9uKFAsayxPKXt2YXIgRD1QLnNlbGVjdEFsbCgiLiIrTykuZGF0YShvKSxCPUQuZW50ZXIoKS5hcHBlbmQoaykuY2xhc3NlZChPLCEwKS5tZXJnZShEKTtyZXR1cm4gRC5leGl0KCkucmVtb3ZlKCksQn0scD1mdW5jdGlvbihQKXtzd2l0Y2goci5vcmllbnRhdGlvbigpKXtjYXNlImJvdHRvbSI6Y2FzZSJyaWdodCI6cmV0dXJuIHMuZ2V0KFApKmErdTtjYXNlInRvcCI6Y2FzZSJsZWZ0IjpyZXR1cm4gYy11LXMuZ2V0KFApKmF9fSxkPWZ1bmN0aW9uKFApe3JldHVybiByLl9zY2FsZS5zY2FsZShQKX0sZz1mdW5jdGlvbihQKXtyZXR1cm4gbC5oYXMoUCk/ImhpZGRlbiI6InZpc2libGUifSxfO3N3aXRjaCh0aGlzLm9yaWVudGF0aW9uKCkpe2Nhc2UiYm90dG9tIjpjYXNlInJpZ2h0IjpfPTA7YnJlYWs7Y2FzZSJ0b3AiOl89dGhpcy5oZWlnaHQoKTticmVhaztjYXNlImxlZnQiOl89dGhpcy53aWR0aCgpO2JyZWFrfXZhciB5PXRoaXMuaXNIb3Jpem9udGFsKCk7Zih0aGlzLl9hbm5vdGF0aW9uQ29udGFpbmVyLnNlbGVjdCgiLmFubm90YXRpb24tbGluZS1jb250YWluZXIiKSwibGluZSIsdC5BTk5PVEFUSU9OX0xJTkVfQ0xBU1MpLmF0dHJzKHt4MTp5P2Q6Xyx4Mjp5P2Q6cCx5MTp5P186ZCx5Mjp5P3A6ZCx2aXNpYmlsaXR5Omd9KSxmKHRoaXMuX2Fubm90YXRpb25Db250YWluZXIuc2VsZWN0KCIuYW5ub3RhdGlvbi1jaXJjbGUtY29udGFpbmVyIiksImNpcmNsZSIsdC5BTk5PVEFUSU9OX0NJUkNMRV9DTEFTUykuYXR0cnMoe2N4Onk/ZDpfLGN5Onk/XzpkLHI6M30pO3ZhciB4PWZ1bmN0aW9uKFApe3N3aXRjaChyLm9yaWVudGF0aW9uKCkpe2Nhc2UiYm90dG9tIjpjYXNlInJpZ2h0IjpyZXR1cm4gcChQKTtjYXNlInRvcCI6Y2FzZSJsZWZ0IjpyZXR1cm4gcChQKS1pLmdldChQKS5oZWlnaHR9fTtmKHRoaXMuX2Fubm90YXRpb25Db250YWluZXIuc2VsZWN0KCIuYW5ub3RhdGlvbi1yZWN0LWNvbnRhaW5lciIpLCJyZWN0Iix0LkFOTk9UQVRJT05fUkVDVF9DTEFTUykuYXR0cnMoe3g6eT9kOngseTp5P3g6ZCx3aWR0aDp5P2Z1bmN0aW9uKFApe3JldHVybiBpLmdldChQKS53aWR0aH06ZnVuY3Rpb24oUCl7cmV0dXJuIGkuZ2V0KFApLmhlaWdodH0saGVpZ2h0Onk/ZnVuY3Rpb24oUCl7cmV0dXJuIGkuZ2V0KFApLmhlaWdodH06ZnVuY3Rpb24oUCl7cmV0dXJuIGkuZ2V0KFApLndpZHRofSx2aXNpYmlsaXR5Omd9KTt2YXIgYj10aGlzLl9hbm5vdGF0aW9uV3JpdGVyLFM9dGhpcy5hbm5vdGF0aW9uRm9ybWF0dGVyKCksQz1mKHRoaXMuX2Fubm90YXRpb25Db250YWluZXIuc2VsZWN0KCIuYW5ub3RhdGlvbi1sYWJlbC1jb250YWluZXIiKSwiZyIsdC5BTk5PVEFUSU9OX0xBQkVMX0NMQVNTKTtDLnNlbGVjdEFsbCgiLnRleHQtY29udGFpbmVyIikucmVtb3ZlKCksQy5hdHRycyh7dHJhbnNmb3JtOmZ1bmN0aW9uKFApe3ZhciBrPXk/ZChQKTp4KFApLE89eT94KFApOmQoUCk7cmV0dXJuInRyYW5zbGF0ZSgiK2srIiwiK08rIikifSx2aXNpYmlsaXR5Omd9KS5lYWNoKGZ1bmN0aW9uKFApe2Iud3JpdGUoUyhQKSx5P2kuZ2V0KFApLndpZHRoOmkuZ2V0KFApLmhlaWdodCx5P2kuZ2V0KFApLmhlaWdodDppLmdldChQKS53aWR0aCx7eEFsaWduOiJjZW50ZXIiLHlBbGlnbjoiY2VudGVyIix0ZXh0Um90YXRpb246eT8wOjkwfSx2ZC5zZWxlY3QodGhpcykubm9kZSgpKX0pfSx0LnByb3RvdHlwZS5fYW5ub3RhdGVkVGlja3NUb1JlbmRlcj1mdW5jdGlvbigpe3ZhciByPXRoaXMsbj10aGlzLl9zY2FsZS5yYW5nZSgpO3JldHVybiB4Uy5BcnJheS51bmlxKHRoaXMuYW5ub3RhdGVkVGlja3MoKS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIGk9PW51bGw/ITE6eFMuTWF0aC5pblJhbmdlKHIuX3NjYWxlLnNjYWxlKGkpLG5bMF0sblsxXSl9KSl9LHQucHJvdG90eXBlLl9jb3JlU2l6ZT1mdW5jdGlvbigpe3ZhciByPXRoaXMuaXNIb3Jpem9udGFsKCk/dGhpcy5oZWlnaHQoKTp0aGlzLndpZHRoKCksbj10aGlzLmlzSG9yaXpvbnRhbCgpP3RoaXMuX2NvbXB1dGVIZWlnaHQoKTp0aGlzLl9jb21wdXRlV2lkdGgoKTtyZXR1cm4gTWF0aC5taW4obixyKX0sdC5wcm90b3R5cGUuX2Fubm90YXRpb25UaWVySGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Fubm90YXRpb25NZWFzdXJlci5tZWFzdXJlKCkuaGVpZ2h0KzIqdC5fQU5OT1RBVElPTl9MQUJFTF9QQURESU5HfSx0LnByb3RvdHlwZS5fYW5ub3RhdGlvblRvVGllcj1mdW5jdGlvbihyKXt2YXIgbj10aGlzLGk9W1tdXSxvPW5ldyB4Uy5NYXAsYT10aGlzLmlzSG9yaXpvbnRhbCgpP3RoaXMud2lkdGgoKTp0aGlzLmhlaWdodCgpO3JldHVybiB0aGlzLl9hbm5vdGF0ZWRUaWNrc1RvUmVuZGVyKCkuZm9yRWFjaChmdW5jdGlvbihzKXt2YXIgbD1uLl9zY2FsZS5zY2FsZShzKSxjPXIuZ2V0KHMpLndpZHRoO2lmKGw8MHx8bCtjPmEpe28uc2V0KHMsLTEpO3JldHVybn1mb3IodmFyIHU9ZnVuY3Rpb24oZil7cmV0dXJuIGlbZl0uc29tZShmdW5jdGlvbihwKXt2YXIgZD1uLl9zY2FsZS5zY2FsZShwKSxnPXIuZ2V0KHApLndpZHRoO3JldHVybiBsK2M+PWQmJmw8PWQrZ30pfSxoPTA7dShoKTspaCsrLGkubGVuZ3RoPT09aCYmaS5wdXNoKFtdKTtpW2hdLnB1c2gocyksby5zZXQocyxoKX0pLG99LHQucHJvdG90eXBlLl9yZW1vdmVBbm5vdGF0aW9ucz1mdW5jdGlvbigpe3RoaXMuX2Fubm90YXRpb25Db250YWluZXIuc2VsZWN0QWxsKCIuYW5ub3RhdGlvbi1saW5lIikucmVtb3ZlKCksdGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5zZWxlY3RBbGwoIi5hbm5vdGF0aW9uLWNpcmNsZSIpLnJlbW92ZSgpLHRoaXMuX2Fubm90YXRpb25Db250YWluZXIuc2VsZWN0QWxsKCIuYW5ub3RhdGlvbi1yZWN0IikucmVtb3ZlKCksdGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5zZWxlY3RBbGwoIi5hbm5vdGF0aW9uLWxhYmVsIikucmVtb3ZlKCl9LHQucHJvdG90eXBlLl9nZW5lcmF0ZUJhc2VsaW5lQXR0ckhhc2g9ZnVuY3Rpb24oKXt2YXIgcj17eDE6MCx5MTowLHgyOjAseTI6MH07c3dpdGNoKHRoaXMuX29yaWVudGF0aW9uKXtjYXNlImJvdHRvbSI6ci54Mj10aGlzLndpZHRoKCk7YnJlYWs7Y2FzZSJ0b3AiOnIueDI9dGhpcy53aWR0aCgpLHIueTE9dGhpcy5oZWlnaHQoKSxyLnkyPXRoaXMuaGVpZ2h0KCk7YnJlYWs7Y2FzZSJsZWZ0IjpyLngxPXRoaXMud2lkdGgoKSxyLngyPXRoaXMud2lkdGgoKSxyLnkyPXRoaXMuaGVpZ2h0KCk7YnJlYWs7Y2FzZSJyaWdodCI6ci55Mj10aGlzLmhlaWdodCgpO2JyZWFrfXJldHVybiByfSx0LnByb3RvdHlwZS5fZ2VuZXJhdGVUaWNrTWFya0F0dHJIYXNoPWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXM7cj09PXZvaWQgMCYmKHI9ITEpO3ZhciBpPXt4MTowLHkxOjAseDI6MCx5MjowfSxvPWZ1bmN0aW9uKHMpe3JldHVybiBuLl9zY2FsZS5zY2FsZShzKX07dGhpcy5pc0hvcml6b250YWwoKT8oaS54MT1vLGkueDI9byk6KGkueTE9byxpLnkyPW8pO3ZhciBhPXI/dGhpcy5fZW5kVGlja0xlbmd0aDp0aGlzLl9pbm5lclRpY2tMZW5ndGg7c3dpdGNoKHRoaXMuX29yaWVudGF0aW9uKXtjYXNlImJvdHRvbSI6aS55Mj1hO2JyZWFrO2Nhc2UidG9wIjppLnkxPXRoaXMuaGVpZ2h0KCksaS55Mj10aGlzLmhlaWdodCgpLWE7YnJlYWs7Y2FzZSJsZWZ0IjppLngxPXRoaXMud2lkdGgoKSxpLngyPXRoaXMud2lkdGgoKS1hO2JyZWFrO2Nhc2UicmlnaHQiOmkueDI9YTticmVha31yZXR1cm4gaX0sdC5wcm90b3R5cGUuX3NldERlZmF1bHRBbGlnbm1lbnQ9ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fb3JpZW50YXRpb24pe2Nhc2UiYm90dG9tIjp0aGlzLnlBbGlnbm1lbnQoInRvcCIpO2JyZWFrO2Nhc2UidG9wIjp0aGlzLnlBbGlnbm1lbnQoImJvdHRvbSIpO2JyZWFrO2Nhc2UibGVmdCI6dGhpcy54QWxpZ25tZW50KCJyaWdodCIpO2JyZWFrO2Nhc2UicmlnaHQiOnRoaXMueEFsaWdubWVudCgibGVmdCIpO2JyZWFrfX0sdC5wcm90b3R5cGUuaXNIb3Jpem9udGFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWVudGF0aW9uPT09InRvcCJ8fHRoaXMuX29yaWVudGF0aW9uPT09ImJvdHRvbSJ9LHQucHJvdG90eXBlLmdldFNjYWxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NjYWxlfSx0LnByb3RvdHlwZS5mb3JtYXR0ZXI9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5fZm9ybWF0dGVyOih0aGlzLl9mb3JtYXR0ZXI9cix0aGlzLnJlZHJhdygpLHRoaXMpfSx0LnByb3RvdHlwZS5pbm5lclRpY2tMZW5ndGg9ZnVuY3Rpb24ocil7aWYocj09bnVsbClyZXR1cm4gdGhpcy5faW5uZXJUaWNrTGVuZ3RoO2lmKHI8MCl0aHJvdyBuZXcgRXJyb3IoImlubmVyIHRpY2sgbGVuZ3RoIG11c3QgYmUgcG9zaXRpdmUiKTtyZXR1cm4gdGhpcy5faW5uZXJUaWNrTGVuZ3RoPXIsdGhpcy5yZWRyYXcoKSx0aGlzfSx0LnByb3RvdHlwZS5lbmRUaWNrTGVuZ3RoPWZ1bmN0aW9uKHIpe2lmKHI9PW51bGwpcmV0dXJuIHRoaXMuX2VuZFRpY2tMZW5ndGg7aWYocjwwKXRocm93IG5ldyBFcnJvcigiZW5kIHRpY2sgbGVuZ3RoIG11c3QgYmUgcG9zaXRpdmUiKTtyZXR1cm4gdGhpcy5fZW5kVGlja0xlbmd0aD1yLHRoaXMucmVkcmF3KCksdGhpc30sdC5wcm90b3R5cGUuX21heExhYmVsVGlja0xlbmd0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNob3dFbmRUaWNrTGFiZWxzKCk/TWF0aC5tYXgodGhpcy5pbm5lclRpY2tMZW5ndGgoKSx0aGlzLmVuZFRpY2tMZW5ndGgoKSk6dGhpcy5pbm5lclRpY2tMZW5ndGgoKX0sdC5wcm90b3R5cGUudGlja0xhYmVsUGFkZGluZz1mdW5jdGlvbihyKXtpZihyPT1udWxsKXJldHVybiB0aGlzLl90aWNrTGFiZWxQYWRkaW5nO2lmKHI8MCl0aHJvdyBuZXcgRXJyb3IoInRpY2sgbGFiZWwgcGFkZGluZyBtdXN0IGJlIHBvc2l0aXZlIik7cmV0dXJuIHRoaXMuX3RpY2tMYWJlbFBhZGRpbmc9cix0aGlzLnJlZHJhdygpLHRoaXN9LHQucHJvdG90eXBlLm1hcmdpbj1mdW5jdGlvbihyKXtpZihyPT1udWxsKXJldHVybiB0aGlzLl9tYXJnaW47aWYocjwwKXRocm93IG5ldyBFcnJvcigibWFyZ2luIHNpemUgbXVzdCBiZSBwb3NpdGl2ZSIpO3JldHVybiB0aGlzLl9tYXJnaW49cix0aGlzLnJlZHJhdygpLHRoaXN9LHQucHJvdG90eXBlLm9yaWVudGF0aW9uPWZ1bmN0aW9uKHIpe2lmKHI9PW51bGwpcmV0dXJuIHRoaXMuX29yaWVudGF0aW9uO3ZhciBuPXIudG9Mb3dlckNhc2UoKTtpZihuIT09InRvcCImJm4hPT0iYm90dG9tIiYmbiE9PSJsZWZ0IiYmbiE9PSJyaWdodCIpdGhyb3cgbmV3IEVycm9yKCJ1bnN1cHBvcnRlZCBvcmllbnRhdGlvbiIpO3JldHVybiB0aGlzLl9vcmllbnRhdGlvbj1uLHRoaXMucmVkcmF3KCksdGhpc30sdC5wcm90b3R5cGUuc2hvd0VuZFRpY2tMYWJlbHM9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5fc2hvd0VuZFRpY2tMYWJlbHM6KHRoaXMuX3Nob3dFbmRUaWNrTGFiZWxzPXIsdGhpcy5yZW5kZXIoKSx0aGlzKX0sdC5wcm90b3R5cGUuX3Nob3dBbGxUaWNrTWFya3M9ZnVuY3Rpb24oKXt0aGlzLl90aWNrTWFya0NvbnRhaW5lci5zZWxlY3RBbGwoIi4iK3QuVElDS19NQVJLX0NMQVNTKS5lYWNoKGZ1bmN0aW9uKCl7dmQuc2VsZWN0KHRoaXMpLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaW5oZXJpdCIpfSl9LHQucHJvdG90eXBlLl9zaG93QWxsVGlja0xhYmVscz1mdW5jdGlvbigpe3RoaXMuX3RpY2tMYWJlbENvbnRhaW5lci5zZWxlY3RBbGwoIi4iK3QuVElDS19MQUJFTF9DTEFTUykuZWFjaChmdW5jdGlvbigpe3ZkLnNlbGVjdCh0aGlzKS5zdHlsZSgidmlzaWJpbGl0eSIsImluaGVyaXQiKX0pfSx0LnByb3RvdHlwZS5faGlkZU92ZXJmbG93aW5nVGlja0xhYmVscz1mdW5jdGlvbigpe3ZhciByPXRoaXMuZWxlbWVudCgpLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPXRoaXMuX3RpY2tMYWJlbENvbnRhaW5lci5zZWxlY3RBbGwoIi4iK3QuVElDS19MQUJFTF9DTEFTUyk7bi5lbXB0eSgpfHxuLmVhY2goZnVuY3Rpb24oaSxvKXt4Uy5ET00uY2xpZW50UmVjdEluc2lkZSh0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHIpfHx2ZC5zZWxlY3QodGhpcykuc3R5bGUoInZpc2liaWxpdHkiLCJoaWRkZW4iKX0pfSx0LnByb3RvdHlwZS5faGlkZVRpY2tNYXJrc1dpdGhvdXRMYWJlbD1mdW5jdGlvbigpe3ZhciByPXRoaXMuX3RpY2tNYXJrQ29udGFpbmVyLnNlbGVjdEFsbCgiLiIrdC5USUNLX01BUktfQ0xBU1MpLG49dGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLnNlbGVjdEFsbCgiLiIrdC5USUNLX0xBQkVMX0NMQVNTKS5maWx0ZXIoZnVuY3Rpb24obyxhKXt2YXIgcz12ZC5zZWxlY3QodGhpcykuc3R5bGUoInZpc2liaWxpdHkiKTtyZXR1cm4gcz09PSJpbmhlcml0Inx8cz09PSJ2aXNpYmxlIn0pLGk9bi5kYXRhKCk7ci5lYWNoKGZ1bmN0aW9uKG8sYSl7aS5pbmRleE9mKG8pPT09LTEmJnZkLnNlbGVjdCh0aGlzKS5zdHlsZSgidmlzaWJpbGl0eSIsImhpZGRlbiIpfSl9LHQucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZT1mdW5jdGlvbigpe2UucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZS5jYWxsKHRoaXMpLHRoaXMuX2Fubm90YXRpb25NZWFzdXJlci5yZXNldCgpfSx0LkVORF9USUNLX01BUktfQ0xBU1M9ImVuZC10aWNrLW1hcmsiLHQuVElDS19NQVJLX0NMQVNTPSJ0aWNrLW1hcmsiLHQuVElDS19MQUJFTF9DTEFTUz0idGljay1sYWJlbCIsdC5BTk5PVEFUSU9OX0xJTkVfQ0xBU1M9ImFubm90YXRpb24tbGluZSIsdC5BTk5PVEFUSU9OX1JFQ1RfQ0xBU1M9ImFubm90YXRpb24tcmVjdCIsdC5BTk5PVEFUSU9OX0NJUkNMRV9DTEFTUz0iYW5ub3RhdGlvbi1jaXJjbGUiLHQuQU5OT1RBVElPTl9MQUJFTF9DTEFTUz0iYW5ub3RhdGlvbi1sYWJlbCIsdC5fQU5OT1RBVElPTl9MQUJFTF9QQURESU5HPTQsdH0oUnplLkNvbXBvbmVudCk7REYuQXhpcz1EemV9KTt2YXIgJFh0PUgoaml0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShqaXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBPemU9KGRlKCksVXQocGUpKSxXaXQ9KEVyKCksVXQoTXIpKSxPRj15bCgpLHp6ZT1rYygpLFhYdD1GZSgpLFlpdD10NCgpLEZ6ZT1mdW5jdGlvbihlKXtPemUuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdChyLG4pe249PT12b2lkIDAmJihuPSJib3R0b20iKTt2YXIgaT1lLmNhbGwodGhpcyxyLG4pfHx0aGlzO3JldHVybiBpLl90aWNrTGFiZWxBbmdsZT0wLGkuX3RpY2tMYWJlbFNoZWFyQW5nbGU9MCxpLmFkZENsYXNzKCJjYXRlZ29yeS1heGlzIiksaX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJfd3JhcHBlciIse2dldDpmdW5jdGlvbigpe3ZhciByPW5ldyBPRi5XcmFwcGVyO3JldHVybiB0aGlzLl90aWNrTGFiZWxNYXhMaW5lcyE9bnVsbCYmci5tYXhMaW5lcyh0aGlzLl90aWNrTGFiZWxNYXhMaW5lcykscn0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIl93cml0ZXIiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE9GLldyaXRlcih0aGlzLl9tZWFzdXJlcix0aGlzLl90eXBlc2V0dGVyQ29udGV4dCx0aGlzLl93cmFwcGVyKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXtlLnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl90eXBlc2V0dGVyQ29udGV4dD1uZXcgT0YuU3ZnQ29udGV4dCh0aGlzLl90aWNrTGFiZWxDb250YWluZXIubm9kZSgpKSx0aGlzLl9tZWFzdXJlcj1uZXcgT0YuQ2FjaGVNZWFzdXJlcih0aGlzLl90eXBlc2V0dGVyQ29udGV4dCl9LHQucHJvdG90eXBlLl9yZXNjYWxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVkcmF3KCl9LHQucHJvdG90eXBlLnJlcXVlc3RlZFNwYWNlPWZ1bmN0aW9uKHIsbil7dmFyIGk9dGhpcy5pc0hvcml6b250YWwoKT8wOnRoaXMuX3RpY2tTcGFjZVJlcXVpcmVkKCkrdGhpcy5tYXJnaW4oKSxvPXRoaXMuaXNIb3Jpem9udGFsKCk/dGhpcy5fdGlja1NwYWNlUmVxdWlyZWQoKSt0aGlzLm1hcmdpbigpOjA7aWYodGhpcy5fc2NhbGUuZG9tYWluKCkubGVuZ3RoPT09MClyZXR1cm57bWluV2lkdGg6MCxtaW5IZWlnaHQ6MH07aWYodGhpcy5hbm5vdGF0aW9uc0VuYWJsZWQoKSl7dmFyIGE9dGhpcy5fYW5ub3RhdGlvblRpZXJIZWlnaHQoKSp0aGlzLmFubm90YXRpb25UaWVyQ291bnQoKTt0aGlzLmlzSG9yaXpvbnRhbCgpP28rPWE6aSs9YX12YXIgcz10aGlzLl9tZWFzdXJlVGlja0xhYmVscyhyLG4pO3JldHVybnttaW5XaWR0aDpzLnVzZWRXaWR0aCtpLG1pbkhlaWdodDpzLnVzZWRIZWlnaHQrb319LHQucHJvdG90eXBlLl9jb3JlU2l6ZT1mdW5jdGlvbigpe3ZhciByPXRoaXMuaXNIb3Jpem9udGFsKCk/dGhpcy5oZWlnaHQoKTp0aGlzLndpZHRoKCksbj10aGlzLmlzSG9yaXpvbnRhbCgpP3RoaXMucmVxdWVzdGVkU3BhY2UodGhpcy53aWR0aCgpLHRoaXMuaGVpZ2h0KCkpLm1pbkhlaWdodDp0aGlzLnJlcXVlc3RlZFNwYWNlKHRoaXMud2lkdGgoKSx0aGlzLmhlaWdodCgpKS5taW5XaWR0aCxpPXRoaXMubWFyZ2luKCkrdGhpcy5fYW5ub3RhdGlvblRpZXJIZWlnaHQoKSxvPW4taTtyZXR1cm4gTWF0aC5taW4obyxyKX0sdC5wcm90b3R5cGUuX2dldFRpY2tWYWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXREb3duc2FtcGxlSW5mbygpLmRvbWFpbn0sdC5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXI9ZnVuY3Rpb24ocixuKXtyZXR1cm4genplLkNvbXBvbmVudC5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXIuY2FsbCh0aGlzLHIsbil9LHQucHJvdG90eXBlLmdldERvd25zYW1wbGVJbmZvPWZ1bmN0aW9uKHIsbil7cj09PXZvaWQgMCYmKHI9dGhpcy5fc2NhbGUpLG49PT12b2lkIDAmJihuPXIuaW52ZXJ0UmFuZ2UoKSk7dmFyIGk9dGhpcy5fdGlja0xhYmVsQW5nbGU9PT0wPzE6MS9NYXRoLmNvcyh0aGlzLl90aWNrTGFiZWxTaGVhckFuZ2xlLzE4MCpNYXRoLlBJKSxvPXQuX01JTklNVU1fV0lEVEhfUEVSX0xBQkVMX1BYKmksYT1NYXRoLmNlaWwoby9yLnN0ZXBXaWR0aCgpKTtyZXR1cm57ZG9tYWluOm4uZmlsdGVyKGZ1bmN0aW9uKHMsbCl7cmV0dXJuIGwlYT09PTB9KSxzdGVwV2lkdGg6YSpyLnN0ZXBXaWR0aCgpfX0sdC5wcm90b3R5cGUudGlja0xhYmVsQW5nbGU9ZnVuY3Rpb24ocil7aWYocj09bnVsbClyZXR1cm4gdGhpcy5fdGlja0xhYmVsQW5nbGU7aWYociE9PTAmJnIhPT05MCYmciE9PS05MCl0aHJvdyBuZXcgRXJyb3IoIkFuZ2xlICIrcisiIG5vdCBzdXBwb3J0ZWQ7IG9ubHkgMCwgOTAsIGFuZCAtOTAgYXJlIHZhbGlkIHZhbHVlcyIpO3JldHVybiB0aGlzLl90aWNrTGFiZWxBbmdsZT1yLHRoaXMucmVkcmF3KCksdGhpc30sdC5wcm90b3R5cGUudGlja0xhYmVsU2hlYXJBbmdsZT1mdW5jdGlvbihyKXtpZihyPT1udWxsKXJldHVybiB0aGlzLl90aWNrTGFiZWxTaGVhckFuZ2xlO2lmKHI8LTgwfHxyPjgwKXRocm93IG5ldyBFcnJvcigiQW5nbGUgIityKyIgbm90IHN1cHBvcnRlZDsgTXVzdCBiZSBiZXR3ZWVuIFstODAsIDgwXSIpO3JldHVybiB0aGlzLl90aWNrTGFiZWxTaGVhckFuZ2xlPXIsdGhpcy5yZWRyYXcoKSx0aGlzfSx0LnByb3RvdHlwZS50aWNrTGFiZWxNYXhXaWR0aD1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTA/dGhpcy5fdGlja0xhYmVsTWF4V2lkdGg6KHRoaXMuX3RpY2tMYWJlbE1heFdpZHRoPXIsdGhpcy5yZWRyYXcoKSx0aGlzKX0sdC5wcm90b3R5cGUudGlja0xhYmVsTWF4TGluZXM9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0wP3RoaXMuX3RpY2tMYWJlbE1heExpbmVzOih0aGlzLl90aWNrTGFiZWxNYXhMaW5lcz1yLHRoaXMucmVkcmF3KCksdGhpcyl9LHQucHJvdG90eXBlLl90aWNrU3BhY2VSZXF1aXJlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXhMYWJlbFRpY2tMZW5ndGgoKSt0aGlzLnRpY2tMYWJlbFBhZGRpbmcoKX0sdC5wcm90b3R5cGUuX2RyYXdUaWNrcz1mdW5jdGlvbihyLG4pe3ZhciBpPXRoaXMsbyxhO3N3aXRjaCh0aGlzLnRpY2tMYWJlbEFuZ2xlKCkpe2Nhc2UgMDpvPXtsZWZ0OiJyaWdodCIscmlnaHQ6ImxlZnQiLHRvcDoiY2VudGVyIixib3R0b206ImNlbnRlciJ9LGE9e2xlZnQ6ImNlbnRlciIscmlnaHQ6ImNlbnRlciIsdG9wOiJib3R0b20iLGJvdHRvbToidG9wIn07YnJlYWs7Y2FzZSA5MDpvPXtsZWZ0OiJjZW50ZXIiLHJpZ2h0OiJjZW50ZXIiLHRvcDoicmlnaHQiLGJvdHRvbToibGVmdCJ9LGE9e2xlZnQ6InRvcCIscmlnaHQ6ImJvdHRvbSIsdG9wOiJjZW50ZXIiLGJvdHRvbToiY2VudGVyIn07YnJlYWs7Y2FzZS05MDpvPXtsZWZ0OiJjZW50ZXIiLHJpZ2h0OiJjZW50ZXIiLHRvcDoibGVmdCIsYm90dG9tOiJyaWdodCJ9LGE9e2xlZnQ6ImJvdHRvbSIscmlnaHQ6InRvcCIsdG9wOiJjZW50ZXIiLGJvdHRvbToiY2VudGVyIn07YnJlYWt9bi5lYWNoKGZ1bmN0aW9uKHMpe3ZhciBsPVdpdC5zZWxlY3QodGhpcyksYz1pLmlzSG9yaXpvbnRhbCgpP3I6aS53aWR0aCgpLWkuX3RpY2tTcGFjZVJlcXVpcmVkKCksdT1pLmlzSG9yaXpvbnRhbCgpP2kuaGVpZ2h0KCktaS5fdGlja1NwYWNlUmVxdWlyZWQoKTpyLGg9e3hBbGlnbjpvW2kub3JpZW50YXRpb24oKV0seUFsaWduOmFbaS5vcmllbnRhdGlvbigpXSx0ZXh0Um90YXRpb246aS50aWNrTGFiZWxBbmdsZSgpLHRleHRTaGVhcjppLnRpY2tMYWJlbFNoZWFyQW5nbGUoKX07aWYoaS5fdGlja0xhYmVsTWF4V2lkdGghPW51bGwpe2lmKGkub3JpZW50YXRpb24oKT09PSJsZWZ0IiYmYz5pLl90aWNrTGFiZWxNYXhXaWR0aCl7dmFyIGY9Yy1pLl90aWNrTGFiZWxNYXhXaWR0aCxwPWwuYXR0cigidHJhbnNmb3JtIikrIiB0cmFuc2xhdGUoIitmKyIsIDApIjtsLmF0dHIoInRyYW5zZm9ybSIscCl9Yz1NYXRoLm1pbihjLGkuX3RpY2tMYWJlbE1heFdpZHRoKX1pLl93cml0ZXIud3JpdGUoaS5mb3JtYXR0ZXIoKShzKSxjLHUsaCxsLm5vZGUoKSl9KX0sdC5wcm90b3R5cGUuX21lYXN1cmVUaWNrTGFiZWxzPWZ1bmN0aW9uKHIsbil7dmFyIGk9dGhpcyxvPXRoaXMuX3NjYWxlLGE9by5jbG9uZVdpdGhvdXRQcm92aWRlcnMoKS5yYW5nZShbMCx0aGlzLmlzSG9yaXpvbnRhbCgpP3I6bl0pLHM9dGhpcy5nZXREb3duc2FtcGxlSW5mbyhhKSxsPXMuZG9tYWluLGM9cy5zdGVwV2lkdGgsdT1yLXRoaXMuX3RpY2tTcGFjZVJlcXVpcmVkKCk7dGhpcy5pc0hvcml6b250YWwoKSYmKHU9Yyx0aGlzLl90aWNrTGFiZWxBbmdsZSE9PTAmJih1PW4tdGhpcy5fdGlja1NwYWNlUmVxdWlyZWQoKSksdT1NYXRoLm1heCh1LDApKTt2YXIgaD1jO3RoaXMuaXNIb3Jpem9udGFsKCkmJihoPW4tdGhpcy5fdGlja1NwYWNlUmVxdWlyZWQoKSx0aGlzLl90aWNrTGFiZWxBbmdsZSE9PTAmJihoPXItdGhpcy5fdGlja1NwYWNlUmVxdWlyZWQoKSksaD1NYXRoLm1heChoLDApKSx0aGlzLl90aWNrTGFiZWxNYXhXaWR0aCE9bnVsbCYmKHU9TWF0aC5taW4odSx0aGlzLl90aWNrTGFiZWxNYXhXaWR0aCkpO3ZhciBmPWwubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBpLl93cmFwcGVyLndyYXAoaS5mb3JtYXR0ZXIoKSh4KSxpLl9tZWFzdXJlcix1LGgpfSkscD10aGlzLmlzSG9yaXpvbnRhbCgpJiZ0aGlzLl90aWNrTGFiZWxBbmdsZT09PTA/V2l0LnN1bTpYWHQuTWF0aC5tYXgsZD10aGlzLmlzSG9yaXpvbnRhbCgpJiZ0aGlzLl90aWNrTGFiZWxBbmdsZT09PTA/WFh0Lk1hdGgubWF4OldpdC5zdW0sZz1wKGYsZnVuY3Rpb24oeCl7cmV0dXJuIGkuX21lYXN1cmVyLm1lYXN1cmUoeC53cmFwcGVkVGV4dCkud2lkdGh9LDApLF89ZChmLGZ1bmN0aW9uKHgpe3JldHVybiBpLl9tZWFzdXJlci5tZWFzdXJlKHgud3JhcHBlZFRleHQpLmhlaWdodH0sMCk7cmV0dXJuIHRoaXMuX3RpY2tMYWJlbEFuZ2xlIT09MCYmKHk9W18sZ10sZz15WzBdLF89eVsxXSkse3VzZWRXaWR0aDpnLHVzZWRIZWlnaHQ6X307dmFyIHl9LHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7dmFyIHI9dGhpcztlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseS5jYWxsKHRoaXMpO3ZhciBuPXRoaXMuX3NjYWxlLGk9dGhpcy5nZXREb3duc2FtcGxlSW5mbyhuKSxvPWkuZG9tYWluLGE9aS5zdGVwV2lkdGgscz1hO3RoaXMuaXNIb3Jpem9udGFsKCkmJnRoaXMuX3RpY2tMYWJlbE1heFdpZHRoIT1udWxsJiYocz1NYXRoLm1pbihzLHRoaXMuX3RpY2tMYWJlbE1heFdpZHRoKSk7dmFyIGw9ZnVuY3Rpb24ocCxkKXt2YXIgZz1uLnNjYWxlKHApLXMvMixfPXIuaXNIb3Jpem9udGFsKCk/ZzowLHk9ci5pc0hvcml6b250YWwoKT8wOmc7cmV0dXJuInRyYW5zbGF0ZSgiK18rIiwiK3krIikifSxjPXRoaXMuX3RpY2tMYWJlbENvbnRhaW5lci5zZWxlY3RBbGwoIi4iK1lpdC5BeGlzLlRJQ0tfTEFCRUxfQ0xBU1MpLmRhdGEobyksdT1jLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChZaXQuQXhpcy5USUNLX0xBQkVMX0NMQVNTLCEwKS5tZXJnZShjKTtjLmV4aXQoKS5yZW1vdmUoKSx1LmF0dHIoInRyYW5zZm9ybSIsbCksdS50ZXh0KCIiKSx0aGlzLl9kcmF3VGlja3MoYSx1KTt2YXIgaD10aGlzLm9yaWVudGF0aW9uKCk9PT0icmlnaHQiP3RoaXMuX3RpY2tTcGFjZVJlcXVpcmVkKCk6MCxmPXRoaXMub3JpZW50YXRpb24oKT09PSJib3R0b20iP3RoaXMuX3RpY2tTcGFjZVJlcXVpcmVkKCk6MDtyZXR1cm4gdGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK2grIiwiK2YrIikiKSx0aGlzLl9zaG93QWxsVGlja01hcmtzKCksdGhpcy5fc2hvd0FsbFRpY2tMYWJlbHMoKSx0aGlzLl9oaWRlVGlja01hcmtzV2l0aG91dExhYmVsKCksdGhpc30sdC5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihyLG4saSl7cmV0dXJuIGUucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQuY2FsbCh0aGlzLHIsbixpKSx0aGlzLmlzSG9yaXpvbnRhbCgpfHx0aGlzLl9zY2FsZS5yYW5nZShbMCx0aGlzLmhlaWdodCgpXSksdGhpc30sdC5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7ZS5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlLmNhbGwodGhpcyksdGhpcy5fbWVhc3VyZXIucmVzZXQoKX0sdC5fTUlOSU1VTV9XSURUSF9QRVJfTEFCRUxfUFg9MTUsdH0oWWl0LkF4aXMpO2ppdC5DYXRlZ29yeT1GemV9KTt2YXIgS1h0PUgoJGl0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkaXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBCemU9KGRlKCksVXQocGUpKSx6Rj0oRXIoKSxVdChNcikpLFhpdD15bCgpLEh6ZT1CdSgpLGJTPUZlKCksd1M9dDQoKSxWemU9ZnVuY3Rpb24oZSl7QnplLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocixuKXt2YXIgaT1lLmNhbGwodGhpcyxyLG4pfHx0aGlzO3JldHVybiBpLl90aWNrTGFiZWxQb3NpdGlvbmluZz0iY2VudGVyIixpLl91c2VzVGV4dFdpZHRoQXBwcm94aW1hdGlvbj0hMSxpLmZvcm1hdHRlcihIemUuZ2VuZXJhbCgpKSxpfXJldHVybiB0LnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXtlLnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKTt2YXIgcj1uZXcgWGl0LlN2Z0NvbnRleHQodGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLm5vZGUoKSx3Uy5BeGlzLlRJQ0tfTEFCRUxfQ0xBU1MpO3RoaXMuX21lYXN1cmVyPW5ldyBYaXQuQ2FjaGVNZWFzdXJlcihyKSx0aGlzLl93cmFwcGVyPW5ldyBYaXQuV3JhcHBlcigpLm1heExpbmVzKDEpfSx0LnByb3RvdHlwZS5fY29tcHV0ZVdpZHRoPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5fdXNlc1RleHRXaWR0aEFwcHJveGltYXRpb24/dGhpcy5fY29tcHV0ZUFwcHJveGltYXRlVGV4dFdpZHRoKCk6dGhpcy5fY29tcHV0ZUV4YWN0VGV4dFdpZHRoKCk7cmV0dXJuIHRoaXMuX3RpY2tMYWJlbFBvc2l0aW9uaW5nPT09ImNlbnRlciI/dGhpcy5fbWF4TGFiZWxUaWNrTGVuZ3RoKCkrdGhpcy50aWNrTGFiZWxQYWRkaW5nKCkrcjpNYXRoLm1heCh0aGlzLl9tYXhMYWJlbFRpY2tMZW5ndGgoKSx0aGlzLnRpY2tMYWJlbFBhZGRpbmcoKStyKX0sdC5wcm90b3R5cGUuX2NvbXB1dGVFeGFjdFRleHRXaWR0aD1mdW5jdGlvbigpe3ZhciByPXRoaXMsbj10aGlzLl9nZXRUaWNrVmFsdWVzKCksaT1uLm1hcChmdW5jdGlvbihvKXt2YXIgYT1yLmZvcm1hdHRlcigpKG8pO3JldHVybiByLl9tZWFzdXJlci5tZWFzdXJlKGEpLndpZHRofSk7cmV0dXJuIGJTLk1hdGgubWF4KGksMCl9LHQucHJvdG90eXBlLl9jb21wdXRlQXBwcm94aW1hdGVUZXh0V2lkdGg9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLG49dGhpcy5fZ2V0VGlja1ZhbHVlcygpLGk9dGhpcy5fbWVhc3VyZXIubWVhc3VyZSgiTSIpLndpZHRoLG89bi5tYXAoZnVuY3Rpb24oYSl7dmFyIHM9ci5mb3JtYXR0ZXIoKShhKTtyZXR1cm4gcy5sZW5ndGgqaX0pO3JldHVybiBiUy5NYXRoLm1heChvLDApfSx0LnByb3RvdHlwZS5fY29tcHV0ZUhlaWdodD1mdW5jdGlvbigpe3ZhciByPXRoaXMuX21lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQ7cmV0dXJuIHRoaXMuX3RpY2tMYWJlbFBvc2l0aW9uaW5nPT09ImNlbnRlciI/dGhpcy5fbWF4TGFiZWxUaWNrTGVuZ3RoKCkrdGhpcy50aWNrTGFiZWxQYWRkaW5nKCkrcjpNYXRoLm1heCh0aGlzLl9tYXhMYWJlbFRpY2tMZW5ndGgoKSx0aGlzLnRpY2tMYWJlbFBhZGRpbmcoKStyKX0sdC5wcm90b3R5cGUuX2dldFRpY2tWYWx1ZXM9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLl9zY2FsZSxuPXIuZG9tYWluKCksaT1uWzBdPD1uWzFdP25bMF06blsxXSxvPW5bMF0+PW5bMV0/blswXTpuWzFdO3JldHVybiByLnRpY2tzKCkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhPj1pJiZhPD1vfSl9LHQucHJvdG90eXBlLl9yZXNjYWxlPWZ1bmN0aW9uKCl7aWYoISF0aGlzLl9pc1NldHVwKXtpZighdGhpcy5pc0hvcml6b250YWwoKSl7dmFyIHI9dGhpcy5fY29tcHV0ZVdpZHRoKCk7aWYocj50aGlzLndpZHRoKCl8fHI8dGhpcy53aWR0aCgpLXRoaXMubWFyZ2luKCkpe3RoaXMucmVkcmF3KCk7cmV0dXJufX10aGlzLnJlbmRlcigpfX0sdC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHk9ZnVuY3Rpb24oKXt2YXIgcj10aGlzO2UucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5LmNhbGwodGhpcyk7dmFyIG49e3g6MCx5OjAsZHg6IjBlbSIsZHk6IjAuM2VtIn0saT10aGlzLl9tYXhMYWJlbFRpY2tMZW5ndGgoKSxvPXRoaXMudGlja0xhYmVsUGFkZGluZygpLGE9Im1pZGRsZSIscz0wLGw9MCxjPTAsdT0wO2lmKHRoaXMuaXNIb3Jpem9udGFsKCkpc3dpdGNoKHRoaXMuX3RpY2tMYWJlbFBvc2l0aW9uaW5nKXtjYXNlImxlZnQiOmE9ImVuZCIscz0tbyx1PW87YnJlYWs7Y2FzZSJjZW50ZXIiOnU9aStvO2JyZWFrO2Nhc2UicmlnaHQiOmE9InN0YXJ0IixzPW8sdT1vO2JyZWFrfWVsc2Ugc3dpdGNoKHRoaXMuX3RpY2tMYWJlbFBvc2l0aW9uaW5nKXtjYXNlInRvcCI6bi5keT0iLTAuM2VtIixjPW8sbD0tbzticmVhaztjYXNlImNlbnRlciI6Yz1pK287YnJlYWs7Y2FzZSJib3R0b20iOm4uZHk9IjFlbSIsYz1vLGw9bzticmVha312YXIgaD10aGlzLl9nZW5lcmF0ZVRpY2tNYXJrQXR0ckhhc2goKTtzd2l0Y2godGhpcy5vcmllbnRhdGlvbigpKXtjYXNlImJvdHRvbSI6bi54PWgueDEsbi5keT0iMC45NWVtIixsPWgueTErdTticmVhaztjYXNlInRvcCI6bi54PWgueDEsbi5keT0iLS4yNWVtIixsPWgueTEtdTticmVhaztjYXNlImxlZnQiOmE9ImVuZCIscz1oLngxLWMsbi55PWgueTE7YnJlYWs7Y2FzZSJyaWdodCI6YT0ic3RhcnQiLHM9aC54MStjLG4ueT1oLnkxO2JyZWFrfXZhciBmPXRoaXMuX2dldFRpY2tWYWx1ZXMoKSxwPXRoaXMuX3RpY2tMYWJlbENvbnRhaW5lci5zZWxlY3RBbGwoIi4iK3dTLkF4aXMuVElDS19MQUJFTF9DTEFTUykuZGF0YShmKTtwLmV4aXQoKS5yZW1vdmUoKTt2YXIgZD1wLmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuY2xhc3NlZCh3Uy5BeGlzLlRJQ0tfTEFCRUxfQ0xBU1MsITApLm1lcmdlKHApO2Quc3R5bGUoInRleHQtYW5jaG9yIixhKS5zdHlsZSgidmlzaWJpbGl0eSIsImluaGVyaXQiKS5hdHRycyhuKS50ZXh0KGZ1bmN0aW9uKF8pe3JldHVybiByLmZvcm1hdHRlcigpKF8pfSk7dmFyIGc9InRyYW5zbGF0ZSgiK3MrIiwgIitsKyIpIjtyZXR1cm4gdGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLmF0dHIoInRyYW5zZm9ybSIsZyksdGhpcy5fc2hvd0FsbFRpY2tNYXJrcygpLHRoaXMuc2hvd0VuZFRpY2tMYWJlbHMoKXx8dGhpcy5faGlkZUVuZFRpY2tMYWJlbHMoKSx0aGlzLl9oaWRlT3ZlcmZsb3dpbmdUaWNrTGFiZWxzKCksdGhpcy5faGlkZU92ZXJsYXBwaW5nVGlja0xhYmVscygpLHRoaXMuX3RpY2tMYWJlbFBvc2l0aW9uaW5nIT09ImNlbnRlciImJnRoaXMuX2hpZGVUaWNrTWFya3NXaXRob3V0TGFiZWwoKSx0aGlzfSx0LnByb3RvdHlwZS50aWNrTGFiZWxQb3NpdGlvbj1mdW5jdGlvbihyKXtpZihyPT1udWxsKXJldHVybiB0aGlzLl90aWNrTGFiZWxQb3NpdGlvbmluZzt2YXIgbj1yLnRvTG93ZXJDYXNlKCk7aWYodGhpcy5pc0hvcml6b250YWwoKSl7aWYoIShuPT09ImxlZnQifHxuPT09ImNlbnRlciJ8fG49PT0icmlnaHQiKSl0aHJvdyBuZXcgRXJyb3IobisiIGlzIG5vdCBhIHZhbGlkIHRpY2sgbGFiZWwgcG9zaXRpb24gZm9yIGEgaG9yaXpvbnRhbCBOdW1lcmljQXhpcyIpfWVsc2UgaWYoIShuPT09InRvcCJ8fG49PT0iY2VudGVyInx8bj09PSJib3R0b20iKSl0aHJvdyBuZXcgRXJyb3IobisiIGlzIG5vdCBhIHZhbGlkIHRpY2sgbGFiZWwgcG9zaXRpb24gZm9yIGEgdmVydGljYWwgTnVtZXJpY0F4aXMiKTtyZXR1cm4gdGhpcy5fdGlja0xhYmVsUG9zaXRpb25pbmc9bix0aGlzLnJlZHJhdygpLHRoaXN9LHQucHJvdG90eXBlLnVzZXNUZXh0V2lkdGhBcHByb3hpbWF0aW9uPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX3VzZXNUZXh0V2lkdGhBcHByb3hpbWF0aW9uOih0aGlzLl91c2VzVGV4dFdpZHRoQXBwcm94aW1hdGlvbj1yLHRoaXMpfSx0LnByb3RvdHlwZS5faGlkZUVuZFRpY2tMYWJlbHM9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLmVsZW1lbnQoKS5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj10aGlzLl90aWNrTGFiZWxDb250YWluZXIuc2VsZWN0QWxsKCIuIit3Uy5BeGlzLlRJQ0tfTEFCRUxfQ0xBU1MpO2lmKG4uc2l6ZSgpIT09MCl7dmFyIGk9bi5ub2RlcygpWzBdO2JTLkRPTS5jbGllbnRSZWN0SW5zaWRlKGkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscil8fHpGLnNlbGVjdChpKS5zdHlsZSgidmlzaWJpbGl0eSIsImhpZGRlbiIpO3ZhciBvPW4ubm9kZXMoKVtuLnNpemUoKS0xXTtiUy5ET00uY2xpZW50UmVjdEluc2lkZShvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHIpfHx6Ri5zZWxlY3Qobykuc3R5bGUoInZpc2liaWxpdHkiLCJoaWRkZW4iKX19LHQucHJvdG90eXBlLl9oaWRlT3ZlcmxhcHBpbmdUaWNrTGFiZWxzPWZ1bmN0aW9uKCl7Zm9yKHZhciByPXRoaXMuX3RpY2tMYWJlbENvbnRhaW5lci5zZWxlY3RBbGwoIi4iK3dTLkF4aXMuVElDS19MQUJFTF9DTEFTUykuZmlsdGVyKGZ1bmN0aW9uKG8sYSl7dmFyIHM9ekYuc2VsZWN0KHRoaXMpLnN0eWxlKCJ2aXNpYmlsaXR5Iik7cmV0dXJuIHM9PT0iaW5oZXJpdCJ8fHM9PT0idmlzaWJsZSJ9KSxuPXIubm9kZXMoKS5tYXAoZnVuY3Rpb24obyl7cmV0dXJuIG8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9KSxpPTE7IXRoaXMuX2hhc092ZXJsYXBXaXRoSW50ZXJ2YWwoaSxuKSYmaTxuLmxlbmd0aDspaSs9MTtyLmVhY2goZnVuY3Rpb24obyxhKXt2YXIgcz16Ri5zZWxlY3QodGhpcyk7YSVpIT09MCYmcy5zdHlsZSgidmlzaWJpbGl0eSIsImhpZGRlbiIpfSl9LHQucHJvdG90eXBlLl9oYXNPdmVybGFwV2l0aEludGVydmFsPWZ1bmN0aW9uKHIsbil7Zm9yKHZhciBpPXRoaXMuX3RpY2tMYWJlbFBvc2l0aW9uaW5nPT09ImNlbnRlciI/dGhpcy50aWNrTGFiZWxQYWRkaW5nKCk6dGhpcy50aWNrTGFiZWxQYWRkaW5nKCkqMyxvPW4ubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBiUy5ET00uZXhwYW5kUmVjdChjLGkpfSksYT0wO2E8by5sZW5ndGgtcjthKz1yKXt2YXIgcz1vW2FdLGw9b1thK3JdO2lmKGJTLkRPTS5jbGllbnRSZWN0c092ZXJsYXAocyxsKSlyZXR1cm4hMX1yZXR1cm4hMH0sdC5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7ZS5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlLmNhbGwodGhpcyksdGhpcy5fbWVhc3VyZXIucmVzZXQoKX0sdH0od1MuQXhpcyk7JGl0Lk51bWVyaWM9VnplfSk7dmFyIFpYdD1IKEZGPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShGRiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFV6ZT1GZSgpO2Z1bmN0aW9uIHF6ZShlKXtpZihlPD0wKXRocm93IG5ldyBFcnJvcigiaW50ZXJ2YWwgbXVzdCBiZSBwb3NpdGl2ZSBudW1iZXIiKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIHI9dC5kb21haW4oKSxuPU1hdGgubWluKHJbMF0sclsxXSksaT1NYXRoLm1heChyWzBdLHJbMV0pLG89TWF0aC5jZWlsKG4vZSkqZSxhPU1hdGguZmxvb3IoKGktbykvZSkrMSxzPW4lZT09PTA/W106W25dLGw9VXplLk1hdGgucmFuZ2UoMCxhKS5tYXAoZnVuY3Rpb24odSl7cmV0dXJuIG8rdSplfSksYz1pJWU9PT0wP1tdOltpXTtyZXR1cm4gcy5jb25jYXQobCkuY29uY2F0KGMpfX1GRi5pbnRlcnZhbFRpY2tHZW5lcmF0b3I9cXplO2Z1bmN0aW9uIEd6ZSgpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD1lLmRlZmF1bHRUaWNrcygpO3JldHVybiB0LmZpbHRlcihmdW5jdGlvbihyLG4pe3JldHVybiByJTE9PT0wfHxuPT09MHx8bj09PXQubGVuZ3RoLTF9KX19RkYuaW50ZWdlclRpY2tHZW5lcmF0b3I9R3plfSk7dmFyIGU0PUgoTHY9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEx2LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtmdW5jdGlvbiBaaXQoZSx0LHIpe3JldHVybiByLShyLWUpKnR9THYuem9vbU91dD1aaXQ7ZnVuY3Rpb24gS2l0KGUsdCxyKXtyZXR1cm4oZSp0LXIpLyh0LTEpfWZ1bmN0aW9uIFd6ZShlLHQscixuLGksbyxhKXtyZXR1cm4gdD1KWHQoZSx0LG4saSksUVh0KGUsdCxyLG8sYSl9THYuY29uc3RyYWluZWRab29tPVd6ZTtmdW5jdGlvbiBKWHQoZSx0LHIsbil7dmFyIGk9dD4xLG89aT9uOnI7aWYobz09bnVsbClyZXR1cm4gdDt2YXIgYT1lLmdldFRyYW5zZm9ybWF0aW9uRG9tYWluKCkscz1hWzBdLGw9YVsxXSxjPU1hdGguYWJzKGwtcyksdT1pP01hdGgubWluOk1hdGgubWF4O3JldHVybiB1KHQsby9jKX1Mdi5jb25zdHJhaW5ab29tRXh0ZW50cz1KWHQ7ZnVuY3Rpb24gUVh0KGUsdCxyLG4saSl7aWYodDw9MSlyZXR1cm57Y2VudGVyUG9pbnQ6cix6b29tQW1vdW50OnR9O2lmKG49PW51bGwmJmk9PW51bGwpcmV0dXJue2NlbnRlclBvaW50OnIsem9vbUFtb3VudDp0fTt2YXIgbz10JHQoZSksYT1qemUoZSkscz1hPzEvMDotMS8wLGw9YT8tMS8wOjEvMDtuPW49PW51bGw/czpuLGk9aT09bnVsbD9sOmk7dmFyIGM9ZS5nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbigpLHU9Y1swXSxoPWNbMV0sZj1lLnNjYWxlVHJhbnNmb3JtYXRpb24oaSkscD1lLnNjYWxlVHJhbnNmb3JtYXRpb24oaCksZD1aaXQocCx0LHIpLGc9ZS5zY2FsZVRyYW5zZm9ybWF0aW9uKG4pLF89ZS5zY2FsZVRyYW5zZm9ybWF0aW9uKHUpLHk9Wml0KF8sdCxyKSx4PU1hdGguYWJzKGYtZyksYj1NYXRoLmFicyhkLXkpO2lmKGI+eCl7dmFyIFM9KGYtZykvKHAtXyk7aWYoUyE9PTEpe3ZhciBDPUtpdChwLFMsZik7cmV0dXJue2NlbnRlclBvaW50OkMsem9vbUFtb3VudDpTfX1lbHNlIHJldHVybntjZW50ZXJQb2ludDpyLHpvb21BbW91bnQ6U319ZWxzZSByZXR1cm4gZD5mIT1vP3tjZW50ZXJQb2ludDpLaXQocCx0LGYpLHpvb21BbW91bnQ6dH06eTxnIT1vP3tjZW50ZXJQb2ludDpLaXQoXyx0LGcpLHpvb21BbW91bnQ6dH06e2NlbnRlclBvaW50OnIsem9vbUFtb3VudDp0fX1Mdi5jb25zdHJhaW5ab29tVmFsdWVzPVFYdDtmdW5jdGlvbiBZemUoZSx0LHIsbil7dmFyIGk9ZS5nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbigpLG89aVswXSxhPWlbMV0scz10JHQoZSk7aWYodD4wIT09cyl7dmFyIGw9bjtpZihsIT1udWxsKXt2YXIgYz1lLnNjYWxlVHJhbnNmb3JtYXRpb24oYSksdT1lLnNjYWxlVHJhbnNmb3JtYXRpb24obCk7dD0ocz9NYXRoLm1heDpNYXRoLm1pbikoYyt0LHUpLWN9fWVsc2V7dmFyIGw9cjtpZihsIT1udWxsKXt2YXIgaD1lLnNjYWxlVHJhbnNmb3JtYXRpb24obyksZj1lLnNjYWxlVHJhbnNmb3JtYXRpb24obCk7dD0ocz9NYXRoLm1pbjpNYXRoLm1heCkoaCt0LGYpLWh9fXJldHVybiB0fUx2LmNvbnN0cmFpbmVkVHJhbnNsYXRpb249WXplO2Z1bmN0aW9uIHQkdChlKXt2YXIgdD1lLnJhbmdlKCk7cmV0dXJuIHRbMV08dFswXX1mdW5jdGlvbiBqemUoZSl7dmFyIHQ9ZS5nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbigpO3JldHVybiB0WzFdPHRbMF19fSk7dmFyIGt2PUgoSml0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKaXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlJHQ9RmUoKSxYemU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5fYXV0b0RvbWFpbkF1dG9tYXRpY2FsbHk9ITAsdGhpcy5fZG9tYWluTW9kaWZpY2F0aW9uSW5Qcm9ncmVzcz0hMSx0aGlzLl91cGRhdGVJZD0wLHRoaXMuX2NhbGxiYWNrcz1uZXcgZSR0LkNhbGxiYWNrU2V0LHRoaXMuX2luY2x1ZGVkVmFsdWVzUHJvdmlkZXJzPW5ldyBlJHQuU2V0fXJldHVybiBlLnByb3RvdHlwZS5leHRlbnRPZlZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm5bXX0sZS5wcm90b3R5cGUuX2dldEFsbEluY2x1ZGVkVmFsdWVzPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXM7dD09PXZvaWQgMCYmKHQ9ITEpO3ZhciBuPVtdO3JldHVybiB0aGlzLl9pbmNsdWRlZFZhbHVlc1Byb3ZpZGVycy5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBvPWkocix0KTtuPW4uY29uY2F0KG8pfSksbn0sZS5wcm90b3R5cGUuX2dldEV4dGVudD1mdW5jdGlvbigpe3JldHVybltdfSxlLnByb3RvdHlwZS5vblVwZGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fY2FsbGJhY2tzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZVcGRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2NhbGxiYWNrcy5kZWxldGUodCksdGhpc30sZS5wcm90b3R5cGUuX2Rpc3BhdGNoVXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlSWQrKyx0aGlzLl9jYWxsYmFja3MuY2FsbENhbGxiYWNrcyh0aGlzKX0sZS5wcm90b3R5cGUuYXV0b0RvbWFpbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hdXRvRG9tYWluQXV0b21hdGljYWxseT0hMCx0aGlzLl9zZXREb21haW4odGhpcy5fZ2V0RXh0ZW50KCkpLHRoaXN9LGUucHJvdG90eXBlLmF1dG9Eb21haW5JZkF1dG9tYXRpY01vZGU9ZnVuY3Rpb24oKXt0aGlzLl9hdXRvRG9tYWluQXV0b21hdGljYWxseSYmdGhpcy5hdXRvRG9tYWluKCl9LGUucHJvdG90eXBlLnNjYWxlPWZ1bmN0aW9uKHQpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgc2NhbGUiKX0sZS5wcm90b3R5cGUudGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21haW4oKX0sZS5wcm90b3R5cGUuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiB0PT1udWxsP3RoaXMuX2dldERvbWFpbigpOih0aGlzLl9hdXRvRG9tYWluQXV0b21hdGljYWxseT0hMSx0aGlzLl9zZXREb21haW4odCksdGhpcyl9LGUucHJvdG90eXBlLl9nZXREb21haW49ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIF9nZXREb21haW4iKX0sZS5wcm90b3R5cGUuX3NldERvbWFpbj1mdW5jdGlvbih0KXt0aGlzLl9kb21haW5Nb2RpZmljYXRpb25JblByb2dyZXNzfHwodGhpcy5fZG9tYWluTW9kaWZpY2F0aW9uSW5Qcm9ncmVzcz0hMCx0aGlzLl9iYWNraW5nU2NhbGVEb21haW4odCksdGhpcy5fZGlzcGF0Y2hVcGRhdGUoKSx0aGlzLl9kb21haW5Nb2RpZmljYXRpb25JblByb2dyZXNzPSExKX0sZS5wcm90b3R5cGUuX2JhY2tpbmdTY2FsZURvbWFpbj1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIF9iYWNraW5nRG9tYWluIil9LGUucHJvdG90eXBlLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiB0PT1udWxsP3RoaXMuX2dldFJhbmdlKCk6KHRoaXMuX3NldFJhbmdlKHQpLHRoaXMpfSxlLnByb3RvdHlwZS5fZ2V0UmFuZ2U9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIF9nZXRSYW5nZSIpfSxlLnByb3RvdHlwZS5fc2V0UmFuZ2U9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBfc2V0UmFuZ2UiKX0sZS5wcm90b3R5cGUuYWRkSW5jbHVkZWRWYWx1ZXNQcm92aWRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faW5jbHVkZWRWYWx1ZXNQcm92aWRlcnMuYWRkKHQpLHRoaXMuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZSgpLHRoaXN9LGUucHJvdG90eXBlLnJlbW92ZUluY2x1ZGVkVmFsdWVzUHJvdmlkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2luY2x1ZGVkVmFsdWVzUHJvdmlkZXJzLmRlbGV0ZSh0KSx0aGlzLmF1dG9Eb21haW5JZkF1dG9tYXRpY01vZGUoKSx0aGlzfSxlLnByb3RvdHlwZS51cGRhdGVJZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl91cGRhdGVJZH0sZX0oKTtKaXQuU2NhbGU9WHplfSk7dmFyIGVvdD1IKHRvdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodG90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgJHplPShkZSgpLFV0KHBlKSksQkY9KEVyKCksVXQoTXIpKSxLemU9ZTQoKSxyJHQ9RmUoKSxaemU9a3YoKSxRaXQ9WzAsMV0sSnplPWZ1bmN0aW9uKGUpeyR6ZS5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KCl7dmFyIHI9ZS5jYWxsKHRoaXMpfHx0aGlzO3IuX3JhbmdlPVswLDFdLHIuX2QzU2NhbGU9QkYuc2NhbGVCYW5kKCksci5fZDNTY2FsZS5yYW5nZShRaXQpLHIuX2QzVHJhbnNmb3JtYXRpb25TY2FsZT1CRi5zY2FsZUxpbmVhcigpLHIuX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5kb21haW4oUWl0KTt2YXIgbj0uMztyZXR1cm4gci5faW5uZXJQYWRkaW5nPXQuX2NvbnZlcnRUb1Bsb3R0YWJsZUlubmVyUGFkZGluZyhuKSxyLl9vdXRlclBhZGRpbmc9dC5fY29udmVydFRvUGxvdHRhYmxlT3V0ZXJQYWRkaW5nKC41LG4pLHJ9cmV0dXJuIHQucHJvdG90eXBlLmNsb25lV2l0aG91dFByb3ZpZGVycz1mdW5jdGlvbigpe3ZhciByPW5ldyB0KCkuZG9tYWluKHRoaXMuZG9tYWluKCkpLnJhbmdlKHRoaXMucmFuZ2UoKSkuaW5uZXJQYWRkaW5nKHRoaXMuaW5uZXJQYWRkaW5nKCkpLm91dGVyUGFkZGluZyh0aGlzLm91dGVyUGFkZGluZygpKTtyZXR1cm4gci5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLmRvbWFpbih0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUuZG9tYWluKCkpLHJ9LHQucHJvdG90eXBlLmV4dGVudE9mVmFsdWVzPWZ1bmN0aW9uKHIpe3JldHVybiByJHQuQXJyYXkudW5pcShyKX0sdC5wcm90b3R5cGUuX2dldEV4dGVudD1mdW5jdGlvbigpe3JldHVybiByJHQuQXJyYXkudW5pcSh0aGlzLl9nZXRBbGxJbmNsdWRlZFZhbHVlcygpKX0sdC5wcm90b3R5cGUuZG9tYWluPWZ1bmN0aW9uKHIpe3JldHVybiBlLnByb3RvdHlwZS5kb21haW4uY2FsbCh0aGlzLHIpfSx0LnByb3RvdHlwZS5pbnZlcnRSYW5nZT1mdW5jdGlvbihyKXt2YXIgbj10aGlzO3I9PT12b2lkIDAmJihyPXRoaXMucmFuZ2UoKSk7dmFyIGk9dGhpcy5fZDNTY2FsZS5iYW5kd2lkdGgoKSxvPXRoaXMuaW52ZXJ0ZWRUcmFuc2Zvcm1hdGlvbihyWzBdKSxhPXRoaXMuaW52ZXJ0ZWRUcmFuc2Zvcm1hdGlvbihyWzFdKSxzPXRoaXMuX2QzU2NhbGUuZG9tYWluKCksbD1zLm1hcChmdW5jdGlvbihoKXtyZXR1cm4gbi5fZDNTY2FsZShoKStpLzJ9KSxjPUJGLmJpc2VjdChsLG8pLHU9QkYuYmlzZWN0KGwsYSk7cmV0dXJuIHMuc2xpY2UoYyx1KX0sdC5wcm90b3R5cGUucmFuZ2U9ZnVuY3Rpb24ocil7cmV0dXJuIGUucHJvdG90eXBlLnJhbmdlLmNhbGwodGhpcyxyKX0sdC5fY29udmVydFRvUGxvdHRhYmxlSW5uZXJQYWRkaW5nPWZ1bmN0aW9uKHIpe3JldHVybiAxLygxLXIpLTF9LHQuX2NvbnZlcnRUb1Bsb3R0YWJsZU91dGVyUGFkZGluZz1mdW5jdGlvbihyLG4pe3JldHVybiByLygxLW4pfSx0LnByb3RvdHlwZS5fc2V0QmFuZHM9ZnVuY3Rpb24oKXt2YXIgcj0xLTEvKDErdGhpcy5pbm5lclBhZGRpbmcoKSksbj10aGlzLm91dGVyUGFkZGluZygpLygxK3RoaXMuaW5uZXJQYWRkaW5nKCkpO3RoaXMuX2QzU2NhbGUucGFkZGluZ0lubmVyKHIpLHRoaXMuX2QzU2NhbGUucGFkZGluZ091dGVyKG4pfSx0LnByb3RvdHlwZS5yYW5nZUJhbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVzY2FsZUJhbmQodGhpcy5fZDNTY2FsZS5iYW5kd2lkdGgoKSl9LHQucHJvdG90eXBlLnN0ZXBXaWR0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZXNjYWxlQmFuZCh0aGlzLl9kM1NjYWxlLmJhbmR3aWR0aCgpKigxK3RoaXMuaW5uZXJQYWRkaW5nKCkpKX0sdC5wcm90b3R5cGUudGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21haW4oKX0sdC5wcm90b3R5cGUuaW5uZXJQYWRkaW5nPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX2lubmVyUGFkZGluZzoodGhpcy5faW5uZXJQYWRkaW5nPXIsdGhpcy5yYW5nZSh0aGlzLnJhbmdlKCkpLHRoaXMuX2Rpc3BhdGNoVXBkYXRlKCksdGhpcyl9LHQucHJvdG90eXBlLm91dGVyUGFkZGluZz1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9vdXRlclBhZGRpbmc6KHRoaXMuX291dGVyUGFkZGluZz1yLHRoaXMucmFuZ2UodGhpcy5yYW5nZSgpKSx0aGlzLl9kaXNwYXRjaFVwZGF0ZSgpLHRoaXMpfSx0LnByb3RvdHlwZS5zY2FsZT1mdW5jdGlvbihyKXt2YXIgbj10aGlzLl9kM1NjYWxlKHIpK3RoaXMuX2QzU2NhbGUuYmFuZHdpZHRoKCkvMjtyZXR1cm4gdGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlKG4pfSx0LnByb3RvdHlwZS56b29tPWZ1bmN0aW9uKHIsbil7dmFyIGk9dGhpcyxvPWZ1bmN0aW9uKGEpe3JldHVybiBpLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUuaW52ZXJ0KEt6ZS56b29tT3V0KGEscixuKSl9O3RoaXMuX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5kb21haW4odGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLnJhbmdlKCkubWFwKG8pKSx0aGlzLl9kaXNwYXRjaFVwZGF0ZSgpfSx0LnByb3RvdHlwZS5wYW49ZnVuY3Rpb24ocil7dmFyIG49dGhpcyxpPWZ1bmN0aW9uKG8pe3JldHVybiBuLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUuaW52ZXJ0KG8rcil9O3RoaXMuX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5kb21haW4odGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLnJhbmdlKCkubWFwKGkpKSx0aGlzLl9kaXNwYXRjaFVwZGF0ZSgpfSx0LnByb3RvdHlwZS5zY2FsZVRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUocil9LHQucHJvdG90eXBlLmludmVydGVkVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5pbnZlcnQocil9LHQucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIFFpdH0sdC5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLmRvbWFpbigpfSx0LnByb3RvdHlwZS5zZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbj1mdW5jdGlvbihyKXt0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUuZG9tYWluKHIpLHRoaXMuX2Rpc3BhdGNoVXBkYXRlKCl9LHQucHJvdG90eXBlLl9nZXREb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFja2luZ1NjYWxlRG9tYWluKCl9LHQucHJvdG90eXBlLl9iYWNraW5nU2NhbGVEb21haW49ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5fZDNTY2FsZS5kb21haW4oKToodGhpcy5fZDNTY2FsZS5kb21haW4ociksdGhpcy5fc2V0QmFuZHMoKSx0aGlzKX0sdC5wcm90b3R5cGUuX2dldFJhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JhbmdlfSx0LnByb3RvdHlwZS5fc2V0UmFuZ2U9ZnVuY3Rpb24ocil7dGhpcy5fcmFuZ2U9cix0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUucmFuZ2UociksdGhpcy5fc2V0QmFuZHMoKX0sdC5wcm90b3R5cGUuX3Jlc2NhbGVCYW5kPWZ1bmN0aW9uKHIpe3JldHVybiBNYXRoLmFicyh0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUociktdGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlKDApKX0sdH0oWnplLlNjYWxlKTt0b3QuQ2F0ZWdvcnk9SnplfSk7dmFyIG4kdD1IKHJvdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkocm90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgUXplPShkZSgpLFV0KHBlKSksRGY9KEVyKCksVXQoTXIpKSxTUz1GZSgpLHRGZT1rdigpLGVGZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt0aGlzLmNvdW50PTAsdGhpcy50cmFja2VyPXt9fXJldHVybiBlLnByb3RvdHlwZS5nZXRJbmRleD1mdW5jdGlvbih0KXtpZih0aGlzLnRyYWNrZXJbdF0hPW51bGwpcmV0dXJuIHRoaXMudHJhY2tlclt0XTt2YXIgcj10aGlzLmNvdW50O3JldHVybiB0aGlzLnRyYWNrZXJbdF09cix0aGlzLmNvdW50Kz0xLHJ9LGUucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5jb3VudD0wLHRoaXMudHJhY2tlcj17fX0sZX0oKSxyRmU9ZnVuY3Rpb24oZSl7UXplLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocil7dmFyIG49ZS5jYWxsKHRoaXMpfHx0aGlzO24uX3JhbmdlTGVuZ3RoPTEsbi5fdHJhY2tlcj1uZXcgZUZlO3ZhciBpO3N3aXRjaChyKXtjYXNlIG51bGw6Y2FzZSB2b2lkIDA6dC5fcGxvdHRhYmxlQ29sb3JDYWNoZT09bnVsbCYmKHQuX3Bsb3R0YWJsZUNvbG9yQ2FjaGU9dC5fZ2V0UGxvdHRhYmxlQ29sb3JzKCkpLGk9RGYuc2NhbGVPcmRpbmFsKCkucmFuZ2UodC5fcGxvdHRhYmxlQ29sb3JDYWNoZSk7YnJlYWs7Y2FzZSJDYXRlZ29yeTEwIjpjYXNlImNhdGVnb3J5MTAiOmNhc2UiMTAiOmk9RGYuc2NhbGVPcmRpbmFsKERmLnNjaGVtZUNhdGVnb3J5MTApO2JyZWFrO2Nhc2UiQ2F0ZWdvcnkyMCI6Y2FzZSJjYXRlZ29yeTIwIjpjYXNlIjIwIjppPURmLnNjYWxlT3JkaW5hbChEZi5zY2hlbWVDYXRlZ29yeTIwKTticmVhaztjYXNlIkNhdGVnb3J5MjBiIjpjYXNlImNhdGVnb3J5MjBiIjpjYXNlIjIwYiI6aT1EZi5zY2FsZU9yZGluYWwoRGYuc2NoZW1lQ2F0ZWdvcnkyMGIpO2JyZWFrO2Nhc2UiQ2F0ZWdvcnkyMGMiOmNhc2UiY2F0ZWdvcnkyMGMiOmNhc2UiMjBjIjppPURmLnNjYWxlT3JkaW5hbChEZi5zY2hlbWVDYXRlZ29yeTIwYyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIENvbG9yU2NhbGUgdHlwZSIpfXJldHVybiBuLl9kM1NjYWxlPWksbi5fcmFuZ2VMZW5ndGg9bi5fZDNTY2FsZS5yYW5nZSgpLmxlbmd0aCxufXJldHVybiB0LnByb3RvdHlwZS5leHRlbnRPZlZhbHVlcz1mdW5jdGlvbihyKXtyZXR1cm4gU1MuQXJyYXkudW5pcShyKX0sdC5wcm90b3R5cGUuX2dldEV4dGVudD1mdW5jdGlvbigpe3JldHVybiBTUy5BcnJheS51bmlxKHRoaXMuX2dldEFsbEluY2x1ZGVkVmFsdWVzKCkpfSx0LmludmFsaWRhdGVDb2xvckNhY2hlPWZ1bmN0aW9uKCl7dC5fcGxvdHRhYmxlQ29sb3JDYWNoZT1udWxsfSx0Ll9nZXRQbG90dGFibGVDb2xvcnM9ZnVuY3Rpb24oKXtmb3IodmFyIHI9W10sbj1EZi5zZWxlY3QoImJvZHkiKS5hcHBlbmQoInBsb3R0YWJsZS1jb2xvci10ZXN0ZXIiKSxpPVNTLkNvbG9yLmNvbG9yVGVzdChuLCIiKSxvPTAsYT1TUy5Db2xvci5jb2xvclRlc3QobiwicGxvdHRhYmxlLWNvbG9ycy0wIik7YSE9bnVsbCYmbzx0aGlzLl9NQVhJTVVNX0NPTE9SU19GUk9NX0NTUyYmIShhPT09aSYmYT09PXJbci5sZW5ndGgtMV0pOylyLnB1c2goYSksbysrLGE9U1MuQ29sb3IuY29sb3JUZXN0KG4sInBsb3R0YWJsZS1jb2xvcnMtIitvKTtyZXR1cm4gbi5yZW1vdmUoKSxyfSx0LnByb3RvdHlwZS5zY2FsZT1mdW5jdGlvbihyKXt2YXIgbj10aGlzLl9kM1NjYWxlKHIpLGk9dGhpcy5fdHJhY2tlci5nZXRJbmRleChyKSxvPU1hdGguZmxvb3IoaS90aGlzLl9yYW5nZUxlbmd0aCk7aWYobz09PTApcmV0dXJuIG47dmFyIGE9TWF0aC5sb2cobyp0Ll9MT09QX0xJR0hURU5fRkFDVE9SKzEpO3JldHVybiBTUy5Db2xvci5saWdodGVuQ29sb3IobixhKX0sdC5wcm90b3R5cGUuX2dldERvbWFpbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9iYWNraW5nU2NhbGVEb21haW4oKX0sdC5wcm90b3R5cGUuX2JhY2tpbmdTY2FsZURvbWFpbj1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9kM1NjYWxlLmRvbWFpbigpOih0aGlzLl9kM1NjYWxlLmRvbWFpbihyKSx0aGlzLl90cmFja2VyLmNsZWFyKCksdGhpcyl9LHQucHJvdG90eXBlLl9nZXRSYW5nZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kM1NjYWxlLnJhbmdlKCl9LHQucHJvdG90eXBlLl9zZXRSYW5nZT1mdW5jdGlvbihyKXt0aGlzLl9kM1NjYWxlLnJhbmdlKHIpLHRoaXMuX3JhbmdlTGVuZ3RoPXIubGVuZ3RofSx0Ll9MT09QX0xJR0hURU5fRkFDVE9SPTEuNix0Ll9NQVhJTVVNX0NPTE9SU19GUk9NX0NTUz0yNTYsdH0odEZlLlNjYWxlKTtyb3QuQ29sb3I9ckZlfSk7dmFyIG8kdD1IKG5vdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobm90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbkZlPShkZSgpLFV0KHBlKSksTVM9KEVyKCksVXQoTXIpKSxpJHQ9RmUoKSxpRmU9a3YoKSxvRmU9ZnVuY3Rpb24oZSl7bkZlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocil7cj09PXZvaWQgMCYmKHI9ImxpbmVhciIpO3ZhciBuPWUuY2FsbCh0aGlzKXx8dGhpcztzd2l0Y2gocil7Y2FzZSJsaW5lYXIiOm4uX2NvbG9yU2NhbGU9TVMuc2NhbGVMaW5lYXIoKTticmVhaztjYXNlImxvZyI6bi5fY29sb3JTY2FsZT1NUy5zY2FsZUxvZygpO2JyZWFrO2Nhc2Uic3FydCI6bi5fY29sb3JTY2FsZT1NUy5zY2FsZVNxcnQoKTticmVhaztjYXNlInBvdyI6bi5fY29sb3JTY2FsZT1NUy5zY2FsZVBvdygpO2JyZWFrfWlmKG4uX2NvbG9yU2NhbGU9PW51bGwpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIFF1YW50aXRhdGl2ZVNjYWxlIHNjYWxlIHR5cGUgIityKTtyZXR1cm4gbi5yYW5nZSh0LlJFRFMpLG59cmV0dXJuIHQucHJvdG90eXBlLmV4dGVudE9mVmFsdWVzPWZ1bmN0aW9uKHIpe3ZhciBuPU1TLmV4dGVudChyKTtyZXR1cm4gblswXT09bnVsbHx8blsxXT09bnVsbD9bXTpufSx0LnByb3RvdHlwZS5fZDNJbnRlcnBvbGF0ZWRTY2FsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb2xvclNjYWxlLnJhbmdlKFswLDFdKS5pbnRlcnBvbGF0ZSh0aGlzLl9pbnRlcnBvbGF0ZUNvbG9ycygpKX0sdC5wcm90b3R5cGUuX2ludGVycG9sYXRlQ29sb3JzPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5fY29sb3JSYW5nZTtpZihyLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcigiQ29sb3Igc2NhbGUgYXJyYXlzIG11c3QgaGF2ZSBhdCBsZWFzdCB0d28gZWxlbWVudHMuIik7cmV0dXJuIGZ1bmN0aW9uKG4saSl7cmV0dXJuIGZ1bmN0aW9uKG8pe289TWF0aC5tYXgoMCxNYXRoLm1pbigxLG8pKTt2YXIgYT1vKihyLmxlbmd0aC0xKSxzPU1hdGguZmxvb3IoYSksbD1NYXRoLmNlaWwoYSksYz1hLXM7cmV0dXJuIE1TLmludGVycG9sYXRlTGFiKHJbc10scltsXSkoYyl9fX0sdC5wcm90b3R5cGUuX3Jlc2V0U2NhbGU9ZnVuY3Rpb24oKXt0aGlzLl9kM1NjYWxlPXRoaXMuX2QzSW50ZXJwb2xhdGVkU2NhbGUoKSx0aGlzLmF1dG9Eb21haW5JZkF1dG9tYXRpY01vZGUoKSx0aGlzLl9kaXNwYXRjaFVwZGF0ZSgpfSx0LnByb3RvdHlwZS5hdXRvRG9tYWluPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5fZ2V0QWxsSW5jbHVkZWRWYWx1ZXMoKTtyZXR1cm4gci5sZW5ndGg+MCYmdGhpcy5fc2V0RG9tYWluKFtpJHQuTWF0aC5taW4ociwwKSxpJHQuTWF0aC5tYXgociwwKV0pLHRoaXN9LHQucHJvdG90eXBlLnNjYWxlPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9kM1NjYWxlKHIpfSx0LnByb3RvdHlwZS5fZ2V0RG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JhY2tpbmdTY2FsZURvbWFpbigpfSx0LnByb3RvdHlwZS5fYmFja2luZ1NjYWxlRG9tYWluPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX2QzU2NhbGUuZG9tYWluKCk6KHRoaXMuX2QzU2NhbGUuZG9tYWluKHIpLHRoaXMpfSx0LnByb3RvdHlwZS5fZ2V0UmFuZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29sb3JSYW5nZX0sdC5wcm90b3R5cGUuX3NldFJhbmdlPWZ1bmN0aW9uKHIpe3RoaXMuX2NvbG9yUmFuZ2U9cix0aGlzLl9yZXNldFNjYWxlKCl9LHQuUkVEUz1bIiNGRkZGRkYiLCIjRkZGNkUxIiwiI0ZFRjRDMCIsIiNGRUQ5NzYiLCIjRkVCMjRDIiwiI0ZEOEQzQyIsIiNGQzRFMkEiLCIjRTMxQTFDIiwiI0IxMDAyNiJdLHQuQkxVRVM9WyIjRkZGRkZGIiwiI0NDRkZGRiIsIiNBNUZGRkQiLCIjODVGN0ZCIiwiIzZFRDNFRiIsIiM1NUE3RTAiLCIjNDE3RkQwIiwiIzI1NDVEMyIsIiMwQjAyRTEiXSx0LlBPU05FRz1bIiMwQjAyRTEiLCIjMjU0NUQzIiwiIzQxN0ZEMCIsIiM1NUE3RTAiLCIjNkVEM0VGIiwiIzg1RjdGQiIsIiNBNUZGRkQiLCIjQ0NGRkZGIiwiI0ZGRkZGRiIsIiNGRkY2RTEiLCIjRkVGNEMwIiwiI0ZFRDk3NiIsIiNGRUIyNEMiLCIjRkQ4RDNDIiwiI0ZDNEUyQSIsIiNFMzFBMUMiLCIjQjEwMDI2Il0sdH0oaUZlLlNjYWxlKTtub3QuSW50ZXJwb2xhdGVkQ29sb3I9b0ZlfSk7dmFyIHhkPUgoaW90PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShpb3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBhRmU9KGRlKCksVXQocGUpKSxzRmU9KEVyKCksVXQoTXIpKSxsRmU9ZTQoKSxFUz1GZSgpLGNGZT1rdigpLHVGZT1mdW5jdGlvbihlKXthRmUuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdCgpe3ZhciByPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gci5fdGlja0dlbmVyYXRvcj1mdW5jdGlvbihuKXtyZXR1cm4gbi5kZWZhdWx0VGlja3MoKX0sci5fcGFkUHJvcG9ydGlvbj0uMDUsci5fc25hcHBpbmdEb21haW5FbmFibGVkPSEwLHIuX3BhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXJzPW5ldyBFUy5TZXQscn1yZXR1cm4gdC5wcm90b3R5cGUuYXV0b0RvbWFpbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kb21haW5NaW49bnVsbCx0aGlzLl9kb21haW5NYXg9bnVsbCxlLnByb3RvdHlwZS5hdXRvRG9tYWluLmNhbGwodGhpcyksdGhpc30sdC5wcm90b3R5cGUuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZT1mdW5jdGlvbigpe2lmKHRoaXMuX2RvbWFpbk1pbiE9bnVsbCYmdGhpcy5fZG9tYWluTWF4IT1udWxsKXt0aGlzLl9zZXREb21haW4oW3RoaXMuX2RvbWFpbk1pbix0aGlzLl9kb21haW5NYXhdKTtyZXR1cm59dmFyIHI9dGhpcy5fZ2V0RXh0ZW50KCk7aWYodGhpcy5fZG9tYWluTWluIT1udWxsKXt2YXIgbj1yWzFdO3RoaXMuX2RvbWFpbk1pbj49biYmKG49dGhpcy5fZXhwYW5kU2luZ2xlVmFsdWVEb21haW4oW3RoaXMuX2RvbWFpbk1pbix0aGlzLl9kb21haW5NaW5dKVsxXSksdGhpcy5fc2V0RG9tYWluKFt0aGlzLl9kb21haW5NaW4sbl0pO3JldHVybn1pZih0aGlzLl9kb21haW5NYXghPW51bGwpe3ZhciBpPXJbMF07dGhpcy5fZG9tYWluTWF4PD1pJiYoaT10aGlzLl9leHBhbmRTaW5nbGVWYWx1ZURvbWFpbihbdGhpcy5fZG9tYWluTWF4LHRoaXMuX2RvbWFpbk1heF0pWzBdKSx0aGlzLl9zZXREb21haW4oW2ksdGhpcy5fZG9tYWluTWF4XSk7cmV0dXJufWUucHJvdG90eXBlLmF1dG9Eb21haW5JZkF1dG9tYXRpY01vZGUuY2FsbCh0aGlzKX0sdC5wcm90b3R5cGUuX2dldFVuYm91bmRlZEV4dGVudD1mdW5jdGlvbihyKXtyPT09dm9pZCAwJiYocj0hMSk7dmFyIG49dGhpcy5fZ2V0QWxsSW5jbHVkZWRWYWx1ZXMociksaT10aGlzLl9kZWZhdWx0RXh0ZW50KCk7aWYobi5sZW5ndGghPT0wKXt2YXIgbz1bRVMuTWF0aC5taW4obixpWzBdKSxFUy5NYXRoLm1heChuLGlbMV0pXTtpPXRoaXMuX3BhZERvbWFpbihvKX1yZXR1cm4gaX0sdC5wcm90b3R5cGUuX2dldEV4dGVudD1mdW5jdGlvbigpe3ZhciByPXRoaXMuX2dldFVuYm91bmRlZEV4dGVudCgpO3JldHVybiB0aGlzLl9kb21haW5NaW4hPW51bGwmJihyWzBdPXRoaXMuX2RvbWFpbk1pbiksdGhpcy5fZG9tYWluTWF4IT1udWxsJiYoclsxXT10aGlzLl9kb21haW5NYXgpLHJ9LHQucHJvdG90eXBlLmFkZFBhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXI9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX3BhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXJzLmFkZChyKSx0aGlzLmF1dG9Eb21haW5JZkF1dG9tYXRpY01vZGUoKSx0aGlzfSx0LnByb3RvdHlwZS5yZW1vdmVQYWRkaW5nRXhjZXB0aW9uc1Byb3ZpZGVyPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9wYWRkaW5nRXhjZXB0aW9uc1Byb3ZpZGVycy5kZWxldGUociksdGhpcy5hdXRvRG9tYWluSWZBdXRvbWF0aWNNb2RlKCksdGhpc30sdC5wcm90b3R5cGUucGFkUHJvcG9ydGlvbj1mdW5jdGlvbihyKXtpZihyPT1udWxsKXJldHVybiB0aGlzLl9wYWRQcm9wb3J0aW9uO2lmKHI8MCl0aHJvdyBuZXcgRXJyb3IoInBhZFByb3BvcnRpb24gbXVzdCBiZSBub24tbmVnYXRpdmUiKTtyZXR1cm4gdGhpcy5fcGFkUHJvcG9ydGlvbj1yLHRoaXMuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZSgpLHRoaXN9LHQucHJvdG90eXBlLl9wYWREb21haW49ZnVuY3Rpb24ocil7dmFyIG49dGhpcztpZihyWzBdLnZhbHVlT2YoKT09PXJbMV0udmFsdWVPZigpKXJldHVybiB0aGlzLl9leHBhbmRTaW5nbGVWYWx1ZURvbWFpbihyKTtpZih0aGlzLl9wYWRQcm9wb3J0aW9uPT09MClyZXR1cm4gcjt2YXIgaT10aGlzLl9wYWRQcm9wb3J0aW9uLzIsbz1yWzBdLGE9clsxXSxzPSExLGw9ITE7dGhpcy5fcGFkZGluZ0V4Y2VwdGlvbnNQcm92aWRlcnMuZm9yRWFjaChmdW5jdGlvbihmKXt2YXIgcD1mKG4pO3AuZm9yRWFjaChmdW5jdGlvbihkKXtkLnZhbHVlT2YoKT09PW8udmFsdWVPZigpJiYocz0hMCksZC52YWx1ZU9mKCk9PT1hLnZhbHVlT2YoKSYmKGw9ITApfSl9KTt2YXIgYz10aGlzLl9iYWNraW5nU2NhbGVEb21haW4oKTt0aGlzLl9iYWNraW5nU2NhbGVEb21haW4ocik7dmFyIHU9cz9vOnRoaXMuaW52ZXJ0KHRoaXMuc2NhbGUobyktKHRoaXMuc2NhbGUoYSktdGhpcy5zY2FsZShvKSkqaSksaD1sP2E6dGhpcy5pbnZlcnQodGhpcy5zY2FsZShhKSsodGhpcy5zY2FsZShhKS10aGlzLnNjYWxlKG8pKSppKTtyZXR1cm4gdGhpcy5fYmFja2luZ1NjYWxlRG9tYWluKGMpLHRoaXMuX3NuYXBwaW5nRG9tYWluRW5hYmxlZD90aGlzLl9uaWNlRG9tYWluKFt1LGhdKTpbdSxoXX0sdC5wcm90b3R5cGUuc25hcHBpbmdEb21haW5FbmFibGVkPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX3NuYXBwaW5nRG9tYWluRW5hYmxlZDoodGhpcy5fc25hcHBpbmdEb21haW5FbmFibGVkPXIsdGhpcy5hdXRvRG9tYWluSWZBdXRvbWF0aWNNb2RlKCksdGhpcyl9LHQucHJvdG90eXBlLl9leHBhbmRTaW5nbGVWYWx1ZURvbWFpbj1mdW5jdGlvbihyKXtyZXR1cm4gcn0sdC5wcm90b3R5cGUuaW52ZXJ0PWZ1bmN0aW9uKHIpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgaW52ZXJ0Iil9LHQucHJvdG90eXBlLmRvbWFpbj1mdW5jdGlvbihyKXtyZXR1cm4gciE9bnVsbCYmKHRoaXMuX2RvbWFpbk1pbj1yWzBdLHRoaXMuX2RvbWFpbk1heD1yWzFdKSxlLnByb3RvdHlwZS5kb21haW4uY2FsbCh0aGlzLHIpfSx0LnByb3RvdHlwZS5kb21haW5NaW49ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5kb21haW4oKVswXToodGhpcy5fZG9tYWluTWluPXIsdGhpcy5hdXRvRG9tYWluSWZBdXRvbWF0aWNNb2RlKCksdGhpcyl9LHQucHJvdG90eXBlLmRvbWFpbk1heD1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLmRvbWFpbigpWzFdOih0aGlzLl9kb21haW5NYXg9cix0aGlzLmF1dG9Eb21haW5JZkF1dG9tYXRpY01vZGUoKSx0aGlzKX0sdC5wcm90b3R5cGUuZXh0ZW50T2ZWYWx1ZXM9ZnVuY3Rpb24ocil7dmFyIG49c0ZlLmV4dGVudChyLmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gRVMuTWF0aC5pc1ZhbGlkTnVtYmVyKCtpKX0pKTtyZXR1cm4gblswXT09bnVsbHx8blsxXT09bnVsbD9bXTpufSx0LnByb3RvdHlwZS56b29tPWZ1bmN0aW9uKHIsbil7dmFyIGk9dGhpcyxvPWZ1bmN0aW9uKGEpe3JldHVybiBpLmludmVydChsRmUuem9vbU91dChhLHIsbikpfTt0aGlzLmRvbWFpbih0aGlzLnJhbmdlKCkubWFwKG8pKX0sdC5wcm90b3R5cGUucGFuPWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXMsaT1mdW5jdGlvbihvKXtyZXR1cm4gbi5pbnZlcnQobytyKX07dGhpcy5kb21haW4odGhpcy5yYW5nZSgpLm1hcChpKSl9LHQucHJvdG90eXBlLnNjYWxlVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24ocil7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBzY2FsZVRyYW5zZm9ybWF0aW9uIil9LHQucHJvdG90eXBlLmludmVydGVkVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24ocil7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBpbnZlcnRlZFRyYW5zZm9ybWF0aW9uIil9LHQucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRXh0ZW50PWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBnZXRUcmFuc2Zvcm1hdGlvbkV4dGVudCIpfSx0LnByb3RvdHlwZS5nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbj1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgZ2V0VHJhbnNmb3JtYXRpb25Eb21haW4iKX0sdC5wcm90b3R5cGUuc2V0VHJhbnNmb3JtYXRpb25Eb21haW49ZnVuY3Rpb24ocil7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBzZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbiIpfSx0LnByb3RvdHlwZS5fc2V0RG9tYWluPWZ1bmN0aW9uKHIpe3ZhciBuPWZ1bmN0aW9uKGkpe3JldHVybiBFUy5NYXRoLmlzTmFOKGkpfHxpPT09MS8wfHxpPT09LTEvMH07aWYobihyWzBdKXx8bihyWzFdKSl7RVMuV2luZG93Lndhcm4oIldhcm5pbmc6IFF1YW50aXRhdGl2ZVNjYWxlcyBjYW5ub3QgdGFrZSBOYU4gb3IgSW5maW5pdHkgYXMgYSBkb21haW4gdmFsdWUuIElnbm9yaW5nLiIpO3JldHVybn1lLnByb3RvdHlwZS5fc2V0RG9tYWluLmNhbGwodGhpcyxyKX0sdC5wcm90b3R5cGUuZGVmYXVsdFRpY2tzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBfZ2V0RGVmYXVsdFRpY2tzIil9LHQucHJvdG90eXBlLnRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RpY2tHZW5lcmF0b3IodGhpcyl9LHQucHJvdG90eXBlLl9uaWNlRG9tYWluPWZ1bmN0aW9uKHIsbil7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBfbmljZURvbWFpbiIpfSx0LnByb3RvdHlwZS5fZGVmYXVsdEV4dGVudD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgX2RlZmF1bHRFeHRlbnQiKX0sdC5wcm90b3R5cGUudGlja0dlbmVyYXRvcj1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl90aWNrR2VuZXJhdG9yOih0aGlzLl90aWNrR2VuZXJhdG9yPXIsdGhpcyl9LHQuX0RFRkFVTFRfTlVNX1RJQ0tTPTEwLHR9KGNGZS5TY2FsZSk7aW90LlF1YW50aXRhdGl2ZVNjYWxlPXVGZX0pO3ZhciBhJHQ9SChvb3Q9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG9vdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGhGZT0oZGUoKSxVdChwZSkpLGZGZT0oRXIoKSxVdChNcikpLHBGZT14ZCgpLGRGZT1mdW5jdGlvbihlKXtoRmUuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdCgpe3ZhciByPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gci5fZDNTY2FsZT1mRmUuc2NhbGVMaW5lYXIoKSxyfXJldHVybiB0LnByb3RvdHlwZS5fZGVmYXVsdEV4dGVudD1mdW5jdGlvbigpe3JldHVyblswLDFdfSx0LnByb3RvdHlwZS5fZXhwYW5kU2luZ2xlVmFsdWVEb21haW49ZnVuY3Rpb24ocil7cmV0dXJuIHJbMF09PT1yWzFdP1tyWzBdLTEsclsxXSsxXTpyfSx0LnByb3RvdHlwZS5zY2FsZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fZDNTY2FsZShyKX0sdC5wcm90b3R5cGUuc2NhbGVUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5zY2FsZShyKX0sdC5wcm90b3R5cGUuaW52ZXJ0ZWRUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5pbnZlcnQocil9LHQucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2dldFVuYm91bmRlZEV4dGVudCghMCl9LHQucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tYWluKCl9LHQucHJvdG90eXBlLnNldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKHIpe3RoaXMuZG9tYWluKHIpfSx0LnByb3RvdHlwZS5fZ2V0RG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JhY2tpbmdTY2FsZURvbWFpbigpfSx0LnByb3RvdHlwZS5fYmFja2luZ1NjYWxlRG9tYWluPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX2QzU2NhbGUuZG9tYWluKCk6KHRoaXMuX2QzU2NhbGUuZG9tYWluKHIpLHRoaXMpfSx0LnByb3RvdHlwZS5fZ2V0UmFuZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZDNTY2FsZS5yYW5nZSgpfSx0LnByb3RvdHlwZS5fc2V0UmFuZ2U9ZnVuY3Rpb24ocil7dGhpcy5fZDNTY2FsZS5yYW5nZShyKX0sdC5wcm90b3R5cGUuaW52ZXJ0PWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9kM1NjYWxlLmludmVydChyKX0sdC5wcm90b3R5cGUuZGVmYXVsdFRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUudGlja3ModC5fREVGQVVMVF9OVU1fVElDS1MpfSx0LnByb3RvdHlwZS5fbmljZURvbWFpbj1mdW5jdGlvbihyLG4pe3JldHVybiB0aGlzLl9kM1NjYWxlLmNvcHkoKS5kb21haW4ocikubmljZShuKS5kb21haW4oKX0sdH0ocEZlLlF1YW50aXRhdGl2ZVNjYWxlKTtvb3QuTGluZWFyPWRGZX0pO3ZhciBzJHQ9SChhb3Q9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGFvdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG1GZT0oZGUoKSxVdChwZSkpLGdGZT0oRXIoKSxVdChNcikpLF9GZT14ZCgpLHlGZT1mdW5jdGlvbihlKXttRmUuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdChyKXtyPT09dm9pZCAwJiYocj0xMCk7dmFyIG49ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLl9kM1NjYWxlPWdGZS5zY2FsZUxvZygpLmJhc2Uociksbi5fc2V0RG9tYWluKG4uX2RlZmF1bHRFeHRlbnQoKSksbn1yZXR1cm4gdC5wcm90b3R5cGUuX2RlZmF1bHRFeHRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm5bMSx0aGlzLl9kM1NjYWxlLmJhc2UoKV19LHQucHJvdG90eXBlLl9leHBhbmRTaW5nbGVWYWx1ZURvbWFpbj1mdW5jdGlvbihyKXtyZXR1cm4gclswXT09PXJbMV0/W3JbMF0vdGhpcy5fZDNTY2FsZS5iYXNlKCksclsxXSp0aGlzLl9kM1NjYWxlLmJhc2UoKV06cn0sdC5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX2QzU2NhbGUocil9LHQucHJvdG90eXBlLnNjYWxlVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuc2NhbGUocil9LHQucHJvdG90eXBlLmludmVydGVkVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuaW52ZXJ0KHIpfSx0LnByb3RvdHlwZS5nZXRUcmFuc2Zvcm1hdGlvbkV4dGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9nZXRVbmJvdW5kZWRFeHRlbnQoITApfSx0LnByb3RvdHlwZS5nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbWFpbigpfSx0LnByb3RvdHlwZS5zZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbj1mdW5jdGlvbihyKXt0aGlzLmRvbWFpbihyKX0sdC5wcm90b3R5cGUuX2dldERvbWFpbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9iYWNraW5nU2NhbGVEb21haW4oKX0sdC5wcm90b3R5cGUuX2JhY2tpbmdTY2FsZURvbWFpbj1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9kM1NjYWxlLmRvbWFpbigpOih0aGlzLl9kM1NjYWxlLmRvbWFpbihyKSx0aGlzKX0sdC5wcm90b3R5cGUuX2dldFJhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUucmFuZ2UoKX0sdC5wcm90b3R5cGUuX3NldFJhbmdlPWZ1bmN0aW9uKHIpe3RoaXMuX2QzU2NhbGUucmFuZ2Uocil9LHQucHJvdG90eXBlLmludmVydD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fZDNTY2FsZS5pbnZlcnQocil9LHQucHJvdG90eXBlLmRlZmF1bHRUaWNrcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kM1NjYWxlLnRpY2tzKHQuX0RFRkFVTFRfTlVNX1RJQ0tTKX0sdC5wcm90b3R5cGUuX25pY2VEb21haW49ZnVuY3Rpb24ocixuKXtyZXR1cm4gdGhpcy5fZDNTY2FsZS5jb3B5KCkuZG9tYWluKHIpLm5pY2UoKS5kb21haW4oKX0sdH0oX0ZlLlF1YW50aXRhdGl2ZVNjYWxlKTthb3QuTG9nPXlGZX0pO3ZhciBsJHQ9SChsb3Q9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGxvdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHZGZT0oZGUoKSxVdChwZSkpLHI0PShFcigpLFV0KE1yKSksVFM9RmUoKSxzb3Q9UnMoKSx4RmU9eGQoKSxiRmU9ZnVuY3Rpb24oZSl7dkZlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocil7cj09PXZvaWQgMCYmKHI9MTApO3ZhciBuPWUuY2FsbCh0aGlzKXx8dGhpcztpZihuLl9sb2dUaWNrR2VuZXJhdG9yPWZ1bmN0aW9uKGkpe3ZhciBvPWZ1bmN0aW9uKHgsYixTKXtyZXR1cm5beCxiLFNdLnNvcnQoZnVuY3Rpb24oQyxQKXtyZXR1cm4gQy1QfSlbMV19LGE9VFMuTWF0aC5taW4obi5fdW50cmFuc2Zvcm1lZERvbWFpbiwwKSxzPVRTLk1hdGgubWF4KG4uX3VudHJhbnNmb3JtZWREb21haW4sMCksbD1hLGM9byhhLHMsLW4uX3Bpdm90KSx1PW8oYSxzLG4uX3Bpdm90KSxoPXMsZj1uLl9sb2dUaWNrcygtYywtbCkubWFwKGZ1bmN0aW9uKHgpe3JldHVybi14fSkucmV2ZXJzZSgpLHA9bi5fbG9nVGlja3ModSxoKSxkPU1hdGgubWF4KGEsLW4uX3Bpdm90KSxnPU1hdGgubWluKHMsbi5fcGl2b3QpLF89cjQuc2NhbGVMaW5lYXIoKS5kb21haW4oW2QsZ10pLnRpY2tzKG4uX2hvd01hbnlUaWNrcyhkLGcpKSx5PWYuY29uY2F0KF8pLmNvbmNhdChwKTtyZXR1cm4geS5sZW5ndGg8PTEmJih5PXI0LnNjYWxlTGluZWFyKCkuZG9tYWluKFthLHNdKS50aWNrcyhzb3QuTW9kaWZpZWRMb2cuX0RFRkFVTFRfTlVNX1RJQ0tTKSkseX0sbi5fZDNTY2FsZT1yNC5zY2FsZUxpbmVhcigpLG4uX2Jhc2U9cixuLl9waXZvdD1uLl9iYXNlLG4uX3NldERvbWFpbihuLl9kZWZhdWx0RXh0ZW50KCkpLG4udGlja0dlbmVyYXRvcihuLl9sb2dUaWNrR2VuZXJhdG9yKSxyPD0xKXRocm93IG5ldyBFcnJvcigiTW9kaWZpZWRMb2dTY2FsZTogVGhlIGJhc2UgbXVzdCBiZSA+IDEiKTtyZXR1cm4gbn1yZXR1cm4gdC5wcm90b3R5cGUuX2FkanVzdGVkTG9nPWZ1bmN0aW9uKHIpe3ZhciBuPXI8MD8tMToxO3JldHVybiByKj1uLHI8dGhpcy5fcGl2b3QmJihyKz0odGhpcy5fcGl2b3QtcikvdGhpcy5fcGl2b3QpLHI9TWF0aC5sb2cocikvTWF0aC5sb2codGhpcy5fYmFzZSkscio9bixyfSx0LnByb3RvdHlwZS5faW52ZXJ0ZWRBZGp1c3RlZExvZz1mdW5jdGlvbihyKXt2YXIgbj1yPDA/LTE6MTtyZXR1cm4gcio9bixyPU1hdGgucG93KHRoaXMuX2Jhc2Uscikscjx0aGlzLl9waXZvdCYmKHI9dGhpcy5fcGl2b3QqKHItMSkvKHRoaXMuX3Bpdm90LTEpKSxyKj1uLHJ9LHQucHJvdG90eXBlLnNjYWxlPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9kM1NjYWxlKHRoaXMuX2FkanVzdGVkTG9nKHIpKX0sdC5wcm90b3R5cGUuaW52ZXJ0PWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9pbnZlcnRlZEFkanVzdGVkTG9nKHRoaXMuX2QzU2NhbGUuaW52ZXJ0KHIpKX0sdC5wcm90b3R5cGUuc2NhbGVUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5zY2FsZShyKX0sdC5wcm90b3R5cGUuaW52ZXJ0ZWRUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5pbnZlcnQocil9LHQucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2dldFVuYm91bmRlZEV4dGVudCghMCl9LHQucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tYWluKCl9LHQucHJvdG90eXBlLnNldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKHIpe3RoaXMuZG9tYWluKHIpfSx0LnByb3RvdHlwZS5fZ2V0RG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3VudHJhbnNmb3JtZWREb21haW59LHQucHJvdG90eXBlLl9zZXREb21haW49ZnVuY3Rpb24ocil7dGhpcy5fdW50cmFuc2Zvcm1lZERvbWFpbj1yO3ZhciBuPVt0aGlzLl9hZGp1c3RlZExvZyhyWzBdKSx0aGlzLl9hZGp1c3RlZExvZyhyWzFdKV07ZS5wcm90b3R5cGUuX3NldERvbWFpbi5jYWxsKHRoaXMsbil9LHQucHJvdG90eXBlLl9iYWNraW5nU2NhbGVEb21haW49ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5fZDNTY2FsZS5kb21haW4oKToodGhpcy5fZDNTY2FsZS5kb21haW4ociksdGhpcyl9LHQucHJvdG90eXBlLl9sb2dUaWNrcz1mdW5jdGlvbihyLG4pe3ZhciBpPXRoaXMsbz10aGlzLl9ob3dNYW55VGlja3MocixuKTtpZihvPT09MClyZXR1cm5bXTt2YXIgYT1NYXRoLmZsb29yKE1hdGgubG9nKHIpL01hdGgubG9nKHRoaXMuX2Jhc2UpKSxzPU1hdGguY2VpbChNYXRoLmxvZyhuKS9NYXRoLmxvZyh0aGlzLl9iYXNlKSksbD1yNC5yYW5nZShzLGEsLU1hdGguY2VpbCgocy1hKS9vKSksYz1yNC5yYW5nZSh0aGlzLl9iYXNlLDEsLSh0aGlzLl9iYXNlLTEpKS5tYXAoTWF0aC5mbG9vciksdT1UUy5BcnJheS51bmlxKGMpLGg9bC5tYXAoZnVuY3Rpb24oZyl7cmV0dXJuIHUubWFwKGZ1bmN0aW9uKF8pe3JldHVybiBNYXRoLnBvdyhpLl9iYXNlLGctMSkqX30pfSksZj1UUy5BcnJheS5mbGF0dGVuKGgpLHA9Zi5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIHI8PWcmJmc8PW59KSxkPXAuc29ydChmdW5jdGlvbihnLF8pe3JldHVybiBnLV99KTtyZXR1cm4gZH0sdC5wcm90b3R5cGUuX2hvd01hbnlUaWNrcz1mdW5jdGlvbihyLG4pe3ZhciBpPXRoaXMuX2FkanVzdGVkTG9nKFRTLk1hdGgubWluKHRoaXMuX3VudHJhbnNmb3JtZWREb21haW4sMCkpLG89dGhpcy5fYWRqdXN0ZWRMb2coVFMuTWF0aC5tYXgodGhpcy5fdW50cmFuc2Zvcm1lZERvbWFpbiwwKSksYT10aGlzLl9hZGp1c3RlZExvZyhyKSxzPXRoaXMuX2FkanVzdGVkTG9nKG4pLGw9KHMtYSkvKG8taSksYz1NYXRoLmNlaWwobCpzb3QuTW9kaWZpZWRMb2cuX0RFRkFVTFRfTlVNX1RJQ0tTKTtyZXR1cm4gY30sdC5wcm90b3R5cGUuX25pY2VEb21haW49ZnVuY3Rpb24ocixuKXtyZXR1cm4gcn0sdC5wcm90b3R5cGUuX2RlZmF1bHRFeHRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm5bMCx0aGlzLl9iYXNlXX0sdC5wcm90b3R5cGUuX2V4cGFuZFNpbmdsZVZhbHVlRG9tYWluPWZ1bmN0aW9uKHIpe2lmKHJbMF09PT1yWzFdKXt2YXIgbj1yWzBdO3JldHVybiBuPjA/W24vdGhpcy5fYmFzZSxuKnRoaXMuX2Jhc2VdOm49PT0wP1stdGhpcy5fYmFzZSx0aGlzLl9iYXNlXTpbbip0aGlzLl9iYXNlLG4vdGhpcy5fYmFzZV19cmV0dXJuIHJ9LHQucHJvdG90eXBlLl9nZXRSYW5nZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kM1NjYWxlLnJhbmdlKCl9LHQucHJvdG90eXBlLl9zZXRSYW5nZT1mdW5jdGlvbihyKXt0aGlzLl9kM1NjYWxlLnJhbmdlKHIpfSx0LnByb3RvdHlwZS5kZWZhdWx0VGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZDNTY2FsZS50aWNrcyhzb3QuTW9kaWZpZWRMb2cuX0RFRkFVTFRfTlVNX1RJQ0tTKX0sdH0oeEZlLlF1YW50aXRhdGl2ZVNjYWxlKTtsb3QuTW9kaWZpZWRMb2c9YkZlfSk7dmFyIGMkdD1IKGNvdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoY290LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgd0ZlPShkZSgpLFV0KHBlKSksX2E9KEVyKCksVXQoTXIpKSxSdj1IRigpLFNGZT14ZCgpLE1GZT1mdW5jdGlvbihlKXt3RmUuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdCgpe3ZhciByPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gci5fZDNTY2FsZT1fYS5zY2FsZVRpbWUoKSxyLmF1dG9Eb21haW4oKSxyfXJldHVybiB0LnByb3RvdHlwZS50aWNrSW50ZXJ2YWw9ZnVuY3Rpb24ocixuLGkpe249PT12b2lkIDAmJihuPTEpLGk9PT12b2lkIDAmJihpPSExKTt2YXIgbz1fYS5zY2FsZVRpbWUoKSxhPXQudGltZUludGVydmFsVG9EM1RpbWUocixpKS5ldmVyeShuKTtyZXR1cm4gby5kb21haW4odGhpcy5kb21haW4oKSksby5yYW5nZSh0aGlzLnJhbmdlKCkpLG8udGlja3MoYSl9LHQucHJvdG90eXBlLl9zZXREb21haW49ZnVuY3Rpb24ocil7aWYoclsxXTxyWzBdKXRocm93IG5ldyBFcnJvcigiU2NhbGUuVGltZSBkb21haW4gdmFsdWVzIG11c3QgYmUgaW4gY2hyb25vbG9naWNhbCBvcmRlciIpO3JldHVybiBlLnByb3RvdHlwZS5fc2V0RG9tYWluLmNhbGwodGhpcyxyKX0sdC5wcm90b3R5cGUuX2RlZmF1bHRFeHRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm5bbmV3IERhdGUoIjE5NzAtMDEtMDEiKSxuZXcgRGF0ZSgiMTk3MC0wMS0wMiIpXX0sdC5wcm90b3R5cGUuX2V4cGFuZFNpbmdsZVZhbHVlRG9tYWluPWZ1bmN0aW9uKHIpe3ZhciBuPXJbMF0uZ2V0VGltZSgpLGk9clsxXS5nZXRUaW1lKCk7aWYobj09PWkpe3ZhciBvPW5ldyBEYXRlKG4pO28uc2V0RGF0ZShvLmdldERhdGUoKS0xKTt2YXIgYT1uZXcgRGF0ZShpKTtyZXR1cm4gYS5zZXREYXRlKGEuZ2V0RGF0ZSgpKzEpLFtvLGFdfXJldHVybiByfSx0LnByb3RvdHlwZS5zY2FsZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fZDNTY2FsZShyKX0sdC5wcm90b3R5cGUuc2NhbGVUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5zY2FsZShuZXcgRGF0ZShyKSl9LHQucHJvdG90eXBlLmludmVydGVkVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuaW52ZXJ0KHIpLmdldFRpbWUoKX0sdC5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtYXRpb25FeHRlbnQ9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLl9nZXRVbmJvdW5kZWRFeHRlbnQoITApO3JldHVybltyWzBdLnZhbHVlT2YoKSxyWzFdLnZhbHVlT2YoKV19LHQucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5kb21haW4oKTtyZXR1cm5bclswXS52YWx1ZU9mKCksclsxXS52YWx1ZU9mKCldfSx0LnByb3RvdHlwZS5zZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbj1mdW5jdGlvbihyKXt2YXIgbj1yWzBdLGk9clsxXTt0aGlzLmRvbWFpbihbbmV3IERhdGUobiksbmV3IERhdGUoaSldKX0sdC5wcm90b3R5cGUuX2dldERvbWFpbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9iYWNraW5nU2NhbGVEb21haW4oKX0sdC5wcm90b3R5cGUuX2JhY2tpbmdTY2FsZURvbWFpbj1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9kM1NjYWxlLmRvbWFpbigpOih0aGlzLl9kM1NjYWxlLmRvbWFpbihyKSx0aGlzKX0sdC5wcm90b3R5cGUuX2dldFJhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUucmFuZ2UoKX0sdC5wcm90b3R5cGUuX3NldFJhbmdlPWZ1bmN0aW9uKHIpe3RoaXMuX2QzU2NhbGUucmFuZ2Uocil9LHQucHJvdG90eXBlLmludmVydD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fZDNTY2FsZS5pbnZlcnQocil9LHQucHJvdG90eXBlLmRlZmF1bHRUaWNrcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kM1NjYWxlLnRpY2tzKHQuX0RFRkFVTFRfTlVNX1RJQ0tTKX0sdC5wcm90b3R5cGUuX25pY2VEb21haW49ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX2QzU2NhbGUuY29weSgpLmRvbWFpbihyKS5uaWNlKCkuZG9tYWluKCl9LHQudGltZUludGVydmFsVG9EM1RpbWU9ZnVuY3Rpb24ocixuKXtzd2l0Y2gocil7Y2FzZSBSdi5UaW1lSW50ZXJ2YWwuc2Vjb25kOnJldHVybiBuP19hLnV0Y1NlY29uZDpfYS50aW1lU2Vjb25kO2Nhc2UgUnYuVGltZUludGVydmFsLm1pbnV0ZTpyZXR1cm4gbj9fYS51dGNNaW51dGU6X2EudGltZU1pbnV0ZTtjYXNlIFJ2LlRpbWVJbnRlcnZhbC5ob3VyOnJldHVybiBuP19hLnV0Y0hvdXI6X2EudGltZUhvdXI7Y2FzZSBSdi5UaW1lSW50ZXJ2YWwuZGF5OnJldHVybiBuP19hLnV0Y0RheTpfYS50aW1lRGF5O2Nhc2UgUnYuVGltZUludGVydmFsLndlZWs6cmV0dXJuIG4/X2EudXRjV2VlazpfYS50aW1lV2VlaztjYXNlIFJ2LlRpbWVJbnRlcnZhbC5tb250aDpyZXR1cm4gbj9fYS51dGNNb250aDpfYS50aW1lTW9udGg7Y2FzZSBSdi5UaW1lSW50ZXJ2YWwueWVhcjpyZXR1cm4gbj9fYS51dGNZZWFyOl9hLnRpbWVZZWFyO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlRpbWVJbnRlcnZhbCBzcGVjaWZpZWQgZG9lcyBub3QgZXhpc3Q6ICIrcil9fSx0fShTRmUuUXVhbnRpdGF0aXZlU2NhbGUpO2NvdC5UaW1lPU1GZX0pO3ZhciBScz1IKEh1PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShIdSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIE52PShkZSgpLFV0KHBlKSksRUZlPVpYdCgpO0h1LlRpY2tHZW5lcmF0b3JzPUVGZTtOdi5fX2V4cG9ydFN0YXIoZW90KCksSHUpO052Ll9fZXhwb3J0U3RhcihuJHQoKSxIdSk7TnYuX19leHBvcnRTdGFyKG8kdCgpLEh1KTtOdi5fX2V4cG9ydFN0YXIoYSR0KCksSHUpO052Ll9fZXhwb3J0U3RhcihzJHQoKSxIdSk7TnYuX19leHBvcnRTdGFyKGwkdCgpLEh1KTtOdi5fX2V4cG9ydFN0YXIoYyR0KCksSHUpO3ZhciBURmU9ZW90KCksQ0ZlPXhkKCk7ZnVuY3Rpb24gQUZlKGUpe3JldHVybiBlIGluc3RhbmNlb2YgQ0ZlLlF1YW50aXRhdGl2ZVNjYWxlfHxlIGluc3RhbmNlb2YgVEZlLkNhdGVnb3J5fUh1LmlzVHJhbnNmb3JtYWJsZT1BRmV9KTt2YXIgSEY9SChTZT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoU2UsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBQRmU9KGRlKCksVXQocGUpKSxWdT0oRXIoKSxVdChNcikpLHUkdD15bCgpLGgkdD1CdSgpLElGZT1ScygpLG40PUZlKCksdW90PUxmKCksZXM9dDQoKTtTZS5UaW1lSW50ZXJ2YWw9dW90Lm1ha2VFbnVtKFsic2Vjb25kIiwibWludXRlIiwiaG91ciIsImRheSIsIndlZWsiLCJtb250aCIsInllYXIiXSk7U2UuVGltZUF4aXNPcmllbnRhdGlvbj11b3QubWFrZUVudW0oWyJ0b3AiLCJib3R0b20iXSk7U2UuVGllckxhYmVsUG9zaXRpb249dW90Lm1ha2VFbnVtKFsiYmV0d2VlbiIsImNlbnRlciJdKTt2YXIgTEZlPWZ1bmN0aW9uKGUpe1BGZS5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KHIsbixpKXt2YXIgbz1lLmNhbGwodGhpcyxyLG4pfHx0aGlzO3JldHVybiBvLl9tYXhUaW1lSW50ZXJ2YWxQcmVjaXNpb249bnVsbCxvLl90aWVyTGFiZWxQb3NpdGlvbnM9W10sby5fdXNlVVRDPWksby5hZGRDbGFzcygidGltZS1heGlzIiksby50aWNrTGFiZWxQYWRkaW5nKDUpLG8uYXhpc0NvbmZpZ3VyYXRpb25zKHQuX0RFRkFVTFRfVElNRV9BWElTX0NPTkZJR1VSQVRJT05TKG8uX3VzZVVUQykpLG8uYW5ub3RhdGlvbkZvcm1hdHRlcihoJHQudGltZSgiJWEgJWIgJWQsICVZIixvLl91c2VVVEMpKSxvfXJldHVybiB0LnByb3RvdHlwZS50aWVyTGFiZWxQb3NpdGlvbnM9ZnVuY3Rpb24ocil7aWYocj09bnVsbClyZXR1cm4gdGhpcy5fdGllckxhYmVsUG9zaXRpb25zO2lmKCFyLmV2ZXJ5KGZ1bmN0aW9uKG4pe3JldHVybiBuLnRvTG93ZXJDYXNlKCk9PT0iYmV0d2VlbiJ8fG4udG9Mb3dlckNhc2UoKT09PSJjZW50ZXIifSkpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBwb3NpdGlvbiBmb3IgdGllciBsYWJlbHMiKTtyZXR1cm4gdGhpcy5fdGllckxhYmVsUG9zaXRpb25zPXIsdGhpcy5yZWRyYXcoKSx0aGlzfSx0LnByb3RvdHlwZS5tYXhUaW1lSW50ZXJ2YWxQcmVjaXNpb249ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5fbWF4VGltZUludGVydmFsUHJlY2lzaW9uOih0aGlzLl9tYXhUaW1lSW50ZXJ2YWxQcmVjaXNpb249cix0aGlzLnJlZHJhdygpLHRoaXMpfSx0LnByb3RvdHlwZS5jdXJyZW50QXhpc0NvbmZpZ3VyYXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcG9zc2libGVUaW1lQXhpc0NvbmZpZ3VyYXRpb25zW3RoaXMuX21vc3RQcmVjaXNlQ29uZmlnSW5kZXhdfSx0LnByb3RvdHlwZS5heGlzQ29uZmlndXJhdGlvbnM9ZnVuY3Rpb24ocil7aWYocj09bnVsbClyZXR1cm4gdGhpcy5fcG9zc2libGVUaW1lQXhpc0NvbmZpZ3VyYXRpb25zO3RoaXMuX3Bvc3NpYmxlVGltZUF4aXNDb25maWd1cmF0aW9ucz1yLHRoaXMuX251bVRpZXJzPW40Lk1hdGgubWF4KHRoaXMuX3Bvc3NpYmxlVGltZUF4aXNDb25maWd1cmF0aW9ucy5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEubGVuZ3RofSksMCksdGhpcy5faXNBbmNob3JlZCYmdGhpcy5fc2V0dXBEb21FbGVtZW50cygpO2Zvcih2YXIgbj10aGlzLnRpZXJMYWJlbFBvc2l0aW9ucygpLGk9W10sbz0wO288dGhpcy5fbnVtVGllcnM7bysrKWkucHVzaChuW29dfHwiYmV0d2VlbiIpO3JldHVybiB0aGlzLnRpZXJMYWJlbFBvc2l0aW9ucyhpKSx0aGlzLnJlZHJhdygpLHRoaXN9LHQucHJvdG90eXBlLl9nZXRNb3N0UHJlY2lzZUNvbmZpZ3VyYXRpb25JbmRleD1mdW5jdGlvbigpe3ZhciByPXRoaXMsbj10aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnMubGVuZ3RoO3JldHVybiB0aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnMuZm9yRWFjaChmdW5jdGlvbihpLG8pe288biYmaS5ldmVyeShmdW5jdGlvbihhKXtyZXR1cm4gci5fY2hlY2tUaW1lQXhpc1RpZXJDb25maWd1cmF0aW9uKGEpfSkmJihuPW8pfSksbj09PXRoaXMuX3Bvc3NpYmxlVGltZUF4aXNDb25maWd1cmF0aW9ucy5sZW5ndGgmJihuNC5XaW5kb3cud2Fybigiem9vbWVkIG91dCB0b28gZmFyOiBjb3VsZCBub3QgZmluZCBzdWl0YWJsZSBpbnRlcnZhbCB0byBkaXNwbGF5IGxhYmVscyIpLC0tbiksbn0sdC5wcm90b3R5cGUub3JpZW50YXRpb249ZnVuY3Rpb24ocil7aWYociYmKHIudG9Mb3dlckNhc2UoKT09PSJyaWdodCJ8fHIudG9Mb3dlckNhc2UoKT09PSJsZWZ0IikpdGhyb3cgbmV3IEVycm9yKHIrIiBpcyBub3QgYSBzdXBwb3J0ZWQgb3JpZW50YXRpb24gZm9yIFRpbWVBeGlzIC0gb25seSBob3Jpem9udGFsIG9yaWVudGF0aW9ucyBhcmUgc3VwcG9ydGVkIik7cmV0dXJuIGUucHJvdG90eXBlLm9yaWVudGF0aW9uLmNhbGwodGhpcyxyKX0sdC5wcm90b3R5cGUuX2NvbXB1dGVIZWlnaHQ9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLl9tZWFzdXJlci5tZWFzdXJlKCkuaGVpZ2h0O3RoaXMuX3RpZXJIZWlnaHRzPVtdO2Zvcih2YXIgbj0wO248dGhpcy5fbnVtVGllcnM7bisrKXRoaXMuX3RpZXJIZWlnaHRzLnB1c2gocit0aGlzLnRpY2tMYWJlbFBhZGRpbmcoKSsodGhpcy5fdGllckxhYmVsUG9zaXRpb25zW25dPT09ImJldHdlZW4iPzA6dGhpcy5fbWF4TGFiZWxUaWNrTGVuZ3RoKCkpKTtyZXR1cm4gVnUuc3VtKHRoaXMuX3RpZXJIZWlnaHRzKX0sdC5wcm90b3R5cGUuX2dldEludGVydmFsTGVuZ3RoPWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXMuX3NjYWxlLmRvbWFpbigpWzBdLGk9SUZlLlRpbWUudGltZUludGVydmFsVG9EM1RpbWUoci5pbnRlcnZhbCx0aGlzLl91c2VVVEMpLG89aS5vZmZzZXQobixyLnN0ZXApO2lmKG8+dGhpcy5fc2NhbGUuZG9tYWluKClbMV0pcmV0dXJuIHRoaXMud2lkdGgoKTt2YXIgYT1NYXRoLmFicyh0aGlzLl9zY2FsZS5zY2FsZShvKS10aGlzLl9zY2FsZS5zY2FsZShuKSk7cmV0dXJuIGF9LHQucHJvdG90eXBlLl9tYXhXaWR0aEZvckludGVydmFsPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9tZWFzdXJlci5tZWFzdXJlKHIuZm9ybWF0dGVyKHQuX0xPTkdfREFURSkpLndpZHRofSx0LnByb3RvdHlwZS5fY2hlY2tUaW1lQXhpc1RpZXJDb25maWd1cmF0aW9uPWZ1bmN0aW9uKHIpe2lmKHRoaXMuX21heFRpbWVJbnRlcnZhbFByZWNpc2lvbiE9bnVsbCl7dmFyIG49dC5fU09SVEVEX1RJTUVfSU5URVJWQUxfSU5ERVhbdGhpcy5fbWF4VGltZUludGVydmFsUHJlY2lzaW9uXSxpPXQuX1NPUlRFRF9USU1FX0lOVEVSVkFMX0lOREVYW3IuaW50ZXJ2YWxdO2lmKG4hPW51bGwmJmkhPW51bGwmJmk8bilyZXR1cm4hMX12YXIgbz10aGlzLl9tYXhXaWR0aEZvckludGVydmFsKHIpKzIqdGhpcy50aWNrTGFiZWxQYWRkaW5nKCk7cmV0dXJuIE1hdGgubWluKHRoaXMuX2dldEludGVydmFsTGVuZ3RoKHIpLHRoaXMud2lkdGgoKSk+PW99LHQucHJvdG90eXBlLl9zaXplRnJvbU9mZmVyPWZ1bmN0aW9uKHIsbil7dmFyIGk9ZS5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXIuY2FsbCh0aGlzLHIsbiksbz10aGlzLl90aWVySGVpZ2h0cy5yZWR1Y2UoZnVuY3Rpb24ocyxsLGMsdSl7cmV0dXJuIHMrbD5pLmhlaWdodD9zOnMrbH0pLGE9dGhpcy5tYXJnaW4oKSsodGhpcy5hbm5vdGF0aW9uc0VuYWJsZWQoKT90aGlzLmFubm90YXRpb25UaWVyQ291bnQoKSp0aGlzLl9hbm5vdGF0aW9uVGllckhlaWdodCgpOjApO3JldHVybiBpLmhlaWdodD1NYXRoLm1pbihpLmhlaWdodCxvK2EpLGl9LHQucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe2UucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLHRoaXMuX3NldHVwRG9tRWxlbWVudHMoKX0sdC5wcm90b3R5cGUuX3NldHVwRG9tRWxlbWVudHM9ZnVuY3Rpb24oKXt0aGlzLmNvbnRlbnQoKS5zZWxlY3RBbGwoIi4iK3QuVElNRV9BWElTX1RJRVJfQ0xBU1MpLnJlbW92ZSgpLHRoaXMuX3RpZXJMYWJlbENvbnRhaW5lcnM9W10sdGhpcy5fdGllck1hcmtDb250YWluZXJzPVtdLHRoaXMuX3RpZXJCYXNlbGluZXM9W10sdGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLnJlbW92ZSgpLHRoaXMuX2Jhc2VsaW5lLnJlbW92ZSgpO2Zvcih2YXIgcj0wO3I8dGhpcy5fbnVtVGllcnM7KytyKXt2YXIgbj10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKHQuVElNRV9BWElTX1RJRVJfQ0xBU1MsITApO3RoaXMuX3RpZXJMYWJlbENvbnRhaW5lcnMucHVzaChuLmFwcGVuZCgiZyIpLmNsYXNzZWQoZXMuQXhpcy5USUNLX0xBQkVMX0NMQVNTKyItY29udGFpbmVyIiwhMCkpLHRoaXMuX3RpZXJNYXJrQ29udGFpbmVycy5wdXNoKG4uYXBwZW5kKCJnIikuY2xhc3NlZChlcy5BeGlzLlRJQ0tfTUFSS19DTEFTUysiLWNvbnRhaW5lciIsITApKSx0aGlzLl90aWVyQmFzZWxpbmVzLnB1c2gobi5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKCJiYXNlbGluZSIsITApKX12YXIgaT1uZXcgdSR0LlN2Z0NvbnRleHQodGhpcy5fdGllckxhYmVsQ29udGFpbmVyc1swXS5ub2RlKCkpO3RoaXMuX21lYXN1cmVyPW5ldyB1JHQuQ2FjaGVNZWFzdXJlcihpKX0sdC5wcm90b3R5cGUuX2dldFRpY2tJbnRlcnZhbFZhbHVlcz1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fc2NhbGUudGlja0ludGVydmFsKHIuaW50ZXJ2YWwsci5zdGVwLHRoaXMuX3VzZVVUQyl9LHQucHJvdG90eXBlLl9nZXRUaWNrVmFsdWVzPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcztyZXR1cm4gdGhpcy5fcG9zc2libGVUaW1lQXhpc0NvbmZpZ3VyYXRpb25zW3RoaXMuX21vc3RQcmVjaXNlQ29uZmlnSW5kZXhdLnJlZHVjZShmdW5jdGlvbihuLGkpe3JldHVybiBuLmNvbmNhdChyLl9nZXRUaWNrSW50ZXJ2YWxWYWx1ZXMoaSkpfSxbXSl9LHQucHJvdG90eXBlLl9jbGVhblRpZXJzPWZ1bmN0aW9uKCl7Zm9yKHZhciByPTA7cjx0aGlzLl90aWVyTGFiZWxDb250YWluZXJzLmxlbmd0aDtyKyspdGhpcy5fdGllckxhYmVsQ29udGFpbmVyc1tyXS5zZWxlY3RBbGwoIi4iK2VzLkF4aXMuVElDS19MQUJFTF9DTEFTUykucmVtb3ZlKCksdGhpcy5fdGllck1hcmtDb250YWluZXJzW3JdLnNlbGVjdEFsbCgiLiIrZXMuQXhpcy5USUNLX01BUktfQ0xBU1MpLnJlbW92ZSgpLHRoaXMuX3RpZXJCYXNlbGluZXNbcl0uc3R5bGUoInZpc2liaWxpdHkiLCJoaWRkZW4iKX0sdC5wcm90b3R5cGUuX2dldFRpY2tWYWx1ZXNGb3JDb25maWd1cmF0aW9uPWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXMuX3NjYWxlLnRpY2tJbnRlcnZhbChyLmludGVydmFsLHIuc3RlcCx0aGlzLl91c2VVVEMpLGk9dGhpcy5fc2NhbGUuZG9tYWluKCksbz1uLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS52YWx1ZU9mKCl9KTtyZXR1cm4gby5pbmRleE9mKGlbMF0udmFsdWVPZigpKT09PS0xJiZuLnVuc2hpZnQoaVswXSksby5pbmRleE9mKGlbMV0udmFsdWVPZigpKT09PS0xJiZuLnB1c2goaVsxXSksbn0sdC5wcm90b3R5cGUuX3JlbmRlclRpZXJMYWJlbHM9ZnVuY3Rpb24ocixuLGkpe3ZhciBvPXRoaXMsYT10aGlzLl9nZXRUaWNrVmFsdWVzRm9yQ29uZmlndXJhdGlvbihuKSxzPVtdO3RoaXMuX3RpZXJMYWJlbFBvc2l0aW9uc1tpXT09PSJiZXR3ZWVuIiYmbi5zdGVwPT09MT9hLm1hcChmdW5jdGlvbihnLF8pe18rMT49YS5sZW5ndGh8fHMucHVzaChuZXcgRGF0ZSgoYVtfKzFdLnZhbHVlT2YoKS1hW19dLnZhbHVlT2YoKSkvMithW19dLnZhbHVlT2YoKSkpfSk6cz1hO3ZhciBsPXIuc2VsZWN0QWxsKCIuIitlcy5BeGlzLlRJQ0tfTEFCRUxfQ0xBU1MpLmRhdGEocyxmdW5jdGlvbihnKXtyZXR1cm4gU3RyaW5nKGcudmFsdWVPZigpKX0pLGM9bC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoZXMuQXhpcy5USUNLX0xBQkVMX0NMQVNTLCEwKTtjLmFwcGVuZCgidGV4dCIpO3ZhciB1PXRoaXMuX3RpZXJMYWJlbFBvc2l0aW9uc1tpXT09PSJjZW50ZXIifHxuLnN0ZXA9PT0xPzA6dGhpcy50aWNrTGFiZWxQYWRkaW5nKCksaDt0aGlzLm9yaWVudGF0aW9uKCk9PT0iYm90dG9tIj9oPVZ1LnN1bSh0aGlzLl90aWVySGVpZ2h0cy5zbGljZSgwLGkrMSkpLXRoaXMudGlja0xhYmVsUGFkZGluZygpOnRoaXMuX3RpZXJMYWJlbFBvc2l0aW9uc1tpXT09PSJjZW50ZXIiP2g9dGhpcy5oZWlnaHQoKS1WdS5zdW0odGhpcy5fdGllckhlaWdodHMuc2xpY2UoMCxpKSktdGhpcy50aWNrTGFiZWxQYWRkaW5nKCktdGhpcy5fbWF4TGFiZWxUaWNrTGVuZ3RoKCk6aD10aGlzLmhlaWdodCgpLVZ1LnN1bSh0aGlzLl90aWVySGVpZ2h0cy5zbGljZSgwLGkpKS10aGlzLnRpY2tMYWJlbFBhZGRpbmcoKTt2YXIgZj1sLm1lcmdlKGMpLHA9Zi5zZWxlY3RBbGwoInRleHQiKTtwLnNpemUoKT4wJiZwLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK3UrIiwiK2grIikiKSxsLmV4aXQoKS5yZW1vdmUoKSxmLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24oZyl7cmV0dXJuInRyYW5zbGF0ZSgiK28uX3NjYWxlLnNjYWxlKGcpKyIsMCkifSk7dmFyIGQ9dGhpcy5fdGllckxhYmVsUG9zaXRpb25zW2ldPT09ImNlbnRlciJ8fG4uc3RlcD09PTE/Im1pZGRsZSI6InN0YXJ0IjtmLnNlbGVjdEFsbCgidGV4dCIpLnRleHQobi5mb3JtYXR0ZXIpLnN0eWxlKCJ0ZXh0LWFuY2hvciIsZCl9LHQucHJvdG90eXBlLl9yZW5kZXJUaWNrTWFya3M9ZnVuY3Rpb24ocixuKXt2YXIgaT10aGlzLl90aWVyTWFya0NvbnRhaW5lcnNbbl0uc2VsZWN0QWxsKCIuIitlcy5BeGlzLlRJQ0tfTUFSS19DTEFTUykuZGF0YShyKSxvPWkuZW50ZXIoKS5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKGVzLkF4aXMuVElDS19NQVJLX0NMQVNTLCEwKS5tZXJnZShpKSxhPXRoaXMuX2dlbmVyYXRlVGlja01hcmtBdHRySGFzaCgpLHM9dGhpcy5fdGllckhlaWdodHMuc2xpY2UoMCxuKS5yZWR1Y2UoZnVuY3Rpb24obCxjKXtyZXR1cm4gbCtjfSwwKTt0aGlzLm9yaWVudGF0aW9uKCk9PT0iYm90dG9tIj8oYS55MT1zLGEueTI9cysodGhpcy5fdGllckxhYmVsUG9zaXRpb25zW25dPT09ImNlbnRlciI/dGhpcy5pbm5lclRpY2tMZW5ndGgoKTp0aGlzLl90aWVySGVpZ2h0c1tuXSkpOihhLnkxPXRoaXMuaGVpZ2h0KCktcyxhLnkyPXRoaXMuaGVpZ2h0KCktKHMrKHRoaXMuX3RpZXJMYWJlbFBvc2l0aW9uc1tuXT09PSJjZW50ZXIiP3RoaXMuaW5uZXJUaWNrTGVuZ3RoKCk6dGhpcy5fdGllckhlaWdodHNbbl0pKSksby5hdHRycyhhKSx0aGlzLm9yaWVudGF0aW9uKCk9PT0iYm90dG9tIj8oYS55MT1zLGEueTI9cysodGhpcy5fdGllckxhYmVsUG9zaXRpb25zW25dPT09ImNlbnRlciI/dGhpcy5lbmRUaWNrTGVuZ3RoKCk6dGhpcy5fdGllckhlaWdodHNbbl0pKTooYS55MT10aGlzLmhlaWdodCgpLXMsYS55Mj10aGlzLmhlaWdodCgpLShzKyh0aGlzLl90aWVyTGFiZWxQb3NpdGlvbnNbbl09PT0iY2VudGVyIj90aGlzLmVuZFRpY2tMZW5ndGgoKTp0aGlzLl90aWVySGVpZ2h0c1tuXSkpKSxWdS5zZWxlY3Qoby5ub2RlcygpWzBdKS5hdHRycyhhKSxWdS5zZWxlY3Qoby5ub2RlcygpW28uc2l6ZSgpLTFdKS5hdHRycyhhKSxWdS5zZWxlY3Qoby5ub2RlcygpWzBdKS5jbGFzc2VkKGVzLkF4aXMuRU5EX1RJQ0tfTUFSS19DTEFTUywhMCksVnUuc2VsZWN0KG8ubm9kZXMoKVtvLnNpemUoKS0xXSkuY2xhc3NlZChlcy5BeGlzLkVORF9USUNLX01BUktfQ0xBU1MsITApLGkuZXhpdCgpLnJlbW92ZSgpfSx0LnByb3RvdHlwZS5fcmVuZGVyTGFiZWxsZXNzVGlja01hcmtzPWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXMuX3RpY2tNYXJrQ29udGFpbmVyLnNlbGVjdEFsbCgiLiIrZXMuQXhpcy5USUNLX01BUktfQ0xBU1MpLmRhdGEociksaT1uLmVudGVyKCkuYXBwZW5kKCJsaW5lIikuY2xhc3NlZChlcy5BeGlzLlRJQ0tfTUFSS19DTEFTUywhMCkubWVyZ2Uobiksbz10aGlzLl9nZW5lcmF0ZVRpY2tNYXJrQXR0ckhhc2goKTtvLnkyPXRoaXMub3JpZW50YXRpb24oKT09PSJib3R0b20iP3RoaXMudGlja0xhYmVsUGFkZGluZygpOnRoaXMuaGVpZ2h0KCktdGhpcy50aWNrTGFiZWxQYWRkaW5nKCksaS5hdHRycyhvKSxuLmV4aXQoKS5yZW1vdmUoKX0sdC5wcm90b3R5cGUuX2dlbmVyYXRlTGFiZWxsZXNzVGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbW9zdFByZWNpc2VDb25maWdJbmRleDwxP1tdOnRoaXMuX2dldFRpY2tJbnRlcnZhbFZhbHVlcyh0aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnNbdGhpcy5fbW9zdFByZWNpc2VDb25maWdJbmRleC0xXVswXSl9LHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7dmFyIHI9dGhpczt0aGlzLl9tb3N0UHJlY2lzZUNvbmZpZ0luZGV4PXRoaXMuX2dldE1vc3RQcmVjaXNlQ29uZmlndXJhdGlvbkluZGV4KCk7dmFyIG49dGhpcy5fcG9zc2libGVUaW1lQXhpc0NvbmZpZ3VyYXRpb25zW3RoaXMuX21vc3RQcmVjaXNlQ29uZmlnSW5kZXhdO3RoaXMuX2NsZWFuVGllcnMoKSxuLmZvckVhY2goZnVuY3Rpb24oaCxmKXtyZXR1cm4gci5fcmVuZGVyVGllckxhYmVscyhyLl90aWVyTGFiZWxDb250YWluZXJzW2ZdLGgsZil9KTtmb3IodmFyIGk9bi5tYXAoZnVuY3Rpb24oaCxmKXtyZXR1cm4gci5fZ2V0VGlja1ZhbHVlc0ZvckNvbmZpZ3VyYXRpb24oaCl9KSxvPTAsYT0wO2E8TWF0aC5tYXgobi5sZW5ndGgsMSk7KythKXt2YXIgcz10aGlzLl9nZW5lcmF0ZUJhc2VsaW5lQXR0ckhhc2goKTtzLnkxKz10aGlzLm9yaWVudGF0aW9uKCk9PT0iYm90dG9tIj9vOi1vLHMueTI9cy55MSx0aGlzLl90aWVyQmFzZWxpbmVzW2FdLmF0dHJzKHMpLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaW5oZXJpdCIpLG8rPXRoaXMuX3RpZXJIZWlnaHRzW2FdfXZhciBsPVtdLGM9dGhpcy5fc2NhbGUuZG9tYWluKCksdT10aGlzLl9zY2FsZS5zY2FsZShjWzFdKS10aGlzLl9zY2FsZS5zY2FsZShjWzBdKTt0aGlzLl9nZXRJbnRlcnZhbExlbmd0aChuWzBdKSoxLjU+PXUmJihsPXRoaXMuX2dlbmVyYXRlTGFiZWxsZXNzVGlja3MoKSksdGhpcy5fcmVuZGVyTGFiZWxsZXNzVGlja01hcmtzKGwpLHRoaXMuX2hpZGVPdmVyZmxvd2luZ1RpZXJzKCk7Zm9yKHZhciBhPTA7YTxuLmxlbmd0aDsrK2EpdGhpcy5fcmVuZGVyVGlja01hcmtzKGlbYV0sYSksdGhpcy5faGlkZU92ZXJsYXBwaW5nQW5kQ3V0T2ZmTGFiZWxzKGEpO3JldHVybiB0aGlzLmFubm90YXRpb25zRW5hYmxlZCgpP3RoaXMuX2RyYXdBbm5vdGF0aW9ucygpOnRoaXMuX3JlbW92ZUFubm90YXRpb25zKCksdGhpc30sdC5wcm90b3R5cGUuX2hpZGVPdmVyZmxvd2luZ1RpZXJzPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxuPXRoaXMuaGVpZ2h0KCksaT0wO3RoaXMuY29udGVudCgpLnNlbGVjdEFsbCgiLiIrdC5USU1FX0FYSVNfVElFUl9DTEFTUykuYXR0cigidmlzaWJpbGl0eSIsZnVuY3Rpb24obyxhKXtyZXR1cm4gaSs9ci5fdGllckhlaWdodHNbYV0saTw9bj8iaW5oZXJpdCI6ImhpZGRlbiJ9KX0sdC5wcm90b3R5cGUuX2hpZGVPdmVybGFwcGluZ0FuZEN1dE9mZkxhYmVscz1mdW5jdGlvbihyKXt2YXIgbj10aGlzLGk9dGhpcy5lbGVtZW50KCkubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89ZnVuY3Rpb24odSl7cmV0dXJuIE1hdGguZmxvb3IoaS5sZWZ0KTw9TWF0aC5jZWlsKHUubGVmdCkmJk1hdGguZmxvb3IoaS50b3ApPD1NYXRoLmNlaWwodS50b3ApJiZNYXRoLmZsb29yKHUucmlnaHQpPD1NYXRoLmNlaWwoaS5sZWZ0K24ud2lkdGgoKSkmJk1hdGguZmxvb3IodS5ib3R0b20pPD1NYXRoLmNlaWwoaS50b3Arbi5oZWlnaHQoKSl9LGE9dGhpcy5fdGllck1hcmtDb250YWluZXJzW3JdLnNlbGVjdEFsbCgiLiIrZXMuQXhpcy5USUNLX01BUktfQ0xBU1MpLmZpbHRlcihmdW5jdGlvbih1LGgpe3ZhciBmPVZ1LnNlbGVjdCh0aGlzKS5zdHlsZSgidmlzaWJpbGl0eSIpO3JldHVybiBmPT09InZpc2libGUifHxmPT09ImluaGVyaXQifSkscz1hLm5vZGVzKCkubWFwKGZ1bmN0aW9uKHUpe3JldHVybiB1LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfSksbD10aGlzLl90aWVyTGFiZWxDb250YWluZXJzW3JdLnNlbGVjdEFsbCgiLiIrZXMuQXhpcy5USUNLX0xBQkVMX0NMQVNTKS5maWx0ZXIoZnVuY3Rpb24odSxoKXt2YXIgZj1WdS5zZWxlY3QodGhpcykuc3R5bGUoInZpc2liaWxpdHkiKTtyZXR1cm4gZj09PSJ2aXNpYmxlInx8Zj09PSJpbmhlcml0In0pLGM7bC5lYWNoKGZ1bmN0aW9uKHUsaCl7dmFyIGY9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxwPVZ1LnNlbGVjdCh0aGlzKSxkPXNbaF0sZz1zW2grMV0sXz1jIT1udWxsJiZuNC5ET00uY2xpZW50UmVjdHNPdmVybGFwKGYsYykseT1kIT1udWxsJiZuNC5ET00uY2xpZW50UmVjdHNPdmVybGFwKGYsZCkseD1nIT1udWxsJiZuNC5ET00uY2xpZW50UmVjdHNPdmVybGFwKGYsZyk7IW8oZil8fF98fHl8fHg/cC5zdHlsZSgidmlzaWJpbGl0eSIsImhpZGRlbiIpOihjPWYscC5zdHlsZSgidmlzaWJpbGl0eSIsImluaGVyaXQiKSl9KX0sdC5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7ZS5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlLmNhbGwodGhpcyksdGhpcy5fbWVhc3VyZXIucmVzZXQoKX0sdC5USU1FX0FYSVNfVElFUl9DTEFTUz0idGltZS1heGlzLXRpZXIiLHQuX1NPUlRFRF9USU1FX0lOVEVSVkFMX0lOREVYPShiZD17fSxiZFtTZS5UaW1lSW50ZXJ2YWwuc2Vjb25kXT0wLGJkW1NlLlRpbWVJbnRlcnZhbC5taW51dGVdPTEsYmRbU2UuVGltZUludGVydmFsLmhvdXJdPTIsYmRbU2UuVGltZUludGVydmFsLmRheV09MyxiZFtTZS5UaW1lSW50ZXJ2YWwud2Vla109NCxiZFtTZS5UaW1lSW50ZXJ2YWwubW9udGhdPTUsYmRbU2UuVGltZUludGVydmFsLnllYXJdPTYsYmQpLHQuX0RFRkFVTFRfVElNRV9BWElTX0NPTkZJR1VSQVRJT05TPWZ1bmN0aW9uKHIpe3ZhciBuPWZ1bmN0aW9uKGkpe3JldHVybiBoJHQudGltZShpLHIpfTtyZXR1cm5bW3tpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwuc2Vjb25kLHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUk6JU06JVMgJXAiKX0se2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6U2UuVGltZUludGVydmFsLnNlY29uZCxzdGVwOjUsZm9ybWF0dGVyOm4oIiVJOiVNOiVTICVwIil9LHtpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIgJWUsICVZIil9XSxbe2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC5zZWNvbmQsc3RlcDoxMCxmb3JtYXR0ZXI6bigiJUk6JU06JVMgJXAiKX0se2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6U2UuVGltZUludGVydmFsLnNlY29uZCxzdGVwOjE1LGZvcm1hdHRlcjpuKCIlSTolTTolUyAlcCIpfSx7aW50ZXJ2YWw6U2UuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVlLCAlWSIpfV0sW3tpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwuc2Vjb25kLHN0ZXA6MzAsZm9ybWF0dGVyOm4oIiVJOiVNOiVTICVwIil9LHtpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIgJWUsICVZIil9XSxbe2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC5taW51dGUsc3RlcDoxLGZvcm1hdHRlcjpuKCIlSTolTSAlcCIpfSx7aW50ZXJ2YWw6U2UuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVlLCAlWSIpfV0sW3tpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwubWludXRlLHN0ZXA6NSxmb3JtYXR0ZXI6bigiJUk6JU0gJXAiKX0se2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6U2UuVGltZUludGVydmFsLm1pbnV0ZSxzdGVwOjEwLGZvcm1hdHRlcjpuKCIlSTolTSAlcCIpfSx7aW50ZXJ2YWw6U2UuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVlLCAlWSIpfV0sW3tpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwubWludXRlLHN0ZXA6MTUsZm9ybWF0dGVyOm4oIiVJOiVNICVwIil9LHtpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIgJWUsICVZIil9XSxbe2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC5taW51dGUsc3RlcDozMCxmb3JtYXR0ZXI6bigiJUk6JU0gJXAiKX0se2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6U2UuVGltZUludGVydmFsLmhvdXIsc3RlcDoxLGZvcm1hdHRlcjpuKCIlSSAlcCIpfSx7aW50ZXJ2YWw6U2UuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVlLCAlWSIpfV0sW3tpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwuaG91cixzdGVwOjMsZm9ybWF0dGVyOm4oIiVJICVwIil9LHtpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIgJWUsICVZIil9XSxbe2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC5ob3VyLHN0ZXA6Nixmb3JtYXR0ZXI6bigiJUkgJXAiKX0se2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6U2UuVGltZUludGVydmFsLmhvdXIsc3RlcDoxMixmb3JtYXR0ZXI6bigiJUkgJXAiKX0se2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6U2UuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVhICVlIil9LHtpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwubW9udGgsc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlWSIpfV0sW3tpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJWUiKX0se2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC5tb250aCxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVZIil9XSxbe2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC5tb250aCxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCIil9LHtpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjEsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC5tb250aCxzdGVwOjEsZm9ybWF0dGVyOm4oIiViIil9LHtpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjEsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC5tb250aCxzdGVwOjMsZm9ybWF0dGVyOm4oIiViIil9LHtpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjEsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC5tb250aCxzdGVwOjYsZm9ybWF0dGVyOm4oIiViIil9LHtpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjEsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC55ZWFyLHN0ZXA6MSxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6U2UuVGltZUludGVydmFsLnllYXIsc3RlcDoxLGZvcm1hdHRlcjpuKCIleSIpfV0sW3tpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjUsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC55ZWFyLHN0ZXA6MjUsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC55ZWFyLHN0ZXA6NTAsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC55ZWFyLHN0ZXA6MTAwLGZvcm1hdHRlcjpuKCIlWSIpfV0sW3tpbnRlcnZhbDpTZS5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjIwMCxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6U2UuVGltZUludGVydmFsLnllYXIsc3RlcDo1MDAsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOlNlLlRpbWVJbnRlcnZhbC55ZWFyLHN0ZXA6MWUzLGZvcm1hdHRlcjpuKCIlWSIpfV1dfSx0Ll9MT05HX0RBVEU9bmV3IERhdGUoOTk5OSw4LDI5LDEyLDU5LDk5OTkpLHR9KGVzLkF4aXMpO1NlLlRpbWU9TEZlO3ZhciBiZH0pO3ZhciBmJHQ9SChpND0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoaTQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBob3Q9KGRlKCksVXQocGUpKTtob3QuX19leHBvcnRTdGFyKCRYdCgpLGk0KTtob3QuX19leHBvcnRTdGFyKEtYdCgpLGk0KTtob3QuX19leHBvcnRTdGFyKEhGKCksaTQpfSk7dmFyIG80PUgoZm90PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShmb3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBrRmU9RmUoKSxSRmU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbj17fSx0aGlzLl9ldmVudFRhcmdldD1kb2N1bWVudCx0aGlzLl9ldmVudE5hbWVUb0NhbGxiYWNrU2V0PXt9LHRoaXMuX2Nvbm5lY3RlZD0hMX1yZXR1cm4gZS5wcm90b3R5cGUuX2hhc05vQ2FsbGJhY2tzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PU9iamVjdC5rZXlzKHRoaXMuX2V2ZW50TmFtZVRvQ2FsbGJhY2tTZXQpLHI9MDtyPHQubGVuZ3RoO3IrKylpZih0aGlzLl9ldmVudE5hbWVUb0NhbGxiYWNrU2V0W3Rbcl1dLnNpemUhPT0wKXJldHVybiExO3JldHVybiEwfSxlLnByb3RvdHlwZS5fY29ubmVjdD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fY29ubmVjdGVkfHwoT2JqZWN0LmtleXModGhpcy5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbikuZm9yRWFjaChmdW5jdGlvbihyKXt2YXIgbj10Ll9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW3JdLGk9cj09PSJ3aGVlbCI/e3Bhc3NpdmU6ITF9OnZvaWQgMDt0Ll9ldmVudFRhcmdldC5hZGRFdmVudExpc3RlbmVyKHIsbixpKX0pLHRoaXMuX2Nvbm5lY3RlZD0hMCl9LGUucHJvdG90eXBlLl9kaXNjb25uZWN0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9jb25uZWN0ZWQmJnRoaXMuX2hhc05vQ2FsbGJhY2tzKCkmJihPYmplY3Qua2V5cyh0aGlzLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3ZhciBuPXQuX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bcl07dC5fZXZlbnRUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihyLG4pfSksdGhpcy5fY29ubmVjdGVkPSExKX0sZS5wcm90b3R5cGUuX2FkZENhbGxiYWNrRm9yRXZlbnQ9ZnVuY3Rpb24odCxyKXt0aGlzLl9ldmVudE5hbWVUb0NhbGxiYWNrU2V0W3RdPT1udWxsJiYodGhpcy5fZXZlbnROYW1lVG9DYWxsYmFja1NldFt0XT1uZXcga0ZlLkNhbGxiYWNrU2V0KSx0aGlzLl9ldmVudE5hbWVUb0NhbGxiYWNrU2V0W3RdLmFkZChyKSx0aGlzLl9jb25uZWN0KCl9LGUucHJvdG90eXBlLl9yZW1vdmVDYWxsYmFja0ZvckV2ZW50PWZ1bmN0aW9uKHQscil7dGhpcy5fZXZlbnROYW1lVG9DYWxsYmFja1NldFt0XSE9bnVsbCYmdGhpcy5fZXZlbnROYW1lVG9DYWxsYmFja1NldFt0XS5kZWxldGUociksdGhpcy5fZGlzY29ubmVjdCgpfSxlLnByb3RvdHlwZS5fY2FsbENhbGxiYWNrc0ZvckV2ZW50PWZ1bmN0aW9uKHQpe2Zvcih2YXIgcj1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKylyW24tMV09YXJndW1lbnRzW25dO3ZhciBpPXRoaXMuX2V2ZW50TmFtZVRvQ2FsbGJhY2tTZXRbdF07aSE9bnVsbCYmaS5jYWxsQ2FsbGJhY2tzLmFwcGx5KGkscil9LGV9KCk7Zm90LkRpc3BhdGNoZXI9UkZlfSk7dmFyIHAkdD1IKHBvdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkocG90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgTkZlPShkZSgpLFV0KHBlKSksREZlPW80KCksT0ZlPWZ1bmN0aW9uKGUpe05GZS5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KCl7dmFyIHI9ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiByLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW3QuX0tFWURPV05fRVZFTlRfTkFNRV09ZnVuY3Rpb24obil7cmV0dXJuIHIuX3Byb2Nlc3NLZXlkb3duKG4pfSxyLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW3QuX0tFWVVQX0VWRU5UX05BTUVdPWZ1bmN0aW9uKG4pe3JldHVybiByLl9wcm9jZXNzS2V5dXAobil9LHJ9cmV0dXJuIHQuZ2V0RGlzcGF0Y2hlcj1mdW5jdGlvbigpe3ZhciByPWRvY3VtZW50W3QuX0RJU1BBVENIRVJfS0VZXTtyZXR1cm4gcj09bnVsbCYmKHI9bmV3IHQsZG9jdW1lbnRbdC5fRElTUEFUQ0hFUl9LRVldPXIpLHJ9LHQucHJvdG90eXBlLl9wcm9jZXNzS2V5ZG93bj1mdW5jdGlvbihyKXt0aGlzLl9jYWxsQ2FsbGJhY2tzRm9yRXZlbnQodC5fS0VZRE9XTl9FVkVOVF9OQU1FLHIua2V5Q29kZSxyKX0sdC5wcm90b3R5cGUuX3Byb2Nlc3NLZXl1cD1mdW5jdGlvbihyKXt0aGlzLl9jYWxsQ2FsbGJhY2tzRm9yRXZlbnQodC5fS0VZVVBfRVZFTlRfTkFNRSxyLmtleUNvZGUscil9LHQucHJvdG90eXBlLm9uS2V5RG93bj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fYWRkQ2FsbGJhY2tGb3JFdmVudCh0Ll9LRVlET1dOX0VWRU5UX05BTUUsciksdGhpc30sdC5wcm90b3R5cGUub2ZmS2V5RG93bj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2FsbGJhY2tGb3JFdmVudCh0Ll9LRVlET1dOX0VWRU5UX05BTUUsciksdGhpc30sdC5wcm90b3R5cGUub25LZXlVcD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fYWRkQ2FsbGJhY2tGb3JFdmVudCh0Ll9LRVlVUF9FVkVOVF9OQU1FLHIpLHRoaXN9LHQucHJvdG90eXBlLm9mZktleVVwPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9yZW1vdmVDYWxsYmFja0ZvckV2ZW50KHQuX0tFWVVQX0VWRU5UX05BTUUsciksdGhpc30sdC5fRElTUEFUQ0hFUl9LRVk9Il9fUGxvdHRhYmxlX0Rpc3BhdGNoZXJfS2V5Iix0Ll9LRVlET1dOX0VWRU5UX05BTUU9ImtleWRvd24iLHQuX0tFWVVQX0VWRU5UX05BTUU9ImtleXVwIix0fShERmUuRGlzcGF0Y2hlcik7cG90LktleT1PRmV9KTt2YXIgbSR0PUgoZG90PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShkb3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB6RmU9KGRlKCksVXQocGUpKSxkJHQ9RmUoKSxGRmU9bzQoKSxCRmU9ZnVuY3Rpb24oZSl7ekZlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocil7dmFyIG49ZS5jYWxsKHRoaXMpfHx0aGlzO24uX2xhc3RNb3VzZVBvc2l0aW9uPXt4Oi0xLHk6LTF9LG4uX3RyYW5zbGF0b3I9ZCR0LmdldFRyYW5zbGF0b3Iocik7dmFyIGk9ZnVuY3Rpb24obyl7cmV0dXJuIG4uX21lYXN1cmVBbmREaXNwYXRjaChyLG8sdC5fTU9VU0VNT1ZFX0VWRU5UX05BTUUsInBhZ2UiKX07cmV0dXJuIG4uX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bdC5fTU9VU0VPVkVSX0VWRU5UX05BTUVdPWksbi5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvblt0Ll9NT1VTRU1PVkVfRVZFTlRfTkFNRV09aSxuLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW3QuX01PVVNFT1VUX0VWRU5UX05BTUVdPWksbi5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvblt0Ll9NT1VTRURPV05fRVZFTlRfTkFNRV09ZnVuY3Rpb24obyl7cmV0dXJuIG4uX21lYXN1cmVBbmREaXNwYXRjaChyLG8sdC5fTU9VU0VET1dOX0VWRU5UX05BTUUpfSxuLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW3QuX01PVVNFVVBfRVZFTlRfTkFNRV09ZnVuY3Rpb24obyl7cmV0dXJuIG4uX21lYXN1cmVBbmREaXNwYXRjaChyLG8sdC5fTU9VU0VVUF9FVkVOVF9OQU1FLCJwYWdlIil9LG4uX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bdC5fV0hFRUxfRVZFTlRfTkFNRV09ZnVuY3Rpb24obyl7cmV0dXJuIG4uX21lYXN1cmVBbmREaXNwYXRjaChyLG8sdC5fV0hFRUxfRVZFTlRfTkFNRSl9LG4uX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bdC5fREJMQ0xJQ0tfRVZFTlRfTkFNRV09ZnVuY3Rpb24obyl7cmV0dXJuIG4uX21lYXN1cmVBbmREaXNwYXRjaChyLG8sdC5fREJMQ0xJQ0tfRVZFTlRfTkFNRSl9LG59cmV0dXJuIHQuZ2V0RGlzcGF0Y2hlcj1mdW5jdGlvbihyKXt2YXIgbj1yLnJvb3QoKS5yb290RWxlbWVudCgpLGk9blt0Ll9ESVNQQVRDSEVSX0tFWV07cmV0dXJuIGk9PW51bGwmJihpPW5ldyB0KHIpLG5bdC5fRElTUEFUQ0hFUl9LRVldPWkpLGl9LHQucHJvdG90eXBlLm9uTW91c2VNb3ZlPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KHQuX01PVVNFTU9WRV9FVkVOVF9OQU1FLHIpLHRoaXN9LHQucHJvdG90eXBlLm9mZk1vdXNlTW92ZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2FsbGJhY2tGb3JFdmVudCh0Ll9NT1VTRU1PVkVfRVZFTlRfTkFNRSxyKSx0aGlzfSx0LnByb3RvdHlwZS5vbk1vdXNlRG93bj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fYWRkQ2FsbGJhY2tGb3JFdmVudCh0Ll9NT1VTRURPV05fRVZFTlRfTkFNRSxyKSx0aGlzfSx0LnByb3RvdHlwZS5vZmZNb3VzZURvd249ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQodC5fTU9VU0VET1dOX0VWRU5UX05BTUUsciksdGhpc30sdC5wcm90b3R5cGUub25Nb3VzZVVwPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KHQuX01PVVNFVVBfRVZFTlRfTkFNRSxyKSx0aGlzfSx0LnByb3RvdHlwZS5vZmZNb3VzZVVwPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9yZW1vdmVDYWxsYmFja0ZvckV2ZW50KHQuX01PVVNFVVBfRVZFTlRfTkFNRSxyKSx0aGlzfSx0LnByb3RvdHlwZS5vbldoZWVsPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KHQuX1dIRUVMX0VWRU5UX05BTUUsciksdGhpc30sdC5wcm90b3R5cGUub2ZmV2hlZWw9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQodC5fV0hFRUxfRVZFTlRfTkFNRSxyKSx0aGlzfSx0LnByb3RvdHlwZS5vbkRibENsaWNrPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KHQuX0RCTENMSUNLX0VWRU5UX05BTUUsciksdGhpc30sdC5wcm90b3R5cGUub2ZmRGJsQ2xpY2s9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQodC5fREJMQ0xJQ0tfRVZFTlRfTkFNRSxyKSx0aGlzfSx0LnByb3RvdHlwZS5fbWVhc3VyZUFuZERpc3BhdGNoPWZ1bmN0aW9uKHIsbixpLG8pe2lmKG89PT12b2lkIDAmJihvPSJlbGVtZW50IiksbyE9PSJwYWdlIiYmbyE9PSJlbGVtZW50Iil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2NvcGUgJyIrbysiJywgbXVzdCBiZSAnZWxlbWVudCcgb3IgJ3BhZ2UnIik7aWYobz09PSJwYWdlInx8dGhpcy5ldmVudEluc2lkZShyLG4pKXt2YXIgYT10aGlzLl90cmFuc2xhdG9yLmNvbXB1dGVQb3NpdGlvbihuLmNsaWVudFgsbi5jbGllbnRZKTt0aGlzLl9sYXN0TW91c2VQb3NpdGlvbj1hLHRoaXMuX2NhbGxDYWxsYmFja3NGb3JFdmVudChpLHRoaXMubGFzdE1vdXNlUG9zaXRpb24oKSxuKX19LHQucHJvdG90eXBlLmV2ZW50SW5zaWRlPWZ1bmN0aW9uKHIsbil7cmV0dXJuIGQkdC5UcmFuc2xhdG9yLmlzRXZlbnRJbnNpZGUocixuKX0sdC5wcm90b3R5cGUubGFzdE1vdXNlUG9zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbGFzdE1vdXNlUG9zaXRpb259LHQuX0RJU1BBVENIRVJfS0VZPSJfX1Bsb3R0YWJsZV9EaXNwYXRjaGVyX01vdXNlIix0Ll9NT1VTRU9WRVJfRVZFTlRfTkFNRT0ibW91c2VvdmVyIix0Ll9NT1VTRU1PVkVfRVZFTlRfTkFNRT0ibW91c2Vtb3ZlIix0Ll9NT1VTRU9VVF9FVkVOVF9OQU1FPSJtb3VzZW91dCIsdC5fTU9VU0VET1dOX0VWRU5UX05BTUU9Im1vdXNlZG93biIsdC5fTU9VU0VVUF9FVkVOVF9OQU1FPSJtb3VzZXVwIix0Ll9XSEVFTF9FVkVOVF9OQU1FPSJ3aGVlbCIsdC5fREJMQ0xJQ0tfRVZFTlRfTkFNRT0iZGJsY2xpY2siLHR9KEZGZS5EaXNwYXRjaGVyKTtkb3QuTW91c2U9QkZlfSk7dmFyIF8kdD1IKG1vdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobW90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgSEZlPShkZSgpLFV0KHBlKSksZyR0PUZlKCksVkZlPW80KCksVUZlPWZ1bmN0aW9uKGUpe0hGZS5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KHIpe3ZhciBuPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5fdHJhbnNsYXRvcj1nJHQuZ2V0VHJhbnNsYXRvcihyKSxuLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW3QuX1RPVUNIU1RBUlRfRVZFTlRfTkFNRV09ZnVuY3Rpb24oaSl7cmV0dXJuIG4uX21lYXN1cmVBbmREaXNwYXRjaChyLGksdC5fVE9VQ0hTVEFSVF9FVkVOVF9OQU1FLCJwYWdlIil9LG4uX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bdC5fVE9VQ0hNT1ZFX0VWRU5UX05BTUVdPWZ1bmN0aW9uKGkpe3JldHVybiBuLl9tZWFzdXJlQW5kRGlzcGF0Y2gocixpLHQuX1RPVUNITU9WRV9FVkVOVF9OQU1FLCJwYWdlIil9LG4uX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bdC5fVE9VQ0hFTkRfRVZFTlRfTkFNRV09ZnVuY3Rpb24oaSl7cmV0dXJuIG4uX21lYXN1cmVBbmREaXNwYXRjaChyLGksdC5fVE9VQ0hFTkRfRVZFTlRfTkFNRSwicGFnZSIpfSxuLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW3QuX1RPVUNIQ0FOQ0VMX0VWRU5UX05BTUVdPWZ1bmN0aW9uKGkpe3JldHVybiBuLl9tZWFzdXJlQW5kRGlzcGF0Y2gocixpLHQuX1RPVUNIQ0FOQ0VMX0VWRU5UX05BTUUsInBhZ2UiKX0sbn1yZXR1cm4gdC5nZXREaXNwYXRjaGVyPWZ1bmN0aW9uKHIpe3ZhciBuPXIucm9vdCgpLnJvb3RFbGVtZW50KCksaT1uW3QuX0RJU1BBVENIRVJfS0VZXTtyZXR1cm4gaT09bnVsbCYmKGk9bmV3IHQociksblt0Ll9ESVNQQVRDSEVSX0tFWV09aSksaX0sdC5wcm90b3R5cGUub25Ub3VjaFN0YXJ0PWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KHQuX1RPVUNIU1RBUlRfRVZFTlRfTkFNRSxyKSx0aGlzfSx0LnByb3RvdHlwZS5vZmZUb3VjaFN0YXJ0PWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9yZW1vdmVDYWxsYmFja0ZvckV2ZW50KHQuX1RPVUNIU1RBUlRfRVZFTlRfTkFNRSxyKSx0aGlzfSx0LnByb3RvdHlwZS5vblRvdWNoTW92ZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fYWRkQ2FsbGJhY2tGb3JFdmVudCh0Ll9UT1VDSE1PVkVfRVZFTlRfTkFNRSxyKSx0aGlzfSx0LnByb3RvdHlwZS5vZmZUb3VjaE1vdmU9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQodC5fVE9VQ0hNT1ZFX0VWRU5UX05BTUUsciksdGhpc30sdC5wcm90b3R5cGUub25Ub3VjaEVuZD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fYWRkQ2FsbGJhY2tGb3JFdmVudCh0Ll9UT1VDSEVORF9FVkVOVF9OQU1FLHIpLHRoaXN9LHQucHJvdG90eXBlLm9mZlRvdWNoRW5kPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9yZW1vdmVDYWxsYmFja0ZvckV2ZW50KHQuX1RPVUNIRU5EX0VWRU5UX05BTUUsciksdGhpc30sdC5wcm90b3R5cGUub25Ub3VjaENhbmNlbD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fYWRkQ2FsbGJhY2tGb3JFdmVudCh0Ll9UT1VDSENBTkNFTF9FVkVOVF9OQU1FLHIpLHRoaXN9LHQucHJvdG90eXBlLm9mZlRvdWNoQ2FuY2VsPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9yZW1vdmVDYWxsYmFja0ZvckV2ZW50KHQuX1RPVUNIQ0FOQ0VMX0VWRU5UX05BTUUsciksdGhpc30sdC5wcm90b3R5cGUuX21lYXN1cmVBbmREaXNwYXRjaD1mdW5jdGlvbihyLG4saSxvKXtpZihvPT09dm9pZCAwJiYobz0iZWxlbWVudCIpLG8hPT0icGFnZSImJm8hPT0iZWxlbWVudCIpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNjb3BlICciK28rIicsIG11c3QgYmUgJ2VsZW1lbnQnIG9yICdwYWdlJyIpO2lmKCEobz09PSJlbGVtZW50IiYmIXRoaXMuZXZlbnRJbnNpZGUocixuKSkpe2Zvcih2YXIgYT1uLmNoYW5nZWRUb3VjaGVzLHM9e30sbD1bXSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciB1PWFbY10saD11LmlkZW50aWZpZXIsZj10aGlzLl90cmFuc2xhdG9yLmNvbXB1dGVQb3NpdGlvbih1LmNsaWVudFgsdS5jbGllbnRZKTtmIT1udWxsJiYoc1toXT1mLGwucHVzaChoKSl9bC5sZW5ndGg+MCYmdGhpcy5fY2FsbENhbGxiYWNrc0ZvckV2ZW50KGksbCxzLG4pfX0sdC5wcm90b3R5cGUuZXZlbnRJbnNpZGU9ZnVuY3Rpb24ocixuKXtyZXR1cm4gZyR0LlRyYW5zbGF0b3IuaXNFdmVudEluc2lkZShyLG4pfSx0Ll9ESVNQQVRDSEVSX0tFWT0iX19QbG90dGFibGVfRGlzcGF0Y2hlcl9Ub3VjaCIsdC5fVE9VQ0hTVEFSVF9FVkVOVF9OQU1FPSJ0b3VjaHN0YXJ0Iix0Ll9UT1VDSE1PVkVfRVZFTlRfTkFNRT0idG91Y2htb3ZlIix0Ll9UT1VDSEVORF9FVkVOVF9OQU1FPSJ0b3VjaGVuZCIsdC5fVE9VQ0hDQU5DRUxfRVZFTlRfTkFNRT0idG91Y2hjYW5jZWwiLHR9KFZGZS5EaXNwYXRjaGVyKTttb3QuVG91Y2g9VUZlfSk7dmFyIER2PUgoYTQ9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGE0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZ290PShkZSgpLFV0KHBlKSk7Z290Ll9fZXhwb3J0U3RhcihwJHQoKSxhNCk7Z290Ll9fZXhwb3J0U3RhcihtJHQoKSxhNCk7Z290Ll9fZXhwb3J0U3RhcihfJHQoKSxhNCl9KTt2YXIgT3Y9SChfb3Q9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KF9vdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHFGZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt2YXIgdD10aGlzO3RoaXMuX2FuY2hvckNhbGxiYWNrPWZ1bmN0aW9uKHIpe3JldHVybiB0Ll9hbmNob3Iocil9LHRoaXMuX2VuYWJsZWQ9ITB9cmV0dXJuIGUucHJvdG90eXBlLmF0dGFjaFRvPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kaXNjb25uZWN0KCksdGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbz10LHRoaXMuX2Nvbm5lY3QoKSx0aGlzfSxlLnByb3RvdHlwZS5kZXRhY2hGcm9tPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRldGFjaCgpfSxlLnByb3RvdHlwZS5kZXRhY2g9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGlzY29ubmVjdCgpLHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG89bnVsbCx0aGlzfSxlLnByb3RvdHlwZS5lbmFibGVkPWZ1bmN0aW9uKHQpe3JldHVybiB0PT1udWxsP3RoaXMuX2VuYWJsZWQ6KHRoaXMuX2VuYWJsZWQ9dCx0aGlzLl9lbmFibGVkP3RoaXMuX2Nvbm5lY3QoKTp0aGlzLl9kaXNjb25uZWN0KCksdGhpcyl9LGUucHJvdG90eXBlLl9hbmNob3I9ZnVuY3Rpb24odCl7dGhpcy5faXNBbmNob3JlZD0hMH0sZS5wcm90b3R5cGUuX3VuYW5jaG9yPWZ1bmN0aW9uKCl7dGhpcy5faXNBbmNob3JlZD0hMX0sZS5wcm90b3R5cGUuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2U9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fY29tcG9uZW50QXR0YWNoZWRUby5vcmlnaW5Ub1Jvb3QoKTtyZXR1cm57eDp0Lngtci54LHk6dC55LXIueX19LGUucHJvdG90eXBlLl9pc0luc2lkZUNvbXBvbmVudD1mdW5jdGlvbih0KXtyZXR1cm4gMDw9dC54JiYwPD10LnkmJnQueDw9dGhpcy5fY29tcG9uZW50QXR0YWNoZWRUby53aWR0aCgpJiZ0Lnk8PXRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8uaGVpZ2h0KCl9LGUucHJvdG90eXBlLl9jb25uZWN0PWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkKCkmJnRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8hPW51bGwmJiF0aGlzLl9pc0FuY2hvcmVkJiZ0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvLm9uQW5jaG9yKHRoaXMuX2FuY2hvckNhbGxiYWNrKX0sZS5wcm90b3R5cGUuX2Rpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXt0aGlzLl9pc0FuY2hvcmVkJiZ0aGlzLl91bmFuY2hvcigpLHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8hPW51bGwmJnRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8ub2ZmQW5jaG9yKHRoaXMuX2FuY2hvckNhbGxiYWNrKX0sZX0oKTtfb3QuSW50ZXJhY3Rpb249cUZlfSk7dmFyIHgkdD1IKHlvdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoeW90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgR0ZlPShkZSgpLFV0KHBlKSkseSR0PUR2KCksdiR0PUZlKCksV0ZlPU92KCksWUZlPWZ1bmN0aW9uKGUpe0dGZS5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KCl7dmFyIHI9ZSE9PW51bGwmJmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiByLl9jbGlja2VkRG93bj0hMSxyLl9kb3VibGVDbGlja2luZz0hMSxyLl9vbkNsaWNrQ2FsbGJhY2tzPW5ldyB2JHQuQ2FsbGJhY2tTZXQsci5fb25Eb3VibGVDbGlja0NhbGxiYWNrcz1uZXcgdiR0LkNhbGxiYWNrU2V0LHIuX21vdXNlRG93bkNhbGxiYWNrPWZ1bmN0aW9uKG4saSl7cmV0dXJuIHIuX2hhbmRsZUNsaWNrRG93bihuLGkpfSxyLl9tb3VzZVVwQ2FsbGJhY2s9ZnVuY3Rpb24obixpKXtyZXR1cm4gci5faGFuZGxlQ2xpY2tVcChuLGkpfSxyLl9kYmxDbGlja0NhbGxiYWNrPWZ1bmN0aW9uKG4saSl7cmV0dXJuIHIuX2hhbmRsZURibENsaWNrKG4saSl9LHIuX3RvdWNoU3RhcnRDYWxsYmFjaz1mdW5jdGlvbihuLGksbyl7cmV0dXJuIHIuX2hhbmRsZUNsaWNrRG93bihpW25bMF1dLG8pfSxyLl90b3VjaEVuZENhbGxiYWNrPWZ1bmN0aW9uKG4saSxvKXtyZXR1cm4gci5faGFuZGxlQ2xpY2tVcChpW25bMF1dLG8pfSxyLl90b3VjaENhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKG4saSl7cmV0dXJuIHIuX2NsaWNrZWREb3duPSExfSxyfXJldHVybiB0LnByb3RvdHlwZS5fYW5jaG9yPWZ1bmN0aW9uKHIpe2UucHJvdG90eXBlLl9hbmNob3IuY2FsbCh0aGlzLHIpLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj15JHQuTW91c2UuZ2V0RGlzcGF0Y2hlcihyKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub25Nb3VzZURvd24odGhpcy5fbW91c2VEb3duQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vbk1vdXNlVXAodGhpcy5fbW91c2VVcENhbGxiYWNrKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub25EYmxDbGljayh0aGlzLl9kYmxDbGlja0NhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXI9eSR0LlRvdWNoLmdldERpc3BhdGNoZXIociksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hTdGFydCh0aGlzLl90b3VjaFN0YXJ0Q2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vblRvdWNoRW5kKHRoaXMuX3RvdWNoRW5kQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vblRvdWNoQ2FuY2VsKHRoaXMuX3RvdWNoQ2FuY2VsQ2FsbGJhY2spfSx0LnByb3RvdHlwZS5fdW5hbmNob3I9ZnVuY3Rpb24oKXtlLnByb3RvdHlwZS5fdW5hbmNob3IuY2FsbCh0aGlzKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub2ZmTW91c2VEb3duKHRoaXMuX21vdXNlRG93bkNhbGxiYWNrKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub2ZmTW91c2VVcCh0aGlzLl9tb3VzZVVwQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZEYmxDbGljayh0aGlzLl9kYmxDbGlja0NhbGxiYWNrKSx0aGlzLl9tb3VzZURpc3BhdGNoZXI9bnVsbCx0aGlzLl90b3VjaERpc3BhdGNoZXIub2ZmVG91Y2hTdGFydCh0aGlzLl90b3VjaFN0YXJ0Q2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaEVuZCh0aGlzLl90b3VjaEVuZENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub2ZmVG91Y2hDYW5jZWwodGhpcy5fdG91Y2hDYW5jZWxDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyPW51bGx9LHQucHJvdG90eXBlLl9oYW5kbGVDbGlja0Rvd249ZnVuY3Rpb24ocixuKXt2YXIgaT10aGlzLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlKHIpO3RoaXMuX2lzSW5zaWRlQ29tcG9uZW50KGkpJiYodGhpcy5fY2xpY2tlZERvd249ITAsdGhpcy5fY2xpY2tlZFBvaW50PWkpfSx0LnByb3RvdHlwZS5faGFuZGxlQ2xpY2tVcD1mdW5jdGlvbihyLG4pe3ZhciBpPXRoaXMsbz10aGlzLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlKHIpO3RoaXMuX2NsaWNrZWREb3duJiZ0Ll9wb2ludHNFcXVhbChvLHRoaXMuX2NsaWNrZWRQb2ludCkmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLl9kb3VibGVDbGlja2luZ3x8aS5fb25DbGlja0NhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKG8sbil9LDApLHRoaXMuX2NsaWNrZWREb3duPSExfSx0LnByb3RvdHlwZS5faGFuZGxlRGJsQ2xpY2s9ZnVuY3Rpb24ocixuKXt2YXIgaT10aGlzLG89dGhpcy5fdHJhbnNsYXRlVG9Db21wb25lbnRTcGFjZShyKTt0aGlzLl9kb3VibGVDbGlja2luZz0hMCx0aGlzLl9vbkRvdWJsZUNsaWNrQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3MobyxuKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIGkuX2RvdWJsZUNsaWNraW5nPSExfSwwKX0sdC5fcG9pbnRzRXF1YWw9ZnVuY3Rpb24ocixuKXtyZXR1cm4gci54PT09bi54JiZyLnk9PT1uLnl9LHQucHJvdG90eXBlLm9uQ2xpY2s9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX29uQ2xpY2tDYWxsYmFja3MuYWRkKHIpLHRoaXN9LHQucHJvdG90eXBlLm9mZkNsaWNrPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9vbkNsaWNrQ2FsbGJhY2tzLmRlbGV0ZShyKSx0aGlzfSx0LnByb3RvdHlwZS5vbkRvdWJsZUNsaWNrPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9vbkRvdWJsZUNsaWNrQ2FsbGJhY2tzLmFkZChyKSx0aGlzfSx0LnByb3RvdHlwZS5vZmZEb3VibGVDbGljaz1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fb25Eb3VibGVDbGlja0NhbGxiYWNrcy5kZWxldGUociksdGhpc30sdH0oV0ZlLkludGVyYWN0aW9uKTt5b3QuQ2xpY2s9WUZlfSk7dmFyIHckdD1IKHZvdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodm90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgakZlPShkZSgpLFV0KHBlKSksYiR0PUR2KCksczQ9RmUoKSxYRmU9T3YoKSwkRmU9ZnVuY3Rpb24oZSl7akZlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocil7dmFyIG49ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLl9kcmFnZ2luZz0hMSxuLl9jb25zdHJhaW5lZFRvQ29tcG9uZW50PSEwLG4uX21vdXNlRmlsdGVyPXQuX0RFRkFVTFRfTU9VU0VfRklMVEVSLG4uX2RyYWdTdGFydENhbGxiYWNrcz1uZXcgczQuQ2FsbGJhY2tTZXQsbi5fZHJhZ0NhbGxiYWNrcz1uZXcgczQuQ2FsbGJhY2tTZXQsbi5fZHJhZ0VuZENhbGxiYWNrcz1uZXcgczQuQ2FsbGJhY2tTZXQsbi5fbW91c2VEb3duQ2FsbGJhY2s9ZnVuY3Rpb24oaSxvKXtyZXR1cm4gbi5fc3RhcnREcmFnKGksbyl9LG4uX21vdXNlTW92ZUNhbGxiYWNrPWZ1bmN0aW9uKGksbyl7cmV0dXJuIG4uX2RvRHJhZyhpLG8pfSxuLl9tb3VzZVVwQ2FsbGJhY2s9ZnVuY3Rpb24oaSxvKXtyZXR1cm4gbi5fZW5kRHJhZyhpLG8pfSxuLl90b3VjaFN0YXJ0Q2FsbGJhY2s9ZnVuY3Rpb24oaSxvLGEpe3JldHVybiBuLl9zdGFydERyYWcob1tpWzBdXSxhKX0sbi5fdG91Y2hNb3ZlQ2FsbGJhY2s9ZnVuY3Rpb24oaSxvLGEpe3JldHVybiBuLl9kb0RyYWcob1tpWzBdXSxhKX0sbi5fdG91Y2hFbmRDYWxsYmFjaz1mdW5jdGlvbihpLG8sYSl7cmV0dXJuIG4uX2VuZERyYWcob1tpWzBdXSxhKX0sbi5fbW91c2VCdXR0b249ciE9PXZvaWQgMD9yOjAsbn1yZXR1cm4gdC5wcm90b3R5cGUuX2FuY2hvcj1mdW5jdGlvbihyKXtlLnByb3RvdHlwZS5fYW5jaG9yLmNhbGwodGhpcyxyKSx0aGlzLl9tb3VzZURpc3BhdGNoZXI9YiR0Lk1vdXNlLmdldERpc3BhdGNoZXIodGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbyksdGhpcy5fbW91c2VEaXNwYXRjaGVyLm9uTW91c2VEb3duKHRoaXMuX21vdXNlRG93bkNhbGxiYWNrKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub25Nb3VzZU1vdmUodGhpcy5fbW91c2VNb3ZlQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vbk1vdXNlVXAodGhpcy5fbW91c2VVcENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXI9YiR0LlRvdWNoLmdldERpc3BhdGNoZXIodGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbyksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hTdGFydCh0aGlzLl90b3VjaFN0YXJ0Q2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vblRvdWNoTW92ZSh0aGlzLl90b3VjaE1vdmVDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hFbmQodGhpcy5fdG91Y2hFbmRDYWxsYmFjayl9LHQucHJvdG90eXBlLl91bmFuY2hvcj1mdW5jdGlvbigpe2UucHJvdG90eXBlLl91bmFuY2hvci5jYWxsKHRoaXMpLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZNb3VzZURvd24odGhpcy5fbW91c2VEb3duQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZNb3VzZU1vdmUodGhpcy5fbW91c2VNb3ZlQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZNb3VzZVVwKHRoaXMuX21vdXNlVXBDYWxsYmFjayksdGhpcy5fbW91c2VEaXNwYXRjaGVyPW51bGwsdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9mZlRvdWNoU3RhcnQodGhpcy5fdG91Y2hTdGFydENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub2ZmVG91Y2hNb3ZlKHRoaXMuX3RvdWNoTW92ZUNhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub2ZmVG91Y2hFbmQodGhpcy5fdG91Y2hFbmRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyPW51bGx9LHQucHJvdG90eXBlLl90cmFuc2xhdGVBbmRDb25zdHJhaW49ZnVuY3Rpb24ocil7dmFyIG49dGhpcy5fdHJhbnNsYXRlVG9Db21wb25lbnRTcGFjZShyKTtyZXR1cm4gdGhpcy5fY29uc3RyYWluZWRUb0NvbXBvbmVudD97eDpzNC5NYXRoLmNsYW1wKG4ueCwwLHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8ud2lkdGgoKSkseTpzNC5NYXRoLmNsYW1wKG4ueSwwLHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8uaGVpZ2h0KCkpfTpufSx0LnByb3RvdHlwZS5fc3RhcnREcmFnPWZ1bmN0aW9uKHIsbil7aWYoIShuIGluc3RhbmNlb2YgTW91c2VFdmVudCYmIXRoaXMuX21vdXNlRmlsdGVyKG4pKSl7dmFyIGk9dGhpcy5fdHJhbnNsYXRlVG9Db21wb25lbnRTcGFjZShyKTt0aGlzLl9pc0luc2lkZUNvbXBvbmVudChpKSYmKG4ucHJldmVudERlZmF1bHQoKSx0aGlzLl9kcmFnZ2luZz0hMCx0aGlzLl9kcmFnT3JpZ2luPWksdGhpcy5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmNhbGxDYWxsYmFja3ModGhpcy5fZHJhZ09yaWdpbikpfX0sdC5wcm90b3R5cGUuX2RvRHJhZz1mdW5jdGlvbihyLG4pe3RoaXMuX2RyYWdnaW5nJiZ0aGlzLl9kcmFnQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3ModGhpcy5fZHJhZ09yaWdpbix0aGlzLl90cmFuc2xhdGVBbmRDb25zdHJhaW4ocikpfSx0LnByb3RvdHlwZS5fZW5kRHJhZz1mdW5jdGlvbihyLG4pe24gaW5zdGFuY2VvZiBNb3VzZUV2ZW50JiZuLmJ1dHRvbiE9PXRoaXMuX21vdXNlQnV0dG9ufHx0aGlzLl9kcmFnZ2luZyYmKHRoaXMuX2RyYWdnaW5nPSExLHRoaXMuX2RyYWdFbmRDYWxsYmFja3MuY2FsbENhbGxiYWNrcyh0aGlzLl9kcmFnT3JpZ2luLHRoaXMuX3RyYW5zbGF0ZUFuZENvbnN0cmFpbihyKSkpfSx0LnByb3RvdHlwZS5jb25zdHJhaW5lZFRvQ29tcG9uZW50PWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX2NvbnN0cmFpbmVkVG9Db21wb25lbnQ6KHRoaXMuX2NvbnN0cmFpbmVkVG9Db21wb25lbnQ9cix0aGlzKX0sdC5wcm90b3R5cGUubW91c2VGaWx0ZXI9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0wP3RoaXMuX21vdXNlRmlsdGVyOih0aGlzLl9tb3VzZUZpbHRlcj1yLHRoaXMpfSx0LnByb3RvdHlwZS5vbkRyYWdTdGFydD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmFkZChyKSx0aGlzfSx0LnByb3RvdHlwZS5vZmZEcmFnU3RhcnQ9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX2RyYWdTdGFydENhbGxiYWNrcy5kZWxldGUociksdGhpc30sdC5wcm90b3R5cGUub25EcmFnPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9kcmFnQ2FsbGJhY2tzLmFkZChyKSx0aGlzfSx0LnByb3RvdHlwZS5vZmZEcmFnPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9kcmFnQ2FsbGJhY2tzLmRlbGV0ZShyKSx0aGlzfSx0LnByb3RvdHlwZS5vbkRyYWdFbmQ9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX2RyYWdFbmRDYWxsYmFja3MuYWRkKHIpLHRoaXN9LHQucHJvdG90eXBlLm9mZkRyYWdFbmQ9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX2RyYWdFbmRDYWxsYmFja3MuZGVsZXRlKHIpLHRoaXN9LHQuX0RFRkFVTFRfTU9VU0VfRklMVEVSPWZ1bmN0aW9uKHIpe3JldHVybiByLmJ1dHRvbj09PTB9LHR9KFhGZS5JbnRlcmFjdGlvbik7dm90LkRyYWc9JEZlfSk7dmFyIHdvdD1IKGJvdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoYm90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgS0ZlPShkZSgpLFV0KHBlKSksUyR0PUR2KCkseG90PUZlKCksWkZlPU92KCksSkZlPWZ1bmN0aW9uKGUpe0tGZS5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KCl7dmFyIHI9ZSE9PW51bGwmJmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiByLl9rZXlQcmVzc0NhbGxiYWNrcz17fSxyLl9rZXlSZWxlYXNlQ2FsbGJhY2tzPXt9LHIuX21vdXNlTW92ZUNhbGxiYWNrPWZ1bmN0aW9uKG4pe3JldHVybiExfSxyLl9kb3duZWRLZXlzPW5ldyB4b3QuU2V0LHIuX2tleURvd25DYWxsYmFjaz1mdW5jdGlvbihuLGkpe3JldHVybiByLl9oYW5kbGVLZXlEb3duRXZlbnQobixpKX0sci5fa2V5VXBDYWxsYmFjaz1mdW5jdGlvbihuKXtyZXR1cm4gci5faGFuZGxlS2V5VXBFdmVudChuKX0scn1yZXR1cm4gdC5wcm90b3R5cGUuX2FuY2hvcj1mdW5jdGlvbihyKXtlLnByb3RvdHlwZS5fYW5jaG9yLmNhbGwodGhpcyxyKSx0aGlzLl9wb3NpdGlvbkRpc3BhdGNoZXI9UyR0Lk1vdXNlLmdldERpc3BhdGNoZXIodGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbyksdGhpcy5fcG9zaXRpb25EaXNwYXRjaGVyLm9uTW91c2VNb3ZlKHRoaXMuX21vdXNlTW92ZUNhbGxiYWNrKSx0aGlzLl9rZXlEaXNwYXRjaGVyPVMkdC5LZXkuZ2V0RGlzcGF0Y2hlcigpLHRoaXMuX2tleURpc3BhdGNoZXIub25LZXlEb3duKHRoaXMuX2tleURvd25DYWxsYmFjayksdGhpcy5fa2V5RGlzcGF0Y2hlci5vbktleVVwKHRoaXMuX2tleVVwQ2FsbGJhY2spfSx0LnByb3RvdHlwZS5fdW5hbmNob3I9ZnVuY3Rpb24oKXtlLnByb3RvdHlwZS5fdW5hbmNob3IuY2FsbCh0aGlzKSx0aGlzLl9wb3NpdGlvbkRpc3BhdGNoZXIub2ZmTW91c2VNb3ZlKHRoaXMuX21vdXNlTW92ZUNhbGxiYWNrKSx0aGlzLl9wb3NpdGlvbkRpc3BhdGNoZXI9bnVsbCx0aGlzLl9rZXlEaXNwYXRjaGVyLm9mZktleURvd24odGhpcy5fa2V5RG93bkNhbGxiYWNrKSx0aGlzLl9rZXlEaXNwYXRjaGVyLm9mZktleVVwKHRoaXMuX2tleVVwQ2FsbGJhY2spLHRoaXMuX2tleURpc3BhdGNoZXI9bnVsbH0sdC5wcm90b3R5cGUuX2hhbmRsZUtleURvd25FdmVudD1mdW5jdGlvbihyLG4pe3ZhciBpPXRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2UodGhpcy5fcG9zaXRpb25EaXNwYXRjaGVyLmxhc3RNb3VzZVBvc2l0aW9uKCkpO3RoaXMuX2lzSW5zaWRlQ29tcG9uZW50KGkpJiYhbi5yZXBlYXQmJih0aGlzLl9rZXlQcmVzc0NhbGxiYWNrc1tyXSYmdGhpcy5fa2V5UHJlc3NDYWxsYmFja3Nbcl0uY2FsbENhbGxiYWNrcyhyKSx0aGlzLl9kb3duZWRLZXlzLmFkZChyKSl9LHQucHJvdG90eXBlLl9oYW5kbGVLZXlVcEV2ZW50PWZ1bmN0aW9uKHIpe3RoaXMuX2Rvd25lZEtleXMuaGFzKHIpJiZ0aGlzLl9rZXlSZWxlYXNlQ2FsbGJhY2tzW3JdJiZ0aGlzLl9rZXlSZWxlYXNlQ2FsbGJhY2tzW3JdLmNhbGxDYWxsYmFja3MociksdGhpcy5fZG93bmVkS2V5cy5kZWxldGUocil9LHQucHJvdG90eXBlLm9uS2V5UHJlc3M9ZnVuY3Rpb24ocixuKXtyZXR1cm4gdGhpcy5fa2V5UHJlc3NDYWxsYmFja3Nbcl18fCh0aGlzLl9rZXlQcmVzc0NhbGxiYWNrc1tyXT1uZXcgeG90LkNhbGxiYWNrU2V0KSx0aGlzLl9rZXlQcmVzc0NhbGxiYWNrc1tyXS5hZGQobiksdGhpc30sdC5wcm90b3R5cGUub2ZmS2V5UHJlc3M9ZnVuY3Rpb24ocixuKXtyZXR1cm4gdGhpcy5fa2V5UHJlc3NDYWxsYmFja3Nbcl0uZGVsZXRlKG4pLHRoaXMuX2tleVByZXNzQ2FsbGJhY2tzW3JdLnNpemU9PT0wJiZkZWxldGUgdGhpcy5fa2V5UHJlc3NDYWxsYmFja3Nbcl0sdGhpc30sdC5wcm90b3R5cGUub25LZXlSZWxlYXNlPWZ1bmN0aW9uKHIsbil7cmV0dXJuIHRoaXMuX2tleVJlbGVhc2VDYWxsYmFja3Nbcl18fCh0aGlzLl9rZXlSZWxlYXNlQ2FsbGJhY2tzW3JdPW5ldyB4b3QuQ2FsbGJhY2tTZXQpLHRoaXMuX2tleVJlbGVhc2VDYWxsYmFja3Nbcl0uYWRkKG4pLHRoaXN9LHQucHJvdG90eXBlLm9mZktleVJlbGVhc2U9ZnVuY3Rpb24ocixuKXtyZXR1cm4gdGhpcy5fa2V5UmVsZWFzZUNhbGxiYWNrc1tyXS5kZWxldGUobiksdGhpcy5fa2V5UmVsZWFzZUNhbGxiYWNrc1tyXS5zaXplPT09MCYmZGVsZXRlIHRoaXMuX2tleVJlbGVhc2VDYWxsYmFja3Nbcl0sdGhpc30sdH0oWkZlLkludGVyYWN0aW9uKTtib3QuS2V5PUpGZX0pO3ZhciBDJHQ9SChTb3Q9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFNvdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFFGZT0oZGUoKSxVdChwZSkpLHRCZT0oRXIoKSxVdChNcikpLE0kdD1EdigpLEUkdD1ScygpLHZsPUZlKCksZUJlPWw0KCksckJlPU92KCksVCR0PWU0KCksbkJlPWZ1bmN0aW9uKGUpe1FGZS5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KHIsbil7dmFyIGk9ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBpLl93aGVlbEZpbHRlcj1mdW5jdGlvbihvKXtyZXR1cm4hMH0saS5fd2hlZWxDYWxsYmFjaz1mdW5jdGlvbihvLGEpe3JldHVybiBpLl9oYW5kbGVXaGVlbEV2ZW50KG8sYSl9LGkuX3RvdWNoU3RhcnRDYWxsYmFjaz1mdW5jdGlvbihvLGEscyl7cmV0dXJuIGkuX2hhbmRsZVRvdWNoU3RhcnQobyxhLHMpfSxpLl90b3VjaE1vdmVDYWxsYmFjaz1mdW5jdGlvbihvLGEscyl7cmV0dXJuIGkuX2hhbmRsZVBpbmNoKG8sYSxzKX0saS5fdG91Y2hFbmRDYWxsYmFjaz1mdW5jdGlvbihvLGEscyl7cmV0dXJuIGkuX2hhbmRsZVRvdWNoRW5kKG8sYSxzKX0saS5fdG91Y2hDYW5jZWxDYWxsYmFjaz1mdW5jdGlvbihvLGEscyl7cmV0dXJuIGkuX2hhbmRsZVRvdWNoRW5kKG8sYSxzKX0saS5fcGFuRW5kQ2FsbGJhY2tzPW5ldyB2bC5DYWxsYmFja1NldCxpLl96b29tRW5kQ2FsbGJhY2tzPW5ldyB2bC5DYWxsYmFja1NldCxpLl9wYW5ab29tVXBkYXRlQ2FsbGJhY2tzPW5ldyB2bC5DYWxsYmFja1NldCxpLl94U2NhbGVzPW5ldyB2bC5TZXQsaS5feVNjYWxlcz1uZXcgdmwuU2V0LGkuX2RyYWdJbnRlcmFjdGlvbj1uZXcgZUJlLkRyYWcsaS5fc2V0dXBEcmFnSW50ZXJhY3Rpb24oKSxpLl90b3VjaElkcz10QmUubWFwKCksaS5fbWluRG9tYWluRXh0ZW50cz1uZXcgdmwuTWFwLGkuX21heERvbWFpbkV4dGVudHM9bmV3IHZsLk1hcCxpLl9taW5Eb21haW5WYWx1ZXM9bmV3IHZsLk1hcCxpLl9tYXhEb21haW5WYWx1ZXM9bmV3IHZsLk1hcCxyIT1udWxsJiZpLmFkZFhTY2FsZShyKSxuIT1udWxsJiZpLmFkZFlTY2FsZShuKSxpfXJldHVybiB0LnByb3RvdHlwZS5kcmFnSW50ZXJhY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZHJhZ0ludGVyYWN0aW9ufSx0LnByb3RvdHlwZS53aGVlbEZpbHRlcj1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTA/dGhpcy5fd2hlZWxGaWx0ZXI6KHRoaXMuX3doZWVsRmlsdGVyPXIsdGhpcyl9LHQucHJvdG90eXBlLnBhbj1mdW5jdGlvbihyKXt2YXIgbj10aGlzO3RoaXMueFNjYWxlcygpLmZvckVhY2goZnVuY3Rpb24oaSl7aS5wYW4obi5fY29uc3RyYWluZWRUcmFuc2xhdGlvbihpLHIueCkpfSksdGhpcy55U2NhbGVzKCkuZm9yRWFjaChmdW5jdGlvbihpKXtpLnBhbihuLl9jb25zdHJhaW5lZFRyYW5zbGF0aW9uKGksci55KSl9KSx0aGlzLl9wYW5ab29tVXBkYXRlQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3MoKX0sdC5wcm90b3R5cGUuem9vbT1mdW5jdGlvbihyLG4saSl7dmFyIG89dGhpcztpPT09dm9pZCAwJiYoaT0hMCk7dmFyIGEscztyZXR1cm4gbiE9bnVsbCYmKGE9bi54LHM9bi55LGkmJih0aGlzLnhTY2FsZXMoKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe3ZhciBjPW8uX2NvbnN0cmFpbmVkWm9vbShsLHIsYSk7YT1jLmNlbnRlclBvaW50LHI9Yy56b29tQW1vdW50fSksdGhpcy55U2NhbGVzKCkuZm9yRWFjaChmdW5jdGlvbihsKXt2YXIgYz1vLl9jb25zdHJhaW5lZFpvb20obCxyLHMpO3M9Yy5jZW50ZXJQb2ludCxyPWMuem9vbUFtb3VudH0pKSksdGhpcy54U2NhbGVzKCkuZm9yRWFjaChmdW5jdGlvbihsKXt2YXIgYz1sLnJhbmdlKCksdT1hPT1udWxsPyhjWzFdK2NbMF0pLzI6YTtsLnpvb20ocix1KX0pLHRoaXMueVNjYWxlcygpLmZvckVhY2goZnVuY3Rpb24obCl7dmFyIGM9bC5yYW5nZSgpLHU9cz09bnVsbD8oY1sxXStjWzBdKS8yOnM7bC56b29tKHIsdSl9KSx0aGlzLl9wYW5ab29tVXBkYXRlQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3MoKSx7em9vbUFtb3VudDpyLGNlbnRlclZhbHVlOntjZW50ZXJYOmEsY2VudGVyWTpzfX19LHQucHJvdG90eXBlLl9hbmNob3I9ZnVuY3Rpb24ocil7ZS5wcm90b3R5cGUuX2FuY2hvci5jYWxsKHRoaXMsciksdGhpcy5fZHJhZ0ludGVyYWN0aW9uLmF0dGFjaFRvKHIpLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj1NJHQuTW91c2UuZ2V0RGlzcGF0Y2hlcih0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub25XaGVlbCh0aGlzLl93aGVlbENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXI9TSR0LlRvdWNoLmdldERpc3BhdGNoZXIodGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbyksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hTdGFydCh0aGlzLl90b3VjaFN0YXJ0Q2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vblRvdWNoTW92ZSh0aGlzLl90b3VjaE1vdmVDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hFbmQodGhpcy5fdG91Y2hFbmRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hDYW5jZWwodGhpcy5fdG91Y2hDYW5jZWxDYWxsYmFjayl9LHQucHJvdG90eXBlLl91bmFuY2hvcj1mdW5jdGlvbigpe2UucHJvdG90eXBlLl91bmFuY2hvci5jYWxsKHRoaXMpLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZXaGVlbCh0aGlzLl93aGVlbENhbGxiYWNrKSx0aGlzLl9tb3VzZURpc3BhdGNoZXI9bnVsbCx0aGlzLl90b3VjaERpc3BhdGNoZXIub2ZmVG91Y2hTdGFydCh0aGlzLl90b3VjaFN0YXJ0Q2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaE1vdmUodGhpcy5fdG91Y2hNb3ZlQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaEVuZCh0aGlzLl90b3VjaEVuZENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub2ZmVG91Y2hDYW5jZWwodGhpcy5fdG91Y2hDYW5jZWxDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyPW51bGwsdGhpcy5fZHJhZ0ludGVyYWN0aW9uLmRldGFjaCgpfSx0LnByb3RvdHlwZS5faGFuZGxlVG91Y2hTdGFydD1mdW5jdGlvbihyLG4saSl7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aCYmdGhpcy5fdG91Y2hJZHMuc2l6ZSgpPDI7bysrKXt2YXIgYT1yW29dO3RoaXMuX3RvdWNoSWRzLnNldChhLnRvU3RyaW5nKCksdGhpcy5fdHJhbnNsYXRlVG9Db21wb25lbnRTcGFjZShuW2FdKSl9fSx0LnByb3RvdHlwZS5faGFuZGxlUGluY2g9ZnVuY3Rpb24ocixuLGkpe3ZhciBvPXRoaXM7aWYoISh0aGlzLl90b3VjaElkcy5zaXplKCk8Mikpe3ZhciBhPXRoaXMuX3RvdWNoSWRzLnZhbHVlcygpO2lmKCEoIXRoaXMuX2lzSW5zaWRlQ29tcG9uZW50KHRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2UoYVswXSkpfHwhdGhpcy5faXNJbnNpZGVDb21wb25lbnQodGhpcy5fdHJhbnNsYXRlVG9Db21wb25lbnRTcGFjZShhWzFdKSkpKXt2YXIgcz10Ll9wb2ludERpc3RhbmNlKGFbMF0sYVsxXSk7aWYocyE9PTApe3IuZm9yRWFjaChmdW5jdGlvbihTKXtvLl90b3VjaElkcy5oYXMoUy50b1N0cmluZygpKSYmby5fdG91Y2hJZHMuc2V0KFMudG9TdHJpbmcoKSxvLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlKG5bU10pKX0pO3ZhciBsPXRoaXMuX3RvdWNoSWRzLnZhbHVlcygpLGM9dC5fcG9pbnREaXN0YW5jZShsWzBdLGxbMV0pO2lmKGMhPT0wKXt2YXIgdT1zL2MsaD1sLm1hcChmdW5jdGlvbihTLEMpe3JldHVybnt4OihTLngtYVtDXS54KS91LHk6KFMueS1hW0NdLnkpL3V9fSksZj10LmNlbnRlclBvaW50KGFbMF0sYVsxXSkscD10aGlzLnpvb20odSxmKSxkPXAuY2VudGVyVmFsdWUsZz1wLnpvb21BbW91bnQsXz1kLmNlbnRlclgseT1kLmNlbnRlclkseD1hLm1hcChmdW5jdGlvbihTLEMpe3JldHVybnt4OmhbQ10ueCpnK1MueCx5OmhbQ10ueSpnK1MueX19KSxiPXt4Ol8tKHhbMF0ueCt4WzFdLngpLzIseTp5LSh4WzBdLnkreFsxXS55KS8yfTt0aGlzLnBhbihiKX19fX19LHQuY2VudGVyUG9pbnQ9ZnVuY3Rpb24ocixuKXt2YXIgaT1NYXRoLm1pbihyLngsbi54KSxvPU1hdGgubWF4KHIueCxuLngpLGE9TWF0aC5taW4oci55LG4ueSkscz1NYXRoLm1heChyLnksbi55KTtyZXR1cm57eDooaStvKS8yLHk6KHMrYSkvMn19LHQuX3BvaW50RGlzdGFuY2U9ZnVuY3Rpb24ocixuKXt2YXIgaT1NYXRoLm1pbihyLngsbi54KSxvPU1hdGgubWF4KHIueCxuLngpLGE9TWF0aC5taW4oci55LG4ueSkscz1NYXRoLm1heChyLnksbi55KTtyZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KG8taSwyKStNYXRoLnBvdyhzLWEsMikpfSx0LnByb3RvdHlwZS5faGFuZGxlVG91Y2hFbmQ9ZnVuY3Rpb24ocixuLGkpe3ZhciBvPXRoaXM7ci5mb3JFYWNoKGZ1bmN0aW9uKGEpe28uX3RvdWNoSWRzLnJlbW92ZShhLnRvU3RyaW5nKCkpfSksdGhpcy5fdG91Y2hJZHMuc2l6ZSgpPjAmJnRoaXMuX3pvb21FbmRDYWxsYmFja3MuY2FsbENhbGxiYWNrcygpfSx0LnByb3RvdHlwZS5faGFuZGxlV2hlZWxFdmVudD1mdW5jdGlvbihyLG4pe2lmKCEhdGhpcy5fd2hlZWxGaWx0ZXIobikpe3ZhciBpPXRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2Uocik7aWYodGhpcy5faXNJbnNpZGVDb21wb25lbnQoaSkpe24ucHJldmVudERlZmF1bHQoKTt2YXIgbz1uLmRlbHRhWSE9PTA/bi5kZWx0YVk6bi5kZWx0YVgsYT1vKihuLmRlbHRhTW9kZT90Ll9QSVhFTFNfUEVSX0xJTkU6MSkscz1NYXRoLnBvdygyLGEqLjAwMik7dGhpcy56b29tKHMsaSksdGhpcy5fem9vbUVuZENhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKCl9fX0sdC5wcm90b3R5cGUuX2NvbnN0cmFpbmVkWm9vbT1mdW5jdGlvbihyLG4saSl7cmV0dXJuIFQkdC5jb25zdHJhaW5lZFpvb20ocixuLGksdGhpcy5taW5Eb21haW5FeHRlbnQociksdGhpcy5tYXhEb21haW5FeHRlbnQociksdGhpcy5taW5Eb21haW5WYWx1ZShyKSx0aGlzLm1heERvbWFpblZhbHVlKHIpKX0sdC5wcm90b3R5cGUuX2NvbnN0cmFpbmVkVHJhbnNsYXRpb249ZnVuY3Rpb24ocixuKXtyZXR1cm4gVCR0LmNvbnN0cmFpbmVkVHJhbnNsYXRpb24ocixuLHRoaXMubWluRG9tYWluVmFsdWUociksdGhpcy5tYXhEb21haW5WYWx1ZShyKSl9LHQucHJvdG90eXBlLl9zZXR1cERyYWdJbnRlcmFjdGlvbj1mdW5jdGlvbigpe3ZhciByPXRoaXM7dGhpcy5fZHJhZ0ludGVyYWN0aW9uLmNvbnN0cmFpbmVkVG9Db21wb25lbnQoITEpO3ZhciBuO3RoaXMuX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWdTdGFydChmdW5jdGlvbigpe3JldHVybiBuPW51bGx9KSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnKGZ1bmN0aW9uKGksbyl7aWYoIShyLl90b3VjaElkcy5zaXplKCk+PTIpKXt2YXIgYT17eDoobj09bnVsbD9pLng6bi54KS1vLngseToobj09bnVsbD9pLnk6bi55KS1vLnl9O3IucGFuKGEpLG49b319KSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnRW5kKGZ1bmN0aW9uKCl7cmV0dXJuIHIuX3BhbkVuZENhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKCl9KX0sdC5wcm90b3R5cGUuX25vbkxpbmVhclNjYWxlV2l0aEV4dGVudHM9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMubWluRG9tYWluRXh0ZW50KHIpIT1udWxsJiZ0aGlzLm1heERvbWFpbkV4dGVudChyKSE9bnVsbCYmIShyIGluc3RhbmNlb2YgRSR0LkxpbmVhcikmJiEociBpbnN0YW5jZW9mIEUkdC5UaW1lKX0sdC5wcm90b3R5cGUueFNjYWxlcz1mdW5jdGlvbihyKXt2YXIgbj10aGlzO2lmKHI9PW51bGwpe3ZhciBpPVtdO3JldHVybiB0aGlzLl94U2NhbGVzLmZvckVhY2goZnVuY3Rpb24obyl7aS5wdXNoKG8pfSksaX1yZXR1cm4gdGhpcy5feFNjYWxlcz1uZXcgdmwuU2V0LHIuZm9yRWFjaChmdW5jdGlvbihvKXtuLmFkZFhTY2FsZShvKX0pLHRoaXN9LHQucHJvdG90eXBlLnlTY2FsZXM9ZnVuY3Rpb24ocil7dmFyIG49dGhpcztpZihyPT1udWxsKXt2YXIgaT1bXTtyZXR1cm4gdGhpcy5feVNjYWxlcy5mb3JFYWNoKGZ1bmN0aW9uKG8pe2kucHVzaChvKX0pLGl9cmV0dXJuIHRoaXMuX3lTY2FsZXM9bmV3IHZsLlNldCxyLmZvckVhY2goZnVuY3Rpb24obyl7bi5hZGRZU2NhbGUobyl9KSx0aGlzfSx0LnByb3RvdHlwZS5hZGRYU2NhbGU9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX3hTY2FsZXMuYWRkKHIpLHRoaXN9LHQucHJvdG90eXBlLnJlbW92ZVhTY2FsZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5feFNjYWxlcy5kZWxldGUociksdGhpcy5fbWluRG9tYWluRXh0ZW50cy5kZWxldGUociksdGhpcy5fbWF4RG9tYWluRXh0ZW50cy5kZWxldGUociksdGhpcy5fbWluRG9tYWluVmFsdWVzLmRlbGV0ZShyKSx0aGlzLl9tYXhEb21haW5WYWx1ZXMuZGVsZXRlKHIpLHRoaXN9LHQucHJvdG90eXBlLmFkZFlTY2FsZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5feVNjYWxlcy5hZGQociksdGhpc30sdC5wcm90b3R5cGUucmVtb3ZlWVNjYWxlPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl95U2NhbGVzLmRlbGV0ZShyKSx0aGlzLl9taW5Eb21haW5FeHRlbnRzLmRlbGV0ZShyKSx0aGlzLl9tYXhEb21haW5FeHRlbnRzLmRlbGV0ZShyKSx0aGlzLl9taW5Eb21haW5WYWx1ZXMuZGVsZXRlKHIpLHRoaXMuX21heERvbWFpblZhbHVlcy5kZWxldGUociksdGhpc30sdC5wcm90b3R5cGUubWluRG9tYWluRXh0ZW50PWZ1bmN0aW9uKHIsbil7aWYobj09bnVsbClyZXR1cm4gdGhpcy5fbWluRG9tYWluRXh0ZW50cy5nZXQocik7aWYobi52YWx1ZU9mKCk8MCl0aHJvdyBuZXcgRXJyb3IoImV4dGVudCBtdXN0IGJlIG5vbi1uZWdhdGl2ZSIpO3ZhciBpPXRoaXMubWF4RG9tYWluRXh0ZW50KHIpO2lmKGkhPW51bGwmJmkudmFsdWVPZigpPG4udmFsdWVPZigpKXRocm93IG5ldyBFcnJvcigibWluRG9tYWluRXh0ZW50IG11c3QgYmUgc21hbGxlciB0aGFuIG1heERvbWFpbkV4dGVudCBmb3IgdGhlIHNhbWUgU2NhbGUiKTtyZXR1cm4gdGhpcy5fbm9uTGluZWFyU2NhbGVXaXRoRXh0ZW50cyhyKSYmdmwuV2luZG93Lndhcm4oIlBhbm5pbmcgYW5kIHpvb21pbmcgd2l0aCBleHRlbnRzIG9uIGEgbm9ubGluZWFyIHNjYWxlIG1heSBoYXZlIHVuaW50ZW5kZWQgYmVoYXZpb3IuIiksdGhpcy5fbWluRG9tYWluRXh0ZW50cy5zZXQocixuKSx0aGlzfSx0LnByb3RvdHlwZS5tYXhEb21haW5FeHRlbnQ9ZnVuY3Rpb24ocixuKXtpZihuPT1udWxsKXJldHVybiB0aGlzLl9tYXhEb21haW5FeHRlbnRzLmdldChyKTtpZihuLnZhbHVlT2YoKTw9MCl0aHJvdyBuZXcgRXJyb3IoImV4dGVudCBtdXN0IGJlIHBvc2l0aXZlIik7dmFyIGk9dGhpcy5taW5Eb21haW5FeHRlbnQocik7aWYoaSE9bnVsbCYmbi52YWx1ZU9mKCk8aS52YWx1ZU9mKCkpdGhyb3cgbmV3IEVycm9yKCJtYXhEb21haW5FeHRlbnQgbXVzdCBiZSBsYXJnZXIgdGhhbiBtaW5Eb21haW5FeHRlbnQgZm9yIHRoZSBzYW1lIFNjYWxlIik7cmV0dXJuIHRoaXMuX25vbkxpbmVhclNjYWxlV2l0aEV4dGVudHMocikmJnZsLldpbmRvdy53YXJuKCJQYW5uaW5nIGFuZCB6b29taW5nIHdpdGggZXh0ZW50cyBvbiBhIG5vbmxpbmVhciBzY2FsZSBtYXkgaGF2ZSB1bmludGVuZGVkIGJlaGF2aW9yLiIpLHRoaXMuX21heERvbWFpbkV4dGVudHMuc2V0KHIsbiksdGhpc30sdC5wcm90b3R5cGUubWluRG9tYWluVmFsdWU9ZnVuY3Rpb24ocixuKXtyZXR1cm4gbj09bnVsbD90aGlzLl9taW5Eb21haW5WYWx1ZXMuZ2V0KHIpOih0aGlzLl9taW5Eb21haW5WYWx1ZXMuc2V0KHIsbiksdGhpcyl9LHQucHJvdG90eXBlLm1heERvbWFpblZhbHVlPWZ1bmN0aW9uKHIsbil7cmV0dXJuIG49PW51bGw/dGhpcy5fbWF4RG9tYWluVmFsdWVzLmdldChyKToodGhpcy5fbWF4RG9tYWluVmFsdWVzLnNldChyLG4pLHRoaXMpfSx0LnByb3RvdHlwZS5zZXRNaW5NYXhEb21haW5WYWx1ZXNUbz1mdW5jdGlvbihyKXt0aGlzLl9taW5Eb21haW5WYWx1ZXMuZGVsZXRlKHIpLHRoaXMuX21heERvbWFpblZhbHVlcy5kZWxldGUocik7dmFyIG49ci5nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbigpLGk9blswXSxvPW5bMV07cmV0dXJuIHRoaXMubWluRG9tYWluVmFsdWUocixpKSx0aGlzLm1heERvbWFpblZhbHVlKHIsbyksdGhpc30sdC5wcm90b3R5cGUub25QYW5FbmQ9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX3BhbkVuZENhbGxiYWNrcy5hZGQociksdGhpc30sdC5wcm90b3R5cGUub2ZmUGFuRW5kPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9wYW5FbmRDYWxsYmFja3MuZGVsZXRlKHIpLHRoaXN9LHQucHJvdG90eXBlLm9uWm9vbUVuZD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fem9vbUVuZENhbGxiYWNrcy5hZGQociksdGhpc30sdC5wcm90b3R5cGUub2ZmWm9vbUVuZD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fem9vbUVuZENhbGxiYWNrcy5kZWxldGUociksdGhpc30sdC5wcm90b3R5cGUub25QYW5ab29tVXBkYXRlPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9wYW5ab29tVXBkYXRlQ2FsbGJhY2tzLmFkZChyKSx0aGlzfSx0LnByb3RvdHlwZS5vZmZQYW5ab29tVXBkYXRlPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9wYW5ab29tVXBkYXRlQ2FsbGJhY2tzLmRlbGV0ZShyKSx0aGlzfSx0Ll9QSVhFTFNfUEVSX0xJTkU9MTIwLHR9KHJCZS5JbnRlcmFjdGlvbik7U290LlBhblpvb209bkJlfSk7dmFyIFAkdD1IKEVvdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoRW90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaUJlPShkZSgpLFV0KHBlKSksQSR0PUR2KCksTW90PUZlKCksb0JlPU92KCksYUJlPWZ1bmN0aW9uKGUpe2lCZS5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KCl7dmFyIHI9ZSE9PW51bGwmJmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiByLl9vdmVyQ29tcG9uZW50PSExLHIuX3BvaW50ZXJFbnRlckNhbGxiYWNrcz1uZXcgTW90LkNhbGxiYWNrU2V0LHIuX3BvaW50ZXJNb3ZlQ2FsbGJhY2tzPW5ldyBNb3QuQ2FsbGJhY2tTZXQsci5fcG9pbnRlckV4aXRDYWxsYmFja3M9bmV3IE1vdC5DYWxsYmFja1NldCxyLl9tb3VzZU1vdmVDYWxsYmFjaz1mdW5jdGlvbihuLGkpe3JldHVybiByLl9oYW5kbGVNb3VzZUV2ZW50KG4saSl9LHIuX3RvdWNoU3RhcnRDYWxsYmFjaz1mdW5jdGlvbihuLGksbyl7cmV0dXJuIHIuX2hhbmRsZVRvdWNoRXZlbnQoaVtuWzBdXSxvKX0scn1yZXR1cm4gdC5wcm90b3R5cGUuX2FuY2hvcj1mdW5jdGlvbihyKXtlLnByb3RvdHlwZS5fYW5jaG9yLmNhbGwodGhpcyxyKSx0aGlzLl9tb3VzZURpc3BhdGNoZXI9QSR0Lk1vdXNlLmdldERpc3BhdGNoZXIodGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbyksdGhpcy5fbW91c2VEaXNwYXRjaGVyLm9uTW91c2VNb3ZlKHRoaXMuX21vdXNlTW92ZUNhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXI9QSR0LlRvdWNoLmdldERpc3BhdGNoZXIodGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbyksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hTdGFydCh0aGlzLl90b3VjaFN0YXJ0Q2FsbGJhY2spfSx0LnByb3RvdHlwZS5fdW5hbmNob3I9ZnVuY3Rpb24oKXtlLnByb3RvdHlwZS5fdW5hbmNob3IuY2FsbCh0aGlzKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub2ZmTW91c2VNb3ZlKHRoaXMuX21vdXNlTW92ZUNhbGxiYWNrKSx0aGlzLl9tb3VzZURpc3BhdGNoZXI9bnVsbCx0aGlzLl90b3VjaERpc3BhdGNoZXIub2ZmVG91Y2hTdGFydCh0aGlzLl90b3VjaFN0YXJ0Q2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlcj1udWxsfSx0LnByb3RvdHlwZS5faGFuZGxlTW91c2VFdmVudD1mdW5jdGlvbihyLG4pe3ZhciBpPXRoaXMuX21vdXNlRGlzcGF0Y2hlci5ldmVudEluc2lkZSh0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvLG4pO3RoaXMuX2hhbmRsZVBvaW50ZXJFdmVudChyLGkpfSx0LnByb3RvdHlwZS5faGFuZGxlVG91Y2hFdmVudD1mdW5jdGlvbihyLG4pe3ZhciBpPXRoaXMuX3RvdWNoRGlzcGF0Y2hlci5ldmVudEluc2lkZSh0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvLG4pO3RoaXMuX2hhbmRsZVBvaW50ZXJFdmVudChyLGkpfSx0LnByb3RvdHlwZS5faGFuZGxlUG9pbnRlckV2ZW50PWZ1bmN0aW9uKHIsbil7dmFyIGk9dGhpcy5fdHJhbnNsYXRlVG9Db21wb25lbnRTcGFjZShyKSxvPXRoaXMuX2lzSW5zaWRlQ29tcG9uZW50KGkpO28mJm4/KHRoaXMuX292ZXJDb21wb25lbnR8fHRoaXMuX3BvaW50ZXJFbnRlckNhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKGkpLHRoaXMuX3BvaW50ZXJNb3ZlQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3MoaSkpOnRoaXMuX292ZXJDb21wb25lbnQmJnRoaXMuX3BvaW50ZXJFeGl0Q2FsbGJhY2tzLmNhbGxDYWxsYmFja3MoaSksdGhpcy5fb3ZlckNvbXBvbmVudD1vJiZufSx0LnByb3RvdHlwZS5vblBvaW50ZXJFbnRlcj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fcG9pbnRlckVudGVyQ2FsbGJhY2tzLmFkZChyKSx0aGlzfSx0LnByb3RvdHlwZS5vZmZQb2ludGVyRW50ZXI9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX3BvaW50ZXJFbnRlckNhbGxiYWNrcy5kZWxldGUociksdGhpc30sdC5wcm90b3R5cGUub25Qb2ludGVyTW92ZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fcG9pbnRlck1vdmVDYWxsYmFja3MuYWRkKHIpLHRoaXN9LHQucHJvdG90eXBlLm9mZlBvaW50ZXJNb3ZlPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9wb2ludGVyTW92ZUNhbGxiYWNrcy5kZWxldGUociksdGhpc30sdC5wcm90b3R5cGUub25Qb2ludGVyRXhpdD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fcG9pbnRlckV4aXRDYWxsYmFja3MuYWRkKHIpLHRoaXN9LHQucHJvdG90eXBlLm9mZlBvaW50ZXJFeGl0PWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9wb2ludGVyRXhpdENhbGxiYWNrcy5kZWxldGUociksdGhpc30sdH0ob0JlLkludGVyYWN0aW9uKTtFb3QuUG9pbnRlcj1hQmV9KTt2YXIgbDQ9SChKZz0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSmcsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBjND0oZGUoKSxVdChwZSkpO2M0Ll9fZXhwb3J0U3Rhcih4JHQoKSxKZyk7YzQuX19leHBvcnRTdGFyKHckdCgpLEpnKTtjNC5fX2V4cG9ydFN0YXIod290KCksSmcpO2M0Ll9fZXhwb3J0U3RhcihDJHQoKSxKZyk7YzQuX19leHBvcnRTdGFyKFAkdCgpLEpnKTt2YXIgc0JlPWU0KCk7Smcuem9vbU91dD1zQmUuem9vbU91dH0pO3ZhciBUb3Q9SCh1ND0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodTQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBsQmU9KGRlKCksVXQocGUpKSxWRj1GZSgpLGNCZT1rYygpLHJzOyhmdW5jdGlvbihlKXtlW2UuVkFMVUU9MF09IlZBTFVFIixlW2UuUElYRUw9MV09IlBJWEVMIn0pKHJzPXU0LlByb3BlcnR5TW9kZXx8KHU0LlByb3BlcnR5TW9kZT17fSkpO3ZhciB1QmU9ZnVuY3Rpb24oZSl7bEJlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQoKXt2YXIgcj1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHIuX2JveFZpc2libGU9ITEsci5fYm94Qm91bmRzPXt0b3BMZWZ0Ont4OjAseTowfSxib3R0b21SaWdodDp7eDowLHk6MH19LHIuX3hCb3VuZHNNb2RlPXJzLlBJWEVMLHIuX3lCb3VuZHNNb2RlPXJzLlBJWEVMLHIuYWRkQ2xhc3MoInNlbGVjdGlvbi1ib3gtbGF5ZXIiKSxyLl9hZGp1c3RCb3VuZHNDYWxsYmFjaz1mdW5jdGlvbigpe3IucmVuZGVyKCl9LHIuX292ZXJmbG93SGlkZGVuPSEwLHIuX3hFeHRlbnQ9W3ZvaWQgMCx2b2lkIDBdLHIuX3lFeHRlbnQ9W3ZvaWQgMCx2b2lkIDBdLHJ9cmV0dXJuIHQucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe2UucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLHRoaXMuX2JveD10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJzZWxlY3Rpb24tYm94IiwhMCkucmVtb3ZlKCksdGhpcy5fYm94QXJlYT10aGlzLl9ib3guYXBwZW5kKCJyZWN0IikuY2xhc3NlZCgic2VsZWN0aW9uLWFyZWEiLCEwKX0sdC5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXI9ZnVuY3Rpb24ocixuKXtyZXR1cm57d2lkdGg6cixoZWlnaHQ6bn19LHQucHJvdG90eXBlLmJvdW5kcz1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9nZXRCb3VuZHMoKToodGhpcy5fc2V0Qm91bmRzKHIpLHRoaXMuX3hCb3VuZHNNb2RlPXJzLlBJWEVMLHRoaXMuX3lCb3VuZHNNb2RlPXJzLlBJWEVMLHRoaXMucmVuZGVyKCksdGhpcyl9LHQucHJvdG90eXBlLl9zZXRCb3VuZHM9ZnVuY3Rpb24ocil7dmFyIG49e3g6TWF0aC5taW4oci50b3BMZWZ0Lngsci5ib3R0b21SaWdodC54KSx5Ok1hdGgubWluKHIudG9wTGVmdC55LHIuYm90dG9tUmlnaHQueSl9LGk9e3g6TWF0aC5tYXgoci50b3BMZWZ0Lngsci5ib3R0b21SaWdodC54KSx5Ok1hdGgubWF4KHIudG9wTGVmdC55LHIuYm90dG9tUmlnaHQueSl9O3RoaXMuX2JveEJvdW5kcz17dG9wTGVmdDpuLGJvdHRvbVJpZ2h0Oml9fSx0LnByb3RvdHlwZS5fZ2V0Qm91bmRzPWZ1bmN0aW9uKCl7cmV0dXJue3RvcExlZnQ6e3g6dGhpcy5feEJvdW5kc01vZGU9PT1ycy5QSVhFTD90aGlzLl9ib3hCb3VuZHMudG9wTGVmdC54OnRoaXMuX3hTY2FsZT09bnVsbD8wOk1hdGgubWluKHRoaXMueFNjYWxlKCkuc2NhbGUodGhpcy54RXh0ZW50KClbMF0pLHRoaXMueFNjYWxlKCkuc2NhbGUodGhpcy54RXh0ZW50KClbMV0pKSx5OnRoaXMuX3lCb3VuZHNNb2RlPT09cnMuUElYRUw/dGhpcy5fYm94Qm91bmRzLnRvcExlZnQueTp0aGlzLl95U2NhbGU9PW51bGw/MDpNYXRoLm1pbih0aGlzLnlTY2FsZSgpLnNjYWxlKHRoaXMueUV4dGVudCgpWzBdKSx0aGlzLnlTY2FsZSgpLnNjYWxlKHRoaXMueUV4dGVudCgpWzFdKSl9LGJvdHRvbVJpZ2h0Ont4OnRoaXMuX3hCb3VuZHNNb2RlPT09cnMuUElYRUw/dGhpcy5fYm94Qm91bmRzLmJvdHRvbVJpZ2h0Lng6dGhpcy5feFNjYWxlPT1udWxsPzA6TWF0aC5tYXgodGhpcy54U2NhbGUoKS5zY2FsZSh0aGlzLnhFeHRlbnQoKVswXSksdGhpcy54U2NhbGUoKS5zY2FsZSh0aGlzLnhFeHRlbnQoKVsxXSkpLHk6dGhpcy5feUJvdW5kc01vZGU9PT1ycy5QSVhFTD90aGlzLl9ib3hCb3VuZHMuYm90dG9tUmlnaHQueTp0aGlzLl95U2NhbGU9PW51bGw/MDpNYXRoLm1heCh0aGlzLnlTY2FsZSgpLnNjYWxlKHRoaXMueUV4dGVudCgpWzBdKSx0aGlzLnlTY2FsZSgpLnNjYWxlKHRoaXMueUV4dGVudCgpWzFdKSl9fX0sdC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHk9ZnVuY3Rpb24oKXtpZihlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseS5jYWxsKHRoaXMpLHRoaXMuX2JveFZpc2libGUpe3ZhciByPXRoaXMuYm91bmRzKCksbj1yLnRvcExlZnQueSxpPXIuYm90dG9tUmlnaHQueSxvPXIudG9wTGVmdC54LGE9ci5ib3R0b21SaWdodC54O2lmKCEoVkYuTWF0aC5pc1ZhbGlkTnVtYmVyKG4pJiZWRi5NYXRoLmlzVmFsaWROdW1iZXIoaSkmJlZGLk1hdGguaXNWYWxpZE51bWJlcihvKSYmVkYuTWF0aC5pc1ZhbGlkTnVtYmVyKGEpKSl0aHJvdyBuZXcgRXJyb3IoImJvdW5kcyBoYXZlIG5vdCBiZWVuIHByb3Blcmx5IHNldCIpO3RoaXMuX2JveEFyZWEuYXR0cnMoe3g6byx5Om4sd2lkdGg6YS1vLGhlaWdodDppLW59KSx0aGlzLmNvbnRlbnQoKS5ub2RlKCkuYXBwZW5kQ2hpbGQodGhpcy5fYm94Lm5vZGUoKSl9ZWxzZSB0aGlzLl9ib3gucmVtb3ZlKCk7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmJveFZpc2libGU9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5fYm94VmlzaWJsZToodGhpcy5fYm94VmlzaWJsZT1yLHRoaXMucmVuZGVyKCksdGhpcyl9LHQucHJvdG90eXBlLmZpeGVkV2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sdC5wcm90b3R5cGUuZml4ZWRIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sdC5wcm90b3R5cGUueFNjYWxlPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX3hTY2FsZToodGhpcy5feFNjYWxlIT1udWxsJiZ0aGlzLl94U2NhbGUub2ZmVXBkYXRlKHRoaXMuX2FkanVzdEJvdW5kc0NhbGxiYWNrKSx0aGlzLl94U2NhbGU9cix0aGlzLl94Qm91bmRzTW9kZT1ycy5WQUxVRSx0aGlzLl94U2NhbGUub25VcGRhdGUodGhpcy5fYWRqdXN0Qm91bmRzQ2FsbGJhY2spLHRoaXMucmVuZGVyKCksdGhpcyl9LHQucHJvdG90eXBlLnlTY2FsZT1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl95U2NhbGU6KHRoaXMuX3lTY2FsZSE9bnVsbCYmdGhpcy5feVNjYWxlLm9mZlVwZGF0ZSh0aGlzLl9hZGp1c3RCb3VuZHNDYWxsYmFjayksdGhpcy5feVNjYWxlPXIsdGhpcy5feUJvdW5kc01vZGU9cnMuVkFMVUUsdGhpcy5feVNjYWxlLm9uVXBkYXRlKHRoaXMuX2FkanVzdEJvdW5kc0NhbGxiYWNrKSx0aGlzLnJlbmRlcigpLHRoaXMpfSx0LnByb3RvdHlwZS54RXh0ZW50PWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX2dldFhFeHRlbnQoKToodGhpcy5fc2V0WEV4dGVudChyKSx0aGlzLl94Qm91bmRzTW9kZT1ycy5WQUxVRSx0aGlzLnJlbmRlcigpLHRoaXMpfSx0LnByb3RvdHlwZS5fZ2V0WEV4dGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl94Qm91bmRzTW9kZT09PXJzLlZBTFVFP3RoaXMuX3hFeHRlbnQ6dGhpcy5feFNjYWxlPT1udWxsP1t2b2lkIDAsdm9pZCAwXTpbdGhpcy5feFNjYWxlLmludmVydCh0aGlzLl9ib3hCb3VuZHMudG9wTGVmdC54KSx0aGlzLl94U2NhbGUuaW52ZXJ0KHRoaXMuX2JveEJvdW5kcy5ib3R0b21SaWdodC54KV19LHQucHJvdG90eXBlLl9zZXRYRXh0ZW50PWZ1bmN0aW9uKHIpe3RoaXMuX3hFeHRlbnQ9cn0sdC5wcm90b3R5cGUueUV4dGVudD1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9nZXRZRXh0ZW50KCk6KHRoaXMuX3NldFlFeHRlbnQociksdGhpcy5feUJvdW5kc01vZGU9cnMuVkFMVUUsdGhpcy5yZW5kZXIoKSx0aGlzKX0sdC5wcm90b3R5cGUuX2dldFlFeHRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5feUJvdW5kc01vZGU9PT1ycy5WQUxVRT90aGlzLl95RXh0ZW50OnRoaXMuX3lTY2FsZT09bnVsbD9bdm9pZCAwLHZvaWQgMF06W3RoaXMuX3lTY2FsZS5pbnZlcnQodGhpcy5fYm94Qm91bmRzLnRvcExlZnQueSksdGhpcy5feVNjYWxlLmludmVydCh0aGlzLl9ib3hCb3VuZHMuYm90dG9tUmlnaHQueSldfSx0LnByb3RvdHlwZS5fc2V0WUV4dGVudD1mdW5jdGlvbihyKXt0aGlzLl95RXh0ZW50PXJ9LHQucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtlLnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyksdGhpcy5feFNjYWxlIT1udWxsJiZ0aGlzLnhTY2FsZSgpLm9mZlVwZGF0ZSh0aGlzLl9hZGp1c3RCb3VuZHNDYWxsYmFjayksdGhpcy5feVNjYWxlIT1udWxsJiZ0aGlzLnlTY2FsZSgpLm9mZlVwZGF0ZSh0aGlzLl9hZGp1c3RCb3VuZHNDYWxsYmFjayl9LHR9KGNCZS5Db21wb25lbnQpO3U0LlNlbGVjdGlvbkJveExheWVyPXVCZX0pO3ZhciBxRj1IKEFvdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoQW90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaEJlPShkZSgpLFV0KHBlKSksZkJlPWw0KCksQ290PUZlKCkscEJlPWpnKCksVUY9UG90KCksZEJlPVRvdCgpLG1CZT1mdW5jdGlvbihlKXtoQmUuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdCgpe3ZhciByPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gci5fZGV0ZWN0aW9uUmFkaXVzPTMsci5fcmVzaXphYmxlPSExLHIuX21vdmFibGU9ITEsci5faGFzQ29ybmVycz0hMCxyLmFkZENsYXNzKCJkcmFnLWJveC1sYXllciIpLHIuX2RyYWdJbnRlcmFjdGlvbj1uZXcgZkJlLkRyYWcsci5fc2V0VXBDYWxsYmFja3MoKSxyLl9kcmFnSW50ZXJhY3Rpb24uYXR0YWNoVG8ociksci5fZHJhZ1N0YXJ0Q2FsbGJhY2tzPW5ldyBDb3QuQ2FsbGJhY2tTZXQsci5fZHJhZ0NhbGxiYWNrcz1uZXcgQ290LkNhbGxiYWNrU2V0LHIuX2RyYWdFbmRDYWxsYmFja3M9bmV3IENvdC5DYWxsYmFja1NldCxyfXJldHVybiB0LnByb3RvdHlwZS5fc2V0VXBDYWxsYmFja3M9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLG4saSxvLGEscz17bmV3Qm94OjAscmVzaXplOjEsbW92ZToyfSxsPXMubmV3Qm94LGM9ZnVuY3Rpb24oZil7bj1yLl9nZXRSZXNpemluZ0VkZ2VzKGYpO3ZhciBwPXIuYm91bmRzKCksZD1wLnRvcExlZnQueDw9Zi54JiZmLng8PXAuYm90dG9tUmlnaHQueCYmcC50b3BMZWZ0Lnk8PWYueSYmZi55PD1wLmJvdHRvbVJpZ2h0Lnk7ci5ib3hWaXNpYmxlKCkmJihuLnRvcHx8bi5ib3R0b218fG4ubGVmdHx8bi5yaWdodCk/bD1zLnJlc2l6ZTpyLmJveFZpc2libGUoKSYmci5tb3ZhYmxlKCkmJmQ/bD1zLm1vdmU6KGw9cy5uZXdCb3gsci5fc2V0Qm91bmRzKHt0b3BMZWZ0OmYsYm90dG9tUmlnaHQ6Zn0pLHIuX3hCb3VuZHNNb2RlPT09VUYuUHJvcGVydHlNb2RlLlZBTFVFJiZyLnhTY2FsZSgpIT1udWxsJiZyLl9zZXRYRXh0ZW50KFtyLnhTY2FsZSgpLmludmVydChmLngpLHIueFNjYWxlKCkuaW52ZXJ0KGYueCldKSxyLl95Qm91bmRzTW9kZT09PVVGLlByb3BlcnR5TW9kZS5WQUxVRSYmci55U2NhbGUoKSE9bnVsbCYmci5fc2V0WUV4dGVudChbci55U2NhbGUoKS5pbnZlcnQoZi55KSxyLnlTY2FsZSgpLmludmVydChmLnkpXSksci5yZW5kZXIoKSksci5ib3hWaXNpYmxlKCEwKSxwPXIuYm91bmRzKCksaT17eDpwLnRvcExlZnQueCx5OnAudG9wTGVmdC55fSxvPXt4OnAuYm90dG9tUmlnaHQueCx5OnAuYm90dG9tUmlnaHQueX0sYT1mLHIuX2RyYWdTdGFydENhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHApfSx1PWZ1bmN0aW9uKGYscCl7c3dpdGNoKGwpe2Nhc2Ugcy5uZXdCb3g6by54PXAueCxvLnk9cC55O2JyZWFrO2Nhc2Ugcy5yZXNpemU6bi5ib3R0b20/by55PXAueTpuLnRvcCYmKGkueT1wLnkpLG4ucmlnaHQ/by54PXAueDpuLmxlZnQmJihpLng9cC54KTticmVhaztjYXNlIHMubW92ZTp2YXIgZD1wLngtYS54LGc9cC55LWEueTtpLngrPWQsaS55Kz1nLG8ueCs9ZCxvLnkrPWcsYT1wO2JyZWFrfXIuX3NldEJvdW5kcyh7dG9wTGVmdDppLGJvdHRvbVJpZ2h0Om99KSxyLl94Qm91bmRzTW9kZT09PVVGLlByb3BlcnR5TW9kZS5WQUxVRSYmci54U2NhbGUoKSE9bnVsbCYmci5fc2V0WEV4dGVudChbci54U2NhbGUoKS5pbnZlcnQoaS54KSxyLnhTY2FsZSgpLmludmVydChvLngpXSksci5feUJvdW5kc01vZGU9PT1VRi5Qcm9wZXJ0eU1vZGUuVkFMVUUmJnIueVNjYWxlKCkhPW51bGwmJnIuX3NldFlFeHRlbnQoW3IueVNjYWxlKCkuaW52ZXJ0KGkueSksci55U2NhbGUoKS5pbnZlcnQoby55KV0pLHIucmVuZGVyKCksci5fZHJhZ0NhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHIuYm91bmRzKCkpfSxoPWZ1bmN0aW9uKGYscCl7bD09PXMubmV3Qm94JiZmLng9PT1wLngmJmYueT09PXAueSYmci5ib3hWaXNpYmxlKCExKSxyLl9kcmFnRW5kQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3Moci5ib3VuZHMoKSl9O3RoaXMuX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWdTdGFydChjKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnKHUpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWdFbmQoaCksdGhpcy5fZGlzY29ubmVjdEludGVyYWN0aW9uPWZ1bmN0aW9uKCl7ci5fZHJhZ0ludGVyYWN0aW9uLm9mZkRyYWdTdGFydChjKSxyLl9kcmFnSW50ZXJhY3Rpb24ub2ZmRHJhZyh1KSxyLl9kcmFnSW50ZXJhY3Rpb24ub2ZmRHJhZ0VuZChoKSxyLl9kcmFnSW50ZXJhY3Rpb24uZGV0YWNoKCl9fSx0LnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt2YXIgcj10aGlzO2UucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpO3ZhciBuPWZ1bmN0aW9uKCl7cmV0dXJuIHIuX2JveC5hcHBlbmQoImxpbmUiKS5zdHlsZXMoe29wYWNpdHk6MCxzdHJva2U6InBpbmsiLCJwb2ludGVyLWV2ZW50cyI6InZpc2libGVTdHJva2UifSl9O2lmKHRoaXMuX2RldGVjdGlvbkVkZ2VUPW4oKS5jbGFzc2VkKCJkcmFnLWVkZ2UtdGIiLCEwKSx0aGlzLl9kZXRlY3Rpb25FZGdlQj1uKCkuY2xhc3NlZCgiZHJhZy1lZGdlLXRiIiwhMCksdGhpcy5fZGV0ZWN0aW9uRWRnZUw9bigpLmNsYXNzZWQoImRyYWctZWRnZS1sciIsITApLHRoaXMuX2RldGVjdGlvbkVkZ2VSPW4oKS5jbGFzc2VkKCJkcmFnLWVkZ2UtbHIiLCEwKSx0aGlzLl9oYXNDb3JuZXJzKXt2YXIgaT1mdW5jdGlvbigpe3JldHVybiByLl9ib3guYXBwZW5kKCJjaXJjbGUiKS5zdHlsZXMoe29wYWNpdHk6MCxmaWxsOiJwaW5rIiwicG9pbnRlci1ldmVudHMiOiJ2aXNpYmxlRmlsbCJ9KX07dGhpcy5fZGV0ZWN0aW9uQ29ybmVyVEw9aSgpLmNsYXNzZWQoImRyYWctY29ybmVyLXRsIiwhMCksdGhpcy5fZGV0ZWN0aW9uQ29ybmVyVFI9aSgpLmNsYXNzZWQoImRyYWctY29ybmVyLXRyIiwhMCksdGhpcy5fZGV0ZWN0aW9uQ29ybmVyQkw9aSgpLmNsYXNzZWQoImRyYWctY29ybmVyLWJsIiwhMCksdGhpcy5fZGV0ZWN0aW9uQ29ybmVyQlI9aSgpLmNsYXNzZWQoImRyYWctY29ybmVyLWJyIiwhMCl9fSx0LnByb3RvdHlwZS5fZ2V0UmVzaXppbmdFZGdlcz1mdW5jdGlvbihyKXt2YXIgbj17dG9wOiExLGJvdHRvbTohMSxsZWZ0OiExLHJpZ2h0OiExfTtpZighdGhpcy5yZXNpemFibGUoKSlyZXR1cm4gbjt2YXIgaT10aGlzLmJvdW5kcygpLG89aS50b3BMZWZ0LnksYT1pLmJvdHRvbVJpZ2h0Lnkscz1pLnRvcExlZnQueCxsPWkuYm90dG9tUmlnaHQueCxjPXRoaXMuX2RldGVjdGlvblJhZGl1cztyZXR1cm4gcy1jPD1yLngmJnIueDw9bCtjJiYobi50b3A9by1jPD1yLnkmJnIueTw9bytjLG4uYm90dG9tPWEtYzw9ci55JiZyLnk8PWErYyksby1jPD1yLnkmJnIueTw9YStjJiYobi5sZWZ0PXMtYzw9ci54JiZyLng8PXMrYyxuLnJpZ2h0PWwtYzw9ci54JiZyLng8PWwrYyksbn0sdC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHk9ZnVuY3Rpb24oKXtpZihlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseS5jYWxsKHRoaXMpLHRoaXMuYm94VmlzaWJsZSgpKXt2YXIgcj10aGlzLmJvdW5kcygpLG49ci50b3BMZWZ0LnksaT1yLmJvdHRvbVJpZ2h0Lnksbz1yLnRvcExlZnQueCxhPXIuYm90dG9tUmlnaHQueDt0aGlzLl9kZXRlY3Rpb25FZGdlVC5hdHRycyh7eDE6byx5MTpuLHgyOmEseTI6biwic3Ryb2tlLXdpZHRoIjp0aGlzLl9kZXRlY3Rpb25SYWRpdXMqMn0pLHRoaXMuX2RldGVjdGlvbkVkZ2VCLmF0dHJzKHt4MTpvLHkxOmkseDI6YSx5MjppLCJzdHJva2Utd2lkdGgiOnRoaXMuX2RldGVjdGlvblJhZGl1cyoyfSksdGhpcy5fZGV0ZWN0aW9uRWRnZUwuYXR0cnMoe3gxOm8seTE6bix4MjpvLHkyOmksInN0cm9rZS13aWR0aCI6dGhpcy5fZGV0ZWN0aW9uUmFkaXVzKjJ9KSx0aGlzLl9kZXRlY3Rpb25FZGdlUi5hdHRycyh7eDE6YSx5MTpuLHgyOmEseTI6aSwic3Ryb2tlLXdpZHRoIjp0aGlzLl9kZXRlY3Rpb25SYWRpdXMqMn0pLHRoaXMuX2hhc0Nvcm5lcnMmJih0aGlzLl9kZXRlY3Rpb25Db3JuZXJUTC5hdHRycyh7Y3g6byxjeTpuLHI6dGhpcy5fZGV0ZWN0aW9uUmFkaXVzfSksdGhpcy5fZGV0ZWN0aW9uQ29ybmVyVFIuYXR0cnMoe2N4OmEsY3k6bixyOnRoaXMuX2RldGVjdGlvblJhZGl1c30pLHRoaXMuX2RldGVjdGlvbkNvcm5lckJMLmF0dHJzKHtjeDpvLGN5Omkscjp0aGlzLl9kZXRlY3Rpb25SYWRpdXN9KSx0aGlzLl9kZXRlY3Rpb25Db3JuZXJCUi5hdHRycyh7Y3g6YSxjeTppLHI6dGhpcy5fZGV0ZWN0aW9uUmFkaXVzfSkpfXJldHVybiB0aGlzfSx0LnByb3RvdHlwZS5kZXRlY3Rpb25SYWRpdXM9ZnVuY3Rpb24ocil7aWYocj09bnVsbClyZXR1cm4gdGhpcy5fZGV0ZWN0aW9uUmFkaXVzO2lmKHI8MCl0aHJvdyBuZXcgRXJyb3IoImRldGVjdGlvbiByYWRpdXMgY2Fubm90IGJlIG5lZ2F0aXZlLiIpO3JldHVybiB0aGlzLl9kZXRlY3Rpb25SYWRpdXM9cix0aGlzLnJlbmRlcigpLHRoaXN9LHQucHJvdG90eXBlLnJlc2l6YWJsZT1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9yZXNpemFibGU6KHRoaXMuX3Jlc2l6YWJsZT1yLHRoaXMuX3NldFJlc2l6YWJsZUNsYXNzZXMociksdGhpcyl9LHQucHJvdG90eXBlLl9zZXRSZXNpemFibGVDbGFzc2VzPWZ1bmN0aW9uKHIpe3ImJnRoaXMuZW5hYmxlZCgpPyh0aGlzLmFkZENsYXNzKCJ4LXJlc2l6YWJsZSIpLHRoaXMuYWRkQ2xhc3MoInktcmVzaXphYmxlIikpOih0aGlzLnJlbW92ZUNsYXNzKCJ4LXJlc2l6YWJsZSIpLHRoaXMucmVtb3ZlQ2xhc3MoInktcmVzaXphYmxlIikpfSx0LnByb3RvdHlwZS5tb3ZhYmxlPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX21vdmFibGU6KHRoaXMuX21vdmFibGU9cix0aGlzLl9zZXRNb3ZhYmxlQ2xhc3MoKSx0aGlzKX0sdC5wcm90b3R5cGUuX3NldE1vdmFibGVDbGFzcz1mdW5jdGlvbigpe3RoaXMubW92YWJsZSgpJiZ0aGlzLmVuYWJsZWQoKT90aGlzLmFkZENsYXNzKCJtb3ZhYmxlIik6dGhpcy5yZW1vdmVDbGFzcygibW92YWJsZSIpfSx0LnByb3RvdHlwZS5vbkRyYWdTdGFydD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmFkZChyKSx0aGlzfSx0LnByb3RvdHlwZS5vZmZEcmFnU3RhcnQ9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX2RyYWdTdGFydENhbGxiYWNrcy5kZWxldGUociksdGhpc30sdC5wcm90b3R5cGUub25EcmFnPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9kcmFnQ2FsbGJhY2tzLmFkZChyKSx0aGlzfSx0LnByb3RvdHlwZS5vZmZEcmFnPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9kcmFnQ2FsbGJhY2tzLmRlbGV0ZShyKSx0aGlzfSx0LnByb3RvdHlwZS5vbkRyYWdFbmQ9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX2RyYWdFbmRDYWxsYmFja3MuYWRkKHIpLHRoaXN9LHQucHJvdG90eXBlLm9mZkRyYWdFbmQ9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX2RyYWdFbmRDYWxsYmFja3MuZGVsZXRlKHIpLHRoaXN9LHQucHJvdG90eXBlLmRyYWdJbnRlcmFjdGlvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kcmFnSW50ZXJhY3Rpb259LHQucHJvdG90eXBlLmVuYWJsZWQ9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5fZHJhZ0ludGVyYWN0aW9uLmVuYWJsZWQoKToodGhpcy5fZHJhZ0ludGVyYWN0aW9uLmVuYWJsZWQociksdGhpcy5fc2V0UmVzaXphYmxlQ2xhc3Nlcyh0aGlzLnJlc2l6YWJsZSgpKSx0aGlzLl9zZXRNb3ZhYmxlQ2xhc3MoKSx0aGlzKX0sdC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3ZhciByPXRoaXM7ZS5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpLHRoaXMuX2RyYWdTdGFydENhbGxiYWNrcy5mb3JFYWNoKGZ1bmN0aW9uKG4pe3JldHVybiByLl9kcmFnQ2FsbGJhY2tzLmRlbGV0ZShuKX0pLHRoaXMuX2RyYWdDYWxsYmFja3MuZm9yRWFjaChmdW5jdGlvbihuKXtyZXR1cm4gci5fZHJhZ0NhbGxiYWNrcy5kZWxldGUobil9KSx0aGlzLl9kcmFnRW5kQ2FsbGJhY2tzLmZvckVhY2goZnVuY3Rpb24obil7cmV0dXJuIHIuX2RyYWdFbmRDYWxsYmFja3MuZGVsZXRlKG4pfSksdGhpcy5fZGlzY29ubmVjdEludGVyYWN0aW9uKCl9LHQucHJvdG90eXBlLmRldGFjaD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZXNldFN0YXRlKCksdGhpcy5fZHJhZ0ludGVyYWN0aW9uLmRldGFjaCgpLGUucHJvdG90eXBlLmRldGFjaC5jYWxsKHRoaXMpLHRoaXN9LHQucHJvdG90eXBlLmFuY2hvcj1mdW5jdGlvbihyKXtyZXR1cm4gcj1wQmUuY29lcmNlRXh0ZXJuYWxEMyhyKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24uYXR0YWNoVG8odGhpcyksZS5wcm90b3R5cGUuYW5jaG9yLmNhbGwodGhpcyxyKSx0aGlzfSx0LnByb3RvdHlwZS5fcmVzZXRTdGF0ZT1mdW5jdGlvbigpe3RoaXMuYm91bmRzKHt0b3BMZWZ0Ont4OjAseTowfSxib3R0b21SaWdodDp7eDowLHk6MH19KX0sdH0oZEJlLlNlbGVjdGlvbkJveExheWVyKTtBb3QuRHJhZ0JveExheWVyPW1CZX0pO3ZhciBMb3Q9SChJb3Q9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KElvdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGdCZT0oZGUoKSxVdChwZSkpLF9CZT1GZSgpLHlCZT1rYygpLHp2OyhmdW5jdGlvbihlKXtlW2UuVkFMVUU9MF09IlZBTFVFIixlW2UuUElYRUw9MV09IlBJWEVMIn0pKHp2fHwoenY9e30pKTt2YXIgdkJlPWZ1bmN0aW9uKGUpe2dCZS5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KHIpe3ZhciBuPWUuY2FsbCh0aGlzKXx8dGhpcztpZihuLl9tb2RlPXp2LlZBTFVFLHIhPT10Lk9SSUVOVEFUSU9OX1ZFUlRJQ0FMJiZyIT09dC5PUklFTlRBVElPTl9IT1JJWk9OVEFMKXRocm93IG5ldyBFcnJvcihyKyIgaXMgbm90IGEgdmFsaWQgb3JpZW50YXRpb24gZm9yIEd1aWRlTGluZUxheWVyIik7cmV0dXJuIG4uX29yaWVudGF0aW9uPXIsbi5fb3ZlcmZsb3dIaWRkZW49ITAsbi5hZGRDbGFzcygiZ3VpZGUtbGluZS1sYXllciIpLG4uX2lzVmVydGljYWwoKT9uLmFkZENsYXNzKCJ2ZXJ0aWNhbCIpOm4uYWRkQ2xhc3MoImhvcml6b250YWwiKSxuLl9zY2FsZVVwZGF0ZUNhbGxiYWNrPWZ1bmN0aW9uKCl7bi5fc3luY1BpeGVsUG9zaXRpb25BbmRWYWx1ZSgpLG4ucmVuZGVyKCl9LG59cmV0dXJuIHQucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe2UucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLHRoaXMuX2d1aWRlTGluZT10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKCJndWlkZS1saW5lIiwhMCl9LHQucHJvdG90eXBlLl9zaXplRnJvbU9mZmVyPWZ1bmN0aW9uKHIsbil7cmV0dXJue3dpZHRoOnIsaGVpZ2h0Om59fSx0LnByb3RvdHlwZS5faXNWZXJ0aWNhbD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9vcmllbnRhdGlvbj09PXQuT1JJRU5UQVRJT05fVkVSVElDQUx9LHQucHJvdG90eXBlLmZpeGVkV2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sdC5wcm90b3R5cGUuZml4ZWRIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sdC5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihyLG4saSl7cmV0dXJuIGUucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQuY2FsbCh0aGlzLHIsbixpKSx0aGlzLnNjYWxlKCkhPW51bGwmJih0aGlzLl9pc1ZlcnRpY2FsKCk/dGhpcy5zY2FsZSgpLnJhbmdlKFswLHRoaXMud2lkdGgoKV0pOnRoaXMuc2NhbGUoKS5yYW5nZShbdGhpcy5oZWlnaHQoKSwwXSkpLHRoaXN9LHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7cmV0dXJuIGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5LmNhbGwodGhpcyksdGhpcy5fc3luY1BpeGVsUG9zaXRpb25BbmRWYWx1ZSgpLHRoaXMuX2d1aWRlTGluZS5hdHRycyh7eDE6dGhpcy5faXNWZXJ0aWNhbCgpP3RoaXMucGl4ZWxQb3NpdGlvbigpOjAseTE6dGhpcy5faXNWZXJ0aWNhbCgpPzA6dGhpcy5waXhlbFBvc2l0aW9uKCkseDI6dGhpcy5faXNWZXJ0aWNhbCgpP3RoaXMucGl4ZWxQb3NpdGlvbigpOnRoaXMud2lkdGgoKSx5Mjp0aGlzLl9pc1ZlcnRpY2FsKCk/dGhpcy5oZWlnaHQoKTp0aGlzLnBpeGVsUG9zaXRpb24oKX0pLHRoaXN9LHQucHJvdG90eXBlLl9zeW5jUGl4ZWxQb3NpdGlvbkFuZFZhbHVlPWZ1bmN0aW9uKCl7dGhpcy5zY2FsZSgpIT1udWxsJiYodGhpcy5fbW9kZT09PXp2LlZBTFVFJiZ0aGlzLnZhbHVlKCkhPW51bGw/dGhpcy5fcGl4ZWxQb3NpdGlvbj10aGlzLnNjYWxlKCkuc2NhbGUodGhpcy52YWx1ZSgpKTp0aGlzLl9tb2RlPT09enYuUElYRUwmJnRoaXMucGl4ZWxQb3NpdGlvbigpIT1udWxsJiYodGhpcy5fdmFsdWU9dGhpcy5zY2FsZSgpLmludmVydCh0aGlzLnBpeGVsUG9zaXRpb24oKSkpKX0sdC5wcm90b3R5cGUuX3NldFBpeGVsUG9zaXRpb25XaXRob3V0Q2hhbmdpbmdNb2RlPWZ1bmN0aW9uKHIpe3RoaXMuX3BpeGVsUG9zaXRpb249cix0aGlzLnNjYWxlKCkhPW51bGwmJih0aGlzLl92YWx1ZT10aGlzLnNjYWxlKCkuaW52ZXJ0KHRoaXMucGl4ZWxQb3NpdGlvbigpKSksdGhpcy5yZW5kZXIoKX0sdC5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24ocil7aWYocj09bnVsbClyZXR1cm4gdGhpcy5fc2NhbGU7dmFyIG49dGhpcy5fc2NhbGU7cmV0dXJuIG4hPW51bGwmJm4ub2ZmVXBkYXRlKHRoaXMuX3NjYWxlVXBkYXRlQ2FsbGJhY2spLHRoaXMuX3NjYWxlPXIsdGhpcy5fc2NhbGUub25VcGRhdGUodGhpcy5fc2NhbGVVcGRhdGVDYWxsYmFjayksdGhpcy5fc3luY1BpeGVsUG9zaXRpb25BbmRWYWx1ZSgpLHRoaXMucmVkcmF3KCksdGhpc30sdC5wcm90b3R5cGUudmFsdWU9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5fdmFsdWU6KHRoaXMuX3ZhbHVlPXIsdGhpcy5fbW9kZT16di5WQUxVRSx0aGlzLl9zeW5jUGl4ZWxQb3NpdGlvbkFuZFZhbHVlKCksdGhpcy5yZW5kZXIoKSx0aGlzKX0sdC5wcm90b3R5cGUucGl4ZWxQb3NpdGlvbj1mdW5jdGlvbihyKXtpZihyPT1udWxsKXJldHVybiB0aGlzLl9waXhlbFBvc2l0aW9uO2lmKCFfQmUuTWF0aC5pc1ZhbGlkTnVtYmVyKHIpKXRocm93IG5ldyBFcnJvcigicGl4ZWxQb3NpdGlvbiBtdXN0IGJlIGEgZmluaXRlIG51bWJlciIpO3JldHVybiB0aGlzLl9waXhlbFBvc2l0aW9uPXIsdGhpcy5fbW9kZT16di5QSVhFTCx0aGlzLl9zeW5jUGl4ZWxQb3NpdGlvbkFuZFZhbHVlKCksdGhpcy5yZW5kZXIoKSx0aGlzfSx0LnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7ZS5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpLHRoaXMuc2NhbGUoKSE9bnVsbCYmdGhpcy5zY2FsZSgpLm9mZlVwZGF0ZSh0aGlzLl9zY2FsZVVwZGF0ZUNhbGxiYWNrKX0sdC5PUklFTlRBVElPTl9WRVJUSUNBTD0idmVydGljYWwiLHQuT1JJRU5UQVRJT05fSE9SSVpPTlRBTD0iaG9yaXpvbnRhbCIsdH0oeUJlLkNvbXBvbmVudCk7SW90Lkd1aWRlTGluZUxheWVyPXZCZX0pO3ZhciBJJHQ9SChSb3Q9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFJvdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHhCZT0oZGUoKSxVdChwZSkpLGJCZT1Mb3QoKSx3QmU9bDQoKSxrb3Q9RmUoKSxTQmU9ZnVuY3Rpb24oZSl7eEJlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocil7dmFyIG49ZS5jYWxsKHRoaXMscil8fHRoaXM7bi5fZGV0ZWN0aW9uUmFkaXVzPTMsbi5fZW5hYmxlZD0hMCxuLmFkZENsYXNzKCJkcmFnLWxpbmUtbGF5ZXIiKSxuLmFkZENsYXNzKCJlbmFibGVkIiksbi5fZHJhZ0ludGVyYWN0aW9uPW5ldyB3QmUuRHJhZyxuLl9kcmFnSW50ZXJhY3Rpb24uYXR0YWNoVG8obik7dmFyIGk9ZnVuY3Rpb24oYyl7cmV0dXJuIG4uX2lzVmVydGljYWwoKSYmbi5waXhlbFBvc2l0aW9uKCktbi5kZXRlY3Rpb25SYWRpdXMoKTw9Yy54JiZjLng8PW4ucGl4ZWxQb3NpdGlvbigpK24uZGV0ZWN0aW9uUmFkaXVzKCl8fCFuLl9pc1ZlcnRpY2FsKCkmJm4ucGl4ZWxQb3NpdGlvbigpLW4uZGV0ZWN0aW9uUmFkaXVzKCk8PWMueSYmYy55PD1uLnBpeGVsUG9zaXRpb24oKStuLmRldGVjdGlvblJhZGl1cygpfSxvPSExLGE9ZnVuY3Rpb24oYyl7aShjKSYmKG89ITAsbi5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmNhbGxDYWxsYmFja3MobikpfTtuLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnU3RhcnQoYSk7dmFyIHM9ZnVuY3Rpb24oYyx1KXtvJiYobi5fc2V0UGl4ZWxQb3NpdGlvbldpdGhvdXRDaGFuZ2luZ01vZGUobi5faXNWZXJ0aWNhbCgpP3UueDp1LnkpLG4uX2RyYWdDYWxsYmFja3MuY2FsbENhbGxiYWNrcyhuKSl9O24uX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWcocyk7dmFyIGw9ZnVuY3Rpb24oYyx1KXtvJiYobz0hMSxuLl9kcmFnRW5kQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3MobikpfTtyZXR1cm4gbi5fZHJhZ0ludGVyYWN0aW9uLm9uRHJhZ0VuZChsKSxuLl9kaXNjb25uZWN0SW50ZXJhY3Rpb249ZnVuY3Rpb24oKXtuLl9kcmFnSW50ZXJhY3Rpb24ub2ZmRHJhZ1N0YXJ0KGEpLG4uX2RyYWdJbnRlcmFjdGlvbi5vZmZEcmFnKHMpLG4uX2RyYWdJbnRlcmFjdGlvbi5vZmZEcmFnRW5kKGwpLG4uX2RyYWdJbnRlcmFjdGlvbi5kZXRhY2goKX0sbi5fZHJhZ1N0YXJ0Q2FsbGJhY2tzPW5ldyBrb3QuQ2FsbGJhY2tTZXQsbi5fZHJhZ0NhbGxiYWNrcz1uZXcga290LkNhbGxiYWNrU2V0LG4uX2RyYWdFbmRDYWxsYmFja3M9bmV3IGtvdC5DYWxsYmFja1NldCxufXJldHVybiB0LnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXtlLnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl9kZXRlY3Rpb25FZGdlPXRoaXMuY29udGVudCgpLmFwcGVuZCgibGluZSIpLnN0eWxlcyh7b3BhY2l0eTowLHN0cm9rZToicGluayIsInBvaW50ZXItZXZlbnRzIjoidmlzaWJsZVN0cm9rZSJ9KS5jbGFzc2VkKCJkcmFnLWVkZ2UiLCEwKX0sdC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHk9ZnVuY3Rpb24oKXtyZXR1cm4gZS5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0aGlzKSx0aGlzLl9kZXRlY3Rpb25FZGdlLmF0dHJzKHt4MTp0aGlzLl9pc1ZlcnRpY2FsKCk/dGhpcy5waXhlbFBvc2l0aW9uKCk6MCx5MTp0aGlzLl9pc1ZlcnRpY2FsKCk/MDp0aGlzLnBpeGVsUG9zaXRpb24oKSx4Mjp0aGlzLl9pc1ZlcnRpY2FsKCk/dGhpcy5waXhlbFBvc2l0aW9uKCk6dGhpcy53aWR0aCgpLHkyOnRoaXMuX2lzVmVydGljYWwoKT90aGlzLmhlaWdodCgpOnRoaXMucGl4ZWxQb3NpdGlvbigpLCJzdHJva2Utd2lkdGgiOnRoaXMuX2RldGVjdGlvblJhZGl1cyoyfSksdGhpc30sdC5wcm90b3R5cGUuZGV0ZWN0aW9uUmFkaXVzPWZ1bmN0aW9uKHIpe2lmKHI9PW51bGwpcmV0dXJuIHRoaXMuX2RldGVjdGlvblJhZGl1cztpZihyPDApdGhyb3cgbmV3IEVycm9yKCJkZXRlY3Rpb24gcmFkaXVzIGNhbm5vdCBiZSBuZWdhdGl2ZS4iKTtyZXR1cm4gdGhpcy5fZGV0ZWN0aW9uUmFkaXVzPXIsdGhpcy5yZW5kZXIoKSx0aGlzfSx0LnByb3RvdHlwZS5lbmFibGVkPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX2VuYWJsZWQ6KHRoaXMuX2VuYWJsZWQ9cixyP3RoaXMuYWRkQ2xhc3MoImVuYWJsZWQiKTp0aGlzLnJlbW92ZUNsYXNzKCJlbmFibGVkIiksdGhpcy5fZHJhZ0ludGVyYWN0aW9uLmVuYWJsZWQociksdGhpcyl9LHQucHJvdG90eXBlLm9uRHJhZ1N0YXJ0PWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9kcmFnU3RhcnRDYWxsYmFja3MuYWRkKHIpLHRoaXN9LHQucHJvdG90eXBlLm9mZkRyYWdTdGFydD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmRlbGV0ZShyKSx0aGlzfSx0LnByb3RvdHlwZS5vbkRyYWc9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX2RyYWdDYWxsYmFja3MuYWRkKHIpLHRoaXN9LHQucHJvdG90eXBlLm9mZkRyYWc9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX2RyYWdDYWxsYmFja3MuZGVsZXRlKHIpLHRoaXN9LHQucHJvdG90eXBlLm9uRHJhZ0VuZD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fZHJhZ0VuZENhbGxiYWNrcy5hZGQociksdGhpc30sdC5wcm90b3R5cGUub2ZmRHJhZ0VuZD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fZHJhZ0VuZENhbGxiYWNrcy5kZWxldGUociksdGhpc30sdC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3ZhciByPXRoaXM7ZS5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpLHRoaXMuX2RyYWdTdGFydENhbGxiYWNrcy5mb3JFYWNoKGZ1bmN0aW9uKG4pe3JldHVybiByLl9kcmFnU3RhcnRDYWxsYmFja3MuZGVsZXRlKG4pfSksdGhpcy5fZHJhZ0NhbGxiYWNrcy5mb3JFYWNoKGZ1bmN0aW9uKG4pe3JldHVybiByLl9kcmFnQ2FsbGJhY2tzLmRlbGV0ZShuKX0pLHRoaXMuX2RyYWdFbmRDYWxsYmFja3MuZm9yRWFjaChmdW5jdGlvbihuKXtyZXR1cm4gci5fZHJhZ0VuZENhbGxiYWNrcy5kZWxldGUobil9KSx0aGlzLl9kaXNjb25uZWN0SW50ZXJhY3Rpb24oKX0sdH0oYkJlLkd1aWRlTGluZUxheWVyKTtSb3QuRHJhZ0xpbmVMYXllcj1TQmV9KTt2YXIgTCR0PUgoTm90PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShOb3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBNQmU9KGRlKCksVXQocGUpKSxFQmU9a2MoKTtmdW5jdGlvbiBHRihlLHQscil7dmFyIG49e307aWYociE9PXZvaWQgMClmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIG89cltpLTFdLGE9cltpXTtuW2FdPW99cmV0dXJuIGZ1bmN0aW9uKHMpe3ZhciBsPWUuc2NhbGUocyk7aWYoIXQpcmV0dXJuIGw7dmFyIGMsdT1uW3NdPT09dm9pZCAwP3ZvaWQgMDplLnNjYWxlKG5bc10pO3JldHVybiB1IT09dm9pZCAwJiYoYz11KyhsLXUpLzIpLGN9fXZhciBUQmU9ZnVuY3Rpb24oZSl7TUJlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocixuKXt2YXIgaT1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGkuYWRkQ2xhc3MoImdyaWRsaW5lcyIpLGkuX3hTY2FsZT1yLGkuX3lTY2FsZT1uLGkuX3JlbmRlckNhbGxiYWNrPWZ1bmN0aW9uKG8pe3JldHVybiBpLnJlbmRlcigpfSxpLl94U2NhbGUmJmkuX3hTY2FsZS5vblVwZGF0ZShpLl9yZW5kZXJDYWxsYmFjayksaS5feVNjYWxlJiZpLl95U2NhbGUub25VcGRhdGUoaS5fcmVuZGVyQ2FsbGJhY2spLGl9cmV0dXJuIHQucHJvdG90eXBlLmJldHdlZW5YPWZ1bmN0aW9uKHIpe3JldHVybiByPT09dm9pZCAwP3RoaXMuX2JldHdlZW5YOihyIT09dGhpcy5fYmV0d2VlblgmJih0aGlzLl9iZXR3ZWVuWD1yLHRoaXMucmVuZGVyKCkpLHRoaXMpfSx0LnByb3RvdHlwZS5iZXR3ZWVuWT1mdW5jdGlvbihyKXtyZXR1cm4gcj09PXZvaWQgMD90aGlzLl9iZXR3ZWVuWToociE9PXRoaXMuX2JldHdlZW5ZJiYodGhpcy5fYmV0d2Vlblk9cix0aGlzLnJlbmRlcigpKSx0aGlzKX0sdC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3JldHVybiBlLnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyksdGhpcy5feFNjYWxlJiZ0aGlzLl94U2NhbGUub2ZmVXBkYXRlKHRoaXMuX3JlbmRlckNhbGxiYWNrKSx0aGlzLl95U2NhbGUmJnRoaXMuX3lTY2FsZS5vZmZVcGRhdGUodGhpcy5fcmVuZGVyQ2FsbGJhY2spLHRoaXN9LHQucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe2UucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLHRoaXMuX3hMaW5lc0NvbnRhaW5lcj10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ4LWdyaWRsaW5lcyIsITApLHRoaXMuX3lMaW5lc0NvbnRhaW5lcj10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ5LWdyaWRsaW5lcyIsITApfSx0LnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseT1mdW5jdGlvbigpe3JldHVybiBlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseS5jYWxsKHRoaXMpLHRoaXMuX3JlZHJhd1hMaW5lcygpLHRoaXMuX3JlZHJhd1lMaW5lcygpLHRoaXN9LHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQ9ZnVuY3Rpb24ocixuLGkpe3JldHVybiBlLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0LmNhbGwodGhpcyxyLG4saSksdGhpcy5feFNjYWxlIT1udWxsJiZ0aGlzLl94U2NhbGUucmFuZ2UoWzAsdGhpcy53aWR0aCgpXSksdGhpcy5feVNjYWxlIT1udWxsJiZ0aGlzLl95U2NhbGUucmFuZ2UoW3RoaXMuaGVpZ2h0KCksMF0pLHRoaXN9LHQucHJvdG90eXBlLl9yZWRyYXdYTGluZXM9ZnVuY3Rpb24oKXtpZih0aGlzLl94U2NhbGUpe3ZhciByPXRoaXMuYmV0d2VlblgoKSxuPXRoaXMuX3hTY2FsZS50aWNrcygpLnNsaWNlKHI/MTowKSxpPXRoaXMuX3hMaW5lc0NvbnRhaW5lci5zZWxlY3RBbGwoImxpbmUiKS5kYXRhKG4pLG89aS5lbnRlcigpLmFwcGVuZCgibGluZSIpLm1lcmdlKGkpO28uYXR0cigieDEiLEdGKHRoaXMuX3hTY2FsZSxyLHRoaXMuX3hTY2FsZS50aWNrcygpKSkuYXR0cigieTEiLDApLmF0dHIoIngyIixHRih0aGlzLl94U2NhbGUscix0aGlzLl94U2NhbGUudGlja3MoKSkpLmF0dHIoInkyIix0aGlzLmhlaWdodCgpKS5jbGFzc2VkKCJiZXR3ZWVubGluZSIscikuY2xhc3NlZCgiemVyb2xpbmUiLGZ1bmN0aW9uKGEpe3JldHVybiBhPT09MH0pLGkuZXhpdCgpLnJlbW92ZSgpfX0sdC5wcm90b3R5cGUuX3JlZHJhd1lMaW5lcz1mdW5jdGlvbigpe2lmKHRoaXMuX3lTY2FsZSl7dmFyIHI9dGhpcy5iZXR3ZWVuWSgpLG49dGhpcy5feVNjYWxlLnRpY2tzKCkuc2xpY2Uocj8xOjApLGk9dGhpcy5feUxpbmVzQ29udGFpbmVyLnNlbGVjdEFsbCgibGluZSIpLmRhdGEobiksbz1pLmVudGVyKCkuYXBwZW5kKCJsaW5lIikubWVyZ2UoaSk7by5hdHRyKCJ4MSIsMCkuYXR0cigieTEiLEdGKHRoaXMuX3lTY2FsZSxyLHRoaXMuX3lTY2FsZS50aWNrcygpKSkuYXR0cigieDIiLHRoaXMud2lkdGgoKSkuYXR0cigieTIiLEdGKHRoaXMuX3lTY2FsZSxyLHRoaXMuX3lTY2FsZS50aWNrcygpKSkuY2xhc3NlZCgiYmV0d2VlbmxpbmUiLHIpLmNsYXNzZWQoInplcm9saW5lIixmdW5jdGlvbihhKXtyZXR1cm4gYT09PTB9KSxpLmV4aXQoKS5yZW1vdmUoKX19LHR9KEVCZS5Db21wb25lbnQpO05vdC5HcmlkbGluZXM9VEJlfSk7dmFyIFdGPUgoRG90PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEb3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBDQmU9KGRlKCksVXQocGUpKSxBQmU9amcoKSxQQmU9a2MoKSxJQmU9ZnVuY3Rpb24oZSl7Q0JlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQoKXt2YXIgcj1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHIuX2RldGFjaENhbGxiYWNrPWZ1bmN0aW9uKG4pe3JldHVybiByLnJlbW92ZShuKX0scn1yZXR1cm4gdC5wcm90b3R5cGUuYW5jaG9yPWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXM7cmV0dXJuIHI9QUJlLmNvZXJjZUV4dGVybmFsRDMociksZS5wcm90b3R5cGUuYW5jaG9yLmNhbGwodGhpcyxyKSx0aGlzLl9mb3JFYWNoKGZ1bmN0aW9uKGkpe3JldHVybiBpLmFuY2hvcihuLmVsZW1lbnQoKSl9KSx0aGlzfSx0LnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gci5yZW5kZXIoKX0pLHRoaXN9LHQucHJvdG90eXBlLmhhcz1mdW5jdGlvbihyKXt0aHJvdyBuZXcgRXJyb3IoImhhcygpIGlzIG5vdCBpbXBsZW1lbnRlZCBvbiBDb21wb25lbnRDb250YWluZXIiKX0sdC5wcm90b3R5cGUuX2Fkb3B0QW5kQW5jaG9yPWZ1bmN0aW9uKHIpe3IucGFyZW50KHRoaXMpLHIub25EZXRhY2godGhpcy5fZGV0YWNoQ2FsbGJhY2spLHRoaXMuX2lzQW5jaG9yZWQmJnIuYW5jaG9yKHRoaXMuZWxlbWVudCgpKX0sdC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLmhhcyhyKSYmKHIub2ZmRGV0YWNoKHRoaXMuX2RldGFjaENhbGxiYWNrKSx0aGlzLl9yZW1vdmUociksci5kZXRhY2goKSx0aGlzLnJlZHJhdygpKSx0aGlzfSx0LnByb3RvdHlwZS5fcmVtb3ZlPWZ1bmN0aW9uKHIpe3JldHVybiExfSx0LnByb3RvdHlwZS5fZm9yRWFjaD1mdW5jdGlvbihyKXt0aHJvdyBuZXcgRXJyb3IoIl9mb3JFYWNoKCkgaXMgbm90IGltcGxlbWVudGVkIG9uIENvbXBvbmVudENvbnRhaW5lciIpfSx0LnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7ZS5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpLHRoaXMuX2ZvckVhY2goZnVuY3Rpb24ocil7cmV0dXJuIHIuZGVzdHJveSgpfSl9LHQucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZT1mdW5jdGlvbigpe3RoaXMuX2ZvckVhY2goZnVuY3Rpb24ocil7cmV0dXJuIHIuaW52YWxpZGF0ZUNhY2hlKCl9KX0sdH0oUEJlLkNvbXBvbmVudCk7RG90LkNvbXBvbmVudENvbnRhaW5lcj1JQmV9KTt2YXIgem90PUgoT290PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPb3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBMQmU9KGRlKCksVXQocGUpKSxrJHQ9RmUoKSxrQmU9V0YoKSxSQmU9ZnVuY3Rpb24oZSl7TEJlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocil7cj09PXZvaWQgMCYmKHI9W10pO3ZhciBuPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5fY29tcG9uZW50cz1bXSxuLmFkZENsYXNzKCJjb21wb25lbnQtZ3JvdXAiKSxyLmZvckVhY2goZnVuY3Rpb24oaSl7cmV0dXJuIG4uYXBwZW5kKGkpfSksbn1yZXR1cm4gdC5wcm90b3R5cGUuX2ZvckVhY2g9ZnVuY3Rpb24ocil7dGhpcy5jb21wb25lbnRzKCkuZm9yRWFjaChyKX0sdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9jb21wb25lbnRzLmluZGV4T2Yocik+PTB9LHQucHJvdG90eXBlLnJlcXVlc3RlZFNwYWNlPWZ1bmN0aW9uKHIsbil7dmFyIGk9dGhpcy5fY29tcG9uZW50cy5tYXAoZnVuY3Rpb24obyl7cmV0dXJuIG8ucmVxdWVzdGVkU3BhY2UocixuKX0pO3JldHVybnttaW5XaWR0aDprJHQuTWF0aC5tYXgoaSxmdW5jdGlvbihvKXtyZXR1cm4gby5taW5XaWR0aH0sMCksbWluSGVpZ2h0OmskdC5NYXRoLm1heChpLGZ1bmN0aW9uKG8pe3JldHVybiBvLm1pbkhlaWdodH0sMCl9fSx0LnByb3RvdHlwZS5jb21wdXRlTGF5b3V0PWZ1bmN0aW9uKHIsbixpKXt2YXIgbz10aGlzO3JldHVybiBlLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0LmNhbGwodGhpcyxyLG4saSksdGhpcy5fZm9yRWFjaChmdW5jdGlvbihhKXthLmNvbXB1dGVMYXlvdXQoe3g6MCx5OjB9LG8ud2lkdGgoKSxvLmhlaWdodCgpKX0pLHRoaXN9LHQucHJvdG90eXBlLl9zaXplRnJvbU9mZmVyPWZ1bmN0aW9uKHIsbil7cmV0dXJue3dpZHRoOnIsaGVpZ2h0Om59fSx0LnByb3RvdHlwZS5maXhlZFdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbXBvbmVudHMuZXZlcnkoZnVuY3Rpb24ocil7cmV0dXJuIHIuZml4ZWRXaWR0aCgpfSl9LHQucHJvdG90eXBlLmZpeGVkSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbXBvbmVudHMuZXZlcnkoZnVuY3Rpb24ocil7cmV0dXJuIHIuZml4ZWRIZWlnaHQoKX0pfSx0LnByb3RvdHlwZS5jb21wb25lbnRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbXBvbmVudHMuc2xpY2UoKX0sdC5wcm90b3R5cGUuYXBwZW5kPWZ1bmN0aW9uKHIpe3JldHVybiByIT1udWxsJiYhdGhpcy5oYXMocikmJihyLmRldGFjaCgpLHRoaXMuX2NvbXBvbmVudHMucHVzaChyKSx0aGlzLl9hZG9wdEFuZEFuY2hvcihyKSx0aGlzLnJlZHJhdygpKSx0aGlzfSx0LnByb3RvdHlwZS5fcmVtb3ZlPWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXMuX2NvbXBvbmVudHMuaW5kZXhPZihyKTtyZXR1cm4gbj49MD8odGhpcy5fY29tcG9uZW50cy5zcGxpY2UobiwxKSwhMCk6ITF9LHR9KGtCZS5Db21wb25lbnRDb250YWluZXIpO09vdC5Hcm91cD1SQmV9KTt2YXIgUiR0PUgoRm90PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShGb3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBOQmU9KGRlKCksVXQocGUpKSxZRj15bCgpLERCZT0kQSgpLE9CZT1CdSgpLHpCZT1GZSgpLEZCZT1rYygpLEJCZT1mdW5jdGlvbihlKXtOQmUuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdChyKXt2YXIgbj1lLmNhbGwodGhpcyl8fHRoaXM7aWYobi5fdGV4dFBhZGRpbmc9NSxyPT1udWxsKXRocm93IG5ldyBFcnJvcigiSW50ZXJwb2xhdGVkQ29sb3JMZWdlbmQgcmVxdWlyZXMgYSBpbnRlcnBvbGF0ZWRDb2xvclNjYWxlIik7cmV0dXJuIG4uX3NjYWxlPXIsbi5fcmVkcmF3Q2FsbGJhY2s9ZnVuY3Rpb24oaSl7cmV0dXJuIG4ucmVkcmF3KCl9LG4uX3NjYWxlLm9uVXBkYXRlKG4uX3JlZHJhd0NhbGxiYWNrKSxuLl9mb3JtYXR0ZXI9T0JlLmdlbmVyYWwoKSxuLl9vcmllbnRhdGlvbj0iaG9yaXpvbnRhbCIsbi5fZXhwYW5kcz0hMSxuLmFkZENsYXNzKCJsZWdlbmQiKSxuLmFkZENsYXNzKCJpbnRlcnBvbGF0ZWQtY29sb3ItbGVnZW5kIiksbn1yZXR1cm4gdC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe2UucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKSx0aGlzLl9zY2FsZS5vZmZVcGRhdGUodGhpcy5fcmVkcmF3Q2FsbGJhY2spfSx0LnByb3RvdHlwZS5mb3JtYXR0ZXI9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PT12b2lkIDA/dGhpcy5fZm9ybWF0dGVyOih0aGlzLl9mb3JtYXR0ZXI9cix0aGlzLnJlZHJhdygpLHRoaXMpfSx0LnByb3RvdHlwZS5leHBhbmRzPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX2V4cGFuZHM6KHRoaXMuX2V4cGFuZHM9cix0aGlzLnJlZHJhdygpLHRoaXMpfSx0Ll9lbnN1cmVPcmllbnRhdGlvbj1mdW5jdGlvbihyKXtpZihyPXIudG9Mb3dlckNhc2UoKSxyPT09Imhvcml6b250YWwifHxyPT09ImxlZnQifHxyPT09InJpZ2h0IilyZXR1cm4gcjt0aHJvdyBuZXcgRXJyb3IoJyInK3IrJyIgaXMgbm90IGEgdmFsaWQgb3JpZW50YXRpb24gZm9yIEludGVycG9sYXRlZENvbG9yTGVnZW5kJyl9LHQucHJvdG90eXBlLm9yaWVudGF0aW9uPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX29yaWVudGF0aW9uOih0aGlzLl9vcmllbnRhdGlvbj10Ll9lbnN1cmVPcmllbnRhdGlvbihyKSx0aGlzLnJlZHJhdygpLHRoaXMpfSx0LnByb3RvdHlwZS5maXhlZFdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZXhwYW5kcygpfHx0aGlzLl9pc1ZlcnRpY2FsKCl9LHQucHJvdG90eXBlLmZpeGVkSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZXhwYW5kcygpfHwhdGhpcy5faXNWZXJ0aWNhbCgpfSx0LnByb3RvdHlwZS5fZ2VuZXJhdGVUaWNrcz1mdW5jdGlvbihyKXtyPT09dm9pZCAwJiYocj10Ll9ERUZBVUxUX05VTV9TV0FUQ0hFUyk7dmFyIG49dGhpcy5fc2NhbGUuZG9tYWluKCk7aWYocj09PTEpcmV0dXJuW25bMF1dO2Zvcih2YXIgaT0oblsxXS1uWzBdKS8oci0xKSxvPVtdLGE9MDthPHI7YSsrKW8ucHVzaChuWzBdK2kqYSk7cmV0dXJuIG99LHQucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe2UucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLHRoaXMuX3N3YXRjaENvbnRhaW5lcj10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJzd2F0Y2gtY29udGFpbmVyIiwhMCksdGhpcy5fc3dhdGNoQm91bmRpbmdCb3g9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZCgic3dhdGNoLWJvdW5kaW5nLWJveCIsITApLHRoaXMuX2xvd2VyTGFiZWw9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZCh0LkxFR0VORF9MQUJFTF9DTEFTUywhMCksdGhpcy5fdXBwZXJMYWJlbD10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKHQuTEVHRU5EX0xBQkVMX0NMQVNTLCEwKTt2YXIgcj1uZXcgWUYuU3ZnQ29udGV4dCh0aGlzLmNvbnRlbnQoKS5ub2RlKCkpO3RoaXMuX21lYXN1cmVyPW5ldyBZRi5NZWFzdXJlcihyKSx0aGlzLl93cmFwcGVyPW5ldyBZRi5XcmFwcGVyLHRoaXMuX3dyaXRlcj1uZXcgWUYuV3JpdGVyKHRoaXMuX21lYXN1cmVyLHIsdGhpcy5fd3JhcHBlcil9LHQucHJvdG90eXBlLnJlcXVlc3RlZFNwYWNlPWZ1bmN0aW9uKHIsbil7dmFyIGk9dGhpcyxvPXRoaXMuX21lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQsYT1vLHM9dGhpcy5fc2NhbGUuZG9tYWluKCksbD1zLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gaS5fbWVhc3VyZXIubWVhc3VyZShpLl9mb3JtYXR0ZXIocCkpLndpZHRofSksYyx1LGg9dC5fREVGQVVMVF9OVU1fU1dBVENIRVM7aWYodGhpcy5faXNWZXJ0aWNhbCgpKXt2YXIgZj16QmUuTWF0aC5tYXgobCwwKTt1PWErbyt0aGlzLl90ZXh0UGFkZGluZytmK3RoaXMuX3RleHRQYWRkaW5nLGM9aCpvfWVsc2UgYz1hK28rYSx1PXRoaXMuX3RleHRQYWRkaW5nK2xbMF0raCpvK2xbMV0rdGhpcy5fdGV4dFBhZGRpbmc7cmV0dXJue21pbldpZHRoOnUsbWluSGVpZ2h0OmN9fSx0LnByb3RvdHlwZS5faXNWZXJ0aWNhbD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9vcmllbnRhdGlvbiE9PSJob3Jpem9udGFsIn0sdC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHk9ZnVuY3Rpb24oKXt2YXIgcj10aGlzO2UucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5LmNhbGwodGhpcyk7dmFyIG49dGhpcy5fc2NhbGUuZG9tYWluKCksaT10aGlzLl9mb3JtYXR0ZXIoblswXSksbz10aGlzLl9tZWFzdXJlci5tZWFzdXJlKGkpLndpZHRoLGE9dGhpcy5fZm9ybWF0dGVyKG5bMV0pLHM9dGhpcy5fbWVhc3VyZXIubWVhc3VyZShhKS53aWR0aCxsPXRoaXMuX21lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQsYz10aGlzLl90ZXh0UGFkZGluZyx1PXt4OjAseTowfSxoPXt4OjAseTowfSxmPXt4QWxpZ246ImNlbnRlciIseUFsaWduOiJjZW50ZXIiLHRleHRSb3RhdGlvbjowfSxwPXt4QWxpZ246ImNlbnRlciIseUFsaWduOiJjZW50ZXIiLHRleHRSb3RhdGlvbjowfSxkLGcsXyx5LHg9e3g6MCx5OjAsd2lkdGg6MCxoZWlnaHQ6MH0sYixTO2lmKHRoaXMuX2lzVmVydGljYWwoKSl7Uz1NYXRoLmZsb29yKHRoaXMuaGVpZ2h0KCkpO3ZhciBDPU1hdGgubWF4KG8scyk7Yj0odGhpcy53aWR0aCgpLUMtMip0aGlzLl90ZXh0UGFkZGluZykvMixkPU1hdGgubWF4KHRoaXMud2lkdGgoKS1iLTIqYy1DLDApLGc9MSx5PWZ1bmN0aW9uKEwsUil7cmV0dXJuIHIuaGVpZ2h0KCktKFIrMSl9LHAueUFsaWduPSJ0b3AiLHUueT0wLGYueUFsaWduPSJib3R0b20iLGgueT0wLHRoaXMuX29yaWVudGF0aW9uPT09ImxlZnQiPyhfPWZ1bmN0aW9uKEwsUil7cmV0dXJuIGMrQytjfSxwLnhBbGlnbj0icmlnaHQiLHUueD0tKGIrZCtjKSxmLnhBbGlnbj0icmlnaHQiLGgueD0tKGIrZCtjKSk6KF89ZnVuY3Rpb24oTCxSKXtyZXR1cm4gYn0scC54QWxpZ249ImxlZnQiLHUueD1iK2QrYyxmLnhBbGlnbj0ibGVmdCIsaC54PWIrZCtjKSx4LndpZHRoPWQseC5oZWlnaHQ9UypnfWVsc2UgYj1NYXRoLm1heChjLCh0aGlzLmhlaWdodCgpLWwpLzIpLFM9TWF0aC5tYXgoTWF0aC5mbG9vcih0aGlzLndpZHRoKCktYyo0LW8tcyksMCksZD0xLGc9TWF0aC5tYXgodGhpcy5oZWlnaHQoKS0yKmIsMCksXz1mdW5jdGlvbihMLFIpe3JldHVybiBNYXRoLmZsb29yKG8rMipjKStSfSx5PWZ1bmN0aW9uKEwsUil7cmV0dXJuIGJ9LHAueEFsaWduPSJyaWdodCIsdS54PS1jLGYueEFsaWduPSJsZWZ0IixoLng9Yyx4Lnk9Yix4LndpZHRoPVMqZCx4LmhlaWdodD1nO3gueD1fKG51bGwsMCksdGhpcy5fdXBwZXJMYWJlbC50ZXh0KCIiKSx0aGlzLl93cml0ZXIud3JpdGUoYSx0aGlzLndpZHRoKCksdGhpcy5oZWlnaHQoKSxwLHRoaXMuX3VwcGVyTGFiZWwubm9kZSgpKTt2YXIgUD0idHJhbnNsYXRlKCIrdS54KyIsICIrdS55KyIpIjt0aGlzLl91cHBlckxhYmVsLmF0dHIoInRyYW5zZm9ybSIsUCksdGhpcy5fbG93ZXJMYWJlbC50ZXh0KCIiKSx0aGlzLl93cml0ZXIud3JpdGUoaSx0aGlzLndpZHRoKCksdGhpcy5oZWlnaHQoKSxmLHRoaXMuX2xvd2VyTGFiZWwubm9kZSgpKTt2YXIgaz0idHJhbnNsYXRlKCIraC54KyIsICIraC55KyIpIjt0aGlzLl9sb3dlckxhYmVsLmF0dHIoInRyYW5zZm9ybSIsayksdGhpcy5fc3dhdGNoQm91bmRpbmdCb3guYXR0cnMoeCk7dmFyIE89dGhpcy5fZ2VuZXJhdGVUaWNrcyhTKSxEPXRoaXMuX3N3YXRjaENvbnRhaW5lci5zZWxlY3RBbGwoInJlY3Quc3dhdGNoIikuZGF0YShPKSxCPUQuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5jbGFzc2VkKCJzd2F0Y2giLCEwKSxJPUQubWVyZ2UoQik7cmV0dXJuIEQuZXhpdCgpLnJlbW92ZSgpLEkuYXR0cnMoe2ZpbGw6ZnVuY3Rpb24oTCxSKXtyZXR1cm4gci5fc2NhbGUuc2NhbGUoTCl9LHdpZHRoOmQsaGVpZ2h0OmcseDpfLHksInNoYXBlLXJlbmRlcmluZyI6ImNyaXNwRWRnZXMifSksREJlLkFERF9USVRMRV9FTEVNRU5UUyYmQi5hcHBlbmQoInRpdGxlIikudGV4dChmdW5jdGlvbihMKXtyZXR1cm4gci5fZm9ybWF0dGVyKEwpfSksdGhpc30sdC5fREVGQVVMVF9OVU1fU1dBVENIRVM9MTEsdC5MRUdFTkRfTEFCRUxfQ0xBU1M9ImxlZ2VuZC1sYWJlbCIsdH0oRkJlLkNvbXBvbmVudCk7Rm90LkludGVycG9sYXRlZENvbG9yTGVnZW5kPUJCZX0pO3ZhciBWb3Q9SChoND0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoaDQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBCb3Q9KGRlKCksVXQocGUpKSxqRj15bCgpLEhCZT1rYygpLEhvdD1mdW5jdGlvbihlKXtCb3QuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdChyLG4pe3I9PT12b2lkIDAmJihyPSIiKSxuPT09dm9pZCAwJiYobj0wKTt2YXIgaT1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGkuYWRkQ2xhc3MoImxhYmVsIiksaS50ZXh0KHIpLGkuYW5nbGUobiksaS54QWxpZ25tZW50KCJjZW50ZXIiKS55QWxpZ25tZW50KCJjZW50ZXIiKSxpLl9wYWRkaW5nPTAsaX1yZXR1cm4gdC5wcm90b3R5cGUucmVxdWVzdGVkU3BhY2U9ZnVuY3Rpb24ocixuKXt2YXIgaT10aGlzLl9tZWFzdXJlci5tZWFzdXJlKHRoaXMuX3RleHQpLG89KHRoaXMuYW5nbGUoKT09PTA/aS53aWR0aDppLmhlaWdodCkrMip0aGlzLnBhZGRpbmcoKSxhPSh0aGlzLmFuZ2xlKCk9PT0wP2kuaGVpZ2h0Omkud2lkdGgpKzIqdGhpcy5wYWRkaW5nKCk7cmV0dXJue21pbldpZHRoOm8sbWluSGVpZ2h0OmF9fSx0LnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXtlLnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl90ZXh0Q29udGFpbmVyPXRoaXMuY29udGVudCgpLmFwcGVuZCgiZyIpO3ZhciByPW5ldyBqRi5TdmdDb250ZXh0KHRoaXMuX3RleHRDb250YWluZXIubm9kZSgpKTt0aGlzLl9tZWFzdXJlcj1uZXcgakYuQ2FjaGVNZWFzdXJlcihyKSx0aGlzLl93cmFwcGVyPW5ldyBqRi5XcmFwcGVyLHRoaXMuX3dyaXRlcj1uZXcgakYuV3JpdGVyKHRoaXMuX21lYXN1cmVyLHIsdGhpcy5fd3JhcHBlciksdGhpcy50ZXh0KHRoaXMuX3RleHQpfSx0LnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uKHIpe2lmKHI9PW51bGwpcmV0dXJuIHRoaXMuX3RleHQ7aWYodHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBFcnJvcigiTGFiZWwudGV4dCgpIG9ubHkgdGFrZXMgc3RyaW5ncyBhcyBpbnB1dCIpO3JldHVybiB0aGlzLl90ZXh0PXIsdGhpcy5yZWRyYXcoKSx0aGlzfSx0LnByb3RvdHlwZS5hbmdsZT1mdW5jdGlvbihyKXtpZihyPT1udWxsKXJldHVybiB0aGlzLl9hbmdsZTtpZihyJT0zNjAscj4xODA/ci09MzYwOnI8LTE4MCYmKHIrPTM2MCkscj09PS05MHx8cj09PTB8fHI9PT05MCl0aGlzLl9hbmdsZT1yO2Vsc2UgdGhyb3cgbmV3IEVycm9yKHIrIiBpcyBub3QgYSB2YWxpZCBhbmdsZSBmb3IgTGFiZWwiKTtyZXR1cm4gdGhpcy5yZWRyYXcoKSx0aGlzfSx0LnByb3RvdHlwZS5wYWRkaW5nPWZ1bmN0aW9uKHIpe2lmKHI9PW51bGwpcmV0dXJuIHRoaXMuX3BhZGRpbmc7aWYocj0rcixyPDApdGhyb3cgbmV3IEVycm9yKHIrIiBpcyBub3QgYSB2YWxpZCBwYWRkaW5nIHZhbHVlLiBDYW5ub3QgYmUgbGVzcyB0aGFuIDAuIik7cmV0dXJuIHRoaXMuX3BhZGRpbmc9cix0aGlzLnJlZHJhdygpLHRoaXN9LHQucHJvdG90eXBlLmZpeGVkV2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sdC5wcm90b3R5cGUuZml4ZWRIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sdC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHk9ZnVuY3Rpb24oKXtlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseS5jYWxsKHRoaXMpLHRoaXMuX3RleHRDb250YWluZXIuc2VsZWN0QWxsKCJnIikucmVtb3ZlKCk7dmFyIHI9dGhpcy5fbWVhc3VyZXIubWVhc3VyZSh0aGlzLl90ZXh0KSxuPU1hdGgubWF4KE1hdGgubWluKCh0aGlzLmhlaWdodCgpLXIuaGVpZ2h0KS8yLHRoaXMucGFkZGluZygpKSwwKSxpPU1hdGgubWF4KE1hdGgubWluKCh0aGlzLndpZHRoKCktci53aWR0aCkvMix0aGlzLnBhZGRpbmcoKSksMCk7dGhpcy5fdGV4dENvbnRhaW5lci5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitpKyIsIituKyIpIik7dmFyIG89dGhpcy53aWR0aCgpLTIqaSxhPXRoaXMuaGVpZ2h0KCktMipuLHM9e3hBbGlnbjp0aGlzLnhBbGlnbm1lbnQoKSx5QWxpZ246dGhpcy55QWxpZ25tZW50KCksdGV4dFJvdGF0aW9uOnRoaXMuYW5nbGUoKX07cmV0dXJuIHRoaXMuX3dyaXRlci53cml0ZSh0aGlzLl90ZXh0LG8sYSxzKSx0aGlzfSx0LnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGU9ZnVuY3Rpb24oKXtlLnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGUuY2FsbCh0aGlzKSx0aGlzLl9tZWFzdXJlci5yZXNldCgpfSx0fShIQmUuQ29tcG9uZW50KTtoNC5MYWJlbD1Ib3Q7dmFyIFZCZT1mdW5jdGlvbihlKXtCb3QuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdChyLG4pe3ZhciBpPWUuY2FsbCh0aGlzLHIsbil8fHRoaXM7cmV0dXJuIGkuYWRkQ2xhc3ModC5USVRMRV9MQUJFTF9DTEFTUyksaX1yZXR1cm4gdC5USVRMRV9MQUJFTF9DTEFTUz0idGl0bGUtbGFiZWwiLHR9KEhvdCk7aDQuVGl0bGVMYWJlbD1WQmU7dmFyIFVCZT1mdW5jdGlvbihlKXtCb3QuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdChyLG4pe3ZhciBpPWUuY2FsbCh0aGlzLHIsbil8fHRoaXM7cmV0dXJuIGkuYWRkQ2xhc3ModC5BWElTX0xBQkVMX0NMQVNTKSxpfXJldHVybiB0LkFYSVNfTEFCRUxfQ0xBU1M9ImF4aXMtbGFiZWwiLHR9KEhvdCk7aDQuQXhpc0xhYmVsPVVCZX0pO3ZhciBYRj1IKHdkPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh3ZCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIE5zPShFcigpLFV0KE1yKSk7ZnVuY3Rpb24gcUJlKCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBOcy5zeW1ib2woKS50eXBlKE5zLnN5bWJvbENpcmNsZSkuc2l6ZShNYXRoLlBJKk1hdGgucG93KGUvMiwyKSl9fXdkLmNpcmNsZT1xQmU7ZnVuY3Rpb24gR0JlKCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBOcy5zeW1ib2woKS50eXBlKE5zLnN5bWJvbFNxdWFyZSkuc2l6ZShNYXRoLnBvdyhlLDIpKX19d2Quc3F1YXJlPUdCZTtmdW5jdGlvbiBXQmUoKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIE5zLnN5bWJvbCgpLnR5cGUoTnMuc3ltYm9sQ3Jvc3MpLnNpemUoNS85Kk1hdGgucG93KGUsMikpfX13ZC5jcm9zcz1XQmU7ZnVuY3Rpb24gWUJlKCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBOcy5zeW1ib2woKS50eXBlKE5zLnN5bWJvbERpYW1vbmQpLnNpemUoTWF0aC50YW4oTWF0aC5QSS82KSpNYXRoLnBvdyhlLDIpLzIpfX13ZC5kaWFtb25kPVlCZTtmdW5jdGlvbiBqQmUoKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIE5zLnN5bWJvbCgpLnR5cGUoTnMuc3ltYm9sVHJpYW5nbGUpLnNpemUoTWF0aC5zcXJ0KDMpKk1hdGgucG93KGUvMiwyKSl9fXdkLnRyaWFuZ2xlPWpCZTt2YXIgWEJlPS44OTA4MTMwOTE1MjkyODUyO2Z1bmN0aW9uICRCZSgpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gTnMuc3ltYm9sKCkudHlwZShOcy5zeW1ib2xTdGFyKS5zaXplKFhCZSpNYXRoLnBvdyhlLzIsMikpfX13ZC5zdGFyPSRCZTt2YXIgS0JlPSgxL01hdGguc3FydCgxMikvMisxKSozO2Z1bmN0aW9uIFpCZSgpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gTnMuc3ltYm9sKCkudHlwZShOcy5zeW1ib2xXeWUpLnNpemUoS0JlKk1hdGgucG93KGUvMi40LDIpKX19d2Qud3llPVpCZX0pO3ZhciBOJHQ9SChxb3Q9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHFvdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEpCZT0oZGUoKSxVdChwZSkpLEZ2PShFcigpLFV0KE1yKSksJEY9eWwoKSxRQmU9JEEoKSx0SGU9QnUoKSxlSGU9WEYoKSxRZz1GZSgpLHJIZT1rYygpLFVvdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxyLG4pe3Q9PT12b2lkIDAmJih0PVtdKSxyPT09dm9pZCAwJiYocj0wKSxuPT09dm9pZCAwJiYobj0xLzApLHRoaXMuY29sdW1ucz10LHRoaXMuYm90dG9tUGFkZGluZz1yLHRoaXMubWF4V2lkdGg9bn1yZXR1cm4gZS5wcm90b3R5cGUuYWRkQ29sdW1uPWZ1bmN0aW9uKHQpe3ZhciByPXQud2lkdGgsbj10aGlzLmdldFdpZHRoQXZhaWxhYmxlKCk7dC53aWR0aD1NYXRoLm1pbihuLHIpLHRoaXMuY29sdW1ucy5wdXNoKHQpfSxlLnByb3RvdHlwZS5nZXRCb3VuZHM9ZnVuY3Rpb24odCl7Zm9yKHZhciByPXRoaXMuY29sdW1uc1t0XSxuPTAsaT0wO2k8dDtpKyspbis9dGhpcy5jb2x1bW5zW2ldLndpZHRoO3JldHVybnt0b3BMZWZ0Ont4Om4seTowfSxib3R0b21SaWdodDp7eDpuK3Iud2lkdGgseTpyLmhlaWdodH19fSxlLnByb3RvdHlwZS5nZXRIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gUWcuTWF0aC5tYXgodGhpcy5jb2x1bW5zLm1hcChmdW5jdGlvbih0KXt2YXIgcj10LmhlaWdodDtyZXR1cm4gcn0pLDApK3RoaXMuYm90dG9tUGFkZGluZ30sZS5wcm90b3R5cGUuZ2V0V2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5taW4odGhpcy5jb2x1bW5zLnJlZHVjZShmdW5jdGlvbih0LHIpe3ZhciBuPXIud2lkdGg7cmV0dXJuIHQrbn0sMCksdGhpcy5tYXhXaWR0aCl9LGUucHJvdG90eXBlLmdldFdpZHRoQXZhaWxhYmxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXRXaWR0aCgpO3JldHVybiBNYXRoLm1heCh0aGlzLm1heFdpZHRoLXQsMCl9LGV9KCksbkhlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LHIsbixpKXt0PT09dm9pZCAwJiYodD0xLzApLHI9PT12b2lkIDAmJihyPTEvMCksbj09PXZvaWQgMCYmKG49MCksaT09PXZvaWQgMCYmKGk9W10pLHRoaXMubWF4V2lkdGg9dCx0aGlzLm1heEhlaWdodD1yLHRoaXMucGFkZGluZz1uLHRoaXMucm93cz1pfXJldHVybiBlLnByb3RvdHlwZS5hZGRSb3c9ZnVuY3Rpb24odCl7dC5tYXhXaWR0aD10aGlzLm1heFdpZHRoLXRoaXMucGFkZGluZyoyLHRoaXMucm93cy5wdXNoKHQpfSxlLnByb3RvdHlwZS5nZXRDb2x1bW5Cb3VuZHM9ZnVuY3Rpb24odCxyKXt2YXIgbj10aGlzLmdldFJvd0JvdW5kcyh0KSxpPXRoaXMucm93c1t0XS5nZXRCb3VuZHMocik7cmV0dXJuIGkudG9wTGVmdC54Kz1uLnRvcExlZnQueCxpLmJvdHRvbVJpZ2h0LngrPW4udG9wTGVmdC54LGkudG9wTGVmdC55Kz1uLnRvcExlZnQueSxpLmJvdHRvbVJpZ2h0LnkrPW4udG9wTGVmdC55LGl9LGUucHJvdG90eXBlLmdldFJvd0JvdW5kcz1mdW5jdGlvbih0KXtmb3IodmFyIHI9dGhpcy5wYWRkaW5nLG49dGhpcy5wYWRkaW5nLGk9MDtpPHQ7aSsrKW4rPXRoaXMucm93c1tpXS5nZXRIZWlnaHQoKTt2YXIgbz17dG9wTGVmdDp7eDpyLHk6bn0sYm90dG9tUmlnaHQ6e3g6cit0aGlzLnJvd3NbdF0uZ2V0V2lkdGgoKSx5Om4rdGhpcy5yb3dzW3RdLmdldEhlaWdodCgpfX07cmV0dXJuIG99LGUucHJvdG90eXBlLmdldEhlaWdodD1mdW5jdGlvbigpe3JldHVybiBNYXRoLm1pbih0aGlzLnJvd3MucmVkdWNlKGZ1bmN0aW9uKHQscil7cmV0dXJuIHQrci5nZXRIZWlnaHQoKX0sMCkrdGhpcy5wYWRkaW5nKjIsdGhpcy5tYXhIZWlnaHQpfSxlLnByb3RvdHlwZS5nZXRXaWR0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLm1pbihRZy5NYXRoLm1heCh0aGlzLnJvd3MubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFdpZHRoKCl9KSwwKSt0aGlzLnBhZGRpbmcqMix0aGlzLm1heFdpZHRoKX0sZX0oKSxpSGU9ZnVuY3Rpb24oZSl7SkJlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocil7dmFyIG49ZS5jYWxsKHRoaXMpfHx0aGlzO2lmKG4uX3BhZGRpbmc9NSxuLl9yb3dCb3R0b21QYWRkaW5nPTMsbi5hZGRDbGFzcygibGVnZW5kIiksbi5tYXhFbnRyaWVzUGVyUm93KDEpLHI9PW51bGwpdGhyb3cgbmV3IEVycm9yKCJMZWdlbmQgcmVxdWlyZXMgYSBjb2xvclNjYWxlIik7cmV0dXJuIG4uX2NvbG9yU2NhbGU9cixuLl9yZWRyYXdDYWxsYmFjaz1mdW5jdGlvbihpKXtyZXR1cm4gbi5yZWRyYXcoKX0sbi5fY29sb3JTY2FsZS5vblVwZGF0ZShuLl9yZWRyYXdDYWxsYmFjayksbi5fZm9ybWF0dGVyPXRIZS5pZGVudGl0eSgpLG4ubWF4TGluZXNQZXJFbnRyeSgxKSxuLnhBbGlnbm1lbnQoInJpZ2h0IikueUFsaWdubWVudCgidG9wIiksbi5jb21wYXJhdG9yKGZ1bmN0aW9uKGksbyl7dmFyIGE9bi5fY29sb3JTY2FsZS5kb21haW4oKS5zbGljZSgpLm1hcChmdW5jdGlvbihzKXtyZXR1cm4gbi5fZm9ybWF0dGVyKHMpfSk7cmV0dXJuIGEuaW5kZXhPZihpKS1hLmluZGV4T2Yobyl9KSxuLl9zeW1ib2xGYWN0b3J5QWNjZXNzb3I9ZnVuY3Rpb24oKXtyZXR1cm4gZUhlLmNpcmNsZSgpfSxuLl9zeW1ib2xPcGFjaXR5QWNjZXNzb3I9ZnVuY3Rpb24oKXtyZXR1cm4gMX0sbn1yZXR1cm4gdC5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7ZS5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyk7dmFyIHI9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZCh0LkxFR0VORF9ST1dfQ0xBU1MsITApLG49ci5hcHBlbmQoImciKS5jbGFzc2VkKHQuTEVHRU5EX0VOVFJZX0NMQVNTLCEwKTtuLmFwcGVuZCgidGV4dCIpO3ZhciBpPW5ldyAkRi5TdmdDb250ZXh0KHIubm9kZSgpLG51bGwsUUJlLkFERF9USVRMRV9FTEVNRU5UUyk7dGhpcy5fbWVhc3VyZXI9bmV3ICRGLkNhY2hlTWVhc3VyZXIoaSksdGhpcy5fd3JhcHBlcj1uZXcgJEYuV3JhcHBlcigpLm1heExpbmVzKHRoaXMubWF4TGluZXNQZXJFbnRyeSgpKSx0aGlzLl93cml0ZXI9bmV3ICRGLldyaXRlcih0aGlzLl9tZWFzdXJlcixpLHRoaXMuX3dyYXBwZXIpfSx0LnByb3RvdHlwZS5mb3JtYXR0ZXI9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5fZm9ybWF0dGVyOih0aGlzLl9mb3JtYXR0ZXI9cix0aGlzLnJlZHJhdygpLHRoaXMpfSx0LnByb3RvdHlwZS5tYXhFbnRyaWVzUGVyUm93PWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX21heEVudHJpZXNQZXJSb3c6KHRoaXMuX21heEVudHJpZXNQZXJSb3c9cix0aGlzLnJlZHJhdygpLHRoaXMpfSx0LnByb3RvdHlwZS5tYXhMaW5lc1BlckVudHJ5PWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX21heExpbmVzUGVyRW50cnk6KHRoaXMuX21heExpbmVzUGVyRW50cnk9cix0aGlzLnJlZHJhdygpLHRoaXMpfSx0LnByb3RvdHlwZS5tYXhXaWR0aD1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9tYXhXaWR0aDoodGhpcy5fbWF4V2lkdGg9cix0aGlzLnJlZHJhdygpLHRoaXMpfSx0LnByb3RvdHlwZS5jb21wYXJhdG9yPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX2NvbXBhcmF0b3I6KHRoaXMuX2NvbXBhcmF0b3I9cix0aGlzLnJlZHJhdygpLHRoaXMpfSx0LnByb3RvdHlwZS5jb2xvclNjYWxlPWZ1bmN0aW9uKHIpe3JldHVybiByIT1udWxsPyh0aGlzLl9jb2xvclNjYWxlLm9mZlVwZGF0ZSh0aGlzLl9yZWRyYXdDYWxsYmFjayksdGhpcy5fY29sb3JTY2FsZT1yLHRoaXMuX2NvbG9yU2NhbGUub25VcGRhdGUodGhpcy5fcmVkcmF3Q2FsbGJhY2spLHRoaXMucmVkcmF3KCksdGhpcyk6dGhpcy5fY29sb3JTY2FsZX0sdC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe2UucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKSx0aGlzLl9jb2xvclNjYWxlLm9mZlVwZGF0ZSh0aGlzLl9yZWRyYXdDYWxsYmFjayl9LHQucHJvdG90eXBlLl9idWlsZExlZ2VuZFRhYmxlPWZ1bmN0aW9uKHIsbil7dmFyIGk9dGhpcyxvPXRoaXMuX21lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQsYT1uZXcgbkhlKHIsbix0aGlzLl9wYWRkaW5nKSxzPXRoaXMuX2NvbG9yU2NhbGUuZG9tYWluKCkuc2xpY2UoKS5zb3J0KGZ1bmN0aW9uKGMsdSl7cmV0dXJuIGkuX2NvbXBhcmF0b3IoaS5fZm9ybWF0dGVyKGMpLGkuX2Zvcm1hdHRlcih1KSl9KSxsPW5ldyBVb3Q7cmV0dXJuIGEuYWRkUm93KGwpLGwuYm90dG9tUGFkZGluZz10aGlzLl9yb3dCb3R0b21QYWRkaW5nLHMuZm9yRWFjaChmdW5jdGlvbihjLHUpe2wuY29sdW1ucy5sZW5ndGgvMj09PWkubWF4RW50cmllc1BlclJvdygpJiYobD1uZXcgVW90LGwuYm90dG9tUGFkZGluZz1pLl9yb3dCb3R0b21QYWRkaW5nLGEuYWRkUm93KGwpKTt2YXIgaD1sLmdldFdpZHRoQXZhaWxhYmxlKCksZj1pLl9mb3JtYXR0ZXIoYykscD1pLl9tZWFzdXJlci5tZWFzdXJlKGYpLndpZHRoLGQ9aC1vLXA8MDtkJiZsLmNvbHVtbnMubGVuZ3RoPjEmJihsPW5ldyBVb3QsbC5ib3R0b21QYWRkaW5nPWkuX3Jvd0JvdHRvbVBhZGRpbmcsYS5hZGRSb3cobCkpO3ZhciBnPXt3aWR0aDpvLGhlaWdodDpvLGRhdGE6e25hbWU6Yyx0eXBlOiJzeW1ib2wifX07bC5hZGRDb2x1bW4oZyksaD1sLmdldFdpZHRoQXZhaWxhYmxlKCk7dmFyIF89TWF0aC5taW4oaCxwKTtpLl93cmFwcGVyLm1heExpbmVzKGkubWF4TGluZXNQZXJFbnRyeSgpKTt2YXIgeT1pLl93cmFwcGVyLndyYXAoZixpLl9tZWFzdXJlcixfKS5ub0xpbmVzLHg9eSpvLGI9e3dpZHRoOl8saGVpZ2h0OngsZGF0YTp7bmFtZTpjLHR5cGU6InRleHQifX07bC5hZGRDb2x1bW4oYil9KSxhfSx0LnByb3RvdHlwZS5yZXF1ZXN0ZWRTcGFjZT1mdW5jdGlvbihyLG4pe3ZhciBpPXRoaXMuX2J1aWxkTGVnZW5kVGFibGUoUWcuTWF0aC5taW4oW3RoaXMubWF4V2lkdGgoKSxyXSxyKSxuKTtyZXR1cm57bWluSGVpZ2h0OmkuZ2V0SGVpZ2h0KCksbWluV2lkdGg6aS5nZXRXaWR0aCgpfX0sdC5wcm90b3R5cGUuZW50aXRpZXNBdD1mdW5jdGlvbihyKXt2YXIgbj10aGlzO2lmKCF0aGlzLl9pc1NldHVwKXJldHVybltdO3ZhciBpPXRoaXMuX2J1aWxkTGVnZW5kVGFibGUodGhpcy53aWR0aCgpLHRoaXMuaGVpZ2h0KCkpO3JldHVybiBpLnJvd3MucmVkdWNlKGZ1bmN0aW9uKG8sYSxzKXtpZihvLmxlbmd0aCE9PTApcmV0dXJuIG87dmFyIGw9aS5nZXRSb3dCb3VuZHMocyksYz1RZy5NYXRoLndpdGhpbihyLGwpO3JldHVybiBjP2EuY29sdW1ucy5yZWR1Y2UoZnVuY3Rpb24odSxoLGYpe3ZhciBwPWkuZ2V0Q29sdW1uQm91bmRzKHMsZiksZD1RZy5NYXRoLndpdGhpbihyLHApO2lmKGQpe3ZhciBnPW4uY29udGVudCgpLnNlbGVjdEFsbCgiLiIrdC5MRUdFTkRfUk9XX0NMQVNTKS5ub2RlcygpW3NdLF89RnYuc2VsZWN0KGcpLnNlbGVjdEFsbCgiLiIrdC5MRUdFTkRfRU5UUllfQ0xBU1MpLm5vZGVzKClbTWF0aC5mbG9vcihmLzIpXSx5PUZ2LnNlbGVjdChfKS5zZWxlY3QoIi4iK3QuTEVHRU5EX1NZTUJPTF9DTEFTUykseD1RZy5ET00uZ2V0VHJhbnNsYXRlVmFsdWVzKEZ2LnNlbGVjdChnKSksYj1RZy5ET00uZ2V0VHJhbnNsYXRlVmFsdWVzKHkpO3JldHVyblt7Ym91bmRzOlFnLkRPTS5lbGVtZW50QkJveChGdi5zZWxlY3QoZykpLGRhdHVtOmguZGF0YS5uYW1lLHBvc2l0aW9uOnt4OnhbMF0rYlswXSx5OnhbMV0rYlsxXX0sc2VsZWN0aW9uOkZ2LnNlbGVjdChfKSxjb21wb25lbnQ6bn1dfXJldHVybiB1fSxvKTpvfSxbXSl9LHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7ZS5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0aGlzKTt2YXIgcj10aGlzLl9idWlsZExlZ2VuZFRhYmxlKHRoaXMud2lkdGgoKSx0aGlzLmhlaWdodCgpKTt0aGlzLmNvbnRlbnQoKS5zZWxlY3RBbGwoIioiKS5yZW1vdmUoKTt2YXIgbj10aGlzLmNvbnRlbnQoKS5zZWxlY3RBbGwoImcuIit0LkxFR0VORF9ST1dfQ0xBU1MpLmRhdGEoci5yb3dzKSxpPW4uZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKHQuTEVHRU5EX1JPV19DTEFTUywhMCkubWVyZ2Uobik7bi5leGl0KCkucmVtb3ZlKCksaS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKGEscyl7dmFyIGw9ci5nZXRSb3dCb3VuZHMocyk7cmV0dXJuInRyYW5zbGF0ZSgiK2wudG9wTGVmdC54KyIsICIrbC50b3BMZWZ0LnkrIikifSk7dmFyIG89dGhpcztyZXR1cm4gaS5lYWNoKGZ1bmN0aW9uKGEscyl7Zm9yKHZhciBsPVtdLGM9MDtjPGEuY29sdW1ucy5sZW5ndGg7Yys9MilsLnB1c2goW2EuY29sdW1uc1tjXSxhLmNvbHVtbnNbYysxXV0pO3ZhciB1PUZ2LnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoImcuIit0LkxFR0VORF9FTlRSWV9DTEFTUykuZGF0YShsKSxoPXUuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKHQuTEVHRU5EX0VOVFJZX0NMQVNTLCEwKS5tZXJnZSh1KTtoLmFwcGVuZCgicGF0aCIpLmF0dHIoImQiLGZ1bmN0aW9uKGYscCl7dmFyIGQ9ZlswXTtyZXR1cm4gby5zeW1ib2woKShkLmRhdGEubmFtZSxzKShkLmhlaWdodCouNikobnVsbCl9KS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKGYscCl7dmFyIGQ9ZlswXSxnPXIucm93c1tzXS5jb2x1bW5zLmluZGV4T2YoZCksXz1yLmdldENvbHVtbkJvdW5kcyhzLGcpO3JldHVybiJ0cmFuc2xhdGUoIisoXy50b3BMZWZ0LngrZC53aWR0aC8yKSsiLCAiK2QuaGVpZ2h0LzIrIikifSkuYXR0cigiZmlsbCIsZnVuY3Rpb24oZil7cmV0dXJuIG8uX2NvbG9yU2NhbGUuc2NhbGUoZlswXS5kYXRhLm5hbWUpfSkuYXR0cigib3BhY2l0eSIsZnVuY3Rpb24oZixwKXtyZXR1cm4gby5zeW1ib2xPcGFjaXR5KCkoZlswXS5kYXRhLm5hbWUscyl9KS5jbGFzc2VkKHQuTEVHRU5EX1NZTUJPTF9DTEFTUywhMCksaC5hcHBlbmQoImciKS5jbGFzc2VkKCJ0ZXh0LWNvbnRhaW5lciIsITApLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24oZixwKXt2YXIgZD1mWzFdLGc9ci5yb3dzW3NdLmNvbHVtbnMuaW5kZXhPZihkKSxfPXIuZ2V0Q29sdW1uQm91bmRzKHMsZyk7cmV0dXJuInRyYW5zbGF0ZSgiK18udG9wTGVmdC54KyIsIDApIn0pLmVhY2goZnVuY3Rpb24oZixwLGQpe3ZhciBnPUZ2LnNlbGVjdCh0aGlzKSxfPWZbMV0seT17eEFsaWduOiJsZWZ0Iix5QWxpZ246InRvcCIsdGV4dFJvdGF0aW9uOjB9O28uX3dyaXRlci53cml0ZShvLl9mb3JtYXR0ZXIoXy5kYXRhLm5hbWUpLF8ud2lkdGgsby5oZWlnaHQoKSx5LGcubm9kZSgpKX0pLHUuZXhpdCgpLnJlbW92ZSgpfSksdGhpc30sdC5wcm90b3R5cGUuc3ltYm9sPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX3N5bWJvbEZhY3RvcnlBY2Nlc3NvcjoodGhpcy5fc3ltYm9sRmFjdG9yeUFjY2Vzc29yPXIsdGhpcy5yZW5kZXIoKSx0aGlzKX0sdC5wcm90b3R5cGUuc3ltYm9sT3BhY2l0eT1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9zeW1ib2xPcGFjaXR5QWNjZXNzb3I6KHR5cGVvZiByPT0ibnVtYmVyIj90aGlzLl9zeW1ib2xPcGFjaXR5QWNjZXNzb3I9ZnVuY3Rpb24oKXtyZXR1cm4gcn06dGhpcy5fc3ltYm9sT3BhY2l0eUFjY2Vzc29yPXIsdGhpcy5yZW5kZXIoKSx0aGlzKX0sdC5wcm90b3R5cGUuZml4ZWRXaWR0aD1mdW5jdGlvbigpe3JldHVybiEwfSx0LnByb3RvdHlwZS5maXhlZEhlaWdodD1mdW5jdGlvbigpe3JldHVybiEwfSx0LnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGU9ZnVuY3Rpb24oKXtlLnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGUuY2FsbCh0aGlzKSx0aGlzLl9tZWFzdXJlci5yZXNldCgpfSx0LkxFR0VORF9ST1dfQ0xBU1M9ImxlZ2VuZC1yb3ciLHQuTEVHRU5EX0VOVFJZX0NMQVNTPSJsZWdlbmQtZW50cnkiLHQuTEVHRU5EX1NZTUJPTF9DTEFTUz0ibGVnZW5kLXN5bWJvbCIsdH0ockhlLkNvbXBvbmVudCk7cW90LkxlZ2VuZD1pSGV9KTt2YXIgR290PUgoS0Y9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEtGLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgb0hlOyhmdW5jdGlvbihlKXtlLk1BSU49Im1haW4iLGUuUkVTRVQ9InJlc2V0In0pKG9IZT1LRi5BbmltYXRvcnx8KEtGLkFuaW1hdG9yPXt9KSl9KTt2YXIgTyR0PUgoKGVHbixEJHQpPT57InVzZSBzdHJpY3QiO0QkdC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0IT1udWxsJiZ0eXBlb2YgdD09Im9iamVjdCImJkFycmF5LmlzQXJyYXkodCk9PT0hMX19KTt2YXIgQiR0PUgoKHJHbixGJHQpPT57InVzZSBzdHJpY3QiO3ZhciBhSGU9TyR0KCk7ZnVuY3Rpb24geiR0KGUpe3JldHVybiBhSGUoZSk9PT0hMCYmT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpPT09IltvYmplY3QgT2JqZWN0XSJ9RiR0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIHIsbjtyZXR1cm4hKHokdCh0KT09PSExfHwocj10LmNvbnN0cnVjdG9yLHR5cGVvZiByIT0iZnVuY3Rpb24iKXx8KG49ci5wcm90b3R5cGUseiR0KG4pPT09ITEpfHxuLmhhc093blByb3BlcnR5KCJpc1Byb3RvdHlwZU9mIik9PT0hMSl9fSk7dmFyIFlvdD1IKFdvdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoV290LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgc0hlPUZlKCksSCR0PTAsbEhlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LHIpe3Q9PT12b2lkIDAmJih0PVtdKSxyPT09dm9pZCAwJiYocj17fSksdGhpcy5fdXBkYXRlSWQ9SCR0KyssdGhpcy5fZGF0YT10LHRoaXMuX21ldGFkYXRhPXIsdGhpcy5fY2FsbGJhY2tzPW5ldyBzSGUuQ2FsbGJhY2tTZXR9cmV0dXJuIGUucHJvdG90eXBlLm9uVXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZlVwZGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fY2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5kYXRhPWZ1bmN0aW9uKHQpe3JldHVybiB0PT1udWxsP3RoaXMuX2RhdGE6KHRoaXMuX2RhdGE9dCx0aGlzLl9kaXNwYXRjaFVwZGF0ZSgpLHRoaXMpfSxlLnByb3RvdHlwZS5tZXRhZGF0YT1mdW5jdGlvbih0KXtyZXR1cm4gdD09bnVsbD90aGlzLl9tZXRhZGF0YToodGhpcy5fbWV0YWRhdGE9dCx0aGlzLl9kaXNwYXRjaFVwZGF0ZSgpLHRoaXMpfSxlLnByb3RvdHlwZS51cGRhdGVJZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl91cGRhdGVJZH0sZS5wcm90b3R5cGUuX2Rpc3BhdGNoVXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlSWQ9SCR0KyssdGhpcy5fY2FsbGJhY2tzLmNhbGxDYWxsYmFja3ModGhpcyl9LGV9KCk7V290LkRhdGFzZXQ9bEhlfSk7dmFyICRvdD1IKFJjPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShSYywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGpvdD0oZGUoKSxVdChwZSkpLGNIZT1CJHQoKSx1SGU9WW90KCksaEhlPWt2KCk7ZnVuY3Rpb24gWG90KGUpe3JldHVybiBlIGluc3RhbmNlb2YgcDQ/ZTplIGluc3RhbmNlb2YgRGF0ZT9mNChlLnZhbHVlT2YoKSk6ZSBpbnN0YW5jZW9mIGhIZS5TY2FsZT9WJHQoZSk6ZSBpbnN0YW5jZW9mIHVIZS5EYXRhc2V0P1UkdChlKTpjSGUoZSk/WkYoZSk6QXJyYXkuaXNBcnJheShlKT9xJHQoZSk6ZjQoZSl9UmMuc2lnbj1Yb3Q7ZnVuY3Rpb24gViR0KGUpe3ZhciB0PXtkb21haW46ZS5kb21haW4oKSxyYW5nZTplLnJhbmdlKCksdXBkYXRlSWQ6ZS51cGRhdGVJZCgpLHJlZjpmNChlKX07cmV0dXJuIFpGKHQpfVJjLnNpZ25TY2FsZT1WJHQ7ZnVuY3Rpb24gVSR0KGUpe3ZhciB0PXtyZWY6ZjQoZSksdXBkYXRlSWQ6ZS51cGRhdGVJZCgpfTtyZXR1cm4gWkYodCl9UmMuc2lnbkRhdGFzZXQ9VSR0O2Z1bmN0aW9uIGY0KGUpe3JldHVybiBuZXcgVyR0KGUpfVJjLnNpZ25SZWY9ZjQ7ZnVuY3Rpb24gcSR0KGUpe3JldHVybiBuZXcgRyR0KGUubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBYb3QodCl9KSl9UmMuc2lnbkFycmF5PXEkdDtmdW5jdGlvbiBaRihlKXt2YXIgdD17fTtmb3IodmFyIHIgaW4gZSllLmhhc093blByb3BlcnR5KHIpJiYodFtyXT1Yb3QoZVtyXSkpO3JldHVybiBuZXcgWSR0KHQpfVJjLnNpZ25PYmo9WkY7dmFyIHA0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe31yZXR1cm4gZS5wcm90b3R5cGUuaXNEaWZmZXJlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yP3RoaXMuaXNTaWduYXR1cmVEaWZmZXJlbnQodCk6ITB9LGV9KCk7UmMuU2lnbmF0dXJlPXA0O3ZhciBHJHQ9ZnVuY3Rpb24oZSl7am90Ll9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocil7dmFyIG49ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLmFycmF5PXIsbn1yZXR1cm4gdC5wcm90b3R5cGUuaXNTaWduYXR1cmVEaWZmZXJlbnQ9ZnVuY3Rpb24ocil7aWYoci5hcnJheS5sZW5ndGghPT10aGlzLmFycmF5Lmxlbmd0aClyZXR1cm4hMDtmb3IodmFyIG49MDtuPHRoaXMuYXJyYXkubGVuZ3RoO24rKylpZih0aGlzLmFycmF5W25dLmlzRGlmZmVyZW50KHIuYXJyYXlbbl0pKXJldHVybiEwO3JldHVybiExfSx0fShwNCk7UmMuQXJyYXlTaWduYXR1cmU9RyR0O3ZhciBXJHQ9ZnVuY3Rpb24oZSl7am90Ll9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocil7dmFyIG49ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLnJlZj1yLG59cmV0dXJuIHQucHJvdG90eXBlLmlzU2lnbmF0dXJlRGlmZmVyZW50PWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLnJlZiE9PXIucmVmfSx0fShwNCk7UmMuUmVmZXJlbmNlU2lnbmF0dXJlPVckdDt2YXIgWSR0PWZ1bmN0aW9uKGUpe2pvdC5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KHIpe3ZhciBuPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5vYmo9cixufXJldHVybiB0LnByb3RvdHlwZS5pc1NpZ25hdHVyZURpZmZlcmVudD1mdW5jdGlvbihyKXt2YXIgbj1PYmplY3Qua2V5cyh0aGlzLm9iaiksaT1PYmplY3Qua2V5cyhyLm9iaik7aWYobi5sZW5ndGghPT1pLmxlbmd0aClyZXR1cm4hMDtmb3IodmFyIG89MCxhPW47bzxhLmxlbmd0aDtvKyspe3ZhciBzPWFbb107aWYoIXIub2JqLmhhc093blByb3BlcnR5KHMpfHx0aGlzLm9ialtzXS5pc0RpZmZlcmVudChyLm9ialtzXSkpcmV0dXJuITB9cmV0dXJuITF9LHR9KHA0KTtSYy5PYmplY3RTaWduYXR1cmU9WSR0fSk7dmFyIGokdD1IKEtvdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoS290LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZkhlPSRvdCgpO2Z1bmN0aW9uIHBIZShlKXt2YXIgdD12b2lkIDAscixuPSExLGk9ITEsbz1mdW5jdGlvbigpe2Zvcih2YXIgYT1bXSxzPTA7czxhcmd1bWVudHMubGVuZ3RoO3MrKylhW3NdPWFyZ3VtZW50c1tzXTtpZihuKXJldHVybiByO3ZhciBsPWZIZS5zaWduQXJyYXkoYSk7cmV0dXJuIHQ9PT12b2lkIDB8fHQuaXNEaWZmZXJlbnQobCk/KGkmJmNvbnNvbGUud2FybigiY2FjaGUgbWlzcyEgY29tcHV0aW5nIiksdD1sLHI9ZS5hcHBseSh0aGlzLGEpKTppJiZjb25zb2xlLndhcm4oImNhY2hlIGhpdCEiKSxyfTtyZXR1cm4gby5kb0xvY2tlZD1mdW5jdGlvbihhKXtpZihuKXRocm93IG5ldyBFcnJvcigiTG9ja2luZyBhbiBhbHJlYWR5IGxvY2tlZCBtZW1vaXplIGZ1bmN0aW9uISIpO249ITA7dmFyIHM9YS5hcHBseSh0aGlzKTtyZXR1cm4gbj0hMSxzfSxvLmxvZ1BlcmZvcm1hbmNlPWZ1bmN0aW9uKGEpe3JldHVybiBhPT09dm9pZCAwJiYoYT0hMCksaT1hLHRoaXN9LG99S290Lm1lbW9pemU9cEhlfSk7dmFyIEskdD1IKEpGPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKRiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGRIZT1PZSgpLFpvdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt0aGlzLm1hcD1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuZXhpc3RzPU9iamVjdC5jcmVhdGUobnVsbCl9cmV0dXJuIGUucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXtyZXR1cm4gZGVsZXRlIHRoaXMubWFwW3RdLGRlbGV0ZSB0aGlzLmV4aXN0c1t0XSwhMH0sZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hcFt0XX0sZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiEhdGhpcy5leGlzdHNbdF19LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLm1hcFt0XT1yLHRoaXMuZXhpc3RzW3RdPSEwLHRoaXN9LGV9KCksWCR0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMubWFwPW5ldyBab3R9cmV0dXJuIGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tYXAuZ2V0KHRbMF0pLmdldCh0WzFdKX0sZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hcC5oYXModFswXSkmJnRoaXMubWFwLmdldCh0WzBdKS5oYXModFsxXSl9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLm1hcC5oYXModFswXSl8fHRoaXMubWFwLnNldCh0WzBdLG5ldyBab3QpLHRoaXMubWFwLmdldCh0WzBdKS5zZXQodFsxXSxyKSx0aGlzfSxlLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWFwLmhhcyh0WzBdKSYmdGhpcy5tYXAuZ2V0KHRbMF0pLmRlbGV0ZSh0WzFdKSwhMH0sZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLm1hcD1uZXcgWm90fSxlLnJlc29sdmVyPWZ1bmN0aW9uKHQscixuKXtyZXR1cm5bbi51cGRhdGVJZCgpLHJdfSxlfSgpO2Z1bmN0aW9uICQkdChlKXt2YXIgdD1kSGUubWVtb2l6ZShlLFgkdC5yZXNvbHZlcik7cmV0dXJuIHQuY2FjaGU9bmV3IFgkdCx0fUpGLm1lbW9pemVQcm9qZWN0b3I9JCR0O2Z1bmN0aW9uIG1IZShlKXtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaChmdW5jdGlvbih0KXtlW3RdPSQkdChlW3RdKX0pLGV9SkYubWVtb2l6ZVByb2plY3RvcnM9bUhlfSk7dmFyIFokdD1IKEpvdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSm90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZ0hlPUNTKCk7ZnVuY3Rpb24gX0hlKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3ZhciByPWUuc2xpY2UoMCwtMSksbj1lW2UubGVuZ3RoLTFdLGk9Z0hlLm1lbW9pemUobiksbz1mdW5jdGlvbigpe3ZhciBhPXRoaXMscz1yLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gbC5hcHBseShhKX0pO3JldHVybiBpLmFwcGx5KHZvaWQgMCxzKX07cmV0dXJuIG99Sm90Lm1lbVRodW5rPV9IZX0pO3ZhciBDUz1IKEFTPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShBUywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFFvdD0oZGUoKSxVdChwZSkpO1FvdC5fX2V4cG9ydFN0YXIoaiR0KCksQVMpO1FvdC5fX2V4cG9ydFN0YXIoSyR0KCksQVMpO1FvdC5fX2V4cG9ydFN0YXIoWiR0KCksQVMpO3ZhciB5SGU9JG90KCk7QVMuc2lnbj15SGUuc2lnbn0pO3ZhciBCdj1IKE5jPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShOYywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEokdD0oRXIoKSxVdChNcikpLHZIZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxyKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fZHJhd1N0ZXA9cn1yZXR1cm4gZS5wcm90b3R5cGUuZ2V0RHJhd1N0ZXA9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZHJhd1N0ZXB9LGUucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24odCxyKXt2YXIgbj1yW3IubGVuZ3RoLTFdLmF0dHJUb0FwcGxpZWRQcm9qZWN0b3I7dGhpcy5fY29udGV4dC5zYXZlKCksdGhpcy5fZHJhd1N0ZXAodGhpcy5fY29udGV4dCx0LG4pLHRoaXMuX2NvbnRleHQucmVzdG9yZSgpfSxlLnByb3RvdHlwZS5nZXRWaXN1YWxQcmltaXRpdmVzPWZ1bmN0aW9uKCl7cmV0dXJuW119LGUucHJvdG90eXBlLmdldFZpc3VhbFByaW1pdGl2ZUF0SW5kZXg9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGx9LGUucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe30sZX0oKTtOYy5DYW52YXNEcmF3ZXI9dkhlO05jLkNvbnRleHRTdHlsZUF0dHJzPVsiZmlsbC1vcGFjaXR5IiwiZmlsbCIsIm9wYWNpdHkiLCJzdHJva2Utb3BhY2l0eSIsInN0cm9rZS13aWR0aCIsInN0cm9rZSIsInN0cm9rZS1kYXNoYXJyYXkiXTtmdW5jdGlvbiB4SGUoZSx0LHIsbil7dmFyIGk9TmMuQ29udGV4dFN0eWxlQXR0cnMuY29uY2F0KHQpO3JldHVybiBRJHQoZSxpLHIsbil9TmMucmVzb2x2ZUF0dHJpYnV0ZXNTdWJzZXRXaXRoU3R5bGVzPXhIZTtmdW5jdGlvbiBRJHQoZSx0LHIsbil7Zm9yKHZhciBpPXt9LG89MCxhPXQ7bzxhLmxlbmd0aDtvKyspe3ZhciBzPWFbb107ZS5oYXNPd25Qcm9wZXJ0eShzKSYmKGlbc109ZVtzXShyLG4pKX1yZXR1cm4gaX1OYy5yZXNvbHZlQXR0cmlidXRlcz1RJHQ7ZnVuY3Rpb24gYkhlKGUpe3ZhciB0PWUub3BhY2l0eSE9bnVsbD9wYXJzZUZsb2F0KGUub3BhY2l0eSk6MSxyPWVbInN0cm9rZS1vcGFjaXR5Il0hPW51bGw/cGFyc2VGbG9hdChlWyJzdHJva2Utb3BhY2l0eSJdKToxO3JldHVybiByKnR9ZnVuY3Rpb24gd0hlKGUpe3ZhciB0PWUub3BhY2l0eSE9bnVsbD9wYXJzZUZsb2F0KGUub3BhY2l0eSk6MSxyPWVbImZpbGwtb3BhY2l0eSJdIT1udWxsP3BhcnNlRmxvYXQoZVsiZmlsbC1vcGFjaXR5Il0pOjE7cmV0dXJuIHIqdH1mdW5jdGlvbiB0S3QoZSl7cmV0dXJuIGVbInN0cm9rZS13aWR0aCJdIT1udWxsP3BhcnNlRmxvYXQoZVsic3Ryb2tlLXdpZHRoIl0pOjF9TmMuZ2V0U3Ryb2tlV2lkdGg9dEt0O2Z1bmN0aW9uIGVLdChlKXt2YXIgdD1lWyJzdHJva2UtZGFzaGFycmF5Il07aWYodCE9bnVsbCl0cnl7cmV0dXJuIHQuc3BsaXQoL1sgLF0rLykubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBwYXJzZUludChyLDEwKX0pfWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJnZXRTdHJva2VEYXNoQXJyYXkgZmFpbGVkIHdpdGg6ICIrciksW119cmV0dXJuW119TmMuZ2V0U3Ryb2tlRGFzaEFycmF5PWVLdDtmdW5jdGlvbiBTSGUoZSx0LHIsbil7ZS5zYXZlKCksZS5iZWdpblBhdGgoKSx0LmNvbnRleHQoZSksdChyKSxlLmxpbmVKb2luPSJyb3VuZCIsdGF0KGUsbiksZS5yZXN0b3JlKCl9TmMucmVuZGVyQXJlYT1TSGU7ZnVuY3Rpb24gTUhlKGUsdCxyLG4pe2Uuc2F2ZSgpLGUuYmVnaW5QYXRoKCksdC5jb250ZXh0KGUpLHQociksZS5saW5lSm9pbj0icm91bmQiLHRhdChlLG4pLGUucmVzdG9yZSgpfU5jLnJlbmRlckxpbmU9TUhlO2Z1bmN0aW9uIHRhdChlLHQpe2lmKHQuc3Ryb2tlKXtlLmxpbmVXaWR0aD10S3QodCk7dmFyIHI9SiR0LmNvbG9yKHQuc3Ryb2tlKSxuPWVLdCh0KTtlLnNldExpbmVEYXNoKG4pLHIub3BhY2l0eSo9YkhlKHQpLGUuc3Ryb2tlU3R5bGU9ci50b1N0cmluZygpLGUuc3Ryb2tlKCl9aWYodC5maWxsKXt2YXIgaT1KJHQuY29sb3IodC5maWxsKTtpLm9wYWNpdHkqPXdIZSh0KSxlLmZpbGxTdHlsZT1pLnRvU3RyaW5nKCksZS5maWxsKCl9fU5jLnJlbmRlclBhdGhXaXRoU3R5bGU9dGF0fSk7dmFyIFV1PUgoZWF0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlYXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBFSGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQscil7dGhpcy5fc3ZnRHJhd2VyRmFjdG9yeT10LHRoaXMuX2NhbnZhc0RyYXdlckZhY3Rvcnk9cn1yZXR1cm4gZS5wcm90b3R5cGUudXNlU1ZHPWZ1bmN0aW9uKHQpe3RoaXMuX2N1cnJlbnREcmF3ZXIhPW51bGwmJnRoaXMuX2N1cnJlbnREcmF3ZXIucmVtb3ZlKCk7dmFyIHI9dGhpcy5fc3ZnRHJhd2VyRmFjdG9yeSgpO3IuYXR0YWNoVG8odCksdGhpcy5fY3VycmVudERyYXdlcj1yfSxlLnByb3RvdHlwZS51c2VDYW52YXM9ZnVuY3Rpb24odCl7dGhpcy5fY3VycmVudERyYXdlciE9bnVsbCYmdGhpcy5fY3VycmVudERyYXdlci5yZW1vdmUoKSx0aGlzLl9jdXJyZW50RHJhd2VyPXRoaXMuX2NhbnZhc0RyYXdlckZhY3RvcnkodC5ub2RlKCkuZ2V0Q29udGV4dCgiMmQiKSl9LGUucHJvdG90eXBlLmdldERyYXdlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jdXJyZW50RHJhd2VyfSxlLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLl9jdXJyZW50RHJhd2VyIT1udWxsJiZ0aGlzLl9jdXJyZW50RHJhd2VyLnJlbW92ZSgpfSxlLnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQscil7dGhpcy5fY3VycmVudERyYXdlci5kcmF3KHQscil9LGUucHJvdG90eXBlLmdldFZpc3VhbFByaW1pdGl2ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3VycmVudERyYXdlci5nZXRWaXN1YWxQcmltaXRpdmVzKCl9LGUucHJvdG90eXBlLmdldFZpc3VhbFByaW1pdGl2ZUF0SW5kZXg9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2N1cnJlbnREcmF3ZXIuZ2V0VmlzdWFsUHJpbWl0aXZlQXRJbmRleCh0KX0sZX0oKTtlYXQuUHJveHlEcmF3ZXI9RUhlfSk7dmFyIE9mPUgocmF0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyYXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBUSGU9KEVyKCksVXQoTXIpKSxyS3Q9RmUoKSxDSGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQscil7dGhpcy5fcm9vdD1USGUuc2VsZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJnIikpLHRoaXMuX2NsYXNzTmFtZT1yLHRoaXMuX3N2Z0VsZW1lbnROYW1lPXR9cmV0dXJuIGUucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24odCxyKXt2YXIgbj10aGlzO3RoaXMuX2NyZWF0ZUFuZERlc3Ryb3lET01FbGVtZW50cyh0KTtmb3IodmFyIGk9MCxvPXIubGVuZ3RoLGE9ZnVuY3Rpb24obCl7dmFyIGM9cltsXTtyS3QuV2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gbi5fZHJhd1N0ZXAoYyl9LGkpLGkrPWMuYW5pbWF0b3IudG90YWxUaW1lKHQubGVuZ3RoKX0scz0wO3M8bztzKyspYShzKX0sZS5wcm90b3R5cGUuZ2V0VmlzdWFsUHJpbWl0aXZlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYWNoZWRWaXN1YWxQcmltaXRpdmVzTm9kZXM9PW51bGwmJih0aGlzLl9jYWNoZWRWaXN1YWxQcmltaXRpdmVzTm9kZXM9dGhpcy5fc2VsZWN0aW9uLm5vZGVzKCkpLHRoaXMuX2NhY2hlZFZpc3VhbFByaW1pdGl2ZXNOb2Rlc30sZS5wcm90b3R5cGUuZ2V0VmlzdWFsUHJpbWl0aXZlQXRJbmRleD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fY2FjaGVkVmlzdWFsUHJpbWl0aXZlc05vZGVNYXA9PW51bGw/bnVsbDp0aGlzLl9jYWNoZWRWaXN1YWxQcmltaXRpdmVzTm9kZU1hcC5nZXQodCl9LGUucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3RoaXMuX3Jvb3QucmVtb3ZlKCl9LGUucHJvdG90eXBlLmF0dGFjaFRvPWZ1bmN0aW9uKHQpe3Qubm9kZSgpLmFwcGVuZENoaWxkKHRoaXMuX3Jvb3Qubm9kZSgpKX0sZS5wcm90b3R5cGUuZ2V0Um9vdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb290fSxlLnByb3RvdHlwZS5zZWxlY3Rvcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdmdFbGVtZW50TmFtZX0sZS5wcm90b3R5cGUuX2FwcGx5RGVmYXVsdEF0dHJpYnV0ZXM9ZnVuY3Rpb24odCl7fSxlLnByb3RvdHlwZS5fY3JlYXRlQW5kRGVzdHJveURPTUVsZW1lbnRzPWZ1bmN0aW9uKHQpe3ZhciByPXQubWFwKGZ1bmN0aW9uKGEscyl7cmV0dXJuIGEhPW51bGw/e2Q6YSxpOnN9Om51bGx9KSxuPXIuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhIT1udWxsfSksaT10aGlzLl9yb290LnNlbGVjdEFsbCh0aGlzLnNlbGVjdG9yKCkpLmRhdGEobik7dGhpcy5fc2VsZWN0aW9uPWkuZW50ZXIoKS5hcHBlbmQodGhpcy5fc3ZnRWxlbWVudE5hbWUpLm1lcmdlKGkpLGkuZXhpdCgpLnJlbW92ZSgpO3ZhciBvPW5ldyByS3QuTWFwO3RoaXMuX3NlbGVjdGlvbi5lYWNoKGZ1bmN0aW9uKGEpe28uc2V0KGEuaSx0aGlzKX0pLHRoaXMuX2NhY2hlZFZpc3VhbFByaW1pdGl2ZXNOb2RlTWFwPW8sdGhpcy5fY2FjaGVkVmlzdWFsUHJpbWl0aXZlc05vZGVzPW51bGwsdGhpcy5fc2VsZWN0aW9uLmRhdGEodGhpcy5fc2VsZWN0aW9uLmRhdGEoKS5tYXAoZnVuY3Rpb24oYSl7dmFyIHM9YS5kO3JldHVybiBzfSkpLHRoaXMuX2NsYXNzTmFtZSE9bnVsbCYmdGhpcy5fc2VsZWN0aW9uLmNsYXNzZWQodGhpcy5fY2xhc3NOYW1lLCEwKSx0aGlzLl9hcHBseURlZmF1bHRBdHRyaWJ1dGVzKHRoaXMuX3NlbGVjdGlvbil9LGUucHJvdG90eXBlLl9kcmF3U3RlcD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLG49WyJmaWxsIiwic3Ryb2tlIl07bi5mb3JFYWNoKGZ1bmN0aW9uKGkpe3QuYXR0clRvQXBwbGllZFByb2plY3RvcltpXSE9bnVsbCYmci5fc2VsZWN0aW9uLmF0dHIoaSx0LmF0dHJUb0FwcGxpZWRQcm9qZWN0b3JbaV0pfSksdC5hbmltYXRvci5hbmltYXRlKHRoaXMuX3NlbGVjdGlvbix0LmF0dHJUb0FwcGxpZWRQcm9qZWN0b3IpLHRoaXMuX2NsYXNzTmFtZSE9bnVsbCYmdGhpcy5fc2VsZWN0aW9uLmNsYXNzZWQodGhpcy5fY2xhc3NOYW1lLCEwKX0sZX0oKTtyYXQuU1ZHRHJhd2VyPUNIZX0pO3ZhciBpYXQ9SChuYXQ9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG5hdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG5LdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt2YXIgdD10aGlzO3RoaXMuc2NhbGU9MCx0aGlzLnRyYW5zbGF0ZT0wLHRoaXMuY2FjaGVkRG9tYWluPVtudWxsLG51bGxdLHRoaXMubGFzdFNlZW5Eb21haW49W251bGwsbnVsbF0sdGhpcy51cGRhdGVEb21haW49ZnVuY3Rpb24ocil7dC5sYXN0U2VlbkRvbWFpbj1yLmdldFRyYW5zZm9ybWF0aW9uRG9tYWluKCk7dmFyIG49ci5zY2FsZVRyYW5zZm9ybWF0aW9uKHQuY2FjaGVkRG9tYWluWzFdKS1yLnNjYWxlVHJhbnNmb3JtYXRpb24odC5jYWNoZWREb21haW5bMF0pLGk9ci5zY2FsZVRyYW5zZm9ybWF0aW9uKHQubGFzdFNlZW5Eb21haW5bMV0pLXIuc2NhbGVUcmFuc2Zvcm1hdGlvbih0Lmxhc3RTZWVuRG9tYWluWzBdKTt0LnNjYWxlPW4vaXx8MSx0LnRyYW5zbGF0ZT1yLnNjYWxlVHJhbnNmb3JtYXRpb24odC5jYWNoZWREb21haW5bMF0pLXIuc2NhbGVUcmFuc2Zvcm1hdGlvbih0Lmxhc3RTZWVuRG9tYWluWzBdKSp0LnNjYWxlfHwwfX1yZXR1cm4gZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLnNjYWxlPTEsdGhpcy50cmFuc2xhdGU9MCx0aGlzLmNhY2hlZERvbWFpbj10aGlzLmxhc3RTZWVuRG9tYWlufSxlLnByb3RvdHlwZS5zZXREb21haW49ZnVuY3Rpb24odCl7dGhpcy5jYWNoZWREb21haW49dC5nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbigpfSxlfSgpLEFIZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxyKXt2YXIgbj10aGlzO3RoaXMucmVuZGVyQ2FsbGJhY2s9dCx0aGlzLmFwcGx5VHJhbnNmb3JtQ2FsbGJhY2s9cix0aGlzLmRvbWFpblRyYW5zZm9ybVg9bmV3IG5LdCx0aGlzLmRvbWFpblRyYW5zZm9ybVk9bmV3IG5LdCx0aGlzLnJlbmRlckRlZmVycmVkPWZ1bmN0aW9uKCl7bi5hcHBseVRyYW5zZm9ybSgpLGNsZWFyVGltZW91dChuLnRpbWVvdXRUb2tlbiksbi50aW1lb3V0VG9rZW49c2V0VGltZW91dChmdW5jdGlvbigpe24ucmVuZGVyQ2FsbGJhY2soKX0sZS5ERUZFUlJFRF9SRU5ERVJJTkdfREVMQVkpfX1yZXR1cm4gZS5wcm90b3R5cGUuc2V0RG9tYWlucz1mdW5jdGlvbih0LHIpe3QmJnRoaXMuZG9tYWluVHJhbnNmb3JtWC5zZXREb21haW4odCksciYmdGhpcy5kb21haW5UcmFuc2Zvcm1ZLnNldERvbWFpbihyKSx0aGlzLnJlbmRlckRlZmVycmVkKCl9LGUucHJvdG90eXBlLnVwZGF0ZURvbWFpbnM9ZnVuY3Rpb24odCxyKXt0JiZ0aGlzLmRvbWFpblRyYW5zZm9ybVgudXBkYXRlRG9tYWluKHQpLHImJnRoaXMuZG9tYWluVHJhbnNmb3JtWS51cGRhdGVEb21haW4ociksdGhpcy5yZW5kZXJEZWZlcnJlZCgpfSxlLnByb3RvdHlwZS5yZXNldFRyYW5zZm9ybXM9ZnVuY3Rpb24oKXt0aGlzLmRvbWFpblRyYW5zZm9ybVgucmVzZXQoKSx0aGlzLmRvbWFpblRyYW5zZm9ybVkucmVzZXQoKSx0aGlzLmFwcGx5VHJhbnNmb3JtKCl9LGUucHJvdG90eXBlLmFwcGx5VHJhbnNmb3JtPWZ1bmN0aW9uKCl7dGhpcy5hcHBseVRyYW5zZm9ybUNhbGxiYWNrKHRoaXMuZG9tYWluVHJhbnNmb3JtWC50cmFuc2xhdGUsdGhpcy5kb21haW5UcmFuc2Zvcm1ZLnRyYW5zbGF0ZSx0aGlzLmRvbWFpblRyYW5zZm9ybVguc2NhbGUsdGhpcy5kb21haW5UcmFuc2Zvcm1ZLnNjYWxlKX0sZS5ERUZFUlJFRF9SRU5ERVJJTkdfREVMQVk9MjAwLGV9KCk7bmF0LkRlZmVycmVkUmVuZGVyZXI9QUhlfSk7dmFyIG5zPUgoUUY9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFFGLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgUEhlPShkZSgpLFV0KHBlKSksU2Q9KEVyKCksVXQoTXIpKSxkND1rZigpLE1kPUZlKCksaUt0PUdvdCgpLG9hdD1DUygpLElIZT1rYygpLExIZT1CdigpLGtIZT1VdSgpLFJIZT1PZigpLE5IZT1qZygpLERIZT1MZigpLE9IZT1pYXQoKTtRRi5SZW5kZXJlcj1ESGUubWFrZUVudW0oWyJzdmciLCJjYW52YXMiXSk7dmFyIHpIZT1mdW5jdGlvbihlKXtQSGUuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdCgpe3ZhciByPWUuY2FsbCh0aGlzKXx8dGhpcztyLl9kYXRhQ2hhbmdlZD0hMSxyLl9hdHRyRXh0ZW50cz17fSxyLl9hbmltYXRlPSExLHIuX2FuaW1hdG9ycz17fSxyLl9wcm9wZXJ0eUV4dGVudHM9e30sci5fcmVzZXRFbnRpdHlTdG9yZT1mdW5jdGlvbigpe3IuX2NhY2hlZEVudGl0eVN0b3JlPXZvaWQgMH0sci5fb3ZlcmZsb3dIaWRkZW49ITAsci5hZGRDbGFzcygicGxvdCIpLHIuX2RhdGFzZXRUb0RyYXdlcj1uZXcgTWQuTWFwLHIuX2F0dHJCaW5kaW5ncz1TZC5tYXAoKSxyLl9pbmNsdWRlZFZhbHVlc1Byb3ZpZGVyPWZ1bmN0aW9uKGksbyl7cmV0dXJuIHIuX2luY2x1ZGVkVmFsdWVzRm9yU2NhbGUoaSxvKX0sci5fcmVuZGVyQ2FsbGJhY2s9ZnVuY3Rpb24oKXtyZXR1cm4gci5yZW5kZXIoKX0sci5fb25EYXRhc2V0VXBkYXRlQ2FsbGJhY2s9ZnVuY3Rpb24oKXtyZXR1cm4gci5fb25EYXRhc2V0VXBkYXRlKCl9LHIuX3Byb3BlcnR5QmluZGluZ3M9U2QubWFwKCk7dmFyIG49bmV3IGQ0LkVhc2luZygpLm1heFRvdGFsRHVyYXRpb24odC5fQU5JTUFUSU9OX01BWF9EVVJBVElPTik7cmV0dXJuIHIuYW5pbWF0b3IoaUt0LkFuaW1hdG9yLk1BSU4sbiksci5hbmltYXRvcihpS3QuQW5pbWF0b3IuUkVTRVQsbmV3IGQ0Lk51bGwpLHIuX2RlZmVycmVkUmVzZXRFbnRpdHlTdG9yZT1NZC5XaW5kb3cuZGVib3VuY2UoT0hlLkRlZmVycmVkUmVuZGVyZXIuREVGRVJSRURfUkVOREVSSU5HX0RFTEFZLHIuX3Jlc2V0RW50aXR5U3RvcmUpLHJ9cmV0dXJuIHQuZ2V0VG90YWxEcmF3VGltZT1mdW5jdGlvbihyLG4pe3JldHVybiBuLnJlZHVjZShmdW5jdGlvbihpLG8pe3JldHVybiBpK28uYW5pbWF0b3IudG90YWxUaW1lKHIubGVuZ3RoKX0sMCl9LHQuYXBwbHlEcmF3U3RlcHM9ZnVuY3Rpb24ocixuKXt2YXIgaT1yLm1hcChmdW5jdGlvbihvKXt2YXIgYT1vLmF0dHJUb1Byb2plY3RvcixzPXt9O3JldHVybiBPYmplY3Qua2V5cyhhKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe3NbbF09ZnVuY3Rpb24oYyx1KXtyZXR1cm4gYVtsXShjLHUsbil9fSkse2F0dHJUb0FwcGxpZWRQcm9qZWN0b3I6cyxhbmltYXRvcjpvLmFuaW1hdG9yfX0pO3JldHVybiBpfSx0LnByb3RvdHlwZS5hbmNob3I9ZnVuY3Rpb24ocil7cmV0dXJuIHI9TkhlLmNvZXJjZUV4dGVybmFsRDMociksZS5wcm90b3R5cGUuYW5jaG9yLmNhbGwodGhpcyxyKSx0aGlzLl9kYXRhQ2hhbmdlZD0hMCx0aGlzLl9yZXNldEVudGl0eVN0b3JlKCksdGhpcy5fdXBkYXRlRXh0ZW50cygpLHRoaXN9LHQucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3ZhciByPXRoaXM7dGhpcy5faXNTZXR1cHx8KGUucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLHRoaXMuX2NhbnZhcyE9bnVsbCYmdGhpcy5fYXBwZW5kQ2FudmFzTm9kZSgpLHRoaXMuX3JlbmRlckFyZWE9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZCgicmVuZGVyLWFyZWEiLCEwKSx0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaChmdW5jdGlvbihuKXtyZXR1cm4gci5fY3JlYXRlTm9kZXNGb3JEYXRhc2V0KG4pfSkpfSx0LnByb3RvdHlwZS5fYXBwZW5kQ2FudmFzTm9kZT1mdW5jdGlvbigpe3ZhciByPXRoaXMuZWxlbWVudCgpLnNlbGVjdCgiLnBsb3QtY2FudmFzLWNvbnRhaW5lciIpO3IuZW1wdHkoKSYmKHI9dGhpcy5lbGVtZW50KCkuYXBwZW5kKCJkaXYiKS5jbGFzc2VkKCJwbG90LWNhbnZhcy1jb250YWluZXIiLCEwKSxyLm5vZGUoKS5hcHBlbmRDaGlsZCh0aGlzLl9jYW52YXMubm9kZSgpKSl9LHQucHJvdG90eXBlLnNldEJvdW5kcz1mdW5jdGlvbihyLG4saSxvKXtpZihlLnByb3RvdHlwZS5zZXRCb3VuZHMuY2FsbCh0aGlzLHIsbixpLG8pLHRoaXMuX3VwZGF0ZUV4dGVudHMoKSx0aGlzLl9jYW52YXMhPW51bGwpe2lmKHRoaXMuX2J1ZmZlckNhbnZhcyYmIXRoaXMuX2J1ZmZlckNhbnZhc1ZhbGlkKXt0aGlzLl9idWZmZXJDYW52YXMuYXR0cigid2lkdGgiLHRoaXMuX2NhbnZhcy5hdHRyKCJ3aWR0aCIpKSx0aGlzLl9idWZmZXJDYW52YXMuYXR0cigiaGVpZ2h0Iix0aGlzLl9jYW52YXMuYXR0cigiaGVpZ2h0IikpO3ZhciBhPXRoaXMuX2J1ZmZlckNhbnZhcy5ub2RlKCkuZ2V0Q29udGV4dCgiMmQiKTtpZihhKXt2YXIgcz10aGlzLl9jYW52YXMubm9kZSgpO3Mud2lkdGg+MCYmcy5oZWlnaHQ+MD9hLmNhbnZhcy53aWR0aD4wJiZhLmNhbnZhcy5oZWlnaHQ+MCYmYS5kcmF3SW1hZ2UocywwLDApOmNvbnNvbGUud2FybigiRmFpbGVkIHRvIGZpbGwgYnVmZmVyIGNhbnZhcyB3aXRoIHdpdGggMHgwIGNhbnZhcyIpfXRoaXMuX2J1ZmZlckNhbnZhc1ZhbGlkPSEwfXZhciBsPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIT1udWxsP3dpbmRvdy5kZXZpY2VQaXhlbFJhdGlvOjE7dGhpcy5fY2FudmFzLmF0dHIoIndpZHRoIixyKmwpLHRoaXMuX2NhbnZhcy5hdHRyKCJoZWlnaHQiLG4qbCk7dmFyIGM9dGhpcy5fY2FudmFzLm5vZGUoKS5nZXRDb250ZXh0KCIyZCIpO2lmKGMmJihjLnNldFRyYW5zZm9ybShsLDAsMCxsLDAsMCksdGhpcy5fYnVmZmVyQ2FudmFzKSl7dmFyIHU9dGhpcy5fYnVmZmVyQ2FudmFzLm5vZGUoKTt1LndpZHRoPjAmJnUuaGVpZ2h0PjA/Yy5jYW52YXMud2lkdGg+MCYmYy5jYW52YXMuaGVpZ2h0PjAmJmMuZHJhd0ltYWdlKHUsMCwwLHIsbik6Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gZmlsbCBjYW52YXMgd2l0aCAweDAgYnVmZmVyIGNhbnZhcyIpfX1yZXR1cm4gdGhpc30sdC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3ZhciByPXRoaXM7ZS5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpLHRoaXMuX3NjYWxlcygpLmZvckVhY2goZnVuY3Rpb24obil7cmV0dXJuIG4ub2ZmVXBkYXRlKHIuX3JlbmRlckNhbGxiYWNrKX0pLHRoaXMuZGF0YXNldHMoW10pfSx0LnByb3RvdHlwZS5fY3JlYXRlTm9kZXNGb3JEYXRhc2V0PWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXMuX2RhdGFzZXRUb0RyYXdlci5nZXQocik7cmV0dXJuIHRoaXMucmVuZGVyZXIoKT09PSJzdmciP24udXNlU1ZHKHRoaXMuX3JlbmRlckFyZWEpOm4udXNlQ2FudmFzKHRoaXMuX2NhbnZhcyksbn0sdC5wcm90b3R5cGUuX2NyZWF0ZURyYXdlcj1mdW5jdGlvbihyKXtyZXR1cm4gbmV3IGtIZS5Qcm94eURyYXdlcihmdW5jdGlvbigpe3JldHVybiBuZXcgUkhlLlNWR0RyYXdlcigicGF0aCIsIiIpfSxmdW5jdGlvbihuKXtyZXR1cm4gbmV3IExIZS5DYW52YXNEcmF3ZXIobixmdW5jdGlvbigpe30pfSl9LHQucHJvdG90eXBlLl9nZXRBbmltYXRvcj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fYW5pbWF0ZU9uTmV4dFJlbmRlcigpP3RoaXMuX2FuaW1hdG9yc1tyXXx8bmV3IGQ0Lk51bGw6bmV3IGQ0Lk51bGx9LHQucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVFeHRlbnRzKCksdGhpcy5fZGF0YUNoYW5nZWQ9ITAsdGhpcy5fcmVzZXRFbnRpdHlTdG9yZSgpLHRoaXMucmVuZGVyTG93UHJpb3JpdHkoKX0sdC5wcm90b3R5cGUuYXR0cj1mdW5jdGlvbihyLG4saSl7cmV0dXJuIG49PW51bGw/dGhpcy5fYXR0ckJpbmRpbmdzLmdldChyKToodGhpcy5fYmluZEF0dHIocixuLGkpLHRoaXMucmVuZGVyKCksdGhpcyl9LHQucHJvdG90eXBlLl9iaW5kUHJvcGVydHk9ZnVuY3Rpb24ocixuLGksbyl7dmFyIGE9dGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQocikscz1hIT1udWxsP2Euc2NhbGU6bnVsbCxsPXR5cGVvZiBuPT0iZnVuY3Rpb24iP246ZnVuY3Rpb24oKXtyZXR1cm4gbn07dGhpcy5fcHJvcGVydHlCaW5kaW5ncy5zZXQocix7YWNjZXNzb3I6bCxzY2FsZTppLHBvc3RTY2FsZTpvfSkscyE9bnVsbCYmdGhpcy5fdW5pbnN0YWxsU2NhbGVGb3JLZXkocyxyKSxpIT1udWxsJiZ0aGlzLl9pbnN0YWxsU2NhbGVGb3JLZXkoaSxyKSx0aGlzLl9jbGVhckF0dHJUb1Byb2plY3RvckNhY2hlKCl9LHQucHJvdG90eXBlLl9iaW5kQXR0cj1mdW5jdGlvbihyLG4saSl7dmFyIG89dGhpcy5fYXR0ckJpbmRpbmdzLmdldChyKSxhPW8hPW51bGw/by5zY2FsZTpudWxsLHM9dHlwZW9mIG49PSJmdW5jdGlvbiI/bjpmdW5jdGlvbigpe3JldHVybiBufTt0aGlzLl9hdHRyQmluZGluZ3Muc2V0KHIse2FjY2Vzc29yOnMsc2NhbGU6aX0pLGEhPW51bGwmJnRoaXMuX3VuaW5zdGFsbFNjYWxlRm9yS2V5KGEsciksaSE9bnVsbCYmdGhpcy5faW5zdGFsbFNjYWxlRm9yS2V5KGksciksdGhpcy5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZSgpfSx0LnByb3RvdHlwZS5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZT1mdW5jdGlvbigpe2RlbGV0ZSB0aGlzLl9jYWNoZWRBdHRyVG9Qcm9qZWN0b3J9LHQucHJvdG90eXBlLl9nZXRBdHRyVG9Qcm9qZWN0b3I9ZnVuY3Rpb24oKXtpZih0aGlzLl9jYWNoZWRBdHRyVG9Qcm9qZWN0b3I9PW51bGwpe3ZhciByPXRoaXMuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yKCk7dC5PUFRJTUlaRV9NRU1PSVpFX1BST0pFQ1RPUlMmJihyPW9hdC5tZW1vaXplUHJvamVjdG9ycyhyKSksdGhpcy5fY2FjaGVkQXR0clRvUHJvamVjdG9yPXJ9cmV0dXJuIE1kLmFzc2lnbih7fSx0aGlzLl9jYWNoZWRBdHRyVG9Qcm9qZWN0b3IpfSx0LnByb3RvdHlwZS5fZ2VuZXJhdGVBdHRyVG9Qcm9qZWN0b3I9ZnVuY3Rpb24oKXt2YXIgcj17fTt0aGlzLl9hdHRyQmluZGluZ3MuZWFjaChmdW5jdGlvbihpLG8pe3Jbb109dC5fc2NhbGVkQWNjZXNzb3IoaSl9KTt2YXIgbj10aGlzLl9wcm9wZXJ0eVByb2plY3RvcnMoKTtyZXR1cm4gT2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbihpKXtyW2ldPT1udWxsJiYocltpXT1uW2ldKX0pLHJ9LHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7cmV0dXJuIGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5LmNhbGwodGhpcyksdGhpcy5faXNBbmNob3JlZCYmKHRoaXMuX3BhaW50KCksdGhpcy5fZGF0YUNoYW5nZWQ9ITEpLHRoaXN9LHQucHJvdG90eXBlLnJlbmRlckxvd1ByaW9yaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbmRlckNhbGxiYWNrKCksdGhpc30sdC5wcm90b3R5cGUuYW5pbWF0ZWQ9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5fYW5pbWF0ZToodGhpcy5fYW5pbWF0ZT1yLHRoaXMpfSx0LnByb3RvdHlwZS5kZXRhY2g9ZnVuY3Rpb24oKXtyZXR1cm4gZS5wcm90b3R5cGUuZGV0YWNoLmNhbGwodGhpcyksdGhpcy5fdXBkYXRlRXh0ZW50cygpLHRoaXN9LHQucHJvdG90eXBlLl9zY2FsZXM9ZnVuY3Rpb24oKXt2YXIgcj1bXTtyZXR1cm4gdGhpcy5fYXR0ckJpbmRpbmdzLmVhY2goZnVuY3Rpb24obixpKXt2YXIgbz1uLnNjYWxlO28hPW51bGwmJnIuaW5kZXhPZihvKT09PS0xJiZyLnB1c2gobyl9KSx0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmVhY2goZnVuY3Rpb24obixpKXt2YXIgbz1uLnNjYWxlO28hPW51bGwmJnIuaW5kZXhPZihvKT09PS0xJiZyLnB1c2gobyl9KSxyfSx0LnByb3RvdHlwZS5fdXBkYXRlRXh0ZW50cz1mdW5jdGlvbigpe3ZhciByPXRoaXM7dGhpcy5fcmVzZXRFbnRpdHlTdG9yZSgpLHRoaXMuX3NjYWxlcygpLmZvckVhY2goZnVuY3Rpb24obil7cmV0dXJuIG4uYWRkSW5jbHVkZWRWYWx1ZXNQcm92aWRlcihyLl9pbmNsdWRlZFZhbHVlc1Byb3ZpZGVyKX0pfSx0LnByb3RvdHlwZS5fZmlsdGVyRm9yUHJvcGVydHk9ZnVuY3Rpb24ocil7cmV0dXJuIG51bGx9LHQucHJvdG90eXBlLmdldEV4dGVudHNGb3JBdHRyPWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXM7aWYodGhpcy5fYXR0ckV4dGVudHNbcl09PW51bGwpe3ZhciBpPW9hdC5tZW1UaHVuayhmdW5jdGlvbigpe3JldHVybiBuLmRhdGFzZXRzKCl9LGZ1bmN0aW9uKCl7cmV0dXJuIG4uX2F0dHJCaW5kaW5ncy5nZXQocil9LGZ1bmN0aW9uKG8sYSl7cmV0dXJuIGE9PW51bGx8fGEuYWNjZXNzb3I9PW51bGw/bnVsbDpvLm1hcChmdW5jdGlvbihzKXtyZXR1cm4gb0t0KHMsYSxudWxsKX0pfSk7dGhpcy5fYXR0ckV4dGVudHNbcl09aX1yZXR1cm4gdGhpcy5fYXR0ckV4dGVudHNbcl0oKX0sdC5wcm90b3R5cGUuZ2V0RXh0ZW50c0ZvclByb3BlcnR5PWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXM7aWYodGhpcy5fcHJvcGVydHlFeHRlbnRzW3JdPT1udWxsKXt2YXIgaT1vYXQubWVtVGh1bmsoZnVuY3Rpb24oKXtyZXR1cm4gbi5kYXRhc2V0cygpfSxmdW5jdGlvbigpe3JldHVybiBuLl9wcm9wZXJ0eUJpbmRpbmdzLmdldChyKX0sZnVuY3Rpb24oKXtyZXR1cm4gbi5fZmlsdGVyRm9yUHJvcGVydHkocil9LGZ1bmN0aW9uKG8sYSxzKXtyZXR1cm4gYT09bnVsbHx8YS5hY2Nlc3Nvcj09bnVsbD9udWxsOm8ubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBvS3QobCxhLHMpfSl9KTt0aGlzLl9wcm9wZXJ0eUV4dGVudHNbcl09aX1yZXR1cm4gdGhpcy5fcHJvcGVydHlFeHRlbnRzW3JdKCl9LHQucHJvdG90eXBlLl9pbmNsdWRlZFZhbHVlc0ZvclNjYWxlPWZ1bmN0aW9uKHIsbil7dmFyIGk9dGhpcztpZighdGhpcy5faXNBbmNob3JlZCYmIW4pcmV0dXJuW107dmFyIG89W107cmV0dXJuIHRoaXMuX2F0dHJCaW5kaW5ncy5lYWNoKGZ1bmN0aW9uKGEscyl7aWYoYS5zY2FsZT09PXIpe3ZhciBsPWkuZ2V0RXh0ZW50c0ZvckF0dHIocyk7bCE9bnVsbCYmKG89by5jb25jYXQoU2QubWVyZ2UobCkpKX19KSx0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmVhY2goZnVuY3Rpb24oYSxzKXtpZihhLnNjYWxlPT09cil7dmFyIGw9aS5nZXRFeHRlbnRzRm9yUHJvcGVydHkocyk7bCE9bnVsbCYmKG89by5jb25jYXQoU2QubWVyZ2UobCkpKX19KSxvfSx0LnByb3RvdHlwZS5hbmltYXRvcj1mdW5jdGlvbihyLG4pe3JldHVybiBuPT09dm9pZCAwP3RoaXMuX2FuaW1hdG9yc1tyXToodGhpcy5fYW5pbWF0b3JzW3JdPW4sdGhpcyl9LHQucHJvdG90eXBlLnJlbmRlcmVyPWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXM7cmV0dXJuIHI9PT12b2lkIDA/dGhpcy5fY2FudmFzPT1udWxsPyJzdmciOiJjYW52YXMiOih0aGlzLl9jYW52YXM9PW51bGwmJnI9PT0iY2FudmFzIj8odGhpcy5fY2FudmFzPVNkLnNlbGVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSkuY2xhc3NlZCgicGxvdC1jYW52YXMiLCEwKSx0aGlzLl9idWZmZXJDYW52YXM9U2Quc2VsZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpKSx0aGlzLmVsZW1lbnQoKSE9bnVsbCYmdGhpcy5fYXBwZW5kQ2FudmFzTm9kZSgpLHRoaXMuX2RhdGFzZXRUb0RyYXdlci5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kudXNlQ2FudmFzKG4uX2NhbnZhcyl9KSx0aGlzLnJlbmRlcigpKTp0aGlzLl9jYW52YXMhPW51bGwmJnI9PSJzdmciJiYodGhpcy5fY2FudmFzLnJlbW92ZSgpLHRoaXMuX2NhbnZhcz1udWxsLHRoaXMuX2J1ZmZlckNhbnZhcz1udWxsLHRoaXMuX2RhdGFzZXRUb0RyYXdlci5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kudXNlU1ZHKG4uX3JlbmRlckFyZWEpfSksdGhpcy5yZW5kZXIoKSksdGhpcyl9LHQucHJvdG90eXBlLmFkZERhdGFzZXQ9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX2FkZERhdGFzZXQociksdGhpcy5fb25EYXRhc2V0VXBkYXRlKCksdGhpc30sdC5wcm90b3R5cGUuX2FkZERhdGFzZXQ9ZnVuY3Rpb24ocil7dGhpcy5fcmVtb3ZlRGF0YXNldChyKTt2YXIgbj10aGlzLl9jcmVhdGVEcmF3ZXIocik7cmV0dXJuIHRoaXMuX2RhdGFzZXRUb0RyYXdlci5zZXQocixuKSx0aGlzLl9pc1NldHVwJiZ0aGlzLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQociksci5vblVwZGF0ZSh0aGlzLl9vbkRhdGFzZXRVcGRhdGVDYWxsYmFjayksdGhpc30sdC5wcm90b3R5cGUucmVtb3ZlRGF0YXNldD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fcmVtb3ZlRGF0YXNldChyKSx0aGlzLl9vbkRhdGFzZXRVcGRhdGUoKSx0aGlzfSx0LnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5kYXRhc2V0cygpLmluZGV4T2Yocik9PT0tMT90aGlzOih0aGlzLl9yZW1vdmVEYXRhc2V0Tm9kZXMociksci5vZmZVcGRhdGUodGhpcy5fb25EYXRhc2V0VXBkYXRlQ2FsbGJhY2spLHRoaXMuX2RhdGFzZXRUb0RyYXdlci5kZWxldGUociksdGhpcyl9LHQucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0Tm9kZXM9ZnVuY3Rpb24ocil7dmFyIG49dGhpcy5fZGF0YXNldFRvRHJhd2VyLmdldChyKTtuLnJlbW92ZSgpfSx0LnByb3RvdHlwZS5kYXRhc2V0cz1mdW5jdGlvbihyKXt2YXIgbj10aGlzLGk9W107cmV0dXJuIHRoaXMuX2RhdGFzZXRUb0RyYXdlci5mb3JFYWNoKGZ1bmN0aW9uKG8sYSl7cmV0dXJuIGkucHVzaChhKX0pLHI9PW51bGw/aTooaS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3JldHVybiBuLl9yZW1vdmVEYXRhc2V0KG8pfSksci5mb3JFYWNoKGZ1bmN0aW9uKG8pe3JldHVybiBuLl9hZGREYXRhc2V0KG8pfSksdGhpcy5fb25EYXRhc2V0VXBkYXRlKCksdGhpcyl9LHQucHJvdG90eXBlLl9nZW5lcmF0ZURyYXdTdGVwcz1mdW5jdGlvbigpe3JldHVyblt7YXR0clRvUHJvamVjdG9yOnRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLGFuaW1hdG9yOm5ldyBkNC5OdWxsfV19LHQucHJvdG90eXBlLl9hZGRpdGlvbmFsUGFpbnQ9ZnVuY3Rpb24ocil7fSx0LnByb3RvdHlwZS5fYnVpbGRMaWdodHdlaWdodFBsb3RFbnRpdGllcz1mdW5jdGlvbihyKXt2YXIgbj10aGlzLGk9W107cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihvLGEpe2Zvcih2YXIgcz1uLl9kYXRhc2V0VG9EcmF3ZXIuZ2V0KG8pLGw9MCxjPW8uZGF0YSgpLHU9Yy5sZW5ndGgsaD1mdW5jdGlvbihwKXt2YXIgZD1jW3BdLGc9bi5fcGl4ZWxQb2ludChkLHAsbyk7aWYoTWQuTWF0aC5pc05hTihnLngpfHxNZC5NYXRoLmlzTmFOKGcueSkpcmV0dXJuImNvbnRpbnVlIjt2YXIgXz1uO2kucHVzaCh7ZGF0dW06ZCxnZXQgcG9zaXRpb24oKXtyZXR1cm4gXy5fcGl4ZWxQb2ludC5jYWxsKF8sZCxwLG8pfSxpbmRleDpwLGRhdGFzZXQ6byxkYXRhc2V0SW5kZXg6YSxjb21wb25lbnQ6bixkcmF3ZXI6cyx2YWxpZERhdHVtSW5kZXg6bH0pLGwrK30sZj0wO2Y8dTtmKyspaChmKX0pLGl9LHQucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3PWZ1bmN0aW9uKCl7dmFyIHI9bmV3IE1kLk1hcDtyZXR1cm4gdGhpcy5kYXRhc2V0cygpLmZvckVhY2goZnVuY3Rpb24obil7cmV0dXJuIHIuc2V0KG4sbi5kYXRhKCkpfSkscn0sdC5wcm90b3R5cGUuX3BhaW50PWZ1bmN0aW9uKCl7dmFyIHI9dGhpcztkZWxldGUgdGhpcy5fY2FjaGVkQXR0clRvUHJvamVjdG9yO3ZhciBuPXRoaXMuX2dlbmVyYXRlRHJhd1N0ZXBzKCksaT10aGlzLl9nZXREYXRhVG9EcmF3KCksbz10aGlzLmRhdGFzZXRzKCkubWFwKGZ1bmN0aW9uKHUpe3JldHVybiByLl9kYXRhc2V0VG9EcmF3ZXIuZ2V0KHUpfSk7aWYodGhpcy5yZW5kZXJlcigpPT09ImNhbnZhcyIpe3ZhciBhPXRoaXMuX2NhbnZhcy5ub2RlKCkscz1hLmdldENvbnRleHQoIjJkIik7cy5jbGVhclJlY3QoMCwwLGEuY2xpZW50V2lkdGgsYS5jbGllbnRIZWlnaHQpLHRoaXMuX2J1ZmZlckNhbnZhc1ZhbGlkPSExfXRoaXMuZGF0YXNldHMoKS5mb3JFYWNoKGZ1bmN0aW9uKHUsaCl7dmFyIGY9dC5hcHBseURyYXdTdGVwcyhuLHUpO29baF0uZHJhdyhpLmdldCh1KSxmKX0pO3ZhciBsPXRoaXMuZGF0YXNldHMoKS5tYXAoZnVuY3Rpb24odSxoKXtyZXR1cm4gdC5nZXRUb3RhbERyYXdUaW1lKGkuZ2V0KHUpLG4pfSksYz1NZC5NYXRoLm1heChsLDApO3RoaXMuX2FkZGl0aW9uYWxQYWludChjKX0sdC5wcm90b3R5cGUuc2VsZWN0aW9ucz1mdW5jdGlvbihyKXt2YXIgbj10aGlzO2lmKHI9PT12b2lkIDAmJihyPXRoaXMuZGF0YXNldHMoKSksdGhpcy5yZW5kZXJlcigpPT09ImNhbnZhcyIpcmV0dXJuIFNkLnNlbGVjdEFsbCgpO3ZhciBpPVtdO3JldHVybiByLmZvckVhY2goZnVuY3Rpb24obyl7dmFyIGE9bi5fZGF0YXNldFRvRHJhd2VyLmdldChvKTtpZihhIT1udWxsKXt2YXIgcz1hLmdldFZpc3VhbFByaW1pdGl2ZXMoKTtpLnB1c2guYXBwbHkoaSxzKX19KSxTZC5zZWxlY3RBbGwoaSl9LHQucHJvdG90eXBlLmVudGl0aWVzPWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXM7cmV0dXJuIHRoaXMuX2dldEVudGl0eVN0b3JlKHIpLmVudGl0aWVzKCkubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBuLl9saWdodHdlaWdodFBsb3RFbnRpdHlUb1Bsb3RFbnRpdHkoaSl9KX0sdC5wcm90b3R5cGUuZmlsdGVyRW50aXRpZXM9ZnVuY3Rpb24ocil7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5fZ2V0RW50aXR5U3RvcmUoKS5lbnRpdGllcygpLmZpbHRlcihyKS5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIG4uX2xpZ2h0d2VpZ2h0UGxvdEVudGl0eVRvUGxvdEVudGl0eShpKX0pfSx0LnByb3RvdHlwZS5fZ2V0RW50aXR5U3RvcmU9ZnVuY3Rpb24ocil7dmFyIG49dGhpcyxpPWZ1bmN0aW9uKGEpe3JldHVybiBuLl9lbnRpdHlCb3VuZHMoYSl9O2lmKHIhPT12b2lkIDApe3ZhciBvPW5ldyBNZC5FbnRpdHlTdG9yZTtyZXR1cm4gby5hZGRBbGwodGhpcy5fYnVpbGRMaWdodHdlaWdodFBsb3RFbnRpdGllcyhyKSxpLHRoaXMuX2xvY2FsT3JpZ2luQm91bmRzKCkpLG99ZWxzZSBpZih0aGlzLl9jYWNoZWRFbnRpdHlTdG9yZT09PXZvaWQgMCl7dmFyIG89bmV3IE1kLkVudGl0eVN0b3JlO28uYWRkQWxsKHRoaXMuX2J1aWxkTGlnaHR3ZWlnaHRQbG90RW50aXRpZXModGhpcy5kYXRhc2V0cygpKSxpLHRoaXMuX2xvY2FsT3JpZ2luQm91bmRzKCkpLHRoaXMuX2NhY2hlZEVudGl0eVN0b3JlPW99cmV0dXJuIHRoaXMuX2NhY2hlZEVudGl0eVN0b3JlfSx0LnByb3RvdHlwZS5fbG9jYWxPcmlnaW5Cb3VuZHM9ZnVuY3Rpb24oKXtyZXR1cm57dG9wTGVmdDp7eDowLHk6MH0sYm90dG9tUmlnaHQ6e3g6dGhpcy53aWR0aCgpLHk6dGhpcy5oZWlnaHQoKX19fSx0LnByb3RvdHlwZS5fZW50aXR5Qm91bmRzPWZ1bmN0aW9uKHIpe3ZhciBuPXIuZGF0dW0saT1yLmluZGV4LG89ci5kYXRhc2V0LGE9dGhpcy5fcGl4ZWxQb2ludChuLGksbykscz1hLngsbD1hLnk7cmV0dXJue3g6cyx5Omwsd2lkdGg6MCxoZWlnaHQ6MH19LHQucHJvdG90eXBlLl9saWdodHdlaWdodFBsb3RFbnRpdHlUb1Bsb3RFbnRpdHk9ZnVuY3Rpb24ocil7dmFyIG49e2JvdW5kczp0aGlzLl9lbnRpdHlCb3VuZHMociksY29tcG9uZW50OnIuY29tcG9uZW50LGRhdGFzZXQ6ci5kYXRhc2V0LGRhdGFzZXRJbmRleDpyLmRhdGFzZXRJbmRleCxkYXR1bTpyLmRhdHVtLGluZGV4OnIuaW5kZXgscG9zaXRpb246ci5wb3NpdGlvbixzZWxlY3Rpb246U2Quc2VsZWN0KHIuZHJhd2VyLmdldFZpc3VhbFByaW1pdGl2ZUF0SW5kZXgoci52YWxpZERhdHVtSW5kZXgpKX07cmV0dXJuIG59LHQucHJvdG90eXBlLmVudGl0aWVzQXQ9ZnVuY3Rpb24ocil7dGhyb3cgbmV3IEVycm9yKCJwbG90cyBtdXN0IGltcGxlbWVudCBlbnRpdGllc0F0Iil9LHQucHJvdG90eXBlLmVudGl0eU5lYXJlc3Q9ZnVuY3Rpb24ocil7dmFyIG49dGhpcy5fZ2V0RW50aXR5U3RvcmUoKS5lbnRpdHlOZWFyZXN0KHIpO3JldHVybiBuPT09dm9pZCAwP3ZvaWQgMDp0aGlzLl9saWdodHdlaWdodFBsb3RFbnRpdHlUb1Bsb3RFbnRpdHkobil9LHQucHJvdG90eXBlLmVudGl0aWVzSW49ZnVuY3Rpb24ocixuKXt2YXIgaTtpZihuPT1udWxsKXt2YXIgbz1yO2k9e3g6by50b3BMZWZ0LngseTpvLnRvcExlZnQueSx3aWR0aDpvLmJvdHRvbVJpZ2h0Lngtby50b3BMZWZ0LngsaGVpZ2h0Om8uYm90dG9tUmlnaHQueS1vLnRvcExlZnQueX19ZWxzZXt2YXIgYT1yO2k9e3g6YS5taW4seTpuLm1pbix3aWR0aDphLm1heC1hLm1pbixoZWlnaHQ6bi5tYXgtbi5taW59fXJldHVybiB0aGlzLmVudGl0aWVzSW5Cb3VuZHMoaSl9LHQucHJvdG90eXBlLmVudGl0aWVzSW5Cb3VuZHM9ZnVuY3Rpb24ocil7dmFyIG49dGhpcyxpPXRoaXMuX2dldEVudGl0eVN0b3JlKCkuZW50aXRpZXNJbkJvdW5kcyhyKTtpZighIWkpcmV0dXJuIGkubWFwKGZ1bmN0aW9uKG8pe3JldHVybiBuLl9saWdodHdlaWdodFBsb3RFbnRpdHlUb1Bsb3RFbnRpdHkobyl9KX0sdC5wcm90b3R5cGUuZW50aXRpZXNJblhCb3VuZHM9ZnVuY3Rpb24ocil7dmFyIG49dGhpcyxpPXRoaXMuX2dldEVudGl0eVN0b3JlKCkuZW50aXRpZXNJblhCb3VuZHMocik7aWYoISFpKXJldHVybiBpLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gbi5fbGlnaHR3ZWlnaHRQbG90RW50aXR5VG9QbG90RW50aXR5KG8pfSl9LHQucHJvdG90eXBlLmVudGl0aWVzSW5ZQm91bmRzPWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXMsaT10aGlzLl9nZXRFbnRpdHlTdG9yZSgpLmVudGl0aWVzSW5ZQm91bmRzKHIpO2lmKCEhaSlyZXR1cm4gaS5tYXAoZnVuY3Rpb24obyl7cmV0dXJuIG4uX2xpZ2h0d2VpZ2h0UGxvdEVudGl0eVRvUGxvdEVudGl0eShvKX0pfSx0LnByb3RvdHlwZS5fdW5pbnN0YWxsU2NhbGVGb3JLZXk9ZnVuY3Rpb24ocixuKXtyLm9mZlVwZGF0ZSh0aGlzLl9yZW5kZXJDYWxsYmFjayksci5vZmZVcGRhdGUodGhpcy5fZGVmZXJyZWRSZXNldEVudGl0eVN0b3JlKSxyLnJlbW92ZUluY2x1ZGVkVmFsdWVzUHJvdmlkZXIodGhpcy5faW5jbHVkZWRWYWx1ZXNQcm92aWRlcil9LHQucHJvdG90eXBlLl9pbnN0YWxsU2NhbGVGb3JLZXk9ZnVuY3Rpb24ocixuKXtyLm9uVXBkYXRlKHRoaXMuX3JlbmRlckNhbGxiYWNrKSxyLm9uVXBkYXRlKHRoaXMuX2RlZmVycmVkUmVzZXRFbnRpdHlTdG9yZSksci5hZGRJbmNsdWRlZFZhbHVlc1Byb3ZpZGVyKHRoaXMuX2luY2x1ZGVkVmFsdWVzUHJvdmlkZXIpfSx0LnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzPWZ1bmN0aW9uKCl7cmV0dXJue319LHQuX3NjYWxlZEFjY2Vzc29yPWZ1bmN0aW9uKHIpe3ZhciBuPXIuc2NhbGUsaT1yLmFjY2Vzc29yLG89ci5wb3N0U2NhbGUsYT1uPT1udWxsP2k6ZnVuY3Rpb24obCxjLHUpe3JldHVybiBuLnNjYWxlKGkobCxjLHUpKX0scz1vPT1udWxsP2E6ZnVuY3Rpb24obCxjLHUpe3JldHVybiBvKGEobCxjLHUpLGwsYyx1KX07cmV0dXJuIHN9LHQucHJvdG90eXBlLl9waXhlbFBvaW50PWZ1bmN0aW9uKHIsbixpKXtyZXR1cm57eDowLHk6MH19LHQucHJvdG90eXBlLl9hbmltYXRlT25OZXh0UmVuZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FuaW1hdGUmJnRoaXMuX2RhdGFDaGFuZ2VkfSx0Lk9QVElNSVpFX01FTU9JWkVfUFJPSkVDVE9SUz0hMSx0Ll9BTklNQVRJT05fTUFYX0RVUkFUSU9OPTYwMCx0fShJSGUuQ29tcG9uZW50KTtRRi5QbG90PXpIZTtmdW5jdGlvbiBvS3QoZSx0LHIpe3ZhciBuPXQuYWNjZXNzb3IsaT10LnNjYWxlO2lmKGk9PW51bGwpcmV0dXJuW107dmFyIG89ZS5kYXRhKCk7ciE9bnVsbCYmKG89by5maWx0ZXIoZnVuY3Rpb24obCxjKXtyZXR1cm4gcihsLGMsZSl9KSk7dmFyIGE9ZnVuY3Rpb24obCxjKXtyZXR1cm4gbihsLGMsZSl9LHM9by5tYXAoYSk7cmV0dXJuIGkuZXh0ZW50T2ZWYWx1ZXMocyl9fSk7dmFyIGFLdD1IKGFhdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoYWF0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgRkhlPShkZSgpLFV0KHBlKSksQkhlPW5zKCksSEhlPUZlKCksVkhlPXpvdCgpLFVIZT1mdW5jdGlvbihlKXtGSGUuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdCgpe3JldHVybiBlIT09bnVsbCYmZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHQucHJvdG90eXBlLmVudGl0eU5lYXJlc3Q9ZnVuY3Rpb24ocil7dmFyIG4saT0xLzA7cmV0dXJuIHRoaXMuY29tcG9uZW50cygpLmZvckVhY2goZnVuY3Rpb24obyl7dmFyIGE9byxzPWEuZW50aXR5TmVhcmVzdChyKTtpZihzIT1udWxsKXt2YXIgbD1ISGUuTWF0aC5kaXN0YW5jZVNxdWFyZWQocy5wb3NpdGlvbixyKTtsPD1pJiYoaT1sLG49cyl9fSksbn0sdC5wcm90b3R5cGUuYXBwZW5kPWZ1bmN0aW9uKHIpe2lmKHIhPW51bGwmJiEociBpbnN0YW5jZW9mIEJIZS5QbG90KSl0aHJvdyBuZXcgRXJyb3IoIlBsb3QgR3JvdXAgb25seSBhY2NlcHRzIHBsb3RzIik7cmV0dXJuIGUucHJvdG90eXBlLmFwcGVuZC5jYWxsKHRoaXMsciksdGhpc30sdH0oVkhlLkdyb3VwKTthYXQuUGxvdEdyb3VwPVVIZX0pO3ZhciBzS3Q9SChzYXQ9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHNhdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHFIZT0oZGUoKSxVdChwZSkpLHF1PShFcigpLFV0KE1yKSksR289RmUoKSxHSGU9V0YoKSxXSGU9ZnVuY3Rpb24oZSl7cUhlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocil7cj09PXZvaWQgMCYmKHI9W10pO3ZhciBuPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5fcm93UGFkZGluZz0wLG4uX2NvbHVtblBhZGRpbmc9MCxuLl9yb3dzPVtdLG4uX3Jvd1dlaWdodHM9W10sbi5fY29sdW1uV2VpZ2h0cz1bXSxuLl9uUm93cz0wLG4uX25Db2xzPTAsbi5fY2FsY3VsYXRlZExheW91dD1udWxsLG4uYWRkQ2xhc3MoInRhYmxlIiksci5mb3JFYWNoKGZ1bmN0aW9uKGksbyl7aS5mb3JFYWNoKGZ1bmN0aW9uKGEscyl7YSE9bnVsbCYmbi5hZGQoYSxvLHMpfSl9KSxufXJldHVybiB0LnByb3RvdHlwZS5fZm9yRWFjaD1mdW5jdGlvbihyKXtmb3IodmFyIG49MDtuPHRoaXMuX25Sb3dzO24rKylmb3IodmFyIGk9MDtpPHRoaXMuX25Db2xzO2krKyl0aGlzLl9yb3dzW25dW2ldIT1udWxsJiZyKHRoaXMuX3Jvd3Nbbl1baV0pfSx0LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24ocil7Zm9yKHZhciBuPTA7bjx0aGlzLl9uUm93cztuKyspZm9yKHZhciBpPTA7aTx0aGlzLl9uQ29scztpKyspaWYodGhpcy5fcm93c1tuXVtpXT09PXIpcmV0dXJuITA7cmV0dXJuITF9LHQucHJvdG90eXBlLmNvbXBvbmVudEF0PWZ1bmN0aW9uKHIsbil7cmV0dXJuIHI8MHx8cj49dGhpcy5fblJvd3N8fG48MHx8bj49dGhpcy5fbkNvbHM/bnVsbDp0aGlzLl9yb3dzW3JdW25dfSx0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24ocixuLGkpe2lmKHI9PW51bGwpdGhyb3cgRXJyb3IoIkNhbm5vdCBhZGQgbnVsbCB0byBhIHRhYmxlIGNlbGwiKTtpZighdGhpcy5oYXMocikpe3ZhciBvPXRoaXMuX3Jvd3Nbbl0mJnRoaXMuX3Jvd3Nbbl1baV07aWYobyE9bnVsbCl0aHJvdyBuZXcgRXJyb3IoImNlbGwgaXMgb2NjdXBpZWQiKTtyLmRldGFjaCgpLHRoaXMuX25Sb3dzPU1hdGgubWF4KG4rMSx0aGlzLl9uUm93cyksdGhpcy5fbkNvbHM9TWF0aC5tYXgoaSsxLHRoaXMuX25Db2xzKSx0aGlzLl9wYWRUYWJsZVRvU2l6ZSh0aGlzLl9uUm93cyx0aGlzLl9uQ29scyksdGhpcy5fcm93c1tuXVtpXT1yLHRoaXMuX2Fkb3B0QW5kQW5jaG9yKHIpLHRoaXMucmVkcmF3KCl9cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLl9yZW1vdmU9ZnVuY3Rpb24ocil7Zm9yKHZhciBuPTA7bjx0aGlzLl9uUm93cztuKyspZm9yKHZhciBpPTA7aTx0aGlzLl9uQ29scztpKyspaWYodGhpcy5fcm93c1tuXVtpXT09PXIpcmV0dXJuIHRoaXMuX3Jvd3Nbbl1baV09bnVsbCwhMDtyZXR1cm4hMX0sdC5wcm90b3R5cGUuX2l0ZXJhdGVMYXlvdXQ9ZnVuY3Rpb24ocixuLGkpe2k9PT12b2lkIDAmJihpPSExKTtmb3IodmFyIG89dGhpcy5fcm93cyxhPXF1LnRyYW5zcG9zZSh0aGlzLl9yb3dzKSxzPXItdGhpcy5fY29sdW1uUGFkZGluZyoodGhpcy5fbkNvbHMtMSksbD1uLXRoaXMuX3Jvd1BhZGRpbmcqKHRoaXMuX25Sb3dzLTEpLGM9dC5fY2FsY0NvbXBvbmVudFdlaWdodHModGhpcy5fcm93V2VpZ2h0cyxvLGZ1bmN0aW9uKHope3JldHVybiB6PT1udWxsfHx6LmZpeGVkSGVpZ2h0KCl9KSx1PXQuX2NhbGNDb21wb25lbnRXZWlnaHRzKHRoaXMuX2NvbHVtbldlaWdodHMsYSxmdW5jdGlvbih6KXtyZXR1cm4gej09bnVsbHx8ei5maXhlZFdpZHRoKCl9KSxoPXUubWFwKGZ1bmN0aW9uKHope3JldHVybiB6PT09MD8uNTp6fSksZj1jLm1hcChmdW5jdGlvbih6KXtyZXR1cm4gej09PTA/LjU6en0pLHA9dC5fY2FsY1Byb3BvcnRpb25hbFNwYWNlKGgscyksZD10Ll9jYWxjUHJvcG9ydGlvbmFsU3BhY2UoZixsKSxnPUdvLkFycmF5LmNyZWF0ZUZpbGxlZEFycmF5KDAsdGhpcy5fbkNvbHMpLF89R28uQXJyYXkuY3JlYXRlRmlsbGVkQXJyYXkoMCx0aGlzLl9uUm93cykseSx4LGI9MCxTLEMsUDs7KXt2YXIgaz1Hby5BcnJheS5hZGQoXyxkKSxPPUdvLkFycmF5LmFkZChnLHApO1M9dGhpcy5fZGV0ZXJtaW5lR3VhcmFudGVlcyhPLGssaSksZz1TLmd1YXJhbnRlZWRXaWR0aHMsXz1TLmd1YXJhbnRlZWRIZWlnaHRzLEM9Uy53YW50c1dpZHRoQXJyLnNvbWUoZnVuY3Rpb24oeil7cmV0dXJuIHp9KSxQPVMud2FudHNIZWlnaHRBcnIuc29tZShmdW5jdGlvbih6KXtyZXR1cm4gen0pO3ZhciBEPXksQj14O3k9cy1xdS5zdW0oUy5ndWFyYW50ZWVkV2lkdGhzKSx4PWwtcXUuc3VtKFMuZ3VhcmFudGVlZEhlaWdodHMpO3ZhciBJPXZvaWQgMDtDPyhJPVMud2FudHNXaWR0aEFyci5tYXAoZnVuY3Rpb24oeil7cmV0dXJuIHo/LjE6MH0pLEk9R28uQXJyYXkuYWRkKEksdSkpOkk9dTt2YXIgTD12b2lkIDA7UD8oTD1TLndhbnRzSGVpZ2h0QXJyLm1hcChmdW5jdGlvbih6KXtyZXR1cm4gej8uMTowfSksTD1Hby5BcnJheS5hZGQoTCxjKSk6TD1jLHA9dC5fY2FsY1Byb3BvcnRpb25hbFNwYWNlKEkseSksZD10Ll9jYWxjUHJvcG9ydGlvbmFsU3BhY2UoTCx4KSxiKys7dmFyIFI9eT4wJiZ5IT09RCxGPXg+MCYmeCE9PUI7aWYoIShSfHxGKXx8Yj41KWJyZWFrfXJldHVybiB5PXMtcXUuc3VtKFMuZ3VhcmFudGVlZFdpZHRocykseD1sLXF1LnN1bShTLmd1YXJhbnRlZWRIZWlnaHRzKSxwPXQuX2NhbGNQcm9wb3J0aW9uYWxTcGFjZSh1LHkpLGQ9dC5fY2FsY1Byb3BvcnRpb25hbFNwYWNlKGMseCkse2NvbFByb3BvcnRpb25hbFNwYWNlOnAscm93UHJvcG9ydGlvbmFsU3BhY2U6ZCxndWFyYW50ZWVkV2lkdGhzOlMuZ3VhcmFudGVlZFdpZHRocyxndWFyYW50ZWVkSGVpZ2h0czpTLmd1YXJhbnRlZWRIZWlnaHRzLHdhbnRzV2lkdGg6Qyx3YW50c0hlaWdodDpQfX0sdC5wcm90b3R5cGUuX2RldGVybWluZUd1YXJhbnRlZXM9ZnVuY3Rpb24ocixuLGkpe2k9PT12b2lkIDAmJihpPSExKTt2YXIgbz1Hby5BcnJheS5jcmVhdGVGaWxsZWRBcnJheSgwLHRoaXMuX25Db2xzKSxhPUdvLkFycmF5LmNyZWF0ZUZpbGxlZEFycmF5KDAsdGhpcy5fblJvd3MpLHM9R28uQXJyYXkuY3JlYXRlRmlsbGVkQXJyYXkoITEsdGhpcy5fbkNvbHMpLGw9R28uQXJyYXkuY3JlYXRlRmlsbGVkQXJyYXkoITEsdGhpcy5fblJvd3MpO3JldHVybiB0aGlzLl9yb3dzLmZvckVhY2goZnVuY3Rpb24oYyx1KXtjLmZvckVhY2goZnVuY3Rpb24oaCxmKXt2YXIgcDtoIT1udWxsP3A9aC5yZXF1ZXN0ZWRTcGFjZShyW2ZdLG5bdV0pOnA9e21pbldpZHRoOjAsbWluSGVpZ2h0OjB9O3ZhciBkPWk/TWF0aC5taW4ocC5taW5XaWR0aCxyW2ZdKTpwLm1pbldpZHRoO29bZl09TWF0aC5tYXgob1tmXSxkKTt2YXIgZz1pP01hdGgubWluKHAubWluSGVpZ2h0LG5bdV0pOnAubWluSGVpZ2h0O2FbdV09TWF0aC5tYXgoYVt1XSxnKTt2YXIgXz1wLm1pbldpZHRoPnJbZl07c1tmXT1zW2ZdfHxfO3ZhciB5PXAubWluSGVpZ2h0Pm5bdV07bFt1XT1sW3VdfHx5fSl9KSx7Z3VhcmFudGVlZFdpZHRoczpvLGd1YXJhbnRlZWRIZWlnaHRzOmEsd2FudHNXaWR0aEFycjpzLHdhbnRzSGVpZ2h0QXJyOmx9fSx0LnByb3RvdHlwZS5yZXF1ZXN0ZWRTcGFjZT1mdW5jdGlvbihyLG4pe3JldHVybiB0aGlzLl9jYWxjdWxhdGVkTGF5b3V0PXRoaXMuX2l0ZXJhdGVMYXlvdXQocixuKSx7bWluV2lkdGg6cXUuc3VtKHRoaXMuX2NhbGN1bGF0ZWRMYXlvdXQuZ3VhcmFudGVlZFdpZHRocyksbWluSGVpZ2h0OnF1LnN1bSh0aGlzLl9jYWxjdWxhdGVkTGF5b3V0Lmd1YXJhbnRlZWRIZWlnaHRzKX19LHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQ9ZnVuY3Rpb24ocixuLGkpe3ZhciBvPXRoaXM7ZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dC5jYWxsKHRoaXMscixuLGkpO3ZhciBhPXF1LnN1bSh0aGlzLl9jYWxjdWxhdGVkTGF5b3V0Lmd1YXJhbnRlZWRXaWR0aHMpLHM9cXUuc3VtKHRoaXMuX2NhbGN1bGF0ZWRMYXlvdXQuZ3VhcmFudGVlZEhlaWdodHMpLGw9dGhpcy5fY2FsY3VsYXRlZExheW91dDsoYT50aGlzLndpZHRoKCl8fHM+dGhpcy5oZWlnaHQoKSkmJihsPXRoaXMuX2l0ZXJhdGVMYXlvdXQodGhpcy53aWR0aCgpLHRoaXMuaGVpZ2h0KCksITApKTt2YXIgYz0wLHU9R28uQXJyYXkuYWRkKGwucm93UHJvcG9ydGlvbmFsU3BhY2UsbC5ndWFyYW50ZWVkSGVpZ2h0cyksaD1Hby5BcnJheS5hZGQobC5jb2xQcm9wb3J0aW9uYWxTcGFjZSxsLmd1YXJhbnRlZWRXaWR0aHMpO3JldHVybiB0aGlzLl9yb3dzLmZvckVhY2goZnVuY3Rpb24oZixwKXt2YXIgZD0wO2YuZm9yRWFjaChmdW5jdGlvbihnLF8pe2chPW51bGwmJmcuY29tcHV0ZUxheW91dCh7eDpkLHk6Y30saFtfXSx1W3BdKSxkKz1oW19dK28uX2NvbHVtblBhZGRpbmd9KSxjKz11W3BdK28uX3Jvd1BhZGRpbmd9KSx0aGlzfSx0LnByb3RvdHlwZS5yb3dQYWRkaW5nPWZ1bmN0aW9uKHIpe2lmKHI9PW51bGwpcmV0dXJuIHRoaXMuX3Jvd1BhZGRpbmc7aWYoIUdvLk1hdGguaXNWYWxpZE51bWJlcihyKXx8cjwwKXRocm93IEVycm9yKCJyb3dQYWRkaW5nIG11c3QgYmUgYSBub24tbmVnYXRpdmUgZmluaXRlIHZhbHVlIik7cmV0dXJuIHRoaXMuX3Jvd1BhZGRpbmc9cix0aGlzLnJlZHJhdygpLHRoaXN9LHQucHJvdG90eXBlLmNvbHVtblBhZGRpbmc9ZnVuY3Rpb24ocil7aWYocj09bnVsbClyZXR1cm4gdGhpcy5fY29sdW1uUGFkZGluZztpZighR28uTWF0aC5pc1ZhbGlkTnVtYmVyKHIpfHxyPDApdGhyb3cgRXJyb3IoImNvbHVtblBhZGRpbmcgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBmaW5pdGUgdmFsdWUiKTtyZXR1cm4gdGhpcy5fY29sdW1uUGFkZGluZz1yLHRoaXMucmVkcmF3KCksdGhpc30sdC5wcm90b3R5cGUucm93V2VpZ2h0PWZ1bmN0aW9uKHIsbil7aWYobj09bnVsbClyZXR1cm4gdGhpcy5fcm93V2VpZ2h0c1tyXTtpZighR28uTWF0aC5pc1ZhbGlkTnVtYmVyKG4pfHxuPDApdGhyb3cgRXJyb3IoInJvd1dlaWdodCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGZpbml0ZSB2YWx1ZSIpO3JldHVybiB0aGlzLl9yb3dXZWlnaHRzW3JdPW4sdGhpcy5yZWRyYXcoKSx0aGlzfSx0LnByb3RvdHlwZS5jb2x1bW5XZWlnaHQ9ZnVuY3Rpb24ocixuKXtpZihuPT1udWxsKXJldHVybiB0aGlzLl9jb2x1bW5XZWlnaHRzW3JdO2lmKCFHby5NYXRoLmlzVmFsaWROdW1iZXIobil8fG48MCl0aHJvdyBFcnJvcigiY29sdW1uV2VpZ2h0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgZmluaXRlIHZhbHVlIik7cmV0dXJuIHRoaXMuX2NvbHVtbldlaWdodHNbcl09bix0aGlzLnJlZHJhdygpLHRoaXN9LHQucHJvdG90eXBlLmZpeGVkV2lkdGg9ZnVuY3Rpb24oKXt2YXIgcj1xdS50cmFuc3Bvc2UodGhpcy5fcm93cyk7cmV0dXJuIHQuX2ZpeGVkU3BhY2UocixmdW5jdGlvbihuKXtyZXR1cm4gbj09bnVsbHx8bi5maXhlZFdpZHRoKCl9KX0sdC5wcm90b3R5cGUuZml4ZWRIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdC5fZml4ZWRTcGFjZSh0aGlzLl9yb3dzLGZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsfHxyLmZpeGVkSGVpZ2h0KCl9KX0sdC5wcm90b3R5cGUuX3BhZFRhYmxlVG9TaXplPWZ1bmN0aW9uKHIsbil7Zm9yKHZhciBpPTA7aTxyO2krKyl7dGhpcy5fcm93c1tpXT09PXZvaWQgMCYmKHRoaXMuX3Jvd3NbaV09W10sdGhpcy5fcm93V2VpZ2h0c1tpXT1udWxsKTtmb3IodmFyIG89MDtvPG47bysrKXRoaXMuX3Jvd3NbaV1bb109PT12b2lkIDAmJih0aGlzLl9yb3dzW2ldW29dPW51bGwpfWZvcih2YXIgbz0wO288bjtvKyspdGhpcy5fY29sdW1uV2VpZ2h0c1tvXT09PXZvaWQgMCYmKHRoaXMuX2NvbHVtbldlaWdodHNbb109bnVsbCl9LHQuX2NhbGNDb21wb25lbnRXZWlnaHRzPWZ1bmN0aW9uKHIsbixpKXtyZXR1cm4gci5tYXAoZnVuY3Rpb24obyxhKXtpZihvIT1udWxsKXJldHVybiBvO3ZhciBzPW5bYV0ubWFwKGkpLGw9cy5yZWR1Y2UoZnVuY3Rpb24oYyx1KXtyZXR1cm4gYyYmdX0sITApO3JldHVybiBsPzA6MX0pfSx0Ll9jYWxjUHJvcG9ydGlvbmFsU3BhY2U9ZnVuY3Rpb24ocixuKXt2YXIgaT1xdS5zdW0ocik7cmV0dXJuIGk9PT0wP0dvLkFycmF5LmNyZWF0ZUZpbGxlZEFycmF5KDAsci5sZW5ndGgpOnIubWFwKGZ1bmN0aW9uKG8pe3JldHVybiBuKm8vaX0pfSx0Ll9maXhlZFNwYWNlPWZ1bmN0aW9uKHIsbil7dmFyIGk9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVkdWNlKGZ1bmN0aW9uKHMsbCl7cmV0dXJuIHMmJmx9LCEwKX0sbz1mdW5jdGlvbihhKXtyZXR1cm4gaShhLm1hcChuKSl9O3JldHVybiBpKHIubWFwKG8pKX0sdH0oR0hlLkNvbXBvbmVudENvbnRhaW5lcik7c2F0LlRhYmxlPVdIZX0pO3ZhciBsS3Q9SChsYXQ9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGxhdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFlIZT0oZGUoKSxVdChwZSkpLGpIZT1Wb3QoKSxYSGU9MiwkSGU9ZnVuY3Rpb24oZSl7WUhlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQoKXt2YXIgcj1lIT09bnVsbCYmZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIHIuX21heExpbmVzPVhIZSxyfXJldHVybiB0LnByb3RvdHlwZS5yZXF1ZXN0ZWRTcGFjZT1mdW5jdGlvbihyLG4pe3RoaXMuX3dyYXBwZXIubWF4TGluZXModGhpcy5fbWF4TGluZXMpO3ZhciBpPXRoaXMuYW5nbGUoKT09PTA/cjpuO2k9PT0wJiYoaT0xLzApO3ZhciBvPXRoaXMuX3dyYXBwZXIud3JhcCh0aGlzLl90ZXh0LHRoaXMuX21lYXN1cmVyLGkpLGE9dGhpcy5fbWVhc3VyZXIubWVhc3VyZShvLndyYXBwZWRUZXh0KSxzPSh0aGlzLmFuZ2xlKCk9PT0wP2Eud2lkdGg6YS5oZWlnaHQpKzIqdGhpcy5wYWRkaW5nKCksbD0odGhpcy5hbmdsZSgpPT09MD9hLmhlaWdodDphLndpZHRoKSsyKnRoaXMucGFkZGluZygpO3JldHVybnttaW5XaWR0aDpzLG1pbkhlaWdodDpsfX0sdC5wcm90b3R5cGUubWF4TGluZXM9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0wP3RoaXMuX21heExpbmVzOih0aGlzLl9tYXhMaW5lcz1yLHRoaXMucmVkcmF3KCksdGhpcyl9LHR9KGpIZS5MYWJlbCk7bGF0LldyYXBwZWRMYWJlbD0kSGV9KTt2YXIgY0t0PUgoY2F0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShjYXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBLSGU9KGRlKCksVXQocGUpKSxaSGU9cUYoKSxKSGU9ZnVuY3Rpb24oZSl7S0hlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQoKXt2YXIgcj1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHIuYWRkQ2xhc3MoIngtZHJhZy1ib3gtbGF5ZXIiKSxyLl9oYXNDb3JuZXJzPSExLHJ9cmV0dXJuIHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQ9ZnVuY3Rpb24ocixuLGkpe3JldHVybiBlLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0LmNhbGwodGhpcyxyLG4saSksdGhpcy5fc2V0Qm91bmRzKHRoaXMuYm91bmRzKCkpLHRoaXN9LHQucHJvdG90eXBlLl9zZXRCb3VuZHM9ZnVuY3Rpb24ocil7ZS5wcm90b3R5cGUuX3NldEJvdW5kcy5jYWxsKHRoaXMse3RvcExlZnQ6e3g6ci50b3BMZWZ0LngseTowfSxib3R0b21SaWdodDp7eDpyLmJvdHRvbVJpZ2h0LngseTp0aGlzLmhlaWdodCgpfX0pfSx0LnByb3RvdHlwZS5fc2V0UmVzaXphYmxlQ2xhc3Nlcz1mdW5jdGlvbihyKXtyJiZ0aGlzLmVuYWJsZWQoKT90aGlzLmFkZENsYXNzKCJ4LXJlc2l6YWJsZSIpOnRoaXMucmVtb3ZlQ2xhc3MoIngtcmVzaXphYmxlIil9LHQucHJvdG90eXBlLnlTY2FsZT1mdW5jdGlvbihyKXtpZihyPT1udWxsKXJldHVybiBlLnByb3RvdHlwZS55U2NhbGUuY2FsbCh0aGlzKTt0aHJvdyBuZXcgRXJyb3IoInlTY2FsZXMgY2Fubm90IGJlIHNldCBvbiBhbiBYRHJhZ0JveExheWVyIil9LHQucHJvdG90eXBlLnlFeHRlbnQ9ZnVuY3Rpb24ocil7aWYocj09bnVsbClyZXR1cm4gZS5wcm90b3R5cGUueUV4dGVudC5jYWxsKHRoaXMpO3Rocm93IG5ldyBFcnJvcigiWERyYWdCb3hMYXllciBoYXMgbm8geUV4dGVudCIpfSx0fShaSGUuRHJhZ0JveExheWVyKTtjYXQuWERyYWdCb3hMYXllcj1KSGV9KTt2YXIgdUt0PUgodWF0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh1YXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBRSGU9KGRlKCksVXQocGUpKSx0VmU9cUYoKSxlVmU9ZnVuY3Rpb24oZSl7UUhlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQoKXt2YXIgcj1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHIuYWRkQ2xhc3MoInktZHJhZy1ib3gtbGF5ZXIiKSxyLl9oYXNDb3JuZXJzPSExLHJ9cmV0dXJuIHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQ9ZnVuY3Rpb24ocixuLGkpe3JldHVybiBlLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0LmNhbGwodGhpcyxyLG4saSksdGhpcy5fc2V0Qm91bmRzKHRoaXMuYm91bmRzKCkpLHRoaXN9LHQucHJvdG90eXBlLl9zZXRCb3VuZHM9ZnVuY3Rpb24ocil7ZS5wcm90b3R5cGUuX3NldEJvdW5kcy5jYWxsKHRoaXMse3RvcExlZnQ6e3g6MCx5OnIudG9wTGVmdC55fSxib3R0b21SaWdodDp7eDp0aGlzLndpZHRoKCkseTpyLmJvdHRvbVJpZ2h0Lnl9fSl9LHQucHJvdG90eXBlLl9zZXRSZXNpemFibGVDbGFzc2VzPWZ1bmN0aW9uKHIpe3ImJnRoaXMuZW5hYmxlZCgpP3RoaXMuYWRkQ2xhc3MoInktcmVzaXphYmxlIik6dGhpcy5yZW1vdmVDbGFzcygieS1yZXNpemFibGUiKX0sdC5wcm90b3R5cGUueFNjYWxlPWZ1bmN0aW9uKHIpe2lmKHI9PW51bGwpcmV0dXJuIGUucHJvdG90eXBlLnhTY2FsZS5jYWxsKHRoaXMpO3Rocm93IG5ldyBFcnJvcigieFNjYWxlcyBjYW5ub3QgYmUgc2V0IG9uIGFuIFlEcmFnQm94TGF5ZXIiKX0sdC5wcm90b3R5cGUueEV4dGVudD1mdW5jdGlvbihyKXtpZihyPT1udWxsKXJldHVybiBlLnByb3RvdHlwZS54RXh0ZW50LmNhbGwodGhpcyk7dGhyb3cgbmV3IEVycm9yKCJZRHJhZ0JveExheWVyIGhhcyBubyB4RXh0ZW50Iil9LHR9KHRWZS5EcmFnQm94TGF5ZXIpO3VhdC5ZRHJhZ0JveExheWVyPWVWZX0pO3ZhciBQb3Q9SCh5YT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoeWEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBEcz0oZGUoKSxVdChwZSkpO0RzLl9fZXhwb3J0U3RhcihxRigpLHlhKTtEcy5fX2V4cG9ydFN0YXIoSSR0KCkseWEpO0RzLl9fZXhwb3J0U3RhcihMJHQoKSx5YSk7RHMuX19leHBvcnRTdGFyKHpvdCgpLHlhKTtEcy5fX2V4cG9ydFN0YXIoTG90KCkseWEpO0RzLl9fZXhwb3J0U3RhcihSJHQoKSx5YSk7RHMuX19leHBvcnRTdGFyKFZvdCgpLHlhKTtEcy5fX2V4cG9ydFN0YXIoTiR0KCkseWEpO0RzLl9fZXhwb3J0U3RhcihhS3QoKSx5YSk7RHMuX19leHBvcnRTdGFyKFRvdCgpLHlhKTtEcy5fX2V4cG9ydFN0YXIoc0t0KCkseWEpO0RzLl9fZXhwb3J0U3RhcihsS3QoKSx5YSk7RHMuX19leHBvcnRTdGFyKGNLdCgpLHlhKTtEcy5fX2V4cG9ydFN0YXIodUt0KCkseWEpfSk7dmFyIGZhdD1IKGhhdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoaGF0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgclZlPShkZSgpLFV0KHBlKSksblZlPU9mKCksaVZlPWZ1bmN0aW9uKGUpe3JWZS5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KCl7cmV0dXJuIGUuY2FsbCh0aGlzLCJwYXRoIiwiYXJjIGZpbGwiKXx8dGhpc31yZXR1cm4gdC5wcm90b3R5cGUuX2FwcGx5RGVmYXVsdEF0dHJpYnV0ZXM9ZnVuY3Rpb24ocil7ci5zdHlsZSgic3Ryb2tlIiwibm9uZSIpfSx0fShuVmUuU1ZHRHJhd2VyKTtoYXQuQXJjU1ZHRHJhd2VyPWlWZX0pO3ZhciBkYXQ9SChwYXQ9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHBhdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG9WZT0oZGUoKSxVdChwZSkpLGFWZT1PZigpLHNWZT1mdW5jdGlvbihlKXtvVmUuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdCgpe3JldHVybiBlLmNhbGwodGhpcywicGF0aCIsImFyYyBvdXRsaW5lIil8fHRoaXN9cmV0dXJuIHQucHJvdG90eXBlLl9hcHBseURlZmF1bHRBdHRyaWJ1dGVzPWZ1bmN0aW9uKHIpe3Iuc3R5bGUoImZpbGwiLCJub25lIil9LHR9KGFWZS5TVkdEcmF3ZXIpO3BhdC5BcmNPdXRsaW5lU1ZHRHJhd2VyPXNWZX0pO3ZhciBtYXQ9SChlQj0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZUIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBsVmU9KGRlKCksVXQocGUpKSx0Qj1CdigpLGNWZT1PZigpLHVWZT1mdW5jdGlvbihlKXtsVmUuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdCgpe3JldHVybiBlLmNhbGwodGhpcywicGF0aCIsImFyZWEiKXx8dGhpc31yZXR1cm4gdC5wcm90b3R5cGUuX2FwcGx5RGVmYXVsdEF0dHJpYnV0ZXM9ZnVuY3Rpb24ocil7ci5zdHlsZSgic3Ryb2tlIiwibm9uZSIpfSx0LnByb3RvdHlwZS5nZXRWaXN1YWxQcmltaXRpdmVBdEluZGV4PWZ1bmN0aW9uKHIpe3JldHVybiBlLnByb3RvdHlwZS5nZXRWaXN1YWxQcmltaXRpdmVBdEluZGV4LmNhbGwodGhpcywwKX0sdH0oY1ZlLlNWR0RyYXdlcik7ZUIuQXJlYVNWR0RyYXdlcj11VmU7dmFyIGhWZT1bIm9wYWNpdHkiLCJmaWxsIiwiZmlsbC1vcGFjaXR5Il0sZlZlPVsib3BhY2l0eSIsInN0cm9rZSIsInN0cm9rZS13aWR0aCJdO2Z1bmN0aW9uIHBWZShlLHQpe3JldHVybiBmdW5jdGlvbihyLG4saSl7dmFyIG89dEIucmVzb2x2ZUF0dHJpYnV0ZXMoaSxoVmUsblswXSwwKTt0Qi5yZW5kZXJBcmVhKHIsZSgpLG5bMF0sbyk7dmFyIGE9dEIucmVzb2x2ZUF0dHJpYnV0ZXMoaSxmVmUsblswXSwwKTt0Qi5yZW5kZXJMaW5lKHIsdCgpLG5bMF0sYSl9fWVCLm1ha2VBcmVhQ2FudmFzRHJhd1N0ZXA9cFZlfSk7dmFyIG5CPUgockI9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHJCLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZFZlPShkZSgpLFV0KHBlKSksaEt0PUJ2KCksbVZlPU9mKCksZ1ZlPWZ1bmN0aW9uKGUpe2RWZS5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KCl7cmV0dXJuIGUuY2FsbCh0aGlzLCJwYXRoIiwibGluZSIpfHx0aGlzfXJldHVybiB0LnByb3RvdHlwZS5fYXBwbHlEZWZhdWx0QXR0cmlidXRlcz1mdW5jdGlvbihyKXtyLnN0eWxlKCJmaWxsIiwibm9uZSIpfSx0LnByb3RvdHlwZS5nZXRWaXN1YWxQcmltaXRpdmVBdEluZGV4PWZ1bmN0aW9uKHIpe3JldHVybiBlLnByb3RvdHlwZS5nZXRWaXN1YWxQcmltaXRpdmVBdEluZGV4LmNhbGwodGhpcywwKX0sdH0obVZlLlNWR0RyYXdlcik7ckIuTGluZVNWR0RyYXdlcj1nVmU7dmFyIF9WZT1bIm9wYWNpdHkiLCJzdHJva2Utb3BhY2l0eSIsInN0cm9rZS13aWR0aCIsInN0cm9rZSIsInN0cm9rZS1kYXNoYXJyYXkiXTtmdW5jdGlvbiB5VmUoZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXt2YXIgaT1oS3QucmVzb2x2ZUF0dHJpYnV0ZXMobixfVmUsclswXSwwKTtoS3QucmVuZGVyTGluZSh0LGUoKSxyWzBdLGkpfX1yQi5tYWtlTGluZUNhbnZhc0RyYXdTdGVwPXlWZX0pO3ZhciBvQj1IKFBTPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShQUywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGZLdD0oZGUoKSxVdChwZSkpLGlCPUJ2KCksdlZlPU9mKCkseFZlPWZ1bmN0aW9uKGUpe2ZLdC5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KHIpe3I9PT12b2lkIDAmJihyPSIiKTt2YXIgbj1lLmNhbGwodGhpcywicmVjdCIsIiIpfHx0aGlzO3JldHVybiBuLl9yb290Q2xhc3NOYW1lPXIsbi5fcm9vdC5jbGFzc2VkKG4uX3Jvb3RDbGFzc05hbWUsITApLG59cmV0dXJuIHR9KHZWZS5TVkdEcmF3ZXIpO1BTLlJlY3RhbmdsZVNWR0RyYXdlcj14VmU7dmFyIGJWZT1pQi5Db250ZXh0U3R5bGVBdHRycy5jb25jYXQoWyJ4IiwieSIsIndpZHRoIiwiaGVpZ2h0Il0pO1BTLlJlY3RhbmdsZUNhbnZhc0RyYXdTdGVwPWZ1bmN0aW9uKGUsdCxyKXtlLnNhdmUoKTtmb3IodmFyIG49dC5sZW5ndGgsaT0wO2k8bjtpKyspe3ZhciBvPXRbaV07aWYobyE9bnVsbCl7dmFyIGE9aUIucmVzb2x2ZUF0dHJpYnV0ZXMocixiVmUsbyxpKTtlLmJlZ2luUGF0aCgpLGUucmVjdChhLngsYS55LGEud2lkdGgsYS5oZWlnaHQpLGlCLnJlbmRlclBhdGhXaXRoU3R5bGUoZSxhKX19ZS5yZXN0b3JlKCl9O3ZhciB3VmU9ZnVuY3Rpb24oZSl7Zkt0Ll9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocil7cmV0dXJuIGUuY2FsbCh0aGlzLHIsUFMuUmVjdGFuZ2xlQ2FudmFzRHJhd1N0ZXApfHx0aGlzfXJldHVybiB0fShpQi5DYW52YXNEcmF3ZXIpO1BTLlJlY3RhbmdsZUNhbnZhc0RyYXdlcj13VmV9KTt2YXIgX2F0PUgoZ2F0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShnYXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBTVmU9KGRlKCksVXQocGUpKSxNVmU9T2YoKSxFVmU9ZnVuY3Rpb24oZSl7U1ZlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQoKXtyZXR1cm4gZS5jYWxsKHRoaXMsImxpbmUiLCIiKXx8dGhpc31yZXR1cm4gdH0oTVZlLlNWR0RyYXdlcik7Z2F0LlNlZ21lbnRTVkdEcmF3ZXI9RVZlfSk7dmFyIHBLdD1IKHlhdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoeWF0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgVFZlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LHIsbil7bj09PXZvaWQgMCYmKG49d2luZG93LmRldmljZVBpeGVsUmF0aW8pLHRoaXMuc2NyZWVuV2lkdGg9dCx0aGlzLnNjcmVlbkhlaWdodD1yLHRoaXMuZGV2aWNlUGl4ZWxSYXRpbz1uLHRoaXMucGl4ZWxXaWR0aD10Km4sdGhpcy5waXhlbEhlaWdodD1yKm4sdGhpcy5jYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdGhpcy5jdHg9dGhpcy5jYW52YXMuZ2V0Q29udGV4dCgiMmQiKSxlLnNpemVQaXhlbHModGhpcy5jdHgsdCxyLG4pfXJldHVybiBlLnNpemVQaXhlbHM9ZnVuY3Rpb24odCxyLG4saSl7dmFyIG89dC5jYW52YXM7by53aWR0aD1yKmksby5oZWlnaHQ9bippLG8uc3R5bGUud2lkdGg9cisicHgiLG8uc3R5bGUuaGVpZ2h0PW4rInB4Iix0LnNldFRyYW5zZm9ybSgxLDAsMCwxLDAsMCksdC5zY2FsZShpLGkpfSxlLnByb3RvdHlwZS5ibGl0PWZ1bmN0aW9uKHQscixuKXtyPT09dm9pZCAwJiYocj0wKSxuPT09dm9pZCAwJiYobj0wKSx0LmRyYXdJbWFnZSh0aGlzLmNhbnZhcyxyLG4sdGhpcy5zY3JlZW5XaWR0aCx0aGlzLnNjcmVlbkhlaWdodCl9LGUucHJvdG90eXBlLmJsaXRDZW50ZXI9ZnVuY3Rpb24odCxyLG4pe3I9PT12b2lkIDAmJihyPTApLG49PT12b2lkIDAmJihuPTApLHRoaXMuYmxpdCh0LE1hdGguZmxvb3Ioci10aGlzLnNjcmVlbldpZHRoLzIpLE1hdGguZmxvb3Iobi10aGlzLnNjcmVlbkhlaWdodC8yKSl9LGUucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbih0LHIsbil7bj09PXZvaWQgMCYmKG49ITEpO3ZhciBpPXRoaXMuZGV2aWNlUGl4ZWxSYXRpbztyZXR1cm4gdGhpcy5zY3JlZW5XaWR0aD10LHRoaXMuc2NyZWVuSGVpZ2h0PXIsdGhpcy5waXhlbFdpZHRoPXQqaSx0aGlzLnBpeGVsSGVpZ2h0PXIqaSxlLnNpemVQaXhlbHModGhpcy5jdHgsdCxyLGkpLG4mJnRoaXMuY3R4LnRyYW5zbGF0ZSh0LzIsdC8yKSx0aGlzfSxlLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbih0KXt2YXIgcj10aGlzLG49ci5waXhlbFdpZHRoLGk9ci5waXhlbEhlaWdodCxvPXIuY3R4O3JldHVybiBvLnNhdmUoKSxvLnNldFRyYW5zZm9ybSgxLDAsMCwxLDAsMCksdD09bnVsbD9vLmNsZWFyUmVjdCgwLDAsbixpKTooby5maWxsU3R5bGU9dCxvLmZpbGxSZWN0KDAsMCxuLGkpKSxvLnJlc3RvcmUoKSx0aGlzfSxlLnByb3RvdHlwZS5nZXRJbWFnZURhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdHguZ2V0SW1hZ2VEYXRhKDAsMCx0aGlzLnBpeGVsV2lkdGgsdGhpcy5waXhlbEhlaWdodCl9LGV9KCk7eWF0LkNhbnZhc0J1ZmZlcj1UVmV9KTt2YXIgdmF0PUgoYUI9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGFCLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgQ1ZlPShkZSgpLFV0KHBlKSksbTQ9QnYoKSxBVmU9cEt0KCksUFZlPU9mKCksSVZlPWZ1bmN0aW9uKGUpe0NWZS5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KCl7cmV0dXJuIGUuY2FsbCh0aGlzLCJwYXRoIiwic3ltYm9sIil8fHRoaXN9cmV0dXJuIHR9KFBWZS5TVkdEcmF3ZXIpO2FCLlN5bWJvbFNWR0RyYXdlcj1JVmU7dmFyIExWZT1tNC5Db250ZXh0U3R5bGVBdHRycy5jb25jYXQoWyJ4IiwieSJdKTtmdW5jdGlvbiBrVmUoZSx0LHIsbil7dmFyIGk9dGhpcztyZXR1cm4gZnVuY3Rpb24obyxhLHMpe2Zvcih2YXIgbD1vLmNhbnZhcyxjPWwuY2xpZW50V2lkdGgsdT1sLmNsaWVudEhlaWdodCxoPW49PT12b2lkIDA/bmV3IEFWZS5DYW52YXNCdWZmZXIoMCwwKTpuLGY9dCgpLHA9cigpLGQ9bnVsbCxnPW51bGwsXz1udWxsLHk9MDt5PGEubGVuZ3RoO3krKyl7dmFyIHg9YVt5XTtpZih4IT1udWxsKXt2YXIgYj1tNC5yZXNvbHZlQXR0cmlidXRlcyhzLExWZSx4LHkpLFM9cCh4LHksZSk7aWYoISFSVmUoYyx1LGIueCxiLnksUykpe3ZhciBDPU5WZShkLGIsbTQuQ29udGV4dFN0eWxlQXR0cnMpLFA9Zih4LHksaS5fZGF0YXNldCk7aWYoIShDJiZfPT1TJiZnPT1QKSl7dmFyIGs9bTQuZ2V0U3Ryb2tlV2lkdGgoYiksTz1TK2srMTsoTz5oLnNjcmVlbldpZHRofHxPPmguc2NyZWVuSGVpZ2h0KSYmaC5yZXNpemUoTyxPLCEwKSxoLmNsZWFyKCk7dmFyIEQ9aC5jdHg7RC5iZWdpblBhdGgoKSxQKFMpLmNvbnRleHQoRCkobnVsbCksRC5jbG9zZVBhdGgoKSxtNC5yZW5kZXJQYXRoV2l0aFN0eWxlKEQsYiksZz1QLF89UyxkPWJ9aC5ibGl0Q2VudGVyKG8sYi54LGIueSl9fX19fWFCLm1ha2VTeW1ib2xDYW52YXNEcmF3U3RlcD1rVmU7ZnVuY3Rpb24gUlZlKGUsdCxyLG4saSl7cmV0dXJuIHIraT49MCYmci1pPD1lJiZuK2k+PTAmJm4taTw9dH1mdW5jdGlvbiBOVmUoZSx0LHIpe2lmKGU9PW51bGwpcmV0dXJuITE7Zm9yKHZhciBuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07aWYoZVtpXSE9dFtpXSlyZXR1cm4hMX1yZXR1cm4hMH19KTt2YXIgSHY9SChEYz0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoRGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB6Zj0oZGUoKSxVdChwZSkpO3pmLl9fZXhwb3J0U3RhcihmYXQoKSxEYyk7emYuX19leHBvcnRTdGFyKGRhdCgpLERjKTt6Zi5fX2V4cG9ydFN0YXIobWF0KCksRGMpO3pmLl9fZXhwb3J0U3RhcihCdigpLERjKTt6Zi5fX2V4cG9ydFN0YXIoVXUoKSxEYyk7emYuX19leHBvcnRTdGFyKG5CKCksRGMpO3pmLl9fZXhwb3J0U3RhcihvQigpLERjKTt6Zi5fX2V4cG9ydFN0YXIoX2F0KCksRGMpO3pmLl9fZXhwb3J0U3RhcihPZigpLERjKTt6Zi5fX2V4cG9ydFN0YXIodmF0KCksRGMpfSk7dmFyIFZ2PUgoYmF0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShiYXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBEVmU9KGRlKCksVXQocGUpKSxkS3Q9UnMoKSx4YXQ9RmUoKSxPVmU9aWF0KCksZzQ9bnMoKSx6VmU9ZnVuY3Rpb24oZSl7RFZlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQoKXt2YXIgcj1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHIuX2F1dG9BZGp1c3RYU2NhbGVEb21haW49ITEsci5fYXV0b0FkanVzdFlTY2FsZURvbWFpbj0hMSxyLl9kZWZlcnJlZFJlbmRlcmluZz0hMSxyLl9hcHBseURlZmVycmVkUmVuZGVyaW5nVHJhbnNmb3JtPWZ1bmN0aW9uKG4saSxvLGEpeyFyLl9pc0FuY2hvcmVkfHwoci5fcmVuZGVyQXJlYSE9bnVsbCYmci5fcmVuZGVyQXJlYS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIituKyIsICIraSsiKSBzY2FsZSgiK28rIiwgIithKyIpIiksci5fY2FudmFzIT1udWxsJiZyLl9jYW52YXMuc3R5bGUoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK24rInB4LCAiK2krInB4KSBzY2FsZSgiK28rIiwgIithKyIpIikpfSxyLmFkZENsYXNzKCJ4eS1wbG90Iiksci5fYWRqdXN0WURvbWFpbk9uQ2hhbmdlRnJvbVhDYWxsYmFjaz1mdW5jdGlvbihuKXtyZXR1cm4gci5fYWRqdXN0WURvbWFpbk9uQ2hhbmdlRnJvbVgoKX0sci5fYWRqdXN0WERvbWFpbk9uQ2hhbmdlRnJvbVlDYWxsYmFjaz1mdW5jdGlvbihuKXtyZXR1cm4gci5fYWRqdXN0WERvbWFpbk9uQ2hhbmdlRnJvbVkoKX0sci5fcmVuZGVyQ2FsbGJhY2s9ZnVuY3Rpb24oKXtpZihyLmRlZmVycmVkUmVuZGVyaW5nKCkpe3ZhciBuPXIueCgpJiZyLngoKS5zY2FsZSxpPXIueSgpJiZyLnkoKS5zY2FsZTtyLl9kZWZlcnJlZFJlbmRlcmVyLnVwZGF0ZURvbWFpbnMobixpKX1lbHNlIHIucmVuZGVyKCl9LHIuX2RlZmVycmVkUmVuZGVyZXI9bmV3IE9WZS5EZWZlcnJlZFJlbmRlcmVyKGZ1bmN0aW9uKCl7cmV0dXJuIHIucmVuZGVyKCl9LHIuX2FwcGx5RGVmZXJyZWRSZW5kZXJpbmdUcmFuc2Zvcm0pLHJ9cmV0dXJuIHQucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRlZmVycmVkUmVuZGVyaW5nKCkmJnRoaXMuX2RlZmVycmVkUmVuZGVyZXIucmVzZXRUcmFuc2Zvcm1zKCksZS5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyl9LHQucHJvdG90eXBlLmRlZmVycmVkUmVuZGVyaW5nPWZ1bmN0aW9uKHIpe2lmKHI9PW51bGwpcmV0dXJuIHRoaXMuX2RlZmVycmVkUmVuZGVyaW5nO2lmKHIpe3ZhciBuPXRoaXMueCgpJiZ0aGlzLngoKS5zY2FsZSxpPXRoaXMueSgpJiZ0aGlzLnkoKS5zY2FsZTt0aGlzLl9kZWZlcnJlZFJlbmRlcmVyLnNldERvbWFpbnMobixpKX1yZXR1cm4gdGhpcy5fZGVmZXJyZWRSZW5kZXJpbmc9cix0aGlzfSx0LnByb3RvdHlwZS54PWZ1bmN0aW9uKHIsbixpKXtpZihyPT1udWxsKXJldHVybiB0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldCh0Ll9YX0tFWSk7dGhpcy5fYmluZFByb3BlcnR5KHQuX1hfS0VZLHIsbixpKTt2YXIgbz10aGlzLndpZHRoKCk7cmV0dXJuIG4hPW51bGwmJm8hPW51bGwmJm4ucmFuZ2UoWzAsb10pLHRoaXMuX2F1dG9BZGp1c3RZU2NhbGVEb21haW4mJnRoaXMuX3VwZGF0ZVlFeHRlbnRzQW5kQXV0b2RvbWFpbigpLHRoaXMucmVuZGVyKCksdGhpc30sdC5wcm90b3R5cGUueT1mdW5jdGlvbihyLG4saSl7aWYocj09bnVsbClyZXR1cm4gdGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQodC5fWV9LRVkpO3RoaXMuX2JpbmRQcm9wZXJ0eSh0Ll9ZX0tFWSxyLG4saSk7dmFyIG89dGhpcy5oZWlnaHQoKTtyZXR1cm4gbiE9bnVsbCYmbyE9bnVsbCYmKG4gaW5zdGFuY2VvZiBkS3QuQ2F0ZWdvcnk/bi5yYW5nZShbMCxvXSk6bi5yYW5nZShbbywwXSkpLHRoaXMuX2F1dG9BZGp1c3RYU2NhbGVEb21haW4mJnRoaXMuX3VwZGF0ZVhFeHRlbnRzQW5kQXV0b2RvbWFpbigpLHRoaXMucmVuZGVyKCksdGhpc30sdC5wcm90b3R5cGUuX2ZpbHRlckZvclByb3BlcnR5PWZ1bmN0aW9uKHIpe3JldHVybiByPT09IngiJiZ0aGlzLl9hdXRvQWRqdXN0WFNjYWxlRG9tYWluP3RoaXMuX21ha2VGaWx0ZXJCeVByb3BlcnR5KCJ5Iik6KHI9PT0ieSJ8fHI9PT0ieTAiKSYmdGhpcy5fYXV0b0FkanVzdFlTY2FsZURvbWFpbj90aGlzLl9tYWtlRmlsdGVyQnlQcm9wZXJ0eSgieCIpOm51bGx9LHQucHJvdG90eXBlLl9tYWtlRmlsdGVyQnlQcm9wZXJ0eT1mdW5jdGlvbihyKXt2YXIgbj10aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldChyKTtpZihuIT1udWxsKXt2YXIgaT1uLmFjY2Vzc29yLG89bi5zY2FsZTtpZihvIT1udWxsKXJldHVybiBmdW5jdGlvbihhLHMsbCl7dmFyIGM9by5yYW5nZSgpO3JldHVybiB4YXQuTWF0aC5pblJhbmdlKG8uc2NhbGUoaShhLHMsbCkpLGNbMF0sY1sxXSl9fXJldHVybiBudWxsfSx0LnByb3RvdHlwZS5fdW5pbnN0YWxsU2NhbGVGb3JLZXk9ZnVuY3Rpb24ocixuKXtlLnByb3RvdHlwZS5fdW5pbnN0YWxsU2NhbGVGb3JLZXkuY2FsbCh0aGlzLHIsbik7dmFyIGk9bj09PXQuX1hfS0VZP3RoaXMuX2FkanVzdFlEb21haW5PbkNoYW5nZUZyb21YQ2FsbGJhY2s6dGhpcy5fYWRqdXN0WERvbWFpbk9uQ2hhbmdlRnJvbVlDYWxsYmFjaztyLm9mZlVwZGF0ZShpKX0sdC5wcm90b3R5cGUuX2luc3RhbGxTY2FsZUZvcktleT1mdW5jdGlvbihyLG4pe2UucHJvdG90eXBlLl9pbnN0YWxsU2NhbGVGb3JLZXkuY2FsbCh0aGlzLHIsbik7dmFyIGk9bj09PXQuX1hfS0VZP3RoaXMuX2FkanVzdFlEb21haW5PbkNoYW5nZUZyb21YQ2FsbGJhY2s6dGhpcy5fYWRqdXN0WERvbWFpbk9uQ2hhbmdlRnJvbVlDYWxsYmFjaztyLm9uVXBkYXRlKGkpfSx0LnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7cmV0dXJuIGUucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKSx0aGlzLngoKS5zY2FsZSYmdGhpcy54KCkuc2NhbGUub2ZmVXBkYXRlKHRoaXMuX2FkanVzdFlEb21haW5PbkNoYW5nZUZyb21YQ2FsbGJhY2spLHRoaXMueSgpLnNjYWxlJiZ0aGlzLnkoKS5zY2FsZS5vZmZVcGRhdGUodGhpcy5fYWRqdXN0WERvbWFpbk9uQ2hhbmdlRnJvbVlDYWxsYmFjayksdGhpc30sdC5wcm90b3R5cGUuYXV0b3JhbmdlTW9kZT1mdW5jdGlvbihyKXtpZihyPT1udWxsKXJldHVybiB0aGlzLl9hdXRvQWRqdXN0WFNjYWxlRG9tYWluPyJ4Ijp0aGlzLl9hdXRvQWRqdXN0WVNjYWxlRG9tYWluPyJ5Ijoibm9uZSI7c3dpdGNoKHIpe2Nhc2UieCI6dGhpcy5fYXV0b0FkanVzdFhTY2FsZURvbWFpbj0hMCx0aGlzLl9hdXRvQWRqdXN0WVNjYWxlRG9tYWluPSExLHRoaXMuX2FkanVzdFhEb21haW5PbkNoYW5nZUZyb21ZKCk7YnJlYWs7Y2FzZSJ5Ijp0aGlzLl9hdXRvQWRqdXN0WFNjYWxlRG9tYWluPSExLHRoaXMuX2F1dG9BZGp1c3RZU2NhbGVEb21haW49ITAsdGhpcy5fYWRqdXN0WURvbWFpbk9uQ2hhbmdlRnJvbVgoKTticmVhaztjYXNlIm5vbmUiOnRoaXMuX2F1dG9BZGp1c3RYU2NhbGVEb21haW49ITEsdGhpcy5fYXV0b0FkanVzdFlTY2FsZURvbWFpbj0hMTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzY2FsZSBuYW1lICciK3IrIicsIG11c3QgYmUgJ3gnLCAneScgb3IgJ25vbmUnIil9cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQ9ZnVuY3Rpb24ocixuLGkpe2UucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQuY2FsbCh0aGlzLHIsbixpKTt2YXIgbz10aGlzLngoKSxhPW8mJm8uc2NhbGU7YSE9bnVsbCYmYS5yYW5nZShbMCx0aGlzLndpZHRoKCldKTt2YXIgcz10aGlzLnkoKSxsPXMmJnMuc2NhbGU7cmV0dXJuIGwhPW51bGwmJihsIGluc3RhbmNlb2YgZEt0LkNhdGVnb3J5P2wucmFuZ2UoWzAsdGhpcy5oZWlnaHQoKV0pOmwucmFuZ2UoW3RoaXMuaGVpZ2h0KCksMF0pKSx0aGlzfSx0LnByb3RvdHlwZS5fdXBkYXRlWEV4dGVudHNBbmRBdXRvZG9tYWluPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy54KCkuc2NhbGU7ciE9bnVsbCYmci5hdXRvRG9tYWluKCl9LHQucHJvdG90eXBlLl91cGRhdGVZRXh0ZW50c0FuZEF1dG9kb21haW49ZnVuY3Rpb24oKXt2YXIgcj10aGlzLnkoKS5zY2FsZTtyIT1udWxsJiZyLmF1dG9Eb21haW4oKX0sdC5wcm90b3R5cGUuc2hvd0FsbERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdXBkYXRlWEV4dGVudHNBbmRBdXRvZG9tYWluKCksdGhpcy5fdXBkYXRlWUV4dGVudHNBbmRBdXRvZG9tYWluKCksdGhpc30sdC5wcm90b3R5cGUuX2FkanVzdFlEb21haW5PbkNoYW5nZUZyb21YPWZ1bmN0aW9uKCl7IXRoaXMuX3Byb2plY3RvcnNSZWFkeSgpfHx0aGlzLl9hdXRvQWRqdXN0WVNjYWxlRG9tYWluJiZ0aGlzLl91cGRhdGVZRXh0ZW50c0FuZEF1dG9kb21haW4oKX0sdC5wcm90b3R5cGUuX2FkanVzdFhEb21haW5PbkNoYW5nZUZyb21ZPWZ1bmN0aW9uKCl7IXRoaXMuX3Byb2plY3RvcnNSZWFkeSgpfHx0aGlzLl9hdXRvQWRqdXN0WFNjYWxlRG9tYWluJiZ0aGlzLl91cGRhdGVYRXh0ZW50c0FuZEF1dG9kb21haW4oKX0sdC5wcm90b3R5cGUuX3Byb2plY3RvcnNSZWFkeT1mdW5jdGlvbigpe3ZhciByPXRoaXMueCgpLG49dGhpcy55KCk7cmV0dXJuIHIhPW51bGwmJnIuYWNjZXNzb3IhPW51bGwmJm4hPW51bGwmJm4uYWNjZXNzb3IhPW51bGx9LHQucHJvdG90eXBlLl9waXhlbFBvaW50PWZ1bmN0aW9uKHIsbixpKXt2YXIgbz1nNC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSksYT1nNC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSk7cmV0dXJue3g6byhyLG4saSkseTphKHIsbixpKX19LHQucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3PWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxuPWUucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3LmNhbGwodGhpcyksaT10aGlzLmF0dHIoImRlZmluZWQiKSxvPWZ1bmN0aW9uKGEscyxsKXt2YXIgYz1nNC5QbG90Ll9zY2FsZWRBY2Nlc3NvcihyLngoKSkoYSxzLGwpLHU9ZzQuUGxvdC5fc2NhbGVkQWNjZXNzb3Ioci55KCkpKGEscyxsKTtyZXR1cm4gaSYmaS5hY2Nlc3NvcihhLHMsbCk9PT0hMT8hMTp4YXQuTWF0aC5pc1ZhbGlkTnVtYmVyKGMpJiZ4YXQuTWF0aC5pc1ZhbGlkTnVtYmVyKHUpfTtyZXR1cm4gdGhpcy5kYXRhc2V0cygpLmZvckVhY2goZnVuY3Rpb24oYSl7bi5zZXQoYSxuLmdldChhKS5maWx0ZXIoZnVuY3Rpb24ocyxsKXtyZXR1cm4gbyhzLGwsYSl9KSl9KSxufSx0Ll9YX0tFWT0ieCIsdC5fWV9LRVk9InkiLHR9KGc0LlBsb3QpO2JhdC5YWVBsb3Q9elZlfSk7dmFyIFNhdD1IKGxCPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShsQiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEZWZT0oZGUoKSxVdChwZSkpLHZhPShFcigpLFV0KE1yKSksQlZlPWtmKCksSFZlPUh2KCksVlZlPVV1KCksbUt0PW5CKCksVVZlPVJzKCksc0I9eGQoKSx0MD1GZSgpLHFWZT1MZigpLHdhdD1JUygpLHhsPW5zKCksR1ZlPVZ2KCksZ0t0PXtsaW5lYXI6dmEuY3VydmVMaW5lYXIsbGluZWFyQ2xvc2VkOnZhLmN1cnZlTGluZWFyQ2xvc2VkLHN0ZXA6dmEuY3VydmVTdGVwLHN0ZXBCZWZvcmU6dmEuY3VydmVTdGVwQmVmb3JlLHN0ZXBBZnRlcjp2YS5jdXJ2ZVN0ZXBBZnRlcixiYXNpczp2YS5jdXJ2ZUJhc2lzLGJhc2lzT3Blbjp2YS5jdXJ2ZUJhc2lzT3BlbixiYXNpc0Nsb3NlZDp2YS5jdXJ2ZUJhc2lzQ2xvc2VkLGJ1bmRsZTp2YS5jdXJ2ZUJ1bmRsZSxjYXJkaW5hbDp2YS5jdXJ2ZUNhcmRpbmFsLGNhcmRpbmFsT3Blbjp2YS5jdXJ2ZUNhcmRpbmFsT3BlbixjYXJkaW5hbENsb3NlZDp2YS5jdXJ2ZUNhcmRpbmFsQ2xvc2VkLG1vbm90b25lOnZhLmN1cnZlTW9ub3RvbmVYfTtsQi5DdXJ2ZU5hbWU9cVZlLm1ha2VFbnVtKFsibGluZWFyIiwibGluZWFyQ2xvc2VkIiwic3RlcCIsInN0ZXBCZWZvcmUiLCJzdGVwQWZ0ZXIiLCJiYXNpcyIsImJhc2lzT3BlbiIsImJhc2lzQ2xvc2VkIiwiYnVuZGxlIiwiY2FyZGluYWwiLCJjYXJkaW5hbE9wZW4iLCJjYXJkaW5hbENsb3NlZCIsIm1vbm90b25lIl0pO3ZhciBXVmU9ZnVuY3Rpb24oZSl7RlZlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQoKXt2YXIgcj1lLmNhbGwodGhpcyl8fHRoaXM7ci5fY3VydmU9ImxpbmVhciIsci5fYXV0b3JhbmdlU21vb3RoPSExLHIuX2Nyb3BwZWRSZW5kZXJpbmdFbmFibGVkPSEwLHIuX2NvbGxhcHNlRGVuc2VWZXJ0aWNhbExpbmVzRW5hYmxlZD0hMSxyLl9kb3duc2FtcGxpbmdFbmFibGVkPSExLHIuYWRkQ2xhc3MoImxpbmUtcGxvdCIpO3ZhciBuPW5ldyBCVmUuRWFzaW5nO3JldHVybiBuLnN0ZXBEdXJhdGlvbih4bC5QbG90Ll9BTklNQVRJT05fTUFYX0RVUkFUSU9OKSxuLmVhc2luZ01vZGUoImV4cEluT3V0Iiksbi5tYXhUb3RhbER1cmF0aW9uKHhsLlBsb3QuX0FOSU1BVElPTl9NQVhfRFVSQVRJT04pLHIuYW5pbWF0b3Iod2F0LkFuaW1hdG9yLk1BSU4sbiksci5hdHRyKCJzdHJva2UiLG5ldyBVVmUuQ29sb3IoKS5yYW5nZSgpWzBdKSxyLmF0dHIoInN0cm9rZS13aWR0aCIsIjJweCIpLHJ9cmV0dXJuIHQucHJvdG90eXBlLng9ZnVuY3Rpb24ocixuLGkpe3JldHVybiByPT1udWxsP2UucHJvdG90eXBlLnguY2FsbCh0aGlzKTooZS5wcm90b3R5cGUueC5jYWxsKHRoaXMscixuLGkpLHRoaXMuX3NldFNjYWxlU25hcHBpbmcoKSx0aGlzKX0sdC5wcm90b3R5cGUueT1mdW5jdGlvbihyLG4saSl7cmV0dXJuIHI9PW51bGw/ZS5wcm90b3R5cGUueS5jYWxsKHRoaXMpOihlLnByb3RvdHlwZS55LmNhbGwodGhpcyxyLG4saSksdGhpcy5fc2V0U2NhbGVTbmFwcGluZygpLHRoaXMpfSx0LnByb3RvdHlwZS5hdXRvcmFuZ2VNb2RlPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP2UucHJvdG90eXBlLmF1dG9yYW5nZU1vZGUuY2FsbCh0aGlzKTooZS5wcm90b3R5cGUuYXV0b3JhbmdlTW9kZS5jYWxsKHRoaXMsciksdGhpcy5fc2V0U2NhbGVTbmFwcGluZygpLHRoaXMpfSx0LnByb3RvdHlwZS5hdXRvcmFuZ2VTbW9vdGg9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5fYXV0b3JhbmdlU21vb3RoOih0aGlzLl9hdXRvcmFuZ2VTbW9vdGg9cix0aGlzLl9zZXRTY2FsZVNuYXBwaW5nKCksdGhpcyl9LHQucHJvdG90eXBlLl9zZXRTY2FsZVNuYXBwaW5nPWZ1bmN0aW9uKCl7dGhpcy5hdXRvcmFuZ2VNb2RlKCk9PT0ieCImJnRoaXMueCgpJiZ0aGlzLngoKS5zY2FsZSYmdGhpcy54KCkuc2NhbGUgaW5zdGFuY2VvZiBzQi5RdWFudGl0YXRpdmVTY2FsZSYmdGhpcy54KCkuc2NhbGUuc25hcHBpbmdEb21haW5FbmFibGVkKCF0aGlzLmF1dG9yYW5nZVNtb290aCgpKSx0aGlzLmF1dG9yYW5nZU1vZGUoKT09PSJ5IiYmdGhpcy55KCkmJnRoaXMueSgpLnNjYWxlJiZ0aGlzLnkoKS5zY2FsZSBpbnN0YW5jZW9mIHNCLlF1YW50aXRhdGl2ZVNjYWxlJiZ0aGlzLnkoKS5zY2FsZS5zbmFwcGluZ0RvbWFpbkVuYWJsZWQoIXRoaXMuYXV0b3JhbmdlU21vb3RoKCkpfSx0LnByb3RvdHlwZS5jdXJ2ZT1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9jdXJ2ZToodGhpcy5fY3VydmU9cix0aGlzLnJlbmRlcigpLHRoaXMpfSx0LnByb3RvdHlwZS5kb3duc2FtcGxpbmdFbmFibGVkPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX2Rvd25zYW1wbGluZ0VuYWJsZWQ6KHRoaXMuX2Rvd25zYW1wbGluZ0VuYWJsZWQ9cix0aGlzKX0sdC5wcm90b3R5cGUuY3JvcHBlZFJlbmRlcmluZ0VuYWJsZWQ9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5fY3JvcHBlZFJlbmRlcmluZ0VuYWJsZWQ6KHRoaXMuX2Nyb3BwZWRSZW5kZXJpbmdFbmFibGVkPXIsdGhpcy5yZW5kZXIoKSx0aGlzKX0sdC5wcm90b3R5cGUuY29sbGFwc2VEZW5zZUxpbmVzRW5hYmxlZD1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9jb2xsYXBzZURlbnNlVmVydGljYWxMaW5lc0VuYWJsZWQ6KHRoaXMuX2NvbGxhcHNlRGVuc2VWZXJ0aWNhbExpbmVzRW5hYmxlZD1yLHRoaXMucmVuZGVyKCksdGhpcyl9LHQucHJvdG90eXBlLl9jcmVhdGVEcmF3ZXI9ZnVuY3Rpb24ocil7dmFyIG49dGhpcztyZXR1cm4gbmV3IFZWZS5Qcm94eURyYXdlcihmdW5jdGlvbigpe3JldHVybiBuZXcgbUt0LkxpbmVTVkdEcmF3ZXJ9LGZ1bmN0aW9uKGkpe3JldHVybiBuZXcgSFZlLkNhbnZhc0RyYXdlcihpLG1LdC5tYWtlTGluZUNhbnZhc0RyYXdTdGVwKGZ1bmN0aW9uKCl7cmV0dXJuIG4uX2QzTGluZUZhY3Rvcnkocil9KSl9KX0sdC5wcm90b3R5cGUuZ2V0RXh0ZW50c0ZvclByb3BlcnR5PWZ1bmN0aW9uKHIpe3ZhciBuPWUucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eS5jYWxsKHRoaXMscik7aWYoIXRoaXMuX2F1dG9yYW5nZVNtb290aHx8dGhpcy5hdXRvcmFuZ2VNb2RlKCkhPT1yfHx0aGlzLmF1dG9yYW5nZU1vZGUoKSE9PSJ4IiYmdGhpcy5hdXRvcmFuZ2VNb2RlKCkhPT0ieSIpcmV0dXJuIG47dmFyIGk9dGhpcy5fZ2V0RWRnZUludGVyc2VjdGlvblBvaW50cygpLG87cmV0dXJuIHRoaXMuYXV0b3JhbmdlTW9kZSgpPT09InkiP289aS5sZWZ0LmNvbmNhdChpLnJpZ2h0KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEueX0pOm89aS50b3AuY29uY2F0KGkuYm90dG9tKS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEueH0pLG4ubWFwKGZ1bmN0aW9uKGEpe3JldHVybiB2YS5leHRlbnQodmEubWVyZ2UoW2Esb10pKX0pfSx0LnByb3RvdHlwZS5fZ2V0RWRnZUludGVyc2VjdGlvblBvaW50cz1mdW5jdGlvbigpe3ZhciByPXRoaXM7aWYoISh0aGlzLnkoKS5zY2FsZSBpbnN0YW5jZW9mIHNCLlF1YW50aXRhdGl2ZVNjYWxlJiZ0aGlzLngoKS5zY2FsZSBpbnN0YW5jZW9mIHNCLlF1YW50aXRhdGl2ZVNjYWxlKSlyZXR1cm57bGVmdDpbXSxyaWdodDpbXSx0b3A6W10sYm90dG9tOltdfTt2YXIgbj10aGlzLnkoKS5zY2FsZSxpPXRoaXMueCgpLnNjYWxlLG89e2xlZnQ6W10scmlnaHQ6W10sdG9wOltdLGJvdHRvbTpbXX0sYT1pLnNjYWxlKGkuZG9tYWluKClbMF0pLHM9aS5zY2FsZShpLmRvbWFpbigpWzFdKSxsPW4uc2NhbGUobi5kb21haW4oKVswXSksYz1uLnNjYWxlKG4uZG9tYWluKClbMV0pO3JldHVybiB0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaChmdW5jdGlvbih1KXtmb3IodmFyIGg9dS5kYXRhKCksZixwLGQsZyxfLHkseCxiLFM9MTtTPGgubGVuZ3RoO1MrKylfPXh8fGkuc2NhbGUoci54KCkuYWNjZXNzb3IoaFtTLTFdLFMtMSx1KSkseT1ifHxuLnNjYWxlKHIueSgpLmFjY2Vzc29yKGhbUy0xXSxTLTEsdSkpLHg9aS5zY2FsZShyLngoKS5hY2Nlc3NvcihoW1NdLFMsdSkpLGI9bi5zY2FsZShyLnkoKS5hY2Nlc3NvcihoW1NdLFMsdSkpLF88YT09YTw9eCYmKGY9YS1fLHA9eC1fLGc9Yi15LGQ9ZipnL3Asby5sZWZ0LnB1c2goe3g6YSx5Om4uaW52ZXJ0KHkrZCl9KSksXzxzPT1zPD14JiYoZj1zLV8scD14LV8sZz1iLXksZD1mKmcvcCxvLnJpZ2h0LnB1c2goe3g6cyx5Om4uaW52ZXJ0KHkrZCl9KSkseTxjPT1jPD1iJiYocD14LV8sZD1jLXksZz1iLXksZj1kKnAvZyxvLnRvcC5wdXNoKHt4OmkuaW52ZXJ0KF8rZikseTpjfSkpLHk8bD09bDw9YiYmKHA9eC1fLGQ9bC15LGc9Yi15LGY9ZCpwL2csby5ib3R0b20ucHVzaCh7eDppLmludmVydChfK2YpLHk6bH0pKX0pLG99LHQucHJvdG90eXBlLl9nZXRSZXNldFlGdW5jdGlvbj1mdW5jdGlvbigpe3ZhciByPXRoaXMueSgpLnNjYWxlLmRvbWFpbigpLG49TWF0aC5tYXgoclswXSxyWzFdKSxpPU1hdGgubWluKHJbMF0sclsxXSksbz1uPDAmJm58fGk+MCYmaXx8MCxhPXRoaXMueSgpLnNjYWxlLnNjYWxlKG8pO3JldHVybiBmdW5jdGlvbihzLGwsYyl7cmV0dXJuIGF9fSx0LnByb3RvdHlwZS5fZ2VuZXJhdGVEcmF3U3RlcHM9ZnVuY3Rpb24oKXt2YXIgcj1bXTtpZih0aGlzLl9hbmltYXRlT25OZXh0UmVuZGVyKCkpe3ZhciBuPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpO24uZD10aGlzLl9jb25zdHJ1Y3RMaW5lUHJvamVjdG9yKHhsLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSx0aGlzLl9nZXRSZXNldFlGdW5jdGlvbigpKSxyLnB1c2goe2F0dHJUb1Byb2plY3RvcjpuLGFuaW1hdG9yOnRoaXMuX2dldEFuaW1hdG9yKHdhdC5BbmltYXRvci5SRVNFVCl9KX1yZXR1cm4gci5wdXNoKHthdHRyVG9Qcm9qZWN0b3I6dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3Iod2F0LkFuaW1hdG9yLk1BSU4pfSkscn0sdC5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7dmFyIHI9ZS5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yLmNhbGwodGhpcyk7cmV0dXJuIE9iamVjdC5rZXlzKHIpLmZvckVhY2goZnVuY3Rpb24obil7aWYobiE9PSJkIil7dmFyIGk9cltuXTtyW25dPWZ1bmN0aW9uKG8sYSxzKXtyZXR1cm4gby5sZW5ndGg+MD9pKG9bMF0sYSxzKTpudWxsfX19KSxyfSx0LnByb3RvdHlwZS5lbnRpdGllc0F0PWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXMuZW50aXR5TmVhcmVzdEJ5WFRoZW5ZKHIpO3JldHVybiBuIT1udWxsP1tuXTpbXX0sdC5wcm90b3R5cGUuZW50aXR5TmVhcmVzdEJ5WFRoZW5ZPWZ1bmN0aW9uKHIpe2Zvcih2YXIgbj0xLzAsaT0xLzAsbyxhPXRoaXMuYm91bmRzKCkscz10aGlzLmVudGl0aWVzKCksbD1zLmxlbmd0aCxjPTA7YzxsO2MrKyl7dmFyIHU9c1tjXTtpZighIXQwLk1hdGgud2l0aGluKHUucG9zaXRpb24sYSkpe3ZhciBoPU1hdGguYWJzKHIueC11LnBvc2l0aW9uLngpLGY9TWF0aC5hYnMoci55LXUucG9zaXRpb24ueSk7KGg8bnx8aD09PW4mJmY8aSkmJihvPXUsbj1oLGk9Zil9fXJldHVybiBvfSx0LnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzPWZ1bmN0aW9uKCl7dmFyIHI9ZS5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycy5jYWxsKHRoaXMpO3JldHVybiByLmQ9dGhpcy5fY29uc3RydWN0TGluZVByb2plY3Rvcih4bC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSkseGwuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy55KCkpKSxyfSx0LnByb3RvdHlwZS5fY29uc3RydWN0TGluZVByb2plY3Rvcj1mdW5jdGlvbihyLG4pe3ZhciBpPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKG8sYSxzKXtyZXR1cm4gaS5fZDNMaW5lRmFjdG9yeShzLHIsbikobyl9fSx0LnByb3RvdHlwZS5fZDNMaW5lRmFjdG9yeT1mdW5jdGlvbihyLG4saSl7bj09PXZvaWQgMCYmKG49eGwuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpKSxpPT09dm9pZCAwJiYoaT14bC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSkpO3ZhciBvPWZ1bmN0aW9uKGEscyxsKXt2YXIgYz1uKGEscyxsKSx1PWkoYSxzLGwpO3JldHVybiB0MC5NYXRoLmlzVmFsaWROdW1iZXIoYykmJnQwLk1hdGguaXNWYWxpZE51bWJlcih1KX07cmV0dXJuIHZhLmxpbmUoKS54KGZ1bmN0aW9uKGEscyl7cmV0dXJuIG4oYSxzLHIpfSkueShmdW5jdGlvbihhLHMpe3JldHVybiBpKGEscyxyKX0pLmN1cnZlKHRoaXMuX2dldEN1cnZlRmFjdG9yeSgpKS5kZWZpbmVkKGZ1bmN0aW9uKGEscyl7cmV0dXJuIG8oYSxzLHIpfSl9LHQucHJvdG90eXBlLl9nZXRDdXJ2ZUZhY3Rvcnk9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLmN1cnZlKCk7aWYodHlwZW9mIHI9PSJzdHJpbmciKXt2YXIgbj1nS3Rbcl07cmV0dXJuIG49PW51bGw/Z0t0LmxpbmVhcjpufWVsc2UgcmV0dXJuIHJ9LHQucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3PWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxuPW5ldyB0MC5NYXA7cmV0dXJuIHRoaXMuZGF0YXNldHMoKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBvPWkuZGF0YSgpO2lmKCFyLl9jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZCYmIXIuX2Rvd25zYW1wbGluZ0VuYWJsZWQpe24uc2V0KGksW29dKTtyZXR1cm59Zm9yKHZhciBhPVtdLHM9by5sZW5ndGgsbD0wO2w8cztsKyspYVtsXT1sO3IuX2Nyb3BwZWRSZW5kZXJpbmdFbmFibGVkJiYoYT1yLl9maWx0ZXJDcm9wcGVkUmVuZGVyaW5nKGksYSkpLHIuX2Rvd25zYW1wbGluZ0VuYWJsZWQmJihhPXIuX2ZpbHRlckRvd25zYW1wbGluZyhpLGEpKSxyLl9jb2xsYXBzZURlbnNlVmVydGljYWxMaW5lc0VuYWJsZWQmJihhPXIuX2ZpbHRlckRlbnNlTGluZXMoaSxhKSk7Zm9yKHZhciBjPVtdLHU9YS5sZW5ndGgsbD0wO2w8dTtsKyspe3ZhciBoPWFbbF07Y1tsXT1vW2hdfW4uc2V0KGksW2NdKX0pLG59LHQucHJvdG90eXBlLl9maWx0ZXJDcm9wcGVkUmVuZGVyaW5nPWZ1bmN0aW9uKHIsbil7Zm9yKHZhciBpPXRoaXMsbz14bC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSksYT14bC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSkscz1yLmRhdGEoKSxsPVtdLGM9ZnVuY3Rpb24oeCxiKXtyZXR1cm4gdDAuTWF0aC5pblJhbmdlKHgsMCxpLndpZHRoKCkpJiZ0MC5NYXRoLmluUmFuZ2UoYiwwLGkuaGVpZ2h0KCkpfSx1PTA7dTxuLmxlbmd0aDt1Kyspe3ZhciBoPW8oc1tuW3VdXSxuW3VdLHIpLGY9YShzW25bdV1dLG5bdV0scikscD1jKGgsZik7aWYoIXAmJm5bdS0xXSE9bnVsbCYmc1tuW3UtMV1dIT1udWxsKXt2YXIgZD1vKHNbblt1LTFdXSxuW3UtMV0sciksZz1hKHNbblt1LTFdXSxuW3UtMV0scik7cD1wfHxjKGQsZyl9aWYoIXAmJm5bdSsxXSE9bnVsbCYmc1tuW3UrMV1dIT1udWxsKXt2YXIgXz1vKHNbblt1KzFdXSxuW3UrMV0scikseT1hKHNbblt1KzFdXSxuW3UrMV0scik7cD1wfHxjKF8seSl9cCYmbC5wdXNoKG5bdV0pfXJldHVybiBsfSx0LnByb3RvdHlwZS5fZmlsdGVyRG93bnNhbXBsaW5nPWZ1bmN0aW9uKHIsbil7aWYobi5sZW5ndGg9PT0wKXJldHVybltdO2Zvcih2YXIgaT1yLmRhdGEoKSxvPXhsLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxhPXhsLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueSgpKSxzPVtuWzBdXSxsPWZ1bmN0aW9uKGssTyl7dmFyIEQ9byhpW25ba11dLG5ba10sciksQj1hKGlbbltrXV0sbltrXSxyKSxJPW8oaVtuW2srMV1dLG5baysxXSxyKSxMPWEoaVtuW2srMV1dLG5baysxXSxyKTtpZihPPT09MS8wKXJldHVybiBNYXRoLmZsb29yKEQpPT09TWF0aC5mbG9vcihJKTt2YXIgUj1CKyhJLUQpKk87cmV0dXJuIE1hdGguZmxvb3IoTCk9PT1NYXRoLmZsb29yKFIpfSxjPTA7YzxuLmxlbmd0aC0xOyl7Zm9yKHZhciB1PW5bY10saD1vKGlbbltjXV0sbltjXSxyKSxmPWEoaVtuW2NdXSxuW2NdLHIpLHA9byhpW25bYysxXV0sbltjKzFdLHIpLGQ9YShpW25bYysxXV0sbltjKzFdLHIpLGc9TWF0aC5mbG9vcihoKT09PU1hdGguZmxvb3IocCk/MS8wOihkLWYpLyhwLWgpLF89bltjXSx5PWc9PT0xLzA/ZjpoLHg9XyxiPXksUz0hMDtjPG4ubGVuZ3RoLTEmJihTfHxsKGMsZykpOyl7YysrLFM9ITE7dmFyIEM9Zz09PTEvMD9hKGlbbltjXV0sbltjXSxyKTpvKGlbbltjXV0sbltjXSxyKTtDPmImJihiPUMseD1uW2NdKSxDPHkmJih5PUMsXz1uW2NdKX12YXIgUD1uW2NdO18hPT11JiZzLnB1c2goXykseCE9PV8mJnghPT11JiZzLnB1c2goeCksUCE9PXUmJlAhPT1fJiZQIT09eCYmcy5wdXNoKFApfXJldHVybiBzfSx0LnByb3RvdHlwZS5fZmlsdGVyRGVuc2VMaW5lcz1mdW5jdGlvbihyLG4pe2lmKG4ubGVuZ3RoPT09MClyZXR1cm5bXTt2YXIgaT1yLmRhdGEoKSxvPXhsLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxhPXhsLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueSgpKSxzPWZ1bmN0aW9uKGMpe3JldHVybiBvKGlbY10sYyxyKX0sbD1mdW5jdGlvbihjKXtyZXR1cm4gYShpW2NdLGMscil9O3JldHVybiB0aGlzLl9idWNrZXRCeVgocixuLHMsbCl9LHQucHJvdG90eXBlLl9idWNrZXRCeVg9ZnVuY3Rpb24ocixuLGksbyl7Zm9yKHZhciBhPVtdLHM9ci5kYXRhKCksbD1udWxsLGM9bi5sZW5ndGgsdT0wO3U8PWM7Kyt1KXt2YXIgaD1uW3VdO2lmKHNbaF0hPW51bGwpe3ZhciBmPU1hdGguZmxvb3IoaShoKSkscD1vKGgpO2w9PW51bGw/bD1uZXcgdDAuQnVja2V0KGgsZixwKTpsLmlzSW5CdWNrZXQoZik/bC5hZGRUb0J1Y2tldChwLGgpOihhLnB1c2guYXBwbHkoYSxsLmdldFVuaXF1ZUluZGljZXMoKSksbD1uZXcgdDAuQnVja2V0KGgsZixwKSl9fXJldHVybiBsIT1udWxsJiZhLnB1c2guYXBwbHkoYSxsLmdldFVuaXF1ZUluZGljZXMoKSksYX0sdH0oR1ZlLlhZUGxvdCk7bEIuTGluZT1XVmV9KTt2YXIgVGF0PUgoRWF0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShFYXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBZVmU9KGRlKCksVXQocGUpKSxjQj0oRXIoKSxVdChNcikpLGpWZT1ScygpLF80PUZlKCksTWF0PUh2KCksX0t0PW1hdCgpLFhWZT1VdSgpLHlLdD1uQigpLHVCPUlTKCksJFZlPVNhdCgpLE9zPW5zKCksS1ZlPWZ1bmN0aW9uKGUpe1lWZS5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KCl7dmFyIHI9ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiByLmFkZENsYXNzKCJhcmVhLXBsb3QiKSxyLnkwKDApLHIuYXR0cigiZmlsbC1vcGFjaXR5IiwuMjUpLHIuYXR0cigiZmlsbCIsbmV3IGpWZS5Db2xvcigpLnJhbmdlKClbMF0pLHIuX2xpbmVEcmF3ZXJzPW5ldyBfNC5NYXAscn1yZXR1cm4gdC5wcm90b3R5cGUueT1mdW5jdGlvbihyLG4pe2lmKHI9PW51bGwpcmV0dXJuIGUucHJvdG90eXBlLnkuY2FsbCh0aGlzKTtpZihuPT1udWxsP2UucHJvdG90eXBlLnkuY2FsbCh0aGlzLHIpOmUucHJvdG90eXBlLnkuY2FsbCh0aGlzLHIsbiksbiE9bnVsbCl7dmFyIGk9dGhpcy55MCgpLmFjY2Vzc29yO2khPW51bGwmJnRoaXMuX2JpbmRQcm9wZXJ0eSh0Ll9ZMF9LRVksaSxuKSx0aGlzLl91cGRhdGVZU2NhbGUoKX1yZXR1cm4gdGhpc30sdC5wcm90b3R5cGUueTA9ZnVuY3Rpb24ocil7aWYocj09bnVsbClyZXR1cm4gdGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQodC5fWTBfS0VZKTt2YXIgbj10aGlzLnkoKSxpPW4mJm4uc2NhbGU7cmV0dXJuIHRoaXMuX2JpbmRQcm9wZXJ0eSh0Ll9ZMF9LRVkscixpKSx0aGlzLl91cGRhdGVZU2NhbGUoKSx0aGlzLnJlbmRlcigpLHRoaXN9LHQucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGU9ZnVuY3Rpb24oKXtlLnByb3RvdHlwZS5fb25EYXRhc2V0VXBkYXRlLmNhbGwodGhpcyksdGhpcy5fdXBkYXRlWVNjYWxlKCl9LHQucHJvdG90eXBlLl9hZGREYXRhc2V0PWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXM7cmV0dXJuIHRoaXMuX2xpbmVEcmF3ZXJzLnNldChyLG5ldyBNYXQuUHJveHlEcmF3ZXIoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHlLdC5MaW5lU1ZHRHJhd2VyfSxmdW5jdGlvbihpKXtyZXR1cm4gbmV3IE1hdC5DYW52YXNEcmF3ZXIoaSx5S3QubWFrZUxpbmVDYW52YXNEcmF3U3RlcChmdW5jdGlvbigpe3ZhciBvPU9zLlBsb3QuX3NjYWxlZEFjY2Vzc29yKG4ueCgpKSxhPU9zLlBsb3QuX3NjYWxlZEFjY2Vzc29yKG4ueSgpKTtyZXR1cm4gbi5fZDNMaW5lRmFjdG9yeShyLG8sYSl9KSl9KSksZS5wcm90b3R5cGUuX2FkZERhdGFzZXQuY2FsbCh0aGlzLHIpLHRoaXN9LHQucHJvdG90eXBlLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQ9ZnVuY3Rpb24ocil7ZS5wcm90b3R5cGUuX2NyZWF0ZU5vZGVzRm9yRGF0YXNldC5jYWxsKHRoaXMscik7dmFyIG49dGhpcy5fbGluZURyYXdlcnMuZ2V0KHIpO3JldHVybiB0aGlzLnJlbmRlcmVyKCk9PT0ic3ZnIj9uLnVzZVNWRyh0aGlzLl9yZW5kZXJBcmVhKTpuLnVzZUNhbnZhcyh0aGlzLl9jYW52YXMpLG59LHQucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0Tm9kZXM9ZnVuY3Rpb24ocil7ZS5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXROb2Rlcy5jYWxsKHRoaXMsciksdGhpcy5fbGluZURyYXdlcnMuZ2V0KHIpLnJlbW92ZSgpfSx0LnByb3RvdHlwZS5fYWRkaXRpb25hbFBhaW50PWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxuPXRoaXMuX2dlbmVyYXRlTGluZURyYXdTdGVwcygpLGk9dGhpcy5fZ2V0RGF0YVRvRHJhdygpO3RoaXMuZGF0YXNldHMoKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBhPU9zLlBsb3QuYXBwbHlEcmF3U3RlcHMobixvKTtyLl9saW5lRHJhd2Vycy5nZXQobykuZHJhdyhpLmdldChvKSxhKX0pfSx0LnByb3RvdHlwZS5fZ2VuZXJhdGVMaW5lRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7dmFyIHI9W107aWYodGhpcy5fYW5pbWF0ZU9uTmV4dFJlbmRlcigpKXt2YXIgbj10aGlzLl9nZW5lcmF0ZUxpbmVBdHRyVG9Qcm9qZWN0b3IoKTtuLmQ9dGhpcy5fY29uc3RydWN0TGluZVByb2plY3RvcihPcy5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSksdGhpcy5fZ2V0UmVzZXRZRnVuY3Rpb24oKSksci5wdXNoKHthdHRyVG9Qcm9qZWN0b3I6bixhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcih1Qi5BbmltYXRvci5SRVNFVCl9KX1yZXR1cm4gci5wdXNoKHthdHRyVG9Qcm9qZWN0b3I6dGhpcy5fZ2VuZXJhdGVMaW5lQXR0clRvUHJvamVjdG9yKCksYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IodUIuQW5pbWF0b3IuTUFJTil9KSxyfSx0LnByb3RvdHlwZS5fZ2VuZXJhdGVMaW5lQXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCk7cmV0dXJuIHIuZD10aGlzLl9jb25zdHJ1Y3RMaW5lUHJvamVjdG9yKE9zLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxPcy5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSkpLHJ9LHQucHJvdG90eXBlLl9jcmVhdGVEcmF3ZXI9ZnVuY3Rpb24ocil7dmFyIG49dGhpcztyZXR1cm4gbmV3IFhWZS5Qcm94eURyYXdlcihmdW5jdGlvbigpe3JldHVybiBuZXcgX0t0LkFyZWFTVkdEcmF3ZXJ9LGZ1bmN0aW9uKGkpe3JldHVybiBuZXcgTWF0LkNhbnZhc0RyYXdlcihpLF9LdC5tYWtlQXJlYUNhbnZhc0RyYXdTdGVwKGZ1bmN0aW9uKCl7dmFyIG89bi5fY29vcmRpbmF0ZVByb2plY3RvcnMoKSxhPW9bMF0scz1vWzFdLGw9b1syXSxjPW4uX2NyZWF0ZURlZmluZWRQcm9qZWN0b3IoYSxzKTtyZXR1cm4gbi5fY3JlYXRlQXJlYUdlbmVyYXRvcihhLHMsbCxjLHIpfSxmdW5jdGlvbigpe3ZhciBvPW4uX2Nvb3JkaW5hdGVQcm9qZWN0b3JzKCksYT1vWzBdLHM9b1sxXSxsPW4uX2NyZWF0ZURlZmluZWRQcm9qZWN0b3IoYSxzKTtyZXR1cm4gbi5fY3JlYXRlVG9wTGluZUdlbmVyYXRvcihhLHMsbCxyKX0pKX0pfSx0LnByb3RvdHlwZS5fZ2VuZXJhdGVEcmF3U3RlcHM9ZnVuY3Rpb24oKXt2YXIgcj1bXTtpZih0aGlzLl9hbmltYXRlT25OZXh0UmVuZGVyKCkpe3ZhciBuPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpO24uZD10aGlzLl9jb25zdHJ1Y3RBcmVhUHJvamVjdG9yKE9zLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSx0aGlzLl9nZXRSZXNldFlGdW5jdGlvbigpLE9zLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueTAoKSkpLHIucHVzaCh7YXR0clRvUHJvamVjdG9yOm4sYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IodUIuQW5pbWF0b3IuUkVTRVQpfSl9cmV0dXJuIHIucHVzaCh7YXR0clRvUHJvamVjdG9yOnRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLGFuaW1hdG9yOnRoaXMuX2dldEFuaW1hdG9yKHVCLkFuaW1hdG9yLk1BSU4pfSkscn0sdC5wcm90b3R5cGUuX3VwZGF0ZVlTY2FsZT1mdW5jdGlvbigpe3ZhciByPXRoaXMuZ2V0RXh0ZW50c0ZvclByb3BlcnR5KCJ5MCIpLG49XzQuQXJyYXkuZmxhdHRlbihyKSxpPV80LkFycmF5LnVuaXEobiksbz1pLmxlbmd0aD09PTE/aVswXTpudWxsLGE9dGhpcy55KCkscz1hJiZhLnNjYWxlO3MhPW51bGwmJih0aGlzLl9jb25zdGFudEJhc2VsaW5lVmFsdWVQcm92aWRlciE9bnVsbCYmKHMucmVtb3ZlUGFkZGluZ0V4Y2VwdGlvbnNQcm92aWRlcih0aGlzLl9jb25zdGFudEJhc2VsaW5lVmFsdWVQcm92aWRlciksdGhpcy5fY29uc3RhbnRCYXNlbGluZVZhbHVlUHJvdmlkZXI9bnVsbCksbyE9bnVsbCYmKHRoaXMuX2NvbnN0YW50QmFzZWxpbmVWYWx1ZVByb3ZpZGVyPWZ1bmN0aW9uKCl7cmV0dXJuW29dfSxzLmFkZFBhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXIodGhpcy5fY29uc3RhbnRCYXNlbGluZVZhbHVlUHJvdmlkZXIpKSl9LHQucHJvdG90eXBlLl9nZXRSZXNldFlGdW5jdGlvbj1mdW5jdGlvbigpe3JldHVybiBPcy5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkwKCkpfSx0LnByb3RvdHlwZS5fY29vcmRpbmF0ZVByb2plY3RvcnM9ZnVuY3Rpb24oKXtyZXR1cm5bT3MuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLE9zLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueSgpKSxPcy5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkwKCkpXX0sdC5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycz1mdW5jdGlvbigpe3ZhciByPWUucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnMuY2FsbCh0aGlzKSxuPXRoaXMuX2Nvb3JkaW5hdGVQcm9qZWN0b3JzKCksaT1uWzBdLG89blsxXSxhPW5bMl07cmV0dXJuIHIuZD10aGlzLl9jb25zdHJ1Y3RBcmVhUHJvamVjdG9yKGksbyxhKSxyfSx0LnByb3RvdHlwZS5zZWxlY3Rpb25zPWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXM7aWYocj09PXZvaWQgMCYmKHI9dGhpcy5kYXRhc2V0cygpKSx0aGlzLnJlbmRlcmVyKCk9PT0iY2FudmFzIilyZXR1cm4gY0Iuc2VsZWN0QWxsKCk7dmFyIGk9ZS5wcm90b3R5cGUuc2VsZWN0aW9ucy5jYWxsKHRoaXMscikubm9kZXMoKSxvPXIubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBuLl9saW5lRHJhd2Vycy5nZXQoYSl9KS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIGEhPW51bGx9KTtyZXR1cm4gby5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBpLnB1c2guYXBwbHkoaSxhLmdldFZpc3VhbFByaW1pdGl2ZXMoKSl9KSxjQi5zZWxlY3RBbGwoaSl9LHQucHJvdG90eXBlLl9jb25zdHJ1Y3RBcmVhUHJvamVjdG9yPWZ1bmN0aW9uKHIsbixpKXt2YXIgbz10aGlzLGE9dGhpcy5fY3JlYXRlRGVmaW5lZFByb2plY3RvcihPcy5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSksT3MuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy55KCkpKTtyZXR1cm4gZnVuY3Rpb24ocyxsLGMpe3ZhciB1PW8uX2NyZWF0ZUFyZWFHZW5lcmF0b3IocixuLGksYSxjKTtyZXR1cm4gdShzKX19LHQucHJvdG90eXBlLl9jcmVhdGVEZWZpbmVkUHJvamVjdG9yPWZ1bmN0aW9uKHIsbil7cmV0dXJuIGZ1bmN0aW9uKGksbyxhKXt2YXIgcz1yKGksbyxhKSxsPW4oaSxvLGEpO3JldHVybiBfNC5NYXRoLmlzVmFsaWROdW1iZXIocykmJl80Lk1hdGguaXNWYWxpZE51bWJlcihsKX19LHQucHJvdG90eXBlLl9jcmVhdGVBcmVhR2VuZXJhdG9yPWZ1bmN0aW9uKHIsbixpLG8sYSl7dmFyIHM9dGhpcy5fZ2V0Q3VydmVGYWN0b3J5KCksbD1jQi5hcmVhKCkueChmdW5jdGlvbihjLHUpe3JldHVybiByKGMsdSxhKX0pLnkxKGZ1bmN0aW9uKGMsdSl7cmV0dXJuIG4oYyx1LGEpfSkueTAoZnVuY3Rpb24oYyx1KXtyZXR1cm4gaShjLHUsYSl9KS5jdXJ2ZShzKS5kZWZpbmVkKGZ1bmN0aW9uKGMsdSl7cmV0dXJuIG8oYyx1LGEpfSk7cmV0dXJuIGx9LHQucHJvdG90eXBlLl9jcmVhdGVUb3BMaW5lR2VuZXJhdG9yPWZ1bmN0aW9uKHIsbixpLG8pe3ZhciBhPXRoaXMuX2dldEN1cnZlRmFjdG9yeSgpLHM9Y0IubGluZSgpLngoZnVuY3Rpb24obCxjKXtyZXR1cm4gcihsLGMsbyl9KS55KGZ1bmN0aW9uKGwsYyl7cmV0dXJuIG4obCxjLG8pfSkuY3VydmUoYSkuZGVmaW5lZChmdW5jdGlvbihsLGMpe3JldHVybiBpKGwsYyxvKX0pO3JldHVybiBzfSx0Ll9ZMF9LRVk9InkwIix0fSgkVmUuTGluZSk7RWF0LkFyZWE9S1ZlfSk7dmFyIHk0PUgoR3U9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEd1LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgWlZlPShkZSgpLFV0KHBlKSksQWF0PShFcigpLFV0KE1yKSksQ2F0PXlsKCksSlZlPWtmKCksUVZlPUJ1KCksdFVlPUh2KCksZVVlPVV1KCksclVlPW9CKCksblVlPUNTKCksUGF0PVJzKCksdkt0PXhkKCksYmw9RmUoKSxMYXQ9TGYoKSx4S3Q9SVMoKSxoQj1ucygpLGlVZT1WdigpO0d1LkJhck9yaWVudGF0aW9uPUxhdC5tYWtlRW51bShbInZlcnRpY2FsIiwiaG9yaXpvbnRhbCJdKTtHdS5MYWJlbHNQb3NpdGlvbj1MYXQubWFrZUVudW0oWyJzdGFydCIsIm1pZGRsZSIsImVuZCIsIm91dHNpZGUiXSk7R3UuQmFyQWxpZ25tZW50PUxhdC5tYWtlRW51bShbInN0YXJ0IiwibWlkZGxlIiwiZW5kIl0pO3ZhciBJYXQ9ZnVuY3Rpb24oZSl7WlZlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocil7cj09PXZvaWQgMCYmKHI9InZlcnRpY2FsIik7dmFyIG49ZS5jYWxsKHRoaXMpfHx0aGlzO2lmKG4uX2xhYmVsRm9ybWF0dGVyPVFWZS5pZGVudGl0eSgpLG4uX2xhYmVsc0VuYWJsZWQ9ITEsbi5fbGFiZWxzUG9zaXRpb249R3UuTGFiZWxzUG9zaXRpb24uZW5kLG4uX2hpZGVCYXJzSWZBbnlBcmVUb29XaWRlPSEwLG4uX2JhckFsaWdubWVudD0ibWlkZGxlIixuLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3M9blVlLm1lbW9pemUob1VlKSxuLl9maXhlZEJhclBpeGVsVGhpY2tuZXNzPSEwLG4uYWRkQ2xhc3MoImJhci1wbG90IiksciE9PSJ2ZXJ0aWNhbCImJnIhPT0iaG9yaXpvbnRhbCIpdGhyb3cgbmV3IEVycm9yKHIrIiBpcyBub3QgYSB2YWxpZCBvcmllbnRhdGlvbiBmb3IgUGxvdHMuQmFyIik7cmV0dXJuIG4uX2lzVmVydGljYWw9cj09PSJ2ZXJ0aWNhbCIsbi5hbmltYXRvcigiYmFzZWxpbmUiLG5ldyBKVmUuTnVsbCksbi5hdHRyKCJmaWxsIixuZXcgUGF0LkNvbG9yKCkucmFuZ2UoKVswXSksbi5hdHRyKHQuX0JBUl9USElDS05FU1NfS0VZLGZ1bmN0aW9uKCl7cmV0dXJuIG4uX2JhclBpeGVsVGhpY2tuZXNzKCl9KSxuLl9sYWJlbENvbmZpZz1uZXcgYmwuTWFwLG4uX2Jhc2VsaW5lVmFsdWVQcm92aWRlcj1mdW5jdGlvbigpe3JldHVybltuLmJhc2VsaW5lVmFsdWUoKV19LG59cmV0dXJuIHQucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQ9ZnVuY3Rpb24ocixuLGkpe3JldHVybiBlLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0LmNhbGwodGhpcyxyLG4saSksdGhpcy5fdXBkYXRlRXh0ZW50cygpLHRoaXN9LHQucHJvdG90eXBlLng9ZnVuY3Rpb24ocixuKXtyZXR1cm4gcj09bnVsbD9lLnByb3RvdHlwZS54LmNhbGwodGhpcyk6KG49PW51bGw/ZS5wcm90b3R5cGUueC5jYWxsKHRoaXMscik6ZS5wcm90b3R5cGUueC5jYWxsKHRoaXMscixuKSx0aGlzLl91cGRhdGVUaGlja25lc3NBdHRyKCksdGhpcy5fdXBkYXRlTGVuZ3RoU2NhbGUoKSx0aGlzKX0sdC5wcm90b3R5cGUueT1mdW5jdGlvbihyLG4pe3JldHVybiByPT1udWxsP2UucHJvdG90eXBlLnkuY2FsbCh0aGlzKToobj09bnVsbD9lLnByb3RvdHlwZS55LmNhbGwodGhpcyxyKTplLnByb3RvdHlwZS55LmNhbGwodGhpcyxyLG4pLHRoaXMuX3VwZGF0ZUxlbmd0aFNjYWxlKCksdGhpcyl9LHQucHJvdG90eXBlLmxlbmd0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9pc1ZlcnRpY2FsP3RoaXMueSgpOnRoaXMueCgpfSx0LnByb3RvdHlwZS5wb3NpdGlvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9pc1ZlcnRpY2FsP3RoaXMueCgpOnRoaXMueSgpfSx0LnByb3RvdHlwZS5iYXJFbmQ9ZnVuY3Rpb24ocil7aWYocj09bnVsbClyZXR1cm4gdGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQodC5fQkFSX0VORF9LRVkpO3ZhciBuPXRoaXMucG9zaXRpb24oKSxpPW4mJm4uc2NhbGU7cmV0dXJuIHRoaXMuX2JpbmRQcm9wZXJ0eSh0Ll9CQVJfRU5EX0tFWSxyLGkpLHRoaXMuX3VwZGF0ZVRoaWNrbmVzc0F0dHIoKSx0aGlzLl91cGRhdGVMZW5ndGhTY2FsZSgpLHRoaXMucmVuZGVyKCksdGhpc30sdC5wcm90b3R5cGUuYmFyQWxpZ25tZW50PWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX2JhckFsaWdubWVudDoodGhpcy5fYmFyQWxpZ25tZW50PXIsdGhpcy5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZSgpLHRoaXMucmVuZGVyKCksdGhpcyl9LHQucHJvdG90eXBlLm9yaWVudGF0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzVmVydGljYWw/InZlcnRpY2FsIjoiaG9yaXpvbnRhbCJ9LHQucHJvdG90eXBlLl9jcmVhdGVEcmF3ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGVVZS5Qcm94eURyYXdlcihmdW5jdGlvbigpe3JldHVybiBuZXcgclVlLlJlY3RhbmdsZVNWR0RyYXdlcih0Ll9CQVJfQVJFQV9DTEFTUyl9LGZ1bmN0aW9uKHIpe3JldHVybiBuZXcgdFVlLlJlY3RhbmdsZUNhbnZhc0RyYXdlcihyKX0pfSx0LnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXtlLnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl9iYXNlbGluZT10aGlzLl9yZW5kZXJBcmVhLmFwcGVuZCgibGluZSIpLmNsYXNzZWQoImJhc2VsaW5lIiwhMCl9LHQucHJvdG90eXBlLmJhc2VsaW5lVmFsdWU9ZnVuY3Rpb24ocil7aWYocj09bnVsbCl7aWYodGhpcy5fYmFzZWxpbmVWYWx1ZSE9bnVsbClyZXR1cm4gdGhpcy5fYmFzZWxpbmVWYWx1ZTtpZighdGhpcy5fcHJvamVjdG9yc1JlYWR5KCkpcmV0dXJuIDA7dmFyIG49dGhpcy5sZW5ndGgoKS5zY2FsZTtyZXR1cm4gbiYmbiBpbnN0YW5jZW9mIFBhdC5UaW1lP25ldyBEYXRlKDApOjB9cmV0dXJuIHRoaXMuX2Jhc2VsaW5lVmFsdWU9cix0aGlzLl91cGRhdGVMZW5ndGhTY2FsZSgpLHRoaXMuX2NsZWFyQXR0clRvUHJvamVjdG9yQ2FjaGUoKSx0aGlzLnJlbmRlcigpLHRoaXN9LHQucHJvdG90eXBlLmFkZERhdGFzZXQ9ZnVuY3Rpb24ocil7cmV0dXJuIGUucHJvdG90eXBlLmFkZERhdGFzZXQuY2FsbCh0aGlzLHIpLHRoaXN9LHQucHJvdG90eXBlLl9hZGREYXRhc2V0PWZ1bmN0aW9uKHIpe3JldHVybiBlLnByb3RvdHlwZS5fYWRkRGF0YXNldC5jYWxsKHRoaXMsciksdGhpc30sdC5wcm90b3R5cGUucmVtb3ZlRGF0YXNldD1mdW5jdGlvbihyKXtyZXR1cm4gZS5wcm90b3R5cGUucmVtb3ZlRGF0YXNldC5jYWxsKHRoaXMsciksdGhpc30sdC5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXQ9ZnVuY3Rpb24ocil7cmV0dXJuIGUucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0LmNhbGwodGhpcyxyKSx0aGlzfSx0LnByb3RvdHlwZS5kYXRhc2V0cz1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD9lLnByb3RvdHlwZS5kYXRhc2V0cy5jYWxsKHRoaXMpOihlLnByb3RvdHlwZS5kYXRhc2V0cy5jYWxsKHRoaXMsciksdGhpcyl9LHQucHJvdG90eXBlLmxhYmVsc0VuYWJsZWQ9ZnVuY3Rpb24ocixuKXtyZXR1cm4gcj09bnVsbD90aGlzLl9sYWJlbHNFbmFibGVkOih0aGlzLl9sYWJlbHNFbmFibGVkPXIsbiE9bnVsbCYmKHRoaXMuX2xhYmVsc1Bvc2l0aW9uPW4pLHRoaXMuX2NsZWFyQXR0clRvUHJvamVjdG9yQ2FjaGUoKSx0aGlzLnJlbmRlcigpLHRoaXMpfSx0LnByb3RvdHlwZS5sYWJlbEZvcm1hdHRlcj1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9sYWJlbEZvcm1hdHRlcjoodGhpcy5fbGFiZWxGb3JtYXR0ZXI9cix0aGlzLl9jbGVhckF0dHJUb1Byb2plY3RvckNhY2hlKCksdGhpcy5yZW5kZXIoKSx0aGlzKX0sdC5wcm90b3R5cGUuX2NyZWF0ZU5vZGVzRm9yRGF0YXNldD1mdW5jdGlvbihyKXt2YXIgbj1lLnByb3RvdHlwZS5fY3JlYXRlTm9kZXNGb3JEYXRhc2V0LmNhbGwodGhpcyxyKSxpPXRoaXMuX3JlbmRlckFyZWEuYXBwZW5kKCJnIikuY2xhc3NlZCh0Ll9MQUJFTF9BUkVBX0NMQVNTLCEwKSxvPW5ldyBDYXQuU3ZnQ29udGV4dChpLm5vZGUoKSksYT1uZXcgQ2F0LkNhY2hlTWVhc3VyZXIobykscz1uZXcgQ2F0LldyaXRlcihhLG8pO3JldHVybiB0aGlzLl9sYWJlbENvbmZpZy5zZXQocix7bGFiZWxBcmVhOmksbWVhc3VyZXI6YSx3cml0ZXI6c30pLG59LHQucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0Tm9kZXM9ZnVuY3Rpb24ocil7ZS5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXROb2Rlcy5jYWxsKHRoaXMscik7dmFyIG49dGhpcy5fbGFiZWxDb25maWcuZ2V0KHIpO24hPW51bGwmJihuLmxhYmVsQXJlYS5yZW1vdmUoKSx0aGlzLl9sYWJlbENvbmZpZy5kZWxldGUocikpfSx0LnByb3RvdHlwZS5lbnRpdHlOZWFyZXN0PWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXMsaT1mdW5jdGlvbigpe3ZhciBvPW4uX2lzVmVydGljYWw/bi5fZ2V0RW50aXR5U3RvcmUoKS5lbnRpdHlOZWFyZXN0WChyKTpuLl9nZXRFbnRpdHlTdG9yZSgpLmVudGl0eU5lYXJlc3RZKHIpO3JldHVybiBvPT09dm9pZCAwP3ZvaWQgMDpuLl9saWdodHdlaWdodFBsb3RFbnRpdHlUb1Bsb3RFbnRpdHkobyl9O3JldHVybiB0aGlzLl9maXhlZEJhclBpeGVsVGhpY2tuZXNzP3RoaXMuX2NvbXB1dGVCYXJQaXhlbFRoaWNrbmVzcy5kb0xvY2tlZChpKTppKCl9LHQucHJvdG90eXBlLmVudGl0aWVzQXQ9ZnVuY3Rpb24ocil7dmFyIG49dGhpcyxpPWZ1bmN0aW9uKCl7cmV0dXJuIG4uX2VudGl0aWVzSW50ZXJzZWN0aW5nKHIueCxyLnkpfTtyZXR1cm4gdGhpcy5fZml4ZWRCYXJQaXhlbFRoaWNrbmVzcz90aGlzLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3MuZG9Mb2NrZWQoaSk6aSgpfSx0LnByb3RvdHlwZS5lbnRpdGllc0luQm91bmRzPWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXMsaT1mdW5jdGlvbigpe3JldHVybiBlLnByb3RvdHlwZS5lbnRpdGllc0luQm91bmRzLmNhbGwobixyKX07cmV0dXJuIHRoaXMuX2ZpeGVkQmFyUGl4ZWxUaGlja25lc3M/dGhpcy5fY29tcHV0ZUJhclBpeGVsVGhpY2tuZXNzLmRvTG9ja2VkKGkpOmkoKX0sdC5wcm90b3R5cGUuZW50aXRpZXNJblhCb3VuZHM9ZnVuY3Rpb24ocil7dmFyIG49dGhpcyxpPWZ1bmN0aW9uKCl7cmV0dXJuIGUucHJvdG90eXBlLmVudGl0aWVzSW5YQm91bmRzLmNhbGwobixyKX07cmV0dXJuIHRoaXMuX2ZpeGVkQmFyUGl4ZWxUaGlja25lc3M/dGhpcy5fY29tcHV0ZUJhclBpeGVsVGhpY2tuZXNzLmRvTG9ja2VkKGkpOmkoKX0sdC5wcm90b3R5cGUuZW50aXRpZXNJbllCb3VuZHM9ZnVuY3Rpb24ocil7dmFyIG49dGhpcyxpPWZ1bmN0aW9uKCl7cmV0dXJuIGUucHJvdG90eXBlLmVudGl0aWVzSW5ZQm91bmRzLmNhbGwobixyKX07cmV0dXJuIHRoaXMuX2ZpeGVkQmFyUGl4ZWxUaGlja25lc3M/dGhpcy5fY29tcHV0ZUJhclBpeGVsVGhpY2tuZXNzLmRvTG9ja2VkKGkpOmkoKX0sdC5wcm90b3R5cGUuX2VudGl0aWVzSW50ZXJzZWN0aW5nPWZ1bmN0aW9uKHIsbil7Zm9yKHZhciBpPVtdLG89dGhpcy5fZ2V0RW50aXR5U3RvcmUoKS5lbnRpdGllcygpLGE9by5sZW5ndGgscz0wO3M8YTtzKyspe3ZhciBsPW9bc107YmwuRE9NLmludGVyc2VjdHNCQm94KHIsbix0aGlzLl9lbnRpdHlCb3VuZHMobCkpJiZpLnB1c2godGhpcy5fbGlnaHR3ZWlnaHRQbG90RW50aXR5VG9QbG90RW50aXR5KGwpKX1yZXR1cm4gaX0sdC5wcm90b3R5cGUuX3VwZGF0ZUxlbmd0aFNjYWxlPWZ1bmN0aW9uKCl7aWYoISF0aGlzLl9wcm9qZWN0b3JzUmVhZHkoKSl7dmFyIHI9dGhpcy5sZW5ndGgoKS5zY2FsZTtyIGluc3RhbmNlb2Ygdkt0LlF1YW50aXRhdGl2ZVNjYWxlJiYoci5hZGRQYWRkaW5nRXhjZXB0aW9uc1Byb3ZpZGVyKHRoaXMuX2Jhc2VsaW5lVmFsdWVQcm92aWRlciksci5hZGRJbmNsdWRlZFZhbHVlc1Byb3ZpZGVyKHRoaXMuX2Jhc2VsaW5lVmFsdWVQcm92aWRlcikpfX0sdC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHk9ZnVuY3Rpb24oKXt2YXIgcj10aGlzO3JldHVybiB0aGlzLl9iYXJQaXhlbFRoaWNrbmVzcygpLHRoaXMuX2NvbXB1dGVCYXJQaXhlbFRoaWNrbmVzcy5kb0xvY2tlZChmdW5jdGlvbigpe3JldHVybiBlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseS5jYWxsKHIpfSl9LHQucHJvdG90eXBlLl9hZGRpdGlvbmFsUGFpbnQ9ZnVuY3Rpb24ocil7dmFyIG49dGhpcyxpPXRoaXMubGVuZ3RoKCkuc2NhbGUsbz1pLnNjYWxlKHRoaXMuYmFzZWxpbmVWYWx1ZSgpKSxhPXt4MTp0aGlzLl9pc1ZlcnRpY2FsPzA6byx5MTp0aGlzLl9pc1ZlcnRpY2FsP286MCx4Mjp0aGlzLl9pc1ZlcnRpY2FsP3RoaXMud2lkdGgoKTpvLHkyOnRoaXMuX2lzVmVydGljYWw/bzp0aGlzLmhlaWdodCgpfTt0aGlzLl9nZXRBbmltYXRvcigiYmFzZWxpbmUiKS5hbmltYXRlKHRoaXMuX2Jhc2VsaW5lLGEpLHRoaXMuZGF0YXNldHMoKS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3JldHVybiBuLl9sYWJlbENvbmZpZy5nZXQocykubGFiZWxBcmVhLnNlbGVjdEFsbCgiZyIpLnJlbW92ZSgpfSksdGhpcy5fbGFiZWxzRW5hYmxlZCYmYmwuV2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gbi5fZHJhd0xhYmVscygpfSxyKX0sdC5wcm90b3R5cGUuZ2V0RXh0ZW50c0ZvclByb3BlcnR5PWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXMsaT1lLnByb3RvdHlwZS5nZXRFeHRlbnRzRm9yUHJvcGVydHkuY2FsbCh0aGlzLHIpLG87aWYocj09PSJ4IiYmdGhpcy5faXNWZXJ0aWNhbClvPXRoaXMueCgpO2Vsc2UgaWYocj09PSJ5IiYmIXRoaXMuX2lzVmVydGljYWwpbz10aGlzLnkoKTtlbHNlIHJldHVybiBpO2lmKCEobyYmby5zY2FsZSYmby5zY2FsZSBpbnN0YW5jZW9mIHZLdC5RdWFudGl0YXRpdmVTY2FsZSkpcmV0dXJuIGk7dmFyIGE9by5zY2FsZSxzPXRoaXMuX2JhclBpeGVsVGhpY2tuZXNzKCk7cmV0dXJuIGk9aS5tYXAoZnVuY3Rpb24obCl7cmV0dXJuIEFhdC5leHRlbnQoW2EuaW52ZXJ0KG4uX2dldFBvc2l0aW9uQXR0cihhLnNjYWxlKGxbMF0pLHMpKSxhLmludmVydChuLl9nZXRQb3NpdGlvbkF0dHIoYS5zY2FsZShsWzBdKSxzKStzKSxhLmludmVydChuLl9nZXRQb3NpdGlvbkF0dHIoYS5zY2FsZShsWzFdKSxzKSksYS5pbnZlcnQobi5fZ2V0UG9zaXRpb25BdHRyKGEuc2NhbGUobFsxXSkscykrcyldKX0pLGl9LHQucHJvdG90eXBlLl9nZXRQb3NpdGlvbkF0dHI9ZnVuY3Rpb24ocixuKXtzd2l0Y2godGhpcy5faXNWZXJ0aWNhbHx8KHItPW4sbio9LTEpLHRoaXMuX2JhckFsaWdubWVudCl7Y2FzZSJzdGFydCI6cmV0dXJuIHI7Y2FzZSJlbmQiOnJldHVybiByLW47Y2FzZSJtaWRkbGUiOmRlZmF1bHQ6cmV0dXJuIHItbi8yfX0sdC5wcm90b3R5cGUuX2RyYXdMYWJlbHM9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLG49dGhpcy5fZ2V0RGF0YVRvRHJhdygpLGk9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksbz10aGlzLmRhdGFzZXRzKCkuc29tZShmdW5jdGlvbihhKXtyZXR1cm4gbi5nZXQoYSkuc29tZShmdW5jdGlvbihzLGwpe3JldHVybiBzPT1udWxsPyExOnIuX2RyYXdMYWJlbChzLGwsYSxpKX0pfSk7dGhpcy5faGlkZUJhcnNJZkFueUFyZVRvb1dpZGUmJm8mJnRoaXMuZGF0YXNldHMoKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiByLl9sYWJlbENvbmZpZy5nZXQoYSkubGFiZWxBcmVhLnNlbGVjdEFsbCgiZyIpLnJlbW92ZSgpfSl9LHQucHJvdG90eXBlLl9kcmF3TGFiZWw9ZnVuY3Rpb24ocixuLGksbyl7dmFyIGE9dGhpcy5fbGFiZWxDb25maWcuZ2V0KGkpLHM9YS5sYWJlbEFyZWEsbD1hLm1lYXN1cmVyLGM9YS53cml0ZXIsdT10aGlzLmxlbmd0aCgpLmFjY2Vzc29yLGg9dShyLG4saSksZj10aGlzLmxlbmd0aCgpLnNjYWxlLHA9ZiE9bnVsbD9mLnNjYWxlKGgpOmgsZD1mIT1udWxsP2Yuc2NhbGUodGhpcy5iYXNlbGluZVZhbHVlKCkpOnRoaXMuYmFzZWxpbmVWYWx1ZSgpLGc9e3g6by54KHIsbixpKSx5Om8ueShyLG4saSl9LF89e3dpZHRoOm8ud2lkdGgocixuLGkpLGhlaWdodDpvLmhlaWdodChyLG4saSl9LHk9dGhpcy5fbGFiZWxGb3JtYXR0ZXIoaCxyLG4saSkseD1sLm1lYXN1cmUoeSksYj10aGlzLl9zaG91bGRTaG93TGFiZWxPbkJhcihnLF8seCksUz10aGlzLl9pc1ZlcnRpY2FsP3A8PWQ6cDxkLEM9dGhpcy5fY2FsY3VsYXRlTGFiZWxQcm9wZXJ0aWVzKGcsXyx4LGIsUyksUD1DLmNvbnRhaW5lckRpbWVuc2lvbnMsaz1DLmxhYmVsQ29udGFpbmVyT3JpZ2luLE89Qy5sYWJlbE9yaWdpbixEPUMuYWxpZ25tZW50LEI9by5maWxsKHIsbixpKSxJPXRoaXMuX2NyZWF0ZUxhYmVsQ29udGFpbmVyKHMsayxPLHgsYixCKSxMPXt4QWxpZ246RC54LHlBbGlnbjpELnl9O2Mud3JpdGUoeSxQLndpZHRoLFAuaGVpZ2h0LEwsSS5ub2RlKCkpO3ZhciBSPXRoaXMuX2lzVmVydGljYWw/Xy53aWR0aDx4LndpZHRoOl8uaGVpZ2h0PHguaGVpZ2h0O3JldHVybiBSfSx0LnByb3RvdHlwZS5fc2hvdWxkU2hvd0xhYmVsT25CYXI9ZnVuY3Rpb24ocixuLGkpe2lmKHRoaXMuX2xhYmVsc1Bvc2l0aW9uPT09R3UuTGFiZWxzUG9zaXRpb24ub3V0c2lkZSlyZXR1cm4hMTt2YXIgbz10aGlzLl9pc1ZlcnRpY2FsP3IueTpyLngsYT10aGlzLl9pc1ZlcnRpY2FsP24uaGVpZ2h0Om4ud2lkdGgscz10aGlzLl9pc1ZlcnRpY2FsP3RoaXMuaGVpZ2h0KCk6dGhpcy53aWR0aCgpLGw9dGhpcy5faXNWZXJ0aWNhbD9pLmhlaWdodDppLndpZHRoLGM9bythLHU9YTtyZXR1cm4gYz5zP3U9cy1vOm88MCYmKHU9YyksbCt0Ll9MQUJFTF9NQVJHSU5fSU5TSURFX0JBUjw9dX0sdC5wcm90b3R5cGUuX2NhbGN1bGF0ZUxhYmVsUHJvcGVydGllcz1mdW5jdGlvbihyLG4saSxvLGEpe3ZhciBzPXRoaXMsbD10aGlzLl9pc1ZlcnRpY2FsP3IueTpyLngsYz10aGlzLl9pc1ZlcnRpY2FsP24uaGVpZ2h0Om4ud2lkdGgsdT10aGlzLl9pc1ZlcnRpY2FsP2kuaGVpZ2h0Omkud2lkdGgsaD0iY2VudGVyIixmPWMscD1sLGQ9bCxnPWZ1bmN0aW9uKF8pe3N3aXRjaChfKXtjYXNlInRvcExlZnQiOmg9cy5faXNWZXJ0aWNhbD8idG9wIjoibGVmdCIscCs9dC5fTEFCRUxfTUFSR0lOX0lOU0lERV9CQVIsZCs9dC5fTEFCRUxfTUFSR0lOX0lOU0lERV9CQVI7cmV0dXJuO2Nhc2UiY2VudGVyIjpkKz0oYyt1KS8yO3JldHVybjtjYXNlImJvdHRvbVJpZ2h0IjpoPXMuX2lzVmVydGljYWw/ImJvdHRvbSI6InJpZ2h0IixwLT10Ll9MQUJFTF9NQVJHSU5fSU5TSURFX0JBUixkKz1mLXQuX0xBQkVMX01BUkdJTl9JTlNJREVfQkFSLXU7cmV0dXJufX07aWYobylzd2l0Y2godGhpcy5fbGFiZWxzUG9zaXRpb24pe2Nhc2UgR3UuTGFiZWxzUG9zaXRpb24uc3RhcnQ6ZyhhPyJib3R0b21SaWdodCI6InRvcExlZnQiKTticmVhaztjYXNlIEd1LkxhYmVsc1Bvc2l0aW9uLm1pZGRsZTpnKCJjZW50ZXIiKTticmVhaztjYXNlIEd1LkxhYmVsc1Bvc2l0aW9uLmVuZDpnKGE/InRvcExlZnQiOiJib3R0b21SaWdodCIpO2JyZWFrfWVsc2UgYT8oaD10aGlzLl9pc1ZlcnRpY2FsPyJ0b3AiOiJsZWZ0IixmPWMrdC5fTEFCRUxfTUFSR0lOX0lOU0lERV9CQVIrdSxwLT10Ll9MQUJFTF9NQVJHSU5fSU5TSURFX0JBUit1LGQtPXQuX0xBQkVMX01BUkdJTl9JTlNJREVfQkFSK3UpOihoPXRoaXMuX2lzVmVydGljYWw/ImJvdHRvbSI6InJpZ2h0IixmPWMrdC5fTEFCRUxfTUFSR0lOX0lOU0lERV9CQVIrdSxkKz1jK3QuX0xBQkVMX01BUkdJTl9JTlNJREVfQkFSKTtyZXR1cm57Y29udGFpbmVyRGltZW5zaW9uczp7d2lkdGg6dGhpcy5faXNWZXJ0aWNhbD9uLndpZHRoOmYsaGVpZ2h0OnRoaXMuX2lzVmVydGljYWw/ZjpuLmhlaWdodH0sbGFiZWxDb250YWluZXJPcmlnaW46e3g6dGhpcy5faXNWZXJ0aWNhbD9yLng6cCx5OnRoaXMuX2lzVmVydGljYWw/cDpyLnl9LGxhYmVsT3JpZ2luOnt4OnRoaXMuX2lzVmVydGljYWw/ci54K24ud2lkdGgvMi1pLndpZHRoLzI6ZCx5OnRoaXMuX2lzVmVydGljYWw/ZDpyLnkrbi5oZWlnaHQvMi1pLmhlaWdodC8yfSxhbGlnbm1lbnQ6e3g6dGhpcy5faXNWZXJ0aWNhbD8iY2VudGVyIjpoLHk6dGhpcy5faXNWZXJ0aWNhbD9oOiJjZW50ZXIifX19LHQucHJvdG90eXBlLl9jcmVhdGVMYWJlbENvbnRhaW5lcj1mdW5jdGlvbihyLG4saSxvLGEscyl7dmFyIGw9ci5hcHBlbmQoImciKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIituLngrIiwgIituLnkrIikiKTtpZihhKXtsLmNsYXNzZWQoIm9uLWJhci1sYWJlbCIsITApO3ZhciBjPWJsLkNvbG9yLmNvbnRyYXN0KCJ3aGl0ZSIscykqMS42PGJsLkNvbG9yLmNvbnRyYXN0KCJibGFjayIscyk7bC5jbGFzc2VkKGM/ImRhcmstbGFiZWwiOiJsaWdodC1sYWJlbCIsITApfWVsc2UgbC5jbGFzc2VkKCJvZmYtYmFyLWxhYmVsIiwhMCk7cmV0dXJuIGx9LHQucHJvdG90eXBlLl9nZW5lcmF0ZURyYXdTdGVwcz1mdW5jdGlvbigpe3ZhciByPVtdO2lmKHRoaXMuX2FuaW1hdGVPbk5leHRSZW5kZXIoKSl7dmFyIG49dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksaT10aGlzLmxlbmd0aCgpLnNjYWxlLG89aS5zY2FsZSh0aGlzLmJhc2VsaW5lVmFsdWUoKSksYT10aGlzLl9pc1ZlcnRpY2FsPyJ5IjoieCIscz10aGlzLl9pc1ZlcnRpY2FsPyJoZWlnaHQiOiJ3aWR0aCI7blthXT1mdW5jdGlvbigpe3JldHVybiBvfSxuW3NdPWZ1bmN0aW9uKCl7cmV0dXJuIDB9LHIucHVzaCh7YXR0clRvUHJvamVjdG9yOm4sYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoeEt0LkFuaW1hdG9yLlJFU0VUKX0pfXJldHVybiByLnB1c2goe2F0dHJUb1Byb2plY3Rvcjp0aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcih4S3QuQW5pbWF0b3IuTUFJTil9KSxyfSx0LnByb3RvdHlwZS5fZ2VuZXJhdGVBdHRyVG9Qcm9qZWN0b3I9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLG49ZS5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yLmNhbGwodGhpcyksaT10aGlzLmxlbmd0aCgpLnNjYWxlLG89aS5zY2FsZSh0aGlzLmJhc2VsaW5lVmFsdWUoKSksYT10aGlzLl9pc1ZlcnRpY2FsPyJ5IjoieCIscz10aGlzLl9pc1ZlcnRpY2FsPyJ4IjoieSIsbD1oQi5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnBvc2l0aW9uKCkpLGM9aEIuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5sZW5ndGgoKSksdT1mdW5jdGlvbihkLGcsXyl7cmV0dXJuIE1hdGguYWJzKG8tYyhkLGcsXykpfSxoPW5bdC5fQkFSX1RISUNLTkVTU19LRVldLGY9bi5nYXAscD1mPT1udWxsP2g6ZnVuY3Rpb24oZCxnLF8pe3ZhciB5PWgoZCxnLF8pO3JldHVybiB5PHQuX0JBUl9HQVBMRVNTX1RIUkVTSE9MRF9QWD95OnktZihkLGcsXyl9O3JldHVybiBuLndpZHRoPXRoaXMuX2lzVmVydGljYWw/cDp1LG4uaGVpZ2h0PXRoaXMuX2lzVmVydGljYWw/dTpwLG5bYV09ZnVuY3Rpb24oZCxnLF8pe3ZhciB5PWMoZCxnLF8pO3JldHVybiB5Pm8/bzp5fSxuW3NdPWZ1bmN0aW9uKGQsZyxfKXtyZXR1cm4gci5fZ2V0UG9zaXRpb25BdHRyKGwoZCxnLF8pLGgoZCxnLF8pKX0sbn0sdC5wcm90b3R5cGUuX3VwZGF0ZVRoaWNrbmVzc0F0dHI9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLG49dGhpcy5wb3NpdGlvbigpLGk9dGhpcy5iYXJFbmQoKTtuIT1udWxsJiZpIT1udWxsPyh0aGlzLl9maXhlZEJhclBpeGVsVGhpY2tuZXNzPSExLHRoaXMuYXR0cih0Ll9CQVJfVEhJQ0tORVNTX0tFWSxmdW5jdGlvbihvLGEscyl7dmFyIGw9bi5hY2Nlc3NvcihvLGEscyksYz1pLmFjY2Vzc29yKG8sYSxzKTtyZXR1cm4gbD1uLnNjYWxlP24uc2NhbGUuc2NhbGUobCk6bCxjPWkuc2NhbGU/aS5zY2FsZS5zY2FsZShjKTpjLE1hdGguYWJzKGMtbCl9KSk6KHRoaXMuX2ZpeGVkQmFyUGl4ZWxUaGlja25lc3M9ITAsdGhpcy5hdHRyKHQuX0JBUl9USElDS05FU1NfS0VZLGZ1bmN0aW9uKCl7cmV0dXJuIHIuX2JhclBpeGVsVGhpY2tuZXNzKCl9KSl9LHQucHJvdG90eXBlLl9iYXJQaXhlbFRoaWNrbmVzcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9maXhlZEJhclBpeGVsVGhpY2tuZXNzJiZ0aGlzLl9wcm9qZWN0b3JzUmVhZHkoKT90aGlzLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3ModGhpcy5wb3NpdGlvbigpLHRoaXMuZGF0YXNldHMoKSx0aGlzLl9pc1ZlcnRpY2FsP3RoaXMud2lkdGgoKTp0aGlzLmhlaWdodCgpKTowfSx0LnByb3RvdHlwZS5lbnRpdGllcz1mdW5jdGlvbihyKXtpZihyPT09dm9pZCAwJiYocj10aGlzLmRhdGFzZXRzKCkpLCF0aGlzLl9wcm9qZWN0b3JzUmVhZHkoKSlyZXR1cm5bXTt2YXIgbj1lLnByb3RvdHlwZS5lbnRpdGllcy5jYWxsKHRoaXMscik7cmV0dXJuIG59LHQucHJvdG90eXBlLl9lbnRpdHlCb3VuZHM9ZnVuY3Rpb24ocil7dmFyIG49ci5kYXR1bSxpPXIuaW5kZXgsbz1yLmRhdGFzZXQ7cmV0dXJuIHRoaXMuX3BpeGVsQm91bmRzKG4saSxvKX0sdC5wcm90b3R5cGUuX3BpeGVsQm91bmRzPWZ1bmN0aW9uKHIsbixpKXt2YXIgbz10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKTtyZXR1cm57eDpvLngocixuLGkpLHk6by55KHIsbixpKSx3aWR0aDpvLndpZHRoKHIsbixpKSxoZWlnaHQ6by5oZWlnaHQocixuLGkpfX0sdC5wcm90b3R5cGUuX3BpeGVsUG9pbnQ9ZnVuY3Rpb24ocixuLGkpe3ZhciBvPXRoaXMuX3BpeGVsQm91bmRzKHIsbixpKSxhPSh0aGlzLl9pc1ZlcnRpY2FsP2hCLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueSgpKTpoQi5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSkpKHIsbixpKSxzPSh0aGlzLl9pc1ZlcnRpY2FsP3RoaXMueSgpLnNjYWxlOnRoaXMueCgpLnNjYWxlKS5zY2FsZSh0aGlzLmJhc2VsaW5lVmFsdWUoKSk7cmV0dXJuIHRoaXMuX3BpeGVsUG9pbnRCYXIoYSxzLG8pfSx0LnByb3RvdHlwZS5fcGl4ZWxQb2ludEJhcj1mdW5jdGlvbihyLG4saSl7dmFyIG8sYTtyZXR1cm4gdGhpcy5faXNWZXJ0aWNhbD8obz1pLngraS53aWR0aC8yLGE9cjw9bj9pLnk6aS55K2kuaGVpZ2h0KToobz1yPj1uP2kueCtpLndpZHRoOmkueCxhPWkueStpLmhlaWdodC8yKSx7eDpvLHk6YX19LHQucHJvdG90eXBlLl91bmluc3RhbGxTY2FsZUZvcktleT1mdW5jdGlvbihyLG4pe2UucHJvdG90eXBlLl91bmluc3RhbGxTY2FsZUZvcktleS5jYWxsKHRoaXMscixuKX0sdC5wcm90b3R5cGUuX2dldERhdGFUb0RyYXc9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLG49bmV3IGJsLk1hcCxpPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLG89dGhpcy53aWR0aCgpLGE9dGhpcy5oZWlnaHQoKTtyZXR1cm4gdGhpcy5kYXRhc2V0cygpLmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIGw9cy5kYXRhKCkubWFwKGZ1bmN0aW9uKGMsdSl7dmFyIGg9ci5faXNEYXR1bU9uU2NyZWVuKGksbyxhLGMsdSxzKTtyZXR1cm4gaD9jOm51bGx9KTtuLnNldChzLGwpfSksbn0sdC5wcm90b3R5cGUuX2lzRGF0dW1PblNjcmVlbj1mdW5jdGlvbihyLG4saSxvLGEscyl7dmFyIGw9ci54KG8sYSxzKSxjPXIueShvLGEscyksdT1yLndpZHRoKG8sYSxzKSxoPXIuaGVpZ2h0KG8sYSxzKSxmPWJsLk1hdGguaXNWYWxpZE51bWJlcihsKSYmYmwuTWF0aC5pc1ZhbGlkTnVtYmVyKGMpJiZibC5NYXRoLmlzVmFsaWROdW1iZXIodSkmJmJsLk1hdGguaXNWYWxpZE51bWJlcihoKTtyZXR1cm4gZj9ibC5NYXRoLmJvdW5kc0ludGVyc2VjdHMobCxjLHUsaCwwLDAsbixpKTohMX0sdC5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcztlLnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGUuY2FsbCh0aGlzKSx0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaChmdW5jdGlvbihuKXtyZXR1cm4gci5fbGFiZWxDb25maWcuZ2V0KG4pLm1lYXN1cmVyLnJlc2V0KCl9KX0sdC5fQkFSX1RISUNLTkVTU19SQVRJTz0uOTUsdC5fQkFSX0dBUExFU1NfVEhSRVNIT0xEX1BYPTMsdC5fU0lOR0xFX0JBUl9ESU1FTlNJT05fUkFUSU89LjQsdC5fQkFSX0FSRUFfQ0xBU1M9ImJhci1hcmVhIix0Ll9CQVJfRU5EX0tFWT0iYmFyRW5kIix0Ll9CQVJfVEhJQ0tORVNTX0tFWT0id2lkdGgiLHQuX0xBQkVMX0FSRUFfQ0xBU1M9ImJhci1sYWJlbC10ZXh0LWFyZWEiLHQuX0xBQkVMX01BUkdJTl9JTlNJREVfQkFSPTEwLHR9KGlVZS5YWVBsb3QpO0d1LkJhcj1JYXQ7ZnVuY3Rpb24gb1VlKGUsdCxyKXt2YXIgbixpPWUuc2NhbGU7aWYoaSBpbnN0YW5jZW9mIFBhdC5DYXRlZ29yeSluPWkucmFuZ2VCYW5kKCk7ZWxzZXt2YXIgbz1lLmFjY2Vzc29yLGE9QWF0LnNldChibC5BcnJheS5mbGF0dGVuKHQubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBjLmRhdGEoKS5tYXAoZnVuY3Rpb24odSxoKXtyZXR1cm4gbyh1LGgsYyl9KS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHUhPW51bGx9KS5tYXAoZnVuY3Rpb24odSl7cmV0dXJuIHUudmFsdWVPZigpfSl9KSkpLnZhbHVlcygpLm1hcChmdW5jdGlvbihjKXtyZXR1cm4rY30pO2Euc29ydChmdW5jdGlvbihjLHUpe3JldHVybiBjLXV9KTt2YXIgcz1hLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gaS5zY2FsZShjKX0pLGw9QWF0LnBhaXJzKHMpO249YmwuTWF0aC5taW4obCxmdW5jdGlvbihjLHUpe3JldHVybiBNYXRoLmFicyhjWzFdLWNbMF0pfSxyKklhdC5fU0lOR0xFX0JBUl9ESU1FTlNJT05fUkFUSU8pLG4qPUlhdC5fQkFSX1RISUNLTkVTU19SQVRJT31yZXR1cm4gbn19KTt2YXIgd0t0PUgoa2F0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShrYXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBhVWU9KGRlKCksVXQocGUpKSxzVWU9UnMoKSxsVWU9RmUoKSxiS3Q9eTQoKSxjVWU9bnMoKSx1VWU9ZnVuY3Rpb24oZSl7YVVlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocil7cj09PXZvaWQgMCYmKHI9InZlcnRpY2FsIik7dmFyIG49ZS5jYWxsKHRoaXMscil8fHRoaXM7cmV0dXJuIG4uX2NsdXN0ZXJPZmZzZXRzPW5ldyBsVWUuTWFwLG59cmV0dXJuIHQucHJvdG90eXBlLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3Rvcj1mdW5jdGlvbigpe3ZhciByPXRoaXMsbj1lLnByb3RvdHlwZS5fZ2VuZXJhdGVBdHRyVG9Qcm9qZWN0b3IuY2FsbCh0aGlzKSxpPXRoaXMuX21ha2VJbm5lclNjYWxlKCksbz1mdW5jdGlvbihsLGMpe3JldHVybiBpLnJhbmdlQmFuZCgpfTtuLndpZHRoPXRoaXMuX2lzVmVydGljYWw/bzpuLndpZHRoLG4uaGVpZ2h0PXRoaXMuX2lzVmVydGljYWw/bi5oZWlnaHQ6bzt2YXIgYT1uLngscz1uLnk7cmV0dXJuIG4ueD10aGlzLl9pc1ZlcnRpY2FsP2Z1bmN0aW9uKGwsYyx1KXtyZXR1cm4gYShsLGMsdSkrci5fY2x1c3Rlck9mZnNldHMuZ2V0KHUpfTpmdW5jdGlvbihsLGMsdSl7cmV0dXJuIGEobCxjLHUpfSxuLnk9dGhpcy5faXNWZXJ0aWNhbD9mdW5jdGlvbihsLGMsdSl7cmV0dXJuIHMobCxjLHUpfTpmdW5jdGlvbihsLGMsdSl7cmV0dXJuIHMobCxjLHUpK3IuX2NsdXN0ZXJPZmZzZXRzLmdldCh1KX0sbn0sdC5wcm90b3R5cGUuX3VwZGF0ZUNsdXN0ZXJQb3NpdGlvbj1mdW5jdGlvbigpe3ZhciByPXRoaXMsbj10aGlzLl9tYWtlSW5uZXJTY2FsZSgpO3RoaXMuZGF0YXNldHMoKS5mb3JFYWNoKGZ1bmN0aW9uKGksbyl7cmV0dXJuIHIuX2NsdXN0ZXJPZmZzZXRzLnNldChpLG4uc2NhbGUoU3RyaW5nKG8pKS1uLnJhbmdlQmFuZCgpLzIpfSl9LHQucHJvdG90eXBlLl9tYWtlSW5uZXJTY2FsZT1mdW5jdGlvbigpe3ZhciByPW5ldyBzVWUuQ2F0ZWdvcnk7ci5kb21haW4odGhpcy5kYXRhc2V0cygpLm1hcChmdW5jdGlvbihpLG8pe3JldHVybiBTdHJpbmcobyl9KSk7dmFyIG49Y1VlLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuYXR0cihiS3QuQmFyLl9CQVJfVEhJQ0tORVNTX0tFWSkpO3JldHVybiByLnJhbmdlKFswLG4obnVsbCwwLG51bGwpXSkscn0sdC5wcm90b3R5cGUuX2dldERhdGFUb0RyYXc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdXBkYXRlQ2x1c3RlclBvc2l0aW9uKCksZS5wcm90b3R5cGUuX2dldERhdGFUb0RyYXcuY2FsbCh0aGlzKX0sdH0oYkt0LkJhcik7a2F0LkNsdXN0ZXJlZEJhcj11VWV9KTt2YXIgU0t0PUgoTmF0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShOYXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBoVWU9KGRlKCksVXQocGUpKSx2ND0oRXIoKSxVdChNcikpLFJhdD15bCgpLGZVZT1rZigpLHBVZT1CdSgpLGRVZT1ScygpLFV2PUZlKCksbVVlPWZhdCgpLGdVZT1kYXQoKSxfVWU9VXUoKSx5VWU9QUYoKSxFZD1ucygpLHZVZT1mdW5jdGlvbihlKXtoVWUuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdCgpe3ZhciByPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gci5fc3RhcnRBbmdsZT0wLHIuX2VuZEFuZ2xlPTIqTWF0aC5QSSxyLl9sYWJlbEZvcm1hdHRlcj1wVWUuaWRlbnRpdHkoKSxyLl9sYWJlbHNFbmFibGVkPSExLHIuaW5uZXJSYWRpdXMoMCksci5vdXRlclJhZGl1cyhmdW5jdGlvbigpe3ZhciBuPXIuX3BpZUNlbnRlcigpO3JldHVybiBNYXRoLm1pbihNYXRoLm1heChyLndpZHRoKCktbi54LG4ueCksTWF0aC5tYXgoci5oZWlnaHQoKS1uLnksbi55KSl9KSxyLmFkZENsYXNzKCJwaWUtcGxvdCIpLHIuYXR0cigiZmlsbCIsZnVuY3Rpb24obixpKXtyZXR1cm4gU3RyaW5nKGkpfSxuZXcgZFVlLkNvbG9yKSxyLl9zdHJva2VEcmF3ZXJzPW5ldyBVdi5NYXAscn1yZXR1cm4gdC5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcztlLnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl9zdHJva2VEcmF3ZXJzLmZvckVhY2goZnVuY3Rpb24obil7cmV0dXJuIG4uYXR0YWNoVG8oci5fcmVuZGVyQXJlYSl9KX0sdC5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihyLG4saSl7ZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dC5jYWxsKHRoaXMscixuLGkpO3ZhciBvPXRoaXMuX3BpZUNlbnRlcigpO3RoaXMuX3JlbmRlckFyZWEuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrby54KyIsIitvLnkrIikiKTt2YXIgYT1NYXRoLm1pbihNYXRoLm1heCh0aGlzLndpZHRoKCktby54LG8ueCksTWF0aC5tYXgodGhpcy5oZWlnaHQoKS1vLnksby55KSk7cmV0dXJuIHRoaXMuaW5uZXJSYWRpdXMoKS5zY2FsZSE9bnVsbCYmdGhpcy5pbm5lclJhZGl1cygpLnNjYWxlLnJhbmdlKFswLGFdKSx0aGlzLm91dGVyUmFkaXVzKCkuc2NhbGUhPW51bGwmJnRoaXMub3V0ZXJSYWRpdXMoKS5zY2FsZS5yYW5nZShbMCxhXSksdGhpc30sdC5wcm90b3R5cGUuYWRkRGF0YXNldD1mdW5jdGlvbihyKXtyZXR1cm4gZS5wcm90b3R5cGUuYWRkRGF0YXNldC5jYWxsKHRoaXMsciksdGhpc30sdC5wcm90b3R5cGUuX2FkZERhdGFzZXQ9ZnVuY3Rpb24ocil7aWYodGhpcy5kYXRhc2V0cygpLmxlbmd0aD09PTEpcmV0dXJuIFV2LldpbmRvdy53YXJuKCJPbmx5IG9uZSBkYXRhc2V0IGlzIHN1cHBvcnRlZCBpbiBQaWUgcGxvdHMiKSx0aGlzO3RoaXMuX3VwZGF0ZVBpZUFuZ2xlcygpLGUucHJvdG90eXBlLl9hZGREYXRhc2V0LmNhbGwodGhpcyxyKTt2YXIgbj1uZXcgZ1VlLkFyY091dGxpbmVTVkdEcmF3ZXI7cmV0dXJuIHRoaXMuX2lzU2V0dXAmJm4uYXR0YWNoVG8odGhpcy5fcmVuZGVyQXJlYSksdGhpcy5fc3Ryb2tlRHJhd2Vycy5zZXQocixuKSx0aGlzfSx0LnByb3RvdHlwZS5yZW1vdmVEYXRhc2V0PWZ1bmN0aW9uKHIpe3JldHVybiBlLnByb3RvdHlwZS5yZW1vdmVEYXRhc2V0LmNhbGwodGhpcyxyKSx0aGlzfSx0LnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldE5vZGVzPWZ1bmN0aW9uKHIpe2UucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0Tm9kZXMuY2FsbCh0aGlzLHIpLHRoaXMuX3N0cm9rZURyYXdlcnMuZ2V0KHIpLnJlbW92ZSgpfSx0LnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldD1mdW5jdGlvbihyKXtyZXR1cm4gZS5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXQuY2FsbCh0aGlzLHIpLHRoaXMuX3N0cm9rZURyYXdlcnMuZGVsZXRlKHIpLHRoaXMuX3N0YXJ0QW5nbGVzPVtdLHRoaXMuX2VuZEFuZ2xlcz1bXSx0aGlzfSx0LnByb3RvdHlwZS5zZWxlY3Rpb25zPWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXM7cj09PXZvaWQgMCYmKHI9dGhpcy5kYXRhc2V0cygpKTt2YXIgaT1lLnByb3RvdHlwZS5zZWxlY3Rpb25zLmNhbGwodGhpcyxyKS5ub2RlcygpO3JldHVybiByLmZvckVhY2goZnVuY3Rpb24obyl7dmFyIGE9bi5fc3Ryb2tlRHJhd2Vycy5nZXQobyk7YSE9bnVsbCYmaS5wdXNoLmFwcGx5KGksYS5nZXRWaXN1YWxQcmltaXRpdmVzKCkpfSksdjQuc2VsZWN0QWxsKGkpfSx0LnByb3RvdHlwZS5fb25EYXRhc2V0VXBkYXRlPWZ1bmN0aW9uKCl7ZS5wcm90b3R5cGUuX29uRGF0YXNldFVwZGF0ZS5jYWxsKHRoaXMpLHRoaXMuX3VwZGF0ZVBpZUFuZ2xlcygpLHRoaXMucmVuZGVyKCl9LHQucHJvdG90eXBlLl9jcmVhdGVEcmF3ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IF9VZS5Qcm94eURyYXdlcihmdW5jdGlvbigpe3JldHVybiBuZXcgbVVlLkFyY1NWR0RyYXdlcn0sZnVuY3Rpb24oKXtyZXR1cm4geVVlLndhcm4oImNhbnZhcyByZW5kZXJlciBpcyBub3Qgc3VwcG9ydGVkIG9uIFBpZSBQbG90ISIpLG51bGx9KX0sdC5wcm90b3R5cGUuZW50aXRpZXM9ZnVuY3Rpb24ocil7dmFyIG49dGhpcztyPT09dm9pZCAwJiYocj10aGlzLmRhdGFzZXRzKCkpO3ZhciBpPWUucHJvdG90eXBlLmVudGl0aWVzLmNhbGwodGhpcyxyKTtyZXR1cm4gaS5tYXAoZnVuY3Rpb24obyl7by5wb3NpdGlvbi54Kz1uLndpZHRoKCkvMixvLnBvc2l0aW9uLnkrPW4uaGVpZ2h0KCkvMjt2YXIgYT12NC5zZWxlY3Qobi5fc3Ryb2tlRHJhd2Vycy5nZXQoby5kYXRhc2V0KS5nZXRWaXN1YWxQcmltaXRpdmVBdEluZGV4KG8uaW5kZXgpKSxzPW87cmV0dXJuIHMuc3Ryb2tlU2VsZWN0aW9uPWEsc30pfSx0LnByb3RvdHlwZS5zZWN0b3JWYWx1ZT1mdW5jdGlvbihyLG4pe3JldHVybiByPT1udWxsP3RoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KHQuX1NFQ1RPUl9WQUxVRV9LRVkpOih0aGlzLl9iaW5kUHJvcGVydHkodC5fU0VDVE9SX1ZBTFVFX0tFWSxyLG4pLHRoaXMuX3VwZGF0ZVBpZUFuZ2xlcygpLHRoaXMucmVuZGVyKCksdGhpcyl9LHQucHJvdG90eXBlLmlubmVyUmFkaXVzPWZ1bmN0aW9uKHIsbil7cmV0dXJuIHI9PW51bGw/dGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQodC5fSU5ORVJfUkFESVVTX0tFWSk6KHRoaXMuX2JpbmRQcm9wZXJ0eSh0Ll9JTk5FUl9SQURJVVNfS0VZLHIsbiksdGhpcy5yZW5kZXIoKSx0aGlzKX0sdC5wcm90b3R5cGUub3V0ZXJSYWRpdXM9ZnVuY3Rpb24ocixuKXtyZXR1cm4gcj09bnVsbD90aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldCh0Ll9PVVRFUl9SQURJVVNfS0VZKToodGhpcy5fYmluZFByb3BlcnR5KHQuX09VVEVSX1JBRElVU19LRVkscixuKSx0aGlzLnJlbmRlcigpLHRoaXMpfSx0LnByb3RvdHlwZS5zdGFydEFuZ2xlPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX3N0YXJ0QW5nbGU6KHRoaXMuX3N0YXJ0QW5nbGU9cix0aGlzLl91cGRhdGVQaWVBbmdsZXMoKSx0aGlzLnJlbmRlcigpLHRoaXMpfSx0LnByb3RvdHlwZS5lbmRBbmdsZT1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9lbmRBbmdsZToodGhpcy5fZW5kQW5nbGU9cix0aGlzLl91cGRhdGVQaWVBbmdsZXMoKSx0aGlzLnJlbmRlcigpLHRoaXMpfSx0LnByb3RvdHlwZS5sYWJlbHNFbmFibGVkPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX2xhYmVsc0VuYWJsZWQ6KHRoaXMuX2xhYmVsc0VuYWJsZWQ9cix0aGlzLnJlbmRlcigpLHRoaXMpfSx0LnByb3RvdHlwZS5sYWJlbEZvcm1hdHRlcj1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9sYWJlbEZvcm1hdHRlcjoodGhpcy5fbGFiZWxGb3JtYXR0ZXI9cix0aGlzLnJlbmRlcigpLHRoaXMpfSx0LnByb3RvdHlwZS5lbnRpdGllc0F0PWZ1bmN0aW9uKHIpe3ZhciBuPXt4OnRoaXMud2lkdGgoKS8yLHk6dGhpcy5oZWlnaHQoKS8yfSxpPXt4OnIueC1uLngseTpyLnktbi55fSxvPXRoaXMuX3NsaWNlSW5kZXhGb3JQb2ludChpKTtyZXR1cm4gbz09bnVsbD9bXTpbdGhpcy5lbnRpdGllcygpW29dXX0sdC5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycz1mdW5jdGlvbigpe3ZhciByPXRoaXMsbj1lLnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzLmNhbGwodGhpcyksaT1FZC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLmlubmVyUmFkaXVzKCkpLG89RWQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5vdXRlclJhZGl1cygpKTtyZXR1cm4gbi5kPWZ1bmN0aW9uKGEscyxsKXtyZXR1cm4gdjQuYXJjKCkuaW5uZXJSYWRpdXMoaShhLHMsbCkpLm91dGVyUmFkaXVzKG8oYSxzLGwpKS5zdGFydEFuZ2xlKHIuX3N0YXJ0QW5nbGVzW3NdKS5lbmRBbmdsZShyLl9lbmRBbmdsZXNbc10pKGEscyl9LG59LHQucHJvdG90eXBlLl91cGRhdGVQaWVBbmdsZXM9ZnVuY3Rpb24oKXtpZih0aGlzLnNlY3RvclZhbHVlKCkhPW51bGwmJnRoaXMuZGF0YXNldHMoKS5sZW5ndGghPT0wKXt2YXIgcj1FZC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnNlY3RvclZhbHVlKCkpLG49dGhpcy5kYXRhc2V0cygpWzBdLGk9dGhpcy5fZ2V0RGF0YVRvRHJhdygpLmdldChuKSxvPXY0LnBpZSgpLnNvcnQobnVsbCkuc3RhcnRBbmdsZSh0aGlzLl9zdGFydEFuZ2xlKS5lbmRBbmdsZSh0aGlzLl9lbmRBbmdsZSkudmFsdWUoZnVuY3Rpb24oYSxzKXtyZXR1cm4gcihhLHMsbil9KShpKTt0aGlzLl9zdGFydEFuZ2xlcz1vLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS5zdGFydEFuZ2xlfSksdGhpcy5fZW5kQW5nbGVzPW8ubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLmVuZEFuZ2xlfSl9fSx0LnByb3RvdHlwZS5fcGllQ2VudGVyPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5fc3RhcnRBbmdsZTx0aGlzLl9lbmRBbmdsZT90aGlzLl9zdGFydEFuZ2xlOnRoaXMuX2VuZEFuZ2xlLG49dGhpcy5fc3RhcnRBbmdsZTx0aGlzLl9lbmRBbmdsZT90aGlzLl9lbmRBbmdsZTp0aGlzLl9zdGFydEFuZ2xlLGk9TWF0aC5zaW4ociksbz1NYXRoLmNvcyhyKSxhPU1hdGguc2luKG4pLHM9TWF0aC5jb3MobiksbCxjLHUsaDtyZXR1cm4gaT49MCYmYT49MD9vPj0wJiZzPj0wPyhsPW8sYz0wLGg9MCx1PWEpOm88MCYmczwwPyhsPTAsYz0tcyxoPTAsdT1pKTpvPj0wJiZzPDA/KGw9byxjPS1zLGg9MCx1PWkpOm88MCYmcz49MCYmKGw9MSxjPTEsaD0xLHU9TWF0aC5tYXgoaSxhKSk6aT49MCYmYTwwP28+PTAmJnM+PTA/KGw9TWF0aC5tYXgobyxzKSxjPTEsaD0xLHU9MSk6bzwwJiZzPDA/KGw9MCxjPTEsaD0tYSx1PWkpOm8+PTAmJnM8MD8obD1vLGM9MSxoPS1hLHU9MSk6bzwwJiZzPj0wJiYobD1zLGM9MSxoPTEsdT1pKTppPDAmJmE+PTA/bz49MCYmcz49MD8obD0xLGM9MCxoPS1pLHU9YSk6bzwwJiZzPDA/KGw9MSxjPU1hdGgubWF4KC1vLC1zKSxoPTEsdT0xKTpvPj0wJiZzPDA/KGw9MSxjPS1zLGg9LWksdT0xKTpvPDAmJnM+PTAmJihsPTEsYz0tbyxoPTEsdT1hKTppPDAmJmE8MCYmKG8+PTAmJnM+PTA/KGw9cyxjPTAsaD0taSx1PTApOm88MCYmczwwPyhsPTAsYz0tbyxoPS1hLHU9MCk6bz49MCYmczwwPyhsPTEsYz0xLGg9TWF0aC5tYXgobywtcyksdT0xKTpvPDAmJnM+PTAmJihsPXMsYz0tbyxoPTEsdT0wKSkse3g6aCt1PT0wPzA6aC8oaCt1KSp0aGlzLndpZHRoKCkseTpsK2M9PTA/MDpsLyhsK2MpKnRoaXMuaGVpZ2h0KCl9fSx0LnByb3RvdHlwZS5fZ2V0RGF0YVRvRHJhdz1mdW5jdGlvbigpe3ZhciByPWUucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3LmNhbGwodGhpcyk7aWYodGhpcy5kYXRhc2V0cygpLmxlbmd0aD09PTApcmV0dXJuIHI7dmFyIG49RWQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5zZWN0b3JWYWx1ZSgpKSxpPXRoaXMuZGF0YXNldHMoKVswXSxvPXIuZ2V0KGkpLGE9by5maWx0ZXIoZnVuY3Rpb24ocyxsKXtyZXR1cm4gdC5faXNWYWxpZERhdGEobihzLGwsaSkpfSk7cmV0dXJuIHIuc2V0KGksYSkscn0sdC5faXNWYWxpZERhdGE9ZnVuY3Rpb24ocil7cmV0dXJuIFV2Lk1hdGguaXNWYWxpZE51bWJlcihyKSYmcj49MH0sdC5wcm90b3R5cGUuX3BpeGVsUG9pbnQ9ZnVuY3Rpb24ocixuLGkpe3ZhciBvPUVkLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuc2VjdG9yVmFsdWUoKSk7aWYoIXQuX2lzVmFsaWREYXRhKG8ocixuLGkpKSlyZXR1cm57eDpOYU4seTpOYU59O3ZhciBhPUVkLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuaW5uZXJSYWRpdXMoKSkocixuLGkpLHM9RWQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5vdXRlclJhZGl1cygpKShyLG4saSksbD0oYStzKS8yLGM9djQucGllKCkuc29ydChudWxsKS52YWx1ZShmdW5jdGlvbihwLGQpe3ZhciBnPW8ocCxkLGkpO3JldHVybiB0Ll9pc1ZhbGlkRGF0YShnKT9nOjB9KS5zdGFydEFuZ2xlKHRoaXMuX3N0YXJ0QW5nbGUpLmVuZEFuZ2xlKHRoaXMuX2VuZEFuZ2xlKShpLmRhdGEoKSksdT1jW25dLnN0YXJ0QW5nbGUsaD1jW25dLmVuZEFuZ2xlLGY9KHUraCkvMjtyZXR1cm57eDpsKk1hdGguc2luKGYpLHk6LWwqTWF0aC5jb3MoZil9fSx0LnByb3RvdHlwZS5fYWRkaXRpb25hbFBhaW50PWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXM7dGhpcy5fcmVuZGVyQXJlYS5zZWxlY3QoIi5sYWJlbC1hcmVhIikucmVtb3ZlKCksdGhpcy5fbGFiZWxzRW5hYmxlZCYmVXYuV2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gbi5fZHJhd0xhYmVscygpfSxyKTt2YXIgaT10aGlzLl9nZW5lcmF0ZVN0cm9rZURyYXdTdGVwcygpLG89dGhpcy5fZ2V0RGF0YVRvRHJhdygpO3RoaXMuZGF0YXNldHMoKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBzPUVkLlBsb3QuYXBwbHlEcmF3U3RlcHMoaSxhKTtuLl9zdHJva2VEcmF3ZXJzLmdldChhKS5kcmF3KG8uZ2V0KGEpLHMpfSl9LHQucHJvdG90eXBlLl9nZW5lcmF0ZVN0cm9rZURyYXdTdGVwcz1mdW5jdGlvbigpe3ZhciByPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpO3JldHVyblt7YXR0clRvUHJvamVjdG9yOnIsYW5pbWF0b3I6bmV3IGZVZS5OdWxsfV19LHQucHJvdG90eXBlLl9zbGljZUluZGV4Rm9yUG9pbnQ9ZnVuY3Rpb24ocil7dmFyIG49TWF0aC5zcXJ0KE1hdGgucG93KHIueCwyKStNYXRoLnBvdyhyLnksMikpLGk9TWF0aC5hY29zKC1yLnkvbik7ci54PDAmJihpPU1hdGguUEkqMi1pKTtmb3IodmFyIG8sYT0wO2E8dGhpcy5fc3RhcnRBbmdsZXMubGVuZ3RoO2ErKylpZih0aGlzLl9zdGFydEFuZ2xlc1thXTxpJiZ0aGlzLl9lbmRBbmdsZXNbYV0+aSl7bz1hO2JyZWFrfWlmKG8hPT12b2lkIDApe3ZhciBzPXRoaXMuZGF0YXNldHMoKVswXSxsPXMuZGF0YSgpW29dLGM9dGhpcy5pbm5lclJhZGl1cygpLmFjY2Vzc29yKGwsbyxzKSx1PXRoaXMub3V0ZXJSYWRpdXMoKS5hY2Nlc3NvcihsLG8scyk7aWYobj5jJiZuPHUpcmV0dXJuIG99cmV0dXJuIG51bGx9LHQucHJvdG90eXBlLl9kcmF3TGFiZWxzPWZ1bmN0aW9uKCl7Zm9yKHZhciByPXRoaXMsbj10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxpPXRoaXMuX3JlbmRlckFyZWEuYXBwZW5kKCJnIikuY2xhc3NlZCgibGFiZWwtYXJlYSIsITApLG89bmV3IFJhdC5TdmdDb250ZXh0KGkubm9kZSgpKSxhPW5ldyBSYXQuQ2FjaGVNZWFzdXJlcihvKSxzPW5ldyBSYXQuV3JpdGVyKGEsbyksbD10aGlzLmRhdGFzZXRzKClbMF0sYz10aGlzLl9nZXREYXRhVG9EcmF3KCkuZ2V0KGwpLHU9Yy5sZW5ndGgsaD1mdW5jdGlvbihkKXt2YXIgZz1jW2RdLF89Zi5zZWN0b3JWYWx1ZSgpLmFjY2Vzc29yKGcsZCxsKTtpZighVXYuTWF0aC5pc1ZhbGlkTnVtYmVyKF8pKXJldHVybiJjb250aW51ZSI7Xz1mLl9sYWJlbEZvcm1hdHRlcihfLGcsZCxsKTt2YXIgeT1hLm1lYXN1cmUoXykseD0oZi5fZW5kQW5nbGVzW2RdK2YuX3N0YXJ0QW5nbGVzW2RdKS8yLGI9Zi5vdXRlclJhZGl1cygpLmFjY2Vzc29yKGcsZCxsKTtmLm91dGVyUmFkaXVzKCkuc2NhbGUmJihiPWYub3V0ZXJSYWRpdXMoKS5zY2FsZS5zY2FsZShiKSk7dmFyIFM9Zi5pbm5lclJhZGl1cygpLmFjY2Vzc29yKGcsZCxsKTtmLmlubmVyUmFkaXVzKCkuc2NhbGUmJihTPWYuaW5uZXJSYWRpdXMoKS5zY2FsZS5zY2FsZShTKSk7dmFyIEM9KGIrUykvMixQPU1hdGguc2luKHgpKkMteS53aWR0aC8yLGs9LU1hdGguY29zKHgpKkMteS5oZWlnaHQvMixPPVt7eDpQLHk6a30se3g6UCx5OmsreS5oZWlnaHR9LHt4OlAreS53aWR0aCx5Omt9LHt4OlAreS53aWR0aCx5OmsreS5oZWlnaHR9XSxEPU8uZXZlcnkoZnVuY3Rpb24oeil7cmV0dXJuIE1hdGguYWJzKHoueCk8PXIud2lkdGgoKS8yJiZNYXRoLmFicyh6LnkpPD1yLmhlaWdodCgpLzJ9KTtpZihEKXt2YXIgQj1PLm1hcChmdW5jdGlvbih6KXtyZXR1cm4gci5fc2xpY2VJbmRleEZvclBvaW50KHopfSk7RD1CLmV2ZXJ5KGZ1bmN0aW9uKHope3JldHVybiB6PT09ZH0pfXZhciBJPW4uZmlsbChnLGQsbCksTD1Vdi5Db2xvci5jb250cmFzdCgid2hpdGUiLEkpKjEuNjxVdi5Db2xvci5jb250cmFzdCgiYmxhY2siLEkpLFI9aS5hcHBlbmQoImciKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitQKyIsIitrKyIpIiksRj1MPyJkYXJrLWxhYmVsIjoibGlnaHQtbGFiZWwiO1IuY2xhc3NlZChGLCEwKSxSLnN0eWxlKCJ2aXNpYmlsaXR5IixEPyJpbmhlcml0IjoiaGlkZGVuIikscy53cml0ZShfLHkud2lkdGgseS5oZWlnaHQse3hBbGlnbjoiY2VudGVyIix5QWxpZ246ImNlbnRlciJ9LFIubm9kZSgpKX0sZj10aGlzLHA9MDtwPHU7cCsrKWgocCl9LHQuX0lOTkVSX1JBRElVU19LRVk9ImlubmVyLXJhZGl1cyIsdC5fT1VURVJfUkFESVVTX0tFWT0ib3V0ZXItcmFkaXVzIix0Ll9TRUNUT1JfVkFMVUVfS0VZPSJzZWN0b3ItdmFsdWUiLHR9KEVkLlBsb3QpO05hdC5QaWU9dlVlfSk7dmFyIE1LdD1IKE9hdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoT2F0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgeFVlPShkZSgpLFV0KHBlKSksYlVlPShFcigpLFV0KE1yKSksRGF0PXlsKCksd1VlPWtmKCksU1VlPUh2KCksTVVlPVV1KCksRVVlPW9CKCksZkI9UnMoKSxPYz1GZSgpLHBCPW5zKCksVFVlPVZ2KCksQ1VlPWZ1bmN0aW9uKGUpe3hVZS5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KCl7dmFyIHI9ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiByLl9sYWJlbHNFbmFibGVkPSExLHIuX2xhYmVsPW51bGwsci5hbmltYXRvcigicmVjdGFuZ2xlcyIsbmV3IHdVZS5OdWxsKSxyLmFkZENsYXNzKCJyZWN0YW5nbGUtcGxvdCIpLHIuYXR0cigiZmlsbCIsbmV3IGZCLkNvbG9yKCkucmFuZ2UoKVswXSkscn1yZXR1cm4gdC5wcm90b3R5cGUuX2NyZWF0ZURyYXdlcj1mdW5jdGlvbigpe3JldHVybiBuZXcgTVVlLlByb3h5RHJhd2VyKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBFVWUuUmVjdGFuZ2xlU1ZHRHJhd2VyfSxmdW5jdGlvbihyKXtyZXR1cm4gbmV3IFNVZS5SZWN0YW5nbGVDYW52YXNEcmF3ZXIocil9KX0sdC5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxuPWUucHJvdG90eXBlLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3Rvci5jYWxsKHRoaXMpLGk9cEIuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLG89blt0Ll9YMl9LRVldLGE9cEIuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy55KCkpLHM9blt0Ll9ZMl9LRVldLGw9dGhpcy54KCkuc2NhbGUsYz10aGlzLnkoKS5zY2FsZTtyZXR1cm4gbyE9bnVsbD8obi53aWR0aD1mdW5jdGlvbih1LGgsZil7cmV0dXJuIE1hdGguYWJzKG8odSxoLGYpLWkodSxoLGYpKX0sbi54PWZ1bmN0aW9uKHUsaCxmKXtyZXR1cm4gTWF0aC5taW4obyh1LGgsZiksaSh1LGgsZikpfSk6KG4ud2lkdGg9ZnVuY3Rpb24odSxoLGYpe3JldHVybiByLl9yZWN0YW5nbGVXaWR0aChsKX0sbi54PWZ1bmN0aW9uKHUsaCxmKXtyZXR1cm4gaSh1LGgsZiktLjUqbi53aWR0aCh1LGgsZil9KSxzIT1udWxsPyhuLmhlaWdodD1mdW5jdGlvbih1LGgsZil7cmV0dXJuIE1hdGguYWJzKHModSxoLGYpLWEodSxoLGYpKX0sbi55PWZ1bmN0aW9uKHUsaCxmKXtyZXR1cm4gTWF0aC5tYXgocyh1LGgsZiksYSh1LGgsZikpLW4uaGVpZ2h0KHUsaCxmKX0pOihuLmhlaWdodD1mdW5jdGlvbih1LGgsZil7cmV0dXJuIHIuX3JlY3RhbmdsZVdpZHRoKGMpfSxuLnk9ZnVuY3Rpb24odSxoLGYpe3JldHVybiBhKHUsaCxmKS0uNSpuLmhlaWdodCh1LGgsZil9KSxkZWxldGUgblt0Ll9YMl9LRVldLGRlbGV0ZSBuW3QuX1kyX0tFWV0sbn0sdC5wcm90b3R5cGUuX2dlbmVyYXRlRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7cmV0dXJuW3thdHRyVG9Qcm9qZWN0b3I6dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoInJlY3RhbmdsZXMiKX1dfSx0LnByb3RvdHlwZS5fZmlsdGVyRm9yUHJvcGVydHk9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PT0ieDIiP2UucHJvdG90eXBlLl9maWx0ZXJGb3JQcm9wZXJ0eS5jYWxsKHRoaXMsIngiKTpyPT09InkyIj9lLnByb3RvdHlwZS5fZmlsdGVyRm9yUHJvcGVydHkuY2FsbCh0aGlzLCJ5Iik6ZS5wcm90b3R5cGUuX2ZpbHRlckZvclByb3BlcnR5LmNhbGwodGhpcyxyKX0sdC5wcm90b3R5cGUueD1mdW5jdGlvbihyLG4saSl7aWYocj09bnVsbClyZXR1cm4gZS5wcm90b3R5cGUueC5jYWxsKHRoaXMpO2lmKG49PW51bGw/ZS5wcm90b3R5cGUueC5jYWxsKHRoaXMscik6ZS5wcm90b3R5cGUueC5jYWxsKHRoaXMscixuLGkpLG4hPW51bGwpe3ZhciBvPXRoaXMueDIoKSxhPW8mJm8uYWNjZXNzb3I7YSE9bnVsbCYmdGhpcy5fYmluZFByb3BlcnR5KHQuX1gyX0tFWSxhLG4sby5wb3N0U2NhbGUpfXJldHVybiBuIGluc3RhbmNlb2YgZkIuQ2F0ZWdvcnkmJm4uaW5uZXJQYWRkaW5nKDApLm91dGVyUGFkZGluZygwKSx0aGlzfSx0LnByb3RvdHlwZS54Mj1mdW5jdGlvbihyLG4pe2lmKHI9PW51bGwpcmV0dXJuIHRoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KHQuX1gyX0tFWSk7dmFyIGk9dGhpcy54KCksbz1pJiZpLnNjYWxlO3JldHVybiB0aGlzLl9iaW5kUHJvcGVydHkodC5fWDJfS0VZLHIsbyxuKSx0aGlzLnJlbmRlcigpLHRoaXN9LHQucHJvdG90eXBlLnk9ZnVuY3Rpb24ocixuLGkpe2lmKHI9PW51bGwpcmV0dXJuIGUucHJvdG90eXBlLnkuY2FsbCh0aGlzKTtpZihuPT1udWxsP2UucHJvdG90eXBlLnkuY2FsbCh0aGlzLHIpOmUucHJvdG90eXBlLnkuY2FsbCh0aGlzLHIsbixpKSxuIT1udWxsKXt2YXIgbz10aGlzLnkyKCksYT1vJiZvLmFjY2Vzc29yO2EhPW51bGwmJnRoaXMuX2JpbmRQcm9wZXJ0eSh0Ll9ZMl9LRVksYSxuLG8ucG9zdFNjYWxlKX1yZXR1cm4gbiBpbnN0YW5jZW9mIGZCLkNhdGVnb3J5JiZuLmlubmVyUGFkZGluZygwKS5vdXRlclBhZGRpbmcoMCksdGhpc30sdC5wcm90b3R5cGUueTI9ZnVuY3Rpb24ocixuKXtpZihyPT1udWxsKXJldHVybiB0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldCh0Ll9ZMl9LRVkpO3ZhciBpPXRoaXMueSgpLG89aSYmaS5zY2FsZTtyZXR1cm4gdGhpcy5fYmluZFByb3BlcnR5KHQuX1kyX0tFWSxyLG8sbiksdGhpcy5yZW5kZXIoKSx0aGlzfSx0LnByb3RvdHlwZS5lbnRpdGllc0F0PWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpO3JldHVybiB0aGlzLmVudGl0aWVzKCkuZmlsdGVyKGZ1bmN0aW9uKGkpe3ZhciBvPWkuZGF0dW0sYT1pLmluZGV4LHM9aS5kYXRhc2V0LGw9bi54KG8sYSxzKSxjPW4ueShvLGEscyksdT1uLndpZHRoKG8sYSxzKSxoPW4uaGVpZ2h0KG8sYSxzKTtyZXR1cm4gbDw9ci54JiZyLng8PWwrdSYmYzw9ci55JiZyLnk8PWMraH0pfSx0LnByb3RvdHlwZS5fZW50aXR5Qm91bmRzPWZ1bmN0aW9uKHIpe3ZhciBuPXIuZGF0dW0saT1yLmluZGV4LG89ci5kYXRhc2V0O3JldHVybiB0aGlzLl9lbnRpdHlCQm94KG4saSxvLHRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpKX0sdC5wcm90b3R5cGUuX2VudGl0eUJCb3g9ZnVuY3Rpb24ocixuLGksbyl7cmV0dXJue3g6by54KHIsbixpKSx5Om8ueShyLG4saSksd2lkdGg6by53aWR0aChyLG4saSksaGVpZ2h0Om8uaGVpZ2h0KHIsbixpKX19LHQucHJvdG90eXBlLmxhYmVsPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX2xhYmVsOih0aGlzLl9sYWJlbD1yLHRoaXMucmVuZGVyKCksdGhpcyl9LHQucHJvdG90eXBlLmxhYmVsc0VuYWJsZWQ9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5fbGFiZWxzRW5hYmxlZDoodGhpcy5fbGFiZWxzRW5hYmxlZD1yLHRoaXMucmVuZGVyKCksdGhpcyl9LHQucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnM9ZnVuY3Rpb24oKXt2YXIgcj1lLnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzLmNhbGwodGhpcyk7cmV0dXJuIHRoaXMueDIoKSE9bnVsbCYmKHIueDI9cEIuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54MigpKSksdGhpcy55MigpIT1udWxsJiYoci55Mj1wQi5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkyKCkpKSxyfSx0LnByb3RvdHlwZS5fcGl4ZWxQb2ludD1mdW5jdGlvbihyLG4saSl7dmFyIG89dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksYT1vLngocixuLGkpLHM9by55KHIsbixpKSxsPW8ud2lkdGgocixuLGkpLGM9by5oZWlnaHQocixuLGkpLHU9YStsLzIsaD1zK2MvMjtyZXR1cm57eDp1LHk6aH19LHQucHJvdG90eXBlLl9yZWN0YW5nbGVXaWR0aD1mdW5jdGlvbihyKXtpZihyIGluc3RhbmNlb2YgZkIuQ2F0ZWdvcnkpcmV0dXJuIHIucmFuZ2VCYW5kKCk7dmFyIG49cj09PXRoaXMueCgpLnNjYWxlP3RoaXMueCgpLmFjY2Vzc29yOnRoaXMueSgpLmFjY2Vzc29yLGk9YlVlLnNldChPYy5BcnJheS5mbGF0dGVuKHRoaXMuZGF0YXNldHMoKS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMuZGF0YSgpLm1hcChmdW5jdGlvbih1LGgpe3JldHVybiBuKHUsaCxjKS52YWx1ZU9mKCl9KX0pKSkudmFsdWVzKCkubWFwKGZ1bmN0aW9uKGMpe3JldHVybitjfSksbz1PYy5NYXRoLm1pbihpLDApLGE9T2MuTWF0aC5tYXgoaSwwKSxzPXIuc2NhbGUobyksbD1yLnNjYWxlKGEpO3JldHVybihsLXMpL01hdGguYWJzKGEtbyl9LHQucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3PWZ1bmN0aW9uKCl7dmFyIHI9bmV3IE9jLk1hcCxuPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpO3JldHVybiB0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgbz1pLmRhdGEoKS5tYXAoZnVuY3Rpb24oYSxzKXt2YXIgbD1PYy5NYXRoLmlzVmFsaWROdW1iZXIobi54KGEscyxpKSkmJk9jLk1hdGguaXNWYWxpZE51bWJlcihuLnkoYSxzLGkpKSYmT2MuTWF0aC5pc1ZhbGlkTnVtYmVyKG4ud2lkdGgoYSxzLGkpKSYmT2MuTWF0aC5pc1ZhbGlkTnVtYmVyKG4uaGVpZ2h0KGEscyxpKSk7cmV0dXJuIGw/YTpudWxsfSk7ci5zZXQoaSxvKX0pLHJ9LHQucHJvdG90eXBlLl9hZGRpdGlvbmFsUGFpbnQ9ZnVuY3Rpb24ocil7dmFyIG49dGhpczt0aGlzLl9yZW5kZXJBcmVhLnNlbGVjdEFsbCgiLmxhYmVsLWFyZWEiKS5yZW1vdmUoKSx0aGlzLl9sYWJlbHNFbmFibGVkJiZ0aGlzLmxhYmVsKCkhPW51bGwmJk9jLldpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIG4uX2RyYXdMYWJlbHMoKX0scil9LHQucHJvdG90eXBlLl9kcmF3TGFiZWxzPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxuPXRoaXMuX2dldERhdGFUb0RyYXcoKTt0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaChmdW5jdGlvbihpLG8pe3JldHVybiByLl9kcmF3TGFiZWwobixpLG8pfSl9LHQucHJvdG90eXBlLl9kcmF3TGFiZWw9ZnVuY3Rpb24ocixuLGkpe2Zvcih2YXIgbz10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxhPXRoaXMuX3JlbmRlckFyZWEuYXBwZW5kKCJnIikuY2xhc3NlZCgibGFiZWwtYXJlYSIsITApLHM9bmV3IERhdC5TdmdDb250ZXh0KGEubm9kZSgpKSxsPW5ldyBEYXQuQ2FjaGVNZWFzdXJlcihzKSxjPW5ldyBEYXQuV3JpdGVyKGwscyksdT10aGlzLngoKS5zY2FsZS5yYW5nZSgpLGg9dGhpcy55KCkuc2NhbGUucmFuZ2UoKSxmPU1hdGgubWluLmFwcGx5KG51bGwsdSkscD1NYXRoLm1heC5hcHBseShudWxsLHUpLGQ9TWF0aC5taW4uYXBwbHkobnVsbCxoKSxnPU1hdGgubWF4LmFwcGx5KG51bGwsaCksXz1yLmdldChuKSx5PV8ubGVuZ3RoLHg9MDt4PHk7eCsrKXt2YXIgYj1fW3hdO2lmKGIhPW51bGwpe3ZhciBTPSIiK3RoaXMubGFiZWwoKShiLHgsbiksQz1sLm1lYXN1cmUoUyksUD1vLngoYix4LG4pLGs9by55KGIseCxuKSxPPW8ud2lkdGgoYix4LG4pLEQ9by5oZWlnaHQoYix4LG4pO2lmKEMuaGVpZ2h0PD1EJiZDLndpZHRoPD1PKXt2YXIgQj0oTy1DLndpZHRoKS8yLEk9KEQtQy5oZWlnaHQpLzI7UCs9QixrKz1JO3ZhciBMPXttaW46UCxtYXg6UCtDLndpZHRofSxSPXttaW46ayxtYXg6aytDLmhlaWdodH07aWYoTC5taW48Znx8TC5tYXg+cHx8Ui5taW48ZHx8Ui5tYXg+Z3x8dGhpcy5fb3ZlcmxheUxhYmVsKEwsUix4LGkscikpY29udGludWU7dmFyIEY9by5maWxsKGIseCxuKSx6PU9jLkNvbG9yLmNvbnRyYXN0KCJ3aGl0ZSIsRikqMS42PE9jLkNvbG9yLmNvbnRyYXN0KCJibGFjayIsRiksVT1hLmFwcGVuZCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK1ArIiwiK2srIikiKSxXPXo/ImRhcmstbGFiZWwiOiJsaWdodC1sYWJlbCI7VS5jbGFzc2VkKFcsITApLGMud3JpdGUoUyxDLndpZHRoLEMuaGVpZ2h0LHt4QWxpZ246ImNlbnRlciIseUFsaWduOiJjZW50ZXIifSxVLm5vZGUoKSl9fX19LHQucHJvdG90eXBlLl9vdmVybGF5TGFiZWw9ZnVuY3Rpb24ocixuLGksbyxhKXtmb3IodmFyIHM9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksbD10aGlzLmRhdGFzZXRzKCksYz1vO2M8bC5sZW5ndGg7YysrKWZvcih2YXIgdT1sW2NdLGg9YS5nZXQodSksZj1oLmxlbmd0aCxwPWM9PT1vP2krMTowO3A8ZjtwKyspaWYoT2MuRE9NLmludGVyc2VjdHNCQm94KHIsbix0aGlzLl9lbnRpdHlCQm94KGhbcF0scCx1LHMpKSlyZXR1cm4hMDtyZXR1cm4hMX0sdC5fWDJfS0VZPSJ4MiIsdC5fWTJfS0VZPSJ5MiIsdH0oVFVlLlhZUGxvdCk7T2F0LlJlY3RhbmdsZT1DVWV9KTt2YXIgVEt0PUgoSGF0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShIYXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBBVWU9KGRlKCksVXQocGUpKSx6YXQ9eWwoKSxQVWU9QnUoKSxJVWU9WEYoKSxMVWU9VXUoKSxFS3Q9dmF0KCksa1VlPWtmKCksUlVlPUh2KCksTlVlPVJzKCksRmF0PUZlKCksQmF0PUlTKCksd2w9bnMoKSxEVWU9VnYoKSxPVWU9ZnVuY3Rpb24oZSl7QVVlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQoKXt2YXIgcj1lLmNhbGwodGhpcyl8fHRoaXM7ci5fbGFiZWxGb3JtYXR0ZXI9UFVlLmlkZW50aXR5KCksci5fbGFiZWxzRW5hYmxlZD0hMSxyLmFkZENsYXNzKCJzY2F0dGVyLXBsb3QiKTt2YXIgbj1uZXcga1VlLkVhc2luZztuLnN0YXJ0RGVsYXkoNSksbi5zdGVwRHVyYXRpb24oMjUwKSxuLm1heFRvdGFsRHVyYXRpb24od2wuUGxvdC5fQU5JTUFUSU9OX01BWF9EVVJBVElPTiksci5hbmltYXRvcihCYXQuQW5pbWF0b3IuTUFJTixuKSxyLmF0dHIoIm9wYWNpdHkiLC42KSxyLmF0dHIoImZpbGwiLG5ldyBOVWUuQ29sb3IoKS5yYW5nZSgpWzBdKSxyLnNpemUoNik7dmFyIGk9SVVlLmNpcmNsZSgpO3JldHVybiByLnN5bWJvbChmdW5jdGlvbigpe3JldHVybiBpfSksci5fbGFiZWxDb25maWc9bmV3IEZhdC5NYXAscn1yZXR1cm4gdC5wcm90b3R5cGUuX2J1aWxkTGlnaHR3ZWlnaHRQbG90RW50aXRpZXM9ZnVuY3Rpb24ocil7dmFyIG49dGhpcyxpPWUucHJvdG90eXBlLl9idWlsZExpZ2h0d2VpZ2h0UGxvdEVudGl0aWVzLmNhbGwodGhpcyxyKTtyZXR1cm4gaS5tYXAoZnVuY3Rpb24obyl7dmFyIGE9d2wuUGxvdC5fc2NhbGVkQWNjZXNzb3Iobi5zaXplKCkpKG8uZGF0dW0sby5pbmRleCxvLmRhdGFzZXQpO3JldHVybiBvLmRpYW1ldGVyPWEsb30pfSx0LnByb3RvdHlwZS5fY3JlYXRlRHJhd2VyPWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXM7cmV0dXJuIG5ldyBMVWUuUHJveHlEcmF3ZXIoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEVLdC5TeW1ib2xTVkdEcmF3ZXJ9LGZ1bmN0aW9uKGkpe3JldHVybiBuZXcgUlVlLkNhbnZhc0RyYXdlcihpLEVLdC5tYWtlU3ltYm9sQ2FudmFzRHJhd1N0ZXAocixmdW5jdGlvbigpe3JldHVybiB3bC5QbG90Ll9zY2FsZWRBY2Nlc3NvcihuLnN5bWJvbCgpKX0sZnVuY3Rpb24oKXtyZXR1cm4gd2wuUGxvdC5fc2NhbGVkQWNjZXNzb3Iobi5zaXplKCkpfSkpfSl9LHQucHJvdG90eXBlLnNpemU9ZnVuY3Rpb24ocixuKXtyZXR1cm4gcj09bnVsbD90aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldCh0Ll9TSVpFX0tFWSk6KHRoaXMuX2JpbmRQcm9wZXJ0eSh0Ll9TSVpFX0tFWSxyLG4pLHRoaXMucmVuZGVyKCksdGhpcyl9LHQucHJvdG90eXBlLnN5bWJvbD1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldCh0Ll9TWU1CT0xfS0VZKToodGhpcy5fcHJvcGVydHlCaW5kaW5ncy5zZXQodC5fU1lNQk9MX0tFWSx7YWNjZXNzb3I6cn0pLHRoaXMucmVuZGVyKCksdGhpcyl9LHQucHJvdG90eXBlLl9nZW5lcmF0ZURyYXdTdGVwcz1mdW5jdGlvbigpe3ZhciByPVtdO2lmKHRoaXMuX2FuaW1hdGVPbk5leHRSZW5kZXIoKSl7dmFyIG49dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksaT13bC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnN5bWJvbCgpKTtuLmQ9ZnVuY3Rpb24obyxhLHMpe3JldHVybiBpKG8sYSxzKSgwKShudWxsKX0sci5wdXNoKHthdHRyVG9Qcm9qZWN0b3I6bixhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcihCYXQuQW5pbWF0b3IuUkVTRVQpfSl9cmV0dXJuIHIucHVzaCh7YXR0clRvUHJvamVjdG9yOnRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLGFuaW1hdG9yOnRoaXMuX2dldEFuaW1hdG9yKEJhdC5BbmltYXRvci5NQUlOKX0pLHJ9LHQucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnM9ZnVuY3Rpb24oKXt2YXIgcj1lLnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzLmNhbGwodGhpcyksbj13bC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSksaT13bC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSk7cmV0dXJuIHIueD1uLHIueT1pLHIudHJhbnNmb3JtPWZ1bmN0aW9uKG8sYSxzKXtyZXR1cm4idHJhbnNsYXRlKCIrbihvLGEscykrIiwiK2kobyxhLHMpKyIpIn0sci5kPXRoaXMuX2NvbnN0cnVjdFN5bWJvbEdlbmVyYXRvcigpLHJ9LHQucHJvdG90eXBlLl9jb25zdHJ1Y3RTeW1ib2xHZW5lcmF0b3I9ZnVuY3Rpb24oKXt2YXIgcj13bC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnN5bWJvbCgpKSxuPXdsLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuc2l6ZSgpKTtyZXR1cm4gZnVuY3Rpb24oaSxvLGEpe3JldHVybiByKGksbyxhKShuKGksbyxhKSkobnVsbCl9fSx0LnByb3RvdHlwZS5fZW50aXR5Qm91bmRzPWZ1bmN0aW9uKHIpe3JldHVybnt4OnIucG9zaXRpb24ueC1yLmRpYW1ldGVyLzIseTpyLnBvc2l0aW9uLnktci5kaWFtZXRlci8yLHdpZHRoOnIuZGlhbWV0ZXIsaGVpZ2h0OnIuZGlhbWV0ZXJ9fSx0LnByb3RvdHlwZS5fZW50aXR5VmlzaWJsZU9uUGxvdD1mdW5jdGlvbihyLG4pe3ZhciBpPXttaW46bi50b3BMZWZ0LngsbWF4Om4uYm90dG9tUmlnaHQueH0sbz17bWluOm4udG9wTGVmdC55LG1heDpuLmJvdHRvbVJpZ2h0Lnl9LGE9dGhpcy5fZW50aXR5Qm91bmRzKHIpO3JldHVybiBGYXQuRE9NLmludGVyc2VjdHNCQm94KGksbyxhKX0sdC5wcm90b3R5cGUuZW50aXRpZXNBdD1mdW5jdGlvbihyKXt2YXIgbj13bC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSksaT13bC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSksbz13bC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnNpemUoKSk7cmV0dXJuIHRoaXMuZW50aXRpZXMoKS5maWx0ZXIoZnVuY3Rpb24oYSl7dmFyIHM9YS5kYXR1bSxsPWEuaW5kZXgsYz1hLmRhdGFzZXQsdT1uKHMsbCxjKSxoPWkocyxsLGMpLGY9byhzLGwsYyk7cmV0dXJuIHUtZi8yPD1yLngmJnIueDw9dStmLzImJmgtZi8yPD1yLnkmJnIueTw9aCtmLzJ9KX0sdC5wcm90b3R5cGUubGFiZWxzRW5hYmxlZD1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD90aGlzLl9sYWJlbHNFbmFibGVkOih0aGlzLl9sYWJlbHNFbmFibGVkPXIsdGhpcy5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZSgpLHRoaXMucmVuZGVyKCksdGhpcyl9LHQucHJvdG90eXBlLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQ9ZnVuY3Rpb24ocil7dmFyIG49ZS5wcm90b3R5cGUuX2NyZWF0ZU5vZGVzRm9yRGF0YXNldC5jYWxsKHRoaXMsciksaT10aGlzLl9yZW5kZXJBcmVhLmFwcGVuZCgiZyIpLmNsYXNzZWQodC5fTEFCRUxfQVJFQV9DTEFTUywhMCksbz1uZXcgemF0LlN2Z0NvbnRleHQoaS5ub2RlKCkpLGE9bmV3IHphdC5DYWNoZU1lYXN1cmVyKG8pLHM9bmV3IHphdC5Xcml0ZXIoYSxvKTtyZXR1cm4gdGhpcy5fbGFiZWxDb25maWcuc2V0KHIse2xhYmVsQXJlYTppLG1lYXN1cmVyOmEsd3JpdGVyOnN9KSxufSx0LnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldE5vZGVzPWZ1bmN0aW9uKHIpe2UucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0Tm9kZXMuY2FsbCh0aGlzLHIpO3ZhciBuPXRoaXMuX2xhYmVsQ29uZmlnLmdldChyKTtuIT1udWxsJiYobi5sYWJlbEFyZWEucmVtb3ZlKCksdGhpcy5fbGFiZWxDb25maWcuZGVsZXRlKHIpKX0sdC5wcm90b3R5cGUuX2FkZGl0aW9uYWxQYWludD1mdW5jdGlvbihyKXt2YXIgbj10aGlzO3RoaXMuZGF0YXNldHMoKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3JldHVybiBuLl9sYWJlbENvbmZpZy5nZXQoaSkubGFiZWxBcmVhLnNlbGVjdEFsbCgiZyIpLnJlbW92ZSgpfSksdGhpcy5fbGFiZWxzRW5hYmxlZCYmRmF0LldpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIG4uX2RyYXdMYWJlbHMoKX0scil9LHQucHJvdG90eXBlLl9kcmF3TGFiZWxzPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxuPXRoaXMuX2dldERhdGFUb0RyYXcoKSxpPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpO3RoaXMuZGF0YXNldHMoKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe2Zvcih2YXIgYT1uLmdldChvKSxzPWEubGVuZ3RoLGw9MDtsPHM7bCsrKXt2YXIgYz1hW2xdO2MhPW51bGwmJnIuX2RyYXdMYWJlbChjLGwsbyxpKX19KX0sdC5wcm90b3R5cGUuX2RyYXdMYWJlbD1mdW5jdGlvbihyLG4saSxvKXtpZihyLmxhYmVsIT1udWxsKXt2YXIgYT10aGlzLl9sYWJlbENvbmZpZy5nZXQoaSkscz1hLmxhYmVsQXJlYSxsPWEubWVhc3VyZXIsYz1hLndyaXRlcix1PXt4Om8ueChyLG4saSkseTpvLnkocixuLGkpfSxoPXdsLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuc2l6ZSgpKSxmPWgocixuLGkpLHA9dGhpcy5fbGFiZWxGb3JtYXR0ZXIoci5sYWJlbCxyLG4saSksZD1sLm1lYXN1cmUocCksZz10aGlzLl9jYWxjdWxhdGVMYWJlbFByb3BlcnRpZXModSxmLGQpLF89Zy5jb250YWluZXJEaW1lbnNpb25zLHk9Zy5sYWJlbENvbnRhaW5lck9yaWdpbix4PWcubGFiZWxPcmlnaW4sYj1nLmFsaWdubWVudCxTPXRoaXMuX2NyZWF0ZUxhYmVsQ29udGFpbmVyKHMseSx4LGQpLEM9e3hBbGlnbjpiLngseUFsaWduOmIueX07Yy53cml0ZShwLF8ud2lkdGgsXy5oZWlnaHQsQyxTLm5vZGUoKSl9fSx0LnByb3RvdHlwZS5fY2FsY3VsYXRlTGFiZWxQcm9wZXJ0aWVzPWZ1bmN0aW9uKHIsbixpKXt2YXIgbz1uPGkuaGVpZ2h0P24vMit0Ll9MQUJFTF9NQVJHSU5fRlJPTV9CVUJCTEU6MDtyZXR1cm57Y29udGFpbmVyRGltZW5zaW9uczp7d2lkdGg6aS53aWR0aCxoZWlnaHQ6aS5oZWlnaHR9LGxhYmVsQ29udGFpbmVyT3JpZ2luOnt4OnIueC1pLndpZHRoLzIseTpyLnktaS5oZWlnaHQvMitvfSxsYWJlbE9yaWdpbjp7eDpyLngseTpyLnl9LGFsaWdubWVudDp7eDoiY2VudGVyIix5OiJjZW50ZXIifX19LHQucHJvdG90eXBlLl9jcmVhdGVMYWJlbENvbnRhaW5lcj1mdW5jdGlvbihyLG4saSxvKXt2YXIgYT1yLmFwcGVuZCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK24ueCsiLCAiK24ueSsiKSIpO3JldHVybiBhLmNsYXNzZWQoIm9uLWJhci1sYWJlbCIsITApLGF9LHQuX1NJWkVfS0VZPSJzaXplIix0Ll9TWU1CT0xfS0VZPSJzeW1ib2wiLHQuX0xBQkVMX0FSRUFfQ0xBU1M9InNjYXR0ZXItbGFiZWwtdGV4dC1hcmVhIix0Ll9MQUJFTF9NQVJHSU5fRlJPTV9CVUJCTEU9MTUsdH0oRFVlLlhZUGxvdCk7SGF0LlNjYXR0ZXI9T1VlfSk7dmFyIENLdD1IKFZhdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoVmF0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgelVlPShkZSgpLFV0KHBlKSksRlVlPWtmKCksQlVlPVV1KCksSFVlPV9hdCgpLFZVZT1ScygpLFVVZT1BRigpLExTPW5zKCkscVVlPVZ2KCksR1VlPWZ1bmN0aW9uKGUpe3pVZS5fX2V4dGVuZHModCxlKTtmdW5jdGlvbiB0KCl7dmFyIHI9ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiByLmFkZENsYXNzKCJzZWdtZW50LXBsb3QiKSxyLmF0dHIoInN0cm9rZSIsbmV3IFZVZS5Db2xvcigpLnJhbmdlKClbMF0pLHIuYXR0cigic3Ryb2tlLXdpZHRoIiwiMnB4Iikscn1yZXR1cm4gdC5wcm90b3R5cGUuX2NyZWF0ZURyYXdlcj1mdW5jdGlvbigpe3JldHVybiBuZXcgQlVlLlByb3h5RHJhd2VyKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBIVWUuU2VnbWVudFNWR0RyYXdlcn0sZnVuY3Rpb24oKXtyZXR1cm4gVVVlLndhcm4oImNhbnZhcyByZW5kZXJlciBpcyBub3Qgc3VwcG9ydGVkIG9uIFNlZ21lbnQgUGxvdCEiKSxudWxsfSl9LHQucHJvdG90eXBlLl9nZW5lcmF0ZURyYXdTdGVwcz1mdW5jdGlvbigpe3JldHVyblt7YXR0clRvUHJvamVjdG9yOnRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLGFuaW1hdG9yOm5ldyBGVWUuTnVsbH1dfSx0LnByb3RvdHlwZS5fZmlsdGVyRm9yUHJvcGVydHk9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PT0ieDIiP2UucHJvdG90eXBlLl9maWx0ZXJGb3JQcm9wZXJ0eS5jYWxsKHRoaXMsIngiKTpyPT09InkyIj9lLnByb3RvdHlwZS5fZmlsdGVyRm9yUHJvcGVydHkuY2FsbCh0aGlzLCJ5Iik6ZS5wcm90b3R5cGUuX2ZpbHRlckZvclByb3BlcnR5LmNhbGwodGhpcyxyKX0sdC5wcm90b3R5cGUueD1mdW5jdGlvbihyLG4pe2lmKHI9PW51bGwpcmV0dXJuIGUucHJvdG90eXBlLnguY2FsbCh0aGlzKTtpZihuPT1udWxsKWUucHJvdG90eXBlLnguY2FsbCh0aGlzLHIpO2Vsc2V7ZS5wcm90b3R5cGUueC5jYWxsKHRoaXMscixuKTt2YXIgaT10aGlzLngyKCksbz1pJiZpLmFjY2Vzc29yO28hPW51bGwmJnRoaXMuX2JpbmRQcm9wZXJ0eSh0Ll9YMl9LRVksbyxuKX1yZXR1cm4gdGhpc30sdC5wcm90b3R5cGUueDI9ZnVuY3Rpb24ocil7aWYocj09bnVsbClyZXR1cm4gdGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQodC5fWDJfS0VZKTt2YXIgbj10aGlzLngoKSxpPW4mJm4uc2NhbGU7cmV0dXJuIHRoaXMuX2JpbmRQcm9wZXJ0eSh0Ll9YMl9LRVkscixpKSx0aGlzLnJlbmRlcigpLHRoaXN9LHQucHJvdG90eXBlLnk9ZnVuY3Rpb24ocixuKXtpZihyPT1udWxsKXJldHVybiBlLnByb3RvdHlwZS55LmNhbGwodGhpcyk7aWYobj09bnVsbCllLnByb3RvdHlwZS55LmNhbGwodGhpcyxyKTtlbHNle2UucHJvdG90eXBlLnkuY2FsbCh0aGlzLHIsbik7dmFyIGk9dGhpcy55MigpLG89aSYmaS5hY2Nlc3NvcjtvIT1udWxsJiZ0aGlzLl9iaW5kUHJvcGVydHkodC5fWTJfS0VZLG8sbil9cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLnkyPWZ1bmN0aW9uKHIpe2lmKHI9PW51bGwpcmV0dXJuIHRoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KHQuX1kyX0tFWSk7dmFyIG49dGhpcy55KCksaT1uJiZuLnNjYWxlO3JldHVybiB0aGlzLl9iaW5kUHJvcGVydHkodC5fWTJfS0VZLHIsaSksdGhpcy5yZW5kZXIoKSx0aGlzfSx0LnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzPWZ1bmN0aW9uKCl7dmFyIHI9ZS5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycy5jYWxsKHRoaXMpO3JldHVybiByLngxPUxTLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxyLngyPXRoaXMueDIoKT09bnVsbD9MUy5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSk6TFMuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54MigpKSxyLnkxPUxTLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueSgpKSxyLnkyPXRoaXMueTIoKT09bnVsbD9MUy5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSk6TFMuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy55MigpKSxyfSx0LnByb3RvdHlwZS5lbnRpdGllc0F0PWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXMuZW50aXR5TmVhcmVzdChyKTtyZXR1cm4gbiE9bnVsbD9bbl06W119LHQucHJvdG90eXBlLmVudGl0aWVzSW49ZnVuY3Rpb24ocixuKXt2YXIgaSxvO2lmKG49PW51bGwpe3ZhciBhPXI7aT17bWluOmEudG9wTGVmdC54LG1heDphLmJvdHRvbVJpZ2h0Lnh9LG89e21pbjphLnRvcExlZnQueSxtYXg6YS5ib3R0b21SaWdodC55fX1lbHNlIGk9cixvPW47cmV0dXJuIHRoaXMuX2VudGl0aWVzSW50ZXJzZWN0aW5nKGksbyl9LHQucHJvdG90eXBlLl9lbnRpdGllc0ludGVyc2VjdGluZz1mdW5jdGlvbihyLG4pe2Zvcih2YXIgaT1bXSxvPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLGE9dGhpcy5lbnRpdGllcygpLHM9YS5sZW5ndGgsbD0wO2w8cztsKyspe3ZhciBjPWFbbF07dGhpcy5fbGluZUludGVyc2VjdHNCb3goYyxyLG4sbykmJmkucHVzaChjKX1yZXR1cm4gaX0sdC5wcm90b3R5cGUuX2xpbmVJbnRlcnNlY3RzQm94PWZ1bmN0aW9uKHIsbixpLG8pe3ZhciBhPXRoaXMscz1vLngxKHIuZGF0dW0sci5pbmRleCxyLmRhdGFzZXQpLGw9by54MihyLmRhdHVtLHIuaW5kZXgsci5kYXRhc2V0KSxjPW8ueTEoci5kYXR1bSxyLmluZGV4LHIuZGF0YXNldCksdT1vLnkyKHIuZGF0dW0sci5pbmRleCxyLmRhdGFzZXQpO2lmKG4ubWluPD1zJiZzPD1uLm1heCYmaS5taW48PWMmJmM8PWkubWF4fHxuLm1pbjw9bCYmbDw9bi5tYXgmJmkubWluPD11JiZ1PD1pLm1heClyZXR1cm4hMDt2YXIgaD17eDpzLHk6Y30sZj17eDpsLHk6dX0scD1be3g6bi5taW4seTppLm1pbn0se3g6bi5taW4seTppLm1heH0se3g6bi5tYXgseTppLm1heH0se3g6bi5tYXgseTppLm1pbn1dLGQ9cC5maWx0ZXIoZnVuY3Rpb24oZyxfKXtyZXR1cm4gXyE9PTA/YS5fbGluZUludGVyc2VjdHNTZWdtZW50KGgsZixnLHBbXy0xXSkmJmEuX2xpbmVJbnRlcnNlY3RzU2VnbWVudChnLHBbXy0xXSxoLGYpOiExfSk7cmV0dXJuIGQubGVuZ3RoPjB9LHQucHJvdG90eXBlLl9saW5lSW50ZXJzZWN0c1NlZ21lbnQ9ZnVuY3Rpb24ocixuLGksbyl7dmFyIGE9ZnVuY3Rpb24ocyxsLGMpe3JldHVybihsLngtcy54KSooYy55LWwueSktKGwueS1zLnkpKihjLngtbC54KX07cmV0dXJuIGEocixuLGkpKmEocixuLG8pPDB9LHQuX1gyX0tFWT0ieDIiLHQuX1kyX0tFWT0ieTIiLHR9KHFVZS5YWVBsb3QpO1ZhdC5TZWdtZW50PUdVZX0pO3ZhciBJS3Q9SChVYXQ9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFVhdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFdVZT0oZGUoKSxVdChwZSkpLEFLdD0oRXIoKSxVdChNcikpLFlVZT1rZigpLFBLdD1DUygpLGUwPUZlKCksalVlPVRhdCgpLFhVZT1ucygpLCRVZT1mdW5jdGlvbihlKXtXVWUuX19leHRlbmRzKHQsZSk7ZnVuY3Rpb24gdCgpe3ZhciByPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gci5fc3RhY2tpbmdSZXN1bHQ9UEt0Lm1lbVRodW5rKGZ1bmN0aW9uKCl7cmV0dXJuIHIuZGF0YXNldHMoKX0sZnVuY3Rpb24oKXtyZXR1cm4gci54KCkuYWNjZXNzb3J9LGZ1bmN0aW9uKCl7cmV0dXJuIHIueSgpLmFjY2Vzc29yfSxmdW5jdGlvbigpe3JldHVybiByLl9zdGFja2luZ09yZGVyfSxmdW5jdGlvbihuLGksbyxhKXtyZXR1cm4gZTAuU3RhY2tpbmcuc3RhY2sobixpLG8sYSl9KSxyLl9zdGFja2VkRXh0ZW50PVBLdC5tZW1UaHVuayhyLl9zdGFja2luZ1Jlc3VsdCxmdW5jdGlvbigpe3JldHVybiByLngoKS5hY2Nlc3Nvcn0sZnVuY3Rpb24oKXtyZXR1cm4gci5fZmlsdGVyRm9yUHJvcGVydHkoInkiKX0sZnVuY3Rpb24obixpLG8pe3JldHVybiBlMC5TdGFja2luZy5zdGFja2VkRXh0ZW50KG4saSxvKX0pLHIuX2Jhc2VsaW5lVmFsdWU9MCxyLl9zdGFja2luZ09yZGVyPSJib3R0b211cCIsci5hZGRDbGFzcygic3RhY2tlZC1hcmVhLXBsb3QiKSxyLl9iYXNlbGluZVZhbHVlUHJvdmlkZXI9ZnVuY3Rpb24oKXtyZXR1cm5bci5fYmFzZWxpbmVWYWx1ZV19LHIuY3JvcHBlZFJlbmRlcmluZ0VuYWJsZWQoITEpLHJ9cmV0dXJuIHQucHJvdG90eXBlLmNyb3BwZWRSZW5kZXJpbmdFbmFibGVkPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP2UucHJvdG90eXBlLmNyb3BwZWRSZW5kZXJpbmdFbmFibGVkLmNhbGwodGhpcyk6cj8oZTAuV2luZG93Lndhcm4oIldhcm5pbmc6IFN0YWNrZWQgQXJlYSBQbG90IGRvZXMgbm90IHN1cHBvcnQgY3JvcHBlZCByZW5kZXJpbmcuIiksdGhpcyk6ZS5wcm90b3R5cGUuY3JvcHBlZFJlbmRlcmluZ0VuYWJsZWQuY2FsbCh0aGlzLHIpfSx0LnByb3RvdHlwZS5fZ2V0QW5pbWF0b3I9ZnVuY3Rpb24ocil7cmV0dXJuIG5ldyBZVWUuTnVsbH0sdC5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7ZS5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fYmFzZWxpbmU9dGhpcy5fcmVuZGVyQXJlYS5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKCJiYXNlbGluZSIsITApfSx0LnByb3RvdHlwZS54PWZ1bmN0aW9uKHIsbil7cmV0dXJuIHI9PW51bGw/ZS5wcm90b3R5cGUueC5jYWxsKHRoaXMpOihuPT1udWxsP2UucHJvdG90eXBlLnguY2FsbCh0aGlzLHIpOmUucHJvdG90eXBlLnguY2FsbCh0aGlzLHIsbiksdGhpcy5fY2hlY2tTYW1lRG9tYWluKCksdGhpcyl9LHQucHJvdG90eXBlLnk9ZnVuY3Rpb24ocixuKXtyZXR1cm4gcj09bnVsbD9lLnByb3RvdHlwZS55LmNhbGwodGhpcyk6KG49PW51bGw/ZS5wcm90b3R5cGUueS5jYWxsKHRoaXMscik6ZS5wcm90b3R5cGUueS5jYWxsKHRoaXMscixuKSx0aGlzLl9jaGVja1NhbWVEb21haW4oKSx0aGlzKX0sdC5wcm90b3R5cGUueU9mZnNldD1mdW5jdGlvbihyLG4pe3ZhciBpPXRoaXMuX3N0YWNraW5nUmVzdWx0KCk7aWYoaSE9bnVsbCl7dmFyIG89aS5nZXQocik7aWYobyE9bnVsbCl7dmFyIGE9by5nZXQoU3RyaW5nKG4pKTtpZihhIT1udWxsKXJldHVybiBhLm9mZnNldH19fSx0LnByb3RvdHlwZS5zdGFja2luZ09yZGVyPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX3N0YWNraW5nT3JkZXI6KHRoaXMuX3N0YWNraW5nT3JkZXI9cix0aGlzLl9vbkRhdGFzZXRVcGRhdGUoKSx0aGlzKX0sdC5wcm90b3R5cGUuZG93bnNhbXBsaW5nRW5hYmxlZD1mdW5jdGlvbihyKXtyZXR1cm4gcj09bnVsbD9lLnByb3RvdHlwZS5kb3duc2FtcGxpbmdFbmFibGVkLmNhbGwodGhpcyk6KGUwLldpbmRvdy53YXJuKCJXYXJuaW5nOiBTdGFja2VkIEFyZWEgUGxvdCBkb2VzIG5vdCBzdXBwb3J0IGRvd25zYW1wbGluZyIpLHRoaXMpfSx0LnByb3RvdHlwZS5fYWRkaXRpb25hbFBhaW50PWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy55KCkuc2NhbGUuc2NhbGUodGhpcy5fYmFzZWxpbmVWYWx1ZSksbj17eDE6MCx5MTpyLHgyOnRoaXMud2lkdGgoKSx5MjpyfTt0aGlzLl9nZXRBbmltYXRvcigiYmFzZWxpbmUiKS5hbmltYXRlKHRoaXMuX2Jhc2VsaW5lLG4pfSx0LnByb3RvdHlwZS5fdXBkYXRlWVNjYWxlPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy55KCksbj1yJiZyLnNjYWxlO24hPW51bGwmJihuLmFkZFBhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXIodGhpcy5fYmFzZWxpbmVWYWx1ZVByb3ZpZGVyKSxuLmFkZEluY2x1ZGVkVmFsdWVzUHJvdmlkZXIodGhpcy5fYmFzZWxpbmVWYWx1ZVByb3ZpZGVyKSl9LHQucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2hlY2tTYW1lRG9tYWluKCksZS5wcm90b3R5cGUuX29uRGF0YXNldFVwZGF0ZS5jYWxsKHRoaXMpLHRoaXN9LHQucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eT1mdW5jdGlvbihyKXt2YXIgbj0ieSI7cmV0dXJuIHI9PT1uP1t0aGlzLl9zdGFja2VkRXh0ZW50KCldOmUucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eS5jYWxsKHRoaXMscil9LHQucHJvdG90eXBlLl9jaGVja1NhbWVEb21haW49ZnVuY3Rpb24oKXtpZighIXRoaXMuX3Byb2plY3RvcnNSZWFkeSgpKXt2YXIgcj10aGlzLmRhdGFzZXRzKCksbj10aGlzLngoKS5hY2Nlc3NvcixpPXIubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBBS3Quc2V0KGEuZGF0YSgpLm1hcChmdW5jdGlvbihzLGwpe3JldHVybiBlMC5TdGFja2luZy5ub3JtYWxpemVLZXkobihzLGwsYSkpfSkpLnZhbHVlcygpfSksbz10Ll9kb21haW5LZXlzKHIsbik7aS5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBhLmxlbmd0aCE9PW8ubGVuZ3RofSkmJmUwLldpbmRvdy53YXJuKCJ0aGUgZG9tYWlucyBhY3Jvc3MgdGhlIGRhdGFzZXRzIGFyZSBub3QgdGhlIHNhbWUuIFBsb3QgbWF5IHByb2R1Y2UgdW5pbnRlbmRlZCBiZWhhdmlvci4iKX19LHQuX2RvbWFpbktleXM9ZnVuY3Rpb24ocixuKXt2YXIgaT1BS3Quc2V0KCk7cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihvKXtmb3IodmFyIGE9by5kYXRhKCkscz1hLmxlbmd0aCxsPTA7bDxzO2wrKyl7dmFyIGM9YVtsXTtpLmFkZChuKGMsbCxvKSl9fSksaS52YWx1ZXMoKX0sdC5wcm90b3R5cGUuX2Nvb3JkaW5hdGVQcm9qZWN0b3JzPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxuPVhVZS5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSksaT10aGlzLnkoKS5hY2Nlc3NvcixvPXRoaXMueCgpLmFjY2Vzc29yLGE9ZnVuY3Rpb24odSxoLGYpe3JldHVybiBlMC5TdGFja2luZy5ub3JtYWxpemVLZXkobyh1LGgsZikpfSxzPXRoaXMuX3N0YWNraW5nUmVzdWx0KCksbD1mdW5jdGlvbih1LGgsZil7dmFyIHA9K2kodSxoLGYpLGQ9cy5nZXQoZikuZ2V0KGEodSxoLGYpKS5vZmZzZXQ7cmV0dXJuIHIueSgpLnNjYWxlLnNjYWxlKHArZCl9LGM9ZnVuY3Rpb24odSxoLGYpe3ZhciBwPXMuZ2V0KGYpLmdldChhKHUsaCxmKSkub2Zmc2V0O3JldHVybiByLnkoKS5zY2FsZS5zY2FsZShwKX07cmV0dXJuW24sbCxjXX0sdC5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycz1mdW5jdGlvbigpe3ZhciByPWUucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnMuY2FsbCh0aGlzKSxuPXRoaXMuX2Nvb3JkaW5hdGVQcm9qZWN0b3JzKCksaT1uWzBdLG89blsxXSxhPW5bMl07cmV0dXJuIHIuZD10aGlzLl9jb25zdHJ1Y3RBcmVhUHJvamVjdG9yKGksbyxhKSxyfSx0LnByb3RvdHlwZS5fcGl4ZWxQb2ludD1mdW5jdGlvbihyLG4saSl7dmFyIG89ZS5wcm90b3R5cGUuX3BpeGVsUG9pbnQuY2FsbCh0aGlzLHIsbixpKSxhPXRoaXMueCgpLmFjY2Vzc29yKHIsbixpKSxzPXRoaXMueSgpLmFjY2Vzc29yKHIsbixpKSxsPXRoaXMueSgpLnNjYWxlLnNjYWxlKCtzK3RoaXMuX3N0YWNraW5nUmVzdWx0KCkuZ2V0KGkpLmdldChlMC5TdGFja2luZy5ub3JtYWxpemVLZXkoYSkpLm9mZnNldCk7cmV0dXJue3g6by54LHk6bH19LHR9KGpVZS5BcmVhKTtVYXQuU3RhY2tlZEFyZWE9JFVlfSk7dmFyIGtLdD1IKFdhdD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoV2F0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgS1VlPShkZSgpLFV0KHBlKSkscWF0PXlsKCksWlVlPUJ1KCksTEt0PUNTKCksZEI9RmUoKSxHYXQ9eTQoKSxKVWU9bnMoKSxRVWU9ZnVuY3Rpb24oZSl7S1VlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQocil7cj09PXZvaWQgMCYmKHI9InZlcnRpY2FsIik7dmFyIG49ZS5jYWxsKHRoaXMscil8fHRoaXM7cmV0dXJuIG4uX2V4dHJlbWFGb3JtYXR0ZXI9WlVlLmlkZW50aXR5KCksbi5fc3RhY2tpbmdSZXN1bHQ9TEt0Lm1lbVRodW5rKGZ1bmN0aW9uKCl7cmV0dXJuIG4uZGF0YXNldHMoKX0sZnVuY3Rpb24oKXtyZXR1cm4gbi5wb3NpdGlvbigpLmFjY2Vzc29yfSxmdW5jdGlvbigpe3JldHVybiBuLmxlbmd0aCgpLmFjY2Vzc29yfSxmdW5jdGlvbigpe3JldHVybiBuLl9zdGFja2luZ09yZGVyfSxmdW5jdGlvbihpLG8sYSxzKXtyZXR1cm4gZEIuU3RhY2tpbmcuc3RhY2soaSxvLGEscyl9KSxuLl9zdGFja2VkRXh0ZW50PUxLdC5tZW1UaHVuayhuLl9zdGFja2luZ1Jlc3VsdCxmdW5jdGlvbigpe3JldHVybiBuLnBvc2l0aW9uKCkuYWNjZXNzb3J9LGZ1bmN0aW9uKCl7cmV0dXJuIG4uX2ZpbHRlckZvclByb3BlcnR5KG4uX2lzVmVydGljYWw/InkiOiJ4Iil9LGZ1bmN0aW9uKGksbyxhKXtyZXR1cm4gZEIuU3RhY2tpbmcuc3RhY2tlZEV4dGVudChpLG8sYSl9KSxuLmFkZENsYXNzKCJzdGFja2VkLWJhci1wbG90Iiksbi5fc3RhY2tpbmdPcmRlcj0iYm90dG9tdXAiLG59cmV0dXJuIHQucHJvdG90eXBlLnN0YWNraW5nT3JkZXI9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5fc3RhY2tpbmdPcmRlcjoodGhpcy5fc3RhY2tpbmdPcmRlcj1yLHRoaXMuX29uRGF0YXNldFVwZGF0ZSgpLHRoaXMpfSx0LnByb3RvdHlwZS5leHRyZW1hRm9ybWF0dGVyPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MD90aGlzLl9leHRyZW1hRm9ybWF0dGVyOih0aGlzLl9leHRyZW1hRm9ybWF0dGVyPXIsdGhpcy5yZW5kZXIoKSx0aGlzKX0sdC5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7ZS5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fbGFiZWxBcmVhPXRoaXMuX3JlbmRlckFyZWEuYXBwZW5kKCJnIikuY2xhc3NlZChHYXQuQmFyLl9MQUJFTF9BUkVBX0NMQVNTLCEwKTt2YXIgcj1uZXcgcWF0LlN2Z0NvbnRleHQodGhpcy5fbGFiZWxBcmVhLm5vZGUoKSk7dGhpcy5fbWVhc3VyZXI9bmV3IHFhdC5DYWNoZU1lYXN1cmVyKHIpLHRoaXMuX3dyaXRlcj1uZXcgcWF0LldyaXRlcih0aGlzLl9tZWFzdXJlcixyKX0sdC5wcm90b3R5cGUuX2RyYXdMYWJlbHM9ZnVuY3Rpb24oKXt2YXIgcj10aGlzO2UucHJvdG90eXBlLl9kcmF3TGFiZWxzLmNhbGwodGhpcyksdGhpcy5fbGFiZWxBcmVhLnNlbGVjdEFsbCgiZyIpLnJlbW92ZSgpO3ZhciBuPSt0aGlzLmJhc2VsaW5lVmFsdWUoKSxpPXRoaXMucG9zaXRpb24oKS5zY2FsZSxvPXRoaXMubGVuZ3RoKCkuc2NhbGUsYT1kQi5TdGFja2luZy5zdGFja2VkRXh0ZW50cyh0aGlzLl9zdGFja2luZ1Jlc3VsdCgpKSxzPWEubWF4aW11bUV4dGVudHMsbD1hLm1pbmltdW1FeHRlbnRzLGM9W10sdT1mdW5jdGlvbihmLHAsZCl7dmFyIGc9cC50b3BMZWZ0LF89Zy54LHk9Zy55LHg9cC5ib3R0b21SaWdodC54LXAudG9wTGVmdC54LGI9cC5ib3R0b21SaWdodC55LXAudG9wTGVmdC55LFM9ci5faXNWZXJ0aWNhbD94PmQ6Yj5kO2lmKCFTKXt2YXIgQz1yLl9sYWJlbEFyZWEuYXBwZW5kKCJnIikuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrXysiLCAiK3krIikiKTtDLmNsYXNzZWQoInN0YWNrZWQtYmFyLWxhYmVsIiwhMCk7dmFyIFA9e3hBbGlnbjoiY2VudGVyIix5QWxpZ246ImNlbnRlciJ9O3IuX3dyaXRlci53cml0ZShmLHgsYixQLEMubm9kZSgpKX1yZXR1cm4gU30saD1mdW5jdGlvbihmLHApe3ZhciBkPXIuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yKCksZz1yLndpZHRoKCksXz1yLmhlaWdodCgpO2YuZm9yRWFjaChmdW5jdGlvbih5KXtpZih5LmV4dGVudCE9PW4pe3ZhciB4PXIuZXh0cmVtYUZvcm1hdHRlcigpKHkuZXh0ZW50KSxiPXIuX21lYXN1cmVyLm1lYXN1cmUoeCksUz15LnN0YWNrZWREYXR1bSxDPVMub3JpZ2luYWxEYXR1bSxQPVMub3JpZ2luYWxJbmRleCxrPVMub3JpZ2luYWxEYXRhc2V0O2lmKCFyLl9pc0RhdHVtT25TY3JlZW4oZCxnLF8sQyxQLGspKXJldHVybjt2YXIgTz1KVWUuUGxvdC5fc2NhbGVkQWNjZXNzb3Ioci5hdHRyKEdhdC5CYXIuX0JBUl9USElDS05FU1NfS0VZKSkoQyxQLGspLEQ9by5zY2FsZSh5LmV4dGVudCksQj1yLl9nZXRQb3NpdGlvbkF0dHIoaS5zY2FsZSh5LmF4aXNWYWx1ZSksTykrTy8yLEk9ci5faXNWZXJ0aWNhbD97eDpCLHk6RH06e3g6RCx5OkJ9LEw9cChJLGIsTyksUj11KHgse3RvcExlZnQ6TCxib3R0b21SaWdodDp7eDpMLngrYi53aWR0aCx5OkwueStiLmhlaWdodH19LE8pO2MucHVzaChSKX19KX07aChzLGZ1bmN0aW9uKGYscCxkKXt2YXIgZz1yLl9pc1ZlcnRpY2FsP3Aud2lkdGg6cC5oZWlnaHQsXz1yLl9pc1ZlcnRpY2FsP3AuaGVpZ2h0OnAud2lkdGg7cmV0dXJue3g6ci5faXNWZXJ0aWNhbD9mLngtZy8yOmYueCt0Ll9FWFRSRU1BX0xBQkVMX01BUkdJTl9GUk9NX0JBUix5OnIuX2lzVmVydGljYWw/Zi55LV86Zi55LWcvMn19KSxoKGwsZnVuY3Rpb24oZixwLGQpe3ZhciBnPXIuX2lzVmVydGljYWw/cC53aWR0aDpwLmhlaWdodCxfPXIuX2lzVmVydGljYWw/cC5oZWlnaHQ6cC53aWR0aDtyZXR1cm57eDpyLl9pc1ZlcnRpY2FsP2YueC1nLzI6Zi54LV8seTpyLl9pc1ZlcnRpY2FsP2YueSt0Ll9FWFRSRU1BX0xBQkVMX01BUkdJTl9GUk9NX0JBUjpmLnktZy8yfX0pLGMuc29tZShmdW5jdGlvbihmKXtyZXR1cm4gZn0pJiZ0aGlzLl9sYWJlbEFyZWEuc2VsZWN0QWxsKCJnIikucmVtb3ZlKCl9LHQucHJvdG90eXBlLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3Rvcj1mdW5jdGlvbigpe3ZhciByPXRoaXMsbj1lLnByb3RvdHlwZS5fZ2VuZXJhdGVBdHRyVG9Qcm9qZWN0b3IuY2FsbCh0aGlzKSxpPXRoaXMuX2lzVmVydGljYWw/InkiOiJ4IixvPXRoaXMubGVuZ3RoKCkuc2NhbGUsYT10aGlzLmxlbmd0aCgpLmFjY2Vzc29yLHM9dGhpcy5wb3NpdGlvbigpLmFjY2Vzc29yLGw9ZnVuY3Rpb24oZCxnLF8pe3JldHVybiBkQi5TdGFja2luZy5ub3JtYWxpemVLZXkocyhkLGcsXykpfSxjPXRoaXMuX3N0YWNraW5nUmVzdWx0KCksdT1mdW5jdGlvbihkLGcsXyl7cmV0dXJuIG8uc2NhbGUoYy5nZXQoXykuZ2V0KGwoZCxnLF8pKS5vZmZzZXQpfSxoPWZ1bmN0aW9uKGQsZyxfKXtyZXR1cm4gby5zY2FsZSgrYShkLGcsXykrYy5nZXQoXykuZ2V0KGwoZCxnLF8pKS5vZmZzZXQpfSxmPWZ1bmN0aW9uKGQsZyxfKXtyZXR1cm4gTWF0aC5hYnMoaChkLGcsXyktdShkLGcsXykpfTtuW3RoaXMuX2lzVmVydGljYWw/ImhlaWdodCI6IndpZHRoIl09Zjt2YXIgcD1mdW5jdGlvbihkLGcsXyl7cmV0dXJuK2EoZCxnLF8pPDA/dShkLGcsXyk6aChkLGcsXyl9O3JldHVybiBuW2ldPWZ1bmN0aW9uKGQsZyxfKXtyZXR1cm4gci5faXNWZXJ0aWNhbD9wKGQsZyxfKTpwKGQsZyxfKS1mKGQsZyxfKX0sbn0sdC5wcm90b3R5cGUuZ2V0RXh0ZW50c0ZvclByb3BlcnR5PWZ1bmN0aW9uKHIpe3ZhciBuPXRoaXMuX2lzVmVydGljYWw/InkiOiJ4IjtyZXR1cm4gcj09PW4/W3RoaXMuX3N0YWNrZWRFeHRlbnQoKV06ZS5wcm90b3R5cGUuZ2V0RXh0ZW50c0ZvclByb3BlcnR5LmNhbGwodGhpcyxyKX0sdC5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7ZS5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlLmNhbGwodGhpcyksdGhpcy5fbWVhc3VyZXIucmVzZXQoKX0sdC5fRVhUUkVNQV9MQUJFTF9NQVJHSU5fRlJPTV9CQVI9NSx0fShHYXQuQmFyKTtXYXQuU3RhY2tlZEJhcj1RVWV9KTt2YXIgUkt0PUgoWWF0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShZYXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB0cWU9KGRlKCksVXQocGUpKSxlcWU9RmUoKSxycWU9eTQoKSxucWU9bnMoKSxpcWU9ZnVuY3Rpb24oZSl7dHFlLl9fZXh0ZW5kcyh0LGUpO2Z1bmN0aW9uIHQoKXt2YXIgcj1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHIuX2Nvbm5lY3RvcnNFbmFibGVkPSExLHIuYWRkQ2xhc3MoIndhdGVyZmFsbC1wbG90Iikscn1yZXR1cm4gdC5wcm90b3R5cGUuY29ubmVjdG9yc0VuYWJsZWQ9ZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/dGhpcy5fY29ubmVjdG9yc0VuYWJsZWQ6KHRoaXMuX2Nvbm5lY3RvcnNFbmFibGVkPXIsdGhpcyl9LHQucHJvdG90eXBlLnRvdGFsPWZ1bmN0aW9uKHIpe3JldHVybiByPT1udWxsP3RoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KHQuX1RPVEFMX0tFWSk6KHRoaXMuX2JpbmRQcm9wZXJ0eSh0Ll9UT1RBTF9LRVkscixudWxsKSx0aGlzKX0sdC5wcm90b3R5cGUuX2FkZGl0aW9uYWxQYWludD1mdW5jdGlvbihyKXt2YXIgbj10aGlzO3RoaXMuX2Nvbm5lY3RvckFyZWEuc2VsZWN0QWxsKCJsaW5lIikucmVtb3ZlKCksdGhpcy5fY29ubmVjdG9yc0VuYWJsZWQmJmVxZS5XaW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBuLl9kcmF3Q29ubmVjdG9ycygpfSxyKX0sdC5wcm90b3R5cGUuX2NyZWF0ZU5vZGVzRm9yRGF0YXNldD1mdW5jdGlvbihyKXt2YXIgbj1lLnByb3RvdHlwZS5fY3JlYXRlTm9kZXNGb3JEYXRhc2V0LmNhbGwodGhpcyxyKTtyZXR1cm4gdGhpcy5fY29ubmVjdG9yQXJlYT10aGlzLl9yZW5kZXJBcmVhLmFwcGVuZCgiZyIpLmNsYXNzZWQodC5fQ09OTkVDVE9SX0FSRUFfQ0xBU1MsITApLG59LHQucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eT1mdW5jdGlvbihyKXt2YXIgbj0ieSI7cmV0dXJuIHI9PT1uP1t0aGlzLl9leHRlbnRdOmUucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eS5jYWxsKHRoaXMscil9LHQucHJvdG90eXBlLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3Rvcj1mdW5jdGlvbigpe3ZhciByPXRoaXMsbj1lLnByb3RvdHlwZS5fZ2VuZXJhdGVBdHRyVG9Qcm9qZWN0b3IuY2FsbCh0aGlzKSxpPXRoaXMueSgpLnNjYWxlLG89bnFlLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMudG90YWwoKSksYT10aGlzLmF0dHIoInkiKTthPT1udWxsJiYobi55PWZ1bmN0aW9uKGwsYyx1KXt2YXIgaD1yLnkoKS5hY2Nlc3NvcihsLGMsdSksZj1vKGwsYyx1KTtpZihmKXJldHVybiBNYXRoLm1pbihpLnNjYWxlKGgpLGkuc2NhbGUoMCkpO3ZhciBwPXIuX3N1YnRvdGFsc1tjXTtpZihjPT09MClyZXR1cm4gaDwwP2kuc2NhbGUocC1oKTppLnNjYWxlKHApO3ZhciBkPXIuX3N1YnRvdGFsc1tjLTFdO3JldHVybiBwPmQ/aS5zY2FsZShwKTppLnNjYWxlKGQpfSk7dmFyIHM9dGhpcy5hdHRyKCJoZWlnaHQiKTtyZXR1cm4gcz09bnVsbCYmKG4uaGVpZ2h0PWZ1bmN0aW9uKGwsYyx1KXt2YXIgaD1vKGwsYyx1KSxmPXIueSgpLmFjY2Vzc29yKGwsYyx1KTtpZihoKXJldHVybiBNYXRoLmFicyhpLnNjYWxlKGYpLWkuc2NhbGUoMCkpO3ZhciBwPXIuX3N1YnRvdGFsc1tjXTtpZihjPT09MClyZXR1cm4gTWF0aC5hYnMoaS5zY2FsZShwKS1pLnNjYWxlKHAtZikpO3ZhciBkPXIuX3N1YnRvdGFsc1tjLTFdO3JldHVybiBNYXRoLmFicyhpLnNjYWxlKHApLWkuc2NhbGUoZCkpfSksbi5jbGFzcz1mdW5jdGlvbihsLGMsdSl7dmFyIGg9IiI7ci5hdHRyKCJjbGFzcyIpIT1udWxsJiYoaD1yLmF0dHIoImNsYXNzIikuYWNjZXNzb3IobCxjLHUpKyIgIik7dmFyIGY9byhsLGMsdSk7aWYoZilyZXR1cm4gaCt0Ll9CQVJfVE9UQUxfQ0xBU1M7dmFyIHA9ci55KCkuYWNjZXNzb3IobCxjLHUpO3JldHVybiBoKyhwPjA/dC5fQkFSX0dST1dUSF9DTEFTUzp0Ll9CQVJfREVDTElORV9DTEFTUyl9LG59LHQucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdXBkYXRlU3VidG90YWxzKCksZS5wcm90b3R5cGUuX29uRGF0YXNldFVwZGF0ZS5jYWxsKHRoaXMpLHRoaXN9LHQucHJvdG90eXBlLl9jYWxjdWxhdGVTdWJ0b3RhbHNBbmRFeHRlbnQ9ZnVuY3Rpb24ocil7Zm9yKHZhciBuPU51bWJlci5NQVhfVkFMVUUsaT1OdW1iZXIuTUlOX1ZBTFVFLG89MCxhPSExLHM9ci5kYXRhKCksbD1zLmxlbmd0aCxjPTA7YzxsO2MrKyl7dmFyIHU9c1tjXSxoPXRoaXMueSgpLmFjY2Vzc29yKHUsYyxyKSxmPXRoaXMudG90YWwoKS5hY2Nlc3Nvcih1LGMscik7aWYoKCFmfHxjPT09MCkmJihvKz1oKSx0aGlzLl9zdWJ0b3RhbHMucHVzaChvKSxvPG4mJihuPW8pLG8+aSYmKGk9byksZiYmKGg8biYmKG49aCksaD5pJiYoaT1oKSksIWEmJmYpe2Zvcih2YXIgcD1oLW8sZD0wO2Q8dGhpcy5fc3VidG90YWxzLmxlbmd0aDtkKyspdGhpcy5fc3VidG90YWxzW2RdKz1wO2E9ITAsbys9cCxuKz1wLGkrPXB9fXRoaXMuX2V4dGVudD1bbixpXX0sdC5wcm90b3R5cGUuX2RyYXdDb25uZWN0b3JzPWZ1bmN0aW9uKCl7Zm9yKHZhciByPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLG49dGhpcy5kYXRhc2V0cygpWzBdLGk9MTtpPG4uZGF0YSgpLmxlbmd0aDtpKyspe3ZhciBvPWktMSxhPW4uZGF0YSgpW2ldLHM9bi5kYXRhKClbb10sbD1yLngocyxvLG4pLGM9ci54KGEsaSxuKStyLndpZHRoKGEsaSxuKSx1PXIueShhLGksbik7KHRoaXMuX3N1YnRvdGFsc1tpXT4wJiZ0aGlzLl9zdWJ0b3RhbHNbaV0+dGhpcy5fc3VidG90YWxzW29dfHx0aGlzLl9zdWJ0b3RhbHNbaV08MCYmdGhpcy5fc3VidG90YWxzW2ldPj10aGlzLl9zdWJ0b3RhbHNbb10pJiYodT1yLnkoYSxpLG4pK3IuaGVpZ2h0KGEsaSxuKSksdGhpcy5fY29ubmVjdG9yQXJlYS5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKHQuX0NPTk5FQ1RPUl9DTEFTUywhMCkuYXR0cigieDEiLGwpLmF0dHIoIngyIixjKS5hdHRyKCJ5MSIsdSkuYXR0cigieTIiLHUpfX0sdC5wcm90b3R5cGUuX3VwZGF0ZVN1YnRvdGFscz1mdW5jdGlvbigpe3ZhciByPXRoaXMuZGF0YXNldHMoKTtpZihyLmxlbmd0aD4wKXt2YXIgbj1yW3IubGVuZ3RoLTFdO3RoaXMuX3N1YnRvdGFscz1uZXcgQXJyYXksdGhpcy5fY2FsY3VsYXRlU3VidG90YWxzQW5kRXh0ZW50KG4pfX0sdC5fQkFSX0RFQ0xJTkVfQ0xBU1M9IndhdGVyZmFsbC1kZWNsaW5lIix0Ll9CQVJfR1JPV1RIX0NMQVNTPSJ3YXRlcmZhbGwtZ3Jvd3RoIix0Ll9CQVJfVE9UQUxfQ0xBU1M9IndhdGVyZmFsbC10b3RhbCIsdC5fQ09OTkVDVE9SX0NMQVNTPSJjb25uZWN0b3IiLHQuX0NPTk5FQ1RPUl9BUkVBX0NMQVNTPSJjb25uZWN0b3ItYXJlYSIsdC5fVE9UQUxfS0VZPSJ0b3RhbCIsdH0ocnFlLkJhcik7WWF0LldhdGVyZmFsbD1pcWV9KTt2YXIgSVM9SCh6cz0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoenMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB6Yz0oZGUoKSxVdChwZSkpO3pjLl9fZXhwb3J0U3RhcihUYXQoKSx6cyk7emMuX19leHBvcnRTdGFyKHk0KCksenMpO3pjLl9fZXhwb3J0U3RhcihHb3QoKSx6cyk7emMuX19leHBvcnRTdGFyKHdLdCgpLHpzKTt6Yy5fX2V4cG9ydFN0YXIoU2F0KCksenMpO3pjLl9fZXhwb3J0U3RhcihTS3QoKSx6cyk7emMuX19leHBvcnRTdGFyKE1LdCgpLHpzKTt6Yy5fX2V4cG9ydFN0YXIoVEt0KCksenMpO3pjLl9fZXhwb3J0U3RhcihDS3QoKSx6cyk7emMuX19leHBvcnRTdGFyKElLdCgpLHpzKTt6Yy5fX2V4cG9ydFN0YXIoa0t0KCksenMpO3pjLl9fZXhwb3J0U3RhcihSS3QoKSx6cyl9KTt2YXIgTkt0PUgoamF0PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShqYXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2phdC52ZXJzaW9uPSIzLjkuMCJ9KTt2YXIgU2w9SChsbj0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBGYz0oZGUoKSxVdChwZSkpOyRqdCgpO3ZhciBvcWU9a2YoKTtsbi5BbmltYXRvcnM9b3FlO3ZhciBhcWU9ZiR0KCk7bG4uQXhlcz1hcWU7dmFyIHNxZT1Qb3QoKTtsbi5Db21wb25lbnRzPXNxZTt2YXIgbHFlPSRBKCk7bG4uQ29uZmlncz1scWU7dmFyIGNxZT1CdSgpO2xuLkZvcm1hdHRlcnM9Y3FlO3ZhciB1cWU9SUYoKTtsbi5SZW5kZXJDb250cm9sbGVyPXVxZTt2YXIgaHFlPUhpdCgpO2xuLlJlbmRlclBvbGljaWVzPWhxZTt2YXIgZnFlPVhGKCk7bG4uU3ltYm9sRmFjdG9yaWVzPWZxZTt2YXIgcHFlPUR2KCk7bG4uRGlzcGF0Y2hlcnM9cHFlO3ZhciBkcWU9SHYoKTtsbi5EcmF3ZXJzPWRxZTt2YXIgbXFlPWw0KCk7bG4uSW50ZXJhY3Rpb25zPW1xZTt2YXIgZ3FlPUlTKCk7bG4uUGxvdHM9Z3FlO3ZhciBfcWU9UnMoKTtsbi5TY2FsZXM9X3FlO3ZhciB5cWU9RmUoKTtsbi5VdGlscz15cWU7RmMuX19leHBvcnRTdGFyKHQ0KCksbG4pO3ZhciB2cWU9SEYoKTtsbi5UaW1lSW50ZXJ2YWw9dnFlLlRpbWVJbnRlcnZhbDtGYy5fX2V4cG9ydFN0YXIoa2MoKSxsbik7RmMuX19leHBvcnRTdGFyKFdGKCksbG4pO0ZjLl9fZXhwb3J0U3RhcihZb3QoKSxsbik7dmFyIHhxZT1OS3QoKTtsbi52ZXJzaW9uPXhxZS52ZXJzaW9uO0ZjLl9fZXhwb3J0U3RhcihvNCgpLGxuKTtGYy5fX2V4cG9ydFN0YXIoVXUoKSxsbik7RmMuX19leHBvcnRTdGFyKE92KCksbG4pO0ZjLl9fZXhwb3J0U3Rhcih3b3QoKSxsbik7RmMuX19leHBvcnRTdGFyKFZ2KCksbG4pO0ZjLl9fZXhwb3J0U3RhcihucygpLGxuKTtGYy5fX2V4cG9ydFN0YXIoeGQoKSxsbik7RmMuX19leHBvcnRTdGFyKGt2KCksbG4pfSk7dmFyIFFLdD1IKChzWG4sSkt0KT0+e2Z1bmN0aW9uIEJxZSgpe3RoaXMuX19kYXRhX189W10sdGhpcy5zaXplPTB9Skt0LmV4cG9ydHM9QnFlfSk7dmFyIGp2PUgoKGxYbix0WnQpPT57ZnVuY3Rpb24gSHFlKGUsdCl7cmV0dXJuIGU9PT10fHxlIT09ZSYmdCE9PXR9dFp0LmV4cG9ydHM9SHFlfSk7dmFyIE00PUgoKGNYbixlWnQpPT57dmFyIFZxZT1qdigpO2Z1bmN0aW9uIFVxZShlLHQpe2Zvcih2YXIgcj1lLmxlbmd0aDtyLS07KWlmKFZxZShlW3JdWzBdLHQpKXJldHVybiByO3JldHVybi0xfWVadC5leHBvcnRzPVVxZX0pO3ZhciBuWnQ9SCgodVhuLHJadCk9Pnt2YXIgcXFlPU00KCksR3FlPUFycmF5LnByb3RvdHlwZSxXcWU9R3FlLnNwbGljZTtmdW5jdGlvbiBZcWUoZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXyxyPXFxZSh0LGUpO2lmKHI8MClyZXR1cm4hMTt2YXIgbj10Lmxlbmd0aC0xO3JldHVybiByPT1uP3QucG9wKCk6V3FlLmNhbGwodCxyLDEpLC0tdGhpcy5zaXplLCEwfXJadC5leHBvcnRzPVlxZX0pO3ZhciBvWnQ9SCgoaFhuLGladCk9Pnt2YXIganFlPU00KCk7ZnVuY3Rpb24gWHFlKGUpe3ZhciB0PXRoaXMuX19kYXRhX18scj1qcWUodCxlKTtyZXR1cm4gcjwwP3ZvaWQgMDp0W3JdWzFdfWladC5leHBvcnRzPVhxZX0pO3ZhciBzWnQ9SCgoZlhuLGFadCk9Pnt2YXIgJHFlPU00KCk7ZnVuY3Rpb24gS3FlKGUpe3JldHVybiAkcWUodGhpcy5fX2RhdGFfXyxlKT4tMX1hWnQuZXhwb3J0cz1LcWV9KTt2YXIgY1p0PUgoKHBYbixsWnQpPT57dmFyIFpxZT1NNCgpO2Z1bmN0aW9uIEpxZShlLHQpe3ZhciByPXRoaXMuX19kYXRhX18sbj1acWUocixlKTtyZXR1cm4gbjwwPygrK3RoaXMuc2l6ZSxyLnB1c2goW2UsdF0pKTpyW25dWzFdPXQsdGhpc31sWnQuZXhwb3J0cz1KcWV9KTt2YXIgRTQ9SCgoZFhuLHVadCk9Pnt2YXIgUXFlPVFLdCgpLHRHZT1uWnQoKSxlR2U9b1p0KCksckdlPXNadCgpLG5HZT1jWnQoKTtmdW5jdGlvbiB6UyhlKXt2YXIgdD0tMSxyPWU9PW51bGw/MDplLmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrdDxyOyl7dmFyIG49ZVt0XTt0aGlzLnNldChuWzBdLG5bMV0pfX16Uy5wcm90b3R5cGUuY2xlYXI9UXFlO3pTLnByb3RvdHlwZS5kZWxldGU9dEdlO3pTLnByb3RvdHlwZS5nZXQ9ZUdlO3pTLnByb3RvdHlwZS5oYXM9ckdlO3pTLnByb3RvdHlwZS5zZXQ9bkdlO3VadC5leHBvcnRzPXpTfSk7dmFyIGZadD1IKChtWG4saFp0KT0+e3ZhciBpR2U9RTQoKTtmdW5jdGlvbiBvR2UoKXt0aGlzLl9fZGF0YV9fPW5ldyBpR2UsdGhpcy5zaXplPTB9aFp0LmV4cG9ydHM9b0dlfSk7dmFyIGRadD1IKChnWG4scFp0KT0+e2Z1bmN0aW9uIGFHZShlKXt2YXIgdD10aGlzLl9fZGF0YV9fLHI9dC5kZWxldGUoZSk7cmV0dXJuIHRoaXMuc2l6ZT10LnNpemUscn1wWnQuZXhwb3J0cz1hR2V9KTt2YXIgZ1p0PUgoKF9YbixtWnQpPT57ZnVuY3Rpb24gc0dlKGUpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldChlKX1tWnQuZXhwb3J0cz1zR2V9KTt2YXIgeVp0PUgoKHlYbixfWnQpPT57ZnVuY3Rpb24gbEdlKGUpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhlKX1fWnQuZXhwb3J0cz1sR2V9KTt2YXIgY3N0PUgoKHZYbix2WnQpPT57dmFyIGNHZT10eXBlb2YgZ2xvYmFsPT0ib2JqZWN0IiYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWw7dlp0LmV4cG9ydHM9Y0dlfSk7dmFyIEhjPUgoKHhYbix4WnQpPT57dmFyIHVHZT1jc3QoKSxoR2U9dHlwZW9mIHNlbGY9PSJvYmplY3QiJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixmR2U9dUdlfHxoR2V8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCk7eFp0LmV4cG9ydHM9ZkdlfSk7dmFyIFh2PUgoKGJYbixiWnQpPT57dmFyIHBHZT1IYygpLGRHZT1wR2UuU3ltYm9sO2JadC5leHBvcnRzPWRHZX0pO3ZhciBFWnQ9SCgod1huLE1adCk9Pnt2YXIgd1p0PVh2KCksU1p0PU9iamVjdC5wcm90b3R5cGUsbUdlPVNadC5oYXNPd25Qcm9wZXJ0eSxnR2U9U1p0LnRvU3RyaW5nLFQ0PXdadD93WnQudG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIF9HZShlKXt2YXIgdD1tR2UuY2FsbChlLFQ0KSxyPWVbVDRdO3RyeXtlW1Q0XT12b2lkIDA7dmFyIG49ITB9Y2F0Y2gobyl7fXZhciBpPWdHZS5jYWxsKGUpO3JldHVybiBuJiYodD9lW1Q0XT1yOmRlbGV0ZSBlW1Q0XSksaX1NWnQuZXhwb3J0cz1fR2V9KTt2YXIgQ1p0PUgoKFNYbixUWnQpPT57dmFyIHlHZT1PYmplY3QucHJvdG90eXBlLHZHZT15R2UudG9TdHJpbmc7ZnVuY3Rpb24geEdlKGUpe3JldHVybiB2R2UuY2FsbChlKX1UWnQuZXhwb3J0cz14R2V9KTt2YXIgbDA9SCgoTVhuLEladCk9Pnt2YXIgQVp0PVh2KCksYkdlPUVadCgpLHdHZT1DWnQoKSxTR2U9IltvYmplY3QgTnVsbF0iLE1HZT0iW29iamVjdCBVbmRlZmluZWRdIixQWnQ9QVp0P0FadC50b1N0cmluZ1RhZzp2b2lkIDA7ZnVuY3Rpb24gRUdlKGUpe3JldHVybiBlPT1udWxsP2U9PT12b2lkIDA/TUdlOlNHZTpQWnQmJlBadCBpbiBPYmplY3QoZSk/YkdlKGUpOndHZShlKX1JWnQuZXhwb3J0cz1FR2V9KTt2YXIgRWw9SCgoRVhuLExadCk9PntmdW5jdGlvbiBUR2UoZSl7dmFyIHQ9dHlwZW9mIGU7cmV0dXJuIGUhPW51bGwmJih0PT0ib2JqZWN0Inx8dD09ImZ1bmN0aW9uIil9TFp0LmV4cG9ydHM9VEdlfSk7dmFyIEZTPUgoKFRYbixrWnQpPT57dmFyIENHZT1sMCgpLEFHZT1FbCgpLFBHZT0iW29iamVjdCBBc3luY0Z1bmN0aW9uXSIsSUdlPSJbb2JqZWN0IEZ1bmN0aW9uXSIsTEdlPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIsa0dlPSJbb2JqZWN0IFByb3h5XSI7ZnVuY3Rpb24gUkdlKGUpe2lmKCFBR2UoZSkpcmV0dXJuITE7dmFyIHQ9Q0dlKGUpO3JldHVybiB0PT1JR2V8fHQ9PUxHZXx8dD09UEdlfHx0PT1rR2V9a1p0LmV4cG9ydHM9UkdlfSk7dmFyIE5adD1IKChDWG4sUlp0KT0+e3ZhciBOR2U9SGMoKSxER2U9TkdlWyJfX2NvcmUtanNfc2hhcmVkX18iXTtSWnQuZXhwb3J0cz1ER2V9KTt2YXIgelp0PUgoKEFYbixPWnQpPT57dmFyIHVzdD1OWnQoKSxEWnQ9ZnVuY3Rpb24oKXt2YXIgZT0vW14uXSskLy5leGVjKHVzdCYmdXN0LmtleXMmJnVzdC5rZXlzLklFX1BST1RPfHwiIik7cmV0dXJuIGU/IlN5bWJvbChzcmMpXzEuIitlOiIifSgpO2Z1bmN0aW9uIE9HZShlKXtyZXR1cm4hIURadCYmRFp0IGluIGV9T1p0LmV4cG9ydHM9T0dlfSk7dmFyIGhzdD1IKChQWG4sRlp0KT0+e3ZhciB6R2U9RnVuY3Rpb24ucHJvdG90eXBlLEZHZT16R2UudG9TdHJpbmc7ZnVuY3Rpb24gQkdlKGUpe2lmKGUhPW51bGwpe3RyeXtyZXR1cm4gRkdlLmNhbGwoZSl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gZSsiIn1jYXRjaCh0KXt9fXJldHVybiIifUZadC5leHBvcnRzPUJHZX0pO3ZhciBIWnQ9SCgoSVhuLEJadCk9Pnt2YXIgSEdlPUZTKCksVkdlPXpadCgpLFVHZT1FbCgpLHFHZT1oc3QoKSxHR2U9L1tcXF4kLiorPygpW1xde318XS9nLFdHZT0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxZR2U9RnVuY3Rpb24ucHJvdG90eXBlLGpHZT1PYmplY3QucHJvdG90eXBlLFhHZT1ZR2UudG9TdHJpbmcsJEdlPWpHZS5oYXNPd25Qcm9wZXJ0eSxLR2U9UmVnRXhwKCJeIitYR2UuY2FsbCgkR2UpLnJlcGxhY2UoR0dlLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO2Z1bmN0aW9uIFpHZShlKXtpZighVUdlKGUpfHxWR2UoZSkpcmV0dXJuITE7dmFyIHQ9SEdlKGUpP0tHZTpXR2U7cmV0dXJuIHQudGVzdChxR2UoZSkpfUJadC5leHBvcnRzPVpHZX0pO3ZhciBVWnQ9SCgoTFhuLFZadCk9PntmdW5jdGlvbiBKR2UoZSx0KXtyZXR1cm4gZT09bnVsbD92b2lkIDA6ZVt0XX1WWnQuZXhwb3J0cz1KR2V9KTt2YXIgYzA9SCgoa1huLHFadCk9Pnt2YXIgUUdlPUhadCgpLHRXZT1VWnQoKTtmdW5jdGlvbiBlV2UoZSx0KXt2YXIgcj10V2UoZSx0KTtyZXR1cm4gUUdlKHIpP3I6dm9pZCAwfXFadC5leHBvcnRzPWVXZX0pO3ZhciB6Qj1IKChSWG4sR1p0KT0+e3ZhciByV2U9YzAoKSxuV2U9SGMoKSxpV2U9cldlKG5XZSwiTWFwIik7R1p0LmV4cG9ydHM9aVdlfSk7dmFyIEM0PUgoKE5YbixXWnQpPT57dmFyIG9XZT1jMCgpLGFXZT1vV2UoT2JqZWN0LCJjcmVhdGUiKTtXWnQuZXhwb3J0cz1hV2V9KTt2YXIgWFp0PUgoKERYbixqWnQpPT57dmFyIFladD1DNCgpO2Z1bmN0aW9uIHNXZSgpe3RoaXMuX19kYXRhX189WVp0P1ladChudWxsKTp7fSx0aGlzLnNpemU9MH1qWnQuZXhwb3J0cz1zV2V9KTt2YXIgS1p0PUgoKE9YbiwkWnQpPT57ZnVuY3Rpb24gbFdlKGUpe3ZhciB0PXRoaXMuaGFzKGUpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1tlXTtyZXR1cm4gdGhpcy5zaXplLT10PzE6MCx0fSRadC5leHBvcnRzPWxXZX0pO3ZhciBKWnQ9SCgoelhuLFpadCk9Pnt2YXIgY1dlPUM0KCksdVdlPSJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIixoV2U9T2JqZWN0LnByb3RvdHlwZSxmV2U9aFdlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIHBXZShlKXt2YXIgdD10aGlzLl9fZGF0YV9fO2lmKGNXZSl7dmFyIHI9dFtlXTtyZXR1cm4gcj09PXVXZT92b2lkIDA6cn1yZXR1cm4gZldlLmNhbGwodCxlKT90W2VdOnZvaWQgMH1aWnQuZXhwb3J0cz1wV2V9KTt2YXIgdEp0PUgoKEZYbixRWnQpPT57dmFyIGRXZT1DNCgpLG1XZT1PYmplY3QucHJvdG90eXBlLGdXZT1tV2UuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gX1dlKGUpe3ZhciB0PXRoaXMuX19kYXRhX187cmV0dXJuIGRXZT90W2VdIT09dm9pZCAwOmdXZS5jYWxsKHQsZSl9UVp0LmV4cG9ydHM9X1dlfSk7dmFyIHJKdD1IKChCWG4sZUp0KT0+e3ZhciB5V2U9QzQoKSx2V2U9Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iO2Z1bmN0aW9uIHhXZShlLHQpe3ZhciByPXRoaXMuX19kYXRhX187cmV0dXJuIHRoaXMuc2l6ZSs9dGhpcy5oYXMoZSk/MDoxLHJbZV09eVdlJiZ0PT09dm9pZCAwP3ZXZTp0LHRoaXN9ZUp0LmV4cG9ydHM9eFdlfSk7dmFyIGlKdD1IKChIWG4sbkp0KT0+e3ZhciBiV2U9WFp0KCksd1dlPUtadCgpLFNXZT1KWnQoKSxNV2U9dEp0KCksRVdlPXJKdCgpO2Z1bmN0aW9uIEJTKGUpe3ZhciB0PS0xLHI9ZT09bnVsbD8wOmUubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7Kyt0PHI7KXt2YXIgbj1lW3RdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUJTLnByb3RvdHlwZS5jbGVhcj1iV2U7QlMucHJvdG90eXBlLmRlbGV0ZT13V2U7QlMucHJvdG90eXBlLmdldD1TV2U7QlMucHJvdG90eXBlLmhhcz1NV2U7QlMucHJvdG90eXBlLnNldD1FV2U7bkp0LmV4cG9ydHM9QlN9KTt2YXIgc0p0PUgoKFZYbixhSnQpPT57dmFyIG9KdD1pSnQoKSxUV2U9RTQoKSxDV2U9ekIoKTtmdW5jdGlvbiBBV2UoKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBvSnQsbWFwOm5ldyhDV2V8fFRXZSksc3RyaW5nOm5ldyBvSnR9fWFKdC5leHBvcnRzPUFXZX0pO3ZhciBjSnQ9SCgoVVhuLGxKdCk9PntmdW5jdGlvbiBQV2UoZSl7dmFyIHQ9dHlwZW9mIGU7cmV0dXJuIHQ9PSJzdHJpbmcifHx0PT0ibnVtYmVyInx8dD09InN5bWJvbCJ8fHQ9PSJib29sZWFuIj9lIT09Il9fcHJvdG9fXyI6ZT09PW51bGx9bEp0LmV4cG9ydHM9UFdlfSk7dmFyIEE0PUgoKHFYbix1SnQpPT57dmFyIElXZT1jSnQoKTtmdW5jdGlvbiBMV2UoZSx0KXt2YXIgcj1lLl9fZGF0YV9fO3JldHVybiBJV2UodCk/clt0eXBlb2YgdD09InN0cmluZyI/InN0cmluZyI6Imhhc2giXTpyLm1hcH11SnQuZXhwb3J0cz1MV2V9KTt2YXIgZkp0PUgoKEdYbixoSnQpPT57dmFyIGtXZT1BNCgpO2Z1bmN0aW9uIFJXZShlKXt2YXIgdD1rV2UodGhpcyxlKS5kZWxldGUoZSk7cmV0dXJuIHRoaXMuc2l6ZS09dD8xOjAsdH1oSnQuZXhwb3J0cz1SV2V9KTt2YXIgZEp0PUgoKFdYbixwSnQpPT57dmFyIE5XZT1BNCgpO2Z1bmN0aW9uIERXZShlKXtyZXR1cm4gTldlKHRoaXMsZSkuZ2V0KGUpfXBKdC5leHBvcnRzPURXZX0pO3ZhciBnSnQ9SCgoWVhuLG1KdCk9Pnt2YXIgT1dlPUE0KCk7ZnVuY3Rpb24geldlKGUpe3JldHVybiBPV2UodGhpcyxlKS5oYXMoZSl9bUp0LmV4cG9ydHM9eldlfSk7dmFyIHlKdD1IKChqWG4sX0p0KT0+e3ZhciBGV2U9QTQoKTtmdW5jdGlvbiBCV2UoZSx0KXt2YXIgcj1GV2UodGhpcyxlKSxuPXIuc2l6ZTtyZXR1cm4gci5zZXQoZSx0KSx0aGlzLnNpemUrPXIuc2l6ZT09bj8wOjEsdGhpc31fSnQuZXhwb3J0cz1CV2V9KTt2YXIgRkI9SCgoWFhuLHZKdCk9Pnt2YXIgSFdlPXNKdCgpLFZXZT1mSnQoKSxVV2U9ZEp0KCkscVdlPWdKdCgpLEdXZT15SnQoKTtmdW5jdGlvbiBIUyhlKXt2YXIgdD0tMSxyPWU9PW51bGw/MDplLmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrdDxyOyl7dmFyIG49ZVt0XTt0aGlzLnNldChuWzBdLG5bMV0pfX1IUy5wcm90b3R5cGUuY2xlYXI9SFdlO0hTLnByb3RvdHlwZS5kZWxldGU9VldlO0hTLnByb3RvdHlwZS5nZXQ9VVdlO0hTLnByb3RvdHlwZS5oYXM9cVdlO0hTLnByb3RvdHlwZS5zZXQ9R1dlO3ZKdC5leHBvcnRzPUhTfSk7dmFyIGJKdD1IKCgkWG4seEp0KT0+e3ZhciBXV2U9RTQoKSxZV2U9ekIoKSxqV2U9RkIoKSxYV2U9MjAwO2Z1bmN0aW9uICRXZShlLHQpe3ZhciByPXRoaXMuX19kYXRhX187aWYociBpbnN0YW5jZW9mIFdXZSl7dmFyIG49ci5fX2RhdGFfXztpZighWVdlfHxuLmxlbmd0aDxYV2UtMSlyZXR1cm4gbi5wdXNoKFtlLHRdKSx0aGlzLnNpemU9KytyLnNpemUsdGhpcztyPXRoaXMuX19kYXRhX189bmV3IGpXZShuKX1yZXR1cm4gci5zZXQoZSx0KSx0aGlzLnNpemU9ci5zaXplLHRoaXN9eEp0LmV4cG9ydHM9JFdlfSk7dmFyIFA0PUgoKEtYbix3SnQpPT57dmFyIEtXZT1FNCgpLFpXZT1mWnQoKSxKV2U9ZFp0KCksUVdlPWdadCgpLHRZZT15WnQoKSxlWWU9Ykp0KCk7ZnVuY3Rpb24gVlMoZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXz1uZXcgS1dlKGUpO3RoaXMuc2l6ZT10LnNpemV9VlMucHJvdG90eXBlLmNsZWFyPVpXZTtWUy5wcm90b3R5cGUuZGVsZXRlPUpXZTtWUy5wcm90b3R5cGUuZ2V0PVFXZTtWUy5wcm90b3R5cGUuaGFzPXRZZTtWUy5wcm90b3R5cGUuc2V0PWVZZTt3SnQuZXhwb3J0cz1WU30pO3ZhciBCQj1IKChaWG4sU0p0KT0+e2Z1bmN0aW9uIHJZZShlLHQpe2Zvcih2YXIgcj0tMSxuPWU9PW51bGw/MDplLmxlbmd0aDsrK3I8biYmdChlW3JdLHIsZSkhPT0hMTspO3JldHVybiBlfVNKdC5leHBvcnRzPXJZZX0pO3ZhciBmc3Q9SCgoSlhuLE1KdCk9Pnt2YXIgblllPWMwKCksaVllPWZ1bmN0aW9uKCl7dHJ5e3ZhciBlPW5ZZShPYmplY3QsImRlZmluZVByb3BlcnR5Iik7cmV0dXJuIGUoe30sIiIse30pLGV9Y2F0Y2godCl7fX0oKTtNSnQuZXhwb3J0cz1pWWV9KTt2YXIgSTQ9SCgoUVhuLFRKdCk9Pnt2YXIgRUp0PWZzdCgpO2Z1bmN0aW9uIG9ZZShlLHQscil7dD09Il9fcHJvdG9fXyImJkVKdD9FSnQoZSx0LHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpyLHdyaXRhYmxlOiEwfSk6ZVt0XT1yfVRKdC5leHBvcnRzPW9ZZX0pO3ZhciBMND1IKCh0JG4sQ0p0KT0+e3ZhciBhWWU9STQoKSxzWWU9anYoKSxsWWU9T2JqZWN0LnByb3RvdHlwZSxjWWU9bFllLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIHVZZShlLHQscil7dmFyIG49ZVt0XTsoIShjWWUuY2FsbChlLHQpJiZzWWUobixyKSl8fHI9PT12b2lkIDAmJiEodCBpbiBlKSkmJmFZZShlLHQscil9Q0p0LmV4cG9ydHM9dVllfSk7dmFyIFVTPUgoKGUkbixBSnQpPT57dmFyIGhZZT1MNCgpLGZZZT1JNCgpO2Z1bmN0aW9uIHBZZShlLHQscixuKXt2YXIgaT0hcjtyfHwocj17fSk7Zm9yKHZhciBvPS0xLGE9dC5sZW5ndGg7KytvPGE7KXt2YXIgcz10W29dLGw9bj9uKHJbc10sZVtzXSxzLHIsZSk6dm9pZCAwO2w9PT12b2lkIDAmJihsPWVbc10pLGk/ZlllKHIscyxsKTpoWWUocixzLGwpfXJldHVybiByfUFKdC5leHBvcnRzPXBZZX0pO3ZhciBJSnQ9SCgociRuLFBKdCk9PntmdW5jdGlvbiBkWWUoZSx0KXtmb3IodmFyIHI9LTEsbj1BcnJheShlKTsrK3I8ZTspbltyXT10KHIpO3JldHVybiBufVBKdC5leHBvcnRzPWRZZX0pO3ZhciBZdT1IKChuJG4sTEp0KT0+e2Z1bmN0aW9uIG1ZZShlKXtyZXR1cm4gZSE9bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QifUxKdC5leHBvcnRzPW1ZZX0pO3ZhciBSSnQ9SCgoaSRuLGtKdCk9Pnt2YXIgZ1llPWwwKCksX1llPVl1KCkseVllPSJbb2JqZWN0IEFyZ3VtZW50c10iO2Z1bmN0aW9uIHZZZShlKXtyZXR1cm4gX1llKGUpJiZnWWUoZSk9PXlZZX1rSnQuZXhwb3J0cz12WWV9KTt2YXIgcVM9SCgobyRuLE9KdCk9Pnt2YXIgTkp0PVJKdCgpLHhZZT1ZdSgpLERKdD1PYmplY3QucHJvdG90eXBlLGJZZT1ESnQuaGFzT3duUHJvcGVydHksd1llPURKdC5wcm9wZXJ0eUlzRW51bWVyYWJsZSxTWWU9Tkp0KGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk/Tkp0OmZ1bmN0aW9uKGUpe3JldHVybiB4WWUoZSkmJmJZZS5jYWxsKGUsImNhbGxlZSIpJiYhd1llLmNhbGwoZSwiY2FsbGVlIil9O09KdC5leHBvcnRzPVNZZX0pO3ZhciBUaT1IKChhJG4sekp0KT0+e3ZhciBNWWU9QXJyYXkuaXNBcnJheTt6SnQuZXhwb3J0cz1NWWV9KTt2YXIgQkp0PUgoKHMkbixGSnQpPT57ZnVuY3Rpb24gRVllKCl7cmV0dXJuITF9Rkp0LmV4cG9ydHM9RVllfSk7dmFyICR2PUgoKGs0LEdTKT0+e3ZhciBUWWU9SGMoKSxDWWU9Qkp0KCksVUp0PXR5cGVvZiBrND09Im9iamVjdCImJms0JiYhazQubm9kZVR5cGUmJms0LEhKdD1VSnQmJnR5cGVvZiBHUz09Im9iamVjdCImJkdTJiYhR1Mubm9kZVR5cGUmJkdTLEFZZT1ISnQmJkhKdC5leHBvcnRzPT09VUp0LFZKdD1BWWU/VFllLkJ1ZmZlcjp2b2lkIDAsUFllPVZKdD9WSnQuaXNCdWZmZXI6dm9pZCAwLElZZT1QWWV8fENZZTtHUy5leHBvcnRzPUlZZX0pO3ZhciBSND1IKChsJG4scUp0KT0+e3ZhciBMWWU9OTAwNzE5OTI1NDc0MDk5MSxrWWU9L14oPzowfFsxLTldXGQqKSQvO2Z1bmN0aW9uIFJZZShlLHQpe3ZhciByPXR5cGVvZiBlO3JldHVybiB0PXQ9PW51bGw/TFllOnQsISF0JiYocj09Im51bWJlciJ8fHIhPSJzeW1ib2wiJiZrWWUudGVzdChlKSkmJmU+LTEmJmUlMT09MCYmZTx0fXFKdC5leHBvcnRzPVJZZX0pO3ZhciBIQj1IKChjJG4sR0p0KT0+e3ZhciBOWWU9OTAwNzE5OTI1NDc0MDk5MTtmdW5jdGlvbiBEWWUoZSl7cmV0dXJuIHR5cGVvZiBlPT0ibnVtYmVyIiYmZT4tMSYmZSUxPT0wJiZlPD1OWWV9R0p0LmV4cG9ydHM9RFllfSk7dmFyIFlKdD1IKCh1JG4sV0p0KT0+e3ZhciBPWWU9bDAoKSx6WWU9SEIoKSxGWWU9WXUoKSxCWWU9IltvYmplY3QgQXJndW1lbnRzXSIsSFllPSJbb2JqZWN0IEFycmF5XSIsVlllPSJbb2JqZWN0IEJvb2xlYW5dIixVWWU9IltvYmplY3QgRGF0ZV0iLHFZZT0iW29iamVjdCBFcnJvcl0iLEdZZT0iW29iamVjdCBGdW5jdGlvbl0iLFdZZT0iW29iamVjdCBNYXBdIixZWWU9IltvYmplY3QgTnVtYmVyXSIsalllPSJbb2JqZWN0IE9iamVjdF0iLFhZZT0iW29iamVjdCBSZWdFeHBdIiwkWWU9IltvYmplY3QgU2V0XSIsS1llPSJbb2JqZWN0IFN0cmluZ10iLFpZZT0iW29iamVjdCBXZWFrTWFwXSIsSlllPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsUVllPSJbb2JqZWN0IERhdGFWaWV3XSIsdGplPSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLGVqZT0iW29iamVjdCBGbG9hdDY0QXJyYXldIixyamU9IltvYmplY3QgSW50OEFycmF5XSIsbmplPSJbb2JqZWN0IEludDE2QXJyYXldIixpamU9IltvYmplY3QgSW50MzJBcnJheV0iLG9qZT0iW29iamVjdCBVaW50OEFycmF5XSIsYWplPSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSIsc2plPSJbb2JqZWN0IFVpbnQxNkFycmF5XSIsbGplPSJbb2JqZWN0IFVpbnQzMkFycmF5XSIsVW49e307VW5bdGplXT1VbltlamVdPVVuW3JqZV09VW5bbmplXT1VbltpamVdPVVuW29qZV09VW5bYWplXT1VbltzamVdPVVuW2xqZV09ITA7VW5bQlllXT1VbltIWWVdPVVuW0pZZV09VW5bVlllXT1VbltRWWVdPVVuW1VZZV09VW5bcVllXT1VbltHWWVdPVVuW1dZZV09VW5bWVllXT1VbltqWWVdPVVuW1hZZV09VW5bJFllXT1VbltLWWVdPVVuW1pZZV09ITE7ZnVuY3Rpb24gY2plKGUpe3JldHVybiBGWWUoZSkmJnpZZShlLmxlbmd0aCkmJiEhVW5bT1llKGUpXX1XSnQuZXhwb3J0cz1jamV9KTt2YXIgTjQ9SCgoaCRuLGpKdCk9PntmdW5jdGlvbiB1amUoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfX1qSnQuZXhwb3J0cz11amV9KTt2YXIgVkI9SCgoRDQsV1MpPT57dmFyIGhqZT1jc3QoKSxYSnQ9dHlwZW9mIEQ0PT0ib2JqZWN0IiYmRDQmJiFENC5ub2RlVHlwZSYmRDQsTzQ9WEp0JiZ0eXBlb2YgV1M9PSJvYmplY3QiJiZXUyYmIVdTLm5vZGVUeXBlJiZXUyxmamU9TzQmJk80LmV4cG9ydHM9PT1YSnQscHN0PWZqZSYmaGplLnByb2Nlc3MscGplPWZ1bmN0aW9uKCl7dHJ5e3ZhciBlPU80JiZPNC5yZXF1aXJlJiZPNC5yZXF1aXJlKCJ1dGlsIikudHlwZXM7cmV0dXJuIGV8fHBzdCYmcHN0LmJpbmRpbmcmJnBzdC5iaW5kaW5nKCJ1dGlsIil9Y2F0Y2godCl7fX0oKTtXUy5leHBvcnRzPXBqZX0pO3ZhciBZUz1IKChmJG4sWkp0KT0+e3ZhciBkamU9WUp0KCksbWplPU40KCksJEp0PVZCKCksS0p0PSRKdCYmJEp0LmlzVHlwZWRBcnJheSxnamU9S0p0P21qZShLSnQpOmRqZTtaSnQuZXhwb3J0cz1namV9KTt2YXIgZHN0PUgoKHAkbixKSnQpPT57dmFyIF9qZT1JSnQoKSx5amU9cVMoKSx2amU9VGkoKSx4amU9JHYoKSxiamU9UjQoKSx3amU9WVMoKSxTamU9T2JqZWN0LnByb3RvdHlwZSxNamU9U2plLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIEVqZShlLHQpe3ZhciByPXZqZShlKSxuPSFyJiZ5amUoZSksaT0hciYmIW4mJnhqZShlKSxvPSFyJiYhbiYmIWkmJndqZShlKSxhPXJ8fG58fGl8fG8scz1hP19qZShlLmxlbmd0aCxTdHJpbmcpOltdLGw9cy5sZW5ndGg7Zm9yKHZhciBjIGluIGUpKHR8fE1qZS5jYWxsKGUsYykpJiYhKGEmJihjPT0ibGVuZ3RoInx8aSYmKGM9PSJvZmZzZXQifHxjPT0icGFyZW50Iil8fG8mJihjPT0iYnVmZmVyInx8Yz09ImJ5dGVMZW5ndGgifHxjPT0iYnl0ZU9mZnNldCIpfHxiamUoYyxsKSkpJiZzLnB1c2goYyk7cmV0dXJuIHN9Skp0LmV4cG9ydHM9RWplfSk7dmFyIHo0PUgoKGQkbixRSnQpPT57dmFyIFRqZT1PYmplY3QucHJvdG90eXBlO2Z1bmN0aW9uIENqZShlKXt2YXIgdD1lJiZlLmNvbnN0cnVjdG9yLHI9dHlwZW9mIHQ9PSJmdW5jdGlvbiImJnQucHJvdG90eXBlfHxUamU7cmV0dXJuIGU9PT1yfVFKdC5leHBvcnRzPUNqZX0pO3ZhciBtc3Q9SCgobSRuLHRRdCk9PntmdW5jdGlvbiBBamUoZSx0KXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIGUodChyKSl9fXRRdC5leHBvcnRzPUFqZX0pO3ZhciByUXQ9SCgoZyRuLGVRdCk9Pnt2YXIgUGplPW1zdCgpLElqZT1QamUoT2JqZWN0LmtleXMsT2JqZWN0KTtlUXQuZXhwb3J0cz1JamV9KTt2YXIgVUI9SCgoXyRuLG5RdCk9Pnt2YXIgTGplPXo0KCksa2plPXJRdCgpLFJqZT1PYmplY3QucHJvdG90eXBlLE5qZT1SamUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gRGplKGUpe2lmKCFMamUoZSkpcmV0dXJuIGtqZShlKTt2YXIgdD1bXTtmb3IodmFyIHIgaW4gT2JqZWN0KGUpKU5qZS5jYWxsKGUscikmJnIhPSJjb25zdHJ1Y3RvciImJnQucHVzaChyKTtyZXR1cm4gdH1uUXQuZXhwb3J0cz1EamV9KTt2YXIgSGY9SCgoeSRuLGlRdCk9Pnt2YXIgT2plPUZTKCksemplPUhCKCk7ZnVuY3Rpb24gRmplKGUpe3JldHVybiBlIT1udWxsJiZ6amUoZS5sZW5ndGgpJiYhT2plKGUpfWlRdC5leHBvcnRzPUZqZX0pO3ZhciBQZD1IKCh2JG4sb1F0KT0+e3ZhciBCamU9ZHN0KCksSGplPVVCKCksVmplPUhmKCk7ZnVuY3Rpb24gVWplKGUpe3JldHVybiBWamUoZSk/QmplKGUpOkhqZShlKX1vUXQuZXhwb3J0cz1VamV9KTt2YXIgc1F0PUgoKHgkbixhUXQpPT57dmFyIHFqZT1VUygpLEdqZT1QZCgpO2Z1bmN0aW9uIFdqZShlLHQpe3JldHVybiBlJiZxamUodCxHamUodCksZSl9YVF0LmV4cG9ydHM9V2plfSk7dmFyIGNRdD1IKChiJG4sbFF0KT0+e2Z1bmN0aW9uIFlqZShlKXt2YXIgdD1bXTtpZihlIT1udWxsKWZvcih2YXIgciBpbiBPYmplY3QoZSkpdC5wdXNoKHIpO3JldHVybiB0fWxRdC5leHBvcnRzPVlqZX0pO3ZhciBoUXQ9SCgodyRuLHVRdCk9Pnt2YXIgamplPUVsKCksWGplPXo0KCksJGplPWNRdCgpLEtqZT1PYmplY3QucHJvdG90eXBlLFpqZT1LamUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gSmplKGUpe2lmKCFqamUoZSkpcmV0dXJuICRqZShlKTt2YXIgdD1YamUoZSkscj1bXTtmb3IodmFyIG4gaW4gZSluPT0iY29uc3RydWN0b3IiJiYodHx8IVpqZS5jYWxsKGUsbikpfHxyLnB1c2gobik7cmV0dXJuIHJ9dVF0LmV4cG9ydHM9SmplfSk7dmFyIHUwPUgoKFMkbixmUXQpPT57dmFyIFFqZT1kc3QoKSx0WGU9aFF0KCksZVhlPUhmKCk7ZnVuY3Rpb24gclhlKGUpe3JldHVybiBlWGUoZSk/UWplKGUsITApOnRYZShlKX1mUXQuZXhwb3J0cz1yWGV9KTt2YXIgZFF0PUgoKE0kbixwUXQpPT57dmFyIG5YZT1VUygpLGlYZT11MCgpO2Z1bmN0aW9uIG9YZShlLHQpe3JldHVybiBlJiZuWGUodCxpWGUodCksZSl9cFF0LmV4cG9ydHM9b1hlfSk7dmFyIGdzdD1IKChGNCxqUyk9Pnt2YXIgYVhlPUhjKCkseVF0PXR5cGVvZiBGND09Im9iamVjdCImJkY0JiYhRjQubm9kZVR5cGUmJkY0LG1RdD15UXQmJnR5cGVvZiBqUz09Im9iamVjdCImJmpTJiYhalMubm9kZVR5cGUmJmpTLHNYZT1tUXQmJm1RdC5leHBvcnRzPT09eVF0LGdRdD1zWGU/YVhlLkJ1ZmZlcjp2b2lkIDAsX1F0PWdRdD9nUXQuYWxsb2NVbnNhZmU6dm9pZCAwO2Z1bmN0aW9uIGxYZShlLHQpe2lmKHQpcmV0dXJuIGUuc2xpY2UoKTt2YXIgcj1lLmxlbmd0aCxuPV9RdD9fUXQocik6bmV3IGUuY29uc3RydWN0b3Iocik7cmV0dXJuIGUuY29weShuKSxufWpTLmV4cG9ydHM9bFhlfSk7dmFyIF9zdD1IKChFJG4sdlF0KT0+e2Z1bmN0aW9uIGNYZShlLHQpe3ZhciByPS0xLG49ZS5sZW5ndGg7Zm9yKHR8fCh0PUFycmF5KG4pKTsrK3I8bjspdFtyXT1lW3JdO3JldHVybiB0fXZRdC5leHBvcnRzPWNYZX0pO3ZhciB5c3Q9SCgoVCRuLHhRdCk9PntmdW5jdGlvbiB1WGUoZSx0KXtmb3IodmFyIHI9LTEsbj1lPT1udWxsPzA6ZS5sZW5ndGgsaT0wLG89W107KytyPG47KXt2YXIgYT1lW3JdO3QoYSxyLGUpJiYob1tpKytdPWEpfXJldHVybiBvfXhRdC5leHBvcnRzPXVYZX0pO3ZhciB2c3Q9SCgoQyRuLGJRdCk9PntmdW5jdGlvbiBoWGUoKXtyZXR1cm5bXX1iUXQuZXhwb3J0cz1oWGV9KTt2YXIgcUI9SCgoQSRuLFNRdCk9Pnt2YXIgZlhlPXlzdCgpLHBYZT12c3QoKSxkWGU9T2JqZWN0LnByb3RvdHlwZSxtWGU9ZFhlLnByb3BlcnR5SXNFbnVtZXJhYmxlLHdRdD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLGdYZT13UXQ/ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PW51bGw/W106KGU9T2JqZWN0KGUpLGZYZSh3UXQoZSksZnVuY3Rpb24odCl7cmV0dXJuIG1YZS5jYWxsKGUsdCl9KSl9OnBYZTtTUXQuZXhwb3J0cz1nWGV9KTt2YXIgRVF0PUgoKFAkbixNUXQpPT57dmFyIF9YZT1VUygpLHlYZT1xQigpO2Z1bmN0aW9uIHZYZShlLHQpe3JldHVybiBfWGUoZSx5WGUoZSksdCl9TVF0LmV4cG9ydHM9dlhlfSk7dmFyIEdCPUgoKEkkbixUUXQpPT57ZnVuY3Rpb24geFhlKGUsdCl7Zm9yKHZhciByPS0xLG49dC5sZW5ndGgsaT1lLmxlbmd0aDsrK3I8bjspZVtpK3JdPXRbcl07cmV0dXJuIGV9VFF0LmV4cG9ydHM9eFhlfSk7dmFyIEI0PUgoKEwkbixDUXQpPT57dmFyIGJYZT1tc3QoKSx3WGU9YlhlKE9iamVjdC5nZXRQcm90b3R5cGVPZixPYmplY3QpO0NRdC5leHBvcnRzPXdYZX0pO3ZhciB4c3Q9SCgoayRuLEFRdCk9Pnt2YXIgU1hlPUdCKCksTVhlPUI0KCksRVhlPXFCKCksVFhlPXZzdCgpLENYZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLEFYZT1DWGU/ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdO2U7KVNYZSh0LEVYZShlKSksZT1NWGUoZSk7cmV0dXJuIHR9OlRYZTtBUXQuZXhwb3J0cz1BWGV9KTt2YXIgSVF0PUgoKFIkbixQUXQpPT57dmFyIFBYZT1VUygpLElYZT14c3QoKTtmdW5jdGlvbiBMWGUoZSx0KXtyZXR1cm4gUFhlKGUsSVhlKGUpLHQpfVBRdC5leHBvcnRzPUxYZX0pO3ZhciBic3Q9SCgoTiRuLExRdCk9Pnt2YXIga1hlPUdCKCksUlhlPVRpKCk7ZnVuY3Rpb24gTlhlKGUsdCxyKXt2YXIgbj10KGUpO3JldHVybiBSWGUoZSk/bjprWGUobixyKGUpKX1MUXQuZXhwb3J0cz1OWGV9KTt2YXIgd3N0PUgoKEQkbixrUXQpPT57dmFyIERYZT1ic3QoKSxPWGU9cUIoKSx6WGU9UGQoKTtmdW5jdGlvbiBGWGUoZSl7cmV0dXJuIERYZShlLHpYZSxPWGUpfWtRdC5leHBvcnRzPUZYZX0pO3ZhciBOUXQ9SCgoTyRuLFJRdCk9Pnt2YXIgQlhlPWJzdCgpLEhYZT14c3QoKSxWWGU9dTAoKTtmdW5jdGlvbiBVWGUoZSl7cmV0dXJuIEJYZShlLFZYZSxIWGUpfVJRdC5leHBvcnRzPVVYZX0pO3ZhciBPUXQ9SCgoeiRuLERRdCk9Pnt2YXIgcVhlPWMwKCksR1hlPUhjKCksV1hlPXFYZShHWGUsIkRhdGFWaWV3Iik7RFF0LmV4cG9ydHM9V1hlfSk7dmFyIEZRdD1IKChGJG4selF0KT0+e3ZhciBZWGU9YzAoKSxqWGU9SGMoKSxYWGU9WVhlKGpYZSwiUHJvbWlzZSIpO3pRdC5leHBvcnRzPVhYZX0pO3ZhciBTc3Q9SCgoQiRuLEJRdCk9Pnt2YXIgJFhlPWMwKCksS1hlPUhjKCksWlhlPSRYZShLWGUsIlNldCIpO0JRdC5leHBvcnRzPVpYZX0pO3ZhciBWUXQ9SCgoSCRuLEhRdCk9Pnt2YXIgSlhlPWMwKCksUVhlPUhjKCksdCRlPUpYZShRWGUsIldlYWtNYXAiKTtIUXQuZXhwb3J0cz10JGV9KTt2YXIgWnY9SCgoViRuLFhRdCk9Pnt2YXIgTXN0PU9RdCgpLEVzdD16QigpLFRzdD1GUXQoKSxDc3Q9U3N0KCksQXN0PVZRdCgpLGpRdD1sMCgpLFhTPWhzdCgpLFVRdD0iW29iamVjdCBNYXBdIixlJGU9IltvYmplY3QgT2JqZWN0XSIscVF0PSJbb2JqZWN0IFByb21pc2VdIixHUXQ9IltvYmplY3QgU2V0XSIsV1F0PSJbb2JqZWN0IFdlYWtNYXBdIixZUXQ9IltvYmplY3QgRGF0YVZpZXddIixyJGU9WFMoTXN0KSxuJGU9WFMoRXN0KSxpJGU9WFMoVHN0KSxvJGU9WFMoQ3N0KSxhJGU9WFMoQXN0KSxLdj1qUXQ7KE1zdCYmS3YobmV3IE1zdChuZXcgQXJyYXlCdWZmZXIoMSkpKSE9WVF0fHxFc3QmJkt2KG5ldyBFc3QpIT1VUXR8fFRzdCYmS3YoVHN0LnJlc29sdmUoKSkhPXFRdHx8Q3N0JiZLdihuZXcgQ3N0KSE9R1F0fHxBc3QmJkt2KG5ldyBBc3QpIT1XUXQpJiYoS3Y9ZnVuY3Rpb24oZSl7dmFyIHQ9alF0KGUpLHI9dD09ZSRlP2UuY29uc3RydWN0b3I6dm9pZCAwLG49cj9YUyhyKToiIjtpZihuKXN3aXRjaChuKXtjYXNlIHIkZTpyZXR1cm4gWVF0O2Nhc2UgbiRlOnJldHVybiBVUXQ7Y2FzZSBpJGU6cmV0dXJuIHFRdDtjYXNlIG8kZTpyZXR1cm4gR1F0O2Nhc2UgYSRlOnJldHVybiBXUXR9cmV0dXJuIHR9KTtYUXQuZXhwb3J0cz1Ldn0pO3ZhciBLUXQ9SCgoVSRuLCRRdCk9Pnt2YXIgcyRlPU9iamVjdC5wcm90b3R5cGUsbCRlPXMkZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBjJGUoZSl7dmFyIHQ9ZS5sZW5ndGgscj1uZXcgZS5jb25zdHJ1Y3Rvcih0KTtyZXR1cm4gdCYmdHlwZW9mIGVbMF09PSJzdHJpbmciJiZsJGUuY2FsbChlLCJpbmRleCIpJiYoci5pbmRleD1lLmluZGV4LHIuaW5wdXQ9ZS5pbnB1dCkscn0kUXQuZXhwb3J0cz1jJGV9KTt2YXIgUHN0PUgoKHEkbixaUXQpPT57dmFyIHUkZT1IYygpLGgkZT11JGUuVWludDhBcnJheTtaUXQuZXhwb3J0cz1oJGV9KTt2YXIgV0I9SCgoRyRuLFFRdCk9Pnt2YXIgSlF0PVBzdCgpO2Z1bmN0aW9uIGYkZShlKXt2YXIgdD1uZXcgZS5jb25zdHJ1Y3RvcihlLmJ5dGVMZW5ndGgpO3JldHVybiBuZXcgSlF0KHQpLnNldChuZXcgSlF0KGUpKSx0fVFRdC5leHBvcnRzPWYkZX0pO3ZhciBldGU9SCgoVyRuLHR0ZSk9Pnt2YXIgcCRlPVdCKCk7ZnVuY3Rpb24gZCRlKGUsdCl7dmFyIHI9dD9wJGUoZS5idWZmZXIpOmUuYnVmZmVyO3JldHVybiBuZXcgZS5jb25zdHJ1Y3RvcihyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpfXR0ZS5leHBvcnRzPWQkZX0pO3ZhciBudGU9SCgoWSRuLHJ0ZSk9Pnt2YXIgbSRlPS9cdyokLztmdW5jdGlvbiBnJGUoZSl7dmFyIHQ9bmV3IGUuY29uc3RydWN0b3IoZS5zb3VyY2UsbSRlLmV4ZWMoZSkpO3JldHVybiB0Lmxhc3RJbmRleD1lLmxhc3RJbmRleCx0fXJ0ZS5leHBvcnRzPWckZX0pO3ZhciBsdGU9SCgoaiRuLHN0ZSk9Pnt2YXIgaXRlPVh2KCksb3RlPWl0ZT9pdGUucHJvdG90eXBlOnZvaWQgMCxhdGU9b3RlP290ZS52YWx1ZU9mOnZvaWQgMDtmdW5jdGlvbiBfJGUoZSl7cmV0dXJuIGF0ZT9PYmplY3QoYXRlLmNhbGwoZSkpOnt9fXN0ZS5leHBvcnRzPV8kZX0pO3ZhciBJc3Q9SCgoWCRuLGN0ZSk9Pnt2YXIgeSRlPVdCKCk7ZnVuY3Rpb24gdiRlKGUsdCl7dmFyIHI9dD95JGUoZS5idWZmZXIpOmUuYnVmZmVyO3JldHVybiBuZXcgZS5jb25zdHJ1Y3RvcihyLGUuYnl0ZU9mZnNldCxlLmxlbmd0aCl9Y3RlLmV4cG9ydHM9diRlfSk7dmFyIGh0ZT1IKCgkJG4sdXRlKT0+e3ZhciB4JGU9V0IoKSxiJGU9ZXRlKCksdyRlPW50ZSgpLFMkZT1sdGUoKSxNJGU9SXN0KCksRSRlPSJbb2JqZWN0IEJvb2xlYW5dIixUJGU9IltvYmplY3QgRGF0ZV0iLEMkZT0iW29iamVjdCBNYXBdIixBJGU9IltvYmplY3QgTnVtYmVyXSIsUCRlPSJbb2JqZWN0IFJlZ0V4cF0iLEkkZT0iW29iamVjdCBTZXRdIixMJGU9IltvYmplY3QgU3RyaW5nXSIsayRlPSJbb2JqZWN0IFN5bWJvbF0iLFIkZT0iW29iamVjdCBBcnJheUJ1ZmZlcl0iLE4kZT0iW29iamVjdCBEYXRhVmlld10iLEQkZT0iW29iamVjdCBGbG9hdDMyQXJyYXldIixPJGU9IltvYmplY3QgRmxvYXQ2NEFycmF5XSIseiRlPSJbb2JqZWN0IEludDhBcnJheV0iLEYkZT0iW29iamVjdCBJbnQxNkFycmF5XSIsQiRlPSJbb2JqZWN0IEludDMyQXJyYXldIixIJGU9IltvYmplY3QgVWludDhBcnJheV0iLFYkZT0iW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLFUkZT0iW29iamVjdCBVaW50MTZBcnJheV0iLHEkZT0iW29iamVjdCBVaW50MzJBcnJheV0iO2Z1bmN0aW9uIEckZShlLHQscil7dmFyIG49ZS5jb25zdHJ1Y3Rvcjtzd2l0Y2godCl7Y2FzZSBSJGU6cmV0dXJuIHgkZShlKTtjYXNlIEUkZTpjYXNlIFQkZTpyZXR1cm4gbmV3IG4oK2UpO2Nhc2UgTiRlOnJldHVybiBiJGUoZSxyKTtjYXNlIEQkZTpjYXNlIE8kZTpjYXNlIHokZTpjYXNlIEYkZTpjYXNlIEIkZTpjYXNlIEgkZTpjYXNlIFYkZTpjYXNlIFUkZTpjYXNlIHEkZTpyZXR1cm4gTSRlKGUscik7Y2FzZSBDJGU6cmV0dXJuIG5ldyBuO2Nhc2UgQSRlOmNhc2UgTCRlOnJldHVybiBuZXcgbihlKTtjYXNlIFAkZTpyZXR1cm4gdyRlKGUpO2Nhc2UgSSRlOnJldHVybiBuZXcgbjtjYXNlIGskZTpyZXR1cm4gUyRlKGUpfX11dGUuZXhwb3J0cz1HJGV9KTt2YXIgTHN0PUgoKEskbixwdGUpPT57dmFyIFckZT1FbCgpLGZ0ZT1PYmplY3QuY3JlYXRlLFkkZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt9cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKCFXJGUodCkpcmV0dXJue307aWYoZnRlKXJldHVybiBmdGUodCk7ZS5wcm90b3R5cGU9dDt2YXIgcj1uZXcgZTtyZXR1cm4gZS5wcm90b3R5cGU9dm9pZCAwLHJ9fSgpO3B0ZS5leHBvcnRzPVkkZX0pO3ZhciBrc3Q9SCgoWiRuLGR0ZSk9Pnt2YXIgaiRlPUxzdCgpLFgkZT1CNCgpLCQkZT16NCgpO2Z1bmN0aW9uIEskZShlKXtyZXR1cm4gdHlwZW9mIGUuY29uc3RydWN0b3I9PSJmdW5jdGlvbiImJiEkJGUoZSk/aiRlKFgkZShlKSk6e319ZHRlLmV4cG9ydHM9SyRlfSk7dmFyIGd0ZT1IKChKJG4sbXRlKT0+e3ZhciBaJGU9WnYoKSxKJGU9WXUoKSxRJGU9IltvYmplY3QgTWFwXSI7ZnVuY3Rpb24gdEtlKGUpe3JldHVybiBKJGUoZSkmJlokZShlKT09USRlfW10ZS5leHBvcnRzPXRLZX0pO3ZhciB4dGU9SCgoUSRuLHZ0ZSk9Pnt2YXIgZUtlPWd0ZSgpLHJLZT1ONCgpLF90ZT1WQigpLHl0ZT1fdGUmJl90ZS5pc01hcCxuS2U9eXRlP3JLZSh5dGUpOmVLZTt2dGUuZXhwb3J0cz1uS2V9KTt2YXIgd3RlPUgoKHRLbixidGUpPT57dmFyIGlLZT1adigpLG9LZT1ZdSgpLGFLZT0iW29iamVjdCBTZXRdIjtmdW5jdGlvbiBzS2UoZSl7cmV0dXJuIG9LZShlKSYmaUtlKGUpPT1hS2V9YnRlLmV4cG9ydHM9c0tlfSk7dmFyIFR0ZT1IKChlS24sRXRlKT0+e3ZhciBsS2U9d3RlKCksY0tlPU40KCksU3RlPVZCKCksTXRlPVN0ZSYmU3RlLmlzU2V0LHVLZT1NdGU/Y0tlKE10ZSk6bEtlO0V0ZS5leHBvcnRzPXVLZX0pO3ZhciBSc3Q9SCgocktuLEl0ZSk9Pnt2YXIgaEtlPVA0KCksZktlPUJCKCkscEtlPUw0KCksZEtlPXNRdCgpLG1LZT1kUXQoKSxnS2U9Z3N0KCksX0tlPV9zdCgpLHlLZT1FUXQoKSx2S2U9SVF0KCkseEtlPXdzdCgpLGJLZT1OUXQoKSx3S2U9WnYoKSxTS2U9S1F0KCksTUtlPWh0ZSgpLEVLZT1rc3QoKSxUS2U9VGkoKSxDS2U9JHYoKSxBS2U9eHRlKCksUEtlPUVsKCksSUtlPVR0ZSgpLExLZT1QZCgpLGtLZT11MCgpLFJLZT0xLE5LZT0yLERLZT00LEN0ZT0iW29iamVjdCBBcmd1bWVudHNdIixPS2U9IltvYmplY3QgQXJyYXldIix6S2U9IltvYmplY3QgQm9vbGVhbl0iLEZLZT0iW29iamVjdCBEYXRlXSIsQktlPSJbb2JqZWN0IEVycm9yXSIsQXRlPSJbb2JqZWN0IEZ1bmN0aW9uXSIsSEtlPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIsVktlPSJbb2JqZWN0IE1hcF0iLFVLZT0iW29iamVjdCBOdW1iZXJdIixQdGU9IltvYmplY3QgT2JqZWN0XSIscUtlPSJbb2JqZWN0IFJlZ0V4cF0iLEdLZT0iW29iamVjdCBTZXRdIixXS2U9IltvYmplY3QgU3RyaW5nXSIsWUtlPSJbb2JqZWN0IFN5bWJvbF0iLGpLZT0iW29iamVjdCBXZWFrTWFwXSIsWEtlPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsJEtlPSJbb2JqZWN0IERhdGFWaWV3XSIsS0tlPSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLFpLZT0iW29iamVjdCBGbG9hdDY0QXJyYXldIixKS2U9IltvYmplY3QgSW50OEFycmF5XSIsUUtlPSJbb2JqZWN0IEludDE2QXJyYXldIix0WmU9IltvYmplY3QgSW50MzJBcnJheV0iLGVaZT0iW29iamVjdCBVaW50OEFycmF5XSIsclplPSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSIsblplPSJbb2JqZWN0IFVpbnQxNkFycmF5XSIsaVplPSJbb2JqZWN0IFVpbnQzMkFycmF5XSIsQ249e307Q25bQ3RlXT1DbltPS2VdPUNuW1hLZV09Q25bJEtlXT1Dblt6S2VdPUNuW0ZLZV09Q25bS0tlXT1DbltaS2VdPUNuW0pLZV09Q25bUUtlXT1Dblt0WmVdPUNuW1ZLZV09Q25bVUtlXT1DbltQdGVdPUNuW3FLZV09Q25bR0tlXT1DbltXS2VdPUNuW1lLZV09Q25bZVplXT1DbltyWmVdPUNuW25aZV09Q25baVplXT0hMDtDbltCS2VdPUNuW0F0ZV09Q25baktlXT0hMTtmdW5jdGlvbiBZQihlLHQscixuLGksbyl7dmFyIGEscz10JlJLZSxsPXQmTktlLGM9dCZES2U7aWYociYmKGE9aT9yKGUsbixpLG8pOnIoZSkpLGEhPT12b2lkIDApcmV0dXJuIGE7aWYoIVBLZShlKSlyZXR1cm4gZTt2YXIgdT1US2UoZSk7aWYodSl7aWYoYT1TS2UoZSksIXMpcmV0dXJuIF9LZShlLGEpfWVsc2V7dmFyIGg9d0tlKGUpLGY9aD09QXRlfHxoPT1IS2U7aWYoQ0tlKGUpKXJldHVybiBnS2UoZSxzKTtpZihoPT1QdGV8fGg9PUN0ZXx8ZiYmIWkpe2lmKGE9bHx8Zj97fTpFS2UoZSksIXMpcmV0dXJuIGw/dktlKGUsbUtlKGEsZSkpOnlLZShlLGRLZShhLGUpKX1lbHNle2lmKCFDbltoXSlyZXR1cm4gaT9lOnt9O2E9TUtlKGUsaCxzKX19b3x8KG89bmV3IGhLZSk7dmFyIHA9by5nZXQoZSk7aWYocClyZXR1cm4gcDtvLnNldChlLGEpLElLZShlKT9lLmZvckVhY2goZnVuY3Rpb24oXyl7YS5hZGQoWUIoXyx0LHIsXyxlLG8pKX0pOkFLZShlKSYmZS5mb3JFYWNoKGZ1bmN0aW9uKF8seSl7YS5zZXQoeSxZQihfLHQscix5LGUsbykpfSk7dmFyIGQ9Yz9sP2JLZTp4S2U6bD9rS2U6TEtlLGc9dT92b2lkIDA6ZChlKTtyZXR1cm4gZktlKGd8fGUsZnVuY3Rpb24oXyx5KXtnJiYoeT1fLF89ZVt5XSkscEtlKGEseSxZQihfLHQscix5LGUsbykpfSksYX1JdGUuZXhwb3J0cz1ZQn0pO3ZhciBrdGU9SCgobktuLEx0ZSk9Pnt2YXIgb1plPVJzdCgpLGFaZT00O2Z1bmN0aW9uIHNaZShlKXtyZXR1cm4gb1plKGUsYVplKX1MdGUuZXhwb3J0cz1zWmV9KTt2YXIgakI9SCgoaUtuLFJ0ZSk9PntmdW5jdGlvbiBsWmUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fVJ0ZS5leHBvcnRzPWxaZX0pO3ZhciBEdGU9SCgob0tuLE50ZSk9PntmdW5jdGlvbiBjWmUoZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtmb3IodmFyIGk9LTEsbz1PYmplY3QodCksYT1uKHQpLHM9YS5sZW5ndGg7cy0tOyl7dmFyIGw9YVtlP3M6KytpXTtpZihyKG9bbF0sbCxvKT09PSExKWJyZWFrfXJldHVybiB0fX1OdGUuZXhwb3J0cz1jWmV9KTt2YXIgWEI9SCgoYUtuLE90ZSk9Pnt2YXIgdVplPUR0ZSgpLGhaZT11WmUoKTtPdGUuZXhwb3J0cz1oWmV9KTt2YXIgJEI9SCgoc0tuLHp0ZSk9Pnt2YXIgZlplPVhCKCkscFplPVBkKCk7ZnVuY3Rpb24gZFplKGUsdCl7cmV0dXJuIGUmJmZaZShlLHQscFplKX16dGUuZXhwb3J0cz1kWmV9KTt2YXIgQnRlPUgoKGxLbixGdGUpPT57dmFyIG1aZT1IZigpO2Z1bmN0aW9uIGdaZShlLHQpe3JldHVybiBmdW5jdGlvbihyLG4pe2lmKHI9PW51bGwpcmV0dXJuIHI7aWYoIW1aZShyKSlyZXR1cm4gZShyLG4pO2Zvcih2YXIgaT1yLmxlbmd0aCxvPXQ/aTotMSxhPU9iamVjdChyKTsodD9vLS06KytvPGkpJiZuKGFbb10sbyxhKSE9PSExOyk7cmV0dXJuIHJ9fUZ0ZS5leHBvcnRzPWdaZX0pO3ZhciBIND1IKChjS24sSHRlKT0+e3ZhciBfWmU9JEIoKSx5WmU9QnRlKCksdlplPXlaZShfWmUpO0h0ZS5leHBvcnRzPXZaZX0pO3ZhciBoMD1IKCh1S24sVnRlKT0+e2Z1bmN0aW9uIHhaZShlKXtyZXR1cm4gZX1WdGUuZXhwb3J0cz14WmV9KTt2YXIgTnN0PUgoKGhLbixVdGUpPT57dmFyIGJaZT1oMCgpO2Z1bmN0aW9uIHdaZShlKXtyZXR1cm4gdHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTpiWmV9VXRlLmV4cG9ydHM9d1plfSk7dmFyIERzdD1IKChmS24scXRlKT0+e3ZhciBTWmU9QkIoKSxNWmU9SDQoKSxFWmU9TnN0KCksVFplPVRpKCk7ZnVuY3Rpb24gQ1plKGUsdCl7dmFyIHI9VFplKGUpP1NaZTpNWmU7cmV0dXJuIHIoZSxFWmUodCkpfXF0ZS5leHBvcnRzPUNaZX0pO3ZhciBPc3Q9SCgocEtuLEd0ZSk9PntHdGUuZXhwb3J0cz1Ec3QoKX0pO3ZhciBZdGU9SCgoZEtuLFd0ZSk9Pnt2YXIgQVplPUg0KCk7ZnVuY3Rpb24gUFplKGUsdCl7dmFyIHI9W107cmV0dXJuIEFaZShlLGZ1bmN0aW9uKG4saSxvKXt0KG4saSxvKSYmci5wdXNoKG4pfSkscn1XdGUuZXhwb3J0cz1QWmV9KTt2YXIgWHRlPUgoKG1LbixqdGUpPT57dmFyIElaZT0iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI7ZnVuY3Rpb24gTFplKGUpe3JldHVybiB0aGlzLl9fZGF0YV9fLnNldChlLElaZSksdGhpc31qdGUuZXhwb3J0cz1MWmV9KTt2YXIgS3RlPUgoKGdLbiwkdGUpPT57ZnVuY3Rpb24ga1plKGUpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhlKX0kdGUuZXhwb3J0cz1rWmV9KTt2YXIgenN0PUgoKF9LbixadGUpPT57dmFyIFJaZT1GQigpLE5aZT1YdGUoKSxEWmU9S3RlKCk7ZnVuY3Rpb24gS0IoZSl7dmFyIHQ9LTEscj1lPT1udWxsPzA6ZS5sZW5ndGg7Zm9yKHRoaXMuX19kYXRhX189bmV3IFJaZTsrK3Q8cjspdGhpcy5hZGQoZVt0XSl9S0IucHJvdG90eXBlLmFkZD1LQi5wcm90b3R5cGUucHVzaD1OWmU7S0IucHJvdG90eXBlLmhhcz1EWmU7WnRlLmV4cG9ydHM9S0J9KTt2YXIgUXRlPUgoKHlLbixKdGUpPT57ZnVuY3Rpb24gT1plKGUsdCl7Zm9yKHZhciByPS0xLG49ZT09bnVsbD8wOmUubGVuZ3RoOysrcjxuOylpZih0KGVbcl0scixlKSlyZXR1cm4hMDtyZXR1cm4hMX1KdGUuZXhwb3J0cz1PWmV9KTt2YXIgRnN0PUgoKHZLbix0ZWUpPT57ZnVuY3Rpb24gelplKGUsdCl7cmV0dXJuIGUuaGFzKHQpfXRlZS5leHBvcnRzPXpaZX0pO3ZhciBCc3Q9SCgoeEtuLGVlZSk9Pnt2YXIgRlplPXpzdCgpLEJaZT1RdGUoKSxIWmU9RnN0KCksVlplPTEsVVplPTI7ZnVuY3Rpb24gcVplKGUsdCxyLG4saSxvKXt2YXIgYT1yJlZaZSxzPWUubGVuZ3RoLGw9dC5sZW5ndGg7aWYocyE9bCYmIShhJiZsPnMpKXJldHVybiExO3ZhciBjPW8uZ2V0KGUpLHU9by5nZXQodCk7aWYoYyYmdSlyZXR1cm4gYz09dCYmdT09ZTt2YXIgaD0tMSxmPSEwLHA9ciZVWmU/bmV3IEZaZTp2b2lkIDA7Zm9yKG8uc2V0KGUsdCksby5zZXQodCxlKTsrK2g8czspe3ZhciBkPWVbaF0sZz10W2hdO2lmKG4pdmFyIF89YT9uKGcsZCxoLHQsZSxvKTpuKGQsZyxoLGUsdCxvKTtpZihfIT09dm9pZCAwKXtpZihfKWNvbnRpbnVlO2Y9ITE7YnJlYWt9aWYocCl7aWYoIUJaZSh0LGZ1bmN0aW9uKHkseCl7aWYoIUhaZShwLHgpJiYoZD09PXl8fGkoZCx5LHIsbixvKSkpcmV0dXJuIHAucHVzaCh4KX0pKXtmPSExO2JyZWFrfX1lbHNlIGlmKCEoZD09PWd8fGkoZCxnLHIsbixvKSkpe2Y9ITE7YnJlYWt9fXJldHVybiBvLmRlbGV0ZShlKSxvLmRlbGV0ZSh0KSxmfWVlZS5leHBvcnRzPXFaZX0pO3ZhciBuZWU9SCgoYktuLHJlZSk9PntmdW5jdGlvbiBHWmUoZSl7dmFyIHQ9LTEscj1BcnJheShlLnNpemUpO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24obixpKXtyWysrdF09W2ksbl19KSxyfXJlZS5leHBvcnRzPUdaZX0pO3ZhciBaQj1IKCh3S24saWVlKT0+e2Z1bmN0aW9uIFdaZShlKXt2YXIgdD0tMSxyPUFycmF5KGUuc2l6ZSk7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihuKXtyWysrdF09bn0pLHJ9aWVlLmV4cG9ydHM9V1plfSk7dmFyIGNlZT1IKChTS24sbGVlKT0+e3ZhciBvZWU9WHYoKSxhZWU9UHN0KCksWVplPWp2KCksalplPUJzdCgpLFhaZT1uZWUoKSwkWmU9WkIoKSxLWmU9MSxaWmU9MixKWmU9IltvYmplY3QgQm9vbGVhbl0iLFFaZT0iW29iamVjdCBEYXRlXSIsdEplPSJbb2JqZWN0IEVycm9yXSIsZUplPSJbb2JqZWN0IE1hcF0iLHJKZT0iW29iamVjdCBOdW1iZXJdIixuSmU9IltvYmplY3QgUmVnRXhwXSIsaUplPSJbb2JqZWN0IFNldF0iLG9KZT0iW29iamVjdCBTdHJpbmddIixhSmU9IltvYmplY3QgU3ltYm9sXSIsc0plPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsbEplPSJbb2JqZWN0IERhdGFWaWV3XSIsc2VlPW9lZT9vZWUucHJvdG90eXBlOnZvaWQgMCxIc3Q9c2VlP3NlZS52YWx1ZU9mOnZvaWQgMDtmdW5jdGlvbiBjSmUoZSx0LHIsbixpLG8sYSl7c3dpdGNoKHIpe2Nhc2UgbEplOmlmKGUuYnl0ZUxlbmd0aCE9dC5ieXRlTGVuZ3RofHxlLmJ5dGVPZmZzZXQhPXQuYnl0ZU9mZnNldClyZXR1cm4hMTtlPWUuYnVmZmVyLHQ9dC5idWZmZXI7Y2FzZSBzSmU6cmV0dXJuIShlLmJ5dGVMZW5ndGghPXQuYnl0ZUxlbmd0aHx8IW8obmV3IGFlZShlKSxuZXcgYWVlKHQpKSk7Y2FzZSBKWmU6Y2FzZSBRWmU6Y2FzZSBySmU6cmV0dXJuIFlaZSgrZSwrdCk7Y2FzZSB0SmU6cmV0dXJuIGUubmFtZT09dC5uYW1lJiZlLm1lc3NhZ2U9PXQubWVzc2FnZTtjYXNlIG5KZTpjYXNlIG9KZTpyZXR1cm4gZT09dCsiIjtjYXNlIGVKZTp2YXIgcz1YWmU7Y2FzZSBpSmU6dmFyIGw9biZLWmU7aWYoc3x8KHM9JFplKSxlLnNpemUhPXQuc2l6ZSYmIWwpcmV0dXJuITE7dmFyIGM9YS5nZXQoZSk7aWYoYylyZXR1cm4gYz09dDtufD1aWmUsYS5zZXQoZSx0KTt2YXIgdT1qWmUocyhlKSxzKHQpLG4saSxvLGEpO3JldHVybiBhLmRlbGV0ZShlKSx1O2Nhc2UgYUplOmlmKEhzdClyZXR1cm4gSHN0LmNhbGwoZSk9PUhzdC5jYWxsKHQpfXJldHVybiExfWxlZS5leHBvcnRzPWNKZX0pO3ZhciBmZWU9SCgoTUtuLGhlZSk9Pnt2YXIgdWVlPXdzdCgpLHVKZT0xLGhKZT1PYmplY3QucHJvdG90eXBlLGZKZT1oSmUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gcEplKGUsdCxyLG4saSxvKXt2YXIgYT1yJnVKZSxzPXVlZShlKSxsPXMubGVuZ3RoLGM9dWVlKHQpLHU9Yy5sZW5ndGg7aWYobCE9dSYmIWEpcmV0dXJuITE7Zm9yKHZhciBoPWw7aC0tOyl7dmFyIGY9c1toXTtpZighKGE/ZiBpbiB0OmZKZS5jYWxsKHQsZikpKXJldHVybiExfXZhciBwPW8uZ2V0KGUpLGQ9by5nZXQodCk7aWYocCYmZClyZXR1cm4gcD09dCYmZD09ZTt2YXIgZz0hMDtvLnNldChlLHQpLG8uc2V0KHQsZSk7Zm9yKHZhciBfPWE7KytoPGw7KXtmPXNbaF07dmFyIHk9ZVtmXSx4PXRbZl07aWYobil2YXIgYj1hP24oeCx5LGYsdCxlLG8pOm4oeSx4LGYsZSx0LG8pO2lmKCEoYj09PXZvaWQgMD95PT09eHx8aSh5LHgscixuLG8pOmIpKXtnPSExO2JyZWFrfV98fChfPWY9PSJjb25zdHJ1Y3RvciIpfWlmKGcmJiFfKXt2YXIgUz1lLmNvbnN0cnVjdG9yLEM9dC5jb25zdHJ1Y3RvcjtTIT1DJiYiY29uc3RydWN0b3IiaW4gZSYmImNvbnN0cnVjdG9yImluIHQmJiEodHlwZW9mIFM9PSJmdW5jdGlvbiImJlMgaW5zdGFuY2VvZiBTJiZ0eXBlb2YgQz09ImZ1bmN0aW9uIiYmQyBpbnN0YW5jZW9mIEMpJiYoZz0hMSl9cmV0dXJuIG8uZGVsZXRlKGUpLG8uZGVsZXRlKHQpLGd9aGVlLmV4cG9ydHM9cEplfSk7dmFyIHhlZT1IKChFS24sdmVlKT0+e3ZhciBWc3Q9UDQoKSxkSmU9QnN0KCksbUplPWNlZSgpLGdKZT1mZWUoKSxwZWU9WnYoKSxkZWU9VGkoKSxtZWU9JHYoKSxfSmU9WVMoKSx5SmU9MSxnZWU9IltvYmplY3QgQXJndW1lbnRzXSIsX2VlPSJbb2JqZWN0IEFycmF5XSIsSkI9IltvYmplY3QgT2JqZWN0XSIsdkplPU9iamVjdC5wcm90b3R5cGUseWVlPXZKZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiB4SmUoZSx0LHIsbixpLG8pe3ZhciBhPWRlZShlKSxzPWRlZSh0KSxsPWE/X2VlOnBlZShlKSxjPXM/X2VlOnBlZSh0KTtsPWw9PWdlZT9KQjpsLGM9Yz09Z2VlP0pCOmM7dmFyIHU9bD09SkIsaD1jPT1KQixmPWw9PWM7aWYoZiYmbWVlKGUpKXtpZighbWVlKHQpKXJldHVybiExO2E9ITAsdT0hMX1pZihmJiYhdSlyZXR1cm4gb3x8KG89bmV3IFZzdCksYXx8X0plKGUpP2RKZShlLHQscixuLGksbyk6bUplKGUsdCxsLHIsbixpLG8pO2lmKCEociZ5SmUpKXt2YXIgcD11JiZ5ZWUuY2FsbChlLCJfX3dyYXBwZWRfXyIpLGQ9aCYmeWVlLmNhbGwodCwiX193cmFwcGVkX18iKTtpZihwfHxkKXt2YXIgZz1wP2UudmFsdWUoKTplLF89ZD90LnZhbHVlKCk6dDtyZXR1cm4gb3x8KG89bmV3IFZzdCksaShnLF8scixuLG8pfX1yZXR1cm4gZj8ob3x8KG89bmV3IFZzdCksZ0plKGUsdCxyLG4saSxvKSk6ITF9dmVlLmV4cG9ydHM9eEplfSk7dmFyIFVzdD1IKChUS24sU2VlKT0+e3ZhciBiSmU9eGVlKCksYmVlPVl1KCk7ZnVuY3Rpb24gd2VlKGUsdCxyLG4saSl7cmV0dXJuIGU9PT10PyEwOmU9PW51bGx8fHQ9PW51bGx8fCFiZWUoZSkmJiFiZWUodCk/ZSE9PWUmJnQhPT10OmJKZShlLHQscixuLHdlZSxpKX1TZWUuZXhwb3J0cz13ZWV9KTt2YXIgRWVlPUgoKENLbixNZWUpPT57dmFyIHdKZT1QNCgpLFNKZT1Vc3QoKSxNSmU9MSxFSmU9MjtmdW5jdGlvbiBUSmUoZSx0LHIsbil7dmFyIGk9ci5sZW5ndGgsbz1pLGE9IW47aWYoZT09bnVsbClyZXR1cm4hbztmb3IoZT1PYmplY3QoZSk7aS0tOyl7dmFyIHM9cltpXTtpZihhJiZzWzJdP3NbMV0hPT1lW3NbMF1dOiEoc1swXWluIGUpKXJldHVybiExfWZvcig7KytpPG87KXtzPXJbaV07dmFyIGw9c1swXSxjPWVbbF0sdT1zWzFdO2lmKGEmJnNbMl0pe2lmKGM9PT12b2lkIDAmJiEobCBpbiBlKSlyZXR1cm4hMX1lbHNle3ZhciBoPW5ldyB3SmU7aWYobil2YXIgZj1uKGMsdSxsLGUsdCxoKTtpZighKGY9PT12b2lkIDA/U0plKHUsYyxNSmV8RUplLG4saCk6ZikpcmV0dXJuITF9fXJldHVybiEwfU1lZS5leHBvcnRzPVRKZX0pO3ZhciBxc3Q9SCgoQUtuLFRlZSk9Pnt2YXIgQ0plPUVsKCk7ZnVuY3Rpb24gQUplKGUpe3JldHVybiBlPT09ZSYmIUNKZShlKX1UZWUuZXhwb3J0cz1BSmV9KTt2YXIgQWVlPUgoKFBLbixDZWUpPT57dmFyIFBKZT1xc3QoKSxJSmU9UGQoKTtmdW5jdGlvbiBMSmUoZSl7Zm9yKHZhciB0PUlKZShlKSxyPXQubGVuZ3RoO3ItLTspe3ZhciBuPXRbcl0saT1lW25dO3Rbcl09W24saSxQSmUoaSldfXJldHVybiB0fUNlZS5leHBvcnRzPUxKZX0pO3ZhciBHc3Q9SCgoSUtuLFBlZSk9PntmdW5jdGlvbiBrSmUoZSx0KXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHI9PW51bGw/ITE6cltlXT09PXQmJih0IT09dm9pZCAwfHxlIGluIE9iamVjdChyKSl9fVBlZS5leHBvcnRzPWtKZX0pO3ZhciBMZWU9SCgoTEtuLEllZSk9Pnt2YXIgUkplPUVlZSgpLE5KZT1BZWUoKSxESmU9R3N0KCk7ZnVuY3Rpb24gT0plKGUpe3ZhciB0PU5KZShlKTtyZXR1cm4gdC5sZW5ndGg9PTEmJnRbMF1bMl0/REplKHRbMF1bMF0sdFswXVsxXSk6ZnVuY3Rpb24ocil7cmV0dXJuIHI9PT1lfHxSSmUocixlLHQpfX1JZWUuZXhwb3J0cz1PSmV9KTt2YXIgSnY9SCgoa0tuLGtlZSk9Pnt2YXIgekplPWwwKCksRkplPVl1KCksQkplPSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIEhKZShlKXtyZXR1cm4gdHlwZW9mIGU9PSJzeW1ib2wifHxGSmUoZSkmJnpKZShlKT09QkplfWtlZS5leHBvcnRzPUhKZX0pO3ZhciBRQj1IKChSS24sUmVlKT0+e3ZhciBWSmU9VGkoKSxVSmU9SnYoKSxxSmU9L1wufFxbKD86W15bXF1dKnwoWyInXSkoPzooPyFcMSlbXlxcXXxcXC4pKj9cMSlcXS8sR0plPS9eXHcqJC87ZnVuY3Rpb24gV0plKGUsdCl7aWYoVkplKGUpKXJldHVybiExO3ZhciByPXR5cGVvZiBlO3JldHVybiByPT0ibnVtYmVyInx8cj09InN5bWJvbCJ8fHI9PSJib29sZWFuInx8ZT09bnVsbHx8VUplKGUpPyEwOkdKZS50ZXN0KGUpfHwhcUplLnRlc3QoZSl8fHQhPW51bGwmJmUgaW4gT2JqZWN0KHQpfVJlZS5leHBvcnRzPVdKZX0pO3ZhciBPZWU9SCgoTktuLERlZSk9Pnt2YXIgTmVlPUZCKCksWUplPSJFeHBlY3RlZCBhIGZ1bmN0aW9uIjtmdW5jdGlvbiBXc3QoZSx0KXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uInx8dCE9bnVsbCYmdHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcihZSmUpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIG49YXJndW1lbnRzLGk9dD90LmFwcGx5KHRoaXMsbik6blswXSxvPXIuY2FjaGU7aWYoby5oYXMoaSkpcmV0dXJuIG8uZ2V0KGkpO3ZhciBhPWUuYXBwbHkodGhpcyxuKTtyZXR1cm4gci5jYWNoZT1vLnNldChpLGEpfHxvLGF9O3JldHVybiByLmNhY2hlPW5ldyhXc3QuQ2FjaGV8fE5lZSkscn1Xc3QuQ2FjaGU9TmVlO0RlZS5leHBvcnRzPVdzdH0pO3ZhciBGZWU9SCgoREtuLHplZSk9Pnt2YXIgakplPU9lZSgpLFhKZT01MDA7ZnVuY3Rpb24gJEplKGUpe3ZhciB0PWpKZShlLGZ1bmN0aW9uKG4pe3JldHVybiByLnNpemU9PT1YSmUmJnIuY2xlYXIoKSxufSkscj10LmNhY2hlO3JldHVybiB0fXplZS5leHBvcnRzPSRKZX0pO3ZhciBIZWU9SCgoT0tuLEJlZSk9Pnt2YXIgS0plPUZlZSgpLFpKZT0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxKSmU9L1xcKFxcKT8vZyxRSmU9S0plKGZ1bmN0aW9uKGUpe3ZhciB0PVtdO3JldHVybiBlLmNoYXJDb2RlQXQoMCk9PT00NiYmdC5wdXNoKCIiKSxlLnJlcGxhY2UoWkplLGZ1bmN0aW9uKHIsbixpLG8pe3QucHVzaChpP28ucmVwbGFjZShKSmUsIiQxIik6bnx8cil9KSx0fSk7QmVlLmV4cG9ydHM9UUplfSk7dmFyIFY0PUgoKHpLbixWZWUpPT57ZnVuY3Rpb24gdFFlKGUsdCl7Zm9yKHZhciByPS0xLG49ZT09bnVsbD8wOmUubGVuZ3RoLGk9QXJyYXkobik7KytyPG47KWlbcl09dChlW3JdLHIsZSk7cmV0dXJuIGl9VmVlLmV4cG9ydHM9dFFlfSk7dmFyIGplZT1IKChGS24sWWVlKT0+e3ZhciBVZWU9WHYoKSxlUWU9VjQoKSxyUWU9VGkoKSxuUWU9SnYoKSxpUWU9MS8wLHFlZT1VZWU/VWVlLnByb3RvdHlwZTp2b2lkIDAsR2VlPXFlZT9xZWUudG9TdHJpbmc6dm9pZCAwO2Z1bmN0aW9uIFdlZShlKXtpZih0eXBlb2YgZT09InN0cmluZyIpcmV0dXJuIGU7aWYoclFlKGUpKXJldHVybiBlUWUoZSxXZWUpKyIiO2lmKG5RZShlKSlyZXR1cm4gR2VlP0dlZS5jYWxsKGUpOiIiO3ZhciB0PWUrIiI7cmV0dXJuIHQ9PSIwIiYmMS9lPT0taVFlPyItMCI6dH1ZZWUuZXhwb3J0cz1XZWV9KTt2YXIgWXN0PUgoKEJLbixYZWUpPT57dmFyIG9RZT1qZWUoKTtmdW5jdGlvbiBhUWUoZSl7cmV0dXJuIGU9PW51bGw/IiI6b1FlKGUpfVhlZS5leHBvcnRzPWFRZX0pO3ZhciBVND1IKChIS24sJGVlKT0+e3ZhciBzUWU9VGkoKSxsUWU9UUIoKSxjUWU9SGVlKCksdVFlPVlzdCgpO2Z1bmN0aW9uIGhRZShlLHQpe3JldHVybiBzUWUoZSk/ZTpsUWUoZSx0KT9bZV06Y1FlKHVRZShlKSl9JGVlLmV4cG9ydHM9aFFlfSk7dmFyICRTPUgoKFZLbixLZWUpPT57dmFyIGZRZT1KdigpLHBRZT0xLzA7ZnVuY3Rpb24gZFFlKGUpe2lmKHR5cGVvZiBlPT0ic3RyaW5nInx8ZlFlKGUpKXJldHVybiBlO3ZhciB0PWUrIiI7cmV0dXJuIHQ9PSIwIiYmMS9lPT0tcFFlPyItMCI6dH1LZWUuZXhwb3J0cz1kUWV9KTt2YXIgcTQ9SCgoVUtuLFplZSk9Pnt2YXIgbVFlPVU0KCksZ1FlPSRTKCk7ZnVuY3Rpb24gX1FlKGUsdCl7dD1tUWUodCxlKTtmb3IodmFyIHI9MCxuPXQubGVuZ3RoO2UhPW51bGwmJnI8bjspZT1lW2dRZSh0W3IrK10pXTtyZXR1cm4gciYmcj09bj9lOnZvaWQgMH1aZWUuZXhwb3J0cz1fUWV9KTt2YXIgUWVlPUgoKHFLbixKZWUpPT57dmFyIHlRZT1xNCgpO2Z1bmN0aW9uIHZRZShlLHQscil7dmFyIG49ZT09bnVsbD92b2lkIDA6eVFlKGUsdCk7cmV0dXJuIG49PT12b2lkIDA/cjpufUplZS5leHBvcnRzPXZRZX0pO3ZhciBlcmU9SCgoR0tuLHRyZSk9PntmdW5jdGlvbiB4UWUoZSx0KXtyZXR1cm4gZSE9bnVsbCYmdCBpbiBPYmplY3QoZSl9dHJlLmV4cG9ydHM9eFFlfSk7dmFyIGpzdD1IKChXS24scnJlKT0+e3ZhciBiUWU9VTQoKSx3UWU9cVMoKSxTUWU9VGkoKSxNUWU9UjQoKSxFUWU9SEIoKSxUUWU9JFMoKTtmdW5jdGlvbiBDUWUoZSx0LHIpe3Q9YlFlKHQsZSk7Zm9yKHZhciBuPS0xLGk9dC5sZW5ndGgsbz0hMTsrK248aTspe3ZhciBhPVRRZSh0W25dKTtpZighKG89ZSE9bnVsbCYmcihlLGEpKSlicmVhaztlPWVbYV19cmV0dXJuIG98fCsrbiE9aT9vOihpPWU9PW51bGw/MDplLmxlbmd0aCwhIWkmJkVRZShpKSYmTVFlKGEsaSkmJihTUWUoZSl8fHdRZShlKSkpfXJyZS5leHBvcnRzPUNRZX0pO3ZhciBYc3Q9SCgoWUtuLG5yZSk9Pnt2YXIgQVFlPWVyZSgpLFBRZT1qc3QoKTtmdW5jdGlvbiBJUWUoZSx0KXtyZXR1cm4gZSE9bnVsbCYmUFFlKGUsdCxBUWUpfW5yZS5leHBvcnRzPUlRZX0pO3ZhciBvcmU9SCgoaktuLGlyZSk9Pnt2YXIgTFFlPVVzdCgpLGtRZT1RZWUoKSxSUWU9WHN0KCksTlFlPVFCKCksRFFlPXFzdCgpLE9RZT1Hc3QoKSx6UWU9JFMoKSxGUWU9MSxCUWU9MjtmdW5jdGlvbiBIUWUoZSx0KXtyZXR1cm4gTlFlKGUpJiZEUWUodCk/T1FlKHpRZShlKSx0KTpmdW5jdGlvbihyKXt2YXIgbj1rUWUocixlKTtyZXR1cm4gbj09PXZvaWQgMCYmbj09PXQ/UlFlKHIsZSk6TFFlKHQsbixGUWV8QlFlKX19aXJlLmV4cG9ydHM9SFFlfSk7dmFyICRzdD1IKChYS24sYXJlKT0+e2Z1bmN0aW9uIFZRZShlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ9PW51bGw/dm9pZCAwOnRbZV19fWFyZS5leHBvcnRzPVZRZX0pO3ZhciBscmU9SCgoJEtuLHNyZSk9Pnt2YXIgVVFlPXE0KCk7ZnVuY3Rpb24gcVFlKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gVVFlKHQsZSl9fXNyZS5leHBvcnRzPXFRZX0pO3ZhciB1cmU9SCgoS0tuLGNyZSk9Pnt2YXIgR1FlPSRzdCgpLFdRZT1scmUoKSxZUWU9UUIoKSxqUWU9JFMoKTtmdW5jdGlvbiBYUWUoZSl7cmV0dXJuIFlRZShlKT9HUWUoalFlKGUpKTpXUWUoZSl9Y3JlLmV4cG9ydHM9WFFlfSk7dmFyIFZmPUgoKFpLbixocmUpPT57dmFyICRRZT1MZWUoKSxLUWU9b3JlKCksWlFlPWgwKCksSlFlPVRpKCksUVFlPXVyZSgpO2Z1bmN0aW9uIHR0cihlKXtyZXR1cm4gdHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTplPT1udWxsP1pRZTp0eXBlb2YgZT09Im9iamVjdCI/SlFlKGUpP0tRZShlWzBdLGVbMV0pOiRRZShlKTpRUWUoZSl9aHJlLmV4cG9ydHM9dHRyfSk7dmFyIEtzdD1IKChKS24sZnJlKT0+e3ZhciBldHI9eXN0KCkscnRyPVl0ZSgpLG50cj1WZigpLGl0cj1UaSgpO2Z1bmN0aW9uIG90cihlLHQpe3ZhciByPWl0cihlKT9ldHI6cnRyO3JldHVybiByKGUsbnRyKHQsMykpfWZyZS5leHBvcnRzPW90cn0pO3ZhciBkcmU9SCgoUUtuLHByZSk9Pnt2YXIgYXRyPU9iamVjdC5wcm90b3R5cGUsc3RyPWF0ci5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBsdHIoZSx0KXtyZXR1cm4gZSE9bnVsbCYmc3RyLmNhbGwoZSx0KX1wcmUuZXhwb3J0cz1sdHJ9KTt2YXIgWnN0PUgoKHRabixtcmUpPT57dmFyIGN0cj1kcmUoKSx1dHI9anN0KCk7ZnVuY3Rpb24gaHRyKGUsdCl7cmV0dXJuIGUhPW51bGwmJnV0cihlLHQsY3RyKX1tcmUuZXhwb3J0cz1odHJ9KTt2YXIgX3JlPUgoKGVabixncmUpPT57dmFyIGZ0cj1VQigpLHB0cj1adigpLGR0cj1xUygpLG10cj1UaSgpLGd0cj1IZigpLF90cj0kdigpLHl0cj16NCgpLHZ0cj1ZUygpLHh0cj0iW29iamVjdCBNYXBdIixidHI9IltvYmplY3QgU2V0XSIsd3RyPU9iamVjdC5wcm90b3R5cGUsU3RyPXd0ci5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBNdHIoZSl7aWYoZT09bnVsbClyZXR1cm4hMDtpZihndHIoZSkmJihtdHIoZSl8fHR5cGVvZiBlPT0ic3RyaW5nInx8dHlwZW9mIGUuc3BsaWNlPT0iZnVuY3Rpb24ifHxfdHIoZSl8fHZ0cihlKXx8ZHRyKGUpKSlyZXR1cm4hZS5sZW5ndGg7dmFyIHQ9cHRyKGUpO2lmKHQ9PXh0cnx8dD09YnRyKXJldHVybiFlLnNpemU7aWYoeXRyKGUpKXJldHVybiFmdHIoZSkubGVuZ3RoO2Zvcih2YXIgciBpbiBlKWlmKFN0ci5jYWxsKGUscikpcmV0dXJuITE7cmV0dXJuITB9Z3JlLmV4cG9ydHM9TXRyfSk7dmFyIEpzdD1IKChyWm4seXJlKT0+e2Z1bmN0aW9uIEV0cihlKXtyZXR1cm4gZT09PXZvaWQgMH15cmUuZXhwb3J0cz1FdHJ9KTt2YXIgUXN0PUgoKG5abix2cmUpPT57dmFyIFR0cj1INCgpLEN0cj1IZigpO2Z1bmN0aW9uIEF0cihlLHQpe3ZhciByPS0xLG49Q3RyKGUpP0FycmF5KGUubGVuZ3RoKTpbXTtyZXR1cm4gVHRyKGUsZnVuY3Rpb24oaSxvLGEpe25bKytyXT10KGksbyxhKX0pLG59dnJlLmV4cG9ydHM9QXRyfSk7dmFyIHRsdD1IKChpWm4seHJlKT0+e3ZhciBQdHI9VjQoKSxJdHI9VmYoKSxMdHI9UXN0KCksa3RyPVRpKCk7ZnVuY3Rpb24gUnRyKGUsdCl7dmFyIHI9a3RyKGUpP1B0cjpMdHI7cmV0dXJuIHIoZSxJdHIodCwzKSl9eHJlLmV4cG9ydHM9UnRyfSk7dmFyIHdyZT1IKChvWm4sYnJlKT0+e2Z1bmN0aW9uIE50cihlLHQscixuKXt2YXIgaT0tMSxvPWU9PW51bGw/MDplLmxlbmd0aDtmb3IobiYmbyYmKHI9ZVsrK2ldKTsrK2k8bzspcj10KHIsZVtpXSxpLGUpO3JldHVybiByfWJyZS5leHBvcnRzPU50cn0pO3ZhciBNcmU9SCgoYVpuLFNyZSk9PntmdW5jdGlvbiBEdHIoZSx0LHIsbixpKXtyZXR1cm4gaShlLGZ1bmN0aW9uKG8sYSxzKXtyPW4/KG49ITEsbyk6dChyLG8sYSxzKX0pLHJ9U3JlLmV4cG9ydHM9RHRyfSk7dmFyIGVsdD1IKChzWm4sRXJlKT0+e3ZhciBPdHI9d3JlKCksenRyPUg0KCksRnRyPVZmKCksQnRyPU1yZSgpLEh0cj1UaSgpO2Z1bmN0aW9uIFZ0cihlLHQscil7dmFyIG49SHRyKGUpP090cjpCdHIsaT1hcmd1bWVudHMubGVuZ3RoPDM7cmV0dXJuIG4oZSxGdHIodCw0KSxyLGksenRyKX1FcmUuZXhwb3J0cz1WdHJ9KTt2YXIgQ3JlPUgoKGxabixUcmUpPT57dmFyIFV0cj1sMCgpLHF0cj1UaSgpLEd0cj1ZdSgpLFd0cj0iW29iamVjdCBTdHJpbmddIjtmdW5jdGlvbiBZdHIoZSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nInx8IXF0cihlKSYmR3RyKGUpJiZVdHIoZSk9PVd0cn1UcmUuZXhwb3J0cz1ZdHJ9KTt2YXIgUHJlPUgoKGNabixBcmUpPT57dmFyIGp0cj0kc3QoKSxYdHI9anRyKCJsZW5ndGgiKTtBcmUuZXhwb3J0cz1YdHJ9KTt2YXIgTHJlPUgoKHVabixJcmUpPT57dmFyICR0cj0iXFx1ZDgwMC1cXHVkZmZmIixLdHI9IlxcdTAzMDAtXFx1MDM2ZiIsWnRyPSJcXHVmZTIwLVxcdWZlMmYiLEp0cj0iXFx1MjBkMC1cXHUyMGZmIixRdHI9S3RyK1p0citKdHIsdGVyPSJcXHVmZTBlXFx1ZmUwZiIsZWVyPSJcXHUyMDBkIixyZXI9UmVnRXhwKCJbIitlZXIrJHRyK1F0cit0ZXIrIl0iKTtmdW5jdGlvbiBuZXIoZSl7cmV0dXJuIHJlci50ZXN0KGUpfUlyZS5leHBvcnRzPW5lcn0pO3ZhciBIcmU9SCgoaFpuLEJyZSk9Pnt2YXIgUnJlPSJcXHVkODAwLVxcdWRmZmYiLGllcj0iXFx1MDMwMC1cXHUwMzZmIixvZXI9IlxcdWZlMjAtXFx1ZmUyZiIsYWVyPSJcXHUyMGQwLVxcdTIwZmYiLHNlcj1pZXIrb2VyK2FlcixsZXI9IlxcdWZlMGVcXHVmZTBmIixjZXI9IlsiK1JyZSsiXSIscmx0PSJbIitzZXIrIl0iLG5sdD0iXFx1ZDgzY1tcXHVkZmZiLVxcdWRmZmZdIix1ZXI9Iig/OiIrcmx0KyJ8IitubHQrIikiLE5yZT0iW14iK1JyZSsiXSIsRHJlPSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IixPcmU9IltcXHVkODAwLVxcdWRiZmZdW1xcdWRjMDAtXFx1ZGZmZl0iLGhlcj0iXFx1MjAwZCIsenJlPXVlcisiPyIsRnJlPSJbIitsZXIrIl0/IixmZXI9Iig/OiIraGVyKyIoPzoiK1tOcmUsRHJlLE9yZV0uam9pbigifCIpKyIpIitGcmUrenJlKyIpKiIscGVyPUZyZSt6cmUrZmVyLGRlcj0iKD86IitbTnJlK3JsdCsiPyIscmx0LERyZSxPcmUsY2VyXS5qb2luKCJ8IikrIikiLGtyZT1SZWdFeHAobmx0KyIoPz0iK25sdCsiKXwiK2RlcitwZXIsImciKTtmdW5jdGlvbiBtZXIoZSl7Zm9yKHZhciB0PWtyZS5sYXN0SW5kZXg9MDtrcmUudGVzdChlKTspKyt0O3JldHVybiB0fUJyZS5leHBvcnRzPW1lcn0pO3ZhciBVcmU9SCgoZlpuLFZyZSk9Pnt2YXIgZ2VyPVByZSgpLF9lcj1McmUoKSx5ZXI9SHJlKCk7ZnVuY3Rpb24gdmVyKGUpe3JldHVybiBfZXIoZSk/eWVyKGUpOmdlcihlKX1WcmUuZXhwb3J0cz12ZXJ9KTt2YXIgR3JlPUgoKHBabixxcmUpPT57dmFyIHhlcj1VQigpLGJlcj1adigpLHdlcj1IZigpLFNlcj1DcmUoKSxNZXI9VXJlKCksRWVyPSJbb2JqZWN0IE1hcF0iLFRlcj0iW29iamVjdCBTZXRdIjtmdW5jdGlvbiBDZXIoZSl7aWYoZT09bnVsbClyZXR1cm4gMDtpZih3ZXIoZSkpcmV0dXJuIFNlcihlKT9NZXIoZSk6ZS5sZW5ndGg7dmFyIHQ9YmVyKGUpO3JldHVybiB0PT1FZXJ8fHQ9PVRlcj9lLnNpemU6eGVyKGUpLmxlbmd0aH1xcmUuZXhwb3J0cz1DZXJ9KTt2YXIgWXJlPUgoKGRabixXcmUpPT57dmFyIEFlcj1CQigpLFBlcj1Mc3QoKSxJZXI9JEIoKSxMZXI9VmYoKSxrZXI9QjQoKSxSZXI9VGkoKSxOZXI9JHYoKSxEZXI9RlMoKSxPZXI9RWwoKSx6ZXI9WVMoKTtmdW5jdGlvbiBGZXIoZSx0LHIpe3ZhciBuPVJlcihlKSxpPW58fE5lcihlKXx8emVyKGUpO2lmKHQ9TGVyKHQsNCkscj09bnVsbCl7dmFyIG89ZSYmZS5jb25zdHJ1Y3RvcjtpP3I9bj9uZXcgbzpbXTpPZXIoZSk/cj1EZXIobyk/UGVyKGtlcihlKSk6e306cj17fX1yZXR1cm4oaT9BZXI6SWVyKShlLGZ1bmN0aW9uKGEscyxsKXtyZXR1cm4gdChyLGEscyxsKX0pLHJ9V3JlLmV4cG9ydHM9RmVyfSk7dmFyIEtyZT1IKChtWm4sJHJlKT0+e3ZhciBqcmU9WHYoKSxCZXI9cVMoKSxIZXI9VGkoKSxYcmU9anJlP2pyZS5pc0NvbmNhdFNwcmVhZGFibGU6dm9pZCAwO2Z1bmN0aW9uIFZlcihlKXtyZXR1cm4gSGVyKGUpfHxCZXIoZSl8fCEhKFhyZSYmZSYmZVtYcmVdKX0kcmUuZXhwb3J0cz1WZXJ9KTt2YXIgdEg9SCgoZ1puLEpyZSk9Pnt2YXIgVWVyPUdCKCkscWVyPUtyZSgpO2Z1bmN0aW9uIFpyZShlLHQscixuLGkpe3ZhciBvPS0xLGE9ZS5sZW5ndGg7Zm9yKHJ8fChyPXFlciksaXx8KGk9W10pOysrbzxhOyl7dmFyIHM9ZVtvXTt0PjAmJnIocyk/dD4xP1pyZShzLHQtMSxyLG4saSk6VWVyKGkscyk6bnx8KGlbaS5sZW5ndGhdPXMpfXJldHVybiBpfUpyZS5leHBvcnRzPVpyZX0pO3ZhciB0bmU9SCgoX1puLFFyZSk9PntmdW5jdGlvbiBHZXIoZSx0LHIpe3N3aXRjaChyLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBlLmNhbGwodCk7Y2FzZSAxOnJldHVybiBlLmNhbGwodCxyWzBdKTtjYXNlIDI6cmV0dXJuIGUuY2FsbCh0LHJbMF0sclsxXSk7Y2FzZSAzOnJldHVybiBlLmNhbGwodCxyWzBdLHJbMV0sclsyXSl9cmV0dXJuIGUuYXBwbHkodCxyKX1RcmUuZXhwb3J0cz1HZXJ9KTt2YXIgaWx0PUgoKHlabixybmUpPT57dmFyIFdlcj10bmUoKSxlbmU9TWF0aC5tYXg7ZnVuY3Rpb24gWWVyKGUsdCxyKXtyZXR1cm4gdD1lbmUodD09PXZvaWQgMD9lLmxlbmd0aC0xOnQsMCksZnVuY3Rpb24oKXtmb3IodmFyIG49YXJndW1lbnRzLGk9LTEsbz1lbmUobi5sZW5ndGgtdCwwKSxhPUFycmF5KG8pOysraTxvOylhW2ldPW5bdCtpXTtpPS0xO2Zvcih2YXIgcz1BcnJheSh0KzEpOysraTx0OylzW2ldPW5baV07cmV0dXJuIHNbdF09cihhKSxXZXIoZSx0aGlzLHMpfX1ybmUuZXhwb3J0cz1ZZXJ9KTt2YXIgb25lPUgoKHZabixpbmUpPT57dmFyIGplcj1qQigpLG5uZT1mc3QoKSxYZXI9aDAoKSwkZXI9bm5lP2Z1bmN0aW9uKGUsdCl7cmV0dXJuIG5uZShlLCJ0b1N0cmluZyIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHZhbHVlOmplcih0KSx3cml0YWJsZTohMH0pfTpYZXI7aW5lLmV4cG9ydHM9JGVyfSk7dmFyIHNuZT1IKCh4Wm4sYW5lKT0+e3ZhciBLZXI9ODAwLFplcj0xNixKZXI9RGF0ZS5ub3c7ZnVuY3Rpb24gUWVyKGUpe3ZhciB0PTAscj0wO3JldHVybiBmdW5jdGlvbigpe3ZhciBuPUplcigpLGk9WmVyLShuLXIpO2lmKHI9bixpPjApe2lmKCsrdD49S2VyKXJldHVybiBhcmd1bWVudHNbMF19ZWxzZSB0PTA7cmV0dXJuIGUuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9fWFuZS5leHBvcnRzPVFlcn0pO3ZhciBvbHQ9SCgoYlpuLGxuZSk9Pnt2YXIgdHJyPW9uZSgpLGVycj1zbmUoKSxycnI9ZXJyKHRycik7bG5lLmV4cG9ydHM9cnJyfSk7dmFyIEc0PUgoKHdabixjbmUpPT57dmFyIG5ycj1oMCgpLGlycj1pbHQoKSxvcnI9b2x0KCk7ZnVuY3Rpb24gYXJyKGUsdCl7cmV0dXJuIG9ycihpcnIoZSx0LG5yciksZSsiIil9Y25lLmV4cG9ydHM9YXJyfSk7dmFyIGFsdD1IKChTWm4sdW5lKT0+e2Z1bmN0aW9uIHNycihlLHQscixuKXtmb3IodmFyIGk9ZS5sZW5ndGgsbz1yKyhuPzE6LTEpO24/by0tOisrbzxpOylpZih0KGVbb10sbyxlKSlyZXR1cm4gbztyZXR1cm4tMX11bmUuZXhwb3J0cz1zcnJ9KTt2YXIgZm5lPUgoKE1abixobmUpPT57ZnVuY3Rpb24gbHJyKGUpe3JldHVybiBlIT09ZX1obmUuZXhwb3J0cz1scnJ9KTt2YXIgZG5lPUgoKEVabixwbmUpPT57ZnVuY3Rpb24gY3JyKGUsdCxyKXtmb3IodmFyIG49ci0xLGk9ZS5sZW5ndGg7KytuPGk7KWlmKGVbbl09PT10KXJldHVybiBuO3JldHVybi0xfXBuZS5leHBvcnRzPWNycn0pO3ZhciBnbmU9SCgoVFpuLG1uZSk9Pnt2YXIgdXJyPWFsdCgpLGhycj1mbmUoKSxmcnI9ZG5lKCk7ZnVuY3Rpb24gcHJyKGUsdCxyKXtyZXR1cm4gdD09PXQ/ZnJyKGUsdCxyKTp1cnIoZSxocnIscil9bW5lLmV4cG9ydHM9cHJyfSk7dmFyIHluZT1IKChDWm4sX25lKT0+e3ZhciBkcnI9Z25lKCk7ZnVuY3Rpb24gbXJyKGUsdCl7dmFyIHI9ZT09bnVsbD8wOmUubGVuZ3RoO3JldHVybiEhciYmZHJyKGUsdCwwKT4tMX1fbmUuZXhwb3J0cz1tcnJ9KTt2YXIgeG5lPUgoKEFabix2bmUpPT57ZnVuY3Rpb24gZ3JyKGUsdCxyKXtmb3IodmFyIG49LTEsaT1lPT1udWxsPzA6ZS5sZW5ndGg7KytuPGk7KWlmKHIodCxlW25dKSlyZXR1cm4hMDtyZXR1cm4hMX12bmUuZXhwb3J0cz1ncnJ9KTt2YXIgd25lPUgoKFBabixibmUpPT57ZnVuY3Rpb24gX3JyKCl7fWJuZS5leHBvcnRzPV9ycn0pO3ZhciBNbmU9SCgoSVpuLFNuZSk9Pnt2YXIgc2x0PVNzdCgpLHlycj13bmUoKSx2cnI9WkIoKSx4cnI9MS8wLGJycj1zbHQmJjEvdnJyKG5ldyBzbHQoWywtMF0pKVsxXT09eHJyP2Z1bmN0aW9uKGUpe3JldHVybiBuZXcgc2x0KGUpfTp5cnI7U25lLmV4cG9ydHM9YnJyfSk7dmFyIFRuZT1IKChMWm4sRW5lKT0+e3ZhciB3cnI9enN0KCksU3JyPXluZSgpLE1ycj14bmUoKSxFcnI9RnN0KCksVHJyPU1uZSgpLENycj1aQigpLEFycj0yMDA7ZnVuY3Rpb24gUHJyKGUsdCxyKXt2YXIgbj0tMSxpPVNycixvPWUubGVuZ3RoLGE9ITAscz1bXSxsPXM7aWYocilhPSExLGk9TXJyO2Vsc2UgaWYobz49QXJyKXt2YXIgYz10P251bGw6VHJyKGUpO2lmKGMpcmV0dXJuIENycihjKTthPSExLGk9RXJyLGw9bmV3IHdycn1lbHNlIGw9dD9bXTpzO3Q6Zm9yKDsrK248bzspe3ZhciB1PWVbbl0saD10P3QodSk6dTtpZih1PXJ8fHUhPT0wP3U6MCxhJiZoPT09aCl7Zm9yKHZhciBmPWwubGVuZ3RoO2YtLTspaWYobFtmXT09PWgpY29udGludWUgdDt0JiZsLnB1c2goaCkscy5wdXNoKHUpfWVsc2UgaShsLGgscil8fChsIT09cyYmbC5wdXNoKGgpLHMucHVzaCh1KSl9cmV0dXJuIHN9RW5lLmV4cG9ydHM9UHJyfSk7dmFyIGxsdD1IKChrWm4sQ25lKT0+e3ZhciBJcnI9SGYoKSxMcnI9WXUoKTtmdW5jdGlvbiBrcnIoZSl7cmV0dXJuIExycihlKSYmSXJyKGUpfUNuZS5leHBvcnRzPWtycn0pO3ZhciBQbmU9SCgoUlpuLEFuZSk9Pnt2YXIgUnJyPXRIKCksTnJyPUc0KCksRHJyPVRuZSgpLE9ycj1sbHQoKSx6cnI9TnJyKGZ1bmN0aW9uKGUpe3JldHVybiBEcnIoUnJyKGUsMSxPcnIsITApKX0pO0FuZS5leHBvcnRzPXpycn0pO3ZhciBMbmU9SCgoTlpuLEluZSk9Pnt2YXIgRnJyPVY0KCk7ZnVuY3Rpb24gQnJyKGUsdCl7cmV0dXJuIEZycih0LGZ1bmN0aW9uKHIpe3JldHVybiBlW3JdfSl9SW5lLmV4cG9ydHM9QnJyfSk7dmFyIGNsdD1IKChEWm4sa25lKT0+e3ZhciBIcnI9TG5lKCksVnJyPVBkKCk7ZnVuY3Rpb24gVXJyKGUpe3JldHVybiBlPT1udWxsP1tdOkhycihlLFZycihlKSl9a25lLmV4cG9ydHM9VXJyfSk7dmFyIFRsPUgoKE9abixSbmUpPT57dmFyIGVIO2lmKHR5cGVvZiBFeD09ImZ1bmN0aW9uIil0cnl7ZUg9e2Nsb25lOmt0ZSgpLGNvbnN0YW50OmpCKCksZWFjaDpPc3QoKSxmaWx0ZXI6S3N0KCksaGFzOlpzdCgpLGlzQXJyYXk6VGkoKSxpc0VtcHR5Ol9yZSgpLGlzRnVuY3Rpb246RlMoKSxpc1VuZGVmaW5lZDpKc3QoKSxrZXlzOlBkKCksbWFwOnRsdCgpLHJlZHVjZTplbHQoKSxzaXplOkdyZSgpLHRyYW5zZm9ybTpZcmUoKSx1bmlvbjpQbmUoKSx2YWx1ZXM6Y2x0KCl9fWNhdGNoKGUpe31lSHx8KGVIPXdpbmRvdy5fKTtSbmUuZXhwb3J0cz1lSH0pO3ZhciBySD1IKChGWm4sem5lKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgamU9VGwoKTt6bmUuZXhwb3J0cz1jcjt2YXIgcXJyPSJcMCIsUXY9IlwwIixObmU9IgEiO2Z1bmN0aW9uIGNyKGUpe3RoaXMuX2lzRGlyZWN0ZWQ9amUuaGFzKGUsImRpcmVjdGVkIik/ZS5kaXJlY3RlZDohMCx0aGlzLl9pc011bHRpZ3JhcGg9amUuaGFzKGUsIm11bHRpZ3JhcGgiKT9lLm11bHRpZ3JhcGg6ITEsdGhpcy5faXNDb21wb3VuZD1qZS5oYXMoZSwiY29tcG91bmQiKT9lLmNvbXBvdW5kOiExLHRoaXMuX2xhYmVsPXZvaWQgMCx0aGlzLl9kZWZhdWx0Tm9kZUxhYmVsRm49amUuY29uc3RhbnQodm9pZCAwKSx0aGlzLl9kZWZhdWx0RWRnZUxhYmVsRm49amUuY29uc3RhbnQodm9pZCAwKSx0aGlzLl9ub2Rlcz17fSx0aGlzLl9pc0NvbXBvdW5kJiYodGhpcy5fcGFyZW50PXt9LHRoaXMuX2NoaWxkcmVuPXt9LHRoaXMuX2NoaWxkcmVuW1F2XT17fSksdGhpcy5faW49e30sdGhpcy5fcHJlZHM9e30sdGhpcy5fb3V0PXt9LHRoaXMuX3N1Y3M9e30sdGhpcy5fZWRnZU9ianM9e30sdGhpcy5fZWRnZUxhYmVscz17fX1jci5wcm90b3R5cGUuX25vZGVDb3VudD0wO2NyLnByb3RvdHlwZS5fZWRnZUNvdW50PTA7Y3IucHJvdG90eXBlLmlzRGlyZWN0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNEaXJlY3RlZH07Y3IucHJvdG90eXBlLmlzTXVsdGlncmFwaD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9pc011bHRpZ3JhcGh9O2NyLnByb3RvdHlwZS5pc0NvbXBvdW5kPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzQ29tcG91bmR9O2NyLnByb3RvdHlwZS5zZXRHcmFwaD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fbGFiZWw9ZSx0aGlzfTtjci5wcm90b3R5cGUuZ3JhcGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbGFiZWx9O2NyLnByb3RvdHlwZS5zZXREZWZhdWx0Tm9kZUxhYmVsPWZ1bmN0aW9uKGUpe3JldHVybiBqZS5pc0Z1bmN0aW9uKGUpfHwoZT1qZS5jb25zdGFudChlKSksdGhpcy5fZGVmYXVsdE5vZGVMYWJlbEZuPWUsdGhpc307Y3IucHJvdG90eXBlLm5vZGVDb3VudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ub2RlQ291bnR9O2NyLnByb3RvdHlwZS5ub2Rlcz1mdW5jdGlvbigpe3JldHVybiBqZS5rZXlzKHRoaXMuX25vZGVzKX07Y3IucHJvdG90eXBlLnNvdXJjZXM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBqZS5maWx0ZXIodGhpcy5ub2RlcygpLGZ1bmN0aW9uKHQpe3JldHVybiBqZS5pc0VtcHR5KGUuX2luW3RdKX0pfTtjci5wcm90b3R5cGUuc2lua3M9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBqZS5maWx0ZXIodGhpcy5ub2RlcygpLGZ1bmN0aW9uKHQpe3JldHVybiBqZS5pc0VtcHR5KGUuX291dFt0XSl9KX07Y3IucHJvdG90eXBlLnNldE5vZGVzPWZ1bmN0aW9uKGUsdCl7dmFyIHI9YXJndW1lbnRzLG49dGhpcztyZXR1cm4gamUuZWFjaChlLGZ1bmN0aW9uKGkpe3IubGVuZ3RoPjE/bi5zZXROb2RlKGksdCk6bi5zZXROb2RlKGkpfSksdGhpc307Y3IucHJvdG90eXBlLnNldE5vZGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gamUuaGFzKHRoaXMuX25vZGVzLGUpPyhhcmd1bWVudHMubGVuZ3RoPjEmJih0aGlzLl9ub2Rlc1tlXT10KSx0aGlzKToodGhpcy5fbm9kZXNbZV09YXJndW1lbnRzLmxlbmd0aD4xP3Q6dGhpcy5fZGVmYXVsdE5vZGVMYWJlbEZuKGUpLHRoaXMuX2lzQ29tcG91bmQmJih0aGlzLl9wYXJlbnRbZV09UXYsdGhpcy5fY2hpbGRyZW5bZV09e30sdGhpcy5fY2hpbGRyZW5bUXZdW2VdPSEwKSx0aGlzLl9pbltlXT17fSx0aGlzLl9wcmVkc1tlXT17fSx0aGlzLl9vdXRbZV09e30sdGhpcy5fc3Vjc1tlXT17fSwrK3RoaXMuX25vZGVDb3VudCx0aGlzKX07Y3IucHJvdG90eXBlLm5vZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX25vZGVzW2VdfTtjci5wcm90b3R5cGUuaGFzTm9kZT1mdW5jdGlvbihlKXtyZXR1cm4gamUuaGFzKHRoaXMuX25vZGVzLGUpfTtjci5wcm90b3R5cGUucmVtb3ZlTm9kZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzO2lmKGplLmhhcyh0aGlzLl9ub2RlcyxlKSl7dmFyIHI9ZnVuY3Rpb24obil7dC5yZW1vdmVFZGdlKHQuX2VkZ2VPYmpzW25dKX07ZGVsZXRlIHRoaXMuX25vZGVzW2VdLHRoaXMuX2lzQ29tcG91bmQmJih0aGlzLl9yZW1vdmVGcm9tUGFyZW50c0NoaWxkTGlzdChlKSxkZWxldGUgdGhpcy5fcGFyZW50W2VdLGplLmVhY2godGhpcy5jaGlsZHJlbihlKSxmdW5jdGlvbihuKXt0LnNldFBhcmVudChuKX0pLGRlbGV0ZSB0aGlzLl9jaGlsZHJlbltlXSksamUuZWFjaChqZS5rZXlzKHRoaXMuX2luW2VdKSxyKSxkZWxldGUgdGhpcy5faW5bZV0sZGVsZXRlIHRoaXMuX3ByZWRzW2VdLGplLmVhY2goamUua2V5cyh0aGlzLl9vdXRbZV0pLHIpLGRlbGV0ZSB0aGlzLl9vdXRbZV0sZGVsZXRlIHRoaXMuX3N1Y3NbZV0sLS10aGlzLl9ub2RlQ291bnR9cmV0dXJuIHRoaXN9O2NyLnByb3RvdHlwZS5zZXRQYXJlbnQ9ZnVuY3Rpb24oZSx0KXtpZighdGhpcy5faXNDb21wb3VuZCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXQgcGFyZW50IGluIGEgbm9uLWNvbXBvdW5kIGdyYXBoIik7aWYoamUuaXNVbmRlZmluZWQodCkpdD1RdjtlbHNle3QrPSIiO2Zvcih2YXIgcj10OyFqZS5pc1VuZGVmaW5lZChyKTtyPXRoaXMucGFyZW50KHIpKWlmKHI9PT1lKXRocm93IG5ldyBFcnJvcigiU2V0dGluZyAiK3QrIiBhcyBwYXJlbnQgb2YgIitlKyIgd291bGQgY3JlYXRlIGEgY3ljbGUiKTt0aGlzLnNldE5vZGUodCl9cmV0dXJuIHRoaXMuc2V0Tm9kZShlKSx0aGlzLl9yZW1vdmVGcm9tUGFyZW50c0NoaWxkTGlzdChlKSx0aGlzLl9wYXJlbnRbZV09dCx0aGlzLl9jaGlsZHJlblt0XVtlXT0hMCx0aGlzfTtjci5wcm90b3R5cGUuX3JlbW92ZUZyb21QYXJlbnRzQ2hpbGRMaXN0PWZ1bmN0aW9uKGUpe2RlbGV0ZSB0aGlzLl9jaGlsZHJlblt0aGlzLl9wYXJlbnRbZV1dW2VdfTtjci5wcm90b3R5cGUucGFyZW50PWZ1bmN0aW9uKGUpe2lmKHRoaXMuX2lzQ29tcG91bmQpe3ZhciB0PXRoaXMuX3BhcmVudFtlXTtpZih0IT09UXYpcmV0dXJuIHR9fTtjci5wcm90b3R5cGUuY2hpbGRyZW49ZnVuY3Rpb24oZSl7aWYoamUuaXNVbmRlZmluZWQoZSkmJihlPVF2KSx0aGlzLl9pc0NvbXBvdW5kKXt2YXIgdD10aGlzLl9jaGlsZHJlbltlXTtpZih0KXJldHVybiBqZS5rZXlzKHQpfWVsc2V7aWYoZT09PVF2KXJldHVybiB0aGlzLm5vZGVzKCk7aWYodGhpcy5oYXNOb2RlKGUpKXJldHVybltdfX07Y3IucHJvdG90eXBlLnByZWRlY2Vzc29ycz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9wcmVkc1tlXTtpZih0KXJldHVybiBqZS5rZXlzKHQpfTtjci5wcm90b3R5cGUuc3VjY2Vzc29ycz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9zdWNzW2VdO2lmKHQpcmV0dXJuIGplLmtleXModCl9O2NyLnByb3RvdHlwZS5uZWlnaGJvcnM9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5wcmVkZWNlc3NvcnMoZSk7aWYodClyZXR1cm4gamUudW5pb24odCx0aGlzLnN1Y2Nlc3NvcnMoZSkpfTtjci5wcm90b3R5cGUuaXNMZWFmPWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiB0aGlzLmlzRGlyZWN0ZWQoKT90PXRoaXMuc3VjY2Vzc29ycyhlKTp0PXRoaXMubmVpZ2hib3JzKGUpLHQubGVuZ3RoPT09MH07Y3IucHJvdG90eXBlLmZpbHRlck5vZGVzPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyB0aGlzLmNvbnN0cnVjdG9yKHtkaXJlY3RlZDp0aGlzLl9pc0RpcmVjdGVkLG11bHRpZ3JhcGg6dGhpcy5faXNNdWx0aWdyYXBoLGNvbXBvdW5kOnRoaXMuX2lzQ29tcG91bmR9KTt0LnNldEdyYXBoKHRoaXMuZ3JhcGgoKSk7dmFyIHI9dGhpcztqZS5lYWNoKHRoaXMuX25vZGVzLGZ1bmN0aW9uKG8sYSl7ZShhKSYmdC5zZXROb2RlKGEsbyl9KSxqZS5lYWNoKHRoaXMuX2VkZ2VPYmpzLGZ1bmN0aW9uKG8pe3QuaGFzTm9kZShvLnYpJiZ0Lmhhc05vZGUoby53KSYmdC5zZXRFZGdlKG8sci5lZGdlKG8pKX0pO3ZhciBuPXt9O2Z1bmN0aW9uIGkobyl7dmFyIGE9ci5wYXJlbnQobyk7cmV0dXJuIGE9PT12b2lkIDB8fHQuaGFzTm9kZShhKT8obltvXT1hLGEpOmEgaW4gbj9uW2FdOmkoYSl9cmV0dXJuIHRoaXMuX2lzQ29tcG91bmQmJmplLmVhY2godC5ub2RlcygpLGZ1bmN0aW9uKG8pe3Quc2V0UGFyZW50KG8saShvKSl9KSx0fTtjci5wcm90b3R5cGUuc2V0RGVmYXVsdEVkZ2VMYWJlbD1mdW5jdGlvbihlKXtyZXR1cm4gamUuaXNGdW5jdGlvbihlKXx8KGU9amUuY29uc3RhbnQoZSkpLHRoaXMuX2RlZmF1bHRFZGdlTGFiZWxGbj1lLHRoaXN9O2NyLnByb3RvdHlwZS5lZGdlQ291bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWRnZUNvdW50fTtjci5wcm90b3R5cGUuZWRnZXM9ZnVuY3Rpb24oKXtyZXR1cm4gamUudmFsdWVzKHRoaXMuX2VkZ2VPYmpzKX07Y3IucHJvdG90eXBlLnNldFBhdGg9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLG49YXJndW1lbnRzO3JldHVybiBqZS5yZWR1Y2UoZSxmdW5jdGlvbihpLG8pe3JldHVybiBuLmxlbmd0aD4xP3Iuc2V0RWRnZShpLG8sdCk6ci5zZXRFZGdlKGksbyksb30pLHRoaXN9O2NyLnByb3RvdHlwZS5zZXRFZGdlPWZ1bmN0aW9uKCl7dmFyIGUsdCxyLG4saT0hMSxvPWFyZ3VtZW50c1swXTt0eXBlb2Ygbz09Im9iamVjdCImJm8hPT1udWxsJiYidiJpbiBvPyhlPW8udix0PW8udyxyPW8ubmFtZSxhcmd1bWVudHMubGVuZ3RoPT09MiYmKG49YXJndW1lbnRzWzFdLGk9ITApKTooZT1vLHQ9YXJndW1lbnRzWzFdLHI9YXJndW1lbnRzWzNdLGFyZ3VtZW50cy5sZW5ndGg+MiYmKG49YXJndW1lbnRzWzJdLGk9ITApKSxlPSIiK2UsdD0iIit0LGplLmlzVW5kZWZpbmVkKHIpfHwocj0iIityKTt2YXIgYT1XNCh0aGlzLl9pc0RpcmVjdGVkLGUsdCxyKTtpZihqZS5oYXModGhpcy5fZWRnZUxhYmVscyxhKSlyZXR1cm4gaSYmKHRoaXMuX2VkZ2VMYWJlbHNbYV09biksdGhpcztpZighamUuaXNVbmRlZmluZWQocikmJiF0aGlzLl9pc011bHRpZ3JhcGgpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2V0IGEgbmFtZWQgZWRnZSB3aGVuIGlzTXVsdGlncmFwaCA9IGZhbHNlIik7dGhpcy5zZXROb2RlKGUpLHRoaXMuc2V0Tm9kZSh0KSx0aGlzLl9lZGdlTGFiZWxzW2FdPWk/bjp0aGlzLl9kZWZhdWx0RWRnZUxhYmVsRm4oZSx0LHIpO3ZhciBzPUdycih0aGlzLl9pc0RpcmVjdGVkLGUsdCxyKTtyZXR1cm4gZT1zLnYsdD1zLncsT2JqZWN0LmZyZWV6ZShzKSx0aGlzLl9lZGdlT2Jqc1thXT1zLERuZSh0aGlzLl9wcmVkc1t0XSxlKSxEbmUodGhpcy5fc3Vjc1tlXSx0KSx0aGlzLl9pblt0XVthXT1zLHRoaXMuX291dFtlXVthXT1zLHRoaXMuX2VkZ2VDb3VudCsrLHRoaXN9O2NyLnByb3RvdHlwZS5lZGdlPWZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPT09MT91bHQodGhpcy5faXNEaXJlY3RlZCxhcmd1bWVudHNbMF0pOlc0KHRoaXMuX2lzRGlyZWN0ZWQsZSx0LHIpO3JldHVybiB0aGlzLl9lZGdlTGFiZWxzW25dfTtjci5wcm90b3R5cGUuaGFzRWRnZT1mdW5jdGlvbihlLHQscil7dmFyIG49YXJndW1lbnRzLmxlbmd0aD09PTE/dWx0KHRoaXMuX2lzRGlyZWN0ZWQsYXJndW1lbnRzWzBdKTpXNCh0aGlzLl9pc0RpcmVjdGVkLGUsdCxyKTtyZXR1cm4gamUuaGFzKHRoaXMuX2VkZ2VMYWJlbHMsbil9O2NyLnByb3RvdHlwZS5yZW1vdmVFZGdlPWZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPT09MT91bHQodGhpcy5faXNEaXJlY3RlZCxhcmd1bWVudHNbMF0pOlc0KHRoaXMuX2lzRGlyZWN0ZWQsZSx0LHIpLGk9dGhpcy5fZWRnZU9ianNbbl07cmV0dXJuIGkmJihlPWkudix0PWkudyxkZWxldGUgdGhpcy5fZWRnZUxhYmVsc1tuXSxkZWxldGUgdGhpcy5fZWRnZU9ianNbbl0sT25lKHRoaXMuX3ByZWRzW3RdLGUpLE9uZSh0aGlzLl9zdWNzW2VdLHQpLGRlbGV0ZSB0aGlzLl9pblt0XVtuXSxkZWxldGUgdGhpcy5fb3V0W2VdW25dLHRoaXMuX2VkZ2VDb3VudC0tKSx0aGlzfTtjci5wcm90b3R5cGUuaW5FZGdlcz1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXMuX2luW2VdO2lmKHIpe3ZhciBuPWplLnZhbHVlcyhyKTtyZXR1cm4gdD9qZS5maWx0ZXIobixmdW5jdGlvbihpKXtyZXR1cm4gaS52PT09dH0pOm59fTtjci5wcm90b3R5cGUub3V0RWRnZXM9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLl9vdXRbZV07aWYocil7dmFyIG49amUudmFsdWVzKHIpO3JldHVybiB0P2plLmZpbHRlcihuLGZ1bmN0aW9uKGkpe3JldHVybiBpLnc9PT10fSk6bn19O2NyLnByb3RvdHlwZS5ub2RlRWRnZXM9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLmluRWRnZXMoZSx0KTtpZihyKXJldHVybiByLmNvbmNhdCh0aGlzLm91dEVkZ2VzKGUsdCkpfTtmdW5jdGlvbiBEbmUoZSx0KXtlW3RdP2VbdF0rKzplW3RdPTF9ZnVuY3Rpb24gT25lKGUsdCl7LS1lW3RdfHxkZWxldGUgZVt0XX1mdW5jdGlvbiBXNChlLHQscixuKXt2YXIgaT0iIit0LG89IiIrcjtpZighZSYmaT5vKXt2YXIgYT1pO2k9byxvPWF9cmV0dXJuIGkrTm5lK28rTm5lKyhqZS5pc1VuZGVmaW5lZChuKT9xcnI6bil9ZnVuY3Rpb24gR3JyKGUsdCxyLG4pe3ZhciBpPSIiK3Qsbz0iIityO2lmKCFlJiZpPm8pe3ZhciBhPWk7aT1vLG89YX12YXIgcz17djppLHc6b307cmV0dXJuIG4mJihzLm5hbWU9biksc31mdW5jdGlvbiB1bHQoZSx0KXtyZXR1cm4gVzQoZSx0LnYsdC53LHQubmFtZSl9fSk7dmFyIEJuZT1IKChCWm4sRm5lKT0+e0ZuZS5leHBvcnRzPSIyLjEuOCJ9KTt2YXIgVm5lPUgoKEhabixIbmUpPT57SG5lLmV4cG9ydHM9e0dyYXBoOnJIKCksdmVyc2lvbjpCbmUoKX19KTt2YXIgcW5lPUgoKFZabixVbmUpPT57dmFyIFVmPVRsKCksV3JyPXJIKCk7VW5lLmV4cG9ydHM9e3dyaXRlOllycixyZWFkOiRycn07ZnVuY3Rpb24gWXJyKGUpe3ZhciB0PXtvcHRpb25zOntkaXJlY3RlZDplLmlzRGlyZWN0ZWQoKSxtdWx0aWdyYXBoOmUuaXNNdWx0aWdyYXBoKCksY29tcG91bmQ6ZS5pc0NvbXBvdW5kKCl9LG5vZGVzOmpycihlKSxlZGdlczpYcnIoZSl9O3JldHVybiBVZi5pc1VuZGVmaW5lZChlLmdyYXBoKCkpfHwodC52YWx1ZT1VZi5jbG9uZShlLmdyYXBoKCkpKSx0fWZ1bmN0aW9uIGpycihlKXtyZXR1cm4gVWYubWFwKGUubm9kZXMoKSxmdW5jdGlvbih0KXt2YXIgcj1lLm5vZGUodCksbj1lLnBhcmVudCh0KSxpPXt2OnR9O3JldHVybiBVZi5pc1VuZGVmaW5lZChyKXx8KGkudmFsdWU9ciksVWYuaXNVbmRlZmluZWQobil8fChpLnBhcmVudD1uKSxpfSl9ZnVuY3Rpb24gWHJyKGUpe3JldHVybiBVZi5tYXAoZS5lZGdlcygpLGZ1bmN0aW9uKHQpe3ZhciByPWUuZWRnZSh0KSxuPXt2OnQudix3OnQud307cmV0dXJuIFVmLmlzVW5kZWZpbmVkKHQubmFtZSl8fChuLm5hbWU9dC5uYW1lKSxVZi5pc1VuZGVmaW5lZChyKXx8KG4udmFsdWU9ciksbn0pfWZ1bmN0aW9uICRycihlKXt2YXIgdD1uZXcgV3JyKGUub3B0aW9ucykuc2V0R3JhcGgoZS52YWx1ZSk7cmV0dXJuIFVmLmVhY2goZS5ub2RlcyxmdW5jdGlvbihyKXt0LnNldE5vZGUoci52LHIudmFsdWUpLHIucGFyZW50JiZ0LnNldFBhcmVudChyLnYsci5wYXJlbnQpfSksVWYuZWFjaChlLmVkZ2VzLGZ1bmN0aW9uKHIpe3Quc2V0RWRnZSh7djpyLnYsdzpyLncsbmFtZTpyLm5hbWV9LHIudmFsdWUpfSksdH19KTt2YXIgV25lPUgoKFVabixHbmUpPT57dmFyIG5IPVRsKCk7R25lLmV4cG9ydHM9S3JyO2Z1bmN0aW9uIEtycihlKXt2YXIgdD17fSxyPVtdLG47ZnVuY3Rpb24gaShvKXtuSC5oYXModCxvKXx8KHRbb109ITAsbi5wdXNoKG8pLG5ILmVhY2goZS5zdWNjZXNzb3JzKG8pLGkpLG5ILmVhY2goZS5wcmVkZWNlc3NvcnMobyksaSkpfXJldHVybiBuSC5lYWNoKGUubm9kZXMoKSxmdW5jdGlvbihvKXtuPVtdLGkobyksbi5sZW5ndGgmJnIucHVzaChuKX0pLHJ9fSk7dmFyIGhsdD1IKChxWm4sam5lKT0+e3ZhciBZbmU9VGwoKTtqbmUuZXhwb3J0cz1WYztmdW5jdGlvbiBWYygpe3RoaXMuX2Fycj1bXSx0aGlzLl9rZXlJbmRpY2VzPXt9fVZjLnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Fyci5sZW5ndGh9O1ZjLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Fyci5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUua2V5fSl9O1ZjLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oZSl7cmV0dXJuIFluZS5oYXModGhpcy5fa2V5SW5kaWNlcyxlKX07VmMucHJvdG90eXBlLnByaW9yaXR5PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2tleUluZGljZXNbZV07aWYodCE9PXZvaWQgMClyZXR1cm4gdGhpcy5fYXJyW3RdLnByaW9yaXR5fTtWYy5wcm90b3R5cGUubWluPWZ1bmN0aW9uKCl7aWYodGhpcy5zaXplKCk9PT0wKXRocm93IG5ldyBFcnJvcigiUXVldWUgdW5kZXJmbG93Iik7cmV0dXJuIHRoaXMuX2FyclswXS5rZXl9O1ZjLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLl9rZXlJbmRpY2VzO2lmKGU9U3RyaW5nKGUpLCFZbmUuaGFzKHIsZSkpe3ZhciBuPXRoaXMuX2FycixpPW4ubGVuZ3RoO3JldHVybiByW2VdPWksbi5wdXNoKHtrZXk6ZSxwcmlvcml0eTp0fSksdGhpcy5fZGVjcmVhc2UoaSksITB9cmV0dXJuITF9O1ZjLnByb3RvdHlwZS5yZW1vdmVNaW49ZnVuY3Rpb24oKXt0aGlzLl9zd2FwKDAsdGhpcy5fYXJyLmxlbmd0aC0xKTt2YXIgZT10aGlzLl9hcnIucG9wKCk7cmV0dXJuIGRlbGV0ZSB0aGlzLl9rZXlJbmRpY2VzW2Uua2V5XSx0aGlzLl9oZWFwaWZ5KDApLGUua2V5fTtWYy5wcm90b3R5cGUuZGVjcmVhc2U9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLl9rZXlJbmRpY2VzW2VdO2lmKHQ+dGhpcy5fYXJyW3JdLnByaW9yaXR5KXRocm93IG5ldyBFcnJvcigiTmV3IHByaW9yaXR5IGlzIGdyZWF0ZXIgdGhhbiBjdXJyZW50IHByaW9yaXR5LiBLZXk6ICIrZSsiIE9sZDogIit0aGlzLl9hcnJbcl0ucHJpb3JpdHkrIiBOZXc6ICIrdCk7dGhpcy5fYXJyW3JdLnByaW9yaXR5PXQsdGhpcy5fZGVjcmVhc2Uocil9O1ZjLnByb3RvdHlwZS5faGVhcGlmeT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9hcnIscj0yKmUsbj1yKzEsaT1lO3I8dC5sZW5ndGgmJihpPXRbcl0ucHJpb3JpdHk8dFtpXS5wcmlvcml0eT9yOmksbjx0Lmxlbmd0aCYmKGk9dFtuXS5wcmlvcml0eTx0W2ldLnByaW9yaXR5P246aSksaSE9PWUmJih0aGlzLl9zd2FwKGUsaSksdGhpcy5faGVhcGlmeShpKSkpfTtWYy5wcm90b3R5cGUuX2RlY3JlYXNlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD10aGlzLl9hcnIscj10W2VdLnByaW9yaXR5LG47ZSE9PTAmJihuPWU+PjEsISh0W25dLnByaW9yaXR5PHIpKTspdGhpcy5fc3dhcChlLG4pLGU9bn07VmMucHJvdG90eXBlLl9zd2FwPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5fYXJyLG49dGhpcy5fa2V5SW5kaWNlcyxpPXJbZV0sbz1yW3RdO3JbZV09byxyW3RdPWksbltvLmtleV09ZSxuW2kua2V5XT10fX0pO3ZhciBmbHQ9SCgoR1puLFhuZSk9Pnt2YXIgWnJyPVRsKCksSnJyPWhsdCgpO1huZS5leHBvcnRzPXRucjt2YXIgUXJyPVpyci5jb25zdGFudCgxKTtmdW5jdGlvbiB0bnIoZSx0LHIsbil7cmV0dXJuIGVucihlLFN0cmluZyh0KSxyfHxRcnIsbnx8ZnVuY3Rpb24oaSl7cmV0dXJuIGUub3V0RWRnZXMoaSl9KX1mdW5jdGlvbiBlbnIoZSx0LHIsbil7dmFyIGk9e30sbz1uZXcgSnJyLGEscyxsPWZ1bmN0aW9uKGMpe3ZhciB1PWMudiE9PWE/Yy52OmMudyxoPWlbdV0sZj1yKGMpLHA9cy5kaXN0YW5jZStmO2lmKGY8MCl0aHJvdyBuZXcgRXJyb3IoImRpamtzdHJhIGRvZXMgbm90IGFsbG93IG5lZ2F0aXZlIGVkZ2Ugd2VpZ2h0cy4gQmFkIGVkZ2U6ICIrYysiIFdlaWdodDogIitmKTtwPGguZGlzdGFuY2UmJihoLmRpc3RhbmNlPXAsaC5wcmVkZWNlc3Nvcj1hLG8uZGVjcmVhc2UodSxwKSl9O2ZvcihlLm5vZGVzKCkuZm9yRWFjaChmdW5jdGlvbihjKXt2YXIgdT1jPT09dD8wOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtpW2NdPXtkaXN0YW5jZTp1fSxvLmFkZChjLHUpfSk7by5zaXplKCk+MCYmKGE9by5yZW1vdmVNaW4oKSxzPWlbYV0scy5kaXN0YW5jZSE9PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7KW4oYSkuZm9yRWFjaChsKTtyZXR1cm4gaX19KTt2YXIgS25lPUgoKFdabiwkbmUpPT57dmFyIHJucj1mbHQoKSxubnI9VGwoKTskbmUuZXhwb3J0cz1pbnI7ZnVuY3Rpb24gaW5yKGUsdCxyKXtyZXR1cm4gbm5yLnRyYW5zZm9ybShlLm5vZGVzKCksZnVuY3Rpb24obixpKXtuW2ldPXJucihlLGksdCxyKX0se30pfX0pO3ZhciBwbHQ9SCgoWVpuLEpuZSk9Pnt2YXIgWm5lPVRsKCk7Sm5lLmV4cG9ydHM9b25yO2Z1bmN0aW9uIG9ucihlKXt2YXIgdD0wLHI9W10sbj17fSxpPVtdO2Z1bmN0aW9uIG8oYSl7dmFyIHM9blthXT17b25TdGFjazohMCxsb3dsaW5rOnQsaW5kZXg6dCsrfTtpZihyLnB1c2goYSksZS5zdWNjZXNzb3JzKGEpLmZvckVhY2goZnVuY3Rpb24odSl7Wm5lLmhhcyhuLHUpP25bdV0ub25TdGFjayYmKHMubG93bGluaz1NYXRoLm1pbihzLmxvd2xpbmssblt1XS5pbmRleCkpOihvKHUpLHMubG93bGluaz1NYXRoLm1pbihzLmxvd2xpbmssblt1XS5sb3dsaW5rKSl9KSxzLmxvd2xpbms9PT1zLmluZGV4KXt2YXIgbD1bXSxjO2RvIGM9ci5wb3AoKSxuW2NdLm9uU3RhY2s9ITEsbC5wdXNoKGMpO3doaWxlKGEhPT1jKTtpLnB1c2gobCl9fXJldHVybiBlLm5vZGVzKCkuZm9yRWFjaChmdW5jdGlvbihhKXtabmUuaGFzKG4sYSl8fG8oYSl9KSxpfX0pO3ZhciB0aWU9SCgoalpuLFFuZSk9Pnt2YXIgYW5yPVRsKCksc25yPXBsdCgpO1FuZS5leHBvcnRzPWxucjtmdW5jdGlvbiBsbnIoZSl7cmV0dXJuIGFuci5maWx0ZXIoc25yKGUpLGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbmd0aD4xfHx0Lmxlbmd0aD09PTEmJmUuaGFzRWRnZSh0WzBdLHRbMF0pfSl9fSk7dmFyIHJpZT1IKChYWm4sZWllKT0+e3ZhciBjbnI9VGwoKTtlaWUuZXhwb3J0cz1obnI7dmFyIHVucj1jbnIuY29uc3RhbnQoMSk7ZnVuY3Rpb24gaG5yKGUsdCxyKXtyZXR1cm4gZm5yKGUsdHx8dW5yLHJ8fGZ1bmN0aW9uKG4pe3JldHVybiBlLm91dEVkZ2VzKG4pfSl9ZnVuY3Rpb24gZm5yKGUsdCxyKXt2YXIgbj17fSxpPWUubm9kZXMoKTtyZXR1cm4gaS5mb3JFYWNoKGZ1bmN0aW9uKG8pe25bb109e30sbltvXVtvXT17ZGlzdGFuY2U6MH0saS5mb3JFYWNoKGZ1bmN0aW9uKGEpe28hPT1hJiYobltvXVthXT17ZGlzdGFuY2U6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZfSl9KSxyKG8pLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIHM9YS52PT09bz9hLnc6YS52LGw9dChhKTtuW29dW3NdPXtkaXN0YW5jZTpsLHByZWRlY2Vzc29yOm99fSl9KSxpLmZvckVhY2goZnVuY3Rpb24obyl7dmFyIGE9bltvXTtpLmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIGw9bltzXTtpLmZvckVhY2goZnVuY3Rpb24oYyl7dmFyIHU9bFtvXSxoPWFbY10sZj1sW2NdLHA9dS5kaXN0YW5jZStoLmRpc3RhbmNlO3A8Zi5kaXN0YW5jZSYmKGYuZGlzdGFuY2U9cCxmLnByZWRlY2Vzc29yPWgucHJlZGVjZXNzb3IpfSl9KX0pLG59fSk7dmFyIGRsdD1IKCgkWm4saWllKT0+e3ZhciBZND1UbCgpO2lpZS5leHBvcnRzPW5pZTtuaWUuQ3ljbGVFeGNlcHRpb249aUg7ZnVuY3Rpb24gbmllKGUpe3ZhciB0PXt9LHI9e30sbj1bXTtmdW5jdGlvbiBpKG8pe2lmKFk0LmhhcyhyLG8pKXRocm93IG5ldyBpSDtZNC5oYXModCxvKXx8KHJbb109ITAsdFtvXT0hMCxZNC5lYWNoKGUucHJlZGVjZXNzb3JzKG8pLGkpLGRlbGV0ZSByW29dLG4ucHVzaChvKSl9aWYoWTQuZWFjaChlLnNpbmtzKCksaSksWTQuc2l6ZSh0KSE9PWUubm9kZUNvdW50KCkpdGhyb3cgbmV3IGlIO3JldHVybiBufWZ1bmN0aW9uIGlIKCl7fWlILnByb3RvdHlwZT1uZXcgRXJyb3J9KTt2YXIgc2llPUgoKEtabixhaWUpPT57dmFyIG9pZT1kbHQoKTthaWUuZXhwb3J0cz1wbnI7ZnVuY3Rpb24gcG5yKGUpe3RyeXtvaWUoZSl9Y2F0Y2godCl7aWYodCBpbnN0YW5jZW9mIG9pZS5DeWNsZUV4Y2VwdGlvbilyZXR1cm4hMTt0aHJvdyB0fXJldHVybiEwfX0pO3ZhciBtbHQ9SCgoWlpuLGNpZSk9Pnt2YXIgb0g9VGwoKTtjaWUuZXhwb3J0cz1kbnI7ZnVuY3Rpb24gZG5yKGUsdCxyKXtvSC5pc0FycmF5KHQpfHwodD1bdF0pO3ZhciBuPShlLmlzRGlyZWN0ZWQoKT9lLnN1Y2Nlc3NvcnM6ZS5uZWlnaGJvcnMpLmJpbmQoZSksaT1bXSxvPXt9O3JldHVybiBvSC5lYWNoKHQsZnVuY3Rpb24oYSl7aWYoIWUuaGFzTm9kZShhKSl0aHJvdyBuZXcgRXJyb3IoIkdyYXBoIGRvZXMgbm90IGhhdmUgbm9kZTogIithKTtsaWUoZSxhLHI9PT0icG9zdCIsbyxuLGkpfSksaX1mdW5jdGlvbiBsaWUoZSx0LHIsbixpLG8pe29ILmhhcyhuLHQpfHwoblt0XT0hMCxyfHxvLnB1c2godCksb0guZWFjaChpKHQpLGZ1bmN0aW9uKGEpe2xpZShlLGEscixuLGksbyl9KSxyJiZvLnB1c2godCkpfX0pO3ZhciBoaWU9SCgoSlpuLHVpZSk9Pnt2YXIgbW5yPW1sdCgpO3VpZS5leHBvcnRzPWducjtmdW5jdGlvbiBnbnIoZSx0KXtyZXR1cm4gbW5yKGUsdCwicG9zdCIpfX0pO3ZhciBwaWU9SCgoUVpuLGZpZSk9Pnt2YXIgX25yPW1sdCgpO2ZpZS5leHBvcnRzPXlucjtmdW5jdGlvbiB5bnIoZSx0KXtyZXR1cm4gX25yKGUsdCwicHJlIil9fSk7dmFyIGdpZT1IKCh0Sm4sbWllKT0+e3ZhciBkaWU9VGwoKSx2bnI9ckgoKSx4bnI9aGx0KCk7bWllLmV4cG9ydHM9Ym5yO2Z1bmN0aW9uIGJucihlLHQpe3ZhciByPW5ldyB2bnIsbj17fSxpPW5ldyB4bnIsbztmdW5jdGlvbiBhKGwpe3ZhciBjPWwudj09PW8/bC53Omwudix1PWkucHJpb3JpdHkoYyk7aWYodSE9PXZvaWQgMCl7dmFyIGg9dChsKTtoPHUmJihuW2NdPW8saS5kZWNyZWFzZShjLGgpKX19aWYoZS5ub2RlQ291bnQoKT09PTApcmV0dXJuIHI7ZGllLmVhY2goZS5ub2RlcygpLGZ1bmN0aW9uKGwpe2kuYWRkKGwsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSxyLnNldE5vZGUobCl9KSxpLmRlY3JlYXNlKGUubm9kZXMoKVswXSwwKTtmb3IodmFyIHM9ITE7aS5zaXplKCk+MDspe2lmKG89aS5yZW1vdmVNaW4oKSxkaWUuaGFzKG4sbykpci5zZXRFZGdlKG8sbltvXSk7ZWxzZXtpZihzKXRocm93IG5ldyBFcnJvcigiSW5wdXQgZ3JhcGggaXMgbm90IGNvbm5lY3RlZDogIitlKTtzPSEwfWUubm9kZUVkZ2VzKG8pLmZvckVhY2goYSl9cmV0dXJuIHJ9fSk7dmFyIHlpZT1IKChlSm4sX2llKT0+e19pZS5leHBvcnRzPXtjb21wb25lbnRzOlduZSgpLGRpamtzdHJhOmZsdCgpLGRpamtzdHJhQWxsOktuZSgpLGZpbmRDeWNsZXM6dGllKCksZmxveWRXYXJzaGFsbDpyaWUoKSxpc0FjeWNsaWM6c2llKCkscG9zdG9yZGVyOmhpZSgpLHByZW9yZGVyOnBpZSgpLHByaW06Z2llKCksdGFyamFuOnBsdCgpLHRvcHNvcnQ6ZGx0KCl9fSk7dmFyIGJpZT1IKChySm4seGllKT0+e3ZhciB2aWU9Vm5lKCk7eGllLmV4cG9ydHM9e0dyYXBoOnZpZS5HcmFwaCxqc29uOnFuZSgpLGFsZzp5aWUoKSx2ZXJzaW9uOnZpZS52ZXJzaW9ufX0pO3ZhciBVYz1IKChuSm4sd2llKT0+e3ZhciBhSDtpZih0eXBlb2YgRXg9PSJmdW5jdGlvbiIpdHJ5e2FIPWJpZSgpfWNhdGNoKGUpe31hSHx8KGFIPXdpbmRvdy5ncmFwaGxpYik7d2llLmV4cG9ydHM9YUh9KTt2YXIgTWllPUgoKG9KbixTaWUpPT57dmFyIHducj1Sc3QoKSxTbnI9MSxNbnI9NDtmdW5jdGlvbiBFbnIoZSl7cmV0dXJuIHducihlLFNucnxNbnIpfVNpZS5leHBvcnRzPUVucn0pO3ZhciBqND1IKChhSm4sRWllKT0+e3ZhciBUbnI9anYoKSxDbnI9SGYoKSxBbnI9UjQoKSxQbnI9RWwoKTtmdW5jdGlvbiBJbnIoZSx0LHIpe2lmKCFQbnIocikpcmV0dXJuITE7dmFyIG49dHlwZW9mIHQ7cmV0dXJuKG49PSJudW1iZXIiP0NucihyKSYmQW5yKHQsci5sZW5ndGgpOm49PSJzdHJpbmciJiZ0IGluIHIpP1RucihyW3RdLGUpOiExfUVpZS5leHBvcnRzPUlucn0pO3ZhciBBaWU9SCgoc0puLENpZSk9Pnt2YXIgTG5yPUc0KCksa25yPWp2KCksUm5yPWo0KCksTm5yPXUwKCksVGllPU9iamVjdC5wcm90b3R5cGUsRG5yPVRpZS5oYXNPd25Qcm9wZXJ0eSxPbnI9TG5yKGZ1bmN0aW9uKGUsdCl7ZT1PYmplY3QoZSk7dmFyIHI9LTEsbj10Lmxlbmd0aCxpPW4+Mj90WzJdOnZvaWQgMDtmb3IoaSYmUm5yKHRbMF0sdFsxXSxpKSYmKG49MSk7KytyPG47KWZvcih2YXIgbz10W3JdLGE9Tm5yKG8pLHM9LTEsbD1hLmxlbmd0aDsrK3M8bDspe3ZhciBjPWFbc10sdT1lW2NdOyh1PT09dm9pZCAwfHxrbnIodSxUaWVbY10pJiYhRG5yLmNhbGwoZSxjKSkmJihlW2NdPW9bY10pfXJldHVybiBlfSk7Q2llLmV4cG9ydHM9T25yfSk7dmFyIElpZT1IKChsSm4sUGllKT0+e3ZhciB6bnI9VmYoKSxGbnI9SGYoKSxCbnI9UGQoKTtmdW5jdGlvbiBIbnIoZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXt2YXIgaT1PYmplY3QodCk7aWYoIUZucih0KSl7dmFyIG89em5yKHIsMyk7dD1CbnIodCkscj1mdW5jdGlvbihzKXtyZXR1cm4gbyhpW3NdLHMsaSl9fXZhciBhPWUodCxyLG4pO3JldHVybiBhPi0xP2lbbz90W2FdOmFdOnZvaWQgMH19UGllLmV4cG9ydHM9SG5yfSk7dmFyIGtpZT1IKChjSm4sTGllKT0+e3ZhciBWbnI9L1xzLztmdW5jdGlvbiBVbnIoZSl7Zm9yKHZhciB0PWUubGVuZ3RoO3QtLSYmVm5yLnRlc3QoZS5jaGFyQXQodCkpOyk7cmV0dXJuIHR9TGllLmV4cG9ydHM9VW5yfSk7dmFyIE5pZT1IKCh1Sm4sUmllKT0+e3ZhciBxbnI9a2llKCksR25yPS9eXHMrLztmdW5jdGlvbiBXbnIoZSl7cmV0dXJuIGUmJmUuc2xpY2UoMCxxbnIoZSkrMSkucmVwbGFjZShHbnIsIiIpfVJpZS5leHBvcnRzPVducn0pO3ZhciBGaWU9SCgoaEpuLHppZSk9Pnt2YXIgWW5yPU5pZSgpLERpZT1FbCgpLGpucj1KdigpLE9pZT0wLzAsWG5yPS9eWy0rXTB4WzAtOWEtZl0rJC9pLCRucj0vXjBiWzAxXSskL2ksS25yPS9eMG9bMC03XSskL2ksWm5yPXBhcnNlSW50O2Z1bmN0aW9uIEpucihlKXtpZih0eXBlb2YgZT09Im51bWJlciIpcmV0dXJuIGU7aWYoam5yKGUpKXJldHVybiBPaWU7aWYoRGllKGUpKXt2YXIgdD10eXBlb2YgZS52YWx1ZU9mPT0iZnVuY3Rpb24iP2UudmFsdWVPZigpOmU7ZT1EaWUodCk/dCsiIjp0fWlmKHR5cGVvZiBlIT0ic3RyaW5nIilyZXR1cm4gZT09PTA/ZTorZTtlPVlucihlKTt2YXIgcj0kbnIudGVzdChlKTtyZXR1cm4gcnx8S25yLnRlc3QoZSk/Wm5yKGUuc2xpY2UoMikscj8yOjgpOlhuci50ZXN0KGUpP09pZTorZX16aWUuZXhwb3J0cz1KbnJ9KTt2YXIgZ2x0PUgoKGZKbixIaWUpPT57dmFyIFFucj1GaWUoKSxCaWU9MS8wLHRpcj0xNzk3NjkzMTM0ODYyMzE1N2UyOTI7ZnVuY3Rpb24gZWlyKGUpe2lmKCFlKXJldHVybiBlPT09MD9lOjA7aWYoZT1RbnIoZSksZT09PUJpZXx8ZT09PS1CaWUpe3ZhciB0PWU8MD8tMToxO3JldHVybiB0KnRpcn1yZXR1cm4gZT09PWU/ZTowfUhpZS5leHBvcnRzPWVpcn0pO3ZhciBVaWU9SCgocEpuLFZpZSk9Pnt2YXIgcmlyPWdsdCgpO2Z1bmN0aW9uIG5pcihlKXt2YXIgdD1yaXIoZSkscj10JTE7cmV0dXJuIHQ9PT10P3I/dC1yOnQ6MH1WaWUuZXhwb3J0cz1uaXJ9KTt2YXIgR2llPUgoKGRKbixxaWUpPT57dmFyIGlpcj1hbHQoKSxvaXI9VmYoKSxhaXI9VWllKCksc2lyPU1hdGgubWF4O2Z1bmN0aW9uIGxpcihlLHQscil7dmFyIG49ZT09bnVsbD8wOmUubGVuZ3RoO2lmKCFuKXJldHVybi0xO3ZhciBpPXI9PW51bGw/MDphaXIocik7cmV0dXJuIGk8MCYmKGk9c2lyKG4raSwwKSksaWlyKGUsb2lyKHQsMyksaSl9cWllLmV4cG9ydHM9bGlyfSk7dmFyIFlpZT1IKChtSm4sV2llKT0+e3ZhciBjaXI9SWllKCksdWlyPUdpZSgpLGhpcj1jaXIodWlyKTtXaWUuZXhwb3J0cz1oaXJ9KTt2YXIgX2x0PUgoKGdKbixqaWUpPT57dmFyIGZpcj10SCgpO2Z1bmN0aW9uIHBpcihlKXt2YXIgdD1lPT1udWxsPzA6ZS5sZW5ndGg7cmV0dXJuIHQ/ZmlyKGUsMSk6W119amllLmV4cG9ydHM9cGlyfSk7dmFyICRpZT1IKChfSm4sWGllKT0+e3ZhciBkaXI9WEIoKSxtaXI9TnN0KCksZ2lyPXUwKCk7ZnVuY3Rpb24gX2lyKGUsdCl7cmV0dXJuIGU9PW51bGw/ZTpkaXIoZSxtaXIodCksZ2lyKX1YaWUuZXhwb3J0cz1faXJ9KTt2YXIgWmllPUgoKHlKbixLaWUpPT57ZnVuY3Rpb24geWlyKGUpe3ZhciB0PWU9PW51bGw/MDplLmxlbmd0aDtyZXR1cm4gdD9lW3QtMV06dm9pZCAwfUtpZS5leHBvcnRzPXlpcn0pO3ZhciBRaWU9SCgodkpuLEppZSk9Pnt2YXIgdmlyPUk0KCkseGlyPSRCKCksYmlyPVZmKCk7ZnVuY3Rpb24gd2lyKGUsdCl7dmFyIHI9e307cmV0dXJuIHQ9YmlyKHQsMykseGlyKGUsZnVuY3Rpb24obixpLG8pe3ZpcihyLGksdChuLGksbykpfSkscn1KaWUuZXhwb3J0cz13aXJ9KTt2YXIgc0g9SCgoeEpuLHRvZSk9Pnt2YXIgU2lyPUp2KCk7ZnVuY3Rpb24gTWlyKGUsdCxyKXtmb3IodmFyIG49LTEsaT1lLmxlbmd0aDsrK248aTspe3ZhciBvPWVbbl0sYT10KG8pO2lmKGEhPW51bGwmJihzPT09dm9pZCAwP2E9PT1hJiYhU2lyKGEpOnIoYSxzKSkpdmFyIHM9YSxsPW99cmV0dXJuIGx9dG9lLmV4cG9ydHM9TWlyfSk7dmFyIHJvZT1IKChiSm4sZW9lKT0+e2Z1bmN0aW9uIEVpcihlLHQpe3JldHVybiBlPnR9ZW9lLmV4cG9ydHM9RWlyfSk7dmFyIGlvZT1IKCh3Sm4sbm9lKT0+e3ZhciBUaXI9c0goKSxDaXI9cm9lKCksQWlyPWgwKCk7ZnVuY3Rpb24gUGlyKGUpe3JldHVybiBlJiZlLmxlbmd0aD9UaXIoZSxBaXIsQ2lyKTp2b2lkIDB9bm9lLmV4cG9ydHM9UGlyfSk7dmFyIHlsdD1IKChTSm4sb29lKT0+e3ZhciBJaXI9STQoKSxMaXI9anYoKTtmdW5jdGlvbiBraXIoZSx0LHIpeyhyIT09dm9pZCAwJiYhTGlyKGVbdF0scil8fHI9PT12b2lkIDAmJiEodCBpbiBlKSkmJklpcihlLHQscil9b29lLmV4cG9ydHM9a2lyfSk7dmFyIGxvZT1IKChNSm4sc29lKT0+e3ZhciBSaXI9bDAoKSxOaXI9QjQoKSxEaXI9WXUoKSxPaXI9IltvYmplY3QgT2JqZWN0XSIsemlyPUZ1bmN0aW9uLnByb3RvdHlwZSxGaXI9T2JqZWN0LnByb3RvdHlwZSxhb2U9emlyLnRvU3RyaW5nLEJpcj1GaXIuaGFzT3duUHJvcGVydHksSGlyPWFvZS5jYWxsKE9iamVjdCk7ZnVuY3Rpb24gVmlyKGUpe2lmKCFEaXIoZSl8fFJpcihlKSE9T2lyKXJldHVybiExO3ZhciB0PU5pcihlKTtpZih0PT09bnVsbClyZXR1cm4hMDt2YXIgcj1CaXIuY2FsbCh0LCJjb25zdHJ1Y3RvciIpJiZ0LmNvbnN0cnVjdG9yO3JldHVybiB0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmciBpbnN0YW5jZW9mIHImJmFvZS5jYWxsKHIpPT1IaXJ9c29lLmV4cG9ydHM9VmlyfSk7dmFyIHZsdD1IKChFSm4sY29lKT0+e2Z1bmN0aW9uIFVpcihlLHQpe2lmKCEodD09PSJjb25zdHJ1Y3RvciImJnR5cGVvZiBlW3RdPT0iZnVuY3Rpb24iKSYmdCE9Il9fcHJvdG9fXyIpcmV0dXJuIGVbdF19Y29lLmV4cG9ydHM9VWlyfSk7dmFyIGhvZT1IKChUSm4sdW9lKT0+e3ZhciBxaXI9VVMoKSxHaXI9dTAoKTtmdW5jdGlvbiBXaXIoZSl7cmV0dXJuIHFpcihlLEdpcihlKSl9dW9lLmV4cG9ydHM9V2lyfSk7dmFyIF9vZT1IKChDSm4sZ29lKT0+e3ZhciBmb2U9eWx0KCksWWlyPWdzdCgpLGppcj1Jc3QoKSxYaXI9X3N0KCksJGlyPWtzdCgpLHBvZT1xUygpLGRvZT1UaSgpLEtpcj1sbHQoKSxaaXI9JHYoKSxKaXI9RlMoKSxRaXI9RWwoKSx0b3I9bG9lKCksZW9yPVlTKCksbW9lPXZsdCgpLHJvcj1ob2UoKTtmdW5jdGlvbiBub3IoZSx0LHIsbixpLG8sYSl7dmFyIHM9bW9lKGUsciksbD1tb2UodCxyKSxjPWEuZ2V0KGwpO2lmKGMpe2ZvZShlLHIsYyk7cmV0dXJufXZhciB1PW8/byhzLGwscisiIixlLHQsYSk6dm9pZCAwLGg9dT09PXZvaWQgMDtpZihoKXt2YXIgZj1kb2UobCkscD0hZiYmWmlyKGwpLGQ9IWYmJiFwJiZlb3IobCk7dT1sLGZ8fHB8fGQ/ZG9lKHMpP3U9czpLaXIocyk/dT1YaXIocyk6cD8oaD0hMSx1PVlpcihsLCEwKSk6ZD8oaD0hMSx1PWppcihsLCEwKSk6dT1bXTp0b3IobCl8fHBvZShsKT8odT1zLHBvZShzKT91PXJvcihzKTooIVFpcihzKXx8SmlyKHMpKSYmKHU9JGlyKGwpKSk6aD0hMX1oJiYoYS5zZXQobCx1KSxpKHUsbCxuLG8sYSksYS5kZWxldGUobCkpLGZvZShlLHIsdSl9Z29lLmV4cG9ydHM9bm9yfSk7dmFyIHhvZT1IKChBSm4sdm9lKT0+e3ZhciBpb3I9UDQoKSxvb3I9eWx0KCksYW9yPVhCKCksc29yPV9vZSgpLGxvcj1FbCgpLGNvcj11MCgpLHVvcj12bHQoKTtmdW5jdGlvbiB5b2UoZSx0LHIsbixpKXtlIT09dCYmYW9yKHQsZnVuY3Rpb24obyxhKXtpZihpfHwoaT1uZXcgaW9yKSxsb3Iobykpc29yKGUsdCxhLHIseW9lLG4saSk7ZWxzZXt2YXIgcz1uP24odW9yKGUsYSksbyxhKyIiLGUsdCxpKTp2b2lkIDA7cz09PXZvaWQgMCYmKHM9byksb29yKGUsYSxzKX19LGNvcil9dm9lLmV4cG9ydHM9eW9lfSk7dmFyIHdvZT1IKChQSm4sYm9lKT0+e3ZhciBob3I9RzQoKSxwb3I9ajQoKTtmdW5jdGlvbiBkb3IoZSl7cmV0dXJuIGhvcihmdW5jdGlvbih0LHIpe3ZhciBuPS0xLGk9ci5sZW5ndGgsbz1pPjE/cltpLTFdOnZvaWQgMCxhPWk+Mj9yWzJdOnZvaWQgMDtmb3Iobz1lLmxlbmd0aD4zJiZ0eXBlb2Ygbz09ImZ1bmN0aW9uIj8oaS0tLG8pOnZvaWQgMCxhJiZwb3IoclswXSxyWzFdLGEpJiYobz1pPDM/dm9pZCAwOm8saT0xKSx0PU9iamVjdCh0KTsrK248aTspe3ZhciBzPXJbbl07cyYmZSh0LHMsbixvKX1yZXR1cm4gdH0pfWJvZS5leHBvcnRzPWRvcn0pO3ZhciBNb2U9SCgoSUpuLFNvZSk9Pnt2YXIgbW9yPXhvZSgpLGdvcj13b2UoKSxfb3I9Z29yKGZ1bmN0aW9uKGUsdCxyKXttb3IoZSx0LHIpfSk7U29lLmV4cG9ydHM9X29yfSk7dmFyIHhsdD1IKChMSm4sRW9lKT0+e2Z1bmN0aW9uIHlvcihlLHQpe3JldHVybiBlPHR9RW9lLmV4cG9ydHM9eW9yfSk7dmFyIENvZT1IKChrSm4sVG9lKT0+e3ZhciB2b3I9c0goKSx4b3I9eGx0KCksYm9yPWgwKCk7ZnVuY3Rpb24gd29yKGUpe3JldHVybiBlJiZlLmxlbmd0aD92b3IoZSxib3IseG9yKTp2b2lkIDB9VG9lLmV4cG9ydHM9d29yfSk7dmFyIFBvZT1IKChSSm4sQW9lKT0+e3ZhciBTb3I9c0goKSxNb3I9VmYoKSxFb3I9eGx0KCk7ZnVuY3Rpb24gVG9yKGUsdCl7cmV0dXJuIGUmJmUubGVuZ3RoP1NvcihlLE1vcih0LDIpLEVvcik6dm9pZCAwfUFvZS5leHBvcnRzPVRvcn0pO3ZhciBMb2U9SCgoTkpuLElvZSk9Pnt2YXIgQ29yPUhjKCksQW9yPWZ1bmN0aW9uKCl7cmV0dXJuIENvci5EYXRlLm5vdygpfTtJb2UuZXhwb3J0cz1Bb3J9KTt2YXIgTm9lPUgoKERKbixSb2UpPT57dmFyIFBvcj1MNCgpLElvcj1VNCgpLExvcj1SNCgpLGtvZT1FbCgpLGtvcj0kUygpO2Z1bmN0aW9uIFJvcihlLHQscixuKXtpZigha29lKGUpKXJldHVybiBlO3Q9SW9yKHQsZSk7Zm9yKHZhciBpPS0xLG89dC5sZW5ndGgsYT1vLTEscz1lO3MhPW51bGwmJisraTxvOyl7dmFyIGw9a29yKHRbaV0pLGM9cjtpZihsPT09Il9fcHJvdG9fXyJ8fGw9PT0iY29uc3RydWN0b3IifHxsPT09InByb3RvdHlwZSIpcmV0dXJuIGU7aWYoaSE9YSl7dmFyIHU9c1tsXTtjPW4/bih1LGwscyk6dm9pZCAwLGM9PT12b2lkIDAmJihjPWtvZSh1KT91Okxvcih0W2krMV0pP1tdOnt9KX1Qb3IocyxsLGMpLHM9c1tsXX1yZXR1cm4gZX1Sb2UuZXhwb3J0cz1Sb3J9KTt2YXIgT29lPUgoKE9KbixEb2UpPT57dmFyIE5vcj1xNCgpLERvcj1Ob2UoKSxPb3I9VTQoKTtmdW5jdGlvbiB6b3IoZSx0LHIpe2Zvcih2YXIgbj0tMSxpPXQubGVuZ3RoLG89e307KytuPGk7KXt2YXIgYT10W25dLHM9Tm9yKGUsYSk7cihzLGEpJiZEb3IobyxPb3IoYSxlKSxzKX1yZXR1cm4gb31Eb2UuZXhwb3J0cz16b3J9KTt2YXIgRm9lPUgoKHpKbix6b2UpPT57dmFyIEZvcj1Pb2UoKSxCb3I9WHN0KCk7ZnVuY3Rpb24gSG9yKGUsdCl7cmV0dXJuIEZvcihlLHQsZnVuY3Rpb24ocixuKXtyZXR1cm4gQm9yKGUsbil9KX16b2UuZXhwb3J0cz1Ib3J9KTt2YXIgSG9lPUgoKEZKbixCb2UpPT57dmFyIFZvcj1fbHQoKSxVb3I9aWx0KCkscW9yPW9sdCgpO2Z1bmN0aW9uIEdvcihlKXtyZXR1cm4gcW9yKFVvcihlLHZvaWQgMCxWb3IpLGUrIiIpfUJvZS5leHBvcnRzPUdvcn0pO3ZhciBVb2U9SCgoQkpuLFZvZSk9Pnt2YXIgV29yPUZvZSgpLFlvcj1Ib2UoKSxqb3I9WW9yKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PW51bGw/e306V29yKGUsdCl9KTtWb2UuZXhwb3J0cz1qb3J9KTt2YXIgR29lPUgoKEhKbixxb2UpPT57dmFyIFhvcj1NYXRoLmNlaWwsJG9yPU1hdGgubWF4O2Z1bmN0aW9uIEtvcihlLHQscixuKXtmb3IodmFyIGk9LTEsbz0kb3IoWG9yKCh0LWUpLyhyfHwxKSksMCksYT1BcnJheShvKTtvLS07KWFbbj9vOisraV09ZSxlKz1yO3JldHVybiBhfXFvZS5leHBvcnRzPUtvcn0pO3ZhciBZb2U9SCgoVkpuLFdvZSk9Pnt2YXIgWm9yPUdvZSgpLEpvcj1qNCgpLGJsdD1nbHQoKTtmdW5jdGlvbiBRb3IoZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtyZXR1cm4gbiYmdHlwZW9mIG4hPSJudW1iZXIiJiZKb3IodCxyLG4pJiYocj1uPXZvaWQgMCksdD1ibHQodCkscj09PXZvaWQgMD8ocj10LHQ9MCk6cj1ibHQociksbj1uPT09dm9pZCAwP3Q8cj8xOi0xOmJsdChuKSxab3IodCxyLG4sZSl9fVdvZS5leHBvcnRzPVFvcn0pO3ZhciBYb2U9SCgoVUpuLGpvZSk9Pnt2YXIgdGFyPVlvZSgpLGVhcj10YXIoKTtqb2UuZXhwb3J0cz1lYXJ9KTt2YXIgS29lPUgoKHFKbiwkb2UpPT57ZnVuY3Rpb24gcmFyKGUsdCl7dmFyIHI9ZS5sZW5ndGg7Zm9yKGUuc29ydCh0KTtyLS07KWVbcl09ZVtyXS52YWx1ZTtyZXR1cm4gZX0kb2UuZXhwb3J0cz1yYXJ9KTt2YXIgUW9lPUgoKEdKbixKb2UpPT57dmFyIFpvZT1KdigpO2Z1bmN0aW9uIG5hcihlLHQpe2lmKGUhPT10KXt2YXIgcj1lIT09dm9pZCAwLG49ZT09PW51bGwsaT1lPT09ZSxvPVpvZShlKSxhPXQhPT12b2lkIDAscz10PT09bnVsbCxsPXQ9PT10LGM9Wm9lKHQpO2lmKCFzJiYhYyYmIW8mJmU+dHx8byYmYSYmbCYmIXMmJiFjfHxuJiZhJiZsfHwhciYmbHx8IWkpcmV0dXJuIDE7aWYoIW4mJiFvJiYhYyYmZTx0fHxjJiZyJiZpJiYhbiYmIW98fHMmJnImJml8fCFhJiZpfHwhbClyZXR1cm4tMX1yZXR1cm4gMH1Kb2UuZXhwb3J0cz1uYXJ9KTt2YXIgZWFlPUgoKFdKbix0YWUpPT57dmFyIGlhcj1Rb2UoKTtmdW5jdGlvbiBvYXIoZSx0LHIpe2Zvcih2YXIgbj0tMSxpPWUuY3JpdGVyaWEsbz10LmNyaXRlcmlhLGE9aS5sZW5ndGgscz1yLmxlbmd0aDsrK248YTspe3ZhciBsPWlhcihpW25dLG9bbl0pO2lmKGwpe2lmKG4+PXMpcmV0dXJuIGw7dmFyIGM9cltuXTtyZXR1cm4gbCooYz09ImRlc2MiPy0xOjEpfX1yZXR1cm4gZS5pbmRleC10LmluZGV4fXRhZS5leHBvcnRzPW9hcn0pO3ZhciBuYWU9SCgoWUpuLHJhZSk9Pnt2YXIgd2x0PVY0KCksYWFyPXE0KCksc2FyPVZmKCksbGFyPVFzdCgpLGNhcj1Lb2UoKSx1YXI9TjQoKSxoYXI9ZWFlKCksZmFyPWgwKCkscGFyPVRpKCk7ZnVuY3Rpb24gZGFyKGUsdCxyKXt0Lmxlbmd0aD90PXdsdCh0LGZ1bmN0aW9uKG8pe3JldHVybiBwYXIobyk/ZnVuY3Rpb24oYSl7cmV0dXJuIGFhcihhLG8ubGVuZ3RoPT09MT9vWzBdOm8pfTpvfSk6dD1bZmFyXTt2YXIgbj0tMTt0PXdsdCh0LHVhcihzYXIpKTt2YXIgaT1sYXIoZSxmdW5jdGlvbihvLGEscyl7dmFyIGw9d2x0KHQsZnVuY3Rpb24oYyl7cmV0dXJuIGMobyl9KTtyZXR1cm57Y3JpdGVyaWE6bCxpbmRleDorK24sdmFsdWU6b319KTtyZXR1cm4gY2FyKGksZnVuY3Rpb24obyxhKXtyZXR1cm4gaGFyKG8sYSxyKX0pfXJhZS5leHBvcnRzPWRhcn0pO3ZhciBhYWU9SCgoakpuLG9hZSk9Pnt2YXIgbWFyPXRIKCksZ2FyPW5hZSgpLF9hcj1HNCgpLGlhZT1qNCgpLHlhcj1fYXIoZnVuY3Rpb24oZSx0KXtpZihlPT1udWxsKXJldHVybltdO3ZhciByPXQubGVuZ3RoO3JldHVybiByPjEmJmlhZShlLHRbMF0sdFsxXSk/dD1bXTpyPjImJmlhZSh0WzBdLHRbMV0sdFsyXSkmJih0PVt0WzBdXSksZ2FyKGUsbWFyKHQsMSksW10pfSk7b2FlLmV4cG9ydHM9eWFyfSk7dmFyIGxhZT1IKChYSm4sc2FlKT0+e3ZhciB4YXI9WXN0KCksYmFyPTA7ZnVuY3Rpb24gd2FyKGUpe3ZhciB0PSsrYmFyO3JldHVybiB4YXIoZSkrdH1zYWUuZXhwb3J0cz13YXJ9KTt2YXIgdWFlPUgoKCRKbixjYWUpPT57ZnVuY3Rpb24gU2FyKGUsdCxyKXtmb3IodmFyIG49LTEsaT1lLmxlbmd0aCxvPXQubGVuZ3RoLGE9e307KytuPGk7KXt2YXIgcz1uPG8/dFtuXTp2b2lkIDA7cihhLGVbbl0scyl9cmV0dXJuIGF9Y2FlLmV4cG9ydHM9U2FyfSk7dmFyIGZhZT1IKChLSm4saGFlKT0+e3ZhciBNYXI9TDQoKSxFYXI9dWFlKCk7ZnVuY3Rpb24gVGFyKGUsdCl7cmV0dXJuIEVhcihlfHxbXSx0fHxbXSxNYXIpfWhhZS5leHBvcnRzPVRhcn0pO3ZhciBxbj1IKChaSm4scGFlKT0+e3ZhciBsSDtpZih0eXBlb2YgRXg9PSJmdW5jdGlvbiIpdHJ5e2xIPXtjbG9uZURlZXA6TWllKCksY29uc3RhbnQ6akIoKSxkZWZhdWx0czpBaWUoKSxlYWNoOk9zdCgpLGZpbHRlcjpLc3QoKSxmaW5kOllpZSgpLGZsYXR0ZW46X2x0KCksZm9yRWFjaDpEc3QoKSxmb3JJbjokaWUoKSxoYXM6WnN0KCksaXNVbmRlZmluZWQ6SnN0KCksbGFzdDpaaWUoKSxtYXA6dGx0KCksbWFwVmFsdWVzOlFpZSgpLG1heDppb2UoKSxtZXJnZTpNb2UoKSxtaW46Q29lKCksbWluQnk6UG9lKCksbm93OkxvZSgpLHBpY2s6VW9lKCkscmFuZ2U6WG9lKCkscmVkdWNlOmVsdCgpLHNvcnRCeTphYWUoKSx1bmlxdWVJZDpsYWUoKSx2YWx1ZXM6Y2x0KCksemlwT2JqZWN0OmZhZSgpfX1jYXRjaChlKXt9bEh8fChsSD13aW5kb3cuXyk7cGFlLmV4cG9ydHM9bEh9KTt2YXIgZ2FlPUgoKFFKbixtYWUpPT57bWFlLmV4cG9ydHM9Y0g7ZnVuY3Rpb24gY0goKXt2YXIgZT17fTtlLl9uZXh0PWUuX3ByZXY9ZSx0aGlzLl9zZW50aW5lbD1lfWNILnByb3RvdHlwZS5kZXF1ZXVlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fc2VudGluZWwsdD1lLl9wcmV2O2lmKHQhPT1lKXJldHVybiBkYWUodCksdH07Y0gucHJvdG90eXBlLmVucXVldWU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fc2VudGluZWw7ZS5fcHJldiYmZS5fbmV4dCYmZGFlKGUpLGUuX25leHQ9dC5fbmV4dCx0Ll9uZXh0Ll9wcmV2PWUsdC5fbmV4dD1lLGUuX3ByZXY9dH07Y0gucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHQ9dGhpcy5fc2VudGluZWwscj10Ll9wcmV2O3IhPT10OyllLnB1c2goSlNPTi5zdHJpbmdpZnkocixDYXIpKSxyPXIuX3ByZXY7cmV0dXJuIlsiK2Uuam9pbigiLCAiKSsiXSJ9O2Z1bmN0aW9uIGRhZShlKXtlLl9wcmV2Ll9uZXh0PWUuX25leHQsZS5fbmV4dC5fcHJldj1lLl9wcmV2LGRlbGV0ZSBlLl9uZXh0LGRlbGV0ZSBlLl9wcmV2fWZ1bmN0aW9uIENhcihlLHQpe2lmKGUhPT0iX25leHQiJiZlIT09Il9wcmV2IilyZXR1cm4gdH19KTt2YXIgeWFlPUgoKHRRbixfYWUpPT57dmFyIElkPXFuKCksQWFyPVVjKCkuR3JhcGgsUGFyPWdhZSgpO19hZS5leHBvcnRzPUxhcjt2YXIgSWFyPUlkLmNvbnN0YW50KDEpO2Z1bmN0aW9uIExhcihlLHQpe2lmKGUubm9kZUNvdW50KCk8PTEpcmV0dXJuW107dmFyIHI9UmFyKGUsdHx8SWFyKSxuPWthcihyLmdyYXBoLHIuYnVja2V0cyxyLnplcm9JZHgpO3JldHVybiBJZC5mbGF0dGVuKElkLm1hcChuLGZ1bmN0aW9uKGkpe3JldHVybiBlLm91dEVkZ2VzKGkudixpLncpfSksITApfWZ1bmN0aW9uIGthcihlLHQscil7Zm9yKHZhciBuPVtdLGk9dFt0Lmxlbmd0aC0xXSxvPXRbMF0sYTtlLm5vZGVDb3VudCgpOyl7Zm9yKDthPW8uZGVxdWV1ZSgpOylTbHQoZSx0LHIsYSk7Zm9yKDthPWkuZGVxdWV1ZSgpOylTbHQoZSx0LHIsYSk7aWYoZS5ub2RlQ291bnQoKSl7Zm9yKHZhciBzPXQubGVuZ3RoLTI7cz4wOy0tcylpZihhPXRbc10uZGVxdWV1ZSgpLGEpe249bi5jb25jYXQoU2x0KGUsdCxyLGEsITApKTticmVha319fXJldHVybiBufWZ1bmN0aW9uIFNsdChlLHQscixuLGkpe3ZhciBvPWk/W106dm9pZCAwO3JldHVybiBJZC5mb3JFYWNoKGUuaW5FZGdlcyhuLnYpLGZ1bmN0aW9uKGEpe3ZhciBzPWUuZWRnZShhKSxsPWUubm9kZShhLnYpO2kmJm8ucHVzaCh7djphLnYsdzphLnd9KSxsLm91dC09cyxNbHQodCxyLGwpfSksSWQuZm9yRWFjaChlLm91dEVkZ2VzKG4udiksZnVuY3Rpb24oYSl7dmFyIHM9ZS5lZGdlKGEpLGw9YS53LGM9ZS5ub2RlKGwpO2MuaW4tPXMsTWx0KHQscixjKX0pLGUucmVtb3ZlTm9kZShuLnYpLG99ZnVuY3Rpb24gUmFyKGUsdCl7dmFyIHI9bmV3IEFhcixuPTAsaT0wO0lkLmZvckVhY2goZS5ub2RlcygpLGZ1bmN0aW9uKHMpe3Iuc2V0Tm9kZShzLHt2OnMsaW46MCxvdXQ6MH0pfSksSWQuZm9yRWFjaChlLmVkZ2VzKCksZnVuY3Rpb24ocyl7dmFyIGw9ci5lZGdlKHMudixzLncpfHwwLGM9dChzKSx1PWwrYztyLnNldEVkZ2Uocy52LHMudyx1KSxpPU1hdGgubWF4KGksci5ub2RlKHMudikub3V0Kz1jKSxuPU1hdGgubWF4KG4sci5ub2RlKHMudykuaW4rPWMpfSk7dmFyIG89SWQucmFuZ2UoaStuKzMpLm1hcChmdW5jdGlvbigpe3JldHVybiBuZXcgUGFyfSksYT1uKzE7cmV0dXJuIElkLmZvckVhY2goci5ub2RlcygpLGZ1bmN0aW9uKHMpe01sdChvLGEsci5ub2RlKHMpKX0pLHtncmFwaDpyLGJ1Y2tldHM6byx6ZXJvSWR4OmF9fWZ1bmN0aW9uIE1sdChlLHQscil7ci5vdXQ/ci5pbj9lW3Iub3V0LXIuaW4rdF0uZW5xdWV1ZShyKTplW2UubGVuZ3RoLTFdLmVucXVldWUocik6ZVswXS5lbnF1ZXVlKHIpfX0pO3ZhciB4YWU9SCgoZVFuLHZhZSk9PnsidXNlIHN0cmljdCI7dmFyIHQxPXFuKCksTmFyPXlhZSgpO3ZhZS5leHBvcnRzPXtydW46RGFyLHVuZG86emFyfTtmdW5jdGlvbiBEYXIoZSl7dmFyIHQ9ZS5ncmFwaCgpLmFjeWNsaWNlcj09PSJncmVlZHkiP05hcihlLHIoZSkpOk9hcihlKTt0MS5mb3JFYWNoKHQsZnVuY3Rpb24obil7dmFyIGk9ZS5lZGdlKG4pO2UucmVtb3ZlRWRnZShuKSxpLmZvcndhcmROYW1lPW4ubmFtZSxpLnJldmVyc2VkPSEwLGUuc2V0RWRnZShuLncsbi52LGksdDEudW5pcXVlSWQoInJldiIpKX0pO2Z1bmN0aW9uIHIobil7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBuLmVkZ2UoaSkud2VpZ2h0fX19ZnVuY3Rpb24gT2FyKGUpe3ZhciB0PVtdLHI9e30sbj17fTtmdW5jdGlvbiBpKG8pe3QxLmhhcyhuLG8pfHwobltvXT0hMCxyW29dPSEwLHQxLmZvckVhY2goZS5vdXRFZGdlcyhvKSxmdW5jdGlvbihhKXt0MS5oYXMocixhLncpP3QucHVzaChhKTppKGEudyl9KSxkZWxldGUgcltvXSl9cmV0dXJuIHQxLmZvckVhY2goZS5ub2RlcygpLGkpLHR9ZnVuY3Rpb24gemFyKGUpe3QxLmZvckVhY2goZS5lZGdlcygpLGZ1bmN0aW9uKHQpe3ZhciByPWUuZWRnZSh0KTtpZihyLnJldmVyc2VkKXtlLnJlbW92ZUVkZ2UodCk7dmFyIG49ci5mb3J3YXJkTmFtZTtkZWxldGUgci5yZXZlcnNlZCxkZWxldGUgci5mb3J3YXJkTmFtZSxlLnNldEVkZ2UodC53LHQudixyLG4pfX0pfX0pO3ZhciBpcz1IKChyUW4sTWFlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgUXI9cW4oKSxiYWU9VWMoKS5HcmFwaDtNYWUuZXhwb3J0cz17YWRkRHVtbXlOb2RlOndhZSxzaW1wbGlmeTpGYXIsYXNOb25Db21wb3VuZEdyYXBoOkJhcixzdWNjZXNzb3JXZWlnaHRzOkhhcixwcmVkZWNlc3NvcldlaWdodHM6VmFyLGludGVyc2VjdFJlY3Q6VWFyLGJ1aWxkTGF5ZXJNYXRyaXg6cWFyLG5vcm1hbGl6ZVJhbmtzOkdhcixyZW1vdmVFbXB0eVJhbmtzOldhcixhZGRCb3JkZXJOb2RlOllhcixtYXhSYW5rOlNhZSxwYXJ0aXRpb246amFyLHRpbWU6WGFyLG5vdGltZTokYXJ9O2Z1bmN0aW9uIHdhZShlLHQscixuKXt2YXIgaTtkbyBpPVFyLnVuaXF1ZUlkKG4pO3doaWxlKGUuaGFzTm9kZShpKSk7cmV0dXJuIHIuZHVtbXk9dCxlLnNldE5vZGUoaSxyKSxpfWZ1bmN0aW9uIEZhcihlKXt2YXIgdD1uZXcgYmFlKCkuc2V0R3JhcGgoZS5ncmFwaCgpKTtyZXR1cm4gUXIuZm9yRWFjaChlLm5vZGVzKCksZnVuY3Rpb24ocil7dC5zZXROb2RlKHIsZS5ub2RlKHIpKX0pLFFyLmZvckVhY2goZS5lZGdlcygpLGZ1bmN0aW9uKHIpe3ZhciBuPXQuZWRnZShyLnYsci53KXx8e3dlaWdodDowLG1pbmxlbjoxfSxpPWUuZWRnZShyKTt0LnNldEVkZ2Uoci52LHIudyx7d2VpZ2h0Om4ud2VpZ2h0K2kud2VpZ2h0LG1pbmxlbjpNYXRoLm1heChuLm1pbmxlbixpLm1pbmxlbil9KX0pLHR9ZnVuY3Rpb24gQmFyKGUpe3ZhciB0PW5ldyBiYWUoe211bHRpZ3JhcGg6ZS5pc011bHRpZ3JhcGgoKX0pLnNldEdyYXBoKGUuZ3JhcGgoKSk7cmV0dXJuIFFyLmZvckVhY2goZS5ub2RlcygpLGZ1bmN0aW9uKHIpe2UuY2hpbGRyZW4ocikubGVuZ3RofHx0LnNldE5vZGUocixlLm5vZGUocikpfSksUXIuZm9yRWFjaChlLmVkZ2VzKCksZnVuY3Rpb24ocil7dC5zZXRFZGdlKHIsZS5lZGdlKHIpKX0pLHR9ZnVuY3Rpb24gSGFyKGUpe3ZhciB0PVFyLm1hcChlLm5vZGVzKCksZnVuY3Rpb24ocil7dmFyIG49e307cmV0dXJuIFFyLmZvckVhY2goZS5vdXRFZGdlcyhyKSxmdW5jdGlvbihpKXtuW2kud109KG5baS53XXx8MCkrZS5lZGdlKGkpLndlaWdodH0pLG59KTtyZXR1cm4gUXIuemlwT2JqZWN0KGUubm9kZXMoKSx0KX1mdW5jdGlvbiBWYXIoZSl7dmFyIHQ9UXIubWFwKGUubm9kZXMoKSxmdW5jdGlvbihyKXt2YXIgbj17fTtyZXR1cm4gUXIuZm9yRWFjaChlLmluRWRnZXMociksZnVuY3Rpb24oaSl7bltpLnZdPShuW2kudl18fDApK2UuZWRnZShpKS53ZWlnaHR9KSxufSk7cmV0dXJuIFFyLnppcE9iamVjdChlLm5vZGVzKCksdCl9ZnVuY3Rpb24gVWFyKGUsdCl7dmFyIHI9ZS54LG49ZS55LGk9dC54LXIsbz10LnktbixhPWUud2lkdGgvMixzPWUuaGVpZ2h0LzI7aWYoIWkmJiFvKXRocm93IG5ldyBFcnJvcigiTm90IHBvc3NpYmxlIHRvIGZpbmQgaW50ZXJzZWN0aW9uIGluc2lkZSBvZiB0aGUgcmVjdGFuZ2xlIik7dmFyIGwsYztyZXR1cm4gTWF0aC5hYnMobykqYT5NYXRoLmFicyhpKSpzPyhvPDAmJihzPS1zKSxsPXMqaS9vLGM9cyk6KGk8MCYmKGE9LWEpLGw9YSxjPWEqby9pKSx7eDpyK2wseTpuK2N9fWZ1bmN0aW9uIHFhcihlKXt2YXIgdD1Rci5tYXAoUXIucmFuZ2UoU2FlKGUpKzEpLGZ1bmN0aW9uKCl7cmV0dXJuW119KTtyZXR1cm4gUXIuZm9yRWFjaChlLm5vZGVzKCksZnVuY3Rpb24ocil7dmFyIG49ZS5ub2RlKHIpLGk9bi5yYW5rO1FyLmlzVW5kZWZpbmVkKGkpfHwodFtpXVtuLm9yZGVyXT1yKX0pLHR9ZnVuY3Rpb24gR2FyKGUpe3ZhciB0PVFyLm1pbihRci5tYXAoZS5ub2RlcygpLGZ1bmN0aW9uKHIpe3JldHVybiBlLm5vZGUocikucmFua30pKTtRci5mb3JFYWNoKGUubm9kZXMoKSxmdW5jdGlvbihyKXt2YXIgbj1lLm5vZGUocik7UXIuaGFzKG4sInJhbmsiKSYmKG4ucmFuay09dCl9KX1mdW5jdGlvbiBXYXIoZSl7dmFyIHQ9UXIubWluKFFyLm1hcChlLm5vZGVzKCksZnVuY3Rpb24obyl7cmV0dXJuIGUubm9kZShvKS5yYW5rfSkpLHI9W107UXIuZm9yRWFjaChlLm5vZGVzKCksZnVuY3Rpb24obyl7dmFyIGE9ZS5ub2RlKG8pLnJhbmstdDtyW2FdfHwoclthXT1bXSksclthXS5wdXNoKG8pfSk7dmFyIG49MCxpPWUuZ3JhcGgoKS5ub2RlUmFua0ZhY3RvcjtRci5mb3JFYWNoKHIsZnVuY3Rpb24obyxhKXtRci5pc1VuZGVmaW5lZChvKSYmYSVpIT09MD8tLW46biYmUXIuZm9yRWFjaChvLGZ1bmN0aW9uKHMpe2Uubm9kZShzKS5yYW5rKz1ufSl9KX1mdW5jdGlvbiBZYXIoZSx0LHIsbil7dmFyIGk9e3dpZHRoOjAsaGVpZ2h0OjB9O3JldHVybiBhcmd1bWVudHMubGVuZ3RoPj00JiYoaS5yYW5rPXIsaS5vcmRlcj1uKSx3YWUoZSwiYm9yZGVyIixpLHQpfWZ1bmN0aW9uIFNhZShlKXtyZXR1cm4gUXIubWF4KFFyLm1hcChlLm5vZGVzKCksZnVuY3Rpb24odCl7dmFyIHI9ZS5ub2RlKHQpLnJhbms7aWYoIVFyLmlzVW5kZWZpbmVkKHIpKXJldHVybiByfSkpfWZ1bmN0aW9uIGphcihlLHQpe3ZhciByPXtsaHM6W10scmhzOltdfTtyZXR1cm4gUXIuZm9yRWFjaChlLGZ1bmN0aW9uKG4pe3Qobik/ci5saHMucHVzaChuKTpyLnJocy5wdXNoKG4pfSkscn1mdW5jdGlvbiBYYXIoZSx0KXt2YXIgcj1Rci5ub3coKTt0cnl7cmV0dXJuIHQoKX1maW5hbGx5e2NvbnNvbGUubG9nKGUrIiB0aW1lOiAiKyhRci5ub3coKS1yKSsibXMiKX19ZnVuY3Rpb24gJGFyKGUsdCl7cmV0dXJuIHQoKX19KTt2YXIgQ2FlPUgoKG5RbixUYWUpPT57InVzZSBzdHJpY3QiO3ZhciBFYWU9cW4oKSxLYXI9aXMoKTtUYWUuZXhwb3J0cz17cnVuOlphcix1bmRvOlFhcn07ZnVuY3Rpb24gWmFyKGUpe2UuZ3JhcGgoKS5kdW1teUNoYWlucz1bXSxFYWUuZm9yRWFjaChlLmVkZ2VzKCksZnVuY3Rpb24odCl7SmFyKGUsdCl9KX1mdW5jdGlvbiBKYXIoZSx0KXt2YXIgcj10LnYsbj1lLm5vZGUocikucmFuayxpPXQudyxvPWUubm9kZShpKS5yYW5rLGE9dC5uYW1lLHM9ZS5lZGdlKHQpLGw9cy5sYWJlbFJhbms7aWYobyE9PW4rMSl7ZS5yZW1vdmVFZGdlKHQpO3ZhciBjLHUsaDtmb3IoaD0wLCsrbjtuPG87KytoLCsrbilzLnBvaW50cz1bXSx1PXt3aWR0aDowLGhlaWdodDowLGVkZ2VMYWJlbDpzLGVkZ2VPYmo6dCxyYW5rOm59LGM9S2FyLmFkZER1bW15Tm9kZShlLCJlZGdlIix1LCJfZCIpLG49PT1sJiYodS53aWR0aD1zLndpZHRoLHUuaGVpZ2h0PXMuaGVpZ2h0LHUuZHVtbXk9ImVkZ2UtbGFiZWwiLHUubGFiZWxwb3M9cy5sYWJlbHBvcyksZS5zZXRFZGdlKHIsYyx7d2VpZ2h0OnMud2VpZ2h0fSxhKSxoPT09MCYmZS5ncmFwaCgpLmR1bW15Q2hhaW5zLnB1c2goYykscj1jO2Uuc2V0RWRnZShyLGkse3dlaWdodDpzLndlaWdodH0sYSl9fWZ1bmN0aW9uIFFhcihlKXtFYWUuZm9yRWFjaChlLmdyYXBoKCkuZHVtbXlDaGFpbnMsZnVuY3Rpb24odCl7dmFyIHI9ZS5ub2RlKHQpLG49ci5lZGdlTGFiZWwsaTtmb3IoZS5zZXRFZGdlKHIuZWRnZU9iaixuKTtyLmR1bW15OylpPWUuc3VjY2Vzc29ycyh0KVswXSxlLnJlbW92ZU5vZGUodCksbi5wb2ludHMucHVzaCh7eDpyLngseTpyLnl9KSxyLmR1bW15PT09ImVkZ2UtbGFiZWwiJiYobi54PXIueCxuLnk9ci55LG4ud2lkdGg9ci53aWR0aCxuLmhlaWdodD1yLmhlaWdodCksdD1pLHI9ZS5ub2RlKHQpfSl9fSk7dmFyIFg0PUgoKGlRbixBYWUpPT57InVzZSBzdHJpY3QiO3ZhciB1SD1xbigpO0FhZS5leHBvcnRzPXtsb25nZXN0UGF0aDp0c3Isc2xhY2s6ZXNyfTtmdW5jdGlvbiB0c3IoZSl7dmFyIHQ9e307ZnVuY3Rpb24gcihuKXt2YXIgaT1lLm5vZGUobik7aWYodUguaGFzKHQsbikpcmV0dXJuIGkucmFuazt0W25dPSEwO3ZhciBvPXVILm1pbih1SC5tYXAoZS5vdXRFZGdlcyhuKSxmdW5jdGlvbihhKXtyZXR1cm4gcihhLncpLWUuZWRnZShhKS5taW5sZW59KSk7cmV0dXJuKG89PT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFl8fG89PT12b2lkIDB8fG89PT1udWxsKSYmKG89MCksaS5yYW5rPW99dUguZm9yRWFjaChlLnNvdXJjZXMoKSxyKX1mdW5jdGlvbiBlc3IoZSx0KXtyZXR1cm4gZS5ub2RlKHQudykucmFuay1lLm5vZGUodC52KS5yYW5rLWUuZWRnZSh0KS5taW5sZW59fSk7dmFyIEVsdD1IKChvUW4sUGFlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaEg9cW4oKSxyc3I9VWMoKS5HcmFwaCxmSD1YNCgpLnNsYWNrO1BhZS5leHBvcnRzPW5zcjtmdW5jdGlvbiBuc3IoZSl7dmFyIHQ9bmV3IHJzcih7ZGlyZWN0ZWQ6ITF9KSxyPWUubm9kZXMoKVswXSxuPWUubm9kZUNvdW50KCk7dC5zZXROb2RlKHIse30pO2Zvcih2YXIgaSxvO2lzcih0LGUpPG47KWk9b3NyKHQsZSksbz10Lmhhc05vZGUoaS52KT9mSChlLGkpOi1mSChlLGkpLGFzcih0LGUsbyk7cmV0dXJuIHR9ZnVuY3Rpb24gaXNyKGUsdCl7ZnVuY3Rpb24gcihuKXtoSC5mb3JFYWNoKHQubm9kZUVkZ2VzKG4pLGZ1bmN0aW9uKGkpe3ZhciBvPWkudixhPW49PT1vP2kudzpvOyFlLmhhc05vZGUoYSkmJiFmSCh0LGkpJiYoZS5zZXROb2RlKGEse30pLGUuc2V0RWRnZShuLGEse30pLHIoYSkpfSl9cmV0dXJuIGhILmZvckVhY2goZS5ub2RlcygpLHIpLGUubm9kZUNvdW50KCl9ZnVuY3Rpb24gb3NyKGUsdCl7cmV0dXJuIGhILm1pbkJ5KHQuZWRnZXMoKSxmdW5jdGlvbihyKXtpZihlLmhhc05vZGUoci52KSE9PWUuaGFzTm9kZShyLncpKXJldHVybiBmSCh0LHIpfSl9ZnVuY3Rpb24gYXNyKGUsdCxyKXtoSC5mb3JFYWNoKGUubm9kZXMoKSxmdW5jdGlvbihuKXt0Lm5vZGUobikucmFuays9cn0pfX0pO3ZhciB6YWU9SCgoYVFuLE9hZSk9PnsidXNlIHN0cmljdCI7dmFyIExkPXFuKCksc3NyPUVsdCgpLGxzcj1YNCgpLnNsYWNrLGNzcj1YNCgpLmxvbmdlc3RQYXRoLHVzcj1VYygpLmFsZy5wcmVvcmRlcixoc3I9VWMoKS5hbGcucG9zdG9yZGVyLGZzcj1pcygpLnNpbXBsaWZ5O09hZS5leHBvcnRzPWUxO2UxLmluaXRMb3dMaW1WYWx1ZXM9Q2x0O2UxLmluaXRDdXRWYWx1ZXM9VGx0O2UxLmNhbGNDdXRWYWx1ZT1MYWU7ZTEubGVhdmVFZGdlPVJhZTtlMS5lbnRlckVkZ2U9TmFlO2UxLmV4Y2hhbmdlRWRnZXM9RGFlO2Z1bmN0aW9uIGUxKGUpe2U9ZnNyKGUpLGNzcihlKTt2YXIgdD1zc3IoZSk7Q2x0KHQpLFRsdCh0LGUpO2Zvcih2YXIgcixuO3I9UmFlKHQpOyluPU5hZSh0LGUsciksRGFlKHQsZSxyLG4pfWZ1bmN0aW9uIFRsdChlLHQpe3ZhciByPWhzcihlLGUubm9kZXMoKSk7cj1yLnNsaWNlKDAsci5sZW5ndGgtMSksTGQuZm9yRWFjaChyLGZ1bmN0aW9uKG4pe3BzcihlLHQsbil9KX1mdW5jdGlvbiBwc3IoZSx0LHIpe3ZhciBuPWUubm9kZShyKSxpPW4ucGFyZW50O2UuZWRnZShyLGkpLmN1dHZhbHVlPUxhZShlLHQscil9ZnVuY3Rpb24gTGFlKGUsdCxyKXt2YXIgbj1lLm5vZGUociksaT1uLnBhcmVudCxvPSEwLGE9dC5lZGdlKHIsaSkscz0wO3JldHVybiBhfHwobz0hMSxhPXQuZWRnZShpLHIpKSxzPWEud2VpZ2h0LExkLmZvckVhY2godC5ub2RlRWRnZXMociksZnVuY3Rpb24obCl7dmFyIGM9bC52PT09cix1PWM/bC53OmwudjtpZih1IT09aSl7dmFyIGg9Yz09PW8sZj10LmVkZ2UobCkud2VpZ2h0O2lmKHMrPWg/ZjotZixtc3IoZSxyLHUpKXt2YXIgcD1lLmVkZ2Uocix1KS5jdXR2YWx1ZTtzKz1oPy1wOnB9fX0pLHN9ZnVuY3Rpb24gQ2x0KGUsdCl7YXJndW1lbnRzLmxlbmd0aDwyJiYodD1lLm5vZGVzKClbMF0pLGthZShlLHt9LDEsdCl9ZnVuY3Rpb24ga2FlKGUsdCxyLG4saSl7dmFyIG89cixhPWUubm9kZShuKTtyZXR1cm4gdFtuXT0hMCxMZC5mb3JFYWNoKGUubmVpZ2hib3JzKG4pLGZ1bmN0aW9uKHMpe0xkLmhhcyh0LHMpfHwocj1rYWUoZSx0LHIscyxuKSl9KSxhLmxvdz1vLGEubGltPXIrKyxpP2EucGFyZW50PWk6ZGVsZXRlIGEucGFyZW50LHJ9ZnVuY3Rpb24gUmFlKGUpe3JldHVybiBMZC5maW5kKGUuZWRnZXMoKSxmdW5jdGlvbih0KXtyZXR1cm4gZS5lZGdlKHQpLmN1dHZhbHVlPDB9KX1mdW5jdGlvbiBOYWUoZSx0LHIpe3ZhciBuPXIudixpPXIudzt0Lmhhc0VkZ2UobixpKXx8KG49ci53LGk9ci52KTt2YXIgbz1lLm5vZGUobiksYT1lLm5vZGUoaSkscz1vLGw9ITE7by5saW0+YS5saW0mJihzPWEsbD0hMCk7dmFyIGM9TGQuZmlsdGVyKHQuZWRnZXMoKSxmdW5jdGlvbih1KXtyZXR1cm4gbD09PUlhZShlLGUubm9kZSh1LnYpLHMpJiZsIT09SWFlKGUsZS5ub2RlKHUudykscyl9KTtyZXR1cm4gTGQubWluQnkoYyxmdW5jdGlvbih1KXtyZXR1cm4gbHNyKHQsdSl9KX1mdW5jdGlvbiBEYWUoZSx0LHIsbil7dmFyIGk9ci52LG89ci53O2UucmVtb3ZlRWRnZShpLG8pLGUuc2V0RWRnZShuLnYsbi53LHt9KSxDbHQoZSksVGx0KGUsdCksZHNyKGUsdCl9ZnVuY3Rpb24gZHNyKGUsdCl7dmFyIHI9TGQuZmluZChlLm5vZGVzKCksZnVuY3Rpb24oaSl7cmV0dXJuIXQubm9kZShpKS5wYXJlbnR9KSxuPXVzcihlLHIpO249bi5zbGljZSgxKSxMZC5mb3JFYWNoKG4sZnVuY3Rpb24oaSl7dmFyIG89ZS5ub2RlKGkpLnBhcmVudCxhPXQuZWRnZShpLG8pLHM9ITE7YXx8KGE9dC5lZGdlKG8saSkscz0hMCksdC5ub2RlKGkpLnJhbms9dC5ub2RlKG8pLnJhbmsrKHM/YS5taW5sZW46LWEubWlubGVuKX0pfWZ1bmN0aW9uIG1zcihlLHQscil7cmV0dXJuIGUuaGFzRWRnZSh0LHIpfWZ1bmN0aW9uIElhZShlLHQscil7cmV0dXJuIHIubG93PD10LmxpbSYmdC5saW08PXIubGltfX0pO3ZhciBWYWU9SCgoc1FuLEhhZSk9PnsidXNlIHN0cmljdCI7dmFyIGdzcj1YNCgpLEJhZT1nc3IubG9uZ2VzdFBhdGgsX3NyPUVsdCgpLHlzcj16YWUoKTtIYWUuZXhwb3J0cz12c3I7ZnVuY3Rpb24gdnNyKGUpe3N3aXRjaChlLmdyYXBoKCkucmFua2VyKXtjYXNlIm5ldHdvcmstc2ltcGxleCI6RmFlKGUpO2JyZWFrO2Nhc2UidGlnaHQtdHJlZSI6YnNyKGUpO2JyZWFrO2Nhc2UibG9uZ2VzdC1wYXRoIjp4c3IoZSk7YnJlYWs7ZGVmYXVsdDpGYWUoZSl9fXZhciB4c3I9QmFlO2Z1bmN0aW9uIGJzcihlKXtCYWUoZSksX3NyKGUpfWZ1bmN0aW9uIEZhZShlKXt5c3IoZSl9fSk7dmFyIHFhZT1IKChsUW4sVWFlKT0+e3ZhciBBbHQ9cW4oKTtVYWUuZXhwb3J0cz13c3I7ZnVuY3Rpb24gd3NyKGUpe3ZhciB0PU1zcihlKTtBbHQuZm9yRWFjaChlLmdyYXBoKCkuZHVtbXlDaGFpbnMsZnVuY3Rpb24ocil7Zm9yKHZhciBuPWUubm9kZShyKSxpPW4uZWRnZU9iaixvPVNzcihlLHQsaS52LGkudyksYT1vLnBhdGgscz1vLmxjYSxsPTAsYz1hW2xdLHU9ITA7ciE9PWkudzspe2lmKG49ZS5ub2RlKHIpLHUpe2Zvcig7KGM9YVtsXSkhPT1zJiZlLm5vZGUoYykubWF4UmFuazxuLnJhbms7KWwrKztjPT09cyYmKHU9ITEpfWlmKCF1KXtmb3IoO2w8YS5sZW5ndGgtMSYmZS5ub2RlKGM9YVtsKzFdKS5taW5SYW5rPD1uLnJhbms7KWwrKztjPWFbbF19ZS5zZXRQYXJlbnQocixjKSxyPWUuc3VjY2Vzc29ycyhyKVswXX19KX1mdW5jdGlvbiBTc3IoZSx0LHIsbil7dmFyIGk9W10sbz1bXSxhPU1hdGgubWluKHRbcl0ubG93LHRbbl0ubG93KSxzPU1hdGgubWF4KHRbcl0ubGltLHRbbl0ubGltKSxsLGM7bD1yO2RvIGw9ZS5wYXJlbnQobCksaS5wdXNoKGwpO3doaWxlKGwmJih0W2xdLmxvdz5hfHxzPnRbbF0ubGltKSk7Zm9yKGM9bCxsPW47KGw9ZS5wYXJlbnQobCkpIT09Yzspby5wdXNoKGwpO3JldHVybntwYXRoOmkuY29uY2F0KG8ucmV2ZXJzZSgpKSxsY2E6Y319ZnVuY3Rpb24gTXNyKGUpe3ZhciB0PXt9LHI9MDtmdW5jdGlvbiBuKGkpe3ZhciBvPXI7QWx0LmZvckVhY2goZS5jaGlsZHJlbihpKSxuKSx0W2ldPXtsb3c6byxsaW06cisrfX1yZXR1cm4gQWx0LmZvckVhY2goZS5jaGlsZHJlbigpLG4pLHR9fSk7dmFyIFlhZT1IKChjUW4sV2FlKT0+e3ZhciBrZD1xbigpLFBsdD1pcygpO1dhZS5leHBvcnRzPXtydW46RXNyLGNsZWFudXA6QXNyfTtmdW5jdGlvbiBFc3IoZSl7dmFyIHQ9UGx0LmFkZER1bW15Tm9kZShlLCJyb290Iix7fSwiX3Jvb3QiKSxyPVRzcihlKSxuPWtkLm1heChrZC52YWx1ZXMocikpLTEsaT0yKm4rMTtlLmdyYXBoKCkubmVzdGluZ1Jvb3Q9dCxrZC5mb3JFYWNoKGUuZWRnZXMoKSxmdW5jdGlvbihhKXtlLmVkZ2UoYSkubWlubGVuKj1pfSk7dmFyIG89Q3NyKGUpKzE7a2QuZm9yRWFjaChlLmNoaWxkcmVuKCksZnVuY3Rpb24oYSl7R2FlKGUsdCxpLG8sbixyLGEpfSksZS5ncmFwaCgpLm5vZGVSYW5rRmFjdG9yPWl9ZnVuY3Rpb24gR2FlKGUsdCxyLG4saSxvLGEpe3ZhciBzPWUuY2hpbGRyZW4oYSk7aWYoIXMubGVuZ3RoKXthIT09dCYmZS5zZXRFZGdlKHQsYSx7d2VpZ2h0OjAsbWlubGVuOnJ9KTtyZXR1cm59dmFyIGw9UGx0LmFkZEJvcmRlck5vZGUoZSwiX2J0IiksYz1QbHQuYWRkQm9yZGVyTm9kZShlLCJfYmIiKSx1PWUubm9kZShhKTtlLnNldFBhcmVudChsLGEpLHUuYm9yZGVyVG9wPWwsZS5zZXRQYXJlbnQoYyxhKSx1LmJvcmRlckJvdHRvbT1jLGtkLmZvckVhY2gocyxmdW5jdGlvbihoKXtHYWUoZSx0LHIsbixpLG8saCk7dmFyIGY9ZS5ub2RlKGgpLHA9Zi5ib3JkZXJUb3A/Zi5ib3JkZXJUb3A6aCxkPWYuYm9yZGVyQm90dG9tP2YuYm9yZGVyQm90dG9tOmgsZz1mLmJvcmRlclRvcD9uOjIqbixfPXAhPT1kPzE6aS1vW2FdKzE7ZS5zZXRFZGdlKGwscCx7d2VpZ2h0OmcsbWlubGVuOl8sbmVzdGluZ0VkZ2U6ITB9KSxlLnNldEVkZ2UoZCxjLHt3ZWlnaHQ6ZyxtaW5sZW46XyxuZXN0aW5nRWRnZTohMH0pfSksZS5wYXJlbnQoYSl8fGUuc2V0RWRnZSh0LGwse3dlaWdodDowLG1pbmxlbjppK29bYV19KX1mdW5jdGlvbiBUc3IoZSl7dmFyIHQ9e307ZnVuY3Rpb24gcihuLGkpe3ZhciBvPWUuY2hpbGRyZW4obik7byYmby5sZW5ndGgmJmtkLmZvckVhY2gobyxmdW5jdGlvbihhKXtyKGEsaSsxKX0pLHRbbl09aX1yZXR1cm4ga2QuZm9yRWFjaChlLmNoaWxkcmVuKCksZnVuY3Rpb24obil7cihuLDEpfSksdH1mdW5jdGlvbiBDc3IoZSl7cmV0dXJuIGtkLnJlZHVjZShlLmVkZ2VzKCksZnVuY3Rpb24odCxyKXtyZXR1cm4gdCtlLmVkZ2Uocikud2VpZ2h0fSwwKX1mdW5jdGlvbiBBc3IoZSl7dmFyIHQ9ZS5ncmFwaCgpO2UucmVtb3ZlTm9kZSh0Lm5lc3RpbmdSb290KSxkZWxldGUgdC5uZXN0aW5nUm9vdCxrZC5mb3JFYWNoKGUuZWRnZXMoKSxmdW5jdGlvbihyKXt2YXIgbj1lLmVkZ2Uocik7bi5uZXN0aW5nRWRnZSYmZS5yZW1vdmVFZGdlKHIpfSl9fSk7dmFyICRhZT1IKCh1UW4sWGFlKT0+e3ZhciBJbHQ9cW4oKSxQc3I9aXMoKTtYYWUuZXhwb3J0cz1Jc3I7ZnVuY3Rpb24gSXNyKGUpe2Z1bmN0aW9uIHQocil7dmFyIG49ZS5jaGlsZHJlbihyKSxpPWUubm9kZShyKTtpZihuLmxlbmd0aCYmSWx0LmZvckVhY2gobix0KSxJbHQuaGFzKGksIm1pblJhbmsiKSl7aS5ib3JkZXJMZWZ0PVtdLGkuYm9yZGVyUmlnaHQ9W107Zm9yKHZhciBvPWkubWluUmFuayxhPWkubWF4UmFuaysxO288YTsrK28pamFlKGUsImJvcmRlckxlZnQiLCJfYmwiLHIsaSxvKSxqYWUoZSwiYm9yZGVyUmlnaHQiLCJfYnIiLHIsaSxvKX19SWx0LmZvckVhY2goZS5jaGlsZHJlbigpLHQpfWZ1bmN0aW9uIGphZShlLHQscixuLGksbyl7dmFyIGE9e3dpZHRoOjAsaGVpZ2h0OjAscmFuazpvLGJvcmRlclR5cGU6dH0scz1pW3RdW28tMV0sbD1Qc3IuYWRkRHVtbXlOb2RlKGUsImJvcmRlciIsYSxyKTtpW3RdW29dPWwsZS5zZXRQYXJlbnQobCxuKSxzJiZlLnNldEVkZ2UocyxsLHt3ZWlnaHQ6MX0pfX0pO3ZhciBRYWU9SCgoaFFuLEphZSk9PnsidXNlIHN0cmljdCI7dmFyIHFmPXFuKCk7SmFlLmV4cG9ydHM9e2FkanVzdDpMc3IsdW5kbzprc3J9O2Z1bmN0aW9uIExzcihlKXt2YXIgdD1lLmdyYXBoKCkucmFua2Rpci50b0xvd2VyQ2FzZSgpOyh0PT09ImxyInx8dD09PSJybCIpJiZaYWUoZSl9ZnVuY3Rpb24ga3NyKGUpe3ZhciB0PWUuZ3JhcGgoKS5yYW5rZGlyLnRvTG93ZXJDYXNlKCk7KHQ9PT0iYnQifHx0PT09InJsIikmJlJzcihlKSwodD09PSJsciJ8fHQ9PT0icmwiKSYmKE5zcihlKSxaYWUoZSkpfWZ1bmN0aW9uIFphZShlKXtxZi5mb3JFYWNoKGUubm9kZXMoKSxmdW5jdGlvbih0KXtLYWUoZS5ub2RlKHQpKX0pLHFmLmZvckVhY2goZS5lZGdlcygpLGZ1bmN0aW9uKHQpe0thZShlLmVkZ2UodCkpfSl9ZnVuY3Rpb24gS2FlKGUpe3ZhciB0PWUud2lkdGg7ZS53aWR0aD1lLmhlaWdodCxlLmhlaWdodD10fWZ1bmN0aW9uIFJzcihlKXtxZi5mb3JFYWNoKGUubm9kZXMoKSxmdW5jdGlvbih0KXtMbHQoZS5ub2RlKHQpKX0pLHFmLmZvckVhY2goZS5lZGdlcygpLGZ1bmN0aW9uKHQpe3ZhciByPWUuZWRnZSh0KTtxZi5mb3JFYWNoKHIucG9pbnRzLExsdCkscWYuaGFzKHIsInkiKSYmTGx0KHIpfSl9ZnVuY3Rpb24gTGx0KGUpe2UueT0tZS55fWZ1bmN0aW9uIE5zcihlKXtxZi5mb3JFYWNoKGUubm9kZXMoKSxmdW5jdGlvbih0KXtrbHQoZS5ub2RlKHQpKX0pLHFmLmZvckVhY2goZS5lZGdlcygpLGZ1bmN0aW9uKHQpe3ZhciByPWUuZWRnZSh0KTtxZi5mb3JFYWNoKHIucG9pbnRzLGtsdCkscWYuaGFzKHIsIngiKSYma2x0KHIpfSl9ZnVuY3Rpb24ga2x0KGUpe3ZhciB0PWUueDtlLng9ZS55LGUueT10fX0pO3ZhciBlc2U9SCgoZlFuLHRzZSk9PnsidXNlIHN0cmljdCI7dmFyIFJkPXFuKCk7dHNlLmV4cG9ydHM9RHNyO2Z1bmN0aW9uIERzcihlKXt2YXIgdD17fSxyPVJkLmZpbHRlcihlLm5vZGVzKCksZnVuY3Rpb24ocyl7cmV0dXJuIWUuY2hpbGRyZW4ocykubGVuZ3RofSksbj1SZC5tYXgoUmQubWFwKHIsZnVuY3Rpb24ocyl7cmV0dXJuIGUubm9kZShzKS5yYW5rfSkpLGk9UmQubWFwKFJkLnJhbmdlKG4rMSksZnVuY3Rpb24oKXtyZXR1cm5bXX0pO2Z1bmN0aW9uIG8ocyl7aWYoIVJkLmhhcyh0LHMpKXt0W3NdPSEwO3ZhciBsPWUubm9kZShzKTtpW2wucmFua10ucHVzaChzKSxSZC5mb3JFYWNoKGUuc3VjY2Vzc29ycyhzKSxvKX19dmFyIGE9UmQuc29ydEJ5KHIsZnVuY3Rpb24ocyl7cmV0dXJuIGUubm9kZShzKS5yYW5rfSk7cmV0dXJuIFJkLmZvckVhY2goYSxvKSxpfX0pO3ZhciBuc2U9SCgocFFuLHJzZSk9PnsidXNlIHN0cmljdCI7dmFyIGYwPXFuKCk7cnNlLmV4cG9ydHM9T3NyO2Z1bmN0aW9uIE9zcihlLHQpe2Zvcih2YXIgcj0wLG49MTtuPHQubGVuZ3RoOysrbilyKz16c3IoZSx0W24tMV0sdFtuXSk7cmV0dXJuIHJ9ZnVuY3Rpb24genNyKGUsdCxyKXtmb3IodmFyIG49ZjAuemlwT2JqZWN0KHIsZjAubWFwKHIsZnVuY3Rpb24oYyx1KXtyZXR1cm4gdX0pKSxpPWYwLmZsYXR0ZW4oZjAubWFwKHQsZnVuY3Rpb24oYyl7cmV0dXJuIGYwLnNvcnRCeShmMC5tYXAoZS5vdXRFZGdlcyhjKSxmdW5jdGlvbih1KXtyZXR1cm57cG9zOm5bdS53XSx3ZWlnaHQ6ZS5lZGdlKHUpLndlaWdodH19KSwicG9zIil9KSwhMCksbz0xO288ci5sZW5ndGg7KW88PD0xO3ZhciBhPTIqby0xO28tPTE7dmFyIHM9ZjAubWFwKG5ldyBBcnJheShhKSxmdW5jdGlvbigpe3JldHVybiAwfSksbD0wO3JldHVybiBmMC5mb3JFYWNoKGkuZm9yRWFjaChmdW5jdGlvbihjKXt2YXIgdT1jLnBvcytvO3NbdV0rPWMud2VpZ2h0O2Zvcih2YXIgaD0wO3U+MDspdSUyJiYoaCs9c1t1KzFdKSx1PXUtMT4+MSxzW3VdKz1jLndlaWdodDtsKz1jLndlaWdodCpofSkpLGx9fSk7dmFyIGFzZT1IKChkUW4sb3NlKT0+e3ZhciBpc2U9cW4oKTtvc2UuZXhwb3J0cz1Gc3I7ZnVuY3Rpb24gRnNyKGUsdCl7cmV0dXJuIGlzZS5tYXAodCxmdW5jdGlvbihyKXt2YXIgbj1lLmluRWRnZXMocik7aWYobi5sZW5ndGgpe3ZhciBpPWlzZS5yZWR1Y2UobixmdW5jdGlvbihvLGEpe3ZhciBzPWUuZWRnZShhKSxsPWUubm9kZShhLnYpO3JldHVybntzdW06by5zdW0rcy53ZWlnaHQqbC5vcmRlcix3ZWlnaHQ6by53ZWlnaHQrcy53ZWlnaHR9fSx7c3VtOjAsd2VpZ2h0OjB9KTtyZXR1cm57djpyLGJhcnljZW50ZXI6aS5zdW0vaS53ZWlnaHQsd2VpZ2h0Omkud2VpZ2h0fX1lbHNlIHJldHVybnt2OnJ9fSl9fSk7dmFyIGxzZT1IKChtUW4sc3NlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgQ2w9cW4oKTtzc2UuZXhwb3J0cz1Cc3I7ZnVuY3Rpb24gQnNyKGUsdCl7dmFyIHI9e307Q2wuZm9yRWFjaChlLGZ1bmN0aW9uKGksbyl7dmFyIGE9cltpLnZdPXtpbmRlZ3JlZTowLGluOltdLG91dDpbXSx2czpbaS52XSxpOm99O0NsLmlzVW5kZWZpbmVkKGkuYmFyeWNlbnRlcil8fChhLmJhcnljZW50ZXI9aS5iYXJ5Y2VudGVyLGEud2VpZ2h0PWkud2VpZ2h0KX0pLENsLmZvckVhY2godC5lZGdlcygpLGZ1bmN0aW9uKGkpe3ZhciBvPXJbaS52XSxhPXJbaS53XTshQ2wuaXNVbmRlZmluZWQobykmJiFDbC5pc1VuZGVmaW5lZChhKSYmKGEuaW5kZWdyZWUrKyxvLm91dC5wdXNoKHJbaS53XSkpfSk7dmFyIG49Q2wuZmlsdGVyKHIsZnVuY3Rpb24oaSl7cmV0dXJuIWkuaW5kZWdyZWV9KTtyZXR1cm4gSHNyKG4pfWZ1bmN0aW9uIEhzcihlKXt2YXIgdD1bXTtmdW5jdGlvbiByKG8pe3JldHVybiBmdW5jdGlvbihhKXthLm1lcmdlZHx8KENsLmlzVW5kZWZpbmVkKGEuYmFyeWNlbnRlcil8fENsLmlzVW5kZWZpbmVkKG8uYmFyeWNlbnRlcil8fGEuYmFyeWNlbnRlcj49by5iYXJ5Y2VudGVyKSYmVnNyKG8sYSl9fWZ1bmN0aW9uIG4obyl7cmV0dXJuIGZ1bmN0aW9uKGEpe2EuaW4ucHVzaChvKSwtLWEuaW5kZWdyZWU9PT0wJiZlLnB1c2goYSl9fWZvcig7ZS5sZW5ndGg7KXt2YXIgaT1lLnBvcCgpO3QucHVzaChpKSxDbC5mb3JFYWNoKGkuaW4ucmV2ZXJzZSgpLHIoaSkpLENsLmZvckVhY2goaS5vdXQsbihpKSl9cmV0dXJuIENsLm1hcChDbC5maWx0ZXIodCxmdW5jdGlvbihvKXtyZXR1cm4hby5tZXJnZWR9KSxmdW5jdGlvbihvKXtyZXR1cm4gQ2wucGljayhvLFsidnMiLCJpIiwiYmFyeWNlbnRlciIsIndlaWdodCJdKX0pfWZ1bmN0aW9uIFZzcihlLHQpe3ZhciByPTAsbj0wO2Uud2VpZ2h0JiYocis9ZS5iYXJ5Y2VudGVyKmUud2VpZ2h0LG4rPWUud2VpZ2h0KSx0LndlaWdodCYmKHIrPXQuYmFyeWNlbnRlcip0LndlaWdodCxuKz10LndlaWdodCksZS52cz10LnZzLmNvbmNhdChlLnZzKSxlLmJhcnljZW50ZXI9ci9uLGUud2VpZ2h0PW4sZS5pPU1hdGgubWluKHQuaSxlLmkpLHQubWVyZ2VkPSEwfX0pO3ZhciBoc2U9SCgoZ1FuLHVzZSk9Pnt2YXIgJDQ9cW4oKSxVc3I9aXMoKTt1c2UuZXhwb3J0cz1xc3I7ZnVuY3Rpb24gcXNyKGUsdCl7dmFyIHI9VXNyLnBhcnRpdGlvbihlLGZ1bmN0aW9uKHUpe3JldHVybiAkNC5oYXModSwiYmFyeWNlbnRlciIpfSksbj1yLmxocyxpPSQ0LnNvcnRCeShyLnJocyxmdW5jdGlvbih1KXtyZXR1cm4tdS5pfSksbz1bXSxhPTAscz0wLGw9MDtuLnNvcnQoR3NyKCEhdCkpLGw9Y3NlKG8saSxsKSwkNC5mb3JFYWNoKG4sZnVuY3Rpb24odSl7bCs9dS52cy5sZW5ndGgsby5wdXNoKHUudnMpLGErPXUuYmFyeWNlbnRlcip1LndlaWdodCxzKz11LndlaWdodCxsPWNzZShvLGksbCl9KTt2YXIgYz17dnM6JDQuZmxhdHRlbihvLCEwKX07cmV0dXJuIHMmJihjLmJhcnljZW50ZXI9YS9zLGMud2VpZ2h0PXMpLGN9ZnVuY3Rpb24gY3NlKGUsdCxyKXtmb3IodmFyIG47dC5sZW5ndGgmJihuPSQ0Lmxhc3QodCkpLmk8PXI7KXQucG9wKCksZS5wdXNoKG4udnMpLHIrKztyZXR1cm4gcn1mdW5jdGlvbiBHc3IoZSl7cmV0dXJuIGZ1bmN0aW9uKHQscil7cmV0dXJuIHQuYmFyeWNlbnRlcjxyLmJhcnljZW50ZXI/LTE6dC5iYXJ5Y2VudGVyPnIuYmFyeWNlbnRlcj8xOmU/ci5pLXQuaTp0Lmktci5pfX19KTt2YXIgZHNlPUgoKF9Rbixwc2UpPT57dmFyIHAwPXFuKCksV3NyPWFzZSgpLFlzcj1sc2UoKSxqc3I9aHNlKCk7cHNlLmV4cG9ydHM9ZnNlO2Z1bmN0aW9uIGZzZShlLHQscixuKXt2YXIgaT1lLmNoaWxkcmVuKHQpLG89ZS5ub2RlKHQpLGE9bz9vLmJvcmRlckxlZnQ6dm9pZCAwLHM9bz9vLmJvcmRlclJpZ2h0OnZvaWQgMCxsPXt9O2EmJihpPXAwLmZpbHRlcihpLGZ1bmN0aW9uKGQpe3JldHVybiBkIT09YSYmZCE9PXN9KSk7dmFyIGM9V3NyKGUsaSk7cDAuZm9yRWFjaChjLGZ1bmN0aW9uKGQpe2lmKGUuY2hpbGRyZW4oZC52KS5sZW5ndGgpe3ZhciBnPWZzZShlLGQudixyLG4pO2xbZC52XT1nLHAwLmhhcyhnLCJiYXJ5Y2VudGVyIikmJiRzcihkLGcpfX0pO3ZhciB1PVlzcihjLHIpO1hzcih1LGwpO3ZhciBoPWpzcih1LG4pO2lmKGEmJihoLnZzPXAwLmZsYXR0ZW4oW2EsaC52cyxzXSwhMCksZS5wcmVkZWNlc3NvcnMoYSkubGVuZ3RoKSl7dmFyIGY9ZS5ub2RlKGUucHJlZGVjZXNzb3JzKGEpWzBdKSxwPWUubm9kZShlLnByZWRlY2Vzc29ycyhzKVswXSk7cDAuaGFzKGgsImJhcnljZW50ZXIiKXx8KGguYmFyeWNlbnRlcj0wLGgud2VpZ2h0PTApLGguYmFyeWNlbnRlcj0oaC5iYXJ5Y2VudGVyKmgud2VpZ2h0K2Yub3JkZXIrcC5vcmRlcikvKGgud2VpZ2h0KzIpLGgud2VpZ2h0Kz0yfXJldHVybiBofWZ1bmN0aW9uIFhzcihlLHQpe3AwLmZvckVhY2goZSxmdW5jdGlvbihyKXtyLnZzPXAwLmZsYXR0ZW4oci52cy5tYXAoZnVuY3Rpb24obil7cmV0dXJuIHRbbl0/dFtuXS52czpufSksITApfSl9ZnVuY3Rpb24gJHNyKGUsdCl7cDAuaXNVbmRlZmluZWQoZS5iYXJ5Y2VudGVyKT8oZS5iYXJ5Y2VudGVyPXQuYmFyeWNlbnRlcixlLndlaWdodD10LndlaWdodCk6KGUuYmFyeWNlbnRlcj0oZS5iYXJ5Y2VudGVyKmUud2VpZ2h0K3QuYmFyeWNlbnRlcip0LndlaWdodCkvKGUud2VpZ2h0K3Qud2VpZ2h0KSxlLndlaWdodCs9dC53ZWlnaHQpfX0pO3ZhciBnc2U9SCgoeVFuLG1zZSk9Pnt2YXIgSzQ9cW4oKSxLc3I9VWMoKS5HcmFwaDttc2UuZXhwb3J0cz1ac3I7ZnVuY3Rpb24gWnNyKGUsdCxyKXt2YXIgbj1Kc3IoZSksaT1uZXcgS3NyKHtjb21wb3VuZDohMH0pLnNldEdyYXBoKHtyb290Om59KS5zZXREZWZhdWx0Tm9kZUxhYmVsKGZ1bmN0aW9uKG8pe3JldHVybiBlLm5vZGUobyl9KTtyZXR1cm4gSzQuZm9yRWFjaChlLm5vZGVzKCksZnVuY3Rpb24obyl7dmFyIGE9ZS5ub2RlKG8pLHM9ZS5wYXJlbnQobyk7KGEucmFuaz09PXR8fGEubWluUmFuazw9dCYmdDw9YS5tYXhSYW5rKSYmKGkuc2V0Tm9kZShvKSxpLnNldFBhcmVudChvLHN8fG4pLEs0LmZvckVhY2goZVtyXShvKSxmdW5jdGlvbihsKXt2YXIgYz1sLnY9PT1vP2wudzpsLnYsdT1pLmVkZ2UoYyxvKSxoPUs0LmlzVW5kZWZpbmVkKHUpPzA6dS53ZWlnaHQ7aS5zZXRFZGdlKGMsbyx7d2VpZ2h0OmUuZWRnZShsKS53ZWlnaHQraH0pfSksSzQuaGFzKGEsIm1pblJhbmsiKSYmaS5zZXROb2RlKG8se2JvcmRlckxlZnQ6YS5ib3JkZXJMZWZ0W3RdLGJvcmRlclJpZ2h0OmEuYm9yZGVyUmlnaHRbdF19KSl9KSxpfWZ1bmN0aW9uIEpzcihlKXtmb3IodmFyIHQ7ZS5oYXNOb2RlKHQ9SzQudW5pcXVlSWQoIl9yb290IikpOyk7cmV0dXJuIHR9fSk7dmFyIHlzZT1IKCh2UW4sX3NlKT0+e3ZhciBRc3I9cW4oKTtfc2UuZXhwb3J0cz10bHI7ZnVuY3Rpb24gdGxyKGUsdCxyKXt2YXIgbj17fSxpO1Fzci5mb3JFYWNoKHIsZnVuY3Rpb24obyl7Zm9yKHZhciBhPWUucGFyZW50KG8pLHMsbDthOyl7aWYocz1lLnBhcmVudChhKSxzPyhsPW5bc10sbltzXT1hKToobD1pLGk9YSksbCYmbCE9PWEpe3Quc2V0RWRnZShsLGEpO3JldHVybn1hPXN9fSl9fSk7dmFyIFNzZT1IKCh4UW4sd3NlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgZDA9cW4oKSxlbHI9ZXNlKCkscmxyPW5zZSgpLG5scj1kc2UoKSxpbHI9Z3NlKCksb2xyPXlzZSgpLGFscj1VYygpLkdyYXBoLHZzZT1pcygpO3dzZS5leHBvcnRzPXNscjtmdW5jdGlvbiBzbHIoZSl7dmFyIHQ9dnNlLm1heFJhbmsoZSkscj14c2UoZSxkMC5yYW5nZSgxLHQrMSksImluRWRnZXMiKSxuPXhzZShlLGQwLnJhbmdlKHQtMSwtMSwtMSksIm91dEVkZ2VzIiksaT1lbHIoZSk7YnNlKGUsaSk7Zm9yKHZhciBvPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxhLHM9MCxsPTA7bDw0OysrcywrK2wpe2xscihzJTI/cjpuLHMlND49MiksaT12c2UuYnVpbGRMYXllck1hdHJpeChlKTt2YXIgYz1ybHIoZSxpKTtjPG8mJihsPTAsYT1kMC5jbG9uZURlZXAoaSksbz1jKX1ic2UoZSxhKX1mdW5jdGlvbiB4c2UoZSx0LHIpe3JldHVybiBkMC5tYXAodCxmdW5jdGlvbihuKXtyZXR1cm4gaWxyKGUsbixyKX0pfWZ1bmN0aW9uIGxscihlLHQpe3ZhciByPW5ldyBhbHI7ZDAuZm9yRWFjaChlLGZ1bmN0aW9uKG4pe3ZhciBpPW4uZ3JhcGgoKS5yb290LG89bmxyKG4saSxyLHQpO2QwLmZvckVhY2goby52cyxmdW5jdGlvbihhLHMpe24ubm9kZShhKS5vcmRlcj1zfSksb2xyKG4scixvLnZzKX0pfWZ1bmN0aW9uIGJzZShlLHQpe2QwLmZvckVhY2godCxmdW5jdGlvbihyKXtkMC5mb3JFYWNoKHIsZnVuY3Rpb24obixpKXtlLm5vZGUobikub3JkZXI9aX0pfSl9fSk7dmFyIFJzZT1IKChiUW4sa3NlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgWGU9cW4oKSxjbHI9VWMoKS5HcmFwaCx1bHI9aXMoKTtrc2UuZXhwb3J0cz17cG9zaXRpb25YOnBscixmaW5kVHlwZTFDb25mbGljdHM6TXNlLGZpbmRUeXBlMkNvbmZsaWN0czpFc2UsYWRkQ29uZmxpY3Q6Umx0LGhhc0NvbmZsaWN0OlRzZSx2ZXJ0aWNhbEFsaWdubWVudDpDc2UsaG9yaXpvbnRhbENvbXBhY3Rpb246QXNlLGFsaWduQ29vcmRpbmF0ZXM6SXNlLGZpbmRTbWFsbGVzdFdpZHRoQWxpZ25tZW50OlBzZSxiYWxhbmNlOkxzZX07ZnVuY3Rpb24gTXNlKGUsdCl7dmFyIHI9e307ZnVuY3Rpb24gbihpLG8pe3ZhciBhPTAscz0wLGw9aS5sZW5ndGgsYz1YZS5sYXN0KG8pO3JldHVybiBYZS5mb3JFYWNoKG8sZnVuY3Rpb24odSxoKXt2YXIgZj1obHIoZSx1KSxwPWY/ZS5ub2RlKGYpLm9yZGVyOmw7KGZ8fHU9PT1jKSYmKFhlLmZvckVhY2goby5zbGljZShzLGgrMSksZnVuY3Rpb24oZCl7WGUuZm9yRWFjaChlLnByZWRlY2Vzc29ycyhkKSxmdW5jdGlvbihnKXt2YXIgXz1lLm5vZGUoZykseT1fLm9yZGVyOyh5PGF8fHA8eSkmJiEoXy5kdW1teSYmZS5ub2RlKGQpLmR1bW15KSYmUmx0KHIsZyxkKX0pfSkscz1oKzEsYT1wKX0pLG99cmV0dXJuIFhlLnJlZHVjZSh0LG4pLHJ9ZnVuY3Rpb24gRXNlKGUsdCl7dmFyIHI9e307ZnVuY3Rpb24gbihvLGEscyxsLGMpe3ZhciB1O1hlLmZvckVhY2goWGUucmFuZ2UoYSxzKSxmdW5jdGlvbihoKXt1PW9baF0sZS5ub2RlKHUpLmR1bW15JiZYZS5mb3JFYWNoKGUucHJlZGVjZXNzb3JzKHUpLGZ1bmN0aW9uKGYpe3ZhciBwPWUubm9kZShmKTtwLmR1bW15JiYocC5vcmRlcjxsfHxwLm9yZGVyPmMpJiZSbHQocixmLHUpfSl9KX1mdW5jdGlvbiBpKG8sYSl7dmFyIHM9LTEsbCxjPTA7cmV0dXJuIFhlLmZvckVhY2goYSxmdW5jdGlvbih1LGgpe2lmKGUubm9kZSh1KS5kdW1teT09PSJib3JkZXIiKXt2YXIgZj1lLnByZWRlY2Vzc29ycyh1KTtmLmxlbmd0aCYmKGw9ZS5ub2RlKGZbMF0pLm9yZGVyLG4oYSxjLGgscyxsKSxjPWgscz1sKX1uKGEsYyxhLmxlbmd0aCxsLG8ubGVuZ3RoKX0pLGF9cmV0dXJuIFhlLnJlZHVjZSh0LGkpLHJ9ZnVuY3Rpb24gaGxyKGUsdCl7aWYoZS5ub2RlKHQpLmR1bW15KXJldHVybiBYZS5maW5kKGUucHJlZGVjZXNzb3JzKHQpLGZ1bmN0aW9uKHIpe3JldHVybiBlLm5vZGUocikuZHVtbXl9KX1mdW5jdGlvbiBSbHQoZSx0LHIpe2lmKHQ+cil7dmFyIG49dDt0PXIscj1ufXZhciBpPWVbdF07aXx8KGVbdF09aT17fSksaVtyXT0hMH1mdW5jdGlvbiBUc2UoZSx0LHIpe2lmKHQ+cil7dmFyIG49dDt0PXIscj1ufXJldHVybiBYZS5oYXMoZVt0XSxyKX1mdW5jdGlvbiBDc2UoZSx0LHIsbil7dmFyIGk9e30sbz17fSxhPXt9O3JldHVybiBYZS5mb3JFYWNoKHQsZnVuY3Rpb24ocyl7WGUuZm9yRWFjaChzLGZ1bmN0aW9uKGwsYyl7aVtsXT1sLG9bbF09bCxhW2xdPWN9KX0pLFhlLmZvckVhY2godCxmdW5jdGlvbihzKXt2YXIgbD0tMTtYZS5mb3JFYWNoKHMsZnVuY3Rpb24oYyl7dmFyIHU9bihjKTtpZih1Lmxlbmd0aCl7dT1YZS5zb3J0QnkodSxmdW5jdGlvbihnKXtyZXR1cm4gYVtnXX0pO2Zvcih2YXIgaD0odS5sZW5ndGgtMSkvMixmPU1hdGguZmxvb3IoaCkscD1NYXRoLmNlaWwoaCk7Zjw9cDsrK2Ype3ZhciBkPXVbZl07b1tjXT09PWMmJmw8YVtkXSYmIVRzZShyLGMsZCkmJihvW2RdPWMsb1tjXT1pW2NdPWlbZF0sbD1hW2RdKX19fSl9KSx7cm9vdDppLGFsaWduOm99fWZ1bmN0aW9uIEFzZShlLHQscixuLGkpe3ZhciBvPXt9LGE9ZmxyKGUsdCxyLGkpLHM9aT8iYm9yZGVyTGVmdCI6ImJvcmRlclJpZ2h0IjtmdW5jdGlvbiBsKGgsZil7Zm9yKHZhciBwPWEubm9kZXMoKSxkPXAucG9wKCksZz17fTtkOylnW2RdP2goZCk6KGdbZF09ITAscC5wdXNoKGQpLHA9cC5jb25jYXQoZihkKSkpLGQ9cC5wb3AoKX1mdW5jdGlvbiBjKGgpe29baF09YS5pbkVkZ2VzKGgpLnJlZHVjZShmdW5jdGlvbihmLHApe3JldHVybiBNYXRoLm1heChmLG9bcC52XSthLmVkZ2UocCkpfSwwKX1mdW5jdGlvbiB1KGgpe3ZhciBmPWEub3V0RWRnZXMoaCkucmVkdWNlKGZ1bmN0aW9uKGQsZyl7cmV0dXJuIE1hdGgubWluKGQsb1tnLnddLWEuZWRnZShnKSl9LE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkscD1lLm5vZGUoaCk7ZiE9PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSYmcC5ib3JkZXJUeXBlIT09cyYmKG9baF09TWF0aC5tYXgob1toXSxmKSl9cmV0dXJuIGwoYyxhLnByZWRlY2Vzc29ycy5iaW5kKGEpKSxsKHUsYS5zdWNjZXNzb3JzLmJpbmQoYSkpLFhlLmZvckVhY2gobixmdW5jdGlvbihoKXtvW2hdPW9bcltoXV19KSxvfWZ1bmN0aW9uIGZscihlLHQscixuKXt2YXIgaT1uZXcgY2xyLG89ZS5ncmFwaCgpLGE9ZGxyKG8ubm9kZXNlcCxvLmVkZ2VzZXAsbik7cmV0dXJuIFhlLmZvckVhY2godCxmdW5jdGlvbihzKXt2YXIgbDtYZS5mb3JFYWNoKHMsZnVuY3Rpb24oYyl7dmFyIHU9cltjXTtpZihpLnNldE5vZGUodSksbCl7dmFyIGg9cltsXSxmPWkuZWRnZShoLHUpO2kuc2V0RWRnZShoLHUsTWF0aC5tYXgoYShlLGMsbCksZnx8MCkpfWw9Y30pfSksaX1mdW5jdGlvbiBQc2UoZSx0KXtyZXR1cm4gWGUubWluQnkoWGUudmFsdWVzKHQpLGZ1bmN0aW9uKHIpe3ZhciBuPU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxpPU51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gWGUuZm9ySW4ocixmdW5jdGlvbihvLGEpe3ZhciBzPW1scihlLGEpLzI7bj1NYXRoLm1heChvK3MsbiksaT1NYXRoLm1pbihvLXMsaSl9KSxuLWl9KX1mdW5jdGlvbiBJc2UoZSx0KXt2YXIgcj1YZS52YWx1ZXModCksbj1YZS5taW4ociksaT1YZS5tYXgocik7WGUuZm9yRWFjaChbInUiLCJkIl0sZnVuY3Rpb24obyl7WGUuZm9yRWFjaChbImwiLCJyIl0sZnVuY3Rpb24oYSl7dmFyIHM9bythLGw9ZVtzXSxjO2lmKGwhPT10KXt2YXIgdT1YZS52YWx1ZXMobCk7Yz1hPT09ImwiP24tWGUubWluKHUpOmktWGUubWF4KHUpLGMmJihlW3NdPVhlLm1hcFZhbHVlcyhsLGZ1bmN0aW9uKGgpe3JldHVybiBoK2N9KSl9fSl9KX1mdW5jdGlvbiBMc2UoZSx0KXtyZXR1cm4gWGUubWFwVmFsdWVzKGUudWwsZnVuY3Rpb24ocixuKXtpZih0KXJldHVybiBlW3QudG9Mb3dlckNhc2UoKV1bbl07dmFyIGk9WGUuc29ydEJ5KFhlLm1hcChlLG4pKTtyZXR1cm4oaVsxXStpWzJdKS8yfSl9ZnVuY3Rpb24gcGxyKGUpe3ZhciB0PXVsci5idWlsZExheWVyTWF0cml4KGUpLHI9WGUubWVyZ2UoTXNlKGUsdCksRXNlKGUsdCkpLG49e30saTtYZS5mb3JFYWNoKFsidSIsImQiXSxmdW5jdGlvbihhKXtpPWE9PT0idSI/dDpYZS52YWx1ZXModCkucmV2ZXJzZSgpLFhlLmZvckVhY2goWyJsIiwiciJdLGZ1bmN0aW9uKHMpe3M9PT0iciImJihpPVhlLm1hcChpLGZ1bmN0aW9uKGgpe3JldHVybiBYZS52YWx1ZXMoaCkucmV2ZXJzZSgpfSkpO3ZhciBsPShhPT09InUiP2UucHJlZGVjZXNzb3JzOmUuc3VjY2Vzc29ycykuYmluZChlKSxjPUNzZShlLGkscixsKSx1PUFzZShlLGksYy5yb290LGMuYWxpZ24scz09PSJyIik7cz09PSJyIiYmKHU9WGUubWFwVmFsdWVzKHUsZnVuY3Rpb24oaCl7cmV0dXJuLWh9KSksblthK3NdPXV9KX0pO3ZhciBvPVBzZShlLG4pO3JldHVybiBJc2UobixvKSxMc2UobixlLmdyYXBoKCkuYWxpZ24pfWZ1bmN0aW9uIGRscihlLHQscil7cmV0dXJuIGZ1bmN0aW9uKG4saSxvKXt2YXIgYT1uLm5vZGUoaSkscz1uLm5vZGUobyksbD0wLGM7aWYobCs9YS53aWR0aC8yLFhlLmhhcyhhLCJsYWJlbHBvcyIpKXN3aXRjaChhLmxhYmVscG9zLnRvTG93ZXJDYXNlKCkpe2Nhc2UibCI6Yz0tYS53aWR0aC8yO2JyZWFrO2Nhc2UiciI6Yz1hLndpZHRoLzI7YnJlYWt9aWYoYyYmKGwrPXI/YzotYyksYz0wLGwrPShhLmR1bW15P3Q6ZSkvMixsKz0ocy5kdW1teT90OmUpLzIsbCs9cy53aWR0aC8yLFhlLmhhcyhzLCJsYWJlbHBvcyIpKXN3aXRjaChzLmxhYmVscG9zLnRvTG93ZXJDYXNlKCkpe2Nhc2UibCI6Yz1zLndpZHRoLzI7YnJlYWs7Y2FzZSJyIjpjPS1zLndpZHRoLzI7YnJlYWt9cmV0dXJuIGMmJihsKz1yP2M6LWMpLGM9MCxsfX1mdW5jdGlvbiBtbHIoZSx0KXtyZXR1cm4gZS5ub2RlKHQpLndpZHRofX0pO3ZhciBPc2U9SCgod1FuLERzZSk9PnsidXNlIHN0cmljdCI7dmFyIFo0PXFuKCksTnNlPWlzKCksZ2xyPVJzZSgpLnBvc2l0aW9uWDtEc2UuZXhwb3J0cz1fbHI7ZnVuY3Rpb24gX2xyKGUpe2U9TnNlLmFzTm9uQ29tcG91bmRHcmFwaChlKSx5bHIoZSksWjQuZm9yRWFjaChnbHIoZSksZnVuY3Rpb24odCxyKXtlLm5vZGUocikueD10fSl9ZnVuY3Rpb24geWxyKGUpe3ZhciB0PU5zZS5idWlsZExheWVyTWF0cml4KGUpLHI9ZS5ncmFwaCgpLnJhbmtzZXAsbj0wO1o0LmZvckVhY2godCxmdW5jdGlvbihpKXt2YXIgbz1aNC5tYXgoWjQubWFwKGksZnVuY3Rpb24oYSl7cmV0dXJuIGUubm9kZShhKS5oZWlnaHR9KSk7WjQuZm9yRWFjaChpLGZ1bmN0aW9uKGEpe2Uubm9kZShhKS55PW4rby8yfSksbis9bytyfSl9fSk7dmFyIFVzZT1IKChTUW4sVnNlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaXI9cW4oKSx6c2U9eGFlKCksRnNlPUNhZSgpLHZscj1WYWUoKSx4bHI9aXMoKS5ub3JtYWxpemVSYW5rcyxibHI9cWFlKCksd2xyPWlzKCkucmVtb3ZlRW1wdHlSYW5rcyxCc2U9WWFlKCksU2xyPSRhZSgpLEhzZT1RYWUoKSxNbHI9U3NlKCksRWxyPU9zZSgpLG0wPWlzKCksVGxyPVVjKCkuR3JhcGg7VnNlLmV4cG9ydHM9Q2xyO2Z1bmN0aW9uIENscihlLHQpe3ZhciByPXQmJnQuZGVidWdUaW1pbmc/bTAudGltZTptMC5ub3RpbWU7cigibGF5b3V0IixmdW5jdGlvbigpe3ZhciBuPXIoIiAgYnVpbGRMYXlvdXRHcmFwaCIsZnVuY3Rpb24oKXtyZXR1cm4gRmxyKGUpfSk7cigiICBydW5MYXlvdXQiLGZ1bmN0aW9uKCl7QWxyKG4scil9KSxyKCIgIHVwZGF0ZUlucHV0R3JhcGgiLGZ1bmN0aW9uKCl7UGxyKGUsbil9KX0pfWZ1bmN0aW9uIEFscihlLHQpe3QoIiAgICBtYWtlU3BhY2VGb3JFZGdlTGFiZWxzIixmdW5jdGlvbigpe0JscihlKX0pLHQoIiAgICByZW1vdmVTZWxmRWRnZXMiLGZ1bmN0aW9uKCl7WGxyKGUpfSksdCgiICAgIGFjeWNsaWMiLGZ1bmN0aW9uKCl7enNlLnJ1bihlKX0pLHQoIiAgICBuZXN0aW5nR3JhcGgucnVuIixmdW5jdGlvbigpe0JzZS5ydW4oZSl9KSx0KCIgICAgcmFuayIsZnVuY3Rpb24oKXt2bHIobTAuYXNOb25Db21wb3VuZEdyYXBoKGUpKX0pLHQoIiAgICBpbmplY3RFZGdlTGFiZWxQcm94aWVzIixmdW5jdGlvbigpe0hscihlKX0pLHQoIiAgICByZW1vdmVFbXB0eVJhbmtzIixmdW5jdGlvbigpe3dscihlKX0pLHQoIiAgICBuZXN0aW5nR3JhcGguY2xlYW51cCIsZnVuY3Rpb24oKXtCc2UuY2xlYW51cChlKX0pLHQoIiAgICBub3JtYWxpemVSYW5rcyIsZnVuY3Rpb24oKXt4bHIoZSl9KSx0KCIgICAgYXNzaWduUmFua01pbk1heCIsZnVuY3Rpb24oKXtWbHIoZSl9KSx0KCIgICAgcmVtb3ZlRWRnZUxhYmVsUHJveGllcyIsZnVuY3Rpb24oKXtVbHIoZSl9KSx0KCIgICAgbm9ybWFsaXplLnJ1biIsZnVuY3Rpb24oKXtGc2UucnVuKGUpfSksdCgiICAgIHBhcmVudER1bW15Q2hhaW5zIixmdW5jdGlvbigpe2JscihlKX0pLHQoIiAgICBhZGRCb3JkZXJTZWdtZW50cyIsZnVuY3Rpb24oKXtTbHIoZSl9KSx0KCIgICAgb3JkZXIiLGZ1bmN0aW9uKCl7TWxyKGUpfSksdCgiICAgIGluc2VydFNlbGZFZGdlcyIsZnVuY3Rpb24oKXskbHIoZSl9KSx0KCIgICAgYWRqdXN0Q29vcmRpbmF0ZVN5c3RlbSIsZnVuY3Rpb24oKXtIc2UuYWRqdXN0KGUpfSksdCgiICAgIHBvc2l0aW9uIixmdW5jdGlvbigpe0VscihlKX0pLHQoIiAgICBwb3NpdGlvblNlbGZFZGdlcyIsZnVuY3Rpb24oKXtLbHIoZSl9KSx0KCIgICAgcmVtb3ZlQm9yZGVyTm9kZXMiLGZ1bmN0aW9uKCl7amxyKGUpfSksdCgiICAgIG5vcm1hbGl6ZS51bmRvIixmdW5jdGlvbigpe0ZzZS51bmRvKGUpfSksdCgiICAgIGZpeHVwRWRnZUxhYmVsQ29vcmRzIixmdW5jdGlvbigpe1dscihlKX0pLHQoIiAgICB1bmRvQ29vcmRpbmF0ZVN5c3RlbSIsZnVuY3Rpb24oKXtIc2UudW5kbyhlKX0pLHQoIiAgICB0cmFuc2xhdGVHcmFwaCIsZnVuY3Rpb24oKXtxbHIoZSl9KSx0KCIgICAgYXNzaWduTm9kZUludGVyc2VjdHMiLGZ1bmN0aW9uKCl7R2xyKGUpfSksdCgiICAgIHJldmVyc2VQb2ludHMiLGZ1bmN0aW9uKCl7WWxyKGUpfSksdCgiICAgIGFjeWNsaWMudW5kbyIsZnVuY3Rpb24oKXt6c2UudW5kbyhlKX0pfWZ1bmN0aW9uIFBscihlLHQpe2lyLmZvckVhY2goZS5ub2RlcygpLGZ1bmN0aW9uKHIpe3ZhciBuPWUubm9kZShyKSxpPXQubm9kZShyKTtuJiYobi54PWkueCxuLnk9aS55LHQuY2hpbGRyZW4ocikubGVuZ3RoJiYobi53aWR0aD1pLndpZHRoLG4uaGVpZ2h0PWkuaGVpZ2h0KSl9KSxpci5mb3JFYWNoKGUuZWRnZXMoKSxmdW5jdGlvbihyKXt2YXIgbj1lLmVkZ2UociksaT10LmVkZ2Uocik7bi5wb2ludHM9aS5wb2ludHMsaXIuaGFzKGksIngiKSYmKG4ueD1pLngsbi55PWkueSl9KSxlLmdyYXBoKCkud2lkdGg9dC5ncmFwaCgpLndpZHRoLGUuZ3JhcGgoKS5oZWlnaHQ9dC5ncmFwaCgpLmhlaWdodH12YXIgSWxyPVsibm9kZXNlcCIsImVkZ2VzZXAiLCJyYW5rc2VwIiwibWFyZ2lueCIsIm1hcmdpbnkiXSxMbHI9e3JhbmtzZXA6NTAsZWRnZXNlcDoyMCxub2Rlc2VwOjUwLHJhbmtkaXI6InRiIn0sa2xyPVsiYWN5Y2xpY2VyIiwicmFua2VyIiwicmFua2RpciIsImFsaWduIl0sUmxyPVsid2lkdGgiLCJoZWlnaHQiXSxObHI9e3dpZHRoOjAsaGVpZ2h0OjB9LERscj1bIm1pbmxlbiIsIndlaWdodCIsIndpZHRoIiwiaGVpZ2h0IiwibGFiZWxvZmZzZXQiXSxPbHI9e21pbmxlbjoxLHdlaWdodDoxLHdpZHRoOjAsaGVpZ2h0OjAsbGFiZWxvZmZzZXQ6MTAsbGFiZWxwb3M6InIifSx6bHI9WyJsYWJlbHBvcyJdO2Z1bmN0aW9uIEZscihlKXt2YXIgdD1uZXcgVGxyKHttdWx0aWdyYXBoOiEwLGNvbXBvdW5kOiEwfSkscj1EbHQoZS5ncmFwaCgpKTtyZXR1cm4gdC5zZXRHcmFwaChpci5tZXJnZSh7fSxMbHIsTmx0KHIsSWxyKSxpci5waWNrKHIsa2xyKSkpLGlyLmZvckVhY2goZS5ub2RlcygpLGZ1bmN0aW9uKG4pe3ZhciBpPURsdChlLm5vZGUobikpO3Quc2V0Tm9kZShuLGlyLmRlZmF1bHRzKE5sdChpLFJsciksTmxyKSksdC5zZXRQYXJlbnQobixlLnBhcmVudChuKSl9KSxpci5mb3JFYWNoKGUuZWRnZXMoKSxmdW5jdGlvbihuKXt2YXIgaT1EbHQoZS5lZGdlKG4pKTt0LnNldEVkZ2Uobixpci5tZXJnZSh7fSxPbHIsTmx0KGksRGxyKSxpci5waWNrKGksemxyKSkpfSksdH1mdW5jdGlvbiBCbHIoZSl7dmFyIHQ9ZS5ncmFwaCgpO3QucmFua3NlcC89Mixpci5mb3JFYWNoKGUuZWRnZXMoKSxmdW5jdGlvbihyKXt2YXIgbj1lLmVkZ2Uocik7bi5taW5sZW4qPTIsbi5sYWJlbHBvcy50b0xvd2VyQ2FzZSgpIT09ImMiJiYodC5yYW5rZGlyPT09IlRCInx8dC5yYW5rZGlyPT09IkJUIj9uLndpZHRoKz1uLmxhYmVsb2Zmc2V0Om4uaGVpZ2h0Kz1uLmxhYmVsb2Zmc2V0KX0pfWZ1bmN0aW9uIEhscihlKXtpci5mb3JFYWNoKGUuZWRnZXMoKSxmdW5jdGlvbih0KXt2YXIgcj1lLmVkZ2UodCk7aWYoci53aWR0aCYmci5oZWlnaHQpe3ZhciBuPWUubm9kZSh0LnYpLGk9ZS5ub2RlKHQudyksbz17cmFuazooaS5yYW5rLW4ucmFuaykvMituLnJhbmssZTp0fTttMC5hZGREdW1teU5vZGUoZSwiZWRnZS1wcm94eSIsbywiX2VwIil9fSl9ZnVuY3Rpb24gVmxyKGUpe3ZhciB0PTA7aXIuZm9yRWFjaChlLm5vZGVzKCksZnVuY3Rpb24ocil7dmFyIG49ZS5ub2RlKHIpO24uYm9yZGVyVG9wJiYobi5taW5SYW5rPWUubm9kZShuLmJvcmRlclRvcCkucmFuayxuLm1heFJhbms9ZS5ub2RlKG4uYm9yZGVyQm90dG9tKS5yYW5rLHQ9aXIubWF4KHQsbi5tYXhSYW5rKSl9KSxlLmdyYXBoKCkubWF4UmFuaz10fWZ1bmN0aW9uIFVscihlKXtpci5mb3JFYWNoKGUubm9kZXMoKSxmdW5jdGlvbih0KXt2YXIgcj1lLm5vZGUodCk7ci5kdW1teT09PSJlZGdlLXByb3h5IiYmKGUuZWRnZShyLmUpLmxhYmVsUmFuaz1yLnJhbmssZS5yZW1vdmVOb2RlKHQpKX0pfWZ1bmN0aW9uIHFscihlKXt2YXIgdD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkscj0wLG49TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGk9MCxvPWUuZ3JhcGgoKSxhPW8ubWFyZ2lueHx8MCxzPW8ubWFyZ2lueXx8MDtmdW5jdGlvbiBsKGMpe3ZhciB1PWMueCxoPWMueSxmPWMud2lkdGgscD1jLmhlaWdodDt0PU1hdGgubWluKHQsdS1mLzIpLHI9TWF0aC5tYXgocix1K2YvMiksbj1NYXRoLm1pbihuLGgtcC8yKSxpPU1hdGgubWF4KGksaCtwLzIpfWlyLmZvckVhY2goZS5ub2RlcygpLGZ1bmN0aW9uKGMpe2woZS5ub2RlKGMpKX0pLGlyLmZvckVhY2goZS5lZGdlcygpLGZ1bmN0aW9uKGMpe3ZhciB1PWUuZWRnZShjKTtpci5oYXModSwieCIpJiZsKHUpfSksdC09YSxuLT1zLGlyLmZvckVhY2goZS5ub2RlcygpLGZ1bmN0aW9uKGMpe3ZhciB1PWUubm9kZShjKTt1LngtPXQsdS55LT1ufSksaXIuZm9yRWFjaChlLmVkZ2VzKCksZnVuY3Rpb24oYyl7dmFyIHU9ZS5lZGdlKGMpO2lyLmZvckVhY2godS5wb2ludHMsZnVuY3Rpb24oaCl7aC54LT10LGgueS09bn0pLGlyLmhhcyh1LCJ4IikmJih1LngtPXQpLGlyLmhhcyh1LCJ5IikmJih1LnktPW4pfSksby53aWR0aD1yLXQrYSxvLmhlaWdodD1pLW4rc31mdW5jdGlvbiBHbHIoZSl7aXIuZm9yRWFjaChlLmVkZ2VzKCksZnVuY3Rpb24odCl7dmFyIHI9ZS5lZGdlKHQpLG49ZS5ub2RlKHQudiksaT1lLm5vZGUodC53KSxvLGE7ci5wb2ludHM/KG89ci5wb2ludHNbMF0sYT1yLnBvaW50c1tyLnBvaW50cy5sZW5ndGgtMV0pOihyLnBvaW50cz1bXSxvPWksYT1uKSxyLnBvaW50cy51bnNoaWZ0KG0wLmludGVyc2VjdFJlY3QobixvKSksci5wb2ludHMucHVzaChtMC5pbnRlcnNlY3RSZWN0KGksYSkpfSl9ZnVuY3Rpb24gV2xyKGUpe2lyLmZvckVhY2goZS5lZGdlcygpLGZ1bmN0aW9uKHQpe3ZhciByPWUuZWRnZSh0KTtpZihpci5oYXMociwieCIpKXN3aXRjaCgoci5sYWJlbHBvcz09PSJsInx8ci5sYWJlbHBvcz09PSJyIikmJihyLndpZHRoLT1yLmxhYmVsb2Zmc2V0KSxyLmxhYmVscG9zKXtjYXNlImwiOnIueC09ci53aWR0aC8yK3IubGFiZWxvZmZzZXQ7YnJlYWs7Y2FzZSJyIjpyLngrPXIud2lkdGgvMityLmxhYmVsb2Zmc2V0O2JyZWFrfX0pfWZ1bmN0aW9uIFlscihlKXtpci5mb3JFYWNoKGUuZWRnZXMoKSxmdW5jdGlvbih0KXt2YXIgcj1lLmVkZ2UodCk7ci5yZXZlcnNlZCYmci5wb2ludHMucmV2ZXJzZSgpfSl9ZnVuY3Rpb24gamxyKGUpe2lyLmZvckVhY2goZS5ub2RlcygpLGZ1bmN0aW9uKHQpe2lmKGUuY2hpbGRyZW4odCkubGVuZ3RoKXt2YXIgcj1lLm5vZGUodCksbj1lLm5vZGUoci5ib3JkZXJUb3ApLGk9ZS5ub2RlKHIuYm9yZGVyQm90dG9tKSxvPWUubm9kZShpci5sYXN0KHIuYm9yZGVyTGVmdCkpLGE9ZS5ub2RlKGlyLmxhc3Qoci5ib3JkZXJSaWdodCkpO3Iud2lkdGg9TWF0aC5hYnMoYS54LW8ueCksci5oZWlnaHQ9TWF0aC5hYnMoaS55LW4ueSksci54PW8ueCtyLndpZHRoLzIsci55PW4ueStyLmhlaWdodC8yfX0pLGlyLmZvckVhY2goZS5ub2RlcygpLGZ1bmN0aW9uKHQpe2Uubm9kZSh0KS5kdW1teT09PSJib3JkZXIiJiZlLnJlbW92ZU5vZGUodCl9KX1mdW5jdGlvbiBYbHIoZSl7aXIuZm9yRWFjaChlLmVkZ2VzKCksZnVuY3Rpb24odCl7aWYodC52PT09dC53KXt2YXIgcj1lLm5vZGUodC52KTtyLnNlbGZFZGdlc3x8KHIuc2VsZkVkZ2VzPVtdKSxyLnNlbGZFZGdlcy5wdXNoKHtlOnQsbGFiZWw6ZS5lZGdlKHQpfSksZS5yZW1vdmVFZGdlKHQpfX0pfWZ1bmN0aW9uICRscihlKXt2YXIgdD1tMC5idWlsZExheWVyTWF0cml4KGUpO2lyLmZvckVhY2godCxmdW5jdGlvbihyKXt2YXIgbj0wO2lyLmZvckVhY2gocixmdW5jdGlvbihpLG8pe3ZhciBhPWUubm9kZShpKTthLm9yZGVyPW8rbixpci5mb3JFYWNoKGEuc2VsZkVkZ2VzLGZ1bmN0aW9uKHMpe20wLmFkZER1bW15Tm9kZShlLCJzZWxmZWRnZSIse3dpZHRoOnMubGFiZWwud2lkdGgsaGVpZ2h0OnMubGFiZWwuaGVpZ2h0LHJhbms6YS5yYW5rLG9yZGVyOm8rICsrbixlOnMuZSxsYWJlbDpzLmxhYmVsfSwiX3NlIil9KSxkZWxldGUgYS5zZWxmRWRnZXN9KX0pfWZ1bmN0aW9uIEtscihlKXtpci5mb3JFYWNoKGUubm9kZXMoKSxmdW5jdGlvbih0KXt2YXIgcj1lLm5vZGUodCk7aWYoci5kdW1teT09PSJzZWxmZWRnZSIpe3ZhciBuPWUubm9kZShyLmUudiksaT1uLngrbi53aWR0aC8yLG89bi55LGE9ci54LWkscz1uLmhlaWdodC8yO2Uuc2V0RWRnZShyLmUsci5sYWJlbCksZS5yZW1vdmVOb2RlKHQpLHIubGFiZWwucG9pbnRzPVt7eDppKzIqYS8zLHk6by1zfSx7eDppKzUqYS82LHk6by1zfSx7eDppK2EseTpvfSx7eDppKzUqYS82LHk6bytzfSx7eDppKzIqYS8zLHk6bytzfV0sci5sYWJlbC54PXIueCxyLmxhYmVsLnk9ci55fX0pfWZ1bmN0aW9uIE5sdChlLHQpe3JldHVybiBpci5tYXBWYWx1ZXMoaXIucGljayhlLHQpLE51bWJlcil9ZnVuY3Rpb24gRGx0KGUpe3ZhciB0PXt9O3JldHVybiBpci5mb3JFYWNoKGUsZnVuY3Rpb24ocixuKXt0W24udG9Mb3dlckNhc2UoKV09cn0pLHR9fSk7dmFyIEdzZT1IKChNUW4scXNlKT0+e3ZhciBwSD1xbigpLFpscj1pcygpLEpscj1VYygpLkdyYXBoO3FzZS5leHBvcnRzPXtkZWJ1Z09yZGVyaW5nOlFscn07ZnVuY3Rpb24gUWxyKGUpe3ZhciB0PVpsci5idWlsZExheWVyTWF0cml4KGUpLHI9bmV3IEpscih7Y29tcG91bmQ6ITAsbXVsdGlncmFwaDohMH0pLnNldEdyYXBoKHt9KTtyZXR1cm4gcEguZm9yRWFjaChlLm5vZGVzKCksZnVuY3Rpb24obil7ci5zZXROb2RlKG4se2xhYmVsOm59KSxyLnNldFBhcmVudChuLCJsYXllciIrZS5ub2RlKG4pLnJhbmspfSkscEguZm9yRWFjaChlLmVkZ2VzKCksZnVuY3Rpb24obil7ci5zZXRFZGdlKG4udixuLncse30sbi5uYW1lKX0pLHBILmZvckVhY2godCxmdW5jdGlvbihuLGkpe3ZhciBvPSJsYXllciIraTtyLnNldE5vZGUobyx7cmFuazoic2FtZSJ9KSxwSC5yZWR1Y2UobixmdW5jdGlvbihhLHMpe3JldHVybiByLnNldEVkZ2UoYSxzLHtzdHlsZToiaW52aXMifSksc30pfSkscn19KTt2YXIgWXNlPUgoKEVRbixXc2UpPT57V3NlLmV4cG9ydHM9IjAuOC41In0pO3ZhciBPbHQ9SCgoVFFuLGpzZSk9Pntqc2UuZXhwb3J0cz17Z3JhcGhsaWI6VWMoKSxsYXlvdXQ6VXNlKCksZGVidWc6R3NlKCksdXRpbDp7dGltZTppcygpLnRpbWUsbm90aW1lOmlzKCkubm90aW1lfSx2ZXJzaW9uOllzZSgpfX0pO3ZhciBWZHQ9RWUoSGR0KCksMSkse19fZXh0ZW5kczpkX3IsX19hc3NpZ246bV9yLF9fcmVzdDpnX3IsX19kZWNvcmF0ZTpFLF9fcGFyYW06X19yLF9fZXNEZWNvcmF0ZTp5X3IsX19ydW5Jbml0aWFsaXplcnM6dl9yLF9fcHJvcEtleTp4X3IsX19zZXRGdW5jdGlvbk5hbWU6Yl9yLF9fbWV0YWRhdGE6dyxfX2F3YWl0ZXI6d19yLF9fZ2VuZXJhdG9yOlNfcixfX2V4cG9ydFN0YXI6TV9yLF9fY3JlYXRlQmluZGluZzpFX3IsX192YWx1ZXM6VF9yLF9fcmVhZDpDX3IsX19zcHJlYWQ6QV9yLF9fc3ByZWFkQXJyYXlzOlBfcixfX3NwcmVhZEFycmF5OklfcixfX2F3YWl0OkxfcixfX2FzeW5jR2VuZXJhdG9yOmtfcixfX2FzeW5jRGVsZWdhdG9yOlJfcixfX2FzeW5jVmFsdWVzOk5fcixfX21ha2VUZW1wbGF0ZU9iamVjdDpEX3IsX19pbXBvcnRTdGFyOk9fcixfX2ltcG9ydERlZmF1bHQ6el9yLF9fY2xhc3NQcml2YXRlRmllbGRHZXQ6Rl9yLF9fY2xhc3NQcml2YXRlRmllbGRTZXQ6Ql9yLF9fY2xhc3NQcml2YXRlRmllbGRJbjpIX3J9PVZkdC5kZWZhdWx0O2Z1bmN0aW9uIHl0KGUpe3JldHVybiB0PT57aWYoZSlpZih0Lmhhc093blByb3BlcnR5KCJpcyIpKXtpZihlIT09dC5pcyl0aHJvdyBuZXcgRXJyb3IoYGN1c3RvbSBlbGVtZW50IHRhZyBuYW1lcyBkbyBub3QgbWF0Y2g6ICgke2V9ICE9PSAke3QuaXN9KWApfWVsc2UgT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImlzIix7dmFsdWU6ZX0pO3dpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUodC5pcyx0KX19ZnVuY3Rpb24gVWR0KGUsdCxyKXtlLmNvbnN0cnVjdG9yLmhhc093blByb3BlcnR5KCJwcm9wZXJ0aWVzIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLmNvbnN0cnVjdG9yLCJwcm9wZXJ0aWVzIix7dmFsdWU6e319KSxlLmNvbnN0cnVjdG9yLnByb3BlcnRpZXNbdF09T2JqZWN0LmFzc2lnbih7fSxlLmNvbnN0cnVjdG9yLnByb3BlcnRpZXNbdF0scil9ZnVuY3Rpb24gQShlKXtyZXR1cm4odCxyKT0+e1VkdCh0LHIsZSl9fWZ1bmN0aW9uIEJ0KC4uLmUpe3JldHVybih0LHIpPT57dC5jb25zdHJ1Y3Rvci5oYXNPd25Qcm9wZXJ0eSgib2JzZXJ2ZXJzIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LmNvbnN0cnVjdG9yLCJvYnNlcnZlcnMiLHt2YWx1ZTpbXX0pLHQuY29uc3RydWN0b3Iub2JzZXJ2ZXJzLnB1c2goYCR7cn0oJHtlLmpvaW4oIiwiKX0pYCl9fWZ1bmN0aW9uIFJ0KGUsLi4udCl7cmV0dXJuKHIsbixpKT0+e2xldCBvPWBfX2NvbXB1dGUke259YDtPYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTppLmdldH0pLGkuZ2V0PXZvaWQgMDtsZXQgYT1bZSwuLi50XS5qb2luKCIsIik7VWR0KHIsbix7Y29tcHV0ZWQ6YCR7b30oJHthfSlgfSl9fXZhciBVX3I9cWR0KChlLHQpPT5lLnF1ZXJ5U2VsZWN0b3IodCkpLHFfcj1xZHQoKGUsdCk9PmUucXVlcnlTZWxlY3RvckFsbCh0KSk7ZnVuY3Rpb24gcWR0KGUpe3JldHVybiB0PT4ocixuKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG4se2dldCgpe3JldHVybiBlKHRoaXMuc2hhZG93Um9vdCx0KX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KX19d2luZG93LkpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZX07dmFyIFR2ZT0vKHVybFwoKShbXildKikoXCkpL2csQ3ZlPS8oXlwvW15cL10pfCheIyl8KF5bXHctXGRdKjopLyxJSSxKcztmdW5jdGlvbiBjXyhlLHQpe2lmKGUmJkN2ZS50ZXN0KGUpfHxlPT09Ii8vIilyZXR1cm4gZTtpZihJST09PXZvaWQgMCl7SUk9ITE7dHJ5e2xldCByPW5ldyBVUkwoImIiLCJodHRwOi8vYSIpO3IucGF0aG5hbWU9ImMlMjBkIixJST1yLmhyZWY9PT0iaHR0cDovL2EvYyUyMGQifWNhdGNoKHIpe319aWYodHx8KHQ9ZG9jdW1lbnQuYmFzZVVSSXx8d2luZG93LmxvY2F0aW9uLmhyZWYpLElJKXRyeXtyZXR1cm4gbmV3IFVSTChlLHQpLmhyZWZ9Y2F0Y2gocil7cmV0dXJuIGV9cmV0dXJuIEpzfHwoSnM9ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCJ0ZW1wIiksSnMuYmFzZT1Kcy5jcmVhdGVFbGVtZW50KCJiYXNlIiksSnMuaGVhZC5hcHBlbmRDaGlsZChKcy5iYXNlKSxKcy5hbmNob3I9SnMuY3JlYXRlRWxlbWVudCgiYSIpLEpzLmJvZHkuYXBwZW5kQ2hpbGQoSnMuYW5jaG9yKSksSnMuYmFzZS5ocmVmPXQsSnMuYW5jaG9yLmhyZWY9ZSxKcy5hbmNob3IuaHJlZnx8ZX1mdW5jdGlvbiBITShlLHQpe3JldHVybiBlLnJlcGxhY2UoVHZlLGZ1bmN0aW9uKHIsbixpLG8pe3JldHVybiBuKyInIitjXyhpLnJlcGxhY2UoL1siJ10vZywiIiksdCkrIiciK299KX1mdW5jdGlvbiBDeChlKXtyZXR1cm4gZS5zdWJzdHJpbmcoMCxlLmxhc3RJbmRleE9mKCIvIikrMSl9dmFyIHVfPSF3aW5kb3cuU2hhZHlET018fCF3aW5kb3cuU2hhZHlET00uaW5Vc2UsJF9yPUJvb2xlYW4oIXdpbmRvdy5TaGFkeUNTU3x8d2luZG93LlNoYWR5Q1NTLm5hdGl2ZUNzcyksS19yPSF3aW5kb3cuY3VzdG9tRWxlbWVudHMucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjayxHZHQ9dV8mJiJhZG9wdGVkU3R5bGVTaGVldHMiaW4gRG9jdW1lbnQucHJvdG90eXBlJiYicmVwbGFjZVN5bmMiaW4gQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUmJigoKT0+e3RyeXtsZXQgZT1uZXcgQ1NTU3R5bGVTaGVldDtlLnJlcGxhY2VTeW5jKCIiKTtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5hdHRhY2hTaGFkb3coe21vZGU6Im9wZW4ifSksdC5zaGFkb3dSb290LmFkb3B0ZWRTdHlsZVNoZWV0cz1bZV0sdC5zaGFkb3dSb290LmFkb3B0ZWRTdHlsZVNoZWV0c1swXT09PWV9Y2F0Y2goZSl7cmV0dXJuITF9fSkoKSxXZHQ9d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLnJvb3RQYXRofHxDeChkb2N1bWVudC5iYXNlVVJJfHx3aW5kb3cubG9jYXRpb24uaHJlZik7dmFyIFZNPXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5zYW5pdGl6ZURPTVZhbHVlfHx2b2lkIDA7dmFyIFlkdD13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIuc2V0UGFzc2l2ZVRvdWNoR2VzdHVyZXN8fCExO3ZhciBpdT13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIuc3RyaWN0VGVtcGxhdGVQb2xpY3l8fCExO3ZhciBqZHQ9d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLmFsbG93VGVtcGxhdGVGcm9tRG9tTW9kdWxlfHwhMTt2YXIgZHA9d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLmxlZ2FjeU9wdGltaXphdGlvbnN8fCExO3ZhciBMST13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIubGVnYWN5V2FybmluZ3N8fCExO3ZhciBYZHQ9d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLnN5bmNJbml0aWFsUmVuZGVyfHwhMTt2YXIga0k9d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLmxlZ2FjeVVuZGVmaW5lZHx8ITE7dmFyICRkdD13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIub3JkZXJlZENvbXB1dGVkfHwhMTt2YXIgZkc9ITA7dmFyIHBHPXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5yZW1vdmVOZXN0ZWRUZW1wbGF0ZXN8fCExO3ZhciBSST13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIuZmFzdERvbUlmfHwhMTt2YXIgVU09d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLnN1cHByZXNzVGVtcGxhdGVOb3RpZmljYXRpb25zfHwhMTt2YXIgcU09d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLmxlZ2FjeU5vT2JzZXJ2ZWRBdHRyaWJ1dGVzfHwhMTt2YXIgS2R0PXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci51c2VBZG9wdGVkU3R5bGVTaGVldHNXaXRoQnVpbHRDU1N8fCExO3ZhciBBdmU9MDtmdW5jdGlvbiBaZHQoKXt9WmR0LnByb3RvdHlwZS5fX21peGluQXBwbGljYXRpb25zO1pkdC5wcm90b3R5cGUuX19taXhpblNldDt2YXIgTm49ZnVuY3Rpb24oZSl7bGV0IHQ9ZS5fX21peGluQXBwbGljYXRpb25zO3R8fCh0PW5ldyBXZWFrTWFwLGUuX19taXhpbkFwcGxpY2F0aW9ucz10KTtsZXQgcj1BdmUrKztmdW5jdGlvbiBuKGkpe2xldCBvPWkuX19taXhpblNldDtpZihvJiZvW3JdKXJldHVybiBpO2xldCBhPXQscz1hLmdldChpKTtpZighcyl7cz1lKGkpLGEuc2V0KGkscyk7bGV0IGw9T2JqZWN0LmNyZWF0ZShzLl9fbWl4aW5TZXR8fG98fG51bGwpO2xbcl09ITAscy5fX21peGluU2V0PWx9cmV0dXJuIHN9cmV0dXJuIG59O3ZhciBkRz17fSx0bXQ9e307ZnVuY3Rpb24gSmR0KGUsdCl7ZEdbZV09dG10W2UudG9Mb3dlckNhc2UoKV09dH1mdW5jdGlvbiBRZHQoZSl7cmV0dXJuIGRHW2VdfHx0bXRbZS50b0xvd2VyQ2FzZSgpXX1mdW5jdGlvbiBQdmUoZSl7ZS5xdWVyeVNlbGVjdG9yKCJzdHlsZSIpJiZjb25zb2xlLndhcm4oImRvbS1tb2R1bGUgJXMgaGFzIHN0eWxlIG91dHNpZGUgdGVtcGxhdGUiLGUuaWQpfXZhciBvdT1jbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50e3N0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7cmV0dXJuWyJpZCJdfXN0YXRpYyBpbXBvcnQodCxyKXtpZih0KXtsZXQgbj1RZHQodCk7cmV0dXJuIG4mJnI/bi5xdWVyeVNlbGVjdG9yKHIpOm59cmV0dXJuIG51bGx9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQscixuLGkpe3IhPT1uJiZ0aGlzLnJlZ2lzdGVyKCl9Z2V0IGFzc2V0cGF0aCgpe2lmKCF0aGlzLl9fYXNzZXRwYXRoKXtsZXQgdD13aW5kb3cuSFRNTEltcG9ydHMmJkhUTUxJbXBvcnRzLmltcG9ydEZvckVsZW1lbnQ/SFRNTEltcG9ydHMuaW1wb3J0Rm9yRWxlbWVudCh0aGlzKXx8ZG9jdW1lbnQ6dGhpcy5vd25lckRvY3VtZW50LHI9Y18odGhpcy5nZXRBdHRyaWJ1dGUoImFzc2V0cGF0aCIpfHwiIix0LmJhc2VVUkkpO3RoaXMuX19hc3NldHBhdGg9Q3gocil9cmV0dXJuIHRoaXMuX19hc3NldHBhdGh9cmVnaXN0ZXIodCl7aWYodD10fHx0aGlzLmlkLHQpe2lmKGl1JiZRZHQodCkhPT12b2lkIDApdGhyb3cgSmR0KHQsbnVsbCksbmV3IEVycm9yKGBzdHJpY3RUZW1wbGF0ZVBvbGljeTogZG9tLW1vZHVsZSAke3R9IHJlLXJlZ2lzdGVyZWRgKTt0aGlzLmlkPXQsSmR0KHQsdGhpcyksUHZlKHRoaXMpfX19O291LnByb3RvdHlwZS5tb2R1bGVzPWRHO2N1c3RvbUVsZW1lbnRzLmRlZmluZSgiZG9tLW1vZHVsZSIsb3UpO3ZhciBJdmU9ImxpbmtbcmVsPWltcG9ydF1bdHlwZX49Y3NzXSIsTHZlPSJpbmNsdWRlIixlbXQ9InNoYWR5LXVuc2NvcGVkIjtmdW5jdGlvbiBtRyhlKXtyZXR1cm4gb3UuaW1wb3J0KGUpfWZ1bmN0aW9uIHJtdChlKXtsZXQgdD1lLmJvZHk/ZS5ib2R5OmUscj1ITSh0LnRleHRDb250ZW50LGUuYmFzZVVSSSksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3JldHVybiBuLnRleHRDb250ZW50PXIsbn1mdW5jdGlvbiBrdmUoZSl7bGV0IHQ9ZS50cmltKCkuc3BsaXQoL1xzKy8pLHI9W107Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspci5wdXNoKC4uLlJ2ZSh0W25dKSk7cmV0dXJuIHJ9ZnVuY3Rpb24gUnZlKGUpe2xldCB0PW1HKGUpO2lmKCF0KXJldHVybiBjb25zb2xlLndhcm4oIkNvdWxkIG5vdCBmaW5kIHN0eWxlIGRhdGEgaW4gbW9kdWxlIG5hbWVkIixlKSxbXTtpZih0Ll9zdHlsZXM9PT12b2lkIDApe2xldCByPVtdO3IucHVzaCguLi5nRyh0KSk7bGV0IG49dC5xdWVyeVNlbGVjdG9yKCJ0ZW1wbGF0ZSIpO24mJnIucHVzaCguLi5OSShuLHQuYXNzZXRwYXRoKSksdC5fc3R5bGVzPXJ9cmV0dXJuIHQuX3N0eWxlc31mdW5jdGlvbiBOSShlLHQpe2lmKCFlLl9zdHlsZXMpe2xldCByPVtdLG49ZS5jb250ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlIik7Zm9yKGxldCBpPTA7aTxuLmxlbmd0aDtpKyspe2xldCBvPW5baV0sYT1vLmdldEF0dHJpYnV0ZShMdmUpO2EmJnIucHVzaCguLi5rdmUoYSkuZmlsdGVyKGZ1bmN0aW9uKHMsbCxjKXtyZXR1cm4gYy5pbmRleE9mKHMpPT09bH0pKSx0JiYoby50ZXh0Q29udGVudD1ITShvLnRleHRDb250ZW50LHQpKSxyLnB1c2gobyl9ZS5fc3R5bGVzPXJ9cmV0dXJuIGUuX3N0eWxlc31mdW5jdGlvbiBubXQoZSl7bGV0IHQ9bUcoZSk7cmV0dXJuIHQ/Z0codCk6W119ZnVuY3Rpb24gZ0coZSl7bGV0IHQ9W10scj1lLnF1ZXJ5U2VsZWN0b3JBbGwoSXZlKTtmb3IobGV0IG49MDtuPHIubGVuZ3RoO24rKyl7bGV0IGk9cltuXTtpZihpLmltcG9ydCl7bGV0IG89aS5pbXBvcnQsYT1pLmhhc0F0dHJpYnV0ZShlbXQpO2lmKGEmJiFvLl91bnNjb3BlZFN0eWxlKXtsZXQgcz1ybXQobyk7cy5zZXRBdHRyaWJ1dGUoZW10LCIiKSxvLl91bnNjb3BlZFN0eWxlPXN9ZWxzZSBvLl9zdHlsZXx8KG8uX3N0eWxlPXJtdChvKSk7dC5wdXNoKGE/by5fdW5zY29wZWRTdHlsZTpvLl9zdHlsZSl9fXJldHVybiB0fWZ1bmN0aW9uIGltdChlKXtsZXQgdD1lLnRyaW0oKS5zcGxpdCgvXHMrLykscj0iIjtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKylyKz1OdmUodFtuXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gTnZlKGUpe2xldCB0PW1HKGUpO2lmKHQmJnQuX2Nzc1RleHQ9PT12b2lkIDApe2xldCByPU92ZSh0KSxuPXQucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKTtuJiYocis9RHZlKG4sdC5hc3NldHBhdGgpKSx0Ll9jc3NUZXh0PXJ8fG51bGx9cmV0dXJuIHR8fGNvbnNvbGUud2FybigiQ291bGQgbm90IGZpbmQgc3R5bGUgZGF0YSBpbiBtb2R1bGUgbmFtZWQiLGUpLHQmJnQuX2Nzc1RleHR8fCIifWZ1bmN0aW9uIER2ZShlLHQpe2xldCByPSIiLG49TkkoZSx0KTtmb3IobGV0IGk9MDtpPG4ubGVuZ3RoO2krKyl7bGV0IG89bltpXTtvLnBhcmVudE5vZGUmJm8ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvKSxyKz1vLnRleHRDb250ZW50fXJldHVybiByfWZ1bmN0aW9uIE92ZShlKXtsZXQgdD0iIixyPWdHKGUpO2ZvcihsZXQgbj0wO248ci5sZW5ndGg7bisrKXQrPXJbbl0udGV4dENvbnRlbnQ7cmV0dXJuIHR9dmFyIHVlPXdpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLm5vUGF0Y2gmJndpbmRvdy5TaGFkeURPTS53cmFwP3dpbmRvdy5TaGFkeURPTS53cmFwOndpbmRvdy5TaGFkeURPTT9lPT5TaGFkeURPTS5wYXRjaChlKTplPT5lO2Z1bmN0aW9uIERJKGUpe3JldHVybiBlLmluZGV4T2YoIi4iKT49MH1mdW5jdGlvbiBhdShlKXtsZXQgdD1lLmluZGV4T2YoIi4iKTtyZXR1cm4gdD09PS0xP2U6ZS5zbGljZSgwLHQpfWZ1bmN0aW9uIF9HKGUsdCl7cmV0dXJuIGUuaW5kZXhPZih0KyIuIik9PT0wfWZ1bmN0aW9uIEF4KGUsdCl7cmV0dXJuIHQuaW5kZXhPZihlKyIuIik9PT0wfWZ1bmN0aW9uIG1wKGUsdCxyKXtyZXR1cm4gdCtyLnNsaWNlKGUubGVuZ3RoKX1mdW5jdGlvbiBPSShlLHQpe3JldHVybiBlPT09dHx8X0coZSx0KXx8QXgoZSx0KX1mdW5jdGlvbiBQeChlKXtpZihBcnJheS5pc0FycmF5KGUpKXtsZXQgdD1bXTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7bGV0IG49ZVtyXS50b1N0cmluZygpLnNwbGl0KCIuIik7Zm9yKGxldCBpPTA7aTxuLmxlbmd0aDtpKyspdC5wdXNoKG5baV0pfXJldHVybiB0LmpvaW4oIi4iKX1lbHNlIHJldHVybiBlfWZ1bmN0aW9uIG9tdChlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9QeChlKS5zcGxpdCgiLiIpOmUudG9TdHJpbmcoKS5zcGxpdCgiLiIpfWZ1bmN0aW9uIE5vKGUsdCxyKXtsZXQgbj1lLGk9b210KHQpO2ZvcihsZXQgbz0wO288aS5sZW5ndGg7bysrKXtpZighbilyZXR1cm47bGV0IGE9aVtvXTtuPW5bYV19cmV0dXJuIHImJihyLnBhdGg9aS5qb2luKCIuIikpLG59ZnVuY3Rpb24geUcoZSx0LHIpe2xldCBuPWUsaT1vbXQodCksbz1pW2kubGVuZ3RoLTFdO2lmKGkubGVuZ3RoPjEpe2ZvcihsZXQgYT0wO2E8aS5sZW5ndGgtMTthKyspe2xldCBzPWlbYV07aWYobj1uW3NdLCFuKXJldHVybn1uW29dPXJ9ZWxzZSBuW3RdPXI7cmV0dXJuIGkuam9pbigiLiIpfXZhciB6ST17fSx6dmU9Ly1bYS16XS9nLEZ2ZT0vKFtBLVpdKS9nO2Z1bmN0aW9uIFNtKGUpe3JldHVybiB6SVtlXXx8KHpJW2VdPWUuaW5kZXhPZigiLSIpPDA/ZTplLnJlcGxhY2UoenZlLHQ9PnRbMV0udG9VcHBlckNhc2UoKSkpfWZ1bmN0aW9uIEl4KGUpe3JldHVybiB6SVtlXXx8KHpJW2VdPWUucmVwbGFjZShGdmUsIi0kMSIpLnRvTG93ZXJDYXNlKCkpfXZhciBCdmU9MCxhbXQ9MCxMeD1bXSxIdmU9MCx2Rz0hMSxzbXQ9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpO25ldyB3aW5kb3cuTXV0YXRpb25PYnNlcnZlcihWdmUpLm9ic2VydmUoc210LHtjaGFyYWN0ZXJEYXRhOiEwfSk7ZnVuY3Rpb24gVnZlKCl7dkc9ITE7bGV0IGU9THgubGVuZ3RoO2ZvcihsZXQgdD0wO3Q8ZTt0Kyspe2xldCByPUx4W3RdO2lmKHIpdHJ5e3IoKX1jYXRjaChuKXtzZXRUaW1lb3V0KCgpPT57dGhyb3cgbn0pfX1MeC5zcGxpY2UoMCxlKSxhbXQrPWV9dmFyIG1vPXthZnRlcihlKXtyZXR1cm57cnVuKHQpe3JldHVybiB3aW5kb3cuc2V0VGltZW91dCh0LGUpfSxjYW5jZWwodCl7d2luZG93LmNsZWFyVGltZW91dCh0KX19fSxydW4oZSx0KXtyZXR1cm4gd2luZG93LnNldFRpbWVvdXQoZSx0KX0sY2FuY2VsKGUpe3dpbmRvdy5jbGVhclRpbWVvdXQoZSl9fTt2YXIgTmk9e3J1bihlKXtyZXR1cm4gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShlKX0sY2FuY2VsKGUpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShlKX19O3ZhciBreD17cnVuKGUpe3JldHVybiB3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjaz93aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjayhlKTp3aW5kb3cuc2V0VGltZW91dChlLDE2KX0sY2FuY2VsKGUpe3dpbmRvdy5jYW5jZWxJZGxlQ2FsbGJhY2s/d2luZG93LmNhbmNlbElkbGVDYWxsYmFjayhlKTp3aW5kb3cuY2xlYXJUaW1lb3V0KGUpfX07dmFyIGxpPXtydW4oZSl7cmV0dXJuIHZHfHwodkc9ITAsc210LnRleHRDb250ZW50PUh2ZSsrKSxMeC5wdXNoKGUpLEJ2ZSsrfSxjYW5jZWwoZSl7bGV0IHQ9ZS1hbXQ7aWYodD49MCl7aWYoIUx4W3RdKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBhc3luYyBoYW5kbGU6ICIrZSk7THhbdF09bnVsbH19fTt2YXIgVXZlPWxpLEZJPU5uKGU9PntjbGFzcyB0IGV4dGVuZHMgZXtzdGF0aWMgY3JlYXRlUHJvcGVydGllcyhuKXtsZXQgaT10aGlzLnByb3RvdHlwZTtmb3IobGV0IG8gaW4gbilvIGluIGl8fGkuX2NyZWF0ZVByb3BlcnR5QWNjZXNzb3Iobyl9c3RhdGljIGF0dHJpYnV0ZU5hbWVGb3JQcm9wZXJ0eShuKXtyZXR1cm4gbi50b0xvd2VyQ2FzZSgpfXN0YXRpYyB0eXBlRm9yUHJvcGVydHkobil7fV9jcmVhdGVQcm9wZXJ0eUFjY2Vzc29yKG4saSl7dGhpcy5fYWRkUHJvcGVydHlUb0F0dHJpYnV0ZU1hcChuKSx0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9fZGF0YUhhc0FjY2Vzc29yIix0aGlzKSl8fCh0aGlzLl9fZGF0YUhhc0FjY2Vzc29yPU9iamVjdC5hc3NpZ24oe30sdGhpcy5fX2RhdGFIYXNBY2Nlc3NvcikpLHRoaXMuX19kYXRhSGFzQWNjZXNzb3Jbbl18fCh0aGlzLl9fZGF0YUhhc0FjY2Vzc29yW25dPSEwLHRoaXMuX2RlZmluZVByb3BlcnR5QWNjZXNzb3IobixpKSl9X2FkZFByb3BlcnR5VG9BdHRyaWJ1dGVNYXAobil7dGhpcy5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfX2RhdGFBdHRyaWJ1dGVzIix0aGlzKSl8fCh0aGlzLl9fZGF0YUF0dHJpYnV0ZXM9T2JqZWN0LmFzc2lnbih7fSx0aGlzLl9fZGF0YUF0dHJpYnV0ZXMpKTtsZXQgaT10aGlzLl9fZGF0YUF0dHJpYnV0ZXNbbl07cmV0dXJuIGl8fChpPXRoaXMuY29uc3RydWN0b3IuYXR0cmlidXRlTmFtZUZvclByb3BlcnR5KG4pLHRoaXMuX19kYXRhQXR0cmlidXRlc1tpXT1uKSxpfV9kZWZpbmVQcm9wZXJ0eUFjY2Vzc29yKG4saSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsbix7Z2V0KCl7cmV0dXJuIHRoaXMuX19kYXRhW25dfSxzZXQ6aT9mdW5jdGlvbigpe306ZnVuY3Rpb24obyl7dGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5KG4sbywhMCkmJnRoaXMuX2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl9fSl9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX19kYXRhRW5hYmxlZD0hMSx0aGlzLl9fZGF0YVJlYWR5PSExLHRoaXMuX19kYXRhSW52YWxpZD0hMSx0aGlzLl9fZGF0YT17fSx0aGlzLl9fZGF0YVBlbmRpbmc9bnVsbCx0aGlzLl9fZGF0YU9sZD1udWxsLHRoaXMuX19kYXRhSW5zdGFuY2VQcm9wcz1udWxsLHRoaXMuX19kYXRhQ291bnRlcj0wLHRoaXMuX19zZXJpYWxpemluZz0hMSx0aGlzLl9pbml0aWFsaXplUHJvcGVydGllcygpfXJlYWR5KCl7dGhpcy5fX2RhdGFSZWFkeT0hMCx0aGlzLl9mbHVzaFByb3BlcnRpZXMoKX1faW5pdGlhbGl6ZVByb3BlcnRpZXMoKXtmb3IobGV0IG4gaW4gdGhpcy5fX2RhdGFIYXNBY2Nlc3Nvcil0aGlzLmhhc093blByb3BlcnR5KG4pJiYodGhpcy5fX2RhdGFJbnN0YW5jZVByb3BzPXRoaXMuX19kYXRhSW5zdGFuY2VQcm9wc3x8e30sdGhpcy5fX2RhdGFJbnN0YW5jZVByb3BzW25dPXRoaXNbbl0sZGVsZXRlIHRoaXNbbl0pfV9pbml0aWFsaXplSW5zdGFuY2VQcm9wZXJ0aWVzKG4pe09iamVjdC5hc3NpZ24odGhpcyxuKX1fc2V0UHJvcGVydHkobixpKXt0aGlzLl9zZXRQZW5kaW5nUHJvcGVydHkobixpKSYmdGhpcy5faW52YWxpZGF0ZVByb3BlcnRpZXMoKX1fZ2V0UHJvcGVydHkobil7cmV0dXJuIHRoaXMuX19kYXRhW25dfV9zZXRQZW5kaW5nUHJvcGVydHkobixpLG8pe2xldCBhPXRoaXMuX19kYXRhW25dLHM9dGhpcy5fc2hvdWxkUHJvcGVydHlDaGFuZ2UobixpLGEpO3JldHVybiBzJiYodGhpcy5fX2RhdGFQZW5kaW5nfHwodGhpcy5fX2RhdGFQZW5kaW5nPXt9LHRoaXMuX19kYXRhT2xkPXt9KSx0aGlzLl9fZGF0YU9sZCYmIShuIGluIHRoaXMuX19kYXRhT2xkKSYmKHRoaXMuX19kYXRhT2xkW25dPWEpLHRoaXMuX19kYXRhW25dPWksdGhpcy5fX2RhdGFQZW5kaW5nW25dPWkpLHN9X2lzUHJvcGVydHlQZW5kaW5nKG4pe3JldHVybiEhKHRoaXMuX19kYXRhUGVuZGluZyYmdGhpcy5fX2RhdGFQZW5kaW5nLmhhc093blByb3BlcnR5KG4pKX1faW52YWxpZGF0ZVByb3BlcnRpZXMoKXshdGhpcy5fX2RhdGFJbnZhbGlkJiZ0aGlzLl9fZGF0YVJlYWR5JiYodGhpcy5fX2RhdGFJbnZhbGlkPSEwLFV2ZS5ydW4oKCk9Pnt0aGlzLl9fZGF0YUludmFsaWQmJih0aGlzLl9fZGF0YUludmFsaWQ9ITEsdGhpcy5fZmx1c2hQcm9wZXJ0aWVzKCkpfSkpfV9lbmFibGVQcm9wZXJ0aWVzKCl7dGhpcy5fX2RhdGFFbmFibGVkfHwodGhpcy5fX2RhdGFFbmFibGVkPSEwLHRoaXMuX19kYXRhSW5zdGFuY2VQcm9wcyYmKHRoaXMuX2luaXRpYWxpemVJbnN0YW5jZVByb3BlcnRpZXModGhpcy5fX2RhdGFJbnN0YW5jZVByb3BzKSx0aGlzLl9fZGF0YUluc3RhbmNlUHJvcHM9bnVsbCksdGhpcy5yZWFkeSgpKX1fZmx1c2hQcm9wZXJ0aWVzKCl7dGhpcy5fX2RhdGFDb3VudGVyKys7bGV0IG49dGhpcy5fX2RhdGEsaT10aGlzLl9fZGF0YVBlbmRpbmcsbz10aGlzLl9fZGF0YU9sZDt0aGlzLl9zaG91bGRQcm9wZXJ0aWVzQ2hhbmdlKG4saSxvKSYmKHRoaXMuX19kYXRhUGVuZGluZz1udWxsLHRoaXMuX19kYXRhT2xkPW51bGwsdGhpcy5fcHJvcGVydGllc0NoYW5nZWQobixpLG8pKSx0aGlzLl9fZGF0YUNvdW50ZXItLX1fc2hvdWxkUHJvcGVydGllc0NoYW5nZShuLGksbyl7cmV0dXJuIEJvb2xlYW4oaSl9X3Byb3BlcnRpZXNDaGFuZ2VkKG4saSxvKXt9X3Nob3VsZFByb3BlcnR5Q2hhbmdlKG4saSxvKXtyZXR1cm4gbyE9PWkmJihvPT09b3x8aT09PWkpfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuLGksbyxhKXtpIT09byYmdGhpcy5fYXR0cmlidXRlVG9Qcm9wZXJ0eShuLG8pLHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayYmc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG4saSxvLGEpfV9hdHRyaWJ1dGVUb1Byb3BlcnR5KG4saSxvKXtpZighdGhpcy5fX3NlcmlhbGl6aW5nKXtsZXQgYT10aGlzLl9fZGF0YUF0dHJpYnV0ZXMscz1hJiZhW25dfHxuO3RoaXNbc109dGhpcy5fZGVzZXJpYWxpemVWYWx1ZShpLG98fHRoaXMuY29uc3RydWN0b3IudHlwZUZvclByb3BlcnR5KHMpKX19X3Byb3BlcnR5VG9BdHRyaWJ1dGUobixpLG8pe3RoaXMuX19zZXJpYWxpemluZz0hMCxvPWFyZ3VtZW50cy5sZW5ndGg8Mz90aGlzW25dOm8sdGhpcy5fdmFsdWVUb05vZGVBdHRyaWJ1dGUodGhpcyxvLGl8fHRoaXMuY29uc3RydWN0b3IuYXR0cmlidXRlTmFtZUZvclByb3BlcnR5KG4pKSx0aGlzLl9fc2VyaWFsaXppbmc9ITF9X3ZhbHVlVG9Ob2RlQXR0cmlidXRlKG4saSxvKXtsZXQgYT10aGlzLl9zZXJpYWxpemVWYWx1ZShpKTsobz09PSJjbGFzcyJ8fG89PT0ibmFtZSJ8fG89PT0ic2xvdCIpJiYobj11ZShuKSksYT09PXZvaWQgMD9uLnJlbW92ZUF0dHJpYnV0ZShvKTpuLnNldEF0dHJpYnV0ZShvLGEpfV9zZXJpYWxpemVWYWx1ZShuKXtzd2l0Y2godHlwZW9mIG4pe2Nhc2UiYm9vbGVhbiI6cmV0dXJuIG4/IiI6dm9pZCAwO2RlZmF1bHQ6cmV0dXJuIG4hPW51bGw/bi50b1N0cmluZygpOnZvaWQgMH19X2Rlc2VyaWFsaXplVmFsdWUobixpKXtzd2l0Y2goaSl7Y2FzZSBCb29sZWFuOnJldHVybiBuIT09bnVsbDtjYXNlIE51bWJlcjpyZXR1cm4gTnVtYmVyKG4pO2RlZmF1bHQ6cmV0dXJuIG59fX1yZXR1cm4gdH0pO3ZhciBsbXQ9e30sQkk9SFRNTEVsZW1lbnQucHJvdG90eXBlO2Zvcig7Qkk7KXtsZXQgZT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhCSSk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspbG10W2VbdF1dPSEwO0JJPU9iamVjdC5nZXRQcm90b3R5cGVPZihCSSl9ZnVuY3Rpb24gcXZlKGUsdCl7aWYoIWxtdFt0XSl7bGV0IHI9ZVt0XTtyIT09dm9pZCAwJiYoZS5fX2RhdGE/ZS5fc2V0UGVuZGluZ1Byb3BlcnR5KHQscik6KGUuX19kYXRhUHJvdG8/ZS5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfX2RhdGFQcm90byIsZSkpfHwoZS5fX2RhdGFQcm90bz1PYmplY3QuY3JlYXRlKGUuX19kYXRhUHJvdG8pKTplLl9fZGF0YVByb3RvPXt9LGUuX19kYXRhUHJvdG9bdF09cikpfX12YXIgSEk9Tm4oZT0+e2xldCB0PUZJKGUpO2NsYXNzIHIgZXh0ZW5kcyB0e3N0YXRpYyBjcmVhdGVQcm9wZXJ0aWVzRm9yQXR0cmlidXRlcygpe2xldCBpPXRoaXMub2JzZXJ2ZWRBdHRyaWJ1dGVzO2ZvcihsZXQgbz0wO288aS5sZW5ndGg7bysrKXRoaXMucHJvdG90eXBlLl9jcmVhdGVQcm9wZXJ0eUFjY2Vzc29yKFNtKGlbb10pKX1zdGF0aWMgYXR0cmlidXRlTmFtZUZvclByb3BlcnR5KGkpe3JldHVybiBJeChpKX1faW5pdGlhbGl6ZVByb3BlcnRpZXMoKXt0aGlzLl9fZGF0YVByb3RvJiYodGhpcy5faW5pdGlhbGl6ZVByb3RvUHJvcGVydGllcyh0aGlzLl9fZGF0YVByb3RvKSx0aGlzLl9fZGF0YVByb3RvPW51bGwpLHN1cGVyLl9pbml0aWFsaXplUHJvcGVydGllcygpfV9pbml0aWFsaXplUHJvdG9Qcm9wZXJ0aWVzKGkpe2ZvcihsZXQgbyBpbiBpKXRoaXMuX3NldFByb3BlcnR5KG8saVtvXSl9X2Vuc3VyZUF0dHJpYnV0ZShpLG8pe2xldCBhPXRoaXM7YS5oYXNBdHRyaWJ1dGUoaSl8fHRoaXMuX3ZhbHVlVG9Ob2RlQXR0cmlidXRlKGEsbyxpKX1fc2VyaWFsaXplVmFsdWUoaSl7c3dpdGNoKHR5cGVvZiBpKXtjYXNlIm9iamVjdCI6aWYoaSBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIGkudG9TdHJpbmcoKTtpZihpKXRyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoaSl9Y2F0Y2gobyl7cmV0dXJuIiJ9ZGVmYXVsdDpyZXR1cm4gc3VwZXIuX3NlcmlhbGl6ZVZhbHVlKGkpfX1fZGVzZXJpYWxpemVWYWx1ZShpLG8pe2xldCBhO3N3aXRjaChvKXtjYXNlIE9iamVjdDp0cnl7YT1KU09OLnBhcnNlKGkpfWNhdGNoKHMpe2E9aX1icmVhaztjYXNlIEFycmF5OnRyeXthPUpTT04ucGFyc2UoaSl9Y2F0Y2gocyl7YT1udWxsLGNvbnNvbGUud2FybihgUG9seW1lcjo6QXR0cmlidXRlczogY291bGRuJ3QgZGVjb2RlIEFycmF5IGFzIEpTT046ICR7aX1gKX1icmVhaztjYXNlIERhdGU6YT1pc05hTihpKT9TdHJpbmcoaSk6TnVtYmVyKGkpLGE9bmV3IERhdGUoYSk7YnJlYWs7ZGVmYXVsdDphPXN1cGVyLl9kZXNlcmlhbGl6ZVZhbHVlKGksbyk7YnJlYWt9cmV0dXJuIGF9X2RlZmluZVByb3BlcnR5QWNjZXNzb3IoaSxvKXtxdmUodGhpcyxpKSxzdXBlci5fZGVmaW5lUHJvcGVydHlBY2Nlc3NvcihpLG8pfV9oYXNBY2Nlc3NvcihpKXtyZXR1cm4gdGhpcy5fX2RhdGFIYXNBY2Nlc3NvciYmdGhpcy5fX2RhdGFIYXNBY2Nlc3NvcltpXX1faXNQcm9wZXJ0eVBlbmRpbmcoaSl7cmV0dXJuIEJvb2xlYW4odGhpcy5fX2RhdGFQZW5kaW5nJiZpIGluIHRoaXMuX19kYXRhUGVuZGluZyl9fXJldHVybiByfSk7dmFyIEd2ZT17ImRvbS1pZiI6ITAsImRvbS1yZXBlYXQiOiEwfSxjbXQ9ITEsdW10PSExO2Z1bmN0aW9uIFd2ZSgpe2lmKCFjbXQpe2NtdD0hMDtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO2UucGxhY2Vob2xkZXI9ImEiLHVtdD1lLnBsYWNlaG9sZGVyPT09ZS50ZXh0Q29udGVudH1yZXR1cm4gdW10fWZ1bmN0aW9uIFl2ZShlKXtXdmUoKSYmZS5sb2NhbE5hbWU9PT0idGV4dGFyZWEiJiZlLnBsYWNlaG9sZGVyJiZlLnBsYWNlaG9sZGVyPT09ZS50ZXh0Q29udGVudCYmKGUudGV4dENvbnRlbnQ9bnVsbCl9ZnVuY3Rpb24ganZlKGUpe2xldCB0PWUuZ2V0QXR0cmlidXRlKCJpcyIpO2lmKHQmJkd2ZVt0XSl7bGV0IHI9ZTtmb3Ioci5yZW1vdmVBdHRyaWJ1dGUoImlzIiksZT1yLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0KSxyLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGUsciksZS5hcHBlbmRDaGlsZChyKTtyLmF0dHJpYnV0ZXMubGVuZ3RoOyllLnNldEF0dHJpYnV0ZShyLmF0dHJpYnV0ZXNbMF0ubmFtZSxyLmF0dHJpYnV0ZXNbMF0udmFsdWUpLHIucmVtb3ZlQXR0cmlidXRlKHIuYXR0cmlidXRlc1swXS5uYW1lKX1yZXR1cm4gZX1mdW5jdGlvbiBobXQoZSx0KXtsZXQgcj10LnBhcmVudEluZm8mJmhtdChlLHQucGFyZW50SW5mbyk7aWYocil7Zm9yKGxldCBuPXIuZmlyc3RDaGlsZCxpPTA7bjtuPW4ubmV4dFNpYmxpbmcpaWYodC5wYXJlbnRJbmRleD09PWkrKylyZXR1cm4gbn1lbHNlIHJldHVybiBlfWZ1bmN0aW9uIFh2ZShlLHQscixuKXtuLmlkJiYodFtuLmlkXT1yKX1mdW5jdGlvbiAkdmUoZSx0LHIpe2lmKHIuZXZlbnRzJiZyLmV2ZW50cy5sZW5ndGgpZm9yKGxldCBuPTAsaT1yLmV2ZW50cyxvO248aS5sZW5ndGgmJihvPWlbbl0pO24rKyllLl9hZGRNZXRob2RFdmVudExpc3RlbmVyVG9Ob2RlKHQsby5uYW1lLG8udmFsdWUsZSl9ZnVuY3Rpb24gS3ZlKGUsdCxyLG4pe3IudGVtcGxhdGVJbmZvJiYodC5fdGVtcGxhdGVJbmZvPXIudGVtcGxhdGVJbmZvLHQuX3BhcmVudFRlbXBsYXRlSW5mbz1uKX1mdW5jdGlvbiBadmUoZSx0LHIpe3JldHVybiBlPWUuX21ldGhvZEhvc3R8fGUsZnVuY3Rpb24oaSl7ZVtyXT9lW3JdKGksaS5kZXRhaWwpOmNvbnNvbGUud2FybigibGlzdGVuZXIgbWV0aG9kIGAiK3IrImAgbm90IGRlZmluZWQiKX19dmFyIGZtdD1ObihlPT57Y2xhc3MgdCBleHRlbmRzIGV7c3RhdGljIF9wYXJzZVRlbXBsYXRlKG4saSl7aWYoIW4uX3RlbXBsYXRlSW5mbyl7bGV0IG89bi5fdGVtcGxhdGVJbmZvPXt9O28ubm9kZUluZm9MaXN0PVtdLG8ubmVzdGVkVGVtcGxhdGU9Qm9vbGVhbihpKSxvLnN0cmlwV2hpdGVTcGFjZT1pJiZpLnN0cmlwV2hpdGVTcGFjZXx8bi5oYXNBdHRyaWJ1dGUoInN0cmlwLXdoaXRlc3BhY2UiKSx0aGlzLl9wYXJzZVRlbXBsYXRlQ29udGVudChuLG8se3BhcmVudDpudWxsfSl9cmV0dXJuIG4uX3RlbXBsYXRlSW5mb31zdGF0aWMgX3BhcnNlVGVtcGxhdGVDb250ZW50KG4saSxvKXtyZXR1cm4gdGhpcy5fcGFyc2VUZW1wbGF0ZU5vZGUobi5jb250ZW50LGksbyl9c3RhdGljIF9wYXJzZVRlbXBsYXRlTm9kZShuLGksbyl7bGV0IGE9ITEscz1uO3JldHVybiBzLmxvY2FsTmFtZT09InRlbXBsYXRlIiYmIXMuaGFzQXR0cmlidXRlKCJwcmVzZXJ2ZS1jb250ZW50Iik/YT10aGlzLl9wYXJzZVRlbXBsYXRlTmVzdGVkVGVtcGxhdGUocyxpLG8pfHxhOnMubG9jYWxOYW1lPT09InNsb3QiJiYoaS5oYXNJbnNlcnRpb25Qb2ludD0hMCksWXZlKHMpLHMuZmlyc3RDaGlsZCYmdGhpcy5fcGFyc2VUZW1wbGF0ZUNoaWxkTm9kZXMocyxpLG8pLHMuaGFzQXR0cmlidXRlcyYmcy5oYXNBdHRyaWJ1dGVzKCkmJihhPXRoaXMuX3BhcnNlVGVtcGxhdGVOb2RlQXR0cmlidXRlcyhzLGksbyl8fGEpLGF8fG8ubm90ZWR9c3RhdGljIF9wYXJzZVRlbXBsYXRlQ2hpbGROb2RlcyhuLGksbyl7aWYoIShuLmxvY2FsTmFtZT09PSJzY3JpcHQifHxuLmxvY2FsTmFtZT09PSJzdHlsZSIpKWZvcihsZXQgYT1uLmZpcnN0Q2hpbGQscz0wLGw7YTthPWwpe2lmKGEubG9jYWxOYW1lPT0idGVtcGxhdGUiJiYoYT1qdmUoYSkpLGw9YS5uZXh0U2libGluZyxhLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpe2xldCB1PWw7Zm9yKDt1JiZ1Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU7KWEudGV4dENvbnRlbnQrPXUudGV4dENvbnRlbnQsbD11Lm5leHRTaWJsaW5nLG4ucmVtb3ZlQ2hpbGQodSksdT1sO2lmKGkuc3RyaXBXaGl0ZVNwYWNlJiYhYS50ZXh0Q29udGVudC50cmltKCkpe24ucmVtb3ZlQ2hpbGQoYSk7Y29udGludWV9fWxldCBjPXtwYXJlbnRJbmRleDpzLHBhcmVudEluZm86b307dGhpcy5fcGFyc2VUZW1wbGF0ZU5vZGUoYSxpLGMpJiYoYy5pbmZvSW5kZXg9aS5ub2RlSW5mb0xpc3QucHVzaChjKS0xKSxhLnBhcmVudE5vZGUmJnMrK319c3RhdGljIF9wYXJzZVRlbXBsYXRlTmVzdGVkVGVtcGxhdGUobixpLG8pe2xldCBhPW4scz10aGlzLl9wYXJzZVRlbXBsYXRlKGEsaSk7cmV0dXJuKHMuY29udGVudD1hLmNvbnRlbnQub3duZXJEb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkpLmFwcGVuZENoaWxkKGEuY29udGVudCksby50ZW1wbGF0ZUluZm89cywhMH1zdGF0aWMgX3BhcnNlVGVtcGxhdGVOb2RlQXR0cmlidXRlcyhuLGksbyl7bGV0IGE9ITEscz1BcnJheS5mcm9tKG4uYXR0cmlidXRlcyk7Zm9yKGxldCBsPXMubGVuZ3RoLTEsYztjPXNbbF07bC0tKWE9dGhpcy5fcGFyc2VUZW1wbGF0ZU5vZGVBdHRyaWJ1dGUobixpLG8sYy5uYW1lLGMudmFsdWUpfHxhO3JldHVybiBhfXN0YXRpYyBfcGFyc2VUZW1wbGF0ZU5vZGVBdHRyaWJ1dGUobixpLG8sYSxzKXtyZXR1cm4gYS5zbGljZSgwLDMpPT09Im9uLSI/KG4ucmVtb3ZlQXR0cmlidXRlKGEpLG8uZXZlbnRzPW8uZXZlbnRzfHxbXSxvLmV2ZW50cy5wdXNoKHtuYW1lOmEuc2xpY2UoMyksdmFsdWU6c30pLCEwKTphPT09ImlkIj8oby5pZD1zLCEwKTohMX1zdGF0aWMgX2NvbnRlbnRGb3JUZW1wbGF0ZShuKXtsZXQgaT1uLl90ZW1wbGF0ZUluZm87cmV0dXJuIGkmJmkuY29udGVudHx8bi5jb250ZW50fV9zdGFtcFRlbXBsYXRlKG4saSl7biYmIW4uY29udGVudCYmd2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQmJkhUTUxUZW1wbGF0ZUVsZW1lbnQuZGVjb3JhdGUmJkhUTUxUZW1wbGF0ZUVsZW1lbnQuZGVjb3JhdGUobiksaT1pfHx0aGlzLmNvbnN0cnVjdG9yLl9wYXJzZVRlbXBsYXRlKG4pO2xldCBvPWkubm9kZUluZm9MaXN0LGE9aS5jb250ZW50fHxuLmNvbnRlbnQscz1kb2N1bWVudC5pbXBvcnROb2RlKGEsITApO3MuX19ub0luc2VydGlvblBvaW50PSFpLmhhc0luc2VydGlvblBvaW50O2xldCBsPXMubm9kZUxpc3Q9bmV3IEFycmF5KG8ubGVuZ3RoKTtzLiQ9e307Zm9yKGxldCBjPTAsdT1vLmxlbmd0aCxoO2M8dSYmKGg9b1tjXSk7YysrKXtsZXQgZj1sW2NdPWhtdChzLGgpO1h2ZSh0aGlzLHMuJCxmLGgpLEt2ZSh0aGlzLGYsaCxpKSwkdmUodGhpcyxmLGgpfXJldHVybiBzPXMsc31fYWRkTWV0aG9kRXZlbnRMaXN0ZW5lclRvTm9kZShuLGksbyxhKXthPWF8fG47bGV0IHM9WnZlKGEsaSxvKTtyZXR1cm4gdGhpcy5fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZShuLGkscyksc31fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZShuLGksbyl7bi5hZGRFdmVudExpc3RlbmVyKGksbyl9X3JlbW92ZUV2ZW50TGlzdGVuZXJGcm9tTm9kZShuLGksbyl7bi5yZW1vdmVFdmVudExpc3RlbmVyKGksbyl9fXJldHVybiB0fSk7dmFyIGpNPTAsWE09W10senI9e0NPTVBVVEU6Il9fY29tcHV0ZUVmZmVjdHMiLFJFRkxFQ1Q6Il9fcmVmbGVjdEVmZmVjdHMiLE5PVElGWToiX19ub3RpZnlFZmZlY3RzIixQUk9QQUdBVEU6Il9fcHJvcGFnYXRlRWZmZWN0cyIsT0JTRVJWRToiX19vYnNlcnZlRWZmZWN0cyIsUkVBRF9PTkxZOiJfX3JlYWRPbmx5In0seG10PSJfX2NvbXB1dGVJbmZvIixKdmU9L1tBLVpdLztmdW5jdGlvbiB4RyhlLHQscil7bGV0IG49ZVt0XTtpZighbiluPWVbdF09e307ZWxzZSBpZighZS5oYXNPd25Qcm9wZXJ0eSh0KSYmKG49ZVt0XT1PYmplY3QuY3JlYXRlKGVbdF0pLHIpKWZvcihsZXQgaSBpbiBuKXtsZXQgbz1uW2ldLGE9bltpXT1BcnJheShvLmxlbmd0aCk7Zm9yKGxldCBzPTA7czxvLmxlbmd0aDtzKyspYVtzXT1vW3NdfXJldHVybiBufWZ1bmN0aW9uIFlNKGUsdCxyLG4saSxvKXtpZih0KXtsZXQgYT0hMSxzPWpNKys7Zm9yKGxldCBsIGluIHIpe2xldCBjPWk/YXUobCk6bCx1PXRbY107aWYodSlmb3IobGV0IGg9MCxmPXUubGVuZ3RoLHA7aDxmJiYocD11W2hdKTtoKyspKCFwLmluZm98fHAuaW5mby5sYXN0UnVuIT09cykmJighaXx8TUcobCxwLnRyaWdnZXIpKSYmKHAuaW5mbyYmKHAuaW5mby5sYXN0UnVuPXMpLHAuZm4oZSxsLHIsbixwLmluZm8saSxvKSxhPSEwKX1yZXR1cm4gYX1yZXR1cm4hMX1mdW5jdGlvbiBRdmUoZSx0LHIsbixpLG8sYSxzKXtsZXQgbD0hMSxjPWE/YXUobik6bix1PXRbY107aWYodSlmb3IobGV0IGg9MCxmPXUubGVuZ3RoLHA7aDxmJiYocD11W2hdKTtoKyspKCFwLmluZm98fHAuaW5mby5sYXN0UnVuIT09cikmJighYXx8TUcobixwLnRyaWdnZXIpKSYmKHAuaW5mbyYmKHAuaW5mby5sYXN0UnVuPXIpLHAuZm4oZSxuLGksbyxwLmluZm8sYSxzKSxsPSEwKTtyZXR1cm4gbH1mdW5jdGlvbiBNRyhlLHQpe2lmKHQpe2xldCByPXQubmFtZTtyZXR1cm4gcj09ZXx8ISEodC5zdHJ1Y3R1cmVkJiZfRyhyLGUpKXx8ISEodC53aWxkY2FyZCYmQXgocixlKSl9ZWxzZSByZXR1cm4hMH1mdW5jdGlvbiBwbXQoZSx0LHIsbixpKXtsZXQgbz10eXBlb2YgaS5tZXRob2Q9PSJzdHJpbmciP2VbaS5tZXRob2RdOmkubWV0aG9kLGE9aS5wcm9wZXJ0eTtvP28uY2FsbChlLGUuX19kYXRhW2FdLG5bYV0pOmkuZHluYW1pY0ZufHxjb25zb2xlLndhcm4oIm9ic2VydmVyIG1ldGhvZCBgIitpLm1ldGhvZCsiYCBub3QgZGVmaW5lZCIpfWZ1bmN0aW9uIHQxZShlLHQscixuLGkpe2xldCBvPWVbenIuTk9USUZZXSxhLHM9ak0rKztmb3IobGV0IGMgaW4gdCl0W2NdJiYobyYmUXZlKGUsbyxzLGMscixuLGkpfHxpJiZlMWUoZSxjLHIpKSYmKGE9ITApO2xldCBsO2EmJihsPWUuX19kYXRhSG9zdCkmJmwuX2ludmFsaWRhdGVQcm9wZXJ0aWVzJiZsLl9pbnZhbGlkYXRlUHJvcGVydGllcygpfWZ1bmN0aW9uIGUxZShlLHQscil7bGV0IG49YXUodCk7aWYobiE9PXQpe2xldCBpPUl4KG4pKyItY2hhbmdlZCI7cmV0dXJuIGJtdChlLGksclt0XSx0KSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBibXQoZSx0LHIsbil7bGV0IGk9e3ZhbHVlOnIscXVldWVQcm9wZXJ0eTohMH07biYmKGkucGF0aD1uKSx1ZShlKS5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCh0LHtkZXRhaWw6aX0pKX1mdW5jdGlvbiByMWUoZSx0LHIsbixpLG8pe2xldCBzPShvP2F1KHQpOnQpIT10P3Q6bnVsbCxsPXM/Tm8oZSxzKTplLl9fZGF0YVt0XTtzJiZsPT09dm9pZCAwJiYobD1yW3RdKSxibXQoZSxpLmV2ZW50TmFtZSxsLHMpfWZ1bmN0aW9uIG4xZShlLHQscixuLGkpe2xldCBvLGE9ZS5kZXRhaWwscz1hJiZhLnBhdGg7cz8obj1tcChyLG4scyksbz1hJiZhLnZhbHVlKTpvPWUuY3VycmVudFRhcmdldFtyXSxvPWk/IW86bywoIXRbenIuUkVBRF9PTkxZXXx8IXRbenIuUkVBRF9PTkxZXVtuXSkmJnQuX3NldFBlbmRpbmdQcm9wZXJ0eU9yUGF0aChuLG8sITAsQm9vbGVhbihzKSkmJighYXx8IWEucXVldWVQcm9wZXJ0eSkmJnQuX2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl9ZnVuY3Rpb24gaTFlKGUsdCxyLG4saSl7bGV0IG89ZS5fX2RhdGFbdF07Vk0mJihvPVZNKG8saS5hdHRyTmFtZSwiYXR0cmlidXRlIixlKSksZS5fcHJvcGVydHlUb0F0dHJpYnV0ZSh0LGkuYXR0ck5hbWUsbyl9ZnVuY3Rpb24gbzFlKGUsdCxyLG4pe2xldCBpPWVbenIuQ09NUFVURV07aWYoaSlpZigkZHQpe2pNKys7bGV0IG89czFlKGUpLGE9W107Zm9yKGxldCBsIGluIHQpZG10KGwsaSxhLG8sbik7bGV0IHM7Zm9yKDtzPWEuc2hpZnQoKTspd210KGUsIiIsdCxyLHMpJiZkbXQocy5tZXRob2RJbmZvLGksYSxvLG4pO09iamVjdC5hc3NpZ24ocixlLl9fZGF0YU9sZCksT2JqZWN0LmFzc2lnbih0LGUuX19kYXRhUGVuZGluZyksZS5fX2RhdGFQZW5kaW5nPW51bGx9ZWxzZXtsZXQgbz10O2Zvcig7WU0oZSxpLG8scixuKTspT2JqZWN0LmFzc2lnbihyLGUuX19kYXRhT2xkKSxPYmplY3QuYXNzaWduKHQsZS5fX2RhdGFQZW5kaW5nKSxvPWUuX19kYXRhUGVuZGluZyxlLl9fZGF0YVBlbmRpbmc9bnVsbH19dmFyIGExZT0oZSx0LHIpPT57bGV0IG49MCxpPXQubGVuZ3RoLTEsbz0tMTtmb3IoO248PWk7KXtsZXQgYT1uK2k+PjEscz1yLmdldCh0W2FdLm1ldGhvZEluZm8pLXIuZ2V0KGUubWV0aG9kSW5mbyk7aWYoczwwKW49YSsxO2Vsc2UgaWYocz4wKWk9YS0xO2Vsc2V7bz1hO2JyZWFrfX1vPDAmJihvPWkrMSksdC5zcGxpY2UobywwLGUpfSxkbXQ9KGUsdCxyLG4saSk9PntsZXQgbz1pP2F1KGUpOmUsYT10W29dO2lmKGEpZm9yKGxldCBzPTA7czxhLmxlbmd0aDtzKyspe2xldCBsPWFbc107bC5pbmZvLmxhc3RSdW4hPT1qTSYmKCFpfHxNRyhlLGwudHJpZ2dlcikpJiYobC5pbmZvLmxhc3RSdW49ak0sYTFlKGwuaW5mbyxyLG4pKX19O2Z1bmN0aW9uIHMxZShlKXtsZXQgdD1lLmNvbnN0cnVjdG9yLl9fb3JkZXJlZENvbXB1dGVkRGVwcztpZighdCl7dD1uZXcgTWFwO2xldCByPWVbenIuQ09NUFVURV0se2NvdW50czpuLHJlYWR5OmksdG90YWw6b309bDFlKGUpLGE7Zm9yKDthPWkuc2hpZnQoKTspe3Quc2V0KGEsdC5zaXplKTtsZXQgcz1yW2FdO3MmJnMuZm9yRWFjaChsPT57bGV0IGM9bC5pbmZvLm1ldGhvZEluZm87LS1vLC0tbltjXT09PTAmJmkucHVzaChjKX0pfW8hPT0wJiZjb25zb2xlLndhcm4oYENvbXB1dGVkIGdyYXBoIGZvciAke2UubG9jYWxOYW1lfSBpbmNvbXBsZXRlOyBjaXJjdWxhcj9gKSxlLmNvbnN0cnVjdG9yLl9fb3JkZXJlZENvbXB1dGVkRGVwcz10fXJldHVybiB0fWZ1bmN0aW9uIGwxZShlKXtsZXQgdD1lW3htdF0scj17fSxuPWVbenIuQ09NUFVURV0saT1bXSxvPTA7Zm9yKGxldCBhIGluIHQpe2xldCBzPXRbYV07bys9clthXT1zLmFyZ3MuZmlsdGVyKGw9PiFsLmxpdGVyYWwpLmxlbmd0aCsocy5keW5hbWljRm4/MTowKX1mb3IobGV0IGEgaW4gbil0W2FdfHxpLnB1c2goYSk7cmV0dXJue2NvdW50czpyLHJlYWR5OmksdG90YWw6b319ZnVuY3Rpb24gd210KGUsdCxyLG4saSl7bGV0IG89U0coZSx0LHIsbixpKTtpZihvPT09WE0pcmV0dXJuITE7bGV0IGE9aS5tZXRob2RJbmZvO3JldHVybiBlLl9fZGF0YUhhc0FjY2Vzc29yJiZlLl9fZGF0YUhhc0FjY2Vzc29yW2FdP2UuX3NldFBlbmRpbmdQcm9wZXJ0eShhLG8sITApOihlW2FdPW8sITEpfWZ1bmN0aW9uIGMxZShlLHQscil7bGV0IG49ZS5fX2RhdGFMaW5rZWRQYXRocztpZihuKXtsZXQgaTtmb3IobGV0IG8gaW4gbil7bGV0IGE9bltvXTtBeChvLHQpPyhpPW1wKG8sYSx0KSxlLl9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgoaSxyLCEwLCEwKSk6QXgoYSx0KSYmKGk9bXAoYSxvLHQpLGUuX3NldFBlbmRpbmdQcm9wZXJ0eU9yUGF0aChpLHIsITAsITApKX19fWZ1bmN0aW9uIGJHKGUsdCxyLG4saSxvLGEpe3IuYmluZGluZ3M9ci5iaW5kaW5nc3x8W107bGV0IHM9e2tpbmQ6bix0YXJnZXQ6aSxwYXJ0czpvLGxpdGVyYWw6YSxpc0NvbXBvdW5kOm8ubGVuZ3RoIT09MX07aWYoci5iaW5kaW5ncy5wdXNoKHMpLGQxZShzKSl7bGV0e2V2ZW50OmMsbmVnYXRlOnV9PXMucGFydHNbMF07cy5saXN0ZW5lckV2ZW50PWN8fEl4KGkpKyItY2hhbmdlZCIscy5saXN0ZW5lck5lZ2F0ZT11fWxldCBsPXQubm9kZUluZm9MaXN0Lmxlbmd0aDtmb3IobGV0IGM9MDtjPHMucGFydHMubGVuZ3RoO2MrKyl7bGV0IHU9cy5wYXJ0c1tjXTt1LmNvbXBvdW5kSW5kZXg9Yyx1MWUoZSx0LHMsdSxsKX19ZnVuY3Rpb24gdTFlKGUsdCxyLG4saSl7aWYoIW4ubGl0ZXJhbClpZihyLmtpbmQ9PT0iYXR0cmlidXRlIiYmci50YXJnZXRbMF09PT0iLSIpY29uc29sZS53YXJuKCJDYW5ub3Qgc2V0IGF0dHJpYnV0ZSAiK3IudGFyZ2V0KycgYmVjYXVzZSAiLSIgaXMgbm90IGEgdmFsaWQgYXR0cmlidXRlIHN0YXJ0aW5nIGNoYXJhY3RlcicpO2Vsc2V7bGV0IG89bi5kZXBlbmRlbmNpZXMsYT17aW5kZXg6aSxiaW5kaW5nOnIscGFydDpuLGV2YWx1YXRvcjplfTtmb3IobGV0IHM9MDtzPG8ubGVuZ3RoO3MrKyl7bGV0IGw9b1tzXTt0eXBlb2YgbD09InN0cmluZyImJihsPU1tdChsKSxsLndpbGRjYXJkPSEwKSxlLl9hZGRUZW1wbGF0ZVByb3BlcnR5RWZmZWN0KHQsbC5yb290UHJvcGVydHkse2ZuOmgxZSxpbmZvOmEsdHJpZ2dlcjpsfSl9fX1mdW5jdGlvbiBoMWUoZSx0LHIsbixpLG8sYSl7bGV0IHM9YVtpLmluZGV4XSxsPWkuYmluZGluZyxjPWkucGFydDtpZihvJiZjLnNvdXJjZSYmdC5sZW5ndGg+Yy5zb3VyY2UubGVuZ3RoJiZsLmtpbmQ9PSJwcm9wZXJ0eSImJiFsLmlzQ29tcG91bmQmJnMuX19pc1Byb3BlcnR5RWZmZWN0c0NsaWVudCYmcy5fX2RhdGFIYXNBY2Nlc3NvciYmcy5fX2RhdGFIYXNBY2Nlc3NvcltsLnRhcmdldF0pe2xldCB1PXJbdF07dD1tcChjLnNvdXJjZSxsLnRhcmdldCx0KSxzLl9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgodCx1LCExLCEwKSYmZS5fZW5xdWV1ZUNsaWVudChzKX1lbHNle2xldCB1PWkuZXZhbHVhdG9yLl9ldmFsdWF0ZUJpbmRpbmcoZSxjLHQscixuLG8pO3UhPT1YTSYmZjFlKGUscyxsLGMsdSl9fWZ1bmN0aW9uIGYxZShlLHQscixuLGkpe2lmKGk9cDFlKHQsaSxyLG4pLFZNJiYoaT1WTShpLHIudGFyZ2V0LHIua2luZCx0KSksci5raW5kPT0iYXR0cmlidXRlIillLl92YWx1ZVRvTm9kZUF0dHJpYnV0ZSh0LGksci50YXJnZXQpO2Vsc2V7bGV0IG89ci50YXJnZXQ7dC5fX2lzUHJvcGVydHlFZmZlY3RzQ2xpZW50JiZ0Ll9fZGF0YUhhc0FjY2Vzc29yJiZ0Ll9fZGF0YUhhc0FjY2Vzc29yW29dPyghdFt6ci5SRUFEX09OTFldfHwhdFt6ci5SRUFEX09OTFldW29dKSYmdC5fc2V0UGVuZGluZ1Byb3BlcnR5KG8saSkmJmUuX2VucXVldWVDbGllbnQodCk6ZS5fc2V0VW5tYW5hZ2VkUHJvcGVydHlUb05vZGUodCxvLGkpfX1mdW5jdGlvbiBwMWUoZSx0LHIsbil7aWYoci5pc0NvbXBvdW5kKXtsZXQgaT1lLl9fZGF0YUNvbXBvdW5kU3RvcmFnZVtyLnRhcmdldF07aVtuLmNvbXBvdW5kSW5kZXhdPXQsdD1pLmpvaW4oIiIpfXJldHVybiByLmtpbmQhPT0iYXR0cmlidXRlIiYmKHIudGFyZ2V0PT09InRleHRDb250ZW50Inx8ci50YXJnZXQ9PT0idmFsdWUiJiYoZS5sb2NhbE5hbWU9PT0iaW5wdXQifHxlLmxvY2FsTmFtZT09PSJ0ZXh0YXJlYSIpKSYmKHQ9dD09bnVsbD8iIjp0KSx0fWZ1bmN0aW9uIGQxZShlKXtyZXR1cm4gQm9vbGVhbihlLnRhcmdldCkmJmUua2luZCE9ImF0dHJpYnV0ZSImJmUua2luZCE9InRleHQiJiYhZS5pc0NvbXBvdW5kJiZlLnBhcnRzWzBdLm1vZGU9PT0ieyJ9ZnVuY3Rpb24gbTFlKGUsdCl7bGV0e25vZGVMaXN0OnIsbm9kZUluZm9MaXN0Om59PXQ7aWYobi5sZW5ndGgpZm9yKGxldCBpPTA7aTxuLmxlbmd0aDtpKyspe2xldCBvPW5baV0sYT1yW2ldLHM9by5iaW5kaW5ncztpZihzKWZvcihsZXQgbD0wO2w8cy5sZW5ndGg7bCsrKXtsZXQgYz1zW2xdO2cxZShhLGMpLF8xZShhLGUsYyl9YS5fX2RhdGFIb3N0PWV9fWZ1bmN0aW9uIGcxZShlLHQpe2lmKHQuaXNDb21wb3VuZCl7bGV0IHI9ZS5fX2RhdGFDb21wb3VuZFN0b3JhZ2V8fChlLl9fZGF0YUNvbXBvdW5kU3RvcmFnZT17fSksbj10LnBhcnRzLGk9bmV3IEFycmF5KG4ubGVuZ3RoKTtmb3IobGV0IGE9MDthPG4ubGVuZ3RoO2ErKylpW2FdPW5bYV0ubGl0ZXJhbDtsZXQgbz10LnRhcmdldDtyW29dPWksdC5saXRlcmFsJiZ0LmtpbmQ9PSJwcm9wZXJ0eSImJihvPT09ImNsYXNzTmFtZSImJihlPXVlKGUpKSxlW29dPXQubGl0ZXJhbCl9fWZ1bmN0aW9uIF8xZShlLHQscil7aWYoci5saXN0ZW5lckV2ZW50KXtsZXQgbj1yLnBhcnRzWzBdO2UuYWRkRXZlbnRMaXN0ZW5lcihyLmxpc3RlbmVyRXZlbnQsZnVuY3Rpb24oaSl7bjFlKGksdCxyLnRhcmdldCxuLnNvdXJjZSxuLm5lZ2F0ZSl9KX19ZnVuY3Rpb24gbW10KGUsdCxyLG4saSxvKXtvPXQuc3RhdGljfHxvJiYodHlwZW9mIG8hPSJvYmplY3QifHxvW3QubWV0aG9kTmFtZV0pO2xldCBhPXttZXRob2ROYW1lOnQubWV0aG9kTmFtZSxhcmdzOnQuYXJncyxtZXRob2RJbmZvOmksZHluYW1pY0ZuOm99O2ZvcihsZXQgcz0wLGw7czx0LmFyZ3MubGVuZ3RoJiYobD10LmFyZ3Nbc10pO3MrKylsLmxpdGVyYWx8fGUuX2FkZFByb3BlcnR5RWZmZWN0KGwucm9vdFByb3BlcnR5LHIse2ZuOm4saW5mbzphLHRyaWdnZXI6bH0pO3JldHVybiBvJiZlLl9hZGRQcm9wZXJ0eUVmZmVjdCh0Lm1ldGhvZE5hbWUscix7Zm46bixpbmZvOmF9KSxhfWZ1bmN0aW9uIFNHKGUsdCxyLG4saSl7bGV0IG89ZS5fbWV0aG9kSG9zdHx8ZSxhPW9baS5tZXRob2ROYW1lXTtpZihhKXtsZXQgcz1lLl9tYXJzaGFsQXJncyhpLmFyZ3MsdCxyKTtyZXR1cm4gcz09PVhNP1hNOmEuYXBwbHkobyxzKX1lbHNlIGkuZHluYW1pY0ZufHxjb25zb2xlLndhcm4oIm1ldGhvZCBgIitpLm1ldGhvZE5hbWUrImAgbm90IGRlZmluZWQiKX12YXIgeTFlPVtdLFNtdD0iKD86W2EtekEtWl8kXVtcXHcuOiRcXC0qXSopIix2MWU9Iig/OlstK10/WzAtOV0qXFwuP1swLTldKyg/OltlRV1bLStdP1swLTldKyk/KSIseDFlPSIoPzonKD86W14nXFxcXF18XFxcXC4pKicpIixiMWU9Jyg/OiIoPzpbXiJcXFxcXXxcXFxcLikqIiknLHcxZT0iKD86Iit4MWUrInwiK2IxZSsiKSIsZ210PSIoPzooIitTbXQrInwiK3YxZSsifCIrdzFlKyIpXFxzKikiLFMxZT0iKD86IitnbXQrIig/OixcXHMqIitnbXQrIikqKSIsTTFlPSIoPzpcXChcXHMqKD86IitTMWUrIj8pXFwpXFxzKikiLEUxZT0iKCIrU210KyJcXHMqIitNMWUrIj8pIixUMWU9IihcXFtcXFt8e3spXFxzKiIsQzFlPSIoPzpdXXx9fSkiLEExZT0iKD86KCEpXFxzKik/IixQMWU9VDFlK0ExZStFMWUrQzFlLF9tdD1uZXcgUmVnRXhwKFAxZSwiZyIpO2Z1bmN0aW9uIHltdChlKXtsZXQgdD0iIjtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl0Kz1lW3JdLmxpdGVyYWx8fCIiO3JldHVybiB0fWZ1bmN0aW9uIHdHKGUpe2xldCB0PWUubWF0Y2goLyhbXlxzXSs/KVwoKFtcc1xTXSopXCkvKTtpZih0KXtsZXQgbj17bWV0aG9kTmFtZTp0WzFdLHN0YXRpYzohMCxhcmdzOnkxZX07aWYodFsyXS50cmltKCkpe2xldCBpPXRbMl0ucmVwbGFjZSgvXFwsL2csIiZjb21tYTsiKS5zcGxpdCgiLCIpO3JldHVybiBJMWUoaSxuKX1lbHNlIHJldHVybiBufXJldHVybiBudWxsfWZ1bmN0aW9uIEkxZShlLHQpe3JldHVybiB0LmFyZ3M9ZS5tYXAoZnVuY3Rpb24ocil7bGV0IG49TW10KHIpO3JldHVybiBuLmxpdGVyYWx8fCh0LnN0YXRpYz0hMSksbn0sdGhpcyksdH1mdW5jdGlvbiBNbXQoZSl7bGV0IHQ9ZS50cmltKCkucmVwbGFjZSgvJmNvbW1hOy9nLCIsIikucmVwbGFjZSgvXFwoLikvZywiJDEiKSxyPXtuYW1lOnQsdmFsdWU6IiIsbGl0ZXJhbDohMX0sbj10WzBdO3N3aXRjaChuPT09Ii0iJiYobj10WzFdKSxuPj0iMCImJm48PSI5IiYmKG49IiMiKSxuKXtjYXNlIiciOmNhc2UnIic6ci52YWx1ZT10LnNsaWNlKDEsLTEpLHIubGl0ZXJhbD0hMDticmVhaztjYXNlIiMiOnIudmFsdWU9TnVtYmVyKHQpLHIubGl0ZXJhbD0hMDticmVha31yZXR1cm4gci5saXRlcmFsfHwoci5yb290UHJvcGVydHk9YXUodCksci5zdHJ1Y3R1cmVkPURJKHQpLHIuc3RydWN0dXJlZCYmKHIud2lsZGNhcmQ9dC5zbGljZSgtMik9PSIuKiIsci53aWxkY2FyZCYmKHIubmFtZT10LnNsaWNlKDAsLTIpKSkpLHJ9ZnVuY3Rpb24gdm10KGUsdCxyKXtsZXQgbj1ObyhlLHIpO3JldHVybiBuPT09dm9pZCAwJiYobj10W3JdKSxufWZ1bmN0aW9uIEVtdChlLHQscixuKXtsZXQgaT17aW5kZXhTcGxpY2VzOm59O2tJJiYhZS5fb3ZlcnJpZGVMZWdhY3lVbmRlZmluZWQmJih0LnNwbGljZXM9aSksZS5ub3RpZnlQYXRoKHIrIi5zcGxpY2VzIixpKSxlLm5vdGlmeVBhdGgocisiLmxlbmd0aCIsdC5sZW5ndGgpLGtJJiYhZS5fb3ZlcnJpZGVMZWdhY3lVbmRlZmluZWQmJihpLmluZGV4U3BsaWNlcz1bXSl9ZnVuY3Rpb24gR00oZSx0LHIsbixpLG8pe0VtdChlLHQscixbe2luZGV4Om4sYWRkZWRDb3VudDppLHJlbW92ZWQ6byxvYmplY3Q6dCx0eXBlOiJzcGxpY2UifV0pfWZ1bmN0aW9uIEwxZShlKXtyZXR1cm4gZVswXS50b1VwcGVyQ2FzZSgpK2Uuc3Vic3RyaW5nKDEpfXZhciBoXz1ObihlPT57bGV0IHQ9Zm10KEhJKGUpKTtjbGFzcyByIGV4dGVuZHMgdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fX2lzUHJvcGVydHlFZmZlY3RzQ2xpZW50PSEwLHRoaXMuX19kYXRhQ2xpZW50c1JlYWR5LHRoaXMuX19kYXRhUGVuZGluZ0NsaWVudHMsdGhpcy5fX2RhdGFUb05vdGlmeSx0aGlzLl9fZGF0YUxpbmtlZFBhdGhzLHRoaXMuX19kYXRhSGFzUGF0aHMsdGhpcy5fX2RhdGFDb21wb3VuZFN0b3JhZ2UsdGhpcy5fX2RhdGFIb3N0LHRoaXMuX19kYXRhVGVtcCx0aGlzLl9fZGF0YUNsaWVudHNJbml0aWFsaXplZCx0aGlzLl9fZGF0YSx0aGlzLl9fZGF0YVBlbmRpbmcsdGhpcy5fX2RhdGFPbGQsdGhpcy5fX2NvbXB1dGVFZmZlY3RzLHRoaXMuX19jb21wdXRlSW5mbyx0aGlzLl9fcmVmbGVjdEVmZmVjdHMsdGhpcy5fX25vdGlmeUVmZmVjdHMsdGhpcy5fX3Byb3BhZ2F0ZUVmZmVjdHMsdGhpcy5fX29ic2VydmVFZmZlY3RzLHRoaXMuX19yZWFkT25seSx0aGlzLl9fdGVtcGxhdGVJbmZvLHRoaXMuX292ZXJyaWRlTGVnYWN5VW5kZWZpbmVkfWdldCBQUk9QRVJUWV9FRkZFQ1RfVFlQRVMoKXtyZXR1cm4genJ9X2luaXRpYWxpemVQcm9wZXJ0aWVzKCl7c3VwZXIuX2luaXRpYWxpemVQcm9wZXJ0aWVzKCksdGhpcy5fcmVnaXN0ZXJIb3N0KCksdGhpcy5fX2RhdGFDbGllbnRzUmVhZHk9ITEsdGhpcy5fX2RhdGFQZW5kaW5nQ2xpZW50cz1udWxsLHRoaXMuX19kYXRhVG9Ob3RpZnk9bnVsbCx0aGlzLl9fZGF0YUxpbmtlZFBhdGhzPW51bGwsdGhpcy5fX2RhdGFIYXNQYXRocz0hMSx0aGlzLl9fZGF0YUNvbXBvdW5kU3RvcmFnZT10aGlzLl9fZGF0YUNvbXBvdW5kU3RvcmFnZXx8bnVsbCx0aGlzLl9fZGF0YUhvc3Q9dGhpcy5fX2RhdGFIb3N0fHxudWxsLHRoaXMuX19kYXRhVGVtcD17fSx0aGlzLl9fZGF0YUNsaWVudHNJbml0aWFsaXplZD0hMX1fcmVnaXN0ZXJIb3N0KCl7aWYoV00ubGVuZ3RoKXtsZXQgaT1XTVtXTS5sZW5ndGgtMV07aS5fZW5xdWV1ZUNsaWVudCh0aGlzKSx0aGlzLl9fZGF0YUhvc3Q9aX19X2luaXRpYWxpemVQcm90b1Byb3BlcnRpZXMoaSl7dGhpcy5fX2RhdGE9T2JqZWN0LmNyZWF0ZShpKSx0aGlzLl9fZGF0YVBlbmRpbmc9T2JqZWN0LmNyZWF0ZShpKSx0aGlzLl9fZGF0YU9sZD17fX1faW5pdGlhbGl6ZUluc3RhbmNlUHJvcGVydGllcyhpKXtsZXQgbz10aGlzW3pyLlJFQURfT05MWV07Zm9yKGxldCBhIGluIGkpKCFvfHwhb1thXSkmJih0aGlzLl9fZGF0YVBlbmRpbmc9dGhpcy5fX2RhdGFQZW5kaW5nfHx7fSx0aGlzLl9fZGF0YU9sZD10aGlzLl9fZGF0YU9sZHx8e30sdGhpcy5fX2RhdGFbYV09dGhpcy5fX2RhdGFQZW5kaW5nW2FdPWlbYV0pfV9hZGRQcm9wZXJ0eUVmZmVjdChpLG8sYSl7dGhpcy5fY3JlYXRlUHJvcGVydHlBY2Nlc3NvcihpLG89PXpyLlJFQURfT05MWSk7bGV0IHM9eEcodGhpcyxvLCEwKVtpXTtzfHwocz10aGlzW29dW2ldPVtdKSxzLnB1c2goYSl9X3JlbW92ZVByb3BlcnR5RWZmZWN0KGksbyxhKXtsZXQgcz14Ryh0aGlzLG8sITApW2ldLGw9cy5pbmRleE9mKGEpO2w+PTAmJnMuc3BsaWNlKGwsMSl9X2hhc1Byb3BlcnR5RWZmZWN0KGksbyl7bGV0IGE9dGhpc1tvXTtyZXR1cm4gQm9vbGVhbihhJiZhW2ldKX1faGFzUmVhZE9ubHlFZmZlY3QoaSl7cmV0dXJuIHRoaXMuX2hhc1Byb3BlcnR5RWZmZWN0KGksenIuUkVBRF9PTkxZKX1faGFzTm90aWZ5RWZmZWN0KGkpe3JldHVybiB0aGlzLl9oYXNQcm9wZXJ0eUVmZmVjdChpLHpyLk5PVElGWSl9X2hhc1JlZmxlY3RFZmZlY3QoaSl7cmV0dXJuIHRoaXMuX2hhc1Byb3BlcnR5RWZmZWN0KGksenIuUkVGTEVDVCl9X2hhc0NvbXB1dGVkRWZmZWN0KGkpe3JldHVybiB0aGlzLl9oYXNQcm9wZXJ0eUVmZmVjdChpLHpyLkNPTVBVVEUpfV9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgoaSxvLGEscyl7aWYoc3x8YXUoQXJyYXkuaXNBcnJheShpKT9pWzBdOmkpIT09aSl7aWYoIXMpe2xldCBsPU5vKHRoaXMsaSk7aWYoaT15Ryh0aGlzLGksbyksIWl8fCFzdXBlci5fc2hvdWxkUHJvcGVydHlDaGFuZ2UoaSxvLGwpKXJldHVybiExfWlmKHRoaXMuX19kYXRhSGFzUGF0aHM9ITAsdGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5KGksbyxhKSlyZXR1cm4gYzFlKHRoaXMsaSxvKSwhMH1lbHNle2lmKHRoaXMuX19kYXRhSGFzQWNjZXNzb3ImJnRoaXMuX19kYXRhSGFzQWNjZXNzb3JbaV0pcmV0dXJuIHRoaXMuX3NldFBlbmRpbmdQcm9wZXJ0eShpLG8sYSk7dGhpc1tpXT1vfXJldHVybiExfV9zZXRVbm1hbmFnZWRQcm9wZXJ0eVRvTm9kZShpLG8sYSl7KGEhPT1pW29dfHx0eXBlb2YgYT09Im9iamVjdCIpJiYobz09PSJjbGFzc05hbWUiJiYoaT11ZShpKSksaVtvXT1hKX1fc2V0UGVuZGluZ1Byb3BlcnR5KGksbyxhKXtsZXQgcz10aGlzLl9fZGF0YUhhc1BhdGhzJiZESShpKSxsPXM/dGhpcy5fX2RhdGFUZW1wOnRoaXMuX19kYXRhO3JldHVybiB0aGlzLl9zaG91bGRQcm9wZXJ0eUNoYW5nZShpLG8sbFtpXSk/KHRoaXMuX19kYXRhUGVuZGluZ3x8KHRoaXMuX19kYXRhUGVuZGluZz17fSx0aGlzLl9fZGF0YU9sZD17fSksaSBpbiB0aGlzLl9fZGF0YU9sZHx8KHRoaXMuX19kYXRhT2xkW2ldPXRoaXMuX19kYXRhW2ldKSxzP3RoaXMuX19kYXRhVGVtcFtpXT1vOnRoaXMuX19kYXRhW2ldPW8sdGhpcy5fX2RhdGFQZW5kaW5nW2ldPW8sKHN8fHRoaXNbenIuTk9USUZZXSYmdGhpc1t6ci5OT1RJRlldW2ldKSYmKHRoaXMuX19kYXRhVG9Ob3RpZnk9dGhpcy5fX2RhdGFUb05vdGlmeXx8e30sdGhpcy5fX2RhdGFUb05vdGlmeVtpXT1hKSwhMCk6ITF9X3NldFByb3BlcnR5KGksbyl7dGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5KGksbywhMCkmJnRoaXMuX2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl9X2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl7dGhpcy5fX2RhdGFSZWFkeSYmdGhpcy5fZmx1c2hQcm9wZXJ0aWVzKCl9X2VucXVldWVDbGllbnQoaSl7dGhpcy5fX2RhdGFQZW5kaW5nQ2xpZW50cz10aGlzLl9fZGF0YVBlbmRpbmdDbGllbnRzfHxbXSxpIT09dGhpcyYmdGhpcy5fX2RhdGFQZW5kaW5nQ2xpZW50cy5wdXNoKGkpfV9mbHVzaENsaWVudHMoKXt0aGlzLl9fZGF0YUNsaWVudHNSZWFkeT90aGlzLl9fZW5hYmxlT3JGbHVzaENsaWVudHMoKToodGhpcy5fX2RhdGFDbGllbnRzUmVhZHk9ITAsdGhpcy5fcmVhZHlDbGllbnRzKCksdGhpcy5fX2RhdGFSZWFkeT0hMCl9X19lbmFibGVPckZsdXNoQ2xpZW50cygpe2xldCBpPXRoaXMuX19kYXRhUGVuZGluZ0NsaWVudHM7aWYoaSl7dGhpcy5fX2RhdGFQZW5kaW5nQ2xpZW50cz1udWxsO2ZvcihsZXQgbz0wO288aS5sZW5ndGg7bysrKXtsZXQgYT1pW29dO2EuX19kYXRhRW5hYmxlZD9hLl9fZGF0YVBlbmRpbmcmJmEuX2ZsdXNoUHJvcGVydGllcygpOmEuX2VuYWJsZVByb3BlcnRpZXMoKX19fV9yZWFkeUNsaWVudHMoKXt0aGlzLl9fZW5hYmxlT3JGbHVzaENsaWVudHMoKX1zZXRQcm9wZXJ0aWVzKGksbyl7Zm9yKGxldCBhIGluIGkpKG98fCF0aGlzW3pyLlJFQURfT05MWV18fCF0aGlzW3pyLlJFQURfT05MWV1bYV0pJiZ0aGlzLl9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgoYSxpW2FdLCEwKTt0aGlzLl9pbnZhbGlkYXRlUHJvcGVydGllcygpfXJlYWR5KCl7dGhpcy5fZmx1c2hQcm9wZXJ0aWVzKCksdGhpcy5fX2RhdGFDbGllbnRzUmVhZHl8fHRoaXMuX2ZsdXNoQ2xpZW50cygpLHRoaXMuX19kYXRhUGVuZGluZyYmdGhpcy5fZmx1c2hQcm9wZXJ0aWVzKCl9X3Byb3BlcnRpZXNDaGFuZ2VkKGksbyxhKXtsZXQgcz10aGlzLl9fZGF0YUhhc1BhdGhzO3RoaXMuX19kYXRhSGFzUGF0aHM9ITE7bGV0IGw7bzFlKHRoaXMsbyxhLHMpLGw9dGhpcy5fX2RhdGFUb05vdGlmeSx0aGlzLl9fZGF0YVRvTm90aWZ5PW51bGwsdGhpcy5fcHJvcGFnYXRlUHJvcGVydHlDaGFuZ2VzKG8sYSxzKSx0aGlzLl9mbHVzaENsaWVudHMoKSxZTSh0aGlzLHRoaXNbenIuUkVGTEVDVF0sbyxhLHMpLFlNKHRoaXMsdGhpc1t6ci5PQlNFUlZFXSxvLGEscyksbCYmdDFlKHRoaXMsbCxvLGEscyksdGhpcy5fX2RhdGFDb3VudGVyPT0xJiYodGhpcy5fX2RhdGFUZW1wPXt9KX1fcHJvcGFnYXRlUHJvcGVydHlDaGFuZ2VzKGksbyxhKXt0aGlzW3pyLlBST1BBR0FURV0mJllNKHRoaXMsdGhpc1t6ci5QUk9QQUdBVEVdLGksbyxhKSx0aGlzLl9fdGVtcGxhdGVJbmZvJiZ0aGlzLl9ydW5FZmZlY3RzRm9yVGVtcGxhdGUodGhpcy5fX3RlbXBsYXRlSW5mbyxpLG8sYSl9X3J1bkVmZmVjdHNGb3JUZW1wbGF0ZShpLG8sYSxzKXtsZXQgbD0oYyx1KT0+e1lNKHRoaXMsaS5wcm9wZXJ0eUVmZmVjdHMsYyxhLHUsaS5ub2RlTGlzdCk7Zm9yKGxldCBoPWkuZmlyc3RDaGlsZDtoO2g9aC5uZXh0U2libGluZyl0aGlzLl9ydW5FZmZlY3RzRm9yVGVtcGxhdGUoaCxjLGEsdSl9O2kucnVuRWZmZWN0cz9pLnJ1bkVmZmVjdHMobCxvLHMpOmwobyxzKX1saW5rUGF0aHMoaSxvKXtpPVB4KGkpLG89UHgobyksdGhpcy5fX2RhdGFMaW5rZWRQYXRocz10aGlzLl9fZGF0YUxpbmtlZFBhdGhzfHx7fSx0aGlzLl9fZGF0YUxpbmtlZFBhdGhzW2ldPW99dW5saW5rUGF0aHMoaSl7aT1QeChpKSx0aGlzLl9fZGF0YUxpbmtlZFBhdGhzJiZkZWxldGUgdGhpcy5fX2RhdGFMaW5rZWRQYXRoc1tpXX1ub3RpZnlTcGxpY2VzKGksbyl7bGV0IGE9e3BhdGg6IiJ9LHM9Tm8odGhpcyxpLGEpO0VtdCh0aGlzLHMsYS5wYXRoLG8pfWdldChpLG8pe3JldHVybiBObyhvfHx0aGlzLGkpfXNldChpLG8sYSl7YT95RyhhLGksbyk6KCF0aGlzW3pyLlJFQURfT05MWV18fCF0aGlzW3pyLlJFQURfT05MWV1baV0pJiZ0aGlzLl9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgoaSxvLCEwKSYmdGhpcy5faW52YWxpZGF0ZVByb3BlcnRpZXMoKX1wdXNoKGksLi4ubyl7bGV0IGE9e3BhdGg6IiJ9LHM9Tm8odGhpcyxpLGEpLGw9cy5sZW5ndGgsYz1zLnB1c2goLi4ubyk7cmV0dXJuIG8ubGVuZ3RoJiZHTSh0aGlzLHMsYS5wYXRoLGwsby5sZW5ndGgsW10pLGN9cG9wKGkpe2xldCBvPXtwYXRoOiIifSxhPU5vKHRoaXMsaSxvKSxzPUJvb2xlYW4oYS5sZW5ndGgpLGw9YS5wb3AoKTtyZXR1cm4gcyYmR00odGhpcyxhLG8ucGF0aCxhLmxlbmd0aCwwLFtsXSksbH1zcGxpY2UoaSxvLGEsLi4ucyl7bGV0IGw9e3BhdGg6IiJ9LGM9Tm8odGhpcyxpLGwpO288MD9vPWMubGVuZ3RoLU1hdGguZmxvb3IoLW8pOm8mJihvPU1hdGguZmxvb3IobykpO2xldCB1O3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09Mj91PWMuc3BsaWNlKG8pOnU9Yy5zcGxpY2UobyxhLC4uLnMpLChzLmxlbmd0aHx8dS5sZW5ndGgpJiZHTSh0aGlzLGMsbC5wYXRoLG8scy5sZW5ndGgsdSksdX1zaGlmdChpKXtsZXQgbz17cGF0aDoiIn0sYT1Obyh0aGlzLGksbykscz1Cb29sZWFuKGEubGVuZ3RoKSxsPWEuc2hpZnQoKTtyZXR1cm4gcyYmR00odGhpcyxhLG8ucGF0aCwwLDAsW2xdKSxsfXVuc2hpZnQoaSwuLi5vKXtsZXQgYT17cGF0aDoiIn0scz1Obyh0aGlzLGksYSksbD1zLnVuc2hpZnQoLi4ubyk7cmV0dXJuIG8ubGVuZ3RoJiZHTSh0aGlzLHMsYS5wYXRoLDAsby5sZW5ndGgsW10pLGx9bm90aWZ5UGF0aChpLG8pe2xldCBhO2lmKGFyZ3VtZW50cy5sZW5ndGg9PTEpe2xldCBzPXtwYXRoOiIifTtvPU5vKHRoaXMsaSxzKSxhPXMucGF0aH1lbHNlIEFycmF5LmlzQXJyYXkoaSk/YT1QeChpKTphPWk7dGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5T3JQYXRoKGEsbywhMCwhMCkmJnRoaXMuX2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl9X2NyZWF0ZVJlYWRPbmx5UHJvcGVydHkoaSxvKXt0aGlzLl9hZGRQcm9wZXJ0eUVmZmVjdChpLHpyLlJFQURfT05MWSksbyYmKHRoaXNbIl9zZXQiK0wxZShpKV09ZnVuY3Rpb24oYSl7dGhpcy5fc2V0UHJvcGVydHkoaSxhKX0pfV9jcmVhdGVQcm9wZXJ0eU9ic2VydmVyKGksbyxhKXtsZXQgcz17cHJvcGVydHk6aSxtZXRob2Q6byxkeW5hbWljRm46Qm9vbGVhbihhKX07dGhpcy5fYWRkUHJvcGVydHlFZmZlY3QoaSx6ci5PQlNFUlZFLHtmbjpwbXQsaW5mbzpzLHRyaWdnZXI6e25hbWU6aX19KSxhJiZ0aGlzLl9hZGRQcm9wZXJ0eUVmZmVjdChvLHpyLk9CU0VSVkUse2ZuOnBtdCxpbmZvOnMsdHJpZ2dlcjp7bmFtZTpvfX0pfV9jcmVhdGVNZXRob2RPYnNlcnZlcihpLG8pe2xldCBhPXdHKGkpO2lmKCFhKXRocm93IG5ldyBFcnJvcigiTWFsZm9ybWVkIG9ic2VydmVyIGV4cHJlc3Npb24gJyIraSsiJyIpO21tdCh0aGlzLGEsenIuT0JTRVJWRSxTRyxudWxsLG8pfV9jcmVhdGVOb3RpZnlpbmdQcm9wZXJ0eShpKXt0aGlzLl9hZGRQcm9wZXJ0eUVmZmVjdChpLHpyLk5PVElGWSx7Zm46cjFlLGluZm86e2V2ZW50TmFtZTpJeChpKSsiLWNoYW5nZWQiLHByb3BlcnR5Oml9fSl9X2NyZWF0ZVJlZmxlY3RlZFByb3BlcnR5KGkpe2xldCBvPXRoaXMuY29uc3RydWN0b3IuYXR0cmlidXRlTmFtZUZvclByb3BlcnR5KGkpO29bMF09PT0iLSI/Y29uc29sZS53YXJuKCJQcm9wZXJ0eSAiK2krIiBjYW5ub3QgYmUgcmVmbGVjdGVkIHRvIGF0dHJpYnV0ZSAiK28rJyBiZWNhdXNlICItIiBpcyBub3QgYSB2YWxpZCBzdGFydGluZyBhdHRyaWJ1dGUgbmFtZS4gVXNlIGEgbG93ZXJjYXNlIGZpcnN0IGxldHRlciBmb3IgdGhlIHByb3BlcnR5IGluc3RlYWQuJyk6dGhpcy5fYWRkUHJvcGVydHlFZmZlY3QoaSx6ci5SRUZMRUNULHtmbjppMWUsaW5mbzp7YXR0ck5hbWU6b319KX1fY3JlYXRlQ29tcHV0ZWRQcm9wZXJ0eShpLG8sYSl7bGV0IHM9d0cobyk7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJNYWxmb3JtZWQgY29tcHV0ZWQgZXhwcmVzc2lvbiAnIitvKyInIik7bGV0IGw9bW10KHRoaXMscyx6ci5DT01QVVRFLHdtdCxpLGEpO3hHKHRoaXMseG10KVtpXT1sfV9tYXJzaGFsQXJncyhpLG8sYSl7bGV0IHM9dGhpcy5fX2RhdGEsbD1bXTtmb3IobGV0IGM9MCx1PWkubGVuZ3RoO2M8dTtjKyspe2xldHtuYW1lOmgsc3RydWN0dXJlZDpmLHdpbGRjYXJkOnAsdmFsdWU6ZCxsaXRlcmFsOmd9PWlbY107aWYoIWcpaWYocCl7bGV0IF89QXgoaCxvKSx5PXZtdChzLGEsXz9vOmgpO2Q9e3BhdGg6Xz9vOmgsdmFsdWU6eSxiYXNlOl8/Tm8ocyxoKTp5fX1lbHNlIGQ9Zj92bXQocyxhLGgpOnNbaF07aWYoa0kmJiF0aGlzLl9vdmVycmlkZUxlZ2FjeVVuZGVmaW5lZCYmZD09PXZvaWQgMCYmaS5sZW5ndGg+MSlyZXR1cm4gWE07bFtjXT1kfXJldHVybiBsfXN0YXRpYyBhZGRQcm9wZXJ0eUVmZmVjdChpLG8sYSl7dGhpcy5wcm90b3R5cGUuX2FkZFByb3BlcnR5RWZmZWN0KGksbyxhKX1zdGF0aWMgY3JlYXRlUHJvcGVydHlPYnNlcnZlcihpLG8sYSl7dGhpcy5wcm90b3R5cGUuX2NyZWF0ZVByb3BlcnR5T2JzZXJ2ZXIoaSxvLGEpfXN0YXRpYyBjcmVhdGVNZXRob2RPYnNlcnZlcihpLG8pe3RoaXMucHJvdG90eXBlLl9jcmVhdGVNZXRob2RPYnNlcnZlcihpLG8pfXN0YXRpYyBjcmVhdGVOb3RpZnlpbmdQcm9wZXJ0eShpKXt0aGlzLnByb3RvdHlwZS5fY3JlYXRlTm90aWZ5aW5nUHJvcGVydHkoaSl9c3RhdGljIGNyZWF0ZVJlYWRPbmx5UHJvcGVydHkoaSxvKXt0aGlzLnByb3RvdHlwZS5fY3JlYXRlUmVhZE9ubHlQcm9wZXJ0eShpLG8pfXN0YXRpYyBjcmVhdGVSZWZsZWN0ZWRQcm9wZXJ0eShpKXt0aGlzLnByb3RvdHlwZS5fY3JlYXRlUmVmbGVjdGVkUHJvcGVydHkoaSl9c3RhdGljIGNyZWF0ZUNvbXB1dGVkUHJvcGVydHkoaSxvLGEpe3RoaXMucHJvdG90eXBlLl9jcmVhdGVDb21wdXRlZFByb3BlcnR5KGksbyxhKX1zdGF0aWMgYmluZFRlbXBsYXRlKGkpe3JldHVybiB0aGlzLnByb3RvdHlwZS5fYmluZFRlbXBsYXRlKGkpfV9iaW5kVGVtcGxhdGUoaSxvKXtsZXQgYT10aGlzLmNvbnN0cnVjdG9yLl9wYXJzZVRlbXBsYXRlKGkpLHM9dGhpcy5fX3ByZUJvdW5kVGVtcGxhdGVJbmZvPT1hO2lmKCFzKWZvcihsZXQgbCBpbiBhLnByb3BlcnR5RWZmZWN0cyl0aGlzLl9jcmVhdGVQcm9wZXJ0eUFjY2Vzc29yKGwpO2lmKG8paWYoYT1PYmplY3QuY3JlYXRlKGEpLGEud2FzUHJlQm91bmQ9cywhdGhpcy5fX3RlbXBsYXRlSW5mbyl0aGlzLl9fdGVtcGxhdGVJbmZvPWE7ZWxzZXtsZXQgbD1pLl9wYXJlbnRUZW1wbGF0ZUluZm98fHRoaXMuX190ZW1wbGF0ZUluZm8sYz1sLmxhc3RDaGlsZDthLnBhcmVudD1sLGwubGFzdENoaWxkPWEsYS5wcmV2aW91c1NpYmxpbmc9YyxjP2MubmV4dFNpYmxpbmc9YTpsLmZpcnN0Q2hpbGQ9YX1lbHNlIHRoaXMuX19wcmVCb3VuZFRlbXBsYXRlSW5mbz1hO3JldHVybiBhfXN0YXRpYyBfYWRkVGVtcGxhdGVQcm9wZXJ0eUVmZmVjdChpLG8sYSl7bGV0IHM9aS5ob3N0UHJvcHM9aS5ob3N0UHJvcHN8fHt9O3Nbb109ITA7bGV0IGw9aS5wcm9wZXJ0eUVmZmVjdHM9aS5wcm9wZXJ0eUVmZmVjdHN8fHt9OyhsW29dPWxbb118fFtdKS5wdXNoKGEpfV9zdGFtcFRlbXBsYXRlKGksbyl7bz1vfHx0aGlzLl9iaW5kVGVtcGxhdGUoaSwhMCksV00ucHVzaCh0aGlzKTtsZXQgYT1zdXBlci5fc3RhbXBUZW1wbGF0ZShpLG8pO2lmKFdNLnBvcCgpLG8ubm9kZUxpc3Q9YS5ub2RlTGlzdCwhby53YXNQcmVCb3VuZCl7bGV0IHM9by5jaGlsZE5vZGVzPVtdO2ZvcihsZXQgbD1hLmZpcnN0Q2hpbGQ7bDtsPWwubmV4dFNpYmxpbmcpcy5wdXNoKGwpfXJldHVybiBhLnRlbXBsYXRlSW5mbz1vLG0xZSh0aGlzLG8pLHRoaXMuX19kYXRhQ2xpZW50c1JlYWR5JiYodGhpcy5fcnVuRWZmZWN0c0ZvclRlbXBsYXRlKG8sdGhpcy5fX2RhdGEsbnVsbCwhMSksdGhpcy5fZmx1c2hDbGllbnRzKCkpLGF9X3JlbW92ZUJvdW5kRG9tKGkpe2xldCBvPWkudGVtcGxhdGVJbmZvLHtwcmV2aW91c1NpYmxpbmc6YSxuZXh0U2libGluZzpzLHBhcmVudDpsfT1vO2E/YS5uZXh0U2libGluZz1zOmwmJihsLmZpcnN0Q2hpbGQ9cykscz9zLnByZXZpb3VzU2libGluZz1hOmwmJihsLmxhc3RDaGlsZD1hKSxvLm5leHRTaWJsaW5nPW8ucHJldmlvdXNTaWJsaW5nPW51bGw7bGV0IGM9by5jaGlsZE5vZGVzO2ZvcihsZXQgdT0wO3U8Yy5sZW5ndGg7dSsrKXtsZXQgaD1jW3VdO3VlKHVlKGgpLnBhcmVudE5vZGUpLnJlbW92ZUNoaWxkKGgpfX1zdGF0aWMgX3BhcnNlVGVtcGxhdGVOb2RlKGksbyxhKXtsZXQgcz10Ll9wYXJzZVRlbXBsYXRlTm9kZS5jYWxsKHRoaXMsaSxvLGEpO2lmKGkubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSl7bGV0IGw9dGhpcy5fcGFyc2VCaW5kaW5ncyhpLnRleHRDb250ZW50LG8pO2wmJihpLnRleHRDb250ZW50PXltdChsKXx8IiAiLGJHKHRoaXMsbyxhLCJ0ZXh0IiwidGV4dENvbnRlbnQiLGwpLHM9ITApfXJldHVybiBzfXN0YXRpYyBfcGFyc2VUZW1wbGF0ZU5vZGVBdHRyaWJ1dGUoaSxvLGEscyxsKXtsZXQgYz10aGlzLl9wYXJzZUJpbmRpbmdzKGwsbyk7aWYoYyl7bGV0IHU9cyxoPSJwcm9wZXJ0eSI7SnZlLnRlc3Qocyk/aD0iYXR0cmlidXRlIjpzW3MubGVuZ3RoLTFdPT0iJCImJihzPXMuc2xpY2UoMCwtMSksaD0iYXR0cmlidXRlIik7bGV0IGY9eW10KGMpO3JldHVybiBmJiZoPT0iYXR0cmlidXRlIiYmKHM9PSJjbGFzcyImJmkuaGFzQXR0cmlidXRlKCJjbGFzcyIpJiYoZis9IiAiK2kuZ2V0QXR0cmlidXRlKHMpKSxpLnNldEF0dHJpYnV0ZShzLGYpKSxoPT0iYXR0cmlidXRlIiYmdT09ImRpc2FibGUtdXBncmFkZSQiJiZpLnNldEF0dHJpYnV0ZShzLCIiKSxpLmxvY2FsTmFtZT09PSJpbnB1dCImJnU9PT0idmFsdWUiJiZpLnNldEF0dHJpYnV0ZSh1LCIiKSxpLnJlbW92ZUF0dHJpYnV0ZSh1KSxoPT09InByb3BlcnR5IiYmKHM9U20ocykpLGJHKHRoaXMsbyxhLGgscyxjLGYpLCEwfWVsc2UgcmV0dXJuIHQuX3BhcnNlVGVtcGxhdGVOb2RlQXR0cmlidXRlLmNhbGwodGhpcyxpLG8sYSxzLGwpfXN0YXRpYyBfcGFyc2VUZW1wbGF0ZU5lc3RlZFRlbXBsYXRlKGksbyxhKXtsZXQgcz10Ll9wYXJzZVRlbXBsYXRlTmVzdGVkVGVtcGxhdGUuY2FsbCh0aGlzLGksbyxhKSxsPWkucGFyZW50Tm9kZSxjPWEudGVtcGxhdGVJbmZvLHU9bC5sb2NhbE5hbWU9PT0iZG9tLWlmIixoPWwubG9jYWxOYW1lPT09ImRvbS1yZXBlYXQiO3BHJiYodXx8aCkmJihsLnJlbW92ZUNoaWxkKGkpLGE9YS5wYXJlbnRJbmZvLGEudGVtcGxhdGVJbmZvPWMsYS5ub3RlZD0hMCxzPSExKTtsZXQgZj1jLmhvc3RQcm9wcztpZihSSSYmdSlmJiYoby5ob3N0UHJvcHM9T2JqZWN0LmFzc2lnbihvLmhvc3RQcm9wc3x8e30sZikscEd8fChhLnBhcmVudEluZm8ubm90ZWQ9ITApKTtlbHNle2xldCBwPSJ7Ijtmb3IobGV0IGQgaW4gZil7bGV0IGc9W3ttb2RlOnAsc291cmNlOmQsZGVwZW5kZW5jaWVzOltkXSxob3N0UHJvcDohMH1dO2JHKHRoaXMsbyxhLCJwcm9wZXJ0eSIsIl9ob3N0XyIrZCxnKX19cmV0dXJuIHN9c3RhdGljIF9wYXJzZUJpbmRpbmdzKGksbyl7bGV0IGE9W10scz0wLGw7Zm9yKDsobD1fbXQuZXhlYyhpKSkhPT1udWxsOyl7bC5pbmRleD5zJiZhLnB1c2goe2xpdGVyYWw6aS5zbGljZShzLGwuaW5kZXgpfSk7bGV0IGM9bFsxXVswXSx1PUJvb2xlYW4obFsyXSksaD1sWzNdLnRyaW0oKSxmPSExLHA9IiIsZD0tMTtjPT0ieyImJihkPWguaW5kZXhPZigiOjoiKSk+MCYmKHA9aC5zdWJzdHJpbmcoZCsyKSxoPWguc3Vic3RyaW5nKDAsZCksZj0hMCk7bGV0IGc9d0coaCksXz1bXTtpZihnKXtsZXR7YXJnczp5LG1ldGhvZE5hbWU6eH09Zztmb3IobGV0IFM9MDtTPHkubGVuZ3RoO1MrKyl7bGV0IEM9eVtTXTtDLmxpdGVyYWx8fF8ucHVzaChDKX1sZXQgYj1vLmR5bmFtaWNGbnM7KGImJmJbeF18fGcuc3RhdGljKSYmKF8ucHVzaCh4KSxnLmR5bmFtaWNGbj0hMCl9ZWxzZSBfLnB1c2goaCk7YS5wdXNoKHtzb3VyY2U6aCxtb2RlOmMsbmVnYXRlOnUsY3VzdG9tRXZlbnQ6ZixzaWduYXR1cmU6ZyxkZXBlbmRlbmNpZXM6XyxldmVudDpwfSkscz1fbXQubGFzdEluZGV4fWlmKHMmJnM8aS5sZW5ndGgpe2xldCBjPWkuc3Vic3RyaW5nKHMpO2MmJmEucHVzaCh7bGl0ZXJhbDpjfSl9cmV0dXJuIGEubGVuZ3RoP2E6bnVsbH1zdGF0aWMgX2V2YWx1YXRlQmluZGluZyhpLG8sYSxzLGwsYyl7bGV0IHU7cmV0dXJuIG8uc2lnbmF0dXJlP3U9U0coaSxhLHMsbCxvLnNpZ25hdHVyZSk6YSE9by5zb3VyY2U/dT1ObyhpLG8uc291cmNlKTpjJiZESShhKT91PU5vKGksYSk6dT1pLl9fZGF0YVthXSxvLm5lZ2F0ZSYmKHU9IXUpLHV9fXJldHVybiByfSksV009W107dmFyIGsxZT0wO2Z1bmN0aW9uIFRtdCgpe2sxZSsrfXZhciBSMWU9W107ZnVuY3Rpb24gVkkoZSl7UjFlLnB1c2goZSl9ZnVuY3Rpb24gTjFlKGUpe2xldCB0PXt9O2ZvcihsZXQgciBpbiBlKXtsZXQgbj1lW3JdO3Rbcl09dHlwZW9mIG49PSJmdW5jdGlvbiI/e3R5cGU6bn06bn1yZXR1cm4gdH12YXIgQ210PU5uKGU9PntsZXQgdD1GSShlKTtmdW5jdGlvbiByKG8pe2xldCBhPU9iamVjdC5nZXRQcm90b3R5cGVPZihvKTtyZXR1cm4gYS5wcm90b3R5cGUgaW5zdGFuY2VvZiBpP2E6bnVsbH1mdW5jdGlvbiBuKG8pe2lmKCFvLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9fb3duUHJvcGVydGllcyIsbykpKXtsZXQgYT1udWxsO2lmKG8uaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgicHJvcGVydGllcyIsbykpKXtsZXQgcz1vLnByb3BlcnRpZXM7cyYmKGE9TjFlKHMpKX1vLl9fb3duUHJvcGVydGllcz1hfXJldHVybiBvLl9fb3duUHJvcGVydGllc31jbGFzcyBpIGV4dGVuZHMgdHtzdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe2lmKCF0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9fb2JzZXJ2ZWRBdHRyaWJ1dGVzIix0aGlzKSkpe1ZJKHRoaXMucHJvdG90eXBlKTtsZXQgYT10aGlzLl9wcm9wZXJ0aWVzO3RoaXMuX19vYnNlcnZlZEF0dHJpYnV0ZXM9YT9PYmplY3Qua2V5cyhhKS5tYXAocz0+dGhpcy5wcm90b3R5cGUuX2FkZFByb3BlcnR5VG9BdHRyaWJ1dGVNYXAocykpOltdfXJldHVybiB0aGlzLl9fb2JzZXJ2ZWRBdHRyaWJ1dGVzfXN0YXRpYyBmaW5hbGl6ZSgpe2lmKCF0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9fZmluYWxpemVkIix0aGlzKSkpe2xldCBhPXIodGhpcyk7YSYmYS5maW5hbGl6ZSgpLHRoaXMuX19maW5hbGl6ZWQ9ITAsdGhpcy5fZmluYWxpemVDbGFzcygpfX1zdGF0aWMgX2ZpbmFsaXplQ2xhc3MoKXtsZXQgYT1uKHRoaXMpO2EmJnRoaXMuY3JlYXRlUHJvcGVydGllcyhhKX1zdGF0aWMgZ2V0IF9wcm9wZXJ0aWVzKCl7aWYoIXRoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX19wcm9wZXJ0aWVzIix0aGlzKSkpe2xldCBhPXIodGhpcyk7dGhpcy5fX3Byb3BlcnRpZXM9T2JqZWN0LmFzc2lnbih7fSxhJiZhLl9wcm9wZXJ0aWVzLG4odGhpcykpfXJldHVybiB0aGlzLl9fcHJvcGVydGllc31zdGF0aWMgdHlwZUZvclByb3BlcnR5KGEpe2xldCBzPXRoaXMuX3Byb3BlcnRpZXNbYV07cmV0dXJuIHMmJnMudHlwZX1faW5pdGlhbGl6ZVByb3BlcnRpZXMoKXtUbXQoKSx0aGlzLmNvbnN0cnVjdG9yLmZpbmFsaXplKCksc3VwZXIuX2luaXRpYWxpemVQcm9wZXJ0aWVzKCl9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjayYmc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9lbmFibGVQcm9wZXJ0aWVzKCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjayYmc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKX19cmV0dXJuIGl9KTt2YXIgQW10PSIzLjQuMSIsVUk9d2luZG93LlNoYWR5Q1NTJiZ3aW5kb3cuU2hhZHlDU1MuY3NzQnVpbGQsTW09Tm4oZT0+e2xldCB0PUNtdChoXyhlKSk7ZnVuY3Rpb24gcihsKXtpZighbC5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfX3Byb3BlcnR5RGVmYXVsdHMiLGwpKSl7bC5fX3Byb3BlcnR5RGVmYXVsdHM9bnVsbDtsZXQgYz1sLl9wcm9wZXJ0aWVzO2ZvcihsZXQgdSBpbiBjKXtsZXQgaD1jW3VdOyJ2YWx1ZSJpbiBoJiYobC5fX3Byb3BlcnR5RGVmYXVsdHM9bC5fX3Byb3BlcnR5RGVmYXVsdHN8fHt9LGwuX19wcm9wZXJ0eURlZmF1bHRzW3VdPWgpfX1yZXR1cm4gbC5fX3Byb3BlcnR5RGVmYXVsdHN9ZnVuY3Rpb24gbihsKXtyZXR1cm4gbC5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfX293bk9ic2VydmVycyIsbCkpfHwobC5fX293bk9ic2VydmVycz1sLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIm9ic2VydmVycyIsbCkpP2wub2JzZXJ2ZXJzOm51bGwpLGwuX19vd25PYnNlcnZlcnN9ZnVuY3Rpb24gaShsLGMsdSxoKXt1LmNvbXB1dGVkJiYodS5yZWFkT25seT0hMCksdS5jb21wdXRlZCYmKGwuX2hhc1JlYWRPbmx5RWZmZWN0KGMpP2NvbnNvbGUud2FybihgQ2Fubm90IHJlZGVmaW5lIGNvbXB1dGVkIHByb3BlcnR5ICcke2N9Jy5gKTpsLl9jcmVhdGVDb21wdXRlZFByb3BlcnR5KGMsdS5jb21wdXRlZCxoKSksdS5yZWFkT25seSYmIWwuX2hhc1JlYWRPbmx5RWZmZWN0KGMpP2wuX2NyZWF0ZVJlYWRPbmx5UHJvcGVydHkoYywhdS5jb21wdXRlZCk6dS5yZWFkT25seT09PSExJiZsLl9oYXNSZWFkT25seUVmZmVjdChjKSYmY29uc29sZS53YXJuKGBDYW5ub3QgbWFrZSByZWFkT25seSBwcm9wZXJ0eSAnJHtjfScgbm9uLXJlYWRPbmx5LmApLHUucmVmbGVjdFRvQXR0cmlidXRlJiYhbC5faGFzUmVmbGVjdEVmZmVjdChjKT9sLl9jcmVhdGVSZWZsZWN0ZWRQcm9wZXJ0eShjKTp1LnJlZmxlY3RUb0F0dHJpYnV0ZT09PSExJiZsLl9oYXNSZWZsZWN0RWZmZWN0KGMpJiZjb25zb2xlLndhcm4oYENhbm5vdCBtYWtlIHJlZmxlY3RlZCBwcm9wZXJ0eSAnJHtjfScgbm9uLXJlZmxlY3RlZC5gKSx1Lm5vdGlmeSYmIWwuX2hhc05vdGlmeUVmZmVjdChjKT9sLl9jcmVhdGVOb3RpZnlpbmdQcm9wZXJ0eShjKTp1Lm5vdGlmeT09PSExJiZsLl9oYXNOb3RpZnlFZmZlY3QoYykmJmNvbnNvbGUud2FybihgQ2Fubm90IG1ha2Ugbm90aWZ5IHByb3BlcnR5ICcke2N9JyBub24tbm90aWZ5LmApLHUub2JzZXJ2ZXImJmwuX2NyZWF0ZVByb3BlcnR5T2JzZXJ2ZXIoYyx1Lm9ic2VydmVyLGhbdS5vYnNlcnZlcl0pLGwuX2FkZFByb3BlcnR5VG9BdHRyaWJ1dGVNYXAoYyl9ZnVuY3Rpb24gbyhsLGMsdSxoKXtpZighVUkpe2xldCBmPWMuY29udGVudC5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZSIpLHA9TkkoYyksZD1ubXQodSksZz1jLmNvbnRlbnQuZmlyc3RFbGVtZW50Q2hpbGQ7Zm9yKGxldCB5PTA7eTxkLmxlbmd0aDt5Kyspe2xldCB4PWRbeV07eC50ZXh0Q29udGVudD1sLl9wcm9jZXNzU3R5bGVUZXh0KHgudGV4dENvbnRlbnQsaCksYy5jb250ZW50Lmluc2VydEJlZm9yZSh4LGcpfWxldCBfPTA7Zm9yKGxldCB5PTA7eTxwLmxlbmd0aDt5Kyspe2xldCB4PXBbeV0sYj1mW19dO2IhPT14Pyh4PXguY2xvbmVOb2RlKCEwKSxiLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHgsYikpOl8rKyx4LnRleHRDb250ZW50PWwuX3Byb2Nlc3NTdHlsZVRleHQoeC50ZXh0Q29udGVudCxoKX19aWYod2luZG93LlNoYWR5Q1NTJiZ3aW5kb3cuU2hhZHlDU1MucHJlcGFyZVRlbXBsYXRlKGMsdSksS2R0JiZVSSYmR2R0KXtsZXQgZj1jLmNvbnRlbnQucXVlcnlTZWxlY3RvckFsbCgic3R5bGUiKTtpZihmKXtsZXQgcD0iIjtBcnJheS5mcm9tKGYpLmZvckVhY2goZD0+e3ArPWQudGV4dENvbnRlbnQsZC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGQpfSksbC5fc3R5bGVTaGVldD1uZXcgQ1NTU3R5bGVTaGVldCxsLl9zdHlsZVNoZWV0LnJlcGxhY2VTeW5jKHApfX19ZnVuY3Rpb24gYShsKXtsZXQgYz1udWxsO2lmKGwmJighaXV8fGpkdCkmJihjPW91LmltcG9ydChsLCJ0ZW1wbGF0ZSIpLGl1JiYhYykpdGhyb3cgbmV3IEVycm9yKGBzdHJpY3RUZW1wbGF0ZVBvbGljeTogZXhwZWN0aW5nIGRvbS1tb2R1bGUgb3IgbnVsbCB0ZW1wbGF0ZSBmb3IgJHtsfWApO3JldHVybiBjfWNsYXNzIHMgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcG9seW1lckVsZW1lbnRWZXJzaW9uKCl7cmV0dXJuIEFtdH1zdGF0aWMgX2ZpbmFsaXplQ2xhc3MoKXt0Ll9maW5hbGl6ZUNsYXNzLmNhbGwodGhpcyk7bGV0IGM9bih0aGlzKTtjJiZ0aGlzLmNyZWF0ZU9ic2VydmVycyhjLHRoaXMuX3Byb3BlcnRpZXMpLHRoaXMuX3ByZXBhcmVUZW1wbGF0ZSgpfXN0YXRpYyBfcHJlcGFyZVRlbXBsYXRlKCl7bGV0IGM9dGhpcy50ZW1wbGF0ZTtjJiYodHlwZW9mIGM9PSJzdHJpbmciPyhjb25zb2xlLmVycm9yKCJ0ZW1wbGF0ZSBnZXR0ZXIgbXVzdCByZXR1cm4gSFRNTFRlbXBsYXRlRWxlbWVudCIpLGM9bnVsbCk6ZHB8fChjPWMuY2xvbmVOb2RlKCEwKSkpLHRoaXMucHJvdG90eXBlLl90ZW1wbGF0ZT1jfXN0YXRpYyBjcmVhdGVQcm9wZXJ0aWVzKGMpe2ZvcihsZXQgdSBpbiBjKWkodGhpcy5wcm90b3R5cGUsdSxjW3VdLGMpfXN0YXRpYyBjcmVhdGVPYnNlcnZlcnMoYyx1KXtsZXQgaD10aGlzLnByb3RvdHlwZTtmb3IobGV0IGY9MDtmPGMubGVuZ3RoO2YrKyloLl9jcmVhdGVNZXRob2RPYnNlcnZlcihjW2ZdLHUpfXN0YXRpYyBnZXQgdGVtcGxhdGUoKXtpZighdGhpcy5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfdGVtcGxhdGUiLHRoaXMpKSl7bGV0IGM9dGhpcy5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX3RlbXBsYXRlIix0aGlzLnByb3RvdHlwZSkpP3RoaXMucHJvdG90eXBlLl90ZW1wbGF0ZTp2b2lkIDA7dGhpcy5fdGVtcGxhdGU9YyE9PXZvaWQgMD9jOnRoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiaXMiLHRoaXMpKSYmYSh0aGlzLmlzKXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMucHJvdG90eXBlKS5jb25zdHJ1Y3Rvci50ZW1wbGF0ZX1yZXR1cm4gdGhpcy5fdGVtcGxhdGV9c3RhdGljIHNldCB0ZW1wbGF0ZShjKXt0aGlzLl90ZW1wbGF0ZT1jfXN0YXRpYyBnZXQgaW1wb3J0UGF0aCgpe2lmKCF0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9pbXBvcnRQYXRoIix0aGlzKSkpe2xldCBjPXRoaXMuaW1wb3J0TWV0YTtpZihjKXRoaXMuX2ltcG9ydFBhdGg9Q3goYy51cmwpO2Vsc2V7bGV0IHU9b3UuaW1wb3J0KHRoaXMuaXMpO3RoaXMuX2ltcG9ydFBhdGg9dSYmdS5hc3NldHBhdGh8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzLnByb3RvdHlwZSkuY29uc3RydWN0b3IuaW1wb3J0UGF0aH19cmV0dXJuIHRoaXMuX2ltcG9ydFBhdGh9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX3RlbXBsYXRlLHRoaXMuX2ltcG9ydFBhdGgsdGhpcy5yb290UGF0aCx0aGlzLmltcG9ydFBhdGgsdGhpcy5yb290LHRoaXMuJH1faW5pdGlhbGl6ZVByb3BlcnRpZXMoKXt0aGlzLmNvbnN0cnVjdG9yLmZpbmFsaXplKCksdGhpcy5jb25zdHJ1Y3Rvci5fZmluYWxpemVUZW1wbGF0ZSh0aGlzLmxvY2FsTmFtZSksc3VwZXIuX2luaXRpYWxpemVQcm9wZXJ0aWVzKCksdGhpcy5yb290UGF0aD1XZHQsdGhpcy5pbXBvcnRQYXRoPXRoaXMuY29uc3RydWN0b3IuaW1wb3J0UGF0aDtsZXQgYz1yKHRoaXMuY29uc3RydWN0b3IpO2lmKCEhYylmb3IobGV0IHUgaW4gYyl7bGV0IGg9Y1t1XTtpZih0aGlzLl9jYW5BcHBseVByb3BlcnR5RGVmYXVsdCh1KSl7bGV0IGY9dHlwZW9mIGgudmFsdWU9PSJmdW5jdGlvbiI/aC52YWx1ZS5jYWxsKHRoaXMpOmgudmFsdWU7dGhpcy5faGFzQWNjZXNzb3IodSk/dGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5KHUsZiwhMCk6dGhpc1t1XT1mfX19X2NhbkFwcGx5UHJvcGVydHlEZWZhdWx0KGMpe3JldHVybiF0aGlzLmhhc093blByb3BlcnR5KGMpfXN0YXRpYyBfcHJvY2Vzc1N0eWxlVGV4dChjLHUpe3JldHVybiBITShjLHUpfXN0YXRpYyBfZmluYWxpemVUZW1wbGF0ZShjKXtsZXQgdT10aGlzLnByb3RvdHlwZS5fdGVtcGxhdGU7aWYodSYmIXUuX19wb2x5bWVyRmluYWxpemVkKXt1Ll9fcG9seW1lckZpbmFsaXplZD0hMDtsZXQgaD10aGlzLmltcG9ydFBhdGgsZj1oP2NfKGgpOiIiO28odGhpcyx1LGMsZiksdGhpcy5wcm90b3R5cGUuX2JpbmRUZW1wbGF0ZSh1KX19Y29ubmVjdGVkQ2FsbGJhY2soKXt3aW5kb3cuU2hhZHlDU1MmJnRoaXMuX3RlbXBsYXRlJiZ3aW5kb3cuU2hhZHlDU1Muc3R5bGVFbGVtZW50KHRoaXMpLHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCl9cmVhZHkoKXt0aGlzLl90ZW1wbGF0ZSYmKHRoaXMucm9vdD10aGlzLl9zdGFtcFRlbXBsYXRlKHRoaXMuX3RlbXBsYXRlKSx0aGlzLiQ9dGhpcy5yb290LiQpLHN1cGVyLnJlYWR5KCl9X3JlYWR5Q2xpZW50cygpe3RoaXMuX3RlbXBsYXRlJiYodGhpcy5yb290PXRoaXMuX2F0dGFjaERvbSh0aGlzLnJvb3QpKSxzdXBlci5fcmVhZHlDbGllbnRzKCl9X2F0dGFjaERvbShjKXtsZXQgdT11ZSh0aGlzKTtpZih1LmF0dGFjaFNoYWRvdylyZXR1cm4gYz8odS5zaGFkb3dSb290fHwodS5hdHRhY2hTaGFkb3coe21vZGU6Im9wZW4iLHNoYWR5VXBncmFkZUZyYWdtZW50OmN9KSx1LnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoYyksdGhpcy5jb25zdHJ1Y3Rvci5fc3R5bGVTaGVldCYmKHUuc2hhZG93Um9vdC5hZG9wdGVkU3R5bGVTaGVldHM9W3RoaXMuY29uc3RydWN0b3IuX3N0eWxlU2hlZXRdKSksWGR0JiZ3aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS5mbHVzaEluaXRpYWwodS5zaGFkb3dSb290KSx1LnNoYWRvd1Jvb3QpOm51bGw7dGhyb3cgbmV3IEVycm9yKCJTaGFkb3dET00gbm90IGF2YWlsYWJsZS4gUG9seW1lckVsZW1lbnQgY2FuIGNyZWF0ZSBkb20gYXMgY2hpbGRyZW4gaW5zdGVhZCBvZiBpbiBTaGFkb3dET00gYnkgc2V0dGluZyBgdGhpcy5yb290ID0gdGhpcztgIGJlZm9yZSBgcmVhZHlgLiIpfXVwZGF0ZVN0eWxlcyhjKXt3aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5zdHlsZVN1YnRyZWUodGhpcyxjKX1yZXNvbHZlVXJsKGMsdSl7cmV0dXJuIXUmJnRoaXMuaW1wb3J0UGF0aCYmKHU9Y18odGhpcy5pbXBvcnRQYXRoKSksY18oYyx1KX1zdGF0aWMgX3BhcnNlVGVtcGxhdGVDb250ZW50KGMsdSxoKXtyZXR1cm4gdS5keW5hbWljRm5zPXUuZHluYW1pY0Zuc3x8dGhpcy5fcHJvcGVydGllcyx0Ll9wYXJzZVRlbXBsYXRlQ29udGVudC5jYWxsKHRoaXMsYyx1LGgpfXN0YXRpYyBfYWRkVGVtcGxhdGVQcm9wZXJ0eUVmZmVjdChjLHUsaCl7cmV0dXJuIExJJiYhKHUgaW4gdGhpcy5fcHJvcGVydGllcykmJiEoaC5pbmZvLnBhcnQuc2lnbmF0dXJlJiZoLmluZm8ucGFydC5zaWduYXR1cmUuc3RhdGljKSYmIWguaW5mby5wYXJ0Lmhvc3RQcm9wJiYhYy5uZXN0ZWRUZW1wbGF0ZSYmY29uc29sZS53YXJuKGBQcm9wZXJ0eSAnJHt1fScgdXNlZCBpbiB0ZW1wbGF0ZSBidXQgbm90IGRlY2xhcmVkIGluICdwcm9wZXJ0aWVzJzsgYXR0cmlidXRlIHdpbGwgbm90IGJlIG9ic2VydmVkLmApLHQuX2FkZFRlbXBsYXRlUHJvcGVydHlFZmZlY3QuY2FsbCh0aGlzLGMsdSxoKX19cmV0dXJuIHN9KTt2YXIgcUk9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy52YWx1ZT10LnRvU3RyaW5nKCl9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy52YWx1ZX19O2Z1bmN0aW9uIEQxZShlKXtpZihlIGluc3RhbmNlb2YgcUkpcmV0dXJuIGUudmFsdWU7dGhyb3cgbmV3IEVycm9yKGBub24tbGl0ZXJhbCB2YWx1ZSBwYXNzZWQgdG8gUG9seW1lcidzIGh0bWxMaXRlcmFsIGZ1bmN0aW9uOiAke2V9YCl9ZnVuY3Rpb24gTzFlKGUpe2lmKGUgaW5zdGFuY2VvZiBIVE1MVGVtcGxhdGVFbGVtZW50KXJldHVybiBlLmlubmVySFRNTDtpZihlIGluc3RhbmNlb2YgcUkpcmV0dXJuIEQxZShlKTt0aHJvdyBuZXcgRXJyb3IoYG5vbi10ZW1wbGF0ZSB2YWx1ZSBwYXNzZWQgdG8gUG9seW1lcidzIGh0bWwgZnVuY3Rpb246ICR7ZX1gKX12YXIgUT1mdW5jdGlvbih0LC4uLnIpe2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7cmV0dXJuIG4uaW5uZXJIVE1MPXIucmVkdWNlKChpLG8sYSk9PmkrTzFlKG8pK3RbYSsxXSx0WzBdKSxufTt2YXIgbXQ9TW0oSFRNTEVsZW1lbnQpO3ZhciBweT1FZShPZSgpLDEpO3ZhciBmXz0hKHdpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLmluVXNlKSxHSTtmdW5jdGlvbiBQbXQoZSl7ZSYmZS5zaGltY3NzcHJvcGVydGllcz9HST0hMTpHST1mX3x8Qm9vbGVhbighbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvQXBwbGVXZWJLaXRcLzYwMXxFZGdlXC8xNS8pJiZ3aW5kb3cuQ1NTJiZDU1Muc3VwcG9ydHMmJkNTUy5zdXBwb3J0cygiYm94LXNoYWRvdyIsIjAgMCAwIHZhcigtLWZvbykiKSl9dmFyIEVtO3dpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLmNzc0J1aWxkIT09dm9pZCAwJiYoRW09d2luZG93LlNoYWR5Q1NTLmNzc0J1aWxkKTt2YXIgV0k9Qm9vbGVhbih3aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5kaXNhYmxlUnVudGltZSk7d2luZG93LlNoYWR5Q1NTJiZ3aW5kb3cuU2hhZHlDU1MubmF0aXZlQ3NzIT09dm9pZCAwP0dJPXdpbmRvdy5TaGFkeUNTUy5uYXRpdmVDc3M6d2luZG93LlNoYWR5Q1NTPyhQbXQod2luZG93LlNoYWR5Q1NTKSx3aW5kb3cuU2hhZHlDU1M9dm9pZCAwKTpQbXQod2luZG93LldlYkNvbXBvbmVudHMmJndpbmRvdy5XZWJDb21wb25lbnRzLmZsYWdzKTt2YXIgTng9R0k7dmFyIFlJPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zdGFydD0wLHRoaXMuZW5kPTAsdGhpcy5wcmV2aW91cz1udWxsLHRoaXMucGFyZW50PW51bGwsdGhpcy5ydWxlcz1udWxsLHRoaXMucGFyc2VkQ3NzVGV4dD0iIix0aGlzLmNzc1RleHQ9IiIsdGhpcy5hdFJ1bGU9ITEsdGhpcy50eXBlPTAsdGhpcy5rZXlmcmFtZXNOYW1lPSIiLHRoaXMuc2VsZWN0b3I9IiIsdGhpcy5wYXJzZWRTZWxlY3Rvcj0iIn19O2Z1bmN0aW9uIEVHKGUpe3JldHVybiBlPXoxZShlKSxJbXQoRjFlKGUpLGUpfWZ1bmN0aW9uIHoxZShlKXtyZXR1cm4gZS5yZXBsYWNlKF9wLmNvbW1lbnRzLCIiKS5yZXBsYWNlKF9wLnBvcnQsIiIpfWZ1bmN0aW9uIEYxZShlKXtsZXQgdD1uZXcgWUk7dC5zdGFydD0wLHQuZW5kPWUubGVuZ3RoO2xldCByPXQ7Zm9yKGxldCBuPTAsaT1lLmxlbmd0aDtuPGk7bisrKWlmKGVbbl09PT1MbXQpe3IucnVsZXN8fChyLnJ1bGVzPVtdKTtsZXQgbz1yLGE9by5ydWxlc1tvLnJ1bGVzLmxlbmd0aC0xXXx8bnVsbDtyPW5ldyBZSSxyLnN0YXJ0PW4rMSxyLnBhcmVudD1vLHIucHJldmlvdXM9YSxvLnJ1bGVzLnB1c2gocil9ZWxzZSBlW25dPT09a210JiYoci5lbmQ9bisxLHI9ci5wYXJlbnR8fHQpO3JldHVybiB0fWZ1bmN0aW9uIEltdChlLHQpe2xldCByPXQuc3Vic3RyaW5nKGUuc3RhcnQsZS5lbmQtMSk7aWYoZS5wYXJzZWRDc3NUZXh0PWUuY3NzVGV4dD1yLnRyaW0oKSxlLnBhcmVudCl7bGV0IGk9ZS5wcmV2aW91cz9lLnByZXZpb3VzLmVuZDplLnBhcmVudC5zdGFydDtyPXQuc3Vic3RyaW5nKGksZS5zdGFydC0xKSxyPUIxZShyKSxyPXIucmVwbGFjZShfcC5tdWx0aXBsZVNwYWNlcywiICIpLHI9ci5zdWJzdHJpbmcoci5sYXN0SW5kZXhPZigiOyIpKzEpO2xldCBvPWUucGFyc2VkU2VsZWN0b3I9ZS5zZWxlY3Rvcj1yLnRyaW0oKTtlLmF0UnVsZT1vLmluZGV4T2YoVzFlKT09PTAsZS5hdFJ1bGU/by5pbmRleE9mKEcxZSk9PT0wP2UudHlwZT1ncC5NRURJQV9SVUxFOm8ubWF0Y2goX3Aua2V5ZnJhbWVzUnVsZSkmJihlLnR5cGU9Z3AuS0VZRlJBTUVTX1JVTEUsZS5rZXlmcmFtZXNOYW1lPWUuc2VsZWN0b3Iuc3BsaXQoX3AubXVsdGlwbGVTcGFjZXMpLnBvcCgpKTpvLmluZGV4T2YoUm10KT09PTA/ZS50eXBlPWdwLk1JWElOX1JVTEU6ZS50eXBlPWdwLlNUWUxFX1JVTEV9bGV0IG49ZS5ydWxlcztpZihuKWZvcihsZXQgaT0wLG89bi5sZW5ndGgsYTtpPG8mJihhPW5baV0pO2krKylJbXQoYSx0KTtyZXR1cm4gZX1mdW5jdGlvbiBCMWUoZSl7cmV0dXJuIGUucmVwbGFjZSgvXFwoWzAtOWEtZl17MSw2fSlccy9naSxmdW5jdGlvbigpe2xldCB0PWFyZ3VtZW50c1sxXSxyPTYtdC5sZW5ndGg7Zm9yKDtyLS07KXQ9IjAiK3Q7cmV0dXJuIlxcIit0fSl9ZnVuY3Rpb24gVEcoZSx0LHI9IiIpe2xldCBuPSIiO2lmKGUuY3NzVGV4dHx8ZS5ydWxlcyl7bGV0IGk9ZS5ydWxlcztpZihpJiYhSDFlKGkpKWZvcihsZXQgbz0wLGE9aS5sZW5ndGgscztvPGEmJihzPWlbb10pO28rKyluPVRHKHMsdCxuKTtlbHNlIG49dD9lLmNzc1RleHQ6VjFlKGUuY3NzVGV4dCksbj1uLnRyaW0oKSxuJiYobj0iICAiK24rYApgKX1yZXR1cm4gbiYmKGUuc2VsZWN0b3ImJihyKz1lLnNlbGVjdG9yKyIgIitMbXQrYApgKSxyKz1uLGUuc2VsZWN0b3ImJihyKz1rbXQrYAoKYCkpLHJ9ZnVuY3Rpb24gSDFlKGUpe2xldCB0PWVbMF07cmV0dXJuIEJvb2xlYW4odCkmJkJvb2xlYW4odC5zZWxlY3RvcikmJnQuc2VsZWN0b3IuaW5kZXhPZihSbXQpPT09MH1mdW5jdGlvbiBWMWUoZSl7cmV0dXJuIGU9VTFlKGUpLHExZShlKX1mdW5jdGlvbiBVMWUoZSl7cmV0dXJuIGUucmVwbGFjZShfcC5jdXN0b21Qcm9wLCIiKS5yZXBsYWNlKF9wLm1peGluUHJvcCwiIil9ZnVuY3Rpb24gcTFlKGUpe3JldHVybiBlLnJlcGxhY2UoX3AubWl4aW5BcHBseSwiIikucmVwbGFjZShfcC52YXJBcHBseSwiIil9dmFyIGdwPXtTVFlMRV9SVUxFOjEsS0VZRlJBTUVTX1JVTEU6NyxNRURJQV9SVUxFOjQsTUlYSU5fUlVMRToxZTN9LExtdD0ieyIsa210PSJ9IixfcD17Y29tbWVudHM6L1wvXCpbXipdKlwqKyhbXi8qXVteKl0qXCorKSpcLy9naW0scG9ydDovQGltcG9ydFteO10qOy9naW0sY3VzdG9tUHJvcDovKD86XlteO1wtXHN9XSspPy0tW147e31dKj86W157fTtdKj8oPzpbO1xuXXwkKS9naW0sbWl4aW5Qcm9wOi8oPzpeW147XC1cc31dKyk/LS1bXjt7fV0qPzpbXnt9O10qP3tbXn1dKj99KD86Wztcbl18JCk/L2dpbSxtaXhpbkFwcGx5Oi9AYXBwbHlccypcKD9bXik7XSpcKT9ccyooPzpbO1xuXXwkKT8vZ2ltLHZhckFwcGx5Oi9bXjs6XSo/OlteO10qP3ZhclwoW147XSpcKSg/Ols7XG5dfCQpPy9naW0sa2V5ZnJhbWVzUnVsZTovXkBbXlxzXSprZXlmcmFtZXMvLG11bHRpcGxlU3BhY2VzOi9ccysvZ30sUm10PSItLSIsRzFlPSJAbWVkaWEiLFcxZT0iQCI7dmFyIEtNPS8oPzpefFs7XHN7XVxzKikoLS1bXHctXSo/KVxzKjpccyooPzooKD86Jyg/OlxcJ3wuKSo/J3wiKD86XFwifC4pKj8ifFwoW14pXSo/XCl8W159O3tdKSspfFx7KFtefV0qKVx9KD86KD89Wztcc31dKXwkKSkvZ2ksRHg9Lyg/Ol58XFcrKUBhcHBseVxzKlwoPyhbXik7XG5dKilcKT8vZ2k7dmFyIE5tdD0vQG1lZGlhXHMoLiopLzt2YXIgRG10PW5ldyBTZXQsWTFlPSJzaGFkeS11bnNjb3BlZCI7ZnVuY3Rpb24gT210KGUpe2xldCB0PWUudGV4dENvbnRlbnQ7aWYoIURtdC5oYXModCkpe0RtdC5hZGQodCk7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyLnNldEF0dHJpYnV0ZSgic2hhZHktdW5zY29wZWQiLCIiKSxyLnRleHRDb250ZW50PXQsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChyKX19ZnVuY3Rpb24gem10KGUpe3JldHVybiBlLmhhc0F0dHJpYnV0ZShZMWUpfWZ1bmN0aW9uIFpNKGUsdCl7cmV0dXJuIGU/KHR5cGVvZiBlPT0ic3RyaW5nIiYmKGU9RUcoZSkpLHQmJk94KGUsdCksVEcoZSxOeCkpOiIifWZ1bmN0aW9uIENHKGUpe3JldHVybiFlLl9fY3NzUnVsZXMmJmUudGV4dENvbnRlbnQmJihlLl9fY3NzUnVsZXM9RUcoZS50ZXh0Q29udGVudCkpLGUuX19jc3NSdWxlc3x8bnVsbH1mdW5jdGlvbiBPeChlLHQscixuKXtpZighZSlyZXR1cm47bGV0IGk9ITEsbz1lLnR5cGU7aWYobiYmbz09PWdwLk1FRElBX1JVTEUpe2xldCBzPWUuc2VsZWN0b3IubWF0Y2goTm10KTtzJiYod2luZG93Lm1hdGNoTWVkaWEoc1sxXSkubWF0Y2hlc3x8KGk9ITApKX1vPT09Z3AuU1RZTEVfUlVMRT90KGUpOnImJm89PT1ncC5LRVlGUkFNRVNfUlVMRT9yKGUpOm89PT1ncC5NSVhJTl9SVUxFJiYoaT0hMCk7bGV0IGE9ZS5ydWxlcztpZihhJiYhaSlmb3IobGV0IHM9MCxsPWEubGVuZ3RoLGM7czxsJiYoYz1hW3NdKTtzKyspT3goYyx0LHIsbil9ZnVuY3Rpb24gajFlKGUsdCl7bGV0IHI9MDtmb3IobGV0IG49dCxpPWUubGVuZ3RoO248aTtuKyspaWYoZVtuXT09PSIoIilyKys7ZWxzZSBpZihlW25dPT09IikiJiYtLXI9PT0wKXJldHVybiBuO3JldHVybi0xfWZ1bmN0aW9uIEFHKGUsdCl7bGV0IHI9ZS5pbmRleE9mKCJ2YXIoIik7aWYocj09PS0xKXJldHVybiB0KGUsIiIsIiIsIiIpO2xldCBuPWoxZShlLHIrMyksaT1lLnN1YnN0cmluZyhyKzQsbiksbz1lLnN1YnN0cmluZygwLHIpLGE9QUcoZS5zdWJzdHJpbmcobisxKSx0KSxzPWkuaW5kZXhPZigiLCIpO2lmKHM9PT0tMSlyZXR1cm4gdChvLGkudHJpbSgpLCIiLGEpO2xldCBsPWkuc3Vic3RyaW5nKDAscykudHJpbSgpLGM9aS5zdWJzdHJpbmcocysxKS50cmltKCk7cmV0dXJuIHQobyxsLGMsYSl9dmFyIGZ2cj13aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS53cmFwfHwoZT0+ZSk7ZnVuY3Rpb24gRm10KGUpe2xldCB0PWUubG9jYWxOYW1lLHI9IiIsbj0iIjtyZXR1cm4gdD90LmluZGV4T2YoIi0iKT4tMT9yPXQ6KG49dCxyPWUuZ2V0QXR0cmlidXRlJiZlLmdldEF0dHJpYnV0ZSgiaXMiKXx8IiIpOihyPWUuaXMsbj1lLmV4dGVuZHMpLHtpczpyLHR5cGVFeHRlbnNpb246bn19ZnVuY3Rpb24gQm10KGUpe2xldCB0PVtdLHI9ZS5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZSIpO2ZvcihsZXQgbj0wO248ci5sZW5ndGg7bisrKXtsZXQgaT1yW25dO3ptdChpKT9mX3x8KE9tdChpKSxpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaSkpOih0LnB1c2goaS50ZXh0Q29udGVudCksaS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkpKX1yZXR1cm4gdC5qb2luKCIiKS50cmltKCl9dmFyIEhtdD0iY3NzLWJ1aWxkIjtmdW5jdGlvbiBYMWUoZSl7aWYoRW0hPT12b2lkIDApcmV0dXJuIEVtO2lmKGUuX19jc3NCdWlsZD09PXZvaWQgMCl7bGV0IHQ9ZS5nZXRBdHRyaWJ1dGUoSG10KTtpZih0KWUuX19jc3NCdWlsZD10O2Vsc2V7bGV0IHI9JDFlKGUpO3IhPT0iIiYmSzFlKGUpLGUuX19jc3NCdWlsZD1yfX1yZXR1cm4gZS5fX2Nzc0J1aWxkfHwiIn1mdW5jdGlvbiBQRyhlKXtyZXR1cm4gWDFlKGUpIT09IiJ9ZnVuY3Rpb24gJDFlKGUpe2xldCB0PWUubG9jYWxOYW1lPT09InRlbXBsYXRlIj9lLmNvbnRlbnQuZmlyc3RDaGlsZDplLmZpcnN0Q2hpbGQ7aWYodCBpbnN0YW5jZW9mIENvbW1lbnQpe2xldCByPXQudGV4dENvbnRlbnQudHJpbSgpLnNwbGl0KCI6Iik7aWYoclswXT09PUhtdClyZXR1cm4gclsxXX1yZXR1cm4iIn1mdW5jdGlvbiBLMWUoZSl7bGV0IHQ9ZS5sb2NhbE5hbWU9PT0idGVtcGxhdGUiP2UuY29udGVudC5maXJzdENoaWxkOmUuZmlyc3RDaGlsZDt0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9ZnVuY3Rpb24gSk0oZSx0KXtmb3IobGV0IHIgaW4gdClyPT09bnVsbD9lLnN0eWxlLnJlbW92ZVByb3BlcnR5KHIpOmUuc3R5bGUuc2V0UHJvcGVydHkocix0W3JdKX1mdW5jdGlvbiBqSShlLHQpe2xldCByPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpLmdldFByb3BlcnR5VmFsdWUodCk7cmV0dXJuIHI/ci50cmltKCk6IiJ9ZnVuY3Rpb24gVm10KGUpe2xldCB0PUR4LnRlc3QoZSl8fEtNLnRlc3QoZSk7cmV0dXJuIER4Lmxhc3RJbmRleD0wLEtNLmxhc3RJbmRleD0wLHR9dmFyIFoxZT0vO1xzKi9tLEoxZT0vXlxzKihpbml0aWFsKXwoaW5oZXJpdClccyokLyxVbXQ9L1xzKiFpbXBvcnRhbnQvLElHPSJfLV8iO3ZhciBMRz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX21hcD17fX1zZXQodCxyKXt0PXQudHJpbSgpLHRoaXMuX21hcFt0XT17cHJvcGVydGllczpyLGRlcGVuZGFudHM6e319fWdldCh0KXtyZXR1cm4gdD10LnRyaW0oKSx0aGlzLl9tYXBbdF18fG51bGx9fSxYST1udWxsLERvPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fY3VycmVudEVsZW1lbnQ9bnVsbCx0aGlzLl9tZWFzdXJlRWxlbWVudD1udWxsLHRoaXMuX21hcD1uZXcgTEd9ZGV0ZWN0TWl4aW4odCl7cmV0dXJuIFZtdCh0KX1nYXRoZXJTdHlsZXModCl7bGV0IHI9Qm10KHQuY29udGVudCk7aWYocil7bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gbi50ZXh0Q29udGVudD1yLHQuY29udGVudC5pbnNlcnRCZWZvcmUobix0LmNvbnRlbnQuZmlyc3RDaGlsZCksbn1yZXR1cm4gbnVsbH10cmFuc2Zvcm1UZW1wbGF0ZSh0LHIpe3QuX2dhdGhlcmVkU3R5bGU9PT12b2lkIDAmJih0Ll9nYXRoZXJlZFN0eWxlPXRoaXMuZ2F0aGVyU3R5bGVzKHQpKTtsZXQgbj10Ll9nYXRoZXJlZFN0eWxlO3JldHVybiBuP3RoaXMudHJhbnNmb3JtU3R5bGUobixyKTpudWxsfXRyYW5zZm9ybVN0eWxlKHQscj0iIil7bGV0IG49Q0codCk7cmV0dXJuIHRoaXMudHJhbnNmb3JtUnVsZXMobixyKSx0LnRleHRDb250ZW50PVpNKG4pLG59dHJhbnNmb3JtQ3VzdG9tU3R5bGUodCl7bGV0IHI9Q0codCk7cmV0dXJuIE94KHIsbj0+e24uc2VsZWN0b3I9PT0iOnJvb3QiJiYobi5zZWxlY3Rvcj0iaHRtbCIpLHRoaXMudHJhbnNmb3JtUnVsZShuKX0pLHQudGV4dENvbnRlbnQ9Wk0ocikscn10cmFuc2Zvcm1SdWxlcyh0LHIpe3RoaXMuX2N1cnJlbnRFbGVtZW50PXIsT3godCxuPT57dGhpcy50cmFuc2Zvcm1SdWxlKG4pfSksdGhpcy5fY3VycmVudEVsZW1lbnQ9bnVsbH10cmFuc2Zvcm1SdWxlKHQpe3QuY3NzVGV4dD10aGlzLnRyYW5zZm9ybUNzc1RleHQodC5wYXJzZWRDc3NUZXh0LHQpLHQuc2VsZWN0b3I9PT0iOnJvb3QiJiYodC5zZWxlY3Rvcj0iOmhvc3QgPiAqIil9dHJhbnNmb3JtQ3NzVGV4dCh0LHIpe3JldHVybiB0PXQucmVwbGFjZShLTSwobixpLG8sYSk9PnRoaXMuX3Byb2R1Y2VDc3NQcm9wZXJ0aWVzKG4saSxvLGEscikpLHRoaXMuX2NvbnN1bWVDc3NQcm9wZXJ0aWVzKHQscil9X2dldEluaXRpYWxWYWx1ZUZvclByb3BlcnR5KHQpe3JldHVybiB0aGlzLl9tZWFzdXJlRWxlbWVudHx8KHRoaXMuX21lYXN1cmVFbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm1ldGEiKSx0aGlzLl9tZWFzdXJlRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFwcGx5LXNoaW0tbWVhc3VyZSIsIiIpLHRoaXMuX21lYXN1cmVFbGVtZW50LnN0eWxlLmFsbD0iaW5pdGlhbCIsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0aGlzLl9tZWFzdXJlRWxlbWVudCkpLHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuX21lYXN1cmVFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKHQpfV9mYWxsYmFja3NGcm9tUHJldmlvdXNSdWxlcyh0KXtsZXQgcj10O2Zvcig7ci5wYXJlbnQ7KXI9ci5wYXJlbnQ7bGV0IG49e30saT0hMTtyZXR1cm4gT3gocixvPT57aT1pfHxvPT09dCwhaSYmby5zZWxlY3Rvcj09PXQuc2VsZWN0b3ImJk9iamVjdC5hc3NpZ24obix0aGlzLl9jc3NUZXh0VG9NYXAoby5wYXJzZWRDc3NUZXh0KSl9KSxufV9jb25zdW1lQ3NzUHJvcGVydGllcyh0LHIpe2xldCBuPW51bGw7Zm9yKDtuPUR4LmV4ZWModCk7KXtsZXQgaT1uWzBdLG89blsxXSxhPW4uaW5kZXgscz1hK2kuaW5kZXhPZigiQGFwcGx5IiksbD1hK2kubGVuZ3RoLGM9dC5zbGljZSgwLHMpLHU9dC5zbGljZShsKSxoPXI/dGhpcy5fZmFsbGJhY2tzRnJvbVByZXZpb3VzUnVsZXMocik6e307T2JqZWN0LmFzc2lnbihoLHRoaXMuX2Nzc1RleHRUb01hcChjKSk7bGV0IGY9dGhpcy5fYXRBcHBseVRvQ3NzUHJvcGVydGllcyhvLGgpO3Q9YCR7Y30ke2Z9JHt1fWAsRHgubGFzdEluZGV4PWErZi5sZW5ndGh9cmV0dXJuIHR9X2F0QXBwbHlUb0Nzc1Byb3BlcnRpZXModCxyKXt0PXQucmVwbGFjZShaMWUsIiIpO2xldCBuPVtdLGk9dGhpcy5fbWFwLmdldCh0KTtpZihpfHwodGhpcy5fbWFwLnNldCh0LHt9KSxpPXRoaXMuX21hcC5nZXQodCkpLGkpe3RoaXMuX2N1cnJlbnRFbGVtZW50JiYoaS5kZXBlbmRhbnRzW3RoaXMuX2N1cnJlbnRFbGVtZW50XT0hMCk7bGV0IG8sYSxzLGw9aS5wcm9wZXJ0aWVzO2ZvcihvIGluIGwpcz1yJiZyW29dLGE9W28sIjogdmFyKCIsdCxJRyxvXSxzJiZhLnB1c2goIiwiLHMucmVwbGFjZShVbXQsIiIpKSxhLnB1c2goIikiKSxVbXQudGVzdChsW29dKSYmYS5wdXNoKCIgIWltcG9ydGFudCIpLG4ucHVzaChhLmpvaW4oIiIpKX1yZXR1cm4gbi5qb2luKCI7ICIpfV9yZXBsYWNlSW5pdGlhbE9ySW5oZXJpdCh0LHIpe2xldCBuPUoxZS5leGVjKHIpO3JldHVybiBuJiYoblsxXT9yPXRoaXMuX2dldEluaXRpYWxWYWx1ZUZvclByb3BlcnR5KHQpOnI9ImFwcGx5LXNoaW0taW5oZXJpdCIpLHJ9X2Nzc1RleHRUb01hcCh0LHI9ITEpe2xldCBuPXQuc3BsaXQoIjsiKSxpLG8sYT17fTtmb3IobGV0IHM9MCxsLGM7czxuLmxlbmd0aDtzKyspbD1uW3NdLGwmJihjPWwuc3BsaXQoIjoiKSxjLmxlbmd0aD4xJiYoaT1jWzBdLnRyaW0oKSxvPWMuc2xpY2UoMSkuam9pbigiOiIpLHImJihvPXRoaXMuX3JlcGxhY2VJbml0aWFsT3JJbmhlcml0KGksbykpLGFbaV09bykpO3JldHVybiBhfV9pbnZhbGlkYXRlTWl4aW5FbnRyeSh0KXtpZighIVhJKWZvcihsZXQgciBpbiB0LmRlcGVuZGFudHMpciE9PXRoaXMuX2N1cnJlbnRFbGVtZW50JiZYSShyKX1fcHJvZHVjZUNzc1Byb3BlcnRpZXModCxyLG4saSxvKXtpZihuJiZBRyhuLChfLHkpPT57eSYmdGhpcy5fbWFwLmdldCh5KSYmKGk9YEBhcHBseSAke3l9O2ApfSksIWkpcmV0dXJuIHQ7bGV0IGE9dGhpcy5fY29uc3VtZUNzc1Byb3BlcnRpZXMoIiIraSxvKSxzPXQuc2xpY2UoMCx0LmluZGV4T2YoIi0tIikpLGw9dGhpcy5fY3NzVGV4dFRvTWFwKGEsITApLGM9bCx1PXRoaXMuX21hcC5nZXQociksaD11JiZ1LnByb3BlcnRpZXM7aD9jPU9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShoKSxsKTp0aGlzLl9tYXAuc2V0KHIsYyk7bGV0IGY9W10scCxkLGc9ITE7Zm9yKHAgaW4gYylkPWxbcF0sZD09PXZvaWQgMCYmKGQ9ImluaXRpYWwiKSxoJiYhKHAgaW4gaCkmJihnPSEwKSxmLnB1c2goYCR7cn0ke0lHfSR7cH06ICR7ZH1gKTtyZXR1cm4gZyYmdGhpcy5faW52YWxpZGF0ZU1peGluRW50cnkodSksdSYmKHUucHJvcGVydGllcz1jKSxuJiYocz1gJHt0fTske3N9YCksYCR7c30ke2Yuam9pbigiOyAiKX07YH19O0RvLnByb3RvdHlwZS5kZXRlY3RNaXhpbj1Eby5wcm90b3R5cGUuZGV0ZWN0TWl4aW47RG8ucHJvdG90eXBlLnRyYW5zZm9ybVN0eWxlPURvLnByb3RvdHlwZS50cmFuc2Zvcm1TdHlsZTtEby5wcm90b3R5cGUudHJhbnNmb3JtQ3VzdG9tU3R5bGU9RG8ucHJvdG90eXBlLnRyYW5zZm9ybUN1c3RvbVN0eWxlO0RvLnByb3RvdHlwZS50cmFuc2Zvcm1SdWxlcz1Eby5wcm90b3R5cGUudHJhbnNmb3JtUnVsZXM7RG8ucHJvdG90eXBlLnRyYW5zZm9ybVJ1bGU9RG8ucHJvdG90eXBlLnRyYW5zZm9ybVJ1bGU7RG8ucHJvdG90eXBlLnRyYW5zZm9ybVRlbXBsYXRlPURvLnByb3RvdHlwZS50cmFuc2Zvcm1UZW1wbGF0ZTtEby5wcm90b3R5cGUuX3NlcGFyYXRvcj1JRztPYmplY3QuZGVmaW5lUHJvcGVydHkoRG8ucHJvdG90eXBlLCJpbnZhbGlkQ2FsbGJhY2siLHtnZXQoKXtyZXR1cm4gWEl9LHNldChlKXtYST1lfX0pO3ZhciBxbXQ9RG87dmFyIFExZT17fSxRTT1RMWU7dmFyICRJPSJfYXBwbHlTaGltQ3VycmVudFZlcnNpb24iLHp4PSJfYXBwbHlTaGltTmV4dFZlcnNpb24iLEtJPSJfYXBwbHlTaGltVmFsaWRhdGluZ1ZlcnNpb24iLHR4ZT1Qcm9taXNlLnJlc29sdmUoKTtmdW5jdGlvbiBHbXQoZSl7bGV0IHQ9UU1bZV07dCYmZXhlKHQpfWZ1bmN0aW9uIGV4ZShlKXtlWyRJXT1lWyRJXXx8MCxlW0tJXT1lW0tJXXx8MCxlW3p4XT0oZVt6eF18fDApKzF9ZnVuY3Rpb24ga0coZSl7cmV0dXJuIGVbJEldPT09ZVt6eF19ZnVuY3Rpb24gV210KGUpe3JldHVybiFrRyhlKSYmZVtLSV09PT1lW3p4XX1mdW5jdGlvbiBZbXQoZSl7ZVtLSV09ZVt6eF0sZS5fdmFsaWRhdGluZ3x8KGUuX3ZhbGlkYXRpbmc9ITAsdHhlLnRoZW4oZnVuY3Rpb24oKXtlWyRJXT1lW3p4XSxlLl92YWxpZGF0aW5nPSExfSkpfXZhciBSRz1udWxsLGptdD13aW5kb3cuSFRNTEltcG9ydHMmJndpbmRvdy5IVE1MSW1wb3J0cy53aGVuUmVhZHl8fG51bGwsTkc7ZnVuY3Rpb24gWkkoZSl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7am10P2ptdChlKTooUkd8fChSRz1uZXcgUHJvbWlzZSh0PT57Tkc9dH0pLGRvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUiP05HKCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsKCk9Pntkb2N1bWVudC5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIiYmTkcoKX0pKSxSRy50aGVuKGZ1bmN0aW9uKCl7ZSYmZSgpfSkpfSl9dmFyIFhtdD0iX19zZWVuQnlTaGFkeUNTUyIsSkk9Il9fc2hhZHlDU1NDYWNoZWRTdHlsZSIsUUk9bnVsbCx0RT1udWxsLFpsPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5jdXN0b21TdHlsZXM9W10sdGhpcy5lbnF1ZXVlZD0hMSxaSSgoKT0+e3dpbmRvdy5TaGFkeUNTUy5mbHVzaEN1c3RvbVN0eWxlcyYmd2luZG93LlNoYWR5Q1NTLmZsdXNoQ3VzdG9tU3R5bGVzKCl9KX1lbnF1ZXVlRG9jdW1lbnRWYWxpZGF0aW9uKCl7dGhpcy5lbnF1ZXVlZHx8IXRFfHwodGhpcy5lbnF1ZXVlZD0hMCxaSSh0RSkpfWFkZEN1c3RvbVN0eWxlKHQpe3RbWG10XXx8KHRbWG10XT0hMCx0aGlzLmN1c3RvbVN0eWxlcy5wdXNoKHQpLHRoaXMuZW5xdWV1ZURvY3VtZW50VmFsaWRhdGlvbigpKX1nZXRTdHlsZUZvckN1c3RvbVN0eWxlKHQpe2lmKHRbSkldKXJldHVybiB0W0pJXTtsZXQgcjtyZXR1cm4gdC5nZXRTdHlsZT9yPXQuZ2V0U3R5bGUoKTpyPXQscn1wcm9jZXNzU3R5bGVzKCl7bGV0IHQ9dGhpcy5jdXN0b21TdHlsZXM7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspe2xldCBuPXRbcl07aWYobltKSV0pY29udGludWU7bGV0IGk9dGhpcy5nZXRTdHlsZUZvckN1c3RvbVN0eWxlKG4pO2lmKGkpe2xldCBvPWkuX19hcHBsaWVkRWxlbWVudHx8aTtRSSYmUUkobyksbltKSV09b319cmV0dXJuIHR9fTtabC5wcm90b3R5cGUuYWRkQ3VzdG9tU3R5bGU9WmwucHJvdG90eXBlLmFkZEN1c3RvbVN0eWxlO1psLnByb3RvdHlwZS5nZXRTdHlsZUZvckN1c3RvbVN0eWxlPVpsLnByb3RvdHlwZS5nZXRTdHlsZUZvckN1c3RvbVN0eWxlO1psLnByb3RvdHlwZS5wcm9jZXNzU3R5bGVzPVpsLnByb3RvdHlwZS5wcm9jZXNzU3R5bGVzO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFpsLnByb3RvdHlwZSx7dHJhbnNmb3JtQ2FsbGJhY2s6e2dldCgpe3JldHVybiBRSX0sc2V0KGUpe1FJPWV9fSx2YWxpZGF0ZUNhbGxiYWNrOntnZXQoKXtyZXR1cm4gdEV9LHNldChlKXtsZXQgdD0hMTt0RXx8KHQ9ITApLHRFPWUsdCYmdGhpcy5lbnF1ZXVlRG9jdW1lbnRWYWxpZGF0aW9uKCl9fX0pO3ZhciBlRT1uZXcgcW10LERHPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5jdXN0b21TdHlsZUludGVyZmFjZT1udWxsLGVFLmludmFsaWRDYWxsYmFjaz1HbXR9ZW5zdXJlKCl7dGhpcy5jdXN0b21TdHlsZUludGVyZmFjZXx8d2luZG93LlNoYWR5Q1NTLkN1c3RvbVN0eWxlSW50ZXJmYWNlJiYodGhpcy5jdXN0b21TdHlsZUludGVyZmFjZT13aW5kb3cuU2hhZHlDU1MuQ3VzdG9tU3R5bGVJbnRlcmZhY2UsdGhpcy5jdXN0b21TdHlsZUludGVyZmFjZS50cmFuc2Zvcm1DYWxsYmFjaz10PT57ZUUudHJhbnNmb3JtQ3VzdG9tU3R5bGUodCl9LHRoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2UudmFsaWRhdGVDYWxsYmFjaz0oKT0+e3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2UuZW5xdWV1ZWQmJnRoaXMuZmx1c2hDdXN0b21TdHlsZXMoKX0pfSl9cHJlcGFyZVRlbXBsYXRlKHQscil7aWYodGhpcy5lbnN1cmUoKSxQRyh0KSlyZXR1cm47UU1bcl09dDtsZXQgbj1lRS50cmFuc2Zvcm1UZW1wbGF0ZSh0LHIpO3QuX3N0eWxlQXN0PW59Zmx1c2hDdXN0b21TdHlsZXMoKXtpZih0aGlzLmVuc3VyZSgpLCF0aGlzLmN1c3RvbVN0eWxlSW50ZXJmYWNlKXJldHVybjtsZXQgdD10aGlzLmN1c3RvbVN0eWxlSW50ZXJmYWNlLnByb2Nlc3NTdHlsZXMoKTtpZighIXRoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2UuZW5xdWV1ZWQpe2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKXtsZXQgbj10W3JdLGk9dGhpcy5jdXN0b21TdHlsZUludGVyZmFjZS5nZXRTdHlsZUZvckN1c3RvbVN0eWxlKG4pO2kmJmVFLnRyYW5zZm9ybUN1c3RvbVN0eWxlKGkpfXRoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2UuZW5xdWV1ZWQ9ITF9fXN0eWxlU3VidHJlZSh0LHIpe2lmKHRoaXMuZW5zdXJlKCksciYmSk0odCxyKSx0LnNoYWRvd1Jvb3Qpe3RoaXMuc3R5bGVFbGVtZW50KHQpO2xldCBuPXQuc2hhZG93Um9vdC5jaGlsZHJlbnx8dC5zaGFkb3dSb290LmNoaWxkTm9kZXM7Zm9yKGxldCBpPTA7aTxuLmxlbmd0aDtpKyspdGhpcy5zdHlsZVN1YnRyZWUobltpXSl9ZWxzZXtsZXQgbj10LmNoaWxkcmVufHx0LmNoaWxkTm9kZXM7Zm9yKGxldCBpPTA7aTxuLmxlbmd0aDtpKyspdGhpcy5zdHlsZVN1YnRyZWUobltpXSl9fXN0eWxlRWxlbWVudCh0KXt0aGlzLmVuc3VyZSgpO2xldHtpczpyfT1GbXQodCksbj1RTVtyXTtpZighKG4mJlBHKG4pKSYmbiYmIWtHKG4pKXtXbXQobil8fCh0aGlzLnByZXBhcmVUZW1wbGF0ZShuLHIpLFltdChuKSk7bGV0IGk9dC5zaGFkb3dSb290O2lmKGkpe2xldCBvPWkucXVlcnlTZWxlY3Rvcigic3R5bGUiKTtvJiYoby5fX2Nzc1J1bGVzPW4uX3N0eWxlQXN0LG8udGV4dENvbnRlbnQ9Wk0obi5fc3R5bGVBc3QpKX19fXN0eWxlRG9jdW1lbnQodCl7dGhpcy5lbnN1cmUoKSx0aGlzLnN0eWxlU3VidHJlZShkb2N1bWVudC5ib2R5LHQpfX07aWYoIXdpbmRvdy5TaGFkeUNTU3x8IXdpbmRvdy5TaGFkeUNTUy5TY29waW5nU2hpbSl7bGV0IGU9bmV3IERHLHQ9d2luZG93LlNoYWR5Q1NTJiZ3aW5kb3cuU2hhZHlDU1MuQ3VzdG9tU3R5bGVJbnRlcmZhY2U7d2luZG93LlNoYWR5Q1NTPXtwcmVwYXJlVGVtcGxhdGUocixuLGkpe2UuZmx1c2hDdXN0b21TdHlsZXMoKSxlLnByZXBhcmVUZW1wbGF0ZShyLG4pfSxwcmVwYXJlVGVtcGxhdGVTdHlsZXMocixuLGkpe3dpbmRvdy5TaGFkeUNTUy5wcmVwYXJlVGVtcGxhdGUocixuLGkpfSxwcmVwYXJlVGVtcGxhdGVEb20ocixuKXt9LHN0eWxlU3VidHJlZShyLG4pe2UuZmx1c2hDdXN0b21TdHlsZXMoKSxlLnN0eWxlU3VidHJlZShyLG4pfSxzdHlsZUVsZW1lbnQocil7ZS5mbHVzaEN1c3RvbVN0eWxlcygpLGUuc3R5bGVFbGVtZW50KHIpfSxzdHlsZURvY3VtZW50KHIpe2UuZmx1c2hDdXN0b21TdHlsZXMoKSxlLnN0eWxlRG9jdW1lbnQocil9LGdldENvbXB1dGVkU3R5bGVWYWx1ZShyLG4pe3JldHVybiBqSShyLG4pfSxmbHVzaEN1c3RvbVN0eWxlcygpe2UuZmx1c2hDdXN0b21TdHlsZXMoKX0sbmF0aXZlQ3NzOk54LG5hdGl2ZVNoYWRvdzpmXyxjc3NCdWlsZDpFbSxkaXNhYmxlUnVudGltZTpXSX0sdCYmKHdpbmRvdy5TaGFkeUNTUy5DdXN0b21TdHlsZUludGVyZmFjZT10KX13aW5kb3cuU2hhZHlDU1MuQXBwbHlTaGltPWVFO3ZhciBzcj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2FzeW5jTW9kdWxlPW51bGwsdGhpcy5fY2FsbGJhY2s9bnVsbCx0aGlzLl90aW1lcj1udWxsfXNldENvbmZpZyh0LHIpe3RoaXMuX2FzeW5jTW9kdWxlPXQsdGhpcy5fY2FsbGJhY2s9cix0aGlzLl90aW1lcj10aGlzLl9hc3luY01vZHVsZS5ydW4oKCk9Pnt0aGlzLl90aW1lcj1udWxsLHJFLmRlbGV0ZSh0aGlzKSx0aGlzLl9jYWxsYmFjaygpfSl9Y2FuY2VsKCl7dGhpcy5pc0FjdGl2ZSgpJiYodGhpcy5fY2FuY2VsQXN5bmMoKSxyRS5kZWxldGUodGhpcykpfV9jYW5jZWxBc3luYygpe3RoaXMuaXNBY3RpdmUoKSYmKHRoaXMuX2FzeW5jTW9kdWxlLmNhbmNlbCh0aGlzLl90aW1lciksdGhpcy5fdGltZXI9bnVsbCl9Zmx1c2goKXt0aGlzLmlzQWN0aXZlKCkmJih0aGlzLmNhbmNlbCgpLHRoaXMuX2NhbGxiYWNrKCkpfWlzQWN0aXZlKCl7cmV0dXJuIHRoaXMuX3RpbWVyIT1udWxsfXN0YXRpYyBkZWJvdW5jZSh0LHIsbil7cmV0dXJuIHQgaW5zdGFuY2VvZiBzcj90Ll9jYW5jZWxBc3luYygpOnQ9bmV3IHNyLHQuc2V0Q29uZmlnKHIsbiksdH19LHJFPW5ldyBTZXQsSmw9ZnVuY3Rpb24oZSl7ckUuYWRkKGUpfSwkbXQ9ZnVuY3Rpb24oKXtsZXQgZT1Cb29sZWFuKHJFLnNpemUpO3JldHVybiByRS5mb3JFYWNoKHQ9Pnt0cnl7dC5mbHVzaCgpfWNhdGNoKHIpe3NldFRpbWVvdXQoKCk9Pnt0aHJvdyByfSl9fSksZX07dmFyIEJHPXR5cGVvZiBkb2N1bWVudC5oZWFkLnN0eWxlLnRvdWNoQWN0aW9uPT0ic3RyaW5nIixlOT0iX19wb2x5bWVyR2VzdHVyZXMiLHQ5PSJfX3BvbHltZXJHZXN0dXJlc0hhbmRsZWQiLHpHPSJfX3BvbHltZXJHZXN0dXJlc1RvdWNoQWN0aW9uIixLbXQ9MjUsWm10PTUsbnhlPTIsaXhlPTI1MDAscmd0PVsibW91c2Vkb3duIiwibW91c2Vtb3ZlIiwibW91c2V1cCIsImNsaWNrIl0sb3hlPVswLDEsNCwyXSxheGU9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBNb3VzZUV2ZW50KCJ0ZXN0Iix7YnV0dG9uczoxfSkuYnV0dG9ucz09PTF9Y2F0Y2goZSl7cmV0dXJuITF9fSgpO2Z1bmN0aW9uIEhHKGUpe3JldHVybiByZ3QuaW5kZXhPZihlKT4tMX12YXIgVkc9ITE7KGZ1bmN0aW9uKCl7dHJ5e2xldCBlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldCgpe1ZHPSEwfX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLGUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLGUpfWNhdGNoKGUpe319KSgpO2Z1bmN0aW9uIG5ndChlKXtpZighKEhHKGUpfHxlPT09InRvdWNoZW5kIikmJkJHJiZWRyYmWWR0KXJldHVybntwYXNzaXZlOiEwfX12YXIgaWd0PW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL2lQKD86W29hXWR8aG9uZSl8QW5kcm9pZC8pLEZHPVtdLHN4ZT17YnV0dG9uOiEwLGlucHV0OiEwLGtleWdlbjohMCxtZXRlcjohMCxvdXRwdXQ6ITAsdGV4dGFyZWE6ITAscHJvZ3Jlc3M6ITAsc2VsZWN0OiEwfSxseGU9e2J1dHRvbjohMCxjb21tYW5kOiEwLGZpZWxkc2V0OiEwLGlucHV0OiEwLGtleWdlbjohMCxvcHRncm91cDohMCxvcHRpb246ITAsc2VsZWN0OiEwLHRleHRhcmVhOiEwfTtmdW5jdGlvbiBjeGUoZSl7cmV0dXJuIHN4ZVtlLmxvY2FsTmFtZV18fCExfWZ1bmN0aW9uIHV4ZShlKXtsZXQgdD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLmxhYmVsc3x8W10pO2lmKCF0Lmxlbmd0aCl7dD1bXTtsZXQgcj1lLmdldFJvb3ROb2RlKCk7aWYoZS5pZCl7bGV0IG49ci5xdWVyeVNlbGVjdG9yQWxsKGBsYWJlbFtmb3IgPSAke2UuaWR9XWApO2ZvcihsZXQgaT0wO2k8bi5sZW5ndGg7aSsrKXQucHVzaChuW2ldKX19cmV0dXJuIHR9dmFyIEptdD1mdW5jdGlvbihlKXtsZXQgdD1lLnNvdXJjZUNhcGFiaWxpdGllcztpZighKHQmJiF0LmZpcmVzVG91Y2hFdmVudHMpJiYoZVt0OV09e3NraXA6ITB9LGUudHlwZT09PSJjbGljayIpKXtsZXQgcj0hMSxuPW45KGUpO2ZvcihsZXQgaT0wO2k8bi5sZW5ndGg7aSsrKXtpZihuW2ldLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpe2lmKG5baV0ubG9jYWxOYW1lPT09ImxhYmVsIilGRy5wdXNoKG5baV0pO2Vsc2UgaWYoY3hlKG5baV0pKXtsZXQgbz11eGUobltpXSk7Zm9yKGxldCBhPTA7YTxvLmxlbmd0aDthKyspcj1yfHxGRy5pbmRleE9mKG9bYV0pPi0xfX1pZihuW2ldPT09b2EubW91c2UudGFyZ2V0KXJldHVybn1pZihyKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKX19O2Z1bmN0aW9uIFFtdChlKXtsZXQgdD1pZ3Q/WyJjbGljayJdOnJndDtmb3IobGV0IHI9MCxuO3I8dC5sZW5ndGg7cisrKW49dFtyXSxlPyhGRy5sZW5ndGg9MCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKG4sSm10LCEwKSk6ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLEptdCwhMCl9ZnVuY3Rpb24gaHhlKGUpe2lmKCFmRylyZXR1cm47b2EubW91c2UubW91c2VJZ25vcmVKb2J8fFFtdCghMCk7bGV0IHQ9ZnVuY3Rpb24oKXtRbXQoKSxvYS5tb3VzZS50YXJnZXQ9bnVsbCxvYS5tb3VzZS5tb3VzZUlnbm9yZUpvYj1udWxsfTtvYS5tb3VzZS50YXJnZXQ9bjkoZSlbMF0sb2EubW91c2UubW91c2VJZ25vcmVKb2I9c3IuZGVib3VuY2Uob2EubW91c2UubW91c2VJZ25vcmVKb2IsbW8uYWZ0ZXIoaXhlKSx0KX1mdW5jdGlvbiBkXyhlKXtsZXQgdD1lLnR5cGU7aWYoIUhHKHQpKXJldHVybiExO2lmKHQ9PT0ibW91c2Vtb3ZlIil7bGV0IHI9ZS5idXR0b25zPT09dm9pZCAwPzE6ZS5idXR0b25zO3JldHVybiBlIGluc3RhbmNlb2Ygd2luZG93Lk1vdXNlRXZlbnQmJiFheGUmJihyPW94ZVtlLndoaWNoXXx8MCksQm9vbGVhbihyJjEpfWVsc2UgcmV0dXJuKGUuYnV0dG9uPT09dm9pZCAwPzA6ZS5idXR0b24pPT09MH1mdW5jdGlvbiBmeGUoZSl7aWYoZS50eXBlPT09ImNsaWNrIil7aWYoZS5kZXRhaWw9PT0wKXJldHVybiEwO2xldCB0PXlwKGUpO2lmKCF0Lm5vZGVUeXBlfHx0Lm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREUpcmV0dXJuITA7bGV0IHI9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPWUucGFnZVgsaT1lLnBhZ2VZO3JldHVybiEobj49ci5sZWZ0JiZuPD1yLnJpZ2h0JiZpPj1yLnRvcCYmaTw9ci5ib3R0b20pfXJldHVybiExfXZhciBvYT17bW91c2U6e3RhcmdldDpudWxsLG1vdXNlSWdub3JlSm9iOm51bGx9LHRvdWNoOnt4OjAseTowLGlkOi0xLHNjcm9sbERlY2lkZWQ6ITF9fTtmdW5jdGlvbiBweGUoZSl7bGV0IHQ9ImF1dG8iLHI9bjkoZSk7Zm9yKGxldCBuPTAsaTtuPHIubGVuZ3RoO24rKylpZihpPXJbbl0saVt6R10pe3Q9aVt6R107YnJlYWt9cmV0dXJuIHR9ZnVuY3Rpb24gb2d0KGUsdCxyKXtlLm1vdmVmbj10LGUudXBmbj1yLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIscil9ZnVuY3Rpb24gRngoZSl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixlLm1vdmVmbiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsZS51cGZuKSxlLm1vdmVmbj1udWxsLGUudXBmbj1udWxsfWZHJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsaHhlLFZHP3twYXNzaXZlOiEwfTohMSk7dmFyIG45PXdpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLm5vUGF0Y2g/d2luZG93LlNoYWR5RE9NLmNvbXBvc2VkUGF0aDplPT5lLmNvbXBvc2VkUGF0aCYmZS5jb21wb3NlZFBhdGgoKXx8W10saUU9e30scF89W107ZnVuY3Rpb24gZHhlKGUsdCl7bGV0IHI9ZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChlLHQpLG49cjtmb3IoO24mJm4uc2hhZG93Um9vdCYmIXdpbmRvdy5TaGFkeURPTTspe2xldCBpPW47aWYobj1uLnNoYWRvd1Jvb3QuZWxlbWVudEZyb21Qb2ludChlLHQpLGk9PT1uKWJyZWFrO24mJihyPW4pfXJldHVybiByfWZ1bmN0aW9uIHlwKGUpe2xldCB0PW45KGUpO3JldHVybiB0Lmxlbmd0aD4wP3RbMF06ZS50YXJnZXR9ZnVuY3Rpb24gYWd0KGUpe2xldCB0LHI9ZS50eXBlLGk9ZS5jdXJyZW50VGFyZ2V0W2U5XTtpZighaSlyZXR1cm47bGV0IG89aVtyXTtpZighIW8pe2lmKCFlW3Q5XSYmKGVbdDldPXt9LHIuc2xpY2UoMCw1KT09PSJ0b3VjaCIpKXtlPWU7bGV0IGE9ZS5jaGFuZ2VkVG91Y2hlc1swXTtpZihyPT09InRvdWNoc3RhcnQiJiZlLnRvdWNoZXMubGVuZ3RoPT09MSYmKG9hLnRvdWNoLmlkPWEuaWRlbnRpZmllciksb2EudG91Y2guaWQhPT1hLmlkZW50aWZpZXIpcmV0dXJuO0JHfHwocj09PSJ0b3VjaHN0YXJ0Inx8cj09PSJ0b3VjaG1vdmUiKSYmbXhlKGUpfWlmKHQ9ZVt0OV0sIXQuc2tpcCl7Zm9yKGxldCBhPTAsczthPHBfLmxlbmd0aDthKyspcz1wX1thXSxvW3MubmFtZV0mJiF0W3MubmFtZV0mJnMuZmxvdyYmcy5mbG93LnN0YXJ0LmluZGV4T2YoZS50eXBlKT4tMSYmcy5yZXNldCYmcy5yZXNldCgpO2ZvcihsZXQgYT0wLHM7YTxwXy5sZW5ndGg7YSsrKXM9cF9bYV0sb1tzLm5hbWVdJiYhdFtzLm5hbWVdJiYodFtzLm5hbWVdPSEwLHNbcl0oZSkpfX19ZnVuY3Rpb24gbXhlKGUpe2xldCB0PWUuY2hhbmdlZFRvdWNoZXNbMF0scj1lLnR5cGU7aWYocj09PSJ0b3VjaHN0YXJ0IilvYS50b3VjaC54PXQuY2xpZW50WCxvYS50b3VjaC55PXQuY2xpZW50WSxvYS50b3VjaC5zY3JvbGxEZWNpZGVkPSExO2Vsc2UgaWYocj09PSJ0b3VjaG1vdmUiKXtpZihvYS50b3VjaC5zY3JvbGxEZWNpZGVkKXJldHVybjtvYS50b3VjaC5zY3JvbGxEZWNpZGVkPSEwO2xldCBuPXB4ZShlKSxpPSExLG89TWF0aC5hYnMob2EudG91Y2gueC10LmNsaWVudFgpLGE9TWF0aC5hYnMob2EudG91Y2gueS10LmNsaWVudFkpO2UuY2FuY2VsYWJsZSYmKG49PT0ibm9uZSI/aT0hMDpuPT09InBhbi14Ij9pPWE+bzpuPT09InBhbi15IiYmKGk9bz5hKSksaT9lLnByZXZlbnREZWZhdWx0KCk6cjkoInRyYWNrIil9fWZ1bmN0aW9uIFRtKGUsdCxyKXtyZXR1cm4gaUVbdF0/KGd4ZShlLHQsciksITApOiExfWZ1bmN0aW9uIHNndChlLHQscil7cmV0dXJuIGlFW3RdPyhfeGUoZSx0LHIpLCEwKTohMX1mdW5jdGlvbiBneGUoZSx0LHIpe2xldCBuPWlFW3RdLGk9bi5kZXBzLG89bi5uYW1lLGE9ZVtlOV07YXx8KGVbZTldPWE9e30pO2ZvcihsZXQgcz0wLGwsYztzPGkubGVuZ3RoO3MrKylsPWlbc10sIShpZ3QmJkhHKGwpJiZsIT09ImNsaWNrIikmJihjPWFbbF0sY3x8KGFbbF09Yz17X2NvdW50OjB9KSxjLl9jb3VudD09PTAmJmUuYWRkRXZlbnRMaXN0ZW5lcihsLGFndCxuZ3QobCkpLGNbb109KGNbb118fDApKzEsYy5fY291bnQ9KGMuX2NvdW50fHwwKSsxKTtlLmFkZEV2ZW50TGlzdGVuZXIodCxyKSxuLnRvdWNoQWN0aW9uJiZtXyhlLG4udG91Y2hBY3Rpb24pfWZ1bmN0aW9uIF94ZShlLHQscil7bGV0IG49aUVbdF0saT1uLmRlcHMsbz1uLm5hbWUsYT1lW2U5XTtpZihhKWZvcihsZXQgcz0wLGwsYztzPGkubGVuZ3RoO3MrKylsPWlbc10sYz1hW2xdLGMmJmNbb10mJihjW29dPShjW29dfHwxKS0xLGMuX2NvdW50PShjLl9jb3VudHx8MSktMSxjLl9jb3VudD09PTAmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihsLGFndCxuZ3QobCkpKTtlLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxyKX1mdW5jdGlvbiBVRyhlKXtwXy5wdXNoKGUpO2ZvcihsZXQgdD0wO3Q8ZS5lbWl0cy5sZW5ndGg7dCsrKWlFW2UuZW1pdHNbdF1dPWV9ZnVuY3Rpb24geXhlKGUpe2ZvcihsZXQgdD0wLHI7dDxwXy5sZW5ndGg7dCsrKXtyPXBfW3RdO2ZvcihsZXQgbj0wLGk7bjxyLmVtaXRzLmxlbmd0aDtuKyspaWYoaT1yLmVtaXRzW25dLGk9PT1lKXJldHVybiByfXJldHVybiBudWxsfWZ1bmN0aW9uIG1fKGUsdCl7QkcmJmUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmbGkucnVuKCgpPT57ZS5zdHlsZS50b3VjaEFjdGlvbj10fSksZVt6R109dH1mdW5jdGlvbiBxRyhlLHQscil7bGV0IG49bmV3IEV2ZW50KHQse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxjb21wb3NlZDohMH0pO2lmKG4uZGV0YWlsPXIsdWUoZSkuZGlzcGF0Y2hFdmVudChuKSxuLmRlZmF1bHRQcmV2ZW50ZWQpe2xldCBpPXIucHJldmVudGVyfHxyLnNvdXJjZUV2ZW50O2kmJmkucHJldmVudERlZmF1bHQmJmkucHJldmVudERlZmF1bHQoKX19ZnVuY3Rpb24gcjkoZSl7bGV0IHQ9eXhlKGUpO3QuaW5mbyYmKHQuaW5mby5wcmV2ZW50PSEwKX1VRyh7bmFtZToiZG93bnVwIixkZXBzOlsibW91c2Vkb3duIiwidG91Y2hzdGFydCIsInRvdWNoZW5kIl0sZmxvdzp7c3RhcnQ6WyJtb3VzZWRvd24iLCJ0b3VjaHN0YXJ0Il0sZW5kOlsibW91c2V1cCIsInRvdWNoZW5kIl19LGVtaXRzOlsiZG93biIsInVwIl0saW5mbzp7bW92ZWZuOm51bGwsdXBmbjpudWxsfSxyZXNldDpmdW5jdGlvbigpe0Z4KHRoaXMuaW5mbyl9LG1vdXNlZG93bjpmdW5jdGlvbihlKXtpZighZF8oZSkpcmV0dXJuO2xldCB0PXlwKGUpLHI9dGhpcyxuPWZ1bmN0aW9uKGEpe2RfKGEpfHwobkUoInVwIix0LGEpLEZ4KHIuaW5mbykpfSxpPWZ1bmN0aW9uKGEpe2RfKGEpJiZuRSgidXAiLHQsYSksRngoci5pbmZvKX07b2d0KHRoaXMuaW5mbyxuLGkpLG5FKCJkb3duIix0LGUpfSx0b3VjaHN0YXJ0OmZ1bmN0aW9uKGUpe25FKCJkb3duIix5cChlKSxlLmNoYW5nZWRUb3VjaGVzWzBdLGUpfSx0b3VjaGVuZDpmdW5jdGlvbihlKXtuRSgidXAiLHlwKGUpLGUuY2hhbmdlZFRvdWNoZXNbMF0sZSl9fSk7ZnVuY3Rpb24gbkUoZSx0LHIsbil7IXR8fHFHKHQsZSx7eDpyLmNsaWVudFgseTpyLmNsaWVudFksc291cmNlRXZlbnQ6cixwcmV2ZW50ZXI6bixwcmV2ZW50OmZ1bmN0aW9uKGkpe3JldHVybiByOShpKX19KX1VRyh7bmFtZToidHJhY2siLHRvdWNoQWN0aW9uOiJub25lIixkZXBzOlsibW91c2Vkb3duIiwidG91Y2hzdGFydCIsInRvdWNobW92ZSIsInRvdWNoZW5kIl0sZmxvdzp7c3RhcnQ6WyJtb3VzZWRvd24iLCJ0b3VjaHN0YXJ0Il0sZW5kOlsibW91c2V1cCIsInRvdWNoZW5kIl19LGVtaXRzOlsidHJhY2siXSxpbmZvOnt4OjAseTowLHN0YXRlOiJzdGFydCIsc3RhcnRlZDohMSxtb3ZlczpbXSxhZGRNb3ZlOmZ1bmN0aW9uKGUpe3RoaXMubW92ZXMubGVuZ3RoPm54ZSYmdGhpcy5tb3Zlcy5zaGlmdCgpLHRoaXMubW92ZXMucHVzaChlKX0sbW92ZWZuOm51bGwsdXBmbjpudWxsLHByZXZlbnQ6ITF9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5pbmZvLnN0YXRlPSJzdGFydCIsdGhpcy5pbmZvLnN0YXJ0ZWQ9ITEsdGhpcy5pbmZvLm1vdmVzPVtdLHRoaXMuaW5mby54PTAsdGhpcy5pbmZvLnk9MCx0aGlzLmluZm8ucHJldmVudD0hMSxGeCh0aGlzLmluZm8pfSxtb3VzZWRvd246ZnVuY3Rpb24oZSl7aWYoIWRfKGUpKXJldHVybjtsZXQgdD15cChlKSxyPXRoaXMsbj1mdW5jdGlvbihhKXtsZXQgcz1hLmNsaWVudFgsbD1hLmNsaWVudFk7dGd0KHIuaW5mbyxzLGwpJiYoci5pbmZvLnN0YXRlPXIuaW5mby5zdGFydGVkP2EudHlwZT09PSJtb3VzZXVwIj8iZW5kIjoidHJhY2siOiJzdGFydCIsci5pbmZvLnN0YXRlPT09InN0YXJ0IiYmcjkoInRhcCIpLHIuaW5mby5hZGRNb3ZlKHt4OnMseTpsfSksZF8oYSl8fChyLmluZm8uc3RhdGU9ImVuZCIsRngoci5pbmZvKSksdCYmT0coci5pbmZvLHQsYSksci5pbmZvLnN0YXJ0ZWQ9ITApfSxpPWZ1bmN0aW9uKGEpe3IuaW5mby5zdGFydGVkJiZuKGEpLEZ4KHIuaW5mbyl9O29ndCh0aGlzLmluZm8sbixpKSx0aGlzLmluZm8ueD1lLmNsaWVudFgsdGhpcy5pbmZvLnk9ZS5jbGllbnRZfSx0b3VjaHN0YXJ0OmZ1bmN0aW9uKGUpe2xldCB0PWUuY2hhbmdlZFRvdWNoZXNbMF07dGhpcy5pbmZvLng9dC5jbGllbnRYLHRoaXMuaW5mby55PXQuY2xpZW50WX0sdG91Y2htb3ZlOmZ1bmN0aW9uKGUpe2xldCB0PXlwKGUpLHI9ZS5jaGFuZ2VkVG91Y2hlc1swXSxuPXIuY2xpZW50WCxpPXIuY2xpZW50WTt0Z3QodGhpcy5pbmZvLG4saSkmJih0aGlzLmluZm8uc3RhdGU9PT0ic3RhcnQiJiZyOSgidGFwIiksdGhpcy5pbmZvLmFkZE1vdmUoe3g6bix5Oml9KSxPRyh0aGlzLmluZm8sdCxyKSx0aGlzLmluZm8uc3RhdGU9InRyYWNrIix0aGlzLmluZm8uc3RhcnRlZD0hMCl9LHRvdWNoZW5kOmZ1bmN0aW9uKGUpe2xldCB0PXlwKGUpLHI9ZS5jaGFuZ2VkVG91Y2hlc1swXTt0aGlzLmluZm8uc3RhcnRlZCYmKHRoaXMuaW5mby5zdGF0ZT0iZW5kIix0aGlzLmluZm8uYWRkTW92ZSh7eDpyLmNsaWVudFgseTpyLmNsaWVudFl9KSxPRyh0aGlzLmluZm8sdCxyKSl9fSk7ZnVuY3Rpb24gdGd0KGUsdCxyKXtpZihlLnByZXZlbnQpcmV0dXJuITE7aWYoZS5zdGFydGVkKXJldHVybiEwO2xldCBuPU1hdGguYWJzKGUueC10KSxpPU1hdGguYWJzKGUueS1yKTtyZXR1cm4gbj49Wm10fHxpPj1abXR9ZnVuY3Rpb24gT0coZSx0LHIpe2lmKCF0KXJldHVybjtsZXQgbj1lLm1vdmVzW2UubW92ZXMubGVuZ3RoLTJdLGk9ZS5tb3Zlc1tlLm1vdmVzLmxlbmd0aC0xXSxvPWkueC1lLngsYT1pLnktZS55LHMsbD0wO24mJihzPWkueC1uLngsbD1pLnktbi55KSxxRyh0LCJ0cmFjayIse3N0YXRlOmUuc3RhdGUseDpyLmNsaWVudFgseTpyLmNsaWVudFksZHg6byxkeTphLGRkeDpzLGRkeTpsLHNvdXJjZUV2ZW50OnIsaG92ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gZHhlKHIuY2xpZW50WCxyLmNsaWVudFkpfX0pfVVHKHtuYW1lOiJ0YXAiLGRlcHM6WyJtb3VzZWRvd24iLCJjbGljayIsInRvdWNoc3RhcnQiLCJ0b3VjaGVuZCJdLGZsb3c6e3N0YXJ0OlsibW91c2Vkb3duIiwidG91Y2hzdGFydCJdLGVuZDpbImNsaWNrIiwidG91Y2hlbmQiXX0sZW1pdHM6WyJ0YXAiXSxpbmZvOnt4Ok5hTix5Ok5hTixwcmV2ZW50OiExfSxyZXNldDpmdW5jdGlvbigpe3RoaXMuaW5mby54PU5hTix0aGlzLmluZm8ueT1OYU4sdGhpcy5pbmZvLnByZXZlbnQ9ITF9LG1vdXNlZG93bjpmdW5jdGlvbihlKXtkXyhlKSYmKHRoaXMuaW5mby54PWUuY2xpZW50WCx0aGlzLmluZm8ueT1lLmNsaWVudFkpfSxjbGljazpmdW5jdGlvbihlKXtkXyhlKSYmZWd0KHRoaXMuaW5mbyxlKX0sdG91Y2hzdGFydDpmdW5jdGlvbihlKXtsZXQgdD1lLmNoYW5nZWRUb3VjaGVzWzBdO3RoaXMuaW5mby54PXQuY2xpZW50WCx0aGlzLmluZm8ueT10LmNsaWVudFl9LHRvdWNoZW5kOmZ1bmN0aW9uKGUpe2VndCh0aGlzLmluZm8sZS5jaGFuZ2VkVG91Y2hlc1swXSxlKX19KTtmdW5jdGlvbiBlZ3QoZSx0LHIpe2xldCBuPU1hdGguYWJzKHQuY2xpZW50WC1lLngpLGk9TWF0aC5hYnModC5jbGllbnRZLWUueSksbz15cChyfHx0KTshb3x8bHhlW28ubG9jYWxOYW1lXSYmby5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIil8fChpc05hTihuKXx8aXNOYU4oaSl8fG48PUttdCYmaTw9S210fHxmeGUodCkpJiYoZS5wcmV2ZW50fHxxRyhvLCJ0YXAiLHt4OnQuY2xpZW50WCx5OnQuY2xpZW50WSxzb3VyY2VFdmVudDp0LHByZXZlbnRlcjpyfSkpfXZhciBsZ3Q9eXA7dmFyIHZoPU5uKGU9PntjbGFzcyB0IGV4dGVuZHMgZXtfYWRkRXZlbnRMaXN0ZW5lclRvTm9kZShuLGksbyl7VG0obixpLG8pfHxzdXBlci5fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZShuLGksbyl9X3JlbW92ZUV2ZW50TGlzdGVuZXJGcm9tTm9kZShuLGksbyl7c2d0KG4saSxvKXx8c3VwZXIuX3JlbW92ZUV2ZW50TGlzdGVuZXJGcm9tTm9kZShuLGksbyl9fXJldHVybiB0fSk7dmFyIHZ4ZT0vOmhvc3RcKDpkaXJcKChsdHJ8cnRsKVwpXCkvZyx4eGU9Jzpob3N0KFtkaXI9IiQxIl0pJyxieGU9LyhbXHNcdy0jXC5cW1xdXCpdKik6ZGlyXCgobHRyfHJ0bClcKS9nLHd4ZT0nOmhvc3QoW2Rpcj0iJDIiXSkgJDEnLFN4ZT0vOmRpclwoKD86bHRyfHJ0bClcKS8sdWd0PUJvb2xlYW4od2luZG93LlNoYWR5RE9NJiZ3aW5kb3cuU2hhZHlET00uaW5Vc2UpLG9FPVtdLGFFPW51bGwsR0c9IiI7ZnVuY3Rpb24gaGd0KCl7R0c9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGlyIil9ZnVuY3Rpb24gZmd0KGUpe2UuX19hdXRvRGlyT3B0T3V0fHxlLnNldEF0dHJpYnV0ZSgiZGlyIixHRyl9ZnVuY3Rpb24gcGd0KCl7aGd0KCksR0c9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGlyIik7Zm9yKGxldCBlPTA7ZTxvRS5sZW5ndGg7ZSsrKWZndChvRVtlXSl9ZnVuY3Rpb24gTXhlKCl7YUUmJmFFLnRha2VSZWNvcmRzKCkubGVuZ3RoJiZwZ3QoKX12YXIgZGd0PU5uKGU9Pnt1Z3R8fGFFfHwoaGd0KCksYUU9bmV3IE11dGF0aW9uT2JzZXJ2ZXIocGd0KSxhRS5vYnNlcnZlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJkaXIiXX0pKTtsZXQgdD1ISShlKTtjbGFzcyByIGV4dGVuZHMgdHtzdGF0aWMgX3Byb2Nlc3NTdHlsZVRleHQoaSxvKXtyZXR1cm4gaT10Ll9wcm9jZXNzU3R5bGVUZXh0LmNhbGwodGhpcyxpLG8pLCF1Z3QmJlN4ZS50ZXN0KGkpJiYoaT10aGlzLl9yZXBsYWNlRGlySW5Dc3NUZXh0KGkpLHRoaXMuX19hY3RpdmF0ZURpcj0hMCksaX1zdGF0aWMgX3JlcGxhY2VEaXJJbkNzc1RleHQoaSl7bGV0IG89aTtyZXR1cm4gbz1vLnJlcGxhY2UodnhlLHh4ZSksbz1vLnJlcGxhY2UoYnhlLHd4ZSksb31jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fX2F1dG9EaXJPcHRPdXQ9ITF9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuX19hdXRvRGlyT3B0T3V0PXRoaXMuaGFzQXR0cmlidXRlKCJkaXIiKX1jb25uZWN0ZWRDYWxsYmFjaygpe3QucHJvdG90eXBlLmNvbm5lY3RlZENhbGxiYWNrJiZzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY29uc3RydWN0b3IuX19hY3RpdmF0ZURpciYmKE14ZSgpLG9FLnB1c2godGhpcyksZmd0KHRoaXMpKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe2lmKHQucHJvdG90eXBlLmRpc2Nvbm5lY3RlZENhbGxiYWNrJiZzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY29uc3RydWN0b3IuX19hY3RpdmF0ZURpcil7bGV0IGk9b0UuaW5kZXhPZih0aGlzKTtpPi0xJiZvRS5zcGxpY2UoaSwxKX19fXJldHVybiByLl9fYWN0aXZhdGVEaXI9ITEscn0pO3ZhciBpOT0hMSxtZ3Q9W10sZ2d0PVtdO2Z1bmN0aW9uIF9ndCgpe2k5PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe2k5PSExLEV4ZShtZ3QpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtUeGUoZ2d0KX0pfSl9ZnVuY3Rpb24gRXhlKGUpe2Zvcig7ZS5sZW5ndGg7KXlndChlLnNoaWZ0KCkpfWZ1bmN0aW9uIFR4ZShlKXtmb3IobGV0IHQ9MCxyPWUubGVuZ3RoO3Q8cjt0KyspeWd0KGUuc2hpZnQoKSl9ZnVuY3Rpb24geWd0KGUpe2xldCB0PWVbMF0scj1lWzFdLG49ZVsyXTt0cnl7ci5hcHBseSh0LG4pfWNhdGNoKGkpe3NldFRpbWVvdXQoKCk9Pnt0aHJvdyBpfSl9fWZ1bmN0aW9uIHZndChlLHQscil7aTl8fF9ndCgpLG1ndC5wdXNoKFtlLHQscl0pfWZ1bmN0aW9uIENtKGUsdCxyKXtpOXx8X2d0KCksZ2d0LnB1c2goW2UsdCxyXSl9ZnVuY3Rpb24geGd0KCl7ZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGUoInVucmVzb2x2ZWQiKX1kb2N1bWVudC5yZWFkeVN0YXRlPT09ImludGVyYWN0aXZlInx8ZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSI/eGd0KCk6d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLHhndCk7ZnVuY3Rpb24gc0UoZSx0LHIpe3JldHVybntpbmRleDplLHJlbW92ZWQ6dCxhZGRlZENvdW50OnJ9fXZhciBiZ3Q9MCx3Z3Q9MSxXRz0yLFlHPTM7ZnVuY3Rpb24gQ3hlKGUsdCxyLG4saSxvKXtsZXQgYT1vLWkrMSxzPXItdCsxLGw9bmV3IEFycmF5KGEpO2ZvcihsZXQgYz0wO2M8YTtjKyspbFtjXT1uZXcgQXJyYXkocyksbFtjXVswXT1jO2ZvcihsZXQgYz0wO2M8cztjKyspbFswXVtjXT1jO2ZvcihsZXQgYz0xO2M8YTtjKyspZm9yKGxldCB1PTE7dTxzO3UrKylpZihqRyhlW3QrdS0xXSxuW2krYy0xXSkpbFtjXVt1XT1sW2MtMV1bdS0xXTtlbHNle2xldCBoPWxbYy0xXVt1XSsxLGY9bFtjXVt1LTFdKzE7bFtjXVt1XT1oPGY/aDpmfXJldHVybiBsfWZ1bmN0aW9uIEF4ZShlKXtsZXQgdD1lLmxlbmd0aC0xLHI9ZVswXS5sZW5ndGgtMSxuPWVbdF1bcl0saT1bXTtmb3IoO3Q+MHx8cj4wOyl7aWYodD09MCl7aS5wdXNoKFdHKSxyLS07Y29udGludWV9aWYocj09MCl7aS5wdXNoKFlHKSx0LS07Y29udGludWV9bGV0IG89ZVt0LTFdW3ItMV0sYT1lW3QtMV1bcl0scz1lW3RdW3ItMV0sbDthPHM/bD1hPG8/YTpvOmw9czxvP3M6byxsPT1vPyhvPT1uP2kucHVzaChiZ3QpOihpLnB1c2god2d0KSxuPW8pLHQtLSxyLS0pOmw9PWE/KGkucHVzaChZRyksdC0tLG49YSk6KGkucHVzaChXRyksci0tLG49cyl9cmV0dXJuIGkucmV2ZXJzZSgpLGl9ZnVuY3Rpb24gUHhlKGUsdCxyLG4saSxvKXtsZXQgYT0wLHM9MCxsLGM9TWF0aC5taW4oci10LG8taSk7aWYodD09MCYmaT09MCYmKGE9SXhlKGUsbixjKSkscj09ZS5sZW5ndGgmJm89PW4ubGVuZ3RoJiYocz1MeGUoZSxuLGMtYSkpLHQrPWEsaSs9YSxyLT1zLG8tPXMsci10PT0wJiZvLWk9PTApcmV0dXJuW107aWYodD09cil7Zm9yKGw9c0UodCxbXSwwKTtpPG87KWwucmVtb3ZlZC5wdXNoKG5baSsrXSk7cmV0dXJuW2xdfWVsc2UgaWYoaT09bylyZXR1cm5bc0UodCxbXSxyLXQpXTtsZXQgdT1BeGUoQ3hlKGUsdCxyLG4saSxvKSk7bD12b2lkIDA7bGV0IGg9W10sZj10LHA9aTtmb3IobGV0IGQ9MDtkPHUubGVuZ3RoO2QrKylzd2l0Y2godVtkXSl7Y2FzZSBiZ3Q6bCYmKGgucHVzaChsKSxsPXZvaWQgMCksZisrLHArKzticmVhaztjYXNlIHdndDpsfHwobD1zRShmLFtdLDApKSxsLmFkZGVkQ291bnQrKyxmKyssbC5yZW1vdmVkLnB1c2gobltwXSkscCsrO2JyZWFrO2Nhc2UgV0c6bHx8KGw9c0UoZixbXSwwKSksbC5hZGRlZENvdW50KyssZisrO2JyZWFrO2Nhc2UgWUc6bHx8KGw9c0UoZixbXSwwKSksbC5yZW1vdmVkLnB1c2gobltwXSkscCsrO2JyZWFrfXJldHVybiBsJiZoLnB1c2gobCksaH1mdW5jdGlvbiBJeGUoZSx0LHIpe2ZvcihsZXQgbj0wO248cjtuKyspaWYoIWpHKGVbbl0sdFtuXSkpcmV0dXJuIG47cmV0dXJuIHJ9ZnVuY3Rpb24gTHhlKGUsdCxyKXtsZXQgbj1lLmxlbmd0aCxpPXQubGVuZ3RoLG89MDtmb3IoO288ciYmakcoZVstLW5dLHRbLS1pXSk7KW8rKztyZXR1cm4gb31mdW5jdGlvbiBvOShlLHQpe3JldHVybiBQeGUoZSwwLGUubGVuZ3RoLHQsMCx0Lmxlbmd0aCl9ZnVuY3Rpb24gakcoZSx0KXtyZXR1cm4gZT09PXR9ZnVuY3Rpb24gQngoZSl7cmV0dXJuIGUubG9jYWxOYW1lPT09InNsb3QifXZhciB4aD1jbGFzc3tzdGF0aWMgZ2V0RmxhdHRlbmVkTm9kZXMoZSl7bGV0IHQ9dWUoZSk7cmV0dXJuIEJ4KGUpPyhlPWUsdC5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiEwfSkpOkFycmF5LmZyb20odC5jaGlsZE5vZGVzKS5tYXAocj0+Qngocik/KHI9cix1ZShyKS5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiEwfSkpOltyXSkucmVkdWNlKChyLG4pPT5yLmNvbmNhdChuKSxbXSl9Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9zaGFkeUNoaWxkcmVuT2JzZXJ2ZXI9bnVsbCx0aGlzLl9uYXRpdmVDaGlsZHJlbk9ic2VydmVyPW51bGwsdGhpcy5fY29ubmVjdGVkPSExLHRoaXMuX3RhcmdldD1lLHRoaXMuY2FsbGJhY2s9dCx0aGlzLl9lZmZlY3RpdmVOb2Rlcz1bXSx0aGlzLl9vYnNlcnZlcj1udWxsLHRoaXMuX3NjaGVkdWxlZD0hMSx0aGlzLl9ib3VuZFNjaGVkdWxlPSgpPT57dGhpcy5fc2NoZWR1bGUoKX0sdGhpcy5jb25uZWN0KCksdGhpcy5fc2NoZWR1bGUoKX1jb25uZWN0KCl7QngodGhpcy5fdGFyZ2V0KT90aGlzLl9saXN0ZW5TbG90cyhbdGhpcy5fdGFyZ2V0XSk6dWUodGhpcy5fdGFyZ2V0KS5jaGlsZHJlbiYmKHRoaXMuX2xpc3RlblNsb3RzKHVlKHRoaXMuX3RhcmdldCkuY2hpbGRyZW4pLHdpbmRvdy5TaGFkeURPTT90aGlzLl9zaGFkeUNoaWxkcmVuT2JzZXJ2ZXI9d2luZG93LlNoYWR5RE9NLm9ic2VydmVDaGlsZHJlbih0aGlzLl90YXJnZXQsZT0+e3RoaXMuX3Byb2Nlc3NNdXRhdGlvbnMoZSl9KToodGhpcy5fbmF0aXZlQ2hpbGRyZW5PYnNlcnZlcj1uZXcgTXV0YXRpb25PYnNlcnZlcihlPT57dGhpcy5fcHJvY2Vzc011dGF0aW9ucyhlKX0pLHRoaXMuX25hdGl2ZUNoaWxkcmVuT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl90YXJnZXQse2NoaWxkTGlzdDohMH0pKSksdGhpcy5fY29ubmVjdGVkPSEwfWRpc2Nvbm5lY3QoKXtCeCh0aGlzLl90YXJnZXQpP3RoaXMuX3VubGlzdGVuU2xvdHMoW3RoaXMuX3RhcmdldF0pOnVlKHRoaXMuX3RhcmdldCkuY2hpbGRyZW4mJih0aGlzLl91bmxpc3RlblNsb3RzKHVlKHRoaXMuX3RhcmdldCkuY2hpbGRyZW4pLHdpbmRvdy5TaGFkeURPTSYmdGhpcy5fc2hhZHlDaGlsZHJlbk9ic2VydmVyPyh3aW5kb3cuU2hhZHlET00udW5vYnNlcnZlQ2hpbGRyZW4odGhpcy5fc2hhZHlDaGlsZHJlbk9ic2VydmVyKSx0aGlzLl9zaGFkeUNoaWxkcmVuT2JzZXJ2ZXI9bnVsbCk6dGhpcy5fbmF0aXZlQ2hpbGRyZW5PYnNlcnZlciYmKHRoaXMuX25hdGl2ZUNoaWxkcmVuT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMuX25hdGl2ZUNoaWxkcmVuT2JzZXJ2ZXI9bnVsbCkpLHRoaXMuX2Nvbm5lY3RlZD0hMX1fc2NoZWR1bGUoKXt0aGlzLl9zY2hlZHVsZWR8fCh0aGlzLl9zY2hlZHVsZWQ9ITAsbGkucnVuKCgpPT50aGlzLmZsdXNoKCkpKX1fcHJvY2Vzc011dGF0aW9ucyhlKXt0aGlzLl9wcm9jZXNzU2xvdE11dGF0aW9ucyhlKSx0aGlzLmZsdXNoKCl9X3Byb2Nlc3NTbG90TXV0YXRpb25zKGUpe2lmKGUpZm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2xldCByPWVbdF07ci5hZGRlZE5vZGVzJiZ0aGlzLl9saXN0ZW5TbG90cyhyLmFkZGVkTm9kZXMpLHIucmVtb3ZlZE5vZGVzJiZ0aGlzLl91bmxpc3RlblNsb3RzKHIucmVtb3ZlZE5vZGVzKX19Zmx1c2goKXtpZighdGhpcy5fY29ubmVjdGVkKXJldHVybiExO3dpbmRvdy5TaGFkeURPTSYmU2hhZHlET00uZmx1c2goKSx0aGlzLl9uYXRpdmVDaGlsZHJlbk9ic2VydmVyP3RoaXMuX3Byb2Nlc3NTbG90TXV0YXRpb25zKHRoaXMuX25hdGl2ZUNoaWxkcmVuT2JzZXJ2ZXIudGFrZVJlY29yZHMoKSk6dGhpcy5fc2hhZHlDaGlsZHJlbk9ic2VydmVyJiZ0aGlzLl9wcm9jZXNzU2xvdE11dGF0aW9ucyh0aGlzLl9zaGFkeUNoaWxkcmVuT2JzZXJ2ZXIudGFrZVJlY29yZHMoKSksdGhpcy5fc2NoZWR1bGVkPSExO2xldCBlPXt0YXJnZXQ6dGhpcy5fdGFyZ2V0LGFkZGVkTm9kZXM6W10scmVtb3ZlZE5vZGVzOltdfSx0PXRoaXMuY29uc3RydWN0b3IuZ2V0RmxhdHRlbmVkTm9kZXModGhpcy5fdGFyZ2V0KSxyPW85KHQsdGhpcy5fZWZmZWN0aXZlTm9kZXMpO2ZvcihsZXQgaT0wLG87aTxyLmxlbmd0aCYmKG89cltpXSk7aSsrKWZvcihsZXQgYT0wLHM7YTxvLnJlbW92ZWQubGVuZ3RoJiYocz1vLnJlbW92ZWRbYV0pO2ErKyllLnJlbW92ZWROb2Rlcy5wdXNoKHMpO2ZvcihsZXQgaT0wLG87aTxyLmxlbmd0aCYmKG89cltpXSk7aSsrKWZvcihsZXQgYT1vLmluZGV4O2E8by5pbmRleCtvLmFkZGVkQ291bnQ7YSsrKWUuYWRkZWROb2Rlcy5wdXNoKHRbYV0pO3RoaXMuX2VmZmVjdGl2ZU5vZGVzPXQ7bGV0IG49ITE7cmV0dXJuKGUuYWRkZWROb2Rlcy5sZW5ndGh8fGUucmVtb3ZlZE5vZGVzLmxlbmd0aCkmJihuPSEwLHRoaXMuY2FsbGJhY2suY2FsbCh0aGlzLl90YXJnZXQsZSkpLG59X2xpc3RlblNsb3RzKGUpe2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXtsZXQgcj1lW3RdO0J4KHIpJiZyLmFkZEV2ZW50TGlzdGVuZXIoInNsb3RjaGFuZ2UiLHRoaXMuX2JvdW5kU2NoZWR1bGUpfX1fdW5saXN0ZW5TbG90cyhlKXtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7bGV0IHI9ZVt0XTtCeChyKSYmci5yZW1vdmVFdmVudExpc3RlbmVyKCJzbG90Y2hhbmdlIix0aGlzLl9ib3VuZFNjaGVkdWxlKX19fTt2YXIgY2k9ZnVuY3Rpb24oKXtsZXQgZSx0O2RvIGU9d2luZG93LlNoYWR5RE9NJiZTaGFkeURPTS5mbHVzaCgpLHdpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLlNjb3BpbmdTaGltJiZ3aW5kb3cuU2hhZHlDU1MuU2NvcGluZ1NoaW0uZmx1c2goKSx0PSRtdCgpO3doaWxlKGV8fHQpfTt2YXIgSHg9RWxlbWVudC5wcm90b3R5cGUsa3hlPUh4Lm1hdGNoZXN8fEh4Lm1hdGNoZXNTZWxlY3Rvcnx8SHgubW96TWF0Y2hlc1NlbGVjdG9yfHxIeC5tc01hdGNoZXNTZWxlY3Rvcnx8SHgub01hdGNoZXNTZWxlY3Rvcnx8SHgud2Via2l0TWF0Y2hlc1NlbGVjdG9yLCRHPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGt4ZS5jYWxsKGUsdCl9LEtyPWNsYXNze2NvbnN0cnVjdG9yKHQpe3dpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLmluVXNlJiZ3aW5kb3cuU2hhZHlET00ucGF0Y2godCksdGhpcy5ub2RlPXR9b2JzZXJ2ZU5vZGVzKHQpe3JldHVybiBuZXcgeGgodGhpcy5ub2RlLHQpfXVub2JzZXJ2ZU5vZGVzKHQpe3QuZGlzY29ubmVjdCgpfW5vdGlmeU9ic2VydmVyKCl7fWRlZXBDb250YWlucyh0KXtpZih1ZSh0aGlzLm5vZGUpLmNvbnRhaW5zKHQpKXJldHVybiEwO2xldCByPXQsbj10Lm93bmVyRG9jdW1lbnQ7Zm9yKDtyJiZyIT09biYmciE9PXRoaXMubm9kZTspcj11ZShyKS5wYXJlbnROb2RlfHx1ZShyKS5ob3N0O3JldHVybiByPT09dGhpcy5ub2RlfWdldE93bmVyUm9vdCgpe3JldHVybiB1ZSh0aGlzLm5vZGUpLmdldFJvb3ROb2RlKCl9Z2V0RGlzdHJpYnV0ZWROb2Rlcygpe3JldHVybiB0aGlzLm5vZGUubG9jYWxOYW1lPT09InNsb3QiP3VlKHRoaXMubm9kZSkuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjohMH0pOltdfWdldERlc3RpbmF0aW9uSW5zZXJ0aW9uUG9pbnRzKCl7bGV0IHQ9W10scj11ZSh0aGlzLm5vZGUpLmFzc2lnbmVkU2xvdDtmb3IoO3I7KXQucHVzaChyKSxyPXVlKHIpLmFzc2lnbmVkU2xvdDtyZXR1cm4gdH1pbXBvcnROb2RlKHQscil7bGV0IG49dGhpcy5ub2RlIGluc3RhbmNlb2YgRG9jdW1lbnQ/dGhpcy5ub2RlOnRoaXMubm9kZS5vd25lckRvY3VtZW50O3JldHVybiB1ZShuKS5pbXBvcnROb2RlKHQscil9Z2V0RWZmZWN0aXZlQ2hpbGROb2Rlcygpe3JldHVybiB4aC5nZXRGbGF0dGVuZWROb2Rlcyh0aGlzLm5vZGUpfXF1ZXJ5RGlzdHJpYnV0ZWRFbGVtZW50cyh0KXtsZXQgcj10aGlzLmdldEVmZmVjdGl2ZUNoaWxkTm9kZXMoKSxuPVtdO2ZvcihsZXQgaT0wLG89ci5sZW5ndGgsYTtpPG8mJihhPXJbaV0pO2krKylhLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJiRHKGEsdCkmJm4ucHVzaChhKTtyZXR1cm4gbn1nZXQgYWN0aXZlRWxlbWVudCgpe2xldCB0PXRoaXMubm9kZTtyZXR1cm4gdC5fYWN0aXZlRWxlbWVudCE9PXZvaWQgMD90Ll9hY3RpdmVFbGVtZW50OnQuYWN0aXZlRWxlbWVudH19O2Z1bmN0aW9uIFJ4ZShlLHQpe2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKXtsZXQgbj10W3JdO2Vbbl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlW25dLmFwcGx5KHRoaXMubm9kZSxhcmd1bWVudHMpfX19ZnVuY3Rpb24gU2d0KGUsdCl7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspe2xldCBuPXRbcl07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZVtuXX0sY29uZmlndXJhYmxlOiEwfSl9fWZ1bmN0aW9uIE54ZShlLHQpe2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKXtsZXQgbj10W3JdO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGVbbl19LHNldDpmdW5jdGlvbihpKXt0aGlzLm5vZGVbbl09aX0sY29uZmlndXJhYmxlOiEwfSl9fXZhciBsRT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmV2ZW50PXR9Z2V0IHJvb3RUYXJnZXQoKXtyZXR1cm4gdGhpcy5wYXRoWzBdfWdldCBsb2NhbFRhcmdldCgpe3JldHVybiB0aGlzLmV2ZW50LnRhcmdldH1nZXQgcGF0aCgpe3JldHVybiB0aGlzLmV2ZW50LmNvbXBvc2VkUGF0aCgpfX07S3IucHJvdG90eXBlLmNsb25lTm9kZTtLci5wcm90b3R5cGUuYXBwZW5kQ2hpbGQ7S3IucHJvdG90eXBlLmluc2VydEJlZm9yZTtLci5wcm90b3R5cGUucmVtb3ZlQ2hpbGQ7S3IucHJvdG90eXBlLnJlcGxhY2VDaGlsZDtLci5wcm90b3R5cGUuc2V0QXR0cmlidXRlO0tyLnByb3RvdHlwZS5yZW1vdmVBdHRyaWJ1dGU7S3IucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3I7S3IucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3JBbGw7S3IucHJvdG90eXBlLnBhcmVudE5vZGU7S3IucHJvdG90eXBlLmZpcnN0Q2hpbGQ7S3IucHJvdG90eXBlLmxhc3RDaGlsZDtLci5wcm90b3R5cGUubmV4dFNpYmxpbmc7S3IucHJvdG90eXBlLnByZXZpb3VzU2libGluZztLci5wcm90b3R5cGUuZmlyc3RFbGVtZW50Q2hpbGQ7S3IucHJvdG90eXBlLmxhc3RFbGVtZW50Q2hpbGQ7S3IucHJvdG90eXBlLm5leHRFbGVtZW50U2libGluZztLci5wcm90b3R5cGUucHJldmlvdXNFbGVtZW50U2libGluZztLci5wcm90b3R5cGUuY2hpbGROb2RlcztLci5wcm90b3R5cGUuY2hpbGRyZW47S3IucHJvdG90eXBlLmNsYXNzTGlzdDtLci5wcm90b3R5cGUudGV4dENvbnRlbnQ7S3IucHJvdG90eXBlLmlubmVySFRNTDt2YXIgWEc9S3I7aWYod2luZG93LlNoYWR5RE9NJiZ3aW5kb3cuU2hhZHlET00uaW5Vc2UmJndpbmRvdy5TaGFkeURPTS5ub1BhdGNoJiZ3aW5kb3cuU2hhZHlET00uV3JhcHBlcil7Y2xhc3MgZSBleHRlbmRzIHdpbmRvdy5TaGFkeURPTS5XcmFwcGVye31PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhLci5wcm90b3R5cGUpLmZvckVhY2godD0+e3QhPSJhY3RpdmVFbGVtZW50IiYmKGUucHJvdG90eXBlW3RdPUtyLnByb3RvdHlwZVt0XSl9KSxTZ3QoZS5wcm90b3R5cGUsWyJjbGFzc0xpc3QiXSksWEc9ZSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhsRS5wcm90b3R5cGUse2xvY2FsVGFyZ2V0OntnZXQoKXtsZXQgdD10aGlzLmV2ZW50LmN1cnJlbnRUYXJnZXQscj10JiZ6dCh0KS5nZXRPd25lclJvb3QoKSxuPXRoaXMucGF0aDtmb3IobGV0IGk9MDtpPG4ubGVuZ3RoO2krKyl7bGV0IG89bltpXTtpZih6dChvKS5nZXRPd25lclJvb3QoKT09PXIpcmV0dXJuIG99fSxjb25maWd1cmFibGU6ITB9LHBhdGg6e2dldCgpe3JldHVybiB3aW5kb3cuU2hhZHlET00uY29tcG9zZWRQYXRoKHRoaXMuZXZlbnQpfSxjb25maWd1cmFibGU6ITB9fSl9ZWxzZSBSeGUoS3IucHJvdG90eXBlLFsiY2xvbmVOb2RlIiwiYXBwZW5kQ2hpbGQiLCJpbnNlcnRCZWZvcmUiLCJyZW1vdmVDaGlsZCIsInJlcGxhY2VDaGlsZCIsInNldEF0dHJpYnV0ZSIsInJlbW92ZUF0dHJpYnV0ZSIsInF1ZXJ5U2VsZWN0b3IiLCJxdWVyeVNlbGVjdG9yQWxsIl0pLFNndChLci5wcm90b3R5cGUsWyJwYXJlbnROb2RlIiwiZmlyc3RDaGlsZCIsImxhc3RDaGlsZCIsIm5leHRTaWJsaW5nIiwicHJldmlvdXNTaWJsaW5nIiwiZmlyc3RFbGVtZW50Q2hpbGQiLCJsYXN0RWxlbWVudENoaWxkIiwibmV4dEVsZW1lbnRTaWJsaW5nIiwicHJldmlvdXNFbGVtZW50U2libGluZyIsImNoaWxkTm9kZXMiLCJjaGlsZHJlbiIsImNsYXNzTGlzdCJdKSxOeGUoS3IucHJvdG90eXBlLFsidGV4dENvbnRlbnQiLCJpbm5lckhUTUwiLCJjbGFzc05hbWUiXSk7dmFyIHp0PWZ1bmN0aW9uKGUpe2lmKGU9ZXx8ZG9jdW1lbnQsZSBpbnN0YW5jZW9mIFhHfHxlIGluc3RhbmNlb2YgbEUpcmV0dXJuIGU7bGV0IHQ9ZS5fX2RvbUFwaTtyZXR1cm4gdHx8KGUgaW5zdGFuY2VvZiBFdmVudD90PW5ldyBsRShlKTp0PW5ldyBYRyhlKSxlLl9fZG9tQXBpPXQpLHR9O3ZhciBLRz13aW5kb3cuU2hhZHlET00sTWd0PXdpbmRvdy5TaGFkeUNTUztmdW5jdGlvbiBFZ3QoZSx0KXtyZXR1cm4gdWUoZSkuZ2V0Um9vdE5vZGUoKT09PXR9ZnVuY3Rpb24gVGd0KGUsdD0hMSl7aWYoIUtHfHwhTWd0fHwhS0cuaGFuZGxlc0R5bmFtaWNTY29waW5nKXJldHVybiBudWxsO2xldCByPU1ndC5TY29waW5nU2hpbTtpZighcilyZXR1cm4gbnVsbDtsZXQgbj1yLnNjb3BlRm9yTm9kZShlKSxpPXVlKGUpLmdldFJvb3ROb2RlKCksbz1hPT57aWYoIUVndChhLGkpKXJldHVybjtsZXQgcz1BcnJheS5mcm9tKEtHLm5hdGl2ZU1ldGhvZHMucXVlcnlTZWxlY3RvckFsbC5jYWxsKGEsIioiKSk7cy5wdXNoKGEpO2ZvcihsZXQgbD0wO2w8cy5sZW5ndGg7bCsrKXtsZXQgYz1zW2xdO2lmKCFFZ3QoYyxpKSljb250aW51ZTtsZXQgdT1yLmN1cnJlbnRTY29wZUZvck5vZGUoYyk7dSE9PW4mJih1IT09IiImJnIudW5zY29wZU5vZGUoYyx1KSxyLnNjb3BlTm9kZShjLG4pKX19O2lmKG8oZSksdCl7bGV0IGE9bmV3IE11dGF0aW9uT2JzZXJ2ZXIocz0+e2ZvcihsZXQgbD0wO2w8cy5sZW5ndGg7bCsrKXtsZXQgYz1zW2xdO2ZvcihsZXQgdT0wO3U8Yy5hZGRlZE5vZGVzLmxlbmd0aDt1Kyspe2xldCBoPWMuYWRkZWROb2Rlc1t1XTtoLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJm8oaCl9fX0pO3JldHVybiBhLm9ic2VydmUoZSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KSxhfWVsc2UgcmV0dXJuIG51bGx9dmFyIFpHPSJkaXNhYmxlLXVwZ3JhZGUiLEpHPWU9Pntmb3IoO2U7KXtsZXQgdD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsIm9ic2VydmVkQXR0cmlidXRlcyIpO2lmKHQpcmV0dXJuIHQuZ2V0O2U9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUucHJvdG90eXBlKS5jb25zdHJ1Y3Rvcn1yZXR1cm4oKT0+W119LEUxcj1ObihlPT57bGV0IHQ9TW0oZSkscj1KRyh0KTtjbGFzcyBuIGV4dGVuZHMgdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fX2lzVXBncmFkZURpc2FibGVkfXN0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7cmV0dXJuIHIuY2FsbCh0aGlzKS5jb25jYXQoWkcpfV9pbml0aWFsaXplUHJvcGVydGllcygpe3RoaXMuaGFzQXR0cmlidXRlKFpHKT90aGlzLl9faXNVcGdyYWRlRGlzYWJsZWQ9ITA6c3VwZXIuX2luaXRpYWxpemVQcm9wZXJ0aWVzKCl9X2VuYWJsZVByb3BlcnRpZXMoKXt0aGlzLl9faXNVcGdyYWRlRGlzYWJsZWR8fHN1cGVyLl9lbmFibGVQcm9wZXJ0aWVzKCl9X2NhbkFwcGx5UHJvcGVydHlEZWZhdWx0KG8pe3JldHVybiBzdXBlci5fY2FuQXBwbHlQcm9wZXJ0eURlZmF1bHQobykmJiEodGhpcy5fX2lzVXBncmFkZURpc2FibGVkJiZ0aGlzLl9pc1Byb3BlcnR5UGVuZGluZyhvKSl9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG8sYSxzLGwpe289PVpHP3RoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZCYmcz09bnVsbCYmKHN1cGVyLl9pbml0aWFsaXplUHJvcGVydGllcygpLHRoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZD0hMSx1ZSh0aGlzKS5pc0Nvbm5lY3RlZCYmc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSk6c3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG8sYSxzLGwpfWNvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5fX2lzVXBncmFkZURpc2FibGVkfHxzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5fX2lzVXBncmFkZURpc2FibGVkfHxzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfX1yZXR1cm4gbn0pO3ZhciBhOT0iZGlzYWJsZS11cGdyYWRlIixEeGU9d2luZG93LlNoYWR5Q1NTLEd0PU5uKGU9PntsZXQgdD12aChNbShlKSkscj1VST90OmRndCh0KSxuPUpHKHIpLGk9e3g6InBhbi14Iix5OiJwYW4teSIsbm9uZToibm9uZSIsYWxsOiJhdXRvIn07Y2xhc3MgbyBleHRlbmRzIHJ7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuaXNBdHRhY2hlZCx0aGlzLl9fYm91bmRMaXN0ZW5lcnMsdGhpcy5fZGVib3VuY2Vycyx0aGlzLl9faXNVcGdyYWRlRGlzYWJsZWQsdGhpcy5fX25lZWRzQXR0cmlidXRlc0F0Q29ubmVjdGVkLHRoaXMuX2xlZ2FjeUZvcmNlT2JzZXJ2ZWRBdHRyaWJ1dGVzfXN0YXRpYyBnZXQgaW1wb3J0TWV0YSgpe3JldHVybiB0aGlzLnByb3RvdHlwZS5pbXBvcnRNZXRhfWNyZWF0ZWQoKXt9X19hdHRyaWJ1dGVSZWFjdGlvbihzLGwsYyl7KHRoaXMuX19kYXRhQXR0cmlidXRlcyYmdGhpcy5fX2RhdGFBdHRyaWJ1dGVzW3NdfHxzPT09YTkpJiZ0aGlzLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhzLGwsYyxudWxsKX1zZXRBdHRyaWJ1dGUocyxsKXtpZihxTSYmIXRoaXMuX2xlZ2FjeUZvcmNlT2JzZXJ2ZWRBdHRyaWJ1dGVzKXtsZXQgYz10aGlzLmdldEF0dHJpYnV0ZShzKTtzdXBlci5zZXRBdHRyaWJ1dGUocyxsKSx0aGlzLl9fYXR0cmlidXRlUmVhY3Rpb24ocyxjLFN0cmluZyhsKSl9ZWxzZSBzdXBlci5zZXRBdHRyaWJ1dGUocyxsKX1yZW1vdmVBdHRyaWJ1dGUocyl7aWYocU0mJiF0aGlzLl9sZWdhY3lGb3JjZU9ic2VydmVkQXR0cmlidXRlcyl7bGV0IGw9dGhpcy5nZXRBdHRyaWJ1dGUocyk7c3VwZXIucmVtb3ZlQXR0cmlidXRlKHMpLHRoaXMuX19hdHRyaWJ1dGVSZWFjdGlvbihzLGwsbnVsbCl9ZWxzZSBzdXBlci5yZW1vdmVBdHRyaWJ1dGUocyl9c3RhdGljIGdldCBvYnNlcnZlZEF0dHJpYnV0ZXMoKXtyZXR1cm4gcU0mJiF0aGlzLnByb3RvdHlwZS5fbGVnYWN5Rm9yY2VPYnNlcnZlZEF0dHJpYnV0ZXM/KHRoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX19vYnNlcnZlZEF0dHJpYnV0ZXMiLHRoaXMpKXx8KHRoaXMuX19vYnNlcnZlZEF0dHJpYnV0ZXM9W10sVkkodGhpcy5wcm90b3R5cGUpKSx0aGlzLl9fb2JzZXJ2ZWRBdHRyaWJ1dGVzKTpuLmNhbGwodGhpcykuY29uY2F0KGE5KX1fZW5hYmxlUHJvcGVydGllcygpe3RoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZHx8c3VwZXIuX2VuYWJsZVByb3BlcnRpZXMoKX1fY2FuQXBwbHlQcm9wZXJ0eURlZmF1bHQocyl7cmV0dXJuIHN1cGVyLl9jYW5BcHBseVByb3BlcnR5RGVmYXVsdChzKSYmISh0aGlzLl9faXNVcGdyYWRlRGlzYWJsZWQmJnRoaXMuX2lzUHJvcGVydHlQZW5kaW5nKHMpKX1jb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuX19uZWVkc0F0dHJpYnV0ZXNBdENvbm5lY3RlZCYmdGhpcy5fdGFrZUF0dHJpYnV0ZXMoKSx0aGlzLl9faXNVcGdyYWRlRGlzYWJsZWR8fChzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaXNBdHRhY2hlZD0hMCx0aGlzLmF0dGFjaGVkKCkpfWF0dGFjaGVkKCl7fWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5fX2lzVXBncmFkZURpc2FibGVkfHwoc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmlzQXR0YWNoZWQ9ITEsdGhpcy5kZXRhY2hlZCgpKX1kZXRhY2hlZCgpe31hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2socyxsLGMsdSl7bCE9PWMmJihzPT1hOT90aGlzLl9faXNVcGdyYWRlRGlzYWJsZWQmJmM9PW51bGwmJih0aGlzLl9pbml0aWFsaXplUHJvcGVydGllcygpLHRoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZD0hMSx1ZSh0aGlzKS5pc0Nvbm5lY3RlZCYmdGhpcy5jb25uZWN0ZWRDYWxsYmFjaygpKTooc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHMsbCxjLHUpLHRoaXMuYXR0cmlidXRlQ2hhbmdlZChzLGwsYykpKX1hdHRyaWJ1dGVDaGFuZ2VkKHMsbCxjKXt9X2luaXRpYWxpemVQcm9wZXJ0aWVzKCl7aWYoZHAmJnRoaXMuaGFzQXR0cmlidXRlKGE5KSl0aGlzLl9faXNVcGdyYWRlRGlzYWJsZWQ9ITA7ZWxzZXtsZXQgcz1PYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyk7cy5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfX2hhc1JlZ2lzdGVyRmluaXNoZWQiLHMpKXx8KHRoaXMuX3JlZ2lzdGVyZWQoKSxzLl9faGFzUmVnaXN0ZXJGaW5pc2hlZD0hMCksc3VwZXIuX2luaXRpYWxpemVQcm9wZXJ0aWVzKCksdGhpcy5yb290PXRoaXMsdGhpcy5jcmVhdGVkKCkscU0mJiF0aGlzLl9sZWdhY3lGb3JjZU9ic2VydmVkQXR0cmlidXRlcyYmKHRoaXMuaGFzQXR0cmlidXRlcygpP3RoaXMuX3Rha2VBdHRyaWJ1dGVzKCk6dGhpcy5wYXJlbnROb2RlfHwodGhpcy5fX25lZWRzQXR0cmlidXRlc0F0Q29ubmVjdGVkPSEwKSksdGhpcy5fYXBwbHlMaXN0ZW5lcnMoKX19X3Rha2VBdHRyaWJ1dGVzKCl7bGV0IHM9dGhpcy5hdHRyaWJ1dGVzO2ZvcihsZXQgbD0wLGM9cy5sZW5ndGg7bDxjO2wrKyl7bGV0IHU9c1tsXTt0aGlzLl9fYXR0cmlidXRlUmVhY3Rpb24odS5uYW1lLG51bGwsdS52YWx1ZSl9fV9yZWdpc3RlcmVkKCl7fXJlYWR5KCl7dGhpcy5fZW5zdXJlQXR0cmlidXRlcygpLHN1cGVyLnJlYWR5KCl9X2Vuc3VyZUF0dHJpYnV0ZXMoKXt9X2FwcGx5TGlzdGVuZXJzKCl7fXNlcmlhbGl6ZShzKXtyZXR1cm4gdGhpcy5fc2VyaWFsaXplVmFsdWUocyl9ZGVzZXJpYWxpemUocyxsKXtyZXR1cm4gdGhpcy5fZGVzZXJpYWxpemVWYWx1ZShzLGwpfXJlZmxlY3RQcm9wZXJ0eVRvQXR0cmlidXRlKHMsbCxjKXt0aGlzLl9wcm9wZXJ0eVRvQXR0cmlidXRlKHMsbCxjKX1zZXJpYWxpemVWYWx1ZVRvQXR0cmlidXRlKHMsbCxjKXt0aGlzLl92YWx1ZVRvTm9kZUF0dHJpYnV0ZShjfHx0aGlzLHMsbCl9ZXh0ZW5kKHMsbCl7aWYoIShzJiZsKSlyZXR1cm4gc3x8bDtsZXQgYz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhsKTtmb3IobGV0IHU9MCxoO3U8Yy5sZW5ndGgmJihoPWNbdV0pO3UrKyl7bGV0IGY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLGgpO2YmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLGgsZil9cmV0dXJuIHN9bWl4aW4ocyxsKXtmb3IobGV0IGMgaW4gbClzW2NdPWxbY107cmV0dXJuIHN9Y2hhaW5PYmplY3QocyxsKXtyZXR1cm4gcyYmbCYmcyE9PWwmJihzLl9fcHJvdG9fXz1sKSxzfWluc3RhbmNlVGVtcGxhdGUocyl7bGV0IGw9dGhpcy5jb25zdHJ1Y3Rvci5fY29udGVudEZvclRlbXBsYXRlKHMpO3JldHVybiBkb2N1bWVudC5pbXBvcnROb2RlKGwsITApfWZpcmUocyxsLGMpe2M9Y3x8e30sbD1sPT1udWxsP3t9Omw7bGV0IHU9bmV3IEV2ZW50KHMse2J1YmJsZXM6Yy5idWJibGVzPT09dm9pZCAwPyEwOmMuYnViYmxlcyxjYW5jZWxhYmxlOkJvb2xlYW4oYy5jYW5jZWxhYmxlKSxjb21wb3NlZDpjLmNvbXBvc2VkPT09dm9pZCAwPyEwOmMuY29tcG9zZWR9KTt1LmRldGFpbD1sO2xldCBoPWMubm9kZXx8dGhpcztyZXR1cm4gdWUoaCkuZGlzcGF0Y2hFdmVudCh1KSx1fWxpc3RlbihzLGwsYyl7cz1zfHx0aGlzO2xldCB1PXRoaXMuX19ib3VuZExpc3RlbmVyc3x8KHRoaXMuX19ib3VuZExpc3RlbmVycz1uZXcgV2Vha01hcCksaD11LmdldChzKTtofHwoaD17fSx1LnNldChzLGgpKTtsZXQgZj1sK2M7aFtmXXx8KGhbZl09dGhpcy5fYWRkTWV0aG9kRXZlbnRMaXN0ZW5lclRvTm9kZShzLGwsYyx0aGlzKSl9dW5saXN0ZW4ocyxsLGMpe3M9c3x8dGhpcztsZXQgdT10aGlzLl9fYm91bmRMaXN0ZW5lcnMmJnRoaXMuX19ib3VuZExpc3RlbmVycy5nZXQocyksaD1sK2MsZj11JiZ1W2hdO2YmJih0aGlzLl9yZW1vdmVFdmVudExpc3RlbmVyRnJvbU5vZGUocyxsLGYpLHVbaF09bnVsbCl9c2V0U2Nyb2xsRGlyZWN0aW9uKHMsbCl7bV8obHx8dGhpcyxpW3NdfHwiYXV0byIpfSQkKHMpe3JldHVybiB0aGlzLnJvb3QucXVlcnlTZWxlY3RvcihzKX1nZXQgZG9tSG9zdCgpe2xldCBzPXVlKHRoaXMpLmdldFJvb3ROb2RlKCk7cmV0dXJuIHMgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50P3MuaG9zdDpzfWRpc3RyaWJ1dGVDb250ZW50KCl7bGV0IGw9enQodGhpcyk7d2luZG93LlNoYWR5RE9NJiZsLnNoYWRvd1Jvb3QmJlNoYWR5RE9NLmZsdXNoKCl9Z2V0RWZmZWN0aXZlQ2hpbGROb2Rlcygpe3JldHVybiB6dCh0aGlzKS5nZXRFZmZlY3RpdmVDaGlsZE5vZGVzKCl9cXVlcnlEaXN0cmlidXRlZEVsZW1lbnRzKHMpe3JldHVybiB6dCh0aGlzKS5xdWVyeURpc3RyaWJ1dGVkRWxlbWVudHMocyl9Z2V0RWZmZWN0aXZlQ2hpbGRyZW4oKXtyZXR1cm4gdGhpcy5nZXRFZmZlY3RpdmVDaGlsZE5vZGVzKCkuZmlsdGVyKGZ1bmN0aW9uKGwpe3JldHVybiBsLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREV9KX1nZXRFZmZlY3RpdmVUZXh0Q29udGVudCgpe2xldCBzPXRoaXMuZ2V0RWZmZWN0aXZlQ2hpbGROb2RlcygpLGw9W107Zm9yKGxldCBjPTAsdTt1PXNbY107YysrKXUubm9kZVR5cGUhPT1Ob2RlLkNPTU1FTlRfTk9ERSYmbC5wdXNoKHUudGV4dENvbnRlbnQpO3JldHVybiBsLmpvaW4oIiIpfXF1ZXJ5RWZmZWN0aXZlQ2hpbGRyZW4ocyl7bGV0IGw9dGhpcy5xdWVyeURpc3RyaWJ1dGVkRWxlbWVudHMocyk7cmV0dXJuIGwmJmxbMF19cXVlcnlBbGxFZmZlY3RpdmVDaGlsZHJlbihzKXtyZXR1cm4gdGhpcy5xdWVyeURpc3RyaWJ1dGVkRWxlbWVudHMocyl9Z2V0Q29udGVudENoaWxkTm9kZXMocyl7bGV0IGw9dGhpcy5yb290LnF1ZXJ5U2VsZWN0b3Ioc3x8InNsb3QiKTtyZXR1cm4gbD96dChsKS5nZXREaXN0cmlidXRlZE5vZGVzKCk6W119Z2V0Q29udGVudENoaWxkcmVuKHMpe3JldHVybiB0aGlzLmdldENvbnRlbnRDaGlsZE5vZGVzKHMpLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gYy5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFfSl9aXNMaWdodERlc2NlbmRhbnQocyl7bGV0IGw9dGhpcztyZXR1cm4gbCE9PXMmJnVlKGwpLmNvbnRhaW5zKHMpJiZ1ZShsKS5nZXRSb290Tm9kZSgpPT09dWUocykuZ2V0Um9vdE5vZGUoKX1pc0xvY2FsRGVzY2VuZGFudChzKXtyZXR1cm4gdGhpcy5yb290PT09dWUocykuZ2V0Um9vdE5vZGUoKX1zY29wZVN1YnRyZWUocyxsPSExKXtyZXR1cm4gVGd0KHMsbCl9Z2V0Q29tcHV0ZWRTdHlsZVZhbHVlKHMpe3JldHVybiBEeGUuZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKHRoaXMscyl9ZGVib3VuY2UocyxsLGMpe3JldHVybiB0aGlzLl9kZWJvdW5jZXJzPXRoaXMuX2RlYm91bmNlcnN8fHt9LHRoaXMuX2RlYm91bmNlcnNbc109c3IuZGVib3VuY2UodGhpcy5fZGVib3VuY2Vyc1tzXSxjPjA/bW8uYWZ0ZXIoYyk6bGksbC5iaW5kKHRoaXMpKX1pc0RlYm91bmNlckFjdGl2ZShzKXt0aGlzLl9kZWJvdW5jZXJzPXRoaXMuX2RlYm91bmNlcnN8fHt9O2xldCBsPXRoaXMuX2RlYm91bmNlcnNbc107cmV0dXJuISEobCYmbC5pc0FjdGl2ZSgpKX1mbHVzaERlYm91bmNlcihzKXt0aGlzLl9kZWJvdW5jZXJzPXRoaXMuX2RlYm91bmNlcnN8fHt9O2xldCBsPXRoaXMuX2RlYm91bmNlcnNbc107bCYmbC5mbHVzaCgpfWNhbmNlbERlYm91bmNlcihzKXt0aGlzLl9kZWJvdW5jZXJzPXRoaXMuX2RlYm91bmNlcnN8fHt9O2xldCBsPXRoaXMuX2RlYm91bmNlcnNbc107bCYmbC5jYW5jZWwoKX1hc3luYyhzLGwpe3JldHVybiBsPjA/bW8ucnVuKHMuYmluZCh0aGlzKSxsKTp+bGkucnVuKHMuYmluZCh0aGlzKSl9Y2FuY2VsQXN5bmMocyl7czwwP2xpLmNhbmNlbCh+cyk6bW8uY2FuY2VsKHMpfWNyZWF0ZShzLGwpe2xldCBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocyk7aWYobClpZihjLnNldFByb3BlcnRpZXMpYy5zZXRQcm9wZXJ0aWVzKGwpO2Vsc2UgZm9yKGxldCB1IGluIGwpY1t1XT1sW3VdO3JldHVybiBjfWVsZW1lbnRNYXRjaGVzKHMsbCl7cmV0dXJuICRHKGx8fHRoaXMscyl9dG9nZ2xlQXR0cmlidXRlKHMsbCl7bGV0IGM9dGhpcztyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTMmJihjPWFyZ3VtZW50c1syXSksYXJndW1lbnRzLmxlbmd0aD09MSYmKGw9IWMuaGFzQXR0cmlidXRlKHMpKSxsPyh1ZShjKS5zZXRBdHRyaWJ1dGUocywiIiksITApOih1ZShjKS5yZW1vdmVBdHRyaWJ1dGUocyksITEpfXRvZ2dsZUNsYXNzKHMsbCxjKXtjPWN8fHRoaXMsYXJndW1lbnRzLmxlbmd0aD09MSYmKGw9IWMuY2xhc3NMaXN0LmNvbnRhaW5zKHMpKSxsP2MuY2xhc3NMaXN0LmFkZChzKTpjLmNsYXNzTGlzdC5yZW1vdmUocyl9dHJhbnNmb3JtKHMsbCl7bD1sfHx0aGlzLGwuc3R5bGUud2Via2l0VHJhbnNmb3JtPXMsbC5zdHlsZS50cmFuc2Zvcm09c310cmFuc2xhdGUzZChzLGwsYyx1KXt1PXV8fHRoaXMsdGhpcy50cmFuc2Zvcm0oInRyYW5zbGF0ZTNkKCIrcysiLCIrbCsiLCIrYysiKSIsdSl9YXJyYXlEZWxldGUocyxsKXtsZXQgYztpZihBcnJheS5pc0FycmF5KHMpKXtpZihjPXMuaW5kZXhPZihsKSxjPj0wKXJldHVybiBzLnNwbGljZShjLDEpfWVsc2UgaWYoYz1Obyh0aGlzLHMpLmluZGV4T2YobCksYz49MClyZXR1cm4gdGhpcy5zcGxpY2UocyxjLDEpO3JldHVybiBudWxsfV9sb2dnZXIocyxsKXtzd2l0Y2goQXJyYXkuaXNBcnJheShsKSYmbC5sZW5ndGg9PT0xJiZBcnJheS5pc0FycmF5KGxbMF0pJiYobD1sWzBdKSxzKXtjYXNlImxvZyI6Y2FzZSJ3YXJuIjpjYXNlImVycm9yIjpjb25zb2xlW3NdKC4uLmwpfX1fbG9nKC4uLnMpe3RoaXMuX2xvZ2dlcigibG9nIixzKX1fd2FybiguLi5zKXt0aGlzLl9sb2dnZXIoIndhcm4iLHMpfV9lcnJvciguLi5zKXt0aGlzLl9sb2dnZXIoImVycm9yIixzKX1fbG9nZihzLC4uLmwpe3JldHVyblsiWyVzOjolc10iLHRoaXMuaXMscywuLi5sXX19cmV0dXJuIG8ucHJvdG90eXBlLmlzPSIiLG99KTt2YXIgQW09RWUoT2UoKSwxKTtmdW5jdGlvbiBiaChlLHQpe2xldCByPTAsbj0wO2Zvcig7Oyl7aWYocj09PWUubGVuZ3RoKXJldHVybiBuPT09dC5sZW5ndGg/MDotMTtpZihuPT09dC5sZW5ndGgpcmV0dXJuIDE7aWYoZ18oZVtyXSkmJmdfKHRbbl0pKXtsZXQgaT1yLG89bjtyPUNndChlLHIrMSksbj1DZ3QodCxuKzEpO2xldCBhPXBhcnNlRmxvYXQoZS5zbGljZShpLHIpKSxzPXBhcnNlRmxvYXQodC5zbGljZShvLG4pKTtpZihhPHMpcmV0dXJuLTE7aWYoYT5zKXJldHVybiAxO2NvbnRpbnVlfWlmKFFHKGVbcl0pKXtpZighUUcodFtuXSkpcmV0dXJuLTF9ZWxzZXtpZihRRyh0W25dKSlyZXR1cm4gMTtpZihlW3JdPHRbbl0pcmV0dXJuLTE7aWYoZVtyXT50W25dKXJldHVybiAxfXIrKyxuKyt9fWZ1bmN0aW9uIENndChlLHQpe2xldCByOyhmdW5jdGlvbihpKXtpW2kuTkFUVVJBTD0wXT0iTkFUVVJBTCIsaVtpLlJFQUw9MV09IlJFQUwiLGlbaS5FWFBPTkVOVF9TSUdOPTJdPSJFWFBPTkVOVF9TSUdOIixpW2kuRVhQT05FTlQ9M109IkVYUE9ORU5UIn0pKHJ8fChyPXt9KSk7bGV0IG49ci5OQVRVUkFMO2Zvcig7dDxlLmxlbmd0aDt0KyspaWYobj09PXIuTkFUVVJBTCl7aWYoZVt0XT09PSIuIiluPXIuUkVBTDtlbHNlIGlmKGVbdF09PT0iZSJ8fGVbdF09PT0iRSIpbj1yLkVYUE9ORU5UX1NJR047ZWxzZSBpZighZ18oZVt0XSkpYnJlYWt9ZWxzZSBpZihuPT09ci5SRUFMKXtpZihlW3RdPT09ImUifHxlW3RdPT09IkUiKW49ci5FWFBPTkVOVF9TSUdOO2Vsc2UgaWYoIWdfKGVbdF0pKWJyZWFrfWVsc2UgaWYobj09PXIuRVhQT05FTlRfU0lHTilpZihnXyhlW3RdKXx8ZVt0XT09PSIrInx8ZVt0XT09PSItIiluPXIuRVhQT05FTlQ7ZWxzZSBicmVhaztlbHNlIGlmKG49PT1yLkVYUE9ORU5UJiYhZ18oZVt0XSkpYnJlYWs7cmV0dXJuIHR9ZnVuY3Rpb24gZ18oZSl7cmV0dXJuIjAiPD1lJiZlPD0iOSJ9ZnVuY3Rpb24gUUcoZSl7cmV0dXJuIGU9PT0iLyJ8fGU9PT0iXyJ8fGdfKGUpfXZhciBPeGU9W107ZnVuY3Rpb24genhlKGUpe3JldHVybiBBbS5rZXlzKGUpLnNvcnQoYmgpfWZ1bmN0aW9uICRpKGUpe3JldHVybiBBbS51bmlvbi5hcHBseShudWxsLEFtLnZhbHVlcyhlKSkuc29ydChiaCl9ZnVuY3Rpb24gRnhlKGUsdCl7bGV0IHI9W107cmV0dXJuIHQuZm9yRWFjaChuPT5yPXIuY29uY2F0KGVbbl0pKSxBbS51bmlxKHIpLnNvcnQoYmgpfXZhciBQZ3Q9IlgtVGVuc29yQm9hcmQtRmVhdHVyZS1GbGFncyIsSWd0PSJ0ZW5zb3JCb2FyZEZlYXR1cmVGbGFncyI7dmFyIHRXPXt9O1pzKHRXLHtnZXRGZWF0dXJlRmxhZ3M6KCk9Pkh4ZSxnZXRGZWF0dXJlRmxhZ3NUb1NlbmRUb1NlcnZlcjooKT0+Y0UsaW5pdGlhbGl6ZUZlYXR1cmVGbGFnczooKT0+TGd0LHNldEZlYXR1cmVGbGFnczooKT0+QnhlfSk7dmFyIHM5LGw5O0xndCgpO2Z1bmN0aW9uIExndCgpe3M5PW51bGwsbDk9bnVsbH1mdW5jdGlvbiBCeGUoZSx0KXtzOT1lLGw5PXR9ZnVuY3Rpb24gSHhlKCl7aWYoczk9PT1udWxsKXRocm93IEVycm9yKCJGZWF0dXJlRmxhZ3MgaGF2ZSBub3QgeWV0IGJlZW4gZGV0ZXJtaW5lZCBieSBUZW5zb3JCb2FyZC4iKTtyZXR1cm4gczl9ZnVuY3Rpb24gY0UoKXtpZihsOT09PW51bGwpdGhyb3cgRXJyb3IoIkZlYXR1cmVGbGFncyBoYXZlIG5vdCB5ZXQgYmVlbiBkZXRlcm1pbmVkIGJ5IFRlbnNvckJvYXJkLiIpO3JldHVybiBsOX12YXIgYzk9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5uYW1lPSJSZXF1ZXN0Q2FuY2VsbGF0aW9uRXJyb3IifX0sVng9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLm5hbWU9IkludmFsaWRSZXF1ZXN0T3B0aW9uc0Vycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxWeC5wcm90b3R5cGUpfX0sdUU9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0LHIpe3N1cGVyKCksdGhpcy5tZXNzYWdlPWBSZXF1ZXN0TmV0d29ya0Vycm9yOiAke3Quc3RhdHVzfSBhdCAke3J9YCx0aGlzLm5hbWU9IlJlcXVlc3ROZXR3b3JrRXJyb3IiLHRoaXMucmVxPXQsdGhpcy51cmw9cn19LFBtOyhmdW5jdGlvbihlKXtlLkdFVD0iR0VUIixlLlBPU1Q9IlBPU1QifSkoUG18fChQbT17fSkpO3ZhciBVeD1jbGFzc3t2YWxpZGF0ZSgpe2lmKHRoaXMubWV0aG9kVHlwZT09PVBtLkdFVCYmdGhpcy5ib2R5KXRocm93IG5ldyBWeCgiYm9keSBtdXN0IGJlIG1pc3NpbmcgZm9yIGEgR0VUIHJlcXVlc3QuIil9fSxBZT1jbGFzc3tjb25zdHJ1Y3Rvcih0PTFlMyxyPTMpe3RoaXMuX3F1ZXVlPVtdLHRoaXMuX25BY3RpdmVSZXF1ZXN0cz0wLHRoaXMuX25TaW11bHRhbmVvdXNSZXF1ZXN0cz10LHRoaXMuX21heFJldHJpZXM9cn1yZXF1ZXN0KHQscil7bGV0IG49VXhlKHIpO3JldHVybiB0aGlzLnJlcXVlc3RXaXRoT3B0aW9ucyh0LG4pfXJlcXVlc3RXaXRoT3B0aW9ucyh0LHIpe3JldHVybiByLnZhbGlkYXRlKCksbmV3IFByb21pc2UoKGksbyk9PntsZXQgYT17cmVzb2x2ZTppLHJlamVjdDpvfTt0aGlzLl9xdWV1ZS5wdXNoKGEpLHRoaXMubGF1bmNoUmVxdWVzdHMoKX0pLnRoZW4oKCk9PnRoaXMucHJvbWlzZVdpdGhSZXRyaWVzKHQsdGhpcy5fbWF4UmV0cmllcyxyKSkudGhlbihpPT4odGhpcy5fbkFjdGl2ZVJlcXVlc3RzLS0sdGhpcy5sYXVuY2hSZXF1ZXN0cygpLGkpLGk9PihpLm5hbWU9PT0iUmVxdWVzdE5ldHdvcmtFcnJvciImJih0aGlzLl9uQWN0aXZlUmVxdWVzdHMtLSx0aGlzLmxhdW5jaFJlcXVlc3RzKCkpLFByb21pc2UucmVqZWN0KGkpKSl9ZmV0Y2godCxyKXtyZXR1cm4gbmV3IFByb21pc2UoKG4saSk9PntsZXQgbz17cmVzb2x2ZTpuLHJlamVjdDppfTt0aGlzLl9xdWV1ZS5wdXNoKG8pLHRoaXMubGF1bmNoUmVxdWVzdHMoKX0pLnRoZW4oKCk9PntsZXQgbj0xO3JldHVybiBuZXcgUHJvbWlzZShpPT57bGV0IG89KCk9PntmZXRjaCh0LHIpLnRoZW4oYT0+e2lmKCFhLm9rJiZ0aGlzLl9tYXhSZXRyaWVzPm4pe24rKyxvKCk7cmV0dXJufWkoYSksdGhpcy5fbkFjdGl2ZVJlcXVlc3RzLS0sdGhpcy5sYXVuY2hSZXF1ZXN0cygpfSl9O28oKX0pfSl9Y2xlYXJRdWV1ZSgpe3ZhciB0O2Zvcig7dGhpcy5fcXVldWUubGVuZ3RoPjA7KSh0PXRoaXMuX3F1ZXVlLnBvcCgpKT09bnVsbHx8dC5yZWplY3QobmV3IGM5KCJSZXF1ZXN0IGNhbmNlbGxlZCBieSBjbGVhclF1ZXVlIikpfWFjdGl2ZVJlcXVlc3RzKCl7cmV0dXJuIHRoaXMuX25BY3RpdmVSZXF1ZXN0c31vdXRzdGFuZGluZ1JlcXVlc3RzKCl7cmV0dXJuIHRoaXMuX25BY3RpdmVSZXF1ZXN0cyt0aGlzLl9xdWV1ZS5sZW5ndGh9bGF1bmNoUmVxdWVzdHMoKXtmb3IoO3RoaXMuX25BY3RpdmVSZXF1ZXN0czx0aGlzLl9uU2ltdWx0YW5lb3VzUmVxdWVzdHMmJnRoaXMuX3F1ZXVlLmxlbmd0aD4wOyl0aGlzLl9uQWN0aXZlUmVxdWVzdHMrKyx0aGlzLl9xdWV1ZS5wb3AoKS5yZXNvbHZlKHZvaWQgMCl9cHJvbWlzZVdpdGhSZXRyaWVzKHQscixuKXt2YXIgaT1hPT5hLG89YT0+cj4wP3RoaXMucHJvbWlzZVdpdGhSZXRyaWVzKHQsci0xLG4pOlByb21pc2UucmVqZWN0KGEpO3JldHVybiB0aGlzLl9wcm9taXNlRnJvbVVybCh0LG4pLnRoZW4oaSxvKX1fcHJvbWlzZUZyb21VcmwodCxyKXtyZXR1cm4gbmV3IFByb21pc2UoKG4saSk9PntsZXQgbz1WeGUoci5tZXRob2RUeXBlLHQsci53aXRoQ3JlZGVudGlhbHMsci5jb250ZW50VHlwZSk7by5zZXRSZXF1ZXN0SGVhZGVyKFBndCxKU09OLnN0cmluZ2lmeShjRSgpKSksby5vbmxvYWQ9ZnVuY3Rpb24oKXtvLnN0YXR1cz09PTIwMD9uKEpTT04ucGFyc2Uoby5yZXNwb25zZVRleHQpKTppKG5ldyB1RShvLHQpKX0sby5vbmVycm9yPWZ1bmN0aW9uKCl7aShuZXcgdUUobyx0KSl9LHIuYm9keT9vLnNlbmQoci5ib2R5KTpvLnNlbmQoKX0pfX07ZnVuY3Rpb24gVnhlKGUsdCxyLG4pe2xldCBpPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gaS5vcGVuKGUsdCksciYmKGkud2l0aENyZWRlbnRpYWxzPXIpLG4mJmkuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixuKSxpfWZ1bmN0aW9uIFV4ZShlKXtsZXQgdD1uZXcgVXg7cmV0dXJuIGU/KHQubWV0aG9kVHlwZT1QbS5QT1NULHQuYm9keT1xeGUoZSksdCk6KHQubWV0aG9kVHlwZT1QbS5HRVQsdCl9ZnVuY3Rpb24gcXhlKGUpe2xldCB0PW5ldyBGb3JtRGF0YTtmb3IobGV0W3Isbl1vZiBPYmplY3QuZW50cmllcyhlKSl7bGV0IGk9QXJyYXkuaXNBcnJheShuKT9uOltuXTtmb3IobGV0IG8gb2YgaSl0LmFwcGVuZChyLG8pfXJldHVybiB0fXZhciBrZ3Q9ImV4cGVyaW1lbnRhbFBsdWdpbiIsR3hlPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCksV3hlPVJndCgpO2Z1bmN0aW9uIFJndCgpe3JldHVybntlbnZpcm9ubWVudDooKT0+cXgoIi9lbnZpcm9ubWVudCIpLGV4cGVyaW1lbnRzOigpPT5xeCgiL2V4cGVyaW1lbnRzIikscGx1Z2luUm91dGU6KGUsdCxyKT0+cXgoYC9wbHVnaW4vJHtlfSR7dH1gLHIpLHBsdWdpblJvdXRlRm9yU3JjOihlLHQscj1uZXcgVVJMU2VhcmNoUGFyYW1zKT0+e2xldCBuPWNFKCk7cmV0dXJuIE9iamVjdC5rZXlzKG4pLmxlbmd0aD4wJiZyLmFwcGVuZChJZ3QsSlNPTi5zdHJpbmdpZnkobikpLHF4KGAvcGx1Z2luLyR7ZX0ke3R9YCxyKX0scGx1Z2luc0xpc3Rpbmc6KCk9PnF4KCIvcGx1Z2luc19saXN0aW5nIixOZ3Qoe1trZ3RdOkd4ZS5nZXRBbGwoa2d0KX0pKSxydW5zOigpPT5xeCgiL3J1bnMiKX19ZnVuY3Rpb24gX2UoKXtyZXR1cm4gV3hlfWZ1bmN0aW9uIHF4KGUsdD1uZXcgVVJMU2VhcmNoUGFyYW1zKXtsZXQgcj0iZGF0YSIrZTtyZXR1cm4gU3RyaW5nKHQpJiYocis9KGUuaW5jbHVkZXMoIj8iKT8iJiI6Ij8iKStTdHJpbmcodCkpLHJ9ZnVuY3Rpb24gTmd0KGU9e30pe2xldCB0PU9iamVjdC5rZXlzKGUpLnNvcnQoKS5maWx0ZXIobj0+ZVtuXSkscj1uZXcgVVJMU2VhcmNoUGFyYW1zO3JldHVybiB0LmZvckVhY2gobj0+e2xldCBpPWVbbl07KEFycmF5LmlzQXJyYXkoaSk/aTpbaV0pLmZvckVhY2goYT0+ci5hcHBlbmQobixhKSl9KSxyfXZhciB1OT1FZShPZSgpLDEpO3ZhciBEYTsoZnVuY3Rpb24oZSl7ZVtlLlNFQVJDSF9SRVNVTFRTPTBdPSJTRUFSQ0hfUkVTVUxUUyIsZVtlLlBSRUZJWF9HUk9VUD0xXT0iUFJFRklYX0dST1VQIn0pKERhfHwoRGE9e30pKTtmdW5jdGlvbiBZeGUoZSx0KXtsZXQgcj0oKCk9Pnt0cnl7cmV0dXJuIG5ldyBSZWdFeHAodCl9Y2F0Y2gobil7cmV0dXJuIG51bGx9fSkoKTtyZXR1cm57bmFtZTp0LG1ldGFkYXRhOnt0eXBlOkRhLlNFQVJDSF9SRVNVTFRTLHZhbGlkUmVnZXg6ISFyLHVuaXZlcnNhbFJlZ2V4OnQ9PT0iLioifSxpdGVtczpyP2UuZmlsdGVyKG49Pm4ubWF0Y2gocikpOltdfX1mdW5jdGlvbiBqeGUoZSx0PSIvIil7bGV0IHI9W10sbj17fTtyZXR1cm4gZS5mb3JFYWNoKGk9PntsZXQgbz1pLmluZGV4T2YodCksYT1vPj0wP2kuc2xpY2UoMCxvKTppO2lmKCFuW2FdKXtsZXQgcz17bmFtZTphLG1ldGFkYXRhOnt0eXBlOkRhLlBSRUZJWF9HUk9VUH0saXRlbXM6W119O25bYV09cyxyLnB1c2gocyl9blthXS5pdGVtcy5wdXNoKGkpfSkscn1mdW5jdGlvbiBYeGUoZSx0PSIiKXtsZXQgcj1bWXhlKGUsdCldLG49anhlKGUpO3JldHVybiBBcnJheSgpLmNvbmNhdChyLG4pfWZ1bmN0aW9uIGhFKGUsdCxyKXtsZXQgbj0kaShlKSxpPVh4ZShuLHIpLG89JHhlKHU5LnBpY2soZSx0KSk7cmV0dXJuIGkubWFwKCh7bmFtZTphLG1ldGFkYXRhOnMsaXRlbXM6bH0pPT4oe25hbWU6YSxtZXRhZGF0YTpzLGl0ZW1zOmwubWFwKGM9Pih7dGFnOmMscnVuczooby5nZXQoYyl8fFtdKS5zbGljZSgpfSkpfSkpfWZ1bmN0aW9uICR4ZShlKXtsZXQgdD1uZXcgTWFwO3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKHI9PntlW3JdLmZvckVhY2gobj0+e2xldCBpPXQuZ2V0KG4pfHxbXTtpLnB1c2gociksdC5zZXQobixpKX0pfSksdH1mdW5jdGlvbiBLeGUoZSx0KXtsZXQgcj1iaChlLnRhZyx0LnRhZyk7cmV0dXJuIHIhPTA/cjpiaChlLnJ1bix0LnJ1bil9ZnVuY3Rpb24gUWwoZSx0LHIpe2xldCBuPWhFKGUsdCxyKTtmdW5jdGlvbiBpKG8pe2xldCBhPXU5LmZsYXR0ZW4oby5pdGVtcy5tYXAoKHt0YWc6cyxydW5zOmx9KT0+bC5tYXAoYz0+KHt0YWc6cyxydW46Y30pKSkpO3JldHVybiBhLnNvcnQoS3hlKSx7bmFtZTpvLm5hbWUsbWV0YWRhdGE6by5tZXRhZGF0YSxpdGVtczphfX1yZXR1cm4gbi5tYXAoaSl9dmFyIGNXPXt9O1pzKGNXLHtJcm9uUmVzaXphYmxlQmVoYXZpb3I6KCk9PlFzfSk7dmFyIFp4ZT17YXR0YWNoZWQ6ITAsZGV0YWNoZWQ6ITAscmVhZHk6ITAsY3JlYXRlZDohMCxiZWZvcmVSZWdpc3RlcjohMCxyZWdpc3RlcmVkOiEwLGF0dHJpYnV0ZUNoYW5nZWQ6ITAsbGlzdGVuZXJzOiEwLGhvc3RBdHRyaWJ1dGVzOiEwfSxGZ3Q9e2F0dGFjaGVkOiEwLGRldGFjaGVkOiEwLHJlYWR5OiEwLGNyZWF0ZWQ6ITAsYmVmb3JlUmVnaXN0ZXI6ITAscmVnaXN0ZXJlZDohMCxhdHRyaWJ1dGVDaGFuZ2VkOiEwLGJlaGF2aW9yczohMCxfbm9BY2Nlc3NvcnM6ITB9LEp4ZT1PYmplY3QuYXNzaWduKHtsaXN0ZW5lcnM6ITAsaG9zdEF0dHJpYnV0ZXM6ITAscHJvcGVydGllczohMCxvYnNlcnZlcnM6ITB9LEZndCk7ZnVuY3Rpb24gUXhlKGUsdCxyKXtsZXQgbj1lLl9ub0FjY2Vzc29ycyxpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUpO2ZvcihsZXQgbz0wO288aS5sZW5ndGg7bysrKXtsZXQgYT1pW29dO2lmKCEoYSBpbiByKSlpZihuKXRbYV09ZVthXTtlbHNle2xldCBzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxhKTtzJiYocy5jb25maWd1cmFibGU9ITAsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsYSxzKSl9fX1mdW5jdGlvbiBCZ3QoZSx0KXtyZXR1cm4gVWd0KHt9LEd0KHQpLGUpfWZ1bmN0aW9uIHRiZShlLHQscil7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspSGd0KGUsdFtuXSxyLEp4ZSl9ZnVuY3Rpb24gSGd0KGUsdCxyLG4pe1F4ZSh0LGUsbik7Zm9yKGxldCBpIGluIFp4ZSl0W2ldJiYocltpXT1yW2ldfHxbXSxyW2ldLnB1c2godFtpXSkpfWZ1bmN0aW9uIFZndChlLHQscil7dD10fHxbXTtmb3IobGV0IG49ZS5sZW5ndGgtMTtuPj0wO24tLSl7bGV0IGk9ZVtuXTtpP0FycmF5LmlzQXJyYXkoaSk/Vmd0KGksdCk6dC5pbmRleE9mKGkpPDAmJighcnx8ci5pbmRleE9mKGkpPDApJiZ0LnVuc2hpZnQoaSk6Y29uc29sZS53YXJuKCJiZWhhdmlvciBpcyBudWxsLCBjaGVjayBmb3IgbWlzc2luZyBvciA0MDQgaW1wb3J0Iil9cmV0dXJuIHR9ZnVuY3Rpb24gT2d0KGUsdCl7Zm9yKGxldCByIGluIHQpe2xldCBuPWVbcl0saT10W3JdOyEoInZhbHVlImluIGkpJiZuJiYidmFsdWUiaW4gbj9lW3JdPU9iamVjdC5hc3NpZ24oe3ZhbHVlOm4udmFsdWV9LGkpOmVbcl09aX19dmFyIHpndD1HdChIVE1MRWxlbWVudCk7ZnVuY3Rpb24gVWd0KGUsdCxyKXtsZXQgbixpPXt9O2NsYXNzIG8gZXh0ZW5kcyB0e3N0YXRpYyBfZmluYWxpemVDbGFzcygpe2lmKCF0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoImdlbmVyYXRlZEZyb20iLHRoaXMpKSl0Ll9maW5hbGl6ZUNsYXNzLmNhbGwodGhpcyk7ZWxzZXtpZihuKWZvcihsZXQgbD0wLGM7bDxuLmxlbmd0aDtsKyspYz1uW2xdLGMucHJvcGVydGllcyYmdGhpcy5jcmVhdGVQcm9wZXJ0aWVzKGMucHJvcGVydGllcyksYy5vYnNlcnZlcnMmJnRoaXMuY3JlYXRlT2JzZXJ2ZXJzKGMub2JzZXJ2ZXJzLGMucHJvcGVydGllcyk7ZS5wcm9wZXJ0aWVzJiZ0aGlzLmNyZWF0ZVByb3BlcnRpZXMoZS5wcm9wZXJ0aWVzKSxlLm9ic2VydmVycyYmdGhpcy5jcmVhdGVPYnNlcnZlcnMoZS5vYnNlcnZlcnMsZS5wcm9wZXJ0aWVzKSx0aGlzLl9wcmVwYXJlVGVtcGxhdGUoKX19c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7bGV0IGw9e307aWYobilmb3IobGV0IGM9MDtjPG4ubGVuZ3RoO2MrKylPZ3QobCxuW2NdLnByb3BlcnRpZXMpO3JldHVybiBPZ3QobCxlLnByb3BlcnRpZXMpLGx9c3RhdGljIGdldCBvYnNlcnZlcnMoKXtsZXQgbD1bXTtpZihuKWZvcihsZXQgYz0wLHU7YzxuLmxlbmd0aDtjKyspdT1uW2NdLHUub2JzZXJ2ZXJzJiYobD1sLmNvbmNhdCh1Lm9ic2VydmVycykpO3JldHVybiBlLm9ic2VydmVycyYmKGw9bC5jb25jYXQoZS5vYnNlcnZlcnMpKSxsfWNyZWF0ZWQoKXtzdXBlci5jcmVhdGVkKCk7bGV0IGw9aS5jcmVhdGVkO2lmKGwpZm9yKGxldCBjPTA7YzxsLmxlbmd0aDtjKyspbFtjXS5jYWxsKHRoaXMpfV9yZWdpc3RlcmVkKCl7bGV0IGw9by5wcm90b3R5cGU7aWYoIWwuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX19oYXNSZWdpc3RlckZpbmlzaGVkIixsKSkpe2wuX19oYXNSZWdpc3RlckZpbmlzaGVkPSEwLHN1cGVyLl9yZWdpc3RlcmVkKCksZHAmJmEobCk7bGV0IGM9T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLHU9aS5iZWZvcmVSZWdpc3RlcjtpZih1KWZvcihsZXQgaD0wO2g8dS5sZW5ndGg7aCsrKXVbaF0uY2FsbChjKTtpZih1PWkucmVnaXN0ZXJlZCx1KWZvcihsZXQgaD0wO2g8dS5sZW5ndGg7aCsrKXVbaF0uY2FsbChjKX19X2FwcGx5TGlzdGVuZXJzKCl7c3VwZXIuX2FwcGx5TGlzdGVuZXJzKCk7bGV0IGw9aS5saXN0ZW5lcnM7aWYobClmb3IobGV0IGM9MDtjPGwubGVuZ3RoO2MrKyl7bGV0IHU9bFtjXTtpZih1KWZvcihsZXQgaCBpbiB1KXRoaXMuX2FkZE1ldGhvZEV2ZW50TGlzdGVuZXJUb05vZGUodGhpcyxoLHVbaF0pfX1fZW5zdXJlQXR0cmlidXRlcygpe2xldCBsPWkuaG9zdEF0dHJpYnV0ZXM7aWYobClmb3IobGV0IGM9bC5sZW5ndGgtMTtjPj0wO2MtLSl7bGV0IHU9bFtjXTtmb3IobGV0IGggaW4gdSl0aGlzLl9lbnN1cmVBdHRyaWJ1dGUoaCx1W2hdKX1zdXBlci5fZW5zdXJlQXR0cmlidXRlcygpfXJlYWR5KCl7c3VwZXIucmVhZHkoKTtsZXQgbD1pLnJlYWR5O2lmKGwpZm9yKGxldCBjPTA7YzxsLmxlbmd0aDtjKyspbFtjXS5jYWxsKHRoaXMpfWF0dGFjaGVkKCl7c3VwZXIuYXR0YWNoZWQoKTtsZXQgbD1pLmF0dGFjaGVkO2lmKGwpZm9yKGxldCBjPTA7YzxsLmxlbmd0aDtjKyspbFtjXS5jYWxsKHRoaXMpfWRldGFjaGVkKCl7c3VwZXIuZGV0YWNoZWQoKTtsZXQgbD1pLmRldGFjaGVkO2lmKGwpZm9yKGxldCBjPTA7YzxsLmxlbmd0aDtjKyspbFtjXS5jYWxsKHRoaXMpfWF0dHJpYnV0ZUNoYW5nZWQobCxjLHUpe3N1cGVyLmF0dHJpYnV0ZUNoYW5nZWQoKTtsZXQgaD1pLmF0dHJpYnV0ZUNoYW5nZWQ7aWYoaClmb3IobGV0IGY9MDtmPGgubGVuZ3RoO2YrKyloW2ZdLmNhbGwodGhpcyxsLGMsdSl9fWlmKHIpe0FycmF5LmlzQXJyYXkocil8fChyPVtyXSk7bGV0IHM9dC5wcm90b3R5cGUuYmVoYXZpb3JzO249Vmd0KHIsbnVsbCxzKSxvLnByb3RvdHlwZS5iZWhhdmlvcnM9cz9zLmNvbmNhdChyKTpufWxldCBhPXM9PntuJiZ0YmUocyxuLGkpLEhndChzLGUsaSxGZ3QpfTtyZXR1cm4gZHB8fGEoby5wcm90b3R5cGUpLG8uZ2VuZXJhdGVkRnJvbT1lLG99dmFyIGg5PWZ1bmN0aW9uKGUsdCl7ZXx8Y29uc29sZS53YXJuKCJQb2x5bWVyLkNsYXNzIHJlcXVpcmVzIGBpbmZvYCBhcmd1bWVudCIpO2xldCByPXQ/dCh6Z3QpOnpndDtyZXR1cm4gcj1VZ3QoZSxyLGUuYmVoYXZpb3JzKSxyLmlzPXIucHJvdG90eXBlLmlzPWUuaXMscn07dmFyIFl0PWZ1bmN0aW9uKGUpe2xldCB0O3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIj90PWU6dD1ZdC5DbGFzcyhlKSxlLl9sZWdhY3lGb3JjZU9ic2VydmVkQXR0cmlidXRlcyYmKHQucHJvdG90eXBlLl9sZWdhY3lGb3JjZU9ic2VydmVkQXR0cmlidXRlcz1lLl9sZWdhY3lGb3JjZU9ic2VydmVkQXR0cmlidXRlcyksY3VzdG9tRWxlbWVudHMuZGVmaW5lKHQuaXMsdCksdH07WXQuQ2xhc3M9aDk7ZnVuY3Rpb24gZVcoZSx0LHIsbixpKXtsZXQgbztpJiYobz10eXBlb2Ygcj09Im9iamVjdCImJnIhPT1udWxsLG8mJihuPWUuX19kYXRhVGVtcFt0XSkpO2xldCBhPW4hPT1yJiYobj09PW58fHI9PT1yKTtyZXR1cm4gbyYmYSYmKGUuX19kYXRhVGVtcFt0XT1yKSxhfXZhciBHeD1ObihlPT57Y2xhc3MgdCBleHRlbmRzIGV7X3Nob3VsZFByb3BlcnR5Q2hhbmdlKG4saSxvKXtyZXR1cm4gZVcodGhpcyxuLGksbywhMCl9fXJldHVybiB0fSksZjk9Tm4oZT0+e2NsYXNzIHQgZXh0ZW5kcyBle3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybnttdXRhYmxlRGF0YTpCb29sZWFufX1fc2hvdWxkUHJvcGVydHlDaGFuZ2UobixpLG8pe3JldHVybiBlVyh0aGlzLG4saSxvLHRoaXMubXV0YWJsZURhdGEpfX1yZXR1cm4gdH0pO0d4Ll9tdXRhYmxlUHJvcGVydHlDaGFuZ2U9ZVc7dmFyIHJXPW51bGw7ZnVuY3Rpb24gblcoKXtyZXR1cm4gcld9blcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoSFRNTFRlbXBsYXRlRWxlbWVudC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpuVyx3cml0YWJsZTohMH19KTt2YXIgR2d0PWhfKG5XKSxlYmU9R3goR2d0KTtmdW5jdGlvbiByYmUoZSx0KXtyVz1lLE9iamVjdC5zZXRQcm90b3R5cGVPZihlLHQucHJvdG90eXBlKSxuZXcgdCxyVz1udWxsfXZhciBuYmU9aF8oY2xhc3N7fSk7ZnVuY3Rpb24gaVcoZSx0KXtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKyl7bGV0IG49dFtyXTtpZihCb29sZWFuKGUpIT1Cb29sZWFuKG4uX19oaWRlVGVtcGxhdGVDaGlsZHJlbl9fKSlpZihuLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpZT8obi5fX3BvbHltZXJUZXh0Q29udGVudF9fPW4udGV4dENvbnRlbnQsbi50ZXh0Q29udGVudD0iIik6bi50ZXh0Q29udGVudD1uLl9fcG9seW1lclRleHRDb250ZW50X187ZWxzZSBpZihuLmxvY2FsTmFtZT09PSJzbG90IilpZihlKW4uX19wb2x5bWVyUmVwbGFjZWRfXz1kb2N1bWVudC5jcmVhdGVDb21tZW50KCJoaWRkZW4tc2xvdCIpLHVlKHVlKG4pLnBhcmVudE5vZGUpLnJlcGxhY2VDaGlsZChuLl9fcG9seW1lclJlcGxhY2VkX18sbik7ZWxzZXtsZXQgaT1uLl9fcG9seW1lclJlcGxhY2VkX187aSYmdWUodWUoaSkucGFyZW50Tm9kZSkucmVwbGFjZUNoaWxkKG4saSl9ZWxzZSBuLnN0eWxlJiYoZT8obi5fX3BvbHltZXJEaXNwbGF5X189bi5zdHlsZS5kaXNwbGF5LG4uc3R5bGUuZGlzcGxheT0ibm9uZSIpOm4uc3R5bGUuZGlzcGxheT1uLl9fcG9seW1lckRpc3BsYXlfXyk7bi5fX2hpZGVUZW1wbGF0ZUNoaWxkcmVuX189ZSxuLl9zaG93SGlkZUNoaWxkcmVuJiZuLl9zaG93SGlkZUNoaWxkcmVuKGUpfX12YXIgd2g9Y2xhc3MgZXh0ZW5kcyBuYmV7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLl9jb25maWd1cmVQcm9wZXJ0aWVzKHQpLHRoaXMucm9vdD10aGlzLl9zdGFtcFRlbXBsYXRlKHRoaXMuX19kYXRhSG9zdCk7bGV0IHI9W107dGhpcy5jaGlsZHJlbj1yO2ZvcihsZXQgaT10aGlzLnJvb3QuZmlyc3RDaGlsZDtpO2k9aS5uZXh0U2libGluZylyLnB1c2goaSksaS5fX3RlbXBsYXRpemVJbnN0YW5jZT10aGlzO3RoaXMuX190ZW1wbGF0aXplT3duZXImJnRoaXMuX190ZW1wbGF0aXplT3duZXIuX19oaWRlVGVtcGxhdGVDaGlsZHJlbl9fJiZ0aGlzLl9zaG93SGlkZUNoaWxkcmVuKCEwKTtsZXQgbj10aGlzLl9fdGVtcGxhdGl6ZU9wdGlvbnM7KHQmJm4uaW5zdGFuY2VQcm9wc3x8IW4uaW5zdGFuY2VQcm9wcykmJnRoaXMuX2VuYWJsZVByb3BlcnRpZXMoKX1fY29uZmlndXJlUHJvcGVydGllcyh0KXtpZih0aGlzLl9fdGVtcGxhdGl6ZU9wdGlvbnMuZm9yd2FyZEhvc3RQcm9wKWZvcihsZXQgbiBpbiB0aGlzLl9faG9zdFByb3BzKXRoaXMuX3NldFBlbmRpbmdQcm9wZXJ0eShuLHRoaXMuX19kYXRhSG9zdFsiX2hvc3RfIituXSk7Zm9yKGxldCBuIGluIHQpdGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5KG4sdFtuXSl9Zm9yd2FyZEhvc3RQcm9wKHQscil7dGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5T3JQYXRoKHQsciwhMSwhMCkmJnRoaXMuX19kYXRhSG9zdC5fZW5xdWV1ZUNsaWVudCh0aGlzKX1fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSh0LHIsbil7aWYodGhpcy5fbWV0aG9kSG9zdCYmdGhpcy5fX3RlbXBsYXRpemVPcHRpb25zLnBhcmVudE1vZGVsKXRoaXMuX21ldGhvZEhvc3QuX2FkZEV2ZW50TGlzdGVuZXJUb05vZGUodCxyLGk9PntpLm1vZGVsPXRoaXMsbihpKX0pO2Vsc2V7bGV0IGk9dGhpcy5fX2RhdGFIb3N0Ll9fZGF0YUhvc3Q7aSYmaS5fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSh0LHIsbil9fV9zaG93SGlkZUNoaWxkcmVuKHQpe2lXKHQsdGhpcy5jaGlsZHJlbil9X3NldFVubWFuYWdlZFByb3BlcnR5VG9Ob2RlKHQscixuKXt0Ll9faGlkZVRlbXBsYXRlQ2hpbGRyZW5fXyYmdC5ub2RlVHlwZT09Tm9kZS5URVhUX05PREUmJnI9PSJ0ZXh0Q29udGVudCI/dC5fX3BvbHltZXJUZXh0Q29udGVudF9fPW46c3VwZXIuX3NldFVubWFuYWdlZFByb3BlcnR5VG9Ob2RlKHQscixuKX1nZXQgcGFyZW50TW9kZWwoKXtsZXQgdD10aGlzLl9fcGFyZW50TW9kZWw7aWYoIXQpe2xldCByO3Q9dGhpcztkbyB0PXQuX19kYXRhSG9zdC5fX2RhdGFIb3N0O3doaWxlKChyPXQuX190ZW1wbGF0aXplT3B0aW9ucykmJiFyLnBhcmVudE1vZGVsKTt0aGlzLl9fcGFyZW50TW9kZWw9dH1yZXR1cm4gdH1kaXNwYXRjaEV2ZW50KHQpe3JldHVybiEwfX07d2gucHJvdG90eXBlLl9fZGF0YUhvc3Q7d2gucHJvdG90eXBlLl9fdGVtcGxhdGl6ZU9wdGlvbnM7d2gucHJvdG90eXBlLl9tZXRob2RIb3N0O3doLnByb3RvdHlwZS5fX3RlbXBsYXRpemVPd25lcjt3aC5wcm90b3R5cGUuX19ob3N0UHJvcHM7dmFyIGliZT1HeCh3aCk7ZnVuY3Rpb24gcWd0KGUpe2xldCB0PWUuX19kYXRhSG9zdDtyZXR1cm4gdCYmdC5fbWV0aG9kSG9zdHx8dH1mdW5jdGlvbiBvYmUoZSx0LHIpe2xldCBuPXIubXV0YWJsZURhdGE/aWJlOndoO3RjLm1peGluJiYobj10Yy5taXhpbihuKSk7bGV0IGk9Y2xhc3MgZXh0ZW5kcyBue307cmV0dXJuIGkucHJvdG90eXBlLl9fdGVtcGxhdGl6ZU9wdGlvbnM9cixpLnByb3RvdHlwZS5fYmluZFRlbXBsYXRlKGUpLGxiZShpLGUsdCxyKSxpfWZ1bmN0aW9uIGFiZShlLHQscixuKXtsZXQgaT1yLmZvcndhcmRIb3N0UHJvcDtpZihpJiZ0Lmhhc0hvc3RQcm9wcyl7bGV0IG89ZS5sb2NhbE5hbWU9PSJ0ZW1wbGF0ZSIsYT10LnRlbXBsYXRpemVUZW1wbGF0ZUNsYXNzO2lmKCFhKXtpZihvKXtsZXQgbD1yLm11dGFibGVEYXRhP2ViZTpHZ3Q7Y2xhc3MgYyBleHRlbmRzIGx7fWE9dC50ZW1wbGF0aXplVGVtcGxhdGVDbGFzcz1jfWVsc2V7bGV0IGw9ZS5jb25zdHJ1Y3RvcjtjbGFzcyBjIGV4dGVuZHMgbHt9YT10LnRlbXBsYXRpemVUZW1wbGF0ZUNsYXNzPWN9bGV0IHM9dC5ob3N0UHJvcHM7Zm9yKGxldCBsIGluIHMpYS5wcm90b3R5cGUuX2FkZFByb3BlcnR5RWZmZWN0KCJfaG9zdF8iK2wsYS5wcm90b3R5cGUuUFJPUEVSVFlfRUZGRUNUX1RZUEVTLlBST1BBR0FURSx7Zm46c2JlKGwsaSl9KSxhLnByb3RvdHlwZS5fY3JlYXRlTm90aWZ5aW5nUHJvcGVydHkoIl9ob3N0XyIrbCk7TEkmJm4mJmhiZSh0LHIsbil9aWYoZS5fX2RhdGFQcm90byYmT2JqZWN0LmFzc2lnbihlLl9fZGF0YSxlLl9fZGF0YVByb3RvKSxvKXJiZShlLGEpLGUuX19kYXRhVGVtcD17fSxlLl9fZGF0YVBlbmRpbmc9bnVsbCxlLl9fZGF0YU9sZD1udWxsLGUuX2VuYWJsZVByb3BlcnRpZXMoKTtlbHNle09iamVjdC5zZXRQcm90b3R5cGVPZihlLGEucHJvdG90eXBlKTtsZXQgcz10Lmhvc3RQcm9wcztmb3IobGV0IGwgaW4gcylpZihsPSJfaG9zdF8iK2wsbCBpbiBlKXtsZXQgYz1lW2xdO2RlbGV0ZSBlW2xdLGUuX19kYXRhW2xdPWN9fX19ZnVuY3Rpb24gc2JlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKG4saSxvKXt0LmNhbGwobi5fX3RlbXBsYXRpemVPd25lcixpLnN1YnN0cmluZyg2KSxvW2ldKX19ZnVuY3Rpb24gbGJlKGUsdCxyLG4pe2xldCBpPXIuaG9zdFByb3BzfHx7fTtmb3IobGV0IG8gaW4gbi5pbnN0YW5jZVByb3BzKXtkZWxldGUgaVtvXTtsZXQgYT1uLm5vdGlmeUluc3RhbmNlUHJvcDthJiZlLnByb3RvdHlwZS5fYWRkUHJvcGVydHlFZmZlY3QobyxlLnByb3RvdHlwZS5QUk9QRVJUWV9FRkZFQ1RfVFlQRVMuTk9USUZZLHtmbjpjYmUobyxhKX0pfWlmKG4uZm9yd2FyZEhvc3RQcm9wJiZ0Ll9fZGF0YUhvc3QpZm9yKGxldCBvIGluIGkpci5oYXNIb3N0UHJvcHN8fChyLmhhc0hvc3RQcm9wcz0hMCksZS5wcm90b3R5cGUuX2FkZFByb3BlcnR5RWZmZWN0KG8sZS5wcm90b3R5cGUuUFJPUEVSVFlfRUZGRUNUX1RZUEVTLk5PVElGWSx7Zm46dWJlKCl9KX1mdW5jdGlvbiBjYmUoZSx0KXtyZXR1cm4gZnVuY3Rpb24obixpLG8pe3QuY2FsbChuLl9fdGVtcGxhdGl6ZU93bmVyLG4saSxvW2ldKX19ZnVuY3Rpb24gdWJlKCl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXt0Ll9fZGF0YUhvc3QuX3NldFBlbmRpbmdQcm9wZXJ0eU9yUGF0aCgiX2hvc3RfIityLG5bcl0sITAsITApfX1mdW5jdGlvbiB0YyhlLHQscil7aWYoaXUmJiFxZ3QoZSkpdGhyb3cgbmV3IEVycm9yKCJzdHJpY3RUZW1wbGF0ZVBvbGljeTogdGVtcGxhdGUgb3duZXIgbm90IHRydXN0ZWQiKTtpZihyPXJ8fHt9LGUuX190ZW1wbGF0aXplT3duZXIpdGhyb3cgbmV3IEVycm9yKCJBIDx0ZW1wbGF0ZT4gY2FuIG9ubHkgYmUgdGVtcGxhdGl6ZWQgb25jZSIpO2UuX190ZW1wbGF0aXplT3duZXI9dDtsZXQgaT0odD90LmNvbnN0cnVjdG9yOndoKS5fcGFyc2VUZW1wbGF0ZShlKSxvPWkudGVtcGxhdGl6ZUluc3RhbmNlQ2xhc3M7b3x8KG89b2JlKGUsaSxyKSxpLnRlbXBsYXRpemVJbnN0YW5jZUNsYXNzPW8pO2xldCBhPXFndChlKTthYmUoZSxpLHIsYSk7bGV0IHM9Y2xhc3MgZXh0ZW5kcyBve307cmV0dXJuIHMucHJvdG90eXBlLl9tZXRob2RIb3N0PWEscy5wcm90b3R5cGUuX19kYXRhSG9zdD1lLHMucHJvdG90eXBlLl9fdGVtcGxhdGl6ZU93bmVyPXQscy5wcm90b3R5cGUuX19ob3N0UHJvcHM9aS5ob3N0UHJvcHMscz1zLHN9ZnVuY3Rpb24gaGJlKGUsdCxyKXtsZXQgbj1yLmNvbnN0cnVjdG9yLl9wcm9wZXJ0aWVzLHtwcm9wZXJ0eUVmZmVjdHM6aX09ZSx7aW5zdGFuY2VQcm9wczpvfT10O2ZvcihsZXQgYSBpbiBpKWlmKCFuW2FdJiYhKG8mJm9bYV0pKXtsZXQgcz1pW2FdO2ZvcihsZXQgbD0wO2w8cy5sZW5ndGg7bCsrKXtsZXR7cGFydDpjfT1zW2xdLmluZm87aWYoIShjLnNpZ25hdHVyZSYmYy5zaWduYXR1cmUuc3RhdGljKSl7Y29uc29sZS53YXJuKGBQcm9wZXJ0eSAnJHthfScgdXNlZCBpbiB0ZW1wbGF0ZSBidXQgbm90IGRlY2xhcmVkIGluICdwcm9wZXJ0aWVzJzsgYXR0cmlidXRlIHdpbGwgbm90IGJlIG9ic2VydmVkLmApO2JyZWFrfX19fWZ1bmN0aW9uIHA5KGUsdCl7bGV0IHI7Zm9yKDt0OylpZihyPXQuX19kYXRhSG9zdD90OnQuX190ZW1wbGF0aXplSW5zdGFuY2UpaWYoci5fX2RhdGFIb3N0IT1lKXQ9ci5fX2RhdGFIb3N0O2Vsc2UgcmV0dXJuIHI7ZWxzZSB0PXVlKHQpLnBhcmVudE5vZGU7cmV0dXJuIG51bGx9dmFyIFdndD17dGVtcGxhdGl6ZShlLHQpe3RoaXMuX3RlbXBsYXRpemVyVGVtcGxhdGU9ZSx0aGlzLmN0b3I9dGMoZSx0aGlzLHttdXRhYmxlRGF0YTpCb29sZWFuKHQpLHBhcmVudE1vZGVsOnRoaXMuX3BhcmVudE1vZGVsLGluc3RhbmNlUHJvcHM6dGhpcy5faW5zdGFuY2VQcm9wcyxmb3J3YXJkSG9zdFByb3A6dGhpcy5fZm9yd2FyZEhvc3RQcm9wVjIsbm90aWZ5SW5zdGFuY2VQcm9wOnRoaXMuX25vdGlmeUluc3RhbmNlUHJvcFYyfSl9LHN0YW1wKGUpe3JldHVybiBuZXcgdGhpcy5jdG9yKGUpfSxtb2RlbEZvckVsZW1lbnQoZSl7cmV0dXJuIHA5KHRoaXMuX3RlbXBsYXRpemVyVGVtcGxhdGUsZSl9fTt2YXIgWWd0PSExO2Z1bmN0aW9uIFd4KCl7aWYoZHAmJiF1Xyl7aWYoIVlndCl7WWd0PSEwO2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7ZS50ZXh0Q29udGVudD0iZG9tLWJpbmQsZG9tLWlmLGRvbS1yZXBlYXR7ZGlzcGxheTpub25lO30iLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoZSl9cmV0dXJuITB9cmV0dXJuITF9dmFyIGZiZT12aChmOShoXyhIVE1MRWxlbWVudCkpKSxvVz1jbGFzcyBleHRlbmRzIGZiZXtzdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3JldHVyblsibXV0YWJsZS1kYXRhIl19Y29uc3RydWN0b3IoKXtpZihzdXBlcigpLGl1KXRocm93IG5ldyBFcnJvcigic3RyaWN0VGVtcGxhdGVQb2xpY3k6IGRvbS1iaW5kIG5vdCBhbGxvd2VkIik7dGhpcy5yb290PW51bGwsdGhpcy4kPW51bGwsdGhpcy5fX2NoaWxkcmVuPW51bGx9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQscixuLGkpe3RoaXMubXV0YWJsZURhdGE9ITB9Y29ubmVjdGVkQ2FsbGJhY2soKXtXeCgpfHwodGhpcy5zdHlsZS5kaXNwbGF5PSJub25lIiksdGhpcy5yZW5kZXIoKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuX19yZW1vdmVDaGlsZHJlbigpfV9faW5zZXJ0Q2hpbGRyZW4oKXt1ZSh1ZSh0aGlzKS5wYXJlbnROb2RlKS5pbnNlcnRCZWZvcmUodGhpcy5yb290LHRoaXMpfV9fcmVtb3ZlQ2hpbGRyZW4oKXtpZih0aGlzLl9fY2hpbGRyZW4pZm9yKGxldCB0PTA7dDx0aGlzLl9fY2hpbGRyZW4ubGVuZ3RoO3QrKyl0aGlzLnJvb3QuYXBwZW5kQ2hpbGQodGhpcy5fX2NoaWxkcmVuW3RdKX1yZW5kZXIoKXtsZXQgdDtpZighdGhpcy5fX2NoaWxkcmVuKXtpZih0PXR8fHRoaXMucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKSwhdCl7bGV0IHI9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCk9PntpZih0PXRoaXMucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKSx0KXIuZGlzY29ubmVjdCgpLHRoaXMucmVuZGVyKCk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoImRvbS1iaW5kIHJlcXVpcmVzIGEgPHRlbXBsYXRlPiBjaGlsZCIpfSk7ci5vYnNlcnZlKHRoaXMse2NoaWxkTGlzdDohMH0pO3JldHVybn10aGlzLnJvb3Q9dGhpcy5fc3RhbXBUZW1wbGF0ZSh0KSx0aGlzLiQ9dGhpcy5yb290LiQsdGhpcy5fX2NoaWxkcmVuPVtdO2ZvcihsZXQgcj10aGlzLnJvb3QuZmlyc3RDaGlsZDtyO3I9ci5uZXh0U2libGluZyl0aGlzLl9fY2hpbGRyZW5bdGhpcy5fX2NoaWxkcmVuLmxlbmd0aF09cjt0aGlzLl9lbmFibGVQcm9wZXJ0aWVzKCl9dGhpcy5fX2luc2VydENoaWxkcmVuKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZG9tLWNoYW5nZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fTtjdXN0b21FbGVtZW50cy5kZWZpbmUoImRvbS1iaW5kIixvVyk7dmFyIHBiZT1mOShtdCksZDk9Y2xhc3MgZXh0ZW5kcyBwYmV7c3RhdGljIGdldCBpcygpe3JldHVybiJkb20tcmVwZWF0In1zdGF0aWMgZ2V0IHRlbXBsYXRlKCl7cmV0dXJuIG51bGx9c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2l0ZW1zOnt0eXBlOkFycmF5fSxhczp7dHlwZTpTdHJpbmcsdmFsdWU6Iml0ZW0ifSxpbmRleEFzOnt0eXBlOlN0cmluZyx2YWx1ZToiaW5kZXgifSxpdGVtc0luZGV4QXM6e3R5cGU6U3RyaW5nLHZhbHVlOiJpdGVtc0luZGV4In0sc29ydDp7dHlwZTpGdW5jdGlvbixvYnNlcnZlcjoiX19zb3J0Q2hhbmdlZCJ9LGZpbHRlcjp7dHlwZTpGdW5jdGlvbixvYnNlcnZlcjoiX19maWx0ZXJDaGFuZ2VkIn0sb2JzZXJ2ZTp7dHlwZTpTdHJpbmcsb2JzZXJ2ZXI6Il9fb2JzZXJ2ZUNoYW5nZWQifSxkZWxheTpOdW1iZXIscmVuZGVyZWRJdGVtQ291bnQ6e3R5cGU6TnVtYmVyLG5vdGlmeTohVU0scmVhZE9ubHk6ITB9LGluaXRpYWxDb3VudDp7dHlwZTpOdW1iZXJ9LHRhcmdldEZyYW1lcmF0ZTp7dHlwZTpOdW1iZXIsdmFsdWU6MjB9LF90YXJnZXRGcmFtZVRpbWU6e3R5cGU6TnVtYmVyLGNvbXB1dGVkOiJfX2NvbXB1dGVGcmFtZVRpbWUodGFyZ2V0RnJhbWVyYXRlKSJ9LG5vdGlmeURvbUNoYW5nZTp7dHlwZTpCb29sZWFufSxyZXVzZUNodW5rZWRJbnN0YW5jZXM6e3R5cGU6Qm9vbGVhbn19fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfX2l0ZW1zQ2hhbmdlZChpdGVtcy4qKSJdfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9faW5zdGFuY2VzPVtdLHRoaXMuX19yZW5kZXJEZWJvdW5jZXI9bnVsbCx0aGlzLl9faXRlbXNJZHhUb0luc3RJZHg9e30sdGhpcy5fX2NodW5rQ291bnQ9bnVsbCx0aGlzLl9fcmVuZGVyU3RhcnRUaW1lPW51bGwsdGhpcy5fX2l0ZW1zQXJyYXlDaGFuZ2VkPSExLHRoaXMuX19zaG91bGRNZWFzdXJlQ2h1bms9ITEsdGhpcy5fX3Nob3VsZENvbnRpbnVlQ2h1bmtpbmc9ITEsdGhpcy5fX2NodW5raW5nSWQ9MCx0aGlzLl9fc29ydEZuPW51bGwsdGhpcy5fX2ZpbHRlckZuPW51bGwsdGhpcy5fX29ic2VydmVQYXRocz1udWxsLHRoaXMuX19jdG9yPW51bGwsdGhpcy5fX2lzRGV0YWNoZWQ9ITAsdGhpcy50ZW1wbGF0ZT1udWxsLHRoaXMuX3RlbXBsYXRlSW5mb31kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fX2lzRGV0YWNoZWQ9ITA7Zm9yKGxldCB0PTA7dDx0aGlzLl9faW5zdGFuY2VzLmxlbmd0aDt0KyspdGhpcy5fX2RldGFjaEluc3RhbmNlKHQpfWNvbm5lY3RlZENhbGxiYWNrKCl7aWYoc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxXeCgpfHwodGhpcy5zdHlsZS5kaXNwbGF5PSJub25lIiksdGhpcy5fX2lzRGV0YWNoZWQpe3RoaXMuX19pc0RldGFjaGVkPSExO2xldCB0PXVlKHVlKHRoaXMpLnBhcmVudE5vZGUpO2ZvcihsZXQgcj0wO3I8dGhpcy5fX2luc3RhbmNlcy5sZW5ndGg7cisrKXRoaXMuX19hdHRhY2hJbnN0YW5jZShyLHQpfX1fX2Vuc3VyZVRlbXBsYXRpemVkKCl7aWYoIXRoaXMuX19jdG9yKXtsZXQgdD10aGlzLHI9dGhpcy50ZW1wbGF0ZT10Ll90ZW1wbGF0ZUluZm8/dDp0aGlzLnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIik7aWYoIXIpe2xldCBpPW5ldyBNdXRhdGlvbk9ic2VydmVyKCgpPT57aWYodGhpcy5xdWVyeVNlbGVjdG9yKCJ0ZW1wbGF0ZSIpKWkuZGlzY29ubmVjdCgpLHRoaXMuX19yZW5kZXIoKTtlbHNlIHRocm93IG5ldyBFcnJvcigiZG9tLXJlcGVhdCByZXF1aXJlcyBhIDx0ZW1wbGF0ZT4gY2hpbGQiKX0pO3JldHVybiBpLm9ic2VydmUodGhpcyx7Y2hpbGRMaXN0OiEwfSksITF9bGV0IG49e307blt0aGlzLmFzXT0hMCxuW3RoaXMuaW5kZXhBc109ITAsblt0aGlzLml0ZW1zSW5kZXhBc109ITAsdGhpcy5fX2N0b3I9dGMocix0aGlzLHttdXRhYmxlRGF0YTp0aGlzLm11dGFibGVEYXRhLHBhcmVudE1vZGVsOiEwLGluc3RhbmNlUHJvcHM6bixmb3J3YXJkSG9zdFByb3A6ZnVuY3Rpb24oaSxvKXtsZXQgYT10aGlzLl9faW5zdGFuY2VzO2ZvcihsZXQgcz0wLGw7czxhLmxlbmd0aCYmKGw9YVtzXSk7cysrKWwuZm9yd2FyZEhvc3RQcm9wKGksbyl9LG5vdGlmeUluc3RhbmNlUHJvcDpmdW5jdGlvbihpLG8sYSl7aWYoT0kodGhpcy5hcyxvKSl7bGV0IHM9aVt0aGlzLml0ZW1zSW5kZXhBc107bz09dGhpcy5hcyYmKHRoaXMuaXRlbXNbc109YSk7bGV0IGw9bXAodGhpcy5hcyxgJHtKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJpdGVtcyIsdGhpcyl9LiR7c31gLG8pO3RoaXMubm90aWZ5UGF0aChsLGEpfX19KX1yZXR1cm4hMH1fX2dldE1ldGhvZEhvc3QoKXtyZXR1cm4gdGhpcy5fX2RhdGFIb3N0Ll9tZXRob2RIb3N0fHx0aGlzLl9fZGF0YUhvc3R9X19mdW5jdGlvbkZyb21Qcm9wZXJ0eVZhbHVlKHQpe2lmKHR5cGVvZiB0PT0ic3RyaW5nIil7bGV0IHI9dCxuPXRoaXMuX19nZXRNZXRob2RIb3N0KCk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5bcl0uYXBwbHkobixhcmd1bWVudHMpfX1yZXR1cm4gdH1fX3NvcnRDaGFuZ2VkKHQpe3RoaXMuX19zb3J0Rm49dGhpcy5fX2Z1bmN0aW9uRnJvbVByb3BlcnR5VmFsdWUodCksdGhpcy5pdGVtcyYmdGhpcy5fX2RlYm91bmNlUmVuZGVyKHRoaXMuX19yZW5kZXIpfV9fZmlsdGVyQ2hhbmdlZCh0KXt0aGlzLl9fZmlsdGVyRm49dGhpcy5fX2Z1bmN0aW9uRnJvbVByb3BlcnR5VmFsdWUodCksdGhpcy5pdGVtcyYmdGhpcy5fX2RlYm91bmNlUmVuZGVyKHRoaXMuX19yZW5kZXIpfV9fY29tcHV0ZUZyYW1lVGltZSh0KXtyZXR1cm4gTWF0aC5jZWlsKDFlMy90KX1fX29ic2VydmVDaGFuZ2VkKCl7dGhpcy5fX29ic2VydmVQYXRocz10aGlzLm9ic2VydmUmJnRoaXMub2JzZXJ2ZS5yZXBsYWNlKCIuKiIsIi4iKS5zcGxpdCgiICIpfV9faGFuZGxlT2JzZXJ2ZWRQYXRocyh0KXtpZih0aGlzLl9fc29ydEZufHx0aGlzLl9fZmlsdGVyRm4pe2lmKCF0KXRoaXMuX19kZWJvdW5jZVJlbmRlcih0aGlzLl9fcmVuZGVyLHRoaXMuZGVsYXkpO2Vsc2UgaWYodGhpcy5fX29ic2VydmVQYXRocyl7bGV0IHI9dGhpcy5fX29ic2VydmVQYXRocztmb3IobGV0IG49MDtuPHIubGVuZ3RoO24rKyl0LmluZGV4T2YocltuXSk9PT0wJiZ0aGlzLl9fZGVib3VuY2VSZW5kZXIodGhpcy5fX3JlbmRlcix0aGlzLmRlbGF5KX19fV9faXRlbXNDaGFuZ2VkKHQpe3RoaXMuaXRlbXMmJiFBcnJheS5pc0FycmF5KHRoaXMuaXRlbXMpJiZjb25zb2xlLndhcm4oImRvbS1yZXBlYXQgZXhwZWN0ZWQgYXJyYXkgZm9yIGBpdGVtc2AsIGZvdW5kIix0aGlzLml0ZW1zKSx0aGlzLl9faGFuZGxlSXRlbVBhdGgodC5wYXRoLHQudmFsdWUpfHwodC5wYXRoPT09Iml0ZW1zIiYmKHRoaXMuX19pdGVtc0FycmF5Q2hhbmdlZD0hMCksdGhpcy5fX2RlYm91bmNlUmVuZGVyKHRoaXMuX19yZW5kZXIpKX1fX2RlYm91bmNlUmVuZGVyKHQscj0wKXt0aGlzLl9fcmVuZGVyRGVib3VuY2VyPXNyLmRlYm91bmNlKHRoaXMuX19yZW5kZXJEZWJvdW5jZXIscj4wP21vLmFmdGVyKHIpOmxpLHQuYmluZCh0aGlzKSksSmwodGhpcy5fX3JlbmRlckRlYm91bmNlcil9cmVuZGVyKCl7dGhpcy5fX2RlYm91bmNlUmVuZGVyKHRoaXMuX19yZW5kZXIpLGNpKCl9X19yZW5kZXIoKXtpZighdGhpcy5fX2Vuc3VyZVRlbXBsYXRpemVkKCkpcmV0dXJuO2xldCB0PXRoaXMuaXRlbXN8fFtdLHI9dGhpcy5fX3NvcnRBbmRGaWx0ZXJJdGVtcyh0KSxuPXRoaXMuX19jYWxjdWxhdGVMaW1pdChyLmxlbmd0aCk7dGhpcy5fX3VwZGF0ZUluc3RhbmNlcyh0LG4sciksdGhpcy5pbml0aWFsQ291bnQmJih0aGlzLl9fc2hvdWxkTWVhc3VyZUNodW5rfHx0aGlzLl9fc2hvdWxkQ29udGludWVDaHVua2luZykmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9fY2h1bmtpbmdJZCksdGhpcy5fX2NodW5raW5nSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT50aGlzLl9fY29udGludWVDaHVua2luZygpKSksdGhpcy5fc2V0UmVuZGVyZWRJdGVtQ291bnQodGhpcy5fX2luc3RhbmNlcy5sZW5ndGgpLCghVU18fHRoaXMubm90aWZ5RG9tQ2hhbmdlKSYmdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZG9tLWNoYW5nZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9X19zb3J0QW5kRmlsdGVySXRlbXModCl7bGV0IHI9bmV3IEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKylyW25dPW47cmV0dXJuIHRoaXMuX19maWx0ZXJGbiYmKHI9ci5maWx0ZXIoKG4saSxvKT0+dGhpcy5fX2ZpbHRlckZuKHRbbl0saSxvKSkpLHRoaXMuX19zb3J0Rm4mJnIuc29ydCgobixpKT0+dGhpcy5fX3NvcnRGbih0W25dLHRbaV0pKSxyfV9fY2FsY3VsYXRlTGltaXQodCl7bGV0IHI9dCxuPXRoaXMuX19pbnN0YW5jZXMubGVuZ3RoO2lmKHRoaXMuaW5pdGlhbENvdW50KXtsZXQgaTshdGhpcy5fX2NodW5rQ291bnR8fHRoaXMuX19pdGVtc0FycmF5Q2hhbmdlZCYmIXRoaXMucmV1c2VDaHVua2VkSW5zdGFuY2VzPyhyPU1hdGgubWluKHQsdGhpcy5pbml0aWFsQ291bnQpLGk9TWF0aC5tYXgoci1uLDApLHRoaXMuX19jaHVua0NvdW50PWl8fDEpOihpPU1hdGgubWluKE1hdGgubWF4KHQtbiwwKSx0aGlzLl9fY2h1bmtDb3VudCkscj1NYXRoLm1pbihuK2ksdCkpLHRoaXMuX19zaG91bGRNZWFzdXJlQ2h1bms9aT09PXRoaXMuX19jaHVua0NvdW50LHRoaXMuX19zaG91bGRDb250aW51ZUNodW5raW5nPXI8dCx0aGlzLl9fcmVuZGVyU3RhcnRUaW1lPXBlcmZvcm1hbmNlLm5vdygpfXJldHVybiB0aGlzLl9faXRlbXNBcnJheUNoYW5nZWQ9ITEscn1fX2NvbnRpbnVlQ2h1bmtpbmcoKXtpZih0aGlzLl9fc2hvdWxkTWVhc3VyZUNodW5rKXtsZXQgdD1wZXJmb3JtYW5jZS5ub3coKS10aGlzLl9fcmVuZGVyU3RhcnRUaW1lLHI9dGhpcy5fdGFyZ2V0RnJhbWVUaW1lL3Q7dGhpcy5fX2NodW5rQ291bnQ9TWF0aC5yb3VuZCh0aGlzLl9fY2h1bmtDb3VudCpyKXx8MX10aGlzLl9fc2hvdWxkQ29udGludWVDaHVua2luZyYmdGhpcy5fX2RlYm91bmNlUmVuZGVyKHRoaXMuX19yZW5kZXIpfV9fdXBkYXRlSW5zdGFuY2VzKHQscixuKXtsZXQgaT10aGlzLl9faXRlbXNJZHhUb0luc3RJZHg9e30sbztmb3Iobz0wO288cjtvKyspe2xldCBhPXRoaXMuX19pbnN0YW5jZXNbb10scz1uW29dLGw9dFtzXTtpW3NdPW8sYT8oYS5fc2V0UGVuZGluZ1Byb3BlcnR5KHRoaXMuYXMsbCksYS5fc2V0UGVuZGluZ1Byb3BlcnR5KHRoaXMuaW5kZXhBcyxvKSxhLl9zZXRQZW5kaW5nUHJvcGVydHkodGhpcy5pdGVtc0luZGV4QXMscyksYS5fZmx1c2hQcm9wZXJ0aWVzKCkpOnRoaXMuX19pbnNlcnRJbnN0YW5jZShsLG8scyl9Zm9yKGxldCBhPXRoaXMuX19pbnN0YW5jZXMubGVuZ3RoLTE7YT49bzthLS0pdGhpcy5fX2RldGFjaEFuZFJlbW92ZUluc3RhbmNlKGEpfV9fZGV0YWNoSW5zdGFuY2UodCl7bGV0IHI9dGhpcy5fX2luc3RhbmNlc1t0XSxuPXVlKHIucm9vdCk7Zm9yKGxldCBpPTA7aTxyLmNoaWxkcmVuLmxlbmd0aDtpKyspe2xldCBvPXIuY2hpbGRyZW5baV07bi5hcHBlbmRDaGlsZChvKX1yZXR1cm4gcn1fX2F0dGFjaEluc3RhbmNlKHQscil7bGV0IG49dGhpcy5fX2luc3RhbmNlc1t0XTtyLmluc2VydEJlZm9yZShuLnJvb3QsdGhpcyl9X19kZXRhY2hBbmRSZW1vdmVJbnN0YW5jZSh0KXt0aGlzLl9fZGV0YWNoSW5zdGFuY2UodCksdGhpcy5fX2luc3RhbmNlcy5zcGxpY2UodCwxKX1fX3N0YW1wSW5zdGFuY2UodCxyLG4pe2xldCBpPXt9O3JldHVybiBpW3RoaXMuYXNdPXQsaVt0aGlzLmluZGV4QXNdPXIsaVt0aGlzLml0ZW1zSW5kZXhBc109bixuZXcgdGhpcy5fX2N0b3IoaSl9X19pbnNlcnRJbnN0YW5jZSh0LHIsbil7bGV0IGk9dGhpcy5fX3N0YW1wSW5zdGFuY2UodCxyLG4pLG89dGhpcy5fX2luc3RhbmNlc1tyKzFdLGE9bz9vLmNoaWxkcmVuWzBdOnRoaXM7cmV0dXJuIHVlKHVlKHRoaXMpLnBhcmVudE5vZGUpLmluc2VydEJlZm9yZShpLnJvb3QsYSksdGhpcy5fX2luc3RhbmNlc1tyXT1pLGl9X3Nob3dIaWRlQ2hpbGRyZW4odCl7Zm9yKGxldCByPTA7cjx0aGlzLl9faW5zdGFuY2VzLmxlbmd0aDtyKyspdGhpcy5fX2luc3RhbmNlc1tyXS5fc2hvd0hpZGVDaGlsZHJlbih0KX1fX2hhbmRsZUl0ZW1QYXRoKHQscil7bGV0IG49dC5zbGljZSg2KSxpPW4uaW5kZXhPZigiLiIpLG89aTwwP246bi5zdWJzdHJpbmcoMCxpKTtpZihvPT1wYXJzZUludChvLDEwKSl7bGV0IGE9aTwwPyIiOm4uc3Vic3RyaW5nKGkrMSk7dGhpcy5fX2hhbmRsZU9ic2VydmVkUGF0aHMoYSk7bGV0IHM9dGhpcy5fX2l0ZW1zSWR4VG9JbnN0SWR4W29dLGw9dGhpcy5fX2luc3RhbmNlc1tzXTtpZihsKXtsZXQgYz10aGlzLmFzKyhhPyIuIithOiIiKTtsLl9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgoYyxyLCExLCEwKSxsLl9mbHVzaFByb3BlcnRpZXMoKX1yZXR1cm4hMH19aXRlbUZvckVsZW1lbnQodCl7bGV0IHI9dGhpcy5tb2RlbEZvckVsZW1lbnQodCk7cmV0dXJuIHImJnJbdGhpcy5hc119aW5kZXhGb3JFbGVtZW50KHQpe2xldCByPXRoaXMubW9kZWxGb3JFbGVtZW50KHQpO3JldHVybiByJiZyW3RoaXMuaW5kZXhBc119bW9kZWxGb3JFbGVtZW50KHQpe3JldHVybiBwOSh0aGlzLnRlbXBsYXRlLHQpfX07Y3VzdG9tRWxlbWVudHMuZGVmaW5lKGQ5LmlzLGQ5KTt2YXIgbTk9Y2xhc3MgZXh0ZW5kcyBtdHtzdGF0aWMgZ2V0IGlzKCl7cmV0dXJuImRvbS1pZiJ9c3RhdGljIGdldCB0ZW1wbGF0ZSgpe3JldHVybiBudWxsfXN0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntpZjp7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfX2RlYm91bmNlUmVuZGVyIn0scmVzdGFtcDp7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfX2RlYm91bmNlUmVuZGVyIn0sbm90aWZ5RG9tQ2hhbmdlOnt0eXBlOkJvb2xlYW59fX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fX3JlbmRlckRlYm91bmNlcj1udWxsLHRoaXMuX2xhc3RJZj0hMSx0aGlzLl9faGlkZVRlbXBsYXRlQ2hpbGRyZW5fXz0hMSx0aGlzLl9fdGVtcGxhdGUsdGhpcy5fdGVtcGxhdGVJbmZvfV9fZGVib3VuY2VSZW5kZXIoKXt0aGlzLl9fcmVuZGVyRGVib3VuY2VyPXNyLmRlYm91bmNlKHRoaXMuX19yZW5kZXJEZWJvdW5jZXIsbGksKCk9PnRoaXMuX19yZW5kZXIoKSksSmwodGhpcy5fX3JlbmRlckRlYm91bmNlcil9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO2xldCB0PXVlKHRoaXMpLnBhcmVudE5vZGU7KCF0fHx0Lm5vZGVUeXBlPT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUmJiF1ZSh0KS5ob3N0KSYmdGhpcy5fX3RlYXJkb3duSW5zdGFuY2UoKX1jb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksV3goKXx8KHRoaXMuc3R5bGUuZGlzcGxheT0ibm9uZSIpLHRoaXMuaWYmJnRoaXMuX19kZWJvdW5jZVJlbmRlcigpfV9fZW5zdXJlVGVtcGxhdGUoKXtpZighdGhpcy5fX3RlbXBsYXRlKXtsZXQgdD10aGlzLHI9dC5fdGVtcGxhdGVJbmZvP3Q6dWUodCkucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKTtpZighcil7bGV0IG49bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCk9PntpZih1ZSh0aGlzKS5xdWVyeVNlbGVjdG9yKCJ0ZW1wbGF0ZSIpKW4uZGlzY29ubmVjdCgpLHRoaXMuX19yZW5kZXIoKTtlbHNlIHRocm93IG5ldyBFcnJvcigiZG9tLWlmIHJlcXVpcmVzIGEgPHRlbXBsYXRlPiBjaGlsZCIpfSk7cmV0dXJuIG4ub2JzZXJ2ZSh0aGlzLHtjaGlsZExpc3Q6ITB9KSwhMX10aGlzLl9fdGVtcGxhdGU9cn1yZXR1cm4hMH1fX2Vuc3VyZUluc3RhbmNlKCl7bGV0IHQ9dWUodGhpcykucGFyZW50Tm9kZTtpZih0aGlzLl9faGFzSW5zdGFuY2UoKSl7bGV0IHI9dGhpcy5fX2dldEluc3RhbmNlTm9kZXMoKTtpZihyJiZyLmxlbmd0aCYmdWUodGhpcykucHJldmlvdXNTaWJsaW5nIT09cltyLmxlbmd0aC0xXSlmb3IobGV0IGk9MCxvO2k8ci5sZW5ndGgmJihvPXJbaV0pO2krKyl1ZSh0KS5pbnNlcnRCZWZvcmUobyx0aGlzKX1lbHNle2lmKCF0fHwhdGhpcy5fX2Vuc3VyZVRlbXBsYXRlKCkpcmV0dXJuITE7dGhpcy5fX2NyZWF0ZUFuZEluc2VydEluc3RhbmNlKHQpfXJldHVybiEwfXJlbmRlcigpe2NpKCl9X19yZW5kZXIoKXtpZih0aGlzLmlmKXtpZighdGhpcy5fX2Vuc3VyZUluc3RhbmNlKCkpcmV0dXJufWVsc2UgdGhpcy5yZXN0YW1wJiZ0aGlzLl9fdGVhcmRvd25JbnN0YW5jZSgpO3RoaXMuX3Nob3dIaWRlQ2hpbGRyZW4oKSwoIVVNfHx0aGlzLm5vdGlmeURvbUNoYW5nZSkmJnRoaXMuaWYhPXRoaXMuX2xhc3RJZiYmKHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRvbS1jaGFuZ2UiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuX2xhc3RJZj10aGlzLmlmKX1fX2hhc0luc3RhbmNlKCl7fV9fZ2V0SW5zdGFuY2VOb2Rlcygpe31fX2NyZWF0ZUFuZEluc2VydEluc3RhbmNlKHQpe31fX3RlYXJkb3duSW5zdGFuY2UoKXt9X3Nob3dIaWRlQ2hpbGRyZW4oKXt9fSxhVz1jbGFzcyBleHRlbmRzIG05e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9faW5zdGFuY2U9bnVsbCx0aGlzLl9fc3luY0luZm89bnVsbH1fX2hhc0luc3RhbmNlKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5fX2luc3RhbmNlKX1fX2dldEluc3RhbmNlTm9kZXMoKXtyZXR1cm4gdGhpcy5fX2luc3RhbmNlLnRlbXBsYXRlSW5mby5jaGlsZE5vZGVzfV9fY3JlYXRlQW5kSW5zZXJ0SW5zdGFuY2UodCl7bGV0IHI9dGhpcy5fX2RhdGFIb3N0fHx0aGlzO2lmKGl1JiYhdGhpcy5fX2RhdGFIb3N0KXRocm93IG5ldyBFcnJvcigic3RyaWN0VGVtcGxhdGVQb2xpY3k6IHRlbXBsYXRlIG93bmVyIG5vdCB0cnVzdGVkIik7bGV0IG49ci5fYmluZFRlbXBsYXRlKHRoaXMuX190ZW1wbGF0ZSwhMCk7bi5ydW5FZmZlY3RzPShpLG8sYSk9PntsZXQgcz10aGlzLl9fc3luY0luZm87aWYodGhpcy5pZilzJiYodGhpcy5fX3N5bmNJbmZvPW51bGwsdGhpcy5fc2hvd0hpZGVDaGlsZHJlbigpLG89T2JqZWN0LmFzc2lnbihzLmNoYW5nZWRQcm9wcyxvKSksaShvLGEpO2Vsc2UgaWYodGhpcy5fX2luc3RhbmNlKWlmKHN8fChzPXRoaXMuX19zeW5jSW5mbz17cnVuRWZmZWN0czppLGNoYW5nZWRQcm9wczp7fX0pLGEpZm9yKGxldCBsIGluIG8pe2xldCBjPWF1KGwpO3MuY2hhbmdlZFByb3BzW2NdPXRoaXMuX19kYXRhSG9zdFtjXX1lbHNlIE9iamVjdC5hc3NpZ24ocy5jaGFuZ2VkUHJvcHMsbyl9LHRoaXMuX19pbnN0YW5jZT1yLl9zdGFtcFRlbXBsYXRlKHRoaXMuX190ZW1wbGF0ZSxuKSx1ZSh0KS5pbnNlcnRCZWZvcmUodGhpcy5fX2luc3RhbmNlLHRoaXMpfV9fc3luY0hvc3RQcm9wZXJ0aWVzKCl7bGV0IHQ9dGhpcy5fX3N5bmNJbmZvO3QmJih0aGlzLl9fc3luY0luZm89bnVsbCx0LnJ1bkVmZmVjdHModC5jaGFuZ2VkUHJvcHMsITEpKX1fX3RlYXJkb3duSW5zdGFuY2UoKXtsZXQgdD10aGlzLl9fZGF0YUhvc3R8fHRoaXM7dGhpcy5fX2luc3RhbmNlJiYodC5fcmVtb3ZlQm91bmREb20odGhpcy5fX2luc3RhbmNlKSx0aGlzLl9faW5zdGFuY2U9bnVsbCx0aGlzLl9fc3luY0luZm89bnVsbCl9X3Nob3dIaWRlQ2hpbGRyZW4oKXtsZXQgdD10aGlzLl9faGlkZVRlbXBsYXRlQ2hpbGRyZW5fX3x8IXRoaXMuaWY7dGhpcy5fX2luc3RhbmNlJiZCb29sZWFuKHRoaXMuX19pbnN0YW5jZS5fX2hpZGRlbikhPT10JiYodGhpcy5fX2luc3RhbmNlLl9faGlkZGVuPXQsaVcodCx0aGlzLl9faW5zdGFuY2UudGVtcGxhdGVJbmZvLmNoaWxkTm9kZXMpKSx0fHx0aGlzLl9fc3luY0hvc3RQcm9wZXJ0aWVzKCl9fSxzVz1jbGFzcyBleHRlbmRzIG05e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9fY3Rvcj1udWxsLHRoaXMuX19pbnN0YW5jZT1udWxsLHRoaXMuX19pbnZhbGlkUHJvcHM9bnVsbH1fX2hhc0luc3RhbmNlKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5fX2luc3RhbmNlKX1fX2dldEluc3RhbmNlTm9kZXMoKXtyZXR1cm4gdGhpcy5fX2luc3RhbmNlLmNoaWxkcmVufV9fY3JlYXRlQW5kSW5zZXJ0SW5zdGFuY2UodCl7dGhpcy5fX2N0b3J8fCh0aGlzLl9fY3Rvcj10Yyh0aGlzLl9fdGVtcGxhdGUsdGhpcyx7bXV0YWJsZURhdGE6ITAsZm9yd2FyZEhvc3RQcm9wOmZ1bmN0aW9uKHIsbil7dGhpcy5fX2luc3RhbmNlJiYodGhpcy5pZj90aGlzLl9faW5zdGFuY2UuZm9yd2FyZEhvc3RQcm9wKHIsbik6KHRoaXMuX19pbnZhbGlkUHJvcHM9dGhpcy5fX2ludmFsaWRQcm9wc3x8T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9faW52YWxpZFByb3BzW2F1KHIpXT0hMCkpfX0pKSx0aGlzLl9faW5zdGFuY2U9bmV3IHRoaXMuX19jdG9yLHVlKHQpLmluc2VydEJlZm9yZSh0aGlzLl9faW5zdGFuY2Uucm9vdCx0aGlzKX1fX3RlYXJkb3duSW5zdGFuY2UoKXtpZih0aGlzLl9faW5zdGFuY2Upe2xldCB0PXRoaXMuX19pbnN0YW5jZS5jaGlsZHJlbjtpZih0JiZ0Lmxlbmd0aCl7bGV0IHI9dWUodFswXSkucGFyZW50Tm9kZTtpZihyKXtyPXVlKHIpO2ZvcihsZXQgbj0wLGk7bjx0Lmxlbmd0aCYmKGk9dFtuXSk7bisrKXIucmVtb3ZlQ2hpbGQoaSl9fXRoaXMuX19pbnZhbGlkUHJvcHM9bnVsbCx0aGlzLl9faW5zdGFuY2U9bnVsbH19X19zeW5jSG9zdFByb3BlcnRpZXMoKXtsZXQgdD10aGlzLl9faW52YWxpZFByb3BzO2lmKHQpe3RoaXMuX19pbnZhbGlkUHJvcHM9bnVsbDtmb3IobGV0IHIgaW4gdCl0aGlzLl9faW5zdGFuY2UuX3NldFBlbmRpbmdQcm9wZXJ0eShyLHRoaXMuX19kYXRhSG9zdFtyXSk7dGhpcy5fX2luc3RhbmNlLl9mbHVzaFByb3BlcnRpZXMoKX19X3Nob3dIaWRlQ2hpbGRyZW4oKXtsZXQgdD10aGlzLl9faGlkZVRlbXBsYXRlQ2hpbGRyZW5fX3x8IXRoaXMuaWY7dGhpcy5fX2luc3RhbmNlJiZCb29sZWFuKHRoaXMuX19pbnN0YW5jZS5fX2hpZGRlbikhPT10JiYodGhpcy5fX2luc3RhbmNlLl9faGlkZGVuPXQsdGhpcy5fX2luc3RhbmNlLl9zaG93SGlkZUNoaWxkcmVuKHQpKSx0fHx0aGlzLl9fc3luY0hvc3RQcm9wZXJ0aWVzKCl9fSxqZ3Q9Ukk/YVc6c1c7Y3VzdG9tRWxlbWVudHMuZGVmaW5lKGpndC5pcyxqZ3QpO3ZhciBkYmU9Tm4oZT0+e2xldCB0PU1tKGUpO2NsYXNzIHIgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntpdGVtczp7dHlwZTpBcnJheX0sbXVsdGk6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sc2VsZWN0ZWQ6e3R5cGU6T2JqZWN0LG5vdGlmeTohMH0sc2VsZWN0ZWRJdGVtOnt0eXBlOk9iamVjdCxub3RpZnk6ITB9LHRvZ2dsZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9fdXBkYXRlU2VsZWN0aW9uKG11bHRpLCBpdGVtcy4qKSJdfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9fbGFzdEl0ZW1zPW51bGwsdGhpcy5fX2xhc3RNdWx0aT1udWxsLHRoaXMuX19zZWxlY3RlZE1hcD1udWxsfV9fdXBkYXRlU2VsZWN0aW9uKGksbyl7bGV0IGE9by5wYXRoO2lmKGE9PUpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIml0ZW1zIix0aGlzKSl7bGV0IHM9by5iYXNlfHxbXSxsPXRoaXMuX19sYXN0SXRlbXMsYz10aGlzLl9fbGFzdE11bHRpO2lmKGkhPT1jJiZ0aGlzLmNsZWFyU2VsZWN0aW9uKCksbCl7bGV0IHU9bzkocyxsKTt0aGlzLl9fYXBwbHlTcGxpY2VzKHUpfXRoaXMuX19sYXN0SXRlbXM9cyx0aGlzLl9fbGFzdE11bHRpPWl9ZWxzZSBpZihvLnBhdGg9PWAke0pTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIml0ZW1zIix0aGlzKX0uc3BsaWNlc2ApdGhpcy5fX2FwcGx5U3BsaWNlcyhvLnZhbHVlLmluZGV4U3BsaWNlcyk7ZWxzZXtsZXQgcz1hLnNsaWNlKGAke0pTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIml0ZW1zIix0aGlzKX0uYC5sZW5ndGgpLGw9cGFyc2VJbnQocywxMCk7cy5pbmRleE9mKCIuIik8MCYmcz09bCYmdGhpcy5fX2Rlc2VsZWN0Q2hhbmdlZElkeChsKX19X19hcHBseVNwbGljZXMoaSl7bGV0IG89dGhpcy5fX3NlbGVjdGVkTWFwO2ZvcihsZXQgcz0wO3M8aS5sZW5ndGg7cysrKXtsZXQgbD1pW3NdO28uZm9yRWFjaCgoYyx1KT0+e2M8bC5pbmRleHx8KGM+PWwuaW5kZXgrbC5yZW1vdmVkLmxlbmd0aD9vLnNldCh1LGMrbC5hZGRlZENvdW50LWwucmVtb3ZlZC5sZW5ndGgpOm8uc2V0KHUsLTEpKX0pO2ZvcihsZXQgYz0wO2M8bC5hZGRlZENvdW50O2MrKyl7bGV0IHU9bC5pbmRleCtjO28uaGFzKHRoaXMuaXRlbXNbdV0pJiZvLnNldCh0aGlzLml0ZW1zW3VdLHUpfX10aGlzLl9fdXBkYXRlTGlua3MoKTtsZXQgYT0wO28uZm9yRWFjaCgocyxsKT0+e3M8MD8odGhpcy5tdWx0aT90aGlzLnNwbGljZShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJzZWxlY3RlZCIsdGhpcyksYSwxKTp0aGlzLnNlbGVjdGVkPXRoaXMuc2VsZWN0ZWRJdGVtPW51bGwsby5kZWxldGUobCkpOmErK30pfV9fdXBkYXRlTGlua3MoKXtpZih0aGlzLl9fZGF0YUxpbmtlZFBhdGhzPXt9LHRoaXMubXVsdGkpe2xldCBpPTA7dGhpcy5fX3NlbGVjdGVkTWFwLmZvckVhY2gobz0+e28+PTAmJnRoaXMubGlua1BhdGhzKGAke0pTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIml0ZW1zIix0aGlzKX0uJHtvfWAsYCR7SlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgic2VsZWN0ZWQiLHRoaXMpfS4ke2krK31gKX0pfWVsc2UgdGhpcy5fX3NlbGVjdGVkTWFwLmZvckVhY2goaT0+e3RoaXMubGlua1BhdGhzKEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoInNlbGVjdGVkIix0aGlzKSxgJHtKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJpdGVtcyIsdGhpcyl9LiR7aX1gKSx0aGlzLmxpbmtQYXRocyhKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJzZWxlY3RlZEl0ZW0iLHRoaXMpLGAke0pTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIml0ZW1zIix0aGlzKX0uJHtpfWApfSl9Y2xlYXJTZWxlY3Rpb24oKXt0aGlzLl9fZGF0YUxpbmtlZFBhdGhzPXt9LHRoaXMuX19zZWxlY3RlZE1hcD1uZXcgTWFwLHRoaXMuc2VsZWN0ZWQ9dGhpcy5tdWx0aT9bXTpudWxsLHRoaXMuc2VsZWN0ZWRJdGVtPW51bGx9aXNTZWxlY3RlZChpKXtyZXR1cm4gdGhpcy5fX3NlbGVjdGVkTWFwLmhhcyhpKX1pc0luZGV4U2VsZWN0ZWQoaSl7cmV0dXJuIHRoaXMuaXNTZWxlY3RlZCh0aGlzLml0ZW1zW2ldKX1fX2Rlc2VsZWN0Q2hhbmdlZElkeChpKXtsZXQgbz10aGlzLl9fc2VsZWN0ZWRJbmRleEZvckl0ZW1JbmRleChpKTtpZihvPj0wKXtsZXQgYT0wO3RoaXMuX19zZWxlY3RlZE1hcC5mb3JFYWNoKChzLGwpPT57bz09YSsrJiZ0aGlzLmRlc2VsZWN0KGwpfSl9fV9fc2VsZWN0ZWRJbmRleEZvckl0ZW1JbmRleChpKXtsZXQgbz10aGlzLl9fZGF0YUxpbmtlZFBhdGhzW2Ake0pTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIml0ZW1zIix0aGlzKX0uJHtpfWBdO2lmKG8pcmV0dXJuIHBhcnNlSW50KG8uc2xpY2UoYCR7SlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgic2VsZWN0ZWQiLHRoaXMpfS5gLmxlbmd0aCksMTApfWRlc2VsZWN0KGkpe2xldCBvPXRoaXMuX19zZWxlY3RlZE1hcC5nZXQoaSk7aWYobz49MCl7dGhpcy5fX3NlbGVjdGVkTWFwLmRlbGV0ZShpKTtsZXQgYTt0aGlzLm11bHRpJiYoYT10aGlzLl9fc2VsZWN0ZWRJbmRleEZvckl0ZW1JbmRleChvKSksdGhpcy5fX3VwZGF0ZUxpbmtzKCksdGhpcy5tdWx0aT90aGlzLnNwbGljZShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJzZWxlY3RlZCIsdGhpcyksYSwxKTp0aGlzLnNlbGVjdGVkPXRoaXMuc2VsZWN0ZWRJdGVtPW51bGx9fWRlc2VsZWN0SW5kZXgoaSl7dGhpcy5kZXNlbGVjdCh0aGlzLml0ZW1zW2ldKX1zZWxlY3QoaSl7dGhpcy5zZWxlY3RJbmRleCh0aGlzLml0ZW1zLmluZGV4T2YoaSkpfXNlbGVjdEluZGV4KGkpe2xldCBvPXRoaXMuaXRlbXNbaV07dGhpcy5pc1NlbGVjdGVkKG8pP3RoaXMudG9nZ2xlJiZ0aGlzLmRlc2VsZWN0SW5kZXgoaSk6KHRoaXMubXVsdGl8fHRoaXMuX19zZWxlY3RlZE1hcC5jbGVhcigpLHRoaXMuX19zZWxlY3RlZE1hcC5zZXQobyxpKSx0aGlzLl9fdXBkYXRlTGlua3MoKSx0aGlzLm11bHRpP3RoaXMucHVzaChKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJzZWxlY3RlZCIsdGhpcyksbyk6dGhpcy5zZWxlY3RlZD10aGlzLnNlbGVjdGVkSXRlbT1vKX19cmV0dXJuIHJ9KTt2YXIgbWJlPWRiZShtdCksZzk9Y2xhc3MgZXh0ZW5kcyBtYmV7c3RhdGljIGdldCBpcygpe3JldHVybiJhcnJheS1zZWxlY3RvciJ9c3RhdGljIGdldCB0ZW1wbGF0ZSgpe3JldHVybiBudWxsfX07Y3VzdG9tRWxlbWVudHMuZGVmaW5lKGc5LmlzLGc5KTt2YXIgXzk9bmV3IFpsO3dpbmRvdy5TaGFkeUNTU3x8KHdpbmRvdy5TaGFkeUNTUz17cHJlcGFyZVRlbXBsYXRlKGUsdCxyKXt9LHByZXBhcmVUZW1wbGF0ZURvbShlLHQpe30scHJlcGFyZVRlbXBsYXRlU3R5bGVzKGUsdCxyKXt9LHN0eWxlU3VidHJlZShlLHQpe185LnByb2Nlc3NTdHlsZXMoKSxKTShlLHQpfSxzdHlsZUVsZW1lbnQoZSl7XzkucHJvY2Vzc1N0eWxlcygpfSxzdHlsZURvY3VtZW50KGUpe185LnByb2Nlc3NTdHlsZXMoKSxKTShkb2N1bWVudC5ib2R5LGUpfSxnZXRDb21wdXRlZFN0eWxlVmFsdWUoZSx0KXtyZXR1cm4gakkoZSx0KX0sZmx1c2hDdXN0b21TdHlsZXMoKXt9LG5hdGl2ZUNzczpOeCxuYXRpdmVTaGFkb3c6Zl8sY3NzQnVpbGQ6RW0sZGlzYWJsZVJ1bnRpbWU6V0l9KTt3aW5kb3cuU2hhZHlDU1MuQ3VzdG9tU3R5bGVJbnRlcmZhY2U9Xzk7dmFyIFhndD0iaW5jbHVkZSIsZ2JlPXdpbmRvdy5TaGFkeUNTUy5DdXN0b21TdHlsZUludGVyZmFjZSxsVz1jbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9zdHlsZT1udWxsLGdiZS5hZGRDdXN0b21TdHlsZSh0aGlzKX1nZXRTdHlsZSgpe2lmKHRoaXMuX3N0eWxlKXJldHVybiB0aGlzLl9zdHlsZTtsZXQgdD10aGlzLnF1ZXJ5U2VsZWN0b3IoInN0eWxlIik7aWYoIXQpcmV0dXJuIG51bGw7dGhpcy5fc3R5bGU9dDtsZXQgcj10LmdldEF0dHJpYnV0ZShYZ3QpO3JldHVybiByJiYodC5yZW1vdmVBdHRyaWJ1dGUoWGd0KSx0LnRleHRDb250ZW50PWltdChyKSt0LnRleHRDb250ZW50KSx0aGlzLm93bmVyRG9jdW1lbnQhPT13aW5kb3cuZG9jdW1lbnQmJndpbmRvdy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRoaXMpLHRoaXMuX3N0eWxlfX07d2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgiY3VzdG9tLXN0eWxlIixsVyk7dmFyICRndDskZ3Q9R3guX211dGFibGVQcm9wZXJ0eUNoYW5nZTt2YXIgS2d0PXtwcm9wZXJ0aWVzOnttdXRhYmxlRGF0YTpCb29sZWFufSxfc2hvdWxkUHJvcGVydHlDaGFuZ2UoZSx0LHIpe3JldHVybiAkZ3QodGhpcyxlLHQscix0aGlzLm11dGFibGVEYXRhKX19O3ZhciBPYT1HdChIVE1MRWxlbWVudCkucHJvdG90eXBlO3ZhciB5OT1uZXcgU2V0LFFzPXtwcm9wZXJ0aWVzOntfcGFyZW50UmVzaXphYmxlOnt0eXBlOk9iamVjdCxvYnNlcnZlcjoiX3BhcmVudFJlc2l6YWJsZUNoYW5nZWQifSxfbm90aWZ5aW5nRGVzY2VuZGFudDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfX0sbGlzdGVuZXJzOnsiaXJvbi1yZXF1ZXN0LXJlc2l6ZS1ub3RpZmljYXRpb25zIjoiX29uSXJvblJlcXVlc3RSZXNpemVOb3RpZmljYXRpb25zIn0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX2ludGVyZXN0ZWRSZXNpemFibGVzPVtdLHRoaXMuX2JvdW5kTm90aWZ5UmVzaXplPXRoaXMubm90aWZ5UmVzaXplLmJpbmQodGhpcyksdGhpcy5fYm91bmRPbkRlc2NlbmRhbnRJcm9uUmVzaXplPXRoaXMuX29uRGVzY2VuZGFudElyb25SZXNpemUuYmluZCh0aGlzKX0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl9yZXF1ZXN0UmVzaXplTm90aWZpY2F0aW9ucygpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX3BhcmVudFJlc2l6YWJsZT90aGlzLl9wYXJlbnRSZXNpemFibGUuc3RvcFJlc2l6ZU5vdGlmaWNhdGlvbnNGb3IodGhpcyk6KHk5LmRlbGV0ZSh0aGlzKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9ib3VuZE5vdGlmeVJlc2l6ZSkpLHRoaXMuX3BhcmVudFJlc2l6YWJsZT1udWxsfSxub3RpZnlSZXNpemU6ZnVuY3Rpb24oKXshdGhpcy5pc0F0dGFjaGVkfHwodGhpcy5faW50ZXJlc3RlZFJlc2l6YWJsZXMuZm9yRWFjaChmdW5jdGlvbihlKXt0aGlzLnJlc2l6ZXJTaG91bGROb3RpZnkoZSkmJnRoaXMuX25vdGlmeURlc2NlbmRhbnQoZSl9LHRoaXMpLHRoaXMuX2ZpcmVSZXNpemUoKSl9LGFzc2lnblBhcmVudFJlc2l6YWJsZTpmdW5jdGlvbihlKXt0aGlzLl9wYXJlbnRSZXNpemFibGUmJnRoaXMuX3BhcmVudFJlc2l6YWJsZS5zdG9wUmVzaXplTm90aWZpY2F0aW9uc0Zvcih0aGlzKSx0aGlzLl9wYXJlbnRSZXNpemFibGU9ZSxlJiZlLl9pbnRlcmVzdGVkUmVzaXphYmxlcy5pbmRleE9mKHRoaXMpPT09LTEmJihlLl9pbnRlcmVzdGVkUmVzaXphYmxlcy5wdXNoKHRoaXMpLGUuX3N1YnNjcmliZUlyb25SZXNpemUodGhpcykpfSxzdG9wUmVzaXplTm90aWZpY2F0aW9uc0ZvcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9pbnRlcmVzdGVkUmVzaXphYmxlcy5pbmRleE9mKGUpO3Q+LTEmJih0aGlzLl9pbnRlcmVzdGVkUmVzaXphYmxlcy5zcGxpY2UodCwxKSx0aGlzLl91bnN1YnNjcmliZUlyb25SZXNpemUoZSkpfSxfc3Vic2NyaWJlSXJvblJlc2l6ZTpmdW5jdGlvbihlKXtlLmFkZEV2ZW50TGlzdGVuZXIoImlyb24tcmVzaXplIix0aGlzLl9ib3VuZE9uRGVzY2VuZGFudElyb25SZXNpemUpfSxfdW5zdWJzY3JpYmVJcm9uUmVzaXplOmZ1bmN0aW9uKGUpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaXJvbi1yZXNpemUiLHRoaXMuX2JvdW5kT25EZXNjZW5kYW50SXJvblJlc2l6ZSl9LHJlc2l6ZXJTaG91bGROb3RpZnk6ZnVuY3Rpb24oZSl7cmV0dXJuITB9LF9vbkRlc2NlbmRhbnRJcm9uUmVzaXplOmZ1bmN0aW9uKGUpe2lmKHRoaXMuX25vdGlmeWluZ0Rlc2NlbmRhbnQpe2Uuc3RvcFByb3BhZ2F0aW9uKCk7cmV0dXJufXVffHx0aGlzLl9maXJlUmVzaXplKCl9LF9maXJlUmVzaXplOmZ1bmN0aW9uKCl7dGhpcy5maXJlKCJpcm9uLXJlc2l6ZSIsbnVsbCx7bm9kZTp0aGlzLGJ1YmJsZXM6ITF9KX0sX29uSXJvblJlcXVlc3RSZXNpemVOb3RpZmljYXRpb25zOmZ1bmN0aW9uKGUpe3ZhciB0PXp0KGUpLnJvb3RUYXJnZXQ7dCE9PXRoaXMmJih0LmFzc2lnblBhcmVudFJlc2l6YWJsZSh0aGlzKSx0aGlzLl9ub3RpZnlEZXNjZW5kYW50KHQpLGUuc3RvcFByb3BhZ2F0aW9uKCkpfSxfcGFyZW50UmVzaXphYmxlQ2hhbmdlZDpmdW5jdGlvbihlKXtlJiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9ib3VuZE5vdGlmeVJlc2l6ZSl9LF9ub3RpZnlEZXNjZW5kYW50OmZ1bmN0aW9uKGUpeyF0aGlzLmlzQXR0YWNoZWR8fCh0aGlzLl9ub3RpZnlpbmdEZXNjZW5kYW50PSEwLGUubm90aWZ5UmVzaXplKCksdGhpcy5fbm90aWZ5aW5nRGVzY2VuZGFudD0hMSl9LF9yZXF1ZXN0UmVzaXplTm90aWZpY2F0aW9uczpmdW5jdGlvbigpe2lmKCEhdGhpcy5pc0F0dGFjaGVkKWlmKGRvY3VtZW50LnJlYWR5U3RhdGU9PT0ibG9hZGluZyIpe3ZhciBlPXRoaXMuX3JlcXVlc3RSZXNpemVOb3RpZmljYXRpb25zLmJpbmQodGhpcyk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsZnVuY3Rpb24gdCgpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLHQpLGUoKX0pfWVsc2UgdGhpcy5fZmluZFBhcmVudCgpLHRoaXMuX3BhcmVudFJlc2l6YWJsZT90aGlzLl9wYXJlbnRSZXNpemFibGUuX2ludGVyZXN0ZWRSZXNpemFibGVzLmZvckVhY2goZnVuY3Rpb24odCl7dCE9PXRoaXMmJnQuX2ZpbmRQYXJlbnQoKX0sdGhpcyk6KHk5LmZvckVhY2goZnVuY3Rpb24odCl7dCE9PXRoaXMmJnQuX2ZpbmRQYXJlbnQoKX0sdGhpcyksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fYm91bmROb3RpZnlSZXNpemUpLHRoaXMubm90aWZ5UmVzaXplKCkpfSxfZmluZFBhcmVudDpmdW5jdGlvbigpe3RoaXMuYXNzaWduUGFyZW50UmVzaXphYmxlKG51bGwpLHRoaXMuZmlyZSgiaXJvbi1yZXF1ZXN0LXJlc2l6ZS1ub3RpZmljYXRpb25zIixudWxsLHtub2RlOnRoaXMsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwfSksdGhpcy5fcGFyZW50UmVzaXphYmxlP3k5LmRlbGV0ZSh0aGlzKTp5OS5hZGQodGhpcyl9fTtZdCh7X3RlbXBsYXRlOlFgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1pcm9uLWNvbGxhcHNlLXRyYW5zaXRpb24tZHVyYXRpb24sIDMwMG1zKTsKICAgICAgICAvKiBTYWZhcmkgMTAgbmVlZHMgdGhpcyBwcm9wZXJ0eSBwcmVmaXhlZCB0byBjb3JyZWN0bHkgYXBwbHkgdGhlIGN1c3RvbSBwcm9wZXJ0eSAqLwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0taXJvbi1jb2xsYXBzZS10cmFuc2l0aW9uLWR1cmF0aW9uLCAzMDBtcyk7CiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICAgIH0KCiAgICAgIDpob3N0KC5pcm9uLWNvbGxhcHNlLWNsb3NlZCkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KDpub3QoLmlyb24tY29sbGFwc2Utb3BlbmVkKSkgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJpcm9uLWNvbGxhcHNlIixiZWhhdmlvcnM6W1FzXSxwcm9wZXJ0aWVzOntob3Jpem9udGFsOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsb2JzZXJ2ZXI6Il9ob3Jpem9udGFsQ2hhbmdlZCJ9LG9wZW5lZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMCxvYnNlcnZlcjoiX29wZW5lZENoYW5nZWQifSx0cmFuc2l0aW9uaW5nOnt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwLHJlYWRPbmx5OiEwfSxub0FuaW1hdGlvbjp7dHlwZTpCb29sZWFufSxfZGVzaXJlZFNpemU6e3R5cGU6U3RyaW5nLHZhbHVlOiIifX0sZ2V0IGRpbWVuc2lvbigpe3JldHVybiB0aGlzLmhvcml6b250YWw/IndpZHRoIjoiaGVpZ2h0In0sZ2V0IF9kaW1lbnNpb25NYXgoKXtyZXR1cm4gdGhpcy5ob3Jpem9udGFsPyJtYXhXaWR0aCI6Im1heEhlaWdodCJ9LGdldCBfZGltZW5zaW9uTWF4Q3NzKCl7cmV0dXJuIHRoaXMuaG9yaXpvbnRhbD8ibWF4LXdpZHRoIjoibWF4LWhlaWdodCJ9LGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJncm91cCIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LGxpc3RlbmVyczp7dHJhbnNpdGlvbmVuZDoiX29uVHJhbnNpdGlvbkVuZCJ9LHRvZ2dsZTpmdW5jdGlvbigpe3RoaXMub3BlbmVkPSF0aGlzLm9wZW5lZH0sc2hvdzpmdW5jdGlvbigpe3RoaXMub3BlbmVkPSEwfSxoaWRlOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQ9ITF9LHVwZGF0ZVNpemU6ZnVuY3Rpb24oZSx0KXtlPWU9PT0iYXV0byI/IiI6ZTt2YXIgcj10JiYhdGhpcy5ub0FuaW1hdGlvbiYmdGhpcy5pc0F0dGFjaGVkJiZ0aGlzLl9kZXNpcmVkU2l6ZSE9PWU7aWYodGhpcy5fZGVzaXJlZFNpemU9ZSx0aGlzLl91cGRhdGVUcmFuc2l0aW9uKCExKSxyKXt2YXIgbj10aGlzLl9jYWxjU2l6ZSgpO2U9PT0iIiYmKHRoaXMuc3R5bGVbdGhpcy5fZGltZW5zaW9uTWF4XT0iIixlPXRoaXMuX2NhbGNTaXplKCkpLHRoaXMuc3R5bGVbdGhpcy5fZGltZW5zaW9uTWF4XT1uLHRoaXMuc2Nyb2xsVG9wPXRoaXMuc2Nyb2xsVG9wLHRoaXMuX3VwZGF0ZVRyYW5zaXRpb24oITApLHI9ZSE9PW59dGhpcy5zdHlsZVt0aGlzLl9kaW1lbnNpb25NYXhdPWUscnx8dGhpcy5fdHJhbnNpdGlvbkVuZCgpfSxlbmFibGVUcmFuc2l0aW9uOmZ1bmN0aW9uKGUpe09hLl93YXJuKCJgZW5hYmxlVHJhbnNpdGlvbigpYCBpcyBkZXByZWNhdGVkLCB1c2UgYG5vQW5pbWF0aW9uYCBpbnN0ZWFkLiIpLHRoaXMubm9BbmltYXRpb249IWV9LF91cGRhdGVUcmFuc2l0aW9uOmZ1bmN0aW9uKGUpe3RoaXMuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uPWUmJiF0aGlzLm5vQW5pbWF0aW9uPyIiOiIwcyJ9LF9ob3Jpem9udGFsQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuc3R5bGUudHJhbnNpdGlvblByb3BlcnR5PXRoaXMuX2RpbWVuc2lvbk1heENzczt2YXIgZT10aGlzLl9kaW1lbnNpb25NYXg9PT0ibWF4V2lkdGgiPyJtYXhIZWlnaHQiOiJtYXhXaWR0aCI7dGhpcy5zdHlsZVtlXT0iIix0aGlzLnVwZGF0ZVNpemUodGhpcy5vcGVuZWQ/ImF1dG8iOiIwcHgiLCExKX0sX29wZW5lZENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCF0aGlzLm9wZW5lZCksdGhpcy5fc2V0VHJhbnNpdGlvbmluZyghMCksdGhpcy50b2dnbGVDbGFzcygiaXJvbi1jb2xsYXBzZS1jbG9zZWQiLCExKSx0aGlzLnRvZ2dsZUNsYXNzKCJpcm9uLWNvbGxhcHNlLW9wZW5lZCIsITEpLHRoaXMudXBkYXRlU2l6ZSh0aGlzLm9wZW5lZD8iYXV0byI6IjBweCIsITApLHRoaXMub3BlbmVkJiZ0aGlzLmZvY3VzKCl9LF90cmFuc2l0aW9uRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHlsZVt0aGlzLl9kaW1lbnNpb25NYXhdPXRoaXMuX2Rlc2lyZWRTaXplLHRoaXMudG9nZ2xlQ2xhc3MoImlyb24tY29sbGFwc2UtY2xvc2VkIiwhdGhpcy5vcGVuZWQpLHRoaXMudG9nZ2xlQ2xhc3MoImlyb24tY29sbGFwc2Utb3BlbmVkIix0aGlzLm9wZW5lZCksdGhpcy5fdXBkYXRlVHJhbnNpdGlvbighMSksdGhpcy5ub3RpZnlSZXNpemUoKSx0aGlzLl9zZXRUcmFuc2l0aW9uaW5nKCExKX0sX29uVHJhbnNpdGlvbkVuZDpmdW5jdGlvbihlKXt6dChlKS5yb290VGFyZ2V0PT09dGhpcyYmdGhpcy5fdHJhbnNpdGlvbkVuZCgpfSxfY2FsY1NpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVt0aGlzLmRpbWVuc2lvbl0rInB4In19KTt2YXIgWmd0PVFgCi8qIE1vc3QgY29tbW9uIHVzZWQgZmxleCBzdHlsZXMqLwo8ZG9tLW1vZHVsZSBpZD0iaXJvbi1mbGV4Ij4KICA8dGVtcGxhdGU+CiAgICA8c3R5bGU+CiAgICAgIC5sYXlvdXQuaG9yaXpvbnRhbCwKICAgICAgLmxheW91dC52ZXJ0aWNhbCB7CiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuaW5saW5lIHsKICAgICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7CiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgfQoKICAgICAgLmxheW91dC5ob3Jpem9udGFsIHsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgfQoKICAgICAgLmxheW91dC52ZXJ0aWNhbCB7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIC5sYXlvdXQud3JhcCB7CiAgICAgICAgLW1zLWZsZXgtd3JhcDogd3JhcDsKICAgICAgICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQubm8td3JhcCB7CiAgICAgICAgLW1zLWZsZXgtd3JhcDogbm93cmFwOwogICAgICAgIC13ZWJraXQtZmxleC13cmFwOiBub3dyYXA7CiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuY2VudGVyLAogICAgICAubGF5b3V0LmNlbnRlci1jZW50ZXIgewogICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuY2VudGVyLWp1c3RpZmllZCwKICAgICAgLmxheW91dC5jZW50ZXItY2VudGVyIHsKICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmZsZXggewogICAgICAgIC1tcy1mbGV4OiAxIDEgMC4wMDAwMDAwMDFweDsKICAgICAgICAtd2Via2l0LWZsZXg6IDE7CiAgICAgICAgZmxleDogMTsKICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDAuMDAwMDAwMDAxcHg7CiAgICAgICAgZmxleC1iYXNpczogMC4wMDAwMDAwMDFweDsKICAgICAgfQoKICAgICAgLmZsZXgtYXV0byB7CiAgICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvOwogICAgICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87CiAgICAgICAgZmxleDogMSAxIGF1dG87CiAgICAgIH0KCiAgICAgIC5mbGV4LW5vbmUgewogICAgICAgIC1tcy1mbGV4OiBub25lOwogICAgICAgIC13ZWJraXQtZmxleDogbm9uZTsKICAgICAgICBmbGV4OiBub25lOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvdGVtcGxhdGU+CjwvZG9tLW1vZHVsZT4KLyogQmFzaWMgZmxleGJveCByZXZlcnNlIHN0eWxlcyAqLwo8ZG9tLW1vZHVsZSBpZD0iaXJvbi1mbGV4LXJldmVyc2UiPgogIDx0ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgLmxheW91dC5ob3Jpem9udGFsLXJldmVyc2UsCiAgICAgIC5sYXlvdXQudmVydGljYWwtcmV2ZXJzZSB7CiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuaG9yaXpvbnRhbC1yZXZlcnNlIHsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOwogICAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsKICAgICAgfQoKICAgICAgLmxheW91dC52ZXJ0aWNhbC1yZXZlcnNlIHsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOwogICAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsKICAgICAgfQoKICAgICAgLmxheW91dC53cmFwLXJldmVyc2UgewogICAgICAgIC1tcy1mbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTsKICAgICAgICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlOwogICAgICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvdGVtcGxhdGU+CjwvZG9tLW1vZHVsZT4KLyogRmxleGJveCBhbGlnbm1lbnQgKi8KPGRvbS1tb2R1bGUgaWQ9Imlyb24tZmxleC1hbGlnbm1lbnQiPgogIDx0ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgLyoqCiAgICAgICAqIEFsaWdubWVudCBpbiBjcm9zcyBheGlzLgogICAgICAgKi8KICAgICAgLmxheW91dC5zdGFydCB7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0OwogICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuY2VudGVyLAogICAgICAubGF5b3V0LmNlbnRlci1jZW50ZXIgewogICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuZW5kIHsKICAgICAgICAtbXMtZmxleC1hbGlnbjogZW5kOwogICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLmxheW91dC5iYXNlbGluZSB7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lOwogICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgfQoKICAgICAgLyoqCiAgICAgICAqIEFsaWdubWVudCBpbiBtYWluIGF4aXMuCiAgICAgICAqLwogICAgICAubGF5b3V0LnN0YXJ0LWp1c3RpZmllZCB7CiAgICAgICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7CiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgICB9CgogICAgICAubGF5b3V0LmNlbnRlci1qdXN0aWZpZWQsCiAgICAgIC5sYXlvdXQuY2VudGVyLWNlbnRlciB7CiAgICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyOwogICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuZW5kLWp1c3RpZmllZCB7CiAgICAgICAgLW1zLWZsZXgtcGFjazogZW5kOwogICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAubGF5b3V0LmFyb3VuZC1qdXN0aWZpZWQgewogICAgICAgIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGU7CiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKICAgICAgfQoKICAgICAgLmxheW91dC5qdXN0aWZpZWQgewogICAgICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7CiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICB9CgogICAgICAvKioKICAgICAgICogU2VsZiBhbGlnbm1lbnQuCiAgICAgICAqLwogICAgICAuc2VsZi1zdGFydCB7CiAgICAgICAgLW1zLWFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7CiAgICAgIH0KCiAgICAgIC5zZWxmLWNlbnRlciB7CiAgICAgICAgLW1zLWFsaWduLXNlbGY6IGNlbnRlcjsKICAgICAgICAtd2Via2l0LWFsaWduLXNlbGY6IGNlbnRlcjsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5zZWxmLWVuZCB7CiAgICAgICAgLW1zLWFsaWduLXNlbGY6IGZsZXgtZW5kOwogICAgICAgIC13ZWJraXQtYWxpZ24tc2VsZjogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5zZWxmLXN0cmV0Y2ggewogICAgICAgIC1tcy1hbGlnbi1zZWxmOiBzdHJldGNoOwogICAgICAgIC13ZWJraXQtYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgICB9CgogICAgICAuc2VsZi1iYXNlbGluZSB7CiAgICAgICAgLW1zLWFsaWduLXNlbGY6IGJhc2VsaW5lOwogICAgICAgIC13ZWJraXQtYWxpZ24tc2VsZjogYmFzZWxpbmU7CiAgICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC8qKgogICAgICAgKiBtdWx0aS1saW5lIGFsaWdubWVudCBpbiBtYWluIGF4aXMuCiAgICAgICAqLwogICAgICAubGF5b3V0LnN0YXJ0LWFsaWduZWQgewogICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQ7ICAvKiBJRTEwICovCiAgICAgICAgLW1zLWFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuZW5kLWFsaWduZWQgewogICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZW5kOyAgLyogSUUxMCAqLwogICAgICAgIC1tcy1hbGlnbi1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAubGF5b3V0LmNlbnRlci1hbGlnbmVkIHsKICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGNlbnRlcjsgIC8qIElFMTAgKi8KICAgICAgICAtbXMtYWxpZ24tY29udGVudDogY2VudGVyOwogICAgICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmxheW91dC5iZXR3ZWVuLWFsaWduZWQgewogICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazoganVzdGlmeTsgIC8qIElFMTAgKi8KICAgICAgICAtbXMtYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfQoKICAgICAgLmxheW91dC5hcm91bmQtYWxpZ25lZCB7CiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBkaXN0cmlidXRlOyAgLyogSUUxMCAqLwogICAgICAgIC1tcy1hbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7CiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvdGVtcGxhdGU+CjwvZG9tLW1vZHVsZT4KLyogTm9uLWZsZXhib3ggcG9zaXRpb25pbmcgaGVscGVyIHN0eWxlcyAqLwo8ZG9tLW1vZHVsZSBpZD0iaXJvbi1mbGV4LWZhY3RvcnMiPgogIDx0ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgLmZsZXgsCiAgICAgIC5mbGV4LTEgewogICAgICAgIC1tcy1mbGV4OiAxIDEgMC4wMDAwMDAwMDFweDsKICAgICAgICAtd2Via2l0LWZsZXg6IDE7CiAgICAgICAgZmxleDogMTsKICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDAuMDAwMDAwMDAxcHg7CiAgICAgICAgZmxleC1iYXNpczogMC4wMDAwMDAwMDFweDsKICAgICAgfQoKICAgICAgLmZsZXgtMiB7CiAgICAgICAgLW1zLWZsZXg6IDI7CiAgICAgICAgLXdlYmtpdC1mbGV4OiAyOwogICAgICAgIGZsZXg6IDI7CiAgICAgIH0KCiAgICAgIC5mbGV4LTMgewogICAgICAgIC1tcy1mbGV4OiAzOwogICAgICAgIC13ZWJraXQtZmxleDogMzsKICAgICAgICBmbGV4OiAzOwogICAgICB9CgogICAgICAuZmxleC00IHsKICAgICAgICAtbXMtZmxleDogNDsKICAgICAgICAtd2Via2l0LWZsZXg6IDQ7CiAgICAgICAgZmxleDogNDsKICAgICAgfQoKICAgICAgLmZsZXgtNSB7CiAgICAgICAgLW1zLWZsZXg6IDU7CiAgICAgICAgLXdlYmtpdC1mbGV4OiA1OwogICAgICAgIGZsZXg6IDU7CiAgICAgIH0KCiAgICAgIC5mbGV4LTYgewogICAgICAgIC1tcy1mbGV4OiA2OwogICAgICAgIC13ZWJraXQtZmxleDogNjsKICAgICAgICBmbGV4OiA2OwogICAgICB9CgogICAgICAuZmxleC03IHsKICAgICAgICAtbXMtZmxleDogNzsKICAgICAgICAtd2Via2l0LWZsZXg6IDc7CiAgICAgICAgZmxleDogNzsKICAgICAgfQoKICAgICAgLmZsZXgtOCB7CiAgICAgICAgLW1zLWZsZXg6IDg7CiAgICAgICAgLXdlYmtpdC1mbGV4OiA4OwogICAgICAgIGZsZXg6IDg7CiAgICAgIH0KCiAgICAgIC5mbGV4LTkgewogICAgICAgIC1tcy1mbGV4OiA5OwogICAgICAgIC13ZWJraXQtZmxleDogOTsKICAgICAgICBmbGV4OiA5OwogICAgICB9CgogICAgICAuZmxleC0xMCB7CiAgICAgICAgLW1zLWZsZXg6IDEwOwogICAgICAgIC13ZWJraXQtZmxleDogMTA7CiAgICAgICAgZmxleDogMTA7CiAgICAgIH0KCiAgICAgIC5mbGV4LTExIHsKICAgICAgICAtbXMtZmxleDogMTE7CiAgICAgICAgLXdlYmtpdC1mbGV4OiAxMTsKICAgICAgICBmbGV4OiAxMTsKICAgICAgfQoKICAgICAgLmZsZXgtMTIgewogICAgICAgIC1tcy1mbGV4OiAxMjsKICAgICAgICAtd2Via2l0LWZsZXg6IDEyOwogICAgICAgIGZsZXg6IDEyOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvdGVtcGxhdGU+CjwvZG9tLW1vZHVsZT4KPGRvbS1tb2R1bGUgaWQ9Imlyb24tcG9zaXRpb25pbmciPgogIDx0ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgLmJsb2NrIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgW2hpZGRlbl0gewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmludmlzaWJsZSB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5yZWxhdGl2ZSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuZml0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICB9CgogICAgICBib2R5LmZ1bGxibGVlZCB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgIH0KCiAgICAgIC5zY3JvbGwgewogICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQoKICAgICAgLyogZml4ZWQgcG9zaXRpb24gKi8KICAgICAgLmZpeGVkLWJvdHRvbSwKICAgICAgLmZpeGVkLWxlZnQsCiAgICAgIC5maXhlZC1yaWdodCwKICAgICAgLmZpeGVkLXRvcCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICB9CgogICAgICAuZml4ZWQtdG9wIHsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgfQoKICAgICAgLmZpeGVkLXJpZ2h0IHsKICAgICAgICB0b3A6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAuZml4ZWQtYm90dG9tIHsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgfQoKICAgICAgLmZpeGVkLWxlZnQgewogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L3RlbXBsYXRlPgo8L2RvbS1tb2R1bGU+CmA7Wmd0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoWmd0LmNvbnRlbnQpO3ZhciBKZ3Q9UWAKPGN1c3RvbS1zdHlsZT4KICA8c3R5bGUgaXM9ImN1c3RvbS1zdHlsZSI+CiAgICBbaGlkZGVuXSB7CiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KICA8L3N0eWxlPgo8L2N1c3RvbS1zdHlsZT4KPGN1c3RvbS1zdHlsZT4KICA8c3R5bGUgaXM9ImN1c3RvbS1zdHlsZSI+CiAgICBodG1sIHsKCiAgICAgIC0tbGF5b3V0OiB7CiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH07CgogICAgICAtLWxheW91dC1pbmxpbmU6IHsKICAgICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7CiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWhvcml6b250YWw6IHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQ7CgogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtaG9yaXpvbnRhbC1yZXZlcnNlOiB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0OwoKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOwogICAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LXZlcnRpY2FsOiB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0OwoKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LXZlcnRpY2FsLXJldmVyc2U6IHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQ7CgogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7CiAgICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtd3JhcDogewogICAgICAgIC1tcy1mbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtd3JhcC1yZXZlcnNlOiB7CiAgICAgICAgLW1zLWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlOwogICAgICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwLXJldmVyc2U7CiAgICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LWF1dG86IHsKICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZsZXgtbm9uZTogewogICAgICAgIC1tcy1mbGV4OiBub25lOwogICAgICAgIC13ZWJraXQtZmxleDogbm9uZTsKICAgICAgICBmbGV4OiBub25lOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleDogewogICAgICAgIC1tcy1mbGV4OiAxIDEgMC4wMDAwMDAwMDFweDsKICAgICAgICAtd2Via2l0LWZsZXg6IDE7CiAgICAgICAgZmxleDogMTsKICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDAuMDAwMDAwMDAxcHg7CiAgICAgICAgZmxleC1iYXNpczogMC4wMDAwMDAwMDFweDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZsZXgtMjogewogICAgICAgIC1tcy1mbGV4OiAyOwogICAgICAgIC13ZWJraXQtZmxleDogMjsKICAgICAgICBmbGV4OiAyOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC0zOiB7CiAgICAgICAgLW1zLWZsZXg6IDM7CiAgICAgICAgLXdlYmtpdC1mbGV4OiAzOwogICAgICAgIGZsZXg6IDM7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LTQ6IHsKICAgICAgICAtbXMtZmxleDogNDsKICAgICAgICAtd2Via2l0LWZsZXg6IDQ7CiAgICAgICAgZmxleDogNDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZsZXgtNTogewogICAgICAgIC1tcy1mbGV4OiA1OwogICAgICAgIC13ZWJraXQtZmxleDogNTsKICAgICAgICBmbGV4OiA1OwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC02OiB7CiAgICAgICAgLW1zLWZsZXg6IDY7CiAgICAgICAgLXdlYmtpdC1mbGV4OiA2OwogICAgICAgIGZsZXg6IDY7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LTc6IHsKICAgICAgICAtbXMtZmxleDogNzsKICAgICAgICAtd2Via2l0LWZsZXg6IDc7CiAgICAgICAgZmxleDogNzsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZsZXgtODogewogICAgICAgIC1tcy1mbGV4OiA4OwogICAgICAgIC13ZWJraXQtZmxleDogODsKICAgICAgICBmbGV4OiA4OwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC05OiB7CiAgICAgICAgLW1zLWZsZXg6IDk7CiAgICAgICAgLXdlYmtpdC1mbGV4OiA5OwogICAgICAgIGZsZXg6IDk7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LTEwOiB7CiAgICAgICAgLW1zLWZsZXg6IDEwOwogICAgICAgIC13ZWJraXQtZmxleDogMTA7CiAgICAgICAgZmxleDogMTA7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LTExOiB7CiAgICAgICAgLW1zLWZsZXg6IDExOwogICAgICAgIC13ZWJraXQtZmxleDogMTE7CiAgICAgICAgZmxleDogMTE7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LTEyOiB7CiAgICAgICAgLW1zLWZsZXg6IDEyOwogICAgICAgIC13ZWJraXQtZmxleDogMTI7CiAgICAgICAgZmxleDogMTI7CiAgICAgIH07CgogICAgICAvKiBhbGlnbm1lbnQgaW4gY3Jvc3MgYXhpcyAqLwoKICAgICAgLS1sYXlvdXQtc3RhcnQ6IHsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWNlbnRlcjogewogICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH07CgogICAgICAtLWxheW91dC1lbmQ6IHsKICAgICAgICAtbXMtZmxleC1hbGlnbjogZW5kOwogICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWJhc2VsaW5lOiB7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lOwogICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgfTsKCiAgICAgIC8qIGFsaWdubWVudCBpbiBtYWluIGF4aXMgKi8KCiAgICAgIC0tbGF5b3V0LXN0YXJ0LWp1c3RpZmllZDogewogICAgICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0OwogICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWNlbnRlci1qdXN0aWZpZWQ6IHsKICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWVuZC1qdXN0aWZpZWQ6IHsKICAgICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7CiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1hcm91bmQtanVzdGlmaWVkOiB7CiAgICAgICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTsKICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtanVzdGlmaWVkOiB7CiAgICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTsKICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIH07CgogICAgICAtLWxheW91dC1jZW50ZXItY2VudGVyOiB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlcjsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyLWp1c3RpZmllZDsKICAgICAgfTsKCiAgICAgIC8qIHNlbGYgYWxpZ25tZW50ICovCgogICAgICAtLWxheW91dC1zZWxmLXN0YXJ0OiB7CiAgICAgICAgLW1zLWFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1zZWxmLWNlbnRlcjogewogICAgICAgIC1tcy1hbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtc2VsZi1lbmQ6IHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogZmxleC1lbmQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LXNlbGYtc3RyZXRjaDogewogICAgICAgIC1tcy1hbGlnbi1zZWxmOiBzdHJldGNoOwogICAgICAgIC13ZWJraXQtYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtc2VsZi1iYXNlbGluZTogewogICAgICAgIC1tcy1hbGlnbi1zZWxmOiBiYXNlbGluZTsKICAgICAgICAtd2Via2l0LWFsaWduLXNlbGY6IGJhc2VsaW5lOwogICAgICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lOwogICAgICB9OwoKICAgICAgLyogbXVsdGktbGluZSBhbGlnbm1lbnQgaW4gbWFpbiBheGlzICovCgogICAgICAtLWxheW91dC1zdGFydC1hbGlnbmVkOiB7CiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydDsgIC8qIElFMTAgKi8KICAgICAgICAtbXMtYWxpZ24tY29udGVudDogZmxleC1zdGFydDsKICAgICAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWVuZC1hbGlnbmVkOiB7CiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBlbmQ7ICAvKiBJRTEwICovCiAgICAgICAgLW1zLWFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1lbmQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1jZW50ZXItYWxpZ25lZDogewogICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogY2VudGVyOyAgLyogSUUxMCAqLwogICAgICAgIC1tcy1hbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtYmV0d2Vlbi1hbGlnbmVkOiB7CiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBqdXN0aWZ5OyAgLyogSUUxMCAqLwogICAgICAgIC1tcy1hbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtYXJvdW5kLWFsaWduZWQ6IHsKICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGRpc3RyaWJ1dGU7ICAvKiBJRTEwICovCiAgICAgICAgLW1zLWFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKICAgICAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7CiAgICAgIH07CgogICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAgICAgICAgICAgT3RoZXIgTGF5b3V0CiAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgogICAgICAtLWxheW91dC1ibG9jazogewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtaW52aXNpYmxlOiB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1yZWxhdGl2ZTogewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZpdDogewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgIH07CgogICAgICAtLWxheW91dC1zY3JvbGw6IHsKICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIH07CgogICAgICAtLWxheW91dC1mdWxsYmxlZWQ6IHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgfTsKCiAgICAgIC8qIGZpeGVkIHBvc2l0aW9uICovCgogICAgICAtLWxheW91dC1maXhlZC10b3A6IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgIH07CgogICAgICAtLWxheW91dC1maXhlZC1yaWdodDogewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZml4ZWQtYm90dG9tOiB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZml4ZWQtbGVmdDogewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgIH07CgogICAgfQogIDwvc3R5bGU+CjwvY3VzdG9tLXN0eWxlPmA7Smd0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoSmd0LmNvbnRlbnQpO3ZhciBRZ3Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtRZ3QudGV4dENvbnRlbnQ9IltoaWRkZW5dIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9Ijtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKFFndCk7dmFyIGdvPWNsYXNze2NvbnN0cnVjdG9yKHQpe2dvWyIgIl0odCksdGhpcy50eXBlPXQmJnQudHlwZXx8ImRlZmF1bHQiLHRoaXMua2V5PXQmJnQua2V5LHQmJiJ2YWx1ZSJpbiB0JiYodGhpcy52YWx1ZT10LnZhbHVlKX1nZXQgdmFsdWUoKXt2YXIgdD10aGlzLnR5cGUscj10aGlzLmtleTtpZih0JiZyKXJldHVybiBnby50eXBlc1t0XSYmZ28udHlwZXNbdF1bcl19c2V0IHZhbHVlKHQpe3ZhciByPXRoaXMudHlwZSxuPXRoaXMua2V5O3ImJm4mJihyPWdvLnR5cGVzW3JdPWdvLnR5cGVzW3JdfHx7fSx0PT1udWxsP2RlbGV0ZSByW25dOnJbbl09dCl9Z2V0IGxpc3QoKXt2YXIgdD10aGlzLnR5cGU7aWYodCl7dmFyIHI9Z28udHlwZXNbdGhpcy50eXBlXTtyZXR1cm4gcj9PYmplY3Qua2V5cyhyKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIF9iZVt0aGlzLnR5cGVdW25dfSx0aGlzKTpbXX19YnlLZXkodCl7cmV0dXJuIHRoaXMua2V5PXQsdGhpcy52YWx1ZX19O2dvWyIgIl09ZnVuY3Rpb24oKXt9O2dvLnR5cGVzPXt9O3ZhciBfYmU9Z28udHlwZXM7WXQoe2lzOiJpcm9uLW1ldGEiLHByb3BlcnRpZXM6e3R5cGU6e3R5cGU6U3RyaW5nLHZhbHVlOiJkZWZhdWx0In0sa2V5Ont0eXBlOlN0cmluZ30sdmFsdWU6e3R5cGU6U3RyaW5nLG5vdGlmeTohMH0sc2VsZjp7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfc2VsZkNoYW5nZWQifSxfX21ldGE6e3R5cGU6Qm9vbGVhbixjb21wdXRlZDoiX19jb21wdXRlTWV0YSh0eXBlLCBrZXksIHZhbHVlKSJ9fSxob3N0QXR0cmlidXRlczp7aGlkZGVuOiEwfSxfX2NvbXB1dGVNZXRhOmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1uZXcgZ28oe3R5cGU6ZSxrZXk6dH0pO3JldHVybiByIT09dm9pZCAwJiZyIT09bi52YWx1ZT9uLnZhbHVlPXI6dGhpcy52YWx1ZSE9PW4udmFsdWUmJih0aGlzLnZhbHVlPW4udmFsdWUpLG59LGdldCBsaXN0KCl7cmV0dXJuIHRoaXMuX19tZXRhJiZ0aGlzLl9fbWV0YS5saXN0fSxfc2VsZkNoYW5nZWQ6ZnVuY3Rpb24oZSl7ZSYmKHRoaXMudmFsdWU9dGhpcyl9LGJ5S2V5OmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgZ28oe3R5cGU6dGhpcy50eXBlLGtleTplfSkudmFsdWV9fSk7WXQoe190ZW1wbGF0ZTpRYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWlubGluZTsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyLWNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CgogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CgogICAgICAgIGZpbGw6IHZhcigtLWlyb24taWNvbi1maWxsLWNvbG9yLCBjdXJyZW50Y29sb3IpOwogICAgICAgIHN0cm9rZTogdmFyKC0taXJvbi1pY29uLXN0cm9rZS1jb2xvciwgbm9uZSk7CgogICAgICAgIHdpZHRoOiB2YXIoLS1pcm9uLWljb24td2lkdGgsIDI0cHgpOwogICAgICAgIGhlaWdodDogdmFyKC0taXJvbi1pY29uLWhlaWdodCwgMjRweCk7CiAgICAgICAgQGFwcGx5IC0taXJvbi1pY29uOwogICAgICB9CgogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIDwvc3R5bGU+CmAsaXM6Imlyb24taWNvbiIscHJvcGVydGllczp7aWNvbjp7dHlwZTpTdHJpbmd9LHRoZW1lOnt0eXBlOlN0cmluZ30sc3JjOnt0eXBlOlN0cmluZ30sX21ldGE6e3ZhbHVlOk9hLmNyZWF0ZSgiaXJvbi1tZXRhIix7dHlwZToiaWNvbnNldCJ9KX19LG9ic2VydmVyczpbIl91cGRhdGVJY29uKF9tZXRhLCBpc0F0dGFjaGVkKSIsIl91cGRhdGVJY29uKHRoZW1lLCBpc0F0dGFjaGVkKSIsIl9zcmNDaGFuZ2VkKHNyYywgaXNBdHRhY2hlZCkiLCJfaWNvbkNoYW5nZWQoaWNvbiwgaXNBdHRhY2hlZCkiXSxfREVGQVVMVF9JQ09OU0VUOiJpY29ucyIsX2ljb25DaGFuZ2VkOmZ1bmN0aW9uKGUpe3ZhciB0PShlfHwiIikuc3BsaXQoIjoiKTt0aGlzLl9pY29uTmFtZT10LnBvcCgpLHRoaXMuX2ljb25zZXROYW1lPXQucG9wKCl8fHRoaXMuX0RFRkFVTFRfSUNPTlNFVCx0aGlzLl91cGRhdGVJY29uKCl9LF9zcmNDaGFuZ2VkOmZ1bmN0aW9uKGUpe3RoaXMuX3VwZGF0ZUljb24oKX0sX3VzZXNJY29uc2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWNvbnx8IXRoaXMuc3JjfSxfdXBkYXRlSWNvbjpmdW5jdGlvbigpe3RoaXMuX3VzZXNJY29uc2V0KCk/KHRoaXMuX2ltZyYmdGhpcy5faW1nLnBhcmVudE5vZGUmJnp0KHRoaXMucm9vdCkucmVtb3ZlQ2hpbGQodGhpcy5faW1nKSx0aGlzLl9pY29uTmFtZT09PSIiP3RoaXMuX2ljb25zZXQmJnRoaXMuX2ljb25zZXQucmVtb3ZlSWNvbih0aGlzKTp0aGlzLl9pY29uc2V0TmFtZSYmdGhpcy5fbWV0YSYmKHRoaXMuX2ljb25zZXQ9dGhpcy5fbWV0YS5ieUtleSh0aGlzLl9pY29uc2V0TmFtZSksdGhpcy5faWNvbnNldD8odGhpcy5faWNvbnNldC5hcHBseUljb24odGhpcyx0aGlzLl9pY29uTmFtZSx0aGlzLnRoZW1lKSx0aGlzLnVubGlzdGVuKHdpbmRvdywiaXJvbi1pY29uc2V0LWFkZGVkIiwiX3VwZGF0ZUljb24iKSk6dGhpcy5saXN0ZW4od2luZG93LCJpcm9uLWljb25zZXQtYWRkZWQiLCJfdXBkYXRlSWNvbiIpKSk6KHRoaXMuX2ljb25zZXQmJnRoaXMuX2ljb25zZXQucmVtb3ZlSWNvbih0aGlzKSx0aGlzLl9pbWd8fCh0aGlzLl9pbWc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIiksdGhpcy5faW1nLnN0eWxlLndpZHRoPSIxMDAlIix0aGlzLl9pbWcuc3R5bGUuaGVpZ2h0PSIxMDAlIix0aGlzLl9pbWcuZHJhZ2dhYmxlPSExKSx0aGlzLl9pbWcuc3JjPXRoaXMuc3JjLHp0KHRoaXMucm9vdCkuYXBwZW5kQ2hpbGQodGhpcy5faW1nKSl9fSk7WXQoe2lzOiJpcm9uLWljb25zZXQtc3ZnIixwcm9wZXJ0aWVzOntuYW1lOnt0eXBlOlN0cmluZyxvYnNlcnZlcjoiX25hbWVDaGFuZ2VkIn0sc2l6ZTp7dHlwZTpOdW1iZXIsdmFsdWU6MjR9LHJ0bE1pcnJvcmluZzp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSx1c2VHbG9iYWxSdGxBdHRyaWJ1dGU6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLl9tZXRhPW5ldyBnbyh7dHlwZToiaWNvbnNldCIsa2V5Om51bGwsdmFsdWU6bnVsbH0pfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuc3R5bGUuZGlzcGxheT0ibm9uZSJ9LGdldEljb25OYW1lczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9pY29ucz10aGlzLl9jcmVhdGVJY29uTWFwKCksT2JqZWN0LmtleXModGhpcy5faWNvbnMpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5uYW1lKyI6IitlfSx0aGlzKX0sYXBwbHlJY29uOmZ1bmN0aW9uKGUsdCl7dGhpcy5yZW1vdmVJY29uKGUpO3ZhciByPXRoaXMuX2Nsb25lSWNvbih0LHRoaXMucnRsTWlycm9yaW5nJiZ0aGlzLl90YXJnZXRJc1JUTChlKSk7aWYocil7dmFyIG49enQoZS5yb290fHxlKTtyZXR1cm4gbi5pbnNlcnRCZWZvcmUocixuLmNoaWxkTm9kZXNbMF0pLGUuX3N2Z0ljb249cn1yZXR1cm4gbnVsbH0scmVtb3ZlSWNvbjpmdW5jdGlvbihlKXtlLl9zdmdJY29uJiYoenQoZS5yb290fHxlKS5yZW1vdmVDaGlsZChlLl9zdmdJY29uKSxlLl9zdmdJY29uPW51bGwpfSxfdGFyZ2V0SXNSVEw6ZnVuY3Rpb24oZSl7aWYodGhpcy5fX3RhcmdldElzUlRMPT1udWxsKWlmKHRoaXMudXNlR2xvYmFsUnRsQXR0cmlidXRlKXt2YXIgdD1kb2N1bWVudC5ib2R5JiZkb2N1bWVudC5ib2R5Lmhhc0F0dHJpYnV0ZSgiZGlyIik/ZG9jdW1lbnQuYm9keTpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7dGhpcy5fX3RhcmdldElzUlRMPXQuZ2V0QXR0cmlidXRlKCJkaXIiKT09PSJydGwifWVsc2UgZSYmZS5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFJiYoZT1lLmhvc3QpLHRoaXMuX190YXJnZXRJc1JUTD1lJiZ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKS5kaXJlY3Rpb249PT0icnRsIjtyZXR1cm4gdGhpcy5fX3RhcmdldElzUlRMfSxfbmFtZUNoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLl9tZXRhLnZhbHVlPW51bGwsdGhpcy5fbWV0YS5rZXk9dGhpcy5uYW1lLHRoaXMuX21ldGEudmFsdWU9dGhpcyx0aGlzLmFzeW5jKGZ1bmN0aW9uKCl7dGhpcy5maXJlKCJpcm9uLWljb25zZXQtYWRkZWQiLHRoaXMse25vZGU6d2luZG93fSl9KX0sX2NyZWF0ZUljb25NYXA6ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiB6dCh0aGlzKS5xdWVyeVNlbGVjdG9yQWxsKCJbaWRdIikuZm9yRWFjaChmdW5jdGlvbih0KXtlW3QuaWRdPXR9KSxlfSxfY2xvbmVJY29uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX2ljb25zPXRoaXMuX2ljb25zfHx0aGlzLl9jcmVhdGVJY29uTWFwKCksdGhpcy5fcHJlcGFyZVN2Z0Nsb25lKHRoaXMuX2ljb25zW2VdLHRoaXMuc2l6ZSx0KX0sX3ByZXBhcmVTdmdDbG9uZTpmdW5jdGlvbihlLHQscil7aWYoZSl7dmFyIG49ZS5jbG9uZU5vZGUoITApLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInN2ZyIpLG89bi5nZXRBdHRyaWJ1dGUoInZpZXdCb3giKXx8IjAgMCAiK3QrIiAiK3QsYT0icG9pbnRlci1ldmVudHM6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyI7cmV0dXJuIHImJm4uaGFzQXR0cmlidXRlKCJtaXJyb3ItaW4tcnRsIikmJihhKz0iLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLTEsMSk7dHJhbnNmb3JtOnNjYWxlKC0xLDEpO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyOyIpLGkuc2V0QXR0cmlidXRlKCJ2aWV3Qm94IixvKSxpLnNldEF0dHJpYnV0ZSgicHJlc2VydmVBc3BlY3RSYXRpbyIsInhNaWRZTWlkIG1lZXQiKSxpLnNldEF0dHJpYnV0ZSgiZm9jdXNhYmxlIiwiZmFsc2UiKSxpLnN0eWxlLmNzc1RleHQ9YSxpLmFwcGVuZENoaWxkKG4pLnJlbW92ZUF0dHJpYnV0ZSgiaWQiKSxpfXJldHVybiBudWxsfX0pO3ZhciB5YmU9UWA8aXJvbi1pY29uc2V0LXN2ZyBuYW1lPSJpbWFnZSIgc2l6ZT0iMjQiPgo8c3ZnPjxkZWZzPgo8ZyBpZD0iYWRkLWEtcGhvdG8iPjxwYXRoIGQ9Ik0zIDRWMWgydjNoM3YySDV2M0gzVjZIMFY0aDN6bTMgNlY3aDNWNGg3bDEuODMgMkgyMWMxLjEgMCAyIC45IDIgMnYxMmMwIDEuMS0uOSAyLTIgMkg1Yy0xLjEgMC0yLS45LTItMlYxMGgzem03IDljMi43NiAwIDUtMi4yNCA1LTVzLTIuMjQtNS01LTUtNSAyLjI0LTUgNSAyLjI0IDUgNSA1em0tMy4yLTVjMCAxLjc3IDEuNDMgMy4yIDMuMiAzLjJzMy4yLTEuNDMgMy4yLTMuMi0xLjQzLTMuMi0zLjItMy4yLTMuMiAxLjQzLTMuMiAzLjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYWRkLXRvLXBob3RvcyI+PHBhdGggZD0iTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xNi00SDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTEgOWgtNHY0aC0ydi00SDlWOWg0VjVoMnY0aDR2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhZGp1c3QiPjxwYXRoIGQ9Ik0xMiAyQzYuNDkgMiAyIDYuNDkgMiAxMnM0LjQ5IDEwIDEwIDEwIDEwLTQuNDkgMTAtMTBTMTcuNTEgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMy04YzAgMS42Ni0xLjM0IDMtMyAzcy0zLTEuMzQtMy0zIDEuMzQtMyAzLTMgMyAxLjM0IDMgM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3Npc3RhbnQiPjxwYXRoIGQ9Ik0xOSAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoNGwzIDMgMy0zaDRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTUuMTIgMTAuODhMMTIgMTdsLTEuODgtNC4xMkw2IDExbDQuMTItMS44OEwxMiA1bDEuODggNC4xMkwxOCAxMWwtNC4xMiAxLjg4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFzc2lzdGFudC1waG90byI+PHBhdGggZD0iTTE0LjQgNkwxNCA0SDV2MTdoMnYtN2g1LjZsLjQgMmg3VjZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXVkaW90cmFjayI+PHBhdGggZD0iTTEyIDN2OS4yOGMtLjQ3LS4xNy0uOTctLjI4LTEuNS0uMjhDOC4wMSAxMiA2IDE0LjAxIDYgMTYuNVM4LjAxIDIxIDEwLjUgMjFjMi4zMSAwIDQuMi0xLjc1IDQuNDUtNEgxNVY2aDRWM2gtN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJibHVyLWNpcmN1bGFyIj48cGF0aCBkPSJNMTAgOWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wIDRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXpNNyA5LjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0zIDdjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0tMy0zYy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptMy02Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMTQgOWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wLTEuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6bTMgNmMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTAtNGMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0yLTMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTAtMy41Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYmx1ci1saW5lYXIiPjxwYXRoIGQ9Ik01IDE3LjVjLjgzIDAgMS41LS42NyAxLjUtMS41cy0uNjctMS41LTEuNS0xLjUtMS41LjY3LTEuNSAxLjUuNjcgMS41IDEuNSAxLjV6TTkgMTNjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMC00Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6TTMgMjFoMTh2LTJIM3Yyek01IDkuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVTNS44MyA2LjUgNSA2LjUgMy41IDcuMTcgMy41IDggNC4xNyA5LjUgNSA5LjV6bTAgNGMuODMgMCAxLjUtLjY3IDEuNS0xLjVzLS42Ny0xLjUtMS41LTEuNS0xLjUuNjctMS41IDEuNS42NyAxLjUgMS41IDEuNXpNOSAxN2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem04LS41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMyAzdjJoMThWM0gzem0xNCA1LjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41em0wIDRjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0xMyA5Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAgNGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wIDRjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJibHVyLW9mZiI+PHBhdGggZD0iTTE0IDdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptLS4yIDQuNDhsLjIuMDJjLjgzIDAgMS41LS42NyAxLjUtMS41cy0uNjctMS41LTEuNS0xLjUtMS41LjY3LTEuNSAxLjVsLjAyLjJjLjA5LjY3LjYxIDEuMTkgMS4yOCAxLjI4ek0xNCAzLjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41em0tNCAwYy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXptMTEgN2MuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTEwIDdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptOCA4Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAtNGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wLTRjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptLTQgMTMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTIuNSA1LjI3bDMuNzggMy43OEw2IDljLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xYzAtLjEtLjAzLS4xOS0uMDYtLjI4bDIuODEgMi44MWMtLjcxLjExLTEuMjUuNzMtMS4yNSAxLjQ3IDAgLjgzLjY3IDEuNSAxLjUgMS41Ljc0IDAgMS4zNi0uNTQgMS40Ny0xLjI1bDIuODEgMi44MWMtLjA5LS4wMy0uMTgtLjA2LS4yOC0uMDYtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTFjMC0uMS0uMDMtLjE5LS4wNi0uMjhsMy43OCAzLjc4TDIwIDIwLjIzIDMuNzcgNCAyLjUgNS4yN3pNMTAgMTdjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMTEtMy41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNNiAxM2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xek0zIDkuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTcgMTFjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41ek02IDE3Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bS0zLTMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYmx1ci1vbiI+PHBhdGggZD0iTTYgMTNjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMCA0Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAtOGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0tMyAuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTYgNWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0xNSA1LjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0xNCA3Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAtMy41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXptLTExIDEwYy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptNyA3Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptMC0xN2MuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTEwIDdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMCA1LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41em04IC41Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAgNGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wLThjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMC00Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTMgOC41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNMTQgMTdjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMCAzLjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0tNC0xMmMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bTAgOC41Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTQtNC41Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXptMC00Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTEiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIj48L2NpcmNsZT48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTIiPjxwYXRoIGQ9Ik0xMCAyYy0xLjgyIDAtMy41My41LTUgMS4zNUM3Ljk5IDUuMDggMTAgOC4zIDEwIDEycy0yLjAxIDYuOTItNSA4LjY1QzYuNDcgMjEuNSA4LjE4IDIyIDEwIDIyYzUuNTIgMCAxMC00LjQ4IDEwLTEwUzE1LjUyIDIgMTAgMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTMiPjxwYXRoIGQ9Ik05IDJjLTEuMDUgMC0yLjA1LjE2LTMgLjQ2IDQuMDYgMS4yNyA3IDUuMDYgNyA5LjU0IDAgNC40OC0yLjk0IDguMjctNyA5LjU0Ljk1LjMgMS45NS40NiAzIC40NiA1LjUyIDAgMTAtNC40OCAxMC0xMFMxNC41MiAyIDkgMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTQiPjxwYXRoIGQ9Ik0yMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OUwyMy4zMSAxMiAyMCA4LjY5ek0xMiAxOGMtLjg5IDAtMS43NC0uMi0yLjUtLjU1QzExLjU2IDE2LjUgMTMgMTQuNDIgMTMgMTJzLTEuNDQtNC41LTMuNS01LjQ1QzEwLjI2IDYuMiAxMS4xMSA2IDEyIDZjMy4zMSAwIDYgMi42OSA2IDZzLTIuNjkgNi02IDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYnJpZ2h0bmVzcy01Ij48cGF0aCBkPSJNMjAgMTUuMzFMMjMuMzEgMTIgMjAgOC42OVY0aC00LjY5TDEyIC42OSA4LjY5IDRINHY0LjY5TC42OSAxMiA0IDE1LjMxVjIwaDQuNjlMMTIgMjMuMzEgMTUuMzEgMjBIMjB2LTQuNjl6TTEyIDE4Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02IDYgMi42OSA2IDYtMi42OSA2LTYgNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTYiPjxwYXRoIGQ9Ik0yMCAxNS4zMUwyMy4zMSAxMiAyMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OXpNMTIgMThWNmMzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTciPjxwYXRoIGQ9Ik0yMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OUwyMy4zMSAxMiAyMCA4LjY5ek0xMiAxOGMtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNiA2IDIuNjkgNiA2LTIuNjkgNi02IDZ6bTAtMTBjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJyb2tlbi1pbWFnZSI+PHBhdGggZD0iTTIxIDV2Ni41OWwtMy0zLjAxLTQgNC4wMS00LTQtNCA0LTMtMy4wMVY1YzAtMS4xLjktMiAyLTJoMTRjMS4xIDAgMiAuOSAyIDJ6bS0zIDYuNDJsMyAzLjAxVjE5YzAgMS4xLS45IDItMiAySDVjLTEuMSAwLTItLjktMi0ydi02LjU4bDMgMi45OSA0LTQgNCA0IDQtMy45OXoiPjwvcGF0aD48L2c+CjxnIGlkPSJicnVzaCI+PHBhdGggZD0iTTcgMTRjLTEuNjYgMC0zIDEuMzQtMyAzIDAgMS4zMS0xLjE2IDItMiAyIC45MiAxLjIyIDIuNDkgMiA0IDIgMi4yMSAwIDQtMS43OSA0LTQgMC0xLjY2LTEuMzQtMy0zLTN6bTEzLjcxLTkuMzdsLTEuMzQtMS4zNGMtLjM5LS4zOS0xLjAyLS4zOS0xLjQxIDBMOSAxMi4yNSAxMS43NSAxNWw4Ljk2LTguOTZjLjM5LS4zOS4zOS0xLjAyIDAtMS40MXoiPjwvcGF0aD48L2c+CjxnIGlkPSJidXJzdC1tb2RlIj48cGF0aCBkPSJNMSA1aDJ2MTRIMXptNCAwaDJ2MTRINXptMTcgMEgxMGMtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDEyYy41NSAwIDEtLjQ1IDEtMVY2YzAtLjU1LS40NS0xLTEtMXpNMTEgMTdsMi41LTMuMTVMMTUuMjkgMTZsMi41LTMuMjJMMjEgMTdIMTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2FtZXJhIj48cGF0aCBkPSJNOS40IDEwLjVsNC43Ny04LjI2QzEzLjQ3IDIuMDkgMTIuNzUgMiAxMiAyYy0yLjQgMC00LjYuODUtNi4zMiAyLjI1bDMuNjYgNi4zNS4wNi0uMXpNMjEuNTQgOWMtLjkyLTIuOTItMy4xNS01LjI2LTYtNi4zNEwxMS44OCA5aDkuNjZ6bS4yNiAxaC03LjQ5bC4yOS41IDQuNzYgOC4yNUMyMSAxNi45NyAyMiAxNC42MSAyMiAxMmMwLS42OS0uMDctMS4zNS0uMi0yek04LjU0IDEybC0zLjktNi43NUMzLjAxIDcuMDMgMiA5LjM5IDIgMTJjMCAuNjkuMDcgMS4zNS4yIDJoNy40OWwtMS4xNS0yem0tNi4wOCAzYy45MiAyLjkyIDMuMTUgNS4yNiA2IDYuMzRMMTIuMTIgMTVIMi40NnptMTEuMjcgMGwtMy45IDYuNzZjLjcuMTUgMS40Mi4yNCAyLjE3LjI0IDIuNCAwIDQuNi0uODUgNi4zMi0yLjI1bC0zLjY2LTYuMzUtLjkzIDEuNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjYW1lcmEtYWx0Ij48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzLjIiPjwvY2lyY2xlPjxwYXRoIGQ9Ik05IDJMNy4xNyA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMmgtMy4xN0wxNSAySDl6bTMgMTVjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNhbWVyYS1mcm9udCI+PHBhdGggZD0iTTEwIDIwSDV2Mmg1djJsMy0zLTMtM3Yyem00IDB2Mmg1di0yaC01ek0xMiA4YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0xLjk5LjktMS45OSAyUzEwLjkgOCAxMiA4em01LThIN0M1LjkgMCA1IC45IDUgMnYxNGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjJjMC0xLjEtLjktMi0yLTJ6TTcgMmgxMHYxMC41YzAtMS42Ny0zLjMzLTIuNS01LTIuNXMtNSAuODMtNSAyLjVWMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjYW1lcmEtcmVhciI+PHBhdGggZD0iTTEwIDIwSDV2Mmg1djJsMy0zLTMtM3Yyem00IDB2Mmg1di0yaC01em0zLTIwSDdDNS45IDAgNSAuOSA1IDJ2MTRjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYyYzAtMS4xLS45LTItMi0yem0tNSA2Yy0xLjExIDAtMi0uOS0yLTJzLjg5LTIgMS45OS0yIDIgLjkgMiAyQzE0IDUuMSAxMy4xIDYgMTIgNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjYW1lcmEtcm9sbCI+PHBhdGggZD0iTTE0IDVjMC0xLjEtLjktMi0yLTJoLTFWMmMwLS41NS0uNDUtMS0xLTFINmMtLjU1IDAtMSAuNDUtMSAxdjFINGMtMS4xIDAtMiAuOS0yIDJ2MTVjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yaDhWNWgtOHptLTIgMTNoLTJ2LTJoMnYyem0wLTloLTJWN2gydjJ6bTQgOWgtMnYtMmgydjJ6bTAtOWgtMlY3aDJ2MnptNCA5aC0ydi0yaDJ2MnptMC05aC0yVjdoMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNlbnRlci1mb2N1cy1zdHJvbmciPjxwYXRoIGQ9Ik0xMiA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptLTcgN0gzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6TTUgNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ2NGgyVjV6bTE0LTJoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yem0wIDE2aC00djJoNGMxLjEgMCAyLS45IDItMnYtNGgtMnY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNlbnRlci1mb2N1cy13ZWFrIj48cGF0aCBkPSJNNSAxNUgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6TTUgNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ2NGgyVjV6bTE0LTJoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yem0wIDE2aC00djJoNGMxLjEgMCAyLS45IDItMnYtNGgtMnY0ek0xMiA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCA2Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb2xsZWN0aW9ucyI+PHBhdGggZD0iTTIyIDE2VjRjMC0xLjEtLjktMi0yLTJIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMnptLTExLTRsMi4wMyAyLjcxTDE2IDExbDQgNUg4bDMtNHpNMiA2djE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2SDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29sbGVjdGlvbnMtYm9va21hcmsiPjxwYXRoIGQ9Ik00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnptMTYtNEg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTBsLTIuNS0xLjVMMTUgMTJWNGg1djh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29sb3ItbGVucyI+PHBhdGggZD0iTTEyIDNjLTQuOTcgMC05IDQuMDMtOSA5czQuMDMgOSA5IDljLjgzIDAgMS41LS42NyAxLjUtMS41IDAtLjM5LS4xNS0uNzQtLjM5LTEuMDEtLjIzLS4yNi0uMzgtLjYxLS4zOC0uOTkgMC0uODMuNjctMS41IDEuNS0xLjVIMTZjMi43NiAwIDUtMi4yNCA1LTUgMC00LjQyLTQuMDMtOC05LTh6bS01LjUgOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgOSA2LjUgOSA4IDkuNjcgOCAxMC41IDcuMzMgMTIgNi41IDEyem0zLTRDOC42NyA4IDggNy4zMyA4IDYuNVM4LjY3IDUgOS41IDVzMS41LjY3IDEuNSAxLjVTMTAuMzMgOCA5LjUgOHptNSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTMuNjcgNSAxNC41IDVzMS41LjY3IDEuNSAxLjVTMTUuMzMgOCAxNC41IDh6bTMgNGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzE2LjY3IDkgMTcuNSA5czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb2xvcml6ZSI+PHBhdGggZD0iTTIwLjcxIDUuNjNsLTIuMzQtMi4zNGMtLjM5LS4zOS0xLjAyLS4zOS0xLjQxIDBsLTMuMTIgMy4xMi0xLjkzLTEuOTEtMS40MSAxLjQxIDEuNDIgMS40MkwzIDE2LjI1VjIxaDQuNzVsOC45Mi04LjkyIDEuNDIgMS40MiAxLjQxLTEuNDEtMS45Mi0xLjkyIDMuMTItMy4xMmMuNC0uNC40LTEuMDMuMDEtMS40MnpNNi45MiAxOUw1IDE3LjA4bDguMDYtOC4wNiAxLjkyIDEuOTJMNi45MiAxOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb21wYXJlIj48cGF0aCBkPSJNMTAgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDV2MmgyVjFoLTJ2MnptMCAxNUg1bDUtNnY2em05LTE1aC01djJoNXYxM2wtNS02djloNWMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNvbnRyb2wtcG9pbnQiPjxwYXRoIGQ9Ik0xMyA3aC0ydjRIN3YyaDR2NGgydi00aDR2LTJoLTRWN3ptLTEtNUM2LjQ5IDIgMiA2LjQ5IDIgMTJzNC40OSAxMCAxMCAxMCAxMC00LjQ5IDEwLTEwUzE3LjUxIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29udHJvbC1wb2ludC1kdXBsaWNhdGUiPjxwYXRoIGQ9Ik0xNiA4aC0ydjNoLTN2MmgzdjNoMnYtM2gzdi0yaC0zek0yIDEyYzAtMi43OSAxLjY0LTUuMiA0LjAxLTYuMzJWMy41MkMyLjUyIDQuNzYgMCA4LjA5IDAgMTJzMi41MiA3LjI0IDYuMDEgOC40OHYtMi4xNkMzLjY0IDE3LjIgMiAxNC43OSAyIDEyem0xMy05Yy00Ljk2IDAtOSA0LjA0LTkgOXM0LjA0IDkgOSA5IDktNC4wNCA5LTktNC4wNC05LTktOXptMCAxNmMtMy44NiAwLTctMy4xNC03LTdzMy4xNC03IDctNyA3IDMuMTQgNyA3LTMuMTQgNy03IDd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JvcCI+PHBhdGggZD0iTTE3IDE1aDJWN2MwLTEuMS0uOS0yLTItMkg5djJoOHY4ek03IDE3VjFINXY0SDF2Mmg0djEwYzAgMS4xLjkgMiAyIDJoMTB2NGgydi00aDR2LTJIN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJjcm9wLTE2LTkiPjxwYXRoIGQ9Ik0xOSA2SDVjLTEuMSAwLTIgLjktMiAydjhjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEwSDVWOGgxNHY4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtMy0yIj48cGF0aCBkPSJNMTkgNEg1Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINVY2aDE0djEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtNS00Ij48cGF0aCBkPSJNMTkgNUg1Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTJINVY3aDE0djEweiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtNy01Ij48cGF0aCBkPSJNMTkgN0g1Yy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWOWMwLTEuMS0uOS0yLTItMnptMCA4SDVWOWgxNHY2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtZGluIj48cGF0aCBkPSJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtZnJlZSI+PHBhdGggZD0iTTMgNXY0aDJWNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ6bTIgMTBIM3Y0YzAgMS4xLjkgMiAyIDJoNHYtMkg1di00em0xNCA0aC00djJoNGMxLjEgMCAyLS45IDItMnYtNGgtMnY0em0wLTE2aC00djJoNHY0aDJWNWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjcm9wLWxhbmRzY2FwZSI+PHBhdGggZD0iTTE5IDVINWMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDEySDVWN2gxNHYxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJjcm9wLW9yaWdpbmFsIj48cGF0aCBkPSJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0em0tNS4wNC02LjcxbC0yLjc1IDMuNTQtMS45Ni0yLjM2TDYuNSAxN2gxMWwtMy41NC00LjcxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtcG9ydHJhaXQiPjxwYXRoIGQ9Ik0xNyAzSDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg3VjVoMTB2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JvcC1yb3RhdGUiPjxwYXRoIGQ9Ik03LjQ3IDIxLjQ5QzQuMiAxOS45MyAxLjg2IDE2Ljc2IDEuNSAxM0gwYy41MSA2LjE2IDUuNjYgMTEgMTEuOTUgMTEgLjIzIDAgLjQ0LS4wMi42Ni0uMDNMOC44IDIwLjE1bC0xLjMzIDEuMzR6TTEyLjA1IDBjLS4yMyAwLS40NC4wMi0uNjYuMDRsMy44MSAzLjgxIDEuMzMtMS4zM0MxOS44IDQuMDcgMjIuMTQgNy4yNCAyMi41IDExSDI0Yy0uNTEtNi4xNi01LjY2LTExLTExLjk1LTExek0xNiAxNGgyVjhjMC0xLjExLS45LTItMi0yaC02djJoNnY2em0tOCAyVjRINnYySDR2MmgydjhjMCAxLjEuODkgMiAyIDJoOHYyaDJ2LTJoMnYtMkg4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3Atc3F1YXJlIj48cGF0aCBkPSJNMTggNEg2Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINlY2aDEydjEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRlaGF6ZSI+PHBhdGggZD0iTTIgMTUuNXYyaDIwdi0ySDJ6bTAtNXYyaDIwdi0ySDJ6bTAtNXYyaDIwdi0ySDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZGV0YWlscyI+PHBhdGggZD0iTTMgNGw5IDE2IDktMTZIM3ptMy4zOCAyaDExLjI1TDEyIDE2IDYuMzggNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJlZGl0Ij48cGF0aCBkPSJNMyAxNy4yNVYyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NUwzIDE3LjI1ek0yMC43MSA3LjA0Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFsLTIuMzQtMi4zNGMtLjM5LS4zOS0xLjAyLS4zOS0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV4cG9zdXJlIj48cGF0aCBkPSJNMTUgMTd2Mmgydi0yaDJ2LTJoLTJ2LTJoLTJ2MmgtMnYyaDJ6bTUtMTVINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek01IDVoNnYySDVWNXptMTUgMTVINEwyMCA0djE2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV4cG9zdXJlLW5lZy0xIj48cGF0aCBkPSJNNCAxMXYyaDh2LTJINHptMTUgN2gtMlY3LjM4TDE0IDguNFY2LjdMMTguNyA1aC4zdjEzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV4cG9zdXJlLW5lZy0yIj48cGF0aCBkPSJNMTUuMDUgMTYuMjlsMi44Ni0zLjA3Yy4zOC0uMzkuNzItLjc5IDEuMDQtMS4xOC4zMi0uMzkuNTktLjc4LjgyLTEuMTcuMjMtLjM5LjQxLS43OC41NC0xLjE3cy4xOS0uNzkuMTktMS4xOGMwLS41My0uMDktMS4wMi0uMjctMS40Ni0uMTgtLjQ0LS40NC0uODEtLjc4LTEuMTEtLjM0LS4zMS0uNzctLjU0LTEuMjYtLjcxLS41MS0uMTYtMS4wOC0uMjQtMS43Mi0uMjQtLjY5IDAtMS4zMS4xMS0xLjg1LjMyLS41NC4yMS0xIC41MS0xLjM2Ljg4LS4zNy4zNy0uNjUuOC0uODQgMS4zLS4xOC40Ny0uMjcuOTctLjI4IDEuNWgyLjE0Yy4wMS0uMzEuMDUtLjYuMTMtLjg3LjA5LS4yOS4yMy0uNTQuNC0uNzUuMTgtLjIxLjQxLS4zNy42OC0uNDkuMjctLjEyLjYtLjE4Ljk2LS4xOC4zMSAwIC41OC4wNS44MS4xNS4yMy4xLjQzLjI1LjU5LjQzLjE2LjE4LjI4LjQuMzcuNjUuMDguMjUuMTMuNTIuMTMuODEgMCAuMjItLjAzLjQzLS4wOC42NS0uMDYuMjItLjE1LjQ1LS4yOS43LS4xNC4yNS0uMzIuNTMtLjU2LjgzLS4yMy4zLS41Mi42NS0uODggMS4wM2wtNC4xNyA0LjU1VjE4SDIxdi0xLjcxaC01Ljk1ek0yIDExdjJoOHYtMkgyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV4cG9zdXJlLXBsdXMtMSI+PHBhdGggZD0iTTEwIDdIOHY0SDR2Mmg0djRoMnYtNGg0di0yaC00Vjd6bTEwIDExaC0yVjcuMzhMMTUgOC40VjYuN0wxOS43IDVoLjN2MTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXhwb3N1cmUtcGx1cy0yIj48cGF0aCBkPSJNMTYuMDUgMTYuMjlsMi44Ni0zLjA3Yy4zOC0uMzkuNzItLjc5IDEuMDQtMS4xOC4zMi0uMzkuNTktLjc4LjgyLTEuMTcuMjMtLjM5LjQxLS43OC41NC0xLjE3LjEzLS4zOS4xOS0uNzkuMTktMS4xOCAwLS41My0uMDktMS4wMi0uMjctMS40Ni0uMTgtLjQ0LS40NC0uODEtLjc4LTEuMTEtLjM0LS4zMS0uNzctLjU0LTEuMjYtLjcxLS41MS0uMTYtMS4wOC0uMjQtMS43Mi0uMjQtLjY5IDAtMS4zMS4xMS0xLjg1LjMyLS41NC4yMS0xIC41MS0xLjM2Ljg4LS4zNy4zNy0uNjUuOC0uODQgMS4zLS4xOC40Ny0uMjcuOTctLjI4IDEuNWgyLjE0Yy4wMS0uMzEuMDUtLjYuMTMtLjg3LjA5LS4yOS4yMy0uNTQuNC0uNzUuMTgtLjIxLjQxLS4zNy42OC0uNDkuMjctLjEyLjYtLjE4Ljk2LS4xOC4zMSAwIC41OC4wNS44MS4xNS4yMy4xLjQzLjI1LjU5LjQzLjE2LjE4LjI4LjQuMzcuNjUuMDguMjUuMTMuNTIuMTMuODEgMCAuMjItLjAzLjQzLS4wOC42NS0uMDYuMjItLjE1LjQ1LS4yOS43LS4xNC4yNS0uMzIuNTMtLjU2LjgzLS4yMy4zLS41Mi42NS0uODggMS4wM2wtNC4xNyA0LjU1VjE4SDIydi0xLjcxaC01Ljk1ek04IDdINnY0SDJ2Mmg0djRoMnYtNGg0di0ySDhWN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJleHBvc3VyZS16ZXJvIj48cGF0aCBkPSJNMTYuMTQgMTIuNWMwIDEtLjEgMS44NS0uMyAyLjU1LS4yLjctLjQ4IDEuMjctLjgzIDEuNy0uMzYuNDQtLjc5Ljc1LTEuMy45NS0uNTEuMi0xLjA3LjMtMS43LjMtLjYyIDAtMS4xOC0uMS0xLjY5LS4zLS41MS0uMi0uOTUtLjUxLTEuMzEtLjk1LS4zNi0uNDQtLjY1LTEuMDEtLjg1LTEuNy0uMi0uNy0uMy0xLjU1LS4zLTIuNTV2LTIuMDRjMC0xIC4xLTEuODUuMy0yLjU1LjItLjcuNDgtMS4yNi44NC0xLjY5LjM2LS40My44LS43NCAxLjMxLS45M0MxMC44MSA1LjEgMTEuMzggNSAxMiA1Yy42MyAwIDEuMTkuMSAxLjcuMjkuNTEuMTkuOTUuNSAxLjMxLjkzLjM2LjQzLjY0Ljk5Ljg0IDEuNjkuMi43LjMgMS41NC4zIDIuNTV2Mi4wNHptLTIuMTEtMi4zNmMwLS42NC0uMDUtMS4xOC0uMTMtMS42Mi0uMDktLjQ0LS4yMi0uNzktLjQtMS4wNi0uMTctLjI3LS4zOS0uNDYtLjY0LS41OC0uMjUtLjEzLS41NC0uMTktLjg2LS4xOS0uMzIgMC0uNjEuMDYtLjg2LjE4cy0uNDcuMzEtLjY0LjU4Yy0uMTcuMjctLjMxLjYyLS40IDEuMDZzLS4xMy45OC0uMTMgMS42MnYyLjY3YzAgLjY0LjA1IDEuMTguMTQgMS42Mi4wOS40NS4yMy44MS40IDEuMDlzLjM5LjQ4LjY0LjYxLjU0LjE5Ljg3LjE5Yy4zMyAwIC42Mi0uMDYuODctLjE5cy40Ni0uMzMuNjMtLjYxYy4xNy0uMjguMy0uNjQuMzktMS4wOS4wOS0uNDUuMTMtLjk5LjEzLTEuNjJ2LTIuNjZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyIj48cGF0aCBkPSJNMTUuOTYgMTAuMjlsLTIuNzUgMy41NC0xLjk2LTIuMzZMOC41IDE1aDExbC0zLjU0LTQuNzF6TTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTEiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTEgMTBoMlY1aC00djJoMnY4em03LTE0SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTIiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tNC00aC00di0yaDJjMS4xIDAgMi0uODkgMi0yVjdjMC0xLjExLS45LTItMi0yaC00djJoNHYyaC0yYy0xLjEgMC0yIC44OS0yIDJ2NGg2di0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci0zIj48cGF0aCBkPSJNMjEgMUg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0ek0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTQgOHYtMS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNS44MyAwIDEuNS0uNjcgMS41LTEuNVY3YzAtMS4xMS0uOS0yLTItMmgtNHYyaDR2MmgtMnYyaDJ2MmgtNHYyaDRjMS4xIDAgMi0uODkgMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci00Ij48cGF0aCBkPSJNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTEyIDEwaDJWNWgtMnY0aC0yVjVoLTJ2Nmg0djR6bTYtMTRIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWx0ZXItNSI+PHBhdGggZD0iTTIxIDFIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHpNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTE0IDh2LTJjMC0xLjExLS45LTItMi0yaC0yVjdoNFY1aC02djZoNHYyaC00djJoNGMxLjEgMCAyLS44OSAyLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTYiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tOC0yaDJjMS4xIDAgMi0uODkgMi0ydi0yYzAtMS4xMS0uOS0yLTItMmgtMlY3aDRWNWgtNGMtMS4xIDAtMiAuODktMiAydjZjMCAxLjExLjkgMiAyIDJ6bTAtNGgydjJoLTJ2LTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTciPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tOC0ybDQtOFY1aC02djJoNGwtNCA4aDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTgiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tOC0yaDJjMS4xIDAgMi0uODkgMi0ydi0xLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41LjgzIDAgMS41LS42NyAxLjUtMS41VjdjMC0xLjExLS45LTItMi0yaC0yYy0xLjEgMC0yIC44OS0yIDJ2MS41YzAgLjgzLjY3IDEuNSAxLjUgMS41LS44MyAwLTEuNS42Ny0xLjUgMS41VjEzYzAgMS4xMS45IDIgMiAyem0wLThoMnYyaC0yVjd6bTAgNGgydjJoLTJ2LTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTkiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0ek0xNSA1aC0yYy0xLjEgMC0yIC44OS0yIDJ2MmMwIDEuMTEuOSAyIDIgMmgydjJoLTR2Mmg0YzEuMSAwIDItLjg5IDItMlY3YzAtMS4xMS0uOS0yLTItMnptMCA0aC0yVjdoMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci05LXBsdXMiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTEgN1Y4YzAtMS4xMS0uOS0yLTItMmgtMWMtMS4xIDAtMiAuODktMiAydjFjMCAxLjExLjkgMiAyIDJoMXYxSDl2MmgzYzEuMSAwIDItLjg5IDItMnptLTMtM1Y4aDF2MWgtMXptMTAtOEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgOGgtMlY3aC0ydjJoLTJ2MmgydjJoMnYtMmgydjZIN1YzaDE0djZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLWItYW5kLXciPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNmwtNy04djhINWw3LThWNWg3djE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci1jZW50ZXItZm9jdXMiPjxwYXRoIGQ9Ik01IDE1SDN2NGMwIDEuMS45IDIgMiAyaDR2LTJINXYtNHpNNSA1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnY0aDJWNXptMTQtMmgtNHYyaDR2NGgyVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6TTEyIDljLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci1kcmFtYSI+PHBhdGggZD0iTTE5LjM1IDEwLjA0QzE4LjY3IDYuNTkgMTUuNjQgNCAxMiA0IDkuMTEgNCA2LjYxIDUuNjQgNS4zNiA4LjA0IDIuMzUgOC4zNiAwIDEwLjkgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTkgMThINmMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNCA0IDEuNzkgNCA0aDJjMC0yLjc2LTEuODYtNS4wOC00LjQtNS43OEM4LjYxIDYuODggMTAuMiA2IDEyIDZjMy4wMyAwIDUuNSAyLjQ3IDUuNSA1LjV2LjVIMTljMS42NSAwIDMgMS4zNSAzIDNzLTEuMzUgMy0zIDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLWZyYW1lcyI+PHBhdGggZD0iTTIwIDRoLTRsLTQtNC00IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE2SDRWNmg0LjUybDMuNTItMy41TDE1LjUyIDZIMjB2MTR6TTE4IDhINnYxMGgxMiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci1oZHIiPjxwYXRoIGQ9Ik0xNCA2bC0zLjc1IDUgMi44NSAzLjgtMS42IDEuMkM5LjgxIDEzLjc1IDcgMTAgNyAxMGwtNiA4aDIyTDE0IDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLW5vbmUiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci10aWx0LXNoaWZ0Ij48cGF0aCBkPSJNMTEgNC4wN1YyLjA1Yy0yLjAxLjItMy44NCAxLTUuMzIgMi4yMUw3LjEgNS42OWMxLjExLS44NiAyLjQ0LTEuNDQgMy45LTEuNjJ6bTcuMzIuMTlDMTYuODQgMy4wNSAxNS4wMSAyLjI1IDEzIDIuMDV2Mi4wMmMxLjQ2LjE4IDIuNzkuNzYgMy45IDEuNjJsMS40Mi0xLjQzek0xOS45MyAxMWgyLjAyYy0uMi0yLjAxLTEtMy44NC0yLjIxLTUuMzJMMTguMzEgNy4xYy44NiAxLjExIDEuNDQgMi40NCAxLjYyIDMuOXpNNS42OSA3LjFMNC4yNiA1LjY4QzMuMDUgNy4xNiAyLjI1IDguOTkgMi4wNSAxMWgyLjAyYy4xOC0xLjQ2Ljc2LTIuNzkgMS42Mi0zLjl6TTQuMDcgMTNIMi4wNWMuMiAyLjAxIDEgMy44NCAyLjIxIDUuMzJsMS40My0xLjQzYy0uODYtMS4xLTEuNDQtMi40My0xLjYyLTMuODl6TTE1IDEyYzAtMS42Ni0xLjM0LTMtMy0zcy0zIDEuMzQtMyAzIDEuMzQgMyAzIDMgMy0xLjM0IDMtM3ptMy4zMSA0LjlsMS40MyAxLjQzYzEuMjEtMS40OCAyLjAxLTMuMzIgMi4yMS01LjMyaC0yLjAyYy0uMTggMS40NS0uNzYgMi43OC0xLjYyIDMuODl6TTEzIDE5LjkzdjIuMDJjMi4wMS0uMiAzLjg0LTEgNS4zMi0yLjIxbC0xLjQzLTEuNDNjLTEuMS44Ni0yLjQzIDEuNDQtMy44OSAxLjYyem0tNy4zMi0uMTlDNy4xNiAyMC45NSA5IDIxLjc1IDExIDIxLjk1di0yLjAyYy0xLjQ2LS4xOC0yLjc5LS43Ni0zLjktMS42MmwtMS40MiAxLjQzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci12aW50YWdlIj48cGF0aCBkPSJNMTguNyAxMi40Yy0uMjgtLjE2LS41Ny0uMjktLjg2LS40LjI5LS4xMS41OC0uMjQuODYtLjQgMS45Mi0xLjExIDIuOTktMy4xMiAzLTUuMTktMS43OS0xLjAzLTQuMDctMS4xMS02IDAtLjI4LjE2LS41NC4zNS0uNzguNTQuMDUtLjMxLjA4LS42My4wOC0uOTUgMC0yLjIyLTEuMjEtNC4xNS0zLTUuMTlDMTAuMjEgMS44NSA5IDMuNzggOSA2YzAgLjMyLjAzLjY0LjA4Ljk1LS4yNC0uMi0uNS0uMzktLjc4LS41NS0xLjkyLTEuMTEtNC4yLTEuMDMtNiAwIDAgMi4wNyAxLjA3IDQuMDggMyA1LjE5LjI4LjE2LjU3LjI5Ljg2LjQtLjI5LjExLS41OC4yNC0uODYuNC0xLjkyIDEuMTEtMi45OSAzLjEyLTMgNS4xOSAxLjc5IDEuMDMgNC4wNyAxLjExIDYgMCAuMjgtLjE2LjU0LS4zNS43OC0uNTQtLjA1LjMyLS4wOC42NC0uMDguOTYgMCAyLjIyIDEuMjEgNC4xNSAzIDUuMTkgMS43OS0xLjA0IDMtMi45NyAzLTUuMTkgMC0uMzItLjAzLS42NC0uMDgtLjk1LjI0LjIuNS4zOC43OC41NCAxLjkyIDEuMTEgNC4yIDEuMDMgNiAwLS4wMS0yLjA3LTEuMDgtNC4wOC0zLTUuMTl6TTEyIDE2Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00IDQgMS43OSA0IDQtMS43OSA0LTQgNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmbGFyZSI+PHBhdGggZD0iTTcgMTFIMXYyaDZ2LTJ6bTIuMTctMy4yNEw3LjA1IDUuNjQgNS42NCA3LjA1bDIuMTIgMi4xMiAxLjQxLTEuNDF6TTEzIDFoLTJ2NmgyVjF6bTUuMzYgNi4wNWwtMS40MS0xLjQxLTIuMTIgMi4xMiAxLjQxIDEuNDEgMi4xMi0yLjEyek0xNyAxMXYyaDZ2LTJoLTZ6bS01LTJjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zem0yLjgzIDcuMjRsMi4xMiAyLjEyIDEuNDEtMS40MS0yLjEyLTIuMTItMS40MSAxLjQxem0tOS4xOS43MWwxLjQxIDEuNDEgMi4xMi0yLjEyLTEuNDEtMS40MS0yLjEyIDIuMTJ6TTExIDIzaDJ2LTZoLTJ2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmbGFzaC1hdXRvIj48cGF0aCBkPSJNMyAydjEyaDN2OWw3LTEySDlsNC05SDN6bTE2IDBoLTJsLTMuMiA5aDEuOWwuNy0yaDMuMmwuNyAyaDEuOUwxOSAyem0tMi4xNSA1LjY1TDE4IDRsMS4xNSAzLjY1aC0yLjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxhc2gtb2ZmIj48cGF0aCBkPSJNMy4yNyAzTDIgNC4yN2w1IDVWMTNoM3Y5bDMuNTgtNi4xNEwxNy43MyAyMCAxOSAxOC43MyAzLjI3IDN6TTE3IDEwaC00bDQtOEg3djIuMThsOC40NiA4LjQ2TDE3IDEweiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZsYXNoLW9uIj48cGF0aCBkPSJNNyAydjExaDN2OWw3LTEyaC00bDQtOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmbGlwIj48cGF0aCBkPSJNMTUgMjFoMnYtMmgtMnYyem00LTEyaDJWN2gtMnYyek0zIDV2MTRjMCAxLjEuOSAyIDIgMmg0di0ySDVWNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ6bTE2LTJ2MmgyYzAtMS4xLS45LTItMi0yem0tOCAyMGgyVjFoLTJ2MjJ6bTgtNmgydi0yaC0ydjJ6TTE1IDVoMlYzaC0ydjJ6bTQgOGgydi0yaC0ydjJ6bTAgOGMxLjEgMCAyLS45IDItMmgtMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImdyYWRpZW50Ij48cGF0aCBkPSJNMTEgOWgydjJoLTJ6bS0yIDJoMnYySDl6bTQgMGgydjJoLTJ6bTItMmgydjJoLTJ6TTcgOWgydjJIN3ptMTItNkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTkgMThIN3YtMmgydjJ6bTQgMGgtMnYtMmgydjJ6bTQgMGgtMnYtMmgydjJ6bTItN2gtMnYyaDJ2MmgtMnYtMmgtMnYyaC0ydi0yaC0ydjJIOXYtMkg3djJINXYtMmgydi0ySDVWNWgxNHY2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImdyYWluIj48cGF0aCBkPSJNMTAgMTJjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yek02IDhjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wIDhjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0xMi04YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptLTQgOGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTQtNGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bS00LTRjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0tNC00Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJncmlkLW9mZiI+PHBhdGggZD0iTTggNHYxLjQ1bDIgMlY0aDR2NGgtMy40NWwyIDJIMTR2MS40NWwyIDJWMTBoNHY0aC0zLjQ1bDIgMkgyMHYxLjQ1bDIgMlY0YzAtMS4xLS45LTItMi0ySDQuNTVsMiAySDh6bTggMGg0djRoLTRWNHpNMS4yNyAxLjI3TDAgMi41NWwyIDJWMjBjMCAxLjEuOSAyIDIgMmgxNS40NmwyIDIgMS4yNy0xLjI3TDEuMjcgMS4yN3pNMTAgMTIuNTVMMTEuNDUgMTRIMTB2LTEuNDV6bS02LTZMNS40NSA4SDRWNi41NXpNOCAyMEg0di00aDR2NHptMC02SDR2LTRoMy40NWwuNTUuNTVWMTR6bTYgNmgtNHYtNGgzLjQ1bC41NS41NFYyMHptMiAwdi0xLjQ2TDE3LjQ2IDIwSDE2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImdyaWQtb24iPjxwYXRoIGQ9Ik0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNOCAyMEg0di00aDR2NHptMC02SDR2LTRoNHY0em0wLTZINFY0aDR2NHptNiAxMmgtNHYtNGg0djR6bTAtNmgtNHYtNGg0djR6bTAtNmgtNFY0aDR2NHptNiAxMmgtNHYtNGg0djR6bTAtNmgtNHYtNGg0djR6bTAtNmgtNFY0aDR2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJoZHItb2ZmIj48cGF0aCBkPSJNMTcuNSAxNXYtMmgxLjFsLjkgMkgyMWwtLjktMi4xYy41LS4yLjktLjguOS0xLjR2LTFjMC0uOC0uNy0xLjUtMS41LTEuNUgxNnY0LjlsMS4xIDEuMWguNHptMC00LjVoMnYxaC0ydi0xem0tNC41IDB2LjRsMS41IDEuNXYtMS45YzAtLjgtLjctMS41LTEuNS0xLjVoLTEuOWwxLjUgMS41aC40em0tMy41LTFsLTctNy0xLjEgMUw2LjkgOWgtLjR2MmgtMlY5SDN2NmgxLjV2LTIuNWgyVjE1SDh2LTQuOWwxLjUgMS41VjE1aDMuNGw3LjYgNy42IDEuMS0xLjEtMTIuMS0xMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJoZHItb24iPjxwYXRoIGQ9Ik0yMSAxMS41di0xYzAtLjgtLjctMS41LTEuNS0xLjVIMTZ2NmgxLjV2LTJoMS4xbC45IDJIMjFsLS45LTIuMWMuNS0uMy45LS44LjktMS40em0tMS41IDBoLTJ2LTFoMnYxem0tMTMtLjVoLTJWOUgzdjZoMS41di0yLjVoMlYxNUg4VjlINi41djJ6TTEzIDlIOS41djZIMTNjLjggMCAxLjUtLjcgMS41LTEuNXYtM2MwLS44LS43LTEuNS0xLjUtMS41em0wIDQuNWgtMnYtM2gydjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaGRyLXN0cm9uZyI+PHBhdGggZD0iTTE3IDZjLTMuMzEgMC02IDIuNjktNiA2czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02ek01IDhjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDZjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imhkci13ZWFrIj48cGF0aCBkPSJNNSA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMTItMmMtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNiA2LTIuNjkgNi02LTIuNjktNi02LTZ6bTAgMTBjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNC0xLjc5IDQtNCA0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImhlYWxpbmciPjxwYXRoIGQ9Ik0xNy43MyAxMi4wMmwzLjk4LTMuOThjLjM5LS4zOS4zOS0xLjAyIDAtMS40MWwtNC4zNC00LjM0Yy0uMzktLjM5LTEuMDItLjM5LTEuNDEgMGwtMy45OCAzLjk4TDggMi4yOUM3LjggMi4xIDcuNTUgMiA3LjI5IDJjLS4yNSAwLS41MS4xLS43LjI5TDIuMjUgNi42M2MtLjM5LjM5LS4zOSAxLjAyIDAgMS40MWwzLjk4IDMuOThMMi4yNSAxNmMtLjM5LjM5LS4zOSAxLjAyIDAgMS40MWw0LjM0IDQuMzRjLjM5LjM5IDEuMDIuMzkgMS40MSAwbDMuOTgtMy45OCAzLjk4IDMuOThjLjIuMi40NS4yOS43MS4yOS4yNiAwIC41MS0uMS43MS0uMjlsNC4zNC00LjM0Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFsLTMuOTktMy45OHpNMTIgOWMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0tNC43MSAxLjk2TDMuNjYgNy4zNGwzLjYzLTMuNjMgMy42MiAzLjYyLTMuNjIgMy42M3pNMTAgMTNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMiAyYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTItNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0yLjY2IDkuMzRsLTMuNjMtMy42MiAzLjYzLTMuNjMgMy42MiAzLjYyLTMuNjIgMy42M3oiPjwvcGF0aD48L2c+CjxnIGlkPSJpbWFnZSI+PHBhdGggZD0iTTIxIDE5VjVjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnpNOC41IDEzLjVsMi41IDMuMDFMMTQuNSAxMmw0LjUgNkg1bDMuNS00LjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaW1hZ2UtYXNwZWN0LXJhdGlvIj48cGF0aCBkPSJNMTYgMTBoLTJ2Mmgydi0yem0wIDRoLTJ2Mmgydi0yem0tOC00SDZ2Mmgydi0yem00IDBoLTJ2Mmgydi0yem04LTZINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDRWNmgxNnYxMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJpc28iPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNNS41IDcuNWgydi0ySDl2MmgyVjlIOXYySDcuNVY5aC0yVjcuNXpNMTkgMTlINUwxOSA1djE0em0tMi0ydi0xLjVoLTVWMTdoNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJsYW5kc2NhcGUiPjxwYXRoIGQ9Ik0xNCA2bC0zLjc1IDUgMi44NSAzLjgtMS42IDEuMkM5LjgxIDEzLjc1IDcgMTAgNyAxMGwtNiA4aDIyTDE0IDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibGVhay1hZGQiPjxwYXRoIGQ9Ik02IDNIM3YzYzEuNjYgMCAzLTEuMzQgMy0zem04IDBoLTJjMCA0Ljk3LTQuMDMgOS05IDl2MmM2LjA4IDAgMTEtNC45MyAxMS0xMXptLTQgMEg4YzAgMi43Ni0yLjI0IDUtNSA1djJjMy44NyAwIDctMy4xMyA3LTd6bTAgMThoMmMwLTQuOTcgNC4wMy05IDktOXYtMmMtNi4wNyAwLTExIDQuOTMtMTEgMTF6bTggMGgzdi0zYy0xLjY2IDAtMyAxLjM0LTMgM3ptLTQgMGgyYzAtMi43NiAyLjI0LTUgNS01di0yYy0zLjg3IDAtNyAzLjEzLTcgN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJsZWFrLXJlbW92ZSI+PHBhdGggZD0iTTEwIDNIOGMwIC4zNy0uMDQuNzItLjEyIDEuMDZsMS41OSAxLjU5QzkuODEgNC44NCAxMCAzLjk0IDEwIDN6TTMgNC4yN2wyLjg0IDIuODRDNS4wMyA3LjY3IDQuMDYgOCAzIDh2MmMxLjYxIDAgMy4wOS0uNTUgNC4yNy0xLjQ2TDguNyA5Ljk3QzcuMTQgMTEuMjQgNS4xNiAxMiAzIDEydjJjMi43MSAwIDUuMTktLjk5IDcuMTEtMi42MmwyLjUgMi41QzEwLjk5IDE1LjgxIDEwIDE4LjI5IDEwIDIxaDJjMC0yLjE2Ljc2LTQuMTQgMi4wMy01LjY5bDEuNDMgMS40M0MxNC41NSAxNy45MSAxNCAxOS4zOSAxNCAyMWgyYzAtMS4wNi4zMy0yLjAzLjg5LTIuODRMMTkuNzMgMjEgMjEgMTkuNzMgNC4yNyAzIDMgNC4yN3pNMTQgM2gtMmMwIDEuNS0uMzcgMi45MS0xLjAyIDQuMTZsMS40NiAxLjQ2QzEzLjQyIDYuOTggMTQgNS4wNiAxNCAzem01Ljk0IDEzLjEyYy4zNC0uMDguNjktLjEyIDEuMDYtLjEydi0yYy0uOTQgMC0xLjg0LjE5LTIuNjYuNTJsMS42IDEuNnptLTQuNTYtNC41NmwxLjQ2IDEuNDZDMTguMDkgMTIuMzcgMTkuNSAxMiAyMSAxMnYtMmMtMi4wNiAwLTMuOTguNTgtNS42MiAxLjU2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxlbnMiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxpbmtlZC1jYW1lcmEiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTQiIHI9IjMuMiI+PC9jaXJjbGU+PHBhdGggZD0iTTE2IDMuMzNjMi41OCAwIDQuNjcgMi4wOSA0LjY3IDQuNjdIMjJjMC0zLjMxLTIuNjktNi02LTZ2MS4zM00xNiA2YzEuMTEgMCAyIC44OSAyIDJoMS4zM2MwLTEuODQtMS40OS0zLjMzLTMuMzMtMy4zM1Y2Ij48L3BhdGg+PHBhdGggZD0iTTE3IDljMC0xLjExLS44OS0yLTItMlY0SDlMNy4xNyA2SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOWgtNXptLTUgMTBjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imxvb2tzIj48cGF0aCBkPSJNMTIgMTBjLTMuODYgMC03IDMuMTQtNyA3aDJjMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNWgyYzAtMy44Ni0zLjE0LTctNy03em0wLTRDNS45MyA2IDEgMTAuOTMgMSAxN2gyYzAtNC45NiA0LjA0LTkgOS05czkgNC4wNCA5IDloMmMwLTYuMDctNC45My0xMS0xMS0xMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb29rcy0zIj48cGF0aCBkPSJNMTkuMDEgM2gtMTRjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTQgNy41YzAgLjgzLS42NyAxLjUtMS41IDEuNS44MyAwIDEuNS42NyAxLjUgMS41VjE1YzAgMS4xMS0uOSAyLTIgMmgtNHYtMmg0di0yaC0ydi0yaDJWOWgtNFY3aDRjMS4xIDAgMiAuODkgMiAydjEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb29rcy00Ij48cGF0aCBkPSJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS00IDE0aC0ydi00SDlWN2gydjRoMlY3aDJ2MTB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG9va3MtNSI+PHBhdGggZD0iTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNCA2aC00djJoMmMxLjEgMCAyIC44OSAyIDJ2MmMwIDEuMTEtLjkgMi0yIDJIOXYtMmg0di0ySDlWN2g2djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG9va3MtNiI+PHBhdGggZD0iTTExIDE1aDJ2LTJoLTJ2MnptOC0xMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS00IDZoLTR2MmgyYzEuMSAwIDIgLjg5IDIgMnYyYzAgMS4xMS0uOSAyLTIgMmgtMmMtMS4xIDAtMi0uODktMi0yVjljMC0xLjExLjktMiAyLTJoNHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imxvb2tzLW9uZSI+PHBhdGggZD0iTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNSAxNGgtMlY5aC0yVjdoNHYxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb29rcy10d28iPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTQgOGMwIDEuMTEtLjkgMi0yIDJoLTJ2Mmg0djJIOXYtNGMwLTEuMTEuOS0yIDItMmgyVjlIOVY3aDRjMS4xIDAgMiAuODkgMiAydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG91cGUiPjxwYXRoIGQ9Ik0xMyA3aC0ydjRIN3YyaDR2NGgydi00aDR2LTJoLTRWN3ptLTEtNUM2LjQ5IDIgMiA2LjQ5IDIgMTJzNC40OSAxMCAxMCAxMGg4YzEuMSAwIDItLjkgMi0ydi04YzAtNS41MS00LjQ5LTEwLTEwLTEwem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJtb25vY2hyb21lLXBob3RvcyI+PHBhdGggZD0iTTIwIDVoLTMuMkwxNSAzSDlMNy4yIDVINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDE0aC04di0xYy0yLjggMC01LTIuMi01LTVzMi4yLTUgNS01VjdoOHYxMnptLTMtNmMwLTIuOC0yLjItNS01LTV2MS44YzEuOCAwIDMuMiAxLjQgMy4yIDMuMnMtMS40IDMuMi0zLjIgMy4yVjE4YzIuOCAwIDUtMi4yIDUtNXptLTguMiAwYzAgMS44IDEuNCAzLjIgMy4yIDMuMlY5LjhjLTEuOCAwLTMuMiAxLjQtMy4yIDMuMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJtb3ZpZS1jcmVhdGlvbiI+PHBhdGggZD0iTTE4IDRsMiA0aC0zbC0yLTRoLTJsMiA0aC0zbC0yLTRIOGwyIDRIN0w1IDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGgtNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJtb3ZpZS1maWx0ZXIiPjxwYXRoIGQ9Ik0xOCA0bDIgM2gtM2wtMi0zaC0ybDIgM2gtM2wtMi0zSDhsMiAzSDdMNSA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRoLTR6bS02Ljc1IDExLjI1TDEwIDE4bC0xLjI1LTIuNzVMNiAxNGwyLjc1LTEuMjVMMTAgMTBsMS4yNSAyLjc1TDE0IDE0bC0yLjc1IDEuMjV6bTUuNjktMy4zMUwxNiAxNGwtLjk0LTIuMDZMMTMgMTFsMi4wNi0uOTRMMTYgOGwuOTQgMi4wNkwxOSAxMWwtMi4wNi45NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJtdXNpYy1ub3RlIj48cGF0aCBkPSJNMTIgM3YxMC41NWMtLjU5LS4zNC0xLjI3LS41NS0yLS41NS0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTRWN2g0VjNoLTZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibmF0dXJlIj48cGF0aCBkPSJNMTMgMTYuMTJjMy40Ny0uNDEgNi4xNy0zLjM2IDYuMTctNi45NSAwLTMuODctMy4xMy03LTctN3MtNyAzLjEzLTcgN2MwIDMuNDcgMi41MiA2LjM0IDUuODMgNi44OVYyMEg1djJoMTR2LTJoLTZ2LTMuODh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibmF0dXJlLXBlb3BsZSI+PHBhdGggZD0iTTIyLjE3IDkuMTdjMC0zLjg3LTMuMTMtNy03LTdzLTcgMy4xMy03IDdjMCAzLjQ3IDIuNTIgNi4zNCA1LjgzIDYuODlWMjBINnYtM2gxdi00YzAtLjU1LS40NS0xLTEtMUgzYy0uNTUgMC0xIC40NS0xIDF2NGgxdjVoMTZ2LTJoLTN2LTMuODhjMy40Ny0uNDEgNi4xNy0zLjM2IDYuMTctNi45NXpNNC41IDExYy44MyAwIDEuNS0uNjcgMS41LTEuNVM1LjMzIDggNC41IDggMyA4LjY3IDMgOS41IDMuNjcgMTEgNC41IDExeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im5hdmlnYXRlLWJlZm9yZSI+PHBhdGggZD0iTTE1LjQxIDcuNDFMMTQgNmwtNiA2IDYgNiAxLjQxLTEuNDFMMTAuODMgMTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibmF2aWdhdGUtbmV4dCI+PHBhdGggZD0iTTEwIDZMOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBhbGV0dGUiPjxwYXRoIGQ9Ik0xMiAzYy00Ljk3IDAtOSA0LjAzLTkgOXM0LjAzIDkgOSA5Yy44MyAwIDEuNS0uNjcgMS41LTEuNSAwLS4zOS0uMTUtLjc0LS4zOS0xLjAxLS4yMy0uMjYtLjM4LS42MS0uMzgtLjk5IDAtLjgzLjY3LTEuNSAxLjUtMS41SDE2YzIuNzYgMCA1LTIuMjQgNS01IDAtNC40Mi00LjAzLTgtOS04em0tNS41IDljLS44MyAwLTEuNS0uNjctMS41LTEuNVM1LjY3IDkgNi41IDkgOCA5LjY3IDggMTAuNSA3LjMzIDEyIDYuNSAxMnptMy00QzguNjcgOCA4IDcuMzMgOCA2LjVTOC42NyA1IDkuNSA1czEuNS42NyAxLjUgMS41UzEwLjMzIDggOS41IDh6bTUgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzEzLjY3IDUgMTQuNSA1czEuNS42NyAxLjUgMS41UzE1LjMzIDggMTQuNSA4em0zIDRjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxNi42NyA5IDE3LjUgOXMxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGFub3JhbWEiPjxwYXRoIGQ9Ik0yMyAxOFY2YzAtMS4xLS45LTItMi0ySDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJ6TTguNSAxMi41bDIuNSAzLjAxTDE0LjUgMTFsNC41IDZINWwzLjUtNC41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBhbm9yYW1hLWZpc2gtZXllIj48cGF0aCBkPSJNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ3IDEwLTEwUzE3LjUzIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGFub3JhbWEtaG9yaXpvbnRhbCI+PHBhdGggZD0iTTIwIDYuNTR2MTAuOTFjLTIuNi0uNzctNS4yOC0xLjE2LTgtMS4xNi0yLjcyIDAtNS40LjM5LTggMS4xNlY2LjU0YzIuNi43NyA1LjI4IDEuMTYgOCAxLjE2IDIuNzIuMDEgNS40LS4zOCA4LTEuMTZNMjEuNDMgNGMtLjEgMC0uMi4wMi0uMzEuMDZDMTguMTggNS4xNiAxNS4wOSA1LjcgMTIgNS43Yy0zLjA5IDAtNi4xOC0uNTUtOS4xMi0xLjY0LS4xMS0uMDQtLjIyLS4wNi0uMzEtLjA2LS4zNCAwLS41Ny4yMy0uNTcuNjN2MTQuNzVjMCAuMzkuMjMuNjIuNTcuNjIuMSAwIC4yLS4wMi4zMS0uMDYgMi45NC0xLjEgNi4wMy0xLjY0IDkuMTItMS42NCAzLjA5IDAgNi4xOC41NSA5LjEyIDEuNjQuMTEuMDQuMjEuMDYuMzEuMDYuMzMgMCAuNTctLjIzLjU3LS42M1Y0LjYzYzAtLjQtLjI0LS42My0uNTctLjYzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBhbm9yYW1hLXZlcnRpY2FsIj48cGF0aCBkPSJNMTkuOTQgMjEuMTJjLTEuMS0yLjk0LTEuNjQtNi4wMy0xLjY0LTkuMTIgMC0zLjA5LjU1LTYuMTggMS42NC05LjEyLjA0LS4xMS4wNi0uMjIuMDYtLjMxIDAtLjM0LS4yMy0uNTctLjYzLS41N0g0LjYzYy0uNCAwLS42My4yMy0uNjMuNTcgMCAuMS4wMi4yLjA2LjMxQzUuMTYgNS44MiA1LjcxIDguOTEgNS43MSAxMmMwIDMuMDktLjU1IDYuMTgtMS42NCA5LjEyLS4wNS4xMS0uMDcuMjItLjA3LjMxIDAgLjMzLjIzLjU3LjYzLjU3aDE0Ljc1Yy4zOSAwIC42My0uMjQuNjMtLjU3LS4wMS0uMS0uMDMtLjItLjA3LS4zMXpNNi41NCAyMGMuNzctMi42IDEuMTYtNS4yOCAxLjE2LTggMC0yLjcyLS4zOS01LjQtMS4xNi04aDEwLjkxYy0uNzcgMi42LTEuMTYgNS4yOC0xLjE2IDggMCAyLjcyLjM5IDUuNCAxLjE2IDhINi41NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwYW5vcmFtYS13aWRlLWFuZ2xlIj48cGF0aCBkPSJNMTIgNmMyLjQ1IDAgNC43MS4yIDcuMjkuNjQuNDcgMS43OC43MSAzLjU4LjcxIDUuMzYgMCAxLjc4LS4yNCAzLjU4LS43MSA1LjM2LTIuNTguNDQtNC44NC42NC03LjI5LjY0cy00LjcxLS4yLTcuMjktLjY0QzQuMjQgMTUuNTggNCAxMy43OCA0IDEyYzAtMS43OC4yNC0zLjU4LjcxLTUuMzZDNy4yOSA2LjIgOS41NSA2IDEyIDZtMC0yYy0yLjczIDAtNS4yMi4yNC03Ljk1LjcybC0uOTMuMTYtLjI1LjlDMi4yOSA3Ljg1IDIgOS45MyAyIDEycy4yOSA0LjE1Ljg3IDYuMjJsLjI1Ljg5LjkzLjE2YzIuNzMuNDkgNS4yMi43MyA3Ljk1LjczczUuMjItLjI0IDcuOTUtLjcybC45My0uMTYuMjUtLjg5Yy41OC0yLjA4Ljg3LTQuMTYuODctNi4yM3MtLjI5LTQuMTUtLjg3LTYuMjJsLS4yNS0uODktLjkzLS4xNkMxNy4yMiA0LjI0IDE0LjczIDQgMTIgNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwaG90byI+PHBhdGggZD0iTTIxIDE5VjVjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnpNOC41IDEzLjVsMi41IDMuMDFMMTQuNSAxMmw0LjUgNkg1bDMuNS00LjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGhvdG8tYWxidW0iPjxwYXRoIGQ9Ik0xOCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNNiA0aDV2OGwtMi41LTEuNUw2IDEyVjR6bTAgMTVsMy0zLjg2IDIuMTQgMi41OCAzLTMuODZMMTggMTlINnoiPjwvcGF0aD48L2c+CjxnIGlkPSJwaG90by1jYW1lcmEiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMuMiI+PC9jaXJjbGU+PHBhdGggZD0iTTkgMkw3LjE3IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yaC0zLjE3TDE1IDJIOXptMyAxNWMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1LTIuMjQgNS01IDV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGhvdG8tZmlsdGVyIj48cGF0aCBkPSJNMTkuMDIgMTB2OUg1VjVoOVYzSDUuMDJjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTloLTJ6TTE3IDEwbC45NC0yLjA2TDIwIDdsLTIuMDYtLjk0TDE3IDRsLS45NCAyLjA2TDE0IDdsMi4wNi45NHptLTMuNzUuNzVMMTIgOGwtMS4yNSAyLjc1TDggMTJsMi43NSAxLjI1TDEyIDE2bDEuMjUtMi43NUwxNiAxMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJwaG90by1saWJyYXJ5Ij48cGF0aCBkPSJNMjIgMTZWNGMwLTEuMS0uOS0yLTItMkg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yem0tMTEtNGwyLjAzIDIuNzFMMTYgMTFsNCA1SDhsMy00ek0yIDZ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZIMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJwaG90by1zaXplLXNlbGVjdC1hY3R1YWwiPjxwYXRoIGQ9Ik0yMSAzSDNDMiAzIDEgNCAxIDV2MTRjMCAxLjEuOSAyIDIgMmgxOGMxIDAgMi0xIDItMlY1YzAtMS0xLTItMi0yek01IDE3bDMuNS00LjUgMi41IDMuMDFMMTQuNSAxMWw0LjUgNkg1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBob3RvLXNpemUtc2VsZWN0LWxhcmdlIj48cGF0aCBkPSJNMjEgMTVoMnYyaC0ydi0yem0wLTRoMnYyaC0ydi0yem0yIDhoLTJ2MmMxIDAgMi0xIDItMnpNMTMgM2gydjJoLTJWM3ptOCA0aDJ2MmgtMlY3em0wLTR2MmgyYzAtMS0xLTItMi0yek0xIDdoMnYySDFWN3ptMTYtNGgydjJoLTJWM3ptMCAxNmgydjJoLTJ2LTJ6TTMgM0MyIDMgMSA0IDEgNWgyVjN6bTYgMGgydjJIOVYzek01IDNoMnYySDVWM3ptLTQgOHY4YzAgMS4xLjkgMiAyIDJoMTJWMTFIMXptMiA4bDIuNS0zLjIxIDEuNzkgMi4xNSAyLjUtMy4yMkwxMyAxOUgzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBob3RvLXNpemUtc2VsZWN0LXNtYWxsIj48cGF0aCBkPSJNMjMgMTVoLTJ2Mmgydi0yem0wLTRoLTJ2Mmgydi0yem0wIDhoLTJ2MmMxIDAgMi0xIDItMnpNMTUgM2gtMnYyaDJWM3ptOCA0aC0ydjJoMlY3em0tMi00djJoMmMwLTEtMS0yLTItMnpNMyAyMWg4di02SDF2NGMwIDEuMS45IDIgMiAyek0zIDdIMXYyaDJWN3ptMTIgMTJoLTJ2Mmgydi0yem00LTE2aC0ydjJoMlYzem0wIDE2aC0ydjJoMnYtMnpNMyAzQzIgMyAxIDQgMSA1aDJWM3ptMCA4SDF2Mmgydi0yem04LThIOXYyaDJWM3pNNyAzSDV2MmgyVjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGljdHVyZS1hcy1wZGYiPjxwYXRoIGQ9Ik0yMCAySDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTguNSA3LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDl2Mkg3LjVWN0gxMGMuODMgMCAxLjUuNjcgMS41IDEuNXYxem01IDJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0yLjVWN0gxNWMuODMgMCAxLjUuNjcgMS41IDEuNXYzem00LTNIMTl2MWgxLjVWMTFIMTl2MmgtMS41VjdoM3YxLjV6TTkgOS41aDF2LTFIOXYxek00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnptMTAgNS41aDF2LTNoLTF2M3oiPjwvcGF0aD48L2c+CjxnIGlkPSJwb3J0cmFpdCI+PHBhdGggZD0iTTEyIDEyLjI1YzEuMjQgMCAyLjI1LTEuMDEgMi4yNS0yLjI1UzEzLjI0IDcuNzUgMTIgNy43NSA5Ljc1IDguNzYgOS43NSAxMHMxLjAxIDIuMjUgMi4yNSAyLjI1em00LjUgNGMwLTEuNS0zLTIuMjUtNC41LTIuMjVzLTQuNS43NS00LjUgMi4yNVYxN2g5di0uNzV6TTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZW1vdmUtcmVkLWV5ZSI+PHBhdGggZD0iTTEyIDQuNUM3IDQuNSAyLjczIDcuNjEgMSAxMmMxLjczIDQuMzkgNiA3LjUgMTEgNy41czkuMjctMy4xMSAxMS03LjVjLTEuNzMtNC4zOS02LTcuNS0xMS03LjV6TTEyIDE3Yy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDUtMi4yNCA1LTUgNXptMC04Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJyb3RhdGUtOTAtZGVncmVlcy1jY3ciPjxwYXRoIGQ9Ik03LjM0IDYuNDFMLjg2IDEyLjlsNi40OSA2LjQ4IDYuNDktNi40OC02LjUtNi40OXpNMy42OSAxMi45bDMuNjYtMy42NkwxMSAxMi45bC0zLjY2IDMuNjYtMy42NS0zLjY2em0xNS42Ny02LjI2QzE3LjYxIDQuODggMTUuMyA0IDEzIDRWLjc2TDguNzYgNSAxMyA5LjI0VjZjMS43OSAwIDMuNTguNjggNC45NSAyLjA1IDIuNzMgMi43MyAyLjczIDcuMTcgMCA5LjlDMTYuNTggMTkuMzIgMTQuNzkgMjAgMTMgMjBjLS45NyAwLTEuOTQtLjIxLTIuODQtLjYxbC0xLjQ5IDEuNDlDMTAuMDIgMjEuNjIgMTEuNTEgMjIgMTMgMjJjMi4zIDAgNC42MS0uODggNi4zNi0yLjY0IDMuNTItMy41MSAzLjUyLTkuMjEgMC0xMi43MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJyb3RhdGUtbGVmdCI+PHBhdGggZD0iTTcuMTEgOC41M0w1LjcgNy4xMUM0LjggOC4yNyA0LjI0IDkuNjEgNC4wNyAxMWgyLjAyYy4xNC0uODcuNDktMS43MiAxLjAyLTIuNDd6TTYuMDkgMTNINC4wN2MuMTcgMS4zOS43MiAyLjczIDEuNjIgMy44OWwxLjQxLTEuNDJjLS41Mi0uNzUtLjg3LTEuNTktMS4wMS0yLjQ3em0xLjAxIDUuMzJjMS4xNi45IDIuNTEgMS40NCAzLjkgMS42MVYxNy45Yy0uODctLjE1LTEuNzEtLjQ5LTIuNDYtMS4wM0w3LjEgMTguMzJ6TTEzIDQuMDdWMUw4LjQ1IDUuNTUgMTMgMTBWNi4wOWMyLjg0LjQ4IDUgMi45NCA1IDUuOTFzLTIuMTYgNS40My01IDUuOTF2Mi4wMmMzLjk1LS40OSA3LTMuODUgNy03Ljkzcy0zLjA1LTcuNDQtNy03LjkzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJvdGF0ZS1yaWdodCI+PHBhdGggZD0iTTE1LjU1IDUuNTVMMTEgMXYzLjA3QzcuMDYgNC41NiA0IDcuOTIgNCAxMnMzLjA1IDcuNDQgNyA3Ljkzdi0yLjAyYy0yLjg0LS40OC01LTIuOTQtNS01LjkxczIuMTYtNS40MyA1LTUuOTFWMTBsNC41NS00LjQ1ek0xOS45MyAxMWMtLjE3LTEuMzktLjcyLTIuNzMtMS42Mi0zLjg5bC0xLjQyIDEuNDJjLjU0Ljc1Ljg4IDEuNiAxLjAyIDIuNDdoMi4wMnpNMTMgMTcuOXYyLjAyYzEuMzktLjE3IDIuNzQtLjcxIDMuOS0xLjYxbC0xLjQ0LTEuNDRjLS43NS41NC0xLjU5Ljg5LTIuNDYgMS4wM3ptMy44OS0yLjQybDEuNDIgMS40MWMuOS0xLjE2IDEuNDUtMi41IDEuNjItMy44OWgtMi4wMmMtLjE0Ljg3LS40OCAxLjcyLTEuMDIgMi40OHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzbGlkZXNob3ciPjxwYXRoIGQ9Ik0xMCA4djhsNS00LTUtNHptOS01SDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3RyYWlnaHRlbiI+PHBhdGggZD0iTTIxIDZIM2MtMS4xIDAtMiAuOS0yIDJ2OGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bTAgMTBIM1Y4aDJ2NGgyVjhoMnY0aDJWOGgydjRoMlY4aDJ2NGgyVjhoMnY4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN0eWxlIj48cGF0aCBkPSJNMi41MyAxOS42NWwxLjM0LjU2di05LjAzbC0yLjQzIDUuODZjLS40MSAxLjAyLjA4IDIuMTkgMS4wOSAyLjYxem0xOS41LTMuN0wxNy4wNyAzLjk4Yy0uMzEtLjc1LTEuMDQtMS4yMS0xLjgxLTEuMjMtLjI2IDAtLjUzLjA0LS43OS4xNUw3LjEgNS45NWMtLjc1LjMxLTEuMjEgMS4wMy0xLjIzIDEuOC0uMDEuMjcuMDQuNTQuMTUuOGw0Ljk2IDExLjk3Yy4zMS43NiAxLjA1IDEuMjIgMS44MyAxLjIzLjI2IDAgLjUyLS4wNS43Ny0uMTVsNy4zNi0zLjA1YzEuMDItLjQyIDEuNTEtMS41OSAxLjA5LTIuNnpNNy44OCA4Ljc1Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bS0yIDExYzAgMS4xLjkgMiAyIDJoMS40NWwtMy40NS04LjM0djYuMzR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3dpdGNoLWNhbWVyYSI+PHBhdGggZD0iTTIwIDRoLTMuMTdMMTUgMkg5TDcuMTcgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS01IDExLjVWMTNIOXYyLjVMNS41IDEyIDkgOC41VjExaDZWOC41bDMuNSAzLjUtMy41IDMuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJzd2l0Y2gtdmlkZW8iPjxwYXRoIGQ9Ik0xOCA5LjVWNmMwLS41NS0uNDUtMS0xLTFIM2MtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDE0Yy41NSAwIDEtLjQ1IDEtMXYtMy41bDQgNHYtMTNsLTQgNHptLTUgNlYxM0g3djIuNUwzLjUgMTIgNyA4LjVWMTFoNlY4LjVsMy41IDMuNS0zLjUgMy41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRhZy1mYWNlcyI+PHBhdGggZD0iTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptMy41LTljLjgzIDAgMS41LS42NyAxLjUtMS41UzE2LjMzIDggMTUuNSA4IDE0IDguNjcgMTQgOS41cy42NyAxLjUgMS41IDEuNXptLTcgMGMuODMgMCAxLjUtLjY3IDEuNS0xLjVTOS4zMyA4IDguNSA4IDcgOC42NyA3IDkuNSA3LjY3IDExIDguNSAxMXptMy41IDYuNWMyLjMzIDAgNC4zMS0xLjQ2IDUuMTEtMy41SDYuODljLjggMi4wNCAyLjc4IDMuNSA1LjExIDMuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0ZXh0dXJlIj48cGF0aCBkPSJNMTkuNTEgMy4wOEwzLjA4IDE5LjUxYy4wOS4zNC4yNy42NS41MS45LjI1LjI0LjU2LjQyLjkuNTFMMjAuOTMgNC40OWMtLjE5LS42OS0uNzMtMS4yMy0xLjQyLTEuNDF6TTExLjg4IDNMMyAxMS44OHYyLjgzTDE0LjcxIDNoLTIuODN6TTUgM2MtMS4xIDAtMiAuOS0yIDJ2Mmw0LTRINXptMTQgMThjLjU1IDAgMS4wNS0uMjIgMS40MS0uNTkuMzctLjM2LjU5LS44Ni41OS0xLjQxdi0ybC00IDRoMnptLTkuNzEgMGgyLjgzTDIxIDEyLjEyVjkuMjlMOS4yOSAyMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0aW1lbGFwc2UiPjxwYXRoIGQ9Ik0xNi4yNCA3Ljc2QzE1LjA3IDYuNTkgMTMuNTQgNiAxMiA2djZsLTQuMjQgNC4yNGMyLjM0IDIuMzQgNi4xNCAyLjM0IDguNDkgMCAyLjM0LTIuMzQgMi4zNC02LjE0LS4wMS04LjQ4ek0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0aW1lciI+PHBhdGggZD0iTTE1IDFIOXYyaDZWMXptLTQgMTNoMlY4aC0ydjZ6bTguMDMtNi42MWwxLjQyLTEuNDJjLS40My0uNTEtLjktLjk5LTEuNDEtMS40MWwtMS40MiAxLjQyQzE2LjA3IDQuNzQgMTQuMTIgNCAxMiA0Yy00Ljk3IDAtOSA0LjAzLTkgOXM0LjAyIDkgOSA5IDktNC4wMyA5LTljMC0yLjEyLS43NC00LjA3LTEuOTctNS42MXpNMTIgMjBjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRpbWVyLTEwIj48cGF0aCBkPSJNMCA3LjcyVjkuNGwzLTFWMThoMlY2aC0uMjVMMCA3Ljcyem0yMy43OCA2LjY1Yy0uMTQtLjI4LS4zNS0uNTMtLjYzLS43NC0uMjgtLjIxLS42MS0uMzktMS4wMS0uNTNzLS44NS0uMjctMS4zNS0uMzhjLS4zNS0uMDctLjY0LS4xNS0uODctLjIzLS4yMy0uMDgtLjQxLS4xNi0uNTUtLjI1LS4xNC0uMDktLjIzLS4xOS0uMjgtLjMtLjA1LS4xMS0uMDgtLjI0LS4wOC0uMzkgMC0uMTQuMDMtLjI4LjA5LS40MS4wNi0uMTMuMTUtLjI1LjI3LS4zNC4xMi0uMS4yNy0uMTguNDUtLjI0cy40LS4wOS42NC0uMDljLjI1IDAgLjQ3LjA0LjY2LjExLjE5LjA3LjM1LjE3LjQ4LjI5LjEzLjEyLjIyLjI2LjI5LjQyLjA2LjE2LjEuMzIuMS40OWgxLjk1YzAtLjM5LS4wOC0uNzUtLjI0LTEuMDktLjE2LS4zNC0uMzktLjYzLS42OS0uODgtLjMtLjI1LS42Ni0uNDQtMS4wOS0uNTlDMjEuNDkgOS4wNyAyMSA5IDIwLjQ2IDljLS41MSAwLS45OC4wNy0xLjM5LjIxLS40MS4xNC0uNzcuMzMtMS4wNi41Ny0uMjkuMjQtLjUxLjUyLS42Ny44NC0uMTYuMzItLjIzLjY1LS4yMyAxLjAxcy4wOC42OS4yMy45NmMuMTUuMjguMzYuNTIuNjQuNzMuMjcuMjEuNi4zOC45OC41My4zOC4xNC44MS4yNiAxLjI3LjM2LjM5LjA4LjcxLjE3Ljk1LjI2cy40My4xOS41Ny4yOWMuMTMuMS4yMi4yMi4yNy4zNC4wNS4xMi4wNy4yNS4wNy4zOSAwIC4zMi0uMTMuNTctLjQuNzctLjI3LjItLjY2LjI5LTEuMTcuMjktLjIyIDAtLjQzLS4wMi0uNjQtLjA4LS4yMS0uMDUtLjQtLjEzLS41Ni0uMjQtLjE3LS4xMS0uMy0uMjYtLjQxLS40NC0uMTEtLjE4LS4xNy0uNDEtLjE4LS42N2gtMS44OWMwIC4zNi4wOC43MS4yNCAxLjA1LjE2LjM0LjM5LjY1LjcuOTMuMzEuMjcuNjkuNDkgMS4xNS42Ni40Ni4xNy45OC4yNSAxLjU4LjI1LjUzIDAgMS4wMS0uMDYgMS40NC0uMTkuNDMtLjEzLjgtLjMxIDEuMTEtLjU0LjMxLS4yMy41NC0uNTEuNzEtLjgzLjE3LS4zMi4yNS0uNjcuMjUtMS4wNi0uMDItLjQtLjA5LS43NC0uMjQtMS4wMnptLTkuOTYtNy4zMmMtLjM0LS40LS43NS0uNy0xLjIzLS44OC0uNDctLjE4LTEuMDEtLjI3LTEuNTktLjI3LS41OCAwLTEuMTEuMDktMS41OS4yNy0uNDguMTgtLjg5LjQ3LTEuMjMuODgtLjM0LjQxLS42LjkzLS43OSAxLjU5LS4xOC42NS0uMjggMS40NS0uMjggMi4zOXYxLjkyYzAgLjk0LjA5IDEuNzQuMjggMi4zOS4xOS42Ni40NSAxLjE5LjggMS42LjM0LjQxLjc1LjcxIDEuMjMuODkuNDguMTggMS4wMS4yOCAxLjU5LjI4LjU5IDAgMS4xMi0uMDkgMS41OS0uMjguNDgtLjE4Ljg4LS40OCAxLjIyLS44OS4zNC0uNDEuNi0uOTQuNzgtMS42LjE4LS42NS4yOC0xLjQ1LjI4LTIuMzl2LTEuOTJjMC0uOTQtLjA5LTEuNzQtLjI4LTIuMzktLjE4LS42Ni0uNDQtMS4xOS0uNzgtMS41OXptLS45MiA2LjE3YzAgLjYtLjA0IDEuMTEtLjEyIDEuNTMtLjA4LjQyLS4yLjc2LS4zNiAxLjAyLS4xNi4yNi0uMzYuNDUtLjU5LjU3LS4yMy4xMi0uNTEuMTgtLjgyLjE4LS4zIDAtLjU4LS4wNi0uODItLjE4cy0uNDQtLjMxLS42LS41N2MtLjE2LS4yNi0uMjktLjYtLjM4LTEuMDItLjA5LS40Mi0uMTMtLjkzLS4xMy0xLjUzdi0yLjVjMC0uNi4wNC0xLjExLjEzLTEuNTIuMDktLjQxLjIxLS43NC4zOC0xIC4xNi0uMjUuMzYtLjQzLjYtLjU1LjI0LS4xMS41MS0uMTcuODEtLjE3LjMxIDAgLjU4LjA2LjgxLjE3LjI0LjExLjQ0LjI5LjYuNTUuMTYuMjUuMjkuNTguMzcuOTkuMDguNDEuMTMuOTIuMTMgMS41MnYyLjUxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRpbWVyLTMiPjxwYXRoIGQ9Ik0xMS42MSAxMi45N2MtLjE2LS4yNC0uMzYtLjQ2LS42Mi0uNjUtLjI1LS4xOS0uNTYtLjM1LS45My0uNDguMy0uMTQuNTctLjMuOC0uNS4yMy0uMi40Mi0uNDEuNTctLjY0LjE1LS4yMy4yNy0uNDYuMzQtLjcxLjA4LS4yNC4xMS0uNDkuMTEtLjczIDAtLjU1LS4wOS0xLjA0LS4yOC0xLjQ2LS4xOC0uNDItLjQ0LS43Ny0uNzgtMS4wNi0uMzMtLjI4LS43My0uNS0xLjItLjY0LS40NS0uMTMtLjk3LS4yLTEuNTMtLjItLjU1IDAtMS4wNi4wOC0xLjUyLjI0LS40Ny4xNy0uODcuNC0xLjIuNjktLjMzLjI5LS42LjYzLS43OCAxLjAzLS4yLjM5LS4yOS44My0uMjkgMS4yOWgxLjk4YzAtLjI2LjA1LS40OS4xNC0uNjkuMDktLjIuMjItLjM4LjM4LS41Mi4xNy0uMTQuMzYtLjI1LjU4LS4zMy4yMi0uMDguNDYtLjEyLjczLS4xMi42MSAwIDEuMDYuMTYgMS4zNi40Ny4zLjMxLjQ0Ljc1LjQ0IDEuMzIgMCAuMjctLjA0LjUyLS4xMi43NC0uMDguMjItLjIxLjQxLS4zOC41Ny0uMTcuMTYtLjM4LjI4LS42My4zNy0uMjUuMDktLjU1LjEzLS44OS4xM0g2LjcydjEuNTdINy45Yy4zNCAwIC42NC4wNC45MS4xMS4yNy4wOC41LjE5LjY5LjM1LjE5LjE2LjM0LjM2LjQ0LjYxLjEuMjQuMTYuNTQuMTYuODcgMCAuNjItLjE4IDEuMDktLjUzIDEuNDItLjM1LjMzLS44NC40OS0xLjQ1LjQ5LS4yOSAwLS41Ni0uMDQtLjgtLjEzLS4yNC0uMDgtLjQ0LS4yLS42MS0uMzYtLjE3LS4xNi0uMy0uMzQtLjM5LS41Ni0uMDktLjIyLS4xNC0uNDYtLjE0LS43Mkg0LjE5YzAgLjU1LjExIDEuMDMuMzIgMS40NS4yMS40Mi41Ljc3Ljg2IDEuMDVzLjc3LjQ5IDEuMjQuNjMuOTYuMjEgMS40OC4yMWMuNTcgMCAxLjA5LS4wOCAxLjU4LS4yMy40OS0uMTUuOTEtLjM4IDEuMjYtLjY4LjM2LS4zLjY0LS42Ni44NC0xLjEuMi0uNDMuMy0uOTMuMy0xLjQ4IDAtLjI5LS4wNC0uNTgtLjExLS44Ni0uMDgtLjI1LS4xOS0uNTEtLjM1LS43NnptOS4yNiAxLjRjLS4xNC0uMjgtLjM1LS41My0uNjMtLjc0LS4yOC0uMjEtLjYxLS4zOS0xLjAxLS41M3MtLjg1LS4yNy0xLjM1LS4zOGMtLjM1LS4wNy0uNjQtLjE1LS44Ny0uMjMtLjIzLS4wOC0uNDEtLjE2LS41NS0uMjUtLjE0LS4wOS0uMjMtLjE5LS4yOC0uMy0uMDUtLjExLS4wOC0uMjQtLjA4LS4zOXMuMDMtLjI4LjA5LS40MWMuMDYtLjEzLjE1LS4yNS4yNy0uMzQuMTItLjEuMjctLjE4LjQ1LS4yNHMuNC0uMDkuNjQtLjA5Yy4yNSAwIC40Ny4wNC42Ni4xMS4xOS4wNy4zNS4xNy40OC4yOS4xMy4xMi4yMi4yNi4yOS40Mi4wNi4xNi4xLjMyLjEuNDloMS45NWMwLS4zOS0uMDgtLjc1LS4yNC0xLjA5LS4xNi0uMzQtLjM5LS42My0uNjktLjg4LS4zLS4yNS0uNjYtLjQ0LTEuMDktLjU5LS40My0uMTUtLjkyLS4yMi0xLjQ2LS4yMi0uNTEgMC0uOTguMDctMS4zOS4yMS0uNDEuMTQtLjc3LjMzLTEuMDYuNTctLjI5LjI0LS41MS41Mi0uNjcuODQtLjE2LjMyLS4yMy42NS0uMjMgMS4wMXMuMDguNjguMjMuOTZjLjE1LjI4LjM3LjUyLjY0LjczLjI3LjIxLjYuMzguOTguNTMuMzguMTQuODEuMjYgMS4yNy4zNi4zOS4wOC43MS4xNy45NS4yNnMuNDMuMTkuNTcuMjljLjEzLjEuMjIuMjIuMjcuMzQuMDUuMTIuMDcuMjUuMDcuMzkgMCAuMzItLjEzLjU3LS40Ljc3LS4yNy4yLS42Ni4yOS0xLjE3LjI5LS4yMiAwLS40My0uMDItLjY0LS4wOC0uMjEtLjA1LS40LS4xMy0uNTYtLjI0LS4xNy0uMTEtLjMtLjI2LS40MS0uNDQtLjExLS4xOC0uMTctLjQxLS4xOC0uNjdoLTEuODljMCAuMzYuMDguNzEuMjQgMS4wNS4xNi4zNC4zOS42NS43LjkzLjMxLjI3LjY5LjQ5IDEuMTUuNjYuNDYuMTcuOTguMjUgMS41OC4yNS41MyAwIDEuMDEtLjA2IDEuNDQtLjE5LjQzLS4xMy44LS4zMSAxLjExLS41NC4zMS0uMjMuNTQtLjUxLjcxLS44My4xNy0uMzIuMjUtLjY3LjI1LTEuMDYtLjAyLS40LS4wOS0uNzQtLjI0LTEuMDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idGltZXItb2ZmIj48cGF0aCBkPSJNMTkuMDQgNC41NWwtMS40MiAxLjQyQzE2LjA3IDQuNzQgMTQuMTIgNCAxMiA0Yy0xLjgzIDAtMy41My41NS00Ljk1IDEuNDhsMS40NiAxLjQ2QzkuNTMgNi4zNSAxMC43MyA2IDEyIDZjMy44NyAwIDcgMy4xMyA3IDcgMCAxLjI3LS4zNSAyLjQ3LS45NCAzLjQ5bDEuNDUgMS40NUMyMC40NSAxNi41MyAyMSAxNC44MyAyMSAxM2MwLTIuMTItLjc0LTQuMDctMS45Ny01LjYxbDEuNDItMS40Mi0xLjQxLTEuNDJ6TTE1IDFIOXYyaDZWMXptLTQgOC40NGwyIDJWOGgtMnYxLjQ0ek0zLjAyIDRMMS43NSA1LjI3IDQuNSA4LjAzQzMuNTUgOS40NSAzIDExLjE2IDMgMTNjMCA0Ljk3IDQuMDIgOSA5IDkgMS44NCAwIDMuNTUtLjU1IDQuOTgtMS41bDIuNSAyLjUgMS4yNy0xLjI3LTcuNzEtNy43MUwzLjAyIDR6TTEyIDIwYy0zLjg3IDAtNy0zLjEzLTctNyAwLTEuMjguMzUtMi40OC45NS0zLjUybDkuNTYgOS41NmMtMS4wMy42MS0yLjIzLjk2LTMuNTEuOTZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idG9uYWxpdHkiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMSAxNy45M2MtMy45NC0uNDktNy0zLjg1LTctNy45M3MzLjA1LTcuNDQgNy03LjkzdjE1Ljg2em0yLTE1Ljg2YzEuMDMuMTMgMiAuNDUgMi44Ny45M0gxM3YtLjkzek0xMyA3aDUuMjRjLjI1LjMxLjQ4LjY1LjY4IDFIMTNWN3ptMCAzaDYuNzRjLjA4LjMzLjE1LjY2LjE5IDFIMTN2LTF6bTAgOS45M1YxOWgyLjg3Yy0uODcuNDgtMS44NC44LTIuODcuOTN6TTE4LjI0IDE3SDEzdi0xaDUuOTJjLS4yLjM1LS40My42OS0uNjggMXptMS41LTNIMTN2LTFoNi45M2MtLjA0LjM0LS4xMS42Ny0uMTkgMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0cmFuc2Zvcm0iPjxwYXRoIGQ9Ik0yMiAxOHYtMkg4VjRoMkw3IDEgNCA0aDJ2MkgydjJoNHY4YzAgMS4xLjkgMiAyIDJoOHYyaC0ybDMgMyAzLTNoLTJ2LTJoNHpNMTAgOGg2djZoMlY4YzAtMS4xLS45LTItMi0yaC02djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idHVuZSI+PHBhdGggZD0iTTMgMTd2Mmg2di0ySDN6TTMgNXYyaDEwVjVIM3ptMTAgMTZ2LTJoOHYtMmgtOHYtMmgtMnY2aDJ6TTcgOXYySDN2Mmg0djJoMlY5SDd6bTE0IDR2LTJIMTF2MmgxMHptLTYtNGgyVjdoNFY1aC00VjNoLTJ2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LWNvbWZ5Ij48cGF0aCBkPSJNMyA5aDRWNUgzdjR6bTAgNWg0di00SDN2NHptNSAwaDR2LTRIOHY0em01IDBoNHYtNGgtNHY0ek04IDloNFY1SDh2NHptNS00djRoNFY1aC00em01IDloNHYtNGgtNHY0ek0zIDE5aDR2LTRIM3Y0em01IDBoNHYtNEg4djR6bTUgMGg0di00aC00djR6bTUgMGg0di00aC00djR6bTAtMTR2NGg0VjVoLTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1jb21wYWN0Ij48cGF0aCBkPSJNMyAxOWg2di03SDN2N3ptNyAwaDEydi03SDEwdjd6TTMgNXY2aDE5VjVIM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWduZXR0ZSI+PHBhdGggZD0iTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOSAxNWMtNC40MiAwLTgtMi42OS04LTZzMy41OC02IDgtNiA4IDIuNjkgOCA2LTMuNTggNi04IDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id2ItYXV0byI+PHBhdGggZD0iTTYuODUgMTIuNjVoMi4zTDggOWwtMS4xNSAzLjY1ek0yMiA3bC0xLjIgNi4yOUwxOS4zIDdoLTEuNmwtMS40OSA2LjI5TDE1IDdoLS43NkMxMi43NyA1LjE3IDEwLjUzIDQgOCA0Yy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4YzMuMTMgMCA1Ljg0LTEuODEgNy4xNS00LjQzbC4xLjQzSDE3bDEuNS02LjFMMjAgMTZoMS43NWwyLjA1LTlIMjJ6bS0xMS43IDlsLS43LTJINi40bC0uNyAySDMuOEw3IDdoMmwzLjIgOWgtMS45eiI+PC9wYXRoPjwvZz4KPGcgaWQ9IndiLWNsb3VkeSI+PHBhdGggZD0iTTE5LjM2IDEwLjA0QzE4LjY3IDYuNTkgMTUuNjQgNCAxMiA0IDkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDQgMi4zNCA4LjM2IDAgMTAuOTEgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjQtNC45NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ3Yi1pbmNhbmRlc2NlbnQiPjxwYXRoIGQ9Ik0zLjU1IDE4LjU0bDEuNDEgMS40MSAxLjc5LTEuOC0xLjQxLTEuNDEtMS43OSAxLjh6TTExIDIyLjQ1aDJWMTkuNWgtMnYyLjk1ek00IDEwLjVIMXYyaDN2LTJ6bTExLTQuMTlWMS41SDl2NC44MUM3LjIxIDcuMzUgNiA5LjI4IDYgMTEuNWMwIDMuMzEgMi42OSA2IDYgNnM2LTIuNjkgNi02YzAtMi4yMi0xLjIxLTQuMTUtMy01LjE5em01IDQuMTl2Mmgzdi0yaC0zem0tMi43NiA3LjY2bDEuNzkgMS44IDEuNDEtMS40MS0xLjgtMS43OS0xLjQgMS40eiI+PC9wYXRoPjwvZz4KPGcgaWQ9IndiLWlyaWRlc2NlbnQiPjxwYXRoIGQ9Ik01IDE0LjVoMTR2LTZINXY2ek0xMSAuNTVWMy41aDJWLjU1aC0yem04LjA0IDIuNWwtMS43OSAxLjc5IDEuNDEgMS40MSAxLjgtMS43OS0xLjQyLTEuNDF6TTEzIDIyLjQ1VjE5LjVoLTJ2Mi45NWgyem03LjQ1LTMuOTFsLTEuOC0xLjc5LTEuNDEgMS40MSAxLjc5IDEuOCAxLjQyLTEuNDJ6TTMuNTUgNC40NmwxLjc5IDEuNzkgMS40MS0xLjQxLTEuNzktMS43OS0xLjQxIDEuNDF6bTEuNDEgMTUuNDlsMS43OS0xLjgtMS40MS0xLjQxLTEuNzkgMS43OSAxLjQxIDEuNDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id2Itc3VubnkiPjxwYXRoIGQ9Ik02Ljc2IDQuODRsLTEuOC0xLjc5LTEuNDEgMS40MSAxLjc5IDEuNzkgMS40Mi0xLjQxek00IDEwLjVIMXYyaDN2LTJ6bTktOS45NWgtMlYzLjVoMlYuNTV6bTcuNDUgMy45MWwtMS40MS0xLjQxLTEuNzkgMS43OSAxLjQxIDEuNDEgMS43OS0xLjc5em0tMy4yMSAxMy43bDEuNzkgMS44IDEuNDEtMS40MS0xLjgtMS43OS0xLjQgMS40ek0yMCAxMC41djJoM3YtMmgtM3ptLTgtNWMtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNiA2LTIuNjkgNi02LTIuNjktNi02LTZ6bS0xIDE2Ljk1aDJWMTkuNWgtMnYyLjk1em0tNy40NS0zLjkxbDEuNDEgMS40MSAxLjc5LTEuOC0xLjQxLTEuNDEtMS43OSAxLjh6Ij48L3BhdGg+PC9nPgo8L2RlZnM+PC9zdmc+CjwvaXJvbi1pY29uc2V0LXN2Zz5gO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoeWJlLmNvbnRlbnQpO3ZhciB2YmU9UWA8aXJvbi1pY29uc2V0LXN2ZyBuYW1lPSJpY29ucyIgc2l6ZT0iMjQiPgo8c3ZnPjxkZWZzPgo8ZyBpZD0iM2Qtcm90YXRpb24iPjxwYXRoIGQ9Ik03LjUyIDIxLjQ4QzQuMjUgMTkuOTQgMS45MSAxNi43NiAxLjU1IDEzSC4wNUMuNTYgMTkuMTYgNS43MSAyNCAxMiAyNGwuNjYtLjAzLTMuODEtMy44MS0xLjMzIDEuMzJ6bS44OS02LjUyYy0uMTkgMC0uMzctLjAzLS41Mi0uMDgtLjE2LS4wNi0uMjktLjEzLS40LS4yNC0uMTEtLjEtLjItLjIyLS4yNi0uMzctLjA2LS4xNC0uMDktLjMtLjA5LS40N2gtMS4zYzAgLjM2LjA3LjY4LjIxLjk1LjE0LjI3LjMzLjUuNTYuNjkuMjQuMTguNTEuMzIuODIuNDEuMy4xLjYyLjE1Ljk2LjE1LjM3IDAgLjcyLS4wNSAxLjAzLS4xNS4zMi0uMS42LS4yNS44My0uNDRzLjQyLS40My41NS0uNzJjLjEzLS4yOS4yLS42MS4yLS45NyAwLS4xOS0uMDItLjM4LS4wNy0uNTYtLjA1LS4xOC0uMTItLjM1LS4yMy0uNTEtLjEtLjE2LS4yNC0uMy0uNC0uNDMtLjE3LS4xMy0uMzctLjIzLS42MS0uMzEuMi0uMDkuMzctLjIuNTItLjMzLjE1LS4xMy4yNy0uMjcuMzctLjQyLjEtLjE1LjE3LS4zLjIyLS40Ni4wNS0uMTYuMDctLjMyLjA3LS40OCAwLS4zNi0uMDYtLjY4LS4xOC0uOTYtLjEyLS4yOC0uMjktLjUxLS41MS0uNjktLjItLjE5LS40Ny0uMzMtLjc3LS40M0M5LjEgOC4wNSA4Ljc2IDggOC4zOSA4Yy0uMzYgMC0uNjkuMDUtMSAuMTYtLjMuMTEtLjU3LjI2LS43OS40NS0uMjEuMTktLjM4LjQxLS41MS42Ny0uMTIuMjYtLjE4LjU0LS4xOC44NWgxLjNjMC0uMTcuMDMtLjMyLjA5LS40NXMuMTQtLjI1LjI1LS4zNGMuMTEtLjA5LjIzLS4xNy4zOC0uMjIuMTUtLjA1LjMtLjA4LjQ4LS4wOC40IDAgLjcuMS44OS4zMS4xOS4yLjI5LjQ5LjI5Ljg2IDAgLjE4LS4wMy4zNC0uMDguNDktLjA1LjE1LS4xNC4yNy0uMjUuMzctLjExLjEtLjI1LjE4LS40MS4yNC0uMTYuMDYtLjM2LjA5LS41OC4wOUg3LjV2MS4wM2guNzdjLjIyIDAgLjQyLjAyLjYuMDdzLjMzLjEzLjQ1LjIzYy4xMi4xMS4yMi4yNC4yOS40LjA3LjE2LjEuMzUuMS41NyAwIC40MS0uMTIuNzItLjM1LjkzLS4yMy4yMy0uNTUuMzMtLjk1LjMzem04LjU1LTUuOTJjLS4zMi0uMzMtLjctLjU5LTEuMTQtLjc3LS40My0uMTgtLjkyLS4yNy0xLjQ2LS4yN0gxMnY4aDIuM2MuNTUgMCAxLjA2LS4wOSAxLjUxLS4yNy40NS0uMTguODQtLjQzIDEuMTYtLjc2LjMyLS4zMy41Ny0uNzMuNzQtMS4xOS4xNy0uNDcuMjYtLjk5LjI2LTEuNTd2LS40YzAtLjU4LS4wOS0xLjEtLjI2LTEuNTctLjE4LS40Ny0uNDMtLjg3LS43NS0xLjJ6bS0uMzkgMy4xNmMwIC40Mi0uMDUuNzktLjE0IDEuMTMtLjEuMzMtLjI0LjYyLS40My44NS0uMTkuMjMtLjQzLjQxLS43MS41My0uMjkuMTItLjYyLjE4LS45OS4xOGgtLjkxVjkuMTJoLjk3Yy43MiAwIDEuMjcuMjMgMS42NC42OS4zOC40Ni41NyAxLjEyLjU3IDEuOTl2LjR6TTEyIDBsLS42Ni4wMyAzLjgxIDMuODEgMS4zMy0xLjMzYzMuMjcgMS41NSA1LjYxIDQuNzIgNS45NiA4LjQ4aDEuNUMyMy40NCA0Ljg0IDE4LjI5IDAgMTIgMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhY2Nlc3NpYmlsaXR5Ij48cGF0aCBkPSJNMTIgMmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6bTkgN2gtNnYxM2gtMnYtNmgtMnY2SDlWOUgzVjdoMTh2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhY2Nlc3NpYmxlIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjQiIHI9IjIiPjwvY2lyY2xlPjxwYXRoIGQ9Ik0xOSAxM3YtMmMtMS41NC4wMi0zLjA5LS43NS00LjA3LTEuODNsLTEuMjktMS40M2MtLjE3LS4xOS0uMzgtLjM0LS42MS0uNDUtLjAxIDAtLjAxLS4wMS0uMDItLjAxSDEzYy0uMzUtLjItLjc1LS4zLTEuMTktLjI2QzEwLjc2IDcuMTEgMTAgOC4wNCAxMCA5LjA5VjE1YzAgMS4xLjkgMiAyIDJoNXY1aDJ2LTUuNWMwLTEuMS0uOS0yLTItMmgtM3YtMy40NWMxLjI5IDEuMDcgMy4yNSAxLjk0IDUgMS45NXptLTYuMTcgNWMtLjQxIDEuMTYtMS41MiAyLTIuODMgMi0xLjY2IDAtMy0xLjM0LTMtMyAwLTEuMzEuODQtMi40MSAyLTIuODNWMTIuMWMtMi4yOC40Ni00IDIuNDgtNCA0LjkgMCAyLjc2IDIuMjQgNSA1IDUgMi40MiAwIDQuNDQtMS43MiA0LjktNGgtMi4wN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJhY2NvdW50LWJhbGFuY2UiPjxwYXRoIGQ9Ik00IDEwdjdoM3YtN0g0em02IDB2N2gzdi03aC0zek0yIDIyaDE5di0zSDJ2M3ptMTQtMTJ2N2gzdi03aC0zem0tNC41LTlMMiA2djJoMTlWNmwtOS41LTV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYWNjb3VudC1iYWxhbmNlLXdhbGxldCI+PHBhdGggZD0iTTIxIDE4djFjMCAxLjEtLjkgMi0yIDJINWMtMS4xMSAwLTItLjktMi0yVjVjMC0xLjEuODktMiAyLTJoMTRjMS4xIDAgMiAuOSAyIDJ2MWgtOWMtMS4xMSAwLTIgLjktMiAydjhjMCAxLjEuODkgMiAyIDJoOXptLTktMmgxMFY4SDEydjh6bTQtMi41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhY2NvdW50LWJveCI+PHBhdGggZD0iTTMgNXYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0ySDVjLTEuMTEgMC0yIC45LTIgMnptMTIgNGMwIDEuNjYtMS4zNCAzLTMgM3MtMy0xLjM0LTMtMyAxLjM0LTMgMy0zIDMgMS4zNCAzIDN6bS05IDhjMC0yIDQtMy4xIDYtMy4xczYgMS4xIDYgMy4xdjFINnYtMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhY2NvdW50LWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgM2MxLjY2IDAgMyAxLjM0IDMgM3MtMS4zNCAzLTMgMy0zLTEuMzQtMy0zIDEuMzQtMyAzLTN6bTAgMTQuMmMtMi41IDAtNC43MS0xLjI4LTYtMy4yMi4wMy0xLjk5IDQtMy4wOCA2LTMuMDggMS45OSAwIDUuOTcgMS4wOSA2IDMuMDgtMS4yOSAxLjk0LTMuNSAzLjIyLTYgMy4yMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhZGQiPjxwYXRoIGQ9Ik0xOSAxM2gtNnY2aC0ydi02SDV2LTJoNlY1aDJ2Nmg2djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYWRkLWFsZXJ0Ij48cGF0aCBkPSJNMTAuMDEgMjEuMDFjMCAxLjEuODkgMS45OSAxLjk5IDEuOTlzMS45OS0uODkgMS45OS0xLjk5aC0zLjk4em04Ljg3LTQuMTlWMTFjMC0zLjI1LTIuMjUtNS45Ny01LjI5LTYuNjl2LS43MkMxMy41OSAyLjcxIDEyLjg4IDIgMTIgMnMtMS41OS43MS0xLjU5IDEuNTl2LjcyQzcuMzcgNS4wMyA1LjEyIDcuNzUgNS4xMiAxMXY1LjgyTDMgMTguOTRWMjBoMTh2LTEuMDZsLTIuMTItMi4xMnpNMTYgMTMuMDFoLTN2M2gtMnYtM0g4VjExaDNWOGgydjNoM3YyLjAxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFkZC1ib3giPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tMiAxMGgtNHY0aC0ydi00SDd2LTJoNFY3aDJ2NGg0djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYWRkLWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTUgMTFoLTR2NGgtMnYtNEg3di0yaDRWN2gydjRoNHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFkZC1jaXJjbGUtb3V0bGluZSI+PHBhdGggZD0iTTEzIDdoLTJ2NEg3djJoNHY0aDJ2LTRoNHYtMmgtNFY3em0tMS01QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhZGQtc2hvcHBpbmctY2FydCI+PHBhdGggZD0iTTExIDloMlY2aDNWNGgtM1YxaC0ydjNIOHYyaDN2M3ptLTQgOWMtMS4xIDAtMS45OS45LTEuOTkgMlM1LjkgMjIgNyAyMnMyLS45IDItMi0uOS0yLTItMnptMTAgMGMtMS4xIDAtMS45OS45LTEuOTkgMnMuODkgMiAxLjk5IDIgMi0uOSAyLTItLjktMi0yLTJ6bS05LjgzLTMuMjVsLjAzLS4xMi45LTEuNjNoNy40NWMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy44Ni03LjAxTDE5LjQyIDRoLS4wMWwtMS4xIDItMi43NiA1SDguNTNsLS4xMy0uMjdMNi4xNiA2bC0uOTUtMi0uOTQtMkgxdjJoMmwzLjYgNy41OS0xLjM1IDIuNDVjLS4xNi4yOC0uMjUuNjEtLjI1Ljk2IDAgMS4xLjkgMiAyIDJoMTJ2LTJINy40MmMtLjEzIDAtLjI1LS4xMS0uMjUtLjI1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFsYXJtIj48cGF0aCBkPSJNMjIgNS43MmwtNC42LTMuODYtMS4yOSAxLjUzIDQuNiAzLjg2TDIyIDUuNzJ6TTcuODggMy4zOUw2LjYgMS44NiAyIDUuNzFsMS4yOSAxLjUzIDQuNTktMy44NXpNMTIuNSA4SDExdjZsNC43NSAyLjg1Ljc1LTEuMjMtNC0yLjM3Vjh6TTEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDljNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6bTAgMTZjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFsYXJtLWFkZCI+PHBhdGggZD0iTTcuODggMy4zOUw2LjYgMS44NiAyIDUuNzFsMS4yOSAxLjUzIDQuNTktMy44NXpNMjIgNS43MmwtNC42LTMuODYtMS4yOSAxLjUzIDQuNiAzLjg2TDIyIDUuNzJ6TTEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDljNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6bTAgMTZjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3em0xLTExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTNWOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhbGFybS1vZmYiPjxwYXRoIGQ9Ik0xMiA2YzMuODcgMCA3IDMuMTMgNyA3IDAgLjg0LS4xNiAxLjY1LS40MyAyLjRsMS41MiAxLjUyYy41OC0xLjE5LjkxLTIuNTEuOTEtMy45MiAwLTQuOTctNC4wMy05LTktOS0xLjQxIDAtMi43My4zMy0zLjkyLjkxTDkuNiA2LjQzQzEwLjM1IDYuMTYgMTEuMTYgNiAxMiA2em0xMC0uMjhsLTQuNi0zLjg2LTEuMjkgMS41MyA0LjYgMy44NkwyMiA1Ljcyek0yLjkyIDIuMjlMMS42NSAzLjU3IDIuOTggNC45bC0xLjExLjkzIDEuNDIgMS40MiAxLjExLS45NC44LjhDMy44MyA4LjY5IDMgMTAuNzUgMyAxM2MwIDQuOTcgNC4wMiA5IDkgOSAyLjI1IDAgNC4zMS0uODMgNS44OS0yLjJsMi4yIDIuMiAxLjI3LTEuMjdMMy44OSAzLjI3bC0uOTctLjk4em0xMy41NSAxNi4xQzE1LjI2IDE5LjM5IDEzLjcgMjAgMTIgMjBjLTMuODcgMC03LTMuMTMtNy03IDAtMS43LjYxLTMuMjYgMS42MS00LjQ3bDkuODYgOS44NnpNOC4wMiAzLjI4TDYuNiAxLjg2bC0uODYuNzEgMS40MiAxLjQyLjg2LS43MXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhbGFybS1vbiI+PHBhdGggZD0iTTIyIDUuNzJsLTQuNi0zLjg2LTEuMjkgMS41MyA0LjYgMy44NkwyMiA1Ljcyek03Ljg4IDMuMzlMNi42IDEuODYgMiA1LjcxbDEuMjkgMS41MyA0LjU5LTMuODV6TTEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDljNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6bTAgMTZjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3em0tMS40Ni01LjQ3TDguNDEgMTIuNGwtMS4wNiAxLjA2IDMuMTggMy4xOCA2LTYtMS4wNi0xLjA2LTQuOTMgNC45NXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhbGwtb3V0Ij48cGF0aCBkPSJNMTYuMjEgNC4xNmw0IDR2LTR6bTQgMTJsLTQgNGg0em0tMTIgNGwtNC00djR6bS00LTEybDQtNGgtNHptMTIuOTUtLjk1Yy0yLjczLTIuNzMtNy4xNy0yLjczLTkuOSAwcy0yLjczIDcuMTcgMCA5LjkgNy4xNyAyLjczIDkuOSAwIDIuNzMtNy4xNiAwLTkuOXptLTEuMSA4LjhjLTIuMTMgMi4xMy01LjU3IDIuMTMtNy43IDBzLTIuMTMtNS41NyAwLTcuNyA1LjU3LTIuMTMgNy43IDAgMi4xMyA1LjU3IDAgNy43eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFuZHJvaWQiPjxwYXRoIGQ9Ik02IDE4YzAgLjU1LjQ1IDEgMSAxaDF2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41czEuNS0uNjcgMS41LTEuNVYxOWgydjMuNWMwIC44My42NyAxLjUgMS41IDEuNXMxLjUtLjY3IDEuNS0xLjVWMTloMWMuNTUgMCAxLS40NSAxLTFWOEg2djEwek0zLjUgOEMyLjY3IDggMiA4LjY3IDIgOS41djdjMCAuODMuNjcgMS41IDEuNSAxLjVTNSAxNy4zMyA1IDE2LjV2LTdDNSA4LjY3IDQuMzMgOCAzLjUgOHptMTcgMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2N2MwIC44My42NyAxLjUgMS41IDEuNXMxLjUtLjY3IDEuNS0xLjV2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41em0tNC45Ny01Ljg0bDEuMy0xLjNjLjItLjIuMi0uNTEgMC0uNzEtLjItLjItLjUxLS4yLS43MSAwbC0xLjQ4IDEuNDhDMTMuODUgMS4yMyAxMi45NSAxIDEyIDFjLS45NiAwLTEuODYuMjMtMi42Ni42M0w3Ljg1LjE1Yy0uMi0uMi0uNTEtLjItLjcxIDAtLjIuMi0uMi41MSAwIC43MWwxLjMxIDEuMzFDNi45NyAzLjI2IDYgNS4wMSA2IDdoMTJjMC0xLjk5LS45Ny0zLjc1LTIuNDctNC44NHpNMTAgNUg5VjRoMXYxem01IDBoLTFWNGgxdjF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYW5ub3VuY2VtZW50Ij48cGF0aCBkPSJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDloLTJWNWgydjZ6bTAgNGgtMnYtMmgydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXBwcyI+PHBhdGggZD0iTTQgOGg0VjRINHY0em02IDEyaDR2LTRoLTR2NHptLTYgMGg0di00SDR2NHptMC02aDR2LTRINHY0em02IDBoNHYtNGgtNHY0em02LTEwdjRoNFY0aC00em0tNiA0aDRWNGgtNHY0em02IDZoNHYtNGgtNHY0em0wIDZoNHYtNGgtNHY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFyY2hpdmUiPjxwYXRoIGQ9Ik0yMC41NCA1LjIzbC0xLjM5LTEuNjhDMTguODggMy4yMSAxOC40NyAzIDE4IDNINmMtLjQ3IDAtLjg4LjIxLTEuMTYuNTVMMy40NiA1LjIzQzMuMTcgNS41NyAzIDYuMDIgMyA2LjVWMTljMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2LjVjMC0uNDgtLjE3LS45My0uNDYtMS4yN3pNMTIgMTcuNUw2LjUgMTJIMTB2LTJoNHYyaDMuNUwxMiAxNy41ek01LjEyIDVsLjgxLTFoMTJsLjk0IDFINS4xMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy1iYWNrIj48cGF0aCBkPSJNMjAgMTFINy44M2w1LjU5LTUuNTlMMTIgNGwtOCA4IDggOCAxLjQxLTEuNDFMNy44MyAxM0gyMHYtMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy1kb3dud2FyZCI+PHBhdGggZD0iTTIwIDEybC0xLjQxLTEuNDFMMTMgMTYuMTdWNGgtMnYxMi4xN2wtNS41OC01LjU5TDQgMTJsOCA4IDgtOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy1kcm9wLWRvd24iPjxwYXRoIGQ9Ik03IDEwbDUgNSA1LTV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXJyb3ctZHJvcC1kb3duLWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMTJsLTQtNGg4bC00IDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXJyb3ctZHJvcC11cCI+PHBhdGggZD0iTTcgMTRsNS01IDUgNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy1mb3J3YXJkIj48cGF0aCBkPSJNMTIgNGwtMS40MSAxLjQxTDE2LjE3IDExSDR2MmgxMi4xN2wtNS41OCA1LjU5TDEyIDIwbDgtOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy11cHdhcmQiPjxwYXRoIGQ9Ik00IDEybDEuNDEgMS40MUwxMSA3LjgzVjIwaDJWNy44M2w1LjU4IDUuNTlMMjAgMTJsLTgtOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXNwZWN0LXJhdGlvIj48cGF0aCBkPSJNMTkgMTJoLTJ2M2gtM3YyaDV2LTV6TTcgOWgzVjdINXY1aDJWOXptMTQtNkgzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk5aDE4djE0LjAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFzc2Vzc21lbnQiPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOSAxN0g3di03aDJ2N3ptNCAwaC0yVjdoMnYxMHptNCAwaC0ydi00aDJ2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3NpZ25tZW50Ij48cGF0aCBkPSJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTIgMTRIN3YtMmg3djJ6bTMtNEg3di0yaDEwdjJ6bTAtNEg3VjdoMTB2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3NpZ25tZW50LWluZCI+PHBhdGggZD0iTTE5IDNoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxYy0xLjMgMC0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0wIDRjMS42NiAwIDMgMS4zNCAzIDNzLTEuMzQgMy0zIDMtMy0xLjM0LTMtMyAxLjM0LTMgMy0zem02IDEySDZ2LTEuNGMwLTIgNC0zLjEgNi0zLjFzNiAxLjEgNiAzLjFWMTl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXNzaWdubWVudC1sYXRlIj48cGF0aCBkPSJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNiAxNWgtMnYtMmgydjJ6bTAtNGgtMlY4aDJ2NnptLTEtOWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFzc2lnbm1lbnQtcmV0dXJuIj48cGF0aCBkPSJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTQgMTJoLTR2M2wtNS01IDUtNXYzaDR2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3NpZ25tZW50LXJldHVybmVkIj48cGF0aCBkPSJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTAgMTVsLTUtNWgzVjloNHY0aDNsLTUgNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3NpZ25tZW50LXR1cm5lZC1pbiI+PHBhdGggZD0iTTE5IDNoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxYy0xLjMgMC0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0tMiAxNGwtNC00IDEuNDEtMS40MUwxMCAxNC4xN2w2LjU5LTYuNTlMMTggOWwtOCA4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImF0dGFjaG1lbnQiPjxwYXRoIGQ9Ik0yIDEyLjVDMiA5LjQ2IDQuNDYgNyA3LjUgN0gxOGMyLjIxIDAgNCAxLjc5IDQgNHMtMS43OSA0LTQgNEg5LjVDOC4xMiAxNSA3IDEzLjg4IDcgMTIuNVM4LjEyIDEwIDkuNSAxMEgxN3YySDkuNDFjLS41NSAwLS41NSAxIDAgMUgxOGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTJINy41QzUuNTcgOSA0IDEwLjU3IDQgMTIuNVM1LjU3IDE2IDcuNSAxNkgxN3YySDcuNUM0LjQ2IDE4IDIgMTUuNTQgMiAxMi41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImF1dG9yZW5ldyI+PHBhdGggZD0iTTEyIDZ2M2w0LTQtNC00djNjLTQuNDIgMC04IDMuNTgtOCA4IDAgMS41Ny40NiAzLjAzIDEuMjQgNC4yNkw2LjcgMTQuOGMtLjQ1LS44My0uNy0xLjc5LS43LTIuOCAwLTMuMzEgMi42OS02IDYtNnptNi43NiAxLjc0TDE3LjMgOS4yYy40NC44NC43IDEuNzkuNyAyLjggMCAzLjMxLTIuNjkgNi02IDZ2LTNsLTQgNCA0IDR2LTNjNC40MiAwIDgtMy41OCA4LTggMC0xLjU3LS40Ni0zLjAzLTEuMjQtNC4yNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJiYWNrc3BhY2UiPjxwYXRoIGQ9Ik0yMiAzSDdjLS42OSAwLTEuMjMuMzUtMS41OS44OEwwIDEybDUuNDEgOC4xMWMuMzYuNTMuOS44OSAxLjU5Ljg5aDE1YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS0zIDEyLjU5TDE3LjU5IDE3IDE0IDEzLjQxIDEwLjQxIDE3IDkgMTUuNTkgMTIuNTkgMTIgOSA4LjQxIDEwLjQxIDcgMTQgMTAuNTkgMTcuNTkgNyAxOSA4LjQxIDE1LjQxIDEyIDE5IDE1LjU5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJhY2t1cCI+PHBhdGggZD0iTTE5LjM1IDEwLjA0QzE4LjY3IDYuNTkgMTUuNjQgNCAxMiA0IDkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDQgMi4zNCA4LjM2IDAgMTAuOTEgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTQgMTN2NGgtNHYtNEg3bDUtNSA1IDVoLTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYmxvY2siPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyek00IDEyYzAtNC40MiAzLjU4LTggOC04IDEuODUgMCAzLjU1LjYzIDQuOSAxLjY5TDUuNjkgMTYuOUM0LjYzIDE1LjU1IDQgMTMuODUgNCAxMnptOCA4Yy0xLjg1IDAtMy41NS0uNjMtNC45LTEuNjlMMTguMzEgNy4xQzE5LjM3IDguNDUgMjAgMTAuMTUgMjAgMTJjMCA0LjQyLTMuNTggOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYm9vayI+PHBhdGggZD0iTTE4IDJINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek02IDRoNXY4bC0yLjUtMS41TDYgMTJWNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJib29rbWFyayI+PHBhdGggZD0iTTE3IDNIN2MtMS4xIDAtMS45OS45LTEuOTkgMkw1IDIxbDctMyA3IDNWNWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJib29rbWFyay1ib3JkZXIiPjxwYXRoIGQ9Ik0xNyAzSDdjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNSAyMWw3LTMgNyAzVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTVsLTUtMi4xOEw3IDE4VjVoMTB2MTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYnVnLXJlcG9ydCI+PHBhdGggZD0iTTIwIDhoLTIuODFjLS40NS0uNzgtMS4wNy0xLjQ1LTEuODItMS45NkwxNyA0LjQxIDE1LjU5IDNsLTIuMTcgMi4xN0MxMi45NiA1LjA2IDEyLjQ5IDUgMTIgNWMtLjQ5IDAtLjk2LjA2LTEuNDEuMTdMOC40MSAzIDcgNC40MWwxLjYyIDEuNjNDNy44OCA2LjU1IDcuMjYgNy4yMiA2LjgxIDhINHYyaDIuMDljLS4wNS4zMy0uMDkuNjYtLjA5IDF2MUg0djJoMnYxYzAgLjM0LjA0LjY3LjA5IDFINHYyaDIuODFjMS4wNCAxLjc5IDIuOTcgMyA1LjE5IDNzNC4xNS0xLjIxIDUuMTktM0gyMHYtMmgtMi4wOWMuMDUtLjMzLjA5LS42Ni4wOS0xdi0xaDJ2LTJoLTJ2LTFjMC0uMzQtLjA0LS42Ny0uMDktMUgyMFY4em0tNiA4aC00di0yaDR2MnptMC00aC00di0yaDR2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJidWlsZCI+PHBhdGggZD0iTTIyLjcgMTlsLTkuMS05LjFjLjktMi4zLjQtNS0xLjUtNi45LTItMi01LTIuNC03LjQtMS4zTDkgNiA2IDkgMS42IDQuN0MuNCA3LjEuOSAxMC4xIDIuOSAxMi4xYzEuOSAxLjkgNC42IDIuNCA2LjkgMS41bDkuMSA5LjFjLjQuNCAxIC40IDEuNCAwbDIuMy0yLjNjLjUtLjQuNS0xLjEuMS0xLjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2FjaGVkIj48cGF0aCBkPSJNMTkgOGwtNCA0aDNjMCAzLjMxLTIuNjkgNi02IDYtMS4wMSAwLTEuOTctLjI1LTIuOC0uN2wtMS40NiAxLjQ2QzguOTcgMTkuNTQgMTAuNDMgMjAgMTIgMjBjNC40MiAwIDgtMy41OCA4LThoM2wtNC00ek02IDEyYzAtMy4zMSAyLjY5LTYgNi02IDEuMDEgMCAxLjk3LjI1IDIuOC43bDEuNDYtMS40NkMxNS4wMyA0LjQ2IDEzLjU3IDQgMTIgNGMtNC40MiAwLTggMy41OC04IDhIMWw0IDQgNC00SDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2FtZXJhLWVuaGFuY2UiPjxwYXRoIGQ9Ik05IDNMNy4xNyA1SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMmgtMy4xN0wxNSAzSDl6bTMgMTVjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1em0wLTFsMS4yNS0yLjc1TDE2IDEzbC0yLjc1LTEuMjVMMTIgOWwtMS4yNSAyLjc1TDggMTNsMi43NSAxLjI1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNhbmNlbCI+PHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTUgMTMuNTlMMTUuNTkgMTcgMTIgMTMuNDEgOC40MSAxNyA3IDE1LjU5IDEwLjU5IDEyIDcgOC40MSA4LjQxIDcgMTIgMTAuNTkgMTUuNTkgNyAxNyA4LjQxIDEzLjQxIDEyIDE3IDE1LjU5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNhcmQtZ2lmdGNhcmQiPjxwYXRoIGQ9Ik0yMCA2aC0yLjE4Yy4xMS0uMzEuMTgtLjY1LjE4LTEgMC0xLjY2LTEuMzQtMy0zLTMtMS4wNSAwLTEuOTYuNTQtMi41IDEuMzVsLS41LjY3LS41LS42OEMxMC45NiAyLjU0IDEwLjA1IDIgOSAyIDcuMzQgMiA2IDMuMzQgNiA1YzAgLjM1LjA3LjY5LjE4IDFINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMTljMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yem0tNS0yYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6TTkgNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0xMSAxNUg0di0yaDE2djJ6bTAtNUg0VjhoNS4wOEw3IDEwLjgzIDguNjIgMTIgMTEgOC43NmwxLTEuMzYgMSAxLjM2TDE1LjM4IDEyIDE3IDEwLjgzIDE0LjkyIDhIMjB2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjYXJkLW1lbWJlcnNoaXAiPjxwYXRoIGQ9Ik0yMCAySDRjLTEuMTEgMC0yIC44OS0yIDJ2MTFjMCAxLjExLjg5IDIgMiAyaDR2NWw0LTIgNCAydi01aDRjMS4xMSAwIDItLjg5IDItMlY0YzAtMS4xMS0uODktMi0yLTJ6bTAgMTNINHYtMmgxNnYyem0wLTVINFY0aDE2djZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2FyZC10cmF2ZWwiPjxwYXRoIGQ9Ik0yMCA2aC0zVjRjMC0xLjExLS44OS0yLTItMkg5Yy0xLjExIDAtMiAuODktMiAydjJINGMtMS4xMSAwLTIgLjg5LTIgMnYxMWMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6TTkgNGg2djJIOVY0em0xMSAxNUg0di0yaDE2djJ6bTAtNUg0VjhoM3YyaDJWOGg2djJoMlY4aDN2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjaGFuZ2UtaGlzdG9yeSI+PHBhdGggZD0iTTEyIDcuNzdMMTguMzkgMThINS42MUwxMiA3Ljc3TTEyIDRMMiAyMGgyMEwxMiA0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNoZWNrIj48cGF0aCBkPSJNOSAxNi4xN0w0LjgzIDEybC0xLjQyIDEuNDFMOSAxOSAyMSA3bC0xLjQxLTEuNDF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2hlY2stYm94Ij48cGF0aCBkPSJNMTkgM0g1Yy0xLjExIDAtMiAuOS0yIDJ2MTRjMCAxLjEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjkgMi0yVjVjMC0xLjEtLjg5LTItMi0yem0tOSAxNGwtNS01IDEuNDEtMS40MUwxMCAxNC4xN2w3LjU5LTcuNTlMMTkgOGwtOSA5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNoZWNrLWJveC1vdXRsaW5lLWJsYW5rIj48cGF0aCBkPSJNMTkgNXYxNEg1VjVoMTRtMC0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjaGVjay1jaXJjbGUiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMiAxNWwtNS01IDEuNDEtMS40MUwxMCAxNC4xN2w3LjU5LTcuNTlMMTkgOGwtOSA5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNoZXZyb24tbGVmdCI+PHBhdGggZD0iTTE1LjQxIDcuNDFMMTQgNmwtNiA2IDYgNiAxLjQxLTEuNDFMMTAuODMgMTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2hldnJvbi1yaWdodCI+PHBhdGggZD0iTTEwIDZMOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNocm9tZS1yZWFkZXItbW9kZSI+PHBhdGggZD0iTTEzIDEyaDd2MS41aC03em0wLTIuNWg3VjExaC03em0wIDVoN1YxNmgtN3pNMjEgNEgzYy0xLjEgMC0yIC45LTIgMnYxM2MwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTVoLTlWNmg5djEzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsYXNzIj48cGF0aCBkPSJNMTggMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTYgNGg1djhsLTIuNS0xLjVMNiAxMlY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsZWFyIj48cGF0aCBkPSJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsb3NlIj48cGF0aCBkPSJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsb3VkIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM0IDguMzYgMCAxMC45MSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsb3VkLWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTQuNSAxNEg4Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zbC4xNC4wMUM4LjU4IDguMjggMTAuMTMgNyAxMiA3YzIuMjEgMCA0IDEuNzkgNCA0aC41YzEuMzggMCAyLjUgMS4xMiAyLjUgMi41UzE3Ljg4IDE2IDE2LjUgMTZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2xvdWQtZG9uZSI+PHBhdGggZD0iTTE5LjM1IDEwLjA0QzE4LjY3IDYuNTkgMTUuNjQgNCAxMiA0IDkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDQgMi4zNCA4LjM2IDAgMTAuOTEgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTAgMTdsLTMuNS0zLjUgMS40MS0xLjQxTDEwIDE0LjE3IDE1LjE4IDlsMS40MSAxLjQxTDEwIDE3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsb3VkLWRvd25sb2FkIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM0IDguMzYgMCAxMC45MSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xNyAxM2wtNSA1LTUtNWgzVjloNHY0aDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2xvdWQtb2ZmIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDRjLTEuNDggMC0yLjg1LjQzLTQuMDEgMS4xN2wxLjQ2IDEuNDZDMTAuMjEgNi4yMyAxMS4wOCA2IDEyIDZjMy4wNCAwIDUuNSAyLjQ2IDUuNSA1LjV2LjVIMTljMS42NiAwIDMgMS4zNCAzIDMgMCAxLjEzLS42NCAyLjExLTEuNTYgMi42MmwxLjQ1IDEuNDVDMjMuMTYgMTguMTYgMjQgMTYuNjggMjQgMTVjMC0yLjY0LTIuMDUtNC43OC00LjY1LTQuOTZ6TTMgNS4yN2wyLjc1IDIuNzRDMi41NiA4LjE1IDAgMTAuNzcgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxMS43M2wyIDJMMjEgMjAuNzMgNC4yNyA0IDMgNS4yN3pNNy43MyAxMGw4IDhINmMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNGgxLjczeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNsb3VkLXF1ZXVlIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM0IDguMzYgMCAxMC45MSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xOSAxOEg2Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00aC43MUM3LjM3IDcuNjkgOS40OCA2IDEyIDZjMy4wNCAwIDUuNSAyLjQ2IDUuNSA1LjV2LjVIMTljMS42NiAwIDMgMS4zNCAzIDNzLTEuMzQgMy0zIDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2xvdWQtdXBsb2FkIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM0IDguMzYgMCAxMC45MSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xNCAxM3Y0aC00di00SDdsNS01IDUgNWgtM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJjb2RlIj48cGF0aCBkPSJNOS40IDE2LjZMNC44IDEybDQuNi00LjZMOCA2bC02IDYgNiA2IDEuNC0xLjR6bTUuMiAwbDQuNi00LjYtNC42LTQuNkwxNiA2bDYgNi02IDYtMS40LTEuNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb21wYXJlLWFycm93cyI+PHBhdGggZD0iTTkuMDEgMTRIMnYyaDcuMDF2M0wxMyAxNWwtMy45OS00djN6bTUuOTgtMXYtM0gyMlY4aC03LjAxVjVMMTEgOWwzLjk5IDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29udGVudC1jb3B5Ij48cGF0aCBkPSJNMTYgMUg0Yy0xLjEgMC0yIC45LTIgMnYxNGgyVjNoMTJWMXptMyA0SDhjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTFjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptMCAxNkg4VjdoMTF2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29udGVudC1jdXQiPjxwYXRoIGQ9Ik05LjY0IDcuNjRjLjIzLS41LjM2LTEuMDUuMzYtMS42NCAwLTIuMjEtMS43OS00LTQtNFMyIDMuNzkgMiA2czEuNzkgNCA0IDRjLjU5IDAgMS4xNC0uMTMgMS42NC0uMzZMMTAgMTJsLTIuMzYgMi4zNkM3LjE0IDE0LjEzIDYuNTkgMTQgNiAxNGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00YzAtLjU5LS4xMy0xLjE0LS4zNi0xLjY0TDEyIDE0bDcgN2gzdi0xTDkuNjQgNy42NHpNNiA4Yy0xLjEgMC0yLS44OS0yLTJzLjktMiAyLTIgMiAuODkgMiAyLS45IDItMiAyem0wIDEyYy0xLjEgMC0yLS44OS0yLTJzLjktMiAyLTIgMiAuODkgMiAyLS45IDItMiAyem02LTcuNWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41LjUuMjIuNS41LS4yMi41LS41LjV6TTE5IDNsLTYgNiAyIDIgNy03VjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29udGVudC1wYXN0ZSI+PHBhdGggZD0iTTE5IDJoLTQuMThDMTQuNC44NCAxMy4zIDAgMTIgMGMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptNyAxOEg1VjRoMnYzaDEwVjRoMnYxNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb3B5cmlnaHQiPjxwYXRoIGQ9Ik0xMC4wOCAxMC44NmMuMDUtLjMzLjE2LS42Mi4zLS44N3MuMzQtLjQ2LjU5LS42MmMuMjQtLjE1LjU0LS4yMi45MS0uMjMuMjMuMDEuNDQuMDUuNjMuMTMuMi4wOS4zOC4yMS41Mi4zNnMuMjUuMzMuMzQuNTMuMTMuNDIuMTQuNjRoMS43OWMtLjAyLS40Ny0uMTEtLjktLjI4LTEuMjlzLS40LS43My0uNy0xLjAxLS42Ni0uNS0xLjA4LS42Ni0uODgtLjIzLTEuMzktLjIzYy0uNjUgMC0xLjIyLjExLTEuNy4zNHMtLjg4LjUzLTEuMi45Mi0uNTYuODQtLjcxIDEuMzZTOCAxMS4yOSA4IDExLjg3di4yN2MwIC41OC4wOCAxLjEyLjIzIDEuNjRzLjM5Ljk3LjcxIDEuMzUuNzIuNjkgMS4yLjkxIDEuMDUuMzQgMS43LjM0Yy40NyAwIC45MS0uMDggMS4zMi0uMjNzLjc3LS4zNiAxLjA4LS42My41Ni0uNTguNzQtLjk0LjI5LS43NC4zLTEuMTVoLTEuNzljLS4wMS4yMS0uMDYuNC0uMTUuNThzLS4yMS4zMy0uMzYuNDYtLjMyLjIzLS41Mi4zYy0uMTkuMDctLjM5LjA5LS42LjEtLjM2LS4wMS0uNjYtLjA4LS44OS0uMjMtLjI1LS4xNi0uNDUtLjM3LS41OS0uNjJzLS4yNS0uNTUtLjMtLjg4LS4wOC0uNjctLjA4LTF2LS4yN2MwLS4zNS4wMy0uNjguMDgtMS4wMXpNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JlYXRlIj48cGF0aCBkPSJNMyAxNy4yNVYyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NUwzIDE3LjI1ek0yMC43MSA3LjA0Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFsLTIuMzQtMi4zNGMtLjM5LS4zOS0xLjAyLS4zOS0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyZWF0ZS1uZXctZm9sZGVyIj48cGF0aCBkPSJNMjAgNmgtOGwtMi0ySDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjhjMC0xLjExLS44OS0yLTItMnptLTEgOGgtM3YzaC0ydi0zaC0zdi0yaDNWOWgydjNoM3YyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyZWRpdC1jYXJkIj48cGF0aCBkPSJNMjAgNEg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY2YzAtMS4xMS0uODktMi0yLTJ6bTAgMTRINHYtNmgxNnY2em0wLTEwSDRWNmgxNnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRhc2hib2FyZCI+PHBhdGggZD0iTTMgMTNoOFYzSDN2MTB6bTAgOGg4di02SDN2NnptMTAgMGg4VjExaC04djEwem0wLTE4djZoOFYzaC04eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRhdGUtcmFuZ2UiPjxwYXRoIGQ9Ik05IDExSDd2Mmgydi0yem00IDBoLTJ2Mmgydi0yem00IDBoLTJ2Mmgydi0yem0yLTdoLTFWMmgtMnYySDhWMkg2djJINWMtMS4xMSAwLTEuOTkuOS0xLjk5IDJMMyAyMGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE2SDVWOWgxNHYxMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJkZWxldGUiPjxwYXRoIGQ9Ik02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6TTE5IDRoLTMuNWwtMS0xaC01bC0xIDFINXYyaDE0VjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZGVsZXRlLWZvcmV2ZXIiPjxwYXRoIGQ9Ik02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6bTIuNDYtNy4xMmwxLjQxLTEuNDFMMTIgMTIuNTlsMi4xMi0yLjEyIDEuNDEgMS40MUwxMy40MSAxNGwyLjEyIDIuMTItMS40MSAxLjQxTDEyIDE1LjQxbC0yLjEyIDIuMTItMS40MS0xLjQxTDEwLjU5IDE0bC0yLjEzLTIuMTJ6TTE1LjUgNGwtMS0xaC01bC0xIDFINXYyaDE0VjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZGVsZXRlLXN3ZWVwIj48cGF0aCBkPSJNMTUgMTZoNHYyaC00em0wLThoN3YyaC03em0wIDRoNnYyaC02ek0zIDE4YzAgMS4xLjkgMiAyIDJoNmMxLjEgMCAyLS45IDItMlY4SDN2MTB6TTE0IDVoLTNsLTEtMUg2TDUgNUgydjJoMTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZGVzY3JpcHRpb24iPjxwYXRoIGQ9Ik0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTIgMTZIOHYtMmg4djJ6bTAtNEg4di0yaDh2MnptLTMtNVYzLjVMMTguNSA5SDEzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRucyI+PHBhdGggZD0iTTIwIDEzSDRjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDE2Yy41NSAwIDEtLjQ1IDEtMXYtNmMwLS41NS0uNDUtMS0xLTF6TTcgMTljLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyek0yMCAzSDRjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDE2Yy41NSAwIDEtLjQ1IDEtMVY0YzAtLjU1LS40NS0xLTEtMXpNNyA5Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJkb25lIj48cGF0aCBkPSJNOSAxNi4yTDQuOCAxMmwtMS40IDEuNEw5IDE5IDIxIDdsLTEuNC0xLjRMOSAxNi4yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRvbmUtYWxsIj48cGF0aCBkPSJNMTggN2wtMS40MS0xLjQxLTYuMzQgNi4zNCAxLjQxIDEuNDFMMTggN3ptNC4yNC0xLjQxTDExLjY2IDE2LjE3IDcuNDggMTJsLTEuNDEgMS40MUwxMS42NiAxOWwxMi0xMi0xLjQyLTEuNDF6TS40MSAxMy40MUw2IDE5bDEuNDEtMS40MUwxLjgzIDEyIC40MSAxMy40MXoiPjwvcGF0aD48L2c+CjxnIGlkPSJkb251dC1sYXJnZSI+PHBhdGggZD0iTTExIDUuMDhWMmMtNSAuNS05IDQuODEtOSAxMHM0IDkuNSA5IDEwdi0zLjA4Yy0zLS40OC02LTMuNC02LTYuOTJzMy02LjQ0IDYtNi45MnpNMTguOTcgMTFIMjJjLS40Ny01LTQtOC41My05LTl2My4wOEMxNiA1LjUxIDE4LjU0IDggMTguOTcgMTF6TTEzIDE4LjkyVjIyYzUtLjQ3IDguNTMtNCA5LTloLTMuMDNjLS40MyAzLTIuOTcgNS40OS01Ljk3IDUuOTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZG9udXQtc21hbGwiPjxwYXRoIGQ9Ik0xMSA5LjE2VjJjLTUgLjUtOSA0Ljc5LTkgMTBzNCA5LjUgOSAxMHYtNy4xNmMtMS0uNDEtMi0xLjUyLTItMi44NHMxLTIuNDMgMi0yLjg0ek0xNC44NiAxMUgyMmMtLjQ4LTQuNzUtNC04LjUzLTktOXY3LjE2YzEgLjMgMS41Mi45OCAxLjg2IDEuODR6TTEzIDE0Ljg0VjIyYzUtLjQ3IDguNTItNC4yNSA5LTloLTcuMTRjLS4zNC44Ni0uODYgMS41NC0xLjg2IDEuODR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZHJhZnRzIj48cGF0aCBkPSJNMjEuOTkgOGMwLS43Mi0uMzctMS4zNS0uOTQtMS43TDEyIDEgMi45NSA2LjNDMi4zOCA2LjY1IDIgNy4yOCAyIDh2MTBjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMmwtLjAxLTEwek0xMiAxM0wzLjc0IDcuODQgMTIgM2w4LjI2IDQuODRMMTIgMTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZWplY3QiPjxwYXRoIGQ9Ik01IDE3aDE0djJINXptNy0xMkw1LjMzIDE1aDEzLjM0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImVycm9yIj48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtMmgydjJ6bTAtNGgtMlY3aDJ2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJlcnJvci1vdXRsaW5lIj48cGF0aCBkPSJNMTEgMTVoMnYyaC0yem0wLThoMnY2aC0yem0uOTktNUM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV1cm8tc3ltYm9sIj48cGF0aCBkPSJNMTUgMTguNWMtMi41MSAwLTQuNjgtMS40Mi01Ljc2LTMuNUgxNXYtMkg4LjU4Yy0uMDUtLjMzLS4wOC0uNjYtLjA4LTFzLjAzLS42Ny4wOC0xSDE1VjlIOS4yNEMxMC4zMiA2LjkyIDEyLjUgNS41IDE1IDUuNWMxLjYxIDAgMy4wOS41OSA0LjIzIDEuNTdMMjEgNS4zQzE5LjQxIDMuODcgMTcuMyAzIDE1IDNjLTMuOTIgMC03LjI0IDIuNTEtOC40OCA2SDN2MmgzLjA2Yy0uMDQuMzMtLjA2LjY2LS4wNiAxIDAgLjM0LjAyLjY3LjA2IDFIM3YyaDMuNTJjMS4yNCAzLjQ5IDQuNTYgNiA4LjQ4IDYgMi4zMSAwIDQuNDEtLjg3IDYtMi4zbC0xLjc4LTEuNzdjLTEuMTMuOTgtMi42IDEuNTctNC4yMiAxLjU3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV2ZW50Ij48cGF0aCBkPSJNMTcgMTJoLTV2NWg1di01ek0xNiAxdjJIOFYxSDZ2Mkg1Yy0xLjExIDAtMS45OS45LTEuOTkgMkwzIDE5YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJoLTFWMWgtMnptMyAxOEg1VjhoMTR2MTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXZlbnQtc2VhdCI+PHBhdGggZD0iTTQgMTh2M2gzdi0zaDEwdjNoM3YtNkg0em0xNS04aDN2M2gtM3pNMiAxMGgzdjNIMnptMTUgM0g3VjVjMC0xLjEuOS0yIDItMmg2YzEuMSAwIDIgLjkgMiAydjh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXhpdC10by1hcHAiPjxwYXRoIGQ9Ik0xMC4wOSAxNS41OUwxMS41IDE3bDUtNS01LTUtMS40MSAxLjQxTDEyLjY3IDExSDN2Mmg5LjY3bC0yLjU4IDIuNTl6TTE5IDNINWMtMS4xMSAwLTIgLjktMiAydjRoMlY1aDE0djE0SDV2LTRIM3Y0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXhwYW5kLWxlc3MiPjxwYXRoIGQ9Ik0xMiA4bC02IDYgMS40MSAxLjQxTDEyIDEwLjgzbDQuNTkgNC41OEwxOCAxNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJleHBhbmQtbW9yZSI+PHBhdGggZD0iTTE2LjU5IDguNTlMMTIgMTMuMTcgNy40MSA4LjU5IDYgMTBsNiA2IDYtNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJleHBsb3JlIj48cGF0aCBkPSJNMTIgMTAuOWMtLjYxIDAtMS4xLjQ5LTEuMSAxLjFzLjQ5IDEuMSAxLjEgMS4xYy42MSAwIDEuMS0uNDkgMS4xLTEuMXMtLjQ5LTEuMS0xLjEtMS4xek0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0yLjE5IDEyLjE5TDYgMThsMy44MS04LjE5TDE4IDZsLTMuODEgOC4xOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJleHRlbnNpb24iPjxwYXRoIGQ9Ik0yMC41IDExSDE5VjdjMC0xLjEtLjktMi0yLTJoLTRWMy41QzEzIDIuMTIgMTEuODggMSAxMC41IDFTOCAyLjEyIDggMy41VjVINGMtMS4xIDAtMS45OS45LTEuOTkgMnYzLjhIMy41YzEuNDkgMCAyLjcgMS4yMSAyLjcgMi43cy0xLjIxIDIuNy0yLjcgMi43SDJWMjBjMCAxLjEuOSAyIDIgMmgzLjh2LTEuNWMwLTEuNDkgMS4yMS0yLjcgMi43LTIuNyAxLjQ5IDAgMi43IDEuMjEgMi43IDIuN1YyMkgxN2MxLjEgMCAyLS45IDItMnYtNGgxLjVjMS4zOCAwIDIuNS0xLjEyIDIuNS0yLjVTMjEuODggMTEgMjAuNSAxMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJmYWNlIj48cGF0aCBkPSJNOSAxMS43NWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjVzLjU2IDEuMjUgMS4yNSAxLjI1IDEuMjUtLjU2IDEuMjUtMS4yNS0uNTYtMS4yNS0xLjI1LTEuMjV6bTYgMGMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjVzLjU2IDEuMjUgMS4yNSAxLjI1IDEuMjUtLjU2IDEuMjUtMS4yNS0uNTYtMS4yNS0xLjI1LTEuMjV6TTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04IDAtLjI5LjAyLS41OC4wNS0uODYgMi4zNi0xLjA1IDQuMjMtMi45OCA1LjIxLTUuMzdDMTEuMDcgOC4zMyAxNC4wNSAxMCAxNy40MiAxMGMuNzggMCAxLjUzLS4wOSAyLjI1LS4yNi4yMS43MS4zMyAxLjQ3LjMzIDIuMjYgMCA0LjQxLTMuNTkgOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmF2b3JpdGUiPjxwYXRoIGQ9Ik0xMiAyMS4zNWwtMS40NS0xLjMyQzUuNCAxNS4zNiAyIDEyLjI4IDIgOC41IDIgNS40MiA0LjQyIDMgNy41IDNjMS43NCAwIDMuNDEuODEgNC41IDIuMDlDMTMuMDkgMy44MSAxNC43NiAzIDE2LjUgMyAxOS41OCAzIDIyIDUuNDIgMjIgOC41YzAgMy43OC0zLjQgNi44Ni04LjU1IDExLjU0TDEyIDIxLjM1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZhdm9yaXRlLWJvcmRlciI+PHBhdGggZD0iTTE2LjUgM2MtMS43NCAwLTMuNDEuODEtNC41IDIuMDlDMTAuOTEgMy44MSA5LjI0IDMgNy41IDMgNC40MiAzIDIgNS40MiAyIDguNWMwIDMuNzggMy40IDYuODYgOC41NSAxMS41NEwxMiAyMS4zNWwxLjQ1LTEuMzJDMTguNiAxNS4zNiAyMiAxMi4yOCAyMiA4LjUgMjIgNS40MiAxOS41OCAzIDE2LjUgM3ptLTQuNCAxNS41NWwtLjEuMS0uMS0uMUM3LjE0IDE0LjI0IDQgMTEuMzkgNCA4LjUgNCA2LjUgNS41IDUgNy41IDVjMS41NCAwIDMuMDQuOTkgMy41NyAyLjM2aDEuODdDMTMuNDYgNS45OSAxNC45NiA1IDE2LjUgNWMyIDAgMy41IDEuNSAzLjUgMy41IDAgMi44OS0zLjE0IDUuNzQtNy45IDEwLjA1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZlZWRiYWNrIj48cGF0aCBkPSJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDEyaC0ydi0yaDJ2MnptMC00aC0yVjZoMnY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbGUtZG93bmxvYWQiPjxwYXRoIGQ9Ik0xOSA5aC00VjNIOXY2SDVsNyA3IDctN3pNNSAxOHYyaDE0di0ySDV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsZS11cGxvYWQiPjxwYXRoIGQ9Ik05IDE2aDZ2LTZoNGwtNy03LTcgN2g0em0tNCAyaDE0djJINXoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWx0ZXItbGlzdCI+PHBhdGggZD0iTTEwIDE4aDR2LTJoLTR2MnpNMyA2djJoMThWNkgzem0zIDdoMTJ2LTJINnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbmQtaW4tcGFnZSI+PHBhdGggZD0iTTIwIDE5LjU5VjhsLTYtNkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjLjQ1IDAgLjg1LS4xNSAxLjE5LS40bC00LjQzLTQuNDNjLS44LjUyLTEuNzQuODMtMi43Ni44My0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDVjMCAxLjAyLS4zMSAxLjk2LS44MyAyLjc1TDIwIDE5LjU5ek05IDEzYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTMtMS4zNC0zLTMtMy0zIDEuMzQtMyAzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbmQtcmVwbGFjZSI+PHBhdGggZD0iTTExIDZjMS4zOCAwIDIuNjMuNTYgMy41NCAxLjQ2TDEyIDEwaDZWNGwtMi4wNSAyLjA1QzE0LjY4IDQuNzggMTIuOTMgNCAxMSA0Yy0zLjUzIDAtNi40MyAyLjYxLTYuOTIgNkg2LjFjLjQ2LTIuMjggMi40OC00IDQuOS00em01LjY0IDkuMTRjLjY2LS45IDEuMTItMS45NyAxLjI4LTMuMTRIMTUuOWMtLjQ2IDIuMjgtMi40OCA0LTQuOSA0LTEuMzggMC0yLjYzLS41Ni0zLjU0LTEuNDZMMTAgMTJINHY2bDIuMDUtMi4wNUM3LjMyIDE3LjIyIDkuMDcgMTggMTEgMThjMS41NSAwIDIuOTgtLjUxIDQuMTQtMS4zNkwyMCAyMS40OSAyMS40OSAyMGwtNC44NS00Ljg2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbmdlcnByaW50Ij48cGF0aCBkPSJNMTcuODEgNC40N2MtLjA4IDAtLjE2LS4wMi0uMjMtLjA2QzE1LjY2IDMuNDIgMTQgMyAxMi4wMSAzYy0xLjk4IDAtMy44Ni40Ny01LjU3IDEuNDEtLjI0LjEzLS41NC4wNC0uNjgtLjItLjEzLS4yNC0uMDQtLjU1LjItLjY4QzcuODIgMi41MiA5Ljg2IDIgMTIuMDEgMmMyLjEzIDAgMy45OS40NyA2LjAzIDEuNTIuMjUuMTMuMzQuNDMuMjEuNjctLjA5LjE4LS4yNi4yOC0uNDQuMjh6TTMuNSA5LjcyYy0uMSAwLS4yLS4wMy0uMjktLjA5LS4yMy0uMTYtLjI4LS40Ny0uMTItLjcuOTktMS40IDIuMjUtMi41IDMuNzUtMy4yN0M5Ljk4IDQuMDQgMTQgNC4wMyAxNy4xNSA1LjY1YzEuNS43NyAyLjc2IDEuODYgMy43NSAzLjI1LjE2LjIyLjExLjU0LS4xMi43LS4yMy4xNi0uNTQuMTEtLjctLjEyLS45LTEuMjYtMi4wNC0yLjI1LTMuMzktMi45NC0yLjg3LTEuNDctNi41NC0xLjQ3LTkuNC4wMS0xLjM2LjctMi41IDEuNy0zLjQgMi45Ni0uMDguMTQtLjIzLjIxLS4zOS4yMXptNi4yNSAxMi4wN2MtLjEzIDAtLjI2LS4wNS0uMzUtLjE1LS44Ny0uODctMS4zNC0xLjQzLTIuMDEtMi42NC0uNjktMS4yMy0xLjA1LTIuNzMtMS4wNS00LjM0IDAtMi45NyAyLjU0LTUuMzkgNS42Ni01LjM5czUuNjYgMi40MiA1LjY2IDUuMzljMCAuMjgtLjIyLjUtLjUuNXMtLjUtLjIyLS41LS41YzAtMi40Mi0yLjA5LTQuMzktNC42Ni00LjM5LTIuNTcgMC00LjY2IDEuOTctNC42NiA0LjM5IDAgMS40NC4zMiAyLjc3LjkzIDMuODUuNjQgMS4xNSAxLjA4IDEuNjQgMS44NSAyLjQyLjE5LjIuMTkuNTEgMCAuNzEtLjExLjEtLjI0LjE1LS4zNy4xNXptNy4xNy0xLjg1Yy0xLjE5IDAtMi4yNC0uMy0zLjEtLjg5LTEuNDktMS4wMS0yLjM4LTIuNjUtMi4zOC00LjM5IDAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41YzAgMS40MS43MiAyLjc0IDEuOTQgMy41Ni43MS40OCAxLjU0LjcxIDIuNTQuNzEuMjQgMCAuNjQtLjAzIDEuMDQtLjEuMjctLjA1LjUzLjEzLjU4LjQxLjA1LjI3LS4xMy41My0uNDEuNTgtLjU3LjExLTEuMDcuMTItMS4yMS4xMnpNMTQuOTEgMjJjLS4wNCAwLS4wOS0uMDEtLjEzLS4wMi0xLjU5LS40NC0yLjYzLTEuMDMtMy43Mi0yLjEtMS40LTEuMzktMi4xNy0zLjI0LTIuMTctNS4yMiAwLTEuNjIgMS4zOC0yLjk0IDMuMDgtMi45NCAxLjcgMCAzLjA4IDEuMzIgMy4wOCAyLjk0IDAgMS4wNy45MyAxLjk0IDIuMDggMS45NHMyLjA4LS44NyAyLjA4LTEuOTRjMC0zLjc3LTMuMjUtNi44My03LjI1LTYuODMtMi44NCAwLTUuNDQgMS41OC02LjYxIDQuMDMtLjM5LjgxLS41OSAxLjc2LS41OSAyLjggMCAuNzguMDcgMi4wMS42NyAzLjYxLjEuMjYtLjAzLjU1LS4yOS42NC0uMjYuMS0uNTUtLjA0LS42NC0uMjktLjQ5LTEuMzEtLjczLTIuNjEtLjczLTMuOTYgMC0xLjIuMjMtMi4yOS42OC0zLjI0IDEuMzMtMi43OSA0LjI4LTQuNiA3LjUxLTQuNiA0LjU1IDAgOC4yNSAzLjUxIDguMjUgNy44MyAwIDEuNjItMS4zOCAyLjk0LTMuMDggMi45NHMtMy4wOC0xLjMyLTMuMDgtMi45NGMwLTEuMDctLjkzLTEuOTQtMi4wOC0xLjk0cy0yLjA4Ljg3LTIuMDggMS45NGMwIDEuNzEuNjYgMy4zMSAxLjg3IDQuNTEuOTUuOTQgMS44NiAxLjQ2IDMuMjcgMS44NS4yNy4wNy40Mi4zNS4zNS42MS0uMDUuMjMtLjI2LjM4LS40Ny4zOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaXJzdC1wYWdlIj48cGF0aCBkPSJNMTguNDEgMTYuNTlMMTMuODIgMTJsNC41OS00LjU5TDE3IDZsLTYgNiA2IDZ6TTYgNmgydjEySDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxhZyI+PHBhdGggZD0iTTE0LjQgNkwxNCA0SDV2MTdoMnYtN2g1LjZsLjQgMmg3VjZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxpZ2h0LWxhbmQiPjxwYXRoIGQ9Ik0yLjUgMTloMTl2MmgtMTl6bTcuMTgtNS43M2w0LjM1IDEuMTYgNS4zMSAxLjQyYy44LjIxIDEuNjItLjI2IDEuODQtMS4wNi4yMS0uOC0uMjYtMS42Mi0xLjA2LTEuODRsLTUuMzEtMS40Mi0yLjc2LTkuMDJMMTAuMTIgMnY4LjI4TDUuMTUgOC45NWwtLjkzLTIuMzItMS40NS0uMzl2NS4xN2wxLjYuNDMgNS4zMSAxLjQzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZsaWdodC10YWtlb2ZmIj48cGF0aCBkPSJNMi41IDE5aDE5djJoLTE5em0xOS41Ny05LjM2Yy0uMjEtLjgtMS4wNC0xLjI4LTEuODQtMS4wNkwxNC45MiAxMGwtNi45LTYuNDMtMS45My41MSA0LjE0IDcuMTctNC45NyAxLjMzLTEuOTctMS41NC0xLjQ1LjM5IDEuODIgMy4xNi43NyAxLjMzIDEuNi0uNDMgNS4zMS0xLjQyIDQuMzUtMS4xNkwyMSAxMS40OWMuODEtLjIzIDEuMjgtMS4wNSAxLjA3LTEuODV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxpcC10by1iYWNrIj48cGF0aCBkPSJNOSA3SDd2MmgyVjd6bTAgNEg3djJoMnYtMnptMC04Yy0xLjExIDAtMiAuOS0yIDJoMlYzem00IDEyaC0ydjJoMnYtMnptNi0xMnYyaDJjMC0xLjEtLjktMi0yLTJ6bS02IDBoLTJ2MmgyVjN6TTkgMTd2LTJIN2MwIDEuMS44OSAyIDIgMnptMTAtNGgydi0yaC0ydjJ6bTAtNGgyVjdoLTJ2MnptMCA4YzEuMSAwIDItLjkgMi0yaC0ydjJ6TTUgN0gzdjEyYzAgMS4xLjg5IDIgMiAyaDEydi0ySDVWN3ptMTAtMmgyVjNoLTJ2MnptMCAxMmgydi0yaC0ydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxpcC10by1mcm9udCI+PHBhdGggZD0iTTMgMTNoMnYtMkgzdjJ6bTAgNGgydi0ySDN2MnptMiA0di0ySDNjMCAxLjEuODkgMiAyIDJ6TTMgOWgyVjdIM3Yyem0xMiAxMmgydi0yaC0ydjJ6bTQtMThIOWMtMS4xMSAwLTIgLjktMiAydjEwYzAgMS4xLjg5IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTJIOVY1aDEwdjEwem0tOCA2aDJ2LTJoLTJ2MnptLTQgMGgydi0ySDd2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmb2xkZXIiPjxwYXRoIGQ9Ik0xMCA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJoLThsLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmb2xkZXItb3BlbiI+PHBhdGggZD0iTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEySDRWOGgxNnYxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmb2xkZXItc2hhcmVkIj48cGF0aCBkPSJNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bS01IDNjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yem00IDhoLTh2LTFjMC0xLjMzIDIuNjctMiA0LTJzNCAuNjcgNCAydjF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZm9udC1kb3dubG9hZCI+PHBhdGggZD0iTTkuOTMgMTMuNWg0LjE0TDEyIDcuOTh6TTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNC4wNSAxNi41bC0xLjE0LTNIOS4xN2wtMS4xMiAzSDUuOTZsNS4xMS0xM2gxLjg2bDUuMTEgMTNoLTIuMDl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZm9yd2FyZCI+PHBhdGggZD0iTTEyIDhWNGw4IDgtOCA4di00SDRWOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmdWxsc2NyZWVuIj48cGF0aCBkPSJNNyAxNEg1djVoNXYtMkg3di0zem0tMi00aDJWN2gzVjVINXY1em0xMiA3aC0zdjJoNXYtNWgtMnYzek0xNCA1djJoM3YzaDJWNWgtNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJmdWxsc2NyZWVuLWV4aXQiPjxwYXRoIGQ9Ik01IDE2aDN2M2gydi01SDV2MnptMy04SDV2Mmg1VjVIOHYzem02IDExaDJ2LTNoM3YtMmgtNXY1em0yLTExVjVoLTJ2NWg1VjhoLTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZy10cmFuc2xhdGUiPjxwYXRoIGQ9Ik0yMCA1aC05LjEyTDEwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTNjMCAxLjEuOSAyIDIgMmg3bDEgM2g4YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6TTcuMTcgMTQuNTljLTIuMjUgMC00LjA5LTEuODMtNC4wOS00LjA5czEuODMtNC4wOSA0LjA5LTQuMDljMS4wNCAwIDEuOTkuMzcgMi43NCAxLjA3bC4wNy4wNi0xLjIzIDEuMTgtLjA2LS4wNWMtLjI5LS4yNy0uNzgtLjU5LTEuNTItLjU5LTEuMzEgMC0yLjM4IDEuMDktMi4zOCAyLjQyczEuMDcgMi40MiAyLjM4IDIuNDJjMS4zNyAwIDEuOTYtLjg3IDIuMTItMS40Nkg3LjA4VjkuOTFoMy45NWwuMDEuMDdjLjA0LjIxLjA1LjQuMDUuNjEgMCAyLjM1LTEuNjEgNC0zLjkyIDR6bTYuMDMtMS43MWMuMzMuNi43NCAxLjE4IDEuMTkgMS43bC0uNTQuNTMtLjY1LTIuMjN6bS43Ny0uNzZoLS45OWwtLjMxLTEuMDRoMy45OXMtLjM0IDEuMzEtMS41NiAyLjc0Yy0uNTItLjYyLS44OS0xLjIzLTEuMTMtMS43ek0yMSAyMGMwIC41NS0uNDUgMS0xIDFoLTdsMi0yLS44MS0yLjc3LjkyLS45MkwxNy43OSAxOGwuNzMtLjczLTIuNzEtMi42OGMuOS0xLjAzIDEuNi0yLjI1IDEuOTItMy41MUgxOXYtMS4wNGgtMy42NFY5aC0xLjA0djEuMDRoLTEuOTZMMTEuMTggNkgyMGMuNTUgMCAxIC40NSAxIDF2MTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZ2F2ZWwiPjxwYXRoIGQ9Ik0xIDIxaDEydjJIMXpNNS4yNDUgOC4wN2wyLjgzLTIuODI3IDE0LjE0IDE0LjE0Mi0yLjgyOCAyLjgyOHpNMTIuMzE3IDFsNS42NTcgNS42NTYtMi44MyAyLjgzLTUuNjU0LTUuNjZ6TTMuODI1IDkuNDg1bDUuNjU3IDUuNjU3LTIuODI4IDIuODI4LTUuNjU3LTUuNjU3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imdlc3R1cmUiPjxwYXRoIGQ9Ik00LjU5IDYuODljLjctLjcxIDEuNC0xLjM1IDEuNzEtMS4yMi41LjIgMCAxLjAzLS4zIDEuNTItLjI1LjQyLTIuODYgMy44OS0yLjg2IDYuMzEgMCAxLjI4LjQ4IDIuMzQgMS4zNCAyLjk4Ljc1LjU2IDEuNzQuNzMgMi42NC40NiAxLjA3LS4zMSAxLjk1LTEuNCAzLjA2LTIuNzcgMS4yMS0xLjQ5IDIuODMtMy40NCA0LjA4LTMuNDQgMS42MyAwIDEuNjUgMS4wMSAxLjc2IDEuNzktMy43OC42NC01LjM4IDMuNjctNS4zOCA1LjM3IDAgMS43IDEuNDQgMy4wOSAzLjIxIDMuMDkgMS42MyAwIDQuMjktMS4zMyA0LjY5LTYuMUgyMXYtMi41aC0yLjQ3Yy0uMTUtMS42NS0xLjA5LTQuMi00LjAzLTQuMi0yLjI1IDAtNC4xOCAxLjkxLTQuOTQgMi44NC0uNTguNzMtMi4wNiAyLjQ4LTIuMjkgMi43Mi0uMjUuMy0uNjguODQtMS4xMS44NC0uNDUgMC0uNzItLjgzLS4zNi0xLjkyLjM1LTEuMDkgMS40LTIuODYgMS44NS0zLjUyLjc4LTEuMTQgMS4zLTEuOTIgMS4zLTMuMjhDOC45NSAzLjY5IDcuMzEgMyA2LjQ0IDMgNS4xMiAzIDMuOTcgNCAzLjcyIDQuMjVjLS4zNi4zNi0uNjYuNjYtLjg4LjkzbDEuNzUgMS43MXptOS4yOSAxMS42NmMtLjMxIDAtLjc0LS4yNi0uNzQtLjcyIDAtLjYuNzMtMi4yIDIuODctMi43Ni0uMyAyLjY5LTEuNDMgMy40OC0yLjEzIDMuNDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZ2V0LWFwcCI+PHBhdGggZD0iTTE5IDloLTRWM0g5djZINWw3IDcgNy03ek01IDE4djJoMTR2LTJINXoiPjwvcGF0aD48L2c+CjxnIGlkPSJnaWYiPjxwYXRoIGQ9Ik0xMS41IDlIMTN2NmgtMS41ek05IDlINmMtLjYgMC0xIC41LTEgMXY0YzAgLjUuNCAxIDEgMWgzYy42IDAgMS0uNSAxLTF2LTJIOC41djEuNWgtMnYtM0gxMFYxMGMwLS41LS40LTEtMS0xem0xMCAxLjVWOWgtNC41djZIMTZ2LTJoMnYtMS41aC0ydi0xeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImdyYWRlIj48cGF0aCBkPSJNMTIgMTcuMjdMMTguMTggMjFsLTEuNjQtNy4wM0wyMiA5LjI0bC03LjE5LS42MUwxMiAyIDkuMTkgOC42MyAyIDkuMjRsNS40NiA0LjczTDUuODIgMjF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZ3JvdXAtd29yayI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTggMTcuNWMtMS4zOCAwLTIuNS0xLjEyLTIuNS0yLjVzMS4xMi0yLjUgMi41LTIuNSAyLjUgMS4xMiAyLjUgMi41LTEuMTIgMi41LTIuNSAyLjV6TTkuNSA4YzAtMS4zOCAxLjEyLTIuNSAyLjUtMi41czIuNSAxLjEyIDIuNSAyLjUtMS4xMiAyLjUtMi41IDIuNVM5LjUgOS4zOCA5LjUgOHptNi41IDkuNWMtMS4zOCAwLTIuNS0xLjEyLTIuNS0yLjVzMS4xMi0yLjUgMi41LTIuNSAyLjUgMS4xMiAyLjUgMi41LTEuMTIgMi41LTIuNSAyLjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaGVscCI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMTdoLTJ2LTJoMnYyem0yLjA3LTcuNzVsLS45LjkyQzEzLjQ1IDEyLjkgMTMgMTMuNSAxMyAxNWgtMnYtLjVjMC0xLjEuNDUtMi4xIDEuMTctMi44M2wxLjI0LTEuMjZjLjM3LS4zNi41OS0uODYuNTktMS40MSAwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJIOGMwLTIuMjEgMS43OS00IDQtNHM0IDEuNzkgNCA0YzAgLjg4LS4zNiAxLjY4LS45MyAyLjI1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImhlbHAtb3V0bGluZSI+PHBhdGggZD0iTTExIDE4aDJ2LTJoLTJ2MnptMS0xNkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTAtMTRjLTIuMjEgMC00IDEuNzktNCA0aDJjMC0xLjEuOS0yIDItMnMyIC45IDIgMmMwIDItMyAxLjc1LTMgNWgyYzAtMi4yNSAzLTIuNSAzLTUgMC0yLjIxLTEuNzktNC00LTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaGlnaGxpZ2h0LW9mZiI+PHBhdGggZD0iTTE0LjU5IDhMMTIgMTAuNTkgOS40MSA4IDggOS40MSAxMC41OSAxMiA4IDE0LjU5IDkuNDEgMTYgMTIgMTMuNDEgMTQuNTkgMTYgMTYgMTQuNTkgMTMuNDEgMTIgMTYgOS40MSAxNC41OSA4ek0xMiAyQzYuNDcgMiAyIDYuNDcgMiAxMnM0LjQ3IDEwIDEwIDEwIDEwLTQuNDcgMTAtMTBTMTcuNTMgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJoaXN0b3J5Ij48cGF0aCBkPSJNMTMgM2MtNC45NyAwLTkgNC4wMy05IDlIMWwzLjg5IDMuODkuMDcuMTRMOSAxMkg2YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS45MyAwLTMuNjgtLjc5LTQuOTQtMi4wNmwtMS40MiAxLjQyQzguMjcgMTkuOTkgMTAuNTEgMjEgMTMgMjFjNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6bS0xIDV2NWw0LjI4IDIuNTQuNzItMS4yMS0zLjUtMi4wOFY4SDEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImhvbWUiPjxwYXRoIGQ9Ik0xMCAyMHYtNmg0djZoNXYtOGgzTDEyIDMgMiAxMmgzdjh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaG91cmdsYXNzLWVtcHR5Ij48cGF0aCBkPSJNNiAydjZoLjAxTDYgOC4wMSAxMCAxMmwtNCA0IC4wMS4wMUg2VjIyaDEydi01Ljk5aC0uMDFMMTggMTZsLTQtNCA0LTMuOTktLjAxLS4wMUgxOFYySDZ6bTEwIDE0LjVWMjBIOHYtMy41bDQtNCA0IDR6bS00LTVsLTQtNFY0aDh2My41bC00IDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaG91cmdsYXNzLWZ1bGwiPjxwYXRoIGQ9Ik02IDJ2NmguMDFMNiA4LjAxIDEwIDEybC00IDQgLjAxLjAxSDZWMjJoMTJ2LTUuOTloLS4wMUwxOCAxNmwtNC00IDQtMy45OS0uMDEtLjAxSDE4VjJINnoiPjwvcGF0aD48L2c+CjxnIGlkPSJodHRwIj48cGF0aCBkPSJNNC41IDExaC0yVjlIMXY2aDEuNXYtMi41aDJWMTVINlY5SDQuNXYyem0yLjUtLjVoMS41VjE1SDEwdi00LjVoMS41VjlIN3YxLjV6bTUuNSAwSDE0VjE1aDEuNXYtNC41SDE3VjloLTQuNXYxLjV6bTktMS41SDE4djZoMS41di0yaDJjLjggMCAxLjUtLjcgMS41LTEuNXYtMWMwLS44LS43LTEuNS0xLjUtMS41em0wIDIuNWgtMnYtMWgydjF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaHR0cHMiPjxwYXRoIGQ9Ik0xOCA4aC0xVjZjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNnYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6bS02IDljLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyem0zLjEtOUg4LjlWNmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMSAxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImltcG9ydGFudC1kZXZpY2VzIj48cGF0aCBkPSJNMjMgMTEuMDFMMTggMTFjLS41NSAwLTEgLjQ1LTEgMXY5YzAgLjU1LjQ1IDEgMSAxaDVjLjU1IDAgMS0uNDUgMS0xdi05YzAtLjU1LS40NS0uOTktMS0uOTl6TTIzIDIwaC01di03aDV2N3pNMjAgMkgyQy44OSAyIDAgMi44OSAwIDR2MTJjMCAxLjEuODkgMiAyIDJoN3YySDd2Mmg4di0yaC0ydi0yaDJ2LTJIMlY0aDE4djVoMlY0YzAtMS4xMS0uOS0yLTItMnptLTguMDMgN0wxMSA2bC0uOTcgM0g3bDIuNDcgMS43Ni0uOTQgMi45MSAyLjQ3LTEuOCAyLjQ3IDEuOC0uOTQtMi45MUwxNSA5aC0zLjAzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImluYm94Ij48cGF0aCBkPSJNMTkgM0g0Ljk5Yy0xLjExIDAtMS45OC44OS0xLjk4IDJMMyAxOWMwIDEuMS44OCAyIDEuOTkgMkgxOWMxLjEgMCAyLS45IDItMlY1YzAtMS4xMS0uOS0yLTItMnptMCAxMmgtNGMwIDEuNjYtMS4zNSAzLTMgM3MtMy0xLjM0LTMtM0g0Ljk5VjVIMTl2MTB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaW5kZXRlcm1pbmF0ZS1jaGVjay1ib3giPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTIgMTBIN3YtMmgxMHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImluZm8iPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDE1aC0ydi02aDJ2NnptMC04aC0yVjdoMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImluZm8tb3V0bGluZSI+PHBhdGggZD0iTTExIDE3aDJ2LTZoLTJ2NnptMS0xNUM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6TTExIDloMlY3aC0ydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaW5wdXQiPjxwYXRoIGQ9Ik0yMSAzLjAxSDNjLTEuMSAwLTIgLjktMiAyVjloMlY0Ljk5aDE4djE0LjAzSDNWMTVIMXY0LjAxYzAgMS4xLjkgMS45OCAyIDEuOThoMThjMS4xIDAgMi0uODggMi0xLjk4di0xNGMwLTEuMTEtLjktMi0yLTJ6TTExIDE2bDQtNC00LTR2M0gxdjJoMTB2M3oiPjwvcGF0aD48L2c+CjxnIGlkPSJpbnZlcnQtY29sb3JzIj48cGF0aCBkPSJNMTcuNjYgNy45M0wxMiAyLjI3IDYuMzQgNy45M2MtMy4xMiAzLjEyLTMuMTIgOC4xOSAwIDExLjMxQzcuOSAyMC44IDkuOTUgMjEuNTggMTIgMjEuNThjMi4wNSAwIDQuMS0uNzggNS42Ni0yLjM0IDMuMTItMy4xMiAzLjEyLTguMTkgMC0xMS4zMXpNMTIgMTkuNTljLTEuNiAwLTMuMTEtLjYyLTQuMjQtMS43NkM2LjYyIDE2LjY5IDYgMTUuMTkgNiAxMy41OXMuNjItMy4xMSAxLjc2LTQuMjRMMTIgNS4xdjE0LjQ5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxhYmVsIj48cGF0aCBkPSJNMTcuNjMgNS44NEMxNy4yNyA1LjMzIDE2LjY3IDUgMTYgNUw1IDUuMDFDMy45IDUuMDEgMyA1LjkgMyA3djEwYzAgMS4xLjkgMS45OSAyIDEuOTlMMTYgMTljLjY3IDAgMS4yNy0uMzMgMS42My0uODRMMjIgMTJsLTQuMzctNi4xNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJsYWJlbC1vdXRsaW5lIj48cGF0aCBkPSJNMTcuNjMgNS44NEMxNy4yNyA1LjMzIDE2LjY3IDUgMTYgNUw1IDUuMDFDMy45IDUuMDEgMyA1LjkgMyA3djEwYzAgMS4xLjkgMS45OSAyIDEuOTlMMTYgMTljLjY3IDAgMS4yNy0uMzMgMS42My0uODRMMjIgMTJsLTQuMzctNi4xNnpNMTYgMTdINVY3aDExbDMuNTUgNUwxNiAxN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJsYW5ndWFnZSI+PHBhdGggZD0iTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6bTYuOTMgNmgtMi45NWMtLjMyLTEuMjUtLjc4LTIuNDUtMS4zOC0zLjU2IDEuODQuNjMgMy4zNyAxLjkxIDQuMzMgMy41NnpNMTIgNC4wNGMuODMgMS4yIDEuNDggMi41MyAxLjkxIDMuOTZoLTMuODJjLjQzLTEuNDMgMS4wOC0yLjc2IDEuOTEtMy45NnpNNC4yNiAxNEM0LjEgMTMuMzYgNCAxMi42OSA0IDEycy4xLTEuMzYuMjYtMmgzLjM4Yy0uMDguNjYtLjE0IDEuMzItLjE0IDIgMCAuNjguMDYgMS4zNC4xNCAySDQuMjZ6bS44MiAyaDIuOTVjLjMyIDEuMjUuNzggMi40NSAxLjM4IDMuNTYtMS44NC0uNjMtMy4zNy0xLjktNC4zMy0zLjU2em0yLjk1LThINS4wOGMuOTYtMS42NiAyLjQ5LTIuOTMgNC4zMy0zLjU2QzguODEgNS41NSA4LjM1IDYuNzUgOC4wMyA4ek0xMiAxOS45NmMtLjgzLTEuMi0xLjQ4LTIuNTMtMS45MS0zLjk2aDMuODJjLS40MyAxLjQzLTEuMDggMi43Ni0xLjkxIDMuOTZ6TTE0LjM0IDE0SDkuNjZjLS4wOS0uNjYtLjE2LTEuMzItLjE2LTIgMC0uNjguMDctMS4zNS4xNi0yaDQuNjhjLjA5LjY1LjE2IDEuMzIuMTYgMiAwIC42OC0uMDcgMS4zNC0uMTYgMnptLjI1IDUuNTZjLjYtMS4xMSAxLjA2LTIuMzEgMS4zOC0zLjU2aDIuOTVjLS45NiAxLjY1LTIuNDkgMi45My00LjMzIDMuNTZ6TTE2LjM2IDE0Yy4wOC0uNjYuMTQtMS4zMi4xNC0yIDAtLjY4LS4wNi0xLjM0LS4xNC0yaDMuMzhjLjE2LjY0LjI2IDEuMzEuMjYgMnMtLjEgMS4zNi0uMjYgMmgtMy4zOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJsYXN0LXBhZ2UiPjxwYXRoIGQ9Ik01LjU5IDcuNDFMMTAuMTggMTJsLTQuNTkgNC41OUw3IDE4bDYtNi02LTZ6TTE2IDZoMnYxMmgtMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJsYXVuY2giPjxwYXRoIGQ9Ik0xOSAxOUg1VjVoN1YzSDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnY3ek0xNCAzdjJoMy41OWwtOS44MyA5LjgzIDEuNDEgMS40MUwxOSA2LjQxVjEwaDJWM2gtN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJsaWdodGJ1bGItb3V0bGluZSI+PHBhdGggZD0iTTkgMjFjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTF2LTFIOXYxem0zLTE5QzguMTQgMiA1IDUuMTQgNSA5YzAgMi4zOCAxLjE5IDQuNDcgMyA1Ljc0VjE3YzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xdi0yLjI2YzEuODEtMS4yNyAzLTMuMzYgMy01Ljc0IDAtMy44Ni0zLjE0LTctNy03em0yLjg1IDExLjFsLS44NS42VjE2aC00di0yLjNsLS44NS0uNkM3LjggMTIuMTYgNyAxMC42MyA3IDljMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNWMwIDEuNjMtLjggMy4xNi0yLjE1IDQuMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJsaW5lLXN0eWxlIj48cGF0aCBkPSJNMyAxNmg1di0ySDN2MnptNi41IDBoNXYtMmgtNXYyem02LjUgMGg1di0yaC01djJ6TTMgMjBoMnYtMkgzdjJ6bTQgMGgydi0ySDd2MnptNCAwaDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnpNMyAxMmg4di0ySDN2MnptMTAgMGg4di0yaC04djJ6TTMgNHY0aDE4VjRIM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJsaW5lLXdlaWdodCI+PHBhdGggZD0iTTMgMTdoMTh2LTJIM3Yyem0wIDNoMTh2LTFIM3Yxem0wLTdoMTh2LTNIM3Yzem0wLTl2NGgxOFY0SDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibGluayI+PHBhdGggZD0iTTMuOSAxMmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMWg0VjdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjF6TTggMTNoOHYtMkg4djJ6bTktNmgtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXMtMS4zOSAzLjEtMy4xIDMuMWgtNFYxN2g0YzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imxpc3QiPjxwYXRoIGQ9Ik0zIDEzaDJ2LTJIM3Yyem0wIDRoMnYtMkgzdjJ6bTAtOGgyVjdIM3Yyem00IDRoMTR2LTJIN3Yyem0wIDRoMTR2LTJIN3Yyek03IDd2MmgxNFY3SDd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG9jayI+PHBhdGggZD0iTTE4IDhoLTFWNmMwLTIuNzYtMi4yNC01LTUtNVM3IDMuMjQgNyA2djJINmMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlYxMGMwLTEuMS0uOS0yLTItMnptLTYgOWMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTMuMS05SDguOVY2YzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xIDEuNzEgMCAzLjEgMS4zOSAzLjEgMy4xdjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG9jay1vcGVuIj48cGF0aCBkPSJNMTIgMTdjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem02LTloLTFWNmMwLTIuNzYtMi4yNC01LTUtNVM3IDMuMjQgNyA2aDEuOWMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMSAxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6bTAgMTJINlYxMGgxMnYxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb2NrLW91dGxpbmUiPjxwYXRoIGQ9Ik0xMiAxN2MxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTYtOWgtMVY2YzAtMi43Ni0yLjI0LTUtNS01UzcgMy4yNCA3IDZ2Mkg2Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjEwYzAtMS4xLS45LTItMi0yek04LjkgNmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMXMzLjEgMS4zOSAzLjEgMy4xdjJIOC45VjZ6TTE4IDIwSDZWMTBoMTJ2MTB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG93LXByaW9yaXR5Ij48cGF0aCBkPSJNMTQgNWg4djJoLTh6bTAgNS41aDh2MmgtOHptMCA1LjVoOHYyaC04ek0yIDExLjVDMiAxNS4wOCA0LjkyIDE4IDguNSAxOEg5djJsMy0zLTMtM3YyaC0uNUM2LjAyIDE2IDQgMTMuOTggNCAxMS41UzYuMDIgNyA4LjUgN0gxMlY1SDguNUM0LjkyIDUgMiA3LjkyIDIgMTEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb3lhbHR5Ij48cGF0aCBkPSJNMjEuNDEgMTEuNThsLTktOUMxMi4wNSAyLjIyIDExLjU1IDIgMTEgMkg0Yy0xLjEgMC0yIC45LTIgMnY3YzAgLjU1LjIyIDEuMDUuNTkgMS40Mmw5IDljLjM2LjM2Ljg2LjU4IDEuNDEuNTguNTUgMCAxLjA1LS4yMiAxLjQxLS41OWw3LTdjLjM3LS4zNi41OS0uODYuNTktMS40MSAwLS41NS0uMjMtMS4wNi0uNTktMS40MnpNNS41IDdDNC42NyA3IDQgNi4zMyA0IDUuNVM0LjY3IDQgNS41IDQgNyA0LjY3IDcgNS41IDYuMzMgNyA1LjUgN3ptMTEuNzcgOC4yN0wxMyAxOS41NGwtNC4yNy00LjI3QzguMjggMTQuODEgOCAxNC4xOSA4IDEzLjVjMC0xLjM4IDEuMTItMi41IDIuNS0yLjUuNjkgMCAxLjMyLjI4IDEuNzcuNzRsLjczLjcyLjczLS43M2MuNDUtLjQ1IDEuMDgtLjczIDEuNzctLjczIDEuMzggMCAyLjUgMS4xMiAyLjUgMi41IDAgLjY5LS4yOCAxLjMyLS43MyAxLjc3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im1haWwiPjxwYXRoIGQ9Ik0yMCA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgNGwtOCA1LTgtNVY2bDggNSA4LTV2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJtYXJrdW5yZWFkIj48cGF0aCBkPSJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDRsLTggNS04LTVWNmw4IDUgOC01djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibWFya3VucmVhZC1tYWlsYm94Ij48cGF0aCBkPSJNMjAgNkgxMHY2SDhWNGg2VjBINnY2SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJtZW51Ij48cGF0aCBkPSJNMyAxOGgxOHYtMkgzdjJ6bTAtNWgxOHYtMkgzdjJ6bTAtN3YyaDE4VjZIM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJtb3JlLWhvcml6Ij48cGF0aCBkPSJNNiAxMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTEyIDBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0tNiAwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJtb3JlLXZlcnQiPjxwYXRoIGQ9Ik0xMiA4YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMCAyYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMCA2Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJtb3RvcmN5Y2xlIj48cGF0aCBkPSJNMTkuNDQgOS4wM0wxNS40MSA1SDExdjJoMy41OWwyIDJINWMtMi44IDAtNSAyLjItNSA1czIuMiA1IDUgNWMyLjQ2IDAgNC40NS0xLjY5IDQuOS00aDEuNjVsMi43Ny0yLjc3Yy0uMjEuNTQtLjMyIDEuMTQtLjMyIDEuNzcgMCAyLjggMi4yIDUgNSA1czUtMi4yIDUtNWMwLTIuNjUtMS45Ny00Ljc3LTQuNTYtNC45N3pNNy44MiAxNUM3LjQgMTYuMTUgNi4yOCAxNyA1IDE3Yy0xLjYzIDAtMy0xLjM3LTMtM3MxLjM3LTMgMy0zYzEuMjggMCAyLjQuODUgMi44MiAySDV2MmgyLjgyek0xOSAxN2MtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibW92ZS10by1pbmJveCI+PHBhdGggZD0iTTE5IDNINC45OWMtMS4xMSAwLTEuOTguOS0xLjk4IDJMMyAxOWMwIDEuMS44OCAyIDEuOTkgMkgxOWMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDEyaC00YzAgMS42Ni0xLjM1IDMtMyAzcy0zLTEuMzQtMy0zSDQuOTlWNUgxOXYxMHptLTMtNWgtMlY3aC00djNIOGw0IDQgNC00eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im5leHQtd2VlayI+PHBhdGggZD0iTTIwIDdoLTRWNWMwLS41NS0uMjItMS4wNS0uNTktMS40MUMxNS4wNSAzLjIyIDE0LjU1IDMgMTQgM2gtNGMtMS4xIDAtMiAuOS0yIDJ2Mkg0Yy0xLjEgMC0yIC45LTIgMnYxMWMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjljMC0xLjEtLjktMi0yLTJ6TTEwIDVoNHYyaC00VjV6bTEgMTMuNWwtMS0xIDMtMy0zLTMgMS0xIDQgNC00IDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibm90ZS1hZGQiPjxwYXRoIGQ9Ik0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTIgMTRoLTN2M2gtMnYtM0g4di0yaDN2LTNoMnYzaDN2MnptLTMtN1YzLjVMMTguNSA5SDEzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im9mZmxpbmUtcGluIj48cGF0aCBkPSJNMTIgMkM2LjUgMiAyIDYuNSAyIDEyczQuNSAxMCAxMCAxMCAxMC00LjUgMTAtMTBTMTcuNSAyIDEyIDJ6bTUgMTZIN3YtMmgxMHYyem0tNi43LTRMNyAxMC43bDEuNC0xLjQgMS45IDEuOSA1LjMtNS4zTDE3IDcuMyAxMC4zIDE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im9wYWNpdHkiPjxwYXRoIGQ9Ik0xNy42NiA4TDEyIDIuMzUgNi4zNCA4QzQuNzggOS41NiA0IDExLjY0IDQgMTMuNjRzLjc4IDQuMTEgMi4zNCA1LjY3IDMuNjEgMi4zNSA1LjY2IDIuMzUgNC4xLS43OSA1LjY2LTIuMzVTMjAgMTUuNjQgMjAgMTMuNjQgMTkuMjIgOS41NiAxNy42NiA4ek02IDE0Yy4wMS0yIC42Mi0zLjI3IDEuNzYtNC40TDEyIDUuMjdsNC4yNCA0LjM4QzE3LjM4IDEwLjc3IDE3Ljk5IDEyIDE4IDE0SDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ib3Blbi1pbi1icm93c2VyIj48cGF0aCBkPSJNMTkgNEg1Yy0xLjExIDAtMiAuOS0yIDJ2MTJjMCAxLjEuODkgMiAyIDJoNHYtMkg1VjhoMTR2MTBoLTR2Mmg0YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjg5LTItMi0yem0tNyA2bC00IDRoM3Y2aDJ2LTZoM2wtNC00eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im9wZW4taW4tbmV3Ij48cGF0aCBkPSJNMTkgMTlINVY1aDdWM0g1Yy0xLjExIDAtMiAuOS0yIDJ2MTRjMCAxLjEuODkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTdoLTJ2N3pNMTQgM3YyaDMuNTlsLTkuODMgOS44MyAxLjQxIDEuNDFMMTkgNi40MVYxMGgyVjNoLTd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ib3Blbi13aXRoIj48cGF0aCBkPSJNMTAgOWg0VjZoM2wtNS01LTUgNWgzdjN6bS0xIDFINlY3bC01IDUgNSA1di0zaDN2LTR6bTE0IDJsLTUtNXYzaC0zdjRoM3YzbDUtNXptLTkgM2gtNHYzSDdsNSA1IDUtNWgtM3YtM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJwYWdldmlldyI+PHBhdGggZD0iTTExLjUgOUMxMC4xMiA5IDkgMTAuMTIgOSAxMS41czEuMTIgMi41IDIuNSAyLjUgMi41LTEuMTIgMi41LTIuNVMxMi44OCA5IDExLjUgOXpNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS0zLjIxIDE0LjIxbC0yLjkxLTIuOTFjLS42OS40NC0xLjUxLjctMi4zOS43QzkuMDEgMTYgNyAxMy45OSA3IDExLjVTOS4wMSA3IDExLjUgNyAxNiA5LjAxIDE2IDExLjVjMCAuODgtLjI2IDEuNjktLjcgMi4zOWwyLjkxIDIuOS0xLjQyIDEuNDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGFuLXRvb2wiPjxwYXRoIGQ9Ik0yMyA1LjVWMjBjMCAyLjItMS44IDQtNCA0aC03LjNjLTEuMDggMC0yLjEtLjQzLTIuODUtMS4xOUwxIDE0LjgzczEuMjYtMS4yMyAxLjMtMS4yNWMuMjItLjE5LjQ5LS4yOS43OS0uMjkuMjIgMCAuNDIuMDYuNi4xNi4wNC4wMSA0LjMxIDIuNDYgNC4zMSAyLjQ2VjRjMC0uODMuNjctMS41IDEuNS0xLjVTMTEgMy4xNyAxMSA0djdoMVYxLjVjMC0uODMuNjctMS41IDEuNS0xLjVTMTUgLjY3IDE1IDEuNVYxMWgxVjIuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNVYxMWgxVjUuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJwYXltZW50Ij48cGF0aCBkPSJNMjAgNEg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY2YzAtMS4xMS0uODktMi0yLTJ6bTAgMTRINHYtNmgxNnY2em0wLTEwSDRWNmgxNnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0tY2FtZXJhLW1pYyI+PHBhdGggZD0iTTIwIDVoLTMuMTdMMTUgM0g5TDcuMTcgNUg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDd2LTIuMDljLTIuODMtLjQ4LTUtMi45NC01LTUuOTFoMmMwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00aDJjMCAyLjk3LTIuMTcgNS40My01IDUuOTFWMjFoN2MxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0tNiA4YzAgMS4xLS45IDItMiAycy0yLS45LTItMlY5YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwZXJtLWNvbnRhY3QtY2FsZW5kYXIiPjxwYXRoIGQ9Ik0xOSAzaC0xVjFoLTJ2Mkg4VjFINnYySDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAzYzEuNjYgMCAzIDEuMzQgMyAzcy0xLjM0IDMtMyAzLTMtMS4zNC0zLTMgMS4zNC0zIDMtM3ptNiAxMkg2di0xYzAtMiA0LTMuMSA2LTMuMXM2IDEuMSA2IDMuMXYxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0tZGF0YS1zZXR0aW5nIj48cGF0aCBkPSJNMTguOTkgMTEuNWMuMzQgMCAuNjcuMDMgMSAuMDdMMjAgMCAwIDIwaDExLjU2Yy0uMDQtLjMzLS4wNy0uNjYtLjA3LTEgMC00LjE0IDMuMzYtNy41IDcuNS03LjV6bTMuNzEgNy45OWMuMDItLjE2LjA0LS4zMi4wNC0uNDkgMC0uMTctLjAxLS4zMy0uMDQtLjQ5bDEuMDYtLjgzYy4wOS0uMDguMTItLjIxLjA2LS4zMmwtMS0xLjczYy0uMDYtLjExLS4xOS0uMTUtLjMxLS4xMWwtMS4yNC41Yy0uMjYtLjItLjU0LS4zNy0uODUtLjQ5bC0uMTktMS4zMmMtLjAxLS4xMi0uMTItLjIxLS4yNC0uMjFoLTJjLS4xMiAwLS4yMy4wOS0uMjUuMjFsLS4xOSAxLjMyYy0uMy4xMy0uNTkuMjktLjg1LjQ5bC0xLjI0LS41Yy0uMTEtLjA0LS4yNCAwLS4zMS4xMWwtMSAxLjczYy0uMDYuMTEtLjA0LjI0LjA2LjMybDEuMDYuODNjLS4wMi4xNi0uMDMuMzItLjAzLjQ5IDAgLjE3LjAxLjMzLjAzLjQ5bC0xLjA2LjgzYy0uMDkuMDgtLjEyLjIxLS4wNi4zMmwxIDEuNzNjLjA2LjExLjE5LjE1LjMxLjExbDEuMjQtLjVjLjI2LjIuNTQuMzcuODUuNDlsLjE5IDEuMzJjLjAyLjEyLjEyLjIxLjI1LjIxaDJjLjEyIDAgLjIzLS4wOS4yNS0uMjFsLjE5LTEuMzJjLjMtLjEzLjU5LS4yOS44NC0uNDlsMS4yNS41Yy4xMS4wNC4yNCAwIC4zMS0uMTFsMS0xLjczYy4wNi0uMTEuMDMtLjI0LS4wNi0uMzJsLTEuMDctLjgzem0tMy43MSAxLjAxYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJwZXJtLWRldmljZS1pbmZvcm1hdGlvbiI+PHBhdGggZD0iTTEzIDdoLTJ2MmgyVjd6bTAgNGgtMnY2aDJ2LTZ6bTQtOS45OUw3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMTlIN1Y1aDEwdjE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0taWRlbnRpdHkiPjxwYXRoIGQ9Ik0xMiA1LjljMS4xNiAwIDIuMS45NCAyLjEgMi4xcy0uOTQgMi4xLTIuMSAyLjFTOS45IDkuMTYgOS45IDhzLjk0LTIuMSAyLjEtMi4xbTAgOWMyLjk3IDAgNi4xIDEuNDYgNi4xIDIuMXYxLjFINS45VjE3YzAtLjY0IDMuMTMtMi4xIDYuMS0yLjFNMTIgNEM5Ljc5IDQgOCA1Ljc5IDggOHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCA5Yy0yLjY3IDAtOCAxLjM0LTggNHYzaDE2di0zYzAtMi42Ni01LjMzLTQtOC00eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0tbWVkaWEiPjxwYXRoIGQ9Ik0yIDZIMHY1aC4wMUwwIDIwYzAgMS4xLjkgMiAyIDJoMTh2LTJIMlY2em0yMC0yaC04bC0yLTJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNNyAxNWw0LjUtNiAzLjUgNC41MSAyLjUtMy4wMUwyMSAxNUg3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0tcGhvbmUtbXNnIj48cGF0aCBkPSJNMjAgMTUuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTctLjM1LS4xMS0uNzQtLjAzLTEuMDIuMjRsLTIuMiAyLjJjLTIuODMtMS40NC01LjE1LTMuNzUtNi41OS02LjU4bDIuMi0yLjIxYy4yOC0uMjcuMzYtLjY2LjI1LTEuMDFDOC43IDYuNDUgOC41IDUuMjUgOC41IDRjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNWMwLS41NS0uNDUtMS0xLTF6TTEyIDN2MTBsMy0zaDZWM2gtOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJwZXJtLXNjYW4td2lmaSI+PHBhdGggZD0iTTEyIDNDNi45NSAzIDMuMTUgNC44NSAwIDcuMjNMMTIgMjIgMjQgNy4yNUMyMC44NSA0Ljg3IDE3LjA1IDMgMTIgM3ptMSAxM2gtMnYtNmgydjZ6bS0yLThWNmgydjJoLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGV0cyI+PGNpcmNsZSBjeD0iNC41IiBjeT0iOS41IiByPSIyLjUiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjkiIGN5PSI1LjUiIHI9IjIuNSI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMTUiIGN5PSI1LjUiIHI9IjIuNSI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMTkuNSIgY3k9IjkuNSIgcj0iMi41Ij48L2NpcmNsZT48cGF0aCBkPSJNMTcuMzQgMTQuODZjLS44Ny0xLjAyLTEuNi0xLjg5LTIuNDgtMi45MS0uNDYtLjU0LTEuMDUtMS4wOC0xLjc1LTEuMzItLjExLS4wNC0uMjItLjA3LS4zMy0uMDktLjI1LS4wNC0uNTItLjA0LS43OC0uMDRzLS41MyAwLS43OS4wNWMtLjExLjAyLS4yMi4wNS0uMzMuMDktLjcuMjQtMS4yOC43OC0xLjc1IDEuMzItLjg3IDEuMDItMS42IDEuODktMi40OCAyLjkxLTEuMzEgMS4zMS0yLjkyIDIuNzYtMi42MiA0Ljc5LjI5IDEuMDIgMS4wMiAyLjAzIDIuMzMgMi4zMi43My4xNSAzLjA2LS40NCA1LjU0LS40NGguMThjMi40OCAwIDQuODEuNTggNS41NC40NCAxLjMxLS4yOSAyLjA0LTEuMzEgMi4zMy0yLjMyLjMxLTIuMDQtMS4zLTMuNDktMi42MS00Ljh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGljdHVyZS1pbi1waWN0dXJlIj48cGF0aCBkPSJNMTkgN2gtOHY2aDhWN3ptMi00SDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMS45OCAyIDEuOThoMThjMS4xIDAgMi0uODggMi0xLjk4VjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk4aDE4djE0LjAzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBpY3R1cmUtaW4tcGljdHVyZS1hbHQiPjxwYXRoIGQ9Ik0xOSAxMWgtOHY2aDh2LTZ6bTQgOFY0Ljk4QzIzIDMuODggMjIuMSAzIDIxIDNIM2MtMS4xIDAtMiAuODgtMiAxLjk4VjE5YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJ6bS0yIC4wMkgzVjQuOTdoMTh2MTQuMDV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGxheS1mb3Itd29yayI+PHBhdGggZD0iTTExIDV2NS41OUg3LjVsNC41IDQuNSA0LjUtNC41SDEzVjVoLTJ6bS01IDljMCAzLjMxIDIuNjkgNiA2IDZzNi0yLjY5IDYtNmgtMmMwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNEg2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBvbHltZXIiPjxwYXRoIGQ9Ik0xOSA0aC00TDcuMTEgMTYuNjMgNC41IDEyIDkgNEg1TC41IDEyIDUgMjBoNGw3Ljg5LTEyLjYzTDE5LjUgMTIgMTUgMjBoNGw0LjUtOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwb3dlci1zZXR0aW5ncy1uZXciPjxwYXRoIGQ9Ik0xMyAzaC0ydjEwaDJWM3ptNC44MyAyLjE3bC0xLjQyIDEuNDJDMTcuOTkgNy44NiAxOSA5LjgxIDE5IDEyYzAgMy44Ny0zLjEzIDctNyA3cy03LTMuMTMtNy03YzAtMi4xOSAxLjAxLTQuMTQgMi41OC01LjQyTDYuMTcgNS4xN0M0LjIzIDYuODIgMyA5LjI2IDMgMTJjMCA0Ljk3IDQuMDMgOSA5IDlzOS00LjAzIDktOWMwLTIuNzQtMS4yMy01LjE4LTMuMTctNi44M3oiPjwvcGF0aD48L2c+CjxnIGlkPSJwcmVnbmFudC13b21hbiI+PHBhdGggZD0iTTkgNGMwLTEuMTEuODktMiAyLTJzMiAuODkgMiAyLS44OSAyLTIgMi0yLS44OS0yLTJ6bTcgOWMtLjAxLTEuMzQtLjgzLTIuNTEtMi0zIDAtMS42Ni0xLjM0LTMtMy0zcy0zIDEuMzQtMyAzdjdoMnY1aDN2LTVoM3YtNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwcmludCI+PHBhdGggZD0iTTE5IDhINWMtMS42NiAwLTMgMS4zNC0zIDN2Nmg0djRoMTJ2LTRoNHYtNmMwLTEuNjYtMS4zNC0zLTMtM3ptLTMgMTFIOHYtNWg4djV6bTMtN2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0tMS05SDZ2NGgxMlYzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InF1ZXJ5LWJ1aWxkZXIiPjxwYXRoIGQ9Ik0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bS41LTEzSDExdjZsNS4yNSAzLjE1Ljc1LTEuMjMtNC41LTIuNjd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icXVlc3Rpb24tYW5zd2VyIj48cGF0aCBkPSJNMjEgNmgtMnY5SDZ2MmMwIC41NS40NSAxIDEgMWgxMWw0IDRWN2MwLS41NS0uNDUtMS0xLTF6bS00IDZWM2MwLS41NS0uNDUtMS0xLTFIM2MtLjU1IDAtMSAuNDUtMSAxdjE0bDQtNGgxMGMuNTUgMCAxLS40NSAxLTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmFkaW8tYnV0dG9uLWNoZWNrZWQiPjxwYXRoIGQ9Ik0xMiA3Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptMC01QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyYWRpby1idXR0b24tdW5jaGVja2VkIj48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmVjZWlwdCI+PHBhdGggZD0iTTE4IDE3SDZ2LTJoMTJ2MnptMC00SDZ2LTJoMTJ2MnptMC00SDZWN2gxMnYyek0zIDIybDEuNS0xLjVMNiAyMmwxLjUtMS41TDkgMjJsMS41LTEuNUwxMiAyMmwxLjUtMS41TDE1IDIybDEuNS0xLjVMMTggMjJsMS41LTEuNUwyMSAyMlYybC0xLjUgMS41TDE4IDJsLTEuNSAxLjVMMTUgMmwtMS41IDEuNUwxMiAybC0xLjUgMS41TDkgMiA3LjUgMy41IDYgMiA0LjUgMy41IDMgMnYyMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZWNvcmQtdm9pY2Utb3ZlciI+PGNpcmNsZSBjeD0iOSIgY3k9IjkiIHI9IjQiPjwvY2lyY2xlPjxwYXRoIGQ9Ik05IDE1Yy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00em03Ljc2LTkuNjRsLTEuNjggMS42OWMuODQgMS4xOC44NCAyLjcxIDAgMy44OWwxLjY4IDEuNjljMi4wMi0yLjAyIDIuMDItNS4wNyAwLTcuMjd6TTIwLjA3IDJsLTEuNjMgMS42M2MyLjc3IDMuMDIgMi43NyA3LjU2IDAgMTAuNzRMMjAuMDcgMTZjMy45LTMuODkgMy45MS05Ljk1IDAtMTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmVkZWVtIj48cGF0aCBkPSJNMjAgNmgtMi4xOGMuMTEtLjMxLjE4LS42NS4xOC0xIDAtMS42Ni0xLjM0LTMtMy0zLTEuMDUgMC0xLjk2LjU0LTIuNSAxLjM1bC0uNS42Ny0uNS0uNjhDMTAuOTYgMi41NCAxMC4wNSAyIDkgMiA3LjM0IDIgNiAzLjM0IDYgNWMwIC4zNS4wNy42OS4xOCAxSDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE5YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjhjMC0xLjExLS44OS0yLTItMnptLTUtMmMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xek05IDRjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMTEgMTVINHYtMmgxNnYyem0wLTVINFY4aDUuMDhMNyAxMC44MyA4LjYyIDEyIDExIDguNzZsMS0xLjM2IDEgMS4zNkwxNS4zOCAxMiAxNyAxMC44MyAxNC45MiA4SDIwdjZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmVkbyI+PHBhdGggZD0iTTE4LjQgMTAuNkMxNi41NSA4Ljk5IDE0LjE1IDggMTEuNSA4Yy00LjY1IDAtOC41OCAzLjAzLTkuOTYgNy4yMkwzLjkgMTZjMS4wNS0zLjE5IDQuMDUtNS41IDcuNi01LjUgMS45NSAwIDMuNzMuNzIgNS4xMiAxLjg4TDEzIDE2aDlWN2wtMy42IDMuNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZWZyZXNoIj48cGF0aCBkPSJNMTcuNjUgNi4zNUMxNi4yIDQuOSAxNC4yMSA0IDEyIDRjLTQuNDIgMC03Ljk5IDMuNTgtNy45OSA4czMuNTcgOCA3Ljk5IDhjMy43MyAwIDYuODQtMi41NSA3LjczLTZoLTIuMDhjLS44MiAyLjMzLTMuMDQgNC01LjY1IDQtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNmMxLjY2IDAgMy4xNC42OSA0LjIyIDEuNzhMMTMgMTFoN1Y0bC0yLjM1IDIuMzV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmVtb3ZlIj48cGF0aCBkPSJNMTkgMTNINXYtMmgxNHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlbW92ZS1jaXJjbGUiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem01IDExSDd2LTJoMTB2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZW1vdmUtY2lyY2xlLW91dGxpbmUiPjxwYXRoIGQ9Ik03IDExdjJoMTB2LTJIN3ptNS05QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZW1vdmUtc2hvcHBpbmctY2FydCI+PHBhdGggZD0iTTIyLjczIDIyLjczTDIuNzcgMi43NyAyIDJsLS43My0uNzNMMCAyLjU0bDQuMzkgNC4zOSAyLjIxIDQuNjYtMS4zNSAyLjQ1Yy0uMTYuMjgtLjI1LjYxLS4yNS45NiAwIDEuMS45IDIgMiAyaDcuNDZsMS4zOCAxLjM4Yy0uNS4zNi0uODMuOTUtLjgzIDEuNjIgMCAxLjEuODkgMiAxLjk5IDIgLjY3IDAgMS4yNi0uMzMgMS42Mi0uODRMMjEuNDYgMjRsMS4yNy0xLjI3ek03LjQyIDE1Yy0uMTQgMC0uMjUtLjExLS4yNS0uMjVsLjAzLS4xMi45LTEuNjNoMi4zNmwyIDJINy40MnptOC4xMy0yYy43NSAwIDEuNDEtLjQxIDEuNzUtMS4wM2wzLjU4LTYuNDljLjA4LS4xNC4xMi0uMzEuMTItLjQ4IDAtLjU1LS40NS0xLTEtMUg2LjU0bDkuMDEgOXpNNyAxOGMtMS4xIDAtMS45OS45LTEuOTkgMlM1LjkgMjIgNyAyMnMyLS45IDItMi0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZW9yZGVyIj48cGF0aCBkPSJNMyAxNWgxOHYtMkgzdjJ6bTAgNGgxOHYtMkgzdjJ6bTAtOGgxOFY5SDN2MnptMC02djJoMThWNUgzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlcGx5Ij48cGF0aCBkPSJNMTAgOVY1bC03IDcgNyA3di00LjFjNSAwIDguNSAxLjYgMTEgNS4xLTEtNS00LTEwLTExLTExeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlcGx5LWFsbCI+PHBhdGggZD0iTTcgOFY1bC03IDcgNyA3di0zbC00LTQgNC00em02IDFWNWwtNyA3IDcgN3YtNC4xYzUgMCA4LjUgMS42IDExIDUuMS0xLTUtNC0xMC0xMS0xMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZXBvcnQiPjxwYXRoIGQ9Ik0xNS43MyAzSDguMjdMMyA4LjI3djcuNDZMOC4yNyAyMWg3LjQ2TDIxIDE1LjczVjguMjdMMTUuNzMgM3pNMTIgMTcuM2MtLjcyIDAtMS4zLS41OC0xLjMtMS4zIDAtLjcyLjU4LTEuMyAxLjMtMS4zLjcyIDAgMS4zLjU4IDEuMyAxLjMgMCAuNzItLjU4IDEuMy0xLjMgMS4zem0xLTQuM2gtMlY3aDJ2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZXBvcnQtcHJvYmxlbSI+PHBhdGggZD0iTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZXN0b3JlIj48cGF0aCBkPSJNMTMgM2MtNC45NyAwLTkgNC4wMy05IDlIMWwzLjg5IDMuODkuMDcuMTRMOSAxMkg2YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS45MyAwLTMuNjgtLjc5LTQuOTQtMi4wNmwtMS40MiAxLjQyQzguMjcgMTkuOTkgMTAuNTEgMjEgMTMgMjFjNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6bS0xIDV2NWw0LjI4IDIuNTQuNzItMS4yMS0zLjUtMi4wOFY4SDEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlc3RvcmUtcGFnZSI+PHBhdGggZD0iTTE0IDJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDIwYzAgMS4xLjg5IDIgMS45OSAySDE4YzEuMSAwIDItLjkgMi0yVjhsLTYtNnptLTIgMTZjLTIuMDUgMC0zLjgxLTEuMjQtNC41OC0zaDEuNzFjLjYzLjkgMS42OCAxLjUgMi44NyAxLjUgMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTMuOTMgOS41IDEyIDkuNWMtMS4zNSAwLTIuNTIuNzgtMy4xIDEuOWwxLjYgMS42aC00VjlsMS4zIDEuM0M4LjY5IDguOTIgMTAuMjMgOCAxMiA4YzIuNzYgMCA1IDIuMjQgNSA1cy0yLjI0IDUtNSA1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJvb20iPjxwYXRoIGQ9Ik0xMiAyQzguMTMgMiA1IDUuMTMgNSA5YzAgNS4yNSA3IDEzIDcgMTNzNy03Ljc1IDctMTNjMC0zLjg3LTMuMTMtNy03LTd6bTAgOS41Yy0xLjM4IDAtMi41LTEuMTItMi41LTIuNXMxLjEyLTIuNSAyLjUtMi41IDIuNSAxLjEyIDIuNSAyLjUtMS4xMiAyLjUtMi41IDIuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJyb3VuZGVkLWNvcm5lciI+PHBhdGggZD0iTTE5IDE5aDJ2MmgtMnYtMnptMC0yaDJ2LTJoLTJ2MnpNMyAxM2gydi0ySDN2MnptMCA0aDJ2LTJIM3Yyem0wLThoMlY3SDN2MnptMC00aDJWM0gzdjJ6bTQgMGgyVjNIN3Yyem04IDE2aDJ2LTJoLTJ2MnptLTQgMGgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6bS04IDBoMnYtMkg3djJ6bS00IDBoMnYtMkgzdjJ6TTIxIDhjMC0yLjc2LTIuMjQtNS01LTVoLTV2Mmg1YzEuNjUgMCAzIDEuMzUgMyAzdjVoMlY4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJvd2luZyI+PHBhdGggZD0iTTguNSAxNC41TDQgMTlsMS41IDEuNUw5IDE3aDJsLTIuNS0yLjV6TTE1IDFjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem02IDIwLjAxTDE4IDI0bC0yLjk5LTMuMDFWMTkuNWwtNy4xLTcuMDljLS4zMS4wNS0uNjEuMDctLjkxLjA3di0yLjE2YzEuNjYuMDMgMy42MS0uODcgNC42Ny0yLjA0bDEuNC0xLjU1Yy4xOS0uMjEuNDMtLjM4LjY5LS41LjI5LS4xNC42Mi0uMjMuOTYtLjIzaC4wM0MxNS45OSA2LjAxIDE3IDcuMDIgMTcgOC4yNnY1Ljc1YzAgLjg0LS4zNSAxLjYxLS45MiAyLjE2bC0zLjU4LTMuNTh2LTIuMjdjLS42My41Mi0xLjQzIDEuMDItMi4yOSAxLjM5TDE2LjUgMThIMThsMyAzLjAxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNhdmUiPjxwYXRoIGQ9Ik0xNyAzSDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY3bC00LTR6bS01IDE2Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3ptMy0xMEg1VjVoMTB2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzY2hlZHVsZSI+PHBhdGggZD0iTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptLjUtMTNIMTF2Nmw1LjI1IDMuMTUuNzUtMS4yMy00LjUtMi42N3oiPjwvcGF0aD48L2c+CjxnIGlkPSJzZWFyY2giPjxwYXRoIGQ9Ik0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNlbGVjdC1hbGwiPjxwYXRoIGQ9Ik0zIDVoMlYzYy0xLjEgMC0yIC45LTIgMnptMCA4aDJ2LTJIM3Yyem00IDhoMnYtMkg3djJ6TTMgOWgyVjdIM3Yyem0xMC02aC0ydjJoMlYzem02IDB2MmgyYzAtMS4xLS45LTItMi0yek01IDIxdi0ySDNjMCAxLjEuOSAyIDIgMnptLTItNGgydi0ySDN2MnpNOSAzSDd2MmgyVjN6bTIgMThoMnYtMmgtMnYyem04LThoMnYtMmgtMnYyem0wIDhjMS4xIDAgMi0uOSAyLTJoLTJ2MnptMC0xMmgyVjdoLTJ2MnptMCA4aDJ2LTJoLTJ2MnptLTQgNGgydi0yaC0ydjJ6bTAtMTZoMlYzaC0ydjJ6TTcgMTdoMTBWN0g3djEwem0yLThoNnY2SDlWOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZW5kIj48cGF0aCBkPSJNMi4wMSAyMUwyMyAxMiAyLjAxIDMgMiAxMGwxNSAyLTE1IDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MiPjxwYXRoIGQ9Ik0xOS40MyAxMi45OGMuMDQtLjMyLjA3LS42NC4wNy0uOThzLS4wMy0uNjYtLjA3LS45OGwyLjExLTEuNjVjLjE5LS4xNS4yNC0uNDIuMTItLjY0bC0yLTMuNDZjLS4xMi0uMjItLjM5LS4zLS42MS0uMjJsLTIuNDkgMWMtLjUyLS40LTEuMDgtLjczLTEuNjktLjk4bC0uMzgtMi42NUMxNC40NiAyLjE4IDE0LjI1IDIgMTQgMmgtNGMtLjI1IDAtLjQ2LjE4LS40OS40MmwtLjM4IDIuNjVjLS42MS4yNS0xLjE3LjU5LTEuNjkuOThsLTIuNDktMWMtLjIzLS4wOS0uNDkgMC0uNjEuMjJsLTIgMy40NmMtLjEzLjIyLS4wNy40OS4xMi42NGwyLjExIDEuNjVjLS4wNC4zMi0uMDcuNjUtLjA3Ljk4cy4wMy42Ni4wNy45OGwtMi4xMSAxLjY1Yy0uMTkuMTUtLjI0LjQyLS4xMi42NGwyIDMuNDZjLjEyLjIyLjM5LjMuNjEuMjJsMi40OS0xYy41Mi40IDEuMDguNzMgMS42OS45OGwuMzggMi42NWMuMDMuMjQuMjQuNDIuNDkuNDJoNGMuMjUgMCAuNDYtLjE4LjQ5LS40MmwuMzgtMi42NWMuNjEtLjI1IDEuMTctLjU5IDEuNjktLjk4bDIuNDkgMWMuMjMuMDkuNDkgMCAuNjEtLjIybDItMy40NmMuMTItLjIyLjA3LS40OS0uMTItLjY0bC0yLjExLTEuNjV6TTEyIDE1LjVjLTEuOTMgMC0zLjUtMS41Ny0zLjUtMy41czEuNTctMy41IDMuNS0zLjUgMy41IDEuNTcgMy41IDMuNS0xLjU3IDMuNS0zLjUgMy41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLWFwcGxpY2F0aW9ucyI+PHBhdGggZD0iTTEyIDEwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptNy03SDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjExIDAgMi0uOSAyLTJWNWMwLTEuMS0uODktMi0yLTJ6bS0xLjc1IDljMCAuMjMtLjAyLjQ2LS4wNS42OGwxLjQ4IDEuMTZjLjEzLjExLjE3LjMuMDguNDVsLTEuNCAyLjQyYy0uMDkuMTUtLjI3LjIxLS40My4xNWwtMS43NC0uN2MtLjM2LjI4LS43Ni41MS0xLjE4LjY5bC0uMjYgMS44NWMtLjAzLjE3LS4xOC4zLS4zNS4zaC0yLjhjLS4xNyAwLS4zMi0uMTMtLjM1LS4yOWwtLjI2LTEuODVjLS40My0uMTgtLjgyLS40MS0xLjE4LS42OWwtMS43NC43Yy0uMTYuMDYtLjM0IDAtLjQzLS4xNWwtMS40LTIuNDJjLS4wOS0uMTUtLjA1LS4zNC4wOC0uNDVsMS40OC0xLjE2Yy0uMDMtLjIzLS4wNS0uNDYtLjA1LS42OSAwLS4yMy4wMi0uNDYuMDUtLjY4bC0xLjQ4LTEuMTZjLS4xMy0uMTEtLjE3LS4zLS4wOC0uNDVsMS40LTIuNDJjLjA5LS4xNS4yNy0uMjEuNDMtLjE1bDEuNzQuN2MuMzYtLjI4Ljc2LS41MSAxLjE4LS42OWwuMjYtMS44NWMuMDMtLjE3LjE4LS4zLjM1LS4zaDIuOGMuMTcgMCAuMzIuMTMuMzUuMjlsLjI2IDEuODVjLjQzLjE4LjgyLjQxIDEuMTguNjlsMS43NC0uN2MuMTYtLjA2LjM0IDAgLjQzLjE1bDEuNCAyLjQyYy4wOS4xNS4wNS4zNC0uMDguNDVsLTEuNDggMS4xNmMuMDMuMjMuMDUuNDYuMDUuNjl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtYmFja3VwLXJlc3RvcmUiPjxwYXRoIGQ9Ik0xNCAxMmMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDIgLjkgMiAyIDIgMi0uOSAyLTJ6bS0yLTljLTQuOTcgMC05IDQuMDMtOSA5SDBsNCA0IDQtNEg1YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS41MSAwLTIuOTEtLjQ5LTQuMDYtMS4zbC0xLjQyIDEuNDRDOC4wNCAyMC4zIDkuOTQgMjEgMTIgMjFjNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtYmx1ZXRvb3RoIj48cGF0aCBkPSJNMTEgMjRoMnYtMmgtMnYyem0tNCAwaDJ2LTJIN3Yyem04IDBoMnYtMmgtMnYyem0yLjcxLTE4LjI5TDEyIDBoLTF2Ny41OUw2LjQxIDMgNSA0LjQxIDEwLjU5IDEwIDUgMTUuNTkgNi40MSAxNyAxMSAxMi40MVYyMGgxbDUuNzEtNS43MS00LjMtNC4yOSA0LjMtNC4yOXpNMTMgMy44M2wxLjg4IDEuODhMMTMgNy41OVYzLjgzem0xLjg4IDEwLjQ2TDEzIDE2LjE3di0zLjc2bDEuODggMS44OHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZXR0aW5ncy1icmlnaHRuZXNzIj48cGF0aCBkPSJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk5aDE4djE0LjAyek04IDE2aDIuNWwxLjUgMS41IDEuNS0xLjVIMTZ2LTIuNWwxLjUtMS41LTEuNS0xLjVWOGgtMi41TDEyIDYuNSAxMC41IDhIOHYyLjVMNi41IDEyIDggMTMuNVYxNnptNC03YzEuNjYgMCAzIDEuMzQgMyAzcy0xLjM0IDMtMyAzVjl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtY2VsbCI+PHBhdGggZD0iTTcgMjRoMnYtMkg3djJ6bTQgMGgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6TTE2IC4wMUw4IDBDNi45IDAgNiAuOSA2IDJ2MTZjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjJjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE2IDE2SDhWNGg4djEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLWV0aGVybmV0Ij48cGF0aCBkPSJNNy43NyA2Ljc2TDYuMjMgNS40OC44MiAxMmw1LjQxIDYuNTIgMS41NC0xLjI4TDMuNDIgMTJsNC4zNS01LjI0ek03IDEzaDJ2LTJIN3Yyem0xMC0yaC0ydjJoMnYtMnptLTYgMmgydi0yaC0ydjJ6bTYuNzctNy41MmwtMS41NCAxLjI4TDIwLjU4IDEybC00LjM1IDUuMjQgMS41NCAxLjI4TDIzLjE4IDEybC01LjQxLTYuNTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtaW5wdXQtYW50ZW5uYSI+PHBhdGggZD0iTTEyIDVjLTMuODcgMC03IDMuMTMtNyA3aDJjMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNWgyYzAtMy44Ny0zLjEzLTctNy03em0xIDkuMjljLjg4LS4zOSAxLjUtMS4yNiAxLjUtMi4yOSAwLTEuMzgtMS4xMi0yLjUtMi41LTIuNVM5LjUgMTAuNjIgOS41IDEyYzAgMS4wMi42MiAxLjkgMS41IDIuMjl2My4zTDcuNTkgMjEgOSAyMi40MWwzLTMgMyAzTDE2LjQxIDIxIDEzIDE3LjU5di0zLjN6TTEyIDFDNS45MyAxIDEgNS45MyAxIDEyaDJjMC00Ljk3IDQuMDMtOSA5LTlzOSA0LjAzIDkgOWgyYzAtNi4wNy00LjkzLTExLTExLTExeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLWlucHV0LWNvbXBvbmVudCI+PHBhdGggZD0iTTUgMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0SDF2Nmg2VjZINVYyem00IDE0YzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOGMxLjE2LS40MSAyLTEuNTEgMi0yLjgydi0ySDl2MnptLTggMGMwIDEuMy44NCAyLjQgMiAyLjgyVjIzaDJ2LTQuMThDNi4xNiAxOC40IDcgMTcuMyA3IDE2di0ySDF2MnpNMjEgNlYyYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjRoLTJ2Nmg2VjZoLTJ6bS04LTRjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NEg5djZoNlY2aC0yVjJ6bTQgMTRjMCAxLjMuODQgMi40IDIgMi44MlYyM2gydi00LjE4YzEuMTYtLjQxIDItMS41MSAyLTIuODJ2LTJoLTZ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZXR0aW5ncy1pbnB1dC1jb21wb3NpdGUiPjxwYXRoIGQ9Ik01IDJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NEgxdjZoNlY2SDVWMnptNCAxNGMwIDEuMy44NCAyLjQgMiAyLjgyVjIzaDJ2LTQuMThjMS4xNi0uNDEgMi0xLjUxIDItMi44MnYtMkg5djJ6bS04IDBjMCAxLjMuODQgMi40IDIgMi44MlYyM2gydi00LjE4QzYuMTYgMTguNCA3IDE3LjMgNyAxNnYtMkgxdjJ6TTIxIDZWMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0aC0ydjZoNlY2aC0yem0tOC00YzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjRIOXY2aDZWNmgtMlYyem00IDE0YzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOGMxLjE2LS40MSAyLTEuNTEgMi0yLjgydi0yaC02djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtaW5wdXQtaGRtaSI+PHBhdGggZD0iTTE4IDdWNGMwLTEuMS0uOS0yLTItMkg4Yy0xLjEgMC0yIC45LTIgMnYzSDV2NmwzIDZ2M2g4di0zbDMtNlY3aC0xek04IDRoOHYzaC0yVjVoLTF2MmgtMlY1aC0xdjJIOFY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLWlucHV0LXN2aWRlbyI+PHBhdGggZD0iTTggMTEuNWMwLS44My0uNjctMS41LTEuNS0xLjVTNSAxMC42NyA1IDExLjUgNS42NyAxMyA2LjUgMTMgOCAxMi4zMyA4IDExLjV6bTctNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTNDOS42NyA1IDkgNS42NyA5IDYuNVM5LjY3IDggMTAuNSA4aDNjLjgzIDAgMS41LS42NyAxLjUtMS41ek04LjUgMTVjLS44MyAwLTEuNS42Ny0xLjUgMS41UzcuNjcgMTggOC41IDE4czEuNS0uNjcgMS41LTEuNVM5LjMzIDE1IDguNSAxNXpNMTIgMUM1LjkzIDEgMSA1LjkzIDEgMTJzNC45MyAxMSAxMSAxMSAxMS00LjkzIDExLTExUzE4LjA3IDEgMTIgMXptMCAyMGMtNC45NiAwLTktNC4wNC05LTlzNC4wNC05IDktOSA5IDQuMDQgOSA5LTQuMDQgOS05IDl6bTUuNS0xMWMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bS0yIDVjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLW92ZXJzY2FuIj48cGF0aCBkPSJNMTIuMDEgNS41TDEwIDhoNGwtMS45OS0yLjV6TTE4IDEwdjRsMi41LTEuOTlMMTggMTB6TTYgMTBsLTIuNSAyLjAxTDYgMTR2LTR6bTggNmgtNGwyLjAxIDIuNUwxNCAxNnptNy0xM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk5aDE4djE0LjAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLXBob25lIj48cGF0aCBkPSJNMTMgOWgtMnYyaDJWOXptNCAwaC0ydjJoMlY5em0zIDYuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTctLjM1LS4xMS0uNzQtLjAzLTEuMDIuMjRsLTIuMiAyLjJjLTIuODMtMS40NC01LjE1LTMuNzUtNi41OS02LjU4bDIuMi0yLjIxYy4yOC0uMjcuMzYtLjY2LjI1LTEuMDFDOC43IDYuNDUgOC41IDUuMjUgOC41IDRjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNWMwLS41NS0uNDUtMS0xLTF6TTE5IDl2MmgyVjloLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtcG93ZXIiPjxwYXRoIGQ9Ik03IDI0aDJ2LTJIN3Yyem00IDBoMnYtMmgtMnYyem0yLTIyaC0ydjEwaDJWMnptMy41NiAyLjQ0bC0xLjQ1IDEuNDVDMTYuODQgNi45NCAxOCA4LjgzIDE4IDExYzAgMy4zMS0yLjY5IDYtNiA2cy02LTIuNjktNi02YzAtMi4xNyAxLjE2LTQuMDYgMi44OC01LjEyTDcuNDQgNC40NEM1LjM2IDUuODggNCA4LjI4IDQgMTFjMCA0LjQyIDMuNTggOCA4IDhzOC0zLjU4IDgtOGMwLTIuNzItMS4zNi01LjEyLTMuNDQtNi41NnpNMTUgMjRoMnYtMmgtMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLXJlbW90ZSI+PHBhdGggZD0iTTE1IDlIOWMtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xVjEwYzAtLjU1LS40NS0xLTEtMXptLTMgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6TTcuMDUgNi4wNWwxLjQxIDEuNDFDOS4zNyA2LjU2IDEwLjYyIDYgMTIgNnMyLjYzLjU2IDMuNTQgMS40NmwxLjQxLTEuNDFDMTUuNjggNC43OCAxMy45MyA0IDEyIDRzLTMuNjguNzgtNC45NSAyLjA1ek0xMiAwQzguOTYgMCA2LjIxIDEuMjMgNC4yMiAzLjIybDEuNDEgMS40MUM3LjI2IDMuMDEgOS41MSAyIDEyIDJzNC43NCAxLjAxIDYuMzYgMi42NGwxLjQxLTEuNDFDMTcuNzkgMS4yMyAxNS4wNCAwIDEyIDB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3Mtdm9pY2UiPjxwYXRoIGQ9Ik03IDI0aDJ2LTJIN3Yyem01LTExYzEuNjYgMCAyLjk5LTEuMzQgMi45OS0zTDE1IDRjMC0xLjY2LTEuMzQtMy0zLTNTOSAyLjM0IDkgNHY2YzAgMS42NiAxLjM0IDMgMyAzem0tMSAxMWgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6bTQtMTRoLTEuN2MwIDMtMi41NCA1LjEtNS4zIDUuMVM2LjcgMTMgNi43IDEwSDVjMCAzLjQxIDIuNzIgNi4yMyA2IDYuNzJWMjBoMnYtMy4yOGMzLjI4LS40OSA2LTMuMzEgNi02LjcyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNob3AiPjxwYXRoIGQ9Ik0xNiA2VjRjMC0xLjExLS44OS0yLTItMmgtNGMtMS4xMSAwLTIgLjg5LTIgMnYySDJ2MTNjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmgtNnptLTYtMmg0djJoLTRWNHpNOSAxOFY5bDcuNSA0TDkgMTh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2hvcC10d28iPjxwYXRoIGQ9Ik0zIDlIMXYxMWMwIDEuMTEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjg5IDItMkgzVjl6bTE1LTRWM2MwLTEuMTEtLjg5LTItMi0yaC00Yy0xLjExIDAtMiAuODktMiAydjJINXYxMWMwIDEuMTEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjg5IDItMlY1aC01em0tNi0yaDR2MmgtNFYzem0wIDEyVjhsNS41IDMtNS41IDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2hvcHBpbmctYmFza2V0Ij48cGF0aCBkPSJNMTcuMjEgOWwtNC4zOC02LjU2Yy0uMTktLjI4LS41MS0uNDItLjgzLS40Mi0uMzIgMC0uNjQuMTQtLjgzLjQzTDYuNzkgOUgyYy0uNTUgMC0xIC40NS0xIDEgMCAuMDkuMDEuMTguMDQuMjdsMi41NCA5LjI3Yy4yMy44NCAxIDEuNDYgMS45MiAxLjQ2aDEzYy45MiAwIDEuNjktLjYyIDEuOTMtMS40NmwyLjU0LTkuMjdMMjMgMTBjMC0uNTUtLjQ1LTEtMS0xaC00Ljc5ek05IDlsMy00LjRMMTUgOUg5em0zIDhjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNob3BwaW5nLWNhcnQiPjxwYXRoIGQ9Ik03IDE4Yy0xLjEgMC0xLjk5LjktMS45OSAyUzUuOSAyMiA3IDIyczItLjkgMi0yLS45LTItMi0yek0xIDJ2MmgybDMuNiA3LjU5LTEuMzUgMi40NWMtLjE2LjI4LS4yNS42MS0uMjUuOTYgMCAxLjEuOSAyIDIgMmgxMnYtMkg3LjQyYy0uMTQgMC0uMjUtLjExLS4yNS0uMjVsLjAzLS4xMi45LTEuNjNoNy40NWMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy41OC02LjQ5Yy4wOC0uMTQuMTItLjMxLjEyLS40OCAwLS41NS0uNDUtMS0xLTFINS4yMWwtLjk0LTJIMXptMTYgMTZjLTEuMSAwLTEuOTkuOS0xLjk5IDJzLjg5IDIgMS45OSAyIDItLjkgMi0yLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNvcnQiPjxwYXRoIGQ9Ik0zIDE4aDZ2LTJIM3Yyek0zIDZ2MmgxOFY2SDN6bTAgN2gxMnYtMkgzdjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3BlYWtlci1ub3RlcyI+PHBhdGggZD0iTTIwIDJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek04IDE0SDZ2LTJoMnYyem0wLTNINlY5aDJ2MnptMC0zSDZWNmgydjJ6bTcgNmgtNXYtMmg1djJ6bTMtM2gtOFY5aDh2MnptMC0zaC04VjZoOHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNwZWFrZXItbm90ZXMtb2ZmIj48cGF0aCBkPSJNMTAuNTQgMTFsLS41NC0uNTRMNy41NCA4IDYgNi40NiAyLjM4IDIuODQgMS4yNyAxLjczIDAgM2wyLjAxIDIuMDFMMiAyMmw0LTRoOWw1LjczIDUuNzNMMjIgMjIuNDYgMTcuNTQgMThsLTctN3pNOCAxNEg2di0yaDJ2MnptLTItM1Y5bDIgMkg2em0xNC05SDQuMDhMMTAgNy45MlY2aDh2MmgtNy45MmwxIDFIMTh2MmgtNC45Mmw2Ljk5IDYuOTlDMjEuMTQgMTcuOTUgMjIgMTcuMDggMjIgMTZWNGMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJzcGVsbGNoZWNrIj48cGF0aCBkPSJNMTIuNDUgMTZoMi4wOUw5LjQzIDNINy41N0wyLjQ2IDE2aDIuMDlsMS4xMi0zaDUuNjRsMS4xNCAzem0tNi4wMi01TDguNSA1LjQ4IDEwLjU3IDExSDYuNDN6bTE1LjE2LjU5bC04LjA5IDguMDlMOS44MyAxNmwtMS40MSAxLjQxIDUuMDkgNS4wOUwyMyAxM2wtMS40MS0xLjQxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN0YXIiPjxwYXRoIGQ9Ik0xMiAxNy4yN0wxOC4xOCAyMWwtMS42NC03LjAzTDIyIDkuMjRsLTcuMTktLjYxTDEyIDIgOS4xOSA4LjYzIDIgOS4yNGw1LjQ2IDQuNzNMNS44MiAyMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJzdGFyLWJvcmRlciI+PHBhdGggZD0iTTIyIDkuMjRsLTcuMTktLjYyTDEyIDIgOS4xOSA4LjYzIDIgOS4yNGw1LjQ2IDQuNzNMNS44MiAyMSAxMiAxNy4yNyAxOC4xOCAyMWwtMS42My03LjAzTDIyIDkuMjR6TTEyIDE1LjRsLTMuNzYgMi4yNyAxLTQuMjgtMy4zMi0yLjg4IDQuMzgtLjM4TDEyIDYuMWwxLjcxIDQuMDQgNC4zOC4zOC0zLjMyIDIuODggMSA0LjI4TDEyIDE1LjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3Rhci1oYWxmIj48cGF0aCBkPSJNMjIgOS4yNGwtNy4xOS0uNjJMMTIgMiA5LjE5IDguNjMgMiA5LjI0bDUuNDYgNC43M0w1LjgyIDIxIDEyIDE3LjI3IDE4LjE4IDIxbC0xLjYzLTcuMDNMMjIgOS4yNHpNMTIgMTUuNFY2LjFsMS43MSA0LjA0IDQuMzguMzgtMy4zMiAyLjg4IDEgNC4yOEwxMiAxNS40eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN0YXJzIj48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNC4yNCAxNkwxMiAxNS40NSA3Ljc3IDE4bDEuMTItNC44MS0zLjczLTMuMjMgNC45Mi0uNDJMMTIgNWwxLjkyIDQuNTMgNC45Mi40Mi0zLjczIDMuMjNMMTYuMjMgMTh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3RvcmUiPjxwYXRoIGQ9Ik0yMCA0SDR2MmgxNlY0em0xIDEwdi0ybC0xLTVINGwtMSA1djJoMXY2aDEwdi02aDR2Nmgydi02aDF6bS05IDRINnYtNGg2djR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3ViZGlyZWN0b3J5LWFycm93LWxlZnQiPjxwYXRoIGQ9Ik0xMSA5bDEuNDIgMS40Mkw4LjgzIDE0SDE4VjRoMnYxMkg4LjgzbDMuNTkgMy41OEwxMSAyMWwtNi02IDYtNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJzdWJkaXJlY3RvcnktYXJyb3ctcmlnaHQiPjxwYXRoIGQ9Ik0xOSAxNWwtNiA2LTEuNDItMS40MkwxNS4xNyAxNkg0VjRoMnYxMGg5LjE3bC0zLjU5LTMuNThMMTMgOWw2IDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3ViamVjdCI+PHBhdGggZD0iTTE0IDE3SDR2MmgxMHYtMnptNi04SDR2MmgxNlY5ek00IDE1aDE2di0ySDR2MnpNNCA1djJoMTZWNUg0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN1cGVydmlzb3ItYWNjb3VudCI+PHBhdGggZD0iTTE2LjUgMTJjMS4zOCAwIDIuNDktMS4xMiAyLjQ5LTIuNVMxNy44OCA3IDE2LjUgN0MxNS4xMiA3IDE0IDguMTIgMTQgOS41czEuMTIgMi41IDIuNSAyLjV6TTkgMTFjMS42NiAwIDIuOTktMS4zNCAyLjk5LTNTMTAuNjYgNSA5IDVDNy4zNCA1IDYgNi4zNCA2IDhzMS4zNCAzIDMgM3ptNy41IDNjLTEuODMgMC01LjUuOTItNS41IDIuNzVWMTloMTF2LTIuMjVjMC0xLjgzLTMuNjctMi43NS01LjUtMi43NXpNOSAxM2MtMi4zMyAwLTcgMS4xNy03IDMuNVYxOWg3di0yLjI1YzAtLjg1LjMzLTIuMzQgMi4zNy0zLjQ3QzEwLjUgMTMuMSA5LjY2IDEzIDkgMTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3dhcC1ob3JpeiI+PHBhdGggZD0iTTYuOTkgMTFMMyAxNWwzLjk5IDR2LTNIMTR2LTJINi45OXYtM3pNMjEgOWwtMy45OS00djNIMTB2Mmg3LjAxdjNMMjEgOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJzd2FwLXZlcnQiPjxwYXRoIGQ9Ik0xNiAxNy4wMVYxMGgtMnY3LjAxaC0zTDE1IDIxbDQtMy45OWgtM3pNOSAzTDUgNi45OWgzVjE0aDJWNi45OWgzTDkgM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJzd2FwLXZlcnRpY2FsLWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTYuNSA5TDEwIDUuNSAxMy41IDlIMTF2NEg5VjlINi41em0xMSA2TDE0IDE4LjUgMTAuNSAxNUgxM3YtNGgydjRoMi41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN5c3RlbS11cGRhdGUtYWx0Ij48cGF0aCBkPSJNMTIgMTYuNWw0LTRoLTN2LTloLTJ2OUg4bDQgNHptOS0xM2gtNnYxLjk5aDZ2MTQuMDNIM1Y1LjQ5aDZWMy41SDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJ2LTE0YzAtMS4xLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRhYiI+PHBhdGggZD0iTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDNWNWgxMHY0aDh2MTB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idGFiLXVuc2VsZWN0ZWQiPjxwYXRoIGQ9Ik0xIDloMlY3SDF2MnptMCA0aDJ2LTJIMXYyem0wLThoMlYzYy0xLjEgMC0yIC45LTIgMnptOCAxNmgydi0ySDl2MnptLTgtNGgydi0ySDF2MnptMiA0di0ySDFjMCAxLjEuOSAyIDIgMnpNMjEgM2gtOHY2aDEwVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTRoMnYtMmgtMnYyek05IDVoMlYzSDl2MnpNNSAyMWgydi0ySDV2MnpNNSA1aDJWM0g1djJ6bTE2IDE2YzEuMSAwIDItLjkgMi0yaC0ydjJ6bTAtOGgydi0yaC0ydjJ6bS04IDhoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRleHQtZm9ybWF0Ij48cGF0aCBkPSJNNSAxN3YyaDE0di0ySDV6bTQuNS00LjJoNWwuOSAyLjJoMi4xTDEyLjc1IDRoLTEuNUw2LjUgMTVoMi4xbC45LTIuMnpNMTIgNS45OEwxMy44NyAxMWgtMy43NEwxMiA1Ljk4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRoZWF0ZXJzIj48cGF0aCBkPSJNMTggM3YyaC0yVjNIOHYySDZWM0g0djE4aDJ2LTJoMnYyaDh2LTJoMnYyaDJWM2gtMnpNOCAxN0g2di0yaDJ2MnptMC00SDZ2LTJoMnYyem0wLTRINlY3aDJ2MnptMTAgOGgtMnYtMmgydjJ6bTAtNGgtMnYtMmgydjJ6bTAtNGgtMlY3aDJ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0aHVtYi1kb3duIj48cGF0aCBkPSJNMTUgM0g2Yy0uODMgMC0xLjU0LjUtMS44NCAxLjIybC0zLjAyIDcuMDVjLS4wOS4yMy0uMTQuNDctLjE0LjczdjEuOTFsLjAxLjAxTDEgMTRjMCAxLjEuOSAyIDIgMmg2LjMxbC0uOTUgNC41Ny0uMDMuMzJjMCAuNDEuMTcuNzkuNDQgMS4wNkw5LjgzIDIzbDYuNTktNi41OWMuMzYtLjM2LjU4LS44Ni41OC0xLjQxVjVjMC0xLjEtLjktMi0yLTJ6bTQgMHYxMmg0VjNoLTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idGh1bWItdXAiPjxwYXRoIGQ9Ik0xIDIxaDRWOUgxdjEyem0yMi0xMWMwLTEuMS0uOS0yLTItMmgtNi4zMWwuOTUtNC41Ny4wMy0uMzJjMC0uNDEtLjE3LS43OS0uNDQtMS4wNkwxNC4xNyAxIDcuNTkgNy41OUM3LjIyIDcuOTUgNyA4LjQ1IDcgOXYxMGMwIDEuMS45IDIgMiAyaDljLjgzIDAgMS41NC0uNSAxLjg0LTEuMjJsMy4wMi03LjA1Yy4wOS0uMjMuMTQtLjQ3LjE0LS43M3YtMS45MWwtLjAxLS4wMUwyMyAxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0aHVtYnMtdXAtZG93biI+PHBhdGggZD0iTTEyIDZjMC0uNTUtLjQ1LTEtMS0xSDUuODJsLjY2LTMuMTguMDItLjIzYzAtLjMxLS4xMy0uNTktLjMzLS44TDUuMzggMCAuNDQgNC45NEMuMTcgNS4yMSAwIDUuNTkgMCA2djYuNWMwIC44My42NyAxLjUgMS41IDEuNWg2Ljc1Yy42MiAwIDEuMTUtLjM4IDEuMzgtLjkxbDIuMjYtNS4yOWMuMDctLjE3LjExLS4zNi4xMS0uNTVWNnptMTAuNSA0aC02Ljc1Yy0uNjIgMC0xLjE1LjM4LTEuMzguOTFsLTIuMjYgNS4yOWMtLjA3LjE3LS4xMS4zNi0uMTEuNTVWMThjMCAuNTUuNDUgMSAxIDFoNS4xOGwtLjY2IDMuMTgtLjAyLjI0YzAgLjMxLjEzLjU5LjMzLjhsLjc5Ljc4IDQuOTQtNC45NGMuMjctLjI3LjQ0LS42NS40NC0xLjA2di02LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRpbWVsaW5lIj48cGF0aCBkPSJNMjMgOGMwIDEuMS0uOSAyLTIgMi0uMTggMC0uMzUtLjAyLS41MS0uMDdsLTMuNTYgMy41NWMuMDUuMTYuMDcuMzQuMDcuNTIgMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yYzAtLjE4LjAyLS4zNi4wNy0uNTJsLTIuNTUtMi41NWMtLjE2LjA1LS4zNC4wNy0uNTIuMDdzLS4zNi0uMDItLjUyLS4wN2wtNC41NSA0LjU2Yy4wNS4xNi4wNy4zMy4wNy41MSAwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTJjLjE4IDAgLjM1LjAyLjUxLjA3bDQuNTYtNC41NUM4LjAyIDkuMzYgOCA5LjE4IDggOWMwLTEuMS45LTIgMi0yczIgLjkgMiAyYzAgLjE4LS4wMi4zNi0uMDcuNTJsMi41NSAyLjU1Yy4xNi0uMDUuMzQtLjA3LjUyLS4wN3MuMzYuMDIuNTIuMDdsMy41NS0zLjU2QzE5LjAyIDguMzUgMTkgOC4xOCAxOSA4YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idG9jIj48cGF0aCBkPSJNMyA5aDE0VjdIM3Yyem0wIDRoMTR2LTJIM3Yyem0wIDRoMTR2LTJIM3Yyem0xNiAwaDJ2LTJoLTJ2MnptMC0xMHYyaDJWN2gtMnptMCA2aDJ2LTJoLTJ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0b2RheSI+PHBhdGggZD0iTTE5IDNoLTFWMWgtMnYySDhWMUg2djJINWMtMS4xMSAwLTEuOTkuOS0xLjk5IDJMMyAxOWMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWOGgxNHYxMXpNNyAxMGg1djVIN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJ0b2xsIj48cGF0aCBkPSJNMTUgNGMtNC40MiAwLTggMy41OC04IDhzMy41OCA4IDggOCA4LTMuNTggOC04LTMuNTgtOC04LTh6bTAgMTRjLTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTYgNiAyLjY5IDYgNi0yLjY5IDYtNiA2ek0zIDEyYzAtMi42MSAxLjY3LTQuODMgNC01LjY1VjQuMjZDMy41NSA1LjE1IDEgOC4yNyAxIDEyczIuNTUgNi44NSA2IDcuNzR2LTIuMDljLTIuMzMtLjgyLTQtMy4wNC00LTUuNjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idG91Y2gtYXBwIj48cGF0aCBkPSJNOSAxMS4yNFY3LjVDOSA2LjEyIDEwLjEyIDUgMTEuNSA1UzE0IDYuMTIgMTQgNy41djMuNzRjMS4yMS0uODEgMi0yLjE4IDItMy43NEMxNiA1LjAxIDEzLjk5IDMgMTEuNSAzUzcgNS4wMSA3IDcuNWMwIDEuNTYuNzkgMi45MyAyIDMuNzR6bTkuODQgNC42M2wtNC41NC0yLjI2Yy0uMTctLjA3LS4zNS0uMTEtLjU0LS4xMUgxM3YtNmMwLS44My0uNjctMS41LTEuNS0xLjVTMTAgNi42NyAxMCA3LjV2MTAuNzRsLTMuNDMtLjcyYy0uMDgtLjAxLS4xNS0uMDMtLjI0LS4wMy0uMzEgMC0uNTkuMTMtLjc5LjMzbC0uNzkuOCA0Ljk0IDQuOTRjLjI3LjI3LjY1LjQ0IDEuMDYuNDRoNi43OWMuNzUgMCAxLjMzLS41NSAxLjQ0LTEuMjhsLjc1LTUuMjdjLjAxLS4wNy4wMi0uMTQuMDItLjIgMC0uNjItLjM4LTEuMTYtLjkxLTEuMzh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idHJhY2stY2hhbmdlcyI+PHBhdGggZD0iTTE5LjA3IDQuOTNsLTEuNDEgMS40MUMxOS4xIDcuNzkgMjAgOS43OSAyMCAxMmMwIDQuNDItMy41OCA4LTggOHMtOC0zLjU4LTgtOGMwLTQuMDggMy4wNS03LjQ0IDctNy45M3YyLjAyQzguMTYgNi41NyA2IDkuMDMgNiAxMmMwIDMuMzEgMi42OSA2IDYgNnM2LTIuNjkgNi02YzAtMS42Ni0uNjctMy4xNi0xLjc2LTQuMjRsLTEuNDEgMS40MUMxNS41NSA5LjkgMTYgMTAuOSAxNiAxMmMwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNGMwLTEuODYgMS4yOC0zLjQxIDMtMy44NnYyLjE0Yy0uNi4zNS0xIC45OC0xIDEuNzIgMCAxLjEuOSAyIDIgMnMyLS45IDItMmMwLS43NC0uNC0xLjM4LTEtMS43MlYyaC0xQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBjMC0yLjc2LTEuMTItNS4yNi0yLjkzLTcuMDd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idHJhbnNsYXRlIj48cGF0aCBkPSJNMTIuODcgMTUuMDdsLTIuNTQtMi41MS4wMy0uMDNjMS43NC0xLjk0IDIuOTgtNC4xNyAzLjcxLTYuNTNIMTdWNGgtN1YySDh2MkgxdjEuOTloMTEuMTdDMTEuNSA3LjkyIDEwLjQ0IDkuNzUgOSAxMS4zNSA4LjA3IDEwLjMyIDcuMyA5LjE5IDYuNjkgOGgtMmMuNzMgMS42MyAxLjczIDMuMTcgMi45OCA0LjU2bC01LjA5IDUuMDJMNCAxOWw1LTUgMy4xMSAzLjExLjc2LTIuMDR6TTE4LjUgMTBoLTJMMTIgMjJoMmwxLjEyLTNoNC43NUwyMSAyMmgybC00LjUtMTJ6bS0yLjYyIDdsMS42Mi00LjMzTDE5LjEyIDE3aC0zLjI0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRyZW5kaW5nLWRvd24iPjxwYXRoIGQ9Ik0xNiAxOGwyLjI5LTIuMjktNC44OC00Ljg4LTQgNEwyIDcuNDEgMy40MSA2bDYgNiA0LTQgNi4zIDYuMjlMMjIgMTJ2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0cmVuZGluZy1mbGF0Ij48cGF0aCBkPSJNMjIgMTJsLTQtNHYzSDN2MmgxNXYzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRyZW5kaW5nLXVwIj48cGF0aCBkPSJNMTYgNmwyLjI5IDIuMjktNC44OCA0Ljg4LTQtNEwyIDE2LjU5IDMuNDEgMThsNi02IDQgNCA2LjMtNi4yOUwyMiAxMlY2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InR1cm5lZC1pbiI+PHBhdGggZD0iTTE3IDNIN2MtMS4xIDAtMS45OS45LTEuOTkgMkw1IDIxbDctMyA3IDNWNWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0dXJuZWQtaW4tbm90Ij48cGF0aCBkPSJNMTcgM0g3Yy0xLjEgMC0xLjk5LjktMS45OSAyTDUgMjFsNy0zIDcgM1Y1YzAtMS4xLS45LTItMi0yem0wIDE1bC01LTIuMThMNyAxOFY1aDEwdjEzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InVuYXJjaGl2ZSI+PHBhdGggZD0iTTIwLjU1IDUuMjJsLTEuMzktMS42OEMxOC44OCAzLjIxIDE4LjQ3IDMgMTggM0g2Yy0uNDcgMC0uODguMjEtMS4xNS41NUwzLjQ2IDUuMjJDMy4xNyA1LjU3IDMgNi4wMSAzIDYuNVYxOWMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2LjVjMC0uNDktLjE3LS45My0uNDUtMS4yOHpNMTIgOS41bDUuNSA1LjVIMTR2MmgtNHYtMkg2LjVMMTIgOS41ek01LjEyIDVsLjgyLTFoMTJsLjkzIDFINS4xMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ1bmRvIj48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idW5mb2xkLWxlc3MiPjxwYXRoIGQ9Ik03LjQxIDE4LjU5TDguODMgMjAgMTIgMTYuODMgMTUuMTcgMjBsMS40MS0xLjQxTDEyIDE0bC00LjU5IDQuNTl6bTkuMTgtMTMuMThMMTUuMTcgNCAxMiA3LjE3IDguODMgNCA3LjQxIDUuNDEgMTIgMTBsNC41OS00LjU5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InVuZm9sZC1tb3JlIj48cGF0aCBkPSJNMTIgNS44M0wxNS4xNyA5bDEuNDEtMS40MUwxMiAzIDcuNDEgNy41OSA4LjgzIDkgMTIgNS44M3ptMCAxMi4zNEw4LjgzIDE1bC0xLjQxIDEuNDFMMTIgMjFsNC41OS00LjU5TDE1LjE3IDE1IDEyIDE4LjE3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InVwZGF0ZSI+PHBhdGggZD0iTTIxIDEwLjEyaC02Ljc4bDIuNzQtMi44MmMtMi43My0yLjctNy4xNS0yLjgtOS44OC0uMS0yLjczIDIuNzEtMi43MyA3LjA4IDAgOS43OSAyLjczIDIuNzEgNy4xNSAyLjcxIDkuODggMEMxOC4zMiAxNS42NSAxOSAxNC4wOCAxOSAxMi4xaDJjMCAxLjk4LS44OCA0LjU1LTIuNjQgNi4yOS0zLjUxIDMuNDgtOS4yMSAzLjQ4LTEyLjcyIDAtMy41LTMuNDctMy41My05LjExLS4wMi0xMi41OCAzLjUxLTMuNDcgOS4xNC0zLjQ3IDEyLjY1IDBMMjEgM3Y3LjEyek0xMi41IDh2NC4yNWwzLjUgMi4wOC0uNzIgMS4yMUwxMSAxM1Y4aDEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2ZXJpZmllZC11c2VyIj48cGF0aCBkPSJNMTIgMUwzIDV2NmMwIDUuNTUgMy44NCAxMC43NCA5IDEyIDUuMTYtMS4yNiA5LTYuNDUgOS0xMlY1bC05LTR6bS0yIDE2bC00LTQgMS40MS0xLjQxTDEwIDE0LjE3bDYuNTktNi41OUwxOCA5bC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1hZ2VuZGEiPjxwYXRoIGQ9Ik0yMCAxM0gzYy0uNTUgMC0xIC40NS0xIDF2NmMwIC41NS40NSAxIDEgMWgxN2MuNTUgMCAxLS40NSAxLTF2LTZjMC0uNTUtLjQ1LTEtMS0xem0wLTEwSDNjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDE3Yy41NSAwIDEtLjQ1IDEtMVY0YzAtLjU1LS40NS0xLTEtMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LWFycmF5Ij48cGF0aCBkPSJNNCAxOGgzVjVINHYxM3pNMTggNXYxM2gzVjVoLTN6TTggMThoOVY1SDh2MTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1jYXJvdXNlbCI+PHBhdGggZD0iTTcgMTloMTBWNEg3djE1em0tNS0yaDRWNkgydjExek0xOCA2djExaDRWNmgtNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LWNvbHVtbiI+PHBhdGggZD0iTTEwIDE4aDVWNWgtNXYxM3ptLTYgMGg1VjVINHYxM3pNMTYgNXYxM2g1VjVoLTV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1kYXkiPjxwYXRoIGQ9Ik0yIDIxaDE5di0zSDJ2M3pNMjAgOEgzYy0uNTUgMC0xIC40NS0xIDF2NmMwIC41NS40NSAxIDEgMWgxN2MuNTUgMCAxLS40NSAxLTFWOWMwLS41NS0uNDUtMS0xLTF6TTIgM3YzaDE5VjNIMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LWhlYWRsaW5lIj48cGF0aCBkPSJNNCAxNWgxNnYtMkg0djJ6bTAgNGgxNnYtMkg0djJ6bTAtOGgxNlY5SDR2MnptMC02djJoMTZWNUg0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpZXctbGlzdCI+PHBhdGggZD0iTTQgMTRoNHYtNEg0djR6bTAgNWg0di00SDR2NHpNNCA5aDRWNUg0djR6bTUgNWgxMnYtNEg5djR6bTAgNWgxMnYtNEg5djR6TTkgNXY0aDEyVjVIOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LW1vZHVsZSI+PHBhdGggZD0iTTQgMTFoNVY1SDR2NnptMCA3aDV2LTZINHY2em02IDBoNXYtNmgtNXY2em02IDBoNXYtNmgtNXY2em0tNi03aDVWNWgtNXY2em02LTZ2Nmg1VjVoLTV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1xdWlsdCI+PHBhdGggZD0iTTEwIDE4aDV2LTZoLTV2NnptLTYgMGg1VjVINHYxM3ptMTIgMGg1di02aC01djZ6TTEwIDV2NmgxMVY1SDEweiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpZXctc3RyZWFtIj48cGF0aCBkPSJNNCAxOGgxN3YtNkg0djZ6TTQgNXY2aDE3VjVINHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LXdlZWsiPjxwYXRoIGQ9Ik02IDVIM2MtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDNjLjU1IDAgMS0uNDUgMS0xVjZjMC0uNTUtLjQ1LTEtMS0xem0xNCAwaC0zYy0uNTUgMC0xIC40NS0xIDF2MTJjMCAuNTUuNDUgMSAxIDFoM2MuNTUgMCAxLS40NSAxLTFWNmMwLS41NS0uNDUtMS0xLTF6bS03IDBoLTNjLS41NSAwLTEgLjQ1LTEgMXYxMmMwIC41NS40NSAxIDEgMWgzYy41NSAwIDEtLjQ1IDEtMVY2YzAtLjU1LS40NS0xLTEtMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aXNpYmlsaXR5Ij48cGF0aCBkPSJNMTIgNC41QzcgNC41IDIuNzMgNy42MSAxIDEyYzEuNzMgNC4zOSA2IDcuNSAxMSA3LjVzOS4yNy0zLjExIDExLTcuNWMtMS43My00LjM5LTYtNy41LTExLTcuNXpNMTIgMTdjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1em0wLThjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpc2liaWxpdHktb2ZmIj48cGF0aCBkPSJNMTIgN2MyLjc2IDAgNSAyLjI0IDUgNSAwIC42NS0uMTMgMS4yNi0uMzYgMS44M2wyLjkyIDIuOTJjMS41MS0xLjI2IDIuNy0yLjg5IDMuNDMtNC43NS0xLjczLTQuMzktNi03LjUtMTEtNy41LTEuNCAwLTIuNzQuMjUtMy45OC43bDIuMTYgMi4xNkMxMC43NCA3LjEzIDExLjM1IDcgMTIgN3pNMiA0LjI3bDIuMjggMi4yOC40Ni40NkMzLjA4IDguMyAxLjc4IDEwLjAyIDEgMTJjMS43MyA0LjM5IDYgNy41IDExIDcuNSAxLjU1IDAgMy4wMy0uMyA0LjM4LS44NGwuNDIuNDJMMTkuNzMgMjIgMjEgMjAuNzMgMy4yNyAzIDIgNC4yN3pNNy41MyA5LjhsMS41NSAxLjU1Yy0uMDUuMjEtLjA4LjQzLS4wOC42NSAwIDEuNjYgMS4zNCAzIDMgMyAuMjIgMCAuNDQtLjAzLjY1LS4wOGwxLjU1IDEuNTVjLS42Ny4zMy0xLjQxLjUzLTIuMi41My0yLjc2IDAtNS0yLjI0LTUtNSAwLS43OS4yLTEuNTMuNTMtMi4yem00LjMxLS43OGwzLjE1IDMuMTUuMDItLjE2YzAtMS42Ni0xLjM0LTMtMy0zbC0uMTcuMDF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id2FybmluZyI+PHBhdGggZD0iTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ3YXRjaC1sYXRlciI+PHBhdGggZD0iTTEyIDJDNi41IDIgMiA2LjUgMiAxMnM0LjUgMTAgMTAgMTAgMTAtNC41IDEwLTEwUzE3LjUgMiAxMiAyem00LjIgMTQuMkwxMSAxM1Y3aDEuNXY1LjJsNC41IDIuNy0uOCAxLjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id2Vla2VuZCI+PHBhdGggZD0iTTIxIDEwYy0xLjEgMC0yIC45LTIgMnYzSDV2LTNjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAydjVjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMnYtNWMwLTEuMS0uOS0yLTItMnptLTMtNUg2Yy0xLjEgMC0yIC45LTIgMnYyLjE1YzEuMTYuNDEgMiAxLjUxIDIgMi44MlYxNGgxMnYtMi4wM2MwLTEuMy44NC0yLjQgMi0yLjgyVjdjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id29yayI+PHBhdGggZD0iTTIwIDZoLTRWNGMwLTEuMTEtLjg5LTItMi0yaC00Yy0xLjExIDAtMiAuODktMiAydjJINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMTljMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yem0tNiAwaC00VjRoNHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InlvdXR1YmUtc2VhcmNoZWQtZm9yIj48cGF0aCBkPSJNMTcuMDEgMTRoLS44bC0uMjctLjI3Yy45OC0xLjE0IDEuNTctMi42MSAxLjU3LTQuMjMgMC0zLjU5LTIuOTEtNi41LTYuNS02LjVzLTYuNSAzLTYuNSA2LjVIMmwzLjg0IDQgNC4xNi00SDYuNTFDNi41MSA3IDguNTMgNSAxMS4wMSA1czQuNSAyLjAxIDQuNSA0LjVjMCAyLjQ4LTIuMDIgNC41LTQuNSA0LjUtLjY1IDAtMS4yNi0uMTQtMS44Mi0uMzhMNy43MSAxNS4xYy45Ny41NyAyLjA5LjkgMy4zLjkgMS42MSAwIDMuMDgtLjU5IDQuMjItMS41N2wuMjcuMjd2Ljc5bDUuMDEgNC45OUwyMiAxOWwtNC45OS01eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Inpvb20taW4iPjxwYXRoIGQ9Ik0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0em0yLjUtNGgtMnYySDl2LTJIN1Y5aDJWN2gxdjJoMnYxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Inpvb20tb3V0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiI+PC9wYXRoPjwvZz4KPC9kZWZzPjwvc3ZnPgo8L2lyb24taWNvbnNldC1zdmc+YDtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHZiZS5jb250ZW50KTt2YXIgdDB0PXsiVSswMDA4IjoiYmFja3NwYWNlIiwiVSswMDA5IjoidGFiIiwiVSswMDFCIjoiZXNjIiwiVSswMDIwIjoic3BhY2UiLCJVKzAwN0YiOiJkZWwifSx4YmU9ezg6ImJhY2tzcGFjZSIsOToidGFiIiwxMzoiZW50ZXIiLDI3OiJlc2MiLDMzOiJwYWdldXAiLDM0OiJwYWdlZG93biIsMzU6ImVuZCIsMzY6ImhvbWUiLDMyOiJzcGFjZSIsMzc6ImxlZnQiLDM4OiJ1cCIsMzk6InJpZ2h0Iiw0MDoiZG93biIsNDY6ImRlbCIsMTA2OiIqIn0sZTB0PXtzaGlmdDoic2hpZnRLZXkiLGN0cmw6ImN0cmxLZXkiLGFsdDoiYWx0S2V5IixtZXRhOiJtZXRhS2V5In0sYmJlPS9bYS16MC05Kl0vLHdiZT0vVVwrLyxTYmU9L15hcnJvdy8sTWJlPS9ec3BhY2UoYmFyKT8vLEViZT0vXmVzY2FwZSQvO2Z1bmN0aW9uIHIwdChlLHQpe3ZhciByPSIiO2lmKGUpe3ZhciBuPWUudG9Mb3dlckNhc2UoKTtuPT09IiAifHxNYmUudGVzdChuKT9yPSJzcGFjZSI6RWJlLnRlc3Qobik/cj0iZXNjIjpuLmxlbmd0aD09MT8oIXR8fGJiZS50ZXN0KG4pKSYmKHI9bik6U2JlLnRlc3Qobik/cj1uLnJlcGxhY2UoImFycm93IiwiIik6bj09Im11bHRpcGx5Ij9yPSIqIjpyPW59cmV0dXJuIHJ9ZnVuY3Rpb24gVGJlKGUpe3ZhciB0PSIiO3JldHVybiBlJiYoZSBpbiB0MHQ/dD10MHRbZV06d2JlLnRlc3QoZSk/KGU9cGFyc2VJbnQoZS5yZXBsYWNlKCJVKyIsIjB4IiksMTYpLHQ9U3RyaW5nLmZyb21DaGFyQ29kZShlKS50b0xvd2VyQ2FzZSgpKTp0PWUudG9Mb3dlckNhc2UoKSksdH1mdW5jdGlvbiBDYmUoZSl7dmFyIHQ9IiI7cmV0dXJuIE51bWJlcihlKSYmKGU+PTY1JiZlPD05MD90PVN0cmluZy5mcm9tQ2hhckNvZGUoMzIrZSk6ZT49MTEyJiZlPD0xMjM/dD0iZiIrKGUtMTEyKzEpOmU+PTQ4JiZlPD01Nz90PVN0cmluZyhlLTQ4KTplPj05NiYmZTw9MTA1P3Q9U3RyaW5nKGUtOTYpOnQ9eGJlW2VdKSx0fWZ1bmN0aW9uIEFiZShlLHQpe3JldHVybiBlLmtleT9yMHQoZS5rZXksdCk6ZS5kZXRhaWwmJmUuZGV0YWlsLmtleT9yMHQoZS5kZXRhaWwua2V5LHQpOlRiZShlLmtleUlkZW50aWZpZXIpfHxDYmUoZS5rZXlDb2RlKXx8IiJ9ZnVuY3Rpb24gbjB0KGUsdCl7dmFyIHI9QWJlKHQsZS5oYXNNb2RpZmllcnMpO3JldHVybiByPT09ZS5rZXkmJighZS5oYXNNb2RpZmllcnN8fCEhdC5zaGlmdEtleT09ISFlLnNoaWZ0S2V5JiYhIXQuY3RybEtleT09ISFlLmN0cmxLZXkmJiEhdC5hbHRLZXk9PSEhZS5hbHRLZXkmJiEhdC5tZXRhS2V5PT0hIWUubWV0YUtleSl9ZnVuY3Rpb24gUGJlKGUpe3JldHVybiBlLmxlbmd0aD09PTE/e2NvbWJvOmUsa2V5OmUsZXZlbnQ6ImtleWRvd24ifTplLnNwbGl0KCIrIikucmVkdWNlKGZ1bmN0aW9uKHQscil7dmFyIG49ci5zcGxpdCgiOiIpLGk9blswXSxvPW5bMV07cmV0dXJuIGkgaW4gZTB0Pyh0W2UwdFtpXV09ITAsdC5oYXNNb2RpZmllcnM9ITApOih0LmtleT1pLHQuZXZlbnQ9b3x8ImtleWRvd24iKSx0fSx7Y29tYm86ZS5zcGxpdCgiOiIpLnNoaWZ0KCl9KX1mdW5jdGlvbiBpMHQoZSl7cmV0dXJuIGUudHJpbSgpLnNwbGl0KCIgIikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBQYmUodCl9KX12YXIgT289e3Byb3BlcnRpZXM6e2tleUV2ZW50VGFyZ2V0Ont0eXBlOk9iamVjdCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0sc3RvcEtleWJvYXJkRXZlbnRQcm9wYWdhdGlvbjp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxfYm91bmRLZXlIYW5kbGVyczp7dHlwZTpBcnJheSx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX0sX2ltcGVyYXRpdmVLZXlCaW5kaW5nczp7dHlwZTpPYmplY3QsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxvYnNlcnZlcnM6WyJfcmVzZXRLZXlFdmVudExpc3RlbmVycyhrZXlFdmVudFRhcmdldCwgX2JvdW5kS2V5SGFuZGxlcnMpIl0sa2V5QmluZGluZ3M6e30scmVnaXN0ZXJlZDpmdW5jdGlvbigpe3RoaXMuX3ByZXBLZXlCaW5kaW5ncygpfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX2xpc3RlbktleUV2ZW50TGlzdGVuZXJzKCl9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fdW5saXN0ZW5LZXlFdmVudExpc3RlbmVycygpfSxhZGRPd25LZXlCaW5kaW5nOmZ1bmN0aW9uKGUsdCl7dGhpcy5faW1wZXJhdGl2ZUtleUJpbmRpbmdzW2VdPXQsdGhpcy5fcHJlcEtleUJpbmRpbmdzKCksdGhpcy5fcmVzZXRLZXlFdmVudExpc3RlbmVycygpfSxyZW1vdmVPd25LZXlCaW5kaW5nczpmdW5jdGlvbigpe3RoaXMuX2ltcGVyYXRpdmVLZXlCaW5kaW5ncz17fSx0aGlzLl9wcmVwS2V5QmluZGluZ3MoKSx0aGlzLl9yZXNldEtleUV2ZW50TGlzdGVuZXJzKCl9LGtleWJvYXJkRXZlbnRNYXRjaGVzS2V5czpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1pMHQodCksbj0wO248ci5sZW5ndGg7KytuKWlmKG4wdChyW25dLGUpKXJldHVybiEwO3JldHVybiExfSxfY29sbGVjdEtleUJpbmRpbmdzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5iZWhhdmlvcnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmtleUJpbmRpbmdzfSk7cmV0dXJuIGUuaW5kZXhPZih0aGlzLmtleUJpbmRpbmdzKT09PS0xJiZlLnB1c2godGhpcy5rZXlCaW5kaW5ncyksZX0sX3ByZXBLZXlCaW5kaW5nczpmdW5jdGlvbigpe3RoaXMuX2tleUJpbmRpbmdzPXt9LHRoaXMuX2NvbGxlY3RLZXlCaW5kaW5ncygpLmZvckVhY2goZnVuY3Rpb24ocil7Zm9yKHZhciBuIGluIHIpdGhpcy5fYWRkS2V5QmluZGluZyhuLHJbbl0pfSx0aGlzKTtmb3IodmFyIGUgaW4gdGhpcy5faW1wZXJhdGl2ZUtleUJpbmRpbmdzKXRoaXMuX2FkZEtleUJpbmRpbmcoZSx0aGlzLl9pbXBlcmF0aXZlS2V5QmluZGluZ3NbZV0pO2Zvcih2YXIgdCBpbiB0aGlzLl9rZXlCaW5kaW5ncyl0aGlzLl9rZXlCaW5kaW5nc1t0XS5zb3J0KGZ1bmN0aW9uKHIsbil7dmFyIGk9clswXS5oYXNNb2RpZmllcnMsbz1uWzBdLmhhc01vZGlmaWVycztyZXR1cm4gaT09PW8/MDppPy0xOjF9KX0sX2FkZEtleUJpbmRpbmc6ZnVuY3Rpb24oZSx0KXtpMHQoZSkuZm9yRWFjaChmdW5jdGlvbihyKXt0aGlzLl9rZXlCaW5kaW5nc1tyLmV2ZW50XT10aGlzLl9rZXlCaW5kaW5nc1tyLmV2ZW50XXx8W10sdGhpcy5fa2V5QmluZGluZ3Nbci5ldmVudF0ucHVzaChbcix0XSl9LHRoaXMpfSxfcmVzZXRLZXlFdmVudExpc3RlbmVyczpmdW5jdGlvbigpe3RoaXMuX3VubGlzdGVuS2V5RXZlbnRMaXN0ZW5lcnMoKSx0aGlzLmlzQXR0YWNoZWQmJnRoaXMuX2xpc3RlbktleUV2ZW50TGlzdGVuZXJzKCl9LF9saXN0ZW5LZXlFdmVudExpc3RlbmVyczpmdW5jdGlvbigpeyF0aGlzLmtleUV2ZW50VGFyZ2V0fHxPYmplY3Qua2V5cyh0aGlzLl9rZXlCaW5kaW5ncykuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9rZXlCaW5kaW5nc1tlXSxyPXRoaXMuX29uS2V5QmluZGluZ0V2ZW50LmJpbmQodGhpcyx0KTt0aGlzLl9ib3VuZEtleUhhbmRsZXJzLnB1c2goW3RoaXMua2V5RXZlbnRUYXJnZXQsZSxyXSksdGhpcy5rZXlFdmVudFRhcmdldC5hZGRFdmVudExpc3RlbmVyKGUscil9LHRoaXMpfSxfdW5saXN0ZW5LZXlFdmVudExpc3RlbmVyczpmdW5jdGlvbigpe2Zvcih2YXIgZSx0LHIsbjt0aGlzLl9ib3VuZEtleUhhbmRsZXJzLmxlbmd0aDspZT10aGlzLl9ib3VuZEtleUhhbmRsZXJzLnBvcCgpLHQ9ZVswXSxyPWVbMV0sbj1lWzJdLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihyLG4pfSxfb25LZXlCaW5kaW5nRXZlbnQ6ZnVuY3Rpb24oZSx0KXtpZih0aGlzLnN0b3BLZXlib2FyZEV2ZW50UHJvcGFnYXRpb24mJnQuc3RvcFByb3BhZ2F0aW9uKCksIXQuZGVmYXVsdFByZXZlbnRlZClmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXVswXSxpPWVbcl1bMV07aWYobjB0KG4sdCkmJih0aGlzLl90cmlnZ2VyS2V5SGFuZGxlcihuLGksdCksdC5kZWZhdWx0UHJldmVudGVkKSlyZXR1cm59fSxfdHJpZ2dlcktleUhhbmRsZXI6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPU9iamVjdC5jcmVhdGUoZSk7bi5rZXlib2FyZEV2ZW50PXI7dmFyIGk9bmV3IEN1c3RvbUV2ZW50KGUuZXZlbnQse2RldGFpbDpuLGNhbmNlbGFibGU6ITB9KTt0aGlzW3RdLmNhbGwodGhpcyxpKSxpLmRlZmF1bHRQcmV2ZW50ZWQmJnIucHJldmVudERlZmF1bHQoKX19O3ZhciB2OT17cHJvcGVydGllczp7c2Nyb2xsVGFyZ2V0Ont0eXBlOkhUTUxFbGVtZW50LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRTY3JvbGxUYXJnZXR9fX0sb2JzZXJ2ZXJzOlsiX3Njcm9sbFRhcmdldENoYW5nZWQoc2Nyb2xsVGFyZ2V0LCBpc0F0dGFjaGVkKSJdLF9zaG91bGRIYXZlTGlzdGVuZXI6ITAsX3Njcm9sbFRhcmdldENoYW5nZWQ6ZnVuY3Rpb24oZSx0KXt2YXIgcjtpZih0aGlzLl9vbGRTY3JvbGxUYXJnZXQmJih0aGlzLl90b2dnbGVTY3JvbGxMaXN0ZW5lcighMSx0aGlzLl9vbGRTY3JvbGxUYXJnZXQpLHRoaXMuX29sZFNjcm9sbFRhcmdldD1udWxsKSwhIXQpaWYoZT09PSJkb2N1bWVudCIpdGhpcy5zY3JvbGxUYXJnZXQ9dGhpcy5fZG9jO2Vsc2UgaWYodHlwZW9mIGU9PSJzdHJpbmciKXt2YXIgbj10aGlzLmRvbUhvc3Q7dGhpcy5zY3JvbGxUYXJnZXQ9biYmbi4kP24uJFtlXTp6dCh0aGlzLm93bmVyRG9jdW1lbnQpLnF1ZXJ5U2VsZWN0b3IoIiMiK2UpfWVsc2UgdGhpcy5faXNWYWxpZFNjcm9sbFRhcmdldCgpJiYodGhpcy5fb2xkU2Nyb2xsVGFyZ2V0PWUsdGhpcy5fdG9nZ2xlU2Nyb2xsTGlzdGVuZXIodGhpcy5fc2hvdWxkSGF2ZUxpc3RlbmVyLGUpKX0sX3Njcm9sbEhhbmRsZXI6ZnVuY3Rpb24oKXt9LGdldCBfZGVmYXVsdFNjcm9sbFRhcmdldCgpe3JldHVybiB0aGlzLl9kb2N9LGdldCBfZG9jKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnR9LGdldCBfc2Nyb2xsVG9wKCl7cmV0dXJuIHRoaXMuX2lzVmFsaWRTY3JvbGxUYXJnZXQoKT90aGlzLnNjcm9sbFRhcmdldD09PXRoaXMuX2RvYz93aW5kb3cucGFnZVlPZmZzZXQ6dGhpcy5zY3JvbGxUYXJnZXQuc2Nyb2xsVG9wOjB9LGdldCBfc2Nyb2xsTGVmdCgpe3JldHVybiB0aGlzLl9pc1ZhbGlkU2Nyb2xsVGFyZ2V0KCk/dGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzLl9kb2M/d2luZG93LnBhZ2VYT2Zmc2V0OnRoaXMuc2Nyb2xsVGFyZ2V0LnNjcm9sbExlZnQ6MH0sc2V0IF9zY3JvbGxUb3AoZSl7dGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzLl9kb2M/d2luZG93LnNjcm9sbFRvKHdpbmRvdy5wYWdlWE9mZnNldCxlKTp0aGlzLl9pc1ZhbGlkU2Nyb2xsVGFyZ2V0KCkmJih0aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxUb3A9ZSl9LHNldCBfc2Nyb2xsTGVmdChlKXt0aGlzLnNjcm9sbFRhcmdldD09PXRoaXMuX2RvYz93aW5kb3cuc2Nyb2xsVG8oZSx3aW5kb3cucGFnZVlPZmZzZXQpOnRoaXMuX2lzVmFsaWRTY3JvbGxUYXJnZXQoKSYmKHRoaXMuc2Nyb2xsVGFyZ2V0LnNjcm9sbExlZnQ9ZSl9LHNjcm9sbDpmdW5jdGlvbihlLHQpe3ZhciByO3R5cGVvZiBlPT0ib2JqZWN0Ij8ocj1lLmxlZnQsdD1lLnRvcCk6cj1lLHI9cnx8MCx0PXR8fDAsdGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzLl9kb2M/d2luZG93LnNjcm9sbFRvKHIsdCk6dGhpcy5faXNWYWxpZFNjcm9sbFRhcmdldCgpJiYodGhpcy5zY3JvbGxUYXJnZXQuc2Nyb2xsTGVmdD1yLHRoaXMuc2Nyb2xsVGFyZ2V0LnNjcm9sbFRvcD10KX0sZ2V0IF9zY3JvbGxUYXJnZXRXaWR0aCgpe3JldHVybiB0aGlzLl9pc1ZhbGlkU2Nyb2xsVGFyZ2V0KCk/dGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzLl9kb2M/d2luZG93LmlubmVyV2lkdGg6dGhpcy5zY3JvbGxUYXJnZXQub2Zmc2V0V2lkdGg6MH0sZ2V0IF9zY3JvbGxUYXJnZXRIZWlnaHQoKXtyZXR1cm4gdGhpcy5faXNWYWxpZFNjcm9sbFRhcmdldCgpP3RoaXMuc2Nyb2xsVGFyZ2V0PT09dGhpcy5fZG9jP3dpbmRvdy5pbm5lckhlaWdodDp0aGlzLnNjcm9sbFRhcmdldC5vZmZzZXRIZWlnaHQ6MH0sX2lzVmFsaWRTY3JvbGxUYXJnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zY3JvbGxUYXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudH0sX3RvZ2dsZVNjcm9sbExpc3RlbmVyOmZ1bmN0aW9uKGUsdCl7dmFyIHI9dD09PXRoaXMuX2RvYz93aW5kb3c6dDtlP3RoaXMuX2JvdW5kU2Nyb2xsSGFuZGxlcnx8KHRoaXMuX2JvdW5kU2Nyb2xsSGFuZGxlcj10aGlzLl9zY3JvbGxIYW5kbGVyLmJpbmQodGhpcyksci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX2JvdW5kU2Nyb2xsSGFuZGxlcikpOnRoaXMuX2JvdW5kU2Nyb2xsSGFuZGxlciYmKHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLl9ib3VuZFNjcm9sbEhhbmRsZXIpLHRoaXMuX2JvdW5kU2Nyb2xsSGFuZGxlcj1udWxsKX0sdG9nZ2xlU2Nyb2xsTGlzdGVuZXI6ZnVuY3Rpb24oZSl7dGhpcy5fc2hvdWxkSGF2ZUxpc3RlbmVyPWUsdGhpcy5fdG9nZ2xlU2Nyb2xsTGlzdGVuZXIoZSx0aGlzLnNjcm9sbFRhcmdldCl9fTt2YXIgbzB0PW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL2lQKD86aG9uZXxhZDsoPzogVTspPyBDUFUpIE9TIChcZCspLyksSWJlPW8wdCYmbzB0WzFdPj04LGEwdD0zLHMwdD0iLTEwMDAwcHgiLGZFPS0xMDA7WXQoe190ZW1wbGF0ZTpRYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWF4LWRldmljZS1waXhlbC1yYXRpbzogMSkgewogICAgICAgIDpob3N0IHsKICAgICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgfQogICAgICB9CgogICAgICAjaXRlbXMgewogICAgICAgIEBhcHBseSAtLWlyb24tbGlzdC1pdGVtcy1jb250YWluZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICA6aG9zdCg6bm90KFtncmlkXSkpICNpdGVtcyA+IDo6c2xvdHRlZCgqKSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICNpdGVtcyA+IDo6c2xvdHRlZCgqKSB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxhcnJheS1zZWxlY3RvciBpZD0ic2VsZWN0b3IiIGl0ZW1zPSJ7e2l0ZW1zfX0iIHNlbGVjdGVkPSJ7e3NlbGVjdGVkSXRlbXN9fSIgc2VsZWN0ZWQtaXRlbT0ie3tzZWxlY3RlZEl0ZW19fSI+PC9hcnJheS1zZWxlY3Rvcj4KCiAgICA8ZGl2IGlkPSJpdGVtcyI+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIDwvZGl2PgpgLGlzOiJpcm9uLWxpc3QiLHByb3BlcnRpZXM6e2l0ZW1zOnt0eXBlOkFycmF5fSxhczp7dHlwZTpTdHJpbmcsdmFsdWU6Iml0ZW0ifSxpbmRleEFzOnt0eXBlOlN0cmluZyx2YWx1ZToiaW5kZXgifSxzZWxlY3RlZEFzOnt0eXBlOlN0cmluZyx2YWx1ZToic2VsZWN0ZWQifSxncmlkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVmbGVjdFRvQXR0cmlidXRlOiEwLG9ic2VydmVyOiJfZ3JpZENoYW5nZWQifSxzZWxlY3Rpb25FbmFibGVkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LHNlbGVjdGVkSXRlbTp7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSxzZWxlY3RlZEl0ZW1zOnt0eXBlOk9iamVjdCxub3RpZnk6ITB9LG11bHRpU2VsZWN0aW9uOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LHNjcm9sbE9mZnNldDp7dHlwZTpOdW1iZXIsdmFsdWU6MH19LG9ic2VydmVyczpbIl9pdGVtc0NoYW5nZWQoaXRlbXMuKikiLCJfc2VsZWN0aW9uRW5hYmxlZENoYW5nZWQoc2VsZWN0aW9uRW5hYmxlZCkiLCJfbXVsdGlTZWxlY3Rpb25DaGFuZ2VkKG11bHRpU2VsZWN0aW9uKSIsIl9zZXRPdmVyZmxvdyhzY3JvbGxUYXJnZXQsIHNjcm9sbE9mZnNldCkiXSxiZWhhdmlvcnM6W1dndCxRcyx2OSxLZ3RdLF9yYXRpbzouNSxfc2Nyb2xsZXJQYWRkaW5nVG9wOjAsX3Njcm9sbFBvc2l0aW9uOjAsX3BoeXNpY2FsU2l6ZTowLF9waHlzaWNhbEF2ZXJhZ2U6MCxfcGh5c2ljYWxBdmVyYWdlQ291bnQ6MCxfcGh5c2ljYWxUb3A6MCxfdmlydHVhbENvdW50OjAsX2VzdFNjcm9sbEhlaWdodDowLF9zY3JvbGxIZWlnaHQ6MCxfdmlld3BvcnRIZWlnaHQ6MCxfdmlld3BvcnRXaWR0aDowLF9waHlzaWNhbEl0ZW1zOm51bGwsX3BoeXNpY2FsU2l6ZXM6bnVsbCxfZmlyc3RWaXNpYmxlSW5kZXhWYWw6bnVsbCxfbGFzdFZpc2libGVJbmRleFZhbDpudWxsLF9tYXhQYWdlczoyLF9mb2N1c2VkSXRlbTpudWxsLF9mb2N1c2VkVmlydHVhbEluZGV4Oi0xLF9mb2N1c2VkUGh5c2ljYWxJbmRleDotMSxfb2Zmc2NyZWVuRm9jdXNlZEl0ZW06bnVsbCxfZm9jdXNCYWNrZmlsbEl0ZW06bnVsbCxfaXRlbXNQZXJSb3c6MSxfaXRlbVdpZHRoOjAsX3Jvd0hlaWdodDowLF90ZW1wbGF0ZUNvc3Q6MCxfcGFyZW50TW9kZWw6ITAsZ2V0IF9waHlzaWNhbEJvdHRvbSgpe3JldHVybiB0aGlzLl9waHlzaWNhbFRvcCt0aGlzLl9waHlzaWNhbFNpemV9LGdldCBfc2Nyb2xsQm90dG9tKCl7cmV0dXJuIHRoaXMuX3Njcm9sbFBvc2l0aW9uK3RoaXMuX3ZpZXdwb3J0SGVpZ2h0fSxnZXQgX3ZpcnR1YWxFbmQoKXtyZXR1cm4gdGhpcy5fdmlydHVhbFN0YXJ0K3RoaXMuX3BoeXNpY2FsQ291bnQtMX0sZ2V0IF9oaWRkZW5Db250ZW50U2l6ZSgpe3ZhciBlPXRoaXMuZ3JpZD90aGlzLl9waHlzaWNhbFJvd3MqdGhpcy5fcm93SGVpZ2h0OnRoaXMuX3BoeXNpY2FsU2l6ZTtyZXR1cm4gZS10aGlzLl92aWV3cG9ydEhlaWdodH0sZ2V0IF9pdGVtc1BhcmVudCgpe3JldHVybiB6dCh6dCh0aGlzLl91c2VyVGVtcGxhdGUpLnBhcmVudE5vZGUpfSxnZXQgX21heFNjcm9sbFRvcCgpe3JldHVybiB0aGlzLl9lc3RTY3JvbGxIZWlnaHQtdGhpcy5fdmlld3BvcnRIZWlnaHQrdGhpcy5fc2Nyb2xsT2Zmc2V0fSxnZXQgX21heFZpcnR1YWxTdGFydCgpe3ZhciBlPXRoaXMuX2NvbnZlcnRJbmRleFRvQ29tcGxldGVSb3codGhpcy5fdmlydHVhbENvdW50KTtyZXR1cm4gTWF0aC5tYXgoMCxlLXRoaXMuX3BoeXNpY2FsQ291bnQpfSxzZXQgX3ZpcnR1YWxTdGFydChlKXtlPXRoaXMuX2NsYW1wKGUsMCx0aGlzLl9tYXhWaXJ0dWFsU3RhcnQpLHRoaXMuZ3JpZCYmKGU9ZS1lJXRoaXMuX2l0ZW1zUGVyUm93KSx0aGlzLl92aXJ0dWFsU3RhcnRWYWw9ZX0sZ2V0IF92aXJ0dWFsU3RhcnQoKXtyZXR1cm4gdGhpcy5fdmlydHVhbFN0YXJ0VmFsfHwwfSxzZXQgX3BoeXNpY2FsU3RhcnQoZSl7ZT1lJXRoaXMuX3BoeXNpY2FsQ291bnQsZTwwJiYoZT10aGlzLl9waHlzaWNhbENvdW50K2UpLHRoaXMuZ3JpZCYmKGU9ZS1lJXRoaXMuX2l0ZW1zUGVyUm93KSx0aGlzLl9waHlzaWNhbFN0YXJ0VmFsPWV9LGdldCBfcGh5c2ljYWxTdGFydCgpe3JldHVybiB0aGlzLl9waHlzaWNhbFN0YXJ0VmFsfHwwfSxnZXQgX3BoeXNpY2FsRW5kKCl7cmV0dXJuKHRoaXMuX3BoeXNpY2FsU3RhcnQrdGhpcy5fcGh5c2ljYWxDb3VudC0xKSV0aGlzLl9waHlzaWNhbENvdW50fSxzZXQgX3BoeXNpY2FsQ291bnQoZSl7dGhpcy5fcGh5c2ljYWxDb3VudFZhbD1lfSxnZXQgX3BoeXNpY2FsQ291bnQoKXtyZXR1cm4gdGhpcy5fcGh5c2ljYWxDb3VudFZhbHx8MH0sZ2V0IF9vcHRQaHlzaWNhbFNpemUoKXtyZXR1cm4gdGhpcy5fdmlld3BvcnRIZWlnaHQ9PT0wPzEvMDp0aGlzLl92aWV3cG9ydEhlaWdodCp0aGlzLl9tYXhQYWdlc30sZ2V0IF9pc1Zpc2libGUoKXtyZXR1cm4gQm9vbGVhbih0aGlzLm9mZnNldFdpZHRofHx0aGlzLm9mZnNldEhlaWdodCl9LGdldCBmaXJzdFZpc2libGVJbmRleCgpe3ZhciBlPXRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsO2lmKGU9PW51bGwpe3ZhciB0PXRoaXMuX3BoeXNpY2FsVG9wK3RoaXMuX3Njcm9sbE9mZnNldDtlPXRoaXMuX2l0ZXJhdGVJdGVtcyhmdW5jdGlvbihyLG4pe2lmKHQrPXRoaXMuX2dldFBoeXNpY2FsU2l6ZUluY3JlbWVudChyKSx0PnRoaXMuX3Njcm9sbFBvc2l0aW9uKXJldHVybiB0aGlzLmdyaWQ/bi1uJXRoaXMuX2l0ZW1zUGVyUm93Om47aWYodGhpcy5ncmlkJiZ0aGlzLl92aXJ0dWFsQ291bnQtMT09PW4pcmV0dXJuIG4tbiV0aGlzLl9pdGVtc1BlclJvd30pfHwwLHRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsPWV9cmV0dXJuIGV9LGdldCBsYXN0VmlzaWJsZUluZGV4KCl7dmFyIGU9dGhpcy5fbGFzdFZpc2libGVJbmRleFZhbDtpZihlPT1udWxsKXtpZih0aGlzLmdyaWQpZT1NYXRoLm1pbih0aGlzLl92aXJ0dWFsQ291bnQsdGhpcy5maXJzdFZpc2libGVJbmRleCt0aGlzLl9lc3RSb3dzSW5WaWV3KnRoaXMuX2l0ZW1zUGVyUm93LTEpO2Vsc2V7dmFyIHQ9dGhpcy5fcGh5c2ljYWxUb3ArdGhpcy5fc2Nyb2xsT2Zmc2V0O3RoaXMuX2l0ZXJhdGVJdGVtcyhmdW5jdGlvbihyLG4pe3Q8dGhpcy5fc2Nyb2xsQm90dG9tJiYoZT1uKSx0Kz10aGlzLl9nZXRQaHlzaWNhbFNpemVJbmNyZW1lbnQocil9KX10aGlzLl9sYXN0VmlzaWJsZUluZGV4VmFsPWV9cmV0dXJuIGV9LGdldCBfZGVmYXVsdFNjcm9sbFRhcmdldCgpe3JldHVybiB0aGlzfSxnZXQgX3ZpcnR1YWxSb3dDb3VudCgpe3JldHVybiBNYXRoLmNlaWwodGhpcy5fdmlydHVhbENvdW50L3RoaXMuX2l0ZW1zUGVyUm93KX0sZ2V0IF9lc3RSb3dzSW5WaWV3KCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLl92aWV3cG9ydEhlaWdodC90aGlzLl9yb3dIZWlnaHQpfSxnZXQgX3BoeXNpY2FsUm93cygpe3JldHVybiBNYXRoLmNlaWwodGhpcy5fcGh5c2ljYWxDb3VudC90aGlzLl9pdGVtc1BlclJvdyl9LGdldCBfc2Nyb2xsT2Zmc2V0KCl7cmV0dXJuIHRoaXMuX3Njcm9sbGVyUGFkZGluZ1RvcCt0aGlzLnNjcm9sbE9mZnNldH0scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9kaWRGb2N1cy5iaW5kKHRoaXMpLCEwKX0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl9kZWJvdW5jZSgiX3JlbmRlciIsdGhpcy5fcmVuZGVyLE5pKSx0aGlzLmxpc3Rlbih0aGlzLCJpcm9uLXJlc2l6ZSIsIl9yZXNpemVIYW5kbGVyIiksdGhpcy5saXN0ZW4odGhpcywia2V5ZG93biIsIl9rZXlkb3duSGFuZGxlciIpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMudW5saXN0ZW4odGhpcywiaXJvbi1yZXNpemUiLCJfcmVzaXplSGFuZGxlciIpLHRoaXMudW5saXN0ZW4odGhpcywia2V5ZG93biIsIl9rZXlkb3duSGFuZGxlciIpfSxfc2V0T3ZlcmZsb3c6ZnVuY3Rpb24oZSl7dGhpcy5zdHlsZS53ZWJraXRPdmVyZmxvd1Njcm9sbGluZz1lPT09dGhpcz8idG91Y2giOiIiLHRoaXMuc3R5bGUub3ZlcmZsb3dZPWU9PT10aGlzPyJhdXRvIjoiIix0aGlzLl9sYXN0VmlzaWJsZUluZGV4VmFsPW51bGwsdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9kZWJvdW5jZSgiX3JlbmRlciIsdGhpcy5fcmVuZGVyLE5pKX0sdXBkYXRlVmlld3BvcnRCb3VuZGFyaWVzOmZ1bmN0aW9uKCl7dmFyIGU9d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcyk7dGhpcy5fc2Nyb2xsZXJQYWRkaW5nVG9wPXRoaXMuc2Nyb2xsVGFyZ2V0PT09dGhpcz8wOnBhcnNlSW50KGVbInBhZGRpbmctdG9wIl0sMTApLHRoaXMuX2lzUlRMPUJvb2xlYW4oZS5kaXJlY3Rpb249PT0icnRsIiksdGhpcy5fdmlld3BvcnRXaWR0aD10aGlzLiQuaXRlbXMub2Zmc2V0V2lkdGgsdGhpcy5fdmlld3BvcnRIZWlnaHQ9dGhpcy5fc2Nyb2xsVGFyZ2V0SGVpZ2h0LHRoaXMuZ3JpZCYmdGhpcy5fdXBkYXRlR3JpZE1ldHJpY3MoKX0sX3Njcm9sbEhhbmRsZXI6ZnVuY3Rpb24oKXt2YXIgZT1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuX21heFNjcm9sbFRvcCx0aGlzLl9zY3JvbGxUb3ApKSx0PWUtdGhpcy5fc2Nyb2xsUG9zaXRpb24scj10Pj0wO2lmKHRoaXMuX3Njcm9sbFBvc2l0aW9uPWUsdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9sYXN0VmlzaWJsZUluZGV4VmFsPW51bGwsTWF0aC5hYnModCk+dGhpcy5fcGh5c2ljYWxTaXplJiZ0aGlzLl9waHlzaWNhbFNpemU+MCl7dD10LXRoaXMuX3Njcm9sbE9mZnNldDt2YXIgbj1NYXRoLnJvdW5kKHQvdGhpcy5fcGh5c2ljYWxBdmVyYWdlKSp0aGlzLl9pdGVtc1BlclJvdzt0aGlzLl92aXJ0dWFsU3RhcnQ9dGhpcy5fdmlydHVhbFN0YXJ0K24sdGhpcy5fcGh5c2ljYWxTdGFydD10aGlzLl9waHlzaWNhbFN0YXJ0K24sdGhpcy5fcGh5c2ljYWxUb3A9TWF0aC5taW4oTWF0aC5mbG9vcih0aGlzLl92aXJ0dWFsU3RhcnQvdGhpcy5faXRlbXNQZXJSb3cpKnRoaXMuX3BoeXNpY2FsQXZlcmFnZSx0aGlzLl9zY3JvbGxQb3NpdGlvbiksdGhpcy5fdXBkYXRlKCl9ZWxzZSBpZih0aGlzLl9waHlzaWNhbENvdW50PjApe3ZhciBpPXRoaXMuX2dldFJldXNhYmxlcyhyKTtyPyh0aGlzLl9waHlzaWNhbFRvcD1pLnBoeXNpY2FsVG9wLHRoaXMuX3ZpcnR1YWxTdGFydD10aGlzLl92aXJ0dWFsU3RhcnQraS5pbmRleGVzLmxlbmd0aCx0aGlzLl9waHlzaWNhbFN0YXJ0PXRoaXMuX3BoeXNpY2FsU3RhcnQraS5pbmRleGVzLmxlbmd0aCk6KHRoaXMuX3ZpcnR1YWxTdGFydD10aGlzLl92aXJ0dWFsU3RhcnQtaS5pbmRleGVzLmxlbmd0aCx0aGlzLl9waHlzaWNhbFN0YXJ0PXRoaXMuX3BoeXNpY2FsU3RhcnQtaS5pbmRleGVzLmxlbmd0aCksdGhpcy5fdXBkYXRlKGkuaW5kZXhlcyxyP251bGw6aS5pbmRleGVzKSx0aGlzLl9kZWJvdW5jZSgiX2luY3JlYXNlUG9vbElmTmVlZGVkIix0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZC5iaW5kKHRoaXMsMCksbGkpfX0sX2dldFJldXNhYmxlczpmdW5jdGlvbihlKXt2YXIgdCxyLG4saSxvPVtdLGE9dGhpcy5faGlkZGVuQ29udGVudFNpemUqdGhpcy5fcmF0aW8scz10aGlzLl92aXJ0dWFsU3RhcnQsbD10aGlzLl92aXJ0dWFsRW5kLGM9dGhpcy5fcGh5c2ljYWxDb3VudCx1PXRoaXMuX3BoeXNpY2FsVG9wK3RoaXMuX3Njcm9sbE9mZnNldCxoPXRoaXMuX3BoeXNpY2FsQm90dG9tK3RoaXMuX3Njcm9sbE9mZnNldCxmPXRoaXMuX3Njcm9sbFBvc2l0aW9uLHA9dGhpcy5fc2Nyb2xsQm90dG9tO2ZvcihlPyh0PXRoaXMuX3BoeXNpY2FsU3RhcnQscj10aGlzLl9waHlzaWNhbEVuZCxuPWYtdSk6KHQ9dGhpcy5fcGh5c2ljYWxFbmQscj10aGlzLl9waHlzaWNhbFN0YXJ0LG49aC1wKTtpPXRoaXMuX2dldFBoeXNpY2FsU2l6ZUluY3JlbWVudCh0KSxuPW4taSwhKG8ubGVuZ3RoPj1jfHxuPD1hKTspaWYoZSl7aWYobCtvLmxlbmd0aCsxPj10aGlzLl92aXJ0dWFsQ291bnR8fHUraT49Zi10aGlzLl9zY3JvbGxPZmZzZXQpYnJlYWs7by5wdXNoKHQpLHU9dStpLHQ9KHQrMSklY31lbHNle2lmKHMtby5sZW5ndGg8PTB8fHUrdGhpcy5fcGh5c2ljYWxTaXplLWk8PXApYnJlYWs7by5wdXNoKHQpLHU9dS1pLHQ9dD09PTA/Yy0xOnQtMX1yZXR1cm57aW5kZXhlczpvLHBoeXNpY2FsVG9wOnUtdGhpcy5fc2Nyb2xsT2Zmc2V0fX0sX3VwZGF0ZTpmdW5jdGlvbihlLHQpe2lmKCEoZSYmZS5sZW5ndGg9PT0wfHx0aGlzLl9waHlzaWNhbENvdW50PT09MCkpe2lmKHRoaXMuX21hbmFnZUZvY3VzKCksdGhpcy5fYXNzaWduTW9kZWxzKGUpLHRoaXMuX3VwZGF0ZU1ldHJpY3MoZSksdClmb3IoO3QubGVuZ3RoOyl7dmFyIHI9dC5wb3AoKTt0aGlzLl9waHlzaWNhbFRvcC09dGhpcy5fZ2V0UGh5c2ljYWxTaXplSW5jcmVtZW50KHIpfXRoaXMuX3Bvc2l0aW9uSXRlbXMoKSx0aGlzLl91cGRhdGVTY3JvbGxlclNpemUoKX19LF9jcmVhdGVQb29sOmZ1bmN0aW9uKGUpe3RoaXMuX2Vuc3VyZVRlbXBsYXRpemVkKCk7dmFyIHQscixuPW5ldyBBcnJheShlKTtmb3IodD0wO3Q8ZTt0Kyspcj10aGlzLnN0YW1wKG51bGwpLG5bdF09ci5yb290LnF1ZXJ5U2VsZWN0b3IoIioiKSx0aGlzLl9pdGVtc1BhcmVudC5hcHBlbmRDaGlsZChyLnJvb3QpO3JldHVybiBufSxfaXNDbGllbnRGdWxsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEJvdHRvbSE9MCYmdGhpcy5fcGh5c2ljYWxCb3R0b20tMT49dGhpcy5fc2Nyb2xsQm90dG9tJiZ0aGlzLl9waHlzaWNhbFRvcDw9dGhpcy5fc2Nyb2xsUG9zaXRpb259LF9pbmNyZWFzZVBvb2xJZk5lZWRlZDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9jbGFtcCh0aGlzLl9waHlzaWNhbENvdW50K2UsYTB0LHRoaXMuX3ZpcnR1YWxDb3VudC10aGlzLl92aXJ0dWFsU3RhcnQpO2lmKHQ9dGhpcy5fY29udmVydEluZGV4VG9Db21wbGV0ZVJvdyh0KSx0aGlzLmdyaWQpe3ZhciByPXQldGhpcy5faXRlbXNQZXJSb3c7ciYmdC1yPD10aGlzLl9waHlzaWNhbENvdW50JiYodCs9dGhpcy5faXRlbXNQZXJSb3cpLHQtPXJ9dmFyIG49dC10aGlzLl9waHlzaWNhbENvdW50LGk9TWF0aC5yb3VuZCh0aGlzLl9waHlzaWNhbENvdW50Ki41KTtpZighKG48MCkpe2lmKG4+MCl7dmFyIG89d2luZG93LnBlcmZvcm1hbmNlLm5vdygpO1tdLnB1c2guYXBwbHkodGhpcy5fcGh5c2ljYWxJdGVtcyx0aGlzLl9jcmVhdGVQb29sKG4pKTtmb3IodmFyIGE9MDthPG47YSsrKXRoaXMuX3BoeXNpY2FsU2l6ZXMucHVzaCgwKTt0aGlzLl9waHlzaWNhbENvdW50PXRoaXMuX3BoeXNpY2FsQ291bnQrbix0aGlzLl9waHlzaWNhbFN0YXJ0PnRoaXMuX3BoeXNpY2FsRW5kJiZ0aGlzLl9pc0luZGV4UmVuZGVyZWQodGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleCkmJnRoaXMuX2dldFBoeXNpY2FsSW5kZXgodGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleCk8dGhpcy5fcGh5c2ljYWxFbmQmJih0aGlzLl9waHlzaWNhbFN0YXJ0PXRoaXMuX3BoeXNpY2FsU3RhcnQrbiksdGhpcy5fdXBkYXRlKCksdGhpcy5fdGVtcGxhdGVDb3N0PSh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCktbykvbixpPU1hdGgucm91bmQodGhpcy5fcGh5c2ljYWxDb3VudCouNSl9dGhpcy5fdmlydHVhbEVuZD49dGhpcy5fdmlydHVhbENvdW50LTF8fGk9PT0wfHwodGhpcy5faXNDbGllbnRGdWxsKCk/dGhpcy5fcGh5c2ljYWxTaXplPHRoaXMuX29wdFBoeXNpY2FsU2l6ZSYmdGhpcy5fZGVib3VuY2UoIl9pbmNyZWFzZVBvb2xJZk5lZWRlZCIsdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQuYmluZCh0aGlzLHRoaXMuX2NsYW1wKE1hdGgucm91bmQoNTAvdGhpcy5fdGVtcGxhdGVDb3N0KSwxLGkpKSxreCk6dGhpcy5fZGVib3VuY2UoIl9pbmNyZWFzZVBvb2xJZk5lZWRlZCIsdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQuYmluZCh0aGlzLGkpLGxpKSl9fSxfcmVuZGVyOmZ1bmN0aW9uKCl7aWYoISghdGhpcy5pc0F0dGFjaGVkfHwhdGhpcy5faXNWaXNpYmxlKSlpZih0aGlzLl9waHlzaWNhbENvdW50IT09MCl7dmFyIGU9dGhpcy5fZ2V0UmV1c2FibGVzKCEwKTt0aGlzLl9waHlzaWNhbFRvcD1lLnBoeXNpY2FsVG9wLHRoaXMuX3ZpcnR1YWxTdGFydD10aGlzLl92aXJ0dWFsU3RhcnQrZS5pbmRleGVzLmxlbmd0aCx0aGlzLl9waHlzaWNhbFN0YXJ0PXRoaXMuX3BoeXNpY2FsU3RhcnQrZS5pbmRleGVzLmxlbmd0aCx0aGlzLl91cGRhdGUoZS5pbmRleGVzKSx0aGlzLl91cGRhdGUoKSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgwKX1lbHNlIHRoaXMuX3ZpcnR1YWxDb3VudD4wJiYodGhpcy51cGRhdGVWaWV3cG9ydEJvdW5kYXJpZXMoKSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZChhMHQpKX0sX2Vuc3VyZVRlbXBsYXRpemVkOmZ1bmN0aW9uKCl7aWYoIXRoaXMuY3Rvcil7dGhpcy5fdXNlclRlbXBsYXRlPXRoaXMucXVlcnlFZmZlY3RpdmVDaGlsZHJlbigidGVtcGxhdGUiKSx0aGlzLl91c2VyVGVtcGxhdGV8fGNvbnNvbGUud2FybigiaXJvbi1saXN0IHJlcXVpcmVzIGEgdGVtcGxhdGUgdG8gYmUgcHJvdmlkZWQgaW4gbGlnaHQtZG9tIik7dmFyIGU9e307ZS5fX2tleV9fPSEwLGVbdGhpcy5hc109ITAsZVt0aGlzLmluZGV4QXNdPSEwLGVbdGhpcy5zZWxlY3RlZEFzXT0hMCxlLnRhYkluZGV4PSEwLHRoaXMuX2luc3RhbmNlUHJvcHM9ZSx0aGlzLnRlbXBsYXRpemUodGhpcy5fdXNlclRlbXBsYXRlLHRoaXMubXV0YWJsZURhdGEpfX0sX2dyaWRDaGFuZ2VkOmZ1bmN0aW9uKGUsdCl7dHlwZW9mIHQhPSJ1bmRlZmluZWQiJiYodGhpcy5ub3RpZnlSZXNpemUoKSxjaSgpLGUmJnRoaXMuX3VwZGF0ZUdyaWRNZXRyaWNzKCkpfSxfaXRlbXNDaGFuZ2VkOmZ1bmN0aW9uKGUpe2lmKGUucGF0aD09PSJpdGVtcyIpdGhpcy5fdmlydHVhbFN0YXJ0PTAsdGhpcy5fcGh5c2ljYWxUb3A9MCx0aGlzLl92aXJ0dWFsQ291bnQ9dGhpcy5pdGVtcz90aGlzLml0ZW1zLmxlbmd0aDowLHRoaXMuX3BoeXNpY2FsSW5kZXhGb3JLZXk9e30sdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9sYXN0VmlzaWJsZUluZGV4VmFsPW51bGwsdGhpcy5fcGh5c2ljYWxDb3VudD10aGlzLl9waHlzaWNhbENvdW50fHwwLHRoaXMuX3BoeXNpY2FsSXRlbXM9dGhpcy5fcGh5c2ljYWxJdGVtc3x8W10sdGhpcy5fcGh5c2ljYWxTaXplcz10aGlzLl9waHlzaWNhbFNpemVzfHxbXSx0aGlzLl9waHlzaWNhbFN0YXJ0PTAsdGhpcy5fc2Nyb2xsVG9wPnRoaXMuX3Njcm9sbE9mZnNldCYmdGhpcy5fcmVzZXRTY3JvbGxQb3NpdGlvbigwKSx0aGlzLl9yZW1vdmVGb2N1c2VkSXRlbSgpLHRoaXMuX2RlYm91bmNlKCJfcmVuZGVyIix0aGlzLl9yZW5kZXIsTmkpO2Vsc2UgaWYoZS5wYXRoPT09Iml0ZW1zLnNwbGljZXMiKXt0aGlzLl9hZGp1c3RWaXJ0dWFsSW5kZXgoZS52YWx1ZS5pbmRleFNwbGljZXMpLHRoaXMuX3ZpcnR1YWxDb3VudD10aGlzLml0ZW1zP3RoaXMuaXRlbXMubGVuZ3RoOjA7dmFyIHQ9ZS52YWx1ZS5pbmRleFNwbGljZXMuc29tZShmdW5jdGlvbihpKXtyZXR1cm4gaS5hZGRlZENvdW50PjB8fGkucmVtb3ZlZC5sZW5ndGg+MH0pO2lmKHQpe3ZhciByPXRoaXMuX2dldEFjdGl2ZUVsZW1lbnQoKTt0aGlzLmNvbnRhaW5zKHIpJiZyLmJsdXIoKX12YXIgbj1lLnZhbHVlLmluZGV4U3BsaWNlcy5zb21lKGZ1bmN0aW9uKGkpe3JldHVybiBpLmluZGV4K2kuYWRkZWRDb3VudD49dGhpcy5fdmlydHVhbFN0YXJ0JiZpLmluZGV4PD10aGlzLl92aXJ0dWFsRW5kfSx0aGlzKTsoIXRoaXMuX2lzQ2xpZW50RnVsbCgpfHxuKSYmdGhpcy5fZGVib3VuY2UoIl9yZW5kZXIiLHRoaXMuX3JlbmRlcixOaSl9ZWxzZSBlLnBhdGghPT0iaXRlbXMubGVuZ3RoIiYmdGhpcy5fZm9yd2FyZEl0ZW1QYXRoKGUucGF0aCxlLnZhbHVlKX0sX2ZvcndhcmRJdGVtUGF0aDpmdW5jdGlvbihlLHQpe2U9ZS5zbGljZSg2KTt2YXIgcj1lLmluZGV4T2YoIi4iKTtyPT09LTEmJihyPWUubGVuZ3RoKTt2YXIgbixpLG8sYT10aGlzLm1vZGVsRm9yRWxlbWVudCh0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSkscz1wYXJzZUludChlLnN1YnN0cmluZygwLHIpLDEwKTtuPXRoaXMuX2lzSW5kZXhSZW5kZXJlZChzKSxuPyhpPXRoaXMuX2dldFBoeXNpY2FsSW5kZXgocyksbz10aGlzLm1vZGVsRm9yRWxlbWVudCh0aGlzLl9waHlzaWNhbEl0ZW1zW2ldKSk6YSYmKG89YSksISghb3x8b1t0aGlzLmluZGV4QXNdIT09cykmJihlPWUuc3Vic3RyaW5nKHIrMSksZT10aGlzLmFzKyhlPyIuIitlOiIiKSxvLl9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgoZSx0LCExLCEwKSxvLl9mbHVzaFByb3BlcnRpZXMmJm8uX2ZsdXNoUHJvcGVydGllcygpLG4mJih0aGlzLl91cGRhdGVNZXRyaWNzKFtpXSksdGhpcy5fcG9zaXRpb25JdGVtcygpLHRoaXMuX3VwZGF0ZVNjcm9sbGVyU2l6ZSgpKSl9LF9hZGp1c3RWaXJ0dWFsSW5kZXg6ZnVuY3Rpb24oZSl7ZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKHQucmVtb3ZlZC5mb3JFYWNoKHRoaXMuX3JlbW92ZUl0ZW0sdGhpcyksdC5pbmRleDx0aGlzLl92aXJ0dWFsU3RhcnQpe3ZhciByPU1hdGgubWF4KHQuYWRkZWRDb3VudC10LnJlbW92ZWQubGVuZ3RoLHQuaW5kZXgtdGhpcy5fdmlydHVhbFN0YXJ0KTt0aGlzLl92aXJ0dWFsU3RhcnQ9dGhpcy5fdmlydHVhbFN0YXJ0K3IsdGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleD49MCYmKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg9dGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleCtyKX19LHRoaXMpfSxfcmVtb3ZlSXRlbTpmdW5jdGlvbihlKXt0aGlzLiQuc2VsZWN0b3IuZGVzZWxlY3QoZSksdGhpcy5fZm9jdXNlZEl0ZW0mJnRoaXMubW9kZWxGb3JFbGVtZW50KHRoaXMuX2ZvY3VzZWRJdGVtKVt0aGlzLmFzXT09PWUmJnRoaXMuX3JlbW92ZUZvY3VzZWRJdGVtKCl9LF9pdGVyYXRlSXRlbXM6ZnVuY3Rpb24oZSx0KXt2YXIgcixuLGksbztpZihhcmd1bWVudHMubGVuZ3RoPT09MiYmdCl7Zm9yKG89MDtvPHQubGVuZ3RoO28rKylpZihyPXRbb10sbj10aGlzLl9jb21wdXRlVmlkeChyKSwoaT1lLmNhbGwodGhpcyxyLG4pKSE9bnVsbClyZXR1cm4gaX1lbHNle2ZvcihyPXRoaXMuX3BoeXNpY2FsU3RhcnQsbj10aGlzLl92aXJ0dWFsU3RhcnQ7cjx0aGlzLl9waHlzaWNhbENvdW50O3IrKyxuKyspaWYoKGk9ZS5jYWxsKHRoaXMscixuKSkhPW51bGwpcmV0dXJuIGk7Zm9yKHI9MDtyPHRoaXMuX3BoeXNpY2FsU3RhcnQ7cisrLG4rKylpZigoaT1lLmNhbGwodGhpcyxyLG4pKSE9bnVsbClyZXR1cm4gaX19LF9jb21wdXRlVmlkeDpmdW5jdGlvbihlKXtyZXR1cm4gZT49dGhpcy5fcGh5c2ljYWxTdGFydD90aGlzLl92aXJ0dWFsU3RhcnQrKGUtdGhpcy5fcGh5c2ljYWxTdGFydCk6dGhpcy5fdmlydHVhbFN0YXJ0Kyh0aGlzLl9waHlzaWNhbENvdW50LXRoaXMuX3BoeXNpY2FsU3RhcnQpK2V9LF9hc3NpZ25Nb2RlbHM6ZnVuY3Rpb24oZSl7dGhpcy5faXRlcmF0ZUl0ZW1zKGZ1bmN0aW9uKHQscil7dmFyIG49dGhpcy5fcGh5c2ljYWxJdGVtc1t0XSxpPXRoaXMuaXRlbXMmJnRoaXMuaXRlbXNbcl07aWYoaSE9bnVsbCl7dmFyIG89dGhpcy5tb2RlbEZvckVsZW1lbnQobik7by5fX2tleV9fPW51bGwsdGhpcy5fZm9yd2FyZFByb3BlcnR5KG8sdGhpcy5hcyxpKSx0aGlzLl9mb3J3YXJkUHJvcGVydHkobyx0aGlzLnNlbGVjdGVkQXMsdGhpcy4kLnNlbGVjdG9yLmlzU2VsZWN0ZWQoaSkpLHRoaXMuX2ZvcndhcmRQcm9wZXJ0eShvLHRoaXMuaW5kZXhBcyxyKSx0aGlzLl9mb3J3YXJkUHJvcGVydHkobywidGFiSW5kZXgiLHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg9PT1yPzA6LTEpLHRoaXMuX3BoeXNpY2FsSW5kZXhGb3JLZXlbby5fX2tleV9fXT10LG8uX2ZsdXNoUHJvcGVydGllcyYmby5fZmx1c2hQcm9wZXJ0aWVzKCEwKSxuLnJlbW92ZUF0dHJpYnV0ZSgiaGlkZGVuIil9ZWxzZSBuLnNldEF0dHJpYnV0ZSgiaGlkZGVuIiwiIil9LGUpfSxfdXBkYXRlTWV0cmljczpmdW5jdGlvbihlKXtjaSgpO3ZhciB0PTAscj0wLG49dGhpcy5fcGh5c2ljYWxBdmVyYWdlQ291bnQsaT10aGlzLl9waHlzaWNhbEF2ZXJhZ2U7dGhpcy5faXRlcmF0ZUl0ZW1zKGZ1bmN0aW9uKG8sYSl7cis9dGhpcy5fcGh5c2ljYWxTaXplc1tvXSx0aGlzLl9waHlzaWNhbFNpemVzW29dPXRoaXMuX3BoeXNpY2FsSXRlbXNbb10ub2Zmc2V0SGVpZ2h0LHQrPXRoaXMuX3BoeXNpY2FsU2l6ZXNbb10sdGhpcy5fcGh5c2ljYWxBdmVyYWdlQ291bnQrPXRoaXMuX3BoeXNpY2FsU2l6ZXNbb10/MTowfSxlKSx0aGlzLmdyaWQ/KHRoaXMuX3VwZGF0ZUdyaWRNZXRyaWNzKCksdGhpcy5fcGh5c2ljYWxTaXplPU1hdGguY2VpbCh0aGlzLl9waHlzaWNhbENvdW50L3RoaXMuX2l0ZW1zUGVyUm93KSp0aGlzLl9yb3dIZWlnaHQpOihyPXRoaXMuX2l0ZW1zUGVyUm93PT09MT9yOk1hdGguY2VpbCh0aGlzLl9waHlzaWNhbENvdW50L3RoaXMuX2l0ZW1zUGVyUm93KSp0aGlzLl9yb3dIZWlnaHQsdGhpcy5fcGh5c2ljYWxTaXplPXRoaXMuX3BoeXNpY2FsU2l6ZSt0LXIsdGhpcy5faXRlbXNQZXJSb3c9MSksdGhpcy5fcGh5c2ljYWxBdmVyYWdlQ291bnQhPT1uJiYodGhpcy5fcGh5c2ljYWxBdmVyYWdlPU1hdGgucm91bmQoKGkqbit0KS90aGlzLl9waHlzaWNhbEF2ZXJhZ2VDb3VudCkpfSxfdXBkYXRlR3JpZE1ldHJpY3M6ZnVuY3Rpb24oKXt0aGlzLl9pdGVtV2lkdGg9dGhpcy5fcGh5c2ljYWxDb3VudD4wP3RoaXMuX3BoeXNpY2FsSXRlbXNbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg6MjAwLHRoaXMuX3Jvd0hlaWdodD10aGlzLl9waHlzaWNhbENvdW50PjA/dGhpcy5fcGh5c2ljYWxJdGVtc1swXS5vZmZzZXRIZWlnaHQ6MjAwLHRoaXMuX2l0ZW1zUGVyUm93PXRoaXMuX2l0ZW1XaWR0aD9NYXRoLmZsb29yKHRoaXMuX3ZpZXdwb3J0V2lkdGgvdGhpcy5faXRlbVdpZHRoKTp0aGlzLl9pdGVtc1BlclJvd30sX3Bvc2l0aW9uSXRlbXM6ZnVuY3Rpb24oKXt0aGlzLl9hZGp1c3RTY3JvbGxQb3NpdGlvbigpO3ZhciBlPXRoaXMuX3BoeXNpY2FsVG9wO2lmKHRoaXMuZ3JpZCl7dmFyIHQ9dGhpcy5faXRlbXNQZXJSb3cqdGhpcy5faXRlbVdpZHRoLHI9KHRoaXMuX3ZpZXdwb3J0V2lkdGgtdCkvMjt0aGlzLl9pdGVyYXRlSXRlbXMoZnVuY3Rpb24obixpKXt2YXIgbz1pJXRoaXMuX2l0ZW1zUGVyUm93LGE9TWF0aC5mbG9vcihvKnRoaXMuX2l0ZW1XaWR0aCtyKTt0aGlzLl9pc1JUTCYmKGE9YSotMSksdGhpcy50cmFuc2xhdGUzZChhKyJweCIsZSsicHgiLDAsdGhpcy5fcGh5c2ljYWxJdGVtc1tuXSksdGhpcy5fc2hvdWxkUmVuZGVyTmV4dFJvdyhpKSYmKGUrPXRoaXMuX3Jvd0hlaWdodCl9KX1lbHNle2xldCBuPVtdO3RoaXMuX2l0ZXJhdGVJdGVtcyhmdW5jdGlvbihpLG8pe2xldCBhPXRoaXMuX3BoeXNpY2FsSXRlbXNbaV07dGhpcy50cmFuc2xhdGUzZCgwLGUrInB4IiwwLGEpLGUrPXRoaXMuX3BoeXNpY2FsU2l6ZXNbaV07bGV0IHM9YS5pZDtzJiZuLnB1c2gocyl9KSxuLmxlbmd0aCYmdGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtb3ducyIsbi5qb2luKCIgIikpfX0sX2dldFBoeXNpY2FsU2l6ZUluY3JlbWVudDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5ncmlkP3RoaXMuX2NvbXB1dGVWaWR4KGUpJXRoaXMuX2l0ZW1zUGVyUm93IT09dGhpcy5faXRlbXNQZXJSb3ctMT8wOnRoaXMuX3Jvd0hlaWdodDp0aGlzLl9waHlzaWNhbFNpemVzW2VdfSxfc2hvdWxkUmVuZGVyTmV4dFJvdzpmdW5jdGlvbihlKXtyZXR1cm4gZSV0aGlzLl9pdGVtc1BlclJvdz09PXRoaXMuX2l0ZW1zUGVyUm93LTF9LF9hZGp1c3RTY3JvbGxQb3NpdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3ZpcnR1YWxTdGFydD09PTA/dGhpcy5fcGh5c2ljYWxUb3A6TWF0aC5taW4odGhpcy5fc2Nyb2xsUG9zaXRpb24rdGhpcy5fcGh5c2ljYWxUb3AsMCk7aWYoZSE9PTApe3RoaXMuX3BoeXNpY2FsVG9wPXRoaXMuX3BoeXNpY2FsVG9wLWU7dmFyIHQ9dGhpcy5fc2Nyb2xsUG9zaXRpb247IUliZSYmdD4wJiZ0aGlzLl9yZXNldFNjcm9sbFBvc2l0aW9uKHQtZSl9fSxfcmVzZXRTY3JvbGxQb3NpdGlvbjpmdW5jdGlvbihlKXt0aGlzLnNjcm9sbFRhcmdldCYmZT49MCYmKHRoaXMuX3Njcm9sbFRvcD1lLHRoaXMuX3Njcm9sbFBvc2l0aW9uPXRoaXMuX3Njcm9sbFRvcCl9LF91cGRhdGVTY3JvbGxlclNpemU6ZnVuY3Rpb24oZSl7dGhpcy5ncmlkP3RoaXMuX2VzdFNjcm9sbEhlaWdodD10aGlzLl92aXJ0dWFsUm93Q291bnQqdGhpcy5fcm93SGVpZ2h0OnRoaXMuX2VzdFNjcm9sbEhlaWdodD10aGlzLl9waHlzaWNhbEJvdHRvbStNYXRoLm1heCh0aGlzLl92aXJ0dWFsQ291bnQtdGhpcy5fcGh5c2ljYWxDb3VudC10aGlzLl92aXJ0dWFsU3RhcnQsMCkqdGhpcy5fcGh5c2ljYWxBdmVyYWdlLGU9ZXx8dGhpcy5fc2Nyb2xsSGVpZ2h0PT09MCxlPWV8fHRoaXMuX3Njcm9sbFBvc2l0aW9uPj10aGlzLl9lc3RTY3JvbGxIZWlnaHQtdGhpcy5fcGh5c2ljYWxTaXplLGU9ZXx8dGhpcy5ncmlkJiZ0aGlzLiQuaXRlbXMuc3R5bGUuaGVpZ2h0PHRoaXMuX2VzdFNjcm9sbEhlaWdodCwoZXx8TWF0aC5hYnModGhpcy5fZXN0U2Nyb2xsSGVpZ2h0LXRoaXMuX3Njcm9sbEhlaWdodCk+PXRoaXMuX3ZpZXdwb3J0SGVpZ2h0KSYmKHRoaXMuJC5pdGVtcy5zdHlsZS5oZWlnaHQ9dGhpcy5fZXN0U2Nyb2xsSGVpZ2h0KyJweCIsdGhpcy5fc2Nyb2xsSGVpZ2h0PXRoaXMuX2VzdFNjcm9sbEhlaWdodCl9LHNjcm9sbFRvSXRlbTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5zY3JvbGxUb0luZGV4KHRoaXMuaXRlbXMuaW5kZXhPZihlKSl9LHNjcm9sbFRvSW5kZXg6ZnVuY3Rpb24oZSl7aWYoISh0eXBlb2YgZSE9Im51bWJlciJ8fGU8MHx8ZT50aGlzLml0ZW1zLmxlbmd0aC0xKSYmKGNpKCksdGhpcy5fcGh5c2ljYWxDb3VudCE9PTApKXtlPXRoaXMuX2NsYW1wKGUsMCx0aGlzLl92aXJ0dWFsQ291bnQtMSksKCF0aGlzLl9pc0luZGV4UmVuZGVyZWQoZSl8fGU+PXRoaXMuX21heFZpcnR1YWxTdGFydCkmJih0aGlzLl92aXJ0dWFsU3RhcnQ9dGhpcy5ncmlkP2UtdGhpcy5faXRlbXNQZXJSb3cqMjplLTEpLHRoaXMuX21hbmFnZUZvY3VzKCksdGhpcy5fYXNzaWduTW9kZWxzKCksdGhpcy5fdXBkYXRlTWV0cmljcygpLHRoaXMuX3BoeXNpY2FsVG9wPU1hdGguZmxvb3IodGhpcy5fdmlydHVhbFN0YXJ0L3RoaXMuX2l0ZW1zUGVyUm93KSp0aGlzLl9waHlzaWNhbEF2ZXJhZ2U7Zm9yKHZhciB0PXRoaXMuX3BoeXNpY2FsU3RhcnQscj10aGlzLl92aXJ0dWFsU3RhcnQsbj0wLGk9dGhpcy5faGlkZGVuQ29udGVudFNpemU7cjxlJiZuPD1pOyluPW4rdGhpcy5fZ2V0UGh5c2ljYWxTaXplSW5jcmVtZW50KHQpLHQ9KHQrMSkldGhpcy5fcGh5c2ljYWxDb3VudCxyKys7dGhpcy5fdXBkYXRlU2Nyb2xsZXJTaXplKCEwKSx0aGlzLl9wb3NpdGlvbkl0ZW1zKCksdGhpcy5fcmVzZXRTY3JvbGxQb3NpdGlvbih0aGlzLl9waHlzaWNhbFRvcCt0aGlzLl9zY3JvbGxPZmZzZXQrbiksdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQoMCksdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9sYXN0VmlzaWJsZUluZGV4VmFsPW51bGx9fSxfcmVzZXRBdmVyYWdlOmZ1bmN0aW9uKCl7dGhpcy5fcGh5c2ljYWxBdmVyYWdlPTAsdGhpcy5fcGh5c2ljYWxBdmVyYWdlQ291bnQ9MH0sX3Jlc2l6ZUhhbmRsZXI6ZnVuY3Rpb24oKXt0aGlzLl9kZWJvdW5jZSgiX3JlbmRlciIsZnVuY3Rpb24oKXt0aGlzLl9maXJzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9pc1Zpc2libGU/KHRoaXMudXBkYXRlVmlld3BvcnRCb3VuZGFyaWVzKCksdGhpcy50b2dnbGVTY3JvbGxMaXN0ZW5lcighMCksdGhpcy5fcmVzZXRBdmVyYWdlKCksdGhpcy5fcmVuZGVyKCkpOnRoaXMudG9nZ2xlU2Nyb2xsTGlzdGVuZXIoITEpfSxOaSl9LHNlbGVjdEl0ZW06ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2VsZWN0SW5kZXgodGhpcy5pdGVtcy5pbmRleE9mKGUpKX0sc2VsZWN0SW5kZXg6ZnVuY3Rpb24oZSl7aWYoIShlPDB8fGU+PXRoaXMuX3ZpcnR1YWxDb3VudCkpe2lmKCF0aGlzLm11bHRpU2VsZWN0aW9uJiZ0aGlzLnNlbGVjdGVkSXRlbSYmdGhpcy5jbGVhclNlbGVjdGlvbigpLHRoaXMuX2lzSW5kZXhSZW5kZXJlZChlKSl7dmFyIHQ9dGhpcy5tb2RlbEZvckVsZW1lbnQodGhpcy5fcGh5c2ljYWxJdGVtc1t0aGlzLl9nZXRQaHlzaWNhbEluZGV4KGUpXSk7dCYmKHRbdGhpcy5zZWxlY3RlZEFzXT0hMCksdGhpcy51cGRhdGVTaXplRm9ySW5kZXgoZSl9dGhpcy4kLnNlbGVjdG9yLnNlbGVjdEluZGV4KGUpfX0sZGVzZWxlY3RJdGVtOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmRlc2VsZWN0SW5kZXgodGhpcy5pdGVtcy5pbmRleE9mKGUpKX0sZGVzZWxlY3RJbmRleDpmdW5jdGlvbihlKXtpZighKGU8MHx8ZT49dGhpcy5fdmlydHVhbENvdW50KSl7aWYodGhpcy5faXNJbmRleFJlbmRlcmVkKGUpKXt2YXIgdD10aGlzLm1vZGVsRm9yRWxlbWVudCh0aGlzLl9waHlzaWNhbEl0ZW1zW3RoaXMuX2dldFBoeXNpY2FsSW5kZXgoZSldKTt0W3RoaXMuc2VsZWN0ZWRBc109ITEsdGhpcy51cGRhdGVTaXplRm9ySW5kZXgoZSl9dGhpcy4kLnNlbGVjdG9yLmRlc2VsZWN0SW5kZXgoZSl9fSx0b2dnbGVTZWxlY3Rpb25Gb3JJdGVtOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnRvZ2dsZVNlbGVjdGlvbkZvckluZGV4KHRoaXMuaXRlbXMuaW5kZXhPZihlKSl9LHRvZ2dsZVNlbGVjdGlvbkZvckluZGV4OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuJC5zZWxlY3Rvci5pc0luZGV4U2VsZWN0ZWQ/dGhpcy4kLnNlbGVjdG9yLmlzSW5kZXhTZWxlY3RlZChlKTp0aGlzLiQuc2VsZWN0b3IuaXNTZWxlY3RlZCh0aGlzLml0ZW1zW2VdKTt0P3RoaXMuZGVzZWxlY3RJbmRleChlKTp0aGlzLnNlbGVjdEluZGV4KGUpfSxjbGVhclNlbGVjdGlvbjpmdW5jdGlvbigpe3RoaXMuX2l0ZXJhdGVJdGVtcyhmdW5jdGlvbihlLHQpe3RoaXMubW9kZWxGb3JFbGVtZW50KHRoaXMuX3BoeXNpY2FsSXRlbXNbZV0pW3RoaXMuc2VsZWN0ZWRBc109ITF9KSx0aGlzLiQuc2VsZWN0b3IuY2xlYXJTZWxlY3Rpb24oKX0sX3NlbGVjdGlvbkVuYWJsZWRDaGFuZ2VkOmZ1bmN0aW9uKGUpe3ZhciB0PWU/dGhpcy5saXN0ZW46dGhpcy51bmxpc3Rlbjt0LmNhbGwodGhpcyx0aGlzLCJ0YXAiLCJfc2VsZWN0aW9uSGFuZGxlciIpfSxfc2VsZWN0aW9uSGFuZGxlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLm1vZGVsRm9yRWxlbWVudChlLnRhcmdldCk7aWYoISF0KXt2YXIgcixuLGk9enQoZSkucGF0aFswXSxvPXRoaXMuX2dldEFjdGl2ZUVsZW1lbnQoKSxhPXRoaXMuX3BoeXNpY2FsSXRlbXNbdGhpcy5fZ2V0UGh5c2ljYWxJbmRleCh0W3RoaXMuaW5kZXhBc10pXTtpLmxvY2FsTmFtZT09PSJpbnB1dCJ8fGkubG9jYWxOYW1lPT09ImJ1dHRvbiJ8fGkubG9jYWxOYW1lPT09InNlbGVjdCJ8fChyPXQudGFiSW5kZXgsdC50YWJJbmRleD1mRSxuPW8/by50YWJJbmRleDotMSx0LnRhYkluZGV4PXIsIShvJiZhIT09byYmYS5jb250YWlucyhvKSYmbiE9PWZFKSYmdGhpcy50b2dnbGVTZWxlY3Rpb25Gb3JJdGVtKHRbdGhpcy5hc10pKX19LF9tdWx0aVNlbGVjdGlvbkNoYW5nZWQ6ZnVuY3Rpb24oZSl7dGhpcy5jbGVhclNlbGVjdGlvbigpLHRoaXMuJC5zZWxlY3Rvci5tdWx0aT1lfSx1cGRhdGVTaXplRm9ySXRlbTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy51cGRhdGVTaXplRm9ySW5kZXgodGhpcy5pdGVtcy5pbmRleE9mKGUpKX0sdXBkYXRlU2l6ZUZvckluZGV4OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9pc0luZGV4UmVuZGVyZWQoZSkmJih0aGlzLl91cGRhdGVNZXRyaWNzKFt0aGlzLl9nZXRQaHlzaWNhbEluZGV4KGUpXSksdGhpcy5fcG9zaXRpb25JdGVtcygpKSxudWxsfSxfbWFuYWdlRm9jdXM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9mb2N1c2VkVmlydHVhbEluZGV4O2U+PTAmJmU8dGhpcy5fdmlydHVhbENvdW50P3RoaXMuX2lzSW5kZXhSZW5kZXJlZChlKT90aGlzLl9yZXN0b3JlRm9jdXNlZEl0ZW0oKTp0aGlzLl9jcmVhdGVGb2N1c0JhY2tmaWxsSXRlbSgpOnRoaXMuX3ZpcnR1YWxDb3VudD4wJiZ0aGlzLl9waHlzaWNhbENvdW50PjAmJih0aGlzLl9mb2N1c2VkUGh5c2ljYWxJbmRleD10aGlzLl9waHlzaWNhbFN0YXJ0LHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg9dGhpcy5fdmlydHVhbFN0YXJ0LHRoaXMuX2ZvY3VzZWRJdGVtPXRoaXMuX3BoeXNpY2FsSXRlbXNbdGhpcy5fcGh5c2ljYWxTdGFydF0pfSxfY29udmVydEluZGV4VG9Db21wbGV0ZVJvdzpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5faXRlbXNQZXJSb3c9dGhpcy5faXRlbXNQZXJSb3d8fDEsdGhpcy5ncmlkP01hdGguY2VpbChlL3RoaXMuX2l0ZW1zUGVyUm93KSp0aGlzLl9pdGVtc1BlclJvdzplfSxfaXNJbmRleFJlbmRlcmVkOmZ1bmN0aW9uKGUpe3JldHVybiBlPj10aGlzLl92aXJ0dWFsU3RhcnQmJmU8PXRoaXMuX3ZpcnR1YWxFbmR9LF9pc0luZGV4VmlzaWJsZTpmdW5jdGlvbihlKXtyZXR1cm4gZT49dGhpcy5maXJzdFZpc2libGVJbmRleCYmZTw9dGhpcy5sYXN0VmlzaWJsZUluZGV4fSxfZ2V0UGh5c2ljYWxJbmRleDpmdW5jdGlvbihlKXtyZXR1cm4odGhpcy5fcGh5c2ljYWxTdGFydCsoZS10aGlzLl92aXJ0dWFsU3RhcnQpKSV0aGlzLl9waHlzaWNhbENvdW50fSxmb2N1c0l0ZW06ZnVuY3Rpb24oZSl7dGhpcy5fZm9jdXNQaHlzaWNhbEl0ZW0oZSl9LF9mb2N1c1BoeXNpY2FsSXRlbTpmdW5jdGlvbihlKXtpZighKGU8MHx8ZT49dGhpcy5fdmlydHVhbENvdW50KSl7dGhpcy5fcmVzdG9yZUZvY3VzZWRJdGVtKCksdGhpcy5faXNJbmRleFJlbmRlcmVkKGUpfHx0aGlzLnNjcm9sbFRvSW5kZXgoZSk7dmFyIHQ9dGhpcy5fcGh5c2ljYWxJdGVtc1t0aGlzLl9nZXRQaHlzaWNhbEluZGV4KGUpXSxyPXRoaXMubW9kZWxGb3JFbGVtZW50KHQpLG47ci50YWJJbmRleD1mRSx0LnRhYkluZGV4PT09ZkUmJihuPXQpLG58fChuPXp0KHQpLnF1ZXJ5U2VsZWN0b3IoJ1t0YWJpbmRleD0iJytmRSsnIl0nKSksci50YWJJbmRleD0wLHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg9ZSxuJiZuLmZvY3VzKCl9fSxfcmVtb3ZlRm9jdXNlZEl0ZW06ZnVuY3Rpb24oKXt0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSYmdGhpcy5faXRlbXNQYXJlbnQucmVtb3ZlQ2hpbGQodGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW0pLHRoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtPW51bGwsdGhpcy5fZm9jdXNCYWNrZmlsbEl0ZW09bnVsbCx0aGlzLl9mb2N1c2VkSXRlbT1udWxsLHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg9LTEsdGhpcy5fZm9jdXNlZFBoeXNpY2FsSW5kZXg9LTF9LF9jcmVhdGVGb2N1c0JhY2tmaWxsSXRlbTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX2ZvY3VzZWRQaHlzaWNhbEluZGV4O2lmKCEodGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW18fHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg8MCkpe2lmKCF0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbSl7dmFyIHQ9dGhpcy5zdGFtcChudWxsKTt0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbT10LnJvb3QucXVlcnlTZWxlY3RvcigiKiIpLHRoaXMuX2l0ZW1zUGFyZW50LmFwcGVuZENoaWxkKHQucm9vdCl9dGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW09dGhpcy5fcGh5c2ljYWxJdGVtc1tlXSx0aGlzLm1vZGVsRm9yRWxlbWVudCh0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSkudGFiSW5kZXg9MCx0aGlzLl9waHlzaWNhbEl0ZW1zW2VdPXRoaXMuX2ZvY3VzQmFja2ZpbGxJdGVtLHRoaXMuX2ZvY3VzZWRQaHlzaWNhbEluZGV4PWUsdGhpcy50cmFuc2xhdGUzZCgwLHMwdCwwLHRoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtKX19LF9yZXN0b3JlRm9jdXNlZEl0ZW06ZnVuY3Rpb24oKXtpZighKCF0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbXx8dGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleDwwKSl7dGhpcy5fYXNzaWduTW9kZWxzKCk7dmFyIGU9dGhpcy5fZm9jdXNlZFBoeXNpY2FsSW5kZXg9dGhpcy5fZ2V0UGh5c2ljYWxJbmRleCh0aGlzLl9mb2N1c2VkVmlydHVhbEluZGV4KSx0PXRoaXMuX3BoeXNpY2FsSXRlbXNbZV07aWYoISF0KXt2YXIgcj10aGlzLm1vZGVsRm9yRWxlbWVudCh0KSxuPXRoaXMubW9kZWxGb3JFbGVtZW50KHRoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtKTtyW3RoaXMuYXNdPT09blt0aGlzLmFzXT8odGhpcy5fZm9jdXNCYWNrZmlsbEl0ZW09dCxyLnRhYkluZGV4PS0xLHRoaXMuX3BoeXNpY2FsSXRlbXNbZV09dGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW0sdGhpcy50cmFuc2xhdGUzZCgwLHMwdCwwLHRoaXMuX2ZvY3VzQmFja2ZpbGxJdGVtKSk6KHRoaXMuX3JlbW92ZUZvY3VzZWRJdGVtKCksdGhpcy5fZm9jdXNCYWNrZmlsbEl0ZW09bnVsbCksdGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW09bnVsbH19fSxfZGlkRm9jdXM6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5tb2RlbEZvckVsZW1lbnQoZS50YXJnZXQpLHI9dGhpcy5tb2RlbEZvckVsZW1lbnQodGhpcy5fZm9jdXNlZEl0ZW0pLG49dGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW0hPT1udWxsLGk9dGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleDshdHx8KHI9PT10P3RoaXMuX2lzSW5kZXhWaXNpYmxlKGkpfHx0aGlzLnNjcm9sbFRvSW5kZXgoaSk6KHRoaXMuX3Jlc3RvcmVGb2N1c2VkSXRlbSgpLHImJihyLnRhYkluZGV4PS0xKSx0LnRhYkluZGV4PTAsaT10W3RoaXMuaW5kZXhBc10sdGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleD1pLHRoaXMuX2ZvY3VzZWRQaHlzaWNhbEluZGV4PXRoaXMuX2dldFBoeXNpY2FsSW5kZXgoaSksdGhpcy5fZm9jdXNlZEl0ZW09dGhpcy5fcGh5c2ljYWxJdGVtc1t0aGlzLl9mb2N1c2VkUGh5c2ljYWxJbmRleF0sbiYmIXRoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtJiZ0aGlzLl91cGRhdGUoKSkpfSxfa2V5ZG93bkhhbmRsZXI6ZnVuY3Rpb24oZSl7c3dpdGNoKGUua2V5Q29kZSl7Y2FzZSA0MDp0aGlzLl9mb2N1c2VkVmlydHVhbEluZGV4PHRoaXMuX3ZpcnR1YWxDb3VudC0xJiZlLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZm9jdXNQaHlzaWNhbEl0ZW0odGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleCsodGhpcy5ncmlkP3RoaXMuX2l0ZW1zUGVyUm93OjEpKTticmVhaztjYXNlIDM5OnRoaXMuZ3JpZCYmdGhpcy5fZm9jdXNQaHlzaWNhbEl0ZW0odGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleCsodGhpcy5faXNSVEw/LTE6MSkpO2JyZWFrO2Nhc2UgMzg6dGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleD4wJiZlLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZm9jdXNQaHlzaWNhbEl0ZW0odGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleC0odGhpcy5ncmlkP3RoaXMuX2l0ZW1zUGVyUm93OjEpKTticmVhaztjYXNlIDM3OnRoaXMuZ3JpZCYmdGhpcy5fZm9jdXNQaHlzaWNhbEl0ZW0odGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleCsodGhpcy5faXNSVEw/MTotMSkpO2JyZWFrO2Nhc2UgMTM6dGhpcy5fZm9jdXNQaHlzaWNhbEl0ZW0odGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleCksdGhpcy5zZWxlY3Rpb25FbmFibGVkJiZ0aGlzLl9zZWxlY3Rpb25IYW5kbGVyKGUpO2JyZWFrfX0sX2NsYW1wOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gTWF0aC5taW4ocixNYXRoLm1heCh0LGUpKX0sX2RlYm91bmNlOmZ1bmN0aW9uKGUsdCxyKXt0aGlzLl9kZWJvdW5jZXJzPXRoaXMuX2RlYm91bmNlcnN8fHt9LHRoaXMuX2RlYm91bmNlcnNbZV09c3IuZGVib3VuY2UodGhpcy5fZGVib3VuY2Vyc1tlXSxyLHQuYmluZCh0aGlzKSksSmwodGhpcy5fZGVib3VuY2Vyc1tlXSl9LF9mb3J3YXJkUHJvcGVydHk6ZnVuY3Rpb24oZSx0LHIpe2UuX3NldFBlbmRpbmdQcm9wZXJ0eSh0LHIpfSxfZm9yd2FyZEhvc3RQcm9wVjI6ZnVuY3Rpb24oZSx0KXsodGhpcy5fcGh5c2ljYWxJdGVtc3x8W10pLmNvbmNhdChbdGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW0sdGhpcy5fZm9jdXNCYWNrZmlsbEl0ZW1dKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3ImJnRoaXMubW9kZWxGb3JFbGVtZW50KHIpLmZvcndhcmRIb3N0UHJvcChlLHQpfSx0aGlzKX0sX25vdGlmeUluc3RhbmNlUHJvcFYyOmZ1bmN0aW9uKGUsdCxyKXtpZihPSSh0aGlzLmFzLHQpKXt2YXIgbj1lW3RoaXMuaW5kZXhBc107dD09dGhpcy5hcyYmKHRoaXMuaXRlbXNbbl09ciksdGhpcy5ub3RpZnlQYXRoKG1wKHRoaXMuYXMsIml0ZW1zLiIrbix0KSxyKX19LF9nZXRTdGFtcGVkQ2hpbGRyZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcGh5c2ljYWxJdGVtc30sX2ZvcndhcmRJbnN0YW5jZVBhdGg6ZnVuY3Rpb24oZSx0LHIpe3QuaW5kZXhPZih0aGlzLmFzKyIuIik9PT0wJiZ0aGlzLm5vdGlmeVBhdGgoIml0ZW1zLiIrZS5fX2tleV9fKyIuIit0LnNsaWNlKHRoaXMuYXMubGVuZ3RoKzEpLHIpfSxfZm9yd2FyZFBhcmVudFBhdGg6ZnVuY3Rpb24oZSx0KXsodGhpcy5fcGh5c2ljYWxJdGVtc3x8W10pLmNvbmNhdChbdGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW0sdGhpcy5fZm9jdXNCYWNrZmlsbEl0ZW1dKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3ImJnRoaXMubW9kZWxGb3JFbGVtZW50KHIpLm5vdGlmeVBhdGgoZSx0KX0sdGhpcyl9LF9mb3J3YXJkUGFyZW50UHJvcDpmdW5jdGlvbihlLHQpeyh0aGlzLl9waHlzaWNhbEl0ZW1zfHxbXSkuY29uY2F0KFt0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSx0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbV0pLmZvckVhY2goZnVuY3Rpb24ocil7ciYmKHRoaXMubW9kZWxGb3JFbGVtZW50KHIpW2VdPXQpfSx0aGlzKX0sX2dldEFjdGl2ZUVsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9pdGVtc1BhcmVudC5ub2RlLmRvbUhvc3Q7cmV0dXJuIHp0KGU/ZS5yb290OmRvY3VtZW50KS5hY3RpdmVFbGVtZW50fX0pO3ZhciB4OT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnNlbGVjdGlvbj1bXSx0aGlzLnNlbGVjdENhbGxiYWNrPXR9Z2V0KCl7cmV0dXJuIHRoaXMubXVsdGk/dGhpcy5zZWxlY3Rpb24uc2xpY2UoKTp0aGlzLnNlbGVjdGlvblswXX1jbGVhcih0KXt0aGlzLnNlbGVjdGlvbi5zbGljZSgpLmZvckVhY2goZnVuY3Rpb24ocil7KCF0fHx0LmluZGV4T2Yocik8MCkmJnRoaXMuc2V0SXRlbVNlbGVjdGVkKHIsITEpfSx0aGlzKX1pc1NlbGVjdGVkKHQpe3JldHVybiB0aGlzLnNlbGVjdGlvbi5pbmRleE9mKHQpPj0wfXNldEl0ZW1TZWxlY3RlZCh0LHIpe2lmKHQhPW51bGwmJnIhPT10aGlzLmlzU2VsZWN0ZWQodCkpe2lmKHIpdGhpcy5zZWxlY3Rpb24ucHVzaCh0KTtlbHNle3ZhciBuPXRoaXMuc2VsZWN0aW9uLmluZGV4T2YodCk7bj49MCYmdGhpcy5zZWxlY3Rpb24uc3BsaWNlKG4sMSl9dGhpcy5zZWxlY3RDYWxsYmFjayYmdGhpcy5zZWxlY3RDYWxsYmFjayh0LHIpfX1zZWxlY3QodCl7dGhpcy5tdWx0aT90aGlzLnRvZ2dsZSh0KTp0aGlzLmdldCgpIT09dCYmKHRoaXMuc2V0SXRlbVNlbGVjdGVkKHRoaXMuZ2V0KCksITEpLHRoaXMuc2V0SXRlbVNlbGVjdGVkKHQsITApKX10b2dnbGUodCl7dGhpcy5zZXRJdGVtU2VsZWN0ZWQodCwhdGhpcy5pc1NlbGVjdGVkKHQpKX19O3ZhciBTaD17cHJvcGVydGllczp7YXR0ckZvclNlbGVjdGVkOnt0eXBlOlN0cmluZyx2YWx1ZTpudWxsfSxzZWxlY3RlZDp7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSxzZWxlY3RlZEl0ZW06e3R5cGU6T2JqZWN0LHJlYWRPbmx5OiEwLG5vdGlmeTohMH0sYWN0aXZhdGVFdmVudDp7dHlwZTpTdHJpbmcsdmFsdWU6InRhcCIsb2JzZXJ2ZXI6Il9hY3RpdmF0ZUV2ZW50Q2hhbmdlZCJ9LHNlbGVjdGFibGU6U3RyaW5nLHNlbGVjdGVkQ2xhc3M6e3R5cGU6U3RyaW5nLHZhbHVlOiJpcm9uLXNlbGVjdGVkIn0sc2VsZWN0ZWRBdHRyaWJ1dGU6e3R5cGU6U3RyaW5nLHZhbHVlOm51bGx9LGZhbGxiYWNrU2VsZWN0aW9uOnt0eXBlOlN0cmluZyx2YWx1ZTpudWxsfSxpdGVtczp7dHlwZTpBcnJheSxyZWFkT25seTohMCxub3RpZnk6ITAsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bXX19LF9leGNsdWRlZExvY2FsTmFtZXM6e3R5cGU6T2JqZWN0LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue3RlbXBsYXRlOjEsImRvbS1iaW5kIjoxLCJkb20taWYiOjEsImRvbS1yZXBlYXQiOjF9fX19LG9ic2VydmVyczpbIl91cGRhdGVBdHRyRm9yU2VsZWN0ZWQoYXR0ckZvclNlbGVjdGVkKSIsIl91cGRhdGVTZWxlY3RlZChzZWxlY3RlZCkiLCJfY2hlY2tGYWxsYmFjayhmYWxsYmFja1NlbGVjdGlvbikiXSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5fYmluZEZpbHRlckl0ZW09dGhpcy5fZmlsdGVySXRlbS5iaW5kKHRoaXMpLHRoaXMuX3NlbGVjdGlvbj1uZXcgeDkodGhpcy5fYXBwbHlTZWxlY3Rpb24uYmluZCh0aGlzKSl9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fb2JzZXJ2ZXI9dGhpcy5fb2JzZXJ2ZUl0ZW1zKHRoaXMpLHRoaXMuX2FkZExpc3RlbmVyKHRoaXMuYWN0aXZhdGVFdmVudCl9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fb2JzZXJ2ZXImJnp0KHRoaXMpLnVub2JzZXJ2ZU5vZGVzKHRoaXMuX29ic2VydmVyKSx0aGlzLl9yZW1vdmVMaXN0ZW5lcih0aGlzLmFjdGl2YXRlRXZlbnQpfSxpbmRleE9mOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLml0ZW1zP3RoaXMuaXRlbXMuaW5kZXhPZihlKTotMX0sc2VsZWN0OmZ1bmN0aW9uKGUpe3RoaXMuc2VsZWN0ZWQ9ZX0sc2VsZWN0UHJldmlvdXM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLml0ZW1zLmxlbmd0aCx0PWUtMTt0aGlzLnNlbGVjdGVkIT09dm9pZCAwJiYodD0oTnVtYmVyKHRoaXMuX3ZhbHVlVG9JbmRleCh0aGlzLnNlbGVjdGVkKSktMStlKSVlKSx0aGlzLnNlbGVjdGVkPXRoaXMuX2luZGV4VG9WYWx1ZSh0KX0sc2VsZWN0TmV4dDpmdW5jdGlvbigpe3ZhciBlPTA7dGhpcy5zZWxlY3RlZCE9PXZvaWQgMCYmKGU9KE51bWJlcih0aGlzLl92YWx1ZVRvSW5kZXgodGhpcy5zZWxlY3RlZCkpKzEpJXRoaXMuaXRlbXMubGVuZ3RoKSx0aGlzLnNlbGVjdGVkPXRoaXMuX2luZGV4VG9WYWx1ZShlKX0sc2VsZWN0SW5kZXg6ZnVuY3Rpb24oZSl7dGhpcy5zZWxlY3QodGhpcy5faW5kZXhUb1ZhbHVlKGUpKX0sZm9yY2VTeW5jaHJvbm91c0l0ZW1VcGRhdGU6ZnVuY3Rpb24oKXt0aGlzLl9vYnNlcnZlciYmdHlwZW9mIHRoaXMuX29ic2VydmVyLmZsdXNoPT0iZnVuY3Rpb24iP3RoaXMuX29ic2VydmVyLmZsdXNoKCk6dGhpcy5fdXBkYXRlSXRlbXMoKX0sZ2V0IF9zaG91bGRVcGRhdGVTZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3RlZCE9bnVsbH0sX2NoZWNrRmFsbGJhY2s6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVTZWxlY3RlZCgpfSxfYWRkTGlzdGVuZXI6ZnVuY3Rpb24oZSl7dGhpcy5saXN0ZW4odGhpcyxlLCJfYWN0aXZhdGVIYW5kbGVyIil9LF9yZW1vdmVMaXN0ZW5lcjpmdW5jdGlvbihlKXt0aGlzLnVubGlzdGVuKHRoaXMsZSwiX2FjdGl2YXRlSGFuZGxlciIpfSxfYWN0aXZhdGVFdmVudENoYW5nZWQ6ZnVuY3Rpb24oZSx0KXt0aGlzLl9yZW1vdmVMaXN0ZW5lcih0KSx0aGlzLl9hZGRMaXN0ZW5lcihlKX0sX3VwZGF0ZUl0ZW1zOmZ1bmN0aW9uKCl7dmFyIGU9enQodGhpcykucXVlcnlEaXN0cmlidXRlZEVsZW1lbnRzKHRoaXMuc2VsZWN0YWJsZXx8IioiKTtlPUFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChlLHRoaXMuX2JpbmRGaWx0ZXJJdGVtKSx0aGlzLl9zZXRJdGVtcyhlKX0sX3VwZGF0ZUF0dHJGb3JTZWxlY3RlZDpmdW5jdGlvbigpe3RoaXMuc2VsZWN0ZWRJdGVtJiYodGhpcy5zZWxlY3RlZD10aGlzLl92YWx1ZUZvckl0ZW0odGhpcy5zZWxlY3RlZEl0ZW0pKX0sX3VwZGF0ZVNlbGVjdGVkOmZ1bmN0aW9uKCl7dGhpcy5fc2VsZWN0U2VsZWN0ZWQodGhpcy5zZWxlY3RlZCl9LF9zZWxlY3RTZWxlY3RlZDpmdW5jdGlvbihlKXtpZighIXRoaXMuaXRlbXMpe3ZhciB0PXRoaXMuX3ZhbHVlVG9JdGVtKHRoaXMuc2VsZWN0ZWQpO3Q/dGhpcy5fc2VsZWN0aW9uLnNlbGVjdCh0KTp0aGlzLl9zZWxlY3Rpb24uY2xlYXIoKSx0aGlzLmZhbGxiYWNrU2VsZWN0aW9uJiZ0aGlzLml0ZW1zLmxlbmd0aCYmdGhpcy5fc2VsZWN0aW9uLmdldCgpPT09dm9pZCAwJiYodGhpcy5zZWxlY3RlZD10aGlzLmZhbGxiYWNrU2VsZWN0aW9uKX19LF9maWx0ZXJJdGVtOmZ1bmN0aW9uKGUpe3JldHVybiF0aGlzLl9leGNsdWRlZExvY2FsTmFtZXNbZS5sb2NhbE5hbWVdfSxfdmFsdWVUb0l0ZW06ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PW51bGw/bnVsbDp0aGlzLml0ZW1zW3RoaXMuX3ZhbHVlVG9JbmRleChlKV19LF92YWx1ZVRvSW5kZXg6ZnVuY3Rpb24oZSl7aWYodGhpcy5hdHRyRm9yU2VsZWN0ZWQpe2Zvcih2YXIgdD0wLHI7cj10aGlzLml0ZW1zW3RdO3QrKylpZih0aGlzLl92YWx1ZUZvckl0ZW0ocik9PWUpcmV0dXJuIHR9ZWxzZSByZXR1cm4gTnVtYmVyKGUpfSxfaW5kZXhUb1ZhbHVlOmZ1bmN0aW9uKGUpe2lmKHRoaXMuYXR0ckZvclNlbGVjdGVkKXt2YXIgdD10aGlzLml0ZW1zW2VdO2lmKHQpcmV0dXJuIHRoaXMuX3ZhbHVlRm9ySXRlbSh0KX1lbHNlIHJldHVybiBlfSxfdmFsdWVGb3JJdGVtOmZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiBudWxsO2lmKCF0aGlzLmF0dHJGb3JTZWxlY3RlZCl7dmFyIHQ9dGhpcy5pbmRleE9mKGUpO3JldHVybiB0PT09LTE/bnVsbDp0fXZhciByPWVbU20odGhpcy5hdHRyRm9yU2VsZWN0ZWQpXTtyZXR1cm4gciE9bnVsbD9yOmUuZ2V0QXR0cmlidXRlKHRoaXMuYXR0ckZvclNlbGVjdGVkKX0sX2FwcGx5U2VsZWN0aW9uOmZ1bmN0aW9uKGUsdCl7dGhpcy5zZWxlY3RlZENsYXNzJiZ0aGlzLnRvZ2dsZUNsYXNzKHRoaXMuc2VsZWN0ZWRDbGFzcyx0LGUpLHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUmJnRoaXMudG9nZ2xlQXR0cmlidXRlKHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUsdCxlKSx0aGlzLl9zZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLmZpcmUoImlyb24tIisodD8ic2VsZWN0IjoiZGVzZWxlY3QiKSx7aXRlbTplfSl9LF9zZWxlY3Rpb25DaGFuZ2U6ZnVuY3Rpb24oKXt0aGlzLl9zZXRTZWxlY3RlZEl0ZW0odGhpcy5fc2VsZWN0aW9uLmdldCgpKX0sX29ic2VydmVJdGVtczpmdW5jdGlvbihlKXtyZXR1cm4genQoZSkub2JzZXJ2ZU5vZGVzKGZ1bmN0aW9uKHQpe3RoaXMuX3VwZGF0ZUl0ZW1zKCksdGhpcy5fdXBkYXRlU2VsZWN0ZWQoKSx0aGlzLmZpcmUoImlyb24taXRlbXMtY2hhbmdlZCIsdCx7YnViYmxlczohMSxjYW5jZWxhYmxlOiExfSl9KX0sX2FjdGl2YXRlSGFuZGxlcjpmdW5jdGlvbihlKXtmb3IodmFyIHQ9ZS50YXJnZXQscj10aGlzLml0ZW1zO3QmJnQhPXRoaXM7KXt2YXIgbj1yLmluZGV4T2YodCk7aWYobj49MCl7dmFyIGk9dGhpcy5faW5kZXhUb1ZhbHVlKG4pO3RoaXMuX2l0ZW1BY3RpdmF0ZShpLHQpO3JldHVybn10PXQucGFyZW50Tm9kZX19LF9pdGVtQWN0aXZhdGU6ZnVuY3Rpb24oZSx0KXt0aGlzLmZpcmUoImlyb24tYWN0aXZhdGUiLHtzZWxlY3RlZDplLGl0ZW06dH0se2NhbmNlbGFibGU6ITB9KS5kZWZhdWx0UHJldmVudGVkfHx0aGlzLnNlbGVjdChlKX19O1l0KHtfdGVtcGxhdGU6UWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICA6aG9zdCA+IDo6c2xvdHRlZCg6bm90KHNsb3QpOm5vdCguaXJvbi1zZWxlY3RlZCkpIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJpcm9uLXBhZ2VzIixiZWhhdmlvcnM6W1FzLFNoXSxwcm9wZXJ0aWVzOnthY3RpdmF0ZUV2ZW50Ont0eXBlOlN0cmluZyx2YWx1ZTpudWxsfX0sb2JzZXJ2ZXJzOlsiX3NlbGVjdGVkUGFnZUNoYW5nZWQoc2VsZWN0ZWQpIl0sX3NlbGVjdGVkUGFnZUNoYW5nZWQ6ZnVuY3Rpb24oZSx0KXt0aGlzLmFzeW5jKHRoaXMubm90aWZ5UmVzaXplKX19KTt2YXIgbDB0PVFgCjxjdXN0b20tc3R5bGU+CiAgPHN0eWxlIGlzPSJjdXN0b20tc3R5bGUiPgogICAgaHRtbCB7CgogICAgICAtLXNoYWRvdy10cmFuc2l0aW9uOiB7CiAgICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9OwoKICAgICAgLS1zaGFkb3ctbm9uZTogewogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgIH07CgogICAgICAvKiBmcm9tIGh0dHA6Ly9jb2RlcGVuLmlvL3NoeW5kbWFuL3Blbi9jNTM5NGRkZjJlOGIyYTVjOTE4NTkwNGI1NzQyMWNkYiAqLwoKICAgICAgLS1zaGFkb3ctZWxldmF0aW9uLTJkcDogewogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksCiAgICAgICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwKICAgICAgICAgICAgICAgICAgICAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMik7CiAgICAgIH07CgogICAgICAtLXNoYWRvdy1lbGV2YXRpb24tM2RwOiB7CiAgICAgICAgYm94LXNoYWRvdzogMCAzcHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwKICAgICAgICAgICAgICAgICAgICAwIDFweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLAogICAgICAgICAgICAgICAgICAgIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgICAgfTsKCiAgICAgIC0tc2hhZG93LWVsZXZhdGlvbi00ZHA6IHsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLAogICAgICAgICAgICAgICAgICAgIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLAogICAgICAgICAgICAgICAgICAgIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgICAgfTsKCiAgICAgIC0tc2hhZG93LWVsZXZhdGlvbi02ZHA6IHsKICAgICAgICBib3gtc2hhZG93OiAwIDZweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwKICAgICAgICAgICAgICAgICAgICAwIDFweCAxOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwKICAgICAgICAgICAgICAgICAgICAwIDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgIH07CgogICAgICAtLXNoYWRvdy1lbGV2YXRpb24tOGRwOiB7CiAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwKICAgICAgICAgICAgICAgICAgICAwIDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpLAogICAgICAgICAgICAgICAgICAgIDAgNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgICAgfTsKCiAgICAgIC0tc2hhZG93LWVsZXZhdGlvbi0xMmRwOiB7CiAgICAgICAgYm94LXNoYWRvdzogMCAxMnB4IDE2cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksCiAgICAgICAgICAgICAgICAgICAgMCA0cHggMjJweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKSwKICAgICAgICAgICAgICAgICAgICAwIDZweCA3cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgIH07CgogICAgICAtLXNoYWRvdy1lbGV2YXRpb24tMTZkcDogewogICAgICAgIGJveC1zaGFkb3c6IDAgMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLAogICAgICAgICAgICAgICAgICAgIDAgIDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpLAogICAgICAgICAgICAgICAgICAgIDAgIDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICB9OwoKICAgICAgLS1zaGFkb3ctZWxldmF0aW9uLTI0ZHA6IHsKICAgICAgICBib3gtc2hhZG93OiAwIDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwKICAgICAgICAgICAgICAgICAgICAwIDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpLAogICAgICAgICAgICAgICAgICAgIDAgMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICB9OwogICAgfQogIDwvc3R5bGU+CjwvY3VzdG9tLXN0eWxlPmA7bDB0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobDB0LmNvbnRlbnQpO3ZhciBjMHQ9UWAKPGRvbS1tb2R1bGUgaWQ9InBhcGVyLW1hdGVyaWFsLXN0eWxlcyI+CiAgPHRlbXBsYXRlPgogICAgPHN0eWxlPgogICAgICBodG1sIHsKICAgICAgICAtLXBhcGVyLW1hdGVyaWFsOiB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB9OwogICAgICAgIC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTE6IHsKICAgICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tMmRwOwogICAgICAgIH07CiAgICAgICAgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMjogewogICAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi00ZHA7CiAgICAgICAgfTsKICAgICAgICAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0zOiB7CiAgICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLTZkcDsKICAgICAgICB9OwogICAgICAgIC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTQ6IHsKICAgICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tOGRwOwogICAgICAgIH07CiAgICAgICAgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tNTogewogICAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi0xNmRwOwogICAgICAgIH07CiAgICAgIH0KICAgICAgLnBhcGVyLW1hdGVyaWFsIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbDsKICAgICAgfQogICAgICAucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSIxIl0gewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0xOwogICAgICB9CiAgICAgIC5wYXBlci1tYXRlcmlhbFtlbGV2YXRpb249IjIiXSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTI7CiAgICAgIH0KICAgICAgLnBhcGVyLW1hdGVyaWFsW2VsZXZhdGlvbj0iMyJdIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMzsKICAgICAgfQogICAgICAucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSI0Il0gewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi00OwogICAgICB9CiAgICAgIC5wYXBlci1tYXRlcmlhbFtlbGV2YXRpb249IjUiXSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTU7CiAgICAgIH0KCiAgICAgIC8qIER1cGxpY2F0ZSB0aGUgc3R5bGVzIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL3dlYmNvbXBvbmVudHMvc2hhZHljc3MvaXNzdWVzLzE5MyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1wYXBlci1tYXRlcmlhbDogewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfTsKICAgICAgICAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0xOiB7CiAgICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLTJkcDsKICAgICAgICB9OwogICAgICAgIC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTI6IHsKICAgICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tNGRwOwogICAgICAgIH07CiAgICAgICAgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMzogewogICAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi02ZHA7CiAgICAgICAgfTsKICAgICAgICAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi00OiB7CiAgICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLThkcDsKICAgICAgICB9OwogICAgICAgIC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTU6IHsKICAgICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tMTZkcDsKICAgICAgICB9OwogICAgICB9CiAgICAgIDpob3N0KC5wYXBlci1tYXRlcmlhbCkgewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsOwogICAgICB9CiAgICAgIDpob3N0KC5wYXBlci1tYXRlcmlhbFtlbGV2YXRpb249IjEiXSkgewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0xOwogICAgICB9CiAgICAgIDpob3N0KC5wYXBlci1tYXRlcmlhbFtlbGV2YXRpb249IjIiXSkgewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0yOwogICAgICB9CiAgICAgIDpob3N0KC5wYXBlci1tYXRlcmlhbFtlbGV2YXRpb249IjMiXSkgewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0zOwogICAgICB9CiAgICAgIDpob3N0KC5wYXBlci1tYXRlcmlhbFtlbGV2YXRpb249IjQiXSkgewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi00OwogICAgICB9CiAgICAgIDpob3N0KC5wYXBlci1tYXRlcmlhbFtlbGV2YXRpb249IjUiXSkgewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi01OwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvdGVtcGxhdGU+CjwvZG9tLW1vZHVsZT5gO2MwdC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKTtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGMwdC5jb250ZW50KTt2YXIgRGk9e3Byb3BlcnRpZXM6e2ZvY3VzZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITAscmVhZE9ubHk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxkaXNhYmxlZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMCxvYnNlcnZlcjoiX2Rpc2FibGVkQ2hhbmdlZCIscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxfb2xkVGFiSW5kZXg6e3R5cGU6U3RyaW5nfSxfYm91bmRGb2N1c0JsdXJIYW5kbGVyOnt0eXBlOkZ1bmN0aW9uLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZvY3VzQmx1ckhhbmRsZXIuYmluZCh0aGlzKX19fSxvYnNlcnZlcnM6WyJfY2hhbmdlZENvbnRyb2xTdGF0ZShmb2N1c2VkLCBkaXNhYmxlZCkiXSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuX2JvdW5kRm9jdXNCbHVySGFuZGxlciwhMCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9ib3VuZEZvY3VzQmx1ckhhbmRsZXIsITApfSxfZm9jdXNCbHVySGFuZGxlcjpmdW5jdGlvbihlKXt0aGlzLl9zZXRGb2N1c2VkKGUudHlwZT09PSJmb2N1cyIpfSxfZGlzYWJsZWRDaGFuZ2VkOmZ1bmN0aW9uKGUsdCl7dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiLGU/InRydWUiOiJmYWxzZSIpLHRoaXMuc3R5bGUucG9pbnRlckV2ZW50cz1lPyJub25lIjoiIixlPyh0aGlzLl9vbGRUYWJJbmRleD10aGlzLmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKSx0aGlzLl9zZXRGb2N1c2VkKCExKSx0aGlzLnRhYkluZGV4PS0xLHRoaXMuYmx1cigpKTp0aGlzLl9vbGRUYWJJbmRleCE9PXZvaWQgMCYmKHRoaXMuX29sZFRhYkluZGV4PT09bnVsbD90aGlzLnJlbW92ZUF0dHJpYnV0ZSgidGFiaW5kZXgiKTp0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLHRoaXMuX29sZFRhYkluZGV4KSl9LF9jaGFuZ2VkQ29udHJvbFN0YXRlOmZ1bmN0aW9uKCl7dGhpcy5fY29udHJvbFN0YXRlQ2hhbmdlZCYmdGhpcy5fY29udHJvbFN0YXRlQ2hhbmdlZCgpfX07dmFyIFl4PXtwcm9wZXJ0aWVzOntwcmVzc2VkOnt0eXBlOkJvb2xlYW4scmVhZE9ubHk6ITAsdmFsdWU6ITEscmVmbGVjdFRvQXR0cmlidXRlOiEwLG9ic2VydmVyOiJfcHJlc3NlZENoYW5nZWQifSx0b2dnbGVzOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxhY3RpdmU6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxwb2ludGVyRG93bjp7dHlwZTpCb29sZWFuLHJlYWRPbmx5OiEwLHZhbHVlOiExfSxyZWNlaXZlZEZvY3VzRnJvbUtleWJvYXJkOnt0eXBlOkJvb2xlYW4scmVhZE9ubHk6ITB9LGFyaWFBY3RpdmVBdHRyaWJ1dGU6e3R5cGU6U3RyaW5nLHZhbHVlOiJhcmlhLXByZXNzZWQiLG9ic2VydmVyOiJfYXJpYUFjdGl2ZUF0dHJpYnV0ZUNoYW5nZWQifX0sbGlzdGVuZXJzOntkb3duOiJfZG93bkhhbmRsZXIiLHVwOiJfdXBIYW5kbGVyIix0YXA6Il90YXBIYW5kbGVyIn0sb2JzZXJ2ZXJzOlsiX2ZvY3VzQ2hhbmdlZChmb2N1c2VkKSIsIl9hY3RpdmVDaGFuZ2VkKGFjdGl2ZSwgYXJpYUFjdGl2ZUF0dHJpYnV0ZSkiXSxrZXlCaW5kaW5nczp7ImVudGVyOmtleWRvd24iOiJfYXN5bmNDbGljayIsInNwYWNlOmtleWRvd24iOiJfc3BhY2VLZXlEb3duSGFuZGxlciIsInNwYWNlOmtleXVwIjoiX3NwYWNlS2V5VXBIYW5kbGVyIn0sX21vdXNlRXZlbnRSZTovXm1vdXNlLyxfdGFwSGFuZGxlcjpmdW5jdGlvbigpe3RoaXMudG9nZ2xlcz90aGlzLl91c2VyQWN0aXZhdGUoIXRoaXMuYWN0aXZlKTp0aGlzLmFjdGl2ZT0hMX0sX2ZvY3VzQ2hhbmdlZDpmdW5jdGlvbihlKXt0aGlzLl9kZXRlY3RLZXlib2FyZEZvY3VzKGUpLGV8fHRoaXMuX3NldFByZXNzZWQoITEpfSxfZGV0ZWN0S2V5Ym9hcmRGb2N1czpmdW5jdGlvbihlKXt0aGlzLl9zZXRSZWNlaXZlZEZvY3VzRnJvbUtleWJvYXJkKCF0aGlzLnBvaW50ZXJEb3duJiZlKX0sX3VzZXJBY3RpdmF0ZTpmdW5jdGlvbihlKXt0aGlzLmFjdGl2ZSE9PWUmJih0aGlzLmFjdGl2ZT1lLHRoaXMuZmlyZSgiY2hhbmdlIikpfSxfZG93bkhhbmRsZXI6ZnVuY3Rpb24oZSl7dGhpcy5fc2V0UG9pbnRlckRvd24oITApLHRoaXMuX3NldFByZXNzZWQoITApLHRoaXMuX3NldFJlY2VpdmVkRm9jdXNGcm9tS2V5Ym9hcmQoITEpfSxfdXBIYW5kbGVyOmZ1bmN0aW9uKCl7dGhpcy5fc2V0UG9pbnRlckRvd24oITEpLHRoaXMuX3NldFByZXNzZWQoITEpfSxfc3BhY2VLZXlEb3duSGFuZGxlcjpmdW5jdGlvbihlKXt2YXIgdD1lLmRldGFpbC5rZXlib2FyZEV2ZW50LHI9enQodCkubG9jYWxUYXJnZXQ7dGhpcy5pc0xpZ2h0RGVzY2VuZGFudChyKXx8KHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLHRoaXMuX3NldFByZXNzZWQoITApKX0sX3NwYWNlS2V5VXBIYW5kbGVyOmZ1bmN0aW9uKGUpe3ZhciB0PWUuZGV0YWlsLmtleWJvYXJkRXZlbnQscj16dCh0KS5sb2NhbFRhcmdldDt0aGlzLmlzTGlnaHREZXNjZW5kYW50KHIpfHwodGhpcy5wcmVzc2VkJiZ0aGlzLl9hc3luY0NsaWNrKCksdGhpcy5fc2V0UHJlc3NlZCghMSkpfSxfYXN5bmNDbGljazpmdW5jdGlvbigpe3RoaXMuYXN5bmMoZnVuY3Rpb24oKXt0aGlzLmNsaWNrKCl9LDEpfSxfcHJlc3NlZENoYW5nZWQ6ZnVuY3Rpb24oZSl7dGhpcy5fY2hhbmdlZEJ1dHRvblN0YXRlKCl9LF9hcmlhQWN0aXZlQXR0cmlidXRlQ2hhbmdlZDpmdW5jdGlvbihlLHQpe3QmJnQhPWUmJnRoaXMuaGFzQXR0cmlidXRlKHQpJiZ0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX0sX2FjdGl2ZUNoYW5nZWQ6ZnVuY3Rpb24oZSx0KXt0aGlzLnRvZ2dsZXM/dGhpcy5zZXRBdHRyaWJ1dGUodGhpcy5hcmlhQWN0aXZlQXR0cmlidXRlLGU/InRydWUiOiJmYWxzZSIpOnRoaXMucmVtb3ZlQXR0cmlidXRlKHRoaXMuYXJpYUFjdGl2ZUF0dHJpYnV0ZSksdGhpcy5fY2hhbmdlZEJ1dHRvblN0YXRlKCl9LF9jb250cm9sU3RhdGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlZD90aGlzLl9zZXRQcmVzc2VkKCExKTp0aGlzLl9jaGFuZ2VkQnV0dG9uU3RhdGUoKX0sX2NoYW5nZWRCdXR0b25TdGF0ZTpmdW5jdGlvbigpe3RoaXMuX2J1dHRvblN0YXRlQ2hhbmdlZCYmdGhpcy5fYnV0dG9uU3RhdGVDaGFuZ2VkKCl9fSxNaD1bT28sWXhdO3ZhciBFaD17ZGlzdGFuY2U6ZnVuY3Rpb24oZSx0LHIsbil7dmFyIGk9ZS1yLG89dC1uO3JldHVybiBNYXRoLnNxcnQoaSppK28qbyl9LG5vdzp3aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS5ub3c/d2luZG93LnBlcmZvcm1hbmNlLm5vdy5iaW5kKHdpbmRvdy5wZXJmb3JtYW5jZSk6RGF0ZS5ub3d9O2Z1bmN0aW9uIHUwdChlKXt0aGlzLmVsZW1lbnQ9ZSx0aGlzLndpZHRoPXRoaXMuYm91bmRpbmdSZWN0LndpZHRoLHRoaXMuaGVpZ2h0PXRoaXMuYm91bmRpbmdSZWN0LmhlaWdodCx0aGlzLnNpemU9TWF0aC5tYXgodGhpcy53aWR0aCx0aGlzLmhlaWdodCl9dTB0LnByb3RvdHlwZT17Z2V0IGJvdW5kaW5nUmVjdCgpe3JldHVybiB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9LGZ1cnRoZXN0Q29ybmVyRGlzdGFuY2VGcm9tOmZ1bmN0aW9uKGUsdCl7dmFyIHI9RWguZGlzdGFuY2UoZSx0LDAsMCksbj1FaC5kaXN0YW5jZShlLHQsdGhpcy53aWR0aCwwKSxpPUVoLmRpc3RhbmNlKGUsdCwwLHRoaXMuaGVpZ2h0KSxvPUVoLmRpc3RhbmNlKGUsdCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KTtyZXR1cm4gTWF0aC5tYXgocixuLGksbyl9fTtmdW5jdGlvbiBfXyhlKXt0aGlzLmVsZW1lbnQ9ZSx0aGlzLmNvbG9yPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpLmNvbG9yLHRoaXMud2F2ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLndhdmVDb250YWluZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy53YXZlLnN0eWxlLmJhY2tncm91bmRDb2xvcj10aGlzLmNvbG9yLHRoaXMud2F2ZS5jbGFzc0xpc3QuYWRkKCJ3YXZlIiksdGhpcy53YXZlQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIndhdmUtY29udGFpbmVyIiksenQodGhpcy53YXZlQ29udGFpbmVyKS5hcHBlbmRDaGlsZCh0aGlzLndhdmUpLHRoaXMucmVzZXRJbnRlcmFjdGlvblN0YXRlKCl9X18uTUFYX1JBRElVUz0zMDA7X18ucHJvdG90eXBlPXtnZXQgcmVjZW50ZXJzKCl7cmV0dXJuIHRoaXMuZWxlbWVudC5yZWNlbnRlcnN9LGdldCBjZW50ZXIoKXtyZXR1cm4gdGhpcy5lbGVtZW50LmNlbnRlcn0sZ2V0IG1vdXNlRG93bkVsYXBzZWQoKXt2YXIgZTtyZXR1cm4gdGhpcy5tb3VzZURvd25TdGFydD8oZT1FaC5ub3coKS10aGlzLm1vdXNlRG93blN0YXJ0LHRoaXMubW91c2VVcFN0YXJ0JiYoZS09dGhpcy5tb3VzZVVwRWxhcHNlZCksZSk6MH0sZ2V0IG1vdXNlVXBFbGFwc2VkKCl7cmV0dXJuIHRoaXMubW91c2VVcFN0YXJ0P0VoLm5vdygpLXRoaXMubW91c2VVcFN0YXJ0OjB9LGdldCBtb3VzZURvd25FbGFwc2VkU2Vjb25kcygpe3JldHVybiB0aGlzLm1vdXNlRG93bkVsYXBzZWQvMWUzfSxnZXQgbW91c2VVcEVsYXBzZWRTZWNvbmRzKCl7cmV0dXJuIHRoaXMubW91c2VVcEVsYXBzZWQvMWUzfSxnZXQgbW91c2VJbnRlcmFjdGlvblNlY29uZHMoKXtyZXR1cm4gdGhpcy5tb3VzZURvd25FbGFwc2VkU2Vjb25kcyt0aGlzLm1vdXNlVXBFbGFwc2VkU2Vjb25kc30sZ2V0IGluaXRpYWxPcGFjaXR5KCl7cmV0dXJuIHRoaXMuZWxlbWVudC5pbml0aWFsT3BhY2l0eX0sZ2V0IG9wYWNpdHlEZWNheVZlbG9jaXR5KCl7cmV0dXJuIHRoaXMuZWxlbWVudC5vcGFjaXR5RGVjYXlWZWxvY2l0eX0sZ2V0IHJhZGl1cygpe3ZhciBlPXRoaXMuY29udGFpbmVyTWV0cmljcy53aWR0aCp0aGlzLmNvbnRhaW5lck1ldHJpY3Mud2lkdGgsdD10aGlzLmNvbnRhaW5lck1ldHJpY3MuaGVpZ2h0KnRoaXMuY29udGFpbmVyTWV0cmljcy5oZWlnaHQscj1NYXRoLm1pbihNYXRoLnNxcnQoZSt0KSxfXy5NQVhfUkFESVVTKSoxLjErNSxuPTEuMS0uMiooci9fXy5NQVhfUkFESVVTKSxpPXRoaXMubW91c2VJbnRlcmFjdGlvblNlY29uZHMvbixvPXIqKDEtTWF0aC5wb3coODAsLWkpKTtyZXR1cm4gTWF0aC5hYnMobyl9LGdldCBvcGFjaXR5KCl7cmV0dXJuIHRoaXMubW91c2VVcFN0YXJ0P01hdGgubWF4KDAsdGhpcy5pbml0aWFsT3BhY2l0eS10aGlzLm1vdXNlVXBFbGFwc2VkU2Vjb25kcyp0aGlzLm9wYWNpdHlEZWNheVZlbG9jaXR5KTp0aGlzLmluaXRpYWxPcGFjaXR5fSxnZXQgb3V0ZXJPcGFjaXR5KCl7dmFyIGU9dGhpcy5tb3VzZVVwRWxhcHNlZFNlY29uZHMqLjMsdD10aGlzLm9wYWNpdHk7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4oZSx0KSl9LGdldCBpc09wYWNpdHlGdWxseURlY2F5ZWQoKXtyZXR1cm4gdGhpcy5vcGFjaXR5PC4wMSYmdGhpcy5yYWRpdXM+PU1hdGgubWluKHRoaXMubWF4UmFkaXVzLF9fLk1BWF9SQURJVVMpfSxnZXQgaXNSZXN0aW5nQXRNYXhSYWRpdXMoKXtyZXR1cm4gdGhpcy5vcGFjaXR5Pj10aGlzLmluaXRpYWxPcGFjaXR5JiZ0aGlzLnJhZGl1cz49TWF0aC5taW4odGhpcy5tYXhSYWRpdXMsX18uTUFYX1JBRElVUyl9LGdldCBpc0FuaW1hdGlvbkNvbXBsZXRlKCl7cmV0dXJuIHRoaXMubW91c2VVcFN0YXJ0P3RoaXMuaXNPcGFjaXR5RnVsbHlEZWNheWVkOnRoaXMuaXNSZXN0aW5nQXRNYXhSYWRpdXN9LGdldCB0cmFuc2xhdGlvbkZyYWN0aW9uKCl7cmV0dXJuIE1hdGgubWluKDEsdGhpcy5yYWRpdXMvdGhpcy5jb250YWluZXJNZXRyaWNzLnNpemUqMi9NYXRoLnNxcnQoMikpfSxnZXQgeE5vdygpe3JldHVybiB0aGlzLnhFbmQ/dGhpcy54U3RhcnQrdGhpcy50cmFuc2xhdGlvbkZyYWN0aW9uKih0aGlzLnhFbmQtdGhpcy54U3RhcnQpOnRoaXMueFN0YXJ0fSxnZXQgeU5vdygpe3JldHVybiB0aGlzLnlFbmQ/dGhpcy55U3RhcnQrdGhpcy50cmFuc2xhdGlvbkZyYWN0aW9uKih0aGlzLnlFbmQtdGhpcy55U3RhcnQpOnRoaXMueVN0YXJ0fSxnZXQgaXNNb3VzZURvd24oKXtyZXR1cm4gdGhpcy5tb3VzZURvd25TdGFydCYmIXRoaXMubW91c2VVcFN0YXJ0fSxyZXNldEludGVyYWN0aW9uU3RhdGU6ZnVuY3Rpb24oKXt0aGlzLm1heFJhZGl1cz0wLHRoaXMubW91c2VEb3duU3RhcnQ9MCx0aGlzLm1vdXNlVXBTdGFydD0wLHRoaXMueFN0YXJ0PTAsdGhpcy55U3RhcnQ9MCx0aGlzLnhFbmQ9MCx0aGlzLnlFbmQ9MCx0aGlzLnNsaWRlRGlzdGFuY2U9MCx0aGlzLmNvbnRhaW5lck1ldHJpY3M9bmV3IHUwdCh0aGlzLmVsZW1lbnQpfSxkcmF3OmZ1bmN0aW9uKCl7dmFyIGUsdCxyO3RoaXMud2F2ZS5zdHlsZS5vcGFjaXR5PXRoaXMub3BhY2l0eSxlPXRoaXMucmFkaXVzLyh0aGlzLmNvbnRhaW5lck1ldHJpY3Muc2l6ZS8yKSx0PXRoaXMueE5vdy10aGlzLmNvbnRhaW5lck1ldHJpY3Mud2lkdGgvMixyPXRoaXMueU5vdy10aGlzLmNvbnRhaW5lck1ldHJpY3MuaGVpZ2h0LzIsdGhpcy53YXZlQ29udGFpbmVyLnN0eWxlLndlYmtpdFRyYW5zZm9ybT0idHJhbnNsYXRlKCIrdCsicHgsICIrcisicHgpIix0aGlzLndhdmVDb250YWluZXIuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGUzZCgiK3QrInB4LCAiK3IrInB4LCAwKSIsdGhpcy53YXZlLnN0eWxlLndlYmtpdFRyYW5zZm9ybT0ic2NhbGUoIitlKyIsIitlKyIpIix0aGlzLndhdmUuc3R5bGUudHJhbnNmb3JtPSJzY2FsZTNkKCIrZSsiLCIrZSsiLDEpIn0sZG93bkFjdGlvbjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmNvbnRhaW5lck1ldHJpY3Mud2lkdGgvMixyPXRoaXMuY29udGFpbmVyTWV0cmljcy5oZWlnaHQvMjt0aGlzLnJlc2V0SW50ZXJhY3Rpb25TdGF0ZSgpLHRoaXMubW91c2VEb3duU3RhcnQ9RWgubm93KCksdGhpcy5jZW50ZXI/KHRoaXMueFN0YXJ0PXQsdGhpcy55U3RhcnQ9cix0aGlzLnNsaWRlRGlzdGFuY2U9RWguZGlzdGFuY2UodGhpcy54U3RhcnQsdGhpcy55U3RhcnQsdGhpcy54RW5kLHRoaXMueUVuZCkpOih0aGlzLnhTdGFydD1lP2UuZGV0YWlsLngtdGhpcy5jb250YWluZXJNZXRyaWNzLmJvdW5kaW5nUmVjdC5sZWZ0OnRoaXMuY29udGFpbmVyTWV0cmljcy53aWR0aC8yLHRoaXMueVN0YXJ0PWU/ZS5kZXRhaWwueS10aGlzLmNvbnRhaW5lck1ldHJpY3MuYm91bmRpbmdSZWN0LnRvcDp0aGlzLmNvbnRhaW5lck1ldHJpY3MuaGVpZ2h0LzIpLHRoaXMucmVjZW50ZXJzJiYodGhpcy54RW5kPXQsdGhpcy55RW5kPXIsdGhpcy5zbGlkZURpc3RhbmNlPUVoLmRpc3RhbmNlKHRoaXMueFN0YXJ0LHRoaXMueVN0YXJ0LHRoaXMueEVuZCx0aGlzLnlFbmQpKSx0aGlzLm1heFJhZGl1cz10aGlzLmNvbnRhaW5lck1ldHJpY3MuZnVydGhlc3RDb3JuZXJEaXN0YW5jZUZyb20odGhpcy54U3RhcnQsdGhpcy55U3RhcnQpLHRoaXMud2F2ZUNvbnRhaW5lci5zdHlsZS50b3A9KHRoaXMuY29udGFpbmVyTWV0cmljcy5oZWlnaHQtdGhpcy5jb250YWluZXJNZXRyaWNzLnNpemUpLzIrInB4Iix0aGlzLndhdmVDb250YWluZXIuc3R5bGUubGVmdD0odGhpcy5jb250YWluZXJNZXRyaWNzLndpZHRoLXRoaXMuY29udGFpbmVyTWV0cmljcy5zaXplKS8yKyJweCIsdGhpcy53YXZlQ29udGFpbmVyLnN0eWxlLndpZHRoPXRoaXMuY29udGFpbmVyTWV0cmljcy5zaXplKyJweCIsdGhpcy53YXZlQ29udGFpbmVyLnN0eWxlLmhlaWdodD10aGlzLmNvbnRhaW5lck1ldHJpY3Muc2l6ZSsicHgifSx1cEFjdGlvbjpmdW5jdGlvbihlKXshdGhpcy5pc01vdXNlRG93bnx8KHRoaXMubW91c2VVcFN0YXJ0PUVoLm5vdygpKX0scmVtb3ZlOmZ1bmN0aW9uKCl7enQoenQodGhpcy53YXZlQ29udGFpbmVyKS5wYXJlbnROb2RlKS5yZW1vdmVDaGlsZCh0aGlzLndhdmVDb250YWluZXIpfX07WXQoe190ZW1wbGF0ZTpRYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CgogICAgICAgIC8qIFNlZSBQb2x5bWVyRWxlbWVudHMvcGFwZXItYmVoYXZpb3JzL2lzc3Vlcy8zNC4gT24gbm9uLUNocm9tZSBicm93c2VycywKICAgICAgICAgKiBjcmVhdGluZyBhIG5vZGUgKHdpdGggYSBwb3NpdGlvbjphYnNvbHV0ZSkgaW4gdGhlIG1pZGRsZSBvZiBhbiBldmVudAogICAgICAgICAqIGhhbmRsZXIgImludGVycnVwdHMiIHRoYXQgZXZlbnQgaGFuZGxlciAod2hpY2ggaGFwcGVucyB3aGVuIHRoZQogICAgICAgICAqIHJpcHBsZSBpcyBjcmVhdGVkIG9uIGRlbWFuZCkgKi8KICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2FuaW1hdGluZ10pIHsKICAgICAgICAvKiBUaGlzIHJlc29sdmVzIGEgcmVuZGVyaW5nIGlzc3VlIGluIENocm9tZSAoYXMgb2YgNDApIHdoZXJlIHRoZQogICAgICAgICAgIHJpcHBsZSBpcyBub3QgcHJvcGVybHkgY2xpcHBlZCBieSBpdHMgcGFyZW50ICh3aGljaCBtYXkgaGF2ZQogICAgICAgICAgIHJvdW5kZWQgY29ybmVycykuIFNlZTogaHR0cDovL2pzYmluLmNvbS90ZW1leGEvNAoKICAgICAgICAgICBOb3RlOiBXZSBvbmx5IGFwcGx5IHRoaXMgc3R5bGUgY29uZGl0aW9uYWxseS4gT3RoZXJ3aXNlLCB0aGUgYnJvd3NlcgogICAgICAgICAgIHdpbGwgY3JlYXRlIGEgbmV3IGNvbXBvc2l0aW5nIGxheWVyIGZvciBldmVyeSByaXBwbGUgZWxlbWVudCBvbiB0aGUKICAgICAgICAgICBwYWdlLCBhbmQgdGhhdCB3b3VsZCBiZSBiYWQuICovCiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwogICAgICB9CgogICAgICAjYmFja2dyb3VuZCwKICAgICAgI3dhdmVzLAogICAgICAud2F2ZS1jb250YWluZXIsCiAgICAgIC53YXZlIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAjYmFja2dyb3VuZCwKICAgICAgLndhdmUgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgICN3YXZlcywKICAgICAgLndhdmUgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC53YXZlLWNvbnRhaW5lciwKICAgICAgLndhdmUgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgOmhvc3QoLmNpcmNsZSkgI2JhY2tncm91bmQsCiAgICAgIDpob3N0KC5jaXJjbGUpICN3YXZlcyB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICA6aG9zdCguY2lyY2xlKSAud2F2ZS1jb250YWluZXIgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBpZD0iYmFja2dyb3VuZCI+PC9kaXY+CiAgICA8ZGl2IGlkPSJ3YXZlcyI+PC9kaXY+CmAsaXM6InBhcGVyLXJpcHBsZSIsYmVoYXZpb3JzOltPb10scHJvcGVydGllczp7aW5pdGlhbE9wYWNpdHk6e3R5cGU6TnVtYmVyLHZhbHVlOi4yNX0sb3BhY2l0eURlY2F5VmVsb2NpdHk6e3R5cGU6TnVtYmVyLHZhbHVlOi44fSxyZWNlbnRlcnM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sY2VudGVyOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LHJpcHBsZXM6e3R5cGU6QXJyYXksdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bXX19LGFuaW1hdGluZzp7dHlwZTpCb29sZWFuLHJlYWRPbmx5OiEwLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCx2YWx1ZTohMX0saG9sZERvd246e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoiX2hvbGREb3duQ2hhbmdlZCJ9LG5vaW5rOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9hbmltYXRpbmc6e3R5cGU6Qm9vbGVhbn0sX2JvdW5kQW5pbWF0ZTp7dHlwZTpGdW5jdGlvbix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFuaW1hdGUuYmluZCh0aGlzKX19fSxnZXQgdGFyZ2V0KCl7cmV0dXJuIHRoaXMua2V5RXZlbnRUYXJnZXR9LGtleUJpbmRpbmdzOnsiZW50ZXI6a2V5ZG93biI6Il9vbkVudGVyS2V5ZG93biIsInNwYWNlOmtleWRvd24iOiJfb25TcGFjZUtleWRvd24iLCJzcGFjZTprZXl1cCI6Il9vblNwYWNlS2V5dXAifSxhdHRhY2hlZDpmdW5jdGlvbigpe3p0KHRoaXMpLnBhcmVudE5vZGUubm9kZVR5cGU9PTExP3RoaXMua2V5RXZlbnRUYXJnZXQ9enQodGhpcykuZ2V0T3duZXJSb290KCkuaG9zdDp0aGlzLmtleUV2ZW50VGFyZ2V0PXp0KHRoaXMpLnBhcmVudE5vZGU7dmFyIGU9dGhpcy5rZXlFdmVudFRhcmdldDt0aGlzLmxpc3RlbihlLCJ1cCIsInVpVXBBY3Rpb24iKSx0aGlzLmxpc3RlbihlLCJkb3duIiwidWlEb3duQWN0aW9uIil9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy51bmxpc3Rlbih0aGlzLmtleUV2ZW50VGFyZ2V0LCJ1cCIsInVpVXBBY3Rpb24iKSx0aGlzLnVubGlzdGVuKHRoaXMua2V5RXZlbnRUYXJnZXQsImRvd24iLCJ1aURvd25BY3Rpb24iKSx0aGlzLmtleUV2ZW50VGFyZ2V0PW51bGx9LGdldCBzaG91bGRLZWVwQW5pbWF0aW5nKCl7Zm9yKHZhciBlPTA7ZTx0aGlzLnJpcHBsZXMubGVuZ3RoOysrZSlpZighdGhpcy5yaXBwbGVzW2VdLmlzQW5pbWF0aW9uQ29tcGxldGUpcmV0dXJuITA7cmV0dXJuITF9LHNpbXVsYXRlZFJpcHBsZTpmdW5jdGlvbigpe3RoaXMuZG93bkFjdGlvbihudWxsKSx0aGlzLmFzeW5jKGZ1bmN0aW9uKCl7dGhpcy51cEFjdGlvbigpfSwxKX0sdWlEb3duQWN0aW9uOmZ1bmN0aW9uKGUpe3RoaXMubm9pbmt8fHRoaXMuZG93bkFjdGlvbihlKX0sZG93bkFjdGlvbjpmdW5jdGlvbihlKXtpZighKHRoaXMuaG9sZERvd24mJnRoaXMucmlwcGxlcy5sZW5ndGg+MCkpe3ZhciB0PXRoaXMuYWRkUmlwcGxlKCk7dC5kb3duQWN0aW9uKGUpLHRoaXMuX2FuaW1hdGluZ3x8KHRoaXMuX2FuaW1hdGluZz0hMCx0aGlzLmFuaW1hdGUoKSl9fSx1aVVwQWN0aW9uOmZ1bmN0aW9uKGUpe3RoaXMubm9pbmt8fHRoaXMudXBBY3Rpb24oZSl9LHVwQWN0aW9uOmZ1bmN0aW9uKGUpe3RoaXMuaG9sZERvd258fCh0aGlzLnJpcHBsZXMuZm9yRWFjaChmdW5jdGlvbih0KXt0LnVwQWN0aW9uKGUpfSksdGhpcy5fYW5pbWF0aW5nPSEwLHRoaXMuYW5pbWF0ZSgpKX0sb25BbmltYXRpb25Db21wbGV0ZTpmdW5jdGlvbigpe3RoaXMuX2FuaW1hdGluZz0hMSx0aGlzLiQuYmFja2dyb3VuZC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9IiIsdGhpcy5maXJlKCJ0cmFuc2l0aW9uZW5kIil9LGFkZFJpcHBsZTpmdW5jdGlvbigpe3ZhciBlPW5ldyBfXyh0aGlzKTtyZXR1cm4genQodGhpcy4kLndhdmVzKS5hcHBlbmRDaGlsZChlLndhdmVDb250YWluZXIpLHRoaXMuJC5iYWNrZ3JvdW5kLnN0eWxlLmJhY2tncm91bmRDb2xvcj1lLmNvbG9yLHRoaXMucmlwcGxlcy5wdXNoKGUpLHRoaXMuX3NldEFuaW1hdGluZyghMCksZX0scmVtb3ZlUmlwcGxlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucmlwcGxlcy5pbmRleE9mKGUpO3Q8MHx8KHRoaXMucmlwcGxlcy5zcGxpY2UodCwxKSxlLnJlbW92ZSgpLHRoaXMucmlwcGxlcy5sZW5ndGh8fHRoaXMuX3NldEFuaW1hdGluZyghMSkpfSxhbmltYXRlOmZ1bmN0aW9uKCl7aWYoISF0aGlzLl9hbmltYXRpbmcpe3ZhciBlLHQ7Zm9yKGU9MDtlPHRoaXMucmlwcGxlcy5sZW5ndGg7KytlKXQ9dGhpcy5yaXBwbGVzW2VdLHQuZHJhdygpLHRoaXMuJC5iYWNrZ3JvdW5kLnN0eWxlLm9wYWNpdHk9dC5vdXRlck9wYWNpdHksdC5pc09wYWNpdHlGdWxseURlY2F5ZWQmJiF0LmlzUmVzdGluZ0F0TWF4UmFkaXVzJiZ0aGlzLnJlbW92ZVJpcHBsZSh0KTshdGhpcy5zaG91bGRLZWVwQW5pbWF0aW5nJiZ0aGlzLnJpcHBsZXMubGVuZ3RoPT09MD90aGlzLm9uQW5pbWF0aW9uQ29tcGxldGUoKTp3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuX2JvdW5kQW5pbWF0ZSl9fSxhbmltYXRlUmlwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYW5pbWF0ZSgpfSxfb25FbnRlcktleWRvd246ZnVuY3Rpb24oKXt0aGlzLnVpRG93bkFjdGlvbigpLHRoaXMuYXN5bmModGhpcy51aVVwQWN0aW9uLDEpfSxfb25TcGFjZUtleWRvd246ZnVuY3Rpb24oKXt0aGlzLnVpRG93bkFjdGlvbigpfSxfb25TcGFjZUtleXVwOmZ1bmN0aW9uKCl7dGhpcy51aVVwQWN0aW9uKCl9LF9ob2xkRG93bkNoYW5nZWQ6ZnVuY3Rpb24oZSx0KXt0IT09dm9pZCAwJiYoZT90aGlzLmRvd25BY3Rpb24oKTp0aGlzLnVwQWN0aW9uKCkpfX0pO3ZhciBzdT17cHJvcGVydGllczp7bm9pbms6e3R5cGU6Qm9vbGVhbixvYnNlcnZlcjoiX25vaW5rQ2hhbmdlZCJ9LF9yaXBwbGVDb250YWluZXI6e3R5cGU6T2JqZWN0fX0sX2J1dHRvblN0YXRlQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuZm9jdXNlZCYmdGhpcy5lbnN1cmVSaXBwbGUoKX0sX2Rvd25IYW5kbGVyOmZ1bmN0aW9uKGUpe1l4Ll9kb3duSGFuZGxlci5jYWxsKHRoaXMsZSksdGhpcy5wcmVzc2VkJiZ0aGlzLmVuc3VyZVJpcHBsZShlKX0sZW5zdXJlUmlwcGxlOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmhhc1JpcHBsZSgpKXt0aGlzLl9yaXBwbGU9dGhpcy5fY3JlYXRlUmlwcGxlKCksdGhpcy5fcmlwcGxlLm5vaW5rPXRoaXMubm9pbms7dmFyIHQ9dGhpcy5fcmlwcGxlQ29udGFpbmVyfHx0aGlzLnJvb3Q7aWYodCYmenQodCkuYXBwZW5kQ2hpbGQodGhpcy5fcmlwcGxlKSxlKXt2YXIgcj16dCh0aGlzLl9yaXBwbGVDb250YWluZXJ8fHRoaXMpLG49enQoZSkucm9vdFRhcmdldDtyLmRlZXBDb250YWlucyhuKSYmdGhpcy5fcmlwcGxlLnVpRG93bkFjdGlvbihlKX19fSxnZXRSaXBwbGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbnN1cmVSaXBwbGUoKSx0aGlzLl9yaXBwbGV9LGhhc1JpcHBsZTpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKHRoaXMuX3JpcHBsZSl9LF9jcmVhdGVSaXBwbGU6ZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwYXBlci1yaXBwbGUiKTtyZXR1cm4gZX0sX25vaW5rQ2hhbmdlZDpmdW5jdGlvbihlKXt0aGlzLmhhc1JpcHBsZSgpJiYodGhpcy5fcmlwcGxlLm5vaW5rPWUpfX07dmFyIHVXPXtwcm9wZXJ0aWVzOntlbGV2YXRpb246e3R5cGU6TnVtYmVyLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCxyZWFkT25seTohMH19LG9ic2VydmVyczpbIl9jYWxjdWxhdGVFbGV2YXRpb24oZm9jdXNlZCwgZGlzYWJsZWQsIGFjdGl2ZSwgcHJlc3NlZCwgcmVjZWl2ZWRGb2N1c0Zyb21LZXlib2FyZCkiLCJfY29tcHV0ZUtleWJvYXJkQ2xhc3MocmVjZWl2ZWRGb2N1c0Zyb21LZXlib2FyZCkiXSxob3N0QXR0cmlidXRlczp7cm9sZToiYnV0dG9uIix0YWJpbmRleDoiMCIsYW5pbWF0ZWQ6ITB9LF9jYWxjdWxhdGVFbGV2YXRpb246ZnVuY3Rpb24oKXt2YXIgZT0xO3RoaXMuZGlzYWJsZWQ/ZT0wOnRoaXMuYWN0aXZlfHx0aGlzLnByZXNzZWQ/ZT00OnRoaXMucmVjZWl2ZWRGb2N1c0Zyb21LZXlib2FyZCYmKGU9MyksdGhpcy5fc2V0RWxldmF0aW9uKGUpfSxfY29tcHV0ZUtleWJvYXJkQ2xhc3M6ZnVuY3Rpb24oZSl7dGhpcy50b2dnbGVDbGFzcygia2V5Ym9hcmQtZm9jdXMiLGUpfSxfc3BhY2VLZXlEb3duSGFuZGxlcjpmdW5jdGlvbihlKXtZeC5fc3BhY2VLZXlEb3duSGFuZGxlci5jYWxsKHRoaXMsZSksdGhpcy5oYXNSaXBwbGUoKSYmdGhpcy5nZXRSaXBwbGUoKS5yaXBwbGVzLmxlbmd0aDwxJiZ0aGlzLl9yaXBwbGUudWlEb3duQWN0aW9uKCl9LF9zcGFjZUtleVVwSGFuZGxlcjpmdW5jdGlvbihlKXtZeC5fc3BhY2VLZXlVcEhhbmRsZXIuY2FsbCh0aGlzLGUpLHRoaXMuaGFzUmlwcGxlKCkmJnRoaXMuX3JpcHBsZS51aVVwQWN0aW9uKCl9fSxoMHQ9W01oLERpLHN1LHVXXTt2YXIgZjB0PVFgCiAgPHN0eWxlIGluY2x1ZGU9InBhcGVyLW1hdGVyaWFsLXN0eWxlcyI+CiAgICAvKiBOZWVkIHRvIHNwZWNpZnkgdGhlIHNhbWUgc3BlY2lmaWNpdHkgYXMgdGhlIHN0eWxlcyBpbXBvcnRlZCBmcm9tIHBhcGVyLW1hdGVyaWFsLiAqLwogICAgOmhvc3QgewogICAgICBAYXBwbHkgLS1sYXlvdXQtaW5saW5lOwogICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyLWNlbnRlcjsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBtaW4td2lkdGg6IDUuMTRlbTsKICAgICAgbWFyZ2luOiAwIDAuMjllbTsKICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTsKICAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgZm9udDogaW5oZXJpdDsKICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgb3V0bGluZS13aWR0aDogMDsKICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHotaW5kZXg6IDA7CiAgICAgIHBhZGRpbmc6IDAuN2VtIDAuNTdlbTsKCiAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CiAgICAgIEBhcHBseSAtLXBhcGVyLWJ1dHRvbjsKICAgIH0KCiAgICA6aG9zdChbZWxldmF0aW9uPSIxIl0pIHsKICAgICAgQGFwcGx5IC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTE7CiAgICB9CgogICAgOmhvc3QoW2VsZXZhdGlvbj0iMiJdKSB7CiAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0yOwogICAgfQoKICAgIDpob3N0KFtlbGV2YXRpb249IjMiXSkgewogICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMzsKICAgIH0KCiAgICA6aG9zdChbZWxldmF0aW9uPSI0Il0pIHsKICAgICAgQGFwcGx5IC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTQ7CiAgICB9CgogICAgOmhvc3QoW2VsZXZhdGlvbj0iNSJdKSB7CiAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi01OwogICAgfQoKICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICA6aG9zdChbcmFpc2VkXS5rZXlib2FyZC1mb2N1cykgewogICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgQGFwcGx5IC0tcGFwZXItYnV0dG9uLXJhaXNlZC1rZXlib2FyZC1mb2N1czsKICAgIH0KCiAgICA6aG9zdCg6bm90KFtyYWlzZWRdKS5rZXlib2FyZC1mb2N1cykgewogICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgQGFwcGx5IC0tcGFwZXItYnV0dG9uLWZsYXQta2V5Ym9hcmQtZm9jdXM7CiAgICB9CgogICAgOmhvc3QoW2Rpc2FibGVkXSkgewogICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICBjb2xvcjogI2E4YThhODsKICAgICAgY3Vyc29yOiBhdXRvOwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKCiAgICAgIEBhcHBseSAtLXBhcGVyLWJ1dHRvbi1kaXNhYmxlZDsKICAgIH0KCiAgICA6aG9zdChbZGlzYWJsZWRdW3JhaXNlZF0pIHsKICAgICAgYmFja2dyb3VuZDogI2VhZWFlYTsKICAgIH0KCgogICAgOmhvc3QoW2FuaW1hdGVkXSkgewogICAgICBAYXBwbHkgLS1zaGFkb3ctdHJhbnNpdGlvbjsKICAgIH0KCiAgICBwYXBlci1yaXBwbGUgewogICAgICBjb2xvcjogdmFyKC0tcGFwZXItYnV0dG9uLWluay1jb2xvcik7CiAgICB9CiAgPC9zdHlsZT4KCiAgPHNsb3Q+PC9zbG90PmA7ZjB0LnNldEF0dHJpYnV0ZSgic3RyaXAtd2hpdGVzcGFjZSIsIiIpO1l0KHtfdGVtcGxhdGU6ZjB0LGlzOiJwYXBlci1idXR0b24iLGJlaGF2aW9yczpbaDB0XSxwcm9wZXJ0aWVzOntyYWlzZWQ6e3R5cGU6Qm9vbGVhbixyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsdmFsdWU6ITEsb2JzZXJ2ZXI6Il9jYWxjdWxhdGVFbGV2YXRpb24ifX0sX2NhbGN1bGF0ZUVsZXZhdGlvbjpmdW5jdGlvbigpe3RoaXMucmFpc2VkP3VXLl9jYWxjdWxhdGVFbGV2YXRpb24uYXBwbHkodGhpcyk6dGhpcy5fc2V0RWxldmF0aW9uKDApfX0pO3ZhciBwMHQ9UWAKPGN1c3RvbS1zdHlsZT4KICA8c3R5bGUgaXM9ImN1c3RvbS1zdHlsZSI+CiAgICBodG1sIHsKCiAgICAgIC8qIE1hdGVyaWFsIERlc2lnbiBjb2xvciBwYWxldHRlIGZvciBHb29nbGUgcHJvZHVjdHMgKi8KCiAgICAgIC0tZ29vZ2xlLXJlZC0xMDA6ICNmNGM3YzM7CiAgICAgIC0tZ29vZ2xlLXJlZC0zMDA6ICNlNjdjNzM7CiAgICAgIC0tZ29vZ2xlLXJlZC01MDA6ICNkYjQ0Mzc7CiAgICAgIC0tZ29vZ2xlLXJlZC03MDA6ICNjNTM5Mjk7CgogICAgICAtLWdvb2dsZS1ibHVlLTEwMDogI2M2ZGFmYzsKICAgICAgLS1nb29nbGUtYmx1ZS0zMDA6ICM3YmFhZjc7CiAgICAgIC0tZ29vZ2xlLWJsdWUtNTAwOiAjNDI4NWY0OwogICAgICAtLWdvb2dsZS1ibHVlLTcwMDogIzMzNjdkNjsKCiAgICAgIC0tZ29vZ2xlLWdyZWVuLTEwMDogI2I3ZTFjZDsKICAgICAgLS1nb29nbGUtZ3JlZW4tMzAwOiAjNTdiYjhhOwogICAgICAtLWdvb2dsZS1ncmVlbi01MDA6ICMwZjlkNTg7CiAgICAgIC0tZ29vZ2xlLWdyZWVuLTcwMDogIzBiODA0MzsKCiAgICAgIC0tZ29vZ2xlLXllbGxvdy0xMDA6ICNmY2U4YjI7CiAgICAgIC0tZ29vZ2xlLXllbGxvdy0zMDA6ICNmN2NiNGQ7CiAgICAgIC0tZ29vZ2xlLXllbGxvdy01MDA6ICNmNGI0MDA7CiAgICAgIC0tZ29vZ2xlLXllbGxvdy03MDA6ICNmMDkzMDA7CgogICAgICAtLWdvb2dsZS1ncmV5LTEwMDogI2Y1ZjVmNTsKICAgICAgLS1nb29nbGUtZ3JleS0zMDA6ICNlMGUwZTA7CiAgICAgIC0tZ29vZ2xlLWdyZXktNTAwOiAjOWU5ZTllOwogICAgICAtLWdvb2dsZS1ncmV5LTcwMDogIzYxNjE2MTsKCiAgICAgIC8qIE1hdGVyaWFsIERlc2lnbiBjb2xvciBwYWxldHRlIGZyb20gb25saW5lIHNwZWMgZG9jdW1lbnQgKi8KCiAgICAgIC0tcGFwZXItcmVkLTUwOiAjZmZlYmVlOwogICAgICAtLXBhcGVyLXJlZC0xMDA6ICNmZmNkZDI7CiAgICAgIC0tcGFwZXItcmVkLTIwMDogI2VmOWE5YTsKICAgICAgLS1wYXBlci1yZWQtMzAwOiAjZTU3MzczOwogICAgICAtLXBhcGVyLXJlZC00MDA6ICNlZjUzNTA7CiAgICAgIC0tcGFwZXItcmVkLTUwMDogI2Y0NDMzNjsKICAgICAgLS1wYXBlci1yZWQtNjAwOiAjZTUzOTM1OwogICAgICAtLXBhcGVyLXJlZC03MDA6ICNkMzJmMmY7CiAgICAgIC0tcGFwZXItcmVkLTgwMDogI2M2MjgyODsKICAgICAgLS1wYXBlci1yZWQtOTAwOiAjYjcxYzFjOwogICAgICAtLXBhcGVyLXJlZC1hMTAwOiAjZmY4YTgwOwogICAgICAtLXBhcGVyLXJlZC1hMjAwOiAjZmY1MjUyOwogICAgICAtLXBhcGVyLXJlZC1hNDAwOiAjZmYxNzQ0OwogICAgICAtLXBhcGVyLXJlZC1hNzAwOiAjZDUwMDAwOwoKICAgICAgLS1wYXBlci1waW5rLTUwOiAjZmNlNGVjOwogICAgICAtLXBhcGVyLXBpbmstMTAwOiAjZjhiYmQwOwogICAgICAtLXBhcGVyLXBpbmstMjAwOiAjZjQ4ZmIxOwogICAgICAtLXBhcGVyLXBpbmstMzAwOiAjZjA2MjkyOwogICAgICAtLXBhcGVyLXBpbmstNDAwOiAjZWM0MDdhOwogICAgICAtLXBhcGVyLXBpbmstNTAwOiAjZTkxZTYzOwogICAgICAtLXBhcGVyLXBpbmstNjAwOiAjZDgxYjYwOwogICAgICAtLXBhcGVyLXBpbmstNzAwOiAjYzIxODViOwogICAgICAtLXBhcGVyLXBpbmstODAwOiAjYWQxNDU3OwogICAgICAtLXBhcGVyLXBpbmstOTAwOiAjODgwZTRmOwogICAgICAtLXBhcGVyLXBpbmstYTEwMDogI2ZmODBhYjsKICAgICAgLS1wYXBlci1waW5rLWEyMDA6ICNmZjQwODE7CiAgICAgIC0tcGFwZXItcGluay1hNDAwOiAjZjUwMDU3OwogICAgICAtLXBhcGVyLXBpbmstYTcwMDogI2M1MTE2MjsKCiAgICAgIC0tcGFwZXItcHVycGxlLTUwOiAjZjNlNWY1OwogICAgICAtLXBhcGVyLXB1cnBsZS0xMDA6ICNlMWJlZTc7CiAgICAgIC0tcGFwZXItcHVycGxlLTIwMDogI2NlOTNkODsKICAgICAgLS1wYXBlci1wdXJwbGUtMzAwOiAjYmE2OGM4OwogICAgICAtLXBhcGVyLXB1cnBsZS00MDA6ICNhYjQ3YmM7CiAgICAgIC0tcGFwZXItcHVycGxlLTUwMDogIzljMjdiMDsKICAgICAgLS1wYXBlci1wdXJwbGUtNjAwOiAjOGUyNGFhOwogICAgICAtLXBhcGVyLXB1cnBsZS03MDA6ICM3YjFmYTI7CiAgICAgIC0tcGFwZXItcHVycGxlLTgwMDogIzZhMWI5YTsKICAgICAgLS1wYXBlci1wdXJwbGUtOTAwOiAjNGExNDhjOwogICAgICAtLXBhcGVyLXB1cnBsZS1hMTAwOiAjZWE4MGZjOwogICAgICAtLXBhcGVyLXB1cnBsZS1hMjAwOiAjZTA0MGZiOwogICAgICAtLXBhcGVyLXB1cnBsZS1hNDAwOiAjZDUwMGY5OwogICAgICAtLXBhcGVyLXB1cnBsZS1hNzAwOiAjYWEwMGZmOwoKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS01MDogI2VkZTdmNjsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS0xMDA6ICNkMWM0ZTk7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtMjAwOiAjYjM5ZGRiOwogICAgICAtLXBhcGVyLWRlZXAtcHVycGxlLTMwMDogIzk1NzVjZDsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS00MDA6ICM3ZTU3YzI7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtNTAwOiAjNjczYWI3OwogICAgICAtLXBhcGVyLWRlZXAtcHVycGxlLTYwMDogIzVlMzViMTsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS03MDA6ICM1MTJkYTg7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtODAwOiAjNDUyN2EwOwogICAgICAtLXBhcGVyLWRlZXAtcHVycGxlLTkwMDogIzMxMWI5MjsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS1hMTAwOiAjYjM4OGZmOwogICAgICAtLXBhcGVyLWRlZXAtcHVycGxlLWEyMDA6ICM3YzRkZmY7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtYTQwMDogIzY1MWZmZjsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS1hNzAwOiAjNjIwMGVhOwoKICAgICAgLS1wYXBlci1pbmRpZ28tNTA6ICNlOGVhZjY7CiAgICAgIC0tcGFwZXItaW5kaWdvLTEwMDogI2M1Y2FlOTsKICAgICAgLS1wYXBlci1pbmRpZ28tMjAwOiAjOWZhOGRhOwogICAgICAtLXBhcGVyLWluZGlnby0zMDA6ICM3OTg2Y2I7CiAgICAgIC0tcGFwZXItaW5kaWdvLTQwMDogIzVjNmJjMDsKICAgICAgLS1wYXBlci1pbmRpZ28tNTAwOiAjM2Y1MWI1OwogICAgICAtLXBhcGVyLWluZGlnby02MDA6ICMzOTQ5YWI7CiAgICAgIC0tcGFwZXItaW5kaWdvLTcwMDogIzMwM2Y5ZjsKICAgICAgLS1wYXBlci1pbmRpZ28tODAwOiAjMjgzNTkzOwogICAgICAtLXBhcGVyLWluZGlnby05MDA6ICMxYTIzN2U7CiAgICAgIC0tcGFwZXItaW5kaWdvLWExMDA6ICM4YzllZmY7CiAgICAgIC0tcGFwZXItaW5kaWdvLWEyMDA6ICM1MzZkZmU7CiAgICAgIC0tcGFwZXItaW5kaWdvLWE0MDA6ICMzZDVhZmU7CiAgICAgIC0tcGFwZXItaW5kaWdvLWE3MDA6ICMzMDRmZmU7CgogICAgICAtLXBhcGVyLWJsdWUtNTA6ICNlM2YyZmQ7CiAgICAgIC0tcGFwZXItYmx1ZS0xMDA6ICNiYmRlZmI7CiAgICAgIC0tcGFwZXItYmx1ZS0yMDA6ICM5MGNhZjk7CiAgICAgIC0tcGFwZXItYmx1ZS0zMDA6ICM2NGI1ZjY7CiAgICAgIC0tcGFwZXItYmx1ZS00MDA6ICM0MmE1ZjU7CiAgICAgIC0tcGFwZXItYmx1ZS01MDA6ICMyMTk2ZjM7CiAgICAgIC0tcGFwZXItYmx1ZS02MDA6ICMxZTg4ZTU7CiAgICAgIC0tcGFwZXItYmx1ZS03MDA6ICMxOTc2ZDI7CiAgICAgIC0tcGFwZXItYmx1ZS04MDA6ICMxNTY1YzA7CiAgICAgIC0tcGFwZXItYmx1ZS05MDA6ICMwZDQ3YTE7CiAgICAgIC0tcGFwZXItYmx1ZS1hMTAwOiAjODJiMWZmOwogICAgICAtLXBhcGVyLWJsdWUtYTIwMDogIzQ0OGFmZjsKICAgICAgLS1wYXBlci1ibHVlLWE0MDA6ICMyOTc5ZmY7CiAgICAgIC0tcGFwZXItYmx1ZS1hNzAwOiAjMjk2MmZmOwoKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTUwOiAjZTFmNWZlOwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtMTAwOiAjYjNlNWZjOwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtMjAwOiAjODFkNGZhOwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtMzAwOiAjNGZjM2Y3OwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtNDAwOiAjMjliNmY2OwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtNTAwOiAjMDNhOWY0OwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtNjAwOiAjMDM5YmU1OwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtNzAwOiAjMDI4OGQxOwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtODAwOiAjMDI3N2JkOwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtOTAwOiAjMDE1NzliOwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtYTEwMDogIzgwZDhmZjsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLWEyMDA6ICM0MGM0ZmY7CiAgICAgIC0tcGFwZXItbGlnaHQtYmx1ZS1hNDAwOiAjMDBiMGZmOwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtYTcwMDogIzAwOTFlYTsKCiAgICAgIC0tcGFwZXItY3lhbi01MDogI2UwZjdmYTsKICAgICAgLS1wYXBlci1jeWFuLTEwMDogI2IyZWJmMjsKICAgICAgLS1wYXBlci1jeWFuLTIwMDogIzgwZGVlYTsKICAgICAgLS1wYXBlci1jeWFuLTMwMDogIzRkZDBlMTsKICAgICAgLS1wYXBlci1jeWFuLTQwMDogIzI2YzZkYTsKICAgICAgLS1wYXBlci1jeWFuLTUwMDogIzAwYmNkNDsKICAgICAgLS1wYXBlci1jeWFuLTYwMDogIzAwYWNjMTsKICAgICAgLS1wYXBlci1jeWFuLTcwMDogIzAwOTdhNzsKICAgICAgLS1wYXBlci1jeWFuLTgwMDogIzAwODM4ZjsKICAgICAgLS1wYXBlci1jeWFuLTkwMDogIzAwNjA2NDsKICAgICAgLS1wYXBlci1jeWFuLWExMDA6ICM4NGZmZmY7CiAgICAgIC0tcGFwZXItY3lhbi1hMjAwOiAjMThmZmZmOwogICAgICAtLXBhcGVyLWN5YW4tYTQwMDogIzAwZTVmZjsKICAgICAgLS1wYXBlci1jeWFuLWE3MDA6ICMwMGI4ZDQ7CgogICAgICAtLXBhcGVyLXRlYWwtNTA6ICNlMGYyZjE7CiAgICAgIC0tcGFwZXItdGVhbC0xMDA6ICNiMmRmZGI7CiAgICAgIC0tcGFwZXItdGVhbC0yMDA6ICM4MGNiYzQ7CiAgICAgIC0tcGFwZXItdGVhbC0zMDA6ICM0ZGI2YWM7CiAgICAgIC0tcGFwZXItdGVhbC00MDA6ICMyNmE2OWE7CiAgICAgIC0tcGFwZXItdGVhbC01MDA6ICMwMDk2ODg7CiAgICAgIC0tcGFwZXItdGVhbC02MDA6ICMwMDg5N2I7CiAgICAgIC0tcGFwZXItdGVhbC03MDA6ICMwMDc5NmI7CiAgICAgIC0tcGFwZXItdGVhbC04MDA6ICMwMDY5NWM7CiAgICAgIC0tcGFwZXItdGVhbC05MDA6ICMwMDRkNDA7CiAgICAgIC0tcGFwZXItdGVhbC1hMTAwOiAjYTdmZmViOwogICAgICAtLXBhcGVyLXRlYWwtYTIwMDogIzY0ZmZkYTsKICAgICAgLS1wYXBlci10ZWFsLWE0MDA6ICMxZGU5YjY7CiAgICAgIC0tcGFwZXItdGVhbC1hNzAwOiAjMDBiZmE1OwoKICAgICAgLS1wYXBlci1ncmVlbi01MDogI2U4ZjVlOTsKICAgICAgLS1wYXBlci1ncmVlbi0xMDA6ICNjOGU2Yzk7CiAgICAgIC0tcGFwZXItZ3JlZW4tMjAwOiAjYTVkNmE3OwogICAgICAtLXBhcGVyLWdyZWVuLTMwMDogIzgxYzc4NDsKICAgICAgLS1wYXBlci1ncmVlbi00MDA6ICM2NmJiNmE7CiAgICAgIC0tcGFwZXItZ3JlZW4tNTAwOiAjNGNhZjUwOwogICAgICAtLXBhcGVyLWdyZWVuLTYwMDogIzQzYTA0NzsKICAgICAgLS1wYXBlci1ncmVlbi03MDA6ICMzODhlM2M7CiAgICAgIC0tcGFwZXItZ3JlZW4tODAwOiAjMmU3ZDMyOwogICAgICAtLXBhcGVyLWdyZWVuLTkwMDogIzFiNWUyMDsKICAgICAgLS1wYXBlci1ncmVlbi1hMTAwOiAjYjlmNmNhOwogICAgICAtLXBhcGVyLWdyZWVuLWEyMDA6ICM2OWYwYWU7CiAgICAgIC0tcGFwZXItZ3JlZW4tYTQwMDogIzAwZTY3NjsKICAgICAgLS1wYXBlci1ncmVlbi1hNzAwOiAjMDBjODUzOwoKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi01MDogI2YxZjhlOTsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi0xMDA6ICNkY2VkYzg7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tMjAwOiAjYzVlMWE1OwogICAgICAtLXBhcGVyLWxpZ2h0LWdyZWVuLTMwMDogI2FlZDU4MTsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi00MDA6ICM5Y2NjNjU7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tNTAwOiAjOGJjMzRhOwogICAgICAtLXBhcGVyLWxpZ2h0LWdyZWVuLTYwMDogIzdjYjM0MjsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi03MDA6ICM2ODlmMzg7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tODAwOiAjNTU4YjJmOwogICAgICAtLXBhcGVyLWxpZ2h0LWdyZWVuLTkwMDogIzMzNjkxZTsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi1hMTAwOiAjY2NmZjkwOwogICAgICAtLXBhcGVyLWxpZ2h0LWdyZWVuLWEyMDA6ICNiMmZmNTk7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tYTQwMDogIzc2ZmYwMzsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi1hNzAwOiAjNjRkZDE3OwoKICAgICAgLS1wYXBlci1saW1lLTUwOiAjZjlmYmU3OwogICAgICAtLXBhcGVyLWxpbWUtMTAwOiAjZjBmNGMzOwogICAgICAtLXBhcGVyLWxpbWUtMjAwOiAjZTZlZTljOwogICAgICAtLXBhcGVyLWxpbWUtMzAwOiAjZGNlNzc1OwogICAgICAtLXBhcGVyLWxpbWUtNDAwOiAjZDRlMTU3OwogICAgICAtLXBhcGVyLWxpbWUtNTAwOiAjY2RkYzM5OwogICAgICAtLXBhcGVyLWxpbWUtNjAwOiAjYzBjYTMzOwogICAgICAtLXBhcGVyLWxpbWUtNzAwOiAjYWZiNDJiOwogICAgICAtLXBhcGVyLWxpbWUtODAwOiAjOWU5ZDI0OwogICAgICAtLXBhcGVyLWxpbWUtOTAwOiAjODI3NzE3OwogICAgICAtLXBhcGVyLWxpbWUtYTEwMDogI2Y0ZmY4MTsKICAgICAgLS1wYXBlci1saW1lLWEyMDA6ICNlZWZmNDE7CiAgICAgIC0tcGFwZXItbGltZS1hNDAwOiAjYzZmZjAwOwogICAgICAtLXBhcGVyLWxpbWUtYTcwMDogI2FlZWEwMDsKCiAgICAgIC0tcGFwZXIteWVsbG93LTUwOiAjZmZmZGU3OwogICAgICAtLXBhcGVyLXllbGxvdy0xMDA6ICNmZmY5YzQ7CiAgICAgIC0tcGFwZXIteWVsbG93LTIwMDogI2ZmZjU5ZDsKICAgICAgLS1wYXBlci15ZWxsb3ctMzAwOiAjZmZmMTc2OwogICAgICAtLXBhcGVyLXllbGxvdy00MDA6ICNmZmVlNTg7CiAgICAgIC0tcGFwZXIteWVsbG93LTUwMDogI2ZmZWIzYjsKICAgICAgLS1wYXBlci15ZWxsb3ctNjAwOiAjZmRkODM1OwogICAgICAtLXBhcGVyLXllbGxvdy03MDA6ICNmYmMwMmQ7CiAgICAgIC0tcGFwZXIteWVsbG93LTgwMDogI2Y5YTgyNTsKICAgICAgLS1wYXBlci15ZWxsb3ctOTAwOiAjZjU3ZjE3OwogICAgICAtLXBhcGVyLXllbGxvdy1hMTAwOiAjZmZmZjhkOwogICAgICAtLXBhcGVyLXllbGxvdy1hMjAwOiAjZmZmZjAwOwogICAgICAtLXBhcGVyLXllbGxvdy1hNDAwOiAjZmZlYTAwOwogICAgICAtLXBhcGVyLXllbGxvdy1hNzAwOiAjZmZkNjAwOwoKICAgICAgLS1wYXBlci1hbWJlci01MDogI2ZmZjhlMTsKICAgICAgLS1wYXBlci1hbWJlci0xMDA6ICNmZmVjYjM7CiAgICAgIC0tcGFwZXItYW1iZXItMjAwOiAjZmZlMDgyOwogICAgICAtLXBhcGVyLWFtYmVyLTMwMDogI2ZmZDU0ZjsKICAgICAgLS1wYXBlci1hbWJlci00MDA6ICNmZmNhMjg7CiAgICAgIC0tcGFwZXItYW1iZXItNTAwOiAjZmZjMTA3OwogICAgICAtLXBhcGVyLWFtYmVyLTYwMDogI2ZmYjMwMDsKICAgICAgLS1wYXBlci1hbWJlci03MDA6ICNmZmEwMDA7CiAgICAgIC0tcGFwZXItYW1iZXItODAwOiAjZmY4ZjAwOwogICAgICAtLXBhcGVyLWFtYmVyLTkwMDogI2ZmNmYwMDsKICAgICAgLS1wYXBlci1hbWJlci1hMTAwOiAjZmZlNTdmOwogICAgICAtLXBhcGVyLWFtYmVyLWEyMDA6ICNmZmQ3NDA7CiAgICAgIC0tcGFwZXItYW1iZXItYTQwMDogI2ZmYzQwMDsKICAgICAgLS1wYXBlci1hbWJlci1hNzAwOiAjZmZhYjAwOwoKICAgICAgLS1wYXBlci1vcmFuZ2UtNTA6ICNmZmYzZTA7CiAgICAgIC0tcGFwZXItb3JhbmdlLTEwMDogI2ZmZTBiMjsKICAgICAgLS1wYXBlci1vcmFuZ2UtMjAwOiAjZmZjYzgwOwogICAgICAtLXBhcGVyLW9yYW5nZS0zMDA6ICNmZmI3NGQ7CiAgICAgIC0tcGFwZXItb3JhbmdlLTQwMDogI2ZmYTcyNjsKICAgICAgLS1wYXBlci1vcmFuZ2UtNTAwOiAjZmY5ODAwOwogICAgICAtLXBhcGVyLW9yYW5nZS02MDA6ICNmYjhjMDA7CiAgICAgIC0tcGFwZXItb3JhbmdlLTcwMDogI2Y1N2MwMDsKICAgICAgLS1wYXBlci1vcmFuZ2UtODAwOiAjZWY2YzAwOwogICAgICAtLXBhcGVyLW9yYW5nZS05MDA6ICNlNjUxMDA7CiAgICAgIC0tcGFwZXItb3JhbmdlLWExMDA6ICNmZmQxODA7CiAgICAgIC0tcGFwZXItb3JhbmdlLWEyMDA6ICNmZmFiNDA7CiAgICAgIC0tcGFwZXItb3JhbmdlLWE0MDA6ICNmZjkxMDA7CiAgICAgIC0tcGFwZXItb3JhbmdlLWE3MDA6ICNmZjY1MDA7CgogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLTUwOiAjZmJlOWU3OwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLTEwMDogI2ZmY2NiYzsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS0yMDA6ICNmZmFiOTE7CiAgICAgIC0tcGFwZXItZGVlcC1vcmFuZ2UtMzAwOiAjZmY4YTY1OwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLTQwMDogI2ZmNzA0MzsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS01MDA6ICNmZjU3MjI7CiAgICAgIC0tcGFwZXItZGVlcC1vcmFuZ2UtNjAwOiAjZjQ1MTFlOwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLTcwMDogI2U2NGExOTsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS04MDA6ICNkODQzMTU7CiAgICAgIC0tcGFwZXItZGVlcC1vcmFuZ2UtOTAwOiAjYmYzNjBjOwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLWExMDA6ICNmZjllODA7CiAgICAgIC0tcGFwZXItZGVlcC1vcmFuZ2UtYTIwMDogI2ZmNmU0MDsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS1hNDAwOiAjZmYzZDAwOwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLWE3MDA6ICNkZDJjMDA7CgogICAgICAtLXBhcGVyLWJyb3duLTUwOiAjZWZlYmU5OwogICAgICAtLXBhcGVyLWJyb3duLTEwMDogI2Q3Y2NjODsKICAgICAgLS1wYXBlci1icm93bi0yMDA6ICNiY2FhYTQ7CiAgICAgIC0tcGFwZXItYnJvd24tMzAwOiAjYTE4ODdmOwogICAgICAtLXBhcGVyLWJyb3duLTQwMDogIzhkNmU2MzsKICAgICAgLS1wYXBlci1icm93bi01MDA6ICM3OTU1NDg7CiAgICAgIC0tcGFwZXItYnJvd24tNjAwOiAjNmQ0YzQxOwogICAgICAtLXBhcGVyLWJyb3duLTcwMDogIzVkNDAzNzsKICAgICAgLS1wYXBlci1icm93bi04MDA6ICM0ZTM0MmU7CiAgICAgIC0tcGFwZXItYnJvd24tOTAwOiAjM2UyNzIzOwoKICAgICAgLS1wYXBlci1ncmV5LTUwOiAjZmFmYWZhOwogICAgICAtLXBhcGVyLWdyZXktMTAwOiAjZjVmNWY1OwogICAgICAtLXBhcGVyLWdyZXktMjAwOiAjZWVlZWVlOwogICAgICAtLXBhcGVyLWdyZXktMzAwOiAjZTBlMGUwOwogICAgICAtLXBhcGVyLWdyZXktNDAwOiAjYmRiZGJkOwogICAgICAtLXBhcGVyLWdyZXktNTAwOiAjOWU5ZTllOwogICAgICAtLXBhcGVyLWdyZXktNjAwOiAjNzU3NTc1OwogICAgICAtLXBhcGVyLWdyZXktNzAwOiAjNjE2MTYxOwogICAgICAtLXBhcGVyLWdyZXktODAwOiAjNDI0MjQyOwogICAgICAtLXBhcGVyLWdyZXktOTAwOiAjMjEyMTIxOwoKICAgICAgLS1wYXBlci1ibHVlLWdyZXktNTA6ICNlY2VmZjE7CiAgICAgIC0tcGFwZXItYmx1ZS1ncmV5LTEwMDogI2NmZDhkYzsKICAgICAgLS1wYXBlci1ibHVlLWdyZXktMjAwOiAjYjBiZWM1OwogICAgICAtLXBhcGVyLWJsdWUtZ3JleS0zMDA6ICM5MGE0YWU7CiAgICAgIC0tcGFwZXItYmx1ZS1ncmV5LTQwMDogIzc4OTA5YzsKICAgICAgLS1wYXBlci1ibHVlLWdyZXktNTAwOiAjNjA3ZDhiOwogICAgICAtLXBhcGVyLWJsdWUtZ3JleS02MDA6ICM1NDZlN2E7CiAgICAgIC0tcGFwZXItYmx1ZS1ncmV5LTcwMDogIzQ1NWE2NDsKICAgICAgLS1wYXBlci1ibHVlLWdyZXktODAwOiAjMzc0NzRmOwogICAgICAtLXBhcGVyLWJsdWUtZ3JleS05MDA6ICMyNjMyMzg7CgogICAgICAvKiBvcGFjaXR5IGZvciBkYXJrIHRleHQgb24gYSBsaWdodCBiYWNrZ3JvdW5kICovCiAgICAgIC0tZGFyay1kaXZpZGVyLW9wYWNpdHk6IDAuMTI7CiAgICAgIC0tZGFyay1kaXNhYmxlZC1vcGFjaXR5OiAwLjM4OyAvKiBvciBoaW50IHRleHQgb3IgaWNvbiAqLwogICAgICAtLWRhcmstc2Vjb25kYXJ5LW9wYWNpdHk6IDAuNTQ7CiAgICAgIC0tZGFyay1wcmltYXJ5LW9wYWNpdHk6IDAuODc7CgogICAgICAvKiBvcGFjaXR5IGZvciBsaWdodCB0ZXh0IG9uIGEgZGFyayBiYWNrZ3JvdW5kICovCiAgICAgIC0tbGlnaHQtZGl2aWRlci1vcGFjaXR5OiAwLjEyOwogICAgICAtLWxpZ2h0LWRpc2FibGVkLW9wYWNpdHk6IDAuMzsgLyogb3IgaGludCB0ZXh0IG9yIGljb24gKi8KICAgICAgLS1saWdodC1zZWNvbmRhcnktb3BhY2l0eTogMC43OwogICAgICAtLWxpZ2h0LXByaW1hcnktb3BhY2l0eTogMS4wOwoKICAgIH0KCiAgPC9zdHlsZT4KPC9jdXN0b20tc3R5bGU+CmA7cDB0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocDB0LmNvbnRlbnQpO3ZhciBkMHQ9UWAKPGN1c3RvbS1zdHlsZT4KICA8c3R5bGUgaXM9ImN1c3RvbS1zdHlsZSI+CiAgICBodG1sIHsKICAgICAgLyoKICAgICAgICogWW91IGNhbiB1c2UgdGhlc2UgZ2VuZXJpYyB2YXJpYWJsZXMgaW4geW91ciBlbGVtZW50cyBmb3IgZWFzeSB0aGVtaW5nLgogICAgICAgKiBGb3IgZXhhbXBsZSwgaWYgYWxsIHlvdXIgZWxlbWVudHMgdXNlIFxgLS1wcmltYXJ5LXRleHQtY29sb3JcYCBhcyBpdHMgbWFpbgogICAgICAgKiBjb2xvciwgdGhlbiBzd2l0Y2hpbmcgZnJvbSBhIGxpZ2h0IHRvIGEgZGFyayB0aGVtZSBpcyBqdXN0IGEgbWF0dGVyIG9mCiAgICAgICAqIGNoYW5naW5nIHRoZSB2YWx1ZSBvZiBcYC0tcHJpbWFyeS10ZXh0LWNvbG9yXGAgaW4geW91ciBhcHBsaWNhdGlvbi4KICAgICAgICovCiAgICAgIC0tcHJpbWFyeS10ZXh0LWNvbG9yOiB2YXIoLS1saWdodC10aGVtZS10ZXh0LWNvbG9yKTsKICAgICAgLS1wcmltYXJ5LWJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LXRoZW1lLWJhY2tncm91bmQtY29sb3IpOwogICAgICAtLXNlY29uZGFyeS10ZXh0LWNvbG9yOiB2YXIoLS1saWdodC10aGVtZS1zZWNvbmRhcnktY29sb3IpOwogICAgICAtLWRpc2FibGVkLXRleHQtY29sb3I6IHZhcigtLWxpZ2h0LXRoZW1lLWRpc2FibGVkLWNvbG9yKTsKICAgICAgLS1kaXZpZGVyLWNvbG9yOiB2YXIoLS1saWdodC10aGVtZS1kaXZpZGVyLWNvbG9yKTsKICAgICAgLS1lcnJvci1jb2xvcjogdmFyKC0tcGFwZXItZGVlcC1vcmFuZ2UtYTcwMCk7CgogICAgICAvKgogICAgICAgKiBQcmltYXJ5IGFuZCBhY2NlbnQgY29sb3JzLiBBbHNvIHNlZSBjb2xvci5qcyBmb3IgbW9yZSBjb2xvcnMuCiAgICAgICAqLwogICAgICAtLXByaW1hcnktY29sb3I6IHZhcigtLXBhcGVyLWluZGlnby01MDApOwogICAgICAtLWxpZ2h0LXByaW1hcnktY29sb3I6IHZhcigtLXBhcGVyLWluZGlnby0xMDApOwogICAgICAtLWRhcmstcHJpbWFyeS1jb2xvcjogdmFyKC0tcGFwZXItaW5kaWdvLTcwMCk7CgogICAgICAtLWFjY2VudC1jb2xvcjogdmFyKC0tcGFwZXItcGluay1hMjAwKTsKICAgICAgLS1saWdodC1hY2NlbnQtY29sb3I6IHZhcigtLXBhcGVyLXBpbmstYTEwMCk7CiAgICAgIC0tZGFyay1hY2NlbnQtY29sb3I6IHZhcigtLXBhcGVyLXBpbmstYTQwMCk7CgoKICAgICAgLyoKICAgICAgICogTWF0ZXJpYWwgRGVzaWduIExpZ2h0IGJhY2tncm91bmQgdGhlbWUKICAgICAgICovCiAgICAgIC0tbGlnaHQtdGhlbWUtYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsKICAgICAgLS1saWdodC10aGVtZS1iYXNlLWNvbG9yOiAjMDAwMDAwOwogICAgICAtLWxpZ2h0LXRoZW1lLXRleHQtY29sb3I6IHZhcigtLXBhcGVyLWdyZXktOTAwKTsKICAgICAgLS1saWdodC10aGVtZS1zZWNvbmRhcnktY29sb3I6ICM3MzczNzM7ICAvKiBmb3Igc2Vjb25kYXJ5IHRleHQgYW5kIGljb25zICovCiAgICAgIC0tbGlnaHQtdGhlbWUtZGlzYWJsZWQtY29sb3I6ICM5YjliOWI7ICAvKiBkaXNhYmxlZC9oaW50IHRleHQgKi8KICAgICAgLS1saWdodC10aGVtZS1kaXZpZGVyLWNvbG9yOiAjZGJkYmRiOwoKICAgICAgLyoKICAgICAgICogTWF0ZXJpYWwgRGVzaWduIERhcmsgYmFja2dyb3VuZCB0aGVtZQogICAgICAgKi8KICAgICAgLS1kYXJrLXRoZW1lLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLWdyZXktOTAwKTsKICAgICAgLS1kYXJrLXRoZW1lLWJhc2UtY29sb3I6ICNmZmZmZmY7CiAgICAgIC0tZGFyay10aGVtZS10ZXh0LWNvbG9yOiAjZmZmZmZmOwogICAgICAtLWRhcmstdGhlbWUtc2Vjb25kYXJ5LWNvbG9yOiAjYmNiY2JjOyAgLyogZm9yIHNlY29uZGFyeSB0ZXh0IGFuZCBpY29ucyAqLwogICAgICAtLWRhcmstdGhlbWUtZGlzYWJsZWQtY29sb3I6ICM2NDY0NjQ7ICAvKiBkaXNhYmxlZC9oaW50IHRleHQgKi8KICAgICAgLS1kYXJrLXRoZW1lLWRpdmlkZXItY29sb3I6ICMzYzNjM2M7CgogICAgICAvKgogICAgICAgKiBEZXByZWNhdGVkIHZhbHVlcyBiZWNhdXNlIG9mIHRoZWlyIGNvbmZ1c2luZyBuYW1lcy4KICAgICAgICovCiAgICAgIC0tdGV4dC1wcmltYXJ5LWNvbG9yOiB2YXIoLS1kYXJrLXRoZW1lLXRleHQtY29sb3IpOwogICAgICAtLWRlZmF1bHQtcHJpbWFyeS1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7CiAgICB9CiAgPC9zdHlsZT4KPC9jdXN0b20tc3R5bGU+YDtkMHQuc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6IG5vbmU7Iik7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChkMHQuY29udGVudCk7dmFyIFRoPXtwcm9wZXJ0aWVzOntuYW1lOnt0eXBlOlN0cmluZ30sdmFsdWU6e25vdGlmeTohMCx0eXBlOlN0cmluZ30scmVxdWlyZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX19LGF0dGFjaGVkOmZ1bmN0aW9uKCl7fSxkZXRhY2hlZDpmdW5jdGlvbigpe319O3ZhciBoVz1udWxsLENoPXtwcm9wZXJ0aWVzOnt2YWxpZGF0b3I6e3R5cGU6U3RyaW5nfSxpbnZhbGlkOntub3RpZnk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwLHR5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoiX2ludmFsaWRDaGFuZ2VkIn19LHJlZ2lzdGVyZWQ6ZnVuY3Rpb24oKXtoVz1uZXcgZ28oe3R5cGU6InZhbGlkYXRvciJ9KX0sX2ludmFsaWRDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5pbnZhbGlkP3RoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWludmFsaWQiLCJ0cnVlIik6dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtaW52YWxpZCIpfSxnZXQgX3ZhbGlkYXRvcigpe3JldHVybiBoVyYmaFcuYnlLZXkodGhpcy52YWxpZGF0b3IpfSxoYXNWYWxpZGF0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFsaWRhdG9yIT1udWxsfSx2YWxpZGF0ZTpmdW5jdGlvbihlKXtyZXR1cm4gZT09PXZvaWQgMCYmdGhpcy52YWx1ZSE9PXZvaWQgMD90aGlzLmludmFsaWQ9IXRoaXMuX2dldFZhbGlkaXR5KHRoaXMudmFsdWUpOnRoaXMuaW52YWxpZD0hdGhpcy5fZ2V0VmFsaWRpdHkoZSksIXRoaXMuaW52YWxpZH0sX2dldFZhbGlkaXR5OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmhhc1ZhbGlkYXRvcigpP3RoaXMuX3ZhbGlkYXRvci52YWxpZGF0ZShlKTohMH19O3ZhciBmVz17cHJvcGVydGllczp7Y2hlY2tlZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCxub3RpZnk6ITAsb2JzZXJ2ZXI6Il9jaGVja2VkQ2hhbmdlZCJ9LHRvZ2dsZXM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMCxyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LHZhbHVlOnt0eXBlOlN0cmluZyx2YWx1ZToib24iLG9ic2VydmVyOiJfdmFsdWVDaGFuZ2VkIn19LG9ic2VydmVyczpbIl9yZXF1aXJlZENoYW5nZWQocmVxdWlyZWQpIl0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX2hhc0lyb25DaGVja2VkRWxlbWVudEJlaGF2aW9yPSEwfSxfZ2V0VmFsaWRpdHk6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZGlzYWJsZWR8fCF0aGlzLnJlcXVpcmVkfHx0aGlzLmNoZWNrZWR9LF9yZXF1aXJlZENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLnJlcXVpcmVkP3RoaXMuc2V0QXR0cmlidXRlKCJhcmlhLXJlcXVpcmVkIiwidHJ1ZSIpOnRoaXMucmVtb3ZlQXR0cmlidXRlKCJhcmlhLXJlcXVpcmVkIil9LF9jaGVja2VkQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuYWN0aXZlPXRoaXMuY2hlY2tlZCx0aGlzLmZpcmUoImlyb24tY2hhbmdlIil9LF92YWx1ZUNoYW5nZWQ6ZnVuY3Rpb24oKXsodGhpcy52YWx1ZT09PXZvaWQgMHx8dGhpcy52YWx1ZT09PW51bGwpJiYodGhpcy52YWx1ZT0ib24iKX19LG0wdD1bVGgsQ2gsZlddO3ZhciBwRT17b2JzZXJ2ZXJzOlsiX2ZvY3VzZWRDaGFuZ2VkKHJlY2VpdmVkRm9jdXNGcm9tS2V5Ym9hcmQpIl0sX2ZvY3VzZWRDaGFuZ2VkOmZ1bmN0aW9uKGUpe2UmJnRoaXMuZW5zdXJlUmlwcGxlKCksdGhpcy5oYXNSaXBwbGUoKSYmKHRoaXMuX3JpcHBsZS5ob2xkRG93bj1lKX0sX2NyZWF0ZVJpcHBsZTpmdW5jdGlvbigpe3ZhciBlPXN1Ll9jcmVhdGVSaXBwbGUoKTtyZXR1cm4gZS5pZD0iaW5rIixlLnNldEF0dHJpYnV0ZSgiY2VudGVyIiwiIiksZS5jbGFzc0xpc3QuYWRkKCJjaXJjbGUiKSxlfX0sang9W01oLERpLHN1LHBFXTt2YXIgTGJlPXtfY2hlY2tlZENoYW5nZWQ6ZnVuY3Rpb24oKXtmVy5fY2hlY2tlZENoYW5nZWQuY2FsbCh0aGlzKSx0aGlzLmhhc1JpcHBsZSgpJiYodGhpcy5jaGVja2VkP3RoaXMuX3JpcHBsZS5zZXRBdHRyaWJ1dGUoImNoZWNrZWQiLCIiKTp0aGlzLl9yaXBwbGUucmVtb3ZlQXR0cmlidXRlKCJjaGVja2VkIikpfSxfYnV0dG9uU3RhdGVDaGFuZ2VkOmZ1bmN0aW9uKCl7c3UuX2J1dHRvblN0YXRlQ2hhbmdlZC5jYWxsKHRoaXMpLCF0aGlzLmRpc2FibGVkJiZ0aGlzLmlzQXR0YWNoZWQmJih0aGlzLmNoZWNrZWQ9dGhpcy5hY3RpdmUpfX0sWHg9W2p4LG0wdCxMYmVdO3ZhciBnMHQ9UWA8c3R5bGU+CiAgOmhvc3QgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1zaXplOiB2YXIoLS1wYXBlci1jaGVja2JveC1zaXplLCAxOHB4KTsKICAgIC8qIC0xcHggaXMgYSBzZW50aW5lbCBmb3IgdGhlIGRlZmF1bHQgYW5kIGlzIHJlcGxhY2VkIGluIFxgYXR0YWNoZWRcYC4gKi8KICAgIC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1pbmstc2l6ZTogdmFyKC0tcGFwZXItY2hlY2tib3gtaW5rLXNpemUsIC0xcHgpOwogICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgIGxpbmUtaGVpZ2h0OiAwOwogICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsKICB9CgogIDpob3N0KFtoaWRkZW5dKSB7CiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgfQoKICA6aG9zdCg6Zm9jdXMpIHsKICAgIG91dGxpbmU6IG5vbmU7CiAgfQoKICAuaGlkZGVuIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAjY2hlY2tib3hDb250YWluZXIgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgd2lkdGg6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSk7CiAgICBoZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSk7CiAgICBtaW4td2lkdGg6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSk7CiAgICBtYXJnaW46IHZhcigtLXBhcGVyLWNoZWNrYm94LW1hcmdpbiwgaW5pdGlhbCk7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdmFyKC0tcGFwZXItY2hlY2tib3gtdmVydGljYWwtYWxpZ24sIG1pZGRsZSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtYmFja2dyb3VuZC1jb2xvciwgdHJhbnNwYXJlbnQpOwogIH0KCiAgI2luayB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CgogICAgLyogQ2VudGVyIHRoZSByaXBwbGUgaW4gdGhlIGNoZWNrYm94IGJ5IG5lZ2F0aXZlIG9mZnNldHRpbmcgaXQgYnkKICAgICAqIChpbmtXaWR0aCAtIHJpcHBsZVdpZHRoKSAvIDIgKi8KICAgIHRvcDogY2FsYygwcHggLSAodmFyKC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1pbmstc2l6ZSkgLSB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LXNpemUpKSAvIDIpOwogICAgbGVmdDogY2FsYygwcHggLSAodmFyKC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1pbmstc2l6ZSkgLSB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LXNpemUpKSAvIDIpOwogICAgd2lkdGg6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtaW5rLXNpemUpOwogICAgaGVpZ2h0OiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LWluay1zaXplKTsKICAgIGNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtaW5rLWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKICAgIG9wYWNpdHk6IDAuNjsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KCiAgI2luazpkaXIocnRsKSB7CiAgICByaWdodDogY2FsYygwcHggLSAodmFyKC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1pbmstc2l6ZSkgLSB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LXNpemUpKSAvIDIpOwogICAgbGVmdDogYXV0bzsKICB9CgogICNpbmtbY2hlY2tlZF0gewogICAgY29sb3I6IHZhcigtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtaW5rLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CiAgfQoKICAjY2hlY2tib3ggewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGhlaWdodDogMTAwJTsKICAgIGJvcmRlcjogc29saWQgMnB4OwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMsIGJvcmRlci1jb2xvciAxNDBtczsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMsIGJvcmRlci1jb2xvciAxNDBtczsKCiAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLWNoZWNrYm94LWFuaW1hdGlvbi1kdXJhdGlvbiwgMTQwbXMpOwogICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItY2hlY2tib3gtYW5pbWF0aW9uLWR1cmF0aW9uLCAxNDBtcyk7CiAgfQoKICAvKiBjaGVja2JveCBjaGVja2VkIGFuaW1hdGlvbnMgKi8KICAjY2hlY2tib3guY2hlY2tlZCAjY2hlY2ttYXJrIHsKICAgIC13ZWJraXQtYW5pbWF0aW9uOiBjaGVja21hcmstZXhwYW5kIDE0MG1zIGVhc2Utb3V0IGZvcndhcmRzOwogICAgYW5pbWF0aW9uOiBjaGVja21hcmstZXhwYW5kIDE0MG1zIGVhc2Utb3V0IGZvcndhcmRzOwoKICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci1jaGVja2JveC1hbmltYXRpb24tZHVyYXRpb24sIDE0MG1zKTsKICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItY2hlY2tib3gtYW5pbWF0aW9uLWR1cmF0aW9uLCAxNDBtcyk7CiAgfQoKICBALXdlYmtpdC1rZXlmcmFtZXMgY2hlY2ttYXJrLWV4cGFuZCB7CiAgICAwJSB7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLCAwKSByb3RhdGUoNDVkZWcpOwogICAgfQogICAgMTAwJSB7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSByb3RhdGUoNDVkZWcpOwogICAgfQogIH0KCiAgQGtleWZyYW1lcyBjaGVja21hcmstZXhwYW5kIHsKICAgIDAlIHsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwKSByb3RhdGUoNDVkZWcpOwogICAgfQogICAgMTAwJSB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgcm90YXRlKDQ1ZGVnKTsKICAgIH0KICB9CgogICNjaGVja2JveC5jaGVja2VkIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3IsIHZhcigtLXByaW1hcnktY29sb3IpKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwogIH0KCiAgI2NoZWNrbWFyayB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB3aWR0aDogMzYlOwogICAgaGVpZ2h0OiA3MCU7CiAgICBib3JkZXItc3R5bGU6IHNvbGlkOwogICAgYm9yZGVyLXRvcDogbm9uZTsKICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiBjYWxjKDIvMTUgKiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LXNpemUpKTsKICAgIGJvcmRlci1ib3R0b20td2lkdGg6IGNhbGMoMi8xNSAqIHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSkpOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC1jaGVja21hcmstY29sb3IsIHdoaXRlKTsKICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogOTclIDg2JTsKICAgIHRyYW5zZm9ybS1vcmlnaW46IDk3JSA4NiU7CiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogcHJvdGVjdCBhZ2FpbnN0IHBhZ2UtbGV2ZWwgYm94LXNpemluZyAqLwogIH0KCiAgI2NoZWNrbWFyazpkaXIocnRsKSB7CiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSAxNCU7CiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTQlOwogIH0KCiAgLyogbGFiZWwgKi8KICAjY2hlY2tib3hMYWJlbCB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1wYXBlci1jaGVja2JveC1sYWJlbC1zcGFjaW5nLCA4cHgpOwogICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICBjb2xvcjogdmFyKC0tcGFwZXItY2hlY2tib3gtbGFiZWwtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgQGFwcGx5IC0tcGFwZXItY2hlY2tib3gtbGFiZWw7CiAgfQoKICA6aG9zdChbY2hlY2tlZF0pICNjaGVja2JveExhYmVsIHsKICAgIGNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC1sYWJlbC1jaGVja2VkLWNvbG9yLCB2YXIoLS1wYXBlci1jaGVja2JveC1sYWJlbC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSkpOwogICAgQGFwcGx5IC0tcGFwZXItY2hlY2tib3gtbGFiZWwtY2hlY2tlZDsKICB9CgogICNjaGVja2JveExhYmVsOmRpcihydGwpIHsKICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXBhcGVyLWNoZWNrYm94LWxhYmVsLXNwYWNpbmcsIDhweCk7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgfQoKICAjY2hlY2tib3hMYWJlbFtoaWRkZW5dIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAvKiBkaXNhYmxlZCBzdGF0ZSAqLwoKICA6aG9zdChbZGlzYWJsZWRdKSAjY2hlY2tib3ggewogICAgb3BhY2l0eTogMC41OwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogIH0KCiAgOmhvc3QoW2Rpc2FibGVkXVtjaGVja2VkXSkgI2NoZWNrYm94IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgICBvcGFjaXR5OiAwLjU7CiAgfQoKICA6aG9zdChbZGlzYWJsZWRdKSAjY2hlY2tib3hMYWJlbCAgewogICAgb3BhY2l0eTogMC42NTsKICB9CgogIC8qIGludmFsaWQgc3RhdGUgKi8KICAjY2hlY2tib3guaW52YWxpZDpub3QoLmNoZWNrZWQpIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcGFwZXItY2hlY2tib3gtZXJyb3ItY29sb3IsIHZhcigtLWVycm9yLWNvbG9yKSk7CiAgfQo8L3N0eWxlPgoKPGRpdiBpZD0iY2hlY2tib3hDb250YWluZXIiPgogIDxkaXYgaWQ9ImNoZWNrYm94IiBjbGFzcyQ9IltbX2NvbXB1dGVDaGVja2JveENsYXNzKGNoZWNrZWQsIGludmFsaWQpXV0iPgogICAgPGRpdiBpZD0iY2hlY2ttYXJrIiBjbGFzcyQ9IltbX2NvbXB1dGVDaGVja21hcmtDbGFzcyhjaGVja2VkKV1dIj48L2Rpdj4KICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGlkPSJjaGVja2JveExhYmVsIj48c2xvdD48L3Nsb3Q+PC9kaXY+YDtnMHQuc2V0QXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiwiIik7WXQoe190ZW1wbGF0ZTpnMHQsaXM6InBhcGVyLWNoZWNrYm94IixiZWhhdmlvcnM6W1h4XSxob3N0QXR0cmlidXRlczp7cm9sZToiY2hlY2tib3giLCJhcmlhLWNoZWNrZWQiOiExLHRhYmluZGV4OjB9LHByb3BlcnRpZXM6e2FyaWFBY3RpdmVBdHRyaWJ1dGU6e3R5cGU6U3RyaW5nLHZhbHVlOiJhcmlhLWNoZWNrZWQifX0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXtDbSh0aGlzLGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5nZXRDb21wdXRlZFN0eWxlVmFsdWUoIi0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1pbmstc2l6ZSIpLnRyaW0oKTtpZihlPT09Ii0xcHgiKXt2YXIgdD10aGlzLmdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LXNpemUiKS50cmltKCkscj0icHgiLG49dC5tYXRjaCgvW0EtWmEtel0rJC8pO24hPT1udWxsJiYocj1uWzBdKTt2YXIgaT1wYXJzZUZsb2F0KHQpLG89OC8zKmk7cj09PSJweCImJihvPU1hdGguZmxvb3IobyksbyUyIT09aSUyJiZvKyspLHRoaXMudXBkYXRlU3R5bGVzKHsiLS1wYXBlci1jaGVja2JveC1pbmstc2l6ZSI6bytyfSl9fSl9LF9jb21wdXRlQ2hlY2tib3hDbGFzczpmdW5jdGlvbihlLHQpe3ZhciByPSIiO3JldHVybiBlJiYocis9ImNoZWNrZWQgIiksdCYmKHIrPSJpbnZhbGlkIikscn0sX2NvbXB1dGVDaGVja21hcmtDbGFzczpmdW5jdGlvbihlKXtyZXR1cm4gZT8iIjoiaGlkZGVuIn0sX2NyZWF0ZVJpcHBsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yaXBwbGVDb250YWluZXI9dGhpcy4kLmNoZWNrYm94Q29udGFpbmVyLHBFLl9jcmVhdGVSaXBwbGUuY2FsbCh0aGlzKX19KTtpZighd2luZG93LnBvbHltZXJTa2lwTG9hZGluZ0ZvbnRSb2JvdG8pe2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtlLnJlbD0ic3R5bGVzaGVldCIsZS50eXBlPSJ0ZXh0L2NzcyIsZS5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixlLmhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG8rTW9ubzo0MDAsNzAwfFJvYm90bzo0MDAsMzAwLDMwMGl0YWxpYyw0MDBpdGFsaWMsNTAwLDUwMGl0YWxpYyw3MDAsNzAwaXRhbGljIixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGUpfXZhciBfMHQ9UWA8Y3VzdG9tLXN0eWxlPgogIDxzdHlsZSBpcz0iY3VzdG9tLXN0eWxlIj4KICAgIGh0bWwgewoKICAgICAgLyogU2hhcmVkIFN0eWxlcyAqLwogICAgICAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U6IHsKICAgICAgICBmb250LWZhbWlseTogJ1JvYm90bycsICdOb3RvJywgc2Fucy1zZXJpZjsKICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1jb21tb24tY29kZTogewogICAgICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nLCAnQ29uc29sYXMnLCAnTWVubG8nLCBtb25vc3BhY2U7CiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtY29tbW9uLWV4cGVuc2l2ZS1rZXJuaW5nOiB7CiAgICAgICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1jb21tb24tbm93cmFwOiB7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9OwoKICAgICAgLyogTWF0ZXJpYWwgRm9udCBTdHlsZXMgKi8KCiAgICAgIC0tcGFwZXItZm9udC1kaXNwbGF5NDogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tbm93cmFwOwoKICAgICAgICBmb250LXNpemU6IDExMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0uMDQ0ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEyMHB4OwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LWRpc3BsYXkzOiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1ub3dyYXA7CgogICAgICAgIGZvbnQtc2l6ZTogNTZweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtLjAyNmVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiA2MHB4OwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LWRpc3BsYXkyOiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKCiAgICAgICAgZm9udC1zaXplOiA0NXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0uMDE4ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtZGlzcGxheTE6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwoKICAgICAgICBmb250LXNpemU6IDM0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLS4wMWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4OwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LWhlYWRsaW5lOiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKCiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0uMDEyZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtdGl0bGU6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLW5vd3JhcDsKCiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtc3ViaGVhZDogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CgogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LWJvZHkyOiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKCiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtYm9keTE6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwoKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1jYXB0aW9uOiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1ub3dyYXA7CgogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAxMWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LW1lbnU6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLW5vd3JhcDsKCiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtYnV0dG9uOiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1ub3dyYXA7CgogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAxOGVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtY29kZTI6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1jb2RlOwoKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1jb2RlMTogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWNvZGU7CgogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9OwoKICAgIH0KCiAgPC9zdHlsZT4KPC9jdXN0b20tc3R5bGU+YDtfMHQuc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6IG5vbmU7Iik7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChfMHQuY29udGVudCk7dmFyIHBXPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7cFcuc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6IG5vbmU7Iik7cFcuaW5uZXJIVE1MPWA8ZG9tLW1vZHVsZSBpZD0icGFwZXItZGlhbG9nLXNoYXJlZC1zdHlsZXMiPgogIDx0ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbjogMjRweCA0MHB4OwoKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYXBlci1kaWFsb2ctYmFja2dyb3VuZC1jb2xvciwgdmFyKC0tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yKSk7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWRpYWxvZy1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtYm9keTE7CiAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi0xNmRwOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWRpYWxvZzsKICAgICAgfQoKICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoKikgewogICAgICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgICAgICAgcGFkZGluZzogMCAyNHB4OwogICAgICB9CgogICAgICA6aG9zdCA+IDo6c2xvdHRlZCgubm8tcGFkZGluZykgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIAogICAgICA6aG9zdCA+IDo6c2xvdHRlZCgqOmZpcnN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgfQoKICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoKjpsYXN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLyogSW4gMS54LCB0aGlzIHNlbGVjdG9yIHdhcyBcYDpob3N0ID4gOjpjb250ZW50IGgyXGAuIEluIDIueCA8c2xvdD4gYWxsb3dzCiAgICAgIHRvIHNlbGVjdCBkaXJlY3QgY2hpbGRyZW4gb25seSwgd2hpY2ggaW5jcmVhc2VzIHRoZSB3ZWlnaHQgb2YgdGhpcwogICAgICBzZWxlY3Rvciwgc28gd2UgaGF2ZSB0byByZS1kZWZpbmUgZmlyc3QtY2hpbGQvbGFzdC1jaGlsZCBtYXJnaW5zIGJlbG93LiAqLwogICAgICA6aG9zdCA+IDo6c2xvdHRlZChoMikgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDA7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtdGl0bGU7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZGlhbG9nLXRpdGxlOwogICAgICB9CgogICAgICAvKiBBcHBseSBtaXhpbiBhZ2FpbiwgaW4gY2FzZSBpdCBzZXRzIG1hcmdpbi10b3AuICovCiAgICAgIDpob3N0ID4gOjpzbG90dGVkKGgyOmZpcnN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICBAYXBwbHkgLS1wYXBlci1kaWFsb2ctdGl0bGU7CiAgICAgIH0KCiAgICAgIC8qIEFwcGx5IG1peGluIGFnYWluLCBpbiBjYXNlIGl0IHNldHMgbWFyZ2luLWJvdHRvbS4gKi8KICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoaDI6bGFzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZGlhbG9nLXRpdGxlOwogICAgICB9CgogICAgICA6aG9zdCA+IDo6c2xvdHRlZCgucGFwZXItZGlhbG9nLWJ1dHRvbnMpLAogICAgICA6aG9zdCA+IDo6c2xvdHRlZCguYnV0dG9ucykgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBwYWRkaW5nOiA4cHggOHB4IDhweCAyNHB4OwogICAgICAgIG1hcmdpbjogMDsKCiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWRpYWxvZy1idXR0b24tY29sb3IsIHZhcigtLXByaW1hcnktY29sb3IpKTsKCiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWVuZC1qdXN0aWZpZWQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC90ZW1wbGF0ZT4KPC9kb20tbW9kdWxlPmA7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChwVy5jb250ZW50KTt2YXIgeTB0PXtwcm9wZXJ0aWVzOnthbmltYXRpb25Db25maWc6e3R5cGU6T2JqZWN0fSxlbnRyeUFuaW1hdGlvbjp7b2JzZXJ2ZXI6Il9lbnRyeUFuaW1hdGlvbkNoYW5nZWQiLHR5cGU6U3RyaW5nfSxleGl0QW5pbWF0aW9uOntvYnNlcnZlcjoiX2V4aXRBbmltYXRpb25DaGFuZ2VkIix0eXBlOlN0cmluZ319LF9lbnRyeUFuaW1hdGlvbkNoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLmFuaW1hdGlvbkNvbmZpZz10aGlzLmFuaW1hdGlvbkNvbmZpZ3x8e30sdGhpcy5hbmltYXRpb25Db25maWcuZW50cnk9W3tuYW1lOnRoaXMuZW50cnlBbmltYXRpb24sbm9kZTp0aGlzfV19LF9leGl0QW5pbWF0aW9uQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuYW5pbWF0aW9uQ29uZmlnPXRoaXMuYW5pbWF0aW9uQ29uZmlnfHx7fSx0aGlzLmFuaW1hdGlvbkNvbmZpZy5leGl0PVt7bmFtZTp0aGlzLmV4aXRBbmltYXRpb24sbm9kZTp0aGlzfV19LF9jb3B5UHJvcGVydGllczpmdW5jdGlvbihlLHQpe2Zvcih2YXIgciBpbiB0KWVbcl09dFtyXX0sX2Nsb25lQ29uZmlnOmZ1bmN0aW9uKGUpe3ZhciB0PXtpc0Nsb25lOiEwfTtyZXR1cm4gdGhpcy5fY29weVByb3BlcnRpZXModCxlKSx0fSxfZ2V0QW5pbWF0aW9uQ29uZmlnUmVjdXJzaXZlOmZ1bmN0aW9uKGUsdCxyKXtpZighIXRoaXMuYW5pbWF0aW9uQ29uZmlnKXtpZih0aGlzLmFuaW1hdGlvbkNvbmZpZy52YWx1ZSYmdHlwZW9mIHRoaXMuYW5pbWF0aW9uQ29uZmlnLnZhbHVlPT0iZnVuY3Rpb24iKXt0aGlzLl93YXJuKHRoaXMuX2xvZ2YoInBsYXlBbmltYXRpb24iLCJQbGVhc2UgcHV0ICdhbmltYXRpb25Db25maWcnIGluc2lkZSBvZiB5b3VyIGNvbXBvbmVudHMgJ3Byb3BlcnRpZXMnIG9iamVjdCBpbnN0ZWFkIG9mIG91dHNpZGUgb2YgaXQuIikpO3JldHVybn12YXIgbjtpZihlP249dGhpcy5hbmltYXRpb25Db25maWdbZV06bj10aGlzLmFuaW1hdGlvbkNvbmZpZyxBcnJheS5pc0FycmF5KG4pfHwobj1bbl0pLG4pZm9yKHZhciBpLG89MDtpPW5bb107bysrKWlmKGkuYW5pbWF0YWJsZSlpLmFuaW1hdGFibGUuX2dldEFuaW1hdGlvbkNvbmZpZ1JlY3Vyc2l2ZShpLnR5cGV8fGUsdCxyKTtlbHNlIGlmKGkuaWQpe3ZhciBhPXRbaS5pZF07YT8oYS5pc0Nsb25lfHwodFtpLmlkXT10aGlzLl9jbG9uZUNvbmZpZyhhKSxhPXRbaS5pZF0pLHRoaXMuX2NvcHlQcm9wZXJ0aWVzKGEsaSkpOnRbaS5pZF09aX1lbHNlIHIucHVzaChpKX19LGdldEFuaW1hdGlvbkNvbmZpZzpmdW5jdGlvbihlKXt2YXIgdD17fSxyPVtdO3RoaXMuX2dldEFuaW1hdGlvbkNvbmZpZ1JlY3Vyc2l2ZShlLHQscik7Zm9yKHZhciBuIGluIHQpci5wdXNoKHRbbl0pO3JldHVybiByfX07dmFyIGtiZT17X2NvbmZpZ3VyZUFuaW1hdGlvbnM6ZnVuY3Rpb24oZSl7dmFyIHQ9W10scj1bXTtpZihlLmxlbmd0aD4wKWZvcihsZXQgaSxvPTA7aT1lW29dO28rKyl7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpLm5hbWUpO2lmKGEuaXNOZW9uQW5pbWF0aW9uKXtsZXQgcz1udWxsO2EuY29uZmlndXJlfHwoYS5jb25maWd1cmU9ZnVuY3Rpb24obCl7cmV0dXJuIG51bGx9KSxzPWEuY29uZmlndXJlKGkpLHIucHVzaCh7cmVzdWx0OnMsY29uZmlnOmksbmVvbkFuaW1hdGlvbjphfSl9ZWxzZSBjb25zb2xlLndhcm4odGhpcy5pcysiOiIsaS5uYW1lLCJub3QgZm91bmQhIil9Zm9yKHZhciBuPTA7bjxyLmxlbmd0aDtuKyspe2xldCBpPXJbbl0ucmVzdWx0LG89cltuXS5jb25maWcsYT1yW25dLm5lb25BbmltYXRpb247dHJ5e3R5cGVvZiBpLmNhbmNlbCE9ImZ1bmN0aW9uIiYmKGk9ZG9jdW1lbnQudGltZWxpbmUucGxheShpKSl9Y2F0Y2gocyl7aT1udWxsLGNvbnNvbGUud2FybigiQ291bGRudCBwbGF5IiwiKCIsby5uYW1lLCIpLiIscyl9aSYmdC5wdXNoKHtuZW9uQW5pbWF0aW9uOmEsY29uZmlnOm8sYW5pbWF0aW9uOml9KX1yZXR1cm4gdH0sX3Nob3VsZENvbXBsZXRlOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0hMCxyPTA7cjxlLmxlbmd0aDtyKyspaWYoZVtyXS5hbmltYXRpb24ucGxheVN0YXRlIT0iZmluaXNoZWQiKXt0PSExO2JyZWFrfXJldHVybiB0fSxfY29tcGxldGU6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XS5uZW9uQW5pbWF0aW9uLmNvbXBsZXRlKGVbdF0uY29uZmlnKTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdLmFuaW1hdGlvbi5jYW5jZWwoKX0scGxheUFuaW1hdGlvbjpmdW5jdGlvbihlLHQpe3ZhciByPXRoaXMuZ2V0QW5pbWF0aW9uQ29uZmlnKGUpO2lmKCEhcil7dGhpcy5fYWN0aXZlPXRoaXMuX2FjdGl2ZXx8e30sdGhpcy5fYWN0aXZlW2VdJiYodGhpcy5fY29tcGxldGUodGhpcy5fYWN0aXZlW2VdKSxkZWxldGUgdGhpcy5fYWN0aXZlW2VdKTt2YXIgbj10aGlzLl9jb25maWd1cmVBbmltYXRpb25zKHIpO2lmKG4ubGVuZ3RoPT0wKXt0aGlzLmZpcmUoIm5lb24tYW5pbWF0aW9uLWZpbmlzaCIsdCx7YnViYmxlczohMX0pO3JldHVybn10aGlzLl9hY3RpdmVbZV09bjtmb3IodmFyIGk9MDtpPG4ubGVuZ3RoO2krKyluW2ldLmFuaW1hdGlvbi5vbmZpbmlzaD1mdW5jdGlvbigpe3RoaXMuX3Nob3VsZENvbXBsZXRlKG4pJiYodGhpcy5fY29tcGxldGUobiksZGVsZXRlIHRoaXMuX2FjdGl2ZVtlXSx0aGlzLmZpcmUoIm5lb24tYW5pbWF0aW9uLWZpbmlzaCIsdCx7YnViYmxlczohMX0pKX0uYmluZCh0aGlzKX19LGNhbmNlbEFuaW1hdGlvbjpmdW5jdGlvbigpe2Zvcih2YXIgZSBpbiB0aGlzLl9hY3RpdmUpe3ZhciB0PXRoaXMuX2FjdGl2ZVtlXTtmb3IodmFyIHIgaW4gdCl0W3JdLmFuaW1hdGlvbi5jYW5jZWwoKX10aGlzLl9hY3RpdmU9e319fSxiOT1beTB0LGtiZV07dmFyIHc5LFJiZT0oKT0+e2lmKHc5IT09dm9pZCAwKXJldHVybiB3OTtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtPYmplY3QuYXNzaWduKGUuc3R5bGUse292ZXJmbG93OiJhdXRvIixwb3NpdGlvbjoiZml4ZWQiLGxlZnQ6IjBweCIsdG9wOiIwcHgiLG1heFdpZHRoOiIxMDBweCIsbWF4SGVpZ2h0OiIxMDBweCJ9KTtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5zdHlsZS53aWR0aD0iMjAwcHgiLHQuc3R5bGUuaGVpZ2h0PSIyMDBweCIsZS5hcHBlbmRDaGlsZCh0KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLHc5PU1hdGguYWJzKGUub2Zmc2V0V2lkdGgtMTAwKT4xP2Uub2Zmc2V0V2lkdGgtZS5jbGllbnRXaWR0aDowLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZSksdzl9LHYwdD17cHJvcGVydGllczp7c2l6aW5nVGFyZ2V0Ont0eXBlOk9iamVjdCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0sZml0SW50bzp7dHlwZTpPYmplY3QsdmFsdWU6d2luZG93fSxub092ZXJsYXA6e3R5cGU6Qm9vbGVhbn0scG9zaXRpb25UYXJnZXQ6e3R5cGU6RWxlbWVudH0saG9yaXpvbnRhbEFsaWduOnt0eXBlOlN0cmluZ30sdmVydGljYWxBbGlnbjp7dHlwZTpTdHJpbmd9LGR5bmFtaWNBbGlnbjp7dHlwZTpCb29sZWFufSxob3Jpem9udGFsT2Zmc2V0Ont0eXBlOk51bWJlcix2YWx1ZTowLG5vdGlmeTohMH0sdmVydGljYWxPZmZzZXQ6e3R5cGU6TnVtYmVyLHZhbHVlOjAsbm90aWZ5OiEwfSxhdXRvRml0T25BdHRhY2g6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sZXhwYW5kU2l6aW5nVGFyZ2V0Rm9yU2Nyb2xsYmFyczp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxfZml0SW5mbzp7dHlwZTpPYmplY3R9fSxnZXQgX2ZpdFdpZHRoKCl7dmFyIGU7cmV0dXJuIHRoaXMuZml0SW50bz09PXdpbmRvdz9lPXRoaXMuZml0SW50by5pbm5lcldpZHRoOmU9dGhpcy5maXRJbnRvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLGV9LGdldCBfZml0SGVpZ2h0KCl7dmFyIGU7cmV0dXJuIHRoaXMuZml0SW50bz09PXdpbmRvdz9lPXRoaXMuZml0SW50by5pbm5lckhlaWdodDplPXRoaXMuZml0SW50by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQsZX0sZ2V0IF9maXRMZWZ0KCl7dmFyIGU7cmV0dXJuIHRoaXMuZml0SW50bz09PXdpbmRvdz9lPTA6ZT10aGlzLmZpdEludG8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCxlfSxnZXQgX2ZpdFRvcCgpe3ZhciBlO3JldHVybiB0aGlzLmZpdEludG89PT13aW5kb3c/ZT0wOmU9dGhpcy5maXRJbnRvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCxlfSxnZXQgX2RlZmF1bHRQb3NpdGlvblRhcmdldCgpe3ZhciBlPXp0KHRoaXMpLnBhcmVudE5vZGU7cmV0dXJuIGUmJmUubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUmJihlPWUuaG9zdCksZX0sZ2V0IF9sb2NhbGVIb3Jpem9udGFsQWxpZ24oKXtpZih0aGlzLl9pc1JUTCl7aWYodGhpcy5ob3Jpem9udGFsQWxpZ249PT0icmlnaHQiKXJldHVybiJsZWZ0IjtpZih0aGlzLmhvcml6b250YWxBbGlnbj09PSJsZWZ0IilyZXR1cm4icmlnaHQifXJldHVybiB0aGlzLmhvcml6b250YWxBbGlnbn0sZ2V0IF9fc2hvdWxkUG9zaXRpb24oKXtyZXR1cm4odGhpcy5ob3Jpem9udGFsQWxpZ258fHRoaXMudmVydGljYWxBbGlnbikmJnRoaXMucG9zaXRpb25UYXJnZXR9LGdldCBfaXNSVEwoKXtyZXR1cm4gdHlwZW9mIHRoaXMuX21lbW9pemVkSXNSVEw9PSJ1bmRlZmluZWQiJiYodGhpcy5fbWVtb2l6ZWRJc1JUTD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5kaXJlY3Rpb249PSJydGwiKSx0aGlzLl9tZW1vaXplZElzUlRMfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMucG9zaXRpb25UYXJnZXQ9dGhpcy5wb3NpdGlvblRhcmdldHx8dGhpcy5fZGVmYXVsdFBvc2l0aW9uVGFyZ2V0LHRoaXMuYXV0b0ZpdE9uQXR0YWNoJiYod2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcykuZGlzcGxheT09PSJub25lIj9zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhpcy5maXQoKX0uYmluZCh0aGlzKSk6KHdpbmRvdy5TaGFkeURPTSYmU2hhZHlET00uZmx1c2goKSx0aGlzLmZpdCgpKSl9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fX2RlZmVycmVkRml0JiYoY2xlYXJUaW1lb3V0KHRoaXMuX19kZWZlcnJlZEZpdCksdGhpcy5fX2RlZmVycmVkRml0PW51bGwpfSxmaXQ6ZnVuY3Rpb24oKXt0aGlzLnBvc2l0aW9uKCksdGhpcy5jb25zdHJhaW4oKSx0aGlzLmNlbnRlcigpfSxfZGlzY292ZXJJbmZvOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX2ZpdEluZm8pe3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLHQ9d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5zaXppbmdUYXJnZXQpO3RoaXMuX2ZpdEluZm89e2lubGluZVN0eWxlOnt0b3A6dGhpcy5zdHlsZS50b3B8fCIiLGxlZnQ6dGhpcy5zdHlsZS5sZWZ0fHwiIixwb3NpdGlvbjp0aGlzLnN0eWxlLnBvc2l0aW9ufHwiIn0sc2l6ZXJJbmxpbmVTdHlsZTp7bWF4V2lkdGg6dGhpcy5zaXppbmdUYXJnZXQuc3R5bGUubWF4V2lkdGh8fCIiLG1heEhlaWdodDp0aGlzLnNpemluZ1RhcmdldC5zdHlsZS5tYXhIZWlnaHR8fCIiLGJveFNpemluZzp0aGlzLnNpemluZ1RhcmdldC5zdHlsZS5ib3hTaXppbmd8fCIifSxwb3NpdGlvbmVkQnk6e3ZlcnRpY2FsbHk6ZS50b3AhPT0iYXV0byI/InRvcCI6ZS5ib3R0b20hPT0iYXV0byI/ImJvdHRvbSI6bnVsbCxob3Jpem9udGFsbHk6ZS5sZWZ0IT09ImF1dG8iPyJsZWZ0IjplLnJpZ2h0IT09ImF1dG8iPyJyaWdodCI6bnVsbH0sc2l6ZWRCeTp7aGVpZ2h0OnQubWF4SGVpZ2h0IT09Im5vbmUiLHdpZHRoOnQubWF4V2lkdGghPT0ibm9uZSIsbWluV2lkdGg6cGFyc2VJbnQodC5taW5XaWR0aCwxMCl8fDAsbWluSGVpZ2h0OnBhcnNlSW50KHQubWluSGVpZ2h0LDEwKXx8MH0sbWFyZ2luOnt0b3A6cGFyc2VJbnQoZS5tYXJnaW5Ub3AsMTApfHwwLHJpZ2h0OnBhcnNlSW50KGUubWFyZ2luUmlnaHQsMTApfHwwLGJvdHRvbTpwYXJzZUludChlLm1hcmdpbkJvdHRvbSwxMCl8fDAsbGVmdDpwYXJzZUludChlLm1hcmdpbkxlZnQsMTApfHwwfX19fSxyZXNldEZpdDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX2ZpdEluZm98fHt9O2Zvcih2YXIgdCBpbiBlLnNpemVySW5saW5lU3R5bGUpdGhpcy5zaXppbmdUYXJnZXQuc3R5bGVbdF09ZS5zaXplcklubGluZVN0eWxlW3RdO2Zvcih2YXIgdCBpbiBlLmlubGluZVN0eWxlKXRoaXMuc3R5bGVbdF09ZS5pbmxpbmVTdHlsZVt0XTt0aGlzLl9maXRJbmZvPW51bGx9LHJlZml0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zaXppbmdUYXJnZXQuc2Nyb2xsTGVmdCx0PXRoaXMuc2l6aW5nVGFyZ2V0LnNjcm9sbFRvcDt0aGlzLnJlc2V0Rml0KCksdGhpcy5maXQoKSx0aGlzLnNpemluZ1RhcmdldC5zY3JvbGxMZWZ0PWUsdGhpcy5zaXppbmdUYXJnZXQuc2Nyb2xsVG9wPXR9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX19zaG91bGRQb3NpdGlvbilyZXR1cm47dGhpcy5fZGlzY292ZXJJbmZvKCksd2luZG93LlNoYWR5RE9NJiZ3aW5kb3cuU2hhZHlET00uZmx1c2goKSx0aGlzLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zaXppbmdUYXJnZXQuc3R5bGUuYm94U2l6aW5nPSJib3JkZXItYm94Iix0aGlzLnN0eWxlLmxlZnQ9IjBweCIsdGhpcy5zdHlsZS50b3A9IjBweCI7dmFyIGU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0PXRoaXMuX19nZXROb3JtYWxpemVkUmVjdCh0aGlzLnBvc2l0aW9uVGFyZ2V0KSxyPXRoaXMuX19nZXROb3JtYWxpemVkUmVjdCh0aGlzLmZpdEludG8pO2xldCBuLGksbyxhO3RoaXMuZXhwYW5kU2l6aW5nVGFyZ2V0Rm9yU2Nyb2xsYmFycyYmKG49dGhpcy5zaXppbmdUYXJnZXQub2Zmc2V0V2lkdGgsaT10aGlzLnNpemluZ1RhcmdldC5vZmZzZXRIZWlnaHQsbz10aGlzLnNpemluZ1RhcmdldC5jbGllbnRXaWR0aCxhPXRoaXMuc2l6aW5nVGFyZ2V0LmNsaWVudEhlaWdodCk7dmFyIHM9dGhpcy5fZml0SW5mby5tYXJnaW4sbD17d2lkdGg6ZS53aWR0aCtzLmxlZnQrcy5yaWdodCxoZWlnaHQ6ZS5oZWlnaHQrcy50b3Arcy5ib3R0b219LGM9dGhpcy5fX2dldFBvc2l0aW9uKHRoaXMuX2xvY2FsZUhvcml6b250YWxBbGlnbix0aGlzLnZlcnRpY2FsQWxpZ24sbCxlLHQsciksdT1jLmxlZnQrcy5sZWZ0LGg9Yy50b3Arcy50b3AsZj1NYXRoLm1pbihyLnJpZ2h0LXMucmlnaHQsdStlLndpZHRoKSxwPU1hdGgubWluKHIuYm90dG9tLXMuYm90dG9tLGgrZS5oZWlnaHQpO3U9TWF0aC5tYXgoci5sZWZ0K3MubGVmdCxNYXRoLm1pbih1LGYtdGhpcy5fZml0SW5mby5zaXplZEJ5Lm1pbldpZHRoKSksaD1NYXRoLm1heChyLnRvcCtzLnRvcCxNYXRoLm1pbihoLHAtdGhpcy5fZml0SW5mby5zaXplZEJ5Lm1pbkhlaWdodCkpO2xldCBkPU1hdGgubWF4KGYtdSx0aGlzLl9maXRJbmZvLnNpemVkQnkubWluV2lkdGgpLGc9TWF0aC5tYXgocC1oLHRoaXMuX2ZpdEluZm8uc2l6ZWRCeS5taW5IZWlnaHQpO3RoaXMuc2l6aW5nVGFyZ2V0LnN0eWxlLm1heFdpZHRoPWQrInB4Iix0aGlzLnNpemluZ1RhcmdldC5zdHlsZS5tYXhIZWlnaHQ9ZysicHgiO2xldCBfPXUtZS5sZWZ0LHk9aC1lLnRvcDtpZih0aGlzLnN0eWxlLmxlZnQ9YCR7X31weGAsdGhpcy5zdHlsZS50b3A9YCR7eX1weGAsdGhpcy5leHBhbmRTaXppbmdUYXJnZXRGb3JTY3JvbGxiYXJzKXtsZXQgeD10aGlzLnNpemluZ1RhcmdldC5vZmZzZXRIZWlnaHQsYj10aGlzLnNpemluZ1RhcmdldC5jbGllbnRIZWlnaHQsUz1pLWEsUD14LWItUztpZihQPjApe2xldCBMPXIuaGVpZ2h0LXMudG9wLXMuYm90dG9tLFI9TWF0aC5taW4oTCxnK1ApO3RoaXMuc2l6aW5nVGFyZ2V0LnN0eWxlLm1heEhlaWdodD1gJHtSfXB4YDtsZXQgRj10aGlzLnNpemluZ1RhcmdldC5vZmZzZXRIZWlnaHQsej1GLXgsVTtjLnZlcnRpY2FsQWxpZ249PT0idG9wIj9VPXk6Yy52ZXJ0aWNhbEFsaWduPT09Im1pZGRsZSI/VT15LXovMjpjLnZlcnRpY2FsQWxpZ249PT0iYm90dG9tIiYmKFU9eS16KSxVPU1hdGgubWF4KHIudG9wK3MudG9wLE1hdGgubWluKFUsci5ib3R0b20tcy5ib3R0b20tRikpLHRoaXMuc3R5bGUudG9wPWAke1V9cHhgfWxldCBrPXRoaXMuc2l6aW5nVGFyZ2V0Lm9mZnNldFdpZHRoLE89dGhpcy5zaXppbmdUYXJnZXQuY2xpZW50V2lkdGgsRD1uLW8sST1rLU8tRDtpZihJPjApe2xldCBMPVJiZSgpLFI9ci53aWR0aC1zLmxlZnQtcy5yaWdodCxGPU1hdGgubWluKFIsZCtJLUwpO3RoaXMuc2l6aW5nVGFyZ2V0LnN0eWxlLm1heFdpZHRoPWAke0Z9cHhgO2xldCB6PXRoaXMuc2l6aW5nVGFyZ2V0Lm9mZnNldFdpZHRoK0wsVT16LWssVztjLmhvcml6b250YWxBbGlnbj09PSJsZWZ0Ij9XPV86Yy5ob3Jpem9udGFsQWxpZ249PT0iY2VudGVyIj9XPV8tVS8yOmMuaG9yaXpvbnRhbEFsaWduPT09InJpZ2h0IiYmKFc9Xy1VKSxXPU1hdGgubWF4KHIubGVmdCtzLmxlZnQsTWF0aC5taW4oVyxyLnJpZ2h0LXMucmlnaHQteikpLHRoaXMuc3R5bGUubGVmdD1gJHtXfXB4YH19fSxjb25zdHJhaW46ZnVuY3Rpb24oKXtpZighdGhpcy5fX3Nob3VsZFBvc2l0aW9uKXt0aGlzLl9kaXNjb3ZlckluZm8oKTt2YXIgZT10aGlzLl9maXRJbmZvO2UucG9zaXRpb25lZEJ5LnZlcnRpY2FsbHl8fCh0aGlzLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zdHlsZS50b3A9IjBweCIpLGUucG9zaXRpb25lZEJ5Lmhvcml6b250YWxseXx8KHRoaXMuc3R5bGUucG9zaXRpb249ImZpeGVkIix0aGlzLnN0eWxlLmxlZnQ9IjBweCIpLHRoaXMuc2l6aW5nVGFyZ2V0LnN0eWxlLmJveFNpemluZz0iYm9yZGVyLWJveCI7dmFyIHQ9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlLnNpemVkQnkuaGVpZ2h0fHx0aGlzLl9fc2l6ZURpbWVuc2lvbih0LGUucG9zaXRpb25lZEJ5LnZlcnRpY2FsbHksInRvcCIsImJvdHRvbSIsIkhlaWdodCIpLGUuc2l6ZWRCeS53aWR0aHx8dGhpcy5fX3NpemVEaW1lbnNpb24odCxlLnBvc2l0aW9uZWRCeS5ob3Jpem9udGFsbHksImxlZnQiLCJyaWdodCIsIldpZHRoIil9fSxfc2l6ZURpbWVuc2lvbjpmdW5jdGlvbihlLHQscixuLGkpe3RoaXMuX19zaXplRGltZW5zaW9uKGUsdCxyLG4saSl9LF9fc2l6ZURpbWVuc2lvbjpmdW5jdGlvbihlLHQscixuLGkpe3ZhciBvPXRoaXMuX2ZpdEluZm8sYT10aGlzLl9fZ2V0Tm9ybWFsaXplZFJlY3QodGhpcy5maXRJbnRvKSxzPWk9PT0iV2lkdGgiP2Eud2lkdGg6YS5oZWlnaHQsbD10PT09bixjPWw/cy1lW25dOmVbcl0sdT1vLm1hcmdpbltsP3I6bl0saD0ib2Zmc2V0IitpLGY9dGhpc1toXS10aGlzLnNpemluZ1RhcmdldFtoXTt0aGlzLnNpemluZ1RhcmdldC5zdHlsZVsibWF4IitpXT1zLXUtYy1mKyJweCJ9LGNlbnRlcjpmdW5jdGlvbigpe2lmKCF0aGlzLl9fc2hvdWxkUG9zaXRpb24pe3RoaXMuX2Rpc2NvdmVySW5mbygpO3ZhciBlPXRoaXMuX2ZpdEluZm8ucG9zaXRpb25lZEJ5O2lmKCEoZS52ZXJ0aWNhbGx5JiZlLmhvcml6b250YWxseSkpe3RoaXMuc3R5bGUucG9zaXRpb249ImZpeGVkIixlLnZlcnRpY2FsbHl8fCh0aGlzLnN0eWxlLnRvcD0iMHB4IiksZS5ob3Jpem9udGFsbHl8fCh0aGlzLnN0eWxlLmxlZnQ9IjBweCIpO3ZhciB0PXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj10aGlzLl9fZ2V0Tm9ybWFsaXplZFJlY3QodGhpcy5maXRJbnRvKTtpZighZS52ZXJ0aWNhbGx5KXt2YXIgbj1yLnRvcC10LnRvcCsoci5oZWlnaHQtdC5oZWlnaHQpLzI7dGhpcy5zdHlsZS50b3A9bisicHgifWlmKCFlLmhvcml6b250YWxseSl7dmFyIGk9ci5sZWZ0LXQubGVmdCsoci53aWR0aC10LndpZHRoKS8yO3RoaXMuc3R5bGUubGVmdD1pKyJweCJ9fX19LF9fZ2V0Tm9ybWFsaXplZFJlY3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fGU9PT13aW5kb3c/e3RvcDowLGxlZnQ6MCx3aWR0aDp3aW5kb3cuaW5uZXJXaWR0aCxoZWlnaHQ6d2luZG93LmlubmVySGVpZ2h0LHJpZ2h0OndpbmRvdy5pbm5lcldpZHRoLGJvdHRvbTp3aW5kb3cuaW5uZXJIZWlnaHR9OmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9LF9fZ2V0T2Zmc2NyZWVuQXJlYTpmdW5jdGlvbihlLHQscil7dmFyIG49TWF0aC5taW4oMCxlLnRvcCkrTWF0aC5taW4oMCxyLmJvdHRvbS0oZS50b3ArdC5oZWlnaHQpKSxpPU1hdGgubWluKDAsZS5sZWZ0KStNYXRoLm1pbigwLHIucmlnaHQtKGUubGVmdCt0LndpZHRoKSk7cmV0dXJuIE1hdGguYWJzKG4pKnQud2lkdGgrTWF0aC5hYnMoaSkqdC5oZWlnaHR9LF9fZ2V0UG9zaXRpb246ZnVuY3Rpb24oZSx0LHIsbixpLG8pe3ZhciBhPVt7dmVydGljYWxBbGlnbjoidG9wIixob3Jpem9udGFsQWxpZ246ImxlZnQiLHRvcDppLnRvcCt0aGlzLnZlcnRpY2FsT2Zmc2V0LGxlZnQ6aS5sZWZ0K3RoaXMuaG9yaXpvbnRhbE9mZnNldH0se3ZlcnRpY2FsQWxpZ246InRvcCIsaG9yaXpvbnRhbEFsaWduOiJyaWdodCIsdG9wOmkudG9wK3RoaXMudmVydGljYWxPZmZzZXQsbGVmdDppLnJpZ2h0LXIud2lkdGgtdGhpcy5ob3Jpem9udGFsT2Zmc2V0fSx7dmVydGljYWxBbGlnbjoiYm90dG9tIixob3Jpem9udGFsQWxpZ246ImxlZnQiLHRvcDppLmJvdHRvbS1yLmhlaWdodC10aGlzLnZlcnRpY2FsT2Zmc2V0LGxlZnQ6aS5sZWZ0K3RoaXMuaG9yaXpvbnRhbE9mZnNldH0se3ZlcnRpY2FsQWxpZ246ImJvdHRvbSIsaG9yaXpvbnRhbEFsaWduOiJyaWdodCIsdG9wOmkuYm90dG9tLXIuaGVpZ2h0LXRoaXMudmVydGljYWxPZmZzZXQsbGVmdDppLnJpZ2h0LXIud2lkdGgtdGhpcy5ob3Jpem9udGFsT2Zmc2V0fV07aWYodGhpcy5ub092ZXJsYXApe2Zvcih2YXIgcz0wLGw9YS5sZW5ndGg7czxsO3MrKyl7dmFyIGM9e307Zm9yKHZhciB1IGluIGFbc10pY1t1XT1hW3NdW3VdO2EucHVzaChjKX1hWzBdLnRvcD1hWzFdLnRvcCs9aS5oZWlnaHQsYVsyXS50b3A9YVszXS50b3AtPWkuaGVpZ2h0LGFbNF0ubGVmdD1hWzZdLmxlZnQrPWkud2lkdGgsYVs1XS5sZWZ0PWFbN10ubGVmdC09aS53aWR0aH10PXQ9PT0iYXV0byI/bnVsbDp0LGU9ZT09PSJhdXRvIj9udWxsOmUsKCFlfHxlPT09ImNlbnRlciIpJiYoYS5wdXNoKHt2ZXJ0aWNhbEFsaWduOiJ0b3AiLGhvcml6b250YWxBbGlnbjoiY2VudGVyIix0b3A6aS50b3ArdGhpcy52ZXJ0aWNhbE9mZnNldCsodGhpcy5ub092ZXJsYXA/aS5oZWlnaHQ6MCksbGVmdDppLmxlZnQtbi53aWR0aC8yK2kud2lkdGgvMit0aGlzLmhvcml6b250YWxPZmZzZXR9KSxhLnB1c2goe3ZlcnRpY2FsQWxpZ246ImJvdHRvbSIsaG9yaXpvbnRhbEFsaWduOiJjZW50ZXIiLHRvcDppLmJvdHRvbS1yLmhlaWdodC10aGlzLnZlcnRpY2FsT2Zmc2V0LSh0aGlzLm5vT3ZlcmxhcD9pLmhlaWdodDowKSxsZWZ0OmkubGVmdC1uLndpZHRoLzIraS53aWR0aC8yK3RoaXMuaG9yaXpvbnRhbE9mZnNldH0pKSwoIXR8fHQ9PT0ibWlkZGxlIikmJihhLnB1c2goe3ZlcnRpY2FsQWxpZ246Im1pZGRsZSIsaG9yaXpvbnRhbEFsaWduOiJsZWZ0Iix0b3A6aS50b3Atbi5oZWlnaHQvMitpLmhlaWdodC8yK3RoaXMudmVydGljYWxPZmZzZXQsbGVmdDppLmxlZnQrdGhpcy5ob3Jpem9udGFsT2Zmc2V0Kyh0aGlzLm5vT3ZlcmxhcD9pLndpZHRoOjApfSksYS5wdXNoKHt2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLGhvcml6b250YWxBbGlnbjoicmlnaHQiLHRvcDppLnRvcC1uLmhlaWdodC8yK2kuaGVpZ2h0LzIrdGhpcy52ZXJ0aWNhbE9mZnNldCxsZWZ0OmkucmlnaHQtci53aWR0aC10aGlzLmhvcml6b250YWxPZmZzZXQtKHRoaXMubm9PdmVybGFwP2kud2lkdGg6MCl9KSksdD09PSJtaWRkbGUiJiZlPT09ImNlbnRlciImJmEucHVzaCh7dmVydGljYWxBbGlnbjoibWlkZGxlIixob3Jpem9udGFsQWxpZ246ImNlbnRlciIsdG9wOmkudG9wLW4uaGVpZ2h0LzIraS5oZWlnaHQvMit0aGlzLnZlcnRpY2FsT2Zmc2V0LGxlZnQ6aS5sZWZ0LW4ud2lkdGgvMitpLndpZHRoLzIrdGhpcy5ob3Jpem9udGFsT2Zmc2V0fSk7Zm9yKHZhciBoLHM9MDtzPGEubGVuZ3RoO3MrKyl7dmFyIGY9YVtzXSxwPWYudmVydGljYWxBbGlnbj09PXQsZD1mLmhvcml6b250YWxBbGlnbj09PWU7aWYoIXRoaXMuZHluYW1pY0FsaWduJiYhdGhpcy5ub092ZXJsYXAmJnAmJmQpe2g9ZjticmVha312YXIgZz0oIXR8fHApJiYoIWV8fGQpO2lmKCEoIXRoaXMuZHluYW1pY0FsaWduJiYhZykpe2lmKGYub2Zmc2NyZWVuQXJlYT10aGlzLl9fZ2V0T2Zmc2NyZWVuQXJlYShmLHIsbyksZi5vZmZzY3JlZW5BcmVhPT09MCYmZyl7aD1mO2JyZWFrfWg9aHx8Zjt2YXIgXz1mLm9mZnNjcmVlbkFyZWEtaC5vZmZzY3JlZW5BcmVhOyhfPDB8fF89PT0wJiYocHx8ZCkpJiYoaD1mKX19cmV0dXJuIGh9fTt2YXIgJHg9RWxlbWVudC5wcm90b3R5cGUsUzk9JHgubWF0Y2hlc3x8JHgubWF0Y2hlc1NlbGVjdG9yfHwkeC5tb3pNYXRjaGVzU2VsZWN0b3J8fCR4Lm1zTWF0Y2hlc1NlbGVjdG9yfHwkeC5vTWF0Y2hlc1NlbGVjdG9yfHwkeC53ZWJraXRNYXRjaGVzU2VsZWN0b3IsZFc9Y2xhc3N7Z2V0VGFiYmFibGVOb2Rlcyh0KXt2YXIgcj1bXSxuPXRoaXMuX2NvbGxlY3RUYWJiYWJsZU5vZGVzKHQscik7cmV0dXJuIG4/dGhpcy5fc29ydEJ5VGFiSW5kZXgocik6cn1pc0ZvY3VzYWJsZSh0KXtyZXR1cm4gUzkuY2FsbCh0LCJpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgYnV0dG9uLCBvYmplY3QiKT9TOS5jYWxsKHQsIjpub3QoW2Rpc2FibGVkXSkiKTpTOS5jYWxsKHQsImFbaHJlZl0sIGFyZWFbaHJlZl0sIGlmcmFtZSwgW3RhYmluZGV4XSwgW2NvbnRlbnRFZGl0YWJsZV0iKX1pc1RhYmJhYmxlKHQpe3JldHVybiB0aGlzLmlzRm9jdXNhYmxlKHQpJiZTOS5jYWxsKHQsJzpub3QoW3RhYmluZGV4PSItMSJdKScpJiZ0aGlzLl9pc1Zpc2libGUodCl9X25vcm1hbGl6ZWRUYWJJbmRleCh0KXtpZih0aGlzLmlzRm9jdXNhYmxlKHQpKXt2YXIgcj10LmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKXx8MDtyZXR1cm4gTnVtYmVyKHIpfXJldHVybi0xfV9jb2xsZWN0VGFiYmFibGVOb2Rlcyh0LHIpe2lmKHQubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERSlyZXR1cm4hMTt2YXIgbj10O2lmKCF0aGlzLl9pc1Zpc2libGUobikpcmV0dXJuITE7dmFyIGk9dGhpcy5fbm9ybWFsaXplZFRhYkluZGV4KG4pLG89aT4wO2k+PTAmJnIucHVzaChuKTt2YXIgYTtuLmxvY2FsTmFtZT09PSJjb250ZW50Inx8bi5sb2NhbE5hbWU9PT0ic2xvdCI/YT16dChuKS5nZXREaXN0cmlidXRlZE5vZGVzKCk6YT16dChuLnJvb3R8fG4pLmNoaWxkcmVuO2Zvcih2YXIgcz0wO3M8YS5sZW5ndGg7cysrKW89dGhpcy5fY29sbGVjdFRhYmJhYmxlTm9kZXMoYVtzXSxyKXx8bztyZXR1cm4gb31faXNWaXNpYmxlKHQpe3ZhciByPXQuc3R5bGU7cmV0dXJuIHIudmlzaWJpbGl0eSE9PSJoaWRkZW4iJiZyLmRpc3BsYXkhPT0ibm9uZSI/KHI9d2luZG93LmdldENvbXB1dGVkU3R5bGUodCksci52aXNpYmlsaXR5IT09ImhpZGRlbiImJnIuZGlzcGxheSE9PSJub25lIik6ITF9X3NvcnRCeVRhYkluZGV4KHQpe3ZhciByPXQubGVuZ3RoO2lmKHI8MilyZXR1cm4gdDt2YXIgbj1NYXRoLmNlaWwoci8yKSxpPXRoaXMuX3NvcnRCeVRhYkluZGV4KHQuc2xpY2UoMCxuKSksbz10aGlzLl9zb3J0QnlUYWJJbmRleCh0LnNsaWNlKG4pKTtyZXR1cm4gdGhpcy5fbWVyZ2VTb3J0QnlUYWJJbmRleChpLG8pfV9tZXJnZVNvcnRCeVRhYkluZGV4KHQscil7Zm9yKHZhciBuPVtdO3QubGVuZ3RoPjAmJnIubGVuZ3RoPjA7KXRoaXMuX2hhc0xvd2VyVGFiT3JkZXIodFswXSxyWzBdKT9uLnB1c2goci5zaGlmdCgpKTpuLnB1c2godC5zaGlmdCgpKTtyZXR1cm4gbi5jb25jYXQodCxyKX1faGFzTG93ZXJUYWJPcmRlcih0LHIpe3ZhciBuPU1hdGgubWF4KHQudGFiSW5kZXgsMCksaT1NYXRoLm1heChyLnRhYkluZGV4LDApO3JldHVybiBuPT09MHx8aT09PTA/aT5uOm4+aX19LHgwdD1uZXcgZFc7WXQoe190ZW1wbGF0ZTpRYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pcm9uLW92ZXJsYXktYmFja2Ryb3AtYmFja2dyb3VuZC1jb2xvciwgIzAwMCk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgQGFwcGx5IC0taXJvbi1vdmVybGF5LWJhY2tkcm9wOwogICAgICB9CgogICAgICA6aG9zdCgub3BlbmVkKSB7CiAgICAgICAgb3BhY2l0eTogdmFyKC0taXJvbi1vdmVybGF5LWJhY2tkcm9wLW9wYWNpdHksIDAuNik7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgQGFwcGx5IC0taXJvbi1vdmVybGF5LWJhY2tkcm9wLW9wZW5lZDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8c2xvdD48L3Nsb3Q+CmAsaXM6Imlyb24tb3ZlcmxheS1iYWNrZHJvcCIscHJvcGVydGllczp7b3BlbmVkOntyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsdHlwZTpCb29sZWFuLHZhbHVlOiExLG9ic2VydmVyOiJfb3BlbmVkQ2hhbmdlZCJ9fSxsaXN0ZW5lcnM6e3RyYW5zaXRpb25lbmQ6Il9vblRyYW5zaXRpb25lbmQifSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5fX29wZW5lZFJhZj1udWxsfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMub3BlbmVkJiZ0aGlzLl9vcGVuZWRDaGFuZ2VkKHRoaXMub3BlbmVkKX0scHJlcGFyZTpmdW5jdGlvbigpe3RoaXMub3BlbmVkJiYhdGhpcy5wYXJlbnROb2RlJiZ6dChkb2N1bWVudC5ib2R5KS5hcHBlbmRDaGlsZCh0aGlzKX0sb3BlbjpmdW5jdGlvbigpe3RoaXMub3BlbmVkPSEwfSxjbG9zZTpmdW5jdGlvbigpe3RoaXMub3BlbmVkPSExfSxjb21wbGV0ZTpmdW5jdGlvbigpeyF0aGlzLm9wZW5lZCYmdGhpcy5wYXJlbnROb2RlPT09ZG9jdW1lbnQuYm9keSYmenQodGhpcy5wYXJlbnROb2RlKS5yZW1vdmVDaGlsZCh0aGlzKX0sX29uVHJhbnNpdGlvbmVuZDpmdW5jdGlvbihlKXtlJiZlLnRhcmdldD09PXRoaXMmJnRoaXMuY29tcGxldGUoKX0sX29wZW5lZENoYW5nZWQ6ZnVuY3Rpb24oZSl7aWYoZSl0aGlzLnByZXBhcmUoKTtlbHNle3ZhciB0PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpOyh0LnRyYW5zaXRpb25EdXJhdGlvbj09PSIwcyJ8fHQub3BhY2l0eT09MCkmJnRoaXMuY29tcGxldGUoKX0hdGhpcy5pc0F0dGFjaGVkfHwodGhpcy5fX29wZW5lZFJhZiYmKHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9fb3BlbmVkUmFmKSx0aGlzLl9fb3BlbmVkUmFmPW51bGwpLHRoaXMuc2Nyb2xsVG9wPXRoaXMuc2Nyb2xsVG9wLHRoaXMuX19vcGVuZWRSYWY9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3RoaXMuX19vcGVuZWRSYWY9bnVsbCx0aGlzLnRvZ2dsZUNsYXNzKCJvcGVuZWQiLHRoaXMub3BlbmVkKX0uYmluZCh0aGlzKSkpfX0pO3ZhciBtVz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX292ZXJsYXlzPVtdLHRoaXMuX21pbmltdW1aPTEwMSx0aGlzLl9iYWNrZHJvcEVsZW1lbnQ9bnVsbCxUbShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsInRhcCIsZnVuY3Rpb24oKXt9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0YXAiLHRoaXMuX29uQ2FwdHVyZUNsaWNrLmJpbmQodGhpcyksITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9vbkNhcHR1cmVGb2N1cy5iaW5kKHRoaXMpLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9vbkNhcHR1cmVLZXlEb3duLmJpbmQodGhpcyksITApfWdldCBiYWNrZHJvcEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fYmFja2Ryb3BFbGVtZW50fHwodGhpcy5fYmFja2Ryb3BFbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlyb24tb3ZlcmxheS1iYWNrZHJvcCIpKSx0aGlzLl9iYWNrZHJvcEVsZW1lbnR9Z2V0IGRlZXBBY3RpdmVFbGVtZW50KCl7dmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtmb3IoKCF0fHwhKHQgaW5zdGFuY2VvZiBFbGVtZW50KSkmJih0PWRvY3VtZW50LmJvZHkpO3Qucm9vdCYmenQodC5yb290KS5hY3RpdmVFbGVtZW50Oyl0PXp0KHQucm9vdCkuYWN0aXZlRWxlbWVudDtyZXR1cm4gdH1fYnJpbmdPdmVybGF5QXRJbmRleFRvRnJvbnQodCl7dmFyIHI9dGhpcy5fb3ZlcmxheXNbdF07aWYoISFyKXt2YXIgbj10aGlzLl9vdmVybGF5cy5sZW5ndGgtMSxpPXRoaXMuX292ZXJsYXlzW25dO2lmKGkmJnRoaXMuX3Nob3VsZEJlQmVoaW5kT3ZlcmxheShyLGkpJiZuLS0sISh0Pj1uKSl7dmFyIG89TWF0aC5tYXgodGhpcy5jdXJyZW50T3ZlcmxheVooKSx0aGlzLl9taW5pbXVtWik7Zm9yKHRoaXMuX2dldFoocik8PW8mJnRoaXMuX2FwcGx5T3ZlcmxheVoocixvKTt0PG47KXRoaXMuX292ZXJsYXlzW3RdPXRoaXMuX292ZXJsYXlzW3QrMV0sdCsrO3RoaXMuX292ZXJsYXlzW25dPXJ9fX1hZGRPclJlbW92ZU92ZXJsYXkodCl7dC5vcGVuZWQ/dGhpcy5hZGRPdmVybGF5KHQpOnRoaXMucmVtb3ZlT3ZlcmxheSh0KX1hZGRPdmVybGF5KHQpe3ZhciByPXRoaXMuX292ZXJsYXlzLmluZGV4T2YodCk7aWYocj49MCl7dGhpcy5fYnJpbmdPdmVybGF5QXRJbmRleFRvRnJvbnQociksdGhpcy50cmFja0JhY2tkcm9wKCk7cmV0dXJufXZhciBuPXRoaXMuX292ZXJsYXlzLmxlbmd0aCxpPXRoaXMuX292ZXJsYXlzW24tMV0sbz1NYXRoLm1heCh0aGlzLl9nZXRaKGkpLHRoaXMuX21pbmltdW1aKSxhPXRoaXMuX2dldFoodCk7aWYoaSYmdGhpcy5fc2hvdWxkQmVCZWhpbmRPdmVybGF5KHQsaSkpe3RoaXMuX2FwcGx5T3ZlcmxheVooaSxvKSxuLS07dmFyIHM9dGhpcy5fb3ZlcmxheXNbbi0xXTtvPU1hdGgubWF4KHRoaXMuX2dldFoocyksdGhpcy5fbWluaW11bVopfWE8PW8mJnRoaXMuX2FwcGx5T3ZlcmxheVoodCxvKSx0aGlzLl9vdmVybGF5cy5zcGxpY2UobiwwLHQpLHRoaXMudHJhY2tCYWNrZHJvcCgpfXJlbW92ZU92ZXJsYXkodCl7dmFyIHI9dGhpcy5fb3ZlcmxheXMuaW5kZXhPZih0KTtyIT09LTEmJih0aGlzLl9vdmVybGF5cy5zcGxpY2UociwxKSx0aGlzLnRyYWNrQmFja2Ryb3AoKSl9Y3VycmVudE92ZXJsYXkoKXt2YXIgdD10aGlzLl9vdmVybGF5cy5sZW5ndGgtMTtyZXR1cm4gdGhpcy5fb3ZlcmxheXNbdF19Y3VycmVudE92ZXJsYXlaKCl7cmV0dXJuIHRoaXMuX2dldFoodGhpcy5jdXJyZW50T3ZlcmxheSgpKX1lbnN1cmVNaW5pbXVtWih0KXt0aGlzLl9taW5pbXVtWj1NYXRoLm1heCh0aGlzLl9taW5pbXVtWix0KX1mb2N1c092ZXJsYXkoKXt2YXIgdD10aGlzLmN1cnJlbnRPdmVybGF5KCk7dCYmdC5fYXBwbHlGb2N1cygpfXRyYWNrQmFja2Ryb3AoKXt2YXIgdD10aGlzLl9vdmVybGF5V2l0aEJhY2tkcm9wKCk7IXQmJiF0aGlzLl9iYWNrZHJvcEVsZW1lbnR8fCh0aGlzLmJhY2tkcm9wRWxlbWVudC5zdHlsZS56SW5kZXg9dGhpcy5fZ2V0Wih0KS0xLHRoaXMuYmFja2Ryb3BFbGVtZW50Lm9wZW5lZD0hIXQsdGhpcy5iYWNrZHJvcEVsZW1lbnQucHJlcGFyZSgpKX1nZXRCYWNrZHJvcHMoKXtmb3IodmFyIHQ9W10scj0wO3I8dGhpcy5fb3ZlcmxheXMubGVuZ3RoO3IrKyl0aGlzLl9vdmVybGF5c1tyXS53aXRoQmFja2Ryb3AmJnQucHVzaCh0aGlzLl9vdmVybGF5c1tyXSk7cmV0dXJuIHR9YmFja2Ryb3BaKCl7cmV0dXJuIHRoaXMuX2dldFoodGhpcy5fb3ZlcmxheVdpdGhCYWNrZHJvcCgpKS0xfV9vdmVybGF5V2l0aEJhY2tkcm9wKCl7Zm9yKHZhciB0PXRoaXMuX292ZXJsYXlzLmxlbmd0aC0xO3Q+PTA7dC0tKWlmKHRoaXMuX292ZXJsYXlzW3RdLndpdGhCYWNrZHJvcClyZXR1cm4gdGhpcy5fb3ZlcmxheXNbdF19X2dldFoodCl7dmFyIHI9dGhpcy5fbWluaW11bVo7aWYodCl7dmFyIG49TnVtYmVyKHQuc3R5bGUuekluZGV4fHx3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS56SW5kZXgpO249PT1uJiYocj1uKX1yZXR1cm4gcn1fc2V0Wih0LHIpe3Quc3R5bGUuekluZGV4PXJ9X2FwcGx5T3ZlcmxheVoodCxyKXt0aGlzLl9zZXRaKHQscisyKX1fb3ZlcmxheUluUGF0aCh0KXt0PXR8fFtdO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWlmKHRbcl0uX21hbmFnZXI9PT10aGlzKXJldHVybiB0W3JdfV9vbkNhcHR1cmVDbGljayh0KXt2YXIgcj10aGlzLl9vdmVybGF5cy5sZW5ndGgtMTtpZihyIT09LTEpZm9yKHZhciBuPXp0KHQpLnBhdGgsaTsoaT10aGlzLl9vdmVybGF5c1tyXSkmJnRoaXMuX292ZXJsYXlJblBhdGgobikhPT1pJiYoaS5fb25DYXB0dXJlQ2xpY2sodCksaS5hbGxvd0NsaWNrVGhyb3VnaCk7KXItLX1fb25DYXB0dXJlRm9jdXModCl7dmFyIHI9dGhpcy5jdXJyZW50T3ZlcmxheSgpO3ImJnIuX29uQ2FwdHVyZUZvY3VzKHQpfV9vbkNhcHR1cmVLZXlEb3duKHQpe3ZhciByPXRoaXMuY3VycmVudE92ZXJsYXkoKTtyJiYoT28ua2V5Ym9hcmRFdmVudE1hdGNoZXNLZXlzKHQsImVzYyIpP3IuX29uQ2FwdHVyZUVzYyh0KTpPby5rZXlib2FyZEV2ZW50TWF0Y2hlc0tleXModCwidGFiIikmJnIuX29uQ2FwdHVyZVRhYih0KSl9X3Nob3VsZEJlQmVoaW5kT3ZlcmxheSh0LHIpe3JldHVybiF0LmFsd2F5c09uVG9wJiZyLmFsd2F5c09uVG9wfX0sYjB0PW5ldyBtVzt2YXIgRTk9e3BhZ2VYOjAscGFnZVk6MH0sdzB0PW51bGwsZ1c9W10sVDk9WyJ3aGVlbCIsIm1vdXNld2hlZWwiLCJET01Nb3VzZVNjcm9sbCIsInRvdWNoc3RhcnQiLCJ0b3VjaG1vdmUiXSxNOSxfVztmdW5jdGlvbiBTMHQoZSl7QWguaW5kZXhPZihlKT49MHx8KEFoLmxlbmd0aD09PTAmJkRiZSgpLEFoLnB1c2goZSksX1c9QWhbQWgubGVuZ3RoLTFdLEUwdD1bXSxUMHQ9W10pfWZ1bmN0aW9uIE0wdChlKXt2YXIgdD1BaC5pbmRleE9mKGUpO3QhPT0tMSYmKEFoLnNwbGljZSh0LDEpLF9XPUFoW0FoLmxlbmd0aC0xXSxFMHQ9W10sVDB0PVtdLEFoLmxlbmd0aD09PTAmJk9iZSgpKX12YXIgQWg9W10sRTB0PW51bGwsVDB0PW51bGw7ZnVuY3Rpb24gTmJlKGUpe2lmKGUuY2FuY2VsYWJsZSYmemJlKGUpJiZlLnByZXZlbnREZWZhdWx0KCksZS50YXJnZXRUb3VjaGVzKXt2YXIgdD1lLnRhcmdldFRvdWNoZXNbMF07RTkucGFnZVg9dC5wYWdlWCxFOS5wYWdlWT10LnBhZ2VZfX1mdW5jdGlvbiBEYmUoKXtNOT1NOXx8TmJlLmJpbmQodm9pZCAwKTtmb3IodmFyIGU9MCx0PVQ5Lmxlbmd0aDtlPHQ7ZSsrKWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoVDlbZV0sTTkse2NhcHR1cmU6ITAscGFzc2l2ZTohMX0pfWZ1bmN0aW9uIE9iZSgpe2Zvcih2YXIgZT0wLHQ9VDkubGVuZ3RoO2U8dDtlKyspZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihUOVtlXSxNOSx7Y2FwdHVyZTohMCxwYXNzaXZlOiExfSl9ZnVuY3Rpb24gemJlKGUpe3ZhciB0PXp0KGUpLnJvb3RUYXJnZXQ7aWYoZS50eXBlIT09InRvdWNobW92ZSImJncwdCE9PXQmJih3MHQ9dCxnVz1GYmUoenQoZSkucGF0aCkpLCFnVy5sZW5ndGgpcmV0dXJuITA7aWYoZS50eXBlPT09InRvdWNoc3RhcnQiKXJldHVybiExO3ZhciByPUhiZShlKTtyZXR1cm4hQmJlKGdXLHIuZGVsdGFYLHIuZGVsdGFZKX1mdW5jdGlvbiBGYmUoZSl7Zm9yKHZhciB0PVtdLHI9ZS5pbmRleE9mKF9XKSxuPTA7bjw9cjtuKyspaWYoZVtuXS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKXt2YXIgaT1lW25dLG89aS5zdHlsZTtvLm92ZXJmbG93IT09InNjcm9sbCImJm8ub3ZlcmZsb3chPT0iYXV0byImJihvPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGkpKSwoby5vdmVyZmxvdz09PSJzY3JvbGwifHxvLm92ZXJmbG93PT09ImF1dG8iKSYmdC5wdXNoKGkpfXJldHVybiB0fWZ1bmN0aW9uIEJiZShlLHQscil7aWYoISghdCYmIXIpKWZvcih2YXIgbj1NYXRoLmFicyhyKT49TWF0aC5hYnModCksaT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgbz1lW2ldLGE9ITE7aWYobj9hPXI8MD9vLnNjcm9sbFRvcD4wOm8uc2Nyb2xsVG9wPG8uc2Nyb2xsSGVpZ2h0LW8uY2xpZW50SGVpZ2h0OmE9dDwwP28uc2Nyb2xsTGVmdD4wOm8uc2Nyb2xsTGVmdDxvLnNjcm9sbFdpZHRoLW8uY2xpZW50V2lkdGgsYSlyZXR1cm4gb319ZnVuY3Rpb24gSGJlKGUpe3ZhciB0PXtkZWx0YVg6ZS5kZWx0YVgsZGVsdGFZOmUuZGVsdGFZfTtpZighKCJkZWx0YVgiaW4gZSkpe2lmKCJ3aGVlbERlbHRhWCJpbiBlJiYid2hlZWxEZWx0YVkiaW4gZSl0LmRlbHRhWD0tZS53aGVlbERlbHRhWCx0LmRlbHRhWT0tZS53aGVlbERlbHRhWTtlbHNlIGlmKCJ3aGVlbERlbHRhImluIGUpdC5kZWx0YVg9MCx0LmRlbHRhWT0tZS53aGVlbERlbHRhO2Vsc2UgaWYoImF4aXMiaW4gZSl0LmRlbHRhWD1lLmF4aXM9PT0xP2UuZGV0YWlsOjAsdC5kZWx0YVk9ZS5heGlzPT09Mj9lLmRldGFpbDowO2Vsc2UgaWYoZS50YXJnZXRUb3VjaGVzKXt2YXIgcj1lLnRhcmdldFRvdWNoZXNbMF07dC5kZWx0YVg9RTkucGFnZVgtci5wYWdlWCx0LmRlbHRhWT1FOS5wYWdlWS1yLnBhZ2VZfX1yZXR1cm4gdH12YXIgSW09e3Byb3BlcnRpZXM6e29wZW5lZDp7b2JzZXJ2ZXI6Il9vcGVuZWRDaGFuZ2VkIix0eXBlOkJvb2xlYW4sdmFsdWU6ITEsbm90aWZ5OiEwfSxjYW5jZWxlZDp7b2JzZXJ2ZXI6Il9jYW5jZWxlZENoYW5nZWQiLHJlYWRPbmx5OiEwLHR5cGU6Qm9vbGVhbix2YWx1ZTohMX0sd2l0aEJhY2tkcm9wOntvYnNlcnZlcjoiX3dpdGhCYWNrZHJvcENoYW5nZWQiLHR5cGU6Qm9vbGVhbn0sbm9BdXRvRm9jdXM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sbm9DYW5jZWxPbkVzY0tleTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxub0NhbmNlbE9uT3V0c2lkZUNsaWNrOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGNsb3NpbmdSZWFzb246e3R5cGU6T2JqZWN0fSxyZXN0b3JlRm9jdXNPbkNsb3NlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGFsbG93Q2xpY2tUaHJvdWdoOnt0eXBlOkJvb2xlYW59LGFsd2F5c09uVG9wOnt0eXBlOkJvb2xlYW59LHNjcm9sbEFjdGlvbjp7dHlwZTpTdHJpbmd9LF9tYW5hZ2VyOnt0eXBlOk9iamVjdCx2YWx1ZTpiMHR9LF9mb2N1c2VkQ2hpbGQ6e3R5cGU6T2JqZWN0fX0sbGlzdGVuZXJzOnsiaXJvbi1yZXNpemUiOiJfb25Jcm9uUmVzaXplIn0sb2JzZXJ2ZXJzOlsiX191cGRhdGVTY3JvbGxPYnNlcnZlcnMoaXNBdHRhY2hlZCwgb3BlbmVkLCBzY3JvbGxBY3Rpb24pIl0sZ2V0IGJhY2tkcm9wRWxlbWVudCgpe3JldHVybiB0aGlzLl9tYW5hZ2VyLmJhY2tkcm9wRWxlbWVudH0sZ2V0IF9mb2N1c05vZGUoKXtyZXR1cm4gdGhpcy5fZm9jdXNlZENoaWxkfHx6dCh0aGlzKS5xdWVyeVNlbGVjdG9yKCJbYXV0b2ZvY3VzXSIpfHx0aGlzfSxnZXQgX2ZvY3VzYWJsZU5vZGVzKCl7cmV0dXJuIHgwdC5nZXRUYWJiYWJsZU5vZGVzKHRoaXMpfSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuX19pc0FuaW1hdGluZz0hMSx0aGlzLl9fc2hvdWxkUmVtb3ZlVGFiSW5kZXg9ITEsdGhpcy5fX2ZpcnN0Rm9jdXNhYmxlTm9kZT10aGlzLl9fbGFzdEZvY3VzYWJsZU5vZGU9bnVsbCx0aGlzLl9fcmFmcz17fSx0aGlzLl9fcmVzdG9yZUZvY3VzTm9kZT1udWxsLHRoaXMuX19zY3JvbGxUb3A9dGhpcy5fX3Njcm9sbExlZnQ9bnVsbCx0aGlzLl9fb25DYXB0dXJlU2Nyb2xsPXRoaXMuX19vbkNhcHR1cmVTY3JvbGwuYmluZCh0aGlzKSx0aGlzLl9fcm9vdE5vZGVzPW51bGwsdGhpcy5fZW5zdXJlU2V0dXAoKX0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZCYmdGhpcy5fb3BlbmVkQ2hhbmdlZCh0aGlzLm9wZW5lZCksdGhpcy5fb2JzZXJ2ZXI9enQodGhpcykub2JzZXJ2ZU5vZGVzKHRoaXMuX29uTm9kZXNDaGFuZ2UpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX29ic2VydmVyJiZ6dCh0aGlzKS51bm9ic2VydmVOb2Rlcyh0aGlzLl9vYnNlcnZlciksdGhpcy5fb2JzZXJ2ZXI9bnVsbDtmb3IodmFyIGUgaW4gdGhpcy5fX3JhZnMpdGhpcy5fX3JhZnNbZV0hPT1udWxsJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9fcmFmc1tlXSk7dGhpcy5fX3JhZnM9e30sdGhpcy5fbWFuYWdlci5yZW1vdmVPdmVybGF5KHRoaXMpLHRoaXMuX19pc0FuaW1hdGluZyYmKHRoaXMub3BlbmVkP3RoaXMuX2ZpbmlzaFJlbmRlck9wZW5lZCgpOih0aGlzLl9hcHBseUZvY3VzKCksdGhpcy5fZmluaXNoUmVuZGVyQ2xvc2VkKCkpKX0sdG9nZ2xlOmZ1bmN0aW9uKCl7dGhpcy5fc2V0Q2FuY2VsZWQoITEpLHRoaXMub3BlbmVkPSF0aGlzLm9wZW5lZH0sb3BlbjpmdW5jdGlvbigpe3RoaXMuX3NldENhbmNlbGVkKCExKSx0aGlzLm9wZW5lZD0hMH0sY2xvc2U6ZnVuY3Rpb24oKXt0aGlzLl9zZXRDYW5jZWxlZCghMSksdGhpcy5vcGVuZWQ9ITF9LGNhbmNlbDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmZpcmUoImlyb24tb3ZlcmxheS1jYW5jZWxlZCIsZSx7Y2FuY2VsYWJsZTohMH0pO3QuZGVmYXVsdFByZXZlbnRlZHx8KHRoaXMuX3NldENhbmNlbGVkKCEwKSx0aGlzLm9wZW5lZD0hMSl9LGludmFsaWRhdGVUYWJiYWJsZXM6ZnVuY3Rpb24oKXt0aGlzLl9fZmlyc3RGb2N1c2FibGVOb2RlPXRoaXMuX19sYXN0Rm9jdXNhYmxlTm9kZT1udWxsfSxfZW5zdXJlU2V0dXA6ZnVuY3Rpb24oKXt0aGlzLl9vdmVybGF5U2V0dXB8fCh0aGlzLl9vdmVybGF5U2V0dXA9ITAsdGhpcy5zdHlsZS5vdXRsaW5lPSJub25lIix0aGlzLnN0eWxlLmRpc3BsYXk9Im5vbmUiKX0sX29wZW5lZENoYW5nZWQ6ZnVuY3Rpb24oZSl7ZT90aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKTp0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIiksdGhpcy5pc0F0dGFjaGVkJiYodGhpcy5fX2lzQW5pbWF0aW5nPSEwLHRoaXMuX19kZXJhZigiX19vcGVuZWRDaGFuZ2VkIix0aGlzLl9fb3BlbmVkQ2hhbmdlZCkpfSxfY2FuY2VsZWRDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5jbG9zaW5nUmVhc29uPXRoaXMuY2xvc2luZ1JlYXNvbnx8e30sdGhpcy5jbG9zaW5nUmVhc29uLmNhbmNlbGVkPXRoaXMuY2FuY2VsZWR9LF93aXRoQmFja2Ryb3BDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy53aXRoQmFja2Ryb3AmJiF0aGlzLmhhc0F0dHJpYnV0ZSgidGFiaW5kZXgiKT8odGhpcy5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiLTEiKSx0aGlzLl9fc2hvdWxkUmVtb3ZlVGFiSW5kZXg9ITApOnRoaXMuX19zaG91bGRSZW1vdmVUYWJJbmRleCYmKHRoaXMucmVtb3ZlQXR0cmlidXRlKCJ0YWJpbmRleCIpLHRoaXMuX19zaG91bGRSZW1vdmVUYWJJbmRleD0hMSksdGhpcy5vcGVuZWQmJnRoaXMuaXNBdHRhY2hlZCYmdGhpcy5fbWFuYWdlci50cmFja0JhY2tkcm9wKCl9LF9wcmVwYXJlUmVuZGVyT3BlbmVkOmZ1bmN0aW9uKCl7dGhpcy5fX3Jlc3RvcmVGb2N1c05vZGU9dGhpcy5fbWFuYWdlci5kZWVwQWN0aXZlRWxlbWVudCx0aGlzLl9wcmVwYXJlUG9zaXRpb25pbmcoKSx0aGlzLnJlZml0KCksdGhpcy5fZmluaXNoUG9zaXRpb25pbmcoKSx0aGlzLm5vQXV0b0ZvY3VzJiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dGhpcy5fZm9jdXNOb2RlJiYodGhpcy5fZm9jdXNOb2RlLmJsdXIoKSx0aGlzLl9fcmVzdG9yZUZvY3VzTm9kZS5mb2N1cygpKX0sX3JlbmRlck9wZW5lZDpmdW5jdGlvbigpe3RoaXMuX2ZpbmlzaFJlbmRlck9wZW5lZCgpfSxfcmVuZGVyQ2xvc2VkOmZ1bmN0aW9uKCl7dGhpcy5fZmluaXNoUmVuZGVyQ2xvc2VkKCl9LF9maW5pc2hSZW5kZXJPcGVuZWQ6ZnVuY3Rpb24oKXt0aGlzLm5vdGlmeVJlc2l6ZSgpLHRoaXMuX19pc0FuaW1hdGluZz0hMSx0aGlzLmZpcmUoImlyb24tb3ZlcmxheS1vcGVuZWQiKX0sX2ZpbmlzaFJlbmRlckNsb3NlZDpmdW5jdGlvbigpe3RoaXMuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5zdHlsZS56SW5kZXg9IiIsdGhpcy5ub3RpZnlSZXNpemUoKSx0aGlzLl9faXNBbmltYXRpbmc9ITEsdGhpcy5maXJlKCJpcm9uLW92ZXJsYXktY2xvc2VkIix0aGlzLmNsb3NpbmdSZWFzb24pfSxfcHJlcGFyZVBvc2l0aW9uaW5nOmZ1bmN0aW9uKCl7dGhpcy5zdHlsZS50cmFuc2l0aW9uPXRoaXMuc3R5bGUud2Via2l0VHJhbnNpdGlvbj0ibm9uZSIsdGhpcy5zdHlsZS50cmFuc2Zvcm09dGhpcy5zdHlsZS53ZWJraXRUcmFuc2Zvcm09Im5vbmUiLHRoaXMuc3R5bGUuZGlzcGxheT0iIn0sX2ZpbmlzaFBvc2l0aW9uaW5nOmZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnNjcm9sbFRvcD10aGlzLnNjcm9sbFRvcCx0aGlzLnN0eWxlLnRyYW5zaXRpb249dGhpcy5zdHlsZS53ZWJraXRUcmFuc2l0aW9uPSIiLHRoaXMuc3R5bGUudHJhbnNmb3JtPXRoaXMuc3R5bGUud2Via2l0VHJhbnNmb3JtPSIiLHRoaXMuc3R5bGUuZGlzcGxheT0iIix0aGlzLnNjcm9sbFRvcD10aGlzLnNjcm9sbFRvcH0sX2FwcGx5Rm9jdXM6ZnVuY3Rpb24oKXtpZih0aGlzLm9wZW5lZCl0aGlzLm5vQXV0b0ZvY3VzfHx0aGlzLl9mb2N1c05vZGUuZm9jdXMoKTtlbHNle2lmKHRoaXMucmVzdG9yZUZvY3VzT25DbG9zZSYmdGhpcy5fX3Jlc3RvcmVGb2N1c05vZGUpe3ZhciBlPXRoaXMuX21hbmFnZXIuZGVlcEFjdGl2ZUVsZW1lbnQ7KGU9PT1kb2N1bWVudC5ib2R5fHxVYmUodGhpcyxlKSkmJnRoaXMuX19yZXN0b3JlRm9jdXNOb2RlLmZvY3VzKCl9dGhpcy5fX3Jlc3RvcmVGb2N1c05vZGU9bnVsbCx0aGlzLl9mb2N1c05vZGUuYmx1cigpLHRoaXMuX2ZvY3VzZWRDaGlsZD1udWxsfX0sX29uQ2FwdHVyZUNsaWNrOmZ1bmN0aW9uKGUpe3RoaXMubm9DYW5jZWxPbk91dHNpZGVDbGlja3x8dGhpcy5jYW5jZWwoZSl9LF9vbkNhcHR1cmVGb2N1czpmdW5jdGlvbihlKXtpZighIXRoaXMud2l0aEJhY2tkcm9wKXt2YXIgdD16dChlKS5wYXRoO3QuaW5kZXhPZih0aGlzKT09PS0xPyhlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX2FwcGx5Rm9jdXMoKSk6dGhpcy5fZm9jdXNlZENoaWxkPXRbMF19fSxfb25DYXB0dXJlRXNjOmZ1bmN0aW9uKGUpe3RoaXMubm9DYW5jZWxPbkVzY0tleXx8dGhpcy5jYW5jZWwoZSl9LF9vbkNhcHR1cmVUYWI6ZnVuY3Rpb24oZSl7aWYoISF0aGlzLndpdGhCYWNrZHJvcCl7dGhpcy5fX2Vuc3VyZUZpcnN0TGFzdEZvY3VzYWJsZXMoKTt2YXIgdD1lLnNoaWZ0S2V5LHI9dD90aGlzLl9fZmlyc3RGb2N1c2FibGVOb2RlOnRoaXMuX19sYXN0Rm9jdXNhYmxlTm9kZSxuPXQ/dGhpcy5fX2xhc3RGb2N1c2FibGVOb2RlOnRoaXMuX19maXJzdEZvY3VzYWJsZU5vZGUsaT0hMTtpZihyPT09bilpPSEwO2Vsc2V7dmFyIG89dGhpcy5fbWFuYWdlci5kZWVwQWN0aXZlRWxlbWVudDtpPW89PT1yfHxvPT09dGhpc31pJiYoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzZWRDaGlsZD1uLHRoaXMuX2FwcGx5Rm9jdXMoKSl9fSxfb25Jcm9uUmVzaXplOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQmJiF0aGlzLl9faXNBbmltYXRpbmcmJnRoaXMuX19kZXJhZigicmVmaXQiLHRoaXMucmVmaXQpfSxfb25Ob2Rlc0NoYW5nZTpmdW5jdGlvbigpe3RoaXMub3BlbmVkJiYhdGhpcy5fX2lzQW5pbWF0aW5nJiYodGhpcy5pbnZhbGlkYXRlVGFiYmFibGVzKCksdGhpcy5ub3RpZnlSZXNpemUoKSl9LF9fZW5zdXJlRmlyc3RMYXN0Rm9jdXNhYmxlczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX2ZvY3VzYWJsZU5vZGVzO3RoaXMuX19maXJzdEZvY3VzYWJsZU5vZGU9ZVswXSx0aGlzLl9fbGFzdEZvY3VzYWJsZU5vZGU9ZVtlLmxlbmd0aC0xXX0sX19vcGVuZWRDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQ/KHRoaXMuX3ByZXBhcmVSZW5kZXJPcGVuZWQoKSx0aGlzLl9tYW5hZ2VyLmFkZE92ZXJsYXkodGhpcyksdGhpcy5fYXBwbHlGb2N1cygpLHRoaXMuX3JlbmRlck9wZW5lZCgpKToodGhpcy5fbWFuYWdlci5yZW1vdmVPdmVybGF5KHRoaXMpLHRoaXMuX2FwcGx5Rm9jdXMoKSx0aGlzLl9yZW5kZXJDbG9zZWQoKSl9LF9fZGVyYWY6ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLl9fcmFmcztyW2VdIT09bnVsbCYmY2FuY2VsQW5pbWF0aW9uRnJhbWUocltlXSkscltlXT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyW2VdPW51bGwsdC5jYWxsKHRoaXMpfS5iaW5kKHRoaXMpKX0sX191cGRhdGVTY3JvbGxPYnNlcnZlcnM6ZnVuY3Rpb24oZSx0LHIpeyFlfHwhdHx8IXRoaXMuX19pc1ZhbGlkU2Nyb2xsQWN0aW9uKHIpPyhNMHQodGhpcyksdGhpcy5fX3JlbW92ZVNjcm9sbExpc3RlbmVycygpKToocj09PSJsb2NrIiYmKHRoaXMuX19zYXZlU2Nyb2xsUG9zaXRpb24oKSxTMHQodGhpcykpLHRoaXMuX19hZGRTY3JvbGxMaXN0ZW5lcnMoKSl9LF9fYWRkU2Nyb2xsTGlzdGVuZXJzOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX19yb290Tm9kZXMpe2lmKHRoaXMuX19yb290Tm9kZXM9W10sdV8pZm9yKHZhciBlPXRoaXM7ZTspZS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSYmZS5ob3N0JiZ0aGlzLl9fcm9vdE5vZGVzLnB1c2goZSksZT1lLmhvc3R8fGUuYXNzaWduZWRTbG90fHxlLnBhcmVudE5vZGU7dGhpcy5fX3Jvb3ROb2Rlcy5wdXNoKGRvY3VtZW50KX10aGlzLl9fcm9vdE5vZGVzLmZvckVhY2goZnVuY3Rpb24odCl7dC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX19vbkNhcHR1cmVTY3JvbGwse2NhcHR1cmU6ITAscGFzc2l2ZTohMH0pfSx0aGlzKX0sX19yZW1vdmVTY3JvbGxMaXN0ZW5lcnM6ZnVuY3Rpb24oKXt0aGlzLl9fcm9vdE5vZGVzJiZ0aGlzLl9fcm9vdE5vZGVzLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX19vbkNhcHR1cmVTY3JvbGwse2NhcHR1cmU6ITAscGFzc2l2ZTohMH0pfSx0aGlzKSx0aGlzLmlzQXR0YWNoZWR8fCh0aGlzLl9fcm9vdE5vZGVzPW51bGwpfSxfX2lzVmFsaWRTY3JvbGxBY3Rpb246ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT0ibG9jayJ8fGU9PT0icmVmaXQifHxlPT09ImNhbmNlbCJ9LF9fb25DYXB0dXJlU2Nyb2xsOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLl9faXNBbmltYXRpbmcmJiEoenQoZSkucGF0aC5pbmRleE9mKHRoaXMpPj0wKSlzd2l0Y2godGhpcy5zY3JvbGxBY3Rpb24pe2Nhc2UibG9jayI6dGhpcy5fX3Jlc3RvcmVTY3JvbGxQb3NpdGlvbigpO2JyZWFrO2Nhc2UicmVmaXQiOnRoaXMuX19kZXJhZigicmVmaXQiLHRoaXMucmVmaXQpO2JyZWFrO2Nhc2UiY2FuY2VsIjp0aGlzLmNhbmNlbChlKTticmVha319LF9fc2F2ZVNjcm9sbFBvc2l0aW9uOmZ1bmN0aW9uKCl7ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudD8odGhpcy5fX3Njcm9sbFRvcD1kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCx0aGlzLl9fc2Nyb2xsTGVmdD1kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQpOih0aGlzLl9fc2Nyb2xsVG9wPU1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AsZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApLHRoaXMuX19zY3JvbGxMZWZ0PU1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0LGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCkpfSxfX3Jlc3RvcmVTY3JvbGxQb3NpdGlvbjpmdW5jdGlvbigpe2RvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQ/KGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wPXRoaXMuX19zY3JvbGxUb3AsZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0PXRoaXMuX19zY3JvbGxMZWZ0KTooZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcD1kb2N1bWVudC5ib2R5LnNjcm9sbFRvcD10aGlzLl9fc2Nyb2xsVG9wLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0PWRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdD10aGlzLl9fc2Nyb2xsTGVmdCl9fSxWYmU9ZT0+ZS5hc3NpZ25lZFNsb3R8fGUucGFyZW50Tm9kZXx8ZS5ob3N0LFViZT0oZSx0KT0+e2ZvcihsZXQgcj10O3I7cj1WYmUocikpaWYocj09PWUpcmV0dXJuITA7cmV0dXJuITF9LEt4PVt2MHQsUXMsSW1dO3ZhciB5Vz17aG9zdEF0dHJpYnV0ZXM6e3JvbGU6ImRpYWxvZyIsdGFiaW5kZXg6Ii0xIn0scHJvcGVydGllczp7bW9kYWw6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX19yZWFkaWVkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9fSxvYnNlcnZlcnM6WyJfbW9kYWxDaGFuZ2VkKG1vZGFsLCBfX3JlYWRpZWQpIl0sbGlzdGVuZXJzOnt0YXA6Il9vbkRpYWxvZ0NsaWNrIn0scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLl9fcHJldk5vQ2FuY2VsT25PdXRzaWRlQ2xpY2s9dGhpcy5ub0NhbmNlbE9uT3V0c2lkZUNsaWNrLHRoaXMuX19wcmV2Tm9DYW5jZWxPbkVzY0tleT10aGlzLm5vQ2FuY2VsT25Fc2NLZXksdGhpcy5fX3ByZXZXaXRoQmFja2Ryb3A9dGhpcy53aXRoQmFja2Ryb3AsdGhpcy5fX3JlYWRpZWQ9ITB9LF9tb2RhbENoYW5nZWQ6ZnVuY3Rpb24oZSx0KXshdHx8KGU/KHRoaXMuX19wcmV2Tm9DYW5jZWxPbk91dHNpZGVDbGljaz10aGlzLm5vQ2FuY2VsT25PdXRzaWRlQ2xpY2ssdGhpcy5fX3ByZXZOb0NhbmNlbE9uRXNjS2V5PXRoaXMubm9DYW5jZWxPbkVzY0tleSx0aGlzLl9fcHJldldpdGhCYWNrZHJvcD10aGlzLndpdGhCYWNrZHJvcCx0aGlzLm5vQ2FuY2VsT25PdXRzaWRlQ2xpY2s9ITAsdGhpcy5ub0NhbmNlbE9uRXNjS2V5PSEwLHRoaXMud2l0aEJhY2tkcm9wPSEwKToodGhpcy5ub0NhbmNlbE9uT3V0c2lkZUNsaWNrPXRoaXMubm9DYW5jZWxPbk91dHNpZGVDbGljayYmdGhpcy5fX3ByZXZOb0NhbmNlbE9uT3V0c2lkZUNsaWNrLHRoaXMubm9DYW5jZWxPbkVzY0tleT10aGlzLm5vQ2FuY2VsT25Fc2NLZXkmJnRoaXMuX19wcmV2Tm9DYW5jZWxPbkVzY0tleSx0aGlzLndpdGhCYWNrZHJvcD10aGlzLndpdGhCYWNrZHJvcCYmdGhpcy5fX3ByZXZXaXRoQmFja2Ryb3ApKX0sX3VwZGF0ZUNsb3NpbmdSZWFzb25Db25maXJtZWQ6ZnVuY3Rpb24oZSl7dGhpcy5jbG9zaW5nUmVhc29uPXRoaXMuY2xvc2luZ1JlYXNvbnx8e30sdGhpcy5jbG9zaW5nUmVhc29uLmNvbmZpcm1lZD1lfSxfb25EaWFsb2dDbGljazpmdW5jdGlvbihlKXtmb3IodmFyIHQ9enQoZSkucGF0aCxyPTAsbj10LmluZGV4T2YodGhpcyk7cjxuO3IrKyl7dmFyIGk9dFtyXTtpZihpLmhhc0F0dHJpYnV0ZSYmKGkuaGFzQXR0cmlidXRlKCJkaWFsb2ctZGlzbWlzcyIpfHxpLmhhc0F0dHJpYnV0ZSgiZGlhbG9nLWNvbmZpcm0iKSkpe3RoaXMuX3VwZGF0ZUNsb3NpbmdSZWFzb25Db25maXJtZWQoaS5oYXNBdHRyaWJ1dGUoImRpYWxvZy1jb25maXJtIikpLHRoaXMuY2xvc2UoKSxlLnN0b3BQcm9wYWdhdGlvbigpO2JyZWFrfX19fSxDMHQ9W0t4LHlXXTtZdCh7X3RlbXBsYXRlOlFgCiAgICA8c3R5bGUgaW5jbHVkZT0icGFwZXItZGlhbG9nLXNoYXJlZC1zdHlsZXMiPjwvc3R5bGU+CiAgICA8c2xvdD48L3Nsb3Q+CmAsaXM6InBhcGVyLWRpYWxvZyIsYmVoYXZpb3JzOltDMHQsYjldLGxpc3RlbmVyczp7Im5lb24tYW5pbWF0aW9uLWZpbmlzaCI6Il9vbk5lb25BbmltYXRpb25GaW5pc2gifSxfcmVuZGVyT3BlbmVkOmZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxBbmltYXRpb24oKSx0aGlzLnBsYXlBbmltYXRpb24oImVudHJ5Iil9LF9yZW5kZXJDbG9zZWQ6ZnVuY3Rpb24oKXt0aGlzLmNhbmNlbEFuaW1hdGlvbigpLHRoaXMucGxheUFuaW1hdGlvbigiZXhpdCIpfSxfb25OZW9uQW5pbWF0aW9uRmluaXNoOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQ/dGhpcy5fZmluaXNoUmVuZGVyT3BlbmVkKCk6dGhpcy5fZmluaXNoUmVuZGVyQ2xvc2VkKCl9fSk7WXQoe190ZW1wbGF0ZTpRYAogICAgPHN0eWxlPgoKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIEBhcHBseSAtLWxheW91dC1yZWxhdGl2ZTsKICAgICAgfQoKICAgICAgOmhvc3QoLmlzLXNjcm9sbGVkOm5vdCg6Zmlyc3QtY2hpbGQpKTo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGl2aWRlci1jb2xvcik7CiAgICAgIH0KCiAgICAgIDpob3N0KC5jYW4tc2Nyb2xsOm5vdCguc2Nyb2xsZWQtdG8tYm90dG9tKTpub3QoOmxhc3QtY2hpbGQpKTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kaXZpZGVyLWNvbG9yKTsKICAgICAgfQoKICAgICAgLnNjcm9sbGFibGUgewogICAgICAgIHBhZGRpbmc6IDAgMjRweDsKCiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LXNjcm9sbDsKICAgICAgICBAYXBwbHkgLS1wYXBlci1kaWFsb2ctc2Nyb2xsYWJsZTsKICAgICAgfQoKICAgICAgLmZpdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZpdDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGlkPSJzY3JvbGxhYmxlIiBjbGFzcz0ic2Nyb2xsYWJsZSIgb24tc2Nyb2xsPSJ1cGRhdGVTY3JvbGxTdGF0ZSI+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIDwvZGl2PgpgLGlzOiJwYXBlci1kaWFsb2ctc2Nyb2xsYWJsZSIscHJvcGVydGllczp7ZGlhbG9nRWxlbWVudDp7dHlwZTpPYmplY3R9fSxnZXQgc2Nyb2xsVGFyZ2V0KCl7cmV0dXJuIHRoaXMuJC5zY3JvbGxhYmxlfSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuX2Vuc3VyZVRhcmdldCgpLHRoaXMuY2xhc3NMaXN0LmFkZCgibm8tcGFkZGluZyIpfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX2Vuc3VyZVRhcmdldCgpLHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnVwZGF0ZVNjcm9sbFN0YXRlLmJpbmQodGhpcykpfSx1cGRhdGVTY3JvbGxTdGF0ZTpmdW5jdGlvbigpe3RoaXMudG9nZ2xlQ2xhc3MoImlzLXNjcm9sbGVkIix0aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxUb3A+MCksdGhpcy50b2dnbGVDbGFzcygiY2FuLXNjcm9sbCIsdGhpcy5zY3JvbGxUYXJnZXQub2Zmc2V0SGVpZ2h0PHRoaXMuc2Nyb2xsVGFyZ2V0LnNjcm9sbEhlaWdodCksdGhpcy50b2dnbGVDbGFzcygic2Nyb2xsZWQtdG8tYm90dG9tIix0aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxUb3ArdGhpcy5zY3JvbGxUYXJnZXQub2Zmc2V0SGVpZ2h0Pj10aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxIZWlnaHQpfSxfZW5zdXJlVGFyZ2V0OmZ1bmN0aW9uKCl7dGhpcy5kaWFsb2dFbGVtZW50PXRoaXMuZGlhbG9nRWxlbWVudHx8dGhpcy5wYXJlbnRFbGVtZW50LHRoaXMuZGlhbG9nRWxlbWVudCYmdGhpcy5kaWFsb2dFbGVtZW50LmJlaGF2aW9ycyYmdGhpcy5kaWFsb2dFbGVtZW50LmJlaGF2aW9ycy5pbmRleE9mKHlXKT49MD8odGhpcy5kaWFsb2dFbGVtZW50LnNpemluZ1RhcmdldD10aGlzLnNjcm9sbFRhcmdldCx0aGlzLnNjcm9sbFRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCJmaXQiKSk6dGhpcy5kaWFsb2dFbGVtZW50JiZ0aGlzLnNjcm9sbFRhcmdldC5jbGFzc0xpc3QuYWRkKCJmaXQiKX19KTt2YXIgZWM9WXQoe190ZW1wbGF0ZTpRYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBjbGlwOiByZWN0KDBweCwwcHgsMHB4LDBweCk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGFyaWEtbGl2ZSQ9IltbbW9kZV1dIj5bW190ZXh0XV08L2Rpdj4KYCxpczoiaXJvbi1hMTF5LWFubm91bmNlciIscHJvcGVydGllczp7bW9kZTp7dHlwZTpTdHJpbmcsdmFsdWU6InBvbGl0ZSJ9LHRpbWVvdXQ6e3R5cGU6TnVtYmVyLHZhbHVlOjE1MH0sX3RleHQ6e3R5cGU6U3RyaW5nLHZhbHVlOiIifX0sY3JlYXRlZDpmdW5jdGlvbigpe2VjLmluc3RhbmNlfHwoZWMuaW5zdGFuY2U9dGhpcyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiaXJvbi1hbm5vdW5jZSIsdGhpcy5fb25Jcm9uQW5ub3VuY2UuYmluZCh0aGlzKSl9LGFubm91bmNlOmZ1bmN0aW9uKGUpe3RoaXMuX3RleHQ9IiIsdGhpcy5hc3luYyhmdW5jdGlvbigpe3RoaXMuX3RleHQ9ZX0sdGhpcy50aW1lb3V0KX0sX29uSXJvbkFubm91bmNlOmZ1bmN0aW9uKGUpe2UuZGV0YWlsJiZlLmRldGFpbC50ZXh0JiZ0aGlzLmFubm91bmNlKGUuZGV0YWlsLnRleHQpfX0pO2VjLmluc3RhbmNlPW51bGw7ZWMucmVxdWVzdEF2YWlsYWJpbGl0eT1mdW5jdGlvbigpe2VjLmluc3RhbmNlfHwoZWMuaW5zdGFuY2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaXJvbi1hMTF5LWFubm91bmNlciIpKSxkb2N1bWVudC5ib2R5P2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWMuaW5zdGFuY2UpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlYy5pbnN0YW5jZSl9KX07WXQoe190ZW1wbGF0ZTpRYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPHNsb3QgaWQ9ImNvbnRlbnQiPjwvc2xvdD4KYCxpczoiaXJvbi1pbnB1dCIsYmVoYXZpb3JzOltDaF0scHJvcGVydGllczp7YmluZFZhbHVlOnt0eXBlOlN0cmluZyx2YWx1ZToiIn0sdmFsdWU6e3R5cGU6U3RyaW5nLGNvbXB1dGVkOiJfY29tcHV0ZVZhbHVlKGJpbmRWYWx1ZSkifSxhbGxvd2VkUGF0dGVybjp7dHlwZTpTdHJpbmd9LGF1dG9WYWxpZGF0ZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxfaW5wdXRFbGVtZW50Ok9iamVjdH0sb2JzZXJ2ZXJzOlsiX2JpbmRWYWx1ZUNoYW5nZWQoYmluZFZhbHVlLCBfaW5wdXRFbGVtZW50KSJdLGxpc3RlbmVyczp7aW5wdXQ6Il9vbklucHV0IixrZXlwcmVzczoiX29uS2V5cHJlc3MifSxjcmVhdGVkOmZ1bmN0aW9uKCl7ZWMucmVxdWVzdEF2YWlsYWJpbGl0eSgpLHRoaXMuX3ByZXZpb3VzVmFsaWRJbnB1dD0iIix0aGlzLl9wYXR0ZXJuQWxyZWFkeUNoZWNrZWQ9ITF9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fb2JzZXJ2ZXI9enQodGhpcykub2JzZXJ2ZU5vZGVzKGZ1bmN0aW9uKGUpe3RoaXMuX2luaXRTbG90dGVkSW5wdXQoKX0uYmluZCh0aGlzKSl9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fb2JzZXJ2ZXImJih6dCh0aGlzKS51bm9ic2VydmVOb2Rlcyh0aGlzLl9vYnNlcnZlciksdGhpcy5fb2JzZXJ2ZXI9bnVsbCl9LGdldCBpbnB1dEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5faW5wdXRFbGVtZW50fSxfaW5pdFNsb3R0ZWRJbnB1dDpmdW5jdGlvbigpe3RoaXMuX2lucHV0RWxlbWVudD10aGlzLmdldEVmZmVjdGl2ZUNoaWxkcmVuKClbMF0sdGhpcy5pbnB1dEVsZW1lbnQmJnRoaXMuaW5wdXRFbGVtZW50LnZhbHVlJiYodGhpcy5iaW5kVmFsdWU9dGhpcy5pbnB1dEVsZW1lbnQudmFsdWUpLHRoaXMuZmlyZSgiaXJvbi1pbnB1dC1yZWFkeSIpfSxnZXQgX3BhdHRlcm5SZWdFeHAoKXt2YXIgZTtpZih0aGlzLmFsbG93ZWRQYXR0ZXJuKWU9bmV3IFJlZ0V4cCh0aGlzLmFsbG93ZWRQYXR0ZXJuKTtlbHNlIHN3aXRjaCh0aGlzLmlucHV0RWxlbWVudC50eXBlKXtjYXNlIm51bWJlciI6ZT0vWzAtOS4sZS1dLzticmVha31yZXR1cm4gZX0sX2JpbmRWYWx1ZUNoYW5nZWQ6ZnVuY3Rpb24oZSx0KXshdHx8KGU9PT12b2lkIDA/dC52YWx1ZT1udWxsOmUhPT10LnZhbHVlJiYodGhpcy5pbnB1dEVsZW1lbnQudmFsdWU9ZSksdGhpcy5hdXRvVmFsaWRhdGUmJnRoaXMudmFsaWRhdGUoKSx0aGlzLmZpcmUoImJpbmQtdmFsdWUtY2hhbmdlZCIse3ZhbHVlOmV9KSl9LF9vbklucHV0OmZ1bmN0aW9uKCl7aWYodGhpcy5hbGxvd2VkUGF0dGVybiYmIXRoaXMuX3BhdHRlcm5BbHJlYWR5Q2hlY2tlZCl7dmFyIGU9dGhpcy5fY2hlY2tQYXR0ZXJuVmFsaWRpdHkoKTtlfHwodGhpcy5fYW5ub3VuY2VJbnZhbGlkQ2hhcmFjdGVyKCJJbnZhbGlkIHN0cmluZyBvZiBjaGFyYWN0ZXJzIG5vdCBlbnRlcmVkLiIpLHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlPXRoaXMuX3ByZXZpb3VzVmFsaWRJbnB1dCl9dGhpcy5iaW5kVmFsdWU9dGhpcy5fcHJldmlvdXNWYWxpZElucHV0PXRoaXMuaW5wdXRFbGVtZW50LnZhbHVlLHRoaXMuX3BhdHRlcm5BbHJlYWR5Q2hlY2tlZD0hMX0sX2lzUHJpbnRhYmxlOmZ1bmN0aW9uKGUpe3ZhciB0PWUua2V5Q29kZT09OHx8ZS5rZXlDb2RlPT05fHxlLmtleUNvZGU9PTEzfHxlLmtleUNvZGU9PTI3LHI9ZS5rZXlDb2RlPT0xOXx8ZS5rZXlDb2RlPT0yMHx8ZS5rZXlDb2RlPT00NXx8ZS5rZXlDb2RlPT00Nnx8ZS5rZXlDb2RlPT0xNDR8fGUua2V5Q29kZT09MTQ1fHxlLmtleUNvZGU+MzImJmUua2V5Q29kZTw0MXx8ZS5rZXlDb2RlPjExMSYmZS5rZXlDb2RlPDEyNDtyZXR1cm4hdCYmIShlLmNoYXJDb2RlPT0wJiZyKX0sX29uS2V5cHJlc3M6ZnVuY3Rpb24oZSl7aWYoISghdGhpcy5hbGxvd2VkUGF0dGVybiYmdGhpcy5pbnB1dEVsZW1lbnQudHlwZSE9PSJudW1iZXIiKSl7dmFyIHQ9dGhpcy5fcGF0dGVyblJlZ0V4cDtpZighIXQmJiEoZS5tZXRhS2V5fHxlLmN0cmxLZXl8fGUuYWx0S2V5KSl7dGhpcy5fcGF0dGVybkFscmVhZHlDaGVja2VkPSEwO3ZhciByPVN0cmluZy5mcm9tQ2hhckNvZGUoZS5jaGFyQ29kZSk7dGhpcy5faXNQcmludGFibGUoZSkmJiF0LnRlc3QocikmJihlLnByZXZlbnREZWZhdWx0KCksdGhpcy5fYW5ub3VuY2VJbnZhbGlkQ2hhcmFjdGVyKCJJbnZhbGlkIGNoYXJhY3RlciAiK3IrIiBub3QgZW50ZXJlZC4iKSl9fX0sX2NoZWNrUGF0dGVyblZhbGlkaXR5OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fcGF0dGVyblJlZ0V4cDtpZighZSlyZXR1cm4hMDtmb3IodmFyIHQ9MDt0PHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlLmxlbmd0aDt0KyspaWYoIWUudGVzdCh0aGlzLmlucHV0RWxlbWVudC52YWx1ZVt0XSkpcmV0dXJuITE7cmV0dXJuITB9LHZhbGlkYXRlOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaW5wdXRFbGVtZW50KXJldHVybiB0aGlzLmludmFsaWQ9ITEsITA7dmFyIGU9dGhpcy5pbnB1dEVsZW1lbnQuY2hlY2tWYWxpZGl0eSgpO3JldHVybiBlJiYodGhpcy5yZXF1aXJlZCYmdGhpcy5iaW5kVmFsdWU9PT0iIj9lPSExOnRoaXMuaGFzVmFsaWRhdG9yKCkmJihlPUNoLnZhbGlkYXRlLmNhbGwodGhpcyx0aGlzLmJpbmRWYWx1ZSkpKSx0aGlzLmludmFsaWQ9IWUsdGhpcy5maXJlKCJpcm9uLWlucHV0LXZhbGlkYXRlIiksZX0sX2Fubm91bmNlSW52YWxpZENoYXJhY3RlcjpmdW5jdGlvbihlKXt0aGlzLmZpcmUoImlyb24tYW5ub3VuY2UiLHt0ZXh0OmV9KX0sX2NvbXB1dGVWYWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gZX19KTt2YXIgQzk9e2F0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5maXJlKCJhZGRvbi1hdHRhY2hlZCIpfSx1cGRhdGU6ZnVuY3Rpb24oZSl7fX07WXQoe190ZW1wbGF0ZTpRYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGZsb2F0OiByaWdodDsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jYXB0aW9uOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNoYXItY291bnRlcjsKICAgICAgfQoKICAgICAgOmhvc3QoW2hpZGRlbl0pIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KDpkaXIocnRsKSkgewogICAgICAgIGZsb2F0OiBsZWZ0OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxzcGFuPltbX2NoYXJDb3VudGVyU3RyXV08L3NwYW4+CmAsaXM6InBhcGVyLWlucHV0LWNoYXItY291bnRlciIsYmVoYXZpb3JzOltDOV0scHJvcGVydGllczp7X2NoYXJDb3VudGVyU3RyOnt0eXBlOlN0cmluZyx2YWx1ZToiMCJ9fSx1cGRhdGU6ZnVuY3Rpb24oZSl7aWYoISFlLmlucHV0RWxlbWVudCl7ZS52YWx1ZT1lLnZhbHVlfHwiIjt2YXIgdD1lLnZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoLnRvU3RyaW5nKCk7ZS5pbnB1dEVsZW1lbnQuaGFzQXR0cmlidXRlKCJtYXhsZW5ndGgiKSYmKHQrPSIvIitlLmlucHV0RWxlbWVudC5nZXRBdHRyaWJ1dGUoIm1heGxlbmd0aCIpKSx0aGlzLl9jaGFyQ291bnRlclN0cj10fX19KTt2YXIgQTB0PVFgCjxjdXN0b20tc3R5bGU+CiAgPHN0eWxlIGlzPSJjdXN0b20tc3R5bGUiPgogICAgaHRtbCB7CiAgICAgIC0tcGFwZXItaW5wdXQtY29udGFpbmVyLXNoYXJlZC1pbnB1dC1zdHlsZTogewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogdG8gbWFrZSBhIHN0YWNraW5nIGNvbnRleHQgKi8KICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0LWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0LWFsaWduLCBib3R0b20pOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LXN1YmhlYWQ7CiAgICAgIH07CiAgICB9CiAgPC9zdHlsZT4KPC9jdXN0b20tc3R5bGU+CmA7QTB0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoQTB0LmNvbnRlbnQpO1l0KHtfdGVtcGxhdGU6UWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lcjsKICAgICAgfQoKICAgICAgOmhvc3QoW2lubGluZV0pIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvcGFjaXR5OiAwLjMzOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItZGlzYWJsZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICBbaGlkZGVuXSB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxvYXRlZC1sYWJlbC1wbGFjZWhvbGRlciB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jYXB0aW9uOwogICAgICB9CgogICAgICAudW5kZXJsaW5lIHsKICAgICAgICBoZWlnaHQ6IDJweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5mb2N1c2VkLWxpbmUgewogICAgICAgIEBhcHBseSAtLWxheW91dC1maXQ7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1mb2N1cy1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwoKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLDEsMSk7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAsMSwxKTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLXVuZGVybGluZS1mb2N1czsKICAgICAgfQoKICAgICAgLnVuZGVybGluZS5pcy1oaWdobGlnaHRlZCAuZm9jdXNlZC1saW5lIHsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTsKICAgICAgICB0cmFuc2Zvcm06IG5vbmU7CiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjI1czsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXM7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRyYW5zaXRpb24tZWFzaW5nOwogICAgICB9CgogICAgICAudW5kZXJsaW5lLmlzLWludmFsaWQgLmZvY3VzZWQtbGluZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItaW52YWxpZC1jb2xvciwgdmFyKC0tZXJyb3ItY29sb3IpKTsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTsKICAgICAgICB0cmFuc2Zvcm06IG5vbmU7CiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjI1czsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXM7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRyYW5zaXRpb24tZWFzaW5nOwogICAgICB9CgogICAgICAudW5mb2N1c2VkLWxpbmUgewogICAgICAgIEBhcHBseSAtLWxheW91dC1maXQ7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1jb2xvciwgdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpKTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItdW5kZXJsaW5lOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAudW5mb2N1c2VkLWxpbmUgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQ7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItY29sb3IsIHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKSk7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLXVuZGVybGluZS1kaXNhYmxlZDsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIgewogICAgICAgIEBhcHBseSAtLWxheW91dC1ob3Jpem9udGFsOwogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXgtYXV0bzsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtcmVsYXRpdmU7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQobGFiZWwpLAogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQoLnBhcGVyLWlucHV0LWxhYmVsKSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGZvbnQ6IGluaGVyaXQ7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1jb2xvciwgdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpKTsKICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuMjVzLCB3aWR0aCAwLjI1czsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMsIHdpZHRoIDAuMjVzOwogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7CiAgICAgICAgLyogRml4IGZvciBzYWZhcmkgbm90IGZvY3VzaW5nIDAtaGVpZ2h0IGRhdGUvdGltZSBpbnB1dHMgd2l0aCAtd2Via2l0LWFwcGVyYW5jZTogbm9uZTsgKi8KICAgICAgICBtaW4taGVpZ2h0OiAxcHg7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLW5vd3JhcDsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LXN1YmhlYWQ7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWxhYmVsOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRyYW5zaXRpb24tZWFzaW5nOwogICAgICB9CgoKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKGxhYmVsKTpiZWZvcmUsCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZCgucGFwZXItaW5wdXQtbGFiZWwpOmJlZm9yZSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWxhYmVsLWJlZm9yZTsKICAgICAgfQoKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKGxhYmVsKTphZnRlciwKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKC5wYXBlci1pbnB1dC1sYWJlbCk6YWZ0ZXIgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1sYWJlbC1hZnRlcjsKICAgICAgfQoKICAgICAgLmlucHV0LWNvbnRlbnQubGFiZWwtaXMtZmxvYXRpbmcgOjpzbG90dGVkKGxhYmVsKSwKICAgICAgLmlucHV0LWNvbnRlbnQubGFiZWwtaXMtZmxvYXRpbmcgOjpzbG90dGVkKC5wYXBlci1pbnB1dC1sYWJlbCkgewogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC03NSUpIHNjYWxlKDAuNzUpOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNzUlKSBzY2FsZSgwLjc1KTsKCiAgICAgICAgLyogU2luY2Ugd2Ugc2NhbGUgdG8gNzUvMTAwIG9mIHRoZSBzaXplLCB3ZSBhY3R1YWxseSBoYXZlIDEwMC83NSBvZiB0aGUKICAgICAgICBvcmlnaW5hbCBzcGFjZSBub3cgYXZhaWxhYmxlICovCiAgICAgICAgd2lkdGg6IDEzMyU7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1sYWJlbC1mbG9hdGluZzsKICAgICAgfQoKICAgICAgOmhvc3QoOmRpcihydGwpKSAuaW5wdXQtY29udGVudC5sYWJlbC1pcy1mbG9hdGluZyA6OnNsb3R0ZWQobGFiZWwpLAogICAgICA6aG9zdCg6ZGlyKHJ0bCkpIC5pbnB1dC1jb250ZW50LmxhYmVsLWlzLWZsb2F0aW5nIDo6c2xvdHRlZCgucGFwZXItaW5wdXQtbGFiZWwpIHsKICAgICAgICByaWdodDogMDsKICAgICAgICBsZWZ0OiBhdXRvOwogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wOwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDsKICAgICAgfQoKICAgICAgLmlucHV0LWNvbnRlbnQubGFiZWwtaXMtaGlnaGxpZ2h0ZWQgOjpzbG90dGVkKGxhYmVsKSwKICAgICAgLmlucHV0LWNvbnRlbnQubGFiZWwtaXMtaGlnaGxpZ2h0ZWQgOjpzbG90dGVkKC5wYXBlci1pbnB1dC1sYWJlbCkgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItZm9jdXMtY29sb3IsIHZhcigtLXByaW1hcnktY29sb3IpKTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWxhYmVsLWZvY3VzOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudC5pcy1pbnZhbGlkIDo6c2xvdHRlZChsYWJlbCksCiAgICAgIC5pbnB1dC1jb250ZW50LmlzLWludmFsaWQgOjpzbG90dGVkKC5wYXBlci1pbnB1dC1sYWJlbCkgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItaW52YWxpZC1jb2xvciwgdmFyKC0tZXJyb3ItY29sb3IpKTsKICAgICAgfQoKICAgICAgLmlucHV0LWNvbnRlbnQubGFiZWwtaXMtaGlkZGVuIDo6c2xvdHRlZChsYWJlbCksCiAgICAgIC5pbnB1dC1jb250ZW50LmxhYmVsLWlzLWhpZGRlbiA6OnNsb3R0ZWQoLnBhcGVyLWlucHV0LWxhYmVsKSB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQoaW5wdXQpLAogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQoaXJvbi1pbnB1dCksCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZCh0ZXh0YXJlYSksCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZChpcm9uLWF1dG9ncm93LXRleHRhcmVhKSwKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKC5wYXBlci1pbnB1dC1pbnB1dCkgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1zaGFyZWQtaW5wdXQtc3R5bGU7CiAgICAgICAgLyogVGhlIGFwcGx5IHNoaW0gZG9lc24ndCBhcHBseSB0aGUgbmVzdGVkIGNvbG9yIGN1c3RvbSBwcm9wZXJ0eSwKICAgICAgICAgIHNvIHdlIGhhdmUgdG8gcmUtYXBwbHkgaXQgaGVyZS4gKi8KICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0LWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQ7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZChpbnB1dCk6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZChpbnB1dCk6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24gewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dC13ZWJraXQtc3Bpbm5lcjsKICAgICAgfQoKICAgICAgLmlucHV0LWNvbnRlbnQuZm9jdXNlZCA6OnNsb3R0ZWQoaW5wdXQpLAogICAgICAuaW5wdXQtY29udGVudC5mb2N1c2VkIDo6c2xvdHRlZChpcm9uLWlucHV0KSwKICAgICAgLmlucHV0LWNvbnRlbnQuZm9jdXNlZCA6OnNsb3R0ZWQodGV4dGFyZWEpLAogICAgICAuaW5wdXQtY29udGVudC5mb2N1c2VkIDo6c2xvdHRlZChpcm9uLWF1dG9ncm93LXRleHRhcmVhKSwKICAgICAgLmlucHV0LWNvbnRlbnQuZm9jdXNlZCA6OnNsb3R0ZWQoLnBhcGVyLWlucHV0LWlucHV0KSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0LWZvY3VzOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudC5pcy1pbnZhbGlkIDo6c2xvdHRlZChpbnB1dCksCiAgICAgIC5pbnB1dC1jb250ZW50LmlzLWludmFsaWQgOjpzbG90dGVkKGlyb24taW5wdXQpLAogICAgICAuaW5wdXQtY29udGVudC5pcy1pbnZhbGlkIDo6c2xvdHRlZCh0ZXh0YXJlYSksCiAgICAgIC5pbnB1dC1jb250ZW50LmlzLWludmFsaWQgOjpzbG90dGVkKGlyb24tYXV0b2dyb3ctdGV4dGFyZWEpLAogICAgICAuaW5wdXQtY29udGVudC5pcy1pbnZhbGlkIDo6c2xvdHRlZCgucGFwZXItaW5wdXQtaW5wdXQpIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQtaW52YWxpZDsKICAgICAgfQoKICAgICAgLnByZWZpeCA6OnNsb3R0ZWQoKikgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LXN1YmhlYWQ7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXgtbm9uZTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1wcmVmaXg7CiAgICAgIH0KCiAgICAgIC5zdWZmaXggOjpzbG90dGVkKCopIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1zdWJoZWFkOwogICAgICAgIEBhcHBseSAtLWxheW91dC1mbGV4LW5vbmU7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LXN1ZmZpeDsKICAgICAgfQoKICAgICAgLyogRmlyZWZveCBzZXRzIGEgbWluLXdpZHRoIG9uIHRoZSBpbnB1dCwgd2hpY2ggY2FuIGNhdXNlIGxheW91dCBpc3N1ZXMgKi8KICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKGlucHV0KSB7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQodGV4dGFyZWEpIHsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5hZGQtb24tY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuYWRkLW9uLWNvbnRlbnQuaXMtaW52YWxpZCA6OnNsb3R0ZWQoKikgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItaW52YWxpZC1jb2xvciwgdmFyKC0tZXJyb3ItY29sb3IpKTsKICAgICAgfQoKICAgICAgLmFkZC1vbi1jb250ZW50LmlzLWhpZ2hsaWdodGVkIDo6c2xvdHRlZCgqKSB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1mb2N1cy1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImZsb2F0ZWQtbGFiZWwtcGxhY2Vob2xkZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIiBoaWRkZW49Iltbbm9MYWJlbEZsb2F0XV0iPiZuYnNwOzwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICA8c3BhbiBjbGFzcz0icHJlZml4Ij48c2xvdCBuYW1lPSJwcmVmaXgiPjwvc2xvdD48L3NwYW4+CgogICAgICA8ZGl2IGNsYXNzJD0iW1tfY29tcHV0ZUlucHV0Q29udGVudENsYXNzKG5vTGFiZWxGbG9hdCxhbHdheXNGbG9hdExhYmVsLGZvY3VzZWQsaW52YWxpZCxfaW5wdXRIYXNDb250ZW50KV1dIiBpZD0ibGFiZWxBbmRJbnB1dENvbnRhaW5lciI+CiAgICAgICAgPHNsb3QgbmFtZT0ibGFiZWwiPjwvc2xvdD4KICAgICAgICA8c2xvdCBuYW1lPSJpbnB1dCI+PC9zbG90PgogICAgICA8L2Rpdj4KCiAgICAgIDxzcGFuIGNsYXNzPSJzdWZmaXgiPjxzbG90IG5hbWU9InN1ZmZpeCI+PC9zbG90Pjwvc3Bhbj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3MkPSJbW19jb21wdXRlVW5kZXJsaW5lQ2xhc3MoZm9jdXNlZCxpbnZhbGlkKV1dIj4KICAgICAgPGRpdiBjbGFzcz0idW5mb2N1c2VkLWxpbmUiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmb2N1c2VkLWxpbmUiPjwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcyQ9IltbX2NvbXB1dGVBZGRPbkNvbnRlbnRDbGFzcyhmb2N1c2VkLGludmFsaWQpXV0iPgogICAgICA8c2xvdCBuYW1lPSJhZGQtb24iPjwvc2xvdD4KICAgIDwvZGl2PgpgLGlzOiJwYXBlci1pbnB1dC1jb250YWluZXIiLHByb3BlcnRpZXM6e25vTGFiZWxGbG9hdDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxhbHdheXNGbG9hdExhYmVsOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGF0dHJGb3JWYWx1ZTp7dHlwZTpTdHJpbmcsdmFsdWU6ImJpbmQtdmFsdWUifSxhdXRvVmFsaWRhdGU6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0saW52YWxpZDp7b2JzZXJ2ZXI6Il9pbnZhbGlkQ2hhbmdlZCIsdHlwZTpCb29sZWFuLHZhbHVlOiExfSxmb2N1c2VkOntyZWFkT25seTohMCx0eXBlOkJvb2xlYW4sdmFsdWU6ITEsbm90aWZ5OiEwfSxfYWRkb25zOnt0eXBlOkFycmF5fSxfaW5wdXRIYXNDb250ZW50Ont0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9pbnB1dFNlbGVjdG9yOnt0eXBlOlN0cmluZyx2YWx1ZToiaW5wdXQsaXJvbi1pbnB1dCx0ZXh0YXJlYSwucGFwZXItaW5wdXQtaW5wdXQifSxfYm91bmRPbkZvY3VzOnt0eXBlOkZ1bmN0aW9uLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29uRm9jdXMuYmluZCh0aGlzKX19LF9ib3VuZE9uQmx1cjp7dHlwZTpGdW5jdGlvbix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vbkJsdXIuYmluZCh0aGlzKX19LF9ib3VuZE9uSW5wdXQ6e3R5cGU6RnVuY3Rpb24sdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb25JbnB1dC5iaW5kKHRoaXMpfX0sX2JvdW5kVmFsdWVDaGFuZ2VkOnt0eXBlOkZ1bmN0aW9uLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29uVmFsdWVDaGFuZ2VkLmJpbmQodGhpcyl9fX0sbGlzdGVuZXJzOnsiYWRkb24tYXR0YWNoZWQiOiJfb25BZGRvbkF0dGFjaGVkIiwiaXJvbi1pbnB1dC12YWxpZGF0ZSI6Il9vbklyb25JbnB1dFZhbGlkYXRlIn0sZ2V0IF92YWx1ZUNoYW5nZWRFdmVudCgpe3JldHVybiB0aGlzLmF0dHJGb3JWYWx1ZSsiLWNoYW5nZWQifSxnZXQgX3Byb3BlcnR5Rm9yVmFsdWUoKXtyZXR1cm4gU20odGhpcy5hdHRyRm9yVmFsdWUpfSxnZXQgX2lucHV0RWxlbWVudCgpe3JldHVybiB6dCh0aGlzKS5xdWVyeVNlbGVjdG9yKHRoaXMuX2lucHV0U2VsZWN0b3IpfSxnZXQgX2lucHV0RWxlbWVudFZhbHVlKCl7cmV0dXJuIHRoaXMuX2lucHV0RWxlbWVudFt0aGlzLl9wcm9wZXJ0eUZvclZhbHVlXXx8dGhpcy5faW5wdXRFbGVtZW50LnZhbHVlfSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuX19pc0ZpcnN0VmFsdWVVcGRhdGU9ITAsdGhpcy5fYWRkb25zfHwodGhpcy5fYWRkb25zPVtdKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9ib3VuZE9uRm9jdXMsITApLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5fYm91bmRPbkJsdXIsITApfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuYXR0ckZvclZhbHVlP3RoaXMuX2lucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKHRoaXMuX3ZhbHVlQ2hhbmdlZEV2ZW50LHRoaXMuX2JvdW5kVmFsdWVDaGFuZ2VkKTp0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0Iix0aGlzLl9vbklucHV0KSx0aGlzLl9pbnB1dEVsZW1lbnRWYWx1ZSYmdGhpcy5faW5wdXRFbGVtZW50VmFsdWUhPSIiP3RoaXMuX2hhbmRsZVZhbHVlQW5kQXV0b1ZhbGlkYXRlKHRoaXMuX2lucHV0RWxlbWVudCk6dGhpcy5faGFuZGxlVmFsdWUodGhpcy5faW5wdXRFbGVtZW50KX0sX29uQWRkb25BdHRhY2hlZDpmdW5jdGlvbihlKXt0aGlzLl9hZGRvbnN8fCh0aGlzLl9hZGRvbnM9W10pO3ZhciB0PWUudGFyZ2V0O3RoaXMuX2FkZG9ucy5pbmRleE9mKHQpPT09LTEmJih0aGlzLl9hZGRvbnMucHVzaCh0KSx0aGlzLmlzQXR0YWNoZWQmJnRoaXMuX2hhbmRsZVZhbHVlKHRoaXMuX2lucHV0RWxlbWVudCkpfSxfb25Gb2N1czpmdW5jdGlvbigpe3RoaXMuX3NldEZvY3VzZWQoITApfSxfb25CbHVyOmZ1bmN0aW9uKCl7dGhpcy5fc2V0Rm9jdXNlZCghMSksdGhpcy5faGFuZGxlVmFsdWVBbmRBdXRvVmFsaWRhdGUodGhpcy5faW5wdXRFbGVtZW50KX0sX29uSW5wdXQ6ZnVuY3Rpb24oZSl7dGhpcy5faGFuZGxlVmFsdWVBbmRBdXRvVmFsaWRhdGUoZS50YXJnZXQpfSxfb25WYWx1ZUNoYW5nZWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQ7dGhpcy5fX2lzRmlyc3RWYWx1ZVVwZGF0ZSYmKHRoaXMuX19pc0ZpcnN0VmFsdWVVcGRhdGU9ITEsdC52YWx1ZT09PXZvaWQgMHx8dC52YWx1ZT09PSIiKXx8dGhpcy5faGFuZGxlVmFsdWVBbmRBdXRvVmFsaWRhdGUoZS50YXJnZXQpfSxfaGFuZGxlVmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5faW5wdXRFbGVtZW50VmFsdWU7dHx8dD09PTB8fGUudHlwZT09PSJudW1iZXIiJiYhZS5jaGVja1ZhbGlkaXR5KCk/dGhpcy5faW5wdXRIYXNDb250ZW50PSEwOnRoaXMuX2lucHV0SGFzQ29udGVudD0hMSx0aGlzLnVwZGF0ZUFkZG9ucyh7aW5wdXRFbGVtZW50OmUsdmFsdWU6dCxpbnZhbGlkOnRoaXMuaW52YWxpZH0pfSxfaGFuZGxlVmFsdWVBbmRBdXRvVmFsaWRhdGU6ZnVuY3Rpb24oZSl7aWYodGhpcy5hdXRvVmFsaWRhdGUmJmUpe3ZhciB0O2UudmFsaWRhdGU/dD1lLnZhbGlkYXRlKHRoaXMuX2lucHV0RWxlbWVudFZhbHVlKTp0PWUuY2hlY2tWYWxpZGl0eSgpLHRoaXMuaW52YWxpZD0hdH10aGlzLl9oYW5kbGVWYWx1ZShlKX0sX29uSXJvbklucHV0VmFsaWRhdGU6ZnVuY3Rpb24oZSl7dGhpcy5pbnZhbGlkPXRoaXMuX2lucHV0RWxlbWVudC5pbnZhbGlkfSxfaW52YWxpZENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLl9hZGRvbnMmJnRoaXMudXBkYXRlQWRkb25zKHtpbnZhbGlkOnRoaXMuaW52YWxpZH0pfSx1cGRhdGVBZGRvbnM6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LHI9MDt0PXRoaXMuX2FkZG9uc1tyXTtyKyspdC51cGRhdGUoZSl9LF9jb21wdXRlSW5wdXRDb250ZW50Q2xhc3M6ZnVuY3Rpb24oZSx0LHIsbixpKXt2YXIgbz0iaW5wdXQtY29udGVudCI7aWYoZSlpJiYobys9IiBsYWJlbC1pcy1oaWRkZW4iKSxuJiYobys9IiBpcy1pbnZhbGlkIik7ZWxzZXt2YXIgYT10aGlzLnF1ZXJ5U2VsZWN0b3IoImxhYmVsIik7dHx8aT8obys9IiBsYWJlbC1pcy1mbG9hdGluZyIsdGhpcy4kLmxhYmVsQW5kSW5wdXRDb250YWluZXIuc3R5bGUucG9zaXRpb249InN0YXRpYyIsbj9vKz0iIGlzLWludmFsaWQiOnImJihvKz0iIGxhYmVsLWlzLWhpZ2hsaWdodGVkIikpOihhJiYodGhpcy4kLmxhYmVsQW5kSW5wdXRDb250YWluZXIuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIiksbiYmKG8rPSIgaXMtaW52YWxpZCIpKX1yZXR1cm4gciYmKG8rPSIgZm9jdXNlZCIpLG99LF9jb21wdXRlVW5kZXJsaW5lQ2xhc3M6ZnVuY3Rpb24oZSx0KXt2YXIgcj0idW5kZXJsaW5lIjtyZXR1cm4gdD9yKz0iIGlzLWludmFsaWQiOmUmJihyKz0iIGlzLWhpZ2hsaWdodGVkIikscn0sX2NvbXB1dGVBZGRPbkNvbnRlbnRDbGFzczpmdW5jdGlvbihlLHQpe3ZhciByPSJhZGQtb24tY29udGVudCI7cmV0dXJuIHQ/cis9IiBpcy1pbnZhbGlkIjplJiYocis9IiBpcy1oaWdobGlnaHRlZCIpLHJ9fSk7WXQoe190ZW1wbGF0ZTpRYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKCiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnZhbGlkLWNvbG9yLCB2YXIoLS1lcnJvci1jb2xvcikpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNhcHRpb247CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtZXJyb3I7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6MDsKICAgICAgICByaWdodDowOwogICAgICB9CgogICAgICA6aG9zdChbaW52YWxpZF0pIHsKICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOwogICAgICB9CgogICAgICAjYTExeVdyYXBwZXIgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgOmhvc3QoW2ludmFsaWRdKSAjYTExeVdyYXBwZXIgewogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPCEtLQogICAgSWYgdGhlIHBhcGVyLWlucHV0LWVycm9yIGVsZW1lbnQgaXMgZGlyZWN0bHkgcmVmZXJlbmNlZCBieSBhbgogICAgXGBhcmlhLWRlc2NyaWJlZGJ5XGAgYXR0cmlidXRlLCBzdWNoIGFzIHdoZW4gdXNlZCBhcyBhIHBhcGVyLWlucHV0IGFkZC1vbiwKICAgIHRoZW4gYXBwbHlpbmcgXGB2aXNpYmlsaXR5OiBoaWRkZW47XGAgdG8gdGhlIHBhcGVyLWlucHV0LWVycm9yIGVsZW1lbnQgaXRzZWxmCiAgICBkb2VzIG5vdCBoaWRlIHRoZSBlcnJvci4KCiAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlOgogICAgaHR0cHM6Ly93d3cudzMub3JnL1RSL2FjY25hbWUtMS4xLyNtYXBwaW5nX2FkZGl0aW9uYWxfbmRfZGVzY3JpcHRpb24KICAgIC0tPgogICAgPGRpdiBpZD0iYTExeVdyYXBwZXIiPgogICAgICA8c2xvdD48L3Nsb3Q+CiAgICA8L2Rpdj4KYCxpczoicGFwZXItaW5wdXQtZXJyb3IiLGJlaGF2aW9yczpbQzldLHByb3BlcnRpZXM6e2ludmFsaWQ6e3JlYWRPbmx5OiEwLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCx0eXBlOkJvb2xlYW59fSx1cGRhdGU6ZnVuY3Rpb24oZSl7dGhpcy5fc2V0SW52YWxpZChlLmludmFsaWQpfX0pO3ZhciBaeD17fTtaeC5OZXh0TGFiZWxJRD0xO1p4Lk5leHRBZGRvbklEPTE7WnguTmV4dElucHV0SUQ9MTt2YXIgcWJlPXtwcm9wZXJ0aWVzOntsYWJlbDp7dHlwZTpTdHJpbmd9LHZhbHVlOntub3RpZnk6ITAsdHlwZTpTdHJpbmd9LGRpc2FibGVkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGludmFsaWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITB9LGFsbG93ZWRQYXR0ZXJuOnt0eXBlOlN0cmluZ30sdHlwZTp7dHlwZTpTdHJpbmd9LGxpc3Q6e3R5cGU6U3RyaW5nfSxwYXR0ZXJuOnt0eXBlOlN0cmluZ30scmVxdWlyZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sZXJyb3JNZXNzYWdlOnt0eXBlOlN0cmluZ30sY2hhckNvdW50ZXI6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sbm9MYWJlbEZsb2F0Ont0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGFsd2F5c0Zsb2F0TGFiZWw6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sYXV0b1ZhbGlkYXRlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LHZhbGlkYXRvcjp7dHlwZTpTdHJpbmd9LGF1dG9jb21wbGV0ZTp7dHlwZTpTdHJpbmcsdmFsdWU6Im9mZiJ9LGF1dG9mb2N1czp7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfYXV0b2ZvY3VzQ2hhbmdlZCJ9LGlucHV0bW9kZTp7dHlwZTpTdHJpbmd9LG1pbmxlbmd0aDp7dHlwZTpOdW1iZXJ9LG1heGxlbmd0aDp7dHlwZTpOdW1iZXJ9LG1pbjp7dHlwZTpTdHJpbmd9LG1heDp7dHlwZTpTdHJpbmd9LHN0ZXA6e3R5cGU6U3RyaW5nfSxuYW1lOnt0eXBlOlN0cmluZ30scGxhY2Vob2xkZXI6e3R5cGU6U3RyaW5nLHZhbHVlOiIifSxyZWFkb25seTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxzaXplOnt0eXBlOk51bWJlcn0sYXV0b2NhcGl0YWxpemU6e3R5cGU6U3RyaW5nLHZhbHVlOiJub25lIn0sYXV0b2NvcnJlY3Q6e3R5cGU6U3RyaW5nLHZhbHVlOiJvZmYifSxhdXRvc2F2ZTp7dHlwZTpTdHJpbmd9LHJlc3VsdHM6e3R5cGU6TnVtYmVyfSxhY2NlcHQ6e3R5cGU6U3RyaW5nfSxtdWx0aXBsZTp7dHlwZTpCb29sZWFufSxfYXJpYURlc2NyaWJlZEJ5Ont0eXBlOlN0cmluZyx2YWx1ZToiIn0sX2FyaWFMYWJlbGxlZEJ5Ont0eXBlOlN0cmluZyx2YWx1ZToiIn0sX2lucHV0SWQ6e3R5cGU6U3RyaW5nLHZhbHVlOiIifX0sbGlzdGVuZXJzOnsiYWRkb24tYXR0YWNoZWQiOiJfb25BZGRvbkF0dGFjaGVkIn0sa2V5QmluZGluZ3M6eyJzaGlmdCt0YWI6a2V5ZG93biI6Il9vblNoaWZ0VGFiRG93biJ9LGhvc3RBdHRyaWJ1dGVzOnt0YWJpbmRleDowfSxnZXQgaW5wdXRFbGVtZW50KCl7cmV0dXJuIHRoaXMuJHx8KHRoaXMuJD17fSksdGhpcy4kLmlucHV0fHwodGhpcy5fZ2VuZXJhdGVJbnB1dElkKCksdGhpcy4kLmlucHV0PXRoaXMuJCQoIiMiK3RoaXMuX2lucHV0SWQpKSx0aGlzLiQuaW5wdXR9LGdldCBfZm9jdXNhYmxlRWxlbWVudCgpe3JldHVybiB0aGlzLmlucHV0RWxlbWVudH0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX3R5cGVzVGhhdEhhdmVUZXh0PVsiZGF0ZSIsImRhdGV0aW1lIiwiZGF0ZXRpbWUtbG9jYWwiLCJtb250aCIsInRpbWUiLCJ3ZWVrIiwiZmlsZSJdfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZUFyaWFMYWJlbGxlZEJ5KCksIW10JiZ0aGlzLmlucHV0RWxlbWVudCYmdGhpcy5fdHlwZXNUaGF0SGF2ZVRleHQuaW5kZXhPZih0aGlzLmlucHV0RWxlbWVudC50eXBlKSE9PS0xJiYodGhpcy5hbHdheXNGbG9hdExhYmVsPSEwKX0sX2FwcGVuZFN0cmluZ1dpdGhTcGFjZTpmdW5jdGlvbihlLHQpe3JldHVybiBlP2U9ZSsiICIrdDplPXQsZX0sX29uQWRkb25BdHRhY2hlZDpmdW5jdGlvbihlKXt2YXIgdD16dChlKS5yb290VGFyZ2V0O2lmKHQuaWQpdGhpcy5fYXJpYURlc2NyaWJlZEJ5PXRoaXMuX2FwcGVuZFN0cmluZ1dpdGhTcGFjZSh0aGlzLl9hcmlhRGVzY3JpYmVkQnksdC5pZCk7ZWxzZXt2YXIgcj0icGFwZXItaW5wdXQtYWRkLW9uLSIrWnguTmV4dEFkZG9uSUQrKzt0LmlkPXIsdGhpcy5fYXJpYURlc2NyaWJlZEJ5PXRoaXMuX2FwcGVuZFN0cmluZ1dpdGhTcGFjZSh0aGlzLl9hcmlhRGVzY3JpYmVkQnkscil9fSx2YWxpZGF0ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0RWxlbWVudC52YWxpZGF0ZSgpfSxfZm9jdXNCbHVySGFuZGxlcjpmdW5jdGlvbihlKXtEaS5fZm9jdXNCbHVySGFuZGxlci5jYWxsKHRoaXMsZSksdGhpcy5mb2N1c2VkJiYhdGhpcy5fc2hpZnRUYWJQcmVzc2VkJiZ0aGlzLl9mb2N1c2FibGVFbGVtZW50JiZ0aGlzLl9mb2N1c2FibGVFbGVtZW50LmZvY3VzKCl9LF9vblNoaWZ0VGFiRG93bjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKTt0aGlzLl9zaGlmdFRhYlByZXNzZWQ9ITAsdGhpcy5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiLTEiKSx0aGlzLmFzeW5jKGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUoInRhYmluZGV4Iix0KSx0aGlzLl9zaGlmdFRhYlByZXNzZWQ9ITF9LDEpfSxfaGFuZGxlQXV0b1ZhbGlkYXRlOmZ1bmN0aW9uKCl7dGhpcy5hdXRvVmFsaWRhdGUmJnRoaXMudmFsaWRhdGUoKX0sdXBkYXRlVmFsdWVBbmRQcmVzZXJ2ZUNhcmV0OmZ1bmN0aW9uKGUpe3RyeXt2YXIgdD10aGlzLmlucHV0RWxlbWVudC5zZWxlY3Rpb25TdGFydDt0aGlzLnZhbHVlPWUsdGhpcy5pbnB1dEVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ9dCx0aGlzLmlucHV0RWxlbWVudC5zZWxlY3Rpb25FbmQ9dH1jYXRjaChyKXt0aGlzLnZhbHVlPWV9fSxfY29tcHV0ZUFsd2F5c0Zsb2F0TGFiZWw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8ZX0sX3VwZGF0ZUFyaWFMYWJlbGxlZEJ5OmZ1bmN0aW9uKCl7dmFyIGU9enQodGhpcy5yb290KS5xdWVyeVNlbGVjdG9yKCJsYWJlbCIpO2lmKCFlKXt0aGlzLl9hcmlhTGFiZWxsZWRCeT0iIjtyZXR1cm59dmFyIHQ7ZS5pZD90PWUuaWQ6KHQ9InBhcGVyLWlucHV0LWxhYmVsLSIrWnguTmV4dExhYmVsSUQrKyxlLmlkPXQpLHRoaXMuX2FyaWFMYWJlbGxlZEJ5PXR9LF9nZW5lcmF0ZUlucHV0SWQ6ZnVuY3Rpb24oKXsoIXRoaXMuX2lucHV0SWR8fHRoaXMuX2lucHV0SWQ9PT0iIikmJih0aGlzLl9pbnB1dElkPSJpbnB1dC0iK1p4Lk5leHRJbnB1dElEKyspfSxfb25DaGFuZ2U6ZnVuY3Rpb24oZSl7dGhpcy5zaGFkb3dSb290JiZ0aGlzLmZpcmUoZS50eXBlLHtzb3VyY2VFdmVudDplfSx7bm9kZTp0aGlzLGJ1YmJsZXM6ZS5idWJibGVzLGNhbmNlbGFibGU6ZS5jYW5jZWxhYmxlfSl9LF9hdXRvZm9jdXNDaGFuZ2VkOmZ1bmN0aW9uKCl7aWYodGhpcy5hdXRvZm9jdXMmJnRoaXMuX2ZvY3VzYWJsZUVsZW1lbnQpe3ZhciBlPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsdD1lIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQscj10JiZlIT09ZG9jdW1lbnQuYm9keSYmZSE9PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtyfHx0aGlzLl9mb2N1c2FibGVFbGVtZW50LmZvY3VzKCl9fX0sQTk9W0RpLE9vLHFiZV07WXQoe2lzOiJwYXBlci1pbnB1dCIsX3RlbXBsYXRlOlFgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgOmhvc3QoW2ZvY3VzZWRdKSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2hpZGRlbl0pIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICAvKiBGaXJlZm94IHNldHMgYSBtaW4td2lkdGggb24gdGhlIGlucHV0LCB3aGljaCBjYW4gY2F1c2UgbGF5b3V0IGlzc3VlcyAqLwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLyogSW4gMS54LCB0aGUgPGlucHV0PiBpcyBkaXN0cmlidXRlZCB0byBwYXBlci1pbnB1dC1jb250YWluZXIsIHdoaWNoIHN0eWxlcyBpdC4KICAgICAgSW4gMi54IHRoZSA8aXJvbi1pbnB1dD4gaXMgZGlzdHJpYnV0ZWQgdG8gcGFwZXItaW5wdXQtY29udGFpbmVyLCB3aGljaCBzdHlsZXMKICAgICAgaXQsIGJ1dCBpbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrIGNvcnJlY3RseSwgd2UgbmVlZCB0byByZXNldCBzb21lCiAgICAgIG9mIHRoZSBuYXRpdmUgaW5wdXQncyBwcm9wZXJ0aWVzIHRvIGluaGVyaXQgKGZyb20gdGhlIGlyb24taW5wdXQpICovCiAgICAgIGlyb24taW5wdXQgPiBpbnB1dCB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLXNoYXJlZC1pbnB1dC1zdHlsZTsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBmb250LXdlaWdodDogaW5oZXJpdDsKICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7CiAgICAgICAgd29yZC1zcGFjaW5nOiBpbmhlcml0OwogICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogICAgICAgIHRleHQtc2hhZG93OiBpbmhlcml0OwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICAgIGN1cnNvcjogaW5oZXJpdDsKICAgICAgfQoKICAgICAgaW5wdXQ6ZGlzYWJsZWQgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dC1kaXNhYmxlZDsKICAgICAgfQoKICAgICAgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sCiAgICAgIGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQtd2Via2l0LXNwaW5uZXI7CiAgICAgIH0KCiAgICAgIGlucHV0Ojotd2Via2l0LWNsZWFyLWJ1dHRvbiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0LXdlYmtpdC1jbGVhcjsKICAgICAgfQoKICAgICAgaW5wdXQ6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yOwogICAgICB9CgogICAgICBpbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1jb2xvciwgdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpKTsKICAgICAgfQoKICAgICAgaW5wdXQ6LW1vei1wbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1jb2xvciwgdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpKTsKICAgICAgfQoKICAgICAgaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItY29sb3IsIHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKSk7CiAgICAgIH0KCiAgICAgIGlucHV0OjotbXMtY2xlYXIgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1tcy1jbGVhcjsKICAgICAgfQoKICAgICAgaW5wdXQ6Oi1tcy1yZXZlYWwgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1tcy1yZXZlYWw7CiAgICAgIH0KCiAgICAgIGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1jb2xvciwgdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpKTsKICAgICAgfQoKICAgICAgbGFiZWwgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxwYXBlci1pbnB1dC1jb250YWluZXIgaWQ9ImNvbnRhaW5lciIgbm8tbGFiZWwtZmxvYXQ9Iltbbm9MYWJlbEZsb2F0XV0iIGFsd2F5cy1mbG9hdC1sYWJlbD0iW1tfY29tcHV0ZUFsd2F5c0Zsb2F0TGFiZWwoYWx3YXlzRmxvYXRMYWJlbCxwbGFjZWhvbGRlcildXSIgYXV0by12YWxpZGF0ZSQ9IltbYXV0b1ZhbGlkYXRlXV0iIGRpc2FibGVkJD0iW1tkaXNhYmxlZF1dIiBpbnZhbGlkPSJbW2ludmFsaWRdXSI+CgogICAgICA8c2xvdCBuYW1lPSJwcmVmaXgiIHNsb3Q9InByZWZpeCI+PC9zbG90PgoKICAgICAgPGxhYmVsIGhpZGRlbiQ9IltbIWxhYmVsXV0iIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb3IkPSJbW19pbnB1dElkXV0iIHNsb3Q9ImxhYmVsIj5bW2xhYmVsXV08L2xhYmVsPgoKICAgICAgPCEtLSBOZWVkIHRvIGJpbmQgbWF4bGVuZ3RoIHNvIHRoYXQgdGhlIHBhcGVyLWlucHV0LWNoYXItY291bnRlciB3b3JrcyBjb3JyZWN0bHkgLS0+CiAgICAgIDxpcm9uLWlucHV0IGJpbmQtdmFsdWU9Int7dmFsdWV9fSIgc2xvdD0iaW5wdXQiIGNsYXNzPSJpbnB1dC1lbGVtZW50IiBpZCQ9IltbX2lucHV0SWRdXSIgbWF4bGVuZ3RoJD0iW1ttYXhsZW5ndGhdXSIgYWxsb3dlZC1wYXR0ZXJuPSJbW2FsbG93ZWRQYXR0ZXJuXV0iIGludmFsaWQ9Int7aW52YWxpZH19IiB2YWxpZGF0b3I9IltbdmFsaWRhdG9yXV0iPgogICAgICAgIDxpbnB1dCBhcmlhLWxhYmVsbGVkYnkkPSJbW19hcmlhTGFiZWxsZWRCeV1dIiBhcmlhLWRlc2NyaWJlZGJ5JD0iW1tfYXJpYURlc2NyaWJlZEJ5XV0iIGRpc2FibGVkJD0iW1tkaXNhYmxlZF1dIiB0aXRsZSQ9IltbdGl0bGVdXSIgdHlwZSQ9IltbdHlwZV1dIiBwYXR0ZXJuJD0iW1twYXR0ZXJuXV0iIHJlcXVpcmVkJD0iW1tyZXF1aXJlZF1dIiBhdXRvY29tcGxldGUkPSJbW2F1dG9jb21wbGV0ZV1dIiBhdXRvZm9jdXMkPSJbW2F1dG9mb2N1c11dIiBpbnB1dG1vZGUkPSJbW2lucHV0bW9kZV1dIiBtaW5sZW5ndGgkPSJbW21pbmxlbmd0aF1dIiBtYXhsZW5ndGgkPSJbW21heGxlbmd0aF1dIiBtaW4kPSJbW21pbl1dIiBtYXgkPSJbW21heF1dIiBzdGVwJD0iW1tzdGVwXV0iIG5hbWUkPSJbW25hbWVdXSIgcGxhY2Vob2xkZXIkPSJbW3BsYWNlaG9sZGVyXV0iIHJlYWRvbmx5JD0iW1tyZWFkb25seV1dIiBsaXN0JD0iW1tsaXN0XV0iIHNpemUkPSJbW3NpemVdXSIgYXV0b2NhcGl0YWxpemUkPSJbW2F1dG9jYXBpdGFsaXplXV0iIGF1dG9jb3JyZWN0JD0iW1thdXRvY29ycmVjdF1dIiBvbi1jaGFuZ2U9Il9vbkNoYW5nZSIgdGFiaW5kZXgkPSJbW3RhYkluZGV4XV0iIGF1dG9zYXZlJD0iW1thdXRvc2F2ZV1dIiByZXN1bHRzJD0iW1tyZXN1bHRzXV0iIGFjY2VwdCQ9IltbYWNjZXB0XV0iIG11bHRpcGxlJD0iW1ttdWx0aXBsZV1dIiByb2xlJD0iW1tpbnB1dFJvbGVdXSIgYXJpYS1oYXNwb3B1cCQ9IltbaW5wdXRBcmlhSGFzcG9wdXBdXSI+CiAgICAgIDwvaXJvbi1pbnB1dD4KCiAgICAgIDxzbG90IG5hbWU9InN1ZmZpeCIgc2xvdD0ic3VmZml4Ij48L3Nsb3Q+CgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbZXJyb3JNZXNzYWdlXV0iPgogICAgICAgIDxwYXBlci1pbnB1dC1lcnJvciBhcmlhLWxpdmU9ImFzc2VydGl2ZSIgc2xvdD0iYWRkLW9uIj5bW2Vycm9yTWVzc2FnZV1dPC9wYXBlci1pbnB1dC1lcnJvcj4KICAgICAgPC90ZW1wbGF0ZT4KCiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tjaGFyQ291bnRlcl1dIj4KICAgICAgICA8cGFwZXItaW5wdXQtY2hhci1jb3VudGVyIHNsb3Q9ImFkZC1vbiI+PC9wYXBlci1pbnB1dC1jaGFyLWNvdW50ZXI+CiAgICAgIDwvdGVtcGxhdGU+CgogICAgPC9wYXBlci1pbnB1dC1jb250YWluZXI+CiAgYCxiZWhhdmlvcnM6W0E5LFRoXSxwcm9wZXJ0aWVzOnt2YWx1ZTp7dHlwZTpTdHJpbmd9LGlucHV0Um9sZTp7dHlwZTpTdHJpbmcsdmFsdWU6dm9pZCAwfSxpbnB1dEFyaWFIYXNwb3B1cDp7dHlwZTpTdHJpbmcsdmFsdWU6dm9pZCAwfX0sZ2V0IF9mb2N1c2FibGVFbGVtZW50KCl7cmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50Ll9pbnB1dEVsZW1lbnR9LGxpc3RlbmVyczp7Imlyb24taW5wdXQtcmVhZHkiOiJfb25Jcm9uSW5wdXRSZWFkeSJ9LF9vbklyb25JbnB1dFJlYWR5OmZ1bmN0aW9uKCl7dGhpcy4kLm5hdGl2ZUlucHV0fHwodGhpcy4kLm5hdGl2ZUlucHV0PXRoaXMuJCQoImlucHV0IikpLHRoaXMuaW5wdXRFbGVtZW50JiZ0aGlzLl90eXBlc1RoYXRIYXZlVGV4dC5pbmRleE9mKHRoaXMuJC5uYXRpdmVJbnB1dC50eXBlKSE9PS0xJiYodGhpcy5hbHdheXNGbG9hdExhYmVsPSEwKSx0aGlzLmlucHV0RWxlbWVudC5iaW5kVmFsdWUmJnRoaXMuJC5jb250YWluZXIuX2hhbmRsZVZhbHVlQW5kQXV0b1ZhbGlkYXRlKHRoaXMuaW5wdXRFbGVtZW50KX19KTtZdCh7X3RlbXBsYXRlOlFgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIH0KCiAgICAgICNjb250ZW50V3JhcHBlciA6OnNsb3R0ZWQoKikgewogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICB9CgogICAgICAjY29udGVudFdyYXBwZXIuYW5pbWF0aW5nIDo6c2xvdHRlZCgqKSB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGlkPSJjb250ZW50V3JhcHBlciI+CiAgICAgIDxzbG90IGlkPSJjb250ZW50IiBuYW1lPSJkcm9wZG93bi1jb250ZW50Ij48L3Nsb3Q+CiAgICA8L2Rpdj4KYCxpczoiaXJvbi1kcm9wZG93biIsYmVoYXZpb3JzOltEaSxPbyxLeCxiOV0scHJvcGVydGllczp7aG9yaXpvbnRhbEFsaWduOnt0eXBlOlN0cmluZyx2YWx1ZToibGVmdCIscmVmbGVjdFRvQXR0cmlidXRlOiEwfSx2ZXJ0aWNhbEFsaWduOnt0eXBlOlN0cmluZyx2YWx1ZToidG9wIixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LG9wZW5BbmltYXRpb25Db25maWc6e3R5cGU6T2JqZWN0fSxjbG9zZUFuaW1hdGlvbkNvbmZpZzp7dHlwZTpPYmplY3R9LGZvY3VzVGFyZ2V0Ont0eXBlOk9iamVjdH0sbm9BbmltYXRpb25zOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGFsbG93T3V0c2lkZVNjcm9sbDp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG9ic2VydmVyOiJfYWxsb3dPdXRzaWRlU2Nyb2xsQ2hhbmdlZCJ9fSxsaXN0ZW5lcnM6eyJuZW9uLWFuaW1hdGlvbi1maW5pc2giOiJfb25OZW9uQW5pbWF0aW9uRmluaXNoIn0sb2JzZXJ2ZXJzOlsiX3VwZGF0ZU92ZXJsYXlQb3NpdGlvbihwb3NpdGlvblRhcmdldCwgdmVydGljYWxBbGlnbiwgaG9yaXpvbnRhbEFsaWduLCB2ZXJ0aWNhbE9mZnNldCwgaG9yaXpvbnRhbE9mZnNldCkiXSxnZXQgY29udGFpbmVkRWxlbWVudCgpe2Zvcih2YXIgZT16dCh0aGlzLiQuY29udGVudCkuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLHQ9MCxyPWUubGVuZ3RoO3Q8cjt0KyspaWYoZVt0XS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKXJldHVybiBlW3RdfSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuc2Nyb2xsQWN0aW9ufHwodGhpcy5zY3JvbGxBY3Rpb249dGhpcy5hbGxvd091dHNpZGVTY3JvbGw/InJlZml0IjoibG9jayIpLHRoaXMuX3JlYWRpZWQ9ITB9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7KCF0aGlzLnNpemluZ1RhcmdldHx8dGhpcy5zaXppbmdUYXJnZXQ9PT10aGlzKSYmKHRoaXMuc2l6aW5nVGFyZ2V0PXRoaXMuY29udGFpbmVkRWxlbWVudHx8dGhpcyl9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxBbmltYXRpb24oKX0sX29wZW5lZENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZCYmdGhpcy5kaXNhYmxlZD90aGlzLmNhbmNlbCgpOih0aGlzLmNhbmNlbEFuaW1hdGlvbigpLHRoaXMuX3VwZGF0ZUFuaW1hdGlvbkNvbmZpZygpLEltLl9vcGVuZWRDaGFuZ2VkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LF9yZW5kZXJPcGVuZWQ6ZnVuY3Rpb24oKXshdGhpcy5ub0FuaW1hdGlvbnMmJnRoaXMuYW5pbWF0aW9uQ29uZmlnLm9wZW4/KHRoaXMuJC5jb250ZW50V3JhcHBlci5jbGFzc0xpc3QuYWRkKCJhbmltYXRpbmciKSx0aGlzLnBsYXlBbmltYXRpb24oIm9wZW4iKSk6SW0uX3JlbmRlck9wZW5lZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LF9yZW5kZXJDbG9zZWQ6ZnVuY3Rpb24oKXshdGhpcy5ub0FuaW1hdGlvbnMmJnRoaXMuYW5pbWF0aW9uQ29uZmlnLmNsb3NlPyh0aGlzLiQuY29udGVudFdyYXBwZXIuY2xhc3NMaXN0LmFkZCgiYW5pbWF0aW5nIiksdGhpcy5wbGF5QW5pbWF0aW9uKCJjbG9zZSIpKTpJbS5fcmVuZGVyQ2xvc2VkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sX29uTmVvbkFuaW1hdGlvbkZpbmlzaDpmdW5jdGlvbigpe3RoaXMuJC5jb250ZW50V3JhcHBlci5jbGFzc0xpc3QucmVtb3ZlKCJhbmltYXRpbmciKSx0aGlzLm9wZW5lZD90aGlzLl9maW5pc2hSZW5kZXJPcGVuZWQoKTp0aGlzLl9maW5pc2hSZW5kZXJDbG9zZWQoKX0sX3VwZGF0ZUFuaW1hdGlvbkNvbmZpZzpmdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLmNvbnRhaW5lZEVsZW1lbnQsdD1bXS5jb25jYXQodGhpcy5vcGVuQW5pbWF0aW9uQ29uZmlnfHxbXSkuY29uY2F0KHRoaXMuY2xvc2VBbmltYXRpb25Db25maWd8fFtdKSxyPTA7cjx0Lmxlbmd0aDtyKyspdFtyXS5ub2RlPWU7dGhpcy5hbmltYXRpb25Db25maWc9e29wZW46dGhpcy5vcGVuQW5pbWF0aW9uQ29uZmlnLGNsb3NlOnRoaXMuY2xvc2VBbmltYXRpb25Db25maWd9fSxfdXBkYXRlT3ZlcmxheVBvc2l0aW9uOmZ1bmN0aW9uKCl7dGhpcy5pc0F0dGFjaGVkJiZ0aGlzLm5vdGlmeVJlc2l6ZSgpfSxfYWxsb3dPdXRzaWRlU2Nyb2xsQ2hhbmdlZDpmdW5jdGlvbihlKXshdGhpcy5fcmVhZGllZHx8KGU/KCF0aGlzLnNjcm9sbEFjdGlvbnx8dGhpcy5zY3JvbGxBY3Rpb249PT0ibG9jayIpJiYodGhpcy5zY3JvbGxBY3Rpb249InJlZml0Iik6dGhpcy5zY3JvbGxBY3Rpb249ImxvY2siKX0sX2FwcGx5Rm9jdXM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmZvY3VzVGFyZ2V0fHx0aGlzLmNvbnRhaW5lZEVsZW1lbnQ7ZSYmdGhpcy5vcGVuZWQmJiF0aGlzLm5vQXV0b0ZvY3VzP2UuZm9jdXMoKTpJbS5fYXBwbHlGb2N1cy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSk7dmFyIHZwPXtwcm9wZXJ0aWVzOnthbmltYXRpb25UaW1pbmc6e3R5cGU6T2JqZWN0LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue2R1cmF0aW9uOjUwMCxlYXNpbmc6ImN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkiLGZpbGw6ImJvdGgifX19fSxpc05lb25BbmltYXRpb246ITAsY3JlYXRlZDpmdW5jdGlvbigpe2RvY3VtZW50LmJvZHkuYW5pbWF0ZXx8Y29uc29sZS53YXJuKCJObyB3ZWIgYW5pbWF0aW9ucyBkZXRlY3RlZC4gVGhpcyBlbGVtZW50IHdpbGwgbm90IGZ1bmN0aW9uIHdpdGhvdXQgYSB3ZWIgYW5pbWF0aW9ucyBwb2x5ZmlsbC4iKX0sdGltaW5nRnJvbUNvbmZpZzpmdW5jdGlvbihlKXtpZihlLnRpbWluZylmb3IodmFyIHQgaW4gZS50aW1pbmcpdGhpcy5hbmltYXRpb25UaW1pbmdbdF09ZS50aW1pbmdbdF07cmV0dXJuIHRoaXMuYW5pbWF0aW9uVGltaW5nfSxzZXRQcmVmaXhlZFByb3BlcnR5OmZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIG49e3RyYW5zZm9ybTpbIndlYmtpdFRyYW5zZm9ybSJdLHRyYW5zZm9ybU9yaWdpbjpbIm1velRyYW5zZm9ybU9yaWdpbiIsIndlYmtpdFRyYW5zZm9ybU9yaWdpbiJdfSxpPW5bdF0sbyxhPTA7bz1pW2FdO2ErKyllLnN0eWxlW29dPXI7ZS5zdHlsZVt0XT1yfSxjb21wbGV0ZTpmdW5jdGlvbihlKXt9fTtZdCh7aXM6ImZhZGUtaW4tYW5pbWF0aW9uIixiZWhhdmlvcnM6W3ZwXSxjb25maWd1cmU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ub2RlO3JldHVybiB0aGlzLl9lZmZlY3Q9bmV3IEtleWZyYW1lRWZmZWN0KHQsW3tvcGFjaXR5OiIwIn0se29wYWNpdHk6IjEifV0sdGhpcy50aW1pbmdGcm9tQ29uZmlnKGUpKSx0aGlzLl9lZmZlY3R9fSk7WXQoe2lzOiJmYWRlLW91dC1hbmltYXRpb24iLGJlaGF2aW9yczpbdnBdLGNvbmZpZ3VyZTpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGU7cmV0dXJuIHRoaXMuX2VmZmVjdD1uZXcgS2V5ZnJhbWVFZmZlY3QodCxbe29wYWNpdHk6IjEifSx7b3BhY2l0eToiMCJ9XSx0aGlzLnRpbWluZ0Zyb21Db25maWcoZSkpLHRoaXMuX2VmZmVjdH19KTtZdCh7aXM6InBhcGVyLW1lbnUtZ3Jvdy1oZWlnaHQtYW5pbWF0aW9uIixfdGVtcGxhdGU6bnVsbCxiZWhhdmlvcnM6W3ZwXSxjb25maWd1cmU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ub2RlLHI9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPXIuaGVpZ2h0O3JldHVybiB0aGlzLl9lZmZlY3Q9bmV3IEtleWZyYW1lRWZmZWN0KHQsW3toZWlnaHQ6bi8yKyJweCJ9LHtoZWlnaHQ6bisicHgifV0sdGhpcy50aW1pbmdGcm9tQ29uZmlnKGUpKSx0aGlzLl9lZmZlY3R9fSk7WXQoe2lzOiJwYXBlci1tZW51LWdyb3ctd2lkdGgtYW5pbWF0aW9uIixfdGVtcGxhdGU6bnVsbCxiZWhhdmlvcnM6W3ZwXSxjb25maWd1cmU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ub2RlLHI9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPXIud2lkdGg7cmV0dXJuIHRoaXMuX2VmZmVjdD1uZXcgS2V5ZnJhbWVFZmZlY3QodCxbe3dpZHRoOm4vMisicHgifSx7d2lkdGg6bisicHgifV0sdGhpcy50aW1pbmdGcm9tQ29uZmlnKGUpKSx0aGlzLl9lZmZlY3R9fSk7WXQoe2lzOiJwYXBlci1tZW51LXNocmluay13aWR0aC1hbmltYXRpb24iLF90ZW1wbGF0ZTpudWxsLGJlaGF2aW9yczpbdnBdLGNvbmZpZ3VyZTpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGUscj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49ci53aWR0aDtyZXR1cm4gdGhpcy5fZWZmZWN0PW5ldyBLZXlmcmFtZUVmZmVjdCh0LFt7d2lkdGg6bisicHgifSx7d2lkdGg6bi1uLzIwKyJweCJ9XSx0aGlzLnRpbWluZ0Zyb21Db25maWcoZSkpLHRoaXMuX2VmZmVjdH19KTtZdCh7aXM6InBhcGVyLW1lbnUtc2hyaW5rLWhlaWdodC1hbmltYXRpb24iLF90ZW1wbGF0ZTpudWxsLGJlaGF2aW9yczpbdnBdLGNvbmZpZ3VyZTpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGUscj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49ci5oZWlnaHQ7cmV0dXJuIHRoaXMuc2V0UHJlZml4ZWRQcm9wZXJ0eSh0LCJ0cmFuc2Zvcm1PcmlnaW4iLCIwIDAiKSx0aGlzLl9lZmZlY3Q9bmV3IEtleWZyYW1lRWZmZWN0KHQsW3toZWlnaHQ6bisicHgiLHRyYW5zZm9ybToidHJhbnNsYXRlWSgwKSJ9LHtoZWlnaHQ6bi8yKyJweCIsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC0yMHB4KSJ9XSx0aGlzLnRpbWluZ0Zyb21Db25maWcoZSkpLHRoaXMuX2VmZmVjdH19KTt2YXIgZEU9e0FOSU1BVElPTl9DVUJJQ19CRVpJRVI6ImN1YmljLWJlemllciguMywuOTUsLjUsMSkiLE1BWF9BTklNQVRJT05fVElNRV9NUzo0MDB9LEdiZT1ZdCh7X3RlbXBsYXRlOlFgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBvdXRsaW5lOiBub25lOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1tZW51LWJ1dHRvbjsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgewogICAgICAgIGN1cnNvcjogYXV0bzsKICAgICAgICBjb2xvcjogdmFyKC0tZGlzYWJsZWQtdGV4dC1jb2xvcik7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLW1lbnUtYnV0dG9uLWRpc2FibGVkOwogICAgICB9CgogICAgICBpcm9uLWRyb3Bkb3duIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tZW51LWJ1dHRvbi1kcm9wZG93bjsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWNvbnRlbnQgewogICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tMmRwOwoKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLW1lbnUtYnV0dG9uLWRyb3Bkb3duLWJhY2tncm91bmQsIHZhcigtLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcikpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1tZW51LWJ1dHRvbi1jb250ZW50OwogICAgICB9CgogICAgICA6aG9zdChbdmVydGljYWwtYWxpZ249InRvcCJdKSAuZHJvcGRvd24tY29udGVudCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBtYXJnaW4tdG9wOiAtMTBweDsKICAgICAgICB0b3A6IDEwcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFt2ZXJ0aWNhbC1hbGlnbj0iYm90dG9tIl0pIC5kcm9wZG93bi1jb250ZW50IHsKICAgICAgICBib3R0b206IDEwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTEwcHg7CiAgICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgICAgfQoKICAgICAgI3RyaWdnZXIgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGlkPSJ0cmlnZ2VyIiBvbi10YXA9InRvZ2dsZSI+CiAgICAgIDxzbG90IG5hbWU9ImRyb3Bkb3duLXRyaWdnZXIiPjwvc2xvdD4KICAgIDwvZGl2PgoKICAgIDxpcm9uLWRyb3Bkb3duIGlkPSJkcm9wZG93biIgb3BlbmVkPSJ7e29wZW5lZH19IiBob3Jpem9udGFsLWFsaWduPSJbW2hvcml6b250YWxBbGlnbl1dIiB2ZXJ0aWNhbC1hbGlnbj0iW1t2ZXJ0aWNhbEFsaWduXV0iIGR5bmFtaWMtYWxpZ249IltbZHluYW1pY0FsaWduXV0iIGhvcml6b250YWwtb2Zmc2V0PSJbW2hvcml6b250YWxPZmZzZXRdXSIgdmVydGljYWwtb2Zmc2V0PSJbW3ZlcnRpY2FsT2Zmc2V0XV0iIG5vLW92ZXJsYXA9Iltbbm9PdmVybGFwXV0iIG9wZW4tYW5pbWF0aW9uLWNvbmZpZz0iW1tvcGVuQW5pbWF0aW9uQ29uZmlnXV0iIGNsb3NlLWFuaW1hdGlvbi1jb25maWc9IltbY2xvc2VBbmltYXRpb25Db25maWddXSIgbm8tYW5pbWF0aW9ucz0iW1tub0FuaW1hdGlvbnNdXSIgZm9jdXMtdGFyZ2V0PSJbW19kcm9wZG93bkNvbnRlbnRdXSIgYWxsb3ctb3V0c2lkZS1zY3JvbGw9IltbYWxsb3dPdXRzaWRlU2Nyb2xsXV0iIHJlc3RvcmUtZm9jdXMtb24tY2xvc2U9IltbcmVzdG9yZUZvY3VzT25DbG9zZV1dIiBvbi1pcm9uLW92ZXJsYXktY2FuY2VsZWQ9Il9fb25Jcm9uT3ZlcmxheUNhbmNlbGVkIiBleHBhbmQtc2l6aW5nLXRhcmdldC1mb3Itc2Nyb2xsYmFycz0iW1tleHBhbmRTaXppbmdUYXJnZXRGb3JTY3JvbGxiYXJzXV0iPgogICAgICA8ZGl2IHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiIGNsYXNzPSJkcm9wZG93bi1jb250ZW50Ij4KICAgICAgICA8c2xvdCBpZD0iY29udGVudCIgbmFtZT0iZHJvcGRvd24tY29udGVudCI+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIDwvaXJvbi1kcm9wZG93bj4KYCxpczoicGFwZXItbWVudS1idXR0b24iLGJlaGF2aW9yczpbT28sRGldLHByb3BlcnRpZXM6e29wZW5lZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMCxvYnNlcnZlcjoiX29wZW5lZENoYW5nZWQifSxob3Jpem9udGFsQWxpZ246e3R5cGU6U3RyaW5nLHZhbHVlOiJsZWZ0IixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LHZlcnRpY2FsQWxpZ246e3R5cGU6U3RyaW5nLHZhbHVlOiJ0b3AiLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0sZHluYW1pY0FsaWduOnt0eXBlOkJvb2xlYW59LGhvcml6b250YWxPZmZzZXQ6e3R5cGU6TnVtYmVyLHZhbHVlOjAsbm90aWZ5OiEwfSx2ZXJ0aWNhbE9mZnNldDp7dHlwZTpOdW1iZXIsdmFsdWU6MCxub3RpZnk6ITB9LG5vT3ZlcmxhcDp7dHlwZTpCb29sZWFufSxub0FuaW1hdGlvbnM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0saWdub3JlU2VsZWN0Ont0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGNsb3NlT25BY3RpdmF0ZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxvcGVuQW5pbWF0aW9uQ29uZmlnOnt0eXBlOk9iamVjdCx2YWx1ZTpmdW5jdGlvbigpe3JldHVyblt7bmFtZToiZmFkZS1pbi1hbmltYXRpb24iLHRpbWluZzp7ZGVsYXk6MTAwLGR1cmF0aW9uOjIwMH19LHtuYW1lOiJwYXBlci1tZW51LWdyb3ctd2lkdGgtYW5pbWF0aW9uIix0aW1pbmc6e2RlbGF5OjEwMCxkdXJhdGlvbjoxNTAsZWFzaW5nOmRFLkFOSU1BVElPTl9DVUJJQ19CRVpJRVJ9fSx7bmFtZToicGFwZXItbWVudS1ncm93LWhlaWdodC1hbmltYXRpb24iLHRpbWluZzp7ZGVsYXk6MTAwLGR1cmF0aW9uOjI3NSxlYXNpbmc6ZEUuQU5JTUFUSU9OX0NVQklDX0JFWklFUn19XX19LGNsb3NlQW5pbWF0aW9uQ29uZmlnOnt0eXBlOk9iamVjdCx2YWx1ZTpmdW5jdGlvbigpe3JldHVyblt7bmFtZToiZmFkZS1vdXQtYW5pbWF0aW9uIix0aW1pbmc6e2R1cmF0aW9uOjE1MH19LHtuYW1lOiJwYXBlci1tZW51LXNocmluay13aWR0aC1hbmltYXRpb24iLHRpbWluZzp7ZGVsYXk6MTAwLGR1cmF0aW9uOjUwLGVhc2luZzpkRS5BTklNQVRJT05fQ1VCSUNfQkVaSUVSfX0se25hbWU6InBhcGVyLW1lbnUtc2hyaW5rLWhlaWdodC1hbmltYXRpb24iLHRpbWluZzp7ZHVyYXRpb246MjAwLGVhc2luZzoiZWFzZS1pbiJ9fV19fSxhbGxvd091dHNpZGVTY3JvbGw6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0scmVzdG9yZUZvY3VzT25DbG9zZTp7dHlwZTpCb29sZWFuLHZhbHVlOiEwfSxleHBhbmRTaXppbmdUYXJnZXRGb3JTY3JvbGxiYXJzOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9kcm9wZG93bkNvbnRlbnQ6e3R5cGU6T2JqZWN0fX0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6Imdyb3VwIiwiYXJpYS1oYXNwb3B1cCI6InRydWUifSxsaXN0ZW5lcnM6eyJpcm9uLWFjdGl2YXRlIjoiX29uSXJvbkFjdGl2YXRlIiwiaXJvbi1zZWxlY3QiOiJfb25Jcm9uU2VsZWN0In0sZ2V0IGNvbnRlbnRFbGVtZW50KCl7Zm9yKHZhciBlPXp0KHRoaXMuJC5jb250ZW50KS5nZXREaXN0cmlidXRlZE5vZGVzKCksdD0wLHI9ZS5sZW5ndGg7dDxyO3QrKylpZihlW3RdLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpcmV0dXJuIGVbdF19LHRvZ2dsZTpmdW5jdGlvbigpe3RoaXMub3BlbmVkP3RoaXMuY2xvc2UoKTp0aGlzLm9wZW4oKX0sb3BlbjpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZWR8fHRoaXMuJC5kcm9wZG93bi5vcGVuKCl9LGNsb3NlOmZ1bmN0aW9uKCl7dGhpcy4kLmRyb3Bkb3duLmNsb3NlKCl9LF9vbklyb25TZWxlY3Q6ZnVuY3Rpb24oZSl7dGhpcy5pZ25vcmVTZWxlY3R8fHRoaXMuY2xvc2UoKX0sX29uSXJvbkFjdGl2YXRlOmZ1bmN0aW9uKGUpe3RoaXMuY2xvc2VPbkFjdGl2YXRlJiZ0aGlzLmNsb3NlKCl9LF9vcGVuZWRDaGFuZ2VkOmZ1bmN0aW9uKGUsdCl7ZT8odGhpcy5fZHJvcGRvd25Db250ZW50PXRoaXMuY29udGVudEVsZW1lbnQsdGhpcy5maXJlKCJwYXBlci1kcm9wZG93bi1vcGVuIikpOnQhPW51bGwmJnRoaXMuZmlyZSgicGFwZXItZHJvcGRvd24tY2xvc2UiKX0sX2Rpc2FibGVkQ2hhbmdlZDpmdW5jdGlvbihlKXtEaS5fZGlzYWJsZWRDaGFuZ2VkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxlJiZ0aGlzLm9wZW5lZCYmdGhpcy5jbG9zZSgpfSxfX29uSXJvbk92ZXJsYXlDYW5jZWxlZDpmdW5jdGlvbihlKXt2YXIgdD1lLmRldGFpbCxyPXRoaXMuJC50cmlnZ2VyLG49enQodCkucGF0aDtuLmluZGV4T2Yocik+LTEmJmUucHJldmVudERlZmF1bHQoKX19KTtPYmplY3Qua2V5cyhkRSkuZm9yRWFjaChmdW5jdGlvbihlKXtHYmVbZV09ZEVbZV19KTt2YXIgdlc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTt2Vy5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKTt2Vy5pbm5lckhUTUw9YDxpcm9uLWljb25zZXQtc3ZnIG5hbWU9InBhcGVyLWRyb3Bkb3duLW1lbnUiIHNpemU9IjI0Ij4KPHN2Zz48ZGVmcz4KPGcgaWQ9ImFycm93LWRyb3AtZG93biI+PHBhdGggZD0iTTcgMTBsNSA1IDUtNXoiPjwvcGF0aD48L2c+CjwvZGVmcz48L3N2Zz4KPC9pcm9uLWljb25zZXQtc3ZnPmA7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh2Vy5jb250ZW50KTt2YXIgeFc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTt4Vy5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKTt4Vy5pbm5lckhUTUw9YDxkb20tbW9kdWxlIGlkPSJwYXBlci1kcm9wZG93bi1tZW51LXNoYXJlZC1zdHlsZXMiPgogIDx0ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKCiAgICAgICAgLyogTk9URShjZGF0YSk6IEJvdGggdmFsdWVzIGFyZSBuZWVkZWQsIHNpbmNlIHNvbWUgcGhvbmVzIHJlcXVpcmUgdGhlCiAgICAgICAgICogdmFsdWUgdG8gYmUgXGB0cmFuc3BhcmVudFxgLgogICAgICAgICAqLwogICAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTsKICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OwoKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dDogewogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItZHJvcGRvd24tbWVudTsKICAgICAgfQoKICAgICAgLyogcGFwZXItZHJvcGRvd24tbWVudSBhbmQgcGFwZXItZHJvcGRvd24tbWVudS1saWdodCBib3RoIGRlbGVnYXRlIGZvY3VzCiAgICAgICAqIHRvIG90aGVyIGludGVybmFsIGVsZW1lbnRzIHdoaWNoIG1hbmFnZSBmb2N1cyBzdHlsaW5nLiAqLwogICAgICA6aG9zdCg6Zm9jdXMpIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICA6aG9zdCg6ZGlyKHJ0bCkpIHsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKCiAgICAgICAgQGFwcGx5KC0tcGFwZXItZHJvcGRvd24tbWVudSk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1kcm9wZG93bi1tZW51LWRpc2FibGVkOwogICAgICB9CgogICAgICA6aG9zdChbbm9pbmtdKSBwYXBlci1yaXBwbGUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtuby1sYWJlbC1mbG9hdF0pIHBhcGVyLXJpcHBsZSB7CiAgICAgICAgdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIHBhcGVyLXJpcHBsZSB7CiAgICAgICAgdG9wOiAxMnB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgICByaWdodDogMHB4OwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1kcm9wZG93bi1tZW51LXJpcHBsZTsKICAgICAgfQoKICAgICAgcGFwZXItbWVudS1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDA7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWRyb3Bkb3duLW1lbnUtYnV0dG9uOwogICAgICB9CgogICAgICBwYXBlci1pbnB1dCB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZHJvcGRvd24tbWVudS1pbnB1dDsKICAgICAgfQoKICAgICAgaXJvbi1pY29uIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGlzYWJsZWQtdGV4dC1jb2xvcik7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWRyb3Bkb3duLW1lbnUtaWNvbjsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L3RlbXBsYXRlPgo8L2RvbS1tb2R1bGU+YDtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHhXLmNvbnRlbnQpO3ZhciBXYmU9R3QoSFRNTEVsZW1lbnQpO1l0KHtfdGVtcGxhdGU6UWAKICAgIDxzdHlsZSBpbmNsdWRlPSJwYXBlci1kcm9wZG93bi1tZW51LXNoYXJlZC1zdHlsZXMiPjwvc3R5bGU+CgogICAgPHBhcGVyLW1lbnUtYnV0dG9uIGlkPSJtZW51QnV0dG9uIiB2ZXJ0aWNhbC1hbGlnbj0iW1t2ZXJ0aWNhbEFsaWduXV0iIGhvcml6b250YWwtYWxpZ249IltbaG9yaXpvbnRhbEFsaWduXV0iIGR5bmFtaWMtYWxpZ249IltbZHluYW1pY0FsaWduXV0iIHZlcnRpY2FsLW9mZnNldD0iW1tfY29tcHV0ZU1lbnVWZXJ0aWNhbE9mZnNldChub0xhYmVsRmxvYXQsIHZlcnRpY2FsT2Zmc2V0KV1dIiBkaXNhYmxlZD0iW1tkaXNhYmxlZF1dIiBuby1hbmltYXRpb25zPSJbW25vQW5pbWF0aW9uc11dIiBvbi1pcm9uLXNlbGVjdD0iX29uSXJvblNlbGVjdCIgb24taXJvbi1kZXNlbGVjdD0iX29uSXJvbkRlc2VsZWN0IiBvcGVuZWQ9Int7b3BlbmVkfX0iIGNsb3NlLW9uLWFjdGl2YXRlIGFsbG93LW91dHNpZGUtc2Nyb2xsPSJbW2FsbG93T3V0c2lkZVNjcm9sbF1dIiByZXN0b3JlLWZvY3VzLW9uLWNsb3NlPSJbW3Jlc3RvcmVGb2N1c09uQ2xvc2VdXSIgZXhwYW5kLXNpemluZy10YXJnZXQtZm9yLXNjcm9sbGJhcnM9IltbZXhwYW5kU2l6aW5nVGFyZ2V0Rm9yU2Nyb2xsYmFyc11dIj4KICAgICAgPCEtLSBzdXBwb3J0IGh5YnJpZCBtb2RlOiB1c2VyIG1pZ2h0IGJlIHVzaW5nIHBhcGVyLW1lbnUtYnV0dG9uIDEueCB3aGljaCBkaXN0cmlidXRlcyB2aWEgPGNvbnRlbnQ+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJkcm9wZG93bi10cmlnZ2VyIiBzbG90PSJkcm9wZG93bi10cmlnZ2VyIj4KICAgICAgICA8cGFwZXItcmlwcGxlPjwvcGFwZXItcmlwcGxlPgogICAgICAgIDwhLS0gcGFwZXItaW5wdXQgaGFzIHR5cGU9InRleHQiIGZvciBhMTF5LCBkbyBub3QgcmVtb3ZlIC0tPgogICAgICAgIDxwYXBlci1pbnB1dCBpZD0iaW5wdXQiIHR5cGU9InRleHQiIGludmFsaWQ9IltbaW52YWxpZF1dIiByZWFkb25seSBkaXNhYmxlZD0iW1tkaXNhYmxlZF1dIiB2YWx1ZT0iW1t2YWx1ZV1dIiBwbGFjZWhvbGRlcj0iW1twbGFjZWhvbGRlcl1dIiBlcnJvci1tZXNzYWdlPSJbW2Vycm9yTWVzc2FnZV1dIiBhbHdheXMtZmxvYXQtbGFiZWw9IltbYWx3YXlzRmxvYXRMYWJlbF1dIiBuby1sYWJlbC1mbG9hdD0iW1tub0xhYmVsRmxvYXRdXSIgbGFiZWw9IltbbGFiZWxdXSIgaW5wdXQtcm9sZT0iYnV0dG9uIiBpbnB1dC1hcmlhLWhhc3BvcHVwPSJsaXN0Ym94IiBhdXRvY29tcGxldGU9Im9mZiI+CiAgICAgICAgICA8IS0tIHN1cHBvcnQgaHlicmlkIG1vZGU6IHVzZXIgbWlnaHQgYmUgdXNpbmcgcGFwZXItaW5wdXQgMS54IHdoaWNoIGRpc3RyaWJ1dGVzIHZpYSA8Y29udGVudD4gLS0+CiAgICAgICAgICA8aXJvbi1pY29uIGljb249InBhcGVyLWRyb3Bkb3duLW1lbnU6YXJyb3ctZHJvcC1kb3duIiBzdWZmaXggc2xvdD0ic3VmZml4Ij48L2lyb24taWNvbj4KICAgICAgICA8L3BhcGVyLWlucHV0PgogICAgICA8L2Rpdj4KICAgICAgPHNsb3QgaWQ9ImNvbnRlbnQiIG5hbWU9ImRyb3Bkb3duLWNvbnRlbnQiIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiPjwvc2xvdD4KICAgIDwvcGFwZXItbWVudS1idXR0b24+CmAsaXM6InBhcGVyLWRyb3Bkb3duLW1lbnUiLGJlaGF2aW9yczpbTWgsRGksVGgsQ2hdLHByb3BlcnRpZXM6e3NlbGVjdGVkSXRlbUxhYmVsOnt0eXBlOlN0cmluZyxub3RpZnk6ITAscmVhZE9ubHk6ITB9LHNlbGVjdGVkSXRlbTp7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLHJlYWRPbmx5OiEwfSx2YWx1ZTp7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSxsYWJlbDp7dHlwZTpTdHJpbmd9LHBsYWNlaG9sZGVyOnt0eXBlOlN0cmluZ30sZXJyb3JNZXNzYWdlOnt0eXBlOlN0cmluZ30sb3BlbmVkOnt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwLHZhbHVlOiExLG9ic2VydmVyOiJfb3BlbmVkQ2hhbmdlZCJ9LGFsbG93T3V0c2lkZVNjcm9sbDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxub0xhYmVsRmxvYXQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LGFsd2F5c0Zsb2F0TGFiZWw6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sbm9BbmltYXRpb25zOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGhvcml6b250YWxBbGlnbjp7dHlwZTpTdHJpbmcsdmFsdWU6InJpZ2h0In0sdmVydGljYWxBbGlnbjp7dHlwZTpTdHJpbmcsdmFsdWU6InRvcCJ9LHZlcnRpY2FsT2Zmc2V0Ok51bWJlcixkeW5hbWljQWxpZ246e3R5cGU6Qm9vbGVhbn0scmVzdG9yZUZvY3VzT25DbG9zZTp7dHlwZTpCb29sZWFuLHZhbHVlOiEwfSxleHBhbmRTaXppbmdUYXJnZXRGb3JTY3JvbGxiYXJzOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9fSxsaXN0ZW5lcnM6e3RhcDoiX29uVGFwIn0sa2V5QmluZGluZ3M6eyJ1cCBkb3duIjoib3BlbiIsZXNjOiJjbG9zZSJ9LG9ic2VydmVyczpbIl9zZWxlY3RlZEl0ZW1DaGFuZ2VkKHNlbGVjdGVkSXRlbSkiXSxfYXR0YWNoRG9tKGUpe2xldCB0PXVlKHRoaXMpO3JldHVybiB0LmF0dGFjaFNoYWRvdyh7bW9kZToib3BlbiIsZGVsZWdhdGVzRm9jdXM6ITAsc2hhZHlVcGdyYWRlRnJhZ21lbnQ6ZX0pLHQuc2hhZG93Um9vdC5hcHBlbmRDaGlsZChlKSxXYmUucHJvdG90eXBlLl9hdHRhY2hEb20uY2FsbCh0aGlzLGUpfSxmb2N1cygpe3RoaXMuJC5pbnB1dC5fZm9jdXNhYmxlRWxlbWVudC5mb2N1cygpfSxhdHRhY2hlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuY29udGVudEVsZW1lbnQ7ZSYmZS5zZWxlY3RlZEl0ZW0mJnRoaXMuX3NldFNlbGVjdGVkSXRlbShlLnNlbGVjdGVkSXRlbSl9LGdldCBjb250ZW50RWxlbWVudCgpe2Zvcih2YXIgZT16dCh0aGlzLiQuY29udGVudCkuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLHQ9MCxyPWUubGVuZ3RoO3Q8cjt0KyspaWYoZVt0XS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKXJldHVybiBlW3RdfSxvcGVuOmZ1bmN0aW9uKCl7dGhpcy4kLm1lbnVCdXR0b24ub3BlbigpfSxjbG9zZTpmdW5jdGlvbigpe3RoaXMuJC5tZW51QnV0dG9uLmNsb3NlKCl9LF9vbklyb25TZWxlY3Q6ZnVuY3Rpb24oZSl7dGhpcy5fc2V0U2VsZWN0ZWRJdGVtKGUuZGV0YWlsLml0ZW0pfSxfb25Jcm9uRGVzZWxlY3Q6ZnVuY3Rpb24oZSl7dGhpcy5fc2V0U2VsZWN0ZWRJdGVtKG51bGwpfSxfb25UYXA6ZnVuY3Rpb24oZSl7bGd0KGUpPT09dGhpcyYmdGhpcy5vcGVuKCl9LF9zZWxlY3RlZEl0ZW1DaGFuZ2VkOmZ1bmN0aW9uKGUpe3ZhciB0PSIiO2U/dD1lLmxhYmVsfHxlLmdldEF0dHJpYnV0ZSgibGFiZWwiKXx8ZS50ZXh0Q29udGVudC50cmltKCk6dD0iIix0aGlzLnZhbHVlPXQsdGhpcy5fc2V0U2VsZWN0ZWRJdGVtTGFiZWwodCl9LF9jb21wdXRlTWVudVZlcnRpY2FsT2Zmc2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fChlPy00OjgpfSxfZ2V0VmFsaWRpdHk6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZGlzYWJsZWR8fCF0aGlzLnJlcXVpcmVkfHx0aGlzLnJlcXVpcmVkJiYhIXRoaXMudmFsdWV9LF9vcGVuZWRDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcGVuZWQ/InRydWUiOiJmYWxzZSIsdD10aGlzLmNvbnRlbnRFbGVtZW50O3QmJnQuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixlKX19KTt2YXIgYlc9MSxQMHQ9MixQOT17b3V0ZXJTY3JvbGw6e3Njcm9sbDohMH0sc2hhZG93TW9kZTp7c3RhbmRhcmQ6UDB0LHdhdGVyZmFsbDpiVywid2F0ZXJmYWxsLXRhbGwiOmJXfSx0YWxsTW9kZTp7IndhdGVyZmFsbC10YWxsIjohMH19O1l0KHtfdGVtcGxhdGU6UWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIEBhcHBseSAtLWxheW91dC12ZXJ0aWNhbDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWhlYWRlci1wYW5lbDsKICAgICAgfQoKICAgICAgI21haW5Db250YWluZXIgewogICAgICAgIEBhcHBseSAtLWxheW91dC1mbGV4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7CiAgICAgIH0KCiAgICAgICNtYWluUGFuZWwgewogICAgICAgIEBhcHBseSAtLWxheW91dC12ZXJ0aWNhbDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZmxleDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICBAYXBwbHkgLS1wYXBlci1oZWFkZXItcGFuZWwtYm9keTsKICAgICAgfQoKICAgICAgI21haW5Db250YWluZXIgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWhlYWRlci1wYW5lbC1jb250YWluZXI7CiAgICAgIH0KCiAgICAgIC8qCiAgICAgICAqIG1vZGU6IHNjcm9sbAogICAgICAgKi8KICAgICAgOmhvc3QoW21vZGU9c2Nyb2xsXSkgI21haW5Db250YWluZXIgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWhlYWRlci1wYW5lbC1zY3JvbGwtY29udGFpbmVyOwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICB9CgogICAgICA6aG9zdChbbW9kZT1zY3JvbGxdKSB7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOwogICAgICB9CgogICAgICAvKgogICAgICAgKiBtb2RlOiBjb3ZlcgogICAgICAgKi8KICAgICAgOmhvc3QoW21vZGU9Y292ZXJdKSAjbWFpbkNvbnRhaW5lciB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaGVhZGVyLXBhbmVsLWNvdmVyLWNvbnRhaW5lcjsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICB9CgogICAgICA6aG9zdChbbW9kZT1jb3Zlcl0pICNtYWluUGFuZWwgewogICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7CiAgICAgIH0KCiAgICAgIC8qCiAgICAgICAqIG1vZGU6IHN0YW5kYXJkCiAgICAgICAqLwogICAgICA6aG9zdChbbW9kZT1zdGFuZGFyZF0pICNtYWluQ29udGFpbmVyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1oZWFkZXItcGFuZWwtc3RhbmRhcmQtY29udGFpbmVyOwogICAgICB9CgogICAgICAvKgogICAgICAgKiBtb2RlOiBzZWFtZWQKICAgICAgICovCiAgICAgIDpob3N0KFttb2RlPXNlYW1lZF0pICNtYWluQ29udGFpbmVyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1oZWFkZXItcGFuZWwtc2VhbWVkLWNvbnRhaW5lcjsKICAgICAgfQoKCiAgICAgIC8qCiAgICAgICAqIG1vZGU6IHdhdGVyZmFsbAogICAgICAgKi8KICAgICAgOmhvc3QoW21vZGU9d2F0ZXJmYWxsXSkgI21haW5Db250YWluZXIgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWhlYWRlci1wYW5lbC13YXRlcmZhbGwtY29udGFpbmVyOwogICAgICB9CgogICAgICAvKgogICAgICAgKiBtb2RlOiB3YXRlcmZhbGwtdGFsbAogICAgICAgKi8KICAgICAgOmhvc3QoW21vZGU9d2F0ZXJmYWxsLXRhbGxdKSAjbWFpbkNvbnRhaW5lciB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaGVhZGVyLXBhbmVsLXdhdGVyZmFsbC10YWxsLWNvbnRhaW5lcjsKICAgICAgfQoKICAgICAgI2Ryb3BTaGFkb3cgewogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41czsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwcHggNXB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1oZWFkZXItcGFuZWwtc2hhZG93OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAjZHJvcFNoYWRvdy5oYXMtc2hhZG93IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAjbWFpbkNvbnRhaW5lciA+IDo6c2xvdHRlZCguZml0KSB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZpdDsKICAgICAgfQoKICAgIDwvc3R5bGU+CgogICAgPHNsb3QgaWQ9ImhlYWRlclNsb3QiIG5hbWU9ImhlYWRlciI+PC9zbG90PgoKICAgIDxkaXYgaWQ9Im1haW5QYW5lbCI+CiAgICAgIDxkaXYgaWQ9Im1haW5Db250YWluZXIiIGNsYXNzXCQ9IltbX2NvbXB1dGVNYWluQ29udGFpbmVyQ2xhc3MobW9kZSldXSI+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBpZD0iZHJvcFNoYWRvdyI+PC9kaXY+CiAgICA8L2Rpdj4KYCxpczoicGFwZXItaGVhZGVyLXBhbmVsIixwcm9wZXJ0aWVzOnttb2RlOnt0eXBlOlN0cmluZyx2YWx1ZToic3RhbmRhcmQiLG9ic2VydmVyOiJfbW9kZUNoYW5nZWQiLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0sc2hhZG93Ont0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LHRhbGxDbGFzczp7dHlwZTpTdHJpbmcsdmFsdWU6InRhbGwifSxhdFRvcDp7dHlwZTpCb29sZWFuLHZhbHVlOiEwLG5vdGlmeTohMCxyZWFkT25seTohMCxyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9fSxvYnNlcnZlcnM6WyJfY29tcHV0ZURyb3BTaGFkb3dIaWRkZW4oYXRUb3AsIG1vZGUsIHNoYWRvdykiXSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX2FkZExpc3RlbmVyKCksdGhpcy5fa2VlcFNjcm9sbGluZ1N0YXRlKCl9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fcmVtb3ZlTGlzdGVuZXIoKX0scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLnNjcm9sbEhhbmRsZXI9dGhpcy5fc2Nyb2xsLmJpbmQodGhpcyksY29uc29sZS53YXJuKHRoaXMuaXMsImlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgYXBwLWxheW91dCBpbnN0ZWFkISIpfSxnZXQgaGVhZGVyKCl7cmV0dXJuIHp0KHRoaXMuJC5oZWFkZXJTbG90KS5nZXREaXN0cmlidXRlZE5vZGVzKClbMF19LGdldCBzY3JvbGxlcigpe3JldHVybiB0aGlzLl9nZXRTY3JvbGxlckZvck1vZGUodGhpcy5tb2RlKX0sZ2V0IHZpc2libGVTaGFkb3coKXtyZXR1cm4gdGhpcy4kLmRyb3BTaGFkb3cuY2xhc3NMaXN0LmNvbnRhaW5zKCJoYXMtc2hhZG93Iil9LF9jb21wdXRlRHJvcFNoYWRvd0hpZGRlbjpmdW5jdGlvbihlLHQscil7dmFyIG49UDkuc2hhZG93TW9kZVt0XTt0aGlzLnNoYWRvdz90aGlzLnRvZ2dsZUNsYXNzKCJoYXMtc2hhZG93IiwhMCx0aGlzLiQuZHJvcFNoYWRvdyk6bj09PVAwdD90aGlzLnRvZ2dsZUNsYXNzKCJoYXMtc2hhZG93IiwhMCx0aGlzLiQuZHJvcFNoYWRvdyk6bj09PWJXJiYhZT90aGlzLnRvZ2dsZUNsYXNzKCJoYXMtc2hhZG93IiwhMCx0aGlzLiQuZHJvcFNoYWRvdyk6dGhpcy50b2dnbGVDbGFzcygiaGFzLXNoYWRvdyIsITEsdGhpcy4kLmRyb3BTaGFkb3cpfSxfY29tcHV0ZU1haW5Db250YWluZXJDbGFzczpmdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gdC5mbGV4PWUhPT0iY292ZXIiLE9iamVjdC5rZXlzKHQpLmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gdFtyXX0pLmpvaW4oIiAiKX0sX2FkZExpc3RlbmVyOmZ1bmN0aW9uKCl7dGhpcy5zY3JvbGxlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuc2Nyb2xsSGFuZGxlcil9LF9yZW1vdmVMaXN0ZW5lcjpmdW5jdGlvbigpe3RoaXMuc2Nyb2xsZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLnNjcm9sbEhhbmRsZXIpfSxfbW9kZUNoYW5nZWQ6ZnVuY3Rpb24oZSx0KXt2YXIgcj1QOSxuPXRoaXMuaGVhZGVyLGk9MjAwO24mJihyLnRhbGxNb2RlW3RdJiYhci50YWxsTW9kZVtlXT8obi5jbGFzc0xpc3QucmVtb3ZlKHRoaXMudGFsbENsYXNzKSx0aGlzLmFzeW5jKGZ1bmN0aW9uKCl7bi5jbGFzc0xpc3QucmVtb3ZlKCJhbmltYXRlIil9LGkpKTp0aGlzLnRvZ2dsZUNsYXNzKCJhbmltYXRlIixyLnRhbGxNb2RlW2VdLG4pKSx0aGlzLl9rZWVwU2Nyb2xsaW5nU3RhdGUoKX0sX2tlZXBTY3JvbGxpbmdTdGF0ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuc2Nyb2xsZXIsdD10aGlzLmhlYWRlcjt0aGlzLl9zZXRBdFRvcChlLnNjcm9sbFRvcD09PTApLHQmJnRoaXMudGFsbENsYXNzJiZQOS50YWxsTW9kZVt0aGlzLm1vZGVdJiZ0aGlzLnRvZ2dsZUNsYXNzKHRoaXMudGFsbENsYXNzLHRoaXMuYXRUb3B8fHQuY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMudGFsbENsYXNzKSYmZS5zY3JvbGxIZWlnaHQ8dGhpcy5vZmZzZXRIZWlnaHQsdCl9LF9zY3JvbGw6ZnVuY3Rpb24oKXt0aGlzLl9rZWVwU2Nyb2xsaW5nU3RhdGUoKSx0aGlzLmZpcmUoImNvbnRlbnQtc2Nyb2xsIix7dGFyZ2V0OnRoaXMuc2Nyb2xsZXJ9LHtidWJibGVzOiExfSl9LF9nZXRTY3JvbGxlckZvck1vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIFA5Lm91dGVyU2Nyb2xsW2VdP3RoaXM6dGhpcy4kLm1haW5Db250YWluZXJ9fSk7WXQoe2lzOiJwYXBlci1pY29uLWJ1dHRvbiIsX3RlbXBsYXRlOlFgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHotaW5kZXg6IDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CgogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKCiAgICAgICAgLyoKICAgICAgICAgIE5PVEU6IEJvdGggdmFsdWVzIGFyZSBuZWVkZWQsIHNpbmNlIHNvbWUgcGhvbmVzIHJlcXVpcmUgdGhlIHZhbHVlIHRvCiAgICAgICAgICBiZSBcYHRyYW5zcGFyZW50XGAuCiAgICAgICAgKi8KICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7CiAgICAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsKCiAgICAgICAgLyogQmVjYXVzZSBvZiBwb2x5bWVyLzI1NTgsIHRoaXMgc3R5bGUgaGFzIGxvd2VyIHNwZWNpZmljaXR5IHRoYW4gKiAqLwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItaWNvbi1idXR0b247CiAgICAgIH0KCiAgICAgIDpob3N0ICNpbmsgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pY29uLWJ1dHRvbi1pbmstY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pY29uLWJ1dHRvbi1kaXNhYmxlZC10ZXh0LCB2YXIoLS1kaXNhYmxlZC10ZXh0LWNvbG9yKSk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBhdXRvOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1pY29uLWJ1dHRvbi1kaXNhYmxlZDsKICAgICAgfQoKICAgICAgOmhvc3QoW2hpZGRlbl0pIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KDpob3ZlcikgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWljb24tYnV0dG9uLWhvdmVyOwogICAgICB9CgogICAgICBpcm9uLWljb24gewogICAgICAgIC0taXJvbi1pY29uLXdpZHRoOiAxMDAlOwogICAgICAgIC0taXJvbi1pY29uLWhlaWdodDogMTAwJTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8aXJvbi1pY29uIGlkPSJpY29uIiBzcmM9Iltbc3JjXV0iIGljb249IltbaWNvbl1dIgogICAgICAgICAgICAgICBhbHQkPSJbW2FsdF1dIj48L2lyb24taWNvbj4KICBgLGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJidXR0b24iLHRhYmluZGV4OiIwIn0sYmVoYXZpb3JzOltqeF0scmVnaXN0ZXJlZDpmdW5jdGlvbigpe3RoaXMuX3RlbXBsYXRlLnNldEF0dHJpYnV0ZSgic3RyaXAtd2hpdGVzcGFjZSIsIiIpfSxwcm9wZXJ0aWVzOntzcmM6e3R5cGU6U3RyaW5nfSxpY29uOnt0eXBlOlN0cmluZ30sYWx0Ont0eXBlOlN0cmluZyxvYnNlcnZlcjoiX2FsdENoYW5nZWQifX0sX2FsdENoYW5nZWQ6ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLmdldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIpOyghcnx8dD09cikmJnRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixlKX19KTtZdCh7X3RlbXBsYXRlOlFgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiA0MDBweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZDsKICAgICAgICBwYWRkaW5nOiAycHg7CiAgICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0YXJlYTsKICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRhcmVhOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5taXJyb3ItdGV4dCB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBAYXBwbHkgLS1pcm9uLWF1dG9ncm93LXRleHRhcmVhOwogICAgICB9CgogICAgICAuZml0IHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZml0OwogICAgICB9CgogICAgICB0ZXh0YXJlYSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0OwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICAgIC8qIHNlZSBjb21tZW50cyBpbiB0ZW1wbGF0ZSAqLwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDsKICAgICAgICBAYXBwbHkgLS1pcm9uLWF1dG9ncm93LXRleHRhcmVhOwogICAgICB9CgogICAgICB0ZXh0YXJlYTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7CiAgICAgICAgQGFwcGx5IC0taXJvbi1hdXRvZ3Jvdy10ZXh0YXJlYS1wbGFjZWhvbGRlcjsKICAgICAgfQoKICAgICAgdGV4dGFyZWE6LW1vei1wbGFjZWhvbGRlciB7CiAgICAgICAgQGFwcGx5IC0taXJvbi1hdXRvZ3Jvdy10ZXh0YXJlYS1wbGFjZWhvbGRlcjsKICAgICAgfQoKICAgICAgdGV4dGFyZWE6Oi1tb3otcGxhY2Vob2xkZXIgewogICAgICAgIEBhcHBseSAtLWlyb24tYXV0b2dyb3ctdGV4dGFyZWEtcGxhY2Vob2xkZXI7CiAgICAgIH0KCiAgICAgIHRleHRhcmVhOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7CiAgICAgICAgQGFwcGx5IC0taXJvbi1hdXRvZ3Jvdy10ZXh0YXJlYS1wbGFjZWhvbGRlcjsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8IS0tIHRoZSBtaXJyb3Igc2l6ZXMgdGhlIGlucHV0L3RleHRhcmVhIHNvIGl0IGdyb3dzIHdpdGggdHlwaW5nIC0tPgogICAgPCEtLSB1c2UgJiMxNjA7IGluc3RlYWQgJm5ic3A7IG9mIHRvIGFsbG93IHRoaXMgZWxlbWVudCB0byBiZSB1c2VkIGluIFhIVE1MIC0tPgogICAgPGRpdiBpZD0ibWlycm9yIiBjbGFzcz0ibWlycm9yLXRleHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj4mbmJzcDs8L2Rpdj4KCiAgICA8IS0tIHNpemUgdGhlIGlucHV0L3RleHRhcmVhIHdpdGggYSBkaXYsIGJlY2F1c2UgdGhlIHRleHRhcmVhIGhhcyBpbnRyaW5zaWMgc2l6ZSBpbiBmZiAtLT4KICAgIDxkaXYgY2xhc3M9InRleHRhcmVhLWNvbnRhaW5lciBmaXQiPgogICAgICA8dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lJD0iW1tuYW1lXV0iIGFyaWEtbGFiZWwkPSJbW2xhYmVsXV0iIGF1dG9jb21wbGV0ZSQ9IltbYXV0b2NvbXBsZXRlXV0iIGF1dG9mb2N1cyQ9IltbYXV0b2ZvY3VzXV0iIGF1dG9jYXBpdGFsaXplJD0iW1thdXRvY2FwaXRhbGl6ZV1dIiBpbnB1dG1vZGUkPSJbW2lucHV0bW9kZV1dIiBwbGFjZWhvbGRlciQ9IltbcGxhY2Vob2xkZXJdXSIgcmVhZG9ubHkkPSJbW3JlYWRvbmx5XV0iIHJlcXVpcmVkJD0iW1tyZXF1aXJlZF1dIiBkaXNhYmxlZCQ9IltbZGlzYWJsZWRdXSIgcm93cyQ9Iltbcm93c11dIiBtaW5sZW5ndGgkPSJbW21pbmxlbmd0aF1dIiBtYXhsZW5ndGgkPSJbW21heGxlbmd0aF1dIj48L3RleHRhcmVhPgogICAgPC9kaXY+CmAsaXM6Imlyb24tYXV0b2dyb3ctdGV4dGFyZWEiLGJlaGF2aW9yczpbQ2gsRGldLHByb3BlcnRpZXM6e3ZhbHVlOntvYnNlcnZlcjoiX3ZhbHVlQ2hhbmdlZCIsdHlwZTpTdHJpbmcsbm90aWZ5OiEwfSxiaW5kVmFsdWU6e29ic2VydmVyOiJfYmluZFZhbHVlQ2hhbmdlZCIsdHlwZTpTdHJpbmcsbm90aWZ5OiEwfSxyb3dzOnt0eXBlOk51bWJlcix2YWx1ZToxLG9ic2VydmVyOiJfdXBkYXRlQ2FjaGVkIn0sbWF4Um93czp7dHlwZTpOdW1iZXIsdmFsdWU6MCxvYnNlcnZlcjoiX3VwZGF0ZUNhY2hlZCJ9LGF1dG9jb21wbGV0ZTp7dHlwZTpTdHJpbmcsdmFsdWU6Im9mZiJ9LGF1dG9mb2N1czp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxhdXRvY2FwaXRhbGl6ZTp7dHlwZTpTdHJpbmcsdmFsdWU6Im5vbmUifSxpbnB1dG1vZGU6e3R5cGU6U3RyaW5nfSxwbGFjZWhvbGRlcjp7dHlwZTpTdHJpbmd9LHJlYWRvbmx5Ont0eXBlOlN0cmluZ30scmVxdWlyZWQ6e3R5cGU6Qm9vbGVhbn0sbWlubGVuZ3RoOnt0eXBlOk51bWJlcn0sbWF4bGVuZ3RoOnt0eXBlOk51bWJlcn0sbGFiZWw6e3R5cGU6U3RyaW5nfX0sbGlzdGVuZXJzOntpbnB1dDoiX29uSW5wdXQifSxnZXQgdGV4dGFyZWEoKXtyZXR1cm4gdGhpcy4kLnRleHRhcmVhfSxnZXQgc2VsZWN0aW9uU3RhcnQoKXtyZXR1cm4gdGhpcy4kLnRleHRhcmVhLnNlbGVjdGlvblN0YXJ0fSxnZXQgc2VsZWN0aW9uRW5kKCl7cmV0dXJuIHRoaXMuJC50ZXh0YXJlYS5zZWxlY3Rpb25FbmR9LHNldCBzZWxlY3Rpb25TdGFydChlKXt0aGlzLiQudGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQ9ZX0sc2V0IHNlbGVjdGlvbkVuZChlKXt0aGlzLiQudGV4dGFyZWEuc2VsZWN0aW9uRW5kPWV9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dmFyIGU9bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvaVAoPzpbb2FdZHxob25lKS8pJiYhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvT1MgMVszNDU2Nzg5XS8pO2UmJih0aGlzLiQudGV4dGFyZWEuc3R5bGUubWFyZ2luTGVmdD0iLTNweCIpfSx2YWxpZGF0ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuJC50ZXh0YXJlYS52YWxpZGl0eS52YWxpZDtyZXR1cm4gZSYmKHRoaXMucmVxdWlyZWQmJnRoaXMudmFsdWU9PT0iIj9lPSExOnRoaXMuaGFzVmFsaWRhdG9yKCkmJihlPUNoLnZhbGlkYXRlLmNhbGwodGhpcyx0aGlzLnZhbHVlKSkpLHRoaXMuaW52YWxpZD0hZSx0aGlzLmZpcmUoImlyb24taW5wdXQtdmFsaWRhdGUiKSxlfSxfYmluZFZhbHVlQ2hhbmdlZDpmdW5jdGlvbihlKXt0aGlzLnZhbHVlPWV9LF92YWx1ZUNoYW5nZWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy50ZXh0YXJlYTshdHx8KHQudmFsdWUhPT1lJiYodC52YWx1ZT1lfHxlPT09MD9lOiIiKSx0aGlzLmJpbmRWYWx1ZT1lLHRoaXMuJC5taXJyb3IuaW5uZXJIVE1MPXRoaXMuX3ZhbHVlRm9yTWlycm9yKCksdGhpcy5maXJlKCJiaW5kLXZhbHVlLWNoYW5nZWQiLHt2YWx1ZTp0aGlzLmJpbmRWYWx1ZX0pKX0sX29uSW5wdXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9enQoZSkucGF0aDt0aGlzLnZhbHVlPXQ/dFswXS52YWx1ZTplLnRhcmdldC52YWx1ZX0sX2NvbnN0cmFpbjpmdW5jdGlvbihlKXt2YXIgdDtmb3IoZT1lfHxbIiJdLHRoaXMubWF4Um93cz4wJiZlLmxlbmd0aD50aGlzLm1heFJvd3M/dD1lLnNsaWNlKDAsdGhpcy5tYXhSb3dzKTp0PWUuc2xpY2UoMCk7dGhpcy5yb3dzPjAmJnQubGVuZ3RoPHRoaXMucm93czspdC5wdXNoKCIiKTtyZXR1cm4gdC5qb2luKCI8YnIvPiIpKyImIzE2MDsifSxfdmFsdWVGb3JNaXJyb3I6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnRleHRhcmVhO2lmKCEhZSlyZXR1cm4gdGhpcy50b2tlbnM9ZSYmZS52YWx1ZT9lLnZhbHVlLnJlcGxhY2UoLyYvZ20sIiZhbXA7IikucmVwbGFjZSgvIi9nbSwiJnF1b3Q7IikucmVwbGFjZSgvJy9nbSwiJiMzOTsiKS5yZXBsYWNlKC88L2dtLCImbHQ7IikucmVwbGFjZSgvPi9nbSwiJmd0OyIpLnNwbGl0KGAKYCk6WyIiXSx0aGlzLl9jb25zdHJhaW4odGhpcy50b2tlbnMpfSxfdXBkYXRlQ2FjaGVkOmZ1bmN0aW9uKCl7dGhpcy4kLm1pcnJvci5pbm5lckhUTUw9dGhpcy5fY29uc3RyYWluKHRoaXMudG9rZW5zKX19KTtZdCh7X3RlbXBsYXRlOlFgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgOmhvc3QoW2hpZGRlbl0pIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIGxhYmVsIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8cGFwZXItaW5wdXQtY29udGFpbmVyIG5vLWxhYmVsLWZsb2F0JD0iW1tub0xhYmVsRmxvYXRdXSIgYWx3YXlzLWZsb2F0LWxhYmVsPSJbW19jb21wdXRlQWx3YXlzRmxvYXRMYWJlbChhbHdheXNGbG9hdExhYmVsLHBsYWNlaG9sZGVyKV1dIiBhdXRvLXZhbGlkYXRlJD0iW1thdXRvVmFsaWRhdGVdXSIgZGlzYWJsZWQkPSJbW2Rpc2FibGVkXV0iIGludmFsaWQ9IltbaW52YWxpZF1dIj4KCiAgICAgIDxsYWJlbCBoaWRkZW4kPSJbWyFsYWJlbF1dIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9yJD0iW1tfaW5wdXRJZF1dIiBzbG90PSJsYWJlbCI+W1tsYWJlbF1dPC9sYWJlbD4KCiAgICAgIDxpcm9uLWF1dG9ncm93LXRleHRhcmVhIGNsYXNzPSJwYXBlci1pbnB1dC1pbnB1dCIgc2xvdD0iaW5wdXQiIGlkJD0iW1tfaW5wdXRJZF1dIiBhcmlhLWxhYmVsbGVkYnkkPSJbW19hcmlhTGFiZWxsZWRCeV1dIiBhcmlhLWRlc2NyaWJlZGJ5JD0iW1tfYXJpYURlc2NyaWJlZEJ5XV0iIGJpbmQtdmFsdWU9Int7dmFsdWV9fSIgaW52YWxpZD0ie3tpbnZhbGlkfX0iIHZhbGlkYXRvciQ9IltbdmFsaWRhdG9yXV0iIGRpc2FibGVkJD0iW1tkaXNhYmxlZF1dIiBhdXRvY29tcGxldGUkPSJbW2F1dG9jb21wbGV0ZV1dIiBhdXRvZm9jdXMkPSJbW2F1dG9mb2N1c11dIiBpbnB1dG1vZGUkPSJbW2lucHV0bW9kZV1dIiBuYW1lJD0iW1tuYW1lXV0iIHBsYWNlaG9sZGVyJD0iW1twbGFjZWhvbGRlcl1dIiByZWFkb25seSQ9IltbcmVhZG9ubHldXSIgcmVxdWlyZWQkPSJbW3JlcXVpcmVkXV0iIG1pbmxlbmd0aCQ9IltbbWlubGVuZ3RoXV0iIG1heGxlbmd0aCQ9IltbbWF4bGVuZ3RoXV0iIGF1dG9jYXBpdGFsaXplJD0iW1thdXRvY2FwaXRhbGl6ZV1dIiByb3dzJD0iW1tyb3dzXV0iIG1heC1yb3dzJD0iW1ttYXhSb3dzXV0iIG9uLWNoYW5nZT0iX29uQ2hhbmdlIj48L2lyb24tYXV0b2dyb3ctdGV4dGFyZWE+CgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbZXJyb3JNZXNzYWdlXV0iPgogICAgICAgIDxwYXBlci1pbnB1dC1lcnJvciBhcmlhLWxpdmU9ImFzc2VydGl2ZSIgc2xvdD0iYWRkLW9uIj5bW2Vycm9yTWVzc2FnZV1dPC9wYXBlci1pbnB1dC1lcnJvcj4KICAgICAgPC90ZW1wbGF0ZT4KCiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tjaGFyQ291bnRlcl1dIj4KICAgICAgICA8cGFwZXItaW5wdXQtY2hhci1jb3VudGVyIHNsb3Q9ImFkZC1vbiI+PC9wYXBlci1pbnB1dC1jaGFyLWNvdW50ZXI+CiAgICAgIDwvdGVtcGxhdGU+CgogICAgPC9wYXBlci1pbnB1dC1jb250YWluZXI+CmAsaXM6InBhcGVyLXRleHRhcmVhIixiZWhhdmlvcnM6W0E5LFRoXSxwcm9wZXJ0aWVzOntfYXJpYUxhYmVsbGVkQnk6e29ic2VydmVyOiJfYXJpYUxhYmVsbGVkQnlDaGFuZ2VkIix0eXBlOlN0cmluZ30sX2FyaWFEZXNjcmliZWRCeTp7b2JzZXJ2ZXI6Il9hcmlhRGVzY3JpYmVkQnlDaGFuZ2VkIix0eXBlOlN0cmluZ30sdmFsdWU6e3R5cGU6U3RyaW5nfSxyb3dzOnt0eXBlOk51bWJlcix2YWx1ZToxfSxtYXhSb3dzOnt0eXBlOk51bWJlcix2YWx1ZTowfX0sZ2V0IHNlbGVjdGlvblN0YXJ0KCl7cmV0dXJuIHRoaXMuJC5pbnB1dC50ZXh0YXJlYS5zZWxlY3Rpb25TdGFydH0sc2V0IHNlbGVjdGlvblN0YXJ0KGUpe3RoaXMuJC5pbnB1dC50ZXh0YXJlYS5zZWxlY3Rpb25TdGFydD1lfSxnZXQgc2VsZWN0aW9uRW5kKCl7cmV0dXJuIHRoaXMuJC5pbnB1dC50ZXh0YXJlYS5zZWxlY3Rpb25FbmR9LHNldCBzZWxlY3Rpb25FbmQoZSl7dGhpcy4kLmlucHV0LnRleHRhcmVhLnNlbGVjdGlvbkVuZD1lfSxfYXJpYUxhYmVsbGVkQnlDaGFuZ2VkOmZ1bmN0aW9uKGUpe3RoaXMuX2ZvY3VzYWJsZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLGUpfSxfYXJpYURlc2NyaWJlZEJ5Q2hhbmdlZDpmdW5jdGlvbihlKXt0aGlzLl9mb2N1c2FibGVFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1kZXNjcmliZWRieSIsZSl9LGdldCBfZm9jdXNhYmxlRWxlbWVudCgpe3JldHVybiB0aGlzLmlucHV0RWxlbWVudC50ZXh0YXJlYX19KTt2YXIgd1c9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTt3Vy5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKTt3Vy5pbm5lckhUTUw9YDxkb20tbW9kdWxlIGlkPSJwYXBlci1pdGVtLXNoYXJlZC1zdHlsZXMiPgogIDx0ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgOmhvc3QsIC5wYXBlci1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tcGFwZXItaXRlbS1taW4taGVpZ2h0LCA0OHB4KTsKICAgICAgICBwYWRkaW5nOiAwcHggMTZweDsKICAgICAgfQoKICAgICAgLnBhcGVyLWl0ZW0gewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtc3ViaGVhZDsKICAgICAgICBib3JkZXI6bm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtoaWRkZW5dKSwgLnBhcGVyLWl0ZW1baGlkZGVuXSB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICA6aG9zdCguaXJvbi1zZWxlY3RlZCksIC5wYXBlci1pdGVtLmlyb24tc2VsZWN0ZWQgewogICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1wYXBlci1pdGVtLXNlbGVjdGVkLXdlaWdodCwgYm9sZCk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWl0ZW0tc2VsZWN0ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pLCAucGFwZXItaXRlbVtkaXNhYmxlZF0gewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pdGVtLWRpc2FibGVkLWNvbG9yLCB2YXIoLS1kaXNhYmxlZC10ZXh0LWNvbG9yKSk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWl0ZW0tZGlzYWJsZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KDpmb2N1cyksIC5wYXBlci1pdGVtOmZvY3VzIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3V0bGluZTogMDsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItaXRlbS1mb2N1c2VkOwogICAgICB9CgogICAgICA6aG9zdCg6Zm9jdXMpOmJlZm9yZSwgLnBhcGVyLWl0ZW06Zm9jdXM6YmVmb3JlIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZml0OwoKICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgb3BhY2l0eTogdmFyKC0tZGFyay1kaXZpZGVyLW9wYWNpdHkpOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1pdGVtLWZvY3VzZWQtYmVmb3JlOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvdGVtcGxhdGU+CjwvZG9tLW1vZHVsZT5gO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQod1cuY29udGVudCk7dmFyIFliZT17aG9zdEF0dHJpYnV0ZXM6e3JvbGU6Im9wdGlvbiIsdGFiaW5kZXg6IjAifX0sSTk9W01oLERpLFliZV07WXQoe190ZW1wbGF0ZTpRYAogICAgPHN0eWxlIGluY2x1ZGU9InBhcGVyLWl0ZW0tc2hhcmVkLXN0eWxlcyI+CiAgICAgIDpob3N0IHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtaG9yaXpvbnRhbDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtc3ViaGVhZDsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItaXRlbTsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxzbG90Pjwvc2xvdD4KYCxpczoicGFwZXItaXRlbSIsYmVoYXZpb3JzOltJOV19KTtZdCh7X3RlbXBsYXRlOlFgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBuZWVkZWQgZm9yIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzIHRvIHdvcmsgb24gZmYgKi8KICAgICAgICBAYXBwbHkgLS1sYXlvdXQtdmVydGljYWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlci1qdXN0aWZpZWQ7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXg7CiAgICAgIH0KCiAgICAgIDpob3N0KFt0d28tbGluZV0pIHsKICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1wYXBlci1pdGVtLWJvZHktdHdvLWxpbmUtbWluLWhlaWdodCwgNzJweCk7CiAgICAgIH0KCiAgICAgIDpob3N0KFt0aHJlZS1saW5lXSkgewogICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXBhcGVyLWl0ZW0tYm9keS10aHJlZS1saW5lLW1pbi1oZWlnaHQsIDg4cHgpOwogICAgICB9CgogICAgICA6aG9zdCA+IDo6c2xvdHRlZCgqKSB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICA6aG9zdCA+IDo6c2xvdHRlZChbc2Vjb25kYXJ5XSkgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtYm9keTE7CgogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pdGVtLWJvZHktc2Vjb25kYXJ5LWNvbG9yLCB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcikpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1pdGVtLWJvZHktc2Vjb25kYXJ5OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxzbG90Pjwvc2xvdD4KYCxpczoicGFwZXItaXRlbS1ib2R5In0pO1l0KHtfdGVtcGxhdGU6UWAKICAgIDxzdHlsZSBpbmNsdWRlPSJwYXBlci1pdGVtLXNoYXJlZC1zdHlsZXMiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtaG9yaXpvbnRhbDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtc3ViaGVhZDsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItaXRlbTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pY29uLWl0ZW07CiAgICAgIH0KCiAgICAgIC5jb250ZW50LWljb24gewogICAgICAgIEBhcHBseSAtLWxheW91dC1ob3Jpem9udGFsOwogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXI7CgogICAgICAgIHdpZHRoOiB2YXIoLS1wYXBlci1pdGVtLWljb24td2lkdGgsIDU2cHgpOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWl0ZW0taWNvbjsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGlkPSJjb250ZW50SWNvbiIgY2xhc3M9ImNvbnRlbnQtaWNvbiI+CiAgICAgIDxzbG90IG5hbWU9Iml0ZW0taWNvbiI+PC9zbG90PgogICAgPC9kaXY+CiAgICA8c2xvdD48L3Nsb3Q+CmAsaXM6InBhcGVyLWljb24taXRlbSIsYmVoYXZpb3JzOltJOV19KTt2YXIgU1c9e3Byb3BlcnRpZXM6e211bHRpOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsb2JzZXJ2ZXI6Im11bHRpQ2hhbmdlZCJ9LHNlbGVjdGVkVmFsdWVzOnt0eXBlOkFycmF5LG5vdGlmeTohMCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX0sc2VsZWN0ZWRJdGVtczp7dHlwZTpBcnJheSxyZWFkT25seTohMCxub3RpZnk6ITAsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bXX19fSxvYnNlcnZlcnM6WyJfdXBkYXRlU2VsZWN0ZWQoc2VsZWN0ZWRWYWx1ZXMuc3BsaWNlcykiXSxzZWxlY3Q6ZnVuY3Rpb24oZSl7dGhpcy5tdWx0aT90aGlzLl90b2dnbGVTZWxlY3RlZChlKTp0aGlzLnNlbGVjdGVkPWV9LG11bHRpQ2hhbmdlZDpmdW5jdGlvbihlKXt0aGlzLl9zZWxlY3Rpb24ubXVsdGk9ZSx0aGlzLl91cGRhdGVTZWxlY3RlZCgpfSxnZXQgX3Nob3VsZFVwZGF0ZVNlbGVjdGlvbigpe3JldHVybiB0aGlzLnNlbGVjdGVkIT1udWxsfHx0aGlzLnNlbGVjdGVkVmFsdWVzIT1udWxsJiZ0aGlzLnNlbGVjdGVkVmFsdWVzLmxlbmd0aH0sX3VwZGF0ZUF0dHJGb3JTZWxlY3RlZDpmdW5jdGlvbigpe3RoaXMubXVsdGk/dGhpcy5zZWxlY3RlZEl0ZW1zJiZ0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoPjAmJih0aGlzLnNlbGVjdGVkVmFsdWVzPXRoaXMuc2VsZWN0ZWRJdGVtcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2luZGV4VG9WYWx1ZSh0aGlzLmluZGV4T2YoZSkpfSx0aGlzKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUhPW51bGx9LHRoaXMpKTpTaC5fdXBkYXRlQXR0ckZvclNlbGVjdGVkLmFwcGx5KHRoaXMpfSxfdXBkYXRlU2VsZWN0ZWQ6ZnVuY3Rpb24oKXt0aGlzLm11bHRpP3RoaXMuX3NlbGVjdE11bHRpKHRoaXMuc2VsZWN0ZWRWYWx1ZXMpOnRoaXMuX3NlbGVjdFNlbGVjdGVkKHRoaXMuc2VsZWN0ZWQpfSxfc2VsZWN0TXVsdGk6ZnVuY3Rpb24oZSl7ZT1lfHxbXTt2YXIgdD0odGhpcy5fdmFsdWVzVG9JdGVtcyhlKXx8W10pLmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gaSE9bnVsbH0pO3RoaXMuX3NlbGVjdGlvbi5jbGVhcih0KTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl0aGlzLl9zZWxlY3Rpb24uc2V0SXRlbVNlbGVjdGVkKHRbcl0sITApO2lmKHRoaXMuZmFsbGJhY2tTZWxlY3Rpb24mJiF0aGlzLl9zZWxlY3Rpb24uZ2V0KCkubGVuZ3RoKXt2YXIgbj10aGlzLl92YWx1ZVRvSXRlbSh0aGlzLmZhbGxiYWNrU2VsZWN0aW9uKTtuJiZ0aGlzLnNlbGVjdCh0aGlzLmZhbGxiYWNrU2VsZWN0aW9uKX19LF9zZWxlY3Rpb25DaGFuZ2U6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9zZWxlY3Rpb24uZ2V0KCk7dGhpcy5tdWx0aT8odGhpcy5fc2V0U2VsZWN0ZWRJdGVtcyhlKSx0aGlzLl9zZXRTZWxlY3RlZEl0ZW0oZS5sZW5ndGg/ZVswXTpudWxsKSk6ZSE9bnVsbD8odGhpcy5fc2V0U2VsZWN0ZWRJdGVtcyhbZV0pLHRoaXMuX3NldFNlbGVjdGVkSXRlbShlKSk6KHRoaXMuX3NldFNlbGVjdGVkSXRlbXMoW10pLHRoaXMuX3NldFNlbGVjdGVkSXRlbShudWxsKSl9LF90b2dnbGVTZWxlY3RlZDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnNlbGVjdGVkVmFsdWVzLmluZGV4T2YoZSkscj10PDA7cj90aGlzLnB1c2goInNlbGVjdGVkVmFsdWVzIixlKTp0aGlzLnNwbGljZSgic2VsZWN0ZWRWYWx1ZXMiLHQsMSl9LF92YWx1ZXNUb0l0ZW1zOmZ1bmN0aW9uKGUpe3JldHVybiBlPT1udWxsP251bGw6ZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3ZhbHVlVG9JdGVtKHQpfSx0aGlzKX19LEkwdD1bU2gsU1ddO3ZhciB5Xz17cHJvcGVydGllczp7Zm9jdXNlZEl0ZW06e29ic2VydmVyOiJfZm9jdXNlZEl0ZW1DaGFuZ2VkIixyZWFkT25seTohMCx0eXBlOk9iamVjdH0sYXR0ckZvckl0ZW1UaXRsZTp7dHlwZTpTdHJpbmd9LGRpc2FibGVkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsb2JzZXJ2ZXI6Il9kaXNhYmxlZENoYW5nZWQifX0sX01PRElGSUVSX0tFWVM6WyJBbHQiLCJBbHRHcmFwaCIsIkNhcHNMb2NrIiwiQ29udHJvbCIsIkZuIiwiRm5Mb2NrIiwiSHlwZXIiLCJNZXRhIiwiTnVtTG9jayIsIk9TIiwiU2Nyb2xsTG9jayIsIlNoaWZ0IiwiU3VwZXIiLCJTeW1ib2wiLCJTeW1ib2xMb2NrIl0sX1NFQVJDSF9SRVNFVF9USU1FT1VUX01TOjFlMyxfcHJldmlvdXNUYWJJbmRleDowLGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJtZW51In0sb2JzZXJ2ZXJzOlsiX3VwZGF0ZU11bHRpc2VsZWN0YWJsZShtdWx0aSkiXSxsaXN0ZW5lcnM6e2ZvY3VzOiJfb25Gb2N1cyIsa2V5ZG93bjoiX29uS2V5ZG93biIsImlyb24taXRlbXMtY2hhbmdlZCI6Il9vbklyb25JdGVtc0NoYW5nZWQifSxrZXlCaW5kaW5nczp7dXA6Il9vblVwS2V5Iixkb3duOiJfb25Eb3duS2V5Iixlc2M6Il9vbkVzY0tleSIsInNoaWZ0K3RhYjprZXlkb3duIjoiX29uU2hpZnRUYWJEb3duIn0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl9yZXNldFRhYmluZGljZXMoKX0sc2VsZWN0OmZ1bmN0aW9uKGUpe3RoaXMuX2RlZmF1bHRGb2N1c0FzeW5jJiYodGhpcy5jYW5jZWxBc3luYyh0aGlzLl9kZWZhdWx0Rm9jdXNBc3luYyksdGhpcy5fZGVmYXVsdEZvY3VzQXN5bmM9bnVsbCk7dmFyIHQ9dGhpcy5fdmFsdWVUb0l0ZW0oZSk7dCYmdC5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIil8fCh0aGlzLl9zZXRGb2N1c2VkSXRlbSh0KSxTVy5zZWxlY3QuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sX3Jlc2V0VGFiaW5kaWNlczpmdW5jdGlvbigpe3ZhciBlPXRoaXMubXVsdGk/dGhpcy5zZWxlY3RlZEl0ZW1zJiZ0aGlzLnNlbGVjdGVkSXRlbXNbMF06dGhpcy5zZWxlY3RlZEl0ZW07dGhpcy5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3Quc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsdD09PWU/IjAiOiItMSIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIix0aGlzLl9zZWxlY3Rpb24uaXNTZWxlY3RlZCh0KSl9LHRoaXMpfSxfdXBkYXRlTXVsdGlzZWxlY3RhYmxlOmZ1bmN0aW9uKGUpe2U/dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtbXVsdGlzZWxlY3RhYmxlIiwidHJ1ZSIpOnRoaXMucmVtb3ZlQXR0cmlidXRlKCJhcmlhLW11bHRpc2VsZWN0YWJsZSIpfSxfZm9jdXNXaXRoS2V5Ym9hcmRFdmVudDpmdW5jdGlvbihlKXtpZih0aGlzLl9NT0RJRklFUl9LRVlTLmluZGV4T2YoZS5rZXkpPT09LTEpe3RoaXMuY2FuY2VsRGVib3VuY2VyKCJfY2xlYXJTZWFyY2hUZXh0Iik7dmFyIHQ9dGhpcy5fc2VhcmNoVGV4dHx8IiIscj1lLmtleSYmZS5rZXkubGVuZ3RoPT0xP2Uua2V5OlN0cmluZy5mcm9tQ2hhckNvZGUoZS5rZXlDb2RlKTt0Kz1yLnRvTG9jYWxlTG93ZXJDYXNlKCk7Zm9yKHZhciBuPXQubGVuZ3RoLGk9MCxvO289dGhpcy5pdGVtc1tpXTtpKyspaWYoIW8uaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpKXt2YXIgYT10aGlzLmF0dHJGb3JJdGVtVGl0bGV8fCJ0ZXh0Q29udGVudCIscz0ob1thXXx8by5nZXRBdHRyaWJ1dGUoYSl8fCIiKS50cmltKCk7aWYoIShzLmxlbmd0aDxuKSYmcy5zbGljZSgwLG4pLnRvTG9jYWxlTG93ZXJDYXNlKCk9PXQpe3RoaXMuX3NldEZvY3VzZWRJdGVtKG8pO2JyZWFrfX10aGlzLl9zZWFyY2hUZXh0PXQsdGhpcy5kZWJvdW5jZSgiX2NsZWFyU2VhcmNoVGV4dCIsdGhpcy5fY2xlYXJTZWFyY2hUZXh0LHRoaXMuX1NFQVJDSF9SRVNFVF9USU1FT1VUX01TKX19LF9jbGVhclNlYXJjaFRleHQ6ZnVuY3Rpb24oKXt0aGlzLl9zZWFyY2hUZXh0PSIifSxfZm9jdXNQcmV2aW91czpmdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLml0ZW1zLmxlbmd0aCx0PU51bWJlcih0aGlzLmluZGV4T2YodGhpcy5mb2N1c2VkSXRlbSkpLHI9MTtyPGUrMTtyKyspe3ZhciBuPXRoaXMuaXRlbXNbKHQtcitlKSVlXTtpZighbi5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIikpe3ZhciBpPXp0KG4pLmdldE93bmVyUm9vdCgpfHxkb2N1bWVudDtpZih0aGlzLl9zZXRGb2N1c2VkSXRlbShuKSx6dChpKS5hY3RpdmVFbGVtZW50PT1uKXJldHVybn19fSxfZm9jdXNOZXh0OmZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuaXRlbXMubGVuZ3RoLHQ9TnVtYmVyKHRoaXMuaW5kZXhPZih0aGlzLmZvY3VzZWRJdGVtKSkscj0xO3I8ZSsxO3IrKyl7dmFyIG49dGhpcy5pdGVtc1sodCtyKSVlXTtpZighbi5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIikpe3ZhciBpPXp0KG4pLmdldE93bmVyUm9vdCgpfHxkb2N1bWVudDtpZih0aGlzLl9zZXRGb2N1c2VkSXRlbShuKSx6dChpKS5hY3RpdmVFbGVtZW50PT1uKXJldHVybn19fSxfYXBwbHlTZWxlY3Rpb246ZnVuY3Rpb24oZSx0KXt0P2Uuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIiwidHJ1ZSIpOmUuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIiwiZmFsc2UiKSxTaC5fYXBwbHlTZWxlY3Rpb24uYXBwbHkodGhpcyxhcmd1bWVudHMpfSxfZm9jdXNlZEl0ZW1DaGFuZ2VkOmZ1bmN0aW9uKGUsdCl7dCYmdC5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiLTEiKSxlJiYhZS5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIikmJiF0aGlzLmRpc2FibGVkJiYoZS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLGUuZm9jdXMoKSl9LF9vbklyb25JdGVtc0NoYW5nZWQ6ZnVuY3Rpb24oZSl7ZS5kZXRhaWwuYWRkZWROb2Rlcy5sZW5ndGgmJnRoaXMuX3Jlc2V0VGFiaW5kaWNlcygpfSxfb25TaGlmdFRhYkRvd246ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5nZXRBdHRyaWJ1dGUoInRhYmluZGV4Iik7eV8uX3NoaWZ0VGFiUHJlc3NlZD0hMCx0aGlzLl9zZXRGb2N1c2VkSXRlbShudWxsKSx0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCItMSIpLHRoaXMuYXN5bmMoZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLHQpLHlfLl9zaGlmdFRhYlByZXNzZWQ9ITF9LDEpfSxfb25Gb2N1czpmdW5jdGlvbihlKXtpZigheV8uX3NoaWZ0VGFiUHJlc3NlZCl7dmFyIHQ9enQoZSkucm9vdFRhcmdldDt0IT09dGhpcyYmdHlwZW9mIHQudGFiSW5kZXghPSJ1bmRlZmluZWQiJiYhdGhpcy5pc0xpZ2h0RGVzY2VuZGFudCh0KXx8KHRoaXMuX2RlZmF1bHRGb2N1c0FzeW5jPXRoaXMuYXN5bmMoZnVuY3Rpb24oKXt2YXIgcj10aGlzLm11bHRpP3RoaXMuc2VsZWN0ZWRJdGVtcyYmdGhpcy5zZWxlY3RlZEl0ZW1zWzBdOnRoaXMuc2VsZWN0ZWRJdGVtO3RoaXMuX3NldEZvY3VzZWRJdGVtKG51bGwpLHI/dGhpcy5fc2V0Rm9jdXNlZEl0ZW0ocik6dGhpcy5pdGVtc1swXSYmdGhpcy5fZm9jdXNOZXh0KCl9KSl9fSxfb25VcEtleTpmdW5jdGlvbihlKXt0aGlzLl9mb2N1c1ByZXZpb3VzKCksZS5kZXRhaWwua2V5Ym9hcmRFdmVudC5wcmV2ZW50RGVmYXVsdCgpfSxfb25Eb3duS2V5OmZ1bmN0aW9uKGUpe3RoaXMuX2ZvY3VzTmV4dCgpLGUuZGV0YWlsLmtleWJvYXJkRXZlbnQucHJldmVudERlZmF1bHQoKX0sX29uRXNjS2V5OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZm9jdXNlZEl0ZW07dCYmdC5ibHVyKCl9LF9vbktleWRvd246ZnVuY3Rpb24oZSl7dGhpcy5rZXlib2FyZEV2ZW50TWF0Y2hlc0tleXMoZSwidXAgZG93biBlc2MiKXx8dGhpcy5fZm9jdXNXaXRoS2V5Ym9hcmRFdmVudChlKSxlLnN0b3BQcm9wYWdhdGlvbigpfSxfYWN0aXZhdGVIYW5kbGVyOmZ1bmN0aW9uKGUpe1NoLl9hY3RpdmF0ZUhhbmRsZXIuY2FsbCh0aGlzLGUpLGUuc3RvcFByb3BhZ2F0aW9uKCl9LF9kaXNhYmxlZENoYW5nZWQ6ZnVuY3Rpb24oZSl7ZT8odGhpcy5fcHJldmlvdXNUYWJJbmRleD10aGlzLmhhc0F0dHJpYnV0ZSgidGFiaW5kZXgiKT90aGlzLnRhYkluZGV4OjAsdGhpcy5yZW1vdmVBdHRyaWJ1dGUoInRhYmluZGV4IikpOnRoaXMuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpfHx0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLHRoaXMuX3ByZXZpb3VzVGFiSW5kZXgpfX07eV8uX3NoaWZ0VGFiUHJlc3NlZD0hMTt2YXIgTDk9W0kwdCxPbyx5X107WXQoe190ZW1wbGF0ZTpRYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CgogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcGVyLWxpc3Rib3gtYmFja2dyb3VuZC1jb2xvciwgdmFyKC0tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yKSk7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWxpc3Rib3gtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1saXN0Ym94OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxzbG90Pjwvc2xvdD4KYCxpczoicGFwZXItbGlzdGJveCIsYmVoYXZpb3JzOltMOV0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6Imxpc3Rib3gifX0pO3ZhciBMMHQ9UWAKPGRvbS1tb2R1bGUgaWQ9InBhcGVyLW1hdGVyaWFsLXNoYXJlZC1zdHlsZXMiPgogIDx0ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2VsZXZhdGlvbj0iMSJdKSB7CiAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi0yZHA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtlbGV2YXRpb249IjIiXSkgewogICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tNGRwOwogICAgICB9CgogICAgICA6aG9zdChbZWxldmF0aW9uPSIzIl0pIHsKICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLTZkcDsKICAgICAgfQoKICAgICAgOmhvc3QoW2VsZXZhdGlvbj0iNCJdKSB7CiAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi04ZHA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtlbGV2YXRpb249IjUiXSkgewogICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tMTZkcDsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L3RlbXBsYXRlPgo8L2RvbS1tb2R1bGU+CmA7TDB0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoTDB0LmNvbnRlbnQpO1l0KHtfdGVtcGxhdGU6UWAKICAgIDxzdHlsZSBpbmNsdWRlPSJwYXBlci1tYXRlcmlhbC1zaGFyZWQtc3R5bGVzIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICA6aG9zdChbYW5pbWF0ZWRdKSB7CiAgICAgICAgQGFwcGx5IC0tc2hhZG93LXRyYW5zaXRpb247CiAgICAgIH0KICAgICAgOmhvc3QgewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxzbG90Pjwvc2xvdD4KYCxpczoicGFwZXItbWF0ZXJpYWwiLHByb3BlcnRpZXM6e2VsZXZhdGlvbjp7dHlwZTpOdW1iZXIscmVmbGVjdFRvQXR0cmlidXRlOiEwLHZhbHVlOjF9LGFuaW1hdGVkOnt0eXBlOkJvb2xlYW4scmVmbGVjdFRvQXR0cmlidXRlOiEwLHZhbHVlOiExfX19KTt2YXIgazk9e3Byb3BlcnRpZXM6e3ZhbHVlOnt0eXBlOk51bWJlcix2YWx1ZTowLG5vdGlmeTohMCxyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LG1pbjp7dHlwZTpOdW1iZXIsdmFsdWU6MCxub3RpZnk6ITB9LG1heDp7dHlwZTpOdW1iZXIsdmFsdWU6MTAwLG5vdGlmeTohMH0sc3RlcDp7dHlwZTpOdW1iZXIsdmFsdWU6MSxub3RpZnk6ITB9LHJhdGlvOnt0eXBlOk51bWJlcix2YWx1ZTowLHJlYWRPbmx5OiEwLG5vdGlmeTohMH19LG9ic2VydmVyczpbIl91cGRhdGUodmFsdWUsIG1pbiwgbWF4LCBzdGVwKSJdLF9jYWxjUmF0aW86ZnVuY3Rpb24oZSl7cmV0dXJuKHRoaXMuX2NsYW1wVmFsdWUoZSktdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbil9LF9jbGFtcFZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLm1pbih0aGlzLm1heCxNYXRoLm1heCh0aGlzLm1pbix0aGlzLl9jYWxjU3RlcChlKSkpfSxfY2FsY1N0ZXA6ZnVuY3Rpb24oZSl7aWYoZT1wYXJzZUZsb2F0KGUpLCF0aGlzLnN0ZXApcmV0dXJuIGU7dmFyIHQ9TWF0aC5yb3VuZCgoZS10aGlzLm1pbikvdGhpcy5zdGVwKTtyZXR1cm4gdGhpcy5zdGVwPDE/dC8oMS90aGlzLnN0ZXApK3RoaXMubWluOnQqdGhpcy5zdGVwK3RoaXMubWlufSxfdmFsaWRhdGVWYWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX2NsYW1wVmFsdWUodGhpcy52YWx1ZSk7cmV0dXJuIHRoaXMudmFsdWU9dGhpcy5vbGRWYWx1ZT1pc05hTihlKT90aGlzLm9sZFZhbHVlOmUsdGhpcy52YWx1ZSE9PWV9LF91cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLl92YWxpZGF0ZVZhbHVlKCksdGhpcy5fc2V0UmF0aW8odGhpcy5fY2FsY1JhdGlvKHRoaXMudmFsdWUpKjEwMCl9fTtZdCh7X3RlbXBsYXRlOlFgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMjAwcHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIDpob3N0KFtoaWRkZW5dKSwgW2hpZGRlbl0gewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgI3Byb2dyZXNzQ29udGFpbmVyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1wcm9ncmVzcy1jb250YWluZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAjcHJvZ3Jlc3NDb250YWluZXIsCiAgICAgIC8qIHRoZSBzdHJpcGUgZm9yIHRoZSBpbmRldGVybWluYXRlIGFuaW1hdGlvbiovCiAgICAgIC5pbmRldGVybWluYXRlOjphZnRlciB7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wYXBlci1wcm9ncmVzcy1oZWlnaHQsIDRweCk7CiAgICAgIH0KCiAgICAgICNwcmltYXJ5UHJvZ3Jlc3MsCiAgICAgICNzZWNvbmRhcnlQcm9ncmVzcywKICAgICAgLmluZGV0ZXJtaW5hdGU6OmFmdGVyIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZml0OwogICAgICB9CgogICAgICAjcHJvZ3Jlc3NDb250YWluZXIsCiAgICAgIC5pbmRldGVybWluYXRlOjphZnRlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcGFwZXItcHJvZ3Jlc3MtY29udGFpbmVyLWNvbG9yLCB2YXIoLS1nb29nbGUtZ3JleS0zMDApKTsKICAgICAgfQoKICAgICAgOmhvc3QoLnRyYW5zaXRpbmcpICNwcmltYXJ5UHJvZ3Jlc3MsCiAgICAgIDpob3N0KC50cmFuc2l0aW5nKSAjc2Vjb25kYXJ5UHJvZ3Jlc3MgewogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm07CiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtOwoKICAgICAgICAvKiBEdXJhdGlvbiAqLwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItcHJvZ3Jlc3MtdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4wOHMpOwogICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXByb2dyZXNzLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMDhzKTsKCiAgICAgICAgLyogVGltaW5nIGZ1bmN0aW9uICovCiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tcGFwZXItcHJvZ3Jlc3MtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2UpOwogICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1wYXBlci1wcm9ncmVzcy10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZSk7CgogICAgICAgIC8qIERlbGF5ICovCiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS1wYXBlci1wcm9ncmVzcy10cmFuc2l0aW9uLWRlbGF5LCAwcyk7CiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tcGFwZXItcHJvZ3Jlc3MtdHJhbnNpdGlvbi1kZWxheSwgMHMpOwogICAgICB9CgogICAgICAjcHJpbWFyeVByb2dyZXNzLAogICAgICAjc2Vjb25kYXJ5UHJvZ3Jlc3MgewogICAgICAgIEBhcHBseSAtLWxheW91dC1maXQ7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjsKICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDApOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KCiAgICAgICNwcmltYXJ5UHJvZ3Jlc3MgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcGVyLXByb2dyZXNzLWFjdGl2ZS1jb2xvciwgdmFyKC0tZ29vZ2xlLWdyZWVuLTUwMCkpOwogICAgICB9CgogICAgICAjc2Vjb25kYXJ5UHJvZ3Jlc3MgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcGVyLXByb2dyZXNzLXNlY29uZGFyeS1jb2xvciwgdmFyKC0tZ29vZ2xlLWdyZWVuLTEwMCkpOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAjcHJpbWFyeVByb2dyZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYXBlci1wcm9ncmVzcy1kaXNhYmxlZC1hY3RpdmUtY29sb3IsIHZhcigtLWdvb2dsZS1ncmV5LTUwMCkpOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAjc2Vjb25kYXJ5UHJvZ3Jlc3MgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcGVyLXByb2dyZXNzLWRpc2FibGVkLXNlY29uZGFyeS1jb2xvciwgdmFyKC0tZ29vZ2xlLWdyZXktMzAwKSk7CiAgICAgIH0KCiAgICAgIDpob3N0KDpub3QoW2Rpc2FibGVkXSkpICNwcmltYXJ5UHJvZ3Jlc3MuaW5kZXRlcm1pbmF0ZSB7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyOwogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBpbmRldGVybWluYXRlLWJhciB2YXIoLS1wYXBlci1wcm9ncmVzcy1pbmRldGVybWluYXRlLWN5Y2xlLWR1cmF0aW9uLCAycykgbGluZWFyIGluZmluaXRlOwogICAgICAgIGFuaW1hdGlvbjogaW5kZXRlcm1pbmF0ZS1iYXIgdmFyKC0tcGFwZXItcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZS1jeWNsZS1kdXJhdGlvbiwgMnMpIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgOmhvc3QoOm5vdChbZGlzYWJsZWRdKSkgI3ByaW1hcnlQcm9ncmVzcy5pbmRldGVybWluYXRlOjphZnRlciB7CiAgICAgICAgY29udGVudDogIiI7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7CgogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBpbmRldGVybWluYXRlLXNwbGl0dGVyIHZhcigtLXBhcGVyLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtY3ljbGUtZHVyYXRpb24sIDJzKSBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgYW5pbWF0aW9uOiBpbmRldGVybWluYXRlLXNwbGl0dGVyIHZhcigtLXBhcGVyLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtY3ljbGUtZHVyYXRpb24sIDJzKSBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBpbmRldGVybWluYXRlLWJhciB7CiAgICAgICAgMCUgewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgxKSB0cmFuc2xhdGVYKC0xMDAlKTsKICAgICAgICB9CiAgICAgICAgNTAlIHsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMSkgdHJhbnNsYXRlWCgwJSk7CiAgICAgICAgfQogICAgICAgIDc1JSB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDEpIHRyYW5zbGF0ZVgoMCUpOwogICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjI4LC42MiwuMzcsLjkxKTsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDApIHRyYW5zbGF0ZVgoMCUpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGUtc3BsaXR0ZXIgewogICAgICAgIDAlIHsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLjc1KSB0cmFuc2xhdGVYKC0xMjUlKTsKICAgICAgICB9CiAgICAgICAgMzAlIHsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLjc1KSB0cmFuc2xhdGVYKC0xMjUlKTsKICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC40MiwwLC42LC44KTsKICAgICAgICB9CiAgICAgICAgOTAlIHsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLjc1KSB0cmFuc2xhdGVYKDEyNSUpOwogICAgICAgIH0KICAgICAgICAxMDAlIHsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLjc1KSB0cmFuc2xhdGVYKDEyNSUpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBpbmRldGVybWluYXRlLWJhciB7CiAgICAgICAgMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSkgdHJhbnNsYXRlWCgtMTAwJSk7CiAgICAgICAgfQogICAgICAgIDUwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKSB0cmFuc2xhdGVYKDAlKTsKICAgICAgICB9CiAgICAgICAgNzUlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpIHRyYW5zbGF0ZVgoMCUpOwogICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4yOCwuNjIsLjM3LC45MSk7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCkgdHJhbnNsYXRlWCgwJSk7CiAgICAgICAgfQogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGUtc3BsaXR0ZXIgewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC43NSkgdHJhbnNsYXRlWCgtMTI1JSk7CiAgICAgICAgfQogICAgICAgIDMwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCguNzUpIHRyYW5zbGF0ZVgoLTEyNSUpOwogICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC40MiwwLC42LC44KTsKICAgICAgICB9CiAgICAgICAgOTAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC43NSkgdHJhbnNsYXRlWCgxMjUlKTsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCguNzUpIHRyYW5zbGF0ZVgoMTI1JSk7CiAgICAgICAgfQogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgaWQ9InByb2dyZXNzQ29udGFpbmVyIj4KICAgICAgPGRpdiBpZD0ic2Vjb25kYXJ5UHJvZ3Jlc3MiIGhpZGRlblwkPSJbW19oaWRlU2Vjb25kYXJ5UHJvZ3Jlc3Moc2Vjb25kYXJ5UmF0aW8pXV0iPjwvZGl2PgogICAgICA8ZGl2IGlkPSJwcmltYXJ5UHJvZ3Jlc3MiPjwvZGl2PgogICAgPC9kaXY+CmAsaXM6InBhcGVyLXByb2dyZXNzIixiZWhhdmlvcnM6W2s5XSxwcm9wZXJ0aWVzOntzZWNvbmRhcnlQcm9ncmVzczp7dHlwZTpOdW1iZXIsdmFsdWU6MH0sc2Vjb25kYXJ5UmF0aW86e3R5cGU6TnVtYmVyLHZhbHVlOjAscmVhZE9ubHk6ITB9LGluZGV0ZXJtaW5hdGU6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoiX3RvZ2dsZUluZGV0ZXJtaW5hdGUifSxkaXNhYmxlZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCxvYnNlcnZlcjoiX2Rpc2FibGVkQ2hhbmdlZCJ9fSxvYnNlcnZlcnM6WyJfcHJvZ3Jlc3NDaGFuZ2VkKHNlY29uZGFyeVByb2dyZXNzLCB2YWx1ZSwgbWluLCBtYXgsIGluZGV0ZXJtaW5hdGUpIl0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6InByb2dyZXNzYmFyIn0sX3RvZ2dsZUluZGV0ZXJtaW5hdGU6ZnVuY3Rpb24oZSl7dGhpcy50b2dnbGVDbGFzcygiaW5kZXRlcm1pbmF0ZSIsZSx0aGlzLiQucHJpbWFyeVByb2dyZXNzKX0sX3RyYW5zZm9ybVByb2dyZXNzOmZ1bmN0aW9uKGUsdCl7dmFyIHI9InNjYWxlWCgiK3QvMTAwKyIpIjtlLnN0eWxlLnRyYW5zZm9ybT1lLnN0eWxlLndlYmtpdFRyYW5zZm9ybT1yfSxfbWFpblJhdGlvQ2hhbmdlZDpmdW5jdGlvbihlKXt0aGlzLl90cmFuc2Zvcm1Qcm9ncmVzcyh0aGlzLiQucHJpbWFyeVByb2dyZXNzLGUpfSxfcHJvZ3Jlc3NDaGFuZ2VkOmZ1bmN0aW9uKGUsdCxyLG4saSl7ZT10aGlzLl9jbGFtcFZhbHVlKGUpLHQ9dGhpcy5fY2xhbXBWYWx1ZSh0KTt2YXIgbz10aGlzLl9jYWxjUmF0aW8oZSkqMTAwLGE9dGhpcy5fY2FsY1JhdGlvKHQpKjEwMDt0aGlzLl9zZXRTZWNvbmRhcnlSYXRpbyhvKSx0aGlzLl90cmFuc2Zvcm1Qcm9ncmVzcyh0aGlzLiQuc2Vjb25kYXJ5UHJvZ3Jlc3MsbyksdGhpcy5fdHJhbnNmb3JtUHJvZ3Jlc3ModGhpcy4kLnByaW1hcnlQcm9ncmVzcyxhKSx0aGlzLnNlY29uZGFyeVByb2dyZXNzPWUsaT90aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS12YWx1ZW5vdyIpOnRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLXZhbHVlbm93Iix0KSx0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS12YWx1ZW1pbiIsciksdGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtdmFsdWVtYXgiLG4pfSxfZGlzYWJsZWRDaGFuZ2VkOmZ1bmN0aW9uKGUpe3RoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWRpc2FibGVkIixlPyJ0cnVlIjoiZmFsc2UiKX0sX2hpZGVTZWNvbmRhcnlQcm9ncmVzczpmdW5jdGlvbihlKXtyZXR1cm4gZT09PTB9fSk7dmFyIGswdD1RYAo8c3R5bGU+CiAgOmhvc3QgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgbGluZS1oZWlnaHQ6IDA7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgIC0tY2FsY3VsYXRlZC1wYXBlci1yYWRpby1idXR0b24tc2l6ZTogdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLXNpemUsIDE2cHgpOwogICAgLyogLTFweCBpcyBhIHNlbnRpbmVsIGZvciB0aGUgZGVmYXVsdCBhbmQgaXMgcmVwbGFjZSBpbiBcYGF0dGFjaGVkXGAuICovCiAgICAtLWNhbGN1bGF0ZWQtcGFwZXItcmFkaW8tYnV0dG9uLWluay1zaXplOiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24taW5rLXNpemUsIC0xcHgpOwogIH0KCiAgOmhvc3QoOmZvY3VzKSB7CiAgICBvdXRsaW5lOiBub25lOwogIH0KCiAgI3JhZGlvQ29udGFpbmVyIHsKICAgIEBhcHBseSAtLWxheW91dC1pbmxpbmU7CiAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyLWNlbnRlcjsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHdpZHRoOiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXJhZGlvLWJ1dHRvbi1zaXplKTsKICAgIGhlaWdodDogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1yYWRpby1idXR0b24tc2l6ZSk7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwoKICAgIEBhcHBseSAtLXBhcGVyLXJhZGlvLWJ1dHRvbi1yYWRpby1jb250YWluZXI7CiAgfQoKICAjaW5rIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogNTAlOwogICAgbGVmdDogNTAlOwogICAgcmlnaHQ6IGF1dG87CiAgICB3aWR0aDogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1yYWRpby1idXR0b24taW5rLXNpemUpOwogICAgaGVpZ2h0OiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXJhZGlvLWJ1dHRvbi1pbmstc2l6ZSk7CiAgICBjb2xvcjogdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLXVuY2hlY2tlZC1pbmstY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgb3BhY2l0eTogMC42OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgfQoKICAjaW5rW2NoZWNrZWRdIHsKICAgIGNvbG9yOiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tY2hlY2tlZC1pbmstY29sb3IsIHZhcigtLXByaW1hcnktY29sb3IpKTsKICB9CgogICNvZmZSYWRpbywgI29uUmFkaW8gewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIHRvcDogMDsKICAgIGxlZnQ6IDA7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICB9CgogICNvZmZSYWRpbyB7CiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tdW5jaGVja2VkLWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi11bmNoZWNrZWQtYmFja2dyb3VuZC1jb2xvciwgdHJhbnNwYXJlbnQpOwogICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMjhzOwogIH0KCiAgI29uUmFkaW8gewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLWNoZWNrZWQtY29sb3IsIHZhcigtLXByaW1hcnktY29sb3IpKTsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7CiAgICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSBlYXNlIDAuMjhzOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIGVhc2UgMC4yOHM7CiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogIH0KCiAgOmhvc3QoW2NoZWNrZWRdKSAjb2ZmUmFkaW8gewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tY2hlY2tlZC1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwogIH0KCiAgOmhvc3QoW2NoZWNrZWRdKSAjb25SYWRpbyB7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC41KTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMC41KTsKICB9CgogICNyYWRpb0xhYmVsIHsKICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgbWFyZ2luLWxlZnQ6IHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi1sYWJlbC1zcGFjaW5nLCAxMHB4KTsKICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7CiAgICBjb2xvcjogdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLWxhYmVsLWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKCiAgICBAYXBwbHkgLS1wYXBlci1yYWRpby1idXR0b24tbGFiZWw7CiAgfQoKICA6aG9zdChbY2hlY2tlZF0pICNyYWRpb0xhYmVsIHsKICAgIEBhcHBseSAtLXBhcGVyLXJhZGlvLWJ1dHRvbi1sYWJlbC1jaGVja2VkOwogIH0KCiAgI3JhZGlvTGFiZWw6ZGlyKHJ0bCkgewogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi1sYWJlbC1zcGFjaW5nLCAxMHB4KTsKICB9CgogICNyYWRpb0xhYmVsW2hpZGRlbl0gewogICAgZGlzcGxheTogbm9uZTsKICB9CgogIC8qIGRpc2FibGVkIHN0YXRlICovCgogIDpob3N0KFtkaXNhYmxlZF0pICNvZmZSYWRpbyB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi11bmNoZWNrZWQtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgb3BhY2l0eTogMC41OwogIH0KCiAgOmhvc3QoW2Rpc2FibGVkXVtjaGVja2VkXSkgI29uUmFkaW8gewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLXVuY2hlY2tlZC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgICBvcGFjaXR5OiAwLjU7CiAgfQoKICA6aG9zdChbZGlzYWJsZWRdKSAjcmFkaW9MYWJlbCB7CiAgICAvKiBzbGlnaHRseSBkYXJrZXIgdGhhbiB0aGUgYnV0dG9uLCBzbyB0aGF0IGl0J3MgcmVhZGFibGUgKi8KICAgIG9wYWNpdHk6IDAuNjU7CiAgfQo8L3N0eWxlPgoKPGRpdiBpZD0icmFkaW9Db250YWluZXIiPgogIDxkaXYgaWQ9Im9mZlJhZGlvIj48L2Rpdj4KICA8ZGl2IGlkPSJvblJhZGlvIj48L2Rpdj4KPC9kaXY+Cgo8ZGl2IGlkPSJyYWRpb0xhYmVsIj48c2xvdD48L3Nsb3Q+PC9kaXY+YDtrMHQuc2V0QXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiwiIik7WXQoe190ZW1wbGF0ZTprMHQsaXM6InBhcGVyLXJhZGlvLWJ1dHRvbiIsYmVoYXZpb3JzOltYeF0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6InJhZGlvIiwiYXJpYS1jaGVja2VkIjohMSx0YWJpbmRleDowfSxwcm9wZXJ0aWVzOnthcmlhQWN0aXZlQXR0cmlidXRlOnt0eXBlOlN0cmluZyx2YWx1ZToiYXJpYS1jaGVja2VkIn19LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy5fcmlwcGxlQ29udGFpbmVyPXRoaXMuJC5yYWRpb0NvbnRhaW5lcn0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXtDbSh0aGlzLGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5nZXRDb21wdXRlZFN0eWxlVmFsdWUoIi0tY2FsY3VsYXRlZC1wYXBlci1yYWRpby1idXR0b24taW5rLXNpemUiKS50cmltKCk7aWYoZT09PSItMXB4Iil7dmFyIHQ9cGFyc2VGbG9hdCh0aGlzLmdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLS1jYWxjdWxhdGVkLXBhcGVyLXJhZGlvLWJ1dHRvbi1zaXplIikudHJpbSgpKSxyPU1hdGguZmxvb3IoMyp0KTtyJTIhPT10JTImJnIrKyx0aGlzLnVwZGF0ZVN0eWxlcyh7Ii0tcGFwZXItcmFkaW8tYnV0dG9uLWluay1zaXplIjpyKyJweCJ9KX19KX19KTt2YXIgUjk9e2hvc3RBdHRyaWJ1dGVzOntyb2xlOiJtZW51YmFyIn0sa2V5QmluZGluZ3M6e2xlZnQ6Il9vbkxlZnRLZXkiLHJpZ2h0OiJfb25SaWdodEtleSJ9LF9vblVwS2V5OmZ1bmN0aW9uKGUpe3RoaXMuZm9jdXNlZEl0ZW0uY2xpY2soKSxlLmRldGFpbC5rZXlib2FyZEV2ZW50LnByZXZlbnREZWZhdWx0KCl9LF9vbkRvd25LZXk6ZnVuY3Rpb24oZSl7dGhpcy5mb2N1c2VkSXRlbS5jbGljaygpLGUuZGV0YWlsLmtleWJvYXJkRXZlbnQucHJldmVudERlZmF1bHQoKX0sZ2V0IF9pc1JUTCgpe3JldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5kaXJlY3Rpb249PT0icnRsIn0sX29uTGVmdEtleTpmdW5jdGlvbihlKXt0aGlzLl9pc1JUTD90aGlzLl9mb2N1c05leHQoKTp0aGlzLl9mb2N1c1ByZXZpb3VzKCksZS5kZXRhaWwua2V5Ym9hcmRFdmVudC5wcmV2ZW50RGVmYXVsdCgpfSxfb25SaWdodEtleTpmdW5jdGlvbihlKXt0aGlzLl9pc1JUTD90aGlzLl9mb2N1c1ByZXZpb3VzKCk6dGhpcy5fZm9jdXNOZXh0KCksZS5kZXRhaWwua2V5Ym9hcmRFdmVudC5wcmV2ZW50RGVmYXVsdCgpfSxfb25LZXlkb3duOmZ1bmN0aW9uKGUpe3RoaXMua2V5Ym9hcmRFdmVudE1hdGNoZXNLZXlzKGUsInVwIGRvd24gbGVmdCByaWdodCBlc2MiKXx8dGhpcy5fZm9jdXNXaXRoS2V5Ym9hcmRFdmVudChlKX19LE45PVtMOSxSOV07WXQoe190ZW1wbGF0ZTpRYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICA6aG9zdCA6OnNsb3R0ZWQoKikgewogICAgICAgIHBhZGRpbmc6IHZhcigtLXBhcGVyLXJhZGlvLWdyb3VwLWl0ZW0tcGFkZGluZywgMTJweCk7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJwYXBlci1yYWRpby1ncm91cCIsYmVoYXZpb3JzOltOOV0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6InJhZGlvZ3JvdXAifSxwcm9wZXJ0aWVzOnthdHRyRm9yU2VsZWN0ZWQ6e3R5cGU6U3RyaW5nLHZhbHVlOiJuYW1lIn0sc2VsZWN0ZWRBdHRyaWJ1dGU6e3R5cGU6U3RyaW5nLHZhbHVlOiJjaGVja2VkIn0sc2VsZWN0YWJsZTp7dHlwZTpTdHJpbmcsdmFsdWU6InBhcGVyLXJhZGlvLWJ1dHRvbiJ9LGFsbG93RW1wdHlTZWxlY3Rpb246e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX19LHNlbGVjdDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl92YWx1ZVRvSXRlbShlKTtpZighKHQmJnQuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpKSl7aWYodGhpcy5zZWxlY3RlZCl7dmFyIHI9dGhpcy5fdmFsdWVUb0l0ZW0odGhpcy5zZWxlY3RlZCk7aWYodGhpcy5zZWxlY3RlZD09ZSlpZih0aGlzLmFsbG93RW1wdHlTZWxlY3Rpb24pZT0iIjtlbHNle3ImJihyLmNoZWNrZWQ9ITApO3JldHVybn1yJiYoci5jaGVja2VkPSExKX1TaC5zZWxlY3QuYXBwbHkodGhpcyxbZV0pLHRoaXMuZmlyZSgicGFwZXItcmFkaW8tZ3JvdXAtY2hhbmdlZCIpfX0sX2FjdGl2YXRlRm9jdXNlZEl0ZW06ZnVuY3Rpb24oKXt0aGlzLl9pdGVtQWN0aXZhdGUodGhpcy5fdmFsdWVGb3JJdGVtKHRoaXMuZm9jdXNlZEl0ZW0pLHRoaXMuZm9jdXNlZEl0ZW0pfSxfb25VcEtleTpmdW5jdGlvbihlKXt0aGlzLl9mb2N1c1ByZXZpb3VzKCksZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2FjdGl2YXRlRm9jdXNlZEl0ZW0oKX0sX29uRG93bktleTpmdW5jdGlvbihlKXt0aGlzLl9mb2N1c05leHQoKSxlLnByZXZlbnREZWZhdWx0KCksdGhpcy5fYWN0aXZhdGVGb2N1c2VkSXRlbSgpfSxfb25MZWZ0S2V5OmZ1bmN0aW9uKGUpe1I5Ll9vbkxlZnRLZXkuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX2FjdGl2YXRlRm9jdXNlZEl0ZW0oKX0sX29uUmlnaHRLZXk6ZnVuY3Rpb24oZSl7UjkuX29uUmlnaHRLZXkuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX2FjdGl2YXRlRm9jdXNlZEl0ZW0oKX19KTt2YXIgUjB0PVFgCiAgPHN0eWxlPgogICAgOmhvc3QgewogICAgICBAYXBwbHkgLS1sYXlvdXQ7CiAgICAgIEBhcHBseSAtLWxheW91dC1qdXN0aWZpZWQ7CiAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXI7CiAgICAgIHdpZHRoOiAyMDBweDsKICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7CiAgICAgIC0tcGFwZXItcHJvZ3Jlc3MtYWN0aXZlLWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXItYWN0aXZlLWNvbG9yLCB2YXIoLS1nb29nbGUtYmx1ZS03MDApKTsKICAgICAgLS1wYXBlci1wcm9ncmVzcy1zZWNvbmRhcnktY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1zZWNvbmRhcnktY29sb3IsIHZhcigtLWdvb2dsZS1ibHVlLTMwMCkpOwogICAgICAtLXBhcGVyLXByb2dyZXNzLWRpc2FibGVkLWFjdGl2ZS1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLWRpc2FibGVkLWFjdGl2ZS1jb2xvciwgdmFyKC0tcGFwZXItZ3JleS00MDApKTsKICAgICAgLS1wYXBlci1wcm9ncmVzcy1kaXNhYmxlZC1zZWNvbmRhcnktY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1kaXNhYmxlZC1zZWNvbmRhcnktY29sb3IsIHZhcigtLXBhcGVyLWdyZXktNDAwKSk7CiAgICAgIC0tY2FsY3VsYXRlZC1wYXBlci1zbGlkZXItaGVpZ2h0OiB2YXIoLS1wYXBlci1zbGlkZXItaGVpZ2h0LCAycHgpOwogICAgfQoKICAgIC8qIGZvY3VzIHNob3dzIHRoZSByaXBwbGUgKi8KICAgIDpob3N0KDpmb2N1cykgewogICAgICBvdXRsaW5lOiBub25lOwogICAgfQoKICAgIC8qKgogICAgICAqIE5PVEUoa2VhbnVsZWUpOiBUaG91Z2ggOmhvc3QtY29udGV4dCBpcyBub3QgdW5pdmVyc2FsbHkgc3VwcG9ydGVkLCBzb21lIHBhZ2VzCiAgICAgICogc3RpbGwgcmVseSBvbiBwYXBlci1zbGlkZXIgYmVpbmcgZmxpcHBlZCB3aGVuIGRpcj0icnRsIiBpcyBzZXQgb24gYm9keS4gRm9yIGZ1bGwKICAgICAgKiBjb21wYXRpYmlsaXR5LCBkaXI9InJ0bCIgbXVzdCBiZSBleHBsaWNpdGx5IHNldCBvbiBwYXBlci1zbGlkZXIuCiAgICAgICovCiAgICA6ZGlyKHJ0bCkgI3NsaWRlckNvbnRhaW5lciB7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLTEpOwogICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7CiAgICB9CgogICAgLyoqCiAgICAgICogTk9URShrZWFudWxlZSk6IFRoaXMgaXMgc2VwYXJhdGUgZnJvbSB0aGUgcnVsZSBhYm92ZSBiZWNhdXNlIDpob3N0LWNvbnRleHQgbWF5CiAgICAgICogbm90IGJlIHJlY29nbml6ZWQuCiAgICAgICovCiAgICA6aG9zdChbZGlyPSJydGwiXSkgI3NsaWRlckNvbnRhaW5lciB7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLTEpOwogICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7CiAgICB9CgogICAgLyoqCiAgICAgICogTk9URShrZWFudWxlZSk6IE5lZWRlZCB0byBvdmVycmlkZSB0aGUgOmhvc3QtY29udGV4dCBydWxlICh3aGVyZSBzdXBwb3J0ZWQpCiAgICAgICogdG8gc3VwcG9ydCBMVFIgc2xpZGVycyBpbiBSVEwgcGFnZXMuCiAgICAgICovCiAgICA6aG9zdChbZGlyPSJsdHIiXSkgI3NsaWRlckNvbnRhaW5lciB7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMSk7CiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpOwogICAgfQoKICAgICNzbGlkZXJDb250YWluZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IGNhbGMoMzBweCArIHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItc2xpZGVyLWhlaWdodCkpOwogICAgICBtYXJnaW4tbGVmdDogY2FsYygxNXB4ICsgdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1zbGlkZXItaGVpZ2h0KS8yKTsKICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKDE1cHggKyB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQpLzIpOwogICAgfQoKICAgICNzbGlkZXJDb250YWluZXI6Zm9jdXMgewogICAgICBvdXRsaW5lOiAwOwogICAgfQoKICAgICNzbGlkZXJDb250YWluZXIuZWRpdGFibGUgewogICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgfQoKICAgIC5iYXItY29udGFpbmVyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGJvdHRvbTogMDsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnJpbmcgPiAuYmFyLWNvbnRhaW5lciB7CiAgICAgIGxlZnQ6IGNhbGMoNXB4ICsgdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1zbGlkZXItaGVpZ2h0KS8yKTsKICAgICAgdHJhbnNpdGlvbjogbGVmdCAwLjE4cyBlYXNlOwogICAgfQoKICAgIC5yaW5nLmV4cGFuZC5kcmFnZ2luZyA+IC5iYXItY29udGFpbmVyIHsKICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgIH0KCiAgICAucmluZy5leHBhbmQ6bm90KC5waW4pID4gLmJhci1jb250YWluZXIgewogICAgICBsZWZ0OiBjYWxjKDhweCArIHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItc2xpZGVyLWhlaWdodCkvMik7CiAgICB9CgogICAgI3NsaWRlckJhciB7CiAgICAgIHBhZGRpbmc6IDE1cHggMDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1iYXItY29sb3IsIHRyYW5zcGFyZW50KTsKICAgICAgLS1wYXBlci1wcm9ncmVzcy1jb250YWluZXItY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1jb250YWluZXItY29sb3IsIHZhcigtLXBhcGVyLWdyZXktNDAwKSk7CiAgICAgIC0tcGFwZXItcHJvZ3Jlc3MtaGVpZ2h0OiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQpOwogICAgfQoKICAgIC5zbGlkZXItbWFya2VycyB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgLyogc2xpZGVyLWtub2IgaXMgMzBweCArIHRoZSBzbGlkZXItaGVpZ2h0IHNvIHRoYXQgdGhlIG1hcmtlcnMgc2hvdWxkIHN0YXJ0IGF0IGEgb2Zmc2V0IG9mIDE1cHgqLwogICAgICB0b3A6IDE1cHg7CiAgICAgIGhlaWdodDogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1zbGlkZXItaGVpZ2h0KTsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IC0xcHg7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICBAYXBwbHkgLS1sYXlvdXQtaG9yaXpvbnRhbDsKICAgIH0KCiAgICAuc2xpZGVyLW1hcmtlciB7CiAgICAgIEBhcHBseSAtLWxheW91dC1mbGV4OwogICAgfQogICAgLnNsaWRlci1tYXJrZXJzOjphZnRlciwKICAgIC5zbGlkZXItbWFya2VyOjphZnRlciB7CiAgICAgIGNvbnRlbnQ6ICIiOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7CiAgICAgIHdpZHRoOiAycHg7CiAgICAgIGhlaWdodDogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1zbGlkZXItaGVpZ2h0KTsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXItbWFya2Vycy1jb2xvciwgIzAwMCk7CiAgICB9CgogICAgLnNsaWRlci1rbm9iIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBsZWZ0OiAwOwogICAgICB0b3A6IDA7CiAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0xNXB4IC0gdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1zbGlkZXItaGVpZ2h0KS8yKTsKICAgICAgd2lkdGg6IGNhbGMoMzBweCArIHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItc2xpZGVyLWhlaWdodCkpOwogICAgICBoZWlnaHQ6IGNhbGMoMzBweCArIHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItc2xpZGVyLWhlaWdodCkpOwogICAgfQoKICAgIC50cmFuc2l0aW5nID4gLnNsaWRlci1rbm9iIHsKICAgICAgdHJhbnNpdGlvbjogbGVmdCAwLjA4cyBlYXNlOwogICAgfQoKICAgIC5zbGlkZXIta25vYjpmb2N1cyB7CiAgICAgIG91dGxpbmU6IG5vbmU7CiAgICB9CgogICAgLnNsaWRlci1rbm9iLmRyYWdnaW5nIHsKICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgIH0KCiAgICAuc25hcHMgPiAuc2xpZGVyLWtub2IuZHJhZ2dpbmcgewogICAgICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjA4cyBlYXNlOwogICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4wOHMgZWFzZTsKICAgIH0KCiAgICAuc2xpZGVyLWtub2ItaW5uZXIgewogICAgICBtYXJnaW46IDEwcHg7CiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTsKICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyMHB4KTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLWtub2ItY29sb3IsIHZhcigtLWdvb2dsZS1ibHVlLTcwMCkpOwogICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1wYXBlci1zbGlkZXIta25vYi1jb2xvciwgdmFyKC0tZ29vZ2xlLWJsdWUtNzAwKSk7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKCiAgICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKCiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXI7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyOwogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE4czsKICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7CiAgICB9CgogICAgLmV4cGFuZDpub3QoLnBpbikgPiAuc2xpZGVyLWtub2IgPiAuc2xpZGVyLWtub2ItaW5uZXIgewogICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS41KTsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpOwogICAgfQoKICAgIC5yaW5nID4gLnNsaWRlci1rbm9iID4gLnNsaWRlci1rbm9iLWlubmVyIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLWtub2Itc3RhcnQtY29sb3IsIHRyYW5zcGFyZW50KTsKICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tcGFwZXItc2xpZGVyLWtub2Itc3RhcnQtYm9yZGVyLWNvbG9yLCB2YXIoLS1wYXBlci1ncmV5LTQwMCkpOwogICAgfQoKICAgIC5zbGlkZXIta25vYi1pbm5lcjo6YmVmb3JlIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLXBpbi1jb2xvciwgdmFyKC0tZ29vZ2xlLWJsdWUtNzAwKSk7CiAgICB9CgogICAgLnBpbiA+IC5zbGlkZXIta25vYiA+IC5zbGlkZXIta25vYi1pbm5lcjo6YmVmb3JlIHsKICAgICAgY29udGVudDogIiI7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiA1MCU7CiAgICAgIG1hcmdpbi1sZWZ0OiAtMTNweDsKICAgICAgd2lkdGg6IDI2cHg7CiAgICAgIGhlaWdodDogMjZweDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlIDUwJSA1MCUgMDsKCiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwKSB0cmFuc2xhdGUoMCk7CiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMCkgdHJhbnNsYXRlKDApOwogICAgfQoKICAgIC5zbGlkZXIta25vYi1pbm5lcjo6YmVmb3JlLAogICAgLnNsaWRlci1rbm9iLWlubmVyOjphZnRlciB7CiAgICAgIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIC4xOHMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAuMThzIGVhc2U7CiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMThzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgLjE4cyBlYXNlOwogICAgfQoKICAgIC5waW4ucmluZyA+IC5zbGlkZXIta25vYiA+IC5zbGlkZXIta25vYi1pbm5lcjo6YmVmb3JlIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLXBpbi1zdGFydC1jb2xvciwgdmFyKC0tcGFwZXItZ3JleS00MDApKTsKICAgIH0KCiAgICAucGluLmV4cGFuZCA+IC5zbGlkZXIta25vYiA+IC5zbGlkZXIta25vYi1pbm5lcjo6YmVmb3JlIHsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDEpIHRyYW5zbGF0ZSgxN3B4LCAtMTdweCk7CiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMSkgdHJhbnNsYXRlKDE3cHgsIC0xN3B4KTsKICAgIH0KCiAgICAucGluID4gLnNsaWRlci1rbm9iID4gLnNsaWRlci1rbm9iLWlubmVyOjphZnRlciB7CiAgICAgIGNvbnRlbnQ6IGF0dHIodmFsdWUpOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogNTAlOwogICAgICBtYXJnaW4tbGVmdDogLTE2cHg7CiAgICAgIHdpZHRoOiAzMnB4OwogICAgICBoZWlnaHQ6IDI2cHg7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1mb250LWNvbG9yLCAjZmZmKTsKICAgICAgZm9udC1zaXplOiAxMHB4OwoKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApIHRyYW5zbGF0ZSgwKTsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKSB0cmFuc2xhdGUoMCk7CiAgICB9CgogICAgLnBpbi5leHBhbmQgPiAuc2xpZGVyLWtub2IgPiAuc2xpZGVyLWtub2ItaW5uZXI6OmFmdGVyIHsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZSgwLCAtMTdweCk7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlKDAsIC0xN3B4KTsKICAgIH0KCiAgICAvKiBwYXBlci1pbnB1dCAqLwogICAgLnNsaWRlci1pbnB1dCB7CiAgICAgIHdpZHRoOiA1MHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dDogewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBAYXBwbHkgLS1wYXBlci1zbGlkZXItaW5wdXQtY29udGFpbmVyLWlucHV0OwogICAgICB9OwogICAgICBAYXBwbHkgLS1wYXBlci1zbGlkZXItaW5wdXQ7CiAgICB9CgogICAgLyogZGlzYWJsZWQgc3RhdGUgKi8KICAgICNzbGlkZXJDb250YWluZXIuZGlzYWJsZWQgewogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIH0KCiAgICAuZGlzYWJsZWQgPiAuc2xpZGVyLWtub2IgPiAuc2xpZGVyLWtub2ItaW5uZXIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXItZGlzYWJsZWQta25vYi1jb2xvciwgdmFyKC0tcGFwZXItZ3JleS00MDApKTsKICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tcGFwZXItc2xpZGVyLWRpc2FibGVkLWtub2ItY29sb3IsIHZhcigtLXBhcGVyLWdyZXktNDAwKSk7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuNzUsIDAuNzUsIDEpOwogICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMC43NSwgMSk7CiAgICB9CgogICAgLmRpc2FibGVkLnJpbmcgPiAuc2xpZGVyLWtub2IgPiAuc2xpZGVyLWtub2ItaW5uZXIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXIta25vYi1zdGFydC1jb2xvciwgdHJhbnNwYXJlbnQpOwogICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1wYXBlci1zbGlkZXIta25vYi1zdGFydC1ib3JkZXItY29sb3IsIHZhcigtLXBhcGVyLWdyZXktNDAwKSk7CiAgICB9CgogICAgcGFwZXItcmlwcGxlIHsKICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1rbm9iLWNvbG9yLCB2YXIoLS1nb29nbGUtYmx1ZS03MDApKTsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGlkPSJzbGlkZXJDb250YWluZXIiIGNsYXNzXCQ9IltbX2dldENsYXNzTmFtZXMoZGlzYWJsZWQsIHBpbiwgc25hcHMsIGltbWVkaWF0ZVZhbHVlLCBtaW4sIGV4cGFuZCwgZHJhZ2dpbmcsIHRyYW5zaXRpbmcsIGVkaXRhYmxlKV1dIj4KICAgIDxkaXYgY2xhc3M9ImJhci1jb250YWluZXIiPgogICAgICA8cGFwZXItcHJvZ3Jlc3MgZGlzYWJsZWRcJD0iW1tkaXNhYmxlZF1dIiBpZD0ic2xpZGVyQmFyIiBhcmlhLWhpZGRlbj0idHJ1ZSIgbWluPSJbW21pbl1dIiBtYXg9IltbbWF4XV0iIHN0ZXA9Iltbc3RlcF1dIiB2YWx1ZT0iW1tpbW1lZGlhdGVWYWx1ZV1dIiBzZWNvbmRhcnktcHJvZ3Jlc3M9Iltbc2Vjb25kYXJ5UHJvZ3Jlc3NdXSIgb24tZG93bj0iX2JhcmRvd24iIG9uLXVwPSJfcmVzZXRLbm9iIiBvbi10cmFjaz0iX2JhcnRyYWNrIiBvbi10YXA9Il9iYXJjbGljayI+CiAgICAgIDwvcGFwZXItcHJvZ3Jlc3M+CiAgICA8L2Rpdj4KCiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9Iltbc25hcHNdXSI+CiAgICAgIDxkaXYgY2xhc3M9InNsaWRlci1tYXJrZXJzIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW21hcmtlcnNdXSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZXItbWFya2VyIj48L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvdGVtcGxhdGU+CgogICAgPGRpdiBpZD0ic2xpZGVyS25vYiIgY2xhc3M9InNsaWRlci1rbm9iIiBvbi1kb3duPSJfa25vYmRvd24iIG9uLXVwPSJfcmVzZXRLbm9iIiBvbi10cmFjaz0iX29uVHJhY2siIG9uLXRyYW5zaXRpb25lbmQ9Il9rbm9iVHJhbnNpdGlvbkVuZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGVyLWtub2ItaW5uZXIiIHZhbHVlXCQ9IltbaW1tZWRpYXRlVmFsdWVdXSI+PC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2VkaXRhYmxlXV0iPgogICAgPHBhcGVyLWlucHV0IGlkPSJpbnB1dCIgdHlwZT0ibnVtYmVyIiBzdGVwPSJbW3N0ZXBdXSIgbWluPSJbW21pbl1dIiBtYXg9IltbbWF4XV0iIGNsYXNzPSJzbGlkZXItaW5wdXQiIGRpc2FibGVkXCQ9IltbZGlzYWJsZWRdXSIgdmFsdWU9IltbaW1tZWRpYXRlVmFsdWVdXSIgb24tY2hhbmdlPSJfY2hhbmdlVmFsdWUiIG9uLWtleWRvd249Il9pbnB1dEtleURvd24iIG5vLWxhYmVsLWZsb2F0PgogICAgPC9wYXBlci1pbnB1dD4KICA8L3RlbXBsYXRlPgpgO1IwdC5zZXRBdHRyaWJ1dGUoInN0cmlwLXdoaXRlc3BhY2UiLCIiKTtZdCh7X3RlbXBsYXRlOlIwdCxpczoicGFwZXItc2xpZGVyIixiZWhhdmlvcnM6W09vLFRoLGp4LGs5XSxwcm9wZXJ0aWVzOnt2YWx1ZTp7dHlwZTpOdW1iZXIsdmFsdWU6MH0sc25hcHM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITB9LHBpbjp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMH0sc2Vjb25kYXJ5UHJvZ3Jlc3M6e3R5cGU6TnVtYmVyLHZhbHVlOjAsbm90aWZ5OiEwLG9ic2VydmVyOiJfc2Vjb25kYXJ5UHJvZ3Jlc3NDaGFuZ2VkIn0sZWRpdGFibGU6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0saW1tZWRpYXRlVmFsdWU6e3R5cGU6TnVtYmVyLHZhbHVlOjAscmVhZE9ubHk6ITAsbm90aWZ5OiEwfSxtYXhNYXJrZXJzOnt0eXBlOk51bWJlcix2YWx1ZTowLG5vdGlmeTohMH0sZXhwYW5kOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVhZE9ubHk6ITB9LGlnbm9yZUJhclRvdWNoOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGRyYWdnaW5nOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVhZE9ubHk6ITAsbm90aWZ5OiEwfSx0cmFuc2l0aW5nOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVhZE9ubHk6ITB9LG1hcmtlcnM6e3R5cGU6QXJyYXkscmVhZE9ubHk6ITAsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bXX19fSxvYnNlcnZlcnM6WyJfdXBkYXRlS25vYih2YWx1ZSwgbWluLCBtYXgsIHNuYXBzLCBzdGVwKSIsIl92YWx1ZUNoYW5nZWQodmFsdWUpIiwiX2ltbWVkaWF0ZVZhbHVlQ2hhbmdlZChpbW1lZGlhdGVWYWx1ZSkiLCJfdXBkYXRlTWFya2VycyhtYXhNYXJrZXJzLCBtaW4sIG1heCwgc25hcHMpIl0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6InNsaWRlciIsdGFiaW5kZXg6MH0sa2V5QmluZGluZ3M6e2xlZnQ6Il9sZWZ0S2V5IixyaWdodDoiX3JpZ2h0S2V5IiwiZG93biBwYWdlZG93biBob21lIjoiX2RlY3JlbWVudEtleSIsInVwIHBhZ2V1cCBlbmQiOiJfaW5jcmVtZW50S2V5In0scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLmlnbm9yZUJhclRvdWNoJiZtXyh0aGlzLiQuc2xpZGVyQmFyLCJhdXRvIil9LGluY3JlbWVudDpmdW5jdGlvbigpe3RoaXMudmFsdWU9dGhpcy5fY2xhbXBWYWx1ZSh0aGlzLnZhbHVlK3RoaXMuc3RlcCl9LGRlY3JlbWVudDpmdW5jdGlvbigpe3RoaXMudmFsdWU9dGhpcy5fY2xhbXBWYWx1ZSh0aGlzLnZhbHVlLXRoaXMuc3RlcCl9LF91cGRhdGVLbm9iOmZ1bmN0aW9uKGUsdCxyLG4saSl7dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtdmFsdWVtaW4iLHQpLHRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLXZhbHVlbWF4IixyKSx0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS12YWx1ZW5vdyIsZSksdGhpcy5fcG9zaXRpb25Lbm9iKHRoaXMuX2NhbGNSYXRpbyhlKSoxMDApfSxfdmFsdWVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5maXJlKCJ2YWx1ZS1jaGFuZ2UiLHtjb21wb3NlZDohMH0pfSxfaW1tZWRpYXRlVmFsdWVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5kcmFnZ2luZz90aGlzLmZpcmUoImltbWVkaWF0ZS12YWx1ZS1jaGFuZ2UiLHtjb21wb3NlZDohMH0pOnRoaXMudmFsdWU9dGhpcy5pbW1lZGlhdGVWYWx1ZX0sX3NlY29uZGFyeVByb2dyZXNzQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuc2Vjb25kYXJ5UHJvZ3Jlc3M9dGhpcy5fY2xhbXBWYWx1ZSh0aGlzLnNlY29uZGFyeVByb2dyZXNzKX0sX2V4cGFuZEtub2I6ZnVuY3Rpb24oKXt0aGlzLl9zZXRFeHBhbmQoITApfSxfcmVzZXRLbm9iOmZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxEZWJvdW5jZXIoImV4cGFuZEtub2IiKSx0aGlzLl9zZXRFeHBhbmQoITEpfSxfcG9zaXRpb25Lbm9iOmZ1bmN0aW9uKGUpe3RoaXMuX3NldEltbWVkaWF0ZVZhbHVlKHRoaXMuX2NhbGNTdGVwKHRoaXMuX2NhbGNLbm9iUG9zaXRpb24oZSkpKSx0aGlzLl9zZXRSYXRpbyh0aGlzLl9jYWxjUmF0aW8odGhpcy5pbW1lZGlhdGVWYWx1ZSkqMTAwKSx0aGlzLiQuc2xpZGVyS25vYi5zdHlsZS5sZWZ0PXRoaXMucmF0aW8rIiUiLHRoaXMuZHJhZ2dpbmcmJih0aGlzLl9rbm9ic3RhcnR4PXRoaXMucmF0aW8qdGhpcy5fdy8xMDAsdGhpcy50cmFuc2xhdGUzZCgwLDAsMCx0aGlzLiQuc2xpZGVyS25vYikpfSxfY2FsY0tub2JQb3NpdGlvbjpmdW5jdGlvbihlKXtyZXR1cm4odGhpcy5tYXgtdGhpcy5taW4pKmUvMTAwK3RoaXMubWlufSxfb25UcmFjazpmdW5jdGlvbihlKXtzd2l0Y2goZS5zdG9wUHJvcGFnYXRpb24oKSxlLmRldGFpbC5zdGF0ZSl7Y2FzZSJzdGFydCI6dGhpcy5fdHJhY2tTdGFydChlKTticmVhaztjYXNlInRyYWNrIjp0aGlzLl90cmFja1goZSk7YnJlYWs7Y2FzZSJlbmQiOnRoaXMuX3RyYWNrRW5kKCk7YnJlYWt9fSxfdHJhY2tTdGFydDpmdW5jdGlvbihlKXt0aGlzLl9zZXRUcmFuc2l0aW5nKCExKSx0aGlzLl93PXRoaXMuJC5zbGlkZXJCYXIub2Zmc2V0V2lkdGgsdGhpcy5feD10aGlzLnJhdGlvKnRoaXMuX3cvMTAwLHRoaXMuX3N0YXJ0eD10aGlzLl94LHRoaXMuX2tub2JzdGFydHg9dGhpcy5fc3RhcnR4LHRoaXMuX21pbng9LXRoaXMuX3N0YXJ0eCx0aGlzLl9tYXh4PXRoaXMuX3ctdGhpcy5fc3RhcnR4LHRoaXMuJC5zbGlkZXJLbm9iLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksdGhpcy5fc2V0RHJhZ2dpbmcoITApfSxfdHJhY2tYOmZ1bmN0aW9uKGUpe3RoaXMuZHJhZ2dpbmd8fHRoaXMuX3RyYWNrU3RhcnQoZSk7dmFyIHQ9dGhpcy5faXNSVEw/LTE6MSxyPU1hdGgubWluKHRoaXMuX21heHgsTWF0aC5tYXgodGhpcy5fbWlueCxlLmRldGFpbC5keCp0KSk7dGhpcy5feD10aGlzLl9zdGFydHgrcjt2YXIgbj10aGlzLl9jYWxjU3RlcCh0aGlzLl9jYWxjS25vYlBvc2l0aW9uKHRoaXMuX3gvdGhpcy5fdyoxMDApKTt0aGlzLl9zZXRJbW1lZGlhdGVWYWx1ZShuKTt2YXIgaT10aGlzLl9jYWxjUmF0aW8odGhpcy5pbW1lZGlhdGVWYWx1ZSkqdGhpcy5fdy10aGlzLl9rbm9ic3RhcnR4O3RoaXMudHJhbnNsYXRlM2QoaSsicHgiLDAsMCx0aGlzLiQuc2xpZGVyS25vYil9LF90cmFja0VuZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuJC5zbGlkZXJLbm9iLnN0eWxlO3RoaXMuJC5zbGlkZXJLbm9iLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksdGhpcy5fc2V0RHJhZ2dpbmcoITEpLHRoaXMuX3Jlc2V0S25vYigpLHRoaXMudmFsdWU9dGhpcy5pbW1lZGlhdGVWYWx1ZSxlLnRyYW5zZm9ybT1lLndlYmtpdFRyYW5zZm9ybT0iIix0aGlzLmZpcmUoImNoYW5nZSIse2NvbXBvc2VkOiEwfSl9LF9rbm9iZG93bjpmdW5jdGlvbihlKXt0aGlzLl9leHBhbmRLbm9iKCksZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXMoKX0sX2JhcnRyYWNrOmZ1bmN0aW9uKGUpe3RoaXMuX2FsbG93QmFyRXZlbnQoZSkmJnRoaXMuX29uVHJhY2soZSl9LF9iYXJjbGljazpmdW5jdGlvbihlKXt0aGlzLl93PXRoaXMuJC5zbGlkZXJCYXIub2Zmc2V0V2lkdGg7dmFyIHQ9dGhpcy4kLnNsaWRlckJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPShlLmRldGFpbC54LXQubGVmdCkvdGhpcy5fdyoxMDA7dGhpcy5faXNSVEwmJihyPTEwMC1yKTt2YXIgbj10aGlzLnJhdGlvO3RoaXMuX3NldFRyYW5zaXRpbmcoITApLHRoaXMuX3Bvc2l0aW9uS25vYihyKSxuPT09dGhpcy5yYXRpbyYmdGhpcy5fc2V0VHJhbnNpdGluZyghMSksdGhpcy5hc3luYyhmdW5jdGlvbigpe3RoaXMuZmlyZSgiY2hhbmdlIix7Y29tcG9zZWQ6ITB9KX0pLGUucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzKCl9LF9iYXJkb3duOmZ1bmN0aW9uKGUpe3RoaXMuX2FsbG93QmFyRXZlbnQoZSkmJih0aGlzLmRlYm91bmNlKCJleHBhbmRLbm9iIix0aGlzLl9leHBhbmRLbm9iLDYwKSx0aGlzLl9iYXJjbGljayhlKSl9LF9rbm9iVHJhbnNpdGlvbkVuZDpmdW5jdGlvbihlKXtlLnRhcmdldD09PXRoaXMuJC5zbGlkZXJLbm9iJiZ0aGlzLl9zZXRUcmFuc2l0aW5nKCExKX0sX3VwZGF0ZU1hcmtlcnM6ZnVuY3Rpb24oZSx0LHIsbil7bnx8dGhpcy5fc2V0TWFya2VycyhbXSk7dmFyIGk9TWF0aC5yb3VuZCgoci10KS90aGlzLnN0ZXApO2k+ZSYmKGk9ZSksKGk8MHx8IWlzRmluaXRlKGkpKSYmKGk9MCksdGhpcy5fc2V0TWFya2VycyhuZXcgQXJyYXkoaSkpfSxfbWVyZ2VDbGFzc2VzOmZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3Qua2V5cyhlKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19KS5qb2luKCIgIil9LF9nZXRDbGFzc05hbWVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21lcmdlQ2xhc3Nlcyh7ZGlzYWJsZWQ6dGhpcy5kaXNhYmxlZCxwaW46dGhpcy5waW4sc25hcHM6dGhpcy5zbmFwcyxyaW5nOnRoaXMuaW1tZWRpYXRlVmFsdWU8PXRoaXMubWluLGV4cGFuZDp0aGlzLmV4cGFuZCxkcmFnZ2luZzp0aGlzLmRyYWdnaW5nLHRyYW5zaXRpbmc6dGhpcy50cmFuc2l0aW5nLGVkaXRhYmxlOnRoaXMuZWRpdGFibGV9KX0sX2FsbG93QmFyRXZlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIXRoaXMuaWdub3JlQmFyVG91Y2h8fGUuZGV0YWlsLnNvdXJjZUV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudH0sZ2V0IF9pc1JUTCgpe3JldHVybiB0aGlzLl9faXNSVEw9PT12b2lkIDAmJih0aGlzLl9faXNSVEw9d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcykuZGlyZWN0aW9uPT09InJ0bCIpLHRoaXMuX19pc1JUTH0sX2xlZnRLZXk6ZnVuY3Rpb24oZSl7dGhpcy5faXNSVEw/dGhpcy5faW5jcmVtZW50S2V5KGUpOnRoaXMuX2RlY3JlbWVudEtleShlKX0sX3JpZ2h0S2V5OmZ1bmN0aW9uKGUpe3RoaXMuX2lzUlRMP3RoaXMuX2RlY3JlbWVudEtleShlKTp0aGlzLl9pbmNyZW1lbnRLZXkoZSl9LF9pbmNyZW1lbnRLZXk6ZnVuY3Rpb24oZSl7dGhpcy5kaXNhYmxlZHx8KGUuZGV0YWlsLmtleT09PSJlbmQiP3RoaXMudmFsdWU9dGhpcy5tYXg6dGhpcy5pbmNyZW1lbnQoKSx0aGlzLmZpcmUoImNoYW5nZSIpLGUucHJldmVudERlZmF1bHQoKSl9LF9kZWNyZW1lbnRLZXk6ZnVuY3Rpb24oZSl7dGhpcy5kaXNhYmxlZHx8KGUuZGV0YWlsLmtleT09PSJob21lIj90aGlzLnZhbHVlPXRoaXMubWluOnRoaXMuZGVjcmVtZW50KCksdGhpcy5maXJlKCJjaGFuZ2UiKSxlLnByZXZlbnREZWZhdWx0KCkpfSxfY2hhbmdlVmFsdWU6ZnVuY3Rpb24oZSl7dGhpcy52YWx1ZT1lLnRhcmdldC52YWx1ZSx0aGlzLmZpcmUoImNoYW5nZSIse2NvbXBvc2VkOiEwfSl9LF9pbnB1dEtleURvd246ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKX0sX2NyZWF0ZVJpcHBsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yaXBwbGVDb250YWluZXI9dGhpcy4kLnNsaWRlcktub2IscEUuX2NyZWF0ZVJpcHBsZS5jYWxsKHRoaXMpfSxfZm9jdXNlZENoYW5nZWQ6ZnVuY3Rpb24oZSl7ZSYmdGhpcy5lbnN1cmVSaXBwbGUoKSx0aGlzLmhhc1JpcHBsZSgpJiYoZT90aGlzLl9yaXBwbGUuc3R5bGUuZGlzcGxheT0iIjp0aGlzLl9yaXBwbGUuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5fcmlwcGxlLmhvbGREb3duPWUpfX0pO3ZhciBNVz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO01XLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpO01XLmlubmVySFRNTD1gPGRvbS1tb2R1bGUgaWQ9InBhcGVyLXNwaW5uZXItc3R5bGVzIj4KICA8dGVtcGxhdGU+CiAgICA8c3R5bGU+CiAgICAgIC8qCiAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKi8KICAgICAgLyogU1RZTEVTIEZPUiBUSEUgU1BJTk5FUiAqLwogICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKiovCgogICAgICAvKgogICAgICAgKiBDb25zdGFudHM6CiAgICAgICAqICAgICAgQVJDU0laRSAgICAgPSAyNzAgZGVncmVlcyAoYW1vdW50IG9mIGNpcmNsZSB0aGUgYXJjIHRha2VzIHVwKQogICAgICAgKiAgICAgIEFSQ1RJTUUgICAgID0gMTMzM21zICh0aW1lIGl0IHRha2VzIHRvIGV4cGFuZCBhbmQgY29udHJhY3QgYXJjKQogICAgICAgKiAgICAgIEFSQ1NUQVJUUk9UID0gMjE2IGRlZ3JlZXMgKGhvdyBtdWNoIHRoZSBzdGFydCBsb2NhdGlvbiBvZiB0aGUgYXJjCiAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGQgcm90YXRlIGVhY2ggdGltZSwgMjE2IGdpdmVzIHVzIGEKICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUgcG9pbnRlZCBzdGFyIHNoYXBlIChpdCdzIDM2MC81ICogMykuCiAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgYSA3IHBvaW50ZWQgc3Rhciwgd2UgbWlnaHQgZG8KICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2MC83ICogMyA9IDE1NC4yODYpCiAgICAgICAqICAgICAgU0hSSU5LX1RJTUUgPSA0MDBtcwogICAgICAgKi8KCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKCiAgICAgICAgLyogMzYwICogQVJDVElNRSAvIChBUkNTVEFSVFJPVCArICgzNjAtQVJDU0laRSkpICovCiAgICAgICAgLS1wYXBlci1zcGlubmVyLWNvbnRhaW5lci1yb3RhdGlvbi1kdXJhdGlvbjogMTU2OG1zOwoKICAgICAgICAvKiBBUkNUSU1FICovCiAgICAgICAgLS1wYXBlci1zcGlubmVyLWV4cGFuZC1jb250cmFjdC1kdXJhdGlvbjogMTMzM21zOwoKICAgICAgICAvKiA0ICogQVJDVElNRSAqLwogICAgICAgIC0tcGFwZXItc3Bpbm5lci1mdWxsLWN5Y2xlLWR1cmF0aW9uOiA1MzMybXM7CgogICAgICAgIC8qIFNIUklOS19USU1FICovCiAgICAgICAgLS1wYXBlci1zcGlubmVyLWNvb2xkb3duLWR1cmF0aW9uOiA0MDBtczsKICAgICAgfQoKICAgICAgI3NwaW5uZXJDb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKCiAgICAgICAgLyogVGhlIHNwaW5uZXIgZG9lcyBub3QgaGF2ZSBhbnkgY29udGVudHMgdGhhdCB3b3VsZCBoYXZlIHRvIGJlCiAgICAgICAgICogZmxpcHBlZCBpZiB0aGUgZGlyZWN0aW9uIGNoYW5nZXMuIEFsd2F5cyB1c2UgbHRyIHNvIHRoYXQgdGhlCiAgICAgICAgICogc3R5bGUgd29ya3Mgb3V0IGNvcnJlY3RseSBpbiBib3RoIGNhc2VzLiAqLwogICAgICAgIGRpcmVjdGlvbjogbHRyOwogICAgICB9CgogICAgICAjc3Bpbm5lckNvbnRhaW5lci5hY3RpdmUgewogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBjb250YWluZXItcm90YXRlIHZhcigtLXBhcGVyLXNwaW5uZXItY29udGFpbmVyLXJvdGF0aW9uLWR1cmF0aW9uKSBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgYW5pbWF0aW9uOiBjb250YWluZXItcm90YXRlIHZhcigtLXBhcGVyLXNwaW5uZXItY29udGFpbmVyLXJvdGF0aW9uLWR1cmF0aW9uKSBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBjb250YWluZXItcm90YXRlIHsKICAgICAgICB0byB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgY29udGFpbmVyLXJvdGF0ZSB7CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIH0KICAgICAgfQoKICAgICAgLnNwaW5uZXItbGF5ZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1zcGlubmVyLWNvbG9yLCB2YXIoLS1nb29nbGUtYmx1ZS01MDApKTsKICAgICAgfQoKICAgICAgLmxheWVyLTEgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1zcGlubmVyLWxheWVyLTEtY29sb3IsIHZhcigtLWdvb2dsZS1ibHVlLTUwMCkpOwogICAgICB9CgogICAgICAubGF5ZXItMiB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXNwaW5uZXItbGF5ZXItMi1jb2xvciwgdmFyKC0tZ29vZ2xlLXJlZC01MDApKTsKICAgICAgfQoKICAgICAgLmxheWVyLTMgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1zcGlubmVyLWxheWVyLTMtY29sb3IsIHZhcigtLWdvb2dsZS15ZWxsb3ctNTAwKSk7CiAgICAgIH0KCiAgICAgIC5sYXllci00IHsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItc3Bpbm5lci1sYXllci00LWNvbG9yLCB2YXIoLS1nb29nbGUtZ3JlZW4tNTAwKSk7CiAgICAgIH0KCiAgICAgIC8qKgogICAgICAgKiBJTVBPUlRBTlQgTk9URSBBQk9VVCBDU1MgQU5JTUFUSU9OIFBST1BFUlRJRVMgKGtlYW51bGVlKToKICAgICAgICoKICAgICAgICogaU9TIFNhZmFyaSAodGVzdGVkIG9uIGlPUyA4LjEpIGRvZXMgbm90IGhhbmRsZSBhbmltYXRpb24tZGVsYXkgdmVyeSB3ZWxsIC0gaXQgZG9lc24ndAogICAgICAgKiBndWFyYW50ZWUgdGhhdCB0aGUgYW5pbWF0aW9uIHdpbGwgc3RhcnQgX2V4YWN0bHlfIGFmdGVyIHRoYXQgdmFsdWUuIFNvIHdlIGF2b2lkIHVzaW5nCiAgICAgICAqIGFuaW1hdGlvbi1kZWxheSBhbmQgaW5zdGVhZCBzZXQgY3VzdG9tIGtleWZyYW1lcyBmb3IgZWFjaCBjb2xvciAoYXMgbGF5ZXItMnVuZGFudCBhcyBpdAogICAgICAgKiBzZWVtcykuCiAgICAgICAqLwogICAgICAuYWN0aXZlIC5zcGlubmVyLWxheWVyIHsKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmaWxsLXVuZmlsbC1yb3RhdGU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXNwaW5uZXItZnVsbC1jeWNsZS1kdXJhdGlvbik7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSk7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsKICAgICAgICBhbmltYXRpb24tbmFtZTogZmlsbC11bmZpbGwtcm90YXRlOwogICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItc3Bpbm5lci1mdWxsLWN5Y2xlLWR1cmF0aW9uKTsKICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSk7CiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmFjdGl2ZSAuc3Bpbm5lci1sYXllci5sYXllci0xIHsKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmaWxsLXVuZmlsbC1yb3RhdGUsIGxheWVyLTEtZmFkZS1pbi1vdXQ7CiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGZpbGwtdW5maWxsLXJvdGF0ZSwgbGF5ZXItMS1mYWRlLWluLW91dDsKICAgICAgfQoKICAgICAgLmFjdGl2ZSAuc3Bpbm5lci1sYXllci5sYXllci0yIHsKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmaWxsLXVuZmlsbC1yb3RhdGUsIGxheWVyLTItZmFkZS1pbi1vdXQ7CiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGZpbGwtdW5maWxsLXJvdGF0ZSwgbGF5ZXItMi1mYWRlLWluLW91dDsKICAgICAgfQoKICAgICAgLmFjdGl2ZSAuc3Bpbm5lci1sYXllci5sYXllci0zIHsKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmaWxsLXVuZmlsbC1yb3RhdGUsIGxheWVyLTMtZmFkZS1pbi1vdXQ7CiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGZpbGwtdW5maWxsLXJvdGF0ZSwgbGF5ZXItMy1mYWRlLWluLW91dDsKICAgICAgfQoKICAgICAgLmFjdGl2ZSAuc3Bpbm5lci1sYXllci5sYXllci00IHsKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmaWxsLXVuZmlsbC1yb3RhdGUsIGxheWVyLTQtZmFkZS1pbi1vdXQ7CiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGZpbGwtdW5maWxsLXJvdGF0ZSwgbGF5ZXItNC1mYWRlLWluLW91dDsKICAgICAgfQoKICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGZpbGwtdW5maWxsLXJvdGF0ZSB7CiAgICAgICAgMTIuNSUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgfSAvKiAwLjUgKiBBUkNTSVpFICovCiAgICAgICAgMjUlICAgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgfSAvKiAxICAgKiBBUkNTSVpFICovCiAgICAgICAgMzcuNSUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQwNWRlZykgfSAvKiAxLjUgKiBBUkNTSVpFICovCiAgICAgICAgNTAlICAgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDU0MGRlZykgfSAvKiAyICAgKiBBUkNTSVpFICovCiAgICAgICAgNjIuNSUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDY3NWRlZykgfSAvKiAyLjUgKiBBUkNTSVpFICovCiAgICAgICAgNzUlICAgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDgxMGRlZykgfSAvKiAzICAgKiBBUkNTSVpFICovCiAgICAgICAgODcuNSUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDk0NWRlZykgfSAvKiAzLjUgKiBBUkNTSVpFICovCiAgICAgICAgdG8gICAgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEwODBkZWcpIH0gLyogNCAgICogQVJDU0laRSAqLwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGZpbGwtdW5maWxsLXJvdGF0ZSB7CiAgICAgICAgMTIuNSUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIH0gLyogMC41ICogQVJDU0laRSAqLwogICAgICAgIDI1JSAgIHsgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSB9IC8qIDEgICAqIEFSQ1NJWkUgKi8KICAgICAgICAzNy41JSB7IHRyYW5zZm9ybTogcm90YXRlKDQwNWRlZykgfSAvKiAxLjUgKiBBUkNTSVpFICovCiAgICAgICAgNTAlICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSg1NDBkZWcpIH0gLyogMiAgICogQVJDU0laRSAqLwogICAgICAgIDYyLjUlIHsgdHJhbnNmb3JtOiByb3RhdGUoNjc1ZGVnKSB9IC8qIDIuNSAqIEFSQ1NJWkUgKi8KICAgICAgICA3NSUgICB7IHRyYW5zZm9ybTogcm90YXRlKDgxMGRlZykgfSAvKiAzICAgKiBBUkNTSVpFICovCiAgICAgICAgODcuNSUgeyB0cmFuc2Zvcm06IHJvdGF0ZSg5NDVkZWcpIH0gLyogMy41ICogQVJDU0laRSAqLwogICAgICAgIHRvICAgIHsgdHJhbnNmb3JtOiByb3RhdGUoMTA4MGRlZykgfSAvKiA0ICAgKiBBUkNTSVpFICovCiAgICAgIH0KCiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBsYXllci0xLWZhZGUtaW4tb3V0IHsKICAgICAgICAwJSB7IG9wYWNpdHk6IDEgfQogICAgICAgIDI1JSB7IG9wYWNpdHk6IDEgfQogICAgICAgIDI2JSB7IG9wYWNpdHk6IDAgfQogICAgICAgIDg5JSB7IG9wYWNpdHk6IDAgfQogICAgICAgIDkwJSB7IG9wYWNpdHk6IDEgfQogICAgICAgIHRvIHsgb3BhY2l0eTogMSB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgbGF5ZXItMS1mYWRlLWluLW91dCB7CiAgICAgICAgMCUgeyBvcGFjaXR5OiAxIH0KICAgICAgICAyNSUgeyBvcGFjaXR5OiAxIH0KICAgICAgICAyNiUgeyBvcGFjaXR5OiAwIH0KICAgICAgICA4OSUgeyBvcGFjaXR5OiAwIH0KICAgICAgICA5MCUgeyBvcGFjaXR5OiAxIH0KICAgICAgICB0byB7IG9wYWNpdHk6IDEgfQogICAgICB9CgogICAgICBALXdlYmtpdC1rZXlmcmFtZXMgbGF5ZXItMi1mYWRlLWluLW91dCB7CiAgICAgICAgMCUgeyBvcGFjaXR5OiAwIH0KICAgICAgICAxNSUgeyBvcGFjaXR5OiAwIH0KICAgICAgICAyNSUgeyBvcGFjaXR5OiAxIH0KICAgICAgICA1MCUgeyBvcGFjaXR5OiAxIH0KICAgICAgICA1MSUgeyBvcGFjaXR5OiAwIH0KICAgICAgICB0byB7IG9wYWNpdHk6IDAgfQogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGxheWVyLTItZmFkZS1pbi1vdXQgewogICAgICAgIDAlIHsgb3BhY2l0eTogMCB9CiAgICAgICAgMTUlIHsgb3BhY2l0eTogMCB9CiAgICAgICAgMjUlIHsgb3BhY2l0eTogMSB9CiAgICAgICAgNTAlIHsgb3BhY2l0eTogMSB9CiAgICAgICAgNTElIHsgb3BhY2l0eTogMCB9CiAgICAgICAgdG8geyBvcGFjaXR5OiAwIH0KICAgICAgfQoKICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGxheWVyLTMtZmFkZS1pbi1vdXQgewogICAgICAgIDAlIHsgb3BhY2l0eTogMCB9CiAgICAgICAgNDAlIHsgb3BhY2l0eTogMCB9CiAgICAgICAgNTAlIHsgb3BhY2l0eTogMSB9CiAgICAgICAgNzUlIHsgb3BhY2l0eTogMSB9CiAgICAgICAgNzYlIHsgb3BhY2l0eTogMCB9CiAgICAgICAgdG8geyBvcGFjaXR5OiAwIH0KICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBsYXllci0zLWZhZGUtaW4tb3V0IHsKICAgICAgICAwJSB7IG9wYWNpdHk6IDAgfQogICAgICAgIDQwJSB7IG9wYWNpdHk6IDAgfQogICAgICAgIDUwJSB7IG9wYWNpdHk6IDEgfQogICAgICAgIDc1JSB7IG9wYWNpdHk6IDEgfQogICAgICAgIDc2JSB7IG9wYWNpdHk6IDAgfQogICAgICAgIHRvIHsgb3BhY2l0eTogMCB9CiAgICAgIH0KCiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBsYXllci00LWZhZGUtaW4tb3V0IHsKICAgICAgICAwJSB7IG9wYWNpdHk6IDAgfQogICAgICAgIDY1JSB7IG9wYWNpdHk6IDAgfQogICAgICAgIDc1JSB7IG9wYWNpdHk6IDEgfQogICAgICAgIDkwJSB7IG9wYWNpdHk6IDEgfQogICAgICAgIHRvIHsgb3BhY2l0eTogMCB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgbGF5ZXItNC1mYWRlLWluLW91dCB7CiAgICAgICAgMCUgeyBvcGFjaXR5OiAwIH0KICAgICAgICA2NSUgeyBvcGFjaXR5OiAwIH0KICAgICAgICA3NSUgeyBvcGFjaXR5OiAxIH0KICAgICAgICA5MCUgeyBvcGFjaXR5OiAxIH0KICAgICAgICB0byB7IG9wYWNpdHk6IDAgfQogICAgICB9CgogICAgICAuY2lyY2xlLWNsaXBwZXIgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDUwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLyoqCiAgICAgICAqIFBhdGNoIHRoZSBnYXAgdGhhdCBhcHBlYXIgYmV0d2VlbiB0aGUgdHdvIGFkamFjZW50IGRpdi5jaXJjbGUtY2xpcHBlciB3aGlsZSB0aGUKICAgICAgICogc3Bpbm5lciBpcyByb3RhdGluZyAoYXBwZWFycyBvbiBDaHJvbWUgNTAsIFNhZmFyaSA5LjEuMSwgYW5kIEVkZ2UpLgogICAgICAgKi8KICAgICAgLnNwaW5uZXItbGF5ZXI6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBsZWZ0OiA0NSU7CiAgICAgICAgd2lkdGg6IDEwJTsKICAgICAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsKICAgICAgfQoKICAgICAgLnNwaW5uZXItbGF5ZXI6OmFmdGVyLAogICAgICAuY2lyY2xlLWNsaXBwZXIgLmNpcmNsZSB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcGFwZXItc3Bpbm5lci1zdHJva2Utd2lkdGgsIDNweCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAuY2lyY2xlLWNsaXBwZXIgLmNpcmNsZSB7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHdpZHRoOiAyMDAlOwogICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7CiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmNpcmNsZS1jbGlwcGVyLmxlZnQgLmNpcmNsZSB7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMjlkZWcpOwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEyOWRlZyk7CiAgICAgIH0KCiAgICAgIC5jaXJjbGUtY2xpcHBlci5yaWdodCAuY2lyY2xlIHsKICAgICAgICBsZWZ0OiAtMTAwJTsKICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMjlkZWcpOwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMjlkZWcpOwogICAgICB9CgogICAgICAuYWN0aXZlIC5nYXAtcGF0Y2g6OmFmdGVyLAogICAgICAuYWN0aXZlIC5jaXJjbGUtY2xpcHBlciAuY2lyY2xlIHsKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItc3Bpbm5lci1leHBhbmQtY29udHJhY3QtZHVyYXRpb24pOwogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpOwogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7CiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci1zcGlubmVyLWV4cGFuZC1jb250cmFjdC1kdXJhdGlvbik7CiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpOwogICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOwogICAgICB9CgogICAgICAuYWN0aXZlIC5jaXJjbGUtY2xpcHBlci5sZWZ0IC5jaXJjbGUgewogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGxlZnQtc3BpbjsKICAgICAgICBhbmltYXRpb24tbmFtZTogbGVmdC1zcGluOwogICAgICB9CgogICAgICAuYWN0aXZlIC5jaXJjbGUtY2xpcHBlci5yaWdodCAuY2lyY2xlIHsKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByaWdodC1zcGluOwogICAgICAgIGFuaW1hdGlvbi1uYW1lOiByaWdodC1zcGluOwogICAgICB9CgogICAgICBALXdlYmtpdC1rZXlmcmFtZXMgbGVmdC1zcGluIHsKICAgICAgICAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKSB9CiAgICAgICAgNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZykgfQogICAgICAgIHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMzBkZWcpIH0KICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBsZWZ0LXNwaW4gewogICAgICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKSB9CiAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpIH0KICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDEzMGRlZykgfQogICAgICB9CgogICAgICBALXdlYmtpdC1rZXlmcmFtZXMgcmlnaHQtc3BpbiB7CiAgICAgICAgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMzBkZWcpIH0KICAgICAgICA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDVkZWcpIH0KICAgICAgICB0byB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZykgfQogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHJpZ2h0LXNwaW4gewogICAgICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZykgfQogICAgICAgIDUwJSB7IHRyYW5zZm9ybTogcm90YXRlKDVkZWcpIH0KICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKC0xMzBkZWcpIH0KICAgICAgfQoKICAgICAgI3NwaW5uZXJDb250YWluZXIuY29vbGRvd24gewogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBjb250YWluZXItcm90YXRlIHZhcigtLXBhcGVyLXNwaW5uZXItY29udGFpbmVyLXJvdGF0aW9uLWR1cmF0aW9uKSBsaW5lYXIgaW5maW5pdGUsIGZhZGUtb3V0IHZhcigtLXBhcGVyLXNwaW5uZXItY29vbGRvd24tZHVyYXRpb24pIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKTsKICAgICAgICBhbmltYXRpb246IGNvbnRhaW5lci1yb3RhdGUgdmFyKC0tcGFwZXItc3Bpbm5lci1jb250YWluZXItcm90YXRpb24tZHVyYXRpb24pIGxpbmVhciBpbmZpbml0ZSwgZmFkZS1vdXQgdmFyKC0tcGFwZXItc3Bpbm5lci1jb29sZG93bi1kdXJhdGlvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpOwogICAgICB9CgogICAgICBALXdlYmtpdC1rZXlmcmFtZXMgZmFkZS1vdXQgewogICAgICAgIDAlIHsgb3BhY2l0eTogMSB9CiAgICAgICAgdG8geyBvcGFjaXR5OiAwIH0KICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBmYWRlLW91dCB7CiAgICAgICAgMCUgeyBvcGFjaXR5OiAxIH0KICAgICAgICB0byB7IG9wYWNpdHk6IDAgfQogICAgICB9CiAgICA8L3N0eWxlPgogIDwvdGVtcGxhdGU+CjwvZG9tLW1vZHVsZT5gO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoTVcuY29udGVudCk7dmFyIEQ5PXtwcm9wZXJ0aWVzOnthY3RpdmU6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsb2JzZXJ2ZXI6Il9fYWN0aXZlQ2hhbmdlZCJ9LGFsdDp7dHlwZTpTdHJpbmcsdmFsdWU6ImxvYWRpbmciLG9ic2VydmVyOiJfX2FsdENoYW5nZWQifSxfX2Nvb2xpbmdEb3duOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9fSxfX2NvbXB1dGVDb250YWluZXJDbGFzc2VzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuW2V8fHQ/ImFjdGl2ZSI6IiIsdD8iY29vbGRvd24iOiIiXS5qb2luKCIgIil9LF9fYWN0aXZlQ2hhbmdlZDpmdW5jdGlvbihlLHQpe3RoaXMuX19zZXRBcmlhSGlkZGVuKCFlKSx0aGlzLl9fY29vbGluZ0Rvd249IWUmJnR9LF9fYWx0Q2hhbmdlZDpmdW5jdGlvbihlKXtlPT09ImxvYWRpbmciP3RoaXMuYWx0PXRoaXMuZ2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIil8fGU6KHRoaXMuX19zZXRBcmlhSGlkZGVuKGU9PT0iIiksdGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLGUpKX0sX19zZXRBcmlhSGlkZGVuOmZ1bmN0aW9uKGUpe3ZhciB0PSJhcmlhLWhpZGRlbiI7ZT90aGlzLnNldEF0dHJpYnV0ZSh0LCJ0cnVlIik6dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9LF9fcmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZT0hMSx0aGlzLl9fY29vbGluZ0Rvd249ITF9fTt2YXIgTjB0PVFgCiAgPHN0eWxlIGluY2x1ZGU9InBhcGVyLXNwaW5uZXItc3R5bGVzIj48L3N0eWxlPgoKICA8ZGl2IGlkPSJzcGlubmVyQ29udGFpbmVyIiBjbGFzcy1uYW1lPSJbW19fY29tcHV0ZUNvbnRhaW5lckNsYXNzZXMoYWN0aXZlLCBfX2Nvb2xpbmdEb3duKV1dIiBvbi1hbmltYXRpb25lbmQ9Il9fcmVzZXQiIG9uLXdlYmtpdC1hbmltYXRpb24tZW5kPSJfX3Jlc2V0Ij4KICAgIDxkaXYgY2xhc3M9InNwaW5uZXItbGF5ZXIgbGF5ZXItMSI+CiAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1jbGlwcGVyIGxlZnQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY2xpcHBlciByaWdodCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzcGlubmVyLWxheWVyIGxheWVyLTIiPgogICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY2xpcHBlciBsZWZ0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNsaXBwZXIgcmlnaHQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic3Bpbm5lci1sYXllciBsYXllci0zIj4KICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNsaXBwZXIgbGVmdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1jbGlwcGVyIHJpZ2h0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNwaW5uZXItbGF5ZXIgbGF5ZXItNCI+CiAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1jbGlwcGVyIGxlZnQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY2xpcHBlciByaWdodCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYDtOMHQuc2V0QXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiwiIik7WXQoe190ZW1wbGF0ZTpOMHQsaXM6InBhcGVyLXNwaW5uZXIiLGJlaGF2aW9yczpbRDldfSk7dmFyIEQwdD1RYAogIDxzdHlsZSBpbmNsdWRlPSJwYXBlci1zcGlubmVyLXN0eWxlcyI+PC9zdHlsZT4KCiAgPGRpdiBpZD0ic3Bpbm5lckNvbnRhaW5lciIgY2xhc3MtbmFtZT0iW1tfX2NvbXB1dGVDb250YWluZXJDbGFzc2VzKGFjdGl2ZSwgX19jb29saW5nRG93bildXSIgb24tYW5pbWF0aW9uZW5kPSJfX3Jlc2V0IiBvbi13ZWJraXQtYW5pbWF0aW9uLWVuZD0iX19yZXNldCI+CiAgICA8ZGl2IGNsYXNzPSJzcGlubmVyLWxheWVyIj4KICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNsaXBwZXIgbGVmdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1jbGlwcGVyIHJpZ2h0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgO0QwdC5zZXRBdHRyaWJ1dGUoInN0cmlwLXdoaXRlc3BhY2UiLCIiKTtZdCh7X3RlbXBsYXRlOkQwdCxpczoicGFwZXItc3Bpbm5lci1saXRlIixiZWhhdmlvcnM6W0Q5XX0pO3ZhciBqYmU9UWA8aXJvbi1pY29uc2V0LXN2ZyBuYW1lPSJwYXBlci10YWJzIiBzaXplPSIyNCI+Cjxzdmc+PGRlZnM+CjxnIGlkPSJjaGV2cm9uLWxlZnQiPjxwYXRoIGQ9Ik0xNS40MSA3LjQxTDE0IDZsLTYgNiA2IDYgMS40MS0xLjQxTDEwLjgzIDEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNoZXZyb24tcmlnaHQiPjxwYXRoIGQ9Ik0xMCA2TDguNTkgNy40MSAxMy4xNyAxMmwtNC41OCA0LjU5TDEwIDE4bDYtNnoiPjwvcGF0aD48L2c+CjwvZGVmcz48L3N2Zz4KPC9pcm9uLWljb25zZXQtc3ZnPmA7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChqYmUuY29udGVudCk7WXQoe190ZW1wbGF0ZTpRYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWlubGluZTsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyOwogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXItanVzdGlmaWVkOwogICAgICAgIEBhcHBseSAtLWxheW91dC1mbGV4LWF1dG87CgogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgICAgICBAYXBwbHkgLS1wYXBlci10YWI7CiAgICAgIH0KCiAgICAgIDpob3N0KDpmb2N1cykgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtsaW5rXSkgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC50YWItY29udGVudCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDEsIDEpOwogICAgICAgIEBhcHBseSAtLWxheW91dC1ob3Jpem9udGFsOwogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXItY2VudGVyOwogICAgICAgIEBhcHBseSAtLWxheW91dC1mbGV4LWF1dG87CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdGFiLWNvbnRlbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KDpub3QoLmlyb24tc2VsZWN0ZWQpKSA+IC50YWItY29udGVudCB7CiAgICAgICAgb3BhY2l0eTogMC44OwoKICAgICAgICBAYXBwbHkgLS1wYXBlci10YWItY29udGVudC11bnNlbGVjdGVkOwogICAgICB9CgogICAgICA6aG9zdCg6Zm9jdXMpIC50YWItY29udGVudCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBmb250LXdlaWdodDogNzAwOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci10YWItY29udGVudC1mb2N1c2VkOwogICAgICB9CgogICAgICBwYXBlci1yaXBwbGUgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci10YWItaW5rLCB2YXIoLS1wYXBlci15ZWxsb3ctYTEwMCkpOwogICAgICB9CgogICAgICAudGFiLWNvbnRlbnQgPiA6OnNsb3R0ZWQoYSkgewogICAgICAgIEBhcHBseSAtLWxheW91dC1mbGV4LWF1dG87CgogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJ0YWItY29udGVudCI+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIDwvZGl2PgpgLGlzOiJwYXBlci10YWIiLGJlaGF2aW9yczpbRGksTWgsc3VdLHByb3BlcnRpZXM6e2xpbms6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9fSxob3N0QXR0cmlidXRlczp7cm9sZToidGFiIn0sbGlzdGVuZXJzOntkb3duOiJfdXBkYXRlTm9pbmsiLHRhcDoiX29uVGFwIn0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVOb2luaygpfSxnZXQgX3BhcmVudE5vaW5rKCl7dmFyIGU9enQodGhpcykucGFyZW50Tm9kZTtyZXR1cm4hIWUmJiEhZS5ub2lua30sX3VwZGF0ZU5vaW5rOmZ1bmN0aW9uKCl7dGhpcy5ub2luaz0hIXRoaXMubm9pbmt8fCEhdGhpcy5fcGFyZW50Tm9pbmt9LF9vblRhcDpmdW5jdGlvbihlKXtpZih0aGlzLmxpbmspe3ZhciB0PXRoaXMucXVlcnlFZmZlY3RpdmVDaGlsZHJlbigiYSIpO2lmKCF0fHxlLnRhcmdldD09PXQpcmV0dXJuO3QuY2xpY2soKX19fSk7WXQoe190ZW1wbGF0ZTpRYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0OwogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXI7CgogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CgogICAgICAgIC8qIE5PVEU6IEJvdGggdmFsdWVzIGFyZSBuZWVkZWQsIHNpbmNlIHNvbWUgcGhvbmVzIHJlcXVpcmUgdGhlIHZhbHVlIHRvIGJlIFxgdHJhbnNwYXJlbnRcYC4gKi8KICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7CiAgICAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdGFiczsKICAgICAgfQoKICAgICAgOmhvc3QoOmRpcihydGwpKSB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWwtcmV2ZXJzZTsKICAgICAgfQoKICAgICAgI3RhYnNDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIEBhcHBseSAtLWxheW91dC1mbGV4LWF1dG87CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdGFicy1jb250YWluZXI7CiAgICAgIH0KCiAgICAgICN0YWJzQ29udGVudCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIC1tb3otZmxleC1iYXNpczogYXV0bzsKICAgICAgICAtbXMtZmxleC1iYXNpczogYXV0bzsKICAgICAgICBmbGV4LWJhc2lzOiBhdXRvOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRhYnMtY29udGVudDsKICAgICAgfQoKICAgICAgI3RhYnNDb250ZW50LnNjcm9sbGFibGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAjdGFic0NvbnRlbnQ6bm90KC5zY3JvbGxhYmxlKSwKICAgICAgI3RhYnNDb250ZW50LnNjcm9sbGFibGUuZml0LWNvbnRhaW5lciB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICAgIH0KCiAgICAgICN0YWJzQ29udGVudC5zY3JvbGxhYmxlLmZpdC1jb250YWluZXIgewogICAgICAgIG1pbi13aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgI3RhYnNDb250ZW50LnNjcm9sbGFibGUuZml0LWNvbnRhaW5lciA+IDo6c2xvdHRlZCgqKSB7CiAgICAgICAgLyogSUUgLSBwcmV2ZW50IHRhYnMgZnJvbSBjb21wcmVzc2luZyB3aGVuIHRoZXkgc2hvdWxkIHNjcm9sbC4gKi8KICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87CiAgICAgICAgLXdlYmtpdC1mbGV4OiAxIDAgYXV0bzsKICAgICAgICBmbGV4OiAxIDAgYXV0bzsKICAgICAgfQoKICAgICAgLmhpZGRlbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLm5vdC12aXNpYmxlIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgcGFwZXItaWNvbi1idXR0b24gewogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgICNzZWxlY3Rpb25CYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLXBhcGVyLXRhYnMtc2VsZWN0aW9uLWJhci1jb2xvciwgdmFyKC0tcGFwZXIteWVsbG93LWExMDApKTsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApOwogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjsKICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdGFicy1zZWxlY3Rpb24tYmFyOwogICAgICB9CgogICAgICAjc2VsZWN0aW9uQmFyLmFsaWduLWJvdHRvbSB7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogYXV0bzsKICAgICAgfQoKICAgICAgI3NlbGVjdGlvbkJhci5leHBhbmQgewogICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzOwogICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDEsIDEpOwogICAgICB9CgogICAgICAjc2VsZWN0aW9uQmFyLmNvbnRyYWN0IHsKICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE4czsKICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMCwgMC4wLCAwLjIsIDEpOwogICAgICB9CgogICAgICAjdGFic0NvbnRlbnQgPiA6OnNsb3R0ZWQoOm5vdCgjc2VsZWN0aW9uQmFyKSkgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8cGFwZXItaWNvbi1idXR0b24gaWNvbj0icGFwZXItdGFiczpjaGV2cm9uLWxlZnQiIGNsYXNzJD0iW1tfY29tcHV0ZVNjcm9sbEJ1dHRvbkNsYXNzKF9sZWZ0SGlkZGVuLCBzY3JvbGxhYmxlLCBoaWRlU2Nyb2xsQnV0dG9ucyldXSIgb24tdXA9Il9vblNjcm9sbEJ1dHRvblVwIiBvbi1kb3duPSJfb25MZWZ0U2Nyb2xsQnV0dG9uRG93biIgdGFiaW5kZXg9Ii0xIj48L3BhcGVyLWljb24tYnV0dG9uPgoKICAgIDxkaXYgaWQ9InRhYnNDb250YWluZXIiIG9uLXRyYWNrPSJfc2Nyb2xsIiBvbi1kb3duPSJfZG93biI+CiAgICAgIDxkaXYgaWQ9InRhYnNDb250ZW50IiBjbGFzcyQ9IltbX2NvbXB1dGVUYWJzQ29udGVudENsYXNzKHNjcm9sbGFibGUsIGZpdENvbnRhaW5lcildXSI+CiAgICAgICAgPGRpdiBpZD0ic2VsZWN0aW9uQmFyIiBjbGFzcyQ9IltbX2NvbXB1dGVTZWxlY3Rpb25CYXJDbGFzcyhub0JhciwgYWxpZ25Cb3R0b20pXV0iIG9uLXRyYW5zaXRpb25lbmQ9Il9vbkJhclRyYW5zaXRpb25FbmQiPjwvZGl2PgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8cGFwZXItaWNvbi1idXR0b24gaWNvbj0icGFwZXItdGFiczpjaGV2cm9uLXJpZ2h0IiBjbGFzcyQ9IltbX2NvbXB1dGVTY3JvbGxCdXR0b25DbGFzcyhfcmlnaHRIaWRkZW4sIHNjcm9sbGFibGUsIGhpZGVTY3JvbGxCdXR0b25zKV1dIiBvbi11cD0iX29uU2Nyb2xsQnV0dG9uVXAiIG9uLWRvd249Il9vblJpZ2h0U2Nyb2xsQnV0dG9uRG93biIgdGFiaW5kZXg9Ii0xIj48L3BhcGVyLWljb24tYnV0dG9uPgpgLGlzOiJwYXBlci10YWJzIixiZWhhdmlvcnM6W1FzLE45XSxwcm9wZXJ0aWVzOntub2luazp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG9ic2VydmVyOiJfbm9pbmtDaGFuZ2VkIn0sbm9CYXI6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sbm9TbGlkZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxzY3JvbGxhYmxlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGZpdENvbnRhaW5lcjp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxkaXNhYmxlRHJhZzp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxoaWRlU2Nyb2xsQnV0dG9uczp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxhbGlnbkJvdHRvbTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxzZWxlY3RhYmxlOnt0eXBlOlN0cmluZyx2YWx1ZToicGFwZXItdGFiIn0sYXV0b3NlbGVjdDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxhdXRvc2VsZWN0RGVsYXk6e3R5cGU6TnVtYmVyLHZhbHVlOjB9LF9zdGVwOnt0eXBlOk51bWJlcix2YWx1ZToxMH0sX2hvbGREZWxheTp7dHlwZTpOdW1iZXIsdmFsdWU6MX0sX2xlZnRIaWRkZW46e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX3JpZ2h0SGlkZGVuOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9wcmV2aW91c1RhYjp7dHlwZTpPYmplY3R9fSxob3N0QXR0cmlidXRlczp7cm9sZToidGFibGlzdCJ9LGxpc3RlbmVyczp7Imlyb24tcmVzaXplIjoiX29uVGFiU2l6aW5nQ2hhbmdlZCIsImlyb24taXRlbXMtY2hhbmdlZCI6Il9vblRhYlNpemluZ0NoYW5nZWQiLCJpcm9uLXNlbGVjdCI6Il9vbklyb25TZWxlY3QiLCJpcm9uLWRlc2VsZWN0IjoiX29uSXJvbkRlc2VsZWN0In0sa2V5QmluZGluZ3M6eyJsZWZ0OmtleXVwIHJpZ2h0OmtleXVwIjoiX29uQXJyb3dLZXl1cCJ9LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLl9ob2xkSm9iPW51bGwsdGhpcy5fcGVuZGluZ0FjdGl2YXRpb25JdGVtPXZvaWQgMCx0aGlzLl9wZW5kaW5nQWN0aXZhdGlvblRpbWVvdXQ9dm9pZCAwLHRoaXMuX2JpbmREZWxheWVkQWN0aXZhdGlvbkhhbmRsZXI9dGhpcy5fZGVsYXllZEFjdGl2YXRpb25IYW5kbGVyLmJpbmQodGhpcyksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9vbkJsdXJDYXB0dXJlLmJpbmQodGhpcyksITApfSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuc2V0U2Nyb2xsRGlyZWN0aW9uKCJ5Iix0aGlzLiQudGFic0NvbnRhaW5lcil9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fY2FuY2VsUGVuZGluZ0FjdGl2YXRpb24oKX0sX25vaW5rQ2hhbmdlZDpmdW5jdGlvbihlKXt2YXIgdD16dCh0aGlzKS5xdWVyeVNlbGVjdG9yQWxsKCJwYXBlci10YWIiKTt0LmZvckVhY2goZT90aGlzLl9zZXROb2lua0F0dHJpYnV0ZTp0aGlzLl9yZW1vdmVOb2lua0F0dHJpYnV0ZSl9LF9zZXROb2lua0F0dHJpYnV0ZTpmdW5jdGlvbihlKXtlLnNldEF0dHJpYnV0ZSgibm9pbmsiLCIiKX0sX3JlbW92ZU5vaW5rQXR0cmlidXRlOmZ1bmN0aW9uKGUpe2UucmVtb3ZlQXR0cmlidXRlKCJub2luayIpfSxfY29tcHV0ZVNjcm9sbEJ1dHRvbkNsYXNzOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4hdHx8cj8iaGlkZGVuIjplPyJub3QtdmlzaWJsZSI6IiJ9LF9jb21wdXRlVGFic0NvbnRlbnRDbGFzczpmdW5jdGlvbihlLHQpe3JldHVybiBlPyJzY3JvbGxhYmxlIisodD8iIGZpdC1jb250YWluZXIiOiIiKToiIGZpdC1jb250YWluZXIifSxfY29tcHV0ZVNlbGVjdGlvbkJhckNsYXNzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU/ImhpZGRlbiI6dD8iYWxpZ24tYm90dG9tIjoiIn0sX29uVGFiU2l6aW5nQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuZGVib3VuY2UoIl9vblRhYlNpemluZ0NoYW5nZWQiLGZ1bmN0aW9uKCl7dGhpcy5fc2Nyb2xsKCksdGhpcy5fdGFiQ2hhbmdlZCh0aGlzLnNlbGVjdGVkSXRlbSl9LDEwKX0sX29uSXJvblNlbGVjdDpmdW5jdGlvbihlKXt0aGlzLl90YWJDaGFuZ2VkKGUuZGV0YWlsLml0ZW0sdGhpcy5fcHJldmlvdXNUYWIpLHRoaXMuX3ByZXZpb3VzVGFiPWUuZGV0YWlsLml0ZW0sdGhpcy5jYW5jZWxEZWJvdW5jZXIoInRhYi1jaGFuZ2VkIil9LF9vbklyb25EZXNlbGVjdDpmdW5jdGlvbihlKXt0aGlzLmRlYm91bmNlKCJ0YWItY2hhbmdlZCIsZnVuY3Rpb24oKXt0aGlzLl90YWJDaGFuZ2VkKG51bGwsdGhpcy5fcHJldmlvdXNUYWIpLHRoaXMuX3ByZXZpb3VzVGFiPW51bGx9LDEpfSxfYWN0aXZhdGVIYW5kbGVyOmZ1bmN0aW9uKCl7dGhpcy5fY2FuY2VsUGVuZGluZ0FjdGl2YXRpb24oKSx5Xy5fYWN0aXZhdGVIYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sX3NjaGVkdWxlQWN0aXZhdGlvbjpmdW5jdGlvbihlLHQpe3RoaXMuX3BlbmRpbmdBY3RpdmF0aW9uSXRlbT1lLHRoaXMuX3BlbmRpbmdBY3RpdmF0aW9uVGltZW91dD10aGlzLmFzeW5jKHRoaXMuX2JpbmREZWxheWVkQWN0aXZhdGlvbkhhbmRsZXIsdCl9LF9kZWxheWVkQWN0aXZhdGlvbkhhbmRsZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9wZW5kaW5nQWN0aXZhdGlvbkl0ZW07dGhpcy5fcGVuZGluZ0FjdGl2YXRpb25JdGVtPXZvaWQgMCx0aGlzLl9wZW5kaW5nQWN0aXZhdGlvblRpbWVvdXQ9dm9pZCAwLGUuZmlyZSh0aGlzLmFjdGl2YXRlRXZlbnQsbnVsbCx7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwfSl9LF9jYW5jZWxQZW5kaW5nQWN0aXZhdGlvbjpmdW5jdGlvbigpe3RoaXMuX3BlbmRpbmdBY3RpdmF0aW9uVGltZW91dCE9PXZvaWQgMCYmKHRoaXMuY2FuY2VsQXN5bmModGhpcy5fcGVuZGluZ0FjdGl2YXRpb25UaW1lb3V0KSx0aGlzLl9wZW5kaW5nQWN0aXZhdGlvbkl0ZW09dm9pZCAwLHRoaXMuX3BlbmRpbmdBY3RpdmF0aW9uVGltZW91dD12b2lkIDApfSxfb25BcnJvd0tleXVwOmZ1bmN0aW9uKGUpe3RoaXMuYXV0b3NlbGVjdCYmdGhpcy5fc2NoZWR1bGVBY3RpdmF0aW9uKHRoaXMuZm9jdXNlZEl0ZW0sdGhpcy5hdXRvc2VsZWN0RGVsYXkpfSxfb25CbHVyQ2FwdHVyZTpmdW5jdGlvbihlKXtlLnRhcmdldD09PXRoaXMuX3BlbmRpbmdBY3RpdmF0aW9uSXRlbSYmdGhpcy5fY2FuY2VsUGVuZGluZ0FjdGl2YXRpb24oKX0sZ2V0IF90YWJDb250YWluZXJTY3JvbGxTaXplKCl7cmV0dXJuIE1hdGgubWF4KDAsdGhpcy4kLnRhYnNDb250YWluZXIuc2Nyb2xsV2lkdGgtdGhpcy4kLnRhYnNDb250YWluZXIub2Zmc2V0V2lkdGgpfSxfc2Nyb2xsOmZ1bmN0aW9uKGUsdCl7aWYoISF0aGlzLnNjcm9sbGFibGUpe3ZhciByPXQmJi10LmRkeHx8MDt0aGlzLl9hZmZlY3RTY3JvbGwocil9fSxfZG93bjpmdW5jdGlvbihlKXt0aGlzLmFzeW5jKGZ1bmN0aW9uKCl7dGhpcy5fZGVmYXVsdEZvY3VzQXN5bmMmJih0aGlzLmNhbmNlbEFzeW5jKHRoaXMuX2RlZmF1bHRGb2N1c0FzeW5jKSx0aGlzLl9kZWZhdWx0Rm9jdXNBc3luYz1udWxsKX0sMSl9LF9hZmZlY3RTY3JvbGw6ZnVuY3Rpb24oZSl7dGhpcy4kLnRhYnNDb250YWluZXIuc2Nyb2xsTGVmdCs9ZTt2YXIgdD10aGlzLiQudGFic0NvbnRhaW5lci5zY3JvbGxMZWZ0O3RoaXMuX2xlZnRIaWRkZW49dD09PTAsdGhpcy5fcmlnaHRIaWRkZW49dD09PXRoaXMuX3RhYkNvbnRhaW5lclNjcm9sbFNpemV9LF9vbkxlZnRTY3JvbGxCdXR0b25Eb3duOmZ1bmN0aW9uKCl7dGhpcy5fc2Nyb2xsVG9MZWZ0KCksdGhpcy5faG9sZEpvYj1zZXRJbnRlcnZhbCh0aGlzLl9zY3JvbGxUb0xlZnQuYmluZCh0aGlzKSx0aGlzLl9ob2xkRGVsYXkpfSxfb25SaWdodFNjcm9sbEJ1dHRvbkRvd246ZnVuY3Rpb24oKXt0aGlzLl9zY3JvbGxUb1JpZ2h0KCksdGhpcy5faG9sZEpvYj1zZXRJbnRlcnZhbCh0aGlzLl9zY3JvbGxUb1JpZ2h0LmJpbmQodGhpcyksdGhpcy5faG9sZERlbGF5KX0sX29uU2Nyb2xsQnV0dG9uVXA6ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKHRoaXMuX2hvbGRKb2IpLHRoaXMuX2hvbGRKb2I9bnVsbH0sX3Njcm9sbFRvTGVmdDpmdW5jdGlvbigpe3RoaXMuX2FmZmVjdFNjcm9sbCgtdGhpcy5fc3RlcCl9LF9zY3JvbGxUb1JpZ2h0OmZ1bmN0aW9uKCl7dGhpcy5fYWZmZWN0U2Nyb2xsKHRoaXMuX3N0ZXApfSxfdGFiQ2hhbmdlZDpmdW5jdGlvbihlLHQpe2lmKCFlKXt0aGlzLiQuc2VsZWN0aW9uQmFyLmNsYXNzTGlzdC5yZW1vdmUoImV4cGFuZCIpLHRoaXMuJC5zZWxlY3Rpb25CYXIuY2xhc3NMaXN0LnJlbW92ZSgiY29udHJhY3QiKSx0aGlzLl9wb3NpdGlvbkJhcigwLDApO3JldHVybn12YXIgcj10aGlzLiQudGFic0NvbnRlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj1yLndpZHRoLGk9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPWkubGVmdC1yLmxlZnQ7aWYodGhpcy5fcG9zPXt3aWR0aDp0aGlzLl9jYWxjUGVyY2VudChpLndpZHRoLG4pLGxlZnQ6dGhpcy5fY2FsY1BlcmNlbnQobyxuKX0sdGhpcy5ub1NsaWRlfHx0PT1udWxsKXt0aGlzLiQuc2VsZWN0aW9uQmFyLmNsYXNzTGlzdC5yZW1vdmUoImV4cGFuZCIpLHRoaXMuJC5zZWxlY3Rpb25CYXIuY2xhc3NMaXN0LnJlbW92ZSgiY29udHJhY3QiKSx0aGlzLl9wb3NpdGlvbkJhcih0aGlzLl9wb3Mud2lkdGgsdGhpcy5fcG9zLmxlZnQpO3JldHVybn12YXIgYT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9dGhpcy5pdGVtcy5pbmRleE9mKHQpLGw9dGhpcy5pdGVtcy5pbmRleE9mKGUpLGM9NTt0aGlzLiQuc2VsZWN0aW9uQmFyLmNsYXNzTGlzdC5hZGQoImV4cGFuZCIpO3ZhciB1PXM8bCxoPXRoaXMuX2lzUlRMO2gmJih1PSF1KSx1P3RoaXMuX3Bvc2l0aW9uQmFyKHRoaXMuX2NhbGNQZXJjZW50KGkubGVmdCtpLndpZHRoLWEubGVmdCxuKS1jLHRoaXMuX2xlZnQpOnRoaXMuX3Bvc2l0aW9uQmFyKHRoaXMuX2NhbGNQZXJjZW50KGEubGVmdCthLndpZHRoLWkubGVmdCxuKS1jLHRoaXMuX2NhbGNQZXJjZW50KG8sbikrYyksdGhpcy5zY3JvbGxhYmxlJiZ0aGlzLl9zY3JvbGxUb1NlbGVjdGVkSWZOZWVkZWQoaS53aWR0aCxvKX0sX3Njcm9sbFRvU2VsZWN0ZWRJZk5lZWRlZDpmdW5jdGlvbihlLHQpe3ZhciByPXQtdGhpcy4kLnRhYnNDb250YWluZXIuc2Nyb2xsTGVmdDtyPDA/dGhpcy4kLnRhYnNDb250YWluZXIuc2Nyb2xsTGVmdCs9cjoocis9ZS10aGlzLiQudGFic0NvbnRhaW5lci5vZmZzZXRXaWR0aCxyPjAmJih0aGlzLiQudGFic0NvbnRhaW5lci5zY3JvbGxMZWZ0Kz1yKSl9LF9jYWxjUGVyY2VudDpmdW5jdGlvbihlLHQpe3JldHVybiAxMDAqZS90fSxfcG9zaXRpb25CYXI6ZnVuY3Rpb24oZSx0KXtlPWV8fDAsdD10fHwwLHRoaXMuX3dpZHRoPWUsdGhpcy5fbGVmdD10LHRoaXMudHJhbnNmb3JtKCJ0cmFuc2xhdGVYKCIrdCsiJSkgc2NhbGVYKCIrZS8xMDArIikiLHRoaXMuJC5zZWxlY3Rpb25CYXIpfSxfb25CYXJUcmFuc2l0aW9uRW5kOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuJC5zZWxlY3Rpb25CYXIuY2xhc3NMaXN0O3QuY29udGFpbnMoImV4cGFuZCIpPyh0LnJlbW92ZSgiZXhwYW5kIiksdC5hZGQoImNvbnRyYWN0IiksdGhpcy5fcG9zaXRpb25CYXIodGhpcy5fcG9zLndpZHRoLHRoaXMuX3Bvcy5sZWZ0KSk6dC5jb250YWlucygiY29udHJhY3QiKSYmdC5yZW1vdmUoImNvbnRyYWN0Iil9fSk7dmFyIEp4PW51bGw7WXQoe190ZW1wbGF0ZTpRYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXRvYXN0LWJhY2tncm91bmQtY29sb3IsICMzMjMyMzIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci10b2FzdC1jb2xvciwgI2YxZjFmMSk7CiAgICAgICAgbWluLWhlaWdodDogNDhweDsKICAgICAgICBtaW4td2lkdGg6IDI4OHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHggMjRweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIG1hcmdpbjogMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcywgb3BhY2l0eSAwLjNzOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzLCBvcGFjaXR5IDAuM3M7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDBweCk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHB4KTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICB9CgogICAgICA6aG9zdCguY2Fwc3VsZSkgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KC5maXQtYm90dG9tKSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICA6aG9zdCgucGFwZXItdG9hc3Qtb3BlbikgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8c3BhbiBpZD0ibGFiZWwiPnt7dGV4dH19PC9zcGFuPgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJwYXBlci10b2FzdCIsYmVoYXZpb3JzOltLeF0scHJvcGVydGllczp7Zml0SW50bzp7dHlwZTpPYmplY3QsdmFsdWU6d2luZG93LG9ic2VydmVyOiJfb25GaXRJbnRvQ2hhbmdlZCJ9LGhvcml6b250YWxBbGlnbjp7dHlwZTpTdHJpbmcsdmFsdWU6ImxlZnQifSx2ZXJ0aWNhbEFsaWduOnt0eXBlOlN0cmluZyx2YWx1ZToiYm90dG9tIn0sZHVyYXRpb246e3R5cGU6TnVtYmVyLHZhbHVlOjNlM30sdGV4dDp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9LG5vQ2FuY2VsT25PdXRzaWRlQ2xpY2s6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMH0sbm9BdXRvRm9jdXM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMH19LGxpc3RlbmVyczp7dHJhbnNpdGlvbmVuZDoiX19vblRyYW5zaXRpb25FbmQifSxnZXQgdmlzaWJsZSgpe3JldHVybiBPYS5fd2FybigiYHZpc2libGVgIGlzIGRlcHJlY2F0ZWQsIHVzZSBgb3BlbmVkYCBpbnN0ZWFkIiksdGhpcy5vcGVuZWR9LGdldCBfY2FuQXV0b0Nsb3NlKCl7cmV0dXJuIHRoaXMuZHVyYXRpb24+MCYmdGhpcy5kdXJhdGlvbiE9PTEvMH0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX2F1dG9DbG9zZT1udWxsLGVjLnJlcXVlc3RBdmFpbGFiaWxpdHkoKX0sc2hvdzpmdW5jdGlvbihlKXt0eXBlb2YgZT09InN0cmluZyImJihlPXt0ZXh0OmV9KTtmb3IodmFyIHQgaW4gZSl0LmluZGV4T2YoIl8iKT09PTA/T2EuX3dhcm4oJ1RoZSBwcm9wZXJ0eSAiJyt0KyciIGlzIHByaXZhdGUgYW5kIHdhcyBub3Qgc2V0LicpOnQgaW4gdGhpcz90aGlzW3RdPWVbdF06T2EuX3dhcm4oJ1RoZSBwcm9wZXJ0eSAiJyt0KyciIGlzIG5vdCB2YWxpZC4nKTt0aGlzLm9wZW4oKX0saGlkZTpmdW5jdGlvbigpe3RoaXMuY2xvc2UoKX0sX19vblRyYW5zaXRpb25FbmQ6ZnVuY3Rpb24oZSl7ZSYmZS50YXJnZXQ9PT10aGlzJiZlLnByb3BlcnR5TmFtZT09PSJvcGFjaXR5IiYmKHRoaXMub3BlbmVkP3RoaXMuX2ZpbmlzaFJlbmRlck9wZW5lZCgpOnRoaXMuX2ZpbmlzaFJlbmRlckNsb3NlZCgpKX0sX29wZW5lZENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLl9hdXRvQ2xvc2UhPT1udWxsJiYodGhpcy5jYW5jZWxBc3luYyh0aGlzLl9hdXRvQ2xvc2UpLHRoaXMuX2F1dG9DbG9zZT1udWxsKSx0aGlzLm9wZW5lZD8oSngmJkp4IT09dGhpcyYmSnguY2xvc2UoKSxKeD10aGlzLHRoaXMuZmlyZSgiaXJvbi1hbm5vdW5jZSIse3RleHQ6dGhpcy50ZXh0fSksdGhpcy5fY2FuQXV0b0Nsb3NlJiYodGhpcy5fYXV0b0Nsb3NlPXRoaXMuYXN5bmModGhpcy5jbG9zZSx0aGlzLmR1cmF0aW9uKSkpOkp4PT09dGhpcyYmKEp4PW51bGwpLEltLl9vcGVuZWRDaGFuZ2VkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sX3JlbmRlck9wZW5lZDpmdW5jdGlvbigpe3RoaXMuY2xhc3NMaXN0LmFkZCgicGFwZXItdG9hc3Qtb3BlbiIpfSxfcmVuZGVyQ2xvc2VkOmZ1bmN0aW9uKCl7dGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJwYXBlci10b2FzdC1vcGVuIil9LF9vbkZpdEludG9DaGFuZ2VkOmZ1bmN0aW9uKGUpe3RoaXMucG9zaXRpb25UYXJnZXQ9ZX19KTt2YXIgTzB0PVFgCgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIEBhcHBseSAtLWxheW91dC1ob3Jpem9udGFsOwogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXI7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICA6aG9zdCg6Zm9jdXMpIHsKICAgICAgICBvdXRsaW5lOm5vbmU7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtYmFyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvcGFjaXR5OiAwLjQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciBsaW5lYXIgLjA4czsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci10b2dnbGUtYnV0dG9uLXVuY2hlY2tlZC1iYXItY29sb3IsICMwMDAwMDApOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci10b2dnbGUtYnV0dG9uLXVuY2hlY2tlZC1iYXI7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtYnV0dG9uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAtM3B4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gbGluZWFyIC4wOHMsIGJhY2tncm91bmQtY29sb3IgbGluZWFyIC4wOHM7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIGxpbmVhciAuMDhzLCBiYWNrZ3JvdW5kLWNvbG9yIGxpbmVhciAuMDhzOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi11bmNoZWNrZWQtYnV0dG9uLWNvbG9yLCB2YXIoLS1wYXBlci1ncmV5LTUwKSk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvZ2dsZS1idXR0b24tdW5jaGVja2VkLWJ1dHRvbjsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1idXR0b24uZHJhZ2dpbmcgewogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICB9CgogICAgICA6aG9zdChbY2hlY2tlZF06bm90KFtkaXNhYmxlZF0pKSAudG9nZ2xlLWJhciB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24tY2hlY2tlZC1iYXItY29sb3IsIHZhcigtLXByaW1hcnktY29sb3IpKTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi1jaGVja2VkLWJhcjsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnRvZ2dsZS1iYXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7CiAgICAgICAgb3BhY2l0eTogMC4xMjsKICAgICAgfQoKICAgICAgOmhvc3QoW2NoZWNrZWRdKSAudG9nZ2xlLWJ1dHRvbiB7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAwKTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAwKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NoZWNrZWRdOm5vdChbZGlzYWJsZWRdKSkgLnRvZ2dsZS1idXR0b24gewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24tY2hlY2tlZC1idXR0b24tY29sb3IsIHZhcigtLXByaW1hcnktY29sb3IpKTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi1jaGVja2VkLWJ1dHRvbjsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnRvZ2dsZS1idXR0b24gewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiZGJkYmQ7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1pbmsgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IC0xNHB4OwogICAgICAgIGxlZnQ6IC0xNHB4OwogICAgICAgIHJpZ2h0OiBhdXRvOwogICAgICAgIGJvdHRvbTogYXV0bzsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci10b2dnbGUtYnV0dG9uLXVuY2hlY2tlZC1pbmstY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci10b2dnbGUtYnV0dG9uLXVuY2hlY2tlZC1pbms7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjaGVja2VkXSkgLnRvZ2dsZS1pbmsgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci10b2dnbGUtYnV0dG9uLWNoZWNrZWQtaW5rLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvZ2dsZS1idXR0b24tY2hlY2tlZC1pbms7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICAvKiBUaGUgdG9nZ2xlIGJ1dHRvbiBoYXMgYW4gYWJzb2x1dGUgcG9zaXRpb24gb2YgLTNweDsgVGhlIGV4dHJhIDFweAogICAgICAgIC8qIGFjY291bnRzIGZvciB0aGUgdG9nZ2xlIGJ1dHRvbiBzaGFkb3cgYm94LiAqLwogICAgICAgIG1hcmdpbjogNHB4IDFweDsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1sYWJlbCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi1sYWJlbC1zcGFjaW5nLCA4cHgpOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci10b2dnbGUtYnV0dG9uLWxhYmVsLWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKICAgICAgfQoKICAgICAgLyogaW52YWxpZCBzdGF0ZSAqLwogICAgICA6aG9zdChbaW52YWxpZF0pIC50b2dnbGUtYmFyIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci10b2dnbGUtYnV0dG9uLWludmFsaWQtYmFyLWNvbG9yLCB2YXIoLS1lcnJvci1jb2xvcikpOwogICAgICB9CgogICAgICA6aG9zdChbaW52YWxpZF0pIC50b2dnbGUtYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci10b2dnbGUtYnV0dG9uLWludmFsaWQtYnV0dG9uLWNvbG9yLCB2YXIoLS1lcnJvci1jb2xvcikpOwogICAgICB9CgogICAgICA6aG9zdChbaW52YWxpZF0pIC50b2dnbGUtaW5rIHsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi1pbnZhbGlkLWluay1jb2xvciwgdmFyKC0tZXJyb3ItY29sb3IpKTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtY29udGFpbmVyIj4KICAgICAgPGRpdiBpZD0idG9nZ2xlQmFyIiBjbGFzcz0idG9nZ2xlLWJhciI+PC9kaXY+CiAgICAgIDxkaXYgaWQ9InRvZ2dsZUJ1dHRvbiIgY2xhc3M9InRvZ2dsZS1idXR0b24iPjwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0idG9nZ2xlLWxhYmVsIj48c2xvdD48L3Nsb3Q+PC9kaXY+CgogIGA7TzB0LnNldEF0dHJpYnV0ZSgic3RyaXAtd2hpdGVzcGFjZSIsIiIpO1l0KHtfdGVtcGxhdGU6TzB0LGlzOiJwYXBlci10b2dnbGUtYnV0dG9uIixiZWhhdmlvcnM6W1h4XSxob3N0QXR0cmlidXRlczp7cm9sZToiYnV0dG9uIiwiYXJpYS1wcmVzc2VkIjoiZmFsc2UiLHRhYmluZGV4OjB9LHByb3BlcnRpZXM6e30sbGlzdGVuZXJzOnt0cmFjazoiX29udHJhY2sifSxhdHRhY2hlZDpmdW5jdGlvbigpe0NtKHRoaXMsZnVuY3Rpb24oKXttXyh0aGlzLCJwYW4teSIpfSl9LF9vbnRyYWNrOmZ1bmN0aW9uKGUpe3ZhciB0PWUuZGV0YWlsO3Quc3RhdGU9PT0ic3RhcnQiP3RoaXMuX3RyYWNrU3RhcnQodCk6dC5zdGF0ZT09PSJ0cmFjayI/dGhpcy5fdHJhY2tNb3ZlKHQpOnQuc3RhdGU9PT0iZW5kIiYmdGhpcy5fdHJhY2tFbmQodCl9LF90cmFja1N0YXJ0OmZ1bmN0aW9uKGUpe3RoaXMuX3dpZHRoPXRoaXMuJC50b2dnbGVCYXIub2Zmc2V0V2lkdGgvMix0aGlzLl90cmFja0NoZWNrZWQ9dGhpcy5jaGVja2VkLHRoaXMuJC50b2dnbGVCdXR0b24uY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKX0sX3RyYWNrTW92ZTpmdW5jdGlvbihlKXt2YXIgdD1lLmR4O3RoaXMuX3g9TWF0aC5taW4odGhpcy5fd2lkdGgsTWF0aC5tYXgoMCx0aGlzLl90cmFja0NoZWNrZWQ/dGhpcy5fd2lkdGgrdDp0KSksdGhpcy50cmFuc2xhdGUzZCh0aGlzLl94KyJweCIsMCwwLHRoaXMuJC50b2dnbGVCdXR0b24pLHRoaXMuX3VzZXJBY3RpdmF0ZSh0aGlzLl94PnRoaXMuX3dpZHRoLzIpfSxfdHJhY2tFbmQ6ZnVuY3Rpb24oZSl7dGhpcy4kLnRvZ2dsZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHRoaXMudHJhbnNmb3JtKCIiLHRoaXMuJC50b2dnbGVCdXR0b24pfSxfY3JlYXRlUmlwcGxlOmZ1bmN0aW9uKCl7dGhpcy5fcmlwcGxlQ29udGFpbmVyPXRoaXMuJC50b2dnbGVCdXR0b247dmFyIGU9c3UuX2NyZWF0ZVJpcHBsZSgpO3JldHVybiBlLmlkPSJpbmsiLGUuc2V0QXR0cmlidXRlKCJyZWNlbnRlcnMiLCIiKSxlLmNsYXNzTGlzdC5hZGQoImNpcmNsZSIsInRvZ2dsZS1pbmsiKSxlfX0pO1l0KHtfdGVtcGxhdGU6UWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIC0tY2FsY3VsYXRlZC1wYXBlci10b29sYmFyLWhlaWdodDogdmFyKC0tcGFwZXItdG9vbGJhci1oZWlnaHQsIDY0cHgpOwogICAgICAgIC0tY2FsY3VsYXRlZC1wYXBlci10b29sYmFyLXNtLWhlaWdodDogdmFyKC0tcGFwZXItdG9vbGJhci1zbS1oZWlnaHQsIDU2cHgpOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBoZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItdG9vbGJhci1oZWlnaHQpOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcGVyLXRvb2xiYXItYmFja2dyb3VuZCwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci10b29sYmFyLWNvbG9yLCB2YXIoLS1kYXJrLXRoZW1lLXRleHQtY29sb3IpKTsKICAgICAgICBAYXBwbHkgLS1wYXBlci10b29sYmFyOwogICAgICB9CgogICAgICA6aG9zdCguYW5pbWF0ZSkgewogICAgICAgIHRyYW5zaXRpb246IHZhcigtLXBhcGVyLXRvb2xiYXItdHJhbnNpdGlvbiwgaGVpZ2h0IDAuMThzIGVhc2UtaW4pOwogICAgICB9CgogICAgICA6aG9zdCgubWVkaXVtLXRhbGwpIHsKICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tY2FsY3VsYXRlZC1wYXBlci10b29sYmFyLWhlaWdodCkgKiAyKTsKICAgICAgICBAYXBwbHkgLS1wYXBlci10b29sYmFyLW1lZGl1bTsKICAgICAgfQoKICAgICAgOmhvc3QoLnRhbGwpIHsKICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tY2FsY3VsYXRlZC1wYXBlci10b29sYmFyLWhlaWdodCkgKiAzKTsKICAgICAgICBAYXBwbHkgLS1wYXBlci10b29sYmFyLXRhbGw7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLXRvb2xzIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXRvb2xiYXItaGVpZ2h0KTsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlcjsKICAgICAgICBAYXBwbHkgLS1wYXBlci10b29sYmFyLWNvbnRlbnQ7CiAgICAgIH0KCiAgICAgIC8qCiAgICAgICAqIFRPRE86IFdoZXJlIHNob3VsZCBtZWRpYSBxdWVyeSBicmVha3BvaW50cyBsaXZlIHNvIHRoZXkgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIGVsZW1lbnRzPwogICAgICAgKi8KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkgewogICAgICAgIDpob3N0IHsKICAgICAgICAgIGhlaWdodDogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci10b29sYmFyLXNtLWhlaWdodCk7CiAgICAgICAgfQoKICAgICAgICA6aG9zdCgubWVkaXVtLXRhbGwpIHsKICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXRvb2xiYXItc20taGVpZ2h0KSAqIDIpOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoLnRhbGwpIHsKICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXRvb2xiYXItc20taGVpZ2h0KSAqIDMpOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItdG9vbHMgewogICAgICAgICAgaGVpZ2h0OiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXRvb2xiYXItc20taGVpZ2h0KTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgICN0b3BCYXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLyogbWlkZGxlIGJhciAqLwogICAgICAjbWlkZGxlQmFyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KC50YWxsKSAjbWlkZGxlQmFyLAogICAgICA6aG9zdCgubWVkaXVtLXRhbGwpICNtaWRkbGVCYXIgewogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTsKICAgICAgfQoKICAgICAgLyogYm90dG9tIGJhciAqLwogICAgICAjYm90dG9tQmFyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgIH0KCiAgICAgIC8qCiAgICAgICAqIG1ha2UgZWxlbWVudHMgKGUuZy4gYnV0dG9ucykgcmVzcG9uZCB0byBtb3VzZS90b3VjaCBldmVudHMKICAgICAgICoKICAgICAgICogXGAudG9vbGJhci10b29sc1xgIGRpc2FibGVzIHRvdWNoIGV2ZW50cyBzbyBtdWx0aXBsZSB0b29sYmFycyBjYW4gc3RhY2sgYW5kIG5vdAogICAgICAgKiBhYnNvcmIgZXZlbnRzLiBBbGwgY2hpbGRyZW4gbXVzdCBoYXZlIHBvaW50ZXIgZXZlbnRzIHJlLWVuYWJsZWQgdG8gd29yayBhcwogICAgICAgKiBleHBlY3RlZC4KICAgICAgICovCiAgICAgIC50b29sYmFyLXRvb2xzID4gOjpzbG90dGVkKCo6bm90KFtkaXNhYmxlZF0pKSB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIC50b29sYmFyLXRvb2xzID4gOjpzbG90dGVkKC50aXRsZSkgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIEBhcHBseSAtLWxheW91dC1mbGV4OwogICAgICB9CgogICAgICAudG9vbGJhci10b29scyA+IDo6c2xvdHRlZCgudGl0bGUpIHsKICAgICAgICBtYXJnaW4tbGVmdDogNTZweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItdG9vbHMgPiA6OnNsb3R0ZWQocGFwZXItaWNvbi1idXR0b24gKyAudGl0bGUpIHsKICAgICAgICBtYXJnaW4tbGVmdDogMDsKICAgICAgfQoKICAgICAgLyoqCiAgICAgICAqIFRoZSAtLXBhcGVyLXRvb2xiYXItdGl0bGUgbWl4aW4gaXMgYXBwbGllZCBoZXJlIGluc3RlYWQgb2YgYWJvdmUgdG8KICAgICAgICogZml4IHRoZSBpc3N1ZSB3aXRoIG1hcmdpbi1sZWZ0IGJlaW5nIGlnbm9yZWQgZHVlIHRvIGNzcyBvcmRlcmluZy4KICAgICAgICovCiAgICAgIC50b29sYmFyLXRvb2xzID4gOjpzbG90dGVkKC50aXRsZSkgewogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2xiYXItdGl0bGU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLXRvb2xzID4gOjpzbG90dGVkKHBhcGVyLWljb24tYnV0dG9uW2ljb249bWVudV0pIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLXRvb2xzID4gOjpzbG90dGVkKC5maXQpIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiBhdXRvOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiBhdXRvOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLyogVE9ETyhub21zKTogVW50aWwgd2UgaGF2ZSBhIGJldHRlciBzb2x1dGlvbiBmb3IgY2xhc3NlcyB0aGF0IGRvbid0IHVzZQogICAgICAgKiAvZGVlcC8gY3JlYXRlIG91ciBvd24uCiAgICAgICAqLwogICAgICAuc3RhcnQtanVzdGlmaWVkIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtc3RhcnQtanVzdGlmaWVkOwogICAgICB9CgogICAgICAuY2VudGVyLWp1c3RpZmllZCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlci1qdXN0aWZpZWQ7CiAgICAgIH0KCiAgICAgIC5lbmQtanVzdGlmaWVkIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZW5kLWp1c3RpZmllZDsKICAgICAgfQoKICAgICAgLmFyb3VuZC1qdXN0aWZpZWQgewogICAgICAgIEBhcHBseSAtLWxheW91dC1hcm91bmQtanVzdGlmaWVkOwogICAgICB9CgogICAgICAuanVzdGlmaWVkIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtanVzdGlmaWVkOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgaWQ9InRvcEJhciIgY2xhc3NcJD0idG9vbGJhci10b29scyBbW19jb21wdXRlQmFyRXh0cmFDbGFzc2VzKGp1c3RpZnkpXV0iPgogICAgICA8c2xvdCBuYW1lPSJ0b3AiPjwvc2xvdD4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9Im1pZGRsZUJhciIgY2xhc3NcJD0idG9vbGJhci10b29scyBbW19jb21wdXRlQmFyRXh0cmFDbGFzc2VzKG1pZGRsZUp1c3RpZnkpXV0iPgogICAgICA8c2xvdCBuYW1lPSJtaWRkbGUiPjwvc2xvdD4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImJvdHRvbUJhciIgY2xhc3NcJD0idG9vbGJhci10b29scyBbW19jb21wdXRlQmFyRXh0cmFDbGFzc2VzKGJvdHRvbUp1c3RpZnkpXV0iPgogICAgICA8c2xvdCBuYW1lPSJib3R0b20iPjwvc2xvdD4KICAgIDwvZGl2PgpgLGlzOiJwYXBlci10b29sYmFyIixob3N0QXR0cmlidXRlczp7cm9sZToidG9vbGJhciJ9LHByb3BlcnRpZXM6e2JvdHRvbUp1c3RpZnk6e3R5cGU6U3RyaW5nLHZhbHVlOiIifSxqdXN0aWZ5Ont0eXBlOlN0cmluZyx2YWx1ZToiIn0sbWlkZGxlSnVzdGlmeTp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9fSxyZWFkeTpmdW5jdGlvbigpe2NvbnNvbGUud2Fybih0aGlzLmlzLCJpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIGFwcC1sYXlvdXQgaW5zdGVhZCEiKX0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl9vYnNlcnZlcj10aGlzLl9vYnNlcnZlKHRoaXMpLHRoaXMuX3VwZGF0ZUFyaWFMYWJlbGxlZEJ5KCl9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fb2JzZXJ2ZXImJnRoaXMuX29ic2VydmVyLmRpc2Nvbm5lY3QoKX0sX29ic2VydmU6ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVBcmlhTGFiZWxsZWRCeSgpfS5iaW5kKHRoaXMpKTtyZXR1cm4gdC5vYnNlcnZlKGUse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSksdH0sX3VwZGF0ZUFyaWFMYWJlbGxlZEJ5OmZ1bmN0aW9uKCl7Y2koKTtmb3IodmFyIGU9W10sdD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh6dCh0aGlzLnJvb3QpLnF1ZXJ5U2VsZWN0b3JBbGwoInNsb3QiKSkuY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHp0KHRoaXMucm9vdCkucXVlcnlTZWxlY3RvckFsbCgiY29udGVudCIpKSkscixuPTA7cj10W25dO24rKylmb3IodmFyIGk9enQocikuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLG8sYT0wO289aVthXTthKyspaWYoby5jbGFzc0xpc3QmJm8uY2xhc3NMaXN0LmNvbnRhaW5zKCJ0aXRsZSIpKWlmKG8uaWQpZS5wdXNoKG8uaWQpO2Vsc2V7dmFyIHM9InBhcGVyLXRvb2xiYXItbGFiZWwtIitNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWU0KTtvLmlkPXMsZS5wdXNoKHMpfWUubGVuZ3RoPjAmJnRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLGUuam9pbigiICIpKX0sX2NvbXB1dGVCYXJFeHRyYUNsYXNzZXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/ZSsoZT09PSJqdXN0aWZpZWQiPyIiOiItanVzdGlmaWVkIik6IiJ9fSk7WXQoe190ZW1wbGF0ZTpRYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgei1pbmRleDogMTAwMjsKICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgI3Rvb2x0aXAgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItdG9vbHRpcC1iYWNrZ3JvdW5kLCAjNjE2MTYxKTsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItdG9vbHRpcC10ZXh0LWNvbG9yLCB3aGl0ZSk7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBAYXBwbHkgLS1wYXBlci10b29sdGlwOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGtleUZyYW1lU2NhbGVVcCB7CiAgICAgICAgMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjApOwogICAgICAgIH0KICAgICAgICAxMDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMga2V5RnJhbWVTY2FsZURvd24gewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wKTsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGtleUZyYW1lRmFkZUluT3BhY2l0eSB7CiAgICAgICAgMCUgewogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICBvcGFjaXR5OiB2YXIoLS1wYXBlci10b29sdGlwLW9wYWNpdHksIDAuOSk7CiAgICAgICAgfQogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGtleUZyYW1lRmFkZU91dE9wYWNpdHkgewogICAgICAgIDAlIHsKICAgICAgICAgIG9wYWNpdHk6IHZhcigtLXBhcGVyLXRvb2x0aXAtb3BhY2l0eSwgMC45KTsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBrZXlGcmFtZVNsaWRlRG93bkluIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwMDBweCk7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIH0KICAgICAgICAxMCUgewogICAgICAgICAgb3BhY2l0eTogMC4yOwogICAgICAgIH0KICAgICAgICAxMDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICAgIG9wYWNpdHk6IHZhcigtLXBhcGVyLXRvb2x0aXAtb3BhY2l0eSwgMC45KTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMga2V5RnJhbWVTbGlkZURvd25PdXQgewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICAgIG9wYWNpdHk6IHZhcigtLXBhcGVyLXRvb2x0aXAtb3BhY2l0eSwgMC45KTsKICAgICAgICB9CiAgICAgICAgMTAlIHsKICAgICAgICAgIG9wYWNpdHk6IDAuMjsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwMDBweCk7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmZhZGUtaW4tYW5pbWF0aW9uIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tcGFwZXItdG9vbHRpcC1kZWxheS1pbiwgNTAwbXMpOwogICAgICAgIGFuaW1hdGlvbi1uYW1lOiBrZXlGcmFtZUZhZGVJbk9wYWNpdHk7CiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsKICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOwogICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItdG9vbHRpcC1kdXJhdGlvbi1pbiwgNTAwbXMpOwogICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2x0aXAtYW5pbWF0aW9uOwogICAgICB9CgogICAgICAuZmFkZS1vdXQtYW5pbWF0aW9uIHsKICAgICAgICBvcGFjaXR5OiB2YXIoLS1wYXBlci10b29sdGlwLW9wYWNpdHksIDAuOSk7CiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1wYXBlci10b29sdGlwLWRlbGF5LW91dCwgMG1zKTsKICAgICAgICBhbmltYXRpb24tbmFtZToga2V5RnJhbWVGYWRlT3V0T3BhY2l0eTsKICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOwogICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47CiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci10b29sdGlwLWR1cmF0aW9uLW91dCwgNTAwbXMpOwogICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2x0aXAtYW5pbWF0aW9uOwogICAgICB9CgogICAgICAuc2NhbGUtdXAtYW5pbWF0aW9uIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApOwogICAgICAgIG9wYWNpdHk6IHZhcigtLXBhcGVyLXRvb2x0aXAtb3BhY2l0eSwgMC45KTsKICAgICAgICBhbmltYXRpb24tZGVsYXk6IHZhcigtLXBhcGVyLXRvb2x0aXAtZGVsYXktaW4sIDUwMG1zKTsKICAgICAgICBhbmltYXRpb24tbmFtZToga2V5RnJhbWVTY2FsZVVwOwogICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7CiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsKICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXRvb2x0aXAtZHVyYXRpb24taW4sIDUwMG1zKTsKICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsKICAgICAgICBAYXBwbHkgLS1wYXBlci10b29sdGlwLWFuaW1hdGlvbjsKICAgICAgfQoKICAgICAgLnNjYWxlLWRvd24tYW5pbWF0aW9uIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgIG9wYWNpdHk6IHZhcigtLXBhcGVyLXRvb2x0aXAtb3BhY2l0eSwgMC45KTsKICAgICAgICBhbmltYXRpb24tZGVsYXk6IHZhcigtLXBhcGVyLXRvb2x0aXAtZGVsYXktb3V0LCA1MDBtcyk7CiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGtleUZyYW1lU2NhbGVEb3duOwogICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7CiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsKICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXRvb2x0aXAtZHVyYXRpb24tb3V0LCA1MDBtcyk7CiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9vbHRpcC1hbmltYXRpb247CiAgICAgIH0KCiAgICAgIC5zbGlkZS1kb3duLWFuaW1hdGlvbiB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAwcHgpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1wYXBlci10b29sdGlwLWRlbGF5LW91dCwgNTAwbXMpOwogICAgICAgIGFuaW1hdGlvbi1uYW1lOiBrZXlGcmFtZVNsaWRlRG93bkluOwogICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7CiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMCwgMC4wLCAwLjIsIDEpOwogICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItdG9vbHRpcC1kdXJhdGlvbi1vdXQsIDUwMG1zKTsKICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsKICAgICAgICBAYXBwbHkgLS1wYXBlci10b29sdGlwLWFuaW1hdGlvbjsKICAgICAgfQoKICAgICAgLnNsaWRlLWRvd24tYW5pbWF0aW9uLW91dCB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIG9wYWNpdHk6IHZhcigtLXBhcGVyLXRvb2x0aXAtb3BhY2l0eSwgMC45KTsKICAgICAgICBhbmltYXRpb24tZGVsYXk6IHZhcigtLXBhcGVyLXRvb2x0aXAtZGVsYXktb3V0LCA1MDBtcyk7CiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGtleUZyYW1lU2xpZGVEb3duT3V0OwogICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7CiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAxLCAxKTsKICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXRvb2x0aXAtZHVyYXRpb24tb3V0LCA1MDBtcyk7CiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9vbHRpcC1hbmltYXRpb247CiAgICAgIH0KCiAgICAgIC5jYW5jZWwtYW5pbWF0aW9uIHsKICAgICAgICBhbmltYXRpb24tZGVsYXk6IC0zMHMgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLyogVGhhbmtzIElFIDEwLiAqLwoKICAgICAgLmhpZGRlbiB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgaWQ9InRvb2x0aXAiIGNsYXNzPSJoaWRkZW4iPgogICAgICA8c2xvdD48L3Nsb3Q+CiAgICA8L2Rpdj4KYCxpczoicGFwZXItdG9vbHRpcCIsaG9zdEF0dHJpYnV0ZXM6e3JvbGU6InRvb2x0aXAiLHRhYmluZGV4Oi0xfSxwcm9wZXJ0aWVzOntmb3I6e3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfZmluZFRhcmdldCJ9LG1hbnVhbE1vZGU6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoiX21hbnVhbE1vZGVDaGFuZ2VkIn0scG9zaXRpb246e3R5cGU6U3RyaW5nLHZhbHVlOiJib3R0b20ifSxmaXRUb1Zpc2libGVCb3VuZHM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sb2Zmc2V0Ont0eXBlOk51bWJlcix2YWx1ZToxNH0sbWFyZ2luVG9wOnt0eXBlOk51bWJlcix2YWx1ZToxNH0sYW5pbWF0aW9uRGVsYXk6e3R5cGU6TnVtYmVyLHZhbHVlOjUwMCxvYnNlcnZlcjoiX2RlbGF5Q2hhbmdlIn0sYW5pbWF0aW9uRW50cnk6e3R5cGU6U3RyaW5nLHZhbHVlOiIifSxhbmltYXRpb25FeGl0Ont0eXBlOlN0cmluZyx2YWx1ZToiIn0sYW5pbWF0aW9uQ29uZmlnOnt0eXBlOk9iamVjdCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybntlbnRyeTpbe25hbWU6ImZhZGUtaW4tYW5pbWF0aW9uIixub2RlOnRoaXMsdGltaW5nOntkZWxheTowfX1dLGV4aXQ6W3tuYW1lOiJmYWRlLW91dC1hbmltYXRpb24iLG5vZGU6dGhpc31dfX19LF9zaG93aW5nOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9fSxsaXN0ZW5lcnM6e3dlYmtpdEFuaW1hdGlvbkVuZDoiX29uQW5pbWF0aW9uRW5kIn0sZ2V0IHRhcmdldCgpe3ZhciBlPXp0KHRoaXMpLnBhcmVudE5vZGUsdD16dCh0aGlzKS5nZXRPd25lclJvb3QoKSxyO3JldHVybiB0aGlzLmZvcj9yPXp0KHQpLnF1ZXJ5U2VsZWN0b3IoIiMiK3RoaXMuZm9yKTpyPWUubm9kZVR5cGU9PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERT90Lmhvc3Q6ZSxyfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX2ZpbmRUYXJnZXQoKX0sZGV0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLm1hbnVhbE1vZGV8fHRoaXMuX3JlbW92ZUxpc3RlbmVycygpfSxwbGF5QW5pbWF0aW9uOmZ1bmN0aW9uKGUpe2U9PT0iZW50cnkiP3RoaXMuc2hvdygpOmU9PT0iZXhpdCImJnRoaXMuaGlkZSgpfSxjYW5jZWxBbmltYXRpb246ZnVuY3Rpb24oKXt0aGlzLiQudG9vbHRpcC5jbGFzc0xpc3QuYWRkKCJjYW5jZWwtYW5pbWF0aW9uIil9LHNob3c6ZnVuY3Rpb24oKXtpZighdGhpcy5fc2hvd2luZyl7aWYoenQodGhpcykudGV4dENvbnRlbnQudHJpbSgpPT09IiIpe2Zvcih2YXIgZT0hMCx0PXp0KHRoaXMpLmdldEVmZmVjdGl2ZUNoaWxkTm9kZXMoKSxyPTA7cjx0Lmxlbmd0aDtyKyspaWYodFtyXS50ZXh0Q29udGVudC50cmltKCkhPT0iIil7ZT0hMTticmVha31pZihlKXJldHVybn10aGlzLl9zaG93aW5nPSEwLHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5yZW1vdmUoImNhbmNlbC1hbmltYXRpb24iKSx0aGlzLiQudG9vbHRpcC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuX2dldEFuaW1hdGlvblR5cGUoImV4aXQiKSksdGhpcy51cGRhdGVQb3NpdGlvbigpLHRoaXMuX2FuaW1hdGlvblBsYXlpbmc9ITAsdGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LmFkZCh0aGlzLl9nZXRBbmltYXRpb25UeXBlKCJlbnRyeSIpKX19LGhpZGU6ZnVuY3Rpb24oKXtpZighIXRoaXMuX3Nob3dpbmcpe2lmKHRoaXMuX2FuaW1hdGlvblBsYXlpbmcpe3RoaXMuX3Nob3dpbmc9ITEsdGhpcy5fY2FuY2VsQW5pbWF0aW9uKCk7cmV0dXJufWVsc2UgdGhpcy5fb25BbmltYXRpb25GaW5pc2goKTt0aGlzLl9zaG93aW5nPSExLHRoaXMuX2FuaW1hdGlvblBsYXlpbmc9ITB9fSx1cGRhdGVQb3NpdGlvbjpmdW5jdGlvbigpe2lmKCEoIXRoaXMuX3RhcmdldHx8IXRoaXMub2Zmc2V0UGFyZW50KSl7dmFyIGU9dGhpcy5vZmZzZXQ7dGhpcy5tYXJnaW5Ub3AhPTE0JiZ0aGlzLm9mZnNldD09MTQmJihlPXRoaXMubWFyZ2luVG9wKTt2YXIgdD10aGlzLm9mZnNldFBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPXRoaXMuX3RhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT0oci53aWR0aC1uLndpZHRoKS8yLG89KHIuaGVpZ2h0LW4uaGVpZ2h0KS8yLGE9ci5sZWZ0LXQubGVmdCxzPXIudG9wLXQudG9wLGwsYztzd2l0Y2godGhpcy5wb3NpdGlvbil7Y2FzZSJ0b3AiOmw9YStpLGM9cy1uLmhlaWdodC1lO2JyZWFrO2Nhc2UiYm90dG9tIjpsPWEraSxjPXMrci5oZWlnaHQrZTticmVhaztjYXNlImxlZnQiOmw9YS1uLndpZHRoLWUsYz1zK287YnJlYWs7Y2FzZSJyaWdodCI6bD1hK3Iud2lkdGgrZSxjPXMrbzticmVha310aGlzLmZpdFRvVmlzaWJsZUJvdW5kcz8odC5sZWZ0K2wrbi53aWR0aD53aW5kb3cuaW5uZXJXaWR0aD8odGhpcy5zdHlsZS5yaWdodD0iMHB4Iix0aGlzLnN0eWxlLmxlZnQ9ImF1dG8iKToodGhpcy5zdHlsZS5sZWZ0PU1hdGgubWF4KDAsbCkrInB4Iix0aGlzLnN0eWxlLnJpZ2h0PSJhdXRvIiksdC50b3ArYytuLmhlaWdodD53aW5kb3cuaW5uZXJIZWlnaHQ/KHRoaXMuc3R5bGUuYm90dG9tPXQuaGVpZ2h0LXMrZSsicHgiLHRoaXMuc3R5bGUudG9wPSJhdXRvIik6KHRoaXMuc3R5bGUudG9wPU1hdGgubWF4KC10LnRvcCxjKSsicHgiLHRoaXMuc3R5bGUuYm90dG9tPSJhdXRvIikpOih0aGlzLnN0eWxlLmxlZnQ9bCsicHgiLHRoaXMuc3R5bGUudG9wPWMrInB4Iil9fSxfYWRkTGlzdGVuZXJzOmZ1bmN0aW9uKCl7dGhpcy5fdGFyZ2V0JiYodGhpcy5saXN0ZW4odGhpcy5fdGFyZ2V0LCJtb3VzZWVudGVyIiwic2hvdyIpLHRoaXMubGlzdGVuKHRoaXMuX3RhcmdldCwiZm9jdXMiLCJzaG93IiksdGhpcy5saXN0ZW4odGhpcy5fdGFyZ2V0LCJtb3VzZWxlYXZlIiwiaGlkZSIpLHRoaXMubGlzdGVuKHRoaXMuX3RhcmdldCwiYmx1ciIsImhpZGUiKSx0aGlzLmxpc3Rlbih0aGlzLl90YXJnZXQsInRhcCIsImhpZGUiKSksdGhpcy5saXN0ZW4odGhpcy4kLnRvb2x0aXAsImFuaW1hdGlvbmVuZCIsIl9vbkFuaW1hdGlvbkVuZCIpLHRoaXMubGlzdGVuKHRoaXMsIm1vdXNlZW50ZXIiLCJoaWRlIil9LF9maW5kVGFyZ2V0OmZ1bmN0aW9uKCl7dGhpcy5tYW51YWxNb2RlfHx0aGlzLl9yZW1vdmVMaXN0ZW5lcnMoKSx0aGlzLl90YXJnZXQ9dGhpcy50YXJnZXQsdGhpcy5tYW51YWxNb2RlfHx0aGlzLl9hZGRMaXN0ZW5lcnMoKX0sX2RlbGF5Q2hhbmdlOmZ1bmN0aW9uKGUpe2UhPT01MDAmJnRoaXMudXBkYXRlU3R5bGVzKHsiLS1wYXBlci10b29sdGlwLWRlbGF5LWluIjplKyJtcyJ9KX0sX21hbnVhbE1vZGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5tYW51YWxNb2RlP3RoaXMuX3JlbW92ZUxpc3RlbmVycygpOnRoaXMuX2FkZExpc3RlbmVycygpfSxfY2FuY2VsQW5pbWF0aW9uOmZ1bmN0aW9uKCl7dGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9nZXRBbmltYXRpb25UeXBlKCJlbnRyeSIpKSx0aGlzLiQudG9vbHRpcC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuX2dldEFuaW1hdGlvblR5cGUoImV4aXQiKSksdGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LnJlbW92ZSgiY2FuY2VsLWFuaW1hdGlvbiIpLHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfSxfb25BbmltYXRpb25GaW5pc2g6ZnVuY3Rpb24oKXt0aGlzLl9zaG93aW5nJiYodGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9nZXRBbmltYXRpb25UeXBlKCJlbnRyeSIpKSx0aGlzLiQudG9vbHRpcC5jbGFzc0xpc3QucmVtb3ZlKCJjYW5jZWwtYW5pbWF0aW9uIiksdGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LmFkZCh0aGlzLl9nZXRBbmltYXRpb25UeXBlKCJleGl0IikpKX0sX29uQW5pbWF0aW9uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fYW5pbWF0aW9uUGxheWluZz0hMSx0aGlzLl9zaG93aW5nfHwodGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9nZXRBbmltYXRpb25UeXBlKCJleGl0IikpLHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKX0sX2dldEFuaW1hdGlvblR5cGU6ZnVuY3Rpb24oZSl7aWYoZT09PSJlbnRyeSImJnRoaXMuYW5pbWF0aW9uRW50cnkhPT0iIilyZXR1cm4gdGhpcy5hbmltYXRpb25FbnRyeTtpZihlPT09ImV4aXQiJiZ0aGlzLmFuaW1hdGlvbkV4aXQhPT0iIilyZXR1cm4gdGhpcy5hbmltYXRpb25FeGl0O2lmKHRoaXMuYW5pbWF0aW9uQ29uZmlnW2VdJiZ0eXBlb2YgdGhpcy5hbmltYXRpb25Db25maWdbZV1bMF0ubmFtZT09InN0cmluZyIpe2lmKHRoaXMuYW5pbWF0aW9uQ29uZmlnW2VdWzBdLnRpbWluZyYmdGhpcy5hbmltYXRpb25Db25maWdbZV1bMF0udGltaW5nLmRlbGF5JiZ0aGlzLmFuaW1hdGlvbkNvbmZpZ1tlXVswXS50aW1pbmcuZGVsYXkhPT0wKXt2YXIgdD10aGlzLmFuaW1hdGlvbkNvbmZpZ1tlXVswXS50aW1pbmcuZGVsYXk7ZT09PSJlbnRyeSI/dGhpcy51cGRhdGVTdHlsZXMoeyItLXBhcGVyLXRvb2x0aXAtZGVsYXktaW4iOnQrIm1zIn0pOmU9PT0iZXhpdCImJnRoaXMudXBkYXRlU3R5bGVzKHsiLS1wYXBlci10b29sdGlwLWRlbGF5LW91dCI6dCsibXMifSl9cmV0dXJuIHRoaXMuYW5pbWF0aW9uQ29uZmlnW2VdWzBdLm5hbWV9fSxfcmVtb3ZlTGlzdGVuZXJzOmZ1bmN0aW9uKCl7dGhpcy5fdGFyZ2V0JiYodGhpcy51bmxpc3Rlbih0aGlzLl90YXJnZXQsIm1vdXNlZW50ZXIiLCJzaG93IiksdGhpcy51bmxpc3Rlbih0aGlzLl90YXJnZXQsImZvY3VzIiwic2hvdyIpLHRoaXMudW5saXN0ZW4odGhpcy5fdGFyZ2V0LCJtb3VzZWxlYXZlIiwiaGlkZSIpLHRoaXMudW5saXN0ZW4odGhpcy5fdGFyZ2V0LCJibHVyIiwiaGlkZSIpLHRoaXMudW5saXN0ZW4odGhpcy5fdGFyZ2V0LCJ0YXAiLCJoaWRlIikpLHRoaXMudW5saXN0ZW4odGhpcy4kLnRvb2x0aXAsImFuaW1hdGlvbmVuZCIsIl9vbkFuaW1hdGlvbkVuZCIpLHRoaXMudW5saXN0ZW4odGhpcywibW91c2VlbnRlciIsImhpZGUiKX19KTt2YXIgcmI9RWUoT2UoKSwxKTt2YXIgbUU9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5saXN0ZW5lcj10fX0sRVc9bmV3IFNldCxPOT1uZXcgU2V0O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIiwoKT0+e0VXLmZvckVhY2goZT0+ZS5saXN0ZW5lcigpKX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdlIiwoKT0+e085LmZvckVhY2goZT0+ZS5saXN0ZW5lcigpKX0pO2Z1bmN0aW9uIGdFKGUpe2xldCB0PW5ldyBtRShlKTtyZXR1cm4gRVcuYWRkKHQpLHR9ZnVuY3Rpb24gVFcoZSl7bGV0IHQ9bmV3IG1FKGUpO3JldHVybiBPOS5hZGQodCksdH1mdW5jdGlvbiBDVygpe085LmZvckVhY2goZT0+ZS5saXN0ZW5lcigpKX1mdW5jdGlvbiBBVyhlKXtFVy5kZWxldGUoZSl9ZnVuY3Rpb24gUFcoZSl7TzkuZGVsZXRlKGUpfXZhciBrVz17fTtacyhrVyx7Z2V0RmFrZUhhc2g6KCk9PkxXLHNldEZha2VIYXNoOigpPT5JVyxzZXRVc2VIYXNoOigpPT5YYmUsdXNlSGFzaDooKT0+ejl9KTt2YXIgejB0PSExO2Z1bmN0aW9uIFhiZShlKXt6MHQ9ZX1mdW5jdGlvbiB6OSgpe3JldHVybiB6MHR9dmFyIEYwdD0iIjtmdW5jdGlvbiBJVyhlKXtGMHQ9ZX1mdW5jdGlvbiBMVygpe3JldHVybiBGMHR9dmFyIFF4PSJfX3RhYl9fIixSVz17fTtmdW5jdGlvbiBCMHQoKXtyZXR1cm4gUld9ZnVuY3Rpb24gSDB0KGUpe1JXPWV9Z0UoKCk9PntSVz1lYih0YigpKX0pO2Z1bmN0aW9uIHRiKCl7cmV0dXJuIHo5KCk/d2luZG93LmxvY2F0aW9uLmhhc2guc2xpY2UoMSk6TFcoKX1mdW5jdGlvbiBlYihlKXtsZXQgdD17fTtyZXR1cm4gZS5zcGxpdCgiJiIpLmZvckVhY2gobj0+e2xldCBpPW4uc3BsaXQoIj0iKTtpLmxlbmd0aD09PTE/dFtReF09aVswXTppLmxlbmd0aD09PTImJih0W2RlY29kZVVSSUNvbXBvbmVudChpWzBdKV09ZGVjb2RlVVJJQ29tcG9uZW50KGlbMV0pKX0pLHR9ZnVuY3Rpb24gRjkoZSx0PSExKXtpZih6OSgpKWlmKHQpe2xldCByPW5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO3IuaGFzaD1lLHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh3aW5kb3cuaGlzdG9yeS5zdGF0ZSwiIixyLnRvU3RyaW5nKCkpfWVsc2Ugd2luZG93LmxvY2F0aW9uLmhhc2g9ZTtlbHNlIElXKGUpfWZ1bmN0aW9uIEI5KGUpe2xldCB0PSIiO2VbUXhdIT09dm9pZCAwJiYodCs9ZVtReF0pO2xldCByPU9iamVjdC5rZXlzKGUpLm1hcChuPT5bbixlW25dXSkuZmlsdGVyKG49Pm5bMF0hPT1ReCkubWFwKG49PmVuY29kZVVSSUNvbXBvbmVudChuWzBdKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KG5bMV0pKS5qb2luKCImIik7cmV0dXJuIHIubGVuZ3RoPjA/dCsiJiIrcjp0fWZ1bmN0aW9uIFYwdChlLHQ9ITEpe2xldCByPWViKHRiKCkpO2RlbGV0ZSByW2VdLEY5KEI5KHIpLHQpfXZhciBxMHQ9ImRpc2FtYmlndWF0b3IiLHtnZXQ6JGJlLHNldDpLYmUsZ2V0SW5pdGlhbGl6ZXI6dl8sZ2V0T2JzZXJ2ZXI6eF8sZGlzcG9zZUJpbmRpbmc6WmJlfT12RShlPT5lLGU9PmUpLHtnZXQ6SmJlLHNldDpRYmUsZ2V0SW5pdGlhbGl6ZXI6eHAsZ2V0T2JzZXJ2ZXI6YnAsZGlzcG9zZUJpbmRpbmc6dDJlfT12RShlPT5lPT09InRydWUiPyEwOmU9PT0iZmFsc2UiPyExOnZvaWQgMCxlPT5lLnRvU3RyaW5nKCkpLHtnZXQ6Tlcsc2V0OkRXLGdldEluaXRpYWxpemVyOl9FLGdldE9ic2VydmVyOnlFLGRpc3Bvc2VCaW5kaW5nOmUyZX09dkUoZT0+K2UsZT0+ZS50b1N0cmluZygpKSx7Z2V0OnIyZSxzZXQ6bjJlLGdldEluaXRpYWxpemVyOk9XLGdldE9ic2VydmVyOnpXLGRpc3Bvc2VCaW5kaW5nOmkyZX09dkUoZT0+SlNPTi5wYXJzZShhdG9iKGUpKSxlPT5idG9hKEpTT04uc3RyaW5naWZ5KGUpKSk7ZnVuY3Rpb24gdkUoZSx0KXtsZXQgcj1bXSxuPVtdO2Z1bmN0aW9uIGkoYyx1PXt9KXtsZXR7ZGVmYXVsdFZhbHVlOmgsdXNlTG9jYWxTdG9yYWdlOmY9ITF9PXUscD1mP3dpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShjKTplYih0YigpKVtjXTtyZXR1cm4gcD09bnVsbD9yYi5jbG9uZURlZXAoaCk6ZShwKX1mdW5jdGlvbiBvKGMsdSxoPXt9KXtsZXR7ZGVmYXVsdFZhbHVlOmYsdXNlTG9jYWxTdG9yYWdlOnA9ITEsdXNlTG9jYXRpb25SZXBsYWNlOmQ9ITF9PWgsZz10KHUpO2lmKHApd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKGMsZyksQ1coKTtlbHNlIGlmKCFyYi5pc0VxdWFsKHUsaShjLHt1c2VMb2NhbFN0b3JhZ2U6cH0pKSlpZihyYi5pc0VxdWFsKHUsZikpVjB0KGMsZCk7ZWxzZXtsZXQgXz1lYih0YigpKTtfW2NdPWcsRjkoQjkoXyksZCl9fWZ1bmN0aW9uIGEoYyx1KXtsZXQgaD1pYSh7ZGVmYXVsdFZhbHVlOnUuZGVmYXVsdFZhbHVlLHBvbHltZXJQcm9wZXJ0eTpjLHVzZUxvY2FsU3RvcmFnZTohMX0sdSk7cmV0dXJuIGZ1bmN0aW9uKCl7bGV0IGY9VTB0KHRoaXMsYykscD0oKT0+e2xldCBfPWkoZixoKSx5PXRoaXNbaC5wb2x5bWVyUHJvcGVydHldO3JiLmlzRXF1YWwoXyx5KXx8KHRoaXNbaC5wb2x5bWVyUHJvcGVydHldPV8pfSxnPShoLnVzZUxvY2FsU3RvcmFnZT9UVzpnRSkoKCk9PnAoKSk7cmV0dXJuIGgudXNlTG9jYWxTdG9yYWdlP24ucHVzaChnKTpyLnB1c2goZykscCgpLHRoaXNbaC5wb2x5bWVyUHJvcGVydHldfX1mdW5jdGlvbiBzKCl7ci5mb3JFYWNoKGM9PkFXKGMpKSxuLmZvckVhY2goYz0+UFcoYykpfWZ1bmN0aW9uIGwoYyx1KXtsZXQgaD1pYSh7ZGVmYXVsdFZhbHVlOnUuZGVmYXVsdFZhbHVlLHBvbHltZXJQcm9wZXJ0eTpjLHVzZUxvY2FsU3RvcmFnZTohMX0sdSk7cmV0dXJuIGZ1bmN0aW9uKCl7bGV0IGY9VTB0KHRoaXMsYykscD10aGlzW2gucG9seW1lclByb3BlcnR5XTtvKGYscCxoKX19cmV0dXJue2dldDppLHNldDpvLGdldEluaXRpYWxpemVyOmEsZ2V0T2JzZXJ2ZXI6bCxkaXNwb3NlQmluZGluZzpzfX1mdW5jdGlvbiBvMmUoKXtsZXQgZT1uZXcgU2V0KFsiZXhhbXBsZXNQYXRoIiwiaGlkZU1vZGVsUGFuZTIiLCJtb2RlbE5hbWUxIiwibW9kZWxOYW1lMiIsImluZmVyZW5jZUFkZHJlc3MxIiwiaW5mZXJlbmNlQWRkcmVzczIiLCJtb2RlbFR5cGUiLCJtb2RlbFZlcnNpb24xIiwibW9kZWxWZXJzaW9uMiIsIm1vZGVsU2lnbmF0dXJlMSIsIm1vZGVsU2lnbmF0dXJlMiIsIm1heEV4YW1wbGVzIiwibGFiZWxWb2NhYlBhdGgiLCJtdWx0aUNsYXNzIiwic2VxdWVuY2VFeGFtcGxlcyIsIm1heENsYXNzZXNUb0Rpc3BsYXkiLCJzYW1wbGluZ09kZHMiLCJ1c2VQcmVkaWN0QXBpIiwicHJlZGljdElucHV0VGVuc29yIiwicHJlZGljdE91dHB1dFRlbnNvciJdKSx0PWViKHRiKCkpO2lmKHRbUXhdPT09IndoYXRpZiIpe2ZvcihsZXQgciBvZiBlKWlmKHIgaW4gdCl7bGV0IG49dFtyXTt0W2BwLndoYXRpZi4ke3J9YF09bn19RjkoQjkodCkpLEgwdCh0KX1mdW5jdGlvbiBVMHQoZSx0KXtsZXQgcj1lW3EwdF07cmV0dXJuKHI9PW51bGw/W3RdOltyLHRdKS5qb2luKCIuIil9dmFyIHhFPWNsYXNzIGV4dGVuZHMgbXR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3RhZ0ZpbHRlcj12XygidGFnRmlsdGVyIix7ZGVmYXVsdFZhbHVlOiIiLHVzZUxvY2FsU3RvcmFnZTohMSxwb2x5bWVyUHJvcGVydHk6Il90YWdGaWx0ZXIifSkuY2FsbCh0aGlzKSx0aGlzLl90YWdGaWx0ZXJPYnNlcnZlcj14XygidGFnRmlsdGVyIix7ZGVmYXVsdFZhbHVlOiIiLHVzZUxvY2FsU3RvcmFnZTohMSxwb2x5bWVyUHJvcGVydHk6Il90YWdGaWx0ZXIifSl9X2NvbXB1dGVUYWdGaWx0ZXIoKXtyZXR1cm4gdGhpcy5fdGFnRmlsdGVyfX07eEUudGVtcGxhdGU9UWAKICAgIDxwYXBlci1pbnB1dAogICAgICBuby1sYWJlbC1mbG9hdD0iIgogICAgICBsYWJlbD0iRmlsdGVyIHRhZ3MgKHJlZ3VsYXIgZXhwcmVzc2lvbnMgc3VwcG9ydGVkKSIKICAgICAgdmFsdWU9Int7X3RhZ0ZpbHRlcn19IgogICAgICBjbGFzcz0ic2VhcmNoLWlucHV0IgogICAgPgogICAgICA8aXJvbi1pY29uIHByZWZpeD0iIiBpY29uPSJzZWFyY2giIHNsb3Q9InByZWZpeCI+PC9pcm9uLWljb24+CiAgICA8L3BhcGVyLWlucHV0PgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luOiAxMHB4IDVweCAxMHB4IDEwcHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYDtFKFtBKHt0eXBlOlN0cmluZyxub3RpZnk6ITAsY29tcHV0ZWQ6Il9jb21wdXRlVGFnRmlsdGVyKF90YWdGaWx0ZXIpIn0pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx4RS5wcm90b3R5cGUsInRhZ0ZpbHRlciIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZyxvYnNlcnZlcjoiX3RhZ0ZpbHRlck9ic2VydmVyIn0pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx4RS5wcm90b3R5cGUsIl90YWdGaWx0ZXIiLHZvaWQgMCk7eEU9RShbeXQoInRmLXRhZy1maWx0ZXJlciIpXSx4RSk7ZnVuY3Rpb24geXMoZSl7bGV0e21vZHVsZU5hbWU6dCxzdHlsZUNvbnRlbnQ6cn09ZSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRvbS1tb2R1bGUiKSxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIiksbz1bXTtlLnN0eWxlRGVwZW5kZW5jaWVzJiZlLnN0eWxlRGVwZW5kZW5jaWVzLmZvckVhY2gocz0+e2xldCBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7bC5zZXRBdHRyaWJ1dGUoImluY2x1ZGUiLHMpLG8ucHVzaChsKX0pO2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7T2JqZWN0LmFzc2lnbihhLHt0ZXh0Q29udGVudDpyfSksby5mb3JFYWNoKHM9PntpLmNvbnRlbnQuYXBwZW5kQ2hpbGQocyl9KSxpLmNvbnRlbnQuYXBwZW5kQ2hpbGQoYSksbi5hcHBlbmRDaGlsZChpKSxuLnJlZ2lzdGVyKHQpfXlzKHttb2R1bGVOYW1lOiJkYXNoYm9hcmQtc3R5bGUiLHN0eWxlRGVwZW5kZW5jaWVzOlsiaXJvbi1mbGV4Il0sc3R5bGVDb250ZW50OmAKICAgICAgOmhvc3QgewogICAgICAgIC0tc2lkZWJhci12ZXJ0aWNhbC1wYWRkaW5nOiAxNXB4OwogICAgICAgIC0tc2lkZWJhci1sZWZ0LXBhZGRpbmc6IDMwcHg7CiAgICAgIH0KCiAgICAgIFtzbG90PSdzaWRlYmFyJ10gewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIHBhZGRpbmc6IDVweCAwOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuc2V0dGluZ3MgewogICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgfQoKICAgICAgLnJ1bnMtc2VsZWN0b3IgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICB9CgogICAgICB0Zi1ydW5zLXNlbGVjdG9yIHsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgbGVmdDogdmFyKC0tc2lkZWJhci1sZWZ0LXBhZGRpbmcpOwogICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIHZhcigtLXNpZGViYXItdmVydGljYWwtcGFkZGluZykgKiAyKTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pbnB1dCB7CiAgICAgICAgbWFyZ2luOiAxMHB4IDVweCAwIDEwcHg7CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyLXNlY3Rpb24gewogICAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCB2YXIoLS10Yi11aS1ib3JkZXIpOwogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICBwYWRkaW5nOiB2YXIoLS1zaWRlYmFyLXZlcnRpY2FsLXBhZGRpbmcpIDAKICAgICAgICAgIHZhcigtLXNpZGViYXItdmVydGljYWwtcGFkZGluZykgdmFyKC0tc2lkZWJhci1sZWZ0LXBhZGRpbmcpOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuc2lkZWJhci1zZWN0aW9uOmZpcnN0LW9mLXR5cGUgewogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgfQoKICAgICAgLnNpZGViYXItc2VjdGlvbiBwYXBlci1idXR0b24gewogICAgICAgIG1hcmdpbjogNXB4OwogICAgICB9CgogICAgICAuc2lkZWJhci1zZWN0aW9uIHBhcGVyLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHsKICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuc2lkZWJhci1zZWN0aW9uIHBhcGVyLWJ1dHRvbjpsYXN0LW9mLXR5cGUgewogICAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuc2lkZWJhci1zZWN0aW9uID4gOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIHBhZGRpbmctdG9wOiAwOwogICAgICB9CgogICAgICAuc2lkZWJhci1zZWN0aW9uID4gOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyLXNlY3Rpb24gaDMgewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgICAgbWFyZ2luOiAxMHB4IDAgNXB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICBwYXBlci1jaGVja2JveCB7CiAgICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWNvbG9yOiB2YXIoLS10Yi11aS1kYXJrLWFjY2VudCk7CiAgICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgbWFyZ2luLXRvcDogNXB4OwogICAgICB9CgogICAgICBhIHsKICAgICAgICBjb2xvcjogdmFyKC0tdGItbGluayk7CiAgICAgIH0KCiAgICAgIGE6dmlzaXRlZCB7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLWxpbmstdmlzaXRlZCk7CiAgICAgIH0KICBgfSk7ZnVuY3Rpb24gX28oZSl7cmV0dXJuIGNsYXNzIGV4dGVuZHMgZXtjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fbWF5YmVTZXREYXJrTW9kZSgpLHRoaXMub2JzZXJ2ZXI9bmV3IE11dGF0aW9uT2JzZXJ2ZXIocj0+e3Iuc29tZShpPT5pLmF0dHJpYnV0ZU5hbWU9PT0iY2xhc3MiKSYmdGhpcy5fbWF5YmVTZXREYXJrTW9kZSgpfSksdGhpcy5vYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHkse2F0dHJpYnV0ZXM6ITB9KX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3ZhciByO3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksKHI9dGhpcy5vYnNlcnZlcik9PW51bGx8fHIuZGlzY29ubmVjdCgpfV9tYXliZVNldERhcmtNb2RlKCl7dGhpcy5jbGFzc0xpc3QudG9nZ2xlKCJkYXJrLW1vZGUiLGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCJkYXJrLW1vZGUiKSl9fX15cyh7bW9kdWxlTmFtZToic2Nyb2xsYmFyLXN0eWxlIixzdHlsZUNvbnRlbnQ6YAogICAgLnNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICB9CgogICAgLnNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICB3aWR0aDogMTBweDsKICAgIH0KCiAgICAuc2Nyb2xsYmFyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLWdyZXktNTAwKTsKICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWdyZXktOTAwKTsKICAgIH0KICAgIC5zY3JvbGxiYXIgewogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgfQogIGB9KTt2YXIgQlc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtCVy5zZXRBdHRyaWJ1dGUoImlzIiwiY3VzdG9tLXN0eWxlIik7QlcudGV4dENvbnRlbnQ9YAogIDpyb290IHsKICAgIC0tdGItb3JhbmdlLXdlYWs6ICNmZmE3MjY7CiAgICAtLXRiLW9yYW5nZS1zdHJvbmc6ICNmNTdjMDA7CiAgICAtLXRiLW9yYW5nZS1kYXJrOiAjZGM3MzIwOwogICAgLS10Yi1ncmV5LWRhcmtlcjogI2UyZTJlMjsKICAgIC0tdGItZ3JleS1saWdodGVyOiAjZjNmM2YzOwogICAgLS10Yi11aS1kYXJrLWFjY2VudDogIzc1NzU3NTsKICAgIC0tdGItdWktbGlnaHQtYWNjZW50OiAjZTBlMGUwOwogICAgLS10Yi11aS1ib3JkZXI6IHZhcigtLXBhcGVyLWdyZXktMzAwKTsKICAgIC0tdGItZ3JhcGgtZmFkZWQ6ICNlMGQ0YjM7CiAgICAtLXRiLXNlY29uZGFyeS10ZXh0LWNvbG9yOiB2YXIoLS1wYXBlci1ncmV5LTgwMCk7CiAgICAtLXRiLXJhaXNlZC1idXR0b24tc2hhZG93LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7CiAgICAtLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICAgIC0tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6ICNlOWU5ZTk7CiAgICAtLXRiLWxheW91dC1iYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1OwogICAgLS10Yi1saW5rOiAjMTk3NmQyOyAvKiBtYXRlcmlhbCBibHVlIDcwMC4gKi8KICAgIC0tdGItbGluay12aXNpdGVkOiAjN2IxZmEyOyAvKiBtYXRlcmlhbCBwdXJwbGUgNzAwLiAqLwogIH0KCiAgOnJvb3QgLmRhcmstbW9kZSB7CiAgICAtLXRiLXVpLWJvcmRlcjogdmFyKC0tcGFwZXItZ3JleS03MDApOwogICAgLS10Yi11aS1kYXJrLWFjY2VudDogdmFyKC0tcGFwZXItZ3JleS00MDApOwogICAgLS10Yi11aS1saWdodC1hY2NlbnQ6IHZhcigtLXBhcGVyLWdyZXktNjAwKTsKICAgIC0tdGItc2Vjb25kYXJ5LXRleHQtY29sb3I6IHZhcigtLXBhcGVyLWdyZXktNDAwKTsKICAgIC0tdGItcmFpc2VkLWJ1dHRvbi1zaGFkb3ctY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsKICAgIC0tcHJpbWFyeS10ZXh0LWNvbG9yOiAjZmZmOwogICAgLS1zZWNvbmRhcnktdGV4dC1jb2xvcjogdmFyKC0tcGFwZXItZ3JleS00MDApOwogICAgLS1wcmltYXJ5LWJhY2tncm91bmQtY29sb3I6ICMzMDMwMzA7ICAvKiBtYXRlcmlhbCBncmV5IEE0MDAuICovCiAgICAtLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAjM2EzYTNhOwogICAgLS10Yi1sYXlvdXQtYmFja2dyb3VuZC1jb2xvcjogIzNhM2EzYTsKICAgIC0tdGItbGluazogIzQyYTVmNTsgLyogbWF0ZXJpYWwgYmx1ZSA0MDAuICovCiAgICAtLXRiLWxpbmstdmlzaXRlZDogI2JhNjhjODsgLyogbWF0ZXJpYWwgcHVycGxlIDMwMC4gKi8KICAgIC8qIE92ZXJyaWRlcyBwYXBlci1tYXRlcmlhbCAqLwogICAgLS1zaGFkb3ctZWxldmF0aW9uLTJkcF8tX2JveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCksCiAgICAgIDAgMXB4IDVweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMiksCiAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKICB9CmA7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChCVyk7dmFyIEhXPWNsYXNzIGV4dGVuZHMgX28obXQpe307SFcudGVtcGxhdGU9UWAKICAgIDxkaXYgaWQ9InNpZGViYXIiPgogICAgICA8c2xvdCBuYW1lPSJzaWRlYmFyIj48L3Nsb3Q+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJjZW50ZXIiPgogICAgICA8c2xvdCBuYW1lPSJjZW50ZXIiIGNsYXNzPSJzY29sbGJhciI+PC9zbG90PgogICAgPC9kaXY+CiAgICA8c3R5bGUgaW5jbHVkZT0ic2Nyb2xsYmFyLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICA6aG9zdCguZGFyay1tb2RlKSB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3IpOwogICAgICB9CgogICAgICAjc2lkZWJhciB7CiAgICAgICAgZmxleDogMCAwIHZhcigtLXRmLWRhc2hib2FyZC1sYXlvdXQtc2lkZWJhci1iYXNpcywgMjUlKTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS10Zi1kYXNoYm9hcmQtbGF5b3V0LXNpZGViYXItbWF4LXdpZHRoLCAzNTBweCk7CiAgICAgICAgbWluLXdpZHRoOiB2YXIoLS10Zi1kYXNoYm9hcmQtbGF5b3V0LXNpZGViYXItbWluLXdpZHRoLCAyNzBweCk7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgI2NlbnRlciB7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICA6OnNsb3R0ZWQoW3Nsb3Q9J2NlbnRlciddKSB7CiAgICAgICAgY29udGFpbjogc3RyaWN0OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICB9CgogICAgICAudGYtZ3JhcGgtZGFzaGJvYXJkICNjZW50ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYDtIVz1FKFt5dCgidGYtZGFzaGJvYXJkLWxheW91dCIpXSxIVyk7dmFyIEcwdD0iVEYuVGVuc29yQm9hcmQuUGFnaW5hdGVkVmlldy5saW1pdCIsYTJlPTEyLFBoPW51bGwsVlc9bmV3IFNldDtmdW5jdGlvbiBVVyhlKXtWVy5hZGQoZSl9ZnVuY3Rpb24gcVcoZSl7VlcuZGVsZXRlKGUpfWZ1bmN0aW9uIEdXKCl7cmV0dXJuIFBoPT1udWxsJiYoUGg9TlcoRzB0LHt1c2VMb2NhbFN0b3JhZ2U6ITB9KSwoUGg9PW51bGx8fCFpc0Zpbml0ZShQaCl8fFBoPD0wKSYmKFBoPWEyZSkpLFBofWZ1bmN0aW9uIHMyZShlKXtpZihlIT09TWF0aC5mbG9vcihlKSl0aHJvdyBuZXcgRXJyb3IoYGxpbWl0IG11c3QgYmUgYW4gaW50ZWdlciwgYnV0IGdvdDogJHtlfWApO2lmKGU8PTApdGhyb3cgbmV3IEVycm9yKGBsaW1pdCBtdXN0IGJlIHBvc2l0aXZlLCBidXQgZ290OiAke2V9YCk7ZSE9PVBoJiYoUGg9ZSxEVyhHMHQsUGgse3VzZUxvY2FsU3RvcmFnZTohMH0pLFZXLmZvckVhY2godD0+e3QoKX0pKX12YXIgbmI9Y2xhc3MgZXh0ZW5kcyBtdHt1cGRhdGVBcnJheVByb3AodCxyLG4pe2xldCBpPXRoaXMuZ2V0KHQpLG89cjtpZighQXJyYXkuaXNBcnJheShvKSl0aHJvdyBSYW5nZUVycm9yKGBFeHBlY3RlZCBuZXcgdmFsdWUgdG8gJyR7dH0nIHRvIGJlIGFuIGFycmF5LmApO0FycmF5LmlzQXJyYXkoaSl8fChpPVtdLHRoaXMuc2V0KHQsaSkpO2xldCBhPW5ldyBTZXQoby5tYXAoKGMsdSk9Pm4oYyx1KSkpLHM9MCxsPTA7Zm9yKDtzPGkubGVuZ3RoJiZsPG8ubGVuZ3RoOyl7aWYoYS5oYXMobihpW3NdLHMpKSluKGlbc10scyk9PW4ob1tsXSxsKT90aGlzLnNldChgJHt0fS4ke3N9YCxvW2xdKTp0aGlzLnNwbGljZSh0LHMsMCxvW2xdKTtlbHNle3RoaXMuc3BsaWNlKHQscywxKTtjb250aW51ZX1sKysscysrfXM8aS5sZW5ndGgmJnRoaXMuc3BsaWNlKHQscyksbDxvLmxlbmd0aCYmdGhpcy5wdXNoKHQsLi4uby5zbGljZShsKSl9fTt2YXIgT2k9Y2xhc3MgZXh0ZW5kcyBuYntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5hcz0iaXRlbSIsdGhpcy5fY29udGVudEFjdGl2ZT0hMCx0aGlzLl9kb21Cb290c3RyYXBwZWQ9ITEsdGhpcy5fY3Rvcj1udWxsLHRoaXMuX3JlbmRlcmVkSXRlbXM9W10sdGhpcy5fcmVuZGVyZWRUZW1wbGF0ZUluc3Q9bmV3IE1hcCx0aGlzLl9scnVDYWNoZWRJdGVtcz1uZXcgTWFwLHRoaXMuX2NhY2hlU2l6ZT0xMCx0aGlzLl9nZXRJdGVtS2V5PXQ9PkpTT04uc3RyaW5naWZ5KHQpLHRoaXMuX2lzQ29ubmVjdGVkPSExfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9pc0Nvbm5lY3RlZD0hMH1zZXRDYWNoZVNpemUodCl7dGhpcy5fY2FjaGVTaXplPXR9c2V0R2V0SXRlbUtleSh0KXt0aGlzLl9nZXRJdGVtS2V5PXR9dXBkYXRlRG9tKHQpe3RoaXMudXBkYXRlQXJyYXlQcm9wKCJfcmVuZGVyZWRJdGVtcyIsdCx0aGlzLl9nZXRJdGVtS2V5KX1fZW5zdXJlVGVtcGxhdGl6ZWQoKXtpZighdGhpcy5pc0Nvbm5lY3RlZClyZXR1cm4hMTtpZighdGhpcy5fY3Rvcil7bGV0IHQ9dGhpcy5xdWVyeVNlbGVjdG9yKCJ0ZW1wbGF0ZSIpO3RoaXMuX2N0b3I9dGModCx0aGlzLHtwYXJlbnRNb2RlbDohMCxpbnN0YW5jZVByb3BzOntbdGhpcy5hc106ITAsYWN0aXZlOnRoaXMuX2NvbnRlbnRBY3RpdmV9LGZvcndhcmRIb3N0UHJvcDpmdW5jdGlvbihyLG4pe3RoaXMuX3JlbmRlcmVkVGVtcGxhdGVJbnN0LmZvckVhY2goaT0+e2kuZm9yd2FyZEhvc3RQcm9wKHIsbil9KX19KX1yZXR1cm4hMH1fYm9vdHN0cmFwRG9tKCl7aWYoIXRoaXMuX2Vuc3VyZVRlbXBsYXRpemVkKCl8fHRoaXMuX2RvbUJvb3RzdHJhcHBlZClyZXR1cm47bmV3IE11dGF0aW9uT2JzZXJ2ZXIocj0+e2ZvcihsZXQgbiBvZiByKWlmKG4udHlwZT09PSJjaGlsZExpc3QiKWZvcihsZXQgaSBvZiBBcnJheS5mcm9tKG4uYWRkZWROb2RlcykpaSBpbnN0YW5jZW9mIEVsZW1lbnQmJmkuc2V0QXR0cmlidXRlKCJzbG90IiwiaXRlbXMiKX0pLm9ic2VydmUodGhpcyx7Y2hpbGRMaXN0OiEwfSksQXJyYXkuZnJvbSh0aGlzLmNoaWxkcmVuKS5mb3JFYWNoKHI9Pnt0aGlzLnJlbW92ZUNoaWxkKHIpfSksdGhpcy5fbHJ1Q2FjaGVkSXRlbXMuY2xlYXIoKSx0aGlzLl9yZW5kZXJlZEl0ZW1zLmZvckVhY2goKHIsbik9PnRoaXMuX2luc2VydEl0ZW0ocixuKSksdGhpcy5fZG9tQm9vdHN0cmFwcGVkPSEwfV91cGRhdGVBY3RpdmUoKXshdGhpcy5fZG9tQm9vdHN0cmFwcGVkfHxBcnJheS5mcm9tKHRoaXMuX3JlbmRlcmVkVGVtcGxhdGVJbnN0LnZhbHVlcygpKS5mb3JFYWNoKHQ9Pnt0Lm5vdGlmeVBhdGgoImFjdGl2ZSIsdGhpcy5fY29udGVudEFjdGl2ZSl9KX1fdXBkYXRlRG9tKHQpe2lmKCEhdGhpcy5fZG9tQm9vdHN0cmFwcGVkJiYhKHQucGF0aD09Il9yZW5kZXJlZEl0ZW1zInx8dC5wYXRoPT0iX3JlbmRlcmVkSXRlbXMubGVuZ3RoIikpaWYodC5wYXRoPT09Il9yZW5kZXJlZEl0ZW1zLnNwbGljZXMiKXQudmFsdWUuaW5kZXhTcGxpY2VzLmZvckVhY2gobj0+e2xldHtpbmRleDppLGFkZGVkQ291bnQ6byxvYmplY3Q6YSxyZW1vdmVkOnN9PW47cy5mb3JFYWNoKGw9Pnt0aGlzLl9yZW1vdmVJdGVtKGwsdGhpcy5jaGlsZHJlbltpXSl9KSxhLnNsaWNlKGksaStvKS5mb3JFYWNoKChsLGMpPT50aGlzLl9pbnNlcnRJdGVtKGwsaStjKSksdGhpcy5fdHJpbUNhY2hlKCl9KTtlbHNle2xldCByPXRoaXMuX2dldEl0ZW1LZXkodC52YWx1ZSk7dGhpcy5fcmVuZGVyZWRUZW1wbGF0ZUluc3QuaGFzKHIpP3RoaXMuX3JlbmRlcmVkVGVtcGxhdGVJbnN0LmdldChyKS5ub3RpZnlQYXRoKHRoaXMuYXMsdC52YWx1ZSk6Y29uc29sZS53YXJuKGBFeHBlY3RlZCAnJHtyfScgdG8gZXhpc3QgaW4gdGhlIERPTSBidXQgY291bGQgbm90IGZpbmQgb25lLmApfX1faW5zZXJ0SXRlbSh0LHIpe2lmKCF0aGlzLl9lbnN1cmVUZW1wbGF0aXplZCgpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgdGVtcGxhdGl6ZWQgYmVmb3JlIGluc2VydGluZyBhbiBpdGVtIik7bGV0IG4saT10aGlzLl9nZXRJdGVtS2V5KHQpO2lmKHRoaXMuX2xydUNhY2hlZEl0ZW1zLmhhcyhpKSluPXRoaXMuX2xydUNhY2hlZEl0ZW1zLmdldChpKSx0aGlzLl9scnVDYWNoZWRJdGVtcy5kZWxldGUoaSksdGhpcy5fcmVuZGVyZWRUZW1wbGF0ZUluc3QuZ2V0KGkpLm5vdGlmeVBhdGgoImFjdGl2ZSIsdGhpcy5fY29udGVudEFjdGl2ZSk7ZWxzZXtsZXQgbz17W3RoaXMuYXNdOnQsYWN0aXZlOnRoaXMuX2NvbnRlbnRBY3RpdmV9LGE9bmV3IHRoaXMuX2N0b3Iobyk7bj1hLnJvb3QsdGhpcy5fcmVuZGVyZWRUZW1wbGF0ZUluc3Quc2V0KGksYSl9dGhpcy5jaGlsZHJlbltyXT90aGlzLmluc2VydEJlZm9yZShuLHRoaXMuY2hpbGRyZW5bcl0pOigobi5ub2RlVHlwZT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFP0FycmF5LmZyb20obi5jaGlsZHJlbik6W25dKS5mb3JFYWNoKGE9PmEuc2V0QXR0cmlidXRlKCJzbG90IiwiaXRlbXMiKSksdGhpcy5hcHBlbmRDaGlsZChuKSl9X3JlbW92ZUl0ZW0odCxyKXtyLnBhcmVudE5vZGUmJnIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKTtsZXQgbj10aGlzLl9nZXRJdGVtS2V5KHQpO3RoaXMuX2xydUNhY2hlZEl0ZW1zLnNldChuLHIpLHRoaXMuX3JlbmRlcmVkVGVtcGxhdGVJbnN0LmdldChuKS5ub3RpZnlQYXRoKCJhY3RpdmUiLCExKX1fdHJpbUNhY2hlKCl7Zm9yKDt0aGlzLl9scnVDYWNoZWRJdGVtcy5zaXplPnRoaXMuX2NhY2hlU2l6ZTspe2xldFt0XT10aGlzLl9scnVDYWNoZWRJdGVtcy5rZXlzKCk7dGhpcy5fbHJ1Q2FjaGVkSXRlbXMuZGVsZXRlKHQpLHRoaXMuX3JlbmRlcmVkVGVtcGxhdGVJbnN0LmRlbGV0ZSh0KX19fTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxPaS5wcm90b3R5cGUsImFzIix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSxPaS5wcm90b3R5cGUsIml0ZW1zIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sT2kucHJvdG90eXBlLCJfY29udGVudEFjdGl2ZSIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sT2kucHJvdG90eXBlLCJfZG9tQm9vdHN0cmFwcGVkIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLE9pLnByb3RvdHlwZSwiX2N0b3IiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLE9pLnByb3RvdHlwZSwiX3JlbmRlcmVkSXRlbXMiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sT2kucHJvdG90eXBlLCJfcmVuZGVyZWRUZW1wbGF0ZUluc3QiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sT2kucHJvdG90eXBlLCJfbHJ1Q2FjaGVkSXRlbXMiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXJ9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sT2kucHJvdG90eXBlLCJfY2FjaGVTaXplIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLE9pLnByb3RvdHlwZSwiX2dldEl0ZW1LZXkiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLE9pLnByb3RvdHlwZSwiX2lzQ29ubmVjdGVkIix2b2lkIDApO0UoW0J0KCJfaXNDb25uZWN0ZWQiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLE9pLnByb3RvdHlwZSwiX2Jvb3RzdHJhcERvbSIsbnVsbCk7RShbQnQoIl9jb250ZW50QWN0aXZlIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxPaS5wcm90b3R5cGUsIl91cGRhdGVBY3RpdmUiLG51bGwpO0UoW0J0KCJfcmVuZGVyZWRJdGVtcy4qIiwiX2RvbUJvb3RzdHJhcHBlZCIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtPYmplY3RdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sT2kucHJvdG90eXBlLCJfdXBkYXRlRG9tIixudWxsKTtFKFtCdCgiX2NhY2hlU2l6ZSIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sT2kucHJvdG90eXBlLCJfdHJpbUNhY2hlIixudWxsKTt2YXIgaG49Y2xhc3MgZXh0ZW5kcyBPaXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5kaXNhYmxlUGFnaW5hdGlvbj0hMSx0aGlzLmdldENhdGVnb3J5SXRlbUtleT10PT5KU09OLnN0cmluZ2lmeSh0KSx0aGlzLl9saW1pdD0xMix0aGlzLl9hY3RpdmVJbmRleD0wLHRoaXMuX3BhZ2VJbnB1dFJhd1ZhbHVlPSIiLHRoaXMuX3BhZ2VJbnB1dEZvY3VzZWQ9ITF9X2NvbXB1dGVDb3VudCgpe3JldHVybiB0aGlzLmNhdGVnb3J5Lml0ZW1zLmxlbmd0aH1nZXQgX2hhc011bHRpcGxlKCl7cmV0dXJuIHRoaXMuX2NvdW50PjF9X3RvZ2dsZVBhbmUoKXt0aGlzLm9wZW5lZD0hdGhpcy5vcGVuZWR9X2NoYW5nZUNvbnRlbnRBY3RpdmUodCl7dGhpcy5fY29udGVudEFjdGl2ZT10fV9vblBhbmVSZW5kZXJlZENoYW5nZWQodCxyKXt0JiZ0IT09ciYmdGhpcy4kLmlmUmVuZGVyZWQucmVuZGVyKCl9X2NvbXB1dGVQYW5lUmVuZGVyZWQodCl7cmV0dXJuISh0Lm1ldGFkYXRhLnR5cGU9PT1EYS5TRUFSQ0hfUkVTVUxUUyYmdC5uYW1lPT09IiIpfWdldCBfaXRlbXNSZW5kZXJlZCgpe3JldHVybiB0aGlzLl9wYW5lUmVuZGVyZWQmJnRoaXMub3BlbmVkfV9jb21wdXRlSXNTZWFyY2hSZXN1bHRzKHQpe3JldHVybiB0PT09RGEuU0VBUkNIX1JFU1VMVFN9X2NvbXB1dGVJc0ludmFsaWRTZWFyY2hSZXN1bHRzKHQpe3JldHVybiB0LnR5cGU9PT1EYS5TRUFSQ0hfUkVTVUxUUyYmIXQudmFsaWRSZWdleH1fY29tcHV0ZUlzVW5pdmVyc2FsU2VhcmNoUXVlcnkodCl7cmV0dXJuIHQudHlwZT09PURhLlNFQVJDSF9SRVNVTFRTJiZ0LnVuaXZlcnNhbFJlZ2V4fV9pc0NvbXBvc2l0ZVNlYXJjaCgpe2xldHt0eXBlOnQsY29tcG9zaXRlU2VhcmNoOnJ9PXRoaXMuY2F0ZWdvcnkubWV0YWRhdGE7cmV0dXJuIHImJnQ9PT1EYS5TRUFSQ0hfUkVTVUxUU31yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5vcGVuZWQ9dGhpcy5pbml0aWFsT3BlbmVkPT1udWxsPyEwOnRoaXMuaW5pdGlhbE9wZW5lZCx0aGlzLl9saW1pdExpc3RlbmVyPSgpPT57dGhpcy5zZXQoIl9saW1pdCIsR1coKSl9LFVXKHRoaXMuX2xpbWl0TGlzdGVuZXIpLHRoaXMuX2xpbWl0TGlzdGVuZXIoKX1kZXRhY2hlZCgpe3FXKHRoaXMuX2xpbWl0TGlzdGVuZXIpfV91cGRhdGVSZW5kZXJlZEl0ZW1zKCl7dmFyIHQ9dGhpcy5faXRlbXNSZW5kZXJlZCxyPXRoaXMuX2xpbWl0LG49dGhpcy5fYWN0aXZlSW5kZXgsaT10aGlzLmRpc2FibGVQYWdpbmF0aW9uO2lmKCF0KXJldHVybjtsZXQgbz1NYXRoLmZsb29yKG4vciksYT10aGlzLmNhdGVnb3J5Lml0ZW1zfHxbXSxzPWk/YTphLnNsaWNlKG8qciwobysxKSpyKTt0aGlzLnVwZGF0ZURvbShzKX1fbGltaXRDaGFuZ2VkKHQpe3RoaXMuc2V0Q2FjaGVTaXplKHQqMil9X2dldENhdGVnb3J5SXRlbUtleUNoYW5nZWQoKXt0aGlzLnNldEdldEl0ZW1LZXkodGhpcy5nZXRDYXRlZ29yeUl0ZW1LZXkpfWdldCBfY3VycmVudFBhZ2UoKXt2YXIgdD10aGlzLl9saW1pdCxyPXRoaXMuX2FjdGl2ZUluZGV4O3JldHVybiBNYXRoLmZsb29yKHIvdCkrMX1fY29tcHV0ZVBhZ2VDb3VudCh0LHIpe3JldHVybiB0aGlzLmNhdGVnb3J5P01hdGguY2VpbCh0aGlzLmNhdGVnb3J5Lml0ZW1zLmxlbmd0aC9yKTowfWdldCBfbXVsdGlwbGVQYWdlc0V4aXN0KCl7dmFyIHQ9dGhpcy5fcGFnZUNvdW50LHI9dGhpcy5kaXNhYmxlUGFnaW5hdGlvbjtyZXR1cm4hciYmdD4xfWdldCBfaGFzUHJldmlvdXNQYWdlKCl7dmFyIHQ9dGhpcy5fY3VycmVudFBhZ2U7cmV0dXJuIHQ+MX1nZXQgX2hhc05leHRQYWdlKCl7dmFyIHQ9dGhpcy5fY3VycmVudFBhZ2Uscj10aGlzLl9wYWdlQ291bnQ7cmV0dXJuIHQ8cn1fY29tcHV0ZUlucHV0V2lkdGgodCl7cmV0dXJuYGNhbGMoJHt0LnRvU3RyaW5nKCkubGVuZ3RofWVtICsgMjBweClgfV9zZXRBY3RpdmVJbmRleCh0KXtsZXQgcj0odGhpcy5jYXRlZ29yeS5pdGVtc3x8W10pLmxlbmd0aC0xO3Q+ciYmKHQ9ciksdDwwJiYodD0wKSx0aGlzLnNldCgiX2FjdGl2ZUluZGV4Iix0KX1fY2xhbXBBY3RpdmVJbmRleCgpe3RoaXMuX3NldEFjdGl2ZUluZGV4KHRoaXMuX2FjdGl2ZUluZGV4KX1fcGVyZm9ybVByZXZpb3VzUGFnZSgpe3RoaXMuX3NldEFjdGl2ZUluZGV4KHRoaXMuX2FjdGl2ZUluZGV4LXRoaXMuX2xpbWl0KX1fcGVyZm9ybU5leHRQYWdlKCl7dGhpcy5fc2V0QWN0aXZlSW5kZXgodGhpcy5fYWN0aXZlSW5kZXgrdGhpcy5fbGltaXQpfV9jb21wdXRlUGFnZUlucHV0VmFsdWUodCxyLG4pe3JldHVybiB0P3I6bi50b1N0cmluZygpfV9oYW5kbGVQYWdlSW5wdXRFdmVudCh0KXt0aGlzLnNldCgiX3BhZ2VJbnB1dFJhd1ZhbHVlIix0LnRhcmdldC52YWx1ZSk7bGV0IHI9TnVtYmVyKHQudGFyZ2V0LnZhbHVlfHxOYU4pO2lmKGlzTmFOKHIpKXJldHVybjtsZXQgbj1NYXRoLm1heCgxLE1hdGgubWluKHIsdGhpcy5fcGFnZUNvdW50KSktMTt0aGlzLl9zZXRBY3RpdmVJbmRleCh0aGlzLl9saW1pdCpuKX1faGFuZGxlUGFnZUNoYW5nZUV2ZW50KCl7dGhpcy5zZXQoIl9wYWdlSW5wdXRSYXdWYWx1ZSIsdGhpcy5fY3VycmVudFBhZ2UudG9TdHJpbmcoKSl9X2hhbmRsZVBhZ2VGb2N1c0V2ZW50KCl7dGhpcy5zZXQoIl9wYWdlSW5wdXRSYXdWYWx1ZSIsdGhpcy5fcGFnZUlucHV0VmFsdWUpLHRoaXMuc2V0KCJfcGFnZUlucHV0Rm9jdXNlZCIsITApfV9oYW5kbGVQYWdlQmx1ckV2ZW50KCl7dGhpcy5zZXQoIl9wYWdlSW5wdXRGb2N1c2VkIiwhMSl9X3VwZGF0ZVBhZ2VJbnB1dFZhbHVlKHQpe3ZhciBuO2xldCByPShuPXRoaXMuc2hhZG93Um9vdCk9PW51bGw/dm9pZCAwOm4ucXVlcnlTZWxlY3RvcigiI3BhZ2UtaW5wdXQgaW5wdXQiKTtyJiYoci52YWx1ZT10KX1fdXBkYXRlSW5wdXRXaWR0aCgpe3RoaXMudXBkYXRlU3R5bGVzKHsiLS10Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldy1wYWdlLWlucHV0LXdpZHRoIjp0aGlzLl9pbnB1dFdpZHRofSl9fTtobi50ZW1wbGF0ZT1RYAogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19wYW5lUmVuZGVyZWRdXSIgaWQ9ImlmUmVuZGVyZWQiPgogICAgICA8YnV0dG9uIGNsYXNzPSJoZWFkaW5nIiBvbi10YXA9Il90b2dnbGVQYW5lIiBvcGVuLWJ1dHRvbiQ9Iltbb3BlbmVkXV0iPgogICAgICAgIDxzcGFuIGNsYXNzPSJuYW1lIj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaXNTZWFyY2hSZXN1bHRzXV0iPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzQ29tcG9zaXRlU2VhcmNoKGNhdGVnb3J5KV1dIj4KICAgICAgICAgICAgICA8c3Bhbj5UYWdzIG1hdGNoaW5nIG11bHRpcGxlIGV4cGVyaW1lbnRzPC9zcGFuPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaXNJbnZhbGlkU2VhcmNoUmVzdWx0c11dIj4KICAgICAgICAgICAgICAgIDxzcGFuCiAgICAgICAgICAgICAgICAgID4mbmJzcDs8c3Ryb25nPihtYWxmb3JtZWQgcmVndWxhciBleHByZXNzaW9uKTwvc3Ryb25nPjwvc3BhbgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2lzQ29tcG9zaXRlU2VhcmNoKGNhdGVnb3J5KV1dIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGlnaHQiPlRhZ3MgbWF0Y2hpbmcgLzwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnktbmFtZSIgdGl0bGUkPSJbW2NhdGVnb3J5Lm5hbWVdXSIKICAgICAgICAgICAgICAgID5bW2NhdGVnb3J5Lm5hbWVdXTwvc3BhbgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGlnaHQiPi88L3NwYW4+CiAgICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc1VuaXZlcnNhbFNlYXJjaFF1ZXJ5XV0iPgogICAgICAgICAgICAgICAgPHNwYW4+IChhbGwgdGFncyk8L3NwYW4+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzSW52YWxpZFNlYXJjaFJlc3VsdHNdXSI+CiAgICAgICAgICAgICAgICA8c3Bhbj4gPHN0cm9uZz4obWFsZm9ybWVkIHJlZ3VsYXIgZXhwcmVzc2lvbik8L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9pc1NlYXJjaFJlc3VsdHNdXSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXRlZ29yeS1uYW1lIiB0aXRsZSQ9IltbY2F0ZWdvcnkubmFtZV1dIgogICAgICAgICAgICAgID5bW2NhdGVnb3J5Lm5hbWVdXTwvc3BhbgogICAgICAgICAgICA+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iY291bnQiPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNNdWx0aXBsZV1dIj4KICAgICAgICAgICAgPHNwYW4+W1tfY291bnRdXTwvc3Bhbj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8aXJvbi1pY29uIGljb249ImV4cGFuZC1tb3JlIiBjbGFzcz0iZXhwYW5kLWFycm93Ij48L2lyb24taWNvbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvYnV0dG9uPgogICAgICA8IS0tIFRPRE8oc3RlcGhhbndsZWUpOiBpbnZlc3RpZ2F0ZSBmdXJ0aGVyLiBGb3Igc29tZSByZWFzb24sCiAgICAgICAgdHJhbnNpdGlvbmVuZCB0aGF0IHRoZSBpcm9uLWNvbGxhcHNlIHJlbGllcyBvbiBzb21ldGltZXMgZG9lcyBub3QKICAgICAgICB0cmlnZ2VyIHdoZW4gcmVuZGVyaW5nIGEgY2hhcnQgd2l0aCBhIHNwaW5uZXIuIEEgdG95IGV4YW1wbGUgY2Fubm90CiAgICAgICAgcmVwcm9kdWNlIHRoaXMgYnVnLiAtLT4KICAgICAgPGlyb24tY29sbGFwc2Ugb3BlbmVkPSJbW29wZW5lZF1dIiBuby1hbmltYXRpb249IiI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgICA8c3BhbiBpZD0idG9wLW9mLWNvbnRhaW5lciI+PC9zcGFuPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19tdWx0aXBsZVBhZ2VzRXhpc3RdXSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJpZy1wYWdlLWJ1dHRvbnMiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAxMHB4OyI+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbgogICAgICAgICAgICAgICAgb24tdGFwPSJfcGVyZm9ybVByZXZpb3VzUGFnZSIKICAgICAgICAgICAgICAgIGRpc2FibGVkJD0iW1shX2hhc1ByZXZpb3VzUGFnZV1dIgogICAgICAgICAgICAgICAgPlByZXZpb3VzIHBhZ2U8L3BhcGVyLWJ1dHRvbgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICBvbi10YXA9Il9wZXJmb3JtTmV4dFBhZ2UiCiAgICAgICAgICAgICAgICBkaXNhYmxlZCQ9IltbIV9oYXNOZXh0UGFnZV1dIgogICAgICAgICAgICAgICAgPk5leHQgcGFnZTwvcGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CgogICAgICAgICAgPGRpdiBpZD0iaXRlbXMiPgogICAgICAgICAgICA8c2xvdCBuYW1lPSJpdGVtcyI+PC9zbG90PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX211bHRpcGxlUGFnZXNFeGlzdF1dIj4KICAgICAgICAgICAgPGRpdiBpZD0iY29udHJvbHMtY29udGFpbmVyIj4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDAgNXB4Ij4KICAgICAgICAgICAgICAgIFBhZ2UKICAgICAgICAgICAgICAgIDxwYXBlci1pbnB1dAogICAgICAgICAgICAgICAgICBpZD0icGFnZS1pbnB1dCIKICAgICAgICAgICAgICAgICAgdHlwZT0ibnVtYmVyIgogICAgICAgICAgICAgICAgICBuby1sYWJlbC1mbG9hdD0iIgogICAgICAgICAgICAgICAgICBtaW49IjEiCiAgICAgICAgICAgICAgICAgIG1heD0iW1tfcGFnZUNvdW50XV0iCiAgICAgICAgICAgICAgICAgIHZhbHVlPSJbW19wYWdlSW5wdXRWYWx1ZV1dIgogICAgICAgICAgICAgICAgICBvbi1pbnB1dD0iX2hhbmRsZVBhZ2VJbnB1dEV2ZW50IgogICAgICAgICAgICAgICAgICBvbi1jaGFuZ2U9Il9oYW5kbGVQYWdlQ2hhbmdlRXZlbnQiCiAgICAgICAgICAgICAgICAgIG9uLWZvY3VzPSJfaGFuZGxlUGFnZUZvY3VzRXZlbnQiCiAgICAgICAgICAgICAgICAgIG9uLWJsdXI9Il9oYW5kbGVQYWdlQmx1ckV2ZW50IgogICAgICAgICAgICAgICAgPjwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgICAgICBvZiBbW19wYWdlQ291bnRdXQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJpZy1wYWdlLWJ1dHRvbnMiIHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyI+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbgogICAgICAgICAgICAgICAgb24tdGFwPSJfcGVyZm9ybVByZXZpb3VzUGFnZSIKICAgICAgICAgICAgICAgIGRpc2FibGVkJD0iW1shX2hhc1ByZXZpb3VzUGFnZV1dIgogICAgICAgICAgICAgICAgPlByZXZpb3VzIHBhZ2U8L3BhcGVyLWJ1dHRvbgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICBvbi10YXA9Il9wZXJmb3JtTmV4dFBhZ2UiCiAgICAgICAgICAgICAgICBkaXNhYmxlZCQ9IltbIV9oYXNOZXh0UGFnZV1dIgogICAgICAgICAgICAgICAgPk5leHQgcGFnZTwvcGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvaXJvbi1jb2xsYXBzZT4KICAgIDwvdGVtcGxhdGU+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW46IDAgNXB4IDFweCAxMHB4OwogICAgICB9CgogICAgICA6aG9zdCg6Zmlyc3Qtb2YtdHlwZSkgewogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KDpsYXN0LW9mLXR5cGUpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggdmFyKC0tdGItcmFpc2VkLWJ1dHRvbi1zaGFkb3ctY29sb3IpOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTVweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICB9CgogICAgICAuaGVhZGluZzo6LW1vei1mb2N1cy1pbm5lciB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OwogICAgICB9CgogICAgICBbb3Blbi1idXR0b25dIHsKICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7CiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgW29wZW4tYnV0dG9uXSAuZXhwYW5kLWFycm93IHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKTsKICAgICAgfQoKICAgICAgLm5hbWUgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5saWdodCB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWdyZXktNTAwKTsKICAgICAgfQoKICAgICAgLmNhdGVnb3J5LW5hbWUgewogICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBwYWRkaW5nOiAycHggMDsKICAgICAgfQoKICAgICAgLmNvdW50IHsKICAgICAgICBtYXJnaW46IDAgNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItZ3JleS01MDApOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBmbGV4OiBub25lOwogICAgICB9CgogICAgICAuaGVhZGluZzo6LW1vei1mb2N1cy1pbm5lciB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcik7CiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMnB4OwogICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAycHg7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGVkZWRlOwogICAgICAgIHBhZGRpbmc6IDE1cHg7CiAgICAgIH0KCiAgICAgIC5saWdodCB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWdyZXktNTAwKTsKICAgICAgfQoKICAgICAgI2NvbnRyb2xzLWNvbnRhaW5lciB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtZ3JvdzogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgI2NvbnRyb2xzLWNvbnRhaW5lciBwYXBlci1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLmJpZy1wYWdlLWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KCiAgICAgIC5iaWctcGFnZS1idXR0b25zIHBhcGVyLWJ1dHRvbiB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGItdWktbGlnaHQtYWNjZW50KTsKICAgICAgICBjb2xvcjogdmFyKC0tdGItdWktZGFyay1hY2NlbnQpOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBmbGV4LWJhc2lzOiAwOwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5iaWctcGFnZS1idXR0b25zIHBhcGVyLWJ1dHRvbltkaXNhYmxlZF0gewogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIHNsb3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KCiAgICAgIDo6c2xvdHRlZChbc2xvdD0naXRlbXMnXSkgewogICAgICAgIC8qIFRvb2x0aXAgZm9yIGRlc2NyaXB0aW9ucyBhbmQgb3RoZXJzIGJyZWFrIHdpdGggbW9yZSBzdHJpY3Qgb25lcy4gKi8KICAgICAgICBjb250YWluOiBzdHlsZTsKICAgICAgfQoKICAgICAgI3BhZ2UtaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB3aWR0aDogdmFyKC0tdGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXctcGFnZS1pbnB1dC13aWR0aCwgMTAwJSk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYDtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxobi5wcm90b3R5cGUsImNhdGVnb3J5Iix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0saG4ucHJvdG90eXBlLCJpbml0aWFsT3BlbmVkIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbixub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGhuLnByb3RvdHlwZSwib3BlbmVkIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0saG4ucHJvdG90eXBlLCJkaXNhYmxlUGFnaW5hdGlvbiIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcixjb21wdXRlZDoiX2NvbXB1dGVDb3VudChjYXRlZ29yeS5pdGVtcy4qKSJ9KSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKV0saG4ucHJvdG90eXBlLCJfY291bnQiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFuLGNvbXB1dGVkOiJfY29tcHV0ZVBhbmVSZW5kZXJlZChjYXRlZ29yeSkiLG9ic2VydmVyOiJfb25QYW5lUmVuZGVyZWRDaGFuZ2VkIn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0saG4ucHJvdG90eXBlLCJfcGFuZVJlbmRlcmVkIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbixjb21wdXRlZDoiX2NvbXB1dGVJc1NlYXJjaFJlc3VsdHMoY2F0ZWdvcnkubWV0YWRhdGEudHlwZSkifSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxobi5wcm90b3R5cGUsIl9pc1NlYXJjaFJlc3VsdHMiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFuLGNvbXB1dGVkOiJfY29tcHV0ZUlzSW52YWxpZFNlYXJjaFJlc3VsdHMoY2F0ZWdvcnkubWV0YWRhdGEpIn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0saG4ucHJvdG90eXBlLCJfaXNJbnZhbGlkU2VhcmNoUmVzdWx0cyIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW4sY29tcHV0ZWQ6Il9jb21wdXRlSXNVbml2ZXJzYWxTZWFyY2hRdWVyeShjYXRlZ29yeS5tZXRhZGF0YSkifSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxobi5wcm90b3R5cGUsIl9pc1VuaXZlcnNhbFNlYXJjaFF1ZXJ5Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfZ2V0Q2F0ZWdvcnlJdGVtS2V5Q2hhbmdlZCJ9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0saG4ucHJvdG90eXBlLCJnZXRDYXRlZ29yeUl0ZW1LZXkiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXIsb2JzZXJ2ZXI6Il9saW1pdENoYW5nZWQifSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLGhuLnByb3RvdHlwZSwiX2xpbWl0Iix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLGhuLnByb3RvdHlwZSwiX2FjdGl2ZUluZGV4Iix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyLGNvbXB1dGVkOiJfY29tcHV0ZVBhZ2VDb3VudChjYXRlZ29yeS5pdGVtcy4qLCBfbGltaXQpIn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxobi5wcm90b3R5cGUsIl9wYWdlQ291bnQiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmcsY29tcHV0ZWQ6Il9jb21wdXRlSW5wdXRXaWR0aChfcGFnZUNvdW50KSIsb2JzZXJ2ZXI6Il91cGRhdGVJbnB1dFdpZHRoIn0pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxobi5wcm90b3R5cGUsIl9pbnB1dFdpZHRoIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nLGNvbXB1dGVkOiJfY29tcHV0ZVBhZ2VJbnB1dFZhbHVlKF9wYWdlSW5wdXRGb2N1c2VkLCBfcGFnZUlucHV0UmF3VmFsdWUsIF9jdXJyZW50UGFnZSkiLG9ic2VydmVyOiJfdXBkYXRlUGFnZUlucHV0VmFsdWUifSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLGhuLnByb3RvdHlwZSwiX3BhZ2VJbnB1dFZhbHVlIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLGhuLnByb3RvdHlwZSwiX3BhZ2VJbnB1dFJhd1ZhbHVlIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0saG4ucHJvdG90eXBlLCJfcGFnZUlucHV0Rm9jdXNlZCIsdm9pZCAwKTtFKFtSdCgiX2NvdW50IiksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGhuLnByb3RvdHlwZSwiX2hhc011bHRpcGxlIixudWxsKTtFKFtCdCgib3BlbmVkIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW0Jvb2xlYW5dKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0saG4ucHJvdG90eXBlLCJfY2hhbmdlQ29udGVudEFjdGl2ZSIsbnVsbCk7RShbUnQoIm9wZW5lZCIsIl9wYW5lUmVuZGVyZWQiKSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0saG4ucHJvdG90eXBlLCJfaXRlbXNSZW5kZXJlZCIsbnVsbCk7RShbQnQoIl9pdGVtc1JlbmRlcmVkIiwiY2F0ZWdvcnkuaXRlbXMuKiIsIl9saW1pdCIsIl9hY3RpdmVJbmRleCIsIl9wYWdlQ291bnQiLCJkaXNhYmxlUGFnaW5hdGlvbiIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0saG4ucHJvdG90eXBlLCJfdXBkYXRlUmVuZGVyZWRJdGVtcyIsbnVsbCk7RShbUnQoIl9saW1pdCIsIl9hY3RpdmVJbmRleCIpLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGhuLnByb3RvdHlwZSwiX2N1cnJlbnRQYWdlIixudWxsKTtFKFtSdCgiX3BhZ2VDb3VudCIsImRpc2FibGVQYWdpbmF0aW9uIiksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGhuLnByb3RvdHlwZSwiX211bHRpcGxlUGFnZXNFeGlzdCIsbnVsbCk7RShbUnQoIl9jdXJyZW50UGFnZSIpLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxobi5wcm90b3R5cGUsIl9oYXNQcmV2aW91c1BhZ2UiLG51bGwpO0UoW1J0KCJfY3VycmVudFBhZ2UiLCJfcGFnZUNvdW50IiksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGhuLnByb3RvdHlwZSwiX2hhc05leHRQYWdlIixudWxsKTtFKFtCdCgiY2F0ZWdvcnkuaXRlbXMuKiIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0saG4ucHJvdG90eXBlLCJfY2xhbXBBY3RpdmVJbmRleCIsbnVsbCk7aG49RShbeXQoInRmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3IildLGhuKTt2YXIgVzB0PUVlKE9lKCksMSk7dmFyIEg5PWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMubGlzdGVuZXI9dH19LHdwPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5yZXF1ZXN0TWFuYWdlcj1uZXcgQWUoMSksdGhpcy5fbGlzdGVuZXJzPW5ldyBTZXQsdGhpcy5pbml0aWFsaXplZD0hMX1yZWZyZXNoKCl7cmV0dXJuIHRoaXMubG9hZCgpLnRoZW4oKCk9Pnt0aGlzLmluaXRpYWxpemVkPSEwfSl9YWRkTGlzdGVuZXIodCl7bGV0IHI9bmV3IEg5KHQpO3JldHVybiB0aGlzLl9saXN0ZW5lcnMuYWRkKHIpLHJ9cmVtb3ZlTGlzdGVuZXJCeUtleSh0KXt0aGlzLl9saXN0ZW5lcnMuZGVsZXRlKHQpfWVtaXRDaGFuZ2UoKXt0aGlzLl9saXN0ZW5lcnMuZm9yRWFjaCh0PT57dHJ5e3QubGlzdGVuZXIoKX1jYXRjaChyKXt9fSl9fTt2YXIgVjk9Y2xhc3MgZXh0ZW5kcyB3cHtsb2FkKCl7bGV0IHQ9X2UoKS5lbnZpcm9ubWVudCgpO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodCkudGhlbihyPT57bGV0IG49e2RhdGFMb2NhdGlvbjpyLmRhdGFfbG9jYXRpb24sd2luZG93VGl0bGU6ci53aW5kb3dfdGl0bGV9O3IuZXhwZXJpbWVudF9uYW1lIT09dm9pZCAwJiYobi5leHBlcmltZW50TmFtZT1yLmV4cGVyaW1lbnRfbmFtZSksci5leHBlcmltZW50X2Rlc2NyaXB0aW9uIT09dm9pZCAwJiYobi5leHBlcmltZW50RGVzY3JpcHRpb249ci5leHBlcmltZW50X2Rlc2NyaXB0aW9uKSxyLmNyZWF0aW9uX3RpbWUhPT12b2lkIDAmJihuLmNyZWF0aW9uVGltZT1yLmNyZWF0aW9uX3RpbWUpLCFXMHQuaXNFcXVhbCh0aGlzLmVudmlyb25tZW50LG4pJiYodGhpcy5lbnZpcm9ubWVudD1uLHRoaXMuZW1pdENoYW5nZSgpKX0pfWdldERhdGFMb2NhdGlvbigpe3JldHVybiB0aGlzLmVudmlyb25tZW50P3RoaXMuZW52aXJvbm1lbnQuZGF0YUxvY2F0aW9uOiIifWdldFdpbmRvd1RpdGxlKCl7cmV0dXJuIHRoaXMuZW52aXJvbm1lbnQ/dGhpcy5lbnZpcm9ubWVudC53aW5kb3dUaXRsZToiIn1nZXRFeHBlcmltZW50TmFtZSgpe3JldHVybiB0aGlzLmVudmlyb25tZW50P3RoaXMuZW52aXJvbm1lbnQuZXhwZXJpbWVudE5hbWU6IiJ9Z2V0RXhwZXJpbWVudERlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuZW52aXJvbm1lbnQ/dGhpcy5lbnZpcm9ubWVudC5leHBlcmltZW50RGVzY3JpcHRpb246IiJ9Z2V0Q3JlYXRpb25UaW1lKCl7cmV0dXJuIHRoaXMuZW52aXJvbm1lbnQ/dGhpcy5lbnZpcm9ubWVudC5jcmVhdGlvblRpbWU6bnVsbH19LGliPW5ldyBWOTt2YXIgWTB0PUVlKE9lKCksMSk7dmFyIFU5PWNsYXNzIGV4dGVuZHMgd3B7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3J1bnM9W119bG9hZCgpe2xldCB0PV9lKCkucnVucygpO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodCkudGhlbihyPT57WTB0LmlzRXF1YWwodGhpcy5fcnVucyxyKXx8KHRoaXMuX3J1bnM9cix0aGlzLmVtaXRDaGFuZ2UoKSl9KX1nZXRSdW5zKCl7cmV0dXJuIHRoaXMuX3J1bnMuc2xpY2UoKX19LFNwPW5ldyBVOTt2YXIgVnI9e307WnMoVnIse0Zvcm1hdFNwZWNpZmllcjooKT0+R0UsYWN0aXZlOigpPT5WdnQsYXJjOigpPT5CU3QsYXJlYTooKT0+ejgsYXJlYVJhZGlhbDooKT0+byQsYXNjZW5kaW5nOigpPT5hYSxhdXRvVHlwZTooKT0+aWosYXhpc0JvdHRvbTooKT0+WjksYXhpc0xlZnQ6KCk9PmxiLGF4aXNSaWdodDooKT0+bV90LGF4aXNUb3A6KCk9PmRfdCxiaXNlY3Q6KCk9PnZzLGJpc2VjdExlZnQ6KCk9PiQwdCxiaXNlY3RSaWdodDooKT0+V1csYmlzZWN0b3I6KCk9Pm9iLGJsb2I6KCk9PkQxdCxicnVzaDooKT0+R0wsYnJ1c2hTZWxlY3Rpb246KCk9PlVMLGJydXNoWDooKT0+anZ0LGJydXNoWTooKT0+cUwsYnVmZmVyOigpPT5PMXQsY2hvcmQ6KCk9PiR2dCxjbGllbnRQb2ludDooKT0+T20sY2x1c3RlcjooKT0+V2J0LGNvbG9yOigpPT5yYyxjb250b3VyRGVuc2l0eTooKT0+ZzF0LGNvbnRvdXJzOigpPT5aTCxjcmVhdGU6KCk9PnN5dCxjcmVhdG9yOigpPT5ObSxjcm9zczooKT0+cTksY3N2OigpPT5GMXQsY3N2Rm9ybWF0OigpPT5iMXQsY3N2Rm9ybWF0Qm9keTooKT0+dzF0LGNzdkZvcm1hdFJvdzooKT0+TTF0LGNzdkZvcm1hdFJvd3M6KCk9PlMxdCxjc3ZGb3JtYXRWYWx1ZTooKT0+RTF0LGNzdlBhcnNlOigpPT5DYixjc3ZQYXJzZVJvd3M6KCk9PngxdCxjdWJlaGVsaXg6KCk9PmNhLGN1cnZlQmFzaXM6KCk9Plc4LGN1cnZlQmFzaXNDbG9zZWQ6KCk9PlFTdCxjdXJ2ZUJhc2lzT3BlbjooKT0+ZTN0LGN1cnZlQnVuZGxlOigpPT5uM3QsY3VydmVDYXJkaW5hbDooKT0+aTN0LGN1cnZlQ2FyZGluYWxDbG9zZWQ6KCk9Pm8zdCxjdXJ2ZUNhcmRpbmFsT3BlbjooKT0+YTN0LGN1cnZlQ2F0bXVsbFJvbTooKT0+bDN0LGN1cnZlQ2F0bXVsbFJvbUNsb3NlZDooKT0+dTN0LGN1cnZlQ2F0bXVsbFJvbU9wZW46KCk9PmYzdCxjdXJ2ZUxpbmVhcjooKT0+amgsY3VydmVMaW5lYXJDbG9zZWQ6KCk9PmQzdCxjdXJ2ZU1vbm90b25lWDooKT0+eDN0LGN1cnZlTW9ub3RvbmVZOigpPT5iM3QsY3VydmVOYXR1cmFsOigpPT5NM3QsY3VydmVTdGVwOigpPT5FM3QsY3VydmVTdGVwQWZ0ZXI6KCk9PkMzdCxjdXJ2ZVN0ZXBCZWZvcmU6KCk9PlQzdCxjdXN0b21FdmVudDooKT0+RXAsZGVzY2VuZGluZzooKT0+WjB0LGRldmlhdGlvbjooKT0+VzksZGlzcGF0Y2g6KCk9PnhzLGRyYWc6KCk9PnBiLGRyYWdEaXNhYmxlOigpPT5GbSxkcmFnRW5hYmxlOigpPT5CbSxkc3Y6KCk9Pm9qLGRzdkZvcm1hdDooKT0+WW0sZWFzZUJhY2s6KCk9Pk9MLGVhc2VCYWNrSW46KCk9Pk9ZLGVhc2VCYWNrSW5PdXQ6KCk9Pk9MLGVhc2VCYWNrT3V0OigpPT56WSxlYXNlQm91bmNlOigpPT5JXyxlYXNlQm91bmNlSW46KCk9PlJZLGVhc2VCb3VuY2VJbk91dDooKT0+TlksZWFzZUJvdW5jZU91dDooKT0+SV8sZWFzZUNpcmNsZTooKT0+TkwsZWFzZUNpcmNsZUluOigpPT5JWSxlYXNlQ2lyY2xlSW5PdXQ6KCk9Pk5MLGVhc2VDaXJjbGVPdXQ6KCk9PkxZLGVhc2VDdWJpYzooKT0+YnMsZWFzZUN1YmljSW46KCk9PnhZLGVhc2VDdWJpY0luT3V0OigpPT5icyxlYXNlQ3ViaWNPdXQ6KCk9PmJZLGVhc2VFbGFzdGljOigpPT56TCxlYXNlRWxhc3RpY0luOigpPT5IWSxlYXNlRWxhc3RpY0luT3V0OigpPT5WWSxlYXNlRWxhc3RpY091dDooKT0+ekwsZWFzZUV4cDooKT0+UkwsZWFzZUV4cEluOigpPT5BWSxlYXNlRXhwSW5PdXQ6KCk9PlJMLGVhc2VFeHBPdXQ6KCk9PlBZLGVhc2VMaW5lYXI6KCk9Pl9ZLGVhc2VQb2x5OigpPT5MTCxlYXNlUG9seUluOigpPT5TWSxlYXNlUG9seUluT3V0OigpPT5MTCxlYXNlUG9seU91dDooKT0+TVksZWFzZVF1YWQ6KCk9PklMLGVhc2VRdWFkSW46KCk9PnlZLGVhc2VRdWFkSW5PdXQ6KCk9PklMLGVhc2VRdWFkT3V0OigpPT52WSxlYXNlU2luOigpPT5rTCxlYXNlU2luSW46KCk9PkVZLGVhc2VTaW5Jbk91dDooKT0+a0wsZWFzZVNpbk91dDooKT0+VFksZW50cmllczooKT0+dTF0LGV2ZW50OigpPT5xdCxleHRlbnQ6KCk9PnNhLGZvcmNlQ2VudGVyOigpPT5XMXQsZm9yY2VDb2xsaWRlOigpPT51eHQsZm9yY2VMaW5rOigpPT5meHQsZm9yY2VNYW55Qm9keTooKT0+Z3h0LGZvcmNlUmFkaWFsOigpPT5feHQsZm9yY2VTaW11bGF0aW9uOigpPT5teHQsZm9yY2VYOigpPT55eHQsZm9yY2VZOigpPT52eHQsZm9ybWF0OigpPT54bixmb3JtYXREZWZhdWx0TG9jYWxlOigpPT5uayxmb3JtYXRMb2NhbGU6KCk9PmVrLGZvcm1hdFByZWZpeDooKT0+V0UsZm9ybWF0U3BlY2lmaWVyOigpPT5rcCxnZW9BbGJlcnM6KCk9PlVrLGdlb0FsYmVyc1VzYTooKT0+TGJ0LGdlb0FyZWE6KCk9Pk54dCxnZW9BemltdXRoYWxFcXVhbEFyZWE6KCk9PmtidCxnZW9BemltdXRoYWxFcXVhbEFyZWFSYXc6KCk9PkdrLGdlb0F6aW11dGhhbEVxdWlkaXN0YW50OigpPT5SYnQsZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnRSYXc6KCk9PldrLGdlb0JvdW5kczooKT0+VXh0LGdlb0NlbnRyb2lkOigpPT5YeHQsZ2VvQ2lyY2xlOigpPT5ReHQsZ2VvQ2xpcEFudGltZXJpZGlhbjooKT0+ZTUsZ2VvQ2xpcENpcmNsZTooKT0+QWssZ2VvQ2xpcEV4dGVudDooKT0+cmJ0LGdlb0NsaXBSZWN0YW5nbGU6KCk9Pk9wLGdlb0NvbmljQ29uZm9ybWFsOigpPT5EYnQsZ2VvQ29uaWNDb25mb3JtYWxSYXc6KCk9PmpqLGdlb0NvbmljRXF1YWxBcmVhOigpPT5ZXyxnZW9Db25pY0VxdWFsQXJlYVJhdzooKT0+V2osZ2VvQ29uaWNFcXVpZGlzdGFudDooKT0+emJ0LGdlb0NvbmljRXF1aWRpc3RhbnRSYXc6KCk9PlhqLGdlb0NvbnRhaW5zOigpPT5jYnQsZ2VvRGlzdGFuY2U6KCk9Pk5iLGdlb0VxdWFsRWFydGg6KCk9PkZidCxnZW9FcXVhbEVhcnRoUmF3OigpPT5YayxnZW9FcXVpcmVjdGFuZ3VsYXI6KCk9Pk9idCxnZW9FcXVpcmVjdGFuZ3VsYXJSYXc6KCk9PlhfLGdlb0dub21vbmljOigpPT5CYnQsZ2VvR25vbW9uaWNSYXc6KCk9PiRrLGdlb0dyYXRpY3VsZTooKT0+TmssZ2VvR3JhdGljdWxlMTA6KCk9PmZidCxnZW9JZGVudGl0eTooKT0+SGJ0LGdlb0ludGVycG9sYXRlOigpPT5wYnQsZ2VvTGVuZ3RoOigpPT5rayxnZW9NZXJjYXRvcjooKT0+TmJ0LGdlb01lcmNhdG9yUmF3OigpPT5qXyxnZW9OYXR1cmFsRWFydGgxOigpPT5WYnQsZ2VvTmF0dXJhbEVhcnRoMVJhdzooKT0+S2ssZ2VvT3J0aG9ncmFwaGljOigpPT5VYnQsZ2VvT3J0aG9ncmFwaGljUmF3OigpPT5aayxnZW9QYXRoOigpPT5UYnQsZ2VvUHJvamVjdGlvbjooKT0+U2ksZ2VvUHJvamVjdGlvbk11dGF0b3I6KCk9Pmw1LGdlb1JvdGF0aW9uOigpPT53ayxnZW9TdGVyZW9ncmFwaGljOigpPT5xYnQsZ2VvU3RlcmVvZ3JhcGhpY1JhdzooKT0+SmssZ2VvU3RyZWFtOigpPT52byxnZW9UcmFuc2Zvcm06KCk9PkNidCxnZW9UcmFuc3ZlcnNlTWVyY2F0b3I6KCk9PkdidCxnZW9UcmFuc3ZlcnNlTWVyY2F0b3JSYXc6KCk9PlFrLGdyYXk6KCk9PlN5dCxoY2w6KCk9PmdiLGhpZXJhcmNoeTooKT0+cDUsaGlzdG9ncmFtOigpPT5yX3QsaHNsOigpPT5VbSxodG1sOigpPT5xMXQsaW1hZ2U6KCk9PkgxdCxpbnRlcnBvbGF0ZTooKT0+bmMsaW50ZXJwb2xhdGVBcnJheTooKT0+RHl0LGludGVycG9sYXRlQmFzaXM6KCk9PmxMLGludGVycG9sYXRlQmFzaXNDbG9zZWQ6KCk9PmNMLGludGVycG9sYXRlQmx1ZXM6KCk9PnhTdCxpbnRlcnBvbGF0ZUJyQkc6KCk9PlF3dCxpbnRlcnBvbGF0ZUJ1R246KCk9PmxTdCxpbnRlcnBvbGF0ZUJ1UHU6KCk9PmNTdCxpbnRlcnBvbGF0ZUNpdmlkaXM6KCk9PlRTdCxpbnRlcnBvbGF0ZUNvb2w6KCk9PlBTdCxpbnRlcnBvbGF0ZUN1YmVoZWxpeDooKT0+Snl0LGludGVycG9sYXRlQ3ViZWhlbGl4RGVmYXVsdDooKT0+Q1N0LGludGVycG9sYXRlQ3ViZWhlbGl4TG9uZzooKT0+VF8saW50ZXJwb2xhdGVEYXRlOigpPT5mTCxpbnRlcnBvbGF0ZURpc2NyZXRlOigpPT5PeXQsaW50ZXJwb2xhdGVHbkJ1OigpPT51U3QsaW50ZXJwb2xhdGVHcmVlbnM6KCk9PmJTdCxpbnRlcnBvbGF0ZUdyZXlzOigpPT53U3QsaW50ZXJwb2xhdGVIY2w6KCk9PiR5dCxpbnRlcnBvbGF0ZUhjbExvbmc6KCk9Pkt5dCxpbnRlcnBvbGF0ZUhzbDooKT0+WXl0LGludGVycG9sYXRlSHNsTG9uZzooKT0+anl0LGludGVycG9sYXRlSHVlOigpPT56eXQsaW50ZXJwb2xhdGVJbmZlcm5vOigpPT5EU3QsaW50ZXJwb2xhdGVMYWI6KCk9PkVfLGludGVycG9sYXRlTWFnbWE6KCk9Pk5TdCxpbnRlcnBvbGF0ZU51bWJlcjooKT0+emksaW50ZXJwb2xhdGVOdW1iZXJBcnJheTooKT0+eWIsaW50ZXJwb2xhdGVPYmplY3Q6KCk9PnBMLGludGVycG9sYXRlT3JSZDooKT0+aFN0LGludGVycG9sYXRlT3JhbmdlczooKT0+RVN0LGludGVycG9sYXRlUFJHbjooKT0+dFN0LGludGVycG9sYXRlUGlZRzooKT0+ZVN0LGludGVycG9sYXRlUGxhc21hOigpPT5PU3QsaW50ZXJwb2xhdGVQdUJ1OigpPT5wU3QsaW50ZXJwb2xhdGVQdUJ1R246KCk9PmZTdCxpbnRlcnBvbGF0ZVB1T3I6KCk9PnJTdCxpbnRlcnBvbGF0ZVB1UmQ6KCk9PmRTdCxpbnRlcnBvbGF0ZVB1cnBsZXM6KCk9PlNTdCxpbnRlcnBvbGF0ZVJhaW5ib3c6KCk9PklTdCxpbnRlcnBvbGF0ZVJkQnU6KCk9Pm5TdCxpbnRlcnBvbGF0ZVJkR3k6KCk9PmlTdCxpbnRlcnBvbGF0ZVJkUHU6KCk9Pm1TdCxpbnRlcnBvbGF0ZVJkWWxCdTooKT0+b1N0LGludGVycG9sYXRlUmRZbEduOigpPT5hU3QsaW50ZXJwb2xhdGVSZWRzOigpPT5NU3QsaW50ZXJwb2xhdGVSZ2I6KCk9PkdtLGludGVycG9sYXRlUmdiQmFzaXM6KCk9PnVMLGludGVycG9sYXRlUmdiQmFzaXNDbG9zZWQ6KCk9Pk55dCxpbnRlcnBvbGF0ZVJvdW5kOigpPT5kTCxpbnRlcnBvbGF0ZVNpbmVib3c6KCk9PkxTdCxpbnRlcnBvbGF0ZVNwZWN0cmFsOigpPT5zU3QsaW50ZXJwb2xhdGVTdHJpbmc6KCk9PnZiLGludGVycG9sYXRlVHJhbnNmb3JtQ3NzOigpPT5fTCxpbnRlcnBvbGF0ZVRyYW5zZm9ybVN2ZzooKT0+eUwsaW50ZXJwb2xhdGVUdXJibzooKT0+a1N0LGludGVycG9sYXRlVmlyaWRpczooKT0+UlN0LGludGVycG9sYXRlV2FybTooKT0+QVN0LGludGVycG9sYXRlWWxHbjooKT0+X1N0LGludGVycG9sYXRlWWxHbkJ1OigpPT5nU3QsaW50ZXJwb2xhdGVZbE9yQnI6KCk9PnlTdCxpbnRlcnBvbGF0ZVlsT3JSZDooKT0+dlN0LGludGVycG9sYXRlWm9vbTooKT0+dkwsaW50ZXJydXB0OigpPT5odSxpbnRlcnZhbDooKT0+bnZ0LGlzb0Zvcm1hdDooKT0+Rnd0LGlzb1BhcnNlOigpPT5Cd3QsanNvbjooKT0+VjF0LGtleXM6KCk9PiRMLGxhYjooKT0+U18sbGNoOigpPT5FeXQsbGluZTooKT0+dnUsbGluZVJhZGlhbDooKT0+aSQsbGlua0hvcml6b250YWw6KCk9PldTdCxsaW5rUmFkaWFsOigpPT5qU3QsbGlua1ZlcnRpY2FsOigpPT5ZU3QsbG9jYWw6KCk9PmVMLG1hcDooKT0+SmksbWF0Y2hlcjooKT0+dWIsbWF4OigpPT5sdSxtZWFuOigpPT5vX3QsbWVkaWFuOigpPT5hX3QsbWVyZ2U6KCk9PkxtLG1pbjooKT0+a20sbW91c2U6KCk9PnpvLG5hbWVzcGFjZTooKT0+SWgsbmFtZXNwYWNlczooKT0+U0UsbmVzdDooKT0+cjF0LG5vdzooKT0+UHAscGFjazooKT0+ZDJ0LHBhY2tFbmNsb3NlOigpPT5lOCxwYWNrU2libGluZ3M6KCk9PnUydCxwYWlyczooKT0+SzB0LHBhcnRpdGlvbjooKT0+bTJ0LHBhdGg6KCk9PndzLHBlcm11dGU6KCk9PnNfdCxwaWU6KCk9PnFTdCxwaWVjZXdpc2U6KCk9PmRZLHBvaW50UmFkaWFsOigpPT5jeSxwb2x5Z29uQXJlYTooKT0+TTJ0LHBvbHlnb25DZW50cm9pZDooKT0+RTJ0LHBvbHlnb25Db250YWluczooKT0+UDJ0LHBvbHlnb25IdWxsOigpPT5BMnQscG9seWdvbkxlbmd0aDooKT0+STJ0LHByZWNpc2lvbkZpeGVkOigpPT5payxwcmVjaXNpb25QcmVmaXg6KCk9Pm9rLHByZWNpc2lvblJvdW5kOigpPT5hayxxdWFkdHJlZTooKT0+RmgscXVhbnRpbGU6KCk9PmxhLHF1YW50aXplOigpPT5ReXQscmFkaWFsQXJlYTooKT0+byQscmFkaWFsTGluZTooKT0+aSQscmFuZG9tQmF0ZXM6KCk9PlIydCxyYW5kb21FeHBvbmVudGlhbDooKT0+TjJ0LHJhbmRvbUlyd2luSGFsbDooKT0+czgscmFuZG9tTG9nTm9ybWFsOigpPT5rMnQscmFuZG9tTm9ybWFsOigpPT5hOCxyYW5kb21Vbmlmb3JtOigpPT5MMnQscmFuZ2U6KCk9PklyLHJnYjooKT0+Y3UscmliYm9uOigpPT5KdnQsc2NhbGVCYW5kOigpPT50ZyxzY2FsZURpdmVyZ2luZzooKT0+STgsc2NhbGVEaXZlcmdpbmdMb2c6KCk9PkNYLHNjYWxlRGl2ZXJnaW5nUG93OigpPT5MOCxzY2FsZURpdmVyZ2luZ1NxcnQ6KCk9PnF3dCxzY2FsZURpdmVyZ2luZ1N5bWxvZzooKT0+QVgsc2NhbGVJZGVudGl0eTooKT0+dTgsc2NhbGVJbXBsaWNpdDooKT0+bDgsc2NhbGVMaW5lYXI6KCk9PnpuLHNjYWxlTG9nOigpPT5jYyxzY2FsZU9yZGluYWw6KCk9Pmd1LHNjYWxlUG9pbnQ6KCk9PmVnLHNjYWxlUG93OigpPT5aXyxzY2FsZVF1YW50aWxlOigpPT5yZyxzY2FsZVF1YW50aXplOigpPT5xYixzY2FsZVNlcXVlbnRpYWw6KCk9PlQ4LHNjYWxlU2VxdWVudGlhbExvZzooKT0+RVgsc2NhbGVTZXF1ZW50aWFsUG93OigpPT5DOCxzY2FsZVNlcXVlbnRpYWxRdWFudGlsZTooKT0+QTgsc2NhbGVTZXF1ZW50aWFsU3FydDooKT0+VXd0LHNjYWxlU2VxdWVudGlhbFN5bWxvZzooKT0+VFgsc2NhbGVTcXJ0OigpPT5ZMnQsc2NhbGVTeW1sb2c6KCk9PmY4LHNjYWxlVGhyZXNob2xkOigpPT5wOCxzY2FsZVRpbWU6KCk9PlliLHNjYWxlVXRjOigpPT5Wd3Qsc2NhbjooKT0+bF90LHNjaGVtZUFjY2VudDooKT0+R3d0LHNjaGVtZUJsdWVzOigpPT5LWCxzY2hlbWVCckJHOigpPT5QWCxzY2hlbWVCdUduOigpPT5GWCxzY2hlbWVCdVB1OigpPT5CWCxzY2hlbWVDYXRlZ29yeTEwOigpPT5qYixzY2hlbWVEYXJrMjooKT0+V3d0LHNjaGVtZUduQnU6KCk9PkhYLHNjaGVtZUdyZWVuczooKT0+Wlgsc2NoZW1lR3JleXM6KCk9PkpYLHNjaGVtZU9yUmQ6KCk9PlZYLHNjaGVtZU9yYW5nZXM6KCk9PmUkLHNjaGVtZVBSR246KCk9PklYLHNjaGVtZVBhaXJlZDooKT0+WXd0LHNjaGVtZVBhc3RlbDE6KCk9Pmp3dCxzY2hlbWVQYXN0ZWwyOigpPT5Yd3Qsc2NoZW1lUGlZRzooKT0+TFgsc2NoZW1lUHVCdTooKT0+cVgsc2NoZW1lUHVCdUduOigpPT5VWCxzY2hlbWVQdU9yOigpPT5rWCxzY2hlbWVQdVJkOigpPT5HWCxzY2hlbWVQdXJwbGVzOigpPT5RWCxzY2hlbWVSZEJ1OigpPT5SWCxzY2hlbWVSZEd5OigpPT5OWCxzY2hlbWVSZFB1OigpPT5XWCxzY2hlbWVSZFlsQnU6KCk9PkRYLHNjaGVtZVJkWWxHbjooKT0+T1gsc2NoZW1lUmVkczooKT0+dCQsc2NoZW1lU2V0MTooKT0+JHd0LHNjaGVtZVNldDI6KCk9Pkt3dCxzY2hlbWVTZXQzOigpPT5ad3Qsc2NoZW1lU3BlY3RyYWw6KCk9PnpYLHNjaGVtZVRhYmxlYXUxMDooKT0+Snd0LHNjaGVtZVlsR246KCk9PmpYLHNjaGVtZVlsR25CdTooKT0+WVgsc2NoZW1lWWxPckJyOigpPT5YWCxzY2hlbWVZbE9yUmQ6KCk9PiRYLHNlbGVjdDooKT0+SHQsc2VsZWN0QWxsOigpPT5UcCxzZWxlY3Rpb246KCk9PkxoLHNlbGVjdG9yOigpPT5EbSxzZWxlY3RvckFsbDooKT0+Y2Isc2V0OigpPT5vMXQsc2h1ZmZsZTooKT0+Y190LHN0YWNrOigpPT5BM3Qsc3RhY2tPZmZzZXREaXZlcmdpbmc6KCk9PkkzdCxzdGFja09mZnNldEV4cGFuZDooKT0+UDN0LHN0YWNrT2Zmc2V0Tm9uZTooKT0+eHUsc3RhY2tPZmZzZXRTaWxob3VldHRlOigpPT5MM3Qsc3RhY2tPZmZzZXRXaWdnbGU6KCk9PmszdCxzdGFja09yZGVyQXBwZWFyYW5jZTooKT0+Wjgsc3RhY2tPcmRlckFzY2VuZGluZzooKT0+Sjgsc3RhY2tPcmRlckRlc2NlbmRpbmc6KCk9PlIzdCxzdGFja09yZGVySW5zaWRlT3V0OigpPT5OM3Qsc3RhY2tPcmRlck5vbmU6KCk9PmJ1LHN0YWNrT3JkZXJSZXZlcnNlOigpPT5EM3Qsc3RyYXRpZnk6KCk9PnkydCxzdHlsZTooKT0+TXAsc3VtOigpPT51X3Qsc3ZnOigpPT5HMXQsc3ltYm9sOigpPT5aU3Qsc3ltYm9sQ2lyY2xlOigpPT5rNSxzeW1ib2xDcm9zczooKT0+Qjgsc3ltYm9sRGlhbW9uZDooKT0+SDgsc3ltYm9sU3F1YXJlOigpPT5VOCxzeW1ib2xTdGFyOigpPT5WOCxzeW1ib2xUcmlhbmdsZTooKT0+cTgsc3ltYm9sV3llOigpPT5HOCxzeW1ib2xzOigpPT5LU3QsdGV4dDooKT0+T18sdGhyZXNob2xkRnJlZWRtYW5EaWFjb25pczooKT0+bl90LHRocmVzaG9sZFNjb3R0OigpPT5pX3QsdGhyZXNob2xkU3R1cmdlczooKT0+c2IsdGlja0Zvcm1hdDooKT0+YzgsdGlja0luY3JlbWVudDooKT0+Yl8sdGlja1N0ZXA6KCk9PmVsLHRpY2tzOigpPT5hYix0aW1lRGF5OigpPT5leSx0aW1lRGF5czooKT0+UTJ0LHRpbWVGb3JtYXQ6KCk9Pk01LHRpbWVGb3JtYXREZWZhdWx0TG9jYWxlOigpPT5TOCx0aW1lRm9ybWF0TG9jYWxlOigpPT5TNSx0aW1lRnJpZGF5OigpPT51WCx0aW1lRnJpZGF5czooKT0+aXd0LHRpbWVIb3VyOigpPT55OCx0aW1lSG91cnM6KCk9PloydCx0aW1lSW50ZXJ2YWw6KCk9PmJyLHRpbWVNaWxsaXNlY29uZDooKT0+Sl8sdGltZU1pbGxpc2Vjb25kczooKT0+YVgsdGltZU1pbnV0ZTooKT0+XzgsdGltZU1pbnV0ZXM6KCk9PiQydCx0aW1lTW9uZGF5OigpPT5ueSx0aW1lTW9uZGF5czooKT0+dHd0LHRpbWVNb250aDooKT0+djgsdGltZU1vbnRoczooKT0+c3d0LHRpbWVQYXJzZTooKT0+d1gsdGltZVNhdHVyZGF5OigpPT5oWCx0aW1lU2F0dXJkYXlzOigpPT5vd3QsdGltZVNlY29uZDooKT0+dHksdGltZVNlY29uZHM6KCk9PnNYLHRpbWVTdW5kYXk6KCk9Pm5nLHRpbWVTdW5kYXlzOigpPT5mWCx0aW1lVGh1cnNkYXk6KCk9PkZwLHRpbWVUaHVyc2RheXM6KCk9Pm53dCx0aW1lVHVlc2RheTooKT0+bFgsdGltZVR1ZXNkYXlzOigpPT5ld3QsdGltZVdlZG5lc2RheTooKT0+Y1gsdGltZVdlZG5lc2RheXM6KCk9PnJ3dCx0aW1lV2VlazooKT0+bmcsdGltZVdlZWtzOigpPT5mWCx0aW1lWWVhcjooKT0+V2gsdGltZVllYXJzOigpPT5sd3QsdGltZW91dDooKT0+ekUsdGltZXI6KCk9PlBfLHRpbWVyRmx1c2g6KCk9PmdZLHRvdWNoOigpPT5DcCx0b3VjaGVzOigpPT5seXQsdHJhbnNpdGlvbjooKT0+UEwsdHJhbnNwb3NlOigpPT5ZOSx0cmVlOigpPT52MnQsdHJlZW1hcDooKT0+eDJ0LHRyZWVtYXBCaW5hcnk6KCk9PmIydCx0cmVlbWFwRGljZTooKT0+cWgsdHJlZW1hcFJlc3F1YXJpZnk6KCk9PlMydCx0cmVlbWFwU2xpY2U6KCk9PlFtLHRyZWVtYXBTbGljZURpY2U6KCk9PncydCx0cmVlbWFwU3F1YXJpZnk6KCk9Pm84LHRzdjooKT0+QjF0LHRzdkZvcm1hdDooKT0+QTF0LHRzdkZvcm1hdEJvZHk6KCk9PlAxdCx0c3ZGb3JtYXRSb3c6KCk9PkwxdCx0c3ZGb3JtYXRSb3dzOigpPT5JMXQsdHN2Rm9ybWF0VmFsdWU6KCk9PmsxdCx0c3ZQYXJzZTooKT0+QWIsdHN2UGFyc2VSb3dzOigpPT5DMXQsdXRjRGF5OigpPT5peSx1dGNEYXlzOigpPT5kd3QsdXRjRm9ybWF0OigpPT5zeSx1dGNGcmlkYXk6KCk9PmdYLHV0Y0ZyaWRheXM6KCk9PnZ3dCx1dGNIb3VyOigpPT5iOCx1dGNIb3VyczooKT0+Znd0LHV0Y01pbGxpc2Vjb25kOigpPT5KXyx1dGNNaWxsaXNlY29uZHM6KCk9PmFYLHV0Y01pbnV0ZTooKT0+eDgsdXRjTWludXRlczooKT0+dXd0LHV0Y01vbmRheTooKT0+YXksdXRjTW9uZGF5czooKT0+bXd0LHV0Y01vbnRoOigpPT53OCx1dGNNb250aHM6KCk9Pnd3dCx1dGNQYXJzZTooKT0+RTUsdXRjU2F0dXJkYXk6KCk9Pl9YLHV0Y1NhdHVyZGF5czooKT0+eHd0LHV0Y1NlY29uZDooKT0+dHksdXRjU2Vjb25kczooKT0+c1gsdXRjU3VuZGF5OigpPT5pZyx1dGNTdW5kYXlzOigpPT55WCx1dGNUaHVyc2RheTooKT0+QnAsdXRjVGh1cnNkYXlzOigpPT55d3QsdXRjVHVlc2RheTooKT0+ZFgsdXRjVHVlc2RheXM6KCk9Pmd3dCx1dGNXZWRuZXNkYXk6KCk9Pm1YLHV0Y1dlZG5lc2RheXM6KCk9Pl93dCx1dGNXZWVrOigpPT5pZyx1dGNXZWVrczooKT0+eVgsdXRjWWVhcjooKT0+WWgsdXRjWWVhcnM6KCk9PlN3dCx2YWx1ZXM6KCk9PmwxdCx2YXJpYW5jZTooKT0+RzksdmVyc2lvbjooKT0+ajB0LHZvcm9ub2k6KCk9PkszdCx3aW5kb3c6KCk9PmhiLHhtbDooKT0+VTF0LHppcDooKT0+aF90LHpvb206KCk9PmVSLHpvb21JZGVudGl0eTooKT0+JGgsem9vbVRyYW5zZm9ybTooKT0+aTJ9KTt2YXIgajB0PSI1LjcuMCI7ZnVuY3Rpb24gYWEoZSx0KXtyZXR1cm4gZTx0Py0xOmU+dD8xOmU+PXQ/MDpOYU59ZnVuY3Rpb24gb2IoZSl7cmV0dXJuIGUubGVuZ3RoPT09MSYmKGU9bDJlKGUpKSx7bGVmdDpmdW5jdGlvbih0LHIsbixpKXtmb3Iobj09bnVsbCYmKG49MCksaT09bnVsbCYmKGk9dC5sZW5ndGgpO248aTspe3ZhciBvPW4raT4+PjE7ZSh0W29dLHIpPDA/bj1vKzE6aT1vfXJldHVybiBufSxyaWdodDpmdW5jdGlvbih0LHIsbixpKXtmb3Iobj09bnVsbCYmKG49MCksaT09bnVsbCYmKGk9dC5sZW5ndGgpO248aTspe3ZhciBvPW4raT4+PjE7ZSh0W29dLHIpPjA/aT1vOm49bysxfXJldHVybiBufX19ZnVuY3Rpb24gbDJlKGUpe3JldHVybiBmdW5jdGlvbih0LHIpe3JldHVybiBhYShlKHQpLHIpfX12YXIgWDB0PW9iKGFhKSxXVz1YMHQucmlnaHQsJDB0PVgwdC5sZWZ0LHZzPVdXO2Z1bmN0aW9uIEswdChlLHQpe3Q9PW51bGwmJih0PVlXKTtmb3IodmFyIHI9MCxuPWUubGVuZ3RoLTEsaT1lWzBdLG89bmV3IEFycmF5KG48MD8wOm4pO3I8bjspb1tyXT10KGksaT1lWysrcl0pO3JldHVybiBvfWZ1bmN0aW9uIFlXKGUsdCl7cmV0dXJuW2UsdF19ZnVuY3Rpb24gcTkoZSx0LHIpe3ZhciBuPWUubGVuZ3RoLGk9dC5sZW5ndGgsbz1uZXcgQXJyYXkobippKSxhLHMsbCxjO2ZvcihyPT1udWxsJiYocj1ZVyksYT1sPTA7YTxuOysrYSlmb3IoYz1lW2FdLHM9MDtzPGk7KytzLCsrbClvW2xdPXIoYyx0W3NdKTtyZXR1cm4gb31mdW5jdGlvbiBaMHQoZSx0KXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24gdGwoZSl7cmV0dXJuIGU9PT1udWxsP05hTjorZX1mdW5jdGlvbiBHOShlLHQpe3ZhciByPWUubGVuZ3RoLG49MCxpPS0xLG89MCxhLHMsbD0wO2lmKHQ9PW51bGwpZm9yKDsrK2k8cjspaXNOYU4oYT10bChlW2ldKSl8fChzPWEtbyxvKz1zLysrbixsKz1zKihhLW8pKTtlbHNlIGZvcig7KytpPHI7KWlzTmFOKGE9dGwodChlW2ldLGksZSkpKXx8KHM9YS1vLG8rPXMvKytuLGwrPXMqKGEtbykpO2lmKG4+MSlyZXR1cm4gbC8obi0xKX1mdW5jdGlvbiBXOShlLHQpe3ZhciByPUc5KGUsdCk7cmV0dXJuIHImJk1hdGguc3FydChyKX1mdW5jdGlvbiBzYShlLHQpe3ZhciByPWUubGVuZ3RoLG49LTEsaSxvLGE7aWYodD09bnVsbCl7Zm9yKDsrK248cjspaWYoKGk9ZVtuXSkhPW51bGwmJmk+PWkpZm9yKG89YT1pOysrbjxyOykoaT1lW25dKSE9bnVsbCYmKG8+aSYmKG89aSksYTxpJiYoYT1pKSl9ZWxzZSBmb3IoOysrbjxyOylpZigoaT10KGVbbl0sbixlKSkhPW51bGwmJmk+PWkpZm9yKG89YT1pOysrbjxyOykoaT10KGVbbl0sbixlKSkhPW51bGwmJihvPmkmJihvPWkpLGE8aSYmKGE9aSkpO3JldHVybltvLGFdfXZhciBKMHQ9QXJyYXkucHJvdG90eXBlLFEwdD1KMHQuc2xpY2UsdF90PUowdC5tYXA7ZnVuY3Rpb24gYkUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fWZ1bmN0aW9uIGVfdChlKXtyZXR1cm4gZX1mdW5jdGlvbiBJcihlLHQscil7ZT0rZSx0PSt0LHI9KGk9YXJndW1lbnRzLmxlbmd0aCk8Mj8odD1lLGU9MCwxKTppPDM/MTorcjtmb3IodmFyIG49LTEsaT1NYXRoLm1heCgwLE1hdGguY2VpbCgodC1lKS9yKSl8MCxvPW5ldyBBcnJheShpKTsrK248aTspb1tuXT1lK24qcjtyZXR1cm4gb312YXIgalc9TWF0aC5zcXJ0KDUwKSxYVz1NYXRoLnNxcnQoMTApLCRXPU1hdGguc3FydCgyKTtmdW5jdGlvbiBhYihlLHQscil7dmFyIG4saT0tMSxvLGEscztpZih0PSt0LGU9K2Uscj0rcixlPT09dCYmcj4wKXJldHVybltlXTtpZigobj10PGUpJiYobz1lLGU9dCx0PW8pLChzPWJfKGUsdCxyKSk9PT0wfHwhaXNGaW5pdGUocykpcmV0dXJuW107aWYocz4wKWZvcihlPU1hdGguY2VpbChlL3MpLHQ9TWF0aC5mbG9vcih0L3MpLGE9bmV3IEFycmF5KG89TWF0aC5jZWlsKHQtZSsxKSk7KytpPG87KWFbaV09KGUraSkqcztlbHNlIGZvcihlPU1hdGguZmxvb3IoZSpzKSx0PU1hdGguY2VpbCh0KnMpLGE9bmV3IEFycmF5KG89TWF0aC5jZWlsKGUtdCsxKSk7KytpPG87KWFbaV09KGUtaSkvcztyZXR1cm4gbiYmYS5yZXZlcnNlKCksYX1mdW5jdGlvbiBiXyhlLHQscil7dmFyIG49KHQtZSkvTWF0aC5tYXgoMCxyKSxpPU1hdGguZmxvb3IoTWF0aC5sb2cobikvTWF0aC5MTjEwKSxvPW4vTWF0aC5wb3coMTAsaSk7cmV0dXJuIGk+PTA/KG8+PWpXPzEwOm8+PVhXPzU6bz49JFc/MjoxKSpNYXRoLnBvdygxMCxpKTotTWF0aC5wb3coMTAsLWkpLyhvPj1qVz8xMDpvPj1YVz81Om8+PSRXPzI6MSl9ZnVuY3Rpb24gZWwoZSx0LHIpe3ZhciBuPU1hdGguYWJzKHQtZSkvTWF0aC5tYXgoMCxyKSxpPU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2cobikvTWF0aC5MTjEwKSksbz1uL2k7cmV0dXJuIG8+PWpXP2kqPTEwOm8+PVhXP2kqPTU6bz49JFcmJihpKj0yKSx0PGU/LWk6aX1mdW5jdGlvbiBzYihlKXtyZXR1cm4gTWF0aC5jZWlsKE1hdGgubG9nKGUubGVuZ3RoKS9NYXRoLkxOMikrMX1mdW5jdGlvbiByX3QoKXt2YXIgZT1lX3QsdD1zYSxyPXNiO2Z1bmN0aW9uIG4oaSl7dmFyIG8sYT1pLmxlbmd0aCxzLGw9bmV3IEFycmF5KGEpO2ZvcihvPTA7bzxhOysrbylsW29dPWUoaVtvXSxvLGkpO3ZhciBjPXQobCksdT1jWzBdLGg9Y1sxXSxmPXIobCx1LGgpO0FycmF5LmlzQXJyYXkoZil8fChmPWVsKHUsaCxmKSxmPUlyKE1hdGguY2VpbCh1L2YpKmYsaCxmKSk7Zm9yKHZhciBwPWYubGVuZ3RoO2ZbMF08PXU7KWYuc2hpZnQoKSwtLXA7Zm9yKDtmW3AtMV0+aDspZi5wb3AoKSwtLXA7dmFyIGQ9bmV3IEFycmF5KHArMSksZztmb3Iobz0wO288PXA7KytvKWc9ZFtvXT1bXSxnLngwPW8+MD9mW28tMV06dSxnLngxPW88cD9mW29dOmg7Zm9yKG89MDtvPGE7KytvKXM9bFtvXSx1PD1zJiZzPD1oJiZkW3ZzKGYscywwLHApXS5wdXNoKGlbb10pO3JldHVybiBkfXJldHVybiBuLnZhbHVlPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiBpPT0iZnVuY3Rpb24iP2k6YkUoaSksbik6ZX0sbi5kb21haW49ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9dHlwZW9mIGk9PSJmdW5jdGlvbiI/aTpiRShbaVswXSxpWzFdXSksbik6dH0sbi50aHJlc2hvbGRzPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXR5cGVvZiBpPT0iZnVuY3Rpb24iP2k6QXJyYXkuaXNBcnJheShpKT9iRShRMHQuY2FsbChpKSk6YkUoaSksbik6cn0sbn1mdW5jdGlvbiBsYShlLHQscil7aWYocj09bnVsbCYmKHI9dGwpLCEhKG49ZS5sZW5ndGgpKXtpZigodD0rdCk8PTB8fG48MilyZXR1cm4rcihlWzBdLDAsZSk7aWYodD49MSlyZXR1cm4rcihlW24tMV0sbi0xLGUpO3ZhciBuLGk9KG4tMSkqdCxvPU1hdGguZmxvb3IoaSksYT0rcihlW29dLG8sZSkscz0rcihlW28rMV0sbysxLGUpO3JldHVybiBhKyhzLWEpKihpLW8pfX1mdW5jdGlvbiBuX3QoZSx0LHIpe3JldHVybiBlPXRfdC5jYWxsKGUsdGwpLnNvcnQoYWEpLE1hdGguY2VpbCgoci10KS8oMioobGEoZSwuNzUpLWxhKGUsLjI1KSkqTWF0aC5wb3coZS5sZW5ndGgsLTEvMykpKX1mdW5jdGlvbiBpX3QoZSx0LHIpe3JldHVybiBNYXRoLmNlaWwoKHItdCkvKDMuNSpXOShlKSpNYXRoLnBvdyhlLmxlbmd0aCwtMS8zKSkpfWZ1bmN0aW9uIGx1KGUsdCl7dmFyIHI9ZS5sZW5ndGgsbj0tMSxpLG87aWYodD09bnVsbCl7Zm9yKDsrK248cjspaWYoKGk9ZVtuXSkhPW51bGwmJmk+PWkpZm9yKG89aTsrK248cjspKGk9ZVtuXSkhPW51bGwmJmk+byYmKG89aSl9ZWxzZSBmb3IoOysrbjxyOylpZigoaT10KGVbbl0sbixlKSkhPW51bGwmJmk+PWkpZm9yKG89aTsrK248cjspKGk9dChlW25dLG4sZSkpIT1udWxsJiZpPm8mJihvPWkpO3JldHVybiBvfWZ1bmN0aW9uIG9fdChlLHQpe3ZhciByPWUubGVuZ3RoLG49cixpPS0xLG8sYT0wO2lmKHQ9PW51bGwpZm9yKDsrK2k8cjspaXNOYU4obz10bChlW2ldKSk/LS1uOmErPW87ZWxzZSBmb3IoOysraTxyOylpc05hTihvPXRsKHQoZVtpXSxpLGUpKSk/LS1uOmErPW87aWYobilyZXR1cm4gYS9ufWZ1bmN0aW9uIGFfdChlLHQpe3ZhciByPWUubGVuZ3RoLG49LTEsaSxvPVtdO2lmKHQ9PW51bGwpZm9yKDsrK248cjspaXNOYU4oaT10bChlW25dKSl8fG8ucHVzaChpKTtlbHNlIGZvcig7KytuPHI7KWlzTmFOKGk9dGwodChlW25dLG4sZSkpKXx8by5wdXNoKGkpO3JldHVybiBsYShvLnNvcnQoYWEpLC41KX1mdW5jdGlvbiBMbShlKXtmb3IodmFyIHQ9ZS5sZW5ndGgscixuPS0xLGk9MCxvLGE7KytuPHQ7KWkrPWVbbl0ubGVuZ3RoO2ZvcihvPW5ldyBBcnJheShpKTstLXQ+PTA7KWZvcihhPWVbdF0scj1hLmxlbmd0aDstLXI+PTA7KW9bLS1pXT1hW3JdO3JldHVybiBvfWZ1bmN0aW9uIGttKGUsdCl7dmFyIHI9ZS5sZW5ndGgsbj0tMSxpLG87aWYodD09bnVsbCl7Zm9yKDsrK248cjspaWYoKGk9ZVtuXSkhPW51bGwmJmk+PWkpZm9yKG89aTsrK248cjspKGk9ZVtuXSkhPW51bGwmJm8+aSYmKG89aSl9ZWxzZSBmb3IoOysrbjxyOylpZigoaT10KGVbbl0sbixlKSkhPW51bGwmJmk+PWkpZm9yKG89aTsrK248cjspKGk9dChlW25dLG4sZSkpIT1udWxsJiZvPmkmJihvPWkpO3JldHVybiBvfWZ1bmN0aW9uIHNfdChlLHQpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPW5ldyBBcnJheShyKTtyLS07KW5bcl09ZVt0W3JdXTtyZXR1cm4gbn1mdW5jdGlvbiBsX3QoZSx0KXtpZighIShyPWUubGVuZ3RoKSl7dmFyIHIsbj0wLGk9MCxvLGE9ZVtpXTtmb3IodD09bnVsbCYmKHQ9YWEpOysrbjxyOykodChvPWVbbl0sYSk8MHx8dChhLGEpIT09MCkmJihhPW8saT1uKTtpZih0KGEsYSk9PT0wKXJldHVybiBpfX1mdW5jdGlvbiBjX3QoZSx0LHIpe2Zvcih2YXIgbj0ocj09bnVsbD9lLmxlbmd0aDpyKS0odD10PT1udWxsPzA6K3QpLGksbztuOylvPU1hdGgucmFuZG9tKCkqbi0tfDAsaT1lW24rdF0sZVtuK3RdPWVbbyt0XSxlW28rdF09aTtyZXR1cm4gZX1mdW5jdGlvbiB1X3QoZSx0KXt2YXIgcj1lLmxlbmd0aCxuPS0xLGksbz0wO2lmKHQ9PW51bGwpZm9yKDsrK248cjspKGk9K2Vbbl0pJiYobys9aSk7ZWxzZSBmb3IoOysrbjxyOykoaT0rdChlW25dLG4sZSkpJiYobys9aSk7cmV0dXJuIG99ZnVuY3Rpb24gWTkoZSl7aWYoIShvPWUubGVuZ3RoKSlyZXR1cm5bXTtmb3IodmFyIHQ9LTEscj1rbShlLGMyZSksbj1uZXcgQXJyYXkocik7Kyt0PHI7KWZvcih2YXIgaT0tMSxvLGE9blt0XT1uZXcgQXJyYXkobyk7KytpPG87KWFbaV09ZVtpXVt0XTtyZXR1cm4gbn1mdW5jdGlvbiBjMmUoZSl7cmV0dXJuIGUubGVuZ3RofWZ1bmN0aW9uIGhfdCgpe3JldHVybiBZOShhcmd1bWVudHMpfXZhciBqOT1BcnJheS5wcm90b3R5cGUuc2xpY2U7ZnVuY3Rpb24gZl90KGUpe3JldHVybiBlfXZhciBYOT0xLCQ5PTIsS1c9Myx3RT00LHBfdD0xZS02O2Z1bmN0aW9uIHUyZShlKXtyZXR1cm4idHJhbnNsYXRlKCIrKGUrLjUpKyIsMCkifWZ1bmN0aW9uIGgyZShlKXtyZXR1cm4idHJhbnNsYXRlKDAsIisoZSsuNSkrIikifWZ1bmN0aW9uIGYyZShlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuK2UodCl9fWZ1bmN0aW9uIHAyZShlKXt2YXIgdD1NYXRoLm1heCgwLGUuYmFuZHdpZHRoKCktMSkvMjtyZXR1cm4gZS5yb3VuZCgpJiYodD1NYXRoLnJvdW5kKHQpKSxmdW5jdGlvbihyKXtyZXR1cm4rZShyKSt0fX1mdW5jdGlvbiBkMmUoKXtyZXR1cm4hdGhpcy5fX2F4aXN9ZnVuY3Rpb24gSzkoZSx0KXt2YXIgcj1bXSxuPW51bGwsaT1udWxsLG89NixhPTYscz0zLGw9ZT09PVg5fHxlPT09d0U/LTE6MSxjPWU9PT13RXx8ZT09PSQ5PyJ4IjoieSIsdT1lPT09WDl8fGU9PT1LVz91MmU6aDJlO2Z1bmN0aW9uIGgoZil7dmFyIHA9bj09bnVsbD90LnRpY2tzP3QudGlja3MuYXBwbHkodCxyKTp0LmRvbWFpbigpOm4sZD1pPT1udWxsP3QudGlja0Zvcm1hdD90LnRpY2tGb3JtYXQuYXBwbHkodCxyKTpmX3Q6aSxnPU1hdGgubWF4KG8sMCkrcyxfPXQucmFuZ2UoKSx5PStfWzBdKy41LHg9K19bXy5sZW5ndGgtMV0rLjUsYj0odC5iYW5kd2lkdGg/cDJlOmYyZSkodC5jb3B5KCkpLFM9Zi5zZWxlY3Rpb24/Zi5zZWxlY3Rpb24oKTpmLEM9Uy5zZWxlY3RBbGwoIi5kb21haW4iKS5kYXRhKFtudWxsXSksUD1TLnNlbGVjdEFsbCgiLnRpY2siKS5kYXRhKHAsdCkub3JkZXIoKSxrPVAuZXhpdCgpLE89UC5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwidGljayIpLEQ9UC5zZWxlY3QoImxpbmUiKSxCPVAuc2VsZWN0KCJ0ZXh0Iik7Qz1DLm1lcmdlKEMuZW50ZXIoKS5pbnNlcnQoInBhdGgiLCIudGljayIpLmF0dHIoImNsYXNzIiwiZG9tYWluIikuYXR0cigic3Ryb2tlIiwiY3VycmVudENvbG9yIikpLFA9UC5tZXJnZShPKSxEPUQubWVyZ2UoTy5hcHBlbmQoImxpbmUiKS5hdHRyKCJzdHJva2UiLCJjdXJyZW50Q29sb3IiKS5hdHRyKGMrIjIiLGwqbykpLEI9Qi5tZXJnZShPLmFwcGVuZCgidGV4dCIpLmF0dHIoImZpbGwiLCJjdXJyZW50Q29sb3IiKS5hdHRyKGMsbCpnKS5hdHRyKCJkeSIsZT09PVg5PyIwZW0iOmU9PT1LVz8iMC43MWVtIjoiMC4zMmVtIikpLGYhPT1TJiYoQz1DLnRyYW5zaXRpb24oZiksUD1QLnRyYW5zaXRpb24oZiksRD1ELnRyYW5zaXRpb24oZiksQj1CLnRyYW5zaXRpb24oZiksaz1rLnRyYW5zaXRpb24oZikuYXR0cigib3BhY2l0eSIscF90KS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKEkpe3JldHVybiBpc0Zpbml0ZShJPWIoSSkpP3UoSSk6dGhpcy5nZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIpfSksTy5hdHRyKCJvcGFjaXR5IixwX3QpLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24oSSl7dmFyIEw9dGhpcy5wYXJlbnROb2RlLl9fYXhpcztyZXR1cm4gdShMJiZpc0Zpbml0ZShMPUwoSSkpP0w6YihJKSl9KSksay5yZW1vdmUoKSxDLmF0dHIoImQiLGU9PT13RXx8ZT09JDk/YT8iTSIrbCphKyIsIit5KyJIMC41ViIreCsiSCIrbCphOiJNMC41LCIreSsiViIreDphPyJNIit5KyIsIitsKmErIlYwLjVIIit4KyJWIitsKmE6Ik0iK3krIiwwLjVIIit4KSxQLmF0dHIoIm9wYWNpdHkiLDEpLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24oSSl7cmV0dXJuIHUoYihJKSl9KSxELmF0dHIoYysiMiIsbCpvKSxCLmF0dHIoYyxsKmcpLnRleHQoZCksUy5maWx0ZXIoZDJlKS5hdHRyKCJmaWxsIiwibm9uZSIpLmF0dHIoImZvbnQtc2l6ZSIsMTApLmF0dHIoImZvbnQtZmFtaWx5Iiwic2Fucy1zZXJpZiIpLmF0dHIoInRleHQtYW5jaG9yIixlPT09JDk/InN0YXJ0IjplPT09d0U/ImVuZCI6Im1pZGRsZSIpLFMuZWFjaChmdW5jdGlvbigpe3RoaXMuX19heGlzPWJ9KX1yZXR1cm4gaC5zY2FsZT1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1mLGgpOnR9LGgudGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gcj1qOS5jYWxsKGFyZ3VtZW50cyksaH0saC50aWNrQXJndW1lbnRzPWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPWY9PW51bGw/W106ajkuY2FsbChmKSxoKTpyLnNsaWNlKCl9LGgudGlja1ZhbHVlcz1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1mPT1udWxsP251bGw6ajkuY2FsbChmKSxoKTpuJiZuLnNsaWNlKCl9LGgudGlja0Zvcm1hdD1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1mLGgpOml9LGgudGlja1NpemU9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89YT0rZixoKTpvfSxoLnRpY2tTaXplSW5uZXI9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K2YsaCk6b30saC50aWNrU2l6ZU91dGVyPWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPStmLGgpOmF9LGgudGlja1BhZGRpbmc9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9K2YsaCk6c30saH1mdW5jdGlvbiBkX3QoZSl7cmV0dXJuIEs5KFg5LGUpfWZ1bmN0aW9uIG1fdChlKXtyZXR1cm4gSzkoJDksZSl9ZnVuY3Rpb24gWjkoZSl7cmV0dXJuIEs5KEtXLGUpfWZ1bmN0aW9uIGxiKGUpe3JldHVybiBLOSh3RSxlKX1SbSgpO1JtKCk7dmFyIFE5PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIixTRT17c3ZnOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIseGh0bWw6UTkseGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8ifTtmdW5jdGlvbiBJaChlKXt2YXIgdD1lKz0iIixyPXQuaW5kZXhPZigiOiIpO3JldHVybiByPj0wJiYodD1lLnNsaWNlKDAscikpIT09InhtbG5zIiYmKGU9ZS5zbGljZShyKzEpKSxTRS5oYXNPd25Qcm9wZXJ0eSh0KT97c3BhY2U6U0VbdF0sbG9jYWw6ZX06ZX1mdW5jdGlvbiB5MmUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vd25lckRvY3VtZW50LHI9dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIHI9PT1ROSYmdC5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09UTk/dC5jcmVhdGVFbGVtZW50KGUpOnQuY3JlYXRlRWxlbWVudE5TKHIsZSl9fWZ1bmN0aW9uIHYyZShlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhlLnNwYWNlLGUubG9jYWwpfX1mdW5jdGlvbiBObShlKXt2YXIgdD1JaChlKTtyZXR1cm4odC5sb2NhbD92MmU6eTJlKSh0KX1mdW5jdGlvbiB4MmUoKXt9ZnVuY3Rpb24gRG0oZSl7cmV0dXJuIGU9PW51bGw/eDJlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvcihlKX19ZnVuY3Rpb24gdl90KGUpe3R5cGVvZiBlIT0iZnVuY3Rpb24iJiYoZT1EbShlKSk7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxyPXQubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPHI7KytpKWZvcih2YXIgbz10W2ldLGE9by5sZW5ndGgscz1uW2ldPW5ldyBBcnJheShhKSxsLGMsdT0wO3U8YTsrK3UpKGw9b1t1XSkmJihjPWUuY2FsbChsLGwuX19kYXRhX18sdSxvKSkmJigiX19kYXRhX18iaW4gbCYmKGMuX19kYXRhX189bC5fX2RhdGFfXyksc1t1XT1jKTtyZXR1cm4gbmV3IERuKG4sdGhpcy5fcGFyZW50cyl9ZnVuY3Rpb24gYjJlKCl7cmV0dXJuW119ZnVuY3Rpb24gY2IoZSl7cmV0dXJuIGU9PW51bGw/YjJlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbChlKX19ZnVuY3Rpb24geF90KGUpe3R5cGVvZiBlIT0iZnVuY3Rpb24iJiYoZT1jYihlKSk7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxyPXQubGVuZ3RoLG49W10saT1bXSxvPTA7bzxyOysrbylmb3IodmFyIGE9dFtvXSxzPWEubGVuZ3RoLGwsYz0wO2M8czsrK2MpKGw9YVtjXSkmJihuLnB1c2goZS5jYWxsKGwsbC5fX2RhdGFfXyxjLGEpKSxpLnB1c2gobCkpO3JldHVybiBuZXcgRG4obixpKX1mdW5jdGlvbiB1YihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaGVzKGUpfX1mdW5jdGlvbiBiX3QoZSl7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPXViKGUpKTtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLHI9dC5sZW5ndGgsbj1uZXcgQXJyYXkociksaT0wO2k8cjsrK2kpZm9yKHZhciBvPXRbaV0sYT1vLmxlbmd0aCxzPW5baV09W10sbCxjPTA7YzxhOysrYykobD1vW2NdKSYmZS5jYWxsKGwsbC5fX2RhdGFfXyxjLG8pJiZzLnB1c2gobCk7cmV0dXJuIG5ldyBEbihuLHRoaXMuX3BhcmVudHMpfWZ1bmN0aW9uIHRMKGUpe3JldHVybiBuZXcgQXJyYXkoZS5sZW5ndGgpfWZ1bmN0aW9uIHdfdCgpe3JldHVybiBuZXcgRG4odGhpcy5fZW50ZXJ8fHRoaXMuX2dyb3Vwcy5tYXAodEwpLHRoaXMuX3BhcmVudHMpfWZ1bmN0aW9uIE1FKGUsdCl7dGhpcy5vd25lckRvY3VtZW50PWUub3duZXJEb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSST1lLm5hbWVzcGFjZVVSSSx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcGFyZW50PWUsdGhpcy5fX2RhdGFfXz10fU1FLnByb3RvdHlwZT17Y29uc3RydWN0b3I6TUUsYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUoZSx0aGlzLl9uZXh0KX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUoZSx0KX0scXVlcnlTZWxlY3RvcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3IoZSl9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKGUpfX07ZnVuY3Rpb24gU190KGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX12YXIgTV90PSIkIjtmdW5jdGlvbiB3MmUoZSx0LHIsbixpLG8pe2Zvcih2YXIgYT0wLHMsbD10Lmxlbmd0aCxjPW8ubGVuZ3RoO2E8YzsrK2EpKHM9dFthXSk/KHMuX19kYXRhX189b1thXSxuW2FdPXMpOnJbYV09bmV3IE1FKGUsb1thXSk7Zm9yKDthPGw7KythKShzPXRbYV0pJiYoaVthXT1zKX1mdW5jdGlvbiBTMmUoZSx0LHIsbixpLG8sYSl7dmFyIHMsbCxjPXt9LHU9dC5sZW5ndGgsaD1vLmxlbmd0aCxmPW5ldyBBcnJheSh1KSxwO2ZvcihzPTA7czx1OysrcykobD10W3NdKSYmKGZbc109cD1NX3QrYS5jYWxsKGwsbC5fX2RhdGFfXyxzLHQpLHAgaW4gYz9pW3NdPWw6Y1twXT1sKTtmb3Iocz0wO3M8aDsrK3MpcD1NX3QrYS5jYWxsKGUsb1tzXSxzLG8pLChsPWNbcF0pPyhuW3NdPWwsbC5fX2RhdGFfXz1vW3NdLGNbcF09bnVsbCk6cltzXT1uZXcgTUUoZSxvW3NdKTtmb3Iocz0wO3M8dTsrK3MpKGw9dFtzXSkmJmNbZltzXV09PT1sJiYoaVtzXT1sKX1mdW5jdGlvbiBFX3QoZSx0KXtpZighZSlyZXR1cm4gcD1uZXcgQXJyYXkodGhpcy5zaXplKCkpLGM9LTEsdGhpcy5lYWNoKGZ1bmN0aW9uKFApe3BbKytjXT1QfSkscDt2YXIgcj10P1MyZTp3MmUsbj10aGlzLl9wYXJlbnRzLGk9dGhpcy5fZ3JvdXBzO3R5cGVvZiBlIT0iZnVuY3Rpb24iJiYoZT1TX3QoZSkpO2Zvcih2YXIgbz1pLmxlbmd0aCxhPW5ldyBBcnJheShvKSxzPW5ldyBBcnJheShvKSxsPW5ldyBBcnJheShvKSxjPTA7YzxvOysrYyl7dmFyIHU9bltjXSxoPWlbY10sZj1oLmxlbmd0aCxwPWUuY2FsbCh1LHUmJnUuX19kYXRhX18sYyxuKSxkPXAubGVuZ3RoLGc9c1tjXT1uZXcgQXJyYXkoZCksXz1hW2NdPW5ldyBBcnJheShkKSx5PWxbY109bmV3IEFycmF5KGYpO3IodSxoLGcsXyx5LHAsdCk7Zm9yKHZhciB4PTAsYj0wLFMsQzt4PGQ7Kyt4KWlmKFM9Z1t4XSl7Zm9yKHg+PWImJihiPXgrMSk7IShDPV9bYl0pJiYrK2I8ZDspO1MuX25leHQ9Q3x8bnVsbH19cmV0dXJuIGE9bmV3IERuKGEsbiksYS5fZW50ZXI9cyxhLl9leGl0PWwsYX1mdW5jdGlvbiBUX3QoKXtyZXR1cm4gbmV3IERuKHRoaXMuX2V4aXR8fHRoaXMuX2dyb3Vwcy5tYXAodEwpLHRoaXMuX3BhcmVudHMpfWZ1bmN0aW9uIENfdChlLHQscil7dmFyIG49dGhpcy5lbnRlcigpLGk9dGhpcyxvPXRoaXMuZXhpdCgpO3JldHVybiBuPXR5cGVvZiBlPT0iZnVuY3Rpb24iP2Uobik6bi5hcHBlbmQoZSsiIiksdCE9bnVsbCYmKGk9dChpKSkscj09bnVsbD9vLnJlbW92ZSgpOnIobyksbiYmaT9uLm1lcmdlKGkpLm9yZGVyKCk6aX1mdW5jdGlvbiBBX3QoZSl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxyPWUuX2dyb3VwcyxuPXQubGVuZ3RoLGk9ci5sZW5ndGgsbz1NYXRoLm1pbihuLGkpLGE9bmV3IEFycmF5KG4pLHM9MDtzPG87KytzKWZvcih2YXIgbD10W3NdLGM9cltzXSx1PWwubGVuZ3RoLGg9YVtzXT1uZXcgQXJyYXkodSksZixwPTA7cDx1OysrcCkoZj1sW3BdfHxjW3BdKSYmKGhbcF09Zik7Zm9yKDtzPG47KytzKWFbc109dFtzXTtyZXR1cm4gbmV3IERuKGEsdGhpcy5fcGFyZW50cyl9ZnVuY3Rpb24gUF90KCl7Zm9yKHZhciBlPXRoaXMuX2dyb3Vwcyx0PS0xLHI9ZS5sZW5ndGg7Kyt0PHI7KWZvcih2YXIgbj1lW3RdLGk9bi5sZW5ndGgtMSxvPW5baV0sYTstLWk+PTA7KShhPW5baV0pJiYobyYmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihvKV40JiZvLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsbyksbz1hKTtyZXR1cm4gdGhpc31mdW5jdGlvbiBJX3QoZSl7ZXx8KGU9TTJlKTtmdW5jdGlvbiB0KGgsZil7cmV0dXJuIGgmJmY/ZShoLl9fZGF0YV9fLGYuX19kYXRhX18pOiFoLSFmfWZvcih2YXIgcj10aGlzLl9ncm91cHMsbj1yLmxlbmd0aCxpPW5ldyBBcnJheShuKSxvPTA7bzxuOysrbyl7Zm9yKHZhciBhPXJbb10scz1hLmxlbmd0aCxsPWlbb109bmV3IEFycmF5KHMpLGMsdT0wO3U8czsrK3UpKGM9YVt1XSkmJihsW3VdPWMpO2wuc29ydCh0KX1yZXR1cm4gbmV3IERuKGksdGhpcy5fcGFyZW50cykub3JkZXIoKX1mdW5jdGlvbiBNMmUoZSx0KXtyZXR1cm4gZTx0Py0xOmU+dD8xOmU+PXQ/MDpOYU59ZnVuY3Rpb24gTF90KCl7dmFyIGU9YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyxlLmFwcGx5KG51bGwsYXJndW1lbnRzKSx0aGlzfWZ1bmN0aW9uIGtfdCgpe3ZhciBlPW5ldyBBcnJheSh0aGlzLnNpemUoKSksdD0tMTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZVsrK3RdPXRoaXN9KSxlfWZ1bmN0aW9uIFJfdCgpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsdD0wLHI9ZS5sZW5ndGg7dDxyOysrdClmb3IodmFyIG49ZVt0XSxpPTAsbz1uLmxlbmd0aDtpPG87KytpKXt2YXIgYT1uW2ldO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9ZnVuY3Rpb24gTl90KCl7dmFyIGU9MDtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7KytlfSksZX1mdW5jdGlvbiBEX3QoKXtyZXR1cm4hdGhpcy5ub2RlKCl9ZnVuY3Rpb24gT190KGUpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMscj0wLG49dC5sZW5ndGg7cjxuOysrcilmb3IodmFyIGk9dFtyXSxvPTAsYT1pLmxlbmd0aCxzO288YTsrK28pKHM9aVtvXSkmJmUuY2FsbChzLHMuX19kYXRhX18sbyxpKTtyZXR1cm4gdGhpc31mdW5jdGlvbiBFMmUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUoZSl9fWZ1bmN0aW9uIFQyZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCl9fWZ1bmN0aW9uIEMyZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKGUsdCl9fWZ1bmN0aW9uIEEyZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsLHQpfX1mdW5jdGlvbiBQMmUoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyPT1udWxsP3RoaXMucmVtb3ZlQXR0cmlidXRlKGUpOnRoaXMuc2V0QXR0cmlidXRlKGUscil9fWZ1bmN0aW9uIEkyZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciByPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3I9PW51bGw/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsLHIpfX1mdW5jdGlvbiB6X3QoZSx0KXt2YXIgcj1JaChlKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBuPXRoaXMubm9kZSgpO3JldHVybiByLmxvY2FsP24uZ2V0QXR0cmlidXRlTlMoci5zcGFjZSxyLmxvY2FsKTpuLmdldEF0dHJpYnV0ZShyKX1yZXR1cm4gdGhpcy5lYWNoKCh0PT1udWxsP3IubG9jYWw/VDJlOkUyZTp0eXBlb2YgdD09ImZ1bmN0aW9uIj9yLmxvY2FsP0kyZTpQMmU6ci5sb2NhbD9BMmU6QzJlKShyLHQpKX1mdW5jdGlvbiBoYihlKXtyZXR1cm4gZS5vd25lckRvY3VtZW50JiZlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fGUuZG9jdW1lbnQmJmV8fGUuZGVmYXVsdFZpZXd9ZnVuY3Rpb24gTDJlKGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoZSl9fWZ1bmN0aW9uIGsyZShlLHQscil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eShlLHQscil9fWZ1bmN0aW9uIFIyZShlLHQscil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bj09bnVsbD90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KGUpOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkoZSxuLHIpfX1mdW5jdGlvbiBGX3QoZSx0LHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKCh0PT1udWxsP0wyZTp0eXBlb2YgdD09ImZ1bmN0aW9uIj9SMmU6azJlKShlLHQscj09bnVsbD8iIjpyKSk6TXAodGhpcy5ub2RlKCksZSl9ZnVuY3Rpb24gTXAoZSx0KXtyZXR1cm4gZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHQpfHxoYihlKS5nZXRDb21wdXRlZFN0eWxlKGUsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSh0KX1mdW5jdGlvbiBOMmUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbZV19fWZ1bmN0aW9uIEQyZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXNbZV09dH19ZnVuY3Rpb24gTzJlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cj09bnVsbD9kZWxldGUgdGhpc1tlXTp0aGlzW2VdPXJ9fWZ1bmN0aW9uIEJfdChlLHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKCh0PT1udWxsP04yZTp0eXBlb2YgdD09ImZ1bmN0aW9uIj9PMmU6RDJlKShlLHQpKTp0aGlzLm5vZGUoKVtlXX1mdW5jdGlvbiBIX3QoZSl7cmV0dXJuIGUudHJpbSgpLnNwbGl0KC9efFxzKy8pfWZ1bmN0aW9uIFpXKGUpe3JldHVybiBlLmNsYXNzTGlzdHx8bmV3IFZfdChlKX1mdW5jdGlvbiBWX3QoZSl7dGhpcy5fbm9kZT1lLHRoaXMuX25hbWVzPUhfdChlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfVZfdC5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9uYW1lcy5pbmRleE9mKGUpO3Q8MCYmKHRoaXMuX25hbWVzLnB1c2goZSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0scmVtb3ZlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX25hbWVzLmluZGV4T2YoZSk7dD49MCYmKHRoaXMuX25hbWVzLnNwbGljZSh0LDEpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LGNvbnRhaW5zOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9uYW1lcy5pbmRleE9mKGUpPj0wfX07ZnVuY3Rpb24gVV90KGUsdCl7Zm9yKHZhciByPVpXKGUpLG49LTEsaT10Lmxlbmd0aDsrK248aTspci5hZGQodFtuXSl9ZnVuY3Rpb24gcV90KGUsdCl7Zm9yKHZhciByPVpXKGUpLG49LTEsaT10Lmxlbmd0aDsrK248aTspci5yZW1vdmUodFtuXSl9ZnVuY3Rpb24gejJlKGUpe3JldHVybiBmdW5jdGlvbigpe1VfdCh0aGlzLGUpfX1mdW5jdGlvbiBGMmUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cV90KHRoaXMsZSl9fWZ1bmN0aW9uIEIyZShlLHQpe3JldHVybiBmdW5jdGlvbigpeyh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKT9VX3Q6cV90KSh0aGlzLGUpfX1mdW5jdGlvbiBHX3QoZSx0KXt2YXIgcj1IX3QoZSsiIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodmFyIG49WlcodGhpcy5ub2RlKCkpLGk9LTEsbz1yLmxlbmd0aDsrK2k8bzspaWYoIW4uY29udGFpbnMocltpXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgodHlwZW9mIHQ9PSJmdW5jdGlvbiI/QjJlOnQ/ejJlOkYyZSkocix0KSl9ZnVuY3Rpb24gSDJlKCl7dGhpcy50ZXh0Q29udGVudD0iIn1mdW5jdGlvbiBWMmUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD1lfX1mdW5jdGlvbiBVMmUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50ZXh0Q29udGVudD10PT1udWxsPyIiOnR9fWZ1bmN0aW9uIFdfdChlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goZT09bnVsbD9IMmU6KHR5cGVvZiBlPT0iZnVuY3Rpb24iP1UyZTpWMmUpKGUpKTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH1mdW5jdGlvbiBxMmUoKXt0aGlzLmlubmVySFRNTD0iIn1mdW5jdGlvbiBHMmUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9ZX19ZnVuY3Rpb24gVzJlKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPXQ9PW51bGw/IiI6dH19ZnVuY3Rpb24gWV90KGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChlPT1udWxsP3EyZToodHlwZW9mIGU9PSJmdW5jdGlvbiI/VzJlOkcyZSkoZSkpOnRoaXMubm9kZSgpLmlubmVySFRNTH1mdW5jdGlvbiBZMmUoKXt0aGlzLm5leHRTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcyl9ZnVuY3Rpb24gal90KCl7cmV0dXJuIHRoaXMuZWFjaChZMmUpfWZ1bmN0aW9uIGoyZSgpe3RoaXMucHJldmlvdXNTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsdGhpcy5wYXJlbnROb2RlLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIFhfdCgpe3JldHVybiB0aGlzLmVhY2goajJlKX1mdW5jdGlvbiAkX3QoZSl7dmFyIHQ9dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTpObShlKTtyZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZCh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KX1mdW5jdGlvbiBYMmUoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBLX3QoZSx0KXt2YXIgcj10eXBlb2YgZT09ImZ1bmN0aW9uIj9lOk5tKGUpLG49dD09bnVsbD9YMmU6dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDpEbSh0KTtyZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUoci5hcHBseSh0aGlzLGFyZ3VtZW50cyksbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSl9ZnVuY3Rpb24gJDJlKCl7dmFyIGU9dGhpcy5wYXJlbnROb2RlO2UmJmUucmVtb3ZlQ2hpbGQodGhpcyl9ZnVuY3Rpb24gWl90KCl7cmV0dXJuIHRoaXMuZWFjaCgkMmUpfWZ1bmN0aW9uIEsyZSgpe3ZhciBlPXRoaXMuY2xvbmVOb2RlKCExKSx0PXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gdD90Lmluc2VydEJlZm9yZShlLHRoaXMubmV4dFNpYmxpbmcpOmV9ZnVuY3Rpb24gWjJlKCl7dmFyIGU9dGhpcy5jbG9uZU5vZGUoITApLHQ9dGhpcy5wYXJlbnROb2RlO3JldHVybiB0P3QuaW5zZXJ0QmVmb3JlKGUsdGhpcy5uZXh0U2libGluZyk6ZX1mdW5jdGlvbiBKX3QoZSl7cmV0dXJuIHRoaXMuc2VsZWN0KGU/WjJlOksyZSl9ZnVuY3Rpb24gUV90KGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoIl9fZGF0YV9fIixlKTp0aGlzLm5vZGUoKS5fX2RhdGFfX312YXIgZXl0PXt9LHF0PW51bGw7dHlwZW9mIGRvY3VtZW50IT0idW5kZWZpbmVkIiYmKHR5dD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIm9ubW91c2VlbnRlciJpbiB0eXR8fChleXQ9e21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSkpO3ZhciB0eXQ7ZnVuY3Rpb24gSjJlKGUsdCxyKXtyZXR1cm4gZT1yeXQoZSx0LHIpLGZ1bmN0aW9uKG4pe3ZhciBpPW4ucmVsYXRlZFRhcmdldDsoIWl8fGkhPT10aGlzJiYhKGkuY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcykmOCkpJiZlLmNhbGwodGhpcyxuKX19ZnVuY3Rpb24gcnl0KGUsdCxyKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGk9cXQ7cXQ9bjt0cnl7ZS5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyx0LHIpfWZpbmFsbHl7cXQ9aX19fWZ1bmN0aW9uIFEyZShlKXtyZXR1cm4gZS50cmltKCkuc3BsaXQoL158XHMrLykubWFwKGZ1bmN0aW9uKHQpe3ZhciByPSIiLG49dC5pbmRleE9mKCIuIik7cmV0dXJuIG4+PTAmJihyPXQuc2xpY2UobisxKSx0PXQuc2xpY2UoMCxuKSkse3R5cGU6dCxuYW1lOnJ9fSl9ZnVuY3Rpb24gdHdlKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMuX19vbjtpZighIXQpe2Zvcih2YXIgcj0wLG49LTEsaT10Lmxlbmd0aCxvO3I8aTsrK3Ipbz10W3JdLCghZS50eXBlfHxvLnR5cGU9PT1lLnR5cGUpJiZvLm5hbWU9PT1lLm5hbWU/dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKG8udHlwZSxvLmxpc3RlbmVyLG8uY2FwdHVyZSk6dFsrK25dPW87KytuP3QubGVuZ3RoPW46ZGVsZXRlIHRoaXMuX19vbn19fWZ1bmN0aW9uIGV3ZShlLHQscil7dmFyIG49ZXl0Lmhhc093blByb3BlcnR5KGUudHlwZSk/SjJlOnJ5dDtyZXR1cm4gZnVuY3Rpb24oaSxvLGEpe3ZhciBzPXRoaXMuX19vbixsLGM9bih0LG8sYSk7aWYocyl7Zm9yKHZhciB1PTAsaD1zLmxlbmd0aDt1PGg7Kyt1KWlmKChsPXNbdV0pLnR5cGU9PT1lLnR5cGUmJmwubmFtZT09PWUubmFtZSl7dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGwudHlwZSxsLmxpc3RlbmVyLGwuY2FwdHVyZSksdGhpcy5hZGRFdmVudExpc3RlbmVyKGwudHlwZSxsLmxpc3RlbmVyPWMsbC5jYXB0dXJlPXIpLGwudmFsdWU9dDtyZXR1cm59fXRoaXMuYWRkRXZlbnRMaXN0ZW5lcihlLnR5cGUsYyxyKSxsPXt0eXBlOmUudHlwZSxuYW1lOmUubmFtZSx2YWx1ZTp0LGxpc3RlbmVyOmMsY2FwdHVyZTpyfSxzP3MucHVzaChsKTp0aGlzLl9fb249W2xdfX1mdW5jdGlvbiBueXQoZSx0LHIpe3ZhciBuPVEyZShlKyIiKSxpLG89bi5sZW5ndGgsYTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBzPXRoaXMubm9kZSgpLl9fb247aWYocyl7Zm9yKHZhciBsPTAsYz1zLmxlbmd0aCx1O2w8YzsrK2wpZm9yKGk9MCx1PXNbbF07aTxvOysraSlpZigoYT1uW2ldKS50eXBlPT09dS50eXBlJiZhLm5hbWU9PT11Lm5hbWUpcmV0dXJuIHUudmFsdWV9cmV0dXJufWZvcihzPXQ/ZXdlOnR3ZSxyPT1udWxsJiYocj0hMSksaT0wO2k8bzsrK2kpdGhpcy5lYWNoKHMobltpXSx0LHIpKTtyZXR1cm4gdGhpc31mdW5jdGlvbiBFcChlLHQscixuKXt2YXIgaT1xdDtlLnNvdXJjZUV2ZW50PXF0LHF0PWU7dHJ5e3JldHVybiB0LmFwcGx5KHIsbil9ZmluYWxseXtxdD1pfX1mdW5jdGlvbiBpeXQoZSx0LHIpe3ZhciBuPWhiKGUpLGk9bi5DdXN0b21FdmVudDt0eXBlb2YgaT09ImZ1bmN0aW9uIj9pPW5ldyBpKHQscik6KGk9bi5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSxyPyhpLmluaXRFdmVudCh0LHIuYnViYmxlcyxyLmNhbmNlbGFibGUpLGkuZGV0YWlsPXIuZGV0YWlsKTppLmluaXRFdmVudCh0LCExLCExKSksZS5kaXNwYXRjaEV2ZW50KGkpfWZ1bmN0aW9uIHJ3ZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBpeXQodGhpcyxlLHQpfX1mdW5jdGlvbiBud2UoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gaXl0KHRoaXMsZSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fWZ1bmN0aW9uIG95dChlLHQpe3JldHVybiB0aGlzLmVhY2goKHR5cGVvZiB0PT0iZnVuY3Rpb24iP253ZTpyd2UpKGUsdCkpfXZhciBFRT1bbnVsbF07ZnVuY3Rpb24gRG4oZSx0KXt0aGlzLl9ncm91cHM9ZSx0aGlzLl9wYXJlbnRzPXR9ZnVuY3Rpb24gYXl0KCl7cmV0dXJuIG5ldyBEbihbW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF1dLEVFKX1Ebi5wcm90b3R5cGU9YXl0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6RG4sc2VsZWN0OnZfdCxzZWxlY3RBbGw6eF90LGZpbHRlcjpiX3QsZGF0YTpFX3QsZW50ZXI6d190LGV4aXQ6VF90LGpvaW46Q190LG1lcmdlOkFfdCxvcmRlcjpQX3Qsc29ydDpJX3QsY2FsbDpMX3Qsbm9kZXM6a190LG5vZGU6Ul90LHNpemU6Tl90LGVtcHR5OkRfdCxlYWNoOk9fdCxhdHRyOnpfdCxzdHlsZTpGX3QscHJvcGVydHk6Ql90LGNsYXNzZWQ6R190LHRleHQ6V190LGh0bWw6WV90LHJhaXNlOmpfdCxsb3dlcjpYX3QsYXBwZW5kOiRfdCxpbnNlcnQ6S190LHJlbW92ZTpaX3QsY2xvbmU6Sl90LGRhdHVtOlFfdCxvbjpueXQsZGlzcGF0Y2g6b3l0fTt2YXIgTGg9YXl0O2Z1bmN0aW9uIEh0KGUpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyI/bmV3IERuKFtbZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlKV1dLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgRG4oW1tlXV0sRUUpfWZ1bmN0aW9uIHN5dChlKXtyZXR1cm4gSHQoTm0oZSkuY2FsbChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX12YXIgaXdlPTA7ZnVuY3Rpb24gZUwoKXtyZXR1cm4gbmV3IEpXfWZ1bmN0aW9uIEpXKCl7dGhpcy5fPSJAIisoKytpd2UpLnRvU3RyaW5nKDM2KX1KVy5wcm90b3R5cGU9ZUwucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpKVyxnZXQ6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMuXzshKHQgaW4gZSk7KWlmKCEoZT1lLnBhcmVudE5vZGUpKXJldHVybjtyZXR1cm4gZVt0XX0sc2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbdGhpcy5fXT10fSxyZW1vdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuXyBpbiBlJiZkZWxldGUgZVt0aGlzLl9dfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fTtmdW5jdGlvbiBmYigpe2Zvcih2YXIgZT1xdCx0O3Q9ZS5zb3VyY2VFdmVudDspZT10O3JldHVybiBlfWZ1bmN0aW9uIE9tKGUsdCl7dmFyIHI9ZS5vd25lclNWR0VsZW1lbnR8fGU7aWYoci5jcmVhdGVTVkdQb2ludCl7dmFyIG49ci5jcmVhdGVTVkdQb2ludCgpO3JldHVybiBuLng9dC5jbGllbnRYLG4ueT10LmNsaWVudFksbj1uLm1hdHJpeFRyYW5zZm9ybShlLmdldFNjcmVlbkNUTSgpLmludmVyc2UoKSksW24ueCxuLnldfXZhciBpPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW3QuY2xpZW50WC1pLmxlZnQtZS5jbGllbnRMZWZ0LHQuY2xpZW50WS1pLnRvcC1lLmNsaWVudFRvcF19ZnVuY3Rpb24gem8oZSl7dmFyIHQ9ZmIoKTtyZXR1cm4gdC5jaGFuZ2VkVG91Y2hlcyYmKHQ9dC5jaGFuZ2VkVG91Y2hlc1swXSksT20oZSx0KX1mdW5jdGlvbiBUcChlKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciP25ldyBEbihbZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChlKV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyBEbihbZT09bnVsbD9bXTplXSxFRSl9ZnVuY3Rpb24gQ3AoZSx0LHIpe2FyZ3VtZW50cy5sZW5ndGg8MyYmKHI9dCx0PWZiKCkuY2hhbmdlZFRvdWNoZXMpO2Zvcih2YXIgbj0wLGk9dD90Lmxlbmd0aDowLG87bjxpOysrbilpZigobz10W25dKS5pZGVudGlmaWVyPT09cilyZXR1cm4gT20oZSxvKTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBseXQoZSx0KXt0PT1udWxsJiYodD1mYigpLnRvdWNoZXMpO2Zvcih2YXIgcj0wLG49dD90Lmxlbmd0aDowLGk9bmV3IEFycmF5KG4pO3I8bjsrK3IpaVtyXT1PbShlLHRbcl0pO3JldHVybiBpfWZ1bmN0aW9uIHJMKCl7cXQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gem0oKXtxdC5wcmV2ZW50RGVmYXVsdCgpLHF0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIEZtKGUpe3ZhciB0PWUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHI9SHQoZSkub24oImRyYWdzdGFydC5kcmFnIix6bSwhMCk7Im9uc2VsZWN0c3RhcnQiaW4gdD9yLm9uKCJzZWxlY3RzdGFydC5kcmFnIix6bSwhMCk6KHQuX19ub3NlbGVjdD10LnN0eWxlLk1velVzZXJTZWxlY3QsdC5zdHlsZS5Nb3pVc2VyU2VsZWN0PSJub25lIil9ZnVuY3Rpb24gQm0oZSx0KXt2YXIgcj1lLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxuPUh0KGUpLm9uKCJkcmFnc3RhcnQuZHJhZyIsbnVsbCk7dCYmKG4ub24oImNsaWNrLmRyYWciLHptLCEwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bi5vbigiY2xpY2suZHJhZyIsbnVsbCl9LDApKSwib25zZWxlY3RzdGFydCJpbiByP24ub24oInNlbGVjdHN0YXJ0LmRyYWciLG51bGwpOihyLnN0eWxlLk1velVzZXJTZWxlY3Q9ci5fX25vc2VsZWN0LGRlbGV0ZSByLl9fbm9zZWxlY3QpfWZ1bmN0aW9uIFRFKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX1mdW5jdGlvbiBDRShlLHQscixuLGksbyxhLHMsbCxjKXt0aGlzLnRhcmdldD1lLHRoaXMudHlwZT10LHRoaXMuc3ViamVjdD1yLHRoaXMuaWRlbnRpZmllcj1uLHRoaXMuYWN0aXZlPWksdGhpcy54PW8sdGhpcy55PWEsdGhpcy5keD1zLHRoaXMuZHk9bCx0aGlzLl89Y31DRS5wcm90b3R5cGUub249ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl8ub24uYXBwbHkodGhpcy5fLGFyZ3VtZW50cyk7cmV0dXJuIGU9PT10aGlzLl8/dGhpczplfTtmdW5jdGlvbiBvd2UoKXtyZXR1cm4hcXQuY3RybEtleSYmIXF0LmJ1dHRvbn1mdW5jdGlvbiBhd2UoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlfWZ1bmN0aW9uIHN3ZShlKXtyZXR1cm4gZT09bnVsbD97eDpxdC54LHk6cXQueX06ZX1mdW5jdGlvbiBsd2UoKXtyZXR1cm4gbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzfHwib250b3VjaHN0YXJ0ImluIHRoaXN9ZnVuY3Rpb24gcGIoKXt2YXIgZT1vd2UsdD1hd2Uscj1zd2Usbj1sd2UsaT17fSxvPXhzKCJzdGFydCIsImRyYWciLCJlbmQiKSxhPTAscyxsLGMsdSxoPTA7ZnVuY3Rpb24gZihTKXtTLm9uKCJtb3VzZWRvd24uZHJhZyIscCkuZmlsdGVyKG4pLm9uKCJ0b3VjaHN0YXJ0LmRyYWciLF8pLm9uKCJ0b3VjaG1vdmUuZHJhZyIseSkub24oInRvdWNoZW5kLmRyYWcgdG91Y2hjYW5jZWwuZHJhZyIseCkuc3R5bGUoInRvdWNoLWFjdGlvbiIsIm5vbmUiKS5zdHlsZSgiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIiwicmdiYSgwLDAsMCwwKSIpfWZ1bmN0aW9uIHAoKXtpZighKHV8fCFlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkpe3ZhciBTPWIoIm1vdXNlIix0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSx6byx0aGlzLGFyZ3VtZW50cyk7IVN8fChIdChxdC52aWV3KS5vbigibW91c2Vtb3ZlLmRyYWciLGQsITApLm9uKCJtb3VzZXVwLmRyYWciLGcsITApLEZtKHF0LnZpZXcpLHJMKCksYz0hMSxzPXF0LmNsaWVudFgsbD1xdC5jbGllbnRZLFMoInN0YXJ0IikpfX1mdW5jdGlvbiBkKCl7aWYoem0oKSwhYyl7dmFyIFM9cXQuY2xpZW50WC1zLEM9cXQuY2xpZW50WS1sO2M9UypTK0MqQz5ofWkubW91c2UoImRyYWciKX1mdW5jdGlvbiBnKCl7SHQocXQudmlldykub24oIm1vdXNlbW92ZS5kcmFnIG1vdXNldXAuZHJhZyIsbnVsbCksQm0ocXQudmlldyxjKSx6bSgpLGkubW91c2UoImVuZCIpfWZ1bmN0aW9uIF8oKXtpZighIWUuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgUz1xdC5jaGFuZ2VkVG91Y2hlcyxDPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpLFA9Uy5sZW5ndGgsayxPO2ZvcihrPTA7azxQOysraykoTz1iKFNba10uaWRlbnRpZmllcixDLENwLHRoaXMsYXJndW1lbnRzKSkmJihyTCgpLE8oInN0YXJ0IikpfX1mdW5jdGlvbiB5KCl7dmFyIFM9cXQuY2hhbmdlZFRvdWNoZXMsQz1TLmxlbmd0aCxQLGs7Zm9yKFA9MDtQPEM7KytQKShrPWlbU1tQXS5pZGVudGlmaWVyXSkmJih6bSgpLGsoImRyYWciKSl9ZnVuY3Rpb24geCgpe3ZhciBTPXF0LmNoYW5nZWRUb3VjaGVzLEM9Uy5sZW5ndGgsUCxrO2Zvcih1JiZjbGVhclRpbWVvdXQodSksdT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dT1udWxsfSw1MDApLFA9MDtQPEM7KytQKShrPWlbU1tQXS5pZGVudGlmaWVyXSkmJihyTCgpLGsoImVuZCIpKX1mdW5jdGlvbiBiKFMsQyxQLGssTyl7dmFyIEQ9UChDLFMpLEIsSSxMLFI9by5jb3B5KCk7aWYoISFFcChuZXcgQ0UoZiwiYmVmb3Jlc3RhcnQiLEIsUyxhLERbMF0sRFsxXSwwLDAsUiksZnVuY3Rpb24oKXtyZXR1cm4ocXQuc3ViamVjdD1CPXIuYXBwbHkoayxPKSk9PW51bGw/ITE6KEk9Qi54LURbMF18fDAsTD1CLnktRFsxXXx8MCwhMCl9KSlyZXR1cm4gZnVuY3Rpb24gRih6KXt2YXIgVT1ELFc7c3dpdGNoKHope2Nhc2Uic3RhcnQiOmlbU109RixXPWErKzticmVhaztjYXNlImVuZCI6ZGVsZXRlIGlbU10sLS1hO2Nhc2UiZHJhZyI6RD1QKEMsUyksVz1hO2JyZWFrfUVwKG5ldyBDRShmLHosQixTLFcsRFswXStJLERbMV0rTCxEWzBdLVVbMF0sRFsxXS1VWzFdLFIpLFIuYXBwbHksUixbeixrLE9dKX19cmV0dXJuIGYuZmlsdGVyPWZ1bmN0aW9uKFMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiBTPT0iZnVuY3Rpb24iP1M6VEUoISFTKSxmKTplfSxmLmNvbnRhaW5lcj1mdW5jdGlvbihTKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD10eXBlb2YgUz09ImZ1bmN0aW9uIj9TOlRFKFMpLGYpOnR9LGYuc3ViamVjdD1mdW5jdGlvbihTKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10eXBlb2YgUz09ImZ1bmN0aW9uIj9TOlRFKFMpLGYpOnJ9LGYudG91Y2hhYmxlPWZ1bmN0aW9uKFMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXR5cGVvZiBTPT0iZnVuY3Rpb24iP1M6VEUoISFTKSxmKTpufSxmLm9uPWZ1bmN0aW9uKCl7dmFyIFM9by5vbi5hcHBseShvLGFyZ3VtZW50cyk7cmV0dXJuIFM9PT1vP2Y6U30sZi5jbGlja0Rpc3RhbmNlPWZ1bmN0aW9uKFMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPShTPStTKSpTLGYpOk1hdGguc3FydChoKX0sZn1mdW5jdGlvbiBBcChlLHQscil7ZS5wcm90b3R5cGU9dC5wcm90b3R5cGU9cixyLmNvbnN0cnVjdG9yPWV9ZnVuY3Rpb24gSG0oZSx0KXt2YXIgcj1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKTtmb3IodmFyIG4gaW4gdClyW25dPXRbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gTmgoKXt9dmFyIFZtPS43LHdfPTEvVm0sZGI9IlxccyooWystXT9cXGQrKVxccyoiLEFFPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLFJoPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixjd2U9L14jKFswLTlhLWZdezMsOH0pJC8sdXdlPW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1tkYixkYixkYl0rIlxcKSQiKSxod2U9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW1JoLFJoLFJoXSsiXFwpJCIpLGZ3ZT1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW2RiLGRiLGRiLEFFXSsiXFwpJCIpLHB3ZT1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW1JoLFJoLFJoLEFFXSsiXFwpJCIpLGR3ZT1uZXcgUmVnRXhwKCJeaHNsXFwoIitbQUUsUmgsUmhdKyJcXCkkIiksbXdlPW5ldyBSZWdFeHAoIl5oc2xhXFwoIitbQUUsUmgsUmgsQUVdKyJcXCkkIiksY3l0PXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9O0FwKE5oLHJjLHtjb3B5OmZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuYXNzaWduKG5ldyB0aGlzLmNvbnN0cnVjdG9yLHRoaXMsZSl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKX0saGV4OnV5dCxmb3JtYXRIZXg6dXl0LGZvcm1hdEhzbDpnd2UsZm9ybWF0UmdiOmh5dCx0b1N0cmluZzpoeXR9KTtmdW5jdGlvbiB1eXQoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRIZXgoKX1mdW5jdGlvbiBnd2UoKXtyZXR1cm4gZ3l0KHRoaXMpLmZvcm1hdEhzbCgpfWZ1bmN0aW9uIGh5dCgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdFJnYigpfWZ1bmN0aW9uIHJjKGUpe3ZhciB0LHI7cmV0dXJuIGU9KGUrIiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLCh0PWN3ZS5leGVjKGUpKT8ocj10WzFdLmxlbmd0aCx0PXBhcnNlSW50KHRbMV0sMTYpLHI9PT02P2Z5dCh0KTpyPT09Mz9uZXcgS2kodD4+OCYxNXx0Pj40JjI0MCx0Pj40JjE1fHQmMjQwLCh0JjE1KTw8NHx0JjE1LDEpOnI9PT04P25MKHQ+PjI0JjI1NSx0Pj4xNiYyNTUsdD4+OCYyNTUsKHQmMjU1KS8yNTUpOnI9PT00P25MKHQ+PjEyJjE1fHQ+PjgmMjQwLHQ+PjgmMTV8dD4+NCYyNDAsdD4+NCYxNXx0JjI0MCwoKHQmMTUpPDw0fHQmMTUpLzI1NSk6bnVsbCk6KHQ9dXdlLmV4ZWMoZSkpP25ldyBLaSh0WzFdLHRbMl0sdFszXSwxKToodD1od2UuZXhlYyhlKSk/bmV3IEtpKHRbMV0qMjU1LzEwMCx0WzJdKjI1NS8xMDAsdFszXSoyNTUvMTAwLDEpOih0PWZ3ZS5leGVjKGUpKT9uTCh0WzFdLHRbMl0sdFszXSx0WzRdKToodD1wd2UuZXhlYyhlKSk/bkwodFsxXSoyNTUvMTAwLHRbMl0qMjU1LzEwMCx0WzNdKjI1NS8xMDAsdFs0XSk6KHQ9ZHdlLmV4ZWMoZSkpP215dCh0WzFdLHRbMl0vMTAwLHRbM10vMTAwLDEpOih0PW13ZS5leGVjKGUpKT9teXQodFsxXSx0WzJdLzEwMCx0WzNdLzEwMCx0WzRdKTpjeXQuaGFzT3duUHJvcGVydHkoZSk/Znl0KGN5dFtlXSk6ZT09PSJ0cmFuc3BhcmVudCI/bmV3IEtpKE5hTixOYU4sTmFOLDApOm51bGx9ZnVuY3Rpb24gZnl0KGUpe3JldHVybiBuZXcgS2koZT4+MTYmMjU1LGU+PjgmMjU1LGUmMjU1LDEpfWZ1bmN0aW9uIG5MKGUsdCxyLG4pe3JldHVybiBuPD0wJiYoZT10PXI9TmFOKSxuZXcgS2koZSx0LHIsbil9ZnVuY3Rpb24gUEUoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBOaHx8KGU9cmMoZSkpLGU/KGU9ZS5yZ2IoKSxuZXcgS2koZS5yLGUuZyxlLmIsZS5vcGFjaXR5KSk6bmV3IEtpfWZ1bmN0aW9uIGN1KGUsdCxyLG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT9QRShlKTpuZXcgS2koZSx0LHIsbj09bnVsbD8xOm4pfWZ1bmN0aW9uIEtpKGUsdCxyLG4pe3RoaXMucj0rZSx0aGlzLmc9K3QsdGhpcy5iPStyLHRoaXMub3BhY2l0eT0rbn1BcChLaSxjdSxIbShOaCx7YnJpZ2h0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZT09bnVsbD93XzpNYXRoLnBvdyh3XyxlKSxuZXcgS2kodGhpcy5yKmUsdGhpcy5nKmUsdGhpcy5iKmUsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/Vm06TWF0aC5wb3coVm0sZSksbmV3IEtpKHRoaXMuciplLHRoaXMuZyplLHRoaXMuYiplLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6cHl0LGZvcm1hdEhleDpweXQsZm9ybWF0UmdiOmR5dCx0b1N0cmluZzpkeXR9KSk7ZnVuY3Rpb24gcHl0KCl7cmV0dXJuIiMiK1FXKHRoaXMucikrUVcodGhpcy5nKStRVyh0aGlzLmIpfWZ1bmN0aW9uIGR5dCgpe3ZhciBlPXRoaXMub3BhY2l0eTtyZXR1cm4gZT1pc05hTihlKT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSxlKSksKGU9PT0xPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKGU9PT0xPyIpIjoiLCAiK2UrIikiKX1mdW5jdGlvbiBRVyhlKXtyZXR1cm4gZT1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKGUpfHwwKSksKGU8MTY/IjAiOiIiKStlLnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBteXQoZSx0LHIsbil7cmV0dXJuIG48PTA/ZT10PXI9TmFOOnI8PTB8fHI+PTE/ZT10PU5hTjp0PD0wJiYoZT1OYU4pLG5ldyBraChlLHQscixuKX1mdW5jdGlvbiBneXQoZSl7aWYoZSBpbnN0YW5jZW9mIGtoKXJldHVybiBuZXcga2goZS5oLGUucyxlLmwsZS5vcGFjaXR5KTtpZihlIGluc3RhbmNlb2YgTmh8fChlPXJjKGUpKSwhZSlyZXR1cm4gbmV3IGtoO2lmKGUgaW5zdGFuY2VvZiBraClyZXR1cm4gZTtlPWUucmdiKCk7dmFyIHQ9ZS5yLzI1NSxyPWUuZy8yNTUsbj1lLmIvMjU1LGk9TWF0aC5taW4odCxyLG4pLG89TWF0aC5tYXgodCxyLG4pLGE9TmFOLHM9by1pLGw9KG8raSkvMjtyZXR1cm4gcz8odD09PW8/YT0oci1uKS9zKyhyPG4pKjY6cj09PW8/YT0obi10KS9zKzI6YT0odC1yKS9zKzQscy89bDwuNT9vK2k6Mi1vLWksYSo9NjApOnM9bD4wJiZsPDE/MDphLG5ldyBraChhLHMsbCxlLm9wYWNpdHkpfWZ1bmN0aW9uIFVtKGUsdCxyLG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT9neXQoZSk6bmV3IGtoKGUsdCxyLG49PW51bGw/MTpuKX1mdW5jdGlvbiBraChlLHQscixuKXt0aGlzLmg9K2UsdGhpcy5zPSt0LHRoaXMubD0rcix0aGlzLm9wYWNpdHk9K259QXAoa2gsVW0sSG0oTmgse2JyaWdodGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/d186TWF0aC5wb3cod18sZSksbmV3IGtoKHRoaXMuaCx0aGlzLnMsdGhpcy5sKmUsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/Vm06TWF0aC5wb3coVm0sZSksbmV3IGtoKHRoaXMuaCx0aGlzLnMsdGhpcy5sKmUsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5oJTM2MCsodGhpcy5oPDApKjM2MCx0PWlzTmFOKGUpfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLHI9dGhpcy5sLG49cisocjwuNT9yOjEtcikqdCxpPTIqci1uO3JldHVybiBuZXcgS2kodFkoZT49MjQwP2UtMjQwOmUrMTIwLGksbiksdFkoZSxpLG4pLHRZKGU8MTIwP2UrMjQwOmUtMTIwLGksbiksdGhpcy5vcGFjaXR5KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGZvcm1hdEhzbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3BhY2l0eTtyZXR1cm4gZT1pc05hTihlKT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSxlKSksKGU9PT0xPyJoc2woIjoiaHNsYSgiKSsodGhpcy5ofHwwKSsiLCAiKyh0aGlzLnN8fDApKjEwMCsiJSwgIisodGhpcy5sfHwwKSoxMDArIiUiKyhlPT09MT8iKSI6IiwgIitlKyIpIil9fSkpO2Z1bmN0aW9uIHRZKGUsdCxyKXtyZXR1cm4oZTw2MD90KyhyLXQpKmUvNjA6ZTwxODA/cjplPDI0MD90KyhyLXQpKigyNDAtZSkvNjA6dCkqMjU1fXZhciBpTD1NYXRoLlBJLzE4MCxvTD0xODAvTWF0aC5QSTt2YXIgYUw9MTgsX3l0PS45NjQyMix5eXQ9MSx2eXQ9LjgyNTIxLHh5dD00LzI5LG1iPTYvMjksYnl0PTMqbWIqbWIsX3dlPW1iKm1iKm1iO2Z1bmN0aW9uIHd5dChlKXtpZihlIGluc3RhbmNlb2YgdXUpcmV0dXJuIG5ldyB1dShlLmwsZS5hLGUuYixlLm9wYWNpdHkpO2lmKGUgaW5zdGFuY2VvZiBEaClyZXR1cm4gVHl0KGUpO2UgaW5zdGFuY2VvZiBLaXx8KGU9UEUoZSkpO3ZhciB0PWlZKGUucikscj1pWShlLmcpLG49aVkoZS5iKSxpPWVZKCguMjIyNTA0NSp0Ky43MTY4Nzg2KnIrLjA2MDYxNjkqbikveXl0KSxvLGE7cmV0dXJuIHQ9PT1yJiZyPT09bj9vPWE9aToobz1lWSgoLjQzNjA3NDcqdCsuMzg1MDY0OSpyKy4xNDMwODA0Km4pL195dCksYT1lWSgoLjAxMzkzMjIqdCsuMDk3MTA0NSpyKy43MTQxNzMzKm4pL3Z5dCkpLG5ldyB1dSgxMTYqaS0xNiw1MDAqKG8taSksMjAwKihpLWEpLGUub3BhY2l0eSl9ZnVuY3Rpb24gU3l0KGUsdCl7cmV0dXJuIG5ldyB1dShlLDAsMCx0PT1udWxsPzE6dCl9ZnVuY3Rpb24gU18oZSx0LHIsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP3d5dChlKTpuZXcgdXUoZSx0LHIsbj09bnVsbD8xOm4pfWZ1bmN0aW9uIHV1KGUsdCxyLG4pe3RoaXMubD0rZSx0aGlzLmE9K3QsdGhpcy5iPStyLHRoaXMub3BhY2l0eT0rbn1BcCh1dSxTXyxIbShOaCx7YnJpZ2h0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB1dSh0aGlzLmwrYUwqKGU9PW51bGw/MTplKSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IHV1KHRoaXMubC1hTCooZT09bnVsbD8xOmUpLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIGU9KHRoaXMubCsxNikvMTE2LHQ9aXNOYU4odGhpcy5hKT9lOmUrdGhpcy5hLzUwMCxyPWlzTmFOKHRoaXMuYik/ZTplLXRoaXMuYi8yMDA7cmV0dXJuIHQ9X3l0KnJZKHQpLGU9eXl0KnJZKGUpLHI9dnl0KnJZKHIpLG5ldyBLaShuWSgzLjEzMzg1NjEqdC0xLjYxNjg2NjcqZS0uNDkwNjE0NipyKSxuWSgtLjk3ODc2ODQqdCsxLjkxNjE0MTUqZSsuMDMzNDU0KnIpLG5ZKC4wNzE5NDUzKnQtLjIyODk5MTQqZSsxLjQwNTI0MjcqciksdGhpcy5vcGFjaXR5KX19KSk7ZnVuY3Rpb24gZVkoZSl7cmV0dXJuIGU+X3dlP01hdGgucG93KGUsMS8zKTplL2J5dCt4eXR9ZnVuY3Rpb24gclkoZSl7cmV0dXJuIGU+bWI/ZSplKmU6Ynl0KihlLXh5dCl9ZnVuY3Rpb24gblkoZSl7cmV0dXJuIDI1NSooZTw9LjAwMzEzMDg/MTIuOTIqZToxLjA1NSpNYXRoLnBvdyhlLDEvMi40KS0uMDU1KX1mdW5jdGlvbiBpWShlKXtyZXR1cm4oZS89MjU1KTw9LjA0MDQ1P2UvMTIuOTI6TWF0aC5wb3coKGUrLjA1NSkvMS4wNTUsMi40KX1mdW5jdGlvbiBNeXQoZSl7aWYoZSBpbnN0YW5jZW9mIERoKXJldHVybiBuZXcgRGgoZS5oLGUuYyxlLmwsZS5vcGFjaXR5KTtpZihlIGluc3RhbmNlb2YgdXV8fChlPXd5dChlKSksZS5hPT09MCYmZS5iPT09MClyZXR1cm4gbmV3IERoKE5hTiwwPGUubCYmZS5sPDEwMD8wOk5hTixlLmwsZS5vcGFjaXR5KTt2YXIgdD1NYXRoLmF0YW4yKGUuYixlLmEpKm9MO3JldHVybiBuZXcgRGgodDwwP3QrMzYwOnQsTWF0aC5zcXJ0KGUuYSplLmErZS5iKmUuYiksZS5sLGUub3BhY2l0eSl9ZnVuY3Rpb24gRXl0KGUsdCxyLG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT9NeXQoZSk6bmV3IERoKHIsdCxlLG49PW51bGw/MTpuKX1mdW5jdGlvbiBnYihlLHQscixuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/TXl0KGUpOm5ldyBEaChlLHQscixuPT1udWxsPzE6bil9ZnVuY3Rpb24gRGgoZSx0LHIsbil7dGhpcy5oPStlLHRoaXMuYz0rdCx0aGlzLmw9K3IsdGhpcy5vcGFjaXR5PStufWZ1bmN0aW9uIFR5dChlKXtpZihpc05hTihlLmgpKXJldHVybiBuZXcgdXUoZS5sLDAsMCxlLm9wYWNpdHkpO3ZhciB0PWUuaCppTDtyZXR1cm4gbmV3IHV1KGUubCxNYXRoLmNvcyh0KSplLmMsTWF0aC5zaW4odCkqZS5jLGUub3BhY2l0eSl9QXAoRGgsZ2IsSG0oTmgse2JyaWdodGVyOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgRGgodGhpcy5oLHRoaXMuYyx0aGlzLmwrYUwqKGU9PW51bGw/MTplKSx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBEaCh0aGlzLmgsdGhpcy5jLHRoaXMubC1hTCooZT09bnVsbD8xOmUpLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiBUeXQodGhpcykucmdiKCl9fSkpO3ZhciBJeXQ9LS4xNDg2MSxvWT0xLjc4Mjc3LGFZPS0uMjkyMjcsc0w9LS45MDY0OSxJRT0xLjk3Mjk0LEN5dD1JRSpzTCxBeXQ9SUUqb1ksUHl0PW9ZKmFZLXNMKkl5dDtmdW5jdGlvbiB5d2UoZSl7aWYoZSBpbnN0YW5jZW9mIE1fKXJldHVybiBuZXcgTV8oZS5oLGUucyxlLmwsZS5vcGFjaXR5KTtlIGluc3RhbmNlb2YgS2l8fChlPVBFKGUpKTt2YXIgdD1lLnIvMjU1LHI9ZS5nLzI1NSxuPWUuYi8yNTUsaT0oUHl0Km4rQ3l0KnQtQXl0KnIpLyhQeXQrQ3l0LUF5dCksbz1uLWksYT0oSUUqKHItaSktYVkqbykvc0wscz1NYXRoLnNxcnQoYSphK28qbykvKElFKmkqKDEtaSkpLGw9cz9NYXRoLmF0YW4yKGEsbykqb0wtMTIwOk5hTjtyZXR1cm4gbmV3IE1fKGw8MD9sKzM2MDpsLHMsaSxlLm9wYWNpdHkpfWZ1bmN0aW9uIGNhKGUsdCxyLG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT95d2UoZSk6bmV3IE1fKGUsdCxyLG49PW51bGw/MTpuKX1mdW5jdGlvbiBNXyhlLHQscixuKXt0aGlzLmg9K2UsdGhpcy5zPSt0LHRoaXMubD0rcix0aGlzLm9wYWNpdHk9K259QXAoTV8sY2EsSG0oTmgse2JyaWdodGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/d186TWF0aC5wb3cod18sZSksbmV3IE1fKHRoaXMuaCx0aGlzLnMsdGhpcy5sKmUsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKGUpe3JldHVybiBlPWU9PW51bGw/Vm06TWF0aC5wb3coVm0sZSksbmV3IE1fKHRoaXMuaCx0aGlzLnMsdGhpcy5sKmUsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIGU9aXNOYU4odGhpcy5oKT8wOih0aGlzLmgrMTIwKSppTCx0PSt0aGlzLmwscj1pc05hTih0aGlzLnMpPzA6dGhpcy5zKnQqKDEtdCksbj1NYXRoLmNvcyhlKSxpPU1hdGguc2luKGUpO3JldHVybiBuZXcgS2koMjU1Kih0K3IqKEl5dCpuK29ZKmkpKSwyNTUqKHQrciooYVkqbitzTCppKSksMjU1Kih0K3IqKElFKm4pKSx0aGlzLm9wYWNpdHkpfX0pKTtmdW5jdGlvbiBzWShlLHQscixuLGkpe3ZhciBvPWUqZSxhPW8qZTtyZXR1cm4oKDEtMyplKzMqby1hKSp0Kyg0LTYqbyszKmEpKnIrKDErMyplKzMqby0zKmEpKm4rYSppKS82fWZ1bmN0aW9uIGxMKGUpe3ZhciB0PWUubGVuZ3RoLTE7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBuPXI8PTA/cj0wOnI+PTE/KHI9MSx0LTEpOk1hdGguZmxvb3Iocip0KSxpPWVbbl0sbz1lW24rMV0sYT1uPjA/ZVtuLTFdOjIqaS1vLHM9bjx0LTE/ZVtuKzJdOjIqby1pO3JldHVybiBzWSgoci1uL3QpKnQsYSxpLG8scyl9fWZ1bmN0aW9uIGNMKGUpe3ZhciB0PWUubGVuZ3RoO3JldHVybiBmdW5jdGlvbihyKXt2YXIgbj1NYXRoLmZsb29yKCgociU9MSk8MD8rK3I6cikqdCksaT1lWyhuK3QtMSkldF0sbz1lW24ldF0sYT1lWyhuKzEpJXRdLHM9ZVsobisyKSV0XTtyZXR1cm4gc1koKHItbi90KSp0LGksbyxhLHMpfX1mdW5jdGlvbiBfYihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZX19ZnVuY3Rpb24gTHl0KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBlK3IqdH19ZnVuY3Rpb24gdndlKGUsdCxyKXtyZXR1cm4gZT1NYXRoLnBvdyhlLHIpLHQ9TWF0aC5wb3codCxyKS1lLHI9MS9yLGZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnBvdyhlK24qdCxyKX19ZnVuY3Rpb24gcW0oZSx0KXt2YXIgcj10LWU7cmV0dXJuIHI/THl0KGUscj4xODB8fHI8LTE4MD9yLTM2MCpNYXRoLnJvdW5kKHIvMzYwKTpyKTpfYihpc05hTihlKT90OmUpfWZ1bmN0aW9uIGt5dChlKXtyZXR1cm4oZT0rZSk9PTE/Wm46ZnVuY3Rpb24odCxyKXtyZXR1cm4gci10P3Z3ZSh0LHIsZSk6X2IoaXNOYU4odCk/cjp0KX19ZnVuY3Rpb24gWm4oZSx0KXt2YXIgcj10LWU7cmV0dXJuIHI/THl0KGUscik6X2IoaXNOYU4oZSk/dDplKX12YXIgR209ZnVuY3Rpb24gZSh0KXt2YXIgcj1reXQodCk7ZnVuY3Rpb24gbihpLG8pe3ZhciBhPXIoKGk9Y3UoaSkpLnIsKG89Y3UobykpLnIpLHM9cihpLmcsby5nKSxsPXIoaS5iLG8uYiksYz1abihpLm9wYWNpdHksby5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odSl7cmV0dXJuIGkucj1hKHUpLGkuZz1zKHUpLGkuYj1sKHUpLGkub3BhY2l0eT1jKHUpLGkrIiJ9fXJldHVybiBuLmdhbW1hPWUsbn0oMSk7ZnVuY3Rpb24gUnl0KGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgcj10Lmxlbmd0aCxuPW5ldyBBcnJheShyKSxpPW5ldyBBcnJheShyKSxvPW5ldyBBcnJheShyKSxhLHM7Zm9yKGE9MDthPHI7KythKXM9Y3UodFthXSksblthXT1zLnJ8fDAsaVthXT1zLmd8fDAsb1thXT1zLmJ8fDA7cmV0dXJuIG49ZShuKSxpPWUoaSksbz1lKG8pLHMub3BhY2l0eT0xLGZ1bmN0aW9uKGwpe3JldHVybiBzLnI9bihsKSxzLmc9aShsKSxzLmI9byhsKSxzKyIifX19dmFyIHVMPVJ5dChsTCksTnl0PVJ5dChjTCk7ZnVuY3Rpb24geWIoZSx0KXt0fHwodD1bXSk7dmFyIHI9ZT9NYXRoLm1pbih0Lmxlbmd0aCxlLmxlbmd0aCk6MCxuPXQuc2xpY2UoKSxpO3JldHVybiBmdW5jdGlvbihvKXtmb3IoaT0wO2k8cjsrK2kpbltpXT1lW2ldKigxLW8pK3RbaV0qbztyZXR1cm4gbn19ZnVuY3Rpb24gaEwoZSl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyhlKSYmIShlIGluc3RhbmNlb2YgRGF0YVZpZXcpfWZ1bmN0aW9uIER5dChlLHQpe3JldHVybihoTCh0KT95YjpsWSkoZSx0KX1mdW5jdGlvbiBsWShlLHQpe3ZhciByPXQ/dC5sZW5ndGg6MCxuPWU/TWF0aC5taW4ocixlLmxlbmd0aCk6MCxpPW5ldyBBcnJheShuKSxvPW5ldyBBcnJheShyKSxhO2ZvcihhPTA7YTxuOysrYSlpW2FdPW5jKGVbYV0sdFthXSk7Zm9yKDthPHI7KythKW9bYV09dFthXTtyZXR1cm4gZnVuY3Rpb24ocyl7Zm9yKGE9MDthPG47KythKW9bYV09aVthXShzKTtyZXR1cm4gb319ZnVuY3Rpb24gZkwoZSx0KXt2YXIgcj1uZXcgRGF0ZTtyZXR1cm4gZT0rZSx0PSt0LGZ1bmN0aW9uKG4pe3JldHVybiByLnNldFRpbWUoZSooMS1uKSt0Km4pLHJ9fWZ1bmN0aW9uIHppKGUsdCl7cmV0dXJuIGU9K2UsdD0rdCxmdW5jdGlvbihyKXtyZXR1cm4gZSooMS1yKSt0KnJ9fWZ1bmN0aW9uIHBMKGUsdCl7dmFyIHI9e30sbj17fSxpOyhlPT09bnVsbHx8dHlwZW9mIGUhPSJvYmplY3QiKSYmKGU9e30pLCh0PT09bnVsbHx8dHlwZW9mIHQhPSJvYmplY3QiKSYmKHQ9e30pO2ZvcihpIGluIHQpaSBpbiBlP3JbaV09bmMoZVtpXSx0W2ldKTpuW2ldPXRbaV07cmV0dXJuIGZ1bmN0aW9uKG8pe2ZvcihpIGluIHIpbltpXT1yW2ldKG8pO3JldHVybiBufX12YXIgdVk9L1stK10/KD86XGQrXC4/XGQqfFwuP1xkKykoPzpbZUVdWy0rXT9cZCspPy9nLGNZPW5ldyBSZWdFeHAodVkuc291cmNlLCJnIik7ZnVuY3Rpb24geHdlKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX1mdW5jdGlvbiBid2UoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpKyIifX1mdW5jdGlvbiB2YihlLHQpe3ZhciByPXVZLmxhc3RJbmRleD1jWS5sYXN0SW5kZXg9MCxuLGksbyxhPS0xLHM9W10sbD1bXTtmb3IoZT1lKyIiLHQ9dCsiIjsobj11WS5leGVjKGUpKSYmKGk9Y1kuZXhlYyh0KSk7KShvPWkuaW5kZXgpPnImJihvPXQuc2xpY2UocixvKSxzW2FdP3NbYV0rPW86c1srK2FdPW8pLChuPW5bMF0pPT09KGk9aVswXSk/c1thXT9zW2FdKz1pOnNbKythXT1pOihzWysrYV09bnVsbCxsLnB1c2goe2k6YSx4OnppKG4saSl9KSkscj1jWS5sYXN0SW5kZXg7cmV0dXJuIHI8dC5sZW5ndGgmJihvPXQuc2xpY2Uociksc1thXT9zW2FdKz1vOnNbKythXT1vKSxzLmxlbmd0aDwyP2xbMF0/YndlKGxbMF0ueCk6eHdlKHQpOih0PWwubGVuZ3RoLGZ1bmN0aW9uKGMpe2Zvcih2YXIgdT0wLGg7dTx0OysrdSlzWyhoPWxbdV0pLmldPWgueChjKTtyZXR1cm4gcy5qb2luKCIiKX0pfWZ1bmN0aW9uIG5jKGUsdCl7dmFyIHI9dHlwZW9mIHQsbjtyZXR1cm4gdD09bnVsbHx8cj09PSJib29sZWFuIj9fYih0KToocj09PSJudW1iZXIiP3ppOnI9PT0ic3RyaW5nIj8obj1yYyh0KSk/KHQ9bixHbSk6dmI6dCBpbnN0YW5jZW9mIHJjP0dtOnQgaW5zdGFuY2VvZiBEYXRlP2ZMOmhMKHQpP3liOkFycmF5LmlzQXJyYXkodCk/bFk6dHlwZW9mIHQudmFsdWVPZiE9ImZ1bmN0aW9uIiYmdHlwZW9mIHQudG9TdHJpbmchPSJmdW5jdGlvbiJ8fGlzTmFOKHQpP3BMOnppKShlLHQpfWZ1bmN0aW9uIE95dChlKXt2YXIgdD1lLmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIGVbTWF0aC5tYXgoMCxNYXRoLm1pbih0LTEsTWF0aC5mbG9vcihyKnQpKSldfX1mdW5jdGlvbiB6eXQoZSx0KXt2YXIgcj1xbSgrZSwrdCk7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpPXIobik7cmV0dXJuIGktMzYwKk1hdGguZmxvb3IoaS8zNjApfX1mdW5jdGlvbiBkTChlLHQpe3JldHVybiBlPStlLHQ9K3QsZnVuY3Rpb24ocil7cmV0dXJuIE1hdGgucm91bmQoZSooMS1yKSt0KnIpfX12YXIgRnl0PTE4MC9NYXRoLlBJLG1MPXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9O2Z1bmN0aW9uIGhZKGUsdCxyLG4saSxvKXt2YXIgYSxzLGw7cmV0dXJuKGE9TWF0aC5zcXJ0KGUqZSt0KnQpKSYmKGUvPWEsdC89YSksKGw9ZSpyK3QqbikmJihyLT1lKmwsbi09dCpsKSwocz1NYXRoLnNxcnQocipyK24qbikpJiYoci89cyxuLz1zLGwvPXMpLGUqbjx0KnImJihlPS1lLHQ9LXQsbD0tbCxhPS1hKSx7dHJhbnNsYXRlWDppLHRyYW5zbGF0ZVk6byxyb3RhdGU6TWF0aC5hdGFuMih0LGUpKkZ5dCxza2V3WDpNYXRoLmF0YW4obCkqRnl0LHNjYWxlWDphLHNjYWxlWTpzfX12YXIgTEUsZlksQnl0LGdMO2Z1bmN0aW9uIEh5dChlKXtyZXR1cm4gZT09PSJub25lIj9tTDooTEV8fChMRT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKSxmWT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsQnl0PWRvY3VtZW50LmRlZmF1bHRWaWV3KSxMRS5zdHlsZS50cmFuc2Zvcm09ZSxlPUJ5dC5nZXRDb21wdXRlZFN0eWxlKGZZLmFwcGVuZENoaWxkKExFKSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKSxmWS5yZW1vdmVDaGlsZChMRSksZT1lLnNsaWNlKDcsLTEpLnNwbGl0KCIsIiksaFkoK2VbMF0sK2VbMV0sK2VbMl0sK2VbM10sK2VbNF0sK2VbNV0pKX1mdW5jdGlvbiBWeXQoZSl7cmV0dXJuIGU9PW51bGw/bUw6KGdMfHwoZ0w9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKSksZ0wuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLGUpLChlPWdMLnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCkpPyhlPWUubWF0cml4LGhZKGUuYSxlLmIsZS5jLGUuZCxlLmUsZS5mKSk6bUwpfWZ1bmN0aW9uIFV5dChlLHQscixuKXtmdW5jdGlvbiBpKGMpe3JldHVybiBjLmxlbmd0aD9jLnBvcCgpKyIgIjoiIn1mdW5jdGlvbiBvKGMsdSxoLGYscCxkKXtpZihjIT09aHx8dSE9PWYpe3ZhciBnPXAucHVzaCgidHJhbnNsYXRlKCIsbnVsbCx0LG51bGwscik7ZC5wdXNoKHtpOmctNCx4OnppKGMsaCl9LHtpOmctMix4OnppKHUsZil9KX1lbHNlKGh8fGYpJiZwLnB1c2goInRyYW5zbGF0ZSgiK2grdCtmK3IpfWZ1bmN0aW9uIGEoYyx1LGgsZil7YyE9PXU/KGMtdT4xODA/dSs9MzYwOnUtYz4xODAmJihjKz0zNjApLGYucHVzaCh7aTpoLnB1c2goaShoKSsicm90YXRlKCIsbnVsbCxuKS0yLHg6emkoYyx1KX0pKTp1JiZoLnB1c2goaShoKSsicm90YXRlKCIrdStuKX1mdW5jdGlvbiBzKGMsdSxoLGYpe2MhPT11P2YucHVzaCh7aTpoLnB1c2goaShoKSsic2tld1goIixudWxsLG4pLTIseDp6aShjLHUpfSk6dSYmaC5wdXNoKGkoaCkrInNrZXdYKCIrdStuKX1mdW5jdGlvbiBsKGMsdSxoLGYscCxkKXtpZihjIT09aHx8dSE9PWYpe3ZhciBnPXAucHVzaChpKHApKyJzY2FsZSgiLG51bGwsIiwiLG51bGwsIikiKTtkLnB1c2goe2k6Zy00LHg6emkoYyxoKX0se2k6Zy0yLHg6emkodSxmKX0pfWVsc2UoaCE9PTF8fGYhPT0xKSYmcC5wdXNoKGkocCkrInNjYWxlKCIraCsiLCIrZisiKSIpfXJldHVybiBmdW5jdGlvbihjLHUpe3ZhciBoPVtdLGY9W107cmV0dXJuIGM9ZShjKSx1PWUodSksbyhjLnRyYW5zbGF0ZVgsYy50cmFuc2xhdGVZLHUudHJhbnNsYXRlWCx1LnRyYW5zbGF0ZVksaCxmKSxhKGMucm90YXRlLHUucm90YXRlLGgsZikscyhjLnNrZXdYLHUuc2tld1gsaCxmKSxsKGMuc2NhbGVYLGMuc2NhbGVZLHUuc2NhbGVYLHUuc2NhbGVZLGgsZiksYz11PW51bGwsZnVuY3Rpb24ocCl7Zm9yKHZhciBkPS0xLGc9Zi5sZW5ndGgsXzsrK2Q8ZzspaFsoXz1mW2RdKS5pXT1fLngocCk7cmV0dXJuIGguam9pbigiIil9fX12YXIgX0w9VXl0KEh5dCwicHgsICIsInB4KSIsImRlZykiKSx5TD1VeXQoVnl0LCIsICIsIikiLCIpIik7dmFyIGtFPU1hdGguU1FSVDIscFk9MixxeXQ9NCx3d2U9MWUtMTI7ZnVuY3Rpb24gR3l0KGUpe3JldHVybigoZT1NYXRoLmV4cChlKSkrMS9lKS8yfWZ1bmN0aW9uIFN3ZShlKXtyZXR1cm4oKGU9TWF0aC5leHAoZSkpLTEvZSkvMn1mdW5jdGlvbiBNd2UoZSl7cmV0dXJuKChlPU1hdGguZXhwKDIqZSkpLTEpLyhlKzEpfWZ1bmN0aW9uIHZMKGUsdCl7dmFyIHI9ZVswXSxuPWVbMV0saT1lWzJdLG89dFswXSxhPXRbMV0scz10WzJdLGw9by1yLGM9YS1uLHU9bCpsK2MqYyxoLGY7aWYodTx3d2UpZj1NYXRoLmxvZyhzL2kpL2tFLGg9ZnVuY3Rpb24oeCl7cmV0dXJuW3IreCpsLG4reCpjLGkqTWF0aC5leHAoa0UqeCpmKV19O2Vsc2V7dmFyIHA9TWF0aC5zcXJ0KHUpLGQ9KHMqcy1pKmkrcXl0KnUpLygyKmkqcFkqcCksZz0ocypzLWkqaS1xeXQqdSkvKDIqcypwWSpwKSxfPU1hdGgubG9nKE1hdGguc3FydChkKmQrMSktZCkseT1NYXRoLmxvZyhNYXRoLnNxcnQoZypnKzEpLWcpO2Y9KHktXykva0UsaD1mdW5jdGlvbih4KXt2YXIgYj14KmYsUz1HeXQoXyksQz1pLyhwWSpwKSooUypNd2Uoa0UqYitfKS1Td2UoXykpO3JldHVybltyK0MqbCxuK0MqYyxpKlMvR3l0KGtFKmIrXyldfX1yZXR1cm4gaC5kdXJhdGlvbj1mKjFlMyxofWZ1bmN0aW9uIFd5dChlKXtyZXR1cm4gZnVuY3Rpb24odCxyKXt2YXIgbj1lKCh0PVVtKHQpKS5oLChyPVVtKHIpKS5oKSxpPVpuKHQucyxyLnMpLG89Wm4odC5sLHIubCksYT1abih0Lm9wYWNpdHksci5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIHQuaD1uKHMpLHQucz1pKHMpLHQubD1vKHMpLHQub3BhY2l0eT1hKHMpLHQrIiJ9fX12YXIgWXl0PVd5dChxbSksanl0PVd5dChabik7ZnVuY3Rpb24gRV8oZSx0KXt2YXIgcj1abigoZT1TXyhlKSkubCwodD1TXyh0KSkubCksbj1abihlLmEsdC5hKSxpPVpuKGUuYix0LmIpLG89Wm4oZS5vcGFjaXR5LHQub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBlLmw9cihhKSxlLmE9bihhKSxlLmI9aShhKSxlLm9wYWNpdHk9byhhKSxlKyIifX1mdW5jdGlvbiBYeXQoZSl7cmV0dXJuIGZ1bmN0aW9uKHQscil7dmFyIG49ZSgodD1nYih0KSkuaCwocj1nYihyKSkuaCksaT1abih0LmMsci5jKSxvPVpuKHQubCxyLmwpLGE9Wm4odC5vcGFjaXR5LHIub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHMpe3JldHVybiB0Lmg9bihzKSx0LmM9aShzKSx0Lmw9byhzKSx0Lm9wYWNpdHk9YShzKSx0KyIifX19dmFyICR5dD1YeXQocW0pLEt5dD1YeXQoWm4pO2Z1bmN0aW9uIFp5dChlKXtyZXR1cm4gZnVuY3Rpb24gdChyKXtyPStyO2Z1bmN0aW9uIG4oaSxvKXt2YXIgYT1lKChpPWNhKGkpKS5oLChvPWNhKG8pKS5oKSxzPVpuKGkucyxvLnMpLGw9Wm4oaS5sLG8ubCksYz1abihpLm9wYWNpdHksby5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odSl7cmV0dXJuIGkuaD1hKHUpLGkucz1zKHUpLGkubD1sKE1hdGgucG93KHUscikpLGkub3BhY2l0eT1jKHUpLGkrIiJ9fXJldHVybiBuLmdhbW1hPXQsbn0oMSl9dmFyIEp5dD1aeXQocW0pLFRfPVp5dChabik7ZnVuY3Rpb24gZFkoZSx0KXtmb3IodmFyIHI9MCxuPXQubGVuZ3RoLTEsaT10WzBdLG89bmV3IEFycmF5KG48MD8wOm4pO3I8bjspb1tyXT1lKGksaT10Wysrcl0pO3JldHVybiBmdW5jdGlvbihhKXt2YXIgcz1NYXRoLm1heCgwLE1hdGgubWluKG4tMSxNYXRoLmZsb29yKGEqPW4pKSk7cmV0dXJuIG9bc10oYS1zKX19ZnVuY3Rpb24gUXl0KGUsdCl7Zm9yKHZhciByPW5ldyBBcnJheSh0KSxuPTA7bjx0OysrbilyW25dPWUobi8odC0xKSk7cmV0dXJuIHJ9Um0oKTt2YXIgeGI9MCxORT0wLFJFPTAsZXZ0PTFlMyx4TCxERSxiTD0wLENfPTAsd0w9MCxPRT10eXBlb2YgcGVyZm9ybWFuY2U9PSJvYmplY3QiJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2U6RGF0ZSxydnQ9dHlwZW9mIHdpbmRvdz09Im9iamVjdCImJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6ZnVuY3Rpb24oZSl7c2V0VGltZW91dChlLDE3KX07ZnVuY3Rpb24gUHAoKXtyZXR1cm4gQ198fChydnQoRXdlKSxDXz1PRS5ub3coKSt3TCl9ZnVuY3Rpb24gRXdlKCl7Q189MH1mdW5jdGlvbiBBXygpe3RoaXMuX2NhbGw9dGhpcy5fdGltZT10aGlzLl9uZXh0PW51bGx9QV8ucHJvdG90eXBlPVBfLnByb3RvdHlwZT17Y29uc3RydWN0b3I6QV8scmVzdGFydDpmdW5jdGlvbihlLHQscil7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb24iKTtyPShyPT1udWxsP1BwKCk6K3IpKyh0PT1udWxsPzA6K3QpLCF0aGlzLl9uZXh0JiZERSE9PXRoaXMmJihERT9ERS5fbmV4dD10aGlzOnhMPXRoaXMsREU9dGhpcyksdGhpcy5fY2FsbD1lLHRoaXMuX3RpbWU9cixtWSgpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5fY2FsbCYmKHRoaXMuX2NhbGw9bnVsbCx0aGlzLl90aW1lPTEvMCxtWSgpKX19O2Z1bmN0aW9uIFBfKGUsdCxyKXt2YXIgbj1uZXcgQV87cmV0dXJuIG4ucmVzdGFydChlLHQsciksbn1mdW5jdGlvbiBnWSgpe1BwKCksKyt4Yjtmb3IodmFyIGU9eEwsdDtlOykodD1DXy1lLl90aW1lKT49MCYmZS5fY2FsbC5jYWxsKG51bGwsdCksZT1lLl9uZXh0Oy0teGJ9ZnVuY3Rpb24gdHZ0KCl7Q189KGJMPU9FLm5vdygpKSt3TCx4Yj1ORT0wO3RyeXtnWSgpfWZpbmFsbHl7eGI9MCxDd2UoKSxDXz0wfX1mdW5jdGlvbiBUd2UoKXt2YXIgZT1PRS5ub3coKSx0PWUtYkw7dD5ldnQmJih3TC09dCxiTD1lKX1mdW5jdGlvbiBDd2UoKXtmb3IodmFyIGUsdD14TCxyLG49MS8wO3Q7KXQuX2NhbGw/KG4+dC5fdGltZSYmKG49dC5fdGltZSksZT10LHQ9dC5fbmV4dCk6KHI9dC5fbmV4dCx0Ll9uZXh0PW51bGwsdD1lP2UuX25leHQ9cjp4TD1yKTtERT1lLG1ZKG4pfWZ1bmN0aW9uIG1ZKGUpe2lmKCF4Yil7TkUmJihORT1jbGVhclRpbWVvdXQoTkUpKTt2YXIgdD1lLUNfO3Q+MjQ/KGU8MS8wJiYoTkU9c2V0VGltZW91dCh0dnQsZS1PRS5ub3coKS13TCkpLFJFJiYoUkU9Y2xlYXJJbnRlcnZhbChSRSkpKTooUkV8fChiTD1PRS5ub3coKSxSRT1zZXRJbnRlcnZhbChUd2UsZXZ0KSkseGI9MSxydnQodHZ0KSl9fWZ1bmN0aW9uIHpFKGUsdCxyKXt2YXIgbj1uZXcgQV87cmV0dXJuIHQ9dD09bnVsbD8wOit0LG4ucmVzdGFydChmdW5jdGlvbihpKXtuLnN0b3AoKSxlKGkrdCl9LHQsciksbn1mdW5jdGlvbiBudnQoZSx0LHIpe3ZhciBuPW5ldyBBXyxpPXQ7cmV0dXJuIHQ9PW51bGw/KG4ucmVzdGFydChlLHQsciksbik6KHQ9K3Qscj1yPT1udWxsP1BwKCk6K3Isbi5yZXN0YXJ0KGZ1bmN0aW9uIG8oYSl7YSs9aSxuLnJlc3RhcnQobyxpKz10LHIpLGUoYSl9LHQsciksbil9dmFyIEF3ZT14cygic3RhcnQiLCJlbmQiLCJjYW5jZWwiLCJpbnRlcnJ1cHQiKSxQd2U9W10sb3Z0PTAsTUw9MSxFTD0yLFNMPTMsaXZ0PTQsVEw9NSxGRT02O2Z1bmN0aW9uIFdtKGUsdCxyLG4saSxvKXt2YXIgYT1lLl9fdHJhbnNpdGlvbjtpZighYSllLl9fdHJhbnNpdGlvbj17fTtlbHNlIGlmKHIgaW4gYSlyZXR1cm47SXdlKGUscix7bmFtZTp0LGluZGV4Om4sZ3JvdXA6aSxvbjpBd2UsdHdlZW46UHdlLHRpbWU6by50aW1lLGRlbGF5Om8uZGVsYXksZHVyYXRpb246by5kdXJhdGlvbixlYXNlOm8uZWFzZSx0aW1lcjpudWxsLHN0YXRlOm92dH0pfWZ1bmN0aW9uIEJFKGUsdCl7dmFyIHI9WmkoZSx0KTtpZihyLnN0YXRlPm92dCl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZCIpO3JldHVybiByfWZ1bmN0aW9uIHphKGUsdCl7dmFyIHI9WmkoZSx0KTtpZihyLnN0YXRlPlNMKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgcnVubmluZyIpO3JldHVybiByfWZ1bmN0aW9uIFppKGUsdCl7dmFyIHI9ZS5fX3RyYW5zaXRpb247aWYoIXJ8fCEocj1yW3RdKSl0aHJvdyBuZXcgRXJyb3IoInRyYW5zaXRpb24gbm90IGZvdW5kIik7cmV0dXJuIHJ9ZnVuY3Rpb24gSXdlKGUsdCxyKXt2YXIgbj1lLl9fdHJhbnNpdGlvbixpO25bdF09cixyLnRpbWVyPVBfKG8sMCxyLnRpbWUpO2Z1bmN0aW9uIG8oYyl7ci5zdGF0ZT1NTCxyLnRpbWVyLnJlc3RhcnQoYSxyLmRlbGF5LHIudGltZSksci5kZWxheTw9YyYmYShjLXIuZGVsYXkpfWZ1bmN0aW9uIGEoYyl7dmFyIHUsaCxmLHA7aWYoci5zdGF0ZSE9PU1MKXJldHVybiBsKCk7Zm9yKHUgaW4gbilpZihwPW5bdV0scC5uYW1lPT09ci5uYW1lKXtpZihwLnN0YXRlPT09U0wpcmV0dXJuIHpFKGEpO3Auc3RhdGU9PT1pdnQ/KHAuc3RhdGU9RkUscC50aW1lci5zdG9wKCkscC5vbi5jYWxsKCJpbnRlcnJ1cHQiLGUsZS5fX2RhdGFfXyxwLmluZGV4LHAuZ3JvdXApLGRlbGV0ZSBuW3VdKTordTx0JiYocC5zdGF0ZT1GRSxwLnRpbWVyLnN0b3AoKSxwLm9uLmNhbGwoImNhbmNlbCIsZSxlLl9fZGF0YV9fLHAuaW5kZXgscC5ncm91cCksZGVsZXRlIG5bdV0pfWlmKHpFKGZ1bmN0aW9uKCl7ci5zdGF0ZT09PVNMJiYoci5zdGF0ZT1pdnQsci50aW1lci5yZXN0YXJ0KHMsci5kZWxheSxyLnRpbWUpLHMoYykpfSksci5zdGF0ZT1FTCxyLm9uLmNhbGwoInN0YXJ0IixlLGUuX19kYXRhX18sci5pbmRleCxyLmdyb3VwKSxyLnN0YXRlPT09RUwpe2ZvcihyLnN0YXRlPVNMLGk9bmV3IEFycmF5KGY9ci50d2Vlbi5sZW5ndGgpLHU9MCxoPS0xO3U8ZjsrK3UpKHA9ci50d2Vlblt1XS52YWx1ZS5jYWxsKGUsZS5fX2RhdGFfXyxyLmluZGV4LHIuZ3JvdXApKSYmKGlbKytoXT1wKTtpLmxlbmd0aD1oKzF9fWZ1bmN0aW9uIHMoYyl7Zm9yKHZhciB1PWM8ci5kdXJhdGlvbj9yLmVhc2UuY2FsbChudWxsLGMvci5kdXJhdGlvbik6KHIudGltZXIucmVzdGFydChsKSxyLnN0YXRlPVRMLDEpLGg9LTEsZj1pLmxlbmd0aDsrK2g8ZjspaVtoXS5jYWxsKGUsdSk7ci5zdGF0ZT09PVRMJiYoci5vbi5jYWxsKCJlbmQiLGUsZS5fX2RhdGFfXyxyLmluZGV4LHIuZ3JvdXApLGwoKSl9ZnVuY3Rpb24gbCgpe3Iuc3RhdGU9RkUsci50aW1lci5zdG9wKCksZGVsZXRlIG5bdF07Zm9yKHZhciBjIGluIG4pcmV0dXJuO2RlbGV0ZSBlLl9fdHJhbnNpdGlvbn19ZnVuY3Rpb24gaHUoZSx0KXt2YXIgcj1lLl9fdHJhbnNpdGlvbixuLGksbz0hMCxhO2lmKCEhcil7dD10PT1udWxsP251bGw6dCsiIjtmb3IoYSBpbiByKXtpZigobj1yW2FdKS5uYW1lIT09dCl7bz0hMTtjb250aW51ZX1pPW4uc3RhdGU+RUwmJm4uc3RhdGU8VEwsbi5zdGF0ZT1GRSxuLnRpbWVyLnN0b3AoKSxuLm9uLmNhbGwoaT8iaW50ZXJydXB0IjoiY2FuY2VsIixlLGUuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSxkZWxldGUgclthXX1vJiZkZWxldGUgZS5fX3RyYW5zaXRpb259fWZ1bmN0aW9uIGF2dChlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aHUodGhpcyxlKX0pfWZ1bmN0aW9uIEx3ZShlLHQpe3ZhciByLG47cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9emEodGhpcyxlKSxvPWkudHdlZW47aWYobyE9PXIpe249cj1vO2Zvcih2YXIgYT0wLHM9bi5sZW5ndGg7YTxzOysrYSlpZihuW2FdLm5hbWU9PT10KXtuPW4uc2xpY2UoKSxuLnNwbGljZShhLDEpO2JyZWFrfX1pLnR3ZWVuPW59fWZ1bmN0aW9uIGt3ZShlLHQscil7dmFyIG4saTtpZih0eXBlb2YgciE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89emEodGhpcyxlKSxhPW8udHdlZW47aWYoYSE9PW4pe2k9KG49YSkuc2xpY2UoKTtmb3IodmFyIHM9e25hbWU6dCx2YWx1ZTpyfSxsPTAsYz1pLmxlbmd0aDtsPGM7KytsKWlmKGlbbF0ubmFtZT09PXQpe2lbbF09czticmVha31sPT09YyYmaS5wdXNoKHMpfW8udHdlZW49aX19ZnVuY3Rpb24gc3Z0KGUsdCl7dmFyIHI9dGhpcy5faWQ7aWYoZSs9IiIsYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodmFyIG49WmkodGhpcy5ub2RlKCkscikudHdlZW4saT0wLG89bi5sZW5ndGgsYTtpPG87KytpKWlmKChhPW5baV0pLm5hbWU9PT1lKXJldHVybiBhLnZhbHVlO3JldHVybiBudWxsfXJldHVybiB0aGlzLmVhY2goKHQ9PW51bGw/THdlOmt3ZSkocixlLHQpKX1mdW5jdGlvbiBiYihlLHQscil7dmFyIG49ZS5faWQ7cmV0dXJuIGUuZWFjaChmdW5jdGlvbigpe3ZhciBpPXphKHRoaXMsbik7KGkudmFsdWV8fChpLnZhbHVlPXt9KSlbdF09ci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxmdW5jdGlvbihpKXtyZXR1cm4gWmkoaSxuKS52YWx1ZVt0XX19ZnVuY3Rpb24gQ0woZSx0KXt2YXIgcjtyZXR1cm4odHlwZW9mIHQ9PSJudW1iZXIiP3ppOnQgaW5zdGFuY2VvZiByYz9HbToocj1yYyh0KSk/KHQ9cixHbSk6dmIpKGUsdCl9ZnVuY3Rpb24gUndlKGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKGUpfX1mdW5jdGlvbiBOd2UoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpfX1mdW5jdGlvbiBEd2UoZSx0LHIpe3ZhciBuLGk9cisiIixvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0QXR0cmlidXRlKGUpO3JldHVybiBhPT09aT9udWxsOmE9PT1uP286bz10KG49YSxyKX19ZnVuY3Rpb24gT3dlKGUsdCxyKXt2YXIgbixpPXIrIiIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT10aGlzLmdldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCk7cmV0dXJuIGE9PT1pP251bGw6YT09PW4/bzpvPXQobj1hLHIpfX1mdW5jdGlvbiB6d2UoZSx0LHIpe3ZhciBuLGksbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzPXIodGhpcyksbDtyZXR1cm4gcz09bnVsbD92b2lkIHRoaXMucmVtb3ZlQXR0cmlidXRlKGUpOihhPXRoaXMuZ2V0QXR0cmlidXRlKGUpLGw9cysiIixhPT09bD9udWxsOmE9PT1uJiZsPT09aT9vOihpPWwsbz10KG49YSxzKSkpfX1mdW5jdGlvbiBGd2UoZSx0LHIpe3ZhciBuLGksbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzPXIodGhpcyksbDtyZXR1cm4gcz09bnVsbD92b2lkIHRoaXMucmVtb3ZlQXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsKTooYT10aGlzLmdldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCksbD1zKyIiLGE9PT1sP251bGw6YT09PW4mJmw9PT1pP286KGk9bCxvPXQobj1hLHMpKSl9fWZ1bmN0aW9uIGx2dChlLHQpe3ZhciByPUloKGUpLG49cj09PSJ0cmFuc2Zvcm0iP3lMOkNMO3JldHVybiB0aGlzLmF0dHJUd2VlbihlLHR5cGVvZiB0PT0iZnVuY3Rpb24iPyhyLmxvY2FsP0Z3ZTp6d2UpKHIsbixiYih0aGlzLCJhdHRyLiIrZSx0KSk6dD09bnVsbD8oci5sb2NhbD9Od2U6UndlKShyKTooci5sb2NhbD9Pd2U6RHdlKShyLG4sdCkpfWZ1bmN0aW9uIEJ3ZShlLHQpe3JldHVybiBmdW5jdGlvbihyKXt0aGlzLnNldEF0dHJpYnV0ZShlLHQuY2FsbCh0aGlzLHIpKX19ZnVuY3Rpb24gSHdlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHIpe3RoaXMuc2V0QXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsLHQuY2FsbCh0aGlzLHIpKX19ZnVuY3Rpb24gVndlKGUsdCl7dmFyIHIsbjtmdW5jdGlvbiBpKCl7dmFyIG89dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG8hPT1uJiYocj0obj1vKSYmSHdlKGUsbykpLHJ9cmV0dXJuIGkuX3ZhbHVlPXQsaX1mdW5jdGlvbiBVd2UoZSx0KXt2YXIgcixuO2Z1bmN0aW9uIGkoKXt2YXIgbz10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gbyE9PW4mJihyPShuPW8pJiZCd2UoZSxvKSkscn1yZXR1cm4gaS5fdmFsdWU9dCxpfWZ1bmN0aW9uIGN2dChlLHQpe3ZhciByPSJhdHRyLiIrZTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKHI9dGhpcy50d2VlbihyKSkmJnIuX3ZhbHVlO2lmKHQ9PW51bGwpcmV0dXJuIHRoaXMudHdlZW4ocixudWxsKTtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3I7dmFyIG49SWgoZSk7cmV0dXJuIHRoaXMudHdlZW4ociwobi5sb2NhbD9Wd2U6VXdlKShuLHQpKX1mdW5jdGlvbiBxd2UoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtCRSh0aGlzLGUpLmRlbGF5PSt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gR3dlKGUsdCl7cmV0dXJuIHQ9K3QsZnVuY3Rpb24oKXtCRSh0aGlzLGUpLmRlbGF5PXR9fWZ1bmN0aW9uIHV2dChlKXt2YXIgdD10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKHR5cGVvZiBlPT0iZnVuY3Rpb24iP3F3ZTpHd2UpKHQsZSkpOlppKHRoaXMubm9kZSgpLHQpLmRlbGF5fWZ1bmN0aW9uIFd3ZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3phKHRoaXMsZSkuZHVyYXRpb249K3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBZd2UoZSx0KXtyZXR1cm4gdD0rdCxmdW5jdGlvbigpe3phKHRoaXMsZSkuZHVyYXRpb249dH19ZnVuY3Rpb24gaHZ0KGUpe3ZhciB0PXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgodHlwZW9mIGU9PSJmdW5jdGlvbiI/V3dlOll3ZSkodCxlKSk6WmkodGhpcy5ub2RlKCksdCkuZHVyYXRpb259ZnVuY3Rpb24gandlKGUsdCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe3phKHRoaXMsZSkuZWFzZT10fX1mdW5jdGlvbiBmdnQoZSl7dmFyIHQ9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKGp3ZSh0LGUpKTpaaSh0aGlzLm5vZGUoKSx0KS5lYXNlfWZ1bmN0aW9uIHB2dChlKXt0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmKGU9dWIoZSkpO2Zvcih2YXIgdD10aGlzLl9ncm91cHMscj10Lmxlbmd0aCxuPW5ldyBBcnJheShyKSxpPTA7aTxyOysraSlmb3IodmFyIG89dFtpXSxhPW8ubGVuZ3RoLHM9bltpXT1bXSxsLGM9MDtjPGE7KytjKShsPW9bY10pJiZlLmNhbGwobCxsLl9fZGF0YV9fLGMsbykmJnMucHVzaChsKTtyZXR1cm4gbmV3IEZvKG4sdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX1mdW5jdGlvbiBkdnQoZSl7aWYoZS5faWQhPT10aGlzLl9pZCl0aHJvdyBuZXcgRXJyb3I7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxyPWUuX2dyb3VwcyxuPXQubGVuZ3RoLGk9ci5sZW5ndGgsbz1NYXRoLm1pbihuLGkpLGE9bmV3IEFycmF5KG4pLHM9MDtzPG87KytzKWZvcih2YXIgbD10W3NdLGM9cltzXSx1PWwubGVuZ3RoLGg9YVtzXT1uZXcgQXJyYXkodSksZixwPTA7cDx1OysrcCkoZj1sW3BdfHxjW3BdKSYmKGhbcF09Zik7Zm9yKDtzPG47KytzKWFbc109dFtzXTtyZXR1cm4gbmV3IEZvKGEsdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX1mdW5jdGlvbiBYd2UoZSl7cmV0dXJuKGUrIiIpLnRyaW0oKS5zcGxpdCgvXnxccysvKS5ldmVyeShmdW5jdGlvbih0KXt2YXIgcj10LmluZGV4T2YoIi4iKTtyZXR1cm4gcj49MCYmKHQ9dC5zbGljZSgwLHIpKSwhdHx8dD09PSJzdGFydCJ9KX1mdW5jdGlvbiAkd2UoZSx0LHIpe3ZhciBuLGksbz1Yd2UodCk/QkU6emE7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9byh0aGlzLGUpLHM9YS5vbjtzIT09biYmKGk9KG49cykuY29weSgpKS5vbih0LHIpLGEub249aX19ZnVuY3Rpb24gbXZ0KGUsdCl7dmFyIHI9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9aaSh0aGlzLm5vZGUoKSxyKS5vbi5vbihlKTp0aGlzLmVhY2goJHdlKHIsZSx0KSl9ZnVuY3Rpb24gS3dlKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTtmb3IodmFyIHIgaW4gdGhpcy5fX3RyYW5zaXRpb24paWYoK3IhPT1lKXJldHVybjt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfX1mdW5jdGlvbiBndnQoKXtyZXR1cm4gdGhpcy5vbigiZW5kLnJlbW92ZSIsS3dlKHRoaXMuX2lkKSl9ZnVuY3Rpb24gX3Z0KGUpe3ZhciB0PXRoaXMuX25hbWUscj10aGlzLl9pZDt0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmKGU9RG0oZSkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsaT1uLmxlbmd0aCxvPW5ldyBBcnJheShpKSxhPTA7YTxpOysrYSlmb3IodmFyIHM9blthXSxsPXMubGVuZ3RoLGM9b1thXT1uZXcgQXJyYXkobCksdSxoLGY9MDtmPGw7KytmKSh1PXNbZl0pJiYoaD1lLmNhbGwodSx1Ll9fZGF0YV9fLGYscykpJiYoIl9fZGF0YV9fImluIHUmJihoLl9fZGF0YV9fPXUuX19kYXRhX18pLGNbZl09aCxXbShjW2ZdLHQscixmLGMsWmkodSxyKSkpO3JldHVybiBuZXcgRm8obyx0aGlzLl9wYXJlbnRzLHQscil9ZnVuY3Rpb24geXZ0KGUpe3ZhciB0PXRoaXMuX25hbWUscj10aGlzLl9pZDt0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmKGU9Y2IoZSkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsaT1uLmxlbmd0aCxvPVtdLGE9W10scz0wO3M8aTsrK3MpZm9yKHZhciBsPW5bc10sYz1sLmxlbmd0aCx1LGg9MDtoPGM7KytoKWlmKHU9bFtoXSl7Zm9yKHZhciBmPWUuY2FsbCh1LHUuX19kYXRhX18saCxsKSxwLGQ9WmkodSxyKSxnPTAsXz1mLmxlbmd0aDtnPF87KytnKShwPWZbZ10pJiZXbShwLHQscixnLGYsZCk7by5wdXNoKGYpLGEucHVzaCh1KX1yZXR1cm4gbmV3IEZvKG8sYSx0LHIpfXZhciBad2U9TGgucHJvdG90eXBlLmNvbnN0cnVjdG9yO2Z1bmN0aW9uIHZ2dCgpe3JldHVybiBuZXcgWndlKHRoaXMuX2dyb3Vwcyx0aGlzLl9wYXJlbnRzKX1mdW5jdGlvbiBKd2UoZSx0KXt2YXIgcixuLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89TXAodGhpcyxlKSxhPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KGUpLE1wKHRoaXMsZSkpO3JldHVybiBvPT09YT9udWxsOm89PT1yJiZhPT09bj9pOmk9dChyPW8sbj1hKX19ZnVuY3Rpb24geHZ0KGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoZSl9fWZ1bmN0aW9uIFF3ZShlLHQscil7dmFyIG4saT1yKyIiLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9TXAodGhpcyxlKTtyZXR1cm4gYT09PWk/bnVsbDphPT09bj9vOm89dChuPWEscil9fWZ1bmN0aW9uIHRTZShlLHQscil7dmFyIG4saSxvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPU1wKHRoaXMsZSkscz1yKHRoaXMpLGw9cysiIjtyZXR1cm4gcz09bnVsbCYmKGw9cz0odGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShlKSxNcCh0aGlzLGUpKSksYT09PWw/bnVsbDphPT09biYmbD09PWk/bzooaT1sLG89dChuPWEscykpfX1mdW5jdGlvbiBlU2UoZSx0KXt2YXIgcixuLGksbz0ic3R5bGUuIit0LGE9ImVuZC4iK28scztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbD16YSh0aGlzLGUpLGM9bC5vbix1PWwudmFsdWVbb109PW51bGw/c3x8KHM9eHZ0KHQpKTp2b2lkIDA7KGMhPT1yfHxpIT09dSkmJihuPShyPWMpLmNvcHkoKSkub24oYSxpPXUpLGwub249bn19ZnVuY3Rpb24gYnZ0KGUsdCxyKXt2YXIgbj0oZSs9IiIpPT0idHJhbnNmb3JtIj9fTDpDTDtyZXR1cm4gdD09bnVsbD90aGlzLnN0eWxlVHdlZW4oZSxKd2UoZSxuKSkub24oImVuZC5zdHlsZS4iK2UseHZ0KGUpKTp0eXBlb2YgdD09ImZ1bmN0aW9uIj90aGlzLnN0eWxlVHdlZW4oZSx0U2UoZSxuLGJiKHRoaXMsInN0eWxlLiIrZSx0KSkpLmVhY2goZVNlKHRoaXMuX2lkLGUpKTp0aGlzLnN0eWxlVHdlZW4oZSxRd2UoZSxuLHQpLHIpLm9uKCJlbmQuc3R5bGUuIitlLG51bGwpfWZ1bmN0aW9uIHJTZShlLHQscil7cmV0dXJuIGZ1bmN0aW9uKG4pe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkoZSx0LmNhbGwodGhpcyxuKSxyKX19ZnVuY3Rpb24gblNlKGUsdCxyKXt2YXIgbixpO2Z1bmN0aW9uIG8oKXt2YXIgYT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gYSE9PWkmJihuPShpPWEpJiZyU2UoZSxhLHIpKSxufXJldHVybiBvLl92YWx1ZT10LG99ZnVuY3Rpb24gd3Z0KGUsdCxyKXt2YXIgbj0ic3R5bGUuIisoZSs9IiIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4obj10aGlzLnR3ZWVuKG4pKSYmbi5fdmFsdWU7aWYodD09bnVsbClyZXR1cm4gdGhpcy50d2VlbihuLG51bGwpO2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gdGhpcy50d2VlbihuLG5TZShlLHQscj09bnVsbD8iIjpyKSl9ZnVuY3Rpb24gaVNlKGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9ZX19ZnVuY3Rpb24gb1NlKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PWUodGhpcyk7dGhpcy50ZXh0Q29udGVudD10PT1udWxsPyIiOnR9fWZ1bmN0aW9uIFN2dChlKXtyZXR1cm4gdGhpcy50d2VlbigidGV4dCIsdHlwZW9mIGU9PSJmdW5jdGlvbiI/b1NlKGJiKHRoaXMsInRleHQiLGUpKTppU2UoZT09bnVsbD8iIjplKyIiKSl9ZnVuY3Rpb24gYVNlKGUpe3JldHVybiBmdW5jdGlvbih0KXt0aGlzLnRleHRDb250ZW50PWUuY2FsbCh0aGlzLHQpfX1mdW5jdGlvbiBzU2UoZSl7dmFyIHQscjtmdW5jdGlvbiBuKCl7dmFyIGk9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGkhPT1yJiYodD0ocj1pKSYmYVNlKGkpKSx0fXJldHVybiBuLl92YWx1ZT1lLG59ZnVuY3Rpb24gTXZ0KGUpe3ZhciB0PSJ0ZXh0IjtpZihhcmd1bWVudHMubGVuZ3RoPDEpcmV0dXJuKHQ9dGhpcy50d2Vlbih0KSkmJnQuX3ZhbHVlO2lmKGU9PW51bGwpcmV0dXJuIHRoaXMudHdlZW4odCxudWxsKTtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4odCxzU2UoZSkpfWZ1bmN0aW9uIEV2dCgpe2Zvcih2YXIgZT10aGlzLl9uYW1lLHQ9dGhpcy5faWQscj1BTCgpLG49dGhpcy5fZ3JvdXBzLGk9bi5sZW5ndGgsbz0wO288aTsrK28pZm9yKHZhciBhPW5bb10scz1hLmxlbmd0aCxsLGM9MDtjPHM7KytjKWlmKGw9YVtjXSl7dmFyIHU9WmkobCx0KTtXbShsLGUscixjLGEse3RpbWU6dS50aW1lK3UuZGVsYXkrdS5kdXJhdGlvbixkZWxheTowLGR1cmF0aW9uOnUuZHVyYXRpb24sZWFzZTp1LmVhc2V9KX1yZXR1cm4gbmV3IEZvKG4sdGhpcy5fcGFyZW50cyxlLHIpfWZ1bmN0aW9uIFR2dCgpe3ZhciBlLHQscj10aGlzLG49ci5faWQsaT1yLnNpemUoKTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obyxhKXt2YXIgcz17dmFsdWU6YX0sbD17dmFsdWU6ZnVuY3Rpb24oKXstLWk9PT0wJiZvKCl9fTtyLmVhY2goZnVuY3Rpb24oKXt2YXIgYz16YSh0aGlzLG4pLHU9Yy5vbjt1IT09ZSYmKHQ9KGU9dSkuY29weSgpLHQuXy5jYW5jZWwucHVzaChzKSx0Ll8uaW50ZXJydXB0LnB1c2gocyksdC5fLmVuZC5wdXNoKGwpKSxjLm9uPXR9KX0pfXZhciBsU2U9MDtmdW5jdGlvbiBGbyhlLHQscixuKXt0aGlzLl9ncm91cHM9ZSx0aGlzLl9wYXJlbnRzPXQsdGhpcy5fbmFtZT1yLHRoaXMuX2lkPW59ZnVuY3Rpb24gUEwoZSl7cmV0dXJuIExoKCkudHJhbnNpdGlvbihlKX1mdW5jdGlvbiBBTCgpe3JldHVybisrbFNlfXZhciB3Yj1MaC5wcm90b3R5cGU7Rm8ucHJvdG90eXBlPVBMLnByb3RvdHlwZT17Y29uc3RydWN0b3I6Rm8sc2VsZWN0Ol92dCxzZWxlY3RBbGw6eXZ0LGZpbHRlcjpwdnQsbWVyZ2U6ZHZ0LHNlbGVjdGlvbjp2dnQsdHJhbnNpdGlvbjpFdnQsY2FsbDp3Yi5jYWxsLG5vZGVzOndiLm5vZGVzLG5vZGU6d2Iubm9kZSxzaXplOndiLnNpemUsZW1wdHk6d2IuZW1wdHksZWFjaDp3Yi5lYWNoLG9uOm12dCxhdHRyOmx2dCxhdHRyVHdlZW46Y3Z0LHN0eWxlOmJ2dCxzdHlsZVR3ZWVuOnd2dCx0ZXh0OlN2dCx0ZXh0VHdlZW46TXZ0LHJlbW92ZTpndnQsdHdlZW46c3Z0LGRlbGF5OnV2dCxkdXJhdGlvbjpodnQsZWFzZTpmdnQsZW5kOlR2dH07TF8oKTt2YXIgVVk9e3RpbWU6bnVsbCxkZWxheTowLGR1cmF0aW9uOjI1MCxlYXNlOmJzfTtmdW5jdGlvbiBfU2UoZSx0KXtmb3IodmFyIHI7IShyPWUuX190cmFuc2l0aW9uKXx8IShyPXJbdF0pOylpZighKGU9ZS5wYXJlbnROb2RlKSlyZXR1cm4gVVkudGltZT1QcCgpLFVZO3JldHVybiByfWZ1bmN0aW9uIEh2dChlKXt2YXIgdCxyO2UgaW5zdGFuY2VvZiBGbz8odD1lLl9pZCxlPWUuX25hbWUpOih0PUFMKCksKHI9VVkpLnRpbWU9UHAoKSxlPWU9PW51bGw/bnVsbDplKyIiKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGk9bi5sZW5ndGgsbz0wO288aTsrK28pZm9yKHZhciBhPW5bb10scz1hLmxlbmd0aCxsLGM9MDtjPHM7KytjKShsPWFbY10pJiZXbShsLGUsdCxjLGEscnx8X1NlKGwsdCkpO3JldHVybiBuZXcgRm8obix0aGlzLl9wYXJlbnRzLGUsdCl9TGgucHJvdG90eXBlLmludGVycnVwdD1hdnQ7TGgucHJvdG90eXBlLnRyYW5zaXRpb249SHZ0O3ZhciB5U2U9W251bGxdO2Z1bmN0aW9uIFZ2dChlLHQpe3ZhciByPWUuX190cmFuc2l0aW9uLG4saTtpZihyKXt0PXQ9PW51bGw/bnVsbDp0KyIiO2ZvcihpIGluIHIpaWYoKG49cltpXSkuc3RhdGU+TUwmJm4ubmFtZT09PXQpcmV0dXJuIG5ldyBGbyhbW2VdXSx5U2UsdCwraSl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gRkwoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fWZ1bmN0aW9uIFV2dChlLHQscil7dGhpcy50YXJnZXQ9ZSx0aGlzLnR5cGU9dCx0aGlzLnNlbGVjdGlvbj1yfWZ1bmN0aW9uIHFZKCl7cXQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gQkwoKXtxdC5wcmV2ZW50RGVmYXVsdCgpLHF0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfXZhciBxdnQ9e25hbWU6ImRyYWcifSxHWT17bmFtZToic3BhY2UifSxNYj17bmFtZToiaGFuZGxlIn0sRWI9e25hbWU6ImNlbnRlciJ9O2Z1bmN0aW9uIEd2dChlKXtyZXR1cm5bK2VbMF0sK2VbMV1dfWZ1bmN0aW9uIFlZKGUpe3JldHVybltHdnQoZVswXSksR3Z0KGVbMV0pXX1mdW5jdGlvbiB2U2UoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBDcCh0LHF0LnRvdWNoZXMsZSl9fXZhciBITD17bmFtZToieCIsaGFuZGxlczpbInciLCJlIl0ubWFwKEhFKSxpbnB1dDpmdW5jdGlvbihlLHQpe3JldHVybiBlPT1udWxsP251bGw6W1srZVswXSx0WzBdWzFdXSxbK2VbMV0sdFsxXVsxXV1dfSxvdXRwdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJltlWzBdWzBdLGVbMV1bMF1dfX0sVkw9e25hbWU6InkiLGhhbmRsZXM6WyJuIiwicyJdLm1hcChIRSksaW5wdXQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09bnVsbD9udWxsOltbdFswXVswXSwrZVswXV0sW3RbMV1bMF0sK2VbMV1dXX0sb3V0cHV0OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZbZVswXVsxXSxlWzFdWzFdXX19LHhTZT17bmFtZToieHkiLGhhbmRsZXM6WyJuIiwidyIsImUiLCJzIiwibnciLCJuZSIsInN3Iiwic2UiXS5tYXAoSEUpLGlucHV0OmZ1bmN0aW9uKGUpe3JldHVybiBlPT1udWxsP251bGw6WVkoZSl9LG91dHB1dDpmdW5jdGlvbihlKXtyZXR1cm4gZX19LElwPXtvdmVybGF5OiJjcm9zc2hhaXIiLHNlbGVjdGlvbjoibW92ZSIsbjoibnMtcmVzaXplIixlOiJldy1yZXNpemUiLHM6Im5zLXJlc2l6ZSIsdzoiZXctcmVzaXplIixudzoibndzZS1yZXNpemUiLG5lOiJuZXN3LXJlc2l6ZSIsc2U6Im53c2UtcmVzaXplIixzdzoibmVzdy1yZXNpemUifSxXdnQ9e2U6InciLHc6ImUiLG53OiJuZSIsbmU6Im53IixzZToic3ciLHN3OiJzZSJ9LFl2dD17bjoicyIsczoibiIsbnc6InN3IixuZToic2UiLHNlOiJuZSIsc3c6Im53In0sYlNlPXtvdmVybGF5OjEsc2VsZWN0aW9uOjEsbjpudWxsLGU6MSxzOm51bGwsdzotMSxudzotMSxuZToxLHNlOjEsc3c6LTF9LHdTZT17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46LTEsZTpudWxsLHM6MSx3Om51bGwsbnc6LTEsbmU6LTEsc2U6MSxzdzoxfTtmdW5jdGlvbiBIRShlKXtyZXR1cm57dHlwZTplfX1mdW5jdGlvbiBTU2UoKXtyZXR1cm4hcXQuY3RybEtleSYmIXF0LmJ1dHRvbn1mdW5jdGlvbiBNU2UoKXt2YXIgZT10aGlzLm93bmVyU1ZHRWxlbWVudHx8dGhpcztyZXR1cm4gZS5oYXNBdHRyaWJ1dGUoInZpZXdCb3giKT8oZT1lLnZpZXdCb3guYmFzZVZhbCxbW2UueCxlLnldLFtlLngrZS53aWR0aCxlLnkrZS5oZWlnaHRdXSk6W1swLDBdLFtlLndpZHRoLmJhc2VWYWwudmFsdWUsZS5oZWlnaHQuYmFzZVZhbC52YWx1ZV1dfWZ1bmN0aW9uIEVTZSgpe3JldHVybiBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHN8fCJvbnRvdWNoc3RhcnQiaW4gdGhpc31mdW5jdGlvbiBXWShlKXtmb3IoOyFlLl9fYnJ1c2g7KWlmKCEoZT1lLnBhcmVudE5vZGUpKXJldHVybjtyZXR1cm4gZS5fX2JydXNofWZ1bmN0aW9uIFRTZShlKXtyZXR1cm4gZVswXVswXT09PWVbMV1bMF18fGVbMF1bMV09PT1lWzFdWzFdfWZ1bmN0aW9uIFVMKGUpe3ZhciB0PWUuX19icnVzaDtyZXR1cm4gdD90LmRpbS5vdXRwdXQodC5zZWxlY3Rpb24pOm51bGx9ZnVuY3Rpb24ganZ0KCl7cmV0dXJuIGpZKEhMKX1mdW5jdGlvbiBxTCgpe3JldHVybiBqWShWTCl9ZnVuY3Rpb24gR0woKXtyZXR1cm4galkoeFNlKX1mdW5jdGlvbiBqWShlKXt2YXIgdD1NU2Uscj1TU2Usbj1FU2UsaT0hMCxvPXhzKCJzdGFydCIsImJydXNoIiwiZW5kIiksYT02LHM7ZnVuY3Rpb24gbChfKXt2YXIgeT1fLnByb3BlcnR5KCJfX2JydXNoIixnKS5zZWxlY3RBbGwoIi5vdmVybGF5IikuZGF0YShbSEUoIm92ZXJsYXkiKV0pO3kuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsIm92ZXJsYXkiKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLmF0dHIoImN1cnNvciIsSXAub3ZlcmxheSkubWVyZ2UoeSkuZWFjaChmdW5jdGlvbigpe3ZhciBiPVdZKHRoaXMpLmV4dGVudDtIdCh0aGlzKS5hdHRyKCJ4IixiWzBdWzBdKS5hdHRyKCJ5IixiWzBdWzFdKS5hdHRyKCJ3aWR0aCIsYlsxXVswXS1iWzBdWzBdKS5hdHRyKCJoZWlnaHQiLGJbMV1bMV0tYlswXVsxXSl9KSxfLnNlbGVjdEFsbCgiLnNlbGVjdGlvbiIpLmRhdGEoW0hFKCJzZWxlY3Rpb24iKV0pLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJzZWxlY3Rpb24iKS5hdHRyKCJjdXJzb3IiLElwLnNlbGVjdGlvbikuYXR0cigiZmlsbCIsIiM3NzciKS5hdHRyKCJmaWxsLW9wYWNpdHkiLC4zKS5hdHRyKCJzdHJva2UiLCIjZmZmIikuYXR0cigic2hhcGUtcmVuZGVyaW5nIiwiY3Jpc3BFZGdlcyIpO3ZhciB4PV8uc2VsZWN0QWxsKCIuaGFuZGxlIikuZGF0YShlLmhhbmRsZXMsZnVuY3Rpb24oYil7cmV0dXJuIGIudHlwZX0pO3guZXhpdCgpLnJlbW92ZSgpLHguZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsZnVuY3Rpb24oYil7cmV0dXJuImhhbmRsZSBoYW5kbGUtLSIrYi50eXBlfSkuYXR0cigiY3Vyc29yIixmdW5jdGlvbihiKXtyZXR1cm4gSXBbYi50eXBlXX0pLF8uZWFjaChjKS5hdHRyKCJmaWxsIiwibm9uZSIpLmF0dHIoInBvaW50ZXItZXZlbnRzIiwiYWxsIikub24oIm1vdXNlZG93bi5icnVzaCIsZikuZmlsdGVyKG4pLm9uKCJ0b3VjaHN0YXJ0LmJydXNoIixmKS5vbigidG91Y2htb3ZlLmJydXNoIixwKS5vbigidG91Y2hlbmQuYnJ1c2ggdG91Y2hjYW5jZWwuYnJ1c2giLGQpLnN0eWxlKCJ0b3VjaC1hY3Rpb24iLCJub25lIikuc3R5bGUoIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvciIsInJnYmEoMCwwLDAsMCkiKX1sLm1vdmU9ZnVuY3Rpb24oXyx5KXtfLnNlbGVjdGlvbj9fLm9uKCJzdGFydC5icnVzaCIsZnVuY3Rpb24oKXt1KHRoaXMsYXJndW1lbnRzKS5iZWZvcmVzdGFydCgpLnN0YXJ0KCl9KS5vbigiaW50ZXJydXB0LmJydXNoIGVuZC5icnVzaCIsZnVuY3Rpb24oKXt1KHRoaXMsYXJndW1lbnRzKS5lbmQoKX0pLnR3ZWVuKCJicnVzaCIsZnVuY3Rpb24oKXt2YXIgeD10aGlzLGI9eC5fX2JydXNoLFM9dSh4LGFyZ3VtZW50cyksQz1iLnNlbGVjdGlvbixQPWUuaW5wdXQodHlwZW9mIHk9PSJmdW5jdGlvbiI/eS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6eSxiLmV4dGVudCksaz1uYyhDLFApO2Z1bmN0aW9uIE8oRCl7Yi5zZWxlY3Rpb249RD09PTEmJlA9PT1udWxsP251bGw6ayhEKSxjLmNhbGwoeCksUy5icnVzaCgpfXJldHVybiBDIT09bnVsbCYmUCE9PW51bGw/TzpPKDEpfSk6Xy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxiPWFyZ3VtZW50cyxTPXguX19icnVzaCxDPWUuaW5wdXQodHlwZW9mIHk9PSJmdW5jdGlvbiI/eS5hcHBseSh4LGIpOnksUy5leHRlbnQpLFA9dSh4LGIpLmJlZm9yZXN0YXJ0KCk7aHUoeCksUy5zZWxlY3Rpb249Qz09PW51bGw/bnVsbDpDLGMuY2FsbCh4KSxQLnN0YXJ0KCkuYnJ1c2goKS5lbmQoKX0pfSxsLmNsZWFyPWZ1bmN0aW9uKF8pe2wubW92ZShfLG51bGwpfTtmdW5jdGlvbiBjKCl7dmFyIF89SHQodGhpcykseT1XWSh0aGlzKS5zZWxlY3Rpb247eT8oXy5zZWxlY3RBbGwoIi5zZWxlY3Rpb24iKS5zdHlsZSgiZGlzcGxheSIsbnVsbCkuYXR0cigieCIseVswXVswXSkuYXR0cigieSIseVswXVsxXSkuYXR0cigid2lkdGgiLHlbMV1bMF0teVswXVswXSkuYXR0cigiaGVpZ2h0Iix5WzFdWzFdLXlbMF1bMV0pLF8uc2VsZWN0QWxsKCIuaGFuZGxlIikuc3R5bGUoImRpc3BsYXkiLG51bGwpLmF0dHIoIngiLGZ1bmN0aW9uKHgpe3JldHVybiB4LnR5cGVbeC50eXBlLmxlbmd0aC0xXT09PSJlIj95WzFdWzBdLWEvMjp5WzBdWzBdLWEvMn0pLmF0dHIoInkiLGZ1bmN0aW9uKHgpe3JldHVybiB4LnR5cGVbMF09PT0icyI/eVsxXVsxXS1hLzI6eVswXVsxXS1hLzJ9KS5hdHRyKCJ3aWR0aCIsZnVuY3Rpb24oeCl7cmV0dXJuIHgudHlwZT09PSJuInx8eC50eXBlPT09InMiP3lbMV1bMF0teVswXVswXSthOmF9KS5hdHRyKCJoZWlnaHQiLGZ1bmN0aW9uKHgpe3JldHVybiB4LnR5cGU9PT0iZSJ8fHgudHlwZT09PSJ3Ij95WzFdWzFdLXlbMF1bMV0rYTphfSkpOl8uc2VsZWN0QWxsKCIuc2VsZWN0aW9uLC5oYW5kbGUiKS5zdHlsZSgiZGlzcGxheSIsIm5vbmUiKS5hdHRyKCJ4IixudWxsKS5hdHRyKCJ5IixudWxsKS5hdHRyKCJ3aWR0aCIsbnVsbCkuYXR0cigiaGVpZ2h0IixudWxsKX1mdW5jdGlvbiB1KF8seSx4KXt2YXIgYj1fLl9fYnJ1c2guZW1pdHRlcjtyZXR1cm4gYiYmKCF4fHwhYi5jbGVhbik/YjpuZXcgaChfLHkseCl9ZnVuY3Rpb24gaChfLHkseCl7dGhpcy50aGF0PV8sdGhpcy5hcmdzPXksdGhpcy5zdGF0ZT1fLl9fYnJ1c2gsdGhpcy5hY3RpdmU9MCx0aGlzLmNsZWFuPXh9aC5wcm90b3R5cGU9e2JlZm9yZXN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuKyt0aGlzLmFjdGl2ZT09PTEmJih0aGlzLnN0YXRlLmVtaXR0ZXI9dGhpcyx0aGlzLnN0YXJ0aW5nPSEwKSx0aGlzfSxzdGFydDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0aW5nPyh0aGlzLnN0YXJ0aW5nPSExLHRoaXMuZW1pdCgic3RhcnQiKSk6dGhpcy5lbWl0KCJicnVzaCIpLHRoaXN9LGJydXNoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW1pdCgiYnJ1c2giKSx0aGlzfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4tLXRoaXMuYWN0aXZlPT09MCYmKGRlbGV0ZSB0aGlzLnN0YXRlLmVtaXR0ZXIsdGhpcy5lbWl0KCJlbmQiKSksdGhpc30sZW1pdDpmdW5jdGlvbihfKXtFcChuZXcgVXZ0KGwsXyxlLm91dHB1dCh0aGlzLnN0YXRlLnNlbGVjdGlvbikpLG8uYXBwbHksbyxbXyx0aGlzLnRoYXQsdGhpcy5hcmdzXSl9fTtmdW5jdGlvbiBmKCl7aWYocyYmIXF0LnRvdWNoZXN8fCFyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSlyZXR1cm47dmFyIF89dGhpcyx5PXF0LnRhcmdldC5fX2RhdGFfXy50eXBlLHg9KGkmJnF0Lm1ldGFLZXk/eT0ib3ZlcmxheSI6eSk9PT0ic2VsZWN0aW9uIj9xdnQ6aSYmcXQuYWx0S2V5P0ViOk1iLGI9ZT09PVZMP251bGw6YlNlW3ldLFM9ZT09PUhMP251bGw6d1NlW3ldLEM9V1koXyksUD1DLmV4dGVudCxrPUMuc2VsZWN0aW9uLE89UFswXVswXSxELEIsST1QWzBdWzFdLEwsUixGPVBbMV1bMF0seixVLFc9UFsxXVsxXSxaLHJ0LG90PTAsc3Q9MCxTdCxidD1iJiZTJiZpJiZxdC5zaGlmdEtleSxNdCxsdCxLdD1xdC50b3VjaGVzP3ZTZShxdC5jaGFuZ2VkVG91Y2hlc1swXS5pZGVudGlmaWVyKTp6byxfdD1LdChfKSxjdD1fdCxYPXUoXyxhcmd1bWVudHMsITApLmJlZm9yZXN0YXJ0KCk7eT09PSJvdmVybGF5Ij8oayYmKFN0PSEwKSxDLnNlbGVjdGlvbj1rPVtbRD1lPT09Vkw/TzpfdFswXSxMPWU9PT1ITD9JOl90WzFdXSxbej1lPT09Vkw/RjpELFo9ZT09PUhMP1c6TF1dKTooRD1rWzBdWzBdLEw9a1swXVsxXSx6PWtbMV1bMF0sWj1rWzFdWzFdKSxCPUQsUj1MLFU9eixydD1aO3ZhciBldD1IdChfKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsIm5vbmUiKSxkdD1ldC5zZWxlY3RBbGwoIi5vdmVybGF5IikuYXR0cigiY3Vyc29yIixJcFt5XSk7aWYocXQudG91Y2hlcylYLm1vdmVkPXB0LFguZW5kZWQ9d3Q7ZWxzZXt2YXIgcT1IdChxdC52aWV3KS5vbigibW91c2Vtb3ZlLmJydXNoIixwdCwhMCkub24oIm1vdXNldXAuYnJ1c2giLHd0LCEwKTtpJiZxLm9uKCJrZXlkb3duLmJydXNoIixrdCwhMCkub24oImtleXVwLmJydXNoIixpZSwhMCksRm0ocXQudmlldyl9cVkoKSxodShfKSxjLmNhbGwoXyksWC5zdGFydCgpO2Z1bmN0aW9uIHB0KCl7dmFyIGVlPUt0KF8pO2J0JiYhTXQmJiFsdCYmKE1hdGguYWJzKGVlWzBdLWN0WzBdKT5NYXRoLmFicyhlZVsxXS1jdFsxXSk/bHQ9ITA6TXQ9ITApLGN0PWVlLFN0PSEwLEJMKCksaHQoKX1mdW5jdGlvbiBodCgpe3ZhciBlZTtzd2l0Y2gob3Q9Y3RbMF0tX3RbMF0sc3Q9Y3RbMV0tX3RbMV0seCl7Y2FzZSBHWTpjYXNlIHF2dDp7YiYmKG90PU1hdGgubWF4KE8tRCxNYXRoLm1pbihGLXosb3QpKSxCPUQrb3QsVT16K290KSxTJiYoc3Q9TWF0aC5tYXgoSS1MLE1hdGgubWluKFctWixzdCkpLFI9TCtzdCxydD1aK3N0KTticmVha31jYXNlIE1iOntiPDA/KG90PU1hdGgubWF4KE8tRCxNYXRoLm1pbihGLUQsb3QpKSxCPUQrb3QsVT16KTpiPjAmJihvdD1NYXRoLm1heChPLXosTWF0aC5taW4oRi16LG90KSksQj1ELFU9eitvdCksUzwwPyhzdD1NYXRoLm1heChJLUwsTWF0aC5taW4oVy1MLHN0KSksUj1MK3N0LHJ0PVopOlM+MCYmKHN0PU1hdGgubWF4KEktWixNYXRoLm1pbihXLVosc3QpKSxSPUwscnQ9WitzdCk7YnJlYWt9Y2FzZSBFYjp7YiYmKEI9TWF0aC5tYXgoTyxNYXRoLm1pbihGLEQtb3QqYikpLFU9TWF0aC5tYXgoTyxNYXRoLm1pbihGLHorb3QqYikpKSxTJiYoUj1NYXRoLm1heChJLE1hdGgubWluKFcsTC1zdCpTKSkscnQ9TWF0aC5tYXgoSSxNYXRoLm1pbihXLForc3QqUykpKTticmVha319VTxCJiYoYio9LTEsZWU9RCxEPXosej1lZSxlZT1CLEI9VSxVPWVlLHkgaW4gV3Z0JiZkdC5hdHRyKCJjdXJzb3IiLElwW3k9V3Z0W3ldXSkpLHJ0PFImJihTKj0tMSxlZT1MLEw9WixaPWVlLGVlPVIsUj1ydCxydD1lZSx5IGluIFl2dCYmZHQuYXR0cigiY3Vyc29yIixJcFt5PVl2dFt5XV0pKSxDLnNlbGVjdGlvbiYmKGs9Qy5zZWxlY3Rpb24pLE10JiYoQj1rWzBdWzBdLFU9a1sxXVswXSksbHQmJihSPWtbMF1bMV0scnQ9a1sxXVsxXSksKGtbMF1bMF0hPT1CfHxrWzBdWzFdIT09Unx8a1sxXVswXSE9PVV8fGtbMV1bMV0hPT1ydCkmJihDLnNlbGVjdGlvbj1bW0IsUl0sW1UscnRdXSxjLmNhbGwoXyksWC5icnVzaCgpKX1mdW5jdGlvbiB3dCgpe2lmKHFZKCkscXQudG91Y2hlcyl7aWYocXQudG91Y2hlcy5sZW5ndGgpcmV0dXJuO3MmJmNsZWFyVGltZW91dChzKSxzPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtzPW51bGx9LDUwMCl9ZWxzZSBCbShxdC52aWV3LFN0KSxxLm9uKCJrZXlkb3duLmJydXNoIGtleXVwLmJydXNoIG1vdXNlbW92ZS5icnVzaCBtb3VzZXVwLmJydXNoIixudWxsKTtldC5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLGR0LmF0dHIoImN1cnNvciIsSXAub3ZlcmxheSksQy5zZWxlY3Rpb24mJihrPUMuc2VsZWN0aW9uKSxUU2UoaykmJihDLnNlbGVjdGlvbj1udWxsLGMuY2FsbChfKSksWC5lbmQoKX1mdW5jdGlvbiBrdCgpe3N3aXRjaChxdC5rZXlDb2RlKXtjYXNlIDE2OntidD1iJiZTO2JyZWFrfWNhc2UgMTg6e3g9PT1NYiYmKGImJih6PVUtb3QqYixEPUIrb3QqYiksUyYmKFo9cnQtc3QqUyxMPVIrc3QqUykseD1FYixodCgpKTticmVha31jYXNlIDMyOnsoeD09PU1ifHx4PT09RWIpJiYoYjwwP3o9VS1vdDpiPjAmJihEPUItb3QpLFM8MD9aPXJ0LXN0OlM+MCYmKEw9Ui1zdCkseD1HWSxkdC5hdHRyKCJjdXJzb3IiLElwLnNlbGVjdGlvbiksaHQoKSk7YnJlYWt9ZGVmYXVsdDpyZXR1cm59QkwoKX1mdW5jdGlvbiBpZSgpe3N3aXRjaChxdC5rZXlDb2RlKXtjYXNlIDE2OntidCYmKE10PWx0PWJ0PSExLGh0KCkpO2JyZWFrfWNhc2UgMTg6e3g9PT1FYiYmKGI8MD96PVU6Yj4wJiYoRD1CKSxTPDA/Wj1ydDpTPjAmJihMPVIpLHg9TWIsaHQoKSk7YnJlYWt9Y2FzZSAzMjp7eD09PUdZJiYocXQuYWx0S2V5PyhiJiYoej1VLW90KmIsRD1CK290KmIpLFMmJihaPXJ0LXN0KlMsTD1SK3N0KlMpLHg9RWIpOihiPDA/ej1VOmI+MCYmKEQ9QiksUzwwP1o9cnQ6Uz4wJiYoTD1SKSx4PU1iKSxkdC5hdHRyKCJjdXJzb3IiLElwW3ldKSxodCgpKTticmVha31kZWZhdWx0OnJldHVybn1CTCgpfX1mdW5jdGlvbiBwKCl7dSh0aGlzLGFyZ3VtZW50cykubW92ZWQoKX1mdW5jdGlvbiBkKCl7dSh0aGlzLGFyZ3VtZW50cykuZW5kZWQoKX1mdW5jdGlvbiBnKCl7dmFyIF89dGhpcy5fX2JydXNofHx7c2VsZWN0aW9uOm51bGx9O3JldHVybiBfLmV4dGVudD1ZWSh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSksXy5kaW09ZSxffXJldHVybiBsLmV4dGVudD1mdW5jdGlvbihfKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD10eXBlb2YgXz09ImZ1bmN0aW9uIj9fOkZMKFlZKF8pKSxsKTp0fSxsLmZpbHRlcj1mdW5jdGlvbihfKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10eXBlb2YgXz09ImZ1bmN0aW9uIj9fOkZMKCEhXyksbCk6cn0sbC50b3VjaGFibGU9ZnVuY3Rpb24oXyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dHlwZW9mIF89PSJmdW5jdGlvbiI/XzpGTCghIV8pLGwpOm59LGwuaGFuZGxlU2l6ZT1mdW5jdGlvbihfKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0rXyxsKTphfSxsLmtleU1vZGlmaWVycz1mdW5jdGlvbihfKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hIV8sbCk6aX0sbC5vbj1mdW5jdGlvbigpe3ZhciBfPW8ub24uYXBwbHkobyxhcmd1bWVudHMpO3JldHVybiBfPT09bz9sOl99LGx9dmFyIFhZPU1hdGguY29zLCRZPU1hdGguc2luLFh2dD1NYXRoLlBJLFZFPVh2dC8yLEtZPVh2dCoyLFpZPU1hdGgubWF4O2Z1bmN0aW9uIENTZShlKXtyZXR1cm4gZnVuY3Rpb24odCxyKXtyZXR1cm4gZSh0LnNvdXJjZS52YWx1ZSt0LnRhcmdldC52YWx1ZSxyLnNvdXJjZS52YWx1ZStyLnRhcmdldC52YWx1ZSl9fWZ1bmN0aW9uICR2dCgpe3ZhciBlPTAsdD1udWxsLHI9bnVsbCxuPW51bGw7ZnVuY3Rpb24gaShvKXt2YXIgYT1vLmxlbmd0aCxzPVtdLGw9SXIoYSksYz1bXSx1PVtdLGg9dS5ncm91cHM9bmV3IEFycmF5KGEpLGY9bmV3IEFycmF5KGEqYSkscCxkLGcsXyx5LHg7Zm9yKHA9MCx5PS0xOysreTxhOyl7Zm9yKGQ9MCx4PS0xOysreDxhOylkKz1vW3ldW3hdO3MucHVzaChkKSxjLnB1c2goSXIoYSkpLHArPWR9Zm9yKHQmJmwuc29ydChmdW5jdGlvbihCLEkpe3JldHVybiB0KHNbQl0sc1tJXSl9KSxyJiZjLmZvckVhY2goZnVuY3Rpb24oQixJKXtCLnNvcnQoZnVuY3Rpb24oTCxSKXtyZXR1cm4gcihvW0ldW0xdLG9bSV1bUl0pfSl9KSxwPVpZKDAsS1ktZSphKS9wLF89cD9lOktZL2EsZD0wLHk9LTE7Kyt5PGE7KXtmb3IoZz1kLHg9LTE7Kyt4PGE7KXt2YXIgYj1sW3ldLFM9Y1tiXVt4XSxDPW9bYl1bU10sUD1kLGs9ZCs9QypwO2ZbUyphK2JdPXtpbmRleDpiLHN1YmluZGV4OlMsc3RhcnRBbmdsZTpQLGVuZEFuZ2xlOmssdmFsdWU6Q319aFtiXT17aW5kZXg6YixzdGFydEFuZ2xlOmcsZW5kQW5nbGU6ZCx2YWx1ZTpzW2JdfSxkKz1ffWZvcih5PS0xOysreTxhOylmb3IoeD15LTE7Kyt4PGE7KXt2YXIgTz1mW3gqYSt5XSxEPWZbeSphK3hdOyhPLnZhbHVlfHxELnZhbHVlKSYmdS5wdXNoKE8udmFsdWU8RC52YWx1ZT97c291cmNlOkQsdGFyZ2V0Ok99Ontzb3VyY2U6Tyx0YXJnZXQ6RH0pfXJldHVybiBuP3Uuc29ydChuKTp1fXJldHVybiBpLnBhZEFuZ2xlPWZ1bmN0aW9uKG8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVpZKDAsbyksaSk6ZX0saS5zb3J0R3JvdXBzPWZ1bmN0aW9uKG8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PW8saSk6dH0saS5zb3J0U3ViZ3JvdXBzPWZ1bmN0aW9uKG8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW8saSk6cn0saS5zb3J0Q2hvcmRzPWZ1bmN0aW9uKG8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPT1udWxsP249bnVsbDoobj1DU2UobykpLl89byxpKTpuJiZuLl99LGl9dmFyIEt2dD1BcnJheS5wcm90b3R5cGUuc2xpY2U7ZnVuY3Rpb24gV0woZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciBKWT1NYXRoLlBJLFFZPTIqSlksa189MWUtNixBU2U9UVkta187ZnVuY3Rpb24gdGooKXt0aGlzLl94MD10aGlzLl95MD10aGlzLl94MT10aGlzLl95MT1udWxsLHRoaXMuXz0iIn1mdW5jdGlvbiBadnQoKXtyZXR1cm4gbmV3IHRqfXRqLnByb3RvdHlwZT1adnQucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp0aixtb3ZlVG86ZnVuY3Rpb24oZSx0KXt0aGlzLl8rPSJNIisodGhpcy5feDA9dGhpcy5feDE9K2UpKyIsIisodGhpcy5feTA9dGhpcy5feTE9K3QpfSxjbG9zZVBhdGg6ZnVuY3Rpb24oKXt0aGlzLl94MSE9PW51bGwmJih0aGlzLl94MT10aGlzLl94MCx0aGlzLl95MT10aGlzLl95MCx0aGlzLl8rPSJaIil9LGxpbmVUbzpmdW5jdGlvbihlLHQpe3RoaXMuXys9IkwiKyh0aGlzLl94MT0rZSkrIiwiKyh0aGlzLl95MT0rdCl9LHF1YWRyYXRpY0N1cnZlVG86ZnVuY3Rpb24oZSx0LHIsbil7dGhpcy5fKz0iUSIrICtlKyIsIisgK3QrIiwiKyh0aGlzLl94MT0rcikrIiwiKyh0aGlzLl95MT0rbil9LGJlemllckN1cnZlVG86ZnVuY3Rpb24oZSx0LHIsbixpLG8pe3RoaXMuXys9IkMiKyArZSsiLCIrICt0KyIsIisgK3IrIiwiKyArbisiLCIrKHRoaXMuX3gxPStpKSsiLCIrKHRoaXMuX3kxPStvKX0sYXJjVG86ZnVuY3Rpb24oZSx0LHIsbixpKXtlPStlLHQ9K3Qscj0rcixuPStuLGk9K2k7dmFyIG89dGhpcy5feDEsYT10aGlzLl95MSxzPXItZSxsPW4tdCxjPW8tZSx1PWEtdCxoPWMqYyt1KnU7aWYoaTwwKXRocm93IG5ldyBFcnJvcigibmVnYXRpdmUgcmFkaXVzOiAiK2kpO2lmKHRoaXMuX3gxPT09bnVsbCl0aGlzLl8rPSJNIisodGhpcy5feDE9ZSkrIiwiKyh0aGlzLl95MT10KTtlbHNlIGlmKGg+a18paWYoIShNYXRoLmFicyh1KnMtbCpjKT5rXyl8fCFpKXRoaXMuXys9IkwiKyh0aGlzLl94MT1lKSsiLCIrKHRoaXMuX3kxPXQpO2Vsc2V7dmFyIGY9ci1vLHA9bi1hLGQ9cypzK2wqbCxnPWYqZitwKnAsXz1NYXRoLnNxcnQoZCkseT1NYXRoLnNxcnQoaCkseD1pKk1hdGgudGFuKChKWS1NYXRoLmFjb3MoKGQraC1nKS8oMipfKnkpKSkvMiksYj14L3ksUz14L187TWF0aC5hYnMoYi0xKT5rXyYmKHRoaXMuXys9IkwiKyhlK2IqYykrIiwiKyh0K2IqdSkpLHRoaXMuXys9IkEiK2krIiwiK2krIiwwLDAsIisgKyh1KmY+YypwKSsiLCIrKHRoaXMuX3gxPWUrUypzKSsiLCIrKHRoaXMuX3kxPXQrUypsKX19LGFyYzpmdW5jdGlvbihlLHQscixuLGksbyl7ZT0rZSx0PSt0LHI9K3Isbz0hIW87dmFyIGE9cipNYXRoLmNvcyhuKSxzPXIqTWF0aC5zaW4obiksbD1lK2EsYz10K3MsdT0xXm8saD1vP24taTppLW47aWYocjwwKXRocm93IG5ldyBFcnJvcigibmVnYXRpdmUgcmFkaXVzOiAiK3IpO3RoaXMuX3gxPT09bnVsbD90aGlzLl8rPSJNIitsKyIsIitjOihNYXRoLmFicyh0aGlzLl94MS1sKT5rX3x8TWF0aC5hYnModGhpcy5feTEtYyk+a18pJiYodGhpcy5fKz0iTCIrbCsiLCIrYyksciYmKGg8MCYmKGg9aCVRWStRWSksaD5BU2U/dGhpcy5fKz0iQSIrcisiLCIrcisiLDAsMSwiK3UrIiwiKyhlLWEpKyIsIisodC1zKSsiQSIrcisiLCIrcisiLDAsMSwiK3UrIiwiKyh0aGlzLl94MT1sKSsiLCIrKHRoaXMuX3kxPWMpOmg+a18mJih0aGlzLl8rPSJBIityKyIsIityKyIsMCwiKyArKGg+PUpZKSsiLCIrdSsiLCIrKHRoaXMuX3gxPWUrcipNYXRoLmNvcyhpKSkrIiwiKyh0aGlzLl95MT10K3IqTWF0aC5zaW4oaSkpKSl9LHJlY3Q6ZnVuY3Rpb24oZSx0LHIsbil7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPStlKSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPSt0KSsiaCIrICtyKyJ2IisgK24rImgiKy1yKyJaIn0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX07dmFyIHdzPVp2dDtmdW5jdGlvbiBQU2UoZSl7cmV0dXJuIGUuc291cmNlfWZ1bmN0aW9uIElTZShlKXtyZXR1cm4gZS50YXJnZXR9ZnVuY3Rpb24gTFNlKGUpe3JldHVybiBlLnJhZGl1c31mdW5jdGlvbiBrU2UoZSl7cmV0dXJuIGUuc3RhcnRBbmdsZX1mdW5jdGlvbiBSU2UoZSl7cmV0dXJuIGUuZW5kQW5nbGV9ZnVuY3Rpb24gSnZ0KCl7dmFyIGU9UFNlLHQ9SVNlLHI9TFNlLG49a1NlLGk9UlNlLG89bnVsbDtmdW5jdGlvbiBhKCl7dmFyIHMsbD1LdnQuY2FsbChhcmd1bWVudHMpLGM9ZS5hcHBseSh0aGlzLGwpLHU9dC5hcHBseSh0aGlzLGwpLGg9K3IuYXBwbHkodGhpcywobFswXT1jLGwpKSxmPW4uYXBwbHkodGhpcyxsKS1WRSxwPWkuYXBwbHkodGhpcyxsKS1WRSxkPWgqWFkoZiksZz1oKiRZKGYpLF89K3IuYXBwbHkodGhpcywobFswXT11LGwpKSx5PW4uYXBwbHkodGhpcyxsKS1WRSx4PWkuYXBwbHkodGhpcyxsKS1WRTtpZihvfHwobz1zPXdzKCkpLG8ubW92ZVRvKGQsZyksby5hcmMoMCwwLGgsZixwKSwoZiE9PXl8fHAhPT14KSYmKG8ucXVhZHJhdGljQ3VydmVUbygwLDAsXypYWSh5KSxfKiRZKHkpKSxvLmFyYygwLDAsXyx5LHgpKSxvLnF1YWRyYXRpY0N1cnZlVG8oMCwwLGQsZyksby5jbG9zZVBhdGgoKSxzKXJldHVybiBvPW51bGwscysiInx8bnVsbH1yZXR1cm4gYS5yYWRpdXM9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dHlwZW9mIHM9PSJmdW5jdGlvbiI/czpXTCgrcyksYSk6cn0sYS5zdGFydEFuZ2xlPWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXR5cGVvZiBzPT0iZnVuY3Rpb24iP3M6V0woK3MpLGEpOm59LGEuZW5kQW5nbGU9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dHlwZW9mIHM9PSJmdW5jdGlvbiI/czpXTCgrcyksYSk6aX0sYS5zb3VyY2U9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9cyxhKTplfSxhLnRhcmdldD1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1zLGEpOnR9LGEuY29udGV4dD1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1zPT1udWxsP251bGw6cyxhKTpvfSxhfVRiKCk7dmFyIE9TZT1BcnJheS5wcm90b3R5cGUsS0w9T1NlLnNsaWNlO2Z1bmN0aW9uIGYxdChlLHQpe3JldHVybiBlLXR9ZnVuY3Rpb24gcDF0KGUpe2Zvcih2YXIgdD0wLHI9ZS5sZW5ndGgsbj1lW3ItMV1bMV0qZVswXVswXS1lW3ItMV1bMF0qZVswXVsxXTsrK3Q8cjspbis9ZVt0LTFdWzFdKmVbdF1bMF0tZVt0LTFdWzBdKmVbdF1bMV07cmV0dXJuIG59ZnVuY3Rpb24gemgoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fWZ1bmN0aW9uIGQxdChlLHQpe2Zvcih2YXIgcj0tMSxuPXQubGVuZ3RoLGk7KytyPG47KWlmKGk9elNlKGUsdFtyXSkpcmV0dXJuIGk7cmV0dXJuIDB9ZnVuY3Rpb24gelNlKGUsdCl7Zm9yKHZhciByPXRbMF0sbj10WzFdLGk9LTEsbz0wLGE9ZS5sZW5ndGgscz1hLTE7bzxhO3M9bysrKXt2YXIgbD1lW29dLGM9bFswXSx1PWxbMV0saD1lW3NdLGY9aFswXSxwPWhbMV07aWYoRlNlKGwsaCx0KSlyZXR1cm4gMDt1Pm4hPXA+biYmcjwoZi1jKSoobi11KS8ocC11KStjJiYoaT0taSl9cmV0dXJuIGl9ZnVuY3Rpb24gRlNlKGUsdCxyKXt2YXIgbjtyZXR1cm4gQlNlKGUsdCxyKSYmSFNlKGVbbj0rKGVbMF09PT10WzBdKV0scltuXSx0W25dKX1mdW5jdGlvbiBCU2UoZSx0LHIpe3JldHVybih0WzBdLWVbMF0pKihyWzFdLWVbMV0pPT09KHJbMF0tZVswXSkqKHRbMV0tZVsxXSl9ZnVuY3Rpb24gSFNlKGUsdCxyKXtyZXR1cm4gZTw9dCYmdDw9cnx8cjw9dCYmdDw9ZX1mdW5jdGlvbiBtMXQoKXt9dmFyIExwPVtbXSxbW1sxLDEuNV0sWy41LDFdXV0sW1tbMS41LDFdLFsxLDEuNV1dXSxbW1sxLjUsMV0sWy41LDFdXV0sW1tbMSwuNV0sWzEuNSwxXV1dLFtbWzEsMS41XSxbLjUsMV1dLFtbMSwuNV0sWzEuNSwxXV1dLFtbWzEsLjVdLFsxLDEuNV1dXSxbW1sxLC41XSxbLjUsMV1dXSxbW1suNSwxXSxbMSwuNV1dXSxbW1sxLDEuNV0sWzEsLjVdXV0sW1tbLjUsMV0sWzEsLjVdXSxbWzEuNSwxXSxbMSwxLjVdXV0sW1tbMS41LDFdLFsxLC41XV1dLFtbWy41LDFdLFsxLjUsMV1dXSxbW1sxLDEuNV0sWzEuNSwxXV1dLFtbWy41LDFdLFsxLDEuNV1dXSxbXV07ZnVuY3Rpb24gWkwoKXt2YXIgZT0xLHQ9MSxyPXNiLG49bDtmdW5jdGlvbiBpKGMpe3ZhciB1PXIoYyk7aWYoQXJyYXkuaXNBcnJheSh1KSl1PXUuc2xpY2UoKS5zb3J0KGYxdCk7ZWxzZXt2YXIgaD1zYShjKSxmPWhbMF0scD1oWzFdO3U9ZWwoZixwLHUpLHU9SXIoTWF0aC5mbG9vcihmL3UpKnUsTWF0aC5mbG9vcihwL3UpKnUsdSl9cmV0dXJuIHUubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBvKGMsZCl9KX1mdW5jdGlvbiBvKGMsdSl7dmFyIGg9W10sZj1bXTtyZXR1cm4gYShjLHUsZnVuY3Rpb24ocCl7bihwLGMsdSkscDF0KHApPjA/aC5wdXNoKFtwXSk6Zi5wdXNoKHApfSksZi5mb3JFYWNoKGZ1bmN0aW9uKHApe2Zvcih2YXIgZD0wLGc9aC5sZW5ndGgsXztkPGc7KytkKWlmKGQxdCgoXz1oW2RdKVswXSxwKSE9PS0xKXtfLnB1c2gocCk7cmV0dXJufX0pLHt0eXBlOiJNdWx0aVBvbHlnb24iLHZhbHVlOnUsY29vcmRpbmF0ZXM6aH19ZnVuY3Rpb24gYShjLHUsaCl7dmFyIGY9bmV3IEFycmF5LHA9bmV3IEFycmF5LGQsZyxfLHkseCxiO2ZvcihkPWc9LTEseT1jWzBdPj11LExwW3k8PDFdLmZvckVhY2goUyk7KytkPGUtMTspXz15LHk9Y1tkKzFdPj11LExwW198eTw8MV0uZm9yRWFjaChTKTtmb3IoTHBbeTw8MF0uZm9yRWFjaChTKTsrK2c8dC0xOyl7Zm9yKGQ9LTEseT1jW2cqZStlXT49dSx4PWNbZyplXT49dSxMcFt5PDwxfHg8PDJdLmZvckVhY2goUyk7KytkPGUtMTspXz15LHk9Y1tnKmUrZStkKzFdPj11LGI9eCx4PWNbZyplK2QrMV0+PXUsTHBbX3x5PDwxfHg8PDJ8Yjw8M10uZm9yRWFjaChTKTtMcFt5fHg8PDNdLmZvckVhY2goUyl9Zm9yKGQ9LTEseD1jW2cqZV0+PXUsTHBbeDw8Ml0uZm9yRWFjaChTKTsrK2Q8ZS0xOyliPXgseD1jW2cqZStkKzFdPj11LExwW3g8PDJ8Yjw8M10uZm9yRWFjaChTKTtMcFt4PDwzXS5mb3JFYWNoKFMpO2Z1bmN0aW9uIFMoQyl7dmFyIFA9W0NbMF1bMF0rZCxDWzBdWzFdK2ddLGs9W0NbMV1bMF0rZCxDWzFdWzFdK2ddLE89cyhQKSxEPXMoayksQixJOyhCPXBbT10pPyhJPWZbRF0pPyhkZWxldGUgcFtCLmVuZF0sZGVsZXRlIGZbSS5zdGFydF0sQj09PUk/KEIucmluZy5wdXNoKGspLGgoQi5yaW5nKSk6ZltCLnN0YXJ0XT1wW0kuZW5kXT17c3RhcnQ6Qi5zdGFydCxlbmQ6SS5lbmQscmluZzpCLnJpbmcuY29uY2F0KEkucmluZyl9KTooZGVsZXRlIHBbQi5lbmRdLEIucmluZy5wdXNoKGspLHBbQi5lbmQ9RF09Qik6KEI9ZltEXSk/KEk9cFtPXSk/KGRlbGV0ZSBmW0Iuc3RhcnRdLGRlbGV0ZSBwW0kuZW5kXSxCPT09ST8oQi5yaW5nLnB1c2goayksaChCLnJpbmcpKTpmW0kuc3RhcnRdPXBbQi5lbmRdPXtzdGFydDpJLnN0YXJ0LGVuZDpCLmVuZCxyaW5nOkkucmluZy5jb25jYXQoQi5yaW5nKX0pOihkZWxldGUgZltCLnN0YXJ0XSxCLnJpbmcudW5zaGlmdChQKSxmW0Iuc3RhcnQ9T109Qik6ZltPXT1wW0RdPXtzdGFydDpPLGVuZDpELHJpbmc6W1Asa119fX1mdW5jdGlvbiBzKGMpe3JldHVybiBjWzBdKjIrY1sxXSooZSsxKSo0fWZ1bmN0aW9uIGwoYyx1LGgpe2MuZm9yRWFjaChmdW5jdGlvbihmKXt2YXIgcD1mWzBdLGQ9ZlsxXSxnPXB8MCxfPWR8MCx5LHg9dVtfKmUrZ107cD4wJiZwPGUmJmc9PT1wJiYoeT11W18qZStnLTFdLGZbMF09cCsoaC15KS8oeC15KS0uNSksZD4wJiZkPHQmJl89PT1kJiYoeT11WyhfLTEpKmUrZ10sZlsxXT1kKyhoLXkpLyh4LXkpLS41KX0pfXJldHVybiBpLmNvbnRvdXI9byxpLnNpemU9ZnVuY3Rpb24oYyl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuW2UsdF07dmFyIHU9TWF0aC5jZWlsKGNbMF0pLGg9TWF0aC5jZWlsKGNbMV0pO2lmKCEodT4wKXx8IShoPjApKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBzaXplIik7cmV0dXJuIGU9dSx0PWgsaX0saS50aHJlc2hvbGRzPWZ1bmN0aW9uKGMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXR5cGVvZiBjPT0iZnVuY3Rpb24iP2M6QXJyYXkuaXNBcnJheShjKT96aChLTC5jYWxsKGMpKTp6aChjKSxpKTpyfSxpLnNtb290aD1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1jP2w6bTF0LGkpOm49PT1sfSxpfWZ1bmN0aW9uIEpMKGUsdCxyKXtmb3IodmFyIG49ZS53aWR0aCxpPWUuaGVpZ2h0LG89KHI8PDEpKzEsYT0wO2E8aTsrK2EpZm9yKHZhciBzPTAsbD0wO3M8bityOysrcylzPG4mJihsKz1lLmRhdGFbcythKm5dKSxzPj1yJiYocz49byYmKGwtPWUuZGF0YVtzLW8rYSpuXSksdC5kYXRhW3MtcithKm5dPWwvTWF0aC5taW4ocysxLG4tMStvLXMsbykpfWZ1bmN0aW9uIFFMKGUsdCxyKXtmb3IodmFyIG49ZS53aWR0aCxpPWUuaGVpZ2h0LG89KHI8PDEpKzEsYT0wO2E8bjsrK2EpZm9yKHZhciBzPTAsbD0wO3M8aStyOysrcylzPGkmJihsKz1lLmRhdGFbYStzKm5dKSxzPj1yJiYocz49byYmKGwtPWUuZGF0YVthKyhzLW8pKm5dKSx0LmRhdGFbYSsocy1yKSpuXT1sL01hdGgubWluKHMrMSxpLTErby1zLG8pKX1mdW5jdGlvbiBWU2UoZSl7cmV0dXJuIGVbMF19ZnVuY3Rpb24gVVNlKGUpe3JldHVybiBlWzFdfWZ1bmN0aW9uIHFTZSgpe3JldHVybiAxfWZ1bmN0aW9uIGcxdCgpe3ZhciBlPVZTZSx0PVVTZSxyPXFTZSxuPTk2MCxpPTUwMCxvPTIwLGE9MixzPW8qMyxsPW4rcyoyPj5hLGM9aStzKjI+PmEsdT16aCgyMCk7ZnVuY3Rpb24gaCh5KXt2YXIgeD1uZXcgRmxvYXQzMkFycmF5KGwqYyksYj1uZXcgRmxvYXQzMkFycmF5KGwqYyk7eS5mb3JFYWNoKGZ1bmN0aW9uKFAsayxPKXt2YXIgRD0rZShQLGssTykrcz4+YSxCPSt0KFAsayxPKStzPj5hLEk9K3IoUCxrLE8pO0Q+PTAmJkQ8bCYmQj49MCYmQjxjJiYoeFtEK0IqbF0rPUkpfSksSkwoe3dpZHRoOmwsaGVpZ2h0OmMsZGF0YTp4fSx7d2lkdGg6bCxoZWlnaHQ6YyxkYXRhOmJ9LG8+PmEpLFFMKHt3aWR0aDpsLGhlaWdodDpjLGRhdGE6Yn0se3dpZHRoOmwsaGVpZ2h0OmMsZGF0YTp4fSxvPj5hKSxKTCh7d2lkdGg6bCxoZWlnaHQ6YyxkYXRhOnh9LHt3aWR0aDpsLGhlaWdodDpjLGRhdGE6Yn0sbz4+YSksUUwoe3dpZHRoOmwsaGVpZ2h0OmMsZGF0YTpifSx7d2lkdGg6bCxoZWlnaHQ6YyxkYXRhOnh9LG8+PmEpLEpMKHt3aWR0aDpsLGhlaWdodDpjLGRhdGE6eH0se3dpZHRoOmwsaGVpZ2h0OmMsZGF0YTpifSxvPj5hKSxRTCh7d2lkdGg6bCxoZWlnaHQ6YyxkYXRhOmJ9LHt3aWR0aDpsLGhlaWdodDpjLGRhdGE6eH0sbz4+YSk7dmFyIFM9dSh4KTtpZighQXJyYXkuaXNBcnJheShTKSl7dmFyIEM9bHUoeCk7Uz1lbCgwLEMsUyksUz1JcigwLE1hdGguZmxvb3IoQy9TKSpTLFMpLFMuc2hpZnQoKX1yZXR1cm4gWkwoKS50aHJlc2hvbGRzKFMpLnNpemUoW2wsY10pKHgpLm1hcChmKX1mdW5jdGlvbiBmKHkpe3JldHVybiB5LnZhbHVlKj1NYXRoLnBvdygyLC0yKmEpLHkuY29vcmRpbmF0ZXMuZm9yRWFjaChwKSx5fWZ1bmN0aW9uIHAoeSl7eS5mb3JFYWNoKGQpfWZ1bmN0aW9uIGQoeSl7eS5mb3JFYWNoKGcpfWZ1bmN0aW9uIGcoeSl7eVswXT15WzBdKk1hdGgucG93KDIsYSktcyx5WzFdPXlbMV0qTWF0aC5wb3coMixhKS1zfWZ1bmN0aW9uIF8oKXtyZXR1cm4gcz1vKjMsbD1uK3MqMj4+YSxjPWkrcyoyPj5hLGh9cmV0dXJuIGgueD1mdW5jdGlvbih5KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10eXBlb2YgeT09ImZ1bmN0aW9uIj95OnpoKCt5KSxoKTplfSxoLnk9ZnVuY3Rpb24oeSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9dHlwZW9mIHk9PSJmdW5jdGlvbiI/eTp6aCgreSksaCk6dH0saC53ZWlnaHQ9ZnVuY3Rpb24oeSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dHlwZW9mIHk9PSJmdW5jdGlvbiI/eTp6aCgreSksaCk6cn0saC5zaXplPWZ1bmN0aW9uKHkpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybltuLGldO3ZhciB4PU1hdGguY2VpbCh5WzBdKSxiPU1hdGguY2VpbCh5WzFdKTtpZighKHg+PTApJiYhKHg+PTApKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBzaXplIik7cmV0dXJuIG49eCxpPWIsXygpfSxoLmNlbGxTaXplPWZ1bmN0aW9uKHkpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiAxPDxhO2lmKCEoKHk9K3kpPj0xKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2VsbCBzaXplIik7cmV0dXJuIGE9TWF0aC5mbG9vcihNYXRoLmxvZyh5KS9NYXRoLkxOMiksXygpfSxoLnRocmVzaG9sZHM9ZnVuY3Rpb24oeSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9dHlwZW9mIHk9PSJmdW5jdGlvbiI/eTpBcnJheS5pc0FycmF5KHkpP3poKEtMLmNhbGwoeSkpOnpoKHkpLGgpOnV9LGguYmFuZHdpZHRoPWZ1bmN0aW9uKHkpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBNYXRoLnNxcnQobyoobysxKSk7aWYoISgoeT0reSk+PTApKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBiYW5kd2lkdGgiKTtyZXR1cm4gbz1NYXRoLnJvdW5kKChNYXRoLnNxcnQoNCp5KnkrMSktMSkvMiksXygpfSxofVJtKCk7cUUoKTtMXygpO2Z1bmN0aW9uIFhTZShlKXtpZighZS5vayl0aHJvdyBuZXcgRXJyb3IoZS5zdGF0dXMrIiAiK2Uuc3RhdHVzVGV4dCk7cmV0dXJuIGUuYmxvYigpfWZ1bmN0aW9uIEQxdChlLHQpe3JldHVybiBmZXRjaChlLHQpLnRoZW4oWFNlKX1mdW5jdGlvbiAkU2UoZSl7aWYoIWUub2spdGhyb3cgbmV3IEVycm9yKGUuc3RhdHVzKyIgIitlLnN0YXR1c1RleHQpO3JldHVybiBlLmFycmF5QnVmZmVyKCl9ZnVuY3Rpb24gTzF0KGUsdCl7cmV0dXJuIGZldGNoKGUsdCkudGhlbigkU2UpfXFFKCk7ZnVuY3Rpb24gS1NlKGUpe2lmKCFlLm9rKXRocm93IG5ldyBFcnJvcihlLnN0YXR1cysiICIrZS5zdGF0dXNUZXh0KTtyZXR1cm4gZS50ZXh0KCl9ZnVuY3Rpb24gT18oZSx0KXtyZXR1cm4gZmV0Y2goZSx0KS50aGVuKEtTZSl9ZnVuY3Rpb24gejF0KGUpe3JldHVybiBmdW5jdGlvbih0LHIsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0yJiZ0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmKG49cixyPXZvaWQgMCksT18odCxyKS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBlKGksbil9KX19ZnVuY3Rpb24gb2ooZSx0LHIsbil7YXJndW1lbnRzLmxlbmd0aD09PTMmJnR5cGVvZiByPT0iZnVuY3Rpb24iJiYobj1yLHI9dm9pZCAwKTt2YXIgaT1ZbShlKTtyZXR1cm4gT18odCxyKS50aGVuKGZ1bmN0aW9uKG8pe3JldHVybiBpLnBhcnNlKG8sbil9KX12YXIgRjF0PXoxdChDYiksQjF0PXoxdChBYik7ZnVuY3Rpb24gSDF0KGUsdCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsbil7dmFyIGk9bmV3IEltYWdlO2Zvcih2YXIgbyBpbiB0KWlbb109dFtvXTtpLm9uZXJyb3I9bixpLm9ubG9hZD1mdW5jdGlvbigpe3IoaSl9LGkuc3JjPWV9KX1mdW5jdGlvbiBaU2UoZSl7aWYoIWUub2spdGhyb3cgbmV3IEVycm9yKGUuc3RhdHVzKyIgIitlLnN0YXR1c1RleHQpO2lmKCEoZS5zdGF0dXM9PT0yMDR8fGUuc3RhdHVzPT09MjA1KSlyZXR1cm4gZS5qc29uKCl9ZnVuY3Rpb24gVjF0KGUsdCl7cmV0dXJuIGZldGNoKGUsdCkudGhlbihaU2UpfWZ1bmN0aW9uIGFqKGUpe3JldHVybiBmdW5jdGlvbih0LHIpe3JldHVybiBPXyh0LHIpLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcobixlKX0pfX12YXIgVTF0PWFqKCJhcHBsaWNhdGlvbi94bWwiKSxxMXQ9YWooInRleHQvaHRtbCIpLEcxdD1haigiaW1hZ2Uvc3ZnK3htbCIpO2Z1bmN0aW9uIFcxdChlLHQpe3ZhciByO2U9PW51bGwmJihlPTApLHQ9PW51bGwmJih0PTApO2Z1bmN0aW9uIG4oKXt2YXIgaSxvPXIubGVuZ3RoLGEscz0wLGw9MDtmb3IoaT0wO2k8bzsrK2kpYT1yW2ldLHMrPWEueCxsKz1hLnk7Zm9yKHM9cy9vLWUsbD1sL28tdCxpPTA7aTxvOysraSlhPXJbaV0sYS54LT1zLGEueS09bH1yZXR1cm4gbi5pbml0aWFsaXplPWZ1bmN0aW9uKGkpe3I9aX0sbi54PWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPStpLG4pOmV9LG4ueT1mdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0raSxuKTp0fSxufWZ1bmN0aW9uIE9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX1mdW5jdGlvbiBmdSgpe3JldHVybihNYXRoLnJhbmRvbSgpLS41KSoxZS02fWZ1bmN0aW9uIFkxdChlKXt2YXIgdD0rdGhpcy5feC5jYWxsKG51bGwsZSkscj0rdGhpcy5feS5jYWxsKG51bGwsZSk7cmV0dXJuIGoxdCh0aGlzLmNvdmVyKHQsciksdCxyLGUpfWZ1bmN0aW9uIGoxdChlLHQscixuKXtpZihpc05hTih0KXx8aXNOYU4ocikpcmV0dXJuIGU7dmFyIGksbz1lLl9yb290LGE9e2RhdGE6bn0scz1lLl94MCxsPWUuX3kwLGM9ZS5feDEsdT1lLl95MSxoLGYscCxkLGcsXyx5LHg7aWYoIW8pcmV0dXJuIGUuX3Jvb3Q9YSxlO2Zvcig7by5sZW5ndGg7KWlmKChnPXQ+PShoPShzK2MpLzIpKT9zPWg6Yz1oLChfPXI+PShmPShsK3UpLzIpKT9sPWY6dT1mLGk9bywhKG89b1t5PV88PDF8Z10pKXJldHVybiBpW3ldPWEsZTtpZihwPStlLl94LmNhbGwobnVsbCxvLmRhdGEpLGQ9K2UuX3kuY2FsbChudWxsLG8uZGF0YSksdD09PXAmJnI9PT1kKXJldHVybiBhLm5leHQ9byxpP2lbeV09YTplLl9yb290PWEsZTtkbyBpPWk/aVt5XT1uZXcgQXJyYXkoNCk6ZS5fcm9vdD1uZXcgQXJyYXkoNCksKGc9dD49KGg9KHMrYykvMikpP3M9aDpjPWgsKF89cj49KGY9KGwrdSkvMikpP2w9Zjp1PWY7d2hpbGUoKHk9Xzw8MXxnKT09PSh4PShkPj1mKTw8MXxwPj1oKSk7cmV0dXJuIGlbeF09byxpW3ldPWEsZX1mdW5jdGlvbiBYMXQoZSl7dmFyIHQscixuPWUubGVuZ3RoLGksbyxhPW5ldyBBcnJheShuKSxzPW5ldyBBcnJheShuKSxsPTEvMCxjPTEvMCx1PS0xLzAsaD0tMS8wO2ZvcihyPTA7cjxuOysrcilpc05hTihpPSt0aGlzLl94LmNhbGwobnVsbCx0PWVbcl0pKXx8aXNOYU4obz0rdGhpcy5feS5jYWxsKG51bGwsdCkpfHwoYVtyXT1pLHNbcl09byxpPGwmJihsPWkpLGk+dSYmKHU9aSksbzxjJiYoYz1vKSxvPmgmJihoPW8pKTtpZihsPnV8fGM+aClyZXR1cm4gdGhpcztmb3IodGhpcy5jb3ZlcihsLGMpLmNvdmVyKHUsaCkscj0wO3I8bjsrK3IpajF0KHRoaXMsYVtyXSxzW3JdLGVbcl0pO3JldHVybiB0aGlzfWZ1bmN0aW9uICQxdChlLHQpe2lmKGlzTmFOKGU9K2UpfHxpc05hTih0PSt0KSlyZXR1cm4gdGhpczt2YXIgcj10aGlzLl94MCxuPXRoaXMuX3kwLGk9dGhpcy5feDEsbz10aGlzLl95MTtpZihpc05hTihyKSlpPShyPU1hdGguZmxvb3IoZSkpKzEsbz0obj1NYXRoLmZsb29yKHQpKSsxO2Vsc2V7Zm9yKHZhciBhPWktcixzPXRoaXMuX3Jvb3QsbCxjO3I+ZXx8ZT49aXx8bj50fHx0Pj1vOylzd2l0Y2goYz0odDxuKTw8MXxlPHIsbD1uZXcgQXJyYXkoNCksbFtjXT1zLHM9bCxhKj0yLGMpe2Nhc2UgMDppPXIrYSxvPW4rYTticmVhaztjYXNlIDE6cj1pLWEsbz1uK2E7YnJlYWs7Y2FzZSAyOmk9cithLG49by1hO2JyZWFrO2Nhc2UgMzpyPWktYSxuPW8tYTticmVha310aGlzLl9yb290JiZ0aGlzLl9yb290Lmxlbmd0aCYmKHRoaXMuX3Jvb3Q9cyl9cmV0dXJuIHRoaXMuX3gwPXIsdGhpcy5feTA9bix0aGlzLl94MT1pLHRoaXMuX3kxPW8sdGhpc31mdW5jdGlvbiBLMXQoKXt2YXIgZT1bXTtyZXR1cm4gdGhpcy52aXNpdChmdW5jdGlvbih0KXtpZighdC5sZW5ndGgpZG8gZS5wdXNoKHQuZGF0YSk7d2hpbGUodD10Lm5leHQpfSksZX1mdW5jdGlvbiBaMXQoZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5jb3ZlcigrZVswXVswXSwrZVswXVsxXSkuY292ZXIoK2VbMV1bMF0sK2VbMV1bMV0pOmlzTmFOKHRoaXMuX3gwKT92b2lkIDA6W1t0aGlzLl94MCx0aGlzLl95MF0sW3RoaXMuX3gxLHRoaXMuX3kxXV19ZnVuY3Rpb24geW8oZSx0LHIsbixpKXt0aGlzLm5vZGU9ZSx0aGlzLngwPXQsdGhpcy55MD1yLHRoaXMueDE9bix0aGlzLnkxPWl9ZnVuY3Rpb24gSjF0KGUsdCxyKXt2YXIgbixpPXRoaXMuX3gwLG89dGhpcy5feTAsYSxzLGwsYyx1PXRoaXMuX3gxLGg9dGhpcy5feTEsZj1bXSxwPXRoaXMuX3Jvb3QsZCxnO2ZvcihwJiZmLnB1c2gobmV3IHlvKHAsaSxvLHUsaCkpLHI9PW51bGw/cj0xLzA6KGk9ZS1yLG89dC1yLHU9ZStyLGg9dCtyLHIqPXIpO2Q9Zi5wb3AoKTspaWYoISghKHA9ZC5ub2RlKXx8KGE9ZC54MCk+dXx8KHM9ZC55MCk+aHx8KGw9ZC54MSk8aXx8KGM9ZC55MSk8bykpaWYocC5sZW5ndGgpe3ZhciBfPShhK2wpLzIseT0ocytjKS8yO2YucHVzaChuZXcgeW8ocFszXSxfLHksbCxjKSxuZXcgeW8ocFsyXSxhLHksXyxjKSxuZXcgeW8ocFsxXSxfLHMsbCx5KSxuZXcgeW8ocFswXSxhLHMsXyx5KSksKGc9KHQ+PXkpPDwxfGU+PV8pJiYoZD1mW2YubGVuZ3RoLTFdLGZbZi5sZW5ndGgtMV09ZltmLmxlbmd0aC0xLWddLGZbZi5sZW5ndGgtMS1nXT1kKX1lbHNle3ZhciB4PWUtK3RoaXMuX3guY2FsbChudWxsLHAuZGF0YSksYj10LSt0aGlzLl95LmNhbGwobnVsbCxwLmRhdGEpLFM9eCp4K2IqYjtpZihTPHIpe3ZhciBDPU1hdGguc3FydChyPVMpO2k9ZS1DLG89dC1DLHU9ZStDLGg9dCtDLG49cC5kYXRhfX1yZXR1cm4gbn1mdW5jdGlvbiBRMXQoZSl7aWYoaXNOYU4odT0rdGhpcy5feC5jYWxsKG51bGwsZSkpfHxpc05hTihoPSt0aGlzLl95LmNhbGwobnVsbCxlKSkpcmV0dXJuIHRoaXM7dmFyIHQscj10aGlzLl9yb290LG4saSxvLGE9dGhpcy5feDAscz10aGlzLl95MCxsPXRoaXMuX3gxLGM9dGhpcy5feTEsdSxoLGYscCxkLGcsXyx5O2lmKCFyKXJldHVybiB0aGlzO2lmKHIubGVuZ3RoKWZvcig7Oyl7aWYoKGQ9dT49KGY9KGErbCkvMikpP2E9ZjpsPWYsKGc9aD49KHA9KHMrYykvMikpP3M9cDpjPXAsdD1yLCEocj1yW189Zzw8MXxkXSkpcmV0dXJuIHRoaXM7aWYoIXIubGVuZ3RoKWJyZWFrOyh0W18rMSYzXXx8dFtfKzImM118fHRbXyszJjNdKSYmKG49dCx5PV8pfWZvcig7ci5kYXRhIT09ZTspaWYoaT1yLCEocj1yLm5leHQpKXJldHVybiB0aGlzO3JldHVybihvPXIubmV4dCkmJmRlbGV0ZSByLm5leHQsaT8obz9pLm5leHQ9bzpkZWxldGUgaS5uZXh0LHRoaXMpOnQ/KG8/dFtfXT1vOmRlbGV0ZSB0W19dLChyPXRbMF18fHRbMV18fHRbMl18fHRbM10pJiZyPT09KHRbM118fHRbMl18fHRbMV18fHRbMF0pJiYhci5sZW5ndGgmJihuP25beV09cjp0aGlzLl9yb290PXIpLHRoaXMpOih0aGlzLl9yb290PW8sdGhpcyl9ZnVuY3Rpb24gdHh0KGUpe2Zvcih2YXIgdD0wLHI9ZS5sZW5ndGg7dDxyOysrdCl0aGlzLnJlbW92ZShlW3RdKTtyZXR1cm4gdGhpc31mdW5jdGlvbiBleHQoKXtyZXR1cm4gdGhpcy5fcm9vdH1mdW5jdGlvbiByeHQoKXt2YXIgZT0wO3JldHVybiB0aGlzLnZpc2l0KGZ1bmN0aW9uKHQpe2lmKCF0Lmxlbmd0aClkbysrZTt3aGlsZSh0PXQubmV4dCl9KSxlfWZ1bmN0aW9uIG54dChlKXt2YXIgdD1bXSxyLG49dGhpcy5fcm9vdCxpLG8sYSxzLGw7Zm9yKG4mJnQucHVzaChuZXcgeW8obix0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkpO3I9dC5wb3AoKTspaWYoIWUobj1yLm5vZGUsbz1yLngwLGE9ci55MCxzPXIueDEsbD1yLnkxKSYmbi5sZW5ndGgpe3ZhciBjPShvK3MpLzIsdT0oYStsKS8yOyhpPW5bM10pJiZ0LnB1c2gobmV3IHlvKGksYyx1LHMsbCkpLChpPW5bMl0pJiZ0LnB1c2gobmV3IHlvKGksbyx1LGMsbCkpLChpPW5bMV0pJiZ0LnB1c2gobmV3IHlvKGksYyxhLHMsdSkpLChpPW5bMF0pJiZ0LnB1c2gobmV3IHlvKGksbyxhLGMsdSkpfXJldHVybiB0aGlzfWZ1bmN0aW9uIGl4dChlKXt2YXIgdD1bXSxyPVtdLG47Zm9yKHRoaXMuX3Jvb3QmJnQucHVzaChuZXcgeW8odGhpcy5fcm9vdCx0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkpO249dC5wb3AoKTspe3ZhciBpPW4ubm9kZTtpZihpLmxlbmd0aCl7dmFyIG8sYT1uLngwLHM9bi55MCxsPW4ueDEsYz1uLnkxLHU9KGErbCkvMixoPShzK2MpLzI7KG89aVswXSkmJnQucHVzaChuZXcgeW8obyxhLHMsdSxoKSksKG89aVsxXSkmJnQucHVzaChuZXcgeW8obyx1LHMsbCxoKSksKG89aVsyXSkmJnQucHVzaChuZXcgeW8obyxhLGgsdSxjKSksKG89aVszXSkmJnQucHVzaChuZXcgeW8obyx1LGgsbCxjKSl9ci5wdXNoKG4pfWZvcig7bj1yLnBvcCgpOyllKG4ubm9kZSxuLngwLG4ueTAsbi54MSxuLnkxKTtyZXR1cm4gdGhpc31mdW5jdGlvbiBveHQoZSl7cmV0dXJuIGVbMF19ZnVuY3Rpb24gYXh0KGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl94PWUsdGhpcyk6dGhpcy5feH1mdW5jdGlvbiBzeHQoZSl7cmV0dXJuIGVbMV19ZnVuY3Rpb24gbHh0KGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl95PWUsdGhpcyk6dGhpcy5feX1mdW5jdGlvbiBGaChlLHQscil7dmFyIG49bmV3IHNqKHQ9PW51bGw/b3h0OnQscj09bnVsbD9zeHQ6cixOYU4sTmFOLE5hTixOYU4pO3JldHVybiBlPT1udWxsP246bi5hZGRBbGwoZSl9ZnVuY3Rpb24gc2ooZSx0LHIsbixpLG8pe3RoaXMuX3g9ZSx0aGlzLl95PXQsdGhpcy5feDA9cix0aGlzLl95MD1uLHRoaXMuX3gxPWksdGhpcy5feTE9byx0aGlzLl9yb290PXZvaWQgMH1mdW5jdGlvbiBjeHQoZSl7Zm9yKHZhciB0PXtkYXRhOmUuZGF0YX0scj10O2U9ZS5uZXh0OylyPXIubmV4dD17ZGF0YTplLmRhdGF9O3JldHVybiB0fXZhciBGYT1GaC5wcm90b3R5cGU9c2oucHJvdG90eXBlO0ZhLmNvcHk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgc2oodGhpcy5feCx0aGlzLl95LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSx0PXRoaXMuX3Jvb3QscixuO2lmKCF0KXJldHVybiBlO2lmKCF0Lmxlbmd0aClyZXR1cm4gZS5fcm9vdD1jeHQodCksZTtmb3Iocj1be3NvdXJjZTp0LHRhcmdldDplLl9yb290PW5ldyBBcnJheSg0KX1dO3Q9ci5wb3AoKTspZm9yKHZhciBpPTA7aTw0OysraSkobj10LnNvdXJjZVtpXSkmJihuLmxlbmd0aD9yLnB1c2goe3NvdXJjZTpuLHRhcmdldDp0LnRhcmdldFtpXT1uZXcgQXJyYXkoNCl9KTp0LnRhcmdldFtpXT1jeHQobikpO3JldHVybiBlfTtGYS5hZGQ9WTF0O0ZhLmFkZEFsbD1YMXQ7RmEuY292ZXI9JDF0O0ZhLmRhdGE9SzF0O0ZhLmV4dGVudD1aMXQ7RmEuZmluZD1KMXQ7RmEucmVtb3ZlPVExdDtGYS5yZW1vdmVBbGw9dHh0O0ZhLnJvb3Q9ZXh0O0ZhLnNpemU9cnh0O0ZhLnZpc2l0PW54dDtGYS52aXNpdEFmdGVyPWl4dDtGYS54PWF4dDtGYS55PWx4dDtmdW5jdGlvbiBKU2UoZSl7cmV0dXJuIGUueCtlLnZ4fWZ1bmN0aW9uIFFTZShlKXtyZXR1cm4gZS55K2Uudnl9ZnVuY3Rpb24gdXh0KGUpe3ZhciB0LHIsbj0xLGk9MTt0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmKGU9T24oZT09bnVsbD8xOitlKSk7ZnVuY3Rpb24gbygpe2Zvcih2YXIgbCxjPXQubGVuZ3RoLHUsaCxmLHAsZCxnLF89MDtfPGk7KytfKWZvcih1PUZoKHQsSlNlLFFTZSkudmlzaXRBZnRlcihhKSxsPTA7bDxjOysrbCloPXRbbF0sZD1yW2guaW5kZXhdLGc9ZCpkLGY9aC54K2gudngscD1oLnkraC52eSx1LnZpc2l0KHkpO2Z1bmN0aW9uIHkoeCxiLFMsQyxQKXt2YXIgaz14LmRhdGEsTz14LnIsRD1kK087aWYoayl7aWYoay5pbmRleD5oLmluZGV4KXt2YXIgQj1mLWsueC1rLnZ4LEk9cC1rLnktay52eSxMPUIqQitJKkk7TDxEKkQmJihCPT09MCYmKEI9ZnUoKSxMKz1CKkIpLEk9PT0wJiYoST1mdSgpLEwrPUkqSSksTD0oRC0oTD1NYXRoLnNxcnQoTCkpKS9MKm4saC52eCs9KEIqPUwpKihEPShPKj1PKS8oZytPKSksaC52eSs9KEkqPUwpKkQsay52eC09QiooRD0xLUQpLGsudnktPUkqRCl9cmV0dXJufXJldHVybiBiPmYrRHx8QzxmLUR8fFM+cCtEfHxQPHAtRH19ZnVuY3Rpb24gYShsKXtpZihsLmRhdGEpcmV0dXJuIGwucj1yW2wuZGF0YS5pbmRleF07Zm9yKHZhciBjPWwucj0wO2M8NDsrK2MpbFtjXSYmbFtjXS5yPmwuciYmKGwucj1sW2NdLnIpfWZ1bmN0aW9uIHMoKXtpZighIXQpe3ZhciBsLGM9dC5sZW5ndGgsdTtmb3Iocj1uZXcgQXJyYXkoYyksbD0wO2w8YzsrK2wpdT10W2xdLHJbdS5pbmRleF09K2UodSxsLHQpfX1yZXR1cm4gby5pbml0aWFsaXplPWZ1bmN0aW9uKGwpe3Q9bCxzKCl9LG8uaXRlcmF0aW9ucz1mdW5jdGlvbihsKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rbCxvKTppfSxvLnN0cmVuZ3RoPWZ1bmN0aW9uKGwpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPStsLG8pOm59LG8ucmFkaXVzPWZ1bmN0aW9uKGwpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiBsPT0iZnVuY3Rpb24iP2w6T24oK2wpLHMoKSxvKTplfSxvfVRiKCk7ZnVuY3Rpb24gdDNlKGUpe3JldHVybiBlLmluZGV4fWZ1bmN0aW9uIGh4dChlLHQpe3ZhciByPWUuZ2V0KHQpO2lmKCFyKXRocm93IG5ldyBFcnJvcigibWlzc2luZzogIit0KTtyZXR1cm4gcn1mdW5jdGlvbiBmeHQoZSl7dmFyIHQ9dDNlLHI9dSxuLGk9T24oMzApLG8sYSxzLGwsYz0xO2U9PW51bGwmJihlPVtdKTtmdW5jdGlvbiB1KGcpe3JldHVybiAxL01hdGgubWluKHNbZy5zb3VyY2UuaW5kZXhdLHNbZy50YXJnZXQuaW5kZXhdKX1mdW5jdGlvbiBoKGcpe2Zvcih2YXIgXz0wLHk9ZS5sZW5ndGg7XzxjOysrXylmb3IodmFyIHg9MCxiLFMsQyxQLGssTyxEO3g8eTsrK3gpYj1lW3hdLFM9Yi5zb3VyY2UsQz1iLnRhcmdldCxQPUMueCtDLnZ4LVMueC1TLnZ4fHxmdSgpLGs9Qy55K0MudnktUy55LVMudnl8fGZ1KCksTz1NYXRoLnNxcnQoUCpQK2sqayksTz0oTy1vW3hdKS9PKmcqblt4XSxQKj1PLGsqPU8sQy52eC09UCooRD1sW3hdKSxDLnZ5LT1rKkQsUy52eCs9UCooRD0xLUQpLFMudnkrPWsqRH1mdW5jdGlvbiBmKCl7aWYoISFhKXt2YXIgZyxfPWEubGVuZ3RoLHk9ZS5sZW5ndGgseD1KaShhLHQpLGI7Zm9yKGc9MCxzPW5ldyBBcnJheShfKTtnPHk7KytnKWI9ZVtnXSxiLmluZGV4PWcsdHlwZW9mIGIuc291cmNlIT0ib2JqZWN0IiYmKGIuc291cmNlPWh4dCh4LGIuc291cmNlKSksdHlwZW9mIGIudGFyZ2V0IT0ib2JqZWN0IiYmKGIudGFyZ2V0PWh4dCh4LGIudGFyZ2V0KSksc1tiLnNvdXJjZS5pbmRleF09KHNbYi5zb3VyY2UuaW5kZXhdfHwwKSsxLHNbYi50YXJnZXQuaW5kZXhdPShzW2IudGFyZ2V0LmluZGV4XXx8MCkrMTtmb3IoZz0wLGw9bmV3IEFycmF5KHkpO2c8eTsrK2cpYj1lW2ddLGxbZ109c1tiLnNvdXJjZS5pbmRleF0vKHNbYi5zb3VyY2UuaW5kZXhdK3NbYi50YXJnZXQuaW5kZXhdKTtuPW5ldyBBcnJheSh5KSxwKCksbz1uZXcgQXJyYXkoeSksZCgpfX1mdW5jdGlvbiBwKCl7aWYoISFhKWZvcih2YXIgZz0wLF89ZS5sZW5ndGg7ZzxfOysrZyluW2ddPStyKGVbZ10sZyxlKX1mdW5jdGlvbiBkKCl7aWYoISFhKWZvcih2YXIgZz0wLF89ZS5sZW5ndGg7ZzxfOysrZylvW2ddPStpKGVbZ10sZyxlKX1yZXR1cm4gaC5pbml0aWFsaXplPWZ1bmN0aW9uKGcpe2E9ZyxmKCl9LGgubGlua3M9ZnVuY3Rpb24oZyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ZyxmKCksaCk6ZX0saC5pZD1mdW5jdGlvbihnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1nLGgpOnR9LGguaXRlcmF0aW9ucz1mdW5jdGlvbihnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz0rZyxoKTpjfSxoLnN0cmVuZ3RoPWZ1bmN0aW9uKGcpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXR5cGVvZiBnPT0iZnVuY3Rpb24iP2c6T24oK2cpLHAoKSxoKTpyfSxoLmRpc3RhbmNlPWZ1bmN0aW9uKGcpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXR5cGVvZiBnPT0iZnVuY3Rpb24iP2c6T24oK2cpLGQoKSxoKTppfSxofVJtKCk7VGIoKTtmdW5jdGlvbiBweHQoZSl7cmV0dXJuIGUueH1mdW5jdGlvbiBkeHQoZSl7cmV0dXJuIGUueX12YXIgZTNlPTEwLHIzZT1NYXRoLlBJKigzLU1hdGguc3FydCg1KSk7ZnVuY3Rpb24gbXh0KGUpe3ZhciB0LHI9MSxuPS4wMDEsaT0xLU1hdGgucG93KG4sMS8zMDApLG89MCxhPS42LHM9SmkoKSxsPVBfKHUpLGM9eHMoInRpY2siLCJlbmQiKTtlPT1udWxsJiYoZT1bXSk7ZnVuY3Rpb24gdSgpe2goKSxjLmNhbGwoInRpY2siLHQpLHI8biYmKGwuc3RvcCgpLGMuY2FsbCgiZW5kIix0KSl9ZnVuY3Rpb24gaChkKXt2YXIgZyxfPWUubGVuZ3RoLHk7ZD09PXZvaWQgMCYmKGQ9MSk7Zm9yKHZhciB4PTA7eDxkOysreClmb3Iocis9KG8tcikqaSxzLmVhY2goZnVuY3Rpb24oYil7YihyKX0pLGc9MDtnPF87KytnKXk9ZVtnXSx5LmZ4PT1udWxsP3kueCs9eS52eCo9YTooeS54PXkuZngseS52eD0wKSx5LmZ5PT1udWxsP3kueSs9eS52eSo9YTooeS55PXkuZnkseS52eT0wKTtyZXR1cm4gdH1mdW5jdGlvbiBmKCl7Zm9yKHZhciBkPTAsZz1lLmxlbmd0aCxfO2Q8ZzsrK2Qpe2lmKF89ZVtkXSxfLmluZGV4PWQsXy5meCE9bnVsbCYmKF8ueD1fLmZ4KSxfLmZ5IT1udWxsJiYoXy55PV8uZnkpLGlzTmFOKF8ueCl8fGlzTmFOKF8ueSkpe3ZhciB5PWUzZSpNYXRoLnNxcnQoZCkseD1kKnIzZTtfLng9eSpNYXRoLmNvcyh4KSxfLnk9eSpNYXRoLnNpbih4KX0oaXNOYU4oXy52eCl8fGlzTmFOKF8udnkpKSYmKF8udng9Xy52eT0wKX19ZnVuY3Rpb24gcChkKXtyZXR1cm4gZC5pbml0aWFsaXplJiZkLmluaXRpYWxpemUoZSksZH1yZXR1cm4gZigpLHQ9e3RpY2s6aCxyZXN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIGwucmVzdGFydCh1KSx0fSxzdG9wOmZ1bmN0aW9uKCl7cmV0dXJuIGwuc3RvcCgpLHR9LG5vZGVzOmZ1bmN0aW9uKGQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPWQsZigpLHMuZWFjaChwKSx0KTplfSxhbHBoYTpmdW5jdGlvbihkKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rZCx0KTpyfSxhbHBoYU1pbjpmdW5jdGlvbihkKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rZCx0KTpufSxhbHBoYURlY2F5OmZ1bmN0aW9uKGQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPStkLHQpOitpfSxhbHBoYVRhcmdldDpmdW5jdGlvbihkKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0rZCx0KTpvfSx2ZWxvY2l0eURlY2F5OmZ1bmN0aW9uKGQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPTEtZCx0KToxLWF9LGZvcmNlOmZ1bmN0aW9uKGQsZyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT8oZz09bnVsbD9zLnJlbW92ZShkKTpzLnNldChkLHAoZykpLHQpOnMuZ2V0KGQpfSxmaW5kOmZ1bmN0aW9uKGQsZyxfKXt2YXIgeT0wLHg9ZS5sZW5ndGgsYixTLEMsUCxrO2ZvcihfPT1udWxsP189MS8wOl8qPV8seT0wO3k8eDsrK3kpUD1lW3ldLGI9ZC1QLngsUz1nLVAueSxDPWIqYitTKlMsQzxfJiYoaz1QLF89Qyk7cmV0dXJuIGt9LG9uOmZ1bmN0aW9uKGQsZyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT8oYy5vbihkLGcpLHQpOmMub24oZCl9fX1mdW5jdGlvbiBneHQoKXt2YXIgZSx0LHIsbj1PbigtMzApLGksbz0xLGE9MS8wLHM9LjgxO2Z1bmN0aW9uIGwoZil7dmFyIHAsZD1lLmxlbmd0aCxnPUZoKGUscHh0LGR4dCkudmlzaXRBZnRlcih1KTtmb3Iocj1mLHA9MDtwPGQ7KytwKXQ9ZVtwXSxnLnZpc2l0KGgpfWZ1bmN0aW9uIGMoKXtpZighIWUpe3ZhciBmLHA9ZS5sZW5ndGgsZDtmb3IoaT1uZXcgQXJyYXkocCksZj0wO2Y8cDsrK2YpZD1lW2ZdLGlbZC5pbmRleF09K24oZCxmLGUpfX1mdW5jdGlvbiB1KGYpe3ZhciBwPTAsZCxnLF89MCx5LHgsYjtpZihmLmxlbmd0aCl7Zm9yKHk9eD1iPTA7Yjw0OysrYikoZD1mW2JdKSYmKGc9TWF0aC5hYnMoZC52YWx1ZSkpJiYocCs9ZC52YWx1ZSxfKz1nLHkrPWcqZC54LHgrPWcqZC55KTtmLng9eS9fLGYueT14L199ZWxzZXtkPWYsZC54PWQuZGF0YS54LGQueT1kLmRhdGEueTtkbyBwKz1pW2QuZGF0YS5pbmRleF07d2hpbGUoZD1kLm5leHQpfWYudmFsdWU9cH1mdW5jdGlvbiBoKGYscCxkLGcpe2lmKCFmLnZhbHVlKXJldHVybiEwO3ZhciBfPWYueC10LngseT1mLnktdC55LHg9Zy1wLGI9XypfK3kqeTtpZih4KngvczxiKXJldHVybiBiPGEmJihfPT09MCYmKF89ZnUoKSxiKz1fKl8pLHk9PT0wJiYoeT1mdSgpLGIrPXkqeSksYjxvJiYoYj1NYXRoLnNxcnQobypiKSksdC52eCs9XypmLnZhbHVlKnIvYix0LnZ5Kz15KmYudmFsdWUqci9iKSwhMDtpZihmLmxlbmd0aHx8Yj49YSlyZXR1cm47KGYuZGF0YSE9PXR8fGYubmV4dCkmJihfPT09MCYmKF89ZnUoKSxiKz1fKl8pLHk9PT0wJiYoeT1mdSgpLGIrPXkqeSksYjxvJiYoYj1NYXRoLnNxcnQobypiKSkpO2RvIGYuZGF0YSE9PXQmJih4PWlbZi5kYXRhLmluZGV4XSpyL2IsdC52eCs9Xyp4LHQudnkrPXkqeCk7d2hpbGUoZj1mLm5leHQpfXJldHVybiBsLmluaXRpYWxpemU9ZnVuY3Rpb24oZil7ZT1mLGMoKX0sbC5zdHJlbmd0aD1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10eXBlb2YgZj09ImZ1bmN0aW9uIj9mOk9uKCtmKSxjKCksbCk6bn0sbC5kaXN0YW5jZU1pbj1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1mKmYsbCk6TWF0aC5zcXJ0KG8pfSxsLmRpc3RhbmNlTWF4PWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPWYqZixsKTpNYXRoLnNxcnQoYSl9LGwudGhldGE9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9ZipmLGwpOk1hdGguc3FydChzKX0sbH1mdW5jdGlvbiBfeHQoZSx0LHIpe3ZhciBuLGk9T24oLjEpLG8sYTt0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmKGU9T24oK2UpKSx0PT1udWxsJiYodD0wKSxyPT1udWxsJiYocj0wKTtmdW5jdGlvbiBzKGMpe2Zvcih2YXIgdT0wLGg9bi5sZW5ndGg7dTxoOysrdSl7dmFyIGY9blt1XSxwPWYueC10fHwxZS02LGQ9Zi55LXJ8fDFlLTYsZz1NYXRoLnNxcnQocCpwK2QqZCksXz0oYVt1XS1nKSpvW3VdKmMvZztmLnZ4Kz1wKl8sZi52eSs9ZCpffX1mdW5jdGlvbiBsKCl7aWYoISFuKXt2YXIgYyx1PW4ubGVuZ3RoO2ZvcihvPW5ldyBBcnJheSh1KSxhPW5ldyBBcnJheSh1KSxjPTA7Yzx1OysrYylhW2NdPStlKG5bY10sYyxuKSxvW2NdPWlzTmFOKGFbY10pPzA6K2kobltjXSxjLG4pfX1yZXR1cm4gcy5pbml0aWFsaXplPWZ1bmN0aW9uKGMpe249YyxsKCl9LHMuc3RyZW5ndGg9ZnVuY3Rpb24oYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dHlwZW9mIGM9PSJmdW5jdGlvbiI/YzpPbigrYyksbCgpLHMpOml9LHMucmFkaXVzPWZ1bmN0aW9uKGMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiBjPT0iZnVuY3Rpb24iP2M6T24oK2MpLGwoKSxzKTplfSxzLng9ZnVuY3Rpb24oYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K2Mscyk6dH0scy55PWZ1bmN0aW9uKGMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPStjLHMpOnJ9LHN9ZnVuY3Rpb24geXh0KGUpe3ZhciB0PU9uKC4xKSxyLG4saTt0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmKGU9T24oZT09bnVsbD8wOitlKSk7ZnVuY3Rpb24gbyhzKXtmb3IodmFyIGw9MCxjPXIubGVuZ3RoLHU7bDxjOysrbCl1PXJbbF0sdS52eCs9KGlbbF0tdS54KSpuW2xdKnN9ZnVuY3Rpb24gYSgpe2lmKCEhcil7dmFyIHMsbD1yLmxlbmd0aDtmb3Iobj1uZXcgQXJyYXkobCksaT1uZXcgQXJyYXkobCkscz0wO3M8bDsrK3MpbltzXT1pc05hTihpW3NdPStlKHJbc10scyxyKSk/MDordChyW3NdLHMscil9fXJldHVybiBvLmluaXRpYWxpemU9ZnVuY3Rpb24ocyl7cj1zLGEoKX0sby5zdHJlbmd0aD1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD10eXBlb2Ygcz09ImZ1bmN0aW9uIj9zOk9uKCtzKSxhKCksbyk6dH0sby54PWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiBzPT0iZnVuY3Rpb24iP3M6T24oK3MpLGEoKSxvKTplfSxvfWZ1bmN0aW9uIHZ4dChlKXt2YXIgdD1PbiguMSkscixuLGk7dHlwZW9mIGUhPSJmdW5jdGlvbiImJihlPU9uKGU9PW51bGw/MDorZSkpO2Z1bmN0aW9uIG8ocyl7Zm9yKHZhciBsPTAsYz1yLmxlbmd0aCx1O2w8YzsrK2wpdT1yW2xdLHUudnkrPShpW2xdLXUueSkqbltsXSpzfWZ1bmN0aW9uIGEoKXtpZighIXIpe3ZhciBzLGw9ci5sZW5ndGg7Zm9yKG49bmV3IEFycmF5KGwpLGk9bmV3IEFycmF5KGwpLHM9MDtzPGw7KytzKW5bc109aXNOYU4oaVtzXT0rZShyW3NdLHMscikpPzA6K3QocltzXSxzLHIpfX1yZXR1cm4gby5pbml0aWFsaXplPWZ1bmN0aW9uKHMpe3I9cyxhKCl9LG8uc3RyZW5ndGg9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9dHlwZW9mIHM9PSJmdW5jdGlvbiI/czpPbigrcyksYSgpLG8pOnR9LG8ueT1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10eXBlb2Ygcz09ImZ1bmN0aW9uIj9zOk9uKCtzKSxhKCksbyk6ZX0sb31mdW5jdGlvbiB4eHQoZSl7cmV0dXJuIE1hdGguYWJzKGU9TWF0aC5yb3VuZChlKSk+PTFlMjE/ZS50b0xvY2FsZVN0cmluZygiZW4iKS5yZXBsYWNlKC8sL2csIiIpOmUudG9TdHJpbmcoMTApfWZ1bmN0aW9uIHpfKGUsdCl7aWYoKHI9KGU9dD9lLnRvRXhwb25lbnRpYWwodC0xKTplLnRvRXhwb25lbnRpYWwoKSkuaW5kZXhPZigiZSIpKTwwKXJldHVybiBudWxsO3ZhciByLG49ZS5zbGljZSgwLHIpO3JldHVybltuLmxlbmd0aD4xP25bMF0rbi5zbGljZSgyKTpuLCtlLnNsaWNlKHIrMSldfWZ1bmN0aW9uIEJoKGUpe3JldHVybiBlPXpfKE1hdGguYWJzKGUpKSxlP2VbMV06TmFOfWZ1bmN0aW9uIGJ4dChlLHQpe3JldHVybiBmdW5jdGlvbihyLG4pe2Zvcih2YXIgaT1yLmxlbmd0aCxvPVtdLGE9MCxzPWVbMF0sbD0wO2k+MCYmcz4wJiYobCtzKzE+biYmKHM9TWF0aC5tYXgoMSxuLWwpKSxvLnB1c2goci5zdWJzdHJpbmcoaS09cyxpK3MpKSwhKChsKz1zKzEpPm4pKTspcz1lW2E9KGErMSklZS5sZW5ndGhdO3JldHVybiBvLnJldmVyc2UoKS5qb2luKHQpfX1mdW5jdGlvbiB3eHQoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoL1swLTldL2csZnVuY3Rpb24ocil7cmV0dXJuIGVbK3JdfSl9fXZhciBuM2U9L14oPzooLik/KFs8Pj1eXSkpPyhbK1wtKCBdKT8oWyQjXSk/KDApPyhcZCspPygsKT8oXC5cZCspPyh+KT8oW2EteiVdKT8kL2k7ZnVuY3Rpb24ga3AoZSl7aWYoISh0PW4zZS5leGVjKGUpKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgZm9ybWF0OiAiK2UpO3ZhciB0O3JldHVybiBuZXcgR0Uoe2ZpbGw6dFsxXSxhbGlnbjp0WzJdLHNpZ246dFszXSxzeW1ib2w6dFs0XSx6ZXJvOnRbNV0sd2lkdGg6dFs2XSxjb21tYTp0WzddLHByZWNpc2lvbjp0WzhdJiZ0WzhdLnNsaWNlKDEpLHRyaW06dFs5XSx0eXBlOnRbMTBdfSl9a3AucHJvdG90eXBlPUdFLnByb3RvdHlwZTtmdW5jdGlvbiBHRShlKXt0aGlzLmZpbGw9ZS5maWxsPT09dm9pZCAwPyIgIjplLmZpbGwrIiIsdGhpcy5hbGlnbj1lLmFsaWduPT09dm9pZCAwPyI+IjplLmFsaWduKyIiLHRoaXMuc2lnbj1lLnNpZ249PT12b2lkIDA/Ii0iOmUuc2lnbisiIix0aGlzLnN5bWJvbD1lLnN5bWJvbD09PXZvaWQgMD8iIjplLnN5bWJvbCsiIix0aGlzLnplcm89ISFlLnplcm8sdGhpcy53aWR0aD1lLndpZHRoPT09dm9pZCAwP3ZvaWQgMDorZS53aWR0aCx0aGlzLmNvbW1hPSEhZS5jb21tYSx0aGlzLnByZWNpc2lvbj1lLnByZWNpc2lvbj09PXZvaWQgMD92b2lkIDA6K2UucHJlY2lzaW9uLHRoaXMudHJpbT0hIWUudHJpbSx0aGlzLnR5cGU9ZS50eXBlPT09dm9pZCAwPyIiOmUudHlwZSsiIn1HRS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsK3RoaXMuYWxpZ24rdGhpcy5zaWduK3RoaXMuc3ltYm9sKyh0aGlzLnplcm8/IjAiOiIiKSsodGhpcy53aWR0aD09PXZvaWQgMD8iIjpNYXRoLm1heCgxLHRoaXMud2lkdGh8MCkpKyh0aGlzLmNvbW1hPyIsIjoiIikrKHRoaXMucHJlY2lzaW9uPT09dm9pZCAwPyIiOiIuIitNYXRoLm1heCgwLHRoaXMucHJlY2lzaW9ufDApKSsodGhpcy50cmltPyJ+IjoiIikrdGhpcy50eXBlfTtmdW5jdGlvbiBTeHQoZSl7dDpmb3IodmFyIHQ9ZS5sZW5ndGgscj0xLG49LTEsaTtyPHQ7KytyKXN3aXRjaChlW3JdKXtjYXNlIi4iOm49aT1yO2JyZWFrO2Nhc2UiMCI6bj09PTAmJihuPXIpLGk9cjticmVhaztkZWZhdWx0OmlmKCErZVtyXSlicmVhayB0O24+MCYmKG49MCk7YnJlYWt9cmV0dXJuIG4+MD9lLnNsaWNlKDAsbikrZS5zbGljZShpKzEpOmV9dmFyIGxqO2Z1bmN0aW9uIE14dChlLHQpe3ZhciByPXpfKGUsdCk7aWYoIXIpcmV0dXJuIGUrIiI7dmFyIG49clswXSxpPXJbMV0sbz1pLShsaj1NYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoaS8zKSkpKjMpKzEsYT1uLmxlbmd0aDtyZXR1cm4gbz09PWE/bjpvPmE/bituZXcgQXJyYXkoby1hKzEpLmpvaW4oIjAiKTpvPjA/bi5zbGljZSgwLG8pKyIuIituLnNsaWNlKG8pOiIwLiIrbmV3IEFycmF5KDEtbykuam9pbigiMCIpK3pfKGUsTWF0aC5tYXgoMCx0K28tMSkpWzBdfWZ1bmN0aW9uIGNqKGUsdCl7dmFyIHI9el8oZSx0KTtpZighcilyZXR1cm4gZSsiIjt2YXIgbj1yWzBdLGk9clsxXTtyZXR1cm4gaTwwPyIwLiIrbmV3IEFycmF5KC1pKS5qb2luKCIwIikrbjpuLmxlbmd0aD5pKzE/bi5zbGljZSgwLGkrMSkrIi4iK24uc2xpY2UoaSsxKTpuK25ldyBBcnJheShpLW4ubGVuZ3RoKzIpLmpvaW4oIjAiKX12YXIgdWo9eyIlIjpmdW5jdGlvbihlLHQpe3JldHVybihlKjEwMCkudG9GaXhlZCh0KX0sYjpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5yb3VuZChlKS50b1N0cmluZygyKX0sYzpmdW5jdGlvbihlKXtyZXR1cm4gZSsiIn0sZDp4eHQsZTpmdW5jdGlvbihlLHQpe3JldHVybiBlLnRvRXhwb25lbnRpYWwodCl9LGY6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS50b0ZpeGVkKHQpfSxnOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUudG9QcmVjaXNpb24odCl9LG86ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucm91bmQoZSkudG9TdHJpbmcoOCl9LHA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gY2ooZSoxMDAsdCl9LHI6Y2osczpNeHQsWDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5yb3VuZChlKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX0seDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5yb3VuZChlKS50b1N0cmluZygxNil9fTtmdW5jdGlvbiBoaihlKXtyZXR1cm4gZX12YXIgRXh0PUFycmF5LnByb3RvdHlwZS5tYXAsVHh0PVsieSIsInoiLCJhIiwiZiIsInAiLCJuIiwiXHhCNSIsIm0iLCIiLCJrIiwiTSIsIkciLCJUIiwiUCIsIkUiLCJaIiwiWSJdO2Z1bmN0aW9uIGVrKGUpe3ZhciB0PWUuZ3JvdXBpbmc9PT12b2lkIDB8fGUudGhvdXNhbmRzPT09dm9pZCAwP2hqOmJ4dChFeHQuY2FsbChlLmdyb3VwaW5nLE51bWJlciksZS50aG91c2FuZHMrIiIpLHI9ZS5jdXJyZW5jeT09PXZvaWQgMD8iIjplLmN1cnJlbmN5WzBdKyIiLG49ZS5jdXJyZW5jeT09PXZvaWQgMD8iIjplLmN1cnJlbmN5WzFdKyIiLGk9ZS5kZWNpbWFsPT09dm9pZCAwPyIuIjplLmRlY2ltYWwrIiIsbz1lLm51bWVyYWxzPT09dm9pZCAwP2hqOnd4dChFeHQuY2FsbChlLm51bWVyYWxzLFN0cmluZykpLGE9ZS5wZXJjZW50PT09dm9pZCAwPyIlIjplLnBlcmNlbnQrIiIscz1lLm1pbnVzPT09dm9pZCAwPyItIjplLm1pbnVzKyIiLGw9ZS5uYW49PT12b2lkIDA/Ik5hTiI6ZS5uYW4rIiI7ZnVuY3Rpb24gYyhoKXtoPWtwKGgpO3ZhciBmPWguZmlsbCxwPWguYWxpZ24sZD1oLnNpZ24sZz1oLnN5bWJvbCxfPWguemVybyx5PWgud2lkdGgseD1oLmNvbW1hLGI9aC5wcmVjaXNpb24sUz1oLnRyaW0sQz1oLnR5cGU7Qz09PSJuIj8oeD0hMCxDPSJnIik6dWpbQ118fChiPT09dm9pZCAwJiYoYj0xMiksUz0hMCxDPSJnIiksKF98fGY9PT0iMCImJnA9PT0iPSIpJiYoXz0hMCxmPSIwIixwPSI9Iik7dmFyIFA9Zz09PSIkIj9yOmc9PT0iIyImJi9bYm94WF0vLnRlc3QoQyk/IjAiK0MudG9Mb3dlckNhc2UoKToiIixrPWc9PT0iJCI/bjovWyVwXS8udGVzdChDKT9hOiIiLE89dWpbQ10sRD0vW2RlZmdwcnMlXS8udGVzdChDKTtiPWI9PT12b2lkIDA/NjovW2dwcnNdLy50ZXN0KEMpP01hdGgubWF4KDEsTWF0aC5taW4oMjEsYikpOk1hdGgubWF4KDAsTWF0aC5taW4oMjAsYikpO2Z1bmN0aW9uIEIoSSl7dmFyIEw9UCxSPWssRix6LFU7aWYoQz09PSJjIilSPU8oSSkrUixJPSIiO2Vsc2V7ST0rSTt2YXIgVz1JPDB8fDEvSTwwO2lmKEk9aXNOYU4oSSk/bDpPKE1hdGguYWJzKEkpLGIpLFMmJihJPVN4dChJKSksVyYmK0k9PTAmJmQhPT0iKyImJihXPSExKSxMPShXP2Q9PT0iKCI/ZDpzOmQ9PT0iLSJ8fGQ9PT0iKCI/IiI6ZCkrTCxSPShDPT09InMiP1R4dFs4K2xqLzNdOiIiKStSKyhXJiZkPT09IigiPyIpIjoiIiksRCl7Zm9yKEY9LTEsej1JLmxlbmd0aDsrK0Y8ejspaWYoVT1JLmNoYXJDb2RlQXQoRiksNDg+VXx8VT41Nyl7Uj0oVT09PTQ2P2krSS5zbGljZShGKzEpOkkuc2xpY2UoRikpK1IsST1JLnNsaWNlKDAsRik7YnJlYWt9fX14JiYhXyYmKEk9dChJLDEvMCkpO3ZhciBaPUwubGVuZ3RoK0kubGVuZ3RoK1IubGVuZ3RoLHJ0PVo8eT9uZXcgQXJyYXkoeS1aKzEpLmpvaW4oZik6IiI7c3dpdGNoKHgmJl8mJihJPXQocnQrSSxydC5sZW5ndGg/eS1SLmxlbmd0aDoxLzApLHJ0PSIiKSxwKXtjYXNlIjwiOkk9TCtJK1IrcnQ7YnJlYWs7Y2FzZSI9IjpJPUwrcnQrSStSO2JyZWFrO2Nhc2UiXiI6ST1ydC5zbGljZSgwLFo9cnQubGVuZ3RoPj4xKStMK0krUitydC5zbGljZShaKTticmVhaztkZWZhdWx0Okk9cnQrTCtJK1I7YnJlYWt9cmV0dXJuIG8oSSl9cmV0dXJuIEIudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gaCsiIn0sQn1mdW5jdGlvbiB1KGgsZil7dmFyIHA9YygoaD1rcChoKSxoLnR5cGU9ImYiLGgpKSxkPU1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihCaChmKS8zKSkpKjMsZz1NYXRoLnBvdygxMCwtZCksXz1UeHRbOCtkLzNdO3JldHVybiBmdW5jdGlvbih5KXtyZXR1cm4gcChnKnkpK199fXJldHVybntmb3JtYXQ6Yyxmb3JtYXRQcmVmaXg6dX19dmFyIHJrLHhuLFdFO25rKHtkZWNpbWFsOiIuIix0aG91c2FuZHM6IiwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbIiQiLCIiXSxtaW51czoiLSJ9KTtmdW5jdGlvbiBuayhlKXtyZXR1cm4gcms9ZWsoZSkseG49cmsuZm9ybWF0LFdFPXJrLmZvcm1hdFByZWZpeCxya31mdW5jdGlvbiBpayhlKXtyZXR1cm4gTWF0aC5tYXgoMCwtQmgoTWF0aC5hYnMoZSkpKX1mdW5jdGlvbiBvayhlLHQpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihCaCh0KS8zKSkpKjMtQmgoTWF0aC5hYnMoZSkpKX1mdW5jdGlvbiBhayhlLHQpe3JldHVybiBlPU1hdGguYWJzKGUpLHQ9TWF0aC5hYnModCktZSxNYXRoLm1heCgwLEJoKHQpLUJoKGUpKSsxfWZ1bmN0aW9uIE1zKCl7cmV0dXJuIG5ldyBsa31mdW5jdGlvbiBsaygpe3RoaXMucmVzZXQoKX1say5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmxrLHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5zPXRoaXMudD0wfSxhZGQ6ZnVuY3Rpb24oZSl7Q3h0KHNrLGUsdGhpcy50KSxDeHQodGhpcyxzay5zLHRoaXMucyksdGhpcy5zP3RoaXMudCs9c2sudDp0aGlzLnM9c2sudH0sdmFsdWVPZjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN9fTt2YXIgc2s9bmV3IGxrO2Z1bmN0aW9uIEN4dChlLHQscil7dmFyIG49ZS5zPXQrcixpPW4tdCxvPW4taTtlLnQ9dC1vKyhyLWkpfXZhciBsZT0xZS02LEZfPTFlLTEyLEJlPU1hdGguUEksbW49QmUvMixQYj1CZS80LHdpPUJlKjIsdnI9MTgwL0JlLHllPUJlLzE4MCxSZT1NYXRoLmFicyxpYz1NYXRoLmF0YW4sYm49TWF0aC5hdGFuMixadD1NYXRoLmNvcyxZRT1NYXRoLmNlaWwsY2s9TWF0aC5leHA7dmFyIEJfPU1hdGgubG9nLHVrPU1hdGgucG93LFh0PU1hdGguc2luLHVhPU1hdGguc2lnbnx8ZnVuY3Rpb24oZSl7cmV0dXJuIGU+MD8xOmU8MD8tMTowfSx4cj1NYXRoLnNxcnQsSWI9TWF0aC50YW47ZnVuY3Rpb24gaGsoZSl7cmV0dXJuIGU+MT8wOmU8LTE/QmU6TWF0aC5hY29zKGUpfWZ1bmN0aW9uIHduKGUpe3JldHVybiBlPjE/bW46ZTwtMT8tbW46TWF0aC5hc2luKGUpfWZ1bmN0aW9uIGZqKGUpe3JldHVybihlPVh0KGUvMikpKmV9ZnVuY3Rpb24gRnIoKXt9ZnVuY3Rpb24gZmsoZSx0KXtlJiZQeHQuaGFzT3duUHJvcGVydHkoZS50eXBlKSYmUHh0W2UudHlwZV0oZSx0KX12YXIgQXh0PXtGZWF0dXJlOmZ1bmN0aW9uKGUsdCl7ZmsoZS5nZW9tZXRyeSx0KX0sRmVhdHVyZUNvbGxlY3Rpb246ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9ZS5mZWF0dXJlcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KWZrKHJbbl0uZ2VvbWV0cnksdCl9fSxQeHQ9e1NwaGVyZTpmdW5jdGlvbihlLHQpe3Quc3BoZXJlKCl9LFBvaW50OmZ1bmN0aW9uKGUsdCl7ZT1lLmNvb3JkaW5hdGVzLHQucG9pbnQoZVswXSxlWzFdLGVbMl0pfSxNdWx0aVBvaW50OmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPWUuY29vcmRpbmF0ZXMsbj0tMSxpPXIubGVuZ3RoOysrbjxpOyllPXJbbl0sdC5wb2ludChlWzBdLGVbMV0sZVsyXSl9LExpbmVTdHJpbmc6ZnVuY3Rpb24oZSx0KXtwaihlLmNvb3JkaW5hdGVzLHQsMCl9LE11bHRpTGluZVN0cmluZzpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1lLmNvb3JkaW5hdGVzLG49LTEsaT1yLmxlbmd0aDsrK248aTspcGoocltuXSx0LDApfSxQb2x5Z29uOmZ1bmN0aW9uKGUsdCl7SXh0KGUuY29vcmRpbmF0ZXMsdCl9LE11bHRpUG9seWdvbjpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1lLmNvb3JkaW5hdGVzLG49LTEsaT1yLmxlbmd0aDsrK248aTspSXh0KHJbbl0sdCl9LEdlb21ldHJ5Q29sbGVjdGlvbjpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1lLmdlb21ldHJpZXMsbj0tMSxpPXIubGVuZ3RoOysrbjxpOylmayhyW25dLHQpfX07ZnVuY3Rpb24gcGooZSx0LHIpe3ZhciBuPS0xLGk9ZS5sZW5ndGgtcixvO2Zvcih0LmxpbmVTdGFydCgpOysrbjxpOylvPWVbbl0sdC5wb2ludChvWzBdLG9bMV0sb1syXSk7dC5saW5lRW5kKCl9ZnVuY3Rpb24gSXh0KGUsdCl7dmFyIHI9LTEsbj1lLmxlbmd0aDtmb3IodC5wb2x5Z29uU3RhcnQoKTsrK3I8bjspcGooZVtyXSx0LDEpO3QucG9seWdvbkVuZCgpfWZ1bmN0aW9uIHZvKGUsdCl7ZSYmQXh0Lmhhc093blByb3BlcnR5KGUudHlwZSk/QXh0W2UudHlwZV0oZSx0KTpmayhlLHQpfXZhciBqRT1NcygpLHBrPU1zKCksTHh0LGt4dCxkaixtaixnaixwdT17cG9pbnQ6RnIsbGluZVN0YXJ0OkZyLGxpbmVFbmQ6RnIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7akUucmVzZXQoKSxwdS5saW5lU3RhcnQ9aTNlLHB1LmxpbmVFbmQ9bzNlfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dmFyIGU9K2pFO3BrLmFkZChlPDA/d2krZTplKSx0aGlzLmxpbmVTdGFydD10aGlzLmxpbmVFbmQ9dGhpcy5wb2ludD1Gcn0sc3BoZXJlOmZ1bmN0aW9uKCl7cGsuYWRkKHdpKX19O2Z1bmN0aW9uIGkzZSgpe3B1LnBvaW50PWEzZX1mdW5jdGlvbiBvM2UoKXtSeHQoTHh0LGt4dCl9ZnVuY3Rpb24gYTNlKGUsdCl7cHUucG9pbnQ9Unh0LEx4dD1lLGt4dD10LGUqPXllLHQqPXllLGRqPWUsbWo9WnQodD10LzIrUGIpLGdqPVh0KHQpfWZ1bmN0aW9uIFJ4dChlLHQpe2UqPXllLHQqPXllLHQ9dC8yK1BiO3ZhciByPWUtZGosbj1yPj0wPzE6LTEsaT1uKnIsbz1adCh0KSxhPVh0KHQpLHM9Z2oqYSxsPW1qKm8rcypadChpKSxjPXMqbipYdChpKTtqRS5hZGQoYm4oYyxsKSksZGo9ZSxtaj1vLGdqPWF9ZnVuY3Rpb24gTnh0KGUpe3JldHVybiBway5yZXNldCgpLHZvKGUscHUpLHBrKjJ9ZnVuY3Rpb24gSF8oZSl7cmV0dXJuW2JuKGVbMV0sZVswXSksd24oZVsyXSldfWZ1bmN0aW9uIG9jKGUpe3ZhciB0PWVbMF0scj1lWzFdLG49WnQocik7cmV0dXJuW24qWnQodCksbipYdCh0KSxYdChyKV19ZnVuY3Rpb24gWEUoZSx0KXtyZXR1cm4gZVswXSp0WzBdK2VbMV0qdFsxXStlWzJdKnRbMl19ZnVuY3Rpb24gUnAoZSx0KXtyZXR1cm5bZVsxXSp0WzJdLWVbMl0qdFsxXSxlWzJdKnRbMF0tZVswXSp0WzJdLGVbMF0qdFsxXS1lWzFdKnRbMF1dfWZ1bmN0aW9uIGRrKGUsdCl7ZVswXSs9dFswXSxlWzFdKz10WzFdLGVbMl0rPXRbMl19ZnVuY3Rpb24gJEUoZSx0KXtyZXR1cm5bZVswXSp0LGVbMV0qdCxlWzJdKnRdfWZ1bmN0aW9uIFZfKGUpe3ZhciB0PXhyKGVbMF0qZVswXStlWzFdKmVbMV0rZVsyXSplWzJdKTtlWzBdLz10LGVbMV0vPXQsZVsyXS89dH12YXIgcmksRXMsdWksaWwsVV8sRnh0LEJ4dCxMYixLRT1NcygpLGptLERwLE5wPXtwb2ludDpfaixsaW5lU3RhcnQ6RHh0LGxpbmVFbmQ6T3h0LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe05wLnBvaW50PVZ4dCxOcC5saW5lU3RhcnQ9czNlLE5wLmxpbmVFbmQ9bDNlLEtFLnJlc2V0KCkscHUucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtwdS5wb2x5Z29uRW5kKCksTnAucG9pbnQ9X2osTnAubGluZVN0YXJ0PUR4dCxOcC5saW5lRW5kPU94dCxqRTwwPyhyaT0tKHVpPTE4MCksRXM9LShpbD05MCkpOktFPmxlP2lsPTkwOktFPC1sZSYmKEVzPS05MCksRHBbMF09cmksRHBbMV09dWl9LHNwaGVyZTpmdW5jdGlvbigpe3JpPS0odWk9MTgwKSxFcz0tKGlsPTkwKX19O2Z1bmN0aW9uIF9qKGUsdCl7am0ucHVzaChEcD1bcmk9ZSx1aT1lXSksdDxFcyYmKEVzPXQpLHQ+aWwmJihpbD10KX1mdW5jdGlvbiBIeHQoZSx0KXt2YXIgcj1vYyhbZSp5ZSx0KnllXSk7aWYoTGIpe3ZhciBuPVJwKExiLHIpLGk9W25bMV0sLW5bMF0sMF0sbz1ScChpLG4pO1ZfKG8pLG89SF8obyk7dmFyIGE9ZS1VXyxzPWE+MD8xOi0xLGw9b1swXSp2cipzLGMsdT1SZShhKT4xODA7dV4ocypVXzxsJiZsPHMqZSk/KGM9b1sxXSp2cixjPmlsJiYoaWw9YykpOihsPShsKzM2MCklMzYwLTE4MCx1XihzKlVfPGwmJmw8cyplKT8oYz0tb1sxXSp2cixjPEVzJiYoRXM9YykpOih0PEVzJiYoRXM9dCksdD5pbCYmKGlsPXQpKSksdT9lPFVfP25sKHJpLGUpPm5sKHJpLHVpKSYmKHVpPWUpOm5sKGUsdWkpPm5sKHJpLHVpKSYmKHJpPWUpOnVpPj1yaT8oZTxyaSYmKHJpPWUpLGU+dWkmJih1aT1lKSk6ZT5VXz9ubChyaSxlKT5ubChyaSx1aSkmJih1aT1lKTpubChlLHVpKT5ubChyaSx1aSkmJihyaT1lKX1lbHNlIGptLnB1c2goRHA9W3JpPWUsdWk9ZV0pO3Q8RXMmJihFcz10KSx0PmlsJiYoaWw9dCksTGI9cixVXz1lfWZ1bmN0aW9uIER4dCgpe05wLnBvaW50PUh4dH1mdW5jdGlvbiBPeHQoKXtEcFswXT1yaSxEcFsxXT11aSxOcC5wb2ludD1faixMYj1udWxsfWZ1bmN0aW9uIFZ4dChlLHQpe2lmKExiKXt2YXIgcj1lLVVfO0tFLmFkZChSZShyKT4xODA/cisocj4wPzM2MDotMzYwKTpyKX1lbHNlIEZ4dD1lLEJ4dD10O3B1LnBvaW50KGUsdCksSHh0KGUsdCl9ZnVuY3Rpb24gczNlKCl7cHUubGluZVN0YXJ0KCl9ZnVuY3Rpb24gbDNlKCl7Vnh0KEZ4dCxCeHQpLHB1LmxpbmVFbmQoKSxSZShLRSk+bGUmJihyaT0tKHVpPTE4MCkpLERwWzBdPXJpLERwWzFdPXVpLExiPW51bGx9ZnVuY3Rpb24gbmwoZSx0KXtyZXR1cm4odC09ZSk8MD90KzM2MDp0fWZ1bmN0aW9uIGMzZShlLHQpe3JldHVybiBlWzBdLXRbMF19ZnVuY3Rpb24genh0KGUsdCl7cmV0dXJuIGVbMF08PWVbMV0/ZVswXTw9dCYmdDw9ZVsxXTp0PGVbMF18fGVbMV08dH1mdW5jdGlvbiBVeHQoZSl7dmFyIHQscixuLGksbyxhLHM7aWYoaWw9dWk9LShyaT1Fcz0xLzApLGptPVtdLHZvKGUsTnApLHI9am0ubGVuZ3RoKXtmb3Ioam0uc29ydChjM2UpLHQ9MSxuPWptWzBdLG89W25dO3Q8cjsrK3QpaT1qbVt0XSx6eHQobixpWzBdKXx8enh0KG4saVsxXSk/KG5sKG5bMF0saVsxXSk+bmwoblswXSxuWzFdKSYmKG5bMV09aVsxXSksbmwoaVswXSxuWzFdKT5ubChuWzBdLG5bMV0pJiYoblswXT1pWzBdKSk6by5wdXNoKG49aSk7Zm9yKGE9LTEvMCxyPW8ubGVuZ3RoLTEsdD0wLG49b1tyXTt0PD1yO249aSwrK3QpaT1vW3RdLChzPW5sKG5bMV0saVswXSkpPmEmJihhPXMscmk9aVswXSx1aT1uWzFdKX1yZXR1cm4gam09RHA9bnVsbCxyaT09PTEvMHx8RXM9PT0xLzA/W1tOYU4sTmFOXSxbTmFOLE5hTl1dOltbcmksRXNdLFt1aSxpbF1dfXZhciBaRSxtayxnayxfayx5ayx2ayx4ayxiayx5aix2aix4aixXeHQsWXh0LEJhLEhhLFZhLGR1PXtzcGhlcmU6RnIscG9pbnQ6YmosbGluZVN0YXJ0OnF4dCxsaW5lRW5kOkd4dCxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtkdS5saW5lU3RhcnQ9ZjNlLGR1LmxpbmVFbmQ9cDNlfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7ZHUubGluZVN0YXJ0PXF4dCxkdS5saW5lRW5kPUd4dH19O2Z1bmN0aW9uIGJqKGUsdCl7ZSo9eWUsdCo9eWU7dmFyIHI9WnQodCk7SkUocipadChlKSxyKlh0KGUpLFh0KHQpKX1mdW5jdGlvbiBKRShlLHQscil7KytaRSxnays9KGUtZ2spL1pFLF9rKz0odC1faykvWkUseWsrPShyLXlrKS9aRX1mdW5jdGlvbiBxeHQoKXtkdS5wb2ludD11M2V9ZnVuY3Rpb24gdTNlKGUsdCl7ZSo9eWUsdCo9eWU7dmFyIHI9WnQodCk7QmE9cipadChlKSxIYT1yKlh0KGUpLFZhPVh0KHQpLGR1LnBvaW50PWgzZSxKRShCYSxIYSxWYSl9ZnVuY3Rpb24gaDNlKGUsdCl7ZSo9eWUsdCo9eWU7dmFyIHI9WnQodCksbj1yKlp0KGUpLGk9cipYdChlKSxvPVh0KHQpLGE9Ym4oeHIoKGE9SGEqby1WYSppKSphKyhhPVZhKm4tQmEqbykqYSsoYT1CYSppLUhhKm4pKmEpLEJhKm4rSGEqaStWYSpvKTttays9YSx2ays9YSooQmErKEJhPW4pKSx4ays9YSooSGErKEhhPWkpKSxiays9YSooVmErKFZhPW8pKSxKRShCYSxIYSxWYSl9ZnVuY3Rpb24gR3h0KCl7ZHUucG9pbnQ9Ymp9ZnVuY3Rpb24gZjNlKCl7ZHUucG9pbnQ9ZDNlfWZ1bmN0aW9uIHAzZSgpe2p4dChXeHQsWXh0KSxkdS5wb2ludD1ian1mdW5jdGlvbiBkM2UoZSx0KXtXeHQ9ZSxZeHQ9dCxlKj15ZSx0Kj15ZSxkdS5wb2ludD1qeHQ7dmFyIHI9WnQodCk7QmE9cipadChlKSxIYT1yKlh0KGUpLFZhPVh0KHQpLEpFKEJhLEhhLFZhKX1mdW5jdGlvbiBqeHQoZSx0KXtlKj15ZSx0Kj15ZTt2YXIgcj1adCh0KSxuPXIqWnQoZSksaT1yKlh0KGUpLG89WHQodCksYT1IYSpvLVZhKmkscz1WYSpuLUJhKm8sbD1CYSppLUhhKm4sYz14cihhKmErcypzK2wqbCksdT13bihjKSxoPWMmJi11L2M7eWorPWgqYSx2ais9aCpzLHhqKz1oKmwsbWsrPXUsdmsrPXUqKEJhKyhCYT1uKSkseGsrPXUqKEhhKyhIYT1pKSksYmsrPXUqKFZhKyhWYT1vKSksSkUoQmEsSGEsVmEpfWZ1bmN0aW9uIFh4dChlKXtaRT1taz1naz1faz15az12az14az1iaz15aj12aj14aj0wLHZvKGUsZHUpO3ZhciB0PXlqLHI9dmosbj14aixpPXQqdCtyKnIrbipuO3JldHVybiBpPEZfJiYodD12ayxyPXhrLG49YmssbWs8bGUmJih0PWdrLHI9X2ssbj15ayksaT10KnQrcipyK24qbixpPEZfKT9bTmFOLE5hTl06W2JuKHIsdCkqdnIsd24obi94cihpKSkqdnJdfWZ1bmN0aW9uIHFfKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX1mdW5jdGlvbiBRRShlLHQpe2Z1bmN0aW9uIHIobixpKXtyZXR1cm4gbj1lKG4saSksdChuWzBdLG5bMV0pfXJldHVybiBlLmludmVydCYmdC5pbnZlcnQmJihyLmludmVydD1mdW5jdGlvbihuLGkpe3JldHVybiBuPXQuaW52ZXJ0KG4saSksbiYmZS5pbnZlcnQoblswXSxuWzFdKX0pLHJ9ZnVuY3Rpb24gd2ooZSx0KXtyZXR1cm5bUmUoZSk+QmU/ZStNYXRoLnJvdW5kKC1lL3dpKSp3aTplLHRdfXdqLmludmVydD13ajtmdW5jdGlvbiB0NShlLHQscil7cmV0dXJuKGUlPXdpKT90fHxyP1FFKEt4dChlKSxaeHQodCxyKSk6S3h0KGUpOnR8fHI/Wnh0KHQscik6d2p9ZnVuY3Rpb24gJHh0KGUpe3JldHVybiBmdW5jdGlvbih0LHIpe3JldHVybiB0Kz1lLFt0PkJlP3Qtd2k6dDwtQmU/dCt3aTp0LHJdfX1mdW5jdGlvbiBLeHQoZSl7dmFyIHQ9JHh0KGUpO3JldHVybiB0LmludmVydD0keHQoLWUpLHR9ZnVuY3Rpb24gWnh0KGUsdCl7dmFyIHI9WnQoZSksbj1YdChlKSxpPVp0KHQpLG89WHQodCk7ZnVuY3Rpb24gYShzLGwpe3ZhciBjPVp0KGwpLHU9WnQocykqYyxoPVh0KHMpKmMsZj1YdChsKSxwPWYqcit1Km47cmV0dXJuW2JuKGgqaS1wKm8sdSpyLWYqbiksd24ocCppK2gqbyldfXJldHVybiBhLmludmVydD1mdW5jdGlvbihzLGwpe3ZhciBjPVp0KGwpLHU9WnQocykqYyxoPVh0KHMpKmMsZj1YdChsKSxwPWYqaS1oKm87cmV0dXJuW2JuKGgqaStmKm8sdSpyK3Aqbiksd24ocCpyLXUqbildfSxhfWZ1bmN0aW9uIHdrKGUpe2U9dDUoZVswXSp5ZSxlWzFdKnllLGUubGVuZ3RoPjI/ZVsyXSp5ZTowKTtmdW5jdGlvbiB0KHIpe3JldHVybiByPWUoclswXSp5ZSxyWzFdKnllKSxyWzBdKj12cixyWzFdKj12cixyfXJldHVybiB0LmludmVydD1mdW5jdGlvbihyKXtyZXR1cm4gcj1lLmludmVydChyWzBdKnllLHJbMV0qeWUpLHJbMF0qPXZyLHJbMV0qPXZyLHJ9LHR9ZnVuY3Rpb24gU2ooZSx0LHIsbixpLG8pe2lmKCEhcil7dmFyIGE9WnQodCkscz1YdCh0KSxsPW4qcjtpPT1udWxsPyhpPXQrbip3aSxvPXQtbC8yKTooaT1KeHQoYSxpKSxvPUp4dChhLG8pLChuPjA/aTxvOmk+bykmJihpKz1uKndpKSk7Zm9yKHZhciBjLHU9aTtuPjA/dT5vOnU8bzt1LT1sKWM9SF8oW2EsLXMqWnQodSksLXMqWHQodSldKSxlLnBvaW50KGNbMF0sY1sxXSl9fWZ1bmN0aW9uIEp4dChlLHQpe3Q9b2ModCksdFswXS09ZSxWXyh0KTt2YXIgcj1oaygtdFsxXSk7cmV0dXJuKCgtdFsyXTwwPy1yOnIpK3dpLWxlKSV3aX1mdW5jdGlvbiBReHQoKXt2YXIgZT1xXyhbMCwwXSksdD1xXyg5MCkscj1xXyg2KSxuLGksbz17cG9pbnQ6YX07ZnVuY3Rpb24gYShsLGMpe24ucHVzaChsPWkobCxjKSksbFswXSo9dnIsbFsxXSo9dnJ9ZnVuY3Rpb24gcygpe3ZhciBsPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpLGM9dC5hcHBseSh0aGlzLGFyZ3VtZW50cykqeWUsdT1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKSp5ZTtyZXR1cm4gbj1bXSxpPXQ1KC1sWzBdKnllLC1sWzFdKnllLDApLmludmVydCxTaihvLGMsdSwxKSxsPXt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpbbl19LG49aT1udWxsLGx9cmV0dXJuIHMuY2VudGVyPWZ1bmN0aW9uKGwpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiBsPT0iZnVuY3Rpb24iP2w6cV8oWytsWzBdLCtsWzFdXSkscyk6ZX0scy5yYWRpdXM9ZnVuY3Rpb24obCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9dHlwZW9mIGw9PSJmdW5jdGlvbiI/bDpxXygrbCkscyk6dH0scy5wcmVjaXNpb249ZnVuY3Rpb24obCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dHlwZW9mIGw9PSJmdW5jdGlvbiI/bDpxXygrbCkscyk6cn0sc31mdW5jdGlvbiBTaygpe3ZhciBlPVtdLHQ7cmV0dXJue3BvaW50OmZ1bmN0aW9uKHIsbixpKXt0LnB1c2goW3IsbixpXSl9LGxpbmVTdGFydDpmdW5jdGlvbigpe2UucHVzaCh0PVtdKX0sbGluZUVuZDpGcixyZWpvaW46ZnVuY3Rpb24oKXtlLmxlbmd0aD4xJiZlLnB1c2goZS5wb3AoKS5jb25jYXQoZS5zaGlmdCgpKSl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciByPWU7cmV0dXJuIGU9W10sdD1udWxsLHJ9fX1mdW5jdGlvbiBrYihlLHQpe3JldHVybiBSZShlWzBdLXRbMF0pPGxlJiZSZShlWzFdLXRbMV0pPGxlfWZ1bmN0aW9uIE1rKGUsdCxyLG4pe3RoaXMueD1lLHRoaXMuej10LHRoaXMubz1yLHRoaXMuZT1uLHRoaXMudj0hMSx0aGlzLm49dGhpcy5wPW51bGx9ZnVuY3Rpb24gRWsoZSx0LHIsbixpKXt2YXIgbz1bXSxhPVtdLHMsbDtpZihlLmZvckVhY2goZnVuY3Rpb24oZCl7aWYoISgoZz1kLmxlbmd0aC0xKTw9MCkpe3ZhciBnLF89ZFswXSx5PWRbZ10seDtpZihrYihfLHkpKXtpZighX1syXSYmIXlbMl0pe2ZvcihpLmxpbmVTdGFydCgpLHM9MDtzPGc7KytzKWkucG9pbnQoKF89ZFtzXSlbMF0sX1sxXSk7aS5saW5lRW5kKCk7cmV0dXJufXlbMF0rPTIqbGV9by5wdXNoKHg9bmV3IE1rKF8sZCxudWxsLCEwKSksYS5wdXNoKHgubz1uZXcgTWsoXyxudWxsLHgsITEpKSxvLnB1c2goeD1uZXcgTWsoeSxkLG51bGwsITEpKSxhLnB1c2goeC5vPW5ldyBNayh5LG51bGwseCwhMCkpfX0pLCEhby5sZW5ndGgpe2ZvcihhLnNvcnQodCksdGJ0KG8pLHRidChhKSxzPTAsbD1hLmxlbmd0aDtzPGw7KytzKWFbc10uZT1yPSFyO2Zvcih2YXIgYz1vWzBdLHUsaDs7KXtmb3IodmFyIGY9YyxwPSEwO2YudjspaWYoKGY9Zi5uKT09PWMpcmV0dXJuO3U9Zi56LGkubGluZVN0YXJ0KCk7ZG97aWYoZi52PWYuby52PSEwLGYuZSl7aWYocClmb3Iocz0wLGw9dS5sZW5ndGg7czxsOysrcylpLnBvaW50KChoPXVbc10pWzBdLGhbMV0pO2Vsc2UgbihmLngsZi5uLngsMSxpKTtmPWYubn1lbHNle2lmKHApZm9yKHU9Zi5wLnoscz11Lmxlbmd0aC0xO3M+PTA7LS1zKWkucG9pbnQoKGg9dVtzXSlbMF0saFsxXSk7ZWxzZSBuKGYueCxmLnAueCwtMSxpKTtmPWYucH1mPWYubyx1PWYueixwPSFwfXdoaWxlKCFmLnYpO2kubGluZUVuZCgpfX19ZnVuY3Rpb24gdGJ0KGUpe2lmKCEhKHQ9ZS5sZW5ndGgpKXtmb3IodmFyIHQscj0wLG49ZVswXSxpOysrcjx0OyluLm49aT1lW3JdLGkucD1uLG49aTtuLm49aT1lWzBdLGkucD1ufX12YXIgTWo9TXMoKTtmdW5jdGlvbiBFaihlKXtyZXR1cm4gUmUoZVswXSk8PUJlP2VbMF06dWEoZVswXSkqKChSZShlWzBdKStCZSkld2ktQmUpfWZ1bmN0aW9uIFRrKGUsdCl7dmFyIHI9RWoodCksbj10WzFdLGk9WHQobiksbz1bWHQociksLVp0KHIpLDBdLGE9MCxzPTA7TWoucmVzZXQoKSxpPT09MT9uPW1uK2xlOmk9PT0tMSYmKG49LW1uLWxlKTtmb3IodmFyIGw9MCxjPWUubGVuZ3RoO2w8YzsrK2wpaWYoISEoaD0odT1lW2xdKS5sZW5ndGgpKWZvcih2YXIgdSxoLGY9dVtoLTFdLHA9RWooZiksZD1mWzFdLzIrUGIsZz1YdChkKSxfPVp0KGQpLHk9MDt5PGg7Kyt5LHA9YixnPUMsXz1QLGY9eCl7dmFyIHg9dVt5XSxiPUVqKHgpLFM9eFsxXS8yK1BiLEM9WHQoUyksUD1adChTKSxrPWItcCxPPWs+PTA/MTotMSxEPU8qayxCPUQ+QmUsST1nKkM7aWYoTWouYWRkKGJuKEkqTypYdChEKSxfKlArSSpadChEKSkpLGErPUI/aytPKndpOmssQl5wPj1yXmI+PXIpe3ZhciBMPVJwKG9jKGYpLG9jKHgpKTtWXyhMKTt2YXIgUj1ScChvLEwpO1ZfKFIpO3ZhciBGPShCXms+PTA/LTE6MSkqd24oUlsyXSk7KG4+Rnx8bj09PUYmJihMWzBdfHxMWzFdKSkmJihzKz1CXms+PTA/MTotMSl9fXJldHVybihhPC1sZXx8YTxsZSYmTWo8LWxlKV5zJjF9ZnVuY3Rpb24gQ2soZSx0LHIsbil7cmV0dXJuIGZ1bmN0aW9uKGkpe3ZhciBvPXQoaSksYT1TaygpLHM9dChhKSxsPSExLGMsdSxoLGY9e3BvaW50OnAsbGluZVN0YXJ0OmcsbGluZUVuZDpfLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2YucG9pbnQ9eSxmLmxpbmVTdGFydD14LGYubGluZUVuZD1iLHU9W10sYz1bXX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2YucG9pbnQ9cCxmLmxpbmVTdGFydD1nLGYubGluZUVuZD1fLHU9TG0odSk7dmFyIFM9VGsoYyxuKTt1Lmxlbmd0aD8obHx8KGkucG9seWdvblN0YXJ0KCksbD0hMCksRWsodSxnM2UsUyxyLGkpKTpTJiYobHx8KGkucG9seWdvblN0YXJ0KCksbD0hMCksaS5saW5lU3RhcnQoKSxyKG51bGwsbnVsbCwxLGkpLGkubGluZUVuZCgpKSxsJiYoaS5wb2x5Z29uRW5kKCksbD0hMSksdT1jPW51bGx9LHNwaGVyZTpmdW5jdGlvbigpe2kucG9seWdvblN0YXJ0KCksaS5saW5lU3RhcnQoKSxyKG51bGwsbnVsbCwxLGkpLGkubGluZUVuZCgpLGkucG9seWdvbkVuZCgpfX07ZnVuY3Rpb24gcChTLEMpe2UoUyxDKSYmaS5wb2ludChTLEMpfWZ1bmN0aW9uIGQoUyxDKXtvLnBvaW50KFMsQyl9ZnVuY3Rpb24gZygpe2YucG9pbnQ9ZCxvLmxpbmVTdGFydCgpfWZ1bmN0aW9uIF8oKXtmLnBvaW50PXAsby5saW5lRW5kKCl9ZnVuY3Rpb24geShTLEMpe2gucHVzaChbUyxDXSkscy5wb2ludChTLEMpfWZ1bmN0aW9uIHgoKXtzLmxpbmVTdGFydCgpLGg9W119ZnVuY3Rpb24gYigpe3koaFswXVswXSxoWzBdWzFdKSxzLmxpbmVFbmQoKTt2YXIgUz1zLmNsZWFuKCksQz1hLnJlc3VsdCgpLFAsaz1DLmxlbmd0aCxPLEQsQjtpZihoLnBvcCgpLGMucHVzaChoKSxoPW51bGwsISFrKXtpZihTJjEpe2lmKEQ9Q1swXSwoTz1ELmxlbmd0aC0xKT4wKXtmb3IobHx8KGkucG9seWdvblN0YXJ0KCksbD0hMCksaS5saW5lU3RhcnQoKSxQPTA7UDxPOysrUClpLnBvaW50KChCPURbUF0pWzBdLEJbMV0pO2kubGluZUVuZCgpfXJldHVybn1rPjEmJlMmMiYmQy5wdXNoKEMucG9wKCkuY29uY2F0KEMuc2hpZnQoKSkpLHUucHVzaChDLmZpbHRlcihtM2UpKX19cmV0dXJuIGZ9fWZ1bmN0aW9uIG0zZShlKXtyZXR1cm4gZS5sZW5ndGg+MX1mdW5jdGlvbiBnM2UoZSx0KXtyZXR1cm4oKGU9ZS54KVswXTwwP2VbMV0tbW4tbGU6bW4tZVsxXSktKCh0PXQueClbMF08MD90WzFdLW1uLWxlOm1uLXRbMV0pfXZhciBlNT1DayhmdW5jdGlvbigpe3JldHVybiEwfSxfM2UsdjNlLFstQmUsLW1uXSk7ZnVuY3Rpb24gXzNlKGUpe3ZhciB0PU5hTixyPU5hTixuPU5hTixpO3JldHVybntsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtlLmxpbmVTdGFydCgpLGk9MX0scG9pbnQ6ZnVuY3Rpb24obyxhKXt2YXIgcz1vPjA/QmU6LUJlLGw9UmUoby10KTtSZShsLUJlKTxsZT8oZS5wb2ludCh0LHI9KHIrYSkvMj4wP21uOi1tbiksZS5wb2ludChuLHIpLGUubGluZUVuZCgpLGUubGluZVN0YXJ0KCksZS5wb2ludChzLHIpLGUucG9pbnQobyxyKSxpPTApOm4hPT1zJiZsPj1CZSYmKFJlKHQtbik8bGUmJih0LT1uKmxlKSxSZShvLXMpPGxlJiYoby09cypsZSkscj15M2UodCxyLG8sYSksZS5wb2ludChuLHIpLGUubGluZUVuZCgpLGUubGluZVN0YXJ0KCksZS5wb2ludChzLHIpLGk9MCksZS5wb2ludCh0PW8scj1hKSxuPXN9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtlLmxpbmVFbmQoKSx0PXI9TmFOfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiAyLWl9fX1mdW5jdGlvbiB5M2UoZSx0LHIsbil7dmFyIGksbyxhPVh0KGUtcik7cmV0dXJuIFJlKGEpPmxlP2ljKChYdCh0KSoobz1adChuKSkqWHQociktWHQobikqKGk9WnQodCkpKlh0KGUpKS8oaSpvKmEpKToodCtuKS8yfWZ1bmN0aW9uIHYzZShlLHQscixuKXt2YXIgaTtpZihlPT1udWxsKWk9ciptbixuLnBvaW50KC1CZSxpKSxuLnBvaW50KDAsaSksbi5wb2ludChCZSxpKSxuLnBvaW50KEJlLDApLG4ucG9pbnQoQmUsLWkpLG4ucG9pbnQoMCwtaSksbi5wb2ludCgtQmUsLWkpLG4ucG9pbnQoLUJlLDApLG4ucG9pbnQoLUJlLGkpO2Vsc2UgaWYoUmUoZVswXS10WzBdKT5sZSl7dmFyIG89ZVswXTx0WzBdP0JlOi1CZTtpPXIqby8yLG4ucG9pbnQoLW8saSksbi5wb2ludCgwLGkpLG4ucG9pbnQobyxpKX1lbHNlIG4ucG9pbnQodFswXSx0WzFdKX1mdW5jdGlvbiBBayhlKXt2YXIgdD1adChlKSxyPTYqeWUsbj10PjAsaT1SZSh0KT5sZTtmdW5jdGlvbiBvKHUsaCxmLHApe1NqKHAsZSxyLGYsdSxoKX1mdW5jdGlvbiBhKHUsaCl7cmV0dXJuIFp0KHUpKlp0KGgpPnR9ZnVuY3Rpb24gcyh1KXt2YXIgaCxmLHAsZCxnO3JldHVybntsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtkPXA9ITEsZz0xfSxwb2ludDpmdW5jdGlvbihfLHkpe3ZhciB4PVtfLHldLGIsUz1hKF8seSksQz1uP1M/MDpjKF8seSk6Uz9jKF8rKF88MD9CZTotQmUpLHkpOjA7aWYoIWgmJihkPXA9UykmJnUubGluZVN0YXJ0KCksUyE9PXAmJihiPWwoaCx4KSwoIWJ8fGtiKGgsYil8fGtiKHgsYikpJiYoeFsyXT0xKSksUyE9PXApZz0wLFM/KHUubGluZVN0YXJ0KCksYj1sKHgsaCksdS5wb2ludChiWzBdLGJbMV0pKTooYj1sKGgseCksdS5wb2ludChiWzBdLGJbMV0sMiksdS5saW5lRW5kKCkpLGg9YjtlbHNlIGlmKGkmJmgmJm5eUyl7dmFyIFA7IShDJmYpJiYoUD1sKHgsaCwhMCkpJiYoZz0wLG4/KHUubGluZVN0YXJ0KCksdS5wb2ludChQWzBdWzBdLFBbMF1bMV0pLHUucG9pbnQoUFsxXVswXSxQWzFdWzFdKSx1LmxpbmVFbmQoKSk6KHUucG9pbnQoUFsxXVswXSxQWzFdWzFdKSx1LmxpbmVFbmQoKSx1LmxpbmVTdGFydCgpLHUucG9pbnQoUFswXVswXSxQWzBdWzFdLDMpKSl9UyYmKCFofHwha2IoaCx4KSkmJnUucG9pbnQoeFswXSx4WzFdKSxoPXgscD1TLGY9Q30sbGluZUVuZDpmdW5jdGlvbigpe3AmJnUubGluZUVuZCgpLGg9bnVsbH0sY2xlYW46ZnVuY3Rpb24oKXtyZXR1cm4gZ3woZCYmcCk8PDF9fX1mdW5jdGlvbiBsKHUsaCxmKXt2YXIgcD1vYyh1KSxkPW9jKGgpLGc9WzEsMCwwXSxfPVJwKHAsZCkseT1YRShfLF8pLHg9X1swXSxiPXkteCp4O2lmKCFiKXJldHVybiFmJiZ1O3ZhciBTPXQqeS9iLEM9LXQqeC9iLFA9UnAoZyxfKSxrPSRFKGcsUyksTz0kRShfLEMpO2RrKGssTyk7dmFyIEQ9UCxCPVhFKGssRCksST1YRShELEQpLEw9QipCLUkqKFhFKGssayktMSk7aWYoIShMPDApKXt2YXIgUj14cihMKSxGPSRFKEQsKC1CLVIpL0kpO2lmKGRrKEYsayksRj1IXyhGKSwhZilyZXR1cm4gRjt2YXIgej11WzBdLFU9aFswXSxXPXVbMV0sWj1oWzFdLHJ0O1U8eiYmKHJ0PXosej1VLFU9cnQpO3ZhciBvdD1VLXosc3Q9UmUob3QtQmUpPGxlLFN0PXN0fHxvdDxsZTtpZighc3QmJlo8VyYmKHJ0PVcsVz1aLFo9cnQpLFN0P3N0P1crWj4wXkZbMV08KFJlKEZbMF0teik8bGU/VzpaKTpXPD1GWzFdJiZGWzFdPD1aOm90PkJlXih6PD1GWzBdJiZGWzBdPD1VKSl7dmFyIGJ0PSRFKEQsKC1CK1IpL0kpO3JldHVybiBkayhidCxrKSxbRixIXyhidCldfX19ZnVuY3Rpb24gYyh1LGgpe3ZhciBmPW4/ZTpCZS1lLHA9MDtyZXR1cm4gdTwtZj9wfD0xOnU+ZiYmKHB8PTIpLGg8LWY/cHw9NDpoPmYmJihwfD04KSxwfXJldHVybiBDayhhLHMsbyxuP1swLC1lXTpbLUJlLGUtQmVdKX1mdW5jdGlvbiBlYnQoZSx0LHIsbixpLG8pe3ZhciBhPWVbMF0scz1lWzFdLGw9dFswXSxjPXRbMV0sdT0wLGg9MSxmPWwtYSxwPWMtcyxkO2lmKGQ9ci1hLCEoIWYmJmQ+MCkpe2lmKGQvPWYsZjwwKXtpZihkPHUpcmV0dXJuO2Q8aCYmKGg9ZCl9ZWxzZSBpZihmPjApe2lmKGQ+aClyZXR1cm47ZD51JiYodT1kKX1pZihkPWktYSwhKCFmJiZkPDApKXtpZihkLz1mLGY8MCl7aWYoZD5oKXJldHVybjtkPnUmJih1PWQpfWVsc2UgaWYoZj4wKXtpZihkPHUpcmV0dXJuO2Q8aCYmKGg9ZCl9aWYoZD1uLXMsISghcCYmZD4wKSl7aWYoZC89cCxwPDApe2lmKGQ8dSlyZXR1cm47ZDxoJiYoaD1kKX1lbHNlIGlmKHA+MCl7aWYoZD5oKXJldHVybjtkPnUmJih1PWQpfWlmKGQ9by1zLCEoIXAmJmQ8MCkpe2lmKGQvPXAscDwwKXtpZihkPmgpcmV0dXJuO2Q+dSYmKHU9ZCl9ZWxzZSBpZihwPjApe2lmKGQ8dSlyZXR1cm47ZDxoJiYoaD1kKX1yZXR1cm4gdT4wJiYoZVswXT1hK3UqZixlWzFdPXMrdSpwKSxoPDEmJih0WzBdPWEraCpmLHRbMV09cytoKnApLCEwfX19fX12YXIgcjU9MWU5LFBrPS1yNTtmdW5jdGlvbiBPcChlLHQscixuKXtmdW5jdGlvbiBpKGMsdSl7cmV0dXJuIGU8PWMmJmM8PXImJnQ8PXUmJnU8PW59ZnVuY3Rpb24gbyhjLHUsaCxmKXt2YXIgcD0wLGQ9MDtpZihjPT1udWxsfHwocD1hKGMsaCkpIT09KGQ9YSh1LGgpKXx8bChjLHUpPDBeaD4wKWRvIGYucG9pbnQocD09PTB8fHA9PT0zP2U6cixwPjE/bjp0KTt3aGlsZSgocD0ocCtoKzQpJTQpIT09ZCk7ZWxzZSBmLnBvaW50KHVbMF0sdVsxXSl9ZnVuY3Rpb24gYShjLHUpe3JldHVybiBSZShjWzBdLWUpPGxlP3U+MD8wOjM6UmUoY1swXS1yKTxsZT91PjA/MjoxOlJlKGNbMV0tdCk8bGU/dT4wPzE6MDp1PjA/MzoyfWZ1bmN0aW9uIHMoYyx1KXtyZXR1cm4gbChjLngsdS54KX1mdW5jdGlvbiBsKGMsdSl7dmFyIGg9YShjLDEpLGY9YSh1LDEpO3JldHVybiBoIT09Zj9oLWY6aD09PTA/dVsxXS1jWzFdOmg9PT0xP2NbMF0tdVswXTpoPT09Mj9jWzFdLXVbMV06dVswXS1jWzBdfXJldHVybiBmdW5jdGlvbihjKXt2YXIgdT1jLGg9U2soKSxmLHAsZCxnLF8seSx4LGIsUyxDLFAsaz17cG9pbnQ6TyxsaW5lU3RhcnQ6TCxsaW5lRW5kOlIscG9seWdvblN0YXJ0OkIscG9seWdvbkVuZDpJfTtmdW5jdGlvbiBPKHosVSl7aSh6LFUpJiZ1LnBvaW50KHosVSl9ZnVuY3Rpb24gRCgpe2Zvcih2YXIgej0wLFU9MCxXPXAubGVuZ3RoO1U8VzsrK1UpZm9yKHZhciBaPXBbVV0scnQ9MSxvdD1aLmxlbmd0aCxzdD1aWzBdLFN0LGJ0LE10PXN0WzBdLGx0PXN0WzFdO3J0PG90OysrcnQpU3Q9TXQsYnQ9bHQsc3Q9WltydF0sTXQ9c3RbMF0sbHQ9c3RbMV0sYnQ8PW4/bHQ+biYmKE10LVN0KSoobi1idCk+KGx0LWJ0KSooZS1TdCkmJisrejpsdDw9biYmKE10LVN0KSoobi1idCk8KGx0LWJ0KSooZS1TdCkmJi0tejtyZXR1cm4gen1mdW5jdGlvbiBCKCl7dT1oLGY9W10scD1bXSxQPSEwfWZ1bmN0aW9uIEkoKXt2YXIgej1EKCksVT1QJiZ6LFc9KGY9TG0oZikpLmxlbmd0aDsoVXx8VykmJihjLnBvbHlnb25TdGFydCgpLFUmJihjLmxpbmVTdGFydCgpLG8obnVsbCxudWxsLDEsYyksYy5saW5lRW5kKCkpLFcmJkVrKGYscyx6LG8sYyksYy5wb2x5Z29uRW5kKCkpLHU9YyxmPXA9ZD1udWxsfWZ1bmN0aW9uIEwoKXtrLnBvaW50PUYscCYmcC5wdXNoKGQ9W10pLEM9ITAsUz0hMSx4PWI9TmFOfWZ1bmN0aW9uIFIoKXtmJiYoRihnLF8pLHkmJlMmJmgucmVqb2luKCksZi5wdXNoKGgucmVzdWx0KCkpKSxrLnBvaW50PU8sUyYmdS5saW5lRW5kKCl9ZnVuY3Rpb24gRih6LFUpe3ZhciBXPWkoeixVKTtpZihwJiZkLnB1c2goW3osVV0pLEMpZz16LF89VSx5PVcsQz0hMSxXJiYodS5saW5lU3RhcnQoKSx1LnBvaW50KHosVSkpO2Vsc2UgaWYoVyYmUyl1LnBvaW50KHosVSk7ZWxzZXt2YXIgWj1beD1NYXRoLm1heChQayxNYXRoLm1pbihyNSx4KSksYj1NYXRoLm1heChQayxNYXRoLm1pbihyNSxiKSldLHJ0PVt6PU1hdGgubWF4KFBrLE1hdGgubWluKHI1LHopKSxVPU1hdGgubWF4KFBrLE1hdGgubWluKHI1LFUpKV07ZWJ0KFoscnQsZSx0LHIsbik/KFN8fCh1LmxpbmVTdGFydCgpLHUucG9pbnQoWlswXSxaWzFdKSksdS5wb2ludChydFswXSxydFsxXSksV3x8dS5saW5lRW5kKCksUD0hMSk6VyYmKHUubGluZVN0YXJ0KCksdS5wb2ludCh6LFUpLFA9ITEpfXg9eixiPVUsUz1XfXJldHVybiBrfX1mdW5jdGlvbiByYnQoKXt2YXIgZT0wLHQ9MCxyPTk2MCxuPTUwMCxpLG8sYTtyZXR1cm4gYT17c3RyZWFtOmZ1bmN0aW9uKHMpe3JldHVybiBpJiZvPT09cz9pOmk9T3AoZSx0LHIsbikobz1zKX0sZXh0ZW50OmZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPStzWzBdWzBdLHQ9K3NbMF1bMV0scj0rc1sxXVswXSxuPStzWzFdWzFdLGk9bz1udWxsLGEpOltbZSx0XSxbcixuXV19fX12YXIgVGo9TXMoKSxDaixJayxMayxSYj17c3BoZXJlOkZyLHBvaW50OkZyLGxpbmVTdGFydDp4M2UsbGluZUVuZDpGcixwb2x5Z29uU3RhcnQ6RnIscG9seWdvbkVuZDpGcn07ZnVuY3Rpb24geDNlKCl7UmIucG9pbnQ9dzNlLFJiLmxpbmVFbmQ9YjNlfWZ1bmN0aW9uIGIzZSgpe1JiLnBvaW50PVJiLmxpbmVFbmQ9RnJ9ZnVuY3Rpb24gdzNlKGUsdCl7ZSo9eWUsdCo9eWUsQ2o9ZSxJaz1YdCh0KSxMaz1adCh0KSxSYi5wb2ludD1TM2V9ZnVuY3Rpb24gUzNlKGUsdCl7ZSo9eWUsdCo9eWU7dmFyIHI9WHQodCksbj1adCh0KSxpPVJlKGUtQ2opLG89WnQoaSksYT1YdChpKSxzPW4qYSxsPUxrKnItSWsqbipvLGM9SWsqcitMaypuKm87VGouYWRkKGJuKHhyKHMqcytsKmwpLGMpKSxDaj1lLElrPXIsTGs9bn1mdW5jdGlvbiBrayhlKXtyZXR1cm4gVGoucmVzZXQoKSx2byhlLFJiKSwrVGp9dmFyIEFqPVtudWxsLG51bGxdLE0zZT17dHlwZToiTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6QWp9O2Z1bmN0aW9uIE5iKGUsdCl7cmV0dXJuIEFqWzBdPWUsQWpbMV09dCxrayhNM2UpfXZhciBuYnQ9e0ZlYXR1cmU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gUmsoZS5nZW9tZXRyeSx0KX0sRmVhdHVyZUNvbGxlY3Rpb246ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9ZS5mZWF0dXJlcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KWlmKFJrKHJbbl0uZ2VvbWV0cnksdCkpcmV0dXJuITA7cmV0dXJuITF9fSxpYnQ9e1NwaGVyZTpmdW5jdGlvbigpe3JldHVybiEwfSxQb2ludDpmdW5jdGlvbihlLHQpe3JldHVybiBvYnQoZS5jb29yZGluYXRlcyx0KX0sTXVsdGlQb2ludDpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1lLmNvb3JkaW5hdGVzLG49LTEsaT1yLmxlbmd0aDsrK248aTspaWYob2J0KHJbbl0sdCkpcmV0dXJuITA7cmV0dXJuITF9LExpbmVTdHJpbmc6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYWJ0KGUuY29vcmRpbmF0ZXMsdCl9LE11bHRpTGluZVN0cmluZzpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1lLmNvb3JkaW5hdGVzLG49LTEsaT1yLmxlbmd0aDsrK248aTspaWYoYWJ0KHJbbl0sdCkpcmV0dXJuITA7cmV0dXJuITF9LFBvbHlnb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gc2J0KGUuY29vcmRpbmF0ZXMsdCl9LE11bHRpUG9seWdvbjpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1lLmNvb3JkaW5hdGVzLG49LTEsaT1yLmxlbmd0aDsrK248aTspaWYoc2J0KHJbbl0sdCkpcmV0dXJuITA7cmV0dXJuITF9LEdlb21ldHJ5Q29sbGVjdGlvbjpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1lLmdlb21ldHJpZXMsbj0tMSxpPXIubGVuZ3RoOysrbjxpOylpZihSayhyW25dLHQpKXJldHVybiEwO3JldHVybiExfX07ZnVuY3Rpb24gUmsoZSx0KXtyZXR1cm4gZSYmaWJ0Lmhhc093blByb3BlcnR5KGUudHlwZSk/aWJ0W2UudHlwZV0oZSx0KTohMX1mdW5jdGlvbiBvYnQoZSx0KXtyZXR1cm4gTmIoZSx0KT09PTB9ZnVuY3Rpb24gYWJ0KGUsdCl7Zm9yKHZhciByLG4saSxvPTAsYT1lLmxlbmd0aDtvPGE7bysrKXtpZihuPU5iKGVbb10sdCksbj09PTB8fG8+MCYmKGk9TmIoZVtvXSxlW28tMV0pLGk+MCYmcjw9aSYmbjw9aSYmKHIrbi1pKSooMS1NYXRoLnBvdygoci1uKS9pLDIpKTxGXyppKSlyZXR1cm4hMDtyPW59cmV0dXJuITF9ZnVuY3Rpb24gc2J0KGUsdCl7cmV0dXJuISFUayhlLm1hcChFM2UpLGxidCh0KSl9ZnVuY3Rpb24gRTNlKGUpe3JldHVybiBlPWUubWFwKGxidCksZS5wb3AoKSxlfWZ1bmN0aW9uIGxidChlKXtyZXR1cm5bZVswXSp5ZSxlWzFdKnllXX1mdW5jdGlvbiBjYnQoZSx0KXtyZXR1cm4oZSYmbmJ0Lmhhc093blByb3BlcnR5KGUudHlwZSk/bmJ0W2UudHlwZV06UmspKGUsdCl9ZnVuY3Rpb24gdWJ0KGUsdCxyKXt2YXIgbj1JcihlLHQtbGUscikuY29uY2F0KHQpO3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gbi5tYXAoZnVuY3Rpb24obyl7cmV0dXJuW2ksb119KX19ZnVuY3Rpb24gaGJ0KGUsdCxyKXt2YXIgbj1JcihlLHQtbGUscikuY29uY2F0KHQpO3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gbi5tYXAoZnVuY3Rpb24obyl7cmV0dXJuW28saV19KX19ZnVuY3Rpb24gTmsoKXt2YXIgZSx0LHIsbixpLG8sYSxzLGw9MTAsYz1sLHU9OTAsaD0zNjAsZixwLGQsZyxfPTIuNTtmdW5jdGlvbiB5KCl7cmV0dXJue3R5cGU6Ik11bHRpTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6eCgpfX1mdW5jdGlvbiB4KCl7cmV0dXJuIElyKFlFKG4vdSkqdSxyLHUpLm1hcChkKS5jb25jYXQoSXIoWUUocy9oKSpoLGEsaCkubWFwKGcpKS5jb25jYXQoSXIoWUUodC9sKSpsLGUsbCkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBSZShiJXUpPmxlfSkubWFwKGYpKS5jb25jYXQoSXIoWUUoby9jKSpjLGksYykuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBSZShiJWgpPmxlfSkubWFwKHApKX1yZXR1cm4geS5saW5lcz1mdW5jdGlvbigpe3JldHVybiB4KCkubWFwKGZ1bmN0aW9uKGIpe3JldHVybnt0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczpifX0pfSx5Lm91dGxpbmU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6W2QobikuY29uY2F0KGcoYSkuc2xpY2UoMSksZChyKS5yZXZlcnNlKCkuc2xpY2UoMSksZyhzKS5yZXZlcnNlKCkuc2xpY2UoMSkpXX19LHkuZXh0ZW50PWZ1bmN0aW9uKGIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3kuZXh0ZW50TWFqb3IoYikuZXh0ZW50TWlub3IoYik6eS5leHRlbnRNaW5vcigpfSx5LmV4dGVudE1ham9yPWZ1bmN0aW9uKGIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPStiWzBdWzBdLHI9K2JbMV1bMF0scz0rYlswXVsxXSxhPStiWzFdWzFdLG4+ciYmKGI9bixuPXIscj1iKSxzPmEmJihiPXMscz1hLGE9YikseS5wcmVjaXNpb24oXykpOltbbixzXSxbcixhXV19LHkuZXh0ZW50TWlub3I9ZnVuY3Rpb24oYil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K2JbMF1bMF0sZT0rYlsxXVswXSxvPStiWzBdWzFdLGk9K2JbMV1bMV0sdD5lJiYoYj10LHQ9ZSxlPWIpLG8+aSYmKGI9byxvPWksaT1iKSx5LnByZWNpc2lvbihfKSk6W1t0LG9dLFtlLGldXX0seS5zdGVwPWZ1bmN0aW9uKGIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3kuc3RlcE1ham9yKGIpLnN0ZXBNaW5vcihiKTp5LnN0ZXBNaW5vcigpfSx5LnN0ZXBNYWpvcj1mdW5jdGlvbihiKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0rYlswXSxoPStiWzFdLHkpOlt1LGhdfSx5LnN0ZXBNaW5vcj1mdW5jdGlvbihiKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD0rYlswXSxjPStiWzFdLHkpOltsLGNdfSx5LnByZWNpc2lvbj1mdW5jdGlvbihiKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oXz0rYixmPXVidChvLGksOTApLHA9aGJ0KHQsZSxfKSxkPXVidChzLGEsOTApLGc9aGJ0KG4scixfKSx5KTpffSx5LmV4dGVudE1ham9yKFtbLTE4MCwtOTArbGVdLFsxODAsOTAtbGVdXSkuZXh0ZW50TWlub3IoW1stMTgwLC04MC1sZV0sWzE4MCw4MCtsZV1dKX1mdW5jdGlvbiBmYnQoKXtyZXR1cm4gTmsoKSgpfWZ1bmN0aW9uIHBidChlLHQpe3ZhciByPWVbMF0qeWUsbj1lWzFdKnllLGk9dFswXSp5ZSxvPXRbMV0qeWUsYT1adChuKSxzPVh0KG4pLGw9WnQobyksYz1YdChvKSx1PWEqWnQociksaD1hKlh0KHIpLGY9bCpadChpKSxwPWwqWHQoaSksZD0yKnduKHhyKGZqKG8tbikrYSpsKmZqKGktcikpKSxnPVh0KGQpLF89ZD9mdW5jdGlvbih5KXt2YXIgeD1YdCh5Kj1kKS9nLGI9WHQoZC15KS9nLFM9Yip1K3gqZixDPWIqaCt4KnAsUD1iKnMreCpjO3JldHVybltibihDLFMpKnZyLGJuKFAseHIoUypTK0MqQykpKnZyXX06ZnVuY3Rpb24oKXtyZXR1cm5bcip2cixuKnZyXX07cmV0dXJuIF8uZGlzdGFuY2U9ZCxffWZ1bmN0aW9uIFhtKGUpe3JldHVybiBlfXZhciBQaj1NcygpLElqPU1zKCksZGJ0LG1idCxMaixraiwkbT17cG9pbnQ6RnIsbGluZVN0YXJ0OkZyLGxpbmVFbmQ6RnIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7JG0ubGluZVN0YXJ0PVQzZSwkbS5saW5lRW5kPUEzZX0scG9seWdvbkVuZDpmdW5jdGlvbigpeyRtLmxpbmVTdGFydD0kbS5saW5lRW5kPSRtLnBvaW50PUZyLFBqLmFkZChSZShJaikpLElqLnJlc2V0KCl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciBlPVBqLzI7cmV0dXJuIFBqLnJlc2V0KCksZX19O2Z1bmN0aW9uIFQzZSgpeyRtLnBvaW50PUMzZX1mdW5jdGlvbiBDM2UoZSx0KXskbS5wb2ludD1nYnQsZGJ0PUxqPWUsbWJ0PWtqPXR9ZnVuY3Rpb24gZ2J0KGUsdCl7SWouYWRkKGtqKmUtTGoqdCksTGo9ZSxraj10fWZ1bmN0aW9uIEEzZSgpe2didChkYnQsbWJ0KX12YXIgUmo9JG07dmFyIERiPTEvMCxEaz1EYixuNT0tRGIsT2s9bjUsUDNlPXtwb2ludDpJM2UsbGluZVN0YXJ0OkZyLGxpbmVFbmQ6RnIscG9seWdvblN0YXJ0OkZyLHBvbHlnb25FbmQ6RnIscmVzdWx0OmZ1bmN0aW9uKCl7dmFyIGU9W1tEYixEa10sW241LE9rXV07cmV0dXJuIG41PU9rPS0oRGs9RGI9MS8wKSxlfX07ZnVuY3Rpb24gSTNlKGUsdCl7ZTxEYiYmKERiPWUpLGU+bjUmJihuNT1lKSx0PERrJiYoRGs9dCksdD5PayYmKE9rPXQpfXZhciBPYj1QM2U7dmFyIE5qPTAsRGo9MCxpNT0wLHprPTAsRms9MCx6Yj0wLE9qPTAsemo9MCxvNT0wLHZidCx4YnQsSGgsVmgsbXU9e3BvaW50OkdfLGxpbmVTdGFydDpfYnQsbGluZUVuZDp5YnQscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7bXUubGluZVN0YXJ0PVIzZSxtdS5saW5lRW5kPU4zZX0scG9seWdvbkVuZDpmdW5jdGlvbigpe211LnBvaW50PUdfLG11LmxpbmVTdGFydD1fYnQsbXUubGluZUVuZD15YnR9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciBlPW81P1tPai9vNSx6ai9vNV06emI/W3prL3piLEZrL3piXTppNT9bTmovaTUsRGovaTVdOltOYU4sTmFOXTtyZXR1cm4gTmo9RGo9aTU9ems9Rms9emI9T2o9emo9bzU9MCxlfX07ZnVuY3Rpb24gR18oZSx0KXtOais9ZSxEais9dCwrK2k1fWZ1bmN0aW9uIF9idCgpe211LnBvaW50PUwzZX1mdW5jdGlvbiBMM2UoZSx0KXttdS5wb2ludD1rM2UsR18oSGg9ZSxWaD10KX1mdW5jdGlvbiBrM2UoZSx0KXt2YXIgcj1lLUhoLG49dC1WaCxpPXhyKHIqcituKm4pO3prKz1pKihIaCtlKS8yLEZrKz1pKihWaCt0KS8yLHpiKz1pLEdfKEhoPWUsVmg9dCl9ZnVuY3Rpb24geWJ0KCl7bXUucG9pbnQ9R199ZnVuY3Rpb24gUjNlKCl7bXUucG9pbnQ9RDNlfWZ1bmN0aW9uIE4zZSgpe2JidCh2YnQseGJ0KX1mdW5jdGlvbiBEM2UoZSx0KXttdS5wb2ludD1iYnQsR18odmJ0PUhoPWUseGJ0PVZoPXQpfWZ1bmN0aW9uIGJidChlLHQpe3ZhciByPWUtSGgsbj10LVZoLGk9eHIocipyK24qbik7emsrPWkqKEhoK2UpLzIsRmsrPWkqKFZoK3QpLzIsemIrPWksaT1WaCplLUhoKnQsT2orPWkqKEhoK2UpLHpqKz1pKihWaCt0KSxvNSs9aSozLEdfKEhoPWUsVmg9dCl9dmFyIEZqPW11O2Z1bmN0aW9uIEJrKGUpe3RoaXMuX2NvbnRleHQ9ZX1Cay5wcm90b3R5cGU9e19yYWRpdXM6NC41LHBvaW50UmFkaXVzOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9yYWRpdXM9ZSx0aGlzfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9PT0wJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX3BvaW50PU5hTn0scG9pbnQ6ZnVuY3Rpb24oZSx0KXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp7dGhpcy5fY29udGV4dC5tb3ZlVG8oZSx0KSx0aGlzLl9wb2ludD0xO2JyZWFrfWNhc2UgMTp7dGhpcy5fY29udGV4dC5saW5lVG8oZSx0KTticmVha31kZWZhdWx0Ont0aGlzLl9jb250ZXh0Lm1vdmVUbyhlK3RoaXMuX3JhZGl1cyx0KSx0aGlzLl9jb250ZXh0LmFyYyhlLHQsdGhpcy5fcmFkaXVzLDAsd2kpO2JyZWFrfX19LHJlc3VsdDpGcn07dmFyIEhqPU1zKCksQmosd2J0LFNidCxhNSxzNSxIaz17cG9pbnQ6RnIsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7SGsucG9pbnQ9TzNlfSxsaW5lRW5kOmZ1bmN0aW9uKCl7QmomJk1idCh3YnQsU2J0KSxIay5wb2ludD1Gcn0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7Qmo9ITB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtCaj1udWxsfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgZT0rSGo7cmV0dXJuIEhqLnJlc2V0KCksZX19O2Z1bmN0aW9uIE8zZShlLHQpe0hrLnBvaW50PU1idCx3YnQ9YTU9ZSxTYnQ9czU9dH1mdW5jdGlvbiBNYnQoZSx0KXthNS09ZSxzNS09dCxIai5hZGQoeHIoYTUqYTUrczUqczUpKSxhNT1lLHM1PXR9dmFyIFZqPUhrO2Z1bmN0aW9uIFZrKCl7dGhpcy5fc3RyaW5nPVtdfVZrLnByb3RvdHlwZT17X3JhZGl1czo0LjUsX2NpcmNsZTpFYnQoNC41KSxwb2ludFJhZGl1czpmdW5jdGlvbihlKXtyZXR1cm4oZT0rZSkhPT10aGlzLl9yYWRpdXMmJih0aGlzLl9yYWRpdXM9ZSx0aGlzLl9jaXJjbGU9bnVsbCksdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPT09MCYmdGhpcy5fc3RyaW5nLnB1c2goIloiKSx0aGlzLl9wb2ludD1OYU59LHBvaW50OmZ1bmN0aW9uKGUsdCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6e3RoaXMuX3N0cmluZy5wdXNoKCJNIixlLCIsIix0KSx0aGlzLl9wb2ludD0xO2JyZWFrfWNhc2UgMTp7dGhpcy5fc3RyaW5nLnB1c2goIkwiLGUsIiwiLHQpO2JyZWFrfWRlZmF1bHQ6e3RoaXMuX2NpcmNsZT09bnVsbCYmKHRoaXMuX2NpcmNsZT1FYnQodGhpcy5fcmFkaXVzKSksdGhpcy5fc3RyaW5nLnB1c2goIk0iLGUsIiwiLHQsdGhpcy5fY2lyY2xlKTticmVha319fSxyZXN1bHQ6ZnVuY3Rpb24oKXtpZih0aGlzLl9zdHJpbmcubGVuZ3RoKXt2YXIgZT10aGlzLl9zdHJpbmcuam9pbigiIik7cmV0dXJuIHRoaXMuX3N0cmluZz1bXSxlfWVsc2UgcmV0dXJuIG51bGx9fTtmdW5jdGlvbiBFYnQoZSl7cmV0dXJuIm0wLCIrZSsiYSIrZSsiLCIrZSsiIDAgMSwxIDAsIistMiplKyJhIitlKyIsIitlKyIgMCAxLDEgMCwiKzIqZSsieiJ9ZnVuY3Rpb24gVGJ0KGUsdCl7dmFyIHI9NC41LG4saTtmdW5jdGlvbiBvKGEpe3JldHVybiBhJiYodHlwZW9mIHI9PSJmdW5jdGlvbiImJmkucG9pbnRSYWRpdXMoK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKSx2byhhLG4oaSkpKSxpLnJlc3VsdCgpfXJldHVybiBvLmFyZWE9ZnVuY3Rpb24oYSl7cmV0dXJuIHZvKGEsbihSaikpLFJqLnJlc3VsdCgpfSxvLm1lYXN1cmU9ZnVuY3Rpb24oYSl7cmV0dXJuIHZvKGEsbihWaikpLFZqLnJlc3VsdCgpfSxvLmJvdW5kcz1mdW5jdGlvbihhKXtyZXR1cm4gdm8oYSxuKE9iKSksT2IucmVzdWx0KCl9LG8uY2VudHJvaWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHZvKGEsbihGaikpLEZqLnJlc3VsdCgpfSxvLnByb2plY3Rpb249ZnVuY3Rpb24oYSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49YT09bnVsbD8oZT1udWxsLFhtKTooZT1hKS5zdHJlYW0sbyk6ZX0sby5jb250ZXh0PWZ1bmN0aW9uKGEpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPWE9PW51bGw/KHQ9bnVsbCxuZXcgVmspOm5ldyBCayh0PWEpLHR5cGVvZiByIT0iZnVuY3Rpb24iJiZpLnBvaW50UmFkaXVzKHIpLG8pOnR9LG8ucG9pbnRSYWRpdXM9ZnVuY3Rpb24oYSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dHlwZW9mIGE9PSJmdW5jdGlvbiI/YTooaS5wb2ludFJhZGl1cygrYSksK2EpLG8pOnJ9LG8ucHJvamVjdGlvbihlKS5jb250ZXh0KHQpfWZ1bmN0aW9uIENidChlKXtyZXR1cm57c3RyZWFtOkttKGUpfX1mdW5jdGlvbiBLbShlKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIHI9bmV3IFVqO2Zvcih2YXIgbiBpbiBlKXJbbl09ZVtuXTtyZXR1cm4gci5zdHJlYW09dCxyfX1mdW5jdGlvbiBVaigpe31Vai5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlVqLHBvaW50OmZ1bmN0aW9uKGUsdCl7dGhpcy5zdHJlYW0ucG9pbnQoZSx0KX0sc3BoZXJlOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25FbmQoKX19O2Z1bmN0aW9uIHFqKGUsdCxyKXt2YXIgbj1lLmNsaXBFeHRlbnQmJmUuY2xpcEV4dGVudCgpO3JldHVybiBlLnNjYWxlKDE1MCkudHJhbnNsYXRlKFswLDBdKSxuIT1udWxsJiZlLmNsaXBFeHRlbnQobnVsbCksdm8ocixlLnN0cmVhbShPYikpLHQoT2IucmVzdWx0KCkpLG4hPW51bGwmJmUuY2xpcEV4dGVudChuKSxlfWZ1bmN0aW9uIFdfKGUsdCxyKXtyZXR1cm4gcWooZSxmdW5jdGlvbihuKXt2YXIgaT10WzFdWzBdLXRbMF1bMF0sbz10WzFdWzFdLXRbMF1bMV0sYT1NYXRoLm1pbihpLyhuWzFdWzBdLW5bMF1bMF0pLG8vKG5bMV1bMV0tblswXVsxXSkpLHM9K3RbMF1bMF0rKGktYSooblsxXVswXStuWzBdWzBdKSkvMixsPSt0WzBdWzFdKyhvLWEqKG5bMV1bMV0rblswXVsxXSkpLzI7ZS5zY2FsZSgxNTAqYSkudHJhbnNsYXRlKFtzLGxdKX0scil9ZnVuY3Rpb24gRmIoZSx0LHIpe3JldHVybiBXXyhlLFtbMCwwXSx0XSxyKX1mdW5jdGlvbiBCYihlLHQscil7cmV0dXJuIHFqKGUsZnVuY3Rpb24obil7dmFyIGk9K3Qsbz1pLyhuWzFdWzBdLW5bMF1bMF0pLGE9KGktbyooblsxXVswXStuWzBdWzBdKSkvMixzPS1vKm5bMF1bMV07ZS5zY2FsZSgxNTAqbykudHJhbnNsYXRlKFthLHNdKX0scil9ZnVuY3Rpb24gSGIoZSx0LHIpe3JldHVybiBxaihlLGZ1bmN0aW9uKG4pe3ZhciBpPSt0LG89aS8oblsxXVsxXS1uWzBdWzFdKSxhPS1vKm5bMF1bMF0scz0oaS1vKihuWzFdWzFdK25bMF1bMV0pKS8yO2Uuc2NhbGUoMTUwKm8pLnRyYW5zbGF0ZShbYSxzXSl9LHIpfXZhciBBYnQ9MTYsejNlPVp0KDMwKnllKTtmdW5jdGlvbiBHaihlLHQpe3JldHVybit0P0IzZShlLHQpOkYzZShlKX1mdW5jdGlvbiBGM2UoZSl7cmV0dXJuIEttKHtwb2ludDpmdW5jdGlvbih0LHIpe3Q9ZSh0LHIpLHRoaXMuc3RyZWFtLnBvaW50KHRbMF0sdFsxXSl9fSl9ZnVuY3Rpb24gQjNlKGUsdCl7ZnVuY3Rpb24gcihuLGksbyxhLHMsbCxjLHUsaCxmLHAsZCxnLF8pe3ZhciB5PWMtbix4PXUtaSxiPXkqeSt4Kng7aWYoYj40KnQmJmctLSl7dmFyIFM9YStmLEM9cytwLFA9bCtkLGs9eHIoUypTK0MqQytQKlApLE89d24oUC89ayksRD1SZShSZShQKS0xKTxsZXx8UmUoby1oKTxsZT8obytoKS8yOmJuKEMsUyksQj1lKEQsTyksST1CWzBdLEw9QlsxXSxSPUktbixGPUwtaSx6PXgqUi15KkY7KHoqei9iPnR8fFJlKCh5KlIreCpGKS9iLS41KT4uM3x8YSpmK3MqcCtsKmQ8ejNlKSYmKHIobixpLG8sYSxzLGwsSSxMLEQsUy89ayxDLz1rLFAsZyxfKSxfLnBvaW50KEksTCkscihJLEwsRCxTLEMsUCxjLHUsaCxmLHAsZCxnLF8pKX19cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpLG8sYSxzLGwsYyx1LGgsZixwLGQsZyxfPXtwb2ludDp5LGxpbmVTdGFydDp4LGxpbmVFbmQ6Uyxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtuLnBvbHlnb25TdGFydCgpLF8ubGluZVN0YXJ0PUN9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtuLnBvbHlnb25FbmQoKSxfLmxpbmVTdGFydD14fX07ZnVuY3Rpb24geShPLEQpe089ZShPLEQpLG4ucG9pbnQoT1swXSxPWzFdKX1mdW5jdGlvbiB4KCl7aD1OYU4sXy5wb2ludD1iLG4ubGluZVN0YXJ0KCl9ZnVuY3Rpb24gYihPLEQpe3ZhciBCPW9jKFtPLERdKSxJPWUoTyxEKTtyKGgsZix1LHAsZCxnLGg9SVswXSxmPUlbMV0sdT1PLHA9QlswXSxkPUJbMV0sZz1CWzJdLEFidCxuKSxuLnBvaW50KGgsZil9ZnVuY3Rpb24gUygpe18ucG9pbnQ9eSxuLmxpbmVFbmQoKX1mdW5jdGlvbiBDKCl7eCgpLF8ucG9pbnQ9UCxfLmxpbmVFbmQ9a31mdW5jdGlvbiBQKE8sRCl7YihpPU8sRCksbz1oLGE9ZixzPXAsbD1kLGM9ZyxfLnBvaW50PWJ9ZnVuY3Rpb24gaygpe3IoaCxmLHUscCxkLGcsbyxhLGkscyxsLGMsQWJ0LG4pLF8ubGluZUVuZD1TLFMoKX1yZXR1cm4gX319dmFyIEgzZT1LbSh7cG9pbnQ6ZnVuY3Rpb24oZSx0KXt0aGlzLnN0cmVhbS5wb2ludChlKnllLHQqeWUpfX0pO2Z1bmN0aW9uIFYzZShlKXtyZXR1cm4gS20oe3BvaW50OmZ1bmN0aW9uKHQscil7dmFyIG49ZSh0LHIpO3JldHVybiB0aGlzLnN0cmVhbS5wb2ludChuWzBdLG5bMV0pfX0pfWZ1bmN0aW9uIFUzZShlLHQscixuLGkpe2Z1bmN0aW9uIG8oYSxzKXtyZXR1cm4gYSo9bixzKj1pLFt0K2UqYSxyLWUqc119cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKGEscyl7cmV0dXJuWyhhLXQpL2Uqbiwoci1zKS9lKmldfSxvfWZ1bmN0aW9uIFBidChlLHQscixuLGksbyl7dmFyIGE9WnQobykscz1YdChvKSxsPWEqZSxjPXMqZSx1PWEvZSxoPXMvZSxmPShzKnItYSp0KS9lLHA9KHMqdCthKnIpL2U7ZnVuY3Rpb24gZChnLF8pe3JldHVybiBnKj1uLF8qPWksW2wqZy1jKl8rdCxyLWMqZy1sKl9dfXJldHVybiBkLmludmVydD1mdW5jdGlvbihnLF8pe3JldHVybltuKih1KmctaCpfK2YpLGkqKHAtaCpnLXUqXyldfSxkfWZ1bmN0aW9uIFNpKGUpe3JldHVybiBsNShmdW5jdGlvbigpe3JldHVybiBlfSkoKX1mdW5jdGlvbiBsNShlKXt2YXIgdCxyPTE1MCxuPTQ4MCxpPTI1MCxvPTAsYT0wLHM9MCxsPTAsYz0wLHUsaD0wLGY9MSxwPTEsZD1udWxsLGc9ZTUsXz1udWxsLHkseCxiLFM9WG0sQz0uNSxQLGssTyxELEI7ZnVuY3Rpb24gSSh6KXtyZXR1cm4gTyh6WzBdKnllLHpbMV0qeWUpfWZ1bmN0aW9uIEwoeil7cmV0dXJuIHo9Ty5pbnZlcnQoelswXSx6WzFdKSx6JiZbelswXSp2cix6WzFdKnZyXX1JLnN0cmVhbT1mdW5jdGlvbih6KXtyZXR1cm4gRCYmQj09PXo/RDpEPUgzZShWM2UodSkoZyhQKFMoQj16KSkpKSl9LEkucHJlY2xpcD1mdW5jdGlvbih6KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz16LGQ9dm9pZCAwLEYoKSk6Z30sSS5wb3N0Y2xpcD1mdW5jdGlvbih6KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oUz16LF89eT14PWI9bnVsbCxGKCkpOlN9LEkuY2xpcEFuZ2xlPWZ1bmN0aW9uKHope3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhnPSt6P0FrKGQ9eip5ZSk6KGQ9bnVsbCxlNSksRigpKTpkKnZyfSxJLmNsaXBFeHRlbnQ9ZnVuY3Rpb24oeil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KFM9ej09bnVsbD8oXz15PXg9Yj1udWxsLFhtKTpPcChfPSt6WzBdWzBdLHk9K3pbMF1bMV0seD0relsxXVswXSxiPSt6WzFdWzFdKSxGKCkpOl89PW51bGw/bnVsbDpbW18seV0sW3gsYl1dfSxJLnNjYWxlPWZ1bmN0aW9uKHope3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt6LFIoKSk6cn0sSS50cmFuc2xhdGU9ZnVuY3Rpb24oeil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3pbMF0saT0relsxXSxSKCkpOltuLGldfSxJLmNlbnRlcj1mdW5jdGlvbih6KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz16WzBdJTM2MCp5ZSxhPXpbMV0lMzYwKnllLFIoKSk6W28qdnIsYSp2cl19LEkucm90YXRlPWZ1bmN0aW9uKHope3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPXpbMF0lMzYwKnllLGw9elsxXSUzNjAqeWUsYz16Lmxlbmd0aD4yP3pbMl0lMzYwKnllOjAsUigpKTpbcyp2cixsKnZyLGMqdnJdfSxJLmFuZ2xlPWZ1bmN0aW9uKHope3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXolMzYwKnllLFIoKSk6aCp2cn0sSS5yZWZsZWN0WD1mdW5jdGlvbih6KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj16Py0xOjEsUigpKTpmPDB9LEkucmVmbGVjdFk9ZnVuY3Rpb24oeil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9ej8tMToxLFIoKSk6cDwwfSxJLnByZWNpc2lvbj1mdW5jdGlvbih6KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oUD1HaihrLEM9eip6KSxGKCkpOnhyKEMpfSxJLmZpdEV4dGVudD1mdW5jdGlvbih6LFUpe3JldHVybiBXXyhJLHosVSl9LEkuZml0U2l6ZT1mdW5jdGlvbih6LFUpe3JldHVybiBGYihJLHosVSl9LEkuZml0V2lkdGg9ZnVuY3Rpb24oeixVKXtyZXR1cm4gQmIoSSx6LFUpfSxJLmZpdEhlaWdodD1mdW5jdGlvbih6LFUpe3JldHVybiBIYihJLHosVSl9O2Z1bmN0aW9uIFIoKXt2YXIgej1QYnQociwwLDAsZixwLGgpLmFwcGx5KG51bGwsdChvLGEpKSxVPShoP1BidDpVM2UpKHIsbi16WzBdLGktelsxXSxmLHAsaCk7cmV0dXJuIHU9dDUocyxsLGMpLGs9UUUodCxVKSxPPVFFKHUsayksUD1HaihrLEMpLEYoKX1mdW5jdGlvbiBGKCl7cmV0dXJuIEQ9Qj1udWxsLEl9cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQ9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksSS5pbnZlcnQ9dC5pbnZlcnQmJkwsUigpfX1mdW5jdGlvbiBWYihlKXt2YXIgdD0wLHI9QmUvMyxuPWw1KGUpLGk9bih0LHIpO3JldHVybiBpLnBhcmFsbGVscz1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uKHQ9b1swXSp5ZSxyPW9bMV0qeWUpOlt0KnZyLHIqdnJdfSxpfWZ1bmN0aW9uIElidChlKXt2YXIgdD1adChlKTtmdW5jdGlvbiByKG4saSl7cmV0dXJuW24qdCxYdChpKS90XX1yZXR1cm4gci5pbnZlcnQ9ZnVuY3Rpb24obixpKXtyZXR1cm5bbi90LHduKGkqdCldfSxyfWZ1bmN0aW9uIFdqKGUsdCl7dmFyIHI9WHQoZSksbj0ocitYdCh0KSkvMjtpZihSZShuKTxsZSlyZXR1cm4gSWJ0KGUpO3ZhciBpPTErciooMipuLXIpLG89eHIoaSkvbjtmdW5jdGlvbiBhKHMsbCl7dmFyIGM9eHIoaS0yKm4qWHQobCkpL247cmV0dXJuW2MqWHQocyo9biksby1jKlp0KHMpXX1yZXR1cm4gYS5pbnZlcnQ9ZnVuY3Rpb24ocyxsKXt2YXIgYz1vLWwsdT1ibihzLFJlKGMpKSp1YShjKTtyZXR1cm4gYypuPDAmJih1LT1CZSp1YShzKSp1YShjKSksW3Uvbix3bigoaS0ocypzK2MqYykqbipuKS8oMipuKSldfSxhfWZ1bmN0aW9uIFlfKCl7cmV0dXJuIFZiKFdqKS5zY2FsZSgxNTUuNDI0KS5jZW50ZXIoWzAsMzMuNjQ0Ml0pfWZ1bmN0aW9uIFVrKCl7cmV0dXJuIFlfKCkucGFyYWxsZWxzKFsyOS41LDQ1LjVdKS5zY2FsZSgxMDcwKS50cmFuc2xhdGUoWzQ4MCwyNTBdKS5yb3RhdGUoWzk2LDBdKS5jZW50ZXIoWy0uNiwzOC43XSl9ZnVuY3Rpb24gcTNlKGUpe3ZhciB0PWUubGVuZ3RoO3JldHVybntwb2ludDpmdW5jdGlvbihyLG4pe2Zvcih2YXIgaT0tMTsrK2k8dDspZVtpXS5wb2ludChyLG4pfSxzcGhlcmU6ZnVuY3Rpb24oKXtmb3IodmFyIHI9LTE7KytyPHQ7KWVbcl0uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe2Zvcih2YXIgcj0tMTsrK3I8dDspZVtyXS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe2Zvcih2YXIgcj0tMTsrK3I8dDspZVtyXS5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2Zvcih2YXIgcj0tMTsrK3I8dDspZVtyXS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2Zvcih2YXIgcj0tMTsrK3I8dDspZVtyXS5wb2x5Z29uRW5kKCl9fX1mdW5jdGlvbiBMYnQoKXt2YXIgZSx0LHI9VWsoKSxuLGk9WV8oKS5yb3RhdGUoWzE1NCwwXSkuY2VudGVyKFstMiw1OC41XSkucGFyYWxsZWxzKFs1NSw2NV0pLG8sYT1ZXygpLnJvdGF0ZShbMTU3LDBdKS5jZW50ZXIoWy0zLDE5LjldKS5wYXJhbGxlbHMoWzgsMThdKSxzLGwsYz17cG9pbnQ6ZnVuY3Rpb24oZixwKXtsPVtmLHBdfX07ZnVuY3Rpb24gdShmKXt2YXIgcD1mWzBdLGQ9ZlsxXTtyZXR1cm4gbD1udWxsLG4ucG9pbnQocCxkKSxsfHwoby5wb2ludChwLGQpLGwpfHwocy5wb2ludChwLGQpLGwpfXUuaW52ZXJ0PWZ1bmN0aW9uKGYpe3ZhciBwPXIuc2NhbGUoKSxkPXIudHJhbnNsYXRlKCksZz0oZlswXS1kWzBdKS9wLF89KGZbMV0tZFsxXSkvcDtyZXR1cm4oXz49LjEyJiZfPC4yMzQmJmc+PS0uNDI1JiZnPC0uMjE0P2k6Xz49LjE2NiYmXzwuMjM0JiZnPj0tLjIxNCYmZzwtLjExNT9hOnIpLmludmVydChmKX0sdS5zdHJlYW09ZnVuY3Rpb24oZil7cmV0dXJuIGUmJnQ9PT1mP2U6ZT1xM2UoW3Iuc3RyZWFtKHQ9ZiksaS5zdHJlYW0oZiksYS5zdHJlYW0oZildKX0sdS5wcmVjaXNpb249ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHIucHJlY2lzaW9uKGYpLGkucHJlY2lzaW9uKGYpLGEucHJlY2lzaW9uKGYpLGgoKSk6ci5wcmVjaXNpb24oKX0sdS5zY2FsZT1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oci5zY2FsZShmKSxpLnNjYWxlKGYqLjM1KSxhLnNjYWxlKGYpLHUudHJhbnNsYXRlKHIudHJhbnNsYXRlKCkpKTpyLnNjYWxlKCl9LHUudHJhbnNsYXRlPWZ1bmN0aW9uKGYpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiByLnRyYW5zbGF0ZSgpO3ZhciBwPXIuc2NhbGUoKSxkPStmWzBdLGc9K2ZbMV07cmV0dXJuIG49ci50cmFuc2xhdGUoZikuY2xpcEV4dGVudChbW2QtLjQ1NSpwLGctLjIzOCpwXSxbZCsuNDU1KnAsZysuMjM4KnBdXSkuc3RyZWFtKGMpLG89aS50cmFuc2xhdGUoW2QtLjMwNypwLGcrLjIwMSpwXSkuY2xpcEV4dGVudChbW2QtLjQyNSpwK2xlLGcrLjEyKnArbGVdLFtkLS4yMTQqcC1sZSxnKy4yMzQqcC1sZV1dKS5zdHJlYW0oYykscz1hLnRyYW5zbGF0ZShbZC0uMjA1KnAsZysuMjEyKnBdKS5jbGlwRXh0ZW50KFtbZC0uMjE0KnArbGUsZysuMTY2KnArbGVdLFtkLS4xMTUqcC1sZSxnKy4yMzQqcC1sZV1dKS5zdHJlYW0oYyksaCgpfSx1LmZpdEV4dGVudD1mdW5jdGlvbihmLHApe3JldHVybiBXXyh1LGYscCl9LHUuZml0U2l6ZT1mdW5jdGlvbihmLHApe3JldHVybiBGYih1LGYscCl9LHUuZml0V2lkdGg9ZnVuY3Rpb24oZixwKXtyZXR1cm4gQmIodSxmLHApfSx1LmZpdEhlaWdodD1mdW5jdGlvbihmLHApe3JldHVybiBIYih1LGYscCl9O2Z1bmN0aW9uIGgoKXtyZXR1cm4gZT10PW51bGwsdX1yZXR1cm4gdS5zY2FsZSgxMDcwKX1mdW5jdGlvbiBxayhlKXtyZXR1cm4gZnVuY3Rpb24odCxyKXt2YXIgbj1adCh0KSxpPVp0KHIpLG89ZShuKmkpO3JldHVybltvKmkqWHQodCksbypYdChyKV19fWZ1bmN0aW9uIFVoKGUpe3JldHVybiBmdW5jdGlvbih0LHIpe3ZhciBuPXhyKHQqdCtyKnIpLGk9ZShuKSxvPVh0KGkpLGE9WnQoaSk7cmV0dXJuW2JuKHQqbyxuKmEpLHduKG4mJnIqby9uKV19fXZhciBHaz1xayhmdW5jdGlvbihlKXtyZXR1cm4geHIoMi8oMStlKSl9KTtHay5pbnZlcnQ9VWgoZnVuY3Rpb24oZSl7cmV0dXJuIDIqd24oZS8yKX0pO2Z1bmN0aW9uIGtidCgpe3JldHVybiBTaShHaykuc2NhbGUoMTI0Ljc1KS5jbGlwQW5nbGUoMTgwLS4wMDEpfXZhciBXaz1xayhmdW5jdGlvbihlKXtyZXR1cm4oZT1oayhlKSkmJmUvWHQoZSl9KTtXay5pbnZlcnQ9VWgoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KTtmdW5jdGlvbiBSYnQoKXtyZXR1cm4gU2koV2spLnNjYWxlKDc5LjQxODgpLmNsaXBBbmdsZSgxODAtLjAwMSl9ZnVuY3Rpb24gal8oZSx0KXtyZXR1cm5bZSxCXyhJYigobW4rdCkvMikpXX1qXy5pbnZlcnQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm5bZSwyKmljKGNrKHQpKS1tbl19O2Z1bmN0aW9uIE5idCgpe3JldHVybiBZaihqXykuc2NhbGUoOTYxL3dpKX1mdW5jdGlvbiBZaihlKXt2YXIgdD1TaShlKSxyPXQuY2VudGVyLG49dC5zY2FsZSxpPXQudHJhbnNsYXRlLG89dC5jbGlwRXh0ZW50LGE9bnVsbCxzLGwsYzt0LnNjYWxlPWZ1bmN0aW9uKGgpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuKGgpLHUoKSk6bigpfSx0LnRyYW5zbGF0ZT1mdW5jdGlvbihoKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaShoKSx1KCkpOmkoKX0sdC5jZW50ZXI9ZnVuY3Rpb24oaCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHIoaCksdSgpKTpyKCl9LHQuY2xpcEV4dGVudD1mdW5jdGlvbihoKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD09bnVsbD9hPXM9bD1jPW51bGw6KGE9K2hbMF1bMF0scz0raFswXVsxXSxsPStoWzFdWzBdLGM9K2hbMV1bMV0pLHUoKSk6YT09bnVsbD9udWxsOltbYSxzXSxbbCxjXV19O2Z1bmN0aW9uIHUoKXt2YXIgaD1CZSpuKCksZj10KHdrKHQucm90YXRlKCkpLmludmVydChbMCwwXSkpO3JldHVybiBvKGE9PW51bGw/W1tmWzBdLWgsZlsxXS1oXSxbZlswXStoLGZbMV0raF1dOmU9PT1qXz9bW01hdGgubWF4KGZbMF0taCxhKSxzXSxbTWF0aC5taW4oZlswXStoLGwpLGNdXTpbW2EsTWF0aC5tYXgoZlsxXS1oLHMpXSxbbCxNYXRoLm1pbihmWzFdK2gsYyldXSl9cmV0dXJuIHUoKX1mdW5jdGlvbiBZayhlKXtyZXR1cm4gSWIoKG1uK2UpLzIpfWZ1bmN0aW9uIGpqKGUsdCl7dmFyIHI9WnQoZSksbj1lPT09dD9YdChlKTpCXyhyL1p0KHQpKS9CXyhZayh0KS9ZayhlKSksaT1yKnVrKFlrKGUpLG4pL247aWYoIW4pcmV0dXJuIGpfO2Z1bmN0aW9uIG8oYSxzKXtpPjA/czwtbW4rbGUmJihzPS1tbitsZSk6cz5tbi1sZSYmKHM9bW4tbGUpO3ZhciBsPWkvdWsoWWsocyksbik7cmV0dXJuW2wqWHQobiphKSxpLWwqWnQobiphKV19cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKGEscyl7dmFyIGw9aS1zLGM9dWEobikqeHIoYSphK2wqbCksdT1ibihhLFJlKGwpKSp1YShsKTtyZXR1cm4gbCpuPDAmJih1LT1CZSp1YShhKSp1YShsKSksW3UvbiwyKmljKHVrKGkvYywxL24pKS1tbl19LG99ZnVuY3Rpb24gRGJ0KCl7cmV0dXJuIFZiKGpqKS5zY2FsZSgxMDkuNSkucGFyYWxsZWxzKFszMCwzMF0pfWZ1bmN0aW9uIFhfKGUsdCl7cmV0dXJuW2UsdF19WF8uaW52ZXJ0PVhfO2Z1bmN0aW9uIE9idCgpe3JldHVybiBTaShYXykuc2NhbGUoMTUyLjYzKX1mdW5jdGlvbiBYaihlLHQpe3ZhciByPVp0KGUpLG49ZT09PXQ/WHQoZSk6KHItWnQodCkpLyh0LWUpLGk9ci9uK2U7aWYoUmUobik8bGUpcmV0dXJuIFhfO2Z1bmN0aW9uIG8oYSxzKXt2YXIgbD1pLXMsYz1uKmE7cmV0dXJuW2wqWHQoYyksaS1sKlp0KGMpXX1yZXR1cm4gby5pbnZlcnQ9ZnVuY3Rpb24oYSxzKXt2YXIgbD1pLXMsYz1ibihhLFJlKGwpKSp1YShsKTtyZXR1cm4gbCpuPDAmJihjLT1CZSp1YShhKSp1YShsKSksW2MvbixpLXVhKG4pKnhyKGEqYStsKmwpXX0sb31mdW5jdGlvbiB6YnQoKXtyZXR1cm4gVmIoWGopLnNjYWxlKDEzMS4xNTQpLmNlbnRlcihbMCwxMy45Mzg5XSl9dmFyIGM1PTEuMzQwMjY0LHU1PS0uMDgxMTA2LGg1PTg5M2UtNixmNT0uMDAzNzk2LGprPXhyKDMpLzIsRzNlPTEyO2Z1bmN0aW9uIFhrKGUsdCl7dmFyIHI9d24oamsqWHQodCkpLG49cipyLGk9bipuKm47cmV0dXJuW2UqWnQocikvKGprKihjNSszKnU1Km4raSooNypoNSs5KmY1Km4pKSksciooYzUrdTUqbitpKihoNStmNSpuKSldfVhrLmludmVydD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj10LG49cipyLGk9bipuKm4sbz0wLGEscyxsO288RzNlJiYocz1yKihjNSt1NSpuK2kqKGg1K2Y1Km4pKS10LGw9YzUrMyp1NSpuK2kqKDcqaDUrOSpmNSpuKSxyLT1hPXMvbCxuPXIqcixpPW4qbipuLCEoUmUoYSk8Rl8pKTsrK28pO3JldHVybltqayplKihjNSszKnU1Km4raSooNypoNSs5KmY1Km4pKS9adChyKSx3bihYdChyKS9qayldfTtmdW5jdGlvbiBGYnQoKXtyZXR1cm4gU2koWGspLnNjYWxlKDE3Ny4xNTgpfWZ1bmN0aW9uICRrKGUsdCl7dmFyIHI9WnQodCksbj1adChlKSpyO3JldHVybltyKlh0KGUpL24sWHQodCkvbl19JGsuaW52ZXJ0PVVoKGljKTtmdW5jdGlvbiBCYnQoKXtyZXR1cm4gU2koJGspLnNjYWxlKDE0NC4wNDkpLmNsaXBBbmdsZSg2MCl9ZnVuY3Rpb24gSGJ0KCl7dmFyIGU9MSx0PTAscj0wLG49MSxpPTEsbz0wLGEscyxsPW51bGwsYyx1LGgsZj0xLHA9MSxkPUttKHtwb2ludDpmdW5jdGlvbihTLEMpe3ZhciBQPWIoW1MsQ10pO3RoaXMuc3RyZWFtLnBvaW50KFBbMF0sUFsxXSl9fSksZz1YbSxfLHk7ZnVuY3Rpb24geCgpe3JldHVybiBmPWUqbixwPWUqaSxfPXk9bnVsbCxifWZ1bmN0aW9uIGIoUyl7dmFyIEM9U1swXSpmLFA9U1sxXSpwO2lmKG8pe3ZhciBrPVAqYS1DKnM7Qz1DKmErUCpzLFA9a31yZXR1cm5bQyt0LFArcl19cmV0dXJuIGIuaW52ZXJ0PWZ1bmN0aW9uKFMpe3ZhciBDPVNbMF0tdCxQPVNbMV0tcjtpZihvKXt2YXIgaz1QKmErQypzO0M9QyphLVAqcyxQPWt9cmV0dXJuW0MvZixQL3BdfSxiLnN0cmVhbT1mdW5jdGlvbihTKXtyZXR1cm4gXyYmeT09PVM/XzpfPWQoZyh5PVMpKX0sYi5wb3N0Y2xpcD1mdW5jdGlvbihTKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz1TLGw9Yz11PWg9bnVsbCx4KCkpOmd9LGIuY2xpcEV4dGVudD1mdW5jdGlvbihTKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz1TPT1udWxsPyhsPWM9dT1oPW51bGwsWG0pOk9wKGw9K1NbMF1bMF0sYz0rU1swXVsxXSx1PStTWzFdWzBdLGg9K1NbMV1bMV0pLHgoKSk6bD09bnVsbD9udWxsOltbbCxjXSxbdSxoXV19LGIuc2NhbGU9ZnVuY3Rpb24oUyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K1MseCgpKTplfSxiLnRyYW5zbGF0ZT1mdW5jdGlvbihTKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rU1swXSxyPStTWzFdLHgoKSk6W3Qscl19LGIuYW5nbGU9ZnVuY3Rpb24oUyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89UyUzNjAqeWUscz1YdChvKSxhPVp0KG8pLHgoKSk6byp2cn0sYi5yZWZsZWN0WD1mdW5jdGlvbihTKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1TPy0xOjEseCgpKTpuPDB9LGIucmVmbGVjdFk9ZnVuY3Rpb24oUyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9Uz8tMToxLHgoKSk6aTwwfSxiLmZpdEV4dGVudD1mdW5jdGlvbihTLEMpe3JldHVybiBXXyhiLFMsQyl9LGIuZml0U2l6ZT1mdW5jdGlvbihTLEMpe3JldHVybiBGYihiLFMsQyl9LGIuZml0V2lkdGg9ZnVuY3Rpb24oUyxDKXtyZXR1cm4gQmIoYixTLEMpfSxiLmZpdEhlaWdodD1mdW5jdGlvbihTLEMpe3JldHVybiBIYihiLFMsQyl9LGJ9ZnVuY3Rpb24gS2soZSx0KXt2YXIgcj10KnQsbj1yKnI7cmV0dXJuW2UqKC44NzA3LS4xMzE5NzkqcituKigtLjAxMzc5MStuKiguMDAzOTcxKnItLjAwMTUyOSpuKSkpLHQqKDEuMDA3MjI2K3IqKC4wMTUwODUrbiooLS4wNDQ0NzUrLjAyODg3NCpyLS4wMDU5MTYqbikpKV19S2suaW52ZXJ0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9dCxuPTI1LGk7ZG97dmFyIG89cipyLGE9bypvO3ItPWk9KHIqKDEuMDA3MjI2K28qKC4wMTUwODUrYSooLS4wNDQ0NzUrLjAyODg3NCpvLS4wMDU5MTYqYSkpKS10KS8oMS4wMDcyMjYrbyooLjAxNTA4NSozK2EqKC0uMDQ0NDc1KjcrLjAyODg3NCo5Km8tLjAwNTkxNioxMSphKSkpfXdoaWxlKFJlKGkpPmxlJiYtLW4+MCk7cmV0dXJuW2UvKC44NzA3KyhvPXIqcikqKC0uMTMxOTc5K28qKC0uMDEzNzkxK28qbypvKiguMDAzOTcxLS4wMDE1MjkqbykpKSkscl19O2Z1bmN0aW9uIFZidCgpe3JldHVybiBTaShLaykuc2NhbGUoMTc1LjI5NSl9ZnVuY3Rpb24gWmsoZSx0KXtyZXR1cm5bWnQodCkqWHQoZSksWHQodCldfVprLmludmVydD1VaCh3bik7ZnVuY3Rpb24gVWJ0KCl7cmV0dXJuIFNpKFprKS5zY2FsZSgyNDkuNSkuY2xpcEFuZ2xlKDkwK2xlKX1mdW5jdGlvbiBKayhlLHQpe3ZhciByPVp0KHQpLG49MStadChlKSpyO3JldHVybltyKlh0KGUpL24sWHQodCkvbl19SmsuaW52ZXJ0PVVoKGZ1bmN0aW9uKGUpe3JldHVybiAyKmljKGUpfSk7ZnVuY3Rpb24gcWJ0KCl7cmV0dXJuIFNpKEprKS5zY2FsZSgyNTApLmNsaXBBbmdsZSgxNDIpfWZ1bmN0aW9uIFFrKGUsdCl7cmV0dXJuW0JfKEliKChtbit0KS8yKSksLWVdfVFrLmludmVydD1mdW5jdGlvbihlLHQpe3JldHVyblstdCwyKmljKGNrKGUpKS1tbl19O2Z1bmN0aW9uIEdidCgpe3ZhciBlPVlqKFFrKSx0PWUuY2VudGVyLHI9ZS5yb3RhdGU7cmV0dXJuIGUuY2VudGVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3QoWy1uWzFdLG5bMF1dKToobj10KCksW25bMV0sLW5bMF1dKX0sZS5yb3RhdGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/cihbblswXSxuWzFdLG4ubGVuZ3RoPjI/blsyXSs5MDo5MF0pOihuPXIoKSxbblswXSxuWzFdLG5bMl0tOTBdKX0scihbMCwwLDkwXSkuc2NhbGUoMTU5LjE1NSl9ZnVuY3Rpb24gVzNlKGUsdCl7cmV0dXJuIGUucGFyZW50PT09dC5wYXJlbnQ/MToyfWZ1bmN0aW9uIFkzZShlKXtyZXR1cm4gZS5yZWR1Y2UoajNlLDApL2UubGVuZ3RofWZ1bmN0aW9uIGozZShlLHQpe3JldHVybiBlK3QueH1mdW5jdGlvbiBYM2UoZSl7cmV0dXJuIDErZS5yZWR1Y2UoJDNlLDApfWZ1bmN0aW9uICQzZShlLHQpe3JldHVybiBNYXRoLm1heChlLHQueSl9ZnVuY3Rpb24gSzNlKGUpe2Zvcih2YXIgdDt0PWUuY2hpbGRyZW47KWU9dFswXTtyZXR1cm4gZX1mdW5jdGlvbiBaM2UoZSl7Zm9yKHZhciB0O3Q9ZS5jaGlsZHJlbjspZT10W3QubGVuZ3RoLTFdO3JldHVybiBlfWZ1bmN0aW9uIFdidCgpe3ZhciBlPVczZSx0PTEscj0xLG49ITE7ZnVuY3Rpb24gaShvKXt2YXIgYSxzPTA7by5lYWNoQWZ0ZXIoZnVuY3Rpb24oZil7dmFyIHA9Zi5jaGlsZHJlbjtwPyhmLng9WTNlKHApLGYueT1YM2UocCkpOihmLng9YT9zKz1lKGYsYSk6MCxmLnk9MCxhPWYpfSk7dmFyIGw9SzNlKG8pLGM9WjNlKG8pLHU9bC54LWUobCxjKS8yLGg9Yy54K2UoYyxsKS8yO3JldHVybiBvLmVhY2hBZnRlcihuP2Z1bmN0aW9uKGYpe2YueD0oZi54LW8ueCkqdCxmLnk9KG8ueS1mLnkpKnJ9OmZ1bmN0aW9uKGYpe2YueD0oZi54LXUpLyhoLXUpKnQsZi55PSgxLShvLnk/Zi55L28ueToxKSkqcn0pfXJldHVybiBpLnNlcGFyYXRpb249ZnVuY3Rpb24obyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9byxpKTplfSxpLnNpemU9ZnVuY3Rpb24obyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ITEsdD0rb1swXSxyPStvWzFdLGkpOm4/bnVsbDpbdCxyXX0saS5ub2RlU2l6ZT1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0hMCx0PStvWzBdLHI9K29bMV0saSk6bj9bdCxyXTpudWxsfSxpfWZ1bmN0aW9uIEozZShlKXt2YXIgdD0wLHI9ZS5jaGlsZHJlbixuPXImJnIubGVuZ3RoO2lmKCFuKXQ9MTtlbHNlIGZvcig7LS1uPj0wOyl0Kz1yW25dLnZhbHVlO2UudmFsdWU9dH1mdW5jdGlvbiBZYnQoKXtyZXR1cm4gdGhpcy5lYWNoQWZ0ZXIoSjNlKX1mdW5jdGlvbiBqYnQoZSl7dmFyIHQ9dGhpcyxyLG49W3RdLGksbyxhO2RvIGZvcihyPW4ucmV2ZXJzZSgpLG49W107dD1yLnBvcCgpOylpZihlKHQpLGk9dC5jaGlsZHJlbixpKWZvcihvPTAsYT1pLmxlbmd0aDtvPGE7KytvKW4ucHVzaChpW29dKTt3aGlsZShuLmxlbmd0aCk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gWGJ0KGUpe2Zvcih2YXIgdD10aGlzLHI9W3RdLG4saTt0PXIucG9wKCk7KWlmKGUodCksbj10LmNoaWxkcmVuLG4pZm9yKGk9bi5sZW5ndGgtMTtpPj0wOy0taSlyLnB1c2gobltpXSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gJGJ0KGUpe2Zvcih2YXIgdD10aGlzLHI9W3RdLG49W10saSxvLGE7dD1yLnBvcCgpOylpZihuLnB1c2godCksaT10LmNoaWxkcmVuLGkpZm9yKG89MCxhPWkubGVuZ3RoO288YTsrK28pci5wdXNoKGlbb10pO2Zvcig7dD1uLnBvcCgpOyllKHQpO3JldHVybiB0aGlzfWZ1bmN0aW9uIEtidChlKXtyZXR1cm4gdGhpcy5lYWNoQWZ0ZXIoZnVuY3Rpb24odCl7Zm9yKHZhciByPStlKHQuZGF0YSl8fDAsbj10LmNoaWxkcmVuLGk9biYmbi5sZW5ndGg7LS1pPj0wOylyKz1uW2ldLnZhbHVlO3QudmFsdWU9cn0pfWZ1bmN0aW9uIFpidChlKXtyZXR1cm4gdGhpcy5lYWNoQmVmb3JlKGZ1bmN0aW9uKHQpe3QuY2hpbGRyZW4mJnQuY2hpbGRyZW4uc29ydChlKX0pfWZ1bmN0aW9uIEpidChlKXtmb3IodmFyIHQ9dGhpcyxyPVEzZSh0LGUpLG49W3RdO3QhPT1yOyl0PXQucGFyZW50LG4ucHVzaCh0KTtmb3IodmFyIGk9bi5sZW5ndGg7ZSE9PXI7KW4uc3BsaWNlKGksMCxlKSxlPWUucGFyZW50O3JldHVybiBufWZ1bmN0aW9uIFEzZShlLHQpe2lmKGU9PT10KXJldHVybiBlO3ZhciByPWUuYW5jZXN0b3JzKCksbj10LmFuY2VzdG9ycygpLGk9bnVsbDtmb3IoZT1yLnBvcCgpLHQ9bi5wb3AoKTtlPT09dDspaT1lLGU9ci5wb3AoKSx0PW4ucG9wKCk7cmV0dXJuIGl9ZnVuY3Rpb24gUWJ0KCl7Zm9yKHZhciBlPXRoaXMsdD1bZV07ZT1lLnBhcmVudDspdC5wdXNoKGUpO3JldHVybiB0fWZ1bmN0aW9uIHQydCgpe3ZhciBlPVtdO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24odCl7ZS5wdXNoKHQpfSksZX1mdW5jdGlvbiBlMnQoKXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5lYWNoQmVmb3JlKGZ1bmN0aW9uKHQpe3QuY2hpbGRyZW58fGUucHVzaCh0KX0pLGV9ZnVuY3Rpb24gcjJ0KCl7dmFyIGU9dGhpcyx0PVtdO3JldHVybiBlLmVhY2goZnVuY3Rpb24ocil7ciE9PWUmJnQucHVzaCh7c291cmNlOnIucGFyZW50LHRhcmdldDpyfSl9KSx0fWZ1bmN0aW9uIHA1KGUsdCl7dmFyIHI9bmV3IFptKGUpLG49K2UudmFsdWUmJihyLnZhbHVlPWUudmFsdWUpLGksbz1bcl0sYSxzLGwsYztmb3IodD09bnVsbCYmKHQ9ZU1lKTtpPW8ucG9wKCk7KWlmKG4mJihpLnZhbHVlPStpLmRhdGEudmFsdWUpLChzPXQoaS5kYXRhKSkmJihjPXMubGVuZ3RoKSlmb3IoaS5jaGlsZHJlbj1uZXcgQXJyYXkoYyksbD1jLTE7bD49MDstLWwpby5wdXNoKGE9aS5jaGlsZHJlbltsXT1uZXcgWm0oc1tsXSkpLGEucGFyZW50PWksYS5kZXB0aD1pLmRlcHRoKzE7cmV0dXJuIHIuZWFjaEJlZm9yZSgkail9ZnVuY3Rpb24gdE1lKCl7cmV0dXJuIHA1KHRoaXMpLmVhY2hCZWZvcmUock1lKX1mdW5jdGlvbiBlTWUoZSl7cmV0dXJuIGUuY2hpbGRyZW59ZnVuY3Rpb24gck1lKGUpe2UuZGF0YT1lLmRhdGEuZGF0YX1mdW5jdGlvbiAkaihlKXt2YXIgdD0wO2RvIGUuaGVpZ2h0PXQ7d2hpbGUoKGU9ZS5wYXJlbnQpJiZlLmhlaWdodDwrK3QpfWZ1bmN0aW9uIFptKGUpe3RoaXMuZGF0YT1lLHRoaXMuZGVwdGg9dGhpcy5oZWlnaHQ9MCx0aGlzLnBhcmVudD1udWxsfVptLnByb3RvdHlwZT1wNS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlptLGNvdW50OllidCxlYWNoOmpidCxlYWNoQWZ0ZXI6JGJ0LGVhY2hCZWZvcmU6WGJ0LHN1bTpLYnQsc29ydDpaYnQscGF0aDpKYnQsYW5jZXN0b3JzOlFidCxkZXNjZW5kYW50czp0MnQsbGVhdmVzOmUydCxsaW5rczpyMnQsY29weTp0TWV9O3ZhciBuMnQ9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIGkydChlKXtmb3IodmFyIHQ9ZS5sZW5ndGgscixuO3Q7KW49TWF0aC5yYW5kb20oKSp0LS18MCxyPWVbdF0sZVt0XT1lW25dLGVbbl09cjtyZXR1cm4gZX1mdW5jdGlvbiBlOChlKXtmb3IodmFyIHQ9MCxyPShlPWkydChuMnQuY2FsbChlKSkpLmxlbmd0aCxuPVtdLGksbzt0PHI7KWk9ZVt0XSxvJiZvMnQobyxpKT8rK3Q6KG89aU1lKG49bk1lKG4saSkpLHQ9MCk7cmV0dXJuIG99ZnVuY3Rpb24gbk1lKGUsdCl7dmFyIHIsbjtpZihLaih0LGUpKXJldHVyblt0XTtmb3Iocj0wO3I8ZS5sZW5ndGg7KytyKWlmKHQ4KHQsZVtyXSkmJktqKGQ1KGVbcl0sdCksZSkpcmV0dXJuW2Vbcl0sdF07Zm9yKHI9MDtyPGUubGVuZ3RoLTE7KytyKWZvcihuPXIrMTtuPGUubGVuZ3RoOysrbilpZih0OChkNShlW3JdLGVbbl0pLHQpJiZ0OChkNShlW3JdLHQpLGVbbl0pJiZ0OChkNShlW25dLHQpLGVbcl0pJiZLaihhMnQoZVtyXSxlW25dLHQpLGUpKXJldHVybltlW3JdLGVbbl0sdF07dGhyb3cgbmV3IEVycm9yfWZ1bmN0aW9uIHQ4KGUsdCl7dmFyIHI9ZS5yLXQucixuPXQueC1lLngsaT10LnktZS55O3JldHVybiByPDB8fHIqcjxuKm4raSppfWZ1bmN0aW9uIG8ydChlLHQpe3ZhciByPWUuci10LnIrMWUtNixuPXQueC1lLngsaT10LnktZS55O3JldHVybiByPjAmJnIqcj5uKm4raSppfWZ1bmN0aW9uIEtqKGUsdCl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDsrK3IpaWYoIW8ydChlLHRbcl0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGlNZShlKXtzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMTpyZXR1cm4gb01lKGVbMF0pO2Nhc2UgMjpyZXR1cm4gZDUoZVswXSxlWzFdKTtjYXNlIDM6cmV0dXJuIGEydChlWzBdLGVbMV0sZVsyXSl9fWZ1bmN0aW9uIG9NZShlKXtyZXR1cm57eDplLngseTplLnkscjplLnJ9fWZ1bmN0aW9uIGQ1KGUsdCl7dmFyIHI9ZS54LG49ZS55LGk9ZS5yLG89dC54LGE9dC55LHM9dC5yLGw9by1yLGM9YS1uLHU9cy1pLGg9TWF0aC5zcXJ0KGwqbCtjKmMpO3JldHVybnt4OihyK28rbC9oKnUpLzIseToobithK2MvaCp1KS8yLHI6KGgraStzKS8yfX1mdW5jdGlvbiBhMnQoZSx0LHIpe3ZhciBuPWUueCxpPWUueSxvPWUucixhPXQueCxzPXQueSxsPXQucixjPXIueCx1PXIueSxoPXIucixmPW4tYSxwPW4tYyxkPWktcyxnPWktdSxfPWwtbyx5PWgtbyx4PW4qbitpKmktbypvLGI9eC1hKmEtcypzK2wqbCxTPXgtYypjLXUqdStoKmgsQz1wKmQtZipnLFA9KGQqUy1nKmIpLyhDKjIpLW4saz0oZypfLWQqeSkvQyxPPShwKmItZipTKS8oQyoyKS1pLEQ9KGYqeS1wKl8pL0MsQj1rKmsrRCpELTEsST0yKihvK1AqaytPKkQpLEw9UCpQK08qTy1vKm8sUj0tKEI/KEkrTWF0aC5zcXJ0KEkqSS00KkIqTCkpLygyKkIpOkwvSSk7cmV0dXJue3g6bitQK2sqUix5OmkrTytEKlIscjpSfX1mdW5jdGlvbiBzMnQoZSx0LHIpe3ZhciBuPWUueC10LngsaSxvLGE9ZS55LXQueSxzLGwsYz1uKm4rYSphO2M/KG89dC5yK3IucixvKj1vLGw9ZS5yK3IucixsKj1sLG8+bD8oaT0oYytsLW8pLygyKmMpLHM9TWF0aC5zcXJ0KE1hdGgubWF4KDAsbC9jLWkqaSkpLHIueD1lLngtaSpuLXMqYSxyLnk9ZS55LWkqYStzKm4pOihpPShjK28tbCkvKDIqYykscz1NYXRoLnNxcnQoTWF0aC5tYXgoMCxvL2MtaSppKSksci54PXQueCtpKm4tcyphLHIueT10LnkraSphK3MqbikpOihyLng9dC54K3IucixyLnk9dC55KX1mdW5jdGlvbiBsMnQoZSx0KXt2YXIgcj1lLnIrdC5yLTFlLTYsbj10LngtZS54LGk9dC55LWUueTtyZXR1cm4gcj4wJiZyKnI+bipuK2kqaX1mdW5jdGlvbiBjMnQoZSl7dmFyIHQ9ZS5fLHI9ZS5uZXh0Ll8sbj10LnIrci5yLGk9KHQueCpyLnIrci54KnQucikvbixvPSh0Lnkqci5yK3IueSp0LnIpL247cmV0dXJuIGkqaStvKm99ZnVuY3Rpb24gcjgoZSl7dGhpcy5fPWUsdGhpcy5uZXh0PW51bGwsdGhpcy5wcmV2aW91cz1udWxsfWZ1bmN0aW9uIFpqKGUpe2lmKCEoaT1lLmxlbmd0aCkpcmV0dXJuIDA7dmFyIHQscixuLGksbyxhLHMsbCxjLHUsaDtpZih0PWVbMF0sdC54PTAsdC55PTAsIShpPjEpKXJldHVybiB0LnI7aWYocj1lWzFdLHQueD0tci5yLHIueD10LnIsci55PTAsIShpPjIpKXJldHVybiB0LnIrci5yO3MydChyLHQsbj1lWzJdKSx0PW5ldyByOCh0KSxyPW5ldyByOChyKSxuPW5ldyByOChuKSx0Lm5leHQ9bi5wcmV2aW91cz1yLHIubmV4dD10LnByZXZpb3VzPW4sbi5uZXh0PXIucHJldmlvdXM9dDt0OmZvcihzPTM7czxpOysrcyl7czJ0KHQuXyxyLl8sbj1lW3NdKSxuPW5ldyByOChuKSxsPXIubmV4dCxjPXQucHJldmlvdXMsdT1yLl8ucixoPXQuXy5yO2RvIGlmKHU8PWgpe2lmKGwydChsLl8sbi5fKSl7cj1sLHQubmV4dD1yLHIucHJldmlvdXM9dCwtLXM7Y29udGludWUgdH11Kz1sLl8ucixsPWwubmV4dH1lbHNle2lmKGwydChjLl8sbi5fKSl7dD1jLHQubmV4dD1yLHIucHJldmlvdXM9dCwtLXM7Y29udGludWUgdH1oKz1jLl8ucixjPWMucHJldmlvdXN9d2hpbGUobCE9PWMubmV4dCk7Zm9yKG4ucHJldmlvdXM9dCxuLm5leHQ9cix0Lm5leHQ9ci5wcmV2aW91cz1yPW4sbz1jMnQodCk7KG49bi5uZXh0KSE9PXI7KShhPWMydChuKSk8byYmKHQ9bixvPWEpO3I9dC5uZXh0fWZvcih0PVtyLl9dLG49cjsobj1uLm5leHQpIT09cjspdC5wdXNoKG4uXyk7Zm9yKG49ZTgodCkscz0wO3M8aTsrK3MpdD1lW3NdLHQueC09bi54LHQueS09bi55O3JldHVybiBuLnJ9ZnVuY3Rpb24gdTJ0KGUpe3JldHVybiBaaihlKSxlfWZ1bmN0aW9uIGgydChlKXtyZXR1cm4gZT09bnVsbD9udWxsOlViKGUpfWZ1bmN0aW9uIFViKGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZX1mdW5jdGlvbiB6cCgpe3JldHVybiAwfWZ1bmN0aW9uIEptKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX1mdW5jdGlvbiBhTWUoZSl7cmV0dXJuIE1hdGguc3FydChlLnZhbHVlKX1mdW5jdGlvbiBkMnQoKXt2YXIgZT1udWxsLHQ9MSxyPTEsbj16cDtmdW5jdGlvbiBpKG8pe3JldHVybiBvLng9dC8yLG8ueT1yLzIsZT9vLmVhY2hCZWZvcmUoZjJ0KGUpKS5lYWNoQWZ0ZXIoSmoobiwuNSkpLmVhY2hCZWZvcmUocDJ0KDEpKTpvLmVhY2hCZWZvcmUoZjJ0KGFNZSkpLmVhY2hBZnRlcihKaih6cCwxKSkuZWFjaEFmdGVyKEpqKG4sby5yL01hdGgubWluKHQscikpKS5lYWNoQmVmb3JlKHAydChNYXRoLm1pbih0LHIpLygyKm8ucikpKSxvfXJldHVybiBpLnJhZGl1cz1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1oMnQobyksaSk6ZX0saS5zaXplPWZ1bmN0aW9uKG8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PStvWzBdLHI9K29bMV0saSk6W3Qscl19LGkucGFkZGluZz1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10eXBlb2Ygbz09ImZ1bmN0aW9uIj9vOkptKCtvKSxpKTpufSxpfWZ1bmN0aW9uIGYydChlKXtyZXR1cm4gZnVuY3Rpb24odCl7dC5jaGlsZHJlbnx8KHQucj1NYXRoLm1heCgwLCtlKHQpfHwwKSl9fWZ1bmN0aW9uIEpqKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHIpe2lmKG49ci5jaGlsZHJlbil7dmFyIG4saSxvPW4ubGVuZ3RoLGE9ZShyKSp0fHwwLHM7aWYoYSlmb3IoaT0wO2k8bzsrK2kpbltpXS5yKz1hO2lmKHM9WmoobiksYSlmb3IoaT0wO2k8bzsrK2kpbltpXS5yLT1hO3Iucj1zK2F9fX1mdW5jdGlvbiBwMnQoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciByPXQucGFyZW50O3Qucio9ZSxyJiYodC54PXIueCtlKnQueCx0Lnk9ci55K2UqdC55KX19ZnVuY3Rpb24gbjgoZSl7ZS54MD1NYXRoLnJvdW5kKGUueDApLGUueTA9TWF0aC5yb3VuZChlLnkwKSxlLngxPU1hdGgucm91bmQoZS54MSksZS55MT1NYXRoLnJvdW5kKGUueTEpfWZ1bmN0aW9uIHFoKGUsdCxyLG4saSl7Zm9yKHZhciBvPWUuY2hpbGRyZW4sYSxzPS0xLGw9by5sZW5ndGgsYz1lLnZhbHVlJiYobi10KS9lLnZhbHVlOysrczxsOylhPW9bc10sYS55MD1yLGEueTE9aSxhLngwPXQsYS54MT10Kz1hLnZhbHVlKmN9ZnVuY3Rpb24gbTJ0KCl7dmFyIGU9MSx0PTEscj0wLG49ITE7ZnVuY3Rpb24gaShhKXt2YXIgcz1hLmhlaWdodCsxO3JldHVybiBhLngwPWEueTA9cixhLngxPWUsYS55MT10L3MsYS5lYWNoQmVmb3JlKG8odCxzKSksbiYmYS5lYWNoQmVmb3JlKG44KSxhfWZ1bmN0aW9uIG8oYSxzKXtyZXR1cm4gZnVuY3Rpb24obCl7bC5jaGlsZHJlbiYmcWgobCxsLngwLGEqKGwuZGVwdGgrMSkvcyxsLngxLGEqKGwuZGVwdGgrMikvcyk7dmFyIGM9bC54MCx1PWwueTAsaD1sLngxLXIsZj1sLnkxLXI7aDxjJiYoYz1oPShjK2gpLzIpLGY8dSYmKHU9Zj0odStmKS8yKSxsLngwPWMsbC55MD11LGwueDE9aCxsLnkxPWZ9fXJldHVybiBpLnJvdW5kPWZ1bmN0aW9uKGEpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSEhYSxpKTpufSxpLnNpemU9ZnVuY3Rpb24oYSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K2FbMF0sdD0rYVsxXSxpKTpbZSx0XX0saS5wYWRkaW5nPWZ1bmN0aW9uKGEpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSthLGkpOnJ9LGl9dmFyIGcydD0iJCIsc01lPXtkZXB0aDotMX0sXzJ0PXt9O2Z1bmN0aW9uIGxNZShlKXtyZXR1cm4gZS5pZH1mdW5jdGlvbiBjTWUoZSl7cmV0dXJuIGUucGFyZW50SWR9ZnVuY3Rpb24geTJ0KCl7dmFyIGU9bE1lLHQ9Y01lO2Z1bmN0aW9uIHIobil7dmFyIGksbyxhPW4ubGVuZ3RoLHMsbCxjLHU9bmV3IEFycmF5KGEpLGgsZixwPXt9O2ZvcihvPTA7bzxhOysrbylpPW5bb10sYz11W29dPW5ldyBabShpKSwoaD1lKGksbyxuKSkhPW51bGwmJihoKz0iIikmJihmPWcydCsoYy5pZD1oKSxwW2ZdPWYgaW4gcD9fMnQ6Yyk7Zm9yKG89MDtvPGE7KytvKWlmKGM9dVtvXSxoPXQobltvXSxvLG4pLGg9PW51bGx8fCEoaCs9IiIpKXtpZihzKXRocm93IG5ldyBFcnJvcigibXVsdGlwbGUgcm9vdHMiKTtzPWN9ZWxzZXtpZihsPXBbZzJ0K2hdLCFsKXRocm93IG5ldyBFcnJvcigibWlzc2luZzogIitoKTtpZihsPT09XzJ0KXRocm93IG5ldyBFcnJvcigiYW1iaWd1b3VzOiAiK2gpO2wuY2hpbGRyZW4/bC5jaGlsZHJlbi5wdXNoKGMpOmwuY2hpbGRyZW49W2NdLGMucGFyZW50PWx9aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJubyByb290Iik7aWYocy5wYXJlbnQ9c01lLHMuZWFjaEJlZm9yZShmdW5jdGlvbihkKXtkLmRlcHRoPWQucGFyZW50LmRlcHRoKzEsLS1hfSkuZWFjaEJlZm9yZSgkaikscy5wYXJlbnQ9bnVsbCxhPjApdGhyb3cgbmV3IEVycm9yKCJjeWNsZSIpO3JldHVybiBzfXJldHVybiByLmlkPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVViKG4pLHIpOmV9LHIucGFyZW50SWQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9VWIobikscik6dH0scn1mdW5jdGlvbiB1TWUoZSx0KXtyZXR1cm4gZS5wYXJlbnQ9PT10LnBhcmVudD8xOjJ9ZnVuY3Rpb24gUWooZSl7dmFyIHQ9ZS5jaGlsZHJlbjtyZXR1cm4gdD90WzBdOmUudH1mdW5jdGlvbiB0WChlKXt2YXIgdD1lLmNoaWxkcmVuO3JldHVybiB0P3RbdC5sZW5ndGgtMV06ZS50fWZ1bmN0aW9uIGhNZShlLHQscil7dmFyIG49ci8odC5pLWUuaSk7dC5jLT1uLHQucys9cixlLmMrPW4sdC56Kz1yLHQubSs9cn1mdW5jdGlvbiBmTWUoZSl7Zm9yKHZhciB0PTAscj0wLG49ZS5jaGlsZHJlbixpPW4ubGVuZ3RoLG87LS1pPj0wOylvPW5baV0sby56Kz10LG8ubSs9dCx0Kz1vLnMrKHIrPW8uYyl9ZnVuY3Rpb24gcE1lKGUsdCxyKXtyZXR1cm4gZS5hLnBhcmVudD09PXQucGFyZW50P2UuYTpyfWZ1bmN0aW9uIGk4KGUsdCl7dGhpcy5fPWUsdGhpcy5wYXJlbnQ9bnVsbCx0aGlzLmNoaWxkcmVuPW51bGwsdGhpcy5BPW51bGwsdGhpcy5hPXRoaXMsdGhpcy56PTAsdGhpcy5tPTAsdGhpcy5jPTAsdGhpcy5zPTAsdGhpcy50PW51bGwsdGhpcy5pPXR9aTgucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoWm0ucHJvdG90eXBlKTtmdW5jdGlvbiBkTWUoZSl7Zm9yKHZhciB0PW5ldyBpOChlLDApLHIsbj1bdF0saSxvLGEscztyPW4ucG9wKCk7KWlmKG89ci5fLmNoaWxkcmVuKWZvcihyLmNoaWxkcmVuPW5ldyBBcnJheShzPW8ubGVuZ3RoKSxhPXMtMTthPj0wOy0tYSluLnB1c2goaT1yLmNoaWxkcmVuW2FdPW5ldyBpOChvW2FdLGEpKSxpLnBhcmVudD1yO3JldHVybih0LnBhcmVudD1uZXcgaTgobnVsbCwwKSkuY2hpbGRyZW49W3RdLHR9ZnVuY3Rpb24gdjJ0KCl7dmFyIGU9dU1lLHQ9MSxyPTEsbj1udWxsO2Z1bmN0aW9uIGkoYyl7dmFyIHU9ZE1lKGMpO2lmKHUuZWFjaEFmdGVyKG8pLHUucGFyZW50Lm09LXUueix1LmVhY2hCZWZvcmUoYSksbiljLmVhY2hCZWZvcmUobCk7ZWxzZXt2YXIgaD1jLGY9YyxwPWM7Yy5lYWNoQmVmb3JlKGZ1bmN0aW9uKHgpe3gueDxoLngmJihoPXgpLHgueD5mLngmJihmPXgpLHguZGVwdGg+cC5kZXB0aCYmKHA9eCl9KTt2YXIgZD1oPT09Zj8xOmUoaCxmKS8yLGc9ZC1oLngsXz10LyhmLngrZCtnKSx5PXIvKHAuZGVwdGh8fDEpO2MuZWFjaEJlZm9yZShmdW5jdGlvbih4KXt4Lng9KHgueCtnKSpfLHgueT14LmRlcHRoKnl9KX1yZXR1cm4gY31mdW5jdGlvbiBvKGMpe3ZhciB1PWMuY2hpbGRyZW4saD1jLnBhcmVudC5jaGlsZHJlbixmPWMuaT9oW2MuaS0xXTpudWxsO2lmKHUpe2ZNZShjKTt2YXIgcD0odVswXS56K3VbdS5sZW5ndGgtMV0ueikvMjtmPyhjLno9Zi56K2UoYy5fLGYuXyksYy5tPWMuei1wKTpjLno9cH1lbHNlIGYmJihjLno9Zi56K2UoYy5fLGYuXykpO2MucGFyZW50LkE9cyhjLGYsYy5wYXJlbnQuQXx8aFswXSl9ZnVuY3Rpb24gYShjKXtjLl8ueD1jLnorYy5wYXJlbnQubSxjLm0rPWMucGFyZW50Lm19ZnVuY3Rpb24gcyhjLHUsaCl7aWYodSl7Zm9yKHZhciBmPWMscD1jLGQ9dSxnPWYucGFyZW50LmNoaWxkcmVuWzBdLF89Zi5tLHk9cC5tLHg9ZC5tLGI9Zy5tLFM7ZD10WChkKSxmPVFqKGYpLGQmJmY7KWc9UWooZykscD10WChwKSxwLmE9YyxTPWQueit4LWYuei1fK2UoZC5fLGYuXyksUz4wJiYoaE1lKHBNZShkLGMsaCksYyxTKSxfKz1TLHkrPVMpLHgrPWQubSxfKz1mLm0sYis9Zy5tLHkrPXAubTtkJiYhdFgocCkmJihwLnQ9ZCxwLm0rPXgteSksZiYmIVFqKGcpJiYoZy50PWYsZy5tKz1fLWIsaD1jKX1yZXR1cm4gaH1mdW5jdGlvbiBsKGMpe2MueCo9dCxjLnk9Yy5kZXB0aCpyfXJldHVybiBpLnNlcGFyYXRpb249ZnVuY3Rpb24oYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9YyxpKTplfSxpLnNpemU9ZnVuY3Rpb24oYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ITEsdD0rY1swXSxyPStjWzFdLGkpOm4/bnVsbDpbdCxyXX0saS5ub2RlU2l6ZT1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0hMCx0PStjWzBdLHI9K2NbMV0saSk6bj9bdCxyXTpudWxsfSxpfWZ1bmN0aW9uIFFtKGUsdCxyLG4saSl7Zm9yKHZhciBvPWUuY2hpbGRyZW4sYSxzPS0xLGw9by5sZW5ndGgsYz1lLnZhbHVlJiYoaS1yKS9lLnZhbHVlOysrczxsOylhPW9bc10sYS54MD10LGEueDE9bixhLnkwPXIsYS55MT1yKz1hLnZhbHVlKmN9dmFyIGVYPSgxK01hdGguc3FydCg1KSkvMjtmdW5jdGlvbiByWChlLHQscixuLGksbyl7Zm9yKHZhciBhPVtdLHM9dC5jaGlsZHJlbixsLGMsdT0wLGg9MCxmPXMubGVuZ3RoLHAsZCxnPXQudmFsdWUsXyx5LHgsYixTLEMsUDt1PGY7KXtwPWktcixkPW8tbjtkbyBfPXNbaCsrXS52YWx1ZTt3aGlsZSghXyYmaDxmKTtmb3IoeT14PV8sQz1NYXRoLm1heChkL3AscC9kKS8oZyplKSxQPV8qXypDLFM9TWF0aC5tYXgoeC9QLFAveSk7aDxmOysraCl7aWYoXys9Yz1zW2hdLnZhbHVlLGM8eSYmKHk9YyksYz54JiYoeD1jKSxQPV8qXypDLGI9TWF0aC5tYXgoeC9QLFAveSksYj5TKXtfLT1jO2JyZWFrfVM9Yn1hLnB1c2gobD17dmFsdWU6XyxkaWNlOnA8ZCxjaGlsZHJlbjpzLnNsaWNlKHUsaCl9KSxsLmRpY2U/cWgobCxyLG4saSxnP24rPWQqXy9nOm8pOlFtKGwscixuLGc/cis9cCpfL2c6aSxvKSxnLT1fLHU9aH1yZXR1cm4gYX12YXIgbzg9ZnVuY3Rpb24gZSh0KXtmdW5jdGlvbiByKG4saSxvLGEscyl7clgodCxuLGksbyxhLHMpfXJldHVybiByLnJhdGlvPWZ1bmN0aW9uKG4pe3JldHVybiBlKChuPStuKT4xP246MSl9LHJ9KGVYKTtmdW5jdGlvbiB4MnQoKXt2YXIgZT1vOCx0PSExLHI9MSxuPTEsaT1bMF0sbz16cCxhPXpwLHM9enAsbD16cCxjPXpwO2Z1bmN0aW9uIHUoZil7cmV0dXJuIGYueDA9Zi55MD0wLGYueDE9cixmLnkxPW4sZi5lYWNoQmVmb3JlKGgpLGk9WzBdLHQmJmYuZWFjaEJlZm9yZShuOCksZn1mdW5jdGlvbiBoKGYpe3ZhciBwPWlbZi5kZXB0aF0sZD1mLngwK3AsZz1mLnkwK3AsXz1mLngxLXAseT1mLnkxLXA7XzxkJiYoZD1fPShkK18pLzIpLHk8ZyYmKGc9eT0oZyt5KS8yKSxmLngwPWQsZi55MD1nLGYueDE9XyxmLnkxPXksZi5jaGlsZHJlbiYmKHA9aVtmLmRlcHRoKzFdPW8oZikvMixkKz1jKGYpLXAsZys9YShmKS1wLF8tPXMoZiktcCx5LT1sKGYpLXAsXzxkJiYoZD1fPShkK18pLzIpLHk8ZyYmKGc9eT0oZyt5KS8yKSxlKGYsZCxnLF8seSkpfXJldHVybiB1LnJvdW5kPWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSEhZix1KTp0fSx1LnNpemU9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K2ZbMF0sbj0rZlsxXSx1KTpbcixuXX0sdS50aWxlPWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVViKGYpLHUpOmV9LHUucGFkZGluZz1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD91LnBhZGRpbmdJbm5lcihmKS5wYWRkaW5nT3V0ZXIoZik6dS5wYWRkaW5nSW5uZXIoKX0sdS5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89dHlwZW9mIGY9PSJmdW5jdGlvbiI/ZjpKbSgrZiksdSk6b30sdS5wYWRkaW5nT3V0ZXI9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dS5wYWRkaW5nVG9wKGYpLnBhZGRpbmdSaWdodChmKS5wYWRkaW5nQm90dG9tKGYpLnBhZGRpbmdMZWZ0KGYpOnUucGFkZGluZ1RvcCgpfSx1LnBhZGRpbmdUb3A9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dHlwZW9mIGY9PSJmdW5jdGlvbiI/ZjpKbSgrZiksdSk6YX0sdS5wYWRkaW5nUmlnaHQ9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9dHlwZW9mIGY9PSJmdW5jdGlvbiI/ZjpKbSgrZiksdSk6c30sdS5wYWRkaW5nQm90dG9tPWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPXR5cGVvZiBmPT0iZnVuY3Rpb24iP2Y6Sm0oK2YpLHUpOmx9LHUucGFkZGluZ0xlZnQ9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9dHlwZW9mIGY9PSJmdW5jdGlvbiI/ZjpKbSgrZiksdSk6Y30sdX1mdW5jdGlvbiBiMnQoZSx0LHIsbixpKXt2YXIgbz1lLmNoaWxkcmVuLGEscz1vLmxlbmd0aCxsLGM9bmV3IEFycmF5KHMrMSk7Zm9yKGNbMF09bD1hPTA7YTxzOysrYSljW2ErMV09bCs9b1thXS52YWx1ZTt1KDAscyxlLnZhbHVlLHQscixuLGkpO2Z1bmN0aW9uIHUoaCxmLHAsZCxnLF8seSl7aWYoaD49Zi0xKXt2YXIgeD1vW2hdO3gueDA9ZCx4LnkwPWcseC54MT1fLHgueTE9eTtyZXR1cm59Zm9yKHZhciBiPWNbaF0sUz1wLzIrYixDPWgrMSxQPWYtMTtDPFA7KXt2YXIgaz1DK1A+Pj4xO2Nba108Uz9DPWsrMTpQPWt9Uy1jW0MtMV08Y1tDXS1TJiZoKzE8QyYmLS1DO3ZhciBPPWNbQ10tYixEPXAtTztpZihfLWQ+eS1nKXt2YXIgQj0oZCpEK18qTykvcDt1KGgsQyxPLGQsZyxCLHkpLHUoQyxmLEQsQixnLF8seSl9ZWxzZXt2YXIgST0oZypEK3kqTykvcDt1KGgsQyxPLGQsZyxfLEkpLHUoQyxmLEQsZCxJLF8seSl9fX1mdW5jdGlvbiB3MnQoZSx0LHIsbixpKXsoZS5kZXB0aCYxP1FtOnFoKShlLHQscixuLGkpfXZhciBTMnQ9ZnVuY3Rpb24gZSh0KXtmdW5jdGlvbiByKG4saSxvLGEscyl7aWYoKGw9bi5fc3F1YXJpZnkpJiZsLnJhdGlvPT09dClmb3IodmFyIGwsYyx1LGgsZj0tMSxwLGQ9bC5sZW5ndGgsZz1uLnZhbHVlOysrZjxkOyl7Zm9yKGM9bFtmXSx1PWMuY2hpbGRyZW4saD1jLnZhbHVlPTAscD11Lmxlbmd0aDtoPHA7KytoKWMudmFsdWUrPXVbaF0udmFsdWU7Yy5kaWNlP3FoKGMsaSxvLGEsbys9KHMtbykqYy52YWx1ZS9nKTpRbShjLGksbyxpKz0oYS1pKSpjLnZhbHVlL2cscyksZy09Yy52YWx1ZX1lbHNlIG4uX3NxdWFyaWZ5PWw9clgodCxuLGksbyxhLHMpLGwucmF0aW89dH1yZXR1cm4gci5yYXRpbz1mdW5jdGlvbihuKXtyZXR1cm4gZSgobj0rbik+MT9uOjEpfSxyfShlWCk7ZnVuY3Rpb24gTTJ0KGUpe2Zvcih2YXIgdD0tMSxyPWUubGVuZ3RoLG4saT1lW3ItMV0sbz0wOysrdDxyOyluPWksaT1lW3RdLG8rPW5bMV0qaVswXS1uWzBdKmlbMV07cmV0dXJuIG8vMn1mdW5jdGlvbiBFMnQoZSl7Zm9yKHZhciB0PS0xLHI9ZS5sZW5ndGgsbj0wLGk9MCxvLGE9ZVtyLTFdLHMsbD0wOysrdDxyOylvPWEsYT1lW3RdLGwrPXM9b1swXSphWzFdLWFbMF0qb1sxXSxuKz0ob1swXSthWzBdKSpzLGkrPShvWzFdK2FbMV0pKnM7cmV0dXJuIGwqPTMsW24vbCxpL2xdfWZ1bmN0aW9uIFQydChlLHQscil7cmV0dXJuKHRbMF0tZVswXSkqKHJbMV0tZVsxXSktKHRbMV0tZVsxXSkqKHJbMF0tZVswXSl9ZnVuY3Rpb24gbU1lKGUsdCl7cmV0dXJuIGVbMF0tdFswXXx8ZVsxXS10WzFdfWZ1bmN0aW9uIEMydChlKXtmb3IodmFyIHQ9ZS5sZW5ndGgscj1bMCwxXSxuPTIsaT0yO2k8dDsrK2kpe2Zvcig7bj4xJiZUMnQoZVtyW24tMl1dLGVbcltuLTFdXSxlW2ldKTw9MDspLS1uO3JbbisrXT1pfXJldHVybiByLnNsaWNlKDAsbil9ZnVuY3Rpb24gQTJ0KGUpe2lmKChyPWUubGVuZ3RoKTwzKXJldHVybiBudWxsO3ZhciB0LHIsbj1uZXcgQXJyYXkociksaT1uZXcgQXJyYXkocik7Zm9yKHQ9MDt0PHI7Kyt0KW5bdF09WytlW3RdWzBdLCtlW3RdWzFdLHRdO2ZvcihuLnNvcnQobU1lKSx0PTA7dDxyOysrdClpW3RdPVtuW3RdWzBdLC1uW3RdWzFdXTt2YXIgbz1DMnQobiksYT1DMnQoaSkscz1hWzBdPT09b1swXSxsPWFbYS5sZW5ndGgtMV09PT1vW28ubGVuZ3RoLTFdLGM9W107Zm9yKHQ9by5sZW5ndGgtMTt0Pj0wOy0tdCljLnB1c2goZVtuW29bdF1dWzJdXSk7Zm9yKHQ9K3M7dDxhLmxlbmd0aC1sOysrdCljLnB1c2goZVtuW2FbdF1dWzJdXSk7cmV0dXJuIGN9ZnVuY3Rpb24gUDJ0KGUsdCl7Zm9yKHZhciByPWUubGVuZ3RoLG49ZVtyLTFdLGk9dFswXSxvPXRbMV0sYT1uWzBdLHM9blsxXSxsLGMsdT0hMSxoPTA7aDxyOysraCluPWVbaF0sbD1uWzBdLGM9blsxXSxjPm8hPXM+byYmaTwoYS1sKSooby1jKS8ocy1jKStsJiYodT0hdSksYT1sLHM9YztyZXR1cm4gdX1mdW5jdGlvbiBJMnQoZSl7Zm9yKHZhciB0PS0xLHI9ZS5sZW5ndGgsbj1lW3ItMV0saSxvLGE9blswXSxzPW5bMV0sbD0wOysrdDxyOylpPWEsbz1zLG49ZVt0XSxhPW5bMF0scz1uWzFdLGktPWEsby09cyxsKz1NYXRoLnNxcnQoaSppK28qbyk7cmV0dXJuIGx9ZnVuY3Rpb24gYWMoKXtyZXR1cm4gTWF0aC5yYW5kb20oKX12YXIgTDJ0PWZ1bmN0aW9uIGUodCl7ZnVuY3Rpb24gcihuLGkpe3JldHVybiBuPW49PW51bGw/MDorbixpPWk9PW51bGw/MToraSxhcmd1bWVudHMubGVuZ3RoPT09MT8oaT1uLG49MCk6aS09bixmdW5jdGlvbigpe3JldHVybiB0KCkqaStufX1yZXR1cm4gci5zb3VyY2U9ZSxyfShhYyk7dmFyIGE4PWZ1bmN0aW9uIGUodCl7ZnVuY3Rpb24gcihuLGkpe3ZhciBvLGE7cmV0dXJuIG49bj09bnVsbD8wOituLGk9aT09bnVsbD8xOitpLGZ1bmN0aW9uKCl7dmFyIHM7aWYobyE9bnVsbClzPW8sbz1udWxsO2Vsc2UgZG8gbz10KCkqMi0xLHM9dCgpKjItMSxhPW8qbytzKnM7d2hpbGUoIWF8fGE+MSk7cmV0dXJuIG4raSpzKk1hdGguc3FydCgtMipNYXRoLmxvZyhhKS9hKX19cmV0dXJuIHIuc291cmNlPWUscn0oYWMpO3ZhciBrMnQ9ZnVuY3Rpb24gZSh0KXtmdW5jdGlvbiByKCl7dmFyIG49YTguc291cmNlKHQpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5leHAobigpKX19cmV0dXJuIHIuc291cmNlPWUscn0oYWMpO3ZhciBzOD1mdW5jdGlvbiBlKHQpe2Z1bmN0aW9uIHIobil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBpPTAsbz0wO288bjsrK28paSs9dCgpO3JldHVybiBpfX1yZXR1cm4gci5zb3VyY2U9ZSxyfShhYyk7dmFyIFIydD1mdW5jdGlvbiBlKHQpe2Z1bmN0aW9uIHIobil7dmFyIGk9czguc291cmNlKHQpKG4pO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBpKCkvbn19cmV0dXJuIHIuc291cmNlPWUscn0oYWMpO3ZhciBOMnQ9ZnVuY3Rpb24gZSh0KXtmdW5jdGlvbiByKG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybi1NYXRoLmxvZygxLXQoKSkvbn19cmV0dXJuIHIuc291cmNlPWUscn0oYWMpO2Z1bmN0aW9uIGhpKGUsdCl7c3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMDpicmVhaztjYXNlIDE6dGhpcy5yYW5nZShlKTticmVhaztkZWZhdWx0OnRoaXMucmFuZ2UodCkuZG9tYWluKGUpO2JyZWFrfXJldHVybiB0aGlzfWZ1bmN0aW9uIHNjKGUsdCl7c3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMDpicmVhaztjYXNlIDE6dGhpcy5pbnRlcnBvbGF0b3IoZSk7YnJlYWs7ZGVmYXVsdDp0aGlzLmludGVycG9sYXRvcih0KS5kb21haW4oZSk7YnJlYWt9cmV0dXJuIHRoaXN9VGIoKTt2YXIgRDJ0PUFycmF5LnByb3RvdHlwZSwkXz1EMnQubWFwLGxjPUQydC5zbGljZTt2YXIgbDg9e25hbWU6ImltcGxpY2l0In07ZnVuY3Rpb24gZ3UoKXt2YXIgZT1KaSgpLHQ9W10scj1bXSxuPWw4O2Z1bmN0aW9uIGkobyl7dmFyIGE9bysiIixzPWUuZ2V0KGEpO2lmKCFzKXtpZihuIT09bDgpcmV0dXJuIG47ZS5zZXQoYSxzPXQucHVzaChvKSl9cmV0dXJuIHJbKHMtMSklci5sZW5ndGhdfXJldHVybiBpLmRvbWFpbj1mdW5jdGlvbihvKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdC5zbGljZSgpO3Q9W10sZT1KaSgpO2Zvcih2YXIgYT0tMSxzPW8ubGVuZ3RoLGwsYzsrK2E8czspZS5oYXMoYz0obD1vW2FdKSsiIil8fGUuc2V0KGMsdC5wdXNoKGwpKTtyZXR1cm4gaX0saS5yYW5nZT1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1sYy5jYWxsKG8pLGkpOnIuc2xpY2UoKX0saS51bmtub3duPWZ1bmN0aW9uKG8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW8saSk6bn0saS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGd1KHQscikudW5rbm93bihuKX0saGkuYXBwbHkoaSxhcmd1bWVudHMpLGl9ZnVuY3Rpb24gdGcoKXt2YXIgZT1ndSgpLnVua25vd24odm9pZCAwKSx0PWUuZG9tYWluLHI9ZS5yYW5nZSxuPVswLDFdLGksbyxhPSExLHM9MCxsPTAsYz0uNTtkZWxldGUgZS51bmtub3duO2Z1bmN0aW9uIHUoKXt2YXIgaD10KCkubGVuZ3RoLGY9blsxXTxuWzBdLHA9bltmLTBdLGQ9blsxLWZdO2k9KGQtcCkvTWF0aC5tYXgoMSxoLXMrbCoyKSxhJiYoaT1NYXRoLmZsb29yKGkpKSxwKz0oZC1wLWkqKGgtcykpKmMsbz1pKigxLXMpLGEmJihwPU1hdGgucm91bmQocCksbz1NYXRoLnJvdW5kKG8pKTt2YXIgZz1JcihoKS5tYXAoZnVuY3Rpb24oXyl7cmV0dXJuIHAraSpffSk7cmV0dXJuIHIoZj9nLnJldmVyc2UoKTpnKX1yZXR1cm4gZS5kb21haW49ZnVuY3Rpb24oaCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQoaCksdSgpKTp0KCl9LGUucmFuZ2U9ZnVuY3Rpb24oaCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49WytoWzBdLCtoWzFdXSx1KCkpOm4uc2xpY2UoKX0sZS5yYW5nZVJvdW5kPWZ1bmN0aW9uKGgpe3JldHVybiBuPVsraFswXSwraFsxXV0sYT0hMCx1KCl9LGUuYmFuZHdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIG99LGUuc3RlcD1mdW5jdGlvbigpe3JldHVybiBpfSxlLnJvdW5kPWZ1bmN0aW9uKGgpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSEhaCx1KCkpOmF9LGUucGFkZGluZz1mdW5jdGlvbihoKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1NYXRoLm1pbigxLGw9K2gpLHUoKSk6c30sZS5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24oaCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9TWF0aC5taW4oMSxoKSx1KCkpOnN9LGUucGFkZGluZ091dGVyPWZ1bmN0aW9uKGgpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPStoLHUoKSk6bH0sZS5hbGlnbj1mdW5jdGlvbihoKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1NYXRoLm1heCgwLE1hdGgubWluKDEsaCkpLHUoKSk6Y30sZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHRnKHQoKSxuKS5yb3VuZChhKS5wYWRkaW5nSW5uZXIocykucGFkZGluZ091dGVyKGwpLmFsaWduKGMpfSxoaS5hcHBseSh1KCksYXJndW1lbnRzKX1mdW5jdGlvbiBPMnQoZSl7dmFyIHQ9ZS5jb3B5O3JldHVybiBlLnBhZGRpbmc9ZS5wYWRkaW5nT3V0ZXIsZGVsZXRlIGUucGFkZGluZ0lubmVyLGRlbGV0ZSBlLnBhZGRpbmdPdXRlcixlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gTzJ0KHQoKSl9LGV9ZnVuY3Rpb24gZWcoKXtyZXR1cm4gTzJ0KHRnLmFwcGx5KG51bGwsYXJndW1lbnRzKS5wYWRkaW5nSW5uZXIoMSkpfWZ1bmN0aW9uIHoydChlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZX19ZnVuY3Rpb24gbTUoZSl7cmV0dXJuK2V9dmFyIEYydD1bMCwxXTtmdW5jdGlvbiBuaShlKXtyZXR1cm4gZX1mdW5jdGlvbiBuWChlLHQpe3JldHVybih0LT1lPStlKT9mdW5jdGlvbihyKXtyZXR1cm4oci1lKS90fTp6MnQoaXNOYU4odCk/TmFOOi41KX1mdW5jdGlvbiBCMnQoZSl7dmFyIHQ9ZVswXSxyPWVbZS5sZW5ndGgtMV0sbjtyZXR1cm4gdD5yJiYobj10LHQ9cixyPW4pLGZ1bmN0aW9uKGkpe3JldHVybiBNYXRoLm1heCh0LE1hdGgubWluKHIsaSkpfX1mdW5jdGlvbiBnTWUoZSx0LHIpe3ZhciBuPWVbMF0saT1lWzFdLG89dFswXSxhPXRbMV07cmV0dXJuIGk8bj8obj1uWChpLG4pLG89cihhLG8pKToobj1uWChuLGkpLG89cihvLGEpKSxmdW5jdGlvbihzKXtyZXR1cm4gbyhuKHMpKX19ZnVuY3Rpb24gX01lKGUsdCxyKXt2YXIgbj1NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCktMSxpPW5ldyBBcnJheShuKSxvPW5ldyBBcnJheShuKSxhPS0xO2ZvcihlW25dPGVbMF0mJihlPWUuc2xpY2UoKS5yZXZlcnNlKCksdD10LnNsaWNlKCkucmV2ZXJzZSgpKTsrK2E8bjspaVthXT1uWChlW2FdLGVbYSsxXSksb1thXT1yKHRbYV0sdFthKzFdKTtyZXR1cm4gZnVuY3Rpb24ocyl7dmFyIGw9dnMoZSxzLDEsbiktMTtyZXR1cm4gb1tsXShpW2xdKHMpKX19ZnVuY3Rpb24gR2goZSx0KXtyZXR1cm4gdC5kb21haW4oZS5kb21haW4oKSkucmFuZ2UoZS5yYW5nZSgpKS5pbnRlcnBvbGF0ZShlLmludGVycG9sYXRlKCkpLmNsYW1wKGUuY2xhbXAoKSkudW5rbm93bihlLnVua25vd24oKSl9ZnVuY3Rpb24gS18oKXt2YXIgZT1GMnQsdD1GMnQscj1uYyxuLGksbyxhPW5pLHMsbCxjO2Z1bmN0aW9uIHUoKXtyZXR1cm4gcz1NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCk+Mj9fTWU6Z01lLGw9Yz1udWxsLGh9ZnVuY3Rpb24gaChmKXtyZXR1cm4gaXNOYU4oZj0rZik/bzoobHx8KGw9cyhlLm1hcChuKSx0LHIpKSkobihhKGYpKSl9cmV0dXJuIGguaW52ZXJ0PWZ1bmN0aW9uKGYpe3JldHVybiBhKGkoKGN8fChjPXModCxlLm1hcChuKSx6aSkpKShmKSkpfSxoLmRvbWFpbj1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0kXy5jYWxsKGYsbTUpLGE9PT1uaXx8KGE9QjJ0KGUpKSx1KCkpOmUuc2xpY2UoKX0saC5yYW5nZT1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1sYy5jYWxsKGYpLHUoKSk6dC5zbGljZSgpfSxoLnJhbmdlUm91bmQ9ZnVuY3Rpb24oZil7cmV0dXJuIHQ9bGMuY2FsbChmKSxyPWRMLHUoKX0saC5jbGFtcD1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1mP0IydChlKTpuaSxoKTphIT09bml9LGguaW50ZXJwb2xhdGU9ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9Zix1KCkpOnJ9LGgudW5rbm93bj1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1mLGgpOm99LGZ1bmN0aW9uKGYscCl7cmV0dXJuIG49ZixpPXAsdSgpfX1mdW5jdGlvbiBnNShlLHQpe3JldHVybiBLXygpKGUsdCl9ZnVuY3Rpb24gYzgoZSx0LHIsbil7dmFyIGk9ZWwoZSx0LHIpLG87c3dpdGNoKG49a3Aobj09bnVsbD8iLGYiOm4pLG4udHlwZSl7Y2FzZSJzIjp7dmFyIGE9TWF0aC5tYXgoTWF0aC5hYnMoZSksTWF0aC5hYnModCkpO3JldHVybiBuLnByZWNpc2lvbj09bnVsbCYmIWlzTmFOKG89b2soaSxhKSkmJihuLnByZWNpc2lvbj1vKSxXRShuLGEpfWNhc2UiIjpjYXNlImUiOmNhc2UiZyI6Y2FzZSJwIjpjYXNlInIiOntuLnByZWNpc2lvbj09bnVsbCYmIWlzTmFOKG89YWsoaSxNYXRoLm1heChNYXRoLmFicyhlKSxNYXRoLmFicyh0KSkpKSYmKG4ucHJlY2lzaW9uPW8tKG4udHlwZT09PSJlIikpO2JyZWFrfWNhc2UiZiI6Y2FzZSIlIjp7bi5wcmVjaXNpb249PW51bGwmJiFpc05hTihvPWlrKGkpKSYmKG4ucHJlY2lzaW9uPW8tKG4udHlwZT09PSIlIikqMik7YnJlYWt9fXJldHVybiB4bihuKX1mdW5jdGlvbiBvbChlKXt2YXIgdD1lLmRvbWFpbjtyZXR1cm4gZS50aWNrcz1mdW5jdGlvbihyKXt2YXIgbj10KCk7cmV0dXJuIGFiKG5bMF0sbltuLmxlbmd0aC0xXSxyPT1udWxsPzEwOnIpfSxlLnRpY2tGb3JtYXQ9ZnVuY3Rpb24ocixuKXt2YXIgaT10KCk7cmV0dXJuIGM4KGlbMF0saVtpLmxlbmd0aC0xXSxyPT1udWxsPzEwOnIsbil9LGUubmljZT1mdW5jdGlvbihyKXtyPT1udWxsJiYocj0xMCk7dmFyIG49dCgpLGk9MCxvPW4ubGVuZ3RoLTEsYT1uW2ldLHM9bltvXSxsO3JldHVybiBzPGEmJihsPWEsYT1zLHM9bCxsPWksaT1vLG89bCksbD1iXyhhLHMsciksbD4wPyhhPU1hdGguZmxvb3IoYS9sKSpsLHM9TWF0aC5jZWlsKHMvbCkqbCxsPWJfKGEscyxyKSk6bDwwJiYoYT1NYXRoLmNlaWwoYSpsKS9sLHM9TWF0aC5mbG9vcihzKmwpL2wsbD1iXyhhLHMscikpLGw+MD8obltpXT1NYXRoLmZsb29yKGEvbCkqbCxuW29dPU1hdGguY2VpbChzL2wpKmwsdChuKSk6bDwwJiYobltpXT1NYXRoLmNlaWwoYSpsKS9sLG5bb109TWF0aC5mbG9vcihzKmwpL2wsdChuKSksZX0sZX1mdW5jdGlvbiB6bigpe3ZhciBlPWc1KG5pLG5pKTtyZXR1cm4gZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEdoKGUsem4oKSl9LGhpLmFwcGx5KGUsYXJndW1lbnRzKSxvbChlKX1mdW5jdGlvbiB1OChlKXt2YXIgdDtmdW5jdGlvbiByKG4pe3JldHVybiBpc05hTihuPStuKT90Om59cmV0dXJuIHIuaW52ZXJ0PXIsci5kb21haW49ci5yYW5nZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0kXy5jYWxsKG4sbTUpLHIpOmUuc2xpY2UoKX0sci51bmtub3duPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PW4scik6dH0sci5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHU4KGUpLnVua25vd24odCl9LGU9YXJndW1lbnRzLmxlbmd0aD8kXy5jYWxsKGUsbTUpOlswLDFdLG9sKHIpfWZ1bmN0aW9uIGg4KGUsdCl7ZT1lLnNsaWNlKCk7dmFyIHI9MCxuPWUubGVuZ3RoLTEsaT1lW3JdLG89ZVtuXSxhO3JldHVybiBvPGkmJihhPXIscj1uLG49YSxhPWksaT1vLG89YSksZVtyXT10LmZsb29yKGkpLGVbbl09dC5jZWlsKG8pLGV9ZnVuY3Rpb24gSDJ0KGUpe3JldHVybiBNYXRoLmxvZyhlKX1mdW5jdGlvbiBWMnQoZSl7cmV0dXJuIE1hdGguZXhwKGUpfWZ1bmN0aW9uIHlNZShlKXtyZXR1cm4tTWF0aC5sb2coLWUpfWZ1bmN0aW9uIHZNZShlKXtyZXR1cm4tTWF0aC5leHAoLWUpfWZ1bmN0aW9uIHhNZShlKXtyZXR1cm4gaXNGaW5pdGUoZSk/KygiMWUiK2UpOmU8MD8wOmV9ZnVuY3Rpb24gYk1lKGUpe3JldHVybiBlPT09MTA/eE1lOmU9PT1NYXRoLkU/TWF0aC5leHA6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucG93KGUsdCl9fWZ1bmN0aW9uIHdNZShlKXtyZXR1cm4gZT09PU1hdGguRT9NYXRoLmxvZzplPT09MTAmJk1hdGgubG9nMTB8fGU9PT0yJiZNYXRoLmxvZzJ8fChlPU1hdGgubG9nKGUpLGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmxvZyh0KS9lfSl9ZnVuY3Rpb24gVTJ0KGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4tZSgtdCl9fWZ1bmN0aW9uIF81KGUpe3ZhciB0PWUoSDJ0LFYydCkscj10LmRvbWFpbixuPTEwLGksbztmdW5jdGlvbiBhKCl7cmV0dXJuIGk9d01lKG4pLG89Yk1lKG4pLHIoKVswXTwwPyhpPVUydChpKSxvPVUydChvKSxlKHlNZSx2TWUpKTplKEgydCxWMnQpLHR9cmV0dXJuIHQuYmFzZT1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rcyxhKCkpOm59LHQuZG9tYWluPWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyKHMpLGEoKSk6cigpfSx0LnRpY2tzPWZ1bmN0aW9uKHMpe3ZhciBsPXIoKSxjPWxbMF0sdT1sW2wubGVuZ3RoLTFdLGg7KGg9dTxjKSYmKGY9YyxjPXUsdT1mKTt2YXIgZj1pKGMpLHA9aSh1KSxkLGcsXyx5PXM9PW51bGw/MTA6K3MseD1bXTtpZighKG4lMSkmJnAtZjx5KXtpZihmPU1hdGgucm91bmQoZiktMSxwPU1hdGgucm91bmQocCkrMSxjPjApe2Zvcig7ZjxwOysrZilmb3IoZz0xLGQ9byhmKTtnPG47KytnKWlmKF89ZCpnLCEoXzxjKSl7aWYoXz51KWJyZWFrO3gucHVzaChfKX19ZWxzZSBmb3IoO2Y8cDsrK2YpZm9yKGc9bi0xLGQ9byhmKTtnPj0xOy0tZylpZihfPWQqZywhKF88Yykpe2lmKF8+dSlicmVhazt4LnB1c2goXyl9fWVsc2UgeD1hYihmLHAsTWF0aC5taW4ocC1mLHkpKS5tYXAobyk7cmV0dXJuIGg/eC5yZXZlcnNlKCk6eH0sdC50aWNrRm9ybWF0PWZ1bmN0aW9uKHMsbCl7aWYobD09bnVsbCYmKGw9bj09PTEwPyIuMGUiOiIsIiksdHlwZW9mIGwhPSJmdW5jdGlvbiImJihsPXhuKGwpKSxzPT09MS8wKXJldHVybiBsO3M9PW51bGwmJihzPTEwKTt2YXIgYz1NYXRoLm1heCgxLG4qcy90LnRpY2tzKCkubGVuZ3RoKTtyZXR1cm4gZnVuY3Rpb24odSl7dmFyIGg9dS9vKE1hdGgucm91bmQoaSh1KSkpO3JldHVybiBoKm48bi0uNSYmKGgqPW4pLGg8PWM/bCh1KToiIn19LHQubmljZT1mdW5jdGlvbigpe3JldHVybiByKGg4KHIoKSx7Zmxvb3I6ZnVuY3Rpb24ocyl7cmV0dXJuIG8oTWF0aC5mbG9vcihpKHMpKSl9LGNlaWw6ZnVuY3Rpb24ocyl7cmV0dXJuIG8oTWF0aC5jZWlsKGkocykpKX19KSl9LHR9ZnVuY3Rpb24gY2MoKXt2YXIgZT1fNShLXygpKS5kb21haW4oWzEsMTBdKTtyZXR1cm4gZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEdoKGUsY2MoKSkuYmFzZShlLmJhc2UoKSl9LGhpLmFwcGx5KGUsYXJndW1lbnRzKSxlfWZ1bmN0aW9uIHEydChlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc2lnbih0KSpNYXRoLmxvZzFwKE1hdGguYWJzKHQvZSkpfX1mdW5jdGlvbiBHMnQoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNpZ24odCkqTWF0aC5leHBtMShNYXRoLmFicyh0KSkqZX19ZnVuY3Rpb24geTUoZSl7dmFyIHQ9MSxyPWUocTJ0KHQpLEcydCh0KSk7cmV0dXJuIHIuY29uc3RhbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/ZShxMnQodD0rbiksRzJ0KHQpKTp0fSxvbChyKX1mdW5jdGlvbiBmOCgpe3ZhciBlPXk1KEtfKCkpO3JldHVybiBlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gR2goZSxmOCgpKS5jb25zdGFudChlLmNvbnN0YW50KCkpfSxoaS5hcHBseShlLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVzJ0KGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gdDwwPy1NYXRoLnBvdygtdCxlKTpNYXRoLnBvdyh0LGUpfX1mdW5jdGlvbiBTTWUoZSl7cmV0dXJuIGU8MD8tTWF0aC5zcXJ0KC1lKTpNYXRoLnNxcnQoZSl9ZnVuY3Rpb24gTU1lKGUpe3JldHVybiBlPDA/LWUqZTplKmV9ZnVuY3Rpb24gdjUoZSl7dmFyIHQ9ZShuaSxuaSkscj0xO2Z1bmN0aW9uIG4oKXtyZXR1cm4gcj09PTE/ZShuaSxuaSk6cj09PS41P2UoU01lLE1NZSk6ZShXMnQociksVzJ0KDEvcikpfXJldHVybiB0LmV4cG9uZW50PWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPStpLG4oKSk6cn0sb2wodCl9ZnVuY3Rpb24gWl8oKXt2YXIgZT12NShLXygpKTtyZXR1cm4gZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEdoKGUsWl8oKSkuZXhwb25lbnQoZS5leHBvbmVudCgpKX0saGkuYXBwbHkoZSxhcmd1bWVudHMpLGV9ZnVuY3Rpb24gWTJ0KCl7cmV0dXJuIFpfLmFwcGx5KG51bGwsYXJndW1lbnRzKS5leHBvbmVudCguNSl9ZnVuY3Rpb24gcmcoKXt2YXIgZT1bXSx0PVtdLHI9W10sbjtmdW5jdGlvbiBpKCl7dmFyIGE9MCxzPU1hdGgubWF4KDEsdC5sZW5ndGgpO2ZvcihyPW5ldyBBcnJheShzLTEpOysrYTxzOylyW2EtMV09bGEoZSxhL3MpO3JldHVybiBvfWZ1bmN0aW9uIG8oYSl7cmV0dXJuIGlzTmFOKGE9K2EpP246dFt2cyhyLGEpXX1yZXR1cm4gby5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24oYSl7dmFyIHM9dC5pbmRleE9mKGEpO3JldHVybiBzPDA/W05hTixOYU5dOltzPjA/cltzLTFdOmVbMF0sczxyLmxlbmd0aD9yW3NdOmVbZS5sZW5ndGgtMV1dfSxvLmRvbWFpbj1mdW5jdGlvbihhKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZS5zbGljZSgpO2U9W107Zm9yKHZhciBzPTAsbD1hLmxlbmd0aCxjO3M8bDsrK3MpYz1hW3NdLGMhPW51bGwmJiFpc05hTihjPStjKSYmZS5wdXNoKGMpO3JldHVybiBlLnNvcnQoYWEpLGkoKX0sby5yYW5nZT1mdW5jdGlvbihhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1sYy5jYWxsKGEpLGkoKSk6dC5zbGljZSgpfSxvLnVua25vd249ZnVuY3Rpb24oYSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49YSxvKTpufSxvLnF1YW50aWxlcz1mdW5jdGlvbigpe3JldHVybiByLnNsaWNlKCl9LG8uY29weT1mdW5jdGlvbigpe3JldHVybiByZygpLmRvbWFpbihlKS5yYW5nZSh0KS51bmtub3duKG4pfSxoaS5hcHBseShvLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcWIoKXt2YXIgZT0wLHQ9MSxyPTEsbj1bLjVdLGk9WzAsMV0sbztmdW5jdGlvbiBhKGwpe3JldHVybiBsPD1sP2lbdnMobixsLDAscildOm99ZnVuY3Rpb24gcygpe3ZhciBsPS0xO2ZvcihuPW5ldyBBcnJheShyKTsrK2w8cjspbltsXT0oKGwrMSkqdC0obC1yKSplKS8ocisxKTtyZXR1cm4gYX1yZXR1cm4gYS5kb21haW49ZnVuY3Rpb24obCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K2xbMF0sdD0rbFsxXSxzKCkpOltlLHRdfSxhLnJhbmdlPWZ1bmN0aW9uKGwpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPShpPWxjLmNhbGwobCkpLmxlbmd0aC0xLHMoKSk6aS5zbGljZSgpfSxhLmludmVydEV4dGVudD1mdW5jdGlvbihsKXt2YXIgYz1pLmluZGV4T2YobCk7cmV0dXJuIGM8MD9bTmFOLE5hTl06YzwxP1tlLG5bMF1dOmM+PXI/W25bci0xXSx0XTpbbltjLTFdLG5bY11dfSxhLnVua25vd249ZnVuY3Rpb24obCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGgmJihvPWwpLGF9LGEudGhyZXNob2xkcz1mdW5jdGlvbigpe3JldHVybiBuLnNsaWNlKCl9LGEuY29weT1mdW5jdGlvbigpe3JldHVybiBxYigpLmRvbWFpbihbZSx0XSkucmFuZ2UoaSkudW5rbm93bihvKX0saGkuYXBwbHkob2woYSksYXJndW1lbnRzKX1mdW5jdGlvbiBwOCgpe3ZhciBlPVsuNV0sdD1bMCwxXSxyLG49MTtmdW5jdGlvbiBpKG8pe3JldHVybiBvPD1vP3RbdnMoZSxvLDAsbildOnJ9cmV0dXJuIGkuZG9tYWluPWZ1bmN0aW9uKG8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPWxjLmNhbGwobyksbj1NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aC0xKSxpKTplLnNsaWNlKCl9LGkucmFuZ2U9ZnVuY3Rpb24obyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9bGMuY2FsbChvKSxuPU1hdGgubWluKGUubGVuZ3RoLHQubGVuZ3RoLTEpLGkpOnQuc2xpY2UoKX0saS5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24obyl7dmFyIGE9dC5pbmRleE9mKG8pO3JldHVybltlW2EtMV0sZVthXV19LGkudW5rbm93bj1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1vLGkpOnJ9LGkuY29weT1mdW5jdGlvbigpe3JldHVybiBwOCgpLmRvbWFpbihlKS5yYW5nZSh0KS51bmtub3duKHIpfSxoaS5hcHBseShpLGFyZ3VtZW50cyl9dmFyIGlYPW5ldyBEYXRlLG9YPW5ldyBEYXRlO2Z1bmN0aW9uIGJyKGUsdCxyLG4pe2Z1bmN0aW9uIGkobyl7cmV0dXJuIGUobz1hcmd1bWVudHMubGVuZ3RoPT09MD9uZXcgRGF0ZTpuZXcgRGF0ZSgrbykpLG99cmV0dXJuIGkuZmxvb3I9ZnVuY3Rpb24obyl7cmV0dXJuIGUobz1uZXcgRGF0ZSgrbykpLG99LGkuY2VpbD1mdW5jdGlvbihvKXtyZXR1cm4gZShvPW5ldyBEYXRlKG8tMSkpLHQobywxKSxlKG8pLG99LGkucm91bmQ9ZnVuY3Rpb24obyl7dmFyIGE9aShvKSxzPWkuY2VpbChvKTtyZXR1cm4gby1hPHMtbz9hOnN9LGkub2Zmc2V0PWZ1bmN0aW9uKG8sYSl7cmV0dXJuIHQobz1uZXcgRGF0ZSgrbyksYT09bnVsbD8xOk1hdGguZmxvb3IoYSkpLG99LGkucmFuZ2U9ZnVuY3Rpb24obyxhLHMpe3ZhciBsPVtdLGM7aWYobz1pLmNlaWwobykscz1zPT1udWxsPzE6TWF0aC5mbG9vcihzKSwhKG88YSl8fCEocz4wKSlyZXR1cm4gbDtkbyBsLnB1c2goYz1uZXcgRGF0ZSgrbykpLHQobyxzKSxlKG8pO3doaWxlKGM8byYmbzxhKTtyZXR1cm4gbH0saS5maWx0ZXI9ZnVuY3Rpb24obyl7cmV0dXJuIGJyKGZ1bmN0aW9uKGEpe2lmKGE+PWEpZm9yKDtlKGEpLCFvKGEpOylhLnNldFRpbWUoYS0xKX0sZnVuY3Rpb24oYSxzKXtpZihhPj1hKWlmKHM8MClmb3IoOysrczw9MDspZm9yKDt0KGEsLTEpLCFvKGEpOyk7ZWxzZSBmb3IoOy0tcz49MDspZm9yKDt0KGEsMSksIW8oYSk7KTt9KX0sciYmKGkuY291bnQ9ZnVuY3Rpb24obyxhKXtyZXR1cm4gaVguc2V0VGltZSgrbyksb1guc2V0VGltZSgrYSksZShpWCksZShvWCksTWF0aC5mbG9vcihyKGlYLG9YKSl9LGkuZXZlcnk9ZnVuY3Rpb24obyl7cmV0dXJuIG89TWF0aC5mbG9vcihvKSwhaXNGaW5pdGUobyl8fCEobz4wKT9udWxsOm8+MT9pLmZpbHRlcihuP2Z1bmN0aW9uKGEpe3JldHVybiBuKGEpJW89PT0wfTpmdW5jdGlvbihhKXtyZXR1cm4gaS5jb3VudCgwLGEpJW89PT0wfSk6aX0pLGl9dmFyIGQ4PWJyKGZ1bmN0aW9uKCl7fSxmdW5jdGlvbihlLHQpe2Uuc2V0VGltZSgrZSt0KX0sZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC1lfSk7ZDguZXZlcnk9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9TWF0aC5mbG9vcihlKSwhaXNGaW5pdGUoZSl8fCEoZT4wKT9udWxsOmU+MT9icihmdW5jdGlvbih0KXt0LnNldFRpbWUoTWF0aC5mbG9vcih0L2UpKmUpfSxmdW5jdGlvbih0LHIpe3Quc2V0VGltZSgrdCtyKmUpfSxmdW5jdGlvbih0LHIpe3JldHVybihyLXQpL2V9KTpkOH07dmFyIEpfPWQ4LGFYPWQ4LnJhbmdlO3ZhciBRXz0xZTMsdWM9NmU0LEdiPTM2ZTUsbTg9ODY0ZTUsZzg9NjA0OGU1O3ZhciBqMnQ9YnIoZnVuY3Rpb24oZSl7ZS5zZXRUaW1lKGUtZS5nZXRNaWxsaXNlY29uZHMoKSl9LGZ1bmN0aW9uKGUsdCl7ZS5zZXRUaW1lKCtlK3QqUV8pfSxmdW5jdGlvbihlLHQpe3JldHVybih0LWUpL1FffSxmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRVVENTZWNvbmRzKCl9KSx0eT1qMnQsc1g9ajJ0LnJhbmdlO3ZhciBYMnQ9YnIoZnVuY3Rpb24oZSl7ZS5zZXRUaW1lKGUtZS5nZXRNaWxsaXNlY29uZHMoKS1lLmdldFNlY29uZHMoKSpRXyl9LGZ1bmN0aW9uKGUsdCl7ZS5zZXRUaW1lKCtlK3QqdWMpfSxmdW5jdGlvbihlLHQpe3JldHVybih0LWUpL3VjfSxmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRNaW51dGVzKCl9KSxfOD1YMnQsJDJ0PVgydC5yYW5nZTt2YXIgSzJ0PWJyKGZ1bmN0aW9uKGUpe2Uuc2V0VGltZShlLWUuZ2V0TWlsbGlzZWNvbmRzKCktZS5nZXRTZWNvbmRzKCkqUV8tZS5nZXRNaW51dGVzKCkqdWMpfSxmdW5jdGlvbihlLHQpe2Uuc2V0VGltZSgrZSt0KkdiKX0sZnVuY3Rpb24oZSx0KXtyZXR1cm4odC1lKS9HYn0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0SG91cnMoKX0pLHk4PUsydCxaMnQ9SzJ0LnJhbmdlO3ZhciBKMnQ9YnIoZnVuY3Rpb24oZSl7ZS5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24oZSx0KXtlLnNldERhdGUoZS5nZXREYXRlKCkrdCl9LGZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQtZS0odC5nZXRUaW1lem9uZU9mZnNldCgpLWUuZ2V0VGltZXpvbmVPZmZzZXQoKSkqdWMpL204fSxmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXREYXRlKCktMX0pLGV5PUoydCxRMnQ9SjJ0LnJhbmdlO2Z1bmN0aW9uIHJ5KGUpe3JldHVybiBicihmdW5jdGlvbih0KXt0LnNldERhdGUodC5nZXREYXRlKCktKHQuZ2V0RGF5KCkrNy1lKSU3KSx0LnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LHIpe3Quc2V0RGF0ZSh0LmdldERhdGUoKStyKjcpfSxmdW5jdGlvbih0LHIpe3JldHVybihyLXQtKHIuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKnVjKS9nOH0pfXZhciBuZz1yeSgwKSxueT1yeSgxKSxsWD1yeSgyKSxjWD1yeSgzKSxGcD1yeSg0KSx1WD1yeSg1KSxoWD1yeSg2KSxmWD1uZy5yYW5nZSx0d3Q9bnkucmFuZ2UsZXd0PWxYLnJhbmdlLHJ3dD1jWC5yYW5nZSxud3Q9RnAucmFuZ2UsaXd0PXVYLnJhbmdlLG93dD1oWC5yYW5nZTt2YXIgYXd0PWJyKGZ1bmN0aW9uKGUpe2Uuc2V0RGF0ZSgxKSxlLnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbihlLHQpe2Uuc2V0TW9udGgoZS5nZXRNb250aCgpK3QpfSxmdW5jdGlvbihlLHQpe3JldHVybiB0LmdldE1vbnRoKCktZS5nZXRNb250aCgpKyh0LmdldEZ1bGxZZWFyKCktZS5nZXRGdWxsWWVhcigpKSoxMn0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0TW9udGgoKX0pLHY4PWF3dCxzd3Q9YXd0LnJhbmdlO3ZhciBwWD1icihmdW5jdGlvbihlKXtlLnNldE1vbnRoKDAsMSksZS5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24oZSx0KXtlLnNldEZ1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKSt0KX0sZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5nZXRGdWxsWWVhcigpLWUuZ2V0RnVsbFllYXIoKX0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0RnVsbFllYXIoKX0pO3BYLmV2ZXJ5PWZ1bmN0aW9uKGUpe3JldHVybiFpc0Zpbml0ZShlPU1hdGguZmxvb3IoZSkpfHwhKGU+MCk/bnVsbDpicihmdW5jdGlvbih0KXt0LnNldEZ1bGxZZWFyKE1hdGguZmxvb3IodC5nZXRGdWxsWWVhcigpL2UpKmUpLHQuc2V0TW9udGgoMCwxKSx0LnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LHIpe3Quc2V0RnVsbFllYXIodC5nZXRGdWxsWWVhcigpK3IqZSl9KX07dmFyIFdoPXBYLGx3dD1wWC5yYW5nZTt2YXIgY3d0PWJyKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDU2Vjb25kcygwLDApfSxmdW5jdGlvbihlLHQpe2Uuc2V0VGltZSgrZSt0KnVjKX0sZnVuY3Rpb24oZSx0KXtyZXR1cm4odC1lKS91Y30sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0VVRDTWludXRlcygpfSkseDg9Y3d0LHV3dD1jd3QucmFuZ2U7dmFyIGh3dD1icihmdW5jdGlvbihlKXtlLnNldFVUQ01pbnV0ZXMoMCwwLDApfSxmdW5jdGlvbihlLHQpe2Uuc2V0VGltZSgrZSt0KkdiKX0sZnVuY3Rpb24oZSx0KXtyZXR1cm4odC1lKS9HYn0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0VVRDSG91cnMoKX0pLGI4PWh3dCxmd3Q9aHd0LnJhbmdlO3ZhciBwd3Q9YnIoZnVuY3Rpb24oZSl7ZS5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24oZSx0KXtlLnNldFVUQ0RhdGUoZS5nZXRVVENEYXRlKCkrdCl9LGZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQtZSkvbTh9LGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFVUQ0RhdGUoKS0xfSksaXk9cHd0LGR3dD1wd3QucmFuZ2U7ZnVuY3Rpb24gb3koZSl7cmV0dXJuIGJyKGZ1bmN0aW9uKHQpe3Quc2V0VVRDRGF0ZSh0LmdldFVUQ0RhdGUoKS0odC5nZXRVVENEYXkoKSs3LWUpJTcpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQscil7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpK3IqNyl9LGZ1bmN0aW9uKHQscil7cmV0dXJuKHItdCkvZzh9KX12YXIgaWc9b3koMCksYXk9b3koMSksZFg9b3koMiksbVg9b3koMyksQnA9b3koNCksZ1g9b3koNSksX1g9b3koNikseVg9aWcucmFuZ2UsbXd0PWF5LnJhbmdlLGd3dD1kWC5yYW5nZSxfd3Q9bVgucmFuZ2UseXd0PUJwLnJhbmdlLHZ3dD1nWC5yYW5nZSx4d3Q9X1gucmFuZ2U7dmFyIGJ3dD1icihmdW5jdGlvbihlKXtlLnNldFVUQ0RhdGUoMSksZS5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24oZSx0KXtlLnNldFVUQ01vbnRoKGUuZ2V0VVRDTW9udGgoKSt0KX0sZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5nZXRVVENNb250aCgpLWUuZ2V0VVRDTW9udGgoKSsodC5nZXRVVENGdWxsWWVhcigpLWUuZ2V0VVRDRnVsbFllYXIoKSkqMTJ9LGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFVUQ01vbnRoKCl9KSx3OD1id3Qsd3d0PWJ3dC5yYW5nZTt2YXIgdlg9YnIoZnVuY3Rpb24oZSl7ZS5zZXRVVENNb250aCgwLDEpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKGUsdCl7ZS5zZXRVVENGdWxsWWVhcihlLmdldFVUQ0Z1bGxZZWFyKCkrdCl9LGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuZ2V0VVRDRnVsbFllYXIoKS1lLmdldFVUQ0Z1bGxZZWFyKCl9LGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFVUQ0Z1bGxZZWFyKCl9KTt2WC5ldmVyeT1mdW5jdGlvbihlKXtyZXR1cm4haXNGaW5pdGUoZT1NYXRoLmZsb29yKGUpKXx8IShlPjApP251bGw6YnIoZnVuY3Rpb24odCl7dC5zZXRVVENGdWxsWWVhcihNYXRoLmZsb29yKHQuZ2V0VVRDRnVsbFllYXIoKS9lKSplKSx0LnNldFVUQ01vbnRoKDAsMSksdC5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxyKXt0LnNldFVUQ0Z1bGxZZWFyKHQuZ2V0VVRDRnVsbFllYXIoKStyKmUpfSl9O3ZhciBZaD12WCxTd3Q9dlgucmFuZ2U7ZnVuY3Rpb24geFgoZSl7aWYoMDw9ZS55JiZlLnk8MTAwKXt2YXIgdD1uZXcgRGF0ZSgtMSxlLm0sZS5kLGUuSCxlLk0sZS5TLGUuTCk7cmV0dXJuIHQuc2V0RnVsbFllYXIoZS55KSx0fXJldHVybiBuZXcgRGF0ZShlLnksZS5tLGUuZCxlLkgsZS5NLGUuUyxlLkwpfWZ1bmN0aW9uIGJYKGUpe2lmKDA8PWUueSYmZS55PDEwMCl7dmFyIHQ9bmV3IERhdGUoRGF0ZS5VVEMoLTEsZS5tLGUuZCxlLkgsZS5NLGUuUyxlLkwpKTtyZXR1cm4gdC5zZXRVVENGdWxsWWVhcihlLnkpLHR9cmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKGUueSxlLm0sZS5kLGUuSCxlLk0sZS5TLGUuTCkpfWZ1bmN0aW9uIHg1KGUsdCxyKXtyZXR1cm57eTplLG06dCxkOnIsSDowLE06MCxTOjAsTDowfX1mdW5jdGlvbiBTNShlKXt2YXIgdD1lLmRhdGVUaW1lLHI9ZS5kYXRlLG49ZS50aW1lLGk9ZS5wZXJpb2RzLG89ZS5kYXlzLGE9ZS5zaG9ydERheXMscz1lLm1vbnRocyxsPWUuc2hvcnRNb250aHMsYz1iNShpKSx1PXc1KGkpLGg9YjUobyksZj13NShvKSxwPWI1KGEpLGQ9dzUoYSksZz1iNShzKSxfPXc1KHMpLHk9YjUobCkseD13NShsKSxiPXthOlcsQTpaLGI6cnQsQjpvdCxjOm51bGwsZDpQd3QsZTpQd3QsZjpqTWUsZzpuRWUsRzpvRWUsSDpHTWUsSTpXTWUsajpZTWUsTDpOd3QsbTpYTWUsTTokTWUscDpzdCxxOlN0LFE6a3d0LHM6Und0LFM6S01lLHU6Wk1lLFU6Sk1lLFY6UU1lLHc6dEVlLFc6ZUVlLHg6bnVsbCxYOm51bGwseTpyRWUsWTppRWUsWjphRWUsIiUiOkx3dH0sUz17YTpidCxBOk10LGI6bHQsQjpLdCxjOm51bGwsZDpJd3QsZTpJd3QsZjp1RWUsZzp4RWUsRzp3RWUsSDpzRWUsSTpsRWUsajpjRWUsTDpPd3QsbTpoRWUsTTpmRWUscDpfdCxxOmN0LFE6a3d0LHM6Und0LFM6cEVlLHU6ZEVlLFU6bUVlLFY6Z0VlLHc6X0VlLFc6eUVlLHg6bnVsbCxYOm51bGwseTp2RWUsWTpiRWUsWjpTRWUsIiUiOkx3dH0sQz17YTpCLEE6SSxiOkwsQjpSLGM6RixkOkN3dCxlOkN3dCxmOkhNZSxnOlR3dCxHOkV3dCxIOkF3dCxJOkF3dCxqOk9NZSxMOkJNZSxtOkRNZSxNOnpNZSxwOkQscTpOTWUsUTpVTWUsczpxTWUsUzpGTWUsdTpQTWUsVTpJTWUsVjpMTWUsdzpBTWUsVzprTWUseDp6LFg6VSx5OlR3dCxZOkV3dCxaOlJNZSwiJSI6Vk1lfTtiLng9UChyLGIpLGIuWD1QKG4sYiksYi5jPVAodCxiKSxTLng9UChyLFMpLFMuWD1QKG4sUyksUy5jPVAodCxTKTtmdW5jdGlvbiBQKFgsZXQpe3JldHVybiBmdW5jdGlvbihkdCl7dmFyIHE9W10scHQ9LTEsaHQ9MCx3dD1YLmxlbmd0aCxrdCxpZSxlZTtmb3IoZHQgaW5zdGFuY2VvZiBEYXRlfHwoZHQ9bmV3IERhdGUoK2R0KSk7KytwdDx3dDspWC5jaGFyQ29kZUF0KHB0KT09PTM3JiYocS5wdXNoKFguc2xpY2UoaHQscHQpKSwoaWU9TXd0W2t0PVguY2hhckF0KCsrcHQpXSkhPW51bGw/a3Q9WC5jaGFyQXQoKytwdCk6aWU9a3Q9PT0iZSI/IiAiOiIwIiwoZWU9ZXRba3RdKSYmKGt0PWVlKGR0LGllKSkscS5wdXNoKGt0KSxodD1wdCsxKTtyZXR1cm4gcS5wdXNoKFguc2xpY2UoaHQscHQpKSxxLmpvaW4oIiIpfX1mdW5jdGlvbiBrKFgsZXQpe3JldHVybiBmdW5jdGlvbihkdCl7dmFyIHE9eDUoMTkwMCx2b2lkIDAsMSkscHQ9TyhxLFgsZHQrPSIiLDApLGh0LHd0O2lmKHB0IT1kdC5sZW5ndGgpcmV0dXJuIG51bGw7aWYoIlEiaW4gcSlyZXR1cm4gbmV3IERhdGUocS5RKTtpZigicyJpbiBxKXJldHVybiBuZXcgRGF0ZShxLnMqMWUzKygiTCJpbiBxP3EuTDowKSk7aWYoZXQmJiEoIloiaW4gcSkmJihxLlo9MCksInAiaW4gcSYmKHEuSD1xLkglMTIrcS5wKjEyKSxxLm09PT12b2lkIDAmJihxLm09InEiaW4gcT9xLnE6MCksIlYiaW4gcSl7aWYocS5WPDF8fHEuVj41MylyZXR1cm4gbnVsbDsidyJpbiBxfHwocS53PTEpLCJaImluIHE/KGh0PWJYKHg1KHEueSwwLDEpKSx3dD1odC5nZXRVVENEYXkoKSxodD13dD40fHx3dD09PTA/YXkuY2VpbChodCk6YXkoaHQpLGh0PWl5Lm9mZnNldChodCwocS5WLTEpKjcpLHEueT1odC5nZXRVVENGdWxsWWVhcigpLHEubT1odC5nZXRVVENNb250aCgpLHEuZD1odC5nZXRVVENEYXRlKCkrKHEudys2KSU3KTooaHQ9eFgoeDUocS55LDAsMSkpLHd0PWh0LmdldERheSgpLGh0PXd0PjR8fHd0PT09MD9ueS5jZWlsKGh0KTpueShodCksaHQ9ZXkub2Zmc2V0KGh0LChxLlYtMSkqNykscS55PWh0LmdldEZ1bGxZZWFyKCkscS5tPWh0LmdldE1vbnRoKCkscS5kPWh0LmdldERhdGUoKSsocS53KzYpJTcpfWVsc2UoIlciaW4gcXx8IlUiaW4gcSkmJigidyJpbiBxfHwocS53PSJ1ImluIHE/cS51JTc6IlciaW4gcT8xOjApLHd0PSJaImluIHE/YlgoeDUocS55LDAsMSkpLmdldFVUQ0RheSgpOnhYKHg1KHEueSwwLDEpKS5nZXREYXkoKSxxLm09MCxxLmQ9IlciaW4gcT8ocS53KzYpJTcrcS5XKjctKHd0KzUpJTc6cS53K3EuVSo3LSh3dCs2KSU3KTtyZXR1cm4iWiJpbiBxPyhxLkgrPXEuWi8xMDB8MCxxLk0rPXEuWiUxMDAsYlgocSkpOnhYKHEpfX1mdW5jdGlvbiBPKFgsZXQsZHQscSl7Zm9yKHZhciBwdD0wLGh0PWV0Lmxlbmd0aCx3dD1kdC5sZW5ndGgsa3QsaWU7cHQ8aHQ7KXtpZihxPj13dClyZXR1cm4tMTtpZihrdD1ldC5jaGFyQ29kZUF0KHB0KyspLGt0PT09Mzcpe2lmKGt0PWV0LmNoYXJBdChwdCsrKSxpZT1DW2t0IGluIE13dD9ldC5jaGFyQXQocHQrKyk6a3RdLCFpZXx8KHE9aWUoWCxkdCxxKSk8MClyZXR1cm4tMX1lbHNlIGlmKGt0IT1kdC5jaGFyQ29kZUF0KHErKykpcmV0dXJuLTF9cmV0dXJuIHF9ZnVuY3Rpb24gRChYLGV0LGR0KXt2YXIgcT1jLmV4ZWMoZXQuc2xpY2UoZHQpKTtyZXR1cm4gcT8oWC5wPXVbcVswXS50b0xvd2VyQ2FzZSgpXSxkdCtxWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQihYLGV0LGR0KXt2YXIgcT1wLmV4ZWMoZXQuc2xpY2UoZHQpKTtyZXR1cm4gcT8oWC53PWRbcVswXS50b0xvd2VyQ2FzZSgpXSxkdCtxWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gSShYLGV0LGR0KXt2YXIgcT1oLmV4ZWMoZXQuc2xpY2UoZHQpKTtyZXR1cm4gcT8oWC53PWZbcVswXS50b0xvd2VyQ2FzZSgpXSxkdCtxWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gTChYLGV0LGR0KXt2YXIgcT15LmV4ZWMoZXQuc2xpY2UoZHQpKTtyZXR1cm4gcT8oWC5tPXhbcVswXS50b0xvd2VyQ2FzZSgpXSxkdCtxWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gUihYLGV0LGR0KXt2YXIgcT1nLmV4ZWMoZXQuc2xpY2UoZHQpKTtyZXR1cm4gcT8oWC5tPV9bcVswXS50b0xvd2VyQ2FzZSgpXSxkdCtxWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gRihYLGV0LGR0KXtyZXR1cm4gTyhYLHQsZXQsZHQpfWZ1bmN0aW9uIHooWCxldCxkdCl7cmV0dXJuIE8oWCxyLGV0LGR0KX1mdW5jdGlvbiBVKFgsZXQsZHQpe3JldHVybiBPKFgsbixldCxkdCl9ZnVuY3Rpb24gVyhYKXtyZXR1cm4gYVtYLmdldERheSgpXX1mdW5jdGlvbiBaKFgpe3JldHVybiBvW1guZ2V0RGF5KCldfWZ1bmN0aW9uIHJ0KFgpe3JldHVybiBsW1guZ2V0TW9udGgoKV19ZnVuY3Rpb24gb3QoWCl7cmV0dXJuIHNbWC5nZXRNb250aCgpXX1mdW5jdGlvbiBzdChYKXtyZXR1cm4gaVsrKFguZ2V0SG91cnMoKT49MTIpXX1mdW5jdGlvbiBTdChYKXtyZXR1cm4gMSt+fihYLmdldE1vbnRoKCkvMyl9ZnVuY3Rpb24gYnQoWCl7cmV0dXJuIGFbWC5nZXRVVENEYXkoKV19ZnVuY3Rpb24gTXQoWCl7cmV0dXJuIG9bWC5nZXRVVENEYXkoKV19ZnVuY3Rpb24gbHQoWCl7cmV0dXJuIGxbWC5nZXRVVENNb250aCgpXX1mdW5jdGlvbiBLdChYKXtyZXR1cm4gc1tYLmdldFVUQ01vbnRoKCldfWZ1bmN0aW9uIF90KFgpe3JldHVybiBpWysoWC5nZXRVVENIb3VycygpPj0xMildfWZ1bmN0aW9uIGN0KFgpe3JldHVybiAxK35+KFguZ2V0VVRDTW9udGgoKS8zKX1yZXR1cm57Zm9ybWF0OmZ1bmN0aW9uKFgpe3ZhciBldD1QKFgrPSIiLGIpO3JldHVybiBldC50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBYfSxldH0scGFyc2U6ZnVuY3Rpb24oWCl7dmFyIGV0PWsoWCs9IiIsITEpO3JldHVybiBldC50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBYfSxldH0sdXRjRm9ybWF0OmZ1bmN0aW9uKFgpe3ZhciBldD1QKFgrPSIiLFMpO3JldHVybiBldC50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBYfSxldH0sdXRjUGFyc2U6ZnVuY3Rpb24oWCl7dmFyIGV0PWsoWCs9IiIsITApO3JldHVybiBldC50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBYfSxldH19fXZhciBNd3Q9eyItIjoiIixfOiIgIiwwOiIwIn0seG89L15ccypcZCsvLEVNZT0vXiUvLFRNZT0vW1xcXiQqKz98W1xdKCkue31dL2c7ZnVuY3Rpb24gQnIoZSx0LHIpe3ZhciBuPWU8MD8iLSI6IiIsaT0obj8tZTplKSsiIixvPWkubGVuZ3RoO3JldHVybiBuKyhvPHI/bmV3IEFycmF5KHItbysxKS5qb2luKHQpK2k6aSl9ZnVuY3Rpb24gQ01lKGUpe3JldHVybiBlLnJlcGxhY2UoVE1lLCJcXCQmIil9ZnVuY3Rpb24gYjUoZSl7cmV0dXJuIG5ldyBSZWdFeHAoIl4oPzoiK2UubWFwKENNZSkuam9pbigifCIpKyIpIiwiaSIpfWZ1bmN0aW9uIHc1KGUpe2Zvcih2YXIgdD17fSxyPS0xLG49ZS5sZW5ndGg7KytyPG47KXRbZVtyXS50b0xvd2VyQ2FzZSgpXT1yO3JldHVybiB0fWZ1bmN0aW9uIEFNZShlLHQscil7dmFyIG49eG8uZXhlYyh0LnNsaWNlKHIscisxKSk7cmV0dXJuIG4/KGUudz0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBQTWUoZSx0LHIpe3ZhciBuPXhvLmV4ZWModC5zbGljZShyLHIrMSkpO3JldHVybiBuPyhlLnU9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gSU1lKGUsdCxyKXt2YXIgbj14by5leGVjKHQuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8oZS5VPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIExNZShlLHQscil7dmFyIG49eG8uZXhlYyh0LnNsaWNlKHIscisyKSk7cmV0dXJuIG4/KGUuVj0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBrTWUoZSx0LHIpe3ZhciBuPXhvLmV4ZWModC5zbGljZShyLHIrMikpO3JldHVybiBuPyhlLlc9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gRXd0KGUsdCxyKXt2YXIgbj14by5leGVjKHQuc2xpY2UocixyKzQpKTtyZXR1cm4gbj8oZS55PStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFR3dChlLHQscil7dmFyIG49eG8uZXhlYyh0LnNsaWNlKHIscisyKSk7cmV0dXJuIG4/KGUueT0rblswXSsoK25bMF0+Njg/MTkwMDoyZTMpLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFJNZShlLHQscil7dmFyIG49L14oWil8KFsrLV1cZFxkKSg/Ojo/KFxkXGQpKT8vLmV4ZWModC5zbGljZShyLHIrNikpO3JldHVybiBuPyhlLlo9blsxXT8wOi0oblsyXSsoblszXXx8IjAwIikpLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIE5NZShlLHQscil7dmFyIG49eG8uZXhlYyh0LnNsaWNlKHIscisxKSk7cmV0dXJuIG4/KGUucT1uWzBdKjMtMyxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBETWUoZSx0LHIpe3ZhciBuPXhvLmV4ZWModC5zbGljZShyLHIrMikpO3JldHVybiBuPyhlLm09blswXS0xLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEN3dChlLHQscil7dmFyIG49eG8uZXhlYyh0LnNsaWNlKHIscisyKSk7cmV0dXJuIG4/KGUuZD0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBPTWUoZSx0LHIpe3ZhciBuPXhvLmV4ZWModC5zbGljZShyLHIrMykpO3JldHVybiBuPyhlLm09MCxlLmQ9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQXd0KGUsdCxyKXt2YXIgbj14by5leGVjKHQuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8oZS5IPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHpNZShlLHQscil7dmFyIG49eG8uZXhlYyh0LnNsaWNlKHIscisyKSk7cmV0dXJuIG4/KGUuTT0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBGTWUoZSx0LHIpe3ZhciBuPXhvLmV4ZWModC5zbGljZShyLHIrMikpO3JldHVybiBuPyhlLlM9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQk1lKGUsdCxyKXt2YXIgbj14by5leGVjKHQuc2xpY2UocixyKzMpKTtyZXR1cm4gbj8oZS5MPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEhNZShlLHQscil7dmFyIG49eG8uZXhlYyh0LnNsaWNlKHIscis2KSk7cmV0dXJuIG4/KGUuTD1NYXRoLmZsb29yKG5bMF0vMWUzKSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBWTWUoZSx0LHIpe3ZhciBuPUVNZS5leGVjKHQuc2xpY2UocixyKzEpKTtyZXR1cm4gbj9yK25bMF0ubGVuZ3RoOi0xfWZ1bmN0aW9uIFVNZShlLHQscil7dmFyIG49eG8uZXhlYyh0LnNsaWNlKHIpKTtyZXR1cm4gbj8oZS5RPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHFNZShlLHQscil7dmFyIG49eG8uZXhlYyh0LnNsaWNlKHIpKTtyZXR1cm4gbj8oZS5zPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFB3dChlLHQpe3JldHVybiBCcihlLmdldERhdGUoKSx0LDIpfWZ1bmN0aW9uIEdNZShlLHQpe3JldHVybiBCcihlLmdldEhvdXJzKCksdCwyKX1mdW5jdGlvbiBXTWUoZSx0KXtyZXR1cm4gQnIoZS5nZXRIb3VycygpJTEyfHwxMix0LDIpfWZ1bmN0aW9uIFlNZShlLHQpe3JldHVybiBCcigxK2V5LmNvdW50KFdoKGUpLGUpLHQsMyl9ZnVuY3Rpb24gTnd0KGUsdCl7cmV0dXJuIEJyKGUuZ2V0TWlsbGlzZWNvbmRzKCksdCwzKX1mdW5jdGlvbiBqTWUoZSx0KXtyZXR1cm4gTnd0KGUsdCkrIjAwMCJ9ZnVuY3Rpb24gWE1lKGUsdCl7cmV0dXJuIEJyKGUuZ2V0TW9udGgoKSsxLHQsMil9ZnVuY3Rpb24gJE1lKGUsdCl7cmV0dXJuIEJyKGUuZ2V0TWludXRlcygpLHQsMil9ZnVuY3Rpb24gS01lKGUsdCl7cmV0dXJuIEJyKGUuZ2V0U2Vjb25kcygpLHQsMil9ZnVuY3Rpb24gWk1lKGUpe3ZhciB0PWUuZ2V0RGF5KCk7cmV0dXJuIHQ9PT0wPzc6dH1mdW5jdGlvbiBKTWUoZSx0KXtyZXR1cm4gQnIobmcuY291bnQoV2goZSktMSxlKSx0LDIpfWZ1bmN0aW9uIER3dChlKXt2YXIgdD1lLmdldERheSgpO3JldHVybiB0Pj00fHx0PT09MD9GcChlKTpGcC5jZWlsKGUpfWZ1bmN0aW9uIFFNZShlLHQpe3JldHVybiBlPUR3dChlKSxCcihGcC5jb3VudChXaChlKSxlKSsoV2goZSkuZ2V0RGF5KCk9PT00KSx0LDIpfWZ1bmN0aW9uIHRFZShlKXtyZXR1cm4gZS5nZXREYXkoKX1mdW5jdGlvbiBlRWUoZSx0KXtyZXR1cm4gQnIobnkuY291bnQoV2goZSktMSxlKSx0LDIpfWZ1bmN0aW9uIHJFZShlLHQpe3JldHVybiBCcihlLmdldEZ1bGxZZWFyKCklMTAwLHQsMil9ZnVuY3Rpb24gbkVlKGUsdCl7cmV0dXJuIGU9RHd0KGUpLEJyKGUuZ2V0RnVsbFllYXIoKSUxMDAsdCwyKX1mdW5jdGlvbiBpRWUoZSx0KXtyZXR1cm4gQnIoZS5nZXRGdWxsWWVhcigpJTFlNCx0LDQpfWZ1bmN0aW9uIG9FZShlLHQpe3ZhciByPWUuZ2V0RGF5KCk7cmV0dXJuIGU9cj49NHx8cj09PTA/RnAoZSk6RnAuY2VpbChlKSxCcihlLmdldEZ1bGxZZWFyKCklMWU0LHQsNCl9ZnVuY3Rpb24gYUVlKGUpe3ZhciB0PWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtyZXR1cm4odD4wPyItIjoodCo9LTEsIisiKSkrQnIodC82MHwwLCIwIiwyKStCcih0JTYwLCIwIiwyKX1mdW5jdGlvbiBJd3QoZSx0KXtyZXR1cm4gQnIoZS5nZXRVVENEYXRlKCksdCwyKX1mdW5jdGlvbiBzRWUoZSx0KXtyZXR1cm4gQnIoZS5nZXRVVENIb3VycygpLHQsMil9ZnVuY3Rpb24gbEVlKGUsdCl7cmV0dXJuIEJyKGUuZ2V0VVRDSG91cnMoKSUxMnx8MTIsdCwyKX1mdW5jdGlvbiBjRWUoZSx0KXtyZXR1cm4gQnIoMStpeS5jb3VudChZaChlKSxlKSx0LDMpfWZ1bmN0aW9uIE93dChlLHQpe3JldHVybiBCcihlLmdldFVUQ01pbGxpc2Vjb25kcygpLHQsMyl9ZnVuY3Rpb24gdUVlKGUsdCl7cmV0dXJuIE93dChlLHQpKyIwMDAifWZ1bmN0aW9uIGhFZShlLHQpe3JldHVybiBCcihlLmdldFVUQ01vbnRoKCkrMSx0LDIpfWZ1bmN0aW9uIGZFZShlLHQpe3JldHVybiBCcihlLmdldFVUQ01pbnV0ZXMoKSx0LDIpfWZ1bmN0aW9uIHBFZShlLHQpe3JldHVybiBCcihlLmdldFVUQ1NlY29uZHMoKSx0LDIpfWZ1bmN0aW9uIGRFZShlKXt2YXIgdD1lLmdldFVUQ0RheSgpO3JldHVybiB0PT09MD83OnR9ZnVuY3Rpb24gbUVlKGUsdCl7cmV0dXJuIEJyKGlnLmNvdW50KFloKGUpLTEsZSksdCwyKX1mdW5jdGlvbiB6d3QoZSl7dmFyIHQ9ZS5nZXRVVENEYXkoKTtyZXR1cm4gdD49NHx8dD09PTA/QnAoZSk6QnAuY2VpbChlKX1mdW5jdGlvbiBnRWUoZSx0KXtyZXR1cm4gZT16d3QoZSksQnIoQnAuY291bnQoWWgoZSksZSkrKFloKGUpLmdldFVUQ0RheSgpPT09NCksdCwyKX1mdW5jdGlvbiBfRWUoZSl7cmV0dXJuIGUuZ2V0VVRDRGF5KCl9ZnVuY3Rpb24geUVlKGUsdCl7cmV0dXJuIEJyKGF5LmNvdW50KFloKGUpLTEsZSksdCwyKX1mdW5jdGlvbiB2RWUoZSx0KXtyZXR1cm4gQnIoZS5nZXRVVENGdWxsWWVhcigpJTEwMCx0LDIpfWZ1bmN0aW9uIHhFZShlLHQpe3JldHVybiBlPXp3dChlKSxCcihlLmdldFVUQ0Z1bGxZZWFyKCklMTAwLHQsMil9ZnVuY3Rpb24gYkVlKGUsdCl7cmV0dXJuIEJyKGUuZ2V0VVRDRnVsbFllYXIoKSUxZTQsdCw0KX1mdW5jdGlvbiB3RWUoZSx0KXt2YXIgcj1lLmdldFVUQ0RheSgpO3JldHVybiBlPXI+PTR8fHI9PT0wP0JwKGUpOkJwLmNlaWwoZSksQnIoZS5nZXRVVENGdWxsWWVhcigpJTFlNCx0LDQpfWZ1bmN0aW9uIFNFZSgpe3JldHVybiIrMDAwMCJ9ZnVuY3Rpb24gTHd0KCl7cmV0dXJuIiUifWZ1bmN0aW9uIGt3dChlKXtyZXR1cm4rZX1mdW5jdGlvbiBSd3QoZSl7cmV0dXJuIE1hdGguZmxvb3IoK2UvMWUzKX12YXIgV2IsTTUsd1gsc3ksRTU7Uzgoe2RhdGVUaW1lOiIleCwgJVgiLGRhdGU6IiUtbS8lLWQvJVkiLHRpbWU6IiUtSTolTTolUyAlcCIscGVyaW9kczpbIkFNIiwiUE0iXSxkYXlzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxzaG9ydERheXM6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHNob3J0TW9udGhzOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl19KTtmdW5jdGlvbiBTOChlKXtyZXR1cm4gV2I9UzUoZSksTTU9V2IuZm9ybWF0LHdYPVdiLnBhcnNlLHN5PVdiLnV0Y0Zvcm1hdCxFNT1XYi51dGNQYXJzZSxXYn12YXIgU1g9IiVZLSVtLSVkVCVIOiVNOiVTLiVMWiI7ZnVuY3Rpb24gTUVlKGUpe3JldHVybiBlLnRvSVNPU3RyaW5nKCl9dmFyIEVFZT1EYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZz9NRWU6c3koU1gpLEZ3dD1FRWU7ZnVuY3Rpb24gVEVlKGUpe3ZhciB0PW5ldyBEYXRlKGUpO3JldHVybiBpc05hTih0KT9udWxsOnR9dmFyIENFZT0rbmV3IERhdGUoIjIwMDAtMDEtMDFUMDA6MDA6MDAuMDAwWiIpP1RFZTpFNShTWCksQnd0PUNFZTt2YXIgVDU9MWUzLEM1PVQ1KjYwLEE1PUM1KjYwLFA1PUE1KjI0LEFFZT1QNSo3LEh3dD1QNSozMCxNWD1QNSozNjU7ZnVuY3Rpb24gUEVlKGUpe3JldHVybiBuZXcgRGF0ZShlKX1mdW5jdGlvbiBJRWUoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBEYXRlPytlOituZXcgRGF0ZSgrZSl9ZnVuY3Rpb24gTTgoZSx0LHIsbixpLG8sYSxzLGwpe3ZhciBjPWc1KG5pLG5pKSx1PWMuaW52ZXJ0LGg9Yy5kb21haW4sZj1sKCIuJUwiKSxwPWwoIjolUyIpLGQ9bCgiJUk6JU0iKSxnPWwoIiVJICVwIiksXz1sKCIlYSAlZCIpLHk9bCgiJWIgJWQiKSx4PWwoIiVCIiksYj1sKCIlWSIpLFM9W1thLDEsVDVdLFthLDUsNSpUNV0sW2EsMTUsMTUqVDVdLFthLDMwLDMwKlQ1XSxbbywxLEM1XSxbbyw1LDUqQzVdLFtvLDE1LDE1KkM1XSxbbywzMCwzMCpDNV0sW2ksMSxBNV0sW2ksMywzKkE1XSxbaSw2LDYqQTVdLFtpLDEyLDEyKkE1XSxbbiwxLFA1XSxbbiwyLDIqUDVdLFtyLDEsQUVlXSxbdCwxLEh3dF0sW3QsMywzKkh3dF0sW2UsMSxNWF1dO2Z1bmN0aW9uIEMoayl7cmV0dXJuKGEoayk8az9mOm8oayk8az9wOmkoayk8az9kOm4oayk8az9nOnQoayk8az9yKGspPGs/Xzp5OmUoayk8az94OmIpKGspfWZ1bmN0aW9uIFAoayxPLEQsQil7aWYoaz09bnVsbCYmKGs9MTApLHR5cGVvZiBrPT0ibnVtYmVyIil7dmFyIEk9TWF0aC5hYnMoRC1PKS9rLEw9b2IoZnVuY3Rpb24oUil7cmV0dXJuIFJbMl19KS5yaWdodChTLEkpO0w9PT1TLmxlbmd0aD8oQj1lbChPL01YLEQvTVgsayksaz1lKTpMPyhMPVNbSS9TW0wtMV1bMl08U1tMXVsyXS9JP0wtMTpMXSxCPUxbMV0saz1MWzBdKTooQj1NYXRoLm1heChlbChPLEQsayksMSksaz1zKX1yZXR1cm4gQj09bnVsbD9rOmsuZXZlcnkoQil9cmV0dXJuIGMuaW52ZXJ0PWZ1bmN0aW9uKGspe3JldHVybiBuZXcgRGF0ZSh1KGspKX0sYy5kb21haW49ZnVuY3Rpb24oayl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/aCgkXy5jYWxsKGssSUVlKSk6aCgpLm1hcChQRWUpfSxjLnRpY2tzPWZ1bmN0aW9uKGssTyl7dmFyIEQ9aCgpLEI9RFswXSxJPURbRC5sZW5ndGgtMV0sTD1JPEIsUjtyZXR1cm4gTCYmKFI9QixCPUksST1SKSxSPVAoayxCLEksTyksUj1SP1IucmFuZ2UoQixJKzEpOltdLEw/Ui5yZXZlcnNlKCk6Un0sYy50aWNrRm9ybWF0PWZ1bmN0aW9uKGssTyl7cmV0dXJuIE89PW51bGw/QzpsKE8pfSxjLm5pY2U9ZnVuY3Rpb24oayxPKXt2YXIgRD1oKCk7cmV0dXJuKGs9UChrLERbMF0sRFtELmxlbmd0aC0xXSxPKSk/aChoOChELGspKTpjfSxjLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gR2goYyxNOChlLHQscixuLGksbyxhLHMsbCkpfSxjfWZ1bmN0aW9uIFliKCl7cmV0dXJuIGhpLmFwcGx5KE04KFdoLHY4LG5nLGV5LHk4LF84LHR5LEpfLE01KS5kb21haW4oW25ldyBEYXRlKDJlMywwLDEpLG5ldyBEYXRlKDJlMywwLDIpXSksYXJndW1lbnRzKX1mdW5jdGlvbiBWd3QoKXtyZXR1cm4gaGkuYXBwbHkoTTgoWWgsdzgsaWcsaXksYjgseDgsdHksSl8sc3kpLmRvbWFpbihbRGF0ZS5VVEMoMmUzLDAsMSksRGF0ZS5VVEMoMmUzLDAsMildKSxhcmd1bWVudHMpfWZ1bmN0aW9uIEU4KCl7dmFyIGU9MCx0PTEscixuLGksbyxhPW5pLHM9ITEsbDtmdW5jdGlvbiBjKHUpe3JldHVybiBpc05hTih1PSt1KT9sOmEoaT09PTA/LjU6KHU9KG8odSktcikqaSxzP01hdGgubWF4KDAsTWF0aC5taW4oMSx1KSk6dSkpfXJldHVybiBjLmRvbWFpbj1mdW5jdGlvbih1KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1vKGU9K3VbMF0pLG49byh0PSt1WzFdKSxpPXI9PT1uPzA6MS8obi1yKSxjKTpbZSx0XX0sYy5jbGFtcD1mdW5jdGlvbih1KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0hIXUsYyk6c30sYy5pbnRlcnBvbGF0b3I9ZnVuY3Rpb24odSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dSxjKTphfSxjLnVua25vd249ZnVuY3Rpb24odSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9dSxjKTpsfSxmdW5jdGlvbih1KXtyZXR1cm4gbz11LHI9dShlKSxuPXUodCksaT1yPT09bj8wOjEvKG4tciksY319ZnVuY3Rpb24gSHAoZSx0KXtyZXR1cm4gdC5kb21haW4oZS5kb21haW4oKSkuaW50ZXJwb2xhdG9yKGUuaW50ZXJwb2xhdG9yKCkpLmNsYW1wKGUuY2xhbXAoKSkudW5rbm93bihlLnVua25vd24oKSl9ZnVuY3Rpb24gVDgoKXt2YXIgZT1vbChFOCgpKG5pKSk7cmV0dXJuIGUuY29weT1mdW5jdGlvbigpe3JldHVybiBIcChlLFQ4KCkpfSxzYy5hcHBseShlLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRVgoKXt2YXIgZT1fNShFOCgpKS5kb21haW4oWzEsMTBdKTtyZXR1cm4gZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEhwKGUsRVgoKSkuYmFzZShlLmJhc2UoKSl9LHNjLmFwcGx5KGUsYXJndW1lbnRzKX1mdW5jdGlvbiBUWCgpe3ZhciBlPXk1KEU4KCkpO3JldHVybiBlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gSHAoZSxUWCgpKS5jb25zdGFudChlLmNvbnN0YW50KCkpfSxzYy5hcHBseShlLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQzgoKXt2YXIgZT12NShFOCgpKTtyZXR1cm4gZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEhwKGUsQzgoKSkuZXhwb25lbnQoZS5leHBvbmVudCgpKX0sc2MuYXBwbHkoZSxhcmd1bWVudHMpfWZ1bmN0aW9uIFV3dCgpe3JldHVybiBDOC5hcHBseShudWxsLGFyZ3VtZW50cykuZXhwb25lbnQoLjUpfWZ1bmN0aW9uIEE4KCl7dmFyIGU9W10sdD1uaTtmdW5jdGlvbiByKG4pe2lmKCFpc05hTihuPStuKSlyZXR1cm4gdCgodnMoZSxuKS0xKS8oZS5sZW5ndGgtMSkpfXJldHVybiByLmRvbWFpbj1mdW5jdGlvbihuKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZS5zbGljZSgpO2U9W107Zm9yKHZhciBpPTAsbz1uLmxlbmd0aCxhO2k8bzsrK2kpYT1uW2ldLGEhPW51bGwmJiFpc05hTihhPSthKSYmZS5wdXNoKGEpO3JldHVybiBlLnNvcnQoYWEpLHJ9LHIuaW50ZXJwb2xhdG9yPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PW4scik6dH0sci5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEE4KHQpLmRvbWFpbihlKX0sc2MuYXBwbHkocixhcmd1bWVudHMpfWZ1bmN0aW9uIFA4KCl7dmFyIGU9MCx0PS41LHI9MSxuLGksbyxhLHMsbD1uaSxjLHU9ITEsaDtmdW5jdGlvbiBmKHApe3JldHVybiBpc05hTihwPStwKT9oOihwPS41KygocD0rYyhwKSktaSkqKHA8aT9hOnMpLGwodT9NYXRoLm1heCgwLE1hdGgubWluKDEscCkpOnApKX1yZXR1cm4gZi5kb21haW49ZnVuY3Rpb24ocCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49YyhlPStwWzBdKSxpPWModD0rcFsxXSksbz1jKHI9K3BbMl0pLGE9bj09PWk/MDouNS8oaS1uKSxzPWk9PT1vPzA6LjUvKG8taSksZik6W2UsdCxyXX0sZi5jbGFtcD1mdW5jdGlvbihwKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0hIXAsZik6dX0sZi5pbnRlcnBvbGF0b3I9ZnVuY3Rpb24ocCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9cCxmKTpsfSxmLnVua25vd249ZnVuY3Rpb24ocCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9cCxmKTpofSxmdW5jdGlvbihwKXtyZXR1cm4gYz1wLG49cChlKSxpPXAodCksbz1wKHIpLGE9bj09PWk/MDouNS8oaS1uKSxzPWk9PT1vPzA6LjUvKG8taSksZn19ZnVuY3Rpb24gSTgoKXt2YXIgZT1vbChQOCgpKG5pKSk7cmV0dXJuIGUuY29weT1mdW5jdGlvbigpe3JldHVybiBIcChlLEk4KCkpfSxzYy5hcHBseShlLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQ1goKXt2YXIgZT1fNShQOCgpKS5kb21haW4oWy4xLDEsMTBdKTtyZXR1cm4gZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEhwKGUsQ1goKSkuYmFzZShlLmJhc2UoKSl9LHNjLmFwcGx5KGUsYXJndW1lbnRzKX1mdW5jdGlvbiBBWCgpe3ZhciBlPXk1KFA4KCkpO3JldHVybiBlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gSHAoZSxBWCgpKS5jb25zdGFudChlLmNvbnN0YW50KCkpfSxzYy5hcHBseShlLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTDgoKXt2YXIgZT12NShQOCgpKTtyZXR1cm4gZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEhwKGUsTDgoKSkuZXhwb25lbnQoZS5leHBvbmVudCgpKX0sc2MuYXBwbHkoZSxhcmd1bWVudHMpfWZ1bmN0aW9uIHF3dCgpe3JldHVybiBMOC5hcHBseShudWxsLGFyZ3VtZW50cykuZXhwb25lbnQoLjUpfWZ1bmN0aW9uIHRlKGUpe2Zvcih2YXIgdD1lLmxlbmd0aC82fDAscj1uZXcgQXJyYXkodCksbj0wO248dDspcltuXT0iIyIrZS5zbGljZShuKjYsKytuKjYpO3JldHVybiByfXZhciBqYj10ZSgiMWY3N2I0ZmY3ZjBlMmNhMDJjZDYyNzI4OTQ2N2JkOGM1NjRiZTM3N2MyN2Y3ZjdmYmNiZDIyMTdiZWNmIik7dmFyIEd3dD10ZSgiN2ZjOTdmYmVhZWQ0ZmRjMDg2ZmZmZjk5Mzg2Y2IwZjAwMjdmYmY1YjE3NjY2NjY2Iik7dmFyIFd3dD10ZSgiMWI5ZTc3ZDk1ZjAyNzU3MGIzZTcyOThhNjZhNjFlZTZhYjAyYTY3NjFkNjY2NjY2Iik7dmFyIFl3dD10ZSgiYTZjZWUzMWY3OGI0YjJkZjhhMzNhMDJjZmI5YTk5ZTMxYTFjZmRiZjZmZmY3ZjAwY2FiMmQ2NmEzZDlhZmZmZjk5YjE1OTI4Iik7dmFyIGp3dD10ZSgiZmJiNGFlYjNjZGUzY2NlYmM1ZGVjYmU0ZmVkOWE2ZmZmZmNjZTVkOGJkZmRkYWVjZjJmMmYyIik7dmFyIFh3dD10ZSgiYjNlMmNkZmRjZGFjY2JkNWU4ZjRjYWU0ZTZmNWM5ZmZmMmFlZjFlMmNjY2NjY2NjIik7dmFyICR3dD10ZSgiZTQxYTFjMzc3ZWI4NGRhZjRhOTg0ZWEzZmY3ZjAwZmZmZjMzYTY1NjI4Zjc4MWJmOTk5OTk5Iik7dmFyIEt3dD10ZSgiNjZjMmE1ZmM4ZDYyOGRhMGNiZTc4YWMzYTZkODU0ZmZkOTJmZTVjNDk0YjNiM2IzIik7dmFyIFp3dD10ZSgiOGRkM2M3ZmZmZmIzYmViYWRhZmI4MDcyODBiMWQzZmRiNDYyYjNkZTY5ZmNjZGU1ZDlkOWQ5YmM4MGJkY2NlYmM1ZmZlZDZmIik7dmFyIEp3dD10ZSgiNGU3OWE3ZjI4ZTJjZTE1NzU5NzZiN2IyNTlhMTRmZWRjOTQ5YWY3YWExZmY5ZGE3OWM3NTVmYmFiMGFiIik7ZnVuY3Rpb24gSWUoZSl7cmV0dXJuIHVMKGVbZS5sZW5ndGgtMV0pfXZhciBQWD1uZXcgQXJyYXkoMykuY29uY2F0KCJkOGIzNjVmNWY1ZjU1YWI0YWMiLCJhNjYxMWFkZmMyN2Q4MGNkYzEwMTg1NzEiLCJhNjYxMWFkZmMyN2RmNWY1ZjU4MGNkYzEwMTg1NzEiLCI4YzUxMGFkOGIzNjVmNmU4YzNjN2VhZTU1YWI0YWMwMTY2NWUiLCI4YzUxMGFkOGIzNjVmNmU4YzNmNWY1ZjVjN2VhZTU1YWI0YWMwMTY2NWUiLCI4YzUxMGFiZjgxMmRkZmMyN2RmNmU4YzNjN2VhZTU4MGNkYzEzNTk3OGYwMTY2NWUiLCI4YzUxMGFiZjgxMmRkZmMyN2RmNmU4YzNmNWY1ZjVjN2VhZTU4MGNkYzEzNTk3OGYwMTY2NWUiLCI1NDMwMDU4YzUxMGFiZjgxMmRkZmMyN2RmNmU4YzNjN2VhZTU4MGNkYzEzNTk3OGYwMTY2NWUwMDNjMzAiLCI1NDMwMDU4YzUxMGFiZjgxMmRkZmMyN2RmNmU4YzNmNWY1ZjVjN2VhZTU4MGNkYzEzNTk3OGYwMTY2NWUwMDNjMzAiKS5tYXAodGUpLFF3dD1JZShQWCk7dmFyIElYPW5ldyBBcnJheSgzKS5jb25jYXQoImFmOGRjM2Y3ZjdmNzdmYmY3YiIsIjdiMzI5NGMyYTVjZmE2ZGJhMDAwODgzNyIsIjdiMzI5NGMyYTVjZmY3ZjdmN2E2ZGJhMDAwODgzNyIsIjc2MmE4M2FmOGRjM2U3ZDRlOGQ5ZjBkMzdmYmY3YjFiNzgzNyIsIjc2MmE4M2FmOGRjM2U3ZDRlOGY3ZjdmN2Q5ZjBkMzdmYmY3YjFiNzgzNyIsIjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGQ5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNyIsIjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGY3ZjdmN2Q5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNyIsIjQwMDA0Yjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGQ5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNzAwNDQxYiIsIjQwMDA0Yjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGY3ZjdmN2Q5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNzAwNDQxYiIpLm1hcCh0ZSksdFN0PUllKElYKTt2YXIgTFg9bmV3IEFycmF5KDMpLmNvbmNhdCgiZTlhM2M5ZjdmN2Y3YTFkNzZhIiwiZDAxYzhiZjFiNmRhYjhlMTg2NGRhYzI2IiwiZDAxYzhiZjFiNmRhZjdmN2Y3YjhlMTg2NGRhYzI2IiwiYzUxYjdkZTlhM2M5ZmRlMGVmZTZmNWQwYTFkNzZhNGQ5MjIxIiwiYzUxYjdkZTlhM2M5ZmRlMGVmZjdmN2Y3ZTZmNWQwYTFkNzZhNGQ5MjIxIiwiYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxIiwiYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZjdmN2Y3ZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxIiwiOGUwMTUyYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxMjc2NDE5IiwiOGUwMTUyYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZjdmN2Y3ZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxMjc2NDE5IikubWFwKHRlKSxlU3Q9SWUoTFgpO3ZhciBrWD1uZXcgQXJyYXkoMykuY29uY2F0KCI5OThlYzNmN2Y3ZjdmMWEzNDAiLCI1ZTNjOTliMmFiZDJmZGI4NjNlNjYxMDEiLCI1ZTNjOTliMmFiZDJmN2Y3ZjdmZGI4NjNlNjYxMDEiLCI1NDI3ODg5OThlYzNkOGRhZWJmZWUwYjZmMWEzNDBiMzU4MDYiLCI1NDI3ODg5OThlYzNkOGRhZWJmN2Y3ZjdmZWUwYjZmMWEzNDBiMzU4MDYiLCI1NDI3ODg4MDczYWNiMmFiZDJkOGRhZWJmZWUwYjZmZGI4NjNlMDgyMTRiMzU4MDYiLCI1NDI3ODg4MDczYWNiMmFiZDJkOGRhZWJmN2Y3ZjdmZWUwYjZmZGI4NjNlMDgyMTRiMzU4MDYiLCIyZDAwNGI1NDI3ODg4MDczYWNiMmFiZDJkOGRhZWJmZWUwYjZmZGI4NjNlMDgyMTRiMzU4MDY3ZjNiMDgiLCIyZDAwNGI1NDI3ODg4MDczYWNiMmFiZDJkOGRhZWJmN2Y3ZjdmZWUwYjZmZGI4NjNlMDgyMTRiMzU4MDY3ZjNiMDgiKS5tYXAodGUpLHJTdD1JZShrWCk7dmFyIFJYPW5ldyBBcnJheSgzKS5jb25jYXQoImVmOGE2MmY3ZjdmNzY3YTljZiIsImNhMDAyMGY0YTU4MjkyYzVkZTA1NzFiMCIsImNhMDAyMGY0YTU4MmY3ZjdmNzkyYzVkZTA1NzFiMCIsImIyMTgyYmVmOGE2MmZkZGJjN2QxZTVmMDY3YTljZjIxNjZhYyIsImIyMTgyYmVmOGE2MmZkZGJjN2Y3ZjdmN2QxZTVmMDY3YTljZjIxNjZhYyIsImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYyIsImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2Y3ZjdmN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYyIsIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYzA1MzA2MSIsIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2Y3ZjdmN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYzA1MzA2MSIpLm1hcCh0ZSksblN0PUllKFJYKTt2YXIgTlg9bmV3IEFycmF5KDMpLmNvbmNhdCgiZWY4YTYyZmZmZmZmOTk5OTk5IiwiY2EwMDIwZjRhNTgyYmFiYWJhNDA0MDQwIiwiY2EwMDIwZjRhNTgyZmZmZmZmYmFiYWJhNDA0MDQwIiwiYjIxODJiZWY4YTYyZmRkYmM3ZTBlMGUwOTk5OTk5NGQ0ZDRkIiwiYjIxODJiZWY4YTYyZmRkYmM3ZmZmZmZmZTBlMGUwOTk5OTk5NGQ0ZDRkIiwiYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkIiwiYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZmZmZmZmZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkIiwiNjcwMDFmYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkMWExYTFhIiwiNjcwMDFmYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZmZmZmZmZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkMWExYTFhIikubWFwKHRlKSxpU3Q9SWUoTlgpO3ZhciBEWD1uZXcgQXJyYXkoMykuY29uY2F0KCJmYzhkNTlmZmZmYmY5MWJmZGIiLCJkNzE5MWNmZGFlNjFhYmQ5ZTkyYzdiYjYiLCJkNzE5MWNmZGFlNjFmZmZmYmZhYmQ5ZTkyYzdiYjYiLCJkNzMwMjdmYzhkNTlmZWUwOTBlMGYzZjg5MWJmZGI0NTc1YjQiLCJkNzMwMjdmYzhkNTlmZWUwOTBmZmZmYmZlMGYzZjg5MWJmZGI0NTc1YjQiLCJkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOTBlMGYzZjhhYmQ5ZTk3NGFkZDE0NTc1YjQiLCJkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOTBmZmZmYmZlMGYzZjhhYmQ5ZTk3NGFkZDE0NTc1YjQiLCJhNTAwMjZkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOTBlMGYzZjhhYmQ5ZTk3NGFkZDE0NTc1YjQzMTM2OTUiLCJhNTAwMjZkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOTBmZmZmYmZlMGYzZjhhYmQ5ZTk3NGFkZDE0NTc1YjQzMTM2OTUiKS5tYXAodGUpLG9TdD1JZShEWCk7dmFyIE9YPW5ldyBBcnJheSgzKS5jb25jYXQoImZjOGQ1OWZmZmZiZjkxY2Y2MCIsImQ3MTkxY2ZkYWU2MWE2ZDk2YTFhOTY0MSIsImQ3MTkxY2ZkYWU2MWZmZmZiZmE2ZDk2YTFhOTY0MSIsImQ3MzAyN2ZjOGQ1OWZlZTA4YmQ5ZWY4YjkxY2Y2MDFhOTg1MCIsImQ3MzAyN2ZjOGQ1OWZlZTA4YmZmZmZiZmQ5ZWY4YjkxY2Y2MDFhOTg1MCIsImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MCIsImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MCIsImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MDAwNjgzNyIsImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MDAwNjgzNyIpLm1hcCh0ZSksYVN0PUllKE9YKTt2YXIgelg9bmV3IEFycmF5KDMpLmNvbmNhdCgiZmM4ZDU5ZmZmZmJmOTlkNTk0IiwiZDcxOTFjZmRhZTYxYWJkZGE0MmI4M2JhIiwiZDcxOTFjZmRhZTYxZmZmZmJmYWJkZGE0MmI4M2JhIiwiZDUzZTRmZmM4ZDU5ZmVlMDhiZTZmNTk4OTlkNTk0MzI4OGJkIiwiZDUzZTRmZmM4ZDU5ZmVlMDhiZmZmZmJmZTZmNTk4OTlkNTk0MzI4OGJkIiwiZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkIiwiZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZmZmZmJmZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkIiwiOWUwMTQyZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkNWU0ZmEyIiwiOWUwMTQyZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZmZmZmJmZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkNWU0ZmEyIikubWFwKHRlKSxzU3Q9SWUoelgpO3ZhciBGWD1uZXcgQXJyYXkoMykuY29uY2F0KCJlNWY1Zjk5OWQ4YzkyY2EyNWYiLCJlZGY4ZmJiMmUyZTI2NmMyYTQyMzhiNDUiLCJlZGY4ZmJiMmUyZTI2NmMyYTQyY2EyNWYwMDZkMmMiLCJlZGY4ZmJjY2VjZTY5OWQ4Yzk2NmMyYTQyY2EyNWYwMDZkMmMiLCJlZGY4ZmJjY2VjZTY5OWQ4Yzk2NmMyYTQ0MWFlNzYyMzhiNDUwMDU4MjQiLCJmN2ZjZmRlNWY1ZjljY2VjZTY5OWQ4Yzk2NmMyYTQ0MWFlNzYyMzhiNDUwMDU4MjQiLCJmN2ZjZmRlNWY1ZjljY2VjZTY5OWQ4Yzk2NmMyYTQ0MWFlNzYyMzhiNDUwMDZkMmMwMDQ0MWIiKS5tYXAodGUpLGxTdD1JZShGWCk7dmFyIEJYPW5ldyBBcnJheSgzKS5jb25jYXQoImUwZWNmNDllYmNkYTg4NTZhNyIsImVkZjhmYmIzY2RlMzhjOTZjNjg4NDE5ZCIsImVkZjhmYmIzY2RlMzhjOTZjNjg4NTZhNzgxMGY3YyIsImVkZjhmYmJmZDNlNjllYmNkYThjOTZjNjg4NTZhNzgxMGY3YyIsImVkZjhmYmJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDZlMDE2YiIsImY3ZmNmZGUwZWNmNGJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDZlMDE2YiIsImY3ZmNmZGUwZWNmNGJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDgxMGY3YzRkMDA0YiIpLm1hcCh0ZSksY1N0PUllKEJYKTt2YXIgSFg9bmV3IEFycmF5KDMpLmNvbmNhdCgiZTBmM2RiYThkZGI1NDNhMmNhIiwiZjBmOWU4YmFlNGJjN2JjY2M0MmI4Y2JlIiwiZjBmOWU4YmFlNGJjN2JjY2M0NDNhMmNhMDg2OGFjIiwiZjBmOWU4Y2NlYmM1YThkZGI1N2JjY2M0NDNhMmNhMDg2OGFjIiwiZjBmOWU4Y2NlYmM1YThkZGI1N2JjY2M0NGViM2QzMmI4Y2JlMDg1ODllIiwiZjdmY2YwZTBmM2RiY2NlYmM1YThkZGI1N2JjY2M0NGViM2QzMmI4Y2JlMDg1ODllIiwiZjdmY2YwZTBmM2RiY2NlYmM1YThkZGI1N2JjY2M0NGViM2QzMmI4Y2JlMDg2OGFjMDg0MDgxIikubWFwKHRlKSx1U3Q9SWUoSFgpO3ZhciBWWD1uZXcgQXJyYXkoMykuY29uY2F0KCJmZWU4YzhmZGJiODRlMzRhMzMiLCJmZWYwZDlmZGNjOGFmYzhkNTlkNzMwMWYiLCJmZWYwZDlmZGNjOGFmYzhkNTllMzRhMzNiMzAwMDAiLCJmZWYwZDlmZGQ0OWVmZGJiODRmYzhkNTllMzRhMzNiMzAwMDAiLCJmZWYwZDlmZGQ0OWVmZGJiODRmYzhkNTllZjY1NDhkNzMwMWY5OTAwMDAiLCJmZmY3ZWNmZWU4YzhmZGQ0OWVmZGJiODRmYzhkNTllZjY1NDhkNzMwMWY5OTAwMDAiLCJmZmY3ZWNmZWU4YzhmZGQ0OWVmZGJiODRmYzhkNTllZjY1NDhkNzMwMWZiMzAwMDA3ZjAwMDAiKS5tYXAodGUpLGhTdD1JZShWWCk7dmFyIFVYPW5ldyBBcnJheSgzKS5jb25jYXQoImVjZTJmMGE2YmRkYjFjOTA5OSIsImY2ZWZmN2JkYzllMTY3YTljZjAyODE4YSIsImY2ZWZmN2JkYzllMTY3YTljZjFjOTA5OTAxNmM1OSIsImY2ZWZmN2QwZDFlNmE2YmRkYjY3YTljZjFjOTA5OTAxNmM1OSIsImY2ZWZmN2QwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNjQ1MCIsImZmZjdmYmVjZTJmMGQwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNjQ1MCIsImZmZjdmYmVjZTJmMGQwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNmM1OTAxNDYzNiIpLm1hcCh0ZSksZlN0PUllKFVYKTt2YXIgcVg9bmV3IEFycmF5KDMpLmNvbmNhdCgiZWNlN2YyYTZiZGRiMmI4Y2JlIiwiZjFlZWY2YmRjOWUxNzRhOWNmMDU3MGIwIiwiZjFlZWY2YmRjOWUxNzRhOWNmMmI4Y2JlMDQ1YThkIiwiZjFlZWY2ZDBkMWU2YTZiZGRiNzRhOWNmMmI4Y2JlMDQ1YThkIiwiZjFlZWY2ZDBkMWU2YTZiZGRiNzRhOWNmMzY5MGMwMDU3MGIwMDM0ZTdiIiwiZmZmN2ZiZWNlN2YyZDBkMWU2YTZiZGRiNzRhOWNmMzY5MGMwMDU3MGIwMDM0ZTdiIiwiZmZmN2ZiZWNlN2YyZDBkMWU2YTZiZGRiNzRhOWNmMzY5MGMwMDU3MGIwMDQ1YThkMDIzODU4IikubWFwKHRlKSxwU3Q9SWUocVgpO3ZhciBHWD1uZXcgQXJyYXkoMykuY29uY2F0KCJlN2UxZWZjOTk0YzdkZDFjNzciLCJmMWVlZjZkN2I1ZDhkZjY1YjBjZTEyNTYiLCJmMWVlZjZkN2I1ZDhkZjY1YjBkZDFjNzc5ODAwNDMiLCJmMWVlZjZkNGI5ZGFjOTk0YzdkZjY1YjBkZDFjNzc5ODAwNDMiLCJmMWVlZjZkNGI5ZGFjOTk0YzdkZjY1YjBlNzI5OGFjZTEyNTY5MTAwM2YiLCJmN2Y0ZjllN2UxZWZkNGI5ZGFjOTk0YzdkZjY1YjBlNzI5OGFjZTEyNTY5MTAwM2YiLCJmN2Y0ZjllN2UxZWZkNGI5ZGFjOTk0YzdkZjY1YjBlNzI5OGFjZTEyNTY5ODAwNDM2NzAwMWYiKS5tYXAodGUpLGRTdD1JZShHWCk7dmFyIFdYPW5ldyBBcnJheSgzKS5jb25jYXQoImZkZTBkZGZhOWZiNWM1MWI4YSIsImZlZWJlMmZiYjRiOWY3NjhhMWFlMDE3ZSIsImZlZWJlMmZiYjRiOWY3NjhhMWM1MWI4YTdhMDE3NyIsImZlZWJlMmZjYzVjMGZhOWZiNWY3NjhhMWM1MWI4YTdhMDE3NyIsImZlZWJlMmZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3NyIsImZmZjdmM2ZkZTBkZGZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3NyIsImZmZjdmM2ZkZTBkZGZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3NzQ5MDA2YSIpLm1hcCh0ZSksbVN0PUllKFdYKTt2YXIgWVg9bmV3IEFycmF5KDMpLmNvbmNhdCgiZWRmOGIxN2ZjZGJiMmM3ZmI4IiwiZmZmZmNjYTFkYWI0NDFiNmM0MjI1ZWE4IiwiZmZmZmNjYTFkYWI0NDFiNmM0MmM3ZmI4MjUzNDk0IiwiZmZmZmNjYzdlOWI0N2ZjZGJiNDFiNmM0MmM3ZmI4MjUzNDk0IiwiZmZmZmNjYzdlOWI0N2ZjZGJiNDFiNmM0MWQ5MWMwMjI1ZWE4MGMyYzg0IiwiZmZmZmQ5ZWRmOGIxYzdlOWI0N2ZjZGJiNDFiNmM0MWQ5MWMwMjI1ZWE4MGMyYzg0IiwiZmZmZmQ5ZWRmOGIxYzdlOWI0N2ZjZGJiNDFiNmM0MWQ5MWMwMjI1ZWE4MjUzNDk0MDgxZDU4IikubWFwKHRlKSxnU3Q9SWUoWVgpO3ZhciBqWD1uZXcgQXJyYXkoMykuY29uY2F0KCJmN2ZjYjlhZGRkOGUzMWEzNTQiLCJmZmZmY2NjMmU2OTk3OGM2NzkyMzg0NDMiLCJmZmZmY2NjMmU2OTk3OGM2NzkzMWEzNTQwMDY4MzciLCJmZmZmY2NkOWYwYTNhZGRkOGU3OGM2NzkzMWEzNTQwMDY4MzciLCJmZmZmY2NkOWYwYTNhZGRkOGU3OGM2Nzk0MWFiNWQyMzg0NDMwMDVhMzIiLCJmZmZmZTVmN2ZjYjlkOWYwYTNhZGRkOGU3OGM2Nzk0MWFiNWQyMzg0NDMwMDVhMzIiLCJmZmZmZTVmN2ZjYjlkOWYwYTNhZGRkOGU3OGM2Nzk0MWFiNWQyMzg0NDMwMDY4MzcwMDQ1MjkiKS5tYXAodGUpLF9TdD1JZShqWCk7dmFyIFhYPW5ldyBBcnJheSgzKS5jb25jYXQoImZmZjdiY2ZlYzQ0ZmQ5NWYwZSIsImZmZmZkNGZlZDk4ZWZlOTkyOWNjNGMwMiIsImZmZmZkNGZlZDk4ZWZlOTkyOWQ5NWYwZTk5MzQwNCIsImZmZmZkNGZlZTM5MWZlYzQ0ZmZlOTkyOWQ5NWYwZTk5MzQwNCIsImZmZmZkNGZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjhjMmQwNCIsImZmZmZlNWZmZjdiY2ZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjhjMmQwNCIsImZmZmZlNWZmZjdiY2ZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjk5MzQwNDY2MjUwNiIpLm1hcCh0ZSkseVN0PUllKFhYKTt2YXIgJFg9bmV3IEFycmF5KDMpLmNvbmNhdCgiZmZlZGEwZmViMjRjZjAzYjIwIiwiZmZmZmIyZmVjYzVjZmQ4ZDNjZTMxYTFjIiwiZmZmZmIyZmVjYzVjZmQ4ZDNjZjAzYjIwYmQwMDI2IiwiZmZmZmIyZmVkOTc2ZmViMjRjZmQ4ZDNjZjAzYjIwYmQwMDI2IiwiZmZmZmIyZmVkOTc2ZmViMjRjZmQ4ZDNjZmM0ZTJhZTMxYTFjYjEwMDI2IiwiZmZmZmNjZmZlZGEwZmVkOTc2ZmViMjRjZmQ4ZDNjZmM0ZTJhZTMxYTFjYjEwMDI2IiwiZmZmZmNjZmZlZGEwZmVkOTc2ZmViMjRjZmQ4ZDNjZmM0ZTJhZTMxYTFjYmQwMDI2ODAwMDI2IikubWFwKHRlKSx2U3Q9SWUoJFgpO3ZhciBLWD1uZXcgQXJyYXkoMykuY29uY2F0KCJkZWViZjc5ZWNhZTEzMTgyYmQiLCJlZmYzZmZiZGQ3ZTc2YmFlZDYyMTcxYjUiLCJlZmYzZmZiZGQ3ZTc2YmFlZDYzMTgyYmQwODUxOWMiLCJlZmYzZmZjNmRiZWY5ZWNhZTE2YmFlZDYzMTgyYmQwODUxOWMiLCJlZmYzZmZjNmRiZWY5ZWNhZTE2YmFlZDY0MjkyYzYyMTcxYjUwODQ1OTQiLCJmN2ZiZmZkZWViZjdjNmRiZWY5ZWNhZTE2YmFlZDY0MjkyYzYyMTcxYjUwODQ1OTQiLCJmN2ZiZmZkZWViZjdjNmRiZWY5ZWNhZTE2YmFlZDY0MjkyYzYyMTcxYjUwODUxOWMwODMwNmIiKS5tYXAodGUpLHhTdD1JZShLWCk7dmFyIFpYPW5ldyBBcnJheSgzKS5jb25jYXQoImU1ZjVlMGExZDk5YjMxYTM1NCIsImVkZjhlOWJhZTRiMzc0YzQ3NjIzOGI0NSIsImVkZjhlOWJhZTRiMzc0YzQ3NjMxYTM1NDAwNmQyYyIsImVkZjhlOWM3ZTljMGExZDk5Yjc0YzQ3NjMxYTM1NDAwNmQyYyIsImVkZjhlOWM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNWEzMiIsImY3ZmNmNWU1ZjVlMGM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNWEzMiIsImY3ZmNmNWU1ZjVlMGM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNmQyYzAwNDQxYiIpLm1hcCh0ZSksYlN0PUllKFpYKTt2YXIgSlg9bmV3IEFycmF5KDMpLmNvbmNhdCgiZjBmMGYwYmRiZGJkNjM2MzYzIiwiZjdmN2Y3Y2NjY2NjOTY5Njk2NTI1MjUyIiwiZjdmN2Y3Y2NjY2NjOTY5Njk2NjM2MzYzMjUyNTI1IiwiZjdmN2Y3ZDlkOWQ5YmRiZGJkOTY5Njk2NjM2MzYzMjUyNTI1IiwiZjdmN2Y3ZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1IiwiZmZmZmZmZjBmMGYwZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1IiwiZmZmZmZmZjBmMGYwZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1MDAwMDAwIikubWFwKHRlKSx3U3Q9SWUoSlgpO3ZhciBRWD1uZXcgQXJyYXkoMykuY29uY2F0KCJlZmVkZjViY2JkZGM3NTZiYjEiLCJmMmYwZjdjYmM5ZTI5ZTlhYzg2YTUxYTMiLCJmMmYwZjdjYmM5ZTI5ZTlhYzg3NTZiYjE1NDI3OGYiLCJmMmYwZjdkYWRhZWJiY2JkZGM5ZTlhYzg3NTZiYjE1NDI3OGYiLCJmMmYwZjdkYWRhZWJiY2JkZGM5ZTlhYzg4MDdkYmE2YTUxYTM0YTE0ODYiLCJmY2ZiZmRlZmVkZjVkYWRhZWJiY2JkZGM5ZTlhYzg4MDdkYmE2YTUxYTM0YTE0ODYiLCJmY2ZiZmRlZmVkZjVkYWRhZWJiY2JkZGM5ZTlhYzg4MDdkYmE2YTUxYTM1NDI3OGYzZjAwN2QiKS5tYXAodGUpLFNTdD1JZShRWCk7dmFyIHQkPW5ldyBBcnJheSgzKS5jb25jYXQoImZlZTBkMmZjOTI3MmRlMmQyNiIsImZlZTVkOWZjYWU5MWZiNmE0YWNiMTgxZCIsImZlZTVkOWZjYWU5MWZiNmE0YWRlMmQyNmE1MGYxNSIsImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWRlMmQyNmE1MGYxNSIsImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZCIsImZmZjVmMGZlZTBkMmZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZCIsImZmZjVmMGZlZTBkMmZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZGE1MGYxNTY3MDAwZCIpLm1hcCh0ZSksTVN0PUllKHQkKTt2YXIgZSQ9bmV3IEFycmF5KDMpLmNvbmNhdCgiZmVlNmNlZmRhZTZiZTY1NTBkIiwiZmVlZGRlZmRiZTg1ZmQ4ZDNjZDk0NzAxIiwiZmVlZGRlZmRiZTg1ZmQ4ZDNjZTY1NTBkYTYzNjAzIiwiZmVlZGRlZmRkMGEyZmRhZTZiZmQ4ZDNjZTY1NTBkYTYzNjAzIiwiZmVlZGRlZmRkMGEyZmRhZTZiZmQ4ZDNjZjE2OTEzZDk0ODAxOGMyZDA0IiwiZmZmNWViZmVlNmNlZmRkMGEyZmRhZTZiZmQ4ZDNjZjE2OTEzZDk0ODAxOGMyZDA0IiwiZmZmNWViZmVlNmNlZmRkMGEyZmRhZTZiZmQ4ZDNjZjE2OTEzZDk0ODAxYTYzNjAzN2YyNzA0IikubWFwKHRlKSxFU3Q9SWUoZSQpO2Z1bmN0aW9uIFRTdChlKXtyZXR1cm4gZT1NYXRoLm1heCgwLE1hdGgubWluKDEsZSkpLCJyZ2IoIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKC00LjU0LWUqKDM1LjM0LWUqKDIzODEuNzMtZSooNjQwMi43LWUqKDcwMjQuNzItZSoyNzEwLjU3KSkpKSkpKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQoMzIuNDkrZSooMTcwLjczK2UqKDUyLjgyLWUqKDEzMS40Ni1lKigxNzYuNTgtZSo2Ny4zNykpKSkpKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKDgxLjI0K2UqKDQ0Mi4zNi1lKigyNDgyLjQzLWUqKDYxNjcuMjQtZSooNjYxNC45NC1lKjI0NzUuNjcpKSkpKSkpKyIpIn12YXIgQ1N0PVRfKGNhKDMwMCwuNSwwKSxjYSgtMjQwLC41LDEpKTt2YXIgQVN0PVRfKGNhKC0xMDAsLjc1LC4zNSksY2EoODAsMS41LC44KSksUFN0PVRfKGNhKDI2MCwuNzUsLjM1KSxjYSg4MCwxLjUsLjgpKSxrOD1jYSgpO2Z1bmN0aW9uIElTdChlKXsoZTwwfHxlPjEpJiYoZS09TWF0aC5mbG9vcihlKSk7dmFyIHQ9TWF0aC5hYnMoZS0uNSk7cmV0dXJuIGs4Lmg9MzYwKmUtMTAwLGs4LnM9MS41LTEuNSp0LGs4Lmw9LjgtLjkqdCxrOCsiIn12YXIgUjg9Y3UoKSxMRWU9TWF0aC5QSS8zLGtFZT1NYXRoLlBJKjIvMztmdW5jdGlvbiBMU3QoZSl7dmFyIHQ7cmV0dXJuIGU9KC41LWUpKk1hdGguUEksUjgucj0yNTUqKHQ9TWF0aC5zaW4oZSkpKnQsUjguZz0yNTUqKHQ9TWF0aC5zaW4oZStMRWUpKSp0LFI4LmI9MjU1Kih0PU1hdGguc2luKGUra0VlKSkqdCxSOCsiIn1mdW5jdGlvbiBrU3QoZSl7cmV0dXJuIGU9TWF0aC5tYXgoMCxNYXRoLm1pbigxLGUpKSwicmdiKCIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCgzNC42MStlKigxMTcyLjMzLWUqKDEwNzkzLjU2LWUqKDMzMzAwLjEyLWUqKDM4Mzk0LjQ5LWUqMTQ4MjUuMDUpKSkpKSkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCgyMy4zMStlKig1NTcuMzMrZSooMTIyNS4zMy1lKigzNTc0Ljk2LWUqKDEwNzMuNzcrZSo3MDcuNTYpKSkpKSkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCgyNy4yK2UqKDMyMTEuMS1lKigxNTMyNy45Ny1lKigyNzgxNC1lKigyMjU2OS4xOC1lKjY4MzguNjYpKSkpKSkpKyIpIn1mdW5jdGlvbiBOOChlKXt2YXIgdD1lLmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIGVbTWF0aC5tYXgoMCxNYXRoLm1pbih0LTEsTWF0aC5mbG9vcihyKnQpKSldfX12YXIgUlN0PU44KHRlKCI0NDAxNTQ0NDAyNTY0NTA0NTc0NTA1NTk0NjA3NWE0NjA4NWM0NjBhNWQ0NjBiNWU0NzBkNjA0NzBlNjE0NzEwNjM0NzExNjQ0NzEzNjU0ODE0Njc0ODE2Njg0ODE3Njk0ODE4NmE0ODFhNmM0ODFiNmQ0ODFjNmU0ODFkNmY0ODFmNzA0ODIwNzE0ODIxNzM0ODIzNzQ0ODI0NzU0ODI1NzY0ODI2Nzc0ODI4Nzg0ODI5Nzk0NzJhN2E0NzJjN2E0NzJkN2I0NzJlN2M0NzJmN2Q0NjMwN2U0NjMyN2U0NjMzN2Y0NjM0ODA0NTM1ODE0NTM3ODE0NTM4ODI0NDM5ODM0NDNhODM0NDNiODQ0MzNkODQ0MzNlODU0MjNmODU0MjQwODY0MjQxODY0MTQyODc0MTQ0ODc0MDQ1ODg0MDQ2ODgzZjQ3ODgzZjQ4ODkzZTQ5ODkzZTRhODkzZTRjOGEzZDRkOGEzZDRlOGEzYzRmOGEzYzUwOGIzYjUxOGIzYjUyOGIzYTUzOGIzYTU0OGMzOTU1OGMzOTU2OGMzODU4OGMzODU5OGMzNzVhOGMzNzViOGQzNjVjOGQzNjVkOGQzNTVlOGQzNTVmOGQzNDYwOGQzNDYxOGQzMzYyOGQzMzYzOGQzMjY0OGUzMjY1OGUzMTY2OGUzMTY3OGUzMTY4OGUzMDY5OGUzMDZhOGUyZjZiOGUyZjZjOGUyZTZkOGUyZTZlOGUyZTZmOGUyZDcwOGUyZDcxOGUyYzcxOGUyYzcyOGUyYzczOGUyYjc0OGUyYjc1OGUyYTc2OGUyYTc3OGUyYTc4OGUyOTc5OGUyOTdhOGUyOTdiOGUyODdjOGUyODdkOGUyNzdlOGUyNzdmOGUyNzgwOGUyNjgxOGUyNjgyOGUyNjgyOGUyNTgzOGUyNTg0OGUyNTg1OGUyNDg2OGUyNDg3OGUyMzg4OGUyMzg5OGUyMzhhOGQyMjhiOGQyMjhjOGQyMjhkOGQyMThlOGQyMThmOGQyMTkwOGQyMTkxOGMyMDkyOGMyMDkyOGMyMDkzOGMxZjk0OGMxZjk1OGIxZjk2OGIxZjk3OGIxZjk4OGIxZjk5OGExZjlhOGExZTliOGExZTljODkxZTlkODkxZjllODkxZjlmODgxZmEwODgxZmExODgxZmExODcxZmEyODcyMGEzODYyMGE0ODYyMWE1ODUyMWE2ODUyMmE3ODUyMmE4ODQyM2E5ODMyNGFhODMyNWFiODIyNWFjODIyNmFkODEyN2FkODEyOGFlODAyOWFmN2YyYWIwN2YyY2IxN2UyZGIyN2QyZWIzN2MyZmI0N2MzMWI1N2IzMmI2N2EzNGI2NzkzNWI3NzkzN2I4NzgzOGI5NzczYWJhNzYzYmJiNzUzZGJjNzQzZmJjNzM0MGJkNzI0MmJlNzE0NGJmNzA0NmMwNmY0OGMxNmU0YWMxNmQ0Y2MyNmM0ZWMzNmI1MGM0NmE1MmM1Njk1NGM1Njg1NmM2Njc1OGM3NjU1YWM4NjQ1Y2M4NjM1ZWM5NjI2MGNhNjA2M2NiNWY2NWNiNWU2N2NjNWM2OWNkNWI2Y2NkNWE2ZWNlNTg3MGNmNTc3M2QwNTY3NWQwNTQ3N2QxNTM3YWQxNTE3Y2QyNTA3ZmQzNGU4MWQzNGQ4NGQ0NGI4NmQ1NDk4OWQ1NDg4YmQ2NDY4ZWQ2NDU5MGQ3NDM5M2Q3NDE5NWQ4NDA5OGQ4M2U5YmQ5M2M5ZGQ5M2JhMGRhMzlhMmRhMzdhNWRiMzZhOGRiMzRhYWRjMzJhZGRjMzBiMGRkMmZiMmRkMmRiNWRlMmJiOGRlMjliYWRlMjhiZGRmMjZjMGRmMjVjMmRmMjNjNWUwMjFjOGUwMjBjYWUxMWZjZGUxMWRkMGUxMWNkMmUyMWJkNWUyMWFkOGUyMTlkYWUzMTlkZGUzMThkZmUzMThlMmU0MThlNWU0MTllN2U0MTllYWU1MWFlY2U1MWJlZmU1MWNmMWU1MWRmNGU2MWVmNmU2MjBmOGU2MjFmYmU3MjNmZGU3MjUiKSksTlN0PU44KHRlKCIwMDAwMDQwMTAwMDUwMTAxMDYwMTAxMDgwMjAxMDkwMjAyMGIwMjAyMGQwMzAzMGYwMzAzMTIwNDA0MTQwNTA0MTYwNjA1MTgwNjA1MWEwNzA2MWMwODA3MWUwOTA3MjAwYTA4MjIwYjA5MjQwYzA5MjYwZDBhMjkwZTBiMmIxMDBiMmQxMTBjMmYxMjBkMzExMzBkMzQxNDBlMzYxNTBlMzgxNjBmM2IxODBmM2QxOTEwM2YxYTEwNDIxYzEwNDQxZDExNDcxZTExNDkyMDExNGIyMTExNGUyMjExNTAyNDEyNTMyNTEyNTUyNzEyNTgyOTExNWEyYTExNWMyYzExNWYyZDExNjEyZjExNjMzMTExNjUzMzEwNjczNDEwNjkzNjEwNmIzODEwNmMzOTBmNmUzYjBmNzAzZDBmNzEzZjBmNzI0MDBmNzQ0MjBmNzU0NDBmNzY0NTEwNzc0NzEwNzg0OTEwNzg0YTEwNzk0YzExN2E0ZTExN2I0ZjEyN2I1MTEyN2M1MjEzN2M1NDEzN2Q1NjE0N2Q1NzE1N2U1OTE1N2U1YTE2N2U1YzE2N2Y1ZDE3N2Y1ZjE4N2Y2MDE4ODA2MjE5ODA2NDFhODA2NTFhODA2NzFiODA2ODFjODE2YTFjODE2YjFkODE2ZDFkODE2ZTFlODE3MDFmODE3MjFmODE3MzIwODE3NTIxODE3NjIxODE3ODIyODE3OTIyODI3YjIzODI3YzIzODI3ZTI0ODI4MDI1ODI4MTI1ODE4MzI2ODE4NDI2ODE4NjI3ODE4ODI3ODE4OTI4ODE4YjI5ODE4YzI5ODE4ZTJhODE5MDJhODE5MTJiODE5MzJiODA5NDJjODA5NjJjODA5ODJkODA5OTJkODA5YjJlN2Y5YzJlN2Y5ZTJmN2ZhMDJmN2ZhMTMwN2VhMzMwN2VhNTMxN2VhNjMxN2RhODMyN2RhYTMzN2RhYjMzN2NhZDM0N2NhZTM0N2JiMDM1N2JiMjM1N2JiMzM2N2FiNTM2N2FiNzM3NzliODM3NzliYTM4NzhiYzM5NzhiZDM5NzdiZjNhNzdjMDNhNzZjMjNiNzVjNDNjNzVjNTNjNzRjNzNkNzNjODNlNzNjYTNlNzJjYzNmNzFjZDQwNzFjZjQwNzBkMDQxNmZkMjQyNmZkMzQzNmVkNTQ0NmRkNjQ1NmNkODQ1NmNkOTQ2NmJkYjQ3NmFkYzQ4NjlkZTQ5NjhkZjRhNjhlMDRjNjdlMjRkNjZlMzRlNjVlNDRmNjRlNTUwNjRlNzUyNjNlODUzNjJlOTU0NjJlYTU2NjFlYjU3NjBlYzU4NjBlZDVhNWZlZTViNWVlZjVkNWVmMDVmNWVmMTYwNWRmMjYyNWRmMjY0NWNmMzY1NWNmNDY3NWNmNDY5NWNmNTZiNWNmNjZjNWNmNjZlNWNmNzcwNWNmNzcyNWNmODc0NWNmODc2NWNmOTc4NWRmOTc5NWRmOTdiNWRmYTdkNWVmYTdmNWVmYTgxNWZmYjgzNWZmYjg1NjBmYjg3NjFmYzg5NjFmYzhhNjJmYzhjNjNmYzhlNjRmYzkwNjVmZDkyNjZmZDk0NjdmZDk2NjhmZDk4NjlmZDlhNmFmZDliNmJmZTlkNmNmZTlmNmRmZWExNmVmZWEzNmZmZWE1NzFmZWE3NzJmZWE5NzNmZWFhNzRmZWFjNzZmZWFlNzdmZWIwNzhmZWIyN2FmZWI0N2JmZWI2N2NmZWI3N2VmZWI5N2ZmZWJiODFmZWJkODJmZWJmODRmZWMxODVmZWMyODdmZWM0ODhmZWM2OGFmZWM4OGNmZWNhOGRmZWNjOGZmZWNkOTBmZWNmOTJmZWQxOTRmZWQzOTVmZWQ1OTdmZWQ3OTlmZWQ4OWFmZGRhOWNmZGRjOWVmZGRlYTBmZGUwYTFmZGUyYTNmZGUzYTVmZGU1YTdmZGU3YTlmZGU5YWFmZGViYWNmY2VjYWVmY2VlYjBmY2YwYjJmY2YyYjRmY2Y0YjZmY2Y2YjhmY2Y3YjlmY2Y5YmJmY2ZiYmRmY2ZkYmYiKSksRFN0PU44KHRlKCIwMDAwMDQwMTAwMDUwMTAxMDYwMTAxMDgwMjAxMGEwMjAyMGMwMjAyMGUwMzAyMTAwNDAzMTIwNDAzMTQwNTA0MTcwNjA0MTkwNzA1MWIwODA1MWQwOTA2MWYwYTA3MjIwYjA3MjQwYzA4MjYwZDA4MjkwZTA5MmIxMDA5MmQxMTBhMzAxMjBhMzIxNDBiMzQxNTBiMzcxNjBiMzkxODBjM2MxOTBjM2UxYjBjNDExYzBjNDMxZTBjNDUxZjBjNDgyMTBjNGEyMzBjNGMyNDBjNGYyNjBjNTEyODBiNTMyOTBiNTUyYjBiNTcyZDBiNTkyZjBhNWIzMTBhNWMzMjBhNWUzNDBhNWYzNjA5NjEzODA5NjIzOTA5NjMzYjA5NjQzZDA5NjUzZTA5NjY0MDBhNjc0MjBhNjg0NDBhNjg0NTBhNjk0NzBiNmE0OTBiNmE0YTBjNmI0YzBjNmI0ZDBkNmM0ZjBkNmM1MTBlNmM1MjBlNmQ1NDBmNmQ1NTBmNmQ1NzEwNmU1OTEwNmU1YTExNmU1YzEyNmU1ZDEyNmU1ZjEzNmU2MTEzNmU2MjE0NmU2NDE1NmU2NTE1NmU2NzE2NmU2OTE2NmU2YTE3NmU2YzE4NmU2ZDE4NmU2ZjE5NmU3MTE5NmU3MjFhNmU3NDFhNmU3NTFiNmU3NzFjNmQ3ODFjNmQ3YTFkNmQ3YzFkNmQ3ZDFlNmQ3ZjFlNmM4MDFmNmM4MjIwNmM4NDIwNmI4NTIxNmI4NzIxNmI4ODIyNmE4YTIyNmE4YzIzNjk4ZDIzNjk4ZjI0Njk5MDI1Njg5MjI1Njg5MzI2Njc5NTI2Njc5NzI3NjY5ODI3NjY5YTI4NjU5YjI5NjQ5ZDI5NjQ5ZjJhNjNhMDJhNjNhMjJiNjJhMzJjNjFhNTJjNjBhNjJkNjBhODJlNWZhOTJlNWVhYjJmNWVhZDMwNWRhZTMwNWNiMDMxNWJiMTMyNWFiMzMyNWFiNDMzNTliNjM0NThiNzM1NTdiOTM1NTZiYTM2NTViYzM3NTRiZDM4NTNiZjM5NTJjMDNhNTFjMTNhNTBjMzNiNGZjNDNjNGVjNjNkNGRjNzNlNGNjODNmNGJjYTQwNGFjYjQxNDljYzQyNDhjZTQzNDdjZjQ0NDZkMDQ1NDVkMjQ2NDRkMzQ3NDNkNDQ4NDJkNTRhNDFkNzRiM2ZkODRjM2VkOTRkM2RkYTRlM2NkYjUwM2JkZDUxM2FkZTUyMzhkZjUzMzdlMDU1MzZlMTU2MzVlMjU3MzRlMzU5MzNlNDVhMzFlNTVjMzBlNjVkMmZlNzVlMmVlODYwMmRlOTYxMmJlYTYzMmFlYjY0MjllYjY2MjhlYzY3MjZlZDY5MjVlZTZhMjRlZjZjMjNlZjZlMjFmMDZmMjBmMTcxMWZmMTczMWRmMjc0MWNmMzc2MWJmMzc4MTlmNDc5MThmNTdiMTdmNTdkMTVmNjdlMTRmNjgwMTNmNzgyMTJmNzg0MTBmODg1MGZmODg3MGVmODg5MGNmOThiMGJmOThjMGFmOThlMDlmYTkwMDhmYTkyMDdmYTk0MDdmYjk2MDZmYjk3MDZmYjk5MDZmYjliMDZmYjlkMDdmYzlmMDdmY2ExMDhmY2EzMDlmY2E1MGFmY2E2MGNmY2E4MGRmY2FhMGZmY2FjMTFmY2FlMTJmY2IwMTRmY2IyMTZmY2I0MThmYmI2MWFmYmI4MWRmYmJhMWZmYmJjMjFmYmJlMjNmYWMwMjZmYWMyMjhmYWM0MmFmYWM2MmRmOWM3MmZmOWM5MzJmOWNiMzVmOGNkMzdmOGNmM2FmN2QxM2RmN2QzNDBmNmQ1NDNmNmQ3NDZmNWQ5NDlmNWRiNGNmNGRkNGZmNGRmNTNmNGUxNTZmM2UzNWFmM2U1NWRmMmU2NjFmMmU4NjVmMmVhNjlmMWVjNmRmMWVkNzFmMWVmNzVmMWYxNzlmMmYyN2RmMmY0ODJmM2Y1ODZmM2Y2OGFmNGY4OGVmNWY5OTJmNmZhOTZmOGZiOWFmOWZjOWRmYWZkYTFmY2ZmYTQiKSksT1N0PU44KHRlKCIwZDA4ODcxMDA3ODgxMzA3ODkxNjA3OGExOTA2OGMxYjA2OGQxZDA2OGUyMDA2OGYyMjA2OTAyNDA2OTEyNjA1OTEyODA1OTIyYTA1OTMyYzA1OTQyZTA1OTUyZjA1OTYzMTA1OTczMzA1OTczNTA0OTgzNzA0OTkzODA0OWEzYTA0OWEzYzA0OWIzZTA0OWMzZjA0OWM0MTA0OWQ0MzAzOWU0NDAzOWU0NjAzOWY0ODAzOWY0OTAzYTA0YjAzYTE0YzAyYTE0ZTAyYTI1MDAyYTI1MTAyYTM1MzAyYTM1NTAyYTQ1NjAxYTQ1ODAxYTQ1OTAxYTU1YjAxYTU1YzAxYTY1ZTAxYTY2MDAxYTY2MTAwYTc2MzAwYTc2NDAwYTc2NjAwYTc2NzAwYTg2OTAwYTg2YTAwYTg2YzAwYTg2ZTAwYTg2ZjAwYTg3MTAwYTg3MjAxYTg3NDAxYTg3NTAxYTg3NzAxYTg3ODAxYTg3YTAyYTg3YjAyYTg3ZDAzYTg3ZTAzYTg4MDA0YTg4MTA0YTc4MzA1YTc4NDA1YTc4NjA2YTY4NzA3YTY4ODA4YTY4YTA5YTU4YjBhYTU4ZDBiYTU4ZTBjYTQ4ZjBkYTQ5MTBlYTM5MjBmYTM5NDEwYTI5NTExYTE5NjEzYTE5ODE0YTA5OTE1OWY5YTE2OWY5YzE3OWU5ZDE4OWQ5ZTE5OWRhMDFhOWNhMTFiOWJhMjFkOWFhMzFlOWFhNTFmOTlhNjIwOThhNzIxOTdhODIyOTZhYTIzOTVhYjI0OTRhYzI2OTRhZDI3OTNhZTI4OTJiMDI5OTFiMTJhOTBiMjJiOGZiMzJjOGViNDJlOGRiNTJmOGNiNjMwOGJiNzMxOGFiODMyODliYTMzODhiYjM0ODhiYzM1ODdiZDM3ODZiZTM4ODViZjM5ODRjMDNhODNjMTNiODJjMjNjODFjMzNkODBjNDNlN2ZjNTQwN2VjNjQxN2RjNzQyN2NjODQzN2JjOTQ0N2FjYTQ1N2FjYjQ2NzljYzQ3NzhjYzQ5NzdjZDRhNzZjZTRiNzVjZjRjNzRkMDRkNzNkMTRlNzJkMjRmNzFkMzUxNzFkNDUyNzBkNTUzNmZkNTU0NmVkNjU1NmRkNzU2NmNkODU3NmJkOTU4NmFkYTVhNmFkYTViNjlkYjVjNjhkYzVkNjdkZDVlNjZkZTVmNjVkZTYxNjRkZjYyNjNlMDYzNjNlMTY0NjJlMjY1NjFlMjY2NjBlMzY4NWZlNDY5NWVlNTZhNWRlNTZiNWRlNjZjNWNlNzZlNWJlNzZmNWFlODcwNTllOTcxNThlOTcyNTdlYTc0NTdlYjc1NTZlYjc2NTVlYzc3NTRlZDc5NTNlZDdhNTJlZTdiNTFlZjdjNTFlZjdlNTBmMDdmNGZmMDgwNGVmMTgxNGRmMTgzNGNmMjg0NGJmMzg1NGJmMzg3NGFmNDg4NDlmNDg5NDhmNThiNDdmNThjNDZmNjhkNDVmNjhmNDRmNzkwNDRmNzkxNDNmNzkzNDJmODk0NDFmODk1NDBmOTk3M2ZmOTk4M2VmOTlhM2VmYTliM2RmYTljM2NmYTllM2JmYjlmM2FmYmExMzlmYmEyMzhmY2EzMzhmY2E1MzdmY2E2MzZmY2E4MzVmY2E5MzRmZGFiMzNmZGFjMzNmZGFlMzJmZGFmMzFmZGIxMzBmZGIyMmZmZGI0MmZmZGI1MmVmZWI3MmRmZWI4MmNmZWJhMmNmZWJiMmJmZWJkMmFmZWJlMmFmZWMwMjlmZGMyMjlmZGMzMjhmZGM1MjdmZGM2MjdmZGM4MjdmZGNhMjZmZGNiMjZmY2NkMjVmY2NlMjVmY2QwMjVmY2QyMjVmYmQzMjRmYmQ1MjRmYmQ3MjRmYWQ4MjRmYWRhMjRmOWRjMjRmOWRkMjVmOGRmMjVmOGUxMjVmN2UyMjVmN2U0MjVmNmU2MjZmNmU4MjZmNWU5MjZmNWViMjdmNGVkMjdmM2VlMjdmM2YwMjdmMmYyMjdmMWY0MjZmMWY1MjVmMGY3MjRmMGY5MjEiKSk7ZnVuY3Rpb24gcWUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciByJD1NYXRoLmFicyxCbz1NYXRoLmF0YW4yLG9nPU1hdGguY29zLHpTdD1NYXRoLm1heCxEOD1NYXRoLm1pbixfdT1NYXRoLnNpbixseT1NYXRoLnNxcnQsYm89MWUtMTIseXU9TWF0aC5QSSxJNT15dS8yLGhjPTIqeXU7ZnVuY3Rpb24gRlN0KGUpe3JldHVybiBlPjE/MDplPC0xP3l1Ok1hdGguYWNvcyhlKX1mdW5jdGlvbiBuJChlKXtyZXR1cm4gZT49MT9JNTplPD0tMT8tSTU6TWF0aC5hc2luKGUpfWZ1bmN0aW9uIFJFZShlKXtyZXR1cm4gZS5pbm5lclJhZGl1c31mdW5jdGlvbiBORWUoZSl7cmV0dXJuIGUub3V0ZXJSYWRpdXN9ZnVuY3Rpb24gREVlKGUpe3JldHVybiBlLnN0YXJ0QW5nbGV9ZnVuY3Rpb24gT0VlKGUpe3JldHVybiBlLmVuZEFuZ2xlfWZ1bmN0aW9uIHpFZShlKXtyZXR1cm4gZSYmZS5wYWRBbmdsZX1mdW5jdGlvbiBGRWUoZSx0LHIsbixpLG8sYSxzKXt2YXIgbD1yLWUsYz1uLXQsdT1hLWksaD1zLW8sZj1oKmwtdSpjO2lmKCEoZipmPGJvKSlyZXR1cm4gZj0odSoodC1vKS1oKihlLWkpKS9mLFtlK2YqbCx0K2YqY119ZnVuY3Rpb24gTzgoZSx0LHIsbixpLG8sYSl7dmFyIHM9ZS1yLGw9dC1uLGM9KGE/bzotbykvbHkocypzK2wqbCksdT1jKmwsaD0tYypzLGY9ZSt1LHA9dCtoLGQ9cit1LGc9bitoLF89KGYrZCkvMix5PShwK2cpLzIseD1kLWYsYj1nLXAsUz14KngrYipiLEM9aS1vLFA9ZipnLWQqcCxrPShiPDA/LTE6MSkqbHkoelN0KDAsQypDKlMtUCpQKSksTz0oUCpiLXgqaykvUyxEPSgtUCp4LWIqaykvUyxCPShQKmIreCprKS9TLEk9KC1QKngrYiprKS9TLEw9Ty1fLFI9RC15LEY9Qi1fLHo9SS15O3JldHVybiBMKkwrUipSPkYqRit6KnomJihPPUIsRD1JKSx7Y3g6TyxjeTpELHgwMTotdSx5MDE6LWgseDExOk8qKGkvQy0xKSx5MTE6RCooaS9DLTEpfX1mdW5jdGlvbiBCU3QoKXt2YXIgZT1SRWUsdD1ORWUscj1xZSgwKSxuPW51bGwsaT1ERWUsbz1PRWUsYT16RWUscz1udWxsO2Z1bmN0aW9uIGwoKXt2YXIgYyx1LGg9K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLGY9K3QuYXBwbHkodGhpcyxhcmd1bWVudHMpLHA9aS5hcHBseSh0aGlzLGFyZ3VtZW50cyktSTUsZD1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1JNSxnPXIkKGQtcCksXz1kPnA7aWYoc3x8KHM9Yz13cygpKSxmPGgmJih1PWYsZj1oLGg9dSksIShmPmJvKSlzLm1vdmVUbygwLDApO2Vsc2UgaWYoZz5oYy1ibylzLm1vdmVUbyhmKm9nKHApLGYqX3UocCkpLHMuYXJjKDAsMCxmLHAsZCwhXyksaD5ibyYmKHMubW92ZVRvKGgqb2coZCksaCpfdShkKSkscy5hcmMoMCwwLGgsZCxwLF8pKTtlbHNle3ZhciB5PXAseD1kLGI9cCxTPWQsQz1nLFA9ZyxrPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpLzIsTz1rPmJvJiYobj8rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6bHkoaCpoK2YqZikpLEQ9RDgociQoZi1oKS8yLCtyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksQj1ELEk9RCxMLFI7aWYoTz5ibyl7dmFyIEY9biQoTy9oKl91KGspKSx6PW4kKE8vZipfdShrKSk7KEMtPUYqMik+Ym8/KEYqPV8/MTotMSxiKz1GLFMtPUYpOihDPTAsYj1TPShwK2QpLzIpLChQLT16KjIpPmJvPyh6Kj1fPzE6LTEseSs9eix4LT16KTooUD0wLHk9eD0ocCtkKS8yKX12YXIgVT1mKm9nKHkpLFc9ZipfdSh5KSxaPWgqb2coUykscnQ9aCpfdShTKTtpZihEPmJvKXt2YXIgb3Q9ZipvZyh4KSxzdD1mKl91KHgpLFN0PWgqb2coYiksYnQ9aCpfdShiKSxNdDtpZihnPHl1JiYoTXQ9RkVlKFUsVyxTdCxidCxvdCxzdCxaLHJ0KSkpe3ZhciBsdD1VLU10WzBdLEt0PVctTXRbMV0sX3Q9b3QtTXRbMF0sY3Q9c3QtTXRbMV0sWD0xL191KEZTdCgobHQqX3QrS3QqY3QpLyhseShsdCpsdCtLdCpLdCkqbHkoX3QqX3QrY3QqY3QpKSkvMiksZXQ9bHkoTXRbMF0qTXRbMF0rTXRbMV0qTXRbMV0pO0I9RDgoRCwoaC1ldCkvKFgtMSkpLEk9RDgoRCwoZi1ldCkvKFgrMSkpfX1QPmJvP0k+Ym8/KEw9TzgoU3QsYnQsVSxXLGYsSSxfKSxSPU84KG90LHN0LFoscnQsZixJLF8pLHMubW92ZVRvKEwuY3grTC54MDEsTC5jeStMLnkwMSksSTxEP3MuYXJjKEwuY3gsTC5jeSxJLEJvKEwueTAxLEwueDAxKSxCbyhSLnkwMSxSLngwMSksIV8pOihzLmFyYyhMLmN4LEwuY3ksSSxCbyhMLnkwMSxMLngwMSksQm8oTC55MTEsTC54MTEpLCFfKSxzLmFyYygwLDAsZixCbyhMLmN5K0wueTExLEwuY3grTC54MTEpLEJvKFIuY3krUi55MTEsUi5jeCtSLngxMSksIV8pLHMuYXJjKFIuY3gsUi5jeSxJLEJvKFIueTExLFIueDExKSxCbyhSLnkwMSxSLngwMSksIV8pKSk6KHMubW92ZVRvKFUsVykscy5hcmMoMCwwLGYseSx4LCFfKSk6cy5tb3ZlVG8oVSxXKSwhKGg+Ym8pfHwhKEM+Ym8pP3MubGluZVRvKFoscnQpOkI+Ym8/KEw9TzgoWixydCxvdCxzdCxoLC1CLF8pLFI9TzgoVSxXLFN0LGJ0LGgsLUIsXykscy5saW5lVG8oTC5jeCtMLngwMSxMLmN5K0wueTAxKSxCPEQ/cy5hcmMoTC5jeCxMLmN5LEIsQm8oTC55MDEsTC54MDEpLEJvKFIueTAxLFIueDAxKSwhXyk6KHMuYXJjKEwuY3gsTC5jeSxCLEJvKEwueTAxLEwueDAxKSxCbyhMLnkxMSxMLngxMSksIV8pLHMuYXJjKDAsMCxoLEJvKEwuY3krTC55MTEsTC5jeCtMLngxMSksQm8oUi5jeStSLnkxMSxSLmN4K1IueDExKSxfKSxzLmFyYyhSLmN4LFIuY3ksQixCbyhSLnkxMSxSLngxMSksQm8oUi55MDEsUi54MDEpLCFfKSkpOnMuYXJjKDAsMCxoLFMsYixfKX1pZihzLmNsb3NlUGF0aCgpLGMpcmV0dXJuIHM9bnVsbCxjKyIifHxudWxsfXJldHVybiBsLmNlbnRyb2lkPWZ1bmN0aW9uKCl7dmFyIGM9KCtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK3QuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLHU9KCtpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK28uYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLXl1LzI7cmV0dXJuW29nKHUpKmMsX3UodSkqY119LGwuaW5uZXJSYWRpdXM9ZnVuY3Rpb24oYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dHlwZW9mIGM9PSJmdW5jdGlvbiI/YzpxZSgrYyksbCk6ZX0sbC5vdXRlclJhZGl1cz1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD10eXBlb2YgYz09ImZ1bmN0aW9uIj9jOnFlKCtjKSxsKTp0fSxsLmNvcm5lclJhZGl1cz1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10eXBlb2YgYz09ImZ1bmN0aW9uIj9jOnFlKCtjKSxsKTpyfSxsLnBhZFJhZGl1cz1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1jPT1udWxsP251bGw6dHlwZW9mIGM9PSJmdW5jdGlvbiI/YzpxZSgrYyksbCk6bn0sbC5zdGFydEFuZ2xlPWZ1bmN0aW9uKGMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXR5cGVvZiBjPT0iZnVuY3Rpb24iP2M6cWUoK2MpLGwpOml9LGwuZW5kQW5nbGU9ZnVuY3Rpb24oYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89dHlwZW9mIGM9PSJmdW5jdGlvbiI/YzpxZSgrYyksbCk6b30sbC5wYWRBbmdsZT1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10eXBlb2YgYz09ImZ1bmN0aW9uIj9jOnFlKCtjKSxsKTphfSxsLmNvbnRleHQ9ZnVuY3Rpb24oYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9Yz09bnVsbD9udWxsOmMsbCk6c30sbH1mdW5jdGlvbiBIU3QoZSl7dGhpcy5fY29udGV4dD1lfUhTdC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fHRoaXMuX2xpbmUhPT0wJiZ0aGlzLl9wb2ludD09PTEpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbihlLHQpe3N3aXRjaChlPStlLHQ9K3QsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8oZSx0KTp0aGlzLl9jb250ZXh0Lm1vdmVUbyhlLHQpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2RlZmF1bHQ6dGhpcy5fY29udGV4dC5saW5lVG8oZSx0KTticmVha319fTtmdW5jdGlvbiBqaChlKXtyZXR1cm4gbmV3IEhTdChlKX1mdW5jdGlvbiBYYihlKXtyZXR1cm4gZVswXX1mdW5jdGlvbiAkYihlKXtyZXR1cm4gZVsxXX1mdW5jdGlvbiB2dSgpe3ZhciBlPVhiLHQ9JGIscj1xZSghMCksbj1udWxsLGk9amgsbz1udWxsO2Z1bmN0aW9uIGEocyl7dmFyIGwsYz1zLmxlbmd0aCx1LGg9ITEsZjtmb3Iobj09bnVsbCYmKG89aShmPXdzKCkpKSxsPTA7bDw9YzsrK2wpIShsPGMmJnIodT1zW2xdLGwscykpPT09aCYmKChoPSFoKT9vLmxpbmVTdGFydCgpOm8ubGluZUVuZCgpKSxoJiZvLnBvaW50KCtlKHUsbCxzKSwrdCh1LGwscykpO2lmKGYpcmV0dXJuIG89bnVsbCxmKyIifHxudWxsfXJldHVybiBhLng9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dHlwZW9mIHM9PSJmdW5jdGlvbiI/czpxZSgrcyksYSk6ZX0sYS55PWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXR5cGVvZiBzPT0iZnVuY3Rpb24iP3M6cWUoK3MpLGEpOnR9LGEuZGVmaW5lZD1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10eXBlb2Ygcz09ImZ1bmN0aW9uIj9zOnFlKCEhcyksYSk6cn0sYS5jdXJ2ZT1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1zLG4hPW51bGwmJihvPWkobikpLGEpOml9LGEuY29udGV4dD1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz09bnVsbD9uPW89bnVsbDpvPWkobj1zKSxhKTpufSxhfWZ1bmN0aW9uIHo4KCl7dmFyIGU9WGIsdD1udWxsLHI9cWUoMCksbj0kYixpPXFlKCEwKSxvPW51bGwsYT1qaCxzPW51bGw7ZnVuY3Rpb24gbCh1KXt2YXIgaCxmLHAsZD11Lmxlbmd0aCxnLF89ITEseSx4PW5ldyBBcnJheShkKSxiPW5ldyBBcnJheShkKTtmb3Iobz09bnVsbCYmKHM9YSh5PXdzKCkpKSxoPTA7aDw9ZDsrK2gpe2lmKCEoaDxkJiZpKGc9dVtoXSxoLHUpKT09PV8paWYoXz0hXylmPWgscy5hcmVhU3RhcnQoKSxzLmxpbmVTdGFydCgpO2Vsc2V7Zm9yKHMubGluZUVuZCgpLHMubGluZVN0YXJ0KCkscD1oLTE7cD49ZjstLXApcy5wb2ludCh4W3BdLGJbcF0pO3MubGluZUVuZCgpLHMuYXJlYUVuZCgpfV8mJih4W2hdPStlKGcsaCx1KSxiW2hdPStyKGcsaCx1KSxzLnBvaW50KHQ/K3QoZyxoLHUpOnhbaF0sbj8rbihnLGgsdSk6YltoXSkpfWlmKHkpcmV0dXJuIHM9bnVsbCx5KyIifHxudWxsfWZ1bmN0aW9uIGMoKXtyZXR1cm4gdnUoKS5kZWZpbmVkKGkpLmN1cnZlKGEpLmNvbnRleHQobyl9cmV0dXJuIGwueD1mdW5jdGlvbih1KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10eXBlb2YgdT09ImZ1bmN0aW9uIj91OnFlKCt1KSx0PW51bGwsbCk6ZX0sbC54MD1mdW5jdGlvbih1KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10eXBlb2YgdT09ImZ1bmN0aW9uIj91OnFlKCt1KSxsKTplfSxsLngxPWZ1bmN0aW9uKHUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXU9PW51bGw/bnVsbDp0eXBlb2YgdT09ImZ1bmN0aW9uIj91OnFlKCt1KSxsKTp0fSxsLnk9ZnVuY3Rpb24odSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dHlwZW9mIHU9PSJmdW5jdGlvbiI/dTpxZSgrdSksbj1udWxsLGwpOnJ9LGwueTA9ZnVuY3Rpb24odSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dHlwZW9mIHU9PSJmdW5jdGlvbiI/dTpxZSgrdSksbCk6cn0sbC55MT1mdW5jdGlvbih1KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj11PT1udWxsP251bGw6dHlwZW9mIHU9PSJmdW5jdGlvbiI/dTpxZSgrdSksbCk6bn0sbC5saW5lWDA9bC5saW5lWTA9ZnVuY3Rpb24oKXtyZXR1cm4gYygpLngoZSkueShyKX0sbC5saW5lWTE9ZnVuY3Rpb24oKXtyZXR1cm4gYygpLngoZSkueShuKX0sbC5saW5lWDE9ZnVuY3Rpb24oKXtyZXR1cm4gYygpLngodCkueShyKX0sbC5kZWZpbmVkPWZ1bmN0aW9uKHUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXR5cGVvZiB1PT0iZnVuY3Rpb24iP3U6cWUoISF1KSxsKTppfSxsLmN1cnZlPWZ1bmN0aW9uKHUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXUsbyE9bnVsbCYmKHM9YShvKSksbCk6YX0sbC5jb250ZXh0PWZ1bmN0aW9uKHUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PT1udWxsP289cz1udWxsOnM9YShvPXUpLGwpOm99LGx9ZnVuY3Rpb24gVlN0KGUsdCl7cmV0dXJuIHQ8ZT8tMTp0PmU/MTp0Pj1lPzA6TmFOfWZ1bmN0aW9uIFVTdChlKXtyZXR1cm4gZX1mdW5jdGlvbiBxU3QoKXt2YXIgZT1VU3QsdD1WU3Qscj1udWxsLG49cWUoMCksaT1xZShoYyksbz1xZSgwKTtmdW5jdGlvbiBhKHMpe3ZhciBsLGM9cy5sZW5ndGgsdSxoLGY9MCxwPW5ldyBBcnJheShjKSxkPW5ldyBBcnJheShjKSxnPStuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxfPU1hdGgubWluKGhjLE1hdGgubWF4KC1oYyxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1nKSkseSx4PU1hdGgubWluKE1hdGguYWJzKF8pL2Msby5hcHBseSh0aGlzLGFyZ3VtZW50cykpLGI9eCooXzwwPy0xOjEpLFM7Zm9yKGw9MDtsPGM7KytsKShTPWRbcFtsXT1sXT0rZShzW2xdLGwscykpPjAmJihmKz1TKTtmb3IodCE9bnVsbD9wLnNvcnQoZnVuY3Rpb24oQyxQKXtyZXR1cm4gdChkW0NdLGRbUF0pfSk6ciE9bnVsbCYmcC5zb3J0KGZ1bmN0aW9uKEMsUCl7cmV0dXJuIHIoc1tDXSxzW1BdKX0pLGw9MCxoPWY/KF8tYypiKS9mOjA7bDxjOysrbCxnPXkpdT1wW2xdLFM9ZFt1XSx5PWcrKFM+MD9TKmg6MCkrYixkW3VdPXtkYXRhOnNbdV0saW5kZXg6bCx2YWx1ZTpTLHN0YXJ0QW5nbGU6ZyxlbmRBbmdsZTp5LHBhZEFuZ2xlOnh9O3JldHVybiBkfXJldHVybiBhLnZhbHVlPWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiBzPT0iZnVuY3Rpb24iP3M6cWUoK3MpLGEpOmV9LGEuc29ydFZhbHVlcz1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1zLHI9bnVsbCxhKTp0fSxhLnNvcnQ9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9cyx0PW51bGwsYSk6cn0sYS5zdGFydEFuZ2xlPWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXR5cGVvZiBzPT0iZnVuY3Rpb24iP3M6cWUoK3MpLGEpOm59LGEuZW5kQW5nbGU9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dHlwZW9mIHM9PSJmdW5jdGlvbiI/czpxZSgrcyksYSk6aX0sYS5wYWRBbmdsZT1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz10eXBlb2Ygcz09ImZ1bmN0aW9uIj9zOnFlKCtzKSxhKTpvfSxhfXZhciBGOD1LYihqaCk7ZnVuY3Rpb24gR1N0KGUpe3RoaXMuX2N1cnZlPWV9R1N0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUuYXJlYVN0YXJ0KCl9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5hcmVhRW5kKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbihlLHQpe3RoaXMuX2N1cnZlLnBvaW50KHQqTWF0aC5zaW4oZSksdCotTWF0aC5jb3MoZSkpfX07ZnVuY3Rpb24gS2IoZSl7ZnVuY3Rpb24gdChyKXtyZXR1cm4gbmV3IEdTdChlKHIpKX1yZXR1cm4gdC5fY3VydmU9ZSx0fWZ1bmN0aW9uIFpiKGUpe3ZhciB0PWUuY3VydmU7cmV0dXJuIGUuYW5nbGU9ZS54LGRlbGV0ZSBlLngsZS5yYWRpdXM9ZS55LGRlbGV0ZSBlLnksZS5jdXJ2ZT1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90KEtiKHIpKTp0KCkuX2N1cnZlfSxlfWZ1bmN0aW9uIGkkKCl7cmV0dXJuIFpiKHZ1KCkuY3VydmUoRjgpKX1mdW5jdGlvbiBvJCgpe3ZhciBlPXo4KCkuY3VydmUoRjgpLHQ9ZS5jdXJ2ZSxyPWUubGluZVgwLG49ZS5saW5lWDEsaT1lLmxpbmVZMCxvPWUubGluZVkxO3JldHVybiBlLmFuZ2xlPWUueCxkZWxldGUgZS54LGUuc3RhcnRBbmdsZT1lLngwLGRlbGV0ZSBlLngwLGUuZW5kQW5nbGU9ZS54MSxkZWxldGUgZS54MSxlLnJhZGl1cz1lLnksZGVsZXRlIGUueSxlLmlubmVyUmFkaXVzPWUueTAsZGVsZXRlIGUueTAsZS5vdXRlclJhZGl1cz1lLnkxLGRlbGV0ZSBlLnkxLGUubGluZVN0YXJ0QW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gWmIocigpKX0sZGVsZXRlIGUubGluZVgwLGUubGluZUVuZEFuZ2xlPWZ1bmN0aW9uKCl7cmV0dXJuIFpiKG4oKSl9LGRlbGV0ZSBlLmxpbmVYMSxlLmxpbmVJbm5lclJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBaYihpKCkpfSxkZWxldGUgZS5saW5lWTAsZS5saW5lT3V0ZXJSYWRpdXM9ZnVuY3Rpb24oKXtyZXR1cm4gWmIobygpKX0sZGVsZXRlIGUubGluZVkxLGUuY3VydmU9ZnVuY3Rpb24oYSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dChLYihhKSk6dCgpLl9jdXJ2ZX0sZX1mdW5jdGlvbiBjeShlLHQpe3JldHVyblsodD0rdCkqTWF0aC5jb3MoZS09TWF0aC5QSS8yKSx0Kk1hdGguc2luKGUpXX12YXIgTDU9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIEJFZShlKXtyZXR1cm4gZS5zb3VyY2V9ZnVuY3Rpb24gSEVlKGUpe3JldHVybiBlLnRhcmdldH1mdW5jdGlvbiBhJChlKXt2YXIgdD1CRWUscj1IRWUsbj1YYixpPSRiLG89bnVsbDtmdW5jdGlvbiBhKCl7dmFyIHMsbD1MNS5jYWxsKGFyZ3VtZW50cyksYz10LmFwcGx5KHRoaXMsbCksdT1yLmFwcGx5KHRoaXMsbCk7aWYob3x8KG89cz13cygpKSxlKG8sK24uYXBwbHkodGhpcywobFswXT1jLGwpKSwraS5hcHBseSh0aGlzLGwpLCtuLmFwcGx5KHRoaXMsKGxbMF09dSxsKSksK2kuYXBwbHkodGhpcyxsKSkscylyZXR1cm4gbz1udWxsLHMrIiJ8fG51bGx9cmV0dXJuIGEuc291cmNlPWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXMsYSk6dH0sYS50YXJnZXQ9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9cyxhKTpyfSxhLng9ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dHlwZW9mIHM9PSJmdW5jdGlvbiI/czpxZSgrcyksYSk6bn0sYS55PWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXR5cGVvZiBzPT0iZnVuY3Rpb24iP3M6cWUoK3MpLGEpOml9LGEuY29udGV4dD1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1zPT1udWxsP251bGw6cyxhKTpvfSxhfWZ1bmN0aW9uIFZFZShlLHQscixuLGkpe2UubW92ZVRvKHQsciksZS5iZXppZXJDdXJ2ZVRvKHQ9KHQrbikvMixyLHQsaSxuLGkpfWZ1bmN0aW9uIFVFZShlLHQscixuLGkpe2UubW92ZVRvKHQsciksZS5iZXppZXJDdXJ2ZVRvKHQscj0ocitpKS8yLG4scixuLGkpfWZ1bmN0aW9uIHFFZShlLHQscixuLGkpe3ZhciBvPWN5KHQsciksYT1jeSh0LHI9KHIraSkvMikscz1jeShuLHIpLGw9Y3kobixpKTtlLm1vdmVUbyhvWzBdLG9bMV0pLGUuYmV6aWVyQ3VydmVUbyhhWzBdLGFbMV0sc1swXSxzWzFdLGxbMF0sbFsxXSl9ZnVuY3Rpb24gV1N0KCl7cmV0dXJuIGEkKFZFZSl9ZnVuY3Rpb24gWVN0KCl7cmV0dXJuIGEkKFVFZSl9ZnVuY3Rpb24galN0KCl7dmFyIGU9YSQocUVlKTtyZXR1cm4gZS5hbmdsZT1lLngsZGVsZXRlIGUueCxlLnJhZGl1cz1lLnksZGVsZXRlIGUueSxlfXZhciBrNT17ZHJhdzpmdW5jdGlvbihlLHQpe3ZhciByPU1hdGguc3FydCh0L3l1KTtlLm1vdmVUbyhyLDApLGUuYXJjKDAsMCxyLDAsaGMpfX07dmFyIEI4PXtkcmF3OmZ1bmN0aW9uKGUsdCl7dmFyIHI9TWF0aC5zcXJ0KHQvNSkvMjtlLm1vdmVUbygtMypyLC1yKSxlLmxpbmVUbygtciwtciksZS5saW5lVG8oLXIsLTMqciksZS5saW5lVG8ociwtMypyKSxlLmxpbmVUbyhyLC1yKSxlLmxpbmVUbygzKnIsLXIpLGUubGluZVRvKDMqcixyKSxlLmxpbmVUbyhyLHIpLGUubGluZVRvKHIsMypyKSxlLmxpbmVUbygtciwzKnIpLGUubGluZVRvKC1yLHIpLGUubGluZVRvKC0zKnIsciksZS5jbG9zZVBhdGgoKX19O3ZhciBYU3Q9TWF0aC5zcXJ0KC4zMzMzMzMzMzMzMzMzMzMzKSxHRWU9WFN0KjIsSDg9e2RyYXc6ZnVuY3Rpb24oZSx0KXt2YXIgcj1NYXRoLnNxcnQodC9HRWUpLG49cipYU3Q7ZS5tb3ZlVG8oMCwtciksZS5saW5lVG8obiwwKSxlLmxpbmVUbygwLHIpLGUubGluZVRvKC1uLDApLGUuY2xvc2VQYXRoKCl9fTt2YXIgV0VlPS44OTA4MTMwOTE1MjkyODUyLCRTdD1NYXRoLnNpbih5dS8xMCkvTWF0aC5zaW4oNyp5dS8xMCksWUVlPU1hdGguc2luKGhjLzEwKSokU3QsakVlPS1NYXRoLmNvcyhoYy8xMCkqJFN0LFY4PXtkcmF3OmZ1bmN0aW9uKGUsdCl7dmFyIHI9TWF0aC5zcXJ0KHQqV0VlKSxuPVlFZSpyLGk9akVlKnI7ZS5tb3ZlVG8oMCwtciksZS5saW5lVG8obixpKTtmb3IodmFyIG89MTtvPDU7KytvKXt2YXIgYT1oYypvLzUscz1NYXRoLmNvcyhhKSxsPU1hdGguc2luKGEpO2UubGluZVRvKGwqciwtcypyKSxlLmxpbmVUbyhzKm4tbCppLGwqbitzKmkpfWUuY2xvc2VQYXRoKCl9fTt2YXIgVTg9e2RyYXc6ZnVuY3Rpb24oZSx0KXt2YXIgcj1NYXRoLnNxcnQodCksbj0tci8yO2UucmVjdChuLG4scixyKX19O3ZhciBzJD1NYXRoLnNxcnQoMykscTg9e2RyYXc6ZnVuY3Rpb24oZSx0KXt2YXIgcj0tTWF0aC5zcXJ0KHQvKHMkKjMpKTtlLm1vdmVUbygwLHIqMiksZS5saW5lVG8oLXMkKnIsLXIpLGUubGluZVRvKHMkKnIsLXIpLGUuY2xvc2VQYXRoKCl9fTt2YXIgZmM9LS41LHBjPU1hdGguc3FydCgzKS8yLGwkPTEvTWF0aC5zcXJ0KDEyKSxYRWU9KGwkLzIrMSkqMyxHOD17ZHJhdzpmdW5jdGlvbihlLHQpe3ZhciByPU1hdGguc3FydCh0L1hFZSksbj1yLzIsaT1yKmwkLG89bixhPXIqbCQrcixzPS1vLGw9YTtlLm1vdmVUbyhuLGkpLGUubGluZVRvKG8sYSksZS5saW5lVG8ocyxsKSxlLmxpbmVUbyhmYypuLXBjKmkscGMqbitmYyppKSxlLmxpbmVUbyhmYypvLXBjKmEscGMqbytmYyphKSxlLmxpbmVUbyhmYypzLXBjKmwscGMqcytmYypsKSxlLmxpbmVUbyhmYypuK3BjKmksZmMqaS1wYypuKSxlLmxpbmVUbyhmYypvK3BjKmEsZmMqYS1wYypvKSxlLmxpbmVUbyhmYypzK3BjKmwsZmMqbC1wYypzKSxlLmNsb3NlUGF0aCgpfX07dmFyIEtTdD1bazUsQjgsSDgsVTgsVjgscTgsRzhdO2Z1bmN0aW9uIFpTdCgpe3ZhciBlPXFlKGs1KSx0PXFlKDY0KSxyPW51bGw7ZnVuY3Rpb24gbigpe3ZhciBpO2lmKHJ8fChyPWk9d3MoKSksZS5hcHBseSh0aGlzLGFyZ3VtZW50cykuZHJhdyhyLCt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSksaSlyZXR1cm4gcj1udWxsLGkrIiJ8fG51bGx9cmV0dXJuIG4udHlwZT1mdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10eXBlb2YgaT09ImZ1bmN0aW9uIj9pOnFlKGkpLG4pOmV9LG4uc2l6ZT1mdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD10eXBlb2YgaT09ImZ1bmN0aW9uIj9pOnFlKCtpKSxuKTp0fSxuLmNvbnRleHQ9ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9aT09bnVsbD9udWxsOmksbik6cn0sbn1mdW5jdGlvbiBkYygpe31mdW5jdGlvbiBKYihlLHQscil7ZS5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKCgyKmUuX3gwK2UuX3gxKS8zLCgyKmUuX3kwK2UuX3kxKS8zLChlLl94MCsyKmUuX3gxKS8zLChlLl95MCsyKmUuX3kxKS8zLChlLl94MCs0KmUuX3gxK3QpLzYsKGUuX3kwKzQqZS5feTErcikvNil9ZnVuY3Rpb24gUjUoZSl7dGhpcy5fY29udGV4dD1lfVI1LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3kwPXRoaXMuX3kxPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDM6SmIodGhpcyx0aGlzLl94MSx0aGlzLl95MSk7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gxLHRoaXMuX3kxKTticmVha30odGhpcy5fbGluZXx8dGhpcy5fbGluZSE9PTAmJnRoaXMuX3BvaW50PT09MSkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKGUsdCl7c3dpdGNoKGU9K2UsdD0rdCx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyhlLHQpOnRoaXMuX2NvbnRleHQubW92ZVRvKGUsdCk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fY29udGV4dC5saW5lVG8oKDUqdGhpcy5feDArdGhpcy5feDEpLzYsKDUqdGhpcy5feTArdGhpcy5feTEpLzYpO2RlZmF1bHQ6SmIodGhpcyxlLHQpO2JyZWFrfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPWUsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dH19O2Z1bmN0aW9uIFc4KGUpe3JldHVybiBuZXcgUjUoZSl9ZnVuY3Rpb24gSlN0KGUpe3RoaXMuX2NvbnRleHQ9ZX1KU3QucHJvdG90eXBlPXthcmVhU3RhcnQ6ZGMsYXJlYUVuZDpkYyxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnt0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Mix0aGlzLl95MiksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVha31jYXNlIDI6e3RoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MisyKnRoaXMuX3gzKS8zLCh0aGlzLl95MisyKnRoaXMuX3kzKS8zKSx0aGlzLl9jb250ZXh0LmxpbmVUbygodGhpcy5feDMrMip0aGlzLl94MikvMywodGhpcy5feTMrMip0aGlzLl95MikvMyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVha31jYXNlIDM6e3RoaXMucG9pbnQodGhpcy5feDIsdGhpcy5feTIpLHRoaXMucG9pbnQodGhpcy5feDMsdGhpcy5feTMpLHRoaXMucG9pbnQodGhpcy5feDQsdGhpcy5feTQpO2JyZWFrfX19LHBvaW50OmZ1bmN0aW9uKGUsdCl7c3dpdGNoKGU9K2UsdD0rdCx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5feDI9ZSx0aGlzLl95Mj10O2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX3gzPWUsdGhpcy5feTM9dDticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94ND1lLHRoaXMuX3k0PXQsdGhpcy5fY29udGV4dC5tb3ZlVG8oKHRoaXMuX3gwKzQqdGhpcy5feDErZSkvNiwodGhpcy5feTArNCp0aGlzLl95MSt0KS82KTticmVhaztkZWZhdWx0OkpiKHRoaXMsZSx0KTticmVha310aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT1lLHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXR9fTtmdW5jdGlvbiBRU3QoZSl7cmV0dXJuIG5ldyBKU3QoZSl9ZnVuY3Rpb24gdDN0KGUpe3RoaXMuX2NvbnRleHQ9ZX10M3QucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8dGhpcy5fbGluZSE9PTAmJnRoaXMuX3BvaW50PT09MykmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKGUsdCl7c3dpdGNoKGU9K2UsdD0rdCx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7dmFyIHI9KHRoaXMuX3gwKzQqdGhpcy5feDErZSkvNixuPSh0aGlzLl95MCs0KnRoaXMuX3kxK3QpLzY7dGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyhyLG4pOnRoaXMuX2NvbnRleHQubW92ZVRvKHIsbik7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpKYih0aGlzLGUsdCk7YnJlYWt9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9ZSx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10fX07ZnVuY3Rpb24gZTN0KGUpe3JldHVybiBuZXcgdDN0KGUpfWZ1bmN0aW9uIHIzdChlLHQpe3RoaXMuX2Jhc2lzPW5ldyBSNShlKSx0aGlzLl9iZXRhPXR9cjN0LnByb3RvdHlwZT17bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feD1bXSx0aGlzLl95PVtdLHRoaXMuX2Jhc2lzLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5feCx0PXRoaXMuX3kscj1lLmxlbmd0aC0xO2lmKHI+MClmb3IodmFyIG49ZVswXSxpPXRbMF0sbz1lW3JdLW4sYT10W3JdLWkscz0tMSxsOysrczw9cjspbD1zL3IsdGhpcy5fYmFzaXMucG9pbnQodGhpcy5fYmV0YSplW3NdKygxLXRoaXMuX2JldGEpKihuK2wqbyksdGhpcy5fYmV0YSp0W3NdKygxLXRoaXMuX2JldGEpKihpK2wqYSkpO3RoaXMuX3g9dGhpcy5feT1udWxsLHRoaXMuX2Jhc2lzLmxpbmVFbmQoKX0scG9pbnQ6ZnVuY3Rpb24oZSx0KXt0aGlzLl94LnB1c2goK2UpLHRoaXMuX3kucHVzaCgrdCl9fTt2YXIgbjN0PWZ1bmN0aW9uIGUodCl7ZnVuY3Rpb24gcihuKXtyZXR1cm4gdD09PTE/bmV3IFI1KG4pOm5ldyByM3Qobix0KX1yZXR1cm4gci5iZXRhPWZ1bmN0aW9uKG4pe3JldHVybiBlKCtuKX0scn0oLjg1KTtmdW5jdGlvbiBRYihlLHQscil7ZS5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKGUuX3gxK2UuX2sqKGUuX3gyLWUuX3gwKSxlLl95MStlLl9rKihlLl95Mi1lLl95MCksZS5feDIrZS5fayooZS5feDEtdCksZS5feTIrZS5fayooZS5feTEtciksZS5feDIsZS5feTIpfWZ1bmN0aW9uIFk4KGUsdCl7dGhpcy5fY29udGV4dD1lLHRoaXMuX2s9KDEtdCkvNn1ZOC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6UWIodGhpcyx0aGlzLl94MSx0aGlzLl95MSk7YnJlYWt9KHRoaXMuX2xpbmV8fHRoaXMuX2xpbmUhPT0wJiZ0aGlzLl9wb2ludD09PTEpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbihlLHQpe3N3aXRjaChlPStlLHQ9K3QsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8oZSx0KTp0aGlzLl9jb250ZXh0Lm1vdmVUbyhlLHQpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX3gxPWUsdGhpcy5feTE9dDticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0OlFiKHRoaXMsZSx0KTticmVha310aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj1lLHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPXR9fTt2YXIgaTN0PWZ1bmN0aW9uIGUodCl7ZnVuY3Rpb24gcihuKXtyZXR1cm4gbmV3IFk4KG4sdCl9cmV0dXJuIHIudGVuc2lvbj1mdW5jdGlvbihuKXtyZXR1cm4gZSgrbil9LHJ9KDApO2Z1bmN0aW9uIGo4KGUsdCl7dGhpcy5fY29udGV4dD1lLHRoaXMuX2s9KDEtdCkvNn1qOC5wcm90b3R5cGU9e2FyZWFTdGFydDpkYyxhcmVhRW5kOmRjLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6e3RoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrfWNhc2UgMjp7dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZSAzOnt0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KTticmVha319fSxwb2ludDpmdW5jdGlvbihlLHQpe3N3aXRjaChlPStlLHQ9K3QsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPWUsdGhpcy5feTM9dDticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND1lLHRoaXMuX3k0PXQpO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PWUsdGhpcy5feTU9dDticmVhaztkZWZhdWx0OlFiKHRoaXMsZSx0KTticmVha310aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj1lLHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPXR9fTt2YXIgbzN0PWZ1bmN0aW9uIGUodCl7ZnVuY3Rpb24gcihuKXtyZXR1cm4gbmV3IGo4KG4sdCl9cmV0dXJuIHIudGVuc2lvbj1mdW5jdGlvbihuKXtyZXR1cm4gZSgrbil9LHJ9KDApO2Z1bmN0aW9uIFg4KGUsdCl7dGhpcy5fY29udGV4dD1lLHRoaXMuX2s9KDEtdCkvNn1YOC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHx0aGlzLl9saW5lIT09MCYmdGhpcy5fcG9pbnQ9PT0zKSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZT0rZSx0PSt0LHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpRYih0aGlzLGUsdCk7YnJlYWt9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9ZSx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj10fX07dmFyIGEzdD1mdW5jdGlvbiBlKHQpe2Z1bmN0aW9uIHIobil7cmV0dXJuIG5ldyBYOChuLHQpfXJldHVybiByLnRlbnNpb249ZnVuY3Rpb24obil7cmV0dXJuIGUoK24pfSxyfSgwKTtmdW5jdGlvbiBONShlLHQscil7dmFyIG49ZS5feDEsaT1lLl95MSxvPWUuX3gyLGE9ZS5feTI7aWYoZS5fbDAxX2E+Ym8pe3ZhciBzPTIqZS5fbDAxXzJhKzMqZS5fbDAxX2EqZS5fbDEyX2ErZS5fbDEyXzJhLGw9MyplLl9sMDFfYSooZS5fbDAxX2ErZS5fbDEyX2EpO249KG4qcy1lLl94MCplLl9sMTJfMmErZS5feDIqZS5fbDAxXzJhKS9sLGk9KGkqcy1lLl95MCplLl9sMTJfMmErZS5feTIqZS5fbDAxXzJhKS9sfWlmKGUuX2wyM19hPmJvKXt2YXIgYz0yKmUuX2wyM18yYSszKmUuX2wyM19hKmUuX2wxMl9hK2UuX2wxMl8yYSx1PTMqZS5fbDIzX2EqKGUuX2wyM19hK2UuX2wxMl9hKTtvPShvKmMrZS5feDEqZS5fbDIzXzJhLXQqZS5fbDEyXzJhKS91LGE9KGEqYytlLl95MSplLl9sMjNfMmEtciplLl9sMTJfMmEpL3V9ZS5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKG4saSxvLGEsZS5feDIsZS5feTIpfWZ1bmN0aW9uIHMzdChlLHQpe3RoaXMuX2NvbnRleHQ9ZSx0aGlzLl9hbHBoYT10fXMzdC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWt9KHRoaXMuX2xpbmV8fHRoaXMuX2xpbmUhPT0wJiZ0aGlzLl9wb2ludD09PTEpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbihlLHQpe2lmKGU9K2UsdD0rdCx0aGlzLl9wb2ludCl7dmFyIHI9dGhpcy5feDItZSxuPXRoaXMuX3kyLXQ7dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhyKnIrbipuLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKGUsdCk6dGhpcy5fY29udGV4dC5tb3ZlVG8oZSx0KTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0Ok41KHRoaXMsZSx0KTticmVha310aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9ZSx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj10fX07dmFyIGwzdD1mdW5jdGlvbiBlKHQpe2Z1bmN0aW9uIHIobil7cmV0dXJuIHQ/bmV3IHMzdChuLHQpOm5ldyBZOChuLDApfXJldHVybiByLmFscGhhPWZ1bmN0aW9uKG4pe3JldHVybiBlKCtuKX0scn0oLjUpO2Z1bmN0aW9uIGMzdChlLHQpe3RoaXMuX2NvbnRleHQ9ZSx0aGlzLl9hbHBoYT10fWMzdC5wcm90b3R5cGU9e2FyZWFTdGFydDpkYyxhcmVhRW5kOmRjLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6e3RoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrfWNhc2UgMjp7dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZSAzOnt0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KTticmVha319fSxwb2ludDpmdW5jdGlvbihlLHQpe2lmKGU9K2UsdD0rdCx0aGlzLl9wb2ludCl7dmFyIHI9dGhpcy5feDItZSxuPXRoaXMuX3kyLXQ7dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhyKnIrbipuLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mz1lLHRoaXMuX3kzPXQ7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDQ9ZSx0aGlzLl95ND10KTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94NT1lLHRoaXMuX3k1PXQ7YnJlYWs7ZGVmYXVsdDpONSh0aGlzLGUsdCk7YnJlYWt9dGhpcy5fbDAxX2E9dGhpcy5fbDEyX2EsdGhpcy5fbDEyX2E9dGhpcy5fbDIzX2EsdGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYSx0aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhLHRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPWUsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9dH19O3ZhciB1M3Q9ZnVuY3Rpb24gZSh0KXtmdW5jdGlvbiByKG4pe3JldHVybiB0P25ldyBjM3Qobix0KTpuZXcgajgobiwwKX1yZXR1cm4gci5hbHBoYT1mdW5jdGlvbihuKXtyZXR1cm4gZSgrbil9LHJ9KC41KTtmdW5jdGlvbiBoM3QoZSx0KXt0aGlzLl9jb250ZXh0PWUsdGhpcy5fYWxwaGE9dH1oM3QucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8dGhpcy5fbGluZSE9PTAmJnRoaXMuX3BvaW50PT09MykmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKGUsdCl7aWYoZT0rZSx0PSt0LHRoaXMuX3BvaW50KXt2YXIgcj10aGlzLl94Mi1lLG49dGhpcy5feTItdDt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KHIqcituKm4sdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0Ok41KHRoaXMsZSx0KTticmVha310aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9ZSx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj10fX07dmFyIGYzdD1mdW5jdGlvbiBlKHQpe2Z1bmN0aW9uIHIobil7cmV0dXJuIHQ/bmV3IGgzdChuLHQpOm5ldyBYOChuLDApfXJldHVybiByLmFscGhhPWZ1bmN0aW9uKG4pe3JldHVybiBlKCtuKX0scn0oLjUpO2Z1bmN0aW9uIHAzdChlKXt0aGlzLl9jb250ZXh0PWV9cDN0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmRjLGFyZWFFbmQ6ZGMsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX3BvaW50JiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpfSxwb2ludDpmdW5jdGlvbihlLHQpe2U9K2UsdD0rdCx0aGlzLl9wb2ludD90aGlzLl9jb250ZXh0LmxpbmVUbyhlLHQpOih0aGlzLl9wb2ludD0xLHRoaXMuX2NvbnRleHQubW92ZVRvKGUsdCkpfX07ZnVuY3Rpb24gZDN0KGUpe3JldHVybiBuZXcgcDN0KGUpfWZ1bmN0aW9uIG0zdChlKXtyZXR1cm4gZTwwPy0xOjF9ZnVuY3Rpb24gZzN0KGUsdCxyKXt2YXIgbj1lLl94MS1lLl94MCxpPXQtZS5feDEsbz0oZS5feTEtZS5feTApLyhufHxpPDAmJi0wKSxhPShyLWUuX3kxKS8oaXx8bjwwJiYtMCkscz0obyppK2EqbikvKG4raSk7cmV0dXJuKG0zdChvKSttM3QoYSkpKk1hdGgubWluKE1hdGguYWJzKG8pLE1hdGguYWJzKGEpLC41Kk1hdGguYWJzKHMpKXx8MH1mdW5jdGlvbiBfM3QoZSx0KXt2YXIgcj1lLl94MS1lLl94MDtyZXR1cm4gcj8oMyooZS5feTEtZS5feTApL3ItdCkvMjp0fWZ1bmN0aW9uIGMkKGUsdCxyKXt2YXIgbj1lLl94MCxpPWUuX3kwLG89ZS5feDEsYT1lLl95MSxzPShvLW4pLzM7ZS5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKG4rcyxpK3MqdCxvLXMsYS1zKnIsbyxhKX1mdW5jdGlvbiAkOChlKXt0aGlzLl9jb250ZXh0PWV9JDgucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5fdDA9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSk7YnJlYWs7Y2FzZSAzOmMkKHRoaXMsdGhpcy5fdDAsXzN0KHRoaXMsdGhpcy5fdDApKTticmVha30odGhpcy5fbGluZXx8dGhpcy5fbGluZSE9PTAmJnRoaXMuX3BvaW50PT09MSkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKGUsdCl7dmFyIHI9TmFOO2lmKGU9K2UsdD0rdCwhKGU9PT10aGlzLl94MSYmdD09PXRoaXMuX3kxKSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKGUsdCk6dGhpcy5fY29udGV4dC5tb3ZlVG8oZSx0KTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MyxjJCh0aGlzLF8zdCh0aGlzLHI9ZzN0KHRoaXMsZSx0KSkscik7YnJlYWs7ZGVmYXVsdDpjJCh0aGlzLHRoaXMuX3QwLHI9ZzN0KHRoaXMsZSx0KSk7YnJlYWt9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9ZSx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10LHRoaXMuX3QwPXJ9fX07ZnVuY3Rpb24geTN0KGUpe3RoaXMuX2NvbnRleHQ9bmV3IHYzdChlKX0oeTN0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKCQ4LnByb3RvdHlwZSkpLnBvaW50PWZ1bmN0aW9uKGUsdCl7JDgucHJvdG90eXBlLnBvaW50LmNhbGwodGhpcyx0LGUpfTtmdW5jdGlvbiB2M3QoZSl7dGhpcy5fY29udGV4dD1lfXYzdC5wcm90b3R5cGU9e21vdmVUbzpmdW5jdGlvbihlLHQpe3RoaXMuX2NvbnRleHQubW92ZVRvKHQsZSl9LGNsb3NlUGF0aDpmdW5jdGlvbigpe3RoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCl9LGxpbmVUbzpmdW5jdGlvbihlLHQpe3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSl9LGJlemllckN1cnZlVG86ZnVuY3Rpb24oZSx0LHIsbixpLG8pe3RoaXMuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyh0LGUsbixyLG8saSl9fTtmdW5jdGlvbiB4M3QoZSl7cmV0dXJuIG5ldyAkOChlKX1mdW5jdGlvbiBiM3QoZSl7cmV0dXJuIG5ldyB5M3QoZSl9ZnVuY3Rpb24gUzN0KGUpe3RoaXMuX2NvbnRleHQ9ZX1TM3QucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feD1bXSx0aGlzLl95PVtdfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5feCx0PXRoaXMuX3kscj1lLmxlbmd0aDtpZihyKWlmKHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8oZVswXSx0WzBdKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyhlWzBdLHRbMF0pLHI9PT0yKXRoaXMuX2NvbnRleHQubGluZVRvKGVbMV0sdFsxXSk7ZWxzZSBmb3IodmFyIG49dzN0KGUpLGk9dzN0KHQpLG89MCxhPTE7YTxyOysrbywrK2EpdGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKG5bMF1bb10saVswXVtvXSxuWzFdW29dLGlbMV1bb10sZVthXSx0W2FdKTsodGhpcy5fbGluZXx8dGhpcy5fbGluZSE9PTAmJnI9PT0xKSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSx0aGlzLl94PXRoaXMuX3k9bnVsbH0scG9pbnQ6ZnVuY3Rpb24oZSx0KXt0aGlzLl94LnB1c2goK2UpLHRoaXMuX3kucHVzaCgrdCl9fTtmdW5jdGlvbiB3M3QoZSl7dmFyIHQscj1lLmxlbmd0aC0xLG4saT1uZXcgQXJyYXkociksbz1uZXcgQXJyYXkociksYT1uZXcgQXJyYXkocik7Zm9yKGlbMF09MCxvWzBdPTIsYVswXT1lWzBdKzIqZVsxXSx0PTE7dDxyLTE7Kyt0KWlbdF09MSxvW3RdPTQsYVt0XT00KmVbdF0rMiplW3QrMV07Zm9yKGlbci0xXT0yLG9bci0xXT03LGFbci0xXT04KmVbci0xXStlW3JdLHQ9MTt0PHI7Kyt0KW49aVt0XS9vW3QtMV0sb1t0XS09bixhW3RdLT1uKmFbdC0xXTtmb3IoaVtyLTFdPWFbci0xXS9vW3ItMV0sdD1yLTI7dD49MDstLXQpaVt0XT0oYVt0XS1pW3QrMV0pL29bdF07Zm9yKG9bci0xXT0oZVtyXStpW3ItMV0pLzIsdD0wO3Q8ci0xOysrdClvW3RdPTIqZVt0KzFdLWlbdCsxXTtyZXR1cm5baSxvXX1mdW5jdGlvbiBNM3QoZSl7cmV0dXJuIG5ldyBTM3QoZSl9ZnVuY3Rpb24gSzgoZSx0KXt0aGlzLl9jb250ZXh0PWUsdGhpcy5fdD10fUs4LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9dGhpcy5feT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA8dGhpcy5fdCYmdGhpcy5fdDwxJiZ0aGlzLl9wb2ludD09PTImJnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsdGhpcy5feSksKHRoaXMuX2xpbmV8fHRoaXMuX2xpbmUhPT0wJiZ0aGlzLl9wb2ludD09PTEpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU+PTAmJih0aGlzLl90PTEtdGhpcy5fdCx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSl9LHBvaW50OmZ1bmN0aW9uKGUsdCl7c3dpdGNoKGU9K2UsdD0rdCx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyhlLHQpOnRoaXMuX2NvbnRleHQubW92ZVRvKGUsdCk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDp7aWYodGhpcy5fdDw9MCl0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94LHQpLHRoaXMuX2NvbnRleHQubGluZVRvKGUsdCk7ZWxzZXt2YXIgcj10aGlzLl94KigxLXRoaXMuX3QpK2UqdGhpcy5fdDt0aGlzLl9jb250ZXh0LmxpbmVUbyhyLHRoaXMuX3kpLHRoaXMuX2NvbnRleHQubGluZVRvKHIsdCl9YnJlYWt9fXRoaXMuX3g9ZSx0aGlzLl95PXR9fTtmdW5jdGlvbiBFM3QoZSl7cmV0dXJuIG5ldyBLOChlLC41KX1mdW5jdGlvbiBUM3QoZSl7cmV0dXJuIG5ldyBLOChlLDApfWZ1bmN0aW9uIEMzdChlKXtyZXR1cm4gbmV3IEs4KGUsMSl9ZnVuY3Rpb24geHUoZSx0KXtpZigoYT1lLmxlbmd0aCk+MSlmb3IodmFyIHI9MSxuLGksbz1lW3RbMF1dLGEscz1vLmxlbmd0aDtyPGE7KytyKWZvcihpPW8sbz1lW3Rbcl1dLG49MDtuPHM7KytuKW9bbl1bMV0rPW9bbl1bMF09aXNOYU4oaVtuXVsxXSk/aVtuXVswXTppW25dWzFdfWZ1bmN0aW9uIGJ1KGUpe2Zvcih2YXIgdD1lLmxlbmd0aCxyPW5ldyBBcnJheSh0KTstLXQ+PTA7KXJbdF09dDtyZXR1cm4gcn1mdW5jdGlvbiAkRWUoZSx0KXtyZXR1cm4gZVt0XX1mdW5jdGlvbiBBM3QoKXt2YXIgZT1xZShbXSksdD1idSxyPXh1LG49JEVlO2Z1bmN0aW9uIGkobyl7dmFyIGE9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cykscyxsPW8ubGVuZ3RoLGM9YS5sZW5ndGgsdT1uZXcgQXJyYXkoYyksaDtmb3Iocz0wO3M8YzsrK3Mpe2Zvcih2YXIgZj1hW3NdLHA9dVtzXT1uZXcgQXJyYXkobCksZD0wLGc7ZDxsOysrZClwW2RdPWc9WzAsK24ob1tkXSxmLGQsbyldLGcuZGF0YT1vW2RdO3Aua2V5PWZ9Zm9yKHM9MCxoPXQodSk7czxjOysrcyl1W2hbc11dLmluZGV4PXM7cmV0dXJuIHIodSxoKSx1fXJldHVybiBpLmtleXM9ZnVuY3Rpb24obyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dHlwZW9mIG89PSJmdW5jdGlvbiI/bzpxZShMNS5jYWxsKG8pKSxpKTplfSxpLnZhbHVlPWZ1bmN0aW9uKG8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXR5cGVvZiBvPT0iZnVuY3Rpb24iP286cWUoK28pLGkpOm59LGkub3JkZXI9ZnVuY3Rpb24obyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9bz09bnVsbD9idTp0eXBlb2Ygbz09ImZ1bmN0aW9uIj9vOnFlKEw1LmNhbGwobykpLGkpOnR9LGkub2Zmc2V0PWZ1bmN0aW9uKG8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW89PW51bGw/eHU6byxpKTpyfSxpfWZ1bmN0aW9uIFAzdChlLHQpe2lmKChuPWUubGVuZ3RoKT4wKXtmb3IodmFyIHIsbixpPTAsbz1lWzBdLmxlbmd0aCxhO2k8bzsrK2kpe2ZvcihhPXI9MDtyPG47KytyKWErPWVbcl1baV1bMV18fDA7aWYoYSlmb3Iocj0wO3I8bjsrK3IpZVtyXVtpXVsxXS89YX14dShlLHQpfX1mdW5jdGlvbiBJM3QoZSx0KXtpZigobD1lLmxlbmd0aCk+MClmb3IodmFyIHIsbj0wLGksbyxhLHMsbCxjPWVbdFswXV0ubGVuZ3RoO248YzsrK24pZm9yKGE9cz0wLHI9MDtyPGw7KytyKShvPShpPWVbdFtyXV1bbl0pWzFdLWlbMF0pPjA/KGlbMF09YSxpWzFdPWErPW8pOm88MD8oaVsxXT1zLGlbMF09cys9byk6KGlbMF09MCxpWzFdPW8pfWZ1bmN0aW9uIEwzdChlLHQpe2lmKChpPWUubGVuZ3RoKT4wKXtmb3IodmFyIHI9MCxuPWVbdFswXV0saSxvPW4ubGVuZ3RoO3I8bzsrK3Ipe2Zvcih2YXIgYT0wLHM9MDthPGk7KythKXMrPWVbYV1bcl1bMV18fDA7bltyXVsxXSs9bltyXVswXT0tcy8yfXh1KGUsdCl9fWZ1bmN0aW9uIGszdChlLHQpe2lmKCEoISgoYT1lLmxlbmd0aCk+MCl8fCEoKG89KGk9ZVt0WzBdXSkubGVuZ3RoKT4wKSkpe2Zvcih2YXIgcj0wLG49MSxpLG8sYTtuPG87KytuKXtmb3IodmFyIHM9MCxsPTAsYz0wO3M8YTsrK3Mpe2Zvcih2YXIgdT1lW3Rbc11dLGg9dVtuXVsxXXx8MCxmPXVbbi0xXVsxXXx8MCxwPShoLWYpLzIsZD0wO2Q8czsrK2Qpe3ZhciBnPWVbdFtkXV0sXz1nW25dWzFdfHwwLHk9Z1tuLTFdWzFdfHwwO3ArPV8teX1sKz1oLGMrPXAqaH1pW24tMV1bMV0rPWlbbi0xXVswXT1yLGwmJihyLT1jL2wpfWlbbi0xXVsxXSs9aVtuLTFdWzBdPXIseHUoZSx0KX19ZnVuY3Rpb24gWjgoZSl7dmFyIHQ9ZS5tYXAoS0VlKTtyZXR1cm4gYnUoZSkuc29ydChmdW5jdGlvbihyLG4pe3JldHVybiB0W3JdLXRbbl19KX1mdW5jdGlvbiBLRWUoZSl7Zm9yKHZhciB0PS0xLHI9MCxuPWUubGVuZ3RoLGksbz0tMS8wOysrdDxuOykoaT0rZVt0XVsxXSk+byYmKG89aSxyPXQpO3JldHVybiByfWZ1bmN0aW9uIEo4KGUpe3ZhciB0PWUubWFwKHUkKTtyZXR1cm4gYnUoZSkuc29ydChmdW5jdGlvbihyLG4pe3JldHVybiB0W3JdLXRbbl19KX1mdW5jdGlvbiB1JChlKXtmb3IodmFyIHQ9MCxyPS0xLG49ZS5sZW5ndGgsaTsrK3I8bjspKGk9K2Vbcl1bMV0pJiYodCs9aSk7cmV0dXJuIHR9ZnVuY3Rpb24gUjN0KGUpe3JldHVybiBKOChlKS5yZXZlcnNlKCl9ZnVuY3Rpb24gTjN0KGUpe3ZhciB0PWUubGVuZ3RoLHIsbixpPWUubWFwKHUkKSxvPVo4KGUpLGE9MCxzPTAsbD1bXSxjPVtdO2ZvcihyPTA7cjx0OysrciluPW9bcl0sYTxzPyhhKz1pW25dLGwucHVzaChuKSk6KHMrPWlbbl0sYy5wdXNoKG4pKTtyZXR1cm4gYy5yZXZlcnNlKCkuY29uY2F0KGwpfWZ1bmN0aW9uIEQzdChlKXtyZXR1cm4gYnUoZSkucmV2ZXJzZSgpfWZ1bmN0aW9uIGgkKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX1mdW5jdGlvbiBPM3QoZSl7cmV0dXJuIGVbMF19ZnVuY3Rpb24gejN0KGUpe3JldHVybiBlWzFdfWZ1bmN0aW9uIGYkKCl7dGhpcy5fPW51bGx9ZnVuY3Rpb24gdDIoZSl7ZS5VPWUuQz1lLkw9ZS5SPWUuUD1lLk49bnVsbH1mJC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmYkLGluc2VydDpmdW5jdGlvbihlLHQpe3ZhciByLG4saTtpZihlKXtpZih0LlA9ZSx0Lk49ZS5OLGUuTiYmKGUuTi5QPXQpLGUuTj10LGUuUil7Zm9yKGU9ZS5SO2UuTDspZT1lLkw7ZS5MPXR9ZWxzZSBlLlI9dDtyPWV9ZWxzZSB0aGlzLl8/KGU9RjN0KHRoaXMuXyksdC5QPW51bGwsdC5OPWUsZS5QPWUuTD10LHI9ZSk6KHQuUD10Lk49bnVsbCx0aGlzLl89dCxyPW51bGwpO2Zvcih0Lkw9dC5SPW51bGwsdC5VPXIsdC5DPSEwLGU9dDtyJiZyLkM7KW49ci5VLHI9PT1uLkw/KGk9bi5SLGkmJmkuQz8oci5DPWkuQz0hMSxuLkM9ITAsZT1uKTooZT09PXIuUiYmKEQ1KHRoaXMsciksZT1yLHI9ZS5VKSxyLkM9ITEsbi5DPSEwLE81KHRoaXMsbikpKTooaT1uLkwsaSYmaS5DPyhyLkM9aS5DPSExLG4uQz0hMCxlPW4pOihlPT09ci5MJiYoTzUodGhpcyxyKSxlPXIscj1lLlUpLHIuQz0hMSxuLkM9ITAsRDUodGhpcyxuKSkpLHI9ZS5VO3RoaXMuXy5DPSExfSxyZW1vdmU6ZnVuY3Rpb24oZSl7ZS5OJiYoZS5OLlA9ZS5QKSxlLlAmJihlLlAuTj1lLk4pLGUuTj1lLlA9bnVsbDt2YXIgdD1lLlUscixuPWUuTCxpPWUuUixvLGE7aWYobj9pP289RjN0KGkpOm89bjpvPWksdD90Lkw9PT1lP3QuTD1vOnQuUj1vOnRoaXMuXz1vLG4mJmk/KGE9by5DLG8uQz1lLkMsby5MPW4sbi5VPW8sbyE9PWk/KHQ9by5VLG8uVT1lLlUsZT1vLlIsdC5MPWUsby5SPWksaS5VPW8pOihvLlU9dCx0PW8sZT1vLlIpKTooYT1lLkMsZT1vKSxlJiYoZS5VPXQpLCFhKXtpZihlJiZlLkMpe2UuQz0hMTtyZXR1cm59ZG97aWYoZT09PXRoaXMuXylicmVhaztpZihlPT09dC5MKXtpZihyPXQuUixyLkMmJihyLkM9ITEsdC5DPSEwLEQ1KHRoaXMsdCkscj10LlIpLHIuTCYmci5MLkN8fHIuUiYmci5SLkMpeyghci5SfHwhci5SLkMpJiYoci5MLkM9ITEsci5DPSEwLE81KHRoaXMscikscj10LlIpLHIuQz10LkMsdC5DPXIuUi5DPSExLEQ1KHRoaXMsdCksZT10aGlzLl87YnJlYWt9fWVsc2UgaWYocj10Lkwsci5DJiYoci5DPSExLHQuQz0hMCxPNSh0aGlzLHQpLHI9dC5MKSxyLkwmJnIuTC5DfHxyLlImJnIuUi5DKXsoIXIuTHx8IXIuTC5DKSYmKHIuUi5DPSExLHIuQz0hMCxENSh0aGlzLHIpLHI9dC5MKSxyLkM9dC5DLHQuQz1yLkwuQz0hMSxPNSh0aGlzLHQpLGU9dGhpcy5fO2JyZWFrfXIuQz0hMCxlPXQsdD10LlV9d2hpbGUoIWUuQyk7ZSYmKGUuQz0hMSl9fX07ZnVuY3Rpb24gRDUoZSx0KXt2YXIgcj10LG49dC5SLGk9ci5VO2k/aS5MPT09cj9pLkw9bjppLlI9bjplLl89bixuLlU9aSxyLlU9bixyLlI9bi5MLHIuUiYmKHIuUi5VPXIpLG4uTD1yfWZ1bmN0aW9uIE81KGUsdCl7dmFyIHI9dCxuPXQuTCxpPXIuVTtpP2kuTD09PXI/aS5MPW46aS5SPW46ZS5fPW4sbi5VPWksci5VPW4sci5MPW4uUixyLkwmJihyLkwuVT1yKSxuLlI9cn1mdW5jdGlvbiBGM3QoZSl7Zm9yKDtlLkw7KWU9ZS5MO3JldHVybiBlfXZhciBwJD1mJDtmdW5jdGlvbiBlMihlLHQscixuKXt2YXIgaT1bbnVsbCxudWxsXSxvPXdvLnB1c2goaSktMTtyZXR1cm4gaS5sZWZ0PWUsaS5yaWdodD10LHImJno1KGksZSx0LHIpLG4mJno1KGksdCxlLG4pLFVhW2UuaW5kZXhdLmhhbGZlZGdlcy5wdXNoKG8pLFVhW3QuaW5kZXhdLmhhbGZlZGdlcy5wdXNoKG8pLGl9ZnVuY3Rpb24gcjIoZSx0LHIpe3ZhciBuPVt0LHJdO3JldHVybiBuLmxlZnQ9ZSxufWZ1bmN0aW9uIHo1KGUsdCxyLG4peyFlWzBdJiYhZVsxXT8oZVswXT1uLGUubGVmdD10LGUucmlnaHQ9cik6ZS5sZWZ0PT09cj9lWzFdPW46ZVswXT1ufWZ1bmN0aW9uIFpFZShlLHQscixuLGkpe3ZhciBvPWVbMF0sYT1lWzFdLHM9b1swXSxsPW9bMV0sYz1hWzBdLHU9YVsxXSxoPTAsZj0xLHA9Yy1zLGQ9dS1sLGc7aWYoZz10LXMsISghcCYmZz4wKSl7aWYoZy89cCxwPDApe2lmKGc8aClyZXR1cm47ZzxmJiYoZj1nKX1lbHNlIGlmKHA+MCl7aWYoZz5mKXJldHVybjtnPmgmJihoPWcpfWlmKGc9bi1zLCEoIXAmJmc8MCkpe2lmKGcvPXAscDwwKXtpZihnPmYpcmV0dXJuO2c+aCYmKGg9Zyl9ZWxzZSBpZihwPjApe2lmKGc8aClyZXR1cm47ZzxmJiYoZj1nKX1pZihnPXItbCwhKCFkJiZnPjApKXtpZihnLz1kLGQ8MCl7aWYoZzxoKXJldHVybjtnPGYmJihmPWcpfWVsc2UgaWYoZD4wKXtpZihnPmYpcmV0dXJuO2c+aCYmKGg9Zyl9aWYoZz1pLWwsISghZCYmZzwwKSl7aWYoZy89ZCxkPDApe2lmKGc+ZilyZXR1cm47Zz5oJiYoaD1nKX1lbHNlIGlmKGQ+MCl7aWYoZzxoKXJldHVybjtnPGYmJihmPWcpfXJldHVybiEoaD4wKSYmIShmPDEpfHwoaD4wJiYoZVswXT1bcytoKnAsbCtoKmRdKSxmPDEmJihlWzFdPVtzK2YqcCxsK2YqZF0pKSwhMH19fX19ZnVuY3Rpb24gSkVlKGUsdCxyLG4saSl7dmFyIG89ZVsxXTtpZihvKXJldHVybiEwO3ZhciBhPWVbMF0scz1lLmxlZnQsbD1lLnJpZ2h0LGM9c1swXSx1PXNbMV0saD1sWzBdLGY9bFsxXSxwPShjK2gpLzIsZD0odStmKS8yLGcsXztpZihmPT09dSl7aWYocDx0fHxwPj1uKXJldHVybjtpZihjPmgpe2lmKCFhKWE9W3Ascl07ZWxzZSBpZihhWzFdPj1pKXJldHVybjtvPVtwLGldfWVsc2V7aWYoIWEpYT1bcCxpXTtlbHNlIGlmKGFbMV08cilyZXR1cm47bz1bcCxyXX19ZWxzZSBpZihnPShjLWgpLyhmLXUpLF89ZC1nKnAsZzwtMXx8Zz4xKWlmKGM+aCl7aWYoIWEpYT1bKHItXykvZyxyXTtlbHNlIGlmKGFbMV0+PWkpcmV0dXJuO289WyhpLV8pL2csaV19ZWxzZXtpZighYSlhPVsoaS1fKS9nLGldO2Vsc2UgaWYoYVsxXTxyKXJldHVybjtvPVsoci1fKS9nLHJdfWVsc2UgaWYodTxmKXtpZighYSlhPVt0LGcqdCtfXTtlbHNlIGlmKGFbMF0+PW4pcmV0dXJuO289W24sZypuK19dfWVsc2V7aWYoIWEpYT1bbixnKm4rX107ZWxzZSBpZihhWzBdPHQpcmV0dXJuO289W3QsZyp0K19dfXJldHVybiBlWzBdPWEsZVsxXT1vLCEwfWZ1bmN0aW9uIEIzdChlLHQscixuKXtmb3IodmFyIGk9d28ubGVuZ3RoLG87aS0tOykoIUpFZShvPXdvW2ldLGUsdCxyLG4pfHwhWkVlKG8sZSx0LHIsbil8fCEoTWF0aC5hYnMob1swXVswXS1vWzFdWzBdKT5Icnx8TWF0aC5hYnMob1swXVsxXS1vWzFdWzFdKT5IcikpJiZkZWxldGUgd29baV19ZnVuY3Rpb24gSDN0KGUpe3JldHVybiBVYVtlLmluZGV4XT17c2l0ZTplLGhhbGZlZGdlczpbXX19ZnVuY3Rpb24gUUVlKGUsdCl7dmFyIHI9ZS5zaXRlLG49dC5sZWZ0LGk9dC5yaWdodDtyZXR1cm4gcj09PWkmJihpPW4sbj1yKSxpP01hdGguYXRhbjIoaVsxXS1uWzFdLGlbMF0tblswXSk6KHI9PT1uPyhuPXRbMV0saT10WzBdKToobj10WzBdLGk9dFsxXSksTWF0aC5hdGFuMihuWzBdLWlbMF0saVsxXS1uWzFdKSl9ZnVuY3Rpb24gZCQoZSx0KXtyZXR1cm4gdFsrKHQubGVmdCE9PWUuc2l0ZSldfWZ1bmN0aW9uIHQ1ZShlLHQpe3JldHVybiB0WysodC5sZWZ0PT09ZS5zaXRlKV19ZnVuY3Rpb24gVjN0KCl7Zm9yKHZhciBlPTAsdD1VYS5sZW5ndGgscixuLGksbztlPHQ7KytlKWlmKChyPVVhW2VdKSYmKG89KG49ci5oYWxmZWRnZXMpLmxlbmd0aCkpe3ZhciBhPW5ldyBBcnJheShvKSxzPW5ldyBBcnJheShvKTtmb3IoaT0wO2k8bzsrK2kpYVtpXT1pLHNbaV09UUVlKHIsd29bbltpXV0pO2ZvcihhLnNvcnQoZnVuY3Rpb24obCxjKXtyZXR1cm4gc1tjXS1zW2xdfSksaT0wO2k8bzsrK2kpc1tpXT1uW2FbaV1dO2ZvcihpPTA7aTxvOysraSluW2ldPXNbaV19fWZ1bmN0aW9uIFUzdChlLHQscixuKXt2YXIgaT1VYS5sZW5ndGgsbyxhLHMsbCxjLHUsaCxmLHAsZCxnLF8seT0hMDtmb3Iobz0wO288aTsrK28paWYoYT1VYVtvXSl7Zm9yKHM9YS5zaXRlLGM9YS5oYWxmZWRnZXMsbD1jLmxlbmd0aDtsLS07KXdvW2NbbF1dfHxjLnNwbGljZShsLDEpO2ZvcihsPTAsdT1jLmxlbmd0aDtsPHU7KWQ9dDVlKGEsd29bY1tsXV0pLGc9ZFswXSxfPWRbMV0saD1kJChhLHdvW2NbKytsJXVdXSksZj1oWzBdLHA9aFsxXSwoTWF0aC5hYnMoZy1mKT5Icnx8TWF0aC5hYnMoXy1wKT5IcikmJihjLnNwbGljZShsLDAsd28ucHVzaChyMihzLGQsTWF0aC5hYnMoZy1lKTxIciYmbi1fPkhyP1tlLE1hdGguYWJzKGYtZSk8SHI/cDpuXTpNYXRoLmFicyhfLW4pPEhyJiZyLWc+SHI/W01hdGguYWJzKHAtbik8SHI/ZjpyLG5dOk1hdGguYWJzKGctcik8SHImJl8tdD5Icj9bcixNYXRoLmFicyhmLXIpPEhyP3A6dF06TWF0aC5hYnMoXy10KTxIciYmZy1lPkhyP1tNYXRoLmFicyhwLXQpPEhyP2Y6ZSx0XTpudWxsKSktMSksKyt1KTt1JiYoeT0hMSl9aWYoeSl7dmFyIHgsYixTLEM9MS8wO2ZvcihvPTAseT1udWxsO288aTsrK28pKGE9VWFbb10pJiYocz1hLnNpdGUseD1zWzBdLWUsYj1zWzFdLXQsUz14KngrYipiLFM8QyYmKEM9Uyx5PWEpKTtpZih5KXt2YXIgUD1bZSx0XSxrPVtlLG5dLE89W3Isbl0sRD1bcix0XTt5LmhhbGZlZGdlcy5wdXNoKHdvLnB1c2gocjIocz15LnNpdGUsUCxrKSktMSx3by5wdXNoKHIyKHMsayxPKSktMSx3by5wdXNoKHIyKHMsTyxEKSktMSx3by5wdXNoKHIyKHMsRCxQKSktMSl9fWZvcihvPTA7bzxpOysrbykoYT1VYVtvXSkmJihhLmhhbGZlZGdlcy5sZW5ndGh8fGRlbGV0ZSBVYVtvXSl9dmFyIHEzdD1bXSxRODtmdW5jdGlvbiBlNWUoKXt0Mih0aGlzKSx0aGlzLng9dGhpcy55PXRoaXMuYXJjPXRoaXMuc2l0ZT10aGlzLmN5PW51bGx9ZnVuY3Rpb24gdXkoZSl7dmFyIHQ9ZS5QLHI9ZS5OO2lmKCEoIXR8fCFyKSl7dmFyIG49dC5zaXRlLGk9ZS5zaXRlLG89ci5zaXRlO2lmKG4hPT1vKXt2YXIgYT1pWzBdLHM9aVsxXSxsPW5bMF0tYSxjPW5bMV0tcyx1PW9bMF0tYSxoPW9bMV0tcyxmPTIqKGwqaC1jKnUpO2lmKCEoZj49LUczdCkpe3ZhciBwPWwqbCtjKmMsZD11KnUraCpoLGc9KGgqcC1jKmQpL2YsXz0obCpkLXUqcCkvZix5PXEzdC5wb3AoKXx8bmV3IGU1ZTt5LmFyYz1lLHkuc2l0ZT1pLHkueD1nK2EseS55PSh5LmN5PV8rcykrTWF0aC5zcXJ0KGcqZytfKl8pLGUuY2lyY2xlPXk7Zm9yKHZhciB4PW51bGwsYj1uMi5fO2I7KWlmKHkueTxiLnl8fHkueT09PWIueSYmeS54PD1iLngpaWYoYi5MKWI9Yi5MO2Vsc2V7eD1iLlA7YnJlYWt9ZWxzZSBpZihiLlIpYj1iLlI7ZWxzZXt4PWI7YnJlYWt9bjIuaW5zZXJ0KHgseSkseHx8KFE4PXkpfX19fWZ1bmN0aW9uIGh5KGUpe3ZhciB0PWUuY2lyY2xlO3QmJih0LlB8fChROD10Lk4pLG4yLnJlbW92ZSh0KSxxM3QucHVzaCh0KSx0Mih0KSxlLmNpcmNsZT1udWxsKX12YXIgWTN0PVtdO2Z1bmN0aW9uIHI1ZSgpe3QyKHRoaXMpLHRoaXMuZWRnZT10aGlzLnNpdGU9dGhpcy5jaXJjbGU9bnVsbH1mdW5jdGlvbiBXM3QoZSl7dmFyIHQ9WTN0LnBvcCgpfHxuZXcgcjVlO3JldHVybiB0LnNpdGU9ZSx0fWZ1bmN0aW9uIG0kKGUpe2h5KGUpLGZ5LnJlbW92ZShlKSxZM3QucHVzaChlKSx0MihlKX1mdW5jdGlvbiBqM3QoZSl7dmFyIHQ9ZS5jaXJjbGUscj10Lngsbj10LmN5LGk9W3Isbl0sbz1lLlAsYT1lLk4scz1bZV07bSQoZSk7Zm9yKHZhciBsPW87bC5jaXJjbGUmJk1hdGguYWJzKHItbC5jaXJjbGUueCk8SHImJk1hdGguYWJzKG4tbC5jaXJjbGUuY3kpPEhyOylvPWwuUCxzLnVuc2hpZnQobCksbSQobCksbD1vO3MudW5zaGlmdChsKSxoeShsKTtmb3IodmFyIGM9YTtjLmNpcmNsZSYmTWF0aC5hYnMoci1jLmNpcmNsZS54KTxIciYmTWF0aC5hYnMobi1jLmNpcmNsZS5jeSk8SHI7KWE9Yy5OLHMucHVzaChjKSxtJChjKSxjPWE7cy5wdXNoKGMpLGh5KGMpO3ZhciB1PXMubGVuZ3RoLGg7Zm9yKGg9MTtoPHU7KytoKWM9c1toXSxsPXNbaC0xXSx6NShjLmVkZ2UsbC5zaXRlLGMuc2l0ZSxpKTtsPXNbMF0sYz1zW3UtMV0sYy5lZGdlPWUyKGwuc2l0ZSxjLnNpdGUsbnVsbCxpKSx1eShsKSx1eShjKX1mdW5jdGlvbiBYM3QoZSl7Zm9yKHZhciB0PWVbMF0scj1lWzFdLG4saSxvLGEscz1meS5fO3M7KWlmKG89JDN0KHMsciktdCxvPkhyKXM9cy5MO2Vsc2UgaWYoYT10LW41ZShzLHIpLGE+SHIpe2lmKCFzLlIpe249czticmVha31zPXMuUn1lbHNle28+LUhyPyhuPXMuUCxpPXMpOmE+LUhyPyhuPXMsaT1zLk4pOm49aT1zO2JyZWFrfUgzdChlKTt2YXIgbD1XM3QoZSk7aWYoZnkuaW5zZXJ0KG4sbCksISghbiYmIWkpKXtpZihuPT09aSl7aHkobiksaT1XM3Qobi5zaXRlKSxmeS5pbnNlcnQobCxpKSxsLmVkZ2U9aS5lZGdlPWUyKG4uc2l0ZSxsLnNpdGUpLHV5KG4pLHV5KGkpO3JldHVybn1pZighaSl7bC5lZGdlPWUyKG4uc2l0ZSxsLnNpdGUpO3JldHVybn1oeShuKSxoeShpKTt2YXIgYz1uLnNpdGUsdT1jWzBdLGg9Y1sxXSxmPWVbMF0tdSxwPWVbMV0taCxkPWkuc2l0ZSxnPWRbMF0tdSxfPWRbMV0taCx5PTIqKGYqXy1wKmcpLHg9ZipmK3AqcCxiPWcqZytfKl8sUz1bKF8qeC1wKmIpL3krdSwoZipiLWcqeCkveStoXTt6NShpLmVkZ2UsYyxkLFMpLGwuZWRnZT1lMihjLGUsbnVsbCxTKSxpLmVkZ2U9ZTIoZSxkLG51bGwsUyksdXkobiksdXkoaSl9fWZ1bmN0aW9uICQzdChlLHQpe3ZhciByPWUuc2l0ZSxuPXJbMF0saT1yWzFdLG89aS10O2lmKCFvKXJldHVybiBuO3ZhciBhPWUuUDtpZighYSlyZXR1cm4tMS8wO3I9YS5zaXRlO3ZhciBzPXJbMF0sbD1yWzFdLGM9bC10O2lmKCFjKXJldHVybiBzO3ZhciB1PXMtbixoPTEvby0xL2MsZj11L2M7cmV0dXJuIGg/KC1mK01hdGguc3FydChmKmYtMipoKih1KnUvKC0yKmMpLWwrYy8yK2ktby8yKSkpL2grbjoobitzKS8yfWZ1bmN0aW9uIG41ZShlLHQpe3ZhciByPWUuTjtpZihyKXJldHVybiAkM3Qocix0KTt2YXIgbj1lLnNpdGU7cmV0dXJuIG5bMV09PT10P25bMF06MS8wfXZhciBIcj0xZS02LEczdD0xZS0xMixmeSxVYSxuMix3bztmdW5jdGlvbiBpNWUoZSx0LHIpe3JldHVybihlWzBdLXJbMF0pKih0WzFdLWVbMV0pLShlWzBdLXRbMF0pKihyWzFdLWVbMV0pfWZ1bmN0aW9uIG81ZShlLHQpe3JldHVybiB0WzFdLWVbMV18fHRbMF0tZVswXX1mdW5jdGlvbiBGNShlLHQpe3ZhciByPWUuc29ydChvNWUpLnBvcCgpLG4saSxvO2Zvcih3bz1bXSxVYT1uZXcgQXJyYXkoZS5sZW5ndGgpLGZ5PW5ldyBwJCxuMj1uZXcgcCQ7OylpZihvPVE4LHImJighb3x8clsxXTxvLnl8fHJbMV09PT1vLnkmJnJbMF08by54KSkoclswXSE9PW58fHJbMV0hPT1pKSYmKFgzdChyKSxuPXJbMF0saT1yWzFdKSxyPWUucG9wKCk7ZWxzZSBpZihvKWozdChvLmFyYyk7ZWxzZSBicmVhaztpZihWM3QoKSx0KXt2YXIgYT0rdFswXVswXSxzPSt0WzBdWzFdLGw9K3RbMV1bMF0sYz0rdFsxXVsxXTtCM3QoYSxzLGwsYyksVTN0KGEscyxsLGMpfXRoaXMuZWRnZXM9d28sdGhpcy5jZWxscz1VYSxmeT1uMj13bz1VYT1udWxsfUY1LnByb3RvdHlwZT17Y29uc3RydWN0b3I6RjUscG9seWdvbnM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmVkZ2VzO3JldHVybiB0aGlzLmNlbGxzLm1hcChmdW5jdGlvbih0KXt2YXIgcj10LmhhbGZlZGdlcy5tYXAoZnVuY3Rpb24obil7cmV0dXJuIGQkKHQsZVtuXSl9KTtyZXR1cm4gci5kYXRhPXQuc2l0ZS5kYXRhLHJ9KX0sdHJpYW5nbGVzOmZ1bmN0aW9uKCl7dmFyIGU9W10sdD10aGlzLmVkZ2VzO3JldHVybiB0aGlzLmNlbGxzLmZvckVhY2goZnVuY3Rpb24ocixuKXtpZighIShzPShvPXIuaGFsZmVkZ2VzKS5sZW5ndGgpKWZvcih2YXIgaT1yLnNpdGUsbyxhPS0xLHMsbCxjPXRbb1tzLTFdXSx1PWMubGVmdD09PWk/Yy5yaWdodDpjLmxlZnQ7KythPHM7KWw9dSxjPXRbb1thXV0sdT1jLmxlZnQ9PT1pP2MucmlnaHQ6Yy5sZWZ0LGwmJnUmJm48bC5pbmRleCYmbjx1LmluZGV4JiZpNWUoaSxsLHUpPDAmJmUucHVzaChbaS5kYXRhLGwuZGF0YSx1LmRhdGFdKX0pLGV9LGxpbmtzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRnZXMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJpZ2h0fSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybntzb3VyY2U6ZS5sZWZ0LmRhdGEsdGFyZ2V0OmUucmlnaHQuZGF0YX19KX0sZmluZDpmdW5jdGlvbihlLHQscil7Zm9yKHZhciBuPXRoaXMsaSxvPW4uX2ZvdW5kfHwwLGE9bi5jZWxscy5sZW5ndGgsczshKHM9bi5jZWxsc1tvXSk7KWlmKCsrbz49YSlyZXR1cm4gbnVsbDt2YXIgbD1lLXMuc2l0ZVswXSxjPXQtcy5zaXRlWzFdLHU9bCpsK2MqYztkbyBzPW4uY2VsbHNbaT1vXSxvPW51bGwscy5oYWxmZWRnZXMuZm9yRWFjaChmdW5jdGlvbihoKXt2YXIgZj1uLmVkZ2VzW2hdLHA9Zi5sZWZ0O2lmKCEoKHA9PT1zLnNpdGV8fCFwKSYmIShwPWYucmlnaHQpKSl7dmFyIGQ9ZS1wWzBdLGc9dC1wWzFdLF89ZCpkK2cqZztfPHUmJih1PV8sbz1wLmluZGV4KX19KTt3aGlsZShvIT09bnVsbCk7cmV0dXJuIG4uX2ZvdW5kPWkscj09bnVsbHx8dTw9cipyP3Muc2l0ZTpudWxsfX07ZnVuY3Rpb24gSzN0KCl7dmFyIGU9TzN0LHQ9ejN0LHI9bnVsbDtmdW5jdGlvbiBuKGkpe3JldHVybiBuZXcgRjUoaS5tYXAoZnVuY3Rpb24obyxhKXt2YXIgcz1bTWF0aC5yb3VuZChlKG8sYSxpKS9IcikqSHIsTWF0aC5yb3VuZCh0KG8sYSxpKS9IcikqSHJdO3JldHVybiBzLmluZGV4PWEscy5kYXRhPW8sc30pLHIpfXJldHVybiBuLnBvbHlnb25zPWZ1bmN0aW9uKGkpe3JldHVybiBuKGkpLnBvbHlnb25zKCl9LG4ubGlua3M9ZnVuY3Rpb24oaSl7cmV0dXJuIG4oaSkubGlua3MoKX0sbi50cmlhbmdsZXM9ZnVuY3Rpb24oaSl7cmV0dXJuIG4oaSkudHJpYW5nbGVzKCl9LG4ueD1mdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10eXBlb2YgaT09ImZ1bmN0aW9uIj9pOmgkKCtpKSxuKTplfSxuLnk9ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9dHlwZW9mIGk9PSJmdW5jdGlvbiI/aTpoJCgraSksbik6dH0sbi5leHRlbnQ9ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9aT09bnVsbD9udWxsOltbK2lbMF1bMF0sK2lbMF1bMV1dLFsraVsxXVswXSwraVsxXVsxXV1dLG4pOnImJltbclswXVswXSxyWzBdWzFdXSxbclsxXVswXSxyWzFdWzFdXV19LG4uc2l6ZT1mdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1pPT1udWxsP251bGw6W1swLDBdLFsraVswXSwraVsxXV1dLG4pOnImJltyWzFdWzBdLXJbMF1bMF0sclsxXVsxXS1yWzBdWzFdXX0sbn1SbSgpO2Z1bmN0aW9uIEI1KGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX1mdW5jdGlvbiBnJChlLHQscil7dGhpcy50YXJnZXQ9ZSx0aGlzLnR5cGU9dCx0aGlzLnRyYW5zZm9ybT1yfWZ1bmN0aW9uIFhoKGUsdCxyKXt0aGlzLms9ZSx0aGlzLng9dCx0aGlzLnk9cn1YaC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlhoLHNjYWxlOmZ1bmN0aW9uKGUpe3JldHVybiBlPT09MT90aGlzOm5ldyBYaCh0aGlzLmsqZSx0aGlzLngsdGhpcy55KX0sdHJhbnNsYXRlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT0wJnQ9PT0wP3RoaXM6bmV3IFhoKHRoaXMuayx0aGlzLngrdGhpcy5rKmUsdGhpcy55K3RoaXMuayp0KX0sYXBwbHk6ZnVuY3Rpb24oZSl7cmV0dXJuW2VbMF0qdGhpcy5rK3RoaXMueCxlWzFdKnRoaXMuayt0aGlzLnldfSxhcHBseVg6ZnVuY3Rpb24oZSl7cmV0dXJuIGUqdGhpcy5rK3RoaXMueH0sYXBwbHlZOmZ1bmN0aW9uKGUpe3JldHVybiBlKnRoaXMuayt0aGlzLnl9LGludmVydDpmdW5jdGlvbihlKXtyZXR1cm5bKGVbMF0tdGhpcy54KS90aGlzLmssKGVbMV0tdGhpcy55KS90aGlzLmtdfSxpbnZlcnRYOmZ1bmN0aW9uKGUpe3JldHVybihlLXRoaXMueCkvdGhpcy5rfSxpbnZlcnRZOmZ1bmN0aW9uKGUpe3JldHVybihlLXRoaXMueSkvdGhpcy5rfSxyZXNjYWxlWDpmdW5jdGlvbihlKXtyZXR1cm4gZS5jb3B5KCkuZG9tYWluKGUucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRYLHRoaXMpLm1hcChlLmludmVydCxlKSl9LHJlc2NhbGVZOmZ1bmN0aW9uKGUpe3JldHVybiBlLmNvcHkoKS5kb21haW4oZS5yYW5nZSgpLm1hcCh0aGlzLmludmVydFksdGhpcykubWFwKGUuaW52ZXJ0LGUpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNsYXRlKCIrdGhpcy54KyIsIit0aGlzLnkrIikgc2NhbGUoIit0aGlzLmsrIikifX07dmFyICRoPW5ldyBYaCgxLDAsMCk7aTIucHJvdG90eXBlPVhoLnByb3RvdHlwZTtmdW5jdGlvbiBpMihlKXtmb3IoOyFlLl9fem9vbTspaWYoIShlPWUucGFyZW50Tm9kZSkpcmV0dXJuICRoO3JldHVybiBlLl9fem9vbX1mdW5jdGlvbiB0Uigpe3F0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIG8yKCl7cXQucHJldmVudERlZmF1bHQoKSxxdC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBhNWUoKXtyZXR1cm4hcXQuY3RybEtleSYmIXF0LmJ1dHRvbn1mdW5jdGlvbiBzNWUoKXt2YXIgZT10aGlzO3JldHVybiBlIGluc3RhbmNlb2YgU1ZHRWxlbWVudD8oZT1lLm93bmVyU1ZHRWxlbWVudHx8ZSxlLmhhc0F0dHJpYnV0ZSgidmlld0JveCIpPyhlPWUudmlld0JveC5iYXNlVmFsLFtbZS54LGUueV0sW2UueCtlLndpZHRoLGUueStlLmhlaWdodF1dKTpbWzAsMF0sW2Uud2lkdGguYmFzZVZhbC52YWx1ZSxlLmhlaWdodC5iYXNlVmFsLnZhbHVlXV0pOltbMCwwXSxbZS5jbGllbnRXaWR0aCxlLmNsaWVudEhlaWdodF1dfWZ1bmN0aW9uIFozdCgpe3JldHVybiB0aGlzLl9fem9vbXx8JGh9ZnVuY3Rpb24gbDVlKCl7cmV0dXJuLXF0LmRlbHRhWSoocXQuZGVsdGFNb2RlPT09MT8uMDU6cXQuZGVsdGFNb2RlPzE6LjAwMil9ZnVuY3Rpb24gYzVlKCl7cmV0dXJuIG5hdmlnYXRvci5tYXhUb3VjaFBvaW50c3x8Im9udG91Y2hzdGFydCJpbiB0aGlzfWZ1bmN0aW9uIHU1ZShlLHQscil7dmFyIG49ZS5pbnZlcnRYKHRbMF1bMF0pLXJbMF1bMF0saT1lLmludmVydFgodFsxXVswXSktclsxXVswXSxvPWUuaW52ZXJ0WSh0WzBdWzFdKS1yWzBdWzFdLGE9ZS5pbnZlcnRZKHRbMV1bMV0pLXJbMV1bMV07cmV0dXJuIGUudHJhbnNsYXRlKGk+bj8obitpKS8yOk1hdGgubWluKDAsbil8fE1hdGgubWF4KDAsaSksYT5vPyhvK2EpLzI6TWF0aC5taW4oMCxvKXx8TWF0aC5tYXgoMCxhKSl9ZnVuY3Rpb24gZVIoKXt2YXIgZT1hNWUsdD1zNWUscj11NWUsbj1sNWUsaT1jNWUsbz1bMCwxLzBdLGE9W1stMS8wLC0xLzBdLFsxLzAsMS8wXV0scz0yNTAsbD12TCxjPXhzKCJzdGFydCIsInpvb20iLCJlbmQiKSx1LGgsZj01MDAscD0xNTAsZD0wO2Z1bmN0aW9uIGcoTCl7TC5wcm9wZXJ0eSgiX196b29tIixaM3QpLm9uKCJ3aGVlbC56b29tIixQKS5vbigibW91c2Vkb3duLnpvb20iLGspLm9uKCJkYmxjbGljay56b29tIixPKS5maWx0ZXIoaSkub24oInRvdWNoc3RhcnQuem9vbSIsRCkub24oInRvdWNobW92ZS56b29tIixCKS5vbigidG91Y2hlbmQuem9vbSB0b3VjaGNhbmNlbC56b29tIixJKS5zdHlsZSgidG91Y2gtYWN0aW9uIiwibm9uZSIpLnN0eWxlKCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3IiLCJyZ2JhKDAsMCwwLDApIil9Zy50cmFuc2Zvcm09ZnVuY3Rpb24oTCxSLEYpe3ZhciB6PUwuc2VsZWN0aW9uP0wuc2VsZWN0aW9uKCk6TDt6LnByb3BlcnR5KCJfX3pvb20iLFozdCksTCE9PXo/YihMLFIsRik6ei5pbnRlcnJ1cHQoKS5lYWNoKGZ1bmN0aW9uKCl7Uyh0aGlzLGFyZ3VtZW50cykuc3RhcnQoKS56b29tKG51bGwsdHlwZW9mIFI9PSJmdW5jdGlvbiI/Ui5hcHBseSh0aGlzLGFyZ3VtZW50cyk6UikuZW5kKCl9KX0sZy5zY2FsZUJ5PWZ1bmN0aW9uKEwsUixGKXtnLnNjYWxlVG8oTCxmdW5jdGlvbigpe3ZhciB6PXRoaXMuX196b29tLmssVT10eXBlb2YgUj09ImZ1bmN0aW9uIj9SLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpSO3JldHVybiB6KlV9LEYpfSxnLnNjYWxlVG89ZnVuY3Rpb24oTCxSLEYpe2cudHJhbnNmb3JtKEwsZnVuY3Rpb24oKXt2YXIgej10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxVPXRoaXMuX196b29tLFc9Rj09bnVsbD94KHopOnR5cGVvZiBGPT0iZnVuY3Rpb24iP0YuYXBwbHkodGhpcyxhcmd1bWVudHMpOkYsWj1VLmludmVydChXKSxydD10eXBlb2YgUj09ImZ1bmN0aW9uIj9SLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpSO3JldHVybiByKHkoXyhVLHJ0KSxXLFopLHosYSl9LEYpfSxnLnRyYW5zbGF0ZUJ5PWZ1bmN0aW9uKEwsUixGKXtnLnRyYW5zZm9ybShMLGZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcy5fX3pvb20udHJhbnNsYXRlKHR5cGVvZiBSPT0iZnVuY3Rpb24iP1IuYXBwbHkodGhpcyxhcmd1bWVudHMpOlIsdHlwZW9mIEY9PSJmdW5jdGlvbiI/Ri5hcHBseSh0aGlzLGFyZ3VtZW50cyk6RiksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyksYSl9KX0sZy50cmFuc2xhdGVUbz1mdW5jdGlvbihMLFIsRix6KXtnLnRyYW5zZm9ybShMLGZ1bmN0aW9uKCl7dmFyIFU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksVz10aGlzLl9fem9vbSxaPXo9PW51bGw/eChVKTp0eXBlb2Ygej09ImZ1bmN0aW9uIj96LmFwcGx5KHRoaXMsYXJndW1lbnRzKTp6O3JldHVybiByKCRoLnRyYW5zbGF0ZShaWzBdLFpbMV0pLnNjYWxlKFcuaykudHJhbnNsYXRlKHR5cGVvZiBSPT0iZnVuY3Rpb24iPy1SLmFwcGx5KHRoaXMsYXJndW1lbnRzKTotUix0eXBlb2YgRj09ImZ1bmN0aW9uIj8tRi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6LUYpLFUsYSl9LHopfTtmdW5jdGlvbiBfKEwsUil7cmV0dXJuIFI9TWF0aC5tYXgob1swXSxNYXRoLm1pbihvWzFdLFIpKSxSPT09TC5rP0w6bmV3IFhoKFIsTC54LEwueSl9ZnVuY3Rpb24geShMLFIsRil7dmFyIHo9UlswXS1GWzBdKkwuayxVPVJbMV0tRlsxXSpMLms7cmV0dXJuIHo9PT1MLngmJlU9PT1MLnk/TDpuZXcgWGgoTC5rLHosVSl9ZnVuY3Rpb24geChMKXtyZXR1cm5bKCtMWzBdWzBdKyArTFsxXVswXSkvMiwoK0xbMF1bMV0rICtMWzFdWzFdKS8yXX1mdW5jdGlvbiBiKEwsUixGKXtMLm9uKCJzdGFydC56b29tIixmdW5jdGlvbigpe1ModGhpcyxhcmd1bWVudHMpLnN0YXJ0KCl9KS5vbigiaW50ZXJydXB0Lnpvb20gZW5kLnpvb20iLGZ1bmN0aW9uKCl7Uyh0aGlzLGFyZ3VtZW50cykuZW5kKCl9KS50d2Vlbigiem9vbSIsZnVuY3Rpb24oKXt2YXIgej10aGlzLFU9YXJndW1lbnRzLFc9Uyh6LFUpLFo9dC5hcHBseSh6LFUpLHJ0PUY9PW51bGw/eChaKTp0eXBlb2YgRj09ImZ1bmN0aW9uIj9GLmFwcGx5KHosVSk6RixvdD1NYXRoLm1heChaWzFdWzBdLVpbMF1bMF0sWlsxXVsxXS1aWzBdWzFdKSxzdD16Ll9fem9vbSxTdD10eXBlb2YgUj09ImZ1bmN0aW9uIj9SLmFwcGx5KHosVSk6UixidD1sKHN0LmludmVydChydCkuY29uY2F0KG90L3N0LmspLFN0LmludmVydChydCkuY29uY2F0KG90L1N0LmspKTtyZXR1cm4gZnVuY3Rpb24oTXQpe2lmKE10PT09MSlNdD1TdDtlbHNle3ZhciBsdD1idChNdCksS3Q9b3QvbHRbMl07TXQ9bmV3IFhoKEt0LHJ0WzBdLWx0WzBdKkt0LHJ0WzFdLWx0WzFdKkt0KX1XLnpvb20obnVsbCxNdCl9fSl9ZnVuY3Rpb24gUyhMLFIsRil7cmV0dXJuIUYmJkwuX196b29taW5nfHxuZXcgQyhMLFIpfWZ1bmN0aW9uIEMoTCxSKXt0aGlzLnRoYXQ9TCx0aGlzLmFyZ3M9Uix0aGlzLmFjdGl2ZT0wLHRoaXMuZXh0ZW50PXQuYXBwbHkoTCxSKSx0aGlzLnRhcHM9MH1DLnByb3RvdHlwZT17c3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4rK3RoaXMuYWN0aXZlPT09MSYmKHRoaXMudGhhdC5fX3pvb21pbmc9dGhpcyx0aGlzLmVtaXQoInN0YXJ0IikpLHRoaXN9LHpvb206ZnVuY3Rpb24oTCxSKXtyZXR1cm4gdGhpcy5tb3VzZSYmTCE9PSJtb3VzZSImJih0aGlzLm1vdXNlWzFdPVIuaW52ZXJ0KHRoaXMubW91c2VbMF0pKSx0aGlzLnRvdWNoMCYmTCE9PSJ0b3VjaCImJih0aGlzLnRvdWNoMFsxXT1SLmludmVydCh0aGlzLnRvdWNoMFswXSkpLHRoaXMudG91Y2gxJiZMIT09InRvdWNoIiYmKHRoaXMudG91Y2gxWzFdPVIuaW52ZXJ0KHRoaXMudG91Y2gxWzBdKSksdGhpcy50aGF0Ll9fem9vbT1SLHRoaXMuZW1pdCgiem9vbSIpLHRoaXN9LGVuZDpmdW5jdGlvbigpe3JldHVybi0tdGhpcy5hY3RpdmU9PT0wJiYoZGVsZXRlIHRoaXMudGhhdC5fX3pvb21pbmcsdGhpcy5lbWl0KCJlbmQiKSksdGhpc30sZW1pdDpmdW5jdGlvbihMKXtFcChuZXcgZyQoZyxMLHRoaXMudGhhdC5fX3pvb20pLGMuYXBwbHksYyxbTCx0aGlzLnRoYXQsdGhpcy5hcmdzXSl9fTtmdW5jdGlvbiBQKCl7aWYoIWUuYXBwbHkodGhpcyxhcmd1bWVudHMpKXJldHVybjt2YXIgTD1TKHRoaXMsYXJndW1lbnRzKSxSPXRoaXMuX196b29tLEY9TWF0aC5tYXgob1swXSxNYXRoLm1pbihvWzFdLFIuaypNYXRoLnBvdygyLG4uYXBwbHkodGhpcyxhcmd1bWVudHMpKSkpLHo9em8odGhpcyk7aWYoTC53aGVlbCkoTC5tb3VzZVswXVswXSE9PXpbMF18fEwubW91c2VbMF1bMV0hPT16WzFdKSYmKEwubW91c2VbMV09Ui5pbnZlcnQoTC5tb3VzZVswXT16KSksY2xlYXJUaW1lb3V0KEwud2hlZWwpO2Vsc2V7aWYoUi5rPT09RilyZXR1cm47TC5tb3VzZT1beixSLmludmVydCh6KV0saHUodGhpcyksTC5zdGFydCgpfW8yKCksTC53aGVlbD1zZXRUaW1lb3V0KFUscCksTC56b29tKCJtb3VzZSIscih5KF8oUixGKSxMLm1vdXNlWzBdLEwubW91c2VbMV0pLEwuZXh0ZW50LGEpKTtmdW5jdGlvbiBVKCl7TC53aGVlbD1udWxsLEwuZW5kKCl9fWZ1bmN0aW9uIGsoKXtpZihofHwhZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpcmV0dXJuO3ZhciBMPVModGhpcyxhcmd1bWVudHMsITApLFI9SHQocXQudmlldykub24oIm1vdXNlbW92ZS56b29tIixXLCEwKS5vbigibW91c2V1cC56b29tIixaLCEwKSxGPXpvKHRoaXMpLHo9cXQuY2xpZW50WCxVPXF0LmNsaWVudFk7Rm0ocXQudmlldyksdFIoKSxMLm1vdXNlPVtGLHRoaXMuX196b29tLmludmVydChGKV0saHUodGhpcyksTC5zdGFydCgpO2Z1bmN0aW9uIFcoKXtpZihvMigpLCFMLm1vdmVkKXt2YXIgcnQ9cXQuY2xpZW50WC16LG90PXF0LmNsaWVudFktVTtMLm1vdmVkPXJ0KnJ0K290Km90PmR9TC56b29tKCJtb3VzZSIscih5KEwudGhhdC5fX3pvb20sTC5tb3VzZVswXT16byhMLnRoYXQpLEwubW91c2VbMV0pLEwuZXh0ZW50LGEpKX1mdW5jdGlvbiBaKCl7Ui5vbigibW91c2Vtb3ZlLnpvb20gbW91c2V1cC56b29tIixudWxsKSxCbShxdC52aWV3LEwubW92ZWQpLG8yKCksTC5lbmQoKX19ZnVuY3Rpb24gTygpe2lmKCEhZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBMPXRoaXMuX196b29tLFI9em8odGhpcyksRj1MLmludmVydChSKSx6PUwuayoocXQuc2hpZnRLZXk/LjU6MiksVT1yKHkoXyhMLHopLFIsRiksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyksYSk7bzIoKSxzPjA/SHQodGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKHMpLmNhbGwoYixVLFIpOkh0KHRoaXMpLmNhbGwoZy50cmFuc2Zvcm0sVSl9fWZ1bmN0aW9uIEQoKXtpZighIWUuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgTD1xdC50b3VjaGVzLFI9TC5sZW5ndGgsRj1TKHRoaXMsYXJndW1lbnRzLHF0LmNoYW5nZWRUb3VjaGVzLmxlbmd0aD09PVIpLHosVSxXLFo7Zm9yKHRSKCksVT0wO1U8UjsrK1UpVz1MW1VdLFo9Q3AodGhpcyxMLFcuaWRlbnRpZmllciksWj1bWix0aGlzLl9fem9vbS5pbnZlcnQoWiksVy5pZGVudGlmaWVyXSxGLnRvdWNoMD8hRi50b3VjaDEmJkYudG91Y2gwWzJdIT09WlsyXSYmKEYudG91Y2gxPVosRi50YXBzPTApOihGLnRvdWNoMD1aLHo9ITAsRi50YXBzPTErISF1KTt1JiYodT1jbGVhclRpbWVvdXQodSkpLHomJihGLnRhcHM8MiYmKHU9c2V0VGltZW91dChmdW5jdGlvbigpe3U9bnVsbH0sZikpLGh1KHRoaXMpLEYuc3RhcnQoKSl9fWZ1bmN0aW9uIEIoKXtpZighIXRoaXMuX196b29taW5nKXt2YXIgTD1TKHRoaXMsYXJndW1lbnRzKSxSPXF0LmNoYW5nZWRUb3VjaGVzLEY9Ui5sZW5ndGgseixVLFcsWjtmb3IobzIoKSx1JiYodT1jbGVhclRpbWVvdXQodSkpLEwudGFwcz0wLHo9MDt6PEY7Kyt6KVU9Ult6XSxXPUNwKHRoaXMsUixVLmlkZW50aWZpZXIpLEwudG91Y2gwJiZMLnRvdWNoMFsyXT09PVUuaWRlbnRpZmllcj9MLnRvdWNoMFswXT1XOkwudG91Y2gxJiZMLnRvdWNoMVsyXT09PVUuaWRlbnRpZmllciYmKEwudG91Y2gxWzBdPVcpO2lmKFU9TC50aGF0Ll9fem9vbSxMLnRvdWNoMSl7dmFyIHJ0PUwudG91Y2gwWzBdLG90PUwudG91Y2gwWzFdLHN0PUwudG91Y2gxWzBdLFN0PUwudG91Y2gxWzFdLGJ0PShidD1zdFswXS1ydFswXSkqYnQrKGJ0PXN0WzFdLXJ0WzFdKSpidCxNdD0oTXQ9U3RbMF0tb3RbMF0pKk10KyhNdD1TdFsxXS1vdFsxXSkqTXQ7VT1fKFUsTWF0aC5zcXJ0KGJ0L010KSksVz1bKHJ0WzBdK3N0WzBdKS8yLChydFsxXStzdFsxXSkvMl0sWj1bKG90WzBdK1N0WzBdKS8yLChvdFsxXStTdFsxXSkvMl19ZWxzZSBpZihMLnRvdWNoMClXPUwudG91Y2gwWzBdLFo9TC50b3VjaDBbMV07ZWxzZSByZXR1cm47TC56b29tKCJ0b3VjaCIscih5KFUsVyxaKSxMLmV4dGVudCxhKSl9fWZ1bmN0aW9uIEkoKXtpZighIXRoaXMuX196b29taW5nKXt2YXIgTD1TKHRoaXMsYXJndW1lbnRzKSxSPXF0LmNoYW5nZWRUb3VjaGVzLEY9Ui5sZW5ndGgseixVO2Zvcih0UigpLGgmJmNsZWFyVGltZW91dChoKSxoPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtoPW51bGx9LGYpLHo9MDt6PEY7Kyt6KVU9Ult6XSxMLnRvdWNoMCYmTC50b3VjaDBbMl09PT1VLmlkZW50aWZpZXI/ZGVsZXRlIEwudG91Y2gwOkwudG91Y2gxJiZMLnRvdWNoMVsyXT09PVUuaWRlbnRpZmllciYmZGVsZXRlIEwudG91Y2gxO2lmKEwudG91Y2gxJiYhTC50b3VjaDAmJihMLnRvdWNoMD1MLnRvdWNoMSxkZWxldGUgTC50b3VjaDEpLEwudG91Y2gwKUwudG91Y2gwWzFdPXRoaXMuX196b29tLmludmVydChMLnRvdWNoMFswXSk7ZWxzZSBpZihMLmVuZCgpLEwudGFwcz09PTIpe3ZhciBXPUh0KHRoaXMpLm9uKCJkYmxjbGljay56b29tIik7VyYmVy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX1yZXR1cm4gZy53aGVlbERlbHRhPWZ1bmN0aW9uKEwpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXR5cGVvZiBMPT0iZnVuY3Rpb24iP0w6QjUoK0wpLGcpOm59LGcuZmlsdGVyPWZ1bmN0aW9uKEwpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXR5cGVvZiBMPT0iZnVuY3Rpb24iP0w6QjUoISFMKSxnKTplfSxnLnRvdWNoYWJsZT1mdW5jdGlvbihMKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10eXBlb2YgTD09ImZ1bmN0aW9uIj9MOkI1KCEhTCksZyk6aX0sZy5leHRlbnQ9ZnVuY3Rpb24oTCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9dHlwZW9mIEw9PSJmdW5jdGlvbiI/TDpCNShbWytMWzBdWzBdLCtMWzBdWzFdXSxbK0xbMV1bMF0sK0xbMV1bMV1dXSksZyk6dH0sZy5zY2FsZUV4dGVudD1mdW5jdGlvbihMKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ob1swXT0rTFswXSxvWzFdPStMWzFdLGcpOltvWzBdLG9bMV1dfSxnLnRyYW5zbGF0ZUV4dGVudD1mdW5jdGlvbihMKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYVswXVswXT0rTFswXVswXSxhWzFdWzBdPStMWzFdWzBdLGFbMF1bMV09K0xbMF1bMV0sYVsxXVsxXT0rTFsxXVsxXSxnKTpbW2FbMF1bMF0sYVswXVsxXV0sW2FbMV1bMF0sYVsxXVsxXV1dfSxnLmNvbnN0cmFpbj1mdW5jdGlvbihMKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1MLGcpOnJ9LGcuZHVyYXRpb249ZnVuY3Rpb24oTCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9K0wsZyk6c30sZy5pbnRlcnBvbGF0ZT1mdW5jdGlvbihMKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1MLGcpOmx9LGcub249ZnVuY3Rpb24oKXt2YXIgTD1jLm9uLmFwcGx5KGMsYXJndW1lbnRzKTtyZXR1cm4gTD09PWM/ZzpMfSxnLmNsaWNrRGlzdGFuY2U9ZnVuY3Rpb24oTCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9KEw9K0wpKkwsZyk6TWF0aC5zcXJ0KGQpfSxnfXZhciBKM3Q9RWUoT2UoKSwxKTt2YXIgclI9Y2xhc3MgZXh0ZW5kcyB3cHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fZXhwZXJpbWVudHM9W119bG9hZCgpe2xldCB0PV9lKCkuZXhwZXJpbWVudHMoKTtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4ocj0+e0ozdC5pc0VxdWFsKHRoaXMuX2V4cGVyaW1lbnRzLHIpfHwodGhpcy5fZXhwZXJpbWVudHM9cix0aGlzLmVtaXRDaGFuZ2UoKSl9KX1nZXRFeHBlcmltZW50cygpe3JldHVybiB0aGlzLl9leHBlcmltZW50cy5zbGljZSgpfX0sblI9bmV3IHJSO3ZhciBoNWU9e2dvb2dsZVN0YW5kYXJkOlsiI2RiNDQzNyIsIiNmZjcwNDMiLCIjZjRiNDAwIiwiIzBmOWQ1OCIsIiMwMDc5NmIiLCIjMDBhY2MxIiwiIzQyODVmNCIsIiM1YzZiYzAiLCIjYWI0N2JjIl0sZ29vZ2xlQ29vbDpbIiM5ZTlkMjQiLCIjMGY5ZDU4IiwiIzAwNzk2YiIsIiMwMGFjYzEiLCIjNDI4NWY0IiwiIzVjNmJjMCIsIiM2MDdkOGIiXSxnb29nbGVXYXJtOlsiIzc5NTU0OCIsIiNhYjQ3YmMiLCIjZjA2MjkyIiwiI2MyMTg1YiIsIiNkYjQ0MzciLCIjZmY3MDQzIiwiI2Y0YjQwMCJdLGdvb2dsZUNvbG9yQmxpbmRBc3Npc3Q6WyIjZmY3MDQzIiwiIzAwQUNDMSIsIiNBQjQ3QkMiLCIjMkE1NkM2IiwiIzBiODA0MyIsIiNGN0NCNEQiLCIjYzBjYTMzIiwiIzVlMzViMSIsIiNBNTI3MTQiXSx0ZW5zb3Jib2FyZENvbG9yQmxpbmRBc3Npc3Q6WyIjZmY3MDQzIiwiIzAwNzdiYiIsIiNjYzMzMTEiLCIjMzNiYmVlIiwiI2VlMzM3NyIsIiMwMDk5ODgiLCIjYmJiYmJiIl0sY29sb3JCbGluZEFzc2lzdDE6WyIjNDQ3N2FhIiwiIzQ0YWFhYSIsIiNhYWFhNDQiLCIjYWE3NzQ0IiwiI2FhNDQ1NSIsIiNhYTQ0ODgiXSxjb2xvckJsaW5kQXNzaXN0MjpbIiM4OGNjZWUiLCIjNDRhYTk5IiwiIzExNzczMyIsIiM5OTk5MzMiLCIjZGRjYzc3IiwiI2NjNjY3NyIsIiM4ODIyNTUiLCIjYWE0NDk5Il0sY29sb3JCbGluZEFzc2lzdDM6WyIjMzMyMjg4IiwiIzY2OTljYyIsIiM4OGNjZWUiLCIjNDRhYTk5IiwiIzExNzczMyIsIiM5OTk5MzMiLCIjZGRjYzc3IiwiI2NjNjY3NyIsIiNhYTQ0NjYiLCIjODgyMjU1IiwiIzY2MTEwMCIsIiNhYTQ0OTkiXSxjb2xvckJsaW5kQXNzaXN0NDpbIiM0NDc3YWEiLCIjNjZjY2VlIiwiIzIyODgzMyIsIiNjY2JiNDQiLCIjZWU2Njc3IiwiI2FhMzM3NyIsIiNiYmJiYmIiXSxjb2xvckJsaW5kQXNzaXN0NTpbIiNGRjZEQjYiLCIjOTIwMDAwIiwiIzkyNDkwMCIsIiNEQkQxMDAiLCIjMjRGRjI0IiwiIzAwNkREQiIsIiM0OTAwOTIiXSxtbGRhc2g6WyIjRTQ3RUFEIiwiI0Y0NjQwRCIsIiNGQUEzMDAiLCIjRjVFNjM2IiwiIzAwQTA3NyIsIiMwMDc3QjgiLCIjMDBCN0VEIl19LGlSPWg1ZS50ZW5zb3Jib2FyZENvbG9yQmxpbmRBc3Npc3Q7dmFyIF8kPWNsYXNze2NvbnN0cnVjdG9yKHQ9aVIpe3RoaXMucGFsZXR0ZT10LHRoaXMuaWRlbnRpZmllcnM9SmkoKX1zZXREb21haW4odCl7cmV0dXJuIHRoaXMuaWRlbnRpZmllcnM9SmkoKSx0LmZvckVhY2goKHIsbik9Pnt0aGlzLmlkZW50aWZpZXJzLnNldChyLHRoaXMucGFsZXR0ZVtuJXRoaXMucGFsZXR0ZS5sZW5ndGhdKX0pLHRoaXN9Z2V0Q29sb3IodCl7aWYoIXRoaXMuaWRlbnRpZmllcnMuaGFzKHQpKXRocm93IG5ldyBFcnJvcihgU3RyaW5nICR7dH0gd2FzIG5vdCBpbiB0aGUgZG9tYWluLmApO3JldHVybiB0aGlzLmlkZW50aWZpZXJzLmdldCh0KX19O2Z1bmN0aW9uIFEzdChlLHQpe2xldCByPW5ldyBfJDtmdW5jdGlvbiBuKCl7ci5zZXREb21haW4odCgpKX1yZXR1cm4gZS5hZGRMaXN0ZW5lcihuKSxuKCksaT0+ci5nZXRDb2xvcihpKX12YXIgZm49UTN0KFNwLCgpPT5TcC5nZXRSdW5zKCkpLHZRcj1RM3QoblIsKCk9Pm5SLmdldEV4cGVyaW1lbnRzKCkubWFwKCh7bmFtZTplfSk9PmUpKTt2YXIgYWc9RWUoT2UoKSwxKTt5cyh7bW9kdWxlTmFtZToicnVuLWNvbG9yLXN0eWxlIixzdHlsZUNvbnRlbnQ6YAogICAgW2NvbG9yLWNsYXNzPSdsaWdodC1ibHVlJ10gcGFwZXItY2hlY2tib3ggewogICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLWxpZ2h0LWJsdWUtNTAwKTsKICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItbGlnaHQtYmx1ZS01MDApOwogICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItbGlnaHQtYmx1ZS05MDApOwogICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLWxpZ2h0LWJsdWUtOTAwKTsKICAgIH0KICAgIFtjb2xvci1jbGFzcz0ncmVkJ10gcGFwZXItY2hlY2tib3ggewogICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLXJlZC01MDApOwogICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1yZWQtNTAwKTsKICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLXJlZC05MDApOwogICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLXJlZC05MDApOwogICAgfQogICAgW2NvbG9yLWNsYXNzPSdncmVlbiddIHBhcGVyLWNoZWNrYm94IHsKICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1ncmVlbi01MDApOwogICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1ncmVlbi01MDApOwogICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItZ3JlZW4tOTAwKTsKICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1ncmVlbi05MDApOwogICAgfQogICAgW2NvbG9yLWNsYXNzPSdwdXJwbGUnXSBwYXBlci1jaGVja2JveCB7CiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItcHVycGxlLTUwMCk7CiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLXB1cnBsZS01MDApOwogICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItcHVycGxlLTkwMCk7CiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItcHVycGxlLTkwMCk7CiAgICB9CiAgICBbY29sb3ItY2xhc3M9J3RlYWwnXSBwYXBlci1jaGVja2JveCB7CiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItdGVhbC01MDApOwogICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci10ZWFsLTUwMCk7CiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci10ZWFsLTkwMCk7CiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItdGVhbC05MDApOwogICAgfQogICAgW2NvbG9yLWNsYXNzPSdwaW5rJ10gcGFwZXItY2hlY2tib3ggewogICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLXBpbmstNTAwKTsKICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItcGluay01MDApOwogICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItcGluay05MDApOwogICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLXBpbmstOTAwKTsKICAgIH0KICAgIFtjb2xvci1jbGFzcz0nb3JhbmdlJ10gcGFwZXItY2hlY2tib3ggewogICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLW9yYW5nZS01MDApOwogICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1vcmFuZ2UtNTAwKTsKICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLW9yYW5nZS05MDApOwogICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLW9yYW5nZS05MDApOwogICAgfQogICAgW2NvbG9yLWNsYXNzPSdicm93biddIHBhcGVyLWNoZWNrYm94IHsKICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1icm93bi01MDApOwogICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1icm93bi01MDApOwogICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItYnJvd24tOTAwKTsKICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1icm93bi05MDApOwogICAgfQogICAgW2NvbG9yLWNsYXNzPSdpbmRpZ28nXSBwYXBlci1jaGVja2JveCB7CiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItaW5kaWdvLTUwMCk7CiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLWluZGlnby01MDApOwogICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItaW5kaWdvLTkwMCk7CiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItaW5kaWdvLTkwMCk7CiAgICB9CiAgYH0pO3ZhciBhbD1jbGFzcyBleHRlbmRzIEd0KG10KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5uYW1lcz1bXSx0aGlzLmNvbG9yaW5nPXtnZXRDb2xvcjooKT0+IiJ9LHRoaXMucmVnZXg9IiIsdGhpcy5zZWxlY3Rpb25TdGF0ZT17fSx0aGlzLm1heE5hbWVzVG9FbmFibGVCeURlZmF1bHQ9NDAsdGhpcy5fZGVib3VuY2VkUmVnZXhDaGFuZ2U9dGhpcy5fZGVib3VuY2VkUmVnZXhDaGFuZ2VJbXBsKCl9X2RlYm91bmNlZFJlZ2V4Q2hhbmdlSW1wbCgpe3ZhciB0PWFnLmRlYm91bmNlKHI9Pnt0aGlzLnJlZ2V4PXJ9LDE1MCx7bGVhZGluZzohMX0pO3JldHVybiBmdW5jdGlvbigpe3ZhciByPXRoaXMuJCQoIiNuYW1lcy1yZWdleCIpLnZhbHVlO3I9PSIiP3RoaXMuYXN5bmMoKCk9Pnt0aGlzLnJlZ2V4PXJ9LDMwKTp0KHIpfX1nZXQgX3JlZ2V4KCl7dmFyIHQ9dGhpcy5yZWdleDt0cnl7cmV0dXJuIG5ldyBSZWdFeHAodCl9Y2F0Y2gocil7cmV0dXJuIG51bGx9fV9zZXRJc29sYXRvckljb24oKXt2YXIgaTt2YXIgdD10aGlzLnNlbGVjdGlvblN0YXRlLHI9YWcuZmlsdGVyKGFnLnZhbHVlcyh0KSkubGVuZ3RoLG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoKGk9dGhpcy5yb290KT09bnVsbD92b2lkIDA6aS5xdWVyeVNlbGVjdG9yQWxsKCIuaXNvbGF0b3IiKSk7bi5mb3JFYWNoKGZ1bmN0aW9uKG8pe3I9PT0xJiZ0W28ubmFtZV0/by5pY29uPSJyYWRpby1idXR0b24tY2hlY2tlZCI6by5pY29uPSJyYWRpby1idXR0b24tdW5jaGVja2VkIn0pfWNvbXB1dGVOYW1lc01hdGNoaW5nUmVnZXgodCxyKXtsZXQgbj10aGlzLl9yZWdleDtyZXR1cm4gbj90aGlzLm5hbWVzLmZpbHRlcihpPT5uLnRlc3QoaSkpOnRoaXMubmFtZXN9Y29tcHV0ZU91dFNlbGVjdGVkKHQscil7dmFyIG49dGhpcy5zZWxlY3Rpb25TdGF0ZSxpPXRoaXMubWF4TmFtZXNUb0VuYWJsZUJ5RGVmYXVsdCxvPXRoaXMubmFtZXNNYXRjaGluZ1JlZ2V4Lmxlbmd0aDw9aTtyZXR1cm4gdGhpcy5uYW1lc01hdGNoaW5nUmVnZXguZmlsdGVyKGE9Pm5bYV09PW51bGw/bzpuW2FdKX1zeW5jaHJvbml6ZUNvbG9ycyh0KXt2YXIgaSxvLGEsczt0aGlzLl9zZXRJc29sYXRvckljb24oKSwoKG89KGk9dGhpcy5yb290KT09bnVsbD92b2lkIDA6aS5xdWVyeVNlbGVjdG9yQWxsKCJwYXBlci1jaGVja2JveCIpKSE9bnVsbD9vOltdKS5mb3JFYWNoKGw9PntsZXQgYz10aGlzLmNvbG9yaW5nLmdldENvbG9yKGwubmFtZSk7bC51cGRhdGVTdHlsZXMoeyItLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3IiOmMsIi0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1pbmstY29sb3IiOmMsIi0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yIjpjLCItLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3IiOmN9KX0pLCgocz0oYT10aGlzLnJvb3QpPT1udWxsP3ZvaWQgMDphLnF1ZXJ5U2VsZWN0b3JBbGwoIi5pc29sYXRvciIpKSE9bnVsbD9zOltdKS5mb3JFYWNoKGw9PntsZXQgYz10aGlzLmNvbG9yaW5nLmdldENvbG9yKGwubmFtZSk7bC5zdHlsZS5jb2xvcj1jfSksd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMudXBkYXRlU3R5bGVzKCl9KX1faXNvbGF0ZU5hbWUodCl7dmFyIHI9dC50YXJnZXQubmFtZSxuPXt9O3RoaXMubmFtZXMuZm9yRWFjaChmdW5jdGlvbihpKXtuW2ldPWk9PXJ9KSx0aGlzLnNlbGVjdGlvblN0YXRlPW59X2NoZWNrYm94Q2hhbmdlKHQpe3ZhciByPXQudGFyZ2V0O2xldCBuPWFnLmNsb25lKHRoaXMuc2VsZWN0aW9uU3RhdGUpO25bci5uYW1lXT1yLmNoZWNrZWQsdGhpcy5zZWxlY3Rpb25TdGF0ZT1ufV9pc0NoZWNrZWQodCxyKXtyZXR1cm4gdGhpcy5vdXRTZWxlY3RlZC5pbmRleE9mKHQpIT0tMX10b2dnbGVBbGwoKXtsZXQgdD10aGlzLm5hbWVzTWF0Y2hpbmdSZWdleC5zb21lKG49PnRoaXMub3V0U2VsZWN0ZWQuaW5jbHVkZXMobikpLHI9e307dGhpcy5uYW1lcy5mb3JFYWNoKG49PntyW25dPSF0fSksdGhpcy5zZWxlY3Rpb25TdGF0ZT1yfX07YWwudGVtcGxhdGU9UWAKICAgIDxzdHlsZSBpbmNsdWRlPSJzY3JvbGxiYXItc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGUgaW5jbHVkZT0icnVuLWNvbG9yLXN0eWxlIj48L3N0eWxlPgoKICAgIDxwYXBlci1pbnB1dAogICAgICBpZD0ibmFtZXMtcmVnZXgiCiAgICAgIG5vLWxhYmVsLWZsb2F0PSIiCiAgICAgIGxhYmVsPSJXcml0ZSBhIHJlZ2V4IHRvIGZpbHRlciBydW5zIgogICAgICB2YWx1ZT0iW1tyZWdleF1dIgogICAgICBvbi1iaW5kLXZhbHVlLWNoYW5nZWQ9Il9kZWJvdW5jZWRSZWdleENoYW5nZSIKICAgID48L3BhcGVyLWlucHV0PgogICAgPGRpdiBpZD0ib3V0ZXItY29udGFpbmVyIiBjbGFzcz0ic2Nyb2xsYmFyIj4KICAgICAgPHRlbXBsYXRlCiAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgaXRlbXM9IltbbmFtZXNNYXRjaGluZ1JlZ2V4XV0iCiAgICAgICAgb24tZG9tLWNoYW5nZT0ic3luY2hyb25pemVDb2xvcnMiCiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJuYW1lLXJvdyI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJpY29uLWNvbnRhaW5lciBjaGVja2JveC1jb250YWluZXIgdmVydGljYWwtYWxpZ24tY29udGFpbmVyIgogICAgICAgICAgPgogICAgICAgICAgICA8cGFwZXItY2hlY2tib3gKICAgICAgICAgICAgICBjbGFzcz0iY2hlY2tib3ggdmVydGljYWwtYWxpZ24tY2VudGVyIgogICAgICAgICAgICAgIGlkJD0iY2hlY2tib3gtW1tpdGVtXV0iCiAgICAgICAgICAgICAgbmFtZT0iW1tpdGVtXV0iCiAgICAgICAgICAgICAgY2hlY2tlZCQ9IltbX2lzQ2hlY2tlZChpdGVtLCBzZWxlY3Rpb25TdGF0ZS4qKV1dIgogICAgICAgICAgICAgIG9uLWNoYW5nZT0iX2NoZWNrYm94Q2hhbmdlIgogICAgICAgICAgICA+PC9wYXBlci1jaGVja2JveD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0iaWNvbi1jb250YWluZXIgaXNvbGF0b3ItY29udGFpbmVyIHZlcnRpY2FsLWFsaWduLWNvbnRhaW5lciIKICAgICAgICAgID4KICAgICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgICAgICAgaWNvbj0icmFkaW8tYnV0dG9uLXVuY2hlY2tlZCIKICAgICAgICAgICAgICBjbGFzcz0iaXNvbGF0b3IgdmVydGljYWwtYWxpZ24tY2VudGVyIgogICAgICAgICAgICAgIG9uLXRhcD0iX2lzb2xhdGVOYW1lIgogICAgICAgICAgICAgIG5hbWU9IltbaXRlbV1dIgogICAgICAgICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS1sYWJlbC1jb250YWluZXIiPgogICAgICAgICAgICA8c3Bhbj5bW2l0ZW1dXTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIHBhcGVyLWlucHV0IHsKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1mb2N1cy1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQ6IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItbGFiZWw6IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgIH0KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAjb3V0ZXItY29udGFpbmVyIHsKICAgICAgICBjb250YWluOiBjb250ZW50OwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgfQogICAgICAubmFtZS1yb3cgewogICAgICAgIGNvbnRhaW46IGNvbnRlbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDVweDsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOyAvKiBtYWtlcyB3cmFwcGluZyBvZiBoeXBlcnBhcmFtIHN0cmluZ3MgYmV0dGVyICovCiAgICAgIH0KICAgICAgLmljb24tY29udGFpbmVyIHsKICAgICAgICBmbGV4LWdyb3c6IDA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAycHg7CiAgICAgIH0KICAgICAgLmNoZWNrYm94IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDJweDsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgIH0KICAgICAgLmlzb2xhdG9yIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMHB4OwogICAgICB9CiAgICAgIC5pc29sYXRvci1jb250YWluZXIgewogICAgICAgIHBhZGRpbmctbGVmdDogNnB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDNweDsKICAgICAgfQogICAgICAuY2hlY2tib3gtY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDJweDsKICAgICAgfQogICAgICAuaXRlbS1sYWJlbC1jb250YWluZXIgewogICAgICAgIHBhZGRpbmctbGVmdDogNXB4OwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICB3aWR0aDogMHB4OyAvKiBoYWNrIHRvIGdldCB0aGUgZmxleC1ncm93IHRvIHdvcmsgcHJvcGVybHkgKi8KICAgICAgfQogICAgICAudG9vbHRpcC12YWx1ZS1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHBhZGRpbmctbGVmdDogMnB4OwogICAgICB9CiAgICAgIC52ZXJ0aWNhbC1hbGlnbi1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KICAgICAgLnZlcnRpY2FsLWFsaWduLWNvbnRhaW5lciAudmVydGljYWwtYWxpZ24tY2VudGVyIHsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgIH0KICAgICAgLnZlcnRpY2FsLWFsaWduLWNvbnRhaW5lciAudmVydGljYWwtYWxpZ24tdG9wIHsKICAgICAgICBhbGlnbi1zZWxmOiBzdGFydDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSxhbC5wcm90b3R5cGUsIm5hbWVzIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLGFsLnByb3RvdHlwZSwiY29sb3JpbmciLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLGFsLnByb3RvdHlwZSwicmVnZXgiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheSxjb21wdXRlZDoiY29tcHV0ZU5hbWVzTWF0Y2hpbmdSZWdleChuYW1lcy4qLCBfcmVnZXgpIn0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLGFsLnByb3RvdHlwZSwibmFtZXNNYXRjaGluZ1JlZ2V4Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxhbC5wcm90b3R5cGUsInNlbGVjdGlvblN0YXRlIix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXksbm90aWZ5OiEwLGNvbXB1dGVkOiJjb21wdXRlT3V0U2VsZWN0ZWQobmFtZXNNYXRjaGluZ1JlZ2V4LiosIHNlbGVjdGlvblN0YXRlLiopIn0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLGFsLnByb3RvdHlwZSwib3V0U2VsZWN0ZWQiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXJ9KSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sYWwucHJvdG90eXBlLCJtYXhOYW1lc1RvRW5hYmxlQnlEZWZhdWx0Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLGFsLnByb3RvdHlwZSwiX2RlYm91bmNlZFJlZ2V4Q2hhbmdlIix2b2lkIDApO0UoW1J0KCJyZWdleCIpLHcoImRlc2lnbjp0eXBlIixPYmplY3QpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGFsLnByb3RvdHlwZSwiX3JlZ2V4IixudWxsKTtFKFtCdCgic2VsZWN0aW9uU3RhdGUiLCJuYW1lcyIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sYWwucHJvdG90eXBlLCJfc2V0SXNvbGF0b3JJY29uIixudWxsKTthbD1FKFt5dCgidGYtbXVsdGktY2hlY2tib3giKV0sYWwpO3ZhciBhMj1jbGFzcyBleHRlbmRzIG10e2dldCBfcGFydHMoKXt2YXIgdD10aGlzLnZhbHVlLHI9dGhpcy5kZWxpbWl0ZXJQYXR0ZXJuO2xldCBuPVtdO2Zvcig7Oyl7bGV0IGk9bmV3IFJlZ0V4cChyLCJnIik7aWYoaS50ZXN0KHQpLGkubGFzdEluZGV4PT09MCl7bi5wdXNoKHQpO2JyZWFrfWVsc2Ugbi5wdXNoKHQuc2xpY2UoMCxpLmxhc3RJbmRleCkpLHQ9dC5zbGljZShpLmxhc3RJbmRleCl9cmV0dXJuIG59fTthMi50ZW1wbGF0ZT1RYAogICAgPCEtLQogICAgICBUaGlzIHVnbHkgZm9ybWF0dGluZyBpcyByZXF1aXJlZCB0byBwcmV2ZW50IHNwYWNlcyBmcm9tIHNsaXBwaW5nCiAgICAgIGludG8gdGhlIEhUTUwuCiAgICAtLT4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX3BhcnRzXV0iIGFzPSJwYXJ0IgogICAgICA+W1twYXJ0XV08d2JyCiAgICAvPjwvdGVtcGxhdGU+CiAgYDtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxhMi5wcm90b3R5cGUsInZhbHVlIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLGEyLnByb3RvdHlwZSwiZGVsaW1pdGVyUGF0dGVybiIsdm9pZCAwKTtFKFtSdCgidmFsdWUiLCJkZWxpbWl0ZXJQYXR0ZXJuIiksdygiZGVzaWduOnR5cGUiLEFycmF5KSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxhMi5wcm90b3R5cGUsIl9wYXJ0cyIsbnVsbCk7YTI9RShbeXQoInRmLXdici1zdHJpbmciKV0sYTIpO3ZhciBtYz1jbGFzcyBleHRlbmRzIEd0KG10KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5ydW5TZWxlY3Rpb25TdGF0ZT1PVygicnVuU2VsZWN0aW9uU3RhdGUiLHtkZWZhdWx0VmFsdWU6e319KS5jYWxsKHRoaXMpLHRoaXMucmVnZXhJbnB1dD12XygicmVnZXhJbnB1dCIse2RlZmF1bHRWYWx1ZToiIn0pLmNhbGwodGhpcyksdGhpcy5fZGF0YUxvY2F0aW9uQ2xpcExlbmd0aD0yNTAsdGhpcy5fZGF0YUxvY2F0aW9uRGVsaW1pdGVyUGF0dGVybj0iWy89XywtXSIsdGhpcy5jb2xvcmluZz17Z2V0Q29sb3I6Zm59LHRoaXMuX3N0b3JlUnVuU2VsZWN0aW9uU3RhdGU9elcoInJ1blNlbGVjdGlvblN0YXRlIix7ZGVmYXVsdFZhbHVlOnt9fSksdGhpcy5fcmVnZXhPYnNlcnZlcj14XygicmVnZXhJbnB1dCIse2RlZmF1bHRWYWx1ZToiIn0pfWF0dGFjaGVkKCl7dGhpcy5fcnVuU3RvcmVMaXN0ZW5lcj1TcC5hZGRMaXN0ZW5lcigoKT0+e3RoaXMuc2V0KCJydW5zIixTcC5nZXRSdW5zKCkpfSksdGhpcy5zZXQoInJ1bnMiLFNwLmdldFJ1bnMoKSksdGhpcy5fZW52U3RvcmVMaXN0ZW5lcj1pYi5hZGRMaXN0ZW5lcigoKT0+e3RoaXMuc2V0KCJkYXRhTG9jYXRpb24iLGliLmdldERhdGFMb2NhdGlvbigpKX0pLHRoaXMuc2V0KCJkYXRhTG9jYXRpb24iLGliLmdldERhdGFMb2NhdGlvbigpKX1kZXRhY2hlZCgpe1NwLnJlbW92ZUxpc3RlbmVyQnlLZXkodGhpcy5fcnVuU3RvcmVMaXN0ZW5lciksaWIucmVtb3ZlTGlzdGVuZXJCeUtleSh0aGlzLl9lbnZTdG9yZUxpc3RlbmVyKX1fdG9nZ2xlQWxsKCl7dGhpcy4kLm11bHRpQ2hlY2tib3gudG9nZ2xlQWxsKCl9Z2V0IF9jbGlwcGVkRGF0YUxvY2F0aW9uKCl7dmFyIHQ9dGhpcy5kYXRhTG9jYXRpb24scj10aGlzLl9kYXRhTG9jYXRpb25DbGlwTGVuZ3RoO2lmKHQhPT12b2lkIDApcmV0dXJuIHQubGVuZ3RoPnI/dC5zdWJzdHJpbmcoMCxyKTp0fV9vcGVuRGF0YUxvY2F0aW9uRGlhbG9nKHQpe3QucHJldmVudERlZmF1bHQoKSx0aGlzLiQkKCIjZGF0YS1sb2NhdGlvbi1kaWFsb2ciKS5vcGVuKCl9X3Nob3VsZFNob3dFeHBhbmREYXRhTG9jYXRpb25CdXR0b24odCxyKXtyZXR1cm4gdCYmdC5sZW5ndGg+cn19O21jLnRlbXBsYXRlPVFgCiAgICA8cGFwZXItZGlhbG9nIHdpdGgtYmFja2Ryb3A9IiIgaWQ9ImRhdGEtbG9jYXRpb24tZGlhbG9nIj4KICAgICAgPGgyPkRhdGEgTG9jYXRpb248L2gyPgogICAgICA8dGYtd2JyLXN0cmluZwogICAgICAgIHZhbHVlPSJbW2RhdGFMb2NhdGlvbl1dIgogICAgICAgIGRlbGltaXRlci1wYXR0ZXJuPSJbW19kYXRhTG9jYXRpb25EZWxpbWl0ZXJQYXR0ZXJuXV0iCiAgICAgID4KICAgICAgPC90Zi13YnItc3RyaW5nCiAgICA+PC9wYXBlci1kaWFsb2c+CiAgICA8ZGl2IGlkPSJ0b3AtdGV4dCI+CiAgICAgIDxoMyBpZD0idG9vbHRpcC1oZWxwIiBjbGFzcz0idG9vbHRpcC1jb250YWluZXIiPlJ1bnM8L2gzPgogICAgPC9kaXY+CiAgICA8dGYtbXVsdGktY2hlY2tib3gKICAgICAgaWQ9Im11bHRpQ2hlY2tib3giCiAgICAgIG5hbWVzPSJbW3J1bnNdXSIKICAgICAgc2VsZWN0aW9uLXN0YXRlPSJ7e3J1blNlbGVjdGlvblN0YXRlfX0iCiAgICAgIG91dC1zZWxlY3RlZD0ie3tzZWxlY3RlZFJ1bnN9fSIKICAgICAgcmVnZXg9Int7cmVnZXhJbnB1dH19IgogICAgICBjb2xvcmluZz0iW1tjb2xvcmluZ11dIgogICAgPjwvdGYtbXVsdGktY2hlY2tib3g+CiAgICA8cGFwZXItYnV0dG9uIGNsYXNzPSJ4LWJ1dHRvbiIgaWQ9InRvZ2dsZS1hbGwiIG9uLXRhcD0iX3RvZ2dsZUFsbCI+CiAgICAgIFRvZ2dsZSBBbGwgUnVucwogICAgPC9wYXBlci1idXR0b24+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbZGF0YUxvY2F0aW9uXV0iPgogICAgICA8ZGl2IGlkPSJkYXRhLWxvY2F0aW9uIj4KICAgICAgICA8dGYtd2JyLXN0cmluZwogICAgICAgICAgdmFsdWU9IltbX2NsaXBwZWREYXRhTG9jYXRpb25dXSIKICAgICAgICAgIGRlbGltaXRlci1wYXR0ZXJuPSJbW19kYXRhTG9jYXRpb25EZWxpbWl0ZXJQYXR0ZXJuXV0iCiAgICAgICAgPjwvdGYtd2JyLXN0cmluZwogICAgICAgID48IS0tCiAgICAgICAgICBXZSB1c2UgSFRNTCBjb21tZW50cyB0byByZW1vdmUgc3BhY2VzIGJlZm9yZSB0aGUgZWxsaXBzaXMuCiAgICAgICAgLS0+PHRlbXBsYXRlCiAgICAgICAgICBpcz0iZG9tLWlmIgogICAgICAgICAgaWY9IltbX3Nob3VsZFNob3dFeHBhbmREYXRhTG9jYXRpb25CdXR0b24oZGF0YUxvY2F0aW9uLCBfZGF0YUxvY2F0aW9uQ2xpcExlbmd0aCldXSIKICAgICAgICAgID48IS0tCiAgICAgICAgICAtLT48YSBocmVmPSIiIG9uLWNsaWNrPSJfb3BlbkRhdGFMb2NhdGlvbkRpYWxvZyI+4oCmPC9hPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC90ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OwogICAgICB9CiAgICAgICN0b3AtdGV4dCB7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBmbGV4LWdyb3c6IDA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CiAgICAgIHRmLXdici1zdHJpbmcgewogICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgIH0KICAgICAgdGYtbXVsdGktY2hlY2tib3ggewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KICAgICAgLngtYnV0dG9uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGItdWktbGlnaHQtYWNjZW50KTsKICAgICAgICBjb2xvcjogdmFyKC0tdGItdWktZGFyay1hY2NlbnQpOwogICAgICB9CiAgICAgICN0b29sdGlwLWhlbHAgewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgfQogICAgICBwYXBlci1idXR0b24gewogICAgICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgICB9CiAgICAgICNkYXRhLWxvY2F0aW9uIHsKICAgICAgICBjb2xvcjogdmFyKC0tdGItdWktZGFyay1hY2NlbnQpOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXJnaW46IDVweCAwIDAgMDsKICAgICAgICBtYXgtd2lkdGg6IDI4OHB4OwogICAgICB9CiAgICA8L3N0eWxlPgogIGA7RShbQSh7dHlwZTpPYmplY3Qsb2JzZXJ2ZXI6Il9zdG9yZVJ1blNlbGVjdGlvblN0YXRlIn0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxtYy5wcm90b3R5cGUsInJ1blNlbGVjdGlvblN0YXRlIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfcmVnZXhPYnNlcnZlciJ9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sbWMucHJvdG90eXBlLCJyZWdleElucHV0Iix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXksbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sbWMucHJvdG90eXBlLCJzZWxlY3RlZFJ1bnMiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLG1jLnByb3RvdHlwZSwicnVucyIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sbWMucHJvdG90eXBlLCJkYXRhTG9jYXRpb24iLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXJ9KSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sbWMucHJvdG90eXBlLCJfZGF0YUxvY2F0aW9uQ2xpcExlbmd0aCIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxtYy5wcm90b3R5cGUsIl9kYXRhTG9jYXRpb25EZWxpbWl0ZXJQYXR0ZXJuIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLG1jLnByb3RvdHlwZSwiY29sb3JpbmciLHZvaWQgMCk7RShbUnQoImRhdGFMb2NhdGlvbiIsIl9kYXRhTG9jYXRpb25DbGlwTGVuZ3RoIiksdygiZGVzaWduOnR5cGUiLE9iamVjdCksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sbWMucHJvdG90eXBlLCJfY2xpcHBlZERhdGFMb2NhdGlvbiIsbnVsbCk7bWM9RShbeXQoInRmLXJ1bnMtc2VsZWN0b3IiKV0sbWMpO3ZhciBhbj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuY2FuY2VsbGF0aW9uQ291bnQ9MH1jYW5jZWxsYWJsZSh0KXtsZXQgcj10aGlzLmNhbmNlbGxhdGlvbkNvdW50O3JldHVybiBuPT57bGV0IGk9dGhpcy5jYW5jZWxsYXRpb25Db3VudCE9PXI7cmV0dXJuIHQoe3ZhbHVlOm4sY2FuY2VsbGVkOml9KX19Y2FuY2VsQWxsKCl7dGhpcy5jYW5jZWxsYXRpb25Db3VudCsrfX07dmFyIEg1PWNsYXNzIGV4dGVuZHMgR3QobXQpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmh0bWw9IiJ9Z2V0IHNhbml0aXplZEh0bWwoKXtyZXR1cm4gdGhpcy5odG1sfWF0dGFjaGVkKCl7d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuc2NvcGVTdWJ0cmVlKHRoaXMuJC5tYXJrZG93biwhMCl9KX19O0g1LnRlbXBsYXRlPVFgCiAgICA8ZGl2IGlkPSJtYXJrZG93biIgaW5uZXItaC10LW0tbD0iW1tzYW5pdGl6ZWRIdG1sXV0iPjwvZGl2PgogICAgPHN0eWxlPgogICAgICAvKgogICAgICAgKiBSZWR1Y2UgdG9wbW9zdCBhbmQgYm90dG9tbW9zdCBtYXJnaW5zIGZyb20gMTZweCB0byAwLjNlbSAocmVuZGVycwogICAgICAgKiBhdCBhYm91dCA0LjhweCkgdG8ga2VlcCB0aGUgbGF5b3V0IGNvbXBhY3QuIFRoaXMgaW1wcm92ZXMgdGhlCiAgICAgICAqIGFwcGVhcmFuY2Ugd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSBsaW5lIG9mIHRleHQ7IHN0YW5kYXJkIE1hcmtkb3duCiAgICAgICAqIHJlbmRlcmVycyB3aWxsIHN0aWxsIGluY2x1ZGUgYSBcYDxwPlxgIGVsZW1lbnQuCiAgICAgICAqCiAgICAgICAqIEJ5IHRhcmdldGluZyBvbmx5IHRoZSB0b3AtbGV2ZWwsIGV4dHJlbWFsIGVsZW1lbnRzLCB3ZSBwcmVzZXJ2ZSBhbnkKICAgICAgICogYWN0dWFsIHBhcmFncmFwaCBicmVha3MgYW5kIG9ubHkgY2hhbmdlIHRoZSBwYWRkaW5nIGFnYWluc3QgdGhlCiAgICAgICAqIGNvbXBvbmVudCBlZGdlcy4KICAgICAgICovCiAgICAgICNtYXJrZG93biA+IHA6Zmlyc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi10b3A6IDAuM2VtOwogICAgICB9CiAgICAgICNtYXJrZG93biA+IHA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4zZW07CiAgICAgIH0KICAgICAgI21hcmtkb3duIHAgewogICAgICAgIC8qIFNvbWUgdXNlcnMgaW5jbHVkZSBtdWx0aXBsZSBzcGFjZXMgYW5kIHdvdWxkIGxpa2UgdGhlbSBwcmVzZXJ2ZWQgaW4KICAgICAgICAgKiB0aGUgdGV4dCB2aXN1YWxpemF0aW9uIGluIFRCLiBHb29nbGVycywgc2VlIGIvMzM1NzcwMzUyLgogICAgICAgICAqLwogICAgICAgIHdoaXRlLXNwYWNlOiBicmVhay1zcGFjZXM7CiAgICAgIH0KCiAgICAgIC8qIFBsZWFzYW50IHN0eWxlcyBmb3IgTWFya2Rvd24gdGFibGVzLiAqLwogICAgICAjbWFya2Rvd24gdGFibGUgewogICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgICAgIH0KICAgICAgI21hcmtkb3duIHRhYmxlIHRoIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CiAgICAgICNtYXJrZG93biB0YWJsZSB0aCwKICAgICAgI21hcmtkb3duIHRhYmxlIHRkIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10Yi11aS1ib3JkZXIsICNkZmUyZTUpOwogICAgICB9CiAgICAgICNtYXJrZG93biB0YWJsZSB0ciB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tdGItdWktYm9yZGVyLCAjYzZjYmQxKTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLEg1LnByb3RvdHlwZSwiaHRtbCIsdm9pZCAwKTtFKFtSdCgiaHRtbCIpLHcoImRlc2lnbjp0eXBlIixPYmplY3QpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEg1LnByb3RvdHlwZSwic2FuaXRpemVkSHRtbCIsbnVsbCk7SDU9RShbeXQoInRmLW1hcmtkb3duLXZpZXciKV0sSDUpO3lzKHttb2R1bGVOYW1lOiJ0Zi1jYXJkLWhlYWRpbmctc3R5bGUiLHN0eWxlQ29udGVudDpgCiAgICBmaWdjYXB0aW9uIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CgogICAgLyoqIEhvcml6b250YWwgbGluZSBvZiBsYWJlbHMuICovCiAgICAuaGVhZGluZy1yb3cgewogICAgICBtYXJnaW4tdG9wOiAtNHB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLyoqIFBpZWNlIG9mIHRleHQgaW4gdGhlIGZpZ3VyZSBjYXB0aW9uLiAqLwogICAgLmhlYWRpbmctbGFiZWwgewogICAgICBmbGV4LWdyb3c6IDE7CiAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICB9CgogICAgLyoqIE1ha2VzIGxhYmVsIHNob3cgb24gdGhlIHJpZ2h0LiAqLwogICAgLmhlYWRpbmctcmlnaHQgewogICAgICBmbGV4LWdyb3c6IDA7CiAgICB9CiAgYH0pO2Z1bmN0aW9uIHMyKGUpe3JldHVybiBlP2UudG9TdHJpbmcoKS5yZXBsYWNlKC9HTVQtXGQrIFwoKFteKV0rKVwpLywiJDEiKToiIn1mdW5jdGlvbiB0TXQoZSl7bGV0IHQ9cDVlKGUpO3JldHVybiB0P01hdGgucm91bmQoKHRbMF0qMjk5K3RbMV0qNTg3K3RbMl0qMTE0KS8xZTMpPjEyNT8iaW5oZXJpdCI6IiNlZWUiOiJpbmhlcml0In1mdW5jdGlvbiBwNWUoZSl7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHQ9ZS5tYXRjaCgvXiMoWzAtOWEtZl17MSwyfSkoWzAtOWEtZl17MSwyfSkoWzAtOWEtZl17MSwyfSkkLyk7aWYoIXQpcmV0dXJuIG51bGw7aWYoZS5sZW5ndGg9PTQpZm9yKHZhciByPTE7cjw9MztyKyspdFtyXT10W3JdK3Rbcl07cmV0dXJuW3BhcnNlSW50KHRbMV0sMTYpLHBhcnNlSW50KHRbMl0sMTYpLHBhcnNlSW50KHRbM10sMTYpXX12YXIgZ2M9Y2xhc3MgZXh0ZW5kcyBtdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5kaXNwbGF5TmFtZT1udWxsLHRoaXMudGFnPW51bGwsdGhpcy5ydW49bnVsbCx0aGlzLmRlc2NyaXB0aW9uPW51bGwsdGhpcy5jb2xvcj1udWxsfV91cGRhdGVIZWFkaW5nU3R5bGUoKXt0aGlzLnVwZGF0ZVN0eWxlcyh7Ii0tdGYtY2FyZC1oZWFkaW5nLWJhY2tncm91bmQtY29sb3IiOnRoaXMuX3J1bkJhY2tncm91bmQsIi0tdGYtY2FyZC1oZWFkaW5nLWNvbG9yIjp0aGlzLl9ydW5Db2xvcn0pfV9jb21wdXRlUnVuQmFja2dyb3VuZCh0KXtyZXR1cm4gdHx8Im5vbmUifV9jb21wdXRlUnVuQ29sb3IodCl7cmV0dXJuIHRNdCh0KX1nZXQgX25hbWVMYWJlbCgpe3ZhciB0PXRoaXMuZGlzcGxheU5hbWUscj10aGlzLnRhZztyZXR1cm4gdHx8cnx8IiJ9Z2V0IF90YWdMYWJlbCgpe3ZhciB0PXRoaXMuZGlzcGxheU5hbWUscj10aGlzLnRhZztyZXR1cm4gciYmciE9PXQ/cjoiIn1fdG9nZ2xlRGVzY3JpcHRpb25EaWFsb2codCl7bGV0IHI9dGhpcy4kLmRlc2NyaXB0aW9uRGlhbG9nO3IucG9zaXRpb25UYXJnZXQ9dC50YXJnZXQsci50b2dnbGUoKX19O2djLnRlbXBsYXRlPVFgCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICA8ZmlnY2FwdGlvbiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1yb3ciPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19uYW1lTGFiZWxdXSI+CiAgICAgICAgICAgIDxkaXYgaXRlbXByb3A9Im5hbWUiIGNsYXNzPSJoZWFkaW5nLWxhYmVsIG5hbWUiPltbX25hbWVMYWJlbF1dPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3J1bl1dIj4KICAgICAgICAgICAgPCEtLSBFeHRyYSB3cmFwcGluZyBzcGFuIG5lZWRlZCB0byBhdm9pZCBmbGV4Ym94IGJsb2NraWZpY2F0aW9uLiAtLT4KICAgICAgICAgICAgPCEtLSAoc2VlIGZsZXhib3ggc3BlYywgc2VjdGlvbiA0ICJGbGV4IEl0ZW1zIikgLS0+CiAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgIDxzcGFuCiAgICAgICAgICAgICAgICBpdGVtcHJvcD0icnVuIgogICAgICAgICAgICAgICAgaWQ9ImhlYWRpbmctcnVuIgogICAgICAgICAgICAgICAgY2xhc3M9ImhlYWRpbmctbGFiZWwgaGVhZGluZy1yaWdodCBydW4iCiAgICAgICAgICAgICAgICA+W1tydW5dXTwvc3BhbgogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3RhZ0xhYmVsXV0iPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIj4KICAgICAgICAgICAgICB0YWc6IDxzcGFuIGl0ZW1wcm9wPSJ0YWciPltbX3RhZ0xhYmVsXV08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZmlnY2FwdGlvbj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2Rlc2NyaXB0aW9uXV0iPgogICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgaWNvbj0iaW5mbyIKICAgICAgICAgIG9uLXRhcD0iX3RvZ2dsZURlc2NyaXB0aW9uRGlhbG9nIgogICAgICAgICAgdGl0bGU9IlNob3cgc3VtbWFyeSBkZXNjcmlwdGlvbiIKICAgICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHBhcGVyLWRpYWxvZwogICAgICAgIGlkPSJkZXNjcmlwdGlvbkRpYWxvZyIKICAgICAgICBuby1vdmVybGFwPSIiCiAgICAgICAgaG9yaXpvbnRhbC1hbGlnbj0iYXV0byIKICAgICAgICB2ZXJ0aWNhbC1hbGlnbj0iYXV0byIKICAgICAgPgogICAgICAgIDxwYXBlci1kaWFsb2ctc2Nyb2xsYWJsZT4KICAgICAgICAgIDx0Zi1tYXJrZG93bi12aWV3IGh0bWw9IltbZGVzY3JpcHRpb25dXSI+PC90Zi1tYXJrZG93bi12aWV3PgogICAgICAgIDwvcGFwZXItZGlhbG9nLXNjcm9sbGFibGU+CiAgICAgIDwvcGFwZXItZGlhbG9nPgogICAgPC9kaXY+CiAgICA8c3R5bGUgaW5jbHVkZT0idGYtY2FyZC1oZWFkaW5nLXN0eWxlIj4KICAgICAgLmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQogICAgICAuY29udGVudCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgfQogICAgICAubmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIC5ydW4gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgcGFkZGluZzogMXB4IDRweCAycHg7CiAgICAgIH0KICAgICAgcGFwZXItaWNvbi1idXR0b24gewogICAgICAgIGZsZXgtZ3JvdzogMDsKICAgICAgfQogICAgICBwYXBlci1kaWFsb2ctc2Nyb2xsYWJsZSB7CiAgICAgICAgbWF4LXdpZHRoOiA2NDBweDsKICAgICAgfQogICAgICAjaGVhZGluZy1ydW4gewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRmLWNhcmQtaGVhZGluZy1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgICAgICBjb2xvcjogdmFyKC0tdGYtY2FyZC1oZWFkaW5nLWNvbG9yKTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLGdjLnByb3RvdHlwZSwiZGlzcGxheU5hbWUiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZ2MucHJvdG90eXBlLCJ0YWciLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZ2MucHJvdG90eXBlLCJydW4iLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZ2MucHJvdG90eXBlLCJkZXNjcmlwdGlvbiIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxnYy5wcm90b3R5cGUsImNvbG9yIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nLGNvbXB1dGVkOiJfY29tcHV0ZVJ1bkJhY2tncm91bmQoY29sb3IpIixyZWFkT25seTohMCxvYnNlcnZlcjoiX3VwZGF0ZUhlYWRpbmdTdHlsZSJ9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sZ2MucHJvdG90eXBlLCJfcnVuQmFja2dyb3VuZCIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZyxjb21wdXRlZDoiX2NvbXB1dGVSdW5Db2xvcihjb2xvcikiLHJlYWRPbmx5OiEwLG9ic2VydmVyOiJfdXBkYXRlSGVhZGluZ1N0eWxlIn0pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxnYy5wcm90b3R5cGUsIl9ydW5Db2xvciIsdm9pZCAwKTtFKFtSdCgiZGlzcGxheU5hbWUiLCJ0YWciKSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxnYy5wcm90b3R5cGUsIl9uYW1lTGFiZWwiLG51bGwpO0UoW1J0KCJkaXNwbGF5TmFtZSIsInRhZyIpLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGdjLnByb3RvdHlwZSwiX3RhZ0xhYmVsIixudWxsKTtnYz1FKFt5dCgidGYtY2FyZC1oZWFkaW5nIildLGdjKTt2YXIgRmk9Y2xhc3MgZXh0ZW5kcyBHdChtdCl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX21ldGFkYXRhQ2FuY2VsbGVyPW5ldyBhbix0aGlzLl9zdGVwcz1bXSx0aGlzLl9hdHRhY2hlZD0hMX1nZXQgX3J1bkNvbG9yKCl7dmFyIHQ9dGhpcy5ydW47cmV0dXJuIGZuKHQpfWdldCBfaGFzQXRMZWFzdE9uZVN0ZXAoKXt2YXIgdD10aGlzLl9zdGVwcztyZXR1cm4hIXQmJnQubGVuZ3RoPjB9Z2V0IF9oYXNNdWx0aXBsZVN0ZXBzKCl7dmFyIHQ9dGhpcy5fc3RlcHM7cmV0dXJuISF0JiZ0Lmxlbmd0aD4xfWdldCBfbWF4U3RlcEluZGV4KCl7dmFyIHQ9dGhpcy5fc3RlcHM7cmV0dXJuIHQubGVuZ3RoLTF9Z2V0IF9jdXJyZW50RGF0dW0oKXt2YXIgdD10aGlzLl9zdGVwcyxyPXRoaXMuX3N0ZXBJbmRleDtyZXR1cm4gdFtyXX1nZXQgX3NhbXBsZVRleHQoKXt2YXIgdD10aGlzLnNhbXBsZTtyZXR1cm5gJHt0KzF9YH1nZXQgX2hhc011bHRpcGxlU2FtcGxlcygpe3ZhciB0PXRoaXMudG90YWxTYW1wbGVzO3JldHVybiB0PjF9YXR0YWNoZWQoKXt0aGlzLl9hdHRhY2hlZD0hMCx0aGlzLnJlbG9hZCgpfV9yZWxvYWRPblJ1blRhZ0NoYW5nZSgpe3RoaXMucmVsb2FkKCl9cmVsb2FkKCl7aWYoIXRoaXMuX2F0dGFjaGVkKXJldHVybjt0aGlzLl9tZXRhZGF0YUNhbmNlbGxlci5jYW5jZWxBbGwoKTtsZXQgcj1fZSgpLnBsdWdpblJvdXRlKCJhdWRpbyIsIi9hdWRpbyIsbmV3IFVSTFNlYXJjaFBhcmFtcyh7dGFnOnRoaXMudGFnLHJ1bjp0aGlzLnJ1bixzYW1wbGU6U3RyaW5nKHRoaXMuc2FtcGxlKX0pKSxuPXRoaXMuX21ldGFkYXRhQ2FuY2VsbGVyLmNhbmNlbGxhYmxlKGk9PntpZihpLmNhbmNlbGxlZClyZXR1cm47bGV0IGE9aS52YWx1ZS5tYXAodGhpcy5fY3JlYXRlU3RlcERhdHVtLmJpbmQodGhpcykpO3RoaXMuc2V0KCJfc3RlcHMiLGEpLHRoaXMuc2V0KCJfc3RlcEluZGV4IixhLmxlbmd0aC0xKX0pO3RoaXMucmVxdWVzdE1hbmFnZXIucmVxdWVzdChyKS50aGVuKG4pfV9jcmVhdGVTdGVwRGF0dW0odCl7bGV0IHI9bmV3IFVSTFNlYXJjaFBhcmFtcyh0LnF1ZXJ5KTtyLmFwcGVuZCgidHMiLFN0cmluZyh0LndhbGxfdGltZSkpO2xldCBuPV9lKCkucGx1Z2luUm91dGVGb3JTcmMoImF1ZGlvIiwiL2luZGl2aWR1YWxBdWRpbyIscik7cmV0dXJue3dhbGxfdGltZTpzMihuZXcgRGF0ZSh0LndhbGxfdGltZSoxZTMpKSxzdGVwOnQuc3RlcCxsYWJlbDp0LmxhYmVsLGNvbnRlbnRUeXBlOnQuY29udGVudFR5cGUsdXJsOm59fX07RmkudGVtcGxhdGU9UWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcKICAgICAgdGFnPSJbW3RhZ11dIgogICAgICBydW49IltbcnVuXV0iCiAgICAgIGRpc3BsYXktbmFtZT0iW1t0YWdNZXRhZGF0YS5kaXNwbGF5TmFtZV1dIgogICAgICBkZXNjcmlwdGlvbj0iW1t0YWdNZXRhZGF0YS5kZXNjcmlwdGlvbl1dIgogICAgICBjb2xvcj0iW1tfcnVuQ29sb3JdXSIKICAgID4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNNdWx0aXBsZVNhbXBsZXNdXSI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1yb3ciPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1sYWJlbCI+CiAgICAgICAgICAgIHNhbXBsZTogW1tfc2FtcGxlVGV4dF1dIG9mIFtbdG90YWxTYW1wbGVzXV0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2hhc0F0TGVhc3RPbmVTdGVwXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmctbGFiZWwiPgogICAgICAgICAgICBzdGVwIDxzdHJvbmc+W1tfY3VycmVudERhdHVtLnN0ZXBdXTwvc3Ryb25nPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2N1cnJlbnREYXR1bS53YWxsX3RpbWVdXSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmctbGFiZWwgaGVhZGluZy1yaWdodCI+CiAgICAgICAgICAgICAgW1tfY3VycmVudERhdHVtLndhbGxfdGltZV1dCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNNdWx0aXBsZVN0ZXBzXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmctcm93Ij4KICAgICAgICAgIDxwYXBlci1zbGlkZXIKICAgICAgICAgICAgaWQ9InN0ZXBzIgogICAgICAgICAgICBpbW1lZGlhdGUtdmFsdWU9Int7X3N0ZXBJbmRleH19IgogICAgICAgICAgICBtYXg9IltbX21heFN0ZXBJbmRleF1dIgogICAgICAgICAgICBtYXgtbWFya2Vycz0iW1tfbWF4U3RlcEluZGV4XV0iCiAgICAgICAgICAgIHNuYXBzPSIiCiAgICAgICAgICAgIHN0ZXA9IjEiCiAgICAgICAgICAgIHZhbHVlPSJ7e19zdGVwSW5kZXh9fSIKICAgICAgICAgID48L3BhcGVyLXNsaWRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvdGYtY2FyZC1oZWFkaW5nPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNBdExlYXN0T25lU3RlcF1dIj4KICAgICAgPGF1ZGlvCiAgICAgICAgY29udHJvbHM9IiIKICAgICAgICBzcmMkPSJbW19jdXJyZW50RGF0dW0udXJsXV0iCiAgICAgICAgdHlwZSQ9IltbX2N1cnJlbnREYXR1bS5jb250ZW50VHlwZV1dIgogICAgICA+PC9hdWRpbz4KICAgICAgPHRmLW1hcmtkb3duLXZpZXcgaHRtbD0iW1tfY3VycmVudERhdHVtLmxhYmVsXV0iPjwvdGYtbWFya2Rvd24tdmlldz4KICAgIDwvdGVtcGxhdGU+CiAgICA8ZGl2IGlkPSJtYWluLWF1ZGlvLWNvbnRhaW5lciI+PC9kaXY+CgogICAgPHN0eWxlIGluY2x1ZGU9InRmLWNhcmQtaGVhZGluZy1zdHlsZSI+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMzUwcHg7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAtLXN0ZXAtc2xpZGVyLWtub2ItY29sb3I6ICM0MjQyNDI7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgIH0KCiAgICAgICNzdGVwcyB7CiAgICAgICAgaGVpZ2h0OiAxNXB4OwogICAgICAgIG1hcmdpbjogMCAwIDAgLTE1cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBwYWRkaW5nOiAwIDVweDsgLyogc28gdGhlIHNsaWRlciBrbm9iIGRvZXNuJ3QgYnV0dCBvdXQgKi8KICAgICAgICBtYXJnaW4tdG9wOiA1cHg7CiAgICAgICAgLS1wYXBlci1zbGlkZXItYWN0aXZlLWNvbG9yOiB2YXIoLS1zdGVwLXNsaWRlci1rbm9iLWNvbG9yKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLWNvbG9yOiB2YXIoLS1zdGVwLXNsaWRlci1rbm9iLWNvbG9yKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1waW4tY29sb3I6IHZhcigtLXN0ZXAtc2xpZGVyLWtub2ItY29sb3IpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWtub2Itc3RhcnQtY29sb3I6IHZhcigtLXN0ZXAtc2xpZGVyLWtub2ItY29sb3IpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWtub2Itc3RhcnQtYm9yZGVyLWNvbG9yOiB2YXIoLS1zdGVwLXNsaWRlci1rbm9iLWNvbG9yKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1waW4tc3RhcnQtY29sb3I6IHZhcigtLXN0ZXAtc2xpZGVyLWtub2ItY29sb3IpOwogICAgICB9CiAgICA8L3N0eWxlPgogIGA7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sRmkucHJvdG90eXBlLCJydW4iLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sRmkucHJvdG90eXBlLCJ0YWciLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXJ9KSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sRmkucHJvdG90eXBlLCJzYW1wbGUiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXJ9KSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sRmkucHJvdG90eXBlLCJ0b3RhbFNhbXBsZXMiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sRmkucHJvdG90eXBlLCJ0YWdNZXRhZGF0YSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixBZSldLEZpLnByb3RvdHlwZSwicmVxdWVzdE1hbmFnZXIiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsYW4pXSxGaS5wcm90b3R5cGUsIl9tZXRhZGF0YUNhbmNlbGxlciIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sRmkucHJvdG90eXBlLCJfc3RlcHMiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXJ9KSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sRmkucHJvdG90eXBlLCJfc3RlcEluZGV4Iix2b2lkIDApO0UoW1J0KCJydW4iKSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxGaS5wcm90b3R5cGUsIl9ydW5Db2xvciIsbnVsbCk7RShbUnQoIl9zdGVwcyIpLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxGaS5wcm90b3R5cGUsIl9oYXNBdExlYXN0T25lU3RlcCIsbnVsbCk7RShbUnQoIl9zdGVwcyIpLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxGaS5wcm90b3R5cGUsIl9oYXNNdWx0aXBsZVN0ZXBzIixudWxsKTtFKFtSdCgiX3N0ZXBzIiksdygiZGVzaWduOnR5cGUiLE51bWJlciksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sRmkucHJvdG90eXBlLCJfbWF4U3RlcEluZGV4IixudWxsKTtFKFtSdCgiX3N0ZXBzIiwiX3N0ZXBJbmRleCIpLHcoImRlc2lnbjp0eXBlIixPYmplY3QpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEZpLnByb3RvdHlwZSwiX2N1cnJlbnREYXR1bSIsbnVsbCk7RShbUnQoInNhbXBsZSIpLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEZpLnByb3RvdHlwZSwiX3NhbXBsZVRleHQiLG51bGwpO0UoW1J0KCJ0b3RhbFNhbXBsZXMiKSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sRmkucHJvdG90eXBlLCJfaGFzTXVsdGlwbGVTYW1wbGVzIixudWxsKTtFKFtCdCgicnVuIiwidGFnIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxGaS5wcm90b3R5cGUsIl9yZWxvYWRPblJ1blRhZ0NoYW5nZSIsbnVsbCk7Rmk9RShbeXQoInRmLWF1ZGlvLWxvYWRlciIpXSxGaSk7dmFyIEtoPWNsYXNzIGV4dGVuZHMgR3QobXQpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJlbG9hZE9uUmVhZHk9ITAsdGhpcy5fdGFnRmlsdGVyPSIiLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBBZX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5yZWxvYWRPblJlYWR5JiZ0aGlzLnJlbG9hZCgpfXJlbG9hZCgpe3RoaXMuX2ZldGNoVGFncygpLnRoZW4oKCk9Pnt0aGlzLl9yZWxvYWRBdWRpbygpfSl9X2ZldGNoVGFncygpe2xldCB0PV9lKCkucGx1Z2luUm91dGUoImF1ZGlvIiwiL3RhZ3MiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKHI9PntpZihweS5pc0VxdWFsKHIsdGhpcy5fcnVuVG9UYWdJbmZvKSlyZXR1cm47bGV0IG49cHkubWFwVmFsdWVzKHIsbz0+T2JqZWN0LmtleXMobykpLGk9JGkobik7dGhpcy5zZXQoIl9kYXRhTm90Rm91bmQiLGkubGVuZ3RoPT09MCksdGhpcy5zZXQoIl9ydW5Ub1RhZ0luZm8iLHIpfSl9X3JlbG9hZEF1ZGlvKCl7dmFyIHQ7KHQ9dGhpcy5yb290KT09bnVsbHx8dC5xdWVyeVNlbGVjdG9yQWxsKCJ0Zi1hdWRpby1sb2FkZXIiKS5mb3JFYWNoKHI9PntyLnJlbG9hZCgpfSl9X3Nob3VsZE9wZW4odCl7cmV0dXJuIHQ8PTJ9Z2V0IF9jYXRlZ29yaWVzKCl7dmFyIHQ9dGhpcy5fcnVuVG9UYWdJbmZvLHI9dGhpcy5fc2VsZWN0ZWRSdW5zLG49dGhpcy5fdGFnRmlsdGVyO2xldCBpPXB5Lm1hcFZhbHVlcyh0LGw9Pk9iamVjdC5rZXlzKGwpKSxvPVFsKGkscixuKTtmdW5jdGlvbiBhKGwpe2xldCBjPXRbbC5ydW5dW2wudGFnXS5zYW1wbGVzO3JldHVybiBweS5yYW5nZShjKS5tYXAodT0+T2JqZWN0LmFzc2lnbih7fSxsLHtzYW1wbGU6dSx0b3RhbFNhbXBsZXM6Y30pKX1yZXR1cm4gby5tYXAobD0+T2JqZWN0LmFzc2lnbih7fSxsLHtpdGVtczpbXS5jb25jYXQuYXBwbHkoW10sbC5pdGVtcy5tYXAoYSkpfSkpfV90YWdNZXRhZGF0YSh0LHIsbil7cmV0dXJuIHRbcl1bbl19fTtLaC50ZW1wbGF0ZT1RYAogICAgPHRmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiIHNsb3Q9InNpZGViYXIiPgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiBydW5zLXNlbGVjdG9yIj4KICAgICAgICAgIDx0Zi1ydW5zLXNlbGVjdG9yCiAgICAgICAgICAgIGlkPSJydW5zLXNlbGVjdG9yIgogICAgICAgICAgICBzZWxlY3RlZC1ydW5zPSJ7e19zZWxlY3RlZFJ1bnN9fSIKICAgICAgICAgID48L3RmLXJ1bnMtc2VsZWN0b3I+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjZW50ZXIiIHNsb3Q9ImNlbnRlciI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuby1kYXRhLXdhcm5pbmciPgogICAgICAgICAgICA8aDM+Tm8gYXVkaW8gZGF0YSB3YXMgZm91bmQuPC9oMz4KICAgICAgICAgICAgPHA+UHJvYmFibGUgY2F1c2VzOjwvcD4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT5Zb3UgaGF2ZW7igJl0IHdyaXR0ZW4gYW55IGF1ZGlvIGRhdGEgdG8geW91ciBldmVudCBmaWxlcy48L2xpPgogICAgICAgICAgICAgIDxsaT5UZW5zb3JCb2FyZCBjYW7igJl0IGZpbmQgeW91ciBldmVudCBmaWxlcy48L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW914oCZcmUgbmV3IHRvIHVzaW5nIFRlbnNvckJvYXJkLCBhbmQgd2FudCB0byBmaW5kIG91dCBob3cgdG8KICAgICAgICAgICAgICBhZGQgZGF0YSBhbmQgc2V0IHVwIHlvdXIgZXZlbnQgZmlsZXMsIGNoZWNrIG91dCB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIgogICAgICAgICAgICAgICAgPlJFQURNRTwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgcGVyaGFwcyB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvZ2V0X3N0YXJ0ZWQvc3VtbWFyaWVzX2FuZF90ZW5zb3Jib2FyZCIKICAgICAgICAgICAgICAgID5UZW5zb3JCb2FyZCB0dXRvcmlhbDwvYQogICAgICAgICAgICAgID4uCiAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdSB0aGluayBUZW5zb3JCb2FyZCBpcyBjb25maWd1cmVkIHByb3Blcmx5LCBwbGVhc2Ugc2VlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCNteS10ZW5zb3Jib2FyZC1pc250LXNob3dpbmctYW55LWRhdGEtd2hhdHMtd3JvbmciCiAgICAgICAgICAgICAgICA+dGhlIHNlY3Rpb24gb2YgdGhlIFJFQURNRSBkZXZvdGVkIHRvIG1pc3NpbmcgZGF0YSBwcm9ibGVtczwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgY29uc2lkZXIgZmlsaW5nIGFuIGlzc3VlIG9uIEdpdEh1Yi4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8dGYtdGFnLWZpbHRlcmVyIHRhZy1maWx0ZXI9Int7X3RhZ0ZpbHRlcn19Ij48L3RmLXRhZy1maWx0ZXJlcj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2NhdGVnb3JpZXNdXSIgYXM9ImNhdGVnb3J5Ij4KICAgICAgICAgICAgPHRmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3CiAgICAgICAgICAgICAgY2F0ZWdvcnk9IltbY2F0ZWdvcnldXSIKICAgICAgICAgICAgICBpbml0aWFsLW9wZW5lZD0iW1tfc2hvdWxkT3BlbihpbmRleCldXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0Zi1hdWRpby1sb2FkZXIKICAgICAgICAgICAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgICAgICAgICAgICBydW49IltbaXRlbS5ydW5dXSIKICAgICAgICAgICAgICAgICAgdGFnPSJbW2l0ZW0udGFnXV0iCiAgICAgICAgICAgICAgICAgIHNhbXBsZT0iW1tpdGVtLnNhbXBsZV1dIgogICAgICAgICAgICAgICAgICB0b3RhbC1zYW1wbGVzPSJbW2l0ZW0udG90YWxTYW1wbGVzXV0iCiAgICAgICAgICAgICAgICAgIHRhZy1tZXRhZGF0YT0iW1tfdGFnTWV0YWRhdGEoX3J1blRvVGFnSW5mbywgaXRlbS5ydW4sIGl0ZW0udGFnKV1dIgogICAgICAgICAgICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbX3JlcXVlc3RNYW5hZ2VyXV0iCiAgICAgICAgICAgICAgICA+PC90Zi1hdWRpby1sb2FkZXI+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC90Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldz4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICA8L3RmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICA8c3R5bGUgaW5jbHVkZT0iZGFzaGJvYXJkLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICAubm8tZGF0YS13YXJuaW5nIHsKICAgICAgICBtYXgtd2lkdGg6IDU0MHB4OwogICAgICAgIG1hcmdpbjogODBweCBhdXRvIDAgYXV0bzsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sS2gucHJvdG90eXBlLCJyZWxvYWRPblJlYWR5Iix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSxLaC5wcm90b3R5cGUsIl9zZWxlY3RlZFJ1bnMiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sS2gucHJvdG90eXBlLCJfcnVuVG9UYWdJbmZvIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sS2gucHJvdG90eXBlLCJfZGF0YU5vdEZvdW5kIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLEtoLnByb3RvdHlwZSwiX3RhZ0ZpbHRlciIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixBZSldLEtoLnByb3RvdHlwZSwiX3JlcXVlc3RNYW5hZ2VyIix2b2lkIDApO0UoW1J0KCJfcnVuVG9UYWdJbmZvIiwiX3NlbGVjdGVkUnVucyIsIl90YWdGaWx0ZXIiKSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEtoLnByb3RvdHlwZSwiX2NhdGVnb3JpZXMiLG51bGwpO0toPUUoW3l0KCJ0Zi1hdWRpby1kYXNoYm9hcmQiKV0sS2gpO3ZhciBWNT1jbGFzcyBleHRlbmRzIEd0KG10KXthdHRhY2hlZCgpe3RoaXMuYXN5bmMoZnVuY3Rpb24oKXt0aGlzLmdldEVmZmVjdGl2ZUNoaWxkcmVuKCkuZm9yRWFjaChmdW5jdGlvbih0KXt0aGlzLmxpc3Rlbih0LCJ0YXAiLCJfc2VsZWN0VGFyZ2V0Iil9LmJpbmQodGhpcykpfSl9X3NlbGVjdFRhcmdldCh0KXt0aGlzLnNlbGVjdGVkSWQ9dC5jdXJyZW50VGFyZ2V0LmlkfV9zZWxlY3RlZElkQ2hhbmdlZCgpe3ZhciB0PXRoaXMucXVlcnlFZmZlY3RpdmVDaGlsZHJlbigiIyIrdGhpcy5zZWxlY3RlZElkKTshdHx8KHRoaXMuZ2V0RWZmZWN0aXZlQ2hpbGRyZW4oKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3IuY2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0ZWQiKX0pLHQuY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKSl9fTtWNS50ZW1wbGF0ZT1RYAogICAgPGRpdiBpZD0id3JhcCI+CiAgICAgIDxoMz5bW25hbWVdXTwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtd3JhcHBlciI+PHNsb3Q+PC9zbG90PjwvZGl2PgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIC5jb250ZW50LXdyYXBwZXIgOjpzbG90dGVkKCopIHsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi11aS1kYXJrLWFjY2VudCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LXdyYXBwZXIgOjpzbG90dGVkKCopIHsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi11aS1kYXJrLWFjY2VudCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LXdyYXBwZXIgOjpzbG90dGVkKC5zZWxlY3RlZCkgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTsKICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgaDMgewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgICAgbWFyZ2luOiAwIDAgNXB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICA8L3N0eWxlPgogIGA7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sVjUucHJvdG90eXBlLCJuYW1lIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nLG5vdGlmeTohMCxvYnNlcnZlcjoiX3NlbGVjdGVkSWRDaGFuZ2VkIn0pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxWNS5wcm90b3R5cGUsInNlbGVjdGVkSWQiLHZvaWQgMCk7VjU9RShbeXQoInRmLW9wdGlvbi1zZWxlY3RvciIpXSxWNSk7ZnVuY3Rpb24gb1IoZSx0KXtsZXQgcixuPXt9O09iamVjdC5rZXlzKGUpLmZvckVhY2goYT0+e2xldCBzPWVbYV07cj09PXZvaWQgMCYmKHI9cy5kaXNwbGF5TmFtZSksciE9PXMuZGlzcGxheU5hbWUmJihyPW51bGwpLG5bcy5kZXNjcmlwdGlvbl09PT12b2lkIDAmJihuW3MuZGVzY3JpcHRpb25dPVtdKSxuW3MuZGVzY3JpcHRpb25dLnB1c2goYSl9KTtsZXQgaT1yIT1udWxsP3I6dCxvPSgoKT0+e2xldCBhPU9iamVjdC5rZXlzKG4pO3JldHVybiBhLmxlbmd0aD09PTA/IiI6YS5sZW5ndGg9PT0xP2FbMF06YDxwPjxzdHJvbmc+TXVsdGlwbGUgZGVzY3JpcHRpb25zOjwvc3Ryb25nPjwvcD48dWw+JHthLm1hcChjPT57bGV0IHU9bltjXS5tYXAocD0+YDxjb2RlPiR7cC5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8mL2csIiZhbXA7Iil9PC9jb2RlPmApLGg9dS5sZW5ndGg+Mj91LnNsaWNlKDAsdS5sZW5ndGgtMSkuam9pbigiLCAiKSsiLCBhbmQgIit1W3UubGVuZ3RoLTFdOnUuam9pbigiIGFuZCAiKTtyZXR1cm5gPGxpPjxwPkZvciAke2Q1ZSh1Lmxlbmd0aCwicnVuIiwicnVucyIpfSAke2h9OjwvcD4ke2N9PC9saT5gfSkuam9pbigiIil9PC91bD5gfSkoKTtyZXR1cm57ZGlzcGxheU5hbWU6aSxkZXNjcmlwdGlvbjpvfX1mdW5jdGlvbiBkNWUoZSx0LHIpe3JldHVybiBlPT09MT90OnJ9dmFyIHJNdD1FZShPZSgpLDEpO3ZhciBWcD1jbGFzcyBleHRlbmRzIG10e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLndlaWdodD0uNix0aGlzLl91cGRhdGVXZWlnaHQ9ck10LmRlYm91bmNlKGZ1bmN0aW9uKHQpe3RoaXMud2VpZ2h0PXR9LDI1MCl9X2ltbWVkaWF0ZVdlaWdodE51bWJlckZvclBhcGVyU2xpZGVyQ2hhbmdlZCgpe3RoaXMuX2lucHV0V2VpZ2h0U3RyaW5nRm9yUGFwZXJJbnB1dD10aGlzLl9pbW1lZGlhdGVXZWlnaHROdW1iZXJGb3JQYXBlclNsaWRlci50b1N0cmluZygpLHRoaXMuX3VwZGF0ZVdlaWdodC5jYWxsKHRoaXMsdGhpcy5faW1tZWRpYXRlV2VpZ2h0TnVtYmVyRm9yUGFwZXJTbGlkZXIpfV9pbnB1dFdlaWdodFN0cmluZ0ZvclBhcGVySW5wdXRDaGFuZ2VkKCl7K3RoaXMuX2lucHV0V2VpZ2h0U3RyaW5nRm9yUGFwZXJJbnB1dDwwP3RoaXMuX2lucHV0V2VpZ2h0U3RyaW5nRm9yUGFwZXJJbnB1dD0iMCI6K3RoaXMuX2lucHV0V2VpZ2h0U3RyaW5nRm9yUGFwZXJJbnB1dD4xJiYodGhpcy5faW5wdXRXZWlnaHRTdHJpbmdGb3JQYXBlcklucHV0PSIxIik7dmFyIHQ9K3RoaXMuX2lucHV0V2VpZ2h0U3RyaW5nRm9yUGFwZXJJbnB1dDtpc05hTih0KXx8dGhpcy5fdXBkYXRlV2VpZ2h0LmNhbGwodGhpcyx0KX19O1ZwLnRlbXBsYXRlPVFgCiAgICA8aDMgY2xhc3M9InRpdGxlIj5TbW9vdGhpbmc8L2gzPgogICAgPGRpdiBjbGFzcz0ic21vb3RoaW5nLWJsb2NrIj4KICAgICAgPHBhcGVyLXNsaWRlcgogICAgICAgIGlkPSJzbGlkZXIiCiAgICAgICAgaW1tZWRpYXRlLXZhbHVlPSJ7e19pbW1lZGlhdGVXZWlnaHROdW1iZXJGb3JQYXBlclNsaWRlcn19IgogICAgICAgIG1heD0iW1ttYXhdXSIKICAgICAgICBtaW49IltbbWluXV0iCiAgICAgICAgcGluCiAgICAgICAgc3RlcD0iW1tzdGVwXV0iCiAgICAgICAgdHlwZT0ibnVtYmVyIgogICAgICAgIHZhbHVlPSJ7e3dlaWdodH19IgogICAgICA+PC9wYXBlci1zbGlkZXI+CiAgICAgIDxwYXBlci1pbnB1dAogICAgICAgIGlkPSJpbnB1dCIKICAgICAgICBsYWJlbD0id2VpZ2h0IgogICAgICAgIG5vLWxhYmVsLWZsb2F0CiAgICAgICAgdmFsdWU9Int7X2lucHV0V2VpZ2h0U3RyaW5nRm9yUGFwZXJJbnB1dH19IgogICAgICAgIHR5cGU9Im51bWJlciIKICAgICAgICBzdGVwPSJbW3N0ZXBdXSIKICAgICAgICBtaW49IltbbWluXV0iCiAgICAgICAgbWF4PSJbW21heF1dIgogICAgICA+PC9wYXBlci1pbnB1dD4KICAgIDwvZGl2PgogICAgPHN0eWxlPgogICAgICAudGl0bGUgewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgfQoKICAgICAgLnNtb290aGluZy1ibG9jayB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQoKICAgICAgcGFwZXItc2xpZGVyIHsKICAgICAgICAtLXBhcGVyLXNsaWRlci1hY3RpdmUtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWtub2ItY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWtub2Itc3RhcnQtYm9yZGVyLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1tYXJrZXJzLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1waW4tY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLXBpbi1zdGFydC1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgZmxleC1ncm93OiAyOwogICAgICB9CgogICAgICBwYXBlci1pbnB1dCB7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItZm9jdXMtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0OiB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWxhYmVsOiB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIHdpZHRoOiA2MHB4OwogICAgICB9CiAgICA8L3N0eWxlPgogIGA7RShbQSh7dHlwZTpOdW1iZXJ9KSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sVnAucHJvdG90eXBlLCJzdGVwIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLFZwLnByb3RvdHlwZSwibWF4Iix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLFZwLnByb3RvdHlwZSwibWluIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxWcC5wcm90b3R5cGUsIndlaWdodCIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcixub3RpZnk6ITAsb2JzZXJ2ZXI6Il9pbW1lZGlhdGVXZWlnaHROdW1iZXJGb3JQYXBlclNsaWRlckNoYW5nZWQifSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLFZwLnByb3RvdHlwZSwiX2ltbWVkaWF0ZVdlaWdodE51bWJlckZvclBhcGVyU2xpZGVyIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nLG5vdGlmeTohMCxvYnNlcnZlcjoiX2lucHV0V2VpZ2h0U3RyaW5nRm9yUGFwZXJJbnB1dENoYW5nZWQifSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLFZwLnByb3RvdHlwZSwiX2lucHV0V2VpZ2h0U3RyaW5nRm9yUGFwZXJJbnB1dCIsdm9pZCAwKTtWcD1FKFt5dCgidGYtc21vb3RoaW5nLWlucHV0IildLFZwKTt2YXIgWW89RWUoT2UoKSwxKTtmdW5jdGlvbiBNaShlLHQpe2xldCByPU9iamVjdC5rZXlzKHQpLnNvcnQoKS5maWx0ZXIoYT0+dFthXSE9PXZvaWQgMCk7aWYoIXIubGVuZ3RoKXJldHVybiBlO2xldCBuPWUuaW5kZXhPZigiPyIpIT09LTE/IiYiOiI/IixvPUFycmF5KCkuY29uY2F0KC4uLnIubWFwKGE9PntsZXQgcz10W2FdO3JldHVybihBcnJheS5pc0FycmF5KHMpP3M6W3NdKS5tYXAoYz0+YCR7YX09JHttNWUoYyl9YCl9KSkuam9pbigiJiIpO3JldHVybiBlK24rb31mdW5jdGlvbiBtNWUoZSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKC9cKC9nLCIlMjgiKS5yZXBsYWNlKC9cKS9nLCIlMjkiKX12YXIgJEt0PUVlKE9lKCksMSksWlduPUVlKFNsKCksMSk7dmFyIERLdD1FZShPZSgpLDEpO3ZhciB4NDsoZnVuY3Rpb24oZSl7ZVtlLkxPQURJTkc9MF09IkxPQURJTkciLGVbZS5MT0FERUQ9MV09IkxPQURFRCJ9KSh4NHx8KHg0PXt9KSk7ZnVuY3Rpb24ga1MoZSl7cmV0dXJuIGNsYXNzIGV4dGVuZHMgZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5sb2FkS2V5PSIiLHRoaXMuZGF0YVRvTG9hZD1bXSx0aGlzLmdldERhdGFMb2FkTmFtZT1yPT5TdHJpbmcociksdGhpcy5kYXRhTG9hZGluZz0hMSx0aGlzLmRhdGFMb2FkZWRBdExlYXN0T25jZT0hMSx0aGlzLl9pc0Nvbm5lY3RlZD0hMSx0aGlzLl9kYXRhTG9hZFN0YXRlPW5ldyBNYXAsdGhpcy5fY2FuY2VsbGVyPW5ldyBhbix0aGlzLl9sb2FkRGF0YUFzeW5jPW51bGwsdGhpcy5fbG9hZERhdGE9REt0LnRocm90dGxlKHRoaXMuX2xvYWREYXRhSW1wbCwxMDAse2xlYWRpbmc6ITAsdHJhaWxpbmc6ITB9KX1jb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5faXNDb25uZWN0ZWQ9ITB9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuX2lzQ29ubmVjdGVkPSExfXN0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybnthY3RpdmU6e3R5cGU6Qm9vbGVhbixvYnNlcnZlcjoiX2xvYWREYXRhSWZBY3RpdmUifSxfaXNDb25uZWN0ZWQ6e3R5cGU6Qm9vbGVhbn0sbG9hZEtleTp7dHlwZTpTdHJpbmd9LGRhdGFUb0xvYWQ6e3R5cGU6QXJyYXl9LGdldERhdGFMb2FkTmFtZTp7dHlwZTpPYmplY3R9LGxvYWREYXRhQ2FsbGJhY2s6e3R5cGU6T2JqZWN0fSxyZXF1ZXN0RGF0YTp7dHlwZTpPYmplY3R9fX1zdGF0aWMgZ2V0IG9ic2VydmVycygpe3JldHVyblsiX2RhdGFUb0xvYWRDaGFuZ2VkKF9pc0Nvbm5lY3RlZCwgZGF0YVRvTG9hZC4qKSJdfW9uTG9hZEZpbmlzaCgpe31yZWxvYWQoKXt0aGlzLl9kYXRhTG9hZFN0YXRlLmNsZWFyKCksdGhpcy5fbG9hZERhdGEoKX1yZXNldCgpe3RoaXMuX2xvYWREYXRhQXN5bmMhPW51bGwmJihjbGVhclRpbWVvdXQodGhpcy5fbG9hZERhdGFBc3luYyksdGhpcy5fbG9hZERhdGFBc3luYz1udWxsKSx0aGlzLl9jYW5jZWxsZXImJnRoaXMuX2NhbmNlbGxlci5jYW5jZWxBbGwoKSx0aGlzLl9kYXRhTG9hZFN0YXRlJiZ0aGlzLl9kYXRhTG9hZFN0YXRlLmNsZWFyKCksdGhpcy5faXNDb25uZWN0ZWQmJnRoaXMuX2xvYWREYXRhKCl9X2RhdGFUb0xvYWRDaGFuZ2VkKCl7dGhpcy5faXNDb25uZWN0ZWQmJnRoaXMuX2xvYWREYXRhKCl9ZGV0YWNoZWQoKXt0aGlzLl9sb2FkRGF0YUFzeW5jIT1udWxsJiYoY2xlYXJUaW1lb3V0KHRoaXMuX2xvYWREYXRhQXN5bmMpLHRoaXMuX2xvYWREYXRhQXN5bmM9bnVsbCl9X2xvYWREYXRhSWZBY3RpdmUoKXt0aGlzLmFjdGl2ZSYmdGhpcy5fbG9hZERhdGEoKX1fbG9hZERhdGFJbXBsKCl7IXRoaXMuYWN0aXZlfHwodGhpcy5fbG9hZERhdGFBc3luYyE9PW51bGwmJmNsZWFyVGltZW91dCh0aGlzLl9sb2FkRGF0YUFzeW5jKSx0aGlzLl9sb2FkRGF0YUFzeW5jPXNldFRpbWVvdXQodGhpcy5fY2FuY2VsbGVyLmNhbmNlbGxhYmxlKHI9PntpZihyLmNhbmNlbGxlZClyZXR1cm47dGhpcy5kYXRhTG9hZGluZz0hMDtsZXQgbj10aGlzLmRhdGFUb0xvYWQuZmlsdGVyKGE9PntsZXQgcz10aGlzLmdldERhdGFMb2FkTmFtZShhKTtyZXR1cm4hdGhpcy5fZGF0YUxvYWRTdGF0ZS5oYXMocyl9KTtmb3IobGV0IGEgb2Ygbil7bGV0IHM9dGhpcy5nZXREYXRhTG9hZE5hbWUoYSk7dGhpcy5fZGF0YUxvYWRTdGF0ZS5zZXQocyx4NC5MT0FESU5HKX1sZXQgaT10aGlzLl9jYW5jZWxsZXIuY2FuY2VsbGFibGUoYT0+e2lmKGEuY2FuY2VsbGVkKXJldHVybjtsZXR7aXRlbTpzLGRhdGE6bH09YS52YWx1ZSxjPXRoaXMuZ2V0RGF0YUxvYWROYW1lKHMpO3RoaXMuX2RhdGFMb2FkU3RhdGUuc2V0KGMseDQuTE9BREVEKSx0aGlzLmxvYWREYXRhQ2FsbGJhY2sodGhpcyxzLGwpfSksbz10aGlzLl9jYW5jZWxsZXIuY2FuY2VsbGFibGUoYT0+e2lmKCFhLmNhbmNlbGxlZCl7bGV0IGw9YS52YWx1ZSxjPW5ldyBTZXQobi5tYXAoaD0+dGhpcy5nZXREYXRhTG9hZE5hbWUoaCkpKTt0aGlzLmRhdGFUb0xvYWQuc29tZShoPT5jLmhhcyh0aGlzLmdldERhdGFMb2FkTmFtZShoKSkpJiZ0aGlzLm9uTG9hZEZpbmlzaCgpLHRoaXMuX2xvYWREYXRhQXN5bmM9bnVsbCx0aGlzLmRhdGFMb2FkZWRBdExlYXN0T25jZT0hMH1BcnJheS5mcm9tKHRoaXMuX2RhdGFMb2FkU3RhdGUudmFsdWVzKCkpLmluY2x1ZGVzKHg0LkxPQURJTkcpfHwodGhpcy5kYXRhTG9hZGluZz0hMSl9KTt0aGlzLnJlcXVlc3REYXRhKG4saSwoKT0+byh2b2lkIDApKX0pKSl9fX12YXIgYnFlPUVlKE9lKCksMSksV289RWUoU2woKSwxKSxSUz1be2NoYXJhY3RlcjoiXHUyNUZDIixtZXRob2Q6V28uU3ltYm9sRmFjdG9yaWVzLnNxdWFyZX0se2NoYXJhY3RlcjoiXHUyNUM2IixtZXRob2Q6V28uU3ltYm9sRmFjdG9yaWVzLmRpYW1vbmR9LHtjaGFyYWN0ZXI6Ilx1MjVCMiIsbWV0aG9kOldvLlN5bWJvbEZhY3Rvcmllcy50cmlhbmdsZX0se2NoYXJhY3RlcjoiXHUyNjA1IixtZXRob2Q6V28uU3ltYm9sRmFjdG9yaWVzLnN0YXJ9LHtjaGFyYWN0ZXI6Ilx1MjcxQSIsbWV0aG9kOldvLlN5bWJvbEZhY3Rvcmllcy5jcm9zc31dLFRkOyhmdW5jdGlvbihlKXtlLlNURVA9InN0ZXAiLGUuUkVMQVRJVkU9InJlbGF0aXZlIixlLldBTExfVElNRT0id2FsbF90aW1lIn0pKFRkfHwoVGQ9e30pKTt2YXIgcjA9NCx3cWU9NCxtQj0zLGdCPTIwLF9CPTQsT0t0PTY7ZnVuY3Rpb24gV3UoZSl7cmV0dXJuIHQ9PntsZXQgcj1NYXRoLmFicyh0KTtyPDFlLTE1JiYocj0wKTtsZXQgbjtyZXR1cm4gcj49MWU0P249eG4oIi4iK2UrIn5lIik6cj4wJiZyPC4wMT9uPXhuKCIuIitlKyJ+ZSIpOm49eG4oIi4iK2UrIn5nIiksbih0KX19dmFyIGI0PXhuKGAuJHt3cWV9fnNgKTtmdW5jdGlvbiBYYXQoKXtsZXQgZT1uZXcgV28uU2NhbGVzLkxpbmVhcjtlLnRpY2tHZW5lcmF0b3IoV28uU2NhbGVzLlRpY2tHZW5lcmF0b3JzLmludGVnZXJUaWNrR2VuZXJhdG9yKCkpO2xldCB0PW5ldyBXby5BeGVzLk51bWVyaWMoZSwiYm90dG9tIik7cmV0dXJuIHQuZm9ybWF0dGVyKGI0KSx7c2NhbGU6ZSxheGlzOnQsYWNjZXNzb3I6cj0+ci5zdGVwfX12YXIgeUI9V28uRm9ybWF0dGVycy50aW1lKCIlYSAlYiAlZSwgJUg6JU06JVMiKTtmdW5jdGlvbiBTcWUoKXtsZXQgZT1uZXcgV28uU2NhbGVzLlRpbWU7cmV0dXJue3NjYWxlOmUsYXhpczpuZXcgV28uQXhlcy5UaW1lKGUsImJvdHRvbSIpLGFjY2Vzc29yOnQ9PnQud2FsbF90aW1lfX12YXIgbjA9KGUsdCxyKT0+e2lmKGUucmVsYXRpdmUhPW51bGwpcmV0dXJuIGUucmVsYXRpdmU7bGV0IG49ci5kYXRhKCksaT1uLmxlbmd0aD4wPytuWzBdLndhbGxfdGltZTowO3JldHVybigrZS53YWxsX3RpbWUtaSkvKDYwKjYwKjFlMyl9LHZCPWU9PntsZXQgdD0iIixyPU1hdGguZmxvb3IoZS8yNCk7ZS09cioyNCxyJiYodCs9cisiZCAiKTtsZXQgbj1NYXRoLmZsb29yKGUpO2UtPW4sZSo9NjAsKG58fHIpJiYodCs9bisiaCAiKTtsZXQgaT1NYXRoLmZsb29yKGUpO2UtPWksZSo9NjAsKGl8fG58fHIpJiYodCs9aSsibSAiKTtsZXQgbz1NYXRoLmZsb29yKGUpO3JldHVybiB0K28rInMifTtmdW5jdGlvbiBNcWUoKXtsZXQgZT1uZXcgV28uU2NhbGVzLkxpbmVhcjtyZXR1cm57c2NhbGU6ZSxheGlzOm5ldyBXby5BeGVzLk51bWVyaWMoZSwiYm90dG9tIiksYWNjZXNzb3I6bjB9fWZ1bmN0aW9uIHhCKGUpe3N3aXRjaChlKXtjYXNlIFRkLlNURVA6cmV0dXJuIFhhdCgpO2Nhc2UgVGQuV0FMTF9USU1FOnJldHVybiBTcWUoKTtjYXNlIFRkLlJFTEFUSVZFOnJldHVybiBNcWUoKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW52YWxpZCB4VHlwZTogIitlKX19dmFyIEZzPUVlKE9lKCksMSksTW49RWUoU2woKSwxKTt2YXIgeGE9RWUoU2woKSwxKTtmdW5jdGlvbiBFcWUoZSl7bGV0IHQ9W10scj1lO2Zvcig7ciYmciBpbnN0YW5jZW9mIEhUTUxFbGVtZW50OylpZih0LnB1c2gociksci5hc3NpZ25lZFNsb3Qpcj1yLmFzc2lnbmVkU2xvdDtlbHNlIGlmKHIucGFyZW50RWxlbWVudClyPXIucGFyZW50RWxlbWVudDtlbHNle2xldCBuPXIucGFyZW50Tm9kZTtuIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudD9yPW4uaG9zdDpyPW4hPT1yP246bnVsbH1yZXR1cm4gdH12YXIgVHFlPVsxLDAsMCwxLDAsMF07ZnVuY3Rpb24gQ3FlKGUpe2xldCB0PUVxZShlKSxyPVRxZSxuPW51bGw7Zm9yKGxldCBpIG9mIHQpe2xldCBvPXhhLlV0aWxzLkRPTS5nZXRFbGVtZW50VHJhbnNmb3JtKGkpO2lmKG8hPW51bGwpe2xldCBsPWkuY2xpZW50V2lkdGgvMixjPWkuY2xpZW50SGVpZ2h0LzI7cj14YS5VdGlscy5NYXRoLm11bHRpcGx5VHJhbnNsYXRlKHIsW2wsY10pLHI9eGEuVXRpbHMuTWF0aC5tdWx0aXBseU1hdHJpeChyLHhhLlV0aWxzLk1hdGguaW52ZXJ0TWF0cml4KG8pKSxyPXhhLlV0aWxzLk1hdGgubXVsdGlwbHlUcmFuc2xhdGUocixbLWwsLWNdKX1sZXQgYT1pLnNjcm9sbExlZnQscz1pLnNjcm9sbFRvcDsobj09PW51bGx8fGk9PT1uKSYmKGEtPWkub2Zmc2V0TGVmdCtpLmNsaWVudExlZnQscy09aS5vZmZzZXRUb3AraS5jbGllbnRUb3Asbj1pLm9mZnNldFBhcmVudCkscj14YS5VdGlscy5NYXRoLm11bHRpcGx5VHJhbnNsYXRlKHIsW2Esc10pfXJldHVybiByfXZhciB3Qj1jbGFzcyBleHRlbmRzIHhhLlV0aWxzLlRyYW5zbGF0b3J7Y29tcHV0ZVBvc2l0aW9uKHQscil7bGV0IG49e3g6dCx5OnJ9LGk9Q3FlKHRoaXMuX3Jvb3RFbGVtZW50KTtyZXR1cm4gaT09bnVsbD9uOnhhLlV0aWxzLk1hdGguYXBwbHlUcmFuc2Zvcm0oaSxuKX19LHF2PWNsYXNzIGV4dGVuZHMgeGEuRGlzcGF0Y2hlcnMuTW91c2V7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5fZXZlbnRUYXJnZXQ9dC5yb290KCkucm9vdEVsZW1lbnQoKS5ub2RlKCksdGhpcy5fdHJhbnNsYXRvcj1uZXcgd0IodC5yb290KCkucm9vdEVsZW1lbnQoKS5ub2RlKCkpfXN0YXRpYyBnZXREaXNwYXRjaGVyKHQpe2xldCByPXQucm9vdCgpLnJvb3RFbGVtZW50KCksbj1yW3F2Ll9ESVNQQVRDSEVSX0tFWV07cmV0dXJuIG58fChuPW5ldyBxdih0KSxyW3F2Ll9ESVNQQVRDSEVSX0tFWV09biksbn19LEd2PWNsYXNzIGV4dGVuZHMgeGEuRGlzcGF0Y2hlcnMuVG91Y2h7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5fZXZlbnRUYXJnZXQ9dC5yb290KCkucm9vdEVsZW1lbnQoKS5ub2RlKCksdGhpcy5fdHJhbnNsYXRvcj1uZXcgd0IodC5yb290KCkucm9vdEVsZW1lbnQoKS5ub2RlKCkpfXN0YXRpYyBnZXREaXNwYXRjaGVyKHQpe2xldCByPXQucm9vdCgpLnJvb3RFbGVtZW50KCksbj1yW0d2Ll9ESVNQQVRDSEVSX0tFWV07cmV0dXJuIG58fChuPW5ldyBHdih0KSxyW0d2Ll9ESVNQQVRDSEVSX0tFWV09biksbn19O3hhLkludGVyYWN0aW9uLnByb3RvdHlwZS5faXNJbnNpZGVDb21wb25lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIDA8PWUueCYmMDw9ZS55JiZlLng8dGhpcy5fY29tcG9uZW50QXR0YWNoZWRUby53aWR0aCgpJiZlLnk8dGhpcy5fY29tcG9uZW50QXR0YWNoZWRUby5oZWlnaHQoKX07dmFyIFNCPWNsYXNzIGV4dGVuZHMgeGEuSW50ZXJhY3Rpb25zLlBvaW50ZXJ7X2FuY2hvcih0KXtsZXQgcj10aGlzO3IuX2lzQW5jaG9yZWQ9ITAsci5fbW91c2VEaXNwYXRjaGVyPXF2LmdldERpc3BhdGNoZXIoci5fY29tcG9uZW50QXR0YWNoZWRUbyksci5fbW91c2VEaXNwYXRjaGVyLm9uTW91c2VNb3ZlKHIuX21vdXNlTW92ZUNhbGxiYWNrKSxyLl90b3VjaERpc3BhdGNoZXI9R3YuZ2V0RGlzcGF0Y2hlcihyLl9jb21wb25lbnRBdHRhY2hlZFRvKSxyLl90b3VjaERpc3BhdGNoZXIub25Ub3VjaFN0YXJ0KHIuX3RvdWNoU3RhcnRDYWxsYmFjayl9fTt2YXIgekt0PUVlKE9lKCksMSk7dmFyIFd2OyhmdW5jdGlvbihlKXtlLkFVVE89ImF1dG8iLGUuQk9UVE9NPSJib3R0b20iLGUuUklHSFQ9InJpZ2h0In0pKFd2fHwoV3Y9e30pKTt2YXIgQXFlPXtib3hTaGFkb3c6IjAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIC4zKSIsb3BhY2l0eTowLHBvc2l0aW9uOiJmaXhlZCIsd2lsbENoYW5nZToidHJhbnNmb3JtIix6SW5kZXg6NX0sdzQ9Y2xhc3MgZXh0ZW5kcyBHdChtdCl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucG9zaXRpb249V3YuQVVUTyx0aGlzLm1pbkRpc3RGcm9tRWRnZT0xNSx0aGlzLl9zdHlsZUNhY2hlPW51bGwsdGhpcy5fcmFmPW51bGwsdGhpcy5fdHVubmVsPW51bGx9cmVhZHkoKXt0aGlzLl9zdHlsZUNhY2hlPW51bGwsdGhpcy5fcmFmPW51bGwsdGhpcy5fdHVubmVsPW51bGx9YXR0YWNoZWQoKXt0aGlzLl90dW5uZWw9dGhpcy5fY3JlYXRlVHVubmVsKCksdGhpcy5faGlkZU9uQmx1cj0oKT0+e2RvY3VtZW50LmhpZGRlbiYmdGhpcy5oaWRlKCl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLl9oaWRlT25CbHVyKX1kZXRhY2hlZCgpe3RoaXMuaGlkZSgpLHRoaXMuX3JlbW92ZVR1bm5lbCh0aGlzLl90dW5uZWwpLHRoaXMuX3R1bm5lbD1udWxsLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLl9oaWRlT25CbHVyKX1jb250ZW50KCl7cmV0dXJuIHRoaXMuX3R1bm5lbC5zaGFkb3dSb290fWhpZGUoKXt0aGlzLl9yYWYhPT1udWxsJiZ3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fcmFmKSx0aGlzLl9zdHlsZUNhY2hlPW51bGwsdGhpcy5fdHVubmVsLnN0eWxlLm9wYWNpdHk9MH11cGRhdGVBbmRQb3NpdGlvbih0KXt0aGlzLl9yYWYhPT1udWxsJiZ3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fcmFmKSx0aGlzLl9yYWY9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+eyF0aGlzLmlzQXR0YWNoZWR8fHRoaXMuX3JlcG9zaXRpb25JbXBsKHQpfSl9X3JlcG9zaXRpb25JbXBsKHQpe2xldCByPXRoaXMuX3R1bm5lbCxuPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89d2luZG93LmlubmVySGVpZ2h0LGE9ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCxzPW4udG9wLGw9cytuLmhlaWdodCxjPWkuaGVpZ2h0K2dCLHU9bnVsbCxoPU1hdGgubWF4KHRoaXMubWluRGlzdEZyb21FZGdlLG4ubGVmdCksZj1udWxsLHA9czt0aGlzLnBvc2l0aW9uPT1Xdi5SSUdIVD9oPW4ucmlnaHQ6KHA9bCtnQixhPGgraS53aWR0aCt0aGlzLm1pbkRpc3RGcm9tRWRnZSYmKGg9bnVsbCxmPXRoaXMubWluRGlzdEZyb21FZGdlKSksdGhpcy5wb3NpdGlvbj09V3YuQVVUTyYmbi50b3AtYz4wJiZvPG4udG9wK24uaGVpZ2h0K2MmJihwPW51bGwsdT1vLXMrZ0IpO2xldCBkPXtjb250YWluOiJjb250ZW50IixvcGFjaXR5OjEsbGVmdDpoP2Ake2h9cHhgOm51bGwscmlnaHQ6Zj9gJHtmfXB4YDpudWxsLHRvcDpwP2Ake3B9cHhgOm51bGwsYm90dG9tOnU/YCR7dX1weGA6bnVsbH07ekt0LmlzRXF1YWwodGhpcy5fc3R5bGVDYWNoZSxkKXx8KE9iamVjdC5hc3NpZ24oci5zdHlsZSxkKSx0aGlzLl9zdHlsZUNhY2hlPWQpfV9jcmVhdGVUdW5uZWwoKXtpZighdGhpcy5jb250ZW50Q29tcG9uZW50TmFtZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiUmVxdWlyZSBgY29udGVudENvbXBvbmVudE5hbWVgIHRvIGJlIGEgbmFtZSBvZiBhIFBvbHltZXIgY29tcG9uZW50Iik7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNvbnRlbnRDb21wb25lbnROYW1lKTtyZXR1cm4gT2JqZWN0LmFzc2lnbih0LnN0eWxlLEFxZSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KSx0fV9yZW1vdmVUdW5uZWwodCl7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KX19O0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLHc0LnByb3RvdHlwZSwiY29udGVudENvbXBvbmVudE5hbWUiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sdzQucHJvdG90eXBlLCJwb3NpdGlvbiIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSx3NC5wcm90b3R5cGUsIm1pbkRpc3RGcm9tRWRnZSIsdm9pZCAwKTt3ND1FKFt5dCgidnotY2hhcnQtdG9vbHRpcCIpXSx3NCk7dmFyIE5TPUVlKFNsKCksMSk7dmFyIEhLdD0xZTQsVkt0PS4wMDEsVUt0PXhuKCIuMn5lIiksUHFlPXhuKCIuNH5yIiksRkt0PXhuKCIsfiIpO2Z1bmN0aW9uIEJLdChlKXtpZihlPT09MClyZXR1cm4iMCI7bGV0IHQ9TWF0aC5hYnMoZSk7cmV0dXJuIHQ+PUhLdHx8dDxWS3Q/VUt0KGUpOlBxZShlKX12YXIgS2F0PXtmb3JtYXRUaWNrOkJLdCxmb3JtYXRTaG9ydDpCS3QsZm9ybWF0UmVhZGFibGUoZSl7bGV0IHQ9TWF0aC5hYnMoZSk7cmV0dXJuIHQ+PUhLdHx8dDxWS3Q/VUt0KGUpOkZLdChlKX0sZm9ybWF0TG9uZzpGS3R9LGlXbj1uZXcgSW50bC5OdW1iZXJGb3JtYXQodm9pZCAwLHttYXhpbXVtRnJhY3Rpb25EaWdpdHM6NH0pO3ZhciBvV249eG4oIjAuM35zIiksYVduPXhuKCIsLjN+ZiIpO3ZhciBJcWU9MWUzLExxZT02MCpJcWUsa3FlPTYwKkxxZSxScWU9MjQqa3FlLHNXbj0zNjUqUnFlLGxXbj14bigiLjR+Iik7dmFyIE5xZT1ZYigpLnRpY2tGb3JtYXQoKSwkYXQscUt0PXtmb3JtYXRUaWNrKGUpe3JldHVybiBOcWUobmV3IERhdGUoZSkpfSxmb3JtYXRTaG9ydChlKXtyZXR1cm4gbmV3IERhdGUoZSkudG9Mb2NhbGVTdHJpbmcoJGF0LHt5ZWFyOiJudW1lcmljIixtb250aDoic2hvcnQiLGRheToibnVtZXJpYyIsaG91cjoibnVtZXJpYyIsbWludXRlOiJudW1lcmljIixzZWNvbmQ6Im51bWVyaWMifSl9LGZvcm1hdFJlYWRhYmxlKGUpe3JldHVybiBuZXcgRGF0ZShlKS50b0xvY2FsZVN0cmluZygkYXQse3llYXI6Im51bWVyaWMiLG1vbnRoOiJzaG9ydCIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsdGltZVpvbmVOYW1lOiJzaG9ydCJ9KX0sZm9ybWF0TG9uZyhlKXtyZXR1cm4gbmV3IERhdGUoZSkudG9Mb2NhbGVTdHJpbmcoJGF0LHt5ZWFyOiJudW1lcmljIixtb250aDoibG9uZyIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsdGltZVpvbmVOYW1lOiJzaG9ydCIsZnJhY3Rpb25hbFNlY29uZERpZ2l0czozfSl9fTt2YXIgQ2Q7KGZ1bmN0aW9uKGUpe2VbZS5MSU5FQVI9MF09IkxJTkVBUiIsZVtlLkxPRzEwPTFdPSJMT0cxMCIsZVtlLlRJTUU9Ml09IlRJTUUifSkoQ2R8fChDZD17fSkpO2Z1bmN0aW9uIEdLdChlKXtzd2l0Y2goZSl7Y2FzZSBDZC5MSU5FQVI6cmV0dXJuIG5ldyBaYXQ7Y2FzZSBDZC5MT0cxMDpyZXR1cm4gbmV3IEphdDtjYXNlIENkLlRJTUU6cmV0dXJuIG5ldyBRYXQ7ZGVmYXVsdDpsZXQgdD1lO3Rocm93IG5ldyBSYW5nZUVycm9yKGBTY2FsZVR5cGUgJHt0fSBub3Qgc3VwcG9ydGVkLmApfX12YXIgRHFlPS4wNSxaYXQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmRlZmF1bHRGb3JtYXR0ZXI9S2F0fXRyYW5zZm9ybSh0LHIsbil7bGV0W2ksb109dCxhPW8taSxbcyxsXT1yLGM9bC1zO3JldHVybiBhPT09MD9zOmMvYSoobi1pKStzfWZvcndhcmQodCxyLG4pe3JldHVybiB0aGlzLnRyYW5zZm9ybSh0LHIsbil9cmV2ZXJzZSh0LHIsbil7cmV0dXJuIHRoaXMudHJhbnNmb3JtKHIsdCxuKX1uaWNlRG9tYWluKHQpe2xldFtyLG5dPXQ7aWYobjxyKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBpbnB1dDogbWluIGlzIGxhcmdlciB0aGFuIG1heCIpO2lmKG49PT1yKXJldHVybiByPT09MD9bLTEsMV06cjwwP1syKnIsMF06WzAsMipyXTtsZXQgaT16bigpLG89KG4tcitOdW1iZXIuRVBTSUxPTikqRHFlLFthLHNdPWkuZG9tYWluKFtyLW8sbitvXSkubmljZSgpLmRvbWFpbigpO3JldHVyblthLHNdfXRpY2tzKHQscil7cmV0dXJuIHpuKCkuZG9tYWluKHQpLnRpY2tzKHIpfWlzU2FmZU51bWJlcih0KXtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHQpfX0sSmF0PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5kZWZhdWx0Rm9ybWF0dGVyPUthdH10cmFuc2Zvcm0odCl7cmV0dXJuIE1hdGgubG9nMTAodD4wP3Q6TnVtYmVyLk1JTl9WQUxVRSl9dW50cmFuc2Zvcm0odCl7cmV0dXJuIE1hdGguZXhwKHQvTWF0aC5MT0cxMEUpfWZvcndhcmQodCxyLG4pe2lmKG48PTApcmV0dXJuIHJbMF07bGV0W2ksb109dCxbYSxzXT1yLGw9dGhpcy50cmFuc2Zvcm0oaSksdT10aGlzLnRyYW5zZm9ybShvKS1sLGg9cy1hO3JldHVybiBuPXRoaXMudHJhbnNmb3JtKG4pLGgvKHUrTnVtYmVyLkVQU0lMT04pKihuLWwpK2F9cmV2ZXJzZSh0LHIsbil7bGV0W2ksb109dCxbYSxzXT1yLGw9dGhpcy50cmFuc2Zvcm0oaSksdT10aGlzLnRyYW5zZm9ybShvKS1sLGg9cy1hLGY9dS8oaCtOdW1iZXIuRVBTSUxPTikqKG4tYSkrbDtyZXR1cm4gdGhpcy51bnRyYW5zZm9ybShmKX1uaWNlRG9tYWluKHQpe2xldFtyLG5dPXQ7aWYocj5uKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBpbnB1dDogbWluIGlzIGxhcmdlciB0aGFuIG1heCIpO2xldCBpPU1hdGgubWF4KHIsTnVtYmVyLk1JTl9WQUxVRSksbz1NYXRoLm1heChuLE51bWJlci5NSU5fVkFMVUUpO3JldHVybiBuPD0wP1tOdW1iZXIuTUlOX1ZBTFVFLDFdOltNYXRoLm1heChOdW1iZXIuTUlOX1ZBTFVFLGkqLjUpLG8qMl19dGlja3ModCxyKXtsZXQgbj10WzBdPD0wP051bWJlci5NSU5fVkFMVUU6dFswXSxpPXRbMV08PTA/TnVtYmVyLk1JTl9WQUxVRTp0WzFdLG89Y2MoKS5kb21haW4oW24saV0pLnRpY2tzKHIpO3JldHVybiBvLmxlbmd0aD9vOnR9aXNTYWZlTnVtYmVyKHQpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUodCkmJnQ+MH19LFFhdD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc2NhbGU9WWIoKSx0aGlzLmRlZmF1bHRGb3JtYXR0ZXI9cUt0fWZvcndhcmQodCxyLG4pe3JldHVybiB0aGlzLnNjYWxlLmRvbWFpbih0KS5yYW5nZShyKShuKX1yZXZlcnNlKHQscixuKXtyZXR1cm4gdGhpcy5zY2FsZS5kb21haW4odCkucmFuZ2UocikuaW52ZXJ0KG4pLmdldFRpbWUoKX1uaWNlRG9tYWluKHQpe2xldFtyLG5dPXRoaXMuc2NhbGUuZG9tYWluKHQpLm5pY2UoKS5kb21haW4oKTtyZXR1cm5bci5nZXRUaW1lKCksbi5nZXRUaW1lKCldfXRpY2tzKHQscil7cmV0dXJuIHRoaXMuc2NhbGUuZG9tYWluKHQpLnRpY2tzKHIpLm1hcChuPT5uLmdldFRpbWUoKSl9aXNTYWZlTnVtYmVyKHQpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUodCl9fTt2YXIgTUI9Y2xhc3MgZXh0ZW5kcyBOUy5TY2FsZXMuTGluZWFye2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9pZ25vcmVPdXRsaWVyPSExLHRoaXMucGFkUHJvcG9ydGlvbiguMil9c2V0VmFsdWVQcm92aWRlckZvckRvbWFpbih0KXtyZXR1cm4gdGhpcy5fdmFsdWVQcm92aWRlckZvckRvbWFpbj10LHRoaXN9X25pY2VEb21haW4odCxyKXtsZXRbbixpXT10O3JldHVybiBHS3QoQ2QuTElORUFSKS5uaWNlRG9tYWluKFtuLGldKX1fZ2V0VW5ib3VuZGVkRXh0ZW50KHQpe2xldCByPXRoaXMuX2dldEFsbEluY2x1ZGVkVmFsdWVzKHQpLG49dGhpcy5fZGVmYXVsdEV4dGVudCgpO2lmKHIubGVuZ3RoIT09MCl7bGV0IGk9W05TLlV0aWxzLk1hdGgubWluKHIsblswXSksTlMuVXRpbHMuTWF0aC5tYXgocixuWzFdKV07bj10aGlzLl9uaWNlRG9tYWluKGkpfXJldHVybiBufV9nZXRBbGxJbmNsdWRlZFZhbHVlcyh0PSExKXtsZXQgcj10aGlzLl92YWx1ZVByb3ZpZGVyRm9yRG9tYWluP3RoaXMuX3ZhbHVlUHJvdmlkZXJGb3JEb21haW4oKTpbXTtyZXR1cm4gdGhpcy5leHRlbnRPZlZhbHVlcyhyKX1leHRlbnRPZlZhbHVlcyh0KXtsZXQgcj10LmZpbHRlcihvPT5OUy5VdGlscy5NYXRoLmlzVmFsaWROdW1iZXIobykpLG49cjtpZih0aGlzLmlnbm9yZU91dGxpZXIoKSl7bGV0IG89ci5zb3J0KChsLGMpPT5sLWMpLGE9bGEobywuMDUpLHM9bGEobywuOTUpO249ci5maWx0ZXIobD0+bD49YSYmbDw9cyl9bGV0IGk9c2Eobik7cmV0dXJuIGlbMF09PW51bGx8fGlbMV09PW51bGw/W106aX1pZ25vcmVPdXRsaWVyKHQpe3JldHVybiB0eXBlb2YgdD09ImJvb2xlYW4iPyh0aGlzLl9pZ25vcmVPdXRsaWVyPXQsdGhpcyk6dGhpcy5faWdub3JlT3V0bGllcn19O3ZhciBDQj1FZShTbCgpLDEpO3ZhciBXS3Q9RWUoU2woKSwxKSxFQj1jbGFzcyBleHRlbmRzIFdLdC5RdWFudGl0YXRpdmVTY2FsZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5faWdub3JlT3V0bGllcj0hMX1zZXRWYWx1ZVByb3ZpZGVyRm9yRG9tYWluKHQpe3JldHVybiB0aGlzLl92YWx1ZVByb3ZpZGVyRm9yRG9tYWluPXQsdGhpc31pZ25vcmVPdXRsaWVyKHQpe3JldHVybiB0eXBlb2YgdD09ImJvb2xlYW4iPyh0aGlzLl9pZ25vcmVPdXRsaWVyPXQsdGhpcyk6dGhpcy5faWdub3JlT3V0bGllcn1fZ2V0QWxsSW5jbHVkZWRWYWx1ZXModD0hMSl7bGV0IHI9dGhpcy5fdmFsdWVQcm92aWRlckZvckRvbWFpbj90aGlzLl92YWx1ZVByb3ZpZGVyRm9yRG9tYWluKCk6W107cmV0dXJuIHRoaXMuZXh0ZW50T2ZWYWx1ZXMocil9fTt2YXIgVEI9TWF0aC5wb3coMiwtMTA3NCk7ZnVuY3Rpb24gUzQoZSl7cmV0dXJuIE1hdGgubG9nMTAoZSl9ZnVuY3Rpb24gdHN0KGUpe3JldHVybiBNYXRoLnBvdygxMCxlKX12YXIgQUI9Y2xhc3MgZXh0ZW5kcyBFQntjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fZDNMb2dTY2FsZT1jYygpLHRoaXMucGFkUHJvcG9ydGlvbiguMil9c2NhbGUodCl7cmV0dXJuIHQ8PTA/TmFOOnRoaXMuX2QzTG9nU2NhbGUodCl9aW52ZXJ0KHQpe3JldHVybiB0aGlzLl9kM0xvZ1NjYWxlLmludmVydCh0KX1zY2FsZVRyYW5zZm9ybWF0aW9uKHQpe3JldHVybiB0aGlzLnNjYWxlKHQpfWludmVydGVkVHJhbnNmb3JtYXRpb24odCl7cmV0dXJuIHRoaXMuaW52ZXJ0KHQpfWdldFRyYW5zZm9ybWF0aW9uRG9tYWluKCl7cmV0dXJuIHRoaXMuZG9tYWluKCl9c2V0VHJhbnNmb3JtYXRpb25Eb21haW4odCl7dGhpcy5kb21haW4odCl9Z2V0VHJhbnNmb3JtYXRpb25FeHRlbnQoKXtyZXR1cm4gdGhpcy5fZ2V0VW5ib3VuZGVkRXh0ZW50KCEwKX1fZ2V0RG9tYWluKCl7cmV0dXJuIHRoaXMuX3VudHJhbnNmb3JtZWREb21haW59X3NldERvbWFpbih0KXt0aGlzLl91bnRyYW5zZm9ybWVkRG9tYWluPXQ7bGV0W3Isbl09dDtzdXBlci5fc2V0RG9tYWluKFtNYXRoLm1heChUQixyKSxuXSl9X25pY2VEb21haW4odCxyKXtsZXRbbixpXT10LG89TWF0aC5tYXgoUzQoVEIpLFM0KG4pKSxhPVM0KGkpLHM9YS1vLGw9cz9zKnRoaXMucGFkUHJvcG9ydGlvbigpOjE7cmV0dXJuW3RzdChNYXRoLm1heChTNChUQiksby1sKSksdHN0KGErbCldfV9nZXRVbmJvdW5kZWRFeHRlbnQodCl7bGV0IHI9dGhpcy5fZ2V0QWxsSW5jbHVkZWRWYWx1ZXModCksbj10aGlzLl9kZWZhdWx0RXh0ZW50KCk7aWYoci5sZW5ndGghPT0wKXtsZXQgaT1bQ0IuVXRpbHMuTWF0aC5taW4ocixuWzBdKSxDQi5VdGlscy5NYXRoLm1heChyLG5bMV0pXTtuPXRoaXMuX25pY2VEb21haW4oaSl9cmV0dXJuIG59X2dldEFsbEluY2x1ZGVkVmFsdWVzKHQ9ITEpe3JldHVybiBzdXBlci5fZ2V0QWxsSW5jbHVkZWRWYWx1ZXMoKS5tYXAobj0+bj4wP246VEIpfV9kZWZhdWx0RXh0ZW50KCl7cmV0dXJuWzEsMTBdfV9iYWNraW5nU2NhbGVEb21haW4odCl7cmV0dXJuIHQ9PW51bGw/dGhpcy5fZDNMb2dTY2FsZS5kb21haW4oKToodGhpcy5fZDNMb2dTY2FsZS5kb21haW4odCksdGhpcyl9X2dldFJhbmdlKCl7cmV0dXJuIHRoaXMuX2QzTG9nU2NhbGUucmFuZ2UoKX1fc2V0UmFuZ2UodCl7dGhpcy5fZDNMb2dTY2FsZS5yYW5nZSh0KX1kZWZhdWx0VGlja3MoKXtyZXR1cm4gdGhpcy5fZDNMb2dTY2FsZS50aWNrcygxKX10aWNrcygpe3JldHVybiB0aGlzLl9kM0xvZ1NjYWxlLnRpY2tzKCl9ZXh0ZW50T2ZWYWx1ZXModCl7bGV0IHI9dC5maWx0ZXIobz0+Q0IuVXRpbHMuTWF0aC5pc1ZhbGlkTnVtYmVyKG8pJiZvPjApLG49cjtpZih0aGlzLmlnbm9yZU91dGxpZXIoKSl7bGV0IGE9ci5tYXAoUzQpLnNvcnQoKGMsdSk9PmMtdSkscz1sYShhLC4wNSksbD1sYShhLC45NSk7bj1hLmZpbHRlcihjPT5jPj1zJiZjPD1sKS5tYXAodHN0KX1sZXQgaT1zYShuKTtyZXR1cm4gaVswXT09bnVsbHx8aVsxXT09bnVsbD9bXTppfX07dmFyIEFkPUVlKFNsKCksMSk7dmFyIGkwPUVlKFNsKCksMSksUEI9Y2xhc3MgZXh0ZW5kcyBpMC5Db21wb25lbnRzLlNlbGVjdGlvbkJveExheWVye2NvbnN0cnVjdG9yKHQscixuKXtzdXBlcigpLHRoaXMuZWFzZUZuPWJzLHRoaXMuX2FuaW1hdGlvblRpbWU9NzUwLHRoaXMueFNjYWxlKHQpLHRoaXMueVNjYWxlKHIpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbj1uZXcgaTAuSW50ZXJhY3Rpb25zLkRyYWcsdGhpcy5fZG91YmxlQ2xpY2tJbnRlcmFjdGlvbj1uZXcgaTAuSW50ZXJhY3Rpb25zLkNsaWNrLHRoaXMuc2V0dXBDYWxsYmFja3MoKSx0aGlzLnVuem9vbU1ldGhvZD1uLHRoaXMub25EZXRhY2goKCk9Pnt0aGlzLl9kb3VibGVDbGlja0ludGVyYWN0aW9uLmRldGFjaEZyb20odGhpcyksdGhpcy5fZHJhZ0ludGVyYWN0aW9uLmRldGFjaEZyb20odGhpcyl9KSx0aGlzLm9uQW5jaG9yKCgpPT57dGhpcy5fZG91YmxlQ2xpY2tJbnRlcmFjdGlvbi5hdHRhY2hUbyh0aGlzKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24uYXR0YWNoVG8odGhpcyl9KX1pbnRlcmFjdGlvblN0YXJ0KHQpe3RoaXMub25TdGFydD10fWludGVyYWN0aW9uRW5kKHQpe3RoaXMub25FbmQ9dH1kcmFnSW50ZXJhY3Rpb24oKXtyZXR1cm4gdGhpcy5fZHJhZ0ludGVyYWN0aW9ufXNldHVwQ2FsbGJhY2tzKCl7bGV0IHQ9ITE7dGhpcy5fZHJhZ0ludGVyYWN0aW9uLm9uRHJhZ1N0YXJ0KHI9Pnt0aGlzLmJvdW5kcyh7dG9wTGVmdDpyLGJvdHRvbVJpZ2h0OnJ9KSx0aGlzLm9uU3RhcnQoKX0pLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWcoKHIsbik9Pnt0aGlzLmJvdW5kcyh7dG9wTGVmdDpyLGJvdHRvbVJpZ2h0Om59KSx0aGlzLmJveFZpc2libGUoITApLHQ9ITB9KSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnRW5kKChyLG4pPT57dGhpcy5ib3hWaXNpYmxlKCExKSx0aGlzLmJvdW5kcyh7dG9wTGVmdDpyLGJvdHRvbVJpZ2h0Om59KSx0P3RoaXMuem9vbSgpOnRoaXMub25FbmQoKSx0PSExfSksdGhpcy5fZG91YmxlQ2xpY2tJbnRlcmFjdGlvbi5vbkRvdWJsZUNsaWNrKHRoaXMudW56b29tLmJpbmQodGhpcykpfWFuaW1hdGlvblRpbWUodCl7aWYodD09bnVsbClyZXR1cm4gdGhpcy5fYW5pbWF0aW9uVGltZTtpZih0PDApdGhyb3cgbmV3IEVycm9yKCJhbmltYXRpb25UaW1lIGNhbm5vdCBiZSBuZWdhdGl2ZSIpO3JldHVybiB0aGlzLl9hbmltYXRpb25UaW1lPXQsdGhpc31lYXNlKHQpe2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcigiZWFzZSBmdW5jdGlvbiBtdXN0IGJlIGEgZnVuY3Rpb24iKTtyZXR1cm4odCgwKSE9PTB8fHQoMSkhPT0xKSYmaTAuVXRpbHMuV2luZG93Lndhcm4oIkVhc2luZyBmdW5jdGlvbiBkb2VzIG5vdCBtYWludGFpbiBpbnZhcmlhbnQgZigwKT09MCAmJiBmKDEpPT0xLiBCYWQgYmVoYXZpb3IgbWF5IHJlc3VsdC4iKSx0aGlzLmVhc2VGbj10LHRoaXN9em9vbSgpe2xldCB0PXRoaXMueEV4dGVudCgpWzBdLnZhbHVlT2YoKSxyPXRoaXMueEV4dGVudCgpWzFdLnZhbHVlT2YoKSxuPXRoaXMueUV4dGVudCgpWzFdLnZhbHVlT2YoKSxpPXRoaXMueUV4dGVudCgpWzBdLnZhbHVlT2YoKTt0PT09cnx8bj09PWl8fHRoaXMuaW50ZXJwb2xhdGVab29tKHQscixuLGkpfXVuem9vbSgpe2xldCB0PXRoaXMueFNjYWxlKCk7dC5fZG9tYWluTWluPW51bGwsdC5fZG9tYWluTWF4PW51bGw7bGV0IHI9dC5fZ2V0RXh0ZW50KCk7dGhpcy54U2NhbGUoKS5kb21haW4ociksdGhpcy51bnpvb21NZXRob2QoKX1pc1pvb21pbmcodCl7dGhpcy5fZHJhZ0ludGVyYWN0aW9uLmVuYWJsZWQoIXQpLHRoaXMuX2RvdWJsZUNsaWNrSW50ZXJhY3Rpb24uZW5hYmxlZCghdCl9aW50ZXJwb2xhdGVab29tKHQscixuLGkpe2xldCBvPXRoaXMueFNjYWxlKCkuZG9tYWluKClbMF0udmFsdWVPZigpLGE9dGhpcy54U2NhbGUoKS5kb21haW4oKVsxXS52YWx1ZU9mKCkscz10aGlzLnlTY2FsZSgpLmRvbWFpbigpWzBdLnZhbHVlT2YoKSxsPXRoaXMueVNjYWxlKCkuZG9tYWluKClbMV0udmFsdWVPZigpLGM9dGhpcy5lYXNlRm4sdT0ocCxkLGcpPT56aShwLGQpKGMoZykpO3RoaXMuaXNab29taW5nKCEwKTtsZXQgaD1EYXRlLm5vdygpLGY9KCk9PntsZXQgZD1EYXRlLm5vdygpLWgsZz10aGlzLl9hbmltYXRpb25UaW1lPT09MD8xOk1hdGgubWluKDEsZC90aGlzLl9hbmltYXRpb25UaW1lKSxfPXUobyx0LGcpLHk9dShhLHIsZykseD11KHMsbixnKSxiPXUobCxpLGcpO3RoaXMueFNjYWxlKCkuZG9tYWluKFtfLHldKSx0aGlzLnlTY2FsZSgpLmRvbWFpbihbeCxiXSksZzwxP2kwLlV0aWxzLkRPTS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVQb2x5ZmlsbChmKToodGhpcy5vbkVuZCgpLHRoaXMuaXNab29taW5nKCExKSl9O2YoKX19O3ZhciBiYTsoZnVuY3Rpb24oZSl7ZVtlLk5PTkU9MF09Ik5PTkUiLGVbZS5EUkFHX1pPT01JTkc9MV09IkRSQUdfWk9PTUlORyIsZVtlLlBBTk5JTkc9Ml09IlBBTk5JTkcifSkoYmF8fChiYT17fSkpO3ZhciBGZj1jbGFzcyBleHRlbmRzIEFkLkNvbXBvbmVudHMuR3JvdXB7Y29uc3RydWN0b3IodCxyLG4pe3N1cGVyKCksdGhpcy5zdGF0ZT1iYS5OT05FLHRoaXMucGFuU3RhcnRDYWxsYmFjaz1uZXcgQWQuVXRpbHMuQ2FsbGJhY2tTZXQsdGhpcy5wYW5FbmRDYWxsYmFjaz1uZXcgQWQuVXRpbHMuQ2FsbGJhY2tTZXQsdGhpcy5wYW5ab29tPW5ldyBBZC5JbnRlcmFjdGlvbnMuUGFuWm9vbSh0LHIpLHRoaXMucGFuWm9vbS5kcmFnSW50ZXJhY3Rpb24oKS5tb3VzZUZpbHRlcihvPT5GZi5pc1BhbktleShvKSYmby5idXR0b249PT0wKSx0aGlzLnBhblpvb20ud2hlZWxGaWx0ZXIodGhpcy5jYW5TY3JvbGxab29tKSx0aGlzLmRyYWdab29tTGF5ZXI9bmV3IFBCKHQscixuKSx0aGlzLmRyYWdab29tTGF5ZXIuZHJhZ0ludGVyYWN0aW9uKCkubW91c2VGaWx0ZXIobz0+IUZmLmlzUGFuS2V5KG8pJiZvLmJ1dHRvbj09PTApLHRoaXMuYXBwZW5kKHRoaXMuZHJhZ1pvb21MYXllcik7bGV0IGk9dGhpcy5vbldoZWVsLmJpbmQodGhpcyk7dGhpcy5vbkFuY2hvcigoKT0+e3RoaXMuX21vdXNlRGlzcGF0Y2hlcj1BZC5EaXNwYXRjaGVycy5Nb3VzZS5nZXREaXNwYXRjaGVyKHRoaXMpLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vbldoZWVsKGkpLHRoaXMucGFuWm9vbS5hdHRhY2hUbyh0aGlzKX0pLHRoaXMub25EZXRhY2goKCk9Pnt0aGlzLnBhblpvb20uZGV0YWNoRnJvbSh0aGlzKSx0aGlzLl9tb3VzZURpc3BhdGNoZXImJih0aGlzLl9tb3VzZURpc3BhdGNoZXIub2ZmV2hlZWwoaSksdGhpcy5fbW91c2VEaXNwYXRjaGVyPW51bGwpfSksdGhpcy5wYW5ab29tLmRyYWdJbnRlcmFjdGlvbigpLm9uRHJhZ1N0YXJ0KCgpPT57dGhpcy5zdGF0ZT09YmEuTk9ORSYmdGhpcy5zZXRTdGF0ZShiYS5QQU5OSU5HKX0pLHRoaXMucGFuWm9vbS5kcmFnSW50ZXJhY3Rpb24oKS5vbkRyYWdFbmQoKCk9Pnt0aGlzLnN0YXRlPT1iYS5QQU5OSU5HJiZ0aGlzLnNldFN0YXRlKGJhLk5PTkUpfSksdGhpcy5kcmFnWm9vbUxheWVyLmRyYWdJbnRlcmFjdGlvbigpLm9uRHJhZ1N0YXJ0KCgpPT57dGhpcy5zdGF0ZT09YmEuTk9ORSYmdGhpcy5zZXRTdGF0ZShiYS5EUkFHX1pPT01JTkcpfSksdGhpcy5kcmFnWm9vbUxheWVyLmRyYWdJbnRlcmFjdGlvbigpLm9uRHJhZ0VuZCgoKT0+e3RoaXMuc3RhdGU9PWJhLkRSQUdfWk9PTUlORyYmdGhpcy5zZXRTdGF0ZShiYS5OT05FKX0pfW9uV2hlZWwodCxyKXtpZih0aGlzLmNhblNjcm9sbFpvb20ocikpcmV0dXJuO2xldCBuPXRoaXMuZWxlbWVudCgpO2lmKCFuLnNlbGVjdCgiLmhlbHAiKS5lbXB0eSgpKXJldHVybjtsZXQgaT1uLmFwcGVuZCgiZGl2IikuY2xhc3NlZCgiaGVscCIsITApO2kuYXBwZW5kKCJzcGFuIikudGV4dCgiQWx0ICsgU2Nyb2xsIHRvIFpvb20iKSxpLm9uKCJhbmltYXRpb25lbmQiLCgpPT52b2lkIGkucmVtb3ZlKCkpfXN0YXRpYyBpc1BhbktleSh0KXtyZXR1cm4gQm9vbGVhbih0LmFsdEtleSl8fEJvb2xlYW4odC5zaGlmdEtleSl9Y2FuU2Nyb2xsWm9vbSh0KXtyZXR1cm4gdC5hbHRLZXl9c2V0U3RhdGUodCl7aWYodGhpcy5zdGF0ZT09dClyZXR1cm47bGV0IHI9dGhpcy5zdGF0ZTt0aGlzLnN0YXRlPXQsdGhpcy5yb290KCkucmVtb3ZlQ2xhc3ModGhpcy5zdGF0ZUNsYXNzTmFtZShyKSksdGhpcy5yb290KCkuYWRkQ2xhc3ModGhpcy5zdGF0ZUNsYXNzTmFtZSh0KSkscj09YmEuUEFOTklORyYmdGhpcy5wYW5FbmRDYWxsYmFjay5jYWxsQ2FsbGJhY2tzKCksdD09YmEuUEFOTklORyYmdGhpcy5wYW5TdGFydENhbGxiYWNrLmNhbGxDYWxsYmFja3MoKX1zdGF0ZUNsYXNzTmFtZSh0KXtzd2l0Y2godCl7Y2FzZSBiYS5QQU5OSU5HOnJldHVybiJwYW5uaW5nIjtjYXNlIGJhLkRSQUdfWk9PTUlORzpyZXR1cm4iZHJhZy16b29taW5nIjtjYXNlIGJhLk5PTkU6ZGVmYXVsdDpyZXR1cm4iIn19b25QYW5TdGFydCh0KXt0aGlzLnBhblN0YXJ0Q2FsbGJhY2suYWRkKHQpfW9uUGFuRW5kKHQpe3RoaXMucGFuRW5kQ2FsbGJhY2suYWRkKHQpfW9uU2Nyb2xsWm9vbSh0KXt0aGlzLnBhblpvb20ub25ab29tRW5kKHQpfW9uRHJhZ1pvb21TdGFydCh0KXt0aGlzLmRyYWdab29tTGF5ZXIuaW50ZXJhY3Rpb25TdGFydCh0KX1vbkRyYWdab29tRW5kKHQpe3RoaXMuZHJhZ1pvb21MYXllci5pbnRlcmFjdGlvbkVuZCh0KX19O3ZhciBJQjsoZnVuY3Rpb24oZSl7ZVtlLlRFWFQ9MF09IlRFWFQiLGVbZS5ET009MV09IkRPTSJ9KShJQnx8KElCPXt9KSk7dmFyIEJmOyhmdW5jdGlvbihlKXtlLkxPRz0ibG9nIixlLkxJTkVBUj0ibGluZWFyIn0pKEJmfHwoQmY9e30pKTt2YXIgWUt0PTIwLERTPWNsYXNze2NvbnN0cnVjdG9yKHQscixuLGksbyxhLHMsbCxjLHUsaCl7dGhpcy5kaXJ0eURhdGFzZXRzPW5ldyBTZXQsdGhpcy5zZXJpZXNOYW1lcz1bXSx0aGlzLm5hbWUyZGF0YXNldHM9e30sdGhpcy5jb2xvclNjYWxlPWksdGhpcy50b29sdGlwPW8sdGhpcy5kYXRhc2V0cz1bXSx0aGlzLl9pZ25vcmVZT3V0bGllcnM9ITEsdGhpcy5sYXN0UG9pbnRzRGF0YXNldD1uZXcgTW4uRGF0YXNldCx0aGlzLm5hbkRhdGFzZXQ9bmV3IE1uLkRhdGFzZXQsdGhpcy55VmFsdWVBY2Nlc3Nvcj1yLHRoaXMuc3ltYm9sRnVuY3Rpb249dSx0aGlzLl9kZWZhdWx0WFJhbmdlPWwsdGhpcy5fZGVmYXVsdFlSYW5nZT1jLHRoaXMudG9vbHRpcENvbHVtbnM9YSx0aGlzLmJ1aWxkQ2hhcnQodCxyLG4scyxoKX1idWlsZENoYXJ0KHQscixuLGksbyl7dGhpcy5kZXN0cm95KCk7bGV0IGE9dCgpO3RoaXMueEFjY2Vzc29yPWEuYWNjZXNzb3IsdGhpcy54U2NhbGU9YS5zY2FsZSx0aGlzLnhBeGlzPWEuYXhpcyx0aGlzLnhBeGlzLm1hcmdpbigxKS50aWNrTGFiZWxQYWRkaW5nKDMpLG8mJnRoaXMueEF4aXMuZm9ybWF0dGVyKG8pLHRoaXMueVNjYWxlPURTLmdldFlTY2FsZUZyb21UeXBlKG4pLHRoaXMueVNjYWxlLnNldFZhbHVlUHJvdmlkZXJGb3JEb21haW4oKCk9PnRoaXMuZ2V0VmFsdWVzRm9yWUF4aXNEb21haW5Db21wdXRlKCkpLHRoaXMueUF4aXM9bmV3IE1uLkF4ZXMuTnVtZXJpYyh0aGlzLnlTY2FsZSwibGVmdCIpO2xldCBzPVd1KG1CKTt0aGlzLnlBeGlzLm1hcmdpbigwKS50aWNrTGFiZWxQYWRkaW5nKDUpLmZvcm1hdHRlcihzKSx0aGlzLnlBeGlzLnVzZXNUZXh0V2lkdGhBcHByb3hpbWF0aW9uKCEwKSx0aGlzLmZpbGxBcmVhPWk7bGV0IGw9bmV3IEZmKHRoaXMueFNjYWxlLHRoaXMueVNjYWxlLCgpPT50aGlzLnJlc2V0RG9tYWluKCkpO3RoaXMudG9vbHRpcEludGVyYWN0aW9uPXRoaXMuY3JlYXRlVG9vbHRpcEludGVyYWN0aW9uKGwpLHRoaXMudG9vbHRpcFBvaW50c0NvbXBvbmVudD1uZXcgTW4uQ29tcG9uZW50O2xldCBjPXRoaXMuYnVpbGRQbG90KHRoaXMueFNjYWxlLHRoaXMueVNjYWxlLGkpO3RoaXMuZ3JpZGxpbmVzPW5ldyBNbi5Db21wb25lbnRzLkdyaWRsaW5lcyh0aGlzLnhTY2FsZSx0aGlzLnlTY2FsZSk7bGV0IHU9bnVsbDtuIT09QmYuTE9HJiYodT1uZXcgTW4uQ29tcG9uZW50cy5HdWlkZUxpbmVMYXllcigiaG9yaXpvbnRhbCIpLHUuc2NhbGUodGhpcy55U2NhbGUpLnZhbHVlKDApKTtsZXQgaD1uZXcgTW4uQ29tcG9uZW50cy5HdWlkZUxpbmVMYXllcigidmVydGljYWwiKTtoLnNjYWxlKHRoaXMueFNjYWxlKS52YWx1ZSgwKSx0aGlzLmNlbnRlcj1uZXcgTW4uQ29tcG9uZW50cy5Hcm91cChbdGhpcy5ncmlkbGluZXMsdSxoLGMsdGhpcy50b29sdGlwUG9pbnRzQ29tcG9uZW50LGxdKSx0aGlzLmNlbnRlci5hZGRDbGFzcygibWFpbiIpLHRoaXMub3V0ZXI9bmV3IE1uLkNvbXBvbmVudHMuVGFibGUoW1t0aGlzLnlBeGlzLHRoaXMuY2VudGVyXSxbbnVsbCx0aGlzLnhBeGlzXV0pfWJ1aWxkUGxvdCh0LHIsbil7biYmKHRoaXMubWFyZ2luQXJlYVBsb3Q9bmV3IE1uLlBsb3RzLkFyZWEsdGhpcy5tYXJnaW5BcmVhUGxvdC54KHRoaXMueEFjY2Vzc29yLHQpLHRoaXMubWFyZ2luQXJlYVBsb3QueShuLmhpZ2hlckFjY2Vzc29yLHIpLHRoaXMubWFyZ2luQXJlYVBsb3QueTAobi5sb3dlckFjY2Vzc29yKSx0aGlzLm1hcmdpbkFyZWFQbG90LmF0dHIoImZpbGwiLChjLHUsaCk9PnRoaXMuY29sb3JTY2FsZS5zY2FsZShoLm1ldGFkYXRhKCkubmFtZSkpLHRoaXMubWFyZ2luQXJlYVBsb3QuYXR0cigiZmlsbC1vcGFjaXR5IiwuMyksdGhpcy5tYXJnaW5BcmVhUGxvdC5hdHRyKCJzdHJva2Utd2lkdGgiLDApKSx0aGlzLnNtb290aGVkQWNjZXNzb3I9Yz0+Yy5zbW9vdGhlZDtsZXQgaT1uZXcgTW4uUGxvdHMuTGluZTtpLngodGhpcy54QWNjZXNzb3IsdCksaS55KHRoaXMueVZhbHVlQWNjZXNzb3IsciksaS5hdHRyKCJzdHJva2UiLChjLHUsaCk9PnRoaXMuY29sb3JTY2FsZS5zY2FsZShoLm1ldGFkYXRhKCkubmFtZSkpLHRoaXMubGluZVBsb3Q9aSx0aGlzLnNldHVwVG9vbHRpcHMoaSk7bGV0IG89bmV3IE1uLlBsb3RzLkxpbmU7aWYoby54KHRoaXMueEFjY2Vzc29yLHQpLG8ueSh0aGlzLnNtb290aGVkQWNjZXNzb3Isciksby5hdHRyKCJzdHJva2UiLChjLHUsaCk9PnRoaXMuY29sb3JTY2FsZS5zY2FsZShoLm1ldGFkYXRhKCkubmFtZSkpLHRoaXMuc21vb3RoTGluZVBsb3Q9byx0aGlzLnN5bWJvbEZ1bmN0aW9uKXtsZXQgYz1uZXcgTW4uUGxvdHMuU2NhdHRlcjtjLngodGhpcy54QWNjZXNzb3IsdCksYy55KHRoaXMueVZhbHVlQWNjZXNzb3IsciksYy5hdHRyKCJmaWxsIiwodSxoLGYpPT50aGlzLmNvbG9yU2NhbGUuc2NhbGUoZi5tZXRhZGF0YSgpLm5hbWUpKSxjLmF0dHIoIm9wYWNpdHkiLDEpLGMuc2l6ZShfQioyKSxjLnN5bWJvbCgodSxoLGYpPT50aGlzLnN5bWJvbEZ1bmN0aW9uKGYubWV0YWRhdGEoKS5uYW1lKSksdGhpcy5tYXJrZXJzU2NhdHRlclBsb3Q9Y31sZXQgYT1uZXcgTW4uUGxvdHMuU2NhdHRlcjthLngodGhpcy54QWNjZXNzb3IsdCksYS55KHRoaXMueVZhbHVlQWNjZXNzb3IsciksYS5hdHRyKCJmaWxsIixjPT50aGlzLmNvbG9yU2NhbGUuc2NhbGUoYy5uYW1lKSksYS5hdHRyKCJvcGFjaXR5IiwxKSxhLnNpemUoX0IqMiksYS5kYXRhc2V0cyhbdGhpcy5sYXN0UG9pbnRzRGF0YXNldF0pLHRoaXMuc2NhdHRlclBsb3Q9YTtsZXQgcz1uZXcgTW4uUGxvdHMuU2NhdHRlcjtzLngodGhpcy54QWNjZXNzb3IsdCkscy55KGM9PmMuZGlzcGxheVkscikscy5hdHRyKCJmaWxsIixjPT50aGlzLmNvbG9yU2NhbGUuc2NhbGUoYy5uYW1lKSkscy5hdHRyKCJvcGFjaXR5IiwxKSxzLnNpemUoT0t0KjIpLHMuZGF0YXNldHMoW3RoaXMubmFuRGF0YXNldF0pLHMuc3ltYm9sKE1uLlN5bWJvbEZhY3Rvcmllcy50cmlhbmdsZSksdGhpcy5uYW5EaXNwbGF5PXM7bGV0IGw9W3MsYSxvLGldO3JldHVybiB0aGlzLm1hcmdpbkFyZWFQbG90JiZsLnB1c2godGhpcy5tYXJnaW5BcmVhUGxvdCksdGhpcy5tYXJrZXJzU2NhdHRlclBsb3QmJmwucHVzaCh0aGlzLm1hcmtlcnNTY2F0dGVyUGxvdCksbmV3IE1uLkNvbXBvbmVudHMuR3JvdXAobCl9aWdub3JlWU91dGxpZXJzKHQpe3QhPT10aGlzLl9pZ25vcmVZT3V0bGllcnMmJih0aGlzLl9pZ25vcmVZT3V0bGllcnM9dCx0aGlzLnVwZGF0ZVNwZWNpYWxEYXRhc2V0cygpLHRoaXMueVNjYWxlLmlnbm9yZU91dGxpZXIodCksdGhpcy5yZXNldFlEb21haW4oKSl9Z2V0VmFsdWVzRm9yWUF4aXNEb21haW5Db21wdXRlKCl7bGV0IHQ9dGhpcy5nZXRBY2Nlc3NvcnNGb3JDb21wdXRpbmdZUmFuZ2UoKSxyPW49PnQubWFwKGk9Pm4uZGF0YSgpLm1hcChvPT5pKG8sLTEsbikpKTtyZXR1cm4gRnMuZmxhdHRlbkRlZXAodGhpcy5kYXRhc2V0cy5tYXAocikpLmZpbHRlcihpc0Zpbml0ZSl9dXBkYXRlU3BlY2lhbERhdGFzZXRzKCl7bGV0IHQ9dGhpcy5nZXRZQXhpc0FjY2Vzc29yKCkscj10aGlzLmRhdGFzZXRzLm1hcChvPT57bGV0IGE9bnVsbCxzPW8uZGF0YSgpLmZpbHRlcihsPT4haXNOYU4odChsLC0xLG8pKSk7aWYocy5sZW5ndGg+MCl7bGV0IGw9cy5sZW5ndGgtMTthPXNbbF0sYS5uYW1lPW8ubWV0YWRhdGEoKS5uYW1lLGEucmVsYXRpdmU9bjAoYSwtMSxvKX1yZXR1cm4gYX0pLmZpbHRlcihvPT5vIT1udWxsKTt0aGlzLmxhc3RQb2ludHNEYXRhc2V0LmRhdGEociksdGhpcy5tYXJrZXJzU2NhdHRlclBsb3QmJnRoaXMubWFya2Vyc1NjYXR0ZXJQbG90LmRhdGFzZXRzKHRoaXMuZGF0YXNldHMubWFwKHRoaXMuY3JlYXRlU2FtcGxlZERhdGFzZXRGb3JNYXJrZXJzKSk7bGV0IG49bz0+e2xldCBhPW51bGwscz1vLmRhdGEoKSxsPTA7Zm9yKDtsPHMubGVuZ3RoJiZhPT1udWxsOylpc05hTih0KHNbbF0sLTEsbykpfHwoYT10KHNbbF0sLTEsbykpLGwrKzthPT1udWxsJiYoYT0wKTtsZXQgYz1bXTtmb3IobD0wO2w8cy5sZW5ndGg7bCsrKWlzTmFOKHQoc1tsXSwtMSxvKSk/KHNbbF0ubmFtZT1vLm1ldGFkYXRhKCkubmFtZSxzW2xdLmRpc3BsYXlZPWEsc1tsXS5yZWxhdGl2ZT1uMChzW2xdLC0xLG8pLGMucHVzaChzW2xdKSk6YT10KHNbbF0sLTEsbyk7cmV0dXJuIGN9LGk9RnMuZmxhdHRlbih0aGlzLmRhdGFzZXRzLm1hcChuKSk7dGhpcy5uYW5EYXRhc2V0LmRhdGEoaSl9cmVzZXREb21haW4oKXt0aGlzLnJlc2V0WERvbWFpbigpLHRoaXMucmVzZXRZRG9tYWluKCl9cmVzZXRYRG9tYWluKCl7bGV0IHQ7aWYodGhpcy5fZGVmYXVsdFhSYW5nZSE9bnVsbCl0PXRoaXMuX2RlZmF1bHRYUmFuZ2U7ZWxzZXtsZXQgcj10aGlzLnhTY2FsZTtyLl9kb21haW5NaW49bnVsbCxyLl9kb21haW5NYXg9bnVsbCx0PXIuX2dldEV4dGVudCgpfXRoaXMueFNjYWxlLmRvbWFpbih0KX1yZXNldFlEb21haW4oKXt0aGlzLl9kZWZhdWx0WVJhbmdlIT1udWxsP3RoaXMueVNjYWxlLmRvbWFpbih0aGlzLl9kZWZhdWx0WVJhbmdlKToodGhpcy55U2NhbGUuYXV0b0RvbWFpbigpLHRoaXMueVNjYWxlLmRvbWFpbih0aGlzLnlTY2FsZS5kb21haW4oKSkpfWdldEFjY2Vzc29yc0ZvckNvbXB1dGluZ1lSYW5nZSgpe2xldCB0PVt0aGlzLmdldFlBeGlzQWNjZXNzb3IoKV07cmV0dXJuIHRoaXMuZmlsbEFyZWEmJnQucHVzaCh0aGlzLmZpbGxBcmVhLmxvd2VyQWNjZXNzb3IsdGhpcy5maWxsQXJlYS5oaWdoZXJBY2Nlc3NvciksdH1nZXRZQXhpc0FjY2Vzc29yKCl7cmV0dXJuIHRoaXMuc21vb3RoaW5nRW5hYmxlZD90aGlzLnNtb290aGVkQWNjZXNzb3I6dGhpcy55VmFsdWVBY2Nlc3Nvcn1jcmVhdGVUb29sdGlwSW50ZXJhY3Rpb24odCl7bGV0IHI9bmV3IFNCLG49KCk9PntyLmVuYWJsZWQoITEpLHRoaXMuaGlkZVRvb2x0aXBzKCl9LGk9KCk9PnIuZW5hYmxlZCghMCk7cmV0dXJuIHQub25QYW5TdGFydChuKSx0Lm9uRHJhZ1pvb21TdGFydChuKSx0Lm9uUGFuRW5kKGkpLHQub25EcmFnWm9vbUVuZChpKSx0Lm9uU2Nyb2xsWm9vbSgoKT0+dGhpcy51cGRhdGVUb29sdGlwQ29udGVudCh0aGlzLl9sYXN0TW91c2VQb3NpdGlvbikpLHIub25Qb2ludGVyTW92ZShvPT57dGhpcy5fbGFzdE1vdXNlUG9zaXRpb249byx0aGlzLnVwZGF0ZVRvb2x0aXBDb250ZW50KG8pfSksci5vblBvaW50ZXJFeGl0KCgpPT50aGlzLmhpZGVUb29sdGlwcygpKSxyfXVwZGF0ZVRvb2x0aXBDb250ZW50KHQpeyF0aGlzLmxpbmVQbG90fHwod2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3Rvb2x0aXBVcGRhdGVBbmltYXRpb25GcmFtZSksdGhpcy5fdG9vbHRpcFVwZGF0ZUFuaW1hdGlvbkZyYW1lPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgcj17eDp0LngseTp0Lnl9LG49dGhpcy5ncmlkbGluZXMuY29udGVudCgpLm5vZGUoKS5nZXRCQm94KCksaT10aGlzLmxpbmVQbG90LmRhdGFzZXRzKCkubWFwKGw9PnRoaXMuZmluZENsb3Nlc3RQb2ludChyLGwpKS5maWx0ZXIobD0+Qm9vbGVhbihsKSksbz1Nbi5VdGlscy5ET00uaW50ZXJzZWN0c0JCb3gsYT1pLmZpbHRlcihsPT5vKGwueCxsLnksbil8fGlzTmFOKHRoaXMueVZhbHVlQWNjZXNzb3IobC5kYXR1bSwwLGwuZGF0YXNldCkpKSxzPWEuZmlsdGVyKGw9PiFpc05hTih0aGlzLnlWYWx1ZUFjY2Vzc29yKGwuZGF0dW0sMCxsLmRhdGFzZXQpKSk7aWYoaS5sZW5ndGghPT0wKXt0aGlzLnNjYXR0ZXJQbG90LmF0dHIoImRpc3BsYXkiLCJub25lIik7bGV0IGw9dGhpcy50b29sdGlwUG9pbnRzQ29tcG9uZW50LmNvbnRlbnQoKS5zZWxlY3RBbGwoIi5wb2ludCIpLmRhdGEocyxjPT5jLmRhdGFzZXQubWV0YWRhdGEoKS5uYW1lKTtsLmVudGVyKCkuYXBwZW5kKCJjaXJjbGUiKS5jbGFzc2VkKCJwb2ludCIsITApLGwuYXR0cigiciIsX0IpLmF0dHIoImN4IixjPT5jLngpLmF0dHIoImN5IixjPT5jLnkpLnN0eWxlKCJzdHJva2UiLCJub25lIikuYXR0cigiZmlsbCIsYz0+dGhpcy5jb2xvclNjYWxlLnNjYWxlKGMuZGF0YXNldC5tZXRhZGF0YSgpLm5hbWUpKSxsLmV4aXQoKS5yZW1vdmUoKSx0aGlzLmRyYXdUb29sdGlwcyhhLHIsdGhpcy50b29sdGlwQ29sdW1ucyl9ZWxzZSB0aGlzLmhpZGVUb29sdGlwcygpfSkpfWhpZGVUb29sdGlwcygpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl90b29sdGlwVXBkYXRlQW5pbWF0aW9uRnJhbWUpLHRoaXMudG9vbHRpcC5oaWRlKCksdGhpcy5zY2F0dGVyUGxvdC5hdHRyKCJkaXNwbGF5IiwiYmxvY2siKSx0aGlzLnRvb2x0aXBQb2ludHNDb21wb25lbnQuY29udGVudCgpLnNlbGVjdEFsbCgiLnBvaW50IikucmVtb3ZlKCl9c2V0dXBUb29sdGlwcyh0KXt0Lm9uRGV0YWNoKCgpPT57dGhpcy50b29sdGlwSW50ZXJhY3Rpb24uZGV0YWNoRnJvbSh0KSx0aGlzLnRvb2x0aXBJbnRlcmFjdGlvbi5lbmFibGVkKCExKX0pLHQub25BbmNob3IoKCk9Pnt0aGlzLnRvb2x0aXBJbnRlcmFjdGlvbi5hdHRhY2hUbyh0KSx0aGlzLnRvb2x0aXBJbnRlcmFjdGlvbi5lbmFibGVkKCEwKX0pfWRyYXdUb29sdGlwcyh0LHIsbil7aWYoIXQubGVuZ3RoKXt0aGlzLnRvb2x0aXAuaGlkZSgpO3JldHVybn1sZXR7Y29sb3JTY2FsZTppfT10aGlzO249W3t0aXRsZToiIixzdGF0aWM6ITEsZXZhbFR5cGU6SUIuRE9NLGV2YWx1YXRlKGQpe3JldHVybiBIdCh0aGlzKS5zZWxlY3QoInNwYW4iKS5zdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsKCk9Pmkuc2NhbGUoZC5kYXRhc2V0Lm1ldGFkYXRhKCkubmFtZSkpLCIifSxlbnRlcihkKXtIdCh0aGlzKS5hcHBlbmQoInNwYW4iKS5jbGFzc2VkKCJzd2F0Y2giLCEwKS5zdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsKCk9Pmkuc2NhbGUoZC5kYXRhc2V0Lm1ldGFkYXRhKCkubmFtZSkpfX0sLi4ubl07bGV0IGE9V3UocjApLHM9ZD0+TWF0aC5wb3coZC54LXIueCwyKStNYXRoLnBvdyhkLnktci55LDIpLGw9RnMubWluKHQubWFwKHMpKSxjPXRoaXMuc21vb3RoaW5nRW5hYmxlZD90aGlzLnNtb290aGVkQWNjZXNzb3I6dGhpcy55VmFsdWVBY2Nlc3Nvcjt0aGlzLnRvb2x0aXBTb3J0aW5nTWV0aG9kPT09ImFzY2VuZGluZyI/dD1Gcy5zb3J0QnkodCxkPT5jKGQuZGF0dW0sLTEsZC5kYXRhc2V0KSk6dGhpcy50b29sdGlwU29ydGluZ01ldGhvZD09PSJkZXNjZW5kaW5nIj90PUZzLnNvcnRCeSh0LGQ9PmMoZC5kYXR1bSwtMSxkLmRhdGFzZXQpKS5yZXZlcnNlKCk6dGhpcy50b29sdGlwU29ydGluZ01ldGhvZD09PSJuZWFyZXN0Ij90PUZzLnNvcnRCeSh0LHMpOnQ9dC5zbGljZSgwKS5yZXZlcnNlKCk7bGV0IHU9dGhpcyxoPUh0KHRoaXMudG9vbHRpcC5jb250ZW50KCkpLnNlbGVjdCgidGFibGUiKSxmPWguc2VsZWN0KCJ0aGVhZCIpLnNlbGVjdEFsbCgidGgiKS5kYXRhKG4sKGQsZyxfKT0+ZC50aXRsZSk7Zi5lbnRlcigpLmFwcGVuZCgidGgiKS50ZXh0KGQ9PmQudGl0bGUpLm5vZGVzKCksZi5leGl0KCkucmVtb3ZlKCk7bGV0IHA9aC5zZWxlY3QoInRib2R5Iikuc2VsZWN0QWxsKCJ0ciIpLmRhdGEodCwoZCxnLF8pPT5kLmRhdGFzZXQubWV0YWRhdGEoKS5uYW1lKTtwLmNsYXNzZWQoImRpc3RhbnQiLGQ9PntsZXQgZz1kLmRhdGFzZXQuZGF0YSgpWzBdLF89RnMubGFzdChkLmRhdGFzZXQuZGF0YSgpKSx5PXRoaXMueFNjYWxlLnNjYWxlKHRoaXMueEFjY2Vzc29yKGcsMCxkLmRhdGFzZXQpKSx4PXRoaXMueFNjYWxlLnNjYWxlKHRoaXMueEFjY2Vzc29yKF8sMCxkLmRhdGFzZXQpKSxiPXRoaXMuc21vb3RoaW5nRW5hYmxlZD9kLmRhdHVtLnNtb290aGVkOnRoaXMueVZhbHVlQWNjZXNzb3IoZC5kYXR1bSwwLGQuZGF0YXNldCk7cmV0dXJuIHIueDx5fHxyLng+eHx8aXNOYU4oYil9KS5jbGFzc2VkKCJjbG9zZXN0IixkPT5zKGQpPT09bCkuZWFjaChmdW5jdGlvbihkKXt1LmRyYXdUb29sdGlwUm93KHRoaXMsbixkKX0pLm9yZGVyKCkscC5leGl0KCkucmVtb3ZlKCkscC5lbnRlcigpLmFwcGVuZCgidHIiKS5lYWNoKGZ1bmN0aW9uKGQpe3UuZHJhd1Rvb2x0aXBSb3codGhpcyxuLGQpfSkubm9kZXMoKSx0aGlzLnRvb2x0aXAudXBkYXRlQW5kUG9zaXRpb24odGhpcy50YXJnZXRTVkcubm9kZSgpKX1kcmF3VG9vbHRpcFJvdyh0LHIsbil7bGV0IGk9dGhpcyxvPUh0KHQpLnNlbGVjdEFsbCgidGQiKS5kYXRhKHIpO28uZWFjaChmdW5jdGlvbihhKXthLnN0YXRpY3x8aS5kcmF3VG9vbHRpcENvbHVtbi5jYWxsKGksdGhpcyxhLG4pfSksby5leGl0KCkucmVtb3ZlKCksby5lbnRlcigpLmFwcGVuZCgidGQiKS5lYWNoKGZ1bmN0aW9uKGEpeyJlbnRlciJpbiBhJiZhLmVudGVyLmNhbGwodGhpcyxuKSxpLmRyYXdUb29sdGlwQ29sdW1uLmNhbGwoaSx0aGlzLGEsbil9KX1kcmF3VG9vbHRpcENvbHVtbih0LHIsbil7bGV0e3Ntb290aGluZ0VuYWJsZWQ6aX09dGhpczsiZXZhbFR5cGUiaW4gciYmci5ldmFsVHlwZT09SUIuRE9NP3IuZXZhbHVhdGUuY2FsbCh0LG4se3Ntb290aGluZ0VuYWJsZWQ6aX0pOkh0KHQpLnRleHQoci5ldmFsdWF0ZS5jYWxsKHQsbix7c21vb3RoaW5nRW5hYmxlZDppfSkpfWZpbmRDbG9zZXN0UG9pbnQodCxyKXtsZXQgbj1yLmRhdGEoKS5tYXAoKHMsbCk9PnRoaXMueFNjYWxlLnNjYWxlKHRoaXMueEFjY2Vzc29yKHMsbCxyKSkpLGk9RnMuc29ydGVkSW5kZXgobix0LngpO2lmKG4ubGVuZ3RoPT0wKXJldHVybiBudWxsO2lmKGk9PT1uLmxlbmd0aClpPWktMTtlbHNlIGlmKGkhPT0wKXtsZXQgcz1NYXRoLmFicyhuW2ktMV0tdC54KSxsPU1hdGguYWJzKG5baV0tdC54KTtpPXM8bD9pLTE6aX1sZXQgbz1yLmRhdGEoKVtpXSxhPXRoaXMuc21vb3RoaW5nRW5hYmxlZD90aGlzLnNtb290aGVkQWNjZXNzb3IobyxpLHIpOnRoaXMueVZhbHVlQWNjZXNzb3IobyxpLHIpO3JldHVybnt4Om5baV0seTp0aGlzLnlTY2FsZS5zY2FsZShhKSxkYXR1bTpvLGRhdGFzZXQ6cn19cmVzbW9vdGhEYXRhc2V0KHQpe2xldCByPXQuZGF0YSgpLG49dGhpcy5zbW9vdGhpbmdXZWlnaHQsaT1yLmxlbmd0aD4wPzA6TmFOLG89MCxhPXIubWFwKChsLGMpPT50aGlzLnlWYWx1ZUFjY2Vzc29yKGwsYyx0KSkscz1hLmV2ZXJ5KGw9Pmw9PWFbMF0pO3IuZm9yRWFjaCgobCxjKT0+e2xldCB1PWFbY107aWYoc3x8IU51bWJlci5pc0Zpbml0ZSh1KSlsLnNtb290aGVkPXU7ZWxzZXtpPWkqbisoMS1uKSp1LG8rKztsZXQgaD0xO24hPT0xJiYoaD0xLU1hdGgucG93KG4sbykpLGwuc21vb3RoZWQ9aS9ofX0pfWdldERhdGFzZXQodCl7cmV0dXJuIHRoaXMubmFtZTJkYXRhc2V0c1t0XT09PXZvaWQgMCYmKHRoaXMubmFtZTJkYXRhc2V0c1t0XT1uZXcgTW4uRGF0YXNldChbXSx7bmFtZTp0LG1ldGE6bnVsbH0pKSx0aGlzLm5hbWUyZGF0YXNldHNbdF19c3RhdGljIGdldFlTY2FsZUZyb21UeXBlKHQpe2lmKHQ9PT1CZi5MT0cpcmV0dXJuIG5ldyBBQjtpZih0PT09QmYuTElORUFSKXJldHVybiBuZXcgTUI7dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgeVNjYWxlIHR5cGUgIit0KX1zZXRWaXNpYmxlU2VyaWVzKHQpe3RoaXMuZGlzYWJsZUNoYW5nZXMoKSx0PXQuc29ydCgpLHQucmV2ZXJzZSgpLHRoaXMuc2VyaWVzTmFtZXM9dH1kaXNhYmxlQ2hhbmdlcygpe3RoaXMuZGlydHlEYXRhc2V0cy5zaXplfHwodGhpcy5saW5lUGxvdC5kYXRhc2V0cyhbXSksdGhpcy5zbW9vdGhMaW5lUGxvdCYmdGhpcy5zbW9vdGhMaW5lUGxvdC5kYXRhc2V0cyhbXSksdGhpcy5tYXJnaW5BcmVhUGxvdCYmdGhpcy5tYXJnaW5BcmVhUGxvdC5kYXRhc2V0cyhbXSkpfWNvbW1pdENoYW5nZXMoKXt0aGlzLmRhdGFzZXRzPXRoaXMuc2VyaWVzTmFtZXMubWFwKHQ9PnRoaXMuZ2V0RGF0YXNldCh0KSksWy4uLnRoaXMuZGlydHlEYXRhc2V0c10uZm9yRWFjaCh0PT57dGhpcy5zbW9vdGhpbmdFbmFibGVkJiZ0aGlzLnJlc21vb3RoRGF0YXNldCh0aGlzLmdldERhdGFzZXQodCkpfSksdGhpcy51cGRhdGVTcGVjaWFsRGF0YXNldHMoKSx0aGlzLmxpbmVQbG90LmRhdGFzZXRzKHRoaXMuZGF0YXNldHMpLHRoaXMuc21vb3RoaW5nRW5hYmxlZCYmdGhpcy5zbW9vdGhMaW5lUGxvdC5kYXRhc2V0cyh0aGlzLmRhdGFzZXRzKSx0aGlzLm1hcmdpbkFyZWFQbG90JiZ0aGlzLm1hcmdpbkFyZWFQbG90LmRhdGFzZXRzKHRoaXMuZGF0YXNldHMpLHRoaXMubWVhc3VyZUJCb3hBbmRNYXliZUludmFsaWRhdGVMYXlvdXRJblJhZigpLHRoaXMuZGlydHlEYXRhc2V0cy5jbGVhcigpfWNyZWF0ZVNhbXBsZWREYXRhc2V0Rm9yTWFya2Vycyh0KXtsZXQgcj10LmRhdGEoKTtpZihyLmxlbmd0aDw9WUt0KXJldHVybiB0O2xldCBuPU1hdGguY2VpbChyLmxlbmd0aC9ZS3QpLGk9bmV3IEFycmF5KE1hdGguZmxvb3Ioci5sZW5ndGgvbikpO2ZvcihsZXQgbz0wLGE9MDtvPGkubGVuZ3RoO28rKyxhKz1uKWlbb109clthXTtyZXR1cm4gbmV3IE1uLkRhdGFzZXQoaSx0Lm1ldGFkYXRhKCkpfXNldFNlcmllc0RhdGEodCxyKXt0aGlzLmRpc2FibGVDaGFuZ2VzKCksdGhpcy5nZXREYXRhc2V0KHQpLmRhdGEociksdGhpcy5kaXJ0eURhdGFzZXRzLmFkZCh0KX1zZXRTZXJpZXNNZXRhZGF0YSh0LHIpe3RoaXMuZGlzYWJsZUNoYW5nZXMoKSx0aGlzLmdldERhdGFzZXQodCkubWV0YWRhdGEoeWgoaWEoe30sdGhpcy5nZXREYXRhc2V0KHQpLm1ldGFkYXRhKCkpLHttZXRhOnJ9KSksdGhpcy5kaXJ0eURhdGFzZXRzLmFkZCh0KX1zbW9vdGhpbmdVcGRhdGUodCl7dGhpcy5zbW9vdGhpbmdXZWlnaHQ9dCx0aGlzLmRhdGFzZXRzLmZvckVhY2gocj0+dGhpcy5yZXNtb290aERhdGFzZXQocikpLHRoaXMuc21vb3RoaW5nRW5hYmxlZHx8KHRoaXMubGluZVBsb3QuYWRkQ2xhc3MoImdob3N0IiksdGhpcy5zY2F0dGVyUGxvdC55KHRoaXMuc21vb3RoZWRBY2Nlc3Nvcix0aGlzLnlTY2FsZSksdGhpcy5zbW9vdGhpbmdFbmFibGVkPSEwLHRoaXMuc21vb3RoTGluZVBsb3QuZGF0YXNldHModGhpcy5kYXRhc2V0cykpLHRoaXMubWFya2Vyc1NjYXR0ZXJQbG90JiZ0aGlzLm1hcmtlcnNTY2F0dGVyUGxvdC55KHRoaXMuZ2V0WUF4aXNBY2Nlc3NvcigpLHRoaXMueVNjYWxlKSx0aGlzLnVwZGF0ZVNwZWNpYWxEYXRhc2V0cygpfXNtb290aGluZ0Rpc2FibGUoKXt0aGlzLnNtb290aGluZ0VuYWJsZWQmJih0aGlzLmxpbmVQbG90LnJlbW92ZUNsYXNzKCJnaG9zdCIpLHRoaXMuc2NhdHRlclBsb3QueSh0aGlzLnlWYWx1ZUFjY2Vzc29yLHRoaXMueVNjYWxlKSx0aGlzLnNtb290aExpbmVQbG90LmRhdGFzZXRzKFtdKSx0aGlzLnNtb290aGluZ0VuYWJsZWQ9ITEsdGhpcy51cGRhdGVTcGVjaWFsRGF0YXNldHMoKSksdGhpcy5tYXJrZXJzU2NhdHRlclBsb3QmJnRoaXMubWFya2Vyc1NjYXR0ZXJQbG90LnkodGhpcy5nZXRZQXhpc0FjY2Vzc29yKCksdGhpcy55U2NhbGUpfXNldENvbG9yU2NhbGUodCl7dGhpcy5jb2xvclNjYWxlPXR9c2V0VG9vbHRpcENvbHVtbnModCl7dGhpcy50b29sdGlwQ29sdW1ucz10fXNldFRvb2x0aXBTb3J0aW5nTWV0aG9kKHQpe3RoaXMudG9vbHRpcFNvcnRpbmdNZXRob2Q9dH1yZW5kZXJUbyh0KXt0aGlzLnRhcmdldFNWRz10LHRoaXMub3V0ZXIucmVuZGVyVG8odCksdGhpcy5fZGVmYXVsdFhSYW5nZSE9bnVsbCYmdGhpcy5yZXNldFhEb21haW4oKSx0aGlzLl9kZWZhdWx0WVJhbmdlIT1udWxsJiZ0aGlzLnJlc2V0WURvbWFpbigpLHRoaXMubWVhc3VyZUJCb3hBbmRNYXliZUludmFsaWRhdGVMYXlvdXRJblJhZigpfXJlZHJhdygpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yZWRyYXdSYWYpLHRoaXMuX3JlZHJhd1JhZj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5tZWFzdXJlQkJveEFuZE1heWJlSW52YWxpZGF0ZUxheW91dCgpLHRoaXMub3V0ZXIucmVkcmF3KCl9KX1tZWFzdXJlQkJveEFuZE1heWJlSW52YWxpZGF0ZUxheW91dEluUmFmKCl7d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX2ludmFsaWRhdGVMYXlvdXRSYWYpLHRoaXMuX2ludmFsaWRhdGVMYXlvdXRSYWY9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMubWVhc3VyZUJCb3hBbmRNYXliZUludmFsaWRhdGVMYXlvdXQoKX0pfW1lYXN1cmVCQm94QW5kTWF5YmVJbnZhbGlkYXRlTGF5b3V0KCl7aWYodGhpcy5fbGFzdERyYXdCQm94KXtsZXR7d2lkdGg6dH09dGhpcy5fbGFzdERyYXdCQm94LHt3aWR0aDpyfT10aGlzLnRhcmdldFNWRy5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dD09MCYmdDxyJiZ0aGlzLm91dGVyLmludmFsaWRhdGVDYWNoZSgpfXRoaXMuX2xhc3REcmF3QkJveD10aGlzLnRhcmdldFNWRy5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9ZGVzdHJveSgpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yZWRyYXdSYWYpLHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9pbnZhbGlkYXRlTGF5b3V0UmFmKSx0aGlzLm91dGVyJiZ0aGlzLm91dGVyLmRlc3Ryb3koKX1vbkFuY2hvcih0KXt0aGlzLm91dGVyJiZ0aGlzLm91dGVyLm9uQW5jaG9yKHQpfWlzRGF0YUZpdFRvRG9tYWluKCl7cmV0dXJuIHQodGhpcy54QXhpcy5nZXRTY2FsZSgpKSYmdCh0aGlzLnlBeGlzLmdldFNjYWxlKCkpO2Z1bmN0aW9uIHQocil7bGV0IG49ci5nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbigpLGk9ci5nZXRUcmFuc2Zvcm1hdGlvbkV4dGVudCgpO3JldHVybiBpWzBdPT09blswXSYmaVsxXT09PW5bMV19fX07dmFyIFhLdD1FZShPZSgpLDEpLG5zdD1FZShTbCgpLDEpO3lzKHttb2R1bGVOYW1lOiJwbG90dGFibGUtc3R5bGUiLHN0eWxlQ29udGVudDpgCiAgICAKLnBsb3R0YWJsZS1jb2xvcnMtMCB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzUyNzljNzsgLyogSU5ESUdPICovCn0KCi5wbG90dGFibGUtY29sb3JzLTEgewogIGJhY2tncm91bmQtY29sb3I6ICNmZDM3M2U7IC8qIENPUkFMX1JFRCAqLwp9CgoucGxvdHRhYmxlLWNvbG9ycy0yIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjNjMjYxOyAvKiBGRVJOICovCn0KCi5wbG90dGFibGUtY29sb3JzLTMgewogIGJhY2tncm91bmQtY29sb3I6ICNmYWQ0MTk7IC8qIEJSSUdIVF9TVU4gKi8KfQoKLnBsb3R0YWJsZS1jb2xvcnMtNCB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzJjMmI2ZjsgLyogSkFDQVJUQSAqLwp9CgoucGxvdHRhYmxlLWNvbG9ycy01IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3OTM5OyAvKiBCVVJOSU5HX09SQU5HRSAqLwp9CgoucGxvdHRhYmxlLWNvbG9ycy02IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGIyZTY1OyAvKiBDRVJJU0VfUkVEICovCn0KCi5wbG90dGFibGUtY29sb3JzLTcgewogIGJhY2tncm91bmQtY29sb3I6ICM5OWNlNTA7IC8qIENPTklGRVIgKi8KfQoKLnBsb3R0YWJsZS1jb2xvcnMtOCB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzk2MjU2NTsgLyogUk9ZQUxfSEVBVEggKi8KfQoKLnBsb3R0YWJsZS1jb2xvcnMtOSB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzA2Y2NjYzsgLyogUk9CSU5TX0VHR19CTFVFICovCn0KCi8qKgogKiBVc2VyLXN1cHBsaWVkIHJlbmRlclRvIGVsZW1lbnQuCiAqLwoucGxvdHRhYmxlIHsKICBkaXNwbGF5OiBibG9jazsgLyogbXVzdCBiZSBibG9jayBlbGVtZW50cyBmb3Igd2lkdGgvaGVpZ2h0IGNhbGN1bGF0aW9ucyB0byB3b3JrIGluIEZpcmVmb3guICovCiAgcG9pbnRlci1ldmVudHM6IHZpc2libGVGaWxsOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAvKioKICAgKiBQcmUgMy4wLCB1c2VycyBjb3VsZCBzZXQgdGhlIGRpbWVuc2lvbiBvZiB0aGUgcm9vdCBlbGVtZW50IGluIHR3byB3YXlzOiBlaXRoZXIgdXNpbmcgQ1NTCiAgICogKGlubGluZSBvciB0aHJvdWdoIGEgc3R5bGVzaGVldCksIG9yIHVzaW5nIHRoZSBTVkcgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMuIEJ5IGRlZmF1bHQsIHdlCiAgICogc2V0IHRoZSBTVkcgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMgdG8gMTAwJS4KICAgKgogICAqIFBvc3QgMy4wIHRoZSByb290IGVsZW1lbnQgaXMgYWx3YXlzIGEgbm9ybWFsIGRpdiBhbmQgdGhlIG9ubHkgd2F5IHRvIHNldCB0aGUgZGltZW5zaW9ucyBpcwogICAqIHRvIHVzZSBDU1MuIFRvIHJlcGxpY2F0ZSB0aGUgIjEwMCUtYnktZGVmYXVsdCIgYmVoYXZpb3IsIHdlIGFwcGx5IHdpZHRoL2hlaWdodCAxMDAlLgogICAqLwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKfQoKLyoqCiAqIFRoZSBfZWxlbWVudCB0aGF0IHJvb3RzIGVhY2ggQ29tcG9uZW50J3MgRE9NLgogKi8KLnBsb3R0YWJsZSAuY29tcG9uZW50IHsKICAvKiBBbGxvdyBjb21wb25lbnRzIHRvIGJlIHBvc2l0aW9uZWQgd2l0aCBleHBsaWNpdCBsZWZ0L3RvcC93aWR0aC9oZWlnaHQgc3R5bGVzICovCiAgcG9zaXRpb246IGFic29sdXRlOwp9CgoucGxvdHRhYmxlIC5iYWNrZ3JvdW5kLWNvbnRhaW5lciwKLnBsb3R0YWJsZSAuY29udGVudCwKLnBsb3R0YWJsZSAuZm9yZWdyb3VuZC1jb250YWluZXIgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMTAwJTsKICBoZWlnaHQ6IDEwMCU7Cn0KCi8qKgogKiBEb24ndCBhbGxvdyBzdmcgZWxlbWVudHMgYWJvdmUgdGhlIGNvbnRlbnQgdG8gc3RlYWwgZXZlbnRzCiAqLwoucGxvdHRhYmxlIC5mb3JlZ3JvdW5kLWNvbnRhaW5lciB7CiAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCi5wbG90dGFibGUgLmNvbXBvbmVudC1vdmVyZmxvdy1oaWRkZW4gewogIG92ZXJmbG93OiBoaWRkZW47Cn0KCi5wbG90dGFibGUgLmNvbXBvbmVudC1vdmVyZmxvdy12aXNpYmxlIHsKICBvdmVyZmxvdzogdmlzaWJsZTsKfQoKLnBsb3R0YWJsZSAucGxvdC1jYW52YXMtY29udGFpbmVyIHsKICB3aWR0aDogMTAwJTsKICBoZWlnaHQ6IDEwMCU7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLnBsb3R0YWJsZSAucGxvdC1jYW52YXMgewogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKICAvKioKICAgKiBQbGF5IHdlbGwgd2l0aCBkZWZlcnJlZCByZW5kZXJpbmcuCiAgICovCiAgdHJhbnNmb3JtLW9yaWdpbjogMHB4IDBweCAwcHg7Cn0KCi5wbG90dGFibGUgdGV4dCB7CiAgdGV4dC1yZW5kZXJpbmc6IGdlb21ldHJpY1ByZWNpc2lvbjsKfQoKLnBsb3R0YWJsZSAubGFiZWwgdGV4dCB7CiAgZmlsbDogIzMyMzEzRjsKfQoKLnBsb3R0YWJsZSAuYmFyLWxhYmVsLXRleHQtYXJlYSB0ZXh0LAoucGxvdHRhYmxlIC5zY2F0dGVyLWxhYmVsLXRleHQtYXJlYSB0ZXh0IHsKICBmb250LXNpemU6IDEycHg7Cn0KCi5wbG90dGFibGUgLmxhYmVsLWFyZWEgdGV4dCB7CiAgZmlsbDogIzMyMzEzRjsKICBmb250LXNpemU6IDE0cHg7Cn0KCi5wbG90dGFibGUgLmxpZ2h0LWxhYmVsIHRleHQgewogIGZpbGw6IHdoaXRlOwp9CgoucGxvdHRhYmxlIC5kYXJrLWxhYmVsIHRleHQgewogIGZpbGw6ICMzMjMxM0Y7Cn0KCi5wbG90dGFibGUgLm9mZi1iYXItbGFiZWwgdGV4dCB7CiAgZmlsbDogIzMyMzEzRjsKfQoKLnBsb3R0YWJsZSAuc3RhY2tlZC1iYXItbGFiZWwgdGV4dCB7CiAgZmlsbDogIzMyMzEzRjsKICBmb250LXN0eWxlOiBub3JtYWw7Cn0KCi5wbG90dGFibGUgLnN0YWNrZWQtYmFyLXBsb3QgLm9mZi1iYXItbGFiZWwgewogIC8qIEhBQ0tIQUNLICMyNzk1OiBjb3JyZWN0IG9mZi1iYXIgbGFiZWwgbG9naWMgdG8gYmUgaW1wbGVtZW50ZWQgb24gU3RhY2tlZEJhciAqLwogIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50Owp9CgoucGxvdHRhYmxlIC5heGlzLWxhYmVsIHRleHQgewogIGZvbnQtc2l6ZTogMTBweDsKICBmb250LXdlaWdodDogYm9sZDsKICBsZXR0ZXItc3BhY2luZzogMXB4OwogIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQoKLnBsb3R0YWJsZSAudGl0bGUtbGFiZWwgdGV4dCB7CiAgZm9udC1zaXplOiAyMHB4OwogIGZvbnQtd2VpZ2h0OiBib2xkOwp9CgoucGxvdHRhYmxlIC5heGlzIGxpbmUuYmFzZWxpbmUgewogIHN0cm9rZTogI0NDQzsKICBzdHJva2Utd2lkdGg6IDFweDsKfQoKLnBsb3R0YWJsZSAuYXhpcyBsaW5lLnRpY2stbWFyayB7CiAgc3Ryb2tlOiAjQ0NDOwogIHN0cm9rZS13aWR0aDogMXB4Owp9CgoucGxvdHRhYmxlIC5heGlzIHRleHQgewogIGZpbGw6ICMzMjMxM0Y7CiAgZm9udC1zaXplOiAxMnB4OwogIGZvbnQtd2VpZ2h0OiAyMDA7CiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsKfQoKLnBsb3R0YWJsZSAuYXhpcyAuYW5ub3RhdGlvbi1jaXJjbGUgewogIGZpbGw6IHdoaXRlOwogIHN0cm9rZS13aWR0aDogMXB4OwogIHN0cm9rZTogI0NDQzsKfQoKLnBsb3R0YWJsZSAuYXhpcyAuYW5ub3RhdGlvbi1saW5lIHsKICBzdHJva2U6ICNDQ0M7CiAgc3Ryb2tlLXdpZHRoOiAxcHg7Cn0KCi5wbG90dGFibGUgLmF4aXMgLmFubm90YXRpb24tcmVjdCB7CiAgc3Ryb2tlOiAjQ0NDOwogIHN0cm9rZS13aWR0aDogMXB4OwogIGZpbGw6IHdoaXRlOwp9CgoucGxvdHRhYmxlIC5iYXItcGxvdCAuYmFzZWxpbmUgewogIHN0cm9rZTogIzk5OTsKfQoKLnBsb3R0YWJsZSAuZ3JpZGxpbmVzIGxpbmUgewogIHN0cm9rZTogIzNDM0MzQzsgLyogaGFja2hhY2s6IGdyaWRsaW5lcyBzaG91bGQgYmUgc29saWQ7IHNlZSAjODIwICovCiAgb3BhY2l0eTogMC4yNTsKICBzdHJva2Utd2lkdGg6IDFweDsKfQoKLnBsb3R0YWJsZSAuc2VsZWN0aW9uLWJveC1sYXllciAuc2VsZWN0aW9uLWFyZWEgewogIGZpbGw6IGJsYWNrOwogIGZpbGwtb3BhY2l0eTogMC4wMzsKICBzdHJva2U6ICNDQ0M7Cn0KLyogRHJhZ0JveExheWVyICovCi5wbG90dGFibGUgLmRyYWctYm94LWxheWVyLngtcmVzaXphYmxlIC5kcmFnLWVkZ2UtbHIgewogIGN1cnNvcjogZXctcmVzaXplOwp9Ci5wbG90dGFibGUgLmRyYWctYm94LWxheWVyLnktcmVzaXphYmxlIC5kcmFnLWVkZ2UtdGIgewogIGN1cnNvcjogbnMtcmVzaXplOwp9CgoucGxvdHRhYmxlIC5kcmFnLWJveC1sYXllci54LXJlc2l6YWJsZS55LXJlc2l6YWJsZSAuZHJhZy1jb3JuZXItdGwgewogIGN1cnNvcjogbndzZS1yZXNpemU7Cn0KLnBsb3R0YWJsZSAuZHJhZy1ib3gtbGF5ZXIueC1yZXNpemFibGUueS1yZXNpemFibGUgLmRyYWctY29ybmVyLXRyIHsKICBjdXJzb3I6IG5lc3ctcmVzaXplOwp9Ci5wbG90dGFibGUgLmRyYWctYm94LWxheWVyLngtcmVzaXphYmxlLnktcmVzaXphYmxlIC5kcmFnLWNvcm5lci1ibCB7CiAgY3Vyc29yOiBuZXN3LXJlc2l6ZTsKfQoucGxvdHRhYmxlIC5kcmFnLWJveC1sYXllci54LXJlc2l6YWJsZS55LXJlc2l6YWJsZSAuZHJhZy1jb3JuZXItYnIgewogIGN1cnNvcjogbndzZS1yZXNpemU7Cn0KCi5wbG90dGFibGUgLmRyYWctYm94LWxheWVyLm1vdmFibGUgLnNlbGVjdGlvbi1hcmVhIHsKICBjdXJzb3I6IG1vdmU7IC8qIElFIGZhbGxiYWNrICovCiAgY3Vyc29yOiAtbW96LWdyYWI7CiAgY3Vyc29yOiAtd2Via2l0LWdyYWI7CiAgY3Vyc29yOiBncmFiOwp9CgoucGxvdHRhYmxlIC5kcmFnLWJveC1sYXllci5tb3ZhYmxlIC5zZWxlY3Rpb24tYXJlYTphY3RpdmUgewogIGN1cnNvcjogLW1vei1ncmFiYmluZzsKICBjdXJzb3I6IC13ZWJraXQtZ3JhYmJpbmc7CiAgY3Vyc29yOiBncmFiYmluZzsKfQovKiAvRHJhZ0JveExheWVyICovCgoucGxvdHRhYmxlIC5ndWlkZS1saW5lLWxheWVyIGxpbmUuZ3VpZGUtbGluZSB7CiAgc3Ryb2tlOiAjQ0NDOwogIHN0cm9rZS13aWR0aDogMXB4Owp9CgoucGxvdHRhYmxlIC5kcmFnLWxpbmUtbGF5ZXIuZW5hYmxlZC52ZXJ0aWNhbCBsaW5lLmRyYWctZWRnZSB7CiAgY3Vyc29yOiBldy1yZXNpemU7Cn0KCi5wbG90dGFibGUgLmRyYWctbGluZS1sYXllci5lbmFibGVkLmhvcml6b250YWwgbGluZS5kcmFnLWVkZ2UgewogIGN1cnNvcjogbnMtcmVzaXplOwp9CgoucGxvdHRhYmxlIC5sZWdlbmQgdGV4dCB7CiAgZmlsbDogIzMyMzEzRjsKICBmb250LXNpemU6IDEycHg7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsKfQoKLnBsb3R0YWJsZSAuaW50ZXJwb2xhdGVkLWNvbG9yLWxlZ2VuZCByZWN0LnN3YXRjaC1ib3VuZGluZy1ib3ggewogIGZpbGw6IG5vbmU7CiAgc3Ryb2tlOiAjQ0NDOwogIHN0cm9rZS13aWR0aDogMXB4OwogIHBvaW50ZXItZXZlbnRzOiBub25lOwp9CgoucGxvdHRhYmxlIC53YXRlcmZhbGwtcGxvdCBsaW5lLmNvbm5lY3RvciB7CiAgc3Ryb2tlOiAjQ0NDOwogIHN0cm9rZS13aWR0aDogMXB4Owp9CgoucGxvdHRhYmxlIC5waWUtcGxvdCAuYXJjLm91dGxpbmUgewogIHN0cm9rZS1saW5lam9pbjogcm91bmQ7Cn0KCmB9KTt2YXIgbzA7KGZ1bmN0aW9uKGUpe2UuR1JPVVA9IkciLGUuRElWPSJESVYiLGUuU1ZHPSJTVkciLGUuVEVYVD0iVEVYVCJ9KShvMHx8KG8wPXt9KSk7dmFyIGVzdD1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnVuaXF1ZUlkPTAsdGhpcy5yb290PXR9ZXhwb3J0QXNTdHJpbmcoKXtsZXQgdD10aGlzLmNvbnZlcnQodGhpcy5yb290KTtpZighdClyZXR1cm4iIjtsZXQgcj10aGlzLmNyZWF0ZVJvb3RTdmcoKTtyZXR1cm4gci5hcHBlbmRDaGlsZCh0KSxyLm91dGVySFRNTH1jcmVhdGVVbmlxdWVJZCh0KXtyZXR1cm5gJHt0fV8ke3RoaXMudW5pcXVlSWQrK31gfWdldFNpemUoKXtyZXR1cm4gdGhpcy5yb290LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWNyZWF0ZVJvb3RTdmcoKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdmciKSxyPXRoaXMuZ2V0U2l6ZSgpO3JldHVybiB0LnNldEF0dHJpYnV0ZU5TKCJzdmciLCJ2aWV3Qm94IixgMCAwICR7ci53aWR0aH0gJHtyLmhlaWdodH1gKSx0LnNldEF0dHJpYnV0ZSgieG1sbnMiLCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIpLHR9Y3JlYXRlQ29udmVydGVkTm9kZSh0KXtsZXQgcj10Lm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk7aWYodC5ub2RlVHlwZT09Tm9kZS5FTEVNRU5UX05PREUmJihyPT1vMC5ESVZ8fHI9PW8wLlNWRykpe2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobzAuR1JPVVApLGk9d2luZG93LmdldENvbXB1dGVkU3R5bGUodCksbz1wYXJzZUludChpLmxlZnQsMTApLGE9cGFyc2VJbnQoaS50b3AsMTApO2lmKG98fGEpe2xldCBzPXRoaXMuY3JlYXRlVW5pcXVlSWQoImNsaXAiKTtuLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIixgdHJhbnNsYXRlKCR7b30sICR7YX0pYCksbi5zZXRBdHRyaWJ1dGUoImNsaXAtcGF0aCIsYHVybCgjJHtzfSlgKTtsZXQgbD1wYXJzZUludChpLndpZHRoLDEwKSxjPXBhcnNlSW50KGkuaGVpZ2h0LDEwKSx1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInJlY3QiKTt1LnNldEF0dHJpYnV0ZSgid2lkdGgiLFN0cmluZyhsKSksdS5zZXRBdHRyaWJ1dGUoImhlaWdodCIsU3RyaW5nKGMpKTtsZXQgaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoInN2ZyIsImNsaXBQYXRoIik7aC5pZD1zLGguYXBwZW5kQ2hpbGQodSksbi5hcHBlbmRDaGlsZChoKX1yZXR1cm4gbn1lbHNlIHJldHVybiB0LmNsb25lTm9kZSgpfWNvbnZlcnQodCl7bGV0IHI9dGhpcy5jcmVhdGVDb252ZXJ0ZWROb2RlKHQpO3JldHVybiBBcnJheS5mcm9tKHQuY2hpbGROb2RlcykubWFwKGk9PnRoaXMuY29udmVydChpKSkuZmlsdGVyKEJvb2xlYW4pLmZvckVhY2goaT0+e3IuYXBwZW5kQ2hpbGQoaSl9KSxyLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PW8wLkdST1VQJiYhci5oYXNDaGlsZE5vZGVzKCl8fHRoaXMuc2hvdWxkT21pdE5vZGUodCk/bnVsbDp0aGlzLnN0cmlwQ2xhc3ModGhpcy50cmFuc2ZlclN0eWxlKHQscikpfXN0cmlwQ2xhc3ModCl7cmV0dXJuIHQubm9kZVR5cGU9PU5vZGUuRUxFTUVOVF9OT0RFJiZ0LnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKSx0fXRyYW5zZmVyU3R5bGUodCxyKXtpZihyLm5vZGVUeXBlIT1Ob2RlLkVMRU1FTlRfTk9ERSlyZXR1cm4gcjtsZXQgbj1yLGk9ci5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpLG89d2luZG93LmdldENvbXB1dGVkU3R5bGUodCk7cmV0dXJuIGk9PW8wLlRFWFQmJk9iamVjdC5hc3NpZ24obi5zdHlsZSx7Zm9udEZhbWlseTpvLmZvbnRGYW1pbHksZm9udFNpemU6by5mb250U2l6ZSxmb250V2VpZ2h0Om8uZm9udFdlaWdodH0pLGkhPW8wLkdST1VQJiYobi5zZXRBdHRyaWJ1dGUoImZpbGwiLG8uZmlsbCksbi5zZXRBdHRyaWJ1dGUoInN0cm9rZSIsby5zdHJva2UpLG4uc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLG8uc3Ryb2tlV2lkdGgpKSxvLm9wYWNpdHkhPSIxIiYmbi5zZXRBdHRyaWJ1dGUoIm9wYWNpdHkiLG8ub3BhY2l0eSkscn1zaG91bGRPbWl0Tm9kZSh0KXtyZXR1cm4hMX19LExCPWNsYXNzIGV4dGVuZHMgZXN0e3Nob3VsZE9taXROb2RlKHQpe3JldHVybiB0Lm5vZGVUeXBlPT1Ob2RlLkVMRU1FTlRfTk9ERT90LmNsYXNzTGlzdC5jb250YWlucygic2NhdHRlci1wbG90Iik6ITF9fTt5cyh7bW9kdWxlTmFtZToidnotcGFuLXpvb20tc3R5bGUiLHN0eWxlQ29udGVudDpgCiAgICAuaGVscCB7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGFuaW1hdGlvbi1kZWxheTogMXM7CiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7CiAgICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlLW91dDsKICAgICAgYmFja2dyb3VuZDogcmdiYSgzMCwgMzAsIDMwLCAwLjYpOwogICAgICBib3R0b206IDA7CiAgICAgIGNvbG9yOiAjZmZmOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgbGVmdDogMDsKICAgICAgb3BhY2l0eTogMTsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgcmlnaHQ6IDA7CiAgICAgIHRvcDogMDsKICAgIH0KCiAgICAuaGVscCA+IHNwYW4gewogICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOwogICAgfQoKICAgIEBrZXlmcmFtZXMgZmFkZS1vdXQgewogICAgICAwJSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgMTAwJSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQogICAgfQogIGB9KTt2YXIgT3FlPVd1KHIwKSxqS3Q9ZT0+aXNOYU4oZSk/Ik5hTiI6T3FlKGUpLGlzdD1be3RpdGxlOiJOYW1lIixldmFsdWF0ZTplPT5lLmRhdGFzZXQubWV0YWRhdGEoKS5uYW1lfSx7dGl0bGU6IlNtb290aGVkIixldmFsdWF0ZShlLHQpe2xldHtzbW9vdGhpbmdFbmFibGVkOnJ9PXQ7cmV0dXJuIGpLdChyP2UuZGF0dW0uc21vb3RoZWQ6ZS5kYXR1bS5zY2FsYXIpfX0se3RpdGxlOiJWYWx1ZSIsZXZhbHVhdGU6ZT0+akt0KGUuZGF0dW0uc2NhbGFyKX0se3RpdGxlOiJTdGVwIixldmFsdWF0ZTplPT5iNChlLmRhdHVtLnN0ZXApfSx7dGl0bGU6IlRpbWUiLGV2YWx1YXRlOmU9PnlCKGUuZGF0dW0ud2FsbF90aW1lKX0se3RpdGxlOiJSZWxhdGl2ZSIsZXZhbHVhdGU6ZT0+dkIobjAoZS5kYXR1bSwtMSxlLmRhdGFzZXQpKX1dLFpyPWNsYXNzIGV4dGVuZHMgR3QobXQpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmNvbG9yU2NhbGU9bmV3IG5zdC5TY2FsZXMuQ29sb3IoKS5yYW5nZShqYi5zbGljZSgwKSksdGhpcy5zbW9vdGhpbmdFbmFibGVkPSExLHRoaXMuc21vb3RoaW5nV2VpZ2h0PS42LHRoaXMueFR5cGU9bnVsbCx0aGlzLnhDb21wb25lbnRzQ3JlYXRpb25NZXRob2Q9bnVsbCx0aGlzLnlWYWx1ZUFjY2Vzc29yPXQ9PnQuc2NhbGFyLHRoaXMudG9vbHRpcENvbHVtbnM9aXN0LHRoaXMueVNjYWxlVHlwZT1CZi5MSU5FQVIsdGhpcy5pZ25vcmVZT3V0bGllcnM9ITEsdGhpcy50b29sdGlwU29ydGluZ01ldGhvZD0iZGVmYXVsdCIsdGhpcy50b29sdGlwUG9zaXRpb249V3YuQk9UVE9NLHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZT1bXSx0aGlzLl9zZXJpZXNEYXRhQ2FjaGU9e30sdGhpcy5fc2VyaWVzTWV0YWRhdGFDYWNoZT17fSx0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQ9bnVsbH1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5zY29wZVN1YnRyZWUodGhpcy4kLmNoYXJ0ZGl2LCEwKX1hdHRhY2hlZCgpe2xldCB0PXtjYXB0dXJlOiEwLHBhc3NpdmU6ITB9O3RoaXMuX2xpc3Rlbih0aGlzLCJtb3VzZWRvd24iLHRoaXMuX29uTW91c2VEb3duLmJpbmQodGhpcyksdCksdGhpcy5fbGlzdGVuKHRoaXMsIm1vdXNldXAiLHRoaXMuX29uTW91c2VVcC5iaW5kKHRoaXMpLHQpLHRoaXMuX2xpc3Rlbih3aW5kb3csImtleWRvd24iLHRoaXMuX29uS2V5RG93bi5iaW5kKHRoaXMpLHQpLHRoaXMuX2xpc3Rlbih3aW5kb3csImtleXVwIix0aGlzLl9vbktleVVwLmJpbmQodGhpcyksdCl9ZGV0YWNoZWQoKXt0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQhPT1udWxsJiYodGhpcy5jYW5jZWxBc3luYyh0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQpLHRoaXMuX21ha2VDaGFydEFzeW5jQ2FsbGJhY2tJZD1udWxsKSx0aGlzLl9jaGFydCYmKHRoaXMuX2NoYXJ0LmRlc3Ryb3koKSx0aGlzLl9jaGFydD12b2lkIDApLHRoaXMuX2xpc3RlbmVycyYmKHRoaXMuX2xpc3RlbmVycy5mb3JFYWNoKCh7bm9kZTp0LGV2ZW50TmFtZTpyLGZ1bmM6bixvcHRpb246aX0pPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKHIsbixpKX0pLHRoaXMuX2xpc3RlbmVycy5jbGVhcigpKX1fbGlzdGVuKHQscixuLGk9e30pe3RoaXMuX2xpc3RlbmVyc3x8KHRoaXMuX2xpc3RlbmVycz1uZXcgU2V0KSx0aGlzLl9saXN0ZW5lcnMuYWRkKHtub2RlOnQsZXZlbnROYW1lOnIsZnVuYzpuLG9wdGlvbjppfSksdC5hZGRFdmVudExpc3RlbmVyKHIsbixpKX1fb25LZXlEb3duKHQpe3RoaXMudG9nZ2xlQ2xhc3MoInBhbmtleSIsRmYuaXNQYW5LZXkodCkpfV9vbktleVVwKHQpe3RoaXMudG9nZ2xlQ2xhc3MoInBhbmtleSIsRmYuaXNQYW5LZXkodCkpfV9vbk1vdXNlRG93bih0KXt0aGlzLnRvZ2dsZUNsYXNzKCJtb3VzZWRvd24iLCEwKX1fb25Nb3VzZVVwKHQpe3RoaXMudG9nZ2xlQ2xhc3MoIm1vdXNlZG93biIsITEpfWlzRGF0YUZpdFRvRG9tYWluKCl7cmV0dXJuIHRoaXMuX2NoYXJ0P3RoaXMuX2NoYXJ0LmlzRGF0YUZpdFRvRG9tYWluKCk6ITB9c2V0VmlzaWJsZVNlcmllcyh0KXtYS3QuaXNFcXVhbCh0aGlzLl92aXNpYmxlU2VyaWVzQ2FjaGUsdCl8fCh0aGlzLl92aXNpYmxlU2VyaWVzQ2FjaGU9dCl9c2V0U2VyaWVzRGF0YSh0LHIpe3RoaXMuX3Nlcmllc0RhdGFDYWNoZVt0XT1yLHRoaXMuX2NoYXJ0JiZ0aGlzLl9jaGFydC5zZXRTZXJpZXNEYXRhKHQscil9c2V0U2VyaWVzTWV0YWRhdGEodCxyKXt0aGlzLl9zZXJpZXNNZXRhZGF0YUNhY2hlW3RdPXIsdGhpcy5fY2hhcnQmJnRoaXMuX2NoYXJ0LnNldFNlcmllc01ldGFkYXRhKHQscil9Y29tbWl0Q2hhbmdlcygpeyF0aGlzLl9jaGFydHx8dGhpcy5fY2hhcnQuY29tbWl0Q2hhbmdlcygpfXJlc2V0RG9tYWluKCl7dGhpcy5fY2hhcnQmJnRoaXMuX2NoYXJ0LnJlc2V0RG9tYWluKCl9cmVkcmF3KCl7dGhpcy5fY2hhcnQmJnRoaXMuX2NoYXJ0LnJlZHJhdygpfV9tYWtlQ2hhcnQoKXt0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQhPT1udWxsJiYodGhpcy5jYW5jZWxBc3luYyh0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQpLHRoaXMuX21ha2VDaGFydEFzeW5jQ2FsbGJhY2tJZD1udWxsKSx0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQ9dGhpcy5hc3luYyhmdW5jdGlvbigpe3RoaXMuX21ha2VDaGFydEFzeW5jQ2FsbGJhY2tJZD1udWxsO2xldCB0PXRoaXMueENvbXBvbmVudHNDcmVhdGlvbk1ldGhvZDtpZighdGhpcy54VHlwZSYmIXQ/dD1YYXQ6dGhpcy54VHlwZSYmKHQ9KCk9PnhCKHRoaXMueFR5cGUpKSwhKCF0fHwhdGhpcy55VmFsdWVBY2Nlc3Nvcnx8IXRoaXMudG9vbHRpcENvbHVtbnMpKXt2YXIgcj1uZXcgRFModCx0aGlzLnlWYWx1ZUFjY2Vzc29yLHRoaXMueVNjYWxlVHlwZSx0aGlzLmNvbG9yU2NhbGUsdGhpcy4kLnRvb2x0aXAsdGhpcy50b29sdGlwQ29sdW1ucyx0aGlzLmZpbGxBcmVhLHRoaXMuZGVmYXVsdFhSYW5nZSx0aGlzLmRlZmF1bHRZUmFuZ2UsdGhpcy5zeW1ib2xGdW5jdGlvbix0aGlzLnhBeGlzRm9ybWF0dGVyKSxuPUh0KHRoaXMuJC5jaGFydGRpdik7ci5yZW5kZXJUbyhuKSx0aGlzLl9jaGFydCYmdGhpcy5fY2hhcnQuZGVzdHJveSgpLHRoaXMuX2NoYXJ0PXIsdGhpcy5fY2hhcnQub25BbmNob3IoKCk9PnRoaXMuZmlyZSgiY2hhcnQtYXR0YWNoZWQiKSl9fSwzNTApfV9yZWxvYWRGcm9tQ2FjaGUoKXshdGhpcy5fY2hhcnR8fCh0aGlzLl92aXNpYmxlU2VyaWVzQ2FjaGUuZm9yRWFjaCh0PT57dGhpcy5fY2hhcnQuc2V0U2VyaWVzRGF0YSh0LHRoaXMuX3Nlcmllc0RhdGFDYWNoZVt0XXx8W10pfSksdGhpcy5fdmlzaWJsZVNlcmllc0NhY2hlLmZpbHRlcih0PT50aGlzLl9zZXJpZXNNZXRhZGF0YUNhY2hlW3RdKS5mb3JFYWNoKHQ9Pnt0aGlzLl9jaGFydC5zZXRTZXJpZXNNZXRhZGF0YSh0LHRoaXMuX3Nlcmllc01ldGFkYXRhQ2FjaGVbdF0pfSksdGhpcy5fY2hhcnQuc2V0VmlzaWJsZVNlcmllcyh0aGlzLl92aXNpYmxlU2VyaWVzQ2FjaGUpLHRoaXMuX2NoYXJ0LmNvbW1pdENoYW5nZXMoKSl9X3Ntb290aGluZ0NoYW5nZWQoKXshdGhpcy5fY2hhcnR8fCh0aGlzLnNtb290aGluZ0VuYWJsZWQ/dGhpcy5fY2hhcnQuc21vb3RoaW5nVXBkYXRlKHRoaXMuc21vb3RoaW5nV2VpZ2h0KTp0aGlzLl9jaGFydC5zbW9vdGhpbmdEaXNhYmxlKCkpfV9vdXRsaWVyc0NoYW5nZWQoKXshdGhpcy5fY2hhcnR8fHRoaXMuX2NoYXJ0Lmlnbm9yZVlPdXRsaWVycyh0aGlzLmlnbm9yZVlPdXRsaWVycyl9X2NvbG9yU2NhbGVDaGFuZ2VkKCl7IXRoaXMuX2NoYXJ0fHwodGhpcy5fY2hhcnQuc2V0Q29sb3JTY2FsZSh0aGlzLmNvbG9yU2NhbGUpLHRoaXMuX2NoYXJ0LnJlZHJhdygpKX1fdG9vbHRpcENvbHVtbnNDaGFuZ2VkKCl7IXRoaXMuX2NoYXJ0fHx0aGlzLl9jaGFydC5zZXRUb29sdGlwQ29sdW1ucyh0aGlzLnRvb2x0aXBDb2x1bW5zKX1fdG9vbHRpcFNvcnRpbmdNZXRob2RDaGFuZ2VkKCl7IXRoaXMuX2NoYXJ0fHx0aGlzLl9jaGFydC5zZXRUb29sdGlwU29ydGluZ01ldGhvZCh0aGlzLnRvb2x0aXBTb3J0aW5nTWV0aG9kKX1nZXRFeHBvcnRlcigpe3JldHVybiBuZXcgTEIodGhpcy4kLmNoYXJ0ZGl2KX19O1pyLnRlbXBsYXRlPVFgCiAgICA8ZGl2IGlkPSJjaGFydGRpdiI+PC9kaXY+CiAgICA8dnotY2hhcnQtdG9vbHRpcAogICAgICBpZD0idG9vbHRpcCIKICAgICAgcG9zaXRpb249IltbdG9vbHRpcFBvc2l0aW9uXV0iCiAgICAgIGNvbnRlbnQtY29tcG9uZW50LW5hbWU9InZ6LWxpbmUtY2hhcnQtdG9vbHRpcCIKICAgID48L3Z6LWNoYXJ0LXRvb2x0aXA+CiAgICA8c3R5bGUgaW5jbHVkZT0icGxvdHRhYmxlLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlIGluY2x1ZGU9InZ6LXBhbi16b29tLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQogICAgICBkaXYgewogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgIH0KCiAgICAgICNjaGFydGRpdiAubWFpbiB7CiAgICAgICAgY29udGFpbjogc3RyaWN0OwogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICA6aG9zdCgucGFua2V5KSAjY2hhcnRkaXYgOm5vdCguZHJhZy16b29taW5nKSAubWFpbiB7CiAgICAgICAgY3Vyc29yOiAtd2Via2l0LWdyYWI7CiAgICAgICAgY3Vyc29yOiBncmFiOwogICAgICB9CgogICAgICA6aG9zdCgubW91c2Vkb3duKSAjY2hhcnRkaXYgLnBhbm5pbmcgLm1haW4gewogICAgICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZzsKICAgICAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgICB9CgogICAgICAjY2hhcnRkaXYgewogICAgICAgIGNvbnRhaW46IHN0cmljdDsKICAgICAgfQoKICAgICAgI2NoYXJ0ZGl2IGxpbmUuZ3VpZGUtbGluZSB7CiAgICAgICAgc3Ryb2tlOiAjOTk5OwogICAgICAgIHN0cm9rZS13aWR0aDogMS41cHg7CiAgICAgIH0KICAgICAgI2NoYXJ0ZGl2OmhvdmVyIC5tYWluIHsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICB9CgogICAgICAuZ2hvc3QgewogICAgICAgIG9wYWNpdHk6IDAuMjsKICAgICAgICBzdHJva2Utd2lkdGg6IDFweDsKICAgICAgfQoKICAgICAgLnBsb3R0YWJsZSAuYXhpcyB0ZXh0IHsKICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC5wbG90dGFibGUgLmdyaWRsaW5lcyBsaW5lIHsKICAgICAgICBzdHJva2U6IHZhcigtLXRiLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLG5zdC5TY2FsZXMuQ29sb3IpXSxaci5wcm90b3R5cGUsImNvbG9yU2NhbGUiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxaci5wcm90b3R5cGUsInN5bWJvbEZ1bmN0aW9uIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbixub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFpyLnByb3RvdHlwZSwic21vb3RoaW5nRW5hYmxlZCIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxaci5wcm90b3R5cGUsInNtb290aGluZ1dlaWdodCIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxaci5wcm90b3R5cGUsInhUeXBlIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFpyLnByb3RvdHlwZSwieENvbXBvbmVudHNDcmVhdGlvbk1ldGhvZCIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLFpyLnByb3RvdHlwZSwieEF4aXNGb3JtYXR0ZXIiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxaci5wcm90b3R5cGUsInlWYWx1ZUFjY2Vzc29yIix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSxaci5wcm90b3R5cGUsInRvb2x0aXBDb2x1bW5zIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFpyLnByb3RvdHlwZSwiZmlsbEFyZWEiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLFpyLnByb3RvdHlwZSwiZGVmYXVsdFhSYW5nZSIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sWnIucHJvdG90eXBlLCJkZWZhdWx0WVJhbmdlIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLFpyLnByb3RvdHlwZSwieVNjYWxlVHlwZSIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFpyLnByb3RvdHlwZSwiaWdub3JlWU91dGxpZXJzIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLFpyLnByb3RvdHlwZSwidG9vbHRpcFNvcnRpbmdNZXRob2QiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWnIucHJvdG90eXBlLCJ0b29sdGlwUG9zaXRpb24iLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWnIucHJvdG90eXBlLCJfY2hhcnQiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLFpyLnByb3RvdHlwZSwiX3Zpc2libGVTZXJpZXNDYWNoZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxaci5wcm90b3R5cGUsIl9zZXJpZXNEYXRhQ2FjaGUiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWnIucHJvdG90eXBlLCJfc2VyaWVzTWV0YWRhdGFDYWNoZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxaci5wcm90b3R5cGUsIl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQiLHZvaWQgMCk7RShbQnQoInhDb21wb25lbnRzQ3JlYXRpb25NZXRob2QiLCJ4VHlwZSIsInlWYWx1ZUFjY2Vzc29yIiwieVNjYWxlVHlwZSIsImlzQXR0YWNoZWQiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFpyLnByb3RvdHlwZSwiX21ha2VDaGFydCIsbnVsbCk7RShbQnQoIl9jaGFydCIsIl92aXNpYmxlU2VyaWVzQ2FjaGUiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFpyLnByb3RvdHlwZSwiX3JlbG9hZEZyb21DYWNoZSIsbnVsbCk7RShbQnQoInNtb290aGluZ0VuYWJsZWQiLCJzbW9vdGhpbmdXZWlnaHQiLCJfY2hhcnQiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFpyLnByb3RvdHlwZSwiX3Ntb290aGluZ0NoYW5nZWQiLG51bGwpO0UoW0J0KCJpZ25vcmVZT3V0bGllcnMiLCJfY2hhcnQiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFpyLnByb3RvdHlwZSwiX291dGxpZXJzQ2hhbmdlZCIsbnVsbCk7RShbQnQoImNvbG9yU2NhbGUiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFpyLnByb3RvdHlwZSwiX2NvbG9yU2NhbGVDaGFuZ2VkIixudWxsKTtFKFtCdCgidG9vbHRpcENvbHVtbnMiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFpyLnByb3RvdHlwZSwiX3Rvb2x0aXBDb2x1bW5zQ2hhbmdlZCIsbnVsbCk7RShbQnQoInRvb2x0aXBTb3J0aW5nTWV0aG9kIiwiX2NoYXJ0IiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxaci5wcm90b3R5cGUsIl90b29sdGlwU29ydGluZ01ldGhvZENoYW5nZWQiLG51bGwpO1pyPUUoW3l0KCJ2ei1saW5lLWNoYXJ0MiIpXSxacik7dmFyIHJzdD1jbGFzcyBleHRlbmRzIG10e307cnN0LnRlbXBsYXRlPVFgCiAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgPHRhYmxlPgogICAgICAgIDx0aGVhZD48L3RoZWFkPgogICAgICAgIDx0Ym9keT48L3Rib2R5PgogICAgICA8L3RhYmxlPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmNvbnRlbnQgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40ZW07CiAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgIH0KCiAgICAgIHRoZWFkIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIHRib2R5IHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIxcHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgdGQgewogICAgICAgIHBhZGRpbmc6IDAgNXB4OwogICAgICB9CgogICAgICAuc3dhdGNoIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICB9CgogICAgICAuY2xvc2VzdCAuc3dhdGNoIHsKICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggI2ZmZjsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIHBhZGRpbmc6IDAgNXB4OwogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgIH0KCiAgICAgIC5kaXN0YW50IHRkOm5vdCguc3dhdGNoKSB7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CgogICAgICAuZ2hvc3QgewogICAgICAgIG9wYWNpdHk6IDAuMjsKICAgICAgICBzdHJva2Utd2lkdGg6IDFweDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO3JzdD1FKFt5dCgidnotbGluZS1jaGFydC10b29sdGlwIildLHJzdCk7dmFyIG9zdD1bXSx6cWU9MCxGcWU9JEt0LnRocm90dGxlKGZ1bmN0aW9uIGUoKXtpZihvc3QubGVuZ3RoPT0wKXJldHVybjtsZXQgdD1vc3Quc2hpZnQoKTt0JiZ0LmFjdGl2ZSYmKHQucmVkcmF3KCksdC5fbWF5YmVSZW5kZXJlZEluQmFkU3RhdGU9ITEpLHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh6cWUpLHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSl9LDEwMCksVm49Y2xhc3MgZXh0ZW5kcyBrUyhHdChtdCkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9yZWRyYXdSYWY9bnVsbCx0aGlzLmFjdGl2ZT0hMSx0aGlzLmxvZ1NjYWxlQWN0aXZlPSExLHRoaXMuY29sb3JTY2FsZT17c2NhbGU6Zm59LHRoaXMuX3Jlc2V0RG9tYWluT25OZXh0TG9hZD0hMCx0aGlzLl9tYXliZVJlbmRlcmVkSW5CYWRTdGF0ZT0hMX1vbkxvYWRGaW5pc2goKXt0aGlzLmNvbW1pdENoYW5nZXMoKSx0aGlzLmRhdGFUb0xvYWQubGVuZ3RoPjAmJnRoaXMuX3Jlc2V0RG9tYWluT25OZXh0TG9hZCYmKHRoaXMuX3Jlc2V0RG9tYWluT25OZXh0TG9hZD0hMSx0aGlzLmdldENoYXJ0KCkucmVzZXREb21haW4oKSksdGhpcy5yZWRyYXcoKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fcmVkcmF3UmFmIT09bnVsbCYmY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fcmVkcmF3UmFmKX1leHBvcnRBc1N2Z1N0cmluZygpe3JldHVybiB0aGlzLmdldENoYXJ0KCkuZ2V0RXhwb3J0ZXIoKS5leHBvcnRBc1N0cmluZygpfWdldENoYXJ0KCl7cmV0dXJuIHRoaXMuJC5jaGFydH1yZXNldERvbWFpbigpe3RoaXMuZ2V0Q2hhcnQoKS5yZXNldERvbWFpbigpfXNldFNlcmllc0RhdGEodCxyKXt0aGlzLmdldENoYXJ0KCkuc2V0U2VyaWVzRGF0YSh0LHIpfXNldFNlcmllc01ldGFkYXRhKHQscil7dGhpcy5nZXRDaGFydCgpLnNldFNlcmllc01ldGFkYXRhKHQscil9Y29tbWl0Q2hhbmdlcygpe3RoaXMuZ2V0Q2hhcnQoKS5jb21taXRDaGFuZ2VzKCl9cmVkcmF3KCl7dGhpcy5fcmVkcmF3UmFmIT09bnVsbCYmY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fcmVkcmF3UmFmKSx0aGlzLl9yZWRyYXdSYWY9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuYWN0aXZlP3RoaXMuZ2V0Q2hhcnQoKS5yZWRyYXcoKTp0aGlzLl9tYXliZVJlbmRlcmVkSW5CYWRTdGF0ZT0hMH0pfV9sb2FkS2V5Q2hhbmdlZCgpe3RoaXMucmVzZXQoKSx0aGlzLl9yZXNldERvbWFpbk9uTmV4dExvYWQ9ITB9X2RhdGFTZXJpZXNDaGFuZ2VkKCl7dGhpcy5nZXRDaGFydCgpLnNldFZpc2libGVTZXJpZXModGhpcy5kYXRhU2VyaWVzKX1fbG9nU2NhbGVDaGFuZ2VkKHQpe2xldCByPXRoaXMuZ2V0Q2hhcnQoKTtyLnlTY2FsZVR5cGU9dD9CZi5MT0c6QmYuTElORUFSLHRoaXMucmVkcmF3KCl9X2ZpeEJhZFN0YXRlV2hlbkFjdGl2ZSgpe3RoaXMuYWN0aXZlJiZ0aGlzLl9tYXliZVJlbmRlcmVkSW5CYWRTdGF0ZSYmKG9zdC5wdXNoKHRoaXMpLEZxZSgpKX1fb25DaGFydEF0dGFjaGVkKCl7dGhpcy5hY3RpdmV8fCh0aGlzLl9tYXliZVJlbmRlcmVkSW5CYWRTdGF0ZT0hMCl9fTtWbi50ZW1wbGF0ZT1RYAogICAgPGRpdiBpZD0iY2hhcnQtYW5kLXNwaW5uZXItY29udGFpbmVyIj4KICAgICAgPHZ6LWxpbmUtY2hhcnQyCiAgICAgICAgaWQ9ImNoYXJ0IgogICAgICAgIGRhdGEtbG9hZGluZyQ9IltbZGF0YUxvYWRpbmddXSIKICAgICAgICBkYXRhLWxvYWRlZC1vbmNlJD0iW1tkYXRhTG9hZGVkQXRMZWFzdE9uY2VdXSIKICAgICAgICBjb2xvci1zY2FsZT0iW1tjb2xvclNjYWxlXV0iCiAgICAgICAgZGVmYXVsdC14LXJhbmdlPSJbW2RlZmF1bHRYUmFuZ2VdXSIKICAgICAgICBkZWZhdWx0LXktcmFuZ2U9IltbZGVmYXVsdFlSYW5nZV1dIgogICAgICAgIGZpbGwtYXJlYT0iW1tmaWxsQXJlYV1dIgogICAgICAgIGlnbm9yZS15LW91dGxpZXJzPSJbW2lnbm9yZVlPdXRsaWVyc11dIgogICAgICAgIG9uLWNoYXJ0LWF0dGFjaGVkPSJfb25DaGFydEF0dGFjaGVkIgogICAgICAgIHNtb290aGluZy1lbmFibGVkPSJbW3Ntb290aGluZ0VuYWJsZWRdXSIKICAgICAgICBzbW9vdGhpbmctd2VpZ2h0PSJbW3Ntb290aGluZ1dlaWdodF1dIgogICAgICAgIHN5bWJvbC1mdW5jdGlvbj0iW1tzeW1ib2xGdW5jdGlvbl1dIgogICAgICAgIHRvb2x0aXAtY29sdW1ucz0iW1t0b29sdGlwQ29sdW1uc11dIgogICAgICAgIHRvb2x0aXAtcG9zaXRpb249IltbdG9vbHRpcFBvc2l0aW9uXV0iCiAgICAgICAgdG9vbHRpcC1zb3J0aW5nLW1ldGhvZD0iW1t0b29sdGlwU29ydGluZ01ldGhvZF1dIgogICAgICAgIHgtY29tcG9uZW50cy1jcmVhdGlvbi1tZXRob2Q9IltbeENvbXBvbmVudHNDcmVhdGlvbk1ldGhvZF1dIgogICAgICAgIHgtdHlwZT0iW1t4VHlwZV1dIgogICAgICAgIHktdmFsdWUtYWNjZXNzb3I9IltbeVZhbHVlQWNjZXNzb3JdXSIKICAgICAgPjwvdnotbGluZS1jaGFydDI+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tkYXRhTG9hZGluZ11dIj4KICAgICAgICA8ZGl2IGlkPSJsb2FkaW5nLXNwaW5uZXItY29udGFpbmVyIj4KICAgICAgICAgIDxwYXBlci1zcGlubmVyLWxpdGUgYWN0aXZlPSIiPjwvcGFwZXItc3Bpbm5lci1saXRlPgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICA6aG9zdChbX21heWJlLXJlbmRlcmVkLWluLWJhZC1zdGF0ZV0pIHZ6LWxpbmUtY2hhcnQgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgI2NoYXJ0LWFuZC1zcGlubmVyLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAjbG9hZGluZy1zcGlubmVyLWNvbnRhaW5lciB7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgdnotbGluZS1jaGFydDIgewogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgdnotbGluZS1jaGFydDJbZGF0YS1sb2FkaW5nXSB7CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CiAgICA8L3N0eWxlPgogIGA7RShbQSh7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfZml4QmFkU3RhdGVXaGVuQWN0aXZlIn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sVm4ucHJvdG90eXBlLCJhY3RpdmUiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLFZuLnByb3RvdHlwZSwiZGF0YVNlcmllcyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixBZSldLFZuLnByb3RvdHlwZSwicmVxdWVzdE1hbmFnZXIiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfbG9nU2NhbGVDaGFuZ2VkIn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sVm4ucHJvdG90eXBlLCJsb2dTY2FsZUFjdGl2ZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxWbi5wcm90b3R5cGUsInhDb21wb25lbnRzQ3JlYXRpb25NZXRob2QiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sVm4ucHJvdG90eXBlLCJ4VHlwZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLFZuLnByb3RvdHlwZSwieVZhbHVlQWNjZXNzb3IiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sVm4ucHJvdG90eXBlLCJmaWxsQXJlYSIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFZuLnByb3RvdHlwZSwic21vb3RoaW5nRW5hYmxlZCIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxWbi5wcm90b3R5cGUsInNtb290aGluZ1dlaWdodCIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sVm4ucHJvdG90eXBlLCJ0b29sdGlwQ29sdW1ucyIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxWbi5wcm90b3R5cGUsInRvb2x0aXBTb3J0aW5nTWV0aG9kIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLFZuLnByb3RvdHlwZSwidG9vbHRpcFBvc2l0aW9uIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sVm4ucHJvdG90eXBlLCJpZ25vcmVZT3V0bGllcnMiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLFZuLnByb3RvdHlwZSwiZGVmYXVsdFhSYW5nZSIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sVm4ucHJvdG90eXBlLCJkZWZhdWx0WVJhbmdlIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sVm4ucHJvdG90eXBlLCJzeW1ib2xGdW5jdGlvbiIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxWbi5wcm90b3R5cGUsImNvbG9yU2NhbGUiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxWbi5wcm90b3R5cGUsIl9yZXNldERvbWFpbk9uTmV4dExvYWQiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sVm4ucHJvdG90eXBlLCJfbWF5YmVSZW5kZXJlZEluQmFkU3RhdGUiLHZvaWQgMCk7RShbQnQoImxvYWRLZXkiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFZuLnByb3RvdHlwZSwiX2xvYWRLZXlDaGFuZ2VkIixudWxsKTtFKFtCdCgiZGF0YVNlcmllcy4qIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxWbi5wcm90b3R5cGUsIl9kYXRhU2VyaWVzQ2hhbmdlZCIsbnVsbCk7Vm49RShbeXQoInRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXIiKV0sVm4pO3lzKHttb2R1bGVOYW1lOiJ0Zi1jdXN0b20tc2NhbGFyLWNhcmQtc3R5bGUiLHN0eWxlQ29udGVudDpgCiAgICA6aG9zdCB7CiAgICAgIG1hcmdpbjogNXB4IDEwcHg7CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgd2lkdGg6IDMzMHB4OwogICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7CiAgICB9CgogICAgOmhvc3QoW19leHBhbmRlZF0pIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CgogICAgOmhvc3QoW19leHBhbmRlZF0pICN0Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyLWNvbnRhaW5lciB7CiAgICAgIGhlaWdodDogNDAwcHg7CiAgICB9CgogICAgaDEgewogICAgICBmb250LXNpemU6IDE5cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICB9CgogICAgI3RmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXItY29udGFpbmVyIHsKICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CgogICAgI2J1dHRvbnMgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgfQoKICAgIHBhcGVyLWljb24tYnV0dG9uIHsKICAgICAgY29sb3I6ICMyMTk2ZjM7CiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgIHdpZHRoOiAzMnB4OwogICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIHBhZGRpbmc6IDRweDsKICAgIH0KCiAgICBwYXBlci1pY29uLWJ1dHRvbltzZWxlY3RlZF0gewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgfQoKICAgIC5kb3dubG9hZC1saW5rcyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGhlaWdodDogMzJweDsKICAgIH0KCiAgICAuZG93bmxvYWQtbGlua3MgYSB7CiAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgYWxpZ24tc2VsZjogY2VudGVyOwogICAgICBtYXJnaW46IDJweDsKICAgIH0KCiAgICAuZG93bmxvYWQtbGlua3MgcGFwZXItZHJvcGRvd24tbWVudSB7CiAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItbGFiZWw6IHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgIH0KICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQ6IHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgIH0KICAgIH0KICBgfSk7dmFyIE9TPWNsYXNze2NvbnN0cnVjdG9yKHQscixuLGksbyl7dGhpcy5ydW49dCx0aGlzLnRhZz1yLHRoaXMubmFtZT1uLHRoaXMuc2NhbGFyRGF0YT1pLHRoaXMuc3ltYm9sPW99Z2V0TmFtZSgpe3JldHVybiB0aGlzLm5hbWV9c2V0RGF0YSh0KXt0aGlzLnNjYWxhckRhdGE9dH1nZXREYXRhKCl7cmV0dXJuIHRoaXMuc2NhbGFyRGF0YX1nZXRSdW4oKXtyZXR1cm4gdGhpcy5ydW59Z2V0VGFnKCl7cmV0dXJuIHRoaXMudGFnfWdldFN5bWJvbCgpe3JldHVybiB0aGlzLnN5bWJvbH19O2Z1bmN0aW9uIGtCKGUsdCl7cmV0dXJuYCR7dH0gKCR7ZX0pYH12YXIgWXY9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5ydW5CYXNlZENvbG9yU2NhbGU9dH1zY2FsZSh0KXtyZXR1cm4gdGhpcy5ydW5CYXNlZENvbG9yU2NhbGUuc2NhbGUodGhpcy5wYXJzZVJ1bk5hbWUodCkpfXBhcnNlUnVuTmFtZSh0KXtsZXQgcj10Lm1hdGNoKC9cKCguKilcKSQvKTtyZXR1cm4gcj9yWzFdOiIifX07dmFyIEpyPWNsYXNzIGV4dGVuZHMgR3QobXQpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmFjdGl2ZT0hMCx0aGlzLl9jb2xvclNjYWxlPW5ldyBZdih7c2NhbGU6Zm59KSx0aGlzLl9uYW1lVG9EYXRhU2VyaWVzPXt9LHRoaXMuX2V4cGFuZGVkPSExLHRoaXMuX3JlcXVlc3REYXRhPSh0LHIsbik9PntsZXQgbz1fZSgpLnBsdWdpblJvdXRlKCJjdXN0b21fc2NhbGFycyIsIi9zY2FsYXJzIik7UHJvbWlzZS5hbGwodC5tYXAoYT0+e2xldCBzPWEsbD10aGlzLl90YWdGaWx0ZXIsYz1NaShvLHt0YWc6bCxydW46c30pO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QoYykudGhlbih1PT52b2lkIHIoe2l0ZW06YSxkYXRhOnV9KSl9KSkuZmluYWxseSgoKT0+dm9pZCBuKCkpfSx0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleD17fSx0aGlzLl9tYXRjaGVzTGlzdE9wZW5lZD0hMSx0aGlzLl9maWxsQXJlYT17bG93ZXJBY2Nlc3Nvcjp0PT50Lmxvd2VyLGhpZ2hlckFjY2Vzc29yOnQ9PnQudXBwZXJ9LHRoaXMuX3Rvb2x0aXBDb2x1bW5zPSgoKT0+e2xldCB0PVd1KHIwKSxyPW49PmlzTmFOKG4pPyJOYU4iOnQobik7cmV0dXJuW3t0aXRsZToiTmFtZSIsZXZhbHVhdGU6bj0+bi5kYXRhc2V0Lm1ldGFkYXRhKCkubmFtZX0se3RpdGxlOiJWYWx1ZSIsZXZhbHVhdGU6bj0+cihuLmRhdHVtLnNjYWxhcil9LHt0aXRsZToiTG93ZXIgTWFyZ2luIixldmFsdWF0ZTpuPT5yKG4uZGF0dW0ubG93ZXIpfSx7dGl0bGU6IlVwcGVyIE1hcmdpbiIsZXZhbHVhdGU6bj0+cihuLmRhdHVtLnVwcGVyKX0se3RpdGxlOiJTdGVwIixldmFsdWF0ZTpuPT5iNChuLmRhdHVtLnN0ZXApfSx7dGl0bGU6IlRpbWUiLGV2YWx1YXRlOm49PnlCKG4uZGF0dW0ud2FsbF90aW1lKX0se3RpdGxlOiJSZWxhdGl2ZSIsZXZhbHVhdGU6bj0+dkIobjAobi5kYXR1bSwtMSxuLmRhdGFzZXQpKX1dfSkoKSx0aGlzLl9taXNzaW5nVGFncz1bXSx0aGlzLl9taXNzaW5nVGFnc0NvbGxhcHNpYmxlT3BlbmVkPSExfXJlbG9hZCgpe3RoaXMuJC5sb2FkZXIucmVsb2FkKCl9cmVkcmF3KCl7dGhpcy4kLmxvYWRlci5yZWRyYXcoKX1fdG9nZ2xlRXhwYW5kZWQodCl7dGhpcy5zZXQoIl9leHBhbmRlZCIsIXRoaXMuX2V4cGFuZGVkKSx0aGlzLnJlZHJhdygpfV90b2dnbGVMb2dTY2FsZSgpe3RoaXMuc2V0KCJfbG9nU2NhbGVBY3RpdmUiLCF0aGlzLl9sb2dTY2FsZUFjdGl2ZSl9X3Jlc2V0RG9tYWluKCl7bGV0IHQ9dGhpcy4kLmxvYWRlcjt0JiZ0LnJlc2V0RG9tYWluKCl9X2NzdlVybCh0LHIpe2lmKCFyKXJldHVybiIiO2xldCBuPXRoaXMuX2Rvd25sb2FkRGF0YVVybCh0LHIpO3JldHVybiBNaShuLHtmb3JtYXQ6ImNzdiJ9KX1fanNvblVybCh0LHIpe2lmKCFyKXJldHVybiIiO2xldCBuPXRoaXMuX2Rvd25sb2FkRGF0YVVybCh0LHIpO3JldHVybiBNaShuLHtmb3JtYXQ6Impzb24ifSl9X2Rvd25sb2FkRGF0YVVybCh0LHIpe2xldCBuPXRbcl0saT1uZXcgVVJMU2VhcmNoUGFyYW1zKHt0YWc6bi5nZXRUYWcoKSxydW46bi5nZXRSdW4oKX0pO3JldHVybiBfZSgpLnBsdWdpblJvdXRlRm9yU3JjKCJjdXN0b21fc2NhbGFycyIsIi9kb3dubG9hZF9kYXRhIixpKX1fY3JlYXRlUHJvY2Vzc0RhdGFGdW5jdGlvbih0KXtyZXR1cm4ocixuLGkpPT57aWYoIWkucmVnZXhfdmFsaWQpe3RoaXMuc2V0KCJfdGFnRmlsdGVySW52YWxpZCIsITApO3JldHVybn1sZXQgbz1Zby5jbG9uZSh0aGlzLl9uYW1lVG9EYXRhU2VyaWVzKSxhPVtdO1lvLmZvckVhY2godCxsPT57bGV0IGM9ITEsdT1pLnRhZ190b19ldmVudHNbbC52YWx1ZV0saD1pLnRhZ190b19ldmVudHNbbC5sb3dlcl0sZj1pLnRhZ190b19ldmVudHNbbC51cHBlcl07aWYoWW8uaXNVbmRlZmluZWQodSkmJihhLnB1c2gobC52YWx1ZSksYz0hMCksWW8uaXNVbmRlZmluZWQoaCkmJihhLnB1c2gobC5sb3dlciksYz0hMCksWW8uaXNVbmRlZmluZWQoZikmJihhLnB1c2gobC51cHBlciksYz0hMCksYylyZXR1cm47bGV0IHA9Yj0+YlsxXSxkPXRoaXMuX2ZpbmRTdGVwTWlzbWF0Y2gobCx1Lm1hcChwKSxoLm1hcChwKSxmLm1hcChwKSk7aWYoZCl7dGhpcy5zZXQoIl9zdGVwc01pc21hdGNoIixkKTtyZXR1cm59bGV0IGc9Yj0+YlsyXSxfPXUubWFwKChiLFMpPT4oe3dhbGxfdGltZTpuZXcgRGF0ZShiWzBdKjFlMyksc3RlcDpwKGIpLHNjYWxhcjpnKGIpLGxvd2VyOmcoaFtTXSksdXBwZXI6ZyhmW1NdKX0pKSx5PWtCKG4sbC52YWx1ZSkseD1vW3ldO2lmKHgpeC5zZXREYXRhKF8pO2Vsc2V7bGV0IGI9dGhpcy5fY3JlYXRlTmV3RGF0YVNlcmllcyhuLGwudmFsdWUseSxfKTtvW3ldPWJ9fSksdGhpcy5zZXQoIl9uYW1lVG9EYXRhU2VyaWVzIixvKTtsZXQgcz1Zby5maW5kSW5kZXgodGhpcy5fbWlzc2luZ1RhZ3MsbD0+bC5ydW49PT1uKTtpZihhLmxlbmd0aCYmYS5sZW5ndGghPTMpe2xldCBsPXtydW46bix0YWdzOmF9O3M+PTA/dGhpcy5zcGxpY2UoIl9taXNzaW5nVGFncyIscywxLGwpOnRoaXMucHVzaCgiX21pc3NpbmdUYWdzIixsKX1lbHNlIHM+PTAmJnRoaXMuc3BsaWNlKCJfbWlzc2luZ1RhZ3MiLHMsMSl9fV9maW5kU3RlcE1pc21hdGNoKHQscixuLGkpe3JldHVybiBZby5pc0VxdWFsKG4scikmJllvLmlzRXF1YWwoaSxyKT9udWxsOntzZXJpZXNPYmplY3Q6dCx2YWx1ZVN0ZXBzOnIsbG93ZXJTdGVwczpuLHVwcGVyU3RlcHM6aX19X2NyZWF0ZU5ld0RhdGFTZXJpZXModCxyLG4saSl7dGhpcy5fcnVuVG9OZXh0QXZhaWxhYmxlU3ltYm9sSW5kZXhbdF18PTA7bGV0IG89UlNbdGhpcy5fcnVuVG9OZXh0QXZhaWxhYmxlU3ltYm9sSW5kZXhbdF1dLGE9bmV3IE9TKHQscixuLGksbykscz1SUy5sZW5ndGg7cmV0dXJuIHRoaXMuX3J1blRvTmV4dEF2YWlsYWJsZVN5bWJvbEluZGV4W3RdPSh0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleFt0XSsxKSVzLGF9X3VwZGF0ZUNoYXJ0KCl7dmFyIHQ9dGhpcy5fbmFtZVRvRGF0YVNlcmllcztZby5mb3JPd24odCxyPT57dGhpcy4kLmxvYWRlci5zZXRTZXJpZXNEYXRhKHIuZ2V0TmFtZSgpLHIuZ2V0RGF0YSgpKX0pLHRoaXMuJC5sb2FkZXIuY29tbWl0Q2hhbmdlcygpfWdldCBfc2VyaWVzTmFtZXMoKXtsZXQgdD1uZXcgU2V0KHRoaXMucnVucyk7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMuX25hbWVUb0RhdGFTZXJpZXMpLmZpbHRlcigoW3Isbl0pPT50LmhhcyhuLnJ1bikpLm1hcCgoW3JdKT0+cil9X2RldGVybWluZUNvbG9yKHQscil7cmV0dXJuIHQuc2NhbGUocil9X3JlZnJlc2hEYXRhU2VyaWVzKCl7dmFyIHQ9dGhpcy5fdGFnRmlsdGVyO3RoaXMuc2V0KCJfbmFtZVRvRGF0YVNlcmllcyIse30pfV9jcmVhdGVTeW1ib2xGdW5jdGlvbigpe3JldHVybiB0PT50aGlzLl9uYW1lVG9EYXRhU2VyaWVzW3RdLmdldFN5bWJvbCgpLm1ldGhvZCgpfV9kZXRlcm1pbmVTeW1ib2wodCxyKXtyZXR1cm4gdFtyXS5nZXRTeW1ib2woKS5jaGFyYWN0ZXJ9Z2V0IF90YWdGaWx0ZXIoKXt2YXIgdD10aGlzLm1hcmdpbkNoYXJ0U2VyaWVzO3JldHVybiBZby5mbGF0dGVuKHQubWFwKGk9PltpLnZhbHVlLGkubG93ZXIsaS51cHBlcl0pKS5tYXAoaT0+IigiK3RoaXMuX2VzY2FwZVJlZ2V4Q2hhcmFjdGVycyhpKSsiKSIpLmpvaW4oInwiKX1fZXNjYXBlUmVnZXhDaGFyYWN0ZXJzKHQpe3JldHVybiB0LnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCJcXCQmIil9X2dldFRvZ2dsZUNvbGxhcHNpYmxlSWNvbih0KXtyZXR1cm4gdD8iZXhwYW5kLWxlc3MiOiJleHBhbmQtbW9yZSJ9X3RvZ2dsZU1hdGNoZXNPcGVuKCl7dGhpcy5zZXQoIl9tYXRjaGVzTGlzdE9wZW5lZCIsIXRoaXMuX21hdGNoZXNMaXN0T3BlbmVkKX1nZXQgX3RpdGxlRGlzcGxheVN0cmluZygpe3ZhciB0PXRoaXMudGl0bGU7cmV0dXJuIHR8fCJ1bnRpdGxlZCJ9X3NlcGFyYXRlV2l0aENvbW1hcyh0KXtyZXR1cm4gdC5qb2luKCIsICIpfV90b2dnbGVNaXNzaW5nVGFnc0NvbGxhcHNpYmxlT3Blbigpe3RoaXMuc2V0KCJfbWlzc2luZ1RhZ3NDb2xsYXBzaWJsZU9wZW5lZCIsIXRoaXMuX21pc3NpbmdUYWdzQ29sbGFwc2libGVPcGVuZWQpfV9tYXRjaExpc3RFbnRyeUNvbG9yVXBkYXRlZCgpe3ZhciByO2xldCB0PXRoaXMuJCQoIiNtYXRjaC1saXN0LXJlcGVhdCIpOyF0fHwocj10aGlzLnJvb3QpPT1udWxsfHxyLnF1ZXJ5U2VsZWN0b3JBbGwoIi5tYXRjaC1saXN0LWVudHJ5IikuZm9yRWFjaChuPT57bGV0IGk9dC5pdGVtRm9yRWxlbWVudChuKTtuLnN0eWxlLmNvbG9yPXRoaXMuX2RldGVybWluZUNvbG9yKHRoaXMuX2NvbG9yU2NhbGUsaSl9KX19O0pyLnRlbXBsYXRlPVFgCiAgICA8dGYtY2FyZC1oZWFkaW5nIGRpc3BsYXktbmFtZT0iW1tfdGl0bGVEaXNwbGF5U3RyaW5nXV0iPjwvdGYtY2FyZC1oZWFkaW5nPgogICAgPGRpdiBpZD0idGYtbGluZS1jaGFydC1kYXRhLWxvYWRlci1jb250YWluZXIiPgogICAgICA8dGYtbGluZS1jaGFydC1kYXRhLWxvYWRlcgogICAgICAgIGlkPSJsb2FkZXIiCiAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgIGNvbG9yLXNjYWxlPSJbW19jb2xvclNjYWxlXV0iCiAgICAgICAgZGF0YS1zZXJpZXM9IltbX3Nlcmllc05hbWVzXV0iCiAgICAgICAgZmlsbC1hcmVhPSJbW19maWxsQXJlYV1dIgogICAgICAgIGlnbm9yZS15LW91dGxpZXJzPSJbW2lnbm9yZVlPdXRsaWVyc11dIgogICAgICAgIGxvYWQta2V5PSJbW190YWdGaWx0ZXJdXSIKICAgICAgICBkYXRhLXRvLWxvYWQ9IltbcnVuc11dIgogICAgICAgIHJlcXVlc3QtZGF0YT0iW1tfcmVxdWVzdERhdGFdXSIKICAgICAgICBsb2ctc2NhbGUtYWN0aXZlPSJbW19sb2dTY2FsZUFjdGl2ZV1dIgogICAgICAgIGxvYWQtZGF0YS1jYWxsYmFjaz0iW1tfY3JlYXRlUHJvY2Vzc0RhdGFGdW5jdGlvbihtYXJnaW5DaGFydFNlcmllcyldXSIKICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICBzeW1ib2wtZnVuY3Rpb249IltbX2NyZWF0ZVN5bWJvbEZ1bmN0aW9uKCldXSIKICAgICAgICB0b29sdGlwLWNvbHVtbnM9IltbX3Rvb2x0aXBDb2x1bW5zXV0iCiAgICAgICAgdG9vbHRpcC1zb3J0aW5nLW1ldGhvZD0iW1t0b29sdGlwU29ydGluZ01ldGhvZF1dIgogICAgICAgIHgtdHlwZT0iW1t4VHlwZV1dIgogICAgICA+CiAgICAgIDwvdGYtbGluZS1jaGFydC1kYXRhLWxvYWRlcj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0iYnV0dG9ucyI+CiAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgIHNlbGVjdGVkJD0iW1tfZXhwYW5kZWRdXSIKICAgICAgICBpY29uPSJmdWxsc2NyZWVuIgogICAgICAgIG9uLXRhcD0iX3RvZ2dsZUV4cGFuZGVkIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgc2VsZWN0ZWQkPSJbW19sb2dTY2FsZUFjdGl2ZV1dIgogICAgICAgIGljb249ImxpbmUtd2VpZ2h0IgogICAgICAgIG9uLXRhcD0iX3RvZ2dsZUxvZ1NjYWxlIgogICAgICAgIHRpdGxlPSJUb2dnbGUgeS1heGlzIGxvZyBzY2FsZSIKICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgIGljb249InNldHRpbmdzLW92ZXJzY2FuIgogICAgICAgIG9uLXRhcD0iX3Jlc2V0RG9tYWluIgogICAgICAgIHRpdGxlPSJGaXQgZG9tYWluIHRvIGRhdGEiCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICA8c3BhbiBzdHlsZT0iZmxleC1ncm93OiAxIj48L3NwYW4+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tzaG93RG93bmxvYWRMaW5rc11dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkb3dubG9hZC1saW5rcyI+CiAgICAgICAgICA8cGFwZXItZHJvcGRvd24tbWVudQogICAgICAgICAgICBuby1sYWJlbC1mbG9hdD0idHJ1ZSIKICAgICAgICAgICAgbGFiZWw9InNlcmllcyB0byBkb3dubG9hZCIKICAgICAgICAgICAgc2VsZWN0ZWQtaXRlbS1sYWJlbD0ie3tfZGF0YVNlcmllc05hbWVUb0Rvd25sb2FkfX0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxwYXBlci1saXN0Ym94IGNsYXNzPSJkcm9wZG93bi1jb250ZW50IiBzbG90PSJkcm9wZG93bi1jb250ZW50Ij4KICAgICAgICAgICAgICA8dGVtcGxhdGUKICAgICAgICAgICAgICAgIGlzPSJkb20tcmVwZWF0IgogICAgICAgICAgICAgICAgaXRlbXM9IltbX3Nlcmllc05hbWVzXV0iCiAgICAgICAgICAgICAgICBhcz0iZGF0YVNlcmllc05hbWUiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHBhcGVyLWl0ZW0gbm8tbGFiZWwtZmxvYXQ9InRydWUiCiAgICAgICAgICAgICAgICAgID5bW2RhdGFTZXJpZXNOYW1lXV08L3BhcGVyLWl0ZW0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3BhcGVyLWxpc3Rib3g+CiAgICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgICAgICA8YQogICAgICAgICAgICBkb3dubG9hZD0iW1tfZGF0YVNlcmllc05hbWVUb0Rvd25sb2FkXV0uY3N2IgogICAgICAgICAgICBocmVmPSJbW19jc3ZVcmwoX25hbWVUb0RhdGFTZXJpZXMsIF9kYXRhU2VyaWVzTmFtZVRvRG93bmxvYWQpXV0iCiAgICAgICAgICAgID5DU1Y8L2EKICAgICAgICAgID4KICAgICAgICAgIDxhCiAgICAgICAgICAgIGRvd25sb2FkPSJbW19kYXRhU2VyaWVzTmFtZVRvRG93bmxvYWRdXS5qc29uIgogICAgICAgICAgICBocmVmPSJbW19qc29uVXJsKF9uYW1lVG9EYXRhU2VyaWVzLCBfZGF0YVNlcmllc05hbWVUb0Rvd25sb2FkKV1dIgogICAgICAgICAgICA+SlNPTjwvYQogICAgICAgICAgPgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgPC9kaXY+CgogICAgPCEtLSBoZXJlIC0tPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19taXNzaW5nVGFncy5sZW5ndGhdXSI+CiAgICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNpYmxlLWxpc3QtdGl0bGUiPgogICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgaWNvbj0iW1tfZ2V0VG9nZ2xlQ29sbGFwc2libGVJY29uKF9taXNzaW5nVGFnc0NvbGxhcHNpYmxlT3BlbmVkKV1dIgogICAgICAgICAgb24tY2xpY2s9Il90b2dnbGVNaXNzaW5nVGFnc0NvbGxhcHNpYmxlT3BlbiIKICAgICAgICAgIGNsYXNzPSJ0b2dnbGUtY29sbGFwc2libGUtYnV0dG9uIgogICAgICAgID4KICAgICAgICA8L3BhcGVyLWljb24tYnV0dG9uPgogICAgICAgIDxzcGFuIGNsYXNzPSJjb2xsYXBzaWJsZS10aXRsZS10ZXh0Ij4KICAgICAgICAgIDxpcm9uLWljb24gaWNvbj0iaWNvbnM6ZXJyb3IiPjwvaXJvbi1pY29uPiBNaXNzaW5nIFRhZ3MKICAgICAgICA8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8aXJvbi1jb2xsYXBzZSBvcGVuZWQ9IltbX21pc3NpbmdUYWdzQ29sbGFwc2libGVPcGVuZWRdXSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3ItY29udGVudCI+CiAgICAgICAgICA8aXJvbi1pY29uIGNsYXNzPSJlcnJvci1pY29uIiBpY29uPSJpY29uczplcnJvciI+PC9pcm9uLWljb24+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19taXNzaW5nVGFnc11dIiBhcz0ibWlzc2luZ0VudHJ5Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWlzc2luZy10YWdzLWZvci1ydW4tY29udGFpbmVyIj4KICAgICAgICAgICAgICBSdW4gIltbbWlzc2luZ0VudHJ5LnJ1bl1dIiBsYWNrcyBkYXRhIGZvciB0YWdzCiAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPHRlbXBsYXRlCiAgICAgICAgICAgICAgICAgIGlzPSJkb20tcmVwZWF0IgogICAgICAgICAgICAgICAgICBpdGVtcz0iW1ttaXNzaW5nRW50cnkudGFnc11dIgogICAgICAgICAgICAgICAgICBhcz0idGFnIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8bGk+W1t0YWddXTwvbGk+CiAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9pcm9uLWNvbGxhcHNlPgogICAgPC90ZW1wbGF0ZT4KCiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3RhZ0ZpbHRlckludmFsaWRdXSI+CiAgICAgIDxkaXYgY2xhc3M9ImVycm9yLWNvbnRlbnQiPgogICAgICAgIDxpcm9uLWljb24gY2xhc3M9ImVycm9yLWljb24iIGljb249Imljb25zOmVycm9yIj48L2lyb24taWNvbj4KICAgICAgICBUaGlzIHJlZ3VsYXIgZXhwcmVzaW9uIGlzIGludmFsaWQ6PGJyIC8+CiAgICAgICAgPHNwYW4gY2xhc3M9ImludmFsaWQtcmVnZXgiPltbX3RhZ0ZpbHRlcl1dPC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvdGVtcGxhdGU+CgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19zdGVwc01pc21hdGNoXV0iPgogICAgICA8ZGl2IGNsYXNzPSJlcnJvci1jb250ZW50Ij4KICAgICAgICA8aXJvbi1pY29uIGNsYXNzPSJlcnJvci1pY29uIiBpY29uPSJpY29uczplcnJvciI+PC9pcm9uLWljb24+CiAgICAgICAgVGhlIHN0ZXBzIGZvciB2YWx1ZSwgbG93ZXIsIGFuZCB1cHBlciB0YWdzIGRvIG5vdCBtYXRjaDoKICAgICAgICA8dWw+CiAgICAgICAgICA8bGk+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWctbmFtZSI+W1tfc3RlcHNNaXNtYXRjaC5zZXJpZXNPYmplY3QudmFsdWVdXTwvc3Bhbj46CiAgICAgICAgICAgIFtbX3NlcGFyYXRlV2l0aENvbW1hcyhfc3RlcHNNaXNtYXRjaC52YWx1ZVN0ZXBzKV1dCiAgICAgICAgICA8L2xpPgogICAgICAgICAgPGxpPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFnLW5hbWUiPltbX3N0ZXBzTWlzbWF0Y2guc2VyaWVzT2JqZWN0Lmxvd2VyXV08L3NwYW4+OgogICAgICAgICAgICBbW19zZXBhcmF0ZVdpdGhDb21tYXMoX3N0ZXBzTWlzbWF0Y2gubG93ZXJTdGVwcyldXQogICAgICAgICAgPC9saT4KICAgICAgICAgIDxsaT4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhZy1uYW1lIj5bW19zdGVwc01pc21hdGNoLnNlcmllc09iamVjdC51cHBlcl1dPC9zcGFuPjoKICAgICAgICAgICAgW1tfc2VwYXJhdGVXaXRoQ29tbWFzKF9zdGVwc01pc21hdGNoLnVwcGVyU3RlcHMpXV0KICAgICAgICAgIDwvbGk+CiAgICAgICAgPC91bD4KICAgICAgPC9kaXY+CiAgICA8L3RlbXBsYXRlPgoKICAgIDxkaXYgaWQ9Im1hdGNoZXMtY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2libGUtbGlzdC10aXRsZSI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19zZXJpZXNOYW1lcy5sZW5ndGhdXSI+CiAgICAgICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICAgICAgaWNvbj0iW1tfZ2V0VG9nZ2xlQ29sbGFwc2libGVJY29uKF9tYXRjaGVzTGlzdE9wZW5lZCldXSIKICAgICAgICAgICAgb24tY2xpY2s9Il90b2dnbGVNYXRjaGVzT3BlbiIKICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS1tYXRjaGVzLWJ1dHRvbiIKICAgICAgICAgID4KICAgICAgICAgIDwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgICAgPC90ZW1wbGF0ZT4KCiAgICAgICAgPHNwYW4gY2xhc3M9ImNvbGxhcHNpYmxlLXRpdGxlLXRleHQiPgogICAgICAgICAgTWF0Y2hlcyAoW1tfc2VyaWVzTmFtZXMubGVuZ3RoXV0pCiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19zZXJpZXNOYW1lcy5sZW5ndGhdXSI+CiAgICAgICAgPGlyb24tY29sbGFwc2Ugb3BlbmVkPSJbW19tYXRjaGVzTGlzdE9wZW5lZF1dIj4KICAgICAgICAgIDxkaXYgaWQ9Im1hdGNoZXMtbGlzdCI+CiAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgIGlzPSJkb20tcmVwZWF0IgogICAgICAgICAgICAgIGl0ZW1zPSJbW19zZXJpZXNOYW1lc11dIgogICAgICAgICAgICAgIGFzPSJzZXJpZXNOYW1lIgogICAgICAgICAgICAgIGlkPSJtYXRjaC1saXN0LXJlcGVhdCIKICAgICAgICAgICAgICBvbi1kb20tY2hhbmdlPSJfbWF0Y2hMaXN0RW50cnlDb2xvclVwZGF0ZWQiCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXRjaC1saXN0LWVudHJ5Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtYXRjaC1lbnRyeS1zeW1ib2wiPgogICAgICAgICAgICAgICAgICBbW19kZXRlcm1pbmVTeW1ib2woX25hbWVUb0RhdGFTZXJpZXMsIHNlcmllc05hbWUpXV0KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIFtbc2VyaWVzTmFtZV1dCiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2lyb24tY29sbGFwc2U+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L2Rpdj4KCiAgICA8c3R5bGUgaW5jbHVkZT0idGYtY3VzdG9tLXNjYWxhci1jYXJkLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICAuZXJyb3ItY29udGVudCB7CiAgICAgICAgYmFja2dyb3VuZDogI2YwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgbWFyZ2luOiAxMHB4IDAgMCAwOwogICAgICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgIH0KCiAgICAgIC5lcnJvci1pY29uIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmaWxsOiAjZmZmOwogICAgICAgIG1hcmdpbjogMCBhdXRvIDVweCBhdXRvOwogICAgICB9CgogICAgICAuaW52YWxpZC1yZWdleCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgIH0KCiAgICAgIC5lcnJvci1jb250ZW50IHVsIHsKICAgICAgICBtYXJnaW46IDFweCAwIDAgMDsKICAgICAgICBwYWRkaW5nOiAwIDAgMCAxOXB4OwogICAgICB9CgogICAgICAudGFnLW5hbWUgewogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICB9CgogICAgICAuY29sbGFwc2libGUtbGlzdC10aXRsZSB7CiAgICAgICAgbWFyZ2luOiAxMHB4IDAgNXB4IDA7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzaWJsZS10aXRsZS10ZXh0IHsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICAjbWF0Y2hlcy1saXN0IHsKICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CgogICAgICAubWF0Y2gtbGlzdC1lbnRyeSB7CiAgICAgICAgbWFyZ2luOiAwIDAgNXB4IDA7CiAgICAgIH0KCiAgICAgIC5tYXRjaC1lbnRyeS1zeW1ib2wgewogICAgICAgIGZvbnQtZmFtaWx5OiBhcmlhbCwgc2Fucy1zZXJpZjsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgIH0KCiAgICAgIC5taXNzaW5nLXRhZ3MtZm9yLXJ1bi1jb250YWluZXIgewogICAgICAgIG1hcmdpbjogOHB4IDAgMCAwOwogICAgICB9CiAgICA8L3N0eWxlPgogIGA7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLEpyLnByb3RvdHlwZSwicnVucyIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxKci5wcm90b3R5cGUsInhUeXBlIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSnIucHJvdG90eXBlLCJhY3RpdmUiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sSnIucHJvdG90eXBlLCJ0aXRsZSIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sSnIucHJvdG90eXBlLCJtYXJnaW5DaGFydFNlcmllcyIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLEpyLnByb3RvdHlwZSwiaWdub3JlWU91dGxpZXJzIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLEFlKV0sSnIucHJvdG90eXBlLCJyZXF1ZXN0TWFuYWdlciIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLEpyLnByb3RvdHlwZSwic2hvd0Rvd25sb2FkTGlua3MiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSnIucHJvdG90eXBlLCJ0YWdNZXRhZGF0YSIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxKci5wcm90b3R5cGUsInRvb2x0aXBTb3J0aW5nTWV0aG9kIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLEpyLnByb3RvdHlwZSwiX2NvbG9yU2NhbGUiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxKci5wcm90b3R5cGUsIl90YWdGaWx0ZXJJbnZhbGlkIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLEpyLnByb3RvdHlwZSwiX25hbWVUb0RhdGFTZXJpZXMiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSnIucHJvdG90eXBlLCJfZXhwYW5kZWQiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxKci5wcm90b3R5cGUsIl9sb2dTY2FsZUFjdGl2ZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLEpyLnByb3RvdHlwZSwiX3JlcXVlc3REYXRhIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLEpyLnByb3RvdHlwZSwiX3J1blRvTmV4dEF2YWlsYWJsZVN5bWJvbEluZGV4Iix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSnIucHJvdG90eXBlLCJfbWF0Y2hlc0xpc3RPcGVuZWQiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSnIucHJvdG90eXBlLCJfZmlsbEFyZWEiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLEpyLnByb3RvdHlwZSwiX3Rvb2x0aXBDb2x1bW5zIix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSxKci5wcm90b3R5cGUsIl9taXNzaW5nVGFncyIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLEpyLnByb3RvdHlwZSwiX21pc3NpbmdUYWdzQ29sbGFwc2libGVPcGVuZWQiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSnIucHJvdG90eXBlLCJfc3RlcHNNaXNtYXRjaCIsdm9pZCAwKTtFKFtCdCgiX25hbWVUb0RhdGFTZXJpZXMiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEpyLnByb3RvdHlwZSwiX3VwZGF0ZUNoYXJ0IixudWxsKTtFKFtSdCgiX25hbWVUb0RhdGFTZXJpZXMiLCJydW5zIiksdygiZGVzaWduOnR5cGUiLE9iamVjdCksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSnIucHJvdG90eXBlLCJfc2VyaWVzTmFtZXMiLG51bGwpO0UoW0J0KCJfdGFnRmlsdGVyIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxKci5wcm90b3R5cGUsIl9yZWZyZXNoRGF0YVNlcmllcyIsbnVsbCk7RShbUnQoIm1hcmdpbkNoYXJ0U2VyaWVzIiksdygiZGVzaWduOnR5cGUiLFN0cmluZyksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSnIucHJvdG90eXBlLCJfdGFnRmlsdGVyIixudWxsKTtFKFtSdCgidGl0bGUiKSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxKci5wcm90b3R5cGUsIl90aXRsZURpc3BsYXlTdHJpbmciLG51bGwpO0pyPUUoW3l0KCJ0Zi1jdXN0b20tc2NhbGFyLW1hcmdpbi1jaGFydC1jYXJkIildLEpyKTt2YXIgYTA9RWUoT2UoKSwxKTt2YXIgUkI9e307WnMoUkIse0Jhc2VTdG9yZTooKT0+d3AsQ2FuY2VsbGVyOigpPT5hbixFbnZpcm9ubWVudFN0b3JlOigpPT5WOSxFeHBlcmltZW50c1N0b3JlOigpPT5yUixIdHRwTWV0aG9kVHlwZTooKT0+UG0sSW52YWxpZFJlcXVlc3RPcHRpb25zRXJyb3I6KCk9PlZ4LExpc3RlbktleTooKT0+SDksUmVxdWVzdENhbmNlbGxhdGlvbkVycm9yOigpPT5jOSxSZXF1ZXN0TWFuYWdlcjooKT0+QWUsUmVxdWVzdE5ldHdvcmtFcnJvcjooKT0+dUUsUmVxdWVzdE9wdGlvbnM6KCk9PlV4LFJ1bnNTdG9yZTooKT0+VTksVFlQRVM6KCk9Pk94ZSxhZGRQYXJhbXM6KCk9Pk1pLGNyZWF0ZVJvdXRlcjooKT0+Umd0LGNyZWF0ZVNlYXJjaFBhcmFtOigpPT5OZ3QsZW52aXJvbm1lbnRTdG9yZTooKT0+aWIsZXhwZXJpbWVudHNTdG9yZTooKT0+blIsZmlsdGVyVGFnczooKT0+RnhlLGdldFJvdXRlcjooKT0+X2UsZ2V0UnVuc05hbWVkOigpPT56eGUsZ2V0VGFnczooKT0+JGkscnVuc1N0b3JlOigpPT5TcH0pO3ZhciBFbj1jbGFzcyBleHRlbmRzIEd0KG10KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5hY3RpdmU9ITAsdGhpcy5fY29sb3JTY2FsZT1uZXcgWXYoe3NjYWxlOmZufSksdGhpcy5fbmFtZVRvRGF0YVNlcmllcz17fSx0aGlzLl9leHBhbmRlZD0hMSx0aGlzLl9yZXF1ZXN0RGF0YT0odCxyLG4pPT57bGV0IG89X2UoKS5wbHVnaW5Sb3V0ZSgiY3VzdG9tX3NjYWxhcnMiLCIvc2NhbGFycyIpO1Byb21pc2UuYWxsKHQubWFwKGE9PntsZXQgcz1hLGw9dGhpcy5fdGFnRmlsdGVyLGM9TWkobyx7dGFnOmwscnVuOnN9KTtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KGMpLnRoZW4odT0+dm9pZCByKHtpdGVtOmEsZGF0YTp1fSkpfSkpLmZpbmFsbHkoKCk9PnZvaWQgbigpKX0sdGhpcy5fcnVuVG9OZXh0QXZhaWxhYmxlU3ltYm9sSW5kZXg9e30sdGhpcy5fbWF0Y2hlc0xpc3RPcGVuZWQ9ITF9cmVsb2FkKCl7dGhpcy4kLmxvYWRlci5yZWxvYWQoKX1yZWRyYXcoKXt0aGlzLiQubG9hZGVyLnJlZHJhdygpfV90b2dnbGVFeHBhbmRlZCh0KXt0aGlzLnNldCgiX2V4cGFuZGVkIiwhdGhpcy5fZXhwYW5kZWQpLHRoaXMucmVkcmF3KCl9X3RvZ2dsZUxvZ1NjYWxlKCl7dGhpcy5zZXQoIl9sb2dTY2FsZUFjdGl2ZSIsIXRoaXMuX2xvZ1NjYWxlQWN0aXZlKX1fcmVzZXREb21haW4oKXtsZXQgdD10aGlzLiQubG9hZGVyO3QmJnQucmVzZXREb21haW4oKX1fY3N2VXJsKHQscil7aWYoIXIpcmV0dXJuIiI7bGV0IG49dGhpcy5fZG93bmxvYWREYXRhVXJsKHQscik7cmV0dXJuIE1pKG4se2Zvcm1hdDoiY3N2In0pfV9qc29uVXJsKHQscil7aWYoIXIpcmV0dXJuIiI7bGV0IG49dGhpcy5fZG93bmxvYWREYXRhVXJsKHQscik7cmV0dXJuIE1pKG4se2Zvcm1hdDoianNvbiJ9KX1fZG93bmxvYWREYXRhVXJsKHQscil7bGV0IG49dFtyXSxpPW5ldyBVUkxTZWFyY2hQYXJhbXMoe3RhZzpuLmdldFRhZygpLHJ1bjpuLmdldFJ1bigpfSk7cmV0dXJuIF9lKCkucGx1Z2luUm91dGVGb3JTcmMoImN1c3RvbV9zY2FsYXJzIiwiL2Rvd25sb2FkX2RhdGEiLGkpfV9jcmVhdGVQcm9jZXNzRGF0YUZ1bmN0aW9uKCl7cmV0dXJuKHQscixuKT0+e2lmKG4ucmVnZXhfdmFsaWQpe2xldCBpPWEwLmNsb25lKHRoaXMuX25hbWVUb0RhdGFTZXJpZXMpO2EwLmZvck93bihuLnRhZ190b19ldmVudHMsKG8sYSk9PntsZXQgcz1vLm1hcCh1PT4oe3dhbGxfdGltZTpuZXcgRGF0ZSh1WzBdKjFlMyksc3RlcDp1WzFdLHNjYWxhcjp1WzJdfSkpLGw9a0IocixhKSxjPWlbbF07aWYoYyljLnNldERhdGEocyk7ZWxzZXthMC5pc1VuZGVmaW5lZCh0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleFtyXSkmJih0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleFtyXT0wKTtsZXQgdT1SU1t0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleFtyXV0saD1uZXcgT1MocixhLGwscyx1KTtpW2xdPWg7bGV0IGY9UlMubGVuZ3RoO3RoaXMuX3J1blRvTmV4dEF2YWlsYWJsZVN5bWJvbEluZGV4W3JdPSh0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleFtyXSsxKSVmfX0pLHRoaXMuc2V0KCJfbmFtZVRvRGF0YVNlcmllcyIsaSl9fX1fdXBkYXRlQ2hhcnQoKXt2YXIgdD10aGlzLl9uYW1lVG9EYXRhU2VyaWVzO09iamVjdC5lbnRyaWVzKHQpLmZvckVhY2goKFtyLG5dKT0+e3RoaXMuJC5sb2FkZXIuc2V0U2VyaWVzRGF0YShyLG4uZ2V0RGF0YSgpKX0pLHRoaXMuJC5sb2FkZXIuY29tbWl0Q2hhbmdlcygpfV9jb21wdXRlU2VsZWN0ZWRSdW5zU2V0KHQpe2xldCByPXt9O3JldHVybiBhMC5mb3JFYWNoKHQsbj0+e3Jbbl09MX0pLHJ9Z2V0IF9zZXJpZXNOYW1lcygpe2xldCB0PW5ldyBTZXQodGhpcy5ydW5zKTtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy5fbmFtZVRvRGF0YVNlcmllcykuZmlsdGVyKChbcixuXSk9PnQuaGFzKG4ucnVuKSkubWFwKChbcl0pPT5yKX1fZGV0ZXJtaW5lQ29sb3IodCxyKXtyZXR1cm4gdC5zY2FsZShyKX1fcmVmcmVzaERhdGFTZXJpZXMoKXt2YXIgdD10aGlzLl90YWdGaWx0ZXI7dGhpcy5zZXQoIl9uYW1lVG9EYXRhU2VyaWVzIix7fSl9X2NyZWF0ZVN5bWJvbEZ1bmN0aW9uKCl7cmV0dXJuIHQ9PnRoaXMuX25hbWVUb0RhdGFTZXJpZXNbdF0uZ2V0U3ltYm9sKCkubWV0aG9kKCl9X2RldGVybWluZVN5bWJvbCh0LHIpe3JldHVybiB0W3JdLmdldFN5bWJvbCgpLmNoYXJhY3Rlcn1nZXQgX3RhZ0ZpbHRlcigpe3ZhciB0PXRoaXMudGFnUmVnZXhlcztyZXR1cm4gdC5sZW5ndGg9PT0xP3RbMF06dC5tYXAocj0+IigiK3IrIikiKS5qb2luKCJ8Iil9X2dldFRvZ2dsZU1hdGNoZXNJY29uKHQpe3JldHVybiB0PyJleHBhbmQtbGVzcyI6ImV4cGFuZC1tb3JlIn1fdG9nZ2xlTWF0Y2hlc09wZW4oKXt0aGlzLnNldCgiX21hdGNoZXNMaXN0T3BlbmVkIiwhdGhpcy5fbWF0Y2hlc0xpc3RPcGVuZWQpfWdldCBfdGl0bGVEaXNwbGF5U3RyaW5nKCl7dmFyIHQ9dGhpcy50aXRsZTtyZXR1cm4gdHx8InVudGl0bGVkIn1fbWF0Y2hMaXN0RW50cnlDb2xvclVwZGF0ZWQodCl7dmFyIG47bGV0IHI9dGhpcy4kJCgiI21hdGNoLWxpc3QtcmVwZWF0Iik7IXJ8fChuPXRoaXMucm9vdCk9PW51bGx8fG4ucXVlcnlTZWxlY3RvckFsbCgiLm1hdGNoLWxpc3QtZW50cnkiKS5mb3JFYWNoKGk9PntsZXQgbz1yLml0ZW1Gb3JFbGVtZW50KGkpO2kuc3R5bGUuY29sb3I9dGhpcy5fZGV0ZXJtaW5lQ29sb3IodGhpcy5fY29sb3JTY2FsZSxvKX0pfX07RW4udGVtcGxhdGU9UWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcgZGlzcGxheS1uYW1lPSJbW190aXRsZURpc3BsYXlTdHJpbmddXSI+PC90Zi1jYXJkLWhlYWRpbmc+CiAgICA8ZGl2IGlkPSJ0Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyLWNvbnRhaW5lciI+CiAgICAgIDx0Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyCiAgICAgICAgaWQ9ImxvYWRlciIKICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgY29sb3Itc2NhbGU9IltbX2NvbG9yU2NhbGVdXSIKICAgICAgICBkYXRhLXNlcmllcz0iW1tfc2VyaWVzTmFtZXNdXSIKICAgICAgICBpZ25vcmUteS1vdXRsaWVycz0iW1tpZ25vcmVZT3V0bGllcnNdXSIKICAgICAgICBsb2FkLWtleT0iW1tfdGFnRmlsdGVyXV0iCiAgICAgICAgZGF0YS10by1sb2FkPSJbW3J1bnNdXSIKICAgICAgICByZXF1ZXN0LWRhdGE9IltbX3JlcXVlc3REYXRhXV0iCiAgICAgICAgbG9nLXNjYWxlLWFjdGl2ZT0iW1tfbG9nU2NhbGVBY3RpdmVdXSIKICAgICAgICBsb2FkLWRhdGEtY2FsbGJhY2s9IltbX2NyZWF0ZVByb2Nlc3NEYXRhRnVuY3Rpb24oKV1dIgogICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tyZXF1ZXN0TWFuYWdlcl1dIgogICAgICAgIHNtb290aGluZy1lbmFibGVkPSJbW3Ntb290aGluZ0VuYWJsZWRdXSIKICAgICAgICBzbW9vdGhpbmctd2VpZ2h0PSJbW3Ntb290aGluZ1dlaWdodF1dIgogICAgICAgIHN5bWJvbC1mdW5jdGlvbj0iW1tfY3JlYXRlU3ltYm9sRnVuY3Rpb24oKV1dIgogICAgICAgIHRvb2x0aXAtc29ydGluZy1tZXRob2Q9IltbdG9vbHRpcFNvcnRpbmdNZXRob2RdXSIKICAgICAgICB4LXR5cGU9IltbeFR5cGVdXSIKICAgICAgPgogICAgICA8L3RmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXI+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9ImJ1dHRvbnMiPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBzZWxlY3RlZCQ9IltbX2V4cGFuZGVkXV0iCiAgICAgICAgaWNvbj0iZnVsbHNjcmVlbiIKICAgICAgICBvbi10YXA9Il90b2dnbGVFeHBhbmRlZCIKICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgIHNlbGVjdGVkJD0iW1tfbG9nU2NhbGVBY3RpdmVdXSIKICAgICAgICBpY29uPSJsaW5lLXdlaWdodCIKICAgICAgICBvbi10YXA9Il90b2dnbGVMb2dTY2FsZSIKICAgICAgICB0aXRsZT0iVG9nZ2xlIHktYXhpcyBsb2cgc2NhbGUiCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBpY29uPSJzZXR0aW5ncy1vdmVyc2NhbiIKICAgICAgICBvbi10YXA9Il9yZXNldERvbWFpbiIKICAgICAgICB0aXRsZT0iRml0IGRvbWFpbiB0byBkYXRhIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgPHNwYW4gc3R5bGU9ImZsZXgtZ3JvdzogMSI+PC9zcGFuPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9Iltbc2hvd0Rvd25sb2FkTGlua3NdXSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZG93bmxvYWQtbGlua3MiPgogICAgICAgICAgPHBhcGVyLWRyb3Bkb3duLW1lbnUKICAgICAgICAgICAgbm8tbGFiZWwtZmxvYXQ9InRydWUiCiAgICAgICAgICAgIGxhYmVsPSJzZXJpZXMgdG8gZG93bmxvYWQiCiAgICAgICAgICAgIHNlbGVjdGVkLWl0ZW0tbGFiZWw9Int7X2RhdGFTZXJpZXNOYW1lVG9Eb3dubG9hZH19IgogICAgICAgICAgPgogICAgICAgICAgICA8cGFwZXItbGlzdGJveCBjbGFzcz0iZHJvcGRvd24tY29udGVudCIgc2xvdD0iZHJvcGRvd24tY29udGVudCI+CiAgICAgICAgICAgICAgPHRlbXBsYXRlCiAgICAgICAgICAgICAgICBpcz0iZG9tLXJlcGVhdCIKICAgICAgICAgICAgICAgIGl0ZW1zPSJbW19zZXJpZXNOYW1lc11dIgogICAgICAgICAgICAgICAgYXM9ImRhdGFTZXJpZXNOYW1lIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtIG5vLWxhYmVsLWZsb2F0PSJ0cnVlIgogICAgICAgICAgICAgICAgICA+W1tkYXRhU2VyaWVzTmFtZV1dPC9wYXBlci1pdGVtCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC9wYXBlci1saXN0Ym94PgogICAgICAgICAgPC9wYXBlci1kcm9wZG93bi1tZW51PgogICAgICAgICAgPGEKICAgICAgICAgICAgZG93bmxvYWQ9IltbX2RhdGFTZXJpZXNOYW1lVG9Eb3dubG9hZF1dLmNzdiIKICAgICAgICAgICAgaHJlZj0iW1tfY3N2VXJsKF9uYW1lVG9EYXRhU2VyaWVzLCBfZGF0YVNlcmllc05hbWVUb0Rvd25sb2FkKV1dIgogICAgICAgICAgICA+Q1NWPC9hCiAgICAgICAgICA+CiAgICAgICAgICA8YQogICAgICAgICAgICBkb3dubG9hZD0iW1tfZGF0YVNlcmllc05hbWVUb0Rvd25sb2FkXV0uanNvbiIKICAgICAgICAgICAgaHJlZj0iW1tfanNvblVybChfbmFtZVRvRGF0YVNlcmllcywgX2RhdGFTZXJpZXNOYW1lVG9Eb3dubG9hZCldXSIKICAgICAgICAgICAgPkpTT048L2EKICAgICAgICAgID4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0ibWF0Y2hlcy1jb250YWluZXIiPgogICAgICA8ZGl2IGlkPSJtYXRjaGVzLWxpc3QtdGl0bGUiPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfc2VyaWVzTmFtZXMubGVuZ3RoXV0iPgogICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgICAgIGljb249IltbX2dldFRvZ2dsZU1hdGNoZXNJY29uKF9tYXRjaGVzTGlzdE9wZW5lZCldXSIKICAgICAgICAgICAgb24tY2xpY2s9Il90b2dnbGVNYXRjaGVzT3BlbiIKICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS1tYXRjaGVzLWJ1dHRvbiIKICAgICAgICAgID4KICAgICAgICAgIDwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgICAgPC90ZW1wbGF0ZT4KCiAgICAgICAgPHNwYW4gY2xhc3M9Im1hdGNoZXMtdGV4dCI+IE1hdGNoZXMgKFtbX3Nlcmllc05hbWVzLmxlbmd0aF1dKSA8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3Nlcmllc05hbWVzLmxlbmd0aF1dIj4KICAgICAgICA8aXJvbi1jb2xsYXBzZSBvcGVuZWQ9IltbX21hdGNoZXNMaXN0T3BlbmVkXV0iPgogICAgICAgICAgPGRpdiBpZD0ibWF0Y2hlcy1saXN0Ij4KICAgICAgICAgICAgPHRlbXBsYXRlCiAgICAgICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICAgICAgaXRlbXM9IltbX3Nlcmllc05hbWVzXV0iCiAgICAgICAgICAgICAgYXM9InNlcmllc05hbWUiCiAgICAgICAgICAgICAgaWQ9Im1hdGNoLWxpc3QtcmVwZWF0IgogICAgICAgICAgICAgIG9uLWRvbS1jaGFuZ2U9Il9tYXRjaExpc3RFbnRyeUNvbG9yVXBkYXRlZCIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hdGNoLWxpc3QtZW50cnkiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1hdGNoLWVudHJ5LXN5bWJvbCI+CiAgICAgICAgICAgICAgICAgIFtbX2RldGVybWluZVN5bWJvbChfbmFtZVRvRGF0YVNlcmllcywgc2VyaWVzTmFtZSldXQogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgW1tzZXJpZXNOYW1lXV0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvaXJvbi1jb2xsYXBzZT4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvZGl2PgoKICAgIDxzdHlsZSBpbmNsdWRlPSJ0Zi1jdXN0b20tc2NhbGFyLWNhcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgICNtYXRjaGVzLWxpc3QtdGl0bGUgewogICAgICAgIG1hcmdpbjogMTBweCAwIDVweCAwOwogICAgICB9CgogICAgICAjbWF0Y2hlcy1saXN0IHsKICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CgogICAgICAubWF0Y2gtbGlzdC1lbnRyeSB7CiAgICAgICAgbWFyZ2luOiAwIDAgNXB4IDA7CiAgICAgIH0KCiAgICAgIC5tYXRjaC1lbnRyeS1zeW1ib2wgewogICAgICAgIGZvbnQtZmFtaWx5OiBhcmlhbCwgc2Fucy1zZXJpZjsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgIH0KCiAgICAgIC5tYXRjaGVzLXRleHQgewogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYDtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sRW4ucHJvdG90eXBlLCJydW5zIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLEVuLnByb3RvdHlwZSwieFR5cGUiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxFbi5wcm90b3R5cGUsImFjdGl2ZSIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxFbi5wcm90b3R5cGUsInRpdGxlIix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSxFbi5wcm90b3R5cGUsInRhZ1JlZ2V4ZXMiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxFbi5wcm90b3R5cGUsImlnbm9yZVlPdXRsaWVycyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixBZSldLEVuLnByb3RvdHlwZSwicmVxdWVzdE1hbmFnZXIiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxFbi5wcm90b3R5cGUsInNob3dEb3dubG9hZExpbmtzIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sRW4ucHJvdG90eXBlLCJzbW9vdGhpbmdFbmFibGVkIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLEVuLnByb3RvdHlwZSwic21vb3RoaW5nV2VpZ2h0Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLEVuLnByb3RvdHlwZSwidGFnTWV0YWRhdGEiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sRW4ucHJvdG90eXBlLCJ0b29sdGlwU29ydGluZ01ldGhvZCIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixZdildLEVuLnByb3RvdHlwZSwiX2NvbG9yU2NhbGUiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sRW4ucHJvdG90eXBlLCJfbmFtZVRvRGF0YVNlcmllcyIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW4scmVmbGVjdFRvQXR0cmlidXRlOiEwfSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxFbi5wcm90b3R5cGUsIl9leHBhbmRlZCIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLEVuLnByb3RvdHlwZSwiX2xvZ1NjYWxlQWN0aXZlIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sRW4ucHJvdG90eXBlLCJfcmVxdWVzdERhdGEiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sRW4ucHJvdG90eXBlLCJfcnVuVG9OZXh0QXZhaWxhYmxlU3ltYm9sSW5kZXgiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxFbi5wcm90b3R5cGUsIl9tYXRjaGVzTGlzdE9wZW5lZCIsdm9pZCAwKTtFKFtCdCgiX25hbWVUb0RhdGFTZXJpZXMiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEVuLnByb3RvdHlwZSwiX3VwZGF0ZUNoYXJ0IixudWxsKTtFKFtSdCgiX25hbWVUb0RhdGFTZXJpZXMiLCJydW5zIiksdygiZGVzaWduOnR5cGUiLE9iamVjdCksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sRW4ucHJvdG90eXBlLCJfc2VyaWVzTmFtZXMiLG51bGwpO0UoW0J0KCJfdGFnRmlsdGVyIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxFbi5wcm90b3R5cGUsIl9yZWZyZXNoRGF0YVNlcmllcyIsbnVsbCk7RShbUnQoInRhZ1JlZ2V4ZXMiKSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxFbi5wcm90b3R5cGUsIl90YWdGaWx0ZXIiLG51bGwpO0UoW1J0KCJ0aXRsZSIpLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEVuLnByb3RvdHlwZSwiX3RpdGxlRGlzcGxheVN0cmluZyIsbnVsbCk7RW49RShbeXQoInRmLWN1c3RvbS1zY2FsYXItbXVsdGktbGluZS1jaGFydC1jYXJkIildLEVuKTt2YXIgam89Y2xhc3MgZXh0ZW5kcyBtdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fcmVxdWVzdE1hbmFnZXI9bmV3IEFlKDUwKSx0aGlzLl9jYW5jZWxsZXI9bmV3IGFuLHRoaXMuX3Nob3dEb3dubG9hZExpbmtzPXhwKCJfc2hvd0Rvd25sb2FkTGlua3MiLHtkZWZhdWx0VmFsdWU6ITEsdXNlTG9jYWxTdG9yYWdlOiEwfSkuY2FsbCh0aGlzKSx0aGlzLl9zbW9vdGhpbmdXZWlnaHQ9X0UoIl9zbW9vdGhpbmdXZWlnaHQiLHtkZWZhdWx0VmFsdWU6LjZ9KS5jYWxsKHRoaXMpLHRoaXMuX2lnbm9yZVlPdXRsaWVycz14cCgiX2lnbm9yZVlPdXRsaWVycyIse2RlZmF1bHRWYWx1ZTohMCx1c2VMb2NhbFN0b3JhZ2U6ITB9KS5jYWxsKHRoaXMpLHRoaXMuX3hUeXBlPSJzdGVwIix0aGlzLl9hY3RpdmU9ITAsdGhpcy5yZWxvYWRPblJlYWR5PSEwLHRoaXMuX3Nob3dEb3dubG9hZExpbmtzT2JzZXJ2ZXI9YnAoIl9zaG93RG93bmxvYWRMaW5rcyIse2RlZmF1bHRWYWx1ZTohMSx1c2VMb2NhbFN0b3JhZ2U6ITB9KSx0aGlzLl9zbW9vdGhpbmdXZWlnaHRPYnNlcnZlcj15RSgiX3Ntb290aGluZ1dlaWdodCIse2RlZmF1bHRWYWx1ZTouNn0pLHRoaXMuX2lnbm9yZVlPdXRsaWVyc09ic2VydmVyPWJwKCJfaWdub3JlWU91dGxpZXJzIix7ZGVmYXVsdFZhbHVlOiEwLHVzZUxvY2FsU3RvcmFnZTohMH0pfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9cmVsb2FkKCl7bGV0IHQ9X2UoKS5wbHVnaW5zTGlzdGluZygpLHI9dGhpcy5fY2FuY2VsbGVyLmNhbmNlbGxhYmxlKG49PntuLmNhbmNlbGxlZHx8KHRoaXMuc2V0KCJfZGF0YU5vdEZvdW5kIiwhbi52YWx1ZS5jdXN0b21fc2NhbGFycyksIXRoaXMuX2RhdGFOb3RGb3VuZCYmdGhpcy5fcmV0cmlldmVMYXlvdXRBbmREYXRhKCkpfSk7dGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKHIpfV9yZWxvYWRDaGFydHMoKXt2YXIgcjtsZXQgdD0ocj10aGlzLnJvb3QpPT1udWxsP3ZvaWQgMDpyLnF1ZXJ5U2VsZWN0b3JBbGwoInRmLWN1c3RvbS1zY2FsYXItbWFyZ2luLWNoYXJ0LWNhcmQsIHRmLWN1c3RvbS1zY2FsYXItbXVsdGktbGluZS1jaGFydC1jYXJkIik7dD09bnVsbHx8dC5mb3JFYWNoKG49PntuLnJlbG9hZCgpfSl9X3JldHJpZXZlTGF5b3V0QW5kRGF0YSgpe2xldCB0PV9lKCkucGx1Z2luUm91dGUoImN1c3RvbV9zY2FsYXJzIiwiL2xheW91dCIpLHI9dGhpcy5fY2FuY2VsbGVyLmNhbmNlbGxhYmxlKG49PntuLmNhbmNlbGxlZHx8KHRoaXMuc2V0KCJfbGF5b3V0IixuLnZhbHVlKSx0aGlzLl9kYXRhTm90Rm91bmR8fHRoaXMuX3JlbG9hZENoYXJ0cygpKX0pO3RoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodCkudGhlbihyKX1nZXQgX3Ntb290aGluZ0VuYWJsZWQoKXt2YXIgdD10aGlzLl9zbW9vdGhpbmdXZWlnaHQ7cmV0dXJuIHQ+MH1nZXQgX2NhdGVnb3JpZXMoKXt2YXIgdD10aGlzLl9sYXlvdXQ7aWYoIXQuY2F0ZWdvcnkpcmV0dXJuW107bGV0IHI9ITE7cmV0dXJuIHRoaXMuX29wZW5lZENhdGVnb3JpZXN8fChyPSEwLHRoaXMuX29wZW5lZENhdGVnb3JpZXM9e30pLHQuY2F0ZWdvcnkubWFwKGk9PihyJiYhaS5jbG9zZWQmJih0aGlzLl9vcGVuZWRDYXRlZ29yaWVzW2kudGl0bGVdPSEwKSx7bmFtZTppLnRpdGxlLGl0ZW1zOmkuY2hhcnQsbWV0YWRhdGE6e3R5cGU6RGEuUFJFRklYX0dST1VQLG9wZW5lZDohIXRoaXMuX29wZW5lZENhdGVnb3JpZXNbaS50aXRsZV19fSkpfV9jYXRlZ29yeU9wZW5lZFRvZ2dsZWQodCl7bGV0IHI9dC50YXJnZXQ7ci5vcGVuZWQ/dGhpcy5fb3BlbmVkQ2F0ZWdvcmllc1tyLmNhdGVnb3J5Lm5hbWVdPSEwOmRlbGV0ZSB0aGlzLl9vcGVuZWRDYXRlZ29yaWVzW3IuY2F0ZWdvcnkubmFtZV19fTtqby50ZW1wbGF0ZT1RYAogICAgPHRmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiIHNsb3Q9InNpZGViYXIiPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtaXRlbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94IGNoZWNrZWQ9Int7X3Nob3dEb3dubG9hZExpbmtzfX0iCiAgICAgICAgICAgICAgICA+U2hvdyBkYXRhIGRvd25sb2FkIGxpbmtzPC9wYXBlci1jaGVja2JveAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtaXRlbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94IGNoZWNrZWQ9Int7X2lnbm9yZVlPdXRsaWVyc319IgogICAgICAgICAgICAgICAgPklnbm9yZSBvdXRsaWVycyBpbiBjaGFydCBzY2FsaW5nPC9wYXBlci1jaGVja2JveAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgaWQ9InRvb2x0aXAtc29ydGluZyI+CiAgICAgICAgICAgICAgPGRpdiBpZD0idG9vbHRpcC1zb3J0aW5nLWxhYmVsIj5Ub29sdGlwIHNvcnRpbmcgbWV0aG9kOjwvZGl2PgogICAgICAgICAgICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgICAgICAgICAgICBuby1sYWJlbC1mbG9hdD0iIgogICAgICAgICAgICAgICAgc2VsZWN0ZWQtaXRlbS1sYWJlbD0ie3tfdG9vbHRpcFNvcnRpbmdNZXRob2R9fSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItbGlzdGJveAogICAgICAgICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24tY29udGVudCIKICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9IjAiCiAgICAgICAgICAgICAgICAgIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmRlZmF1bHQ8L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmRlc2NlbmRpbmc8L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmFzY2VuZGluZzwvcGFwZXItaXRlbT4KICAgICAgICAgICAgICAgICAgPHBhcGVyLWl0ZW0+bmVhcmVzdDwvcGFwZXItaXRlbT4KICAgICAgICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtc21vb3RoaW5nLWlucHV0CiAgICAgICAgICAgICAgd2VpZ2h0PSJ7e19zbW9vdGhpbmdXZWlnaHR9fSIKICAgICAgICAgICAgICBzdGVwPSIwLjAwMSIKICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgbWF4PSIxIgogICAgICAgICAgICA+PC90Zi1zbW9vdGhpbmctaW5wdXQ+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDx0Zi1vcHRpb24tc2VsZWN0b3IKICAgICAgICAgICAgICBpZD0ieC10eXBlLXNlbGVjdG9yIgogICAgICAgICAgICAgIG5hbWU9Ikhvcml6b250YWwgQXhpcyIKICAgICAgICAgICAgICBzZWxlY3RlZC1pZD0ie3tfeFR5cGV9fSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9InN0ZXAiPnN0ZXA8L3BhcGVyLWJ1dHRvbgogICAgICAgICAgICAgID48IS0tCiAgICAgICAgICAgIC0tPjxwYXBlci1idXR0b24gaWQ9InJlbGF0aXZlIj5yZWxhdGl2ZTwvcGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgPjwhLS0KICAgICAgICAgICAgLS0+PHBhcGVyLWJ1dHRvbiBpZD0id2FsbF90aW1lIj53YWxsPC9wYXBlci1idXR0b24+CiAgICAgICAgICAgIDwvdGYtb3B0aW9uLXNlbGVjdG9yPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIHJ1bnMtc2VsZWN0b3IiPgogICAgICAgICAgPHRmLXJ1bnMtc2VsZWN0b3Igc2VsZWN0ZWQtcnVucz0ie3tfc2VsZWN0ZWRSdW5zfX0iPgogICAgICAgICAgPC90Zi1ydW5zLXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2VudGVyIiBzbG90PSJjZW50ZXIiIGlkPSJjYXRlZ29yaWVzLWNvbnRhaW5lciI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuby1kYXRhLXdhcm5pbmciPgogICAgICAgICAgICA8aDM+VGhlIGN1c3RvbSBzY2FsYXJzIGRhc2hib2FyZCBpcyBpbmFjdGl2ZS48L2gzPgogICAgICAgICAgICA8cD5Qcm9iYWJsZSBjYXVzZXM6PC9wPgogICAgICAgICAgICA8b2w+CiAgICAgICAgICAgICAgPGxpPllvdSBoYXZlbid0IGxhaWQgb3V0IHRoZSBkYXNoYm9hcmQuPC9saT4KICAgICAgICAgICAgICA8bGk+WW91IGhhdmVu4oCZdCB3cml0dGVuIGFueSBzY2FsYXIgZGF0YSB0byB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgIDwvb2w+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBUbyBsYXkgb3V0IHRoZSBkYXNoYm9hcmQsIHBhc3MgYSA8Y29kZT5MYXlvdXQ8L2NvZGU+IHByb3RvYnVmZmVyCiAgICAgICAgICAgICAgdG8gdGhlIDxjb2RlPnNldF9sYXlvdXQ8L2NvZGU+IG1ldGhvZC4gRm9yIGV4YW1wbGUsCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPHByZT4KZnJvbSB0ZW5zb3Jib2FyZCBpbXBvcnQgc3VtbWFyeQpmcm9tIHRlbnNvcmJvYXJkLnBsdWdpbnMuY3VzdG9tX3NjYWxhciBpbXBvcnQgbGF5b3V0X3BiMgouLi4KIyBUaGlzIGFjdGlvbiBkb2VzIG5vdCBoYXZlIHRvIGJlIHBlcmZvcm1lZCBhdCBldmVyeSBzdGVwLCBzbyB0aGUgYWN0aW9uIGlzIG5vdAojIHRha2VuIGNhcmUgb2YgYnkgYW4gb3AgaW4gdGhlIGdyYXBoLiBXZSBvbmx5IG5lZWQgdG8gc3BlY2lmeSB0aGUgbGF5b3V0IG9uY2UKIyAoaW5zdGVhZCBvZiBwZXIgc3RlcCkuCmxheW91dF9zdW1tYXJ5ID0gc3VtbWFyeV9saWIuY3VzdG9tX3NjYWxhcl9wYihsYXlvdXRfcGIyLkxheW91dCgKICBjYXRlZ29yeT1bCiAgICBsYXlvdXRfcGIyLkNhdGVnb3J5KAogICAgICB0aXRsZT0nbG9zc2VzJywKICAgICAgY2hhcnQ9WwogICAgICAgICAgbGF5b3V0X3BiMi5DaGFydCgKICAgICAgICAgICAgICB0aXRsZT0nbG9zc2VzJywKICAgICAgICAgICAgICBtdWx0aWxpbmU9bGF5b3V0X3BiMi5NdWx0aWxpbmVDaGFydENvbnRlbnQoCiAgICAgICAgICAgICAgICB0YWc9W3InbG9zcy4qJ10sCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICBsYXlvdXRfcGIyLkNoYXJ0KAogICAgICAgICAgICAgIHRpdGxlPSdiYXonLAogICAgICAgICAgICAgIG1hcmdpbj1sYXlvdXRfcGIyLk1hcmdpbkNoYXJ0Q29udGVudCgKICAgICAgICAgICAgICAgIHNlcmllcz1bCiAgICAgICAgICAgICAgICAgIGxheW91dF9wYjIuTWFyZ2luQ2hhcnRDb250ZW50LlNlcmllcygKICAgICAgICAgICAgICAgICAgICB2YWx1ZT0nbG9zcy9iYXovc2NhbGFyX3N1bW1hcnknLAogICAgICAgICAgICAgICAgICAgIGxvd2VyPSdiYXpfbG93ZXIvYmF6L3NjYWxhcl9zdW1tYXJ5JywKICAgICAgICAgICAgICAgICAgICB1cHBlcj0nYmF6X3VwcGVyL2Jhei9zY2FsYXJfc3VtbWFyeScpLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICApKSwKICAgICAgXSksCiAgICBsYXlvdXRfcGIyLkNhdGVnb3J5KAogICAgICB0aXRsZT0ndHJpZyBmdW5jdGlvbnMnLAogICAgICBjaGFydD1bCiAgICAgICAgICBsYXlvdXRfcGIyLkNoYXJ0KAogICAgICAgICAgICAgIHRpdGxlPSd3YXZlIHRyaWcgZnVuY3Rpb25zJywKICAgICAgICAgICAgICBtdWx0aWxpbmU9bGF5b3V0X3BiMi5NdWx0aWxpbmVDaGFydENvbnRlbnQoCiAgICAgICAgICAgICAgICB0YWc9W3IndHJpZ0Z1bmN0aW9ucy9jb3NpbmUnLCByJ3RyaWdGdW5jdGlvbnMvc2luZSddLAogICAgICAgICAgICAgICkpLAogICAgICAgICAgIyBUaGUgcmFuZ2Ugb2YgdGFuZ2VudCBpcyBkaWZmZXJlbnQuIExldCdzIGdpdmUgaXQgaXRzIG93biBjaGFydC4KICAgICAgICAgIGxheW91dF9wYjIuQ2hhcnQoCiAgICAgICAgICAgICAgdGl0bGU9J3RhbicsCiAgICAgICAgICAgICAgbXVsdGlsaW5lPWxheW91dF9wYjIuTXVsdGlsaW5lQ2hhcnRDb250ZW50KAogICAgICAgICAgICAgICAgdGFnPVtyJ3RyaWdGdW5jdGlvbnMvdGFuZ2VudCddLAogICAgICAgICAgICAgICkpLAogICAgICBdLAogICAgICAjIFRoaXMgY2F0ZWdvcnkgd2UgY2FyZSBsZXNzIGFib3V0LiBMZXQncyBtYWtlIGl0IGluaXRpYWxseSBjbG9zZWQuCiAgICAgIGNsb3NlZD1UcnVlKSwKICBdKSkKd3JpdGVyLmFkZF9zdW1tYXJ5KGxheW91dF9zdW1tYXJ5KQo8L3ByZQogICAgICAgICAgICA+CiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2NhdGVnb3JpZXNdXSIgYXM9ImNhdGVnb3J5Ij4KICAgICAgICAgICAgPHRmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3CiAgICAgICAgICAgICAgYXM9ImNoYXJ0IgogICAgICAgICAgICAgIGNhdGVnb3J5PSJbW2NhdGVnb3J5XV0iCiAgICAgICAgICAgICAgZGlzYWJsZS1wYWdpbmF0aW9uCiAgICAgICAgICAgICAgaW5pdGlhbC1vcGVuZWQ9IltbY2F0ZWdvcnkubWV0YWRhdGEub3BlbmVkXV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbY2hhcnQubXVsdGlsaW5lXV0iPgogICAgICAgICAgICAgICAgICA8dGYtY3VzdG9tLXNjYWxhci1tdWx0aS1saW5lLWNoYXJ0LWNhcmQKICAgICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC1tYW5hZ2VyPSJbW19yZXF1ZXN0TWFuYWdlcl1dIgogICAgICAgICAgICAgICAgICAgIHJ1bnM9IltbX3NlbGVjdGVkUnVuc11dIgogICAgICAgICAgICAgICAgICAgIHRpdGxlPSJbW2NoYXJ0LnRpdGxlXV0iCiAgICAgICAgICAgICAgICAgICAgeC10eXBlPSJbW194VHlwZV1dIgogICAgICAgICAgICAgICAgICAgIHNtb290aGluZy1lbmFibGVkPSJbW19zbW9vdGhpbmdFbmFibGVkXV0iCiAgICAgICAgICAgICAgICAgICAgc21vb3RoaW5nLXdlaWdodD0iW1tfc21vb3RoaW5nV2VpZ2h0XV0iCiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcC1zb3J0aW5nLW1ldGhvZD0iW1t0b29sdGlwU29ydGluZ01ldGhvZF1dIgogICAgICAgICAgICAgICAgICAgIGlnbm9yZS15LW91dGxpZXJzPSJbW19pZ25vcmVZT3V0bGllcnNdXSIKICAgICAgICAgICAgICAgICAgICBzaG93LWRvd25sb2FkLWxpbmtzPSJbW19zaG93RG93bmxvYWRMaW5rc11dIgogICAgICAgICAgICAgICAgICAgIHRhZy1yZWdleGVzPSJbW2NoYXJ0Lm11bHRpbGluZS50YWddXSIKICAgICAgICAgICAgICAgICAgPjwvdGYtY3VzdG9tLXNjYWxhci1tdWx0aS1saW5lLWNoYXJ0LWNhcmQ+CiAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2NoYXJ0Lm1hcmdpbl1dIj4KICAgICAgICAgICAgICAgICAgPHRmLWN1c3RvbS1zY2FsYXItbWFyZ2luLWNoYXJ0LWNhcmQKICAgICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC1tYW5hZ2VyPSJbW19yZXF1ZXN0TWFuYWdlcl1dIgogICAgICAgICAgICAgICAgICAgIHJ1bnM9IltbX3NlbGVjdGVkUnVuc11dIgogICAgICAgICAgICAgICAgICAgIHRpdGxlPSJbW2NoYXJ0LnRpdGxlXV0iCiAgICAgICAgICAgICAgICAgICAgeC10eXBlPSJbW194VHlwZV1dIgogICAgICAgICAgICAgICAgICAgIHRvb2x0aXAtc29ydGluZy1tZXRob2Q9IltbdG9vbHRpcFNvcnRpbmdNZXRob2RdXSIKICAgICAgICAgICAgICAgICAgICBpZ25vcmUteS1vdXRsaWVycz0iW1tfaWdub3JlWU91dGxpZXJzXV0iCiAgICAgICAgICAgICAgICAgICAgc2hvdy1kb3dubG9hZC1saW5rcz0iW1tfc2hvd0Rvd25sb2FkTGlua3NdXSIKICAgICAgICAgICAgICAgICAgICBtYXJnaW4tY2hhcnQtc2VyaWVzPSJbW2NoYXJ0Lm1hcmdpbi5zZXJpZXNdXSIKICAgICAgICAgICAgICAgICAgPjwvdGYtY3VzdG9tLXNjYWxhci1tYXJnaW4tY2hhcnQtY2FyZD4KICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC90Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldz4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICA8L3RmLWRhc2hib2FyZC1sYXlvdXQ+CgogICAgPHN0eWxlIGluY2x1ZGU9ImRhc2hib2FyZC1zdHlsZSI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgI3Rvb2x0aXAtc29ydGluZyB7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNXB4OwogICAgICB9CiAgICAgICN0b29sdGlwLXNvcnRpbmcgcGFwZXItZHJvcGRvd24tbWVudSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItZm9jdXMtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIHdpZHRoOiAxMDVweDsKICAgICAgfQogICAgICAubGluZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nLXRvcDogNXB4OwogICAgICB9CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CiAgICA8L3N0eWxlPgogIGA7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsQWUpXSxqby5wcm90b3R5cGUsIl9yZXF1ZXN0TWFuYWdlciIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixhbildLGpvLnByb3RvdHlwZSwiX2NhbmNlbGxlciIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sam8ucHJvdG90eXBlLCJfc2VsZWN0ZWRSdW5zIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbixub3RpZnk6ITAsb2JzZXJ2ZXI6Il9zaG93RG93bmxvYWRMaW5rc09ic2VydmVyIn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sam8ucHJvdG90eXBlLCJfc2hvd0Rvd25sb2FkTGlua3MiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwLG9ic2VydmVyOiJfc21vb3RoaW5nV2VpZ2h0T2JzZXJ2ZXIifSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLGpvLnByb3RvdHlwZSwiX3Ntb290aGluZ1dlaWdodCIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW4sb2JzZXJ2ZXI6Il9pZ25vcmVZT3V0bGllcnNPYnNlcnZlciJ9KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGpvLnByb3RvdHlwZSwiX2lnbm9yZVlPdXRsaWVycyIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxqby5wcm90b3R5cGUsIl94VHlwZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxqby5wcm90b3R5cGUsIl9sYXlvdXQiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxqby5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sam8ucHJvdG90eXBlLCJfb3BlbmVkQ2F0ZWdvcmllcyIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGpvLnByb3RvdHlwZSwiX2FjdGl2ZSIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGpvLnByb3RvdHlwZSwicmVsb2FkT25SZWFkeSIsdm9pZCAwKTtFKFtSdCgiX3Ntb290aGluZ1dlaWdodCIpLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxqby5wcm90b3R5cGUsIl9zbW9vdGhpbmdFbmFibGVkIixudWxsKTtFKFtSdCgiX2xheW91dCIpLHcoImRlc2lnbjp0eXBlIixBcnJheSksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sam8ucHJvdG90eXBlLCJfY2F0ZWdvcmllcyIsbnVsbCk7am89RShbeXQoInRmLWN1c3RvbS1zY2FsYXItZGFzaGJvYXJkIildLGpvKTt2YXIgREI9RWUoT2UoKSwxKTt2YXIgYXN0PUVlKE9lKCksMSksd2E9RWUoU2woKSwxKTt2YXIgTkI9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLnJ1bjJkYXRhc2V0cz17fSx0aGlzLmNvbG9yU2NhbGU9cix0aGlzLmJ1aWxkQ2hhcnQodCl9Z2V0RGF0YXNldCh0KXtyZXR1cm4gdGhpcy5ydW4yZGF0YXNldHNbdF09PT12b2lkIDAmJih0aGlzLnJ1bjJkYXRhc2V0c1t0XT1uZXcgd2EuRGF0YXNldChbXSx7cnVuOnR9KSksdGhpcy5ydW4yZGF0YXNldHNbdF19YnVpbGRDaGFydCh0KXt0aGlzLm91dGVyJiZ0aGlzLm91dGVyLmRlc3Ryb3koKTtsZXQgcj14Qih0KTt0aGlzLnhBY2Nlc3Nvcj1yLmFjY2Vzc29yLHRoaXMueFNjYWxlPXIuc2NhbGUsdGhpcy54QXhpcz1yLmF4aXMsdGhpcy54QXhpcy5tYXJnaW4oMCksdGhpcy54QXhpcy50aWNrTGFiZWxQYWRkaW5nKDMpLHRoaXMueVNjYWxlPW5ldyB3YS5TY2FsZXMuTGluZWFyLHRoaXMueUF4aXM9bmV3IHdhLkF4ZXMuTnVtZXJpYyh0aGlzLnlTY2FsZSwibGVmdCIpO2xldCBuPVd1KG1CKTt0aGlzLnlBeGlzLm1hcmdpbigwKS50aWNrTGFiZWxQYWRkaW5nKDUpLmZvcm1hdHRlcihuKSx0aGlzLnlBeGlzLnVzZXNUZXh0V2lkdGhBcHByb3hpbWF0aW9uKCEwKTtsZXQgaT10aGlzLmJ1aWxkUGxvdCh0aGlzLnhBY2Nlc3Nvcix0aGlzLnhTY2FsZSx0aGlzLnlTY2FsZSk7dGhpcy5ncmlkbGluZXM9bmV3IHdhLkNvbXBvbmVudHMuR3JpZGxpbmVzKHRoaXMueFNjYWxlLHRoaXMueVNjYWxlKSx0aGlzLmNlbnRlcj1uZXcgd2EuQ29tcG9uZW50cy5Hcm91cChbdGhpcy5ncmlkbGluZXMsaV0pLHRoaXMub3V0ZXI9bmV3IHdhLkNvbXBvbmVudHMuVGFibGUoW1t0aGlzLnlBeGlzLHRoaXMuY2VudGVyXSxbbnVsbCx0aGlzLnhBeGlzXV0pfWJ1aWxkUGxvdCh0LHIsbil7bGV0IGk9WzAsMjI4LDE1ODcsMzA4NSw1ZTMsNjkxNSw4NDEzLDk3NzIsMWU0XSxvPWFzdC5yYW5nZShpLmxlbmd0aC0xKS5tYXAoaD0+KGlbaCsxXS1pW2hdKS8yNTAwKSxhPWkubWFwKChoLGYpPT5wPT5wW2ZdWzFdKSxzPTQsbD1hW3NdLGM9YXN0LnJhbmdlKGEubGVuZ3RoLTEpLm1hcChoPT57bGV0IGY9bmV3IHdhLlBsb3RzLkFyZWE7Zi54KHQscik7bGV0IHA9aD5zP2FbaF06YVtoKzFdLGQ9aD5zP2FbaCsxXTphW2hdO3JldHVybiBmLnkoZCxuKSxmLnkwKHApLGYuYXR0cigiZmlsbCIsKGcsXyx5KT0+dGhpcy5jb2xvclNjYWxlLnNjYWxlKHkubWV0YWRhdGEoKS5ydW4pKSxmLmF0dHIoInN0cm9rZSIsKGcsXyx5KT0+dGhpcy5jb2xvclNjYWxlLnNjYWxlKHkubWV0YWRhdGEoKS5ydW4pKSxmLmF0dHIoInN0cm9rZS13ZWlnaHQiLChnLF8seSk9PiIwLjVweCIpLGYuYXR0cigic3Ryb2tlLW9wYWNpdHkiLCgpPT5vW2hdKSxmLmF0dHIoImZpbGwtb3BhY2l0eSIsKCk9Pm9baF0pLGZ9KSx1PW5ldyB3YS5QbG90cy5MaW5lO3JldHVybiB1LngodCxyKSx1LnkobCxuKSx1LmF0dHIoInN0cm9rZSIsKGgsZixwKT0+dGhpcy5jb2xvclNjYWxlLnNjYWxlKHAucnVuKSksdGhpcy5wbG90cz1jLG5ldyB3YS5Db21wb25lbnRzLkdyb3VwKGMpfXNldFZpc2libGVTZXJpZXModCl7dGhpcy5ydW5zPXQ7bGV0IHI9dC5tYXAobj0+dGhpcy5nZXREYXRhc2V0KG4pKTt0aGlzLnBsb3RzLmZvckVhY2gobj0+bi5kYXRhc2V0cyhyKSl9c2V0U2VyaWVzRGF0YSh0LHIpe3RoaXMuZ2V0RGF0YXNldCh0KS5kYXRhKHIpfXJlbmRlclRvKHQpe3RoaXMudGFyZ2V0U1ZHPXQsdGhpcy5vdXRlci5yZW5kZXJUbyh0KX1yZWRyYXcoKXt0aGlzLm91dGVyLnJlZHJhdygpfWRlc3Ryb3koKXt0aGlzLm91dGVyLmRlc3Ryb3koKX19LEJjPWNsYXNzIGV4dGVuZHMgR3QobXQpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmNvbG9yU2NhbGU9bmV3IHdhLlNjYWxlcy5Db2xvcigpLnJhbmdlKGpiLnNsaWNlKCkpLHRoaXMueFR5cGU9InN0ZXAiLHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZT1bXSx0aGlzLl9zZXJpZXNEYXRhQ2FjaGU9e30sdGhpcy5fbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkPW51bGx9c2V0VmlzaWJsZVNlcmllcyh0KXt0aGlzLl92aXNpYmxlU2VyaWVzQ2FjaGU9dCx0aGlzLl9jaGFydCYmKHRoaXMuX2NoYXJ0LnNldFZpc2libGVTZXJpZXModCksdGhpcy5yZWRyYXcoKSl9c2V0U2VyaWVzRGF0YSh0LHIpe3RoaXMuX3Nlcmllc0RhdGFDYWNoZVt0XT1yLHRoaXMuX2NoYXJ0JiZ0aGlzLl9jaGFydC5zZXRTZXJpZXNEYXRhKHQscil9cmVkcmF3KCl7dGhpcy5fY2hhcnQucmVkcmF3KCl9X21ha2VDaGFydCgpe3ZhciB0PXRoaXMueFR5cGUscj10aGlzLmNvbG9yU2NhbGUsbj10aGlzLl9hdHRhY2hlZDt0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQhPT1udWxsJiZ0aGlzLmNhbmNlbEFzeW5jKHRoaXMuX21ha2VDaGFydEFzeW5jQ2FsbGJhY2tJZCksdGhpcy5fbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkPXRoaXMuYXN5bmMoZnVuY3Rpb24oKXtpZih0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQ9bnVsbCwhIW4pe3RoaXMuX2NoYXJ0JiZ0aGlzLl9jaGFydC5kZXN0cm95KCk7dmFyIGk9bmV3IE5CKHQsciksbz1IdCh0aGlzLiQuY2hhcnRkaXYpO2kucmVuZGVyVG8obyksdGhpcy5fY2hhcnQ9aX19LDM1MCl9X3JlbG9hZEZyb21DYWNoZSgpe3RoaXMuX2NoYXJ0JiYodGhpcy5fY2hhcnQuc2V0VmlzaWJsZVNlcmllcyh0aGlzLl92aXNpYmxlU2VyaWVzQ2FjaGUpLHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3RoaXMuX2NoYXJ0LnNldFNlcmllc0RhdGEodCx0aGlzLl9zZXJpZXNEYXRhQ2FjaGVbdF18fFtdKX0uYmluZCh0aGlzKSkpfWF0dGFjaGVkKCl7dGhpcy5fYXR0YWNoZWQ9ITB9ZGV0YWNoZWQoKXt0aGlzLl9hdHRhY2hlZD0hMX19O0JjLnRlbXBsYXRlPVFgCiAgICA8c3R5bGUgaW5jbHVkZT0icGxvdHRhYmxlLXN0eWxlIj48L3N0eWxlPgogICAgPGRpdiBpZD0iY2hhcnRkaXYiPjwvZGl2PgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CiAgICAgICNjaGFydGRpdiB7CiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgfQogICAgICAucGxvdHRhYmxlIC5heGlzIHRleHQgewogICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLHdhLlNjYWxlcy5Db2xvcildLEJjLnByb3RvdHlwZSwiY29sb3JTY2FsZSIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxCYy5wcm90b3R5cGUsInhUeXBlIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQmMucHJvdG90eXBlLCJfYXR0YWNoZWQiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsTkIpXSxCYy5wcm90b3R5cGUsIl9jaGFydCIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sQmMucHJvdG90eXBlLCJfdmlzaWJsZVNlcmllc0NhY2hlIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLEJjLnByb3RvdHlwZSwiX3Nlcmllc0RhdGFDYWNoZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxCYy5wcm90b3R5cGUsIl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQiLHZvaWQgMCk7RShbQnQoInhUeXBlIiwiY29sb3JTY2FsZSIsIl9hdHRhY2hlZCIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sQmMucHJvdG90eXBlLCJfbWFrZUNoYXJ0IixudWxsKTtFKFtCdCgiX2NoYXJ0IiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxCYy5wcm90b3R5cGUsIl9yZWxvYWRGcm9tQ2FjaGUiLG51bGwpO0JjPUUoW3l0KCJ2ei1kaXN0cmlidXRpb24tY2hhcnQiKV0sQmMpO3ZhciBTYT1jbGFzcyBleHRlbmRzIGtTKEd0KG10KSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuZ2V0RGF0YUxvYWROYW1lPSh7cnVuOnR9KT0+dCx0aGlzLnJlcXVlc3REYXRhPSh0LHIsbik9PntsZXQgbz1fZSgpLnBsdWdpblJvdXRlKCJkaXN0cmlidXRpb25zIiwiL2Rpc3RyaWJ1dGlvbnMiKTtQcm9taXNlLmFsbCh0Lm1hcChhPT57bGV0IHM9TWkobyx7dGFnOmEudGFnLHJ1bjphLnJ1bn0pO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QocykudGhlbihsPT52b2lkIHIoe2l0ZW06YSxkYXRhOmx9KSl9KSkuZmluYWxseSgoKT0+dm9pZCBuKCkpfSx0aGlzLmxvYWREYXRhQ2FsbGJhY2s9KHQscixuKT0+e2xldCBpPW4ubWFwKGE9PntsZXRbcyxsLGNdPWE7cmV0dXJuIGMud2FsbF90aW1lPW5ldyBEYXRlKHMqMWUzKSxjLnN0ZXA9bCxjfSksbz10aGlzLmdldERhdGFMb2FkTmFtZShyKTt0aGlzLiQuY2hhcnQuc2V0U2VyaWVzRGF0YShvLGkpLHRoaXMuJC5jaGFydC5zZXRWaXNpYmxlU2VyaWVzKFtvXSl9LHRoaXMuX2NvbG9yU2NhbGU9e3NjYWxlOmZufSx0aGlzLl9leHBhbmRlZD0hMSx0aGlzLl9jYW5jZWxsZXI9bmV3IGFufV9yZWxvYWRPblJ1blRhZ0NoYW5nZSgpe3RoaXMucmVsb2FkKCl9X3VwZGF0ZURhdGFUb0xvYWQoKXt2YXIgdD10aGlzLnJ1bixyPXRoaXMudGFnO3RoaXMuZGF0YVRvTG9hZD1be3J1bjp0LHRhZzpyfV19Z2V0IF9ydW5Db2xvcigpe3ZhciB0PXRoaXMucnVuO3JldHVybiB0aGlzLl9jb2xvclNjYWxlLnNjYWxlKHQpfXJlZHJhdygpe3RoaXMuJC5jaGFydC5yZWRyYXcoKX1fdG9nZ2xlRXhwYW5kZWQodCl7dGhpcy5zZXQoIl9leHBhbmRlZCIsIXRoaXMuX2V4cGFuZGVkKSx0aGlzLnJlZHJhdygpfX07U2EudGVtcGxhdGU9UWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcKICAgICAgdGFnPSJbW3RhZ11dIgogICAgICBydW49IltbcnVuXV0iCiAgICAgIGRpc3BsYXktbmFtZT0iW1t0YWdNZXRhZGF0YS5kaXNwbGF5TmFtZV1dIgogICAgICBkZXNjcmlwdGlvbj0iW1t0YWdNZXRhZGF0YS5kZXNjcmlwdGlvbl1dIgogICAgICBjb2xvcj0iW1tfcnVuQ29sb3JdXSIKICAgID48L3RmLWNhcmQtaGVhZGluZz4KICAgIDwhLS0KICAgICAgVGhlIG1haW4gZGlzdHJpYnV0aW9uIHRoYXQgd2UgcmVuZGVyLiBEYXRhIGlzIHNldCBkaXJlY3RseSB3aXRoCiAgICAgIFxgc2V0U2VyaWVzRGF0YVxgLCBub3Qgd2l0aCBhIGJvdW5kIHByb3BlcnR5LgogICAgLS0+CiAgICA8dnotZGlzdHJpYnV0aW9uLWNoYXJ0CiAgICAgIGlkPSJjaGFydCIKICAgICAgeC10eXBlPSJbW3hUeXBlXV0iCiAgICAgIGNvbG9yLXNjYWxlPSJbW19jb2xvclNjYWxlXV0iCiAgICA+PC92ei1kaXN0cmlidXRpb24tY2hhcnQ+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogcm93OyI+CiAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgIHNlbGVjdGVkJD0iW1tfZXhwYW5kZWRdXSIKICAgICAgICBpY29uPSJmdWxsc2NyZWVuIgogICAgICAgIG9uLXRhcD0iX3RvZ2dsZUV4cGFuZGVkIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgIDwvZGl2PgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHdpZHRoOiAzMzBweDsKICAgICAgICBoZWlnaHQ6IDIzNXB4OwogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICB9CiAgICAgIDpob3N0KFtfZXhwYW5kZWRdKSB7CiAgICAgICAgd2lkdGg6IDcwMHB4OwogICAgICAgIGhlaWdodDogNTAwcHg7CiAgICAgIH0KCiAgICAgIHZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzIHsKICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIHBhcGVyLWljb24tYnV0dG9uIHsKICAgICAgICBjb2xvcjogIzIxOTZmMzsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgIH0KICAgICAgcGFwZXItaWNvbi1idXR0b25bc2VsZWN0ZWRdIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICB9CgogICAgICB0Zi1jYXJkLWhlYWRpbmcgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYDtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxTYS5wcm90b3R5cGUsInJ1biIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxTYS5wcm90b3R5cGUsInRhZyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxTYS5wcm90b3R5cGUsInRhZ01ldGFkYXRhIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLFNhLnByb3RvdHlwZSwieFR5cGUiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sU2EucHJvdG90eXBlLCJnZXREYXRhTG9hZE5hbWUiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sU2EucHJvdG90eXBlLCJsb2FkRGF0YUNhbGxiYWNrIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFNhLnByb3RvdHlwZSwiX2NvbG9yU2NhbGUiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sU2EucHJvdG90eXBlLCJfZXhwYW5kZWQiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsQWUpXSxTYS5wcm90b3R5cGUsInJlcXVlc3RNYW5hZ2VyIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLGFuKV0sU2EucHJvdG90eXBlLCJfY2FuY2VsbGVyIix2b2lkIDApO0UoW0J0KCJydW4iLCJ0YWciKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFNhLnByb3RvdHlwZSwiX3JlbG9hZE9uUnVuVGFnQ2hhbmdlIixudWxsKTtFKFtCdCgicnVuIiwidGFnIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxTYS5wcm90b3R5cGUsIl91cGRhdGVEYXRhVG9Mb2FkIixudWxsKTtFKFtSdCgicnVuIiksdygiZGVzaWduOnR5cGUiLFN0cmluZyksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sU2EucHJvdG90eXBlLCJfcnVuQ29sb3IiLG51bGwpO1NhPUUoW3l0KCJ0Zi1kaXN0cmlidXRpb24tbG9hZGVyIildLFNhKTt2YXIgTWw9Y2xhc3MgZXh0ZW5kcyBHdChtdCl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVsb2FkT25SZWFkeT0hMCx0aGlzLl94VHlwZT0ic3RlcCIsdGhpcy5fcmVxdWVzdE1hbmFnZXI9bmV3IEFlfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9cmVsb2FkKCl7dGhpcy5fZmV0Y2hUYWdzKCkudGhlbigoKT0+e3RoaXMuX3JlbG9hZERpc3RyaWJ1dGlvbnMoKX0pfV9mZXRjaFRhZ3MoKXtsZXQgdD1fZSgpLnBsdWdpblJvdXRlKCJkaXN0cmlidXRpb25zIiwiL3RhZ3MiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKHI9PntpZihEQi5pc0VxdWFsKHIsdGhpcy5fcnVuVG9UYWdJbmZvKSlyZXR1cm47bGV0IG49REIubWFwVmFsdWVzKHIsbz0+T2JqZWN0LmtleXMobykpLGk9JGkobik7dGhpcy5zZXQoIl9kYXRhTm90Rm91bmQiLGkubGVuZ3RoPT09MCksdGhpcy5zZXQoIl9ydW5Ub1RhZyIsbiksdGhpcy5zZXQoIl9ydW5Ub1RhZ0luZm8iLHIpLHRoaXMuYXN5bmMoKCk9Pnt0aGlzLnNldCgiX2NhdGVnb3JpZXNEb21SZWFkeSIsITApfSl9KX1fcmVsb2FkRGlzdHJpYnV0aW9ucygpe3ZhciB0Oyh0PXRoaXMucm9vdCk9PW51bGx8fHQucXVlcnlTZWxlY3RvckFsbCgidGYtZGlzdHJpYnV0aW9uLWxvYWRlciIpLmZvckVhY2gocj0+e3IucmVsb2FkKCl9KX1fc2hvdWxkT3Blbih0KXtyZXR1cm4gdDw9Mn1nZXQgX2NhdGVnb3JpZXMoKXt2YXIgdD10aGlzLl9ydW5Ub1RhZyxyPXRoaXMuX3NlbGVjdGVkUnVucyxuPXRoaXMuX3RhZ0ZpbHRlcixpPXRoaXMuX2NhdGVnb3JpZXNEb21SZWFkeTtyZXR1cm4gUWwodCxyLG4pfV90YWdNZXRhZGF0YSh0LHIsbil7cmV0dXJuIHRbcl1bbl19fTtNbC50ZW1wbGF0ZT1RYAogICAgPHRmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiIHNsb3Q9InNpZGViYXIiPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDx0Zi1vcHRpb24tc2VsZWN0b3IKICAgICAgICAgICAgICBpZD0ieFR5cGVTZWxlY3RvciIKICAgICAgICAgICAgICBuYW1lPSJIb3Jpem9udGFsIGF4aXMiCiAgICAgICAgICAgICAgc2VsZWN0ZWQtaWQ9Int7X3hUeXBlfX0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIGlkPSJzdGVwIj5zdGVwPC9wYXBlci1idXR0b24+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbiBpZD0icmVsYXRpdmUiPnJlbGF0aXZlPC9wYXBlci1idXR0b24+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbiBpZD0id2FsbF90aW1lIj53YWxsPC9wYXBlci1idXR0b24+CiAgICAgICAgICAgIDwvdGYtb3B0aW9uLXNlbGVjdG9yPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIHJ1bnMtc2VsZWN0b3IiPgogICAgICAgICAgPHRmLXJ1bnMtc2VsZWN0b3Igc2VsZWN0ZWQtcnVucz0ie3tfc2VsZWN0ZWRSdW5zfX0iPgogICAgICAgICAgPC90Zi1ydW5zLXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImNlbnRlciIgc2xvdD0iY2VudGVyIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtd2FybmluZyI+CiAgICAgICAgICAgIDxoMz5ObyBkaXN0cmlidXRpb24gZGF0YSB3YXMgZm91bmQuPC9oMz4KICAgICAgICAgICAgPHA+UHJvYmFibGUgY2F1c2VzOjwvcD4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIFlvdSBoYXZlbuKAmXQgd3JpdHRlbiBhbnkgaGlzdG9ncmFtIGRhdGEgdG8geW91ciBldmVudCBmaWxlcy4KICAgICAgICAgICAgICAgIChIaXN0b2dyYW1zIGFuZCBkaXN0cmlidXRpb25zIGJvdGggdXNlIHRoZSBoaXN0b2dyYW0gc3VtbWFyeQogICAgICAgICAgICAgICAgb3BlcmF0aW9uLikKICAgICAgICAgICAgICA8L2xpPgoKICAgICAgICAgICAgICA8bGk+VGVuc29yQm9hcmQgY2Fu4oCZdCBmaW5kIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3UgdGhpbmsgVGVuc29yQm9hcmQgaXMgY29uZmlndXJlZCBwcm9wZXJseSwgcGxlYXNlIHNlZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIgogICAgICAgICAgICAgICAgPnRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXM8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPHRmLXRhZy1maWx0ZXJlciB0YWctZmlsdGVyPSJ7e190YWdGaWx0ZXJ9fSI+PC90Zi10YWctZmlsdGVyZXI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19jYXRlZ29yaWVzXV0iIGFzPSJjYXRlZ29yeSI+CiAgICAgICAgICAgIDx0Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldwogICAgICAgICAgICAgIGNhdGVnb3J5PSJbW2NhdGVnb3J5XV0iCiAgICAgICAgICAgICAgaW5pdGlhbC1vcGVuZWQ9IltbX3Nob3VsZE9wZW4oaW5kZXgpXV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGYtZGlzdHJpYnV0aW9uLWxvYWRlcgogICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgIHJ1bj0iW1tpdGVtLnJ1bl1dIgogICAgICAgICAgICAgICAgICB0YWc9IltbaXRlbS50YWddXSIKICAgICAgICAgICAgICAgICAgdGFnLW1ldGFkYXRhPSJbW190YWdNZXRhZGF0YShfcnVuVG9UYWdJbmZvLCBpdGVtLnJ1biwgaXRlbS50YWcpXV0iCiAgICAgICAgICAgICAgICAgIHgtdHlwZT0iW1tfeFR5cGVdXSIKICAgICAgICAgICAgICAgICAgcmVxdWVzdC1tYW5hZ2VyPSJbW19yZXF1ZXN0TWFuYWdlcl1dIgogICAgICAgICAgICAgICAgPjwvdGYtZGlzdHJpYnV0aW9uLWxvYWRlcj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3RmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvdGYtZGFzaGJvYXJkLWxheW91dD4KCiAgICA8c3R5bGUgaW5jbHVkZT0iZGFzaGJvYXJkLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICAubm8tZGF0YS13YXJuaW5nIHsKICAgICAgICBtYXgtd2lkdGg6IDU0MHB4OwogICAgICAgIG1hcmdpbjogODBweCBhdXRvIDAgYXV0bzsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sTWwucHJvdG90eXBlLCJyZWxvYWRPblJlYWR5Iix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLE1sLnByb3RvdHlwZSwiX3hUeXBlIix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSxNbC5wcm90b3R5cGUsIl9zZWxlY3RlZFJ1bnMiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTWwucHJvdG90eXBlLCJfcnVuVG9UYWciLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTWwucHJvdG90eXBlLCJfcnVuVG9UYWdJbmZvIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sTWwucHJvdG90eXBlLCJfZGF0YU5vdEZvdW5kIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLE1sLnByb3RvdHlwZSwiX3RhZ0ZpbHRlciIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLE1sLnByb3RvdHlwZSwiX2NhdGVnb3JpZXNEb21SZWFkeSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixBZSldLE1sLnByb3RvdHlwZSwiX3JlcXVlc3RNYW5hZ2VyIix2b2lkIDApO0UoW1J0KCJfcnVuVG9UYWciLCJfc2VsZWN0ZWRSdW5zIiwiX3RhZ0ZpbHRlciIsIl9jYXRlZ29yaWVzRG9tUmVhZHkiKSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLE1sLnByb3RvdHlwZSwiX2NhdGVnb3JpZXMiLG51bGwpO01sPUUoW3l0KCJ0Zi1kaXN0cmlidXRpb24tZGFzaGJvYXJkIildLE1sKTt2YXIgT0I9e307WnMoT0Ise0RJU0FNQklHVUFUT1I6KCk9PnEwdCxMaXN0ZW5LZXk6KCk9Pm1FLGFkZEhhc2hMaXN0ZW5lcjooKT0+Z0UsYWRkU3RvcmFnZUxpc3RlbmVyOigpPT5UVyxkaXNwb3NlQm9vbGVhbkJpbmRpbmc6KCk9PnQyZSxkaXNwb3NlTnVtYmVyQmluZGluZzooKT0+ZTJlLGRpc3Bvc2VPYmplY3RCaW5kaW5nOigpPT5pMmUsZGlzcG9zZVN0cmluZ0JpbmRpbmc6KCk9PlpiZSxmaXJlU3RvcmFnZUNoYW5nZWQ6KCk9PkNXLGdldEJvb2xlYW46KCk9PkpiZSxnZXRCb29sZWFuSW5pdGlhbGl6ZXI6KCk9PnhwLGdldEJvb2xlYW5PYnNlcnZlcjooKT0+YnAsZ2V0TnVtYmVyOigpPT5OVyxnZXROdW1iZXJJbml0aWFsaXplcjooKT0+X0UsZ2V0TnVtYmVyT2JzZXJ2ZXI6KCk9PnlFLGdldE9iamVjdDooKT0+cjJlLGdldE9iamVjdEluaXRpYWxpemVyOigpPT5PVyxnZXRPYmplY3RPYnNlcnZlcjooKT0+elcsZ2V0U3RyaW5nOigpPT4kYmUsZ2V0U3RyaW5nSW5pdGlhbGl6ZXI6KCk9PnZfLGdldFN0cmluZ09ic2VydmVyOigpPT54XyxnZXRVcmxIYXNoRGljdDooKT0+QjB0LG1ha2VCaW5kaW5nczooKT0+dkUsbWlncmF0ZUxlZ2FjeVVSTFNjaGVtZTooKT0+bzJlLHJlbW92ZUhhc2hMaXN0ZW5lckJ5S2V5OigpPT5BVyxyZW1vdmVTdG9yYWdlTGlzdGVuZXJCeUtleTooKT0+UFcsc2V0Qm9vbGVhbjooKT0+UWJlLHNldE51bWJlcjooKT0+RFcsc2V0T2JqZWN0OigpPT5uMmUsc2V0U3RyaW5nOigpPT5LYmV9KTt2YXIgaWN0PUVlKE9lKCksMSk7dmFyIEtLdD0iR3JhcGggZGFzaGJvYXJkIGFjdGlvbnMiLFpLdD0iR3JhcGggZGFzaGJvYXJkIHRpbWluZ3MiLHNzdDsoZnVuY3Rpb24oZSl7ZS5GRVRDSF9QQlRYVF9CWVRFUz0iRkVUQ0hfUEJUWFRfQllURVMiLGUuRkVUQ0hfUEJUWFRfQllURVNfRlJPTV9GSUxFU1lTVEVNPSJGRVRDSF9QQlRYVF9CWVRFU19GUk9NX0ZJTEVTWVNURU0iLGUuRkVUQ0hfUEJUWFRfQllURVNfRlJPTV9TRVJWRVI9IkZFVENIX1BCVFhUX0JZVEVTX0ZST01fU0VSVkVSIixlLlBBUlNFX1BCVFhUX0lOVE9fT0JKRUNUPSJQQVJTRV9QQlRYVF9JTlRPX09CSkVDVCIsZS5GRVRDSF9NRVRBREFUQV9QQlRYVF9CWVRFUz0iRkVUQ0hfTUVUQURBVEFfUEJUWFRfQllURVMiLGUuUEFSU0VfTUVUQURBVEFfUEJUWFRfSU5UT19PQkpFQ1Q9IlBBUlNFX01FVEFEQVRBX1BCVFhUX0lOVE9fT0JKRUNUIixlLk5PUk1BTElaSU5HX05BTUVTPSJOT1JNQUxJWklOR19OQU1FUyIsZS5CVUlMRF9TTElNX0dSQVBIPSJCVUlMRF9TTElNX0dSQVBIIixlLkhJRVJBUkNIWV9BRERfTk9ERVM9IkhJRVJBUkNIWV9BRERfTk9ERVMiLGUuSElFUkFSQ0hZX0RFVEVDVF9TRVJJRVM9IkhJRVJBUkNIWV9ERVRFQ1RfU0VSSUVTIixlLkhJRVJBUkNIWV9BRERfRURHRVM9IkhJRVJBUkNIWV9BRERfRURHRVMiLGUuSElFUkFSQ0hZX0ZJTkRfU0lNSUxBUl9TVUJHUkFQSFM9IkhJRVJBUkNIWV9GSU5EX1NJTUlMQVJfU1VCR1JBUEhTIixlLlJFTkRFUl9CVUlMRF9ISUVSQVJDSFk9IlJFTkRFUl9CVUlMRF9ISUVSQVJDSFkiLGUuUkVOREVSX1NDRU5FX0xBWU9VVD0iUkVOREVSX1NDRU5FX0xBWU9VVCIsZS5SRU5ERVJfU0NFTkVfQlVJTERfU0NFTkU9IlJFTkRFUl9TQ0VORV9CVUlMRF9TQ0VORSIsZS5HUkFQSF9MT0FEX1NVQ0NFRURFRD0iR1JBUEhfTE9BRF9TVUNDRUVERUQiLGUuR1JBUEhfTE9BRF9GQUlMRUQ9IkdSQVBIX0xPQURfRkFJTEVEIn0pKHNzdHx8KHNzdD17fSkpO3ZhciBsc3Q7KGZ1bmN0aW9uKGUpe2UuTk9ERV9FWFBBTlNJT05fVE9HR0xFRD0iTk9ERV9FWFBBTlNJT05fVE9HR0xFRCIsZS5OT0RFX1NFQVJDSF9SRVNVTFRfRk9DVVNFRD0iTk9ERV9TRUFSQ0hfUkVTVUxUX0ZPQ1VTRUQiLGUuTk9ERV9BVVhJTElBUllfRVhUUkFDVElPTl9DSEFOR0VEPSJOT0RFX0FVWElMSUFSWV9FWFRSQUNUSU9OX0NIQU5HRUQiLGUuR1JBUEhfVFlQRV9DSEFOR0VEPSJHUkFQSF9UWVBFX0NIQU5HRUQiLGUuVFJBQ0VfSU5QVVRfTU9ERV9UT0dHTEVEPSJUUkFDRV9JTlBVVF9NT0RFX1RPR0dMRUQiLGUuTk9ERV9DT0xPUl9NT0RFX0NIQU5HRUQ9Ik5PREVfQ09MT1JfTU9ERV9DSEFOR0VEIixlLlVQTE9BREVEX0dSQVBIX0ZST01fRklMRVNZU1RFTT0iVVBMT0FERURfR1JBUEhfRlJPTV9GSUxFU1lTVEVNIn0pKGxzdHx8KGxzdD17fSkpO3ZhciBqcj1pYShpYSh7fSxzc3QpLGxzdCk7dmFyIG5sZT1FZShPbHQoKSwxKSxwbj1FZShPZSgpLDEpO3ZhciBCczsoZnVuY3Rpb24oZSl7ZS5PUF9HUkFQSD0ib3BfZ3JhcGgiLGUuQ09OQ0VQVFVBTF9HUkFQSD0iY29uY2VwdHVhbF9ncmFwaCIsZS5QUk9GSUxFPSJwcm9maWxlIn0pKEJzfHwoQnM9e30pKTt2YXIgdmU9e05vZGU6e0NPTlRBSU5FUjoibm9kZXMiLEdST1VQOiJub2RlIixTSEFQRToibm9kZXNoYXBlIixDT0xPUl9UQVJHRVQ6Im5vZGVjb2xvcnRhcmdldCIsTEFCRUw6Im5vZGVsYWJlbCIsQlVUVE9OX0NPTlRBSU5FUjoiYnV0dG9uY29udGFpbmVyIixCVVRUT05fQ0lSQ0xFOiJidXR0b25jaXJjbGUiLEVYUEFORF9CVVRUT046ImV4cGFuZGJ1dHRvbiIsQ09MTEFQU0VfQlVUVE9OOiJjb2xsYXBzZWJ1dHRvbiJ9LEVkZ2U6e0NPTlRBSU5FUjoiZWRnZXMiLEdST1VQOiJlZGdlIixMSU5FOiJlZGdlbGluZSIsUkVGRVJFTkNFX0VER0U6InJlZmVyZW5jZWVkZ2UiLFJFRl9MSU5FOiJyZWZsaW5lIixTRUxFQ1RBQkxFOiJzZWxlY3RhYmxlZWRnZSIsU0VMRUNURUQ6InNlbGVjdGVkZWRnZSIsU1RSVUNUVVJBTDoic3RydWN0dXJhbCJ9LEFubm90YXRpb246e09VVEJPWDoib3V0LWFubm90YXRpb25zIixJTkJPWDoiaW4tYW5ub3RhdGlvbnMiLEdST1VQOiJhbm5vdGF0aW9uIixOT0RFOiJhbm5vdGF0aW9uLW5vZGUiLEVER0U6ImFubm90YXRpb24tZWRnZSIsQ09OVFJPTF9FREdFOiJhbm5vdGF0aW9uLWNvbnRyb2wtZWRnZSIsTEFCRUw6ImFubm90YXRpb24tbGFiZWwiLEVMTElQU0lTOiJhbm5vdGF0aW9uLWVsbGlwc2lzIn0sU2NlbmU6e0dST1VQOiJzY2VuZSIsQ09SRToiY29yZSIsRlVOQ1RJT05fTElCUkFSWToiZnVuY3Rpb24tbGlicmFyeSIsSU5FWFRSQUNUOiJpbi1leHRyYWN0IixPVVRFWFRSQUNUOiJvdXQtZXh0cmFjdCJ9LFN1YnNjZW5lOntHUk9VUDoic3Vic2NlbmUifSxPUE5PREU6Im9wIixNRVRBTk9ERToibWV0YSIsU0VSSUVTTk9ERToic2VyaWVzIixCUklER0VOT0RFOiJicmlkZ2UiLEVMTElQU0lTTk9ERToiZWxsaXBzaXMifSxKND17RWRnZTp7TEFCRUw6My41fSxBbm5vdGF0aW9uOntMQUJFTDo1fSxOb2RlOntFWFBBTkRFRF9MQUJFTDo5LFNFUklFU19MQUJFTDo4LE9QX0xBQkVMOjYsSEVBTFRIX1BJTExfU1RBVF9MQUJFTDo0fX0sanU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjtmdW5jdGlvbiBnMChlLHQscil7bGV0IG49ZS5ub2RlKCkuY2hpbGROb2Rlcztmb3IobGV0IGk9MDtpPG4ubGVuZ3RoO2krKyl7bGV0IG89bltpXTtpZihvLnRhZ05hbWU9PT10KXtpZihyIGluc3RhbmNlb2YgQXJyYXkpe2xldCBhPSEwO2ZvcihsZXQgcz0wO3M8ci5sZW5ndGg7cysrKWE9YSYmby5jbGFzc0xpc3QuY29udGFpbnMocltzXSk7aWYoYSlyZXR1cm4gSHQobyl9ZWxzZSBpZighcnx8by5jbGFzc0xpc3QuY29udGFpbnMocikpcmV0dXJuIEh0KG8pfX1yZXR1cm4gSHQobnVsbCl9ZnVuY3Rpb24gQW4oZSx0LHIsbil7bGV0IGk9ZzAoZSx0LHIpO2lmKCFpLmVtcHR5KCkpcmV0dXJuIGk7bGV0IG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdCk7aWYociBpbnN0YW5jZW9mIEFycmF5KWZvcihsZXQgYT0wO2E8ci5sZW5ndGg7YSsrKW8uY2xhc3NMaXN0LmFkZChyW2FdKTtlbHNlIG8uY2xhc3NMaXN0LmFkZChyKTtyZXR1cm4gbj9lLm5vZGUoKS5pbnNlcnRCZWZvcmUobyxuKTplLm5vZGUoKS5hcHBlbmRDaGlsZChvKSxIdChvKS5kYXR1bShlLmRhdHVtKCkpfXZhciBLUz1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnRvdGFsQnl0ZXM9MCx0aGlzLm91dHB1dFNpemU9dH1hZGRFeGVjdXRpb25UaW1lKHQscil7dGhpcy5zdGFydFRpbWUhPW51bGw/dGhpcy5zdGFydFRpbWU9TWF0aC5taW4odGhpcy5zdGFydFRpbWUsdCk6dGhpcy5zdGFydFRpbWU9dCx0aGlzLmVuZFRpbWUhPW51bGw/dGhpcy5lbmRUaW1lPU1hdGgubWF4KHRoaXMuZW5kVGltZSxyKTp0aGlzLmVuZFRpbWU9cn1hZGRCeXRlc0FsbG9jYXRpb24odCl7dGhpcy50b3RhbEJ5dGVzIT1udWxsP3RoaXMudG90YWxCeXRlcz1NYXRoLm1heCh0aGlzLnRvdGFsQnl0ZXMsdCk6dGhpcy50b3RhbEJ5dGVzPXR9Y29tYmluZSh0KXt0LnRvdGFsQnl0ZXMhPW51bGwmJih0aGlzLnRvdGFsQnl0ZXMrPXQudG90YWxCeXRlcyksdC5nZXRUb3RhbE1pY3JvcygpIT1udWxsJiZ0aGlzLmFkZEV4ZWN1dGlvblRpbWUodC5zdGFydFRpbWUsdC5lbmRUaW1lKX1nZXRUb3RhbE1pY3Jvcygpe3JldHVybiB0aGlzLnN0YXJ0VGltZT09bnVsbHx8dGhpcy5lbmRUaW1lPT1udWxsP251bGw6dGhpcy5lbmRUaW1lLXRoaXMuc3RhcnRUaW1lfX0sUTQ9Ljc1LHRQPTEyLHRjcj0uMyxlY3I9WzEsNWU2XSxYc2U9Wl8oKS5leHBvbmVudCh0Y3IpLmRvbWFpbihlY3IpLnJhbmdlKFtRNCx0UF0pLmNsYW1wKCEwKTt2YXIgWlM9RWUoT2UoKSwxKTt2YXIgS3NlPTIwO2Z1bmN0aW9uIHJjcihlKXtyZXR1cm4gZS5oYXNPd25Qcm9wZXJ0eSgidGltaW5nSWQiKX1mdW5jdGlvbiBQbyhlKXtyY3IoZSk/KFpLdCxlLnRpbWluZ0lkLGUuZXZlbnRWYWx1ZSx2b2lkIDApOihLS3QsZS5hY3Rpb25JZCxlLmV2ZW50TGFiZWwsdm9pZCAwKX1mdW5jdGlvbiBOZChlLHQscil7bGV0IG49RGF0ZS5ub3coKSxpPXQoKSxvPURhdGUubm93KCktbjtyZXR1cm4gY29uc29sZS5sb2coZSwiOiIsbywibXMiKSxyJiZQbyh7dGltaW5nSWQ6cixldmVudFZhbHVlOm99KSxpfWZ1bmN0aW9uIG5QKGUpe3JldHVybntzZXRNZXNzYWdlOmZ1bmN0aW9uKHQpe2Uuc2V0KCJwcm9ncmVzcyIse3ZhbHVlOmUucHJvZ3Jlc3MudmFsdWUsbXNnOnR9KX0sdXBkYXRlUHJvZ3Jlc3M6ZnVuY3Rpb24odCl7ZS5zZXQoInByb2dyZXNzIix7dmFsdWU6ZS5wcm9ncmVzcy52YWx1ZSt0LG1zZzplLnByb2dyZXNzLm1zZ30pfSxyZXBvcnRFcnJvcjpmdW5jdGlvbih0LHIpe2NvbnNvbGUuZXJyb3Ioci5zdGFjayksZS5zZXQoInByb2dyZXNzIix7dmFsdWU6ZS5wcm9ncmVzcy52YWx1ZSxtc2c6dCxlcnJvcjohMH0pfX19ZnVuY3Rpb24gSlMoZSx0LHIpe3JldHVybntzZXRNZXNzYWdlOmZ1bmN0aW9uKG4pe2Uuc2V0TWVzc2FnZShyKyI6ICIrbil9LHVwZGF0ZVByb2dyZXNzOmZ1bmN0aW9uKG4pe2UudXBkYXRlUHJvZ3Jlc3Mobip0LzEwMCl9LHJlcG9ydEVycm9yOmZ1bmN0aW9uKG4saSl7ZS5yZXBvcnRFcnJvcihyKyI6ICIrbixpKX19fWZ1bmN0aW9uIFpzZShlLHQscixuLGkpe24uc2V0TWVzc2FnZShlKTt0cnl7bGV0IG89TmQoZSxyLGkpO3JldHVybiBuLnVwZGF0ZVByb2dyZXNzKHQpLG99Y2F0Y2gobyl7cmV0dXJuIG4ucmVwb3J0RXJyb3IoIkZhaWxlZCAiK2UsbyksbnVsbH19ZnVuY3Rpb24gcjEoZSx0LHIsbixpKXtyZXR1cm4gbmV3IFByb21pc2UoKG8sYSk9PntuLnNldE1lc3NhZ2UoZSksc2V0VGltZW91dChmdW5jdGlvbigpe3RyeXtsZXQgcz1OZChlLHIsaSk7bi51cGRhdGVQcm9ncmVzcyh0KSxvKHMpfWNhdGNoKHMpe24ucmVwb3J0RXJyb3IoIkZhaWxlZCAiK2Uscyl9fSxLc2UpfSl9ZnVuY3Rpb24gbUgoZSx0LHIsbixpKXtyZXR1cm4gbmV3IFByb21pc2UoKG8sYSk9PntsZXQgcz1mdW5jdGlvbihsKXtuLnJlcG9ydEVycm9yKCJGYWlsZWQgIitlLGwpLGEobCl9O24uc2V0TWVzc2FnZShlKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dHJ5e2xldCBsPURhdGUubm93KCk7cigpLnRoZW4oZnVuY3Rpb24oYyl7bGV0IHU9RGF0ZS5ub3coKS1sO2NvbnNvbGUubG9nKGUsIjoiLHUsIm1zIiksbi51cGRhdGVQcm9ncmVzcyh0KSxQbyh7dGltaW5nSWQ6aSxldmVudFZhbHVlOnV9KSxvKGMpfSkuY2F0Y2gocyl9Y2F0Y2gobCl7cyhsKX19LEtzZSl9KX1mdW5jdGlvbiBKc2UoZSl7cmV0dXJuIGUucmVwbGFjZSgvKFs6LlxbXF0sL1xcXChcKV0pL2csIlxcJDEiKX12YXIgaVA9W3tzeW1ib2w6IkIifSx7c3ltYm9sOiJLQiIsbnVtVW5pdHM6MTAyNH0se3N5bWJvbDoiTUIiLG51bVVuaXRzOjEwMjR9LHtzeW1ib2w6IkdCIixudW1Vbml0czoxMDI0fSx7c3ltYm9sOiJUQiIsbnVtVW5pdHM6MTAyNH0se3N5bWJvbDoiUEIiLG51bVVuaXRzOjEwMjR9XSxvUD1be3N5bWJvbDoiXHhCNXMifSx7c3ltYm9sOiJtcyIsbnVtVW5pdHM6MWUzfSx7c3ltYm9sOiJzIixudW1Vbml0czoxZTN9LHtzeW1ib2w6Im1pbiIsbnVtVW5pdHM6NjB9LHtzeW1ib2w6ImhyIixudW1Vbml0czo2MH0se3N5bWJvbDoiZGF5cyIsbnVtVW5pdHM6MjR9XTtmdW5jdGlvbiBEZChlLHQscj0wKXtyZXR1cm4gcisxPHQubGVuZ3RoJiZlPj10W3IrMV0ubnVtVW5pdHM/RGQoZS90W3IrMV0ubnVtVW5pdHMsdCxyKzEpOk51bWJlcihlLnRvUHJlY2lzaW9uKDMpKSsiICIrdFtyXS5zeW1ib2x9ZnVuY3Rpb24gZ0goZSl7cmV0dXJuISEoZSYmKGUudG90YWxCeXRlcz4wfHxlLmdldFRvdGFsTWljcm9zKCk+MHx8ZS5vdXRwdXRTaXplKSl9ZnVuY3Rpb24gemx0KGUpe2lmKGUubGVuZ3RoPDIpcmV0dXJuIGU7bGV0IHQ9MCxyPTAsbj1aUy5taW4oWlMubWFwKGUsaT0+aS5sZW5ndGgpKTtmb3IoOzspe3QrKztsZXQgaT1aUy5tYXAoZSxhPT5hLnN1YnN0cmluZygwLHQpKTtpZihpLmV2ZXJ5KChhLHMpPT5zPT09MD8hMDphPT09aVtzLTFdKSl7aWYodD49bilyZXR1cm4gZTtyPXR9ZWxzZSBicmVha31yZXR1cm4gWlMubWFwKGUsaT0+aS5zdWJzdHJpbmcocikpfWZ1bmN0aW9uIFFzZShlKXt2YXIgdD0rbmV3IERhdGUtK25ldyBEYXRlKGUvMWUzKTtyZXR1cm4gdDwzZTQ/Imp1c3Qgbm93Ijp0PDZlND9NYXRoLmZsb29yKHQvMWUzKSsiIHNlY29uZHMgYWdvIjp0PDEyZTQ/ImEgbWludXRlIGFnbyI6dDwzNmU1P01hdGguZmxvb3IodC82ZTQpKyIgbWludXRlcyBhZ28iOk1hdGguZmxvb3IodC8zNmU1KT09MT8iYW4gaG91ciBhZ28iOnQ8ODY0ZTU/TWF0aC5mbG9vcih0LzM2ZTUpKyIgaG91cnMgYWdvIjp0PDE3MjhlNT8ieWVzdGVyZGF5IjpNYXRoLmZsb29yKHQvODY0ZTUpKyIgZGF5cyBhZ28ifXZhciBuY3I9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksclA9bmNyLmdldENvbnRleHQoIjJkIik7ZnVuY3Rpb24gJHNlKGUsdCl7cmV0dXJuIHJQJiYoclAuZm9udD1gJHt0fXB4IFJvYm90bywgc2Fucy1zZXJpZmApLHJQPT1udWxsP3ZvaWQgMDpyUC5tZWFzdXJlVGV4dChlKS53aWR0aH1mdW5jdGlvbiB0bGUoZSx0LHIpe2lmKCFlKXJldHVybiIiO2lmKCRzZShlLHQpPD1yKXJldHVybiBlO2xldCBuPTAsaT1lLmxlbmd0aDtmb3IoO248aTspe2xldCBvPW4rTWF0aC5yb3VuZCgoaS1uKS8yKSxhPWUuc2xpY2UoMCxvKSsiXHUyMDI2Ijskc2UoYSx0KTw9cj9uPW86aT1vLTF9cmV0dXJuIG49PT0wP2VbMF06ZS5zbGljZSgwLG4pKyJcdTIwMjYifXZhciBkSD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZXZlbnRUeXBlVG9MaXN0ZW5lcnM9bmV3IE1hcH1nZXRMaXN0ZW5lcnModCl7cmV0dXJuIHRoaXMuZXZlbnRUeXBlVG9MaXN0ZW5lcnMuaGFzKHQpfHx0aGlzLmV2ZW50VHlwZVRvTGlzdGVuZXJzLnNldCh0LFtdKSx0aGlzLmV2ZW50VHlwZVRvTGlzdGVuZXJzLmdldCh0KX1hZGRMaXN0ZW5lcih0LHIpe3ZhciBuOyhuPXRoaXMuZ2V0TGlzdGVuZXJzKHQpKT09bnVsbHx8bi5wdXNoKHIpfXJlbW92ZUxpc3RlbmVyKHQscil7dmFyIGk7bGV0IG49KGk9dGhpcy5nZXRMaXN0ZW5lcnModCkpPT1udWxsP3ZvaWQgMDppLmZpbHRlcihvPT5vIT09cik7dGhpcy5ldmVudFR5cGVUb0xpc3RlbmVycy5zZXQodCxuKX1kaXNwYXRjaEV2ZW50KHQscil7Zm9yKGxldCBuIG9mIHRoaXMuZ2V0TGlzdGVuZXJzKHQpKW4ocil9fTt2YXIgUGw9Ii8iLHFjPSJfX3Jvb3RfXyIsTWE9Il9fZnVuY3Rpb25fbGlicmFyeV9fIixpbGU9Il90b29fbGFyZ2VfYXR0cnMiO3ZhciBvbGU9Ii0tIixfMDsoZnVuY3Rpb24oZSl7ZVtlLkZVTEw9MF09IkZVTEwiLGVbZS5FTUJFRERFRD0xXT0iRU1CRURERUQiLGVbZS5NRVRBPTJdPSJNRVRBIixlW2UuU0VSSUVTPTNdPSJTRVJJRVMiLGVbZS5DT1JFPTRdPSJDT1JFIixlW2UuU0hBRE9XPTVdPSJTSEFET1ciLGVbZS5CUklER0U9Nl09IkJSSURHRSIsZVtlLkVER0U9N109IkVER0UifSkoXzB8fChfMD17fSkpO3ZhciBqdDsoZnVuY3Rpb24oZSl7ZVtlLk1FVEE9MF09Ik1FVEEiLGVbZS5PUD0xXT0iT1AiLGVbZS5TRVJJRVM9Ml09IlNFUklFUyIsZVtlLkJSSURHRT0zXT0iQlJJREdFIixlW2UuRUxMSVBTSVM9NF09IkVMTElQU0lTIn0pKGp0fHwoanQ9e30pKTt2YXIgdXI7KGZ1bmN0aW9uKGUpe2VbZS5JTkNMVURFPTBdPSJJTkNMVURFIixlW2UuRVhDTFVERT0xXT0iRVhDTFVERSIsZVtlLlVOU1BFQ0lGSUVEPTJdPSJVTlNQRUNJRklFRCJ9KSh1cnx8KHVyPXt9KSk7dmFyIG9zOyhmdW5jdGlvbihlKXtlW2UuR1JPVVA9MF09IkdST1VQIixlW2UuVU5HUk9VUD0xXT0iVU5HUk9VUCJ9KShvc3x8KG9zPXt9KSk7dmFyIGljcj0iX291dHB1dF9zaGFwZXMiLG9jcj0iX1hsYUNsdXN0ZXIiLFh1PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5ub2Rlcz17fSx0aGlzLmVkZ2VzPVtdfX0sX0g9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy50eXBlPWp0LkVMTElQU0lTLHRoaXMuaXNHcm91cE5vZGU9ITEsdGhpcy5jYXJkaW5hbGl0eT0xLHRoaXMucGFyZW50Tm9kZT1udWxsLHRoaXMuc3RhdHM9bnVsbCx0aGlzLnNldE51bU1vcmVOb2Rlcyh0KSx0aGlzLmluY2x1ZGU9dXIuVU5TUEVDSUZJRUR9c2V0TnVtTW9yZU5vZGVzKHQpe3RoaXMubnVtTW9yZU5vZGVzPXQsdGhpcy5uYW1lPSIuLi4gIit0KyIgbW9yZSJ9fSx5MD1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLm9wPXQub3AsdGhpcy5uYW1lPXQubmFtZSx0aGlzLmRldmljZT10LmRldmljZSx0aGlzLmF0dHI9dC5hdHRyLHRoaXMuaW5wdXRzPWNjcih0LmlucHV0KSx0aGlzLm91dHB1dFNoYXBlcz1hY3IodC5hdHRyKSx0aGlzLnhsYUNsdXN0ZXI9c2NyKHQuYXR0ciksdGhpcy5jb21wYXRpYmxlPSExLHRoaXMudHlwZT1qdC5PUCx0aGlzLmlzR3JvdXBOb2RlPSExLHRoaXMuY2FyZGluYWxpdHk9MSx0aGlzLmluRW1iZWRkaW5ncz1bXSx0aGlzLm91dEVtYmVkZGluZ3M9W10sdGhpcy5wYXJlbnROb2RlPW51bGwsdGhpcy5pbmNsdWRlPXVyLlVOU1BFQ0lGSUVELHRoaXMub3duaW5nU2VyaWVzPW51bGx9fTtmdW5jdGlvbiBsUChlLHQ9e30pe3JldHVybiBuZXcgYVAoZSx0KX1mdW5jdGlvbiBhbGUoZSx0LHIpe3BuLmVhY2goZS5ub2RlcyxuPT57bi5zdGF0cz1udWxsfSkscG4uZWFjaCh0LmRldl9zdGF0cyxuPT57ciYmIXJbbi5kZXZpY2VdfHxwbi5lYWNoKG4ubm9kZV9zdGF0cyxpPT57bGV0IG89aS5ub2RlX25hbWUgaW4gZS5ub2Rlcz9pLm5vZGVfbmFtZTpzUChpLm5vZGVfbmFtZSk7aWYoIShvIGluIGUubm9kZXMpKXJldHVybjtsZXQgYT0wO2kubWVtb3J5JiZwbi5lYWNoKGkubWVtb3J5LGw9PntsLnRvdGFsX2J5dGVzJiYobC50b3RhbF9ieXRlcz4wP2ErPU51bWJlcihsLnRvdGFsX2J5dGVzKTpjb25zb2xlLmxvZygiaWdub3JpbmcgbmVnYXRpdmUgbWVtb3J5IGFsbG9jYXRpb24gZm9yICIrbykpfSk7bGV0IHM9bnVsbDtpLm91dHB1dCYmKHM9cG4ubWFwKGkub3V0cHV0LGw9PnBuLm1hcChsLnRlbnNvcl9kZXNjcmlwdGlvbi5zaGFwZS5kaW0sYz0+TnVtYmVyKGMuc2l6ZSkpKSksZS5ub2Rlc1tvXS5kZXZpY2U9bi5kZXZpY2UsZS5ub2Rlc1tvXS5zdGF0cz09bnVsbCYmKGUubm9kZXNbb10uc3RhdHM9bmV3IEtTKHMpKSxlLm5vZGVzW29dLnN0YXRzLmFkZEJ5dGVzQWxsb2NhdGlvbihhKSxpLmFsbF9lbmRfcmVsX21pY3JvcyYmKGkuYWxsX2VuZF9yZWxfbWljcm9zPjA/ZS5ub2Rlc1tvXS5zdGF0cy5hZGRFeGVjdXRpb25UaW1lKGkuYWxsX3N0YXJ0X21pY3JvcyxpLmFsbF9zdGFydF9taWNyb3MraS5hbGxfZW5kX3JlbF9taWNyb3MpOmNvbnNvbGUubG9nKCJpZ25vcmluZyBuZWdhdGl2ZSBydW50aW1lIGZvciAiK28pKX0pfSl9dmFyIGFQPWNsYXNze2NvbnN0cnVjdG9yKHQscj17fSl7dGhpcy5uYW1lPXQsdGhpcy50eXBlPWp0Lk1FVEEsdGhpcy5kZXB0aD0xLHRoaXMuaXNHcm91cE5vZGU9ITAsdGhpcy5jYXJkaW5hbGl0eT0wLHRoaXMubWV0YWdyYXBoPWUzKHQsXzAuTUVUQSxyKSx0aGlzLmJyaWRnZWdyYXBoPW51bGwsdGhpcy5vcEhpc3RvZ3JhbT17fSx0aGlzLmRldmljZUhpc3RvZ3JhbT17fSx0aGlzLnhsYUNsdXN0ZXJIaXN0b2dyYW09e30sdGhpcy5jb21wYXRpYmlsaXR5SGlzdG9ncmFtPXtjb21wYXRpYmxlOjAsaW5jb21wYXRpYmxlOjB9LHRoaXMudGVtcGxhdGVJZD1udWxsLHRoaXMucGFyZW50Tm9kZT1udWxsLHRoaXMuaGFzTm9uQ29udHJvbEVkZ2VzPSExLHRoaXMuaW5jbHVkZT11ci5VTlNQRUNJRklFRCx0aGlzLmFzc29jaWF0ZWRGdW5jdGlvbj0iIn1nZXRGaXJzdENoaWxkKCl7cmV0dXJuIHRoaXMubWV0YWdyYXBoLm5vZGUodGhpcy5tZXRhZ3JhcGgubm9kZXMoKVswXSl9Z2V0Um9vdE9wKCl7bGV0IHQ9dGhpcy5uYW1lLnNwbGl0KCIvIikscj10aGlzLm5hbWUrIi8oIit0W3QubGVuZ3RoLTFdKyIpIjtyZXR1cm4gdGhpcy5tZXRhZ3JhcGgubm9kZShyKX1sZWF2ZXMoKXtsZXQgdD1bXSxyPVt0aGlzXSxuO2Zvcig7ci5sZW5ndGg7KXtsZXQgaT1yLnNoaWZ0KCk7aSE9bnVsbCYmaS5pc0dyb3VwTm9kZT8obj1pLm1ldGFncmFwaCxwbi5lYWNoKG4ubm9kZXMoKSxvPT5yLnB1c2gobi5ub2RlKG8pKSkpOnQucHVzaChpPT1udWxsP3ZvaWQgMDppLm5hbWUpfXJldHVybiB0fX07ZnVuY3Rpb24gSGx0KGUsdCl7cmV0dXJuIG5ldyBHZihlLHQpfXZhciBHZj1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIpe3RoaXMudj10LHRoaXMudz1yLHRoaXMuYmFzZUVkZ2VMaXN0PVtdLHRoaXMuaW5ib3VuZD1udWxsLHRoaXMubnVtUmVndWxhckVkZ2VzPTAsdGhpcy5udW1Db250cm9sRWRnZXM9MCx0aGlzLm51bVJlZkVkZ2VzPTAsdGhpcy50b3RhbFNpemU9MH1hZGRCYXNlRWRnZSh0LHIpe3RoaXMuYmFzZUVkZ2VMaXN0LnB1c2godCksdC5pc0NvbnRyb2xEZXBlbmRlbmN5P3RoaXMubnVtQ29udHJvbEVkZ2VzKz0xOnRoaXMubnVtUmVndWxhckVkZ2VzKz0xLHQuaXNSZWZlcmVuY2VFZGdlJiYodGhpcy5udW1SZWZFZGdlcys9MSksdGhpcy50b3RhbFNpemUrPUdmLmNvbXB1dGVTaXplT2ZFZGdlKHQsciksci5tYXhNZXRhRWRnZVNpemU9TWF0aC5tYXgoci5tYXhNZXRhRWRnZVNpemUsdGhpcy50b3RhbFNpemUpfXN0YXRpYyBjb21wdXRlU2l6ZU9mRWRnZSh0LHIpe2xldCBuPXIubm9kZSh0LnYpO2lmKCFuLm91dHB1dFNoYXBlcylyZXR1cm4gMTtyLmhhc1NoYXBlSW5mbz0hMDtsZXQgaT1PYmplY3Qua2V5cyhuLm91dHB1dFNoYXBlcykubWFwKG89Pm4ub3V0cHV0U2hhcGVzW29dKS5tYXAobz0+bz09bnVsbD8xOm8ucmVkdWNlKChhLHMpPT4ocz09PS0xJiYocz0xKSxhKnMpLDEpKTtyZXR1cm4gcG4uc3VtKGkpfX07ZnVuY3Rpb24gUVMoZSx0LHIsbixpLG8pe3JldHVybiBuZXcgQmx0KGUsdCxyLG4saSxvKX1mdW5jdGlvbiB0MyhlLHQscixuLGkpe2xldCBvPXR5cGVvZiBuIT0idW5kZWZpbmVkIiYmdHlwZW9mIGkhPSJ1bmRlZmluZWQiPyJbIituKyItIitpKyJdIjoiIyIsYT1lK28rdDtyZXR1cm4ocj9yKyIvIjoiIikrYX12YXIgQmx0PWNsYXNze2NvbnN0cnVjdG9yKHQscixuLGksbyxhKXt0aGlzLm5hbWU9b3x8dDModCxyLG4pLHRoaXMudHlwZT1qdC5TRVJJRVMsdGhpcy5oYXNMb29wPSExLHRoaXMucHJlZml4PXQsdGhpcy5zdWZmaXg9cix0aGlzLmNsdXN0ZXJJZD1pLHRoaXMuaWRzPVtdLHRoaXMucGFyZW50PW4sdGhpcy5pc0dyb3VwTm9kZT0hMCx0aGlzLmNhcmRpbmFsaXR5PTAsdGhpcy5tZXRhZ3JhcGg9ZTMobyxfMC5TRVJJRVMsYSksdGhpcy5icmlkZ2VncmFwaD1udWxsLHRoaXMucGFyZW50Tm9kZT1udWxsLHRoaXMuZGV2aWNlSGlzdG9ncmFtPXt9LHRoaXMueGxhQ2x1c3Rlckhpc3RvZ3JhbT17fSx0aGlzLmNvbXBhdGliaWxpdHlIaXN0b2dyYW09e2NvbXBhdGlibGU6MCxpbmNvbXBhdGlibGU6MH0sdGhpcy5oYXNOb25Db250cm9sRWRnZXM9ITEsdGhpcy5pbmNsdWRlPXVyLlVOU1BFQ0lGSUVEfX07ZnVuY3Rpb24gYWNyKGUpe2xldCB0PW51bGw7aWYoIWUpcmV0dXJuIG51bGw7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspe2xldHtrZXk6bix2YWx1ZTppfT1lW3JdO2lmKG49PT1pY3Ipe2lmKCFpLmxpc3R8fCFpLmxpc3Quc2hhcGUpcmV0dXJuIG51bGw7bGV0IG89aS5saXN0LnNoYXBlLm1hcChhPT5hLnVua25vd25fcmFuaz9udWxsOmEuZGltPT1udWxsfHxhLmRpbS5sZW5ndGg9PT0xJiZhLmRpbVswXS5zaXplPT1udWxsP1tdOmEuZGltLm1hcChzPT5zLnNpemV8fDApKTtyZXR1cm4gZS5zcGxpY2UociwxKSxvfX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBzY3IoZSl7aWYoIWUpcmV0dXJuIG51bGw7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspaWYoZVt0XS5rZXk9PT1vY3IpcmV0dXJuIGVbdF0udmFsdWUuc3x8bnVsbDtyZXR1cm4gbnVsbH12YXIgbGNyPS9eKFteOl0rKTooKFx3Kzp8KVxkKykkLztmdW5jdGlvbiBjY3IoZSl7bGV0IHQ9W10scj1udWxsO2ZvcihsZXQgbiBvZiBlfHxbXSl7bGV0IGk9bi5zdGFydHNXaXRoKCJeIik7aSYmKG49bi5zdWJzdHJpbmcoMSkpO2xldCBvPW4sYT0iMCIscz1uLmluY2x1ZGVzKCI6IikmJm4ubWF0Y2gobGNyKTtzJiYobz1zWzFdLGE9c1syXSksciE9PW8mJihyPW8sdC5wdXNoKHtuYW1lOm8sb3V0cHV0VGVuc29yS2V5OmEsaXNDb250cm9sRGVwZW5kZW5jeTppfSkpfXJldHVybiB0fWZ1bmN0aW9uIEZsdChlLHQscixuLGksbyl7aWYodD09PXIubmFtZSlyZXR1cm47bGV0IGE9aS5yZWZFZGdlc1tyLm9wKyIgIitvXT09PSEwO2UuZWRnZXMucHVzaCh7djp0LHc6ci5uYW1lLG91dHB1dFRlbnNvcktleTpuLm91dHB1dFRlbnNvcktleSxpc0NvbnRyb2xEZXBlbmRlbmN5Om4uaXNDb250cm9sRGVwZW5kZW5jeSxpc1JlZmVyZW5jZUVkZ2U6YX0pfXZhciBzbGU9e2VuYWJsZUVtYmVkZGluZzohMCxpbkVtYmVkZGluZ1R5cGVzOlsiQ29uc3QiXSxvdXRFbWJlZGRpbmdUeXBlczpbIl5bYS16QS1aXStTdW1tYXJ5JCJdLHJlZkVkZ2VzOnsiQXNzaWduIDAiOiEwLCJBc3NpZ25BZGQgMCI6ITAsIkFzc2lnblN1YiAwIjohMCwiYXNzaWduIDAiOiEwLCJhc3NpZ25fYWRkIDAiOiEwLCJhc3NpZ25fc3ViIDAiOiEwLCJjb3VudF91cF90byAwIjohMCwiU2NhdHRlckFkZCAwIjohMCwiU2NhdHRlclN1YiAwIjohMCwiU2NhdHRlclVwZGF0ZSAwIjohMCwic2NhdHRlcl9hZGQgMCI6ITAsInNjYXR0ZXJfc3ViIDAiOiEwLCJzY2F0dGVyX3VwZGF0ZSAwIjohMH19O2Z1bmN0aW9uIGxsZShlLHQscil7bGV0IG49e30saT17fSxvPXt9LGE9ZWxlKHQuaW5FbWJlZGRpbmdUeXBlcykscz1lbGUodC5vdXRFbWJlZGRpbmdUeXBlcyksbD1bXSxjPWUubm9kZSx1PW5ldyBBcnJheShjLmxlbmd0aCk7cmV0dXJuIHIxKCJOb3JtYWxpemluZyBuYW1lcyIsMzAsKCk9PntsZXQgaD1uZXcgQXJyYXkoYy5sZW5ndGgpLGY9MCxwPWc9PntsZXQgXz1uZXcgeTAoZyk7cmV0dXJuIGEoXyk/KGwucHVzaChfLm5hbWUpLG5bXy5uYW1lXT1fLF8pOnMoXyk/KGwucHVzaChfLm5hbWUpLGlbXy5uYW1lXT1fLHBuLmVhY2goXy5pbnB1dHMseT0+e2xldCB4PXkubmFtZTtvW3hdPW9beF18fFtdLG9beF0ucHVzaChfKX0pLF8pOihoW2ZdPV8sdVtmXT1fLm5hbWUsZisrLF8pfTtwbi5lYWNoKGMscCk7bGV0IGQ9Zz0+e2xldCBfPU1hK2cuc2lnbmF0dXJlLm5hbWU7aWYocCh7bmFtZTpfLGlucHV0OltdLGRldmljZToiIixvcDoiIixhdHRyOltdfSksZy5zaWduYXR1cmUuaW5wdXRfYXJnKXtsZXQgYj0wLFM9Qz0+e2xldCBQPXAoe25hbWU6XytQbCtDLm5hbWUsaW5wdXQ6W10sZGV2aWNlOiIiLG9wOiJpbnB1dF9hcmciLGF0dHI6W3trZXk6IlQiLHZhbHVlOnt0eXBlOkMudHlwZX19XX0pO1AuZnVuY3Rpb25JbnB1dEluZGV4PWIsYisrfTtnLnNpZ25hdHVyZS5pbnB1dF9hcmcubmFtZT9TKGcuc2lnbmF0dXJlLmlucHV0X2FyZyk6cG4uZWFjaChnLnNpZ25hdHVyZS5pbnB1dF9hcmcsUyl9bGV0IHk9MCx4PXt9O2lmKGcuc2lnbmF0dXJlLm91dHB1dF9hcmcpe2xldCBiPVM9Pnt4W18rUGwrUy5uYW1lXT15LHkrK307Zy5zaWduYXR1cmUub3V0cHV0X2FyZy5uYW1lP2IoZy5zaWduYXR1cmUub3V0cHV0X2FyZyk6cG4uZWFjaChnLnNpZ25hdHVyZS5vdXRwdXRfYXJnLGIpfXBuLmVhY2goZy5ub2RlX2RlZixiPT57Yi5uYW1lPV8rIi8iK2IubmFtZSx0eXBlb2YgYi5pbnB1dD09InN0cmluZyImJihiLmlucHV0PVtiLmlucHV0XSk7bGV0IFM9cChiKTtwbi5pc051bWJlcih4W2IubmFtZV0pJiYoUy5mdW5jdGlvbk91dHB1dEluZGV4PXhbYi5uYW1lXSkscG4uZWFjaChTLmlucHV0cyxDPT57Qy5uYW1lPV8rUGwrQy5uYW1lfSl9KX07cmV0dXJuIGUubGlicmFyeSYmZS5saWJyYXJ5LmZ1bmN0aW9uJiZwbi5lYWNoKGUubGlicmFyeS5mdW5jdGlvbixkKSxoLnNwbGljZShmKSx1LnNwbGljZShmKSxofSxyLGpyLk5PUk1BTElaSU5HX05BTUVTKS50aGVuKGg9PnIxKCJCdWlsZGluZyB0aGUgZGF0YSBzdHJ1Y3R1cmUiLDcwLCgpPT57bGV0IGY9dWNyKHUsbCkscD1uZXcgWHU7cmV0dXJuIHBuLmVhY2goaCxkPT57bGV0IGc9ZltkLm5hbWVdfHxkLm5hbWU7cC5ub2Rlc1tnXT1kLGQubmFtZSBpbiBvJiYoZC5vdXRFbWJlZGRpbmdzPW9bZC5uYW1lXSxwbi5lYWNoKGQub3V0RW1iZWRkaW5ncyxfPT57Xy5uYW1lPWZbXy5uYW1lXXx8Xy5uYW1lfSkpLGQubmFtZT1nfSkscG4uZWFjaChoLGQ9Pntwbi5lYWNoKGQuaW5wdXRzLChnLF8pPT57bGV0IHk9Zy5uYW1lO2lmKHkgaW4gbil7bGV0IHg9blt5XTtkLmluRW1iZWRkaW5ncy5wdXNoKHgpO2ZvcihsZXQgYiBvZiB4LmlucHV0cylGbHQocCxmW2IubmFtZV18fGIubmFtZSxkLGIsdCxfKX1lbHNlIGlmKHkgaW4gaSl7bGV0IHg9aVt5XTtmb3IobGV0IGIgb2YgeC5pbnB1dHMpRmx0KHAsZltiLm5hbWVdfHxiLm5hbWUsZCxnLHQsXyl9ZWxzZSBGbHQocCxmW3ldfHx5LGQsZyx0LF8pfSl9KSxwbi5lYWNoKG4sKGQsZyk9PntkLm5hbWU9ZltkLm5hbWVdfHxkLm5hbWV9KSxwfSxyLGpyLkJVSUxEX1NMSU1fR1JBUEgpKX1mdW5jdGlvbiBlMyhlLHQscj17fSl7bGV0IG49bmV3IG5sZS5ncmFwaGxpYi5HcmFwaChyKTtyZXR1cm4gbi5zZXRHcmFwaCh7bmFtZTplLHJhbmtkaXI6ci5yYW5rZGlyfHwiQlQiLHR5cGU6dH0pLG59ZnVuY3Rpb24gZWxlKGUpe3JldHVybiBmdW5jdGlvbih0KXtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7bGV0IG49bmV3IFJlZ0V4cChlW3JdKTtpZih0eXBlb2YgdC5vcD09InN0cmluZyImJnQub3AubWF0Y2gobikpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIHNQKGUpe2xldCB0PWUuc3BsaXQoUGwpO3JldHVybiBlK1BsKyIoIit0W3QubGVuZ3RoLTFdKyIpIn1mdW5jdGlvbiB1Y3IoZSx0KXtsZXQgcj17fSxuPXt9O2Uuc29ydCgpO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGgtMTsrK2kpe2xldCBvPWVbaV07cG4uZWFjaChjUChvKS5zbGljZSgwLC0xKSxhPT57blthXT0hMH0pO2ZvcihsZXQgYT1pKzE7YTxlLmxlbmd0aDsrK2Epe2xldCBzPWVbYV07aWYocG4uc3RhcnRzV2l0aChzLG8pKXtpZihzLmxlbmd0aD5vLmxlbmd0aCYmcy5jaGFyQXQoby5sZW5ndGgpPT09UGwpe3Jbb109c1Aobyk7YnJlYWt9fWVsc2UgYnJlYWt9fXJldHVybiBwbi5lYWNoKHQsaT0+e2kgaW4gbiYmKHJbaV09c1AoaSkpfSkscn1mdW5jdGlvbiBybGUoZSl7bGV0IHQ9ZS5ub2RlcygpLm1hcChmdW5jdGlvbihyKXt2YXIgbjtyZXR1cm4obj1lLm5laWdoYm9ycyhyKSk9PW51bGw/dm9pZCAwOm4ubGVuZ3RofSk7cmV0dXJuIHQuc29ydCgpLHR9ZnVuY3Rpb24gY2xlKGUsdCl7bGV0IHI9cmxlKGUpLG49cmxlKHQpO2ZvcihsZXQgaT0wO2k8ci5sZW5ndGg7aSsrKWlmKHJbaV0hPT1uW2ldKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGNQKGUsdCl7bGV0IHI9W10sbj1lLmluZGV4T2YoUGwpO2Zvcig7bj49MDspci5wdXNoKGUuc3Vic3RyaW5nKDAsbikpLG49ZS5pbmRleE9mKFBsLG4rMSk7aWYodCl7bGV0IGk9dFtlXTtpJiZyLnB1c2goaSl9cmV0dXJuIHIucHVzaChlKSxyfWZ1bmN0aW9uIHlIKGUpe3JldHVybiBlPT09dXIuRVhDTFVERT8iQWRkIHRvIG1haW4gZ3JhcGgiOiJSZW1vdmUgZnJvbSBtYWluIGdyYXBoIn1mdW5jdGlvbiB1bGUoZSl7cmV0dXJuIGU9PT1vcy5HUk9VUD8iVW5ncm91cCB0aGlzIHNlcmllcyBvZiBub2RlcyI6Ikdyb3VwIHRoaXMgc2VyaWVzIG9mIG5vZGVzIn12YXIgSGU9RWUoT2UoKSwxKTt2YXIgbjE9RWUoT2UoKSwxKTtmdW5jdGlvbiBobGUoZSx0KXtsZXQgcj1mY3IoZSksbj1wY3Iocix0KTtyZXR1cm4gT2JqZWN0LmtleXMobikuc29ydChpPT5uW2ldLmxldmVsKS5yZWR1Y2UoKGksbyk9PihpW29dPW5bb10saSkse30pfWZ1bmN0aW9uIGhjcihlKXtsZXQgdD1uMS5tYXAoe2RlcHRoOmUuZGVwdGgsInxWfCI6ZS5tZXRhZ3JhcGgubm9kZXMoKS5sZW5ndGgsInxFfCI6ZS5tZXRhZ3JhcGguZWRnZXMoKS5sZW5ndGh9LGZ1bmN0aW9uKG4saSl7cmV0dXJuIGkrIj0iK259KS5qb2luKCIgIikscj1uMS5tYXAoZS5vcEhpc3RvZ3JhbSxmdW5jdGlvbihuLGkpe3JldHVybiBpKyI9IitufSkuam9pbigiLCIpO3JldHVybiB0KyIgW29wc10gIityfWZ1bmN0aW9uIGZjcihlKXtsZXQgdD1lLmdldE5vZGVNYXAoKSxyPU9iamVjdC5rZXlzKHQpLnJlZHVjZSgobixpKT0+e2xldCBvPXRbaV07aWYoby50eXBlIT09anQuTUVUQSlyZXR1cm4gbjtsZXQgYT1pLnNwbGl0KCIvIikubGVuZ3RoLTEscz1oY3IobyksbD1uW3NdfHx7bm9kZXM6W10sbGV2ZWw6YX07cmV0dXJuIG5bc109bCxsLm5vZGVzLnB1c2gobyksbC5sZXZlbD5hJiYobC5sZXZlbD1hKSxufSx7fSk7cmV0dXJuIE9iamVjdC5rZXlzKHIpLm1hcChuPT5bbixyW25dXSkuZmlsdGVyKChbbixpXSk9PntsZXR7bm9kZXM6b309aTtpZihvLmxlbmd0aD4xKXJldHVybiEwO2xldCBhPW9bMF07cmV0dXJuIGEudHlwZT09PWp0Lk1FVEEmJmEuYXNzb2NpYXRlZEZ1bmN0aW9ufSkuc29ydCgoW24saV0pPT5pLm5vZGVzWzBdLmRlcHRoKX1mdW5jdGlvbiBwY3IoZSx0KXtyZXR1cm4gbjEucmVkdWNlKGUsZnVuY3Rpb24obixpKXtsZXQgbz1pWzBdLGE9aVsxXS5ub2RlcyxzPVtdO3JldHVybiBhLmZvckVhY2goZnVuY3Rpb24obCl7Zm9yKGxldCBjPTA7YzxzLmxlbmd0aDtjKyspaWYoIXR8fGRjcihzW2NdLm1ldGFub2RlLm1ldGFncmFwaCxsLm1ldGFncmFwaCkpe2wudGVtcGxhdGVJZD1zW2NdLm1ldGFub2RlLnRlbXBsYXRlSWQsc1tjXS5tZW1iZXJzLnB1c2gobC5uYW1lKTtyZXR1cm59bC50ZW1wbGF0ZUlkPW8rIlsiK3MubGVuZ3RoKyJdIixzLnB1c2goe21ldGFub2RlOmwsbWVtYmVyczpbbC5uYW1lXX0pfSkscy5mb3JFYWNoKGZ1bmN0aW9uKGwpe25bbC5tZXRhbm9kZS50ZW1wbGF0ZUlkXT17bGV2ZWw6aVsxXS5sZXZlbCxub2RlczpsLm1lbWJlcnN9fSksbn0se30pfWZ1bmN0aW9uIHZIKGUsdCxyKXtyZXR1cm4gbjEuc29ydEJ5KGUsW249PnQubm9kZShuKS5vcCxuPT50Lm5vZGUobikudGVtcGxhdGVJZCxuPT57dmFyIGk7cmV0dXJuKGk9dC5uZWlnaGJvcnMobikpPT1udWxsP3ZvaWQgMDppLmxlbmd0aH0sbj0+e3ZhciBpO3JldHVybihpPXQucHJlZGVjZXNzb3JzKG4pKT09bnVsbD92b2lkIDA6aS5sZW5ndGh9LG49Pnt2YXIgaTtyZXR1cm4oaT10LnN1Y2Nlc3NvcnMobikpPT1udWxsP3ZvaWQgMDppLmxlbmd0aH0sbj0+bi5zdWJzdHIoci5sZW5ndGgpXSl9ZnVuY3Rpb24gZGNyKGUsdCl7aWYoIWNsZShlLHQpKXJldHVybiExO2xldCByPWUuZ3JhcGgoKS5uYW1lLG49dC5ncmFwaCgpLm5hbWUsaT17fSxvPXt9LGE9W107ZnVuY3Rpb24gcyh1LGgpe2xldCBmPXUuc3Vic3RyKHIubGVuZ3RoKSxwPWguc3Vic3RyKG4ubGVuZ3RoKTtyZXR1cm4gaVtmXV5vW3BdPyhjb25zb2xlLndhcm4oImRpZmZlcmVudCB2aXNpdCBwYXR0ZXJuIiwiWyIrcisiXSIsZiwiWyIrbisiXSIscCksITApOihpW2ZdfHwoaVtmXT1vW3BdPSEwLGEucHVzaCh7bjE6dSxuMjpofSkpLCExKX1sZXQgbD1lLnNvdXJjZXMoKSxjPXQuc291cmNlcygpO2lmKGwubGVuZ3RoIT09Yy5sZW5ndGgpcmV0dXJuIGNvbnNvbGUubG9nKCJkaWZmZXJlbnQgc291cmNlIGxlbmd0aCIpLCExO2w9dkgobCxlLHIpLGM9dkgoYyx0LG4pO2ZvcihsZXQgdT0wO3U8bC5sZW5ndGg7dSsrKWlmKHMobFt1XSxjW3VdKSlyZXR1cm4hMTtmb3IoO2EubGVuZ3RoPjA7KXtsZXQgdT1hLnBvcCgpO2lmKCFtY3IoZS5ub2RlKHU9PW51bGw/dm9pZCAwOnUubjEpLHQubm9kZSh1PT1udWxsP3ZvaWQgMDp1Lm4yKSkpcmV0dXJuITE7bGV0IGY9ZS5zdWNjZXNzb3JzKHU9PW51bGw/dm9pZCAwOnUubjEpLHA9dC5zdWNjZXNzb3JzKHU9PW51bGw/dm9pZCAwOnUubjIpO2lmKChmPT1udWxsP3ZvaWQgMDpmLmxlbmd0aCkhPT0ocD09bnVsbD92b2lkIDA6cC5sZW5ndGgpKXJldHVybiBjb25zb2xlLmxvZygiIyBvZiBzdWNjZXNzb3JzIG1pc21hdGNoIixmLHApLCExO2Y9dkgoZixlLHIpLHA9dkgocCx0LG4pO2ZvcihsZXQgZD0wO2Q8KGY9PW51bGw/dm9pZCAwOmYubGVuZ3RoKTtkKyspaWYocyhmPT1udWxsP3ZvaWQgMDpmW2RdLHA9PW51bGw/dm9pZCAwOnBbZF0pKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIG1jcihlLHQpe2lmKGUudHlwZT09PWp0Lk1FVEEpe2xldCByPWUsbj10O3JldHVybiEhci50ZW1wbGF0ZUlkJiYhIW4udGVtcGxhdGVJZCYmci50ZW1wbGF0ZUlkPT09bi50ZW1wbGF0ZUlkfWVsc2V7aWYoZS50eXBlPT09anQuT1AmJnQudHlwZT09PWp0Lk9QKXJldHVybiBlLm9wPT09dC5vcDtpZihlLnR5cGU9PT1qdC5TRVJJRVMmJnQudHlwZT09PWp0LlNFUklFUyl7bGV0IHI9ZSxuPXQsaT1yLm1ldGFncmFwaC5ub2RlQ291bnQoKTtyZXR1cm4gaT09PW4ubWV0YWdyYXBoLm5vZGVDb3VudCgpJiYoaT09PTB8fHIubWV0YWdyYXBoLm5vZGUoci5tZXRhZ3JhcGgubm9kZXMoKVswXSkub3A9PT1uLm1ldGFncmFwaC5ub2RlKG4ubWV0YWdyYXBoLm5vZGVzKClbMF0pLm9wKX19cmV0dXJuITF9dmFyIE9kOyhmdW5jdGlvbihlKXtlW2UuVEVNUExBVEVTX1VQREFURUQ9MF09IlRFTVBMQVRFU19VUERBVEVEIn0pKE9kfHwoT2Q9e30pKTt2YXIgYXM9Y2xhc3MgZXh0ZW5kcyBkSHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuaGFzU2hhcGVJbmZvPSExLHRoaXMubWF4TWV0YUVkZ2VTaXplPTEsdGhpcy5ncmFwaE9wdGlvbnM9e30sdGhpcy50ZW1wbGF0ZXM9bnVsbCx0aGlzLmdyYXBoT3B0aW9ucy5jb21wb3VuZD0hMCx0aGlzLmdyYXBoT3B0aW9ucy5yYW5rZGlyPXQucmFua0RpcmVjdGlvbix0aGlzLnJvb3Q9bFAocWMsdGhpcy5ncmFwaE9wdGlvbnMpLHRoaXMubGlicmFyeUZ1bmN0aW9ucz17fSx0aGlzLnNlcmllc0dyb3VwTWFwPW5ldyBNYXAodC5zZXJpZXNNYXApLHRoaXMuZGV2aWNlcz1udWxsLHRoaXMueGxhQ2x1c3RlcnM9bnVsbCx0aGlzLnZlcmlmeVRlbXBsYXRlPXQudmVyaWZ5VGVtcGxhdGUsdGhpcy5pbmRleD17fSx0aGlzLmluZGV4W3FjXT10aGlzLnJvb3QsdGhpcy5vcmRlcmluZ3M9e319Z2V0U2VyaWVzR3JvdXBUeXBlKHQpe3ZhciByO3JldHVybihyPXRoaXMuc2VyaWVzR3JvdXBNYXAuZ2V0KHQpKSE9bnVsbD9yOm9zLkdST1VQfXNldFNlcmllc0dyb3VwVHlwZSh0LHIpe3JldHVybiB0aGlzLnNlcmllc0dyb3VwTWFwLnNldCh0LHIpfWJ1aWxkU2VyaWVzR3JvdXBNYXBUb2dnbGVkKHQpe2xldCByPXRoaXMuZ2V0U2VyaWVzR3JvdXBUeXBlKHQpPT09b3MuR1JPVVA/b3MuVU5HUk9VUDpvcy5HUk9VUDtyZXR1cm4gbmV3IE1hcChbLi4udGhpcy5zZXJpZXNHcm91cE1hcCxbdCxyXV0pfWdldE5vZGVNYXAoKXtyZXR1cm4gdGhpcy5pbmRleH1ub2RlKHQpe3JldHVybiB0aGlzLmluZGV4W3RdfXNldE5vZGUodCxyKXt0aGlzLmluZGV4W3RdPXJ9Z2V0QnJpZGdlZ3JhcGgodCl7bGV0IHI9dGhpcy5pbmRleFt0XTtpZighcil0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgbm9kZSBpbiBoaWVyYXJjaHk6ICIrdCk7aWYoISgibWV0YWdyYXBoImluIHIpKXJldHVybiBudWxsO2xldCBuPXI7aWYobi5icmlkZ2VncmFwaClyZXR1cm4gbi5icmlkZ2VncmFwaDtsZXQgaT1uLmJyaWRnZWdyYXBoPWUzKCJCUklER0VHUkFQSCIsXzAuQlJJREdFLHRoaXMuZ3JhcGhPcHRpb25zKTtpZighci5wYXJlbnROb2RlfHwhKCJtZXRhZ3JhcGgiaW4gci5wYXJlbnROb2RlKSlyZXR1cm4gaTtsZXQgbz1yLnBhcmVudE5vZGUsYT1vLm1ldGFncmFwaCxzPXRoaXMuZ2V0QnJpZGdlZ3JhcGgoby5uYW1lKTtyZXR1cm4gSGUuZWFjaChbYSxzXSxsPT57bC5lZGdlcygpLmZpbHRlcihjPT5jLnY9PT10fHxjLnc9PT10KS5mb3JFYWNoKGM9PntsZXQgdT1jLnc9PT10LGg9bC5lZGdlKGMpO0hlLmVhY2goaC5iYXNlRWRnZUxpc3QsZj0+e2xldFtwLGRdPXU/W2YudyxjLnZdOltmLnYsYy53XSxnPXRoaXMuZ2V0Q2hpbGROYW1lKHQscCksXz17djp1P2Q6Zyx3OnU/ZzpkfSx5PWkuZWRnZShfKTt5fHwoeT1IbHQoXy52LF8udykseS5pbmJvdW5kPXUsaS5zZXRFZGdlKF8udixfLncseSkpLHkuYWRkQmFzZUVkZ2UoZix0aGlzKX0pfSl9KSxpfWdldENoaWxkTmFtZSh0LHIpe2xldCBuPXRoaXMuaW5kZXhbcl07Zm9yKDtuOyl7aWYobi5wYXJlbnROb2RlJiZuLnBhcmVudE5vZGUubmFtZT09PXQpcmV0dXJuIG4ubmFtZTtuPW4ucGFyZW50Tm9kZX10aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgaW1tZWRpYXRlIGNoaWxkIGZvciBkZXNjZW5kYW50OiAiK3IpfWdldFByZWRlY2Vzc29ycyh0KXtsZXQgcj10aGlzLmluZGV4W3RdO2lmKCFyKXRocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCBub2RlIHdpdGggbmFtZTogIit0KTtsZXQgbj10aGlzLmdldE9uZVdheUVkZ2VzKHIsITApO3JldHVybiByLmlzR3JvdXBOb2RlfHxIZS5lYWNoKHIuaW5FbWJlZGRpbmdzLGk9PntIZS5lYWNoKHIuaW5wdXRzLG89PntpZihvLm5hbWU9PT1pLm5hbWUpe2xldCBhPW5ldyBHZihpLm5hbWUsdCk7YS5hZGRCYXNlRWRnZSh7aXNDb250cm9sRGVwZW5kZW5jeTpvLmlzQ29udHJvbERlcGVuZGVuY3ksb3V0cHV0VGVuc29yS2V5Om8ub3V0cHV0VGVuc29yS2V5LGlzUmVmZXJlbmNlRWRnZTohMSx2OmkubmFtZSx3OnR9LHRoaXMpLG4ucmVndWxhci5wdXNoKGEpfX0pfSksbn1nZXRTdWNjZXNzb3JzKHQpe2xldCByPXRoaXMuaW5kZXhbdF07aWYoIXIpdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIG5vZGUgd2l0aCBuYW1lOiAiK3QpO2xldCBuPXRoaXMuZ2V0T25lV2F5RWRnZXMociwhMSk7cmV0dXJuIHIuaXNHcm91cE5vZGV8fEhlLmVhY2goci5vdXRFbWJlZGRpbmdzLGk9PntIZS5lYWNoKGkuaW5wdXRzLG89PntpZihvLm5hbWU9PT10KXtsZXQgYT1uZXcgR2YodCxpLm5hbWUpO2EuYWRkQmFzZUVkZ2Uoe2lzQ29udHJvbERlcGVuZGVuY3k6by5pc0NvbnRyb2xEZXBlbmRlbmN5LG91dHB1dFRlbnNvcktleTpvLm91dHB1dFRlbnNvcktleSxpc1JlZmVyZW5jZUVkZ2U6ITEsdjp0LHc6aS5uYW1lfSx0aGlzKSxuLnJlZ3VsYXIucHVzaChhKX19KX0pLG59Z2V0T25lV2F5RWRnZXModCxyKXtsZXQgbj17Y29udHJvbDpbXSxyZWd1bGFyOltdfTtpZighdC5wYXJlbnROb2RlfHwhdC5wYXJlbnROb2RlLmlzR3JvdXBOb2RlKXJldHVybiBuO2xldCBpPXQucGFyZW50Tm9kZSxvPWkubWV0YWdyYXBoLGE9dGhpcy5nZXRCcmlkZ2VncmFwaChpLm5hbWUpO3JldHVybiBmbGUobyx0LHIsbiksZmxlKGEsdCxyLG4pLG59Z2V0VG9wb2xvZ2ljYWxPcmRlcmluZyh0KXtsZXQgcj10aGlzLmluZGV4W3RdO2lmKCFyKXRocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCBub2RlIHdpdGggbmFtZTogIit0KTtpZighci5pc0dyb3VwTm9kZSlyZXR1cm4gbnVsbDtpZih0IGluIHRoaXMub3JkZXJpbmdzKXJldHVybiB0aGlzLm9yZGVyaW5nc1t0XTtsZXQgbj17fSxpPXt9LG89ci5tZXRhZ3JhcGg7SGUuZWFjaChvLmVkZ2VzKCksYz0+eyFvLmVkZ2UoYykubnVtUmVndWxhckVkZ2VzfHwoYy52IGluIG58fChuW2Mudl09W10pLG5bYy52XS5wdXNoKGMudyksaVtjLnddPSEwKX0pO2xldCBhPUhlLmRpZmZlcmVuY2UoSGUua2V5cyhuKSxIZS5rZXlzKGkpKSxzPXRoaXMub3JkZXJpbmdzW3RdPXt9LGw9MDtmb3IoO2EubGVuZ3RoOyl7bGV0IGM9YS5zaGlmdCgpO3NbY109bCsrLEhlLmVhY2gobltjXSx1PT5hLnB1c2godSkpLGRlbGV0ZSBuW2NdfXJldHVybiBzfWdldFRlbXBsYXRlSW5kZXgoKXtpZighdGhpcy50ZW1wbGF0ZXMpcmV0dXJuIG51bGw7bGV0IHQ9JEwodGhpcy50ZW1wbGF0ZXMpO2lmKCF0Lmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgcj1ndSgpLmRvbWFpbih0KS5yYW5nZShJcigwLHQubGVuZ3RoKSk7cmV0dXJuIG49PnIobil9dXBkYXRlVGVtcGxhdGVzKCl7TmQoIkZpbmRpbmcgc2ltaWxhciBzdWJncmFwaHMiLCgpPT57dGhpcy50ZW1wbGF0ZXM9aGxlKHRoaXMsdGhpcy52ZXJpZnlUZW1wbGF0ZSksdGhpcy5kaXNwYXRjaEV2ZW50KE9kLlRFTVBMQVRFU19VUERBVEVEKX0sanIuSElFUkFSQ0hZX0ZJTkRfU0lNSUxBUl9TVUJHUkFQSFMpfX07ZnVuY3Rpb24gZmxlKGUsdCxyLG4pe2xldCBpPXI/ZS5pbkVkZ2VzKHQubmFtZSk6ZS5vdXRFZGdlcyh0Lm5hbWUpO0hlLmVhY2goaSxvPT57bGV0IGE9ZS5lZGdlKG8pOyhhLm51bVJlZ3VsYXJFZGdlcz9uLnJlZ3VsYXI6bi5jb250cm9sKS5wdXNoKGEpfSl9dmFyIHIzPXt2ZXJpZnlUZW1wbGF0ZTohMCxzZXJpZXNOb2RlTWluU2l6ZTo1LHNlcmllc01hcDpuZXcgTWFwLHJhbmtEaXJlY3Rpb246IkJUIix1c2VHZW5lcmFsaXplZFNlcmllc1BhdHRlcm5zOiExfTtmdW5jdGlvbiBiSChlLHQscil7bGV0IG49bmV3IGFzKHQpLGk9e307cmV0dXJuIHIxKCJBZGRpbmcgbm9kZXMiLDMwLCgpPT57bGV0IG89e30sYT17fTtIZS5lYWNoKGUubm9kZXMsKHMsbCk9PntzLmRldmljZSYmKG9bcy5kZXZpY2VdPSEwKSxzLnhsYUNsdXN0ZXImJihhW3MueGxhQ2x1c3Rlcl09ITApfSksbi5kZXZpY2VzPUhlLmtleXMobyksbi54bGFDbHVzdGVycz1IZS5rZXlzKGEpLF9jcihuLGUpfSxyLGpyLkhJRVJBUkNIWV9BRERfTk9ERVMpLnRoZW4oKCk9PnIxKCJEZXRlY3Qgc2VyaWVzIiwzMCwoKT0+e3Quc2VyaWVzTm9kZU1pblNpemU+MCYmbWxlKG4ucm9vdCxuLGksdC5zZXJpZXNOb2RlTWluU2l6ZSx0LnNlcmllc01hcCx0LnVzZUdlbmVyYWxpemVkU2VyaWVzUGF0dGVybnMpfSxyLGpyLkhJRVJBUkNIWV9ERVRFQ1RfU0VSSUVTKSkudGhlbigoKT0+cjEoIkFkZGluZyBlZGdlcyIsNDAsKCk9Pnt5Y3IobixlLGkpfSxyLGpyLkhJRVJBUkNIWV9BRERfRURHRVMpKS50aGVuKCgpPT5uKX1mdW5jdGlvbiBwbGUoZSx0KXtsZXQgcj17fSxuPXt9O0hlLmVhY2goZS5yb290LmxlYXZlcygpLGk9PntsZXQgbz1lLm5vZGUoaSk7by5kZXZpY2UhPW51bGwmJihyW28uZGV2aWNlXT0hMCksby54bGFDbHVzdGVyIT1udWxsJiYobltvLnhsYUNsdXN0ZXJdPSEwKX0pLGUuZGV2aWNlcz1IZS5rZXlzKHIpLGUueGxhQ2x1c3RlcnM9SGUua2V5cyhuKSxIZS5lYWNoKGUuZ2V0Tm9kZU1hcCgpLChpLG8pPT57aS5pc0dyb3VwTm9kZSYmKGkuc3RhdHM9bmV3IEtTKG51bGwpLGkuZGV2aWNlSGlzdG9ncmFtPXt9KX0pLEhlLmVhY2goZS5yb290LmxlYXZlcygpLGk9PntsZXQgbz1lLm5vZGUoaSksYT1vO2Zvcig7YS5wYXJlbnROb2RlIT1udWxsOyl7aWYoby5kZXZpY2UhPW51bGwpe2xldCBzPWEucGFyZW50Tm9kZS5kZXZpY2VIaXN0b2dyYW07c1tvLmRldmljZV09KHNbby5kZXZpY2VdfHwwKSsxfWlmKG8ueGxhQ2x1c3RlciE9bnVsbCl7bGV0IHM9YS5wYXJlbnROb2RlLnhsYUNsdXN0ZXJIaXN0b2dyYW07c1tvLnhsYUNsdXN0ZXJdPShzW28ueGxhQ2x1c3Rlcl18fDApKzF9by5zdGF0cyE9bnVsbCYmYS5wYXJlbnROb2RlLnN0YXRzLmNvbWJpbmUoby5zdGF0cyksYT1hLnBhcmVudE5vZGV9fSl9ZnVuY3Rpb24gZGxlKGUpe2xldCB0PVtdLHI9e307cmV0dXJuIEhlLmVhY2goZS5yb290LmxlYXZlcygpLG49PntsZXQgaT1lLm5vZGUobik7aWYoaS50eXBlPT1qdC5PUCl7bGV0IG89aTtpZighby5jb21wYXRpYmxlKWlmKG8ub3duaW5nU2VyaWVzKXtpZihlLmdldFNlcmllc0dyb3VwVHlwZShvLm93bmluZ1Nlcmllcyk9PT1vcy5VTkdST1VQKXQucHVzaChvKTtlbHNlIGlmKCFyW28ub3duaW5nU2VyaWVzXSl7bGV0IGE9ZS5ub2RlKG8ub3duaW5nU2VyaWVzKTthJiYocltvLm93bmluZ1Nlcmllc109YSx0LnB1c2goYSkpfX1lbHNlIHQucHVzaChvKTtIZS5lYWNoKG8uaW5FbWJlZGRpbmdzLGE9PnthLmNvbXBhdGlibGV8fHQucHVzaChhKX0pLEhlLmVhY2goby5vdXRFbWJlZGRpbmdzLGE9PnthLmNvbXBhdGlibGV8fHQucHVzaChhKX0pfX0pLHR9ZnVuY3Rpb24gX2NyKGUsdCl7bGV0IHI9e307SGUuZWFjaCh0Lm5vZGVzLChuLGkpPT57bGV0IG89Y1Aobi5uYW1lKSxhPWUucm9vdDthLmRlcHRoPU1hdGgubWF4KG8ubGVuZ3RoLGEuZGVwdGgpLHJbbi5vcF18fChyW24ub3BdPVtdKSxyW24ub3BdLnB1c2gobik7Zm9yKGxldCBzPTA7czxvLmxlbmd0aCYmKGEuZGVwdGg9TWF0aC5tYXgoYS5kZXB0aCxvLmxlbmd0aC1zKSxhLmNhcmRpbmFsaXR5Kz1uLmNhcmRpbmFsaXR5LGEub3BIaXN0b2dyYW1bbi5vcF09KGEub3BIaXN0b2dyYW1bbi5vcF18fDApKzEsbi5kZXZpY2UhPW51bGwmJihhLmRldmljZUhpc3RvZ3JhbVtuLmRldmljZV09KGEuZGV2aWNlSGlzdG9ncmFtW24uZGV2aWNlXXx8MCkrMSksbi54bGFDbHVzdGVyIT1udWxsJiYoYS54bGFDbHVzdGVySGlzdG9ncmFtW24ueGxhQ2x1c3Rlcl09KGEueGxhQ2x1c3Rlckhpc3RvZ3JhbVtuLnhsYUNsdXN0ZXJdfHwwKSsxKSxuLmNvbXBhdGlibGU/YS5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGU9KGEuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5jb21wYXRpYmxlfHwwKSsxOmEuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGU9KGEuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGV8fDApKzEsSGUuZWFjaChuLmluRW1iZWRkaW5ncyx1PT57dS5jb21wYXRpYmxlP2EuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5jb21wYXRpYmxlPShhLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZXx8MCkrMTphLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlPShhLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlfHwwKSsxfSksSGUuZWFjaChuLm91dEVtYmVkZGluZ3MsdT0+e3UuY29tcGF0aWJsZT9hLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZT0oYS5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGV8fDApKzE6YS5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZT0oYS5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZXx8MCkrMX0pLHMhPT1vLmxlbmd0aC0xKTtzKyspe2xldCBsPW9bc10sYz1lLm5vZGUobCk7aWYoIWMmJihjPWxQKGwsZS5ncmFwaE9wdGlvbnMpLGMucGFyZW50Tm9kZT1hLGUuc2V0Tm9kZShsLGMpLGEubWV0YWdyYXBoLnNldE5vZGUobCxjKSxsLmluZGV4T2YoTWEpPT09MCYmYS5uYW1lPT09cWMpKXtsZXQgdT1sLnN1YnN0cmluZyhNYS5sZW5ndGgpO3JbdV18fChyW3VdPVtdKSxlLmxpYnJhcnlGdW5jdGlvbnNbdV09e25vZGU6Yyx1c2FnZXM6clt1XX0sYy5hc3NvY2lhdGVkRnVuY3Rpb249dX1hPWN9ZS5zZXROb2RlKG4ubmFtZSxuKSxuLnBhcmVudE5vZGU9YSxhLm1ldGFncmFwaC5zZXROb2RlKG4ubmFtZSxuKSxIZS5lYWNoKG4uaW5FbWJlZGRpbmdzLGZ1bmN0aW9uKHMpe2Uuc2V0Tm9kZShzLm5hbWUscykscy5wYXJlbnROb2RlPW59KSxIZS5lYWNoKG4ub3V0RW1iZWRkaW5ncyxmdW5jdGlvbihzKXtlLnNldE5vZGUocy5uYW1lLHMpLHMucGFyZW50Tm9kZT1ufSl9KX1mdW5jdGlvbiB5Y3IoZSx0LHIpe2xldCBuPWUuZ2V0Tm9kZU1hcCgpLGk9W10sbz1bXSxhPShzLGwpPT57bGV0IGM9MDtmb3IoO3M7KWxbYysrXT1zLm5hbWUscz1zLnBhcmVudE5vZGU7cmV0dXJuIGMtMX07SGUuZWFjaCh0LmVkZ2VzLHM9PntsZXQgbD1hKHQubm9kZXNbcy52XSxpKSxjPWEodC5ub2Rlc1tzLnddLG8pO2lmKGw9PT0tMXx8Yz09PS0xKXJldHVybjtmb3IoO2lbbF09PT1vW2NdOylpZihsLS0sYy0tLGw8MHx8YzwwKXRocm93IEVycm9yKCJObyBkaWZmZXJlbmNlIGZvdW5kIGJldHdlZW4gYW5jZXN0b3IgcGF0aHMuIik7bGV0IHU9bltpW2wrMV1dLGg9aVtsXSxmPW9bY10scD11Lm1ldGFncmFwaC5lZGdlKGgsZik7cHx8KHA9SGx0KGgsZiksdS5tZXRhZ3JhcGguc2V0RWRnZShoLGYscCkpLCF1Lmhhc05vbkNvbnRyb2xFZGdlcyYmIXMuaXNDb250cm9sRGVwZW5kZW5jeSYmKHUuaGFzTm9uQ29udHJvbEVkZ2VzPSEwKSxwLmFkZEJhc2VFZGdlKHMsZSl9KX1mdW5jdGlvbiBtbGUoZSx0LHIsbixpLG8pe2xldCBhPWUubWV0YWdyYXBoO0hlLmVhY2goYS5ub2RlcygpLHU9PntsZXQgaD1hLm5vZGUodSk7aC50eXBlPT09anQuTUVUQSYmbWxlKGgsdCxyLG4saSxvKX0pO2xldCBzPXZjcihhKSxjPShvP2Jjcjp4Y3IpKHMsYSx0LmdyYXBoT3B0aW9ucyk7SGUuZWFjaChjLGZ1bmN0aW9uKHUsaCl7bGV0IGY9dS5tZXRhZ3JhcGgubm9kZXMoKTtIZS5lYWNoKGYscD0+e2xldCBkPWEubm9kZShwKTtkLm93bmluZ1Nlcmllc3x8KGQub3duaW5nU2VyaWVzPWgpfSksZi5sZW5ndGg8biYmdC5nZXRTZXJpZXNHcm91cFR5cGUodS5uYW1lKT09PW9zLkdST1VQJiZ0LnNldFNlcmllc0dyb3VwVHlwZSh1Lm5hbWUsb3MuVU5HUk9VUCksdC5nZXRTZXJpZXNHcm91cFR5cGUodS5uYW1lKSE9PW9zLlVOR1JPVVAmJih0LnNldE5vZGUoaCx1KSxhLnNldE5vZGUoaCx1KSxIZS5lYWNoKGYscD0+e2xldCBkPWEubm9kZShwKTt1Lm1ldGFncmFwaC5zZXROb2RlKHAsZCksdS5wYXJlbnROb2RlPWQucGFyZW50Tm9kZSx1LmNhcmRpbmFsaXR5KyssZC5kZXZpY2UhPW51bGwmJih1LmRldmljZUhpc3RvZ3JhbVtkLmRldmljZV09KHUuZGV2aWNlSGlzdG9ncmFtW2QuZGV2aWNlXXx8MCkrMSksZC54bGFDbHVzdGVyIT1udWxsJiYodS54bGFDbHVzdGVySGlzdG9ncmFtW2QueGxhQ2x1c3Rlcl09KHUueGxhQ2x1c3Rlckhpc3RvZ3JhbVtkLnhsYUNsdXN0ZXJdfHwwKSsxKSxkLmNvbXBhdGlibGU/dS5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGU9KHUuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5jb21wYXRpYmxlfHwwKSsxOnUuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGU9KHUuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGV8fDApKzEsSGUuZWFjaChkLmluRW1iZWRkaW5ncyxnPT57Zy5jb21wYXRpYmxlP3UuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5jb21wYXRpYmxlPSh1LmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZXx8MCkrMTp1LmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlPSh1LmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlfHwwKSsxfSksSGUuZWFjaChkLm91dEVtYmVkZGluZ3MsZz0+e2cuY29tcGF0aWJsZT91LmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZT0odS5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGV8fDApKzE6dS5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZT0odS5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZXx8MCkrMX0pLGQucGFyZW50Tm9kZT11LHJbcF09aCxhLnJlbW92ZU5vZGUocCl9KSl9KX1mdW5jdGlvbiB2Y3IoZSl7bGV0IHQ9e307cmV0dXJuIEhlLnJlZHVjZShlLm5vZGVzKCksKHIsbik9PntsZXQgaT1lLm5vZGUobik7aWYoaS50eXBlPT09anQuTUVUQSlyZXR1cm4gcjtsZXQgbz1pLm9wO3JldHVybiBvJiYocltvXT1yW29dfHxbXSxyW29dLnB1c2goaS5uYW1lKSkscn0sdCl9ZnVuY3Rpb24geGNyKGUsdCxyKXtsZXQgbj17fTtyZXR1cm4gSGUuZWFjaChlLGZ1bmN0aW9uKGksbyl7aWYoaS5sZW5ndGg8PTEpcmV0dXJuO2xldCBhPXt9O0hlLmVhY2goaSxmdW5jdGlvbihzKXtsZXQgbD1zLmNoYXJBdChzLmxlbmd0aC0xKT09PSIqIixjPXMuc3BsaXQoIi8iKSx1PWNbYy5sZW5ndGgtMV0saD1jLnNsaWNlKDAsYy5sZW5ndGgtMSkuam9pbigiLyIpLGY9dS5tYXRjaCgvXihcRCopKFxkKykkLykscCxkLGc9IiI7Zj8ocD1mWzFdLGQ9ZlsyXSk6KHA9bD91LnN1YnN0cigwLHUubGVuZ3RoLTEpOnUsZD0wLGc9bD8iKiI6IiIpO2xldCBfPXQzKHAsZyxoKTthW19dPWFbX118fFtdO2xldCB5PVFTKHAsZyxoLCtkLHMscik7YVtfXS5wdXNoKHkpfSksSGUuZWFjaChhLGZ1bmN0aW9uKHMsbCl7aWYocy5sZW5ndGg8MilyZXR1cm47cy5zb3J0KGZ1bmN0aW9uKHUsaCl7cmV0dXJuK3UuY2x1c3RlcklkLStoLmNsdXN0ZXJJZH0pO2xldCBjPVtzWzBdXTtmb3IobGV0IHU9MTt1PHMubGVuZ3RoO3UrKyl7bGV0IGg9c1t1XTtpZihoLmNsdXN0ZXJJZD09PWNbYy5sZW5ndGgtMV0uY2x1c3RlcklkKzEpe2MucHVzaChoKTtjb250aW51ZX14SChjLG4sK28sdCxyKSxjPVtoXX14SChjLG4sK28sdCxyKX0pfSksbn1mdW5jdGlvbiBiY3IoZSx0LHIpe2xldCBuPXt9O3JldHVybiBIZS5lYWNoKGUsZnVuY3Rpb24oaSxvKXtpZihpLmxlbmd0aDw9MSlyZXR1cm47bGV0IGE9e30scz17fTtIZS5lYWNoKGksZnVuY3Rpb24oYyl7bGV0IHU9Yy5jaGFyQXQoYy5sZW5ndGgtMSk9PT0iKiIsaD1jLnNwbGl0KCIvIiksZj1oW2gubGVuZ3RoLTFdLHA9aC5zbGljZSgwLGgubGVuZ3RoLTEpLmpvaW4oIi8iKSxkPS8oXGQrKS9nLGc9W10sXyx5LHgsYixTLEM9MDtmb3IoO189ZC5leGVjKGYpOykrK0MseT1mLnNsaWNlKDAsXy5pbmRleCkseD1fWzBdLGI9Zi5zbGljZShfLmluZGV4K19bMF0ubGVuZ3RoKSxTPXQzKHksYixwKSxhW1NdPWFbU10sYVtTXXx8KGFbU109UVMoeSxiLHAsK3gsYyxyKSksYVtTXS5pZHMucHVzaCh4KSxzW2NdPXNbY118fFtdLHNbY10ucHVzaChbUyx4XSk7QzwxJiYoeT11P2Yuc3Vic3RyKDAsZi5sZW5ndGgtMSk6Zix4PTAsYj11PyIqIjoiIixTPXQzKHksYixwKSxhW1NdPWFbU10sYVtTXXx8KGFbU109UVMoeSxiLHAsK3gsYyxyKSksYVtTXS5pZHMucHVzaCh4KSxzW2NdPXNbY118fFtdLHNbY10ucHVzaChbUyx4XSkpfSk7dmFyIGw9e307SGUuZWFjaChzLGZ1bmN0aW9uKGMsdSl7Yy5zb3J0KGZ1bmN0aW9uKHkseCl7cmV0dXJuIGFbeFswXV0uaWRzLmxlbmd0aC1hW3lbMF1dLmlkcy5sZW5ndGh9KTt2YXIgaD1jWzBdWzBdLGY9Y1swXVsxXTtsW2hdPWxbaF18fFtdO2xldCBwPXUuc3BsaXQoIi8iKSxkPXBbcC5sZW5ndGgtMV0sZz1wLnNsaWNlKDAscC5sZW5ndGgtMSkuam9pbigiLyIpO3ZhciBfPVFTKGFbaF0ucHJlZml4LGFbaF0uc3VmZml4LGcsK2YsdSxyKTtsW2hdLnB1c2goXyl9KSxIZS5lYWNoKGwsZnVuY3Rpb24oYyx1KXtpZihjLmxlbmd0aDwyKXJldHVybjtjLnNvcnQoZnVuY3Rpb24oZixwKXtyZXR1cm4rZi5jbHVzdGVySWQtK3AuY2x1c3RlcklkfSk7bGV0IGg9W2NbMF1dO2ZvcihsZXQgZj0xO2Y8Yy5sZW5ndGg7ZisrKXtsZXQgcD1jW2ZdO2lmKHAuY2x1c3RlcklkPT09aFtoLmxlbmd0aC0xXS5jbHVzdGVySWQrMSl7aC5wdXNoKHApO2NvbnRpbnVlfXhIKGgsbiwrbyx0LHIpLGg9W3BdfXhIKGgsbiwrbyx0LHIpfSl9KSxufWZ1bmN0aW9uIHhIKGUsdCxyLG4saSl7aWYoZS5sZW5ndGg+MSl7bGV0IG89dDMoZVswXS5wcmVmaXgsZVswXS5zdWZmaXgsZVswXS5wYXJlbnQsZVswXS5jbHVzdGVySWQsZVtlLmxlbmd0aC0xXS5jbHVzdGVySWQpLGE9UVMoZVswXS5wcmVmaXgsZVswXS5zdWZmaXgsZVswXS5wYXJlbnQscixvLGkpO0hlLmVhY2goZSxmdW5jdGlvbihzKXthLmlkcy5wdXNoKHMuY2x1c3RlcklkKSxhLm1ldGFncmFwaC5zZXROb2RlKHMubmFtZSxuLm5vZGUocy5uYW1lKSl9KSx0W29dPWF9fXZhciBtZT1FZShPZSgpLDEpO3ZhciB2MD17REVGQVVMVF9GSUxMOiIjZmZmZmZmIixERUZBVUxUX1NUUk9LRToiI2IyYjJiMiIsQ09NUEFUSUJMRToiIzBmOWQ1OCIsSU5DT01QQVRJQkxFOiIjZGI0NDM3In0sS3U9e0RFRkFVTFRfRklMTDoiI2Q5ZDlkOSIsREVGQVVMVF9TVFJPS0U6IiNhNmE2YTYiLFNBVFVSQVRJT046LjYsTElHSFRORVNTOi44NSxFWFBBTkRFRF9DT0xPUjoiI2YwZjBmMCIsSFVFUzpbMjIwLDEwMCwxODAsNDAsMjAsMzQwLDI2MCwzMDAsMTQwLDYwXSxTVFJVQ1RVUkVfUEFMRVRURShlLHQpe2xldCByPUt1LkhVRVMsbj1yLmxlbmd0aCxpPXJbZSVuXSxvPU1hdGguc2luKGkqTWF0aC5QSS8zNjApLGE9dD8zMDo5MC02MCpvLHM9dD85NTo4MDtyZXR1cm4gVW0oaSwuMDEqYSwuMDEqcykudG9TdHJpbmcoKX0sREVWSUNFX1BBTEVUVEUoZSl7cmV0dXJuIEt1LlNUUlVDVFVSRV9QQUxFVFRFKGUpfSxYTEFfQ0xVU1RFUl9QQUxFVFRFKGUpe3JldHVybiBLdS5TVFJVQ1RVUkVfUEFMRVRURShlKX0sVU5LTk9XTjoiI2VlZSIsR1JBRElFTlRfT1VUTElORToiIzg4OCJ9LFZsdD17REVGQVVMVF9GSUxMOiJ3aGl0ZSIsREVGQVVMVF9TVFJPS0U6IiNiMmIyYjIifSxYbz17bWluTm9kZUNvdW50Rm9yRXh0cmFjdGlvbjoxNSxtaW5EZWdyZWVGb3JFeHRyYWN0aW9uOjUsbWF4Q29udHJvbERlZ3JlZTo0LG1heEJyaWRnZVBhdGhEZWdyZWU6NCxvdXRFeHRyYWN0VHlwZXM6WyJOb09wIl0saW5FeHRyYWN0VHlwZXM6W10sZGV0YWNoQWxsRWRnZXNGb3JIaWdoRGVncmVlOiEwLGV4dHJhY3RJc29sYXRlZE5vZGVzV2l0aEFubm90YXRpb25zT25PbmVTaWRlOiEwLGVuYWJsZUJyaWRnZWdyYXBoOiEwLG1pbk1heENvbG9yczpbIiNmZmY1ZjAiLCIjZmI2YTRhIl0sbWF4QW5ub3RhdGlvbnM6NX0sd2NyPW5ldyBSZWdFeHAoIl4oPzoiK01hKyIpPyhcXHcrKV9bYS16MC05XXs4fSg/Ol9cXGQrKT8kIiksbG89Y2xhc3N7Y29uc3RydWN0b3IodCxyLG4pe3RoaXMuaGllcmFyY2h5PXQsdGhpcy5kaXNwbGF5aW5nU3RhdHM9cix0aGlzLmF1dG9FeHRyYWN0Tm9kZXM9bix0aGlzLmluZGV4PXt9LHRoaXMucmVuZGVyZWRPcE5hbWVzPVtdLHRoaXMuY29tcHV0ZVNjYWxlcygpLHRoaXMuaGFzU3ViaGllcmFyY2h5PXt9LHRoaXMucm9vdD1uZXcgU0godC5yb290LHQuZ3JhcGhPcHRpb25zKSx0aGlzLmluZGV4W3Qucm9vdC5uYW1lXT10aGlzLnJvb3QsdGhpcy5yZW5kZXJlZE9wTmFtZXMucHVzaCh0LnJvb3QubmFtZSksdGhpcy5idWlsZFN1YmhpZXJhcmNoeSh0LnJvb3QubmFtZSksdGhpcy5yb290LmV4cGFuZGVkPSEwLHRoaXMudHJhY2VJbnB1dHM9ITF9Y29tcHV0ZVNjYWxlcygpe3RoaXMuZGV2aWNlQ29sb3JNYXA9Z3UoKS5kb21haW4odGhpcy5oaWVyYXJjaHkuZGV2aWNlcykucmFuZ2UobWUubWFwKElyKHRoaXMuaGllcmFyY2h5LmRldmljZXMubGVuZ3RoKSxLdS5ERVZJQ0VfUEFMRVRURSkpLHRoaXMueGxhQ2x1c3RlckNvbG9yTWFwPWd1KCkuZG9tYWluKHRoaXMuaGllcmFyY2h5LnhsYUNsdXN0ZXJzKS5yYW5nZShtZS5tYXAoSXIodGhpcy5oaWVyYXJjaHkueGxhQ2x1c3RlcnMubGVuZ3RoKSxLdS5YTEFfQ0xVU1RFUl9QQUxFVFRFKSk7bGV0IHQ9dGhpcy5oaWVyYXJjaHkucm9vdC5tZXRhZ3JhcGgscj1sdSh0Lm5vZGVzKCksKGksbyk9PntsZXQgYT10Lm5vZGUoaSk7aWYoYS5zdGF0cyE9bnVsbClyZXR1cm4gYS5zdGF0cy50b3RhbEJ5dGVzfSk7dGhpcy5tZW1vcnlVc2FnZVNjYWxlPXpuKCkuZG9tYWluKFswLHJdKS5yYW5nZShYby5taW5NYXhDb2xvcnMpO2xldCBuPWx1KHQubm9kZXMoKSwoaSxvKT0+e2xldCBhPXQubm9kZShpKTtpZihhLnN0YXRzIT1udWxsKXJldHVybiBhLnN0YXRzLmdldFRvdGFsTWljcm9zKCl9KTt0aGlzLmNvbXB1dGVUaW1lU2NhbGU9em4oKS5kb21haW4oWzAsbl0pLnJhbmdlKFhvLm1pbk1heENvbG9ycyksdGhpcy5lZGdlV2lkdGhTaXplZEJhc2VkU2NhbGU9dGhpcy5oaWVyYXJjaHkuaGFzU2hhcGVJbmZvP1hzZTp6bigpLmRvbWFpbihbMSx0aGlzLmhpZXJhcmNoeS5tYXhNZXRhRWRnZVNpemVdKS5yYW5nZShbUTQsdFBdKX1nZXRSZW5kZXJOb2RlQnlOYW1lKHQpe3JldHVybiB0aGlzLmluZGV4W3RdfWdldE5vZGVCeU5hbWUodCl7cmV0dXJuIHRoaXMuaGllcmFyY2h5Lm5vZGUodCl9Y29sb3JIaXN0b2dyYW0odCxyKXtpZihPYmplY3Qua2V5cyh0KS5sZW5ndGg+MCl7bGV0IG49bWUuc3VtKE9iamVjdC5rZXlzKHQpLm1hcChpPT50W2ldKSk7cmV0dXJuIE9iamVjdC5rZXlzKHQpLm1hcChpPT4oe2NvbG9yOnIoaSkscHJvcG9ydGlvbjp0W2ldL259KSl9cmV0dXJuIG51bGx9Z2V0T3JDcmVhdGVSZW5kZXJOb2RlQnlOYW1lKHQpe2lmKCF0KXJldHVybiBudWxsO2lmKHQgaW4gdGhpcy5pbmRleClyZXR1cm4gdGhpcy5pbmRleFt0XTtsZXQgcj10aGlzLmhpZXJhcmNoeS5ub2RlKHQpO2lmKCFyKXJldHVybiBudWxsO2xldCBuPXIuaXNHcm91cE5vZGU/bmV3IFNIKHIsdGhpcy5oaWVyYXJjaHkuZ3JhcGhPcHRpb25zKTpuZXcgV2Yocik7dGhpcy5pbmRleFt0XT1uLHRoaXMucmVuZGVyZWRPcE5hbWVzLnB1c2godCksci5zdGF0cyYmKG4ubWVtb3J5Q29sb3I9dGhpcy5tZW1vcnlVc2FnZVNjYWxlKHIuc3RhdHMudG90YWxCeXRlcyksbi5jb21wdXRlVGltZUNvbG9yPXRoaXMuY29tcHV0ZVRpbWVTY2FsZShyLnN0YXRzLmdldFRvdGFsTWljcm9zKCkpKSxuLmlzRmFkZWRPdXQ9dGhpcy5kaXNwbGF5aW5nU3RhdHMmJiFnSChyLnN0YXRzKTt2YXIgaT1udWxsLG89bnVsbCxhPW51bGw7aWYoci5pc0dyb3VwTm9kZSl7aT1yLmRldmljZUhpc3RvZ3JhbSxvPXIueGxhQ2x1c3Rlckhpc3RvZ3JhbTtsZXQgcz1yLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZSxsPXIuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGU7KHMhPTB8fGwhPTApJiYoYT1zLyhzK2wpKX1lbHNle2xldCBzPW4ubm9kZS5kZXZpY2U7cyYmKGk9e1tzXToxfSk7bGV0IGw9bi5ub2RlLnhsYUNsdXN0ZXI7bCYmKG89e1tsXToxfSksbi5ub2RlLnR5cGU9PT1qdC5PUCYmKGE9bi5ub2RlLmNvbXBhdGlibGU/MTowKX1yZXR1cm4gaSYmKG4uZGV2aWNlQ29sb3JzPXRoaXMuY29sb3JIaXN0b2dyYW0oaSx0aGlzLmRldmljZUNvbG9yTWFwKSksbyYmKG4ueGxhQ2x1c3RlckNvbG9ycz10aGlzLmNvbG9ySGlzdG9ncmFtKG8sdGhpcy54bGFDbHVzdGVyQ29sb3JNYXApKSxhIT1udWxsJiYobi5jb21wYXRpYmlsaXR5Q29sb3JzPVt7Y29sb3I6djAuQ09NUEFUSUJMRSxwcm9wb3J0aW9uOmF9LHtjb2xvcjp2MC5JTkNPTVBBVElCTEUscHJvcG9ydGlvbjoxLWF9XSksdGhpcy5pbmRleFt0XX1nZXROZWFyZXN0VmlzaWJsZUFuY2VzdG9yKHQpe2xldCByPWNQKHQpLG49MCxpPW51bGwsbz10O2Zvcig7bjxyLmxlbmd0aCYmKG89cltuXSxpPXRoaXMuZ2V0UmVuZGVyTm9kZUJ5TmFtZShvKSwhIWkuZXhwYW5kZWQpO24rKyk7aWYobj09ci5sZW5ndGgtMil7bGV0IGE9cltuKzFdO2lmKGkhPW51bGwmJmkuaW5Bbm5vdGF0aW9ucy5ub2RlTmFtZXNbYV18fGkhPW51bGwmJmkub3V0QW5ub3RhdGlvbnMubm9kZU5hbWVzW2FdKXJldHVybiBhfXJldHVybiBvfXNldERlcHRoKHQpe3lsZSh0aGlzLnJvb3QsK3QpfWlzTm9kZUF1eGlsaWFyeSh0KXtsZXQgcj10aGlzLmdldFJlbmRlck5vZGVCeU5hbWUodC5ub2RlLnBhcmVudE5vZGUubmFtZSksbj1tZS5maW5kKHIuaXNvbGF0ZWRJbkV4dHJhY3QsaT0+aS5ub2RlLm5hbWU9PT10Lm5vZGUubmFtZSk7cmV0dXJuIG4/ITA6KG49bWUuZmluZChyLmlzb2xhdGVkT3V0RXh0cmFjdCxpPT5pLm5vZGUubmFtZT09PXQubm9kZS5uYW1lKSwhIW4pfWdldE5hbWVzT2ZSZW5kZXJlZE9wcygpe3JldHVybiB0aGlzLnJlbmRlcmVkT3BOYW1lc31jbG9uZUFuZEFkZEZ1bmN0aW9uT3BOb2RlKHQscixuLGkpe2xldCBvPW4ubmFtZS5yZXBsYWNlKHIsaSksYT10Lm1ldGFncmFwaC5ub2RlKG8pO2lmKGEpcmV0dXJuIGE7YT1uZXcgeTAoe25hbWU6byxpbnB1dDpbXSxkZXZpY2U6bi5kZXZpY2Usb3A6bi5vcCxhdHRyOm1lLmNsb25lRGVlcChuLmF0dHIpfSksYS5jYXJkaW5hbGl0eT1uLmNhcmRpbmFsaXR5LGEuaW5jbHVkZT1uLmluY2x1ZGUsYS5vdXRwdXRTaGFwZXM9bWUuY2xvbmVEZWVwKG4ub3V0cHV0U2hhcGVzKSxhLnhsYUNsdXN0ZXI9bi54bGFDbHVzdGVyLGEuZnVuY3Rpb25JbnB1dEluZGV4PW4uZnVuY3Rpb25JbnB1dEluZGV4LGEuZnVuY3Rpb25PdXRwdXRJbmRleD1uLmZ1bmN0aW9uT3V0cHV0SW5kZXgsYS5pbnB1dHM9bi5pbnB1dHMubWFwKGw9PntsZXQgYz1tZS5jbG9uZShsKTtyZXR1cm4gYy5uYW1lPWwubmFtZS5yZXBsYWNlKHIsaSksY30pLGEucGFyZW50Tm9kZT10LHQubWV0YWdyYXBoLnNldE5vZGUoYS5uYW1lLGEpLHRoaXMuaGllcmFyY2h5LnNldE5vZGUoYS5uYW1lLGEpO2xldCBzPWw9PnRoaXMuY2xvbmVBbmRBZGRGdW5jdGlvbk9wTm9kZSh0LHIsbCxpKTtyZXR1cm4gYS5pbkVtYmVkZGluZ3M9bi5pbkVtYmVkZGluZ3MubWFwKHMpLGEub3V0RW1iZWRkaW5ncz1uLm91dEVtYmVkZGluZ3MubWFwKHMpLGF9Y2xvbmVGdW5jdGlvbkxpYnJhcnlNZXRhbm9kZSh0LHIsbixpLG8pe2xldCBhPXt9LHM9dGhpcy5jbG9uZUZ1bmN0aW9uTGlicmFyeU1ldGFub2RlSGVscGVyKHQscixuLGksbyxhKTtyZXR1cm4gbWUuaXNFbXB0eShhKXx8dGhpcy5wYXRjaEVkZ2VzRnJvbUZ1bmN0aW9uT3V0cHV0cyhyLGEpLHN9Y2xvbmVGdW5jdGlvbkxpYnJhcnlNZXRhbm9kZUhlbHBlcih0LHIsbixpLG8sYSl7bGV0IHM9bFAobi5uYW1lLnJlcGxhY2UoaSxvKSk7cmV0dXJuIHMuZGVwdGg9bi5kZXB0aCxzLmNhcmRpbmFsaXR5PW4uY2FyZGluYWxpdHkscy50ZW1wbGF0ZUlkPW4udGVtcGxhdGVJZCxzLm9wSGlzdG9ncmFtPW1lLmNsb25lKG4ub3BIaXN0b2dyYW0pLHMuZGV2aWNlSGlzdG9ncmFtPW1lLmNsb25lKG4uZGV2aWNlSGlzdG9ncmFtKSxzLnhsYUNsdXN0ZXJIaXN0b2dyYW09bWUuY2xvbmUobi54bGFDbHVzdGVySGlzdG9ncmFtKSxzLmhhc05vbkNvbnRyb2xFZGdlcz1uLmhhc05vbkNvbnRyb2xFZGdlcyxzLmluY2x1ZGU9bi5pbmNsdWRlLHMubm9kZUF0dHJpYnV0ZXM9bWUuY2xvbmUobi5ub2RlQXR0cmlidXRlcykscy5hc3NvY2lhdGVkRnVuY3Rpb249bi5hc3NvY2lhdGVkRnVuY3Rpb24sbWUuZWFjaChuLm1ldGFncmFwaC5ub2RlcygpLGw9PntsZXQgYz1uLm1ldGFncmFwaC5ub2RlKGwpO3N3aXRjaChjLnR5cGUpe2Nhc2UganQuTUVUQTpsZXQgdT10aGlzLmNsb25lRnVuY3Rpb25MaWJyYXJ5TWV0YW5vZGVIZWxwZXIodCxyLGMsaSxvLGEpO3UucGFyZW50Tm9kZT1zLHMubWV0YWdyYXBoLnNldE5vZGUodS5uYW1lLHUpLHRoaXMuaGllcmFyY2h5LnNldE5vZGUodS5uYW1lLHUpO2JyZWFrO2Nhc2UganQuT1A6bGV0IGg9dGhpcy5jbG9uZUFuZEFkZEZ1bmN0aW9uT3BOb2RlKHMsaSxjLG8pO21lLmlzTnVtYmVyKGguZnVuY3Rpb25JbnB1dEluZGV4KSYmdGhpcy5wYXRjaEVkZ2VzSW50b0Z1bmN0aW9uSW5wdXRzKHIsaCksbWUuaXNOdW1iZXIoaC5mdW5jdGlvbk91dHB1dEluZGV4KSYmKGFbaC5mdW5jdGlvbk91dHB1dEluZGV4XT1oKTticmVhaztkZWZhdWx0OmNvbnNvbGUud2FybihjLm5hbWUrIiBpcyBvZGRseSBuZWl0aGVyIGEgbWV0YW5vZGUgbm9yIGFuIG9wbm9kZS4iKX19KSx0aGlzLmNsb25lTGlicmFyeU1ldGFub2RlRWRnZXMobixzLGksbyksc31jbG9uZUxpYnJhcnlNZXRhbm9kZUVkZ2VzKHQscixuLGkpe21lLmVhY2godC5tZXRhZ3JhcGguZWRnZXMoKSxvPT57bGV0IGE9dC5tZXRhZ3JhcGguZWRnZShvKSxzPWEudi5yZXBsYWNlKG4saSksbD1hLncucmVwbGFjZShuLGkpLGM9bmV3IEdmKHMsbCk7Yy5pbmJvdW5kPWEuaW5ib3VuZCxjLm51bVJlZ3VsYXJFZGdlcz1hLm51bVJlZ3VsYXJFZGdlcyxjLm51bUNvbnRyb2xFZGdlcz1hLm51bUNvbnRyb2xFZGdlcyxjLm51bVJlZkVkZ2VzPWEubnVtUmVmRWRnZXMsYy50b3RhbFNpemU9YS50b3RhbFNpemUsYS5iYXNlRWRnZUxpc3QmJihjLmJhc2VFZGdlTGlzdD1hLmJhc2VFZGdlTGlzdC5tYXAodT0+e2xldCBoPW1lLmNsb25lKHUpO3JldHVybiBoLnY9dS52LnJlcGxhY2UobixpKSxoLnc9dS53LnJlcGxhY2UobixpKSxofSkpLHIubWV0YWdyYXBoLm5vZGUobCk/ci5tZXRhZ3JhcGguc2V0RWRnZShzLGwsYyk6ci5tZXRhZ3JhcGguc2V0RWRnZShsLHMsYyl9KX1wYXRjaEVkZ2VzSW50b0Z1bmN0aW9uSW5wdXRzKHQscil7bGV0IG49TWF0aC5taW4oci5mdW5jdGlvbklucHV0SW5kZXgsdC5pbnB1dHMubGVuZ3RoLTEpLGk9bWUuY2xvbmUodC5pbnB1dHNbbl0pO2Zvcig7aS5pc0NvbnRyb2xEZXBlbmRlbmN5OyluKyssaT10LmlucHV0c1tuXTtyLmlucHV0cy5wdXNoKGkpO2xldCBvPXRoaXMuaGllcmFyY2h5LmdldFByZWRlY2Vzc29ycyh0Lm5hbWUpLGEscz0wO21lLmVhY2goby5yZWd1bGFyLGw9PntpZihzKz1sLm51bVJlZ3VsYXJFZGdlcyxzPm4pcmV0dXJuIGE9bCwhMX0pLG1lLmVhY2goYS5iYXNlRWRnZUxpc3QsbD0+e2wudz09PXQubmFtZSYmKGwudz1yLm5hbWUpLGwudj09PXQubmFtZSYmKGwudj1yLm5hbWUpfSl9cGF0Y2hFZGdlc0Zyb21GdW5jdGlvbk91dHB1dHModCxyKXtsZXQgbj10aGlzLmhpZXJhcmNoeS5nZXRTdWNjZXNzb3JzKHQubmFtZSk7bWUuZWFjaChuLnJlZ3VsYXIsaT0+e21lLmVhY2goaS5iYXNlRWRnZUxpc3Qsbz0+e2xldCBhPXRoaXMuaGllcmFyY2h5Lm5vZGUoby53KTttZS5lYWNoKGEuaW5wdXRzLHM9PntpZihzLm5hbWU9PT10Lm5hbWUpe2xldCBsPXJbcy5vdXRwdXRUZW5zb3JLZXldO3MubmFtZT1sLm5hbWUscy5vdXRwdXRUZW5zb3JLZXk9by5vdXRwdXRUZW5zb3JLZXl9fSl9KSxtZS5lYWNoKGkuYmFzZUVkZ2VMaXN0LG89PntvLnY9cltvLm91dHB1dFRlbnNvcktleV0ubmFtZSxvLm91dHB1dFRlbnNvcktleT0iMCJ9KX0pfWJ1aWxkU3ViaGllcmFyY2h5KHQpe2lmKHQgaW4gdGhpcy5oYXNTdWJoaWVyYXJjaHkpcmV0dXJuO3RoaXMuaGFzU3ViaGllcmFyY2h5W3RdPSEwO2xldCByPXRoaXMuaW5kZXhbdF07aWYoci5ub2RlLnR5cGUhPT1qdC5NRVRBJiZyLm5vZGUudHlwZSE9PWp0LlNFUklFUylyZXR1cm47bGV0IG49cixpPW4ubm9kZS5tZXRhZ3JhcGgsbz1uLmNvcmVHcmFwaCxhPVtdLHM9W107bWUuaXNFbXB0eSh0aGlzLmhpZXJhcmNoeS5saWJyYXJ5RnVuY3Rpb25zKXx8KG1lLmVhY2goaS5ub2RlcygpLGQ9PntsZXQgZz1pLm5vZGUoZCksXz10aGlzLmhpZXJhcmNoeS5saWJyYXJ5RnVuY3Rpb25zW2cub3BdO2lmKCFffHxkLmluZGV4T2YoTWEpPT09MClyZXR1cm47bGV0IHk9dGhpcy5jbG9uZUZ1bmN0aW9uTGlicmFyeU1ldGFub2RlKGksZyxfLm5vZGUsXy5ub2RlLm5hbWUsZy5uYW1lKTthLnB1c2goZykscy5wdXNoKHkpfSksbWUuZWFjaChzLChkLGcpPT57bGV0IF89YVtnXTtkLnBhcmVudE5vZGU9Xy5wYXJlbnROb2RlLGkuc2V0Tm9kZShfLm5hbWUsZCksdGhpcy5oaWVyYXJjaHkuc2V0Tm9kZShfLm5hbWUsZCl9KSksbWUuZWFjaChpLm5vZGVzKCksZD0+e2xldCBnPXRoaXMuZ2V0T3JDcmVhdGVSZW5kZXJOb2RlQnlOYW1lKGQpLF89Zy5ub2RlO28uc2V0Tm9kZShkLGcpLF8uaXNHcm91cE5vZGV8fChtZS5lYWNoKF8uaW5FbWJlZGRpbmdzLHk9PntsZXQgeD1uZXcgemQobnVsbCksYj1uZXcgV2YoeSk7Z2xlKGcseSxiLHgsZ2kuQ09OU1RBTlQpLHRoaXMuaW5kZXhbeS5uYW1lXT1ifSksbWUuZWFjaChfLm91dEVtYmVkZGluZ3MseT0+e2xldCB4PW5ldyB6ZChudWxsKSxiPW5ldyBXZih5KTtfbGUoZyx5LGIseCxnaS5TVU1NQVJZKSx0aGlzLmluZGV4W3kubmFtZV09Yn0pKX0pLG1lLmVhY2goaS5lZGdlcygpLGQ9PntsZXQgZz1pLmVkZ2UoZCksXz1uZXcgemQoZyk7Xy5pc0ZhZGVkT3V0PXRoaXMuaW5kZXhbZC52XS5pc0ZhZGVkT3V0fHx0aGlzLmluZGV4W2Qud10uaXNGYWRlZE91dCxvLnNldEVkZ2UoZC52LGQudyxfKX0pLG4ubm9kZS50eXBlPT09anQuTUVUQSYmUGNyKG4sdGhpcy5hdXRvRXh0cmFjdE5vZGVzKSxtZS5pc0VtcHR5KHRoaXMuaGllcmFyY2h5LmxpYnJhcnlGdW5jdGlvbnMpfHx0aGlzLmJ1aWxkU3ViaGllcmFyY2hpZXNGb3JOZWVkZWRGdW5jdGlvbnMoaSksdD09PXFjJiZtZS5mb3JPd24odGhpcy5oaWVyYXJjaHkubGlicmFyeUZ1bmN0aW9ucywoZCxnKT0+e2xldCBfPWQubm9kZSx5PXRoaXMuZ2V0T3JDcmVhdGVSZW5kZXJOb2RlQnlOYW1lKF8ubmFtZSk7bi5saWJyYXJ5RnVuY3Rpb25zRXh0cmFjdC5wdXNoKHkpLHkubm9kZS5pbmNsdWRlPXVyLkVYQ0xVREUsby5yZW1vdmVOb2RlKF8ubmFtZSl9KTtsZXQgbD1uLm5vZGUucGFyZW50Tm9kZTtpZighbClyZXR1cm47bGV0IGM9dGhpcy5pbmRleFtsLm5hbWVdLHU9KGQsLi4uZyk9PmcuY29uY2F0KFtkPyJJTiI6Ik9VVCJdKS5qb2luKCJ+fiIpLGg9dGhpcy5oaWVyYXJjaHkuZ2V0QnJpZGdlZ3JhcGgodCksZj17aW46e30sb3V0Ont9LGNvbnRyb2w6e319O21lLmVhY2goaC5lZGdlcygpLGQ9PntsZXQgZz0hIWkubm9kZShkLncpLF89Zz9kLnY6ZC53O2guZWRnZShkKS5udW1SZWd1bGFyRWRnZXM/Zz9mLm91dFtfXT0oZi5vdXRbX118fDApKzE6Zi5pbltfXT0oZi5pbltfXXx8MCkrMTpmLmNvbnRyb2xbX109KGYuY29udHJvbFtfXXx8MCkrMX0pO2xldCBwPXRoaXMuaGllcmFyY2h5LmdldE5vZGVNYXAoKTttZS5lYWNoKGguZWRnZXMoKSxkPT57bGV0IGc9aC5lZGdlKGQpLF89ISFpLm5vZGUoZC53KSxbeSx4XT1fP1tkLncsZC52XTpbZC52LGQud10sYj10aGlzLmluZGV4W3ldLFM9dGhpcy5pbmRleFt4XSxDPVM/Uy5ub2RlOnBbeF0sUD0hZy5udW1SZWd1bGFyRWRnZXMmJmYuY29udHJvbFt4XT5Yby5tYXhDb250cm9sRGVncmVlLFssa109Xz9bci5pbkFubm90YXRpb25zLGIuaW5Bbm5vdGF0aW9uc106W3Iub3V0QW5ub3RhdGlvbnMsYi5vdXRBbm5vdGF0aW9uc10sRD0oXz9mLm91dDpmLmluKVt4XT5Yby5tYXhCcmlkZ2VQYXRoRGVncmVlLEI9bnVsbCxJPSExO2lmKFhvLmVuYWJsZUJyaWRnZWdyYXBoJiYhRCYmIVAmJmIuaXNJbkNvcmUoKSl7bGV0IFc9Wj0+e2xldCBydD1fP3t2Olosdzp0fTp7djp0LHc6Wn07cmV0dXJuIGMuY29yZUdyYXBoLmVkZ2UocnQpfTtCPVcoeCksQnx8KEI9Vyh1KF8seCxsLm5hbWUpKSksST0hIUJ9bGV0IEw9ITE7aWYoQiYmIWcubnVtUmVndWxhckVkZ2VzKXtsZXQgVz1CLFo9Yy5ub2RlO2Zvcig7Vy5hZGpvaW5pbmdNZXRhZWRnZTspVz1XLmFkam9pbmluZ01ldGFlZGdlLFo9Wi5wYXJlbnROb2RlO2xldCBydD10aGlzLmhpZXJhcmNoeS5nZXRUb3BvbG9naWNhbE9yZGVyaW5nKFoubmFtZSksb3Q9Vy5tZXRhZWRnZTtMPXJ0W290LnZdPnJ0W290LnddfWlmKEk9SSYmIUwsIUkpe2sucHVzaChuZXcgaTMoQyxTLG5ldyB6ZChnKSxnaS5TSE9SVENVVCxfKSk7cmV0dXJufWxldCBSPXUoXyx0KSxGPXUoXyx4LHQpLHo9by5ub2RlKEYpO2lmKCF6KXtsZXQgVz1vLm5vZGUoUik7aWYoIVcpe2xldCBydD17bmFtZTpSLHR5cGU6anQuQlJJREdFLGlzR3JvdXBOb2RlOiExLGNhcmRpbmFsaXR5OjAscGFyZW50Tm9kZTpudWxsLHN0YXRzOm51bGwsaW5jbHVkZTp1ci5VTlNQRUNJRklFRCxpbmJvdW5kOl8sbm9kZUF0dHJpYnV0ZXM6e319O1c9bmV3IFdmKHJ0KSx0aGlzLmluZGV4W1JdPVcsby5zZXROb2RlKFIsVyl9bGV0IFo9e25hbWU6Rix0eXBlOmp0LkJSSURHRSxpc0dyb3VwTm9kZTohMSxjYXJkaW5hbGl0eToxLHBhcmVudE5vZGU6bnVsbCxzdGF0czpudWxsLGluY2x1ZGU6dXIuVU5TUEVDSUZJRUQsaW5ib3VuZDpfLG5vZGVBdHRyaWJ1dGVzOnt9fTt6PW5ldyBXZihaKSx0aGlzLmluZGV4W0ZdPXosby5zZXROb2RlKEYseiksby5zZXRQYXJlbnQoRixSKSxXLm5vZGUuY2FyZGluYWxpdHkrK31sZXQgVT1uZXcgemQoZyk7VS5hZGpvaW5pbmdNZXRhZWRnZT1CLF8/by5zZXRFZGdlKEYseSxVKTpvLnNldEVkZ2UoeSxGLFUpfSksbWUuZWFjaChbITAsITFdLGQ9PntsZXQgZz11KGQsdCksXz1vLm5vZGUoZyk7IV98fG1lLmVhY2goby5ub2RlcygpLHk9Pnt2YXIgayxPO2lmKG8ubm9kZSh5KS5ub2RlLnR5cGU9PT1qdC5CUklER0V8fCEoZD8hKChrPW8ucHJlZGVjZXNzb3JzKHkpKSE9bnVsbCYmay5sZW5ndGgpOiEoKE89by5zdWNjZXNzb3JzKHkpKSE9bnVsbCYmTy5sZW5ndGgpKSlyZXR1cm47bGV0IFM9dShkLHQsIlNUUlVDVFVSQUxfVEFSR0VUIiksQz1vLm5vZGUoUyk7aWYoIUMpe2xldCBEPXtuYW1lOlMsdHlwZTpqdC5CUklER0UsaXNHcm91cE5vZGU6ITEsY2FyZGluYWxpdHk6MSxwYXJlbnROb2RlOm51bGwsc3RhdHM6bnVsbCxpbmNsdWRlOnVyLlVOU1BFQ0lGSUVELGluYm91bmQ6ZCxub2RlQXR0cmlidXRlczp7fX07Qz1uZXcgV2YoRCksQy5zdHJ1Y3R1cmFsPSEwLHRoaXMuaW5kZXhbU109QyxvLnNldE5vZGUoUyxDKSxfLm5vZGUuY2FyZGluYWxpdHkrKyxvLnNldFBhcmVudChTLGcpfWxldCBQPW5ldyB6ZChudWxsKTtQLnN0cnVjdHVyYWw9ITAsUC53ZWlnaHQtLSxkP28uc2V0RWRnZShTLHksUCk6by5zZXRFZGdlKHksUyxQKX0pfSl9YnVpbGRTdWJoaWVyYXJjaGllc0Zvck5lZWRlZEZ1bmN0aW9ucyh0KXttZS5lYWNoKHQuZWRnZXMoKSxyPT57bGV0IG49dC5lZGdlKHIpLGk9bmV3IHpkKG4pO21lLmZvckVhY2goaS5tZXRhZWRnZS5iYXNlRWRnZUxpc3Qsbz0+e2xldCBhPW8udi5zcGxpdChQbCk7Zm9yKGxldCBzPWEubGVuZ3RoO3M+PTA7cy0tKXtsZXQgbD1hLnNsaWNlKDAscyksYz10aGlzLmhpZXJhcmNoeS5ub2RlKGwuam9pbihQbCkpO2lmKGMpe2lmKGMudHlwZT09PWp0Lk9QJiZ0aGlzLmhpZXJhcmNoeS5saWJyYXJ5RnVuY3Rpb25zW2Mub3BdKWZvcihsZXQgdT0xO3U8bC5sZW5ndGg7dSsrKXtsZXQgaD1sLnNsaWNlKDAsdSkuam9pbihQbCk7IWh8fHRoaXMuYnVpbGRTdWJoaWVyYXJjaHkoaCl9YnJlYWt9fX0pfSl9fSxpMz1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIsbixpLG8pe3RoaXMubm9kZT10LHRoaXMucmVuZGVyTm9kZUluZm89cix0aGlzLnJlbmRlck1ldGFlZGdlSW5mbz1uLHRoaXMuYW5ub3RhdGlvblR5cGU9aSx0aGlzLmR4PTAsdGhpcy5keT0wLHRoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLG4mJm4ubWV0YWVkZ2UmJih0aGlzLnY9bi5tZXRhZWRnZS52LHRoaXMudz1uLm1ldGFlZGdlLncpLHRoaXMuaXNJbj1vLHRoaXMucG9pbnRzPVtdfX0sZ2k7KGZ1bmN0aW9uKGUpe2VbZS5TSE9SVENVVD0wXT0iU0hPUlRDVVQiLGVbZS5DT05TVEFOVD0xXT0iQ09OU1RBTlQiLGVbZS5TVU1NQVJZPTJdPSJTVU1NQVJZIixlW2UuRUxMSVBTSVM9M109IkVMTElQU0lTIn0pKGdpfHwoZ2k9e30pKTt2YXIgd0g9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmxpc3Q9W10sdGhpcy5ub2RlTmFtZXM9e319cHVzaCh0KXtpZih0Lm5vZGUubmFtZSBpbiB0aGlzLm5vZGVOYW1lcylyZXR1cm47aWYodGhpcy5ub2RlTmFtZXNbdC5ub2RlLm5hbWVdPSEwLHRoaXMubGlzdC5sZW5ndGg8WG8ubWF4QW5ub3RhdGlvbnMpe3RoaXMubGlzdC5wdXNoKHQpO3JldHVybn1sZXQgcj10aGlzLmxpc3RbdGhpcy5saXN0Lmxlbmd0aC0xXTtpZihyLmFubm90YXRpb25UeXBlPT09Z2kuRUxMSVBTSVMpe2xldCBpPXIubm9kZTtpLnNldE51bU1vcmVOb2RlcygrK2kubnVtTW9yZU5vZGVzKTtyZXR1cm59bGV0IG49bmV3IF9IKDEpO3RoaXMubGlzdC5wdXNoKG5ldyBpMyhuLG5ldyBXZihuKSxudWxsLGdpLkVMTElQU0lTLHQuaXNJbikpfX0sV2Y9Y2xhc3N7Y29uc3RydWN0b3IodCl7aWYodGhpcy5ub2RlPXQsdGhpcy5leHBhbmRlZD0hMSx0aGlzLmluQW5ub3RhdGlvbnM9bmV3IHdILHRoaXMub3V0QW5ub3RhdGlvbnM9bmV3IHdILHRoaXMueD0wLHRoaXMueT0wLHRoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLHRoaXMuaW5ib3hXaWR0aD0wLHRoaXMub3V0Ym94V2lkdGg9MCx0aGlzLmV4Y2x1ZGVkPSExLHRoaXMuc3RydWN0dXJhbD0hMSx0aGlzLmxhYmVsT2Zmc2V0PTAsdGhpcy5yYWRpdXM9MCx0aGlzLmxhYmVsSGVpZ2h0PTAsdGhpcy5wYWRkaW5nVG9wPTAsdGhpcy5wYWRkaW5nTGVmdD0wLHRoaXMucGFkZGluZ1JpZ2h0PTAsdGhpcy5wYWRkaW5nQm90dG9tPTAsdGhpcy5pc0luRXh0cmFjdD0hMSx0aGlzLmlzT3V0RXh0cmFjdD0hMSx0aGlzLmNvcmVCb3g9e3dpZHRoOjAsaGVpZ2h0OjB9LHRoaXMuaXNGYWRlZE91dD0hMSx0aGlzLmRpc3BsYXlOYW1lPXQubmFtZS5zdWJzdHJpbmcodC5uYW1lLmxhc3RJbmRleE9mKFBsKSsxKSx0LnR5cGU9PT1qdC5NRVRBJiZ0LmFzc29jaWF0ZWRGdW5jdGlvbil7bGV0IHI9dGhpcy5kaXNwbGF5TmFtZS5tYXRjaCh3Y3IpO3I/dGhpcy5kaXNwbGF5TmFtZT1yWzFdOm1lLnN0YXJ0c1dpdGgodGhpcy5kaXNwbGF5TmFtZSxNYSkmJih0aGlzLmRpc3BsYXlOYW1lPXRoaXMuZGlzcGxheU5hbWUuc3Vic3RyaW5nKE1hLmxlbmd0aCkpfX1pc0luQ29yZSgpe3JldHVybiF0aGlzLmlzSW5FeHRyYWN0JiYhdGhpcy5pc091dEV4dHJhY3QmJiF0aGlzLmlzTGlicmFyeUZ1bmN0aW9ufX0semQ9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5tZXRhZWRnZT10LHRoaXMuYWRqb2luaW5nTWV0YWVkZ2U9bnVsbCx0aGlzLnN0cnVjdHVyYWw9ITEsdGhpcy53ZWlnaHQ9MSx0aGlzLmlzRmFkZWRPdXQ9ITF9fTtmdW5jdGlvbiBnbGUoZSx0LHIsbixpKXtsZXQgbz1uZXcgaTModCxyLG4saSwhMCk7ZS5pbkFubm90YXRpb25zLnB1c2gobyl9ZnVuY3Rpb24gX2xlKGUsdCxyLG4saSl7bGV0IG89bmV3IGkzKHQscixuLGksITEpO2Uub3V0QW5ub3RhdGlvbnMucHVzaChvKX1mdW5jdGlvbiBTY3IoZSx0KXttZS5lYWNoKGUubm9kZXMoKSxyPT57bGV0IG49ZS5ub2RlKHIpO2lmKG4uZXhwYW5kZWQ9dD4xLHQ+MClzd2l0Y2gobi5ub2RlLnR5cGUpe2Nhc2UganQuTUVUQTpjYXNlIGp0LlNFUklFUzp5bGUobix0LTEpO2JyZWFrfX0pfXZhciBTSD1jbGFzcyBleHRlbmRzIFdme2NvbnN0cnVjdG9yKHQscil7c3VwZXIodCk7bGV0IGk9dC5tZXRhZ3JhcGguZ3JhcGgoKTt0aGlzLmNvcmVHcmFwaD1lMyhpLm5hbWUsXzAuQ09SRSxyKSx0aGlzLmluRXh0cmFjdEJveD17d2lkdGg6MCxoZWlnaHQ6MH0sdGhpcy5vdXRFeHRyYWN0Qm94PXt3aWR0aDowLGhlaWdodDowfSx0aGlzLmxpYnJhcnlGdW5jdGlvbnNCb3g9e3dpZHRoOjAsaGVpZ2h0OjB9LHRoaXMuaXNvbGF0ZWRJbkV4dHJhY3Q9W10sdGhpcy5pc29sYXRlZE91dEV4dHJhY3Q9W10sdGhpcy5saWJyYXJ5RnVuY3Rpb25zRXh0cmFjdD1bXX19O2Z1bmN0aW9uIHlsZShlLHQpe2UuY29yZUdyYXBoJiZTY3IoZS5jb3JlR3JhcGgsdCl9ZnVuY3Rpb24gdVAoZSx0LHIpe2xldCBuPWUubm9kZSh0KSxpPWUubm9kZShyKSxvPWUuZWRnZSh0LHIpOyhuLm5vZGUuaW5jbHVkZT09PXVyLklOQ0xVREV8fGkubm9kZS5pbmNsdWRlPT09dXIuSU5DTFVERSkmJm4ubm9kZS5pbmNsdWRlIT09dXIuRVhDTFVERSYmaS5ub2RlLmluY2x1ZGUhPT11ci5FWENMVURFfHwoX2xlKG4saS5ub2RlLGksbyxnaS5TSE9SVENVVCksZ2xlKGksbi5ub2RlLG4sbyxnaS5TSE9SVENVVCksZS5yZW1vdmVFZGdlKHQscikpfWZ1bmN0aW9uIFVsdChlLHQscil7dmFyIG87bGV0IG49ZS5jb3JlR3JhcGgsaT1uLm5vZGUodCk7aS5pc091dEV4dHJhY3Q9ITAsbWUuZWFjaChuLnByZWRlY2Vzc29ycyh0KSwoYSxzKT0+e3VQKG4sYSx0KX0pLChYby5kZXRhY2hBbGxFZGdlc0ZvckhpZ2hEZWdyZWV8fHIpJiZtZS5lYWNoKG4uc3VjY2Vzc29ycyh0KSwoYSxzKT0+e3VQKG4sdCxhKX0pLCgobz1uLm5laWdoYm9ycyh0KSk9PW51bGw/dm9pZCAwOm8ubGVuZ3RoKT09PTAmJihpLm5vZGUuaW5jbHVkZT11ci5FWENMVURFLGUuaXNvbGF0ZWRPdXRFeHRyYWN0LnB1c2goaSksbi5yZW1vdmVOb2RlKHQpKX1mdW5jdGlvbiBxbHQoZSx0LHIpe3ZhciBvO2xldCBuPWUuY29yZUdyYXBoLGk9bi5ub2RlKHQpO2kuaXNJbkV4dHJhY3Q9ITAsbWUuZWFjaChuLnN1Y2Nlc3NvcnModCksKGEscyk9Pnt1UChuLHQsYSl9KSwoWG8uZGV0YWNoQWxsRWRnZXNGb3JIaWdoRGVncmVlfHxyKSYmbWUuZWFjaChuLnByZWRlY2Vzc29ycyh0KSwoYSxzKT0+e3VQKG4sYSx0KX0pLCgobz1uLm5laWdoYm9ycyh0KSk9PW51bGw/dm9pZCAwOm8ubGVuZ3RoKT09PTAmJihpLm5vZGUuaW5jbHVkZT11ci5FWENMVURFLGUuaXNvbGF0ZWRJbkV4dHJhY3QucHVzaChpKSxuLnJlbW92ZU5vZGUodCkpfWZ1bmN0aW9uIHZsZShlLHQpe2lmKGUudHlwZT09PWp0Lk9QKXtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKylpZihlLm9wPT09dFtyXSlyZXR1cm4hMH1lbHNlIGlmKGUudHlwZT09PWp0Lk1FVEEpe2xldCByPWUuZ2V0Um9vdE9wKCk7aWYocil7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspaWYoci5vcD09PXRbbl0pcmV0dXJuITB9fXJldHVybiExfWZ1bmN0aW9uIE1jcihlKXtsZXQgdD1lLmNvcmVHcmFwaDttZS5lYWNoKHQubm9kZXMoKSxyPT57dmFyIGksbzt0Lm5vZGUocikubm9kZS5pbmNsdWRlPT09dXIuRVhDTFVERSYmIXIuc3RhcnRzV2l0aChNYSkmJigoKGk9ZS5jb3JlR3JhcGgub3V0RWRnZXMocikpPT1udWxsP3ZvaWQgMDppLmxlbmd0aCk+KChvPWUuY29yZUdyYXBoLmluRWRnZXMocikpPT1udWxsP3ZvaWQgMDpvLmxlbmd0aCk/VWx0KGUsciwhMCk6cWx0KGUsciwhMCkpfSl9ZnVuY3Rpb24gRWNyKGUpe2xldCB0PWUuY29yZUdyYXBoO21lLmVhY2godC5ub2RlcygpLHI9PntsZXQgbj10Lm5vZGUocik7bi5ub2RlLmluY2x1ZGU9PT11ci5VTlNQRUNJRklFRCYmdmxlKG4ubm9kZSxYby5vdXRFeHRyYWN0VHlwZXMpJiZVbHQoZSxyKX0pfWZ1bmN0aW9uIFRjcihlKXtsZXQgdD1lLmNvcmVHcmFwaDttZS5lYWNoKHQubm9kZXMoKSxyPT57bGV0IG49dC5ub2RlKHIpO24ubm9kZS5pbmNsdWRlPT09dXIuVU5TUEVDSUZJRUQmJnZsZShuLm5vZGUsWG8uaW5FeHRyYWN0VHlwZXMpJiZxbHQoZSxyKX0pfWZ1bmN0aW9uIENjcihlKXtsZXQgdD1lLmNvcmVHcmFwaCxyPXt9LG49e30saT0wO2lmKG1lLmVhY2godC5ub2RlcygpLF89Pnt2YXIgYixTLEMsUDtpZih0Lm5vZGUoXykubm9kZS5pbmNsdWRlIT09dXIuVU5TUEVDSUZJRUQpcmV0dXJuO2xldCB5PW1lLnJlZHVjZSh0LnByZWRlY2Vzc29ycyhfKSwoayxPKT0+e2xldCBEPXQuZWRnZShPLF8pLm1ldGFlZGdlO3JldHVybiBrKyhELm51bVJlZ3VsYXJFZGdlcz8xOjApfSwwKTt5PT09MCYmKChiPXQucHJlZGVjZXNzb3JzKF8pKT09bnVsbD92b2lkIDA6Yi5sZW5ndGgpPjAmJih5PShTPXQucHJlZGVjZXNzb3JzKF8pKT09bnVsbD92b2lkIDA6Uy5sZW5ndGgpO2xldCB4PW1lLnJlZHVjZSh0LnN1Y2Nlc3NvcnMoXyksKGssTyk9PntsZXQgRD10LmVkZ2UoXyxPKS5tZXRhZWRnZTtyZXR1cm4gaysoRC5udW1SZWd1bGFyRWRnZXM/MTowKX0sMCk7eD09PTAmJigoQz10LnN1Y2Nlc3NvcnMoXykpPT1udWxsP3ZvaWQgMDpDLmxlbmd0aCk+MCYmKHg9KFA9dC5zdWNjZXNzb3JzKF8pKT09bnVsbD92b2lkIDA6UC5sZW5ndGgpLHJbX109eSxuW19dPXgsaSsrfSksaTxYby5taW5Ob2RlQ291bnRGb3JFeHRyYWN0aW9uKXJldHVybjtsZXQgbz1Yby5taW5EZWdyZWVGb3JFeHRyYWN0aW9uLTEsYT1NYXRoLnJvdW5kKGkqLjc1KSxzPU1hdGgucm91bmQoaSouMjUpLGw9T2JqZWN0LmtleXMocikuc29ydCgoXyx5KT0+cltfXS1yW3ldKSxjPXJbbFthXV0sdT1yW2xbc11dLGg9YytjLXU7aD1NYXRoLm1heChoLG8pO2ZvcihsZXQgXz1pLTE7cltsW19dXT5oO18tLSlxbHQoZSxsW19dKTtsZXQgZj1PYmplY3Qua2V5cyhuKS5zb3J0KChfLHkpPT5uW19dLW5beV0pLHA9bltmW2FdXSxkPW5bZltzXV0sZz1wKyhwLWQpKjQ7Zz1NYXRoLm1heChnLG8pO2ZvcihsZXQgXz1pLTE7bltmW19dXT5nO18tLSl7bGV0IHk9dC5ub2RlKGZbX10pOyF5fHx5LmlzSW5FeHRyYWN0fHxVbHQoZSxmW19dKX19ZnVuY3Rpb24gQWNyKGUpe2xldCB0PWUuY29yZUdyYXBoLHI9e307bWUuZWFjaCh0LmVkZ2VzKCksbj0+e3QuZWRnZShuKS5tZXRhZWRnZS5udW1SZWd1bGFyRWRnZXN8fCgocltuLnZdPXJbbi52XXx8W10pLnB1c2gobiksKHJbbi53XT1yW24ud118fFtdKS5wdXNoKG4pKX0pLG1lLmVhY2gociwobixpKT0+e24ubGVuZ3RoPlhvLm1heENvbnRyb2xEZWdyZWUmJm1lLmVhY2gobixvPT51UCh0LG8udixvLncpKX0pfWZ1bmN0aW9uIFBjcihlLHQpe01jcihlKSxYby5vdXRFeHRyYWN0VHlwZXMubGVuZ3RoJiZFY3IoZSksWG8uaW5FeHRyYWN0VHlwZXMubGVuZ3RoJiZUY3IoZSksdCYmQ2NyKGUpLFhvLm1heENvbnRyb2xEZWdyZWUmJkFjcihlKTtsZXQgcj1lLmNvcmVHcmFwaDttZS5lYWNoKHIubm9kZXMoKSxuPT57dmFyIGE7bGV0IGk9ci5ub2RlKG4pLG89KGE9ci5uZWlnaGJvcnMobikpPT1udWxsP3ZvaWQgMDphLmxlbmd0aDtpZihpLm5vZGUuaW5jbHVkZT09PXVyLlVOU1BFQ0lGSUVEJiZvPT09MCl7bGV0IHM9aS5vdXRBbm5vdGF0aW9ucy5saXN0Lmxlbmd0aD4wLGw9aS5pbkFubm90YXRpb25zLmxpc3QubGVuZ3RoPjA7aS5pc0luRXh0cmFjdD8oZS5pc29sYXRlZEluRXh0cmFjdC5wdXNoKGkpLGkubm9kZS5pbmNsdWRlPXVyLkVYQ0xVREUsci5yZW1vdmVOb2RlKG4pKTppLmlzT3V0RXh0cmFjdD8oZS5pc29sYXRlZE91dEV4dHJhY3QucHVzaChpKSxpLm5vZGUuaW5jbHVkZT11ci5FWENMVURFLHIucmVtb3ZlTm9kZShuKSk6WG8uZXh0cmFjdElzb2xhdGVkTm9kZXNXaXRoQW5ub3RhdGlvbnNPbk9uZVNpZGUmJihzJiYhbD8oaS5pc0luRXh0cmFjdD0hMCxlLmlzb2xhdGVkSW5FeHRyYWN0LnB1c2goaSksaS5ub2RlLmluY2x1ZGU9dXIuRVhDTFVERSxyLnJlbW92ZU5vZGUobikpOmwmJiFzJiYoaS5pc091dEV4dHJhY3Q9ITAsZS5pc29sYXRlZE91dEV4dHJhY3QucHVzaChpKSxpLm5vZGUuaW5jbHVkZT11ci5FWENMVURFLHIucmVtb3ZlTm9kZShuKSkpfX0pfWZ1bmN0aW9uIHhsZShlLHQscil7bGV0IG49ci5zcGxpdCgiLyIpLGk9bltuLmxlbmd0aC0xXS5tYXRjaCgvKC4qKTpcdysvKTsoaT09bnVsbD92b2lkIDA6aS5sZW5ndGgpPT09MiYmKG5bbi5sZW5ndGgtMV09aT09bnVsbD92b2lkIDA6aVsxXSk7bGV0IG89blswXSxhPXQuZ2V0UmVuZGVyTm9kZUJ5TmFtZShvKTtmb3IobGV0IHM9MTtzPG4ubGVuZ3RoJiZhLm5vZGUudHlwZSE9PWp0Lk9QO3MrKyl0LmJ1aWxkU3ViaGllcmFyY2h5KG8pLGEuZXhwYW5kZWQ9ITAsZS5zZXROb2RlRXhwYW5kZWQoYSksbys9Ii8iK25bc10sYT10LmdldFJlbmRlck5vZGVCeU5hbWUobyk7cmV0dXJuIGEubm9kZS5uYW1lfXZhciBNbGU9RWUoT2x0KCksMSksWmU9RWUoT2UoKSwxKTt2YXIgVHI9e2FuaW1hdGlvbjp7ZHVyYXRpb246MjUwfSxncmFwaDp7bWV0YTp7bm9kZVNlcDo1LHJhbmtTZXA6MjUsZWRnZVNlcDo1fSxzZXJpZXM6e25vZGVTZXA6NSxyYW5rU2VwOjI1LGVkZ2VTZXA6NX0scGFkZGluZzp7cGFkZGluZ1RvcDo0MCxwYWRkaW5nTGVmdDoyMH19LHN1YnNjZW5lOnttZXRhOntwYWRkaW5nVG9wOjEwLHBhZGRpbmdCb3R0b206MTAscGFkZGluZ0xlZnQ6MTAscGFkZGluZ1JpZ2h0OjEwLGxhYmVsSGVpZ2h0OjIwLGV4dHJhY3RYT2Zmc2V0OjE1LGV4dHJhY3RZT2Zmc2V0OjIwfSxzZXJpZXM6e3BhZGRpbmdUb3A6MTAscGFkZGluZ0JvdHRvbToxMCxwYWRkaW5nTGVmdDoxMCxwYWRkaW5nUmlnaHQ6MTAsbGFiZWxIZWlnaHQ6MTB9fSxub2RlU2l6ZTp7bWV0YTp7cmFkaXVzOjUsd2lkdGg6NjAsbWF4TGFiZWxXaWR0aDo1MixoZWlnaHQ6em4oKS5kb21haW4oWzEsMjAwXSkucmFuZ2UoWzE1LDYwXSkuY2xhbXAoITApLGV4cGFuZEJ1dHRvblJhZGl1czozfSxvcDp7d2lkdGg6MTUsaGVpZ2h0OjYscmFkaXVzOjMsbGFiZWxPZmZzZXQ6LTgsbWF4TGFiZWxXaWR0aDozMH0sc2VyaWVzOntleHBhbmRlZDp7cmFkaXVzOjEwLGxhYmVsT2Zmc2V0OjB9LHZlcnRpY2FsOnt3aWR0aDoxNixoZWlnaHQ6MTMsbGFiZWxPZmZzZXQ6LTEzfSxob3Jpem9udGFsOnt3aWR0aDoyNCxoZWlnaHQ6OCxyYWRpdXM6MTAsbGFiZWxPZmZzZXQ6LTEwfX0sYnJpZGdlOnt3aWR0aDoyMCxoZWlnaHQ6MjAscmFkaXVzOjIsbGFiZWxPZmZzZXQ6MH19LHNob3J0Y3V0U2l6ZTp7b3A6e3dpZHRoOjEwLGhlaWdodDo0fSxtZXRhOnt3aWR0aDoxMixoZWlnaHQ6NCxyYWRpdXM6MX0sc2VyaWVzOnt3aWR0aDoxNCxoZWlnaHQ6NH19LGFubm90YXRpb25zOntpbmJveFdpZHRoOjUwLG91dGJveFdpZHRoOjUwLHhPZmZzZXQ6MTAseU9mZnNldDozLGxhYmVsT2Zmc2V0OjIsbWF4TGFiZWxXaWR0aDo0MH0sY29uc3RhbnQ6e3NpemU6e3dpZHRoOjQsaGVpZ2h0OjR9fSxzZXJpZXM6e21heFN0YWNrQ291bnQ6MyxwYXJhbGxlbFN0YWNrT2Zmc2V0UmF0aW86LjIsdG93ZXJTdGFja09mZnNldFJhdGlvOi41fSxtaW5pbWFwOntzaXplOjE1MH19LG8zPTE0MDtmdW5jdGlvbiBNSChlKXtlLm5vZGUuaXNHcm91cE5vZGUmJkxjcihlKSxlLm5vZGUudHlwZT09PWp0Lk1FVEE/a2NyKGUpOmUubm9kZS50eXBlPT09anQuU0VSSUVTJiZSY3IoZSl9ZnVuY3Rpb24gSWNyKGUpe2UuaW5ib3hXaWR0aD1lLmluQW5ub3RhdGlvbnMubGlzdC5sZW5ndGg+MD9Uci5hbm5vdGF0aW9ucy5pbmJveFdpZHRoOjAsZS5vdXRib3hXaWR0aD1lLm91dEFubm90YXRpb25zLmxpc3QubGVuZ3RoPjA/VHIuYW5ub3RhdGlvbnMub3V0Ym94V2lkdGg6MCxlLmNvcmVCb3gud2lkdGg9ZS53aWR0aCxlLmNvcmVCb3guaGVpZ2h0PWUuaGVpZ2h0O2xldCB0PWUuZGlzcGxheU5hbWUubGVuZ3RoLHI9MztlLndpZHRoPU1hdGgubWF4KGUuY29yZUJveC53aWR0aCtlLmluYm94V2lkdGgrZS5vdXRib3hXaWR0aCx0KnIpfWZ1bmN0aW9uIExjcihlKXtsZXQgdD1lLmNvcmVHcmFwaC5ub2RlcygpLm1hcChyPT5lLmNvcmVHcmFwaC5ub2RlKHIpKS5jb25jYXQoZS5pc29sYXRlZEluRXh0cmFjdCxlLmlzb2xhdGVkT3V0RXh0cmFjdCxlLmxpYnJhcnlGdW5jdGlvbnNFeHRyYWN0KTtaZS5lYWNoKHQscj0+e3N3aXRjaChyLm5vZGUudHlwZSl7Y2FzZSBqdC5PUDpaZS5leHRlbmQocixUci5ub2RlU2l6ZS5vcCk7YnJlYWs7Y2FzZSBqdC5CUklER0U6WmUuZXh0ZW5kKHIsVHIubm9kZVNpemUuYnJpZGdlKTticmVhaztjYXNlIGp0Lk1FVEE6ci5leHBhbmRlZD9NSChyKTooWmUuZXh0ZW5kKHIsVHIubm9kZVNpemUubWV0YSksci5oZWlnaHQ9VHIubm9kZVNpemUubWV0YS5oZWlnaHQoci5ub2RlLmNhcmRpbmFsaXR5KSk7YnJlYWs7Y2FzZSBqdC5TRVJJRVM6aWYoci5leHBhbmRlZClaZS5leHRlbmQocixUci5ub2RlU2l6ZS5zZXJpZXMuZXhwYW5kZWQpLE1IKHIpO2Vsc2V7bGV0IGk9ci5ub2RlLmhhc05vbkNvbnRyb2xFZGdlcz9Uci5ub2RlU2l6ZS5zZXJpZXMudmVydGljYWw6VHIubm9kZVNpemUuc2VyaWVzLmhvcml6b250YWw7WmUuZXh0ZW5kKHIsaSl9YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5yZWNvZ25pemVkIG5vZGUgdHlwZTogIityLm5vZGUudHlwZSl9ci5leHBhbmRlZHx8SWNyKHIpLE5jcihyKX0pfWZ1bmN0aW9uIEVsZShlLHQpe1plLmV4dGVuZChlLmdyYXBoKCkse25vZGVzZXA6dC5ub2RlU2VwLHJhbmtzZXA6dC5yYW5rU2VwLGVkZ2VzZXA6dC5lZGdlU2VwfSk7bGV0IHI9W10sbj1bXTtpZihaZS5lYWNoKGUubm9kZXMoKSxsPT57ZS5ub2RlKGwpLm5vZGUudHlwZT09PWp0LkJSSURHRT9yLnB1c2gobCk6bi5wdXNoKGwpfSksIW4ubGVuZ3RoKXJldHVybnt3aWR0aDowLGhlaWdodDowfTtNbGUubGF5b3V0KGUpO2xldCBpPTEvMCxvPTEvMCxhPS0xLzAscz0tMS8wO3JldHVybiBaZS5lYWNoKG4sbD0+e2xldCBjPWUubm9kZShsKSx1PS41KmMud2lkdGgsaD1jLngtdSxmPWMueCt1O2k9aDxpP2g6aSxhPWY+YT9mOmE7bGV0IHA9LjUqYy5oZWlnaHQsZD1jLnktcCxnPWMueStwO289ZDxvP2Q6byxzPWc+cz9nOnN9KSxaZS5lYWNoKGUuZWRnZXMoKSxsPT57bGV0IGM9ZS5lZGdlKGwpO2lmKGMuc3RydWN0dXJhbClyZXR1cm47bGV0IHU9ZS5ub2RlKGMubWV0YWVkZ2UudiksaD1lLm5vZGUoYy5tZXRhZWRnZS53KTtpZihjLnBvaW50cy5sZW5ndGg9PT0zJiZEY3IoYy5wb2ludHMpKXtpZih1IT1udWxsKXtsZXQgZD11LmV4cGFuZGVkP3UueDp4MCh1KTtjLnBvaW50c1swXS54PWR9aWYoaCE9bnVsbCl7bGV0IGQ9aC5leHBhbmRlZD9oLng6eDAoaCk7Yy5wb2ludHNbMl0ueD1kfWMucG9pbnRzPVtjLnBvaW50c1swXSxjLnBvaW50c1sxXV19bGV0IGY9Yy5wb2ludHNbYy5wb2ludHMubGVuZ3RoLTJdO2ghPW51bGwmJihjLnBvaW50c1tjLnBvaW50cy5sZW5ndGgtMV09U2xlKGYsaCkpO2xldCBwPWMucG9pbnRzWzFdO3UhPW51bGwmJihjLnBvaW50c1swXT1TbGUocCx1KSksWmUuZWFjaChjLnBvaW50cyxkPT57aT1kLng8aT9kLng6aSxhPWQueD5hP2QueDphLG89ZC55PG8/ZC55Om8scz1kLnk+cz9kLnk6c30pfSksWmUuZWFjaChlLm5vZGVzKCksbD0+e2xldCBjPWUubm9kZShsKTtjLngtPWksYy55LT1vfSksWmUuZWFjaChlLmVkZ2VzKCksbD0+e1plLmVhY2goZS5lZGdlKGwpLnBvaW50cyxjPT57Yy54LT1pLGMueS09b30pfSkse3dpZHRoOmEtaSxoZWlnaHQ6cy1vfX1mdW5jdGlvbiBrY3IoZSl7bGV0IHQ9VHIuc3Vic2NlbmUubWV0YTtaZS5leHRlbmQoZSx0KSxaZS5leHRlbmQoZS5jb3JlQm94LEVsZShlLmNvcmVHcmFwaCxUci5ncmFwaC5tZXRhKSk7bGV0IHI9ZS5pc29sYXRlZEluRXh0cmFjdC5sZW5ndGg/WmUubWF4QnkoZS5pc29sYXRlZEluRXh0cmFjdCxjPT5jLndpZHRoKS53aWR0aDpudWxsO2UuaW5FeHRyYWN0Qm94LndpZHRoPXIhPW51bGw/cjowLGUuaW5FeHRyYWN0Qm94LmhlaWdodD1aZS5yZWR1Y2UoZS5pc29sYXRlZEluRXh0cmFjdCwoYyx1LGgpPT57bGV0IGY9aD4wP3QuZXh0cmFjdFlPZmZzZXQ6MDtyZXR1cm4gdS54PTAsdS55PWMrZit1LmhlaWdodC8yLGMrZit1LmhlaWdodH0sMCk7bGV0IG49ZS5pc29sYXRlZE91dEV4dHJhY3QubGVuZ3RoP1plLm1heEJ5KGUuaXNvbGF0ZWRPdXRFeHRyYWN0LGM9PmMud2lkdGgpLndpZHRoOm51bGw7ZS5vdXRFeHRyYWN0Qm94LndpZHRoPW4hPW51bGw/bjowLGUub3V0RXh0cmFjdEJveC5oZWlnaHQ9WmUucmVkdWNlKGUuaXNvbGF0ZWRPdXRFeHRyYWN0LChjLHUsaCk9PntsZXQgZj1oPjA/dC5leHRyYWN0WU9mZnNldDowO3JldHVybiB1Lng9MCx1Lnk9YytmK3UuaGVpZ2h0LzIsYytmK3UuaGVpZ2h0fSwwKTtsZXQgaT1lLmxpYnJhcnlGdW5jdGlvbnNFeHRyYWN0Lmxlbmd0aD9aZS5tYXhCeShlLmxpYnJhcnlGdW5jdGlvbnNFeHRyYWN0LGM9PmMud2lkdGgpLndpZHRoOm51bGw7ZS5saWJyYXJ5RnVuY3Rpb25zQm94LndpZHRoPWkhPW51bGw/aTowLGUubGlicmFyeUZ1bmN0aW9uc0JveC5oZWlnaHQ9WmUucmVkdWNlKGUubGlicmFyeUZ1bmN0aW9uc0V4dHJhY3QsKGMsdSxoKT0+e2xldCBmPWg+MD90LmV4dHJhY3RZT2Zmc2V0OjA7cmV0dXJuIHUueD0wLHUueT1jK2YrdS5oZWlnaHQvMixjK2YrdS5oZWlnaHR9LDApO2xldCBvPTA7ZS5pc29sYXRlZEluRXh0cmFjdC5sZW5ndGg+MCYmbysrLGUuaXNvbGF0ZWRPdXRFeHRyYWN0Lmxlbmd0aD4wJiZvKyssZS5saWJyYXJ5RnVuY3Rpb25zRXh0cmFjdC5sZW5ndGg+MCYmbysrLGUuY29yZUdyYXBoLm5vZGVDb3VudCgpPjAmJm8rKztsZXQgYT1Uci5zdWJzY2VuZS5tZXRhLmV4dHJhY3RYT2Zmc2V0LHM9bzw9MT8wOm8qYSxsPU1hdGgubWF4KG8zLGUuaW5FeHRyYWN0Qm94LndpZHRoK2Uub3V0RXh0cmFjdEJveC53aWR0aCk7ZS5jb3JlQm94LndpZHRoKz1sK3MrZS5saWJyYXJ5RnVuY3Rpb25zQm94LndpZHRoK3MsZS5jb3JlQm94LmhlaWdodD10LmxhYmVsSGVpZ2h0K01hdGgubWF4KGUuaW5FeHRyYWN0Qm94LmhlaWdodCxlLmNvcmVCb3guaGVpZ2h0LGUubGlicmFyeUZ1bmN0aW9uc0JveC5oZWlnaHQsZS5vdXRFeHRyYWN0Qm94LmhlaWdodCksZS53aWR0aD1lLmNvcmVCb3gud2lkdGgrdC5wYWRkaW5nTGVmdCt0LnBhZGRpbmdSaWdodCxlLmhlaWdodD1lLnBhZGRpbmdUb3ArZS5jb3JlQm94LmhlaWdodCtlLnBhZGRpbmdCb3R0b219ZnVuY3Rpb24gUmNyKGUpe2xldCB0PWUuY29yZUdyYXBoLHI9VHIuc3Vic2NlbmUuc2VyaWVzO1plLmV4dGVuZChlLHIpLFplLmV4dGVuZChlLmNvcmVCb3gsRWxlKGUuY29yZUdyYXBoLFRyLmdyYXBoLnNlcmllcykpLFplLmVhY2godC5ub2RlcygpLG49Pnt0Lm5vZGUobikuZXhjbHVkZWQ9ITF9KSxlLndpZHRoPWUuY29yZUJveC53aWR0aCtyLnBhZGRpbmdMZWZ0K3IucGFkZGluZ1JpZ2h0LGUuaGVpZ2h0PWUuY29yZUJveC5oZWlnaHQrci5wYWRkaW5nVG9wK3IucGFkZGluZ0JvdHRvbX1mdW5jdGlvbiBOY3IoZSl7aWYoZS5leHBhbmRlZClyZXR1cm47bGV0IHQ9ZS5pbkFubm90YXRpb25zLmxpc3Qscj1lLm91dEFubm90YXRpb25zLmxpc3Q7WmUuZWFjaCh0LHU9PmJsZSh1KSksWmUuZWFjaChyLHU9PmJsZSh1KSk7bGV0IG49VHIuYW5ub3RhdGlvbnMsaT1aZS5yZWR1Y2UodCwodSxoLGYpPT57bGV0IHA9Zj4wP24ueU9mZnNldDowO3JldHVybiBoLmR4PS0oZS5jb3JlQm94LndpZHRoK2gud2lkdGgpLzItbi54T2Zmc2V0LGguZHk9dStwK2guaGVpZ2h0LzIsdStwK2guaGVpZ2h0fSwwKTtaZS5lYWNoKHQsdT0+e3UuZHktPWkvMix1LmxhYmVsT2Zmc2V0PW4ubGFiZWxPZmZzZXR9KTtsZXQgbz1aZS5yZWR1Y2UociwodSxoLGYpPT57bGV0IHA9Zj4wP24ueU9mZnNldDowO3JldHVybiBoLmR4PShlLmNvcmVCb3gud2lkdGgraC53aWR0aCkvMituLnhPZmZzZXQsaC5keT11K3AraC5oZWlnaHQvMix1K3AraC5oZWlnaHR9LDApO1plLmVhY2gocix1PT57dS5keS09by8yLHUubGFiZWxPZmZzZXQ9bi5sYWJlbE9mZnNldH0pO2xldCBhPU1hdGgubWluKGUuaGVpZ2h0LzItZS5yYWRpdXMsaS8yKTthPWE8MD8wOmE7bGV0IHM9em4oKS5kb21haW4oWzAsdC5sZW5ndGgtMV0pLnJhbmdlKFstYSxhXSk7WmUuZWFjaCh0LCh1LGgpPT57dS5wb2ludHM9W3tkeDp1LmR4K3Uud2lkdGgvMixkeTp1LmR5fSx7ZHg6LWUuY29yZUJveC53aWR0aC8yLGR5OnQubGVuZ3RoPjE/cyhoKTowfV19KTtsZXQgbD1NYXRoLm1pbihlLmhlaWdodC8yLWUucmFkaXVzLG8vMik7bD1sPDA/MDpsO2xldCBjPXpuKCkuZG9tYWluKFswLHIubGVuZ3RoLTFdKS5yYW5nZShbLWwsbF0pO1plLmVhY2gociwodSxoKT0+e3UucG9pbnRzPVt7ZHg6ZS5jb3JlQm94LndpZHRoLzIsZHk6ci5sZW5ndGg+MT9jKGgpOjB9LHtkeDp1LmR4LXUud2lkdGgvMixkeTp1LmR5fV19KSxlLmhlaWdodD1NYXRoLm1heChlLmhlaWdodCxpLG8pfWZ1bmN0aW9uIGJsZShlKXtzd2l0Y2goZS5hbm5vdGF0aW9uVHlwZSl7Y2FzZSBnaS5DT05TVEFOVDpaZS5leHRlbmQoZSxUci5jb25zdGFudC5zaXplKTticmVhaztjYXNlIGdpLlNIT1JUQ1VUOmlmKGUubm9kZS50eXBlPT09anQuT1ApWmUuZXh0ZW5kKGUsVHIuc2hvcnRjdXRTaXplLm9wKTtlbHNlIGlmKGUubm9kZS50eXBlPT09anQuTUVUQSlaZS5leHRlbmQoZSxUci5zaG9ydGN1dFNpemUubWV0YSk7ZWxzZSBpZihlLm5vZGUudHlwZT09PWp0LlNFUklFUylaZS5leHRlbmQoZSxUci5zaG9ydGN1dFNpemUuc2VyaWVzKTtlbHNlIHRocm93IEVycm9yKCJJbnZhbGlkIG5vZGUgdHlwZTogIitlLm5vZGUudHlwZSk7YnJlYWs7Y2FzZSBnaS5TVU1NQVJZOlplLmV4dGVuZChlLFRyLmNvbnN0YW50LnNpemUpO2JyZWFrfX1mdW5jdGlvbiB4MChlKXtpZihlLmV4cGFuZGVkKXJldHVybiBlLng7bGV0IHQ9ZS5pbkFubm90YXRpb25zLmxpc3QubGVuZ3RoP2UuaW5ib3hXaWR0aDowO3JldHVybiBlLngtZS53aWR0aC8yK3QrZS5jb3JlQm94LndpZHRoLzJ9ZnVuY3Rpb24gd2xlKGUsdCl7bGV0IHI9dC54LWUueCxuPXQueS1lLnk7cmV0dXJuIDE4MCpNYXRoLmF0YW4obi9yKS9NYXRoLlBJfWZ1bmN0aW9uIERjcihlKXtsZXQgdD13bGUoZVswXSxlWzFdKTtmb3IobGV0IHI9MTtyPGUubGVuZ3RoLTE7cisrKXtsZXQgbj13bGUoZVtyXSxlW3IrMV0pO2lmKE1hdGguYWJzKG4tdCk+MSlyZXR1cm4hMTt0PW59cmV0dXJuITB9ZnVuY3Rpb24gU2xlKGUsdCl7bGV0IHI9dC5leHBhbmRlZD90Lng6eDAodCksbj10LnksaT1lLngtcixvPWUueS1uLGE9dC5leHBhbmRlZD90LndpZHRoOnQuY29yZUJveC53aWR0aCxzPXQuZXhwYW5kZWQ/dC5oZWlnaHQ6dC5jb3JlQm94LmhlaWdodCxsLGM7cmV0dXJuIE1hdGguYWJzKG8pKmEvMj5NYXRoLmFicyhpKSpzLzI/KG88MCYmKHM9LXMpLGw9bz09PTA/MDpzLzIqaS9vLGM9cy8yKTooaTwwJiYoYT0tYSksbD1hLzIsYz1pPT09MD8wOmEvMipvL2kpLHt4OnIrbCx5Om4rY319dmFyIElsPWcwLEhpPXZlLE9jcj0zMjAsemNyPTE1MCxmUD1be2JhY2tncm91bmRfY29sb3I6IiNDQzJGMkMiLGxhYmVsOiJOYU4ifSx7YmFja2dyb3VuZF9jb2xvcjoiI0ZGOEQwMCIsbGFiZWw6Ii1cdTIyMUUifSx7YmFja2dyb3VuZF9jb2xvcjoiI0VBRUFFQSIsbGFiZWw6Ii0ifSx7YmFja2dyb3VuZF9jb2xvcjoiI0E1QTVBNSIsbGFiZWw6IjAifSx7YmFja2dyb3VuZF9jb2xvcjoiIzI2MjYyNiIsbGFiZWw6IisifSx7YmFja2dyb3VuZF9jb2xvcjoiIzAwM0VENCIsbGFiZWw6IitcdTIyMUUifV07ZnVuY3Rpb24gQ2xlKGUsdCxyLG4pe2xldCBpPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1udWxsO3RyeXtpZihvPXQuZ2V0QkJveCgpLChvPT1udWxsP3ZvaWQgMDpvLndpZHRoKT09PTApcmV0dXJufWNhdGNoKGMpe3JldHVybn1sZXQgYT0uOSpNYXRoLm1pbihpLndpZHRoLyhvPT1udWxsP3ZvaWQgMDpvLndpZHRoKSxpLmhlaWdodC8obz09bnVsbD92b2lkIDA6by5oZWlnaHQpLDIpLHM9VHIuZ3JhcGgsbD0kaC5zY2FsZShhKS50cmFuc2xhdGUocy5wYWRkaW5nLnBhZGRpbmdMZWZ0LHMucGFkZGluZy5wYWRkaW5nVG9wKTtIdChlKS50cmFuc2l0aW9uKCkuZHVyYXRpb24oNTAwKS5jYWxsKHIudHJhbnNmb3JtLGwpLm9uKCJlbmQuZml0dGVkIiwoKT0+e3Iub24oImVuZC5maXR0ZWQiLG51bGwpLG4oKX0pfWZ1bmN0aW9uIEFsZShlLHQscixuKXtsZXQgaT1IdCh0KS5zZWxlY3QoYFtkYXRhLW5hbWU9IiR7ZX0iXWApLm5vZGUoKTtpZighaSlyZXR1cm4gY29uc29sZS53YXJuKGBwYW5Ub05vZGUoKSBmYWlsZWQgZm9yIG5vZGUgbmFtZSAiJHtlfSJgKSwhMTtsZXQgbz1pLmdldEJCb3goKSxhPWkuZ2V0U2NyZWVuQ1RNKCkscz10LmNyZWF0ZVNWR1BvaW50KCksbD10LmNyZWF0ZVNWR1BvaW50KCk7cy54PW8ueCxzLnk9by55LGwueD1vLngrby53aWR0aCxsLnk9by55K28uaGVpZ2h0LHM9cy5tYXRyaXhUcmFuc2Zvcm0oYSksbD1sLm1hdHJpeFRyYW5zZm9ybShhKTtsZXQgYz0ocCxkLGcsXyk9PiEocD5nJiZkPF8pLHU9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxoPXUubGVmdCt1LndpZHRoLU9jcixmPXUudG9wK3UuaGVpZ2h0LXpjcjtpZihjKHMueCxsLngsdS5sZWZ0LGgpfHxjKHMueSxsLnksdS50b3AsZikpe2xldCBwPShzLngrbC54KS8yLGQ9KHMueStsLnkpLzIsZz11LmxlZnQrdS53aWR0aC8yLXAsXz11LnRvcCt1LmhlaWdodC8yLWQseT1pMih0KTtyZXR1cm4gSHQodCkudHJhbnNpdGlvbigpLmR1cmF0aW9uKDUwMCkuY2FsbChuLnRyYW5zbGF0ZUJ5LGcveS5rLF8veS5rKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBQbGUoZSx0KXtsZXQgcj10Lm5vZGUudHlwZT09PWp0LlNFUklFUz8wOlRyLnN1YnNjZW5lLm1ldGEubGFiZWxIZWlnaHQ7YTMoSWwoZSwiZyIsSGkuU2NlbmUuQ09SRSksMCxyKTtsZXQgbj10Lmlzb2xhdGVkSW5FeHRyYWN0Lmxlbmd0aD4wLGk9dC5pc29sYXRlZE91dEV4dHJhY3QubGVuZ3RoPjAsbz10LmxpYnJhcnlGdW5jdGlvbnNFeHRyYWN0Lmxlbmd0aD4wLGE9VHIuc3Vic2NlbmUubWV0YS5leHRyYWN0WE9mZnNldCxzPTA7aWYobiYmKHMrPXQub3V0RXh0cmFjdEJveC53aWR0aCksaSYmKHMrPXQub3V0RXh0cmFjdEJveC53aWR0aCksbil7bGV0IGw9dC5jb3JlQm94LndpZHRoO3M8bzM/bD1sLW8zK3QuaW5FeHRyYWN0Qm94LndpZHRoLzI6bD1sLXQuaW5FeHRyYWN0Qm94LndpZHRoLzItdC5vdXRFeHRyYWN0Qm94LndpZHRoLShpP2E6MCksbD1sLXQubGlicmFyeUZ1bmN0aW9uc0JveC53aWR0aC0obz9hOjApLGEzKElsKGUsImciLEhpLlNjZW5lLklORVhUUkFDVCksbCxyKX1pZihpKXtsZXQgbD10LmNvcmVCb3gud2lkdGg7czxvMz9sPWwtbzMrdC5vdXRFeHRyYWN0Qm94LndpZHRoLzI6bC09dC5vdXRFeHRyYWN0Qm94LndpZHRoLzIsbD1sLXQubGlicmFyeUZ1bmN0aW9uc0JveC53aWR0aC0obz9hOjApLGEzKElsKGUsImciLEhpLlNjZW5lLk9VVEVYVFJBQ1QpLGwscil9aWYobyl7bGV0IGw9dC5jb3JlQm94LndpZHRoLXQubGlicmFyeUZ1bmN0aW9uc0JveC53aWR0aC8yO2EzKElsKGUsImciLEhpLlNjZW5lLkZVTkNUSU9OX0xJQlJBUlkpLGwscil9fWZ1bmN0aW9uIElsZShlLHQpe0h0KGUpLm9uKCJjbGljayIsKCk9Pnt0LmZpcmUoImdyYXBoLXNlbGVjdCIpfSl9ZnVuY3Rpb24gYTMoZSx0LHIpe2UuYXR0cigidHJhbnNmb3JtIikhPW51bGwmJihlPWUudHJhbnNpdGlvbigicG9zaXRpb24iKSksZS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIit0KyIsIityKyIpIil9ZnVuY3Rpb24gRmQoZSx0LHIsbixpKXtlLnRyYW5zaXRpb24oKS5hdHRyKCJ4Iix0LW4vMikuYXR0cigieSIsci1pLzIpLmF0dHIoIndpZHRoIixuKS5hdHRyKCJoZWlnaHQiLGkpfWZ1bmN0aW9uIExsZShlLHQscixuLGkpe2xldCBvPWkvMixhPW4vMixzPVtbdCxyLW9dLFt0K2EscitvXSxbdC1hLHIrb11dO2UudHJhbnNpdGlvbigpLmF0dHIoInBvaW50cyIscy5tYXAobD0+bC5qb2luKCIsIikpLmpvaW4oIiAiKSl9ZnVuY3Rpb24ga2xlKGUsdCl7bGV0IHI9eDAodCksbj10LmV4cGFuZGVkP3Qud2lkdGg6dC5jb3JlQm94LndpZHRoLGk9dC5leHBhbmRlZD90LmhlaWdodDp0LmNvcmVCb3guaGVpZ2h0LG89cituLzItNixhPXQueS1pLzIrNjt0Lm5vZGUudHlwZT09PWp0LlNFUklFUyYmIXQuZXhwYW5kZWQmJihvKz0xMCxhLT0yKTtsZXQgcz0idHJhbnNsYXRlKCIrbysiLCIrYSsiKSI7ZS5zZWxlY3RBbGwoInBhdGgiKS50cmFuc2l0aW9uKCkuYXR0cigidHJhbnNmb3JtIixzKSxlLnNlbGVjdCgiY2lyY2xlIikudHJhbnNpdGlvbigpLmF0dHIoe2N4Om8sY3k6YSxyOlRyLm5vZGVTaXplLm1ldGEuZXhwYW5kQnV0dG9uUmFkaXVzfSl9ZnVuY3Rpb24gRUgoZSx0LHIsbixpKXtlLnRyYW5zaXRpb24oKS5hdHRyKCJjeCIsdCkuYXR0cigiY3kiLHIpLmF0dHIoInJ4IixuLzIpLmF0dHIoInJ5IixpLzIpfWZ1bmN0aW9uIFRsZShlLHQpe3JldHVybiB0P2UudG9GaXhlZCgwKTpNYXRoLmFicyhlKT49MT9lLnRvRml4ZWQoMSk6ZS50b0V4cG9uZW50aWFsKDEpfWZ1bmN0aW9uIEZjcihlLHQscixuKXtsZXQgaT0iRGV2aWNlOiAiK2UuZGV2aWNlX25hbWUrYApgO2krPSJkdHlwZTogIitlLmR0eXBlK2AKYDtsZXQgbz0iKHNjYWxhcikiO2Uuc2hhcGUubGVuZ3RoPjAmJihvPSIoIitlLnNoYXBlLmpvaW4oIiwiKSsiKSIpLGkrPWAKc2hhcGU6IGArbytgCgpgLGkrPSIjKGVsZW1lbnRzKTogIit0K2AKYDtsZXQgYT1bXTtmb3IobGV0IHM9MDtzPHIubGVuZ3RoO3MrKylyW3NdPjAmJmEucHVzaCgiIygiK2ZQW3NdLmxhYmVsKyIpOiAiK3Jbc10pO3JldHVybiBpKz1hLmpvaW4oIiwgIikrYAoKYCxuLm1heD49bi5taW4mJihpKz0ibWluOiAiK24ubWluKyIsIG1heDogIituLm1heCtgCmAsaSs9Im1lYW46ICIrbi5tZWFuKyIsIHN0ZGRldjogIituLnN0ZGRldiksaX1mdW5jdGlvbiBCY3IoZSx0LHIsbixpPTYwLG89MTAsYT0wLHMpe2lmKEh0KGUucGFyZW50Tm9kZSkuc2VsZWN0QWxsKCIuaGVhbHRoLXBpbGwiKS5yZW1vdmUoKSwhdClyZXR1cm47bGV0IGw9dC52YWx1ZSxjPWwuc2xpY2UoMiw4KSx1PWNbMF0saD1jWzFdLGY9Y1s1XSxwPWxbMV0sZD17bWluOmxbOF0sbWF4OmxbOV0sbWVhbjpsWzEwXSxzdGRkZXY6TWF0aC5zcXJ0KGxbMTFdKX07aT09bnVsbCYmKGk9NjApLG89PW51bGwmJihvPTEwKSxhPT1udWxsJiYoYT0wKSxyIT1udWxsJiZyLm5vZGUudHlwZT09PWp0Lk9QJiYoaS89MixvLz0yKTtsZXQgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoanUsImciKTtnLmNsYXNzTGlzdC5hZGQoImhlYWx0aC1waWxsIik7bGV0IF89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGp1LCJkZWZzIik7Zy5hcHBlbmRDaGlsZChfKTtsZXQgeT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoanUsImxpbmVhckdyYWRpZW50IikseD0iaGVhbHRoLXBpbGwtZ3JhZGllbnQtIituO3kuc2V0QXR0cmlidXRlKCJpZCIseCk7bGV0IGI9MCxTPSIwJSI7Zm9yKGxldCBEPTA7RDxjLmxlbmd0aDtEKyspe2lmKCFjW0RdKWNvbnRpbnVlO2IrPWNbRF07bGV0IEI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGp1LCJzdG9wIik7Qi5zZXRBdHRyaWJ1dGUoIm9mZnNldCIsUyksQi5zZXRBdHRyaWJ1dGUoInN0b3AtY29sb3IiLGZQW0RdLmJhY2tncm91bmRfY29sb3IpLHkuYXBwZW5kQ2hpbGQoQik7bGV0IEk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGp1LCJzdG9wIiksTD1iKjEwMC9wKyIlIjtJLnNldEF0dHJpYnV0ZSgib2Zmc2V0IixMKSxJLnNldEF0dHJpYnV0ZSgic3RvcC1jb2xvciIsZlBbRF0uYmFja2dyb3VuZF9jb2xvcikseS5hcHBlbmRDaGlsZChJKSxTPUx9Xy5hcHBlbmRDaGlsZCh5KTtsZXQgQz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoanUsInJlY3QiKTtDLnNldEF0dHJpYnV0ZSgiZmlsbCIsInVybCgjIit4KyIpIiksQy5zZXRBdHRyaWJ1dGUoIndpZHRoIixTdHJpbmcoaSkpLEMuc2V0QXR0cmlidXRlKCJoZWlnaHQiLFN0cmluZyhvKSksQy5zZXRBdHRyaWJ1dGUoInkiLFN0cmluZyhhKSksZy5hcHBlbmRDaGlsZChDKTtsZXQgUD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoanUsInRpdGxlIik7UC50ZXh0Q29udGVudD1GY3IodCxwLGMsZCksZy5hcHBlbmRDaGlsZChQKTtsZXQgaz0hMTtpZihyIT1udWxsKXtsZXQgRD1yLngtaS8yLEI9ci55LW8tci5oZWlnaHQvMi0yO2lmKHIubGFiZWxPZmZzZXQ8MCYmKEIrPXIubGFiZWxPZmZzZXQpLGcuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitEKyIsICIrQisiKSIpLGNbMl18fGNbM118fGNbNF0pe2xldCBMPXIubm9kZS5hdHRyO2lmKEwmJkwubGVuZ3RoKXtmb3IobGV0IFI9MDtSPEwubGVuZ3RoO1IrKylpZihMW1JdLmtleT09PSJUIil7bGV0IEY9TFtSXS52YWx1ZS50eXBlO2s9RiYmL15EVF8oQk9PTHxJTlR8VUlOVCkvLnRlc3QoRik7YnJlYWt9fX19bGV0IE89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGp1LCJ0ZXh0Iik7aWYoTnVtYmVyLmlzRmluaXRlKGQubWluKSYmTnVtYmVyLmlzRmluaXRlKGQubWF4KSl7bGV0IEQ9VGxlKGQubWluLGspLEI9VGxlKGQubWF4LGspO2lmKHA+MT9PLnRleHRDb250ZW50PUQrIiB+ICIrQjpPLnRleHRDb250ZW50PUQsdT4wfHxoPjB8fGY+MCl7Ty50ZXh0Q29udGVudCs9IiAoIjtsZXQgST1bXTt1PjAmJkkucHVzaChgTmFOXHhENyR7dX1gKSxoPjAmJkkucHVzaChgLVx1MjIxRVx4RDcke2h9YCksZj4wJiZJLnB1c2goYCtcdTIyMUVceEQ3JHtmfWApLE8udGV4dENvbnRlbnQrPUkuam9pbigiOyAiKSsiKSJ9fWVsc2UgTy50ZXh0Q29udGVudD0iKE5vIGZpbml0ZSBlbGVtZW50cykiO08uY2xhc3NMaXN0LmFkZCgiaGVhbHRoLXBpbGwtc3RhdHMiKSxzPT1udWxsJiYocz1pLzIpLE8uc2V0QXR0cmlidXRlKCJ4IixTdHJpbmcocykpLE8uc2V0QXR0cmlidXRlKCJ5IixTdHJpbmcoYS0yKSksZy5hcHBlbmRDaGlsZChPKSx6dChlLnBhcmVudE5vZGUpLmFwcGVuZENoaWxkKGcpfWZ1bmN0aW9uIFJsZShlLHQscil7aWYoIXQpcmV0dXJuO2xldCBuPTE7SHQoZSkuc2VsZWN0QWxsKCJnLm5vZGVzaGFwZSIpLmVhY2goZnVuY3Rpb24obyl7bGV0IGE9dFtvLm5vZGUubmFtZV0scz1hP2Fbcl06bnVsbDtCY3IodGhpcyxzLG8sbisrKX0pfXZhciBHbjsoZnVuY3Rpb24oZSl7ZS5OT05FPSJub25lIixlLkNPTVBVVEVfVElNRT0iY29tcHV0ZV90aW1lIixlLkRFVklDRT0iZGV2aWNlIixlLk1FTU9SWT0ibWVtb3J5IixlLk9QX0NPTVBBVElCSUxJVFk9Im9wX2NvbXBhdGliaWxpdHkiLGUuU1RSVUNUVVJFPSJzdHJ1Y3R1cmUiLGUuWExBX0NMVVNURVI9InhsYV9jbHVzdGVyIn0pKEdufHwoR249e30pKTt2YXIgbVA9RWUoT2UoKSwxKTt2YXIgVmk9RWUoT2UoKSwxKTtmdW5jdGlvbiBIY3IoZSl7bGV0IHQ9MCxyPTAsbj1lO2Zvcig7biYmbi5vZmZzZXRMZWZ0Pj0wJiZuLm9mZnNldFRvcD49MDspdCs9bi5vZmZzZXRMZWZ0LW4uc2Nyb2xsTGVmdCxyKz1uLm9mZnNldFRvcC1uLnNjcm9sbFRvcCxuPW4ub2Zmc2V0UGFyZW50O3JldHVybntsZWZ0OnQsdG9wOnJ9fWZ1bmN0aW9uIFdsdChlLHQpe2xldCByPWUuZ2V0Q29udGV4dE1lbnUoKSxuPUh0KGUuZ2V0Q29udGV4dE1lbnUoKSk7cmV0dXJuIGZ1bmN0aW9uKGksbyl7bGV0IGE9cXQscz1IY3IoZSk7bi5zdHlsZSgiZGlzcGxheSIsImJsb2NrIikuc3R5bGUoImxlZnQiLGEuY2xpZW50WC1zLmxlZnQrMSsicHgiKS5zdHlsZSgidG9wIixhLmNsaWVudFktcy50b3ArMSsicHgiKSxhLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKTtmdW5jdGlvbiBsKHUpe3UmJnUuY29tcG9zZWRQYXRoKCkuaW5jbHVkZXMocil8fChuLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpLGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixsLHtjYXB0dXJlOiEwfSkpfWRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixsLHtjYXB0dXJlOiEwfSksbi50ZXh0KCIiKSxuLmFwcGVuZCgidWwiKS5zZWxlY3RBbGwoImxpIikuZGF0YSh0KS5lbnRlcigpLmFwcGVuZCgibGkiKS5vbigiY2xpY2siLCh1LGgpPT57dS5hY3Rpb24odGhpcyxpLG8pLGwoKX0pLnRleHQoZnVuY3Rpb24odSl7cmV0dXJuIHUudGl0bGUoaSl9KX19dmFyIEFIPUVlKE9lKCksMSk7dmFyIFVjcj0iXHhENyIsTmxlPXFiKCkuZG9tYWluKFtRNCx0UF0pLnJhbmdlKFsic21hbGwiLCJtZWRpdW0iLCJsYXJnZSIsInhsYXJnZSJdKSxxY3I9Mi41O2Z1bmN0aW9uIHBQKGUpe3JldHVybiBlLnYrb2xlK2Uud31mdW5jdGlvbiB6bGUoZSx0LHIpe2xldCBuPXIsaT1bXTtpPUFILnJlZHVjZSh0LmVkZ2VzKCksKHMsbCk9PntsZXQgYz10LmVkZ2UobCk7cmV0dXJuIHMucHVzaCh7djpsLnYsdzpsLncsbGFiZWw6Y30pLHN9LGkpO2xldCBhPUFuKGUsImciLHZlLkVkZ2UuQ09OVEFJTkVSKS5zZWxlY3RBbGwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzfSkuZGF0YShpLHBQKTtyZXR1cm4gYS5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIix2ZS5FZGdlLkdST1VQKS5hdHRyKCJkYXRhLWVkZ2UiLHBQKS5lYWNoKGZ1bmN0aW9uKHMpe2xldCBsPUh0KHRoaXMpO3MubGFiZWwuZWRnZUdyb3VwPWwsbi5fZWRnZUdyb3VwSW5kZXhbcFAocyldPWwsbi5oYW5kbGVFZGdlU2VsZWN0ZWQmJmwub24oImNsaWNrIixjPT57cXQuc3RvcFByb3BhZ2F0aW9uKCksbi5maXJlKCJlZGdlLXNlbGVjdCIse2VkZ2VEYXRhOmMsZWRnZUdyb3VwOmx9KX0pLFhsdChsLHMsbil9KS5tZXJnZShhKS5lYWNoKGZ1bmN0aW9uKCl7V2NyKHIsdGhpcyl9KS5lYWNoKGZ1bmN0aW9uKHMpe1ljcihIdCh0aGlzKSxzLG4pfSksYS5leGl0KCkuZWFjaChzPT57ZGVsZXRlIG4uX2VkZ2VHcm91cEluZGV4W3BQKHMpXX0pLnJlbW92ZSgpLGF9ZnVuY3Rpb24gWWx0KGUsdCl7bGV0IHI9dC5nZXROb2RlQnlOYW1lKGUudik7aWYoci5vdXRwdXRTaGFwZXM9PW51bGx8fEFILmlzRW1wdHkoci5vdXRwdXRTaGFwZXMpKXJldHVybiBudWxsO2xldCBuPXIub3V0cHV0U2hhcGVzW2Uub3V0cHV0VGVuc29yS2V5XTtyZXR1cm4gbj09bnVsbD9udWxsOm4ubGVuZ3RoPT09MD8ic2NhbGFyIjpuLm1hcChpPT5pPT09LTE/Ij8iOmkpLmpvaW4oVWNyKX1mdW5jdGlvbiBqbHQoZSx0KXtyZXR1cm4gdC5lZGdlTGFiZWxGdW5jdGlvbj90LmVkZ2VMYWJlbEZ1bmN0aW9uKGUsdCk6ZS5iYXNlRWRnZUxpc3QubGVuZ3RoPjE/ZS5iYXNlRWRnZUxpc3QubGVuZ3RoKyIgdGVuc29ycyI6WWx0KGUuYmFzZUVkZ2VMaXN0WzBdLHQpfWZ1bmN0aW9uIERsZShlLHQscil7bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGp1LCJwYXRoIik7Zm9yKGxldCBpPTE7aTxlLmxlbmd0aDtpKyspaWYobi5zZXRBdHRyaWJ1dGUoImQiLHIoZS5zbGljZSgwLGkpKSksbi5nZXRUb3RhbExlbmd0aCgpPnQpcmV0dXJuIGktMTtyZXR1cm4gZS5sZW5ndGgtMX1mdW5jdGlvbiBPbGUoZSx0LHIpe2xldCBuPXZ1KCkueCh1PT51LngpLnkodT0+dS55KSxpPUh0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIikpLmF0dHIoImQiLG4oZSkpLG89K3QuYXR0cigibWFya2VyV2lkdGgiKSxhPXQuYXR0cigidmlld0JveCIpLnNwbGl0KCIgIikubWFwKE51bWJlcikscz1hWzJdLWFbMF0sbD0rdC5hdHRyKCJyZWZYIiksYz1pLm5vZGUoKTtpZihyKXtsZXQgdT0xLWwvcyxoPW8qdSxmPWMuZ2V0UG9pbnRBdExlbmd0aChoKSxwPURsZShlLGgsbik7cmV0dXJuIGVbcC0xXT17eDpmLngseTpmLnl9LGUuc2xpY2UocC0xKX1lbHNle2xldCB1PTEtbC9zLGg9Yy5nZXRUb3RhbExlbmd0aCgpLW8qdSxmPWMuZ2V0UG9pbnRBdExlbmd0aChoKSxwPURsZShlLGgsbik7cmV0dXJuIGVbcF09e3g6Zi54LHk6Zi55fSxlLnNsaWNlKDAscCsxKX19ZnVuY3Rpb24gWGx0KGUsdCxyLG4pe249bnx8dmUuRWRnZS5MSU5FLHQubGFiZWwmJnQubGFiZWwuc3RydWN0dXJhbCYmKG4rPSIgIit2ZS5FZGdlLlNUUlVDVFVSQUwpLHQubGFiZWwmJnQubGFiZWwubWV0YWVkZ2UmJnQubGFiZWwubWV0YWVkZ2UubnVtUmVmRWRnZXMmJihuKz0iICIrdmUuRWRnZS5SRUZFUkVOQ0VfRURHRSksci5oYW5kbGVFZGdlU2VsZWN0ZWQmJihuKz0iICIrdmUuRWRnZS5TRUxFQ1RBQkxFKTtsZXQgaT0icGF0aF8iK3BQKHQpLG87aWYoci5yZW5kZXJIaWVyYXJjaHkuZWRnZVdpZHRoRnVuY3Rpb24pbz1yLnJlbmRlckhpZXJhcmNoeS5lZGdlV2lkdGhGdW5jdGlvbih0LG4pO2Vsc2V7bGV0IGM9MTt0LmxhYmVsIT1udWxsJiZ0LmxhYmVsLm1ldGFlZGdlIT1udWxsJiYoYz10LmxhYmVsLm1ldGFlZGdlLnRvdGFsU2l6ZSksbz1yLnJlbmRlckhpZXJhcmNoeS5lZGdlV2lkdGhTaXplZEJhc2VkU2NhbGUoYyl9bGV0IGE9ZS5hcHBlbmQoInBhdGgiKS5hdHRyKCJpZCIsaSkuYXR0cigiY2xhc3MiLG4pLnN0eWxlKCJzdHJva2Utd2lkdGgiLG8rInB4Iik7aWYodC5sYWJlbCYmdC5sYWJlbC5tZXRhZWRnZSlpZih0LmxhYmVsLm1ldGFlZGdlLm51bVJlZkVkZ2VzKXtsZXQgYz1gcmVmZXJlbmNlLWFycm93aGVhZC0ke05sZShvKX1gO2Euc3R5bGUoIm1hcmtlci1zdGFydCIsYHVybCgjJHtjfSlgKSx0LmxhYmVsLnN0YXJ0TWFya2VySWQ9Y31lbHNle2xldCBjPWBkYXRhZmxvdy1hcnJvd2hlYWQtJHtObGUobyl9YDthLnN0eWxlKCJtYXJrZXItZW5kIixgdXJsKCMke2N9KWApLHQubGFiZWwuZW5kTWFya2VySWQ9Y31pZih0LmxhYmVsPT1udWxsfHx0LmxhYmVsLm1ldGFlZGdlPT1udWxsKXJldHVybjtsZXQgcz1qbHQodC5sYWJlbC5tZXRhZWRnZSxyLnJlbmRlckhpZXJhcmNoeSk7aWYocz09bnVsbClyZXR1cm47bGV0IGw9bz5xY3I/ImNlbnRyYWwiOiJ0ZXh0LWFmdGVyLWVkZ2UiO2UuYXBwZW5kKCJ0ZXh0IikuYXBwZW5kKCJ0ZXh0UGF0aCIpLmF0dHIoInhsaW5rOmhyZWYiLCIjIitpKS5hdHRyKCJzdGFydE9mZnNldCIsIjUwJSIpLmF0dHIoInRleHQtYW5jaG9yIiwibWlkZGxlIikuYXR0cigiZG9taW5hbnQtYmFzZWxpbmUiLCJjZW50cmFsIikudGV4dChzKX12YXIgQ0g9dnUoKS5jdXJ2ZShXOCkueChlPT5lLngpLnkoZT0+ZS55KTtmdW5jdGlvbiBHY3IoZSx0LHIsbixpKXtsZXQgbz1yLmxhYmVsLGE9by5hZGpvaW5pbmdNZXRhZWRnZSxzPW8ucG9pbnRzLHtzaGFkb3dSb290Omx9PWU7aWYoci5sYWJlbC5zdGFydE1hcmtlcklkJiYocz1PbGUocyxIdChsPT1udWxsP3ZvaWQgMDpsLnF1ZXJ5U2VsZWN0b3IoIiMiK3IubGFiZWwuc3RhcnRNYXJrZXJJZCkpLCEwKSksci5sYWJlbC5lbmRNYXJrZXJJZCYmKHM9T2xlKHMsSHQobD09bnVsbD92b2lkIDA6bC5xdWVyeVNlbGVjdG9yKCIjIityLmxhYmVsLmVuZE1hcmtlcklkKSksITEpKSwhYSlyZXR1cm4gbmMoaSxDSChzKSk7bGV0IGM9YS5lZGdlR3JvdXAubm9kZSgpLmZpcnN0Q2hpbGQsdT1vLm1ldGFlZGdlLmluYm91bmQ7cmV0dXJuIGZ1bmN0aW9uKGgpe3ZhciBnO2xldCBmPWMuZ2V0UG9pbnRBdExlbmd0aCh1P2MuZ2V0VG90YWxMZW5ndGgoKTowKS5tYXRyaXhUcmFuc2Zvcm0oYy5nZXRDVE0oKSkubWF0cml4VHJhbnNmb3JtKChnPXQuZ2V0Q1RNKCkpPT1udWxsP3ZvaWQgMDpnLmludmVyc2UoKSkscD11PzA6cy5sZW5ndGgtMTtyZXR1cm4gc1twXS54PWYueCxzW3BdLnk9Zi55LENIKHMpfX1mdW5jdGlvbiBXY3IoZSx0KXtIdCh0KS5zZWxlY3QoInBhdGguIit2ZS5FZGdlLkxJTkUpLnRyYW5zaXRpb24oKS5hdHRyVHdlZW4oImQiLGZ1bmN0aW9uKHIsbixpKXtyZXR1cm4gR2NyKGUsdGhpcyxyLG4saSl9KX1mdW5jdGlvbiBZY3IoZSx0LHIpe2UuY2xhc3NlZCgiZmFkZWQiLHQubGFiZWwuaXNGYWRlZE91dCk7bGV0IG49dC5sYWJlbC5tZXRhZWRnZTtlLnNlbGVjdCgicGF0aC4iK3ZlLkVkZ2UuTElORSkuY2xhc3NlZCgiY29udHJvbC1kZXAiLG4mJiFuLm51bVJlZ3VsYXJFZGdlcyl9ZnVuY3Rpb24gUEgoZSx0LHIpe2xldCBpPUFuKGUsImciLHZlLk5vZGUuQ09OVEFJTkVSKS5zZWxlY3RBbGwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzfSkuZGF0YSh0LG89Pm8ubm9kZS5uYW1lKyI6IitvLm5vZGUudHlwZSk7cmV0dXJuIGkuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJkYXRhLW5hbWUiLG89Pm8ubm9kZS5uYW1lKS5lYWNoKGZ1bmN0aW9uKG8pe2xldCBhPUh0KHRoaXMpO3IuYWRkTm9kZUdyb3VwKG8ubm9kZS5uYW1lLGEpfSkubWVyZ2UoaSkuYXR0cigiY2xhc3MiLG89PnZlLk5vZGUuR1JPVVArIiAiK1dsZShvKSkuZWFjaChmdW5jdGlvbihvKXtsZXQgYT1IdCh0aGlzKSxzPUFuKGEsImciLHZlLkFubm90YXRpb24uSU5CT1gpO1ZsZShzLG8uaW5Bbm5vdGF0aW9ucyxvLHIpO2xldCBsPUFuKGEsImciLHZlLkFubm90YXRpb24uT1VUQk9YKTtWbGUobCxvLm91dEFubm90YXRpb25zLG8scik7bGV0IGM9R2xlKGEsbyx2ZS5Ob2RlLlNIQVBFKTtvLm5vZGUuaXNHcm91cE5vZGUmJlhjcihjLG8sciksSGxlKGMsbyxyKSxqY3IoYSxvLHIpO2xldCB1PUtjcihhLG8scik7SGxlKHUsbyxyLG8ubm9kZS50eXBlPT09anQuTUVUQSksczMoYSxvLHIpLEpjcihhLG8pfSksaS5leGl0KCkuZWFjaChmdW5jdGlvbihvKXtyLnJlbW92ZU5vZGVHcm91cChvLm5vZGUubmFtZSk7bGV0IGE9SHQodGhpcyk7by5pbkFubm90YXRpb25zLmxpc3QubGVuZ3RoPjAmJmEuc2VsZWN0KCIuIit2ZS5Bbm5vdGF0aW9uLklOQk9YKS5zZWxlY3RBbGwoIi4iK3ZlLkFubm90YXRpb24uR1JPVVApLmVhY2gocz0+e3IucmVtb3ZlQW5ub3RhdGlvbkdyb3VwKHMsbyl9KSxvLm91dEFubm90YXRpb25zLmxpc3QubGVuZ3RoPjAmJmEuc2VsZWN0KCIuIit2ZS5Bbm5vdGF0aW9uLk9VVEJPWCkuc2VsZWN0QWxsKCIuIit2ZS5Bbm5vdGF0aW9uLkdST1VQKS5lYWNoKHM9PntyLnJlbW92ZUFubm90YXRpb25Hcm91cChzLG8pfSl9KS5yZW1vdmUoKSxpfWZ1bmN0aW9uIGpjcihlLHQscil7aWYodC5ub2RlLmlzR3JvdXBOb2RlKXtpZih0LmV4cGFuZGVkKXJldHVybiBlY3QoZSx0LHIsdmUuU3Vic2NlbmUuR1JPVVApO0lsKGUsImciLHZlLlN1YnNjZW5lLkdST1VQKS5yZW1vdmUoKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBCbGUoZSx0KXtsZXQgcj10LngtdC53aWR0aC8yK3QucGFkZGluZ0xlZnQsbj10LnktdC5oZWlnaHQvMit0LnBhZGRpbmdUb3AsaT1JbChlLCJnIix2ZS5TdWJzY2VuZS5HUk9VUCk7YTMoaSxyLG4pfWZ1bmN0aW9uIFhjcihlLHQscil7bGV0IG49QW4oZSwiZyIsdmUuTm9kZS5CVVRUT05fQ09OVEFJTkVSKTtBbihuLCJjaXJjbGUiLHZlLk5vZGUuQlVUVE9OX0NJUkNMRSksQW4obiwicGF0aCIsdmUuTm9kZS5FWFBBTkRfQlVUVE9OKS5hdHRyKCJkIiwiTTAsLTIuMiBWMi4yIE0tMi4yLDAgSDIuMiIpLEFuKG4sInBhdGgiLHZlLk5vZGUuQ09MTEFQU0VfQlVUVE9OKS5hdHRyKCJkIiwiTS0yLjIsMCBIMi4yIiksbi5vbigiY2xpY2siLGk9PntxdC5zdG9wUHJvcGFnYXRpb24oKSxyLmZpcmUoIm5vZGUtdG9nZ2xlLWV4cGFuZCIse25hbWU6aS5ub2RlLm5hbWV9KX0pLGtsZShuLHQpfWZ1bmN0aW9uIEhsZShlLHQscixuKXtpZihuKXtlLmF0dHIoInBvaW50ZXItZXZlbnRzIiwibm9uZSIpO3JldHVybn1sZXQgaT1XbHQocixVbGUodC5ub2RlLHIpKTtlLm9uKCJkYmxjbGljayIsbz0+e3IuZmlyZSgibm9kZS10b2dnbGUtZXhwYW5kIix7bmFtZTpvLm5vZGUubmFtZX0pfSkub24oIm1vdXNlb3ZlciIsbz0+e3IuaXNOb2RlRXhwYW5kZWQobyl8fHIuZmlyZSgibm9kZS1oaWdobGlnaHQiLHtuYW1lOm8ubm9kZS5uYW1lfSl9KS5vbigibW91c2VvdXQiLG89PntyLmlzTm9kZUV4cGFuZGVkKG8pfHxyLmZpcmUoIm5vZGUtdW5oaWdobGlnaHQiLHtuYW1lOm8ubm9kZS5uYW1lfSl9KS5vbigiY2xpY2siLG89PntxdC5zdG9wUHJvcGFnYXRpb24oKSxyLmZpcmUoIm5vZGUtc2VsZWN0Iix7bmFtZTpvLm5vZGUubmFtZX0pfSkub24oImNvbnRleHRtZW51IiwobyxhKT0+e3IuZmlyZSgibm9kZS1zZWxlY3QiLHtuYW1lOm8ubm9kZS5uYW1lfSksaS5jYWxsKG8sYSl9KX1mdW5jdGlvbiBVbGUoZSx0KXtsZXQgcj1be3RpdGxlOm49PnlIKGUuaW5jbHVkZSksYWN0aW9uOihuLGksbyk9Pnt0LmZpcmUoIm5vZGUtdG9nZ2xlLWV4dHJhY3QiLHtuYW1lOmUubmFtZX0pfX1dO3JldHVybiB0Lm5vZGVDb250ZXh0TWVudUl0ZW1zJiYocj1yLmNvbmNhdCh0Lm5vZGVDb250ZXh0TWVudUl0ZW1zKSksSmx0KGUpJiZyLnB1c2goe3RpdGxlOm49PlFsdChlKSxhY3Rpb246KG4saSxvKT0+e3QuZmlyZSgibm9kZS10b2dnbGUtc2VyaWVzZ3JvdXAiLHtuYW1lOklIKGUpfSl9fSkscn1mdW5jdGlvbiBKbHQoZSl7cmV0dXJuIElIKGUpIT09bnVsbH1mdW5jdGlvbiBJSChlKXtyZXR1cm4gZT9lLnR5cGU9PT1qdC5TRVJJRVM/ZS5uYW1lOmUudHlwZT09PWp0Lk9QP2Uub3duaW5nU2VyaWVzOm51bGw6bnVsbH1mdW5jdGlvbiAkY3IoZSl7bGV0IHQ9bnVsbDtpZihlKWUudHlwZT09PWp0LlNFUklFUz90PWU6ZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUudHlwZT09PWp0LlNFUklFUyYmKHQ9ZS5wYXJlbnROb2RlKTtlbHNlIHJldHVybiBudWxsO3JldHVybiB0fWZ1bmN0aW9uIFFsdChlKXtyZXR1cm4gdWxlKCRjcihlKSE9PW51bGw/b3MuR1JPVVA6b3MuVU5HUk9VUCl9ZnVuY3Rpb24gS2NyKGUsdCxyKXt2YXIgYztsZXQgbj10LmRpc3BsYXlOYW1lLGk9dC5ub2RlLnR5cGU9PT1qdC5NRVRBJiYhdC5leHBhbmRlZCxvPUFuKGUsInRleHQiLHZlLk5vZGUuTEFCRUwpLGE9by5ub2RlKCk7KGM9YS5wYXJlbnROb2RlKT09bnVsbHx8Yy5hcHBlbmRDaGlsZChhKSxvLmF0dHIoImR5IiwiLjM1ZW0iKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpO2xldCBzPTg7c3dpdGNoKHQubm9kZS50eXBlKXtjYXNlIGp0Lk1FVEE6cz10LmV4cGFuZGVkP0o0Lk5vZGUuRVhQQU5ERURfTEFCRUw6SjQuTm9kZS5TRVJJRVNfTEFCRUw7YnJlYWs7Y2FzZSBqdC5PUDpzPUo0Lk5vZGUuT1BfTEFCRUw7YnJlYWt9aWYoaSl7bi5sZW5ndGg+ci5tYXhNZXRhbm9kZUxhYmVsTGVuZ3RoJiYobj1uLnN1YnN0cigwLHIubWF4TWV0YW5vZGVMYWJlbExlbmd0aC0yKSsiXHUyMDI2Iik7bGV0IHU9WmNyKHIpO28uYXR0cigiZm9udC1zaXplIix1KG4ubGVuZ3RoKSsicHgiKSxzPXUobi5sZW5ndGgpfWxldCBsPW8udGV4dChuKTtyZXR1cm4gcWxlKGwsdC5ub2RlLnR5cGUscyx0KSxvfWZ1bmN0aW9uIHFsZShlLHQscixuKXtsZXQgaT1lLm5vZGUoKSxvPWkudGV4dENvbnRlbnQsYT1udWxsO3N3aXRjaCh0KXtjYXNlIGp0Lk1FVEE6biYmIW4uZXhwYW5kZWQmJihhPVRyLm5vZGVTaXplLm1ldGEubWF4TGFiZWxXaWR0aCk7YnJlYWs7Y2FzZSBqdC5PUDphPVRyLm5vZGVTaXplLm9wLm1heExhYmVsV2lkdGg7YnJlYWs7Y2FzZS0xOmE9VHIuYW5ub3RhdGlvbnMubWF4TGFiZWxXaWR0aDticmVhaztkZWZhdWx0OmJyZWFrfWlmKGEhPT1udWxsKXJldHVybiBpLnRleHRDb250ZW50PXRsZShpLnRleHRDb250ZW50LHIsYSksZS5hcHBlbmQoInRpdGxlIikudGV4dChvKX12YXIgJGx0PW51bGw7ZnVuY3Rpb24gWmNyKGUpe3JldHVybiAkbHR8fCgkbHQ9em4oKS5kb21haW4oW2UubWF4TWV0YW5vZGVMYWJlbExlbmd0aExhcmdlRm9udCxlLm1heE1ldGFub2RlTGFiZWxMZW5ndGhdKS5yYW5nZShbZS5tYXhNZXRhbm9kZUxhYmVsTGVuZ3RoRm9udFNpemUsZS5taW5NZXRhbm9kZUxhYmVsTGVuZ3RoRm9udFNpemVdKS5jbGFtcCghMCkpLCRsdH1mdW5jdGlvbiBkUChlLHQscixuKXtJbChlLCJ0ZXh0Iix2ZS5Ob2RlLkxBQkVMKS50cmFuc2l0aW9uKCkuYXR0cigieCIsdCkuYXR0cigieSIscituKX1mdW5jdGlvbiBHbGUoZSx0LHIpe2xldCBuPUFuKGUsImciLHIpO3N3aXRjaCh0Lm5vZGUudHlwZSl7Y2FzZSBqdC5PUDpsZXQgaT10Lm5vZGU7aWYoVmkuaXNOdW1iZXIoaS5mdW5jdGlvbklucHV0SW5kZXgpfHxWaS5pc051bWJlcihpLmZ1bmN0aW9uT3V0cHV0SW5kZXgpKXtBbihuLCJwb2x5Z29uIix2ZS5Ob2RlLkNPTE9SX1RBUkdFVCk7YnJlYWt9QW4obiwiZWxsaXBzZSIsdmUuTm9kZS5DT0xPUl9UQVJHRVQpO2JyZWFrO2Nhc2UganQuU0VSSUVTOmxldCBvPSJhbm5vdGF0aW9uIixhPXQ7YS5jb3JlR3JhcGgmJihvPWEubm9kZS5oYXNOb25Db250cm9sRWRnZXM/InZlcnRpY2FsIjoiaG9yaXpvbnRhbCIpO2xldCBzPVt2ZS5Ob2RlLkNPTE9SX1RBUkdFVF07YS5pc0ZhZGVkT3V0JiZzLnB1c2goImZhZGVkLWVsbGlwc2UiKSxBbihuLCJ1c2UiLHMpLmF0dHIoInhsaW5rOmhyZWYiLCIjb3Atc2VyaWVzLSIrbysiLXN0YW1wIiksQW4obiwicmVjdCIsdmUuTm9kZS5DT0xPUl9UQVJHRVQpLmF0dHIoInJ4Iix0LnJhZGl1cykuYXR0cigicnkiLHQucmFkaXVzKTticmVhaztjYXNlIGp0LkJSSURHRTpBbihuLCJyZWN0Iix2ZS5Ob2RlLkNPTE9SX1RBUkdFVCkuYXR0cigicngiLHQucmFkaXVzKS5hdHRyKCJyeSIsdC5yYWRpdXMpO2JyZWFrO2Nhc2UganQuTUVUQTpBbihuLCJyZWN0Iix2ZS5Ob2RlLkNPTE9SX1RBUkdFVCkuYXR0cigicngiLHQucmFkaXVzKS5hdHRyKCJyeSIsdC5yYWRpdXMpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlVucmVjb2duaXplZCBub2RlIHR5cGU6ICIrdC5ub2RlLnR5cGUpfXJldHVybiBufWZ1bmN0aW9uIFdsZShlKXtzd2l0Y2goZS5ub2RlLnR5cGUpe2Nhc2UganQuT1A6cmV0dXJuIHZlLk9QTk9ERTtjYXNlIGp0Lk1FVEE6cmV0dXJuIHZlLk1FVEFOT0RFO2Nhc2UganQuU0VSSUVTOnJldHVybiB2ZS5TRVJJRVNOT0RFO2Nhc2UganQuQlJJREdFOnJldHVybiB2ZS5CUklER0VOT0RFO2Nhc2UganQuRUxMSVBTSVM6cmV0dXJuIHZlLkVMTElQU0lTTk9ERX10aHJvdyBFcnJvcigiVW5yZWNvZ25pemVkIG5vZGUgdHlwZTogIitlLm5vZGUudHlwZSl9ZnVuY3Rpb24gSmNyKGUsdCl7bGV0IHI9SWwoZSwiZyIsdmUuTm9kZS5TSEFQRSksbj14MCh0KTtzd2l0Y2godC5ub2RlLnR5cGUpe2Nhc2UganQuT1A6e2xldCBpPXQubm9kZTtpZihWaS5pc051bWJlcihpLmZ1bmN0aW9uSW5wdXRJbmRleCl8fFZpLmlzTnVtYmVyKGkuZnVuY3Rpb25PdXRwdXRJbmRleCkpe2xldCBvPUlsKHIsInBvbHlnb24iKTtMbGUobyx0LngsdC55LHQuY29yZUJveC53aWR0aCx0LmNvcmVCb3guaGVpZ2h0KX1lbHNle2xldCBvPUlsKHIsImVsbGlwc2UiKTtFSChvLG4sdC55LHQuY29yZUJveC53aWR0aCx0LmNvcmVCb3guaGVpZ2h0KX1kUChlLG4sdC55LHQubGFiZWxPZmZzZXQpO2JyZWFrfWNhc2UganQuTUVUQTp7bGV0IGk9ci5zZWxlY3RBbGwoInJlY3QiKTt0LmV4cGFuZGVkPyhGZChpLHQueCx0LnksdC53aWR0aCx0LmhlaWdodCksQmxlKGUsdCksZFAoZSxuLHQueSwtdC5oZWlnaHQvMit0LmxhYmVsSGVpZ2h0LzIpKTooRmQoaSxuLHQueSx0LmNvcmVCb3gud2lkdGgsdC5jb3JlQm94LmhlaWdodCksZFAoZSxuLHQueSwwKSk7YnJlYWt9Y2FzZSBqdC5TRVJJRVM6e2xldCBpPUlsKHIsInVzZSIpO3QuZXhwYW5kZWQ/KEZkKGksdC54LHQueSx0LndpZHRoLHQuaGVpZ2h0KSxCbGUoZSx0KSxkUChlLG4sdC55LC10LmhlaWdodC8yK3QubGFiZWxIZWlnaHQvMikpOihGZChpLG4sdC55LHQuY29yZUJveC53aWR0aCx0LmNvcmVCb3guaGVpZ2h0KSxkUChlLG4sdC55LHQubGFiZWxPZmZzZXQpKTticmVha31jYXNlIGp0LkJSSURHRTp7bGV0IGk9SWwociwicmVjdCIpO0ZkKGksdC54LHQueSx0LndpZHRoLHQuaGVpZ2h0KTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnJlY29nbml6ZWQgbm9kZSB0eXBlOiAiK3Qubm9kZS50eXBlKX19ZnVuY3Rpb24gS2x0KGUsdCxyKXtsZXQgbj1Kc2UoZSk7aWYoIXIpcmV0dXJuYHVybCgjJHtufSlgO2xldCBpPUh0KHIpLG89aS5zZWxlY3QoImRlZnMjX2dyYXBoLWdyYWRpZW50cyIpO28uZW1wdHkoKSYmKG89aS5hcHBlbmQoImRlZnMiKS5hdHRyKCJpZCIsIl9ncmFwaC1ncmFkaWVudHMiKSk7bGV0IGE9by5zZWxlY3QoImxpbmVhckdyYWRpZW50IyIrbik7aWYoYS5lbXB0eSgpKXthPW8uYXBwZW5kKCJsaW5lYXJHcmFkaWVudCIpLmF0dHIoImlkIixlKSxhLnNlbGVjdEFsbCgiKiIpLnJlbW92ZSgpO2xldCBzPTA7VmkuZWFjaCh0LGw9PntsZXQgYz1sLmNvbG9yO2EuYXBwZW5kKCJzdG9wIikuYXR0cigib2Zmc2V0IixzKS5hdHRyKCJzdG9wLWNvbG9yIixjKSxhLmFwcGVuZCgic3RvcCIpLmF0dHIoIm9mZnNldCIscytsLnByb3BvcnRpb24pLmF0dHIoInN0b3AtY29sb3IiLGMpLHMrPWwucHJvcG9ydGlvbn0pfXJldHVybmB1cmwoIyR7bn0pYH1mdW5jdGlvbiBMSChlKXtIdChlKS5zZWxlY3QoImRlZnMjX2dyYXBoLWdyYWRpZW50cyIpLnJlbW92ZSgpfWZ1bmN0aW9uIGtIKGUsdCxyLG4saSl7bGV0IG89S3U7c3dpdGNoKGU9ZXx8KCgpPT4wKSx0KXtjYXNlIEduLk5PTkU6Y2FzZSBHbi5TVFJVQ1RVUkU6aWYoci5ub2RlLnR5cGU9PT1qdC5NRVRBKXtsZXQgYT1yLm5vZGUudGVtcGxhdGVJZDtyZXR1cm4gdD09PUduLlNUUlVDVFVSRSYmYSE9PW51bGw/by5TVFJVQ1RVUkVfUEFMRVRURShlKGEpLG4pOm8uVU5LTk9XTn1lbHNlIHJldHVybiByLm5vZGUudHlwZT09PWp0LlNFUklFUz9uP28uRVhQQU5ERURfQ09MT1I6IndoaXRlIjpyLm5vZGUudHlwZT09PWp0LkJSSURHRT9yLnN0cnVjdHVyYWw/IiNmMGUiOnIubm9kZS5pbmJvdW5kPyIjMGVmIjoiI2ZlMCI6VmkuaXNOdW1iZXIoci5ub2RlLmZ1bmN0aW9uSW5wdXRJbmRleCk/IiM3OTU1NDgiOlZpLmlzTnVtYmVyKHIubm9kZS5mdW5jdGlvbk91dHB1dEluZGV4KT8iIzAwOTY4OCI6IndoaXRlIjtjYXNlIEduLkRFVklDRTpyZXR1cm4gci5kZXZpY2VDb2xvcnM9PW51bGw/by5VTktOT1dOOm4/by5FWFBBTkRFRF9DT0xPUjpLbHQoImRldmljZS0iK3Iubm9kZS5uYW1lLHIuZGV2aWNlQ29sb3JzLGkpO2Nhc2UgR24uWExBX0NMVVNURVI6cmV0dXJuIHIueGxhQ2x1c3RlckNvbG9ycz09bnVsbD9vLlVOS05PV046bj9vLkVYUEFOREVEX0NPTE9SOktsdCgieGxhLSIrci5ub2RlLm5hbWUsci54bGFDbHVzdGVyQ29sb3JzLGkpO2Nhc2UgR24uQ09NUFVURV9USU1FOnJldHVybiBuP28uRVhQQU5ERURfQ09MT1I6ci5jb21wdXRlVGltZUNvbG9yfHxvLlVOS05PV047Y2FzZSBHbi5NRU1PUlk6cmV0dXJuIG4/by5FWFBBTkRFRF9DT0xPUjpyLm1lbW9yeUNvbG9yfHxvLlVOS05PV047Y2FzZSBHbi5PUF9DT01QQVRJQklMSVRZOnJldHVybiByLmNvbXBhdGliaWxpdHlDb2xvcnM9PW51bGw/by5VTktOT1dOOm4/by5FWFBBTkRFRF9DT0xPUjpLbHQoIm9wLWNvbXBhdC0iK3Iubm9kZS5uYW1lLHIuY29tcGF0aWJpbGl0eUNvbG9ycyxpKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5rbm93biBjYXNlIHRvIGNvbG9yIG5vZGVzIGJ5Iil9fWZ1bmN0aW9uIHMzKGUsdCxyLG4pe249bnx8dmUuTm9kZS5TSEFQRTtsZXQgaT1yLmlzTm9kZUhpZ2hsaWdodGVkKHQubm9kZS5uYW1lKSxvPXIuaXNOb2RlU2VsZWN0ZWQodC5ub2RlLm5hbWUpLGE9dC5pc0luRXh0cmFjdHx8dC5pc091dEV4dHJhY3R8fHQuaXNMaWJyYXJ5RnVuY3Rpb24scz10LmV4cGFuZGVkJiZuIT09dmUuQW5ub3RhdGlvbi5OT0RFLGw9dC5pc0ZhZGVkT3V0O2UuY2xhc3NlZCgiaGlnaGxpZ2h0ZWQiLGkpLGUuY2xhc3NlZCgic2VsZWN0ZWQiLG8pLGUuY2xhc3NlZCgiZXh0cmFjdCIsYSksZS5jbGFzc2VkKCJleHBhbmRlZCIscyksZS5jbGFzc2VkKCJmYWRlZCIsbCk7bGV0IGM9ZS5zZWxlY3QoIi4iK24rIiAuIit2ZS5Ob2RlLkNPTE9SX1RBUkdFVCksdT1rSChyLnRlbXBsYXRlSW5kZXgsci5jb2xvckJ5LHQscyxyLmdldEdyYXBoU3ZnUm9vdCgpKTtjLnN0eWxlKCJmaWxsIix1KSxjLnN0eWxlKCJzdHJva2UiLG8/bnVsbDp0Y3QodSkpfWZ1bmN0aW9uIHRjdChlKXtyZXR1cm4gZS5zdWJzdHJpbmcoMCwzKT09PSJ1cmwiP0t1LkdSQURJRU5UX09VVExJTkU6Y3UoZSkuZGFya2VyKCkudG9TdHJpbmcoKX1mdW5jdGlvbiBZbGUoZSx0LHIsbil7bGV0IGk9SHQoZSk7aWYoaS5zZWxlY3RBbGwoIi5pbnB1dC1oaWdobGlnaHQiKS5jbGFzc2VkKCJpbnB1dC1oaWdobGlnaHQiLCExKSxpLnNlbGVjdEFsbCgiLm5vbi1pbnB1dCIpLmNsYXNzZWQoIm5vbi1pbnB1dCIsITEpLGkuc2VsZWN0QWxsKCIuaW5wdXQtcGFyZW50IikuY2xhc3NlZCgiaW5wdXQtcGFyZW50IiwhMSksaS5zZWxlY3RBbGwoIi5pbnB1dC1jaGlsZCIpLmNsYXNzZWQoImlucHV0LWNoaWxkIiwhMSksaS5zZWxlY3RBbGwoIi5pbnB1dC1lZGdlLWhpZ2hsaWdodCIpLmNsYXNzZWQoImlucHV0LWVkZ2UtaGlnaGxpZ2h0IiwhMSksaS5zZWxlY3RBbGwoIi5ub24taW5wdXQtZWRnZS1oaWdobGlnaHQiKS5jbGFzc2VkKCJub24taW5wdXQtZWRnZS1oaWdobGlnaHQiLCExKSxpLnNlbGVjdEFsbCgiLmlucHV0LWhpZ2hsaWdodC1zZWxlY3RlZCIpLmNsYXNzZWQoImlucHV0LWhpZ2hsaWdodC1zZWxlY3RlZCIsITEpLCF0fHwhbnx8IXIpcmV0dXJuO2xldCBvPWpsZShyLHQpLGE9e307VmkuZWFjaChvLGZ1bmN0aW9uKGMpe2E9WGxlKGUsdCxjLGEpfSk7bGV0IHM9T2JqZWN0LmtleXMoYSksbD10dXIodCxzKTtldXIoZSxsKSxpLnNlbGVjdEFsbCgiZy5ub2RlOm5vdCguc2VsZWN0ZWQpOm5vdCguaW5wdXQtaGlnaGxpZ2h0KTpub3QoLmlucHV0LXBhcmVudCk6bm90KC5pbnB1dC1jaGlsZHJlbikiKS5jbGFzc2VkKCJub24taW5wdXQiLCEwKS5lYWNoKGZ1bmN0aW9uKGMpe2xldCB1PWMubm9kZS5uYW1lO2kuc2VsZWN0QWxsKGBbZGF0YS1uYW1lPSIke3V9Il1gKS5jbGFzc2VkKCJub24taW5wdXQiLCEwKX0pLGkuc2VsZWN0QWxsKCJnLmVkZ2U6bm90KC5pbnB1dC1lZGdlLWhpZ2hsaWdodCkiKS5jbGFzc2VkKCJub24taW5wdXQtZWRnZS1oaWdobGlnaHQiLCEwKX1mdW5jdGlvbiBqbGUoZSx0KXtsZXQgcj1bXSxuPXQuZ2V0Tm9kZUJ5TmFtZShlKTtpZihuIGluc3RhbmNlb2YgeTApcmV0dXJuW25dLmNvbmNhdChuLmluRW1iZWRkaW5ncyk7bGV0IGk9bi5tZXRhZ3JhcGgubm9kZXMoKTtyZXR1cm4gVmkuZWFjaChpLGZ1bmN0aW9uKG8pe3I9ci5jb25jYXQoamxlKG8sdCkpfSkscn1mdW5jdGlvbiBYbGUoZSx0LHIsbil7aWYobltyLm5hbWVdKXJldHVybiBuO25bci5uYW1lXT0hMDtsZXQgaT1yLmlucHV0cyxvPVpsdCh0LHIpO0h0KGUpLnNlbGVjdChgLm5vZGVbZGF0YS1uYW1lPSIke28ubmFtZX0iXWApLmNsYXNzZWQoImlucHV0LWhpZ2hsaWdodCIsITApO2xldCBhPXt9O1ZpLmVhY2goaSxmdW5jdGlvbih1KXtsZXQgaD10LmdldE5vZGVCeU5hbWUodS5uYW1lKTtpZihoPT09dm9pZCAwKXJldHVybjtpZihoIGluc3RhbmNlb2YgYVApe2xldCBkPXNQKGgubmFtZSk7aD10LmdldE5vZGVCeU5hbWUoZCl9bGV0IGY9Wmx0KHQsaCkscD1hW2YubmFtZV07cD9wLm9wTm9kZXMucHVzaChoKTphW2YubmFtZV09e3Zpc2libGVQYXJlbnQ6ZixvcE5vZGVzOltoXX19KTtsZXQgcz17fSxsPVtvXTtzW28ubmFtZV09e3RyYWNlZDohMSxpbmRleDowLGNvbm5lY3Rpb25FbmRwb2ludHM6W119O2xldCBjPW87Zm9yKGxldCB1PTE7Yy5uYW1lIT09cWM7dSsrKWM9Yy5wYXJlbnROb2RlLHNbYy5uYW1lXT17dHJhY2VkOiExLGluZGV4OnUsY29ubmVjdGlvbkVuZHBvaW50czpbXX0sbFt1XT1jO3JldHVybiBWaS5mb3JPd24oYSxmdW5jdGlvbih1LGgpe2xldCBmPXUudmlzaWJsZVBhcmVudDtWaS5lYWNoKHUub3BOb2RlcyxmdW5jdGlvbihwKXtuPVhsZShlLHQscCxuKX0pLGYubmFtZSE9PW8ubmFtZSYmUWNyKGUsZixzLGwpfSksbn1mdW5jdGlvbiBRY3IoZSx0LHIsbil7bGV0IGk9dCxvPXQsYT1bXTtmb3IoOyFyW2kubmFtZV07KW8ubmFtZSE9PWkubmFtZSYmYS5wdXNoKFtvLGldKSxvPWksaT1pLnBhcmVudE5vZGU7bGV0IHM9cltpLm5hbWVdLmluZGV4LGw9bltNYXRoLm1heChzLTEsMCldLm5hbWUsYz1sLHU9by5uYW1lLGg9by5uYW1lLGY9SHQoZSk7Zi5zZWxlY3RBbGwoYFtkYXRhLWVkZ2U9IiR7aH0tLSR7bH0iXWApLmNsYXNzZWQoImlucHV0LWVkZ2UtaGlnaGxpZ2h0IiwhMCksVmkuZWFjaChhLGZ1bmN0aW9uKHApe2xldCBkPXBbMF0sZz1wWzFdLF89YFtkYXRhLWVkZ2U9IiR7ZC5uYW1lfS0tJHtjfX5+JHtnLm5hbWV9fn5PVVQiXWA7Zi5zZWxlY3RBbGwoXykuY2xhc3NlZCgiaW5wdXQtZWRnZS1oaWdobGlnaHQiLCEwKX0pO2ZvcihsZXQgcD0xO3A8cztwKyspe2xldCBkPW5bcC0xXSxnPW5bcF0sXz1gW2RhdGEtZWRnZT0iJHt1fX5+JHtnLm5hbWV9fn5JTi0tJHtkLm5hbWV9Il1gO2Yuc2VsZWN0QWxsKF8pLmNsYXNzZWQoImlucHV0LWVkZ2UtaGlnaGxpZ2h0IiwhMCl9fWZ1bmN0aW9uIHR1cihlLHQpe2xldCByPXt9O3JldHVybiBWaS5lYWNoKHQsZnVuY3Rpb24obil7bGV0IGk9ZS5nZXROb2RlQnlOYW1lKG4pLG89Wmx0KGUsaSk7cltvLm5hbWVdPW99KSxyfWZ1bmN0aW9uIGV1cihlLHQpe1ZpLmZvck93bih0LGZ1bmN0aW9uKHIpe2xldCBuPXI7Zm9yKDtuLm5hbWUhPT1xYzspe2xldCBpPUh0KGUpLnNlbGVjdChgLm5vZGVbZGF0YS1uYW1lPSIke24ubmFtZX0iXWApO2kubm9kZXMoKS5sZW5ndGgmJiFpLmNsYXNzZWQoImlucHV0LWhpZ2hsaWdodCIpJiYhaS5jbGFzc2VkKCJzZWxlY3RlZCIpJiYhaS5jbGFzc2VkKCJvcCIpJiZpLmNsYXNzZWQoImlucHV0LXBhcmVudCIsITApLG49bi5wYXJlbnROb2RlfX0pfWZ1bmN0aW9uIFpsdChlLHQpe2xldCByPSExLG49dDtmb3IoOyFyOylpZih0PW4sbj10LnBhcmVudE5vZGUsbj09PXZvaWQgMClyPSEwO2Vsc2V7bGV0IGk9ZS5nZXRSZW5kZXJOb2RlQnlOYW1lKG4ubmFtZSk7aSYmKGkuZXhwYW5kZWR8fG4gaW5zdGFuY2VvZiB5MCkmJihyPSEwKX1yZXR1cm4gdH1mdW5jdGlvbiBWbGUoZSx0LHIsbil7bGV0IGk9ZS5zZWxlY3RBbGwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzfSkuZGF0YSh0Lmxpc3Qsbz0+by5ub2RlLm5hbWUpO3JldHVybiBpLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiZGF0YS1uYW1lIixvPT5vLm5vZGUubmFtZSkuZWFjaChmdW5jdGlvbihvKXtsZXQgYT1IdCh0aGlzKTtuLmFkZEFubm90YXRpb25Hcm91cChvLHIsYSk7bGV0IHM9dmUuQW5ub3RhdGlvbi5FREdFLGw9by5yZW5kZXJNZXRhZWRnZUluZm8mJm8ucmVuZGVyTWV0YWVkZ2VJbmZvLm1ldGFlZGdlO2wmJiFsLm51bVJlZ3VsYXJFZGdlcyYmKHMrPSIgIit2ZS5Bbm5vdGF0aW9uLkNPTlRST0xfRURHRSksbCYmbC5udW1SZWZFZGdlcyYmKHMrPSIgIit2ZS5FZGdlLlJFRl9MSU5FKSxYbHQoYSxvLG4scyksby5hbm5vdGF0aW9uVHlwZSE9PWdpLkVMTElQU0lTPyhpdXIoYSxvKSxudXIoYSxvKSk6JGxlKGEsby5ub2RlLm5hbWUsbyx2ZS5Bbm5vdGF0aW9uLkVMTElQU0lTKX0pLm1lcmdlKGkpLmF0dHIoImNsYXNzIixvPT52ZS5Bbm5vdGF0aW9uLkdST1VQKyIgIitydXIoby5hbm5vdGF0aW9uVHlwZSkrIiAiK1dsZShvKSkuZWFjaChmdW5jdGlvbihvKXtsZXQgYT1IdCh0aGlzKTthdXIoYSxyLG8sbiksby5hbm5vdGF0aW9uVHlwZSE9PWdpLkVMTElQU0lTJiZvdXIoYSxyLG8sbil9KSxpLmV4aXQoKS5lYWNoKGZ1bmN0aW9uKG8pe24ucmVtb3ZlQW5ub3RhdGlvbkdyb3VwKG8scil9KS5yZW1vdmUoKSxpfWZ1bmN0aW9uIHJ1cihlKXtyZXR1cm4oZ2lbZV18fCIiKS50b0xvd2VyQ2FzZSgpfHxudWxsfWZ1bmN0aW9uIG51cihlLHQpe2lmKHQuYW5ub3RhdGlvblR5cGU9PT1naS5TVU1NQVJZKUFuKGUsInVzZSIpLmF0dHIoImNsYXNzIiwic3VtbWFyeSIpLmF0dHIoInhsaW5rOmhyZWYiLCIjc3VtbWFyeS1pY29uIikuYXR0cigiY3Vyc29yIiwicG9pbnRlciIpO2Vsc2V7bGV0IHI9R2xlKGUsdCx2ZS5Bbm5vdGF0aW9uLk5PREUpO0FuKHIsInRpdGxlIikudGV4dCh0Lm5vZGUubmFtZSl9fWZ1bmN0aW9uIGl1cihlLHQpe2xldCByPXQubm9kZS5uYW1lLnNwbGl0KCIvIiksbj1yW3IubGVuZ3RoLTFdO3JldHVybiAkbGUoZSxuLHQsbnVsbCl9ZnVuY3Rpb24gJGxlKGUsdCxyLG4pe2xldCBpPXZlLkFubm90YXRpb24uTEFCRUw7biYmKGkrPSIgIituKTtsZXQgbz1lLmFwcGVuZCgidGV4dCIpLmF0dHIoImNsYXNzIixpKS5hdHRyKCJkeSIsIi4zNWVtIikuYXR0cigidGV4dC1hbmNob3IiLHIuaXNJbj8iZW5kIjoic3RhcnQiKS50ZXh0KHQpO3JldHVybiBxbGUobywtMSxKNC5Bbm5vdGF0aW9uLkxBQkVMKX1mdW5jdGlvbiBvdXIoZSx0LHIsbil7ZS5vbigibW91c2VvdmVyIixpPT57bi5maXJlKCJhbm5vdGF0aW9uLWhpZ2hsaWdodCIse25hbWU6aS5ub2RlLm5hbWUsaG9zdE5hbWU6dC5ub2RlLm5hbWV9KX0pLm9uKCJtb3VzZW91dCIsaT0+e24uZmlyZSgiYW5ub3RhdGlvbi11bmhpZ2hsaWdodCIse25hbWU6aS5ub2RlLm5hbWUsaG9zdE5hbWU6dC5ub2RlLm5hbWV9KX0pLm9uKCJjbGljayIsaT0+e3F0LnN0b3BQcm9wYWdhdGlvbigpLG4uZmlyZSgiYW5ub3RhdGlvbi1zZWxlY3QiLHtuYW1lOmkubm9kZS5uYW1lLGhvc3ROYW1lOnQubm9kZS5uYW1lfSl9KSxyLmFubm90YXRpb25UeXBlIT09Z2kuU1VNTUFSWSYmci5hbm5vdGF0aW9uVHlwZSE9PWdpLkNPTlNUQU5UJiZlLm9uKCJjb250ZXh0bWVudSIsV2x0KG4sVWxlKHIubm9kZSxuKSkpfWZ1bmN0aW9uIGF1cihlLHQscixuKXtsZXQgaT14MCh0KTtyLnJlbmRlck5vZGVJbmZvJiZyLmFubm90YXRpb25UeXBlIT09Z2kuRUxMSVBTSVMmJnMzKGUsci5yZW5kZXJOb2RlSW5mbyxuLHZlLkFubm90YXRpb24uTk9ERSksci5hbm5vdGF0aW9uVHlwZT09PWdpLlNVTU1BUlkmJihyLndpZHRoKz0xMCksZS5zZWxlY3QoInRleHQuIit2ZS5Bbm5vdGF0aW9uLkxBQkVMKS50cmFuc2l0aW9uKCkuYXR0cigieCIsaStyLmR4KyhyLmlzSW4/LTE6MSkqKHIud2lkdGgvMityLmxhYmVsT2Zmc2V0KSkuYXR0cigieSIsdC55K3IuZHkpLGUuc2VsZWN0KCJ1c2Uuc3VtbWFyeSIpLnRyYW5zaXRpb24oKS5hdHRyKCJ4IixpK3IuZHgtMykuYXR0cigieSIsdC55K3IuZHktNiksRUgoZS5zZWxlY3QoIi4iK3ZlLkFubm90YXRpb24uTk9ERSsiIGVsbGlwc2UiKSxpK3IuZHgsdC55K3IuZHksci53aWR0aCxyLmhlaWdodCksRmQoZS5zZWxlY3QoIi4iK3ZlLkFubm90YXRpb24uTk9ERSsiIHJlY3QiKSxpK3IuZHgsdC55K3IuZHksci53aWR0aCxyLmhlaWdodCksRmQoZS5zZWxlY3QoIi4iK3ZlLkFubm90YXRpb24uTk9ERSsiIHVzZSIpLGkrci5keCx0Lnkrci5keSxyLndpZHRoLHIuaGVpZ2h0KSxlLnNlbGVjdCgicGF0aC4iK3ZlLkFubm90YXRpb24uRURHRSkudHJhbnNpdGlvbigpLmF0dHIoImQiLG89PntsZXQgYT1vLnBvaW50cy5tYXAocz0+KHt4OnMuZHgraSx5OnMuZHkrdC55fSkpO3JldHVybiBDSChhKX0pfWZ1bmN0aW9uIGVjdChlLHQscixuKXtuPW58fHZlLlNjZW5lLkdST1VQO2xldCBpPWcwKGUsImciLG4pLmVtcHR5KCksbz1BbihlLCJnIixuKSxhPUFuKG8sImciLHZlLlNjZW5lLkNPUkUpLHM9VmkucmVkdWNlKHQuY29yZUdyYXBoLm5vZGVzKCksKGwsYyk9PntsZXQgdT10LmNvcmVHcmFwaC5ub2RlKGMpO3JldHVybiB1LmV4Y2x1ZGVkfHxsLnB1c2godSksbH0sQXJyYXkoKSk7aWYodC5ub2RlLnR5cGU9PT1qdC5TRVJJRVMmJnMucmV2ZXJzZSgpLHpsZShhLHQuY29yZUdyYXBoLHIpLFBIKGEscyxyKSx0Lmlzb2xhdGVkSW5FeHRyYWN0Lmxlbmd0aD4wKXtsZXQgbD1BbihvLCJnIix2ZS5TY2VuZS5JTkVYVFJBQ1QpO1BIKGwsdC5pc29sYXRlZEluRXh0cmFjdCxyKX1lbHNlIGcwKG8sImciLHZlLlNjZW5lLklORVhUUkFDVCkucmVtb3ZlKCk7aWYodC5pc29sYXRlZE91dEV4dHJhY3QubGVuZ3RoPjApe2xldCBsPUFuKG8sImciLHZlLlNjZW5lLk9VVEVYVFJBQ1QpO1BIKGwsdC5pc29sYXRlZE91dEV4dHJhY3Qscil9ZWxzZSBnMChvLCJnIix2ZS5TY2VuZS5PVVRFWFRSQUNUKS5yZW1vdmUoKTtpZih0LmxpYnJhcnlGdW5jdGlvbnNFeHRyYWN0Lmxlbmd0aD4wKXtsZXQgbD1BbihvLCJnIix2ZS5TY2VuZS5GVU5DVElPTl9MSUJSQVJZKTtQSChsLHQubGlicmFyeUZ1bmN0aW9uc0V4dHJhY3Qscil9ZWxzZSBnMChvLCJnIix2ZS5TY2VuZS5GVU5DVElPTl9MSUJSQVJZKS5yZW1vdmUoKTtyZXR1cm4gUGxlKG8sdCksaSYmby5hdHRyKCJvcGFjaXR5IiwwKS50cmFuc2l0aW9uKCkuYXR0cigib3BhY2l0eSIsMSksb312YXIgc3VyPS44LFJIPWNsYXNze2NvbnN0cnVjdG9yKHQscixuLGksbyxhKXt0aGlzLnN2Zz10LHRoaXMubGFiZWxQYWRkaW5nPWEsdGhpcy56b29tRz1yLHRoaXMubWFpblpvb209bix0aGlzLm1heFdhbmRIPW87bGV0IHM9SHQoaS5zaGFkb3dSb290KSxsPXMuc2VsZWN0KCJzdmciKSxjPWwuc2VsZWN0KCJyZWN0IiksdT1mPT57dGhpcy52aWV3cG9pbnRDb29yZC54PXF0LngsdGhpcy52aWV3cG9pbnRDb29yZC55PXF0LnksdGhpcy51cGRhdGVWaWV3cG9pbnQoKX07dGhpcy52aWV3cG9pbnRDb29yZD17eDowLHk6MH07bGV0IGg9cGIoKS5zdWJqZWN0KE9iamVjdCkub24oImRyYWciLHUpO2MuZGF0dW0odGhpcy52aWV3cG9pbnRDb29yZCkuY2FsbChoKSxsLm9uKCJjbGljayIsKCk9PntpZihxdC5kZWZhdWx0UHJldmVudGVkKXJldHVybjtsZXQgZj1OdW1iZXIoYy5hdHRyKCJ3aWR0aCIpKSxwPU51bWJlcihjLmF0dHIoImhlaWdodCIpKSxkPXpvKGwubm9kZSgpKTt0aGlzLnZpZXdwb2ludENvb3JkLng9ZFswXS1mLzIsdGhpcy52aWV3cG9pbnRDb29yZC55PWRbMV0tcC8yLHRoaXMudXBkYXRlVmlld3BvaW50KCl9KSx0aGlzLnZpZXdwb2ludD1jLm5vZGUoKSx0aGlzLm1pbmltYXBTdmc9bC5ub2RlKCksdGhpcy5taW5pbWFwPWksdGhpcy5jYW52YXM9cy5zZWxlY3QoImNhbnZhcy5maXJzdCIpLm5vZGUoKSx0aGlzLmNhbnZhc0J1ZmZlcj1zLnNlbGVjdCgiY2FudmFzLnNlY29uZCIpLm5vZGUoKSx0aGlzLmRvd25sb2FkQ2FudmFzPXMuc2VsZWN0KCJjYW52YXMuZG93bmxvYWQiKS5ub2RlKCksSHQodGhpcy5kb3dubG9hZENhbnZhcykuc3R5bGUoImRpc3BsYXkiLCJub25lIiksdGhpcy51cGRhdGUoKX11cGRhdGVWaWV3cG9pbnQoKXtIdCh0aGlzLnZpZXdwb2ludCkuYXR0cigieCIsdGhpcy52aWV3cG9pbnRDb29yZC54KS5hdHRyKCJ5Iix0aGlzLnZpZXdwb2ludENvb3JkLnkpO2xldCB0PS10aGlzLnZpZXdwb2ludENvb3JkLngqdGhpcy5zY2FsZU1haW4vdGhpcy5zY2FsZU1pbmltYXAscj0tdGhpcy52aWV3cG9pbnRDb29yZC55KnRoaXMuc2NhbGVNYWluL3RoaXMuc2NhbGVNaW5pbWFwO0h0KHRoaXMuc3ZnKS5jYWxsKHRoaXMubWFpblpvb20udHJhbnNmb3JtLCRoLnRyYW5zbGF0ZSh0LHIpLnNjYWxlKHRoaXMuc2NhbGVNYWluKSl9Z2V0SW1hZ2VCbG9iKCl7cmV0dXJuIG5ldyBQcm9taXNlKHQ9Pnt0aGlzLmRvd25sb2FkQ2FudmFzLnRvQmxvYihyPT57dChyKX0sImltYWdlL3BuZyIpfSl9dXBkYXRlKCl7bGV0IHQ9bnVsbDt0cnl7aWYodD10aGlzLnpvb21HLmdldEJCb3goKSx0LndpZHRoPT09MClyZXR1cm59Y2F0Y2gocCl7cmV0dXJufWxldCByPUh0KHRoaXMuc3ZnKSxuPSIiLGk9dGhpcy5zdmcsYT0oaS5nZXRSb290Tm9kZT9pLmdldFJvb3ROb2RlKCk6dGhpcy5zdmcucGFyZW50Tm9kZSkuc3R5bGVTaGVldHM7Zm9yKGxldCBwPTA7cDxhLmxlbmd0aDtwKyspdHJ5e2xldCBkPWFbcF0uY3NzUnVsZXN8fGFbcF0ucnVsZXM7aWYoZD09bnVsbCljb250aW51ZTtmb3IobGV0IGc9MDtnPGQubGVuZ3RoO2crKyluKz1kW2ddLmNzc1RleHQucmVwbGFjZSgvID90Zi1bXHctXSsgPy9nLCIiKStgCmB9Y2F0Y2goZCl7aWYoZC5uYW1lIT09IlNlY3VyaXR5RXJyb3IiKXRocm93IGR9bGV0IHM9ci5hcHBlbmQoInN0eWxlIik7cy50ZXh0KG4pO2xldCBsPUh0KHRoaXMuem9vbUcpLGM9bC5hdHRyKCJ0cmFuc2Zvcm0iKTtsLmF0dHIoInRyYW5zZm9ybSIsbnVsbCksdC5oZWlnaHQrPXQueSx0LndpZHRoKz10LngsdC5oZWlnaHQrPXRoaXMubGFiZWxQYWRkaW5nKjIsdC53aWR0aCs9dGhpcy5sYWJlbFBhZGRpbmcqMixyLmF0dHIoIndpZHRoIix0LndpZHRoKS5hdHRyKCJoZWlnaHQiLHQuaGVpZ2h0KSx0aGlzLnNjYWxlTWluaW1hcD10aGlzLm1heFdhbmRIL01hdGgubWF4KHQud2lkdGgsdC5oZWlnaHQpLHRoaXMubWluaW1hcFNpemU9e3dpZHRoOnQud2lkdGgqdGhpcy5zY2FsZU1pbmltYXAsaGVpZ2h0OnQuaGVpZ2h0KnRoaXMuc2NhbGVNaW5pbWFwfSxIdCh0aGlzLm1pbmltYXBTdmcpLmF0dHIodGhpcy5taW5pbWFwU2l6ZSksSHQodGhpcy5jYW52YXNCdWZmZXIpLmF0dHIodGhpcy5taW5pbWFwU2l6ZSk7bGV0IHU9SHQodGhpcy5kb3dubG9hZENhbnZhcyk7dS5zdHlsZSgid2lkdGgiLHQud2lkdGgpLHUuc3R5bGUoImhlaWdodCIsdC5oZWlnaHQpLHUuYXR0cigid2lkdGgiLDMqdC53aWR0aCksdS5hdHRyKCJoZWlnaHQiLDMqdC5oZWlnaHQpLHRoaXMudHJhbnNsYXRlIT1udWxsJiZ0aGlzLnpvb20hPW51bGwmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+dGhpcy56b29tKCkpO2xldCBoPW5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcodGhpcy5zdmcpO3MucmVtb3ZlKCksci5hdHRyKCJ3aWR0aCIsbnVsbCkuYXR0cigiaGVpZ2h0IixudWxsKSxsLmF0dHIoInRyYW5zZm9ybSIsYyk7bGV0IGY9bmV3IEltYWdlO2Yub25sb2FkPSgpPT57bGV0IHA9dGhpcy5jYW52YXNCdWZmZXIuZ2V0Q29udGV4dCgiMmQiKTtwPT1udWxsfHxwLmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXNCdWZmZXIud2lkdGgsdGhpcy5jYW52YXNCdWZmZXIuaGVpZ2h0KSxwPT1udWxsfHxwLmRyYXdJbWFnZShmLDAsMCx0aGlzLm1pbmltYXBTaXplLndpZHRoLHRoaXMubWluaW1hcFNpemUuaGVpZ2h0KSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntIdCh0aGlzLmNhbnZhc0J1ZmZlcikuc3R5bGUoImRpc3BsYXkiLG51bGwpLEh0KHRoaXMuY2FudmFzKS5zdHlsZSgiZGlzcGxheSIsIm5vbmUiKSxbdGhpcy5jYW52YXMsdGhpcy5jYW52YXNCdWZmZXJdPVt0aGlzLmNhbnZhc0J1ZmZlcix0aGlzLmNhbnZhc119KTtsZXQgZD10aGlzLmRvd25sb2FkQ2FudmFzLmdldENvbnRleHQoIjJkIik7ZD09bnVsbHx8ZC5jbGVhclJlY3QoMCwwLHRoaXMuZG93bmxvYWRDYW52YXMud2lkdGgsdGhpcy5kb3dubG9hZENhbnZhcy5oZWlnaHQpLGQ9PW51bGx8fGQuZHJhd0ltYWdlKGYsMCwwLHRoaXMuZG93bmxvYWRDYW52YXMud2lkdGgsdGhpcy5kb3dubG9hZENhbnZhcy5oZWlnaHQpfSxmLm9uZXJyb3I9KCk9PntsZXQgcD1uZXcgQmxvYihbaF0se3R5cGU6ImltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCJ9KTtmLnNyYz1VUkwuY3JlYXRlT2JqZWN0VVJMKHApfSxmLnNyYz0iZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsIitlbmNvZGVVUklDb21wb25lbnQoaCl9em9vbSh0KXtpZih0aGlzLnNjYWxlTWluaW1hcD09bnVsbClyZXR1cm47dCYmKHRoaXMudHJhbnNsYXRlPVt0LngsdC55XSx0aGlzLnNjYWxlTWFpbj10LmspO2xldCByPXRoaXMuc3ZnLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49SHQodGhpcy52aWV3cG9pbnQpO3RoaXMudmlld3BvaW50Q29vcmQueD0tdGhpcy50cmFuc2xhdGVbMF0qdGhpcy5zY2FsZU1pbmltYXAvdGhpcy5zY2FsZU1haW4sdGhpcy52aWV3cG9pbnRDb29yZC55PS10aGlzLnRyYW5zbGF0ZVsxXSp0aGlzLnNjYWxlTWluaW1hcC90aGlzLnNjYWxlTWFpbjtsZXQgaT1yLndpZHRoKnRoaXMuc2NhbGVNaW5pbWFwL3RoaXMuc2NhbGVNYWluLG89ci5oZWlnaHQqdGhpcy5zY2FsZU1pbmltYXAvdGhpcy5zY2FsZU1haW47bi5hdHRyKCJ4Iix0aGlzLnZpZXdwb2ludENvb3JkLngpLmF0dHIoInkiLHRoaXMudmlld3BvaW50Q29vcmQueSkuYXR0cigid2lkdGgiLGkpLmF0dHIoImhlaWdodCIsbyk7bGV0IGE9dGhpcy5taW5pbWFwU2l6ZS53aWR0aCxzPXRoaXMubWluaW1hcFNpemUuaGVpZ2h0LGw9dGhpcy52aWV3cG9pbnRDb29yZC54LGM9dGhpcy52aWV3cG9pbnRDb29yZC55LHU9TWF0aC5taW4oTWF0aC5tYXgoMCxsK2kpLGEpLU1hdGgubWluKE1hdGgubWF4KDAsbCksYSksaD1NYXRoLm1pbihNYXRoLm1heCgwLGMrbykscyktTWF0aC5taW4oTWF0aC5tYXgoMCxjKSxzKTt1KmgvKGEqcyk8c3VyP3RoaXMubWluaW1hcC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTp0aGlzLm1pbmltYXAuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9fTt2YXIgbmN0PWNsYXNzIGV4dGVuZHMgbXR7aW5pdCh0LHIsbixpLG8pe3JldHVybiBuZXcgUkgodCxyLG4sdGhpcyxpLG8pfX07bmN0LnRlbXBsYXRlPVFgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgbGluZWFyOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICB9CgogICAgICA6aG9zdCguaGlkZGVuKSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgY2FudmFzIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5OwogICAgICB9CgogICAgICByZWN0IHsKICAgICAgICBmaWxsOiB3aGl0ZTsKICAgICAgICBzdHJva2U6ICMxMTExMTE7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiAxcHg7CiAgICAgICAgZmlsbC1vcGFjaXR5OiAwOwogICAgICAgIGZpbHRlcjogdXJsKCNtaW5pbWFwRHJvcFNoYWRvdyk7CiAgICAgICAgY3Vyc29yOiBtb3ZlOwogICAgICB9CgogICAgICBzdmcgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxzdmc+CiAgICAgIDxkZWZzPgogICAgICAgIDxmaWx0ZXIKICAgICAgICAgIGlkPSJtaW5pbWFwRHJvcFNoYWRvdyIKICAgICAgICAgIHg9Ii0yMCUiCiAgICAgICAgICB5PSItMjAlIgogICAgICAgICAgd2lkdGg9IjE1MCUiCiAgICAgICAgICBoZWlnaHQ9IjE1MCUiCiAgICAgICAgPgogICAgICAgICAgPGZlT2Zmc2V0IHJlc3VsdD0ib2ZmT3V0IiBpbj0iU291cmNlR3JhcGhpYyIgZHg9IjEiIGR5PSIxIj48L2ZlT2Zmc2V0PgogICAgICAgICAgPGZlQ29sb3JNYXRyaXgKICAgICAgICAgICAgcmVzdWx0PSJtYXRyaXhPdXQiCiAgICAgICAgICAgIGluPSJvZmZPdXQiCiAgICAgICAgICAgIHR5cGU9Im1hdHJpeCIKICAgICAgICAgICAgdmFsdWVzPSIwLjEgMCAwIDAgMCAwIDAuMSAwIDAgMCAwIDAgMC4xIDAgMCAwIDAgMCAwLjUgMCIKICAgICAgICAgID48L2ZlQ29sb3JNYXRyaXg+CiAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIKICAgICAgICAgICAgcmVzdWx0PSJibHVyT3V0IgogICAgICAgICAgICBpbj0ibWF0cml4T3V0IgogICAgICAgICAgICBzdGREZXZpYXRpb249IjIiCiAgICAgICAgICA+PC9mZUdhdXNzaWFuQmx1cj4KICAgICAgICAgIDxmZUJsZW5kIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImJsdXJPdXQiIG1vZGU9Im5vcm1hbCI+PC9mZUJsZW5kPgogICAgICAgIDwvZmlsdGVyPgogICAgICA8L2RlZnM+CiAgICAgIDxyZWN0PjwvcmVjdD4KICAgIDwvc3ZnPgogICAgPGNhbnZhcyBjbGFzcz0iZmlyc3QiPjwvY2FudmFzPgogICAgPCEtLSBBZGRpdGlvbmFsIGNhbnZhcyB0byB1c2UgYXMgYnVmZmVyIHRvIGF2b2lkIGZsaWNrZXJpbmcgYmV0d2VlbiB1cGRhdGVzIC0tPgogICAgPGNhbnZhcyBjbGFzcz0ic2Vjb25kIj48L2NhbnZhcz4KICAgIDxjYW52YXMgY2xhc3M9ImRvd25sb2FkIj48L2NhbnZhcz4KICBgO25jdD1FKFt5dCgidGYtZ3JhcGgtbWluaW1hcCIpXSxuY3QpO3ZhciBLbGU9UWAKICA8c3R5bGU+CiAgICA6aG9zdCguZGFyay1tb2RlKSB7CiAgICAgIGZpbHRlcjogaW52ZXJ0KDEpOwogICAgfQoKICAgIDpob3N0IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQoKICAgICNzdmcgewogICAgICBmbGV4OiAxOwogICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQoKICAgICNoaWRkZW4gewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIHRvcDogMHB4OwogICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICB9CgogICAgdGV4dCB7CiAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgfQoKICAgIC8qIC0tLSBOb2RlIGFuZCBhbm5vdGF0aW9uLW5vZGUgZm9yIE1ldGFub2RlIC0tLSAqLwoKICAgIC5tZXRhID4gLm5vZGVzaGFwZSA+IHJlY3QsCiAgICAubWV0YSA+IC5hbm5vdGF0aW9uLW5vZGUgPiByZWN0IHsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBmaWxsOiBoc2woMCwgMCUsIDcwJSk7CiAgICB9CiAgICAubm9kZS5tZXRhLmhpZ2hsaWdodGVkID4gLm5vZGVzaGFwZSA+IHJlY3QsCiAgICAubm9kZS5tZXRhLmhpZ2hsaWdodGVkID4gLmFubm90YXRpb24tbm9kZSA+IHJlY3QgewogICAgICBzdHJva2Utd2lkdGg6IDI7CiAgICB9CiAgICAuYW5ub3RhdGlvbi5tZXRhLmhpZ2hsaWdodGVkID4gLm5vZGVzaGFwZSA+IHJlY3QsCiAgICAuYW5ub3RhdGlvbi5tZXRhLmhpZ2hsaWdodGVkID4gLmFubm90YXRpb24tbm9kZSA+IHJlY3QgewogICAgICBzdHJva2Utd2lkdGg6IDE7CiAgICB9CiAgICAubWV0YS5zZWxlY3RlZCA+IC5ub2Rlc2hhcGUgPiByZWN0LAogICAgLm1ldGEuc2VsZWN0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gcmVjdCB7CiAgICAgIHN0cm9rZTogcmVkOwogICAgICBzdHJva2Utd2lkdGg6IDI7CiAgICB9CiAgICAubm9kZS5tZXRhLnNlbGVjdGVkLmV4cGFuZGVkID4gLm5vZGVzaGFwZSA+IHJlY3QsCiAgICAubm9kZS5tZXRhLnNlbGVjdGVkLmV4cGFuZGVkID4gLmFubm90YXRpb24tbm9kZSA+IHJlY3QgewogICAgICBzdHJva2U6IHJlZDsKICAgICAgc3Ryb2tlLXdpZHRoOiAzOwogICAgfQogICAgLmFubm90YXRpb24ubWV0YS5zZWxlY3RlZCA+IC5ub2Rlc2hhcGUgPiByZWN0LAogICAgLmFubm90YXRpb24ubWV0YS5zZWxlY3RlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiByZWN0IHsKICAgICAgc3Ryb2tlOiByZWQ7CiAgICAgIHN0cm9rZS13aWR0aDogMjsKICAgIH0KICAgIC5ub2RlLm1ldGEuc2VsZWN0ZWQuZXhwYW5kZWQuaGlnaGxpZ2h0ZWQgPiAubm9kZXNoYXBlID4gcmVjdCwKICAgIC5ub2RlLm1ldGEuc2VsZWN0ZWQuZXhwYW5kZWQuaGlnaGxpZ2h0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gcmVjdCB7CiAgICAgIHN0cm9rZTogcmVkOwogICAgICBzdHJva2Utd2lkdGg6IDQ7CiAgICB9CgogICAgLmZhZGVkLAogICAgLmZhZGVkIHJlY3QsCiAgICAuZmFkZWQgZWxsaXBzZSwKICAgIC5mYWRlZCBwYXRoLAogICAgLmZhZGVkIHVzZSwKICAgICNyZWN0SGF0Y2ggbGluZSwKICAgICNlbGxpcHNlSGF0Y2ggbGluZSB7CiAgICAgIGNvbG9yOiAjZTBkNGIzICFpbXBvcnRhbnQ7CiAgICAgIGZpbGw6IHdoaXRlOwogICAgICBzdHJva2U6ICNlMGQ0YjMgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZmFkZWQgcGF0aCB7CiAgICAgIHN0cm9rZS13aWR0aDogMXB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZhZGVkIHJlY3QgewogICAgICBmaWxsOiB1cmwoI3JlY3RIYXRjaCkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZmFkZWQgZWxsaXBzZSwKICAgIC5mYWRlZCB1c2UgewogICAgICBmaWxsOiB1cmwoI2VsbGlwc2VIYXRjaCkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZmFkZWQgdGV4dCB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICB9CgogICAgLyogUnVsZXMgdXNlZCBmb3IgaW5wdXQtdHJhY2luZy4gKi8KICAgIC5pbnB1dC1oaWdobGlnaHQgPiAqID4gcmVjdCwKICAgIC5pbnB1dC1oaWdobGlnaHQgPiAqID4gZWxsaXBzZSwKICAgIC5pbnB1dC1oaWdobGlnaHQgPiAqID4gdXNlIHsKICAgICAgZmlsbDogd2hpdGU7CiAgICAgIHN0cm9rZTogI2ZmOTgwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC8qICAtIEZhZGVkIG5vbi1pbnB1dCBzdHlsaW5nICovCiAgICAubm9uLWlucHV0ID4gKiA+IHJlY3QsCi5ub24taW5wdXQgPiAqID4gZWxsaXBzZSwKLm5vbi1pbnB1dCA+ICogPiB1c2UsCi8qIEZvciBDb25zdCBub2Rlcy4gKi8KLm5vbi1pbnB1dCA+ICogPiAuY29uc3RhbnQ6bm90KFtjbGFzcyo9ImlucHV0LWhpZ2hsaWdodCJdKSA+CiAgLmFubm90YXRpb24tbm9kZSA+IGVsbGlwc2UsCi8qIEZvciBzdHlsaW5nIG9mIGFubm90YXRpb24gbm9kZXMgb2Ygbm9uLWlucHV0IG5vZGVzLiAqLwoubm9uLWlucHV0ID4gZyA+IC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tbm9kZSA+IHJlY3QgewogICAgICBzdHJva2U6ICNlMGQ0YjMgIWltcG9ydGFudDsKICAgICAgc3Ryb2tlLXdpZHRoOiBpbmhlcml0OwogICAgICBzdHJva2UtZGFzaGFycmF5OiBpbmhlcml0OwogICAgfQoKICAgIC5ub24taW5wdXQgcGF0aCB7CiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgIH0KCiAgICAubm9uLWlucHV0ID4gLm5vZGVzaGFwZSA+IHJlY3QsCi5ub24taW5wdXQgPiAuYW5ub3RhdGlvbi1ub2RlID4gcmVjdCwKLyogRm9yIHN0eWxpbmcgb2YgYW5ub3RhdGlvbiBub2RlcyBvZiBub24taW5wdXQgbm9kZXMuICovCi5ub24taW5wdXQgPiBnID4gLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1ub2RlID4gcmVjdCB7CiAgICAgIGZpbGw6IHVybCgjcmVjdEhhdGNoKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ub24taW5wdXQgZWxsaXBzZSwKICAgIC5ub24taW5wdXQgdXNlIHsKICAgICAgZmlsbDogdXJsKCNlbGxpcHNlSGF0Y2gpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm5vbi1pbnB1dCA+IHRleHQgewogICAgICBvcGFjaXR5OiAwOwogICAgfQoKICAgIC5ub24taW5wdXQgLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1lZGdlIHsKICAgICAgbWFya2VyLWVuZDogdXJsKCNhbm5vdGF0aW9uLWFycm93aGVhZC1mYWRlZCk7CiAgICB9CgogICAgLm5vbi1pbnB1dCAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLWVkZ2UucmVmbGluZSB7CiAgICAgIG1hcmtlci1zdGFydDogdXJsKCNyZWYtYW5ub3RhdGlvbi1hcnJvd2hlYWQtZmFkZWQpOwogICAgfQoKICAgIC8qIElucHV0IGVkZ2VzLiAqLwogICAgLmlucHV0LWVkZ2UtaGlnaGxpZ2h0ID4gdGV4dCB7CiAgICAgIGZpbGw6IGJsYWNrICFpbXBvcnRhbnQ7CiAgICB9CiAgICAuaW5wdXQtaGlnaGxpZ2h0ID4gLmluLWFubm90YXRpb25zID4gLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1lZGdlLAogICAgLmlucHV0LWhpZ2hsaWdodC1zZWxlY3RlZAogICAgICA+IC5pbi1hbm5vdGF0aW9ucwogICAgICA+IC5hbm5vdGF0aW9uCiAgICAgID4gLmFubm90YXRpb24tZWRnZSB7CiAgICAgIHN0cm9rZTogIzk5OSAhaW1wb3J0YW50OwogICAgfQoKICAgIC8qIE5vbi1pbnB1dCBlZGdlcy4gKi8KICAgIC5ub24taW5wdXQtZWRnZS1oaWdobGlnaHQsCi5ub24taW5wdXQgPiBnID4gLmFubm90YXRpb24gPiBwYXRoLAovKiBBbm5vdGF0aW9uIHN0eWxlcyAobGFiZWwgYW5kIGVkZ2VzIHJlc3BlY3RpdmVseSkuICovCi5ub24taW5wdXQgPiBnID4KLmFubm90YXRpb246bm90KC5pbnB1dC1oaWdobGlnaHQpOm5vdCguaW5wdXQtaGlnaGxpZ2h0LXNlbGVjdGVkKSA+Ci5hbm5vdGF0aW9uLWxhYmVsCi8qLmFubm90YXRpb24tZWRnZSovIHsKICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgfQoKICAgIC8qIC0tLSBPcCBOb2RlIC0tLSAqLwoKICAgIC5vcCA+IC5ub2Rlc2hhcGUgPiAubm9kZWNvbG9ydGFyZ2V0LAogICAgLm9wID4gLmFubm90YXRpb24tbm9kZSA+IC5ub2RlY29sb3J0YXJnZXQgewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGZpbGw6ICNmZmY7CiAgICAgIHN0cm9rZTogI2NjYzsKICAgIH0KCiAgICAub3Auc2VsZWN0ZWQgPiAubm9kZXNoYXBlID4gLm5vZGVjb2xvcnRhcmdldCwKICAgIC5vcC5zZWxlY3RlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiAubm9kZWNvbG9ydGFyZ2V0IHsKICAgICAgc3Ryb2tlOiByZWQ7CiAgICAgIHN0cm9rZS13aWR0aDogMjsKICAgIH0KCiAgICAub3AuaGlnaGxpZ2h0ZWQgPiAubm9kZXNoYXBlID4gLm5vZGVjb2xvcnRhcmdldCwKICAgIC5vcC5oaWdobGlnaHRlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiAubm9kZWNvbG9ydGFyZ2V0IHsKICAgICAgc3Ryb2tlLXdpZHRoOiAyOwogICAgfQoKICAgIC8qIC0tLSBTZXJpZXMgTm9kZSAtLS0gKi8KCiAgICAvKiBCeSBkZWZhdWx0LCBkb24ndCBzaG93IHRoZSBzZXJpZXMgYmFja2dyb3VuZCA8cmVjdD4uICovCiAgICAuc2VyaWVzID4gLm5vZGVzaGFwZSA+IHJlY3QgewogICAgICBmaWxsOiBoc2woMCwgMCUsIDcwJSk7CiAgICAgIGZpbGwtb3BhY2l0eTogMDsKICAgICAgc3Ryb2tlLWRhc2hhcnJheTogNSwgNTsKICAgICAgc3Ryb2tlLW9wYWNpdHk6IDA7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KCiAgICAvKiBPbmNlIGV4cGFuZGVkLCBzaG93IHRoZSBzZXJpZXMgYmFja2dyb3VuZCA8cmVjdD4gYW5kIGhpZGUgdGhlIDx1c2U+LiAqLwogICAgLnNlcmllcy5leHBhbmRlZCA+IC5ub2Rlc2hhcGUgPiByZWN0IHsKICAgICAgZmlsbC1vcGFjaXR5OiAwLjE1OwogICAgICBzdHJva2U6IGhzbCgwLCAwJSwgNzAlKTsKICAgICAgc3Ryb2tlLW9wYWNpdHk6IDE7CiAgICB9CiAgICAuc2VyaWVzLmV4cGFuZGVkID4gLm5vZGVzaGFwZSA+IHVzZSB7CiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgIH0KCiAgICAvKioKICogVE9ETzogU2ltcGxpZnkgdGhpcyBieSBhcHBseWluZyBhIHN0YWJsZSBjbGFzcyBuYW1lIHRvIGFsbCA8Zz4KICogZWxlbWVudHMgdGhhdCBjdXJyZW50bHkgaGF2ZSBlaXRoZXIgdGhlIG5vZGVzaGFwZSBvciBhbm5vdGF0aW9uLW5vZGUgY2xhc3Nlcy4KICovCiAgICAuc2VyaWVzID4gLm5vZGVzaGFwZSA+IHVzZSwKICAgIC5zZXJpZXMgPiAuYW5ub3RhdGlvbi1ub2RlID4gdXNlIHsKICAgICAgc3Ryb2tlOiAjY2NjOwogICAgfQogICAgLnNlcmllcy5oaWdobGlnaHRlZCA+IC5ub2Rlc2hhcGUgPiB1c2UsCiAgICAuc2VyaWVzLmhpZ2hsaWdodGVkID4gLmFubm90YXRpb24tbm9kZSA+IHVzZSB7CiAgICAgIHN0cm9rZS13aWR0aDogMjsKICAgIH0KICAgIC5zZXJpZXMuc2VsZWN0ZWQgPiAubm9kZXNoYXBlID4gdXNlLAogICAgLnNlcmllcy5zZWxlY3RlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiB1c2UgewogICAgICBzdHJva2U6IHJlZDsKICAgICAgc3Ryb2tlLXdpZHRoOiAyOwogICAgfQoKICAgIC5zZXJpZXMuc2VsZWN0ZWQgPiAubm9kZXNoYXBlID4gcmVjdCB7CiAgICAgIHN0cm9rZTogcmVkOwogICAgICBzdHJva2Utd2lkdGg6IDI7CiAgICB9CgogICAgLmFubm90YXRpb24uc2VyaWVzLnNlbGVjdGVkID4gLmFubm90YXRpb24tbm9kZSA+IHVzZSB7CiAgICAgIHN0cm9rZTogcmVkOwogICAgICBzdHJva2Utd2lkdGg6IDI7CiAgICB9CgogICAgLyogLS0tIEJyaWRnZSBOb2RlIC0tLSAqLwogICAgLmJyaWRnZSA+IC5ub2Rlc2hhcGUgPiByZWN0IHsKICAgICAgc3Ryb2tlOiAjZjBmOwogICAgICBvcGFjaXR5OiAwLjI7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CgogICAgLyogLS0tIFN0cnVjdHVyYWwgRWxlbWVudHMgLS0tICovCiAgICAuZWRnZSA+IHBhdGguZWRnZWxpbmUuc3RydWN0dXJhbCB7CiAgICAgIHN0cm9rZTogI2YwZjsKICAgICAgb3BhY2l0eTogMC4yOwogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIC8qIFJlZmVyZW5jZSBFZGdlICovCiAgICAuZWRnZSA+IHBhdGguZWRnZWxpbmUucmVmZXJlbmNlZWRnZSB7CiAgICAgIHN0cm9rZTogI2ZmYjc0ZDsKICAgICAgb3BhY2l0eTogMTsKICAgIH0KCiAgICAvKiAtLS0gU2VyaWVzIE5vZGVzIC0tLSAqLwoKICAgIC8qIEhpZGUgdGhlIHJlY3QgZm9yIGEgc2VyaWVzJyBhbm5vdGF0aW9uLiAqLwogICAgLnNlcmllcyA+IC5hbm5vdGF0aW9uLW5vZGUgPiByZWN0IHsKICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICAvKiAtLS0gTm9kZSBsYWJlbCAtLS0gKi8KCiAgICAubm9kZSB7CiAgICAgIC8qIFByb3ZpZGUgYSBoaW50IHRvIGJyb3dzZXJzIHRvIGF2b2lkIHVzaW5nIHRoZWlyIHN0YXRpYyByYXN0ZXJpemF0aW9uCiAgICAgIGF0IGluaXRpYWwgc2NhbGUsIHdoaWNoIGxvb2tzIHZlcnkgcGl4ZWxhdGVkIG9uIENocm9taXVtIHdoZW4gem9vbWVkIGluLgogICAgICBOb3RlIHRoYXQgd2UgaW50ZW50aW9uYWxseSBkbyAqbm90KiB1c2UgJ3dpbGwtY2hhbmdlOiB0cmFuc2Zvcm0nIGFuZAogICAgICAndHJhbnNsYXRlWigwKSBoZXJlLCB3aGljaCBpbnRyb2R1Y2UgYmx1cnJpbmVzcyBvbiBGaXJlZm94LgogICAgICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvaXNzdWVzLzQ3NDQgKi8KICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDFweCk7CiAgICB9CgogICAgLm5vZGUgPiB0ZXh0Lm5vZGVsYWJlbCB7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZmlsbDogIzQ0NDsKICAgIH0KCiAgICAubWV0YS5leHBhbmRlZCA+IHRleHQubm9kZWxhYmVsIHsKICAgICAgZm9udC1zaXplOiA5cHg7CiAgICB9CgogICAgLnNlcmllcyA+IHRleHQubm9kZWxhYmVsIHsKICAgICAgZm9udC1zaXplOiA4cHg7CiAgICB9CgogICAgLm9wID4gdGV4dC5ub2RlbGFiZWwgewogICAgICBmb250LXNpemU6IDZweDsKICAgIH0KCiAgICAuYnJpZGdlID4gdGV4dC5ub2RlbGFiZWwgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIC5ub2RlLm1ldGEuZXhwYW5kZWQgPiB0ZXh0Lm5vZGVsYWJlbCB7CiAgICAgIGN1cnNvcjogbm9ybWFsOwogICAgfQoKICAgIC5hbm5vdGF0aW9uLm1ldGEuaGlnaGxpZ2h0ZWQgPiB0ZXh0LmFubm90YXRpb24tbGFiZWwgewogICAgICBmaWxsOiAjNTBhM2Y3OwogICAgfQoKICAgIC5hbm5vdGF0aW9uLm1ldGEuc2VsZWN0ZWQgPiB0ZXh0LmFubm90YXRpb24tbGFiZWwgewogICAgICBmaWxsOiAjNDI4NWY0OwogICAgfQoKICAgIC8qIC0tLSBBbm5vdGF0aW9uIC0tLSAqLwoKICAgIC8qIG9ubHkgYXBwbGllZCBmb3IgYW5ub3RhdGlvbnMgdGhhdCBhcmUgbm90IHN1bW1hcnkgb3IgY29uc3RhbnQuCiguc3VtbWFyeSwgLmNvbnN0YW50IGdldHMgb3ZlcnJpZGRlbiBiZWxvdykgKi8KICAgIC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tbm9kZSA+ICogewogICAgICBzdHJva2Utd2lkdGg6IDAuNTsKICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMSwgMTsKICAgIH0KCiAgICAuYW5ub3RhdGlvbi5zdW1tYXJ5ID4gLmFubm90YXRpb24tbm9kZSA+ICosCiAgICAuYW5ub3RhdGlvbi5jb25zdGFudCA+IC5hbm5vdGF0aW9uLW5vZGUgPiAqIHsKICAgICAgc3Ryb2tlLXdpZHRoOiAxOwogICAgICBzdHJva2UtZGFzaGFycmF5OiBub25lOwogICAgfQoKICAgIC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tZWRnZSB7CiAgICAgIGZpbGw6IG5vbmU7CiAgICAgIHN0cm9rZTogI2FhYTsKICAgICAgc3Ryb2tlLXdpZHRoOiAwLjU7CiAgICAgIG1hcmtlci1lbmQ6IHVybCgjYW5ub3RhdGlvbi1hcnJvd2hlYWQpOwogICAgfQoKICAgIC5mYWRlZCAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLWVkZ2UgewogICAgICBtYXJrZXItZW5kOiB1cmwoI2Fubm90YXRpb24tYXJyb3doZWFkLWZhZGVkKTsKICAgIH0KCiAgICAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLWVkZ2UucmVmbGluZSB7CiAgICAgIG1hcmtlci1zdGFydDogdXJsKCNyZWYtYW5ub3RhdGlvbi1hcnJvd2hlYWQpOwogICAgfQoKICAgIC5mYWRlZCAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLWVkZ2UucmVmbGluZSB7CiAgICAgIG1hcmtlci1zdGFydDogdXJsKCNyZWYtYW5ub3RhdGlvbi1hcnJvd2hlYWQtZmFkZWQpOwogICAgfQoKICAgIC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tY29udHJvbC1lZGdlIHsKICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMSwgMTsKICAgIH0KCiAgICAjYW5ub3RhdGlvbi1hcnJvd2hlYWQgewogICAgICBmaWxsOiAjYWFhOwogICAgfQoKICAgICNhbm5vdGF0aW9uLWFycm93aGVhZC1mYWRlZCB7CiAgICAgIGZpbGw6ICNlMGQ0YjM7CiAgICB9CgogICAgI3JlZi1hbm5vdGF0aW9uLWFycm93aGVhZCB7CiAgICAgIGZpbGw6ICNhYWE7CiAgICB9CgogICAgI3JlZi1hbm5vdGF0aW9uLWFycm93aGVhZC1mYWRlZCB7CiAgICAgIGZpbGw6ICNlMGQ0YjM7CiAgICB9CgogICAgLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1sYWJlbCB7CiAgICAgIGZvbnQtc2l6ZTogNXB4OwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB9CiAgICAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLWxhYmVsLmFubm90YXRpb24tZWxsaXBzaXMgewogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICB9CgogICAgLyogSGlkZSBhbm5vdGF0aW9ucyBvbiBleHBhbmRlZCBtZXRhIG5vZGVzIHNpbmNlIHRoZXkncmUgcmVkdW5kYW50LiAqLwogICAgLmV4cGFuZGVkID4gLmluLWFubm90YXRpb25zLAogICAgLmV4cGFuZGVkID4gLm91dC1hbm5vdGF0aW9ucyB7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CgogICAgLyogLS0tIEFubm90YXRpb246IENvbnN0YW50IC0tLSAqLwoKICAgIC5jb25zdGFudCA+IC5hbm5vdGF0aW9uLW5vZGUgPiBlbGxpcHNlIHsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBmaWxsOiB3aGl0ZTsKICAgICAgc3Ryb2tlOiAjODQ4NDg0OwogICAgfQoKICAgIC5jb25zdGFudC5zZWxlY3RlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiBlbGxpcHNlIHsKICAgICAgZmlsbDogd2hpdGU7CiAgICAgIHN0cm9rZTogcmVkOwogICAgfQoKICAgIC5jb25zdGFudC5oaWdobGlnaHRlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiBlbGxpcHNlIHsKICAgICAgc3Ryb2tlLXdpZHRoOiAxLjU7CiAgICB9CgogICAgLyogLS0tIEFubm90YXRpb246IFN1bW1hcnkgLS0tICovCgogICAgLnN1bW1hcnkgPiAuYW5ub3RhdGlvbi1ub2RlID4gZWxsaXBzZSB7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZmlsbDogI2RiNDQzNzsKICAgICAgc3Ryb2tlOiAjZGI0NDM3OwogICAgfQoKICAgIC5zdW1tYXJ5LnNlbGVjdGVkID4gLmFubm90YXRpb24tbm9kZSA+IGVsbGlwc2UgewogICAgICBmaWxsOiAjYTUyNzE0OwogICAgICBzdHJva2U6ICNhNTI3MTQ7CiAgICB9CgogICAgLnN1bW1hcnkuaGlnaGxpZ2h0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gZWxsaXBzZSB7CiAgICAgIHN0cm9rZS13aWR0aDogMS41OwogICAgfQoKICAgIC8qIC0tLSBFZGdlIC0tLSAqLwoKICAgIC5lZGdlID4gcGF0aC5lZGdlbGluZSB7CiAgICAgIGZpbGw6IG5vbmU7CiAgICAgIHN0cm9rZTogI2JiYjsKICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogICAgICBzdHJva2Utd2lkdGg6IDAuNzU7CiAgICB9CgogICAgLmVkZ2UgLnNlbGVjdGFibGVlZGdlIHsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgfQoKICAgIC5zZWxlY3RlZGVkZ2UgPiBwYXRoLmVkZ2VsaW5lIHsKICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICBzdHJva2U6ICNmMDA7CiAgICB9CgogICAgLmVkZ2Uuc2VsZWN0ZWRlZGdlIHRleHQgewogICAgICBmaWxsOiAjMDAwOwogICAgfQoKICAgIC8qIExhYmVscyBzaG93aW5nIHRlbnNvciBzaGFwZXMgb24gZWRnZXMgKi8KICAgIC5lZGdlID4gdGV4dCB7CiAgICAgIGZvbnQtc2l6ZTogMy41cHg7CiAgICAgIGZpbGw6ICM2NjY7CiAgICB9CgogICAgLmRhdGFmbG93LWFycm93aGVhZCB7CiAgICAgIGZpbGw6ICNiYmI7CiAgICB9CgogICAgLnJlZmVyZW5jZS1hcnJvd2hlYWQgewogICAgICBmaWxsOiAjZmZiNzRkOwogICAgfQoKICAgIC5zZWxlY3RlZC1hcnJvd2hlYWQgewogICAgICBmaWxsOiAjZjAwOwogICAgfQoKICAgIC5lZGdlIC5jb250cm9sLWRlcCB7CiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDIsIDI7CiAgICB9CgogICAgLyogLS0tIEdyb3VwIG5vZGUgZXhwYW5kL2NvbGxhcHNlIGJ1dHRvbiAtLS0gKi8KCiAgICAvKiBIaWRlcyBleHBhbmQvY29sbGFwc2UgYnV0dG9ucyB3aGVuIGEgbm9kZSBpc24ndCBleHBhbmRlZCBvciBoaWdobGlnaHRlZC4gVXNpbmcKICAgaW5jcmVkaWJseSBzbWFsbCBvcGFjaXR5IHNvIHRoYXQgdGhlIGJvdW5kaW5nIGJveCBvZiB0aGUgPGc+IHBhcmVudCBzdGlsbCB0YWtlcwogICB0aGlzIGNvbnRhaW5lciBpbnRvIGFjY291bnQgZXZlbiB3aGVuIGl0IGlzbid0IHZpc2libGUgKi8KICAgIC5ub2RlOm5vdCguaGlnaGxpZ2h0ZWQpOm5vdCguZXhwYW5kZWQpID4gLm5vZGVzaGFwZSA+IC5idXR0b25jb250YWluZXIgewogICAgICBvcGFjaXR5OiAwLjAxOwogICAgfQogICAgLm5vZGUuaGlnaGxpZ2h0ZWQgPiAubm9kZXNoYXBlID4gLmJ1dHRvbmNvbnRhaW5lciB7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KICAgIC5idXR0b25jaXJjbGUgewogICAgICBmaWxsOiAjZTc4MTFkOwogICAgfQogICAgLmJ1dHRvbmNpcmNsZTpob3ZlciB7CiAgICAgIGZpbGw6ICNiOTY3MTc7CiAgICB9CiAgICAuZXhwYW5kYnV0dG9uLAogICAgLmNvbGxhcHNlYnV0dG9uIHsKICAgICAgc3Ryb2tlOiAjNDQ0OwogICAgfQogICAgLyogRG8gbm90IGxldCB0aGUgcGF0aCBlbGVtZW50cyBpbiB0aGUgYnV0dG9uIHRha2UgcG9pbnRlciBmb2N1cyAqLwogICAgLm5vZGUgPiAubm9kZXNoYXBlID4gLmJ1dHRvbmNvbnRhaW5lciA+IC5leHBhbmRidXR0b24sCiAgICAubm9kZSA+IC5ub2Rlc2hhcGUgPiAuYnV0dG9uY29udGFpbmVyID4gLmNvbGxhcHNlYnV0dG9uIHsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB9CiAgICAvKiBPbmx5IHNob3cgdGhlIGV4cGFuZCBidXR0b24gd2hlbiBhIG5vZGUgaXMgY29sbGFwc2VkIGFuZCBvbmx5IHNob3cgdGhlCiAgIGNvbGxhcHNlIGJ1dHRvbiB3aGVuIGEgbm9kZSBpcyBleHBhbmRlZC4gKi8KICAgIC5ub2RlLmV4cGFuZGVkID4gLm5vZGVzaGFwZSA+IC5idXR0b25jb250YWluZXIgPiAuZXhwYW5kYnV0dG9uIHsKICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgIC5ub2RlOm5vdCguZXhwYW5kZWQpID4gLm5vZGVzaGFwZSA+IC5idXR0b25jb250YWluZXIgPiAuY29sbGFwc2VidXR0b24gewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIC5oZWFsdGgtcGlsbC1zdGF0cyB7CiAgICAgIGZvbnQtc2l6ZTogNHB4OwogICAgICB0ZXh0LWFuY2hvcjogbWlkZGxlOwogICAgfQoKICAgIC5oZWFsdGgtcGlsbCByZWN0IHsKICAgICAgZmlsdGVyOiB1cmwoI2hlYWx0aC1waWxsLXNoYWRvdyk7CiAgICAgIHJ4OiAzOwogICAgICByeTogMzsKICAgIH0KCiAgICAudGl0bGVDb250YWluZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDogMjBweDsKICAgIH0KCiAgICAudGl0bGUsCiAgICAuYXV4VGl0bGUsCiAgICAuZnVuY3Rpb25MaWJyYXJ5VGl0bGUgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB9CgogICAgI21pbmltYXAgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHJpZ2h0OiAyMHB4OwogICAgICBib3R0b206IDIwcHg7CiAgICB9CgogICAgLmNvbnRleHQtbWVudSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTJlMjsKICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIG1pbi13aWR0aDogMTUwcHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNGQ0ZDQ7CiAgICB9CgogICAgLmNvbnRleHQtbWVudSB1bCB7CiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICAgICAgbWFyZ2luOiAwOwogICAgICBwYWRkaW5nOiAwOwogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICB9CgogICAgLmNvbnRleHQtbWVudSB1bCBsaSB7CiAgICAgIHBhZGRpbmc6IDRweCAxNnB4OwogICAgfQoKICAgIC5jb250ZXh0LW1lbnUgdWwgbGk6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjM5MTNlOwogICAgICBjb2xvcjogd2hpdGU7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJ0aXRsZUNvbnRhaW5lciI+CiAgICA8ZGl2IGlkPSJ0aXRsZSIgY2xhc3M9InRpdGxlIj5NYWluIEdyYXBoPC9kaXY+CiAgICA8ZGl2IGlkPSJhdXhUaXRsZSIgY2xhc3M9ImF1eFRpdGxlIj5BdXhpbGlhcnkgTm9kZXM8L2Rpdj4KICAgIDxkaXYgaWQ9ImZ1bmN0aW9uTGlicmFyeVRpdGxlIiBjbGFzcz0iZnVuY3Rpb25MaWJyYXJ5VGl0bGUiPkZ1bmN0aW9uczwvZGl2PgogIDwvZGl2PgogIDxzdmcgaWQ9InN2ZyI+CiAgICA8ZGVmcz4KICAgICAgPCEtLSBBcnJvdyBoZWFkcyBmb3IgcmVmZXJlbmNlIGVkZ2UgcGF0aHMgb2YgZGlmZmVyZW50IHByZWRlZmluZWQgc2l6ZXMgcGVyIGNvbG9yLiAtLT4KICAgICAgPHBhdGgKICAgICAgICBpZD0icmVmZXJlbmNlLWFycm93aGVhZC1wYXRoIgogICAgICAgIGQ9Ik0gMCwwIEwgMTAsNSBMIDAsMTAgQyAzLDcgMywzIDAsMCIKICAgICAgPjwvcGF0aD4KICAgICAgPG1hcmtlcgogICAgICAgIGNsYXNzPSJyZWZlcmVuY2UtYXJyb3doZWFkIgogICAgICAgIGlkPSJyZWZlcmVuY2UtYXJyb3doZWFkLXNtYWxsIgogICAgICAgIHZpZXdCb3g9IjAgMCAxMCAxMCIKICAgICAgICBtYXJrZXJXaWR0aD0iNSIKICAgICAgICBtYXJrZXJIZWlnaHQ9IjUiCiAgICAgICAgcmVmWD0iMiIKICAgICAgICByZWZZPSI1IgogICAgICAgIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIgogICAgICAgIG1hcmtlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3JlZmVyZW5jZS1hcnJvd2hlYWQtcGF0aCI+PC91c2U+CiAgICAgIDwvbWFya2VyPgogICAgICA8bWFya2VyCiAgICAgICAgY2xhc3M9InJlZmVyZW5jZS1hcnJvd2hlYWQiCiAgICAgICAgaWQ9InJlZmVyZW5jZS1hcnJvd2hlYWQtbWVkaXVtIgogICAgICAgIHZpZXdCb3g9IjAgMCAxMCAxMCIKICAgICAgICBtYXJrZXJXaWR0aD0iMTMiCiAgICAgICAgbWFya2VySGVpZ2h0PSIxMyIKICAgICAgICByZWZYPSIyIgogICAgICAgIHJlZlk9IjUiCiAgICAgICAgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiCiAgICAgICAgbWFya2VyVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICA+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjcmVmZXJlbmNlLWFycm93aGVhZC1wYXRoIj48L3VzZT4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBjbGFzcz0icmVmZXJlbmNlLWFycm93aGVhZCIKICAgICAgICBpZD0icmVmZXJlbmNlLWFycm93aGVhZC1sYXJnZSIKICAgICAgICB2aWV3Qm94PSIwIDAgMTAgMTAiCiAgICAgICAgbWFya2VyV2lkdGg9IjE2IgogICAgICAgIG1hcmtlckhlaWdodD0iMTYiCiAgICAgICAgcmVmWD0iMiIKICAgICAgICByZWZZPSI1IgogICAgICAgIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIgogICAgICAgIG1hcmtlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3JlZmVyZW5jZS1hcnJvd2hlYWQtcGF0aCI+PC91c2U+CiAgICAgIDwvbWFya2VyPgogICAgICA8bWFya2VyCiAgICAgICAgY2xhc3M9InJlZmVyZW5jZS1hcnJvd2hlYWQiCiAgICAgICAgaWQ9InJlZmVyZW5jZS1hcnJvd2hlYWQteGxhcmdlIgogICAgICAgIHZpZXdCb3g9IjAgMCAxMCAxMCIKICAgICAgICBtYXJrZXJXaWR0aD0iMjAiCiAgICAgICAgbWFya2VySGVpZ2h0PSIyMCIKICAgICAgICByZWZYPSIyIgogICAgICAgIHJlZlk9IjUiCiAgICAgICAgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiCiAgICAgICAgbWFya2VyVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICA+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjcmVmZXJlbmNlLWFycm93aGVhZC1wYXRoIj48L3VzZT4KICAgICAgPC9tYXJrZXI+CgogICAgICA8IS0tIEFycm93IGhlYWRzIGZvciBkYXRhZmxvdyBlZGdlIHBhdGhzIG9mIGRpZmZlcmVudCBwcmVkZWZpbmVkIHNpemVzIHBlciBjb2xvci4gLS0+CiAgICAgIDxwYXRoCiAgICAgICAgaWQ9ImRhdGFmbG93LWFycm93aGVhZC1wYXRoIgogICAgICAgIGQ9Ik0gMCwwIEwgMTAsNSBMIDAsMTAgQyAzLDcgMywzIDAsMCIKICAgICAgPjwvcGF0aD4KICAgICAgPG1hcmtlcgogICAgICAgIGNsYXNzPSJkYXRhZmxvdy1hcnJvd2hlYWQiCiAgICAgICAgaWQ9ImRhdGFmbG93LWFycm93aGVhZC1zbWFsbCIKICAgICAgICB2aWV3Qm94PSIwIDAgMTAgMTAiCiAgICAgICAgbWFya2VyV2lkdGg9IjUiCiAgICAgICAgbWFya2VySGVpZ2h0PSI1IgogICAgICAgIHJlZlg9IjIiCiAgICAgICAgcmVmWT0iNSIKICAgICAgICBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSIKICAgICAgICBtYXJrZXJVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgID4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNkYXRhZmxvdy1hcnJvd2hlYWQtcGF0aCI+PC91c2U+CiAgICAgIDwvbWFya2VyPgogICAgICA8bWFya2VyCiAgICAgICAgY2xhc3M9ImRhdGFmbG93LWFycm93aGVhZCIKICAgICAgICBpZD0iZGF0YWZsb3ctYXJyb3doZWFkLW1lZGl1bSIKICAgICAgICB2aWV3Qm94PSIwIDAgMTAgMTAiCiAgICAgICAgbWFya2VyV2lkdGg9IjEzIgogICAgICAgIG1hcmtlckhlaWdodD0iMTMiCiAgICAgICAgcmVmWD0iMiIKICAgICAgICByZWZZPSI1IgogICAgICAgIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIgogICAgICAgIG1hcmtlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2RhdGFmbG93LWFycm93aGVhZC1wYXRoIj48L3VzZT4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBjbGFzcz0iZGF0YWZsb3ctYXJyb3doZWFkIgogICAgICAgIGlkPSJkYXRhZmxvdy1hcnJvd2hlYWQtbGFyZ2UiCiAgICAgICAgdmlld0JveD0iMCAwIDEwIDEwIgogICAgICAgIG1hcmtlcldpZHRoPSIxNiIKICAgICAgICBtYXJrZXJIZWlnaHQ9IjE2IgogICAgICAgIHJlZlg9IjIiCiAgICAgICAgcmVmWT0iNSIKICAgICAgICBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSIKICAgICAgICBtYXJrZXJVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgID4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNkYXRhZmxvdy1hcnJvd2hlYWQtcGF0aCI+PC91c2U+CiAgICAgIDwvbWFya2VyPgogICAgICA8bWFya2VyCiAgICAgICAgY2xhc3M9ImRhdGFmbG93LWFycm93aGVhZCIKICAgICAgICBpZD0iZGF0YWZsb3ctYXJyb3doZWFkLXhsYXJnZSIKICAgICAgICB2aWV3Qm94PSIwIDAgMTAgMTAiCiAgICAgICAgbWFya2VyV2lkdGg9IjIwIgogICAgICAgIG1hcmtlckhlaWdodD0iMjAiCiAgICAgICAgcmVmWD0iMiIKICAgICAgICByZWZZPSI1IgogICAgICAgIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIgogICAgICAgIG1hcmtlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2RhdGFmbG93LWFycm93aGVhZC1wYXRoIj48L3VzZT4KICAgICAgPC9tYXJrZXI+CgogICAgICA8IS0tIEFycm93IGhlYWQgZm9yIGFubm90YXRpb24gZWRnZSBwYXRocy4gLS0+CiAgICAgIDxtYXJrZXIKICAgICAgICBpZD0iYW5ub3RhdGlvbi1hcnJvd2hlYWQiCiAgICAgICAgbWFya2VyV2lkdGg9IjUiCiAgICAgICAgbWFya2VySGVpZ2h0PSI1IgogICAgICAgIHJlZlg9IjUiCiAgICAgICAgcmVmWT0iMi41IgogICAgICAgIG9yaWVudD0iYXV0byIKICAgICAgPgogICAgICAgIDxwYXRoIGQ9Ik0gMCwwIEwgNSwyLjUgTCAwLDUgTCAwLDAiPjwvcGF0aD4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBpZD0iYW5ub3RhdGlvbi1hcnJvd2hlYWQtZmFkZWQiCiAgICAgICAgbWFya2VyV2lkdGg9IjUiCiAgICAgICAgbWFya2VySGVpZ2h0PSI1IgogICAgICAgIHJlZlg9IjUiCiAgICAgICAgcmVmWT0iMi41IgogICAgICAgIG9yaWVudD0iYXV0byIKICAgICAgPgogICAgICAgIDxwYXRoIGQ9Ik0gMCwwIEwgNSwyLjUgTCAwLDUgTCAwLDAiPjwvcGF0aD4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBpZD0icmVmLWFubm90YXRpb24tYXJyb3doZWFkIgogICAgICAgIG1hcmtlcldpZHRoPSI1IgogICAgICAgIG1hcmtlckhlaWdodD0iNSIKICAgICAgICByZWZYPSIwIgogICAgICAgIHJlZlk9IjIuNSIKICAgICAgICBvcmllbnQ9ImF1dG8iCiAgICAgID4KICAgICAgICA8cGF0aCBkPSJNIDUsMCBMIDAsMi41IEwgNSw1IEwgNSwwIj48L3BhdGg+CiAgICAgIDwvbWFya2VyPgogICAgICA8bWFya2VyCiAgICAgICAgaWQ9InJlZi1hbm5vdGF0aW9uLWFycm93aGVhZC1mYWRlZCIKICAgICAgICBtYXJrZXJXaWR0aD0iNSIKICAgICAgICBtYXJrZXJIZWlnaHQ9IjUiCiAgICAgICAgcmVmWD0iMCIKICAgICAgICByZWZZPSIyLjUiCiAgICAgICAgb3JpZW50PSJhdXRvIgogICAgICA+CiAgICAgICAgPHBhdGggZD0iTSA1LDAgTCAwLDIuNSBMIDUsNSBMIDUsMCI+PC9wYXRoPgogICAgICA8L21hcmtlcj4KICAgICAgPCEtLSBUZW1wbGF0ZSBmb3IgYW4gT3Agbm9kZSBlbGxpcHNlLiAtLT4KICAgICAgPGVsbGlwc2UKICAgICAgICBpZD0ib3Atbm9kZS1zdGFtcCIKICAgICAgICByeD0iNy41IgogICAgICAgIHJ5PSIzIgogICAgICAgIHN0cm9rZT0iaW5oZXJpdCIKICAgICAgICBmaWxsPSJpbmhlcml0IgogICAgICA+PC9lbGxpcHNlPgogICAgICA8IS0tIFRlbXBsYXRlIGZvciBhbiBPcCBub2RlIGFubm90YXRpb24gZWxsaXBzZSAoc21hbGxlcikuIC0tPgogICAgICA8ZWxsaXBzZQogICAgICAgIGlkPSJvcC1ub2RlLWFubm90YXRpb24tc3RhbXAiCiAgICAgICAgcng9IjUiCiAgICAgICAgcnk9IjIiCiAgICAgICAgc3Ryb2tlPSJpbmhlcml0IgogICAgICAgIGZpbGw9ImluaGVyaXQiCiAgICAgID48L2VsbGlwc2U+CiAgICAgIDwhLS0gVmVydGljYWxseSBzdGFja2VkIHNlcmllcyBvZiBPcCBub2RlcyB3aGVuIHVuZXhwYW5kZWQuIC0tPgogICAgICA8ZyBpZD0ib3Atc2VyaWVzLXZlcnRpY2FsLXN0YW1wIj4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSI4IiB5PSI5Ij48L3VzZT4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSI4IiB5PSI2Ij48L3VzZT4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSI4IiB5PSIzIj48L3VzZT4KICAgICAgPC9nPgogICAgICA8IS0tIEhvcml6b250YWxseSBzdGFja2VkIHNlcmllcyBvZiBPcCBub2RlcyB3aGVuIHVuZXhwYW5kZWQuIC0tPgogICAgICA8ZyBpZD0ib3Atc2VyaWVzLWhvcml6b250YWwtc3RhbXAiPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjE2IiB5PSI0Ij48L3VzZT4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSIxMiIgeT0iNCI+PC91c2U+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjb3Atbm9kZS1zdGFtcCIgeD0iOCIgeT0iNCI+PC91c2U+CiAgICAgIDwvZz4KICAgICAgPCEtLSBIb3Jpem9udGFsbHkgc3RhY2tlZCBzZXJpZXMgb2YgT3Agbm9kZXMgZm9yIGFubm90YXRpb24uIC0tPgogICAgICA8ZyBpZD0ib3Atc2VyaWVzLWFubm90YXRpb24tc3RhbXAiPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtYW5ub3RhdGlvbi1zdGFtcCIgeD0iOSIgeT0iMiI+PC91c2U+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjb3Atbm9kZS1hbm5vdGF0aW9uLXN0YW1wIiB4PSI3IiB5PSIyIj48L3VzZT4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLWFubm90YXRpb24tc3RhbXAiIHg9IjUiIHk9IjIiPjwvdXNlPgogICAgICA8L2c+CiAgICAgIDxzdmcKICAgICAgICBpZD0ic3VtbWFyeS1pY29uIgogICAgICAgIGZpbGw9IiM4NDg0ODQiCiAgICAgICAgaGVpZ2h0PSIxMiIKICAgICAgICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgICAgICAgd2lkdGg9IjEyIgogICAgICA+CiAgICAgICAgPHBhdGgKICAgICAgICAgIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOSAxN0g3di03aDJ2N3ptNCAwaC0yVjdoMnYxMHptNCAwaC0ydi00aDJ2NHoiCiAgICAgICAgPjwvcGF0aD4KICAgICAgPC9zdmc+CgogICAgICA8IS0tIEhhdGNoIHBhdHRlcm5zIGZvciBmYWRlZCBvdXQgbm9kZXMuIC0tPgogICAgICA8cGF0dGVybgogICAgICAgIGlkPSJyZWN0SGF0Y2giCiAgICAgICAgcGF0dGVyblRyYW5zZm9ybT0icm90YXRlKDQ1IDAgMCkiCiAgICAgICAgd2lkdGg9IjUiCiAgICAgICAgaGVpZ2h0PSI1IgogICAgICAgIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgID4KICAgICAgICA8bGluZSB4MT0iMCIgeTE9IjAiIHgyPSIwIiB5Mj0iNSIgc3R5bGU9InN0cm9rZS13aWR0aDogMSI+PC9saW5lPgogICAgICA8L3BhdHRlcm4+CiAgICAgIDxwYXR0ZXJuCiAgICAgICAgaWQ9ImVsbGlwc2VIYXRjaCIKICAgICAgICBwYXR0ZXJuVHJhbnNmb3JtPSJyb3RhdGUoNDUgMCAwKSIKICAgICAgICB3aWR0aD0iMiIKICAgICAgICBoZWlnaHQ9IjIiCiAgICAgICAgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgPgogICAgICAgIDxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjAiIHkyPSIyIiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAxIj48L2xpbmU+CiAgICAgIDwvcGF0dGVybj4KCiAgICAgIDwhLS0gQSBzaGFkb3cgZm9yIGhlYWx0aCBwaWxscy4gLS0+CiAgICAgIDxmaWx0ZXIKICAgICAgICBpZD0iaGVhbHRoLXBpbGwtc2hhZG93IgogICAgICAgIHg9Ii00MCUiCiAgICAgICAgeT0iLTQwJSIKICAgICAgICB3aWR0aD0iMTgwJSIKICAgICAgICBoZWlnaHQ9IjE4MCUiCiAgICAgID4KICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgaW49IlNvdXJjZUFscGhhIiBzdGREZXZpYXRpb249IjAuOCI+PC9mZUdhdXNzaWFuQmx1cj4KICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSIwIiByZXN1bHQ9Im9mZnNldGJsdXIiPjwvZmVPZmZzZXQ+CiAgICAgICAgPGZlRmxvb2QgZmxvb2QtY29sb3I9IiMwMDAwMDAiPjwvZmVGbG9vZD4KICAgICAgICA8ZmVDb21wb3NpdGUgaW4yPSJvZmZzZXRibHVyIiBvcGVyYXRvcj0iaW4iPjwvZmVDb21wb3NpdGU+CiAgICAgICAgPGZlTWVyZ2U+CiAgICAgICAgICA8ZmVNZXJnZU5vZGU+PC9mZU1lcmdlTm9kZT4KICAgICAgICAgIDxmZU1lcmdlTm9kZSBpbj0iU291cmNlR3JhcGhpYyI+PC9mZU1lcmdlTm9kZT4KICAgICAgICA8L2ZlTWVyZ2U+CiAgICAgIDwvZmlsdGVyPgogICAgPC9kZWZzPgogICAgPCEtLSBNYWtlIGEgbGFyZ2UgcmVjdGFuZ2xlIHRoYXQgZmlsbHMgdGhlIHN2ZyBzcGFjZSBzbyB0aGF0CiAgem9vbSBldmVudHMgZ2V0IGNhcHR1cmVkIG9uIHNhZmFyaSAtLT4KICAgIDxyZWN0IGZpbGw9IndoaXRlIiB3aWR0aD0iMTAwMDAiIGhlaWdodD0iMTAwMDAiPjwvcmVjdD4KICAgIDxnIGlkPSJyb290Ij48L2c+CiAgPC9zdmc+CiAgPHRmLWdyYXBoLW1pbmltYXAgaWQ9Im1pbmltYXAiPjwvdGYtZ3JhcGgtbWluaW1hcD4KICA8ZGl2IGlkPSJjb250ZXh0TWVudSIgY2xhc3M9ImNvbnRleHQtbWVudSI+PC9kaXY+CmA7dmFyIExyPWNsYXNzIGV4dGVuZHMgR3QoX28obXQpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fem9vbWVkPSExLHRoaXMuX3pvb21TdGFydENvb3Jkcz1udWxsLHRoaXMuX3pvb21UcmFuc2Zvcm09bnVsbCx0aGlzLl9tYXhab29tRGlzdGFuY2VGb3JDbGljaz0yMCx0aGlzLl9ub2RlR3JvdXBJbmRleD17fSx0aGlzLl9hbm5vdGF0aW9uR3JvdXBJbmRleD17fSx0aGlzLl9lZGdlR3JvdXBJbmRleD17fSx0aGlzLm1heE1ldGFub2RlTGFiZWxMZW5ndGhGb250U2l6ZT05LHRoaXMubWluTWV0YW5vZGVMYWJlbExlbmd0aEZvbnRTaXplPTYsdGhpcy5tYXhNZXRhbm9kZUxhYmVsTGVuZ3RoTGFyZ2VGb250PTExLHRoaXMubWF4TWV0YW5vZGVMYWJlbExlbmd0aD0xOH1nZXROb2RlKHQpe3JldHVybiB0aGlzLnJlbmRlckhpZXJhcmNoeS5nZXRSZW5kZXJOb2RlQnlOYW1lKHQpfWlzTm9kZUV4cGFuZGVkKHQpe3JldHVybiB0LmV4cGFuZGVkfXNldE5vZGVFeHBhbmRlZCh0KXt0aGlzLl9idWlsZCh0aGlzLnJlbmRlckhpZXJhcmNoeSksdGhpcy5fdXBkYXRlTGFiZWxzKCF0aGlzLl96b29tZWQpfXBhblRvTm9kZSh0KXtBbGUodCx0aGlzLiQuc3ZnLHRoaXMuJC5yb290LHRoaXMuX3pvb20pJiYodGhpcy5fem9vbWVkPSEwKX1nZXRHcmFwaFN2Z1Jvb3QoKXtyZXR1cm4gdGhpcy4kLnN2Z31nZXRDb250ZXh0TWVudSgpe3JldHVybiB0aGlzLiQuY29udGV4dE1lbnV9X3Jlc2V0U3RhdGUoKXt0aGlzLl9ub2RlR3JvdXBJbmRleD17fSx0aGlzLl9hbm5vdGF0aW9uR3JvdXBJbmRleD17fSx0aGlzLl9lZGdlR3JvdXBJbmRleD17fSx0aGlzLl91cGRhdGVMYWJlbHMoITEpLEh0KHRoaXMuJC5zdmcpLnNlbGVjdCgiI3Jvb3QiKS5zZWxlY3RBbGwoIioiKS5yZW1vdmUoKSxMSCh0aGlzLiQuc3ZnKX1fYnVpbGQodCl7dGhpcy50ZW1wbGF0ZUluZGV4PXQuaGllcmFyY2h5LmdldFRlbXBsYXRlSW5kZXgoKSxOZCgidGYtZ3JhcGgtc2NlbmUgKGxheW91dCk6IixmdW5jdGlvbigpe01IKHQucm9vdCl9LmJpbmQodGhpcyksanIuUkVOREVSX1NDRU5FX0xBWU9VVCksTmQoInRmLWdyYXBoLXNjZW5lIChidWlsZCBzY2VuZSk6IixmdW5jdGlvbigpe2VjdChIdCh0aGlzLiQucm9vdCksdC5yb290LHRoaXMpLElsZSh0aGlzLiQuc3ZnLHRoaXMpLHRoaXMuX3VwZGF0ZUlucHV0VHJhY2UoKX0uYmluZCh0aGlzKSxqci5SRU5ERVJfU0NFTkVfQlVJTERfU0NFTkUpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVIZWFsdGhQaWxscyh0aGlzLm5vZGVOYW1lc1RvSGVhbHRoUGlsbHMsdGhpcy5oZWFsdGhQaWxsU3RlcEluZGV4KSx0aGlzLm1pbmltYXAudXBkYXRlKCl9LmJpbmQodGhpcyksVHIuYW5pbWF0aW9uLmR1cmF0aW9uKX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5fem9vbT1lUigpLm9uKCJlbmQiLGZ1bmN0aW9uKCl7aWYodGhpcy5fem9vbVN0YXJ0Q29vcmRzKXt2YXIgdD1NYXRoLnNxcnQoTWF0aC5wb3codGhpcy5fem9vbVN0YXJ0Q29vcmRzLngtdGhpcy5fem9vbVRyYW5zZm9ybS54LDIpK01hdGgucG93KHRoaXMuX3pvb21TdGFydENvb3Jkcy55LXRoaXMuX3pvb21UcmFuc2Zvcm0ueSwyKSk7dDx0aGlzLl9tYXhab29tRGlzdGFuY2VGb3JDbGljaz90aGlzLl9maXJlRW5hYmxlQ2xpY2soKTpzZXRUaW1lb3V0KHRoaXMuX2ZpcmVFbmFibGVDbGljay5iaW5kKHRoaXMpLDUwKX10aGlzLl96b29tU3RhcnRDb29yZHM9bnVsbH0uYmluZCh0aGlzKSkub24oInpvb20iLGZ1bmN0aW9uKCl7dGhpcy5fem9vbVRyYW5zZm9ybT1xdC50cmFuc2Zvcm0sdGhpcy5fem9vbVN0YXJ0Q29vcmRzfHwodGhpcy5fem9vbVN0YXJ0Q29vcmRzPXRoaXMuX3pvb21UcmFuc2Zvcm0sdGhpcy5maXJlKCJkaXNhYmxlLWNsaWNrIikpLHRoaXMuX3pvb21lZD0hMCxIdCh0aGlzLiQucm9vdCkuYXR0cigidHJhbnNmb3JtIixxdC50cmFuc2Zvcm0pLHRoaXMubWluaW1hcC56b29tKHF0LnRyYW5zZm9ybSl9LmJpbmQodGhpcykpLEh0KHRoaXMuJC5zdmcpLmNhbGwodGhpcy5fem9vbSkub24oImRibGNsaWNrLnpvb20iLG51bGwpLEh0KHdpbmRvdykub24oInJlc2l6ZSIsZnVuY3Rpb24oKXt0aGlzLm1pbmltYXAuem9vbSgpfS5iaW5kKHRoaXMpKSx0aGlzLm1pbmltYXA9dGhpcy4kLm1pbmltYXAuaW5pdCh0aGlzLiQuc3ZnLHRoaXMuJC5yb290LHRoaXMuX3pvb20sVHIubWluaW1hcC5zaXplLFRyLnN1YnNjZW5lLm1ldGEubGFiZWxIZWlnaHQpfWF0dGFjaGVkKCl7dGhpcy5zZXQoIl9pc0F0dGFjaGVkIiwhMCl9ZGV0YWNoZWQoKXt0aGlzLnNldCgiX2lzQXR0YWNoZWQiLCExKX1fcmVuZGVySGllcmFyY2h5Q2hhbmdlZCgpe3ZhciB0PXRoaXMucmVuZGVySGllcmFyY2h5O3RoaXMuX2hhc1JlbmRlckhpZXJhcmNoeUJlZW5GaXRPbmNlPSExLHRoaXMuX3Jlc2V0U3RhdGUoKSx0aGlzLl9idWlsZCh0KX1fYW5pbWF0ZUFuZEZpdCgpe3ZhciB0PXRoaXMuX2lzQXR0YWNoZWQ7dGhpcy5faGFzUmVuZGVySGllcmFyY2h5QmVlbkZpdE9uY2V8fCF0fHxzZXRUaW1lb3V0KHRoaXMuZml0LmJpbmQodGhpcyksVHIuYW5pbWF0aW9uLmR1cmF0aW9uKX1fdXBkYXRlTGFiZWxzKHQpe3ZhciByPXRoaXMuJCQoIi50aXRsZSIpLG49ci5zdHlsZSxpPXRoaXMuJCQoIi5hdXhUaXRsZSIpLG89aS5zdHlsZSxhPXRoaXMuJCQoIi5mdW5jdGlvbkxpYnJhcnlUaXRsZSIpLnN0eWxlO2xldCBzPUh0KHRoaXMuJC5zdmcpO3ZhciBsPXMuc2VsZWN0KCIuIitIaS5TY2VuZS5HUk9VUCsiPi4iK0hpLlNjZW5lLkNPUkUpLm5vZGUoKTtpZih0JiZsJiZ0aGlzLnByb2dyZXNzJiZ0aGlzLnByb2dyZXNzLnZhbHVlPT09MTAwKXt2YXIgYz1zLnNlbGVjdCgiLiIrSGkuU2NlbmUuR1JPVVArIj4uIitIaS5TY2VuZS5JTkVYVFJBQ1QpLm5vZGUoKXx8cy5zZWxlY3QoIi4iK0hpLlNjZW5lLkdST1VQKyI+LiIrSGkuU2NlbmUuT1VURVhUUkFDVCkubm9kZSgpLHU9bC5nZXRDVE0oKS5lLGg9Yz9jLmdldENUTSgpLmU6bnVsbDtuLmRpc3BsYXk9ImlubGluZSIsbi5sZWZ0PXUrInB4IixoIT09bnVsbCYmaCE9PXU/KG8uZGlzcGxheT0iaW5saW5lIixoPU1hdGgubWF4KHUrci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCxoKSxvLmxlZnQ9aCsicHgiKTpvLmRpc3BsYXk9Im5vbmUiO2xldCBmPXMuc2VsZWN0KCIuIitIaS5TY2VuZS5HUk9VUCsiPi4iK0hpLlNjZW5lLkZVTkNUSU9OX0xJQlJBUlkpLm5vZGUoKSxwPWY/Zi5nZXRDVE0oKS5lOm51bGw7cCE9PW51bGwmJnAhPT1oPyhhLmRpc3BsYXk9ImlubGluZSIscD1NYXRoLm1heChoK2kuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgscCksYS5sZWZ0PXArInB4Iik6YS5kaXNwbGF5PSJub25lIn1lbHNlIG4uZGlzcGxheT0ibm9uZSIsby5kaXNwbGF5PSJub25lIixhLmRpc3BsYXk9Im5vbmUifW5vZGVDb2xvcnNDaGFuZ2VkKCl7dGhpcy5yZW5kZXJIaWVyYXJjaHkhPW51bGwmJih0aGlzLnRlbXBsYXRlSW5kZXg9dGhpcy5yZW5kZXJIaWVyYXJjaHkuaGllcmFyY2h5LmdldFRlbXBsYXRlSW5kZXgoKSxtUC5lYWNoKHRoaXMuX25vZGVHcm91cEluZGV4LCh0LHIpPT57dGhpcy5fdXBkYXRlTm9kZVN0YXRlKHIpfSksdGhpcy5taW5pbWFwLnVwZGF0ZSgpKX1maXQoKXt0aGlzLl9oYXNSZW5kZXJIaWVyYXJjaHlCZWVuRml0T25jZT0hMCxDbGUodGhpcy4kLnN2Zyx0aGlzLiQucm9vdCx0aGlzLl96b29tLGZ1bmN0aW9uKCl7dGhpcy5fem9vbWVkPSExfS5iaW5kKHRoaXMpKX1nZXRJbWFnZUJsb2IoKXtyZXR1cm4gdGhpcy5taW5pbWFwLmdldEltYWdlQmxvYigpfWlzTm9kZVNlbGVjdGVkKHQpe3JldHVybiB0PT09dGhpcy5zZWxlY3RlZE5vZGV9aXNOb2RlSGlnaGxpZ2h0ZWQodCl7cmV0dXJuIHQ9PT10aGlzLmhpZ2hsaWdodGVkTm9kZX1hZGRBbm5vdGF0aW9uR3JvdXAodCxyLG4pe3ZhciBpPXQubm9kZS5uYW1lO3RoaXMuX2Fubm90YXRpb25Hcm91cEluZGV4W2ldPXRoaXMuX2Fubm90YXRpb25Hcm91cEluZGV4W2ldfHx7fSx0aGlzLl9hbm5vdGF0aW9uR3JvdXBJbmRleFtpXVtyLm5vZGUubmFtZV09bn1nZXRBbm5vdGF0aW9uR3JvdXBzSW5kZXgodCl7cmV0dXJuIHRoaXMuX2Fubm90YXRpb25Hcm91cEluZGV4W3RdfXJlbW92ZUFubm90YXRpb25Hcm91cCh0LHIpe2RlbGV0ZSB0aGlzLl9hbm5vdGF0aW9uR3JvdXBJbmRleFt0Lm5vZGUubmFtZV1bci5ub2RlLm5hbWVdfWFkZE5vZGVHcm91cCh0LHIpe3RoaXMuX25vZGVHcm91cEluZGV4W3RdPXJ9Z2V0Tm9kZUdyb3VwKHQpe3JldHVybiB0aGlzLl9ub2RlR3JvdXBJbmRleFt0XX1yZW1vdmVOb2RlR3JvdXAodCl7ZGVsZXRlIHRoaXMuX25vZGVHcm91cEluZGV4W3RdfWFkZEVkZ2VHcm91cCh0LHIpe3RoaXMuX2VkZ2VHcm91cEluZGV4W3RdPXJ9Z2V0RWRnZUdyb3VwKHQpe3JldHVybiB0aGlzLl9lZGdlR3JvdXBJbmRleFt0XX1fdXBkYXRlSGVhbHRoUGlsbHMoKXt2YXIgdD10aGlzLm5vZGVOYW1lc1RvSGVhbHRoUGlsbHMscj10aGlzLmhlYWx0aFBpbGxTdGVwSW5kZXg7UmxlKHRoaXMuJC5zdmcsdCxyKX1fdXBkYXRlTm9kZVN0YXRlKHQpe3ZhciByPXRoaXMuZ2V0Tm9kZSh0KSxuPXRoaXMuZ2V0Tm9kZUdyb3VwKHQpO2lmKG4mJnMzKG4scix0aGlzKSxyLm5vZGUudHlwZT09PWp0Lk1FVEEmJnIubm9kZS5hc3NvY2lhdGVkRnVuY3Rpb24mJiFyLmlzTGlicmFyeUZ1bmN0aW9uKXt2YXIgaT1NYStyLm5vZGUuYXNzb2NpYXRlZEZ1bmN0aW9uLG89SHQoIi4iK0hpLlNjZW5lLkdST1VQKyI+LiIrSGkuU2NlbmUuRlVOQ1RJT05fTElCUkFSWSsnIGdbZGF0YS1uYW1lPSInK2krJyJdJyk7czMobyxyLHRoaXMpfXZhciBhPXRoaXMuZ2V0QW5ub3RhdGlvbkdyb3Vwc0luZGV4KHQpO21QLmVhY2goYSwocyxsKT0+e3MzKHMscix0aGlzLEhpLkFubm90YXRpb24uTk9ERSl9KX1fc2VsZWN0ZWROb2RlQ2hhbmdlZCh0LHIpe2lmKHQhPT1yJiYociYmdGhpcy5fdXBkYXRlTm9kZVN0YXRlKHIpLCEhdCkpe3RoaXMubWluaW1hcC51cGRhdGUoKTtmb3IodmFyIG49dGhpcy5yZW5kZXJIaWVyYXJjaHkuaGllcmFyY2h5Lm5vZGUodCksaT1bXTtuLnBhcmVudE5vZGUhPW51bGwmJm4ucGFyZW50Tm9kZS5uYW1lIT1xYzspbj1uLnBhcmVudE5vZGUsaS5wdXNoKG4ubmFtZSk7dmFyIG87bVAuZm9yRWFjaFJpZ2h0KGksYT0+e3RoaXMucmVuZGVySGllcmFyY2h5LmJ1aWxkU3ViaGllcmFyY2h5KGEpO3ZhciBzPXRoaXMucmVuZGVySGllcmFyY2h5LmdldFJlbmRlck5vZGVCeU5hbWUoYSk7cy5ub2RlLmlzR3JvdXBOb2RlJiYhcy5leHBhbmRlZCYmKHMuZXhwYW5kZWQ9ITAsb3x8KG89cykpfSksbyYmKHRoaXMuc2V0Tm9kZUV4cGFuZGVkKG8pLHRoaXMuX3pvb21lZD0hMCksdCYmdGhpcy5fdXBkYXRlTm9kZVN0YXRlKHQpLHNldFRpbWVvdXQoKCk9Pnt0aGlzLnBhblRvTm9kZSh0KX0sVHIuYW5pbWF0aW9uLmR1cmF0aW9uKX19X2hpZ2hsaWdodGVkTm9kZUNoYW5nZWQodCxyKXt0IT09ciYmKHQmJnRoaXMuX3VwZGF0ZU5vZGVTdGF0ZSh0KSxyJiZ0aGlzLl91cGRhdGVOb2RlU3RhdGUocikpfV9vblpvb21DaGFuZ2VkKCl7dGhpcy5fdXBkYXRlTGFiZWxzKCF0aGlzLl96b29tZWQpfV9maXJlRW5hYmxlQ2xpY2soKXt0aGlzLmZpcmUoImVuYWJsZS1jbGljayIpfV91cGRhdGVJbnB1dFRyYWNlKCl7WWxlKHRoaXMuZ2V0R3JhcGhTdmdSb290KCksdGhpcy5yZW5kZXJIaWVyYXJjaHksdGhpcy5zZWxlY3RlZE5vZGUsdGhpcy50cmFjZUlucHV0cyl9fTtMci50ZW1wbGF0ZT1LbGU7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsbG8pXSxMci5wcm90b3R5cGUsInJlbmRlckhpZXJhcmNoeSIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxMci5wcm90b3R5cGUsIm5hbWUiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sTHIucHJvdG90eXBlLCJjb2xvckJ5Iix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sTHIucHJvdG90eXBlLCJ0cmFjZUlucHV0cyIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLExyLnByb3RvdHlwZSwiX2hhc1JlbmRlckhpZXJhcmNoeUJlZW5GaXRPbmNlIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sTHIucHJvdG90eXBlLCJfaXNBdHRhY2hlZCIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxMci5wcm90b3R5cGUsIl96b29tIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfaGlnaGxpZ2h0ZWROb2RlQ2hhbmdlZCJ9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sTHIucHJvdG90eXBlLCJoaWdobGlnaHRlZE5vZGUiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmcsb2JzZXJ2ZXI6Il9zZWxlY3RlZE5vZGVDaGFuZ2VkIn0pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxMci5wcm90b3R5cGUsInNlbGVjdGVkTm9kZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxMci5wcm90b3R5cGUsImhhbmRsZUVkZ2VTZWxlY3RlZCIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW4sb2JzZXJ2ZXI6Il9vblpvb21DaGFuZ2VkIn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sTHIucHJvdG90eXBlLCJfem9vbWVkIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLExyLnByb3RvdHlwZSwiX3pvb21TdGFydENvb3JkcyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxMci5wcm90b3R5cGUsIl96b29tVHJhbnNmb3JtIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLExyLnByb3RvdHlwZSwiX21heFpvb21EaXN0YW5jZUZvckNsaWNrIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sTHIucHJvdG90eXBlLCJ0ZW1wbGF0ZUluZGV4Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLExyLnByb3RvdHlwZSwiX25vZGVHcm91cEluZGV4Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLExyLnByb3RvdHlwZSwiX2Fubm90YXRpb25Hcm91cEluZGV4Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLExyLnByb3RvdHlwZSwiX2VkZ2VHcm91cEluZGV4Iix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLExyLnByb3RvdHlwZSwibWF4TWV0YW5vZGVMYWJlbExlbmd0aEZvbnRTaXplIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLExyLnByb3RvdHlwZSwibWluTWV0YW5vZGVMYWJlbExlbmd0aEZvbnRTaXplIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLExyLnByb3RvdHlwZSwibWF4TWV0YW5vZGVMYWJlbExlbmd0aExhcmdlRm9udCIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxMci5wcm90b3R5cGUsIm1heE1ldGFub2RlTGFiZWxMZW5ndGgiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTHIucHJvdG90eXBlLCJwcm9ncmVzcyIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sTHIucHJvdG90eXBlLCJub2RlQ29udGV4dE1lbnVJdGVtcyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxMci5wcm90b3R5cGUsIm5vZGVOYW1lc1RvSGVhbHRoUGlsbHMiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXJ9KSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sTHIucHJvdG90eXBlLCJoZWFsdGhQaWxsU3RlcEluZGV4Iix2b2lkIDApO0UoW0J0KCJyZW5kZXJIaWVyYXJjaHkiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLExyLnByb3RvdHlwZSwiX3JlbmRlckhpZXJhcmNoeUNoYW5nZWQiLG51bGwpO0UoW0J0KCJfaXNBdHRhY2hlZCIsInJlbmRlckhpZXJhcmNoeSIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sTHIucHJvdG90eXBlLCJfYW5pbWF0ZUFuZEZpdCIsbnVsbCk7RShbQnQoImNvbG9yQnkiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLExyLnByb3RvdHlwZSwibm9kZUNvbG9yc0NoYW5nZWQiLG51bGwpO0UoW0J0KCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIiwiaGVhbHRoUGlsbFN0ZXBJbmRleCIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sTHIucHJvdG90eXBlLCJfdXBkYXRlSGVhbHRoUGlsbHMiLG51bGwpO0UoW0J0KCJ0cmFjZUlucHV0cyIsInNlbGVjdGVkTm9kZSIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sTHIucHJvdG90eXBlLCJfdXBkYXRlSW5wdXRUcmFjZSIsbnVsbCk7THI9RShbeXQoInRmLWdyYXBoLXNjZW5lIildLExyKTt2YXIgRHI9Y2xhc3MgZXh0ZW5kcyBHdChtdCl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3JlbmRlckRlcHRoPTEsdGhpcy5fYWxsb3dHcmFwaFNlbGVjdD0hMCx0aGlzLmVkZ2VXaWR0aEZ1bmN0aW9uPSIiLHRoaXMuaGFuZGxlTm9kZVNlbGVjdGVkPSIiLHRoaXMuZWRnZUxhYmVsRnVuY3Rpb249IiIsdGhpcy5oYW5kbGVFZGdlU2VsZWN0ZWQ9IiJ9cGFuVG9Ob2RlKHQpe3RoaXMuJCQoInRmLWdyYXBoLXNjZW5lIikucGFuVG9Ob2RlKHQpfV9hdXRvRXh0cmFjdE5vZGVzQ2hhbmdlZCgpe3ZhciB0PXRoaXMuZ3JhcGhIaWVyYXJjaHk7aWYoISF0KXtmb3IobGV0IHIgb2YgT2JqZWN0LnZhbHVlcyh0LmdldE5vZGVNYXAoKSkpci5pbmNsdWRlPXVyLlVOU1BFQ0lGSUVEO3RoaXMuX2J1aWxkUmVuZGVySGllcmFyY2h5KHQpfX1fYnVpbGROZXdSZW5kZXJIaWVyYXJjaHkoKXt2YXIgdD10aGlzLmdyYXBoSGllcmFyY2h5OyF0fHx0aGlzLl9idWlsZFJlbmRlckhpZXJhcmNoeSh0KX1fc3RhdHNDaGFuZ2VkKCl7dmFyIHQ9dGhpcy5zdGF0cyxyPXRoaXMuZGV2aWNlc0ZvclN0YXRzO3RoaXMuZ3JhcGhIaWVyYXJjaHkmJih0JiZyJiYoYWxlKHRoaXMuYmFzaWNHcmFwaCx0LHIpLHBsZSh0aGlzLmdyYXBoSGllcmFyY2h5LHQpKSx0aGlzLl9idWlsZFJlbmRlckhpZXJhcmNoeSh0aGlzLmdyYXBoSGllcmFyY2h5KSl9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZ3JhcGgtc2VsZWN0Iix0aGlzLl9ncmFwaFNlbGVjdGVkLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZGlzYWJsZS1jbGljayIsdGhpcy5fZGlzYWJsZUNsaWNrLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZW5hYmxlLWNsaWNrIix0aGlzLl9lbmFibGVDbGljay5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm5vZGUtdG9nZ2xlLWV4cGFuZCIsdGhpcy5fbm9kZVRvZ2dsZUV4cGFuZC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm5vZGUtc2VsZWN0Iix0aGlzLl9ub2RlU2VsZWN0ZWQuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJub2RlLWhpZ2hsaWdodCIsdGhpcy5fbm9kZUhpZ2hsaWdodGVkLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS11bmhpZ2hsaWdodCIsdGhpcy5fbm9kZVVuaGlnaGxpZ2h0ZWQuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJub2RlLXRvZ2dsZS1leHRyYWN0Iix0aGlzLl9ub2RlVG9nZ2xlRXh0cmFjdC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm5vZGUtdG9nZ2xlLXNlcmllc2dyb3VwIix0aGlzLl9ub2RlVG9nZ2xlU2VyaWVzR3JvdXAuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJlZGdlLXNlbGVjdCIsdGhpcy5fZWRnZVNlbGVjdGVkLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYW5ub3RhdGlvbi1zZWxlY3QiLHRoaXMuX25vZGVTZWxlY3RlZC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImFubm90YXRpb24taGlnaGxpZ2h0Iix0aGlzLl9ub2RlSGlnaGxpZ2h0ZWQuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJhbm5vdGF0aW9uLXVuaGlnaGxpZ2h0Iix0aGlzLl9ub2RlVW5oaWdobGlnaHRlZC5iaW5kKHRoaXMpKX1fYnVpbGRSZW5kZXJIaWVyYXJjaHkodCl7aWYodC5yb290LnR5cGUhPT1qdC5NRVRBKXJldHVybjtsZXQgcj10aGlzLG49TmQoIm5ldyB0Zl9ncmFwaF9yZW5kZXIuSGllcmFyY2h5IiwoKT0+e2xldCBpPW5ldyBsbyh0LCEhdGhpcy5zdGF0cyx0aGlzLmF1dG9FeHRyYWN0Tm9kZXMpO2kuZWRnZUxhYmVsRnVuY3Rpb249dGhpcy5lZGdlTGFiZWxGdW5jdGlvbixpLmVkZ2VXaWR0aEZ1bmN0aW9uPXRoaXMuZWRnZVdpZHRoRnVuY3Rpb247ZnVuY3Rpb24gbyhhKXtyZXR1cm57bWluVmFsdWU6YS5kb21haW4oKVswXSxtYXhWYWx1ZTphLmRvbWFpbigpWzFdLHN0YXJ0Q29sb3I6YS5yYW5nZSgpWzBdLGVuZENvbG9yOmEucmFuZ2UoKVsxXX19cmV0dXJuIHIuX3NldENvbG9yQnlQYXJhbXMoe2NvbXB1dGVfdGltZTpvKGkuY29tcHV0ZVRpbWVTY2FsZSksbWVtb3J5Om8oaS5tZW1vcnlVc2FnZVNjYWxlKSxkZXZpY2U6aWN0Lm1hcChpLmRldmljZUNvbG9yTWFwLmRvbWFpbigpLGZ1bmN0aW9uKGEpe3JldHVybntkZXZpY2U6YSxjb2xvcjppLmRldmljZUNvbG9yTWFwKGEpfX0pLHhsYV9jbHVzdGVyOmljdC5tYXAoaS54bGFDbHVzdGVyQ29sb3JNYXAuZG9tYWluKCksZnVuY3Rpb24oYSl7cmV0dXJue3hsYV9jbHVzdGVyOmEsY29sb3I6aS54bGFDbHVzdGVyQ29sb3JNYXAoYSl9fSl9KSxpfSxqci5SRU5ERVJfQlVJTERfSElFUkFSQ0hZKTtyLl9zZXRSZW5kZXJIaWVyYXJjaHkobil9X2dldFZpc2libGUodCl7cmV0dXJuIHQmJnRoaXMucmVuZGVySGllcmFyY2h5LmdldE5lYXJlc3RWaXNpYmxlQW5jZXN0b3IodCl9Zml0KCl7dGhpcy4kLnNjZW5lLmZpdCgpfWdldEltYWdlQmxvYigpe3JldHVybiB0aGlzLiQuc2NlbmUuZ2V0SW1hZ2VCbG9iKCl9X2dyYXBoQ2hhbmdlZCgpeyF0aGlzLmdyYXBoSGllcmFyY2h5fHwodGhpcy5ncmFwaEhpZXJhcmNoeS5hZGRMaXN0ZW5lcihPZC5URU1QTEFURVNfVVBEQVRFRCwoKT0+e3RoaXMuJC5zY2VuZS5ub2RlQ29sb3JzQ2hhbmdlZCgpfSksdGhpcy5maXJlKCJncmFwaC1zZWxlY3QiKSl9X2dyYXBoU2VsZWN0ZWQodCl7dGhpcy5fYWxsb3dHcmFwaFNlbGVjdCYmKHRoaXMuc2V0KCJzZWxlY3RlZE5vZGUiLG51bGwpLHRoaXMuc2V0KCJzZWxlY3RlZEVkZ2UiLG51bGwpKSx0aGlzLl9hbGxvd0dyYXBoU2VsZWN0PSEwfV9kaXNhYmxlQ2xpY2sodCl7dGhpcy5fYWxsb3dHcmFwaFNlbGVjdD0hMX1fZW5hYmxlQ2xpY2sodCl7dGhpcy5fYWxsb3dHcmFwaFNlbGVjdD0hMH1fc2VsZWN0ZWROb2RlQ2hhbmdlZCgpe3ZhciB0PXRoaXMuc2VsZWN0ZWROb2RlO3RoaXMuaGFuZGxlTm9kZVNlbGVjdGVkJiZ0aGlzLmhhbmRsZU5vZGVTZWxlY3RlZCh0KX1fc2VsZWN0ZWRFZGdlQ2hhbmdlZCgpe3ZhciB0PXRoaXMuc2VsZWN0ZWRFZGdlO3RoaXMuX2Rlc2VsZWN0UHJldmlvdXNFZGdlKCksdCYmKHRoaXMuX2xhc3RTZWxlY3RlZEVkZ2VHcm91cC5jbGFzc2VkKEhpLkVkZ2UuU0VMRUNURUQsITApLHRoaXMuX3VwZGF0ZU1hcmtlck9mU2VsZWN0ZWRFZGdlKHQpKSx0aGlzLmhhbmRsZUVkZ2VTZWxlY3RlZCYmdGhpcy5oYW5kbGVFZGdlU2VsZWN0ZWQodCl9X25vZGVTZWxlY3RlZCh0KXt0aGlzLl9hbGxvd0dyYXBoU2VsZWN0JiZ0aGlzLnNldCgic2VsZWN0ZWROb2RlIix0LmRldGFpbC5uYW1lKSx0aGlzLl9hbGxvd0dyYXBoU2VsZWN0PSEwfV9lZGdlU2VsZWN0ZWQodCl7dGhpcy5fYWxsb3dHcmFwaFNlbGVjdCYmKHRoaXMuc2V0KCJfbGFzdFNlbGVjdGVkRWRnZUdyb3VwIix0LmRldGFpbC5lZGdlR3JvdXApLHRoaXMuc2V0KCJzZWxlY3RlZEVkZ2UiLHQuZGV0YWlsLmVkZ2VEYXRhKSksdGhpcy5fYWxsb3dHcmFwaFNlbGVjdD0hMH1fbm9kZUhpZ2hsaWdodGVkKHQpe3RoaXMuc2V0KCJoaWdobGlnaHRlZE5vZGUiLHQuZGV0YWlsLm5hbWUpfV9ub2RlVW5oaWdobGlnaHRlZCh0KXt0aGlzLnNldCgiaGlnaGxpZ2h0ZWROb2RlIixudWxsKX1fbm9kZVRvZ2dsZUV4cGFuZCh0KXt0aGlzLl9ub2RlU2VsZWN0ZWQodCk7dmFyIHI9dC5kZXRhaWwubmFtZSxuPXRoaXMucmVuZGVySGllcmFyY2h5LmdldFJlbmRlck5vZGVCeU5hbWUocik7bi5ub2RlLnR5cGUhPT1qdC5PUCYmKHRoaXMucmVuZGVySGllcmFyY2h5LmJ1aWxkU3ViaGllcmFyY2h5KHIpLG4uZXhwYW5kZWQ9IW4uZXhwYW5kZWQsdGhpcy5hc3luYyhmdW5jdGlvbigpe3RoaXMuJC5zY2VuZS5zZXROb2RlRXhwYW5kZWQobil9LDc1KSxQbyh7YWN0aW9uSWQ6anIuTk9ERV9FWFBBTlNJT05fVE9HR0xFRCxldmVudExhYmVsOm4uZXhwYW5kZWQ/ImV4cGFuZGVkIjoiY29sbGFwc2VkIn0pKX1fbm9kZVRvZ2dsZUV4dHJhY3QodCl7dmFyIHI9dC5kZXRhaWwubmFtZTt0aGlzLm5vZGVUb2dnbGVFeHRyYWN0KHIpfW5vZGVUb2dnbGVFeHRyYWN0KHQpe2xldCByPXRoaXMucmVuZGVySGllcmFyY2h5LmdldFJlbmRlck5vZGVCeU5hbWUodCk7ci5ub2RlLmluY2x1ZGU9PXVyLklOQ0xVREU/ci5ub2RlLmluY2x1ZGU9dXIuRVhDTFVERTpyLm5vZGUuaW5jbHVkZT09dXIuRVhDTFVERT9yLm5vZGUuaW5jbHVkZT11ci5JTkNMVURFOnIubm9kZS5pbmNsdWRlPXRoaXMucmVuZGVySGllcmFyY2h5LmlzTm9kZUF1eGlsaWFyeShyKT91ci5JTkNMVURFOnVyLkVYQ0xVREUsdGhpcy5fYnVpbGRSZW5kZXJIaWVyYXJjaHkodGhpcy5ncmFwaEhpZXJhcmNoeSksUG8oe2FjdGlvbklkOmpyLk5PREVfQVVYSUxJQVJZX0VYVFJBQ1RJT05fQ0hBTkdFRCxldmVudExhYmVsOnIubm9kZS5pbmNsdWRlPT09dXIuSU5DTFVERT8iQXV4aWxpYXJ5IHRvIE1haW4iOiJNYWluIHRvIEF1eGlsaWFyeSJ9KX1fbm9kZVRvZ2dsZVNlcmllc0dyb3VwKHQpe3ZhciByPXQuZGV0YWlsLm5hbWU7dGhpcy5ub2RlVG9nZ2xlU2VyaWVzR3JvdXAocil9bm9kZVRvZ2dsZVNlcmllc0dyb3VwKHQpe3RoaXMuc2V0KCJwcm9ncmVzcyIse3ZhbHVlOjAsbXNnOiIifSk7dmFyIHI9blAodGhpcyksbj1KUyhyLDEwMCwiTmFtZXNwYWNlIGhpZXJhcmNoeSIpO2xldCBpPXloKGlhKHt9LHRoaXMuaGllcmFyY2h5UGFyYW1zKSx7c2VyaWVzTWFwOnRoaXMuZ3JhcGhIaWVyYXJjaHkuYnVpbGRTZXJpZXNHcm91cE1hcFRvZ2dsZWQodCl9KTtiSCh0aGlzLmJhc2ljR3JhcGgsaSxuKS50aGVuKGZ1bmN0aW9uKG8pe3RoaXMuc2V0KCJncmFwaEhpZXJhcmNoeSIsbyksdGhpcy5fYnVpbGRSZW5kZXJIaWVyYXJjaHkodGhpcy5ncmFwaEhpZXJhcmNoeSl9LmJpbmQodGhpcykpfV9kZXNlbGVjdFByZXZpb3VzRWRnZSgpe2xldCB0PSIuIitIaS5FZGdlLlNFTEVDVEVEO0h0KHQpLmNsYXNzZWQoSGkuRWRnZS5TRUxFQ1RFRCwhMSkuZWFjaCgocixuKT0+e2lmKHIubGFiZWwpe2xldCBpPUh0KHRoaXMpLnNlbGVjdEFsbCgicGF0aC5lZGdlbGluZSIpO3IubGFiZWwuc3RhcnRNYXJrZXJJZCYmaS5zdHlsZSgibWFya2VyLXN0YXJ0IixgdXJsKCMke3IubGFiZWwuc3RhcnRNYXJrZXJJZH0pYCksci5sYWJlbC5lbmRNYXJrZXJJZCYmaS5zdHlsZSgibWFya2VyLWVuZCIsYHVybCgjJHtyLmxhYmVsLmVuZE1hcmtlcklkfSlgKX19KX1fdXBkYXRlTWFya2VyT2ZTZWxlY3RlZEVkZ2UodCl7dmFyIHI7aWYodC5sYWJlbCl7bGV0IG49dC5sYWJlbC5zdGFydE1hcmtlcklkfHx0LmxhYmVsLmVuZE1hcmtlcklkO2lmKG4pe2xldCBpPW4ucmVwbGFjZSgiZGF0YWZsb3ctIiwic2VsZWN0ZWQtIiksbz10aGlzLiQkKCIjIitpKTtpZighbyl7bGV0IHM9dGhpcy4kLnNjZW5lLnF1ZXJ5U2VsZWN0b3IoIiMiK24pO289cz09bnVsbD92b2lkIDA6cy5jbG9uZU5vZGUoITApLG8uc2V0QXR0cmlidXRlKCJpZCIsaSksby5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZC1hcnJvd2hlYWQiKSwocj1zPT1udWxsP3ZvaWQgMDpzLnBhcmVudE5vZGUpPT1udWxsfHxyLmFwcGVuZENoaWxkKG8pfWxldCBhPXQubGFiZWwuc3RhcnRNYXJrZXJJZD8ibWFya2VyLXN0YXJ0IjoibWFya2VyLWVuZCI7dGhpcy5fbGFzdFNlbGVjdGVkRWRnZUdyb3VwLnNlbGVjdEFsbCgicGF0aC5lZGdlbGluZSIpLnN0eWxlKGEsYHVybCgjJHtpfSlgKX19fW5vdCh0KXtyZXR1cm4hdH19O0RyLnRlbXBsYXRlPVFgCiAgICA8c3R5bGU+CiAgICAgIC5jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjIpOwogICAgICB9CgogICAgICAudmVydGljYWwgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtdmVydGljYWw7CiAgICAgIH0KCiAgICAgIC5hdXRvIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZmxleC1hdXRvOwogICAgICAgIEBhcHBseSAtLWxheW91dC12ZXJ0aWNhbDsKICAgICAgfQoKICAgICAgaDIgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgcGFwZXItYnV0dG9uIHsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbdGl0bGVdXSI+CiAgICAgICAgICA8aDI+W1t0aXRsZV1dPC9oMj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDx0Zi1ncmFwaC1zY2VuZQogICAgICAgICAgaWQ9InNjZW5lIgogICAgICAgICAgY2xhc3M9ImF1dG8iCiAgICAgICAgICByZW5kZXItaGllcmFyY2h5PSJbW3JlbmRlckhpZXJhcmNoeV1dIgogICAgICAgICAgaGlnaGxpZ2h0ZWQtbm9kZT0iW1tfZ2V0VmlzaWJsZShoaWdobGlnaHRlZE5vZGUpXV0iCiAgICAgICAgICBzZWxlY3RlZC1ub2RlPSJ7e3NlbGVjdGVkTm9kZX19IgogICAgICAgICAgc2VsZWN0ZWQtZWRnZT0ie3tzZWxlY3RlZEVkZ2V9fSIKICAgICAgICAgIGNvbG9yLWJ5PSJbW2NvbG9yQnldXSIKICAgICAgICAgIHByb2dyZXNzPSJbW3Byb2dyZXNzXV0iCiAgICAgICAgICBub2RlLWNvbnRleHQtbWVudS1pdGVtcz0iW1tub2RlQ29udGV4dE1lbnVJdGVtc11dIgogICAgICAgICAgbm9kZS1uYW1lcy10by1oZWFsdGgtcGlsbHM9Iltbbm9kZU5hbWVzVG9IZWFsdGhQaWxsc11dIgogICAgICAgICAgaGVhbHRoLXBpbGwtc3RlcC1pbmRleD0ie3toZWFsdGhQaWxsU3RlcEluZGV4fX0iCiAgICAgICAgICBoYW5kbGUtZWRnZS1zZWxlY3RlZD0iW1toYW5kbGVFZGdlU2VsZWN0ZWRdXSIKICAgICAgICAgIHRyYWNlLWlucHV0cz0iW1t0cmFjZUlucHV0c11dIgogICAgICAgID48L3RmLWdyYXBoLXNjZW5lPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGA7RShbQSh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLG9ic2VydmVyOiJfZ3JhcGhDaGFuZ2VkIn0pLHcoImRlc2lnbjp0eXBlIixhcyldLERyLnByb3RvdHlwZSwiZ3JhcGhIaWVyYXJjaHkiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsWHUpXSxEci5wcm90b3R5cGUsImJhc2ljR3JhcGgiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sRHIucHJvdG90eXBlLCJzdGF0cyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxEci5wcm90b3R5cGUsImRldmljZXNGb3JTdGF0cyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxEci5wcm90b3R5cGUsImhpZXJhcmNoeVBhcmFtcyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sRHIucHJvdG90eXBlLCJwcm9ncmVzcyIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxEci5wcm90b3R5cGUsInRpdGxlIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nLG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxEci5wcm90b3R5cGUsInNlbGVjdGVkTm9kZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sRHIucHJvdG90eXBlLCJzZWxlY3RlZEVkZ2UiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sRHIucHJvdG90eXBlLCJfbGFzdFNlbGVjdGVkRWRnZUdyb3VwIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nLG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxEci5wcm90b3R5cGUsImhpZ2hsaWdodGVkTm9kZSIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxEci5wcm90b3R5cGUsImNvbG9yQnkiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLHJlYWRPbmx5OiEwfSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLERyLnByb3RvdHlwZSwiY29sb3JCeVBhcmFtcyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdCxyZWFkT25seTohMCxub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsbG8pXSxEci5wcm90b3R5cGUsInJlbmRlckhpZXJhcmNoeSIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLERyLnByb3RvdHlwZSwidHJhY2VJbnB1dHMiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxEci5wcm90b3R5cGUsImF1dG9FeHRyYWN0Tm9kZXMiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLERyLnByb3RvdHlwZSwibm9kZUNvbnRleHRNZW51SXRlbXMiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXJ9KSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sRHIucHJvdG90eXBlLCJfcmVuZGVyRGVwdGgiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxEci5wcm90b3R5cGUsIl9hbGxvd0dyYXBoU2VsZWN0Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLERyLnByb3RvdHlwZSwibm9kZU5hbWVzVG9IZWFsdGhQaWxscyIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxEci5wcm90b3R5cGUsImhlYWx0aFBpbGxTdGVwSW5kZXgiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sRHIucHJvdG90eXBlLCJlZGdlV2lkdGhGdW5jdGlvbiIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxEci5wcm90b3R5cGUsImhhbmRsZU5vZGVTZWxlY3RlZCIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxEci5wcm90b3R5cGUsImVkZ2VMYWJlbEZ1bmN0aW9uIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLERyLnByb3RvdHlwZSwiaGFuZGxlRWRnZVNlbGVjdGVkIix2b2lkIDApO0UoW0J0KCJhdXRvRXh0cmFjdE5vZGVzIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxEci5wcm90b3R5cGUsIl9hdXRvRXh0cmFjdE5vZGVzQ2hhbmdlZCIsbnVsbCk7RShbQnQoImdyYXBoSGllcmFyY2h5IiwiZWRnZVdpZHRoRnVuY3Rpb24iLCJoYW5kbGVOb2RlU2VsZWN0ZWQiLCJlZGdlTGFiZWxGdW5jdGlvbiIsImhhbmRsZUVkZ2VTZWxlY3RlZCIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sRHIucHJvdG90eXBlLCJfYnVpbGROZXdSZW5kZXJIaWVyYXJjaHkiLG51bGwpO0UoW0J0KCJzdGF0cyIsImRldmljZXNGb3JTdGF0cyIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sRHIucHJvdG90eXBlLCJfc3RhdHNDaGFuZ2VkIixudWxsKTtFKFtCdCgic2VsZWN0ZWROb2RlIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxEci5wcm90b3R5cGUsIl9zZWxlY3RlZE5vZGVDaGFuZ2VkIixudWxsKTtFKFtCdCgic2VsZWN0ZWRFZGdlIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxEci5wcm90b3R5cGUsIl9zZWxlY3RlZEVkZ2VDaGFuZ2VkIixudWxsKTtEcj1FKFt5dCgidGYtZ3JhcGgiKV0sRHIpO3ZhciBjbz1jbGFzcyBleHRlbmRzIEd0KG10KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5zcGVjaWZpY0hlYWx0aFBpbGxTdGVwPTAsdGhpcy5oZWFsdGhQaWxsRW50cmllcz1mUH1yZWFkeSgpe3N1cGVyLnJlYWR5KCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW5Db250YWluZXIiKSxyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInRmLWRhc2hib2FyZC1sYXlvdXQgLnNjcm9sbGJhciIpO3QmJnImJih0LnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iLHIuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIpfV9oZWFsdGhQaWxsc0F2YWlsYWJsZSh0LHIpe3JldHVybiB0JiZyfV9jb21wdXRlVGVuc29yQ291bnRTdHJpbmcodCxyKXtyZXR1cm4gdD90W3JdLnRvRml4ZWQoMCk6IiJ9Z2V0IGhlYWx0aFBpbGxWYWx1ZXNGb3JTZWxlY3RlZE5vZGUoKXt2YXIgdD10aGlzLm5vZGVOYW1lc1RvSGVhbHRoUGlsbHMscj10aGlzLmhlYWx0aFBpbGxTdGVwSW5kZXgsbj10aGlzLnNlbGVjdGVkTm9kZSxpPXRoaXMuYWxsU3RlcHNNb2RlRW5hYmxlZCxvPXRoaXMuYXJlSGVhbHRoUGlsbHNMb2FkaW5nO2lmKG98fCFuKXJldHVybiBudWxsO2xldCBhPXRbbl07aWYoIWEpcmV0dXJuIG51bGw7bGV0IHM9YVtpPzA6cl07cmV0dXJuIHM/cy52YWx1ZS5zbGljZSgyLDgpOm51bGx9Z2V0IF9jdXJyZW50U3RlcERpc3BsYXlWYWx1ZSgpe3ZhciB0PXRoaXMubm9kZU5hbWVzVG9IZWFsdGhQaWxscyxyPXRoaXMuaGVhbHRoUGlsbFN0ZXBJbmRleCxuPXRoaXMuYWxsU3RlcHNNb2RlRW5hYmxlZCxpPXRoaXMuc3BlY2lmaWNIZWFsdGhQaWxsU3RlcCxvPXRoaXMuYXJlSGVhbHRoUGlsbHNMb2FkaW5nO2lmKG4pcmV0dXJuIGkudG9GaXhlZCgwKTtpZihvKXJldHVybiAwO2ZvcihsZXQgYSBpbiB0KXJldHVybiB0W2FdW3JdLnN0ZXAudG9GaXhlZCgwKTtyZXR1cm4gMH1nZXQgX2JpZ2dlc3RTdGVwRXZlclNlZW4oKXt2YXIgdD10aGlzLm5vZGVOYW1lc1RvSGVhbHRoUGlsbHM7Zm9yKGxldCBuIGluIHQpe3ZhciByPXRbbl07cmV0dXJuIE1hdGgubWF4KHRoaXMuX2JpZ2dlc3RTdGVwRXZlclNlZW4scltyLmxlbmd0aC0xXS5zdGVwKX1yZXR1cm4gdGhpcy5fYmlnZ2VzdFN0ZXBFdmVyU2Vlbnx8MH1nZXQgX21heFN0ZXBJbmRleCgpe3ZhciB0PXRoaXMubm9kZU5hbWVzVG9IZWFsdGhQaWxscztmb3IobGV0IHIgaW4gdClyZXR1cm4gdFtyXS5sZW5ndGgtMTtyZXR1cm4gMH1faGFzRGVidWdnZXJOdW1lcmljQWxlcnRzKHQpe3JldHVybiB0JiZ0Lmxlbmd0aH1fdXBkYXRlQWxlcnRzTGlzdCgpe3ZhciB0PXRoaXMuZGVidWdnZXJOdW1lcmljQWxlcnRzLHI9dGhpcy4kJCgiI251bWVyaWMtYWxlcnRzLWJvZHkiKTtpZighIXIpe3IuaW5uZXJUZXh0PSIiO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKSxhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7YS5pbm5lclRleHQ9UXNlKGkuZmlyc3RfdGltZXN0YW1wKSxhLmNsYXNzTGlzdC5hZGQoImZpcnN0LW9mZmVuc2UtdGQiKSxvLmFwcGVuZENoaWxkKGEpO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7cy5jbGFzc0xpc3QuYWRkKCJ0ZW5zb3ItZGV2aWNlLXRkIik7dmFyIGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5jbGFzc0xpc3QuYWRkKCJ0ZW5zb3Itc2VjdGlvbi13aXRoaW4tdGFibGUiKSxsLmlubmVyVGV4dD1pLnRlbnNvcl9uYW1lLHRoaXMuX2FkZE9wRXhwYW5zaW9uTGlzdGVuZXIobCxpLnRlbnNvcl9uYW1lKSxzLmFwcGVuZENoaWxkKGwpO3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2MuY2xhc3NMaXN0LmFkZCgiZGV2aWNlLXNlY3Rpb24td2l0aGluLXRhYmxlIiksYy5pbm5lclRleHQ9IigiK2kuZGV2aWNlX25hbWUrIikiLHMuYXBwZW5kQ2hpbGQoYyksby5hcHBlbmRDaGlsZChzKTt2YXIgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt1LmNsYXNzTGlzdC5hZGQoIm1pbmktaGVhbHRoLXBpbGwiKTt2YXIgaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpO2lmKGguY2xhc3NMaXN0LmFkZCgibWluaS1oZWFsdGgtcGlsbC10ZCIpLGguYXBwZW5kQ2hpbGQodSksby5hcHBlbmRDaGlsZChoKSxpLm5lZ19pbmZfZXZlbnRfY291bnQpe3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2YuY2xhc3NMaXN0LmFkZCgibmVnYXRpdmUtaW5mLW1pbmktaGVhbHRoLXBpbGwtc2VjdGlvbiIpLGYuaW5uZXJUZXh0PWkubmVnX2luZl9ldmVudF9jb3VudCxmLnNldEF0dHJpYnV0ZSgidGl0bGUiLGkubmVnX2luZl9ldmVudF9jb3VudCsiIGV2ZW50cyB3aXRoIC1cdTIyMUUiKSx1LmFwcGVuZENoaWxkKGYpfWlmKGkucG9zX2luZl9ldmVudF9jb3VudCl7dmFyIHA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cC5jbGFzc0xpc3QuYWRkKCJwb3NpdGl2ZS1pbmYtbWluaS1oZWFsdGgtcGlsbC1zZWN0aW9uIikscC5pbm5lclRleHQ9aS5wb3NfaW5mX2V2ZW50X2NvdW50LHAuc2V0QXR0cmlidXRlKCJ0aXRsZSIsaS5wb3NfaW5mX2V2ZW50X2NvdW50KyIgZXZlbnRzIHdpdGggK1x1MjIxRSIpLHUuYXBwZW5kQ2hpbGQocCl9aWYoaS5uYW5fZXZlbnRfY291bnQpe3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2QuY2xhc3NMaXN0LmFkZCgibmFuLW1pbmktaGVhbHRoLXBpbGwtc2VjdGlvbiIpLGQuaW5uZXJUZXh0PWkubmFuX2V2ZW50X2NvdW50LGQuc2V0QXR0cmlidXRlKCJ0aXRsZSIsaS5uYW5fZXZlbnRfY291bnQrIiBldmVudHMgd2l0aCBOYU4iKSx1LmFwcGVuZENoaWxkKGQpfXp0KHIpLmFwcGVuZENoaWxkKG8pfX19X2FkZE9wRXhwYW5zaW9uTGlzdGVuZXIodCxyKXt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3ZhciBuPXhsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2NlbmUiKSx0aGlzLnJlbmRlckhpZXJhcmNoeSxyKSxpLG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidGYtZ3JhcGgtaW5mbyNncmFwaC1pbmZvIik7byYmKGk9by5zY3JvbGxIZWlnaHQtby5zY3JvbGxUb3ApO3ZhciBhPXRoaXMuc2VsZWN0ZWROb2RlO3RoaXMuc2V0KCJzZWxlY3RlZE5vZGUiLG4pO3ZhciBzPSgpPT57by5zY3JvbGxUb3A9by5zY3JvbGxIZWlnaHQtaX07byYmKGE/cygpOndpbmRvdy5zZXRUaW1lb3V0KHMsMjApKX0pfX07Y28udGVtcGxhdGU9UWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgaDIgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLmhlYWx0aC1waWxsLWxlZ2VuZCB7CiAgICAgICAgcGFkZGluZzogMTVweDsKICAgICAgfQoKICAgICAgLmhlYWx0aC1waWxsLWxlZ2VuZCBoMiB7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgfQoKICAgICAgLmhlYWx0aC1waWxsLWVudHJ5IHsKICAgICAgICBtYXJnaW46IDEwcHggMTBweCAxMHB4IDA7CiAgICAgIH0KCiAgICAgIC5oZWFsdGgtcGlsbC1lbnRyeSAuY29sb3ItcHJldmlldyB7CiAgICAgICAgd2lkdGg6IDI2cHg7CiAgICAgICAgaGVpZ2h0OiAyNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgbWFyZ2luOiAwIDEwcHggMCAwOwogICAgICB9CgogICAgICAuaGVhbHRoLXBpbGwtZW50cnkgLmNvbG9yLWxhYmVsLAogICAgICAuaGVhbHRoLXBpbGwtZW50cnkgLnRlbnNvci1jb3VudCB7CiAgICAgICAgY29sb3I6ICM3Nzc7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGhlaWdodDogMjZweDsKICAgICAgICBmb250LXNpemU6IDIycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7CiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKICAgICAgfQoKICAgICAgLmhlYWx0aC1waWxsLWVudHJ5IC50ZW5zb3ItY291bnQgewogICAgICAgIGZsb2F0OiByaWdodDsKICAgICAgfQoKICAgICAgI2hlYWx0aC1waWxsLXN0ZXAtc2xpZGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXJnaW46IDAgMCAwIC0xNXB4OwogICAgICAgIC8qIDMxIGNvbWVzIGZyb20gYWRkaW5nIGEgcGFkZGluZyBvZiAxNXB4IGZyb20gYm90aCBzaWRlcyBvZiB0aGUgcGFwZXItc2xpZGVyLCBzdWJ0cmFjdGluZwogICAqIDFweCBzbyB0aGF0IHRoZSBzbGlkZXIgd2lkdGggYWxpZ25zIHdpdGggdGhlIGltYWdlICh0aGUgbGFzdCBzbGlkZXIgbWFya2VyIHRha2VzIHVwIDFweCksCiAgICogYW5kIGFkZGluZyAycHggdG8gYWNjb3VudCBmb3IgYSBib3JkZXIgb2YgMXB4IG9uIGJvdGggc2lkZXMgb2YgdGhlIGltYWdlLiAzMCAtIDEgKyAyLgogICAqIEFwcGFyZW50bHksIHRoZSBwYXBlci1zbGlkZXIgbGFja3MgYSBtaXhpbiBmb3IgdGhvc2UgcGFkZGluZyB2YWx1ZXMuICovCiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDMxcHgpOwogICAgICB9CgogICAgICAjaGVhbHRoLXBpbGxzLWxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CiAgICAgIH0KCiAgICAgICNoZWFsdGgtcGlsbC1zdGVwLW51bWJlci1pbnB1dCB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CiAgICAgIH0KCiAgICAgICNudW1lcmljLWFsZXJ0cy10YWJsZS1jb250YWluZXIgewogICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4OwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CgogICAgICAjbnVtZXJpYy1hbGVydHMtdGFibGUgewogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgIH0KCiAgICAgICNudW1lcmljLWFsZXJ0cy10YWJsZSB0ZCB7CiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKICAgICAgfQoKICAgICAgI251bWVyaWMtYWxlcnRzLXRhYmxlIC5maXJzdC1vZmZlbnNlLXRkIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIC5maXJzdC1vZmZlbnNlLXRkIHsKICAgICAgICB3aWR0aDogODBweDsKICAgICAgfQoKICAgICAgLnRlbnNvci1kZXZpY2UtdGQgewogICAgICAgIG1heC13aWR0aDogMTQwcHg7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAudGVuc29yLXNlY3Rpb24td2l0aGluLXRhYmxlIHsKICAgICAgICBjb2xvcjogIzI2NjIzNjsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAudGVuc29yLXNlY3Rpb24td2l0aGluLXRhYmxlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuZGV2aWNlLXNlY3Rpb24td2l0aGluLXRhYmxlIHsKICAgICAgICBjb2xvcjogIzY2NjsKICAgICAgfQoKICAgICAgLm1pbmktaGVhbHRoLXBpbGwgewogICAgICAgIHdpZHRoOiAxMzBweDsKICAgICAgfQoKICAgICAgLm1pbmktaGVhbHRoLXBpbGwgPiBkaXYgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogNjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgICNldmVudC1jb3VudHMtdGggewogICAgICAgIHBhZGRpbmc6IDAgMCAwIDEwcHg7CiAgICAgIH0KCiAgICAgIC5uZWdhdGl2ZS1pbmYtbWluaS1oZWFsdGgtcGlsbC1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2IoMjU1LCAxNDEsIDApOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICB9CgogICAgICAucG9zaXRpdmUtaW5mLW1pbmktaGVhbHRoLXBpbGwtc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiKDAsIDYyLCAyMTIpOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICB9CgogICAgICAubmFuLW1pbmktaGVhbHRoLXBpbGwtc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiKDIwNCwgNDcsIDQ0KTsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgfQoKICAgICAgLm5lZ2F0aXZlLWluZi1taW5pLWhlYWx0aC1waWxsLXNlY3Rpb24sCiAgICAgIC5wb3NpdGl2ZS1pbmYtbWluaS1oZWFsdGgtcGlsbC1zZWN0aW9uLAogICAgICAubmFuLW1pbmktaGVhbHRoLXBpbGwtc2VjdGlvbiB7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBtYXJnaW46IDAgMCAwIDEwcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAubm8tbnVtZXJpYy1hbGVydHMtbm90aWZpY2F0aW9uIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8cGFwZXItbWF0ZXJpYWwgZWxldmF0aW9uPSIxIiBjbGFzcz0iY2FyZCBoZWFsdGgtcGlsbC1sZWdlbmQiPgogICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+CiAgICAgICAgRW5hYmxlIGFsbCAobm90IGp1c3Qgc2FtcGxlZCkgc3RlcHMuIFJlcXVpcmVzIHNsb3cgZGlzayByZWFkLgogICAgICA8L2Rpdj4KICAgICAgPHBhcGVyLXRvZ2dsZS1idXR0b24KICAgICAgICBpZD0iZW5hYmxlQWxsU3RlcHNNb2RlVG9nZ2xlIgogICAgICAgIGNoZWNrZWQ9Int7YWxsU3RlcHNNb2RlRW5hYmxlZH19IgogICAgICA+CiAgICAgIDwvcGFwZXItdG9nZ2xlLWJ1dHRvbj4KICAgICAgPGgyPgogICAgICAgIFN0ZXAgb2YgSGVhbHRoIFBpbGxzOgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1thbGxTdGVwc01vZGVFbmFibGVkXV0iPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9Im51bWJlciIKICAgICAgICAgICAgaWQ9ImhlYWx0aC1waWxsLXN0ZXAtbnVtYmVyLWlucHV0IgogICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgIG1heD0iW1tfYmlnZ2VzdFN0ZXBFdmVyU2Vlbl1dIgogICAgICAgICAgICB2YWx1ZT0ie3tzcGVjaWZpY0hlYWx0aFBpbGxTdGVwOjppbnB1dH19IgogICAgICAgICAgLz4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shYWxsU3RlcHNNb2RlRW5hYmxlZF1dIj4KICAgICAgICAgIFtbX2N1cnJlbnRTdGVwRGlzcGxheVZhbHVlXV0KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDxwYXBlci1zcGlubmVyLWxpdGUKICAgICAgICAgIGFjdGl2ZQogICAgICAgICAgaGlkZGVuJD0iW1shYXJlSGVhbHRoUGlsbHNMb2FkaW5nXV0iCiAgICAgICAgICBpZD0iaGVhbHRoLXBpbGxzLWxvYWRpbmctc3Bpbm5lciIKICAgICAgICA+PC9wYXBlci1zcGlubmVyLWxpdGU+CiAgICAgIDwvaDI+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1thbGxTdGVwc01vZGVFbmFibGVkXV0iPgogICAgICAgIDxwYXBlci1zbGlkZXIKICAgICAgICAgIGlkPSJoZWFsdGgtcGlsbC1zdGVwLXNsaWRlciIKICAgICAgICAgIGltbWVkaWF0ZS12YWx1ZT0ie3tzcGVjaWZpY0hlYWx0aFBpbGxTdGVwfX0iCiAgICAgICAgICBtYXg9IltbX2JpZ2dlc3RTdGVwRXZlclNlZW5dXSIKICAgICAgICAgIHNuYXBzCiAgICAgICAgICBzdGVwPSIxIgogICAgICAgICAgdmFsdWU9Int7c3BlY2lmaWNIZWFsdGhQaWxsU3RlcH19IgogICAgICAgID48L3BhcGVyLXNsaWRlcj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFhbGxTdGVwc01vZGVFbmFibGVkXV0iPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfbWF4U3RlcEluZGV4XV0iPgogICAgICAgICAgPHBhcGVyLXNsaWRlcgogICAgICAgICAgICBpZD0iaGVhbHRoLXBpbGwtc3RlcC1zbGlkZXIiCiAgICAgICAgICAgIGltbWVkaWF0ZS12YWx1ZT0ie3toZWFsdGhQaWxsU3RlcEluZGV4fX0iCiAgICAgICAgICAgIG1heD0iW1tfbWF4U3RlcEluZGV4XV0iCiAgICAgICAgICAgIHNuYXBzCiAgICAgICAgICAgIHN0ZXA9IjEiCiAgICAgICAgICAgIHZhbHVlPSJ7e2hlYWx0aFBpbGxTdGVwSW5kZXh9fSIKICAgICAgICAgID48L3BhcGVyLXNsaWRlcj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L3RlbXBsYXRlPgogICAgICA8aDI+CiAgICAgICAgSGVhbHRoIFBpbGwKICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbaGVhbHRoUGlsbFZhbHVlc0ZvclNlbGVjdGVkTm9kZV1dIj4KICAgICAgICAgIENvdW50cyBmb3IgU2VsZWN0ZWQgTm9kZQogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFoZWFsdGhQaWxsVmFsdWVzRm9yU2VsZWN0ZWROb2RlXV0iPgogICAgICAgICAgTGVnZW5kCiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9oMj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1toZWFsdGhQaWxsRW50cmllc11dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFsdGgtcGlsbC1lbnRyeSI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJjb2xvci1wcmV2aWV3IgogICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZDpbW2l0ZW0uYmFja2dyb3VuZF9jb2xvcl1dIgogICAgICAgICAgPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItbGFiZWwiPltbaXRlbS5sYWJlbF1dPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZW5zb3ItY291bnQiPgogICAgICAgICAgICBbW19jb21wdXRlVGVuc29yQ291bnRTdHJpbmcoaGVhbHRoUGlsbFZhbHVlc0ZvclNlbGVjdGVkTm9kZSwKICAgICAgICAgICAgaW5kZXgpXV0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgICA8ZGl2IGhpZGRlbiQ9IltbIV9oYXNEZWJ1Z2dlck51bWVyaWNBbGVydHMoZGVidWdnZXJOdW1lcmljQWxlcnRzKV1dIj4KICAgICAgICA8aDIgaWQ9Im51bWVyaWMtYWxlcnRzLWhlYWRlciI+TnVtZXJpYyBBbGVydHM8L2gyPgogICAgICAgIDxwPkFsZXJ0cyBhcmUgc29ydGVkIGZyb20gdG9wIHRvIGJvdHRvbSBieSBpbmNyZWFzaW5nIHRpbWVzdGFtcC48L3A+CiAgICAgICAgPGRpdiBpZD0ibnVtZXJpYy1hbGVydHMtdGFibGUtY29udGFpbmVyIj4KICAgICAgICAgIDx0YWJsZSBpZD0ibnVtZXJpYy1hbGVydHMtdGFibGUiPgogICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRoPkZpcnN0IE9mZmVuc2U8L3RoPgogICAgICAgICAgICAgICAgPHRoPlRlbnNvciAoRGV2aWNlKTwvdGg+CiAgICAgICAgICAgICAgICA8dGggaWQ9ImV2ZW50LWNvdW50cy10aCI+RXZlbnQgQ291bnRzPC90aD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICA8dGJvZHkgaWQ9Im51bWVyaWMtYWxlcnRzLWJvZHkiPjwvdGJvZHk+CiAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPHRlbXBsYXRlCiAgICAgICAgaXM9ImRvbS1pZiIKICAgICAgICBpZj0iW1shX2hhc0RlYnVnZ2VyTnVtZXJpY0FsZXJ0cyhkZWJ1Z2dlck51bWVyaWNBbGVydHMpXV0iCiAgICAgID4KICAgICAgICA8cCBjbGFzcz0ibm8tbnVtZXJpYy1hbGVydHMtbm90aWZpY2F0aW9uIj4KICAgICAgICAgIE5vIG51bWVyaWMgYWxlcnRzIHNvIGZhci4gVGhhdCBpcyBsaWtlbHkgZ29vZC4gQWxlcnRzIGluZGljYXRlIHRoZQogICAgICAgICAgcHJlc2VuY2Ugb2YgTmFOIG9yICgrLy0pIEluZmluaXR5IHZhbHVlcywgd2hpY2ggbWF5IGJlIGNvbmNlcm5pbmcuCiAgICAgICAgPC9wPgogICAgICA8L3RlbXBsYXRlPgogICAgPC9wYXBlci1tYXRlcmlhbD4KICBgO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLGxvKV0sY28ucHJvdG90eXBlLCJyZW5kZXJIaWVyYXJjaHkiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheSxub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sY28ucHJvdG90eXBlLCJkZWJ1Z2dlck51bWVyaWNBbGVydHMiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sY28ucHJvdG90eXBlLCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxjby5wcm90b3R5cGUsImhlYWx0aFBpbGxTdGVwSW5kZXgiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLGNvLnByb3RvdHlwZSwic3BlY2lmaWNIZWFsdGhQaWxsU3RlcCIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sY28ucHJvdG90eXBlLCJzZWxlY3RlZE5vZGUiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLGNvLnByb3RvdHlwZSwiaGlnaGxpZ2h0ZWROb2RlIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxjby5wcm90b3R5cGUsInNlbGVjdGVkTm9kZUluY2x1ZGUiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLGNvLnByb3RvdHlwZSwiYXJlSGVhbHRoUGlsbHNMb2FkaW5nIix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSxjby5wcm90b3R5cGUsImhlYWx0aFBpbGxFbnRyaWVzIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbixub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sY28ucHJvdG90eXBlLCJhbGxTdGVwc01vZGVFbmFibGVkIix2b2lkIDApO0UoW1J0KCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIiwiaGVhbHRoUGlsbFN0ZXBJbmRleCIsInNlbGVjdGVkTm9kZSIsImFsbFN0ZXBzTW9kZUVuYWJsZWQiLCJhcmVIZWFsdGhQaWxsc0xvYWRpbmciKSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxjby5wcm90b3R5cGUsImhlYWx0aFBpbGxWYWx1ZXNGb3JTZWxlY3RlZE5vZGUiLG51bGwpO0UoW1J0KCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIiwiaGVhbHRoUGlsbFN0ZXBJbmRleCIsImFsbFN0ZXBzTW9kZUVuYWJsZWQiLCJzcGVjaWZpY0hlYWx0aFBpbGxTdGVwIiwiYXJlSGVhbHRoUGlsbHNMb2FkaW5nIiksdygiZGVzaWduOnR5cGUiLE9iamVjdCksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sY28ucHJvdG90eXBlLCJfY3VycmVudFN0ZXBEaXNwbGF5VmFsdWUiLG51bGwpO0UoW1J0KCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIiksdygiZGVzaWduOnR5cGUiLE51bWJlciksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sY28ucHJvdG90eXBlLCJfYmlnZ2VzdFN0ZXBFdmVyU2VlbiIsbnVsbCk7RShbUnQoIm5vZGVOYW1lc1RvSGVhbHRoUGlsbHMiKSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxjby5wcm90b3R5cGUsIl9tYXhTdGVwSW5kZXgiLG51bGwpO0UoW0J0KCJkZWJ1Z2dlck51bWVyaWNBbGVydHMiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGNvLnByb3RvdHlwZSwiX3VwZGF0ZUFsZXJ0c0xpc3QiLG51bGwpO2NvPUUoW3l0KCJ0Zi1ncmFwaC1kZWJ1Z2dlci1kYXRhLWNhcmQiKV0sY28pO3ZhciBvY3Q9e307WnMob2N0LHtHcmFwaEljb25UeXBlOigpPT5pMX0pO3ZhciBpMTsoZnVuY3Rpb24oZSl7ZS5DT05TVD0iQ09OU1QiLGUuTUVUQT0iTUVUQSIsZS5PUD0iT1AiLGUuU0VSSUVTPSJTRVJJRVMiLGUuU1VNTUFSWT0iU1VNTUFSWSJ9KShpMXx8KGkxPXt9KSk7dmFyIFp1PWNsYXNzIGV4dGVuZHMgR3QoX28obXQpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy52ZXJ0aWNhbD0hMSx0aGlzLmZpbGxPdmVycmlkZT1udWxsLHRoaXMuc3Ryb2tlT3ZlcnJpZGU9bnVsbCx0aGlzLmhlaWdodD0yMCx0aGlzLmZhZGVkPSExfWdldFN2Z0RlZmluYWJsZUVsZW1lbnQoKXtyZXR1cm4gdGhpcy4kLnN2Z0RlZnN9Z2V0IF9maWxsKCl7dmFyIHQ9dGhpcy50eXBlLHI9dGhpcy5maWxsT3ZlcnJpZGU7aWYociE9bnVsbClyZXR1cm4gcjtzd2l0Y2godCl7Y2FzZSBpMS5NRVRBOnJldHVybiBLdS5ERUZBVUxUX0ZJTEw7Y2FzZSBpMS5TRVJJRVM6cmV0dXJuIFZsdC5ERUZBVUxUX0ZJTEw7ZGVmYXVsdDpyZXR1cm4gdjAuREVGQVVMVF9GSUxMfX1nZXQgX3N0cm9rZSgpe3ZhciB0PXRoaXMudHlwZSxyPXRoaXMuc3Ryb2tlT3ZlcnJpZGU7aWYociE9bnVsbClyZXR1cm4gcjtzd2l0Y2godCl7Y2FzZSBpMS5NRVRBOnJldHVybiBLdS5ERUZBVUxUX1NUUk9LRTtjYXNlIGkxLlNFUklFUzpyZXR1cm4gVmx0LkRFRkFVTFRfU1RST0tFO2RlZmF1bHQ6cmV0dXJuIHYwLkRFRkFVTFRfU1RST0tFfX1faXNUeXBlKHQscil7cmV0dXJuIHQ9PT1yfV9mYWRlZENsYXNzKHQscil7cmV0dXJuIHQ/ImZhZGVkLSIrcjoiIn19O1p1LnRlbXBsYXRlPVFgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBmb250LXNpemU6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KC5kYXJrLW1vZGUpIHN2ZyB7CiAgICAgICAgZmlsdGVyOiBpbnZlcnQoMSk7CiAgICAgIH0KCiAgICAgIC5mYWRlZC1yZWN0IHsKICAgICAgICBmaWxsOiB1cmwoI3JlY3RIYXRjaCk7CiAgICAgIH0KCiAgICAgIC5mYWRlZC1lbGxpcHNlIHsKICAgICAgICBmaWxsOiB1cmwoI2VsbGlwc2VIYXRjaCk7CiAgICAgIH0KCiAgICAgIC5mYWRlZC1yZWN0LAogICAgICAuZmFkZWQtZWxsaXBzZSwKICAgICAgLmZhZGVkLXNlcmllcyB7CiAgICAgICAgc3Ryb2tlOiB2YXIoLS10Yi1ncmFwaC1mYWRlZCkgIWltcG9ydGFudDsKICAgICAgfQogICAgICAjcmVjdEhhdGNoIGxpbmUsCiAgICAgICNlbGxpcHNlSGF0Y2ggbGluZSB7CiAgICAgICAgY29sb3I6ICNlMGQ0YjMgIWltcG9ydGFudDsKICAgICAgICBmaWxsOiB3aGl0ZTsKICAgICAgICBzdHJva2U6ICNlMGQ0YjMgIWltcG9ydGFudDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDwhLS0gU1ZHIGZvciBkZWZpbml0aW9ucyAtLT4KICAgIDxzdmcgaGVpZ2h0PSIwIiB3aWR0aD0iMCIgaWQ9InN2Z0RlZnMiPgogICAgICA8ZGVmcz4KICAgICAgICA8IS0tIEhhdGNoIHBhdHRlcm5zIGZvciBmYWRlZCBvdXQgbm9kZXMuIC0tPgogICAgICAgIDxwYXR0ZXJuCiAgICAgICAgICBpZD0icmVjdEhhdGNoIgogICAgICAgICAgcGF0dGVyblRyYW5zZm9ybT0icm90YXRlKDQ1IDAgMCkiCiAgICAgICAgICB3aWR0aD0iNSIKICAgICAgICAgIGhlaWdodD0iNSIKICAgICAgICAgIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICAgPgogICAgICAgICAgPGxpbmUgeDE9IjAiIHkxPSIwIiB4Mj0iMCIgeTI9IjUiIHN0eWxlPSJzdHJva2Utd2lkdGg6IDEiPjwvbGluZT4KICAgICAgICA8L3BhdHRlcm4+CiAgICAgICAgPHBhdHRlcm4KICAgICAgICAgIGlkPSJlbGxpcHNlSGF0Y2giCiAgICAgICAgICBwYXR0ZXJuVHJhbnNmb3JtPSJyb3RhdGUoNDUgMCAwKSIKICAgICAgICAgIHdpZHRoPSIyIgogICAgICAgICAgaGVpZ2h0PSIyIgogICAgICAgICAgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgICA+CiAgICAgICAgICA8bGluZSB4MT0iMCIgeTE9IjAiIHgyPSIwIiB5Mj0iMiIgc3R5bGU9InN0cm9rZS13aWR0aDogMSI+PC9saW5lPgogICAgICAgIDwvcGF0dGVybj4KICAgICAgICA8IS0tIFRlbXBsYXRlIGZvciBhbiBPcCBub2RlIGVsbGlwc2UuIC0tPgogICAgICAgIDxlbGxpcHNlCiAgICAgICAgICBpZD0ib3Atbm9kZS1zdGFtcCIKICAgICAgICAgIHJ4PSI3LjUiCiAgICAgICAgICByeT0iMyIKICAgICAgICAgIHN0cm9rZT0iaW5oZXJpdCIKICAgICAgICAgIGZpbGw9ImluaGVyaXQiCiAgICAgICAgPjwvZWxsaXBzZT4KICAgICAgICA8IS0tIFRlbXBsYXRlIGZvciBhbiBPcCBub2RlIGFubm90YXRpb24gZWxsaXBzZSAoc21hbGxlcikuIC0tPgogICAgICAgIDxlbGxpcHNlCiAgICAgICAgICBpZD0ib3Atbm9kZS1hbm5vdGF0aW9uLXN0YW1wIgogICAgICAgICAgcng9IjUiCiAgICAgICAgICByeT0iMiIKICAgICAgICAgIHN0cm9rZT0iaW5oZXJpdCIKICAgICAgICAgIGZpbGw9ImluaGVyaXQiCiAgICAgICAgPjwvZWxsaXBzZT4KICAgICAgICA8IS0tIFZlcnRpY2FsbHkgc3RhY2tlZCBzZXJpZXMgb2YgT3Agbm9kZXMgd2hlbiB1bmV4cGFuZGVkLiAtLT4KICAgICAgICA8ZyBpZD0ib3Atc2VyaWVzLXZlcnRpY2FsLXN0YW1wIj4KICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjgiIHk9IjkiPjwvdXNlPgogICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjb3Atbm9kZS1zdGFtcCIgeD0iOCIgeT0iNiI+PC91c2U+CiAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSI4IiB5PSIzIj48L3VzZT4KICAgICAgICA8L2c+CiAgICAgICAgPGcgaWQ9Im9wLXNlcmllcy1ob3Jpem9udGFsLXN0YW1wIj4KICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjE2IiB5PSI0Ij48L3VzZT4KICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjEyIiB5PSI0Ij48L3VzZT4KICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjgiIHk9IjQiPjwvdXNlPgogICAgICAgIDwvZz4KICAgICAgICA8ZwogICAgICAgICAgaWQ9InN1bW1hcnktaWNvbiIKICAgICAgICAgIGZpbGw9IiM4NDg0ODQiCiAgICAgICAgICBoZWlnaHQ9IjEyIgogICAgICAgICAgdmlld0JveD0iMCAwIDI0IDI0IgogICAgICAgICAgd2lkdGg9IjEyIgogICAgICAgID4KICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOSAxN0g3di03aDJ2N3ptNCAwaC0yVjdoMnYxMHptNCAwaC0ydi00aDJ2NHoiCiAgICAgICAgICA+PC9wYXRoPgogICAgICAgIDwvZz4KICAgICAgPC9kZWZzPgogICAgPC9zdmc+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzVHlwZSh0eXBlLCAnQ09OU1QnKV1dIj4KICAgICAgPHN2ZwogICAgICAgIGhlaWdodCQ9IltbaGVpZ2h0XV0iCiAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaWQgbWVldCIKICAgICAgICB2aWV3Qm94PSIwIDAgMTAgMTAiCiAgICAgID4KICAgICAgICA8Y2lyY2xlCiAgICAgICAgICBjeD0iNSIKICAgICAgICAgIGN5PSI1IgogICAgICAgICAgcj0iMyIKICAgICAgICAgIGZpbGwkPSJbW19maWxsXV0iCiAgICAgICAgICBzdHJva2UkPSJbW19zdHJva2VdXSIKICAgICAgICA+PC9jaXJjbGU+CiAgICAgIDwvc3ZnPgogICAgPC90ZW1wbGF0ZT4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaXNUeXBlKHR5cGUsICdTVU1NQVJZJyldXSI+CiAgICAgIDxzdmcKICAgICAgICB3aWR0aCQ9IltbaGVpZ2h0XV0iCiAgICAgICAgaGVpZ2h0JD0iW1toZWlnaHRdXSIKICAgICAgICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgICAgICAgZmlsbD0iIzg0ODQ4NCIKICAgICAgPgogICAgICAgIDxwYXRoCiAgICAgICAgICBkPSJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTkgMTdIN3YtN2gydjd6bTQgMGgtMlY3aDJ2MTB6bTQgMGgtMnYtNGgydjR6IgogICAgICAgID48L3BhdGg+CiAgICAgIDwvc3ZnPgogICAgPC90ZW1wbGF0ZT4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaXNUeXBlKHR5cGUsICdPUCcpXV0iPgogICAgICA8c3ZnCiAgICAgICAgaGVpZ2h0JD0iW1toZWlnaHRdXSIKICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pZCBtZWV0IgogICAgICAgIHZpZXdCb3g9IjAgMCAxNiA4IgogICAgICA+CiAgICAgICAgPHVzZQogICAgICAgICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgICAgICAgICB4bGluazpocmVmPSIjb3Atbm9kZS1zdGFtcCIKICAgICAgICAgIGZpbGwkPSJbW19maWxsXV0iCiAgICAgICAgICBzdHJva2UkPSJbW19zdHJva2VdXSIKICAgICAgICAgIGNsYXNzJD0ie3tfZmFkZWRDbGFzcyhmYWRlZCwgJ2VsbGlwc2UnKX19IgogICAgICAgICAgeD0iOCIKICAgICAgICAgIHk9IjQiCiAgICAgICAgPjwvdXNlPgogICAgICA8L3N2Zz4KICAgIDwvdGVtcGxhdGU+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzVHlwZSh0eXBlLCAnTUVUQScpXV0iPgogICAgICA8c3ZnCiAgICAgICAgaGVpZ2h0JD0iW1toZWlnaHRdXSIKICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pZCBtZWV0IgogICAgICAgIHZpZXdCb3g9IjAgMCAzNyAxNiIKICAgICAgPgogICAgICAgIDxyZWN0CiAgICAgICAgICB4PSIxIgogICAgICAgICAgeT0iMSIKICAgICAgICAgIGZpbGwkPSJbW19maWxsXV0iCiAgICAgICAgICBzdHJva2UkPSJbW19zdHJva2VdXSIKICAgICAgICAgIGNsYXNzJD0ie3tfZmFkZWRDbGFzcyhmYWRlZCwgJ3JlY3QnKX19IgogICAgICAgICAgc3Ryb2tlLXdpZHRoPSIycHgiCiAgICAgICAgICBoZWlnaHQ9IjE0IgogICAgICAgICAgd2lkdGg9IjM1IgogICAgICAgICAgcng9IjUiCiAgICAgICAgICByeT0iNSIKICAgICAgICA+PC9yZWN0PgogICAgICA8L3N2Zz4KICAgIDwvdGVtcGxhdGU+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzVHlwZSh0eXBlLCAnU0VSSUVTJyldXSI+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1t2ZXJ0aWNhbF1dIj4KICAgICAgICA8c3ZnCiAgICAgICAgICBoZWlnaHQkPSJbW2hlaWdodF1dIgogICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaWQgbWVldCIKICAgICAgICAgIHZpZXdCb3g9IjAgMCAxNiAxNSIKICAgICAgICA+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgICAgICAgICB4bGluazpocmVmPSIjb3Atc2VyaWVzLXZlcnRpY2FsLXN0YW1wIgogICAgICAgICAgICBmaWxsJD0iW1tfZmlsbF1dIgogICAgICAgICAgICBzdHJva2UkPSJbW19zdHJva2VdXSIKICAgICAgICAgICAgY2xhc3MkPSJ7e19mYWRlZENsYXNzKGZhZGVkLCAnc2VyaWVzJyl9fSIKICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgeT0iMiIKICAgICAgICAgID48L3VzZT4KICAgICAgICA8L3N2Zz4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyF2ZXJ0aWNhbF1dIj4KICAgICAgICA8c3ZnCiAgICAgICAgICBoZWlnaHQkPSJbW2hlaWdodF1dIgogICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaWQgbWVldCIKICAgICAgICAgIHZpZXdCb3g9IjAgMCAyNCAxMCIKICAgICAgICA+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgICAgICAgICB4bGluazpocmVmPSIjb3Atc2VyaWVzLWhvcml6b250YWwtc3RhbXAiCiAgICAgICAgICAgIGZpbGwkPSJbW19maWxsXV0iCiAgICAgICAgICAgIHN0cm9rZSQ9IltbX3N0cm9rZV1dIgogICAgICAgICAgICBjbGFzcyQ9Int7X2ZhZGVkQ2xhc3MoZmFkZWQsICdzZXJpZXMnKX19IgogICAgICAgICAgICB4PSIwIgogICAgICAgICAgICB5PSIxIgogICAgICAgICAgPjwvdXNlPgogICAgICAgIDwvc3ZnPgogICAgICA8L3RlbXBsYXRlPgogICAgPC90ZW1wbGF0ZT4KICBgO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLFp1LnByb3RvdHlwZSwidHlwZSIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFp1LnByb3RvdHlwZSwidmVydGljYWwiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWnUucHJvdG90eXBlLCJmaWxsT3ZlcnJpZGUiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWnUucHJvdG90eXBlLCJzdHJva2VPdmVycmlkZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxadS5wcm90b3R5cGUsImhlaWdodCIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFp1LnByb3RvdHlwZSwiZmFkZWQiLHZvaWQgMCk7RShbUnQoInR5cGUiLCJmaWxsT3ZlcnJpZGUiKSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxadS5wcm90b3R5cGUsIl9maWxsIixudWxsKTtFKFtSdCgidHlwZSIsInN0cm9rZU92ZXJyaWRlIiksdygiZGVzaWduOnR5cGUiLFN0cmluZyksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sWnUucHJvdG90eXBlLCJfc3Ryb2tlIixudWxsKTtadT1FKFt5dCgidGYtZ3JhcGgtaWNvbiIpXSxadSk7dmFyIEhzPWNsYXNzIGV4dGVuZHMgR3QobXQpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLm5vZGU9bnVsbCx0aGlzLnJlbmRlckluZm89bnVsbCx0aGlzLmNvbG9yQnk9R24uU1RSVUNUVVJFLHRoaXMudGVtcGxhdGVJbmRleD1udWxsLHRoaXMudHlwZT1udWxsLHRoaXMudmVydGljYWw9ITEsdGhpcy5jb25zdD0hMSx0aGlzLnN1bW1hcnk9ITEsdGhpcy5maWxsPW51bGwsdGhpcy5oZWlnaHQ9MjB9X2NvbXB1dGVGaWxsT3ZlcnJpZGUodCxyLG4saSxvKXtyZXR1cm4gdCYmciYmaT9rSChpLG4sciwhMSk6b31fZ2V0U3Ryb2tlT3ZlcnJpZGUodCl7cmV0dXJuIHQ/dGN0KHQpOm51bGx9X2dldFR5cGUodCxyLG4saSl7bGV0e0dyYXBoSWNvblR5cGU6b309b2N0O2lmKHQpc3dpdGNoKHQudHlwZSl7Y2FzZSBqdC5PUDp7bGV0IGE9dC5vcDtyZXR1cm4gdHlwZW9mIGEhPSJzdHJpbmciP28uT1A6YT09PSJDb25zdCJ8fG4/by5DT05TVDphLmVuZHNXaXRoKCJTdW1tYXJ5Iil8fHI/by5TVU1NQVJZOm8uT1B9Y2FzZSBqdC5NRVRBOnJldHVybiBvLk1FVEE7Y2FzZSBqdC5TRVJJRVM6cmV0dXJuIG8uU0VSSUVTfXJldHVybiBpfV9pc1ZlcnRpY2FsKHQscil7cmV0dXJuIHQ/dC5oYXNOb25Db250cm9sRWRnZXM6ISFyfV9nZXRGYWRlZCh0KXtyZXR1cm4gdCYmdC5pc0ZhZGVkT3V0fV9vbkZpbGxPdmVycmlkZUNoYW5nZWQodCxyKXtsZXR7bm9kZTpuLHJlbmRlckluZm86aSxjb2xvckJ5Om8sdGVtcGxhdGVJbmRleDphfT10aGlzO3QhPT1yJiZMSCh0aGlzLiQuaWNvbi5nZXRTdmdEZWZpbmFibGVFbGVtZW50KCkpLG4mJmkmJmEmJmtIKGEsbyxpLCExLHRoaXMuJC5pY29uLmdldFN2Z0RlZmluYWJsZUVsZW1lbnQoKSl9fTtIcy50ZW1wbGF0ZT1RYAogICAgPHN0eWxlPgogICAgICB0Zi1ncmFwaC1pY29uIHsKICAgICAgICAtLXRiLWdyYXBoLWZhZGVkOiB2YXIoLS10Yi1ncmFwaC1mYWRlZCk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8dGYtZ3JhcGgtaWNvbgogICAgICBpZD0iaWNvbiIKICAgICAgdHlwZT0iW1tfZ2V0VHlwZShub2RlLCBzdW1tYXJ5LCBjb25zdCwgdHlwZSldXSIKICAgICAgaGVpZ2h0PSJbW2hlaWdodF1dIgogICAgICBmaWxsLW92ZXJyaWRlPSJbW19maWxsT3ZlcnJpZGVdXSIKICAgICAgc3Ryb2tlLW92ZXJyaWRlPSJbW19nZXRTdHJva2VPdmVycmlkZShfZmlsbE92ZXJyaWRlKV1dIgogICAgICBmYWRlZD0iW1tfZ2V0RmFkZWQocmVuZGVySW5mbyldXSIKICAgICAgdmVydGljYWw9IltbX2lzVmVydGljYWwobm9kZSwgdmVydGljYWwpXV0iCiAgICA+PC90Zi1ncmFwaC1pY29uPgogIGA7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSHMucHJvdG90eXBlLCJub2RlIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLEhzLnByb3RvdHlwZSwicmVuZGVySW5mbyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxIcy5wcm90b3R5cGUsImNvbG9yQnkiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSHMucHJvdG90eXBlLCJ0ZW1wbGF0ZUluZGV4Iix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLEhzLnByb3RvdHlwZSwidHlwZSIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLEhzLnByb3RvdHlwZSwidmVydGljYWwiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxIcy5wcm90b3R5cGUsImNvbnN0Iix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSHMucHJvdG90eXBlLCJzdW1tYXJ5Iix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLEhzLnByb3RvdHlwZSwiZmlsbCIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxIcy5wcm90b3R5cGUsImhlaWdodCIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZyxjb21wdXRlZDoiX2NvbXB1dGVGaWxsT3ZlcnJpZGUobm9kZSwgcmVuZGVySW5mbywgY29sb3JCeSwgdGVtcGxhdGVJbmRleCwgZmlsbCkiLG9ic2VydmVyOiJfb25GaWxsT3ZlcnJpZGVDaGFuZ2VkIn0pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxIcy5wcm90b3R5cGUsIl9maWxsT3ZlcnJpZGUiLHZvaWQgMCk7SHM9RShbeXQoInRmLW5vZGUtaWNvbiIpXSxIcyk7dmFyIEdjPWNsYXNzIGV4dGVuZHMgR3QobXQpe19pdGVtVHlwZUNoYW5nZWQoKXt0aGlzLml0ZW1UeXBlIT09InN1Ym5vZGUiP3RoaXMuJFsibGlzdC1pdGVtIl0uY2xhc3NMaXN0LmFkZCgiY2xpY2thYmxlIik6dGhpcy4kWyJsaXN0LWl0ZW0iXS5jbGFzc0xpc3QucmVtb3ZlKCJjbGlja2FibGUiKX1fbm9kZUxpc3RlbmVyKHQpe3RoaXMuZmlyZSgibm9kZS1saXN0LWl0ZW0tIit0LnR5cGUse25vZGVOYW1lOnRoaXMubmFtZSx0eXBlOnRoaXMuaXRlbVR5cGV9KX1fZmFkZWRDbGFzcyh0KXtyZXR1cm4gdCYmdC5pc0ZhZGVkT3V0PyJmYWRlZCI6IiJ9fTtHYy50ZW1wbGF0ZT1RYAogICAgPHN0eWxlPgogICAgICAjbGlzdC1pdGVtIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpOwogICAgICAgIGZvbnQtc2l6ZTogMTFwdDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgICNsaXN0LWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdvb2dsZS15ZWxsb3ctMTAwKTsKICAgICAgfQoKICAgICAgLmNsaWNrYWJsZSB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAjbGlzdC1pdGVtIHNwYW4gewogICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4OwogICAgICB9CgogICAgICAjbGlzdC1pdGVtLmV4Y2x1ZGVkIHNwYW4gewogICAgICAgIGNvbG9yOiAjOTk5OwogICAgICB9CgogICAgICAjbGlzdC1pdGVtIHNwYW4uZWRnZS1sYWJlbCB7CiAgICAgICAgZmxvYXQ6IHJpZ2h0OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBtYXJnaW4tbGVmdDogM3B4OwogICAgICAgIG1hcmdpbi1yaWdodDogNXB4OwogICAgICB9CgogICAgICAubm9kZS1pY29uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxcHg7CiAgICAgICAgbGVmdDogMnB4OwogICAgICB9CgogICAgICAuZmFkZWQgc3BhbiB7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLWdyYXBoLWZhZGVkKTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2CiAgICAgIGlkPSJsaXN0LWl0ZW0iCiAgICAgIG9uLW1vdXNlb3Zlcj0iX25vZGVMaXN0ZW5lciIKICAgICAgb24tbW91c2VvdXQ9Il9ub2RlTGlzdGVuZXIiCiAgICAgIG9uLWNsaWNrPSJfbm9kZUxpc3RlbmVyIgogICAgPgogICAgICA8ZGl2IGNsYXNzJD0ie3tfZmFkZWRDbGFzcyhpdGVtUmVuZGVySW5mbyl9fSI+CiAgICAgICAgPHRmLW5vZGUtaWNvbgogICAgICAgICAgY2xhc3M9Im5vZGUtaWNvbiIKICAgICAgICAgIGhlaWdodD0iMTIiCiAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICBjb2xvci1ieS1wYXJhbXM9IltbY29sb3JCeVBhcmFtc11dIgogICAgICAgICAgbm9kZT0iW1tpdGVtTm9kZV1dIgogICAgICAgICAgcmVuZGVyLWluZm89IltbaXRlbVJlbmRlckluZm9dXSIKICAgICAgICAgIHRlbXBsYXRlLWluZGV4PSJbW3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICA+CiAgICAgICAgPC90Zi1ub2RlLWljb24+CiAgICAgICAgPHNwYW4gdGl0bGUkPSJbW25hbWVdXSI+W1tuYW1lXV08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYDtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxHYy5wcm90b3R5cGUsImNhcmROb2RlIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLEdjLnByb3RvdHlwZSwiaXRlbU5vZGUiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sR2MucHJvdG90eXBlLCJlZGdlTGFiZWwiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sR2MucHJvdG90eXBlLCJpdGVtUmVuZGVySW5mbyIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxHYy5wcm90b3R5cGUsIm5hbWUiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmcsb2JzZXJ2ZXI6Il9pdGVtVHlwZUNoYW5nZWQifSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLEdjLnByb3RvdHlwZSwiaXRlbVR5cGUiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sR2MucHJvdG90eXBlLCJjb2xvckJ5Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLEdjLnByb3RvdHlwZSwiY29sb3JCeVBhcmFtcyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLEdjLnByb3RvdHlwZSwidGVtcGxhdGVJbmRleCIsdm9pZCAwKTtHYz1FKFt5dCgidGYtZ3JhcGgtb3AtY29tcGF0LWxpc3QtaXRlbSIpXSxHYyk7dmFyIHNzPWNsYXNzIGV4dGVuZHMgR3QoX28obXQpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fZXhwYW5kZWQ9ITAsdGhpcy5fb3BDb21wYXRDb2xvcj12MC5DT01QQVRJQkxFLHRoaXMuX29wSW5jb21wYXRDb2xvcj12MC5JTkNPTVBBVElCTEUsdGhpcy5fdGVtcGxhdGVJbmRleD1udWxsfV9nZXROb2RlKHQscil7cmV0dXJuIHIubm9kZSh0KX1fZ2V0UmVuZGVySW5mbyh0LHIpe3JldHVybiB0aGlzLnJlbmRlckhpZXJhcmNoeS5nZXRPckNyZWF0ZVJlbmRlck5vZGVCeU5hbWUodCl9X3RvZ2dsZUV4cGFuZGVkKCl7dGhpcy5fZXhwYW5kZWQ9IXRoaXMuX2V4cGFuZGVkfV9nZXRUb2dnbGVJY29uKHQpe3JldHVybiB0PyJleHBhbmQtbGVzcyI6ImV4cGFuZC1tb3JlIn1fcmVzaXplTGlzdCh0KXt2YXIgcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpO3ImJnIuZmlyZSgiaXJvbi1yZXNpemUiKX1nZXQgX2luY29tcGF0aWJsZU9wTm9kZXMoKXtsZXQgdD10aGlzLmdyYXBoSGllcmFyY2h5O3JldHVybiF0fHwhdC5yb290P1tdOih0aGlzLmFzeW5jKHRoaXMuX3Jlc2l6ZUxpc3QuYmluZCh0aGlzLCIjaW5jb21wYXRpYmxlT3BzTGlzdCIpKSxkbGUodCkpfWdldCBfb3BDb21wYXRTY29yZSgpe3ZhciB0PXRoaXMuZ3JhcGhIaWVyYXJjaHk7aWYodCYmdC5yb290KXt2YXIgcj10LnJvb3Qsbj1yLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZSxpPXIuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGU7aWYobj09MCYmaT09MClyZXR1cm4gMDt2YXIgbz1uK2k7cmV0dXJuIE1hdGguZmxvb3IoMTAwKm4vbykvMTAwfXJldHVybiAwfWdldCBfb3BDb21wYXRTY29yZUxhYmVsKCl7dmFyIHQ9dGhpcy5fb3BDb21wYXRTY29yZTtyZXR1cm4geG4oIi4wJSIpKHQpfWdldCBfdG90YWxJbmNvbXBhdE9wcygpe3ZhciB0PXRoaXMuZ3JhcGhIaWVyYXJjaHk7cmV0dXJuIHQmJnQucm9vdD90LnJvb3QuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGU6MH1fZ3JhcGhIaWVyYXJjaHlDaGFuZ2VkKCl7dGhpcy5fdGVtcGxhdGVJbmRleD10aGlzLmdyYXBoSGllcmFyY2h5LmdldFRlbXBsYXRlSW5kZXgoKSx0aGlzLmdyYXBoSGllcmFyY2h5LmFkZExpc3RlbmVyKE9kLlRFTVBMQVRFU19VUERBVEVELCgpPT57dGhpcy5fdGVtcGxhdGVJbmRleD10aGlzLmdyYXBoSGllcmFyY2h5LmdldFRlbXBsYXRlSW5kZXgoKX0pfX07c3MudGVtcGxhdGU9UWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICB9CgogICAgICAuaW5jb21wYXRpYmxlLW9wcy1saXN0IHsKICAgICAgICBoZWlnaHQ6IDM1MHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIGlyb24tbGlzdCB7CiAgICAgICAgZmxleDogMSAxIGF1dG87CiAgICAgIH0KCiAgICAgIHBhcGVyLWl0ZW0gewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3IpOwogICAgICB9CgogICAgICBwYXBlci1pdGVtLWJvZHlbdHdvLWxpbmVdIHsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4IDRweDsKICAgICAgfQoKICAgICAgLmV4cGFuZGVkSW5mbyB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEycHQ7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5ub2RlLW5hbWUgewogICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIGZvbnQtc2l6ZTogMTRwdDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgZm9udC1zaXplOiAxMnB0OwogICAgICB9CgogICAgICAudG9nZ2xlLWJ1dHRvbiB7CiAgICAgICAgZmxvYXQ6IHJpZ2h0OwogICAgICAgIG1heC1oZWlnaHQ6IDIwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAyMHB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5ub24tY29udHJvbC1saXN0LWl0ZW0gewogICAgICAgIHBhZGRpbmctbGVmdDogMTBweDsKICAgICAgfQoKICAgICAgZGl2Lm9wLWNvbXBhdC1kaXNwbGF5IHsKICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLyoqCiAgICAgICAqIFNhZGx5LCBiZWNhdXNlIHRoZSB3aG9sZSBib2R5IGlzIGludmVydGVkIGluIGNvbG9yLCBsZWdlbmRzIGFsc28gbmVlZAogICAgICAgKiB0byBiZSBpbnZlcnRlZC4KICAgICAgICoqLwogICAgICA6aG9zdCguZGFyay1tb2RlKSBkaXYub3AtY29tcGF0LWRpc3BsYXkgewogICAgICAgIGZpbHRlcjogaW52ZXJ0KDEpOwogICAgICB9CgogICAgICBzdmcub3AtY29tcGF0IHsKICAgICAgICB3aWR0aDogMjUwcHg7CiAgICAgICAgaGVpZ2h0OiAyNXB4OwogICAgICAgIGZsb2F0OiBsZWZ0OwogICAgICB9CgogICAgICBkaXYub3AtY29tcGF0LXZhbHVlIHsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogYmxhY2s7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHBhcGVyLWl0ZW0+CiAgICAgIDxwYXBlci1pdGVtLWJvZHkgdHdvLWxpbmU+CiAgICAgICAgPGRpdj4KICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgICBpY29uPSJ7e19nZXRUb2dnbGVJY29uKF9leHBhbmRlZCl9fSIKICAgICAgICAgICAgb24tY2xpY2s9Il90b2dnbGVFeHBhbmRlZCIKICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS1idXR0b24iCiAgICAgICAgICA+CiAgICAgICAgICA8L3BhcGVyLWljb24tYnV0dG9uPgogICAgICAgICAgPGRpdiBjbGFzcz0ibm9kZS1uYW1lIiBpZD0ibm9kZXRpdGxlIj5bW25vZGVUaXRsZV1dPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzZWNvbmRhcnk+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJ0aXRsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9wLWNvbXBhdC1kaXNwbGF5Ij4KICAgICAgICAgICAgICA8c3ZnCiAgICAgICAgICAgICAgICBjbGFzcz0ib3AtY29tcGF0IgogICAgICAgICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaWQgbWVldCIKICAgICAgICAgICAgICAgIHZpZXdCb3g9IjAgMCAyNTAgMjUiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZnM+CiAgICAgICAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ib3AtY29tcGF0LWZpbGwiPgogICAgICAgICAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvciQ9IltbX29wQ29tcGF0Q29sb3JdXSI+PC9zdG9wPgogICAgICAgICAgICAgICAgICAgIDxzdG9wCiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQkPSJbW19vcENvbXBhdFNjb3JlXV0iCiAgICAgICAgICAgICAgICAgICAgICBzdG9wLWNvbG9yJD0iW1tfb3BDb21wYXRDb2xvcl1dIgogICAgICAgICAgICAgICAgICAgID48L3N0b3A+CiAgICAgICAgICAgICAgICAgICAgPHN0b3AKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCQ9IltbX29wQ29tcGF0U2NvcmVdXSIKICAgICAgICAgICAgICAgICAgICAgIHN0b3AtY29sb3IkPSJbW19vcEluY29tcGF0Q29sb3JdXSIKICAgICAgICAgICAgICAgICAgICA+PC9zdG9wPgogICAgICAgICAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvciQ9IltbX29wSW5jb21wYXRDb2xvciBdXSI+PC9zdG9wPgogICAgICAgICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgICAgICAgICAgPC9kZWZzPgogICAgICAgICAgICAgICAgPHJlY3QKICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIyNSIKICAgICAgICAgICAgICAgICAgd2lkdGg9IjI1MCIKICAgICAgICAgICAgICAgICAgcng9IjUiCiAgICAgICAgICAgICAgICAgIHJ5PSI1IgogICAgICAgICAgICAgICAgICBzdHlsZT0iZmlsbDogdXJsKCcjb3AtY29tcGF0LWZpbGwnKTsiCiAgICAgICAgICAgICAgICA+PC9yZWN0PgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9wLWNvbXBhdC12YWx1ZSI+W1tfb3BDb21wYXRTY29yZUxhYmVsXV08L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9wYXBlci1pdGVtLWJvZHk+CiAgICA8L3BhcGVyLWl0ZW0+CgogICAgPGlyb24tY29sbGFwc2Ugb3BlbmVkPSJ7e19leHBhbmRlZH19Ij4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJ7e19leHBhbmRlZH19IiByZXN0YW1wPSJ0cnVlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJleHBhbmRlZEluZm8iPgogICAgICAgICAgSW5jb21wYXRpYmxlIE9wZXJhdGlvbnM6ICg8c3Bhbj5bW190b3RhbEluY29tcGF0T3BzXV08L3NwYW4+KQogICAgICAgICAgPGlyb24tbGlzdAogICAgICAgICAgICBjbGFzcz0iaW5jb21wYXRpYmxlLW9wcy1saXN0IgogICAgICAgICAgICBpZD0iaW5jb21wYXRpYmxlT3BzTGlzdCIKICAgICAgICAgICAgaXRlbXM9IltbX2luY29tcGF0aWJsZU9wTm9kZXNdXSIKICAgICAgICAgID4KICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgIDx0Zi1ncmFwaC1vcC1jb21wYXQtbGlzdC1pdGVtCiAgICAgICAgICAgICAgICBjbGFzcz0ibm9uLWNvbnRyb2wtbGlzdC1pdGVtIgogICAgICAgICAgICAgICAgaXRlbS1ub2RlPSJbW2l0ZW1dXSIKICAgICAgICAgICAgICAgIGl0ZW0tcmVuZGVyLWluZm89IltbX2dldFJlbmRlckluZm8oaXRlbS5uYW1lLCByZW5kZXJIaWVyYXJjaHkpXV0iCiAgICAgICAgICAgICAgICBuYW1lPSJbW2l0ZW0ubmFtZV1dIgogICAgICAgICAgICAgICAgdGVtcGxhdGUtaW5kZXg9IltbX3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICAgICAgICAgIGNvbG9yLWJ5PSJbW2NvbG9yQnldXSIKICAgICAgICAgICAgICAgIGl0ZW0tdHlwZT0iaW5jb21wYXRpYmxlLW9wcyIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPC90Zi1ncmFwaC1vcC1jb21wYXQtbGlzdC1pdGVtPgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPC9pcm9uLWxpc3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L2lyb24tY29sbGFwc2U+CiAgYDtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixhcyldLHNzLnByb3RvdHlwZSwiZ3JhcGhIaWVyYXJjaHkiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsbG8pXSxzcy5wcm90b3R5cGUsInJlbmRlckhpZXJhcmNoeSIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxzcy5wcm90b3R5cGUsIm5vZGVUaXRsZSIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHNzLnByb3RvdHlwZSwiX2V4cGFuZGVkIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLHNzLnByb3RvdHlwZSwiX29wQ29tcGF0Q29sb3IiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sc3MucHJvdG90eXBlLCJfb3BJbmNvbXBhdENvbG9yIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLHNzLnByb3RvdHlwZSwiX3RlbXBsYXRlSW5kZXgiLHZvaWQgMCk7RShbUnQoImdyYXBoSGllcmFyY2h5IiksdygiZGVzaWduOnR5cGUiLEFycmF5KSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxzcy5wcm90b3R5cGUsIl9pbmNvbXBhdGlibGVPcE5vZGVzIixudWxsKTtFKFtSdCgiZ3JhcGhIaWVyYXJjaHkiKSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxzcy5wcm90b3R5cGUsIl9vcENvbXBhdFNjb3JlIixudWxsKTtFKFtSdCgiX29wQ29tcGF0U2NvcmUiKSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxzcy5wcm90b3R5cGUsIl9vcENvbXBhdFNjb3JlTGFiZWwiLG51bGwpO0UoW1J0KCJncmFwaEhpZXJhcmNoeSIpLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLHNzLnByb3RvdHlwZSwiX3RvdGFsSW5jb21wYXRPcHMiLG51bGwpO0UoW0J0KCJncmFwaEhpZXJhcmNoeSIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sc3MucHJvdG90eXBlLCJfZ3JhcGhIaWVyYXJjaHlDaGFuZ2VkIixudWxsKTtzcz1FKFt5dCgidGYtZ3JhcGgtb3AtY29tcGF0LWNhcmQiKV0sc3MpO3ZhciBsMz1FZShPZSgpLDEpO3ZhciBXYz1jbGFzcyBleHRlbmRzIEd0KF9vKG10KSl7X2l0ZW1UeXBlQ2hhbmdlZCgpe3RoaXMuaXRlbVR5cGUhPT0ic3Vibm9kZSI/dGhpcy4kWyJsaXN0LWl0ZW0iXS5jbGFzc0xpc3QuYWRkKCJjbGlja2FibGUiKTp0aGlzLiRbImxpc3QtaXRlbSJdLmNsYXNzTGlzdC5yZW1vdmUoImNsaWNrYWJsZSIpfV9ub2RlTGlzdGVuZXIodCl7dGhpcy5maXJlKCJub2RlLWxpc3QtaXRlbS0iK3QudHlwZSx7Y2FyZE5vZGU6dGhpcy5jYXJkTm9kZS5uYW1lLG5vZGVOYW1lOnRoaXMubmFtZSx0eXBlOnRoaXMuaXRlbVR5cGV9KX1fZmFkZWRDbGFzcyh0KXtyZXR1cm4gdCYmdC5pc0ZhZGVkT3V0PyJmYWRlZCI6IiJ9fTtXYy50ZW1wbGF0ZT1RYAogICAgPHN0eWxlPgogICAgICAjbGlzdC1pdGVtIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpOwogICAgICAgIGZvbnQtc2l6ZTogMTFwdDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgICNsaXN0LWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdvb2dsZS15ZWxsb3ctMTAwKTsKICAgICAgfQoKICAgICAgOmhvc3QoLmRhcmstbW9kZSkgI2xpc3QtaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXIteWVsbG93LTkwMCk7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgIH0KCiAgICAgIC5jbGlja2FibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbSBzcGFuIHsKICAgICAgICBtYXJnaW4tbGVmdDogNDBweDsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbS5leGNsdWRlZCBzcGFuIHsKICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbSBzcGFuLmVkZ2UtbGFiZWwgewogICAgICAgIGZsb2F0OiByaWdodDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsKICAgICAgfQoKICAgICAgLm5vZGUtaWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMXB4OwogICAgICAgIGxlZnQ6IDJweDsKICAgICAgfQoKICAgICAgLmZhZGVkIHNwYW4gewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1ncmFwaC1mYWRlZCk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2CiAgICAgIGlkPSJsaXN0LWl0ZW0iCiAgICAgIG9uLW1vdXNlb3Zlcj0iX25vZGVMaXN0ZW5lciIKICAgICAgb24tbW91c2VvdXQ9Il9ub2RlTGlzdGVuZXIiCiAgICAgIG9uLWNsaWNrPSJfbm9kZUxpc3RlbmVyIgogICAgPgogICAgICA8ZGl2IGNsYXNzJD0ie3tfZmFkZWRDbGFzcyhpdGVtUmVuZGVySW5mbyl9fSI+CiAgICAgICAgPHRmLW5vZGUtaWNvbgogICAgICAgICAgY2xhc3M9Im5vZGUtaWNvbiIKICAgICAgICAgIGhlaWdodD0iMTIiCiAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICBjb2xvci1ieS1wYXJhbXM9IltbY29sb3JCeVBhcmFtc11dIgogICAgICAgICAgbm9kZT0iW1tpdGVtTm9kZV1dIgogICAgICAgICAgcmVuZGVyLWluZm89IltbaXRlbVJlbmRlckluZm9dXSIKICAgICAgICAgIHRlbXBsYXRlLWluZGV4PSJbW3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICA+PC90Zi1ub2RlLWljb24+CiAgICAgICAgPHNwYW4gdGl0bGUkPSJbW25hbWVdXSI+W1tuYW1lXV08L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImVkZ2UtbGFiZWwiPltbZWRnZUxhYmVsXV08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYDtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxXYy5wcm90b3R5cGUsImNhcmROb2RlIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFdjLnByb3RvdHlwZSwiaXRlbU5vZGUiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sV2MucHJvdG90eXBlLCJlZGdlTGFiZWwiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sV2MucHJvdG90eXBlLCJpdGVtUmVuZGVySW5mbyIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxXYy5wcm90b3R5cGUsIm5hbWUiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmcsb2JzZXJ2ZXI6Il9pdGVtVHlwZUNoYW5nZWQifSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLFdjLnByb3RvdHlwZSwiaXRlbVR5cGUiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sV2MucHJvdG90eXBlLCJjb2xvckJ5Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFdjLnByb3RvdHlwZSwiY29sb3JCeVBhcmFtcyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxXYy5wcm90b3R5cGUsInRlbXBsYXRlSW5kZXgiLHZvaWQgMCk7V2M9RShbeXQoInRmLW5vZGUtbGlzdC1pdGVtIildLFdjKTt2YXIgZG49Y2xhc3MgZXh0ZW5kcyBHdChtdCl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2V4cGFuZGVkPSEwLHRoaXMuX29wZW5lZENvbnRyb2xQcmVkPSExLHRoaXMuX29wZW5lZENvbnRyb2xTdWNjPSExLHRoaXMuX3RlbXBsYXRlSW5kZXg9bnVsbH1leHBhbmROb2RlKCl7dGhpcy5maXJlKCJfbm9kZS5leHBhbmQiLHRoaXMubm9kZSl9X2dldE5vZGUodCxyKXtyZXR1cm4gci5ub2RlKHQpfV9nZXROb2RlU3RhdHModCxyKXt2YXIgbj10aGlzLl9nZXROb2RlKHQscik7cmV0dXJuIG4/bi5zdGF0czpudWxsfV9nZXRUb3RhbE1pY3Jvcyh0KXtyZXR1cm4gdD90LmdldFRvdGFsTWljcm9zKCk6MH1nZXQgX2hhc0Rpc3BsYXlhYmxlTm9kZVN0YXRzKCl7dmFyIHQ9dGhpcy5fbm9kZVN0YXRzO3JldHVybiBnSCh0KX1nZXQgX25vZGVTdGF0c0Zvcm1hdHRlZEJ5dGVzKCl7dmFyIHQ9dGhpcy5fbm9kZVN0YXRzO2lmKCEoIXR8fCF0LnRvdGFsQnl0ZXMpKXJldHVybiBEZCh0LnRvdGFsQnl0ZXMsaVApfWdldCBfbm9kZVN0YXRzRm9ybWF0dGVkQ29tcHV0ZVRpbWUoKXt2YXIgdD10aGlzLl9ub2RlU3RhdHM7aWYoISghdHx8IXQuZ2V0VG90YWxNaWNyb3MoKSkpcmV0dXJuIERkKHQuZ2V0VG90YWxNaWNyb3MoKSxvUCl9Z2V0IF9ub2RlU3RhdHNGb3JtYXR0ZWRPdXRwdXRTaXplcygpe3ZhciB0PXRoaXMuX25vZGVTdGF0cztpZighKCF0fHwhdC5vdXRwdXRTaXplfHwhdC5vdXRwdXRTaXplLmxlbmd0aCkpcmV0dXJuIGwzLm1hcCh0Lm91dHB1dFNpemUsZnVuY3Rpb24ocil7cmV0dXJuIHIubGVuZ3RoPT09MD8ic2NhbGFyIjoiWyIrci5qb2luKCIsICIpKyJdIn0pfV9nZXRSZW5kZXJJbmZvKHQscil7cmV0dXJuIHRoaXMucmVuZGVySGllcmFyY2h5LmdldE9yQ3JlYXRlUmVuZGVyTm9kZUJ5TmFtZSh0KX1nZXQgX2F0dHJpYnV0ZXMoKXt2YXIgdD10aGlzLl9ub2RlO2lmKHRoaXMuYXN5bmModGhpcy5fcmVzaXplTGlzdC5iaW5kKHRoaXMsIiNhdHRyaWJ1dGVzTGlzdCIpKSwhdHx8IXQuYXR0cilyZXR1cm5bXTt2YXIgcj1bXTtyZXR1cm4gbDMuZWFjaCh0LmF0dHIsZnVuY3Rpb24obil7bi5rZXk9PT1pbGU/cj1yLmNvbmNhdChuLnZhbHVlLmxpc3Qucy5tYXAoZnVuY3Rpb24oaSl7cmV0dXJue2tleTppLHZhbHVlOiJUb28gbGFyZ2UgdG8gc2hvdy4uLiJ9fSkpOnIucHVzaCh7a2V5Om4ua2V5LHZhbHVlOkpTT04uc3RyaW5naWZ5KG4udmFsdWUpfSl9KSxyfWdldCBfZGV2aWNlKCl7dmFyIHQ9dGhpcy5fbm9kZTtyZXR1cm4gdD90LmRldmljZTpudWxsfWdldCBfc3VjY2Vzc29ycygpe3ZhciB0PXRoaXMuX25vZGUscj10aGlzLmdyYXBoSGllcmFyY2h5O3JldHVybiB0aGlzLl9yZWZyZXNoTm9kZUl0ZW1MaXN0KCJpbnB1dHNMaXN0IiksdD90aGlzLl9jb252ZXJ0RWRnZUxpc3RUb0VkZ2VJbmZvTGlzdChyLmdldFN1Y2Nlc3NvcnModC5uYW1lKSwhMSx0LmlzR3JvdXBOb2RlKTp7cmVndWxhcjpbXSxjb250cm9sOltdfX1nZXQgX3ByZWRlY2Vzc29ycygpe3ZhciB0PXRoaXMuX25vZGUscj10aGlzLmdyYXBoSGllcmFyY2h5O3JldHVybiB0aGlzLl9yZWZyZXNoTm9kZUl0ZW1MaXN0KCJvdXRwdXRzTGlzdCIpLHQ/dGhpcy5fY29udmVydEVkZ2VMaXN0VG9FZGdlSW5mb0xpc3Qoci5nZXRQcmVkZWNlc3NvcnModC5uYW1lKSwhMCx0LmlzR3JvdXBOb2RlKTp7cmVndWxhcjpbXSxjb250cm9sOltdfX1nZXQgX2Z1bmN0aW9uVXNhZ2VzKCl7dmFyIHQ9dGhpcy5fbm9kZSxyPXRoaXMuZ3JhcGhIaWVyYXJjaHk7aWYodGhpcy5fcmVmcmVzaE5vZGVJdGVtTGlzdCgiZnVuY3Rpb25Vc2FnZXNMaXN0IiksIXR8fHQudHlwZSE9PWp0Lk1FVEEpcmV0dXJuW107bGV0IG49ci5saWJyYXJ5RnVuY3Rpb25zW3QuYXNzb2NpYXRlZEZ1bmN0aW9uXTtyZXR1cm4gbj9uLnVzYWdlczpbXX1fcmVmcmVzaE5vZGVJdGVtTGlzdCh0KXt0aGlzLmFzeW5jKHRoaXMuX3Jlc2l6ZUxpc3QuYmluZCh0aGlzLGAjJHt0fWApKX1fY29udmVydEVkZ2VMaXN0VG9FZGdlSW5mb0xpc3QodCxyLG4pe3ZhciBpPWE9PmwzLm1hcChhLmJhc2VFZGdlTGlzdCxzPT57dmFyIGw9cj9zLnY6cy53O3JldHVybntuYW1lOmwsbm9kZTp0aGlzLl9nZXROb2RlKGwsdGhpcy5ncmFwaEhpZXJhcmNoeSksZWRnZUxhYmVsOllsdChzLHRoaXMucmVuZGVySGllcmFyY2h5KSxyZW5kZXJJbmZvOnRoaXMuX2dldFJlbmRlckluZm8obCx0aGlzLnJlbmRlckhpZXJhcmNoeSl9fSksbz1mdW5jdGlvbihhKXt2YXIgcz1bXTtyZXR1cm4gbDMuZWFjaChhLGw9Pnt2YXIgYz1yP2wudjpsLnc7IW58fGwuYmFzZUVkZ2VMaXN0Lmxlbmd0aD09MT9zPXMuY29uY2F0KGkobCkpOnMucHVzaCh7bmFtZTpjLG5vZGU6dGhpcy5fZ2V0Tm9kZShjLHRoaXMuZ3JhcGhIaWVyYXJjaHkpLGVkZ2VMYWJlbDpqbHQobCx0aGlzLnJlbmRlckhpZXJhcmNoeSkscmVuZGVySW5mbzp0aGlzLl9nZXRSZW5kZXJJbmZvKGMsdGhpcy5yZW5kZXJIaWVyYXJjaHkpfSl9KSxzfS5iaW5kKHRoaXMpO3JldHVybntyZWd1bGFyOm8odC5yZWd1bGFyKSxjb250cm9sOm8odC5jb250cm9sKX19Z2V0IF9zdWJub2Rlcygpe3ZhciB0PXRoaXMuX25vZGU7cmV0dXJuIHQmJnQubWV0YWdyYXBoP3QubWV0YWdyYXBoLm5vZGVzKCk6bnVsbH1nZXQgX3RvdGFsUHJlZGVjZXNzb3JzKCl7dmFyIHQ9dGhpcy5fcHJlZGVjZXNzb3JzO3JldHVybiB0LnJlZ3VsYXIubGVuZ3RoK3QuY29udHJvbC5sZW5ndGh9Z2V0IF90b3RhbFN1Y2Nlc3NvcnMoKXt2YXIgdD10aGlzLl9zdWNjZXNzb3JzO3JldHVybiB0LnJlZ3VsYXIubGVuZ3RoK3QuY29udHJvbC5sZW5ndGh9X3RvZ2dsZUNvbnRyb2xQcmVkKCl7dGhpcy5fb3BlbmVkQ29udHJvbFByZWQ9IXRoaXMuX29wZW5lZENvbnRyb2xQcmVkfV90b2dnbGVDb250cm9sU3VjYygpe3RoaXMuX29wZW5lZENvbnRyb2xTdWNjPSF0aGlzLl9vcGVuZWRDb250cm9sU3VjY31fdG9nZ2xlRXhwYW5kZWQoKXt0aGlzLl9leHBhbmRlZD0hdGhpcy5fZXhwYW5kZWR9X2dldFRvZ2dsZUljb24odCl7cmV0dXJuIHQ/ImV4cGFuZC1sZXNzIjoiZXhwYW5kLW1vcmUifV9yZXNldFN0YXRlKCl7dGhpcy5fb3BlbmVkQ29udHJvbFByZWQ9ITEsdGhpcy5fb3BlbmVkQ29udHJvbFN1Y2M9ITEsdGhpcy5zZXQoIl9ncm91cEJ1dHRvblRleHQiLFFsdCh0aGlzLl9ub2RlKSl9X3Jlc2l6ZUxpc3QodCl7dmFyIHI9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0KTtyJiZyLmZpcmUoImlyb24tcmVzaXplIil9X3RvZ2dsZUluY2x1ZGUoKXt0aGlzLmZpcmUoIm5vZGUtdG9nZ2xlLWluY2x1c2lvbiIse25hbWU6dGhpcy5ncmFwaE5vZGVOYW1lfSl9X25vZGVJbmNsdWRlU3RhdGVDaGFuZ2VkKHQscil7dGhpcy5zZXQoIl9hdXhCdXR0b25UZXh0Iix5SCh0KSl9X3RvZ2dsZUdyb3VwKCl7dmFyIHQ9SUgodGhpcy5fbm9kZSk7dGhpcy5maXJlKCJub2RlLXRvZ2dsZS1zZXJpZXNncm91cCIse25hbWU6dH0pfV9pc0xpYnJhcnlGdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5uYW1lLnN0YXJ0c1dpdGgoTWEpfV9pc0luU2VyaWVzKHQpe3JldHVybiBKbHQodCl9X2dyYXBoSGllcmFyY2h5Q2hhbmdlZCgpe3RoaXMuX3RlbXBsYXRlSW5kZXg9dGhpcy5ncmFwaEhpZXJhcmNoeS5nZXRUZW1wbGF0ZUluZGV4KCksdGhpcy5ncmFwaEhpZXJhcmNoeS5hZGRMaXN0ZW5lcihPZC5URU1QTEFURVNfVVBEQVRFRCwoKT0+e3RoaXMuX3RlbXBsYXRlSW5kZXg9dGhpcy5ncmFwaEhpZXJhcmNoeS5nZXRUZW1wbGF0ZUluZGV4KCl9KX19O2RuLnRlbXBsYXRlPVFgCiAgICA8c3R5bGU+CiAgICAgIC5zdWItbGlzdC1ncm91cCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEycHQ7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDhweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLnN1Yi1saXN0IHsKICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsKICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7CiAgICAgIH0KCiAgICAgIC5hdHRyLWxlZnQgewogICAgICAgIGZsb2F0OiBsZWZ0OwogICAgICAgIHdpZHRoOiAzMCU7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgZm9udC1zaXplOiAxMXB0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KCiAgICAgIC5hdHRyLXJpZ2h0IHsKICAgICAgICBtYXJnaW4tbGVmdDogMzAlOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KCiAgICAgIC5zdWItbGlzdC10YWJsZSB7CiAgICAgICAgZGlzcGxheTogdGFibGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5zdWItbGlzdC10YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdzsKICAgICAgfQoKICAgICAgLnN1Yi1saXN0LXRhYmxlLXJvdyAuc3ViLWxpc3QtdGFibGUtY2VsbDpsYXN0LWNoaWxkIHsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgfQoKICAgICAgLnN1Yi1saXN0LXRhYmxlLWNlbGwgewogICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsKICAgICAgICBmb250LXNpemU6IDExcHQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBtYXgtd2lkdGg6IDIwMHB4OwogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICB9CgogICAgICBwYXBlci1pdGVtIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcik7CiAgICAgIH0KCiAgICAgIHBhcGVyLWl0ZW0tYm9keVt0d28tbGluZV0gewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggNHB4OwogICAgICB9CgogICAgICAuZXhwYW5kZWRJbmZvIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgfQoKICAgICAgLmNvbnRyb2xEZXBzIHsKICAgICAgICBwYWRkaW5nOiAwIDAgMCA4cHg7CiAgICAgIH0KCiAgICAgIC5ub2RlLW5hbWUgewogICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIGZvbnQtc2l6ZTogMTRwdDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubm9kZS1pY29uIHsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgICBmb250LXNpemU6IDEycHQ7CiAgICAgIH0KCiAgICAgIC5jb250cm9sTGluZSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtYnV0dG9uIHsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICAgICAgbWF4LWhlaWdodDogMjBweDsKICAgICAgICBtYXgtd2lkdGg6IDIwcHg7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtdG9nZ2xlLWJ1dHRvbiB7CiAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgICAgbWF4LWhlaWdodDogMjBweDsKICAgICAgICBtYXgtd2lkdGg6IDIwcHg7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1pbmNsdWRlLWdyb3VwIHsKICAgICAgICBwYWRkaW5nLXRvcDogNHB4OwogICAgICB9CgogICAgICAudG9nZ2xlLWluY2x1ZGUgewogICAgICAgIG1hcmdpbjogNXB4IDZweDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsKICAgICAgICBwYWRkaW5nOiA0cHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBwdDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOwogICAgICAgIGNvbG9yOiAjNjY2OwogICAgICB9CgogICAgICAudG9nZ2xlLWluY2x1ZGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdvb2dsZS15ZWxsb3ctMTAwKTsKICAgICAgfQoKICAgICAgLm5vbi1jb250cm9sLWxpc3QtaXRlbSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPHBhcGVyLWl0ZW0+CiAgICAgIDxwYXBlci1pdGVtLWJvZHkgdHdvLWxpbmU+CiAgICAgICAgPGRpdj4KICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgICBpY29uPSJ7e19nZXRUb2dnbGVJY29uKF9leHBhbmRlZCl9fSIKICAgICAgICAgICAgb24tY2xpY2s9Il90b2dnbGVFeHBhbmRlZCIKICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS1idXR0b24iCiAgICAgICAgICA+CiAgICAgICAgICA8L3BhcGVyLWljb24tYnV0dG9uPgogICAgICAgICAgPGRpdiBjbGFzcz0ibm9kZS1uYW1lIj4KICAgICAgICAgICAgPHRmLXdici1zdHJpbmcgdmFsdWU9IltbX25vZGUubmFtZV1dIiBkZWxpbWl0ZXItcGF0dGVybj0iLyI+CiAgICAgICAgICAgIDwvdGYtd2JyLXN0cmluZz4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc2Vjb25kYXJ5PgogICAgICAgICAgPHRmLW5vZGUtaWNvbgogICAgICAgICAgICBjbGFzcz0ibm9kZS1pY29uIgogICAgICAgICAgICBub2RlPSJbW19ub2RlXV0iCiAgICAgICAgICAgIHJlbmRlci1pbmZvPSJbW19nZXRSZW5kZXJJbmZvKGdyYXBoTm9kZU5hbWUsIHJlbmRlckhpZXJhcmNoeSldXSIKICAgICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgICB0ZW1wbGF0ZS1pbmRleD0iW1tfdGVtcGxhdGVJbmRleF1dIgogICAgICAgICAgPjwvdGYtbm9kZS1pY29uPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJ7e19ub2RlLm9wfX0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJ0aXRsZSI+CiAgICAgICAgICAgICAgT3BlcmF0aW9uOgogICAgICAgICAgICAgIDxzcGFuPltbX25vZGUub3BdXTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJ7e19ub2RlLm1ldGFncmFwaH19Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPgogICAgICAgICAgICAgIFN1YmdyYXBoOgogICAgICAgICAgICAgIDxzcGFuPltbX25vZGUuY2FyZGluYWxpdHldXTwvc3Bhbj4gbm9kZXMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvZGl2PgogICAgICA8L3BhcGVyLWl0ZW0tYm9keT4KICAgIDwvcGFwZXItaXRlbT4KICAgIDxpcm9uLWNvbGxhcHNlIG9wZW5lZD0ie3tfZXhwYW5kZWR9fSI+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfZXhwYW5kZWR9fSIgcmVzdGFtcD0idHJ1ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZXhwYW5kZWRJbmZvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LWdyb3VwIGF0dHJpYnV0ZXMiPgogICAgICAgICAgICBBdHRyaWJ1dGVzICg8c3Bhbj5bW19hdHRyaWJ1dGVzLmxlbmd0aF1dPC9zcGFuPikKICAgICAgICAgICAgPGlyb24tbGlzdAogICAgICAgICAgICAgIGNsYXNzPSJzdWItbGlzdCIKICAgICAgICAgICAgICBpZD0iYXR0cmlidXRlc0xpc3QiCiAgICAgICAgICAgICAgaXRlbXM9IltbX2F0dHJpYnV0ZXNdXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF0dHItbGVmdCI+W1tpdGVtLmtleV1dPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF0dHItcmlnaHQiPltbaXRlbS52YWx1ZV1dPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfZGV2aWNlfX0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItbGlzdC1ncm91cCBkZXZpY2UiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF0dHItbGVmdCI+RGV2aWNlPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXR0ci1yaWdodCI+W1tfZGV2aWNlXV08L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgoKICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LWdyb3VwIHByZWRlY2Vzc29ycyI+CiAgICAgICAgICAgIElucHV0cyAoPHNwYW4+W1tfdG90YWxQcmVkZWNlc3NvcnNdXTwvc3Bhbj4pCiAgICAgICAgICAgIDxpcm9uLWxpc3QKICAgICAgICAgICAgICBjbGFzcz0ic3ViLWxpc3QiCiAgICAgICAgICAgICAgaWQ9ImlucHV0c0xpc3QiCiAgICAgICAgICAgICAgaXRlbXM9IltbX3ByZWRlY2Vzc29ycy5yZWd1bGFyXV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGYtbm9kZS1saXN0LWl0ZW0KICAgICAgICAgICAgICAgICAgY2xhc3M9Im5vbi1jb250cm9sLWxpc3QtaXRlbSIKICAgICAgICAgICAgICAgICAgY2FyZC1ub2RlPSJbW19ub2RlXV0iCiAgICAgICAgICAgICAgICAgIGl0ZW0tbm9kZT0iW1tpdGVtLm5vZGVdXSIKICAgICAgICAgICAgICAgICAgZWRnZS1sYWJlbD0iW1tpdGVtLmVkZ2VMYWJlbF1dIgogICAgICAgICAgICAgICAgICBpdGVtLXJlbmRlci1pbmZvPSJbW2l0ZW0ucmVuZGVySW5mb11dIgogICAgICAgICAgICAgICAgICBuYW1lPSJbW2l0ZW0ubmFtZV1dIgogICAgICAgICAgICAgICAgICBpdGVtLXR5cGU9InByZWRlY2Vzc29ycyIKICAgICAgICAgICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgICAgICAgICB0ZW1wbGF0ZS1pbmRleD0iW1tfdGVtcGxhdGVJbmRleF1dIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPC90Zi1ub2RlLWxpc3QtaXRlbT4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19wcmVkZWNlc3NvcnMuY29udHJvbC5sZW5ndGhdXSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbERlcHMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbExpbmUiPgogICAgICAgICAgICAgICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICAgICAgICAgICAgICBpY29uPSJ7e19nZXRUb2dnbGVJY29uKF9vcGVuZWRDb250cm9sUHJlZCl9fSIKICAgICAgICAgICAgICAgICAgICBvbi1jbGljaz0iX3RvZ2dsZUNvbnRyb2xQcmVkIgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjb250cm9sLXRvZ2dsZS1idXR0b24iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICAgICAgICAgICAgQ29udHJvbCBkZXBlbmRlbmNpZXMKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGlyb24tY29sbGFwc2Ugb3BlbmVkPSJ7e19vcGVuZWRDb250cm9sUHJlZH19IiBuby1hbmltYXRpb24+CiAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgICAgICAgIGlzPSJkb20taWYiCiAgICAgICAgICAgICAgICAgICAgaWY9Int7X29wZW5lZENvbnRyb2xQcmVkfX0iCiAgICAgICAgICAgICAgICAgICAgcmVzdGFtcD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIDxpcm9uLWxpc3QKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJzdWItbGlzdCIKICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zPSJbW19wcmVkZWNlc3NvcnMuY29udHJvbF1dIgogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRmLW5vZGUtbGlzdC1pdGVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FyZC1ub2RlPSJbW19ub2RlXV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS1ub2RlPSJbW2l0ZW0ubm9kZV1dIgogICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0tcmVuZGVyLWluZm89IltbaXRlbS5yZW5kZXJJbmZvXV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iW1tpdGVtLm5hbWVdXSIKICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLXR5cGU9InByZWRlY2Vzc29ycyIKICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUtaW5kZXg9IltbX3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RmLW5vZGUtbGlzdC1pdGVtPgogICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDwvaXJvbi1jb2xsYXBzZT4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LWdyb3VwIHN1Y2Nlc3NvcnMiPgogICAgICAgICAgICBPdXRwdXRzICg8c3Bhbj5bW190b3RhbFN1Y2Nlc3NvcnNdXTwvc3Bhbj4pCiAgICAgICAgICAgIDxpcm9uLWxpc3QKICAgICAgICAgICAgICBjbGFzcz0ic3ViLWxpc3QiCiAgICAgICAgICAgICAgaWQ9Im91dHB1dHNMaXN0IgogICAgICAgICAgICAgIGl0ZW1zPSJbW19zdWNjZXNzb3JzLnJlZ3VsYXJdXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0Zi1ub2RlLWxpc3QtaXRlbQogICAgICAgICAgICAgICAgICBjbGFzcz0ibm9uLWNvbnRyb2wtbGlzdC1pdGVtIgogICAgICAgICAgICAgICAgICBjYXJkLW5vZGU9IltbX25vZGVdXSIKICAgICAgICAgICAgICAgICAgaXRlbS1ub2RlPSJbW2l0ZW0ubm9kZV1dIgogICAgICAgICAgICAgICAgICBlZGdlLWxhYmVsPSJbW2l0ZW0uZWRnZUxhYmVsXV0iCiAgICAgICAgICAgICAgICAgIGl0ZW0tcmVuZGVyLWluZm89IltbaXRlbS5yZW5kZXJJbmZvXV0iCiAgICAgICAgICAgICAgICAgIG5hbWU9IltbaXRlbS5uYW1lXV0iCiAgICAgICAgICAgICAgICAgIGl0ZW0tdHlwZT0ic3VjY2Vzc29yIgogICAgICAgICAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICAgICAgICAgIHRlbXBsYXRlLWluZGV4PSJbW190ZW1wbGF0ZUluZGV4XV0iCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8L3RmLW5vZGUtbGlzdC1pdGVtPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvaXJvbi1saXN0PgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3N1Y2Nlc3NvcnMuY29udHJvbC5sZW5ndGhdXSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbERlcHMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbExpbmUiPgogICAgICAgICAgICAgICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICAgICAgICAgICAgICBpY29uPSJ7e19nZXRUb2dnbGVJY29uKF9vcGVuZWRDb250cm9sU3VjYyl9fSIKICAgICAgICAgICAgICAgICAgICBvbi1jbGljaz0iX3RvZ2dsZUNvbnRyb2xTdWNjIgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjb250cm9sLXRvZ2dsZS1idXR0b24iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICAgICAgICAgICAgQ29udHJvbCBkZXBlbmRlbmNpZXMKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGlyb24tY29sbGFwc2Ugb3BlbmVkPSJ7e19vcGVuZWRDb250cm9sU3VjY319IiBuby1hbmltYXRpb24+CiAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgICAgICAgIGlzPSJkb20taWYiCiAgICAgICAgICAgICAgICAgICAgaWY9Int7X29wZW5lZENvbnRyb2xTdWNjfX0iCiAgICAgICAgICAgICAgICAgICAgcmVzdGFtcD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIDxpcm9uLWxpc3QgY2xhc3M9InN1Yi1saXN0IiBpdGVtcz0iW1tfc3VjY2Vzc29ycy5jb250cm9sXV0iPgogICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgICAgICAgICAgICA8dGYtbm9kZS1saXN0LWl0ZW0KICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJkLW5vZGU9IltbX25vZGVdXSIKICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLW5vZGU9IltbaXRlbS5ub2RlXV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS1yZW5kZXItaW5mbz0iW1tpdGVtLnJlbmRlckluZm9dXSIKICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJbW2l0ZW0ubmFtZV1dIgogICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0tdHlwZT0ic3VjY2Vzc29ycyIKICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUtaW5kZXg9IltbX3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RmLW5vZGUtbGlzdC1pdGVtPgogICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDwvaXJvbi1jb2xsYXBzZT4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJ7e19oYXNEaXNwbGF5YWJsZU5vZGVTdGF0c319Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtZ3JvdXAgbm9kZS1zdGF0cyI+CiAgICAgICAgICAgICAgTm9kZSBTdGF0cwogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlIj4KICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfbm9kZVN0YXRzLnRvdGFsQnl0ZXN9fSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtdGFibGUtY2VsbCI+TWVtb3J5PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtdGFibGUtY2VsbCI+CiAgICAgICAgICAgICAgICAgICAgICBbW19ub2RlU3RhdHNGb3JtYXR0ZWRCeXRlc11dCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfZ2V0VG90YWxNaWNyb3MoX25vZGVTdGF0cyl9fSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtdGFibGUtY2VsbCI+Q29tcHV0ZSBUaW1lPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtdGFibGUtY2VsbCI+CiAgICAgICAgICAgICAgICAgICAgICBbW19ub2RlU3RhdHNGb3JtYXR0ZWRDb21wdXRlVGltZV1dCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfbm9kZVN0YXRzLm91dHB1dFNpemV9fSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtdGFibGUtY2VsbCI+VGVuc29yIE91dHB1dCBTaXplczwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLWNlbGwiPgogICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlCiAgICAgICAgICAgICAgICAgICAgICAgIGlzPSJkb20tcmVwZWF0IgogICAgICAgICAgICAgICAgICAgICAgICBpdGVtcz0ie3tfbm9kZVN0YXRzRm9ybWF0dGVkT3V0cHV0U2l6ZXN9fSIKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgW1tpdGVtXV0gPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KCiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2Z1bmN0aW9uVXNhZ2VzLmxlbmd0aF1dIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtZ3JvdXAgcHJlZGVjZXNzb3JzIj4KICAgICAgICAgICAgICBVc2FnZXMgb2YgdGhlIEZ1bmN0aW9uICg8c3Bhbj5bW19mdW5jdGlvblVzYWdlcy5sZW5ndGhdXTwvc3Bhbj4pCiAgICAgICAgICAgICAgPGlyb24tbGlzdAogICAgICAgICAgICAgICAgY2xhc3M9InN1Yi1saXN0IgogICAgICAgICAgICAgICAgaWQ9ImZ1bmN0aW9uVXNhZ2VzTGlzdCIKICAgICAgICAgICAgICAgIGl0ZW1zPSJbW19mdW5jdGlvblVzYWdlc11dIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgICAgPHRmLW5vZGUtbGlzdC1pdGVtCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im5vbi1jb250cm9sLWxpc3QtaXRlbSIKICAgICAgICAgICAgICAgICAgICBjYXJkLW5vZGU9IltbX25vZGVdXSIKICAgICAgICAgICAgICAgICAgICBpdGVtLW5vZGU9IltbaXRlbV1dIgogICAgICAgICAgICAgICAgICAgIG5hbWU9IltbaXRlbS5uYW1lXV0iCiAgICAgICAgICAgICAgICAgICAgaXRlbS10eXBlPSJmdW5jdGlvblVzYWdlcyIKICAgICAgICAgICAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUtaW5kZXg9IltbX3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8L3RmLW5vZGUtbGlzdC1pdGVtPgogICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgoKICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2lzTGlicmFyeUZ1bmN0aW9uKF9ub2RlKV1dIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLWluY2x1ZGUtZ3JvdXAiPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24KICAgICAgICAgICAgICAgIHJhaXNlZAogICAgICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS1pbmNsdWRlIgogICAgICAgICAgICAgICAgb24tY2xpY2s9Il90b2dnbGVJbmNsdWRlIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuPltbX2F1eEJ1dHRvblRleHRdXTwvc3Bhbj4KICAgICAgICAgICAgICA8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgoKICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfaXNJblNlcmllcyhfbm9kZSl9fSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1pbmNsdWRlLWdyb3VwIj4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICByYWlzZWQKICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUtaW5jbHVkZSIKICAgICAgICAgICAgICAgIG9uLWNsaWNrPSJfdG9nZ2xlR3JvdXAiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHNwYW4+W1tfZ3JvdXBCdXR0b25UZXh0XV08L3NwYW4+CiAgICAgICAgICAgICAgPC9wYXBlci1idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvaXJvbi1jb2xsYXBzZT4KICBgO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLGRuLnByb3RvdHlwZSwiZ3JhcGhOb2RlTmFtZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixhcyldLGRuLnByb3RvdHlwZSwiZ3JhcGhIaWVyYXJjaHkiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZG4ucHJvdG90eXBlLCJyZW5kZXJIaWVyYXJjaHkiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sZG4ucHJvdG90eXBlLCJjb2xvckJ5Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0LGNvbXB1dGVkOiJfZ2V0Tm9kZShncmFwaE5vZGVOYW1lLCBncmFwaEhpZXJhcmNoeSkiLG9ic2VydmVyOiJfcmVzZXRTdGF0ZSJ9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZG4ucHJvdG90eXBlLCJfbm9kZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdCxjb21wdXRlZDoiX2dldE5vZGVTdGF0cyhncmFwaE5vZGVOYW1lLCBncmFwaEhpZXJhcmNoeSkiLG9ic2VydmVyOiJfcmVzZXRTdGF0ZSJ9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZG4ucHJvdG90eXBlLCJfbm9kZVN0YXRzIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyLG9ic2VydmVyOiJfbm9kZUluY2x1ZGVTdGF0ZUNoYW5nZWQifSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLGRuLnByb3RvdHlwZSwibm9kZUluY2x1ZGUiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxkbi5wcm90b3R5cGUsIl9leHBhbmRlZCIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGRuLnByb3RvdHlwZSwiX29wZW5lZENvbnRyb2xQcmVkIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sZG4ucHJvdG90eXBlLCJfb3BlbmVkQ29udHJvbFN1Y2MiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sZG4ucHJvdG90eXBlLCJfYXV4QnV0dG9uVGV4dCIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxkbi5wcm90b3R5cGUsIl9ncm91cEJ1dHRvblRleHQiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxkbi5wcm90b3R5cGUsIl90ZW1wbGF0ZUluZGV4Iix2b2lkIDApO0UoW1J0KCJfbm9kZVN0YXRzIiksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGRuLnByb3RvdHlwZSwiX2hhc0Rpc3BsYXlhYmxlTm9kZVN0YXRzIixudWxsKTtFKFtSdCgiX25vZGVTdGF0cyIpLHcoImRlc2lnbjp0eXBlIixPYmplY3QpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGRuLnByb3RvdHlwZSwiX25vZGVTdGF0c0Zvcm1hdHRlZEJ5dGVzIixudWxsKTtFKFtSdCgiX25vZGVTdGF0cyIpLHcoImRlc2lnbjp0eXBlIixPYmplY3QpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGRuLnByb3RvdHlwZSwiX25vZGVTdGF0c0Zvcm1hdHRlZENvbXB1dGVUaW1lIixudWxsKTtFKFtSdCgiX25vZGVTdGF0cyIpLHcoImRlc2lnbjp0eXBlIixPYmplY3QpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGRuLnByb3RvdHlwZSwiX25vZGVTdGF0c0Zvcm1hdHRlZE91dHB1dFNpemVzIixudWxsKTtFKFtSdCgiX25vZGUiKSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGRuLnByb3RvdHlwZSwiX2F0dHJpYnV0ZXMiLG51bGwpO0UoW1J0KCJfbm9kZSIpLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGRuLnByb3RvdHlwZSwiX2RldmljZSIsbnVsbCk7RShbUnQoIl9ub2RlIiwiZ3JhcGhIaWVyYXJjaHkiKSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxkbi5wcm90b3R5cGUsIl9zdWNjZXNzb3JzIixudWxsKTtFKFtSdCgiX25vZGUiLCJncmFwaEhpZXJhcmNoeSIpLHcoImRlc2lnbjp0eXBlIixPYmplY3QpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGRuLnByb3RvdHlwZSwiX3ByZWRlY2Vzc29ycyIsbnVsbCk7RShbUnQoIl9ub2RlIiwiZ3JhcGhIaWVyYXJjaHkiKSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGRuLnByb3RvdHlwZSwiX2Z1bmN0aW9uVXNhZ2VzIixudWxsKTtFKFtSdCgiX25vZGUiKSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGRuLnByb3RvdHlwZSwiX3N1Ym5vZGVzIixudWxsKTtFKFtSdCgiX3ByZWRlY2Vzc29ycyIpLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGRuLnByb3RvdHlwZSwiX3RvdGFsUHJlZGVjZXNzb3JzIixudWxsKTtFKFtSdCgiX3N1Y2Nlc3NvcnMiKSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxkbi5wcm90b3R5cGUsIl90b3RhbFN1Y2Nlc3NvcnMiLG51bGwpO0UoW0J0KCJncmFwaEhpZXJhcmNoeSIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sZG4ucHJvdG90eXBlLCJfZ3JhcGhIaWVyYXJjaHlDaGFuZ2VkIixudWxsKTtkbj1FKFt5dCgidGYtbm9kZS1pbmZvIildLGRuKTt2YXIgbHM9Y2xhc3MgZXh0ZW5kcyBHdChtdCl7cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS1saXN0LWl0ZW0tY2xpY2siLHRoaXMuX25vZGVMaXN0SXRlbUNsaWNrZWQuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJub2RlLWxpc3QtaXRlbS1tb3VzZW92ZXIiLHRoaXMuX25vZGVMaXN0SXRlbU1vdXNlb3Zlci5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm5vZGUtbGlzdC1pdGVtLW1vdXNlb3V0Iix0aGlzLl9ub2RlTGlzdEl0ZW1Nb3VzZW91dC5iaW5kKHRoaXMpKX1fbm9kZUxpc3RJdGVtQ2xpY2tlZCh0KXt0aGlzLnNlbGVjdGVkTm9kZT10LmRldGFpbC5ub2RlTmFtZX1fbm9kZUxpc3RJdGVtTW91c2VvdmVyKHQpe3RoaXMuaGlnaGxpZ2h0ZWROb2RlPXQuZGV0YWlsLm5vZGVOYW1lfV9ub2RlTGlzdEl0ZW1Nb3VzZW91dCgpe3RoaXMuaGlnaGxpZ2h0ZWROb2RlPW51bGx9X2hlYWx0aFBpbGxzQXZhaWxhYmxlKHQscil7cmV0dXJuIHQmJnImJk9iamVjdC5rZXlzKHIpLmxlbmd0aD4wfV9lcXVhbHModCxyKXtyZXR1cm4gdD09PXJ9fTtscy50ZW1wbGF0ZT1RYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3IpOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXgtaGVpZ2h0OiA2NTBweDsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgaDIgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tzZWxlY3RlZE5vZGV9fSI+CiAgICAgIDxwYXBlci1tYXRlcmlhbCBlbGV2YXRpb249IjEiIGNsYXNzPSJjYXJkIj4KICAgICAgICA8dGYtbm9kZS1pbmZvCiAgICAgICAgICBncmFwaC1oaWVyYXJjaHk9IltbZ3JhcGhIaWVyYXJjaHldXSIKICAgICAgICAgIHJlbmRlci1oaWVyYXJjaHk9IltbcmVuZGVySGllcmFyY2h5XV0iCiAgICAgICAgICBmbGF0LWdyYXBoPSJbW2dyYXBoXV0iCiAgICAgICAgICBncmFwaC1ub2RlLW5hbWU9Iltbc2VsZWN0ZWROb2RlXV0iCiAgICAgICAgICBub2RlLWluY2x1ZGU9Iltbc2VsZWN0ZWROb2RlSW5jbHVkZV1dIgogICAgICAgICAgaGlnaGxpZ2h0ZWQtbm9kZT0ie3toaWdobGlnaHRlZE5vZGV9fSIKICAgICAgICAgIGNvbG9yLWJ5PSJbW2NvbG9yQnldXSIKICAgICAgICA+CiAgICAgICAgPC90Zi1ub2RlLWluZm8+CiAgICAgIDwvcGFwZXItbWF0ZXJpYWw+CiAgICA8L3RlbXBsYXRlPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19lcXVhbHMoY29sb3JCeSwgJ29wX2NvbXBhdGliaWxpdHknKV1dIj4KICAgICAgPHRmLWdyYXBoLW9wLWNvbXBhdC1jYXJkCiAgICAgICAgZ3JhcGgtaGllcmFyY2h5PSJbW2dyYXBoSGllcmFyY2h5XV0iCiAgICAgICAgcmVuZGVyLWhpZXJhcmNoeT0iW1tyZW5kZXJIaWVyYXJjaHldXSIKICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgbm9kZS10aXRsZT0iW1tjb21wYXROb2RlVGl0bGVdXSIKICAgICAgPgogICAgICA8L3RmLWdyYXBoLW9wLWNvbXBhdC1jYXJkPgogICAgPC90ZW1wbGF0ZT4KICAgIDx0ZW1wbGF0ZQogICAgICBpcz0iZG9tLWlmIgogICAgICBpZj0iW1tfaGVhbHRoUGlsbHNBdmFpbGFibGUoZGVidWdnZXJEYXRhRW5hYmxlZCwgbm9kZU5hbWVzVG9IZWFsdGhQaWxscyldXSIKICAgID4KICAgICAgPHRmLWdyYXBoLWRlYnVnZ2VyLWRhdGEtY2FyZAogICAgICAgIHJlbmRlci1oaWVyYXJjaHk9IltbcmVuZGVySGllcmFyY2h5XV0iCiAgICAgICAgZGVidWdnZXItbnVtZXJpYy1hbGVydHM9IltbZGVidWdnZXJOdW1lcmljQWxlcnRzXV0iCiAgICAgICAgbm9kZS1uYW1lcy10by1oZWFsdGgtcGlsbHM9Iltbbm9kZU5hbWVzVG9IZWFsdGhQaWxsc11dIgogICAgICAgIHNlbGVjdGVkLW5vZGU9Int7c2VsZWN0ZWROb2RlfX0iCiAgICAgICAgaGlnaGxpZ2h0ZWQtbm9kZT0ie3toaWdobGlnaHRlZE5vZGV9fSIKICAgICAgICBhcmUtaGVhbHRoLXBpbGxzLWxvYWRpbmc9IltbYXJlSGVhbHRoUGlsbHNMb2FkaW5nXV0iCiAgICAgICAgYWxsLXN0ZXBzLW1vZGUtZW5hYmxlZD0ie3thbGxTdGVwc01vZGVFbmFibGVkfX0iCiAgICAgICAgc3BlY2lmaWMtaGVhbHRoLXBpbGwtc3RlcD0ie3tzcGVjaWZpY0hlYWx0aFBpbGxTdGVwfX0iCiAgICAgICAgaGVhbHRoLXBpbGwtc3RlcC1pbmRleD0ie3toZWFsdGhQaWxsU3RlcEluZGV4fX0iCiAgICAgID4KICAgICAgPC90Zi1ncmFwaC1kZWJ1Z2dlci1kYXRhLWNhcmQ+CiAgICA8L3RlbXBsYXRlPgogIGA7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sbHMucHJvdG90eXBlLCJ0aXRsZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixhcyldLGxzLnByb3RvdHlwZSwiZ3JhcGhIaWVyYXJjaHkiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsWHUpXSxscy5wcm90b3R5cGUsImdyYXBoIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLGxvKV0sbHMucHJvdG90eXBlLCJyZW5kZXJIaWVyYXJjaHkiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sbHMucHJvdG90eXBlLCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxscy5wcm90b3R5cGUsImhlYWx0aFBpbGxTdGVwSW5kZXgiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sbHMucHJvdG90eXBlLCJjb2xvckJ5Iix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLGxzLnByb3RvdHlwZSwiY29tcGF0Tm9kZVRpdGxlIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nLG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxscy5wcm90b3R5cGUsInNlbGVjdGVkTm9kZSIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sbHMucHJvdG90eXBlLCJoaWdobGlnaHRlZE5vZGUiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLGxzLnByb3RvdHlwZSwic2VsZWN0ZWROb2RlSW5jbHVkZSIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGxzLnByb3RvdHlwZSwiZGVidWdnZXJEYXRhRW5hYmxlZCIsdm9pZCAwKTtscz1FKFt5dCgidGYtZ3JhcGgtaW5mbyIpXSxscyk7dmFyIGN1cj17TUFYX05PREVfQ09VTlQ6MWU0LE1BWF9FREdFX0NPVU5UOjFlNH0sdG49Y2xhc3MgZXh0ZW5kcyBHdChtdCl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuaGllcmFyY2h5UGFyYW1zPXIzLHRoaXMuYWxsU3RlcHNNb2RlRW5hYmxlZD0hMSx0aGlzLnNwZWNpZmljSGVhbHRoUGlsbFN0ZXA9MCx0aGlzLmNvbXBhdE5vZGVUaXRsZT0iVFBVIENvbXBhdGliaWxpdHkifWZpdCgpe3RoaXMuJC5ncmFwaC5maXQoKX1kb3dubG9hZEFzSW1hZ2UodCl7cmV0dXJuIFJpKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtsZXQgcj15aWVsZCB0aGlzLiQuZ3JhcGguZ2V0SW1hZ2VCbG9iKCksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7bi5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwociksbi5kb3dubG9hZD10LG4uY2xpY2soKSxVUkwucmV2b2tlT2JqZWN0VVJMKG4uaHJlZil9KX1faXNOb3RDb21wbGV0ZSh0KXtyZXR1cm4gdC52YWx1ZTwxMDB9X2dldENvbnRhaW5lckNsYXNzKHQpe3ZhciByPSJjb250YWluZXIiO3JldHVybiB0LmVycm9yJiYocis9IiBlcnJvciIpLHRoaXMuX2lzTm90Q29tcGxldGUodCkmJihyKz0iIGxvYWRpbmciKSxyfV9vbk5vZGVJbmNsdXNpb25Ub2dnbGVkKHQpe3RoaXMuJC5ncmFwaC5ub2RlVG9nZ2xlRXh0cmFjdCh0LmRldGFpbC5uYW1lKX1fb25Ob2RlU2VyaWVzR3JvdXBUb2dnbGVkKHQpe3RoaXMuJC5ncmFwaC5ub2RlVG9nZ2xlU2VyaWVzR3JvdXAodC5kZXRhaWwubmFtZSl9X3VwZGF0ZU5vZGVJbmNsdWRlKCl7bGV0IHQ9dGhpcy5yZW5kZXJIaWVyYXJjaHk/dGhpcy5yZW5kZXJIaWVyYXJjaHkuZ2V0Tm9kZUJ5TmFtZSh0aGlzLnNlbGVjdGVkTm9kZSk6bnVsbDt0aGlzLl9zZWxlY3RlZE5vZGVJbmNsdWRlPXQ/dC5pbmNsdWRlOnVyLlVOU1BFQ0lGSUVEfV9zbGltR3JhcGhDaGFuZ2VkKCl7aWYoIXRoaXMuZ3JhcGgpcmV0dXJuO2xldHtNQVhfTk9ERV9DT1VOVDp0LE1BWF9FREdFX0NPVU5UOnJ9PWN1cjtPYmplY3Qua2V5cyh0aGlzLmdyYXBoLm5vZGVzKS5sZW5ndGg+dCYmdGhpcy5ncmFwaC5lZGdlcy5sZW5ndGg+ciYmdGhpcy5jb2xvckJ5PT09R24uU1RSVUNUVVJFJiYodGhpcy5jb2xvckJ5PUduLk5PTkUpfV9lbnN1cmVUZW1wbGF0ZXMoKXshdGhpcy5ncmFwaEhpZXJhcmNoeXx8dGhpcy5jb2xvckJ5IT09R24uU1RSVUNUVVJFfHx0aGlzLmdyYXBoSGllcmFyY2h5LmdldFRlbXBsYXRlSW5kZXgoKXx8dGhpcy5ncmFwaEhpZXJhcmNoeS51cGRhdGVUZW1wbGF0ZXMoKX19O3RuLnRlbXBsYXRlPVFgCiAgICA8c3R5bGU+CiAgICAgIDo6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC9kZWVwLyAuY2xvc2UgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgbGVmdDogMTVweDsKICAgICAgICBib3R0b206IDE1cHg7CiAgICAgIH0KCiAgICAgIC5jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuY29udGFpbmVyLmxvYWRpbmcgewogICAgICAgIGN1cnNvcjogcHJvZ3Jlc3M7CiAgICAgICAgb3BhY2l0eTogMC4xOwogICAgICB9CgogICAgICAuY29udGFpbmVyLmxvYWRpbmcuZXJyb3IgewogICAgICAgIGN1cnNvcjogYXV0bzsKICAgICAgfQoKICAgICAgI2luZm8gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogNXB4OwogICAgICAgIHRvcDogNXB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBtYXgtd2lkdGg6IDM4MHB4OwogICAgICAgIG1pbi13aWR0aDogMzIwcHg7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOwogICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tMmRwOwogICAgICB9CgogICAgICAjbWFpbiB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAjcHJvZ3Jlc3MtYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA0MHB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAjcHJvZ3Jlc3MtbXNnIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdpZHRoOiA0MDBweDsKICAgICAgfQoKICAgICAgcGFwZXItcHJvZ3Jlc3MgewogICAgICAgIHdpZHRoOiA0MDBweDsKICAgICAgICAtLXBhcGVyLXByb2dyZXNzLWhlaWdodDogNnB4OwogICAgICAgIC0tcGFwZXItcHJvZ3Jlc3MtYWN0aXZlLWNvbG9yOiAjZjM5MTNlOwogICAgICB9CgogICAgICAuY29udGV4dC1tZW51IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTJlMmUyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWluLXdpZHRoOiAxNTBweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDRkNGQ0OwogICAgICB9CgogICAgICAvZGVlcC8gLmNvbnRleHQtbWVudSB1bCB7CiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgL2RlZXAvIC5jb250ZXh0LW1lbnUgdWwgbGkgewogICAgICAgIHBhZGRpbmc6IDRweCAxNnB4OwogICAgICB9CgogICAgICAvZGVlcC8gLmNvbnRleHQtbWVudSB1bCBsaTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YzOTEzZTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzTm90Q29tcGxldGUocHJvZ3Jlc3MpXV0iPgogICAgICA8ZGl2IGlkPSJwcm9ncmVzcy1iYXIiPgogICAgICAgIDxkaXYgaWQ9InByb2dyZXNzLW1zZyI+W1twcm9ncmVzcy5tc2ddXTwvZGl2PgogICAgICAgIDxwYXBlci1wcm9ncmVzcyB2YWx1ZT0iW1twcm9ncmVzcy52YWx1ZV1dIj48L3BhcGVyLXByb2dyZXNzPgogICAgICA8L2Rpdj4KICAgIDwvdGVtcGxhdGU+CiAgICA8ZGl2IGNsYXNzJD0iW1tfZ2V0Q29udGFpbmVyQ2xhc3MocHJvZ3Jlc3MpXV0iPgogICAgICA8ZGl2IGlkPSJtYWluIj4KICAgICAgICA8dGYtZ3JhcGgKICAgICAgICAgIGlkPSJncmFwaCIKICAgICAgICAgIGdyYXBoLWhpZXJhcmNoeT0ie3tncmFwaEhpZXJhcmNoeX19IgogICAgICAgICAgYmFzaWMtZ3JhcGg9IltbZ3JhcGhdXSIKICAgICAgICAgIGhpZXJhcmNoeS1wYXJhbXM9IltbaGllcmFyY2h5UGFyYW1zXV0iCiAgICAgICAgICByZW5kZXItaGllcmFyY2h5PSJ7e3JlbmRlckhpZXJhcmNoeX19IgogICAgICAgICAgZGV2aWNlcy1mb3Itc3RhdHM9IltbZGV2aWNlc0ZvclN0YXRzXV0iCiAgICAgICAgICBzdGF0cz0iW1tzdGF0c11dIgogICAgICAgICAgc2VsZWN0ZWQtbm9kZT0ie3tzZWxlY3RlZE5vZGV9fSIKICAgICAgICAgIGhpZ2hsaWdodGVkLW5vZGU9Int7X2hpZ2hsaWdodGVkTm9kZX19IgogICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgY29sb3ItYnktcGFyYW1zPSJ7e2NvbG9yQnlQYXJhbXN9fSIKICAgICAgICAgIHByb2dyZXNzPSJ7e3Byb2dyZXNzfX0iCiAgICAgICAgICBlZGdlLWxhYmVsLWZ1bmN0aW9uPSJbW2VkZ2VMYWJlbEZ1bmN0aW9uXV0iCiAgICAgICAgICBlZGdlLXdpZHRoLWZ1bmN0aW9uPSJbW2VkZ2VXaWR0aEZ1bmN0aW9uXV0iCiAgICAgICAgICBub2RlLW5hbWVzLXRvLWhlYWx0aC1waWxscz0iW1tub2RlTmFtZXNUb0hlYWx0aFBpbGxzXV0iCiAgICAgICAgICBoZWFsdGgtcGlsbC1zdGVwLWluZGV4PSJbW2hlYWx0aFBpbGxTdGVwSW5kZXhdXSIKICAgICAgICAgIGhhbmRsZS1ub2RlLXNlbGVjdGVkPSJbW2hhbmRsZU5vZGVTZWxlY3RlZF1dIgogICAgICAgICAgaGFuZGxlLWVkZ2Utc2VsZWN0ZWQ9IltbaGFuZGxlRWRnZVNlbGVjdGVkXV0iCiAgICAgICAgICB0cmFjZS1pbnB1dHM9IltbdHJhY2VJbnB1dHNdXSIKICAgICAgICAgIGF1dG8tZXh0cmFjdC1ub2Rlcz0iW1thdXRvRXh0cmFjdE5vZGVzXV0iCiAgICAgICAgPjwvdGYtZ3JhcGg+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGlkPSJpbmZvIj4KICAgICAgICA8dGYtZ3JhcGgtaW5mbwogICAgICAgICAgaWQ9ImdyYXBoLWluZm8iCiAgICAgICAgICB0aXRsZT0ic2VsZWN0ZWQiCiAgICAgICAgICBncmFwaC1oaWVyYXJjaHk9IltbZ3JhcGhIaWVyYXJjaHldXSIKICAgICAgICAgIHJlbmRlci1oaWVyYXJjaHk9IltbcmVuZGVySGllcmFyY2h5XV0iCiAgICAgICAgICBncmFwaD0iW1tncmFwaF1dIgogICAgICAgICAgc2VsZWN0ZWQtbm9kZT0ie3tzZWxlY3RlZE5vZGV9fSIKICAgICAgICAgIHNlbGVjdGVkLW5vZGUtaW5jbHVkZT0ie3tfc2VsZWN0ZWROb2RlSW5jbHVkZX19IgogICAgICAgICAgaGlnaGxpZ2h0ZWQtbm9kZT0ie3tfaGlnaGxpZ2h0ZWROb2RlfX0iCiAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICBjb2xvci1ieS1wYXJhbXM9IltbY29sb3JCeVBhcmFtc11dIgogICAgICAgICAgZGVidWdnZXItZGF0YS1lbmFibGVkPSJbW2RlYnVnZ2VyRGF0YUVuYWJsZWRdXSIKICAgICAgICAgIGFyZS1oZWFsdGgtcGlsbHMtbG9hZGluZz0iW1thcmVIZWFsdGhQaWxsc0xvYWRpbmddXSIKICAgICAgICAgIGRlYnVnZ2VyLW51bWVyaWMtYWxlcnRzPSJbW2RlYnVnZ2VyTnVtZXJpY0FsZXJ0c11dIgogICAgICAgICAgbm9kZS1uYW1lcy10by1oZWFsdGgtcGlsbHM9Iltbbm9kZU5hbWVzVG9IZWFsdGhQaWxsc11dIgogICAgICAgICAgYWxsLXN0ZXBzLW1vZGUtZW5hYmxlZD0ie3thbGxTdGVwc01vZGVFbmFibGVkfX0iCiAgICAgICAgICBzcGVjaWZpYy1oZWFsdGgtcGlsbC1zdGVwPSJ7e3NwZWNpZmljSGVhbHRoUGlsbFN0ZXB9fSIKICAgICAgICAgIGhlYWx0aC1waWxsLXN0ZXAtaW5kZXg9Int7aGVhbHRoUGlsbFN0ZXBJbmRleH19IgogICAgICAgICAgY29tcGF0LW5vZGUtdGl0bGU9IltbY29tcGF0Tm9kZVRpdGxlXV0iCiAgICAgICAgICBvbi1ub2RlLXRvZ2dsZS1pbmNsdXNpb249Il9vbk5vZGVJbmNsdXNpb25Ub2dnbGVkIgogICAgICAgICAgb24tbm9kZS10b2dnbGUtc2VyaWVzZ3JvdXA9Il9vbk5vZGVTZXJpZXNHcm91cFRvZ2dsZWQiCiAgICAgICAgPjwvdGYtZ3JhcGgtaW5mbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLGFzKV0sdG4ucHJvdG90eXBlLCJncmFwaEhpZXJhcmNoeSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixYdSldLHRuLnByb3RvdHlwZSwiZ3JhcGgiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sdG4ucHJvdG90eXBlLCJoaWVyYXJjaHlQYXJhbXMiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sdG4ucHJvdG90eXBlLCJzdGF0cyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSx0bi5wcm90b3R5cGUsInByb2dyZXNzIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sdG4ucHJvdG90eXBlLCJ0cmFjZUlucHV0cyIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHRuLnByb3RvdHlwZSwiYXV0b0V4dHJhY3ROb2RlcyIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sdG4ucHJvdG90eXBlLCJjb2xvckJ5Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSx0bi5wcm90b3R5cGUsImNvbG9yQnlQYXJhbXMiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLGxvKV0sdG4ucHJvdG90eXBlLCJyZW5kZXJIaWVyYXJjaHkiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSx0bi5wcm90b3R5cGUsImRlYnVnZ2VyRGF0YUVuYWJsZWQiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSx0bi5wcm90b3R5cGUsImFyZUhlYWx0aFBpbGxzTG9hZGluZyIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5LG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLHRuLnByb3RvdHlwZSwiZGVidWdnZXJOdW1lcmljQWxlcnRzIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLHRuLnByb3RvdHlwZSwibm9kZU5hbWVzVG9IZWFsdGhQaWxscyIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSx0bi5wcm90b3R5cGUsImFsbFN0ZXBzTW9kZUVuYWJsZWQiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLHRuLnByb3RvdHlwZSwic3BlY2lmaWNIZWFsdGhQaWxsU3RlcCIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSx0bi5wcm90b3R5cGUsImhlYWx0aFBpbGxTdGVwSW5kZXgiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLHRuLnByb3RvdHlwZSwic2VsZWN0ZWROb2RlIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLHRuLnByb3RvdHlwZSwiY29tcGF0Tm9kZVRpdGxlIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLHRuLnByb3RvdHlwZSwiZWRnZVdpZHRoRnVuY3Rpb24iLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXJ9KSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sdG4ucHJvdG90eXBlLCJfc2VsZWN0ZWROb2RlSW5jbHVkZSIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx0bi5wcm90b3R5cGUsIl9oaWdobGlnaHRlZE5vZGUiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sdG4ucHJvdG90eXBlLCJoYW5kbGVOb2RlU2VsZWN0ZWQiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sdG4ucHJvdG90eXBlLCJlZGdlTGFiZWxGdW5jdGlvbiIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSx0bi5wcm90b3R5cGUsImhhbmRsZUVkZ2VTZWxlY3RlZCIsdm9pZCAwKTtFKFtCdCgic2VsZWN0ZWROb2RlIiwicmVuZGVySGllcmFyY2h5IiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSx0bi5wcm90b3R5cGUsIl91cGRhdGVOb2RlSW5jbHVkZSIsbnVsbCk7RShbQnQoImdyYXBoIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSx0bi5wcm90b3R5cGUsIl9zbGltR3JhcGhDaGFuZ2VkIixudWxsKTtFKFtCdCgiY29sb3JCeSIsImdyYXBoSGllcmFyY2h5IiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSx0bi5wcm90b3R5cGUsIl9lbnN1cmVUZW1wbGF0ZXMiLG51bGwpO3RuPUUoW3l0KCJ0Zi1ncmFwaC1ib2FyZCIpXSx0bik7dmFyIGMzPUVlKE9lKCksMSk7dmFyIEp1PWNsYXNze2lzTm90VHB1T3AodCl7cmV0dXJuIHQudG9Mb3dlckNhc2UoKS5zZWFyY2goImNwdToiKSE9LTF8fHQudG9Mb3dlckNhc2UoKS5zZWFyY2goImdwdToiKSE9LTE/ITA6dC50b0xvd2VyQ2FzZSgpLnNlYXJjaCgidHB1Iik9PS0xfW9wVmFsaWQodCl7cmV0dXJuIHQubmFtZS5zZWFyY2goTWEpPT0wfHwhdC5vcHx8dC5kZXZpY2UmJnRoaXMuaXNOb3RUcHVPcCh0LmRldmljZSl8fHQuZGV2aWNlJiZ0LmRldmljZS5zZWFyY2goIlRQVV9TWVNURU0iKSE9LTE/ITA6YzMuaW5jbHVkZXMoSnUuV0hJVEVMSVNULHQub3ApfX07SnUuV0hJVEVMSVNUPVsiQWJzIiwiQWNvcyIsIkFjb3NoIiwiQWRkIiwiQWRkTiIsIkFkZFYyIiwiQWRqdXN0Q29udHJhc3R2MiIsIkFkanVzdEh1ZSIsIkFkanVzdFNhdHVyYXRpb24iLCJBbGwiLCJBbGxUb0FsbCIsIkFuZ2xlIiwiQW55IiwiQXBwcm94aW1hdGVFcXVhbCIsIkFyZ01heCIsIkFyZ01pbiIsIkFzaW4iLCJBc2luaCIsIkFzc2VydCIsIkFzc2lnbkFkZFZhcmlhYmxlT3AiLCJBc3NpZ25TdWJWYXJpYWJsZU9wIiwiQXNzaWduVmFyaWFibGVPcCIsIkF0YW4iLCJBdGFuMiIsIkF0YW5oIiwiQXZnUG9vbCIsIkF2Z1Bvb2wzRCIsIkF2Z1Bvb2wzREdyYWQiLCJBdmdQb29sR3JhZCIsIkJhdGNoTWF0TXVsIiwiQmF0Y2hNYXRNdWxWMiIsIkJhdGNoVG9TcGFjZSIsIkJhdGNoVG9TcGFjZU5EIiwiQmVzc2VsSTBlIiwiQmVzc2VsSTFlIiwiQmV0YWluYyIsIkJpYXNBZGQiLCJCaWFzQWRkR3JhZCIsIkJpYXNBZGRWMSIsIkJpdGNhc3QiLCJCaXR3aXNlQW5kIiwiQml0d2lzZU9yIiwiQml0d2lzZVhvciIsIkJyb2FkY2FzdEFyZ3MiLCJCcm9hZGNhc3RHcmFkaWVudEFyZ3MiLCJCcm9hZGNhc3RUbyIsIkJ1Y2tldGl6ZSIsIkNhc2UiLCJDYXN0IiwiQ2VpbCIsIkNoZWNrTnVtZXJpY3MiLCJDaG9sZXNreSIsIkNsaXBCeVZhbHVlIiwiQ29sbGVjdGl2ZVBlcm11dGUiLCJDb2xsZWN0aXZlUmVkdWNlVjIiLCJDb21wbGV4IiwiQ29tcGxleEFicyIsIkNvbmNhdCIsIkNvbmNhdE9mZnNldCIsIkNvbmNhdFYyIiwiQ29uaiIsIkNvbmp1Z2F0ZVRyYW5zcG9zZSIsIkNvbnN0IiwiQ29udHJvbFRyaWdnZXIiLCJDb252MkQiLCJDb252MkRCYWNrcHJvcEZpbHRlciIsIkNvbnYyREJhY2twcm9wSW5wdXQiLCJDb252M0QiLCJDb252M0RCYWNrcHJvcEZpbHRlclYyIiwiQ29udjNEQmFja3Byb3BJbnB1dFYyIiwiQ29zIiwiQ29zaCIsIkNyb3NzIiwiQ3Jvc3NSZXBsaWNhU3VtIiwiQ3VtcHJvZCIsIkN1bXN1bSIsIkRhdGFGb3JtYXREaW1NYXAiLCJEYXRhRm9ybWF0VmVjUGVybXV0ZSIsIkRlcHRoVG9TcGFjZSIsIkRlcHRod2lzZUNvbnYyZE5hdGl2ZSIsIkRlcHRod2lzZUNvbnYyZE5hdGl2ZUJhY2twcm9wRmlsdGVyIiwiRGVwdGh3aXNlQ29udjJkTmF0aXZlQmFja3Byb3BJbnB1dCIsIkRlcXVhbnRpemUiLCJEZXZpY2VJbmRleCIsIkRpYWciLCJEaWFnUGFydCIsIkRpZ2FtbWEiLCJEaXYiLCJEaXZOb05hbiIsIkR5bmFtaWNTdGl0Y2giLCJFaW5zdW0iLCJFbHUiLCJFbHVHcmFkIiwiRW1wdHkiLCJFbXB0eVRlbnNvckxpc3QiLCJFbnN1cmVTaGFwZSIsIkVxdWFsIiwiRXJmIiwiRXJmYyIsIkVyZmludiIsIkV4cCIsIkV4cGFuZERpbXMiLCJFeHBtMSIsIkV4dHJhY3RJbWFnZVBhdGNoZXMiLCJGRlQiLCJGRlQyRCIsIkZGVDNEIiwiRmFrZVBhcmFtIiwiRmFrZVF1YW50V2l0aE1pbk1heEFyZ3MiLCJGYWtlUXVhbnRXaXRoTWluTWF4QXJnc0dyYWRpZW50IiwiRmFrZVF1YW50V2l0aE1pbk1heFZhcnMiLCJGYWtlUXVhbnRXaXRoTWluTWF4VmFyc0dyYWRpZW50IiwiRmlsbCIsIkZsb29yIiwiRmxvb3JEaXYiLCJGbG9vck1vZCIsIkZ1c2VkQmF0Y2hOb3JtIiwiRnVzZWRCYXRjaE5vcm1HcmFkIiwiRnVzZWRCYXRjaE5vcm1HcmFkVjIiLCJGdXNlZEJhdGNoTm9ybUdyYWRWMyIsIkZ1c2VkQmF0Y2hOb3JtVjIiLCJGdXNlZEJhdGNoTm9ybVYzIiwiR2F0aGVyIiwiR2F0aGVyTmQiLCJHYXRoZXJWMiIsIkdldEl0ZW0iLCJHcmVhdGVyIiwiR3JlYXRlckVxdWFsIiwiSFNWVG9SR0IiLCJJRkZUIiwiSUZGVDJEIiwiSUZGVDNEIiwiSVJGRlQiLCJJUkZGVDJEIiwiSVJGRlQzRCIsIklkZW50aXR5IiwiSWRlbnRpdHlOIiwiSWYiLCJJZ2FtbWEiLCJJZ2FtbWFHcmFkQSIsIklnYW1tYWMiLCJJbWFnIiwiSW5Ub3BLVjIiLCJJbmZlZWREZXF1ZXVlIiwiSW5mZWVkRGVxdWV1ZVR1cGxlIiwiSW5wbGFjZUFkZCIsIklucGxhY2VVcGRhdGUiLCJJbnYiLCJJbnZlcnQiLCJJbnZlcnRQZXJtdXRhdGlvbiIsIklzRmluaXRlIiwiSXNJbmYiLCJJc05hbiIsIkt0aE9yZGVyU3RhdGlzdGljIiwiTDJMb3NzIiwiTFJOIiwiTFJOR3JhZCIsIkxlYWt5UmVsdSIsIkxlYWt5UmVsdUdyYWQiLCJMZWZ0U2hpZnQiLCJMZXNzIiwiTGVzc0VxdWFsIiwiTGdhbW1hIiwiTGluU3BhY2UiLCJMaXN0RGlmZiIsIkxvZyIsIkxvZzFwIiwiTG9nU29mdG1heCIsIkxvZ2ljYWxBbmQiLCJMb2dpY2FsTm90IiwiTG9naWNhbE9yIiwiTG93ZXJCb3VuZCIsIk1ha2VVbmlxdWUiLCJNYXRNdWwiLCJNYXRyaXhCYW5kUGFydCIsIk1hdHJpeERpYWciLCJNYXRyaXhEaWFnUGFydCIsIk1hdHJpeERpYWdQYXJ0VjIiLCJNYXRyaXhEaWFnUGFydFYzIiwiTWF0cml4RGlhZ1YyIiwiTWF0cml4RGlhZ1YzIiwiTWF0cml4SW52ZXJzZSIsIk1hdHJpeFNldERpYWciLCJNYXRyaXhTZXREaWFnVjIiLCJNYXRyaXhTZXREaWFnVjMiLCJNYXRyaXhTb2x2ZSIsIk1hdHJpeFRyaWFuZ3VsYXJTb2x2ZSIsIk1heCIsIk1heFBvb2wiLCJNYXhQb29sM0QiLCJNYXhQb29sM0RHcmFkIiwiTWF4UG9vbDNER3JhZEdyYWQiLCJNYXhQb29sR3JhZCIsIk1heFBvb2xHcmFkR3JhZCIsIk1heFBvb2xHcmFkR3JhZFYyIiwiTWF4UG9vbEdyYWRWMiIsIk1heFBvb2xWMiIsIk1heGltdW0iLCJNZWFuIiwiTWluIiwiTWluaW11bSIsIk1pcnJvclBhZCIsIk1pcnJvclBhZEdyYWQiLCJNb2QiLCJNdWwiLCJNdWxOb05hbiIsIk11bHRpbm9taWFsIiwiTmR0cmkiLCJOZWciLCJOZXh0QWZ0ZXIiLCJOb09wIiwiTm9uTWF4U3VwcHJlc3Npb25WNCIsIk5vdEVxdWFsIiwiT25lSG90IiwiT25lc0xpa2UiLCJPdXRmZWVkRW5xdWV1ZSIsIk91dGZlZWRFbnF1ZXVlVHVwbGUiLCJQYWNrIiwiUGFkIiwiUGFkVjIiLCJQYXJhbGxlbER5bmFtaWNTdGl0Y2giLCJQYXJhbWV0ZXJpemVkVHJ1bmNhdGVkTm9ybWFsIiwiUGFydGl0aW9uZWRDYWxsIiwiUGxhY2Vob2xkZXJXaXRoRGVmYXVsdCIsIlBvbHlnYW1tYSIsIlBvcHVsYXRpb25Db3VudCIsIlBvdyIsIlByZXZlbnRHcmFkaWVudCIsIlByb2QiLCJRciIsIlF1YW50aXplQW5kRGVxdWFudGl6ZVYyIiwiUXVhbnRpemVBbmREZXF1YW50aXplVjMiLCJSRkZUIiwiUkZGVDJEIiwiUkZGVDNEIiwiUkdCVG9IU1YiLCJSYW5kb21HYW1tYUdyYWQiLCJSYW5kb21TaHVmZmxlIiwiUmFuZG9tU3RhbmRhcmROb3JtYWwiLCJSYW5kb21Vbmlmb3JtIiwiUmFuZG9tVW5pZm9ybUludCIsIlJhbmdlIiwiUmFuayIsIlJlYWRWYXJpYWJsZU9wIiwiUmVhbCIsIlJlYWxEaXYiLCJSZWNpcHJvY2FsIiwiUmVjaXByb2NhbEdyYWQiLCJSZWx1IiwiUmVsdTYiLCJSZWx1NkdyYWQiLCJSZWx1R3JhZCIsIlJlc2hhcGUiLCJSZXNpemVCaWxpbmVhciIsIlJlc2l6ZUJpbGluZWFyR3JhZCIsIlJlc2l6ZU5lYXJlc3ROZWlnaGJvciIsIlJlc2l6ZU5lYXJlc3ROZWlnaGJvckdyYWQiLCJSZXNvdXJjZUFwcGx5QWRhTWF4IiwiUmVzb3VyY2VBcHBseUFkYWRlbHRhIiwiUmVzb3VyY2VBcHBseUFkYWdyYWQiLCJSZXNvdXJjZUFwcGx5QWRhZ3JhZERBIiwiUmVzb3VyY2VBcHBseUFkYWdyYWRWMiIsIlJlc291cmNlQXBwbHlBZGFtIiwiUmVzb3VyY2VBcHBseUFkZFNpZ24iLCJSZXNvdXJjZUFwcGx5Q2VudGVyZWRSTVNQcm9wIiwiUmVzb3VyY2VBcHBseUZ0cmwiLCJSZXNvdXJjZUFwcGx5RnRybFYyIiwiUmVzb3VyY2VBcHBseUdyYWRpZW50RGVzY2VudCIsIlJlc291cmNlQXBwbHlLZXJhc01vbWVudHVtIiwiUmVzb3VyY2VBcHBseU1vbWVudHVtIiwiUmVzb3VyY2VBcHBseVBvd2VyU2lnbiIsIlJlc291cmNlQXBwbHlQcm94aW1hbEFkYWdyYWQiLCJSZXNvdXJjZUFwcGx5UHJveGltYWxHcmFkaWVudERlc2NlbnQiLCJSZXNvdXJjZUFwcGx5Uk1TUHJvcCIsIlJlc291cmNlR2F0aGVyIiwiUmVzb3VyY2VTY2F0dGVyQWRkIiwiUmVzb3VyY2VTY2F0dGVyRGl2IiwiUmVzb3VyY2VTY2F0dGVyTWF4IiwiUmVzb3VyY2VTY2F0dGVyTWluIiwiUmVzb3VyY2VTY2F0dGVyTXVsIiwiUmVzb3VyY2VTY2F0dGVyTmRBZGQiLCJSZXNvdXJjZVNjYXR0ZXJOZFN1YiIsIlJlc291cmNlU2NhdHRlck5kVXBkYXRlIiwiUmVzb3VyY2VTY2F0dGVyU3ViIiwiUmVzb3VyY2VTY2F0dGVyVXBkYXRlIiwiUmVzb3VyY2VTdHJpZGVkU2xpY2VBc3NpZ24iLCJSZXZlcnNlIiwiUmV2ZXJzZVNlcXVlbmNlIiwiUmV2ZXJzZVYyIiwiUmlnaHRTaGlmdCIsIlJpbnQiLCJSbmdSZWFkQW5kU2tpcCIsIlJuZ1NraXAiLCJSb2xsIiwiUm91bmQiLCJSc3FydCIsIlJzcXJ0R3JhZCIsIlNjYXR0ZXJOZCIsIlNlbGVjdCIsIlNlbGVjdFYyIiwiU2VsZkFkam9pbnRFaWdWMiIsIlNlbHUiLCJTZWx1R3JhZCIsIlNoYXBlIiwiU2hhcGVOIiwiU2lnbW9pZCIsIlNpZ21vaWRHcmFkIiwiU2lnbiIsIlNpbiIsIlNpbmgiLCJTaXplIiwiU2xpY2UiLCJTbmFwc2hvdCIsIlNvZnRtYXgiLCJTb2Z0bWF4Q3Jvc3NFbnRyb3B5V2l0aExvZ2l0cyIsIlNvZnRwbHVzIiwiU29mdHBsdXNHcmFkIiwiU29mdHNpZ24iLCJTb2Z0c2lnbkdyYWQiLCJTcGFjZVRvQmF0Y2giLCJTcGFjZVRvQmF0Y2hORCIsIlNwYWNlVG9EZXB0aCIsIlNwYXJzZU1hdE11bCIsIlNwYXJzZVNvZnRtYXhDcm9zc0VudHJvcHlXaXRoTG9naXRzIiwiU3BhcnNlVG9EZW5zZSIsIlNwbGl0IiwiU3BsaXRWIiwiU3FydCIsIlNxcnRHcmFkIiwiU3F1YXJlIiwiU3F1YXJlZERpZmZlcmVuY2UiLCJTcXVlZXplIiwiU3RhY2tDbG9zZVYyIiwiU3RhY2tQb3BWMiIsIlN0YWNrUHVzaFYyIiwiU3RhY2tWMiIsIlN0YXRlZnVsUGFydGl0aW9uZWRDYWxsIiwiU3RhdGVmdWxTdGFuZGFyZE5vcm1hbFYyIiwiU3RhdGVmdWxUcnVuY2F0ZWROb3JtYWwiLCJTdGF0ZWZ1bFVuaWZvcm0iLCJTdGF0ZWZ1bFVuaWZvcm1GdWxsSW50IiwiU3RhdGVmdWxVbmlmb3JtSW50IiwiU3RhdGVsZXNzQ2FzZSIsIlN0YXRlbGVzc0lmIiwiU3RhdGVsZXNzTXVsdGlub21pYWwiLCJTdGF0ZWxlc3NSYW5kb21HZXRBbGciLCJTdGF0ZWxlc3NSYW5kb21HZXRLZXlDb3VudGVyIiwiU3RhdGVsZXNzUmFuZG9tR2V0S2V5Q291bnRlckFsZyIsIlN0YXRlbGVzc1JhbmRvbU5vcm1hbCIsIlN0YXRlbGVzc1JhbmRvbU5vcm1hbFYyIiwiU3RhdGVsZXNzUmFuZG9tVW5pZm9ybSIsIlN0YXRlbGVzc1JhbmRvbVVuaWZvcm1GdWxsSW50IiwiU3RhdGVsZXNzUmFuZG9tVW5pZm9ybUZ1bGxJbnRWMiIsIlN0YXRlbGVzc1JhbmRvbVVuaWZvcm1JbnQiLCJTdGF0ZWxlc3NSYW5kb21Vbmlmb3JtSW50VjIiLCJTdGF0ZWxlc3NSYW5kb21Vbmlmb3JtVjIiLCJTdGF0ZWxlc3NUcnVuY2F0ZWROb3JtYWwiLCJTdGF0ZWxlc3NUcnVuY2F0ZWROb3JtYWxWMiIsIlN0YXRlbGVzc1doaWxlIiwiU3RvcEdyYWRpZW50IiwiU3RyaWRlZFNsaWNlIiwiU3RyaWRlZFNsaWNlR3JhZCIsIlN1YiIsIlN1bSIsIlN2ZCIsIlN5bWJvbGljR3JhZGllbnQiLCJUUFVFbWJlZGRpbmdBY3RpdmF0aW9ucyIsIlRhbiIsIlRhbmgiLCJUYW5oR3JhZCIsIlRlbnNvckFycmF5Q2xvc2VWMyIsIlRlbnNvckFycmF5Q29uY2F0VjMiLCJUZW5zb3JBcnJheUdhdGhlclYzIiwiVGVuc29yQXJyYXlHcmFkVjMiLCJUZW5zb3JBcnJheVJlYWRWMyIsIlRlbnNvckFycmF5U2NhdHRlclYzIiwiVGVuc29yQXJyYXlTaXplVjMiLCJUZW5zb3JBcnJheVNwbGl0VjMiLCJUZW5zb3JBcnJheVYzIiwiVGVuc29yQXJyYXlXcml0ZVYzIiwiVGVuc29yTGlzdENvbmNhdFYyIiwiVGVuc29yTGlzdEVsZW1lbnRTaGFwZSIsIlRlbnNvckxpc3RGcm9tVGVuc29yIiwiVGVuc29yTGlzdEdhdGhlciIsIlRlbnNvckxpc3RHZXRJdGVtIiwiVGVuc29yTGlzdExlbmd0aCIsIlRlbnNvckxpc3RQb3BCYWNrIiwiVGVuc29yTGlzdFB1c2hCYWNrIiwiVGVuc29yTGlzdFJlc2VydmUiLCJUZW5zb3JMaXN0U2V0SXRlbSIsIlRlbnNvckxpc3RTcGxpdCIsIlRlbnNvckxpc3RTdGFjayIsIlRlbnNvclNjYXR0ZXJBZGQiLCJUZW5zb3JTY2F0dGVyTWF4IiwiVGVuc29yU2NhdHRlck1pbiIsIlRlbnNvclNjYXR0ZXJTdWIiLCJUZW5zb3JTY2F0dGVyVXBkYXRlIiwiVGVuc29yU3RyaWRlZFNsaWNlVXBkYXRlIiwiVGlsZSIsIlRvcEtVbmlxdWUiLCJUb3BLVjIiLCJUb3BLV2l0aFVuaXF1ZSIsIlRyYW5zcG9zZSIsIlRyaWRpYWdvbmFsU29sdmUiLCJUcnVuY2F0ZURpdiIsIlRydW5jYXRlTW9kIiwiVHJ1bmNhdGVkTm9ybWFsIiwiVW5pcXVlIiwiVW5wYWNrIiwiVW5zb3J0ZWRTZWdtZW50TWF4IiwiVW5zb3J0ZWRTZWdtZW50TWluIiwiVW5zb3J0ZWRTZWdtZW50UHJvZCIsIlVuc29ydGVkU2VnbWVudFN1bSIsIlVwcGVyQm91bmQiLCJWYXJJc0luaXRpYWxpemVkT3AiLCJWYXJpYWJsZVNoYXBlIiwiV2hlcmUiLCJXaGlsZSIsIlhkaXZ5IiwiWGxhQnJvYWRjYXN0SGVscGVyIiwiWGxhQ29udiIsIlhsYUNvbnZWMiIsIlhsYURlcXVhbnRpemUiLCJYbGFEb3QiLCJYbGFEb3RWMiIsIlhsYUR5bmFtaWNTbGljZSIsIlhsYUR5bmFtaWNVcGRhdGVTbGljZSIsIlhsYUVpbnN1bSIsIlhsYUdhdGhlciIsIlhsYUhvc3RDb21wdXRlIiwiWGxhSWYiLCJYbGFLZXlWYWx1ZVNvcnQiLCJYbGFQYWQiLCJYbGFSZWN2IiwiWGxhUmVjdkZyb21Ib3N0IiwiWGxhUmVkdWNlIiwiWGxhUmVkdWNlV2luZG93IiwiWGxhUmVwbGljYUlkIiwiWGxhU2NhdHRlciIsIlhsYVNlbGVjdEFuZFNjYXR0ZXIiLCJYbGFTZWxmQWRqb2ludEVpZyIsIlhsYVNlbmQiLCJYbGFTZW5kVG9Ib3N0IiwiWGxhU2V0Qm91bmQiLCJYbGFTZXREeW5hbWljRGltZW5zaW9uU2l6ZSIsIlhsYVNoYXJkaW5nIiwiWGxhU29ydCIsIlhsYVNwbWRGdWxsVG9TaGFyZFNoYXBlIiwiWGxhU3BtZFNoYXJkVG9GdWxsU2hhcGUiLCJYbGFTdmQiLCJYbGFWYXJpYWRpY1JlZHVjZSIsIlhsYVZhcmlhZGljU29ydCIsIlhsYVdoaWxlIiwiWGxvZzFweSIsIlhsb2d5IiwiWmVyb3NMaWtlIiwiWmV0YSIsIkVudGVyIiwiRXhpdCIsIkxvb3BDb25kIiwiTWVyZ2UiLCJOZXh0SXRlcmF0aW9uIiwiU3dpdGNoIiwiX0FyZyIsIl9BcnJheVRvTGlzdCIsIl9GdXNlZEJhdGNoTm9ybUV4IiwiX0xpc3RUb0FycmF5IiwiX1BhcmFsbGVsQ29uY2F0VXBkYXRlIiwiX1JlY3ZUUFVFbWJlZGRpbmdBY3RpdmF0aW9ucyIsIl9SZWN2VFBVRW1iZWRkaW5nRGVkdXBsaWNhdGlvbkRhdGEiLCJfUmV0dmFsIiwiX1NlbmRUUFVFbWJlZGRpbmdHcmFkaWVudHMiLCJfVFBVQ29tcGlsZSIsIl9UUFVFeGVjdXRlIiwiX1VuYXJ5T3BzQ29tcG9zaXRpb24iLCJUUFVDb21waWxhdGlvblJlc3VsdCIsIlRQVVJlcGxpY2F0ZWRJbnB1dCIsIlRQVVJlcGxpY2F0ZWRPdXRwdXQiLCJUUFVSZXBsaWNhdGVNZXRhZGF0YSIsIk1lcmdlVjJDaGVja3BvaW50cyIsIlJlc3RvcmVWMiIsIlNhdmVWMiIsIkFib3J0IiwiQXNzZXJ0IiwiQXNzaWduIiwiUGxhY2Vob2xkZXIiLCJQbGFjZWhvbGRlclYyIiwiU2hhcmRlZEZpbGVuYW1lIiwiU3RyaW5nSm9pbiIsIlZhcmlhYmxlIiwiVmFyaWFibGVWMiIsIlZhckhhbmRsZU9wIiwiQXVkaW9TdW1tYXJ5IiwiQXVkaW9TdW1tYXJ5VjIiLCJEZWJ1Z051bWVyaWNTdW1tYXJ5IiwiSGlzdG9ncmFtU3VtbWFyeSIsIkltYWdlU3VtbWFyeSIsIk1lcmdlU3VtbWFyeSIsIlNjYWxhclN1bW1hcnkiLCJTdGF0c0FnZ3JlZ2F0b3JTdW1tYXJ5Il07ZnVuY3Rpb24gWmxlKGUsdCl7aWYodD09PW51bGwpdGhyb3cgbmV3IEVycm9yKCJDb21wYXRpYmlsaXR5IHByb3ZpZGVyIHJlcXVpcmVkLCBidXQgZ290OiAiK3QpO2MzLmVhY2goZS5ub2RlcyxyPT57ci5jb21wYXRpYmxlPXQub3BWYWxpZChyKSxjMy5lYWNoKHIuaW5FbWJlZGRpbmdzLG49PntuLmNvbXBhdGlibGU9dC5vcFZhbGlkKG4pfSksYzMuZWFjaChyLm91dEVtYmVkZGluZ3Msbj0+e24uY29tcGF0aWJsZT10Lm9wVmFsaWQobil9KX0pfXZhciBnUD1FZShPZSgpLDEpO3ZhciBKbGU9RWUoT2UoKSwxKTt2YXIgTGw9Y2xhc3MgZXh0ZW5kcyBHdChtdCl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3Jhd1JlZ2V4SW5wdXQ9IiIsdGhpcy5fcHJldmlvdXNSZWdleElucHV0PSIiLHRoaXMuX3NlYXJjaFRpbWVvdXREZWxheT0xNTAsdGhpcy5fbWF4UmVnZXhSZXN1bHRzPTQyfWdldCBfcmVnZXhJbnB1dCgpe3ZhciB0PXRoaXMucmVuZGVySGllcmFyY2h5LHI9dGhpcy5fcmF3UmVnZXhJbnB1dDtyZXR1cm4gci50cmltKCl9X3JlZ2V4SW5wdXRDaGFuZ2VkKCl7dmFyIHQ9dGhpcy5fcmVnZXhJbnB1dDt0aGlzLl9yZXF1ZXN0U2VhcmNoKCl9X2NsZWFyU2VhcmNoUmVzdWx0cygpe3RoaXMuc2V0KCJfcmVnZXhNYXRjaGVzIixbXSl9X3JlcXVlc3RTZWFyY2goKXtpZighdGhpcy5fc2VhcmNoUGVuZGluZyl7aWYodGhpcy5fcmVnZXhJbnB1dD09PXRoaXMuX3ByZXZpb3VzUmVnZXhJbnB1dCl7dGhpcy5fc2VhcmNoUGVuZGluZz0hMTtyZXR1cm59dGhpcy5fc2VhcmNoUGVuZGluZz0hMCx0aGlzLl9leGVjdXRlU2VhcmNoKCksdGhpcy5hc3luYygoKT0+e3RoaXMuX3NlYXJjaFBlbmRpbmc9ITEsdGhpcy5fcmVxdWVzdFNlYXJjaCgpfSx0aGlzLl9zZWFyY2hUaW1lb3V0RGVsYXkpfX1fZXhlY3V0ZVNlYXJjaCgpe2lmKHRoaXMuX3ByZXZpb3VzUmVnZXhJbnB1dD10aGlzLl9yZWdleElucHV0LCF0aGlzLl9yZWdleElucHV0KXt0aGlzLl9jbGVhclNlYXJjaFJlc3VsdHMoKTtyZXR1cm59dHJ5e3ZhciB0PW5ldyBSZWdFeHAodGhpcy5fcmVnZXhJbnB1dCl9Y2F0Y2goaSl7dGhpcy5fY2xlYXJTZWFyY2hSZXN1bHRzKCk7cmV0dXJufWxldCByPVtdLG49dGhpcy5yZW5kZXJIaWVyYXJjaHkuaGllcmFyY2h5LmdldE5vZGVNYXAoKTtKbGUuZWFjaChuLChpLG8pPT57aWYoci5sZW5ndGg+PXRoaXMuX21heFJlZ2V4UmVzdWx0cylyZXR1cm4hMTshdC50ZXN0KG8pfHxyLnB1c2gobyl9KSx0aGlzLnNldCgiX3JlZ2V4TWF0Y2hlcyIscil9X21hdGNoQ2xpY2tlZCh0KXtsZXQgcj10Lm1vZGVsLml0ZW07dGhpcy5zZXQoInNlbGVjdGVkTm9kZSIsciksUG8oe2FjdGlvbklkOmpyLk5PREVfU0VBUkNIX1JFU1VMVF9GT0NVU0VEfSl9fTtMbC50ZW1wbGF0ZT1RYAogICAgPGRpdiBpZD0ic2VhcmNoLWNvbnRhaW5lciI+CiAgICAgIDxwYXBlci1pbnB1dAogICAgICAgIGlkPSJydW5zLXJlZ2V4IgogICAgICAgIGxhYmVsPSJTZWFyY2ggbm9kZXMgKHJlZ2V4KSIKICAgICAgICB2YWx1ZT0ie3tfcmF3UmVnZXhJbnB1dH19IgogICAgICA+CiAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgIDxkaXYgaWQ9InNlYXJjaC1yZXN1bHRzLWFuY2hvciI+CiAgICAgICAgPGRpdiBpZD0ic2VhcmNoLXJlc3VsdHMiPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfcmVnZXhNYXRjaGVzXV0iPgogICAgICAgICAgICA8ZGl2IGlkPSJzZWFyY2gtbWF0Y2giIG9uLWNsaWNrPSJfbWF0Y2hDbGlja2VkIj5bW2l0ZW1dXTwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxzdHlsZT4KICAgICAgI3NlYXJjaC1jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICB9CgogICAgICAjcnVucy1yZWdleCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICNzZWFyY2gtcmVzdWx0cy1hbmNob3IgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgI3NlYXJjaC1yZXN1bHRzIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgICNzZWFyY2gtbWF0Y2ggewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIHBhZGRpbmc6IDNweDsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBkaXJlY3Rpb246IHJ0bDsKICAgICAgfQoKICAgICAgI3NlYXJjaC1tYXRjaDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGItb3JhbmdlLXdlYWspOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLExsLnByb3RvdHlwZSwicmVuZGVySGllcmFyY2h5Iix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nLG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxMbC5wcm90b3R5cGUsInNlbGVjdGVkTm9kZSIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxMbC5wcm90b3R5cGUsIl9yYXdSZWdleElucHV0Iix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLExsLnByb3RvdHlwZSwiX3ByZXZpb3VzUmVnZXhJbnB1dCIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxMbC5wcm90b3R5cGUsIl9zZWFyY2hUaW1lb3V0RGVsYXkiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxMbC5wcm90b3R5cGUsIl9zZWFyY2hQZW5kaW5nIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLExsLnByb3RvdHlwZSwiX21heFJlZ2V4UmVzdWx0cyIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sTGwucHJvdG90eXBlLCJfcmVnZXhNYXRjaGVzIix2b2lkIDApO0UoW1J0KCJyZW5kZXJIaWVyYXJjaHkiLCJfcmF3UmVnZXhJbnB1dCIpLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLExsLnByb3RvdHlwZSwiX3JlZ2V4SW5wdXQiLG51bGwpO0UoW0J0KCJfcmVnZXhJbnB1dCIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sTGwucHJvdG90eXBlLCJfcmVnZXhJbnB1dENoYW5nZWQiLG51bGwpO0xsPUUoW3l0KCJ0Zi1ncmFwaC1ub2RlLXNlYXJjaCIpXSxMbCk7dmFyIGxjdD0vZGV2aWNlOihbXjpdKzpbMC05XSspJC8sc2N0PVt7cmVnZXg6bGN0fV0sUWxlPVtdLHV1cj1uZXcgU2V0KFtHbi5DT01QVVRFX1RJTUUsR24uTUVNT1JZXSksUG49Y2xhc3MgZXh0ZW5kcyBHdChfbyhtdCkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLkNvbG9yQnk9R24sdGhpcy5zdGF0cz1udWxsLHRoaXMuZGV2aWNlc0ZvclN0YXRzPW51bGwsdGhpcy5jb2xvckJ5PUduLlNUUlVDVFVSRSx0aGlzLmRhdGFzZXRzPVtdLHRoaXMuX3NlbGVjdGVkUnVuSW5kZXg9MCx0aGlzLnRyYWNlSW5wdXRzPSExLHRoaXMuYXV0b0V4dHJhY3ROb2Rlcz0hMCx0aGlzLl9zZWxlY3RlZFRhZ0luZGV4PTAsdGhpcy5fc2VsZWN0ZWRHcmFwaFR5cGU9QnMuT1BfR1JBUEgsdGhpcy5zaG93U2Vzc2lvblJ1bnNEcm9wZG93bj0hMCx0aGlzLnNob3dVcGxvYWRCdXR0b249ITAsdGhpcy5fbGVnZW5kT3BlbmVkPSEwLHRoaXMuX2Rvd25sb2FkRmlsZW5hbWU9ImdyYXBoLnBuZyJ9X29uR3JhcGhUeXBlQ2hhbmdlZEJ5VXNlckdlc3R1cmUoKXtQbyh7YWN0aW9uSWQ6anIuR1JBUEhfVFlQRV9DSEFOR0VELGV2ZW50TGFiZWw6dGhpcy5fc2VsZWN0ZWRHcmFwaFR5cGV9KX1fb25Db2xvckJ5Q2hhbmdlZEJ5VXNlckdlc3R1cmUoKXtQbyh7YWN0aW9uSWQ6anIuTk9ERV9DT0xPUl9NT0RFX0NIQU5HRUQsZXZlbnRMYWJlbDp0aGlzLmNvbG9yQnl9KX1fb25UcmFjZUlucHV0c0NoYW5nZWRCeVVzZXJHZXN0dXJlKCl7UG8oe2FjdGlvbklkOmpyLlRSQUNFX0lOUFVUX01PREVfVE9HR0xFRH0pfV94bGFDbHVzdGVyc1Byb3ZpZGVkKHQpe3JldHVybiB0JiZ0LmhpZXJhcmNoeSYmdC5oaWVyYXJjaHkueGxhQ2x1c3RlcnMubGVuZ3RoPjB9X3N0YXRzQ2hhbmdlZCh0KXtpZih0IT1udWxsKXt2YXIgcj17fSxuPWdQLmVhY2godC5kZXZfc3RhdHMsZnVuY3Rpb24oaSl7dmFyIG89Z1Auc29tZShzY3QsZnVuY3Rpb24ocyl7cmV0dXJuIHMucmVnZXgudGVzdChpLmRldmljZSl9KSxhPWdQLnNvbWUoUWxlLGZ1bmN0aW9uKHMpe3JldHVybiBzLnJlZ2V4LnRlc3QoaS5kZXZpY2UpfSk7byYmIWEmJihyW2kuZGV2aWNlXT0hMCl9KTt0aGlzLnNldCgiZGV2aWNlc0ZvclN0YXRzIixyKX19Z2V0IF9jdXJyZW50RGV2aWNlcygpe3ZhciB0PXRoaXMuZGV2aWNlc0ZvclN0YXRzO2xldCByPXRoaXMuc3RhdHMsbz0ocj9yLmRldl9zdGF0czpbXSkubWFwKHM9PnMuZGV2aWNlKS5maWx0ZXIocz0+c2N0LnNvbWUobD0+bC5yZWdleC50ZXN0KHMpKSksYT16bHQobyk7aWYoYS5sZW5ndGg9PTEpe2xldCBzPWFbMF0ubWF0Y2gobGN0KTtzJiYoYVswXT1zWzFdKX1yZXR1cm4gby5tYXAoKHMsbCk9PntsZXQgYz1udWxsO3JldHVybiBRbGUuZm9yRWFjaCh1PT57dS5yZWdleC50ZXN0KHMpJiYoYz11Lm1zZyl9KSx7ZGV2aWNlOnMsc3VmZml4OmFbbF0sdXNlZDp0PT1udWxsP3ZvaWQgMDp0W3NdLGlnbm9yZWRNc2c6Y319KX1fZGV2aWNlQ2hlY2tib3hDbGlja2VkKHQpe2xldCByPXQudGFyZ2V0LG49T2JqZWN0LmFzc2lnbih7fSx0aGlzLmRldmljZXNGb3JTdGF0cyksaT1yLnZhbHVlO3IuY2hlY2tlZD9uW2ldPSEwOmRlbGV0ZSBuW2ldLHRoaXMuc2V0KCJkZXZpY2VzRm9yU3RhdHMiLG4pfV9udW1UYWdzKHQscil7cmV0dXJuIHRoaXMuX2dldFRhZ3ModCxyKS5sZW5ndGh9X2dldFRhZ3ModCxyKXtyZXR1cm4hdHx8IXRbcl0/W106dFtyXS50YWdzfV9maXQoKXt0aGlzLmZpcmUoImZpdC10YXAiKX1faXNHcmFkaWVudENvbG9yaW5nKHQscil7cmV0dXJuIHV1ci5oYXMocikmJnQhPW51bGx9X2VxdWFscyh0LHIpe3JldHVybiB0PT09cn1nZXQgX2N1cnJlbnREZXZpY2VQYXJhbXMoKXt2YXIgdD10aGlzLmNvbG9yQnlQYXJhbXM7bGV0IHI9dC5kZXZpY2UuZmlsdGVyKG89PnNjdC5zb21lKGE9PmEucmVnZXgudGVzdChvLmRldmljZSkpKSxuPXpsdChyLm1hcChvPT5vLmRldmljZSkpO2lmKG4ubGVuZ3RoPT0xKXt2YXIgaT1uWzBdLm1hdGNoKGxjdCk7aSYmKG5bMF09aVsxXSl9cmV0dXJuIHIubWFwKChvLGEpPT4oe2RldmljZTpuW2FdLGNvbG9yOm8uY29sb3J9KSl9Z2V0IF9jdXJyZW50WGxhQ2x1c3RlclBhcmFtcygpe3ZhciB0PXRoaXMuY29sb3JCeVBhcmFtcztyZXR1cm4gdC54bGFfY2x1c3Rlcn1nZXQgX2N1cnJlbnRHcmFkaWVudFBhcmFtcygpe3ZhciB0PXRoaXMuY29sb3JCeVBhcmFtcyxyPXRoaXMuY29sb3JCeTtpZighdGhpcy5faXNHcmFkaWVudENvbG9yaW5nKHRoaXMuc3RhdHMscikpcmV0dXJuIG51bGw7bGV0IG49dFtyXSxpPW4ubWluVmFsdWUsbz1uLm1heFZhbHVlO3JldHVybiByPT09R24uTUVNT1JZPyhpPURkKGksaVApLG89RGQobyxpUCkpOnI9PT1Hbi5DT01QVVRFX1RJTUUmJihpPURkKGksb1ApLG89RGQobyxvUCkpLHttaW5WYWx1ZTppLG1heFZhbHVlOm8sc3RhcnRDb2xvcjpuLnN0YXJ0Q29sb3IsZW5kQ29sb3I6bi5lbmRDb2xvcn19ZG93bmxvYWQoKXt0aGlzLmZpcmUoImRvd25sb2FkLWltYWdlLXJlcXVlc3RlZCIsdGhpcy5fZG93bmxvYWRGaWxlbmFtZSl9X3VwZGF0ZUZpbGVJbnB1dCh0KXt2YXIgYTtsZXQgcj0oYT10LnRhcmdldC5maWxlcyk9PW51bGw/dm9pZCAwOmFbMF07aWYoIXIpcmV0dXJuO2xldCBuPXIubmFtZSxpPW4ubGFzdEluZGV4T2YoIi4iKTtpPj0wJiYobj1uLnN1YnN0cmluZygwLGkpKTtsZXQgbz1uLmxhc3RJbmRleE9mKCIvIik7bz49MCYmKG49bi5zdWJzdHJpbmcobysxKSksdGhpcy5fc2V0RG93bmxvYWRGaWxlbmFtZShuKSx0aGlzLnNldCgic2VsZWN0ZWRGaWxlIix0KSxQbyh7YWN0aW9uSWQ6anIuVVBMT0FERURfR1JBUEhfRlJPTV9GSUxFU1lTVEVNfSl9X2RhdGFzZXRzQ2hhbmdlZCh0LHIpe3ZhciBuO3IhPW51bGwmJih0aGlzLl9zZWxlY3RlZFJ1bkluZGV4PTApLHRoaXMuX3NldERvd25sb2FkRmlsZW5hbWUoKG49dGhpcy5kYXRhc2V0c1t0aGlzLl9zZWxlY3RlZFJ1bkluZGV4XSk9PW51bGw/dm9pZCAwOm4ubmFtZSl9X2NvbXB1dGVTZWxlY3Rpb24odCxyLG4saSl7cmV0dXJuIXRbcl18fCF0W3JdLnRhZ3Nbbl0/bnVsbDp7cnVuOnRbcl0ubmFtZSx0YWc6dFtyXS50YWdzW25dLnRhZyx0eXBlOml9fV9zZWxlY3RlZFJ1bkluZGV4Q2hhbmdlZCh0KXt2YXIgcjshdGhpcy5kYXRhc2V0c3x8KHRoaXMuY29sb3JCeT1Hbi5TVFJVQ1RVUkUsdGhpcy5fc2VsZWN0ZWRUYWdJbmRleD0wLHRoaXMuX3NlbGVjdGVkR3JhcGhUeXBlPXRoaXMuX2dldERlZmF1bHRTZWxlY3Rpb25UeXBlKCksdGhpcy50cmFjZUlucHV0cz0hMSx0aGlzLl9zZXREb3dubG9hZEZpbGVuYW1lKChyPXRoaXMuZGF0YXNldHNbdF0pPT1udWxsP3ZvaWQgMDpyLm5hbWUpKX1fc2VsZWN0ZWRUYWdJbmRleENoYW5nZWQoKXt0aGlzLl9zZWxlY3RlZEdyYXBoVHlwZT10aGlzLl9nZXREZWZhdWx0U2VsZWN0aW9uVHlwZSgpfV9nZXREZWZhdWx0U2VsZWN0aW9uVHlwZSgpe2xldHtkYXRhc2V0czp0LF9zZWxlY3RlZFJ1bkluZGV4OnIsX3NlbGVjdGVkVGFnSW5kZXg6bn09dGhpcztpZighdHx8IXRbcl18fCF0W3JdLnRhZ3Nbbl18fHRbcl0udGFnc1tuXS5vcEdyYXBoKXJldHVybiBCcy5PUF9HUkFQSDtsZXQgaT10W3JdO3JldHVybiBpLnRhZ3Nbbl0ucHJvZmlsZT9Ccy5QUk9GSUxFOmkudGFnc1tuXS5jb25jZXB0dWFsR3JhcGg/QnMuQ09OQ0VQVFVBTF9HUkFQSDpCcy5PUF9HUkFQSH1fZ2V0RmlsZSgpe3RoaXMuJCQoIiNmaWxlIikuY2xpY2soKX1fc2V0RG93bmxvYWRGaWxlbmFtZSh0KXt0aGlzLl9kb3dubG9hZEZpbGVuYW1lPSh0fHwiZ3JhcGgiKSsiLnBuZyJ9X3N0YXRzTm90TnVsbCh0KXtyZXR1cm4gdCE9PW51bGx9X3RvZ2dsZUxlZ2VuZE9wZW4oKXt0aGlzLnNldCgiX2xlZ2VuZE9wZW5lZCIsIXRoaXMuX2xlZ2VuZE9wZW5lZCl9X2dldFRvZ2dsZUxlZ2VuZEljb24odCl7cmV0dXJuIHQ/ImV4cGFuZC1tb3JlIjoiZXhwYW5kLWxlc3MifV9nZXRTZWxlY3Rpb25PcEdyYXBoRGlzYWJsZWQodCxyLG4pe3JldHVybiF0W3JdfHwhdFtyXS50YWdzW25dfHwhdFtyXS50YWdzW25dLm9wR3JhcGh9X2dldFNlbGVjdGlvblByb2ZpbGVEaXNhYmxlZCh0LHIsbil7cmV0dXJuIXRbcl18fCF0W3JdLnRhZ3Nbbl18fCF0W3JdLnRhZ3Nbbl0ucHJvZmlsZX1fZ2V0U2VsZWN0aW9uQ29uY2VwdHVhbEdyYXBoRGlzYWJsZWQodCxyLG4pe3JldHVybiF0W3JdfHwhdFtyXS50YWdzW25dfHwhdFtyXS50YWdzW25dLmNvbmNlcHR1YWxHcmFwaH19O1BuLnRlbXBsYXRlPVFgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogIzU1NTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIC0tdGItZ3JhcGgtY29udHJvbHMtdGl0bGUtY29sb3I6ICMwMDA7CiAgICAgICAgLS10Yi1ncmFwaC1jb250cm9scy1sZWdlbmQtdGV4dC1jb2xvcjogIzAwMDsKICAgICAgICAtLXRiLWdyYXBoLWNvbnRyb2xzLXRleHQtY29sb3I6ICM1NTU7CiAgICAgICAgLS10Yi1ncmFwaC1jb250cm9scy10aXRsZS1mb250LXNpemU6IDE0cHg7CiAgICAgICAgLS10Yi1ncmFwaC1jb250cm9scy1zdWJ0aXRsZS1mb250LXNpemU6IDE0cHg7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItc2hhcmVkLWlucHV0LXN0eWxlXy1fZm9udC1zaXplOiAxNHB4OwogICAgICAgIC0tcGFwZXItZm9udC1zdWJoZWFkXy1fZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICA6aG9zdCguZGFyay1tb2RlKSB7CiAgICAgICAgLS10Yi1ncmFwaC1jb250cm9scy10aXRsZS1jb2xvcjogI2ZmZjsKICAgICAgICAtLXRiLWdyYXBoLWNvbnRyb2xzLWxlZ2VuZC10ZXh0LWNvbG9yOiAjZjNmM2YzOwogICAgICAgIC0tdGItZ3JhcGgtY29udHJvbHMtdGV4dC1jb2xvcjogI2VlZTsKICAgICAgfQoKICAgICAgcGFwZXItZHJvcGRvd24tbWVudSB7CiAgICAgICAgLS1wYXBlci1kcm9wZG93bi1tZW51LWlucHV0OiB7CiAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgY29sb3I6IGdyYXk7CiAgICAgICAgfQogICAgICAgIC0taXJvbi1pY29uLXdpZHRoOiAxNXB4OwogICAgICAgIC0taXJvbi1pY29uLWhlaWdodDogMTVweDsKICAgICAgICAtLXByaW1hcnktdGV4dC1jb2xvcjogZ3JheTsKICAgICAgICAtLXBhcGVyLWl0ZW0tbWluLWhlaWdodDogMzBweDsKICAgICAgfQoKICAgICAgcGFwZXItYnV0dG9uW3JhaXNlZF0ua2V5Ym9hcmQtZm9jdXMgewogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC5ydW4tZHJvcGRvd24gewogICAgICAgIC0tcGFwZXItaW5wdXQtY29udGFpbmVyOiB7CiAgICAgICAgICBwYWRkaW5nOiA1cHggMCA1cHggNXB4OwogICAgICAgIH0KICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7CiAgICAgIH0KCiAgICAgIHRhYmxlIHRyIHsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIHRhYmxlIHRkIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLmFsbGNvbnRyb2xzIHsKICAgICAgICBwYWRkaW5nOiAwIDIwcHggMjBweDsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmxlZ2VuZC1ob2xkZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1ncmFwaC1jb250cm9scy10ZXh0LWNvbG9yKTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmxlZ2VuZC10b29sYmFyIHsKICAgICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tdGItZ3JhcGgtY29udHJvbHMtbGVnZW5kLXRleHQtY29sb3IpOwogICAgICAgIGZvbnQ6IGluaGVyaXQ7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmxlZ2VuZC10b29sYmFyLAogICAgICAubGVnZW5kLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDhweCAyMHB4OwogICAgICB9CgogICAgICAudG9nZ2xlLWxlZ2VuZC1idXR0b24gewogICAgICAgIG1heC1oZWlnaHQ6IDIwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAyMHB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtbGVnZW5kLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdGItZ3JhcGgtY29udHJvbHMtc3VidGl0bGUtZm9udC1zaXplKTsKICAgICAgfQoKICAgICAgcGFwZXItcmFkaW8tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA1cHg7CiAgICAgIH0KICAgICAgc3ZnLmljb24sCiAgICAgIHRmLWdyYXBoLWljb24gewogICAgICAgIHdpZHRoOiA2MHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgfQogICAgICAuZG9tYWluVmFsdWVzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgIHdpZHRoOiAxNjVweDsKICAgICAgfQogICAgICAuZG9tYWluU3RhcnQgewogICAgICAgIGZsb2F0OiBsZWZ0OwogICAgICB9CiAgICAgIC5kb21haW5FbmQgewogICAgICAgIGZsb2F0OiByaWdodDsKICAgICAgfQogICAgICAuY29sb3JCb3ggewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICB9CgogICAgICAuaW1hZ2UtaWNvbiB7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICB9CgogICAgICAuaGVscC1pY29uIHsKICAgICAgICBoZWlnaHQ6IDE1cHg7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5ncmF5IHsKICAgICAgICBjb2xvcjogIzY2NjsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXRiLWdyYXBoLWNvbnRyb2xzLXRpdGxlLWZvbnQtc2l6ZSk7CiAgICAgICAgbWFyZ2luOiA4cHggNXB4IDhweCAwOwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1ncmFwaC1jb250cm9scy10aXRsZS1jb2xvcik7CiAgICAgIH0KICAgICAgLnRpdGxlIHNtYWxsIHsKICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICB9CiAgICAgIC5kZXZpY2VMaXN0LAogICAgICAueGxhQ2x1c3Rlckxpc3QgewogICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgICNmaWxlIHsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLmNvbG9yLWxlZ2VuZC1yb3cgewogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgY2xlYXI6IGJvdGg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgbWFyZ2luLXRvcDogNXB4OwogICAgICB9CgogICAgICAuY29sb3ItbGVnZW5kLXJvdyAubGFiZWwsCiAgICAgIC5jb2xvci1sZWdlbmQtcm93IHN2ZywKICAgICAgLmNvbG9yLWxlZ2VuZC1yb3cgdGYtZ3JhcGgtaWNvbiB7CiAgICAgICAgZmxleDogMCAwIDQwcHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAuZGV2aWNlcy1jaGVja2JveCBpbnB1dCB7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICAuY29udHJvbC1ob2xkZXIgLmljb24tYnV0dG9uIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXRiLWdyYXBoLWNvbnRyb2xzLXN1YnRpdGxlLWZvbnQtc2l6ZSk7CiAgICAgICAgbWFyZ2luOiAwIC01cHg7CiAgICAgICAgcGFkZGluZzogNXB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1ncmFwaC1jb250cm9scy10ZXh0LWNvbG9yKTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi10ZXh0IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICAgIH0KCiAgICAgIC51cGxvYWQtYnV0dG9uIHsKICAgICAgICB3aWR0aDogMTY1cHg7CiAgICAgICAgaGVpZ2h0OiAyNXB4OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi1pY29uIHsKICAgICAgICB3aWR0aDogMjZweDsKICAgICAgICBoZWlnaHQ6IDI2cHg7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLW9yYW5nZS01MDApOwogICAgICB9CgogICAgICAuaGlkZGVuLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAuYWxsY29udHJvbHMgLmNvbnRyb2wtaG9sZGVyIHsKICAgICAgICBjbGVhcjogYm90aDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfQoKICAgICAgLmFsbGNvbnRyb2xzIC5jb250cm9sLWhvbGRlci5jb250cm9sLW9wdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDAgMCAxNXB4IDE1cHg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLmFsbGNvbnRyb2xzIC5jb250cm9sLWhvbGRlciBwYXBlci10b2dnbGUtYnV0dG9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgIH0KCiAgICAgIHNwYW4uY291bnRlciB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS10Yi1ncmFwaC1jb250cm9scy1zdWJ0aXRsZS1mb250LXNpemUpOwogICAgICAgIGNvbG9yOiBncmF5OwogICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7CiAgICAgIH0KCiAgICAgIC5ydW5zLXJvdyAudGl0bGUsCiAgICAgIC50YWdzLXJvdyAudGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICB9CgogICAgICAucnVucy1yb3cgcGFwZXItaXRlbSwKICAgICAgLnRhZ3Mtcm93IHBhcGVyLWl0ZW0gewogICAgICAgIC0tcGFwZXItaXRlbTogewogICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIHRhYmxlLmNvbnRyb2wtaG9sZGVyIHsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICAgICAgfQoKICAgICAgdGFibGUudGYtZ3JhcGgtY29udHJvbHMgdGQuaW5wdXQtZWxlbWVudC10YWJsZS1kYXRhIHsKICAgICAgICBwYWRkaW5nOiAwIDAgMCAyMHB4OwogICAgICB9CgogICAgICAuc3BhY2VyIHsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgIH0KCiAgICAgIC5jb2xvci10ZXh0IHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuY29sb3ItdGV4dC5ncmFkaWVudC1jb250YWluZXIgewogICAgICAgIG1hcmdpbjogMCA1cHg7CiAgICAgIH0KCiAgICAgIC8qKiBPdmVycmlkZSBpbmxpbmUgc3R5bGVzIHRoYXQgc3VwcHJlc3MgcG9pbnRlciBldmVudHMgZm9yIGRpc2FibGVkIGJ1dHRvbnMuIE90aGVyd2lzZSwgdGhlICovCiAgICAgIC8qICB0b29sdGlwcyBkbyBub3QgYXBwZWFyLiAqLwogICAgICBwYXBlci1yYWRpby1ncm91cCBwYXBlci1yYWRpby1idXR0b24gewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5sZWdlbmQtY2xhcmlmaWVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tdGItZ3JhcGgtY29udHJvbHMtdGV4dC1jb2xvcik7CiAgICAgICAgY3Vyc29yOiBoZWxwOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLmxlZ2VuZC1jbGFyaWZpZXIgcGFwZXItdG9vbHRpcCB7CiAgICAgICAgd2lkdGg6IDE1MHB4OwogICAgICB9CgogICAgICAvKiogT3RoZXJ3aXNlLCBwb2x5bWVyIFVJIGNvbnRyb2xzIGFwcGVhciBhdG9wIG5vZGUgc2VhcmNoLiAqLwogICAgICB0Zi1ncmFwaC1ub2RlLXNlYXJjaCB7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgcGFwZXItZHJvcGRvd24tbWVudSB7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImFsbGNvbnRyb2xzIj4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ob2xkZXIiPgogICAgICAgIDx0Zi1ncmFwaC1ub2RlLXNlYXJjaAogICAgICAgICAgc2VsZWN0ZWQtbm9kZT0ie3tzZWxlY3RlZE5vZGV9fSIKICAgICAgICAgIHJlbmRlci1oaWVyYXJjaHk9IltbcmVuZGVySGllcmFyY2h5XV0iCiAgICAgICAgPjwvdGYtZ3JhcGgtbm9kZS1zZWFyY2g+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWhvbGRlciI+CiAgICAgICAgPHBhcGVyLWJ1dHRvbiBjbGFzcz0iaWNvbi1idXR0b24iIG9uLXRhcD0iX2ZpdCIgYWx0PSJGaXQgdG8gc2NyZWVuIj4KICAgICAgICAgIDxpcm9uLWljb24gaWNvbj0iYXNwZWN0LXJhdGlvIiBjbGFzcz0iYnV0dG9uLWljb24iPjwvaXJvbi1pY29uPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImJ1dHRvbi10ZXh0Ij5GaXQgdG8gc2NyZWVuPC9zcGFuPgogICAgICAgIDwvcGFwZXItYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ob2xkZXIiPgogICAgICAgIDxwYXBlci1idXR0b24KICAgICAgICAgIGNsYXNzPSJpY29uLWJ1dHRvbiIKICAgICAgICAgIG9uLWNsaWNrPSJkb3dubG9hZCIKICAgICAgICAgIGFsdD0iRG93bmxvYWQgUE5HIgogICAgICAgID4KICAgICAgICAgIDxpcm9uLWljb24gaWNvbj0iZmlsZS1kb3dubG9hZCIgY2xhc3M9ImJ1dHRvbi1pY29uIj48L2lyb24taWNvbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJidXR0b24tdGV4dCI+RG93bmxvYWQgUE5HPC9zcGFuPgogICAgICAgIDwvcGFwZXItYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3Nob3dVcGxvYWRCdXR0b25dXSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ob2xkZXIiPgogICAgICAgICAgPHBhcGVyLWJ1dHRvbgogICAgICAgICAgICBjbGFzcz0iaWNvbi1idXR0b24iCiAgICAgICAgICAgIG9uLWNsaWNrPSJfZ2V0RmlsZSIKICAgICAgICAgICAgYWx0PSJVcGxvYWQgZmlsZSIKICAgICAgICAgICAgdGl0bGU9IlVwbG9hZCBhIHBidHh0IGZpbGUgdG8gdmlldyBhIGdyYXBoIGZyb20gdGhlIGxvY2FsIGZpbGVzeXN0ZW0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxpcm9uLWljb24gaWNvbj0iZmlsZS11cGxvYWQiIGNsYXNzPSJidXR0b24taWNvbiI+PC9pcm9uLWljb24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJidXR0b24tdGV4dCI+VXBsb2FkIGZpbGU8L3NwYW4+CiAgICAgICAgICA8L3BhcGVyLWJ1dHRvbj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJoaWRkZW4taW5wdXQiPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJmaWxlIgogICAgICAgICAgICAgIGlkPSJmaWxlIgogICAgICAgICAgICAgIG5hbWU9ImZpbGUiCiAgICAgICAgICAgICAgb24tY2hhbmdlPSJfdXBkYXRlRmlsZUlucHV0IgogICAgICAgICAgICAgIGFjY2VwdD0iLnBidHh0IgogICAgICAgICAgICAvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtaG9sZGVyIHJ1bnMtcm93Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+CiAgICAgICAgICBSdW4gPHNwYW4gY2xhc3M9ImNvdW50ZXIiPihbW2RhdGFzZXRzLmxlbmd0aF1dKTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8cGFwZXItZHJvcGRvd24tbWVudQogICAgICAgICAgbm8tbGFiZWwtZmxvYXQKICAgICAgICAgIG5vLWFuaW1hdGlvbnMKICAgICAgICAgIG5vaW5rCiAgICAgICAgICBob3Jpem9udGFsLWFsaWduPSJsZWZ0IgogICAgICAgICAgY2xhc3M9InJ1bi1kcm9wZG93biIKICAgICAgICA+CiAgICAgICAgICA8cGFwZXItbGlzdGJveAogICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24tY29udGVudCIKICAgICAgICAgICAgc2VsZWN0ZWQ9Int7X3NlbGVjdGVkUnVuSW5kZXh9fSIKICAgICAgICAgICAgc2xvdD0iZHJvcGRvd24tY29udGVudCIKICAgICAgICAgID4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tkYXRhc2V0c11dIj4KICAgICAgICAgICAgICA8cGFwZXItaXRlbT5bW2l0ZW0ubmFtZV1dPC9wYXBlci1pdGVtPgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPC9wYXBlci1saXN0Ym94PgogICAgICAgIDwvcGFwZXItZHJvcGRvd24tbWVudT4KICAgICAgPC9kaXY+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tzaG93U2Vzc2lvblJ1bnNEcm9wZG93bl1dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWhvbGRlciB0YWdzLXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+CiAgICAgICAgICAgIFRhZwogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY291bnRlciIKICAgICAgICAgICAgICA+KFtbX251bVRhZ3MoZGF0YXNldHMsIF9zZWxlY3RlZFJ1bkluZGV4KV1dKTwvc3BhbgogICAgICAgICAgICA+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgICAgICAgIG5vLWxhYmVsLWZsb2F0CiAgICAgICAgICAgIG5vLWFuaW1hdGlvbnMKICAgICAgICAgICAgaG9yaXpvbnRhbC1hbGlnbj0ibGVmdCIKICAgICAgICAgICAgbm9pbmsKICAgICAgICAgICAgY2xhc3M9InJ1bi1kcm9wZG93biIKICAgICAgICAgID4KICAgICAgICAgICAgPHBhcGVyLWxpc3Rib3gKICAgICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24tY29udGVudCIKICAgICAgICAgICAgICBzZWxlY3RlZD0ie3tfc2VsZWN0ZWRUYWdJbmRleH19IgogICAgICAgICAgICAgIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGUKICAgICAgICAgICAgICAgIGlzPSJkb20tcmVwZWF0IgogICAgICAgICAgICAgICAgaXRlbXM9IltbX2dldFRhZ3MoZGF0YXNldHMsIF9zZWxlY3RlZFJ1bkluZGV4KV1dIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPltbaXRlbS5kaXNwbGF5TmFtZV1dPC9wYXBlci1pdGVtPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICAgIDwvcGFwZXItZHJvcGRvd24tbWVudT4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPkdyYXBoIHR5cGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ob2xkZXIgY29udHJvbC1vcHRpb25zIj4KICAgICAgICA8cGFwZXItcmFkaW8tZ3JvdXAKICAgICAgICAgIHNlbGVjdGVkPSJ7e19zZWxlY3RlZEdyYXBoVHlwZX19IgogICAgICAgICAgb24tcGFwZXItcmFkaW8tZ3JvdXAtY2hhbmdlZD0iX29uR3JhcGhUeXBlQ2hhbmdlZEJ5VXNlckdlc3R1cmUiCiAgICAgICAgPgogICAgICAgICAgPCEtLSBOb3RlIHRoYXQgdGhlIG5hbWUgaGFzIHRvIG1hdGNoIHRoYXQgb2YgdGZfZ3JhcGhfY29tbW9uLlNlbGVjdGlvblR5cGUuIC0tPgogICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgICBuYW1lPSJvcF9ncmFwaCIKICAgICAgICAgICAgZGlzYWJsZWQ9IltbX2dldFNlbGVjdGlvbk9wR3JhcGhEaXNhYmxlZChkYXRhc2V0cywgX3NlbGVjdGVkUnVuSW5kZXgsIF9zZWxlY3RlZFRhZ0luZGV4KV1dIgogICAgICAgICAgICA+T3AgZ3JhcGg8L3BhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgPgogICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgICBuYW1lPSJjb25jZXB0dWFsX2dyYXBoIgogICAgICAgICAgICBkaXNhYmxlZD0iW1tfZ2V0U2VsZWN0aW9uQ29uY2VwdHVhbEdyYXBoRGlzYWJsZWQoZGF0YXNldHMsIF9zZWxlY3RlZFJ1bkluZGV4LCBfc2VsZWN0ZWRUYWdJbmRleCldXSIKICAgICAgICAgICAgPkNvbmNlcHR1YWwgZ3JhcGg8L3BhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgPgogICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgICBuYW1lPSJwcm9maWxlIgogICAgICAgICAgICBkaXNhYmxlZD0iW1tfZ2V0U2VsZWN0aW9uUHJvZmlsZURpc2FibGVkKGRhdGFzZXRzLCBfc2VsZWN0ZWRSdW5JbmRleCwgX3NlbGVjdGVkVGFnSW5kZXgpXV0iCiAgICAgICAgICAgID5Qcm9maWxlPC9wYXBlci1yYWRpby1idXR0b24KICAgICAgICAgID4KICAgICAgICA8L3BhcGVyLXJhZGlvLWdyb3VwPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPk5vZGUgb3B0aW9uczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWhvbGRlciBjb250cm9sLW9wdGlvbnMiPgogICAgICAgIDxwYXBlci10b2dnbGUtYnV0dG9uCiAgICAgICAgICBjaGVja2VkPSJ7e3RyYWNlSW5wdXRzfX0iCiAgICAgICAgICBvbi1jaGFuZ2U9Il9vblRyYWNlSW5wdXRzQ2hhbmdlZEJ5VXNlckdlc3R1cmUiCiAgICAgICAgPgogICAgICAgICAgVHJhY2UgaW5wdXRzCiAgICAgICAgPC9wYXBlci10b2dnbGUtYnV0dG9uPgogICAgICAgIDxwYXBlci10b2dnbGUtYnV0dG9uIGNoZWNrZWQ9Int7YXV0b0V4dHJhY3ROb2Rlc319Ij4KICAgICAgICAgIEF1dG8tZXh0cmFjdCBoaWdoLWRlZ3JlZSBub2RlcwogICAgICAgIDwvcGFwZXItdG9nZ2xlLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1toZWFsdGhQaWxsc0ZlYXR1cmVFbmFibGVkXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtaG9sZGVyIj4KICAgICAgICAgIDxwYXBlci10b2dnbGUtYnV0dG9uIGNoZWNrZWQ9Int7aGVhbHRoUGlsbHNUb2dnbGVkT259fSIKICAgICAgICAgICAgPlNob3cgaGVhbHRoIHBpbGxzPC9wYXBlci10b2dnbGUtYnV0dG9uCiAgICAgICAgICA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj5Db2xvciBieTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWhvbGRlciBjb250cm9sLW9wdGlvbnMiPgogICAgICAgIDxwYXBlci1yYWRpby1ncm91cAogICAgICAgICAgc2VsZWN0ZWQ9Int7Y29sb3JCeX19IgogICAgICAgICAgb24tcGFwZXItcmFkaW8tZ3JvdXAtY2hhbmdlZD0iX29uQ29sb3JCeUNoYW5nZWRCeVVzZXJHZXN0dXJlIgogICAgICAgID4KICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24gbmFtZT0iW1tDb2xvckJ5Lk5PTkVdXSI+Tm9uZTwvcGFwZXItcmFkaW8tYnV0dG9uPgoKICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24gbmFtZT0iW1tDb2xvckJ5LlNUUlVDVFVSRV1dIgogICAgICAgICAgICA+U3RydWN0dXJlPC9wYXBlci1yYWRpby1idXR0b24KICAgICAgICAgID4KCiAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uIG5hbWU9IltbQ29sb3JCeS5ERVZJQ0VdXSIKICAgICAgICAgICAgPkRldmljZTwvcGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICA+CgogICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgICBpZD0ieGxhLWNsdXN0ZXItcmFkaW8tYnV0dG9uIgogICAgICAgICAgICBuYW1lPSJbW0NvbG9yQnkuWExBX0NMVVNURVJdXSIKICAgICAgICAgICAgZGlzYWJsZWQ9IltbIV94bGFDbHVzdGVyc1Byb3ZpZGVkKHJlbmRlckhpZXJhcmNoeSldXSIKICAgICAgICAgID4KICAgICAgICAgICAgWExBIGNsdXN0ZXIKICAgICAgICAgIDwvcGFwZXItcmFkaW8tYnV0dG9uPgogICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICBmb3I9InhsYS1jbHVzdGVyLXJhZGlvLWJ1dHRvbiIKICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICA+CiAgICAgICAgICAgIENvbG9yaW5nIGJ5IFhMQSBjbHVzdGVyIGlzIG9ubHkgZW5hYmxlZCBpZiBhdCBsZWFzdCAxIG9wIHNwZWNpZmllcwogICAgICAgICAgICBhbiBYTEEgY2x1c3Rlci4KICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KCiAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICAgIGlkPSJjb21wdXRlLXRpbWUtcmFkaW8tYnV0dG9uIgogICAgICAgICAgICBuYW1lPSJbW0NvbG9yQnkuQ09NUFVURV9USU1FXV0iCiAgICAgICAgICAgIGRpc2FibGVkPSJbWyFzdGF0c11dIgogICAgICAgICAgPgogICAgICAgICAgICBDb21wdXRlIHRpbWUKICAgICAgICAgIDwvcGFwZXItcmFkaW8tYnV0dG9uPgogICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICBmb3I9ImNvbXB1dGUtdGltZS1yYWRpby1idXR0b24iCiAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgPgogICAgICAgICAgICBDb2xvcmluZyBieSBjb21wdXRlIHRpbWUgaXMgb25seSBlbmFibGVkIGlmIHRoZSBSdW5NZXRhZGF0YSBwcm90byBpcwogICAgICAgICAgICBwYXNzZWQgdG8gdGhlIEZpbGVXcml0ZXIgd2hlbiBhIHNwZWNpZmljIHNlc3Npb24gaXMgcnVuLgogICAgICAgICAgPC9wYXBlci10b29sdGlwPgoKICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24KICAgICAgICAgICAgaWQ9Im1lbW9yeS1yYWRpby1idXR0b24iCiAgICAgICAgICAgIG5hbWU9IltbQ29sb3JCeS5NRU1PUlldXSIKICAgICAgICAgICAgZGlzYWJsZWQ9IltbIXN0YXRzXV0iCiAgICAgICAgICA+CiAgICAgICAgICAgIE1lbW9yeQogICAgICAgICAgPC9wYXBlci1yYWRpby1idXR0b24+CiAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgIGZvcj0ibWVtb3J5LXJhZGlvLWJ1dHRvbiIKICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICA+CiAgICAgICAgICAgIENvbG9yaW5nIGJ5IG1lbW9yeSBpcyBvbmx5IGVuYWJsZWQgaWYgdGhlIFJ1bk1ldGFkYXRhIHByb3RvIGlzCiAgICAgICAgICAgIHBhc3NlZCB0byB0aGUgRmlsZVdyaXRlciB3aGVuIGEgc3BlY2lmaWMgc2Vzc2lvbiBpcyBydW4uCiAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CgogICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgICBpZD0idHB1LWNvbXBhdGliaWxpdHktcmFkaW8tYnV0dG9uIgogICAgICAgICAgICBuYW1lPSJbW0NvbG9yQnkuT1BfQ09NUEFUSUJJTElUWV1dIgogICAgICAgICAgPgogICAgICAgICAgICBUUFUgY29tcGF0aWJpbGl0eQogICAgICAgICAgPC9wYXBlci1yYWRpby1idXR0b24+CiAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgIGZvcj0idHB1LWNvbXBhdGliaWxpdHktcmFkaW8tYnV0dG9uIgogICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgID4KICAgICAgICAgICAgQ29sb3JpbmcgYnkgd2hldGhlciBhbiBvcGVyYXRpb24gaXMgY29tcGF0aWJsZSBmb3IgdGhlIFRQVSBkZXZpY2UuCiAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CiAgICAgICAgPC9wYXBlci1yYWRpby1ncm91cD4KICAgICAgICA8c3BhbiBjbGFzcz0ic3BhY2VyIj48L3NwYW4+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJsZWdlbmQtaG9sZGVyIj4KICAgICAgPGJ1dHRvbiBjbGFzcz0ibGVnZW5kLXRvb2xiYXIiIG9uLWNsaWNrPSJfdG9nZ2xlTGVnZW5kT3BlbiI+CiAgICAgICAgPHNwYW4gY2xhc3M9InRvZ2dsZS1sZWdlbmQtdGV4dCI+TGVnZW5kPC9zcGFuPgogICAgICAgIDxpcm9uLWljb24KICAgICAgICAgIGljb249IltbX2dldFRvZ2dsZUxlZ2VuZEljb24oX2xlZ2VuZE9wZW5lZCldXSIKICAgICAgICAgIGNsYXNzPSJ0b2dnbGUtbGVnZW5kLWJ1dHRvbiIKICAgICAgICA+CiAgICAgICAgPC9pcm9uLWljb24+CiAgICAgIDwvYnV0dG9uPgogICAgICA8aXJvbi1jb2xsYXBzZSBvcGVuZWQ9IltbX2xlZ2VuZE9wZW5lZF1dIiBjbGFzcz0ibGVnZW5kLWNvbnRlbnQiPgogICAgICAgIDwhLS0gQ29sb3ItbW9kZS1zcGVjaWZpYyBsZWdlbmQgaXRlbXMgLS0+CiAgICAgICAgPGRpdj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaXNHcmFkaWVudENvbG9yaW5nKHN0YXRzLCBjb2xvckJ5KV1dIj4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQwIiBoZWlnaHQ9IjIwIiBjbGFzcz0iY29sb3ItdGV4dCBncmFkaWVudC1jb250YWluZXIiPgogICAgICAgICAgICAgIDxkZWZzPgogICAgICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50CiAgICAgICAgICAgICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudCIKICAgICAgICAgICAgICAgICAgeDE9IjAlIgogICAgICAgICAgICAgICAgICB5MT0iMCUiCiAgICAgICAgICAgICAgICAgIHgyPSIxMDAlIgogICAgICAgICAgICAgICAgICB5Mj0iMCUiCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxzdG9wCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9InN0YXJ0IgogICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCUiCiAgICAgICAgICAgICAgICAgICAgc3RvcC1jb2xvciQ9IltbX2N1cnJlbnRHcmFkaWVudFBhcmFtcy5zdGFydENvbG9yXV0iCiAgICAgICAgICAgICAgICAgID48L3N0b3A+CiAgICAgICAgICAgICAgICAgIDxzdG9wCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImVuZCIKICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9IjEwMCUiCiAgICAgICAgICAgICAgICAgICAgc3RvcC1jb2xvciQ9IltbX2N1cnJlbnRHcmFkaWVudFBhcmFtcy5lbmRDb2xvcl1dIgogICAgICAgICAgICAgICAgICA+PC9zdG9wPgogICAgICAgICAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICAgICAgICA8L2RlZnM+CiAgICAgICAgICAgICAgPHJlY3QKICAgICAgICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgICAgICB5PSIwIgogICAgICAgICAgICAgICAgd2lkdGg9IjEzNSIKICAgICAgICAgICAgICAgIGhlaWdodD0iMjAiCiAgICAgICAgICAgICAgICBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50KSIKICAgICAgICAgICAgICAgIHN0cm9rZT0iYmxhY2siCiAgICAgICAgICAgICAgPjwvcmVjdD4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvbWFpblZhbHVlcyBjb2xvci10ZXh0Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkb21haW5TdGFydCI+W1tfY3VycmVudEdyYWRpZW50UGFyYW1zLm1pblZhbHVlXV08L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkb21haW5FbmQiPltbX2N1cnJlbnRHcmFkaWVudFBhcmFtcy5tYXhWYWx1ZV1dPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8YnIgc3R5bGU9ImNsZWFyOiBib3RoIiAvPgogICAgICAgICAgICA8ZGl2PkRldmljZXMgaW5jbHVkZWQgaW4gc3RhdHM6PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldmljZUxpc3QiPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2N1cnJlbnREZXZpY2VzXV0iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItbGVnZW5kLXJvdyBkZXZpY2VzLWNoZWNrYm94Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4KICAgICAgICAgICAgICAgICAgICA+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJjaGVja2JveCIKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlJD0iW1tpdGVtLmRldmljZV1dIgogICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZCQ9IltbaXRlbS51c2VkXV0iCiAgICAgICAgICAgICAgICAgICAgICBvbi1jbGljaz0iX2RldmljZUNoZWNrYm94Q2xpY2tlZCIKICAgICAgICAgICAgICAgICAgLz48L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuPltbaXRlbS5zdWZmaXhdXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2l0ZW0uaWdub3JlZE1zZ11dIj4KICAgICAgICAgICAgICAgICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICAgICAgICAgICAgICAgIGljb249ImhlbHAiCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaGVscC1pY29uIgogICAgICAgICAgICAgICAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgICAgICA+W1tpdGVtLmlnbm9yZWRNc2ddXTwvcGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZXF1YWxzKGNvbG9yQnksICdzdHJ1Y3R1cmUnKV1dIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItdGV4dCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItbGVnZW5kLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGFiZWwiPiBjb2xvcnMgPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbG9yLWxlZ2VuZC12YWx1ZSI+c2FtZSBzdWJzdHJ1Y3R1cmU8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItbGVnZW5kLXJvdyI+CiAgICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbgogICAgICAgICAgICAgICAgICB0eXBlPSJNRVRBIgogICAgICAgICAgICAgICAgICBoZWlnaHQ9IjE2IgogICAgICAgICAgICAgICAgICBmaWxsLW92ZXJyaWRlPSIjZWVlIgogICAgICAgICAgICAgICAgICBzdHJva2Utb3ZlcnJpZGU9IiNhNmE2YTYiCiAgICAgICAgICAgICAgICA+PC90Zi1ncmFwaC1pY29uPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbG9yLWxlZ2VuZC12YWx1ZSI+dW5pcXVlIHN1YnN0cnVjdHVyZTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19lcXVhbHMoY29sb3JCeSwgJ2RldmljZScpXV0iPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2N1cnJlbnREZXZpY2VQYXJhbXNdXSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sZWdlbmQtcm93Ij4KICAgICAgICAgICAgICAgICAgPHRmLWdyYXBoLWljb24KICAgICAgICAgICAgICAgICAgICB0eXBlPSJNRVRBIgogICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTYiCiAgICAgICAgICAgICAgICAgICAgZmlsbC1vdmVycmlkZT0iW1tpdGVtLmNvbG9yXV0iCiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLW92ZXJyaWRlPSIjYTZhNmE2IgogICAgICAgICAgICAgICAgICA+PC90Zi1ncmFwaC1pY29uPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29sb3ItbGVnZW5kLXZhbHVlIj5bW2l0ZW0uZGV2aWNlXV08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWxlZ2VuZC1yb3ciPgogICAgICAgICAgICAgICAgPHRmLWdyYXBoLWljb24KICAgICAgICAgICAgICAgICAgdHlwZT0iTUVUQSIKICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxNiIKICAgICAgICAgICAgICAgICAgZmlsbC1vdmVycmlkZT0iI2VlZSIKICAgICAgICAgICAgICAgICAgc3Ryb2tlLW92ZXJyaWRlPSIjYTZhNmE2IgogICAgICAgICAgICAgICAgPjwvdGYtZ3JhcGgtaWNvbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb2xvci1sZWdlbmQtdmFsdWUiPnVua25vd24gZGV2aWNlPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2VxdWFscyhjb2xvckJ5LCAneGxhX2NsdXN0ZXInKV1dIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19jdXJyZW50WGxhQ2x1c3RlclBhcmFtc11dIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWxlZ2VuZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3ZnPgogICAgICAgICAgICAgICAgICAgIDx1c2UKICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgICAgICAgICAgICAgICAgICAgeGxpbms6aHJlZj0iI3VuZmlsbGVkLXJlY3QiCiAgICAgICAgICAgICAgICAgICAgICB4PSIwIgogICAgICAgICAgICAgICAgICAgICAgeT0iMCIKICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJmaWxsOltbaXRlbS5jb2xvcl1dIgogICAgICAgICAgICAgICAgICAgID48L3VzZT4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb2xvci1sZWdlbmQtdmFsdWUiPltbaXRlbS54bGFfY2x1c3Rlcl1dPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sZWdlbmQtcm93Ij4KICAgICAgICAgICAgICAgIDxzdmc+CiAgICAgICAgICAgICAgICAgIDx1c2UKICAgICAgICAgICAgICAgICAgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgICAgICAgICAgICAgICAgICB4bGluazpocmVmPSIjZ3JleS1yZWN0IgogICAgICAgICAgICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgICAgICAgICAgeT0iMCIKICAgICAgICAgICAgICAgICAgPjwvdXNlPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29sb3ItbGVnZW5kLXZhbHVlIj51bmtub3duIFhMQSBjbHVzdGVyPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2VxdWFscyhjb2xvckJ5LCAnb3BfY29tcGF0aWJpbGl0eScpXV0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci10ZXh0Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sZWdlbmQtcm93Ij4KICAgICAgICAgICAgICAgIDx0Zi1ncmFwaC1pY29uCiAgICAgICAgICAgICAgICAgIHR5cGU9Ik9QIgogICAgICAgICAgICAgICAgICBoZWlnaHQ9IjE2IgogICAgICAgICAgICAgICAgICBmaWxsLW92ZXJyaWRlPSIjMGY5ZDU4IgogICAgICAgICAgICAgICAgICBzdHJva2Utb3ZlcnJpZGU9IiNjY2MiCiAgICAgICAgICAgICAgICA+PC90Zi1ncmFwaC1pY29uPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbG9yLWxlZ2VuZC12YWx1ZSI+VmFsaWQgT3A8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItbGVnZW5kLXJvdyI+CiAgICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbgogICAgICAgICAgICAgICAgICB0eXBlPSJPUCIKICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxNiIKICAgICAgICAgICAgICAgICAgZmlsbC1vdmVycmlkZT0iI2RiNDQzNyIKICAgICAgICAgICAgICAgICAgc3Ryb2tlLW92ZXJyaWRlPSIjY2NjIgogICAgICAgICAgICAgICAgPjwvdGYtZ3JhcGgtaWNvbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb2xvci1sZWdlbmQtdmFsdWUiPkludmFsaWQgT3A8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfc3RhdHNOb3ROdWxsKHN0YXRzKV1dIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItbGVnZW5kLXJvdyI+CiAgICAgICAgICAgICAgPHRmLWdyYXBoLWljb24gdHlwZT0iTUVUQSIgaGVpZ2h0PSIxNiIgZmFkZWQ+PC90Zi1ncmFwaC1pY29uPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb2xvci1sZWdlbmQtdmFsdWUiPnVudXNlZCBzdWJzdHJ1Y3R1cmU8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBDb21tb24gbGVnZW5kIGl0ZW1zIC0tPgogICAgICAgIDxkaXY+CiAgICAgICAgICA8dGFibGU+CiAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgIDx0ZD4oKiA9IGV4cGFuZGFibGUpPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHRmLWdyYXBoLWljb24KICAgICAgICAgICAgICAgICAgICB0eXBlPSJNRVRBIgogICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTYiCiAgICAgICAgICAgICAgICAgICAgZmlsbC1vdmVycmlkZT0iI2Q5ZDlkOSIKICAgICAgICAgICAgICAgICAgICBzdHJva2Utb3ZlcnJpZGU9IiNjY2MiCiAgICAgICAgICAgICAgICAgID48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICBOYW1lc3BhY2U8c3BhbiBjbGFzcz0iZ3JheSI+Kjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVnZW5kLWNsYXJpZmllciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Pzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIEVuY2Fwc3VsYXRlcyBhIHNldCBvZiBub2Rlcy4gTmFtZXNwYWNlIGlzIGhpZXJhcmNoaWNhbCBhbmQKICAgICAgICAgICAgICAgICAgICAgIGJhc2VkIG9uIHNjb3BlLgogICAgICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbiB0eXBlPSJPUCIgaGVpZ2h0PSIxNiI+PC90Zi1ncmFwaC1pY29uPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgT3BOb2RlCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1jbGFyaWZpZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPj88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICBOb2RlIHRoYXQgcGVyZm9ybXMgYW4gb3BlcmF0aW9uLiBUaGVzZSBub2RlcyBjYW5ub3QKICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZC4KICAgICAgICAgICAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHRmLWdyYXBoLWljb24gdHlwZT0iU0VSSUVTIiBoZWlnaHQ9IjE2Ij48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICBVbmNvbm5lY3RlZCBzZXJpZXM8c3BhbiBjbGFzcz0iZ3JheSI+Kjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVnZW5kLWNsYXJpZmllciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Pzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIFNlcXVlbmNlIG9mIG51bWJlcmVkIG5vZGVzIHRoYXQgYXJlIG5vdCBjb25uZWN0ZWQgdG8gZWFjaAogICAgICAgICAgICAgICAgICAgICAgb3RoZXIuCiAgICAgICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDx0Zi1ncmFwaC1pY29uCiAgICAgICAgICAgICAgICAgICAgdHlwZT0iU0VSSUVTIgogICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTYiCiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwKICAgICAgICAgICAgICAgICAgPjwvdGYtZ3JhcGgtaWNvbj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIENvbm5lY3RlZCBzZXJpZXM8c3BhbiBjbGFzcz0iZ3JheSI+Kjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVnZW5kLWNsYXJpZmllciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Pzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIFNlcXVlbmNlIG9mIG51bWJlcmVkIG5vZGVzIHRoYXQgYXJlIGNvbm5lY3RlZCB0byBlYWNoCiAgICAgICAgICAgICAgICAgICAgICBvdGhlci4KICAgICAgICAgICAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiI+CiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZQogICAgICAgICAgICAgICAgICAgICAgZmlsbD0id2hpdGUiCiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9IiM4NDg0ODQiCiAgICAgICAgICAgICAgICAgICAgICBjeD0iMTAiCiAgICAgICAgICAgICAgICAgICAgICBjeT0iMTAiCiAgICAgICAgICAgICAgICAgICAgICByPSI1IgogICAgICAgICAgICAgICAgICAgID48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICBDb25zdGFudAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWdlbmQtY2xhcmlmaWVyIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4/PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgTm9kZSB0aGF0IG91dHB1dHMgYSBjb25zdGFudCB2YWx1ZS4KICAgICAgICAgICAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHRmLWdyYXBoLWljb24gdHlwZT0iU1VNTUFSWSIgaGVpZ2h0PSIyMCI+PC90Zi1ncmFwaC1pY29uPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgU3VtbWFyeQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWdlbmQtY2xhcmlmaWVyIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4/PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgTm9kZSB0aGF0IGNvbGxlY3RzIGRhdGEgZm9yIHZpc3VhbGl6YXRpb24gd2l0aGluCiAgICAgICAgICAgICAgICAgICAgICBUZW5zb3JCb2FyZC4KICAgICAgICAgICAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHN2ZwogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpY29uIgogICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTVweCIKICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pZCBtZWV0IgogICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9IjAgMCAxNSAxNSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIDxkZWZzPgogICAgICAgICAgICAgICAgICAgICAgPG1hcmtlcgogICAgICAgICAgICAgICAgICAgICAgICBpZD0iZGF0YWZsb3ctYXJyb3doZWFkLWxlZ2VuZCIKICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iI2JiYiIKICAgICAgICAgICAgICAgICAgICAgICAgbWFya2VyV2lkdGg9IjEwIgogICAgICAgICAgICAgICAgICAgICAgICBtYXJrZXJIZWlnaHQ9IjEwIgogICAgICAgICAgICAgICAgICAgICAgICByZWZYPSI5IgogICAgICAgICAgICAgICAgICAgICAgICByZWZZPSI1IgogICAgICAgICAgICAgICAgICAgICAgICBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSIKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTSAwLDAgTCAxMCw1IEwgMCwxMCBDIDMsNyAzLDMgMCwwIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICA8L21hcmtlcj4KICAgICAgICAgICAgICAgICAgICA8L2RlZnM+CiAgICAgICAgICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgICAgICAgIG1hcmtlci1lbmQ9InVybCgjZGF0YWZsb3ctYXJyb3doZWFkLWxlZ2VuZCkiCiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9IiNiYmIiCiAgICAgICAgICAgICAgICAgICAgICBkPSJNMiA5IGwgMjkgMCIKICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIKICAgICAgICAgICAgICAgICAgICA+PC9wYXRoPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIERhdGFmbG93IGVkZ2UKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVnZW5kLWNsYXJpZmllciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Pzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIEVkZ2Ugc2hvd2luZyB0aGUgZGF0YSBmbG93IGJldHdlZW4gb3BlcmF0aW9ucy4gRWRnZXMgZmxvdwogICAgICAgICAgICAgICAgICAgICAgdXB3YXJkcyB1bmxlc3MgYXJyb3doZWFkcyBzcGVjaWZ5IG90aGVyd2lzZS4KICAgICAgICAgICAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHN2ZwogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpY29uIgogICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTVweCIKICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pZCBtZWV0IgogICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9IjAgMCAxNSAxNSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9IiNiYmIiCiAgICAgICAgICAgICAgICAgICAgICBkPSJNMiA5IGwgMjkgMCIKICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIKICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1kYXNoYXJyYXk9IjIsIDIiCiAgICAgICAgICAgICAgICAgICAgPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICBDb250cm9sIGRlcGVuZGVuY3kgZWRnZQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWdlbmQtY2xhcmlmaWVyIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4/PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgRWRnZSBzaG93aW5nIHRoZSBjb250cm9sIGRlcGVuZGVuY3kgYmV0d2VlbiBvcGVyYXRpb25zLgogICAgICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8c3ZnCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imljb24iCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxNXB4IgogICAgICAgICAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWlkIG1lZXQiCiAgICAgICAgICAgICAgICAgICAgdmlld0JveD0iMCAwIDE1IDE1IgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPGRlZnM+CiAgICAgICAgICAgICAgICAgICAgICA8bWFya2VyCiAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJyZWZlcmVuY2UtYXJyb3doZWFkLWxlZ2VuZCIKICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iI0ZGQjc0RCIKICAgICAgICAgICAgICAgICAgICAgICAgbWFya2VyV2lkdGg9IjEwIgogICAgICAgICAgICAgICAgICAgICAgICBtYXJrZXJIZWlnaHQ9IjEwIgogICAgICAgICAgICAgICAgICAgICAgICByZWZYPSI5IgogICAgICAgICAgICAgICAgICAgICAgICByZWZZPSI1IgogICAgICAgICAgICAgICAgICAgICAgICBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSIKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTSAwLDAgTCAxMCw1IEwgMCwxMCBDIDMsNyAzLDMgMCwwIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICA8L21hcmtlcj4KICAgICAgICAgICAgICAgICAgICA8L2RlZnM+CiAgICAgICAgICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgICAgICAgIG1hcmtlci1lbmQ9InVybCgjcmVmZXJlbmNlLWFycm93aGVhZC1sZWdlbmQpIgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjRkZCNzREIgogICAgICAgICAgICAgICAgICAgICAgZD0iTTIgOSBsIDI5IDAiCiAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiCiAgICAgICAgICAgICAgICAgICAgPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICBSZWZlcmVuY2UgZWRnZQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWdlbmQtY2xhcmlmaWVyIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4/PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgRWRnZSBzaG93aW5nIHRoYXQgdGhlIG91dGdvaW5nIG9wZXJhdGlvbiBub2RlIGNhbiBtdXRhdGUKICAgICAgICAgICAgICAgICAgICAgIHRoZSBpbmNvbWluZyB0ZW5zb3IuCiAgICAgICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvaXJvbi1jb2xsYXBzZT4KICAgIDwvZGl2PgogIGA7RShbQSh7dHlwZTpPYmplY3Qsb2JzZXJ2ZXI6Il9zdGF0c0NoYW5nZWQifSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFBuLnByb3RvdHlwZSwic3RhdHMiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFBuLnByb3RvdHlwZSwiZGV2aWNlc0ZvclN0YXRzIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nLG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxQbi5wcm90b3R5cGUsImNvbG9yQnkiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFBuLnByb3RvdHlwZSwiY29sb3JCeVBhcmFtcyIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5LG9ic2VydmVyOiJfZGF0YXNldHNDaGFuZ2VkIn0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxQbi5wcm90b3R5cGUsImRhdGFzZXRzIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLGxvKV0sUG4ucHJvdG90eXBlLCJyZW5kZXJIaWVyYXJjaHkiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLHJlYWRPbmx5OiEwLGNvbXB1dGVkOiJfY29tcHV0ZVNlbGVjdGlvbihkYXRhc2V0cywgX3NlbGVjdGVkUnVuSW5kZXgsIF9zZWxlY3RlZFRhZ0luZGV4LCBfc2VsZWN0ZWRHcmFwaFR5cGUpIn0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxQbi5wcm90b3R5cGUsInNlbGVjdGlvbiIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sUG4ucHJvdG90eXBlLCJzZWxlY3RlZEZpbGUiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXIsb2JzZXJ2ZXI6Il9zZWxlY3RlZFJ1bkluZGV4Q2hhbmdlZCJ9KSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sUG4ucHJvdG90eXBlLCJfc2VsZWN0ZWRSdW5JbmRleCIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxQbi5wcm90b3R5cGUsInRyYWNlSW5wdXRzIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbixub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFBuLnByb3RvdHlwZSwiYXV0b0V4dHJhY3ROb2RlcyIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcixvYnNlcnZlcjoiX3NlbGVjdGVkVGFnSW5kZXhDaGFuZ2VkIn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxQbi5wcm90b3R5cGUsIl9zZWxlY3RlZFRhZ0luZGV4Iix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLFBuLnByb3RvdHlwZSwiX3NlbGVjdGVkR3JhcGhUeXBlIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nLG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxQbi5wcm90b3R5cGUsInNlbGVjdGVkTm9kZSIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFBuLnByb3RvdHlwZSwic2hvd1Nlc3Npb25SdW5zRHJvcGRvd24iLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxQbi5wcm90b3R5cGUsInNob3dVcGxvYWRCdXR0b24iLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxQbi5wcm90b3R5cGUsImhlYWx0aFBpbGxzRmVhdHVyZUVuYWJsZWQiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFuLG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sUG4ucHJvdG90eXBlLCJoZWFsdGhQaWxsc1RvZ2dsZWRPbiIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFBuLnByb3RvdHlwZSwiX2xlZ2VuZE9wZW5lZCIsdm9pZCAwKTtFKFtSdCgiZGV2aWNlc0ZvclN0YXRzIiksdygiZGVzaWduOnR5cGUiLEFycmF5KSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxQbi5wcm90b3R5cGUsIl9jdXJyZW50RGV2aWNlcyIsbnVsbCk7RShbUnQoImNvbG9yQnlQYXJhbXMiKSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFBuLnByb3RvdHlwZSwiX2N1cnJlbnREZXZpY2VQYXJhbXMiLG51bGwpO0UoW1J0KCJjb2xvckJ5UGFyYW1zIiksdygiZGVzaWduOnR5cGUiLEFycmF5KSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxQbi5wcm90b3R5cGUsIl9jdXJyZW50WGxhQ2x1c3RlclBhcmFtcyIsbnVsbCk7RShbUnQoImNvbG9yQnlQYXJhbXMiLCJjb2xvckJ5IiksdygiZGVzaWduOnR5cGUiLE9iamVjdCksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sUG4ucHJvdG90eXBlLCJfY3VycmVudEdyYWRpZW50UGFyYW1zIixudWxsKTtQbj1FKFt5dCgidGYtZ3JhcGgtY29udHJvbHMiKV0sUG4pO2Z1bmN0aW9uIGh1cihlKXtpZihlPT09InRydWUiKXJldHVybiEwO2lmKGU9PT0iZmFsc2UiKXJldHVybiExO2lmKGVbMF09PT0nIicpcmV0dXJuIGUuc3Vic3RyaW5nKDEsZS5sZW5ndGgtMSk7bGV0IHI9cGFyc2VGbG9hdChlKTtyZXR1cm4gaXNOYU4ocik/ZTpyfWZ1bmN0aW9uIHRjZShlKXtyZXR1cm4gbmV3IFByb21pc2UoKHQscik9PntmZXRjaChlKS50aGVuKG49PntuLm9rP24uYXJyYXlCdWZmZXIoKS50aGVuKHQscik6bi50ZXh0KCkudGhlbihyLHIpfSl9KX1mdW5jdGlvbiBlY2UoZSx0KXtyZXR1cm4gWnNlKCJSZWFkaW5nIG1ldGFkYXRhIHBidHh0Iiw0MCwoKT0+ZT09bnVsbD9Qcm9taXNlLnJlc29sdmUobnVsbCk6dGNlKGUpLHQsanIuRkVUQ0hfTUVUQURBVEFfUEJUWFRfQllURVMpLnRoZW4ocj0+bUgoIlBhcnNpbmcgbWV0YWRhdGEucGJ0eHQiLDYwLCgpPT5yIT1udWxsP2d1cihyKTpQcm9taXNlLnJlc29sdmUobnVsbCksdCxqci5QQVJTRV9NRVRBREFUQV9QQlRYVF9JTlRPX09CSkVDVCkpfWZ1bmN0aW9uIHJjZShlLHQscil7cmV0dXJuIG1IKCJSZWFkaW5nIGdyYXBoIHBidHh0Iiw0MCwoKT0+UmkodGhpcyxudWxsLGZ1bmN0aW9uKigpe2xldCBuPURhdGUubm93KCk7aWYodCl7bGV0IG89eWllbGQgbmV3IFByb21pc2UoZnVuY3Rpb24oYSxzKXtsZXQgbD1uZXcgRmlsZVJlYWRlcjtsLm9ubG9hZD0oKT0+YShsLnJlc3VsdCksbC5vbmVycm9yPSgpPT5zKGwuZXJyb3IpLGwucmVhZEFzQXJyYXlCdWZmZXIodCl9KTtyZXR1cm4gUG8oe3RpbWluZ0lkOmpyLkZFVENIX1BCVFhUX0JZVEVTX0ZST01fRklMRVNZU1RFTSxldmVudFZhbHVlOkRhdGUubm93KCktbn0pLG99bGV0IGk9eWllbGQgdGNlKGUpO3JldHVybiBQbyh7dGltaW5nSWQ6anIuRkVUQ0hfUEJUWFRfQllURVNfRlJPTV9TRVJWRVIsZXZlbnRWYWx1ZTpEYXRlLm5vdygpLW59KSxpfSkscixqci5GRVRDSF9QQlRYVF9CWVRFUykudGhlbihuPT5tSCgiUGFyc2luZyBncmFwaC5wYnR4dCIsNjAsKCk9Pm11cihuKSxyLGpyLlBBUlNFX1BCVFhUX0lOVE9fT0JKRUNUKSl9ZnVuY3Rpb24gZnVyKGUsdCxyPTFlNixuPWAKYCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGksbyl7ZnVuY3Rpb24gYShzLGwsYyl7bGV0IHU9Yz49ZS5ieXRlTGVuZ3RoLGg9bC5zcGxpdChuKTtoWzBdPXMraFswXTtsZXQgZj11PyIiOmgucG9wKCk7Zm9yKGxldCBnIG9mIGgpdHJ5e3QoZyl9Y2F0Y2goXyl7byhfKTtyZXR1cm59aWYodSl7aSghMCk7cmV0dXJufWxldCBwPW5ldyBCbG9iKFtlLnNsaWNlKGMsYytyKV0pLGQ9bmV3IEZpbGVSZWFkZXI7ZC5vbmxvYWQ9ZnVuY3Rpb24oZyl7YShmLGcudGFyZ2V0LnJlc3VsdCxjK3IpfSxkLnJlYWRBc1RleHQocCl9YSgiIiwiIiwwKX0pfXZhciBwdXI9eyJsaWJyYXJ5LmZ1bmN0aW9uIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZiI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuaW5wdXQiOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIiOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUubGlzdC5iIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5hdHRyLnZhbHVlLmxpc3QuZiI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuYXR0ci52YWx1ZS5saXN0LmZ1bmMiOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUubGlzdC5pIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5hdHRyLnZhbHVlLmxpc3QucyI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuYXR0ci52YWx1ZS5saXN0LnNoYXBlIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5hdHRyLnZhbHVlLmxpc3Quc2hhcGUuZGltIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5hdHRyLnZhbHVlLmxpc3QudGVuc29yIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5hdHRyLnZhbHVlLmxpc3QudHlwZSI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuYXR0ci52YWx1ZS5zaGFwZS5kaW0iOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUudGVuc29yLnN0cmluZ192YWwiOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUudGVuc29yLnRlbnNvcl9zaGFwZS5kaW0iOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLnNpZ25hdHVyZS5pbnB1dF9hcmciOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLnNpZ25hdHVyZS5vdXRwdXRfYXJnIjohMCwibGlicmFyeS52ZXJzaW9ucyI6ITAsbm9kZTohMCwibm9kZS5pbnB1dCI6ITAsIm5vZGUuYXR0ciI6ITAsIm5vZGUuYXR0ci52YWx1ZS5saXN0LmIiOiEwLCJub2RlLmF0dHIudmFsdWUubGlzdC5mIjohMCwibm9kZS5hdHRyLnZhbHVlLmxpc3QuZnVuYyI6ITAsIm5vZGUuYXR0ci52YWx1ZS5saXN0LmkiOiEwLCJub2RlLmF0dHIudmFsdWUubGlzdC5zIjohMCwibm9kZS5hdHRyLnZhbHVlLmxpc3Quc2hhcGUiOiEwLCJub2RlLmF0dHIudmFsdWUubGlzdC5zaGFwZS5kaW0iOiEwLCJub2RlLmF0dHIudmFsdWUubGlzdC50ZW5zb3IiOiEwLCJub2RlLmF0dHIudmFsdWUubGlzdC50eXBlIjohMCwibm9kZS5hdHRyLnZhbHVlLnNoYXBlLmRpbSI6ITAsIm5vZGUuYXR0ci52YWx1ZS50ZW5zb3Iuc3RyaW5nX3ZhbCI6ITAsIm5vZGUuYXR0ci52YWx1ZS50ZW5zb3IudGVuc29yX3NoYXBlLmRpbSI6ITB9LGR1cj17InN0ZXBfc3RhdHMuZGV2X3N0YXRzIjohMCwic3RlcF9zdGF0cy5kZXZfc3RhdHMubm9kZV9zdGF0cyI6ITAsInN0ZXBfc3RhdHMuZGV2X3N0YXRzLm5vZGVfc3RhdHMub3V0cHV0IjohMCwic3RlcF9zdGF0cy5kZXZfc3RhdHMubm9kZV9zdGF0cy5tZW1vcnkiOiEwLCJzdGVwX3N0YXRzLmRldl9zdGF0cy5ub2RlX3N0YXRzLm91dHB1dC50ZW5zb3JfZGVzY3JpcHRpb24uc2hhcGUuZGltIjohMH07ZnVuY3Rpb24gbXVyKGUpe3JldHVybiBuY2UoZSxwdXIpfWZ1bmN0aW9uIGd1cihlKXtyZXR1cm4gbmNlKGUsZHVyKS50aGVuKHQ9PnQuc3RlcF9zdGF0cyl9ZnVuY3Rpb24gbmNlKGUsdCl7bGV0IHI9e30sbj1bXSxpPVtdLG89cjtmdW5jdGlvbiBhKGwpe2xldCBjPWwuaW5kZXhPZigiOiIpLHU9bC5zdWJzdHJpbmcoMCxjKS50cmltKCksaD1odXIobC5zdWJzdHJpbmcoYysyKS50cmltKCkpO3JldHVybntuYW1lOnUsdmFsdWU6aH19ZnVuY3Rpb24gcyhsLGMsdSxoKXtsZXQgZj1sW2NdO2Y9PW51bGw/bFtjXT1oLmpvaW4oIi4iKWluIHQ/W3VdOnU6QXJyYXkuaXNBcnJheShmKT9mLnB1c2godSk6bFtjXT1bZix1XX1yZXR1cm4gZnVyKGUsZnVuY3Rpb24obCl7aWYobD1sLnRyaW0oKSwhIWwpc3dpdGNoKGxbbC5sZW5ndGgtMV0pe2Nhc2UieyI6bGV0IGM9bC5zdWJzdHJpbmcoMCxsLmxlbmd0aC0yKS50cmltKCksdT17fTtuLnB1c2gobyksaS5wdXNoKGMpLHMobyxjLHUsaSksbz11O2JyZWFrO2Nhc2UifSI6bz1uLnBvcCgpLGkucG9wKCk7YnJlYWs7ZGVmYXVsdDpsZXQgaD1hKGwpO3MobyxoLm5hbWUsaC52YWx1ZSxpLmNvbmNhdChoLm5hbWUpKTticmVha319KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KX1mdW5jdGlvbiBvY2UoZSx0LHIsbj1uZXcgSnUsaT1yMyl7bGV0IG89SlMoZSwzMCwiRGF0YSIpLGE9SlMoZSwyMCwiR3JhcGgiKSxzPUpTKGUsNTAsIk5hbWVzcGFjZSBoaWVyYXJjaHkiKSxsPURhdGUubm93KCk7cmV0dXJuIHJjZSh0LHIsbykudGhlbihmdW5jdGlvbihjKXtpZighYy5ub2RlKXRocm93IG5ldyBFcnJvcigiVGhlIGdyYXBoIGlzIGVtcHR5LiBUaGlzIGNhbiBoYXBwZW4gd2hlbiBUZW5zb3JGbG93IGNvdWxkIG5vdCB0cmFjZSBhbnkgZ3JhcGguIFBsZWFzZSByZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9pc3N1ZXMvMTk2MSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iKTtyZXR1cm4gbGxlKGMsc2xlLGEpfSwoKT0+e3Rocm93IG5ldyBFcnJvcigiTWFsZm9ybWVkIEdyYXBoRGVmLiBUaGlzIGNhbiBzb21ldGltZXMgYmUgY2F1c2VkIGJ5IGEgYmFkIG5ldHdvcmsgY29ubmVjdGlvbiBvciBkaWZmaWN1bHR5IHJlY29uY2lsaW5nIG11bHRpcGxlIEdyYXBoRGVmczsgZm9yIHRoZSBsYXR0ZXIgY2FzZSwgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2lzc3Vlcy8xOTI5LiIpfSkudGhlbihjPT5SaSh0aGlzLG51bGwsZnVuY3Rpb24qKCl7WmxlKGMsbik7bGV0IHU9eWllbGQgYkgoYyxpLHMpO3JldHVybiBQbyh7dGltaW5nSWQ6anIuR1JBUEhfTE9BRF9TVUNDRUVERUQsZXZlbnRWYWx1ZTpEYXRlLm5vdygpLWx9KSx7Z3JhcGg6YyxncmFwaEhpZXJhcmNoeTp1fX0pKS5jYXRjaChjPT57bGV0IHU9YEdyYXBoIHZpc3VhbGl6YXRpb24gZmFpbGVkLgoKJHtjfWA7dGhyb3cgZS5yZXBvcnRFcnJvcih1LGMpLFBvKHt0aW1pbmdJZDpqci5HUkFQSF9MT0FEX0ZBSUxFRCxldmVudFZhbHVlOkRhdGUubm93KCktbH0pLGN9KX12YXIgVnM9Y2xhc3MgZXh0ZW5kcyBHdChtdCl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY29tcGF0aWJpbGl0eVByb3ZpZGVyPW5ldyBKdSx0aGlzLmhpZXJhcmNoeVBhcmFtcz1yMyx0aGlzLl90ZW1wbGF0ZT1udWxsfV9zZWxlY3Rpb25DaGFuZ2VkKCl7IXRoaXMuc2VsZWN0aW9ufHx0aGlzLmRlYm91bmNlKCJzZWxlY3Rpb25jaGFuZ2UiLCgpPT57dGhpcy5fbG9hZCh0aGlzLnNlbGVjdGlvbil9KX1fbG9hZCh0KXtsZXR7cnVuOnIsdGFnOm4sdHlwZTppfT10O3N3aXRjaChpKXtjYXNlIEJzLk9QX0dSQVBIOmNhc2UgQnMuQ09OQ0VQVFVBTF9HUkFQSDp7KGZ1bmN0aW9uKCl7dGhpcy5fc2V0T3V0U3RhdHMobnVsbCl9KS5iaW5kKHRoaXMpKCk7bGV0IG89bmV3IFVSTFNlYXJjaFBhcmFtcztvLnNldCgicnVuIixyKSxvLnNldCgiY29uY2VwdHVhbCIsU3RyaW5nKGk9PT1Ccy5DT05DRVBUVUFMX0dSQVBIKSksbiYmby5zZXQoInRhZyIsbik7bGV0IGE9X2UoKS5wbHVnaW5Sb3V0ZUZvclNyYygiZ3JhcGhzIiwiL2dyYXBoIixvKTtyZXR1cm4gdGhpcy5fZmV0Y2hBbmRDb25zdHJ1Y3RIaWVyYXJjaGljYWxHcmFwaChhKS50aGVuKCgpPT57dGhpcy5fZ3JhcGhSdW5UYWc9e3J1bjpyLHRhZzpufX0pfWNhc2UgQnMuUFJPRklMRTp7bGV0e3RhZ3M6b309dGhpcy5kYXRhc2V0cy5maW5kKCh7bmFtZTpmfSk9PmY9PT1yKSxzPW8uZmluZChmPT5mLnRhZz09PW4pLm9wR3JhcGg/bjpudWxsO2NvbnNvbGUuYXNzZXJ0KG8uZmluZChmPT5mLnRhZz09PXMpLGBSZXF1aXJlZCB0YWcgKCR7c30pIGlzIG1pc3NpbmcuYCk7bGV0IGM9IXRoaXMuX2dyYXBoUnVuVGFnfHx0aGlzLl9ncmFwaFJ1blRhZy5ydW4hPT1yfHx0aGlzLl9ncmFwaFJ1blRhZy50YWchPT1zP3RoaXMuX2xvYWQoe3J1bjpyLHRhZzpzLHR5cGU6QnMuT1BfR1JBUEh9KTpQcm9taXNlLnJlc29sdmUoKSx1PW5ldyBVUkxTZWFyY2hQYXJhbXM7dS5zZXQoInRhZyIsbiksdS5zZXQoInJ1biIscik7bGV0IGg9X2UoKS5wbHVnaW5Sb3V0ZUZvclNyYygiZ3JhcGhzIiwiL3J1bl9tZXRhZGF0YSIsdSk7cmV0dXJuIGMudGhlbigoKT0+dGhpcy5fcmVhZEFuZFBhcnNlTWV0YWRhdGEoaCkpfWRlZmF1bHQ6cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcihgVW5rbm93biBzZWxlY3Rpb24gdHlwZTogJHtpfWApKX19X3JlYWRBbmRQYXJzZU1ldGFkYXRhKHQpe3RoaXMuc2V0KCJwcm9ncmVzcyIse3ZhbHVlOjAsbXNnOiIifSk7dmFyIHI9blAodGhpcyk7ZWNlKHQscikudGhlbihmdW5jdGlvbihuKXt0aGlzLl9zZXRPdXRTdGF0cyhuKX0uYmluZCh0aGlzKSl9X2ZldGNoQW5kQ29uc3RydWN0SGllcmFyY2hpY2FsR3JhcGgodCxyKXt0aGlzLnNldCgicHJvZ3Jlc3MiLHt2YWx1ZTowLG1zZzoiIn0pO2xldCBuPW5QKHRoaXMpO3JldHVybiBvY2Uobix0LHIhPT12b2lkIDA/cjpudWxsLHRoaXMuY29tcGF0aWJpbGl0eVByb3ZpZGVyLHRoaXMuaGllcmFyY2h5UGFyYW1zKS50aGVuKGZ1bmN0aW9uKHtncmFwaDppLGdyYXBoSGllcmFyY2h5Om99KXt0aGlzLl9zZXRPdXRHcmFwaChpKSx0aGlzLl9zZXRPdXRHcmFwaEhpZXJhcmNoeShvKX0uYmluZCh0aGlzKSl9X3NlbGVjdGVkRmlsZUNoYW5nZWQoKXt2YXIgaTt2YXIgdD10aGlzLnNlbGVjdGVkRmlsZTtpZighdClyZXR1cm47bGV0IHI9dC50YXJnZXQsbj0oaT1yLmZpbGVzKT09bnVsbD92b2lkIDA6aVswXTshbnx8KHIudmFsdWU9IiIsdGhpcy5fZmV0Y2hBbmRDb25zdHJ1Y3RIaWVyYXJjaGljYWxHcmFwaChudWxsLG4pKX19O0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSxWcy5wcm90b3R5cGUsImRhdGFzZXRzIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxWcy5wcm90b3R5cGUsInByb2dyZXNzIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFZzLnByb3RvdHlwZSwic2VsZWN0aW9uIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFZzLnByb3RvdHlwZSwic2VsZWN0ZWRGaWxlIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFZzLnByb3RvdHlwZSwiY29tcGF0aWJpbGl0eVByb3ZpZGVyIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFZzLnByb3RvdHlwZSwiaGllcmFyY2h5UGFyYW1zIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0LHJlYWRPbmx5OiEwLG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixhcyldLFZzLnByb3RvdHlwZSwib3V0R3JhcGhIaWVyYXJjaHkiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3QscmVhZE9ubHk6ITAsbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLFh1KV0sVnMucHJvdG90eXBlLCJvdXRHcmFwaCIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdCxyZWFkT25seTohMCxub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sVnMucHJvdG90eXBlLCJvdXRTdGF0cyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxWcy5wcm90b3R5cGUsIl9ncmFwaFJ1blRhZyIsdm9pZCAwKTtFKFtCdCgic2VsZWN0aW9uIiwiY29tcGF0aWJpbGl0eVByb3ZpZGVyIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxWcy5wcm90b3R5cGUsIl9zZWxlY3Rpb25DaGFuZ2VkIixudWxsKTtFKFtCdCgic2VsZWN0ZWRGaWxlIiwiY29tcGF0aWJpbGl0eVByb3ZpZGVyIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxWcy5wcm90b3R5cGUsIl9zZWxlY3RlZEZpbGVDaGFuZ2VkIixudWxsKTtWcz1FKFt5dCgidGYtZ3JhcGgtZGFzaGJvYXJkLWxvYWRlciIpXSxWcyk7dmFyIGFjZT0icnVuIjt2YXIgT3I9Y2xhc3MgZXh0ZW5kcyBHdChtdCl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2RhdGFzZXRzPVtdLHRoaXMuX2RhdGFzZXRzRmV0Y2hlZD0hMSx0aGlzLl9zZWxlY3RlZERhdGFzZXQ9MCx0aGlzLl9yZXF1ZXN0TWFuYWdlcj1uZXcgQWUsdGhpcy5fY2FuY2VsbGVyPW5ldyBhbix0aGlzLnNwZWNpZmljSGVhbHRoUGlsbFN0ZXA9MCx0aGlzLmhlYWx0aFBpbGxzVG9nZ2xlZE9uPSExLHRoaXMuX2RlYnVnZ2VyTnVtZXJpY0FsZXJ0cz1bXSx0aGlzLl9ub2RlTmFtZXNUb0hlYWx0aFBpbGxzPXt9LHRoaXMuX2hlYWx0aFBpbGxSZXF1ZXN0SWQ9MSx0aGlzLl9oZWFsdGhQaWxsU3RlcFJlcXVlc3RUaW1lckRlbGF5PTUwMCx0aGlzLnJ1bj12XyhhY2Use2RlZmF1bHRWYWx1ZToiIix1c2VMb2NhbFN0b3JhZ2U6ITF9KS5jYWxsKHRoaXMpLHRoaXMuX3J1bk9ic2VydmVyPXhfKGFjZSx7ZGVmYXVsdFZhbHVlOiIiLHBvbHltZXJQcm9wZXJ0eToicnVuIix1c2VMb2NhbFN0b3JhZ2U6ITF9KX1hdHRhY2hlZCgpe3RoaXMuc2V0KCJfaXNBdHRhY2hlZCIsITApfWRldGFjaGVkKCl7dGhpcy5zZXQoIl9pc0F0dGFjaGVkIiwhMSl9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS10b2dnbGUtZXhwYW5kIix0aGlzLl9oYW5kbGVOb2RlVG9nZ2xlRXhwYW5kLmJpbmQodGhpcykpfXJlbG9hZCgpe3RoaXMuX2RlYnVnZ2VyRGF0YUVuYWJsZWR8fHRoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3QoX2UoKS5wbHVnaW5zTGlzdGluZygpKS50aGVuKHRoaXMuX2NhbmNlbGxlci5jYW5jZWxsYWJsZSh0PT57dC5jYW5jZWxsZWR8fHQudmFsdWUuZGVidWdnZXImJnRoaXMuc2V0KCJfZGVidWdnZXJEYXRhRW5hYmxlZCIsITApfSkpLHRoaXMuX21heWJlRmV0Y2hIZWFsdGhQaWxscygpfV9maXQoKXt0aGlzLiQkKCIjZ3JhcGhib2FyZCIpLmZpdCgpfV9vbkRvd25sb2FkSW1hZ2VSZXF1ZXN0ZWQodCl7dGhpcy4kJCgiI2dyYXBoYm9hcmQiKS5kb3dubG9hZEFzSW1hZ2UodC5kZXRhaWwpfV9nZXRHcmFwaERpc3BsYXlDbGFzc05hbWUodCxyKXtyZXR1cm4gdHx8ci5sZW5ndGg/IiI6Im5vLWdyYXBoIn1fZmV0Y2hEYXRhc2V0KCl7cmV0dXJuIHRoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3QoX2UoKS5wbHVnaW5Sb3V0ZSgiZ3JhcGhzIiwiL2luZm8iKSl9X2ZldGNoSGVhbHRoUGlsbHModCxyKXtsZXQgbj17bm9kZV9uYW1lczpKU09OLnN0cmluZ2lmeSh0KSxydW46Il9fZGVidWdnZXJfZGF0YV9fIn07ciE9PXZvaWQgMCYmKG4uc3RlcD1yKTtsZXQgaT1fZSgpLnBsdWdpblJvdXRlKCJkZWJ1Z2dlciIsIi9oZWFsdGhfcGlsbHMiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdChpLG4pfV9mZXRjaERlYnVnZ2VyTnVtZXJpY3NBbGVydHMoKXtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdChfZSgpLnBsdWdpblJvdXRlKCJkZWJ1Z2dlciIsIi9udW1lcmljc19hbGVydF9yZXBvcnQiKSl9X2dyYXBoVXJsKHQscixuKXtyZXR1cm4gX2UoKS5wbHVnaW5Sb3V0ZUZvclNyYygiZ3JhcGhzIiwiL2dyYXBoIixuZXcgVVJMU2VhcmNoUGFyYW1zKHtydW46dCxsaW1pdF9hdHRyX3NpemU6cixsYXJnZV9hdHRyc19rZXk6bn0pKX1fc2hvdWxkUmVxdWVzdEhlYWx0aFBpbGxzKCl7cmV0dXJuIHRoaXMuX2RlYnVnZ2VyRGF0YUVuYWJsZWQmJnRoaXMuaGVhbHRoUGlsbHNUb2dnbGVkT24mJnRoaXMuX3JlbmRlckhpZXJhcmNoeSYmdGhpcy5fZGF0YXNldHNTdGF0ZSh0aGlzLl9kYXRhc2V0c0ZldGNoZWQsdGhpcy5fZGF0YXNldHMsIlBSRVNFTlQiKX1fbWF5YmVJbml0aWFsaXplRGFzaGJvYXJkKCl7dmFyIHQ9dGhpcy5faXNBdHRhY2hlZDt0aGlzLl9pbml0aWFsaXplZHx8IXR8fCh0aGlzLnNldCgiX2NvbXBhdGliaWxpdHlQcm92aWRlciIsbmV3IEp1KSx0aGlzLl9pbml0aWFsaXplZD0hMCx0aGlzLl9mZXRjaERhdGFzZXQoKS50aGVuKHI9PntsZXQgbj1PYmplY3Qua2V5cyhyKTt0aGlzLl9kYXRhc2V0cz1uLnNvcnQoYmgpLm1hcChpPT57bGV0IG89cltpXSxzPU9iamVjdC5rZXlzKG8udGFncykuc29ydChiaCkubWFwKGM9Pm8udGFnc1tjXSkubWFwKCh7dGFnOmMsY29uY2VwdHVhbF9ncmFwaDp1LG9wX2dyYXBoOmgscHJvZmlsZTpmfSk9Pih7dGFnOmMsZGlzcGxheU5hbWU6Yyxjb25jZXB0dWFsR3JhcGg6dSxvcEdyYXBoOmgscHJvZmlsZTpmfSkpLGw9by5ydW5fZ3JhcGg/W3t0YWc6bnVsbCxkaXNwbGF5TmFtZToiRGVmYXVsdCIsY29uY2VwdHVhbEdyYXBoOiExLG9wR3JhcGg6ITAscHJvZmlsZTohMX0sLi4uc106cztyZXR1cm57bmFtZTppLHRhZ3M6bH19KSx0aGlzLl9kYXRhc2V0c0ZldGNoZWQ9ITB9KSl9X2RldGVybWluZVNlbGVjdGVkRGF0YXNldCgpe3ZhciB0PXRoaXMuX2RhdGFzZXRzRmV0Y2hlZCxyPXRoaXMuX2RhdGFzZXRzLG49dGhpcy5ydW47aWYoIW4pe3RoaXMuc2V0KCJfc2VsZWN0ZWREYXRhc2V0IiwwKTtyZXR1cm59bGV0IGk9ci5maW5kSW5kZXgobz0+by5uYW1lPT09bik7aWYoaT09PS0xKXtpZih0KXtsZXQgbz10aGlzLiQkKCIjZXJyb3ItZGlhbG9nIik7by50ZXh0Q29udGVudD1gTm8gZGF0YXNldCBuYW1lZCAiJHtufSIgY291bGQgYmUgZm91bmQuYCxvLm9wZW4oKX1yZXR1cm59dGhpcy5zZXQoIl9zZWxlY3RlZERhdGFzZXQiLGkpfV91cGRhdGVTZWxlY3RlZERhdGFzZXROYW1lKCl7dmFyIHQ9dGhpcy5fZGF0YXNldHNGZXRjaGVkLHI9dGhpcy5fZGF0YXNldHMsbj10aGlzLl9zZWxlY3RlZERhdGFzZXQ7IXR8fHIubGVuZ3RoPD1ufHx0aGlzLnNldCgicnVuIixyW25dLm5hbWUpfV9yZXF1ZXN0SGVhbHRoUGlsbHMoKXt0aGlzLnNldCgiX2FyZUhlYWx0aFBpbGxzTG9hZGluZyIsITApO3ZhciB0PSsrdGhpcy5faGVhbHRoUGlsbFJlcXVlc3RJZDt0aGlzLl9oZWFsdGhQaWxsU3RlcFJlcXVlc3RUaW1lcklkIT09bnVsbCYmKHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5faGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJJZCksdGhpcy5faGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJJZD1udWxsKSx0aGlzLmFsbFN0ZXBzTW9kZUVuYWJsZWQ/dGhpcy5faGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJJZD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhpcy5faGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJJZD1udWxsLHRoaXMuX2luaXRpYXRlTmV0d29ya1JlcXVlc3RGb3JIZWFsdGhQaWxscyh0KX0uYmluZCh0aGlzKSx0aGlzLl9oZWFsdGhQaWxsU3RlcFJlcXVlc3RUaW1lckRlbGF5KTp0aGlzLl9pbml0aWF0ZU5ldHdvcmtSZXF1ZXN0Rm9ySGVhbHRoUGlsbHModCl9X2luaXRpYXRlTmV0d29ya1JlcXVlc3RGb3JIZWFsdGhQaWxscyh0KXtpZih0aGlzLl9oZWFsdGhQaWxsUmVxdWVzdElkIT09dClyZXR1cm47bGV0IHI9dGhpcy5hbGxTdGVwc01vZGVFbmFibGVkP3RoaXMuc3BlY2lmaWNIZWFsdGhQaWxsU3RlcDp2b2lkIDAsbj10aGlzLl9mZXRjaEhlYWx0aFBpbGxzKHRoaXMuX3JlbmRlckhpZXJhcmNoeS5nZXROYW1lc09mUmVuZGVyZWRPcHMoKSxyKSxpPXRoaXMuX2ZldGNoRGVidWdnZXJOdW1lcmljc0FsZXJ0cygpO1Byb21pc2UuYWxsKFtuLGldKS50aGVuKGZ1bmN0aW9uKG8pe3ZhciBhPW9bMF0scz1vWzFdO2lmKCEhdGhpcy5oZWFsdGhQaWxsc1RvZ2dsZWRPbiYmdD09PXRoaXMuX2hlYWx0aFBpbGxSZXF1ZXN0SWQpe2Zvcih2YXIgbCBpbiBhKXt0aGlzLnNldCgiX2hlYWx0aFBpbGxTdGVwSW5kZXgiLGFbbF0ubGVuZ3RoLTEpO2JyZWFrfXRoaXMuc2V0KCJfZGVidWdnZXJOdW1lcmljQWxlcnRzIixzKSx0aGlzLnNldCgiX25vZGVOYW1lc1RvSGVhbHRoUGlsbHMiLGEpLHRoaXMuc2V0KCJfYXJlSGVhbHRoUGlsbHNMb2FkaW5nIiwhMSksdGhpcy5zZXQoIl9oZWFsdGhQaWxsU3RlcFJlcXVlc3RUaW1lcklkIixudWxsKX19LmJpbmQodGhpcykpfV9kYXRhc2V0c1N0YXRlKHQscixuKXtyZXR1cm4gdD8hcnx8IXIubGVuZ3RoP249PT0iRU1QVFkiOm49PT0iUFJFU0VOVCI6bj09PSJOT1RfTE9BREVEIn1fcmVuZGVySGllcmFyY2h5Q2hhbmdlZCh0KXt0aGlzLnJlbG9hZCgpfV9oYW5kbGVOb2RlVG9nZ2xlRXhwYW5kKCl7dGhpcy5fbWF5YmVGZXRjaEhlYWx0aFBpbGxzKCl9X2hlYWx0aFBpbGxzVG9nZ2xlZE9uQ2hhbmdlZCh0KXt0P3RoaXMucmVsb2FkKCk6dGhpcy5zZXQoIl9ub2RlTmFtZXNUb0hlYWx0aFBpbGxzIix7fSl9X21heWJlRmV0Y2hIZWFsdGhQaWxscygpeyF0aGlzLl9zaG91bGRSZXF1ZXN0SGVhbHRoUGlsbHMoKXx8dGhpcy5fcmVxdWVzdEhlYWx0aFBpbGxzKCl9fTtPci50ZW1wbGF0ZT1RYAogICAgPHBhcGVyLWRpYWxvZyBpZD0iZXJyb3ItZGlhbG9nIiB3aXRoLWJhY2tkcm9wPjwvcGFwZXItZGlhbG9nPgogICAgPHRmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICAgIDx0Zi1ncmFwaC1jb250cm9scwogICAgICAgIGlkPSJjb250cm9scyIKICAgICAgICBjbGFzcz0ic2lkZWJhciIKICAgICAgICBzbG90PSJzaWRlYmFyIgogICAgICAgIGRldmljZXMtZm9yLXN0YXRzPSJ7e19kZXZpY2VzRm9yU3RhdHN9fSIKICAgICAgICBjb2xvci1ieS1wYXJhbXM9IltbX2NvbG9yQnlQYXJhbXNdXSIKICAgICAgICBzdGF0cz0iW1tfc3RhdHNdXSIKICAgICAgICBjb2xvci1ieT0ie3tfY29sb3JCeX19IgogICAgICAgIGRhdGFzZXRzPSJbW19kYXRhc2V0c11dIgogICAgICAgIHJlbmRlci1oaWVyYXJjaHk9IltbX3JlbmRlckhpZXJhcmNoeV1dIgogICAgICAgIHNlbGVjdGlvbj0ie3tfc2VsZWN0aW9ufX0iCiAgICAgICAgc2VsZWN0ZWQtZmlsZT0ie3tfc2VsZWN0ZWRGaWxlfX0iCiAgICAgICAgc2VsZWN0ZWQtbm9kZT0ie3tfc2VsZWN0ZWROb2RlfX0iCiAgICAgICAgaGVhbHRoLXBpbGxzLWZlYXR1cmUtZW5hYmxlZD0iW1tfZGVidWdnZXJEYXRhRW5hYmxlZF1dIgogICAgICAgIGhlYWx0aC1waWxscy10b2dnbGVkLW9uPSJ7e2hlYWx0aFBpbGxzVG9nZ2xlZE9ufX0iCiAgICAgICAgb24tZml0LXRhcD0iX2ZpdCIKICAgICAgICB0cmFjZS1pbnB1dHM9Int7X3RyYWNlSW5wdXRzfX0iCiAgICAgICAgYXV0by1leHRyYWN0LW5vZGVzPSJ7e19hdXRvRXh0cmFjdE5vZGVzfX0iCiAgICAgICAgb24tZG93bmxvYWQtaW1hZ2UtcmVxdWVzdGVkPSJfb25Eb3dubG9hZEltYWdlUmVxdWVzdGVkIgogICAgICA+PC90Zi1ncmFwaC1jb250cm9scz4KICAgICAgPGRpdgogICAgICAgIGNsYXNzJD0iY2VudGVyIFtbX2dldEdyYXBoRGlzcGxheUNsYXNzTmFtZShfc2VsZWN0ZWRGaWxlLCBfZGF0YXNldHMpXV0iCiAgICAgICAgc2xvdD0iY2VudGVyIgogICAgICA+CiAgICAgICAgPHRmLWdyYXBoLWRhc2hib2FyZC1sb2FkZXIKICAgICAgICAgIGlkPSJsb2FkZXIiCiAgICAgICAgICBkYXRhc2V0cz0iW1tfZGF0YXNldHNdXSIKICAgICAgICAgIHNlbGVjdGlvbj0iW1tfc2VsZWN0aW9uXV0iCiAgICAgICAgICBzZWxlY3RlZC1maWxlPSJbW19zZWxlY3RlZEZpbGVdXSIKICAgICAgICAgIG91dC1ncmFwaC1oaWVyYXJjaHk9Int7X2dyYXBoSGllcmFyY2h5fX0iCiAgICAgICAgICBvdXQtZ3JhcGg9Int7X2dyYXBofX0iCiAgICAgICAgICBvdXQtc3RhdHM9Int7X3N0YXRzfX0iCiAgICAgICAgICBwcm9ncmVzcz0ie3tfcHJvZ3Jlc3N9fSIKICAgICAgICAgIGhpZXJhcmNoeS1wYXJhbXM9IltbX2hpZXJhcmNoeVBhcmFtc11dIgogICAgICAgICAgY29tcGF0aWJpbGl0eS1wcm92aWRlcj0iW1tfY29tcGF0aWJpbGl0eVByb3ZpZGVyXV0iCiAgICAgICAgPjwvdGYtZ3JhcGgtZGFzaGJvYXJkLWxvYWRlcj4KICAgICAgICA8ZGl2IGNsYXNzPSJuby1kYXRhLW1lc3NhZ2UiPgogICAgICAgICAgPGgzPk5vIGdyYXBoIGRlZmluaXRpb24gZmlsZXMgd2VyZSBmb3VuZC48L2gzPgogICAgICAgICAgPHA+CiAgICAgICAgICAgIFRvIHN0b3JlIGEgZ3JhcGgsIGNyZWF0ZSBhCiAgICAgICAgICAgIDxjb2RlPnRmLnN1bW1hcnkuRmlsZVdyaXRlcjwvY29kZT4KICAgICAgICAgICAgYW5kIHBhc3MgdGhlIGdyYXBoIGVpdGhlciB2aWEgdGhlIGNvbnN0cnVjdG9yLCBvciBieSBjYWxsaW5nIGl0cwogICAgICAgICAgICA8Y29kZT5hZGRfZ3JhcGgoKTwvY29kZT4gbWV0aG9kLiBZb3UgbWF5IHdhbnQgdG8gY2hlY2sgb3V0IHRoZQogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy90ZW5zb3Jib2FyZC9ncmFwaHMiCiAgICAgICAgICAgICAgPmV4YW1pbmluZyB0aGUgVGVuc29yRmxvdyBncmFwaCB0dXRvcmlhbDwvYQogICAgICAgICAgICA+LgogICAgICAgICAgPC9wPgoKICAgICAgICAgIDxwPgogICAgICAgICAgICBJZiB5b3XigJlyZSBuZXcgdG8gdXNpbmcgVGVuc29yQm9hcmQsIGFuZCB3YW50IHRvIGZpbmQgb3V0IGhvdyB0byBhZGQKICAgICAgICAgICAgZGF0YSBhbmQgc2V0IHVwIHlvdXIgZXZlbnQgZmlsZXMsIGNoZWNrIG91dCB0aGUKICAgICAgICAgICAgPGEKICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQiCiAgICAgICAgICAgICAgPlJFQURNRTwvYQogICAgICAgICAgICA+CiAgICAgICAgICAgIGFuZCBwZXJoYXBzIHRoZQogICAgICAgICAgICA8YQogICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgPlRlbnNvckJvYXJkIHR1dG9yaWFsPC9hCiAgICAgICAgICAgID4uCiAgICAgICAgICA8L3A+CgogICAgICAgICAgPHA+CiAgICAgICAgICAgIElmIHlvdSB0aGluayBUZW5zb3JCb2FyZCBpcyBjb25maWd1cmVkIHByb3Blcmx5LCBwbGVhc2Ugc2VlCiAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI215LXRlbnNvcmJvYXJkLWlzbnQtc2hvd2luZy1hbnktZGF0YS13aGF0cy13cm9uZyIKICAgICAgICAgICAgICA+dGhlIHNlY3Rpb24gb2YgdGhlIFJFQURNRSBkZXZvdGVkIHRvIG1pc3NpbmcgZGF0YSBwcm9ibGVtczwvYQogICAgICAgICAgICA+CiAgICAgICAgICAgIGFuZCBjb25zaWRlciBmaWxpbmcgYW4gaXNzdWUgb24gR2l0SHViLgogICAgICAgICAgPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyYXBoYm9hcmQiPgogICAgICAgICAgPHRmLWdyYXBoLWJvYXJkCiAgICAgICAgICAgIGlkPSJncmFwaGJvYXJkIgogICAgICAgICAgICBkZXZpY2VzLWZvci1zdGF0cz0iW1tfZGV2aWNlc0ZvclN0YXRzXV0iCiAgICAgICAgICAgIGNvbG9yLWJ5PSJ7e19jb2xvckJ5fX0iCiAgICAgICAgICAgIGNvbG9yLWJ5LXBhcmFtcz0ie3tfY29sb3JCeVBhcmFtc319IgogICAgICAgICAgICBncmFwaC1oaWVyYXJjaHk9IltbX2dyYXBoSGllcmFyY2h5XV0iCiAgICAgICAgICAgIGdyYXBoPSJbW19ncmFwaF1dIgogICAgICAgICAgICBoaWVyYXJjaHktcGFyYW1zPSJbW19oaWVyYXJjaHlQYXJhbXNdXSIKICAgICAgICAgICAgcHJvZ3Jlc3M9IltbX3Byb2dyZXNzXV0iCiAgICAgICAgICAgIGRlYnVnZ2VyLWRhdGEtZW5hYmxlZD0iW1tfZGVidWdnZXJEYXRhRW5hYmxlZF1dIgogICAgICAgICAgICBhcmUtaGVhbHRoLXBpbGxzLWxvYWRpbmc9IltbX2FyZUhlYWx0aFBpbGxzTG9hZGluZ11dIgogICAgICAgICAgICBkZWJ1Z2dlci1udW1lcmljLWFsZXJ0cz0iW1tfZGVidWdnZXJOdW1lcmljQWxlcnRzXV0iCiAgICAgICAgICAgIG5vZGUtbmFtZXMtdG8taGVhbHRoLXBpbGxzPSJbW19ub2RlTmFtZXNUb0hlYWx0aFBpbGxzXV0iCiAgICAgICAgICAgIGFsbC1zdGVwcy1tb2RlLWVuYWJsZWQ9Int7YWxsU3RlcHNNb2RlRW5hYmxlZH19IgogICAgICAgICAgICBzcGVjaWZpYy1oZWFsdGgtcGlsbC1zdGVwPSJ7e3NwZWNpZmljSGVhbHRoUGlsbFN0ZXB9fSIKICAgICAgICAgICAgaGVhbHRoLXBpbGwtc3RlcC1pbmRleD0iW1tfaGVhbHRoUGlsbFN0ZXBJbmRleF1dIgogICAgICAgICAgICByZW5kZXItaGllcmFyY2h5PSJ7e19yZW5kZXJIaWVyYXJjaHl9fSIKICAgICAgICAgICAgc2VsZWN0ZWQtbm9kZT0ie3tfc2VsZWN0ZWROb2RlfX0iCiAgICAgICAgICAgIHN0YXRzPSJbW19zdGF0c11dIgogICAgICAgICAgICB0cmFjZS1pbnB1dHM9IltbX3RyYWNlSW5wdXRzXV0iCiAgICAgICAgICAgIGF1dG8tZXh0cmFjdC1ub2Rlcz0iW1tfYXV0b0V4dHJhY3ROb2Rlc11dIgogICAgICAgICAgPjwvdGYtZ3JhcGgtYm9hcmQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC90Zi1kYXNoYm9hcmQtbGF5b3V0PgogICAgPHN0eWxlPgogICAgICA6aG9zdCAvZGVlcC8gewogICAgICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLnNpZGViYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuY2VudGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICBwYXBlci1kaWFsb2cgewogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5uby1kYXRhLW1lc3NhZ2UgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CgogICAgICAuZ3JhcGhib2FyZCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAubm8tZ3JhcGggLmdyYXBoYm9hcmQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5jZW50ZXI6bm90KC5uby1ncmFwaCkgLm5vLWRhdGEtbWVzc2FnZSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgYSB7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLWxpbmspOwogICAgICB9CgogICAgICBhOnZpc2l0ZWQgewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1saW5rLXZpc2l0ZWQpOwogICAgICB9CiAgICA8L3N0eWxlPgogIGA7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLE9yLnByb3RvdHlwZSwiX2RhdGFzZXRzIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sT3IucHJvdG90eXBlLCJfZGF0YXNldHNGZXRjaGVkIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLE9yLnByb3RvdHlwZSwiX3NlbGVjdGVkRGF0YXNldCIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdCxvYnNlcnZlcjoiX3JlbmRlckhpZXJhcmNoeUNoYW5nZWQifSksdygiZGVzaWduOnR5cGUiLGxvKV0sT3IucHJvdG90eXBlLCJfcmVuZGVySGllcmFyY2h5Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLEFlKV0sT3IucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsYW4pXSxPci5wcm90b3R5cGUsIl9jYW5jZWxsZXIiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxPci5wcm90b3R5cGUsIl9kZWJ1Z2dlckRhdGFFbmFibGVkIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sT3IucHJvdG90eXBlLCJhbGxTdGVwc01vZGVFbmFibGVkIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLE9yLnByb3RvdHlwZSwic3BlY2lmaWNIZWFsdGhQaWxsU3RlcCIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW4sb2JzZXJ2ZXI6Il9oZWFsdGhQaWxsc1RvZ2dsZWRPbkNoYW5nZWQifSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxPci5wcm90b3R5cGUsImhlYWx0aFBpbGxzVG9nZ2xlZE9uIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nLG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxPci5wcm90b3R5cGUsInNlbGVjdGVkTm9kZSIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLE9yLnByb3RvdHlwZSwiX2lzQXR0YWNoZWQiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxPci5wcm90b3R5cGUsIl9pbml0aWFsaXplZCIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLE9yLnByb3RvdHlwZSwiX2FyZUhlYWx0aFBpbGxzTG9hZGluZyIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5LG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLE9yLnByb3RvdHlwZSwiX2RlYnVnZ2VyTnVtZXJpY0FsZXJ0cyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxPci5wcm90b3R5cGUsIl9ub2RlTmFtZXNUb0hlYWx0aFBpbGxzIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLE9yLnByb3RvdHlwZSwiX2hlYWx0aFBpbGxTdGVwSW5kZXgiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXJ9KSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sT3IucHJvdG90eXBlLCJfaGVhbHRoUGlsbFJlcXVlc3RJZCIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxPci5wcm90b3R5cGUsIl9oZWFsdGhQaWxsU3RlcFJlcXVlc3RUaW1lcklkIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLE9yLnByb3RvdHlwZSwiX2hlYWx0aFBpbGxTdGVwUmVxdWVzdFRpbWVyRGVsYXkiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLE9yLnByb3RvdHlwZSwicnVucyIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZyxub3RpZnk6ITAsb2JzZXJ2ZXI6Il9ydW5PYnNlcnZlciJ9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sT3IucHJvdG90eXBlLCJydW4iLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sT3IucHJvdG90eXBlLCJfc2VsZWN0aW9uIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLE9yLnByb3RvdHlwZSwiX2NvbXBhdGliaWxpdHlQcm92aWRlciIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLE9yLnByb3RvdHlwZSwiX3RyYWNlSW5wdXRzIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sT3IucHJvdG90eXBlLCJfYXV0b0V4dHJhY3ROb2RlcyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxPci5wcm90b3R5cGUsIl9zZWxlY3RlZEZpbGUiLHZvaWQgMCk7RShbQnQoIl9pc0F0dGFjaGVkIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxPci5wcm90b3R5cGUsIl9tYXliZUluaXRpYWxpemVEYXNoYm9hcmQiLG51bGwpO0UoW0J0KCJfZGF0YXNldHNGZXRjaGVkIiwiX2RhdGFzZXRzIiwicnVuIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxPci5wcm90b3R5cGUsIl9kZXRlcm1pbmVTZWxlY3RlZERhdGFzZXQiLG51bGwpO0UoW0J0KCJfZGF0YXNldHNGZXRjaGVkIiwiX2RhdGFzZXRzIiwiX3NlbGVjdGVkRGF0YXNldCIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sT3IucHJvdG90eXBlLCJfdXBkYXRlU2VsZWN0ZWREYXRhc2V0TmFtZSIsbnVsbCk7T3I9RShbeXQoInRmLWdyYXBoLWRhc2hib2FyZCIpXSxPcik7dmFyIE5IPUVlKE9lKCksMSk7dmFyIGtyPVZyLEVhPWNsYXNzIGV4dGVuZHMgR3QoX28obXQpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5tb2RlPSJvZmZzZXQiLHRoaXMudGltZVByb3BlcnR5PSJzdGVwIix0aGlzLmJpbnM9ImJpbnMiLHRoaXMueD0ieCIsdGhpcy5keD0iZHgiLHRoaXMueT0ieSIsdGhpcy5jb2xvclNjYWxlPWtyLnNjYWxlT3JkaW5hbChrci5zY2hlbWVDYXRlZ29yeTEwKSx0aGlzLm1vZGVUcmFuc2l0aW9uRHVyYXRpb249NTAwLHRoaXMuX25hbWU9bnVsbCx0aGlzLl9kYXRhPW51bGx9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuc2NvcGVTdWJ0cmVlKHRoaXMuJC5zdmcsITApfWF0dGFjaGVkKCl7dGhpcy5fYXR0YWNoZWQ9ITB9ZGV0YWNoZWQoKXt0aGlzLl9hdHRhY2hlZD0hMX1zZXRTZXJpZXNEYXRhKHQscil7dGhpcy5fbmFtZT10LHRoaXMuX2RhdGE9cix0aGlzLnJlZHJhdygpfV9yZWRyYXdPbkNoYW5nZSgpe3RoaXMucmVkcmF3KCl9cmVkcmF3KCl7dGhpcy5fZHJhdygwKX1fbW9kZVJlZHJhdygpe3RoaXMuX2RyYXcodGhpcy5tb2RlVHJhbnNpdGlvbkR1cmF0aW9uKX1fZHJhdyh0KXtpZighdGhpcy5fYXR0YWNoZWR8fCF0aGlzLl9kYXRhKXJldHVybjtpZih0PT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigidnotaGlzdG9ncmFtLXRpbWVzZXJpZXMgX2RyYXcgbmVlZHMgZHVyYXRpb24iKTtpZih0aGlzLl9kYXRhLmxlbmd0aDw9MCl0aHJvdyBuZXcgRXJyb3IoIk5vdCBlbm91Z2ggc3RlcHMgaW4gdGhlIGRhdGEiKTtpZighdGhpcy5fZGF0YVswXS5oYXNPd25Qcm9wZXJ0eSh0aGlzLmJpbnMpKXRocm93IG5ldyBFcnJvcigiTm8gYmlucyBwcm9wZXJ0eSBvZiAnIit0aGlzLmJpbnMrIicgaW4gZGF0YSIpO2lmKHRoaXMuX2RhdGFbMF1bdGhpcy5iaW5zXS5sZW5ndGg8PTApdGhyb3cgbmV3IEVycm9yKCJNdXN0IGhhdmUgYXQgbGVhc3Qgb25lIGJpbiBpbiBiaW5zIGluIGRhdGEiKTtpZighdGhpcy5fZGF0YVswXVt0aGlzLmJpbnNdWzBdLmhhc093blByb3BlcnR5KHRoaXMueCkpdGhyb3cgbmV3IEVycm9yKCJObyB4IHByb3BlcnR5ICciK3RoaXMueCsiJyBvbiBiaW5zIGRhdGEiKTtpZighdGhpcy5fZGF0YVswXVt0aGlzLmJpbnNdWzBdLmhhc093blByb3BlcnR5KHRoaXMuZHgpKXRocm93IG5ldyBFcnJvcigiTm8gZHggcHJvcGVydHkgJyIrdGhpcy5keCsiJyBvbiBiaW5zIGRhdGEiKTtpZighdGhpcy5fZGF0YVswXVt0aGlzLmJpbnNdWzBdLmhhc093blByb3BlcnR5KHRoaXMueSkpdGhyb3cgbmV3IEVycm9yKCJObyB5IHByb3BlcnR5ICciK3RoaXMueSsiJyBvbiBiaW5zIGRhdGEiKTt2YXIgcj10aGlzLnRpbWVQcm9wZXJ0eSxuPXRoaXMueCxpPXRoaXMuYmlucyxvPXRoaXMuZHgsYT10aGlzLnkscz10aGlzLl9kYXRhLGw9dGhpcy5fbmFtZSxjPXRoaXMubW9kZSx1PWtyLmhjbCh0aGlzLmNvbG9yU2NhbGUobCkpLGg9a3Iuc2VsZWN0KHRoaXMuJC50b29sdGlwKSxmPWZ1bmN0aW9uKE50KXtyZXR1cm4gTnRbbl19LHA9ZnVuY3Rpb24oTnQpe3JldHVybiBOdFthXX0sZD1mdW5jdGlvbihOdCl7cmV0dXJuIE50W29dfSxnPWZ1bmN0aW9uKE50KXtyZXR1cm4gTnRbbl0rTnRbb119LF89ZnVuY3Rpb24oTnQpe3JldHVybiBOdFtyXX07cj09PSJyZWxhdGl2ZSImJihfPWZ1bmN0aW9uKE50KXtyZXR1cm4gTnQud2FsbF90aW1lLXNbMF0ud2FsbF90aW1lfSk7dmFyIHk9dGhpcy4kLnN2Zy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx4PXkud2lkdGgsYj15LmhlaWdodCxTLEM9e3RvcDo1LHJpZ2h0OjYwLGJvdHRvbToyMCxsZWZ0OjI0fTtjPT09Im9mZnNldCI/KFM9Yi8yLjUsQy50b3A9Uys1KTpTPWItQy50b3AtQy5ib3R0b207dmFyIFA9eC1DLmxlZnQtQy5yaWdodCxrPWItQy50b3AtQy5ib3R0b20sTz1rci5taW4ocyxmKSxEPWtyLm1heChzLGcpLEI9a3IuZm9ybWF0KCIuM24iKSxJPWtyLmZvcm1hdCgiLjBmIik7cj09PSJ3YWxsX3RpbWUiP0k9a3IudGltZUZvcm1hdCgiJW0vJWQgJVgiKTpyPT09InJlbGF0aXZlIiYmKEk9ZnVuY3Rpb24oTnQpe3JldHVybiBrci5mb3JtYXQoIi4xciIpKE50LzM2ZTUpKyJoIn0pO3ZhciBMPXMubWFwKGZ1bmN0aW9uKE50LHplKXtyZXR1cm5ba3IubWluKE50W2ldLGYpLGtyLm1heChOdFtpXSxnKV19KSxSPXMubWFwKGZ1bmN0aW9uKE50KXtyZXR1cm4ga3IuZXh0ZW50KE50W2ldLHApfSksRj01MDAsej1rci5leHRlbnQocyxfKSxVPShyPT09IndhbGxfdGltZSI/a3Iuc2NhbGVUaW1lKCk6a3Iuc2NhbGVMaW5lYXIoKSkuZG9tYWluKHopLnJhbmdlKFswLGM9PT0ib2Zmc2V0Ij9rOjBdKSxXPWtyLnNjYWxlTGluZWFyKCkuZG9tYWluKFswLGtyLm1heChzLGZ1bmN0aW9uKE50LHplKXtyZXR1cm4gUlt6ZV1bMV19KV0pLnJhbmdlKFtTLDBdKSxaPWtyLnNjYWxlTGluZWFyKCkuZG9tYWluKFcuZG9tYWluKCkpLnJhbmdlKFtGLDBdKSxydD1rci5zY2FsZUxpbmVhcigpLmRvbWFpbihba3IubWluKHMsZnVuY3Rpb24oTnQsemUpe3JldHVybiBMW3plXVswXX0pLGtyLm1heChzLGZ1bmN0aW9uKE50LHplKXtyZXR1cm4gTFt6ZV1bMV19KV0pLm5pY2UoKS5yYW5nZShbMCxQXSksb3Q9a3Iuc2NhbGVMaW5lYXIoKS5kb21haW4ocnQuZG9tYWluKCkpLnJhbmdlKFswLEZdKTtsZXQgc3Q9a3Iuc2NhbGVMaW5lYXIoKS5kb21haW4oa3IuZXh0ZW50KHMsXykpLnJhbmdlKFt1LmJyaWdodGVyKCksdS5kYXJrZXIoKV0pLmludGVycG9sYXRlKGtyLmludGVycG9sYXRlSGNsKTt2YXIgU3Q9a3IuYXhpc0JvdHRvbShydCkudGlja3MoTWF0aC5tYXgoMixQLzIwKSksYnQ9a3IuYXhpc1JpZ2h0KFUpLnRpY2tzKE1hdGgubWF4KDIsay8xNSkpLnRpY2tGb3JtYXQoSSksTXQ9a3IuYXhpc1JpZ2h0KFcpLnRpY2tzKE1hdGgubWF4KDIsay8xNSkpLnRpY2tTaXplKFArNSkudGlja0Zvcm1hdChCKSxsdD1mdW5jdGlvbihOdCl7cmV0dXJuIE50W25dK050W29dLzJ9LEt0PWtyLmxpbmUoKS54KGZ1bmN0aW9uKE50KXtyZXR1cm4gb3QobHQoTnQpKX0pLnkoZnVuY3Rpb24oTnQpe3JldHVybiBaKE50W2FdKX0pLF90PWZ1bmN0aW9uKE50KXtyZXR1cm4iTSIrb3QobHQoTnRbMF0pKSsiLCIrWigwKSsiTCIrS3QoTnQpLnNsaWNlKDEpKyJMIitvdChsdChOdFtOdC5sZW5ndGgtMV0pKSsiLCIrWigwKX0sY3Q9dGhpcy4kLnN2ZyxYPWtyLnNlbGVjdChjdCksZXQ9WC50cmFuc2l0aW9uKCkuZHVyYXRpb24odCksZHQ9WC5zZWxlY3QoImciKS5jbGFzc2VkKCJzbWFsbCIsZnVuY3Rpb24oKXtyZXR1cm4gUD4wJiZQPD0xNTB9KS5jbGFzc2VkKCJtZWRpdW0iLGZ1bmN0aW9uKCl7cmV0dXJuIFA+MTUwJiZQPD0zMDB9KS5jbGFzc2VkKCJsYXJnZSIsZnVuY3Rpb24oKXtyZXR1cm4gUD4zMDB9KSxxPWV0LnNlbGVjdCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK0MubGVmdCsiLCIrQy50b3ArIikiKSxwdD1rci5iaXNlY3RvcihnKS5sZWZ0LGh0PWR0LnNlbGVjdCgiLnN0YWdlIikub24oIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXtUdC5zdHlsZSgib3BhY2l0eSIsMSksQ3Quc3R5bGUoIm9wYWNpdHkiLDEpLGF0LnN0eWxlKCJvcGFjaXR5IiwxKSxDZS5zdHlsZSgib3BhY2l0eSIsMSksaC5zdHlsZSgib3BhY2l0eSIsMSl9KS5vbigibW91c2VvdXQiLGZ1bmN0aW9uKCl7VHQuc3R5bGUoIm9wYWNpdHkiLDApLEN0LnN0eWxlKCJvcGFjaXR5IiwwKSxhdC5zdHlsZSgib3BhY2l0eSIsMCksQ2Uuc3R5bGUoIm9wYWNpdHkiLDApLFR0LmNsYXNzZWQoImhvdmVyLWNsb3Nlc3QiLCExKSxJdC5jbGFzc2VkKCJvdXRsaW5lLWhvdmVyIiwhMSksaC5zdHlsZSgib3BhY2l0eSIsMCl9KS5vbigibW91c2Vtb3ZlIixQdCksd3Q9aHQuc2VsZWN0KCIuYmFja2dyb3VuZCIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiKy1DLmxlZnQrIiwiKy1DLnRvcCsiKSIpLmF0dHIoIndpZHRoIix4KS5hdHRyKCJoZWlnaHQiLGIpLGt0PWh0LnNlbGVjdEFsbCgiLmhpc3RvZ3JhbSIpLmRhdGEocyksaWU9a3QuZXhpdCgpLnJlbW92ZSgpLGVlPWt0LmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJoaXN0b2dyYW0iKSxMZT1lZS5tZXJnZShrdCkuc29ydChmdW5jdGlvbihOdCx6ZSl7cmV0dXJuIF8oTnQpLV8oemUpfSksYXI9cS5zZWxlY3RBbGwoIi5oaXN0b2dyYW0iKS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKE50KXtyZXR1cm4idHJhbnNsYXRlKDAsICIrKGM9PT0ib2Zmc2V0Ij9VKF8oTnQpKS1TOjApKyIpIn0pLGZyPWVlLmFwcGVuZCgibGluZSIpLmF0dHIoImNsYXNzIiwiYmFzZWxpbmUiKSx0dD1hci5zZWxlY3QoIi5iYXNlbGluZSIpLnN0eWxlKCJzdHJva2Utb3BhY2l0eSIsZnVuY3Rpb24oTnQpe3JldHVybiBjPT09Im9mZnNldCI/LjE6MH0pLmF0dHIoInkxIixTKS5hdHRyKCJ5MiIsUykuYXR0cigieDIiLFApLCQ9ZWUuYXBwZW5kKCJwYXRoIikuYXR0cigiY2xhc3MiLCJvdXRsaW5lIiksSXQ9TGUuc2VsZWN0KCIub3V0bGluZSIpLmF0dHIoInZlY3Rvci1lZmZlY3QiLCJub24tc2NhbGluZy1zdHJva2UiKS5hdHRyKCJkIixmdW5jdGlvbihOdCl7cmV0dXJuIF90KE50W2ldKX0pLnN0eWxlKCJzdHJva2Utd2lkdGgiLDEpLCR0PWFyLnNlbGVjdCgiLm91dGxpbmUiKS5hdHRyKCJ0cmFuc2Zvcm0iLCJzY2FsZSgiK1AvRisiLCAiK1MvRisiKSIpLnN0eWxlKCJzdHJva2UiLGZ1bmN0aW9uKE50KXtyZXR1cm4gYz09PSJvZmZzZXQiPyIiOnN0KF8oTnQpKX0pLnN0eWxlKCJmaWxsLW9wYWNpdHkiLGZ1bmN0aW9uKE50KXtyZXR1cm4gYz09PSJvZmZzZXQiPzE6MH0pLnN0eWxlKCJmaWxsIixmdW5jdGlvbihOdCl7cmV0dXJuIHN0KF8oTnQpKX0pLGhlPWVlLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwiaG92ZXIiKSxUdD1MZS5zZWxlY3QoIi5ob3ZlciIpLnN0eWxlKCJmaWxsIixmdW5jdGlvbihOdCl7cmV0dXJuIHN0KF8oTnQpKX0pO2hlLmFwcGVuZCgiY2lyY2xlIikuYXR0cigiciIsMiksaGUuYXBwZW5kKCJ0ZXh0Iikuc3R5bGUoImRpc3BsYXkiLCJub25lIikuYXR0cigiZHgiLDQpO3ZhciBiZT1kdC5zZWxlY3QoIi54LWF4aXMtaG92ZXIiKS5zZWxlY3RBbGwoIi5sYWJlbCIpLmRhdGEoWyJ4Il0pLG50PWJlLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJsYWJlbCIpLEN0PWJlLm1lcmdlKG50KTtudC5hcHBlbmQoInJlY3QiKS5hdHRyKCJ4IiwtMjApLmF0dHIoInkiLDYpLmF0dHIoIndpZHRoIiw0MCkuYXR0cigiaGVpZ2h0IiwxNCksbnQuYXBwZW5kKCJsaW5lIikuYXR0cigieDEiLDApLmF0dHIoIngyIiwwKS5hdHRyKCJ5MSIsMCkuYXR0cigieTIiLDYpLG50LmFwcGVuZCgidGV4dCIpLmF0dHIoImR5IiwxOCk7dmFyIFd0PWR0LnNlbGVjdCgiLnktYXhpcy1ob3ZlciIpLnNlbGVjdEFsbCgiLmxhYmVsIikuZGF0YShbInkiXSksZmU9V3QuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsImxhYmVsIiksYXQ9V3QubWVyZ2UoZmUpO2ZlLmFwcGVuZCgicmVjdCIpLmF0dHIoIngiLDgpLmF0dHIoInkiLC02KS5hdHRyKCJ3aWR0aCIsNDApLmF0dHIoImhlaWdodCIsMTQpLGZlLmFwcGVuZCgibGluZSIpLmF0dHIoIngxIiwwKS5hdHRyKCJ4MiIsNikuYXR0cigieTEiLDApLmF0dHIoInkyIiwwKSxmZS5hcHBlbmQoInRleHQiKS5hdHRyKCJkeCIsOCkuYXR0cigiZHkiLDQpO3ZhciBzZT1kdC5zZWxlY3QoIi55LXNsaWNlLWF4aXMtaG92ZXIiKS5zZWxlY3RBbGwoIi5sYWJlbCIpLmRhdGEoWyJ5Il0pLFF0PXNlLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJsYWJlbCIpLENlPXNlLm1lcmdlKFF0KTtRdC5hcHBlbmQoInJlY3QiKS5hdHRyKCJ4Iiw4KS5hdHRyKCJ5IiwtNikuYXR0cigid2lkdGgiLDQwKS5hdHRyKCJoZWlnaHQiLDE0KSxRdC5hcHBlbmQoImxpbmUiKS5hdHRyKCJ4MSIsMCkuYXR0cigieDIiLDYpLmF0dHIoInkxIiwwKS5hdHRyKCJ5MiIsMCksUXQuYXBwZW5kKCJ0ZXh0IikuYXR0cigiZHgiLDgpLmF0dHIoImR5Iiw0KSxxLnNlbGVjdCgiLnkuYXhpcy5zbGljZSIpLnN0eWxlKCJvcGFjaXR5IixjPT09Im9mZnNldCI/MDoxKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoMCwgIisoYz09PSJvZmZzZXQiPy1TOjApKyIpIikuY2FsbChNdCkscS5zZWxlY3QoIi54LmF4aXMiKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoMCwgIitrKyIpIikuY2FsbChTdCkscS5zZWxlY3QoIi55LmF4aXMiKS5zdHlsZSgib3BhY2l0eSIsYz09PSJvZmZzZXQiPzE6MCkuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrUCsiLCAiKyhjPT09Im9mZnNldCI/MDprKSsiKSIpLmNhbGwoYnQpLHEuc2VsZWN0QWxsKCIudGljayB0ZXh0IikuYXR0cigiZmlsbCIsIiNhYWEiKSxxLnNlbGVjdEFsbCgiLmF4aXMgcGF0aC5kb21haW4iKS5hdHRyKCJzdHJva2UiLCJub25lIik7ZnVuY3Rpb24gUHQoKXt2YXIgTnQ9a3IubW91c2UodGhpcyksemU9cnQuaW52ZXJ0KE50WzBdKSx5bj1VLmludmVydChOdFsxXSk7ZnVuY3Rpb24gV2koY24pe3JldHVybiBNYXRoLm1pbihjbltpXS5sZW5ndGgtMSxwdChjbltpXSx6ZSkpfXZhciBBcixJYT0xLzAsaG87VHQuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbihjbix1eCl7dmFyIG5wPVdpKGNuKTtobz1jbjt2YXIgSz1ydChjbltpXVtucF1bbl0rY25baV1bbnBdW29dLzIpLGd0PVcoY25baV1bbnBdW2FdKSxFdD1jPT09Im9mZnNldCI/VShfKGNuKSktKFMtZ3QpOmd0LHh0PU1hdGguYWJzKE50WzFdLUV0KTtyZXR1cm4geHQ8SWEmJihJYT14dCxBcj1jbiksInRyYW5zbGF0ZSgiK0srIiwiK2d0KyIpIn0pLFR0LnNlbGVjdCgidGV4dCIpLnRleHQoZnVuY3Rpb24oY24pe3ZhciB1eD1XaShjbik7cmV0dXJuIGNuW2ldW3V4XVthXX0pLFR0LmNsYXNzZWQoImhvdmVyLWNsb3Nlc3QiLGZ1bmN0aW9uKGNuKXtyZXR1cm4gY249PT1Bcn0pLEl0LmNsYXNzZWQoIm91dGxpbmUtaG92ZXIiLGZ1bmN0aW9uKGNuKXtyZXR1cm4gY249PT1Bcn0pO3ZhciBMYT1XaShobyk7Q3QuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbihjbil7cmV0dXJuInRyYW5zbGF0ZSgiK3J0KGhvW2ldW0xhXVtuXStob1tpXVtMYV1bb10vMikrIiwgIitrKyIpIn0pLnNlbGVjdCgidGV4dCIpLnRleHQoZnVuY3Rpb24oY24pe3JldHVybiBCKGhvW2ldW0xhXVtuXStob1tpXVtMYV1bb10vMil9KTt2YXIgY3g9YnQudGlja0Zvcm1hdCgpO2F0LmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24oY24pe3JldHVybiJ0cmFuc2xhdGUoIitQKyIsICIrKGM9PT0ib2Zmc2V0Ij9VKF8oQXIpKTowKSsiKSJ9KS5zdHlsZSgiZGlzcGxheSIsYz09PSJvZmZzZXQiPyIiOiJub25lIikuc2VsZWN0KCJ0ZXh0IikudGV4dChmdW5jdGlvbihjbil7cmV0dXJuIGN4KF8oQXIpKX0pO3ZhciB1bT1NdC50aWNrRm9ybWF0KCk7Q2UuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbihjbil7cmV0dXJuInRyYW5zbGF0ZSgiK1ArIiwgIisoYz09PSJvZmZzZXQiPzA6VyhBcltpXVtMYV1bYV0pKSsiKSJ9KS5zdHlsZSgiZGlzcGxheSIsYz09PSJvZmZzZXQiPyJub25lIjoiIikuc2VsZWN0KCJ0ZXh0IikudGV4dChmdW5jdGlvbihjbil7cmV0dXJuIHVtKEFyW2ldW0xhXVthXSl9KTt2YXIgUTA9a3IubW91c2UoY3QpO2guc3R5bGUoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiKyhRMFswXSsxNSkrInB4LCIrKFEwWzFdLTE1KSsicHgpIikuc2VsZWN0KCJzcGFuIikudGV4dChjPT09Im9mZnNldCI/dW0oQXJbaV1bTGFdW2FdKToocj09PSJzdGVwIj8ic3RlcCAiOiIiKStjeChfKEFyKSkpfX19O0VhLnRlbXBsYXRlPVFgCiAgICA8ZGl2IGlkPSJ0b29sdGlwIj48c3Bhbj48L3NwYW4+PC9kaXY+CiAgICA8c3ZnIGlkPSJzdmciPgogICAgICA8Zz4KICAgICAgICA8ZyBjbGFzcz0iYXhpcyB4Ij48L2c+CiAgICAgICAgPGcgY2xhc3M9ImF4aXMgeSI+PC9nPgogICAgICAgIDxnIGNsYXNzPSJheGlzIHkgc2xpY2UiPjwvZz4KICAgICAgICA8ZyBjbGFzcz0ic3RhZ2UiPgogICAgICAgICAgPHJlY3QgY2xhc3M9ImJhY2tncm91bmQiPjwvcmVjdD4KICAgICAgICA8L2c+CiAgICAgICAgPGcgY2xhc3M9IngtYXhpcy1ob3ZlciI+PC9nPgogICAgICAgIDxnIGNsYXNzPSJ5LWF4aXMtaG92ZXIiPjwvZz4KICAgICAgICA8ZyBjbGFzcz0ieS1zbGljZS1heGlzLWhvdmVyIj48L2c+CiAgICAgIDwvZz4KICAgIDwvc3ZnPgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAjYWFhOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIC0tdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMtaG92ZXItYmctY29sb3I6ICNmZmY7CiAgICAgICAgLS12ei1oaXN0b2dyYW0tdGltZXNlcmllcy1vdXRsaW5lLWNvbG9yOiAjZmZmOwogICAgICAgIC0tdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMtaG92ZXItb3V0bGluZS1jb2xvcjogIzAwMDsKICAgICAgfQoKICAgICAgOmhvc3QoLmRhcmstbW9kZSkgewogICAgICAgIC0tdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMtaG92ZXItYmctY29sb3I6IHZhcigKICAgICAgICAgIC0tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yCiAgICAgICAgKTsKICAgICAgICAtLXZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzLW91dGxpbmUtY29sb3I6IHZhcigtLXBhcGVyLWdyZXktNjAwKTsKICAgICAgICAtLXZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzLWhvdmVyLW91dGxpbmUtY29sb3I6ICNmZmY7CiAgICAgIH0KCiAgICAgIHN2ZyB7CiAgICAgICAgZm9udC1mYW1pbHk6IHJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgIH0KCiAgICAgIHRleHQgewogICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgI3Rvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLmJhY2tncm91bmQgewogICAgICAgIGZpbGwtb3BhY2l0eTogMDsKICAgICAgICBmaWxsOiByZWQ7CiAgICAgIH0KCiAgICAgIC5oaXN0b2dyYW0gewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuaG92ZXIgewogICAgICAgIGZvbnQtc2l6ZTogOXB4OwogICAgICAgIGRvbWluYW50LWJhc2VsaW5lOiBtaWRkbGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLmhvdmVyIGNpcmNsZSB7CiAgICAgICAgc3Ryb2tlOiB3aGl0ZTsKICAgICAgICBzdHJva2Utb3BhY2l0eTogMC41OwogICAgICAgIHN0cm9rZS13aWR0aDogMXB4OwogICAgICB9CgogICAgICAuaG92ZXIgdGV4dCB7CiAgICAgICAgZmlsbDogYmxhY2s7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLmhvdmVyLmhvdmVyLWNsb3Nlc3QgY2lyY2xlIHsKICAgICAgICBmaWxsOiB2YXIoLS12ei1oaXN0b2dyYW0tdGltZXNlcmllcy1ob3Zlci1vdXRsaW5lLWNvbG9yKSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaG92ZXIuaG92ZXItY2xvc2VzdCB0ZXh0IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuYmFzZWxpbmUgewogICAgICAgIHN0cm9rZTogYmxhY2s7CiAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDAuMTsKICAgICAgfQoKICAgICAgLm91dGxpbmUgewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlOiB2YXIoLS12ei1oaXN0b2dyYW0tdGltZXNlcmllcy1vdXRsaW5lLWNvbG9yKTsKICAgICAgICBzdHJva2Utb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAub3V0bGluZS5vdXRsaW5lLWhvdmVyIHsKICAgICAgICBzdHJva2U6IHZhcigtLXZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzLWhvdmVyLW91dGxpbmUtY29sb3IpICFpbXBvcnRhbnQ7CiAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC54LWF4aXMtaG92ZXIsCiAgICAgIC55LWF4aXMtaG92ZXIsCiAgICAgIC55LXNsaWNlLWF4aXMtaG92ZXIgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAueC1heGlzLWhvdmVyIC5sYWJlbCwKICAgICAgLnktYXhpcy1ob3ZlciAubGFiZWwsCiAgICAgIC55LXNsaWNlLWF4aXMtaG92ZXIgLmxhYmVsIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB0ZXh0LWFuY2hvcjogZW5kOwogICAgICB9CgogICAgICAueC1heGlzLWhvdmVyIHRleHQgewogICAgICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgIC55LWF4aXMtaG92ZXIgdGV4dCwKICAgICAgLnktc2xpY2UtYXhpcy1ob3ZlciB0ZXh0IHsKICAgICAgICB0ZXh0LWFuY2hvcjogc3RhcnQ7CiAgICAgIH0KCiAgICAgIC54LWF4aXMtaG92ZXIgbGluZSwKICAgICAgLnktYXhpcy1ob3ZlciBsaW5lLAogICAgICAueS1zbGljZS1heGlzLWhvdmVyIGxpbmUgewogICAgICAgIHN0cm9rZTogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAueC1heGlzLWhvdmVyIHJlY3QsCiAgICAgIC55LWF4aXMtaG92ZXIgcmVjdCwKICAgICAgLnktc2xpY2UtYXhpcy1ob3ZlciByZWN0IHsKICAgICAgICBmaWxsOiB2YXIoLS12ei1oaXN0b2dyYW0tdGltZXNlcmllcy1ob3Zlci1iZy1jb2xvcik7CiAgICAgIH0KCiAgICAgICN0b29sdGlwLAogICAgICAueC1heGlzLWhvdmVyIHRleHQsCiAgICAgIC55LWF4aXMtaG92ZXIgdGV4dCwKICAgICAgLnktc2xpY2UtYXhpcy1ob3ZlciB0ZXh0IHsKICAgICAgICBjb2xvcjogdmFyKC0tdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMtaG92ZXItb3V0bGluZS1jb2xvcik7CiAgICAgIH0KCiAgICAgIC5heGlzIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIH0KCiAgICAgIC5heGlzIHBhdGguZG9tYWluIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICB9CgogICAgICAuYXhpcyAudGljayBsaW5lIHsKICAgICAgICBzdHJva2U6ICNkZGQ7CiAgICAgIH0KCiAgICAgIC5heGlzLnNsaWNlIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgICAuYXhpcy5zbGljZSAudGljayBsaW5lIHsKICAgICAgICBzdHJva2UtZGFzaGFycmF5OiAyOwogICAgICB9CgogICAgICAuc21hbGwgLmF4aXMgdGV4dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgICAuc21hbGwgLmF4aXMgLnRpY2s6Zmlyc3Qtb2YtdHlwZSB0ZXh0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAuc21hbGwgLmF4aXMgLnRpY2s6bGFzdC1vZi10eXBlIHRleHQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5tZWRpdW0gLmF4aXMgdGV4dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgICAubWVkaXVtIC5heGlzIC50aWNrOm50aC1jaGlsZCgybiArIDEpIHRleHQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5sYXJnZSAuYXhpcyB0ZXh0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICAgIC5sYXJnZSAuYXhpcyAudGljazpudGgtY2hpbGQoMm4gKyAxKSB0ZXh0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLEVhLnByb3RvdHlwZSwibW9kZSIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxFYS5wcm90b3R5cGUsInRpbWVQcm9wZXJ0eSIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxFYS5wcm90b3R5cGUsImJpbnMiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sRWEucHJvdG90eXBlLCJ4Iix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLEVhLnByb3RvdHlwZSwiZHgiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sRWEucHJvdG90eXBlLCJ5Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLEVhLnByb3RvdHlwZSwiY29sb3JTY2FsZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxFYS5wcm90b3R5cGUsIm1vZGVUcmFuc2l0aW9uRHVyYXRpb24iLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxFYS5wcm90b3R5cGUsIl9hdHRhY2hlZCIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxFYS5wcm90b3R5cGUsIl9uYW1lIix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sRWEucHJvdG90eXBlLCJfZGF0YSIsdm9pZCAwKTtFKFtCdCgidGltZVByb3BlcnR5IiwiY29sb3JTY2FsZSIsIl9hdHRhY2hlZCIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sRWEucHJvdG90eXBlLCJfcmVkcmF3T25DaGFuZ2UiLG51bGwpO0UoW0J0KCJtb2RlIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxFYS5wcm90b3R5cGUsIl9tb2RlUmVkcmF3IixudWxsKTtFYT1FKFt5dCgidnotaGlzdG9ncmFtLXRpbWVzZXJpZXMiKV0sRWEpO2Z1bmN0aW9uIHl1cihlKXtsZXRbdCxyLG5dPWU7cmV0dXJue3dhbGxfdGltZTp0LHN0ZXA6cixtaW46a20obi5tYXAoKFtpLCxdKT0+aSkpLG1heDpsdShuLm1hcCgoWyxpXSk9PmkpKSxidWNrZXRzOm4ubWFwKChbaSxvLGFdKT0+KHtsZWZ0OmkscmlnaHQ6byxjb3VudDphfSkpfX1mdW5jdGlvbiB2dXIoZSx0LHIsbj0zMCl7KHQ9PT12b2lkIDB8fHI9PW51bGwpJiYodD0wLHI9MCkscj09PXQmJihyPXQqMS4xKzEsdD10LzEuMS0xKTtsZXQgaT0oci10KS9uLG89MCxhPVtdO2ZvcihsZXQgcz0wO3M8bjtzKyspe2xldCBsPXQrcyppLGM9bCtpLHU9MDtmb3IoO288ZS5idWNrZXRzLmxlbmd0aDspe2xldCBoPU1hdGgubWluKHIsZS5idWNrZXRzW29dLnJpZ2h0KSxmPU1hdGgubWF4KHQsZS5idWNrZXRzW29dLmxlZnQpO2lmKGgtZj4wKXtsZXQgZD1NYXRoLm1pbihoLGMpLU1hdGgubWF4KGYsbCksZz1kLyhoLWYpKmUuYnVja2V0c1tvXS5jb3VudDt1Kz1kPjA/ZzowfWVsc2V7bGV0IGQ9Yz49cjt1Kz1sPD1mJiYoZD9oPD1jOmg8Yyk/ZS5idWNrZXRzW29dLmNvdW50OjB9aWYoaD5jKWJyZWFrO28rK31hLnB1c2goe3g6bCxkeDppLHk6dX0pfXJldHVybiBhfWZ1bmN0aW9uIHNjZShlKXtsZXQgdD1lLm1hcCh5dXIpLHI9a20odCxpPT5pLm1pbiksbj1sdSh0LGk9PmkubWF4KTtyZXR1cm4gdC5tYXAoaT0+KHt3YWxsX3RpbWU6aS53YWxsX3RpbWUsc3RlcDppLnN0ZXAsYmluczp2dXIoaSxyLG4pfSkpfXZhciBUYT1jbGFzcyBleHRlbmRzIGtTKEd0KG10KSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuZ2V0RGF0YUxvYWROYW1lPSh7cnVuOnR9KT0+dCx0aGlzLnJlcXVlc3REYXRhPSh0LHIsbik9PntsZXQgbz1fZSgpLnBsdWdpblJvdXRlKCJoaXN0b2dyYW1zIiwiL2hpc3RvZ3JhbXMiKTtQcm9taXNlLmFsbCh0Lm1hcChhPT57bGV0IHM9TWkobyx7dGFnOmEudGFnLHJ1bjphLnJ1bn0pO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QocykudGhlbihsPT52b2lkIHIoe2l0ZW06YSxkYXRhOmx9KSl9KSkuZmluYWxseSgoKT0+dm9pZCBuKCkpfSx0aGlzLmxvYWREYXRhQ2FsbGJhY2s9KHQscixuKT0+e2xldCBpPXNjZShuKSxvPXRoaXMuZ2V0RGF0YUxvYWROYW1lKHIpO3RoaXMuJC5jaGFydC5zZXRTZXJpZXNEYXRhKG8saSl9LHRoaXMuX2NvbG9yU2NhbGVGdW5jdGlvbj1mbix0aGlzLl9leHBhbmRlZD0hMX1fcmVsb2FkT25SdW5UYWdSZXF1ZXN0TWFuYWdlckNoYW5nZSgpe3RoaXMucmVsb2FkKCl9X3VwZGF0ZURhdGFUb0xvYWQoKXt2YXIgdD10aGlzLnJ1bixyPXRoaXMudGFnO3RoaXMuZGF0YVRvTG9hZD1be3J1bjp0LHRhZzpyfV19Z2V0IF9ydW5Db2xvcigpe3ZhciB0PXRoaXMucnVuO3JldHVybiB0aGlzLl9jb2xvclNjYWxlRnVuY3Rpb24odCl9cmVkcmF3KCl7dGhpcy4kLmNoYXJ0LnJlZHJhdygpfV90b2dnbGVFeHBhbmRlZCh0KXt0aGlzLnNldCgiX2V4cGFuZGVkIiwhdGhpcy5fZXhwYW5kZWQpLHRoaXMucmVkcmF3KCl9fTtUYS50ZW1wbGF0ZT1RYAogICAgPHRmLWNhcmQtaGVhZGluZwogICAgICB0YWc9IltbdGFnXV0iCiAgICAgIHJ1bj0iW1tydW5dXSIKICAgICAgZGlzcGxheS1uYW1lPSJbW3RhZ01ldGFkYXRhLmRpc3BsYXlOYW1lXV0iCiAgICAgIGRlc2NyaXB0aW9uPSJbW3RhZ01ldGFkYXRhLmRlc2NyaXB0aW9uXV0iCiAgICAgIGNvbG9yPSJbW19ydW5Db2xvcl1dIgogICAgPjwvdGYtY2FyZC1oZWFkaW5nPgogICAgPCEtLQogICAgICBUaGUgbWFpbiBoaXN0b2dyYW0gdGhhdCB3ZSByZW5kZXIuIERhdGEgaXMgc2V0IGRpcmVjdGx5IHdpdGgKICAgICAgXGBzZXRTZXJpZXNEYXRhXGAsIG5vdCB3aXRoIGEgYm91bmQgcHJvcGVydHkuCiAgICAtLT4KICAgIDx2ei1oaXN0b2dyYW0tdGltZXNlcmllcwogICAgICBpZD0iY2hhcnQiCiAgICAgIHRpbWUtcHJvcGVydHk9IltbdGltZVByb3BlcnR5XV0iCiAgICAgIG1vZGU9IltbaGlzdG9ncmFtTW9kZV1dIgogICAgICBjb2xvci1zY2FsZT0iW1tfY29sb3JTY2FsZUZ1bmN0aW9uXV0iCiAgICA+PC92ei1oaXN0b2dyYW0tdGltZXNlcmllcz4KICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiByb3c7Ij4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgc2VsZWN0ZWQkPSJbW19leHBhbmRlZF1dIgogICAgICAgIGljb249ImZ1bGxzY3JlZW4iCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlRXhwYW5kZWQiCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgd2lkdGg6IDMzMHB4OwogICAgICAgIGhlaWdodDogMjM1cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgIH0KICAgICAgOmhvc3QoW19leHBhbmRlZF0pIHsKICAgICAgICB3aWR0aDogNzAwcHg7CiAgICAgICAgaGVpZ2h0OiA1MDBweDsKICAgICAgfQoKICAgICAgdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMgewogICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICB9CgogICAgICBwYXBlci1pY29uLWJ1dHRvbiB7CiAgICAgICAgY29sb3I6ICMyMTk2ZjM7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICBwYXBlci1pY29uLWJ1dHRvbltzZWxlY3RlZF0gewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRiLXVpLWxpZ2h0LWFjY2VudCk7CiAgICAgIH0KCiAgICAgIHRmLWNhcmQtaGVhZGluZyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB3aWR0aDogOTAlOwogICAgICB9CiAgICA8L3N0eWxlPgogIGA7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sVGEucHJvdG90eXBlLCJydW4iLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sVGEucHJvdG90eXBlLCJ0YWciLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sVGEucHJvdG90eXBlLCJnZXREYXRhTG9hZE5hbWUiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsQWUpXSxUYS5wcm90b3R5cGUsInJlcXVlc3RNYW5hZ2VyIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFRhLnByb3RvdHlwZSwibG9hZERhdGFDYWxsYmFjayIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxUYS5wcm90b3R5cGUsInRhZ01ldGFkYXRhIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLFRhLnByb3RvdHlwZSwidGltZVByb3BlcnR5Iix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLFRhLnByb3RvdHlwZSwiaGlzdG9ncmFtTW9kZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLFRhLnByb3RvdHlwZSwiX2NvbG9yU2NhbGVGdW5jdGlvbiIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW4scmVmbGVjdFRvQXR0cmlidXRlOiEwfSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxUYS5wcm90b3R5cGUsIl9leHBhbmRlZCIsdm9pZCAwKTtFKFtCdCgicnVuIiwidGFnIiwicmVxdWVzdE1hbmFnZXIiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFRhLnByb3RvdHlwZSwiX3JlbG9hZE9uUnVuVGFnUmVxdWVzdE1hbmFnZXJDaGFuZ2UiLG51bGwpO0UoW0J0KCJydW4iLCJ0YWciKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFRhLnByb3RvdHlwZSwiX3VwZGF0ZURhdGFUb0xvYWQiLG51bGwpO0UoW1J0KCJydW4iKSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxUYS5wcm90b3R5cGUsIl9ydW5Db2xvciIsbnVsbCk7VGE9RShbeXQoInRmLWhpc3RvZ3JhbS1sb2FkZXIiKV0sVGEpO3ZhciBjcz1jbGFzcyBleHRlbmRzIEd0KG10KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZWxvYWRPblJlYWR5PSEwLHRoaXMuX2hpc3RvZ3JhbU1vZGU9Im9mZnNldCIsdGhpcy5fdGltZVByb3BlcnR5PSJzdGVwIix0aGlzLl9yZXN0YW1wPSExLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBBZX1fcmVkcmF3Q2F0ZWdvcnlQYW5lKHQscil7IXJ8fHQudGFyZ2V0LnF1ZXJ5U2VsZWN0b3JBbGwoInRmLWhpc3RvZ3JhbS1sb2FkZXIiKS5mb3JFYWNoKG49Pm4ucmVkcmF3KCkpfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9cmVsb2FkKCl7dGhpcy5fZmV0Y2hUYWdzKCkudGhlbigoKT0+e3RoaXMuX3JlbG9hZEhpc3RvZ3JhbXMoKX0pfV9mZXRjaFRhZ3MoKXtsZXQgdD1fZSgpLnBsdWdpblJvdXRlKCJoaXN0b2dyYW1zIiwiL3RhZ3MiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKHI9PntpZihOSC5pc0VxdWFsKHIsdGhpcy5fcnVuVG9UYWdJbmZvKSlyZXR1cm47bGV0IG49TkgubWFwVmFsdWVzKHIsbz0+T2JqZWN0LmtleXMobykpLGk9JGkobik7dGhpcy5zZXQoIl9kYXRhTm90Rm91bmQiLGkubGVuZ3RoPT09MCksdGhpcy5zZXQoIl9ydW5Ub1RhZyIsbiksdGhpcy5zZXQoIl9ydW5Ub1RhZ0luZm8iLHIpLHRoaXMuYXN5bmMoKCk9Pnt0aGlzLnNldCgiX2NhdGVnb3JpZXNEb21SZWFkeSIsITApfSl9KX1fcmVsb2FkSGlzdG9ncmFtcygpe3ZhciB0Oyh0PXRoaXMucm9vdCk9PW51bGx8fHQucXVlcnlTZWxlY3RvckFsbCgidGYtaGlzdG9ncmFtLWxvYWRlciIpLmZvckVhY2gocj0+e3IucmVsb2FkKCl9KX1fc2hvdWxkT3Blbih0KXtyZXR1cm4gdDw9Mn1nZXQgX2NhdGVnb3JpZXMoKXt2YXIgdD10aGlzLl9ydW5Ub1RhZyxyPXRoaXMuX3NlbGVjdGVkUnVucyxuPXRoaXMuX3RhZ0ZpbHRlcixpPXRoaXMuX2NhdGVnb3JpZXNEb21SZWFkeTtyZXR1cm4gUWwodCxyLG4pfV90YWdNZXRhZGF0YSh0LHIsbil7cmV0dXJuIHRbcl1bbl19fTtjcy50ZW1wbGF0ZT1RYAogICAgPHRmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICAgIDxkaXYgc2xvdD0ic2lkZWJhciI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIj4KICAgICAgICAgICAgPHRmLW9wdGlvbi1zZWxlY3RvcgogICAgICAgICAgICAgIGlkPSJoaXN0b2dyYW1Nb2RlU2VsZWN0b3IiCiAgICAgICAgICAgICAgbmFtZT0iSGlzdG9ncmFtIG1vZGUiCiAgICAgICAgICAgICAgc2VsZWN0ZWQtaWQ9Int7X2hpc3RvZ3JhbU1vZGV9fSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9Im92ZXJsYXkiPm92ZXJsYXk8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIGlkPSJvZmZzZXQiPm9mZnNldDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICA8L3RmLW9wdGlvbi1zZWxlY3Rvcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIj4KICAgICAgICAgICAgPHRmLW9wdGlvbi1zZWxlY3RvcgogICAgICAgICAgICAgIGlkPSJ0aW1lUHJvcGVydHlTZWxlY3RvciIKICAgICAgICAgICAgICBuYW1lPSJPZmZzZXQgdGltZSBheGlzIgogICAgICAgICAgICAgIHNlbGVjdGVkLWlkPSJ7e190aW1lUHJvcGVydHl9fSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9InN0ZXAiPnN0ZXA8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIGlkPSJyZWxhdGl2ZSI+cmVsYXRpdmU8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIGlkPSJ3YWxsX3RpbWUiPndhbGw8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgPC90Zi1vcHRpb24tc2VsZWN0b3I+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24gcnVucy1zZWxlY3RvciI+CiAgICAgICAgICA8dGYtcnVucy1zZWxlY3RvciBzZWxlY3RlZC1ydW5zPSJ7e19zZWxlY3RlZFJ1bnN9fSI+CiAgICAgICAgICA8L3RmLXJ1bnMtc2VsZWN0b3I+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IHNsb3Q9ImNlbnRlciI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuby1kYXRhLXdhcm5pbmciPgogICAgICAgICAgICA8aDM+Tm8gaGlzdG9ncmFtIGRhdGEgd2FzIGZvdW5kLjwvaDM+CiAgICAgICAgICAgIDxwPlByb2JhYmxlIGNhdXNlczo8L3A+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICBZb3UgaGF2ZW7igJl0IHdyaXR0ZW4gYW55IGhpc3RvZ3JhbSBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuCiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGk+VGVuc29yQm9hcmQgY2Fu4oCZdCBmaW5kIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3UgdGhpbmsgVGVuc29yQm9hcmQgaXMgY29uZmlndXJlZCBwcm9wZXJseSwgcGxlYXNlIHNlZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIgogICAgICAgICAgICAgICAgPnRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXM8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPHRmLXRhZy1maWx0ZXJlciB0YWctZmlsdGVyPSJ7e190YWdGaWx0ZXJ9fSI+PC90Zi10YWctZmlsdGVyZXI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19jYXRlZ29yaWVzXV0iIGFzPSJjYXRlZ29yeSI+CiAgICAgICAgICAgIDx0Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldwogICAgICAgICAgICAgIGNhdGVnb3J5PSJbW2NhdGVnb3J5XV0iCiAgICAgICAgICAgICAgaW5pdGlhbC1vcGVuZWQ9IltbX3Nob3VsZE9wZW4oaW5kZXgpXV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGYtaGlzdG9ncmFtLWxvYWRlcgogICAgICAgICAgICAgICAgICBydW49IltbaXRlbS5ydW5dXSIKICAgICAgICAgICAgICAgICAgdGFnPSJbW2l0ZW0udGFnXV0iCiAgICAgICAgICAgICAgICAgIGFjdGl2ZT0iW1thY3RpdmVdXSIKICAgICAgICAgICAgICAgICAgdGFnLW1ldGFkYXRhPSJbW190YWdNZXRhZGF0YShfcnVuVG9UYWdJbmZvLCBpdGVtLnJ1biwgaXRlbS50YWcpXV0iCiAgICAgICAgICAgICAgICAgIHRpbWUtcHJvcGVydHk9IltbX3RpbWVQcm9wZXJ0eV1dIgogICAgICAgICAgICAgICAgICBoaXN0b2dyYW0tbW9kZT0iW1tfaGlzdG9ncmFtTW9kZV1dIgogICAgICAgICAgICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbX3JlcXVlc3RNYW5hZ2VyXV0iCiAgICAgICAgICAgICAgICA+PC90Zi1oaXN0b2dyYW0tbG9hZGVyPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvdGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXc+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC90Zi1kYXNoYm9hcmQtbGF5b3V0PgoKICAgIDxzdHlsZSBpbmNsdWRlPSJkYXNoYm9hcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CiAgICA8L3N0eWxlPgogIGA7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxjcy5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sY3MucHJvdG90eXBlLCJfaGlzdG9ncmFtTW9kZSIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxjcy5wcm90b3R5cGUsIl90aW1lUHJvcGVydHkiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLGNzLnByb3RvdHlwZSwiX3NlbGVjdGVkUnVucyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxjcy5wcm90b3R5cGUsIl9ydW5Ub1RhZyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxjcy5wcm90b3R5cGUsIl9ydW5Ub1RhZ0luZm8iLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxjcy5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sY3MucHJvdG90eXBlLCJfdGFnRmlsdGVyIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sY3MucHJvdG90eXBlLCJfcmVzdGFtcCIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGNzLnByb3RvdHlwZSwiX2NhdGVnb3JpZXNEb21SZWFkeSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixBZSldLGNzLnByb3RvdHlwZSwiX3JlcXVlc3RNYW5hZ2VyIix2b2lkIDApO0UoW1J0KCJfcnVuVG9UYWciLCJfc2VsZWN0ZWRSdW5zIiwiX3RhZ0ZpbHRlciIsIl9jYXRlZ29yaWVzRG9tUmVhZHkiKSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGNzLnByb3RvdHlwZSwiX2NhdGVnb3JpZXMiLG51bGwpO2NzPUUoW3l0KCJ0Zi1oaXN0b2dyYW0tZGFzaGJvYXJkIildLGNzKTt2YXIgdTM9Y2xhc3N7Y29uc3RydWN0b3IodCxyPSEwKXt0aGlzLl9yZXF1ZXN0TWFuYWdlcj10LHRoaXMuX3VzZUh0dHBHZXQ9cn1nZXRFeHBlcmltZW50KHQpe3JldHVybiB0aGlzLl9zZW5kUmVxdWVzdCgiL2V4cGVyaW1lbnQiLHQpfWdldERvd25sb2FkVXJsKHQscixuKXtyZXR1cm4gX2UoKS5wbHVnaW5Sb3V0ZUZvclNyYygiaHBhcmFtcyIsIi9kb3dubG9hZF9kYXRhIixuZXcgVVJMU2VhcmNoUGFyYW1zKHtmb3JtYXQ6dCxjb2x1bW5zVmlzaWJpbGl0eTpKU09OLnN0cmluZ2lmeShuKSxyZXF1ZXN0OkpTT04uc3RyaW5naWZ5KHIpfSkpfWxpc3RTZXNzaW9uR3JvdXBzKHQpe3JldHVybiB0aGlzLl9zZW5kUmVxdWVzdCgiL3Nlc3Npb25fZ3JvdXBzIix0KX1saXN0TWV0cmljRXZhbHModCl7cmV0dXJuIHRoaXMuX3NlbmRSZXF1ZXN0KCIvbWV0cmljX2V2YWxzIix0KX1fc2VuZFJlcXVlc3QodCxyKXtpZih0aGlzLl91c2VIdHRwR2V0KXtsZXQgbz1fZSgpLnBsdWdpblJvdXRlKCJocGFyYW1zIix0LG5ldyBVUkxTZWFyY2hQYXJhbXMoe3JlcXVlc3Q6SlNPTi5zdHJpbmdpZnkocil9KSk7cmV0dXJuIHRoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3Qobyl9bGV0IG49bmV3IFV4O24ud2l0aENyZWRlbnRpYWxzPSEwLG4ubWV0aG9kVHlwZT1QbS5QT1NULG4uY29udGVudFR5cGU9InRleHQvcGxhaW4iLG4uYm9keT1KU09OLnN0cmluZ2lmeShyKTtsZXQgaT1fZSgpLnBsdWdpblJvdXRlKCJocGFyYW1zIix0KTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdFdpdGhPcHRpb25zKGksbil9fTt2YXIgX2NlPUVlKE9lKCksMSk7dmFyIERIPWNsYXNzIGV4dGVuZHMgbXR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMub3JpZW50YXRpb249Imhvcml6b250YWwifX07REgudGVtcGxhdGU9UWAKICAgIDxzbG90IG5hbWU9ImNvbnRlbnQiPjwvc2xvdD4KCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgOmhvc3Qgc2xvdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIDpob3N0IDo6c2xvdHRlZCgqKSB7CiAgICAgICAgZmxleDogMCAwIGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KFtvcmllbnRhdGlvbj0naG9yaXpvbnRhbCddKSBzbG90IHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkgc2xvdCB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CgogICAgICA6aG9zdCA6OnNsb3R0ZWQoKjpub3QoOmxhc3QtY2hpbGQpKSB7CiAgICAgICAgYm9yZGVyOiAwIHNvbGlkIHZhcigtLWRpdmlkZXItY29sb3IsICNjY2MpOwogICAgICB9CgogICAgICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ10pIDo6c2xvdHRlZCgqOm5vdCg6bGFzdC1jaGlsZCkpIHsKICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiA1cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtvcmllbnRhdGlvbj0naG9yaXpvbnRhbCddKSA6OnNsb3R0ZWQoKjpub3QoOmxhc3QtY2hpbGQpKSB7CiAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiA1cHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYDtFKFtBKHt0eXBlOlN0cmluZyxyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sREgucHJvdG90eXBlLCJvcmllbnRhdGlvbiIsdm9pZCAwKTtESD1FKFt5dCgiaHBhcmFtcy1zcGxpdC1sYXlvdXQiKV0sREgpO3ZhciB1cz17fTtacyh1cyx7Y29sdW1uVmFsdWVCeUluZGV4OigpPT5iMCxjb2x1bW5WYWx1ZUJ5VmlzaWJsZUluZGV4OigpPT5CSCxldWNsaWRlYW5EaXN0OigpPT5oMyxmaWx0ZXJTZXQ6KCk9PlB1cixnZXRBYnNvbHV0ZUNvbHVtbkluZGV4OigpPT56SCxoYXNoT2ZTdHJpbmc6KCk9PmRjdCxocGFyYW1OYW1lOigpPT5CZCxocGFyYW1WYWx1ZUJ5SW5kZXg6KCk9PmhjZSxocGFyYW1WYWx1ZUJ5TmFtZTooKT0+dWNlLGhwYXJhbVZhbHVlQnlWaXNpYmxlSW5kZXg6KCk9Pm1jZSxpc051bGxPclVuZGVmaW5lZDooKT0+VHVyLGwyTm9ybVNxdWFyZWQ6KCk9PnAzLG1ldHJpY05hbWU6KCk9PlF1LG1ldHJpY1ZhbHVlQnlJbmRleDooKT0+ZmNlLG1ldHJpY1ZhbHVlQnlOYW1lOigpPT5mMyxtZXRyaWNWYWx1ZUJ5VmlzaWJsZUluZGV4OigpPT5GSCxudW1Db2x1bW5zOigpPT51Y3QsbnVtSFBhcmFtczooKT0+bGNlLG51bU1ldHJpY3M6KCk9PmNjZSxudW1WaXNpYmxlQ29sdW1uczooKT0+d3VyLG51bVZpc2libGVIUGFyYW1zOigpPT5wY2UsbnVtVmlzaWJsZU1ldHJpY3M6KCk9PmRjZSxudW1lcmljQ29sdW1uRXh0ZW50OigpPT5oY3QscG9pbnRUb1JlY3RhbmdsZURpc3Q6KCk9PmdjZSxwcmV0dHlQcmludDooKT0+dzAscHJldHR5UHJpbnRIUGFyYW1WYWx1ZUJ5TmFtZTooKT0+U3VyLHByZXR0eVByaW50TWV0cmljVmFsdWVCeU5hbWU6KCk9Pk11cixxdWFkVHJlZVZpc2l0UG9pbnRzSW5EaXNrOigpPT5BdXIscXVhZFRyZWVWaXNpdFBvaW50c0luUmVjdDooKT0+Q3VyLHJvdGF0ZVN0cjooKT0+RXVyLHNjaGVtYUNvbHVtbk5hbWU6KCk9PmNjdCxzY2hlbWFWaXNpYmxlQ29sdW1uTmFtZTooKT0+YnVyLHNlc3Npb25Hcm91cFdpdGhOYW1lOigpPT5mY3Qsc2V0QXJyYXlPYnNlcnZhYmx5OigpPT5wY3QsdHJhbnNsYXRlU3RyOigpPT55UCx2aXNpYmxlTnVtZXJpY0NvbHVtbkV4dGVudDooKT0+X1B9KTt2YXIgT0g9RWUoT2UoKSwxKTtmdW5jdGlvbiBCZChlKXtyZXR1cm4gZS5kaXNwbGF5TmFtZSE9PSIiJiZlLmRpc3BsYXlOYW1lIT09dm9pZCAwP2UuZGlzcGxheU5hbWU6ZS5uYW1lfWZ1bmN0aW9uIFF1KGUpe2lmKGUuZGlzcGxheU5hbWUhPT0iIiYmZS5kaXNwbGF5TmFtZSE9PXZvaWQgMClyZXR1cm4gZS5kaXNwbGF5TmFtZTtsZXQgdD1lLm5hbWUuZ3JvdXAscj1lLm5hbWUudGFnO3JldHVybiB0PT09dm9pZCAwJiYodD0iIikscj09PXZvaWQgMCYmKHI9IiIpLHQ9PT0iInx8dD09PSIuIj9yOnQrIi4iK3J9ZnVuY3Rpb24gY2N0KGUsdCl7aWYodDxlLmhwYXJhbUNvbHVtbnMubGVuZ3RoKXJldHVybiBCZChlLmhwYXJhbUNvbHVtbnNbdF0uaHBhcmFtSW5mbyk7bGV0IHI9dC1lLmhwYXJhbUNvbHVtbnMubGVuZ3RoO3JldHVybiBRdShlLm1ldHJpY0NvbHVtbnNbcl0ubWV0cmljSW5mbyl9ZnVuY3Rpb24gbGNlKGUpe3JldHVybiBlLmhwYXJhbUNvbHVtbnMubGVuZ3RofWZ1bmN0aW9uIGNjZShlKXtyZXR1cm4gZS5tZXRyaWNDb2x1bW5zLmxlbmd0aH1mdW5jdGlvbiB1Y3QoZSl7cmV0dXJuIGxjZShlKStjY2UoZSl9ZnVuY3Rpb24gdWNlKGUsdCl7cmV0dXJuIGVbdF19ZnVuY3Rpb24gZjMoZSx0KXtyZXR1cm4gZS5maW5kKHI9Pk9ILmlzRXF1YWwoci5uYW1lLHQpKX1mdW5jdGlvbiBoY2UoZSx0LHIpe3JldHVybiB0LmhwYXJhbXNbZS5ocGFyYW1Db2x1bW5zW3JdLmhwYXJhbUluZm8ubmFtZV19ZnVuY3Rpb24gZmNlKGUsdCxyKXtsZXQgbj1lLm1ldHJpY0NvbHVtbnNbcl0ubWV0cmljSW5mby5uYW1lLGk9ZjModC5tZXRyaWNWYWx1ZXMsbik7cmV0dXJuIGk9PT12b2lkIDB8fGkudmFsdWU9PT0iTmFOIj92b2lkIDA6aS52YWx1ZX1mdW5jdGlvbiBiMChlLHQscil7cmV0dXJuIHI8ZS5ocGFyYW1Db2x1bW5zLmxlbmd0aD9oY2UoZSx0LHIpOmZjZShlLHQsci1lLmhwYXJhbUNvbHVtbnMubGVuZ3RoKX1mdW5jdGlvbiBoY3QoZSx0LHIpe3JldHVybiBzYSh0LG49PmIwKGUsbixyKSl9ZnVuY3Rpb24gekgoZSx0LHIpe2xldCBuO2lmKHI8dC5ocGFyYW1JbmZvcy5sZW5ndGgpbj1lLmhwYXJhbUNvbHVtbnMuZmluZEluZGV4KGk9PmkuaHBhcmFtSW5mby5uYW1lPT09dC5ocGFyYW1JbmZvc1tyXS5uYW1lKTtlbHNle2xldCBpPXItdC5ocGFyYW1JbmZvcy5sZW5ndGgsbz10Lm1ldHJpY0luZm9zW2ldLm5hbWU7bj1lLmhwYXJhbUNvbHVtbnMubGVuZ3RoK2UubWV0cmljQ29sdW1ucy5maW5kSW5kZXgoYT0+YS5tZXRyaWNJbmZvLm5hbWU9PT1vKX1yZXR1cm4gY29uc29sZS5hc3NlcnQobiE9PS0xKSxufWZ1bmN0aW9uIGJ1cihlLHQpe2lmKHQ8ZS5ocGFyYW1JbmZvcy5sZW5ndGgpcmV0dXJuIEJkKGUuaHBhcmFtSW5mb3NbdF0pO2xldCByPXQtZS5ocGFyYW1JbmZvcy5sZW5ndGg7cmV0dXJuIFF1KGUubWV0cmljSW5mb3Nbcl0pfWZ1bmN0aW9uIHBjZShlKXtyZXR1cm4gZS5ocGFyYW1JbmZvcy5sZW5ndGh9ZnVuY3Rpb24gZGNlKGUpe3JldHVybiBlLm1ldHJpY0luZm9zLmxlbmd0aH1mdW5jdGlvbiB3dXIoZSl7cmV0dXJuIHBjZShlKStkY2UoZSl9ZnVuY3Rpb24gX1AoZSx0LHIpe3JldHVybiBzYSh0LG49PkJIKGUsbixyKSl9ZnVuY3Rpb24gU3VyKGUsdCl7cmV0dXJuIHcwKHVjZShlLHQpKX1mdW5jdGlvbiBNdXIoZSx0KXtyZXR1cm4gdzAoZjMoZSx0KSl9ZnVuY3Rpb24gZmN0KGUsdCl7cmV0dXJuIGUuZmluZChyPT5yLm5hbWU9PT10KX1mdW5jdGlvbiBtY2UoZSx0LHIpe3JldHVybiB0LmhwYXJhbXNbZS5ocGFyYW1JbmZvc1tyXS5uYW1lXX1mdW5jdGlvbiBGSChlLHQscil7bGV0IG49ZS5tZXRyaWNJbmZvc1tyXS5uYW1lLGk9ZjModC5tZXRyaWNWYWx1ZXMsbik7cmV0dXJuIGk9PT12b2lkIDB8fGkudmFsdWU9PT0iTmFOIj92b2lkIDA6aS52YWx1ZX1mdW5jdGlvbiBCSChlLHQscil7cmV0dXJuIHI8ZS5ocGFyYW1JbmZvcy5sZW5ndGg/bWNlKGUsdCxyKTpGSChlLHQsci1lLmhwYXJhbUluZm9zLmxlbmd0aCl9ZnVuY3Rpb24gdzAoZSl7cmV0dXJuIE9ILmlzTnVtYmVyKGUpP2UudG9QcmVjaXNpb24oNSk6ZT09bnVsbD8iIjplLnRvU3RyaW5nKCl9ZnVuY3Rpb24gcDMoZSx0KXtyZXR1cm4gZSplK3QqdH1mdW5jdGlvbiBoMyhlLHQscixuKXtyZXR1cm4gTWF0aC5zcXJ0KHAzKGUtcix0LW4pKX1mdW5jdGlvbiBnY2UoZSx0LHIsbixpLG8pe2lmKGU8ciYmdDxuKXJldHVybiBoMyhlLHQscixuKTtpZihyPD1lJiZlPGkmJnQ8bilyZXR1cm4gbi10O2lmKGk8PWUmJnQ8bilyZXR1cm4gaDMoZSx0LGksbik7aWYoZTxyJiZuPD10JiZ0PG8pcmV0dXJuIHItZTtpZihyPD1lJiZlPGkmJm48PXQmJnQ8bylyZXR1cm4gMDtpZihpPD1lJiZuPD10JiZ0PG8pcmV0dXJuIGUtaTtpZihlPHImJm88PXQpcmV0dXJuIGgzKGUsdCxyLG8pO2lmKHI8PWUmJmU8aSYmbzw9dClyZXR1cm4gdC1vO2lmKGk8PWUmJm88PXQpcmV0dXJuIGgzKGUsdCxpLG8pO3Rocm93IlBvaW50ICh4LHkpIG11c3QgYmUgaW4gb25lIG9mIHRoZSByZWdpb25zIGRlZmluZWQgYWJvdmUuIn1mdW5jdGlvbiB5UChlLHQpe3JldHVybiB0PT09dm9pZCAwPyJ0cmFuc2xhdGUoIitlKyIpIjoidHJhbnNsYXRlKCIrZSsiLCIrdCsiKSJ9ZnVuY3Rpb24gRXVyKGUsdCxyKXtsZXQgbj0icm90YXRlKCIrZTtyZXR1cm4gdCE9PXZvaWQgMCYmciE9PXZvaWQgMCYmKG49bisiLCIrdCsiLCIrciksbj1uKyIpIixufWZ1bmN0aW9uIFR1cihlKXtyZXR1cm4gZT09bnVsbH1mdW5jdGlvbiBDdXIoZSx0LHIsbixpLG8pe2UudmlzaXQoKGEscyxsLGMsdSk9PntpZihhLmxlbmd0aD09PXZvaWQgMCl7ZG97bGV0IGg9ZS54KCkoYS5kYXRhKSxmPWUueSgpKGEuZGF0YSk7dDw9aCYmaDxuJiZyPD1mJiZmPGkmJm8oYS5kYXRhKX13aGlsZShhPWEubmV4dCk7cmV0dXJuITB9cmV0dXJuIHM+PW58fGM8PXR8fGw+PWl8fHU8PXJ9KX1mdW5jdGlvbiBBdXIoZSx0LHIsbixpKXtlLnZpc2l0KChvLGEscyxsLGMpPT57aWYoby5sZW5ndGg9PT12b2lkIDApe2Rve2xldCB1PWUueCgpKG8uZGF0YSksaD1lLnkoKShvLmRhdGEpLGY9aDModCxyLHUsaCk7Zjw9biYmaShvLmRhdGEsZil9d2hpbGUobz1vLm5leHQpO3JldHVybiEwfXJldHVybiBnY2UodCxyLGEscyxsLGMpPm59KX1mdW5jdGlvbiBQdXIoZSx0KXtsZXQgcj1uZXcgU2V0O3JldHVybiBlLmZvckVhY2gobj0+e3QobikmJnIuYWRkKG4pfSkscn1mdW5jdGlvbiBwY3QoZSx0LHIpe2xldCBuPWUuZ2V0KHQsZSk7aWYoIUFycmF5LmlzQXJyYXkobikpe2Uuc2V0KHQscik7cmV0dXJufWUuc3BsaWNlLmFwcGx5KGUsW3QsMCxuLmxlbmd0aF0uY29uY2F0KHIpKX1mdW5jdGlvbiBkY3QoZSl7bGV0IHQ9MDtmb3IobGV0IHI9MDtyPGUubGVuZ3RoOysrcil0PXQqMzErZS5jaGFyQ29kZUF0KHIpJjQyOTQ5NjcyOTU7cmV0dXJuIHQrVEkoMiwzMSl9dmFyIEl1cj0xMCxJbj1jbGFzcyBleHRlbmRzIEd0KG10KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5jb25maWd1cmF0aW9uPXtzY2hlbWE6e2hwYXJhbUNvbHVtbnM6QXJyYXkoKSxtZXRyaWNDb2x1bW5zOkFycmF5KCl9LGNvbHVtbnNWaXNpYmlsaXR5OkFycmF5KCksdmlzaWJsZVNjaGVtYTp7aHBhcmFtSW5mb3M6QXJyYXkoKSxtZXRyaWNJbmZvczpBcnJheSgpfX0sdGhpcy5zZXNzaW9uR3JvdXBzPVtdLHRoaXMuZGF0YUxvYWRlZFdpdGhOb25FbXB0eUhwYXJhbXM9ITEsdGhpcy5kYXRhTG9hZGVkV2l0aEVtcHR5SHBhcmFtcz0hMSx0aGlzLl9tYXhOdW1IcGFyYW1zVG9Mb2FkPTFlMyx0aGlzLl90b29NYW55SHBhcmFtcz0hMSx0aGlzLl9zdGF0dXNlcz1be3ZhbHVlOiJTVEFUVVNfVU5LTk9XTiIsZGlzcGxheU5hbWU6IlVua25vd24iLGFsbG93ZWQ6ITB9LHt2YWx1ZToiU1RBVFVTX1NVQ0NFU1MiLGRpc3BsYXlOYW1lOiJTdWNjZXNzIixhbGxvd2VkOiEwfSx7dmFsdWU6IlNUQVRVU19GQUlMVVJFIixkaXNwbGF5TmFtZToiRmFpbHVyZSIsYWxsb3dlZDohMH0se3ZhbHVlOiJTVEFUVVNfUlVOTklORyIsZGlzcGxheU5hbWU6IlJ1bm5pbmciLGFsbG93ZWQ6ITB9XSx0aGlzLl9nZXRFeHBlcmltZW50UmVzb2x2ZWQ9bmV3IFByb21pc2UodD0+e3RoaXMuX3Jlc29sdmVHZXRFeHBlcmltZW50PXR9KSx0aGlzLl9saXN0U2Vzc2lvbkdyb3Vwc0NhbmNlbGxlcj1uZXcgYW4sdGhpcy5fcGFnZVNpemVJbnB1dD17dmFsdWU6IjEwMCIsaW52YWxpZDohMX0sdGhpcy5fcGFnZU51bWJlcklucHV0PXt2YWx1ZToiMSIsaW52YWxpZDohMX0sdGhpcy5fcGFnZUNvdW50U3RyPSI/Iix0aGlzLl9ocGFyYW1OYW1lPUJkLHRoaXMuX21ldHJpY05hbWU9UXUsdGhpcy5fcHJldHR5UHJpbnQ9dzB9cmVsb2FkKCl7dGhpcy5fcXVlcnlTZXJ2ZXIoKX1fY3N2VXJsKHQscil7cmV0dXJuIHRoaXMuX2Rvd25sb2FkRGF0YVVybCh0LHIsImNzdiIpfV9qc29uVXJsKHQscil7cmV0dXJuIHRoaXMuX2Rvd25sb2FkRGF0YVVybCh0LHIsImpzb24iKX1fbGF0ZXhVcmwodCxyKXtyZXR1cm4gdGhpcy5fZG93bmxvYWREYXRhVXJsKHQsciwibGF0ZXgiKX1fZG93bmxvYWREYXRhVXJsKHQscixuKXtsZXQgaT1yLmNvbHVtbnNWaXNpYmlsaXR5O3JldHVybiB0aGlzLmJhY2tlbmQuZ2V0RG93bmxvYWRVcmwobix0LGkpfV9jb21wdXRlRXhwZXJpbWVudEFuZFJlbGF0ZWRQcm9wcygpe2xldCB0PXVzO2lmKHQuaXNOdWxsT3JVbmRlZmluZWQodGhpcy5iYWNrZW5kKXx8dC5pc051bGxPclVuZGVmaW5lZCh0aGlzLmV4cGVyaW1lbnROYW1lKSlyZXR1cm47bGV0IHI9e2V4cGVyaW1lbnROYW1lOnRoaXMuZXhwZXJpbWVudE5hbWUsaHBhcmFtc0xpbWl0OnRoaXMuX21heE51bUhwYXJhbXNUb0xvYWR9O3RoaXMuYmFja2VuZC5nZXRFeHBlcmltZW50KHIpLnRoZW4obj0+e19jZS5pc0VxdWFsKG4sdGhpcy5fZXhwZXJpbWVudCl8fCh0aGlzLnNldCgiX2V4cGVyaW1lbnQiLG4pLHRoaXMuX2NvbXB1dGVIUGFyYW1zKCksdGhpcy5fY29tcHV0ZU1ldHJpY3MoKSx0aGlzLl9xdWVyeVNlcnZlcigpLHRoaXMuX3Jlc29sdmVHZXRFeHBlcmltZW50KCkpfSkuZmluYWxseSgoKT0+e3RoaXMuX2NvbXB1dGVEYXRhRm91bmQoKX0pfV9jb21wdXRlRGF0YUZvdW5kKCl7bGV0IHQ9Qm9vbGVhbih0aGlzLl9leHBlcmltZW50JiZ0aGlzLl9leHBlcmltZW50LmhwYXJhbUluZm9zJiZ0aGlzLl9leHBlcmltZW50LmhwYXJhbUluZm9zLmxlbmd0aD4wKTt0aGlzLnNldCgiZGF0YUxvYWRlZFdpdGhOb25FbXB0eUhwYXJhbXMiLHQpLHRoaXMuc2V0KCJkYXRhTG9hZGVkV2l0aEVtcHR5SHBhcmFtcyIsIXQpfV9jb21wdXRlSFBhcmFtcygpe2xldCB0PVtdO3RoaXMuX2V4cGVyaW1lbnQuaHBhcmFtSW5mb3MuZm9yRWFjaChpPT57bGV0IG89e2luZm86aSxkaXNwbGF5ZWQ6ITEsZmlsdGVyOnt9fTtvLmluZm8uaGFzT3duUHJvcGVydHkoImRvbWFpbkRpc2NyZXRlIik/by5pbmZvLmRvbWFpbkRpc2NyZXRlLmxlbmd0aDxJdXI/KG8uZmlsdGVyLmRvbWFpbkRpc2NyZXRlPVtdLG8uaW5mby5kb21haW5EaXNjcmV0ZS5mb3JFYWNoKGE9PntvLmZpbHRlci5kb21haW5EaXNjcmV0ZS5wdXNoKHt2YWx1ZTphLGNoZWNrZWQ6ITB9KX0pKTpvLmZpbHRlci5yZWdleHA9IiI6by5pbmZvLnR5cGU9PT0iREFUQV9UWVBFX0ZMT0FUNjQiP28uZmlsdGVyLmludGVydmFsPXttaW46e3ZhbHVlOiIiLGludmFsaWQ6ITF9LG1heDp7dmFsdWU6IiIsaW52YWxpZDohMX19OmNvbnNvbGUud2FybigiY2Fubm90IHByb2Nlc3MgZG9tYWluIHR5cGUgJXMgd2l0aG91dCBkaXNjcmV0ZSBkb21haW4gdmFsdWVzIixvLmluZm8udHlwZSksdC5wdXNoKG8pfSksdC5zb3J0KChpLG8pPT5pLmluZm8uZGlmZmVycz09PW8uaW5mby5kaWZmZXJzPzA6aS5pbmZvLmRpZmZlcnM/LTE6MSk7bGV0IG49TWF0aC5taW4oNSx0Lmxlbmd0aCk7Zm9yKGxldCBpPTA7aTxuO2krKyl0W2ldLmRpc3BsYXllZD0hMDt0aGlzLnNldCgiX2hwYXJhbXMiLHQpLHRoaXMuc2V0KCJfVG9vTWFueUhwYXJhbXMiLHQubGVuZ3RoPj10aGlzLl9tYXhOdW1IcGFyYW1zVG9Mb2FkKX1fY29tcHV0ZU1ldHJpY3MoKXtsZXQgdD1bXTt0aGlzLl9leHBlcmltZW50Lm1ldHJpY0luZm9zLmZvckVhY2goKG4saSk9PntsZXQgbz17aW5mbzpuLGZpbHRlcjp7aW50ZXJ2YWw6e21pbjp7dmFsdWU6IiIsaW52YWxpZDohMX0sbWF4Ont2YWx1ZToiIixpbnZhbGlkOiExfX19LGRpc3BsYXllZDppPDV9O3QucHVzaChvKX0pLHRoaXMuc2V0KCJfbWV0cmljcyIsdCl9X2NvbXB1dGVTY2hlbWEoKXtyZXR1cm4hdGhpcy5faHBhcmFtc3x8IXRoaXMuX21ldHJpY3M/e2hwYXJhbUNvbHVtbnM6W10sbWV0cmljQ29sdW1uczpbXX06e2hwYXJhbUNvbHVtbnM6dGhpcy5faHBhcmFtcy5tYXAodD0+KHtocGFyYW1JbmZvOnQuaW5mb30pKSxtZXRyaWNDb2x1bW5zOnRoaXMuX21ldHJpY3MubWFwKHQ9Pih7bWV0cmljSW5mbzp0LmluZm99KSl9fV91cGRhdGVDb25maWd1cmF0aW9uKCl7dGhpcy5kZWJvdW5jZSgiX3VwZGF0ZUNvbmZpZ3VyYXRpb24iLCgpPT57dGhpcy5jb25maWd1cmF0aW9uPXtzY2hlbWE6dGhpcy5fY29tcHV0ZVNjaGVtYSgpLGNvbHVtbnNWaXNpYmlsaXR5OnRoaXMuX2NvbXB1dGVDb2x1bW5zVmlzaWJpbGl0eSgpLHZpc2libGVTY2hlbWE6dGhpcy5fY29tcHV0ZVZpc2libGVTY2hlbWEoKX19KX1fY29tcHV0ZUNvbHVtbnNWaXNpYmlsaXR5KCl7cmV0dXJuIXRoaXMuX2hwYXJhbXN8fCF0aGlzLl9tZXRyaWNzP1tdOnRoaXMuX2hwYXJhbXMubWFwKHQ9PnQuZGlzcGxheWVkKS5jb25jYXQodGhpcy5fbWV0cmljcy5tYXAodD0+dC5kaXNwbGF5ZWQpKX1fY29tcHV0ZVZpc2libGVTY2hlbWEoKXtpZighdGhpcy5faHBhcmFtc3x8IXRoaXMuX21ldHJpY3MpcmV0dXJue2hwYXJhbUluZm9zOltdLG1ldHJpY0luZm9zOltdfTtsZXQgdD10aGlzLl9ocGFyYW1zLmZpbHRlcihuPT5uLmRpc3BsYXllZCkubWFwKG49Pm4uaW5mbykscj10aGlzLl9tZXRyaWNzLmZpbHRlcihuPT5uLmRpc3BsYXllZCkubWFwKG49Pm4uaW5mbyk7cmV0dXJue2hwYXJhbUluZm9zOnQsbWV0cmljSW5mb3M6cn19X2hhc1JlZ2V4cEZpbHRlcih0KXtyZXR1cm4gdC5maWx0ZXIucmVnZXhwIT09dm9pZCAwfV9xdWVyeVNlcnZlcigpe3RoaXMuZGVib3VuY2UoInF1ZXJ5U2VydmVyIiwoKT0+dGhpcy5fcXVlcnlTZXJ2ZXJOb0RlYm91bmNlKCksMTAwKX1fcXVlcnlTZXJ2ZXJOb0RlYm91bmNlKCl7aWYoISghdGhpcy5faHBhcmFtc3x8IXRoaXMuX21ldHJpY3MpKXJldHVybiB0aGlzLl9zZW5kTGlzdFNlc3Npb25Hcm91cHNSZXF1ZXN0KCkudGhlbih0aGlzLl9saXN0U2Vzc2lvbkdyb3Vwc0NhbmNlbGxlci5jYW5jZWxsYWJsZSgoe3ZhbHVlOnQsY2FuY2VsbGVkOnJ9KT0+e2lmKCFyKXtpZih0LnRvdGFsU2l6ZT49MCl7bGV0IG49K3RoaXMuX3BhZ2VTaXplSW5wdXQudmFsdWU7dGhpcy5zZXQoIl9wYWdlQ291bnRTdHIiLFN0cmluZyhNYXRoLmNlaWwodC50b3RhbFNpemUvbikpKSx0aGlzLnNldCgiX3RvdGFsU2Vzc2lvbkdyb3Vwc0NvdW50U3RyIix0LnRvdGFsU2l6ZSl9ZWxzZSB0aGlzLnNldCgiX3BhZ2VDb3VudFN0ciIsIj8iKSx0aGlzLnNldCgiX3RvdGFsU2Vzc2lvbkdyb3Vwc0NvdW50U3RyIiwiVW5rbm93biIpO3BjdCh0aGlzLCJzZXNzaW9uR3JvdXBzIix0LnNlc3Npb25Hcm91cHMpfX0pKX1fc2VuZExpc3RTZXNzaW9uR3JvdXBzUmVxdWVzdCgpe2xldCB0PXRoaXMuX2J1aWxkTGlzdFNlc3Npb25Hcm91cHNSZXF1ZXN0KCk7aWYodCE9PW51bGwpcmV0dXJuIHRoaXMuc2V0KCJfc2Vzc2lvbkdyb3Vwc1JlcXVlc3QiLHQpLHRoaXMuX2xpc3RTZXNzaW9uR3JvdXBzQ2FuY2VsbGVyLmNhbmNlbEFsbCgpLHRoaXMuYmFja2VuZC5saXN0U2Vzc2lvbkdyb3Vwcyh0KX1fYnVpbGRMaXN0U2Vzc2lvbkdyb3Vwc1JlcXVlc3QoKXtsZXQgdD10aGlzLHI9ITA7ZnVuY3Rpb24gbihoKXtyZXR1cm4gaC5taW4udmFsdWUhPT0iInx8aC5tYXgudmFsdWUhPT0iIn1mdW5jdGlvbiBpKGgpe2xldCBmPXQuZ2V0KGgrIi5taW4udmFsdWUiKTtjb25zb2xlLmFzc2VydChmIT09dm9pZCAwKTtsZXQgcD1mPT09IiI/Ii1JbmZpbml0eSI6K2YsZD1pc05hTihwKTt0LnNldChoKyIubWluLmludmFsaWQiLGQpLHI9ciYmIWQ7bGV0IGc9dC5nZXQoaCsiLm1heC52YWx1ZSIpO2NvbnNvbGUuYXNzZXJ0KGchPT12b2lkIDApO2xldCBfPWc9PT0iIj8iSW5maW5pdHkiOitnLHk9aXNOYU4oXyk7cmV0dXJuIHQuc2V0KGgrIi5tYXguaW52YWxpZCIseSkscj1yJiYheSxkfHx5P251bGw6e21pblZhbHVlOnAsbWF4VmFsdWU6X319ZnVuY3Rpb24gbyhoKXtsZXQgZj10LmdldChoKyIudmFsdWUiKTtjb25zb2xlLmFzc2VydChmIT09dm9pZCAwKTtsZXQgcD0rZixkPU51bWJlci5pc0ludGVnZXIocCkmJnA+MDtyZXR1cm4gdC5zZXQoaCsiLmludmFsaWQiLCFkKSxyPXImJmQsZD9wOm51bGx9bGV0IGE9dGhpcy5fc3RhdHVzZXMuZmlsdGVyKGg9PmguYWxsb3dlZCkubWFwKGg9PmgudmFsdWUpLHM9W107aWYodGhpcy5faHBhcmFtcy5mb3JFYWNoKChoLGYpPT57bGV0IHA9e2hwYXJhbTpoLmluZm8ubmFtZSxpbmNsdWRlSW5SZXN1bHQ6ITB9O2guZmlsdGVyLmRvbWFpbkRpc2NyZXRlP2guZmlsdGVyLmRvbWFpbkRpc2NyZXRlLmV2ZXJ5KGc9PmcuY2hlY2tlZCl8fChwLmZpbHRlckRpc2NyZXRlPVtdLGguZmlsdGVyLmRvbWFpbkRpc2NyZXRlLmZvckVhY2goZz0+e2cuY2hlY2tlZCYmcC5maWx0ZXJEaXNjcmV0ZS5wdXNoKGcudmFsdWUpfSkpOmguZmlsdGVyLmludGVydmFsP24oaC5maWx0ZXIuaW50ZXJ2YWwpJiYocC5maWx0ZXJJbnRlcnZhbD1pKCJfaHBhcmFtcy4iK2YrIi5maWx0ZXIuaW50ZXJ2YWwiKSk6aC5maWx0ZXIucmVnZXhwJiYocC5maWx0ZXJSZWdleHA9aC5maWx0ZXIucmVnZXhwKSxzLnB1c2gocCl9KSx0aGlzLl9tZXRyaWNzLmZvckVhY2goKGgsZik9PntsZXQgcD17bWV0cmljOmguaW5mby5uYW1lLGluY2x1ZGVJblJlc3VsdDohMH07bihoLmZpbHRlci5pbnRlcnZhbCkmJihwLmZpbHRlckludGVydmFsPWkoIl9tZXRyaWNzLiIrZisiLmZpbHRlci5pbnRlcnZhbCIpKSxzLnB1c2gocCl9KSx0aGlzLl9zb3J0QnlJbmRleCE9PXZvaWQgMCYmdGhpcy5fc29ydERpcmVjdGlvbiE9PXZvaWQgMCl7aWYoISh0aGlzLl9zb3J0QnlJbmRleCBpbiBzKSlyZXR1cm4gY29uc29sZS5lcnJvcigiTm8gY29sdW1uIGluIGNvbFBhcmFtcyB3aXRoIGluZGV4IHNvcnRCeUluZGV4OiAlcyIsdGhpcy5fc29ydEJ5SW5kZXgpLG51bGw7c1t0aGlzLl9zb3J0QnlJbmRleF0ub3JkZXI9dGhpcy5fc29ydERpcmVjdGlvbj09PTA/Ik9SREVSX0FTQyI6Ik9SREVSX0RFU0MifWxldCBsPW8oIl9wYWdlTnVtYmVySW5wdXQiKXx8MCxjPW8oIl9wYWdlU2l6ZUlucHV0Iil8fDA7aWYoIXIpcmV0dXJuIG51bGw7bGV0IHU9YyoobC0xKTtyZXR1cm57ZXhwZXJpbWVudE5hbWU6dGhpcy5leHBlcmltZW50TmFtZSxhbGxvd2VkU3RhdHVzZXM6YSxjb2xQYXJhbXM6cyxzdGFydEluZGV4OnUsc2xpY2VTaXplOmN9fV9tZXRyaWNTb3J0QnlJbmRleCh0KXtyZXR1cm4gdCt0aGlzLl9ocGFyYW1zLmxlbmd0aH19O0luLnRlbXBsYXRlPVFgCiAgICA8aHBhcmFtcy1zcGxpdC1sYXlvdXQgb3JpZW50YXRpb249InZlcnRpY2FsIj4KICAgICAgPGRpdiBzbG90PSJjb250ZW50IiBjbGFzcz0ic2VjdGlvbiBoeXBlcnBhcmFtZXRlcnMiPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkh5cGVycGFyYW1ldGVyczwvZGl2PgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfVG9vTWFueUhwYXJhbXNdXSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b28tbWFueS1ocGFyYW1zIj4KICAgICAgICAgICAgV2FybmluZzogVGhlcmUgd2VyZSB0b28gbWFueSBocGFyYW1zIHRvIGxvYWQgYWxsIG9mIHRoZW0KICAgICAgICAgICAgZWZmaWNpZW50bHkuIE9ubHkgW1tfbWF4TnVtSHBhcmFtc1RvTG9hZF1dIHdlcmUgbG9hZGVkLgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJ7e19ocGFyYW1zfX0iIGFzPSJocGFyYW0iPgogICAgICAgICAgPGRpdiBjbGFzcz0iaHBhcmFtIj4KICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94CiAgICAgICAgICAgICAgY2hlY2tlZD0ie3tocGFyYW0uZGlzcGxheWVkfX0iCiAgICAgICAgICAgICAgY2xhc3M9ImhwYXJhbS1jaGVja2JveCIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIFtbX2hwYXJhbU5hbWUoaHBhcmFtLmluZm8pXV0KICAgICAgICAgICAgPC9wYXBlci1jaGVja2JveD4KICAgICAgICAgICAgPCEtLSBQcmVjaXNlbHkgb25lIG9mIHRoZSB0ZW1wbGF0ZXMgYmVsb3cgd2lsbCBiZSBzdGFtcGVkLi0tPgogICAgICAgICAgICA8IS0tIDEuIEEgbGlzdCBvZiBjaGVja2JveGVzIC0tPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbaHBhcmFtLmZpbHRlci5kb21haW5EaXNjcmV0ZV1dIj4KICAgICAgICAgICAgICA8dGVtcGxhdGUKICAgICAgICAgICAgICAgIGlzPSJkb20tcmVwZWF0IgogICAgICAgICAgICAgICAgaXRlbXM9IltbaHBhcmFtLmZpbHRlci5kb21haW5EaXNjcmV0ZV1dIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxwYXBlci1jaGVja2JveAogICAgICAgICAgICAgICAgICBjaGVja2VkPSJ7e2l0ZW0uY2hlY2tlZH19IgogICAgICAgICAgICAgICAgICBjbGFzcz0iZGlzY3JldGUtdmFsdWUtY2hlY2tib3giCiAgICAgICAgICAgICAgICAgIG9uLWNoYW5nZT0iX3F1ZXJ5U2VydmVyIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICBbW19wcmV0dHlQcmludChpdGVtLnZhbHVlKV1dCiAgICAgICAgICAgICAgICA8L3BhcGVyLWNoZWNrYm94PgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwhLS0gMi4gQSBudW1lcmljIGludGVydmFsIC0tPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbaHBhcmFtLmZpbHRlci5pbnRlcnZhbF1dIj4KICAgICAgICAgICAgICA8cGFwZXItaW5wdXQKICAgICAgICAgICAgICAgIGxhYmVsPSJNaW4iCiAgICAgICAgICAgICAgICB2YWx1ZT0ie3tocGFyYW0uZmlsdGVyLmludGVydmFsLm1pbi52YWx1ZX19IgogICAgICAgICAgICAgICAgYWxsb3dlZF9wYXR0ZXJuPSJbMC05LmVcXC1dIgogICAgICAgICAgICAgICAgb24tdmFsdWUtY2hhbmdlZD0iX3F1ZXJ5U2VydmVyIgogICAgICAgICAgICAgICAgZXJyb3ItbWVzc2FnZT0iSW52YWxpZCBpbnB1dCIKICAgICAgICAgICAgICAgIGludmFsaWQ9IltbaHBhcmFtLmZpbHRlci5pbnRlcnZhbC5taW4uaW52YWxpZF1dIgogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9Ii1pbmZpbml0eSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPC9wYXBlci1pbnB1dD4KICAgICAgICAgICAgICA8cGFwZXItaW5wdXQKICAgICAgICAgICAgICAgIGxhYmVsPSJNYXgiCiAgICAgICAgICAgICAgICB2YWx1ZT0ie3tocGFyYW0uZmlsdGVyLmludGVydmFsLm1heC52YWx1ZX19IgogICAgICAgICAgICAgICAgYWxsb3dlZF9wYXR0ZXJuPSJbMC05LmVcXC1dIgogICAgICAgICAgICAgICAgb24tdmFsdWUtY2hhbmdlZD0iX3F1ZXJ5U2VydmVyIgogICAgICAgICAgICAgICAgZXJyb3ItbWVzc2FnZT0iSW52YWxpZCBpbnB1dCIKICAgICAgICAgICAgICAgIGludmFsaWQ9IltbaHBhcmFtLmZpbHRlci5pbnRlcnZhbC5tYXguaW52YWxpZF1dIgogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IitpbmZpbml0eSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPC9wYXBlci1pbnB1dD4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPCEtLSAzLiBBIHJlZ2V4cCAtLT4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNSZWdleHBGaWx0ZXIoaHBhcmFtKV1dIj4KICAgICAgICAgICAgICA8cGFwZXItaW5wdXQKICAgICAgICAgICAgICAgIGxhYmVsPSJSZWd1bGFyIGV4cHJlc3Npb24iCiAgICAgICAgICAgICAgICB2YWx1ZT0ie3tocGFyYW0uZmlsdGVyLnJlZ2V4cH19IgogICAgICAgICAgICAgICAgb24tdmFsdWUtY2hhbmdlZD0iX3F1ZXJ5U2VydmVyIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8L3BhcGVyLWlucHV0PgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgY2xhc3M9InNlY3Rpb24gbWV0cmljcyI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TWV0cmljczwvZGl2PgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9Int7X21ldHJpY3N9fSIgYXM9Im1ldHJpYyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMiPgogICAgICAgICAgICA8IS0tIFRPRE8oZXJleik6IE1ha2UgaXQgZWFzaWVyIHRvIGhhbmRsZSBhIGxhcmdlIG51bWJlciBvZgogICAgICAgICAgICAgICAgICBtZXRyaWNzOgogICAgICAgICAgICAgICAgICAxLiBBZGQgYW4gJ2lzb2xhdG9yJyByYWRpby1idXR0b24gdG8gc2VsZWN0IGp1c3Qgb25lCiAgICAgICAgICAgICAgICAgIG1ldHJpYyBhbmQKICAgICAgICAgICAgICAgICAgaGlkZSBhbGwgdGhlIHJlc3QKICAgICAgICAgICAgICAgICAgMi4gQWRkIGEgJ3RvZ2dsZS1hbGwnIGJ1dHRvbiB0aGF0IHdpbGwgaGlkZS91bmhpZGUKICAgICAgICAgICAgICAgICAgICBhbGwgdGhlCiAgICAgICAgICAgICAgICAgIG1ldHJpY3MuCiAgICAgICAgICAgICAgICAgIFVzZSBzaW1pbGFyIGxvZ2ljL2FwcGVhcmFuY2UgdG8gdGhlIHJ1bi1zZWxlY3RvciBvZgogICAgICAgICAgICAgICAgICBzY2FsYXJzLi0tPgogICAgICAgICAgICA8cGFwZXItY2hlY2tib3gKICAgICAgICAgICAgICBjaGVja2VkPSJ7e21ldHJpYy5kaXNwbGF5ZWR9fSIKICAgICAgICAgICAgICBjbGFzcz0ibWV0cmljLWNoZWNrYm94IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgW1tfbWV0cmljTmFtZShtZXRyaWMuaW5mbyldXQogICAgICAgICAgICA8L3BhcGVyLWNoZWNrYm94PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmxpbmUtZWxlbWVudCI+CiAgICAgICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgICAgICBsYWJlbD0iTWluIgogICAgICAgICAgICAgICAgdmFsdWU9Int7bWV0cmljLmZpbHRlci5pbnRlcnZhbC5taW4udmFsdWV9fSIKICAgICAgICAgICAgICAgIGFsbG93ZWQtcGF0dGVybj0iWzAtOS5lXFwtXSIKICAgICAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgICAgICBpbnZhbGlkPSJ7e21ldHJpYy5maWx0ZXIuaW50ZXJ2YWwubWluLmludmFsaWR9fSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSItaW5maW5pdHkiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmxpbmUtZWxlbWVudCI+CiAgICAgICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgICAgICBsYWJlbD0iTWF4IgogICAgICAgICAgICAgICAgYWxsb3dlZC1wYXR0ZXJuPSJbMC05LmVcXC1dIgogICAgICAgICAgICAgICAgdmFsdWU9Int7bWV0cmljLmZpbHRlci5pbnRlcnZhbC5tYXgudmFsdWV9fSIKICAgICAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgICAgICBpbnZhbGlkPSJ7e21ldHJpYy5maWx0ZXIuaW50ZXJ2YWwubWF4LmludmFsaWR9fSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSIraW5maW5pdHkiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgY2xhc3M9InNlY3Rpb24gc3RhdHVzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TdGF0dXM8L2Rpdj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19zdGF0dXNlc11dIiBhcz0ic3RhdHVzIj4KICAgICAgICAgIDxwYXBlci1jaGVja2JveCBjaGVja2VkPSJ7e3N0YXR1cy5hbGxvd2VkfX0iIG9uLWNoYW5nZT0iX3F1ZXJ5U2VydmVyIj4KICAgICAgICAgICAgW1tzdGF0dXMuZGlzcGxheU5hbWVdXQogICAgICAgICAgPC9wYXBlci1jaGVja2JveD4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBzbG90PSJjb250ZW50IiBjbGFzcz0ic2VjdGlvbiBzb3J0aW5nIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Tb3J0aW5nPC9kaXY+CiAgICAgICAgPHBhcGVyLWRyb3Bkb3duLW1lbnUKICAgICAgICAgIGxhYmVsPSJTb3J0IGJ5IgogICAgICAgICAgb24tc2VsZWN0ZWQtaXRlbS1jaGFuZ2VkPSJfcXVlcnlTZXJ2ZXIiCiAgICAgICAgICBob3Jpem9udGFsLWFsaWduPSJsZWZ0IgogICAgICAgID4KICAgICAgICAgIDxwYXBlci1saXN0Ym94CiAgICAgICAgICAgIGNsYXNzPSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgICBzbG90PSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgICBzZWxlY3RlZD0ie3tfc29ydEJ5SW5kZXh9fSIKICAgICAgICAgICAgb24tc2VsZWN0ZWQtaXRlbS1jaGFuZ2VkPSJfcXVlcnlTZXJ2ZXIiCiAgICAgICAgICA+CiAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2hwYXJhbXNdXSIgYXM9ImhwYXJhbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWl0ZW0+IFtbX2hwYXJhbU5hbWUoaHBhcmFtLmluZm8pXV0gPC9wYXBlci1pdGVtPgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19tZXRyaWNzXV0iIGFzPSJtZXRyaWMiPgogICAgICAgICAgICAgIDxwYXBlci1pdGVtPiBbW19tZXRyaWNOYW1lKG1ldHJpYy5pbmZvKV1dIDwvcGFwZXItaXRlbT4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgICAgPHBhcGVyLWRyb3Bkb3duLW1lbnUKICAgICAgICAgIGxhYmVsPSJEaXJlY3Rpb24iCiAgICAgICAgICBvbi1zZWxlY3RlZC1pdGVtLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgIGhvcml6b250YWwtYWxpZ249ImxlZnQiCiAgICAgICAgPgogICAgICAgICAgPHBhcGVyLWxpc3Rib3gKICAgICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgIHNlbGVjdGVkPSJ7e19zb3J0RGlyZWN0aW9ufX0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxwYXBlci1pdGVtPkFzY2VuZGluZzwvcGFwZXItaXRlbT4KICAgICAgICAgICAgPHBhcGVyLWl0ZW0+RGVzY2VuZGluZzwvcGFwZXItaXRlbT4KICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IHNsb3Q9ImNvbnRlbnQiIGNsYXNzPSJzZWN0aW9uIHBhZ2luZyI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UGFnaW5nPC9kaXY+CiAgICAgICAgPGRpdj4KICAgICAgICAgIE51bWJlciBvZiBtYXRjaGluZyBzZXNzaW9uIGdyb3VwczogW1tfdG90YWxTZXNzaW9uR3JvdXBzQ291bnRTdHJdXQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImlubGluZS1lbGVtZW50IHBhZ2UtbnVtYmVyLWlucHV0Ij4KICAgICAgICAgIDxwYXBlci1pbnB1dAogICAgICAgICAgICBsYWJlbD0iUGFnZSAjIgogICAgICAgICAgICB2YWx1ZT0ie3tfcGFnZU51bWJlcklucHV0LnZhbHVlfX0iCiAgICAgICAgICAgIGFsbG93ZWQtcGF0dGVybj0iWzAtOV0iCiAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgIGludmFsaWQ9IltbX3BhZ2VOdW1iZXJJbnB1dC5pbnZhbGlkXV0iCiAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgID4KICAgICAgICAgICAgPGRpdiBzbG90PSJzdWZmaXgiIGNsYXNzPSJwYWdlLXN1ZmZpeCI+LyBbW19wYWdlQ291bnRTdHJdXTwvZGl2PgogICAgICAgICAgPC9wYXBlci1pbnB1dD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJpbmxpbmUtZWxlbWVudCBwYWdlLXNpemUtaW5wdXQiPgogICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgIGxhYmVsPSJNYXggIyBvZiBzZXNzaW9uIGdyb3VwcyBwZXIgcGFnZToiCiAgICAgICAgICAgIHZhbHVlPSJ7e19wYWdlU2l6ZUlucHV0LnZhbHVlfX0iCiAgICAgICAgICAgIGFsbG93ZWQtcGF0dGVybj0iWzAtOV0iCiAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgIGludmFsaWQ9IltbX3BhZ2VTaXplSW5wdXQuaW52YWxpZF1dIgogICAgICAgICAgICBvbi12YWx1ZS1jaGFuZ2VkPSJfcXVlcnlTZXJ2ZXIiCiAgICAgICAgICA+CiAgICAgICAgICA8L3BhcGVyLWlucHV0PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBzbG90PSJjb250ZW50IiBjbGFzcz0ic2VjdGlvbiBkb3dubG9hZCI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19zZXNzaW9uR3JvdXBzUmVxdWVzdF1dIj4KICAgICAgICAgIERvd25sb2FkIGRhdGEgYXMKICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICA8YQogICAgICAgICAgICAgIGlkPSJjc3ZMaW5rIgogICAgICAgICAgICAgIGRvd25sb2FkPSJocGFyYW1zX3RhYmxlLmNzdiIKICAgICAgICAgICAgICBocmVmPSJbW19jc3ZVcmwoX3Nlc3Npb25Hcm91cHNSZXF1ZXN0LCBjb25maWd1cmF0aW9uKV1dIgogICAgICAgICAgICAgID5DU1Y8L2EKICAgICAgICAgICAgPgogICAgICAgICAgICA8YQogICAgICAgICAgICAgIGlkPSJqc29uTGluayIKICAgICAgICAgICAgICBkb3dubG9hZD0iaHBhcmFtc190YWJsZS5qc29uIgogICAgICAgICAgICAgIGhyZWY9IltbX2pzb25VcmwoX3Nlc3Npb25Hcm91cHNSZXF1ZXN0LCBjb25maWd1cmF0aW9uKV1dIgogICAgICAgICAgICAgID5KU09OPC9hCiAgICAgICAgICAgID4KICAgICAgICAgICAgPGEKICAgICAgICAgICAgICBpZD0ibGF0ZXhMaW5rIgogICAgICAgICAgICAgIGRvd25sb2FkPSJocGFyYW1zX3RhYmxlLnRleCIKICAgICAgICAgICAgICBocmVmPSJbW19sYXRleFVybChfc2Vzc2lvbkdyb3Vwc1JlcXVlc3QsIGNvbmZpZ3VyYXRpb24pXV0iCiAgICAgICAgICAgICAgPkxhVGVYPC9hCiAgICAgICAgICAgID4KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvaHBhcmFtcy1zcGxpdC1sYXlvdXQ+CiAgICA8c3R5bGU+CiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICB9CiAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA3cHg7CiAgICAgIH0KICAgICAgLnRvby1tYW55LWhwYXJhbXMgewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1vcmFuZ2UtZGFyayk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgfQogICAgICAuZGlzY3JldGUtdmFsdWUtY2hlY2tib3gsCiAgICAgIC5tZXRyaWMtY2hlY2tib3gsCiAgICAgIC5ocGFyYW0tY2hlY2tib3ggewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5kaXNjcmV0ZS12YWx1ZS1jaGVja2JveCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7CiAgICAgIH0KICAgICAgLmhwYXJhbSwKICAgICAgLm1ldHJpYyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgICAgLmlubGluZS1lbGVtZW50IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgd2lkdGg6IDQwJTsKICAgICAgICBtYXJnaW4tbGVmdDogMTBweDsKICAgICAgfQogICAgICAucGFnZS1udW1iZXItaW5wdXQgewogICAgICAgIHdpZHRoOiAyMCU7CiAgICAgIH0KICAgICAgLnBhZ2Utc2l6ZS1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDYwJTsKICAgICAgfQogICAgICB2YWFkaW4tc3BsaXQtbGF5b3V0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgcGFwZXItbGlzdGJveCB7CiAgICAgICAgbWF4LWhlaWdodDogMTVlbTsKICAgICAgfQogICAgICAucGFnZS1zdWZmaXggewogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYDtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxJbi5wcm90b3R5cGUsImV4cGVyaW1lbnROYW1lIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxJbi5wcm90b3R5cGUsImNvbmZpZ3VyYXRpb24iLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheSxub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSW4ucHJvdG90eXBlLCJzZXNzaW9uR3JvdXBzIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbixub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLEluLnByb3RvdHlwZSwiZGF0YUxvYWRlZFdpdGhOb25FbXB0eUhwYXJhbXMiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFuLG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSW4ucHJvdG90eXBlLCJkYXRhTG9hZGVkV2l0aEVtcHR5SHBhcmFtcyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxJbi5wcm90b3R5cGUsIl9leHBlcmltZW50Iix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSxJbi5wcm90b3R5cGUsIl9ocGFyYW1zIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLEluLnByb3RvdHlwZSwiX21heE51bUhwYXJhbXNUb0xvYWQiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxJbi5wcm90b3R5cGUsIl90b29NYW55SHBhcmFtcyIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sSW4ucHJvdG90eXBlLCJfbWV0cmljcyIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLEluLnByb3RvdHlwZSwiX3N0YXR1c2VzIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLEluLnByb3RvdHlwZSwiX2dldEV4cGVyaW1lbnRSZXNvbHZlZCIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLEluLnByb3RvdHlwZSwiX3Jlc29sdmVHZXRFeHBlcmltZW50Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLEluLnByb3RvdHlwZSwiX2xpc3RTZXNzaW9uR3JvdXBzQ2FuY2VsbGVyIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLEluLnByb3RvdHlwZSwiX3NvcnRCeUluZGV4Iix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLEluLnByb3RvdHlwZSwiX3NvcnREaXJlY3Rpb24iLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSW4ucHJvdG90eXBlLCJfcGFnZVNpemVJbnB1dCIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxJbi5wcm90b3R5cGUsIl9wYWdlTnVtYmVySW5wdXQiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sSW4ucHJvdG90eXBlLCJfcGFnZUNvdW50U3RyIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLEluLnByb3RvdHlwZSwiX3RvdGFsU2Vzc2lvbkdyb3Vwc0NvdW50U3RyIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLEluLnByb3RvdHlwZSwiX3Nlc3Npb25Hcm91cHNSZXF1ZXN0Iix2b2lkIDApO0UoW0J0KCJiYWNrZW5kIiwiZXhwZXJpbWVudE5hbWUiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEluLnByb3RvdHlwZSwiX2NvbXB1dGVFeHBlcmltZW50QW5kUmVsYXRlZFByb3BzIixudWxsKTtFKFtCdCgiX2hwYXJhbXMuKiIsIl9tZXRyaWNzLioiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEluLnByb3RvdHlwZSwiX3VwZGF0ZUNvbmZpZ3VyYXRpb24iLG51bGwpO0luPUUoW3l0KCJ0Zi1ocGFyYW1zLXF1ZXJ5LXBhbmUiKV0sSW4pO3ZhciBVY3Q9RWUoT2UoKSwxKTt2YXIgbWN0PXR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiJiZ3aW5kb3cuY3VzdG9tRWxlbWVudHMhPW51bGwmJndpbmRvdy5jdXN0b21FbGVtZW50cy5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrIT09dm9pZCAwO3ZhciBvMT0oZSx0LHI9bnVsbCk9Pntmb3IoO3QhPT1yOyl7bGV0IG49dC5uZXh0U2libGluZztlLnJlbW92ZUNoaWxkKHQpLHQ9bn19O3ZhciBZYz1ge3tsaXQtJHtTdHJpbmcoTWF0aC5yYW5kb20oKSkuc2xpY2UoMil9fX1gLGdjdD1gPCEtLSR7WWN9LS0+YCx5Y2U9bmV3IFJlZ0V4cChgJHtZY318JHtnY3R9YCksZDM9IiRsaXQkIixhMT1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIpe3RoaXMucGFydHM9W10sdGhpcy5lbGVtZW50PXI7bGV0IG49W10saT1bXSxvPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoci5jb250ZW50LDEzMyxudWxsLCExKSxhPTAscz0tMSxsPTAse3N0cmluZ3M6Yyx2YWx1ZXM6e2xlbmd0aDp1fX09dDtmb3IoO2w8dTspe2xldCBoPW8ubmV4dE5vZGUoKTtpZihoPT09bnVsbCl7by5jdXJyZW50Tm9kZT1pLnBvcCgpO2NvbnRpbnVlfWlmKHMrKyxoLm5vZGVUeXBlPT09MSl7aWYoaC5oYXNBdHRyaWJ1dGVzKCkpe2xldCBmPWguYXR0cmlidXRlcyx7bGVuZ3RoOnB9PWYsZD0wO2ZvcihsZXQgZz0wO2c8cDtnKyspdmNlKGZbZ10ubmFtZSxkMykmJmQrKztmb3IoO2QtLSA+MDspe2xldCBnPWNbbF0sXz1ISC5leGVjKGcpWzJdLHk9Xy50b0xvd2VyQ2FzZSgpK2QzLHg9aC5nZXRBdHRyaWJ1dGUoeSk7aC5yZW1vdmVBdHRyaWJ1dGUoeSk7bGV0IGI9eC5zcGxpdCh5Y2UpO3RoaXMucGFydHMucHVzaCh7dHlwZToiYXR0cmlidXRlIixpbmRleDpzLG5hbWU6XyxzdHJpbmdzOmJ9KSxsKz1iLmxlbmd0aC0xfX1oLnRhZ05hbWU9PT0iVEVNUExBVEUiJiYoaS5wdXNoKGgpLG8uY3VycmVudE5vZGU9aC5jb250ZW50KX1lbHNlIGlmKGgubm9kZVR5cGU9PT0zKXtsZXQgZj1oLmRhdGE7aWYoZi5pbmRleE9mKFljKT49MCl7bGV0IHA9aC5wYXJlbnROb2RlLGQ9Zi5zcGxpdCh5Y2UpLGc9ZC5sZW5ndGgtMTtmb3IobGV0IF89MDtfPGc7XysrKXtsZXQgeSx4PWRbX107aWYoeD09PSIiKXk9amYoKTtlbHNle2xldCBiPUhILmV4ZWMoeCk7YiE9PW51bGwmJnZjZShiWzJdLGQzKSYmKHg9eC5zbGljZSgwLGIuaW5kZXgpK2JbMV0rYlsyXS5zbGljZSgwLC1kMy5sZW5ndGgpK2JbM10pLHk9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoeCl9cC5pbnNlcnRCZWZvcmUoeSxoKSx0aGlzLnBhcnRzLnB1c2goe3R5cGU6Im5vZGUiLGluZGV4Oisrc30pfWRbZ109PT0iIj8ocC5pbnNlcnRCZWZvcmUoamYoKSxoKSxuLnB1c2goaCkpOmguZGF0YT1kW2ddLGwrPWd9fWVsc2UgaWYoaC5ub2RlVHlwZT09PTgpaWYoaC5kYXRhPT09WWMpe2xldCBmPWgucGFyZW50Tm9kZTsoaC5wcmV2aW91c1NpYmxpbmc9PT1udWxsfHxzPT09YSkmJihzKyssZi5pbnNlcnRCZWZvcmUoamYoKSxoKSksYT1zLHRoaXMucGFydHMucHVzaCh7dHlwZToibm9kZSIsaW5kZXg6c30pLGgubmV4dFNpYmxpbmc9PT1udWxsP2guZGF0YT0iIjoobi5wdXNoKGgpLHMtLSksbCsrfWVsc2V7bGV0IGY9LTE7Zm9yKDsoZj1oLmRhdGEuaW5kZXhPZihZYyxmKzEpKSE9PS0xOyl0aGlzLnBhcnRzLnB1c2goe3R5cGU6Im5vZGUiLGluZGV4Oi0xfSksbCsrfX1mb3IobGV0IGggb2YgbiloLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaCl9fSx2Y2U9KGUsdCk9PntsZXQgcj1lLmxlbmd0aC10Lmxlbmd0aDtyZXR1cm4gcj49MCYmZS5zbGljZShyKT09PXR9LHZQPWU9PmUuaW5kZXghPT0tMSxqZj0oKT0+ZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIiksSEg9LyhbIFx4MDlceDBhXHgwY1x4MGRdKShbXlwwLVx4MUZceDdGLVx4OUYgIic+PS9dKykoWyBceDA5XHgwYVx4MGNceDBkXSo9WyBceDA5XHgwYVx4MGNceDBkXSooPzpbXiBceDA5XHgwYVx4MGNceDBkIidgPD49XSp8IlteIl0qfCdbXiddKikpJC87dmFyIF9jdD0xMzM7ZnVuY3Rpb24geWN0KGUsdCl7bGV0e2VsZW1lbnQ6e2NvbnRlbnQ6cn0scGFydHM6bn09ZSxpPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocixfY3QsbnVsbCwhMSksbz14UChuKSxhPW5bb10scz0tMSxsPTAsYz1bXSx1PW51bGw7Zm9yKDtpLm5leHROb2RlKCk7KXtzKys7bGV0IGg9aS5jdXJyZW50Tm9kZTtmb3IoaC5wcmV2aW91c1NpYmxpbmc9PT11JiYodT1udWxsKSx0LmhhcyhoKSYmKGMucHVzaChoKSx1PT09bnVsbCYmKHU9aCkpLHUhPT1udWxsJiZsKys7YSE9PXZvaWQgMCYmYS5pbmRleD09PXM7KWEuaW5kZXg9dSE9PW51bGw/LTE6YS5pbmRleC1sLG89eFAobixvKSxhPW5bb119Yy5mb3JFYWNoKGg9PmgucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChoKSl9dmFyIEx1cj1lPT57bGV0IHQ9ZS5ub2RlVHlwZT09PTExPzA6MSxyPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZSxfY3QsbnVsbCwhMSk7Zm9yKDtyLm5leHROb2RlKCk7KXQrKztyZXR1cm4gdH0seFA9KGUsdD0tMSk9Pntmb3IobGV0IHI9dCsxO3I8ZS5sZW5ndGg7cisrKXtsZXQgbj1lW3JdO2lmKHZQKG4pKXJldHVybiByfXJldHVybi0xfTtmdW5jdGlvbiB4Y2UoZSx0LHI9bnVsbCl7bGV0e2VsZW1lbnQ6e2NvbnRlbnQ6bn0scGFydHM6aX09ZTtpZihyPT1udWxsKXtuLmFwcGVuZENoaWxkKHQpO3JldHVybn1sZXQgbz1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKG4sX2N0LG51bGwsITEpLGE9eFAoaSkscz0wLGw9LTE7Zm9yKDtvLm5leHROb2RlKCk7KWZvcihsKyssby5jdXJyZW50Tm9kZT09PXImJihzPUx1cih0KSxyLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQscikpO2EhPT0tMSYmaVthXS5pbmRleD09PWw7KXtpZihzPjApe2Zvcig7YSE9PS0xOylpW2FdLmluZGV4Kz1zLGE9eFAoaSxhKTtyZXR1cm59YT14UChpLGEpfX12YXIga3VyPW5ldyBXZWFrTWFwO3ZhciBzMT1lPT50eXBlb2YgZT09ImZ1bmN0aW9uIiYma3VyLmhhcyhlKTt2YXIga2w9e30sVkg9e307dmFyIFMwPWNsYXNze2NvbnN0cnVjdG9yKHQscixuKXt0aGlzLl9fcGFydHM9W10sdGhpcy50ZW1wbGF0ZT10LHRoaXMucHJvY2Vzc29yPXIsdGhpcy5vcHRpb25zPW59dXBkYXRlKHQpe2xldCByPTA7Zm9yKGxldCBuIG9mIHRoaXMuX19wYXJ0cyluIT09dm9pZCAwJiZuLnNldFZhbHVlKHRbcl0pLHIrKztmb3IobGV0IG4gb2YgdGhpcy5fX3BhcnRzKW4hPT12b2lkIDAmJm4uY29tbWl0KCl9X2Nsb25lKCl7bGV0IHQ9bWN0P3RoaXMudGVtcGxhdGUuZWxlbWVudC5jb250ZW50LmNsb25lTm9kZSghMCk6ZG9jdW1lbnQuaW1wb3J0Tm9kZSh0aGlzLnRlbXBsYXRlLmVsZW1lbnQuY29udGVudCwhMCkscj1bXSxuPXRoaXMudGVtcGxhdGUucGFydHMsaT1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHQsMTMzLG51bGwsITEpLG89MCxhPTAscyxsPWkubmV4dE5vZGUoKTtmb3IoO288bi5sZW5ndGg7KXtpZihzPW5bb10sIXZQKHMpKXt0aGlzLl9fcGFydHMucHVzaCh2b2lkIDApLG8rKztjb250aW51ZX1mb3IoO2E8cy5pbmRleDspYSsrLGwubm9kZU5hbWU9PT0iVEVNUExBVEUiJiYoci5wdXNoKGwpLGkuY3VycmVudE5vZGU9bC5jb250ZW50KSwobD1pLm5leHROb2RlKCkpPT09bnVsbCYmKGkuY3VycmVudE5vZGU9ci5wb3AoKSxsPWkubmV4dE5vZGUoKSk7aWYocy50eXBlPT09Im5vZGUiKXtsZXQgYz10aGlzLnByb2Nlc3Nvci5oYW5kbGVUZXh0RXhwcmVzc2lvbih0aGlzLm9wdGlvbnMpO2MuaW5zZXJ0QWZ0ZXJOb2RlKGwucHJldmlvdXNTaWJsaW5nKSx0aGlzLl9fcGFydHMucHVzaChjKX1lbHNlIHRoaXMuX19wYXJ0cy5wdXNoKC4uLnRoaXMucHJvY2Vzc29yLmhhbmRsZUF0dHJpYnV0ZUV4cHJlc3Npb25zKGwscy5uYW1lLHMuc3RyaW5ncyx0aGlzLm9wdGlvbnMpKTtvKyt9cmV0dXJuIG1jdCYmKGRvY3VtZW50LmFkb3B0Tm9kZSh0KSxjdXN0b21FbGVtZW50cy51cGdyYWRlKHQpKSx0fX07dmFyIGJjZT13aW5kb3cudHJ1c3RlZFR5cGVzJiZ0cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5KCJsaXQtaHRtbCIse2NyZWF0ZUhUTUw6ZT0+ZX0pLE51cj1gICR7WWN9IGAsTTA9Y2xhc3N7Y29uc3RydWN0b3IodCxyLG4saSl7dGhpcy5zdHJpbmdzPXQsdGhpcy52YWx1ZXM9cix0aGlzLnR5cGU9bix0aGlzLnByb2Nlc3Nvcj1pfWdldEhUTUwoKXtsZXQgdD10aGlzLnN0cmluZ3MubGVuZ3RoLTEscj0iIixuPSExO2ZvcihsZXQgaT0wO2k8dDtpKyspe2xldCBvPXRoaXMuc3RyaW5nc1tpXSxhPW8ubGFzdEluZGV4T2YoIjwhLS0iKTtuPShhPi0xfHxuKSYmby5pbmRleE9mKCItLT4iLGErMSk9PT0tMTtsZXQgcz1ISC5leGVjKG8pO3M9PT1udWxsP3IrPW8rKG4/TnVyOmdjdCk6cis9by5zdWJzdHIoMCxzLmluZGV4KStzWzFdK3NbMl0rZDMrc1szXStZY31yZXR1cm4gcis9dGhpcy5zdHJpbmdzW3RdLHJ9Z2V0VGVtcGxhdGVFbGVtZW50KCl7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKSxyPXRoaXMuZ2V0SFRNTCgpO3JldHVybiBiY2UhPT12b2lkIDAmJihyPWJjZS5jcmVhdGVIVE1MKHIpKSx0LmlubmVySFRNTD1yLHR9fTt2YXIgR0g9ZT0+ZT09PW51bGx8fCEodHlwZW9mIGU9PSJvYmplY3QifHx0eXBlb2YgZT09ImZ1bmN0aW9uIiksVUg9ZT0+QXJyYXkuaXNBcnJheShlKXx8ISEoZSYmZVtTeW1ib2wuaXRlcmF0b3JdKSxtMz1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIsbil7dGhpcy5kaXJ0eT0hMCx0aGlzLmVsZW1lbnQ9dCx0aGlzLm5hbWU9cix0aGlzLnN0cmluZ3M9bix0aGlzLnBhcnRzPVtdO2ZvcihsZXQgaT0wO2k8bi5sZW5ndGgtMTtpKyspdGhpcy5wYXJ0c1tpXT10aGlzLl9jcmVhdGVQYXJ0KCl9X2NyZWF0ZVBhcnQoKXtyZXR1cm4gbmV3IGJQKHRoaXMpfV9nZXRWYWx1ZSgpe2xldCB0PXRoaXMuc3RyaW5ncyxyPXQubGVuZ3RoLTEsbj10aGlzLnBhcnRzO2lmKHI9PT0xJiZ0WzBdPT09IiImJnRbMV09PT0iIil7bGV0IG89blswXS52YWx1ZTtpZih0eXBlb2Ygbz09InN5bWJvbCIpcmV0dXJuIFN0cmluZyhvKTtpZih0eXBlb2Ygbz09InN0cmluZyJ8fCFVSChvKSlyZXR1cm4gb31sZXQgaT0iIjtmb3IobGV0IG89MDtvPHI7bysrKXtpKz10W29dO2xldCBhPW5bb107aWYoYSE9PXZvaWQgMCl7bGV0IHM9YS52YWx1ZTtpZihHSChzKXx8IVVIKHMpKWkrPXR5cGVvZiBzPT0ic3RyaW5nIj9zOlN0cmluZyhzKTtlbHNlIGZvcihsZXQgbCBvZiBzKWkrPXR5cGVvZiBsPT0ic3RyaW5nIj9sOlN0cmluZyhsKX19cmV0dXJuIGkrPXRbcl0saX1jb21taXQoKXt0aGlzLmRpcnR5JiYodGhpcy5kaXJ0eT0hMSx0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKHRoaXMubmFtZSx0aGlzLl9nZXRWYWx1ZSgpKSl9fSxiUD1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnZhbHVlPXZvaWQgMCx0aGlzLmNvbW1pdHRlcj10fXNldFZhbHVlKHQpe3QhPT1rbCYmKCFHSCh0KXx8dCE9PXRoaXMudmFsdWUpJiYodGhpcy52YWx1ZT10LHMxKHQpfHwodGhpcy5jb21taXR0ZXIuZGlydHk9ITApKX1jb21taXQoKXtmb3IoO3MxKHRoaXMudmFsdWUpOyl7bGV0IHQ9dGhpcy52YWx1ZTt0aGlzLnZhbHVlPWtsLHQodGhpcyl9dGhpcy52YWx1ZSE9PWtsJiZ0aGlzLmNvbW1pdHRlci5jb21taXQoKX19LEhkPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMudmFsdWU9dm9pZCAwLHRoaXMuX19wZW5kaW5nVmFsdWU9dm9pZCAwLHRoaXMub3B0aW9ucz10fWFwcGVuZEludG8odCl7dGhpcy5zdGFydE5vZGU9dC5hcHBlbmRDaGlsZChqZigpKSx0aGlzLmVuZE5vZGU9dC5hcHBlbmRDaGlsZChqZigpKX1pbnNlcnRBZnRlck5vZGUodCl7dGhpcy5zdGFydE5vZGU9dCx0aGlzLmVuZE5vZGU9dC5uZXh0U2libGluZ31hcHBlbmRJbnRvUGFydCh0KXt0Ll9faW5zZXJ0KHRoaXMuc3RhcnROb2RlPWpmKCkpLHQuX19pbnNlcnQodGhpcy5lbmROb2RlPWpmKCkpfWluc2VydEFmdGVyUGFydCh0KXt0Ll9faW5zZXJ0KHRoaXMuc3RhcnROb2RlPWpmKCkpLHRoaXMuZW5kTm9kZT10LmVuZE5vZGUsdC5lbmROb2RlPXRoaXMuc3RhcnROb2RlfXNldFZhbHVlKHQpe3RoaXMuX19wZW5kaW5nVmFsdWU9dH1jb21taXQoKXtpZih0aGlzLnN0YXJ0Tm9kZS5wYXJlbnROb2RlPT09bnVsbClyZXR1cm47Zm9yKDtzMSh0aGlzLl9fcGVuZGluZ1ZhbHVlKTspe2xldCByPXRoaXMuX19wZW5kaW5nVmFsdWU7dGhpcy5fX3BlbmRpbmdWYWx1ZT1rbCxyKHRoaXMpfWxldCB0PXRoaXMuX19wZW5kaW5nVmFsdWU7dCE9PWtsJiYoR0godCk/dCE9PXRoaXMudmFsdWUmJnRoaXMuX19jb21taXRUZXh0KHQpOnQgaW5zdGFuY2VvZiBNMD90aGlzLl9fY29tbWl0VGVtcGxhdGVSZXN1bHQodCk6dCBpbnN0YW5jZW9mIE5vZGU/dGhpcy5fX2NvbW1pdE5vZGUodCk6VUgodCk/dGhpcy5fX2NvbW1pdEl0ZXJhYmxlKHQpOnQ9PT1WSD8odGhpcy52YWx1ZT1WSCx0aGlzLmNsZWFyKCkpOnRoaXMuX19jb21taXRUZXh0KHQpKX1fX2luc2VydCh0KXt0aGlzLmVuZE5vZGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodCx0aGlzLmVuZE5vZGUpfV9fY29tbWl0Tm9kZSh0KXt0aGlzLnZhbHVlIT09dCYmKHRoaXMuY2xlYXIoKSx0aGlzLl9faW5zZXJ0KHQpLHRoaXMudmFsdWU9dCl9X19jb21taXRUZXh0KHQpe2xldCByPXRoaXMuc3RhcnROb2RlLm5leHRTaWJsaW5nO3Q9dD09bnVsbD8iIjp0O2xldCBuPXR5cGVvZiB0PT0ic3RyaW5nIj90OlN0cmluZyh0KTtyPT09dGhpcy5lbmROb2RlLnByZXZpb3VzU2libGluZyYmci5ub2RlVHlwZT09PTM/ci5kYXRhPW46dGhpcy5fX2NvbW1pdE5vZGUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobikpLHRoaXMudmFsdWU9dH1fX2NvbW1pdFRlbXBsYXRlUmVzdWx0KHQpe2xldCByPXRoaXMub3B0aW9ucy50ZW1wbGF0ZUZhY3RvcnkodCk7aWYodGhpcy52YWx1ZSBpbnN0YW5jZW9mIFMwJiZ0aGlzLnZhbHVlLnRlbXBsYXRlPT09cil0aGlzLnZhbHVlLnVwZGF0ZSh0LnZhbHVlcyk7ZWxzZXtsZXQgbj1uZXcgUzAocix0LnByb2Nlc3Nvcix0aGlzLm9wdGlvbnMpLGk9bi5fY2xvbmUoKTtuLnVwZGF0ZSh0LnZhbHVlcyksdGhpcy5fX2NvbW1pdE5vZGUoaSksdGhpcy52YWx1ZT1ufX1fX2NvbW1pdEl0ZXJhYmxlKHQpe0FycmF5LmlzQXJyYXkodGhpcy52YWx1ZSl8fCh0aGlzLnZhbHVlPVtdLHRoaXMuY2xlYXIoKSk7bGV0IHI9dGhpcy52YWx1ZSxuPTAsaTtmb3IobGV0IG8gb2YgdClpPXJbbl0saT09PXZvaWQgMCYmKGk9bmV3IEhkKHRoaXMub3B0aW9ucyksci5wdXNoKGkpLG49PT0wP2kuYXBwZW5kSW50b1BhcnQodGhpcyk6aS5pbnNlcnRBZnRlclBhcnQocltuLTFdKSksaS5zZXRWYWx1ZShvKSxpLmNvbW1pdCgpLG4rKztuPHIubGVuZ3RoJiYoci5sZW5ndGg9bix0aGlzLmNsZWFyKGkmJmkuZW5kTm9kZSkpfWNsZWFyKHQ9dGhpcy5zdGFydE5vZGUpe28xKHRoaXMuc3RhcnROb2RlLnBhcmVudE5vZGUsdC5uZXh0U2libGluZyx0aGlzLmVuZE5vZGUpfX0sd1A9Y2xhc3N7Y29uc3RydWN0b3IodCxyLG4pe2lmKHRoaXMudmFsdWU9dm9pZCAwLHRoaXMuX19wZW5kaW5nVmFsdWU9dm9pZCAwLG4ubGVuZ3RoIT09Mnx8blswXSE9PSIifHxuWzFdIT09IiIpdGhyb3cgbmV3IEVycm9yKCJCb29sZWFuIGF0dHJpYnV0ZXMgY2FuIG9ubHkgY29udGFpbiBhIHNpbmdsZSBleHByZXNzaW9uIik7dGhpcy5lbGVtZW50PXQsdGhpcy5uYW1lPXIsdGhpcy5zdHJpbmdzPW59c2V0VmFsdWUodCl7dGhpcy5fX3BlbmRpbmdWYWx1ZT10fWNvbW1pdCgpe2Zvcig7czEodGhpcy5fX3BlbmRpbmdWYWx1ZSk7KXtsZXQgcj10aGlzLl9fcGVuZGluZ1ZhbHVlO3RoaXMuX19wZW5kaW5nVmFsdWU9a2wscih0aGlzKX1pZih0aGlzLl9fcGVuZGluZ1ZhbHVlPT09a2wpcmV0dXJuO2xldCB0PSEhdGhpcy5fX3BlbmRpbmdWYWx1ZTt0aGlzLnZhbHVlIT09dCYmKHQ/dGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSh0aGlzLm5hbWUsIiIpOnRoaXMuZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUodGhpcy5uYW1lKSx0aGlzLnZhbHVlPXQpLHRoaXMuX19wZW5kaW5nVmFsdWU9a2x9fSxTUD1jbGFzcyBleHRlbmRzIG0ze2NvbnN0cnVjdG9yKHQscixuKXtzdXBlcih0LHIsbiksdGhpcy5zaW5nbGU9bi5sZW5ndGg9PT0yJiZuWzBdPT09IiImJm5bMV09PT0iIn1fY3JlYXRlUGFydCgpe3JldHVybiBuZXcgcUgodGhpcyl9X2dldFZhbHVlKCl7cmV0dXJuIHRoaXMuc2luZ2xlP3RoaXMucGFydHNbMF0udmFsdWU6c3VwZXIuX2dldFZhbHVlKCl9Y29tbWl0KCl7dGhpcy5kaXJ0eSYmKHRoaXMuZGlydHk9ITEsdGhpcy5lbGVtZW50W3RoaXMubmFtZV09dGhpcy5fZ2V0VmFsdWUoKSl9fSxxSD1jbGFzcyBleHRlbmRzIGJQe30sd2NlPSExOygoKT0+e3RyeXtsZXQgZT17Z2V0IGNhcHR1cmUoKXtyZXR1cm4gd2NlPSEwLCExfX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLGUsZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLGUsZSl9Y2F0Y2goZSl7fX0pKCk7dmFyIE1QPWNsYXNze2NvbnN0cnVjdG9yKHQscixuKXt0aGlzLnZhbHVlPXZvaWQgMCx0aGlzLl9fcGVuZGluZ1ZhbHVlPXZvaWQgMCx0aGlzLmVsZW1lbnQ9dCx0aGlzLmV2ZW50TmFtZT1yLHRoaXMuZXZlbnRDb250ZXh0PW4sdGhpcy5fX2JvdW5kSGFuZGxlRXZlbnQ9aT0+dGhpcy5oYW5kbGVFdmVudChpKX1zZXRWYWx1ZSh0KXt0aGlzLl9fcGVuZGluZ1ZhbHVlPXR9Y29tbWl0KCl7Zm9yKDtzMSh0aGlzLl9fcGVuZGluZ1ZhbHVlKTspe2xldCBvPXRoaXMuX19wZW5kaW5nVmFsdWU7dGhpcy5fX3BlbmRpbmdWYWx1ZT1rbCxvKHRoaXMpfWlmKHRoaXMuX19wZW5kaW5nVmFsdWU9PT1rbClyZXR1cm47bGV0IHQ9dGhpcy5fX3BlbmRpbmdWYWx1ZSxyPXRoaXMudmFsdWUsbj10PT1udWxsfHxyIT1udWxsJiYodC5jYXB0dXJlIT09ci5jYXB0dXJlfHx0Lm9uY2UhPT1yLm9uY2V8fHQucGFzc2l2ZSE9PXIucGFzc2l2ZSksaT10IT1udWxsJiYocj09bnVsbHx8bik7biYmdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5ldmVudE5hbWUsdGhpcy5fX2JvdW5kSGFuZGxlRXZlbnQsdGhpcy5fX29wdGlvbnMpLGkmJih0aGlzLl9fb3B0aW9ucz1EdXIodCksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5ldmVudE5hbWUsdGhpcy5fX2JvdW5kSGFuZGxlRXZlbnQsdGhpcy5fX29wdGlvbnMpKSx0aGlzLnZhbHVlPXQsdGhpcy5fX3BlbmRpbmdWYWx1ZT1rbH1oYW5kbGVFdmVudCh0KXt0eXBlb2YgdGhpcy52YWx1ZT09ImZ1bmN0aW9uIj90aGlzLnZhbHVlLmNhbGwodGhpcy5ldmVudENvbnRleHR8fHRoaXMuZWxlbWVudCx0KTp0aGlzLnZhbHVlLmhhbmRsZUV2ZW50KHQpfX0sRHVyPWU9PmUmJih3Y2U/e2NhcHR1cmU6ZS5jYXB0dXJlLHBhc3NpdmU6ZS5wYXNzaXZlLG9uY2U6ZS5vbmNlfTplLmNhcHR1cmUpO2Z1bmN0aW9uIHZjdChlKXtsZXQgdD1sMS5nZXQoZS50eXBlKTt0PT09dm9pZCAwJiYodD17c3RyaW5nc0FycmF5Om5ldyBXZWFrTWFwLGtleVN0cmluZzpuZXcgTWFwfSxsMS5zZXQoZS50eXBlLHQpKTtsZXQgcj10LnN0cmluZ3NBcnJheS5nZXQoZS5zdHJpbmdzKTtpZihyIT09dm9pZCAwKXJldHVybiByO2xldCBuPWUuc3RyaW5ncy5qb2luKFljKTtyZXR1cm4gcj10LmtleVN0cmluZy5nZXQobikscj09PXZvaWQgMCYmKHI9bmV3IGExKGUsZS5nZXRUZW1wbGF0ZUVsZW1lbnQoKSksdC5rZXlTdHJpbmcuc2V0KG4scikpLHQuc3RyaW5nc0FycmF5LnNldChlLnN0cmluZ3Mscikscn12YXIgbDE9bmV3IE1hcDt2YXIgRTA9bmV3IFdlYWtNYXAseGN0PShlLHQscik9PntsZXQgbj1FMC5nZXQodCk7bj09PXZvaWQgMCYmKG8xKHQsdC5maXJzdENoaWxkKSxFMC5zZXQodCxuPW5ldyBIZChPYmplY3QuYXNzaWduKHt0ZW1wbGF0ZUZhY3Rvcnk6dmN0fSxyKSkpLG4uYXBwZW5kSW50byh0KSksbi5zZXRWYWx1ZShlKSxuLmNvbW1pdCgpfTt2YXIgV0g9Y2xhc3N7aGFuZGxlQXR0cmlidXRlRXhwcmVzc2lvbnModCxyLG4saSl7bGV0IG89clswXTtyZXR1cm4gbz09PSIuIj9uZXcgU1AodCxyLnNsaWNlKDEpLG4pLnBhcnRzOm89PT0iQCI/W25ldyBNUCh0LHIuc2xpY2UoMSksaS5ldmVudENvbnRleHQpXTpvPT09Ij8iP1tuZXcgd1AodCxyLnNsaWNlKDEpLG4pXTpuZXcgbTModCxyLG4pLnBhcnRzfWhhbmRsZVRleHRFeHByZXNzaW9uKHQpe3JldHVybiBuZXcgSGQodCl9fSxTY2U9bmV3IFdIO3R5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiJiYod2luZG93LmxpdEh0bWxWZXJzaW9uc3x8KHdpbmRvdy5saXRIdG1sVmVyc2lvbnM9W10pKS5wdXNoKCIxLjQuMSIpO3ZhciBFY2U9KGUsdCk9PmAke2V9LS0ke3R9YCxZSD0hMDt0eXBlb2Ygd2luZG93LlNoYWR5Q1NTPT0idW5kZWZpbmVkIj9ZSD0hMTp0eXBlb2Ygd2luZG93LlNoYWR5Q1NTLnByZXBhcmVUZW1wbGF0ZURvbT09InVuZGVmaW5lZCImJihjb25zb2xlLndhcm4oIkluY29tcGF0aWJsZSBTaGFkeUNTUyB2ZXJzaW9uIGRldGVjdGVkLiBQbGVhc2UgdXBkYXRlIHRvIGF0IGxlYXN0IEB3ZWJjb21wb25lbnRzL3dlYmNvbXBvbmVudHNqc0AyLjAuMiBhbmQgQHdlYmNvbXBvbmVudHMvc2hhZHljc3NAMS4zLjEuIiksWUg9ITEpO3ZhciBGdXI9ZT0+dD0+e2xldCByPUVjZSh0LnR5cGUsZSksbj1sMS5nZXQocik7bj09PXZvaWQgMCYmKG49e3N0cmluZ3NBcnJheTpuZXcgV2Vha01hcCxrZXlTdHJpbmc6bmV3IE1hcH0sbDEuc2V0KHIsbikpO2xldCBpPW4uc3RyaW5nc0FycmF5LmdldCh0LnN0cmluZ3MpO2lmKGkhPT12b2lkIDApcmV0dXJuIGk7bGV0IG89dC5zdHJpbmdzLmpvaW4oWWMpO2lmKGk9bi5rZXlTdHJpbmcuZ2V0KG8pLGk9PT12b2lkIDApe2xldCBhPXQuZ2V0VGVtcGxhdGVFbGVtZW50KCk7WUgmJndpbmRvdy5TaGFkeUNTUy5wcmVwYXJlVGVtcGxhdGVEb20oYSxlKSxpPW5ldyBhMSh0LGEpLG4ua2V5U3RyaW5nLnNldChvLGkpfXJldHVybiBuLnN0cmluZ3NBcnJheS5zZXQodC5zdHJpbmdzLGkpLGl9LEJ1cj1bImh0bWwiLCJzdmciXSxIdXI9ZT0+e0J1ci5mb3JFYWNoKHQ9PntsZXQgcj1sMS5nZXQoRWNlKHQsZSkpO3IhPT12b2lkIDAmJnIua2V5U3RyaW5nLmZvckVhY2gobj0+e2xldHtlbGVtZW50Ontjb250ZW50Oml9fT1uLG89bmV3IFNldDtBcnJheS5mcm9tKGkucXVlcnlTZWxlY3RvckFsbCgic3R5bGUiKSkuZm9yRWFjaChhPT57by5hZGQoYSl9KSx5Y3QobixvKX0pfSl9LFRjZT1uZXcgU2V0LFZ1cj0oZSx0LHIpPT57VGNlLmFkZChlKTtsZXQgbj1yP3IuZWxlbWVudDpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpLGk9dC5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZSIpLHtsZW5ndGg6b309aTtpZihvPT09MCl7d2luZG93LlNoYWR5Q1NTLnByZXBhcmVUZW1wbGF0ZVN0eWxlcyhuLGUpO3JldHVybn1sZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2ZvcihsZXQgYz0wO2M8bztjKyspe2xldCB1PWlbY107dS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHUpLGEudGV4dENvbnRlbnQrPXUudGV4dENvbnRlbnR9SHVyKGUpO2xldCBzPW4uY29udGVudDtyP3hjZShyLGEscy5maXJzdENoaWxkKTpzLmluc2VydEJlZm9yZShhLHMuZmlyc3RDaGlsZCksd2luZG93LlNoYWR5Q1NTLnByZXBhcmVUZW1wbGF0ZVN0eWxlcyhuLGUpO2xldCBsPXMucXVlcnlTZWxlY3Rvcigic3R5bGUiKTtpZih3aW5kb3cuU2hhZHlDU1MubmF0aXZlU2hhZG93JiZsIT09bnVsbCl0Lmluc2VydEJlZm9yZShsLmNsb25lTm9kZSghMCksdC5maXJzdENoaWxkKTtlbHNlIGlmKHIpe3MuaW5zZXJ0QmVmb3JlKGEscy5maXJzdENoaWxkKTtsZXQgYz1uZXcgU2V0O2MuYWRkKGEpLHljdChyLGMpfX0sQ2NlPShlLHQscik9PntpZighcnx8dHlwZW9mIHIhPSJvYmplY3QifHwhci5zY29wZU5hbWUpdGhyb3cgbmV3IEVycm9yKCJUaGUgYHNjb3BlTmFtZWAgb3B0aW9uIGlzIHJlcXVpcmVkLiIpO2xldCBuPXIuc2NvcGVOYW1lLGk9RTAuaGFzKHQpLG89WUgmJnQubm9kZVR5cGU9PT0xMSYmISF0Lmhvc3QsYT1vJiYhVGNlLmhhcyhuKSxzPWE/ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOnQ7aWYoeGN0KGUscyxPYmplY3QuYXNzaWduKHt0ZW1wbGF0ZUZhY3Rvcnk6RnVyKG4pfSxyKSksYSl7bGV0IGw9RTAuZ2V0KHMpO0UwLmRlbGV0ZShzKTtsZXQgYz1sLnZhbHVlIGluc3RhbmNlb2YgUzA/bC52YWx1ZS50ZW1wbGF0ZTp2b2lkIDA7VnVyKG4scyxjKSxvMSh0LHQuZmlyc3RDaGlsZCksdC5hcHBlbmRDaGlsZChzKSxFMC5zZXQodCxsKX0haSYmbyYmd2luZG93LlNoYWR5Q1NTLnN0eWxlRWxlbWVudCh0Lmhvc3QpfTt2YXIgQWNlO3dpbmRvdy5KU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5PShlLHQpPT5lO3ZhciBUY3Q9e3RvQXR0cmlidXRlKGUsdCl7c3dpdGNoKHQpe2Nhc2UgQm9vbGVhbjpyZXR1cm4gZT8iIjpudWxsO2Nhc2UgT2JqZWN0OmNhc2UgQXJyYXk6cmV0dXJuIGU9PW51bGw/ZTpKU09OLnN0cmluZ2lmeShlKX1yZXR1cm4gZX0sZnJvbUF0dHJpYnV0ZShlLHQpe3N3aXRjaCh0KXtjYXNlIEJvb2xlYW46cmV0dXJuIGUhPT1udWxsO2Nhc2UgTnVtYmVyOnJldHVybiBlPT09bnVsbD9udWxsOk51bWJlcihlKTtjYXNlIE9iamVjdDpjYXNlIEFycmF5OnJldHVybiBKU09OLnBhcnNlKGUpfXJldHVybiBlfX0sUGNlPShlLHQpPT50IT09ZSYmKHQ9PT10fHxlPT09ZSksYmN0PXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOlRjdCxyZWZsZWN0OiExLGhhc0NoYW5nZWQ6UGNlfSx3Y3Q9MSxTY3Q9MTw8MixNY3Q9MTw8MyxFY3Q9MTw8NCxDY3Q9ImZpbmFsaXplZCIsZzM9Y2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5pbml0aWFsaXplKCl9c3RhdGljIGdldCBvYnNlcnZlZEF0dHJpYnV0ZXMoKXt0aGlzLmZpbmFsaXplKCk7bGV0IHQ9W107cmV0dXJuIHRoaXMuX2NsYXNzUHJvcGVydGllcy5mb3JFYWNoKChyLG4pPT57bGV0IGk9dGhpcy5fYXR0cmlidXRlTmFtZUZvclByb3BlcnR5KG4scik7aSE9PXZvaWQgMCYmKHRoaXMuX2F0dHJpYnV0ZVRvUHJvcGVydHlNYXAuc2V0KGksbiksdC5wdXNoKGkpKX0pLHR9c3RhdGljIF9lbnN1cmVDbGFzc1Byb3BlcnRpZXMoKXtpZighdGhpcy5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfY2xhc3NQcm9wZXJ0aWVzIix0aGlzKSkpe3RoaXMuX2NsYXNzUHJvcGVydGllcz1uZXcgTWFwO2xldCB0PU9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fY2xhc3NQcm9wZXJ0aWVzO3QhPT12b2lkIDAmJnQuZm9yRWFjaCgocixuKT0+dGhpcy5fY2xhc3NQcm9wZXJ0aWVzLnNldChuLHIpKX19c3RhdGljIGNyZWF0ZVByb3BlcnR5KHQscj1iY3Qpe2lmKHRoaXMuX2Vuc3VyZUNsYXNzUHJvcGVydGllcygpLHRoaXMuX2NsYXNzUHJvcGVydGllcy5zZXQodCxyKSxyLm5vQWNjZXNzb3J8fHRoaXMucHJvdG90eXBlLmhhc093blByb3BlcnR5KHQpKXJldHVybjtsZXQgbj10eXBlb2YgdD09InN5bWJvbCI/U3ltYm9sKCk6YF9fJHt0fWAsaT10aGlzLmdldFByb3BlcnR5RGVzY3JpcHRvcih0LG4scik7aSE9PXZvaWQgMCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMucHJvdG90eXBlLHQsaSl9c3RhdGljIGdldFByb3BlcnR5RGVzY3JpcHRvcih0LHIsbil7cmV0dXJue2dldCgpe3JldHVybiB0aGlzW3JdfSxzZXQoaSl7bGV0IG89dGhpc1t0XTt0aGlzW3JdPWksdGhpcy5yZXF1ZXN0VXBkYXRlSW50ZXJuYWwodCxvLG4pfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH19c3RhdGljIGdldFByb3BlcnR5T3B0aW9ucyh0KXtyZXR1cm4gdGhpcy5fY2xhc3NQcm9wZXJ0aWVzJiZ0aGlzLl9jbGFzc1Byb3BlcnRpZXMuZ2V0KHQpfHxiY3R9c3RhdGljIGZpbmFsaXplKCl7bGV0IHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO2lmKHQuaGFzT3duUHJvcGVydHkoQ2N0KXx8dC5maW5hbGl6ZSgpLHRoaXNbQ2N0XT0hMCx0aGlzLl9lbnN1cmVDbGFzc1Byb3BlcnRpZXMoKSx0aGlzLl9hdHRyaWJ1dGVUb1Byb3BlcnR5TWFwPW5ldyBNYXAsdGhpcy5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJwcm9wZXJ0aWVzIix0aGlzKSkpe2xldCByPXRoaXMucHJvcGVydGllcyxuPVsuLi5PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhyKSwuLi50eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIj9PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHIpOltdXTtmb3IobGV0IGkgb2Ygbil0aGlzLmNyZWF0ZVByb3BlcnR5KGkscltpXSl9fXN0YXRpYyBfYXR0cmlidXRlTmFtZUZvclByb3BlcnR5KHQscil7bGV0IG49ci5hdHRyaWJ1dGU7cmV0dXJuIG49PT0hMT92b2lkIDA6dHlwZW9mIG49PSJzdHJpbmciP246dHlwZW9mIHQ9PSJzdHJpbmciP3QudG9Mb3dlckNhc2UoKTp2b2lkIDB9c3RhdGljIF92YWx1ZUhhc0NoYW5nZWQodCxyLG49UGNlKXtyZXR1cm4gbih0LHIpfXN0YXRpYyBfcHJvcGVydHlWYWx1ZUZyb21BdHRyaWJ1dGUodCxyKXtsZXQgbj1yLnR5cGUsaT1yLmNvbnZlcnRlcnx8VGN0LG89dHlwZW9mIGk9PSJmdW5jdGlvbiI/aTppLmZyb21BdHRyaWJ1dGU7cmV0dXJuIG8/byh0LG4pOnR9c3RhdGljIF9wcm9wZXJ0eVZhbHVlVG9BdHRyaWJ1dGUodCxyKXtpZihyLnJlZmxlY3Q9PT12b2lkIDApcmV0dXJuO2xldCBuPXIudHlwZSxpPXIuY29udmVydGVyO3JldHVybihpJiZpLnRvQXR0cmlidXRlfHxUY3QudG9BdHRyaWJ1dGUpKHQsbil9aW5pdGlhbGl6ZSgpe3RoaXMuX3VwZGF0ZVN0YXRlPTAsdGhpcy5fdXBkYXRlUHJvbWlzZT1uZXcgUHJvbWlzZSh0PT50aGlzLl9lbmFibGVVcGRhdGluZ1Jlc29sdmVyPXQpLHRoaXMuX2NoYW5nZWRQcm9wZXJ0aWVzPW5ldyBNYXAsdGhpcy5fc2F2ZUluc3RhbmNlUHJvcGVydGllcygpLHRoaXMucmVxdWVzdFVwZGF0ZUludGVybmFsKCl9X3NhdmVJbnN0YW5jZVByb3BlcnRpZXMoKXt0aGlzLmNvbnN0cnVjdG9yLl9jbGFzc1Byb3BlcnRpZXMuZm9yRWFjaCgodCxyKT0+e2lmKHRoaXMuaGFzT3duUHJvcGVydHkocikpe2xldCBuPXRoaXNbcl07ZGVsZXRlIHRoaXNbcl0sdGhpcy5faW5zdGFuY2VQcm9wZXJ0aWVzfHwodGhpcy5faW5zdGFuY2VQcm9wZXJ0aWVzPW5ldyBNYXApLHRoaXMuX2luc3RhbmNlUHJvcGVydGllcy5zZXQocixuKX19KX1fYXBwbHlJbnN0YW5jZVByb3BlcnRpZXMoKXt0aGlzLl9pbnN0YW5jZVByb3BlcnRpZXMuZm9yRWFjaCgodCxyKT0+dGhpc1tyXT10KSx0aGlzLl9pbnN0YW5jZVByb3BlcnRpZXM9dm9pZCAwfWNvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5lbmFibGVVcGRhdGluZygpfWVuYWJsZVVwZGF0aW5nKCl7dGhpcy5fZW5hYmxlVXBkYXRpbmdSZXNvbHZlciE9PXZvaWQgMCYmKHRoaXMuX2VuYWJsZVVwZGF0aW5nUmVzb2x2ZXIoKSx0aGlzLl9lbmFibGVVcGRhdGluZ1Jlc29sdmVyPXZvaWQgMCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQscixuKXtyIT09biYmdGhpcy5fYXR0cmlidXRlVG9Qcm9wZXJ0eSh0LG4pfV9wcm9wZXJ0eVRvQXR0cmlidXRlKHQscixuPWJjdCl7bGV0IGk9dGhpcy5jb25zdHJ1Y3RvcixvPWkuX2F0dHJpYnV0ZU5hbWVGb3JQcm9wZXJ0eSh0LG4pO2lmKG8hPT12b2lkIDApe2xldCBhPWkuX3Byb3BlcnR5VmFsdWVUb0F0dHJpYnV0ZShyLG4pO2lmKGE9PT12b2lkIDApcmV0dXJuO3RoaXMuX3VwZGF0ZVN0YXRlPXRoaXMuX3VwZGF0ZVN0YXRlfE1jdCxhPT1udWxsP3RoaXMucmVtb3ZlQXR0cmlidXRlKG8pOnRoaXMuc2V0QXR0cmlidXRlKG8sYSksdGhpcy5fdXBkYXRlU3RhdGU9dGhpcy5fdXBkYXRlU3RhdGUmfk1jdH19X2F0dHJpYnV0ZVRvUHJvcGVydHkodCxyKXtpZih0aGlzLl91cGRhdGVTdGF0ZSZNY3QpcmV0dXJuO2xldCBuPXRoaXMuY29uc3RydWN0b3IsaT1uLl9hdHRyaWJ1dGVUb1Byb3BlcnR5TWFwLmdldCh0KTtpZihpIT09dm9pZCAwKXtsZXQgbz1uLmdldFByb3BlcnR5T3B0aW9ucyhpKTt0aGlzLl91cGRhdGVTdGF0ZT10aGlzLl91cGRhdGVTdGF0ZXxFY3QsdGhpc1tpXT1uLl9wcm9wZXJ0eVZhbHVlRnJvbUF0dHJpYnV0ZShyLG8pLHRoaXMuX3VwZGF0ZVN0YXRlPXRoaXMuX3VwZGF0ZVN0YXRlJn5FY3R9fXJlcXVlc3RVcGRhdGVJbnRlcm5hbCh0LHIsbil7bGV0IGk9ITA7aWYodCE9PXZvaWQgMCl7bGV0IG89dGhpcy5jb25zdHJ1Y3RvcjtuPW58fG8uZ2V0UHJvcGVydHlPcHRpb25zKHQpLG8uX3ZhbHVlSGFzQ2hhbmdlZCh0aGlzW3RdLHIsbi5oYXNDaGFuZ2VkKT8odGhpcy5fY2hhbmdlZFByb3BlcnRpZXMuaGFzKHQpfHx0aGlzLl9jaGFuZ2VkUHJvcGVydGllcy5zZXQodCxyKSxuLnJlZmxlY3Q9PT0hMCYmISh0aGlzLl91cGRhdGVTdGF0ZSZFY3QpJiYodGhpcy5fcmVmbGVjdGluZ1Byb3BlcnRpZXM9PT12b2lkIDAmJih0aGlzLl9yZWZsZWN0aW5nUHJvcGVydGllcz1uZXcgTWFwKSx0aGlzLl9yZWZsZWN0aW5nUHJvcGVydGllcy5zZXQodCxuKSkpOmk9ITF9IXRoaXMuX2hhc1JlcXVlc3RlZFVwZGF0ZSYmaSYmKHRoaXMuX3VwZGF0ZVByb21pc2U9dGhpcy5fZW5xdWV1ZVVwZGF0ZSgpKX1yZXF1ZXN0VXBkYXRlKHQscil7cmV0dXJuIHRoaXMucmVxdWVzdFVwZGF0ZUludGVybmFsKHQsciksdGhpcy51cGRhdGVDb21wbGV0ZX1fZW5xdWV1ZVVwZGF0ZSgpe3JldHVybiBSaSh0aGlzLG51bGwsZnVuY3Rpb24qKCl7dGhpcy5fdXBkYXRlU3RhdGU9dGhpcy5fdXBkYXRlU3RhdGV8U2N0O3RyeXt5aWVsZCB0aGlzLl91cGRhdGVQcm9taXNlfWNhdGNoKHIpe31sZXQgdD10aGlzLnBlcmZvcm1VcGRhdGUoKTtyZXR1cm4gdCE9bnVsbCYmKHlpZWxkIHQpLCF0aGlzLl9oYXNSZXF1ZXN0ZWRVcGRhdGV9KX1nZXQgX2hhc1JlcXVlc3RlZFVwZGF0ZSgpe3JldHVybiB0aGlzLl91cGRhdGVTdGF0ZSZTY3R9Z2V0IGhhc1VwZGF0ZWQoKXtyZXR1cm4gdGhpcy5fdXBkYXRlU3RhdGUmd2N0fXBlcmZvcm1VcGRhdGUoKXtpZighdGhpcy5faGFzUmVxdWVzdGVkVXBkYXRlKXJldHVybjt0aGlzLl9pbnN0YW5jZVByb3BlcnRpZXMmJnRoaXMuX2FwcGx5SW5zdGFuY2VQcm9wZXJ0aWVzKCk7bGV0IHQ9ITEscj10aGlzLl9jaGFuZ2VkUHJvcGVydGllczt0cnl7dD10aGlzLnNob3VsZFVwZGF0ZShyKSx0P3RoaXMudXBkYXRlKHIpOnRoaXMuX21hcmtVcGRhdGVkKCl9Y2F0Y2gobil7dGhyb3cgdD0hMSx0aGlzLl9tYXJrVXBkYXRlZCgpLG59dCYmKHRoaXMuX3VwZGF0ZVN0YXRlJndjdHx8KHRoaXMuX3VwZGF0ZVN0YXRlPXRoaXMuX3VwZGF0ZVN0YXRlfHdjdCx0aGlzLmZpcnN0VXBkYXRlZChyKSksdGhpcy51cGRhdGVkKHIpKX1fbWFya1VwZGF0ZWQoKXt0aGlzLl9jaGFuZ2VkUHJvcGVydGllcz1uZXcgTWFwLHRoaXMuX3VwZGF0ZVN0YXRlPXRoaXMuX3VwZGF0ZVN0YXRlJn5TY3R9Z2V0IHVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuX2dldFVwZGF0ZUNvbXBsZXRlKCl9X2dldFVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuZ2V0VXBkYXRlQ29tcGxldGUoKX1nZXRVcGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLl91cGRhdGVQcm9taXNlfXNob3VsZFVwZGF0ZSh0KXtyZXR1cm4hMH11cGRhdGUodCl7dGhpcy5fcmVmbGVjdGluZ1Byb3BlcnRpZXMhPT12b2lkIDAmJnRoaXMuX3JlZmxlY3RpbmdQcm9wZXJ0aWVzLnNpemU+MCYmKHRoaXMuX3JlZmxlY3RpbmdQcm9wZXJ0aWVzLmZvckVhY2goKHIsbik9PnRoaXMuX3Byb3BlcnR5VG9BdHRyaWJ1dGUobix0aGlzW25dLHIpKSx0aGlzLl9yZWZsZWN0aW5nUHJvcGVydGllcz12b2lkIDApLHRoaXMuX21hcmtVcGRhdGVkKCl9dXBkYXRlZCh0KXt9Zmlyc3RVcGRhdGVkKHQpe319O0FjZT1DY3Q7ZzNbQWNlXT0hMDt2YXIgSWNlPUVsZW1lbnQucHJvdG90eXBlLElpaT1JY2UubXNNYXRjaGVzU2VsZWN0b3J8fEljZS53ZWJraXRNYXRjaGVzU2VsZWN0b3I7dmFyIGpIPXdpbmRvdy5TaGFkb3dSb290JiYod2luZG93LlNoYWR5Q1NTPT09dm9pZCAwfHx3aW5kb3cuU2hhZHlDU1MubmF0aXZlU2hhZG93KSYmImFkb3B0ZWRTdHlsZVNoZWV0cyJpbiBEb2N1bWVudC5wcm90b3R5cGUmJiJyZXBsYWNlImluIENTU1N0eWxlU2hlZXQucHJvdG90eXBlLEFjdD1TeW1ib2woKSxjMT1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIpe2lmKHIhPT1BY3QpdGhyb3cgbmV3IEVycm9yKCJDU1NSZXN1bHQgaXMgbm90IGNvbnN0cnVjdGFibGUuIFVzZSBgdW5zYWZlQ1NTYCBvciBgY3NzYCBpbnN0ZWFkLiIpO3RoaXMuY3NzVGV4dD10fWdldCBzdHlsZVNoZWV0KCl7cmV0dXJuIHRoaXMuX3N0eWxlU2hlZXQ9PT12b2lkIDAmJihqSD8odGhpcy5fc3R5bGVTaGVldD1uZXcgQ1NTU3R5bGVTaGVldCx0aGlzLl9zdHlsZVNoZWV0LnJlcGxhY2VTeW5jKHRoaXMuY3NzVGV4dCkpOnRoaXMuX3N0eWxlU2hlZXQ9bnVsbCksdGhpcy5fc3R5bGVTaGVldH10b1N0cmluZygpe3JldHVybiB0aGlzLmNzc1RleHR9fSxQY3Q9ZT0+bmV3IGMxKFN0cmluZyhlKSxBY3QpLFV1cj1lPT57aWYoZSBpbnN0YW5jZW9mIGMxKXJldHVybiBlLmNzc1RleHQ7aWYodHlwZW9mIGU9PSJudW1iZXIiKXJldHVybiBlO3Rocm93IG5ldyBFcnJvcihgVmFsdWUgcGFzc2VkIHRvICdjc3MnIGZ1bmN0aW9uIG11c3QgYmUgYSAnY3NzJyBmdW5jdGlvbiByZXN1bHQ6ICR7ZX0uIFVzZSAndW5zYWZlQ1NTJyB0byBwYXNzIG5vbi1saXRlcmFsIHZhbHVlcywgYnV0CiAgICAgICAgICAgIHRha2UgY2FyZSB0byBlbnN1cmUgcGFnZSBzZWN1cml0eS5gKX0sQ2k9KGUsLi4udCk9PntsZXQgcj10LnJlZHVjZSgobixpLG8pPT5uK1V1cihpKStlW28rMV0sZVswXSk7cmV0dXJuIG5ldyBjMShyLEFjdCl9Oyh3aW5kb3cubGl0RWxlbWVudFZlcnNpb25zfHwod2luZG93LmxpdEVsZW1lbnRWZXJzaW9ucz1bXSkpLnB1c2goIjIuNS4xIik7dmFyIExjZT17fSxFUD1jbGFzcyBleHRlbmRzIGcze3N0YXRpYyBnZXRTdHlsZXMoKXtyZXR1cm4gdGhpcy5zdHlsZXN9c3RhdGljIF9nZXRVbmlxdWVTdHlsZXMoKXtpZih0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9zdHlsZXMiLHRoaXMpKSlyZXR1cm47bGV0IHQ9dGhpcy5nZXRTdHlsZXMoKTtpZihBcnJheS5pc0FycmF5KHQpKXtsZXQgcj0obyxhKT0+by5yZWR1Y2VSaWdodCgocyxsKT0+QXJyYXkuaXNBcnJheShsKT9yKGwscyk6KHMuYWRkKGwpLHMpLGEpLG49cih0LG5ldyBTZXQpLGk9W107bi5mb3JFYWNoKG89PmkudW5zaGlmdChvKSksdGhpcy5fc3R5bGVzPWl9ZWxzZSB0aGlzLl9zdHlsZXM9dD09PXZvaWQgMD9bXTpbdF07dGhpcy5fc3R5bGVzPXRoaXMuX3N0eWxlcy5tYXAocj0+e2lmKHIgaW5zdGFuY2VvZiBDU1NTdHlsZVNoZWV0JiYhakgpe2xldCBuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHIuY3NzUnVsZXMpLnJlZHVjZSgoaSxvKT0+aStvLmNzc1RleHQsIiIpO3JldHVybiBQY3Qobil9cmV0dXJuIHJ9KX1pbml0aWFsaXplKCl7c3VwZXIuaW5pdGlhbGl6ZSgpLHRoaXMuY29uc3RydWN0b3IuX2dldFVuaXF1ZVN0eWxlcygpLHRoaXMucmVuZGVyUm9vdD10aGlzLmNyZWF0ZVJlbmRlclJvb3QoKSx3aW5kb3cuU2hhZG93Um9vdCYmdGhpcy5yZW5kZXJSb290IGluc3RhbmNlb2Ygd2luZG93LlNoYWRvd1Jvb3QmJnRoaXMuYWRvcHRTdHlsZXMoKX1jcmVhdGVSZW5kZXJSb290KCl7cmV0dXJuIHRoaXMuYXR0YWNoU2hhZG93KHRoaXMuY29uc3RydWN0b3Iuc2hhZG93Um9vdE9wdGlvbnMpfWFkb3B0U3R5bGVzKCl7bGV0IHQ9dGhpcy5jb25zdHJ1Y3Rvci5fc3R5bGVzO3QubGVuZ3RoIT09MCYmKHdpbmRvdy5TaGFkeUNTUyE9PXZvaWQgMCYmIXdpbmRvdy5TaGFkeUNTUy5uYXRpdmVTaGFkb3c/d2luZG93LlNoYWR5Q1NTLlNjb3BpbmdTaGltLnByZXBhcmVBZG9wdGVkQ3NzVGV4dCh0Lm1hcChyPT5yLmNzc1RleHQpLHRoaXMubG9jYWxOYW1lKTpqSD90aGlzLnJlbmRlclJvb3QuYWRvcHRlZFN0eWxlU2hlZXRzPXQubWFwKHI9PnIgaW5zdGFuY2VvZiBDU1NTdHlsZVNoZWV0P3I6ci5zdHlsZVNoZWV0KTp0aGlzLl9uZWVkc1NoaW1BZG9wdGVkU3R5bGVTaGVldHM9ITApfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhhc1VwZGF0ZWQmJndpbmRvdy5TaGFkeUNTUyE9PXZvaWQgMCYmd2luZG93LlNoYWR5Q1NTLnN0eWxlRWxlbWVudCh0aGlzKX11cGRhdGUodCl7bGV0IHI9dGhpcy5yZW5kZXIoKTtzdXBlci51cGRhdGUodCksciE9PUxjZSYmdGhpcy5jb25zdHJ1Y3Rvci5yZW5kZXIocix0aGlzLnJlbmRlclJvb3Qse3Njb3BlTmFtZTp0aGlzLmxvY2FsTmFtZSxldmVudENvbnRleHQ6dGhpc30pLHRoaXMuX25lZWRzU2hpbUFkb3B0ZWRTdHlsZVNoZWV0cyYmKHRoaXMuX25lZWRzU2hpbUFkb3B0ZWRTdHlsZVNoZWV0cz0hMSx0aGlzLmNvbnN0cnVjdG9yLl9zdHlsZXMuZm9yRWFjaChuPT57bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtpLnRleHRDb250ZW50PW4uY3NzVGV4dCx0aGlzLnJlbmRlclJvb3QuYXBwZW5kQ2hpbGQoaSl9KSl9cmVuZGVyKCl7cmV0dXJuIExjZX19O0VQLmZpbmFsaXplZD0hMDtFUC5yZW5kZXI9Q2NlO0VQLnNoYWRvd1Jvb3RPcHRpb25zPXttb2RlOiJvcGVuIn07dmFyIGtjZT0wLEljdD17fSxqYz0oZSx0LHIpPT57bGV0IG49ciYmci5tb2R1bGVJZHx8YGN1c3RvbS1zdHlsZS1tb2R1bGUtJHtrY2UrK31gO0FycmF5LmlzQXJyYXkodCl8fCh0PXQ/W3RdOltdKSx0LmZvckVhY2goYT0+e2lmKCEoYSBpbnN0YW5jZW9mIGMxKSl0aHJvdyBuZXcgRXJyb3IoIkFuIGl0ZW0gaW4gc3R5bGVzIGlzIG5vdCBvZiB0eXBlIENTU1Jlc3VsdC4gVXNlIGB1bnNhZmVDU1NgIG9yIGBjc3NgLiIpO2lmKCFJY3RbYV0pe2xldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRvbS1tb2R1bGUiKTtzLmlubmVySFRNTD1gCiAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgPHN0eWxlPiR7YS50b1N0cmluZygpfTwvc3R5bGU+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgYDtsZXQgbD1gY3VzdG9tLXN0eWxlLW1vZHVsZS0ke2tjZSsrfWA7cy5yZWdpc3RlcihsKSxJY3RbYV09bH19KTtsZXQgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkb20tbW9kdWxlIik7aWYoZSl7bGV0IGE9Y3VzdG9tRWxlbWVudHMuZ2V0KGUpO2EmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLCJfX2ZpbmFsaXplZCIpJiZjb25zb2xlLndhcm4oYFRoZSBjdXN0b20gZWxlbWVudCBkZWZpbml0aW9uIGZvciAiJHtlfSIKICAgICAgd2FzIGZpbmFsaXplZCBiZWZvcmUgYSBzdHlsZSBtb2R1bGUgd2FzIHJlZ2lzdGVyZWQuCiAgICAgIE1ha2Ugc3VyZSB0byBhZGQgY29tcG9uZW50IHNwZWNpZmljIHN0eWxlIG1vZHVsZXMgYmVmb3JlCiAgICAgIGltcG9ydGluZyB0aGUgY29ycmVzcG9uZGluZyBjdXN0b20gZWxlbWVudC5gKSxpLnNldEF0dHJpYnV0ZSgidGhlbWUtZm9yIixlKX1sZXQgbz1yJiZyLmluY2x1ZGV8fFtdO2kuaW5uZXJIVE1MPWAKICAgIDx0ZW1wbGF0ZT4KICAgICAgJHtvLm1hcChhPT5gPHN0eWxlIGluY2x1ZGU9JHthfT48L3N0eWxlPmApfQogICAgICAke3QubWFwKGE9PmA8c3R5bGUgaW5jbHVkZT0ke0ljdFthXX0+PC9zdHlsZT5gKX0KICAgIDwvdGVtcGxhdGU+CiAgYCxpLnJlZ2lzdGVyKG4pfTt2YXIgTGN0PWNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnR7c3RhdGljIGdldCB2ZXJzaW9uKCl7cmV0dXJuIjIwLjAuMiJ9fTtjdXN0b21FbGVtZW50cy5kZWZpbmUoInZhYWRpbi1sdW1vLXN0eWxlcyIsTGN0KTt2YXIgcXVyPUNpYAogIDpob3N0IHsKICAgIC8qIEJhc2UgKGJhY2tncm91bmQpICovCiAgICAtLWx1bW8tYmFzZS1jb2xvcjogI2ZmZjsKCiAgICAvKiBUaW50ICovCiAgICAtLWx1bW8tdGludC01cGN0OiBoc2xhKDAsIDAlLCAxMDAlLCAwLjMpOwogICAgLS1sdW1vLXRpbnQtMTBwY3Q6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMzcpOwogICAgLS1sdW1vLXRpbnQtMjBwY3Q6IGhzbGEoMCwgMCUsIDEwMCUsIDAuNDQpOwogICAgLS1sdW1vLXRpbnQtMzBwY3Q6IGhzbGEoMCwgMCUsIDEwMCUsIDAuNSk7CiAgICAtLWx1bW8tdGludC00MHBjdDogaHNsYSgwLCAwJSwgMTAwJSwgMC41Nyk7CiAgICAtLWx1bW8tdGludC01MHBjdDogaHNsYSgwLCAwJSwgMTAwJSwgMC42NCk7CiAgICAtLWx1bW8tdGludC02MHBjdDogaHNsYSgwLCAwJSwgMTAwJSwgMC43KTsKICAgIC0tbHVtby10aW50LTcwcGN0OiBoc2xhKDAsIDAlLCAxMDAlLCAwLjc3KTsKICAgIC0tbHVtby10aW50LTgwcGN0OiBoc2xhKDAsIDAlLCAxMDAlLCAwLjg0KTsKICAgIC0tbHVtby10aW50LTkwcGN0OiBoc2xhKDAsIDAlLCAxMDAlLCAwLjkpOwogICAgLS1sdW1vLXRpbnQ6ICNmZmY7CgogICAgLyogU2hhZGUgKi8KICAgIC0tbHVtby1zaGFkZS01cGN0OiBoc2xhKDIxNCwgNjElLCAyNSUsIDAuMDUpOwogICAgLS1sdW1vLXNoYWRlLTEwcGN0OiBoc2xhKDIxNCwgNTclLCAyNCUsIDAuMSk7CiAgICAtLWx1bW8tc2hhZGUtMjBwY3Q6IGhzbGEoMjE0LCA1MyUsIDIzJSwgMC4xNik7CiAgICAtLWx1bW8tc2hhZGUtMzBwY3Q6IGhzbGEoMjE0LCA1MCUsIDIyJSwgMC4yNik7CiAgICAtLWx1bW8tc2hhZGUtNDBwY3Q6IGhzbGEoMjE0LCA0NyUsIDIxJSwgMC4zOCk7CiAgICAtLWx1bW8tc2hhZGUtNTBwY3Q6IGhzbGEoMjE0LCA0NSUsIDIwJSwgMC41KTsKICAgIC0tbHVtby1zaGFkZS02MHBjdDogaHNsYSgyMTQsIDQzJSwgMTklLCAwLjYxKTsKICAgIC0tbHVtby1zaGFkZS03MHBjdDogaHNsYSgyMTQsIDQyJSwgMTglLCAwLjcyKTsKICAgIC0tbHVtby1zaGFkZS04MHBjdDogaHNsYSgyMTQsIDQxJSwgMTclLCAwLjgzKTsKICAgIC0tbHVtby1zaGFkZS05MHBjdDogaHNsYSgyMTQsIDQwJSwgMTYlLCAwLjk0KTsKICAgIC0tbHVtby1zaGFkZTogaHNsKDIxNCwgMzUlLCAxNSUpOwoKICAgIC8qIENvbnRyYXN0ICovCiAgICAtLWx1bW8tY29udHJhc3QtNXBjdDogdmFyKC0tbHVtby1zaGFkZS01cGN0KTsKICAgIC0tbHVtby1jb250cmFzdC0xMHBjdDogdmFyKC0tbHVtby1zaGFkZS0xMHBjdCk7CiAgICAtLWx1bW8tY29udHJhc3QtMjBwY3Q6IHZhcigtLWx1bW8tc2hhZGUtMjBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTMwcGN0OiB2YXIoLS1sdW1vLXNoYWRlLTMwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC00MHBjdDogdmFyKC0tbHVtby1zaGFkZS00MHBjdCk7CiAgICAtLWx1bW8tY29udHJhc3QtNTBwY3Q6IHZhcigtLWx1bW8tc2hhZGUtNTBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTYwcGN0OiB2YXIoLS1sdW1vLXNoYWRlLTYwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC03MHBjdDogdmFyKC0tbHVtby1zaGFkZS03MHBjdCk7CiAgICAtLWx1bW8tY29udHJhc3QtODBwY3Q6IHZhcigtLWx1bW8tc2hhZGUtODBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTkwcGN0OiB2YXIoLS1sdW1vLXNoYWRlLTkwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdDogdmFyKC0tbHVtby1zaGFkZSk7CgogICAgLyogVGV4dCAqLwogICAgLS1sdW1vLWhlYWRlci10ZXh0LWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0KTsKICAgIC0tbHVtby1ib2R5LXRleHQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtOTBwY3QpOwogICAgLS1sdW1vLXNlY29uZGFyeS10ZXh0LWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTcwcGN0KTsKICAgIC0tbHVtby10ZXJ0aWFyeS10ZXh0LWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTUwcGN0KTsKICAgIC0tbHVtby1kaXNhYmxlZC10ZXh0LWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTMwcGN0KTsKCiAgICAvKiBQcmltYXJ5ICovCiAgICAtLWx1bW8tcHJpbWFyeS1jb2xvcjogaHNsKDIxNCwgOTAlLCA1MiUpOwogICAgLS1sdW1vLXByaW1hcnktY29sb3ItNTBwY3Q6IGhzbGEoMjE0LCA5MCUsIDUyJSwgMC41KTsKICAgIC0tbHVtby1wcmltYXJ5LWNvbG9yLTEwcGN0OiBoc2xhKDIxNCwgOTAlLCA1MiUsIDAuMSk7CiAgICAtLWx1bW8tcHJpbWFyeS10ZXh0LWNvbG9yOiB2YXIoLS1sdW1vLXByaW1hcnktY29sb3IpOwogICAgLS1sdW1vLXByaW1hcnktY29udHJhc3QtY29sb3I6ICNmZmY7CgogICAgLyogRXJyb3IgKi8KICAgIC0tbHVtby1lcnJvci1jb2xvcjogaHNsKDMsIDEwMCUsIDYxJSk7CiAgICAtLWx1bW8tZXJyb3ItY29sb3ItNTBwY3Q6IGhzbGEoMywgMTAwJSwgNjAlLCAwLjUpOwogICAgLS1sdW1vLWVycm9yLWNvbG9yLTEwcGN0OiBoc2xhKDMsIDEwMCUsIDYwJSwgMC4xKTsKICAgIC0tbHVtby1lcnJvci10ZXh0LWNvbG9yOiBoc2woMywgOTIlLCA1MyUpOwogICAgLS1sdW1vLWVycm9yLWNvbnRyYXN0LWNvbG9yOiAjZmZmOwoKICAgIC8qIFN1Y2Nlc3MgKi8KICAgIC0tbHVtby1zdWNjZXNzLWNvbG9yOiBoc2woMTQ1LCA4MCUsIDQyJSk7IC8qIGhzbCgxNDQsODIlLDM3JSk7ICovCiAgICAtLWx1bW8tc3VjY2Vzcy1jb2xvci01MHBjdDogaHNsYSgxNDUsIDc2JSwgNDQlLCAwLjU1KTsKICAgIC0tbHVtby1zdWNjZXNzLWNvbG9yLTEwcGN0OiBoc2xhKDE0NSwgNzYlLCA0NCUsIDAuMTIpOwogICAgLS1sdW1vLXN1Y2Nlc3MtdGV4dC1jb2xvcjogaHNsKDE0NSwgMTAwJSwgMzIlKTsKICAgIC0tbHVtby1zdWNjZXNzLWNvbnRyYXN0LWNvbG9yOiAjZmZmOwogIH0KYCxSY2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtSY2UuaW5uZXJIVE1MPWA8c3R5bGU+JHtxdXIudG9TdHJpbmcoKS5yZXBsYWNlKCI6aG9zdCIsImh0bWwiKX08L3N0eWxlPmA7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChSY2UuY29udGVudCk7dmFyIEd1cj1DaWAKICBbdGhlbWV+PSdkYXJrJ10gewogICAgLyogQmFzZSAoYmFja2dyb3VuZCkgKi8KICAgIC0tbHVtby1iYXNlLWNvbG9yOiBoc2woMjE0LCAzNSUsIDIxJSk7CgogICAgLyogVGludCAqLwogICAgLS1sdW1vLXRpbnQtNXBjdDogaHNsYSgyMTQsIDY1JSwgODUlLCAwLjA2KTsKICAgIC0tbHVtby10aW50LTEwcGN0OiBoc2xhKDIxNCwgNjAlLCA4MCUsIDAuMTQpOwogICAgLS1sdW1vLXRpbnQtMjBwY3Q6IGhzbGEoMjE0LCA2NCUsIDgyJSwgMC4yMyk7CiAgICAtLWx1bW8tdGludC0zMHBjdDogaHNsYSgyMTQsIDY5JSwgODQlLCAwLjMyKTsKICAgIC0tbHVtby10aW50LTQwcGN0OiBoc2xhKDIxNCwgNzMlLCA4NiUsIDAuNDEpOwogICAgLS1sdW1vLXRpbnQtNTBwY3Q6IGhzbGEoMjE0LCA3OCUsIDg4JSwgMC41KTsKICAgIC0tbHVtby10aW50LTYwcGN0OiBoc2xhKDIxNCwgODIlLCA5MCUsIDAuNik7CiAgICAtLWx1bW8tdGludC03MHBjdDogaHNsYSgyMTQsIDg3JSwgOTIlLCAwLjcpOwogICAgLS1sdW1vLXRpbnQtODBwY3Q6IGhzbGEoMjE0LCA5MSUsIDk0JSwgMC44KTsKICAgIC0tbHVtby10aW50LTkwcGN0OiBoc2xhKDIxNCwgOTYlLCA5NiUsIDAuOSk7CiAgICAtLWx1bW8tdGludDogaHNsKDIxNCwgMTAwJSwgOTglKTsKCiAgICAvKiBTaGFkZSAqLwogICAgLS1sdW1vLXNoYWRlLTVwY3Q6IGhzbGEoMjE0LCAwJSwgMCUsIDAuMDcpOwogICAgLS1sdW1vLXNoYWRlLTEwcGN0OiBoc2xhKDIxNCwgNCUsIDIlLCAwLjE1KTsKICAgIC0tbHVtby1zaGFkZS0yMHBjdDogaHNsYSgyMTQsIDglLCA0JSwgMC4yMyk7CiAgICAtLWx1bW8tc2hhZGUtMzBwY3Q6IGhzbGEoMjE0LCAxMiUsIDYlLCAwLjMyKTsKICAgIC0tbHVtby1zaGFkZS00MHBjdDogaHNsYSgyMTQsIDE2JSwgOCUsIDAuNDEpOwogICAgLS1sdW1vLXNoYWRlLTUwcGN0OiBoc2xhKDIxNCwgMjAlLCAxMCUsIDAuNSk7CiAgICAtLWx1bW8tc2hhZGUtNjBwY3Q6IGhzbGEoMjE0LCAyNCUsIDEyJSwgMC42KTsKICAgIC0tbHVtby1zaGFkZS03MHBjdDogaHNsYSgyMTQsIDI4JSwgMTMlLCAwLjcpOwogICAgLS1sdW1vLXNoYWRlLTgwcGN0OiBoc2xhKDIxNCwgMzIlLCAxMyUsIDAuOCk7CiAgICAtLWx1bW8tc2hhZGUtOTBwY3Q6IGhzbGEoMjE0LCAzMyUsIDEzJSwgMC45KTsKICAgIC0tbHVtby1zaGFkZTogaHNsKDIxNCwgMzMlLCAxMyUpOwoKICAgIC8qIENvbnRyYXN0ICovCiAgICAtLWx1bW8tY29udHJhc3QtNXBjdDogdmFyKC0tbHVtby10aW50LTVwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTEwcGN0OiB2YXIoLS1sdW1vLXRpbnQtMTBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTIwcGN0OiB2YXIoLS1sdW1vLXRpbnQtMjBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTMwcGN0OiB2YXIoLS1sdW1vLXRpbnQtMzBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTQwcGN0OiB2YXIoLS1sdW1vLXRpbnQtNDBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTUwcGN0OiB2YXIoLS1sdW1vLXRpbnQtNTBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTYwcGN0OiB2YXIoLS1sdW1vLXRpbnQtNjBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTcwcGN0OiB2YXIoLS1sdW1vLXRpbnQtNzBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTgwcGN0OiB2YXIoLS1sdW1vLXRpbnQtODBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTkwcGN0OiB2YXIoLS1sdW1vLXRpbnQtOTBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0OiB2YXIoLS1sdW1vLXRpbnQpOwoKICAgIC8qIFRleHQgKi8KICAgIC0tbHVtby1oZWFkZXItdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdCk7CiAgICAtLWx1bW8tYm9keS10ZXh0LWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTkwcGN0KTsKICAgIC0tbHVtby1zZWNvbmRhcnktdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC03MHBjdCk7CiAgICAtLWx1bW8tdGVydGlhcnktdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC01MHBjdCk7CiAgICAtLWx1bW8tZGlzYWJsZWQtdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0zMHBjdCk7CgogICAgLyogUHJpbWFyeSAqLwogICAgLS1sdW1vLXByaW1hcnktY29sb3I6IGhzbCgyMTQsIDg2JSwgNTUlKTsKICAgIC0tbHVtby1wcmltYXJ5LWNvbG9yLTUwcGN0OiBoc2xhKDIxNCwgODYlLCA1NSUsIDAuNSk7CiAgICAtLWx1bW8tcHJpbWFyeS1jb2xvci0xMHBjdDogaHNsYSgyMTQsIDkwJSwgNjMlLCAwLjEpOwogICAgLS1sdW1vLXByaW1hcnktdGV4dC1jb2xvcjogaHNsKDIxNCwgMTAwJSwgNzAlKTsKICAgIC0tbHVtby1wcmltYXJ5LWNvbnRyYXN0LWNvbG9yOiAjZmZmOwoKICAgIC8qIEVycm9yICovCiAgICAtLWx1bW8tZXJyb3ItY29sb3I6IGhzbCgzLCA5MCUsIDYzJSk7CiAgICAtLWx1bW8tZXJyb3ItY29sb3ItNTBwY3Q6IGhzbGEoMywgOTAlLCA2MyUsIDAuNSk7CiAgICAtLWx1bW8tZXJyb3ItY29sb3ItMTBwY3Q6IGhzbGEoMywgOTAlLCA2MyUsIDAuMSk7CiAgICAtLWx1bW8tZXJyb3ItdGV4dC1jb2xvcjogaHNsKDMsIDEwMCUsIDY3JSk7CgogICAgLyogU3VjY2VzcyAqLwogICAgLS1sdW1vLXN1Y2Nlc3MtY29sb3I6IGhzbCgxNDUsIDY1JSwgNDIlKTsKICAgIC0tbHVtby1zdWNjZXNzLWNvbG9yLTUwcGN0OiBoc2xhKDE0NSwgNjUlLCA0MiUsIDAuNSk7CiAgICAtLWx1bW8tc3VjY2Vzcy1jb2xvci0xMHBjdDogaHNsYSgxNDUsIDY1JSwgNDIlLCAwLjEpOwogICAgLS1sdW1vLXN1Y2Nlc3MtdGV4dC1jb2xvcjogaHNsKDE0NSwgODUlLCA0NyUpOwogIH0KCiAgaHRtbCB7CiAgICBjb2xvcjogdmFyKC0tbHVtby1ib2R5LXRleHQtY29sb3IpOwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1iYXNlLWNvbG9yKTsKICB9CgogIFt0aGVtZX49J2RhcmsnXSB7CiAgICBjb2xvcjogdmFyKC0tbHVtby1ib2R5LXRleHQtY29sb3IpOwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1iYXNlLWNvbG9yKTsKICB9CgogIGgxLAogIGgyLAogIGgzLAogIGg0LAogIGg1LAogIGg2IHsKICAgIGNvbG9yOiB2YXIoLS1sdW1vLWhlYWRlci10ZXh0LWNvbG9yKTsKICB9CgogIGEgewogICAgY29sb3I6IHZhcigtLWx1bW8tcHJpbWFyeS10ZXh0LWNvbG9yKTsKICB9CgogIGJsb2NrcXVvdGUgewogICAgY29sb3I6IHZhcigtLWx1bW8tc2Vjb25kYXJ5LXRleHQtY29sb3IpOwogIH0KCiAgY29kZSwKICBwcmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0xMHBjdCk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtbSk7CiAgfQpgO2pjKCIiLEd1cix7bW9kdWxlSWQ6Imx1bW8tY29sb3IifSk7dmFyIFd1cj1DaWAKICA6aG9zdCB7CiAgICBjb2xvcjogdmFyKC0tbHVtby1ib2R5LXRleHQtY29sb3IpICFpbXBvcnRhbnQ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sdW1vLWJhc2UtY29sb3IpICFpbXBvcnRhbnQ7CiAgfQpgO2pjKCIiLFd1cix7bW9kdWxlSWQ6Imx1bW8tY29sb3ItbGVnYWN5IixpbmNsdWRlOlsibHVtby1jb2xvciJdfSk7dmFyIE5jZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO05jZS5pbm5lckhUTUw9YAogIDxzdHlsZT4KICAgIEBmb250LWZhY2UgewogICAgICBmb250LWZhbWlseTogJ2x1bW8taWNvbnMnOwogICAgICBzcmM6IHVybChkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBQkVjQUFzQUFBQUFJaXdBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkhVMVZDQUFBQkNBQUFBRHNBQUFCVUlJc2xlazlUTHpJQUFBRkVBQUFBUXdBQUFGWkFJVXVLWTIxaGNBQUFBWWdBQUFENEFBQURyc0NVOGQ1bmJIbG1BQUFDZ0FBQUMyTUFBQmQ0aDlUbzJXaGxZV1FBQUEza0FBQUFNQUFBQURaYS82U3NhR2hsWVFBQURoUUFBQUFkQUFBQUpBYnBBMzVvYlhSNEFBQU9OQUFBQUJBQUFBQ3NwQkFBQUd4dlkyRUFBQTVFQUFBQVdBQUFBRmg1NUlBc2JXRjRjQUFBRHB3QUFBQWZBQUFBSUFGS0FYQnVZVzFsQUFBT3ZBQUFBVEVBQUFJdVVVSlpDSEJ2YzNRQUFBL3dBQUFCS3dBQUFlbG04U3pWZUp4allHUmdZT0JpTUdDd1kyQnljZk1KWWVETFNTekpZNUJpWUdHQUFKQThNcHN4SnpNOWtZRUR4Z1BLc1lCcERpQm1nNGdDQUNZN0JVZ0FlSnhqWUdTK3lEaUJnWldCZ2FtS2FROERBME1QaEdaOHdHREl5QVFVWldCbFpzQUtBdEpjVXhnY1hqRyswbUlPK3AvRkVNVWN4REFOS013SWtnTUFCbjhNTFFCNG5PM1NXVzZETUFCRjBVdHdDRW5JUE0vemhMSzhMcWhmWFJ5YlNQMTRYVVl0SFY5aEdZUXdRQk5JbzNjVUlQa2hRZU03cmliMWVrcW5YZzk4MVh1QzFxdnk4NGx6b2psZWgzcHV4TDBoUGpHalJVNDczdGVsb0VlZkFVTkdqSmt3WmNhY0JVdFdyTm13WmNlZUEwZE9uTGx3NWNhZEIwOWVsUEdoR2YrajBOVEkvNjVLZlhlclQ2SmhxS25wUkt0Z09wdXFhVHJ0S2pQVWxxSG1odG8yMUk3cEw2aTZobHFZM3E3cUdXcmZVQWVHT2pUVWthR09EWFZpcUZORG5SbnEzRkFYaHJvMDFKV2hyZzExWTZoYlE5MFo2dDVRRDRaNk5OU1RvWjROOVdLb1YwTzlHZXJkVUIrRytqVFVsNkdXUnZrTDI0QmtFWGljdFZoOWJGdlZGYi9ueHZieis3UmYvTjZ6SGNkMmJDZlArV2djMVo5TjBqcE5uRUw2a2JSVlM2SEEyaFFZR2g5VEdSMUNiQ3FhMnJYcldPa1FFL3NITkpnbXRadm9WTlpxRTFCMUROSHh6VFF4Q2VoVVRZaUpUUXlFTnVpMHFTTGV6cjNQZHV5UWZnbVJXT2ZkZTgrOTU1MXo3cm5uL080akxvSi9iUlAwVWFLUU1MRkpqcEJBdnBoTFpDM0RrMG9rN1dCelIyL3VwSnM3Unl3L25mRmJsbi91dU4vYXBDdndyS0xyU3ZVcVJ1ZmJtNXBuMGZzMHc0Z1l4bkdWUDZxSG5PNGJXaURRR1Fnd3RTNmxtM2xCM1FvWDFNMnZ3RW11emlyRjM5eStFczIrREo4ZDFwa3lxQklxb3plM0QxK1p6NERyRm9henhJOGRXd01yRGxaMkRNcVFBUjlBUk9zSlUrMmNtbFRQYXpUY281MkYxeFRhMmEyK0s4dnZxOTJkVkhtdExvUGVRWC9BWlBSWUd0aERZT2VaakJqS29Gc1ZHdWxSM2xXVTk1V2VDSzQ0cUhVN01oV1VHVUtaRFQzb0tVY0cyR1d1aCtFRERmVVlBL2poQWhsMFRPc0pOWVNFdTdtUW1pM1V6Zlh3WktBNEJzVnNITFhRWUdnUlc5NXVFdHBKMVZmbjlYaUxyaVJCbEZFcXhzRGpBMDl5Q05Vb1F4eHdkN0tXU1R0MnkzR1RLaWZscUhSU29XWmMzbTExV2EvZkpkRmdYRDRzU1lmbGVKQktkOEdNejdKOGRabi9jR1JDY0tHRG5BMkdlM2ZLemN2bG5URE50aEdXTFh6WC9XYVh0VUFtUmdlTGxIU3IzMHIwRzlVVFhNYjBBdG13ek9veTczZmtTbEhaa2R1dy9UWXVVOWNBRDRZdXRQb3hUVHNBMzc5N3dWcjRaLzFOQzV6QVJIcjR2dHhKanhJZmlaTWhNa2JXaysxNEJuSlpLd3FHWndEZnN3THl4V0RTZzExckZMSkY3Tm9weGpkMWgxL1FPVCtvZXpnZnUzWXErSGsrZHVmNXgrNDBvMUdUa2FJZ2lrSy9JRW5DNmFZeENVQmFaSlNONFhUWUZqVS9ZTU5JS3FKd2hER09DQ0k4RkRYblhtWGp0R2hHSnlTaHFqQU9uQk9rVzJKRzlTN0dnWWVNV0FVNUp6aG5XbUJPYU9NK0NLRVBvcVNmRkRDMlVucStETGxVZ1VWVUZGTFpHSmc2anRsb2pzZHNhOGtQT2JQdUpkaTVkbkJkQnNMSk1HVFdEYTR0Mkp2dHd1UG85cytZODZzdXYvVzMzUUcxckFhT0FVVit2eDRLNmYyRDA0UFZLbEM3V0xTclp6QWk0NVpWNmxJQzdXb1hxbVJ5dlVxb1Z3cnpVb1ZzSWplVFhXUXYrUkg1R1RsQlhpQi9JbjhsbjBJYkJDQUZPYWpBSnJnWll5T0hXcU9mVWUvYUhqSTEyUjZPUW8xakNndDIxNWwrNGY2WFBiKzBNTm91MFYrNDNuMkY3N3RTZlJiMjRkN3ppdGduS212WUhzNjl6dWdhUHZCd3Y2aW9Ya2IyTGRMNjVBdHc1MXVMa1hsdTFiaE1NUmNYU1BjWW9xS0lSbGgzNGxRUDgvNUpidVVGeWU0dnhENi82TXhGRjExQzB1VkxyOVVsZ3c0NHRTM3BNVmlOTFVFeGJ5Y0ZnTEljdCtRRE1pYlJpbXgxeWRVejhGWFppdU9JREJPTVZYMm5VWmMraHVORTVYVUo4MXVpSm9pYWJ3cWFWRjB1YWNLYmF1L3BsNFIyVlcwWFhsSnJhNmJvVnJZRzY0NlRGNU5Zend5NHZqRU5WckRsY05wWlBsOERINlhYOFhXQ3gwbXZXVlpZNktGTHJ2c1k2Ni96UGljdDVGbnhhTlVSL2p1dlpDTTNUdkQ2MEUyVzF0Wml6YlhUUER1YWJjbTBuYmJ6cFdLcG1BMWF5QlE4Z2llZExVTStBMGtOakJqUWptdVl6N1lyZ0lYWXZtRjYzWkxCd1NYcnBuOVRiOXd3ZGQvVTFIMFBNUUszWGNPOHVsM1dUN1B5UFBkcHkwVGVtS3hOUmNKTmF1aVhKbm5VRHBVcHBRV3M0U25VSXkwRUVTR1lxSllRTEdIeHphR1d3VklhUzZZN21RRk04WmpZRFEzYXhqZjYxU1dqVTMzSndPWkExcHdhRzFMOW16ZjcxYUhSZFgxSkh3NkZwMGFYaE53YnF5ZUdOZzROYmR6R0NCeG96NFpYank0TnU2OVpyNnNEWTZ2TXJMVTVuQTFQOEprYmRXWEo2RVJmTXJ5dk5oMUpmUTkrVDRkSWhHdks5dzNkeGpCQnphdHNRL01sT0hWSURuWXBEejZvZEFYbFEwMXQyUGE1SWFmZDhNTXB4QWVES1AwQzZDamdWTFQ1b3NCNmljVXgwMWxXalh4elQvR3lSRjJ3ZWxFTTVaLzdqRzNWalExU3JObjVJYnl6T0c1ZG9iQjMvUUh4eVp2c1hjb3o4SW9Fd1M3cGxDZyt6eEhRazQyNHE5QmZFcGtFU0piRkhRdXNEQlNXRmt1QmtvUE8wa0xLd1JWWWp4R1hsSFRjVERRTUovSDZUWDlhZmtPN21ucmFUTzFmZVRuWkFYTHU0Y3A3SEFYTW1ORzF5ZUZrOVRnUy9OSGhaUi80UW9CVHIvWkIrNmhDZ3lsMTVOcTFVYk42bkUxL1puUDFVMmNpekNCcHZzOGNKUVpKNExrWXg1Ti95WlBBVVpOUVEwVjRmM0JRbGxXckszWVJ6bDMwZE9UNlJWbjJ1cE51cjZ3b1NhOENxcGRUL2FLbkJNNG8zak51cjlkOXhxdFVUNnZlQkV0OUNhOWF0K0VSekVFaFVrUjhzYTVtUTRhVnZKb1ZlRUE4ekk0ZWk1bVVMWEZHeVU3ei82VEFlWUxWY3B6U1daWThQWVlGNXlyVFY2MHNUMCtYVjE0MXZYKytXZjE2VjJiRmVHVlBaWHhGcGt2eWVLVFdMbHpmVzBtbkt4c1k2WTMyOTQvMDk5OFNDZlgxYmxtNXBiY3ZGR2xxL3IwN01SQU1oWUlEaVc1SkZLV1czdmRyRXBDc1pTSkcrb203WnUvUFNTY1pKaE5rTGJtVzVXc3IxMnBXcVc1ekt0bHdSUzRiRk94VXcxN21Denk2bHNrQ0RsMVdZT0dXRFlyQURyTUE3QkREd2VXV05kNWtvaUpuUjFkeit5dExQMnEwU3FQQjFsbksyY2NCN1JZZTRGU29Qa3MzaUIzdDR0eFRTSGN0YjJzeTFpdmswcHZIdUNObTZ3MWY2d3h2MytPQ2dONzhMcWRRblVWaDdSMG9UQXAwek9mMnJiVzc3MFZ1NUMyZEl5R2RUbkhvOHpTamk3ZHBwajBVU29WQ3orbGhSTVRoNTNUZXE5VmJHZmJqdVNiQW9vU2RYYXlZNFBZSGczNzRDNmY3Z2wxQi9EWHVKNC9RWHhPQmRKRkpzcEZzSTNlZ3BvV1VVQ2psVElGbk5ZTmwrWnlaS21CZVlLR0hrRDFReURsaGFLYkt3S2NJSnFKNFRMSjJPbWRZL0pXWGFlNERkR0J3OEhaN2VYY2dGRjJ6cjJTb2FsRHJ5NWlLcW9hMFB1aGUzaFBRMnMzZWxUWU0rTUkrbjNySzBLZ0w3L0xhM0dlTUx0Nm03dTkxMnZHbnZ0T1JpSWEwcUJtaHFWaStYVzlYTkJtcWI4ZVZnS3pJSGZHSTViTm9HN1gwVUN6ZUlTbXFJY08vblk4Rkg3VThhdlg5ZngvU1QraHgwc2V6UHc5UXk4TXVtM0dXZjJONFV5L3lJWUdWQlhiSkhXSVpwN2RmVGNwdGRNVHI5UW1xN0RhaUsvdWtxQ0w0a3Q0UlVmUzVYUG5NdG1UMjIvbVFGcUY3ZW1TcXRybHU4U1ZFbHhEUkpyWk9Ea3B1d2UwVmZUZmpkRXAxZjdBN3YrZm96TkJYVUovNldUdUsyVHRGbHBGVlpBWjNMY0Z2VWkxWjJwMllUK0VNQWtHSlZTdE96TFRBUGc0SXFXSUFselJTak9Ca2wyenhqM1RLeWNwelQvTW52WDN1YVNNV00rZ1UwcmtYam9oaGVmVlJNYXBzMy9rTE1TS3YyM2xUMjN1eFFya1FqeU9KbGVNRHNkaEFuRDZaR0VsV1o1TWpDWHpDRS9oa1dYK1dGNGtuekdoVk95SzJlUVpla1YzZXlvMHpMOGt1WVdDbkRDdmpqaEFrY1RQT0JEWFZkb2F2M0hWY0ZuUWpMdnRWOVMycDB6QTZKZWdQd01ReHQreUZiM2xsOXpHbHEvNWRSS2IzY0V5UVlvYU5ZcGhhcko3eENCN0FXeHNMWTNqalpYWTBYc1pqMFdqd2M5STZQUC9kS0FCbkNaYXFIcGFaRUFDeGs0WmVMWlNLTmdaQUJsK2xZUVgxc0pRT1NYM242cjQxMGV2Y291ZDVKZUFHVVhWUDlIMXRaT0tlalRxNE9ubzB6MGVycm8xRnJuT3BvaHZhMWQvaFRkdFZzUWRLTjVXOVJsVDNOakQwbnpueUtOVGdLQU1mV05XY3lvZFYwSUdMUElIT0YwbzRKeXF1ZmFLNHo2V0lJenVHaDNkOGM4Y3dRZzhFUitPVnh5cmpkbTh2TnVodHM0TG9PaWhHeElNdVVkZ3p3aVlON3hoaDErb1puSk51VEc3Z1FadnU0WFdaOUdBWlpqR0V1YndlUHFZaHRLRFRIKzlWUWtsMTcvaUd5YnNuSis4K3NLdHlQcmNsbDl0eTY1WnNkc3QvOWlxcEVLaDdNNVZkQnhoM2NzT2ROYzZ0VzNJMXV5TTFQek9YZWdTT3JMRnNGTkkyTzI3TStURjJBcG5OOU1VdjV1ZDZManhJdkVRbkhSenhJdTRJc0E5TUxGa0puMnRjWm9aN09ON2RYZTd1anJjOEhydXNQS2FtbHFYd2Q3N2xRVXVMcGlsYXU0UFVNYXB1ZUJiN2lyVTRSb1VYRVlYdVZ1SUdsUkdtT3ArMmxOa2FSUFZ6aU9xbWxhWnZhcUc0ZEZnU2owanhFSldydjEySVVXbnRtdytyZlFhclJFMEFwaDRvY0k2bmxVbEdxcyt1My8rVC9ldGhXNjJQcEhwMmVIYlpzdG5oL3dPTzk1eURBSGljWTJCa1lHQUE0cG1KNlFIeC9EWmZHYmlaWHdCRkdHcFVOelFpNlArdm1hY3kzUUp5T1JpWVFLSUFOb1VMVlhpY1kyQmtZR0FPK3A4RkpGOHdBQUh6VkFaR0JsU2dEUUJXOWdOdkFBQUFlSnhqWUdCZ1lINHhOREFBendRbWp3QUFBQUFBVGdDYUFPZ0JDZ0VzQVU0QmNBR2FBY1FCN2dJYUFwd0M2QVNhQkx3RTFnVHlCUTRGS2dWNkJkQUYvZ1pFQm1ZR3RnY1lCNUFJR0FoU0NHb0kvZ2xHQ2I0SjJnb0VDandLZ2dxNEN2QUxVQXVXQzd4NG5HTmdaR0JnMEdaTVlSQmxBQUVtSU9ZQ1FnYUcvMkErQXdBWWxBRzhBSGljYlpFOVRzTXdHSWJmOUEvUlNnZ0VZbUh4QWd0cStqTjJaR2ozRHQzVDFHbFRPWEhrdUJXOUF5ZmdFQnlDZ1ROd0NBN0JXL05KbFZCdHlkL2p4KzhYS3dtQWEzd2h3bkZFNkliMU9CcTQ0TzZQbTZRYjRSYjVRYmlOSGg2Rk8vUkQ0UzZlTVJIdTRSYWFUNGhhbHpSM2VCVnU0QXB2d2szNmQrRVcrVU80alh0OENuZm92NFc3V09CSHVJZW42TVhzQ3R2UFUxdldjNzNlbWNTZHhJa1cydFc1TGRVb0hwN2tUSmZhSlY2djFQS2c2djE2N0gybU1tY0xOYldsMThaWVZUbTcxYW1QTjk1WGs4RWdFeCtudG9EQkRnVXMrc2lSc3Bhb01lZjdydWtORXJpemlYTnV3UzdIbW9lOXdnZ3h2K2U1NUl6Sk1xUVRlTllWMDBzY3VOYlk4K1l4clVmR2ZjYU1aYi9DTlBRZTA0YlQwbFRoYkV1VDBzZlloSzZLLzIzQW1mM0x4K0gyNGhjajRHU2NBQUFBZUp4dGp0bHVnekFRUmJrSlVFSkl1dS83dnFSOGxHTlBBY1d4MFlBYjVlL0xrbFI5NkVnZW5TdWZHWTAzOFBxS3ZmOXJoZ0dHOEJFZ3hBNGlqQkJqakFRVFRMR0xQZXpqQUljNHdqRk9jSW96bk9NQ2w3akNOVzV3aXp2YzR3R1BlTUl6WHZDS043empBek44ZW9uUVJXWlNTYVltanZ1ZzZhc2U5OGhGbHRleE1KbW1WTm1WMldCdmROZ1pVYyt1akFXelhXM1VEbnUxdzQzYXNTdEhjOEdwekFYWC9weTBqcVRRWkpUZ2tjeEpMcGFDRjBsRDMyeE50KzQzdEFzbjI5RGZ0MDJ1REtTMmNqR1VOZ3NrMjZxSzJsRnRoWW9VMjdJTlBxbWlEcWc1Z29lMHBxUjVxU29xTWRlay9DVVpGeXdMNDZyRXNpSW1sZXFpcW9NeXQ0YmFYbHUvMUdMZE5GZjV6YmNObWRyMVlVV0NaZTQ3byt6VW1iL0RvU3RidzNjVnNlZjlBTGpqaVBRQSkgZm9ybWF0KCd3b2ZmJyk7CiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgIH0KCiAgICBodG1sIHsKICAgICAgLS1sdW1vLWljb25zLWFsaWduLWNlbnRlcjogIlxcZWEwMSI7CiAgICAgIC0tbHVtby1pY29ucy1hbGlnbi1sZWZ0OiAiXFxlYTAyIjsKICAgICAgLS1sdW1vLWljb25zLWFsaWduLXJpZ2h0OiAiXFxlYTAzIjsKICAgICAgLS1sdW1vLWljb25zLWFuZ2xlLWRvd246ICJcXGVhMDQiOwogICAgICAtLWx1bW8taWNvbnMtYW5nbGUtbGVmdDogIlxcZWEwNSI7CiAgICAgIC0tbHVtby1pY29ucy1hbmdsZS1yaWdodDogIlxcZWEwNiI7CiAgICAgIC0tbHVtby1pY29ucy1hbmdsZS11cDogIlxcZWEwNyI7CiAgICAgIC0tbHVtby1pY29ucy1hcnJvdy1kb3duOiAiXFxlYTA4IjsKICAgICAgLS1sdW1vLWljb25zLWFycm93LWxlZnQ6ICJcXGVhMDkiOwogICAgICAtLWx1bW8taWNvbnMtYXJyb3ctcmlnaHQ6ICJcXGVhMGEiOwogICAgICAtLWx1bW8taWNvbnMtYXJyb3ctdXA6ICJcXGVhMGIiOwogICAgICAtLWx1bW8taWNvbnMtYmFyLWNoYXJ0OiAiXFxlYTBjIjsKICAgICAgLS1sdW1vLWljb25zLWJlbGw6ICJcXGVhMGQiOwogICAgICAtLWx1bW8taWNvbnMtY2FsZW5kYXI6ICJcXGVhMGUiOwogICAgICAtLWx1bW8taWNvbnMtY2hlY2ttYXJrOiAiXFxlYTBmIjsKICAgICAgLS1sdW1vLWljb25zLWNoZXZyb24tZG93bjogIlxcZWExMCI7CiAgICAgIC0tbHVtby1pY29ucy1jaGV2cm9uLWxlZnQ6ICJcXGVhMTEiOwogICAgICAtLWx1bW8taWNvbnMtY2hldnJvbi1yaWdodDogIlxcZWExMiI7CiAgICAgIC0tbHVtby1pY29ucy1jaGV2cm9uLXVwOiAiXFxlYTEzIjsKICAgICAgLS1sdW1vLWljb25zLWNsb2NrOiAiXFxlYTE0IjsKICAgICAgLS1sdW1vLWljb25zLWNvZzogIlxcZWExNSI7CiAgICAgIC0tbHVtby1pY29ucy1jcm9zczogIlxcZWExNiI7CiAgICAgIC0tbHVtby1pY29ucy1kb3dubG9hZDogIlxcZWExNyI7CiAgICAgIC0tbHVtby1pY29ucy1kcm9wZG93bjogIlxcZWExOCI7CiAgICAgIC0tbHVtby1pY29ucy1lZGl0OiAiXFxlYTE5IjsKICAgICAgLS1sdW1vLWljb25zLWVycm9yOiAiXFxlYTFhIjsKICAgICAgLS1sdW1vLWljb25zLWV5ZTogIlxcZWExYiI7CiAgICAgIC0tbHVtby1pY29ucy1leWUtZGlzYWJsZWQ6ICJcXGVhMWMiOwogICAgICAtLWx1bW8taWNvbnMtbWVudTogIlxcZWExZCI7CiAgICAgIC0tbHVtby1pY29ucy1taW51czogIlxcZWExZSI7CiAgICAgIC0tbHVtby1pY29ucy1vcmRlcmVkLWxpc3Q6ICJcXGVhMWYiOwogICAgICAtLWx1bW8taWNvbnMtcGhvbmU6ICJcXGVhMjAiOwogICAgICAtLWx1bW8taWNvbnMtcGhvdG86ICJcXGVhMjEiOwogICAgICAtLWx1bW8taWNvbnMtcGxheTogIlxcZWEyMiI7CiAgICAgIC0tbHVtby1pY29ucy1wbHVzOiAiXFxlYTIzIjsKICAgICAgLS1sdW1vLWljb25zLXJlZG86ICJcXGVhMjQiOwogICAgICAtLWx1bW8taWNvbnMtcmVsb2FkOiAiXFxlYTI1IjsKICAgICAgLS1sdW1vLWljb25zLXNlYXJjaDogIlxcZWEyNiI7CiAgICAgIC0tbHVtby1pY29ucy11bmRvOiAiXFxlYTI3IjsKICAgICAgLS1sdW1vLWljb25zLXVub3JkZXJlZC1saXN0OiAiXFxlYTI4IjsKICAgICAgLS1sdW1vLWljb25zLXVwbG9hZDogIlxcZWEyOSI7CiAgICAgIC0tbHVtby1pY29ucy11c2VyOiAiXFxlYTJhIjsKICAgIH0KICA8L3N0eWxlPgpgO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoTmNlLmNvbnRlbnQpO3ZhciBZdXI9Q2lgCiAgOmhvc3QgewogICAgLS1sdW1vLXNpemUteHM6IDEuNjI1cmVtOwogICAgLS1sdW1vLXNpemUtczogMS44NzVyZW07CiAgICAtLWx1bW8tc2l6ZS1tOiAyLjI1cmVtOwogICAgLS1sdW1vLXNpemUtbDogMi43NXJlbTsKICAgIC0tbHVtby1zaXplLXhsOiAzLjVyZW07CgogICAgLyogSWNvbnMgKi8KICAgIC0tbHVtby1pY29uLXNpemUtczogMS4yNWVtOwogICAgLS1sdW1vLWljb24tc2l6ZS1tOiAxLjVlbTsKICAgIC0tbHVtby1pY29uLXNpemUtbDogMi4yNWVtOwogICAgLyogRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5ICovCiAgICAtLWx1bW8taWNvbi1zaXplOiB2YXIoLS1sdW1vLWljb24tc2l6ZS1tKTsKICB9CmAsRGNlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7RGNlLmlubmVySFRNTD1gPHN0eWxlPiR7WXVyLnRvU3RyaW5nKCkucmVwbGFjZSgiOmhvc3QiLCJodG1sIil9PC9zdHlsZT5gO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoRGNlLmNvbnRlbnQpO3ZhciBqdXI9Q2lgCiAgOmhvc3QgewogICAgLyogU3F1YXJlICovCiAgICAtLWx1bW8tc3BhY2UteHM6IDAuMjVyZW07CiAgICAtLWx1bW8tc3BhY2UtczogMC41cmVtOwogICAgLS1sdW1vLXNwYWNlLW06IDFyZW07CiAgICAtLWx1bW8tc3BhY2UtbDogMS41cmVtOwogICAgLS1sdW1vLXNwYWNlLXhsOiAyLjVyZW07CgogICAgLyogV2lkZSAqLwogICAgLS1sdW1vLXNwYWNlLXdpZGUteHM6IGNhbGModmFyKC0tbHVtby1zcGFjZS14cykgLyAyKSB2YXIoLS1sdW1vLXNwYWNlLXhzKTsKICAgIC0tbHVtby1zcGFjZS13aWRlLXM6IGNhbGModmFyKC0tbHVtby1zcGFjZS1zKSAvIDIpIHZhcigtLWx1bW8tc3BhY2Utcyk7CiAgICAtLWx1bW8tc3BhY2Utd2lkZS1tOiBjYWxjKHZhcigtLWx1bW8tc3BhY2UtbSkgLyAyKSB2YXIoLS1sdW1vLXNwYWNlLW0pOwogICAgLS1sdW1vLXNwYWNlLXdpZGUtbDogY2FsYyh2YXIoLS1sdW1vLXNwYWNlLWwpIC8gMikgdmFyKC0tbHVtby1zcGFjZS1sKTsKICAgIC0tbHVtby1zcGFjZS13aWRlLXhsOiBjYWxjKHZhcigtLWx1bW8tc3BhY2UteGwpIC8gMikgdmFyKC0tbHVtby1zcGFjZS14bCk7CgogICAgLyogVGFsbCAqLwogICAgLS1sdW1vLXNwYWNlLXRhbGwteHM6IHZhcigtLWx1bW8tc3BhY2UteHMpIGNhbGModmFyKC0tbHVtby1zcGFjZS14cykgLyAyKTsKICAgIC0tbHVtby1zcGFjZS10YWxsLXM6IHZhcigtLWx1bW8tc3BhY2UtcykgY2FsYyh2YXIoLS1sdW1vLXNwYWNlLXMpIC8gMik7CiAgICAtLWx1bW8tc3BhY2UtdGFsbC1tOiB2YXIoLS1sdW1vLXNwYWNlLW0pIGNhbGModmFyKC0tbHVtby1zcGFjZS1tKSAvIDIpOwogICAgLS1sdW1vLXNwYWNlLXRhbGwtbDogdmFyKC0tbHVtby1zcGFjZS1sKSBjYWxjKHZhcigtLWx1bW8tc3BhY2UtbCkgLyAyKTsKICAgIC0tbHVtby1zcGFjZS10YWxsLXhsOiB2YXIoLS1sdW1vLXNwYWNlLXhsKSBjYWxjKHZhcigtLWx1bW8tc3BhY2UteGwpIC8gMik7CiAgfQpgLE9jZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO09jZS5pbm5lckhUTUw9YDxzdHlsZT4ke2p1ci50b1N0cmluZygpLnJlcGxhY2UoIjpob3N0IiwiaHRtbCIpfTwvc3R5bGU+YDtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKE9jZS5jb250ZW50KTt2YXIgWHVyPUNpYAogIDpob3N0IHsKICAgIC8qIEJvcmRlciByYWRpdXMgKi8KICAgIC0tbHVtby1ib3JkZXItcmFkaXVzLXM6IDAuMjVlbTsgLyogQ2hlY2tib3gsIGJhZGdlLCBkYXRlLXBpY2tlciB5ZWFyIGluZGljYXRvciwgZXRjICovCiAgICAtLWx1bW8tYm9yZGVyLXJhZGl1cy1tOiB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMsIDAuMjVlbSk7IC8qIEJ1dHRvbiwgdGV4dCBmaWVsZCwgbWVudSBvdmVybGF5LCBldGMgKi8KICAgIC0tbHVtby1ib3JkZXItcmFkaXVzLWw6IDAuNWVtOyAvKiBEaWFsb2csIG5vdGlmaWNhdGlvbiwgZXRjICovCiAgICAtLWx1bW8tYm9yZGVyLXJhZGl1czogMC4yNWVtOyAvKiBEZXByZWNhdGVkICovCgogICAgLyogU2hhZG93ICovCiAgICAtLWx1bW8tYm94LXNoYWRvdy14czogMCAxcHggNHB4IC0xcHggdmFyKC0tbHVtby1zaGFkZS01MHBjdCk7CiAgICAtLWx1bW8tYm94LXNoYWRvdy1zOiAwIDJweCA0cHggLTFweCB2YXIoLS1sdW1vLXNoYWRlLTIwcGN0KSwgMCAzcHggMTJweCAtMXB4IHZhcigtLWx1bW8tc2hhZGUtMzBwY3QpOwogICAgLS1sdW1vLWJveC1zaGFkb3ctbTogMCAycHggNnB4IC0xcHggdmFyKC0tbHVtby1zaGFkZS0yMHBjdCksIDAgOHB4IDI0cHggLTRweCB2YXIoLS1sdW1vLXNoYWRlLTQwcGN0KTsKICAgIC0tbHVtby1ib3gtc2hhZG93LWw6IDAgM3B4IDE4cHggLTJweCB2YXIoLS1sdW1vLXNoYWRlLTIwcGN0KSwgMCAxMnB4IDQ4cHggLTZweCB2YXIoLS1sdW1vLXNoYWRlLTQwcGN0KTsKICAgIC0tbHVtby1ib3gtc2hhZG93LXhsOiAwIDRweCAyNHB4IC0zcHggdmFyKC0tbHVtby1zaGFkZS0yMHBjdCksIDAgMThweCA2NHB4IC04cHggdmFyKC0tbHVtby1zaGFkZS00MHBjdCk7CgogICAgLyogQ2xpY2thYmxlIGVsZW1lbnQgY3Vyc29yICovCiAgICAtLWx1bW8tY2xpY2thYmxlLWN1cnNvcjogZGVmYXVsdDsKICB9CmAsemNlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7emNlLmlubmVySFRNTD1gPHN0eWxlPiR7WHVyLnRvU3RyaW5nKCkucmVwbGFjZSgiOmhvc3QiLCJodG1sIil9PC9zdHlsZT5gO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoemNlLmNvbnRlbnQpO3ZhciAkdXI9Q2lgCiAgOmhvc3QgewogICAgLyogcHJldHRpZXItaWdub3JlICovCiAgICAtLWx1bW8tZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1JvYm90bycsICdTZWdvZSBVSScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYsICdBcHBsZSBDb2xvciBFbW9qaScsICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnOwoKICAgIC8qIEZvbnQgc2l6ZXMgKi8KICAgIC0tbHVtby1mb250LXNpemUteHhzOiAwLjc1cmVtOwogICAgLS1sdW1vLWZvbnQtc2l6ZS14czogMC44MTI1cmVtOwogICAgLS1sdW1vLWZvbnQtc2l6ZS1zOiAwLjg3NXJlbTsKICAgIC0tbHVtby1mb250LXNpemUtbTogMXJlbTsKICAgIC0tbHVtby1mb250LXNpemUtbDogMS4xMjVyZW07CiAgICAtLWx1bW8tZm9udC1zaXplLXhsOiAxLjM3NXJlbTsKICAgIC0tbHVtby1mb250LXNpemUteHhsOiAxLjc1cmVtOwogICAgLS1sdW1vLWZvbnQtc2l6ZS14eHhsOiAyLjVyZW07CgogICAgLyogTGluZSBoZWlnaHRzICovCiAgICAtLWx1bW8tbGluZS1oZWlnaHQteHM6IDEuMjU7CiAgICAtLWx1bW8tbGluZS1oZWlnaHQtczogMS4zNzU7CiAgICAtLWx1bW8tbGluZS1oZWlnaHQtbTogMS42MjU7CiAgfQpgLEZjZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO0ZjZS5pbm5lckhUTUw9YDxzdHlsZT4keyR1ci50b1N0cmluZygpLnJlcGxhY2UoIjpob3N0IiwiaHRtbCIpfTwvc3R5bGU+YDtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKEZjZS5jb250ZW50KTt2YXIgS3VyPUNpYAogIGh0bWwgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWx1bW8tZm9udC1mYW1pbHkpOwogICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZSwgdmFyKC0tbHVtby1mb250LXNpemUtbSkpOwogICAgbGluZS1oZWlnaHQ6IHZhcigtLWx1bW8tbGluZS1oZWlnaHQtbSk7CiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAgfQoKICAvKiBDYW7igJl0IGNvbWJpbmUgd2l0aCB0aGUgYWJvdmUgc2VsZWN0b3IgYmVjYXVzZSB0aGF0IGRvZXNu4oCZdCB3b3JrIGluIGJyb3dzZXJzIHdpdGhvdXQgbmF0aXZlIHNoYWRvdyBkb20gKi8KICA6aG9zdCB7CiAgICBmb250LWZhbWlseTogdmFyKC0tbHVtby1mb250LWZhbWlseSk7CiAgICBmb250LXNpemU6IHZhcigtLWx1bW8tZm9udC1zaXplLCB2YXIoLS1sdW1vLWZvbnQtc2l6ZS1tKSk7CiAgICBsaW5lLWhlaWdodDogdmFyKC0tbHVtby1saW5lLWhlaWdodC1tKTsKICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsKICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKICB9CgogIHNtYWxsLAogIFt0aGVtZX49J2ZvbnQtc2l6ZS1zJ10gewogICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS1zKTsKICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1sdW1vLWxpbmUtaGVpZ2h0LXMpOwogIH0KCiAgW3RoZW1lfj0nZm9udC1zaXplLXhzJ10gewogICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS14cyk7CiAgICBsaW5lLWhlaWdodDogdmFyKC0tbHVtby1saW5lLWhlaWdodC14cyk7CiAgfQoKICBoMSwKICBoMiwKICBoMywKICBoNCwKICBoNSwKICBoNiB7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbGluZS1oZWlnaHQ6IHZhcigtLWx1bW8tbGluZS1oZWlnaHQteHMpOwogICAgbWFyZ2luLXRvcDogMS4yNWVtOwogIH0KCiAgaDEgewogICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS14eHhsKTsKICAgIG1hcmdpbi1ib3R0b206IDAuNzVlbTsKICB9CgogIGgyIHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUteHhsKTsKICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOwogIH0KCiAgaDMgewogICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS14bCk7CiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKICB9CgogIGg0IHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUtbCk7CiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKICB9CgogIGg1IHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUtbSk7CiAgICBtYXJnaW4tYm90dG9tOiAwLjI1ZW07CiAgfQoKICBoNiB7CiAgICBmb250LXNpemU6IHZhcigtLWx1bW8tZm9udC1zaXplLXhzKTsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTsKICB9CgogIHAsCiAgYmxvY2txdW90ZSB7CiAgICBtYXJnaW4tdG9wOiAwLjVlbTsKICAgIG1hcmdpbi1ib3R0b206IDAuNzVlbTsKICB9CgogIGEgewogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIH0KCiAgYTpob3ZlciB7CiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICB9CgogIGhyIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgIGhlaWdodDogMXB4OwogICAgYm9yZGVyOiAwOwogICAgcGFkZGluZzogMDsKICAgIG1hcmdpbjogdmFyKC0tbHVtby1zcGFjZS1zKSBjYWxjKHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cy1tKSAvIDIpOwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0xMHBjdCk7CiAgfQoKICBibG9ja3F1b3RlIHsKICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tbHVtby1jb250cmFzdC0zMHBjdCk7CiAgfQoKICBiLAogIHN0cm9uZyB7CiAgICBmb250LXdlaWdodDogNjAwOwogIH0KCiAgLyogUlRMIHNwZWNpZmljIHN0eWxlcyAqLwoKICBibG9ja3F1b3RlW2Rpcj0ncnRsJ10gewogICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB2YXIoLS1sdW1vLWNvbnRyYXN0LTMwcGN0KTsKICB9CmA7amMoIiIsS3VyLHttb2R1bGVJZDoibHVtby10eXBvZ3JhcGh5In0pO2pjKCJ2YWFkaW4tY2hlY2tib3giLENpYAogICAgOmhvc3QgewogICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICBvdXRsaW5lOiBub25lOwogICAgfQoKICAgIFtwYXJ0PSdsYWJlbCddOm5vdChbZW1wdHldKSB7CiAgICAgIG1hcmdpbjogMC4xODc1ZW0gMC44NzVlbSAwLjE4NzVlbSAwLjM3NWVtOwogICAgfQoKICAgIFtwYXJ0PSdjaGVja2JveCddIHsKICAgICAgd2lkdGg6IGNhbGMoMWVtICsgMnB4KTsKICAgICAgaGVpZ2h0OiBjYWxjKDFlbSArIDJweCk7CiAgICAgIG1hcmdpbjogMC4xODc1ZW07CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbHVtby1ib3JkZXItcmFkaXVzLXMpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTIwcGN0KTsKICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuMTIsIDAuMzIsIDAuNTQsIDIpLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzOwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIH0KCiAgICA6aG9zdChbaW5kZXRlcm1pbmF0ZV0pIFtwYXJ0PSdjaGVja2JveCddLAogICAgOmhvc3QoW2NoZWNrZWRdKSBbcGFydD0nY2hlY2tib3gnXSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tcHJpbWFyeS1jb2xvcik7CiAgICB9CgogICAgLyogTmVlZGVkIHRvIGFsaWduIHRoZSBjaGVja2JveCBuaWNlbHkgb24gdGhlIGJhc2VsaW5lICovCiAgICBbcGFydD0nY2hlY2tib3gnXTo6YmVmb3JlIHsKICAgICAgY29udGVudDogJ1xcMjAwMyc7CiAgICB9CgogICAgLyogQ2hlY2ttYXJrICovCiAgICBbcGFydD0nY2hlY2tib3gnXTo6YWZ0ZXIgewogICAgICBjb250ZW50OiAnJzsKICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB3aWR0aDogMDsKICAgICAgaGVpZ2h0OiAwOwogICAgICBib3JkZXI6IDAgc29saWQgdmFyKC0tbHVtby1wcmltYXJ5LWNvbnRyYXN0LWNvbG9yKTsKICAgICAgYm9yZGVyLXdpZHRoOiAwLjE4NzVlbSAwIDAgMC4xODc1ZW07CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDAuODEyNWVtOwogICAgICBsZWZ0OiAwLjVlbTsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjU1KSByb3RhdGUoLTEzNWRlZyk7CiAgICAgIG9wYWNpdHk6IDA7CiAgICB9CgogICAgOmhvc3QoW2NoZWNrZWRdKSBbcGFydD0nY2hlY2tib3gnXTo6YWZ0ZXIgewogICAgICBvcGFjaXR5OiAxOwogICAgICB3aWR0aDogMC42MjVlbTsKICAgICAgaGVpZ2h0OiAxLjA2MjVlbTsKICAgIH0KCiAgICAvKiBJbmRldGVybWluYXRlIGNoZWNrbWFyayAqLwogICAgOmhvc3QoW2luZGV0ZXJtaW5hdGVdKSBbcGFydD0nY2hlY2tib3gnXTo6YWZ0ZXIgewogICAgICB0cmFuc2Zvcm06IG5vbmU7CiAgICAgIG9wYWNpdHk6IDE7CiAgICAgIHRvcDogNDUlOwogICAgICBoZWlnaHQ6IDEwJTsKICAgICAgbGVmdDogMjIlOwogICAgICByaWdodDogMjIlOwogICAgICB3aWR0aDogYXV0bzsKICAgICAgYm9yZGVyOiAwOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sdW1vLXByaW1hcnktY29udHJhc3QtY29sb3IpOwogICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzOwogICAgfQoKICAgIC8qIEZvY3VzIHJpbmcgKi8KICAgIDpob3N0KFtmb2N1cy1yaW5nXSkgW3BhcnQ9J2NoZWNrYm94J10gewogICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggdmFyKC0tbHVtby1wcmltYXJ5LWNvbG9yLTUwcGN0KTsKICAgIH0KCiAgICAvKiBEaXNhYmxlZCAqLwogICAgOmhvc3QoW2Rpc2FibGVkXSkgewogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgY29sb3I6IHZhcigtLWx1bW8tZGlzYWJsZWQtdGV4dC1jb2xvcik7CiAgICB9CgogICAgOmhvc3QoW2Rpc2FibGVkXSkgW3BhcnQ9J2xhYmVsJ10gOjpzbG90dGVkKCopIHsKICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICB9CgogICAgOmhvc3QoW2Rpc2FibGVkXSkgW3BhcnQ9J2NoZWNrYm94J10gewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTEwcGN0KTsKICAgIH0KCiAgICA6aG9zdChbZGlzYWJsZWRdKSBbcGFydD0nY2hlY2tib3gnXTo6YWZ0ZXIgewogICAgICBib3JkZXItY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMzBwY3QpOwogICAgfQoKICAgIDpob3N0KFtpbmRldGVybWluYXRlXVtkaXNhYmxlZF0pIFtwYXJ0PSdjaGVja2JveCddOjphZnRlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMzBwY3QpOwogICAgfQoKICAgIC8qIFJUTCBzcGVjaWZpYyBzdHlsZXMgKi8KICAgIDpob3N0KFtkaXI9J3J0bCddKSBbcGFydD0nbGFiZWwnXTpub3QoW2VtcHR5XSkgewogICAgICBtYXJnaW46IDAuMTg3NWVtIDAuMzc1ZW0gMC4xODc1ZW0gMC44NzVlbTsKICAgIH0KCiAgICAvKiBUcmFuc2l0aW9uIHRoZSBjaGVja21hcmsgaWYgYWN0aXZhdGVkIHdpdGggdGhlIG1vdXNlIChkaXNhYmxlZCBmb3IgZ3JpZCBzZWxlY3QtYWxsIHRoaXMgd2F5KSAqLwogICAgOmhvc3QoOmhvdmVyKSBbcGFydD0nY2hlY2tib3gnXTo6YWZ0ZXIgewogICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzLCBoZWlnaHQgMC4yNXM7CiAgICB9CgogICAgLyogVXNlZCBmb3IgYWN0aXZhdGlvbiAiaGFsbyIgKi8KICAgIFtwYXJ0PSdjaGVja2JveCddOjpiZWZvcmUgewogICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjQpOwogICAgICBvcGFjaXR5OiAwOwogICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcywgb3BhY2l0eSAwLjhzOwogICAgfQoKICAgIC8qIEhvdmVyICovCiAgICA6aG9zdCg6bm90KFtjaGVja2VkXSk6bm90KFtpbmRldGVybWluYXRlXSk6bm90KFtkaXNhYmxlZF0pOmhvdmVyKSBbcGFydD0nY2hlY2tib3gnXSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMzBwY3QpOwogICAgfQoKICAgIC8qIERpc2FibGUgaG92ZXIgZm9yIHRvdWNoIGRldmljZXMgKi8KICAgIEBtZWRpYSAocG9pbnRlcjogY29hcnNlKSB7CiAgICAgIDpob3N0KDpub3QoW2NoZWNrZWRdKTpub3QoW2luZGV0ZXJtaW5hdGVdKTpub3QoW2Rpc2FibGVkXSk6aG92ZXIpIFtwYXJ0PSdjaGVja2JveCddIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTIwcGN0KTsKICAgICAgfQogICAgfQoKICAgIC8qIEFjdGl2ZSAqLwogICAgOmhvc3QoW2FjdGl2ZV0pIFtwYXJ0PSdjaGVja2JveCddIHsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpOwogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjA1czsKICAgIH0KCiAgICA6aG9zdChbYWN0aXZlXVtjaGVja2VkXSkgW3BhcnQ9J2NoZWNrYm94J10gewogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7CiAgICB9CgogICAgOmhvc3QoW2FjdGl2ZV06bm90KFtjaGVja2VkXSkpIFtwYXJ0PSdjaGVja2JveCddOjpiZWZvcmUgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjAxcywgMC4wMXM7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7CiAgICAgIG9wYWNpdHk6IDAuNDsKICAgIH0KICBgLHttb2R1bGVJZDoibHVtby1jaGVja2JveCJ9KTt2YXIgQmNlPWU9PmNsYXNzIGV4dGVuZHMgZXtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57dGhlbWU6e3R5cGU6U3RyaW5nLHJlYWRPbmx5OiEwfX19YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHIsbixpKXtzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2socixuLGkpLHI9PT0idGhlbWUiJiZ0aGlzLl9zZXRUaGVtZShpKX19O3ZhciBYSD1lPT5jbGFzcyBleHRlbmRzIEJjZShlKXtzdGF0aWMgZmluYWxpemUoKXtzdXBlci5maW5hbGl6ZSgpO2xldCByPXRoaXMucHJvdG90eXBlLl90ZW1wbGF0ZSxuPU9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzLnByb3RvdHlwZSkuX3RlbXBsYXRlO24mJkFycmF5LmZyb20obi5jb250ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlW2luY2x1ZGVdIikpLmZvckVhY2goaT0+e3RoaXMuX2luY2x1ZGVTdHlsZShpLmdldEF0dHJpYnV0ZSgiaW5jbHVkZSIpLHIpfSksdGhpcy5faW5jbHVkZU1hdGNoaW5nVGhlbWVzKHIpfXN0YXRpYyBfaW5jbHVkZU1hdGNoaW5nVGhlbWVzKHIpe2xldCBpPW91LnByb3RvdHlwZS5tb2R1bGVzLG89ITEsYT10aGlzLmlzKyItZGVmYXVsdC10aGVtZSI7T2JqZWN0LmtleXMoaSkuc29ydCgocyxsKT0+e2xldCBjPXMuaW5kZXhPZigidmFhZGluLSIpPT09MCx1PWwuaW5kZXhPZigidmFhZGluLSIpPT09MCxoPVsibHVtby0iLCJtYXRlcmlhbC0iXSxmPWguZmlsdGVyKGQ9PnMuaW5kZXhPZihkKT09PTApLmxlbmd0aD4wLHA9aC5maWx0ZXIoZD0+bC5pbmRleE9mKGQpPT09MCkubGVuZ3RoPjA7cmV0dXJuIGMhPT11P2M/LTE6MTpmIT09cD9mPy0xOjE6MH0pLmZvckVhY2gocz0+e2lmKHMhPT1hKXtsZXQgbD1pW3NdLmdldEF0dHJpYnV0ZSgidGhlbWUtZm9yIik7bCYmbC5zcGxpdCgiICIpLmZvckVhY2goYz0+e25ldyBSZWdFeHAoIl4iK2Muc3BsaXQoIioiKS5qb2luKCIuKiIpKyIkIikudGVzdCh0aGlzLmlzKSYmKG89ITAsdGhpcy5faW5jbHVkZVN0eWxlKHMscikpfSl9fSksIW8mJmlbYV0mJnRoaXMuX2luY2x1ZGVTdHlsZShhLHIpfXN0YXRpYyBfaW5jbHVkZVN0eWxlKHIsbil7aWYobiYmIW4uY29udGVudC5xdWVyeVNlbGVjdG9yKGBzdHlsZVtpbmNsdWRlPSIke3J9Il1gKSl7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtpLnNldEF0dHJpYnV0ZSgiaW5jbHVkZSIsciksbi5jb250ZW50LmFwcGVuZENoaWxkKGkpfX19O3ZhciBrY3Q9ITE7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCgpPT57a2N0PSEwfSx7Y2FwdHVyZTohMH0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCgpPT57a2N0PSExfSx7Y2FwdHVyZTohMH0pO3ZhciBadXI9ZT0+Y2xhc3MgZXh0ZW5kcyBle3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybnt0YWJpbmRleDp7dHlwZTpOdW1iZXIsdmFsdWU6MCxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsb2JzZXJ2ZXI6Il90YWJpbmRleENoYW5nZWQifX19fSxIY2U9ZT0+Y2xhc3MgZXh0ZW5kcyBadXIoZSl7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2F1dG9mb2N1czp7dHlwZTpCb29sZWFufSxfcHJldmlvdXNUYWJJbmRleDp7dHlwZTpOdW1iZXJ9LGRpc2FibGVkOnt0eXBlOkJvb2xlYW4sb2JzZXJ2ZXI6Il9kaXNhYmxlZENoYW5nZWQiLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0sX2lzU2hpZnRUYWJiaW5nOnt0eXBlOkJvb2xlYW59fX1yZWFkeSgpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIscj0+e3IuY29tcG9zZWRQYXRoKClbMF09PT10aGlzP3RoaXMuY29udGFpbnMoci5yZWxhdGVkVGFyZ2V0KXx8dGhpcy5fZm9jdXMoKTpyLmNvbXBvc2VkUGF0aCgpLmluZGV4T2YodGhpcy5mb2N1c0VsZW1lbnQpIT09LTEmJiF0aGlzLmRpc2FibGVkJiZ0aGlzLl9zZXRGb2N1c2VkKCEwKX0pLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLCgpPT50aGlzLl9zZXRGb2N1c2VkKCExKSksc3VwZXIucmVhZHkoKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHI9Pnshci5kZWZhdWx0UHJldmVudGVkJiZyLmtleUNvZGU9PT05JiZyLnNoaWZ0S2V5JiYodGhpcy5faXNTaGlmdFRhYmJpbmc9ITAsSFRNTEVsZW1lbnQucHJvdG90eXBlLmZvY3VzLmFwcGx5KHRoaXMpLHRoaXMuX3NldEZvY3VzZWQoITEpLHNldFRpbWVvdXQoKCk9PnRoaXMuX2lzU2hpZnRUYWJiaW5nPSExLDApKX0pLHRoaXMuYXV0b2ZvY3VzJiYhdGhpcy5kaXNhYmxlZCYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuX2ZvY3VzKCksdGhpcy5fc2V0Rm9jdXNlZCghMCksdGhpcy5zZXRBdHRyaWJ1dGUoImZvY3VzLXJpbmciLCIiKX0pfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhhc0F0dHJpYnV0ZSgiZm9jdXNlZCIpJiZ0aGlzLl9zZXRGb2N1c2VkKCExKX1fc2V0Rm9jdXNlZChyKXtyP3RoaXMuc2V0QXR0cmlidXRlKCJmb2N1c2VkIiwiIik6dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImZvY3VzZWQiKSxyJiZrY3Q/dGhpcy5zZXRBdHRyaWJ1dGUoImZvY3VzLXJpbmciLCIiKTp0aGlzLnJlbW92ZUF0dHJpYnV0ZSgiZm9jdXMtcmluZyIpfWdldCBmb2N1c0VsZW1lbnQoKXtyZXR1cm4gd2luZG93LmNvbnNvbGUud2FybihgUGxlYXNlIGltcGxlbWVudCB0aGUgJ2ZvY3VzRWxlbWVudCcgcHJvcGVydHkgaW4gPCR7dGhpcy5sb2NhbE5hbWV9PmApLHRoaXN9X2ZvY3VzKCl7IXRoaXMuZm9jdXNFbGVtZW50fHx0aGlzLl9pc1NoaWZ0VGFiYmluZ3x8KHRoaXMuZm9jdXNFbGVtZW50LmZvY3VzKCksdGhpcy5fc2V0Rm9jdXNlZCghMCkpfWZvY3VzKCl7IXRoaXMuZm9jdXNFbGVtZW50fHx0aGlzLmRpc2FibGVkfHwodGhpcy5mb2N1c0VsZW1lbnQuZm9jdXMoKSx0aGlzLl9zZXRGb2N1c2VkKCEwKSl9Ymx1cigpeyF0aGlzLmZvY3VzRWxlbWVudHx8KHRoaXMuZm9jdXNFbGVtZW50LmJsdXIoKSx0aGlzLl9zZXRGb2N1c2VkKCExKSl9X2Rpc2FibGVkQ2hhbmdlZChyKXt0aGlzLmZvY3VzRWxlbWVudC5kaXNhYmxlZD1yLHI/KHRoaXMuYmx1cigpLHRoaXMuX3ByZXZpb3VzVGFiSW5kZXg9dGhpcy50YWJpbmRleCx0aGlzLnRhYmluZGV4PS0xLHRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWRpc2FibGVkIiwidHJ1ZSIpKToodHlwZW9mIHRoaXMuX3ByZXZpb3VzVGFiSW5kZXghPSJ1bmRlZmluZWQiJiYodGhpcy50YWJpbmRleD10aGlzLl9wcmV2aW91c1RhYkluZGV4KSx0aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1kaXNhYmxlZCIpKX1fdGFiaW5kZXhDaGFuZ2VkKHIpe3IhPT12b2lkIDAmJih0aGlzLmZvY3VzRWxlbWVudC50YWJJbmRleD1yKSx0aGlzLmRpc2FibGVkJiZ0aGlzLnRhYmluZGV4JiYodGhpcy50YWJpbmRleCE9PS0xJiYodGhpcy5fcHJldmlvdXNUYWJJbmRleD10aGlzLnRhYmluZGV4KSx0aGlzLnRhYmluZGV4PXI9dm9pZCAwKX1jbGljaygpe3RoaXMuZGlzYWJsZWR8fHN1cGVyLmNsaWNrKCl9fTt2YXIgSnVyPS9cL1wqXCpccyt2YWFkaW4tZGV2LW1vZGU6c3RhcnQoW1xzXFNdKil2YWFkaW4tZGV2LW1vZGU6ZW5kXHMrXCpcKlwvL2ksJEg9d2luZG93LlZhYWRpbiYmd2luZG93LlZhYWRpbi5GbG93JiZ3aW5kb3cuVmFhZGluLkZsb3cuY2xpZW50cztmdW5jdGlvbiBRdXIoKXtmdW5jdGlvbiBlKCl7cmV0dXJuITB9cmV0dXJuIFZjZShlKX1mdW5jdGlvbiB0aHIoKXt0cnl7cmV0dXJuIGVocigpPyEwOnJocigpPyRIPyFuaHIoKTohUXVyKCk6ITF9Y2F0Y2goZSl7cmV0dXJuITF9fWZ1bmN0aW9uIGVocigpe3JldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgidmFhZGluLmRldmVsb3BtZW50bW9kZS5mb3JjZSIpfWZ1bmN0aW9uIHJocigpe3JldHVyblsibG9jYWxob3N0IiwiMTI3LjAuMC4xIl0uaW5kZXhPZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpPj0wfWZ1bmN0aW9uIG5ocigpe3JldHVybiEhKCRIJiZPYmplY3Qua2V5cygkSCkubWFwKHQ9PiRIW3RdKS5maWx0ZXIodD0+dC5wcm9kdWN0aW9uTW9kZSkubGVuZ3RoPjApfWZ1bmN0aW9uIFZjZShlLHQpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXJldHVybjtsZXQgcj1KdXIuZXhlYyhlLnRvU3RyaW5nKCkpO2lmKHIpdHJ5e2U9bmV3IEZ1bmN0aW9uKHJbMV0pfWNhdGNoKG4pe2NvbnNvbGUubG9nKCJ2YWFkaW4tZGV2ZWxvcG1lbnQtbW9kZS1kZXRlY3RvcjogdW5jb21tZW50QW5kUnVuKCkgZmFpbGVkIixuKX1yZXR1cm4gZSh0KX13aW5kb3cuVmFhZGluPXdpbmRvdy5WYWFkaW58fHt9O3ZhciBSY3Q9ZnVuY3Rpb24oZSx0KXtpZih3aW5kb3cuVmFhZGluLmRldmVsb3BtZW50TW9kZSlyZXR1cm4gVmNlKGUsdCl9O3dpbmRvdy5WYWFkaW4uZGV2ZWxvcG1lbnRNb2RlPT09dm9pZCAwJiYod2luZG93LlZhYWRpbi5kZXZlbG9wbWVudE1vZGU9dGhyKCkpO2Z1bmN0aW9uIGlocigpe312YXIgVWNlPWZ1bmN0aW9uKCl7aWYodHlwZW9mIFJjdD09ImZ1bmN0aW9uIilyZXR1cm4gUmN0KGlocil9O3ZhciBfMz1jbGFzc3tzdGF0aWMgZGV0ZWN0U2Nyb2xsVHlwZSgpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QudGV4dENvbnRlbnQ9IkFCQ0QiLHQuZGlyPSJydGwiLHQuc3R5bGUuZm9udFNpemU9IjE0cHgiLHQuc3R5bGUud2lkdGg9IjRweCIsdC5zdHlsZS5oZWlnaHQ9IjFweCIsdC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHQuc3R5bGUudG9wPSItMTAwMHB4Iix0LnN0eWxlLm92ZXJmbG93PSJzY3JvbGwiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCk7bGV0IHI9InJldmVyc2UiO3JldHVybiB0LnNjcm9sbExlZnQ+MD9yPSJkZWZhdWx0IjoodC5zY3JvbGxMZWZ0PTIsdC5zY3JvbGxMZWZ0PDImJihyPSJuZWdhdGl2ZSIpKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHQpLHJ9c3RhdGljIGdldE5vcm1hbGl6ZWRTY3JvbGxMZWZ0KHQscixuKXtsZXR7c2Nyb2xsTGVmdDppfT1uO2lmKHIhPT0icnRsInx8IXQpcmV0dXJuIGk7c3dpdGNoKHQpe2Nhc2UibmVnYXRpdmUiOnJldHVybiBuLnNjcm9sbFdpZHRoLW4uY2xpZW50V2lkdGgraTtjYXNlInJldmVyc2UiOnJldHVybiBuLnNjcm9sbFdpZHRoLW4uY2xpZW50V2lkdGgtaX1yZXR1cm4gaX1zdGF0aWMgc2V0Tm9ybWFsaXplZFNjcm9sbExlZnQodCxyLG4saSl7aWYociE9PSJydGwifHwhdCl7bi5zY3JvbGxMZWZ0PWk7cmV0dXJufXN3aXRjaCh0KXtjYXNlIm5lZ2F0aXZlIjpuLnNjcm9sbExlZnQ9bi5jbGllbnRXaWR0aC1uLnNjcm9sbFdpZHRoK2k7YnJlYWs7Y2FzZSJyZXZlcnNlIjpuLnNjcm9sbExlZnQ9bi5zY3JvbGxXaWR0aC1uLmNsaWVudFdpZHRoLWk7YnJlYWs7ZGVmYXVsdDpuLnNjcm9sbExlZnQ9aTticmVha319fTt2YXIgVDA9W10sb2hyPWZ1bmN0aW9uKCl7bGV0IGU9RGN0KCk7VDAuZm9yRWFjaCh0PT57TmN0KHQsZSl9KX0sS0gsYWhyPW5ldyBNdXRhdGlvbk9ic2VydmVyKG9ocik7YWhyLm9ic2VydmUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbImRpciJdfSk7dmFyIE5jdD1mdW5jdGlvbihlLHQscj1lLmdldEF0dHJpYnV0ZSgiZGlyIikpe3Q/ZS5zZXRBdHRyaWJ1dGUoImRpciIsdCk6ciE9bnVsbCYmZS5yZW1vdmVBdHRyaWJ1dGUoImRpciIpfSxEY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGlyIil9LFpIPWU9PmNsYXNzIGV4dGVuZHMgZXtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57ZGlyOnt0eXBlOlN0cmluZyx2YWx1ZToiIixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9fX1zdGF0aWMgZmluYWxpemUoKXtzdXBlci5maW5hbGl6ZSgpLEtIfHwoS0g9XzMuZGV0ZWN0U2Nyb2xsVHlwZSgpKX1jb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5oYXNBdHRyaWJ1dGUoImRpciIpfHwodGhpcy5fX3N1YnNjcmliZSgpLE5jdCh0aGlzLERjdCgpLG51bGwpKX1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2socixuLGkpe2lmKHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhyLG4saSksciE9PSJkaXIiKXJldHVybjtsZXQgbz1EY3QoKSxhPWk9PT1vJiZUMC5pbmRleE9mKHRoaXMpPT09LTEscz0haSYmbiYmVDAuaW5kZXhPZih0aGlzKT09PS0xO2F8fHM/KHRoaXMuX19zdWJzY3JpYmUoKSxOY3QodGhpcyxvLGkpKTppIT09byYmbj09PW8mJnRoaXMuX19zdWJzY3JpYmUoITEpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9fc3Vic2NyaWJlKCExKSx0aGlzLnJlbW92ZUF0dHJpYnV0ZSgiZGlyIil9X3ZhbHVlVG9Ob2RlQXR0cmlidXRlKHIsbixpKXtpPT09ImRpciImJm49PT0iIiYmIXIuaGFzQXR0cmlidXRlKCJkaXIiKXx8c3VwZXIuX3ZhbHVlVG9Ob2RlQXR0cmlidXRlKHIsbixpKX1fYXR0cmlidXRlVG9Qcm9wZXJ0eShyLG4saSl7cj09PSJkaXIiJiYhbj90aGlzLmRpcj0iIjpzdXBlci5fYXR0cmlidXRlVG9Qcm9wZXJ0eShyLG4saSl9X19zdWJzY3JpYmUocj0hMCl7cj9UMC5pbmRleE9mKHRoaXMpPT09LTEmJlQwLnB1c2godGhpcyk6VDAuaW5kZXhPZih0aGlzKT4tMSYmVDAuc3BsaWNlKFQwLmluZGV4T2YodGhpcyksMSl9X19nZXROb3JtYWxpemVkU2Nyb2xsTGVmdChyKXtyZXR1cm4gXzMuZ2V0Tm9ybWFsaXplZFNjcm9sbExlZnQoS0gsdGhpcy5nZXRBdHRyaWJ1dGUoImRpciIpfHwibHRyIixyKX1fX3NldE5vcm1hbGl6ZWRTY3JvbGxMZWZ0KHIsbil7cmV0dXJuIF8zLnNldE5vcm1hbGl6ZWRTY3JvbGxMZWZ0KEtILHRoaXMuZ2V0QXR0cmlidXRlKCJkaXIiKXx8Imx0ciIscixuKX19O3dpbmRvdy5WYWFkaW49d2luZG93LlZhYWRpbnx8e307d2luZG93LlZhYWRpbi5yZWdpc3RyYXRpb25zPXdpbmRvdy5WYWFkaW4ucmVnaXN0cmF0aW9uc3x8W107d2luZG93LlZhYWRpbi5kZXZlbG9wbWVudE1vZGVDYWxsYmFjaz13aW5kb3cuVmFhZGluLmRldmVsb3BtZW50TW9kZUNhbGxiYWNrfHx7fTt3aW5kb3cuVmFhZGluLmRldmVsb3BtZW50TW9kZUNhbGxiYWNrWyJ2YWFkaW4tdXNhZ2Utc3RhdGlzdGljcyJdPWZ1bmN0aW9uKCl7VWNlKCl9O3ZhciBPY3QscWNlPW5ldyBTZXQsSkg9ZT0+Y2xhc3MgZXh0ZW5kcyBaSChlKXtzdGF0aWMgZmluYWxpemUoKXtzdXBlci5maW5hbGl6ZSgpO2xldHtpczpyfT10aGlzO3ImJiFxY2UuaGFzKHIpJiYod2luZG93LlZhYWRpbi5yZWdpc3RyYXRpb25zLnB1c2godGhpcykscWNlLmFkZChyKSx3aW5kb3cuVmFhZGluLmRldmVsb3BtZW50TW9kZUNhbGxiYWNrJiYoT2N0PXNyLmRlYm91bmNlKE9jdCxreCwoKT0+e3dpbmRvdy5WYWFkaW4uZGV2ZWxvcG1lbnRNb2RlQ2FsbGJhY2tbInZhYWRpbi11c2FnZS1zdGF0aXN0aWNzIl0oKX0pLEpsKE9jdCkpKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksZG9jdW1lbnQuZG9jdHlwZT09PW51bGwmJmNvbnNvbGUud2FybignVmFhZGluIGNvbXBvbmVudHMgcmVxdWlyZSB0aGUgInN0YW5kYXJkcyBtb2RlIiBkZWNsYXJhdGlvbi4gUGxlYXNlIGFkZCA8IURPQ1RZUEUgaHRtbD4gdG8gdGhlIEhUTUwgZG9jdW1lbnQuJyl9fTt2YXIgUUg9Y2xhc3MgZXh0ZW5kcyBKSChIY2UoWEgodmgobXQpKSkpe3N0YXRpYyBnZXQgdGVtcGxhdGUoKXtyZXR1cm4gUWAKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgICAgfQoKICAgICAgICBsYWJlbCB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICBbcGFydD0nY2hlY2tib3gnXSB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICBmbGV4OiBub25lOwogICAgICAgIH0KCiAgICAgICAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICBjdXJzb3I6IGluaGVyaXQ7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbZGlzYWJsZWRdKSB7CiAgICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxsYWJlbD4KICAgICAgICA8c3BhbiBwYXJ0PSJjaGVja2JveCI+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0iY2hlY2tib3giCiAgICAgICAgICAgIGNoZWNrZWQ9Int7Y2hlY2tlZDo6Y2hhbmdlfX0iCiAgICAgICAgICAgIGRpc2FibGVkJD0iW1tkaXNhYmxlZF1dIgogICAgICAgICAgICBpbmRldGVybWluYXRlPSJ7e2luZGV0ZXJtaW5hdGU6OmNoYW5nZX19IgogICAgICAgICAgICByb2xlPSJwcmVzZW50YXRpb24iCiAgICAgICAgICAgIHRhYmluZGV4PSItMSIKICAgICAgICAgIC8+CiAgICAgICAgPC9zcGFuPgoKICAgICAgICA8c3BhbiBwYXJ0PSJsYWJlbCI+CiAgICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2xhYmVsPgogICAgYH1zdGF0aWMgZ2V0IGlzKCl7cmV0dXJuInZhYWRpbi1jaGVja2JveCJ9c3RhdGljIGdldCB2ZXJzaW9uKCl7cmV0dXJuIjIwLjAuMiJ9c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2NoZWNrZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITAsb2JzZXJ2ZXI6Il9jaGVja2VkQ2hhbmdlZCIscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxpbmRldGVybWluYXRlOnt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwLG9ic2VydmVyOiJfaW5kZXRlcm1pbmF0ZUNoYW5nZWQiLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCx2YWx1ZTohMX0sdmFsdWU6e3R5cGU6U3RyaW5nLHZhbHVlOiJvbiJ9LF9uYXRpdmVDaGVja2JveDp7dHlwZTpPYmplY3R9fX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5uYW1lfWdldCBuYW1lKCl7cmV0dXJuIHRoaXMuY2hlY2tlZD90aGlzLl9zdG9yZWROYW1lOiIifXNldCBuYW1lKHQpe3RoaXMuX3N0b3JlZE5hbWU9dH1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5zZXRBdHRyaWJ1dGUoInJvbGUiLCJjaGVja2JveCIpLHRoaXMuX25hdGl2ZUNoZWNrYm94PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPSJjaGVja2JveCJdJyksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5faGFuZGxlQ2xpY2suYmluZCh0aGlzKSksdGhpcy5fYWRkQWN0aXZlTGlzdGVuZXJzKCk7bGV0IHQ9dGhpcy5nZXRBdHRyaWJ1dGUoIm5hbWUiKTt0JiYodGhpcy5uYW1lPXQpLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdbcGFydH49ImxhYmVsIl0nKS5xdWVyeVNlbGVjdG9yKCJzbG90IikuYWRkRXZlbnRMaXN0ZW5lcigic2xvdGNoYW5nZSIsdGhpcy5fdXBkYXRlTGFiZWxBdHRyaWJ1dGUuYmluZCh0aGlzKSksdGhpcy5fdXBkYXRlTGFiZWxBdHRyaWJ1dGUoKX1fdXBkYXRlTGFiZWxBdHRyaWJ1dGUoKXtsZXQgdD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignW3BhcnR+PSJsYWJlbCJdJykscj10LmZpcnN0RWxlbWVudENoaWxkLmFzc2lnbmVkTm9kZXMoKTt0aGlzLl9pc0Fzc2lnbmVkTm9kZXNFbXB0eShyKT90LnNldEF0dHJpYnV0ZSgiZW1wdHkiLCIiKTp0LnJlbW92ZUF0dHJpYnV0ZSgiZW1wdHkiKX1faXNBc3NpZ25lZE5vZGVzRW1wdHkodCl7cmV0dXJuIHQubGVuZ3RoPT09MHx8dC5sZW5ndGg9PTEmJnRbMF0ubm9kZVR5cGU9PU5vZGUuVEVYVF9OT0RFJiZ0WzBdLnRleHRDb250ZW50LnRyaW0oKT09PSIifV9jaGVja2VkQ2hhbmdlZCh0KXt0aGlzLmluZGV0ZXJtaW5hdGU/dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIsIm1peGVkIik6dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIsQm9vbGVhbih0KSl9X2luZGV0ZXJtaW5hdGVDaGFuZ2VkKHQpe3Q/dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIsIm1peGVkIik6dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIsdGhpcy5jaGVja2VkKX1fYWRkQWN0aXZlTGlzdGVuZXJzKCl7dGhpcy5fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSh0aGlzLCJkb3duIix0PT57dGhpcy5fX2ludGVyYWN0aW9uc0FsbG93ZWQodCkmJnRoaXMuc2V0QXR0cmlidXRlKCJhY3RpdmUiLCIiKX0pLHRoaXMuX2FkZEV2ZW50TGlzdGVuZXJUb05vZGUodGhpcywidXAiLCgpPT50aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYWN0aXZlIikpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdD0+e3RoaXMuX19pbnRlcmFjdGlvbnNBbGxvd2VkKHQpJiZ0LmtleUNvZGU9PT0zMiYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLnNldEF0dHJpYnV0ZSgiYWN0aXZlIiwiIikpfSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdD0+e3RoaXMuX19pbnRlcmFjdGlvbnNBbGxvd2VkKHQpJiZ0LmtleUNvZGU9PT0zMiYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLl90b2dnbGVDaGVja2VkKCksdGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFjdGl2ZSIpLHRoaXMuaW5kZXRlcm1pbmF0ZSYmKHRoaXMuaW5kZXRlcm1pbmF0ZT0hMSkpfSl9Z2V0IGZvY3VzRWxlbWVudCgpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKX1fX2ludGVyYWN0aW9uc0FsbG93ZWQodCl7cmV0dXJuISh0aGlzLmRpc2FibGVkfHx0LnRhcmdldC5sb2NhbE5hbWU9PT0iYSIpfV9oYW5kbGVDbGljayh0KXt0aGlzLl9faW50ZXJhY3Rpb25zQWxsb3dlZCh0KSYmKHRoaXMuaW5kZXRlcm1pbmF0ZT8odGhpcy5pbmRldGVybWluYXRlPSExLHQucHJldmVudERlZmF1bHQoKSx0aGlzLl90b2dnbGVDaGVja2VkKCkpOnQuY29tcG9zZWRQYXRoKClbMF0hPT10aGlzLl9uYXRpdmVDaGVja2JveCYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLl90b2dnbGVDaGVja2VkKCkpKX1fdG9nZ2xlQ2hlY2tlZCgpe3RoaXMuY2hlY2tlZD0hdGhpcy5jaGVja2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2NvbXBvc2VkOiExLGJ1YmJsZXM6ITB9KSl9fTtjdXN0b21FbGVtZW50cy5kZWZpbmUoUUguaXMsUUgpO2pjKCJ2YWFkaW4tZ3JpZCIsQ2lgCiAgICA6aG9zdCB7CiAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1sdW1vLWZvbnQtZmFtaWx5KTsKICAgICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS1tKTsKICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWx1bW8tbGluZS1oZWlnaHQtcyk7CiAgICAgIGNvbG9yOiB2YXIoLS1sdW1vLWJvZHktdGV4dC1jb2xvcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tYmFzZS1jb2xvcik7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsKICAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CgogICAgICAvKiBGb3IgaW50ZXJuYWwgdXNlIG9ubHkgKi8KICAgICAgLS1fbHVtby1ncmlkLWJvcmRlci1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0yMHBjdCk7CiAgICAgIC0tX2x1bW8tZ3JpZC1zZWNvbmRhcnktYm9yZGVyLWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTEwcGN0KTsKICAgICAgLS1fbHVtby1ncmlkLWJvcmRlci13aWR0aDogMXB4OwogICAgICAtLV9sdW1vLWdyaWQtc2VsZWN0ZWQtcm93LWNvbG9yOiB2YXIoLS1sdW1vLXByaW1hcnktY29sb3ItMTBwY3QpOwogICAgfQoKICAgIC8qIE5vIChvdXRlcikgYm9yZGVyICovCgogICAgOmhvc3QoOm5vdChbdGhlbWV+PSduby1ib3JkZXInXSkpIHsKICAgICAgYm9yZGVyOiB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItY29sb3IpOwogICAgfQoKICAgIC8qIENlbGwgc3R5bGVzICovCgogICAgW3BhcnR+PSdjZWxsJ10gewogICAgICBtaW4taGVpZ2h0OiB2YXIoLS1sdW1vLXNpemUtbSk7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tYmFzZS1jb2xvcik7CiAgICB9CgogICAgW3BhcnR+PSdjZWxsJ10gOjpzbG90dGVkKHZhYWRpbi1ncmlkLWNlbGwtY29udGVudCkgewogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIHBhZGRpbmc6IHZhcigtLWx1bW8tc3BhY2UteHMpIHZhcigtLWx1bW8tc3BhY2UtbSk7CiAgICB9CgogICAgLyogQXBwbHkgcm93IGJvcmRlcnMgYnkgZGVmYXVsdCBhbmQgaW50cm9kdWNlIHRoZSAibm8tcm93LWJvcmRlcnMiIHZhcmlhbnQgKi8KICAgIDpob3N0KDpub3QoW3RoZW1lfj0nbm8tcm93LWJvcmRlcnMnXSkpIFtwYXJ0fj0nY2VsbCddOm5vdChbcGFydH49J2RldGFpbHMtY2VsbCddKSB7CiAgICAgIGJvcmRlci10b3A6IHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1fbHVtby1ncmlkLXNlY29uZGFyeS1ib3JkZXItY29sb3IpOwogICAgfQoKICAgIC8qIEhpZGUgZmlyc3QgYm9keSByb3cgdG9wIGJvcmRlciAqLwogICAgOmhvc3QoOm5vdChbdGhlbWV+PSduby1yb3ctYm9yZGVycyddKSkgW3BhcnQ9J3JvdyddW2ZpcnN0XSBbcGFydH49J2NlbGwnXTpub3QoW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSkgewogICAgICBib3JkZXItdG9wOiAwOwogICAgICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLWx1bW8tc2l6ZS1tKSAtIHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSk7CiAgICB9CgogICAgLyogRm9jdXMtcmluZyAqLwoKICAgIFtwYXJ0fj0nY2VsbCddOmZvY3VzIHsKICAgICAgb3V0bGluZTogbm9uZTsKICAgIH0KCiAgICA6aG9zdChbbmF2aWdhdGluZ10pIFtwYXJ0fj0nY2VsbCddOmZvY3VzOjpiZWZvcmUgewogICAgICBjb250ZW50OiAnJzsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBib3R0b206IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggdmFyKC0tbHVtby1wcmltYXJ5LWNvbG9yLTUwcGN0KTsKICAgIH0KCiAgICAvKiBEcmFnIGFuZCBEcm9wIHN0eWxlcyAqLwogICAgOmhvc3QoW2RyYWdvdmVyXSk6OmFmdGVyIHsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgei1pbmRleDogMTAwOwogICAgICB0b3A6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBib3R0b206IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggdmFyKC0tbHVtby1wcmltYXJ5LWNvbG9yLTUwcGN0KTsKICAgIH0KCiAgICBbcGFydH49J3JvdyddW2RyYWdvdmVyXSB7CiAgICAgIHotaW5kZXg6IDEwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIFtwYXJ0fj0ncm93J11bZHJhZ292ZXJdIFtwYXJ0fj0nY2VsbCddIHsKICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXVtkcmFnb3Zlcl0gW3BhcnR+PSdjZWxsJ106OmFmdGVyIHsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBsZWZ0OiAwOwogICAgICBoZWlnaHQ6IGNhbGModmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGgpICsgMnB4KTsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWx1bW8tcHJpbWFyeS1jb2xvci01MHBjdCk7CiAgICB9CgogICAgOmhvc3QoW3RoZW1lfj0nbm8tcm93LWJvcmRlcnMnXSkgW2RyYWdvdmVyXSBbcGFydH49J2NlbGwnXTo6YWZ0ZXIgewogICAgICBoZWlnaHQ6IDJweDsKICAgIH0KCiAgICBbcGFydH49J3JvdyddW2RyYWdvdmVyPSdiZWxvdyddIFtwYXJ0fj0nY2VsbCddOjphZnRlciB7CiAgICAgIHRvcDogMTAwJTsKICAgICAgYm90dG9tOiBhdXRvOwogICAgICBtYXJnaW4tdG9wOiAtMXB4OwogICAgfQoKICAgIFtwYXJ0fj0ncm93J11bZHJhZ292ZXI9J2Fib3ZlJ10gW3BhcnR+PSdjZWxsJ106OmFmdGVyIHsKICAgICAgdG9wOiBhdXRvOwogICAgICBib3R0b206IDEwMCU7CiAgICAgIG1hcmdpbi1ib3R0b206IC0xcHg7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXVtkZXRhaWxzLW9wZW5lZF1bZHJhZ292ZXI9J2JlbG93J10gW3BhcnR+PSdjZWxsJ106bm90KFtwYXJ0fj0nZGV0YWlscy1jZWxsJ10pOjphZnRlciwKICAgIFtwYXJ0fj0ncm93J11bZGV0YWlscy1vcGVuZWRdW2RyYWdvdmVyPSdhYm92ZSddIFtwYXJ0fj0nZGV0YWlscy1jZWxsJ106OmFmdGVyIHsKICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICBbcGFydH49J3JvdyddW2RyYWdvdmVyXVtkcmFnb3Zlcj0nb24tdG9wJ10gW3BhcnR+PSdjZWxsJ106OmFmdGVyIHsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgfQoKICAgIFtwYXJ0fj0ncm93J11bZHJhZ3N0YXJ0XSB7CiAgICAgIC8qIEFkZCBib3R0b20tc3BhY2UgdG8gdGhlIHJvdyBzbyB0aGUgZHJhZyBudW1iZXIgZG9lc24ndCBnZXQgY2xpcHBlZC4gTmVlZGVkIGZvciBJRS9FZGdlICovCiAgICAgIGJvcmRlci1ib3R0b206IDEwMHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB6LWluZGV4OiAxMDAgIWltcG9ydGFudDsKICAgICAgb3BhY2l0eTogMC45OwogICAgfQoKICAgIFtwYXJ0fj0ncm93J11bZHJhZ3N0YXJ0XSBbcGFydH49J2NlbGwnXSB7CiAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwogICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXVtkcmFnc3RhcnRdIFtwYXJ0fj0nY2VsbCddW2xhc3QtY29sdW1uXSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tbHVtby1ib3JkZXItcmFkaXVzLXMpIHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cy1zKSAwOwogICAgfQoKICAgIFtwYXJ0fj0ncm93J11bZHJhZ3N0YXJ0XSBbcGFydH49J2NlbGwnXVtmaXJzdC1jb2x1bW5dIHsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbHVtby1ib3JkZXItcmFkaXVzLXMpIDAgMCB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtcyk7CiAgICB9CgogICAgW2lvc10gW3BhcnR+PSdyb3cnXVtkcmFnc3RhcnRdIFtwYXJ0fj0nY2VsbCddIHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tbHVtby1wcmltYXJ5LWNvbG9yLTUwcGN0KTsKICAgIH0KCiAgICAjc2Nyb2xsZXI6bm90KFtpb3NdKSBbcGFydH49J3JvdyddW2RyYWdzdGFydF06bm90KFtkcmFnc3RhcnQ9JyddKTo6YWZ0ZXIgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBsZWZ0OiB2YXIoLS1fZ3JpZC1kcmFnLXN0YXJ0LXgpOwogICAgICB0b3A6IHZhcigtLV9ncmlkLWRyYWctc3RhcnQteSk7CiAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgY29udGVudDogYXR0cihkcmFnc3RhcnQpOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1sdW1vLXNwYWNlLXhzKSAqIDAuOCk7CiAgICAgIGNvbG9yOiB2YXIoLS1sdW1vLWVycm9yLWNvbnRyYXN0LWNvbG9yKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1lcnJvci1jb2xvcik7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cy1tKTsKICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWx1bW8tZm9udC1mYW1pbHkpOwogICAgICBmb250LXNpemU6IHZhcigtLWx1bW8tZm9udC1zaXplLXh4cyk7CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbDsKICAgICAgbGV0dGVyLXNwYWNpbmc6IGluaXRpYWw7CiAgICAgIG1pbi13aWR0aDogY2FsYyh2YXIoLS1sdW1vLXNpemUtcykgKiAwLjcpOwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CgogICAgLyogSGVhZGVycyBhbmQgZm9vdGVycyAqLwoKICAgIFtwYXJ0fj0naGVhZGVyLWNlbGwnXSA6OnNsb3R0ZWQodmFhZGluLWdyaWQtY2VsbC1jb250ZW50KSwKICAgIFtwYXJ0fj0nZm9vdGVyLWNlbGwnXSA6OnNsb3R0ZWQodmFhZGluLWdyaWQtY2VsbC1jb250ZW50KSwKICAgIFtwYXJ0fj0ncmVvcmRlci1naG9zdCddIHsKICAgICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS1zKTsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICBbcGFydH49J2Zvb3Rlci1jZWxsJ10gOjpzbG90dGVkKHZhYWRpbi1ncmlkLWNlbGwtY29udGVudCkgewogICAgICBmb250LXdlaWdodDogNDAwOwogICAgfQoKICAgIFtwYXJ0PSdyb3cnXTpvbmx5LWNoaWxkIFtwYXJ0fj0naGVhZGVyLWNlbGwnXSB7CiAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWx1bW8tc2l6ZS14bCk7CiAgICB9CgogICAgLyogSGVhZGVyIGJvcmRlcnMgKi8KCiAgICAvKiBIaWRlIGZpcnN0IGhlYWRlciByb3cgdG9wIGJvcmRlciAqLwogICAgOmhvc3QoOm5vdChbdGhlbWV+PSduby1yb3ctYm9yZGVycyddKSkgW3BhcnQ9J3JvdyddOmZpcnN0LWNoaWxkIFtwYXJ0fj0naGVhZGVyLWNlbGwnXSB7CiAgICAgIGJvcmRlci10b3A6IDA7CiAgICB9CgogICAgW3BhcnQ9J3JvdyddOmxhc3QtY2hpbGQgW3BhcnR+PSdoZWFkZXItY2VsbCddIHsKICAgICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGgpIHNvbGlkIHRyYW5zcGFyZW50OwogICAgfQoKICAgIDpob3N0KDpub3QoW3RoZW1lfj0nbm8tcm93LWJvcmRlcnMnXSkpIFtwYXJ0PSdyb3cnXTpsYXN0LWNoaWxkIFtwYXJ0fj0naGVhZGVyLWNlbGwnXSB7CiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLV9sdW1vLWdyaWQtc2Vjb25kYXJ5LWJvcmRlci1jb2xvcik7CiAgICB9CgogICAgLyogT3ZlcmZsb3cgdXNlcyBhIHN0cm9uZ2VyIGJvcmRlciBjb2xvciAqLwogICAgOmhvc3QoW292ZXJmbG93fj0ndG9wJ10pIFtwYXJ0PSdyb3cnXTpsYXN0LWNoaWxkIFtwYXJ0fj0naGVhZGVyLWNlbGwnXSB7CiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLWNvbG9yKTsKICAgIH0KCiAgICAvKiBGb290ZXIgYm9yZGVycyAqLwoKICAgIFtwYXJ0PSdyb3cnXTpmaXJzdC1jaGlsZCBbcGFydH49J2Zvb3Rlci1jZWxsJ10gewogICAgICBib3JkZXItdG9wOiB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci13aWR0aCkgc29saWQgdHJhbnNwYXJlbnQ7CiAgICB9CgogICAgOmhvc3QoOm5vdChbdGhlbWV+PSduby1yb3ctYm9yZGVycyddKSkgW3BhcnQ9J3JvdyddOmZpcnN0LWNoaWxkIFtwYXJ0fj0nZm9vdGVyLWNlbGwnXSB7CiAgICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLV9sdW1vLWdyaWQtc2Vjb25kYXJ5LWJvcmRlci1jb2xvcik7CiAgICB9CgogICAgLyogT3ZlcmZsb3cgdXNlcyBhIHN0cm9uZ2VyIGJvcmRlciBjb2xvciAqLwogICAgOmhvc3QoW292ZXJmbG93fj0nYm90dG9tJ10pIFtwYXJ0PSdyb3cnXTpmaXJzdC1jaGlsZCBbcGFydH49J2Zvb3Rlci1jZWxsJ10gewogICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci1jb2xvcik7CiAgICB9CgogICAgLyogQ29sdW1uIHJlb3JkZXJpbmcgKi8KCiAgICA6aG9zdChbcmVvcmRlcmluZ10pIFtwYXJ0fj0nY2VsbCddIHsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHZhcigtLWx1bW8tc2hhZGUtMjBwY3QpLCB2YXIoLS1sdW1vLXNoYWRlLTIwcGN0KSkgdmFyKC0tbHVtby1iYXNlLWNvbG9yKTsKICAgIH0KCiAgICA6aG9zdChbcmVvcmRlcmluZ10pIFtwYXJ0fj0nY2VsbCddW3Jlb3JkZXItc3RhdHVzPSdhbGxvd2VkJ10gewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1sdW1vLWJhc2UtY29sb3IpOwogICAgfQoKICAgIDpob3N0KFtyZW9yZGVyaW5nXSkgW3BhcnR+PSdjZWxsJ11bcmVvcmRlci1zdGF0dXM9J2RyYWdnaW5nJ10gewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tbHVtby1jb250cmFzdC01cGN0KSwgdmFyKC0tbHVtby1jb250cmFzdC01cGN0KSkgdmFyKC0tbHVtby1iYXNlLWNvbG9yKTsKICAgIH0KCiAgICBbcGFydH49J3Jlb3JkZXItZ2hvc3QnXSB7CiAgICAgIG9wYWNpdHk6IDAuODU7CiAgICAgIGJveC1zaGFkb3c6IHZhcigtLWx1bW8tYm94LXNoYWRvdy1zKTsKICAgICAgLyogVE9ETyBVc2UgdGhlIHNhbWUgc3R5bGVzIGFzIGZvciB0aGUgY2VsbCBlbGVtZW50IChyZW9yZGVyLWdob3N0IGNvcGllcyBzdHlsZXMgZnJvbSB0aGUgY2VsbCBlbGVtZW50KSAqLwogICAgICBwYWRkaW5nOiB2YXIoLS1sdW1vLXNwYWNlLXMpIHZhcigtLWx1bW8tc3BhY2UtbSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAvKiBDb2x1bW4gcmVzaXppbmcgKi8KCiAgICBbcGFydD0ncmVzaXplLWhhbmRsZSddIHsKICAgICAgd2lkdGg6IDNweDsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1wcmltYXJ5LWNvbG9yLTUwcGN0KTsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgfQoKICAgIDpob3N0KDpub3QoW3Jlb3JkZXJpbmddKSkgKjpub3QoW2NvbHVtbi1yZXNpemluZ10pIFtwYXJ0fj0nY2VsbCddOmhvdmVyIFtwYXJ0PSdyZXNpemUtaGFuZGxlJ10sCiAgICBbcGFydD0ncmVzaXplLWhhbmRsZSddOmFjdGl2ZSB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMTVzOwogICAgfQoKICAgIC8qIENvbHVtbiBib3JkZXJzICovCgogICAgOmhvc3QoW3RoZW1lfj0nY29sdW1uLWJvcmRlcnMnXSkgW3BhcnR+PSdjZWxsJ106bm90KFtsYXN0LWNvbHVtbl0pOm5vdChbcGFydH49J2RldGFpbHMtY2VsbCddKSB7CiAgICAgIGJvcmRlci1yaWdodDogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLV9sdW1vLWdyaWQtc2Vjb25kYXJ5LWJvcmRlci1jb2xvcik7CiAgICB9CgogICAgLyogRnJvemVuIGNvbHVtbnMgKi8KCiAgICBbbGFzdC1mcm96ZW5dIHsKICAgICAgYm9yZGVyLXJpZ2h0OiB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci13aWR0aCkgc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgOmhvc3QoW292ZXJmbG93fj0nbGVmdCddKSBbcGFydH49J2NlbGwnXVtsYXN0LWZyb3plbl06bm90KFtwYXJ0fj0nZGV0YWlscy1jZWxsJ10pIHsKICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci1jb2xvcik7CiAgICB9CgogICAgLyogUm93IHN0cmlwZXMgKi8KCiAgICA6aG9zdChbdGhlbWV+PSdyb3ctc3RyaXBlcyddKSBbcGFydH49J3JvdyddOm5vdChbb2RkXSkgW3BhcnR+PSdib2R5LWNlbGwnXSwKICAgIDpob3N0KFt0aGVtZX49J3Jvdy1zdHJpcGVzJ10pIFtwYXJ0fj0ncm93J106bm90KFtvZGRdKSBbcGFydH49J2RldGFpbHMtY2VsbCddIHsKICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHZhcigtLWx1bW8tY29udHJhc3QtNXBjdCksIHZhcigtLWx1bW8tY29udHJhc3QtNXBjdCkpOwogICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7CiAgICB9CgogICAgLyogU2VsZWN0ZWQgcm93ICovCgogICAgLyogUmFpc2UgdGhlIHNlbGVjdGVkIHJvd3MgYWJvdmUgdW5zZWxlY3RlZCByb3dzIChzbyB0aGF0IGJveC1zaGFkb3cgY2FuIGNvdmVyIHVuc2VsZWN0ZWQgcm93cykgKi8KICAgIDpob3N0KDpub3QoW3Jlb3JkZXJpbmddKSkgW3BhcnR+PSdyb3cnXVtzZWxlY3RlZF0gewogICAgICB6LWluZGV4OiAxOwogICAgfQoKICAgIDpob3N0KDpub3QoW3Jlb3JkZXJpbmddKSkgW3BhcnR+PSdyb3cnXVtzZWxlY3RlZF0gW3BhcnR+PSdib2R5LWNlbGwnXTpub3QoW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSkgewogICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tX2x1bW8tZ3JpZC1zZWxlY3RlZC1yb3ctY29sb3IpLCB2YXIoLS1fbHVtby1ncmlkLXNlbGVjdGVkLXJvdy1jb2xvcikpOwogICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0OwogICAgfQoKICAgIC8qIENvdmVyIHRoZSBib3JkZXIgb2YgYW4gdW5zZWxlY3RlZCByb3cgKi8KICAgIDpob3N0KDpub3QoW3RoZW1lfj0nbm8tcm93LWJvcmRlcnMnXSkpIFtwYXJ0fj0ncm93J11bc2VsZWN0ZWRdIFtwYXJ0fj0nY2VsbCddOm5vdChbcGFydH49J2RldGFpbHMtY2VsbCddKSB7CiAgICAgIGJveC1zaGFkb3c6IDAgdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGgpIDAgMCB2YXIoLS1fbHVtby1ncmlkLXNlbGVjdGVkLXJvdy1jb2xvcik7CiAgICB9CgogICAgLyogQ29tcGFjdCAqLwoKICAgIDpob3N0KFt0aGVtZX49J2NvbXBhY3QnXSkgW3BhcnQ9J3JvdyddOm9ubHktY2hpbGQgW3BhcnR+PSdoZWFkZXItY2VsbCddIHsKICAgICAgbWluLWhlaWdodDogdmFyKC0tbHVtby1zaXplLW0pOwogICAgfQoKICAgIDpob3N0KFt0aGVtZX49J2NvbXBhY3QnXSkgW3BhcnR+PSdjZWxsJ10gewogICAgICBtaW4taGVpZ2h0OiB2YXIoLS1sdW1vLXNpemUtcyk7CiAgICB9CgogICAgOmhvc3QoW3RoZW1lfj0nY29tcGFjdCddKSBbcGFydD0ncm93J11bZmlyc3RdIFtwYXJ0fj0nY2VsbCddOm5vdChbcGFydH49J2RldGFpbHMtY2VsbCddKSB7CiAgICAgIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tbHVtby1zaXplLXMpIC0gdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGgpKTsKICAgIH0KCiAgICA6aG9zdChbdGhlbWV+PSdjb21wYWN0J10pIFtwYXJ0fj0nY2VsbCddIDo6c2xvdHRlZCh2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQpIHsKICAgICAgcGFkZGluZzogdmFyKC0tbHVtby1zcGFjZS14cykgdmFyKC0tbHVtby1zcGFjZS1zKTsKICAgIH0KCiAgICAvKiBXcmFwIGNlbGwgY29udGVudHMgKi8KCiAgICA6aG9zdChbdGhlbWV+PSd3cmFwLWNlbGwtY29udGVudCddKSBbcGFydH49J2NlbGwnXSA6OnNsb3R0ZWQodmFhZGluLWdyaWQtY2VsbC1jb250ZW50KSB7CiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7CiAgICB9CgogICAgLyogUlRMIHNwZWNpZmljIHN0eWxlcyAqLwoKICAgIDpob3N0KFtkaXI9J3J0bCddKSBbcGFydH49J3JvdyddW2RyYWdzdGFydF0gW3BhcnR+PSdjZWxsJ11bbGFzdC1jb2x1bW5dIHsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbHVtby1ib3JkZXItcmFkaXVzLXMpIDAgMCB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtcyk7CiAgICB9CgogICAgOmhvc3QoW2Rpcj0ncnRsJ10pIFtwYXJ0fj0ncm93J11bZHJhZ3N0YXJ0XSBbcGFydH49J2NlbGwnXVtmaXJzdC1jb2x1bW5dIHsKICAgICAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtcykgdmFyKC0tbHVtby1ib3JkZXItcmFkaXVzLXMpIDA7CiAgICB9CgogICAgOmhvc3QoW2Rpcj0ncnRsJ11bdGhlbWV+PSdjb2x1bW4tYm9yZGVycyddKSBbcGFydH49J2NlbGwnXTpub3QoW2xhc3QtY29sdW1uXSk6bm90KFtwYXJ0fj0nZGV0YWlscy1jZWxsJ10pIHsKICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICBib3JkZXItbGVmdDogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLV9sdW1vLWdyaWQtc2Vjb25kYXJ5LWJvcmRlci1jb2xvcik7CiAgICB9CgogICAgOmhvc3QoW2Rpcj0ncnRsJ10pIFtsYXN0LWZyb3plbl0gewogICAgICBib3JkZXItcmlnaHQ6IG5vbmU7CiAgICAgIGJvcmRlci1sZWZ0OiB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci13aWR0aCkgc29saWQgdHJhbnNwYXJlbnQ7CiAgICB9CgogICAgOmhvc3QoW2Rpcj0ncnRsJ11bb3ZlcmZsb3d+PSdyaWdodCddKSBbcGFydH49J2NlbGwnXVtsYXN0LWZyb3plbl06bm90KFtwYXJ0fj0nZGV0YWlscy1jZWxsJ10pIHsKICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLWNvbG9yKTsKICAgIH0KICBgLHttb2R1bGVJZDoibHVtby1ncmlkIn0pO2pjKCJ2YWFkaW4tY2hlY2tib3giLENpYAogICAgOmhvc3QoLnZhYWRpbi1ncmlkLXNlbGVjdC1hbGwtY2hlY2tib3gpIHsKICAgICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS1tKTsKICAgIH0KICBgLHttb2R1bGVJZDoidmFhZGluLWdyaWQtc2VsZWN0LWFsbC1jaGVja2JveC1sdW1vIn0pO3ZhciBHY2U9bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvaVAoPzpob25lfGFkOyg/OiBVOyk/IENQVSkgT1MgKFxkKykvKSxzaHI9R2NlJiZHY2VbMV0+PTgsV2NlPTMsWWNlPWg5KHtiZWhhdmlvcnM6W1FzLHY5XSxfcmF0aW86LjUsX3Njcm9sbGVyUGFkZGluZ1RvcDowLF9zY3JvbGxQb3NpdGlvbjowLF9waHlzaWNhbFNpemU6MCxfcGh5c2ljYWxBdmVyYWdlOjAsX3BoeXNpY2FsQXZlcmFnZUNvdW50OjAsX3BoeXNpY2FsVG9wOjAsX3ZpcnR1YWxDb3VudDowLF9lc3RTY3JvbGxIZWlnaHQ6MCxfc2Nyb2xsSGVpZ2h0OjAsX3ZpZXdwb3J0SGVpZ2h0OjAsX3ZpZXdwb3J0V2lkdGg6MCxfcGh5c2ljYWxJdGVtczpudWxsLF9waHlzaWNhbFNpemVzOm51bGwsX2ZpcnN0VmlzaWJsZUluZGV4VmFsOm51bGwsX2xhc3RWaXNpYmxlSW5kZXhWYWw6bnVsbCxfbWF4UGFnZXM6MixfZm9jdXNlZFZpcnR1YWxJbmRleDotMSxfdGVtcGxhdGVDb3N0OjAsZ2V0IF9waHlzaWNhbEJvdHRvbSgpe3JldHVybiB0aGlzLl9waHlzaWNhbFRvcCt0aGlzLl9waHlzaWNhbFNpemV9LGdldCBfc2Nyb2xsQm90dG9tKCl7cmV0dXJuIHRoaXMuX3Njcm9sbFBvc2l0aW9uK3RoaXMuX3ZpZXdwb3J0SGVpZ2h0fSxnZXQgX3ZpcnR1YWxFbmQoKXtyZXR1cm4gdGhpcy5fdmlydHVhbFN0YXJ0K3RoaXMuX3BoeXNpY2FsQ291bnQtMX0sZ2V0IF9oaWRkZW5Db250ZW50U2l6ZSgpe3JldHVybiB0aGlzLl9waHlzaWNhbFNpemUtdGhpcy5fdmlld3BvcnRIZWlnaHR9LGdldCBfbWF4U2Nyb2xsVG9wKCl7cmV0dXJuIHRoaXMuX2VzdFNjcm9sbEhlaWdodC10aGlzLl92aWV3cG9ydEhlaWdodCt0aGlzLl9zY3JvbGxPZmZzZXR9LGdldCBfbWF4VmlydHVhbFN0YXJ0KCl7cmV0dXJuIE1hdGgubWF4KDAsdGhpcy5fdmlydHVhbENvdW50LXRoaXMuX3BoeXNpY2FsQ291bnQpfSxzZXQgX3ZpcnR1YWxTdGFydChlKXtlPXRoaXMuX2NsYW1wKGUsMCx0aGlzLl9tYXhWaXJ0dWFsU3RhcnQpLHRoaXMuX3ZpcnR1YWxTdGFydFZhbD1lfSxnZXQgX3ZpcnR1YWxTdGFydCgpe3JldHVybiB0aGlzLl92aXJ0dWFsU3RhcnRWYWx8fDB9LHNldCBfcGh5c2ljYWxTdGFydChlKXtlPWUldGhpcy5fcGh5c2ljYWxDb3VudCxlPDAmJihlPXRoaXMuX3BoeXNpY2FsQ291bnQrZSksdGhpcy5fcGh5c2ljYWxTdGFydFZhbD1lfSxnZXQgX3BoeXNpY2FsU3RhcnQoKXtyZXR1cm4gdGhpcy5fcGh5c2ljYWxTdGFydFZhbHx8MH0sZ2V0IF9waHlzaWNhbEVuZCgpe3JldHVybih0aGlzLl9waHlzaWNhbFN0YXJ0K3RoaXMuX3BoeXNpY2FsQ291bnQtMSkldGhpcy5fcGh5c2ljYWxDb3VudH0sc2V0IF9waHlzaWNhbENvdW50KGUpe3RoaXMuX3BoeXNpY2FsQ291bnRWYWw9ZX0sZ2V0IF9waHlzaWNhbENvdW50KCl7cmV0dXJuIHRoaXMuX3BoeXNpY2FsQ291bnRWYWx8fDB9LGdldCBfb3B0UGh5c2ljYWxTaXplKCl7cmV0dXJuIHRoaXMuX3ZpZXdwb3J0SGVpZ2h0PT09MD8xLzA6dGhpcy5fdmlld3BvcnRIZWlnaHQqdGhpcy5fbWF4UGFnZXN9LGdldCBfaXNWaXNpYmxlKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5vZmZzZXRXaWR0aHx8dGhpcy5vZmZzZXRIZWlnaHQpfSxnZXQgZmlyc3RWaXNpYmxlSW5kZXgoKXtsZXQgZT10aGlzLl9maXJzdFZpc2libGVJbmRleFZhbDtpZihlPT1udWxsKXtsZXQgdD10aGlzLl9waHlzaWNhbFRvcCt0aGlzLl9zY3JvbGxPZmZzZXQ7ZT10aGlzLl9pdGVyYXRlSXRlbXMoZnVuY3Rpb24ocixuKXtpZih0Kz10aGlzLl9waHlzaWNhbFNpemVzW3JdLHQ+dGhpcy5fc2Nyb2xsUG9zaXRpb24pcmV0dXJuIG59KXx8MCx0aGlzLl9maXJzdFZpc2libGVJbmRleFZhbD1lfXJldHVybiBlfSxnZXQgbGFzdFZpc2libGVJbmRleCgpe2xldCBlPXRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw7aWYoZT09bnVsbCl7bGV0IHQ9dGhpcy5fcGh5c2ljYWxUb3ArdGhpcy5fc2Nyb2xsT2Zmc2V0O3RoaXMuX2l0ZXJhdGVJdGVtcyhmdW5jdGlvbihyLG4pe3Q8dGhpcy5fc2Nyb2xsQm90dG9tJiYoZT1uKSx0Kz10aGlzLl9waHlzaWNhbFNpemVzW3JdfSksdGhpcy5fbGFzdFZpc2libGVJbmRleFZhbD1lfXJldHVybiBlfSxnZXQgX3Njcm9sbE9mZnNldCgpe3JldHVybiB0aGlzLl9zY3JvbGxlclBhZGRpbmdUb3B9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fZGVib3VuY2UoIl9yZW5kZXIiLHRoaXMuX3JlbmRlcixOaSksdGhpcy5saXN0ZW4odGhpcywiaXJvbi1yZXNpemUiLCJfcmVzaXplSGFuZGxlciIpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMudW5saXN0ZW4odGhpcywiaXJvbi1yZXNpemUiLCJfcmVzaXplSGFuZGxlciIpfSx1cGRhdGVWaWV3cG9ydEJvdW5kYXJpZXM6ZnVuY3Rpb24oKXtsZXQgZT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKTt0aGlzLl9zY3JvbGxlclBhZGRpbmdUb3A9dGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzPzA6cGFyc2VJbnQoZVsicGFkZGluZy10b3AiXSwxMCksdGhpcy5faXNSVEw9Qm9vbGVhbihlLmRpcmVjdGlvbj09PSJydGwiKSx0aGlzLl92aWV3cG9ydFdpZHRoPXRoaXMuJC5pdGVtcy5vZmZzZXRXaWR0aCx0aGlzLl92aWV3cG9ydEhlaWdodD10aGlzLl9zY3JvbGxUYXJnZXRIZWlnaHR9LF9zY3JvbGxIYW5kbGVyOmZ1bmN0aW9uKCl7bGV0IGU9TWF0aC5tYXgoMCxNYXRoLm1pbih0aGlzLl9tYXhTY3JvbGxUb3AsdGhpcy5fc2Nyb2xsVG9wKSksdD1lLXRoaXMuX3Njcm9sbFBvc2l0aW9uLHI9dD49MDtpZih0aGlzLl9zY3JvbGxQb3NpdGlvbj1lLHRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsPW51bGwsdGhpcy5fbGFzdFZpc2libGVJbmRleFZhbD1udWxsLE1hdGguYWJzKHQpPnRoaXMuX3BoeXNpY2FsU2l6ZSYmdGhpcy5fcGh5c2ljYWxTaXplPjApe3Q9dC10aGlzLl9zY3JvbGxPZmZzZXQ7bGV0IG49TWF0aC5yb3VuZCh0L3RoaXMuX3BoeXNpY2FsQXZlcmFnZSk7dGhpcy5fdmlydHVhbFN0YXJ0PXRoaXMuX3ZpcnR1YWxTdGFydCtuLHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydCtuLHRoaXMuX3BoeXNpY2FsVG9wPU1hdGguZmxvb3IodGhpcy5fdmlydHVhbFN0YXJ0KSp0aGlzLl9waHlzaWNhbEF2ZXJhZ2UsdGhpcy5fdXBkYXRlKCl9ZWxzZSBpZih0aGlzLl9waHlzaWNhbENvdW50PjApe2xldHtwaHlzaWNhbFRvcDpuLGluZGV4ZXM6aX09dGhpcy5fZ2V0UmV1c2FibGVzKHIpO3I/KHRoaXMuX3BoeXNpY2FsVG9wPW4sdGhpcy5fdmlydHVhbFN0YXJ0PXRoaXMuX3ZpcnR1YWxTdGFydCtpLmxlbmd0aCx0aGlzLl9waHlzaWNhbFN0YXJ0PXRoaXMuX3BoeXNpY2FsU3RhcnQraS5sZW5ndGgpOih0aGlzLl92aXJ0dWFsU3RhcnQ9dGhpcy5fdmlydHVhbFN0YXJ0LWkubGVuZ3RoLHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydC1pLmxlbmd0aCksdGhpcy5fdXBkYXRlKGkscj9udWxsOmkpLHRoaXMuX2RlYm91bmNlKCJfaW5jcmVhc2VQb29sSWZOZWVkZWQiLHRoaXMuX2luY3JlYXNlUG9vbElmTmVlZGVkLmJpbmQodGhpcywwKSxsaSl9fSxfZ2V0UmV1c2FibGVzOmZ1bmN0aW9uKGUpe2xldCB0LHIsbixpPVtdLG89dGhpcy5faGlkZGVuQ29udGVudFNpemUqdGhpcy5fcmF0aW8sYT10aGlzLl92aXJ0dWFsU3RhcnQscz10aGlzLl92aXJ0dWFsRW5kLGw9dGhpcy5fcGh5c2ljYWxDb3VudCxjPXRoaXMuX3BoeXNpY2FsVG9wK3RoaXMuX3Njcm9sbE9mZnNldCx1PXRoaXMuX3BoeXNpY2FsQm90dG9tK3RoaXMuX3Njcm9sbE9mZnNldCxoPXRoaXMuX3Njcm9sbFRvcCxmPXRoaXMuX3Njcm9sbEJvdHRvbTtmb3IoZT8odD10aGlzLl9waHlzaWNhbFN0YXJ0LHI9aC1jKToodD10aGlzLl9waHlzaWNhbEVuZCxyPXUtZik7bj10aGlzLl9waHlzaWNhbFNpemVzW3RdLHI9ci1uLCEoaS5sZW5ndGg+PWx8fHI8PW8pOylpZihlKXtpZihzK2kubGVuZ3RoKzE+PXRoaXMuX3ZpcnR1YWxDb3VudHx8YytuPj1oLXRoaXMuX3Njcm9sbE9mZnNldClicmVhaztpLnB1c2godCksYz1jK24sdD0odCsxKSVsfWVsc2V7aWYoYS1pLmxlbmd0aDw9MHx8Yyt0aGlzLl9waHlzaWNhbFNpemUtbjw9ZilicmVhaztpLnB1c2godCksYz1jLW4sdD10PT09MD9sLTE6dC0xfXJldHVybntpbmRleGVzOmkscGh5c2ljYWxUb3A6Yy10aGlzLl9zY3JvbGxPZmZzZXR9fSxfdXBkYXRlOmZ1bmN0aW9uKGUsdCl7aWYoIShlJiZlLmxlbmd0aD09PTB8fHRoaXMuX3BoeXNpY2FsQ291bnQ9PT0wKSl7aWYodGhpcy5fYXNzaWduTW9kZWxzKGUpLHRoaXMuX3VwZGF0ZU1ldHJpY3MoZSksdClmb3IoO3QubGVuZ3RoOyl7bGV0IHI9dC5wb3AoKTt0aGlzLl9waHlzaWNhbFRvcC09dGhpcy5fcGh5c2ljYWxTaXplc1tyXX10aGlzLl9wb3NpdGlvbkl0ZW1zKCksdGhpcy5fdXBkYXRlU2Nyb2xsZXJTaXplKCl9fSxfaXNDbGllbnRGdWxsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEJvdHRvbSE9MCYmdGhpcy5fcGh5c2ljYWxCb3R0b20tMT49dGhpcy5fc2Nyb2xsQm90dG9tJiZ0aGlzLl9waHlzaWNhbFRvcDw9dGhpcy5fc2Nyb2xsUG9zaXRpb259LF9pbmNyZWFzZVBvb2xJZk5lZWRlZDpmdW5jdGlvbihlKXtsZXQgcj10aGlzLl9jbGFtcCh0aGlzLl9waHlzaWNhbENvdW50K2UsV2NlLHRoaXMuX3ZpcnR1YWxDb3VudC10aGlzLl92aXJ0dWFsU3RhcnQpLXRoaXMuX3BoeXNpY2FsQ291bnQsbj1NYXRoLnJvdW5kKHRoaXMuX3BoeXNpY2FsQ291bnQqLjUpO2lmKCEocjwwKSl7aWYocj4wKXtsZXQgaT13aW5kb3cucGVyZm9ybWFuY2Uubm93KCk7W10ucHVzaC5hcHBseSh0aGlzLl9waHlzaWNhbEl0ZW1zLHRoaXMuX2NyZWF0ZVBvb2wocikpO2ZvcihsZXQgbz0wO288cjtvKyspdGhpcy5fcGh5c2ljYWxTaXplcy5wdXNoKDApO3RoaXMuX3BoeXNpY2FsQ291bnQ9dGhpcy5fcGh5c2ljYWxDb3VudCtyLHRoaXMuX3BoeXNpY2FsU3RhcnQ+dGhpcy5fcGh5c2ljYWxFbmQmJnRoaXMuX2lzSW5kZXhSZW5kZXJlZCh0aGlzLl9mb2N1c2VkVmlydHVhbEluZGV4KSYmdGhpcy5fZ2V0UGh5c2ljYWxJbmRleCh0aGlzLl9mb2N1c2VkVmlydHVhbEluZGV4KTx0aGlzLl9waHlzaWNhbEVuZCYmKHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydCtyKSx0aGlzLl91cGRhdGUoKSx0aGlzLl90ZW1wbGF0ZUNvc3Q9KHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKS1pKS9yLG49TWF0aC5yb3VuZCh0aGlzLl9waHlzaWNhbENvdW50Ki41KX10aGlzLl92aXJ0dWFsRW5kPj10aGlzLl92aXJ0dWFsQ291bnQtMXx8bj09PTB8fCh0aGlzLl9pc0NsaWVudEZ1bGwoKT90aGlzLl9waHlzaWNhbFNpemU8dGhpcy5fb3B0UGh5c2ljYWxTaXplJiZ0aGlzLl9kZWJvdW5jZSgiX2luY3JlYXNlUG9vbElmTmVlZGVkIix0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZC5iaW5kKHRoaXMsdGhpcy5fY2xhbXAoTWF0aC5yb3VuZCg1MC90aGlzLl90ZW1wbGF0ZUNvc3QpLDEsbikpLGt4KTp0aGlzLl9kZWJvdW5jZSgiX2luY3JlYXNlUG9vbElmTmVlZGVkIix0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZC5iaW5kKHRoaXMsbiksbGkpKX19LF9yZW5kZXI6ZnVuY3Rpb24oKXtpZighKCF0aGlzLmlzQXR0YWNoZWR8fCF0aGlzLl9pc1Zpc2libGUpKWlmKHRoaXMuX3BoeXNpY2FsQ291bnQhPT0wKXtsZXR7cGh5c2ljYWxUb3A6ZSxpbmRleGVzOnR9PXRoaXMuX2dldFJldXNhYmxlcyghMCk7dGhpcy5fcGh5c2ljYWxUb3A9ZSx0aGlzLl92aXJ0dWFsU3RhcnQ9dGhpcy5fdmlydHVhbFN0YXJ0K3QubGVuZ3RoLHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydCt0Lmxlbmd0aCx0aGlzLl91cGRhdGUodCksdGhpcy5fdXBkYXRlKCksdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQoMCl9ZWxzZSB0aGlzLl92aXJ0dWFsQ291bnQ+MCYmKHRoaXMudXBkYXRlVmlld3BvcnRCb3VuZGFyaWVzKCksdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQoV2NlKSl9LF9pdGVtc0NoYW5nZWQ6ZnVuY3Rpb24oZSl7ZS5wYXRoPT09Iml0ZW1zIiYmKHRoaXMuX3ZpcnR1YWxTdGFydD0wLHRoaXMuX3BoeXNpY2FsVG9wPTAsdGhpcy5fdmlydHVhbENvdW50PXRoaXMuaXRlbXM/dGhpcy5pdGVtcy5sZW5ndGg6MCx0aGlzLl9waHlzaWNhbEluZGV4Rm9yS2V5PXt9LHRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsPW51bGwsdGhpcy5fbGFzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX3BoeXNpY2FsQ291bnQ9dGhpcy5fcGh5c2ljYWxDb3VudHx8MCx0aGlzLl9waHlzaWNhbEl0ZW1zPXRoaXMuX3BoeXNpY2FsSXRlbXN8fFtdLHRoaXMuX3BoeXNpY2FsU2l6ZXM9dGhpcy5fcGh5c2ljYWxTaXplc3x8W10sdGhpcy5fcGh5c2ljYWxTdGFydD0wLHRoaXMuX3Njcm9sbFRvcD50aGlzLl9zY3JvbGxPZmZzZXQmJnRoaXMuX3Jlc2V0U2Nyb2xsUG9zaXRpb24oMCksdGhpcy5fZGVib3VuY2UoIl9yZW5kZXIiLHRoaXMuX3JlbmRlcixOaSkpfSxfaXRlcmF0ZUl0ZW1zOmZ1bmN0aW9uKGUsdCl7bGV0IHIsbixpLG87aWYoYXJndW1lbnRzLmxlbmd0aD09PTImJnQpe2ZvcihvPTA7bzx0Lmxlbmd0aDtvKyspaWYocj10W29dLG49dGhpcy5fY29tcHV0ZVZpZHgociksKGk9ZS5jYWxsKHRoaXMscixuKSkhPW51bGwpcmV0dXJuIGl9ZWxzZXtmb3Iocj10aGlzLl9waHlzaWNhbFN0YXJ0LG49dGhpcy5fdmlydHVhbFN0YXJ0O3I8dGhpcy5fcGh5c2ljYWxDb3VudDtyKyssbisrKWlmKChpPWUuY2FsbCh0aGlzLHIsbikpIT1udWxsKXJldHVybiBpO2ZvcihyPTA7cjx0aGlzLl9waHlzaWNhbFN0YXJ0O3IrKyxuKyspaWYoKGk9ZS5jYWxsKHRoaXMscixuKSkhPW51bGwpcmV0dXJuIGl9fSxfY29tcHV0ZVZpZHg6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PXRoaXMuX3BoeXNpY2FsU3RhcnQ/dGhpcy5fdmlydHVhbFN0YXJ0KyhlLXRoaXMuX3BoeXNpY2FsU3RhcnQpOnRoaXMuX3ZpcnR1YWxTdGFydCsodGhpcy5fcGh5c2ljYWxDb3VudC10aGlzLl9waHlzaWNhbFN0YXJ0KStlfSxfdXBkYXRlTWV0cmljczpmdW5jdGlvbihlKXtpZighdGhpcy5faXNWaXNpYmxlKXJldHVybjtjaSgpO2xldCB0PTAscj0wLG49dGhpcy5fcGh5c2ljYWxBdmVyYWdlQ291bnQsaT10aGlzLl9waHlzaWNhbEF2ZXJhZ2U7dGhpcy5faXRlcmF0ZUl0ZW1zKGZ1bmN0aW9uKG8pe3IrPXRoaXMuX3BoeXNpY2FsU2l6ZXNbb10sdGhpcy5fcGh5c2ljYWxTaXplc1tvXT10aGlzLl9waHlzaWNhbEl0ZW1zW29dLm9mZnNldEhlaWdodCx0Kz10aGlzLl9waHlzaWNhbFNpemVzW29dLHRoaXMuX3BoeXNpY2FsQXZlcmFnZUNvdW50Kz10aGlzLl9waHlzaWNhbFNpemVzW29dPzE6MH0sZSksdGhpcy5fcGh5c2ljYWxTaXplPXRoaXMuX3BoeXNpY2FsU2l6ZSt0LXIsdGhpcy5fcGh5c2ljYWxBdmVyYWdlQ291bnQhPT1uJiYodGhpcy5fcGh5c2ljYWxBdmVyYWdlPU1hdGgucm91bmQoKGkqbit0KS90aGlzLl9waHlzaWNhbEF2ZXJhZ2VDb3VudCkpfSxfcG9zaXRpb25JdGVtczpmdW5jdGlvbigpe3RoaXMuX2FkanVzdFNjcm9sbFBvc2l0aW9uKCk7bGV0IGU9dGhpcy5fcGh5c2ljYWxUb3A7dGhpcy5faXRlcmF0ZUl0ZW1zKGZ1bmN0aW9uKHQpe3RoaXMudHJhbnNsYXRlM2QoMCxlKyJweCIsMCx0aGlzLl9waHlzaWNhbEl0ZW1zW3RdKSxlKz10aGlzLl9waHlzaWNhbFNpemVzW3RdfSl9LF9hZGp1c3RTY3JvbGxQb3NpdGlvbjpmdW5jdGlvbigpe2xldCBlPXRoaXMuX3ZpcnR1YWxTdGFydD09PTA/dGhpcy5fcGh5c2ljYWxUb3A6TWF0aC5taW4odGhpcy5fc2Nyb2xsUG9zaXRpb24rdGhpcy5fcGh5c2ljYWxUb3AsMCk7aWYoZSE9PTApe3RoaXMuX3BoeXNpY2FsVG9wPXRoaXMuX3BoeXNpY2FsVG9wLWU7bGV0IHQ9dGhpcy5fc2Nyb2xsVG9wOyFzaHImJnQ+MCYmdGhpcy5fcmVzZXRTY3JvbGxQb3NpdGlvbih0LWUpfX0sX3Jlc2V0U2Nyb2xsUG9zaXRpb246ZnVuY3Rpb24oZSl7dGhpcy5zY3JvbGxUYXJnZXQmJmU+PTAmJih0aGlzLl9zY3JvbGxUb3A9ZSx0aGlzLl9zY3JvbGxQb3NpdGlvbj10aGlzLl9zY3JvbGxUb3ApfSxfdXBkYXRlU2Nyb2xsZXJTaXplOmZ1bmN0aW9uKGUpe3RoaXMuX2VzdFNjcm9sbEhlaWdodD10aGlzLl9waHlzaWNhbEJvdHRvbStNYXRoLm1heCh0aGlzLl92aXJ0dWFsQ291bnQtdGhpcy5fcGh5c2ljYWxDb3VudC10aGlzLl92aXJ0dWFsU3RhcnQsMCkqdGhpcy5fcGh5c2ljYWxBdmVyYWdlLGU9ZXx8dGhpcy5fc2Nyb2xsSGVpZ2h0PT09MCxlPWV8fHRoaXMuX3Njcm9sbFBvc2l0aW9uPj10aGlzLl9lc3RTY3JvbGxIZWlnaHQtdGhpcy5fcGh5c2ljYWxTaXplLChlfHxNYXRoLmFicyh0aGlzLl9lc3RTY3JvbGxIZWlnaHQtdGhpcy5fc2Nyb2xsSGVpZ2h0KT49dGhpcy5fdmlld3BvcnRIZWlnaHQpJiYodGhpcy4kLml0ZW1zLnN0eWxlLmhlaWdodD10aGlzLl9lc3RTY3JvbGxIZWlnaHQrInB4Iix0aGlzLl9zY3JvbGxIZWlnaHQ9dGhpcy5fZXN0U2Nyb2xsSGVpZ2h0KX0sc2Nyb2xsVG9JbmRleDpmdW5jdGlvbihlKXtpZih0eXBlb2YgZSE9Im51bWJlciJ8fGU8MHx8ZT50aGlzLml0ZW1zLmxlbmd0aC0xfHwoY2koKSx0aGlzLl9waHlzaWNhbENvdW50PT09MCkpcmV0dXJuO2U9dGhpcy5fY2xhbXAoZSwwLHRoaXMuX3ZpcnR1YWxDb3VudC0xKSwoIXRoaXMuX2lzSW5kZXhSZW5kZXJlZChlKXx8ZT49dGhpcy5fbWF4VmlydHVhbFN0YXJ0KSYmKHRoaXMuX3ZpcnR1YWxTdGFydD1lLTEpLHRoaXMuX2Fzc2lnbk1vZGVscygpLHRoaXMuX3VwZGF0ZU1ldHJpY3MoKSx0aGlzLl9waHlzaWNhbFRvcD1NYXRoLmZsb29yKHRoaXMuX3ZpcnR1YWxTdGFydCkqdGhpcy5fcGh5c2ljYWxBdmVyYWdlO2xldCB0PXRoaXMuX3BoeXNpY2FsU3RhcnQscj10aGlzLl92aXJ0dWFsU3RhcnQsbj0wLGk9dGhpcy5faGlkZGVuQ29udGVudFNpemU7Zm9yKDtyPGUmJm48PWk7KW49bit0aGlzLl9waHlzaWNhbFNpemVzW3RdLHQ9KHQrMSkldGhpcy5fcGh5c2ljYWxDb3VudCxyKys7dGhpcy5fdXBkYXRlU2Nyb2xsZXJTaXplKCEwKSx0aGlzLl9wb3NpdGlvbkl0ZW1zKCksdGhpcy5fcmVzZXRTY3JvbGxQb3NpdGlvbih0aGlzLl9waHlzaWNhbFRvcCt0aGlzLl9zY3JvbGxPZmZzZXQrbiksdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQoMCksdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9sYXN0VmlzaWJsZUluZGV4VmFsPW51bGx9LF9yZXNldEF2ZXJhZ2U6ZnVuY3Rpb24oKXt0aGlzLl9waHlzaWNhbEF2ZXJhZ2U9MCx0aGlzLl9waHlzaWNhbEF2ZXJhZ2VDb3VudD0wfSxfcmVzaXplSGFuZGxlcjpmdW5jdGlvbigpe3RoaXMuX2RlYm91bmNlKCJfcmVuZGVyIixmdW5jdGlvbigpe3RoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsPW51bGwsdGhpcy5fbGFzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMudXBkYXRlVmlld3BvcnRCb3VuZGFyaWVzKCksdGhpcy5faXNWaXNpYmxlPyh0aGlzLnRvZ2dsZVNjcm9sbExpc3RlbmVyKCEwKSx0aGlzLl9yZXNldEF2ZXJhZ2UoKSx0aGlzLl9yZW5kZXIoKSk6dGhpcy50b2dnbGVTY3JvbGxMaXN0ZW5lcighMSl9LE5pKX0sX2lzSW5kZXhSZW5kZXJlZDpmdW5jdGlvbihlKXtyZXR1cm4gZT49dGhpcy5fdmlydHVhbFN0YXJ0JiZlPD10aGlzLl92aXJ0dWFsRW5kfSxfZ2V0UGh5c2ljYWxJbmRleDpmdW5jdGlvbihlKXtyZXR1cm4odGhpcy5fcGh5c2ljYWxTdGFydCsoZS10aGlzLl92aXJ0dWFsU3RhcnQpKSV0aGlzLl9waHlzaWNhbENvdW50fSxfY2xhbXA6ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBNYXRoLm1pbihyLE1hdGgubWF4KHQsZSkpfSxfZGVib3VuY2U6ZnVuY3Rpb24oZSx0LHIpe3RoaXMuX2RlYm91bmNlcnM9dGhpcy5fZGVib3VuY2Vyc3x8e30sdGhpcy5fZGVib3VuY2Vyc1tlXT1zci5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZXJzW2VdLHIsdC5iaW5kKHRoaXMpKSxKbCh0aGlzLl9kZWJvdW5jZXJzW2VdKX19KTt2YXIgdFY9Y2xhc3MgZXh0ZW5kcyBZY2V7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue3NpemU6e3R5cGU6TnVtYmVyLG5vdGlmeTohMH0sX3ZpZHhPZmZzZXQ6e3R5cGU6TnVtYmVyLHZhbHVlOjB9fX1zdGF0aWMgZ2V0IG9ic2VydmVycygpe3JldHVyblsiX2VmZmVjdGl2ZVNpemVDaGFuZ2VkKF9lZmZlY3RpdmVTaXplKSJdfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9zY3JvbGxIYW5kbGVyKCl9X3VwZGF0ZVNjcm9sbGVySXRlbSgpe31fYWZ0ZXJTY3JvbGwoKXt9X2dldFJvd1RhcmdldCgpe31fY3JlYXRlU2Nyb2xsZXJSb3dzKCl7fV9jYW5Qb3B1bGF0ZSgpe31zY3JvbGxUb0luZGV4KHQpe3RoaXMuX3dhcm5Qcml2YXRlQVBJQWNjZXNzKCJzY3JvbGxUb0luZGV4IiksdGhpcy5fc2Nyb2xsaW5nVG9JbmRleD0hMCx0PU1hdGgubWluKE1hdGgubWF4KHQsMCksdGhpcy5fZWZmZWN0aXZlU2l6ZS0xKSx0aGlzLiQudGFibGUuc2Nyb2xsVG9wPXQvdGhpcy5fZWZmZWN0aXZlU2l6ZSoodGhpcy4kLnRhYmxlLnNjcm9sbEhlaWdodC10aGlzLiQudGFibGUub2Zmc2V0SGVpZ2h0KSx0aGlzLl9zY3JvbGxIYW5kbGVyKCksdGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoKCk9PnRoaXMuX21heFNjcm9sbFRvcCkmJnRoaXMuX3ZpcnR1YWxDb3VudDx0aGlzLl9lZmZlY3RpdmVTaXplJiZ0aGlzLl9hZGp1c3RWaXJ0dWFsSW5kZXhPZmZzZXQoMWU2KSx0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSSgoKT0+c3VwZXIuc2Nyb2xsVG9JbmRleCh0LXRoaXMuX3ZpZHhPZmZzZXQpKSx0aGlzLl9zY3JvbGxIYW5kbGVyKCk7bGV0IHI9QXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcihuPT5uLmluZGV4PT09dClbMF07aWYocil7bGV0IG49ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AtdGhpcy4kLmhlYWRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b207TWF0aC5hYnMobik+MSYmKHRoaXMuJC50YWJsZS5zY3JvbGxUb3ArPW4sdGhpcy5fc2Nyb2xsSGFuZGxlcigpKX10aGlzLl9zY3JvbGxpbmdUb0luZGV4PSExfV9lZmZlY3RpdmVTaXplQ2hhbmdlZCh0KXtsZXQgcixuPTA7dGhpcy5faXRlcmF0ZUl0ZW1zKChpLG8pPT57aWYobz09PXRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4KXtsZXQgYT10aGlzLl9waHlzaWNhbEl0ZW1zW2ldO3I9YS5pbmRleCxuPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wfX0pLHRoaXMuaXRlbXMmJnQ8dGhpcy5pdGVtcy5sZW5ndGgmJih0aGlzLl9zY3JvbGxUb3A9MCksQXJyYXkuaXNBcnJheSh0aGlzLml0ZW1zKXx8KHRoaXMuaXRlbXM9e2xlbmd0aDpNYXRoLm1pbih0LDFlNSl9KSx0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSSgoKT0+c3VwZXIuX2l0ZW1zQ2hhbmdlZCh7cGF0aDoiaXRlbXMifSkpLHRoaXMuX3ZpcnR1YWxDb3VudD1NYXRoLm1pbih0aGlzLml0ZW1zLmxlbmd0aCx0KXx8MCx0aGlzLl9zY3JvbGxUb3A9PT0wJiYodGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoKCk9PnRoaXMuX3Njcm9sbFRvSW5kZXgoTWF0aC5taW4odC0xLHIpKSksdGhpcy5faXRlcmF0ZUl0ZW1zKGk9PntsZXQgbz10aGlzLl9waHlzaWNhbEl0ZW1zW2ldO2lmKG8uaW5kZXg9PT1yJiYodGhpcy4kLnRhYmxlLnNjcm9sbFRvcCs9TWF0aC5yb3VuZChvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcC1uKSksby5pbmRleD09PXRoaXMuX2ZvY3VzZWRJdGVtSW5kZXgmJnRoaXMuX2l0ZW1zRm9jdXNhYmxlJiZ0aGlzLiQuaXRlbXMuY29udGFpbnModGhpcy5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQpKXtsZXQgYT1BcnJheS5mcm9tKHRoaXMuX2l0ZW1zRm9jdXNhYmxlLnBhcmVudEVsZW1lbnQuY2hpbGRyZW4pLmluZGV4T2YodGhpcy5faXRlbXNGb2N1c2FibGUpO28uY2hpbGRyZW5bYV0uZm9jdXMoKX19KSksdGhpcy5fYXNzaWduTW9kZWxzKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT50aGlzLl91cGRhdGUoKSksdGhpcy5fX3VwZGF0ZUZvb3RlclBvc2l0aW9uaW5nKCl9X3Bvc2l0aW9uSXRlbXMoKXt0aGlzLl9hZGp1c3RTY3JvbGxQb3NpdGlvbigpO2xldCB0O2lzTmFOKHRoaXMuX3BoeXNpY2FsVG9wKSYmKHQ9ITAsdGhpcy5fcGh5c2ljYWxUb3A9MCk7bGV0IHI9dGhpcy5fcGh5c2ljYWxUb3A7dGhpcy5faXRlcmF0ZUl0ZW1zKG49Pnt0aGlzLl9waHlzaWNhbEl0ZW1zW25dLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke3J9cHgpYCxyKz10aGlzLl9waHlzaWNhbFNpemVzW25dfSksdCYmdGhpcy5fc2Nyb2xsVG9JbmRleCgwKX1faW5jcmVhc2VQb29sSWZOZWVkZWQodCl7dD09PTAmJnRoaXMuX3Njcm9sbGluZ1RvSW5kZXh8fCF0aGlzLl9jYW5Qb3B1bGF0ZSgpfHwhdGhpcy5fZWZmZWN0aXZlU2l6ZXx8KHRoaXMuX2luaXRpYWxQb29sQ3JlYXRlZD90aGlzLl9vcHRQaHlzaWNhbFNpemUhPT0xLzAmJih0aGlzLl9kZWJvdW5jZUluY3JlYXNlUG9vbD1zci5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZUluY3JlYXNlUG9vbCxOaSwoKT0+e3RoaXMuX3VwZGF0ZU1ldHJpY3MoKTtsZXQgcj10aGlzLl9vcHRQaHlzaWNhbFNpemUtdGhpcy5fcGh5c2ljYWxTaXplLG49TWF0aC5jZWlsKHIvdGhpcy5fcGh5c2ljYWxBdmVyYWdlKTt0aGlzLl9waHlzaWNhbENvdW50K24+dGhpcy5fZWZmZWN0aXZlU2l6ZSYmKG49TWF0aC5tYXgoMCx0aGlzLl9lZmZlY3RpdmVTaXplLXRoaXMuX3BoeXNpY2FsQ291bnQpKSx0aGlzLl9waHlzaWNhbFNpemUmJm4+MCYmdGhpcy5fb3B0UGh5c2ljYWxTaXplIT09MS8wJiYoc3VwZXIuX2luY3JlYXNlUG9vbElmTmVlZGVkKG4pLHRoaXMuX19yZW9yZGVyQ2hpbGROb2RlcygpKX0pKToodGhpcy5faW5pdGlhbFBvb2xDcmVhdGVkPSEwLHN1cGVyLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgyNSkpKX1fX3Jlb3JkZXJDaGlsZE5vZGVzKCl7bGV0IHQ9QXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGROb2Rlcyk7ISF0LnJlZHVjZSgobixpLG8sYSk9PntpZihvPT09MHx8YVtvLTFdLmluZGV4PT09aS5pbmRleC0xKXJldHVybiBufSwhMCl8fHQuc29ydCgobixpKT0+bi5pbmRleC1pLmluZGV4KS5mb3JFYWNoKG49PnRoaXMuJC5pdGVtcy5hcHBlbmRDaGlsZChuKSl9X2NyZWF0ZVBvb2wodCl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLG49dGhpcy5fY3JlYXRlU2Nyb2xsZXJSb3dzKHQpO24uZm9yRWFjaChvPT5yLmFwcGVuZENoaWxkKG8pKSx0aGlzLl9nZXRSb3dUYXJnZXQoKS5hcHBlbmRDaGlsZChyKTtsZXQgaT10aGlzLnF1ZXJ5U2VsZWN0b3IoIltzbG90XSIpO2lmKGkpe2xldCBvPWkuZ2V0QXR0cmlidXRlKCJzbG90Iik7aS5zZXRBdHRyaWJ1dGUoInNsb3QiLCJmb28tYmFyIiksaS5zZXRBdHRyaWJ1dGUoInNsb3QiLG8pfXJldHVybiBDbSh0aGlzLCgpPT50aGlzLm5vdGlmeVJlc2l6ZSgpKSxufV9hc3NpZ25Nb2RlbHModCl7dGhpcy5faXRlcmF0ZUl0ZW1zKChyLG4pPT57bGV0IGk9dGhpcy5fcGh5c2ljYWxJdGVtc1tyXTt0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImhpZGRlbiIsbj49dGhpcy5fZWZmZWN0aXZlU2l6ZSxpKSx0aGlzLl91cGRhdGVTY3JvbGxlckl0ZW0oaSxuKyh0aGlzLl92aWR4T2Zmc2V0fHwwKSl9LHQpfV9zY3JvbGxIYW5kbGVyKCl7bGV0IHQ9dGhpcy4kLnRhYmxlLnNjcm9sbFRvcC10aGlzLl9zY3JvbGxQb3NpdGlvbjt0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSShzdXBlci5fc2Nyb2xsSGFuZGxlcik7bGV0IHI9dGhpcy5fdmlkeE9mZnNldDt0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSSgoKT0+dGhpcy5fbWF4U2Nyb2xsVG9wKSYmdGhpcy5fdmlydHVhbENvdW50PHRoaXMuX2VmZmVjdGl2ZVNpemU/dGhpcy5fYWRqdXN0VmlydHVhbEluZGV4T2Zmc2V0KHQpOnRoaXMuX3ZpZHhPZmZzZXQ9MCx0aGlzLl92aWR4T2Zmc2V0IT09ciYmdGhpcy5fdXBkYXRlKCksdGhpcy5fYWZ0ZXJTY3JvbGwoKX1fYWRqdXN0VmlydHVhbEluZGV4T2Zmc2V0KHQpe2lmKE1hdGguYWJzKHQpPjFlNCl7aWYodGhpcy5fbm9TY2FsZSl7dGhpcy5fbm9TY2FsZT0hMTtyZXR1cm59bGV0IHI9dGhpcy4kLnRhYmxlLnNjcm9sbFRvcC8odGhpcy4kLnRhYmxlLnNjcm9sbEhlaWdodC10aGlzLiQudGFibGUub2Zmc2V0SGVpZ2h0KSxuPXIqdGhpcy5fZWZmZWN0aXZlU2l6ZTt0aGlzLl92aWR4T2Zmc2V0PU1hdGgucm91bmQobi1yKnRoaXMuX3ZpcnR1YWxDb3VudCl9ZWxzZXtsZXQgcj10aGlzLl92aWR4T2Zmc2V0fHwwLG49MWUzLGk9MTAwO3RoaXMuX3Njcm9sbFRvcD09PTA/KHRoaXMuX3ZpZHhPZmZzZXQ9MCxyIT09dGhpcy5fdmlkeE9mZnNldCYmc3VwZXIuc2Nyb2xsVG9JbmRleCgwKSk6dGhpcy5maXJzdFZpc2libGVJbmRleDxuJiZ0aGlzLl92aWR4T2Zmc2V0PjAmJih0aGlzLl92aWR4T2Zmc2V0LT1NYXRoLm1pbih0aGlzLl92aWR4T2Zmc2V0LGkpLHIhPT10aGlzLl92aWR4T2Zmc2V0JiZzdXBlci5zY3JvbGxUb0luZGV4KHRoaXMuZmlyc3RWaXNpYmxlSW5kZXgrKHItdGhpcy5fdmlkeE9mZnNldCkpLHRoaXMuX25vU2NhbGU9ITApO2xldCBvPXRoaXMuX2VmZmVjdGl2ZVNpemUtdGhpcy5fdmlydHVhbENvdW50O3RoaXMuX3Njcm9sbFRvcD49dGhpcy5fbWF4U2Nyb2xsVG9wJiZ0aGlzLl9tYXhTY3JvbGxUb3A+MD8odGhpcy5fdmlkeE9mZnNldD1vLHIhPT10aGlzLl92aWR4T2Zmc2V0JiZzdXBlci5zY3JvbGxUb0luZGV4KHRoaXMuX3ZpcnR1YWxDb3VudCkpOnRoaXMuZmlyc3RWaXNpYmxlSW5kZXg+dGhpcy5fdmlydHVhbENvdW50LW4mJnRoaXMuX3ZpZHhPZmZzZXQ8byYmKHRoaXMuX3ZpZHhPZmZzZXQrPU1hdGgubWluKG8tdGhpcy5fdmlkeE9mZnNldCxpKSxyIT09dGhpcy5fdmlkeE9mZnNldCYmc3VwZXIuc2Nyb2xsVG9JbmRleCh0aGlzLmZpcnN0VmlzaWJsZUluZGV4LSh0aGlzLl92aWR4T2Zmc2V0LXIpKSx0aGlzLl9ub1NjYWxlPSEwKX19X2FjY2Vzc0lyb25MaXN0QVBJKHQpe3RoaXMuX3dhcm5Qcml2YXRlQVBJQWNjZXNzQXN5bmNFbmFibGVkPSExO2xldCByPXQuYXBwbHkodGhpcyk7cmV0dXJuIHRoaXMuX2RlYm91bmNlcldhcm5Qcml2YXRlQVBJQWNjZXNzPXNyLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlcldhcm5Qcml2YXRlQVBJQWNjZXNzLE5pLCgpPT50aGlzLl93YXJuUHJpdmF0ZUFQSUFjY2Vzc0FzeW5jRW5hYmxlZD0hMCkscn1fZGVib3VuY2VSZW5kZXIodCxyKXtzdXBlci5fZGVib3VuY2VSZW5kZXIoKCk9PnRoaXMuX2FjY2Vzc0lyb25MaXN0QVBJKHQpLHIpfV93YXJuUHJpdmF0ZUFQSUFjY2Vzcyh0KXt0aGlzLl93YXJuUHJpdmF0ZUFQSUFjY2Vzc0FzeW5jRW5hYmxlZCYmY29uc29sZS53YXJuKGBBY2Nlc3NpbmcgcHJpdmF0ZSBBUEkgKCR7dH0pIWApfV9yZW5kZXIoKXt0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSShzdXBlci5fcmVuZGVyKX1faXRlbXNDaGFuZ2VkKCl7fWdldCBfZmlyc3RWaXNpYmxlSW5kZXgoKXtyZXR1cm4gdGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoKCk9PnN1cGVyLmZpcnN0VmlzaWJsZUluZGV4KX1nZXQgX2xhc3RWaXNpYmxlSW5kZXgoKXtyZXR1cm4gdGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoKCk9PnN1cGVyLmxhc3RWaXNpYmxlSW5kZXgpfV9zY3JvbGxUb0luZGV4KHQpe3RoaXMuX2FjY2Vzc0lyb25MaXN0QVBJKCgpPT50aGlzLnNjcm9sbFRvSW5kZXgodCkpfWdldCBmaXJzdFZpc2libGVJbmRleCgpe3JldHVybiB0aGlzLl93YXJuUHJpdmF0ZUFQSUFjY2VzcygiZmlyc3RWaXNpYmxlSW5kZXgiKSxzdXBlci5maXJzdFZpc2libGVJbmRleH1zZXQgZmlyc3RWaXNpYmxlSW5kZXgodCl7dGhpcy5fd2FyblByaXZhdGVBUElBY2Nlc3MoImZpcnN0VmlzaWJsZUluZGV4Iiksc3VwZXIuZmlyc3RWaXNpYmxlSW5kZXg9dH1nZXQgbGFzdFZpc2libGVJbmRleCgpe3JldHVybiB0aGlzLl93YXJuUHJpdmF0ZUFQSUFjY2VzcygibGFzdFZpc2libGVJbmRleCIpLHN1cGVyLmxhc3RWaXNpYmxlSW5kZXh9c2V0IGxhc3RWaXNpYmxlSW5kZXgodCl7dGhpcy5fd2FyblByaXZhdGVBUElBY2Nlc3MoImxhc3RWaXNpYmxlSW5kZXgiKSxzdXBlci5sYXN0VmlzaWJsZUluZGV4PXR9dXBkYXRlVmlld3BvcnRCb3VuZGFyaWVzKCl7dGhpcy5fd2FyblByaXZhdGVBUElBY2Nlc3MoInVwZGF0ZVZpZXdwb3J0Qm91bmRhcmllcyIpLHN1cGVyLnVwZGF0ZVZpZXdwb3J0Qm91bmRhcmllcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9X3Jlc2l6ZUhhbmRsZXIoKXtzdXBlci5fcmVzaXplSGFuZGxlcigpLGNpKCl9fTt2YXIgamNlPWU9PmNsYXNzIGV4dGVuZHMgZXtzdGF0aWMgZ2V0IG9ic2VydmVycygpe3JldHVyblsiX2ExMXlVcGRhdGVHcmlkU2l6ZShzaXplLCBfY29sdW1uVHJlZSwgX2NvbHVtblRyZWUuKikiXX1fYTExeUdldEhlYWRlclJvd0NvdW50KHIpe3JldHVybiByLmZpbHRlcihuPT5uLnNvbWUoaT0+aS5faGVhZGVyVGVtcGxhdGV8fGkuaGVhZGVyUmVuZGVyZXJ8fGkucGF0aHx8aS5oZWFkZXIpKS5sZW5ndGh9X2ExMXlHZXRGb290ZXJSb3dDb3VudChyKXtyZXR1cm4gci5maWx0ZXIobj0+bi5zb21lKGk9PmkuX2hlYWRlclRlbXBsYXRlfHxpLmhlYWRlclJlbmRlcmVyKSkubGVuZ3RofV9hMTF5VXBkYXRlR3JpZFNpemUocixuKXtpZihyPT09dm9pZCAwfHxuPT09dm9pZCAwKXJldHVybjtsZXQgaT1uW24ubGVuZ3RoLTFdO3RoaXMuJC50YWJsZS5zZXRBdHRyaWJ1dGUoImFyaWEtcm93Y291bnQiLHIrdGhpcy5fYTExeUdldEhlYWRlclJvd0NvdW50KG4pK3RoaXMuX2ExMXlHZXRGb290ZXJSb3dDb3VudChuKSksdGhpcy4kLnRhYmxlLnNldEF0dHJpYnV0ZSgiYXJpYS1jb2xjb3VudCIsaSYmaS5sZW5ndGh8fDApLHRoaXMuX2ExMXlVcGRhdGVIZWFkZXJSb3dzKCksdGhpcy5fYTExeVVwZGF0ZUZvb3RlclJvd3MoKX1fYTExeVVwZGF0ZUhlYWRlclJvd3MoKXtBcnJheS5mcm9tKHRoaXMuJC5oZWFkZXIuY2hpbGRyZW4pLmZvckVhY2goKHIsbik9PnIuc2V0QXR0cmlidXRlKCJhcmlhLXJvd2luZGV4IixuKzEpKX1fYTExeVVwZGF0ZUZvb3RlclJvd3MoKXtBcnJheS5mcm9tKHRoaXMuJC5mb290ZXIuY2hpbGRyZW4pLmZvckVhY2goKHIsbik9PnIuc2V0QXR0cmlidXRlKCJhcmlhLXJvd2luZGV4Iix0aGlzLl9hMTF5R2V0SGVhZGVyUm93Q291bnQodGhpcy5fY29sdW1uVHJlZSkrdGhpcy5zaXplK24rMSkpfV9hMTF5VXBkYXRlUm93Um93aW5kZXgocixuKXtyLnNldEF0dHJpYnV0ZSgiYXJpYS1yb3dpbmRleCIsbit0aGlzLl9hMTF5R2V0SGVhZGVyUm93Q291bnQodGhpcy5fY29sdW1uVHJlZSkrMSl9X2ExMXlVcGRhdGVSb3dTZWxlY3RlZChyLG4pe3Iuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIixCb29sZWFuKG4pKSxBcnJheS5mcm9tKHIuY2hpbGRyZW4pLmZvckVhY2goaT0+aS5zZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0ZWQiLEJvb2xlYW4obikpKX1fYTExeVVwZGF0ZVJvd0xldmVsKHIsbil7ci5zZXRBdHRyaWJ1dGUoImFyaWEtbGV2ZWwiLG4rMSl9X2ExMXlVcGRhdGVSb3dEZXRhaWxzT3BlbmVkKHIsbil7QXJyYXkuZnJvbShyLmNoaWxkcmVuKS5mb3JFYWNoKGk9Pnt0eXBlb2Ygbj09ImJvb2xlYW4iP2kuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixuKTppLmhhc0F0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIpJiZpLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIpfSl9X2ExMXlTZXRSb3dEZXRhaWxzQ2VsbChyLG4pe0FycmF5LmZyb20oci5jaGlsZHJlbikuZm9yRWFjaChpPT57aSE9PW4mJmkuc2V0QXR0cmlidXRlKCJhcmlhLWNvbnRyb2xzIixuLmlkKX0pfV9hMTF5VXBkYXRlQ2VsbENvbHNwYW4ocixuKXtyLnNldEF0dHJpYnV0ZSgiYXJpYS1jb2xzcGFuIixOdW1iZXIobikpfV9hMTF5VXBkYXRlU29ydGVycygpe0FycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsKCJ2YWFkaW4tZ3JpZC1zb3J0ZXIiKSkuZm9yRWFjaChyPT57bGV0IG49ci5wYXJlbnROb2RlO2Zvcig7biYmbi5sb2NhbE5hbWUhPT0idmFhZGluLWdyaWQtY2VsbC1jb250ZW50Ijspbj1uLnBhcmVudE5vZGU7biYmbi5hc3NpZ25lZFNsb3QmJm4uYXNzaWduZWRTbG90LnBhcmVudE5vZGUuc2V0QXR0cmlidXRlKCJhcmlhLXNvcnQiLHthc2M6ImFzY2VuZGluZyIsZGVzYzoiZGVzY2VuZGluZyJ9W1N0cmluZyhyLmRpcmVjdGlvbildfHwibm9uZSIpfSl9fTt2YXIgWGNlPWU9PmNsYXNzIGV4dGVuZHMgZXtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57YWN0aXZlSXRlbTp7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLHZhbHVlOm51bGx9fX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy4kLnNjcm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9vbkNsaWNrLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2VsbC1hY3RpdmF0ZSIsdGhpcy5fYWN0aXZhdGVJdGVtLmJpbmQodGhpcykpfV9hY3RpdmF0ZUl0ZW0ocil7bGV0IG49ci5kZXRhaWwubW9kZWwsaT1uP24uaXRlbTpudWxsO2kmJih0aGlzLmFjdGl2ZUl0ZW09dGhpcy5faXRlbXNFcXVhbCh0aGlzLmFjdGl2ZUl0ZW0saSk/bnVsbDppKX1fb25DbGljayhyKXtpZihyLmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO2xldCBuPXIuY29tcG9zZWRQYXRoKCksaT1uW24uaW5kZXhPZih0aGlzLiQudGFibGUpLTNdO2lmKCFpfHxpLmdldEF0dHJpYnV0ZSgicGFydCIpLmluZGV4T2YoImRldGFpbHMtY2VsbCIpPi0xKXJldHVybjtsZXQgbz1pLl9jb250ZW50LGE9dGhpcy5nZXRSb290Tm9kZSgpLmFjdGl2ZUVsZW1lbnQ7IW8uY29udGFpbnMoYSkmJiF0aGlzLl9pc0ZvY3VzYWJsZShyLnRhcmdldCkmJnRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNlbGwtYWN0aXZhdGUiLHtkZXRhaWw6e21vZGVsOnRoaXMuX19nZXRSb3dNb2RlbChpLnBhcmVudEVsZW1lbnQpfX0pKX1faXNGb2N1c2FibGUocil7cmV0dXJuIGxocihyKX19LGxocj1lPT57aWYoIWUucGFyZW50Tm9kZSlyZXR1cm4hMTtsZXQgcj1BcnJheS5mcm9tKGUucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yQWxsKCJbdGFiaW5kZXhdLCBidXR0b24sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBvYmplY3QsIGlmcmFtZSwgbGFiZWwsIGFbaHJlZl0sIGFyZWFbaHJlZl0iKSkuZmlsdGVyKG49Pm4uZ2V0QXR0cmlidXRlKCJwYXJ0IikhPT0iY2VsbCBib2R5LWNlbGwiKS5pbmRleE9mKGUpIT09LTE7cmV0dXJuIWUuZGlzYWJsZWQmJnJ9O3ZhciAkY2U9ZT0+Y2xhc3MgZXh0ZW5kcyBle3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntpdGVtczpBcnJheX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9pdGVtc0NoYW5nZWQoaXRlbXMsIGl0ZW1zLiosIGlzQXR0YWNoZWQpIl19X2l0ZW1zQ2hhbmdlZChyLG4saSl7aWYoISFpKXtpZighQXJyYXkuaXNBcnJheShyKSl7cj09bnVsbCYmKHRoaXMuc2l6ZT0wKSx0aGlzLmRhdGFQcm92aWRlcj09PXRoaXMuX2FycmF5RGF0YVByb3ZpZGVyJiYodGhpcy5kYXRhUHJvdmlkZXI9dm9pZCAwKTtyZXR1cm59dGhpcy5zaXplPXIubGVuZ3RoLHRoaXMuZGF0YVByb3ZpZGVyPXRoaXMuZGF0YVByb3ZpZGVyfHx0aGlzLl9hcnJheURhdGFQcm92aWRlcix0aGlzLmNsZWFyQ2FjaGUoKSx0aGlzLl9lbnN1cmVGaXJzdFBhZ2VMb2FkZWQoKX19X2FycmF5RGF0YVByb3ZpZGVyKHIsbil7bGV0IGk9KEFycmF5LmlzQXJyYXkodGhpcy5pdGVtcyk/dGhpcy5pdGVtczpbXSkuc2xpY2UoMCk7dGhpcy5fZmlsdGVycyYmdGhpcy5fY2hlY2tQYXRocyh0aGlzLl9maWx0ZXJzLCJmaWx0ZXJpbmciLGkpJiYoaT10aGlzLl9maWx0ZXIoaSkpLHRoaXMuc2l6ZT1pLmxlbmd0aCxyLnNvcnRPcmRlcnMubGVuZ3RoJiZ0aGlzLl9jaGVja1BhdGhzKHRoaXMuX3NvcnRlcnMsInNvcnRpbmciLGkpJiYoaT1pLnNvcnQodGhpcy5fbXVsdGlTb3J0LmJpbmQodGhpcykpKTtsZXQgbz1yLnBhZ2Uqci5wYWdlU2l6ZSxhPW8rci5wYWdlU2l6ZSxzPWkuc2xpY2UobyxhKTtuKHMsaS5sZW5ndGgpfV9jaGVja1BhdGhzKHIsbixpKXtpZighaS5sZW5ndGgpcmV0dXJuITE7bGV0IG89ITA7Zm9yKGxldCBhIGluIHIpe2xldCBzPXJbYV0ucGF0aDtpZighc3x8cy5pbmRleE9mKCIuIik9PT0tMSljb250aW51ZTtsZXQgbD1zLnJlcGxhY2UoL1wuW14uXSokLywiIik7T2EuZ2V0KGwsaVswXSk9PT12b2lkIDAmJihjb25zb2xlLndhcm4oYFBhdGggIiR7c30iIHVzZWQgZm9yICR7bn0gZG9lcyBub3QgZXhpc3QgaW4gYWxsIG9mIHRoZSBpdGVtcywgJHtufSBpcyBkaXNhYmxlZC5gKSxvPSExKX1yZXR1cm4gb31fbXVsdGlTb3J0KHIsbil7cmV0dXJuIHRoaXMuX3NvcnRlcnMubWFwKGk9PmkuZGlyZWN0aW9uPT09ImFzYyI/dGhpcy5fY29tcGFyZShPYS5nZXQoaS5wYXRoLHIpLE9hLmdldChpLnBhdGgsbikpOmkuZGlyZWN0aW9uPT09ImRlc2MiP3RoaXMuX2NvbXBhcmUoT2EuZ2V0KGkucGF0aCxuKSxPYS5nZXQoaS5wYXRoLHIpKTowKS5yZWR1Y2UoKGksbyk9Pml8fG8sMCl9X25vcm1hbGl6ZUVtcHR5VmFsdWUocil7cmV0dXJuW3ZvaWQgMCxudWxsXS5pbmRleE9mKHIpPj0wPyIiOmlzTmFOKHIpP3IudG9TdHJpbmcoKTpyfV9jb21wYXJlKHIsbil7cmV0dXJuIHI9dGhpcy5fbm9ybWFsaXplRW1wdHlWYWx1ZShyKSxuPXRoaXMuX25vcm1hbGl6ZUVtcHR5VmFsdWUobikscjxuPy0xOnI+bj8xOjB9X2ZpbHRlcihyKXtyZXR1cm4gci5maWx0ZXIobj0+dGhpcy5fZmlsdGVycy5maWx0ZXIoaT0+e2xldCBvPXRoaXMuX25vcm1hbGl6ZUVtcHR5VmFsdWUoT2EuZ2V0KGkucGF0aCxuKSksYT10aGlzLl9ub3JtYWxpemVFbXB0eVZhbHVlKGkudmFsdWUpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtyZXR1cm4gby50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihhKT09PS0xfSkubGVuZ3RoPT09MCl9fTt2YXIgS2NlPWU9PmNsYXNzIGV4dGVuZHMgdmgoZSl7cmVhZHkoKXtzdXBlci5yZWFkeSgpO2xldCByPXRoaXMuJC5zY3JvbGxlcjtUbShyLCJ0cmFjayIsdGhpcy5fb25IZWFkZXJUcmFjay5iaW5kKHRoaXMpKSxyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsbj0+ci5oYXNBdHRyaWJ1dGUoImNvbHVtbi1yZXNpemluZyIpJiZuLnByZXZlbnREZWZhdWx0KCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLG49Pm4udGFyZ2V0LmdldEF0dHJpYnV0ZSgicGFydCIpPT0icmVzaXplLWhhbmRsZSImJm4ucHJldmVudERlZmF1bHQoKSksci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLG49Pm4udGFyZ2V0LmdldEF0dHJpYnV0ZSgicGFydCIpPT09InJlc2l6ZS1oYW5kbGUiJiZuLnByZXZlbnREZWZhdWx0KCkpfV9vbkhlYWRlclRyYWNrKHIpe2xldCBuPXIudGFyZ2V0O2lmKG4uZ2V0QXR0cmlidXRlKCJwYXJ0Iik9PT0icmVzaXplLWhhbmRsZSIpe2xldCBvPW4ucGFyZW50RWxlbWVudC5fY29sdW1uO2Zvcih0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImNvbHVtbi1yZXNpemluZyIsITAsdGhpcy4kLnNjcm9sbGVyKTtvLmxvY2FsTmFtZT09PSJ2YWFkaW4tZ3JpZC1jb2x1bW4tZ3JvdXAiOylvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG8uX2NoaWxkQ29sdW1ucywwKS5zb3J0KGZ1bmN0aW9uKGwsYyl7cmV0dXJuIGwuX29yZGVyLWMuX29yZGVyfSkuZmlsdGVyKGZ1bmN0aW9uKGwpe3JldHVybiFsLmhpZGRlbn0pLnBvcCgpO2xldCBhPUFycmF5LmZyb20odGhpcy4kLmhlYWRlci5xdWVyeVNlbGVjdG9yQWxsKCdbcGFydH49InJvdyJdOmxhc3QtY2hpbGQgW3BhcnR+PSJjZWxsIl0nKSkscz1hLmZpbHRlcihsPT5sLl9jb2x1bW49PT1vKVswXTtpZihzLm9mZnNldFdpZHRoKXtsZXQgbD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzKSxjPTEwK3BhcnNlSW50KGwucGFkZGluZ0xlZnQpK3BhcnNlSW50KGwucGFkZGluZ1JpZ2h0KStwYXJzZUludChsLmJvcmRlckxlZnRXaWR0aCkrcGFyc2VJbnQobC5ib3JkZXJSaWdodFdpZHRoKStwYXJzZUludChsLm1hcmdpbkxlZnQpK3BhcnNlSW50KGwubWFyZ2luUmlnaHQpLHU9cy5vZmZzZXRXaWR0aCsodGhpcy5fX2lzUlRMP3MuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdC1yLmRldGFpbC54OnIuZGV0YWlsLngtcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCk7by53aWR0aD1NYXRoLm1heChjLHUpKyJweCIsby5mbGV4R3Jvdz0wfWEuc29ydChmdW5jdGlvbihsLGMpe3JldHVybiBsLl9jb2x1bW4uX29yZGVyLWMuX2NvbHVtbi5fb3JkZXJ9KS5mb3JFYWNoKGZ1bmN0aW9uKGwsYyx1KXtjPHUuaW5kZXhPZihzKSYmKGwuX2NvbHVtbi53aWR0aD1sLm9mZnNldFdpZHRoKyJweCIsbC5fY29sdW1uLmZsZXhHcm93PTApfSksci5kZXRhaWwuc3RhdGU9PT0iZW5kIiYmKHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgiY29sdW1uLXJlc2l6aW5nIiwhMSx0aGlzLiQuc2Nyb2xsZXIpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbHVtbi1yZXNpemUiLHtkZXRhaWw6e3Jlc2l6ZWRDb2x1bW46b319KSkpLHRoaXMuX3Jlc2l6ZUhhbmRsZXIoKX19fTt2YXIgWmNlPWNsYXNzIEpjZXtjb25zdHJ1Y3Rvcih0LHIsbil7dGhpcy5ncmlkPXQsdGhpcy5wYXJlbnRDYWNoZT1yLHRoaXMucGFyZW50SXRlbT1uLHRoaXMuaXRlbUNhY2hlcz17fSx0aGlzLml0ZW1zPXt9LHRoaXMuZWZmZWN0aXZlU2l6ZT0wLHRoaXMuc2l6ZT0wLHRoaXMucGVuZGluZ1JlcXVlc3RzPXt9fWlzTG9hZGluZygpe3JldHVybiBCb29sZWFuKE9iamVjdC5rZXlzKHRoaXMucGVuZGluZ1JlcXVlc3RzKS5sZW5ndGh8fE9iamVjdC5rZXlzKHRoaXMuaXRlbUNhY2hlcykuZmlsdGVyKHQ9PnRoaXMuaXRlbUNhY2hlc1t0XS5pc0xvYWRpbmcoKSlbMF0pfWdldEl0ZW1Gb3JJbmRleCh0KXtsZXR7Y2FjaGU6cixzY2FsZWRJbmRleDpufT10aGlzLmdldENhY2hlQW5kSW5kZXgodCk7cmV0dXJuIHIuaXRlbXNbbl19dXBkYXRlU2l6ZSgpe3RoaXMuZWZmZWN0aXZlU2l6ZT0hdGhpcy5wYXJlbnRJdGVtfHx0aGlzLmdyaWQuX2lzRXhwYW5kZWQodGhpcy5wYXJlbnRJdGVtKT90aGlzLnNpemUrT2JqZWN0LmtleXModGhpcy5pdGVtQ2FjaGVzKS5yZWR1Y2UoKHQscik9PntsZXQgbj10aGlzLml0ZW1DYWNoZXNbcl07cmV0dXJuIG4udXBkYXRlU2l6ZSgpLHQrbi5lZmZlY3RpdmVTaXplfSwwKTowfWVuc3VyZVN1YkNhY2hlRm9yU2NhbGVkSW5kZXgodCl7aWYoIXRoaXMuaXRlbUNhY2hlc1t0XSl7bGV0IHI9bmV3IEpjZSh0aGlzLmdyaWQsdGhpcyx0aGlzLml0ZW1zW3RdKTt0aGlzLml0ZW1DYWNoZXNbdF09cix0aGlzLmdyaWQuX2xvYWRQYWdlKDAscil9fWdldENhY2hlQW5kSW5kZXgodCl7bGV0IHI9dCxuPU9iamVjdC5rZXlzKHRoaXMuaXRlbUNhY2hlcyk7Zm9yKGxldCBpPTA7aTxuLmxlbmd0aDtpKyspe2xldCBvPU51bWJlcihuW2ldKSxhPXRoaXMuaXRlbUNhY2hlc1tvXTtpZihyPD1vKXJldHVybntjYWNoZTp0aGlzLHNjYWxlZEluZGV4OnJ9O2lmKHI8PW8rYS5lZmZlY3RpdmVTaXplKXJldHVybiBhLmdldENhY2hlQW5kSW5kZXgoci1vLTEpO3ItPWEuZWZmZWN0aXZlU2l6ZX1yZXR1cm57Y2FjaGU6dGhpcyxzY2FsZWRJbmRleDpyfX19LFFjZT1lPT5jbGFzcyBleHRlbmRzIGV7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue3BhZ2VTaXplOnt0eXBlOk51bWJlcix2YWx1ZTo1MCxvYnNlcnZlcjoiX3BhZ2VTaXplQ2hhbmdlZCJ9LGRhdGFQcm92aWRlcjp7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLG9ic2VydmVyOiJfZGF0YVByb3ZpZGVyQ2hhbmdlZCJ9LGxvYWRpbmc6e3R5cGU6Qm9vbGVhbixub3RpZnk6ITAscmVhZE9ubHk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxfY2FjaGU6e3R5cGU6T2JqZWN0LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBaY2UodGhpcyl9fSxpdGVtSWRQYXRoOnt0eXBlOlN0cmluZyx2YWx1ZTpudWxsfSxleHBhbmRlZEl0ZW1zOnt0eXBlOk9iamVjdCxub3RpZnk6ITAsdmFsdWU6KCk9PltdfX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9zaXplQ2hhbmdlZChzaXplKSIsIl9pdGVtSWRQYXRoQ2hhbmdlZChpdGVtSWRQYXRoKSIsIl9leHBhbmRlZEl0ZW1zQ2hhbmdlZChleHBhbmRlZEl0ZW1zLiopIl19X3NpemVDaGFuZ2VkKHIpe2xldCBuPXItdGhpcy5fY2FjaGUuc2l6ZTt0aGlzLl9jYWNoZS5zaXplKz1uLHRoaXMuX2NhY2hlLmVmZmVjdGl2ZVNpemUrPW4sdGhpcy5fZWZmZWN0aXZlU2l6ZT10aGlzLl9jYWNoZS5lZmZlY3RpdmVTaXplLHRoaXMuX2luY3JlYXNlUG9vbElmTmVlZGVkKDApLHRoaXMuX2RlYm91bmNlSW5jcmVhc2VQb29sJiZ0aGlzLl9kZWJvdW5jZUluY3JlYXNlUG9vbC5mbHVzaCgpfV9nZXRJdGVtKHIsbil7aWYocj49dGhpcy5fZWZmZWN0aXZlU2l6ZSlyZXR1cm47bi5pbmRleD1yO2xldHtjYWNoZTppLHNjYWxlZEluZGV4Om99PXRoaXMuX2NhY2hlLmdldENhY2hlQW5kSW5kZXgociksYT1pLml0ZW1zW29dO2E/KHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibG9hZGluZyIsITEsbiksdGhpcy5fdXBkYXRlSXRlbShuLGEpLHRoaXMuX2lzRXhwYW5kZWQoYSkmJmkuZW5zdXJlU3ViQ2FjaGVGb3JTY2FsZWRJbmRleChvKSk6KHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibG9hZGluZyIsITAsbiksdGhpcy5fbG9hZFBhZ2UodGhpcy5fZ2V0UGFnZUZvckluZGV4KG8pLGkpKX1fZXhwYW5kZWRJbnN0YW5jZUNoYW5nZWRDYWxsYmFjayhyLG4pe3IuaXRlbSE9PXZvaWQgMCYmKG4/dGhpcy5leHBhbmRJdGVtKHIuaXRlbSk6dGhpcy5jb2xsYXBzZUl0ZW0oci5pdGVtKSl9Z2V0SXRlbUlkKHIpe3JldHVybiB0aGlzLml0ZW1JZFBhdGg/dGhpcy5nZXQodGhpcy5pdGVtSWRQYXRoLHIpOnJ9X2lzRXhwYW5kZWQocil7cmV0dXJuIHRoaXMuX19leHBhbmRlZEtleXMuaGFzKHRoaXMuZ2V0SXRlbUlkKHIpKX1fZXhwYW5kZWRJdGVtc0NoYW5nZWQoKXt0aGlzLl9fY2FjaGVFeHBhbmRlZEtleXMoKSx0aGlzLl9jYWNoZS51cGRhdGVTaXplKCksdGhpcy5fZWZmZWN0aXZlU2l6ZT10aGlzLl9jYWNoZS5lZmZlY3RpdmVTaXplLHRoaXMuX2Fzc2lnbk1vZGVscygpfV9pdGVtSWRQYXRoQ2hhbmdlZCgpe3RoaXMuX19jYWNoZUV4cGFuZGVkS2V5cygpfV9fY2FjaGVFeHBhbmRlZEtleXMoKXt0aGlzLmV4cGFuZGVkSXRlbXMmJih0aGlzLl9fZXhwYW5kZWRLZXlzPW5ldyBTZXQsdGhpcy5leHBhbmRlZEl0ZW1zLmZvckVhY2gocj0+e3RoaXMuX19leHBhbmRlZEtleXMuYWRkKHRoaXMuZ2V0SXRlbUlkKHIpKX0pKX1leHBhbmRJdGVtKHIpe3RoaXMuX2lzRXhwYW5kZWQocil8fCh0aGlzLmV4cGFuZGVkSXRlbXM9Wy4uLnRoaXMuZXhwYW5kZWRJdGVtcyxyXSl9Y29sbGFwc2VJdGVtKHIpe3RoaXMuX2lzRXhwYW5kZWQocikmJih0aGlzLmV4cGFuZGVkSXRlbXM9dGhpcy5leHBhbmRlZEl0ZW1zLmZpbHRlcihuPT4hdGhpcy5faXRlbXNFcXVhbChuLHIpKSl9X2dldEluZGV4TGV2ZWwocil7bGV0e2NhY2hlOm59PXRoaXMuX2NhY2hlLmdldENhY2hlQW5kSW5kZXgociksaT0wO2Zvcig7bi5wYXJlbnRDYWNoZTspbj1uLnBhcmVudENhY2hlLGkrKztyZXR1cm4gaX1fY2FuUG9wdWxhdGUoKXtyZXR1cm4gQm9vbGVhbih0aGlzLl9oYXNEYXRhJiZ0aGlzLl9jb2x1bW5UcmVlKX1fbG9hZFBhZ2UocixuKXtpZighbi5wZW5kaW5nUmVxdWVzdHNbcl0mJnRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLl9zZXRMb2FkaW5nKCEwKSxuLnBlbmRpbmdSZXF1ZXN0c1tyXT0hMDtsZXQgaT17cGFnZTpyLHBhZ2VTaXplOnRoaXMucGFnZVNpemUsc29ydE9yZGVyczp0aGlzLl9tYXBTb3J0ZXJzKCksZmlsdGVyczp0aGlzLl9tYXBGaWx0ZXJzKCkscGFyZW50SXRlbTpuLnBhcmVudEl0ZW19O3RoaXMuX2RlYm91bmNlSW5jcmVhc2VQb29sJiZ0aGlzLl9kZWJvdW5jZUluY3JlYXNlUG9vbC5mbHVzaCgpLHRoaXMuZGF0YVByb3ZpZGVyKGksKG8sYSk9PnthIT09dm9pZCAwP24uc2l6ZT1hOmkucGFyZW50SXRlbSYmKG4uc2l6ZT1vLmxlbmd0aCk7bGV0IHM9QXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLm1hcChsPT5sLl9pdGVtKTtvLmZvckVhY2goKGwsYyk9PntsZXQgdT1yKnRoaXMucGFnZVNpemUrYztuLml0ZW1zW3VdPWwsdGhpcy5faXNFeHBhbmRlZChsKSYmcy5pbmRleE9mKGwpPi0xJiZuLmVuc3VyZVN1YkNhY2hlRm9yU2NhbGVkSW5kZXgodSl9KSx0aGlzLl9oYXNEYXRhPSEwLGRlbGV0ZSBuLnBlbmRpbmdSZXF1ZXN0c1tyXSx0aGlzLl9kZWJvdW5jZXJBcHBseUNhY2hlZERhdGE9c3IuZGVib3VuY2UodGhpcy5fZGVib3VuY2VyQXBwbHlDYWNoZWREYXRhLG1vLmFmdGVyKDApLCgpPT57dGhpcy5fc2V0TG9hZGluZyghMSksdGhpcy5fY2FjaGUudXBkYXRlU2l6ZSgpLHRoaXMuX2VmZmVjdGl2ZVNpemU9dGhpcy5fY2FjaGUuZWZmZWN0aXZlU2l6ZSxBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZmlsdGVyKGw9PiFsLmhpZGRlbikuZm9yRWFjaChsPT57dGhpcy5fY2FjaGUuZ2V0SXRlbUZvckluZGV4KGwuaW5kZXgpJiZ0aGlzLl9nZXRJdGVtKGwuaW5kZXgsbCl9KSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgwKSx0aGlzLl9fc2Nyb2xsVG9QZW5kaW5nSW5kZXgoKX0pLHRoaXMuX2NhY2hlLmlzTG9hZGluZygpfHx0aGlzLl9kZWJvdW5jZXJBcHBseUNhY2hlZERhdGEuZmx1c2goKSx0aGlzLl9faXRlbXNSZWNlaXZlZCgpfSl9fV9nZXRQYWdlRm9ySW5kZXgocil7cmV0dXJuIE1hdGguZmxvb3Ioci90aGlzLnBhZ2VTaXplKX1jbGVhckNhY2hlKCl7dGhpcy5fY2FjaGU9bmV3IFpjZSh0aGlzKSxBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZm9yRWFjaChyPT57QXJyYXkuZnJvbShyLmNoaWxkcmVuKS5mb3JFYWNoKG49PntuLl9pbnN0YW5jZSYmbi5faW5zdGFuY2UuX3NldFBlbmRpbmdQcm9wZXJ0eSgiaXRlbSIse30sITEpfSl9KSx0aGlzLl9jYWNoZS5zaXplPXRoaXMuc2l6ZXx8MCx0aGlzLl9jYWNoZS51cGRhdGVTaXplKCksdGhpcy5faGFzRGF0YT0hMSx0aGlzLl9hc3NpZ25Nb2RlbHMoKSwoIXRoaXMuX2VmZmVjdGl2ZVNpemV8fCF0aGlzLl9pbml0aWFsUG9vbENyZWF0ZWQpJiZ0aGlzLl9sb2FkUGFnZSgwLHRoaXMuX2NhY2hlKX1fcGFnZVNpemVDaGFuZ2VkKHIsbil7biE9PXZvaWQgMCYmciE9PW4mJnRoaXMuY2xlYXJDYWNoZSgpfV9jaGVja1NpemUoKXt0aGlzLnNpemU9PT12b2lkIDAmJnRoaXMuX2VmZmVjdGl2ZVNpemU9PT0wJiZjb25zb2xlLndhcm4oIlRoZSA8dmFhZGluLWdyaWQ+IG5lZWRzIHRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMgaW4gb3JkZXIgdG8gZGlzcGxheSByb3dzLiBTZXQgdGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcyB0byB0aGUgYHNpemVgIHByb3BlcnR5LCBvciBwcm92aWRlIHRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIHNlY29uZCBhcmd1bWVudCBvZiB0aGUgYGRhdGFQcm92aWRlcmBcdTIwMTlzIGBjYWxsYmFja2AgY2FsbC4iKX1fZGF0YVByb3ZpZGVyQ2hhbmdlZChyLG4pe24hPT12b2lkIDAmJnRoaXMuY2xlYXJDYWNoZSgpLHImJnRoaXMuaXRlbXMmJnRoaXMuaXRlbXMubGVuZ3RoJiZ0aGlzLl9zY3JvbGxUb0luZGV4KHRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4KSx0aGlzLl9lbnN1cmVGaXJzdFBhZ2VMb2FkZWQoKSx0aGlzLl9kZWJvdW5jZXJDaGVja1NpemU9c3IuZGVib3VuY2UodGhpcy5fZGVib3VuY2VyQ2hlY2tTaXplLG1vLmFmdGVyKDJlMyksdGhpcy5fY2hlY2tTaXplLmJpbmQodGhpcykpLHRoaXMuX3Njcm9sbEhhbmRsZXIoKX1fZW5zdXJlRmlyc3RQYWdlTG9hZGVkKCl7dGhpcy5faGFzRGF0YXx8dGhpcy5fbG9hZFBhZ2UoMCx0aGlzLl9jYWNoZSl9X2l0ZW1zRXF1YWwocixuKXtyZXR1cm4gdGhpcy5nZXRJdGVtSWQocik9PT10aGlzLmdldEl0ZW1JZChuKX1fZ2V0SXRlbUluZGV4SW5BcnJheShyLG4pe2xldCBpPS0xO3JldHVybiBuLmZvckVhY2goKG8sYSk9Pnt0aGlzLl9pdGVtc0VxdWFsKG8scikmJihpPWEpfSksaX1zY3JvbGxUb0luZGV4KHIpe3N1cGVyLnNjcm9sbFRvSW5kZXgociksIWlzTmFOKHIpJiYodGhpcy5fY2FjaGUuaXNMb2FkaW5nKCl8fCF0aGlzLmNsaWVudEhlaWdodCkmJih0aGlzLl9fcGVuZGluZ1Njcm9sbFRvSW5kZXg9cil9X19zY3JvbGxUb1BlbmRpbmdJbmRleCgpe2lmKHRoaXMuX19wZW5kaW5nU2Nyb2xsVG9JbmRleCYmdGhpcy4kLml0ZW1zLmNoaWxkcmVuLmxlbmd0aCl7bGV0IHI9dGhpcy5fX3BlbmRpbmdTY3JvbGxUb0luZGV4O2RlbGV0ZSB0aGlzLl9fcGVuZGluZ1Njcm9sbFRvSW5kZXgsdGhpcy5fZGVib3VuY2VJbmNyZWFzZVBvb2wmJnRoaXMuX2RlYm91bmNlSW5jcmVhc2VQb29sLmZsdXNoKCksdGhpcy5zY3JvbGxUb0luZGV4KHIpfX19O3ZhciB0dWU9ZT0+Y2xhc3MgZXh0ZW5kcyBle3JlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLl9hZGROb2RlT2JzZXJ2ZXIoKX1faGFzQ29sdW1uR3JvdXBzKHIpe2ZvcihsZXQgbj0wO248ci5sZW5ndGg7bisrKWlmKHJbbl0ubG9jYWxOYW1lPT09InZhYWRpbi1ncmlkLWNvbHVtbi1ncm91cCIpcmV0dXJuITA7cmV0dXJuITF9X2dldENoaWxkQ29sdW1ucyhyKXtyZXR1cm4geGguZ2V0RmxhdHRlbmVkTm9kZXMocikuZmlsdGVyKHRoaXMuX2lzQ29sdW1uRWxlbWVudCl9X2ZsYXR0ZW5Db2x1bW5Hcm91cHMocil7cmV0dXJuIHIubWFwKG49Pm4ubG9jYWxOYW1lPT09InZhYWRpbi1ncmlkLWNvbHVtbi1ncm91cCI/dGhpcy5fZ2V0Q2hpbGRDb2x1bW5zKG4pOltuXSkucmVkdWNlKChuLGkpPT5uLmNvbmNhdChpKSxbXSl9X2dldENvbHVtblRyZWUoKXtsZXQgcj14aC5nZXRGbGF0dGVuZWROb2Rlcyh0aGlzKS5maWx0ZXIodGhpcy5faXNDb2x1bW5FbGVtZW50KSxuPVtdO2ZvcihsZXQgaT1yO24ucHVzaChpKSwhIXRoaXMuX2hhc0NvbHVtbkdyb3VwcyhpKTspaT10aGlzLl9mbGF0dGVuQ29sdW1uR3JvdXBzKGkpO3JldHVybiBufV91cGRhdGVDb2x1bW5UcmVlKCl7bGV0IHI9dGhpcy5fZ2V0Q29sdW1uVHJlZSgpO3RoaXMuX2FycmF5RXF1YWxzKHIsdGhpcy5fY29sdW1uVHJlZSl8fCh0aGlzLl9jb2x1bW5UcmVlPXIpfV9hZGROb2RlT2JzZXJ2ZXIoKXt0aGlzLl9vYnNlcnZlcj1uZXcgeGgodGhpcyxyPT57bGV0IG49ci5hZGRlZE5vZGVzLmZpbHRlcihvPT5vLmxvY2FsTmFtZT09PSJ0ZW1wbGF0ZSImJm8uY2xhc3NMaXN0LmNvbnRhaW5zKCJyb3ctZGV0YWlscyIpKVswXTtuJiZ0aGlzLl9yb3dEZXRhaWxzVGVtcGxhdGUhPT1uJiYodGhpcy5fcm93RGV0YWlsc1RlbXBsYXRlPW4pO2xldCBpPW89Pm8uZmlsdGVyKHRoaXMuX2lzQ29sdW1uRWxlbWVudCkubGVuZ3RoPjA7aWYoaShyLmFkZGVkTm9kZXMpfHxpKHIucmVtb3ZlZE5vZGVzKSl7bGV0IG89ci5yZW1vdmVkTm9kZXMuZmxhdE1hcChzPT5zLl9hbGxDZWxscyksYT1zPT5vLmZpbHRlcihsPT5sLl9jb250ZW50LmNvbnRhaW5zKHMpKS5sZW5ndGg7dGhpcy5fX3JlbW92ZVNvcnRlcnModGhpcy5fc29ydGVycy5maWx0ZXIoYSkpLHRoaXMuX19yZW1vdmVGaWx0ZXJzKHRoaXMuX2ZpbHRlcnMuZmlsdGVyKGEpKSx0aGlzLl91cGRhdGVDb2x1bW5UcmVlKCl9dGhpcy5fZGVib3VuY2VyQ2hlY2tJbXBvcnRzPXNyLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlckNoZWNrSW1wb3J0cyxtby5hZnRlcigyZTMpLHRoaXMuX2NoZWNrSW1wb3J0cy5iaW5kKHRoaXMpKSx0aGlzLl9lbnN1cmVGaXJzdFBhZ2VMb2FkZWQoKX0pfV9hcnJheUVxdWFscyhyLG4pe2lmKCFyfHwhbnx8ci5sZW5ndGghPW4ubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgaT0wLG89ci5sZW5ndGg7aTxvO2krKylpZihyW2ldaW5zdGFuY2VvZiBBcnJheSYmbltpXWluc3RhbmNlb2YgQXJyYXkpe2lmKCF0aGlzLl9hcnJheUVxdWFscyhyW2ldLG5baV0pKXJldHVybiExfWVsc2UgaWYocltpXSE9bltpXSlyZXR1cm4hMTtyZXR1cm4hMH1fY2hlY2tJbXBvcnRzKCl7WyJ2YWFkaW4tZ3JpZC1jb2x1bW4tZ3JvdXAiLCJ2YWFkaW4tZ3JpZC1maWx0ZXIiLCJ2YWFkaW4tZ3JpZC1maWx0ZXItY29sdW1uIiwidmFhZGluLWdyaWQtdHJlZS10b2dnbGUiLCJ2YWFkaW4tZ3JpZC1zZWxlY3Rpb24tY29sdW1uIiwidmFhZGluLWdyaWQtc29ydC1jb2x1bW4iLCJ2YWFkaW4tZ3JpZC1zb3J0ZXIiXS5mb3JFYWNoKHI9PntsZXQgbj10aGlzLnF1ZXJ5U2VsZWN0b3Iocik7biYmIShuIGluc3RhbmNlb2YgbXQpJiZjb25zb2xlLndhcm4oYE1ha2Ugc3VyZSB5b3UgaGF2ZSBpbXBvcnRlZCB0aGUgcmVxdWlyZWQgbW9kdWxlIGZvciA8JHtyfT4gZWxlbWVudC5gKX0pfV91cGRhdGVGaXJzdEFuZExhc3RDb2x1bW4oKXtBcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCJ0ciIpKS5mb3JFYWNoKHI9PnRoaXMuX3VwZGF0ZUZpcnN0QW5kTGFzdENvbHVtbkZvclJvdyhyKSl9X3VwZGF0ZUZpcnN0QW5kTGFzdENvbHVtbkZvclJvdyhyKXtBcnJheS5mcm9tKHIucXVlcnlTZWxlY3RvckFsbCgnW3BhcnR+PSJjZWxsIl06bm90KFtwYXJ0fj0iZGV0YWlscy1jZWxsIl0pJykpLnNvcnQoKG4saSk9Pm4uX2NvbHVtbi5fb3JkZXItaS5fY29sdW1uLl9vcmRlcikuZm9yRWFjaCgobixpLG8pPT57dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJmaXJzdC1jb2x1bW4iLGk9PT0wLG4pLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibGFzdC1jb2x1bW4iLGk9PT1vLmxlbmd0aC0xLG4pfSl9X2lzQ29sdW1uRWxlbWVudChyKXtyZXR1cm4gci5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiYvXGJjb2x1bW5cYi8udGVzdChyLmxvY2FsTmFtZSl9fTt2YXIgZXVlPWU9PmNsYXNzIGV4dGVuZHMgZXtnZXRFdmVudENvbnRleHQocil7bGV0IG49e30saT1yLmNvbXBvc2VkUGF0aCgpLG89aVtpLmluZGV4T2YodGhpcy4kLnRhYmxlKS0zXTtyZXR1cm4gbyYmKG4uc2VjdGlvbj1bImJvZHkiLCJoZWFkZXIiLCJmb290ZXIiLCJkZXRhaWxzIl0uZmlsdGVyKGE9Pm8uZ2V0QXR0cmlidXRlKCJwYXJ0IikuaW5kZXhPZihhKT4tMSlbMF0sby5fY29sdW1uJiYobi5jb2x1bW49by5fY29sdW1uKSwobi5zZWN0aW9uPT09ImJvZHkifHxuLnNlY3Rpb249PT0iZGV0YWlscyIpJiZPYmplY3QuYXNzaWduKG4sdGhpcy5fX2dldFJvd01vZGVsKG8ucGFyZW50RWxlbWVudCkpKSxufX07dmFyIHJ1ZT1lPT5jbGFzcyBleHRlbmRzIGV7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue19maWx0ZXJzOnt0eXBlOkFycmF5LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fX19cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZmlsdGVyLWNoYW5nZWQiLHRoaXMuX2ZpbHRlckNoYW5nZWQuYmluZCh0aGlzKSl9X2ZpbHRlckNoYW5nZWQocil7ci5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9fYWRkRmlsdGVyKHIudGFyZ2V0KSx0aGlzLl9fYXBwbHlGaWx0ZXJzKCl9X19yZW1vdmVGaWx0ZXJzKHIpe3IubGVuZ3RoIT0wJiYodGhpcy5fZmlsdGVycz10aGlzLl9maWx0ZXJzLmZpbHRlcihuPT5yLmluZGV4T2Yobik8MCksdGhpcy5fX2FwcGx5RmlsdGVycygpKX1fX2FkZEZpbHRlcihyKXt0aGlzLl9maWx0ZXJzLmluZGV4T2Yocik9PT0tMSYmdGhpcy5fZmlsdGVycy5wdXNoKHIpfV9fYXBwbHlGaWx0ZXJzKCl7dGhpcy5kYXRhUHJvdmlkZXImJnRoaXMuaXNBdHRhY2hlZCYmdGhpcy5jbGVhckNhY2hlKCl9X21hcEZpbHRlcnMoKXtyZXR1cm4gdGhpcy5fZmlsdGVycy5tYXAocj0+KHtwYXRoOnIucGF0aCx2YWx1ZTpyLnZhbHVlfSkpfX07dmFyIEMwPWNsYXNzIGV4dGVuZHMgbXR7c3RhdGljIGdldCBpcygpe3JldHVybiJ2YWFkaW4tZ3JpZC10ZW1wbGF0aXplciJ9c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2RhdGFIb3N0Ok9iamVjdCx0ZW1wbGF0ZTpPYmplY3QsX3RlbXBsYXRlSW5zdGFuY2VzOnt0eXBlOkFycmF5LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fSxfcGFyZW50UGF0aFZhbHVlczp7dmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57fX19LF9ncmlkOk9iamVjdH19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl90ZW1wbGF0ZUluc3RhbmNlc0NoYW5nZWQoX3RlbXBsYXRlSW5zdGFuY2VzLiosIF9wYXJlbnRQYXRoVmFsdWVzLiopIl19Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX2luc3RhbmNlUHJvcHM9e2RldGFpbHNPcGVuZWQ6ITAsaW5kZXg6ITAsaXRlbTohMCxzZWxlY3RlZDohMCxleHBhbmRlZDohMCxsZXZlbDohMH19Y3JlYXRlSW5zdGFuY2UoKXt0aGlzLl9lbnN1cmVUZW1wbGF0aXplZCgpO2xldCB0PW5ldyB0aGlzLl9UZW1wbGF0ZUNsYXNzKHt9KTtyZXR1cm4gdGhpcy5hZGRJbnN0YW5jZSh0KSx0fWFkZEluc3RhbmNlKHQpe3RoaXMuX3RlbXBsYXRlSW5zdGFuY2VzLmluZGV4T2YodCk9PT0tMSYmKHRoaXMuX3RlbXBsYXRlSW5zdGFuY2VzLnB1c2godCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT50aGlzLm5vdGlmeVBhdGgoIl90ZW1wbGF0ZUluc3RhbmNlcy4qIix0aGlzLl90ZW1wbGF0ZUluc3RhbmNlcykpKX1yZW1vdmVJbnN0YW5jZSh0KXtsZXQgcj10aGlzLl90ZW1wbGF0ZUluc3RhbmNlcy5pbmRleE9mKHQpO3RoaXMuc3BsaWNlKCJfdGVtcGxhdGVJbnN0YW5jZXMiLHIsMSl9X2Vuc3VyZVRlbXBsYXRpemVkKCl7dGhpcy5fVGVtcGxhdGVDbGFzc3x8KHRoaXMuX1RlbXBsYXRlQ2xhc3M9dGModGhpcy50ZW1wbGF0ZSx0aGlzLHtpbnN0YW5jZVByb3BzOnRoaXMuX2luc3RhbmNlUHJvcHMscGFyZW50TW9kZWw6ITAsZm9yd2FyZEhvc3RQcm9wOmZ1bmN0aW9uKHQscil7dGhpcy5fZm9yd2FyZFBhcmVudFByb3AodCxyKSx0aGlzLl90ZW1wbGF0ZUluc3RhbmNlcyYmdGhpcy5fdGVtcGxhdGVJbnN0YW5jZXMuZm9yRWFjaChuPT5uLm5vdGlmeVBhdGgodCxyKSl9LG5vdGlmeUluc3RhbmNlUHJvcDpmdW5jdGlvbih0LHIsbil7aWYocj09PSJpbmRleCJ8fHI9PT0iaXRlbSIpcmV0dXJuO2xldCBpPWBfXyR7cn1fX2A7aWYodFtpXT09PW4pcmV0dXJuO3RbaV09bjtsZXQgbz1BcnJheS5mcm9tKHRoaXMuX2dyaWQuJC5pdGVtcy5jaGlsZHJlbikuZmlsdGVyKGw9PnRoaXMuX2dyaWQuX2l0ZW1zRXF1YWwobC5faXRlbSx0Lml0ZW0pKVswXTtvJiZBcnJheS5mcm9tKG8uY2hpbGRyZW4pLmZvckVhY2gobD0+e2wuX2luc3RhbmNlJiYobC5faW5zdGFuY2VbaV09bixsLl9pbnN0YW5jZS5ub3RpZnlQYXRoKHIsbikpfSk7bGV0IGE9Iml0ZW0uIjtpZihBcnJheS5pc0FycmF5KHRoaXMuX2dyaWQuaXRlbXMpJiZyLmluZGV4T2YoYSk9PT0wKXtsZXQgbD10aGlzLl9ncmlkLml0ZW1zLmluZGV4T2YodC5pdGVtKSxjPXIuc2xpY2UoYS5sZW5ndGgpO3RoaXMuX2dyaWQubm90aWZ5UGF0aChgaXRlbXMuJHtsfS4ke2N9YCxuKX1sZXQgcz1gXyR7cn1JbnN0YW5jZUNoYW5nZWRDYWxsYmFja2A7dGhpcy5fZ3JpZCYmdGhpcy5fZ3JpZFtzXSYmdGhpcy5fZ3JpZFtzXSh0LG4pfX0pKX1fZm9yd2FyZFBhcmVudFByb3AodCxyKXt0aGlzLl9wYXJlbnRQYXRoVmFsdWVzW3RdPXIsdGhpcy5fdGVtcGxhdGVJbnN0YW5jZXMuZm9yRWFjaChuPT5uLm5vdGlmeVBhdGgodCxyKSl9X3RlbXBsYXRlSW5zdGFuY2VzQ2hhbmdlZCh0KXtsZXQgcixuO2lmKHQucGF0aD09PSJfdGVtcGxhdGVJbnN0YW5jZXMiKXI9MCxuPXRoaXMuX3RlbXBsYXRlSW5zdGFuY2VzLmxlbmd0aDtlbHNlIGlmKHQucGF0aD09PSJfdGVtcGxhdGVJbnN0YW5jZXMuc3BsaWNlcyIpcj10LnZhbHVlLmluZGV4LG49dC52YWx1ZS5hZGRlZENvdW50O2Vsc2UgcmV0dXJuO09iamVjdC5rZXlzKHRoaXMuX3BhcmVudFBhdGhWYWx1ZXN8fHt9KS5mb3JFYWNoKGk9Pntmb3IobGV0IG89cjtvPHIrbjtvKyspdGhpcy5fdGVtcGxhdGVJbnN0YW5jZXNbb10uc2V0KGksdGhpcy5fcGFyZW50UGF0aFZhbHVlc1tpXSl9KX19O2N1c3RvbUVsZW1lbnRzLmRlZmluZShDMC5pcyxDMCk7dmFyIG51ZT1lPT5jbGFzcyBleHRlbmRzIGV7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2RldGFpbHNPcGVuZWRJdGVtczp7dHlwZTpBcnJheSx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX0sX3Jvd0RldGFpbHNUZW1wbGF0ZTpPYmplY3Qscm93RGV0YWlsc1JlbmRlcmVyOkZ1bmN0aW9uLF9kZXRhaWxzQ2VsbHM6e3R5cGU6QXJyYXl9fX1zdGF0aWMgZ2V0IG9ic2VydmVycygpe3JldHVyblsiX2RldGFpbHNPcGVuZWRJdGVtc0NoYW5nZWQoZGV0YWlsc09wZW5lZEl0ZW1zLiosIF9yb3dEZXRhaWxzVGVtcGxhdGUsIHJvd0RldGFpbHNSZW5kZXJlcikiLCJfcm93RGV0YWlsc1RlbXBsYXRlT3JSZW5kZXJlckNoYW5nZWQoX3Jvd0RldGFpbHNUZW1wbGF0ZSwgcm93RGV0YWlsc1JlbmRlcmVyKSJdfV9yb3dEZXRhaWxzVGVtcGxhdGVPclJlbmRlcmVyQ2hhbmdlZChyLG4pe2lmKHImJm4pdGhyb3cgbmV3IEVycm9yKCJZb3Ugc2hvdWxkIG9ubHkgdXNlIGVpdGhlciBhIHJlbmRlcmVyIG9yIGEgdGVtcGxhdGUgZm9yIHJvdyBkZXRhaWxzIik7aWYocnx8bil7aWYociYmIXIudGVtcGxhdGl6ZXIpe2xldCBpPW5ldyBDMDtpLl9ncmlkPXRoaXMsaS5kYXRhSG9zdD10aGlzLmRhdGFIb3N0LGkudGVtcGxhdGU9cixyLnRlbXBsYXRpemVyPWl9dGhpcy5fY29sdW1uVHJlZSYmQXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZvckVhY2goaT0+e2kucXVlcnlTZWxlY3RvcigiW3BhcnR+PWRldGFpbHMtY2VsbF0iKXx8KHRoaXMuX3VwZGF0ZVJvdyhpLHRoaXMuX2NvbHVtblRyZWVbdGhpcy5fY29sdW1uVHJlZS5sZW5ndGgtMV0pLHRoaXMuX2ExMXlVcGRhdGVSb3dEZXRhaWxzT3BlbmVkKGksITEpKSxkZWxldGUgaS5xdWVyeVNlbGVjdG9yKCJbcGFydH49ZGV0YWlscy1jZWxsXSIpLl9pbnN0YW5jZX0pLHRoaXMuZGV0YWlsc09wZW5lZEl0ZW1zLmxlbmd0aCYmKEFycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5mb3JFYWNoKHRoaXMuX3RvZ2dsZURldGFpbHNDZWxsLHRoaXMpLHRoaXMuX3VwZGF0ZSgpKX19X2RldGFpbHNPcGVuZWRJdGVtc0NoYW5nZWQocil7ci5wYXRoPT09ImRldGFpbHNPcGVuZWRJdGVtcy5sZW5ndGgifHwhci52YWx1ZXx8QXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZvckVhY2gobj0+e3RoaXMuX3RvZ2dsZURldGFpbHNDZWxsKG4sbi5faXRlbSksdGhpcy5fYTExeVVwZGF0ZVJvd0RldGFpbHNPcGVuZWQobix0aGlzLl9pc0RldGFpbHNPcGVuZWQobi5faXRlbSkpLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgiZGV0YWlscy1vcGVuZWQiLHRoaXMuX2lzRGV0YWlsc09wZW5lZChuLl9pdGVtKSxuKX0pfV9jb25maWd1cmVEZXRhaWxzQ2VsbChyKXtyLnNldEF0dHJpYnV0ZSgicGFydCIsImNlbGwgZGV0YWlscy1jZWxsIiksdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJmcm96ZW4iLCEwLHIpfV90b2dnbGVEZXRhaWxzQ2VsbChyLG4pe2xldCBpPXIucXVlcnlTZWxlY3RvcignW3BhcnR+PSJkZXRhaWxzLWNlbGwiXScpO2lmKCFpKXJldHVybjtsZXQgbz0hdGhpcy5faXNEZXRhaWxzT3BlbmVkKG4pLGE9ISFpLmhpZGRlbiE9PW87KCFpLl9pbnN0YW5jZSYmIWkuX3JlbmRlcmVyfHxpLmhpZGRlbiE9PW8pJiYoaS5oaWRkZW49byxvP3Iuc3R5bGUucmVtb3ZlUHJvcGVydHkoInBhZGRpbmctYm90dG9tIik6KHRoaXMucm93RGV0YWlsc1JlbmRlcmVyPyhpLl9yZW5kZXJlcj10aGlzLnJvd0RldGFpbHNSZW5kZXJlcixpLl9yZW5kZXJlci5jYWxsKHRoaXMsaS5fY29udGVudCx0aGlzLHtpbmRleDpyLmluZGV4LGl0ZW06bn0pKTp0aGlzLl9yb3dEZXRhaWxzVGVtcGxhdGUmJiFpLl9pbnN0YW5jZSYmKGkuX2luc3RhbmNlPXRoaXMuX3Jvd0RldGFpbHNUZW1wbGF0ZS50ZW1wbGF0aXplci5jcmVhdGVJbnN0YW5jZSgpLGkuX2NvbnRlbnQuaW5uZXJIVE1MPSIiLGkuX2NvbnRlbnQuYXBwZW5kQ2hpbGQoaS5faW5zdGFuY2Uucm9vdCksdGhpcy5fdXBkYXRlSXRlbShyLG4pKSxjaSgpLHIuc3R5bGUuc2V0UHJvcGVydHkoInBhZGRpbmctYm90dG9tIixgJHtpLm9mZnNldEhlaWdodH1weGApLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+dGhpcy5ub3RpZnlSZXNpemUoKSkpKSxhJiYodGhpcy5fdXBkYXRlTWV0cmljcygpLHRoaXMuX3Bvc2l0aW9uSXRlbXMoKSl9X3VwZGF0ZURldGFpbHNDZWxsSGVpZ2h0cygpe0FycmF5LmZyb20odGhpcy4kLml0ZW1zLnF1ZXJ5U2VsZWN0b3JBbGwoJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl06bm90KFtoaWRkZW5dKScpKS5mb3JFYWNoKHI9PntyLnBhcmVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoInBhZGRpbmctYm90dG9tIixgJHtyLm9mZnNldEhlaWdodH1weGApfSl9X2lzRGV0YWlsc09wZW5lZChyKXtyZXR1cm4gdGhpcy5kZXRhaWxzT3BlbmVkSXRlbXMmJnRoaXMuX2dldEl0ZW1JbmRleEluQXJyYXkocix0aGlzLmRldGFpbHNPcGVuZWRJdGVtcykhPT0tMX1vcGVuSXRlbURldGFpbHMocil7dGhpcy5faXNEZXRhaWxzT3BlbmVkKHIpfHwodGhpcy5kZXRhaWxzT3BlbmVkSXRlbXM9Wy4uLnRoaXMuZGV0YWlsc09wZW5lZEl0ZW1zLHJdKX1jbG9zZUl0ZW1EZXRhaWxzKHIpe3RoaXMuX2lzRGV0YWlsc09wZW5lZChyKSYmKHRoaXMuZGV0YWlsc09wZW5lZEl0ZW1zPXRoaXMuZGV0YWlsc09wZW5lZEl0ZW1zLmZpbHRlcihuPT4hdGhpcy5faXRlbXNFcXVhbChuLHIpKSl9X2RldGFpbHNPcGVuZWRJbnN0YW5jZUNoYW5nZWRDYWxsYmFjayhyLG4pe24/dGhpcy5vcGVuSXRlbURldGFpbHMoci5pdGVtKTp0aGlzLmNsb3NlSXRlbURldGFpbHMoci5pdGVtKX19O3ZhciB6Y3Q9e1NDUk9MTElORzo1MDAsSUdOT1JFX1dIRUVMOjUwMH0saXVlPWU9PmNsYXNzIGV4dGVuZHMgZXtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57X2Zyb3plbkNlbGxzOnt0eXBlOkFycmF5LHZhbHVlOigpPT5bXX0sX3Jvd1dpdGhGb2N1c2VkRWxlbWVudDpFbGVtZW50LF9kZWx0YVlBY2M6e3R5cGU6TnVtYmVyLHZhbHVlOjB9LF91c2VTdGlja3k6e3R5cGU6Qm9vbGVhbix2YWx1ZTp3aW5kb3cuQ1NTJiZ3aW5kb3cuQ1NTLnN1cHBvcnRzJiYod2luZG93LkNTUy5zdXBwb3J0cygicG9zaXRpb24iLCJzdGlja3kiKXx8d2luZG93LkNTUy5zdXBwb3J0cygicG9zaXRpb24iLCItd2Via2l0LXN0aWNreSIpKX19fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfc2Nyb2xsVmlld3BvcnRIZWlnaHRVcGRhdGVkKF92aWV3cG9ydEhlaWdodCkiXX1zZXQgX3Njcm9sbFRvcChyKXt0aGlzLiQudGFibGUuc2Nyb2xsVG9wPXJ9Z2V0IF9zY3JvbGxUb3AoKXtyZXR1cm4gdGhpcy4kLnRhYmxlLnNjcm9sbFRvcH1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fc2Nyb2xsTGluZUhlaWdodD10aGlzLl9nZXRTY3JvbGxMaW5lSGVpZ2h0KCl9X2dldFNjcm9sbExpbmVIZWlnaHQoKXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLnN0eWxlLmZvbnRTaXplPSJpbml0aWFsIixyLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocik7bGV0IG49d2luZG93LmdldENvbXB1dGVkU3R5bGUocikuZm9udFNpemU7cmV0dXJuIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQociksbj93aW5kb3cucGFyc2VJbnQobik6dm9pZCAwfV9zY3JvbGxWaWV3cG9ydEhlaWdodFVwZGF0ZWQocil7dGhpcy5fc2Nyb2xsUGFnZUhlaWdodD1yLXRoaXMuJC5oZWFkZXIuY2xpZW50SGVpZ2h0LXRoaXMuJC5mb290ZXIuY2xpZW50SGVpZ2h0LXRoaXMuX3Njcm9sbExpbmVIZWlnaHR9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuJC5vdXRlcnNjcm9sbGVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuc2Nyb2xsVGFyZ2V0PXRoaXMuJC50YWJsZSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLl9vbldoZWVsKSx0aGlzLiQuaXRlbXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIscj0+e2xldCBuPXIuY29tcG9zZWRQYXRoKCkuaW5kZXhPZih0aGlzLiQuaXRlbXMpO3RoaXMuX3Jvd1dpdGhGb2N1c2VkRWxlbWVudD1yLmNvbXBvc2VkUGF0aCgpW24tMV19KSx0aGlzLiQuaXRlbXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLCgpPT50aGlzLl9yb3dXaXRoRm9jdXNlZEVsZW1lbnQ9dm9pZCAwKSx0aGlzLnNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCgpPT50aGlzLl9fbW91c2VEb3duPSEwKSx0aGlzLnNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwoKT0+e3RoaXMuX19tb3VzZURvd249ITEsdGhpcy5fX3BlbmRpbmdSZW9yZGVyJiYodGhpcy5fX3BlbmRpbmdSZW9yZGVyPSExLHNldFRpbWVvdXQoKCk9PnRoaXMuX3Jlb3JkZXJSb3dzKCksemN0LlNDUk9MTElORykpfSl9c2Nyb2xsVG9JbmRleChyKXt0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSSgoKT0+c3VwZXIuc2Nyb2xsVG9JbmRleChyKSl9X29uV2hlZWwocil7aWYoci5jdHJsS2V5fHx0aGlzLl9oYXNTY3JvbGxlZEFuY2VzdG9yKHIudGFyZ2V0LHIuZGVsdGFYLHIuZGVsdGFZKSlyZXR1cm47bGV0IG49dGhpcy4kLnRhYmxlLGk9ci5kZWx0YVk7aWYoci5kZWx0YU1vZGU9PT1XaGVlbEV2ZW50LkRPTV9ERUxUQV9MSU5FP2kqPXRoaXMuX3Njcm9sbExpbmVIZWlnaHQ6ci5kZWx0YU1vZGU9PT1XaGVlbEV2ZW50LkRPTV9ERUxUQV9QQUdFJiYoaSo9dGhpcy5fc2Nyb2xsUGFnZUhlaWdodCksdGhpcy5fd2hlZWxBbmltYXRpb25GcmFtZSl7dGhpcy5fZGVsdGFZQWNjKz1pLHIucHJldmVudERlZmF1bHQoKTtyZXR1cm59aSs9dGhpcy5fZGVsdGFZQWNjLHRoaXMuX2RlbHRhWUFjYz0wLHRoaXMuX3doZWVsQW5pbWF0aW9uRnJhbWU9ITAsdGhpcy5fZGVib3VuY2VyV2hlZWxBbmltYXRpb25GcmFtZT1zci5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZXJXaGVlbEFuaW1hdGlvbkZyYW1lLE5pLCgpPT50aGlzLl93aGVlbEFuaW1hdGlvbkZyYW1lPSExKTtsZXQgbz1NYXRoLmFicyhyLmRlbHRhWCkrTWF0aC5hYnMoaSk7dGhpcy5fY2FuU2Nyb2xsKG4sci5kZWx0YVgsaSk/KHIucHJldmVudERlZmF1bHQoKSxuLnNjcm9sbFRvcCs9aSxuLnNjcm9sbExlZnQrPXIuZGVsdGFYLHRoaXMuX3Njcm9sbEhhbmRsZXIoKSx0aGlzLl9oYXNSZXNpZHVhbE1vbWVudHVtPSEwLHRoaXMuX2lnbm9yZU5ld1doZWVsPSEwLHRoaXMuX2RlYm91bmNlcklnbm9yZU5ld1doZWVsPXNyLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlcklnbm9yZU5ld1doZWVsLG1vLmFmdGVyKHpjdC5JR05PUkVfV0hFRUwpLCgpPT50aGlzLl9pZ25vcmVOZXdXaGVlbD0hMSkpOnRoaXMuX2hhc1Jlc2lkdWFsTW9tZW50dW0mJm88PXRoaXMuX3ByZXZpb3VzTW9tZW50dW18fHRoaXMuX2lnbm9yZU5ld1doZWVsP3IucHJldmVudERlZmF1bHQoKTpvPnRoaXMuX3ByZXZpb3VzTW9tZW50dW0mJih0aGlzLl9oYXNSZXNpZHVhbE1vbWVudHVtPSExKSx0aGlzLl9wcmV2aW91c01vbWVudHVtPW99X2hhc1Njcm9sbGVkQW5jZXN0b3IocixuLGkpe2lmKHIubG9jYWxOYW1lPT09InZhYWRpbi1ncmlkLWNlbGwtY29udGVudCIpcmV0dXJuITE7aWYodGhpcy5fY2FuU2Nyb2xsKHIsbixpKSYmWyJhdXRvIiwic2Nyb2xsIl0uaW5kZXhPZihnZXRDb21wdXRlZFN0eWxlKHIpLm92ZXJmbG93KSE9PS0xKXJldHVybiEwO2lmKHIhPT10aGlzJiZyLnBhcmVudEVsZW1lbnQpcmV0dXJuIHRoaXMuX2hhc1Njcm9sbGVkQW5jZXN0b3Ioci5wYXJlbnRFbGVtZW50LG4saSl9X2NhblNjcm9sbChyLG4saSl7cmV0dXJuIGk+MCYmci5zY3JvbGxUb3A8ci5zY3JvbGxIZWlnaHQtci5vZmZzZXRIZWlnaHR8fGk8MCYmci5zY3JvbGxUb3A+MHx8bj4wJiZyLnNjcm9sbExlZnQ8ci5zY3JvbGxXaWR0aC1yLm9mZnNldFdpZHRofHxuPDAmJnIuc2Nyb2xsTGVmdD4wfV9zY2hlZHVsZVNjcm9sbGluZygpe3RoaXMuX3Njcm9sbGluZ0ZyYW1lfHwodGhpcy5fc2Nyb2xsaW5nRnJhbWU9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT50aGlzLl90b2dnbGVBdHRyaWJ1dGUoInNjcm9sbGluZyIsITAsdGhpcy4kLnNjcm9sbGVyKSkpLHRoaXMuX2RlYm91bmNlU2Nyb2xsaW5nPXNyLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlU2Nyb2xsaW5nLG1vLmFmdGVyKHpjdC5TQ1JPTExJTkcpLCgpPT57Y2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fc2Nyb2xsaW5nRnJhbWUpLGRlbGV0ZSB0aGlzLl9zY3JvbGxpbmdGcmFtZSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoInNjcm9sbGluZyIsITEsdGhpcy4kLnNjcm9sbGVyKSx0aGlzLl9yZW9yZGVyUm93cygpfSl9X2FmdGVyU2Nyb2xsKCl7dGhpcy5fdHJhbnNsYXRlU3RhdGlvbmFyeUVsZW1lbnRzKCksdGhpcy5oYXNBdHRyaWJ1dGUoInJlb3JkZXJpbmciKXx8dGhpcy5fc2NoZWR1bGVTY3JvbGxpbmcoKSx0aGlzLl91cGRhdGVPdmVyZmxvdygpfV91cGRhdGVPdmVyZmxvdygpe2xldCByPSIiLG49dGhpcy4kLnRhYmxlO24uc2Nyb2xsVG9wPG4uc2Nyb2xsSGVpZ2h0LW4uY2xpZW50SGVpZ2h0JiYocis9IiBib3R0b20iKSxuLnNjcm9sbFRvcD4wJiYocis9IiB0b3AiKSxuLnNjcm9sbExlZnQ8bi5zY3JvbGxXaWR0aC1uLmNsaWVudFdpZHRoJiYocis9IiByaWdodCIpLG4uc2Nyb2xsTGVmdD4wJiYocis9IiBsZWZ0IiksdGhpcy5fZGVib3VuY2VPdmVyZmxvdz1zci5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZU92ZXJmbG93LE5pLCgpPT57bGV0IGk9ci50cmltKCk7aS5sZW5ndGg+MCYmdGhpcy5nZXRBdHRyaWJ1dGUoIm92ZXJmbG93IikhPT1pP3RoaXMuc2V0QXR0cmlidXRlKCJvdmVyZmxvdyIsaSk6aS5sZW5ndGg9PTAmJnRoaXMuaGFzQXR0cmlidXRlKCJvdmVyZmxvdyIpJiZ0aGlzLnJlbW92ZUF0dHJpYnV0ZSgib3ZlcmZsb3ciKX0pfV9yZW9yZGVyUm93cygpe2lmKHRoaXMuX19tb3VzZURvd24pe3RoaXMuX19wZW5kaW5nUmVvcmRlcj0hMDtyZXR1cm59bGV0IHI9dGhpcy4kLml0ZW1zLG49ci5xdWVyeVNlbGVjdG9yQWxsKCJ0ciIpO2lmKCFuLmxlbmd0aClyZXR1cm47bGV0IGk9dGhpcy5fdmlydHVhbFN0YXJ0K3RoaXMuX3ZpZHhPZmZzZXQsbz10aGlzLl9yb3dXaXRoRm9jdXNlZEVsZW1lbnR8fEFycmF5LmZyb20obikuZmlsdGVyKGw9PiFsLmhpZGRlbilbMF07aWYoIW8pcmV0dXJuO2xldCBhPW8uaW5kZXgtaSxzPUFycmF5LmZyb20obikuaW5kZXhPZihvKS1hO2lmKHM+MClmb3IobGV0IGw9MDtsPHM7bCsrKXIuYXBwZW5kQ2hpbGQobltsXSk7ZWxzZSBpZihzPDApZm9yKGxldCBsPW4ubGVuZ3RoK3M7bDxuLmxlbmd0aDtsKyspci5pbnNlcnRCZWZvcmUobltsXSxuWzBdKTtpZih0aGlzLl9zYWZhcmkpe2xldHt0cmFuc2Zvcm06bH09dGhpcy4kLmhlYWRlci5zdHlsZTt0aGlzLiQuaGVhZGVyLnN0eWxlLnRyYW5zZm9ybT0iIixzZXRUaW1lb3V0KCgpPT50aGlzLiQuaGVhZGVyLnN0eWxlLnRyYW5zZm9ybT1sKX19X2Zyb3plbkNlbGxzQ2hhbmdlZCgpe3RoaXMuX2RlYm91bmNlckNhY2hlRWxlbWVudHM9c3IuZGVib3VuY2UodGhpcy5fZGVib3VuY2VyQ2FjaGVFbGVtZW50cyxsaSwoKT0+e0FycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ1twYXJ0fj0iY2VsbCJdJykpLmZvckVhY2goZnVuY3Rpb24ocil7ci5zdHlsZS50cmFuc2Zvcm09IiJ9KSx0aGlzLl9mcm96ZW5DZWxscz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLiQudGFibGUucXVlcnlTZWxlY3RvckFsbCgiW2Zyb3plbl0iKSksdGhpcy5fdXBkYXRlU2Nyb2xsZXJNZWFzdXJlbWVudHMoKSx0aGlzLl90cmFuc2xhdGVTdGF0aW9uYXJ5RWxlbWVudHMoKX0pLHRoaXMuX3VwZGF0ZUxhc3RGcm96ZW4oKX1fdXBkYXRlU2Nyb2xsZXJNZWFzdXJlbWVudHMoKXt0aGlzLl9mcm96ZW5DZWxscy5sZW5ndGg+MCYmdGhpcy5fX2lzUlRMJiYodGhpcy5fX3Njcm9sbGVyTWV0cmljcz17c2Nyb2xsV2lkdGg6dGhpcy4kLnRhYmxlLnNjcm9sbFdpZHRoLGNsaWVudFdpZHRoOnRoaXMuJC50YWJsZS5jbGllbnRXaWR0aH0pfV91cGRhdGVMYXN0RnJvemVuKCl7aWYoIXRoaXMuX2NvbHVtblRyZWUpcmV0dXJuO2xldCByPXRoaXMuX2NvbHVtblRyZWVbdGhpcy5fY29sdW1uVHJlZS5sZW5ndGgtMV0uc2xpY2UoMCk7ci5zb3J0KChpLG8pPT5pLl9vcmRlci1vLl9vcmRlcik7bGV0IG49ci5yZWR1Y2UoKGksbyxhKT0+KG8uX2xhc3RGcm96ZW49ITEsby5mcm96ZW4mJiFvLmhpZGRlbj9hOmkpLHZvaWQgMCk7biE9PXZvaWQgMCYmKHJbbl0uX2xhc3RGcm96ZW49ITApfV90cmFuc2xhdGVTdGF0aW9uYXJ5RWxlbWVudHMoKXtsZXQgcj1NYXRoLm1heCgwLHRoaXMuX3Njcm9sbExlZnQpLG49TWF0aC5tYXgoMCx0aGlzLl9zY3JvbGxUb3ApLGk9MCxvPTAsYT0wO2lmKHRoaXMuX3VzZVN0aWNreXx8KGk9cixvPW4sYT10aGlzLiQudGFibGUuY2xpZW50SGVpZ2h0LXRoaXMuJC5mb290ZXIub2Zmc2V0SGVpZ2h0LXRoaXMuJC5mb290ZXIub2Zmc2V0VG9wKSx0aGlzLiQuaGVhZGVyLnN0eWxlLnRyYW5zZm9ybT10aGlzLl9nZXRUcmFuc2xhdGUoLXIraSxvKSx0aGlzLiQuZm9vdGVyLnN0eWxlLnRyYW5zZm9ybT10aGlzLl9nZXRUcmFuc2xhdGUoLXIraSxvK2EpLHRoaXMuJC5pdGVtcy5zdHlsZS50cmFuc2Zvcm09dGhpcy5fZ2V0VHJhbnNsYXRlKC1yK2ksMCksdGhpcy5fZnJvemVuQ2VsbHMubGVuZ3RoPjApe2xldCBzPXRoaXMuX19pc1JUTD90aGlzLl9fZ2V0Tm9ybWFsaXplZFNjcm9sbExlZnQodGhpcy4kLnRhYmxlKSt0aGlzLl9fc2Nyb2xsZXJNZXRyaWNzLmNsaWVudFdpZHRoLXRoaXMuX19zY3JvbGxlck1ldHJpY3Muc2Nyb2xsV2lkdGg6dGhpcy5fc2Nyb2xsTGVmdCxsPXRoaXMuX2dldFRyYW5zbGF0ZShzLDApO2ZvcihsZXQgYz0wO2M8dGhpcy5fZnJvemVuQ2VsbHMubGVuZ3RoO2MrKyl0aGlzLl9mcm96ZW5DZWxsc1tjXS5zdHlsZS50cmFuc2Zvcm09bH19X2dldFRyYW5zbGF0ZShyLG4pe3JldHVybmB0cmFuc2xhdGUoJHtyfXB4LCAke259cHgpYH19O3ZhciBvdWU9ZT0+Y2xhc3MgZXh0ZW5kcyBle3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntzZWxlY3RlZEl0ZW1zOnt0eXBlOk9iamVjdCxub3RpZnk6ITAsdmFsdWU6KCk9PltdfX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9zZWxlY3RlZEl0ZW1zQ2hhbmdlZChzZWxlY3RlZEl0ZW1zLiopIl19X2lzU2VsZWN0ZWQocil7cmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcyYmdGhpcy5fZ2V0SXRlbUluZGV4SW5BcnJheShyLHRoaXMuc2VsZWN0ZWRJdGVtcyk+LTF9c2VsZWN0SXRlbShyKXt0aGlzLl9pc1NlbGVjdGVkKHIpfHwodGhpcy5zZWxlY3RlZEl0ZW1zPVsuLi50aGlzLnNlbGVjdGVkSXRlbXMscl0pfWRlc2VsZWN0SXRlbShyKXt0aGlzLl9pc1NlbGVjdGVkKHIpJiYodGhpcy5zZWxlY3RlZEl0ZW1zPXRoaXMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIobj0+IXRoaXMuX2l0ZW1zRXF1YWwobixyKSkpfV90b2dnbGVJdGVtKHIpe3RoaXMuX2dldEl0ZW1JbmRleEluQXJyYXkocix0aGlzLnNlbGVjdGVkSXRlbXMpPT09LTE/dGhpcy5zZWxlY3RJdGVtKHIpOnRoaXMuZGVzZWxlY3RJdGVtKHIpfV9zZWxlY3RlZEl0ZW1zQ2hhbmdlZChyKXt0aGlzLiQuaXRlbXMuY2hpbGRyZW4ubGVuZ3RoJiYoci5wYXRoPT09InNlbGVjdGVkSXRlbXMifHxyLnBhdGg9PT0ic2VsZWN0ZWRJdGVtcy5zcGxpY2VzIikmJkFycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5mb3JFYWNoKG49Pnt0aGlzLl91cGRhdGVJdGVtKG4sbi5faXRlbSl9KX1fc2VsZWN0ZWRJbnN0YW5jZUNoYW5nZWRDYWxsYmFjayhyLG4pe24/dGhpcy5zZWxlY3RJdGVtKHIuaXRlbSk6dGhpcy5kZXNlbGVjdEl0ZW0oci5pdGVtKX19O3ZhciBhdWU9ZT0+Y2xhc3MgZXh0ZW5kcyBle3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybnttdWx0aVNvcnQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX3NvcnRlcnM6e3R5cGU6QXJyYXksdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bXX19LF9wcmV2aW91c1NvcnRlcnM6e3R5cGU6QXJyYXksdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bXX19fX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJzb3J0ZXItY2hhbmdlZCIsdGhpcy5fb25Tb3J0ZXJDaGFuZ2VkKX1fb25Tb3J0ZXJDaGFuZ2VkKHIpe2xldCBuPXIudGFyZ2V0O3Iuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fX3VwZGF0ZVNvcnRlcihuKSx0aGlzLl9fYXBwbHlTb3J0ZXJzKCl9X19yZW1vdmVTb3J0ZXJzKHIpe3IubGVuZ3RoIT0wJiYodGhpcy5fc29ydGVycz10aGlzLl9zb3J0ZXJzLmZpbHRlcihuPT5yLmluZGV4T2Yobik8MCksdGhpcy5tdWx0aVNvcnQmJnRoaXMuX191cGRhdGVTb3J0T3JkZXJzKCksdGhpcy5fX2FwcGx5U29ydGVycygpKX1fX3VwZGF0ZVNvcnRPcmRlcnMoKXt0aGlzLl9zb3J0ZXJzLmZvckVhY2goKHIsbik9PnIuX29yZGVyPXRoaXMuX3NvcnRlcnMubGVuZ3RoPjE/bjpudWxsLHRoaXMpfV9fdXBkYXRlU29ydGVyKHIpe2lmKCEoIXIuZGlyZWN0aW9uJiZ0aGlzLl9zb3J0ZXJzLmluZGV4T2Yocik9PT0tMSkpe2lmKHIuX29yZGVyPW51bGwsdGhpcy5tdWx0aVNvcnQpdGhpcy5fcmVtb3ZlQXJyYXlJdGVtKHRoaXMuX3NvcnRlcnMsciksci5kaXJlY3Rpb24mJnRoaXMuX3NvcnRlcnMudW5zaGlmdChyKSx0aGlzLl9fdXBkYXRlU29ydE9yZGVycygpO2Vsc2UgaWYoci5kaXJlY3Rpb24pe2xldCBuPXRoaXMuX3NvcnRlcnMuZmlsdGVyKGk9PmkhPXIpO3RoaXMuX3NvcnRlcnM9W3JdLG4uZm9yRWFjaChpPT57aS5fb3JkZXI9bnVsbCxpLmRpcmVjdGlvbj1udWxsfSl9fX1fX2FwcGx5U29ydGVycygpe3RoaXMuZGF0YVByb3ZpZGVyJiZ0aGlzLmlzQXR0YWNoZWQmJkpTT04uc3RyaW5naWZ5KHRoaXMuX3ByZXZpb3VzU29ydGVycykhPT1KU09OLnN0cmluZ2lmeSh0aGlzLl9tYXBTb3J0ZXJzKCkpJiZ0aGlzLmNsZWFyQ2FjaGUoKSx0aGlzLl9hMTF5VXBkYXRlU29ydGVycygpLHRoaXMuX3ByZXZpb3VzU29ydGVycz10aGlzLl9tYXBTb3J0ZXJzKCl9X21hcFNvcnRlcnMoKXtyZXR1cm4gdGhpcy5fc29ydGVycy5tYXAocj0+KHtwYXRoOnIucGF0aCxkaXJlY3Rpb246ci5kaXJlY3Rpb259KSl9X3JlbW92ZUFycmF5SXRlbShyLG4pe2xldCBpPXIuaW5kZXhPZihuKTtpPi0xJiZyLnNwbGljZShpLDEpfX07dmFyIHN1ZT1lPT5jbGFzcyBleHRlbmRzIGV7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2NlbGxDbGFzc05hbWVHZW5lcmF0b3I6RnVuY3Rpb259fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfX2NlbGxDbGFzc05hbWVHZW5lcmF0b3JDaGFuZ2VkKGNlbGxDbGFzc05hbWVHZW5lcmF0b3IpIl19X19jZWxsQ2xhc3NOYW1lR2VuZXJhdG9yQ2hhbmdlZCgpe3RoaXMuZ2VuZXJhdGVDZWxsQ2xhc3NOYW1lcygpfWdlbmVyYXRlQ2VsbENsYXNzTmFtZXMoKXtBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZmlsdGVyKHI9PiFyLmhpZGRlbikuZm9yRWFjaChyPT50aGlzLl9nZW5lcmF0ZUNlbGxDbGFzc05hbWVzKHIsdGhpcy5fX2dldFJvd01vZGVsKHIpKSl9X2dlbmVyYXRlQ2VsbENsYXNzTmFtZXMocixuKXtBcnJheS5mcm9tKHIuY2hpbGRyZW4pLmZvckVhY2goaT0+e2lmKGkuX19nZW5lcmF0ZWRDbGFzc2VzJiZpLl9fZ2VuZXJhdGVkQ2xhc3Nlcy5mb3JFYWNoKG89PmkuY2xhc3NMaXN0LnJlbW92ZShvKSksdGhpcy5jZWxsQ2xhc3NOYW1lR2VuZXJhdG9yKXtsZXQgbz10aGlzLmNlbGxDbGFzc05hbWVHZW5lcmF0b3IoaS5fY29sdW1uLG4pO2kuX19nZW5lcmF0ZWRDbGFzc2VzPW8mJm8uc3BsaXQoIiAiKS5maWx0ZXIoYT0+YS5sZW5ndGg+MCksaS5fX2dlbmVyYXRlZENsYXNzZXMmJmkuX19nZW5lcmF0ZWRDbGFzc2VzLmZvckVhY2goYT0+aS5jbGFzc0xpc3QuYWRkKGEpKX19KX19O3ZhciBUUD17QkVUV0VFTjoiYmV0d2VlbiIsT05fVE9QOiJvbi10b3AiLE9OX1RPUF9PUl9CRVRXRUVOOiJvbi10b3Atb3ItYmV0d2VlbiIsT05fR1JJRDoib24tZ3JpZCJ9LEEwPXtPTl9UT1A6Im9uLXRvcCIsQUJPVkU6ImFib3ZlIixCRUxPVzoiYmVsb3ciLEVNUFRZOiJlbXB0eSJ9LGx1ZT1lPT5jbGFzcyBleHRlbmRzIGV7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2Ryb3BNb2RlOlN0cmluZyxyb3dzRHJhZ2dhYmxlOkJvb2xlYW4sZHJhZ0ZpbHRlcjpGdW5jdGlvbixkcm9wRmlsdGVyOkZ1bmN0aW9uLF9fZG5kQXV0b1Njcm9sbFRocmVzaG9sZDp7dmFsdWU6NTB9fX1zdGF0aWMgZ2V0IG9ic2VydmVycygpe3JldHVyblsiX2RyYWdEcm9wQWNjZXNzQ2hhbmdlZChyb3dzRHJhZ2dhYmxlLCBkcm9wTW9kZSwgZHJhZ0ZpbHRlciwgZHJvcEZpbHRlcikiXX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsdGhpcy5fb25EcmFnU3RhcnQuYmluZCh0aGlzKSksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMuX29uRHJhZ0VuZC5iaW5kKHRoaXMpKSx0aGlzLiQudGFibGUuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHRoaXMuX29uRHJhZ092ZXIuYmluZCh0aGlzKSksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsdGhpcy5fb25EcmFnTGVhdmUuYmluZCh0aGlzKSksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLHRoaXMuX29uRHJvcC5iaW5kKHRoaXMpKSx0aGlzLiQudGFibGUuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIixyPT57dGhpcy5kcm9wTW9kZSYmKHIucHJldmVudERlZmF1bHQoKSxyLnN0b3BQcm9wYWdhdGlvbigpKX0pfV9vbkRyYWdTdGFydChyKXtpZih0aGlzLnJvd3NEcmFnZ2FibGUpe2xldCBuPXIudGFyZ2V0O2lmKG4ubG9jYWxOYW1lPT09InZhYWRpbi1ncmlkLWNlbGwtY29udGVudCImJihuPW4uYXNzaWduZWRTbG90LnBhcmVudE5vZGUucGFyZW50Tm9kZSksbi5wYXJlbnROb2RlIT09dGhpcy4kLml0ZW1zKXJldHVybjtpZihyLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgiZHJhZ2dpbmctcm93cyIsITAsdGhpcyksdGhpcy5fc2FmYXJpKXtsZXQgcz1uLnN0eWxlLnRyYW5zZm9ybTtuLnN0eWxlLnRvcD0vdHJhbnNsYXRlWVwoKC4qKVwpLy5leGVjKHMpWzFdLG4uc3R5bGUudHJhbnNmb3JtPSJub25lIixyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntuLnN0eWxlLnRvcD0iIixuLnN0eWxlLnRyYW5zZm9ybT1zfSl9bGV0IGk9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLl9pb3M/ci5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKG4pOnIuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShuLHIuY2xpZW50WC1pLmxlZnQsci5jbGllbnRZLWkudG9wKTtsZXQgbz1bbl07dGhpcy5faXNTZWxlY3RlZChuLl9pdGVtKSYmKG89dGhpcy5fX2dldFZpZXdwb3J0Um93cygpLmZpbHRlcihzPT50aGlzLl9pc1NlbGVjdGVkKHMuX2l0ZW0pKS5maWx0ZXIocz0+IXRoaXMuZHJhZ0ZpbHRlcnx8dGhpcy5kcmFnRmlsdGVyKHRoaXMuX19nZXRSb3dNb2RlbChzKSkpKSxyLmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0Iix0aGlzLl9fZm9ybWF0RGVmYXVsdFRyYW5zZmVyRGF0YShvKSksbi5zZXRBdHRyaWJ1dGUoImRyYWdzdGFydCIsby5sZW5ndGg+MT9vLmxlbmd0aDoiIiksdGhpcy51cGRhdGVTdHlsZXMoeyItLV9ncmlkLWRyYWctc3RhcnQteCI6YCR7ci5jbGllbnRYLWkubGVmdCsyMH1weGAsIi0tX2dyaWQtZHJhZy1zdGFydC15IjpgJHtyLmNsaWVudFktaS50b3ArMTB9cHhgfSkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57bi5yZW1vdmVBdHRyaWJ1dGUoImRyYWdzdGFydCIpLHRoaXMudXBkYXRlU3R5bGVzKHsiLS1fZ3JpZC1kcmFnLXN0YXJ0LXgiOiIiLCItLV9ncmlkLWRyYWctc3RhcnQteSI6IiJ9KX0pO2xldCBhPW5ldyBDdXN0b21FdmVudCgiZ3JpZC1kcmFnc3RhcnQiLHtkZXRhaWw6e2RyYWdnZWRJdGVtczpvLm1hcChzPT5zLl9pdGVtKSxzZXREcmFnRGF0YToocyxsKT0+ci5kYXRhVHJhbnNmZXIuc2V0RGF0YShzLGwpLHNldERyYWdnZWRJdGVtc0NvdW50OnM9Pm4uc2V0QXR0cmlidXRlKCJkcmFnc3RhcnQiLHMpfX0pO2Eub3JpZ2luYWxFdmVudD1yLHRoaXMuZGlzcGF0Y2hFdmVudChhKX19X29uRHJhZ0VuZChyKXt0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImRyYWdnaW5nLXJvd3MiLCExLHRoaXMpLHIuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IG49bmV3IEN1c3RvbUV2ZW50KCJncmlkLWRyYWdlbmQiKTtuLm9yaWdpbmFsRXZlbnQ9cix0aGlzLmRpc3BhdGNoRXZlbnQobil9X29uRHJhZ0xlYXZlKHIpe3Iuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fY2xlYXJEcmFnU3R5bGVzKCl9X29uRHJhZ092ZXIocil7aWYodGhpcy5kcm9wTW9kZSl7aWYodGhpcy5fZHJvcExvY2F0aW9uPXZvaWQgMCx0aGlzLl9kcmFnT3Zlckl0ZW09dm9pZCAwLHRoaXMuX19kbmRBdXRvU2Nyb2xsKHIuY2xpZW50WSkpe3RoaXMuX2NsZWFyRHJhZ1N0eWxlcygpO3JldHVybn1sZXQgbj1yLmNvbXBvc2VkUGF0aCgpLmZpbHRlcihpPT5pLmxvY2FsTmFtZT09PSJ0ciIpWzBdO2lmKCF0aGlzLl9lZmZlY3RpdmVTaXplfHx0aGlzLmRyb3BNb2RlPT09VFAuT05fR1JJRCl0aGlzLl9kcm9wTG9jYXRpb249QTAuRU1QVFk7ZWxzZSBpZighbnx8bi5wYXJlbnROb2RlIT09dGhpcy4kLml0ZW1zKXtpZihuKXJldHVybjtpZih0aGlzLmRyb3BNb2RlPT09VFAuQkVUV0VFTnx8dGhpcy5kcm9wTW9kZT09PVRQLk9OX1RPUF9PUl9CRVRXRUVOKW49QXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcihpPT4haS5oaWRkZW4pLnBvcCgpLHRoaXMuX2Ryb3BMb2NhdGlvbj1BMC5CRUxPVztlbHNlIHJldHVybn1lbHNle2xldCBpPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYodGhpcy5fZHJvcExvY2F0aW9uPUEwLk9OX1RPUCx0aGlzLmRyb3BNb2RlPT09VFAuQkVUV0VFTil7bGV0IG89ci5jbGllbnRZLWkudG9wPGkuYm90dG9tLXIuY2xpZW50WTt0aGlzLl9kcm9wTG9jYXRpb249bz9BMC5BQk9WRTpBMC5CRUxPV31lbHNlIHRoaXMuZHJvcE1vZGU9PT1UUC5PTl9UT1BfT1JfQkVUV0VFTiYmKHIuY2xpZW50WS1pLnRvcDxpLmhlaWdodC8zP3RoaXMuX2Ryb3BMb2NhdGlvbj1BMC5BQk9WRTpyLmNsaWVudFktaS50b3A+aS5oZWlnaHQvMyoyJiYodGhpcy5fZHJvcExvY2F0aW9uPUEwLkJFTE9XKSl9aWYobiYmbi5oYXNBdHRyaWJ1dGUoImRyb3AtZGlzYWJsZWQiKSl7dGhpcy5fZHJvcExvY2F0aW9uPXZvaWQgMDtyZXR1cm59ci5zdG9wUHJvcGFnYXRpb24oKSxyLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZHJvcExvY2F0aW9uPT09QTAuRU1QVFk/dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJkcmFnb3ZlciIsITAsdGhpcyk6bj8odGhpcy5fZHJhZ092ZXJJdGVtPW4uX2l0ZW0sbi5nZXRBdHRyaWJ1dGUoImRyYWdvdmVyIikhPT10aGlzLl9kcm9wTG9jYXRpb24mJm4uc2V0QXR0cmlidXRlKCJkcmFnb3ZlciIsdGhpcy5fZHJvcExvY2F0aW9uKSk6dGhpcy5fY2xlYXJEcmFnU3R5bGVzKCl9fV9fZG5kQXV0b1Njcm9sbChyKXtpZih0aGlzLl9fZG5kQXV0b1Njcm9sbGluZylyZXR1cm4hMDtsZXQgbj10aGlzLiQuaGVhZGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSxpPXRoaXMuJC5mb290ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLG89bi1yK3RoaXMuX19kbmRBdXRvU2Nyb2xsVGhyZXNob2xkLGE9ci1pK3RoaXMuX19kbmRBdXRvU2Nyb2xsVGhyZXNob2xkLHM9MDtpZihhPjA/cz1hKjI6bz4wJiYocz0tbyoyKSxzKXtsZXQgbD10aGlzLiQudGFibGUuc2Nyb2xsVG9wO2lmKHRoaXMuJC50YWJsZS5zY3JvbGxUb3ArPXMsbCE9PXRoaXMuJC50YWJsZS5zY3JvbGxUb3ApcmV0dXJuIHRoaXMuX19kbmRBdXRvU2Nyb2xsaW5nPSEwLHNldFRpbWVvdXQoKCk9PnRoaXMuX19kbmRBdXRvU2Nyb2xsaW5nPSExLDIwKSx0aGlzLl9zY3JvbGxIYW5kbGVyKCksITB9fV9fZ2V0Vmlld3BvcnRSb3dzKCl7bGV0IHI9dGhpcy4kLmhlYWRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20sbj10aGlzLiQuZm9vdGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcihpPT57bGV0IG89aS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gby5ib3R0b20+ciYmby50b3A8bn0pfV9jbGVhckRyYWdTdHlsZXMoKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSgiZHJhZ292ZXIiKSxBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZm9yRWFjaChyPT5yLnJlbW92ZUF0dHJpYnV0ZSgiZHJhZ292ZXIiKSl9X29uRHJvcChyKXtpZih0aGlzLmRyb3BNb2RlKXtyLnN0b3BQcm9wYWdhdGlvbigpLHIucHJldmVudERlZmF1bHQoKTtsZXQgbj1yLmRhdGFUcmFuc2Zlci50eXBlcyYmQXJyYXkuZnJvbShyLmRhdGFUcmFuc2Zlci50eXBlcykubWFwKG89Pih7dHlwZTpvLGRhdGE6ci5kYXRhVHJhbnNmZXIuZ2V0RGF0YShvKX0pKTt0aGlzLl9jbGVhckRyYWdTdHlsZXMoKTtsZXQgaT1uZXcgQ3VzdG9tRXZlbnQoImdyaWQtZHJvcCIse2J1YmJsZXM6ci5idWJibGVzLGNhbmNlbGFibGU6ci5jYW5jZWxhYmxlLGRldGFpbDp7ZHJvcFRhcmdldEl0ZW06dGhpcy5fZHJhZ092ZXJJdGVtLGRyb3BMb2NhdGlvbjp0aGlzLl9kcm9wTG9jYXRpb24sZHJhZ0RhdGE6bn19KTtpLm9yaWdpbmFsRXZlbnQ9cix0aGlzLmRpc3BhdGNoRXZlbnQoaSl9fV9fZm9ybWF0RGVmYXVsdFRyYW5zZmVyRGF0YShyKXtyZXR1cm4gci5tYXAobj0+QXJyYXkuZnJvbShuLmNoaWxkcmVuKS5maWx0ZXIoaT0+IWkuaGlkZGVuJiZpLmdldEF0dHJpYnV0ZSgicGFydCIpLmluZGV4T2YoImRldGFpbHMtY2VsbCIpPT09LTEpLnNvcnQoKGksbyk9PmkuX2NvbHVtbi5fb3JkZXI+by5fY29sdW1uLl9vcmRlcj8xOi0xKS5tYXAoaT0+aS5fY29udGVudC50ZXh0Q29udGVudC50cmltKCkpLmZpbHRlcihpPT5pKS5qb2luKCIJIikpLmpvaW4oYApgKX1fZHJhZ0Ryb3BBY2Nlc3NDaGFuZ2VkKCl7dGhpcy5maWx0ZXJEcmFnQW5kRHJvcCgpfWZpbHRlckRyYWdBbmREcm9wKCl7QXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcihyPT4hci5oaWRkZW4pLmZvckVhY2gocj0+e3RoaXMuX2ZpbHRlckRyYWdBbmREcm9wKHIsdGhpcy5fX2dldFJvd01vZGVsKHIpKX0pfV9maWx0ZXJEcmFnQW5kRHJvcChyLG4pe2xldCBpPSF0aGlzLnJvd3NEcmFnZ2FibGV8fHRoaXMuZHJhZ0ZpbHRlciYmIXRoaXMuZHJhZ0ZpbHRlcihuKSxvPSF0aGlzLmRyb3BNb2RlfHx0aGlzLmRyb3BGaWx0ZXImJiF0aGlzLmRyb3BGaWx0ZXIobik7QXJyYXkuZnJvbShyLmNoaWxkcmVuKS5tYXAocz0+cy5fY29udGVudCkuZm9yRWFjaChzPT57aT9zLnJlbW92ZUF0dHJpYnV0ZSgiZHJhZ2dhYmxlIik6cy5zZXRBdHRyaWJ1dGUoImRyYWdnYWJsZSIsITApfSksdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJkcmFnLWRpc2FibGVkIixpLHIpLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgiZHJvcC1kaXNhYmxlZCIsbyxyKX19O3ZhciBjdWU9ZT0+Y2xhc3MgZXh0ZW5kcyBle3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntfaGVhZGVyRm9jdXNhYmxlOnt0eXBlOk9iamVjdCxvYnNlcnZlcjoiX2ZvY3VzYWJsZUNoYW5nZWQifSxfaXRlbXNGb2N1c2FibGU6e3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfZm9jdXNhYmxlQ2hhbmdlZCJ9LF9mb290ZXJGb2N1c2FibGU6e3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfZm9jdXNhYmxlQ2hhbmdlZCJ9LF9uYXZpZ2F0aW5nSXNIaWRkZW46Qm9vbGVhbixfZm9jdXNlZEl0ZW1JbmRleDp7dHlwZTpOdW1iZXIsdmFsdWU6MH0sX2ZvY3VzZWRDb2x1bW5PcmRlcjpOdW1iZXIsaW50ZXJhY3Rpbmc6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAscmVhZE9ubHk6ITAsb2JzZXJ2ZXI6Il9pbnRlcmFjdGluZ0NoYW5nZWQifX19cmVhZHkoKXtzdXBlci5yZWFkeSgpLCEodGhpcy5faW9zfHx0aGlzLl9hbmRyb2lkKSYmKHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fb25LZXlEb3duKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLl9vbktleVVwKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLHRoaXMuX29uRm9jdXNJbiksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsdGhpcy5fb25Gb2N1c091dCksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLHRoaXMuX29uQ2VsbEZvY3VzSW4uYmluZCh0aGlzKSksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0Iix0aGlzLl9vbkNlbGxGb2N1c091dC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsKCk9Pnt0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5hdmlnYXRpbmciLCExLHRoaXMpLHRoaXMuX2lzTW91c2Vkb3duPSEwfSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwoKT0+dGhpcy5faXNNb3VzZWRvd249ITEpKX1fZm9jdXNhYmxlQ2hhbmdlZChyLG4pe24mJm4uc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksciYmdGhpcy5fdXBkYXRlR3JpZFNlY3Rpb25Gb2N1c1RhcmdldChyKX1faW50ZXJhY3RpbmdDaGFuZ2VkKCl7dGhpcy5fdXBkYXRlR3JpZFNlY3Rpb25Gb2N1c1RhcmdldCh0aGlzLl9oZWFkZXJGb2N1c2FibGUpLHRoaXMuX3VwZGF0ZUdyaWRTZWN0aW9uRm9jdXNUYXJnZXQodGhpcy5faXRlbXNGb2N1c2FibGUpLHRoaXMuX3VwZGF0ZUdyaWRTZWN0aW9uRm9jdXNUYXJnZXQodGhpcy5fZm9vdGVyRm9jdXNhYmxlKX1fb25LZXlEb3duKHIpe2xldCBuPXIua2V5LGk7c3dpdGNoKG4pe2Nhc2UiQXJyb3dVcCI6Y2FzZSJBcnJvd0Rvd24iOmNhc2UiQXJyb3dMZWZ0IjpjYXNlIkFycm93UmlnaHQiOmNhc2UiUGFnZVVwIjpjYXNlIlBhZ2VEb3duIjpjYXNlIkhvbWUiOmNhc2UiRW5kIjppPSJOYXZpZ2F0aW9uIjticmVhaztjYXNlIkVudGVyIjpjYXNlIkVzY2FwZSI6Y2FzZSJGMiI6aT0iSW50ZXJhY3Rpb24iO2JyZWFrO2Nhc2UiVGFiIjppPSJUYWIiO2JyZWFrO2Nhc2UiICI6aT0iU3BhY2UiO2JyZWFrfXRoaXMuX2RldGVjdEludGVyYWN0aW5nKHIpLHRoaXMuaW50ZXJhY3RpbmcmJmkhPT0iSW50ZXJhY3Rpb24iJiYoaT12b2lkIDApLGkmJnRoaXNbYF9vbiR7aX1LZXlEb3duYF0ocixuKX1fZW5zdXJlU2Nyb2xsZWRUb0luZGV4KHIpe0FycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5maWx0ZXIoaT0+aS5pbmRleD09PXIpWzBdfHx0aGlzLl9zY3JvbGxUb0luZGV4KHIpfV9vbk5hdmlnYXRpb25LZXlEb3duKHIsbil7dGhpcy5fc2Nyb2xsSGFuZGxlcigpLHIucHJldmVudERlZmF1bHQoKTtmdW5jdGlvbiBpKEIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKEIucGFyZW50Tm9kZS5jaGlsZHJlbixCKX1sZXQgbz10aGlzLl9sYXN0VmlzaWJsZUluZGV4LXRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4LTEsYT0wLHM9MDtzd2l0Y2gobil7Y2FzZSJBcnJvd1JpZ2h0IjphPXRoaXMuX19pc1JUTD8tMToxO2JyZWFrO2Nhc2UiQXJyb3dMZWZ0IjphPXRoaXMuX19pc1JUTD8xOi0xO2JyZWFrO2Nhc2UiSG9tZSI6YT0tMS8wLHIuY3RybEtleSYmKHM9LTEvMCk7YnJlYWs7Y2FzZSJFbmQiOmE9MS8wLHIuY3RybEtleSYmKHM9MS8wKTticmVhaztjYXNlIkFycm93RG93biI6cz0xO2JyZWFrO2Nhc2UiQXJyb3dVcCI6cz0tMTticmVhaztjYXNlIlBhZ2VEb3duIjpzPW87YnJlYWs7Y2FzZSJQYWdlVXAiOnM9LW87YnJlYWt9bGV0IGw9ci5jb21wb3NlZFBhdGgoKVswXSxjPWkobCksdT10aGlzLl9lbGVtZW50TWF0Y2hlcyhsLCdbcGFydH49ImRldGFpbHMtY2VsbCJdJyksaD1sLnBhcmVudE5vZGUsZj1oLnBhcmVudE5vZGUscD0oZj09PXRoaXMuJC5pdGVtcz90aGlzLl9lZmZlY3RpdmVTaXplOmYuY2hpbGRyZW4ubGVuZ3RoKS0xLGQ9Zj09PXRoaXMuJC5pdGVtcz90aGlzLl9mb2N1c2VkSXRlbUluZGV4IT09dm9pZCAwP3RoaXMuX2ZvY3VzZWRJdGVtSW5kZXg6aC5pbmRleDppKGgpLGc9TWF0aC5tYXgoMCxNYXRoLm1pbihkK3MscCkpLF89ITE7aWYoZj09PXRoaXMuJC5pdGVtcyl7bGV0IEI9aC5faXRlbSxJPXRoaXMuX2NhY2hlLmdldEl0ZW1Gb3JJbmRleChnKTt1P189cz09PTA6Xz1zPT09MSYmdGhpcy5faXNEZXRhaWxzT3BlbmVkKEIpfHxzPT09LTEmJmchPT1kJiZ0aGlzLl9pc0RldGFpbHNPcGVuZWQoSSksXyE9PXUmJihzPT09MSYmX3x8cz09PS0xJiYhXykmJihnPWQpfWlmKGYhPT10aGlzLiQuaXRlbXMpe2lmKGc+ZClmb3IoO2c8cCYmZi5jaGlsZHJlbltnXS5oaWRkZW47KWcrKztlbHNlIGlmKGc8ZClmb3IoO2c+MCYmZi5jaGlsZHJlbltnXS5oaWRkZW47KWctLX10aGlzLl9mb2N1c2VkQ29sdW1uT3JkZXI9PT12b2lkIDAmJih1P3RoaXMuX2ZvY3VzZWRDb2x1bW5PcmRlcj0wOnRoaXMuX2ZvY3VzZWRDb2x1bW5PcmRlcj10aGlzLl9nZXRDb2x1bW5zKGYsZCkuZmlsdGVyKEI9PiFCLmhpZGRlbilbY10uX29yZGVyKTtsZXQgeT10aGlzLl9nZXRDb2x1bW5zKGYsZykuZmlsdGVyKEI9PiFCLmhpZGRlbikseD15Lm1hcChCPT5CLl9vcmRlcikuc29ydCgoQixJKT0+Qi1JKSxiPXgubGVuZ3RoLTEsUz14LmluZGV4T2YoeC5zbGljZSgwKS5zb3J0KChCLEkpPT5NYXRoLmFicyhCLXRoaXMuX2ZvY3VzZWRDb2x1bW5PcmRlciktTWF0aC5hYnMoSS10aGlzLl9mb2N1c2VkQ29sdW1uT3JkZXIpKVswXSksQz1zPT09MCYmdT9TOk1hdGgubWF4KDAsTWF0aC5taW4oUythLGIpKTtDIT09UyYmKHRoaXMuX2ZvY3VzZWRDb2x1bW5PcmRlcj12b2lkIDApLGY9PT10aGlzLiQuaXRlbXMmJnRoaXMuX2Vuc3VyZVNjcm9sbGVkVG9JbmRleChnKSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5hdmlnYXRpbmciLCEwLHRoaXMpO2xldCBrPXkucmVkdWNlKChCLEksTCk9PihCW0kuX29yZGVyXT1MLEIpLHt9KVt4W0NdXSxPPWY9PT10aGlzLiQuaXRlbXM/QXJyYXkuZnJvbShmLmNoaWxkcmVuKS5maWx0ZXIoQj0+Qi5pbmRleD09PWcpWzBdOmYuY2hpbGRyZW5bZ107aWYoIU8pcmV0dXJuO2xldCBEPV8/QXJyYXkuZnJvbShPLmNoaWxkcmVuKS5maWx0ZXIoQj0+dGhpcy5fZWxlbWVudE1hdGNoZXMoQiwnW3BhcnR+PSJkZXRhaWxzLWNlbGwiXScpKVswXTpPLmNoaWxkcmVuW2tdO2lmKHRoaXMuX3Njcm9sbEhvcml6b250YWxseVRvQ2VsbChEKSxmPT09dGhpcy4kLml0ZW1zJiYodGhpcy5fZm9jdXNlZEl0ZW1JbmRleD1nKSxmPT09dGhpcy4kLml0ZW1zKXtsZXQgQj1ELmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEk9dGhpcy4kLmZvb3Rlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AsTD10aGlzLiQuaGVhZGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbTtCLmJvdHRvbT5JPyh0aGlzLiQudGFibGUuc2Nyb2xsVG9wKz1CLmJvdHRvbS1JLHRoaXMuX3Njcm9sbEhhbmRsZXIoKSk6Qi50b3A8TCYmKHRoaXMuJC50YWJsZS5zY3JvbGxUb3AtPUwtQi50b3AsdGhpcy5fc2Nyb2xsSGFuZGxlcigpKX1ELmZvY3VzKCl9X29uSW50ZXJhY3Rpb25LZXlEb3duKHIsbil7bGV0IGk9ci5jb21wb3NlZFBhdGgoKVswXSxvPWkubG9jYWxOYW1lPT09ImlucHV0IiYmIS9eKGJ1dHRvbnxjaGVja2JveHxjb2xvcnxmaWxlfGltYWdlfHJhZGlvfHJhbmdlfHJlc2V0fHN1Ym1pdCkkL2kudGVzdChpLnR5cGUpLGE7c3dpdGNoKG4pe2Nhc2UiRW50ZXIiOmE9dGhpcy5pbnRlcmFjdGluZz8hbzohMDticmVhaztjYXNlIkVzY2FwZSI6YT0hMTticmVhaztjYXNlIkYyIjphPSF0aGlzLmludGVyYWN0aW5nO2JyZWFrfWxldHtjZWxsOnN9PXRoaXMuX2dldEdyaWRFdmVudExvY2F0aW9uKHIpO2lmKHRoaXMuaW50ZXJhY3RpbmchPT1hJiZzIT09bnVsbClpZihhKXtsZXQgbD1zLl9jb250ZW50LnF1ZXJ5U2VsZWN0b3IoIltmb2N1cy10YXJnZXRdIil8fHMuX2NvbnRlbnQuZmlyc3RFbGVtZW50Q2hpbGQ7bCYmKHIucHJldmVudERlZmF1bHQoKSxsLmZvY3VzKCksdGhpcy5fc2V0SW50ZXJhY3RpbmcoITApLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibmF2aWdhdGluZyIsITEsdGhpcykpfWVsc2Ugci5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzZWRDb2x1bW5PcmRlcj12b2lkIDAscy5mb2N1cygpLHRoaXMuX3NldEludGVyYWN0aW5nKCExKSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5hdmlnYXRpbmciLCEwLHRoaXMpfV9wcmVkaWN0Rm9jdXNTdGVwVGFyZ2V0KHIsbil7bGV0IGk9W3RoaXMuJC50YWJsZSx0aGlzLl9oZWFkZXJGb2N1c2FibGUsdGhpcy5faXRlbXNGb2N1c2FibGUsdGhpcy5fZm9vdGVyRm9jdXNhYmxlLHRoaXMuJC5mb2N1c2V4aXRdLG89aS5pbmRleE9mKHIpO2ZvcihvKz1uO28+PTAmJm88PWkubGVuZ3RoLTEmJighaVtvXXx8aVtvXS5wYXJlbnROb2RlLmhpZGRlbik7KW8rPW47cmV0dXJuIGlbb119X29uVGFiS2V5RG93bihyKXtsZXQgbj10aGlzLl9wcmVkaWN0Rm9jdXNTdGVwVGFyZ2V0KHIuY29tcG9zZWRQYXRoKClbMF0sci5zaGlmdEtleT8tMToxKTtpZihuPT09dGhpcy4kLnRhYmxlKXRoaXMuJC50YWJsZS5mb2N1cygpO2Vsc2UgaWYobj09PXRoaXMuJC5mb2N1c2V4aXQpdGhpcy4kLmZvY3VzZXhpdC5mb2N1cygpO2Vsc2UgaWYobj09PXRoaXMuX2l0ZW1zRm9jdXNhYmxlKXtsZXQgaT1uLG89dGhpcy5faXRlbXNGb2N1c2FibGUucGFyZW50Tm9kZTtpZih0aGlzLl9lbnN1cmVTY3JvbGxlZFRvSW5kZXgodGhpcy5fZm9jdXNlZEl0ZW1JbmRleCksby5pbmRleCE9PXRoaXMuX2ZvY3VzZWRJdGVtSW5kZXgpe2xldCBhPUFycmF5LmZyb20oby5jaGlsZHJlbikuaW5kZXhPZih0aGlzLl9pdGVtc0ZvY3VzYWJsZSkscz1BcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZmlsdGVyKGw9PmwuaW5kZXg9PT10aGlzLl9mb2N1c2VkSXRlbUluZGV4KVswXTtzJiYoaT1zLmNoaWxkcmVuW2FdKX1yLnByZXZlbnREZWZhdWx0KCksaS5mb2N1cygpfWVsc2Ugci5wcmV2ZW50RGVmYXVsdCgpLG4uZm9jdXMoKTt0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5hdmlnYXRpbmciLCEwLHRoaXMpfV9vblNwYWNlS2V5RG93bihyKXtyLnByZXZlbnREZWZhdWx0KCk7bGV0IG49ci5jb21wb3NlZFBhdGgoKVswXTsoIW4uX2NvbnRlbnR8fCFuLl9jb250ZW50LmZpcnN0RWxlbWVudENoaWxkKSYmdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2VsbC1hY3RpdmF0ZSIse2RldGFpbDp7bW9kZWw6dGhpcy5fX2dldFJvd01vZGVsKG4ucGFyZW50RWxlbWVudCl9fSkpfV9vbktleVVwKHIpe2lmKCEvXiggfFNwYWNlQmFyKSQvLnRlc3Qoci5rZXkpKXJldHVybjtyLnByZXZlbnREZWZhdWx0KCk7bGV0IG49ci5jb21wb3NlZFBhdGgoKVswXTtpZihuLl9jb250ZW50JiZuLl9jb250ZW50LmZpcnN0RWxlbWVudENoaWxkKXtsZXQgaT10aGlzLmhhc0F0dHJpYnV0ZSgibmF2aWdhdGluZyIpO24uX2NvbnRlbnQuZmlyc3RFbGVtZW50Q2hpbGQuY2xpY2soKSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5hdmlnYXRpbmciLGksdGhpcyl9fV9vbkZvY3VzSW4ocil7dGhpcy5faXNNb3VzZWRvd258fHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibmF2aWdhdGluZyIsITAsdGhpcyk7bGV0IG49ci5jb21wb3NlZFBhdGgoKVswXTtuPT09dGhpcy4kLnRhYmxlfHxuPT09dGhpcy4kLmZvY3VzZXhpdD8odGhpcy5fcHJlZGljdEZvY3VzU3RlcFRhcmdldChuLG49PT10aGlzLiQudGFibGU/MTotMSkuZm9jdXMoKSx0aGlzLl9zZXRJbnRlcmFjdGluZyghMSkpOnRoaXMuX2RldGVjdEludGVyYWN0aW5nKHIpfV9vbkZvY3VzT3V0KHIpe3RoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibmF2aWdhdGluZyIsITEsdGhpcyksdGhpcy5fZGV0ZWN0SW50ZXJhY3Rpbmcocil9X29uQ2VsbEZvY3VzSW4ocil7bGV0e3NlY3Rpb246bixjZWxsOml9PXRoaXMuX2dldEdyaWRFdmVudExvY2F0aW9uKHIpO3RoaXMuX2RldGVjdEludGVyYWN0aW5nKHIpLG4mJmkmJih0aGlzLl9hY3RpdmVSb3dHcm91cD1uLHRoaXMuJC5oZWFkZXI9PT1uP3RoaXMuX2hlYWRlckZvY3VzYWJsZT1pOnRoaXMuJC5pdGVtcz09PW4/dGhpcy5faXRlbXNGb2N1c2FibGU9aTp0aGlzLiQuZm9vdGVyPT09biYmKHRoaXMuX2Zvb3RlckZvY3VzYWJsZT1pKSxpLl9jb250ZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjZWxsLWZvY3VzaW4iLHtidWJibGVzOiExfSkpLGkuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNlbGwtZm9jdXMiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKSx0aGlzLl9kZXRlY3RGb2N1c2VkSXRlbUluZGV4KHIpfV9vbkNlbGxGb2N1c091dChyKXtyLmNvbXBvc2VkUGF0aCgpLmluZGV4T2YodGhpcy4kLnRhYmxlKT09PTMmJnIuY29tcG9zZWRQYXRoKClbMF0uX2NvbnRlbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNlbGwtZm9jdXNvdXQiLHtidWJibGVzOiExfSkpfV9kZXRlY3RJbnRlcmFjdGluZyhyKXtsZXQgbj1yLmNvbXBvc2VkUGF0aCgpLnNvbWUoaT0+aS5sb2NhbE5hbWU9PT0idmFhZGluLWdyaWQtY2VsbC1jb250ZW50Iik7dGhpcy5fc2V0SW50ZXJhY3Rpbmcobil9X2RldGVjdEZvY3VzZWRJdGVtSW5kZXgocil7bGV0e3NlY3Rpb246bixyb3c6aX09dGhpcy5fZ2V0R3JpZEV2ZW50TG9jYXRpb24ocik7bj09PXRoaXMuJC5pdGVtcyYmKHRoaXMuX2ZvY3VzZWRJdGVtSW5kZXg9aS5pbmRleCl9X3VwZGF0ZUdyaWRTZWN0aW9uRm9jdXNUYXJnZXQocil7aWYoIXIpcmV0dXJuO2xldCBuPXRoaXMuX2dldEdyaWRTZWN0aW9uRnJvbUZvY3VzVGFyZ2V0KHIpLGk9dGhpcy5pbnRlcmFjdGluZyYmbj09PXRoaXMuX2FjdGl2ZVJvd0dyb3VwO3IudGFiSW5kZXg9aT8tMTowfV9wcmV2ZW50U2Nyb2xsZXJSb3RhdGluZ0NlbGxGb2N1cyhyLG4pe3IuaW5kZXg9PT10aGlzLl9mb2N1c2VkSXRlbUluZGV4JiZ0aGlzLmhhc0F0dHJpYnV0ZSgibmF2aWdhdGluZyIpJiZ0aGlzLl9hY3RpdmVSb3dHcm91cD09PXRoaXMuJC5pdGVtcyYmKHRoaXMuX25hdmlnYXRpbmdJc0hpZGRlbj0hMCx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5hdmlnYXRpbmciLCExLHRoaXMpKSxuPT09dGhpcy5fZm9jdXNlZEl0ZW1JbmRleCYmdGhpcy5fbmF2aWdhdGluZ0lzSGlkZGVuJiYodGhpcy5fbmF2aWdhdGluZ0lzSGlkZGVuPSExLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibmF2aWdhdGluZyIsITAsdGhpcykpfV9nZXRDb2x1bW5zKHIsbil7bGV0IGk9dGhpcy5fY29sdW1uVHJlZS5sZW5ndGgtMTtyZXR1cm4gcj09PXRoaXMuJC5oZWFkZXI/aT1uOnI9PT10aGlzLiQuZm9vdGVyJiYoaT10aGlzLl9jb2x1bW5UcmVlLmxlbmd0aC0xLW4pLHRoaXMuX2NvbHVtblRyZWVbaV19X3Jlc2V0S2V5Ym9hcmROYXZpZ2F0aW9uKCl7aWYodGhpcy4kLmhlYWRlci5maXJzdEVsZW1lbnRDaGlsZCYmKHRoaXMuX2hlYWRlckZvY3VzYWJsZT1BcnJheS5mcm9tKHRoaXMuJC5oZWFkZXIuZmlyc3RFbGVtZW50Q2hpbGQuY2hpbGRyZW4pLmZpbHRlcihyPT4hci5oaWRkZW4pWzBdKSx0aGlzLiQuaXRlbXMuZmlyc3RFbGVtZW50Q2hpbGQpe2xldCByPXRoaXMuX2l0ZXJhdGVJdGVtcygobixpKT0+e2lmKHRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4PT09aSlyZXR1cm4gdGhpcy4kLml0ZW1zLmNoaWxkcmVuW25dfSk7ciYmKHRoaXMuX2l0ZW1zRm9jdXNhYmxlPUFycmF5LmZyb20oci5jaGlsZHJlbikuZmlsdGVyKG49PiFuLmhpZGRlbilbMF0pfXRoaXMuJC5mb290ZXIuZmlyc3RFbGVtZW50Q2hpbGQmJih0aGlzLl9mb290ZXJGb2N1c2FibGU9QXJyYXkuZnJvbSh0aGlzLiQuZm9vdGVyLmZpcnN0RWxlbWVudENoaWxkLmNoaWxkcmVuKS5maWx0ZXIocj0+IXIuaGlkZGVuKVswXSl9X3Njcm9sbEhvcml6b250YWxseVRvQ2VsbChyKXtpZihyLmhhc0F0dHJpYnV0ZSgiZnJvemVuIil8fHRoaXMuX2VsZW1lbnRNYXRjaGVzKHIsJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl0nKSlyZXR1cm47bGV0IG49ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPXIucGFyZW50Tm9kZSxvPUFycmF5LmZyb20oaS5jaGlsZHJlbikuaW5kZXhPZihyKSxhPXRoaXMuJC50YWJsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzPWEubGVmdCxsPWEucmlnaHQ7Zm9yKGxldCBjPW8tMTtjPj0wO2MtLSl7bGV0IHU9aS5jaGlsZHJlbltjXTtpZighKHUuaGFzQXR0cmlidXRlKCJoaWRkZW4iKXx8dGhpcy5fZWxlbWVudE1hdGNoZXModSwnW3BhcnR+PSJkZXRhaWxzLWNlbGwiXScpKSYmdS5oYXNBdHRyaWJ1dGUoImZyb3plbiIpKXtzPXUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQ7YnJlYWt9fWZvcihsZXQgYz1vKzE7YzxpLmNoaWxkcmVuLmxlbmd0aDtjKyspe2xldCB1PWkuY2hpbGRyZW5bY107aWYoISh1Lmhhc0F0dHJpYnV0ZSgiaGlkZGVuIil8fHRoaXMuX2VsZW1lbnRNYXRjaGVzKHUsJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl0nKSkmJnUuaGFzQXR0cmlidXRlKCJmcm96ZW4iKSl7bD11LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7YnJlYWt9fW4ubGVmdDxzJiYodGhpcy4kLnRhYmxlLnNjcm9sbExlZnQrPU1hdGgucm91bmQobi5sZWZ0LXMpKSxuLnJpZ2h0PmwmJih0aGlzLiQudGFibGUuc2Nyb2xsTGVmdCs9TWF0aC5yb3VuZChuLnJpZ2h0LWwpKX1fZWxlbWVudE1hdGNoZXMocixuKXtyZXR1cm4gci5tYXRjaGVzP3IubWF0Y2hlcyhuKTpBcnJheS5mcm9tKHIucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yQWxsKG4pKS5pbmRleE9mKHIpIT09LTF9X2dldEdyaWRFdmVudExvY2F0aW9uKHIpe2xldCBuPXIuY29tcG9zZWRQYXRoKCksaT1uLmluZGV4T2YodGhpcy4kLnRhYmxlKSxvPWk+PTE/bltpLTFdOm51bGwsYT1pPj0yP25baS0yXTpudWxsLHM9aT49Mz9uW2ktM106bnVsbDtyZXR1cm57c2VjdGlvbjpvLHJvdzphLGNlbGw6c319X2dldEdyaWRTZWN0aW9uRnJvbUZvY3VzVGFyZ2V0KHIpe3JldHVybiByPT09dGhpcy5faGVhZGVyRm9jdXNhYmxlP3RoaXMuJC5oZWFkZXI6cj09PXRoaXMuX2l0ZW1zRm9jdXNhYmxlP3RoaXMuJC5pdGVtczpyPT09dGhpcy5fZm9vdGVyRm9jdXNhYmxlP3RoaXMuJC5mb290ZXI6bnVsbH19O2Z1bmN0aW9uIHV1ZShlLHQscil7bGV0IG49MTtlLmZvckVhY2goaT0+e24lMTA9PT0wJiZuKyssaS5fb3JkZXI9cituKnQsbisrfSl9dmFyIGh1ZT1lPT5jbGFzcyBleHRlbmRzIHZoKGUpe3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntjb2x1bW5SZW9yZGVyaW5nQWxsb3dlZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxfb3JkZXJCYXNlU2NvcGU6e3R5cGU6TnVtYmVyLHZhbHVlOjFlN319fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfdXBkYXRlT3JkZXJzKF9jb2x1bW5UcmVlLCBfY29sdW1uVHJlZS4qKSJdfXJlYWR5KCl7c3VwZXIucmVhZHkoKSxUbSh0aGlzLCJ0cmFjayIsdGhpcy5fb25UcmFja0V2ZW50KSx0aGlzLl9yZW9yZGVyR2hvc3Q9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ1twYXJ0PSJyZW9yZGVyLWdob3N0Il0nKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX29uVG91Y2hTdGFydC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5fb25Ub3VjaE1vdmUuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5fb25Ub3VjaEVuZC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLl9vbkNvbnRleHRNZW51LmJpbmQodGhpcykpfV9vbkNvbnRleHRNZW51KHIpe3RoaXMuaGFzQXR0cmlidXRlKCJyZW9yZGVyaW5nIikmJnIucHJldmVudERlZmF1bHQoKX1fb25Ub3VjaFN0YXJ0KHIpe3RoaXMuX3N0YXJ0VG91Y2hSZW9yZGVyVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5fb25UcmFja1N0YXJ0KHtkZXRhaWw6e3g6ci50b3VjaGVzWzBdLmNsaWVudFgseTpyLnRvdWNoZXNbMF0uY2xpZW50WX19KX0sMTAwKX1fb25Ub3VjaE1vdmUocil7dGhpcy5fZHJhZ2dlZENvbHVtbiYmci5wcmV2ZW50RGVmYXVsdCgpLGNsZWFyVGltZW91dCh0aGlzLl9zdGFydFRvdWNoUmVvcmRlclRpbWVvdXQpfV9vblRvdWNoRW5kKCl7Y2xlYXJUaW1lb3V0KHRoaXMuX3N0YXJ0VG91Y2hSZW9yZGVyVGltZW91dCksdGhpcy5fb25UcmFja0VuZCgpfV9vblRyYWNrRXZlbnQocil7aWYoci5kZXRhaWwuc3RhdGU9PT0ic3RhcnQiKXtsZXQgbj1yLmNvbXBvc2VkUGF0aCgpLGk9bltuLmluZGV4T2YodGhpcy4kLmhlYWRlciktMl07aWYoIWl8fCFpLl9jb250ZW50fHxpLl9jb250ZW50LmNvbnRhaW5zKHRoaXMuZ2V0Um9vdE5vZGUoKS5hY3RpdmVFbGVtZW50KXx8dGhpcy4kLnNjcm9sbGVyLmhhc0F0dHJpYnV0ZSgiY29sdW1uLXJlc2l6aW5nIikpcmV0dXJuO3RoaXMuX3RvdWNoRGV2aWNlfHx0aGlzLl9vblRyYWNrU3RhcnQocil9ZWxzZSByLmRldGFpbC5zdGF0ZT09PSJ0cmFjayI/dGhpcy5fb25UcmFjayhyKTpyLmRldGFpbC5zdGF0ZT09PSJlbmQiJiZ0aGlzLl9vblRyYWNrRW5kKHIpfV9vblRyYWNrU3RhcnQocil7aWYoIXRoaXMuY29sdW1uUmVvcmRlcmluZ0FsbG93ZWQpcmV0dXJuO2xldCBuPXIuY29tcG9zZWRQYXRoJiZyLmNvbXBvc2VkUGF0aCgpO2lmKG4mJm4uZmlsdGVyKG89Pm8uaGFzQXR0cmlidXRlJiZvLmhhc0F0dHJpYnV0ZSgiZHJhZ2dhYmxlIikpWzBdKXJldHVybjtsZXQgaT10aGlzLl9jZWxsRnJvbVBvaW50KHIuZGV0YWlsLngsci5kZXRhaWwueSk7aWYoISghaXx8aS5nZXRBdHRyaWJ1dGUoInBhcnQiKS5pbmRleE9mKCJoZWFkZXItY2VsbCIpPT09LTEpKXtmb3IodGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJyZW9yZGVyaW5nIiwhMCx0aGlzKSx0aGlzLl9kcmFnZ2VkQ29sdW1uPWkuX2NvbHVtbjt0aGlzLl9kcmFnZ2VkQ29sdW1uLnBhcmVudEVsZW1lbnQuY2hpbGRFbGVtZW50Q291bnQ9PT0xOyl0aGlzLl9kcmFnZ2VkQ29sdW1uPXRoaXMuX2RyYWdnZWRDb2x1bW4ucGFyZW50RWxlbWVudDt0aGlzLl9zZXRTaWJsaW5nc1Jlb3JkZXJTdGF0dXModGhpcy5fZHJhZ2dlZENvbHVtbiwiYWxsb3dlZCIpLHRoaXMuX2RyYWdnZWRDb2x1bW4uX3Jlb3JkZXJTdGF0dXM9ImRyYWdnaW5nIix0aGlzLl91cGRhdGVHaG9zdChpKSx0aGlzLl9yZW9yZGVyR2hvc3Quc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSIsdGhpcy5fdXBkYXRlR2hvc3RQb3NpdGlvbihyLmRldGFpbC54LHRoaXMuX3RvdWNoRGV2aWNlP3IuZGV0YWlsLnktNTA6ci5kZXRhaWwueSksdGhpcy5fYXV0b1Njcm9sbGVyKCl9fV9vblRyYWNrKHIpe2lmKCF0aGlzLl9kcmFnZ2VkQ29sdW1uKXJldHVybjtsZXQgbj10aGlzLl9jZWxsRnJvbVBvaW50KHIuZGV0YWlsLngsci5kZXRhaWwueSk7aWYoIW4pcmV0dXJuO2xldCBpPXRoaXMuX2dldFRhcmdldENvbHVtbihuLHRoaXMuX2RyYWdnZWRDb2x1bW4pO3RoaXMuX2lzU3dhcEFsbG93ZWQodGhpcy5fZHJhZ2dlZENvbHVtbixpKSYmdGhpcy5faXNTd2FwcGFibGVCeVBvc2l0aW9uKGksci5kZXRhaWwueCkmJnRoaXMuX3N3YXBDb2x1bW5PcmRlcnModGhpcy5fZHJhZ2dlZENvbHVtbixpKSx0aGlzLl91cGRhdGVHaG9zdFBvc2l0aW9uKHIuZGV0YWlsLngsdGhpcy5fdG91Y2hEZXZpY2U/ci5kZXRhaWwueS01MDpyLmRldGFpbC55KSx0aGlzLl9sYXN0RHJhZ0NsaWVudFg9ci5kZXRhaWwueH1fb25UcmFja0VuZCgpeyF0aGlzLl9kcmFnZ2VkQ29sdW1ufHwodGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJyZW9yZGVyaW5nIiwhMSx0aGlzKSx0aGlzLl9kcmFnZ2VkQ29sdW1uLl9yZW9yZGVyU3RhdHVzPSIiLHRoaXMuX3NldFNpYmxpbmdzUmVvcmRlclN0YXR1cyh0aGlzLl9kcmFnZ2VkQ29sdW1uLCIiKSx0aGlzLl9kcmFnZ2VkQ29sdW1uPW51bGwsdGhpcy5fbGFzdERyYWdDbGllbnRYPW51bGwsdGhpcy5fcmVvcmRlckdob3N0LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sdW1uLXJlb3JkZXIiLHtkZXRhaWw6e2NvbHVtbnM6dGhpcy5fZ2V0Q29sdW1uc0luT3JkZXIoKX19KSkpfV9nZXRDb2x1bW5zSW5PcmRlcigpe3JldHVybiB0aGlzLl9jb2x1bW5UcmVlLnNsaWNlKDApLnBvcCgpLmZpbHRlcihyPT4hci5oaWRkZW4pLnNvcnQoKHIsbik9PnIuX29yZGVyLW4uX29yZGVyKX1fY2VsbEZyb21Qb2ludChyLG4pe3I9cnx8MCxuPW58fDAsdGhpcy5fZHJhZ2dlZENvbHVtbnx8dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuby1jb250ZW50LXBvaW50ZXItZXZlbnRzIiwhMCx0aGlzLiQuc2Nyb2xsZXIpO2xldCBpPXRoaXMuc2hhZG93Um9vdC5lbGVtZW50RnJvbVBvaW50KHIsbik7aWYodGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuby1jb250ZW50LXBvaW50ZXItZXZlbnRzIiwhMSx0aGlzLiQuc2Nyb2xsZXIpLGkmJmkuX2NvbHVtbilyZXR1cm4gaX1fdXBkYXRlR2hvc3RQb3NpdGlvbihyLG4pe2xldCBpPXRoaXMuX3Jlb3JkZXJHaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPXItaS53aWR0aC8yLGE9bi1pLmhlaWdodC8yLHM9cGFyc2VJbnQodGhpcy5fcmVvcmRlckdob3N0Ll9sZWZ0fHwwKSxsPXBhcnNlSW50KHRoaXMuX3Jlb3JkZXJHaG9zdC5fdG9wfHwwKTt0aGlzLl9yZW9yZGVyR2hvc3QuX2xlZnQ9cy0oaS5sZWZ0LW8pLHRoaXMuX3Jlb3JkZXJHaG9zdC5fdG9wPWwtKGkudG9wLWEpLHRoaXMuX3Jlb3JkZXJHaG9zdC5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZSgke3RoaXMuX3Jlb3JkZXJHaG9zdC5fbGVmdH1weCwgJHt0aGlzLl9yZW9yZGVyR2hvc3QuX3RvcH1weClgfV91cGRhdGVHaG9zdChyKXtsZXQgbj10aGlzLl9yZW9yZGVyR2hvc3Q7bi50ZXh0Q29udGVudD1yLl9jb250ZW50LmlubmVyVGV4dDtsZXQgaT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyKTtyZXR1cm5bImJveFNpemluZyIsImRpc3BsYXkiLCJ3aWR0aCIsImhlaWdodCIsImJhY2tncm91bmQiLCJhbGlnbkl0ZW1zIiwicGFkZGluZyIsImJvcmRlciIsImZsZXgtZGlyZWN0aW9uIiwib3ZlcmZsb3ciXS5mb3JFYWNoKG89Pm4uc3R5bGVbb109aVtvXSksbn1fdXBkYXRlT3JkZXJzKHIsbil7cj09PXZvaWQgMHx8bj09PXZvaWQgMHx8KHJbMF0uZm9yRWFjaChpPT5pLl9vcmRlcj0wKSx1dWUoclswXSx0aGlzLl9vcmRlckJhc2VTY29wZSwwKSl9X3NldFNpYmxpbmdzUmVvcmRlclN0YXR1cyhyLG4pe0FycmF5LmZyb20oci5wYXJlbnROb2RlLmNoaWxkcmVuKS5maWx0ZXIoaT0+L2NvbHVtbi8udGVzdChpLmxvY2FsTmFtZSkmJnRoaXMuX2lzU3dhcEFsbG93ZWQoaSxyKSkuZm9yRWFjaChpPT5pLl9yZW9yZGVyU3RhdHVzPW4pfV9hdXRvU2Nyb2xsZXIoKXtpZih0aGlzLl9sYXN0RHJhZ0NsaWVudFgpe2xldCByPXRoaXMuX2xhc3REcmFnQ2xpZW50WC10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0KzUwLG49dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LXRoaXMuX2xhc3REcmFnQ2xpZW50WCs1MDtyPjA/dGhpcy4kLnRhYmxlLnNjcm9sbExlZnQrPXIvMTA6bj4wJiYodGhpcy4kLnRhYmxlLnNjcm9sbExlZnQtPW4vMTApLHRoaXMuX3Njcm9sbEhhbmRsZXIoKX10aGlzLl9kcmFnZ2VkQ29sdW1uJiZ0aGlzLmFzeW5jKHRoaXMuX2F1dG9TY3JvbGxlciwxMCl9X2lzU3dhcEFsbG93ZWQocixuKXtpZihyJiZuKXtsZXQgaT1yIT09bixvPXIucGFyZW50RWxlbWVudD09PW4ucGFyZW50RWxlbWVudCxhPXIuZnJvemVuPT09bi5mcm96ZW47cmV0dXJuIGkmJm8mJmF9fV9pc1N3YXBwYWJsZUJ5UG9zaXRpb24ocixuKXtsZXQgaT1BcnJheS5mcm9tKHRoaXMuJC5oZWFkZXIucXVlcnlTZWxlY3RvckFsbCgndHI6bm90KFtoaWRkZW5dKSBbcGFydH49ImNlbGwiXScpKS5maWx0ZXIocz0+ci5jb250YWlucyhzLl9jb2x1bW4pKVswXSxvPXRoaXMuJC5oZWFkZXIucXVlcnlTZWxlY3RvcigidHI6bm90KFtoaWRkZW5dKSBbcmVvcmRlci1zdGF0dXM9ZHJhZ2dpbmddIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBhLmxlZnQ+by5sZWZ0P24+YS5yaWdodC1vLndpZHRoOm48YS5sZWZ0K28ud2lkdGh9X3N3YXBDb2x1bW5PcmRlcnMocixuKXtsZXQgaT1yLl9vcmRlcjtyLl9vcmRlcj1uLl9vcmRlcixuLl9vcmRlcj1pLHRoaXMuX3VwZGF0ZUxhc3RGcm96ZW4oKSx0aGlzLl91cGRhdGVGaXJzdEFuZExhc3RDb2x1bW4oKX1fZ2V0VGFyZ2V0Q29sdW1uKHIsbil7aWYociYmbil7bGV0IGk9ci5fY29sdW1uO2Zvcig7aS5wYXJlbnRFbGVtZW50IT09bi5wYXJlbnRFbGVtZW50JiZpIT09dGhpczspaT1pLnBhcmVudEVsZW1lbnQ7cmV0dXJuIGkucGFyZW50RWxlbWVudD09PW4ucGFyZW50RWxlbWVudD9pOnIuX2NvbHVtbn19fTt2YXIgY2hyPWU9PmNsYXNzIGV4dGVuZHMgZXtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57cmVzaXphYmxlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLmxvY2FsTmFtZT09PSJ2YWFkaW4tZ3JpZC1jb2x1bW4tZ3JvdXAiKXJldHVybjtsZXQgcj10aGlzLnBhcmVudE5vZGU7cmV0dXJuIHImJnIubG9jYWxOYW1lPT09InZhYWRpbi1ncmlkLWNvbHVtbi1ncm91cCImJnIucmVzaXphYmxlfHwhMX19LF9oZWFkZXJUZW1wbGF0ZTp7dHlwZTpPYmplY3R9LF9mb290ZXJUZW1wbGF0ZTp7dHlwZTpPYmplY3R9LGZyb3plbjp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxoaWRkZW46e3R5cGU6Qm9vbGVhbn0saGVhZGVyOnt0eXBlOlN0cmluZ30sdGV4dEFsaWduOnt0eXBlOlN0cmluZ30sX2xhc3RGcm96ZW46e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX29yZGVyOk51bWJlcixfcmVvcmRlclN0YXR1czpCb29sZWFuLF9lbXB0eUNlbGxzOkFycmF5LF9oZWFkZXJDZWxsOk9iamVjdCxfZm9vdGVyQ2VsbDpPYmplY3QsX2dyaWQ6T2JqZWN0LGhlYWRlclJlbmRlcmVyOkZ1bmN0aW9uLGZvb3RlclJlbmRlcmVyOkZ1bmN0aW9ufX1zdGF0aWMgZ2V0IG9ic2VydmVycygpe3JldHVyblsiX3dpZHRoQ2hhbmdlZCh3aWR0aCwgX2hlYWRlckNlbGwsIF9mb290ZXJDZWxsLCBfY2VsbHMuKikiLCJfZnJvemVuQ2hhbmdlZChmcm96ZW4sIF9oZWFkZXJDZWxsLCBfZm9vdGVyQ2VsbCwgX2NlbGxzLiopIiwiX2ZsZXhHcm93Q2hhbmdlZChmbGV4R3JvdywgX2hlYWRlckNlbGwsIF9mb290ZXJDZWxsLCBfY2VsbHMuKikiLCJfcGF0aE9ySGVhZGVyQ2hhbmdlZChwYXRoLCBoZWFkZXIsIF9oZWFkZXJDZWxsLCBfZm9vdGVyQ2VsbCwgX2NlbGxzLiosIHJlbmRlcmVyLCBoZWFkZXJSZW5kZXJlciwgX2JvZHlUZW1wbGF0ZSwgX2hlYWRlclRlbXBsYXRlKSIsIl90ZXh0QWxpZ25DaGFuZ2VkKHRleHRBbGlnbiwgX2NlbGxzLiosIF9oZWFkZXJDZWxsLCBfZm9vdGVyQ2VsbCkiLCJfb3JkZXJDaGFuZ2VkKF9vcmRlciwgX2hlYWRlckNlbGwsIF9mb290ZXJDZWxsLCBfY2VsbHMuKikiLCJfbGFzdEZyb3plbkNoYW5nZWQoX2xhc3RGcm96ZW4pIiwiX3NldEJvZHlUZW1wbGF0ZU9yUmVuZGVyZXIoX2JvZHlUZW1wbGF0ZSwgcmVuZGVyZXIsIF9jZWxscywgX2NlbGxzLiopIiwiX3NldEhlYWRlclRlbXBsYXRlT3JSZW5kZXJlcihfaGVhZGVyVGVtcGxhdGUsIGhlYWRlclJlbmRlcmVyLCBfaGVhZGVyQ2VsbCkiLCJfc2V0Rm9vdGVyVGVtcGxhdGVPclJlbmRlcmVyKF9mb290ZXJUZW1wbGF0ZSwgZm9vdGVyUmVuZGVyZXIsIF9mb290ZXJDZWxsKSIsIl9yZXNpemFibGVDaGFuZ2VkKHJlc2l6YWJsZSwgX2hlYWRlckNlbGwpIiwiX3Jlb3JkZXJTdGF0dXNDaGFuZ2VkKF9yZW9yZGVyU3RhdHVzLCBfaGVhZGVyQ2VsbCwgX2Zvb3RlckNlbGwsIF9jZWxscy4qKSIsIl9oaWRkZW5DaGFuZ2VkKGhpZGRlbiwgX2hlYWRlckNlbGwsIF9mb290ZXJDZWxsLCBfY2VsbHMuKikiXX1jb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fYm9keVRlbXBsYXRlJiYodGhpcy5fYm9keVRlbXBsYXRlLnRlbXBsYXRpemVyLl9ncmlkPXRoaXMuX2dyaWQpLHRoaXMuX2hlYWRlclRlbXBsYXRlJiYodGhpcy5faGVhZGVyVGVtcGxhdGUudGVtcGxhdGl6ZXIuX2dyaWQ9dGhpcy5fZ3JpZCksdGhpcy5fZm9vdGVyVGVtcGxhdGUmJih0aGlzLl9mb290ZXJUZW1wbGF0ZS50ZW1wbGF0aXplci5fZ3JpZD10aGlzLl9ncmlkKSx0aGlzLl90ZW1wbGF0ZU9ic2VydmVyLmZsdXNoKCksdGhpcy5fYm9keVRlbXBsYXRlfHx0aGlzLl90ZW1wbGF0ZU9ic2VydmVyLmNhbGxiYWNrKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5fYWxsQ2VsbHMuZm9yRWFjaChyPT57ci5fY29udGVudC5wYXJlbnROb2RlfHx0aGlzLl9ncmlkJiZ0aGlzLl9ncmlkLmFwcGVuZENoaWxkKHIuX2NvbnRlbnQpfSl9KX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5fZmluZEhvc3RHcmlkKCl8fHRoaXMuX2FsbENlbGxzLmZvckVhY2gocj0+e3IuX2NvbnRlbnQucGFyZW50Tm9kZSYmci5fY29udGVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHIuX2NvbnRlbnQpfSl9KSx0aGlzLl9ncmlkVmFsdWU9dm9pZCAwfV9maW5kSG9zdEdyaWQoKXtsZXQgcj10aGlzO2Zvcig7ciYmIS9edmFhZGluLipncmlkKC1wcm8pPyQvLnRlc3Qoci5sb2NhbE5hbWUpOylyPXIuYXNzaWduZWRTbG90P3IuYXNzaWduZWRTbG90LnBhcmVudE5vZGU6ci5wYXJlbnROb2RlO3JldHVybiByfHx2b2lkIDB9Z2V0IF9ncmlkKCl7cmV0dXJuIHRoaXMuX2dyaWRWYWx1ZXx8KHRoaXMuX2dyaWRWYWx1ZT10aGlzLl9maW5kSG9zdEdyaWQoKSksdGhpcy5fZ3JpZFZhbHVlfWdldCBfYWxsQ2VsbHMoKXtyZXR1cm5bXS5jb25jYXQodGhpcy5fY2VsbHN8fFtdKS5jb25jYXQodGhpcy5fZW1wdHlDZWxsc3x8W10pLmNvbmNhdCh0aGlzLl9oZWFkZXJDZWxsKS5jb25jYXQodGhpcy5fZm9vdGVyQ2VsbCkuZmlsdGVyKHI9PnIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl90ZW1wbGF0ZU9ic2VydmVyPW5ldyB4aCh0aGlzLCgpPT57dGhpcy5faGVhZGVyVGVtcGxhdGU9dGhpcy5fcHJlcGFyZUhlYWRlclRlbXBsYXRlKCksdGhpcy5fZm9vdGVyVGVtcGxhdGU9dGhpcy5fcHJlcGFyZUZvb3RlclRlbXBsYXRlKCksdGhpcy5fYm9keVRlbXBsYXRlPXRoaXMuX3ByZXBhcmVCb2R5VGVtcGxhdGUoKX0pfV9wcmVwYXJlSGVhZGVyVGVtcGxhdGUoKXtyZXR1cm4gdGhpcy5fcHJlcGFyZVRlbXBsYXRpemVyKHRoaXMuX2ZpbmRUZW1wbGF0ZSghMCl8fG51bGwse30pfV9wcmVwYXJlRm9vdGVyVGVtcGxhdGUoKXtyZXR1cm4gdGhpcy5fcHJlcGFyZVRlbXBsYXRpemVyKHRoaXMuX2ZpbmRUZW1wbGF0ZSghMSwhMCl8fG51bGwse30pfV9wcmVwYXJlQm9keVRlbXBsYXRlKCl7cmV0dXJuIHRoaXMuX3ByZXBhcmVUZW1wbGF0aXplcih0aGlzLl9maW5kVGVtcGxhdGUoKXx8bnVsbCl9X3ByZXBhcmVUZW1wbGF0aXplcihyLG4pe2lmKHImJiFyLnRlbXBsYXRpemVyKXtsZXQgaT1uZXcgQzA7aS5fZ3JpZD10aGlzLl9ncmlkLGkuZGF0YUhvc3Q9dGhpcy5kYXRhSG9zdCxpLl9pbnN0YW5jZVByb3BzPW58fGkuX2luc3RhbmNlUHJvcHMsaS50ZW1wbGF0ZT1yLHIudGVtcGxhdGl6ZXI9aX1yZXR1cm4gcn1fcmVuZGVySGVhZGVyQW5kRm9vdGVyKCl7dGhpcy5oZWFkZXJSZW5kZXJlciYmdGhpcy5faGVhZGVyQ2VsbCYmdGhpcy5fX3J1blJlbmRlcmVyKHRoaXMuaGVhZGVyUmVuZGVyZXIsdGhpcy5faGVhZGVyQ2VsbCksdGhpcy5mb290ZXJSZW5kZXJlciYmdGhpcy5fZm9vdGVyQ2VsbCYmdGhpcy5fX3J1blJlbmRlcmVyKHRoaXMuZm9vdGVyUmVuZGVyZXIsdGhpcy5fZm9vdGVyQ2VsbCl9X19ydW5SZW5kZXJlcihyLG4saSl7bGV0IG89W24uX2NvbnRlbnQsdGhpc107aSYmaS5pdGVtJiZvLnB1c2goaSksci5hcHBseSh0aGlzLG8pfV9fc2V0Q29sdW1uVGVtcGxhdGVPclJlbmRlcmVyKHIsbixpKXtpZighdGhpcy5oaWRkZW4pe2lmKHImJm4pdGhyb3cgbmV3IEVycm9yKCJZb3Ugc2hvdWxkIG9ubHkgdXNlIGVpdGhlciBhIHJlbmRlcmVyIG9yIGEgdGVtcGxhdGUiKTtpLmZvckVhY2gobz0+e2xldCBhPXRoaXMuX2dyaWQuX19nZXRSb3dNb2RlbChvLnBhcmVudEVsZW1lbnQpO2lmKG4pby5fcmVuZGVyZXI9biwoYS5pdGVtfHxuPT09dGhpcy5oZWFkZXJSZW5kZXJlcnx8bj09PXRoaXMuZm9vdGVyUmVuZGVyZXIpJiZ0aGlzLl9fcnVuUmVuZGVyZXIobixvLGEpO2Vsc2UgaWYoby5fdGVtcGxhdGUhPT1yKXtvLl90ZW1wbGF0ZT1yLG8uX2NvbnRlbnQuaW5uZXJIVE1MPSIiLHIudGVtcGxhdGl6ZXIuX2dyaWQ9ci50ZW1wbGF0aXplci5fZ3JpZHx8dGhpcy5fZ3JpZDtsZXQgcz1yLnRlbXBsYXRpemVyLmNyZWF0ZUluc3RhbmNlKCk7by5fY29udGVudC5hcHBlbmRDaGlsZChzLnJvb3QpLG8uX2luc3RhbmNlPXMsYS5pdGVtJiZvLl9pbnN0YW5jZS5zZXRQcm9wZXJ0aWVzKGEpfX0pfX1fc2V0Qm9keVRlbXBsYXRlT3JSZW5kZXJlcihyLG4saSl7KHJ8fG4pJiZpJiZ0aGlzLl9fc2V0Q29sdW1uVGVtcGxhdGVPclJlbmRlcmVyKHIsbixpKX1fc2V0SGVhZGVyVGVtcGxhdGVPclJlbmRlcmVyKHIsbixpKXsocnx8bikmJmkmJnRoaXMuX19zZXRDb2x1bW5UZW1wbGF0ZU9yUmVuZGVyZXIocixuLFtpXSl9X3NldEZvb3RlclRlbXBsYXRlT3JSZW5kZXJlcihyLG4saSl7KHJ8fG4pJiZpJiYodGhpcy5fX3NldENvbHVtblRlbXBsYXRlT3JSZW5kZXJlcihyLG4sW2ldKSx0aGlzLl9ncmlkLl9fdXBkYXRlSGVhZGVyRm9vdGVyUm93VmlzaWJpbGl0eShpLnBhcmVudEVsZW1lbnQpKX1fc2VsZWN0Rmlyc3RUZW1wbGF0ZShyPSExLG49ITEpe3JldHVybiB4aC5nZXRGbGF0dGVuZWROb2Rlcyh0aGlzKS5maWx0ZXIoaT0+aS5sb2NhbE5hbWU9PT0idGVtcGxhdGUiJiZpLmNsYXNzTGlzdC5jb250YWlucygiaGVhZGVyIik9PT1yJiZpLmNsYXNzTGlzdC5jb250YWlucygiZm9vdGVyIik9PT1uKVswXX1fZmluZFRlbXBsYXRlKHIsbil7bGV0IGk9dGhpcy5fc2VsZWN0Rmlyc3RUZW1wbGF0ZShyLG4pO3JldHVybiBpJiZ0aGlzLmRhdGFIb3N0JiYoaS5fcm9vdERhdGFIb3N0PXRoaXMuZGF0YUhvc3QuX3Jvb3REYXRhSG9zdHx8dGhpcy5kYXRhSG9zdCksaX1fZmxleEdyb3dDaGFuZ2VkKHIpe3RoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50Ll9jb2x1bW5Qcm9wQ2hhbmdlZCYmdGhpcy5wYXJlbnRFbGVtZW50Ll9jb2x1bW5Qcm9wQ2hhbmdlZCgiZmxleEdyb3ciKSx0aGlzLl9hbGxDZWxscy5mb3JFYWNoKG49Pm4uc3R5bGUuZmxleEdyb3c9cil9X29yZGVyQ2hhbmdlZChyKXt0aGlzLl9hbGxDZWxscy5mb3JFYWNoKG49Pm4uc3R5bGUub3JkZXI9cil9X3dpZHRoQ2hhbmdlZChyKXt0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5fY29sdW1uUHJvcENoYW5nZWQmJnRoaXMucGFyZW50RWxlbWVudC5fY29sdW1uUHJvcENoYW5nZWQoIndpZHRoIiksdGhpcy5fYWxsQ2VsbHMuZm9yRWFjaChuPT5uLnN0eWxlLndpZHRoPXIpLHRoaXMuX2dyaWQmJnRoaXMuX2dyaWQuX19mb3JjZVJlZmxvdyYmdGhpcy5fZ3JpZC5fX2ZvcmNlUmVmbG93KCl9X2Zyb3plbkNoYW5nZWQocil7dGhpcy5wYXJlbnRFbGVtZW50JiZ0aGlzLnBhcmVudEVsZW1lbnQuX2NvbHVtblByb3BDaGFuZ2VkJiZ0aGlzLnBhcmVudEVsZW1lbnQuX2NvbHVtblByb3BDaGFuZ2VkKCJmcm96ZW4iLHIpLHRoaXMuX2FsbENlbGxzLmZvckVhY2gobj0+dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJmcm96ZW4iLHIsbikpLHRoaXMuX2dyaWQmJnRoaXMuX2dyaWQuX2Zyb3plbkNlbGxzQ2hhbmdlZCYmdGhpcy5fZ3JpZC5fZnJvemVuQ2VsbHNDaGFuZ2VkKCl9X2xhc3RGcm96ZW5DaGFuZ2VkKHIpe3RoaXMuX2FsbENlbGxzLmZvckVhY2gobj0+dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJsYXN0LWZyb3plbiIscixuKSksdGhpcy5wYXJlbnRFbGVtZW50JiZ0aGlzLnBhcmVudEVsZW1lbnQuX2NvbHVtblByb3BDaGFuZ2VkJiYodGhpcy5wYXJlbnRFbGVtZW50Ll9sYXN0RnJvemVuPXIpfV9wYXRoT3JIZWFkZXJDaGFuZ2VkKHIsbixpLG8sYSxzLGwsYyx1KXtsZXQgaD1uIT09dm9pZCAwO2lmKCFsJiYhdSYmaCYmaSYmdGhpcy5fX3NldFRleHRDb250ZW50KGkuX2NvbnRlbnQsbiksciYmYS52YWx1ZSl7aWYoIXMmJiFjKXtsZXQgZj0ocCxkLHtpdGVtOmd9KT0+dGhpcy5fX3NldFRleHRDb250ZW50KHAsdGhpcy5nZXQocixnKSk7dGhpcy5fX3NldENvbHVtblRlbXBsYXRlT3JSZW5kZXJlcih2b2lkIDAsZixhLnZhbHVlKX0hbCYmIXUmJiFoJiZpJiZuIT09bnVsbCYmdGhpcy5fX3NldFRleHRDb250ZW50KGkuX2NvbnRlbnQsdGhpcy5fZ2VuZXJhdGVIZWFkZXIocikpfWkmJnRoaXMuX2dyaWQuX191cGRhdGVIZWFkZXJGb290ZXJSb3dWaXNpYmlsaXR5KGkucGFyZW50RWxlbWVudCl9X19zZXRUZXh0Q29udGVudChyLG4pe3IudGV4dENvbnRlbnQhPT1uJiYoci50ZXh0Q29udGVudD1uKX1fZ2VuZXJhdGVIZWFkZXIocil7cmV0dXJuIHIuc3Vic3RyKHIubGFzdEluZGV4T2YoIi4iKSsxKS5yZXBsYWNlKC8oW0EtWl0pL2csIi0kMSIpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvLS9nLCIgIikucmVwbGFjZSgvXi4vLG49Pm4udG9VcHBlckNhc2UoKSl9X3RvZ2dsZUF0dHJpYnV0ZShyLG4saSl7aS5oYXNBdHRyaWJ1dGUocik9PT0hbiYmKG4/aS5zZXRBdHRyaWJ1dGUociwiIik6aS5yZW1vdmVBdHRyaWJ1dGUocikpfV9yZW9yZGVyU3RhdHVzQ2hhbmdlZChyKXt0aGlzLl9hbGxDZWxscy5mb3JFYWNoKG49Pm4uc2V0QXR0cmlidXRlKCJyZW9yZGVyLXN0YXR1cyIscikpfV9yZXNpemFibGVDaGFuZ2VkKHIsbil7cj09PXZvaWQgMHx8bj09PXZvaWQgMHx8biYmW25dLmNvbmNhdCh0aGlzLl9lbXB0eUNlbGxzKS5mb3JFYWNoKGk9PntpZihpKXtsZXQgbz1pLnF1ZXJ5U2VsZWN0b3IoJ1twYXJ0fj0icmVzaXplLWhhbmRsZSJdJyk7aWYobyYmaS5yZW1vdmVDaGlsZChvKSxyKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLnNldEF0dHJpYnV0ZSgicGFydCIsInJlc2l6ZS1oYW5kbGUiKSxpLmFwcGVuZENoaWxkKGEpfX19KX1fdGV4dEFsaWduQ2hhbmdlZChyKXtpZihyPT09dm9pZCAwKXJldHVybjtpZihbInN0YXJ0IiwiZW5kIiwiY2VudGVyIl0uaW5kZXhPZihyKT09PS0xKXtjb25zb2xlLndhcm4oJ3RleHRBbGlnbiBjYW4gb25seSBiZSBzZXQgYXMgInN0YXJ0IiwgImVuZCIgb3IgImNlbnRlciInKTtyZXR1cm59bGV0IG47Z2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9ncmlkKS5kaXJlY3Rpb249PT0ibHRyIj9yPT09InN0YXJ0Ij9uPSJsZWZ0IjpyPT09ImVuZCImJihuPSJyaWdodCIpOnI9PT0ic3RhcnQiP249InJpZ2h0IjpyPT09ImVuZCImJihuPSJsZWZ0IiksdGhpcy5fYWxsQ2VsbHMuZm9yRWFjaChpPT57aS5fY29udGVudC5zdHlsZS50ZXh0QWxpZ249cixnZXRDb21wdXRlZFN0eWxlKGkuX2NvbnRlbnQpLnRleHRBbGlnbiE9PXImJihpLl9jb250ZW50LnN0eWxlLnRleHRBbGlnbj1uKX0pfV9oaWRkZW5DaGFuZ2VkKHIpe3RoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50Ll9jb2x1bW5Qcm9wQ2hhbmdlZCYmdGhpcy5wYXJlbnRFbGVtZW50Ll9jb2x1bW5Qcm9wQ2hhbmdlZCgiaGlkZGVuIixyKSwhIXIhPSEhdGhpcy5fcHJldmlvdXNIaWRkZW4mJnRoaXMuX2dyaWQmJihyPT09ITAmJnRoaXMuX2FsbENlbGxzLmZvckVhY2gobj0+e24uX2NvbnRlbnQucGFyZW50Tm9kZSYmbi5fY29udGVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4uX2NvbnRlbnQpfSksdGhpcy5fZ3JpZC5fZGVib3VuY2VySGlkZGVuQ2hhbmdlZD1zci5kZWJvdW5jZSh0aGlzLl9ncmlkLl9kZWJvdW5jZXJIaWRkZW5DaGFuZ2VkLE5pLCgpPT57dGhpcy5fZ3JpZCYmdGhpcy5fZ3JpZC5fcmVuZGVyQ29sdW1uVHJlZSYmdGhpcy5fZ3JpZC5fcmVuZGVyQ29sdW1uVHJlZSh0aGlzLl9ncmlkLl9jb2x1bW5UcmVlKX0pLHRoaXMuX2dyaWQuX3VwZGF0ZUxhc3RGcm96ZW4mJnRoaXMuX2dyaWQuX3VwZGF0ZUxhc3RGcm96ZW4oKSx0aGlzLl9ncmlkLm5vdGlmeVJlc2l6ZSYmdGhpcy5fZ3JpZC5ub3RpZnlSZXNpemUoKSx0aGlzLl9ncmlkLl9yZXNldEtleWJvYXJkTmF2aWdhdGlvbiYmdGhpcy5fZ3JpZC5fcmVzZXRLZXlib2FyZE5hdmlnYXRpb24oKSksdGhpcy5fcHJldmlvdXNIaWRkZW49cn19LGVWPWNsYXNzIGV4dGVuZHMgY2hyKFpIKG10KSl7c3RhdGljIGdldCBpcygpe3JldHVybiJ2YWFkaW4tZ3JpZC1jb2x1bW4ifXN0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybnt3aWR0aDp7dHlwZTpTdHJpbmcsdmFsdWU6IjEwMHB4In0sZmxleEdyb3c6e3R5cGU6TnVtYmVyLHZhbHVlOjF9LHJlbmRlcmVyOkZ1bmN0aW9uLHBhdGg6e3R5cGU6U3RyaW5nfSxhdXRvV2lkdGg6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX2JvZHlUZW1wbGF0ZTp7dHlwZTpPYmplY3R9LF9jZWxsczpBcnJheX19fTtjdXN0b21FbGVtZW50cy5kZWZpbmUoZVYuaXMsZVYpO2pjKCJ2YWFkaW4tZ3JpZCIsQ2lgCiAgICBAa2V5ZnJhbWVzIHZhYWRpbi1ncmlkLWFwcGVhciB7CiAgICAgIHRvIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICB9CgogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgYW5pbWF0aW9uOiAxbXMgdmFhZGluLWdyaWQtYXBwZWFyOwogICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICBmbGV4OiAxIDEgYXV0bzsKICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAjc2Nyb2xsZXIgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICB3aWR0aDogYXV0bzsKICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIGJvdHRvbTogMDsKICAgICAgbGVmdDogMDsKICAgIH0KCiAgICA6aG9zdChbaGVpZ2h0LWJ5LXJvd3NdKSB7CiAgICAgIGhlaWdodDogYXV0bzsKICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsKICAgICAgZmxleC1ncm93OiAwOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KCiAgICA6aG9zdChbaGVpZ2h0LWJ5LXJvd3NdKSAjc2Nyb2xsZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB9CgogICAgI3RhYmxlIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgLyogV29ya2Fyb3VuZCBmb3IgYSBEZXNrdG9wIFNhZmFyaSBidWc6IG5ldyBzdGFja2luZyBjb250ZXh0IGhlcmUgcHJldmVudHMgdGhlIHNjcm9sbGJhciBmcm9tIGdldHRpbmcgaGlkZGVuICovCiAgICAgIHotaW5kZXg6IDA7CiAgICB9CgogICAgI2hlYWRlciwKICAgICNmb290ZXIgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5OwogICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICBsZWZ0OiAwOwogICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIHotaW5kZXg6IDE7CiAgICB9CgogICAgI2hlYWRlciB7CiAgICAgIHRvcDogMDsKICAgIH0KCiAgICB0aCB7CiAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7CiAgICB9CgogICAgLyogU2FmYXJpIGRvZXNuJ3Qgd29yayB3aXRoICJpbmhlcml0IiAqLwogICAgW3NhZmFyaV0gdGggewogICAgICB0ZXh0LWFsaWduOiBpbml0aWFsOwogICAgfQoKICAgICNmb290ZXIgewogICAgICBib3R0b206IDA7CiAgICB9CgogICAgI2l0ZW1zIHsKICAgICAgZmxleC1ncm93OiAxOwogICAgICBmbGV4LXNocmluazogMDsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsKICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGxlZnQ6IDA7CiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgfQoKICAgIFtwYXJ0fj0ncm93J10gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgbWFyZ2luOiAwOwogICAgfQoKICAgIFtwYXJ0fj0ncm93J11bbG9hZGluZ10gW3BhcnR+PSdib2R5LWNlbGwnXSA6OnNsb3R0ZWQodmFhZGluLWdyaWQtY2VsbC1jb250ZW50KSB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICB9CgogICAgI2l0ZW1zIFtwYXJ0fj0ncm93J10gewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB9CgogICAgI2l0ZW1zIFtwYXJ0fj0ncm93J106ZW1wdHkgewogICAgICBoZWlnaHQ6IDFlbTsKICAgIH0KCiAgICBbcGFydH49J2NlbGwnXTpub3QoW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSkgewogICAgICBmbGV4LXNocmluazogMDsKICAgICAgZmxleC1ncm93OiAxOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBwYWRkaW5nOiAwOwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgfQoKICAgIFtwYXJ0fj0nZGV0YWlscy1jZWxsJ10gewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJvdHRvbTogMDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CgogICAgW3BhcnR+PSdjZWxsJ10gOjpzbG90dGVkKHZhYWRpbi1ncmlkLWNlbGwtY29udGVudCkgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgfQoKICAgIFtoaWRkZW5dIHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIFtmcm96ZW5dIHsKICAgICAgei1pbmRleDogMjsKICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgIH0KCiAgICBbbm8tc2Nyb2xsYmFyc11bc2FmYXJpXSAjdGFibGUsCiAgICBbbm8tc2Nyb2xsYmFyc11bZmlyZWZveF0gI3RhYmxlIHsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAvKiBSZW9yZGVyaW5nIHN0eWxlcyAqLwogICAgOmhvc3QoW3Jlb3JkZXJpbmddKSBbcGFydH49J2NlbGwnXSA6OnNsb3R0ZWQodmFhZGluLWdyaWQtY2VsbC1jb250ZW50KSwKICAgIDpob3N0KFtyZW9yZGVyaW5nXSkgW3BhcnR+PSdyZXNpemUtaGFuZGxlJ10sCiAgICAjc2Nyb2xsZXJbbm8tY29udGVudC1wb2ludGVyLWV2ZW50c10gW3BhcnR+PSdjZWxsJ10gOjpzbG90dGVkKHZhYWRpbi1ncmlkLWNlbGwtY29udGVudCkgewogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIH0KCiAgICBbcGFydH49J3Jlb3JkZXItZ2hvc3QnXSB7CiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgb3BhY2l0eTogMC41OwoKICAgICAgLyogUHJldmVudCBvdmVyZmxvd2luZyB0aGUgZ3JpZCBpbiBGaXJlZm94ICovCiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgIH0KCiAgICA6aG9zdChbcmVvcmRlcmluZ10pIHsKICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICB9CgogICAgLyogUmVzaXppbmcgc3R5bGVzICovCiAgICBbcGFydH49J3Jlc2l6ZS1oYW5kbGUnXSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICByaWdodDogMDsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgIHotaW5kZXg6IDE7CiAgICB9CgogICAgW3BhcnR+PSdyZXNpemUtaGFuZGxlJ106OmJlZm9yZSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgY29udGVudDogJyc7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgd2lkdGg6IDM1cHg7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgIH0KCiAgICBbbGFzdC1jb2x1bW5dIFtwYXJ0fj0ncmVzaXplLWhhbmRsZSddOjpiZWZvcmUsCiAgICBbbGFzdC1mcm96ZW5dIFtwYXJ0fj0ncmVzaXplLWhhbmRsZSddOjpiZWZvcmUgewogICAgICB3aWR0aDogMThweDsKICAgICAgdHJhbnNmb3JtOiBub25lOwogICAgICByaWdodDogMDsKICAgIH0KCiAgICAjc2Nyb2xsZXJbY29sdW1uLXJlc2l6aW5nXSB7CiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICB9CgogICAgLyogU2l6ZXIgc3R5bGVzICovCiAgICAjc2l6ZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgIH0KCiAgICAjc2l6ZXIgW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSB7CiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAjc2l6ZXIgW3BhcnR+PSdjZWxsJ11baGlkZGVuXSB7CiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAjc2l6ZXIgW3BhcnR+PSdjZWxsJ10gewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIGxpbmUtaGVpZ2h0OiAwOwogICAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDsKICAgICAgbWluLWhlaWdodDogMCAhaW1wb3J0YW50OwogICAgICBtYXgtaGVpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgI3NpemVyIFtwYXJ0fj0nY2VsbCddOjpiZWZvcmUgewogICAgICBjb250ZW50OiAnLSc7CiAgICB9CgogICAgI3NpemVyIFtwYXJ0fj0nY2VsbCddIDo6c2xvdHRlZCh2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQpIHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC8qIFJUTCBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgICA6aG9zdChbZGlyPSdydGwnXSkgI2l0ZW1zLAogICAgOmhvc3QoW2Rpcj0ncnRsJ10pICNoZWFkZXIsCiAgICA6aG9zdChbZGlyPSdydGwnXSkgI2Zvb3RlciB7CiAgICAgIGxlZnQ6IGF1dG87CiAgICB9CgogICAgOmhvc3QoW2Rpcj0ncnRsJ10pIFtwYXJ0fj0ncmVvcmRlci1naG9zdCddIHsKICAgICAgbGVmdDogYXV0bzsKICAgICAgcmlnaHQ6IDA7CiAgICB9CgogICAgOmhvc3QoW2Rpcj0ncnRsJ10pIFtwYXJ0fj0ncmVzaXplLWhhbmRsZSddIHsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IGF1dG87CiAgICB9CgogICAgOmhvc3QoW2Rpcj0ncnRsJ10pIFtwYXJ0fj0ncmVzaXplLWhhbmRsZSddOjpiZWZvcmUgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTAlKTsKICAgIH0KCiAgICA6aG9zdChbZGlyPSdydGwnXSkgW2xhc3QtY29sdW1uXSBbcGFydH49J3Jlc2l6ZS1oYW5kbGUnXTo6YmVmb3JlLAogICAgOmhvc3QoW2Rpcj0ncnRsJ10pIFtsYXN0LWZyb3plbl0gW3BhcnR+PSdyZXNpemUtaGFuZGxlJ106OmJlZm9yZSB7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiBhdXRvOwogICAgfQogIGAse21vZHVsZUlkOiJ2YWFkaW4tZ3JpZC1zdHlsZXMifSk7dmFyIHVocj0oKCk9Pnt0cnl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJUb3VjaEV2ZW50IiksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSkoKSxyVj1jbGFzcyBleHRlbmRzIEpIKFhIKFFjZSgkY2UodHVlKFhjZShpdWUob3VlKGF1ZShudWUoY3VlKGpjZShydWUoaHVlKEtjZShldWUobHVlKHN1ZSh0VikpKSkpKSkpKSkpKSkpKSkpKXtzdGF0aWMgZ2V0IHRlbXBsYXRlKCl7cmV0dXJuIFFgCiAgICAgIDxkaXYKICAgICAgICBpZD0ic2Nyb2xsZXIiCiAgICAgICAgc2FmYXJpJD0iW1tfc2FmYXJpXV0iCiAgICAgICAgaW9zJD0iW1tfaW9zXV0iCiAgICAgICAgbG9hZGluZyQ9IltbbG9hZGluZ11dIgogICAgICAgIGNvbHVtbi1yZW9yZGVyaW5nLWFsbG93ZWQkPSJbW2NvbHVtblJlb3JkZXJpbmdBbGxvd2VkXV0iCiAgICAgID4KICAgICAgICA8dGFibGUgaWQ9InRhYmxlIiByb2xlPSJncmlkIiBhcmlhLW11bHRpc2VsZWN0YWJsZT0idHJ1ZSIgdGFiaW5kZXg9IjAiPgogICAgICAgICAgPGNhcHRpb24gaWQ9InNpemVyIiBwYXJ0PSJyb3ciPjwvY2FwdGlvbj4KICAgICAgICAgIDx0aGVhZCBpZD0iaGVhZGVyIiByb2xlPSJyb3dncm91cCI+PC90aGVhZD4KICAgICAgICAgIDx0Ym9keSBpZD0iaXRlbXMiIHJvbGU9InJvd2dyb3VwIj48L3Rib2R5PgogICAgICAgICAgPHRmb290IGlkPSJmb290ZXIiIHJvbGU9InJvd2dyb3VwIj48L3Rmb290PgogICAgICAgIDwvdGFibGU+CgogICAgICAgIDxkaXYgcGFydD0icmVvcmRlci1naG9zdCI+PC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBpZD0iZm9jdXNleGl0IiB0YWJpbmRleD0iMCI+PC9kaXY+CiAgICBgfXN0YXRpYyBnZXQgaXMoKXtyZXR1cm4idmFhZGluLWdyaWQifXN0YXRpYyBnZXQgdmVyc2lvbigpe3JldHVybiIyMC4wLjIifXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfY29sdW1uVHJlZUNoYW5nZWQoX2NvbHVtblRyZWUsIF9jb2x1bW5UcmVlLiopIl19c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue19zYWZhcmk6e3R5cGU6Qm9vbGVhbix2YWx1ZTovXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfSxfaW9zOnt0eXBlOkJvb2xlYW4sdmFsdWU6L2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJiF3aW5kb3cuTVNTdHJlYW18fG5hdmlnYXRvci5wbGF0Zm9ybT09PSJNYWNJbnRlbCImJm5hdmlnYXRvci5tYXhUb3VjaFBvaW50cz4xfSxfZmlyZWZveDp7dHlwZTpCb29sZWFuLHZhbHVlOm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJmaXJlZm94Iik+LTF9LF9hbmRyb2lkOnt0eXBlOkJvb2xlYW4sdmFsdWU6L2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfSxfdG91Y2hEZXZpY2U6e3R5cGU6Qm9vbGVhbix2YWx1ZTp1aHJ9LGhlaWdodEJ5Um93czp7dHlwZTpCb29sZWFuLHZhbHVlOiExLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCxvYnNlcnZlcjoiX2hlaWdodEJ5Um93c0NoYW5nZWQifSxfcmVjYWxjdWxhdGVDb2x1bW5XaWR0aE9uY2VMb2FkaW5nRmluaXNoZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMH19fWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImFuaW1hdGlvbmVuZCIsdGhpcy5fb25BbmltYXRpb25FbmQpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnJlY2FsY3VsYXRlQ29sdW1uV2lkdGhzKCl9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQscixuKXtzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxyLG4pLHQ9PT0iZGlyIiYmKHRoaXMuX19pc1JUTD1uPT09InJ0bCIsdGhpcy5fdXBkYXRlU2Nyb2xsZXJNZWFzdXJlbWVudHMoKSl9X19oYXNSb3dzV2l0aENsaWVudEhlaWdodCgpe3JldHVybiEhQXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcih0PT50LmNsaWVudEhlaWdodCkubGVuZ3RofV9faXRlbXNSZWNlaXZlZCgpe3RoaXMuX3JlY2FsY3VsYXRlQ29sdW1uV2lkdGhPbmNlTG9hZGluZ0ZpbmlzaGVkJiYhdGhpcy5fY2FjaGUuaXNMb2FkaW5nKCkmJnRoaXMuX19oYXNSb3dzV2l0aENsaWVudEhlaWdodCgpJiYodGhpcy5fcmVjYWxjdWxhdGVDb2x1bW5XaWR0aE9uY2VMb2FkaW5nRmluaXNoZWQ9ITEsdGhpcy5yZWNhbGN1bGF0ZUNvbHVtbldpZHRocygpKX1fcmVjYWxjdWxhdGVDb2x1bW5XaWR0aHModCl7dC5mb3JFYWNoKHI9PntyLndpZHRoPSJhdXRvIixyLl9vcmlnRmxleEdyb3c9ci5mbGV4R3JvdyxyLmZsZXhHcm93PTB9KSx0LmZvckVhY2gocj0+e3IuX2N1cnJlbnRXaWR0aD0wLHIuX2FsbENlbGxzLmZvckVhY2gobj0+e2xldCBpPW4ub2Zmc2V0V2lkdGgrMTtyLl9jdXJyZW50V2lkdGg9TWF0aC5tYXgoci5fY3VycmVudFdpZHRoLGkpfSl9KSx0LmZvckVhY2gocj0+e3Iud2lkdGg9YCR7ci5fY3VycmVudFdpZHRofXB4YCxyLmZsZXhHcm93PXIuX29yaWdGbGV4R3JvdyxyLl9jdXJyZW50V2lkdGg9dm9pZCAwLHIuX29yaWdGbGV4R3Jvdz12b2lkIDB9KX1yZWNhbGN1bGF0ZUNvbHVtbldpZHRocygpe2lmKCEhdGhpcy5fY29sdW1uVHJlZSlpZih0aGlzLl9jYWNoZS5pc0xvYWRpbmcoKSl0aGlzLl9yZWNhbGN1bGF0ZUNvbHVtbldpZHRoT25jZUxvYWRpbmdGaW5pc2hlZD0hMDtlbHNle2xldCB0PXRoaXMuX2dldENvbHVtbnMoKS5maWx0ZXIocj0+IXIuaGlkZGVuJiZyLmF1dG9XaWR0aCk7dGhpcy5fcmVjYWxjdWxhdGVDb2x1bW5XaWR0aHModCl9fV9jcmVhdGVTY3JvbGxlclJvd3ModCl7bGV0IHI9W107Zm9yKGxldCBuPTA7bjx0O24rKyl7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTtpLnNldEF0dHJpYnV0ZSgicGFydCIsInJvdyIpLGkuc2V0QXR0cmlidXRlKCJyb2xlIiwicm93IiksdGhpcy5fY29sdW1uVHJlZSYmdGhpcy5fdXBkYXRlUm93KGksdGhpcy5fY29sdW1uVHJlZVt0aGlzLl9jb2x1bW5UcmVlLmxlbmd0aC0xXSwiYm9keSIsITEsITApLHIucHVzaChpKX1yZXR1cm4gdGhpcy5fY29sdW1uVHJlZSYmdGhpcy5fY29sdW1uVHJlZVt0aGlzLl9jb2x1bW5UcmVlLmxlbmd0aC0xXS5mb3JFYWNoKG49Pm4uaXNDb25uZWN0ZWQmJm4ubm90aWZ5UGF0aCYmbi5ub3RpZnlQYXRoKCJfY2VsbHMuKiIsbi5fY2VsbHMpKSx2Z3QodGhpcywoKT0+e3RoaXMuX3VwZGF0ZUZpcnN0QW5kTGFzdENvbHVtbigpLHRoaXMuX3Jlc2V0S2V5Ym9hcmROYXZpZ2F0aW9uKCl9KSxyfV9nZXRSb3dUYXJnZXQoKXtyZXR1cm4gdGhpcy4kLml0ZW1zfV9jcmVhdGVDZWxsKHQpe2xldCByPXRoaXMuX2NvbnRlbnRJbmRleD10aGlzLl9jb250ZW50SW5kZXgrMXx8MCxuPSJ2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQtIityLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmFhZGluLWdyaWQtY2VsbC1jb250ZW50Iik7aS5zZXRBdHRyaWJ1dGUoInNsb3QiLG4pO2xldCBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCk7by5pZD1uLnJlcGxhY2UoIi1jb250ZW50LSIsIi0iKSxvLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCItMSIpLG8uc2V0QXR0cmlidXRlKCJyb2xlIix0PT09InRkIj8iZ3JpZGNlbGwiOiJjb2x1bW5oZWFkZXIiKTtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzbG90Iik7cmV0dXJuIGEuc2V0QXR0cmlidXRlKCJuYW1lIixuKSxvLmFwcGVuZENoaWxkKGEpLG8uX2NvbnRlbnQ9aSxpLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsKCk9PntpZih3aW5kb3cuY2hyb21lKXtsZXQgcz0oKT0+e2kuY29udGFpbnModGhpcy5nZXRSb290Tm9kZSgpLmFjdGl2ZUVsZW1lbnQpfHxvLmZvY3VzKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIscywhMCl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHMsITApfWVsc2Ugc2V0VGltZW91dCgoKT0+e2kuY29udGFpbnModGhpcy5nZXRSb290Tm9kZSgpLmFjdGl2ZUVsZW1lbnQpfHxvLmZvY3VzKCl9KX0pLG99X3VwZGF0ZVJvdyh0LHIsbixpLG8pe249bnx8ImJvZHkiO2xldCBhPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtBcnJheS5mcm9tKHQuY2hpbGRyZW4pLmZvckVhY2gocz0+cy5fdmFjYW50PSEwKSx0LmlubmVySFRNTD0iIix0LmlkIT09InNpemVyIiYmKHQuaGlkZGVuPSEwKSxyLmZpbHRlcihzPT4hcy5oaWRkZW4pLmZvckVhY2goKHMsbCxjKT0+e2xldCB1O2lmKG49PT0iYm9keSIpe2lmKHMuX2NlbGxzPXMuX2NlbGxzfHxbXSx1PXMuX2NlbGxzLmZpbHRlcihoPT5oLl92YWNhbnQpWzBdLHV8fCh1PXRoaXMuX2NyZWF0ZUNlbGwoInRkIikscy5fY2VsbHMucHVzaCh1KSksdS5zZXRBdHRyaWJ1dGUoInBhcnQiLCJjZWxsIGJvZHktY2VsbCIpLHQuYXBwZW5kQ2hpbGQodSksbD09PWMubGVuZ3RoLTEmJih0aGlzLl9yb3dEZXRhaWxzVGVtcGxhdGV8fHRoaXMucm93RGV0YWlsc1JlbmRlcmVyKSl7dGhpcy5fZGV0YWlsc0NlbGxzPXRoaXMuX2RldGFpbHNDZWxsc3x8W107bGV0IGg9dGhpcy5fZGV0YWlsc0NlbGxzLmZpbHRlcihmPT5mLl92YWNhbnQpWzBdfHx0aGlzLl9jcmVhdGVDZWxsKCJ0ZCIpO3RoaXMuX2RldGFpbHNDZWxscy5pbmRleE9mKGgpPT09LTEmJnRoaXMuX2RldGFpbHNDZWxscy5wdXNoKGgpLGguX2NvbnRlbnQucGFyZW50RWxlbWVudHx8YS5hcHBlbmRDaGlsZChoLl9jb250ZW50KSx0aGlzLl9jb25maWd1cmVEZXRhaWxzQ2VsbChoKSx0LmFwcGVuZENoaWxkKGgpLHRoaXMuX2ExMXlTZXRSb3dEZXRhaWxzQ2VsbCh0LGgpLGguX3ZhY2FudD0hMX1zLm5vdGlmeVBhdGgmJiFvJiZzLm5vdGlmeVBhdGgoIl9jZWxscy4qIixzLl9jZWxscyl9ZWxzZXtsZXQgaD1uPT09ImhlYWRlciI/InRoIjoidGQiO2l8fHMubG9jYWxOYW1lPT09InZhYWRpbi1ncmlkLWNvbHVtbi1ncm91cCI/KHU9c1tgXyR7bn1DZWxsYF18fHRoaXMuX2NyZWF0ZUNlbGwoaCksdS5fY29sdW1uPXMsdC5hcHBlbmRDaGlsZCh1KSxzW2BfJHtufUNlbGxgXT11KToocy5fZW1wdHlDZWxscz1zLl9lbXB0eUNlbGxzfHxbXSx1PXMuX2VtcHR5Q2VsbHMuZmlsdGVyKGY9PmYuX3ZhY2FudClbMF18fHRoaXMuX2NyZWF0ZUNlbGwoaCksdS5fY29sdW1uPXMsdC5hcHBlbmRDaGlsZCh1KSxzLl9lbXB0eUNlbGxzLmluZGV4T2YodSk9PT0tMSYmcy5fZW1wdHlDZWxscy5wdXNoKHUpKSx1LnNldEF0dHJpYnV0ZSgicGFydCIsYGNlbGwgJHtufS1jZWxsYCksdGhpcy5fX3VwZGF0ZUhlYWRlckZvb3RlclJvd1Zpc2liaWxpdHkodCl9dS5fY29udGVudC5wYXJlbnRFbGVtZW50fHxhLmFwcGVuZENoaWxkKHUuX2NvbnRlbnQpLHUuX3ZhY2FudD0hMSx1Ll9jb2x1bW49c30pLHRoaXMuYXBwZW5kQ2hpbGQoYSksdGhpcy5fZnJvemVuQ2VsbHNDaGFuZ2VkKCksdGhpcy5fdXBkYXRlRmlyc3RBbmRMYXN0Q29sdW1uRm9yUm93KHQpfV9fdXBkYXRlSGVhZGVyRm9vdGVyUm93VmlzaWJpbGl0eSh0KXtpZighdClyZXR1cm47bGV0IHI9QXJyYXkuZnJvbSh0LmNoaWxkcmVuKS5maWx0ZXIobj0+e2xldCBpPW4uX2NvbHVtbjtpZihpLl9lbXB0eUNlbGxzJiZpLl9lbXB0eUNlbGxzLmluZGV4T2Yobik+LTEpcmV0dXJuITE7aWYodC5wYXJlbnRFbGVtZW50PT09dGhpcy4kLmhlYWRlcil7aWYoaS5oZWFkZXJSZW5kZXJlcnx8aS5faGVhZGVyVGVtcGxhdGUpcmV0dXJuITA7aWYoaS5oZWFkZXI9PT1udWxsKXJldHVybiExO2lmKGkucGF0aHx8aS5oZWFkZXIhPT12b2lkIDApcmV0dXJuITB9ZWxzZSBpZihpLmZvb3RlclJlbmRlcmVyfHxpLl9mb290ZXJUZW1wbGF0ZSlyZXR1cm4hMH0pO3QuaGlkZGVuIT09IXIubGVuZ3RoJiYodC5oaWRkZW49IXIubGVuZ3RoLHRoaXMubm90aWZ5UmVzaXplKCkpfV91cGRhdGVTY3JvbGxlckl0ZW0odCxyKXt0aGlzLl9wcmV2ZW50U2Nyb2xsZXJSb3RhdGluZ0NlbGxGb2N1cyh0LHIpLHRoaXMuX2NvbHVtblRyZWUmJih0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImZpcnN0IixyPT09MCx0KSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm9kZCIsciUyLHQpLHRoaXMuX2ExMXlVcGRhdGVSb3dSb3dpbmRleCh0LHIpLHRoaXMuX2dldEl0ZW0ocix0KSl9X2NvbHVtblRyZWVDaGFuZ2VkKHQpe3RoaXMuX3JlbmRlckNvbHVtblRyZWUodCksdGhpcy5yZWNhbGN1bGF0ZUNvbHVtbldpZHRocygpfV9yZW5kZXJDb2x1bW5UcmVlKHQpe2ZvcihBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZm9yRWFjaChyPT50aGlzLl91cGRhdGVSb3cocix0W3QubGVuZ3RoLTFdLG51bGwsITEsITApKTt0aGlzLiQuaGVhZGVyLmNoaWxkcmVuLmxlbmd0aDx0Lmxlbmd0aDspe2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIik7ci5zZXRBdHRyaWJ1dGUoInBhcnQiLCJyb3ciKSxyLnNldEF0dHJpYnV0ZSgicm9sZSIsInJvdyIpLHRoaXMuJC5oZWFkZXIuYXBwZW5kQ2hpbGQocik7bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTtuLnNldEF0dHJpYnV0ZSgicGFydCIsInJvdyIpLG4uc2V0QXR0cmlidXRlKCJyb2xlIiwicm93IiksdGhpcy4kLmZvb3Rlci5hcHBlbmRDaGlsZChuKX1mb3IoO3RoaXMuJC5oZWFkZXIuY2hpbGRyZW4ubGVuZ3RoPnQubGVuZ3RoOyl0aGlzLiQuaGVhZGVyLnJlbW92ZUNoaWxkKHRoaXMuJC5oZWFkZXIuZmlyc3RFbGVtZW50Q2hpbGQpLHRoaXMuJC5mb290ZXIucmVtb3ZlQ2hpbGQodGhpcy4kLmZvb3Rlci5maXJzdEVsZW1lbnRDaGlsZCk7QXJyYXkuZnJvbSh0aGlzLiQuaGVhZGVyLmNoaWxkcmVuKS5mb3JFYWNoKChyLG4pPT50aGlzLl91cGRhdGVSb3cocix0W25dLCJoZWFkZXIiLG49PT10Lmxlbmd0aC0xKSksQXJyYXkuZnJvbSh0aGlzLiQuZm9vdGVyLmNoaWxkcmVuKS5mb3JFYWNoKChyLG4pPT50aGlzLl91cGRhdGVSb3cocix0W3QubGVuZ3RoLTEtbl0sImZvb3RlciIsbj09PTApKSx0aGlzLl91cGRhdGVSb3codGhpcy4kLnNpemVyLHRbdC5sZW5ndGgtMV0pLHRoaXMuX3Jlc2l6ZUhhbmRsZXIoKSx0aGlzLl9mcm96ZW5DZWxsc0NoYW5nZWQoKSx0aGlzLl91cGRhdGVGaXJzdEFuZExhc3RDb2x1bW4oKSx0aGlzLl9yZXNldEtleWJvYXJkTmF2aWdhdGlvbigpLHRoaXMuX2ExMXlVcGRhdGVIZWFkZXJSb3dzKCksdGhpcy5fYTExeVVwZGF0ZUZvb3RlclJvd3MoKSx0aGlzLl9fdXBkYXRlRm9vdGVyUG9zaXRpb25pbmcoKX1fX3VwZGF0ZUZvb3RlclBvc2l0aW9uaW5nKCl7dGhpcy5fZmlyZWZveCYmKHRoaXMuJC5pdGVtcy5zdHlsZS5wYWRkaW5nQm90dG9tPTAsdGhpcy5oZWlnaHRCeVJvd3N8fCh0aGlzLiQuaXRlbXMuc3R5bGUucGFkZGluZ0JvdHRvbT1gJHt0aGlzLiQuZm9vdGVyLm9mZnNldEhlaWdodH1weGApKSx0aGlzLl9pb3MmJiF3aW5kb3cuQ1NTLnN1cHBvcnRzKCJwb3NpdGlvbiIsInN0aWNreSIpJiYodGhpcy4kLnRhYmxlLnN0eWxlLmhlaWdodD0iIix0aGlzLiQudGFibGUuc3R5bGUubWluSGVpZ2h0PSIxMDAlIix0aGlzLiQudGFibGUuc3R5bGUubWF4SGVpZ2h0PSIxMDAlIixzZXRUaW1lb3V0KCgpPT50aGlzLiQudGFibGUuc3R5bGUuaGVpZ2h0PWAke3RoaXMuJC5zY3JvbGxlci5vZmZzZXRIZWlnaHR9cHhgKSl9X3VwZGF0ZUl0ZW0odCxyKXt0Ll9pdGVtPXI7bGV0IG49dGhpcy5fX2dldFJvd01vZGVsKHQpO3RoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgic2VsZWN0ZWQiLG4uc2VsZWN0ZWQsdCksdGhpcy5fYTExeVVwZGF0ZVJvd1NlbGVjdGVkKHQsbi5zZWxlY3RlZCksdGhpcy5fYTExeVVwZGF0ZVJvd0xldmVsKHQsbi5sZXZlbCksdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJleHBhbmRlZCIsbi5leHBhbmRlZCx0KSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImRldGFpbHMtb3BlbmVkIix0aGlzLl9pc0RldGFpbHNPcGVuZWQociksdCksKHRoaXMuX3Jvd0RldGFpbHNUZW1wbGF0ZXx8dGhpcy5yb3dEZXRhaWxzUmVuZGVyZXIpJiZ0aGlzLl90b2dnbGVEZXRhaWxzQ2VsbCh0LHIpLHRoaXMuX2dlbmVyYXRlQ2VsbENsYXNzTmFtZXModCxuKSx0aGlzLl9maWx0ZXJEcmFnQW5kRHJvcCh0LG4pLEFycmF5LmZyb20odC5jaGlsZHJlbikuZm9yRWFjaChpPT57aWYoaS5fcmVuZGVyZXIpe2xldCBvPWkuX2NvbHVtbnx8dGhpcztpLl9yZW5kZXJlci5jYWxsKG8saS5fY29udGVudCxvLG4pfWVsc2UgaS5faW5zdGFuY2UmJihpLl9pbnN0YW5jZS5fX2RldGFpbHNPcGVuZWRfXz1uLmRldGFpbHNPcGVuZWQsaS5faW5zdGFuY2UuX19zZWxlY3RlZF9fPW4uc2VsZWN0ZWQsaS5faW5zdGFuY2UuX19sZXZlbF9fPW4ubGV2ZWwsaS5faW5zdGFuY2UuX19leHBhbmRlZF9fPW4uZXhwYW5kZWQsaS5faW5zdGFuY2Uuc2V0UHJvcGVydGllcyhuKSl9KSx0aGlzLl9kZWJvdW5jZXJVcGRhdGVIZWlnaHRzPXNyLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlclVwZGF0ZUhlaWdodHMsbW8uYWZ0ZXIoMSksKCk9Pnt0aGlzLl91cGRhdGVNZXRyaWNzKCksdGhpcy5fcG9zaXRpb25JdGVtcygpLHRoaXMuX3VwZGF0ZVNjcm9sbGVyU2l6ZSgpfSl9X3Jlc2l6ZUhhbmRsZXIoKXt0aGlzLl91cGRhdGVEZXRhaWxzQ2VsbEhlaWdodHMoKSx0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSShzdXBlci5fcmVzaXplSGFuZGxlciwhMCksdGhpcy5fdXBkYXRlU2Nyb2xsZXJNZWFzdXJlbWVudHMoKSx0aGlzLl9fdXBkYXRlRm9vdGVyUG9zaXRpb25pbmcoKX1fb25BbmltYXRpb25FbmQodCl7dC5hbmltYXRpb25OYW1lLmluZGV4T2YoInZhYWRpbi1ncmlkLWFwcGVhciIpPT09MCYmKHRoaXMuX3JlbmRlcigpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5ub3RpZnlSZXNpemUoKSx0aGlzLl9faXRlbXNSZWNlaXZlZCgpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuX19zY3JvbGxUb1BlbmRpbmdJbmRleCgpLHRoaXMuJC50YWJsZS5zdHlsZS53ZWJraXRPdmVyZmxvd1Njcm9sbGluZz0idG91Y2gifSkpfV90b2dnbGVBdHRyaWJ1dGUodCxyLG4pe24uaGFzQXR0cmlidXRlKHQpPT09IXImJihyP24uc2V0QXR0cmlidXRlKHQsIiIpOm4ucmVtb3ZlQXR0cmlidXRlKHQpKX1fX2dldFJvd01vZGVsKHQpe3JldHVybntpbmRleDp0LmluZGV4LGl0ZW06dC5faXRlbSxsZXZlbDp0aGlzLl9nZXRJbmRleExldmVsKHQuaW5kZXgpLGV4cGFuZGVkOnRoaXMuX2lzRXhwYW5kZWQodC5faXRlbSksc2VsZWN0ZWQ6dGhpcy5faXNTZWxlY3RlZCh0Ll9pdGVtKSxkZXRhaWxzT3BlbmVkOiEhKHRoaXMuX3Jvd0RldGFpbHNUZW1wbGF0ZXx8dGhpcy5yb3dEZXRhaWxzUmVuZGVyZXIpJiZ0aGlzLl9pc0RldGFpbHNPcGVuZWQodC5faXRlbSl9fXJlbmRlcigpe3RoaXMuX2NvbHVtblRyZWUmJih0aGlzLl9jb2x1bW5UcmVlLmZvckVhY2godD0+e3QuZm9yRWFjaChyPT5yLl9yZW5kZXJIZWFkZXJBbmRGb290ZXIoKSl9KSx0aGlzLl91cGRhdGUoKSl9bm90aWZ5UmVzaXplKCl7c3VwZXIubm90aWZ5UmVzaXplKCl9X2hlaWdodEJ5Um93c0NoYW5nZWQodCxyKXsodHx8cikmJnRoaXMubm90aWZ5UmVzaXplKCl9X19mb3JjZVJlZmxvdygpe3RoaXMuX2RlYm91bmNlckZvcmNlUmVmbG93PXNyLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlckZvcmNlUmVmbG93LE5pLCgpPT57dGhpcy4kLnNjcm9sbGVyLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iLHNldFRpbWVvdXQoKCk9PnRoaXMuJC5zY3JvbGxlci5zdHlsZS5vdmVyZmxvdz0iIil9KX19O2N1c3RvbUVsZW1lbnRzLmRlZmluZShyVi5pcyxyVik7ZnVuY3Rpb24gZnVlKGUsdCl7cmV0dXJuIEJndChlLHQpfXZhciB1MT1jbGFzcyBleHRlbmRzIG10e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9ydW49IiJ9X2NzdlVybCh0LHIsbil7cmV0dXJuIHI/TWkobih0LHIpLHtmb3JtYXQ6ImNzdiJ9KToiIn1fanNvblVybCh0LHIsbil7cmV0dXJuIHI/bih0LHIpOiIifV9jc3ZOYW1lKHQscil7cmV0dXJuIHI/YHJ1bi0ke3J9LXRhZy0ke3R9LmNzdmA6IiJ9X2pzb25OYW1lKHQscil7cmV0dXJuIHI/YHJ1bi0ke3J9LXRhZy0ke3R9Lmpzb25gOiIifX07dTEudGVtcGxhdGU9UWAKICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgIG5vLWxhYmVsLWZsb2F0PSJ0cnVlIgogICAgICBsYWJlbD0icnVuIHRvIGRvd25sb2FkIgogICAgICBzZWxlY3RlZC1pdGVtLWxhYmVsPSJ7e19ydW59fSIKICAgID4KICAgICAgPHBhcGVyLWxpc3Rib3ggc2xvdD0iZHJvcGRvd24tY29udGVudCI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tydW5zXV0iPgogICAgICAgICAgPHBhcGVyLWl0ZW0gbm8tbGFiZWwtZmxvYXQ9InRydWUiPltbaXRlbV1dPC9wYXBlci1pdGVtPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgIDwvcGFwZXItZHJvcGRvd24tbWVudT4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfcnVuXV0iPgogICAgICA8YSBkb3dubG9hZD0iW1tfY3N2TmFtZSh0YWcsIF9ydW4pXV0iIGhyZWY9IltbX2NzdlVybCh0YWcsIF9ydW4sIHVybEZuKV1dIgogICAgICAgID5DU1Y8L2EKICAgICAgPjwhLS0KICAgICAgLS0+PGEKICAgICAgICBkb3dubG9hZD0iW1tfanNvbk5hbWUodGFnLCBfcnVuKV1dIgogICAgICAgIGhyZWY9IltbX2pzb25VcmwodGFnLCBfcnVuLCB1cmxGbildXSIKICAgICAgICA+SlNPTjwvYQogICAgICA+CiAgICA8L3RlbXBsYXRlPgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgfQogICAgICBwYXBlci1kcm9wZG93bi1tZW51IHsKICAgICAgICB3aWR0aDogMTAwcHg7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItbGFiZWw6IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICB9CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQ6IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICB9CiAgICAgIH0KICAgICAgYSB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIG1hcmdpbjogMCAwLjJlbTsKICAgICAgfQogICAgICBwYXBlci1pbnB1dCB7CiAgICAgICAgZm9udC1zaXplOiAyMnB4OwogICAgICB9CiAgICA8L3N0eWxlPgogIGA7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sdTEucHJvdG90eXBlLCJfcnVuIix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSx1MS5wcm90b3R5cGUsInJ1bnMiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sdTEucHJvdG90eXBlLCJ0YWciLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sdTEucHJvdG90eXBlLCJ1cmxGbiIsdm9pZCAwKTt1MT1FKFt5dCgidGYtZG93bmxvYWRlciIpXSx1MSk7dmFyIGhocj02NCxFbGk9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKSxXbj1jbGFzcyBleHRlbmRzIG10e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmNvbG9yU2NhbGU9bnVsbCx0aGlzLl9sb2FkRGF0YUNhbGxiYWNrPSh0LHIsbik9PntpZihuPT1udWxsKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gbG9hZCBkYXRhIGZvcjoiLHIpO3JldHVybn1sZXQgaT1uLm1hcChhPT4oe3dhbGxfdGltZTpuZXcgRGF0ZShhWzBdKjFlMyksc3RlcDphWzFdLHNjYWxhcjphWzJdfSkpLG89dGhpcy5fZ2V0U2VyaWVzTmFtZUZyb21EYXR1bShyKTt0LnNldFNlcmllc01ldGFkYXRhKG8sciksdC5zZXRTZXJpZXNEYXRhKG8saSl9LHRoaXMuZ2V0RGF0YUxvYWRVcmw9KHt0YWc6dCxydW46cn0pPT5fZSgpLnBsdWdpblJvdXRlRm9yU3JjKCJzY2FsYXJzIiwiL3NjYWxhcnMiLG5ldyBVUkxTZWFyY2hQYXJhbXMoe3RhZzp0LHJ1bjpyfSkpLHRoaXMuX2Rvd25sb2FkVXJsRm49KHQscik9PnRoaXMuZ2V0RGF0YUxvYWRVcmwoe3RhZzp0LHJ1bjpyfSksdGhpcy5yZXF1ZXN0RGF0YT0odCxyLG4pPT50aGlzLmluQ29sYWI/dGhpcy5fcmVxdWVzdERhdGFHZXQodCxyLG4pOnRoaXMuX3JlcXVlc3REYXRhUG9zdCh0LHIsbiksdGhpcy5fcmVxdWVzdERhdGFHZXQ9KHQscixuKT0+e2xldCBvPV9lKCkucGx1Z2luUm91dGUoInNjYWxhcnMiLCIvc2NhbGFycyIpO1Byb21pc2UuYWxsKHQubWFwKGE9PntsZXQgcz1NaShvLHt0YWc6YS50YWcscnVuOmEucnVufSk7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIucmVxdWVzdChzKS50aGVuKGw9PnZvaWQgcih7aXRlbTphLGRhdGE6bH0pKX0pKS5maW5hbGx5KCgpPT52b2lkIG4oKSl9LHRoaXMuX3JlcXVlc3REYXRhUG9zdD0odCxyLG4pPT57dmFyIGM7bGV0IG89X2UoKS5wbHVnaW5Sb3V0ZSgic2NhbGFycyIsIi9zY2FsYXJzX211bHRpcnVuIiksYT1uZXcgTWFwO2ZvcihsZXR7dGFnOnUscnVuOmh9b2YgdCl7bGV0IGY9YS5nZXQodSk7Zj09bnVsbCYmYS5zZXQodSxmPVtdKSxmLnB1c2goaCl9bGV0IHM9KGM9dGhpcy5iYXRjaFNpemUpIT1udWxsP2M6aGhyLGw9W107Zm9yKGxldFt1LGhdb2YgYSlmb3IobGV0IGY9MDtmPGgubGVuZ3RoO2YrPXMpbC5wdXNoKHt0YWc6dSxydW5zOmguc2xpY2UoZixmK3MpfSk7UHJvbWlzZS5hbGwobC5tYXAoKHt0YWc6dSxydW5zOmh9KT0+dGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KG8se3RhZzp1LHJ1bnM6aH0pLnRoZW4oZj0+e2ZvcihsZXQgcCBvZiBoKXtsZXQgZD17dGFnOnUscnVuOnB9O09iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmLHApP3Ioe2l0ZW06ZCxkYXRhOmZbcF19KTpyKHtpdGVtOmQsZGF0YTpudWxsfSl9fSkpKS5maW5hbGx5KCgpPT52b2lkIG4oKSl9LHRoaXMuX2dldERhdGFMb2FkTmFtZT10PT50aGlzLl9nZXRTZXJpZXNOYW1lRnJvbURhdHVtKHQpLHRoaXMuX2V4cGFuZGVkPSExLHRoaXMuX3Rvb2x0aXBDb2x1bW5zPSgoKT0+e2xldCB0PWlzdC5zbGljZSgpLHI9dC5maW5kSW5kZXgobj0+bi50aXRsZT09Ik5hbWUiKTtyZXR1cm4gdC5zcGxpY2UociwxLHt0aXRsZToiTmFtZSIsZXZhbHVhdGU6bj0+e2xldCBpPW4uZGF0YXNldC5tZXRhZGF0YSgpLm1ldGE7cmV0dXJuIHRoaXMuX2dldFNlcmllc0Rpc3BsYXlOYW1lRnJvbURhdHVtKGkpfX0pLHR9KSgpfV9nZXRDaGFydERhdGFMb2FkZXIoKXt2YXIgdDtyZXR1cm4odD10aGlzLnNoYWRvd1Jvb3QpPT1udWxsP3ZvaWQgMDp0LnF1ZXJ5U2VsZWN0b3IoInRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXIiKX1yZWxvYWQoKXt0aGlzLl9nZXRDaGFydERhdGFMb2FkZXIoKS5yZWxvYWQoKX1yZWRyYXcoKXt0aGlzLl9nZXRDaGFydERhdGFMb2FkZXIoKS5yZWRyYXcoKX1fdG9nZ2xlRXhwYW5kZWQodCl7dGhpcy5zZXQoIl9leHBhbmRlZCIsIXRoaXMuX2V4cGFuZGVkKSx0aGlzLnJlZHJhdygpfV90b2dnbGVMb2dTY2FsZSgpe3RoaXMuc2V0KCJfbG9nU2NhbGVBY3RpdmUiLCF0aGlzLl9sb2dTY2FsZUFjdGl2ZSl9X3Jlc2V0RG9tYWluKCl7bGV0IHQ9dGhpcy5fZ2V0Q2hhcnREYXRhTG9hZGVyKCk7dCYmdC5yZXNldERvbWFpbigpfV91cGRhdGVEb3dubG9hZExpbmsoKXt2YXIgbjtsZXQgdD10aGlzLl9nZXRDaGFydERhdGFMb2FkZXIoKS5leHBvcnRBc1N2Z1N0cmluZygpLHI9KG49dGhpcy5zaGFkb3dSb290KT09bnVsbD92b2lkIDA6bi5xdWVyeVNlbGVjdG9yKCIjc3ZnTGluayIpO3IuaHJlZj1gZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCwke2J0b2EodCl9YH1fcnVuc0Zyb21EYXRhKHQpe3JldHVybiB0Lm1hcChyPT5yLnJ1bil9X2dldERhdGFTZXJpZXMoKXtyZXR1cm4gdGhpcy5kYXRhVG9Mb2FkLm1hcCh0PT50aGlzLl9nZXRTZXJpZXNOYW1lRnJvbURhdHVtKHQpKX1fZ2V0U2VyaWVzTmFtZUZyb21EYXR1bSh7cnVuOnQsZXhwZXJpbWVudDpyPXtuYW1lOiJfZGVmYXVsdCJ9fSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KFtyLm5hbWUsdF0pfV9nZXRTZXJpZXNEaXNwbGF5TmFtZUZyb21EYXR1bSh0KXtyZXR1cm4gdC5ydW59X2dldENvbG9yU2NhbGUoKXtyZXR1cm4gdGhpcy5jb2xvclNjYWxlIT09bnVsbD90aGlzLmNvbG9yU2NhbGU6e3NjYWxlOnQ9PntsZXRbLHJdPUpTT04ucGFyc2UodCk7cmV0dXJuIGZuKHIpfX19fTtXbi50ZW1wbGF0ZT1RYAogICAgPHRmLWNhcmQtaGVhZGluZwogICAgICB0YWc9IltbdGFnXV0iCiAgICAgIGRpc3BsYXktbmFtZT0iW1t0YWdNZXRhZGF0YS5kaXNwbGF5TmFtZV1dIgogICAgICBkZXNjcmlwdGlvbj0iW1t0YWdNZXRhZGF0YS5kZXNjcmlwdGlvbl1dIgogICAgPjwvdGYtY2FyZC1oZWFkaW5nPgogICAgPGRpdiBpZD0idGYtbGluZS1jaGFydC1kYXRhLWxvYWRlci1jb250YWluZXIiPgogICAgICA8dGYtbGluZS1jaGFydC1kYXRhLWxvYWRlcgogICAgICAgIGFjdGl2ZT0iW1thY3RpdmVdXSIKICAgICAgICBjb2xvci1zY2FsZT0iW1tfZ2V0Q29sb3JTY2FsZShjb2xvclNjYWxlKV1dIgogICAgICAgIGRhdGEtc2VyaWVzPSJbW19nZXREYXRhU2VyaWVzKGRhdGFUb0xvYWQuKildXSIKICAgICAgICBkYXRhLXRvLWxvYWQ9IltbZGF0YVRvTG9hZF1dIgogICAgICAgIGdldC1kYXRhLWxvYWQtbmFtZT0iW1tfZ2V0RGF0YUxvYWROYW1lXV0iCiAgICAgICAgZ2V0LWRhdGEtbG9hZC11cmw9IltbZ2V0RGF0YUxvYWRVcmxdXSIKICAgICAgICByZXF1ZXN0LWRhdGE9IltbcmVxdWVzdERhdGFdXSIKICAgICAgICBpZ25vcmUteS1vdXRsaWVycz0iW1tpZ25vcmVZT3V0bGllcnNdXSIKICAgICAgICBsb2FkLWRhdGEtY2FsbGJhY2s9IltbX2xvYWREYXRhQ2FsbGJhY2tdXSIKICAgICAgICBsb2FkLWtleT0iW1t0YWddXSIKICAgICAgICBsb2ctc2NhbGUtYWN0aXZlPSJbW19sb2dTY2FsZUFjdGl2ZV1dIgogICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tyZXF1ZXN0TWFuYWdlcl1dIgogICAgICAgIHNtb290aGluZy1lbmFibGVkPSJbW3Ntb290aGluZ0VuYWJsZWRdXSIKICAgICAgICBzbW9vdGhpbmctd2VpZ2h0PSJbW3Ntb290aGluZ1dlaWdodF1dIgogICAgICAgIHRhZy1tZXRhZGF0YT0iW1t0YWdNZXRhZGF0YV1dIgogICAgICAgIHRvb2x0aXAtY29sdW1ucz0iW1tfdG9vbHRpcENvbHVtbnNdXSIKICAgICAgICB0b29sdGlwLXBvc2l0aW9uPSJhdXRvIgogICAgICAgIHRvb2x0aXAtc29ydGluZy1tZXRob2Q9IltbdG9vbHRpcFNvcnRpbmdNZXRob2RdXSIKICAgICAgICB4LXR5cGU9IltbeFR5cGVdXSIKICAgICAgPgogICAgICA8L3RmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXI+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9ImJ1dHRvbnMiPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBzZWxlY3RlZCQ9IltbX2V4cGFuZGVkXV0iCiAgICAgICAgaWNvbj0iZnVsbHNjcmVlbiIKICAgICAgICBvbi10YXA9Il90b2dnbGVFeHBhbmRlZCIKICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgIHNlbGVjdGVkJD0iW1tfbG9nU2NhbGVBY3RpdmVdXSIKICAgICAgICBpY29uPSJsaW5lLXdlaWdodCIKICAgICAgICBvbi10YXA9Il90b2dnbGVMb2dTY2FsZSIKICAgICAgICB0aXRsZT0iVG9nZ2xlIHktYXhpcyBsb2cgc2NhbGUiCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBpY29uPSJzZXR0aW5ncy1vdmVyc2NhbiIKICAgICAgICBvbi10YXA9Il9yZXNldERvbWFpbiIKICAgICAgICB0aXRsZT0iRml0IGRvbWFpbiB0byBkYXRhIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3Nob3dEb3dubG9hZExpbmtzXV0iPgogICAgICAgIDxwYXBlci1tZW51LWJ1dHRvbiBvbi1wYXBlci1kcm9wZG93bi1vcGVuPSJfdXBkYXRlRG93bmxvYWRMaW5rIj4KICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24tdHJpZ2dlciIKICAgICAgICAgICAgc2xvdD0iZHJvcGRvd24tdHJpZ2dlciIKICAgICAgICAgICAgaWNvbj0iZmlsZS1kb3dubG9hZCIKICAgICAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICAgICAgPHBhcGVyLWxpc3Rib3ggY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiPgogICAgICAgICAgICA8cGFwZXItaXRlbT4KICAgICAgICAgICAgICA8YSBpZD0ic3ZnTGluayIgZG93bmxvYWQ9IltbdGFnXV0uc3ZnIj4KICAgICAgICAgICAgICAgIERvd25sb2FkIEN1cnJlbnQgQ2hhcnQgYXMgU1ZHCiAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3BhcGVyLWl0ZW0+CiAgICAgICAgICA8L3BhcGVyLWxpc3Rib3g+CiAgICAgICAgPC9wYXBlci1tZW51LWJ1dHRvbj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHNwYW4gc3R5bGU9ImZsZXgtZ3JvdzogMSI+PC9zcGFuPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9Iltbc2hvd0Rvd25sb2FkTGlua3NdXSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZG93bmxvYWQtbGlua3MiPgogICAgICAgICAgPHRmLWRvd25sb2FkZXIKICAgICAgICAgICAgcnVucz0iW1tfcnVuc0Zyb21EYXRhKGRhdGFUb0xvYWQpXV0iCiAgICAgICAgICAgIHRhZz0iW1t0YWddXSIKICAgICAgICAgICAgdXJsLWZuPSJbW19kb3dubG9hZFVybEZuXV0iCiAgICAgICAgICA+PC90Zi1kb3dubG9hZGVyPgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBtYXJnaW46IDVweDsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMzMwcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtfZXhwYW5kZWRdKSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtfZXhwYW5kZWRdKSAjdGYtbGluZS1jaGFydC1kYXRhLWxvYWRlci1jb250YWluZXIgewogICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgIH0KCiAgICAgICN0Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyLWNvbnRhaW5lciB7CiAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgdGYtY2FyZC1oZWFkaW5nIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICB9CgogICAgICAjYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CgogICAgICBwYXBlci1pY29uLWJ1dHRvbiB7CiAgICAgICAgY29sb3I6ICMyMTk2ZjM7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICBwYXBlci1pY29uLWJ1dHRvbltzZWxlY3RlZF0gewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRiLXVpLWxpZ2h0LWFjY2VudCk7CiAgICAgIH0KCiAgICAgIC5kb3dubG9hZC1saW5rcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIH0KCiAgICAgIC5kb3dubG9hZC1saW5rcyBhIHsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIG1hcmdpbjogMnB4OwogICAgICB9CgogICAgICAuZG93bmxvYWQtbGlua3MgcGFwZXItZHJvcGRvd24tbWVudSB7CiAgICAgICAgd2lkdGg6IDEwMHB4OwogICAgICAgIC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWxhYmVsOiB7CiAgICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgfQogICAgICAgIC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0OiB7CiAgICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgfQogICAgICB9CgogICAgICBwYXBlci1tZW51LWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQogICAgICBwYXBlci1pdGVtIGEgewogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CiAgICA8L3N0eWxlPgogIGA7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sV24ucHJvdG90eXBlLCJ0YWciLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLFduLnByb3RvdHlwZSwiZGF0YVRvTG9hZCIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxXbi5wcm90b3R5cGUsInhUeXBlIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sV24ucHJvdG90eXBlLCJhY3RpdmUiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxXbi5wcm90b3R5cGUsImlnbm9yZVlPdXRsaWVycyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixBZSldLFduLnByb3RvdHlwZSwicmVxdWVzdE1hbmFnZXIiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxXbi5wcm90b3R5cGUsInNob3dEb3duTGlua3MiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxXbi5wcm90b3R5cGUsInNtb290aGluZ0VuYWJsZWQiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXJ9KSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sV24ucHJvdG90eXBlLCJzbW9vdGhpbmdXZWlnaHQiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sV24ucHJvdG90eXBlLCJ0YWdNZXRhZGF0YSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxXbi5wcm90b3R5cGUsImNvbG9yU2NhbGUiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sV24ucHJvdG90eXBlLCJ0b29sdGlwU29ydGluZ01ldGhvZCIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxXbi5wcm90b3R5cGUsImJhdGNoU2l6ZSIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sV24ucHJvdG90eXBlLCJpbkNvbGFiIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFduLnByb3RvdHlwZSwiX2xvYWREYXRhQ2FsbGJhY2siLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxXbi5wcm90b3R5cGUsImdldERhdGFMb2FkVXJsIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFduLnByb3RvdHlwZSwiX2Rvd25sb2FkVXJsRm4iLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxXbi5wcm90b3R5cGUsInJlcXVlc3REYXRhIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFduLnByb3RvdHlwZSwiX2dldERhdGFMb2FkTmFtZSIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW4scmVmbGVjdFRvQXR0cmlidXRlOiEwfSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxXbi5wcm90b3R5cGUsIl9leHBhbmRlZCIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFduLnByb3RvdHlwZSwiX2xvZ1NjYWxlQWN0aXZlIix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSxXbi5wcm90b3R5cGUsIl90b29sdGlwQ29sdW1ucyIsdm9pZCAwKTtXbj1FKFt5dCgidGYtc2NhbGFyLWNhcmQiKV0sV24pO3ZhciBVcz1jbGFzcyBleHRlbmRzIGZ1ZShbY1ddLG10KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5zZXNzaW9uR3JvdXA9bnVsbCx0aGlzLl94VHlwZT1UZC5TVEVQLHRoaXMuX25vTXVsdGlFeHBlcmltZW50cz0hMSx0aGlzLl9yZXF1ZXN0RGF0YT0odCxyLG4pPT57UHJvbWlzZS5hbGwodC5tYXAoaT0+e2xldCBvPXtleHBlcmltZW50TmFtZTp0aGlzLmV4cGVyaW1lbnROYW1lLHNlc3Npb25OYW1lOmkucnVuLG1ldHJpY05hbWU6aS50YWd9O3JldHVybiB0aGlzLmJhY2tlbmQubGlzdE1ldHJpY0V2YWxzKG8pLnRoZW4oYT0+dm9pZCByKHtpdGVtOmksZGF0YTphfSkpfSkpLmZpbmFsbHkoKCk9PnZvaWQgbigpKX0sdGhpcy5fY29sb3JTY2FsZT17c2NhbGU6dD0+e2xldCByPUpTT04ucGFyc2UodClbMV0sbj10aGlzLl9pbmRleE9mU2Vzc2lvbi5nZXQociksaT1pUjtyZXR1cm4gaVsodGhpcy5fc2Vzc2lvbkdyb3VwTmFtZUhhc2grbiklaS5sZW5ndGhdfX19Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiaXJvbi1yZXNpemUiLHRoaXMucmVkcmF3LmJpbmQodGhpcykpfXJlZHJhdygpe3ZhciB0Oyh0PXRoaXMuc2hhZG93Um9vdCk9PW51bGx8fHQucXVlcnlTZWxlY3RvckFsbCgidGYtc2NhbGFyLWNhcmQiKS5mb3JFYWNoKHI9PntyLnJlZHJhdygpfSl9X3Nlc3Npb25Hcm91cENoYW5nZWQoKXt2YXIgdDshdGhpcy5zZXNzaW9uR3JvdXB8fE9iamVjdC5rZXlzKHRoaXMuc2Vzc2lvbkdyb3VwKS5sZW5ndGg9PTA/KHRoaXMuX2luZGV4T2ZTZXNzaW9uPW5ldyBNYXAsdGhpcy5fc2Vzc2lvbkdyb3VwTmFtZUhhc2g9MCk6KHRoaXMuX2luZGV4T2ZTZXNzaW9uPW5ldyBNYXAodGhpcy5zZXNzaW9uR3JvdXAuc2Vzc2lvbnMubWFwKChyLG4pPT5bci5uYW1lLG5dKSksdGhpcy5fc2Vzc2lvbkdyb3VwTmFtZUhhc2g9ZGN0KHRoaXMuc2Vzc2lvbkdyb3VwLm5hbWUpKSwodD10aGlzLnNoYWRvd1Jvb3QpPT1udWxsfHx0LnF1ZXJ5U2VsZWN0b3JBbGwoInRmLXNjYWxhci1jYXJkIikuZm9yRWFjaChyPT57bGV0IG49cixpPW4uZ2V0KCJ0YWciKTtuLnNldCgidGFnIiwiIiksbi5zZXQoInRhZyIsaSl9KX1faGF2ZU1ldHJpY3MoKXtyZXR1cm4gdGhpcy52aXNpYmxlU2NoZW1hJiZBcnJheS5pc0FycmF5KHRoaXMudmlzaWJsZVNjaGVtYS5tZXRyaWNJbmZvcykmJnRoaXMudmlzaWJsZVNjaGVtYS5tZXRyaWNJbmZvcy5sZW5ndGg+MH1faGF2ZU1ldHJpY3NBbmRTZXNzaW9uR3JvdXAoKXtyZXR1cm4gdGhpcy5zZXNzaW9uR3JvdXAmJnRoaXMuX2hhdmVNZXRyaWNzKCl9X2NvbXB1dGVTZXJpZXNGb3JTZXNzaW9uR3JvdXBNZXRyaWModCxyKXtyZXR1cm4gdD09PW51bGx8fE9iamVjdC5rZXlzKHQpLmxlbmd0aD09MHx8cj09PW51bGw/W106dC5zZXNzaW9ucy5maWx0ZXIobj0+ZjMobi5tZXRyaWNWYWx1ZXMsci5uYW1lKSE9PXZvaWQgMCkubWFwKG49Pih7dGFnOnIubmFtZSxydW46bi5uYW1lfSkpfV9jb21wdXRlVGFnTWV0YWRhdGEodCl7cmV0dXJue2Rpc3BsYXlOYW1lOlF1KHQpLGRlc2NyaXB0aW9uOnQuZGVzY3JpcHRpb258fCIifX19O1VzLnRlbXBsYXRlPVFgCiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIXNlc3Npb25Hcm91cF1dIj4KICAgICAgPGRpdj4KICAgICAgICA8aDM+Tm8gc2Vzc2lvbiBncm91cCBzZWxlY3RlZDwvaDM+CiAgICAgICAgPHA+UGxlYXNlIHNlbGVjdCBhIHNlc3Npb24gZ3JvdXAgdG8gc2VlIGl0cyBtZXRyaWMtZ3JhcGhzIGhlcmUuPC9wPgogICAgICA8L2Rpdj4KICAgIDwvdGVtcGxhdGU+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9oYXZlTWV0cmljcyh2aXNpYmxlU2NoZW1hLiopXV0iPgogICAgICA8ZGl2PgogICAgICAgIDxoMz5ObyBtZXRyaWNzIGFyZSBlbmFibGVkPC9oMz4KICAgICAgICA8cD5QbGVhc2UgZW5hYmxlIHNvbWUgbWV0cmljcyB0byBzZWUgY29udGVudCBoZXJlLjwvcD4KICAgICAgPC9kaXY+CiAgICA8L3RlbXBsYXRlPgogICAgPGRpdiBjbGFzcz0ibGF5b3V0IGhvcml6b250YWwgd3JhcCBzZXNzaW9uLWdyb3VwLWRldGFpbHMiPgogICAgICA8dGVtcGxhdGUKICAgICAgICBpcz0iZG9tLWlmIgogICAgICAgIGlmPSJbW19oYXZlTWV0cmljc0FuZFNlc3Npb25Hcm91cCh2aXNpYmxlU2NoZW1hLiosIHNlc3Npb25Hcm91cCldXSIKICAgICAgPgogICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICBpdGVtcz0iW1t2aXNpYmxlU2NoZW1hLm1ldHJpY0luZm9zXV0iCiAgICAgICAgICBhcz0ibWV0cmljSW5mbyIKICAgICAgICA+CiAgICAgICAgICA8IS0tIE5vdGUgdGhhdCB3ZSBkbyBub3QgcHJvdmlkZSBhIHJlcXVlc3QtbWFuYWdlciBhdHRyaWJ1dGUgc2luY2UKICAgICAgICAgICAgICAgd2UgcHJvdmlkZSBhIGZ1bmN0aW9uIGluIHJlcXVlc3QtZGF0YSBmb3IgY2FsbGluZyB0aGUgYmFja2VuZAogICAgICAgICAgICAgICB0byBnZXQgdGhlIG1ldHJpY3MgZGF0YS4KICAgICAgICAgICAgLS0+CiAgICAgICAgICA8dGYtc2NhbGFyLWNhcmQKICAgICAgICAgICAgY2xhc3M9InNjYWxhci1jYXJkIgogICAgICAgICAgICBjb2xvci1zY2FsZT0iW1tfY29sb3JTY2FsZV1dIgogICAgICAgICAgICBkYXRhLXRvLWxvYWQ9IltbX2NvbXB1dGVTZXJpZXNGb3JTZXNzaW9uR3JvdXBNZXRyaWMoc2Vzc2lvbkdyb3VwLCBtZXRyaWNJbmZvKV1dIgogICAgICAgICAgICB0YWc9IltbbWV0cmljSW5mby5uYW1lLnRhZ11dIgogICAgICAgICAgICB0YWctbWV0YWRhdGE9IltbX2NvbXB1dGVUYWdNZXRhZGF0YShtZXRyaWNJbmZvKV1dIgogICAgICAgICAgICB4LXR5cGU9IltbX3hUeXBlXV0iCiAgICAgICAgICAgIG11bHRpLWV4cGVyaW1lbnRzPSJbW19ub011bHRpRXhwZXJpbWVudHNdXSIKICAgICAgICAgICAgcmVxdWVzdC1kYXRhPSJbW19yZXF1ZXN0RGF0YV1dIgogICAgICAgICAgICBhY3RpdmUKICAgICAgICAgID4KICAgICAgICAgIDwvdGYtc2NhbGFyLWNhcmQ+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvZGl2PgogICAgPCEtLSAiaXJvbi1mbGV4IiBpcyBuZWVkZWQgdG8gdXNlIHRoZSBsYXlvdXQgY2xhc3NlcyBpbiB0aGUgZGl2IGFib3ZlIC0tPgogICAgPHN0eWxlIGluY2x1ZGU9Imlyb24tZmxleCI+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFVzLnByb3RvdHlwZSwiYmFja2VuZCIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxVcy5wcm90b3R5cGUsImV4cGVyaW1lbnROYW1lIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFVzLnByb3RvdHlwZSwidmlzaWJsZVNjaGVtYSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxVcy5wcm90b3R5cGUsInNlc3Npb25Hcm91cCIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxVcy5wcm90b3R5cGUsIl94VHlwZSIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFVzLnByb3RvdHlwZSwiX25vTXVsdGlFeHBlcmltZW50cyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxVcy5wcm90b3R5cGUsIl9pbmRleE9mU2Vzc2lvbiIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxVcy5wcm90b3R5cGUsIl9zZXNzaW9uR3JvdXBOYW1lSGFzaCIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLFVzLnByb3RvdHlwZSwiX3JlcXVlc3REYXRhIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFVzLnByb3RvdHlwZSwiX2NvbG9yU2NhbGUiLHZvaWQgMCk7RShbQnQoInNlc3Npb25Hcm91cC4qIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxVcy5wcm90b3R5cGUsIl9zZXNzaW9uR3JvdXBDaGFuZ2VkIixudWxsKTtVcz1FKFt5dCgidGYtaHBhcmFtcy1zZXNzaW9uLWdyb3VwLWRldGFpbHMiKV0sVXMpO3ZhciBWZD1jbGFzcyBleHRlbmRzIEd0KF9vKG10KSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2hwYXJhbU5hbWU9QmQsdGhpcy5fbWV0cmljTmFtZT1RdX1fdmlzaWJsZVNjaGVtYU9yU2Vzc2lvbkdyb3Vwc0NoYW5nZWQoKXtsZXQgdD10aGlzLiQuc2Vzc2lvbkdyb3Vwc1RhYmxlLmdldCgiZGV0YWlsc09wZW5lZEl0ZW1zIik7dGhpcy4kLnNlc3Npb25Hcm91cHNUYWJsZS5zZXQoImRldGFpbHNPcGVuZWRJdGVtcyIsW10pLGNpKCk7bGV0IHI9bmV3IE1hcDt0aGlzLnNlc3Npb25Hcm91cHMuZm9yRWFjaChuPT57ci5zZXQobi5uYW1lLG4pfSksdGhpcy4kLnNlc3Npb25Hcm91cHNUYWJsZS5zZXQoImRldGFpbHNPcGVuZWRJdGVtcyIsdC5tYXAobj0+ci5nZXQobi5uYW1lKSkuZmlsdGVyKEJvb2xlYW4pKX1fc2Vzc2lvbkdyb3VwSFBhcmFtKHQscil7cmV0dXJuIHQ9PW51bGx8fE9iamVjdC5rZXlzKHQpLmxlbmd0aD09MHx8IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LmhwYXJhbXMscik/IiI6dzAodC5ocGFyYW1zW3JdKX1fc2Vzc2lvbkdyb3VwTWV0cmljKHQscil7aWYodD09bnVsbHx8T2JqZWN0LmtleXModCkubGVuZ3RoPT0wKXJldHVybiIiO2ZvcihsZXQgbj0wO248dC5tZXRyaWNWYWx1ZXMubGVuZ3RoOysrbil7bGV0IGk9dC5tZXRyaWNWYWx1ZXNbbl07aWYoaS5uYW1lLmdyb3VwPT09ci5ncm91cCYmaS5uYW1lLnRhZz09ci50YWcpcmV0dXJuIHcwKGkudmFsdWUpfXJldHVybiIifV9yb3dOdW1iZXIodCl7cmV0dXJuIHQrMX19O1ZkLnRlbXBsYXRlPVFgCiAgICA8dmFhZGluLWdyaWQKICAgICAgY2xhc3M9InNlc3Npb24tZ3JvdXAtdGFibGUiCiAgICAgIGlkPSJzZXNzaW9uR3JvdXBzVGFibGUiCiAgICAgIGNvbHVtbi1yZW9yZGVyaW5nLWFsbG93ZWQ9IiIKICAgICAgaXRlbXM9Iltbc2Vzc2lvbkdyb3Vwc11dIgogICAgPgogICAgICA8dmFhZGluLWdyaWQtY29sdW1uIGZsZXgtZ3Jvdz0iMCIgd2lkdGg9IjEwZW0iIHJlc2l6YWJsZT0iIj4KICAgICAgICA8dGVtcGxhdGUgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1oZWFkZXIgdGFibGUtY2VsbCI+VHJpYWwgSUQ8L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWNlbGwiPltbaXRlbS5uYW1lXV08L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L3ZhYWRpbi1ncmlkLWNvbHVtbj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2VuYWJsZVNob3dNZXRyaWNzXV0iPgogICAgICAgIDx2YWFkaW4tZ3JpZC1jb2x1bW4gZmxleC1ncm93PSIwIiBhdXRvV2lkdGg9IiIgcmVzaXphYmxlPSIiPgogICAgICAgICAgPHRlbXBsYXRlIGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1oZWFkZXIgdGFibGUtY2VsbCI+U2hvdyBNZXRyaWNzPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICA8cGFwZXItY2hlY2tib3ggY2xhc3M9InRhYmxlLWNlbGwiIGNoZWNrZWQ9Int7ZGV0YWlsc09wZW5lZH19Ij4KICAgICAgICAgICAgPC9wYXBlci1jaGVja2JveD4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC92YWFkaW4tZ3JpZC1jb2x1bW4+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDx0ZW1wbGF0ZQogICAgICAgIGlzPSJkb20tcmVwZWF0IgogICAgICAgIGl0ZW1zPSJbW3Zpc2libGVTY2hlbWEuaHBhcmFtSW5mb3NdXSIKICAgICAgICBhcz0iaHBhcmFtSW5mbyIKICAgICAgICBpbmRleC1hcz0iaHBhcmFtSW5kZXgiCiAgICAgID4KICAgICAgICA8dmFhZGluLWdyaWQtY29sdW1uIGZsZXgtZ3Jvdz0iMiIgd2lkdGg9IjEwZW0iIHJlc2l6YWJsZT0iIj4KICAgICAgICAgIDx0ZW1wbGF0ZSBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIHRhYmxlLWNlbGwiPgogICAgICAgICAgICAgIFtbX2hwYXJhbU5hbWUoaHBhcmFtSW5mbyldXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWNlbGwiPgogICAgICAgICAgICAgIFtbX3Nlc3Npb25Hcm91cEhQYXJhbShpdGVtLCBocGFyYW1JbmZvLm5hbWUpXV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvdmFhZGluLWdyaWQtY29sdW1uPgogICAgICA8L3RlbXBsYXRlPgogICAgICA8dGVtcGxhdGUKICAgICAgICBpcz0iZG9tLXJlcGVhdCIKICAgICAgICBpdGVtcz0ie3t2aXNpYmxlU2NoZW1hLm1ldHJpY0luZm9zfX0iCiAgICAgICAgYXM9Im1ldHJpY0luZm8iCiAgICAgICAgaW5kZXgtYXM9Im1ldHJpY0luZGV4IgogICAgICA+CiAgICAgICAgPHZhYWRpbi1ncmlkLWNvbHVtbiBmbGV4LWdyb3c9IjIiIHdpZHRoPSIxMGVtIiByZXNpemFibGU9IiI+CiAgICAgICAgICA8dGVtcGxhdGUgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciB0YWJsZS1jZWxsIj4KICAgICAgICAgICAgICBbW19tZXRyaWNOYW1lKG1ldHJpY0luZm8pXV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1jZWxsIj4KICAgICAgICAgICAgICBbW19zZXNzaW9uR3JvdXBNZXRyaWMoaXRlbSwgbWV0cmljSW5mby5uYW1lKV1dCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3ZhYWRpbi1ncmlkLWNvbHVtbj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHRlbXBsYXRlIGNsYXNzPSJyb3ctZGV0YWlscyI+CiAgICAgICAgPHRmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC1kZXRhaWxzCiAgICAgICAgICBiYWNrZW5kPSJbW2JhY2tlbmRdXSIKICAgICAgICAgIGV4cGVyaW1lbnQtbmFtZT0iW1tleHBlcmltZW50TmFtZV1dIgogICAgICAgICAgc2Vzc2lvbi1ncm91cD0iW1tpdGVtXV0iCiAgICAgICAgICB2aXNpYmxlLXNjaGVtYT0iW1t2aXNpYmxlU2NoZW1hXV0iCiAgICAgICAgICBjbGFzcz0ic2Vzc2lvbi1ncm91cC1kZXRhaWxzIgogICAgICAgID4KICAgICAgICA8L3RmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC1kZXRhaWxzPgogICAgICA8L3RlbXBsYXRlPgogICAgPC92YWFkaW4tZ3JpZD4KCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KC5kYXJrLW1vZGUpIHsKICAgICAgICAtLWx1bW8tYmFzZS1jb2xvcjogIzMwMzAzMDsKICAgICAgICAtLWx1bW8tYm9keS10ZXh0LWNvbG9yOiAjZmZmOwogICAgICB9CgogICAgICA6aG9zdCguZGFyay1tb2RlKSB2YWFkaW4tZ3JpZCB7CiAgICAgICAgLS1fbHVtby1ncmlkLXNlY29uZGFyeS1ib3JkZXItY29sb3I6ICM1MDUwNTA7CiAgICAgIH0KCiAgICAgIC50YWJsZS1jZWxsIHsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KICAgICAgLnRhYmxlLWhlYWRlciB7CiAgICAgICAgLyogbGluZS1icmVhayBvdmVyZmxvd2luZyBjb2x1bW4gaGVhZGVycyAqLwogICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7CiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKICAgICAgfQogICAgICAuc2Vzc2lvbi1ncm91cC10YWJsZSB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICAgIC5zZXNzaW9uLWdyb3VwLWRldGFpbHMgewogICAgICAgIGhlaWdodDogMzYwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFZkLnByb3RvdHlwZSwidmlzaWJsZVNjaGVtYSIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sVmQucHJvdG90eXBlLCJzZXNzaW9uR3JvdXBzIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sVmQucHJvdG90eXBlLCJlbmFibGVTaG93TWV0cmljcyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxWZC5wcm90b3R5cGUsImJhY2tlbmQiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sVmQucHJvdG90eXBlLCJleHBlcmltZW50TmFtZSIsdm9pZCAwKTtFKFtCdCgidmlzaWJsZVNjaGVtYS4qIiwic2Vzc2lvbkdyb3Vwcy4qIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxWZC5wcm90b3R5cGUsIl92aXNpYmxlU2NoZW1hT3JTZXNzaW9uR3JvdXBzQ2hhbmdlZCIsbnVsbCk7VmQ9RShbeXQoInRmLWhwYXJhbXMtdGFibGUtdmlldyIpXSxWZCk7dmFyIENQPWNsYXNzIGV4dGVuZHMgbXR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc2Vzc2lvbkdyb3VwPW51bGwsdGhpcy52aXNpYmxlU2NoZW1hPW51bGx9X3Byb3BlcnRpZXNBcmVQb3B1bGF0ZWQodCxyKXtyZXR1cm4gdCE9bnVsbCYmciE9PXZvaWQgMCYmciE9PW51bGx9X3NpbmdsZXRvblNlc3Npb25Hcm91cHModCl7cmV0dXJuIHQ9PW51bGw/W106W3RdfX07Q1AudGVtcGxhdGU9UWAKICAgIDwhLS0gSWYgc2Vzc2lvbkdyb3VwIG9yIHZpc2libGVTY2hlbWEgYXJlIG5vdCBwb3B1bGF0ZWQsIGRvIG5vdCBkaXNwbGF5CiAgICAgICAgIGFueXRoaW5nLgogICAgICAtLT4KICAgIDx0ZW1wbGF0ZQogICAgICBpcz0iZG9tLWlmIgogICAgICBpZj0iW1tfcHJvcGVydGllc0FyZVBvcHVsYXRlZCh2aXNpYmxlU2NoZW1hLCBzZXNzaW9uR3JvdXApXV0iCiAgICA+CiAgICAgIDwhLS0gRGlzcGxheSBvbmUgcm93IHdpdGhvdXQgYSAic2hvdy1tZXRyaWNzIiBjb2x1bW4gLS0+CiAgICAgIDx0Zi1ocGFyYW1zLXRhYmxlLXZpZXcKICAgICAgICB2aXNpYmxlLXNjaGVtYT0iW1t2aXNpYmxlU2NoZW1hXV0iCiAgICAgICAgc2Vzc2lvbi1ncm91cHM9IltbX3NpbmdsZXRvblNlc3Npb25Hcm91cHMoc2Vzc2lvbkdyb3VwKV1dIgogICAgICA+CiAgICAgIDwvdGYtaHBhcmFtcy10YWJsZS12aWV3PgogICAgPC90ZW1wbGF0ZT4KICAgIDx0ZW1wbGF0ZQogICAgICBpcz0iZG9tLWlmIgogICAgICBpZj0iW1shX3Byb3BlcnRpZXNBcmVQb3B1bGF0ZWQodmlzaWJsZVNjaGVtYSwgc2Vzc2lvbkdyb3VwKV1dIgogICAgPgogICAgICA8ZGl2PkNsaWNrIG9yIGhvdmVyIG92ZXIgYSBzZXNzaW9uIGdyb3VwIHRvIGRpc3BsYXkgaXRzIHZhbHVlcyBoZXJlLjwvZGl2PgogICAgPC90ZW1wbGF0ZT4KCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLENQLnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLENQLnByb3RvdHlwZSwidmlzaWJsZVNjaGVtYSIsdm9pZCAwKTtDUD1FKFt5dCgidGYtaHBhcmFtcy1zZXNzaW9uLWdyb3VwLXZhbHVlcyIpXSxDUCk7dmFyIEFQPUVlKE9lKCksMSk7ZnVuY3Rpb24gcHVlKGUsdCxyLG4pe2lmKHQubGVuZ3RoPDIpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIkxlc3MgdGhhbiB0d28gYXhlcyBpbiBwYXJhbGxlbCBjb29yZGluYXRlcyBwbG90LiIpLG51bGw7bGV0IGk9clswXSxvPXJbMV07aWYoaTw9dFswXXx8aT49dFt0Lmxlbmd0aC0xXSlyZXR1cm4gbnVsbDtsZXQgYT1BUC5zb3J0ZWRJbmRleCh0LGkpO2NvbnNvbGUuYXNzZXJ0KGE+MCksY29uc29sZS5hc3NlcnQoYTx0Lmxlbmd0aCk7bGV0IHM9YS0xO2Z1bmN0aW9uIGwoaCxmLHAsZCl7bGV0IGc9aC1wLF89Zi1kLHk9aS1wLHg9by1kLGI9KGcqeStfKngpLyhnKmcrXypfKTtpZihiPD0wKXJldHVybiBwMyh5LHgpO2lmKGI+PTEpe2xldCBTPWgtaSxDPWYtbztyZXR1cm4gcDMoUyxDKX1yZXR1cm4gcDMoeS1iKmcseC1iKl8pfWxldCBjPW51bGwsdT1udWxsO3JldHVybiBlLmZvckVhY2goaD0+e2xldCBmPWwoaC5jb250cm9sUG9pbnRzW3NdWzBdLGguY29udHJvbFBvaW50c1tzXVsxXSxoLmNvbnRyb2xQb2ludHNbYV1bMF0saC5jb250cm9sUG9pbnRzW2FdWzFdKTtmPm58fChjPT09bnVsbHx8ZjxjKSYmKGM9Zix1PWgpfSksdX1mdW5jdGlvbiBkdWUoZSx0LHIpe3JldHVybiBlLmRvbWFpbigpLmZpbHRlcihuPT57bGV0IGk9ZShuKTtyZXR1cm4gdDw9aSYmaTw9cn0pfWZ1bmN0aW9uIG11ZShlLHQscil7bGV0IG49ZS5yYW5nZSgpLGk9bi5maWx0ZXIobz0+dDw9byYmbzw9cikubWFwKG89PntsZXQgYT1lLmludmVydEV4dGVudChvKTtyZXR1cm4gbz09PW5bbi5sZW5ndGgtMV0/W2FbMF0sYVsxXSsxXTphfSk7cmV0dXJuIGkubGVuZ3RoPT0wP1swLDBdOnNhKExtKGkpKX1mdW5jdGlvbiBndWUoZSx0LHIpe3JldHVybltlLmludmVydCh0KSxlLmludmVydChyKV0uc29ydCgobixpKT0+bi1pKX1mdW5jdGlvbiBGY3QoZSx0LHIpe2Z1bmN0aW9uIG4oKXtpZihlLmxlbmd0aD09PTApcmV0dXJuWzEsMl07bGV0W2ksb109c2EoZSk7cmV0dXJuIGkhPT1vP1tpLG9dOmk+MD9baSouNSxpKjEuNV06aTwwP1tpKjEuNSxpKi41XTpbLTEsMV19aWYocj09PSJMSU5FQVIiKXJldHVybiB6bigpLmRvbWFpbihuKCkpLnJhbmdlKFt0LDBdKTtpZihyPT09IkxPRyIpe2xldCBpPW4oKTtyZXR1cm4gaVswXTw9MCYmaVsxXT49MD9GY3QoZSx0LCJMSU5FQVIiKTpjYygpLmRvbWFpbihpKS5yYW5nZShbdCwwXSl9ZWxzZSBpZihyPT09IlFVQU5USUxFIil7bGV0IG89SXIoMjApLm1hcChhPT50LWEqdC8xOSk7cmV0dXJuIGUubGVuZ3RoPT09MCYmKGU9WzFdKSxyZygpLmRvbWFpbihBUC51bmlxKGUpKS5yYW5nZShvKX1lbHNle2lmKHI9PT0iTk9OX05VTUVSSUMiKXJldHVybiBlZygpLmRvbWFpbihBUC51bmlxKGUuc29ydCgpKSkucmFuZ2UoW3QsMF0pLnBhZGRpbmcoLjEpO3Rocm93IFJhbmdlRXJyb3IoIlVua25vd24gc2NhbGU6ICIrcil9fXZhciBoMTsoZnVuY3Rpb24oZSl7ZS5MSU5FQVI9IkxJTkVBUiIsZS5MT0c9IkxPRyIsZS5RVUFOVElMRT0iUVVBTlRJTEUiLGUuTk9OX05VTUVSSUM9Ik5PTl9OVU1FUklDIn0pKGgxfHwoaDE9e30pKTt2YXIgUFA9Y2xhc3N7aXNQYXNzaW5nKHQpe3JldHVybiEwfX0sblY9Y2xhc3N7Y29uc3RydWN0b3IodCxyLG4saSl7dGhpcy5fbG93ZXI9dCx0aGlzLl91cHBlcj1yLHRoaXMuX2xvd2VyT3Blbj1uLHRoaXMuX3VwcGVyT3Blbj1pfWlzUGFzc2luZyh0KXtsZXQgcj10O3JldHVybiB0aGlzLl9iZWZvcmUodGhpcy5fbG93ZXIsciwhdGhpcy5fbG93ZXJPcGVuKSYmdGhpcy5fYmVmb3JlKHIsdGhpcy5fdXBwZXIsIXRoaXMuX3VwcGVyT3Blbil9X2JlZm9yZSh0LHIsbil7cmV0dXJuIG4/dDw9cjp0PHJ9fSxIY3Q9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5fZG9tYWluU2V0PXR9aXNQYXNzaW5nKHQpe3JldHVybiB0aGlzLl9kb21haW5TZXQuZmluZEluZGV4KHI9PnI9PT10KSE9PS0xfX0sVmN0PWNsYXNze2NvbnN0cnVjdG9yKHQscixuLGkpe3RoaXMuX3N2Z1Byb3BzPXQsdGhpcy5fc2NoZW1hPXIsdGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyPW4sdGhpcy5fY29sSW5kZXg9aSx0aGlzLl9pc0Rpc3BsYXllZD0hMSx0aGlzLl95U2NhbGU9bnVsbCx0aGlzLl9zY2FsZVR5cGU9bnVsbCx0aGlzLnNldEJydXNoU2VsZWN0aW9uKG51bGwpfWNvbEluZGV4KCl7cmV0dXJuIHRoaXMuX2NvbEluZGV4fXlTY2FsZSgpe3JldHVybiB0aGlzLl95U2NhbGV9c2NhbGVUeXBlKCl7cmV0dXJuIHRoaXMuX3NjYWxlVHlwZX1icnVzaFNlbGVjdGlvbigpe3JldHVybiB0aGlzLl9icnVzaFNlbGVjdGlvbn1pc0Rpc3BsYXllZCgpe3JldHVybiB0aGlzLl9pc0Rpc3BsYXllZH1zZXRCcnVzaFNlbGVjdGlvbih0KXt0aGlzLl9icnVzaFNlbGVjdGlvbj10LHRoaXMuX2JydXNoRmlsdGVyPXRoaXMuX2J1aWxkQnJ1c2hGaWx0ZXIodGhpcy5icnVzaFNlbGVjdGlvbigpLHRoaXMuc2NhbGVUeXBlKCksdGhpcy55U2NhbGUoKSl9c2V0RG9tYWluQW5kU2NhbGUodCxyKXt0aGlzLl9zY2FsZVR5cGU9cix0aGlzLl95U2NhbGU9RmN0KHQuc2xpY2UoKSx0aGlzLl9zdmdQcm9wcy5oZWlnaHQsdGhpcy5zY2FsZVR5cGUoKSksdGhpcy5fYnJ1c2hGaWx0ZXI9dGhpcy5fYnVpbGRCcnVzaEZpbHRlcih0aGlzLmJydXNoU2VsZWN0aW9uKCksdGhpcy5zY2FsZVR5cGUoKSx0aGlzLnlTY2FsZSgpKX1icnVzaEZpbHRlcigpe3JldHVybiB0aGlzLl9icnVzaEZpbHRlcn11cGRhdGVET00odCl7bGV0IHI9bGIodGhpcy55U2NhbGUoKSk7dGhpcy5zY2FsZVR5cGUoKT09PWgxLlFVQU5USUxFJiYocj1yLnRpY2tWYWx1ZXModGhpcy55U2NhbGUoKS5xdWFudGlsZXMoKSkudGlja0Zvcm1hdCh4bigiLS42ZyIpKSk7bGV0IG49SHQodCk7bi5zZWxlY3RBbGwoImciKS5yZW1vdmUoKSxuLmFwcGVuZCgiZyIpLmNsYXNzZWQoImF4aXMiLCEwKS5jYWxsKHIpLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoImF4aXMtdGl0bGUiLCEwKS5zdHlsZSgiY3Vyc29yIiwibW92ZSIpLnN0eWxlKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLmF0dHIoInkiLC05KS50ZXh0KGE9PmNjdCh0aGlzLl9zY2hlbWEsYSkpLG4uY2FsbChwYigpLm9uKCJzdGFydCIsKCk9Pnt0LnNldEF0dHJpYnV0ZSgiaXMtZHJhZ2dpbmciLCIiKSx0aGlzLl9pbnRlcmFjdGlvbk1hbmFnZXIub25EcmFnU3RhcnQodGhpcy5jb2xJbmRleCgpKX0pLm9uKCJkcmFnIiwoKT0+dGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyLm9uRHJhZyhxdC54KSkub24oImVuZCIsKCk9Pnt0aGlzLl9pbnRlcmFjdGlvbk1hbmFnZXIub25EcmFnRW5kKCksdC5yZW1vdmVBdHRyaWJ1dGUoImlzLWRyYWdnaW5nIil9KSk7bGV0IGk9cUwoKS5leHRlbnQoW1stOCwwXSxbOCx0aGlzLl9zdmdQcm9wcy5oZWlnaHQrMV1dKS5vbigic3RhcnQiLCgpPT57IUJjdChxdCl8fCh0LnNldEF0dHJpYnV0ZSgiaXMtYnJ1c2hpbmciLCIiKSx0aGlzLl9pbnRlcmFjdGlvbk1hbmFnZXIub25CcnVzaENoYW5nZWQodGhpcy5jb2xJbmRleCgpLHF0LnNlbGVjdGlvbikpfSkub24oImJydXNoIiwoKT0+eyFCY3QocXQpfHx0aGlzLl9pbnRlcmFjdGlvbk1hbmFnZXIub25CcnVzaENoYW5nZWQodGhpcy5jb2xJbmRleCgpLHF0LnNlbGVjdGlvbil9KS5vbigiZW5kIiwoKT0+eyFCY3QocXQpfHwodGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyLm9uQnJ1c2hDaGFuZ2VkKHRoaXMuY29sSW5kZXgoKSxxdC5zZWxlY3Rpb24pLHQucmVtb3ZlQXR0cmlidXRlKCJpcy1icnVzaGluZyIpKX0pLG89SHQodCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiYnJ1c2giLCEwKTtvLmNhbGwoaSksaS5tb3ZlKG8sdGhpcy5icnVzaFNlbGVjdGlvbigpKX1zZXREaXNwbGF5ZWQodCl7dGhpcy5faXNEaXNwbGF5ZWQ9dH1fYnVpbGRCcnVzaEZpbHRlcih0LHIsbil7aWYodD09PW51bGwpcmV0dXJuIG5ldyBQUDtpZihyPT09bnVsbClyZXR1cm4gY29uc29sZS5lcnJvcigiU2NhbGUgdHlwZSBpcyBudWxsLCBidXQgYnJ1c2hTZWxlY3Rpb24gaXNuJ3Q6ICIsdCksbmV3IFBQO3N3aXRjaChyKXtjYXNlIGgxLkxJTkVBUjpjYXNlIGgxLkxPRzp7bGV0W2ksb109Z3VlKG4sdFswXSx0WzFdKTtyZXR1cm4gbmV3IG5WKGksbywhMSwhMSl9Y2FzZSBoMS5RVUFOVElMRTp7bGV0W2ksb109bXVlKG4sdFswXSx0WzFdKTtyZXR1cm4gbmV3IG5WKGksbywhMSwhMCl9Y2FzZSBoMS5OT05fTlVNRVJJQzpyZXR1cm4gbmV3IEhjdChkdWUobix0WzBdLHRbMV0pKX1yZXR1cm4gY29uc29sZS5lcnJvcigiVW5rbm93biBzY2FsZSB0eXBlOiAiLHIpLG5ldyBQUH19LGlWPWNsYXNze2NvbnN0cnVjdG9yKHQscixuKXt0aGlzLl9zdmdQcm9wcz10LHRoaXMuX3NjaGVtYT1yLHRoaXMuX2F4ZXM9dGhpcy5fY3JlYXRlQXhlcyhuKSx0aGlzLl9zdGF0aW9uYXJ5QXhlc1Bvc2l0aW9ucz1lZygpLnJhbmdlKFsxLHRoaXMuX3N2Z1Byb3BzLndpZHRoLTFdKS5wYWRkaW5nKC41KSx0aGlzLl9kcmFnZ2VkQXhpcz1udWxsLHRoaXMuX3N2Z1Byb3BzLnN2Z0cuc2VsZWN0QWxsKCJnLmF4aXMtcGFyZW50IikucmVtb3ZlKCksdGhpcy5fcGFyZW50c1NlbD10aGlzLl9zdmdQcm9wcy5zdmdHLnNlbGVjdEFsbCgiLmF4aXMtcGFyZW50Iil9dXBkYXRlQXhlcyh0LHIpe2NvbnNvbGUuYXNzZXJ0KCF0aGlzLmlzQXhpc0RyYWdnaW5nKCkpO2xldCBuPW5ldyBTZXQ7dC5jb2x1bW5zLmZvckVhY2gobz0+e2xldCBhPW8uYWJzb2x1dGVJbmRleCxzPXRoaXMuX2F4ZXNbYV07cy5zZXREaXNwbGF5ZWQoITApO2xldCBsPXIubWFwKGM9PmIwKHRoaXMuX3NjaGVtYSxjLGEpKTtzLnNldERvbWFpbkFuZFNjYWxlKGwsby5zY2FsZSksbi5hZGQoYSl9KSx0aGlzLl9heGVzLmZvckVhY2gobz0+e24uaGFzKG8uY29sSW5kZXgoKSl8fG8uc2V0RGlzcGxheWVkKCExKX0pLHRoaXMuX3VwZGF0ZVN0YXRpb25hcnlBeGVzUG9zaXRpb25zKG4pLHRoaXMuX3BhcmVudHNTZWw9dGhpcy5fcGFyZW50c1NlbC5kYXRhKEFycmF5LmZyb20obiksbz0+byksdGhpcy5fcGFyZW50c1NlbC5leGl0KCkucmVtb3ZlKCksdGhpcy5fcGFyZW50c1NlbD10aGlzLl9wYXJlbnRzU2VsLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiYXhpcy1wYXJlbnQiLCEwKS5tZXJnZSh0aGlzLl9wYXJlbnRzU2VsKTtsZXQgaT10aGlzO3RoaXMuX3BhcmVudHNTZWwuY2FsbChvPT50aGlzLl91cGRhdGVBeGVzUG9zaXRpb25zSW5ET00obykpLmVhY2goZnVuY3Rpb24obyl7aS5fYXhlc1tvXS51cGRhdGVET00odGhpcyl9KX1tYXBWaXNpYmxlQXhlcyh0KXtyZXR1cm4gdGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnMuZG9tYWluKCkubWFwKHI9PnQodGhpcy5nZXRBeGlzUG9zaXRpb24ociksdGhpcy5fYXhlc1tyXSkpfWFsbFZpc2libGVBeGVzU2F0aXNmeSh0KXtyZXR1cm4gdGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnMuZG9tYWluKCkuZXZlcnkocj0+dCh0aGlzLmdldEF4aXNQb3NpdGlvbihyKSx0aGlzLl9heGVzW3JdKSl9Z2V0QXhpc0ZvckNvbEluZGV4KHQpe3JldHVybiB0aGlzLl9heGVzW3RdfWRyYWdTdGFydCh0KXtjb25zb2xlLmFzc2VydCghdGhpcy5pc0F4aXNEcmFnZ2luZygpKSxjb25zb2xlLmFzc2VydCh0aGlzLl9heGVzW3RdLmlzRGlzcGxheWVkKCkpLHRoaXMuX2RyYWdnZWRBeGlzPXRoaXMuX2F4ZXNbdF0sdGhpcy5fZHJhZ2dlZEF4aXNQb3NpdGlvbj10aGlzLl9zdGF0aW9uYXJ5QXhlc1Bvc2l0aW9ucyh0KX1kcmFnKHQpe3Q9TWF0aC5taW4oTWF0aC5tYXgodCwwKSx0aGlzLl9zdmdQcm9wcy53aWR0aCksdGhpcy5fZHJhZ2dlZEF4aXNQb3NpdGlvbj10O2xldCByPXRoaXMuX3N0YXRpb25hcnlBeGVzUG9zaXRpb25zLmRvbWFpbigpO3Iuc29ydCgobixpKT0+dGhpcy5nZXRBeGlzUG9zaXRpb24obiktdGhpcy5nZXRBeGlzUG9zaXRpb24oaSkpLHRoaXMuX3N0YXRpb25hcnlBeGVzUG9zaXRpb25zLmRvbWFpbihyKSx0aGlzLl91cGRhdGVBeGVzUG9zaXRpb25zSW5ET00odGhpcy5fcGFyZW50c1NlbCl9ZHJhZ0VuZCh0KXtjb25zb2xlLmFzc2VydCh0aGlzLmlzQXhpc0RyYWdnaW5nKCkpLHRoaXMuX2RyYWdnZWRBeGlzUG9zaXRpb249bnVsbCx0aGlzLl9kcmFnZ2VkQXhpcz1udWxsLHRoaXMuX3VwZGF0ZUF4ZXNQb3NpdGlvbnNJbkRPTSh0aGlzLl9wYXJlbnRzU2VsLnRyYW5zaXRpb24oKS5kdXJhdGlvbih0KSl9aXNBeGlzRHJhZ2dpbmcoKXtyZXR1cm4gdGhpcy5fZHJhZ2dlZEF4aXMhPT1udWxsfWdldEF4aXNQb3NpdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ2dlZEF4aXMhPT1udWxsJiZ0aGlzLl9kcmFnZ2VkQXhpcy5jb2xJbmRleCgpPT09dD90aGlzLl9kcmFnZ2VkQXhpc1Bvc2l0aW9uOnRoaXMuX3N0YXRpb25hcnlBeGVzUG9zaXRpb25zKHQpfV91cGRhdGVTdGF0aW9uYXJ5QXhlc1Bvc2l0aW9ucyh0KXtsZXQgcj10aGlzLl9zdGF0aW9uYXJ5QXhlc1Bvc2l0aW9ucy5kb21haW4oKS5maWx0ZXIoaT0+dC5oYXMoaSkpLG49QXJyYXkuZnJvbShuZXcgU2V0KFsuLi5yLC4uLkFycmF5LmZyb20odCldKSk7dGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnMuZG9tYWluKG4pfV91cGRhdGVBeGVzUG9zaXRpb25zSW5ET00odCl7dC5hdHRyKCJ0cmFuc2Zvcm0iLHI9PnlQKHRoaXMuZ2V0QXhpc1Bvc2l0aW9uKHIpKSl9X2NyZWF0ZUF4ZXModCl7cmV0dXJuIElyKHVjdCh0aGlzLl9zY2hlbWEpKS5tYXAocj0+bmV3IFZjdCh0aGlzLl9zdmdQcm9wcyx0aGlzLl9zY2hlbWEsdCxyKSl9fTtmdW5jdGlvbiBCY3QoZSl7cmV0dXJuIGUuc291cmNlRXZlbnQhPT1udWxsfXZhciBYZjsoZnVuY3Rpb24oZSl7ZVtlLkZPUkVHUk9VTkQ9MF09IkZPUkVHUk9VTkQiLGVbZS5CQUNLR1JPVU5EPTFdPSJCQUNLR1JPVU5EIn0pKFhmfHwoWGY9e30pKTt2YXIgdGg9Y2xhc3N7Y29uc3RydWN0b3IodCl7dD09PXZvaWQgMCYmKHQ9VHAobnVsbCkpLGNvbnNvbGUuYXNzZXJ0KHQuc2l6ZSgpPD0xKSx0aGlzLl9zZXNzaW9uR3JvdXBTZWw9dH1zZXNzaW9uR3JvdXAoKXtyZXR1cm4gdGhpcy5fc2Vzc2lvbkdyb3VwU2VsLnNpemUoKT09PTE/dGhpcy5fc2Vzc2lvbkdyb3VwU2VsLmRhdHVtKCk6bnVsbH1pc051bGwoKXtyZXR1cm4gdGhpcy5zZXNzaW9uR3JvdXAoKT09PW51bGx9c2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuX3Nlc3Npb25Hcm91cFNlbH1lcXVhbHNUbyh0KXt2YXIgcixuO3JldHVybiB0aGlzLmlzTnVsbCgpP3QuaXNOdWxsKCk6dC5pc051bGwoKT8hMTooKHI9dC5zZXNzaW9uR3JvdXAoKSk9PW51bGw/dm9pZCAwOnIubmFtZSk9PSgobj10aGlzLnNlc3Npb25Hcm91cCgpKT09bnVsbD92b2lkIDA6bi5uYW1lKX19LG9WPWNsYXNze2NvbnN0cnVjdG9yKHQscixuKXt0aGlzLl9zdmdQcm9wcz10LHRoaXMuX3NjaGVtYT1yLHRoaXMuX2F4ZXNDb2xsZWN0aW9uPW4sdGhpcy5fc2Vzc2lvbkdyb3Vwcz1bXSx0aGlzLl9zdmdQcm9wcy5zdmdHLnNlbGVjdEFsbCgiZy5iYWNrZ3JvdW5kIikucmVtb3ZlKCksdGhpcy5fc3ZnUHJvcHMuc3ZnRy5zZWxlY3RBbGwoImcuZm9yZWdyb3VuZCIpLnJlbW92ZSgpLHRoaXMuX2JnUGF0aHNTZWw9dGhpcy5fc3ZnUHJvcHMuc3ZnRy5hcHBlbmQoImciKS5jbGFzc2VkKCJiYWNrZ3JvdW5kIiwhMCkuc2VsZWN0QWxsKCJwYXRoIiksdGhpcy5fZmdQYXRoc1NlbD10aGlzLl9zdmdQcm9wcy5zdmdHLmFwcGVuZCgiZyIpLmNsYXNzZWQoImZvcmVncm91bmQiLCEwKS5zZWxlY3RBbGwoInBhdGgiKSx0aGlzLl91cGRhdGVWaXNpYmxlRmdQYXRoc1NlbCgpLHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cEhhbmRsZT1uZXcgdGgsdGhpcy5fc2VsZWN0ZWRTZXNzaW9uR3JvdXBIYW5kbGU9bmV3IHRoLHRoaXMuX2QzbGluZT12dSgpLmN1cnZlKGpoKX1nZXRTZXNzaW9uR3JvdXBIYW5kbGUodCl7cmV0dXJuIHQ9PW51bGw/bmV3IHRoOm5ldyB0aCh0aGlzLl9mZ1BhdGhzU2VsLmZpbHRlcihyPT5yLm5hbWU9PT10Lm5hbWUpKX1oaWRlQmFja2dyb3VuZExpbmVzKCl7dGhpcy5fYmdQYXRoc1NlbC5hdHRyKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIil9c2hvd0JhY2tncm91bmRMaW5lcygpe3RoaXMuX2JnUGF0aHNTZWwuYXR0cigidmlzaWJpbGl0eSIsbnVsbCl9cGVha2VkU2Vzc2lvbkdyb3VwSGFuZGxlKCl7cmV0dXJuIHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cEhhbmRsZX1zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpe3JldHVybiB0aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZX1yZWNvbXB1dGVDb250cm9sUG9pbnRzKHQscj0wKXsodD09PVhmLkZPUkVHUk9VTkQ/dGhpcy5fZmdQYXRoc1NlbDp0aGlzLl9iZ1BhdGhzU2VsKS50cmFuc2l0aW9uKCkuZHVyYXRpb24ocikuYXR0cigiZCIsaT0+dGhpcy5fcGF0aERBdHRyaWJ1dGUoaSkpLHQ9PT1YZi5GT1JFR1JPVU5EJiZ3aW5kb3cuc2V0VGltZW91dCgoKT0+e2xldCBpPXRoaXM7dGhpcy5fZmdQYXRoc1NlbC5lYWNoKGZ1bmN0aW9uKG8pe2kuX3NldENvbnRyb2xQb2ludHNQcm9wZXJ0eSh0aGlzLG8pfSl9KX1yZWNvbXB1dGVGb3JlZ3JvdW5kTGluZXNWaXNpYmlsaXR5KCl7dGhpcy5fZmdQYXRoc1NlbC5jbGFzc2VkKCJpbnZpc2libGUtcGF0aCIsdD0+IXRoaXMuX2F4ZXNDb2xsZWN0aW9uLmFsbFZpc2libGVBeGVzU2F0aXNmeSgocixuKT0+bi5icnVzaEZpbHRlcigpLmlzUGFzc2luZyhiMCh0aGlzLl9zY2hlbWEsdCxuLmNvbEluZGV4KCkpKSkpLHRoaXMuX3VwZGF0ZVZpc2libGVGZ1BhdGhzU2VsKCl9c2V0Rm9yZWdyb3VuZExpbmVzQ29sb3IodCxyLG4pe2xldCBpPXRoaXMuX2NyZWF0ZUxpbmVDb2xvckZ1bmN0aW9uKHQscixuKTt0aGlzLl9mZ1BhdGhzU2VsLmF0dHIoInN0cm9rZSIsaSl9cmVkcmF3KHQscixuLGkpe2xldCBvPXRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cEhhbmRsZS5zZXNzaW9uR3JvdXAoKSxhPXRoaXMuX3NlbGVjdGVkU2Vzc2lvbkdyb3VwSGFuZGxlLnNlc3Npb25Hcm91cCgpO3RoaXMuX3Nlc3Npb25Hcm91cHM9dCx0aGlzLl9mZ1BhdGhzU2VsPXRoaXMuX3JlY29tcHV0ZVBhdGhTZWxlY3Rpb24odGhpcy5fZmdQYXRoc1NlbCksdGhpcy5fYmdQYXRoc1NlbD10aGlzLl9yZWNvbXB1dGVQYXRoU2VsZWN0aW9uKHRoaXMuX2JnUGF0aHNTZWwpLHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cEhhbmRsZT10aGlzLmdldFNlc3Npb25Hcm91cEhhbmRsZShvKSx0aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZT10aGlzLmdldFNlc3Npb25Hcm91cEhhbmRsZShhKSx0aGlzLnJlY29tcHV0ZUNvbnRyb2xQb2ludHMoWGYuRk9SRUdST1VORCksdGhpcy5yZWNvbXB1dGVDb250cm9sUG9pbnRzKFhmLkJBQ0tHUk9VTkQpLHRoaXMucmVjb21wdXRlRm9yZWdyb3VuZExpbmVzVmlzaWJpbGl0eSgpLHRoaXMuc2V0Rm9yZWdyb3VuZExpbmVzQ29sb3IocixuLGkpfXVwZGF0ZVBlYWtlZFNlc3Npb25Hcm91cCh0KXt0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUuc2VsZWN0aW9uKCkuY2xhc3NlZCgicGVha2VkLXBhdGgiLCExKSx0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGU9dCx0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUuc2VsZWN0aW9uKCkuY2xhc3NlZCgicGVha2VkLXBhdGgiLCEwKX1jbGVhclBlYWtlZFNlc3Npb25Hcm91cCgpe3RoaXMudXBkYXRlUGVha2VkU2Vzc2lvbkdyb3VwKG5ldyB0aCl9dXBkYXRlU2VsZWN0ZWRTZXNzaW9uR3JvdXAodCl7dGhpcy5fc2VsZWN0ZWRTZXNzaW9uR3JvdXBIYW5kbGUuc2VsZWN0aW9uKCkuY2xhc3NlZCgic2VsZWN0ZWQtcGF0aCIsITEpLHRoaXMuX3NlbGVjdGVkU2Vzc2lvbkdyb3VwSGFuZGxlPXQsdGhpcy5fc2VsZWN0ZWRTZXNzaW9uR3JvdXBIYW5kbGUuc2VsZWN0aW9uKCkuY2xhc3NlZCgic2VsZWN0ZWQtcGF0aCIsITApfWZpbmRDbG9zZXN0U2Vzc2lvbkdyb3VwKHQscil7bGV0IG49dGhpcy5fYXhlc0NvbGxlY3Rpb24ubWFwVmlzaWJsZUF4ZXMoKG8sYSk9Pm8pLGk9cHVlKHRoaXMuX3Zpc2libGVGZ1BhdGhzU2VsLm5vZGVzKCksbixbdCxyXSwxMDApO3JldHVybiBpPT09bnVsbD9uZXcgdGg6bmV3IHRoKEh0KGkpKX1fY3JlYXRlTGluZUNvbG9yRnVuY3Rpb24odCxyLG4pe2lmKHQ9PT1udWxsKXJldHVybigpPT4icmVkIjtsZXQgaT16bigpLmRvbWFpbihoY3QodGhpcy5fc2NoZW1hLHRoaXMuX3Nlc3Npb25Hcm91cHMsdCkpLnJhbmdlKFtyLG5dKS5pbnRlcnBvbGF0ZShFXyk7cmV0dXJuIG89PmkoYjAodGhpcy5fc2NoZW1hLG8sdCkpfV9yZWNvbXB1dGVQYXRoU2VsZWN0aW9uKHQpe3JldHVybiB0PXQuZGF0YSh0aGlzLl9zZXNzaW9uR3JvdXBzLHI9PnIubmFtZSksdC5leGl0KCkucmVtb3ZlKCksdC5lbnRlcigpLmFwcGVuZCgicGF0aCIpLm1lcmdlKHQpfV9zZXRDb250cm9sUG9pbnRzUHJvcGVydHkodCxyKXt0LmNvbnRyb2xQb2ludHM9dGhpcy5fY29tcHV0ZUNvbnRyb2xQb2ludHMocil9X2NvbXB1dGVDb250cm9sUG9pbnRzKHQpe3JldHVybiB0aGlzLl9heGVzQ29sbGVjdGlvbi5tYXBWaXNpYmxlQXhlcygocixuKT0+W3Isbi55U2NhbGUoKShiMCh0aGlzLl9zY2hlbWEsdCxuLmNvbEluZGV4KCkpKV0pfV9wYXRoREF0dHJpYnV0ZSh0KXtyZXR1cm4gdGhpcy5fZDNsaW5lKHRoaXMuX2NvbXB1dGVDb250cm9sUG9pbnRzKHQpKX1fdXBkYXRlVmlzaWJsZUZnUGF0aHNTZWwoKXt0aGlzLl92aXNpYmxlRmdQYXRoc1NlbD10aGlzLl9mZ1BhdGhzU2VsLmZpbHRlcigiOm5vdCguaW52aXNpYmxlLXBhdGgpIil9fTt2YXIgYVY9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLnN2Zz1IdCh0KTtsZXQgbj17dG9wOjMwLHJpZ2h0OjEwLGJvdHRvbToxMCxsZWZ0OjEwfSxpPTEwMCxvPTIwMCxhPXIqaStuLmxlZnQrbi5yaWdodCxzPW8rbi50b3Arbi5ib3R0b207dGhpcy5zdmcuYXR0cigidmlld0JveCIsYDAgMCAke2F9ICR7c31gKSx0aGlzLnN2Zy5hdHRyKCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwieE1pZFlNaWQiKSx0aGlzLnN2Zy5zdHlsZSgibWluLXdpZHRoIixhKyJweCIpLHRoaXMuc3ZnLnN0eWxlKCJtaW4taGVpZ2h0IixzKyJweCIpLHRoaXMud2lkdGg9YS1uLmxlZnQtbi5yaWdodCx0aGlzLmhlaWdodD1zLW4udG9wLW4uYm90dG9tLHRoaXMuc3ZnRz10aGlzLnN2Zy5hcHBlbmQoImciKS5hdHRyKCJ0cmFuc2Zvcm0iLHlQKG4ubGVmdCxuLnRvcCkpfX0sc1Y9Y2xhc3N7Y29uc3RydWN0b3IodCxyLG4saSl7dGhpcy5fc3ZnUHJvcHM9dCx0aGlzLl9zY2hlbWE9cix0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBDaGFuZ2VkQ0I9bix0aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cENoYW5nZWRDQj1pLHRoaXMuX2F4ZXNDb2xsZWN0aW9uPW5ldyBpVih0LHIsdGhpcyksdGhpcy5fbGluZXNDb2xsZWN0aW9uPW5ldyBvVih0LHIsdGhpcy5fYXhlc0NvbGxlY3Rpb24pLHRoaXMuX3N2Z1Byb3BzLnN2Zy5vbigiY2xpY2siLCgpPT50aGlzLm9uQ2xpY2soKSkub24oIm1vdXNlbW92ZSBtb3VzZWVudGVyIiwoKT0+e2xldFtvLGFdPXpvKHRoaXMuX3N2Z1Byb3BzLnN2Z0cubm9kZSgpKTt0aGlzLm9uTW91c2VNb3ZlZChvLGEpfSkub24oIm1vdXNlbGVhdmUiLCgpPT50aGlzLm9uTW91c2VMZWF2ZSgpKX1vbkRyYWdTdGFydCh0KXt0aGlzLl9heGVzQ29sbGVjdGlvbi5kcmFnU3RhcnQodCksdGhpcy5fbGluZXNDb2xsZWN0aW9uLmhpZGVCYWNrZ3JvdW5kTGluZXMoKX1vbkRyYWcodCl7dGhpcy5fYXhlc0NvbGxlY3Rpb24uZHJhZyh0KSx0aGlzLl9saW5lc0NvbGxlY3Rpb24ucmVjb21wdXRlQ29udHJvbFBvaW50cyhYZi5GT1JFR1JPVU5EKX1vbkRyYWdFbmQoKXt0aGlzLl9heGVzQ29sbGVjdGlvbi5kcmFnRW5kKDUwMCksdGhpcy5fbGluZXNDb2xsZWN0aW9uLnJlY29tcHV0ZUNvbnRyb2xQb2ludHMoWGYuRk9SRUdST1VORCw1MDApLHdpbmRvdy5zZXRUaW1lb3V0KCgpPT57dGhpcy5fbGluZXNDb2xsZWN0aW9uLnJlY29tcHV0ZUNvbnRyb2xQb2ludHMoWGYuQkFDS0dST1VORCksdGhpcy5fbGluZXNDb2xsZWN0aW9uLnNob3dCYWNrZ3JvdW5kTGluZXMoKX0sNTAwKX1vbkJydXNoQ2hhbmdlZCh0LHIpe3RoaXMuX2F4ZXNDb2xsZWN0aW9uLmdldEF4aXNGb3JDb2xJbmRleCh0KS5zZXRCcnVzaFNlbGVjdGlvbihyKSx0aGlzLl9saW5lc0NvbGxlY3Rpb24ucmVjb21wdXRlRm9yZWdyb3VuZExpbmVzVmlzaWJpbGl0eSgpfW9uTW91c2VNb3ZlZCh0LHIpe3RoaXMuX2xpbmVzQ29sbGVjdGlvbi51cGRhdGVQZWFrZWRTZXNzaW9uR3JvdXAodGhpcy5fbGluZXNDb2xsZWN0aW9uLmZpbmRDbG9zZXN0U2Vzc2lvbkdyb3VwKHQscikpLHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cENoYW5nZWRDQih0aGlzLl9saW5lc0NvbGxlY3Rpb24ucGVha2VkU2Vzc2lvbkdyb3VwSGFuZGxlKCkuc2Vzc2lvbkdyb3VwKCkpfW9uTW91c2VMZWF2ZSgpe3RoaXMuX2xpbmVzQ29sbGVjdGlvbi5wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUoKS5pc051bGwoKXx8KHRoaXMuX2xpbmVzQ29sbGVjdGlvbi5jbGVhclBlYWtlZFNlc3Npb25Hcm91cCgpLHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cENoYW5nZWRDQihudWxsKSl9b25DbGljaygpe3RoaXMuX2xpbmVzQ29sbGVjdGlvbi5wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUoKS5zZXNzaW9uR3JvdXAoKT09PXRoaXMuX2xpbmVzQ29sbGVjdGlvbi5zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpLnNlc3Npb25Hcm91cCgpP3RoaXMuX2xpbmVzQ29sbGVjdGlvbi51cGRhdGVTZWxlY3RlZFNlc3Npb25Hcm91cChuZXcgdGgpOnRoaXMuX2xpbmVzQ29sbGVjdGlvbi51cGRhdGVTZWxlY3RlZFNlc3Npb25Hcm91cCh0aGlzLl9saW5lc0NvbGxlY3Rpb24ucGVha2VkU2Vzc2lvbkdyb3VwSGFuZGxlKCkpLHRoaXMuX3NlbGVjdGVkU2Vzc2lvbkdyb3VwQ2hhbmdlZENCKHRoaXMuX2xpbmVzQ29sbGVjdGlvbi5zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpLnNlc3Npb25Hcm91cCgpKX1vbk9wdGlvbnNPclNlc3Npb25Hcm91cHNDaGFuZ2VkKHQscil7dGhpcy5fYXhlc0NvbGxlY3Rpb24udXBkYXRlQXhlcyh0LHIpO2xldCBuPXRoaXMuX2xpbmVzQ29sbGVjdGlvbi5wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUoKSxpPXRoaXMuX2xpbmVzQ29sbGVjdGlvbi5zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpO3RoaXMuX2xpbmVzQ29sbGVjdGlvbi5yZWRyYXcocix0LmNvbG9yQnlDb2x1bW5JbmRleCE9PXZvaWQgMD90LmNvbHVtbnNbdC5jb2xvckJ5Q29sdW1uSW5kZXhdLmFic29sdXRlSW5kZXg6bnVsbCx0Lm1pbkNvbG9yLHQubWF4Q29sb3IpLG4uZXF1YWxzVG8odGhpcy5fbGluZXNDb2xsZWN0aW9uLnBlYWtlZFNlc3Npb25Hcm91cEhhbmRsZSgpKXx8dGhpcy5fcGVha2VkU2Vzc2lvbkdyb3VwQ2hhbmdlZENCKHRoaXMuX2xpbmVzQ29sbGVjdGlvbi5wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUoKS5zZXNzaW9uR3JvdXAoKSksaS5lcXVhbHNUbyh0aGlzLl9saW5lc0NvbGxlY3Rpb24uc2VsZWN0ZWRTZXNzaW9uR3JvdXBIYW5kbGUoKSl8fHRoaXMuX3NlbGVjdGVkU2Vzc2lvbkdyb3VwQ2hhbmdlZENCKHRoaXMuX2xpbmVzQ29sbGVjdGlvbi5zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpLnNlc3Npb25Hcm91cCgpKX1zY2hlbWEoKXtyZXR1cm4gdGhpcy5fc2NoZW1hfX07dmFyIGVoPWNsYXNzIGV4dGVuZHMgR3QoX28obXQpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5zZWxlY3RlZFNlc3Npb25Hcm91cD1udWxsLHRoaXMuY2xvc2VzdFNlc3Npb25Hcm91cD1udWxsLHRoaXMucmVkcmF3Q291bnQ9MH1fb3B0aW9uc09yU2Vzc2lvbkdyb3Vwc0NoYW5nZWQoKXt2YXIgbjtpZighdGhpcy5vcHRpb25zKXJldHVybjtsZXR7Y29uZmlndXJhdGlvbjp0fT0obj10aGlzLl9wcmV2T3B0aW9ucykhPW51bGw/bjp7fSx7Y29uZmlndXJhdGlvbjpyfT10aGlzLm9wdGlvbnM7aWYodGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyPT09dm9pZCAwfHwhVWN0LmlzRXF1YWwodD09bnVsbD92b2lkIDA6dC5zY2hlbWEsci5zY2hlbWEpfHwhVWN0LmlzRXF1YWwodD09bnVsbD92b2lkIDA6dC5jb2x1bW5zVmlzaWJpbGl0eSxyLmNvbHVtbnNWaXNpYmlsaXR5KSl7SHQodGhpcy4kLnN2Zykuc2VsZWN0QWxsKCIqIikucmVtb3ZlKCk7bGV0IGk9bmV3IGFWKHRoaXMuJC5zdmcsci5jb2x1bW5zVmlzaWJpbGl0eS5maWx0ZXIoQm9vbGVhbikubGVuZ3RoKTt0aGlzLnNjb3BlU3VidHJlZSh0aGlzLiQuc3ZnLCEwKSx0aGlzLl9pbnRlcmFjdGlvbk1hbmFnZXI9bmV3IHNWKGksci5zY2hlbWEsbz0+dGhpcy5jbG9zZXN0U2Vzc2lvbkdyb3VwQ2hhbmdlZChvKSxvPT50aGlzLnNlbGVjdGVkU2Vzc2lvbkdyb3VwQ2hhbmdlZChvKSl9dGhpcy5fY29tcHV0ZVZhbGlkU2Vzc2lvbkdyb3VwcygpLHRoaXMuX2ludGVyYWN0aW9uTWFuYWdlci5vbk9wdGlvbnNPclNlc3Npb25Hcm91cHNDaGFuZ2VkKHRoaXMub3B0aW9ucyx0aGlzLl92YWxpZFNlc3Npb25Hcm91cHMpLHRoaXMucmVkcmF3Q291bnQrKyx0aGlzLl9wcmV2T3B0aW9ucz10aGlzLm9wdGlvbnN9Y2xvc2VzdFNlc3Npb25Hcm91cENoYW5nZWQodCl7dGhpcy5jbG9zZXN0U2Vzc2lvbkdyb3VwPXR9c2VsZWN0ZWRTZXNzaW9uR3JvdXBDaGFuZ2VkKHQpe3RoaXMuc2VsZWN0ZWRTZXNzaW9uR3JvdXA9dH1fY29tcHV0ZVZhbGlkU2Vzc2lvbkdyb3Vwcygpe2xldCB0PXVzO2lmKHRoaXMuc2Vzc2lvbkdyb3Vwcz09PXZvaWQgMCl7dGhpcy5fdmFsaWRTZXNzaW9uR3JvdXBzPXZvaWQgMDtyZXR1cm59bGV0IHI9dGhpcy5vcHRpb25zLmNvbmZpZ3VyYXRpb24uc2NoZW1hO3RoaXMuX3ZhbGlkU2Vzc2lvbkdyb3Vwcz10aGlzLnNlc3Npb25Hcm91cHMuZmlsdGVyKG49Pntmb3IobGV0IGk9MDtpPHQubnVtQ29sdW1ucyhyKTsrK2kpe2lmKCF0aGlzLm9wdGlvbnMuY29uZmlndXJhdGlvbi5jb2x1bW5zVmlzaWJpbGl0eVtpXSljb250aW51ZTtsZXQgbz10LmNvbHVtblZhbHVlQnlJbmRleChyLG4saSk7aWYobz09PXZvaWQgMHx8bz09PSJOYU4iKXJldHVybiExfXJldHVybiEwfSl9fTtlaC50ZW1wbGF0ZT1RYAogICAgPGRpdiBpZD0iY29udGFpbmVyIj4KICAgICAgPHN2ZyBpZD0ic3ZnIj48L3N2Zz4KICAgIDwvZGl2PgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgLS10Zi1ocGFyYW1zLXBhcmFsbGVsLWNvb3Jkcy1wbG90LWF4aXMtc2hhZG93OiAwIDFweCAwICNmZmYsCiAgICAgICAgICAxcHggMCAwICNmZmYsIDAgLTFweCAwICNmZmYsIC0xcHggMCAwICNmZmY7CiAgICAgIH0KICAgICAgOmhvc3QoLmRhcmstbW9kZSkgewogICAgICAgIC0tdGYtaHBhcmFtcy1wYXJhbGxlbC1jb29yZHMtcGxvdC1heGlzLXNoYWRvdzogMCAxcHggMCAjMDAwLAogICAgICAgICAgMXB4IDAgMCAjMDAwLCAwIC0xcHggMCAjMDAwLCAtMXB4IDAgMCAjMDAwOwogICAgICB9CiAgICAgIHN2ZyB7CiAgICAgICAgZm9udDogMTBweCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAuYmFja2dyb3VuZCBwYXRoIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICAgIHN0cm9rZTogI2RkZDsKICAgICAgICBzaGFwZS1yZW5kZXJpbmc6IGNyaXNwRWRnZXM7CiAgICAgIH0KCiAgICAgIC5mb3JlZ3JvdW5kIHBhdGggewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDAuNzsKICAgICAgICBzdHJva2Utd2lkdGg6IDE7CiAgICAgIH0KCiAgICAgIC8qIFdpbGwgYmUgc2V0IG9uIGZvcmVncm91bmQgcGF0aHMgdGhhdCBhcmUgbm90ICJjb250YWluZWQiIGluIHRoZSBjdXJyZW50CiAgICAgICAgIGF4ZXMgYnJ1c2hlcy4gSWYgbm8gYnJ1c2hlcyBhcmUgc2V0LCBubyBwYXRoIHdpbGwgaGF2ZSB0aGlzIGNsYXNzLiAqLwogICAgICAuZm9yZWdyb3VuZCAuaW52aXNpYmxlLXBhdGggewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFN0eWxlIGZvciB0aGUgcGF0aCBjbG9zZXN0IHRvIHRoZSBtb3VzZSBwb2ludGVyICh0eXBpY2FsbHkgd2lsbCBiZWNvbWUKICAgICAgdGhlIHNlbGVjdGVkIHBhdGggd2hlbiB0aGUgdXNlciBjbGlja3MpLiAqLwogICAgICAuZm9yZWdyb3VuZCAucGVha2VkLXBhdGggewogICAgICAgIHN0cm9rZS13aWR0aDogMzsKICAgICAgfQoKICAgICAgLyogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBwYXRoIGNsYXNzLiBXZSB1c2UgIWltcG9ydGFudCB0byBvdmVycmlkZSB0aGUKICAgICAgICAgaW5saW5lIHN0eWxlIHRoYXQgc2V0cyB0aGUgcmVndWxhciBjb2xvciBvZiBhIHBhdGguICovCiAgICAgIC5mb3JlZ3JvdW5kIC5zZWxlY3RlZC1wYXRoIHsKICAgICAgICBzdHJva2Utd2lkdGg6IDMgIWltcG9ydGFudDsKICAgICAgICBzdHJva2U6ICMwZjAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgI2NvbnRhaW5lciB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBzdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmF4aXMgdGV4dCB7CiAgICAgICAgdGV4dC1zaGFkb3c6IHZhcigtLXRmLWhwYXJhbXMtcGFyYWxsZWwtY29vcmRzLXBsb3QtYXhpcy1zaGFkb3cpOwogICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsKICAgICAgICBjdXJzb3I6IG1vdmU7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYDtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sZWgucHJvdG90eXBlLCJzZXNzaW9uR3JvdXBzIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLGVoLnByb3RvdHlwZSwib3B0aW9ucyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZWgucHJvdG90eXBlLCJzZWxlY3RlZFNlc3Npb25Hcm91cCIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZWgucHJvdG90eXBlLCJjbG9zZXN0U2Vzc2lvbkdyb3VwIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLGVoLnByb3RvdHlwZSwicmVkcmF3Q291bnQiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxlaC5wcm90b3R5cGUsIl92YWxpZFNlc3Npb25Hcm91cHMiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZWgucHJvdG90eXBlLCJfaW50ZXJhY3Rpb25NYW5hZ2VyIix2b2lkIDApO0UoW0J0KCJvcHRpb25zLioiLCJzZXNzaW9uR3JvdXBzLioiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGVoLnByb3RvdHlwZSwiX29wdGlvbnNPclNlc3Npb25Hcm91cHNDaGFuZ2VkIixudWxsKTtlaD1FKFt5dCgidGYtaHBhcmFtcy1wYXJhbGxlbC1jb29yZHMtcGxvdCIpXSxlaCk7dmFyIFAwPWNsYXNzIGV4dGVuZHMgbXR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMub3B0aW9ucz1udWxsfV9jb25maWd1cmF0aW9uQ2hhbmdlZCgpe2xldCB0PXRoaXMuY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hLHI9dGhpcy5jb25maWd1cmF0aW9uLnNjaGVtYSxuPShhLHMpPT4oe25hbWU6QmQoYSksaW5kZXg6cyxhYnNvbHV0ZUluZGV4OnpIKHIsdCxzKSxzY2FsZTp0aGlzLl9pc051bWVyaWNDb2x1bW4ocyk/IkxJTkVBUiI6Ik5PTl9OVU1FUklDIn0pLGk9KGEscyk9PntsZXQgbD1zK3QuaHBhcmFtSW5mb3MubGVuZ3RoO3JldHVybntzY2FsZToiTElORUFSIixuYW1lOlF1KGEpLGluZGV4OmwsYWJzb2x1dGVJbmRleDp6SChyLHQsbCl9fSxvPXtjb2x1bW5zOnQuaHBhcmFtSW5mb3MubWFwKG4pLmNvbmNhdCh0Lm1ldHJpY0luZm9zLm1hcChpKSksbWluQ29sb3I6IiMwMDAwRkYiLG1heENvbG9yOiIjRkYwMDAwIixjb25maWd1cmF0aW9uOnRoaXMuY29uZmlndXJhdGlvbn07dGhpcy5zZXQoIm9wdGlvbnMiLG8pLGNpKCksdGhpcy5zZXQoIm9wdGlvbnMuY29sb3JCeUNvbHVtbkluZGV4Iix0aGlzLl9kZWZhdWx0Q29sb3JCeUNvbHVtbkluZGV4KCkpfV91bnNlbGVjdERpc2FibGVkTG9nU2NhbGVzKCl7dGhpcy5vcHRpb25zIT09bnVsbCYmdGhpcy5vcHRpb25zLmNvbHVtbnMuZm9yRWFjaCh0PT57bGV0IHI9Im9wdGlvbnMuY29sdW1ucy4iK3QuaW5kZXg7IXRoaXMuX2FsbG93TG9nU2NhbGUodCkmJnQuc2NhbGU9PT0iTE9HIiYmdGhpcy5zZXQocisiLnNjYWxlIiwiTElORUFSIil9KX1fYWxsb3dMb2dTY2FsZSh0KXtpZighdGhpcy5faXNOdW1lcmljQ29sdW1uKHQuaW5kZXgpfHwhdGhpcy5zZXNzaW9uR3JvdXBzKXJldHVybiExO2xldFtyLG5dPV9QKHRoaXMuY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hLHRoaXMuc2Vzc2lvbkdyb3Vwcyx0LmluZGV4KTtyZXR1cm4gcj4wfHxuPDB9X2lzTnVtZXJpY0NvbHVtbih0KXtyZXR1cm4gdD49dGhpcy5jb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWEuaHBhcmFtSW5mb3MubGVuZ3RofHx0aGlzLmNvbmZpZ3VyYXRpb24udmlzaWJsZVNjaGVtYS5ocGFyYW1JbmZvc1t0XS50eXBlPT09IkRBVEFfVFlQRV9GTE9BVDY0In1fZGVmYXVsdENvbG9yQnlDb2x1bW5JbmRleCgpe2lmKHRoaXMuY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hLm1ldHJpY0luZm9zLmxlbmd0aD4wKXJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb24udmlzaWJsZVNjaGVtYS5ocGFyYW1JbmZvcy5sZW5ndGg7bGV0IHQ9dGhpcy5jb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWEuaHBhcmFtSW5mb3MuZmluZEluZGV4KHI9PnIudHlwZT09PSJEQVRBX1RZUEVfRkxPQVQ2NCIpO2lmKHQhPT0tMSlyZXR1cm4gdH19O1AwLnRlbXBsYXRlPVFgCiAgICA8ZGl2IGNsYXNzPSJjb250cm9sLXBhbmVsIj4KICAgICAgPCEtLSAnQ29sb3IgYnknIGRyb3AgZG93biBtZW51IC0tPgogICAgICA8cGFwZXItZHJvcGRvd24tbWVudQogICAgICAgIGxhYmVsPSJDb2xvciBieSIKICAgICAgICBpZD0iY29sb3JCeURyb3BEb3duTWVudSIKICAgICAgICBob3Jpem9udGFsLWFsaWduPSJsZWZ0IgogICAgICA+CiAgICAgICAgPHBhcGVyLWxpc3Rib3gKICAgICAgICAgIGNsYXNzPSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgc2xvdD0iZHJvcGRvd24tY29udGVudCIKICAgICAgICAgIHNlbGVjdGVkPSJ7e29wdGlvbnMuY29sb3JCeUNvbHVtbkluZGV4fX0iCiAgICAgICAgICBpZD0iY29sb3JCeUxpc3RCb3giCiAgICAgICAgPgogICAgICAgICAgPHRlbXBsYXRlCiAgICAgICAgICAgIGlzPSJkb20tcmVwZWF0IgogICAgICAgICAgICBpdGVtcz0iW1tvcHRpb25zLmNvbHVtbnNdXSIKICAgICAgICAgICAgYXM9ImNvbHVtbiIKICAgICAgICAgICAgaWQ9ImNvbG9yQnlDb2x1bW5UZW1wbGF0ZSIKICAgICAgICAgID4KICAgICAgICAgICAgPHBhcGVyLWl0ZW0gZGlzYWJsZWQ9IltbIV9pc051bWVyaWNDb2x1bW4oY29sdW1uLmluZGV4KV1dIj4KICAgICAgICAgICAgICBbW2NvbHVtbi5uYW1lXV0KICAgICAgICAgICAgPC9wYXBlci1pdGVtPgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3BhcGVyLWxpc3Rib3g+CiAgICAgIDwvcGFwZXItZHJvcGRvd24tbWVudT4KCiAgICAgIDwhLS0gQ29sdW1ucyBzY2FsZXMgLS0+CiAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbnMtY29udGFpbmVyIj4KICAgICAgICA8IS0tIFNjYWxlIG9wdGlvbnMgZm9yIGVhY2ggbnVtZXJpYyBmZWF0dXJlIC0tPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9Int7b3B0aW9ucy5jb2x1bW5zfX0iIGFzPSJjb2x1bW4iPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc051bWVyaWNDb2x1bW4oY29sdW1uLmluZGV4KV1dIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sdW1uIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2x1bW4tdGl0bGUiPltbY29sdW1uLm5hbWVdXTwvZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8cGFwZXItcmFkaW8tZ3JvdXAKICAgICAgICAgICAgICAgICAgY2xhc3M9InNjYWxlLXJhZGlvLWdyb3VwIgogICAgICAgICAgICAgICAgICBzZWxlY3RlZD0ie3tjb2x1bW4uc2NhbGV9fSIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbiBuYW1lPSJMSU5FQVIiPgogICAgICAgICAgICAgICAgICAgIExpbmVhcgogICAgICAgICAgICAgICAgICA8L3BhcGVyLXJhZGlvLWJ1dHRvbj4KICAgICAgICAgICAgICAgICAgPCEtLSBUaGUgaWQgaGVyZSBpcyB1c2VkIHRvIGFjY2VzcyB0aGlzIGJ1dHRvbiBpbiB1bml0CiAgICAgICAgICAgICAgICAgICAgICAgdGVzdHMuLS0+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24KICAgICAgICAgICAgICAgICAgICBpZD0ibG9nU2NhbGVCdXR0b25fW1tjb2x1bW4ubmFtZV1dIgogICAgICAgICAgICAgICAgICAgIG5hbWU9IkxPRyIKICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD0iW1shX2FsbG93TG9nU2NhbGUoY29sdW1uLCBzZXNzaW9uR3JvdXBzLiopXV0iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICBMb2dhcml0aG1pYwogICAgICAgICAgICAgICAgICA8L3BhcGVyLXJhZGlvLWJ1dHRvbj4KICAgICAgICAgICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbiBuYW1lPSJRVUFOVElMRSI+CiAgICAgICAgICAgICAgICAgICAgUXVhbnRpbGUKICAgICAgICAgICAgICAgICAgPC9wYXBlci1yYWRpby1idXR0b24+CiAgICAgICAgICAgICAgICA8L3BhcGVyLXJhZGlvLWdyb3VwPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAuY29udHJvbC1wYW5lbCB7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIH0KICAgICAgLmNvbHVtbiB7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgICAgIG1hcmdpbi1yaWdodDogNXB4OwogICAgICAgIGJvcmRlcjogc29saWQgMXB4IGRhcmtncmF5OwogICAgICAgIHBhZGRpbmc6IDNweDsKICAgICAgfQogICAgICAuY29sdW1uLXRpdGxlIHsKICAgICAgICAvKiBGaXQgZXZlcnkgdGl0bGUgaW4gb25lIGxpbmUgc28gdGhlIHJhZGlvIGJveGVzIGFsaWduIHZlcnRpY2FsbHkuICovCiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQogICAgICAuY29sdW1ucy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgfQogICAgICAuc2NhbGUtcmFkaW8tZ3JvdXAgcGFwZXItcmFkaW8tYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAycHg7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgICAgcGFwZXItbGlzdGJveCB7CiAgICAgICAgbWF4LWhlaWdodDogMTVlbTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFAwLnByb3RvdHlwZSwiY29uZmlndXJhdGlvbiIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sUDAucHJvdG90eXBlLCJzZXNzaW9uR3JvdXBzIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxQMC5wcm90b3R5cGUsIm9wdGlvbnMiLHZvaWQgMCk7RShbQnQoImNvbmZpZ3VyYXRpb24uKiIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sUDAucHJvdG90eXBlLCJfY29uZmlndXJhdGlvbkNoYW5nZWQiLG51bGwpO0UoW0J0KCJzZXNzaW9uR3JvdXBzLioiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFAwLnByb3RvdHlwZSwiX3Vuc2VsZWN0RGlzYWJsZWRMb2dTY2FsZXMiLG51bGwpO1AwPUUoW3l0KCJ0Zi1ocGFyYW1zLXNjYWxlLWFuZC1jb2xvci1jb250cm9scyIpXSxQMCk7dmFyIGYxPWNsYXNzIGV4dGVuZHMgbXR7X2Nsb3Nlc3RPclNlbGVjdGVkKHQscil7cmV0dXJuIHQhPT1udWxsP3Q6cn19O2YxLnRlbXBsYXRlPVFgCiAgICA8IS0tIENvbnRyb2xzIGJlaGF2aW9yIG9mIHBhcmFsbGVsIGNvb3JkaW5hdGVzIHBsb3QKICAgICAgICAgb3V0cHV0cyBzZXQgb3B0aW9ucyB0byB0aGUgX29wdGlvbnMgcHJvcGVydHkuCiAgICAgIC0tPgogICAgPGhwYXJhbXMtc3BsaXQtbGF5b3V0IG9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCI+CiAgICAgIDwhLS0gVGhlIHNjYWxlIGFuZCBjb2xvciBjb250cm9scy4gLS0+CiAgICAgIDx0Zi1ocGFyYW1zLXNjYWxlLWFuZC1jb2xvci1jb250cm9scwogICAgICAgIGlkPSJjb250cm9scyIKICAgICAgICBzbG90PSJjb250ZW50IgogICAgICAgIGNsYXNzPSJzZWN0aW9uIgogICAgICAgIGNvbmZpZ3VyYXRpb249IltbY29uZmlndXJhdGlvbl1dIgogICAgICAgIHNlc3Npb24tZ3JvdXBzPSJbW3Nlc3Npb25Hcm91cHNdXSIKICAgICAgICBvcHRpb25zPSJ7e19vcHRpb25zfX0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNjYWxlLWFuZC1jb2xvci1jb250cm9scz4KICAgICAgPCEtLSBUaGUgYWN0dWFsIHBhcmFsbGVsIGNvb3JkaW5hdGVzIHBsb3QgLS0+CiAgICAgIDx0Zi1ocGFyYW1zLXBhcmFsbGVsLWNvb3Jkcy1wbG90CiAgICAgICAgaWQ9InBsb3QiCiAgICAgICAgc2xvdD0iY29udGVudCIKICAgICAgICBjbGFzcz0ic2VjdGlvbiIKICAgICAgICBzZXNzaW9uLWdyb3Vwcz0iW1tzZXNzaW9uR3JvdXBzXV0iCiAgICAgICAgc2VsZWN0ZWQtc2Vzc2lvbi1ncm91cD0ie3tfc2VsZWN0ZWRHcm91cH19IgogICAgICAgIGNsb3Nlc3Qtc2Vzc2lvbi1ncm91cD0ie3tfY2xvc2VzdEdyb3VwfX0iCiAgICAgICAgb3B0aW9ucz0iW1tfb3B0aW9uc11dIgogICAgICA+CiAgICAgIDwvdGYtaHBhcmFtcy1wYXJhbGxlbC1jb29yZHMtcGxvdD4KICAgICAgPHRmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC12YWx1ZXMKICAgICAgICBpZD0idmFsdWVzIgogICAgICAgIHNsb3Q9ImNvbnRlbnQiCiAgICAgICAgY2xhc3M9InNlY3Rpb24iCiAgICAgICAgdmlzaWJsZS1zY2hlbWE9IltbY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hXV0iCiAgICAgICAgc2Vzc2lvbi1ncm91cD0iW1tfY2xvc2VzdE9yU2VsZWN0ZWQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2Nsb3Nlc3RHcm91cCwgX3NlbGVjdGVkR3JvdXApXV0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNlc3Npb24tZ3JvdXAtdmFsdWVzPgogICAgICA8dGYtaHBhcmFtcy1zZXNzaW9uLWdyb3VwLWRldGFpbHMKICAgICAgICBpZD0iZGV0YWlscyIKICAgICAgICBzbG90PSJjb250ZW50IgogICAgICAgIGNsYXNzPSJzZWN0aW9uIgogICAgICAgIGJhY2tlbmQ9IltbYmFja2VuZF1dIgogICAgICAgIGV4cGVyaW1lbnQtbmFtZT0iW1tleHBlcmltZW50TmFtZV1dIgogICAgICAgIHNlc3Npb24tZ3JvdXA9IltbX3NlbGVjdGVkR3JvdXBdXSIKICAgICAgICB2aXNpYmxlLXNjaGVtYT0iW1tjb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWFdXSIKICAgICAgPgogICAgICA8L3RmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC1kZXRhaWxzPgogICAgPC9ocGFyYW1zLXNwbGl0LWxheW91dD4KCiAgICA8c3R5bGU+CiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICB9CiAgICAgICN2YWx1ZXMgewogICAgICAgIGhlaWdodDogMTE1cHg7CiAgICAgIH0KICAgICAgI2RldGFpbHMgewogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBtYXgtaGVpZ2h0OiBmaXQtY29udGVudDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLGYxLnByb3RvdHlwZSwiYmFja2VuZCIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxmMS5wcm90b3R5cGUsImV4cGVyaW1lbnROYW1lIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLGYxLnByb3RvdHlwZSwiY29uZmlndXJhdGlvbiIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sZjEucHJvdG90eXBlLCJzZXNzaW9uR3JvdXBzIix2b2lkIDApO2YxPUUoW3l0KCJ0Zi1ocGFyYW1zLXBhcmFsbGVsLWNvb3Jkcy12aWV3IildLGYxKTt2YXIgeTM9RWUoT2UoKSwxKTt2YXIgJG89Y2xhc3MgZXh0ZW5kcyBHdChtdCl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc2VsZWN0ZWRTZXNzaW9uR3JvdXA9bnVsbCx0aGlzLmNsb3Nlc3RTZXNzaW9uR3JvdXA9bnVsbCx0aGlzLl9jb250YWluZXI9bnVsbCx0aGlzLl9zdmc9bnVsbCx0aGlzLndpZHRoPTAsdGhpcy5oZWlnaHQ9MCx0aGlzLl9icnVzaGVkQ2VsbEluZGV4PW51bGwsdGhpcy5fYnJ1c2hTZWxlY3Rpb249bnVsbH1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5fY29udGFpbmVyPXRoaXMuJC5jb250YWluZXIsdGhpcy5fc3ZnPUh0KHRoaXMuJC5zdmcpLHRoaXMuX3JlZHJhdygpfV9zZXNzaW9uR3JvdXBzQ2hhbmdlZCgpe3RoaXMuc2VsZWN0ZWRTZXNzaW9uR3JvdXAhPT1udWxsJiYodGhpcy5zZWxlY3RlZFNlc3Npb25Hcm91cD1mY3QodGhpcy5zZXNzaW9uR3JvdXBzLHRoaXMuc2VsZWN0ZWRTZXNzaW9uR3JvdXAubmFtZSl8fG51bGwpLHRoaXMuX3JlZHJhdygpfV92aXNpYmxlU2NoZW1hQ2hhbmdlZCgpe3RoaXMuX2JydXNoZWRDZWxsSW5kZXg9bnVsbCx0aGlzLl9icnVzaFNlbGVjdGlvbj1udWxsLHRoaXMuX3JlZHJhdygpfV9yZWRyYXcoKXt0aGlzLmRlYm91bmNlKCJfcmVkcmF3IiwoKT0+e2xldCB0PXVzLHI9MTIwMCxuPS40KnIsaT0xNTAsbz0uNzUqaTt0aGlzLndpZHRoPU1hdGgubWF4KGkqdC5udW1WaXNpYmxlQ29sdW1ucyh0aGlzLnZpc2libGVTY2hlbWEpLHIpLHRoaXMuaGVpZ2h0PU1hdGgubWF4KG8qdC5udW1WaXNpYmxlTWV0cmljcyh0aGlzLnZpc2libGVTY2hlbWEpLG4pLHRoaXMuX2NvbnRhaW5lci5zdHlsZS53aWR0aD10aGlzLndpZHRoKyJweCIsdGhpcy5fY29udGFpbmVyLnN0eWxlLmhlaWdodD10aGlzLmhlaWdodCsicHgiLHRoaXMuX3N2Zy5hdHRyKCJ3aWR0aCIsdGhpcy53aWR0aCkuYXR0cigiaGVpZ2h0Iix0aGlzLmhlaWdodCksdGhpcy5fc3ZnLnNlbGVjdEFsbCgiZyIpLnJlbW92ZSgpLHRoaXMuX2RyYXcoKX0sMTAwKX1fZHJhdygpe2xldCB0PXVzLHI9dGhpcztpZighdGhpcy5zZXNzaW9uR3JvdXBzfHx0aGlzLnNlc3Npb25Hcm91cHMubGVuZ3RoPT0wfHwhdGhpcy52aXNpYmxlU2NoZW1hfHx0aGlzLnZpc2libGVTY2hlbWEubWV0cmljSW5mb3MubGVuZ3RoPT0wKXJldHVybjtsZXQgbj1Jcih0Lm51bVZpc2libGVDb2x1bW5zKHIudmlzaWJsZVNjaGVtYSkpLGk9SXIodC5udW1WaXNpYmxlTWV0cmljcyhyLnZpc2libGVTY2hlbWEpKSxvPTgwLGE9NTAscz01LGw9dGcoKS5kb21haW4obikucmFuZ2UoW28rcyx0aGlzLndpZHRoLTEtc10pLnBhZGRpbmdJbm5lciguMSksYz10ZygpLmRvbWFpbihpKS5yYW5nZShbdGhpcy5oZWlnaHQtMS1zLWEsc10pLnBhZGRpbmdJbm5lciguMSksdT1sLmJhbmR3aWR0aCgpLGg9Yy5iYW5kd2lkdGgoKSxmPW4ubWFwKGN0PT5yLl9jZWxsU2NhbGUoY3QsWzAsdS0xXSkpLHA9aS5tYXAoY3Q9PnIuX2NlbGxTY2FsZShjdCt0Lm51bVZpc2libGVIUGFyYW1zKHIudmlzaWJsZVNjaGVtYSksW2gtMSwwXSkpLGQ9dGhpcy5fc3ZnLnNlbGVjdEFsbCgiLngtYXhpcyIpLmRhdGEobikuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ4LWF4aXMiLCEwKS5hdHRyKCJ0cmFuc2Zvcm0iLGN0PT50LnRyYW5zbGF0ZVN0cihsKGN0KSwwKSk7ZnVuY3Rpb24gZyhjdCl7cmV0dXJuIngtYXhpcy1jbGlwLXBhdGgtIitjdH1mdW5jdGlvbiBfKGN0KXtyZXR1cm4ieC1sYWJlbC1jbGlwLXBhdGgtIitjdH1kLmFwcGVuZCgiY2xpcFBhdGgiKS5hdHRyKCJpZCIsZykuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsLXMpLmF0dHIoInkiLDApLmF0dHIoIndpZHRoIix1KzIqcykuYXR0cigiaGVpZ2h0IixyLmhlaWdodC1hLzIpLGQuYXBwZW5kKCJjbGlwUGF0aCIpLmF0dHIoImlkIixfKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJ4IiwwKS5hdHRyKCJ5IixyLmhlaWdodC1hLzIpLmF0dHIoIndpZHRoIix1KS5hdHRyKCJoZWlnaHQiLGEvMiksZC5hcHBlbmQoImciKS5hdHRyKCJjbGlwLXBhdGgiLGN0PT4idXJsKCMiK2coY3QpKyIpIikuZWFjaChmdW5jdGlvbihjdCl7SHQodGhpcykuY2FsbChTLFo5KGZbY3RdKS50aWNrU2l6ZShyLmhlaWdodC1hKSx1LDQwLHIub3B0aW9ucy5jb2x1bW5zW2N0XS5zY2FsZSl9KSxkLmFwcGVuZCgiZyIpLmNsYXNzZWQoIngtYXhpcy1sYWJlbCIsITApLmF0dHIoImNsaXAtcGF0aCIsY3Q9PiJ1cmwoIyIrXyhjdCkrIikiKS5hcHBlbmQoInRleHQiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLmF0dHIoIngiLHUvMikuYXR0cigieSIsci5oZWlnaHQtMS1hLzQpLnRleHQoY3Q9PnQuc2NoZW1hVmlzaWJsZUNvbHVtbk5hbWUoci52aXNpYmxlU2NoZW1hLGN0KSkuYXBwZW5kKCJ0aXRsZSIpLnRleHQoY3Q9PnQuc2NoZW1hVmlzaWJsZUNvbHVtbk5hbWUoci52aXNpYmxlU2NoZW1hLGN0KSk7bGV0IHk9dGhpcy5fc3ZnLnNlbGVjdEFsbCgiLnktYXhpcyIpLmRhdGEoaSkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ5LWF4aXMiLCEwKS5hdHRyKCJ0cmFuc2Zvcm0iLGN0PT50LnRyYW5zbGF0ZVN0cihyLndpZHRoLTEsYyhjdCkpKTtmdW5jdGlvbiB4KGN0KXtyZXR1cm4ieS1heGlzLWNsaXAtcGF0aC0iK2N0fWZ1bmN0aW9uIGIoY3Qpe3JldHVybiJ5LWxhYmVsLWNsaXAtcGF0aC0iK2N0fXkuYXBwZW5kKCJjbGlwUGF0aCIpLmF0dHIoImlkIix4KS5hcHBlbmQoInJlY3QiKS5hdHRyKCJ4IiwtKHIud2lkdGgtby8yLTEpKS5hdHRyKCJ5IiwtcykuYXR0cigid2lkdGgiLHIud2lkdGgtby8yKS5hdHRyKCJoZWlnaHQiLGgrMipzKSx5LmFwcGVuZCgiY2xpcFBhdGgiKS5hdHRyKCJpZCIsYikuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsLShyLndpZHRoLTEpKS5hdHRyKCJ5IiwwKS5hdHRyKCJ3aWR0aCIsby8yKS5hdHRyKCJoZWlnaHQiLGgpLHkuYXBwZW5kKCJnIikuYXR0cigiY2xpcC1wYXRoIixjdD0+InVybCgjIit4KGN0KSsiKSIpLmVhY2goZnVuY3Rpb24oY3Qpe0h0KHRoaXMpLmNhbGwoUyxsYihwW2N0XSkudGlja1NpemUoci53aWR0aC1vKSxoLDIwLHIub3B0aW9ucy5jb2x1bW5zW2N0K3QubnVtVmlzaWJsZUhQYXJhbXMoci52aXNpYmxlU2NoZW1hKV0uc2NhbGUpfSkseS5hcHBlbmQoImciKS5jbGFzc2VkKCJ5LWF4aXMtbGFiZWwiLCEwKS5hdHRyKCJjbGlwLXBhdGgiLGN0PT4idXJsKCMiK2IoY3QpKyIpIikuYXBwZW5kKCJ0ZXh0IikuYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKS5hdHRyKCJ4IiwtKHIud2lkdGgtby80LTEpKS5hdHRyKCJ5IixoLzIpLmF0dHIoInRyYW5zZm9ybSIsdC5yb3RhdGVTdHIoOTAsLShyLndpZHRoLW8vNC0xKSxoLzIpKS50ZXh0KGN0PT50Lm1ldHJpY05hbWUoci52aXNpYmxlU2NoZW1hLm1ldHJpY0luZm9zW2N0XSkpLmFwcGVuZCgidGl0bGUiKS50ZXh0KGN0PT50Lm1ldHJpY05hbWUoci52aXNpYmxlU2NoZW1hLm1ldHJpY0luZm9zW2N0XSkpO2Z1bmN0aW9uIFMoY3QsWCxldCxkdCxxKXtsZXQgcHQ9TWF0aC5mbG9vcihldC9kdCksaHQ9WC5zY2FsZSgpO2lmKHE9PT0iUVVBTlRJTEUiKXtsZXQgd3Q9aHQucXVhbnRpbGVzKCksa3Q9TWF0aC5jZWlsKHd0Lmxlbmd0aC9wdCk7d3Q9SXIoMCx3dC5sZW5ndGgsa3QpLm1hcChpZT0+d3RbaWVdKSxYLnRpY2tWYWx1ZXMod3QpLnRpY2tGb3JtYXQoeG4oIi0uMmciKSl9KHE9PT0iTElORUFSInx8cT09PSJMT0ciKSYmWC50aWNrcyhwdCksY3QuY2FsbChYKSxjdC5zZWxlY3RBbGwoIi5kb21haW4iKS5yZW1vdmUoKSxjdC5zZWxlY3RBbGwoIi50aWNrIGxpbmUiKS5hdHRyKCJzdHJva2UiLCIjZGRkIil9bGV0IEM9dGhpcy5fc3ZnLnNlbGVjdEFsbCgiLmNlbGwiKS5kYXRhKHE5KG4saSkpLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiY2VsbCIsITApLmF0dHIoInRyYW5zZm9ybSIsKFtjdCxYXSk9PnQudHJhbnNsYXRlU3RyKGwoY3QpLGMoWCkpKSxQPUMuYXBwZW5kKCJnIikuY2xhc3NlZCgiZnJhbWUiLCEwKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJ4IiwtcykuYXR0cigieSIsLXMpLmF0dHIoIndpZHRoIix1KzIqcykuYXR0cigiaGVpZ2h0IixoKzIqcykuYXR0cigic3Ryb2tlIiwiIzAwMCIpLmF0dHIoImZpbGwiLCJub25lIikuYXR0cigic2hhcGUtcmVuZGVyaW5nIiwiY3Jpc3BFZGdlcyIpLGs9bnVsbDtyLm9wdGlvbnMuY29sb3JCeUNvbHVtbkluZGV4IT09dm9pZCAwJiYoaz16bigpLmRvbWFpbih0aGlzLl9jb2xFeHRlbnQodGhpcy5vcHRpb25zLmNvbG9yQnlDb2x1bW5JbmRleCkpLnJhbmdlKFt0aGlzLm9wdGlvbnMubWluQ29sb3IsdGhpcy5vcHRpb25zLm1heENvbG9yXSkuaW50ZXJwb2xhdGUoRV8pKTtsZXQgTz1yLm9wdGlvbnMuY29sb3JCeUNvbHVtbkluZGV4PT09dm9pZCAwPygpPT4icmVkIjooe3Nlc3Npb25Hcm91cDpjdH0pPT5rKHRoaXMuX2NvbFZhbHVlKGN0LHIub3B0aW9ucy5jb2xvckJ5Q29sdW1uSW5kZXgpKTtmdW5jdGlvbiBEKGN0LFgpe3JldHVybiBmW1hdKHIuX2NvbFZhbHVlKGN0LFgpKX1mdW5jdGlvbiBCKGN0LFgpe3JldHVybiBwW1hdKHIuX21ldHJpY1ZhbHVlKGN0LFgpKX1mdW5jdGlvbiBJKGN0LFgpe2xldCBldD1jdC5zZWxlY3RBbGwoIi5kYXRhLW1hcmtlciIpLmRhdGEoKFtwdCxodF0pPT5yLnNlc3Npb25Hcm91cHMuZmlsdGVyKHd0PT5yLl9jb2xWYWx1ZSh3dCxwdCkhPT12b2lkIDAmJnIuX21ldHJpY1ZhbHVlKHd0LGh0KSE9PXZvaWQgMCkubWFwKHd0PT4oe2NvbDpwdCxtZXRyaWM6aHQsc2Vzc2lvbkdyb3VwOnd0LHg6RCh3dCxwdCkseTpCKHd0LGh0KSxzZXNzaW9uR3JvdXBNYXJrZXJzOm51bGx9KSkpLmVudGVyKCkuYXBwZW5kKCJjaXJjbGUiKS5jbGFzc2VkKCJkYXRhLW1hcmtlciIsITApLmF0dHIoImN4Iiwoe3g6cHR9KT0+cHQpLmF0dHIoImN5Iiwoe3k6cHR9KT0+cHQpLmF0dHIoInIiLDIpLmF0dHIoImZpbGwiLFgpLGR0PW5ldyBNYXA7ci5zZXNzaW9uR3JvdXBzLmZvckVhY2gocHQ9PntkdC5zZXQocHQsW10pfSksZXQuZWFjaChmdW5jdGlvbihwdCl7dmFyIGh0OyhodD1kdC5nZXQocHQuc2Vzc2lvbkdyb3VwKSk9PW51bGx8fGh0LnB1c2godGhpcyl9KSxldC5lYWNoKHB0PT57bGV0IGh0PWR0LmdldChwdC5zZXNzaW9uR3JvdXApO3B0LnNlc3Npb25Hcm91cE1hcmtlcnM9bmV3IFNldChodCl9KTtsZXQgcT1uLm1hcChwdD0+aS5tYXAoaHQ9PmV0LmZpbHRlcih3dD0+d3QuY29sPT1wdCYmd3QubWV0cmljPT1odCkpKTtyZXR1cm5bZXQscSxkdF19bGV0W0wsUixGXT1JKEMuYXBwZW5kKCJnIiksTyk7ZnVuY3Rpb24geihjdCxYKXtsZXQgZXQ9W107cmV0dXJuIFJbY3RdW1hdLmVhY2goZnVuY3Rpb24oKXtldC5wdXNoKHRoaXMpfSksRmgoKS54KGR0PT5IdChkdCkuZGF0dW0oKS54KS55KGR0PT5IdChkdCkuZGF0dW0oKS55KS5hZGRBbGwoZXQpfWxldCBVPW4ubWFwKGN0PT5pLm1hcChYPT56KGN0LFgpKSksVz1udWxsO2J0KCkmJihXPUMuZmlsdGVyKGN0PT55My5pc0VxdWFsKGN0LHIuX2JydXNoZWRDZWxsSW5kZXgpKSxjb25zb2xlLmFzc2VydChXLnNpemUoKT09MSxXKSk7bGV0IFo9bmV3IFNldChMLm5vZGVzKCkpO3J0KCk7ZnVuY3Rpb24gcnQoKXtsZXQgY3Q9bmV3IFNldChMLm5vZGVzKCkpO010KCl8fChjdD1vdChyLl9icnVzaGVkQ2VsbEluZGV4LHIuX2JydXNoU2VsZWN0aW9uKSksVHAoQXJyYXkuZnJvbSh0LmZpbHRlclNldChjdCxYPT4hWi5oYXMoWCkpKSkuYXR0cigiZmlsbCIsTyksVHAoQXJyYXkuZnJvbSh0LmZpbHRlclNldChaLFg9PiFjdC5oYXMoWCkpKSkuYXR0cigiZmlsbCIsIiNkZGQiKSxaPWN0fWZ1bmN0aW9uIG90KGN0LFgpe2NvbnNvbGUuYXNzZXJ0KGN0IT09bnVsbCksY29uc29sZS5hc3NlcnQoWCE9PW51bGwpO2xldFtldCxkdF09Y3QscT1uZXcgU2V0O3JldHVybiB0LnF1YWRUcmVlVmlzaXRQb2ludHNJblJlY3QoVVtldF1bZHRdLFhbMF1bMF0sWFswXVsxXSxYWzFdWzBdLFhbMV1bMV0scHQ9PntIdChwdCkuZGF0dW0oKS5zZXNzaW9uR3JvdXBNYXJrZXJzLmZvckVhY2god3Q9PntxLmFkZCh3dCl9KX0pLHF9bGV0IHN0PUdMKCkuZXh0ZW50KFtbLXMrMSwtcysxXSxbdS0xK3MtMSxoLTErcy0xXV0pLm9uKCJzdGFydCIsZnVuY3Rpb24oKXtidCgpJiZXLm5vZGUoKSE9dGhpcyYmc3QubW92ZShXLG51bGwpLFN0KHRoaXMpfSkub24oImJydXNoIixmdW5jdGlvbigpe1N0KHRoaXMpfSkub24oImVuZCIsZnVuY3Rpb24oKXtTdCh0aGlzKX0pO2Z1bmN0aW9uIFN0KGN0KXtsZXQgWD1VTChjdCk7IWJ0KCkmJlg9PT1udWxsfHxidCgpJiZjdD09PVcubm9kZSgpJiZ5My5pc0VxdWFsKFgsci5fYnJ1c2hTZWxlY3Rpb24pfHwoci5fYnJ1c2hTZWxlY3Rpb249WCxYIT09bnVsbD8oVz1IdChjdCksci5fYnJ1c2hlZENlbGxJbmRleD1XLmRhdHVtKCkpOihXPW51bGwsci5fYnJ1c2hlZENlbGxJbmRleD1udWxsKSxydCgpKX1mdW5jdGlvbiBidCgpe3JldHVybiByLl9icnVzaGVkQ2VsbEluZGV4IT09bnVsbCYmci5fYnJ1c2hTZWxlY3Rpb24hPT1udWxsfWZ1bmN0aW9uIE10KCl7cmV0dXJuIWJ0KCl8fHIuX2JydXNoU2VsZWN0aW9uWzBdWzBdPT09ci5fYnJ1c2hTZWxlY3Rpb25bMV1bMF18fHIuX2JydXNoU2VsZWN0aW9uWzBdWzFdPT09ci5fYnJ1c2hTZWxlY3Rpb25bMV1bMV19Qy5jYWxsKHN0KSxidCgpJiZzdC5tb3ZlKFcsci5fYnJ1c2hTZWxlY3Rpb24pO2xldCBsdD1udWxsLEt0PW51bGw7dGhpcy5zZWxlY3RlZFNlc3Npb25Hcm91cCE9PW51bGwmJihLdD1UcChGLmdldCh0aGlzLnNlbGVjdGVkU2Vzc2lvbkdyb3VwKSkuY2xhc3NlZCgic2VsZWN0ZWQtbWFya2VyIiwhMCkpLEMub24oImNsaWNrIixmdW5jdGlvbigpe2xldCBjdD1sdD09PUt0P251bGw6bHQ7aWYoY3Q9PT1LdClyZXR1cm47S3QhPT1udWxsJiZLdC5jbGFzc2VkKCJzZWxlY3RlZC1tYXJrZXIiLCExKSxLdD1jdCxLdCE9PW51bGwmJkt0LmNsYXNzZWQoInNlbGVjdGVkLW1hcmtlciIsITApO2xldCBYPUt0PT09bnVsbD9udWxsOkt0LmRhdHVtKCkuc2Vzc2lvbkdyb3VwO3Iuc2VsZWN0ZWRTZXNzaW9uR3JvdXA9WH0pLm9uKCJtb3VzZW1vdmUgbW91c2VlbnRlciIsZnVuY3Rpb24oW2N0LFhdKXtsZXRbZXQsZHRdPXpvKHRoaXMpLHE9X3QoY3QsWCxldCxkdCwyMCk7bHQhPT1xJiYobHQhPT1udWxsJiZsdC5jbGFzc2VkKCJjbG9zZXN0LW1hcmtlciIsITEpLGx0PXEsbHQhPT1udWxsPyhsdC5jbGFzc2VkKCJjbG9zZXN0LW1hcmtlciIsITApLHIuY2xvc2VzdFNlc3Npb25Hcm91cD1sdC5kYXR1bSgpLnNlc3Npb25Hcm91cCk6ci5jbG9zZXN0U2Vzc2lvbkdyb3VwPW51bGwpfSkub24oIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKFtjdCxYXSl7bHQhPT1udWxsJiYobHQuY2xhc3NlZCgiY2xvc2VzdC1tYXJrZXIiLCExKSxsdD1udWxsLHIuY2xvc2VzdFNlc3Npb25Hcm91cD1udWxsKX0pO2Z1bmN0aW9uIF90KGN0LFgsZXQsZHQscSl7bGV0IHB0PTEvMCxodD1udWxsO3JldHVybiB0LnF1YWRUcmVlVmlzaXRQb2ludHNJbkRpc2soVVtjdF1bWF0sZXQsZHQscSwod3Qsa3QpPT57aWYoWi5oYXMod3QpJiZrdDxwdCl7bGV0IGllPUh0KHd0KS5kYXR1bSgpO3B0PWt0LGh0PWllLnNlc3Npb25Hcm91cH19KSxodD09PW51bGw/bnVsbDpUcChGLmdldChodCkpfXRoaXMuX3N2Zy5zZWxlY3RBbGwoIioiKS5jbGFzc2VkKCJ0Zi1ocGFyYW1zLXNjYXR0ZXItcGxvdC1tYXRyaXgtcGxvdCIsITApfV9jZWxsU2NhbGUodCxyKXtsZXQgbj10aGlzLl9jb2xFeHRlbnQodCksaT16bigpLmRvbWFpbihuKS5yYW5nZShyKTtpZih0aGlzLm9wdGlvbnMuY29sdW1uc1t0XS5zY2FsZT09PSJMSU5FQVIiKXJldHVybiBpO2lmKHRoaXMub3B0aW9ucy5jb2x1bW5zW3RdLnNjYWxlPT09IkxPRyIpcmV0dXJuIG5bMF08PTAmJm5bMV0+PTA/aTpjYygpLmRvbWFpbihuKS5yYW5nZShyKTtpZih0aGlzLm9wdGlvbnMuY29sdW1uc1t0XS5zY2FsZT09PSJRVUFOVElMRSIpe2xldCBvPShyWzFdLXJbMF0pLzE5LGE9SXIoMjApLm1hcChzPT5yWzBdK28qcyk7cmV0dXJuIHJnKCkuZG9tYWluKHkzLnVuaXEodGhpcy5zZXNzaW9uR3JvdXBzLm1hcChzPT50aGlzLl9jb2xWYWx1ZShzLHQpKSkpLnJhbmdlKGEpfWVsc2V7aWYodGhpcy5vcHRpb25zLmNvbHVtbnNbdF0uc2NhbGU9PT0iTk9OX05VTUVSSUMiKXJldHVybiBlZygpLmRvbWFpbih5My51bmlxKHRoaXMuc2Vzc2lvbkdyb3Vwcy5tYXAobz0+dGhpcy5fY29sVmFsdWUobyx0KSkuc29ydCgpKSkucmFuZ2UocikucGFkZGluZyguMSk7dGhyb3ciVW5rbm93biBzY2FsZSBmb3IgY29sdW1uOiAiK3QrIi4gb3B0aW9uczogIit0aGlzLm9wdGlvbnN9fV9jb2xWYWx1ZSh0LHIpe3JldHVybiBCSCh0aGlzLnZpc2libGVTY2hlbWEsdCxyKX1fbWV0cmljVmFsdWUodCxyKXtyZXR1cm4gRkgodGhpcy52aXNpYmxlU2NoZW1hLHQscil9X2NvbEV4dGVudCh0KXtyZXR1cm4gX1AodGhpcy52aXNpYmxlU2NoZW1hLHRoaXMuc2Vzc2lvbkdyb3Vwcyx0KX19OyRvLnRlbXBsYXRlPVFgCiAgICA8ZGl2IGlkPSJjb250YWluZXIiPgogICAgICA8c3ZnIGlkPSJzdmciPjwvc3ZnPgogICAgPC9kaXY+CgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgICAgc3ZnIHsKICAgICAgICBmb250OiAxMHB4IHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIHRleHQgewogICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgLmZyYW1lIHJlY3QgewogICAgICAgIHN0cm9rZTogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAvKiBUaGUgY2xvc2VzdCBkYXRhIHBvaW50IG1hcmtlciB0byB0aGUgbW91c2UgcG9pbnRlci4gV2UgdXNlICFpbXBvcnRhbnQKICAgICAgICAgdG8gb3ZlcnJpZGUgdGhlIGlubGluZSBzdHlsZSB0aGF0IHNldHMgdGhlIHJlZ3VsYXIgc3R5bGUgb2YgYSBtYXJrZXIuCiAgICAgICovCiAgICAgIC5jbG9zZXN0LW1hcmtlciB7CiAgICAgICAgcjogNiAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAvKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGEgcG9pbnQgbWFya2VyLiBXZSB1c2UgIWltcG9ydGFudCB0bwogICAgICAgICBvdmVycmlkZSB0aGUgaW5saW5lIHN0eWxlIHRoYXQgc2V0cyB0aGUgcmVndWxhciBzdHlsZSBvZiBhIG1hcmtlci4gKi8KICAgICAgLnNlbGVjdGVkLW1hcmtlciB7CiAgICAgICAgcjogNiAhaW1wb3J0YW50OwogICAgICAgIGZpbGw6ICMwZjAgIWltcG9ydGFudDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLCRvLnByb3RvdHlwZSwidmlzaWJsZVNjaGVtYSIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sJG8ucHJvdG90eXBlLCJzZXNzaW9uR3JvdXBzIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLCRvLnByb3RvdHlwZSwib3B0aW9ucyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sJG8ucHJvdG90eXBlLCJzZWxlY3RlZFNlc3Npb25Hcm91cCIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sJG8ucHJvdG90eXBlLCJjbG9zZXN0U2Vzc2lvbkdyb3VwIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLEhUTUxFbGVtZW50KV0sJG8ucHJvdG90eXBlLCJfY29udGFpbmVyIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLCRvLnByb3RvdHlwZSwiX3N2ZyIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSwkby5wcm90b3R5cGUsIndpZHRoIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLCRvLnByb3RvdHlwZSwiaGVpZ2h0Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLCRvLnByb3RvdHlwZSwiX2JydXNoZWRDZWxsSW5kZXgiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sJG8ucHJvdG90eXBlLCJfYnJ1c2hTZWxlY3Rpb24iLHZvaWQgMCk7RShbQnQoInNlc3Npb25Hcm91cHMuKiIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sJG8ucHJvdG90eXBlLCJfc2Vzc2lvbkdyb3Vwc0NoYW5nZWQiLG51bGwpO0UoW0J0KCJ2aXNpYmxlU2NoZW1hLioiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLCRvLnByb3RvdHlwZSwiX3Zpc2libGVTY2hlbWFDaGFuZ2VkIixudWxsKTtFKFtCdCgib3B0aW9ucy4qIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSwkby5wcm90b3R5cGUsIl9yZWRyYXciLG51bGwpOyRvPUUoW3l0KCJ0Zi1ocGFyYW1zLXNjYXR0ZXItcGxvdC1tYXRyaXgtcGxvdCIpXSwkbyk7dmFyIHAxPWNsYXNzIGV4dGVuZHMgbXR7X2Nsb3Nlc3RPclNlbGVjdGVkKHQscil7cmV0dXJuIHQhPT1udWxsP3Q6cn19O3AxLnRlbXBsYXRlPVFgCiAgICA8aHBhcmFtcy1zcGxpdC1sYXlvdXQgb3JpZW50YXRpb249InZlcnRpY2FsIj4KICAgICAgPCEtLSBDb250cm9scyBiZWhhdmlvciBvZiB0aGUgc2NhdHRlciBwbG90IG1hdHJpeAogICAgICAgICAgICAgb3V0cHV0cyB0aGUgY29uZmlndXJlZCBvcHRpb25zIHRvIHRoZSBfb3B0aW9ucyBwcm9wZXJ0eS4gLS0+CiAgICAgIDx0Zi1ocGFyYW1zLXNjYWxlLWFuZC1jb2xvci1jb250cm9scwogICAgICAgIHNsb3Q9ImNvbnRlbnQiCiAgICAgICAgY2xhc3M9InNlY3Rpb24iCiAgICAgICAgaWQ9ImNvbnRyb2xzIgogICAgICAgIGNvbmZpZ3VyYXRpb249IltbY29uZmlndXJhdGlvbl1dIgogICAgICAgIHNlc3Npb24tZ3JvdXBzPSJbW3Nlc3Npb25Hcm91cHNdXSIKICAgICAgICBvcHRpb25zPSJ7e19vcHRpb25zfX0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNjYWxlLWFuZC1jb2xvci1jb250cm9scz4KICAgICAgPCEtLSBUaGUgYWN0dWFsIHNjYXR0ZXIgcGxvdCBtYXRyaXggLS0+CiAgICAgIDx0Zi1ocGFyYW1zLXNjYXR0ZXItcGxvdC1tYXRyaXgtcGxvdAogICAgICAgIHNsb3Q9ImNvbnRlbnQiCiAgICAgICAgY2xhc3M9InNlY3Rpb24iCiAgICAgICAgaWQ9InBsb3QiCiAgICAgICAgdmlzaWJsZS1zY2hlbWE9IltbY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hXV0iCiAgICAgICAgc2Vzc2lvbi1ncm91cHM9Iltbc2Vzc2lvbkdyb3Vwc11dIgogICAgICAgIHNlbGVjdGVkLXNlc3Npb24tZ3JvdXA9Int7X3NlbGVjdGVkR3JvdXB9fSIKICAgICAgICBjbG9zZXN0LXNlc3Npb24tZ3JvdXA9Int7X2Nsb3Nlc3RHcm91cH19IgogICAgICAgIG9wdGlvbnM9IltbX29wdGlvbnNdXSIKICAgICAgPgogICAgICA8L3RmLWhwYXJhbXMtc2NhdHRlci1wbG90LW1hdHJpeC1wbG90PgogICAgICA8dGYtaHBhcmFtcy1zZXNzaW9uLWdyb3VwLXZhbHVlcwogICAgICAgIHNsb3Q9ImNvbnRlbnQiCiAgICAgICAgY2xhc3M9InNlY3Rpb24iCiAgICAgICAgaWQ9InZhbHVlcyIKICAgICAgICB2aXNpYmxlLXNjaGVtYT0iW1tjb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWFdXSIKICAgICAgICBzZXNzaW9uLWdyb3VwPSJbW19jbG9zZXN0T3JTZWxlY3RlZCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2Nsb3Nlc3RHcm91cCwgX3NlbGVjdGVkR3JvdXApXV0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNlc3Npb24tZ3JvdXAtdmFsdWVzPgogICAgICA8IS0tIFNob3dzIHNlc3Npb24gZ3JvdXAgZGV0YWlscyBmb3IgdGhlIGNsaWNrZWQgbWFya2VyLiAtLT4KICAgICAgPHRmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC1kZXRhaWxzCiAgICAgICAgc2xvdD0iY29udGVudCIKICAgICAgICBjbGFzcz0ic2VjdGlvbiIKICAgICAgICBpZD0iZGV0YWlscyIKICAgICAgICBiYWNrZW5kPSJbW2JhY2tlbmRdXSIKICAgICAgICBleHBlcmltZW50LW5hbWU9IltbZXhwZXJpbWVudE5hbWVdXSIKICAgICAgICBzZXNzaW9uLWdyb3VwPSJbW19zZWxlY3RlZEdyb3VwXV0iCiAgICAgICAgdmlzaWJsZS1zY2hlbWE9IltbY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hXV0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNlc3Npb24tZ3JvdXAtZGV0YWlscz4KICAgIDwvaHBhcmFtcy1zcGxpdC1sYXlvdXQ+CiAgICA8c3R5bGU+CiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICB9CiAgICAgICNjb250cm9scyB7CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGZsZXgtYmFzaXM6IGF1dG87CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWF4LWhlaWdodDogZml0LWNvbnRlbnQ7CiAgICAgIH0KICAgICAgI3Bsb3QgewogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICBmbGV4LWJhc2lzOiBhdXRvOwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG1heC1oZWlnaHQ6IGZpdC1jb250ZW50OwogICAgICB9CiAgICAgICN2YWx1ZXMgewogICAgICAgIGZsZXgtZ3JvdzogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBmbGV4LWJhc2lzOiBhdXRvOwogICAgICAgIGhlaWdodDogMTE1cHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBtYXgtaGVpZ2h0OiBmaXQtY29udGVudDsKICAgICAgfQogICAgICAjZGV0YWlscyB7CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgICAgIGZsZXgtYmFzaXM6IGF1dG87CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWF4LWhlaWdodDogZml0LWNvbnRlbnQ7CiAgICAgIH0KICAgICAgdmFhZGluLXNwbGl0LWxheW91dCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICA8L3N0eWxlPgogIGA7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0scDEucHJvdG90eXBlLCJiYWNrZW5kIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLHAxLnByb3RvdHlwZSwiZXhwZXJpbWVudE5hbWUiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0scDEucHJvdG90eXBlLCJjb25maWd1cmF0aW9uIix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSxwMS5wcm90b3R5cGUsInNlc3Npb25Hcm91cHMiLHZvaWQgMCk7cDE9RShbeXQoInRmLWhwYXJhbXMtc2NhdHRlci1wbG90LW1hdHJpeC12aWV3IildLHAxKTt2YXIgJGY9Y2xhc3MgZXh0ZW5kcyBtdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fc2VsZWN0ZWRUYWI9MCx0aGlzLl90YWJsZVRhYkNsaWNrZWQ9KCk9Pnt0aGlzLmxvZ0FjdGlvbigiVGFiIENsaWNrZWQiLCJUYWJsZSIpfSx0aGlzLl9wYXJhbGxlbENvb3Jkc1RhYkNsaWNrZWQ9KCk9Pnt0aGlzLmxvZ0FjdGlvbigiVGFiIENsaWNrZWQiLCJQYXJhbGxlbCBDb29yZHMiKX0sdGhpcy5fc2NhdHRlclBsb3RNYXRyaXhUYWJDbGlja2VkPSgpPT57dGhpcy5sb2dBY3Rpb24oIlRhYiBDbGlja2VkIiwiU2NhdHRlciBQbG90IE1hdHJpeCIpfSx0aGlzLmxvZ0FjdGlvbj0odCxyKT0+e2xldCBuPXdpbmRvdy5kYXRhTGF5ZXJ8fFtdO2Z1bmN0aW9uIGkoKXtuLnB1c2goYXJndW1lbnRzKX1pKCJldmVudCIsdCx7ZXZlbnRfY2F0ZWdvcnk6IkhQYXJhbXMiLGV2ZW50X2xhYmVsOnJ9KX0sdGhpcy5sb2dBY3Rpb24oIlBsdWdpbiBMb2FkIil9fTskZi50ZW1wbGF0ZT1RYAogICAgPHBhcGVyLWhlYWRlci1wYW5lbD4KICAgICAgPHBhcGVyLXRvb2xiYXIgc2xvdD0iaGVhZGVyIiBjbGFzcz0idGFiLWJhciI+CiAgICAgICAgPHBhcGVyLXRhYnMgc2VsZWN0ZWQ9Int7X3NlbGVjdGVkVGFifX0iIHNsb3Q9InRvcCI+CiAgICAgICAgICA8IS0tIHZpZXctaWQgY2FuIGJlIHVzZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMgdG8gbG9jYXRlIGEgdGFiLgogICAgICAgICAgICAgICBJdCBzaG91bGQgYmUgdGhlIG5hbWUgb2YgdGhlIHJvb3QgZWxlbWVudCBpbXBsZW1lbnRpbmcgdGhlIHZpZXcKICAgICAgICAgICAgICAgd2l0aG91dCB0aGUgJ3RmLWhwYXJhbXMtJyBwcmVmaXguIC0tPgogICAgICAgICAgPHBhcGVyLXRhYiBvbi1jbGljaz0iX3RhYmxlVGFiQ2xpY2tlZCIgdmlldy1pZD0idGFibGUtdmlldyI+CiAgICAgICAgICAgIFRBQkxFIFZJRVcKICAgICAgICAgIDwvcGFwZXItdGFiPgogICAgICAgICAgPHBhcGVyLXRhYgogICAgICAgICAgICBvbi1jbGljaz0iX3BhcmFsbGVsQ29vcmRzVGFiQ2xpY2tlZCIKICAgICAgICAgICAgdmlldy1pZD0icGFyYWxsZWwtY29vcmRzLXZpZXciCiAgICAgICAgICA+CiAgICAgICAgICAgIFBBUkFMTEVMIENPT1JESU5BVEVTIFZJRVcKICAgICAgICAgIDwvcGFwZXItdGFiPgogICAgICAgICAgPHBhcGVyLXRhYgogICAgICAgICAgICBvbi1jbGljaz0iX3NjYXR0ZXJQbG90TWF0cml4VGFiQ2xpY2tlZCIKICAgICAgICAgICAgdmlldy1pZD0ic2NhdHRlci1wbG90LW1hdHJpeC12aWV3IgogICAgICAgICAgPgogICAgICAgICAgICBTQ0FUVEVSIFBMT1QgTUFUUklYIFZJRVcKICAgICAgICAgIDwvcGFwZXItdGFiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVscC1hbmQtZmVlZGJhY2siPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbYnVnUmVwb3J0VXJsXV0iPgogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmJD0iW1tidWdSZXBvcnRVcmxdXSIKICAgICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5rIgogICAgICAgICAgICAgICAgcmVsPSJub29wZW5lciBub3JlZmVycmVyIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxwYXBlci1idXR0b24KICAgICAgICAgICAgICAgICAgaWQ9ImJ1Zy1yZXBvcnQiCiAgICAgICAgICAgICAgICAgIHJhaXNlZAogICAgICAgICAgICAgICAgICB0aXRsZT0iU2VuZCBhIGJ1ZyByZXBvcnQgb3IgZmVhdHVyZSByZXF1ZXN0IgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICBCdWcgUmVwb3J0IC8gRmVhdHVyZSBSZXF1ZXN0CiAgICAgICAgICAgICAgICA8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1toZWxwVXJsXV0iPgogICAgICAgICAgICAgIDxhIGhyZWYkPSJbW2hlbHBVcmxdXSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI+CiAgICAgICAgICAgICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICAgICAgICAgICAgaWNvbj0iaGVscC1vdXRsaW5lIgogICAgICAgICAgICAgICAgICB0aXRsZT0iVmlldyBkb2N1bWVudGF0aW9uIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3BhcGVyLXRhYnM+CiAgICAgIDwvcGFwZXItdG9vbGJhcj4KICAgICAgPGlyb24tcGFnZXMgc2VsZWN0ZWQ9IltbX3NlbGVjdGVkVGFiXV0iIGNsYXNzPSJmaXQgdGFiLXZpZXciPgogICAgICAgIDxkaXYgaWQ9IjAiIGNsYXNzPSJ0YWIiPgogICAgICAgICAgPHRmLWhwYXJhbXMtdGFibGUtdmlldwogICAgICAgICAgICBiYWNrZW5kPSJbW2JhY2tlbmRdXSIKICAgICAgICAgICAgZXhwZXJpbWVudC1uYW1lPSJbW2V4cGVyaW1lbnROYW1lXV0iCiAgICAgICAgICAgIHZpc2libGUtc2NoZW1hPSJbW2NvbmZpZ3VyYXRpb24udmlzaWJsZVNjaGVtYV1dIgogICAgICAgICAgICBzZXNzaW9uLWdyb3Vwcz0iW1tzZXNzaW9uR3JvdXBzXV0iCiAgICAgICAgICAgIGVuYWJsZS1zaG93LW1ldHJpY3MKICAgICAgICAgID4KICAgICAgICAgIDwvdGYtaHBhcmFtcy10YWJsZS12aWV3PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgaWQ9IjEiIGNsYXNzPSJ0YWIiPgogICAgICAgICAgPHRmLWhwYXJhbXMtcGFyYWxsZWwtY29vcmRzLXZpZXcKICAgICAgICAgICAgYmFja2VuZD0iW1tiYWNrZW5kXV0iCiAgICAgICAgICAgIGV4cGVyaW1lbnQtbmFtZT0iW1tleHBlcmltZW50TmFtZV1dIgogICAgICAgICAgICBjb25maWd1cmF0aW9uPSJbW2NvbmZpZ3VyYXRpb25dXSIKICAgICAgICAgICAgc2Vzc2lvbi1ncm91cHM9Iltbc2Vzc2lvbkdyb3Vwc11dIgogICAgICAgICAgPgogICAgICAgICAgPC90Zi1ocGFyYW1zLXBhcmFsbGVsLWNvb3Jkcy12aWV3PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgaWQ9IjIiIGNsYXNzPSJ0YWIiPgogICAgICAgICAgPHRmLWhwYXJhbXMtc2NhdHRlci1wbG90LW1hdHJpeC12aWV3CiAgICAgICAgICAgIGJhY2tlbmQ9IltbYmFja2VuZF1dIgogICAgICAgICAgICBleHBlcmltZW50LW5hbWU9IltbZXhwZXJpbWVudE5hbWVdXSIKICAgICAgICAgICAgY29uZmlndXJhdGlvbj0iW1tjb25maWd1cmF0aW9uXV0iCiAgICAgICAgICAgIHNlc3Npb24tZ3JvdXBzPSJbW3Nlc3Npb25Hcm91cHNdXSIKICAgICAgICAgID4KICAgICAgICAgIDwvdGYtaHBhcmFtcy1zY2F0dGVyLXBsb3QtbWF0cml4LXZpZXc+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvaXJvbi1wYWdlcz4KICAgIDwvcGFwZXItaGVhZGVyLXBhbmVsPgoKICAgIDxzdHlsZT4KICAgICAgLnRhYi12aWV3IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLnRhYi1iYXIgewogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigKICAgICAgICAgIC0tdGItdG9vbGJhci1iYWNrZ3JvdW5kLWNvbG9yLAogICAgICAgICAgdmFyKC0tdGItb3JhbmdlLXN0cm9uZykKICAgICAgICApOwogICAgICB9CiAgICAgIC50YWIgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQogICAgICBwYXBlci10YWJzIHsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIC0tcGFwZXItdGFicy1zZWxlY3Rpb24tYmFyLWNvbG9yOiB3aGl0ZTsKICAgICAgICAtLXBhcGVyLXRhYnMtY29udGVudDogewogICAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAgICAgfQogICAgICB9CiAgICAgIHRmLWhwYXJhbXMtdGFibGUtdmlldyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICAgIC5oZWxwLWFuZC1mZWVkYmFjayB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7IC8qIEVuc3VyZSB0aGF0IGljb25zIHN0YXkgYWxpZ25lZCAqLwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KICAgICAgI2J1Zy1yZXBvcnQgewogICAgICAgIGJvcmRlcjogc29saWQgYmxhY2s7CiAgICAgICAgYmFja2dyb3VuZDogcmVkOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZHM7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1heC13aWR0aDogMTUwcHg7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgfQogICAgICAuaGVscC1hbmQtZmVlZGJhY2sgYSB7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLCRmLnByb3RvdHlwZSwiYmFja2VuZCIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSwkZi5wcm90b3R5cGUsImhlbHBVcmwiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sJGYucHJvdG90eXBlLCJidWdSZXBvcnRVcmwiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sJGYucHJvdG90eXBlLCJleHBlcmltZW50TmFtZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSwkZi5wcm90b3R5cGUsImNvbmZpZ3VyYXRpb24iLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLCRmLnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwcyIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSwkZi5wcm90b3R5cGUsIl9zZWxlY3RlZFRhYiIsdm9pZCAwKTskZj1FKFt5dCgidGYtaHBhcmFtcy1zZXNzaW9ucy1wYW5lIiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sJGYpO3ZhciByaD1jbGFzcyBleHRlbmRzIEd0KG10KXtyZWxvYWQoKXt0aGlzLiRbInF1ZXJ5LXBhbmUiXS5yZWxvYWQoKX19O3JoLnRlbXBsYXRlPVFgCiAgICA8aHBhcmFtcy1zcGxpdC1sYXlvdXQ+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgY2xhc3M9InNpZGViYXIiPgogICAgICAgIDx0Zi1ocGFyYW1zLXF1ZXJ5LXBhbmUKICAgICAgICAgIGlkPSJxdWVyeS1wYW5lIgogICAgICAgICAgYmFja2VuZD0iW1tiYWNrZW5kXV0iCiAgICAgICAgICBleHBlcmltZW50LW5hbWU9IltbZXhwZXJpbWVudE5hbWVdXSIKICAgICAgICAgIGNvbmZpZ3VyYXRpb249Int7X2NvbmZpZ3VyYXRpb259fSIKICAgICAgICAgIHNlc3Npb24tZ3JvdXBzPSJ7e19zZXNzaW9uR3JvdXBzfX0iCiAgICAgICAgICBkYXRhLWxvYWRlZC13aXRoLW5vbi1lbXB0eS1ocGFyYW1zPSJ7e19kYXRhTG9hZGVkV2l0aE5vbkVtcHR5SHBhcmFtc319IgogICAgICAgICAgZGF0YS1sb2FkZWQtd2l0aC1lbXB0eS1ocGFyYW1zPSJ7e19kYXRhTG9hZGVkV2l0aEVtcHR5SHBhcmFtc319IgogICAgICAgID4KICAgICAgICA8L3RmLWhwYXJhbXMtcXVlcnktcGFuZT4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgY2xhc3M9ImNlbnRlciI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19kYXRhTG9hZGVkV2l0aEVtcHR5SHBhcmFtc11dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtd2FybmluZyI+CiAgICAgICAgICAgIDxoMz5ObyBocGFyYW1zIGRhdGEgd2FzIGZvdW5kLjwvaDM+CiAgICAgICAgICAgIDxwPlByb2JhYmxlIGNhdXNlczo8L3A+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+WW91IGhhdmVu4oCZdCB3cml0dGVuIGFueSBocGFyYW1zIGRhdGEgdG8geW91ciBldmVudCBmaWxlcy48L2xpPgogICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIEV2ZW50IGZpbGVzIGFyZSBzdGlsbCBiZWluZyBsb2FkZWQgKHRyeSByZWxvYWRpbmcgdGhpcyBwYWdlKS4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaT5UZW5zb3JCb2FyZCBjYW7igJl0IGZpbmQgeW91ciBldmVudCBmaWxlcy48L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW914oCZcmUgbmV3IHRvIHVzaW5nIFRlbnNvckJvYXJkLCBhbmQgd2FudCB0byBmaW5kIG91dCBob3cgdG8KICAgICAgICAgICAgICBhZGQgZGF0YSBhbmQgc2V0IHVwIHlvdXIgZXZlbnQgZmlsZXMsIGNoZWNrIG91dCB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIgogICAgICAgICAgICAgICAgPlJFQURNRTwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgcGVyaGFwcyB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvZ2V0X3N0YXJ0ZWQvc3VtbWFyaWVzX2FuZF90ZW5zb3Jib2FyZCIKICAgICAgICAgICAgICAgID5UZW5zb3JCb2FyZCB0dXRvcmlhbDwvYQogICAgICAgICAgICAgID4uCiAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdSB0aGluayBUZW5zb3JCb2FyZCBpcyBjb25maWd1cmVkIHByb3Blcmx5LCBwbGVhc2Ugc2VlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCNteS10ZW5zb3Jib2FyZC1pc250LXNob3dpbmctYW55LWRhdGEtd2hhdHMtd3JvbmciCiAgICAgICAgICAgICAgICA+dGhlIHNlY3Rpb24gb2YgdGhlIFJFQURNRSBkZXZvdGVkIHRvIG1pc3NpbmcgZGF0YSBwcm9ibGVtczwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgY29uc2lkZXIgZmlsaW5nIGFuIGlzc3VlIG9uIEdpdEh1Yi4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KCiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19kYXRhTG9hZGVkV2l0aE5vbkVtcHR5SHBhcmFtc11dIj4KICAgICAgICAgIDx0Zi1ocGFyYW1zLXNlc3Npb25zLXBhbmUKICAgICAgICAgICAgaWQ9InNlc3Npb25zLXBhbmUiCiAgICAgICAgICAgIGJhY2tlbmQ9IltbYmFja2VuZF1dIgogICAgICAgICAgICBoZWxwLXVybD0iW1toZWxwVXJsXV0iCiAgICAgICAgICAgIGJ1Zy1yZXBvcnQtdXJsPSJbW2J1Z1JlcG9ydFVybF1dIgogICAgICAgICAgICBleHBlcmltZW50LW5hbWU9IltbZXhwZXJpbWVudE5hbWVdXSIKICAgICAgICAgICAgY29uZmlndXJhdGlvbj0iW1tfY29uZmlndXJhdGlvbl1dIgogICAgICAgICAgICBzZXNzaW9uLWdyb3Vwcz0iW1tfc2Vzc2lvbkdyb3Vwc11dIgogICAgICAgICAgPgogICAgICAgICAgPC90Zi1ocGFyYW1zLXNlc3Npb25zLXBhbmU+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICA8L2hwYXJhbXMtc3BsaXQtbGF5b3V0PgogICAgPHN0eWxlPgogICAgICBocGFyYW1zLXNwbGl0LWxheW91dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyIHsKICAgICAgICB3aWR0aDogMjAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBmbGV4LWdyb3c6IDA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgbWluLXdpZHRoOiAxMCU7CiAgICAgIH0KCiAgICAgIC5jZW50ZXIgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICB3aWR0aDogODAlOwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLm5vLWRhdGEtd2FybmluZyB7CiAgICAgICAgbWF4LXdpZHRoOiA1NDBweDsKICAgICAgICBtYXJnaW46IDgwcHggYXV0byAwIGF1dG87CiAgICAgIH0KCiAgICAgIGEgewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1saW5rKTsKICAgICAgfQoKICAgICAgYTp2aXNpdGVkIHsKICAgICAgICBjb2xvcjogdmFyKC0tdGItbGluay12aXNpdGVkKTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLHUzKV0scmgucHJvdG90eXBlLCJiYWNrZW5kIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLHJoLnByb3RvdHlwZSwiZXhwZXJpbWVudE5hbWUiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0scmgucHJvdG90eXBlLCJoZWxwVXJsIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLHJoLnByb3RvdHlwZSwiYnVnUmVwb3J0VXJsIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLHJoLnByb3RvdHlwZSwiX2NvbmZpZ3VyYXRpb24iLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLHJoLnByb3RvdHlwZSwiX3Nlc3Npb25Hcm91cHMiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxyaC5wcm90b3R5cGUsIl9kYXRhTG9hZGVkV2l0aE5vbkVtcHR5SHBhcmFtcyIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHJoLnByb3RvdHlwZSwiX2RhdGFMb2FkZWRXaXRoRW1wdHlIcGFyYW1zIix2b2lkIDApO3JoPUUoW3l0KCJ0Zi1ocGFyYW1zLW1haW4iKV0scmgpO3ZhciBwaHI9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5nZXQoInRlbnNvcmJvYXJkQ29sYWIiKT09PSJ0cnVlIixsVj1jbGFzcyBleHRlbmRzIEd0KG10KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fYmFja2VuZD1uZXcgdTMobmV3IEFlLHBocil9cmVsb2FkKCl7dGhpcy4kWyJocGFyYW1zLW1haW4iXS5yZWxvYWQoKX19O2xWLnRlbXBsYXRlPVFgCiAgICA8IS0tIFRlbnNvckJvYXJkIGRvZXMgbm90IHNwZWNpZnkgYW4gZXhwZXJpbWVudE5hbWUuIEN1cnJlbnRseSBpdCBvbmx5CiAgICAgICAgIHN1cHBvcnRzIG9uZSBleHBlcmltZW50IHBlciBpbnZvY2F0aW9uLiAtLT4KICAgIDx0Zi1ocGFyYW1zLW1haW4KICAgICAgaWQ9ImhwYXJhbXMtbWFpbiIKICAgICAgYmFja2VuZD0iW1tfYmFja2VuZF1dIgogICAgICBleHBlcmltZW50LW5hbWU9IiIKICAgID4KICAgIDwvdGYtaHBhcmFtcy1tYWluPgogIGA7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sbFYucHJvdG90eXBlLCJfYmFja2VuZCIsdm9pZCAwKTtsVj1FKFt5dCgidGYtaHBhcmFtcy1kYXNoYm9hcmQiKV0sbFYpO3ZhciBkMT1FZShPZSgpLDEpO3ZhciBfbj1jbGFzcyBleHRlbmRzIEd0KG10KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5hY3R1YWxTaXplPSExLHRoaXMuYnJpZ2h0bmVzc0FkanVzdG1lbnQ9LjUsdGhpcy5jb250cmFzdFBlcmNlbnRhZ2U9MCx0aGlzLl9tZXRhZGF0YUNhbmNlbGxlcj1uZXcgYW4sdGhpcy5faW1hZ2VDYW5jZWxsZXI9bmV3IGFuLHRoaXMuX3N0ZXBzPVtdLHRoaXMuX2lzSW1hZ2VMb2FkaW5nPSExfWdldCBfcnVuQ29sb3IoKXt2YXIgdD10aGlzLnJ1bjtyZXR1cm4gZm4odCl9Z2V0IF9oYXNBdExlYXN0T25lU3RlcCgpe3ZhciB0PXRoaXMuX3N0ZXBzO3JldHVybiEhdCYmdC5sZW5ndGg+MH1nZXQgX2hhc011bHRpcGxlU3RlcHMoKXt2YXIgdD10aGlzLl9zdGVwcztyZXR1cm4hIXQmJnQubGVuZ3RoPjF9Z2V0IF9jdXJyZW50U3RlcCgpe3ZhciB0PXRoaXMuX3N0ZXBzLHI9dGhpcy5fc3RlcEluZGV4O3JldHVybiB0W3JdfHxudWxsfWdldCBfc3RlcFZhbHVlKCl7dmFyIHQ9dGhpcy5fY3VycmVudFN0ZXA7cmV0dXJuIHQ/dC5zdGVwOjB9Z2V0IF9jdXJyZW50V2FsbFRpbWUoKXt2YXIgdD10aGlzLl9jdXJyZW50U3RlcDtyZXR1cm4gdD9zMih0LndhbGxfdGltZSk6IiJ9Z2V0IF9tYXhTdGVwSW5kZXgoKXt2YXIgdD10aGlzLl9zdGVwcztyZXR1cm4gdC5sZW5ndGgtMX1nZXQgX3NhbXBsZVRleHQoKXt2YXIgdD10aGlzLnNhbXBsZTtyZXR1cm5gJHt0KzF9YH1nZXQgX2hhc011bHRpcGxlU2FtcGxlcygpe3ZhciB0PXRoaXMub2ZTYW1wbGVzO3JldHVybiB0PjF9X2dldEFyaWFFeHBhbmRlZCgpe3JldHVybiB0aGlzLmFjdHVhbFNpemU/InRydWUiOiJmYWxzZSJ9YXR0YWNoZWQoKXt0aGlzLnJlbG9hZCgpfXJlbG9hZCgpe2lmKCF0aGlzLmlzQXR0YWNoZWQpcmV0dXJuO3RoaXMuX21ldGFkYXRhQ2FuY2VsbGVyLmNhbmNlbEFsbCgpO2xldCB0PW5ldyBVUkxTZWFyY2hQYXJhbXMoe3RhZzp0aGlzLnRhZyxydW46dGhpcy5ydW4sc2FtcGxlOnRoaXMuc2FtcGxlfSkscj1fZSgpLnBsdWdpblJvdXRlKCJpbWFnZXMiLCIvaW1hZ2VzIix0KSxuPXRoaXMuX21ldGFkYXRhQ2FuY2VsbGVyLmNhbmNlbGxhYmxlKGk9PntpZihpLmNhbmNlbGxlZClyZXR1cm47bGV0IGE9aS52YWx1ZS5tYXAodGhpcy5fY3JlYXRlU3RlcERhdHVtLmJpbmQodGhpcykpO3RoaXMuc2V0KCJfc3RlcHMiLGEpLHRoaXMuc2V0KCJfc3RlcEluZGV4IixhLmxlbmd0aC0xKX0pO3RoaXMucmVxdWVzdE1hbmFnZXIucmVxdWVzdChyKS50aGVuKG4pfV9jcmVhdGVTdGVwRGF0dW0odCl7bGV0IHI9bmV3IFVSTFNlYXJjaFBhcmFtcyh0LnF1ZXJ5KTtyLmFwcGVuZCgidHMiLHQud2FsbF90aW1lKTtsZXQgbj1fZSgpLnBsdWdpblJvdXRlRm9yU3JjKCJpbWFnZXMiLCIvaW5kaXZpZHVhbEltYWdlIixyKTtyZXR1cm57d2FsbF90aW1lOm5ldyBEYXRlKHQud2FsbF90aW1lKjFlMyksc3RlcDp0LnN0ZXAsdXJsOm59fV91cGRhdGVJbWFnZVVybCgpe3ZhciB0PXRoaXMuX2N1cnJlbnRTdGVwLHI9dGhpcy5icmlnaHRuZXNzQWRqdXN0bWVudCxuPXRoaXMuY29udHJhc3RQZXJjZW50YWdlO2lmKCF0KXJldHVybjtsZXQgaT1uZXcgSW1hZ2U7dGhpcy5faW1hZ2VDYW5jZWxsZXIuY2FuY2VsQWxsKCksaS5vbmxvYWQ9aS5vbmVycm9yPXRoaXMuX2ltYWdlQ2FuY2VsbGVyLmNhbmNlbGxhYmxlKG89PntpZihvLmNhbmNlbGxlZClyZXR1cm47bGV0IGE9dGhpcy4kJCgiI21haW4taW1hZ2UtY29udGFpbmVyIik7YSYmKGEudGV4dENvbnRlbnQ9IiIsenQoYSkuYXBwZW5kQ2hpbGQoaSkpLHRoaXMuc2V0KCJfaXNJbWFnZUxvYWRpbmciLCExKX0pLmJpbmQodGhpcyksaS5zdHlsZS5maWx0ZXI9YGNvbnRyYXN0KCR7bn0lKSBgLGkuc3R5bGUuZmlsdGVyKz1gYnJpZ2h0bmVzcygke3J9KWAsdGhpcy5zZXQoIl9pc0ltYWdlTG9hZGluZyIsITApLGkuc3JjPXQudXJsfV9oYW5kbGVUYXAodCl7dGhpcy5zZXQoImFjdHVhbFNpemUiLCF0aGlzLmFjdHVhbFNpemUpfV90b0xvY2FsZVN0cmluZyh0KXtyZXR1cm4gdC50b0xvY2FsZVN0cmluZygpfX07X24udGVtcGxhdGU9UWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcKICAgICAgdGFnPSJbW3RhZ11dIgogICAgICBydW49IltbcnVuXV0iCiAgICAgIGRpc3BsYXktbmFtZT0iW1t0YWdNZXRhZGF0YS5kaXNwbGF5TmFtZV1dIgogICAgICBkZXNjcmlwdGlvbj0iW1t0YWdNZXRhZGF0YS5kZXNjcmlwdGlvbl1dIgogICAgICBjb2xvcj0iW1tfcnVuQ29sb3JdXSIKICAgID4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNNdWx0aXBsZVNhbXBsZXNdXSI+CiAgICAgICAgPGRpdj5zYW1wbGU6IFtbX3NhbXBsZVRleHRdXSBvZiBbW29mU2FtcGxlc11dPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaGFzQXRMZWFzdE9uZVN0ZXBdXSI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1yb3ciPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1sYWJlbCI+CiAgICAgICAgICAgIHN0ZXAKICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkIgogICAgICAgICAgICAgID5bW190b0xvY2FsZVN0cmluZyhfc3RlcFZhbHVlKV1dPC9zcGFuCiAgICAgICAgICAgID4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1sYWJlbCBoZWFkaW5nLXJpZ2h0IGRhdGV0aW1lIj4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19jdXJyZW50V2FsbFRpbWVdXSI+CiAgICAgICAgICAgICAgW1tfY3VycmVudFdhbGxUaW1lXV0KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwgcmlnaHQiPgogICAgICAgICAgICA8cGFwZXItc3Bpbm5lci1saXRlIGFjdGl2ZSBoaWRkZW4kPSJbWyFfaXNJbWFnZUxvYWRpbmddXSI+CiAgICAgICAgICAgIDwvcGFwZXItc3Bpbm5lci1saXRlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaGFzTXVsdGlwbGVTdGVwc11dIj4KICAgICAgICA8ZGl2PgogICAgICAgICAgPHBhcGVyLXNsaWRlcgogICAgICAgICAgICBpZD0ic3RlcHMiCiAgICAgICAgICAgIGltbWVkaWF0ZS12YWx1ZT0ie3tfc3RlcEluZGV4fX0iCiAgICAgICAgICAgIG1heD0iW1tfbWF4U3RlcEluZGV4XV0iCiAgICAgICAgICAgIG1heC1tYXJrZXJzPSJbW19tYXhTdGVwSW5kZXhdXSIKICAgICAgICAgICAgc25hcHMKICAgICAgICAgICAgc3RlcD0iMSIKICAgICAgICAgICAgdmFsdWU9Int7X3N0ZXBJbmRleH19IgogICAgICAgICAgPjwvcGFwZXItc2xpZGVyPgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgPC90Zi1jYXJkLWhlYWRpbmc+CgogICAgPCEtLSBTZW1hbnRpY2FsbHkgYSBidXR0b24gYnV0IDxpbWc+IGluc2lkZSBhIDxidXR0b24+IGRpc2FsbG93cyB1c2VyIHRvIGRvCiAgICBhbiBpbnRlcmVzdGluZyBvcGVyYXRpb24gbGlrZSAiQ29weSBJbWFnZSIgaW4gbm9uLUNocm9taXVtIGJyb3dzZXJzLiAtLT4KICAgIDxhCiAgICAgIGlkPSJtYWluLWltYWdlLWNvbnRhaW5lciIKICAgICAgcm9sZT0iYnV0dG9uIgogICAgICBhcmlhLWxhYmVsPSJUb2dnbGUgYWN0dWFsIHNpemUiCiAgICAgIGFyaWEtZXhwYW5kZWQkPSJbW19nZXRBcmlhRXhwYW5kZWQoYWN0dWFsU2l6ZSldXSIKICAgICAgb24tdGFwPSJfaGFuZGxlVGFwIgogICAgPjwvYT4KCiAgICA8c3R5bGUgaW5jbHVkZT0idGYtY2FyZC1oZWFkaW5nLXN0eWxlIj4KICAgICAgLyoqIE1ha2UgYnV0dG9uIGEgZGl2LiAqLwogICAgICBidXR0b24gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC8qKiBGaXJlZm94OiBHZXQgcmlkIG9mIGRvdHRlZCBsaW5lIGluc2lkZSBidXR0b24uICovCiAgICAgIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC8qKiBGaXJlZm94OiBTaW11bGF0ZSBDaHJvbWUncyBvdXRlciBnbG93IG9uIGJ1dHRvbiB3aGVuIGZvY3VzZWQuICovCiAgICAgIGJ1dHRvbjotbW96LWZvY3VzcmluZyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3gtc2hhZG93OiAwcHggMHB4IDFweCAycHggSGlnaGxpZ2h0OwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDM1MHB4OwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAwIDE1cHggNDBweCAwOwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgIH0KCiAgICAgIC8qKiBXaGVuIGFjdHVhbCBzaXplIHNob3duIGlzIG9uLCB1c2UgdGhlIGFjdHVhbCBpbWFnZSB3aWR0aC4gKi8KICAgICAgOmhvc3QoW2FjdHVhbC1zaXplXSkgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgfQoKICAgICAgOmhvc3QoW2FjdHVhbC1zaXplXSkgI21haW4taW1hZ2UtY29udGFpbmVyIHsKICAgICAgICBtYXgtaGVpZ2h0OiBub25lOwogICAgICAgIHdpZHRoOiBhdXRvOwogICAgICB9CgogICAgICA6aG9zdChbYWN0dWFsLXNpemVdKSAjbWFpbi1pbWFnZS1jb250YWluZXIgaW1nIHsKICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgfQoKICAgICAgcGFwZXItc3Bpbm5lci1saXRlIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tOwogICAgICAgIC0tcGFwZXItc3Bpbm5lci1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgIH0KCiAgICAgICNzdGVwcyB7CiAgICAgICAgaGVpZ2h0OiAxNXB4OwogICAgICAgIG1hcmdpbjogMCAwIDAgLTE1cHg7CiAgICAgICAgLyoKICAgICAgICAgKiAzMSBjb21lcyBmcm9tIGFkZGluZyBhIHBhZGRpbmcgb2YgMTVweCBmcm9tIGJvdGggc2lkZXMgb2YgdGhlCiAgICAgICAgICogcGFwZXItc2xpZGVyLCBzdWJ0cmFjdGluZyAxcHggc28gdGhhdCB0aGUgc2xpZGVyIHdpZHRoIGFsaWducwogICAgICAgICAqIHdpdGggdGhlIGltYWdlICh0aGUgbGFzdCBzbGlkZXIgbWFya2VyIHRha2VzIHVwIDFweCksIGFuZAogICAgICAgICAqIGFkZGluZyAycHggdG8gYWNjb3VudCBmb3IgYSBib3JkZXIgb2YgMXB4IG9uIGJvdGggc2lkZXMgb2YKICAgICAgICAgKiB0aGUgaW1hZ2UuIDMwIC0gMSArIDIuCiAgICAgICAgICovCiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDMxcHgpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWFjdGl2ZS1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXIta25vYi1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXIta25vYi1zdGFydC1ib3JkZXItY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWtub2Itc3RhcnQtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLW1hcmtlcnMtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLXBpbi1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXItcGluLXN0YXJ0LWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgfQoKICAgICAgI21haW4taW1hZ2UtY29udGFpbmVyIHsKICAgICAgICBtYXgtaGVpZ2h0OiAxMDI0cHg7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIH0KCiAgICAgICNtYWluLWltYWdlLWNvbnRhaW5lciBpbWcgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7CiAgICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBwaXhlbGF0ZWQ7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICB9CgogICAgICBwYXBlci1pY29uLWJ1dHRvbiB7CiAgICAgICAgY29sb3I6ICMyMTk2ZjM7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CiAgICAgIHBhcGVyLWljb24tYnV0dG9uW3NlbGVjdGVkXSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGItdWktbGlnaHQtYWNjZW50KTsKICAgICAgfQogICAgICBbaGlkZGVuXSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLF9uLnByb3RvdHlwZSwicnVuIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLF9uLnByb3RvdHlwZSwidGFnIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLF9uLnByb3RvdHlwZSwic2FtcGxlIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLF9uLnByb3RvdHlwZSwib2ZTYW1wbGVzIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLF9uLnByb3RvdHlwZSwidGFnTWV0YWRhdGEiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sX24ucHJvdG90eXBlLCJhY3R1YWxTaXplIix2b2lkIDApO0UoW0Eoe3R5cGU6TnVtYmVyfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLF9uLnByb3RvdHlwZSwiYnJpZ2h0bmVzc0FkanVzdG1lbnQiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXJ9KSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sX24ucHJvdG90eXBlLCJjb250cmFzdFBlcmNlbnRhZ2UiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsQWUpXSxfbi5wcm90b3R5cGUsInJlcXVlc3RNYW5hZ2VyIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLF9uLnByb3RvdHlwZSwiX21ldGFkYXRhQ2FuY2VsbGVyIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLF9uLnByb3RvdHlwZSwiX2ltYWdlQ2FuY2VsbGVyIix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXksbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sX24ucHJvdG90eXBlLCJfc3RlcHMiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLF9uLnByb3RvdHlwZSwiX3N0ZXBJbmRleCIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLF9uLnByb3RvdHlwZSwiX2lzSW1hZ2VMb2FkaW5nIix2b2lkIDApO0UoW1J0KCJydW4iKSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxfbi5wcm90b3R5cGUsIl9ydW5Db2xvciIsbnVsbCk7RShbUnQoIl9zdGVwcyIpLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxfbi5wcm90b3R5cGUsIl9oYXNBdExlYXN0T25lU3RlcCIsbnVsbCk7RShbUnQoIl9zdGVwcyIpLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxfbi5wcm90b3R5cGUsIl9oYXNNdWx0aXBsZVN0ZXBzIixudWxsKTtFKFtSdCgiX3N0ZXBzIiwiX3N0ZXBJbmRleCIpLHcoImRlc2lnbjp0eXBlIixPYmplY3QpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLF9uLnByb3RvdHlwZSwiX2N1cnJlbnRTdGVwIixudWxsKTtFKFtSdCgiX2N1cnJlbnRTdGVwIiksdygiZGVzaWduOnR5cGUiLE51bWJlciksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sX24ucHJvdG90eXBlLCJfc3RlcFZhbHVlIixudWxsKTtFKFtSdCgiX2N1cnJlbnRTdGVwIiksdygiZGVzaWduOnR5cGUiLFN0cmluZyksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sX24ucHJvdG90eXBlLCJfY3VycmVudFdhbGxUaW1lIixudWxsKTtFKFtSdCgiX3N0ZXBzIiksdygiZGVzaWduOnR5cGUiLE51bWJlciksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sX24ucHJvdG90eXBlLCJfbWF4U3RlcEluZGV4IixudWxsKTtFKFtSdCgic2FtcGxlIiksdygiZGVzaWduOnR5cGUiLFN0cmluZyksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sX24ucHJvdG90eXBlLCJfc2FtcGxlVGV4dCIsbnVsbCk7RShbUnQoIm9mU2FtcGxlcyIpLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxfbi5wcm90b3R5cGUsIl9oYXNNdWx0aXBsZVNhbXBsZXMiLG51bGwpO0UoW0J0KCJydW4iLCJ0YWciKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLF9uLnByb3RvdHlwZSwicmVsb2FkIixudWxsKTtFKFtCdCgiX2N1cnJlbnRTdGVwIiwiYnJpZ2h0bmVzc0FkanVzdG1lbnQiLCJjb250cmFzdFBlcmNlbnRhZ2UiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLF9uLnByb3RvdHlwZSwiX3VwZGF0ZUltYWdlVXJsIixudWxsKTtfbj1FKFt5dCgidGYtaW1hZ2UtbG9hZGVyIildLF9uKTt2YXIgSW89Y2xhc3MgZXh0ZW5kcyBHdChtdCl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVsb2FkT25SZWFkeT0hMCx0aGlzLl9kZWZhdWx0QnJpZ2h0bmVzc0FkanVzdG1lbnQ9MSx0aGlzLl9kZWZhdWx0Q29udHJhc3RQZXJjZW50YWdlPTEwMCx0aGlzLl9icmlnaHRuZXNzQWRqdXN0bWVudD0xLHRoaXMuX2NvbnRyYXN0UGVyY2VudGFnZT0xMDAsdGhpcy5fcmVxdWVzdE1hbmFnZXI9bmV3IEFlfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9cmVsb2FkKCl7dGhpcy5fZmV0Y2hUYWdzKCkudGhlbigoKT0+e3RoaXMuX3JlbG9hZEltYWdlcygpfSl9X2ZldGNoVGFncygpe2xldCB0PV9lKCkucGx1Z2luUm91dGUoImltYWdlcyIsIi90YWdzIik7cmV0dXJuIHRoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodCkudGhlbihyPT57aWYoZDEuaXNFcXVhbChyLHRoaXMuX3J1blRvVGFnSW5mbykpcmV0dXJuO2xldCBuPWQxLm1hcFZhbHVlcyhyLG89Pk9iamVjdC5rZXlzKG8pKSxpPSRpKG4pO3RoaXMuc2V0KCJfZGF0YU5vdEZvdW5kIixpLmxlbmd0aD09PTApLHRoaXMuc2V0KCJfcnVuVG9UYWdJbmZvIixyKSx0aGlzLmFzeW5jKCgpPT57dGhpcy5zZXQoIl9jYXRlZ29yaWVzRG9tUmVhZHkiLCEwKX0pfSl9X3JlbG9hZEltYWdlcygpe3ZhciB0Oyh0PXRoaXMucm9vdCk9PW51bGx8fHQucXVlcnlTZWxlY3RvckFsbCgidGYtaW1hZ2UtbG9hZGVyIikuZm9yRWFjaChyPT57ci5yZWxvYWQoKX0pfV9zaG91bGRPcGVuKHQpe3JldHVybiB0PD0yfV9yZXNldEJyaWdodG5lc3MoKXt0aGlzLl9icmlnaHRuZXNzQWRqdXN0bWVudD10aGlzLl9kZWZhdWx0QnJpZ2h0bmVzc0FkanVzdG1lbnR9X3Jlc2V0Q29udHJhc3QoKXt0aGlzLl9jb250cmFzdFBlcmNlbnRhZ2U9dGhpcy5fZGVmYXVsdENvbnRyYXN0UGVyY2VudGFnZX1nZXQgX2JyaWdodG5lc3NJc0RlZmF1bHQoKXt2YXIgdD10aGlzLl9icmlnaHRuZXNzQWRqdXN0bWVudDtyZXR1cm4gdD09PXRoaXMuX2RlZmF1bHRCcmlnaHRuZXNzQWRqdXN0bWVudH1nZXQgX2NvbnRyYXN0SXNEZWZhdWx0KCl7dmFyIHQ9dGhpcy5fY29udHJhc3RQZXJjZW50YWdlO3JldHVybiB0PT09dGhpcy5fZGVmYXVsdENvbnRyYXN0UGVyY2VudGFnZX1nZXQgX2NhdGVnb3JpZXMoKXt2YXIgdD10aGlzLl9ydW5Ub1RhZ0luZm8scj10aGlzLl9zZWxlY3RlZFJ1bnMsbj10aGlzLl90YWdGaWx0ZXIsaT10aGlzLl9jYXRlZ29yaWVzRG9tUmVhZHk7bGV0IG89ZDEubWFwVmFsdWVzKHQsYz0+T2JqZWN0LmtleXMoYykpLGE9UWwobyxyLG4pO2Z1bmN0aW9uIHMoYyl7bGV0IHU9dFtjLnJ1bl1bYy50YWddLnNhbXBsZXM7cmV0dXJuIGQxLnJhbmdlKHUpLm1hcChoPT5PYmplY3QuYXNzaWduKHt9LGMse3NhbXBsZTpoLG9mU2FtcGxlczp1fSkpfXJldHVybiBhLm1hcChjPT5PYmplY3QuYXNzaWduKHt9LGMse2l0ZW1zOltdLmNvbmNhdC5hcHBseShbXSxjLml0ZW1zLm1hcChzKSl9KSl9X3RhZ01ldGFkYXRhKHQscixuKXtyZXR1cm4gdFtyXVtuXX19O0lvLnRlbXBsYXRlPVFgCiAgICA8dGYtZGFzaGJvYXJkLWxheW91dD4KICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhciIgc2xvdD0ic2lkZWJhciI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGluZS1pdGVtIj4KICAgICAgICAgICAgICA8cGFwZXItY2hlY2tib3ggY2hlY2tlZD0ie3tfYWN0dWFsU2l6ZX19IgogICAgICAgICAgICAgICAgPlNob3cgYWN0dWFsIGltYWdlIHNpemU8L3BhcGVyLWNoZWNrYm94CiAgICAgICAgICAgICAgPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIj4KICAgICAgICAgICAgPGgzIGNsYXNzPSJ0b29sdGlwLWNvbnRhaW5lciI+QnJpZ2h0bmVzcyBhZGp1c3RtZW50PC9oMz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVzZXR0YWJsZS1zbGlkZXItY29udGFpbmVyIj4KICAgICAgICAgICAgICA8cGFwZXItc2xpZGVyCiAgICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgICBtYXg9IjIiCiAgICAgICAgICAgICAgICBzbmFwcwogICAgICAgICAgICAgICAgcGluCiAgICAgICAgICAgICAgICBzdGVwPSIwLjAxIgogICAgICAgICAgICAgICAgdmFsdWU9Int7X2JyaWdodG5lc3NBZGp1c3RtZW50fX0iCiAgICAgICAgICAgICAgICBpbW1lZGlhdGUtdmFsdWU9Int7X2JyaWdodG5lc3NBZGp1c3RtZW50fX0iCiAgICAgICAgICAgICAgPjwvcGFwZXItc2xpZGVyPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ4LWJ1dHRvbiIKICAgICAgICAgICAgICAgIG9uLXRhcD0iX3Jlc2V0QnJpZ2h0bmVzcyIKICAgICAgICAgICAgICAgIGRpc2FibGVkPSJbW19icmlnaHRuZXNzSXNEZWZhdWx0XV0iCiAgICAgICAgICAgICAgICA+UmVzZXQ8L3BhcGVyLWJ1dHRvbgogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDxoMyBjbGFzcz0idG9vbHRpcC1jb250YWluZXIiPkNvbnRyYXN0IGFkanVzdG1lbnQ8L2gzPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZXNldHRhYmxlLXNsaWRlci1jb250YWluZXIiPgogICAgICAgICAgICAgIDxwYXBlci1zbGlkZXIKICAgICAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgICAgIG1heD0iNTAwIgogICAgICAgICAgICAgICAgc25hcHMKICAgICAgICAgICAgICAgIHBpbgogICAgICAgICAgICAgICAgc3RlcD0iMSIKICAgICAgICAgICAgICAgIHZhbHVlPSJ7e19jb250cmFzdFBlcmNlbnRhZ2V9fSIKICAgICAgICAgICAgICAgIGltbWVkaWF0ZS12YWx1ZT0ie3tfY29udHJhc3RQZXJjZW50YWdlfX0iCiAgICAgICAgICAgICAgPjwvcGFwZXItc2xpZGVyPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ4LWJ1dHRvbiIKICAgICAgICAgICAgICAgIG9uLXRhcD0iX3Jlc2V0Q29udHJhc3QiCiAgICAgICAgICAgICAgICBkaXNhYmxlZD0iW1tfY29udHJhc3RJc0RlZmF1bHRdXSIKICAgICAgICAgICAgICAgID5SZXNldDwvcGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiBydW5zLXNlbGVjdG9yIj4KICAgICAgICAgIDx0Zi1ydW5zLXNlbGVjdG9yCiAgICAgICAgICAgIGlkPSJydW5zLXNlbGVjdG9yIgogICAgICAgICAgICBzZWxlY3RlZC1ydW5zPSJ7e19zZWxlY3RlZFJ1bnN9fSIKICAgICAgICAgID48L3RmLXJ1bnMtc2VsZWN0b3I+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjZW50ZXIiIHNsb3Q9ImNlbnRlciI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuby1kYXRhLXdhcm5pbmciPgogICAgICAgICAgICA8aDM+Tm8gaW1hZ2UgZGF0YSB3YXMgZm91bmQuPC9oMz4KICAgICAgICAgICAgPHA+UHJvYmFibGUgY2F1c2VzOjwvcD4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT5Zb3UgaGF2ZW7igJl0IHdyaXR0ZW4gYW55IGltYWdlIGRhdGEgdG8geW91ciBldmVudCBmaWxlcy48L2xpPgogICAgICAgICAgICAgIDxsaT5UZW5zb3JCb2FyZCBjYW7igJl0IGZpbmQgeW91ciBldmVudCBmaWxlcy48L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW914oCZcmUgbmV3IHRvIHVzaW5nIFRlbnNvckJvYXJkLCBhbmQgd2FudCB0byBmaW5kIG91dCBob3cgdG8KICAgICAgICAgICAgICBhZGQgZGF0YSBhbmQgc2V0IHVwIHlvdXIgZXZlbnQgZmlsZXMsIGNoZWNrIG91dCB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIgogICAgICAgICAgICAgICAgPlJFQURNRTwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgcGVyaGFwcyB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvZ2V0X3N0YXJ0ZWQvc3VtbWFyaWVzX2FuZF90ZW5zb3Jib2FyZCIKICAgICAgICAgICAgICAgID5UZW5zb3JCb2FyZCB0dXRvcmlhbDwvYQogICAgICAgICAgICAgID4uCiAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdSB0aGluayBUZW5zb3JCb2FyZCBpcyBjb25maWd1cmVkIHByb3Blcmx5LCBwbGVhc2Ugc2VlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCNteS10ZW5zb3Jib2FyZC1pc250LXNob3dpbmctYW55LWRhdGEtd2hhdHMtd3JvbmciCiAgICAgICAgICAgICAgICA+dGhlIHNlY3Rpb24gb2YgdGhlIFJFQURNRSBkZXZvdGVkIHRvIG1pc3NpbmcgZGF0YSBwcm9ibGVtczwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgY29uc2lkZXIgZmlsaW5nIGFuIGlzc3VlIG9uIEdpdEh1Yi4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8dGYtdGFnLWZpbHRlcmVyIHRhZy1maWx0ZXI9Int7X3RhZ0ZpbHRlcn19Ij48L3RmLXRhZy1maWx0ZXJlcj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2NhdGVnb3JpZXNdXSIgYXM9ImNhdGVnb3J5Ij4KICAgICAgICAgICAgPHRmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3CiAgICAgICAgICAgICAgY2F0ZWdvcnk9IltbY2F0ZWdvcnldXSIKICAgICAgICAgICAgICBpbml0aWFsLW9wZW5lZD0iW1tfc2hvdWxkT3BlbihpbmRleCldXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0Zi1pbWFnZS1sb2FkZXIKICAgICAgICAgICAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgICAgICAgICAgICBydW49IltbaXRlbS5ydW5dXSIKICAgICAgICAgICAgICAgICAgdGFnPSJbW2l0ZW0udGFnXV0iCiAgICAgICAgICAgICAgICAgIHNhbXBsZT0iW1tpdGVtLnNhbXBsZV1dIgogICAgICAgICAgICAgICAgICBvZi1zYW1wbGVzPSJbW2l0ZW0ub2ZTYW1wbGVzXV0iCiAgICAgICAgICAgICAgICAgIHRhZy1tZXRhZGF0YT0iW1tfdGFnTWV0YWRhdGEoX3J1blRvVGFnSW5mbywgaXRlbS5ydW4sIGl0ZW0udGFnKV1dIgogICAgICAgICAgICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbX3JlcXVlc3RNYW5hZ2VyXV0iCiAgICAgICAgICAgICAgICAgIGFjdHVhbC1zaXplPSJbW19hY3R1YWxTaXplXV0iCiAgICAgICAgICAgICAgICAgIGJyaWdodG5lc3MtYWRqdXN0bWVudD0iW1tfYnJpZ2h0bmVzc0FkanVzdG1lbnRdXSIKICAgICAgICAgICAgICAgICAgY29udHJhc3QtcGVyY2VudGFnZT0iW1tfY29udHJhc3RQZXJjZW50YWdlXV0iCiAgICAgICAgICAgICAgICA+PC90Zi1pbWFnZS1sb2FkZXI+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC90Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldz4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICA8L3RmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICA8c3R5bGUgaW5jbHVkZT0iZGFzaGJvYXJkLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICAucmVzZXR0YWJsZS1zbGlkZXItY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9CiAgICAgIC5yZXNldHRhYmxlLXNsaWRlci1jb250YWluZXIgcGFwZXItc2xpZGVyIHsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgIH0KICAgICAgLnJlc2V0dGFibGUtc2xpZGVyLWNvbnRhaW5lciBwYXBlci1idXR0b24gewogICAgICAgIGZsZXgtZ3JvdzogMDsKICAgICAgfQogICAgICAucmVzZXR0YWJsZS1zbGlkZXItY29udGFpbmVyIHBhcGVyLWJ1dHRvbltkaXNhYmxlZF0gewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OwogICAgICB9CiAgICAgIC54LWJ1dHRvbiB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRiLXVpLWxpZ2h0LWFjY2VudCk7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTsKICAgICAgfQogICAgICAubm8tZGF0YS13YXJuaW5nIHsKICAgICAgICBtYXgtd2lkdGg6IDU0MHB4OwogICAgICAgIG1hcmdpbjogODBweCBhdXRvIDAgYXV0bzsKICAgICAgfQogICAgICBwYXBlci1zbGlkZXIgewogICAgICAgIC0tcGFwZXItc2xpZGVyLWFjdGl2ZS1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXIta25vYi1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXIta25vYi1zdGFydC1ib3JkZXItY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWtub2Itc3RhcnQtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLW1hcmtlcnMtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLXBpbi1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXItcGluLXN0YXJ0LWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSW8ucHJvdG90eXBlLCJyZWxvYWRPblJlYWR5Iix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSxJby5wcm90b3R5cGUsIl9zZWxlY3RlZFJ1bnMiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSW8ucHJvdG90eXBlLCJfcnVuVG9UYWdJbmZvIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSW8ucHJvdG90eXBlLCJfZGF0YU5vdEZvdW5kIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSW8ucHJvdG90eXBlLCJfYWN0dWFsU2l6ZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxJby5wcm90b3R5cGUsIl9kZWZhdWx0QnJpZ2h0bmVzc0FkanVzdG1lbnQiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXJ9KSx3KCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sSW8ucHJvdG90eXBlLCJfZGVmYXVsdENvbnRyYXN0UGVyY2VudGFnZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxJby5wcm90b3R5cGUsIl9icmlnaHRuZXNzQWRqdXN0bWVudCIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxJby5wcm90b3R5cGUsIl9jb250cmFzdFBlcmNlbnRhZ2UiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sSW8ucHJvdG90eXBlLCJfdGFnRmlsdGVyIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sSW8ucHJvdG90eXBlLCJfY2F0ZWdvcmllc0RvbVJlYWR5Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLElvLnByb3RvdHlwZSwiX3JlcXVlc3RNYW5hZ2VyIix2b2lkIDApO0UoW1J0KCJfYnJpZ2h0bmVzc0FkanVzdG1lbnQiKSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSW8ucHJvdG90eXBlLCJfYnJpZ2h0bmVzc0lzRGVmYXVsdCIsbnVsbCk7RShbUnQoIl9jb250cmFzdFBlcmNlbnRhZ2UiKSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSW8ucHJvdG90eXBlLCJfY29udHJhc3RJc0RlZmF1bHQiLG51bGwpO0UoW1J0KCJfcnVuVG9UYWdJbmZvIiwiX3NlbGVjdGVkUnVucyIsIl90YWdGaWx0ZXIiLCJfY2F0ZWdvcmllc0RvbVJlYWR5IiksdygiZGVzaWduOnR5cGUiLEFycmF5KSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxJby5wcm90b3R5cGUsIl9jYXRlZ29yaWVzIixudWxsKTtJbz1FKFt5dCgidGYtaW1hZ2UtZGFzaGJvYXJkIildLElvKTt2YXIgbHg9RWUoT2UoKSwxKTt2YXIgbTE7KGZ1bmN0aW9uKGUpe2VbZS5DQU5DRUxMRUQ9MV09IkNBTkNFTExFRCJ9KShtMXx8KG0xPXt9KSk7dmFyIGNWOyhmdW5jdGlvbihlKXtlW2UuVkVSVEVYPTFdPSJWRVJURVgiLGVbZS5GQUNFPTJdPSJGQUNFIixlW2UuQ09MT1I9M109IkNPTE9SIn0pKGNWfHwoY1Y9e30pKTt2YXIgcWN0OyhmdW5jdGlvbihlKXtlLlZFUlRFWD0iZmxvYXQzMiIsZS5GQUNFPSJpbnQzMiIsZS5DT0xPUj0idWludDgifSkocWN0fHwocWN0PXt9KSk7dmFyIElQPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuX2NhbmNlbGxlcj1uZXcgYW4sdGhpcy5fcmVxdWVzdE1hbmFnZXI9dH1yZWxvYWQodCxyLG4pe3JldHVybiB0aGlzLl9jYW5jZWxsZXIuY2FuY2VsQWxsKCksdGhpcy5fZmV0Y2hNZXRhZGF0YSh0LHIsbil9X2ZldGNoRGF0YUJ5U3RlcCh0LHIsbixpLG8sYSl7bGV0IHM9X2UoKS5wbHVnaW5Sb3V0ZSgibWVzaCIsIi9kYXRhIixuZXcgVVJMU2VhcmNoUGFyYW1zKHt0YWc6cixydW46dCxjb250ZW50X3R5cGU6bixzYW1wbGU6U3RyaW5nKGkpLHN0ZXA6U3RyaW5nKG8pfSkpLGw9ZnVuY3Rpb24odSl7bGV0IGY9W107Zm9yKGxldCBwPTA7cDx1Lmxlbmd0aC8zO3ArKyl7bGV0IGQ9W107Zm9yKGxldCBnPTA7ZzwzO2crKylkLnB1c2godVtwKjMrZ10pO2YucHVzaChkKX1yZXR1cm4gZn0sYz10aGlzLl9jYW5jZWxsZXIuY2FuY2VsbGFibGUodT0+e2lmKHUuY2FuY2VsbGVkKXJldHVybiBQcm9taXNlLnJlamVjdCh7Y29kZTptMS5DQU5DRUxMRUQsbWVzc2FnZToiUmVzcG9uc2Ugd2FzIGludmFsaWRhdGVkLiJ9KTtsZXQgaD11LnZhbHVlO3N3aXRjaChuKXtjYXNlIlZFUlRFWCI6YS52ZXJ0aWNlcz1sKG5ldyBGbG9hdDMyQXJyYXkoaCkpO2JyZWFrO2Nhc2UiRkFDRSI6YS5mYWNlcz1sKG5ldyBJbnQzMkFycmF5KGgpKTticmVhaztjYXNlIkNPTE9SIjphLmNvbG9ycz1sKG5ldyBVaW50OEFycmF5KGgpKTticmVha31yZXR1cm4gYX0pO3JldHVybiB0aGlzLl9yZXF1ZXN0TWFuYWdlci5mZXRjaChzLHttZXRob2Q6IkdFVCIsaGVhZGVyczp7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIsY29udGVudFR5cGU6cWN0W25dfX0pLnRoZW4odT0+dS5hcnJheUJ1ZmZlcigpKS50aGVuKGMpfWZldGNoRGF0YSh0LHIsbixpKXtsZXQgbz1bXSxhPW5ldyBNYXA7cmV0dXJuIE9iamVjdC5rZXlzKGNWKS5mb3JFYWNoKHM9PntsZXQgbD0xPDxjVltzXTt0LmNvbXBvbmVudHMmbCYmby5wdXNoKHRoaXMuX2ZldGNoRGF0YUJ5U3RlcChyLG4scyxpLHQuc3RlcCxhKSl9KSxQcm9taXNlLmFsbChvKX1fZmV0Y2hNZXRhZGF0YSh0LHIsbil7dGhpcy5fY2FuY2VsbGVyLmNhbmNlbEFsbCgpO2xldCBpPV9lKCkucGx1Z2luUm91dGUoIm1lc2giLCIvbWVzaGVzIixuZXcgVVJMU2VhcmNoUGFyYW1zKHt0YWc6cixydW46dCxzYW1wbGU6bn0pKSxvPXRoaXMuX2NhbmNlbGxlci5jYW5jZWxsYWJsZShhPT5hLmNhbmNlbGxlZD9Qcm9taXNlLnJlamVjdCh7Y29kZTptMS5DQU5DRUxMRUQsbWVzc2FnZToiUmVzcG9uc2Ugd2FzIGludmFsaWRhdGVkLiJ9KTphLnZhbHVlKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIuZmV0Y2goaSkudGhlbihhPT5hLmpzb24oKSkudGhlbihvKS50aGVuKHRoaXMuX3Byb2Nlc3NNZXRhZGF0YS5iaW5kKHRoaXMpKX1fcHJvY2Vzc01ldGFkYXRhKHQpe2lmKCF0KXJldHVybjtsZXQgcj1uZXcgTWFwO2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKXtsZXQgbz10W2ldO3IuaGFzKG8uc3RlcCl8fHIuc2V0KG8uc3RlcCxbXSksci5nZXQoby5zdGVwKS5wdXNoKG8pfWxldCBuPVtdO3JldHVybiByLmZvckVhY2goaT0+e2xldCBvPXRoaXMuX2NyZWF0ZVN0ZXBEYXR1bShpWzBdKTtuLnB1c2gobyl9KSxufV9jcmVhdGVTdGVwRGF0dW0odCl7cmV0dXJue3dhbGxfdGltZTpuZXcgRGF0ZSh0LndhbGxfdGltZSoxZTMpLHN0ZXA6dC5zdGVwLGNvbmZpZzp0LmNvbmZpZyxjb250ZW50X3R5cGU6dC5jb250ZW50X3R5cGUsY29tcG9uZW50czp0LmNvbXBvbmVudHN9fX07dmFyIHdNPXt9O1pzKHdNLHtBQ0VTRmlsbWljVG9uZU1hcHBpbmc6KCk9PnBmZSxBZGRFcXVhdGlvbjooKT0+RTEsQWRkT3BlcmF0aW9uOigpPT5jZmUsQWRkaXRpdmVBbmltYXRpb25CbGVuZE1vZGU6KCk9PmtodCxBZGRpdGl2ZUJsZW5kaW5nOigpPT5NdXQsQWxwaGFGb3JtYXQ6KCk9PnhmZSxBbHdheXNEZXB0aDooKT0+cmZlLEFsd2F5c1N0ZW5jaWxGdW5jOigpPT5PZmUsQW1iaWVudExpZ2h0OigpPT5MNixBbWJpZW50TGlnaHRQcm9iZTooKT0+elUsQW5pbWF0aW9uQ2xpcDooKT0+dHgsQW5pbWF0aW9uTG9hZGVyOigpPT5vaHQsQW5pbWF0aW9uTWl4ZXI6KCk9PlZVLEFuaW1hdGlvbk9iamVjdEdyb3VwOigpPT5IVSxBbmltYXRpb25VdGlsczooKT0+am4sQXJjQ3VydmU6KCk9Pmw2LEFycmF5Q2FtZXJhOigpPT5uNixBcnJvd0hlbHBlcjooKT0+TWh0LEF1ZGlvOigpPT5ENixBdWRpb0FuYWx5c2VyOigpPT5GVSxBdWRpb0NvbnRleHQ6KCk9PnpodCxBdWRpb0xpc3RlbmVyOigpPT5jaHQsQXVkaW9Mb2FkZXI6KCk9PkRVLEF4ZXNIZWxwZXI6KCk9PnZNLEF4aXNIZWxwZXI6KCk9PkswcixCYWNrU2lkZTooKT0+SWksQmFzaWNEZXB0aFBhY2tpbmc6KCk9PlJmZSxCYXNpY1NoYWRvd01hcDooKT0+bWhyLEJpbmFyeVRleHR1cmVMb2FkZXI6KCk9PmVfcixCb25lOigpPT5zTSxCb29sZWFuS2V5ZnJhbWVUcmFjazooKT0+c20sQm91bmRpbmdCb3hIZWxwZXI6KCk9PlowcixCb3gyOigpPT5LMCxCb3gzOigpPT50YSxCb3gzSGVscGVyOigpPT53aHQsQm94QnVmZmVyR2VvbWV0cnk6KCk9PnRwLEJveEdlb21ldHJ5OigpPT50cCxCb3hIZWxwZXI6KCk9PnlNLEJ1ZmZlckF0dHJpYnV0ZTooKT0+SmUsQnVmZmVyR2VvbWV0cnk6KCk9PlBlLEJ1ZmZlckdlb21ldHJ5TG9hZGVyOigpPT5SVSxCeXRlVHlwZTooKT0+bWZlLENhY2hlOigpPT5leCxDYW1lcmE6KCk9Pk4xLENhbWVyYUhlbHBlcjooKT0+Ymh0LENhbnZhc1JlbmRlcmVyOigpPT5uX3IsQ2FudmFzVGV4dHVyZTooKT0+eFUsQ2F0bXVsbFJvbUN1cnZlMzooKT0+YzYsQ2luZW9uVG9uZU1hcHBpbmc6KCk9PmZmZSxDaXJjbGVCdWZmZXJHZW9tZXRyeTooKT0+QjEsQ2lyY2xlR2VvbWV0cnk6KCk9PkIxLENsYW1wVG9FZGdlV3JhcHBpbmc6KCk9PkpvLENsb2NrOigpPT5tTSxDb2xvcjooKT0+bmUsQ29sb3JLZXlmcmFtZVRyYWNrOigpPT5NNixDb21wcmVzc2VkVGV4dHVyZTooKT0+YTYsQ29tcHJlc3NlZFRleHR1cmVMb2FkZXI6KCk9PmFodCxDb25lQnVmZmVyR2VvbWV0cnk6KCk9PkgxLENvbmVHZW9tZXRyeTooKT0+SDEsQ3ViZUNhbWVyYTooKT0+SjMsQ3ViZVJlZmxlY3Rpb25NYXBwaW5nOigpPT5peCxDdWJlUmVmcmFjdGlvbk1hcHBpbmc6KCk9Pm94LEN1YmVUZXh0dXJlOigpPT5WMCxDdWJlVGV4dHVyZUxvYWRlcjooKT0+VFUsQ3ViZVVWUmVmbGVjdGlvbk1hcHBpbmc6KCk9PnhNLEN1YmVVVlJlZnJhY3Rpb25NYXBwaW5nOigpPT56NixDdWJpY0JlemllckN1cnZlOigpPT5jTSxDdWJpY0JlemllckN1cnZlMzooKT0+dTYsQ3ViaWNJbnRlcnBvbGFudDooKT0+U1UsQ3VsbEZhY2VCYWNrOigpPT5TdXQsQ3VsbEZhY2VGcm9udDooKT0+VmhlLEN1bGxGYWNlRnJvbnRCYWNrOigpPT5kaHIsQ3VsbEZhY2VOb25lOigpPT5IaGUsQ3VydmU6KCk9PnBzLEN1cnZlUGF0aDooKT0+d1UsQ3VzdG9tQmxlbmRpbmc6KCk9PnFoZSxDdXN0b21Ub25lTWFwcGluZzooKT0+ZGZlLEN5bGluZGVyQnVmZmVyR2VvbWV0cnk6KCk9PmFtLEN5bGluZGVyR2VvbWV0cnk6KCk9PmFtLEN5bGluZHJpY2FsOigpPT5taHQsRGF0YVRleHR1cmU6KCk9PlFkLERhdGFUZXh0dXJlMkRBcnJheTooKT0+dE0sRGF0YVRleHR1cmUzRDooKT0+cjYsRGF0YVRleHR1cmVMb2FkZXI6KCk9PkNVLERhdGFVdGlsczooKT0+VGh0LERlY3JlbWVudFN0ZW5jaWxPcDooKT0+VGhyLERlY3JlbWVudFdyYXBTdGVuY2lsT3A6KCk9PkFocixEZWZhdWx0TG9hZGluZ01hbmFnZXI6KCk9PmlwZSxEZXB0aEZvcm1hdDooKT0+RjAsRGVwdGhTdGVuY2lsRm9ybWF0OigpPT5SMSxEZXB0aFRleHR1cmU6KCk9Pm5NLERpcmVjdGlvbmFsTGlnaHQ6KCk9Pkk2LERpcmVjdGlvbmFsTGlnaHRIZWxwZXI6KCk9PnhodCxEaXNjcmV0ZUludGVycG9sYW50OigpPT5NVSxEb2RlY2FoZWRyb25CdWZmZXJHZW9tZXRyeTooKT0+VjEsRG9kZWNhaGVkcm9uR2VvbWV0cnk6KCk9PlYxLERvdWJsZVNpZGU6KCk9PmsxLERzdEFscGhhRmFjdG9yOigpPT5LaGUsRHN0Q29sb3JGYWN0b3I6KCk9PkpoZSxEeW5hbWljQnVmZmVyQXR0cmlidXRlOigpPT5IMHIsRHluYW1pY0NvcHlVc2FnZTooKT0+VWhyLER5bmFtaWNEcmF3VXNhZ2U6KCk9PlkzLER5bmFtaWNSZWFkVXNhZ2U6KCk9PkJocixFZGdlc0dlb21ldHJ5OigpPT5zNixFZGdlc0hlbHBlcjooKT0+SjByLEVsbGlwc2VDdXJ2ZTooKT0+VTEsRXF1YWxEZXB0aDooKT0+aWZlLEVxdWFsU3RlbmNpbEZ1bmM6KCk9PmtocixFcXVpcmVjdGFuZ3VsYXJSZWZsZWN0aW9uTWFwcGluZzooKT0+WVAsRXF1aXJlY3Rhbmd1bGFyUmVmcmFjdGlvbk1hcHBpbmc6KCk9PmpQLEV1bGVyOigpPT5lbSxFdmVudERpc3BhdGNoZXI6KCk9PnFzLEV4dHJ1ZGVCdWZmZXJHZW9tZXRyeTooKT0+aGgsRXh0cnVkZUdlb21ldHJ5OigpPT5oaCxGYWNlQ29sb3JzOigpPT5QMHIsRmlsZUxvYWRlcjooKT0+SmMsRmxhdFNoYWRpbmc6KCk9PkFodCxGbG9hdDE2QnVmZmVyQXR0cmlidXRlOigpPT5kVSxGbG9hdDMyQXR0cmlidXRlOigpPT5YMHIsRmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZTooKT0+eGUsRmxvYXQ2NEF0dHJpYnV0ZTooKT0+JDByLEZsb2F0NjRCdWZmZXJBdHRyaWJ1dGU6KCk9Pm1VLEZsb2F0VHlwZTooKT0+WGQsRm9nOigpPT5GMSxGb2dFeHAyOigpPT56MSxGb250OigpPT51X3IsRm9udExvYWRlcjooKT0+Y19yLEZyYW1lYnVmZmVyVGV4dHVyZTooKT0+dlUsRnJvbnRTaWRlOigpPT5MMSxGcnVzdHVtOigpPT5EMSxHTEJ1ZmZlckF0dHJpYnV0ZTooKT0+cVUsR0xTTDE6KCk9PkdocixHTFNMMzooKT0+S3V0LEdyZWF0ZXJEZXB0aDooKT0+YWZlLEdyZWF0ZXJFcXVhbERlcHRoOigpPT5vZmUsR3JlYXRlckVxdWFsU3RlbmNpbEZ1bmM6KCk9Pk9ocixHcmVhdGVyU3RlbmNpbEZ1bmM6KCk9Pk5ocixHcmlkSGVscGVyOigpPT5ZVSxHcm91cDooKT0+JGQsSGFsZkZsb2F0VHlwZTooKT0+QTEsSGVtaXNwaGVyZUxpZ2h0OigpPT5UNixIZW1pc3BoZXJlTGlnaHRIZWxwZXI6KCk9PnlodCxIZW1pc3BoZXJlTGlnaHRQcm9iZTooKT0+T1UsSWNvc2FoZWRyb25CdWZmZXJHZW9tZXRyeTooKT0+VzEsSWNvc2FoZWRyb25HZW9tZXRyeTooKT0+VzEsSW1hZ2VCaXRtYXBMb2FkZXI6KCk9Pk5VLEltYWdlTG9hZGVyOigpPT5yeCxJbWFnZVV0aWxzOigpPT5aZixJbW1lZGlhdGVSZW5kZXJPYmplY3Q6KCk9PmhfcixJbmNyZW1lbnRTdGVuY2lsT3A6KCk9PkVocixJbmNyZW1lbnRXcmFwU3RlbmNpbE9wOigpPT5DaHIsSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlOigpPT5ubSxJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeTooKT0+TjYsSW5zdGFuY2VkSW50ZXJsZWF2ZWRCdWZmZXI6KCk9PlVVLEluc3RhbmNlZE1lc2g6KCk9Pmk2LEludDE2QXR0cmlidXRlOigpPT5HMHIsSW50MTZCdWZmZXJBdHRyaWJ1dGU6KCk9PmZVLEludDMyQXR0cmlidXRlOigpPT5ZMHIsSW50MzJCdWZmZXJBdHRyaWJ1dGU6KCk9PnBVLEludDhBdHRyaWJ1dGU6KCk9PlYwcixJbnQ4QnVmZmVyQXR0cmlidXRlOigpPT5jVSxJbnRUeXBlOigpPT5fZmUsSW50ZXJsZWF2ZWRCdWZmZXI6KCk9PnJtLEludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlOigpPT5lcCxJbnRlcnBvbGFudDooKT0+ZmgsSW50ZXJwb2xhdGVEaXNjcmV0ZTooKT0+S1AsSW50ZXJwb2xhdGVMaW5lYXI6KCk9PlpQLEludGVycG9sYXRlU21vb3RoOigpPT5yVSxJbnZlcnRTdGVuY2lsT3A6KCk9PlBocixKU09OTG9hZGVyOigpPT5pX3IsS2VlcFN0ZW5jaWxPcDooKT0+blUsS2V5ZnJhbWVUcmFjazooKT0+T2wsTE9EOigpPT5fVSxMYXRoZUJ1ZmZlckdlb21ldHJ5OigpPT5ZMSxMYXRoZUdlb21ldHJ5OigpPT5ZMSxMYXllcnM6KCk9PlgzLExlbnNGbGFyZTooKT0+YV9yLExlc3NEZXB0aDooKT0+bmZlLExlc3NFcXVhbERlcHRoOigpPT5pVSxMZXNzRXF1YWxTdGVuY2lsRnVuYzooKT0+UmhyLExlc3NTdGVuY2lsRnVuYzooKT0+TGhyLExpZ2h0OigpPT56bCxMaWdodFByb2JlOigpPT5ueCxMaW5lOigpPT5jaCxMaW5lMzooKT0+R1UsTGluZUJhc2ljTWF0ZXJpYWw6KCk9PkdpLExpbmVDdXJ2ZTooKT0+cTEsTGluZUN1cnZlMzooKT0+YlUsTGluZURhc2hlZE1hdGVyaWFsOigpPT53NixMaW5lTG9vcDooKT0+bzYsTGluZVBpZWNlczooKT0+QzByLExpbmVTZWdtZW50czooKT0+UGEsTGluZVN0cmlwOigpPT5UMHIsTGluZWFyRW5jb2Rpbmc6KCk9PnRtLExpbmVhckZpbHRlcjooKT0+aWksTGluZWFySW50ZXJwb2xhbnQ6KCk9PlM2LExpbmVhck1pcE1hcExpbmVhckZpbHRlcjooKT0+eGhyLExpbmVhck1pcE1hcE5lYXJlc3RGaWx0ZXI6KCk9PnZocixMaW5lYXJNaXBtYXBMaW5lYXJGaWx0ZXI6KCk9PmF4LExpbmVhck1pcG1hcE5lYXJlc3RGaWx0ZXI6KCk9PkxodCxMaW5lYXJUb25lTWFwcGluZzooKT0+dWZlLExvYWRlcjooKT0+ZWEsTG9hZGVyVXRpbHM6KCk9PmRNLExvYWRpbmdNYW5hZ2VyOigpPT5FNixMb29wT25jZTooKT0+UGZlLExvb3BQaW5nUG9uZzooKT0+TGZlLExvb3BSZXBlYXQ6KCk9PklmZSxMdW1pbmFuY2VBbHBoYUZvcm1hdDooKT0+d2ZlLEx1bWluYW5jZUZvcm1hdDooKT0+YmZlLE1PVVNFOigpPT5aMCxNYXRlcmlhbDooKT0+cWksTWF0ZXJpYWxMb2FkZXI6KCk9PmtVLE1hdGg6KCk9PmlmcixNYXRoVXRpbHM6KCk9PmlmcixNYXRyaXgzOigpPT5raSxNYXRyaXg0OigpPT5NZSxNYXhFcXVhdGlvbjooKT0+QXV0LE1lc2g6KCk9PnRpLE1lc2hCYXNpY01hdGVyaWFsOigpPT5zaCxNZXNoRGVwdGhNYXRlcmlhbDooKT0+ZU0sTWVzaERpc3RhbmNlTWF0ZXJpYWw6KCk9PnJNLE1lc2hGYWNlTWF0ZXJpYWw6KCk9PkwwcixNZXNoTGFtYmVydE1hdGVyaWFsOigpPT54NixNZXNoTWF0Y2FwTWF0ZXJpYWw6KCk9PmI2LE1lc2hOb3JtYWxNYXRlcmlhbDooKT0+djYsTWVzaFBob25nTWF0ZXJpYWw6KCk9Pl82LE1lc2hQaHlzaWNhbE1hdGVyaWFsOigpPT5nNixNZXNoU3RhbmRhcmRNYXRlcmlhbDooKT0+cE0sTWVzaFRvb25NYXRlcmlhbDooKT0+eTYsTWluRXF1YXRpb246KCk9PkN1dCxNaXJyb3JlZFJlcGVhdFdyYXBwaW5nOigpPT4kUCxNaXhPcGVyYXRpb246KCk9PmxmZSxNdWx0aU1hdGVyaWFsOigpPT5rMHIsTXVsdGlwbHlCbGVuZGluZzooKT0+VHV0LE11bHRpcGx5T3BlcmF0aW9uOigpPT5PNixOZWFyZXN0RmlsdGVyOigpPT5MaSxOZWFyZXN0TWlwTWFwTGluZWFyRmlsdGVyOigpPT55aHIsTmVhcmVzdE1pcE1hcE5lYXJlc3RGaWx0ZXI6KCk9Pl9ocixOZWFyZXN0TWlwbWFwTGluZWFyRmlsdGVyOigpPT5hVSxOZWFyZXN0TWlwbWFwTmVhcmVzdEZpbHRlcjooKT0+b1UsTmV2ZXJEZXB0aDooKT0+ZWZlLE5ldmVyU3RlbmNpbEZ1bmM6KCk9PklocixOb0JsZW5kaW5nOigpPT5LZCxOb0NvbG9yczooKT0+QTByLE5vVG9uZU1hcHBpbmc6KCk9PlpkLE5vcm1hbEFuaW1hdGlvbkJsZW5kTW9kZTooKT0+JFUsTm9ybWFsQmxlbmRpbmc6KCk9PlYzLE5vdEVxdWFsRGVwdGg6KCk9PnNmZSxOb3RFcXVhbFN0ZW5jaWxGdW5jOigpPT5EaHIsTnVtYmVyS2V5ZnJhbWVUcmFjazooKT0+SjEsT2JqZWN0M0Q6KCk9Pm9yLE9iamVjdExvYWRlcjooKT0+c2h0LE9iamVjdFNwYWNlTm9ybWFsTWFwOigpPT5EZmUsT2N0YWhlZHJvbkJ1ZmZlckdlb21ldHJ5OigpPT5ZMCxPY3RhaGVkcm9uR2VvbWV0cnk6KCk9PlkwLE9uZUZhY3RvcjooKT0+amhlLE9uZU1pbnVzRHN0QWxwaGFGYWN0b3I6KCk9PlpoZSxPbmVNaW51c0RzdENvbG9yRmFjdG9yOigpPT5RaGUsT25lTWludXNTcmNBbHBoYUZhY3RvcjooKT0+SWh0LE9uZU1pbnVzU3JjQ29sb3JGYWN0b3I6KCk9PiRoZSxPcnRob2dyYXBoaWNDYW1lcmE6KCk9Pk8xLFBDRlNoYWRvd01hcDooKT0+Q2h0LFBDRlNvZnRTaGFkb3dNYXA6KCk9PlVoZSxQTVJFTUdlbmVyYXRvcjooKT0+ZTYsUGFyYW1ldHJpY0dlb21ldHJ5OigpPT5zX3IsUGFydGljbGU6KCk9Pk4wcixQYXJ0aWNsZUJhc2ljTWF0ZXJpYWw6KCk9PnowcixQYXJ0aWNsZVN5c3RlbTooKT0+RDByLFBhcnRpY2xlU3lzdGVtTWF0ZXJpYWw6KCk9PkYwcixQYXRoOigpPT5HMSxQZXJzcGVjdGl2ZUNhbWVyYTooKT0+VWksUGxhbmU6KCk9PiRjLFBsYW5lQnVmZmVyR2VvbWV0cnk6KCk9PlUwLFBsYW5lR2VvbWV0cnk6KCk9PlUwLFBsYW5lSGVscGVyOigpPT5TaHQsUG9pbnRDbG91ZDooKT0+UjByLFBvaW50Q2xvdWRNYXRlcmlhbDooKT0+TzByLFBvaW50TGlnaHQ6KCk9PlA2LFBvaW50TGlnaHRIZWxwZXI6KCk9Pl9odCxQb2ludHM6KCk9Pm9tLFBvaW50c01hdGVyaWFsOigpPT5pbSxQb2xhckdyaWRIZWxwZXI6KCk9PnZodCxQb2x5aGVkcm9uQnVmZmVyR2VvbWV0cnk6KCk9PnVoLFBvbHloZWRyb25HZW9tZXRyeTooKT0+dWgsUG9zaXRpb25hbEF1ZGlvOigpPT51aHQsUHJvcGVydHlCaW5kaW5nOigpPT5DcixQcm9wZXJ0eU1peGVyOigpPT5CVSxRdWFkcmF0aWNCZXppZXJDdXJ2ZTooKT0+dU0sUXVhZHJhdGljQmV6aWVyQ3VydmUzOigpPT5oTSxRdWF0ZXJuaW9uOigpPT55aSxRdWF0ZXJuaW9uS2V5ZnJhbWVUcmFjazooKT0+JDAsUXVhdGVybmlvbkxpbmVhckludGVycG9sYW50OigpPT5FVSxSRVZJU0lPTjooKT0+alUsUkdCQURlcHRoUGFja2luZzooKT0+TmZlLFJHQkFGb3JtYXQ6KCk9PlFvLFJHQkFJbnRlZ2VyRm9ybWF0OigpPT5DZmUsUkdCQV9BU1RDXzEweDEwX0Zvcm1hdDooKT0+WXV0LFJHQkFfQVNUQ18xMHg1X0Zvcm1hdDooKT0+cXV0LFJHQkFfQVNUQ18xMHg2X0Zvcm1hdDooKT0+R3V0LFJHQkFfQVNUQ18xMHg4X0Zvcm1hdDooKT0+V3V0LFJHQkFfQVNUQ18xMngxMF9Gb3JtYXQ6KCk9Pmp1dCxSR0JBX0FTVENfMTJ4MTJfRm9ybWF0OigpPT5YdXQsUkdCQV9BU1RDXzR4NF9Gb3JtYXQ6KCk9PkR1dCxSR0JBX0FTVENfNXg0X0Zvcm1hdDooKT0+T3V0LFJHQkFfQVNUQ181eDVfRm9ybWF0OigpPT56dXQsUkdCQV9BU1RDXzZ4NV9Gb3JtYXQ6KCk9PkZ1dCxSR0JBX0FTVENfNng2X0Zvcm1hdDooKT0+QnV0LFJHQkFfQVNUQ184eDVfRm9ybWF0OigpPT5IdXQsUkdCQV9BU1RDXzh4Nl9Gb3JtYXQ6KCk9PlZ1dCxSR0JBX0FTVENfOHg4X0Zvcm1hdDooKT0+VXV0LFJHQkFfQlBUQ19Gb3JtYXQ6KCk9PiR1dCxSR0JBX0VUQzJfRUFDX0Zvcm1hdDooKT0+TnV0LFJHQkFfUFZSVENfMkJQUFYxX0Zvcm1hdDooKT0+a3V0LFJHQkFfUFZSVENfNEJQUFYxX0Zvcm1hdDooKT0+THV0LFJHQkFfUzNUQ19EWFQxX0Zvcm1hdDooKT0+UVYsUkdCQV9TM1RDX0RYVDNfRm9ybWF0OigpPT50VSxSR0JBX1MzVENfRFhUNV9Gb3JtYXQ6KCk9PmVVLFJHQl9FVEMxX0Zvcm1hdDooKT0+QWZlLFJHQl9FVEMyX0Zvcm1hdDooKT0+UnV0LFJHQl9QVlJUQ18yQlBQVjFfRm9ybWF0OigpPT5JdXQsUkdCX1BWUlRDXzRCUFBWMV9Gb3JtYXQ6KCk9PlB1dCxSR0JfUzNUQ19EWFQxX0Zvcm1hdDooKT0+SlYsUkdGb3JtYXQ6KCk9PkVmZSxSR0ludGVnZXJGb3JtYXQ6KCk9PlRmZSxSYXdTaGFkZXJNYXRlcmlhbDooKT0+cTAsUmF5OigpPT5RZixSYXljYXN0ZXI6KCk9PnBodCxSZWN0QXJlYUxpZ2h0OigpPT5rNixSZWRGb3JtYXQ6KCk9PlNmZSxSZWRJbnRlZ2VyRm9ybWF0OigpPT5NZmUsUmVpbmhhcmRUb25lTWFwcGluZzooKT0+aGZlLFJlcGVhdFdyYXBwaW5nOigpPT5YUCxSZXBsYWNlU3RlbmNpbE9wOigpPT5NaHIsUmV2ZXJzZVN1YnRyYWN0RXF1YXRpb246KCk9PldoZSxSaW5nQnVmZmVyR2VvbWV0cnk6KCk9PmoxLFJpbmdHZW9tZXRyeTooKT0+ajEsU2NlbmU6KCk9PkcwLFNjZW5lVXRpbHM6KCk9Pm9fcixTaGFkZXJDaHVuazooKT0+aHIsU2hhZGVyTGliOigpPT5haCxTaGFkZXJNYXRlcmlhbDooKT0+bGgsU2hhZG93TWF0ZXJpYWw6KCk9Pm02LFNoYXBlOigpPT5LYyxTaGFwZUJ1ZmZlckdlb21ldHJ5OigpPT5qMCxTaGFwZUdlb21ldHJ5OigpPT5qMCxTaGFwZVBhdGg6KCk9PkVodCxTaGFwZVV0aWxzOigpPT5aYyxTaG9ydFR5cGU6KCk9PmdmZSxTa2VsZXRvbjooKT0+bE0sU2tlbGV0b25IZWxwZXI6KCk9PldVLFNraW5uZWRNZXNoOigpPT5hTSxTbW9vdGhTaGFkaW5nOigpPT5naHIsU3BoZXJlOigpPT5KZixTcGhlcmVCdWZmZXJHZW9tZXRyeTooKT0+WDAsU3BoZXJlR2VvbWV0cnk6KCk9PlgwLFNwaGVyaWNhbDooKT0+X00sU3BoZXJpY2FsSGFybW9uaWNzMzooKT0+UjYsU3BsaW5lQ3VydmU6KCk9PmZNLFNwb3RMaWdodDooKT0+QTYsU3BvdExpZ2h0SGVscGVyOigpPT5naHQsU3ByaXRlOigpPT5vTSxTcHJpdGVNYXRlcmlhbDooKT0+aU0sU3JjQWxwaGFGYWN0b3I6KCk9PlBodCxTcmNBbHBoYVNhdHVyYXRlRmFjdG9yOigpPT50ZmUsU3JjQ29sb3JGYWN0b3I6KCk9PlhoZSxTdGF0aWNDb3B5VXNhZ2U6KCk9PlZocixTdGF0aWNEcmF3VXNhZ2U6KCk9PlczLFN0YXRpY1JlYWRVc2FnZTooKT0+RmhyLFN0ZXJlb0NhbWVyYTooKT0+bGh0LFN0cmVhbUNvcHlVc2FnZTooKT0+cWhyLFN0cmVhbURyYXdVc2FnZTooKT0+emhyLFN0cmVhbVJlYWRVc2FnZTooKT0+SGhyLFN0cmluZ0tleWZyYW1lVHJhY2s6KCk9PmxtLFN1YnRyYWN0RXF1YXRpb246KCk9PkdoZSxTdWJ0cmFjdGl2ZUJsZW5kaW5nOigpPT5FdXQsVE9VQ0g6KCk9PkowLFRhbmdlbnRTcGFjZU5vcm1hbE1hcDooKT0+c3gsVGV0cmFoZWRyb25CdWZmZXJHZW9tZXRyeTooKT0+WDEsVGV0cmFoZWRyb25HZW9tZXRyeTooKT0+WDEsVGV4dEdlb21ldHJ5OigpPT5sX3IsVGV4dHVyZTooKT0+dmksVGV4dHVyZUxvYWRlcjooKT0+QVUsVG9ydXNCdWZmZXJHZW9tZXRyeTooKT0+JDEsVG9ydXNHZW9tZXRyeTooKT0+JDEsVG9ydXNLbm90QnVmZmVyR2VvbWV0cnk6KCk9PksxLFRvcnVzS25vdEdlb21ldHJ5OigpPT5LMSxUcmlhbmdsZTooKT0+b2ksVHJpYW5nbGVGYW5EcmF3TW9kZTooKT0+d2hyLFRyaWFuZ2xlU3RyaXBEcmF3TW9kZTooKT0+YmhyLFRyaWFuZ2xlc0RyYXdNb2RlOigpPT5rZmUsVHViZUJ1ZmZlckdlb21ldHJ5OigpPT5aMSxUdWJlR2VvbWV0cnk6KCk9PloxLFVWTWFwcGluZzooKT0+WFUsVWludDE2QXR0cmlidXRlOigpPT5XMHIsVWludDE2QnVmZmVyQXR0cmlidXRlOigpPT4kMyxVaW50MzJBdHRyaWJ1dGU6KCk9PmowcixVaW50MzJCdWZmZXJBdHRyaWJ1dGU6KCk9PkszLFVpbnQ4QXR0cmlidXRlOigpPT5VMHIsVWludDhCdWZmZXJBdHRyaWJ1dGU6KCk9PnVVLFVpbnQ4Q2xhbXBlZEF0dHJpYnV0ZTooKT0+cTByLFVpbnQ4Q2xhbXBlZEJ1ZmZlckF0dHJpYnV0ZTooKT0+aFUsVW5pZm9ybTooKT0+Z00sVW5pZm9ybXNMaWI6KCk9PnJlLFVuaWZvcm1zVXRpbHM6KCk9PlZmZSxVbnNpZ25lZEJ5dGVUeXBlOigpPT5KZCxVbnNpZ25lZEludDI0OFR5cGU6KCk9PlAxLFVuc2lnbmVkSW50VHlwZTooKT0+VlAsVW5zaWduZWRTaG9ydDQ0NDRUeXBlOigpPT55ZmUsVW5zaWduZWRTaG9ydDU1NTFUeXBlOigpPT52ZmUsVW5zaWduZWRTaG9ydFR5cGU6KCk9PkczLFZTTVNoYWRvd01hcDooKT0+RjMsVmVjdG9yMjooKT0+THQsVmVjdG9yMzooKT0+aixWZWN0b3I0OigpPT5lbixWZWN0b3JLZXlmcmFtZVRyYWNrOigpPT5RMSxWZXJ0ZXg6KCk9PkIwcixWZXJ0ZXhDb2xvcnM6KCk9PkkwcixWaWRlb1RleHR1cmU6KCk9PnlVLFdlYkdMMVJlbmRlcmVyOigpPT5nVSxXZWJHTEN1YmVSZW5kZXJUYXJnZXQ6KCk9PlEzLFdlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzOigpPT5sVSxXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0OigpPT5qMyxXZWJHTFJlbmRlclRhcmdldDooKT0+aHMsV2ViR0xSZW5kZXJUYXJnZXRDdWJlOigpPT5yX3IsV2ViR0xSZW5kZXJlcjooKT0+cm4sV2ViR0xVdGlsczooKT0+UWZlLFdpcmVmcmFtZUdlb21ldHJ5OigpPT5kNixXaXJlZnJhbWVIZWxwZXI6KCk9PlEwcixXcmFwQXJvdW5kRW5kaW5nOigpPT5KUCxYSFJMb2FkZXI6KCk9PnRfcixaZXJvQ3VydmF0dXJlRW5kaW5nOigpPT5UMSxaZXJvRmFjdG9yOigpPT5ZaGUsWmVyb1Nsb3BlRW5kaW5nOigpPT5DMSxaZXJvU3RlbmNpbE9wOigpPT5TaHIsX1NSR0JBRm9ybWF0OigpPT5zVSxzUkdCRW5jb2Rpbmc6KCk9PllufSk7dmFyIGpVPSIxMzciLFowPXtMRUZUOjAsTUlERExFOjEsUklHSFQ6MixST1RBVEU6MCxET0xMWToxLFBBTjoyfSxKMD17Uk9UQVRFOjAsUEFOOjEsRE9MTFlfUEFOOjIsRE9MTFlfUk9UQVRFOjN9LEhoZT0wLFN1dD0xLFZoZT0yLGRocj0zLG1ocj0wLENodD0xLFVoZT0yLEYzPTMsTDE9MCxJaT0xLGsxPTIsQWh0PTEsZ2hyPTIsS2Q9MCxWMz0xLE11dD0yLEV1dD0zLFR1dD00LHFoZT01LEUxPTEwMCxHaGU9MTAxLFdoZT0xMDIsQ3V0PTEwMyxBdXQ9MTA0LFloZT0yMDAsamhlPTIwMSxYaGU9MjAyLCRoZT0yMDMsUGh0PTIwNCxJaHQ9MjA1LEtoZT0yMDYsWmhlPTIwNyxKaGU9MjA4LFFoZT0yMDksdGZlPTIxMCxlZmU9MCxyZmU9MSxuZmU9MixpVT0zLGlmZT00LG9mZT01LGFmZT02LHNmZT03LE82PTAsbGZlPTEsY2ZlPTIsWmQ9MCx1ZmU9MSxoZmU9MixmZmU9MyxwZmU9NCxkZmU9NSxYVT0zMDAsaXg9MzAxLG94PTMwMixZUD0zMDMsalA9MzA0LHhNPTMwNix6Nj0zMDcsWFA9MWUzLEpvPTEwMDEsJFA9MTAwMixMaT0xMDAzLG9VPTEwMDQsX2hyPTEwMDQsYVU9MTAwNSx5aHI9MTAwNSxpaT0xMDA2LExodD0xMDA3LHZocj0xMDA3LGF4PTEwMDgseGhyPTEwMDgsSmQ9MTAwOSxtZmU9MTAxMCxnZmU9MTAxMSxHMz0xMDEyLF9mZT0xMDEzLFZQPTEwMTQsWGQ9MTAxNSxBMT0xMDE2LHlmZT0xMDE3LHZmZT0xMDE4LFAxPTEwMjAseGZlPTEwMjEsUW89MTAyMyxiZmU9MTAyNCx3ZmU9MTAyNSxGMD0xMDI2LFIxPTEwMjcsU2ZlPTEwMjgsTWZlPTEwMjksRWZlPTEwMzAsVGZlPTEwMzEsQ2ZlPTEwMzMsSlY9MzM3NzYsUVY9MzM3NzcsdFU9MzM3NzgsZVU9MzM3NzksUHV0PTM1ODQwLEl1dD0zNTg0MSxMdXQ9MzU4NDIsa3V0PTM1ODQzLEFmZT0zNjE5NixSdXQ9Mzc0OTIsTnV0PTM3NDk2LER1dD0zNzgwOCxPdXQ9Mzc4MDksenV0PTM3ODEwLEZ1dD0zNzgxMSxCdXQ9Mzc4MTIsSHV0PTM3ODEzLFZ1dD0zNzgxNCxVdXQ9Mzc4MTUscXV0PTM3ODE2LEd1dD0zNzgxNyxXdXQ9Mzc4MTgsWXV0PTM3ODE5LGp1dD0zNzgyMCxYdXQ9Mzc4MjEsJHV0PTM2NDkyLFBmZT0yMjAwLElmZT0yMjAxLExmZT0yMjAyLEtQPTIzMDAsWlA9MjMwMSxyVT0yMzAyLFQxPTI0MDAsQzE9MjQwMSxKUD0yNDAyLCRVPTI1MDAsa2h0PTI1MDEsa2ZlPTAsYmhyPTEsd2hyPTIsdG09M2UzLFluPTMwMDEsUmZlPTMyMDAsTmZlPTMyMDEsc3g9MCxEZmU9MSxTaHI9MCxuVT03NjgwLE1ocj03NjgxLEVocj03NjgyLFRocj03NjgzLENocj0zNDA1NSxBaHI9MzQwNTYsUGhyPTUzODYsSWhyPTUxMixMaHI9NTEzLGtocj01MTQsUmhyPTUxNSxOaHI9NTE2LERocj01MTcsT2hyPTUxOCxPZmU9NTE5LFczPTM1MDQ0LFkzPTM1MDQ4LHpocj0zNTA0MCxGaHI9MzUwNDUsQmhyPTM1MDQ5LEhocj0zNTA0MSxWaHI9MzUwNDYsVWhyPTM1MDUwLHFocj0zNTA0MixHaHI9IjEwMCIsS3V0PSIzMDAgZXMiLHNVPTEwMzUscXM9Y2xhc3N7YWRkRXZlbnRMaXN0ZW5lcih0LHIpe3RoaXMuX2xpc3RlbmVycz09PXZvaWQgMCYmKHRoaXMuX2xpc3RlbmVycz17fSk7bGV0IG49dGhpcy5fbGlzdGVuZXJzO25bdF09PT12b2lkIDAmJihuW3RdPVtdKSxuW3RdLmluZGV4T2Yocik9PT0tMSYmblt0XS5wdXNoKHIpfWhhc0V2ZW50TGlzdGVuZXIodCxyKXtpZih0aGlzLl9saXN0ZW5lcnM9PT12b2lkIDApcmV0dXJuITE7bGV0IG49dGhpcy5fbGlzdGVuZXJzO3JldHVybiBuW3RdIT09dm9pZCAwJiZuW3RdLmluZGV4T2YocikhPT0tMX1yZW1vdmVFdmVudExpc3RlbmVyKHQscil7aWYodGhpcy5fbGlzdGVuZXJzPT09dm9pZCAwKXJldHVybjtsZXQgaT10aGlzLl9saXN0ZW5lcnNbdF07aWYoaSE9PXZvaWQgMCl7bGV0IG89aS5pbmRleE9mKHIpO28hPT0tMSYmaS5zcGxpY2UobywxKX19ZGlzcGF0Y2hFdmVudCh0KXtpZih0aGlzLl9saXN0ZW5lcnM9PT12b2lkIDApcmV0dXJuO2xldCBuPXRoaXMuX2xpc3RlbmVyc1t0LnR5cGVdO2lmKG4hPT12b2lkIDApe3QudGFyZ2V0PXRoaXM7bGV0IGk9bi5zbGljZSgwKTtmb3IobGV0IG89MCxhPWkubGVuZ3RoO288YTtvKyspaVtvXS5jYWxsKHRoaXMsdCk7dC50YXJnZXQ9bnVsbH19fSxLbz1bXTtmb3IobGV0IGU9MDtlPDI1NjtlKyspS29bZV09KGU8MTY/IjAiOiIiKStlLnRvU3RyaW5nKDE2KTt2YXIgdVY9MTIzNDU2NyxJMT1NYXRoLlBJLzE4MCxRUD0xODAvTWF0aC5QSTtmdW5jdGlvbiBEbCgpe2xldCBlPU1hdGgucmFuZG9tKCkqNDI5NDk2NzI5NXwwLHQ9TWF0aC5yYW5kb20oKSo0Mjk0OTY3Mjk1fDAscj1NYXRoLnJhbmRvbSgpKjQyOTQ5NjcyOTV8MCxuPU1hdGgucmFuZG9tKCkqNDI5NDk2NzI5NXwwO3JldHVybihLb1tlJjI1NV0rS29bZT4+OCYyNTVdK0tvW2U+PjE2JjI1NV0rS29bZT4+MjQmMjU1XSsiLSIrS29bdCYyNTVdK0tvW3Q+PjgmMjU1XSsiLSIrS29bdD4+MTYmMTV8NjRdK0tvW3Q+PjI0JjI1NV0rIi0iK0tvW3ImNjN8MTI4XStLb1tyPj44JjI1NV0rIi0iK0tvW3I+PjE2JjI1NV0rS29bcj4+MjQmMjU1XStLb1tuJjI1NV0rS29bbj4+OCYyNTVdK0tvW24+PjE2JjI1NV0rS29bbj4+MjQmMjU1XSkudG9VcHBlckNhc2UoKX1mdW5jdGlvbiBabyhlLHQscil7cmV0dXJuIE1hdGgubWF4KHQsTWF0aC5taW4ocixlKSl9ZnVuY3Rpb24gUmh0KGUsdCl7cmV0dXJuKGUldCt0KSV0fWZ1bmN0aW9uIFdocihlLHQscixuLGkpe3JldHVybiBuKyhlLXQpKihpLW4pLyhyLXQpfWZ1bmN0aW9uIFlocihlLHQscil7cmV0dXJuIGUhPT10PyhyLWUpLyh0LWUpOjB9ZnVuY3Rpb24gVVAoZSx0LHIpe3JldHVybigxLXIpKmUrcip0fWZ1bmN0aW9uIGpocihlLHQscixuKXtyZXR1cm4gVVAoZSx0LDEtTWF0aC5leHAoLXIqbikpfWZ1bmN0aW9uIFhocihlLHQ9MSl7cmV0dXJuIHQtTWF0aC5hYnMoUmh0KGUsdCoyKS10KX1mdW5jdGlvbiAkaHIoZSx0LHIpe3JldHVybiBlPD10PzA6ZT49cj8xOihlPShlLXQpLyhyLXQpLGUqZSooMy0yKmUpKX1mdW5jdGlvbiBLaHIoZSx0LHIpe3JldHVybiBlPD10PzA6ZT49cj8xOihlPShlLXQpLyhyLXQpLGUqZSplKihlKihlKjYtMTUpKzEwKSl9ZnVuY3Rpb24gWmhyKGUsdCl7cmV0dXJuIGUrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKih0LWUrMSkpfWZ1bmN0aW9uIEpocihlLHQpe3JldHVybiBlK01hdGgucmFuZG9tKCkqKHQtZSl9ZnVuY3Rpb24gUWhyKGUpe3JldHVybiBlKiguNS1NYXRoLnJhbmRvbSgpKX1mdW5jdGlvbiB0ZnIoZSl7cmV0dXJuIGUhPT12b2lkIDAmJih1Vj1lJTIxNDc0ODM2NDcpLHVWPXVWKjE2ODA3JTIxNDc0ODM2NDcsKHVWLTEpLzIxNDc0ODM2NDZ9ZnVuY3Rpb24gZWZyKGUpe3JldHVybiBlKkkxfWZ1bmN0aW9uIHJmcihlKXtyZXR1cm4gZSpRUH1mdW5jdGlvbiBadXQoZSl7cmV0dXJuKGUmZS0xKT09PTAmJmUhPT0wfWZ1bmN0aW9uIHpmZShlKXtyZXR1cm4gTWF0aC5wb3coMixNYXRoLmNlaWwoTWF0aC5sb2coZSkvTWF0aC5MTjIpKX1mdW5jdGlvbiBGZmUoZSl7cmV0dXJuIE1hdGgucG93KDIsTWF0aC5mbG9vcihNYXRoLmxvZyhlKS9NYXRoLkxOMikpfWZ1bmN0aW9uIG5mcihlLHQscixuLGkpe2xldCBvPU1hdGguY29zLGE9TWF0aC5zaW4scz1vKHIvMiksbD1hKHIvMiksYz1vKCh0K24pLzIpLHU9YSgodCtuKS8yKSxoPW8oKHQtbikvMiksZj1hKCh0LW4pLzIpLHA9bygobi10KS8yKSxkPWEoKG4tdCkvMik7c3dpdGNoKGkpe2Nhc2UiWFlYIjplLnNldChzKnUsbCpoLGwqZixzKmMpO2JyZWFrO2Nhc2UiWVpZIjplLnNldChsKmYscyp1LGwqaCxzKmMpO2JyZWFrO2Nhc2UiWlhaIjplLnNldChsKmgsbCpmLHMqdSxzKmMpO2JyZWFrO2Nhc2UiWFpYIjplLnNldChzKnUsbCpkLGwqcCxzKmMpO2JyZWFrO2Nhc2UiWVhZIjplLnNldChsKnAscyp1LGwqZCxzKmMpO2JyZWFrO2Nhc2UiWllaIjplLnNldChsKmQsbCpwLHMqdSxzKmMpO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKCJUSFJFRS5NYXRoVXRpbHM6IC5zZXRRdWF0ZXJuaW9uRnJvbVByb3BlckV1bGVyKCkgZW5jb3VudGVyZWQgYW4gdW5rbm93biBvcmRlcjogIitpKX19dmFyIGlmcj1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxERUcyUkFEOkkxLFJBRDJERUc6UVAsZ2VuZXJhdGVVVUlEOkRsLGNsYW1wOlpvLGV1Y2xpZGVhbk1vZHVsbzpSaHQsbWFwTGluZWFyOldocixpbnZlcnNlTGVycDpZaHIsbGVycDpVUCxkYW1wOmpocixwaW5ncG9uZzpYaHIsc21vb3Roc3RlcDokaHIsc21vb3RoZXJzdGVwOktocixyYW5kSW50OlpocixyYW5kRmxvYXQ6SmhyLHJhbmRGbG9hdFNwcmVhZDpRaHIsc2VlZGVkUmFuZG9tOnRmcixkZWdUb1JhZDplZnIscmFkVG9EZWc6cmZyLGlzUG93ZXJPZlR3bzpadXQsY2VpbFBvd2VyT2ZUd286emZlLGZsb29yUG93ZXJPZlR3bzpGZmUsc2V0UXVhdGVybmlvbkZyb21Qcm9wZXJFdWxlcjpuZnJ9KSxMdD1jbGFzc3tjb25zdHJ1Y3Rvcih0PTAscj0wKXt0aGlzLng9dCx0aGlzLnk9cn1nZXQgd2lkdGgoKXtyZXR1cm4gdGhpcy54fXNldCB3aWR0aCh0KXt0aGlzLng9dH1nZXQgaGVpZ2h0KCl7cmV0dXJuIHRoaXMueX1zZXQgaGVpZ2h0KHQpe3RoaXMueT10fXNldCh0LHIpe3JldHVybiB0aGlzLng9dCx0aGlzLnk9cix0aGlzfXNldFNjYWxhcih0KXtyZXR1cm4gdGhpcy54PXQsdGhpcy55PXQsdGhpc31zZXRYKHQpe3JldHVybiB0aGlzLng9dCx0aGlzfXNldFkodCl7cmV0dXJuIHRoaXMueT10LHRoaXN9c2V0Q29tcG9uZW50KHQscil7c3dpdGNoKHQpe2Nhc2UgMDp0aGlzLng9cjticmVhaztjYXNlIDE6dGhpcy55PXI7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX1yZXR1cm4gdGhpc31nZXRDb21wb25lbnQodCl7c3dpdGNoKHQpe2Nhc2UgMDpyZXR1cm4gdGhpcy54O2Nhc2UgMTpyZXR1cm4gdGhpcy55O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9fWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMueCx0aGlzLnkpfWNvcHkodCl7cmV0dXJuIHRoaXMueD10LngsdGhpcy55PXQueSx0aGlzfWFkZCh0LHIpe3JldHVybiByIT09dm9pZCAwPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5hZGQoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5hZGRWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLmFkZFZlY3RvcnModCxyKSk6KHRoaXMueCs9dC54LHRoaXMueSs9dC55LHRoaXMpfWFkZFNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kz10LHRoaXMueSs9dCx0aGlzfWFkZFZlY3RvcnModCxyKXtyZXR1cm4gdGhpcy54PXQueCtyLngsdGhpcy55PXQueStyLnksdGhpc31hZGRTY2FsZWRWZWN0b3IodCxyKXtyZXR1cm4gdGhpcy54Kz10Lngqcix0aGlzLnkrPXQueSpyLHRoaXN9c3ViKHQscil7cmV0dXJuIHIhPT12b2lkIDA/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogLnN1YigpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLnN1YlZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuc3ViVmVjdG9ycyh0LHIpKToodGhpcy54LT10LngsdGhpcy55LT10LnksdGhpcyl9c3ViU2NhbGFyKHQpe3JldHVybiB0aGlzLngtPXQsdGhpcy55LT10LHRoaXN9c3ViVmVjdG9ycyh0LHIpe3JldHVybiB0aGlzLng9dC54LXIueCx0aGlzLnk9dC55LXIueSx0aGlzfW11bHRpcGx5KHQpe3JldHVybiB0aGlzLngqPXQueCx0aGlzLnkqPXQueSx0aGlzfW11bHRpcGx5U2NhbGFyKHQpe3JldHVybiB0aGlzLngqPXQsdGhpcy55Kj10LHRoaXN9ZGl2aWRlKHQpe3JldHVybiB0aGlzLngvPXQueCx0aGlzLnkvPXQueSx0aGlzfWRpdmlkZVNjYWxhcih0KXtyZXR1cm4gdGhpcy5tdWx0aXBseVNjYWxhcigxL3QpfWFwcGx5TWF0cml4Myh0KXtsZXQgcj10aGlzLngsbj10aGlzLnksaT10LmVsZW1lbnRzO3JldHVybiB0aGlzLng9aVswXSpyK2lbM10qbitpWzZdLHRoaXMueT1pWzFdKnIraVs0XSpuK2lbN10sdGhpc31taW4odCl7cmV0dXJuIHRoaXMueD1NYXRoLm1pbih0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5taW4odGhpcy55LHQueSksdGhpc31tYXgodCl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5tYXgodGhpcy55LHQueSksdGhpc31jbGFtcCh0LHIpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodC54LE1hdGgubWluKHIueCx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodC55LE1hdGgubWluKHIueSx0aGlzLnkpKSx0aGlzfWNsYW1wU2NhbGFyKHQscil7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LE1hdGgubWluKHIsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQsTWF0aC5taW4ocix0aGlzLnkpKSx0aGlzfWNsYW1wTGVuZ3RoKHQscil7bGV0IG49dGhpcy5sZW5ndGgoKTtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIobnx8MSkubXVsdGlwbHlTY2FsYXIoTWF0aC5tYXgodCxNYXRoLm1pbihyLG4pKSl9Zmxvb3IoKXtyZXR1cm4gdGhpcy54PU1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpLHRoaXN9Y2VpbCgpe3JldHVybiB0aGlzLng9TWF0aC5jZWlsKHRoaXMueCksdGhpcy55PU1hdGguY2VpbCh0aGlzLnkpLHRoaXN9cm91bmQoKXtyZXR1cm4gdGhpcy54PU1hdGgucm91bmQodGhpcy54KSx0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpLHRoaXN9cm91bmRUb1plcm8oKXtyZXR1cm4gdGhpcy54PXRoaXMueDwwP01hdGguY2VpbCh0aGlzLngpOk1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9dGhpcy55PDA/TWF0aC5jZWlsKHRoaXMueSk6TWF0aC5mbG9vcih0aGlzLnkpLHRoaXN9bmVnYXRlKCl7cmV0dXJuIHRoaXMueD0tdGhpcy54LHRoaXMueT0tdGhpcy55LHRoaXN9ZG90KHQpe3JldHVybiB0aGlzLngqdC54K3RoaXMueSp0Lnl9Y3Jvc3ModCl7cmV0dXJuIHRoaXMueCp0LnktdGhpcy55KnQueH1sZW5ndGhTcSgpe3JldHVybiB0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnl9bGVuZ3RoKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkpfW1hbmhhdHRhbkxlbmd0aCgpe3JldHVybiBNYXRoLmFicyh0aGlzLngpK01hdGguYWJzKHRoaXMueSl9bm9ybWFsaXplKCl7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKHRoaXMubGVuZ3RoKCl8fDEpfWFuZ2xlKCl7cmV0dXJuIE1hdGguYXRhbjIoLXRoaXMueSwtdGhpcy54KStNYXRoLlBJfWRpc3RhbmNlVG8odCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLmRpc3RhbmNlVG9TcXVhcmVkKHQpKX1kaXN0YW5jZVRvU3F1YXJlZCh0KXtsZXQgcj10aGlzLngtdC54LG49dGhpcy55LXQueTtyZXR1cm4gcipyK24qbn1tYW5oYXR0YW5EaXN0YW5jZVRvKHQpe3JldHVybiBNYXRoLmFicyh0aGlzLngtdC54KStNYXRoLmFicyh0aGlzLnktdC55KX1zZXRMZW5ndGgodCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIodCl9bGVycCh0LHIpe3JldHVybiB0aGlzLngrPSh0LngtdGhpcy54KSpyLHRoaXMueSs9KHQueS10aGlzLnkpKnIsdGhpc31sZXJwVmVjdG9ycyh0LHIsbil7cmV0dXJuIHRoaXMueD10LngrKHIueC10LngpKm4sdGhpcy55PXQueSsoci55LXQueSkqbix0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC54PT09dGhpcy54JiZ0Lnk9PT10aGlzLnl9ZnJvbUFycmF5KHQscj0wKXtyZXR1cm4gdGhpcy54PXRbcl0sdGhpcy55PXRbcisxXSx0aGlzfXRvQXJyYXkodD1bXSxyPTApe3JldHVybiB0W3JdPXRoaXMueCx0W3IrMV09dGhpcy55LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LHIsbil7cmV0dXJuIG4hPT12b2lkIDAmJmNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogb2Zmc2V0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMueD10LmdldFgociksdGhpcy55PXQuZ2V0WShyKSx0aGlzfXJvdGF0ZUFyb3VuZCh0LHIpe2xldCBuPU1hdGguY29zKHIpLGk9TWF0aC5zaW4ociksbz10aGlzLngtdC54LGE9dGhpcy55LXQueTtyZXR1cm4gdGhpcy54PW8qbi1hKmkrdC54LHRoaXMueT1vKmkrYSpuK3QueSx0aGlzfXJhbmRvbSgpe3JldHVybiB0aGlzLng9TWF0aC5yYW5kb20oKSx0aGlzLnk9TWF0aC5yYW5kb20oKSx0aGlzfSpbU3ltYm9sLml0ZXJhdG9yXSgpe3lpZWxkIHRoaXMueCx5aWVsZCB0aGlzLnl9fTtMdC5wcm90b3R5cGUuaXNWZWN0b3IyPSEwO3ZhciBraT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZWxlbWVudHM9WzEsMCwwLDAsMSwwLDAsMCwxXSxhcmd1bWVudHMubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDM6IHRoZSBjb25zdHJ1Y3RvciBubyBsb25nZXIgcmVhZHMgYXJndW1lbnRzLiB1c2UgLnNldCgpIGluc3RlYWQuIil9c2V0KHQscixuLGksbyxhLHMsbCxjKXtsZXQgdT10aGlzLmVsZW1lbnRzO3JldHVybiB1WzBdPXQsdVsxXT1pLHVbMl09cyx1WzNdPXIsdVs0XT1vLHVbNV09bCx1WzZdPW4sdVs3XT1hLHVbOF09Yyx0aGlzfWlkZW50aXR5KCl7cmV0dXJuIHRoaXMuc2V0KDEsMCwwLDAsMSwwLDAsMCwxKSx0aGlzfWNvcHkodCl7bGV0IHI9dGhpcy5lbGVtZW50cyxuPXQuZWxlbWVudHM7cmV0dXJuIHJbMF09blswXSxyWzFdPW5bMV0sclsyXT1uWzJdLHJbM109blszXSxyWzRdPW5bNF0scls1XT1uWzVdLHJbNl09bls2XSxyWzddPW5bN10scls4XT1uWzhdLHRoaXN9ZXh0cmFjdEJhc2lzKHQscixuKXtyZXR1cm4gdC5zZXRGcm9tTWF0cml4M0NvbHVtbih0aGlzLDApLHIuc2V0RnJvbU1hdHJpeDNDb2x1bW4odGhpcywxKSxuLnNldEZyb21NYXRyaXgzQ29sdW1uKHRoaXMsMiksdGhpc31zZXRGcm9tTWF0cml4NCh0KXtsZXQgcj10LmVsZW1lbnRzO3JldHVybiB0aGlzLnNldChyWzBdLHJbNF0scls4XSxyWzFdLHJbNV0scls5XSxyWzJdLHJbNl0sclsxMF0pLHRoaXN9bXVsdGlwbHkodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlNYXRyaWNlcyh0aGlzLHQpfXByZW11bHRpcGx5KHQpe3JldHVybiB0aGlzLm11bHRpcGx5TWF0cmljZXModCx0aGlzKX1tdWx0aXBseU1hdHJpY2VzKHQscil7bGV0IG49dC5lbGVtZW50cyxpPXIuZWxlbWVudHMsbz10aGlzLmVsZW1lbnRzLGE9blswXSxzPW5bM10sbD1uWzZdLGM9blsxXSx1PW5bNF0saD1uWzddLGY9blsyXSxwPW5bNV0sZD1uWzhdLGc9aVswXSxfPWlbM10seT1pWzZdLHg9aVsxXSxiPWlbNF0sUz1pWzddLEM9aVsyXSxQPWlbNV0saz1pWzhdO3JldHVybiBvWzBdPWEqZytzKngrbCpDLG9bM109YSpfK3MqYitsKlAsb1s2XT1hKnkrcypTK2wqayxvWzFdPWMqZyt1KngraCpDLG9bNF09YypfK3UqYitoKlAsb1s3XT1jKnkrdSpTK2gqayxvWzJdPWYqZytwKngrZCpDLG9bNV09ZipfK3AqYitkKlAsb1s4XT1mKnkrcCpTK2Qqayx0aGlzfW11bHRpcGx5U2NhbGFyKHQpe2xldCByPXRoaXMuZWxlbWVudHM7cmV0dXJuIHJbMF0qPXQsclszXSo9dCxyWzZdKj10LHJbMV0qPXQscls0XSo9dCxyWzddKj10LHJbMl0qPXQscls1XSo9dCxyWzhdKj10LHRoaXN9ZGV0ZXJtaW5hbnQoKXtsZXQgdD10aGlzLmVsZW1lbnRzLHI9dFswXSxuPXRbMV0saT10WzJdLG89dFszXSxhPXRbNF0scz10WzVdLGw9dFs2XSxjPXRbN10sdT10WzhdO3JldHVybiByKmEqdS1yKnMqYy1uKm8qdStuKnMqbCtpKm8qYy1pKmEqbH1pbnZlcnQoKXtsZXQgdD10aGlzLmVsZW1lbnRzLHI9dFswXSxuPXRbMV0saT10WzJdLG89dFszXSxhPXRbNF0scz10WzVdLGw9dFs2XSxjPXRbN10sdT10WzhdLGg9dSphLXMqYyxmPXMqbC11Km8scD1jKm8tYSpsLGQ9cipoK24qZitpKnA7aWYoZD09PTApcmV0dXJuIHRoaXMuc2V0KDAsMCwwLDAsMCwwLDAsMCwwKTtsZXQgZz0xL2Q7cmV0dXJuIHRbMF09aCpnLHRbMV09KGkqYy11Km4pKmcsdFsyXT0ocypuLWkqYSkqZyx0WzNdPWYqZyx0WzRdPSh1KnItaSpsKSpnLHRbNV09KGkqby1zKnIpKmcsdFs2XT1wKmcsdFs3XT0obipsLWMqcikqZyx0WzhdPShhKnItbipvKSpnLHRoaXN9dHJhbnNwb3NlKCl7bGV0IHQscj10aGlzLmVsZW1lbnRzO3JldHVybiB0PXJbMV0sclsxXT1yWzNdLHJbM109dCx0PXJbMl0sclsyXT1yWzZdLHJbNl09dCx0PXJbNV0scls1XT1yWzddLHJbN109dCx0aGlzfWdldE5vcm1hbE1hdHJpeCh0KXtyZXR1cm4gdGhpcy5zZXRGcm9tTWF0cml4NCh0KS5pbnZlcnQoKS50cmFuc3Bvc2UoKX10cmFuc3Bvc2VJbnRvQXJyYXkodCl7bGV0IHI9dGhpcy5lbGVtZW50cztyZXR1cm4gdFswXT1yWzBdLHRbMV09clszXSx0WzJdPXJbNl0sdFszXT1yWzFdLHRbNF09cls0XSx0WzVdPXJbN10sdFs2XT1yWzJdLHRbN109cls1XSx0WzhdPXJbOF0sdGhpc31zZXRVdlRyYW5zZm9ybSh0LHIsbixpLG8sYSxzKXtsZXQgbD1NYXRoLmNvcyhvKSxjPU1hdGguc2luKG8pO3JldHVybiB0aGlzLnNldChuKmwsbipjLC1uKihsKmErYypzKSthK3QsLWkqYyxpKmwsLWkqKC1jKmErbCpzKStzK3IsMCwwLDEpLHRoaXN9c2NhbGUodCxyKXtsZXQgbj10aGlzLmVsZW1lbnRzO3JldHVybiBuWzBdKj10LG5bM10qPXQsbls2XSo9dCxuWzFdKj1yLG5bNF0qPXIsbls3XSo9cix0aGlzfXJvdGF0ZSh0KXtsZXQgcj1NYXRoLmNvcyh0KSxuPU1hdGguc2luKHQpLGk9dGhpcy5lbGVtZW50cyxvPWlbMF0sYT1pWzNdLHM9aVs2XSxsPWlbMV0sYz1pWzRdLHU9aVs3XTtyZXR1cm4gaVswXT1yKm8rbipsLGlbM109ciphK24qYyxpWzZdPXIqcytuKnUsaVsxXT0tbipvK3IqbCxpWzRdPS1uKmErcipjLGlbN109LW4qcytyKnUsdGhpc310cmFuc2xhdGUodCxyKXtsZXQgbj10aGlzLmVsZW1lbnRzO3JldHVybiBuWzBdKz10Km5bMl0sblszXSs9dCpuWzVdLG5bNl0rPXQqbls4XSxuWzFdKz1yKm5bMl0sbls0XSs9cipuWzVdLG5bN10rPXIqbls4XSx0aGlzfWVxdWFscyh0KXtsZXQgcj10aGlzLmVsZW1lbnRzLG49dC5lbGVtZW50cztmb3IobGV0IGk9MDtpPDk7aSsrKWlmKHJbaV0hPT1uW2ldKXJldHVybiExO3JldHVybiEwfWZyb21BcnJheSh0LHI9MCl7Zm9yKGxldCBuPTA7bjw5O24rKyl0aGlzLmVsZW1lbnRzW25dPXRbbityXTtyZXR1cm4gdGhpc310b0FycmF5KHQ9W10scj0wKXtsZXQgbj10aGlzLmVsZW1lbnRzO3JldHVybiB0W3JdPW5bMF0sdFtyKzFdPW5bMV0sdFtyKzJdPW5bMl0sdFtyKzNdPW5bM10sdFtyKzRdPW5bNF0sdFtyKzVdPW5bNV0sdFtyKzZdPW5bNl0sdFtyKzddPW5bN10sdFtyKzhdPW5bOF0sdH1jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcigpLmZyb21BcnJheSh0aGlzLmVsZW1lbnRzKX19O2tpLnByb3RvdHlwZS5pc01hdHJpeDM9ITA7ZnVuY3Rpb24gQmZlKGUpe2ZvcihsZXQgdD1lLmxlbmd0aC0xO3Q+PTA7LS10KWlmKGVbdF0+NjU1MzUpcmV0dXJuITA7cmV0dXJuITF9dmFyIG9mcj17SW50OEFycmF5LFVpbnQ4QXJyYXksVWludDhDbGFtcGVkQXJyYXksSW50MTZBcnJheSxVaW50MTZBcnJheSxJbnQzMkFycmF5LFVpbnQzMkFycmF5LEZsb2F0MzJBcnJheSxGbG9hdDY0QXJyYXl9O2Z1bmN0aW9uIEIzKGUsdCl7cmV0dXJuIG5ldyBvZnJbZV0odCl9ZnVuY3Rpb24gdDYoZSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsZSl9dmFyIEhmZT17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fSxuaD17aDowLHM6MCxsOjB9LGhWPXtoOjAsczowLGw6MH07ZnVuY3Rpb24gR2N0KGUsdCxyKXtyZXR1cm4gcjwwJiYocis9MSkscj4xJiYoci09MSkscjwxLzY/ZSsodC1lKSo2KnI6cjwxLzI/dDpyPDIvMz9lKyh0LWUpKjYqKDIvMy1yKTplfWZ1bmN0aW9uIFUzKGUpe3JldHVybiBlPC4wNDA0NT9lKi4wNzczOTkzODA4Ok1hdGgucG93KGUqLjk0Nzg2NzI5ODYrLjA1MjEzMjcwMTQsMi40KX1mdW5jdGlvbiBXY3QoZSl7cmV0dXJuIGU8LjAwMzEzMDg/ZSoxMi45MjoxLjA1NSpNYXRoLnBvdyhlLC40MTY2NiktLjA1NX12YXIgbmU9Y2xhc3N7Y29uc3RydWN0b3IodCxyLG4pe3JldHVybiByPT09dm9pZCAwJiZuPT09dm9pZCAwP3RoaXMuc2V0KHQpOnRoaXMuc2V0UkdCKHQscixuKX1zZXQodCl7cmV0dXJuIHQmJnQuaXNDb2xvcj90aGlzLmNvcHkodCk6dHlwZW9mIHQ9PSJudW1iZXIiP3RoaXMuc2V0SGV4KHQpOnR5cGVvZiB0PT0ic3RyaW5nIiYmdGhpcy5zZXRTdHlsZSh0KSx0aGlzfXNldFNjYWxhcih0KXtyZXR1cm4gdGhpcy5yPXQsdGhpcy5nPXQsdGhpcy5iPXQsdGhpc31zZXRIZXgodCl7cmV0dXJuIHQ9TWF0aC5mbG9vcih0KSx0aGlzLnI9KHQ+PjE2JjI1NSkvMjU1LHRoaXMuZz0odD4+OCYyNTUpLzI1NSx0aGlzLmI9KHQmMjU1KS8yNTUsdGhpc31zZXRSR0IodCxyLG4pe3JldHVybiB0aGlzLnI9dCx0aGlzLmc9cix0aGlzLmI9bix0aGlzfXNldEhTTCh0LHIsbil7aWYodD1SaHQodCwxKSxyPVpvKHIsMCwxKSxuPVpvKG4sMCwxKSxyPT09MCl0aGlzLnI9dGhpcy5nPXRoaXMuYj1uO2Vsc2V7bGV0IGk9bjw9LjU/biooMStyKTpuK3ItbipyLG89MipuLWk7dGhpcy5yPUdjdChvLGksdCsxLzMpLHRoaXMuZz1HY3QobyxpLHQpLHRoaXMuYj1HY3QobyxpLHQtMS8zKX1yZXR1cm4gdGhpc31zZXRTdHlsZSh0KXtmdW5jdGlvbiByKGkpe2khPT12b2lkIDAmJnBhcnNlRmxvYXQoaSk8MSYmY29uc29sZS53YXJuKCJUSFJFRS5Db2xvcjogQWxwaGEgY29tcG9uZW50IG9mICIrdCsiIHdpbGwgYmUgaWdub3JlZC4iKX1sZXQgbjtpZihuPS9eKCg/OnJnYnxoc2wpYT8pXCgoW15cKV0qKVwpLy5leGVjKHQpKXtsZXQgaSxvPW5bMV0sYT1uWzJdO3N3aXRjaChvKXtjYXNlInJnYiI6Y2FzZSJyZ2JhIjppZihpPS9eXHMqKFxkKylccyosXHMqKFxkKylccyosXHMqKFxkKylccyooPzosXHMqKFxkKlwuP1xkKylccyopPyQvLmV4ZWMoYSkpcmV0dXJuIHRoaXMucj1NYXRoLm1pbigyNTUscGFyc2VJbnQoaVsxXSwxMCkpLzI1NSx0aGlzLmc9TWF0aC5taW4oMjU1LHBhcnNlSW50KGlbMl0sMTApKS8yNTUsdGhpcy5iPU1hdGgubWluKDI1NSxwYXJzZUludChpWzNdLDEwKSkvMjU1LHIoaVs0XSksdGhpcztpZihpPS9eXHMqKFxkKylcJVxzKixccyooXGQrKVwlXHMqLFxzKihcZCspXCVccyooPzosXHMqKFxkKlwuP1xkKylccyopPyQvLmV4ZWMoYSkpcmV0dXJuIHRoaXMucj1NYXRoLm1pbigxMDAscGFyc2VJbnQoaVsxXSwxMCkpLzEwMCx0aGlzLmc9TWF0aC5taW4oMTAwLHBhcnNlSW50KGlbMl0sMTApKS8xMDAsdGhpcy5iPU1hdGgubWluKDEwMCxwYXJzZUludChpWzNdLDEwKSkvMTAwLHIoaVs0XSksdGhpczticmVhaztjYXNlImhzbCI6Y2FzZSJoc2xhIjppZihpPS9eXHMqKFxkKlwuP1xkKylccyosXHMqKFxkKylcJVxzKixccyooXGQrKVwlXHMqKD86LFxzKihcZCpcLj9cZCspXHMqKT8kLy5leGVjKGEpKXtsZXQgcz1wYXJzZUZsb2F0KGlbMV0pLzM2MCxsPXBhcnNlSW50KGlbMl0sMTApLzEwMCxjPXBhcnNlSW50KGlbM10sMTApLzEwMDtyZXR1cm4gcihpWzRdKSx0aGlzLnNldEhTTChzLGwsYyl9YnJlYWt9fWVsc2UgaWYobj0vXlwjKFtBLUZhLWZcZF0rKSQvLmV4ZWModCkpe2xldCBpPW5bMV0sbz1pLmxlbmd0aDtpZihvPT09MylyZXR1cm4gdGhpcy5yPXBhcnNlSW50KGkuY2hhckF0KDApK2kuY2hhckF0KDApLDE2KS8yNTUsdGhpcy5nPXBhcnNlSW50KGkuY2hhckF0KDEpK2kuY2hhckF0KDEpLDE2KS8yNTUsdGhpcy5iPXBhcnNlSW50KGkuY2hhckF0KDIpK2kuY2hhckF0KDIpLDE2KS8yNTUsdGhpcztpZihvPT09NilyZXR1cm4gdGhpcy5yPXBhcnNlSW50KGkuY2hhckF0KDApK2kuY2hhckF0KDEpLDE2KS8yNTUsdGhpcy5nPXBhcnNlSW50KGkuY2hhckF0KDIpK2kuY2hhckF0KDMpLDE2KS8yNTUsdGhpcy5iPXBhcnNlSW50KGkuY2hhckF0KDQpK2kuY2hhckF0KDUpLDE2KS8yNTUsdGhpc31yZXR1cm4gdCYmdC5sZW5ndGg+MD90aGlzLnNldENvbG9yTmFtZSh0KTp0aGlzfXNldENvbG9yTmFtZSh0KXtsZXQgcj1IZmVbdC50b0xvd2VyQ2FzZSgpXTtyZXR1cm4gciE9PXZvaWQgMD90aGlzLnNldEhleChyKTpjb25zb2xlLndhcm4oIlRIUkVFLkNvbG9yOiBVbmtub3duIGNvbG9yICIrdCksdGhpc31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLnIsdGhpcy5nLHRoaXMuYil9Y29weSh0KXtyZXR1cm4gdGhpcy5yPXQucix0aGlzLmc9dC5nLHRoaXMuYj10LmIsdGhpc31jb3B5U1JHQlRvTGluZWFyKHQpe3JldHVybiB0aGlzLnI9VTModC5yKSx0aGlzLmc9VTModC5nKSx0aGlzLmI9VTModC5iKSx0aGlzfWNvcHlMaW5lYXJUb1NSR0IodCl7cmV0dXJuIHRoaXMucj1XY3QodC5yKSx0aGlzLmc9V2N0KHQuZyksdGhpcy5iPVdjdCh0LmIpLHRoaXN9Y29udmVydFNSR0JUb0xpbmVhcigpe3JldHVybiB0aGlzLmNvcHlTUkdCVG9MaW5lYXIodGhpcyksdGhpc31jb252ZXJ0TGluZWFyVG9TUkdCKCl7cmV0dXJuIHRoaXMuY29weUxpbmVhclRvU1JHQih0aGlzKSx0aGlzfWdldEhleCgpe3JldHVybiB0aGlzLnIqMjU1PDwxNl50aGlzLmcqMjU1PDw4XnRoaXMuYioyNTU8PDB9Z2V0SGV4U3RyaW5nKCl7cmV0dXJuKCIwMDAwMDAiK3RoaXMuZ2V0SGV4KCkudG9TdHJpbmcoMTYpKS5zbGljZSgtNil9Z2V0SFNMKHQpe2xldCByPXRoaXMucixuPXRoaXMuZyxpPXRoaXMuYixvPU1hdGgubWF4KHIsbixpKSxhPU1hdGgubWluKHIsbixpKSxzLGwsYz0oYStvKS8yO2lmKGE9PT1vKXM9MCxsPTA7ZWxzZXtsZXQgdT1vLWE7c3dpdGNoKGw9Yzw9LjU/dS8obythKTp1LygyLW8tYSksbyl7Y2FzZSByOnM9KG4taSkvdSsobjxpPzY6MCk7YnJlYWs7Y2FzZSBuOnM9KGktcikvdSsyO2JyZWFrO2Nhc2UgaTpzPShyLW4pL3UrNDticmVha31zLz02fXJldHVybiB0Lmg9cyx0LnM9bCx0Lmw9Yyx0fWdldFN0eWxlKCl7cmV0dXJuInJnYigiKyh0aGlzLnIqMjU1fDApKyIsIisodGhpcy5nKjI1NXwwKSsiLCIrKHRoaXMuYioyNTV8MCkrIikifW9mZnNldEhTTCh0LHIsbil7cmV0dXJuIHRoaXMuZ2V0SFNMKG5oKSxuaC5oKz10LG5oLnMrPXIsbmgubCs9bix0aGlzLnNldEhTTChuaC5oLG5oLnMsbmgubCksdGhpc31hZGQodCl7cmV0dXJuIHRoaXMucis9dC5yLHRoaXMuZys9dC5nLHRoaXMuYis9dC5iLHRoaXN9YWRkQ29sb3JzKHQscil7cmV0dXJuIHRoaXMucj10LnIrci5yLHRoaXMuZz10Lmcrci5nLHRoaXMuYj10LmIrci5iLHRoaXN9YWRkU2NhbGFyKHQpe3JldHVybiB0aGlzLnIrPXQsdGhpcy5nKz10LHRoaXMuYis9dCx0aGlzfXN1Yih0KXtyZXR1cm4gdGhpcy5yPU1hdGgubWF4KDAsdGhpcy5yLXQuciksdGhpcy5nPU1hdGgubWF4KDAsdGhpcy5nLXQuZyksdGhpcy5iPU1hdGgubWF4KDAsdGhpcy5iLXQuYiksdGhpc31tdWx0aXBseSh0KXtyZXR1cm4gdGhpcy5yKj10LnIsdGhpcy5nKj10LmcsdGhpcy5iKj10LmIsdGhpc31tdWx0aXBseVNjYWxhcih0KXtyZXR1cm4gdGhpcy5yKj10LHRoaXMuZyo9dCx0aGlzLmIqPXQsdGhpc31sZXJwKHQscil7cmV0dXJuIHRoaXMucis9KHQuci10aGlzLnIpKnIsdGhpcy5nKz0odC5nLXRoaXMuZykqcix0aGlzLmIrPSh0LmItdGhpcy5iKSpyLHRoaXN9bGVycENvbG9ycyh0LHIsbil7cmV0dXJuIHRoaXMucj10LnIrKHIuci10LnIpKm4sdGhpcy5nPXQuZysoci5nLXQuZykqbix0aGlzLmI9dC5iKyhyLmItdC5iKSpuLHRoaXN9bGVycEhTTCh0LHIpe3RoaXMuZ2V0SFNMKG5oKSx0LmdldEhTTChoVik7bGV0IG49VVAobmguaCxoVi5oLHIpLGk9VVAobmgucyxoVi5zLHIpLG89VVAobmgubCxoVi5sLHIpO3JldHVybiB0aGlzLnNldEhTTChuLGksbyksdGhpc31lcXVhbHModCl7cmV0dXJuIHQucj09PXRoaXMuciYmdC5nPT09dGhpcy5nJiZ0LmI9PT10aGlzLmJ9ZnJvbUFycmF5KHQscj0wKXtyZXR1cm4gdGhpcy5yPXRbcl0sdGhpcy5nPXRbcisxXSx0aGlzLmI9dFtyKzJdLHRoaXN9dG9BcnJheSh0PVtdLHI9MCl7cmV0dXJuIHRbcl09dGhpcy5yLHRbcisxXT10aGlzLmcsdFtyKzJdPXRoaXMuYix0fWZyb21CdWZmZXJBdHRyaWJ1dGUodCxyKXtyZXR1cm4gdGhpcy5yPXQuZ2V0WChyKSx0aGlzLmc9dC5nZXRZKHIpLHRoaXMuYj10LmdldFoociksdC5ub3JtYWxpemVkPT09ITAmJih0aGlzLnIvPTI1NSx0aGlzLmcvPTI1NSx0aGlzLmIvPTI1NSksdGhpc310b0pTT04oKXtyZXR1cm4gdGhpcy5nZXRIZXgoKX19O25lLk5BTUVTPUhmZTtuZS5wcm90b3R5cGUuaXNDb2xvcj0hMDtuZS5wcm90b3R5cGUucj0xO25lLnByb3RvdHlwZS5nPTE7bmUucHJvdG90eXBlLmI9MTt2YXIgdjMsWmY9Y2xhc3N7c3RhdGljIGdldERhdGFVUkwodCl7aWYoL15kYXRhOi9pLnRlc3QodC5zcmMpfHx0eXBlb2YgSFRNTENhbnZhc0VsZW1lbnQ9PSJ1bmRlZmluZWQiKXJldHVybiB0LnNyYztsZXQgcjtpZih0IGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnQpcj10O2Vsc2V7djM9PT12b2lkIDAmJih2Mz10NigiY2FudmFzIikpLHYzLndpZHRoPXQud2lkdGgsdjMuaGVpZ2h0PXQuaGVpZ2h0O2xldCBuPXYzLmdldENvbnRleHQoIjJkIik7dCBpbnN0YW5jZW9mIEltYWdlRGF0YT9uLnB1dEltYWdlRGF0YSh0LDAsMCk6bi5kcmF3SW1hZ2UodCwwLDAsdC53aWR0aCx0LmhlaWdodCkscj12M31yZXR1cm4gci53aWR0aD4yMDQ4fHxyLmhlaWdodD4yMDQ4Pyhjb25zb2xlLndhcm4oIlRIUkVFLkltYWdlVXRpbHMuZ2V0RGF0YVVSTDogSW1hZ2UgY29udmVydGVkIHRvIGpwZyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyIsdCksci50b0RhdGFVUkwoImltYWdlL2pwZWciLC42KSk6ci50b0RhdGFVUkwoImltYWdlL3BuZyIpfXN0YXRpYyBzUkdCVG9MaW5lYXIodCl7aWYodHlwZW9mIEhUTUxJbWFnZUVsZW1lbnQhPSJ1bmRlZmluZWQiJiZ0IGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudHx8dHlwZW9mIEhUTUxDYW52YXNFbGVtZW50IT0idW5kZWZpbmVkIiYmdCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50fHx0eXBlb2YgSW1hZ2VCaXRtYXAhPSJ1bmRlZmluZWQiJiZ0IGluc3RhbmNlb2YgSW1hZ2VCaXRtYXApe2xldCByPXQ2KCJjYW52YXMiKTtyLndpZHRoPXQud2lkdGgsci5oZWlnaHQ9dC5oZWlnaHQ7bGV0IG49ci5nZXRDb250ZXh0KCIyZCIpO24uZHJhd0ltYWdlKHQsMCwwLHQud2lkdGgsdC5oZWlnaHQpO2xldCBpPW4uZ2V0SW1hZ2VEYXRhKDAsMCx0LndpZHRoLHQuaGVpZ2h0KSxvPWkuZGF0YTtmb3IobGV0IGE9MDthPG8ubGVuZ3RoO2ErKylvW2FdPVUzKG9bYV0vMjU1KSoyNTU7cmV0dXJuIG4ucHV0SW1hZ2VEYXRhKGksMCwwKSxyfWVsc2UgaWYodC5kYXRhKXtsZXQgcj10LmRhdGEuc2xpY2UoMCk7Zm9yKGxldCBuPTA7bjxyLmxlbmd0aDtuKyspciBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fHIgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheT9yW25dPU1hdGguZmxvb3IoVTMocltuXS8yNTUpKjI1NSk6cltuXT1VMyhyW25dKTtyZXR1cm57ZGF0YTpyLHdpZHRoOnQud2lkdGgsaGVpZ2h0OnQuaGVpZ2h0fX1lbHNlIHJldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkltYWdlVXRpbHMuc1JHQlRvTGluZWFyKCk6IFVuc3VwcG9ydGVkIGltYWdlIHR5cGUuIE5vIGNvbG9yIHNwYWNlIGNvbnZlcnNpb24gYXBwbGllZC4iKSx0fX0sYWZyPTAsdmk9Y2xhc3MgZXh0ZW5kcyBxc3tjb25zdHJ1Y3Rvcih0PXZpLkRFRkFVTFRfSU1BR0Uscj12aS5ERUZBVUxUX01BUFBJTkcsbj1KbyxpPUpvLG89aWksYT1heCxzPVFvLGw9SmQsYz0xLHU9dG0pe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlkIix7dmFsdWU6YWZyKyt9KSx0aGlzLnV1aWQ9RGwoKSx0aGlzLm5hbWU9IiIsdGhpcy5pbWFnZT10LHRoaXMubWlwbWFwcz1bXSx0aGlzLm1hcHBpbmc9cix0aGlzLndyYXBTPW4sdGhpcy53cmFwVD1pLHRoaXMubWFnRmlsdGVyPW8sdGhpcy5taW5GaWx0ZXI9YSx0aGlzLmFuaXNvdHJvcHk9Yyx0aGlzLmZvcm1hdD1zLHRoaXMuaW50ZXJuYWxGb3JtYXQ9bnVsbCx0aGlzLnR5cGU9bCx0aGlzLm9mZnNldD1uZXcgTHQoMCwwKSx0aGlzLnJlcGVhdD1uZXcgTHQoMSwxKSx0aGlzLmNlbnRlcj1uZXcgTHQoMCwwKSx0aGlzLnJvdGF0aW9uPTAsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSEwLHRoaXMubWF0cml4PW5ldyBraSx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMCx0aGlzLnByZW11bHRpcGx5QWxwaGE9ITEsdGhpcy5mbGlwWT0hMCx0aGlzLnVucGFja0FsaWdubWVudD00LHRoaXMuZW5jb2Rpbmc9dSx0aGlzLnVzZXJEYXRhPXt9LHRoaXMudmVyc2lvbj0wLHRoaXMub25VcGRhdGU9bnVsbCx0aGlzLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT0hMSx0aGlzLm5lZWRzUE1SRU1VcGRhdGU9ITF9dXBkYXRlTWF0cml4KCl7dGhpcy5tYXRyaXguc2V0VXZUcmFuc2Zvcm0odGhpcy5vZmZzZXQueCx0aGlzLm9mZnNldC55LHRoaXMucmVwZWF0LngsdGhpcy5yZXBlYXQueSx0aGlzLnJvdGF0aW9uLHRoaXMuY2VudGVyLngsdGhpcy5jZW50ZXIueSl9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IoKS5jb3B5KHRoaXMpfWNvcHkodCl7cmV0dXJuIHRoaXMubmFtZT10Lm5hbWUsdGhpcy5pbWFnZT10LmltYWdlLHRoaXMubWlwbWFwcz10Lm1pcG1hcHMuc2xpY2UoMCksdGhpcy5tYXBwaW5nPXQubWFwcGluZyx0aGlzLndyYXBTPXQud3JhcFMsdGhpcy53cmFwVD10LndyYXBULHRoaXMubWFnRmlsdGVyPXQubWFnRmlsdGVyLHRoaXMubWluRmlsdGVyPXQubWluRmlsdGVyLHRoaXMuYW5pc290cm9weT10LmFuaXNvdHJvcHksdGhpcy5mb3JtYXQ9dC5mb3JtYXQsdGhpcy5pbnRlcm5hbEZvcm1hdD10LmludGVybmFsRm9ybWF0LHRoaXMudHlwZT10LnR5cGUsdGhpcy5vZmZzZXQuY29weSh0Lm9mZnNldCksdGhpcy5yZXBlYXQuY29weSh0LnJlcGVhdCksdGhpcy5jZW50ZXIuY29weSh0LmNlbnRlciksdGhpcy5yb3RhdGlvbj10LnJvdGF0aW9uLHRoaXMubWF0cml4QXV0b1VwZGF0ZT10Lm1hdHJpeEF1dG9VcGRhdGUsdGhpcy5tYXRyaXguY29weSh0Lm1hdHJpeCksdGhpcy5nZW5lcmF0ZU1pcG1hcHM9dC5nZW5lcmF0ZU1pcG1hcHMsdGhpcy5wcmVtdWx0aXBseUFscGhhPXQucHJlbXVsdGlwbHlBbHBoYSx0aGlzLmZsaXBZPXQuZmxpcFksdGhpcy51bnBhY2tBbGlnbm1lbnQ9dC51bnBhY2tBbGlnbm1lbnQsdGhpcy5lbmNvZGluZz10LmVuY29kaW5nLHRoaXMudXNlckRhdGE9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0LnVzZXJEYXRhKSksdGhpc310b0pTT04odCl7bGV0IHI9dD09PXZvaWQgMHx8dHlwZW9mIHQ9PSJzdHJpbmciO2lmKCFyJiZ0LnRleHR1cmVzW3RoaXMudXVpZF0hPT12b2lkIDApcmV0dXJuIHQudGV4dHVyZXNbdGhpcy51dWlkXTtsZXQgbj17bWV0YWRhdGE6e3ZlcnNpb246NC41LHR5cGU6IlRleHR1cmUiLGdlbmVyYXRvcjoiVGV4dHVyZS50b0pTT04ifSx1dWlkOnRoaXMudXVpZCxuYW1lOnRoaXMubmFtZSxtYXBwaW5nOnRoaXMubWFwcGluZyxyZXBlYXQ6W3RoaXMucmVwZWF0LngsdGhpcy5yZXBlYXQueV0sb2Zmc2V0Olt0aGlzLm9mZnNldC54LHRoaXMub2Zmc2V0LnldLGNlbnRlcjpbdGhpcy5jZW50ZXIueCx0aGlzLmNlbnRlci55XSxyb3RhdGlvbjp0aGlzLnJvdGF0aW9uLHdyYXA6W3RoaXMud3JhcFMsdGhpcy53cmFwVF0sZm9ybWF0OnRoaXMuZm9ybWF0LHR5cGU6dGhpcy50eXBlLGVuY29kaW5nOnRoaXMuZW5jb2RpbmcsbWluRmlsdGVyOnRoaXMubWluRmlsdGVyLG1hZ0ZpbHRlcjp0aGlzLm1hZ0ZpbHRlcixhbmlzb3Ryb3B5OnRoaXMuYW5pc290cm9weSxmbGlwWTp0aGlzLmZsaXBZLHByZW11bHRpcGx5QWxwaGE6dGhpcy5wcmVtdWx0aXBseUFscGhhLHVucGFja0FsaWdubWVudDp0aGlzLnVucGFja0FsaWdubWVudH07aWYodGhpcy5pbWFnZSE9PXZvaWQgMCl7bGV0IGk9dGhpcy5pbWFnZTtpZihpLnV1aWQ9PT12b2lkIDAmJihpLnV1aWQ9RGwoKSksIXImJnQuaW1hZ2VzW2kudXVpZF09PT12b2lkIDApe2xldCBvO2lmKEFycmF5LmlzQXJyYXkoaSkpe289W107Zm9yKGxldCBhPTAscz1pLmxlbmd0aDthPHM7YSsrKWlbYV0uaXNEYXRhVGV4dHVyZT9vLnB1c2goWWN0KGlbYV0uaW1hZ2UpKTpvLnB1c2goWWN0KGlbYV0pKX1lbHNlIG89WWN0KGkpO3QuaW1hZ2VzW2kudXVpZF09e3V1aWQ6aS51dWlkLHVybDpvfX1uLmltYWdlPWkudXVpZH1yZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy51c2VyRGF0YSkhPT0ie30iJiYobi51c2VyRGF0YT10aGlzLnVzZXJEYXRhKSxyfHwodC50ZXh0dXJlc1t0aGlzLnV1aWRdPW4pLG59ZGlzcG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzcG9zZSJ9KX10cmFuc2Zvcm1Vdih0KXtpZih0aGlzLm1hcHBpbmchPT1YVSlyZXR1cm4gdDtpZih0LmFwcGx5TWF0cml4Myh0aGlzLm1hdHJpeCksdC54PDB8fHQueD4xKXN3aXRjaCh0aGlzLndyYXBTKXtjYXNlIFhQOnQueD10LngtTWF0aC5mbG9vcih0LngpO2JyZWFrO2Nhc2UgSm86dC54PXQueDwwPzA6MTticmVhaztjYXNlICRQOk1hdGguYWJzKE1hdGguZmxvb3IodC54KSUyKT09PTE/dC54PU1hdGguY2VpbCh0LngpLXQueDp0Lng9dC54LU1hdGguZmxvb3IodC54KTticmVha31pZih0Lnk8MHx8dC55PjEpc3dpdGNoKHRoaXMud3JhcFQpe2Nhc2UgWFA6dC55PXQueS1NYXRoLmZsb29yKHQueSk7YnJlYWs7Y2FzZSBKbzp0Lnk9dC55PDA/MDoxO2JyZWFrO2Nhc2UgJFA6TWF0aC5hYnMoTWF0aC5mbG9vcih0LnkpJTIpPT09MT90Lnk9TWF0aC5jZWlsKHQueSktdC55OnQueT10LnktTWF0aC5mbG9vcih0LnkpO2JyZWFrfXJldHVybiB0aGlzLmZsaXBZJiYodC55PTEtdC55KSx0fXNldCBuZWVkc1VwZGF0ZSh0KXt0PT09ITAmJnRoaXMudmVyc2lvbisrfX07dmkuREVGQVVMVF9JTUFHRT12b2lkIDA7dmkuREVGQVVMVF9NQVBQSU5HPVhVO3ZpLnByb3RvdHlwZS5pc1RleHR1cmU9ITA7ZnVuY3Rpb24gWWN0KGUpe3JldHVybiB0eXBlb2YgSFRNTEltYWdlRWxlbWVudCE9InVuZGVmaW5lZCImJmUgaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50fHx0eXBlb2YgSFRNTENhbnZhc0VsZW1lbnQhPSJ1bmRlZmluZWQiJiZlIGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnR8fHR5cGVvZiBJbWFnZUJpdG1hcCE9InVuZGVmaW5lZCImJmUgaW5zdGFuY2VvZiBJbWFnZUJpdG1hcD9aZi5nZXREYXRhVVJMKGUpOmUuZGF0YT97ZGF0YTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLmRhdGEpLHdpZHRoOmUud2lkdGgsaGVpZ2h0OmUuaGVpZ2h0LHR5cGU6ZS5kYXRhLmNvbnN0cnVjdG9yLm5hbWV9Oihjb25zb2xlLndhcm4oIlRIUkVFLlRleHR1cmU6IFVuYWJsZSB0byBzZXJpYWxpemUgVGV4dHVyZS4iKSx7fSl9dmFyIGVuPWNsYXNze2NvbnN0cnVjdG9yKHQ9MCxyPTAsbj0wLGk9MSl7dGhpcy54PXQsdGhpcy55PXIsdGhpcy56PW4sdGhpcy53PWl9Z2V0IHdpZHRoKCl7cmV0dXJuIHRoaXMuen1zZXQgd2lkdGgodCl7dGhpcy56PXR9Z2V0IGhlaWdodCgpe3JldHVybiB0aGlzLnd9c2V0IGhlaWdodCh0KXt0aGlzLnc9dH1zZXQodCxyLG4saSl7cmV0dXJuIHRoaXMueD10LHRoaXMueT1yLHRoaXMuej1uLHRoaXMudz1pLHRoaXN9c2V0U2NhbGFyKHQpe3JldHVybiB0aGlzLng9dCx0aGlzLnk9dCx0aGlzLno9dCx0aGlzLnc9dCx0aGlzfXNldFgodCl7cmV0dXJuIHRoaXMueD10LHRoaXN9c2V0WSh0KXtyZXR1cm4gdGhpcy55PXQsdGhpc31zZXRaKHQpe3JldHVybiB0aGlzLno9dCx0aGlzfXNldFcodCl7cmV0dXJuIHRoaXMudz10LHRoaXN9c2V0Q29tcG9uZW50KHQscil7c3dpdGNoKHQpe2Nhc2UgMDp0aGlzLng9cjticmVhaztjYXNlIDE6dGhpcy55PXI7YnJlYWs7Y2FzZSAyOnRoaXMuej1yO2JyZWFrO2Nhc2UgMzp0aGlzLnc9cjticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAiK3QpfXJldHVybiB0aGlzfWdldENvbXBvbmVudCh0KXtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiB0aGlzLng7Y2FzZSAxOnJldHVybiB0aGlzLnk7Y2FzZSAyOnJldHVybiB0aGlzLno7Y2FzZSAzOnJldHVybiB0aGlzLnc7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX19Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy54LHRoaXMueSx0aGlzLnosdGhpcy53KX1jb3B5KHQpe3JldHVybiB0aGlzLng9dC54LHRoaXMueT10LnksdGhpcy56PXQueix0aGlzLnc9dC53IT09dm9pZCAwP3QudzoxLHRoaXN9YWRkKHQscil7cmV0dXJuIHIhPT12b2lkIDA/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yNDogLmFkZCgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLmFkZFZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuYWRkVmVjdG9ycyh0LHIpKToodGhpcy54Kz10LngsdGhpcy55Kz10LnksdGhpcy56Kz10LnosdGhpcy53Kz10LncsdGhpcyl9YWRkU2NhbGFyKHQpe3JldHVybiB0aGlzLngrPXQsdGhpcy55Kz10LHRoaXMueis9dCx0aGlzLncrPXQsdGhpc31hZGRWZWN0b3JzKHQscil7cmV0dXJuIHRoaXMueD10Lngrci54LHRoaXMueT10Lnkrci55LHRoaXMuej10Lnorci56LHRoaXMudz10Lncrci53LHRoaXN9YWRkU2NhbGVkVmVjdG9yKHQscil7cmV0dXJuIHRoaXMueCs9dC54KnIsdGhpcy55Kz10Lnkqcix0aGlzLnorPXQueipyLHRoaXMudys9dC53KnIsdGhpc31zdWIodCxyKXtyZXR1cm4gciE9PXZvaWQgMD8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3I0OiAuc3ViKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuc3ViVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5zdWJWZWN0b3JzKHQscikpOih0aGlzLngtPXQueCx0aGlzLnktPXQueSx0aGlzLnotPXQueix0aGlzLnctPXQudyx0aGlzKX1zdWJTY2FsYXIodCl7cmV0dXJuIHRoaXMueC09dCx0aGlzLnktPXQsdGhpcy56LT10LHRoaXMudy09dCx0aGlzfXN1YlZlY3RvcnModCxyKXtyZXR1cm4gdGhpcy54PXQueC1yLngsdGhpcy55PXQueS1yLnksdGhpcy56PXQuei1yLnosdGhpcy53PXQudy1yLncsdGhpc31tdWx0aXBseSh0KXtyZXR1cm4gdGhpcy54Kj10LngsdGhpcy55Kj10LnksdGhpcy56Kj10LnosdGhpcy53Kj10LncsdGhpc31tdWx0aXBseVNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kj10LHRoaXMueSo9dCx0aGlzLnoqPXQsdGhpcy53Kj10LHRoaXN9YXBwbHlNYXRyaXg0KHQpe2xldCByPXRoaXMueCxuPXRoaXMueSxpPXRoaXMueixvPXRoaXMudyxhPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMueD1hWzBdKnIrYVs0XSpuK2FbOF0qaSthWzEyXSpvLHRoaXMueT1hWzFdKnIrYVs1XSpuK2FbOV0qaSthWzEzXSpvLHRoaXMuej1hWzJdKnIrYVs2XSpuK2FbMTBdKmkrYVsxNF0qbyx0aGlzLnc9YVszXSpyK2FbN10qbithWzExXSppK2FbMTVdKm8sdGhpc31kaXZpZGVTY2FsYXIodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlTY2FsYXIoMS90KX1zZXRBeGlzQW5nbGVGcm9tUXVhdGVybmlvbih0KXt0aGlzLnc9MipNYXRoLmFjb3ModC53KTtsZXQgcj1NYXRoLnNxcnQoMS10LncqdC53KTtyZXR1cm4gcjwxZS00Pyh0aGlzLng9MSx0aGlzLnk9MCx0aGlzLno9MCk6KHRoaXMueD10Lngvcix0aGlzLnk9dC55L3IsdGhpcy56PXQuei9yKSx0aGlzfXNldEF4aXNBbmdsZUZyb21Sb3RhdGlvbk1hdHJpeCh0KXtsZXQgcixuLGksbyxsPXQuZWxlbWVudHMsYz1sWzBdLHU9bFs0XSxoPWxbOF0sZj1sWzFdLHA9bFs1XSxkPWxbOV0sZz1sWzJdLF89bFs2XSx5PWxbMTBdO2lmKE1hdGguYWJzKHUtZik8LjAxJiZNYXRoLmFicyhoLWcpPC4wMSYmTWF0aC5hYnMoZC1fKTwuMDEpe2lmKE1hdGguYWJzKHUrZik8LjEmJk1hdGguYWJzKGgrZyk8LjEmJk1hdGguYWJzKGQrXyk8LjEmJk1hdGguYWJzKGMrcCt5LTMpPC4xKXJldHVybiB0aGlzLnNldCgxLDAsMCwwKSx0aGlzO3I9TWF0aC5QSTtsZXQgYj0oYysxKS8yLFM9KHArMSkvMixDPSh5KzEpLzIsUD0odStmKS80LGs9KGgrZykvNCxPPShkK18pLzQ7cmV0dXJuIGI+UyYmYj5DP2I8LjAxPyhuPTAsaT0uNzA3MTA2NzgxLG89LjcwNzEwNjc4MSk6KG49TWF0aC5zcXJ0KGIpLGk9UC9uLG89ay9uKTpTPkM/UzwuMDE/KG49LjcwNzEwNjc4MSxpPTAsbz0uNzA3MTA2NzgxKTooaT1NYXRoLnNxcnQoUyksbj1QL2ksbz1PL2kpOkM8LjAxPyhuPS43MDcxMDY3ODEsaT0uNzA3MTA2NzgxLG89MCk6KG89TWF0aC5zcXJ0KEMpLG49ay9vLGk9Ty9vKSx0aGlzLnNldChuLGksbyxyKSx0aGlzfWxldCB4PU1hdGguc3FydCgoXy1kKSooXy1kKSsoaC1nKSooaC1nKSsoZi11KSooZi11KSk7cmV0dXJuIE1hdGguYWJzKHgpPC4wMDEmJih4PTEpLHRoaXMueD0oXy1kKS94LHRoaXMueT0oaC1nKS94LHRoaXMuej0oZi11KS94LHRoaXMudz1NYXRoLmFjb3MoKGMrcCt5LTEpLzIpLHRoaXN9bWluKHQpe3JldHVybiB0aGlzLng9TWF0aC5taW4odGhpcy54LHQueCksdGhpcy55PU1hdGgubWluKHRoaXMueSx0LnkpLHRoaXMuej1NYXRoLm1pbih0aGlzLnosdC56KSx0aGlzLnc9TWF0aC5taW4odGhpcy53LHQudyksdGhpc31tYXgodCl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5tYXgodGhpcy55LHQueSksdGhpcy56PU1hdGgubWF4KHRoaXMueix0LnopLHRoaXMudz1NYXRoLm1heCh0aGlzLncsdC53KSx0aGlzfWNsYW1wKHQscil7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LngsTWF0aC5taW4oci54LHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LnksTWF0aC5taW4oci55LHRoaXMueSkpLHRoaXMuej1NYXRoLm1heCh0LnosTWF0aC5taW4oci56LHRoaXMueikpLHRoaXMudz1NYXRoLm1heCh0LncsTWF0aC5taW4oci53LHRoaXMudykpLHRoaXN9Y2xhbXBTY2FsYXIodCxyKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQsTWF0aC5taW4ocix0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodCxNYXRoLm1pbihyLHRoaXMueSkpLHRoaXMuej1NYXRoLm1heCh0LE1hdGgubWluKHIsdGhpcy56KSksdGhpcy53PU1hdGgubWF4KHQsTWF0aC5taW4ocix0aGlzLncpKSx0aGlzfWNsYW1wTGVuZ3RoKHQscil7bGV0IG49dGhpcy5sZW5ndGgoKTtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIobnx8MSkubXVsdGlwbHlTY2FsYXIoTWF0aC5tYXgodCxNYXRoLm1pbihyLG4pKSl9Zmxvb3IoKXtyZXR1cm4gdGhpcy54PU1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpLHRoaXMuej1NYXRoLmZsb29yKHRoaXMueiksdGhpcy53PU1hdGguZmxvb3IodGhpcy53KSx0aGlzfWNlaWwoKXtyZXR1cm4gdGhpcy54PU1hdGguY2VpbCh0aGlzLngpLHRoaXMueT1NYXRoLmNlaWwodGhpcy55KSx0aGlzLno9TWF0aC5jZWlsKHRoaXMueiksdGhpcy53PU1hdGguY2VpbCh0aGlzLncpLHRoaXN9cm91bmQoKXtyZXR1cm4gdGhpcy54PU1hdGgucm91bmQodGhpcy54KSx0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpLHRoaXMuej1NYXRoLnJvdW5kKHRoaXMueiksdGhpcy53PU1hdGgucm91bmQodGhpcy53KSx0aGlzfXJvdW5kVG9aZXJvKCl7cmV0dXJuIHRoaXMueD10aGlzLng8MD9NYXRoLmNlaWwodGhpcy54KTpNYXRoLmZsb29yKHRoaXMueCksdGhpcy55PXRoaXMueTwwP01hdGguY2VpbCh0aGlzLnkpOk1hdGguZmxvb3IodGhpcy55KSx0aGlzLno9dGhpcy56PDA/TWF0aC5jZWlsKHRoaXMueik6TWF0aC5mbG9vcih0aGlzLnopLHRoaXMudz10aGlzLnc8MD9NYXRoLmNlaWwodGhpcy53KTpNYXRoLmZsb29yKHRoaXMudyksdGhpc31uZWdhdGUoKXtyZXR1cm4gdGhpcy54PS10aGlzLngsdGhpcy55PS10aGlzLnksdGhpcy56PS10aGlzLnosdGhpcy53PS10aGlzLncsdGhpc31kb3QodCl7cmV0dXJuIHRoaXMueCp0LngrdGhpcy55KnQueSt0aGlzLnoqdC56K3RoaXMudyp0Lnd9bGVuZ3RoU3EoKXtyZXR1cm4gdGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55K3RoaXMueip0aGlzLnordGhpcy53KnRoaXMud31sZW5ndGgoKXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueSt0aGlzLnoqdGhpcy56K3RoaXMudyp0aGlzLncpfW1hbmhhdHRhbkxlbmd0aCgpe3JldHVybiBNYXRoLmFicyh0aGlzLngpK01hdGguYWJzKHRoaXMueSkrTWF0aC5hYnModGhpcy56KStNYXRoLmFicyh0aGlzLncpfW5vcm1hbGl6ZSgpe3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcih0aGlzLmxlbmd0aCgpfHwxKX1zZXRMZW5ndGgodCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIodCl9bGVycCh0LHIpe3JldHVybiB0aGlzLngrPSh0LngtdGhpcy54KSpyLHRoaXMueSs9KHQueS10aGlzLnkpKnIsdGhpcy56Kz0odC56LXRoaXMueikqcix0aGlzLncrPSh0LnctdGhpcy53KSpyLHRoaXN9bGVycFZlY3RvcnModCxyLG4pe3JldHVybiB0aGlzLng9dC54KyhyLngtdC54KSpuLHRoaXMueT10LnkrKHIueS10LnkpKm4sdGhpcy56PXQueisoci56LXQueikqbix0aGlzLnc9dC53KyhyLnctdC53KSpuLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lng9PT10aGlzLngmJnQueT09PXRoaXMueSYmdC56PT09dGhpcy56JiZ0Lnc9PT10aGlzLnd9ZnJvbUFycmF5KHQscj0wKXtyZXR1cm4gdGhpcy54PXRbcl0sdGhpcy55PXRbcisxXSx0aGlzLno9dFtyKzJdLHRoaXMudz10W3IrM10sdGhpc310b0FycmF5KHQ9W10scj0wKXtyZXR1cm4gdFtyXT10aGlzLngsdFtyKzFdPXRoaXMueSx0W3IrMl09dGhpcy56LHRbciszXT10aGlzLncsdH1mcm9tQnVmZmVyQXR0cmlidXRlKHQscixuKXtyZXR1cm4gbiE9PXZvaWQgMCYmY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3I0OiBvZmZzZXQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy54PXQuZ2V0WChyKSx0aGlzLnk9dC5nZXRZKHIpLHRoaXMuej10LmdldFoociksdGhpcy53PXQuZ2V0VyhyKSx0aGlzfXJhbmRvbSgpe3JldHVybiB0aGlzLng9TWF0aC5yYW5kb20oKSx0aGlzLnk9TWF0aC5yYW5kb20oKSx0aGlzLno9TWF0aC5yYW5kb20oKSx0aGlzLnc9TWF0aC5yYW5kb20oKSx0aGlzfSpbU3ltYm9sLml0ZXJhdG9yXSgpe3lpZWxkIHRoaXMueCx5aWVsZCB0aGlzLnkseWllbGQgdGhpcy56LHlpZWxkIHRoaXMud319O2VuLnByb3RvdHlwZS5pc1ZlY3RvcjQ9ITA7dmFyIGhzPWNsYXNzIGV4dGVuZHMgcXN7Y29uc3RydWN0b3IodCxyLG49e30pe3N1cGVyKCksdGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PXIsdGhpcy5kZXB0aD0xLHRoaXMuc2Npc3Nvcj1uZXcgZW4oMCwwLHQsciksdGhpcy5zY2lzc29yVGVzdD0hMSx0aGlzLnZpZXdwb3J0PW5ldyBlbigwLDAsdCxyKSx0aGlzLnRleHR1cmU9bmV3IHZpKHZvaWQgMCxuLm1hcHBpbmcsbi53cmFwUyxuLndyYXBULG4ubWFnRmlsdGVyLG4ubWluRmlsdGVyLG4uZm9ybWF0LG4udHlwZSxuLmFuaXNvdHJvcHksbi5lbmNvZGluZyksdGhpcy50ZXh0dXJlLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT0hMCx0aGlzLnRleHR1cmUuaW1hZ2U9e3dpZHRoOnQsaGVpZ2h0OnIsZGVwdGg6MX0sdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz1uLmdlbmVyYXRlTWlwbWFwcyE9PXZvaWQgMD9uLmdlbmVyYXRlTWlwbWFwczohMSx0aGlzLnRleHR1cmUuaW50ZXJuYWxGb3JtYXQ9bi5pbnRlcm5hbEZvcm1hdCE9PXZvaWQgMD9uLmludGVybmFsRm9ybWF0Om51bGwsdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj1uLm1pbkZpbHRlciE9PXZvaWQgMD9uLm1pbkZpbHRlcjppaSx0aGlzLmRlcHRoQnVmZmVyPW4uZGVwdGhCdWZmZXIhPT12b2lkIDA/bi5kZXB0aEJ1ZmZlcjohMCx0aGlzLnN0ZW5jaWxCdWZmZXI9bi5zdGVuY2lsQnVmZmVyIT09dm9pZCAwP24uc3RlbmNpbEJ1ZmZlcjohMSx0aGlzLmRlcHRoVGV4dHVyZT1uLmRlcHRoVGV4dHVyZSE9PXZvaWQgMD9uLmRlcHRoVGV4dHVyZTpudWxsfXNldFRleHR1cmUodCl7dC5pbWFnZT17d2lkdGg6dGhpcy53aWR0aCxoZWlnaHQ6dGhpcy5oZWlnaHQsZGVwdGg6dGhpcy5kZXB0aH0sdGhpcy50ZXh0dXJlPXR9c2V0U2l6ZSh0LHIsbj0xKXsodGhpcy53aWR0aCE9PXR8fHRoaXMuaGVpZ2h0IT09cnx8dGhpcy5kZXB0aCE9PW4pJiYodGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PXIsdGhpcy5kZXB0aD1uLHRoaXMudGV4dHVyZS5pbWFnZS53aWR0aD10LHRoaXMudGV4dHVyZS5pbWFnZS5oZWlnaHQ9cix0aGlzLnRleHR1cmUuaW1hZ2UuZGVwdGg9bix0aGlzLmRpc3Bvc2UoKSksdGhpcy52aWV3cG9ydC5zZXQoMCwwLHQsciksdGhpcy5zY2lzc29yLnNldCgwLDAsdCxyKX1jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcigpLmNvcHkodGhpcyl9Y29weSh0KXtyZXR1cm4gdGhpcy53aWR0aD10LndpZHRoLHRoaXMuaGVpZ2h0PXQuaGVpZ2h0LHRoaXMuZGVwdGg9dC5kZXB0aCx0aGlzLnZpZXdwb3J0LmNvcHkodC52aWV3cG9ydCksdGhpcy50ZXh0dXJlPXQudGV4dHVyZS5jbG9uZSgpLHRoaXMudGV4dHVyZS5pbWFnZT1PYmplY3QuYXNzaWduKHt9LHQudGV4dHVyZS5pbWFnZSksdGhpcy5kZXB0aEJ1ZmZlcj10LmRlcHRoQnVmZmVyLHRoaXMuc3RlbmNpbEJ1ZmZlcj10LnN0ZW5jaWxCdWZmZXIsdGhpcy5kZXB0aFRleHR1cmU9dC5kZXB0aFRleHR1cmUsdGhpc31kaXNwb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNwb3NlIn0pfX07aHMucHJvdG90eXBlLmlzV2ViR0xSZW5kZXJUYXJnZXQ9ITA7dmFyIGxVPWNsYXNzIGV4dGVuZHMgaHN7Y29uc3RydWN0b3IodCxyLG4pe3N1cGVyKHQscik7bGV0IGk9dGhpcy50ZXh0dXJlO3RoaXMudGV4dHVyZT1bXTtmb3IobGV0IG89MDtvPG47bysrKXRoaXMudGV4dHVyZVtvXT1pLmNsb25lKCl9c2V0U2l6ZSh0LHIsbj0xKXtpZih0aGlzLndpZHRoIT09dHx8dGhpcy5oZWlnaHQhPT1yfHx0aGlzLmRlcHRoIT09bil7dGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PXIsdGhpcy5kZXB0aD1uO2ZvcihsZXQgaT0wLG89dGhpcy50ZXh0dXJlLmxlbmd0aDtpPG87aSsrKXRoaXMudGV4dHVyZVtpXS5pbWFnZS53aWR0aD10LHRoaXMudGV4dHVyZVtpXS5pbWFnZS5oZWlnaHQ9cix0aGlzLnRleHR1cmVbaV0uaW1hZ2UuZGVwdGg9bjt0aGlzLmRpc3Bvc2UoKX1yZXR1cm4gdGhpcy52aWV3cG9ydC5zZXQoMCwwLHQsciksdGhpcy5zY2lzc29yLnNldCgwLDAsdCxyKSx0aGlzfWNvcHkodCl7dGhpcy5kaXNwb3NlKCksdGhpcy53aWR0aD10LndpZHRoLHRoaXMuaGVpZ2h0PXQuaGVpZ2h0LHRoaXMuZGVwdGg9dC5kZXB0aCx0aGlzLnZpZXdwb3J0LnNldCgwLDAsdGhpcy53aWR0aCx0aGlzLmhlaWdodCksdGhpcy5zY2lzc29yLnNldCgwLDAsdGhpcy53aWR0aCx0aGlzLmhlaWdodCksdGhpcy5kZXB0aEJ1ZmZlcj10LmRlcHRoQnVmZmVyLHRoaXMuc3RlbmNpbEJ1ZmZlcj10LnN0ZW5jaWxCdWZmZXIsdGhpcy5kZXB0aFRleHR1cmU9dC5kZXB0aFRleHR1cmUsdGhpcy50ZXh0dXJlLmxlbmd0aD0wO2ZvcihsZXQgcj0wLG49dC50ZXh0dXJlLmxlbmd0aDtyPG47cisrKXRoaXMudGV4dHVyZVtyXT10LnRleHR1cmVbcl0uY2xvbmUoKTtyZXR1cm4gdGhpc319O2xVLnByb3RvdHlwZS5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzPSEwO3ZhciBqMz1jbGFzcyBleHRlbmRzIGhze2NvbnN0cnVjdG9yKHQscixuPXt9KXtzdXBlcih0LHIsbiksdGhpcy5zYW1wbGVzPTQsdGhpcy5pZ25vcmVEZXB0aEZvck11bHRpc2FtcGxlQ29weT1uLmlnbm9yZURlcHRoIT09dm9pZCAwP24uaWdub3JlRGVwdGg6ITAsdGhpcy51c2VSZW5kZXJUb1RleHR1cmU9bi51c2VSZW5kZXJUb1RleHR1cmUhPT12b2lkIDA/bi51c2VSZW5kZXJUb1RleHR1cmU6ITEsdGhpcy51c2VSZW5kZXJidWZmZXI9dGhpcy51c2VSZW5kZXJUb1RleHR1cmU9PT0hMX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5LmNhbGwodGhpcyx0KSx0aGlzLnNhbXBsZXM9dC5zYW1wbGVzLHRoaXMudXNlUmVuZGVyVG9UZXh0dXJlPXQudXNlUmVuZGVyVG9UZXh0dXJlLHRoaXMudXNlUmVuZGVyYnVmZmVyPXQudXNlUmVuZGVyYnVmZmVyLHRoaXN9fTtqMy5wcm90b3R5cGUuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0PSEwO3ZhciB5aT1jbGFzc3tjb25zdHJ1Y3Rvcih0PTAscj0wLG49MCxpPTEpe3RoaXMuX3g9dCx0aGlzLl95PXIsdGhpcy5fej1uLHRoaXMuX3c9aX1zdGF0aWMgc2xlcnAodCxyLG4saSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUXVhdGVybmlvbjogU3RhdGljIC5zbGVycCgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSBxbS5zbGVycFF1YXRlcm5pb25zKCBxYSwgcWIsIHQgKSBpbnN0ZWFkLiIpLG4uc2xlcnBRdWF0ZXJuaW9ucyh0LHIsaSl9c3RhdGljIHNsZXJwRmxhdCh0LHIsbixpLG8sYSxzKXtsZXQgbD1uW2krMF0sYz1uW2krMV0sdT1uW2krMl0saD1uW2krM10sZj1vW2ErMF0scD1vW2ErMV0sZD1vW2ErMl0sZz1vW2ErM107aWYocz09PTApe3RbciswXT1sLHRbcisxXT1jLHRbcisyXT11LHRbciszXT1oO3JldHVybn1pZihzPT09MSl7dFtyKzBdPWYsdFtyKzFdPXAsdFtyKzJdPWQsdFtyKzNdPWc7cmV0dXJufWlmKGghPT1nfHxsIT09Znx8YyE9PXB8fHUhPT1kKXtsZXQgXz0xLXMseT1sKmYrYypwK3UqZCtoKmcseD15Pj0wPzE6LTEsYj0xLXkqeTtpZihiPk51bWJlci5FUFNJTE9OKXtsZXQgQz1NYXRoLnNxcnQoYiksUD1NYXRoLmF0YW4yKEMseSp4KTtfPU1hdGguc2luKF8qUCkvQyxzPU1hdGguc2luKHMqUCkvQ31sZXQgUz1zKng7aWYobD1sKl8rZipTLGM9YypfK3AqUyx1PXUqXytkKlMsaD1oKl8rZypTLF89PT0xLXMpe2xldCBDPTEvTWF0aC5zcXJ0KGwqbCtjKmMrdSp1K2gqaCk7bCo9QyxjKj1DLHUqPUMsaCo9Q319dFtyXT1sLHRbcisxXT1jLHRbcisyXT11LHRbciszXT1ofXN0YXRpYyBtdWx0aXBseVF1YXRlcm5pb25zRmxhdCh0LHIsbixpLG8sYSl7bGV0IHM9bltpXSxsPW5baSsxXSxjPW5baSsyXSx1PW5baSszXSxoPW9bYV0sZj1vW2ErMV0scD1vW2ErMl0sZD1vW2ErM107cmV0dXJuIHRbcl09cypkK3UqaCtsKnAtYypmLHRbcisxXT1sKmQrdSpmK2MqaC1zKnAsdFtyKzJdPWMqZCt1KnArcypmLWwqaCx0W3IrM109dSpkLXMqaC1sKmYtYypwLHR9Z2V0IHgoKXtyZXR1cm4gdGhpcy5feH1zZXQgeCh0KXt0aGlzLl94PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCB5KCl7cmV0dXJuIHRoaXMuX3l9c2V0IHkodCl7dGhpcy5feT10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgeigpe3JldHVybiB0aGlzLl96fXNldCB6KHQpe3RoaXMuX3o9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IHcoKXtyZXR1cm4gdGhpcy5fd31zZXQgdyh0KXt0aGlzLl93PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfXNldCh0LHIsbixpKXtyZXR1cm4gdGhpcy5feD10LHRoaXMuX3k9cix0aGlzLl96PW4sdGhpcy5fdz1pLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMuX3gsdGhpcy5feSx0aGlzLl96LHRoaXMuX3cpfWNvcHkodCl7cmV0dXJuIHRoaXMuX3g9dC54LHRoaXMuX3k9dC55LHRoaXMuX3o9dC56LHRoaXMuX3c9dC53LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21FdWxlcih0LHIpe2lmKCEodCYmdC5pc0V1bGVyKSl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLlF1YXRlcm5pb246IC5zZXRGcm9tRXVsZXIoKSBub3cgZXhwZWN0cyBhbiBFdWxlciByb3RhdGlvbiByYXRoZXIgdGhhbiBhIFZlY3RvcjMgYW5kIG9yZGVyLiIpO2xldCBuPXQuX3gsaT10Ll95LG89dC5feixhPXQuX29yZGVyLHM9TWF0aC5jb3MsbD1NYXRoLnNpbixjPXMobi8yKSx1PXMoaS8yKSxoPXMoby8yKSxmPWwobi8yKSxwPWwoaS8yKSxkPWwoby8yKTtzd2l0Y2goYSl7Y2FzZSJYWVoiOnRoaXMuX3g9Zip1KmgrYypwKmQsdGhpcy5feT1jKnAqaC1mKnUqZCx0aGlzLl96PWMqdSpkK2YqcCpoLHRoaXMuX3c9Yyp1KmgtZipwKmQ7YnJlYWs7Y2FzZSJZWFoiOnRoaXMuX3g9Zip1KmgrYypwKmQsdGhpcy5feT1jKnAqaC1mKnUqZCx0aGlzLl96PWMqdSpkLWYqcCpoLHRoaXMuX3c9Yyp1KmgrZipwKmQ7YnJlYWs7Y2FzZSJaWFkiOnRoaXMuX3g9Zip1KmgtYypwKmQsdGhpcy5feT1jKnAqaCtmKnUqZCx0aGlzLl96PWMqdSpkK2YqcCpoLHRoaXMuX3c9Yyp1KmgtZipwKmQ7YnJlYWs7Y2FzZSJaWVgiOnRoaXMuX3g9Zip1KmgtYypwKmQsdGhpcy5feT1jKnAqaCtmKnUqZCx0aGlzLl96PWMqdSpkLWYqcCpoLHRoaXMuX3c9Yyp1KmgrZipwKmQ7YnJlYWs7Y2FzZSJZWlgiOnRoaXMuX3g9Zip1KmgrYypwKmQsdGhpcy5feT1jKnAqaCtmKnUqZCx0aGlzLl96PWMqdSpkLWYqcCpoLHRoaXMuX3c9Yyp1KmgtZipwKmQ7YnJlYWs7Y2FzZSJYWlkiOnRoaXMuX3g9Zip1KmgtYypwKmQsdGhpcy5feT1jKnAqaC1mKnUqZCx0aGlzLl96PWMqdSpkK2YqcCpoLHRoaXMuX3c9Yyp1KmgrZipwKmQ7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLndhcm4oIlRIUkVFLlF1YXRlcm5pb246IC5zZXRGcm9tRXVsZXIoKSBlbmNvdW50ZXJlZCBhbiB1bmtub3duIG9yZGVyOiAiK2EpfXJldHVybiByIT09ITEmJnRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21BeGlzQW5nbGUodCxyKXtsZXQgbj1yLzIsaT1NYXRoLnNpbihuKTtyZXR1cm4gdGhpcy5feD10LngqaSx0aGlzLl95PXQueSppLHRoaXMuX3o9dC56KmksdGhpcy5fdz1NYXRoLmNvcyhuKSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tUm90YXRpb25NYXRyaXgodCl7bGV0IHI9dC5lbGVtZW50cyxuPXJbMF0saT1yWzRdLG89cls4XSxhPXJbMV0scz1yWzVdLGw9cls5XSxjPXJbMl0sdT1yWzZdLGg9clsxMF0sZj1uK3MraDtpZihmPjApe2xldCBwPS41L01hdGguc3FydChmKzEpO3RoaXMuX3c9LjI1L3AsdGhpcy5feD0odS1sKSpwLHRoaXMuX3k9KG8tYykqcCx0aGlzLl96PShhLWkpKnB9ZWxzZSBpZihuPnMmJm4+aCl7bGV0IHA9MipNYXRoLnNxcnQoMStuLXMtaCk7dGhpcy5fdz0odS1sKS9wLHRoaXMuX3g9LjI1KnAsdGhpcy5feT0oaSthKS9wLHRoaXMuX3o9KG8rYykvcH1lbHNlIGlmKHM+aCl7bGV0IHA9MipNYXRoLnNxcnQoMStzLW4taCk7dGhpcy5fdz0oby1jKS9wLHRoaXMuX3g9KGkrYSkvcCx0aGlzLl95PS4yNSpwLHRoaXMuX3o9KGwrdSkvcH1lbHNle2xldCBwPTIqTWF0aC5zcXJ0KDEraC1uLXMpO3RoaXMuX3c9KGEtaSkvcCx0aGlzLl94PShvK2MpL3AsdGhpcy5feT0obCt1KS9wLHRoaXMuX3o9LjI1KnB9cmV0dXJuIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21Vbml0VmVjdG9ycyh0LHIpe2xldCBuPXQuZG90KHIpKzE7cmV0dXJuIG48TnVtYmVyLkVQU0lMT04/KG49MCxNYXRoLmFicyh0LngpPk1hdGguYWJzKHQueik/KHRoaXMuX3g9LXQueSx0aGlzLl95PXQueCx0aGlzLl96PTAsdGhpcy5fdz1uKToodGhpcy5feD0wLHRoaXMuX3k9LXQueix0aGlzLl96PXQueSx0aGlzLl93PW4pKToodGhpcy5feD10Lnkqci56LXQueipyLnksdGhpcy5feT10Lnoqci54LXQueCpyLnosdGhpcy5fej10Lngqci55LXQueSpyLngsdGhpcy5fdz1uKSx0aGlzLm5vcm1hbGl6ZSgpfWFuZ2xlVG8odCl7cmV0dXJuIDIqTWF0aC5hY29zKE1hdGguYWJzKFpvKHRoaXMuZG90KHQpLC0xLDEpKSl9cm90YXRlVG93YXJkcyh0LHIpe2xldCBuPXRoaXMuYW5nbGVUbyh0KTtpZihuPT09MClyZXR1cm4gdGhpcztsZXQgaT1NYXRoLm1pbigxLHIvbik7cmV0dXJuIHRoaXMuc2xlcnAodCxpKSx0aGlzfWlkZW50aXR5KCl7cmV0dXJuIHRoaXMuc2V0KDAsMCwwLDEpfWludmVydCgpe3JldHVybiB0aGlzLmNvbmp1Z2F0ZSgpfWNvbmp1Z2F0ZSgpe3JldHVybiB0aGlzLl94Kj0tMSx0aGlzLl95Kj0tMSx0aGlzLl96Kj0tMSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31kb3QodCl7cmV0dXJuIHRoaXMuX3gqdC5feCt0aGlzLl95KnQuX3krdGhpcy5feip0Ll96K3RoaXMuX3cqdC5fd31sZW5ndGhTcSgpe3JldHVybiB0aGlzLl94KnRoaXMuX3grdGhpcy5feSp0aGlzLl95K3RoaXMuX3oqdGhpcy5feit0aGlzLl93KnRoaXMuX3d9bGVuZ3RoKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLl94KnRoaXMuX3grdGhpcy5feSp0aGlzLl95K3RoaXMuX3oqdGhpcy5feit0aGlzLl93KnRoaXMuX3cpfW5vcm1hbGl6ZSgpe2xldCB0PXRoaXMubGVuZ3RoKCk7cmV0dXJuIHQ9PT0wPyh0aGlzLl94PTAsdGhpcy5feT0wLHRoaXMuX3o9MCx0aGlzLl93PTEpOih0PTEvdCx0aGlzLl94PXRoaXMuX3gqdCx0aGlzLl95PXRoaXMuX3kqdCx0aGlzLl96PXRoaXMuX3oqdCx0aGlzLl93PXRoaXMuX3cqdCksdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9bXVsdGlwbHkodCxyKXtyZXR1cm4gciE9PXZvaWQgMD8oY29uc29sZS53YXJuKCJUSFJFRS5RdWF0ZXJuaW9uOiAubXVsdGlwbHkoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5tdWx0aXBseVF1YXRlcm5pb25zKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLm11bHRpcGx5UXVhdGVybmlvbnModCxyKSk6dGhpcy5tdWx0aXBseVF1YXRlcm5pb25zKHRoaXMsdCl9cHJlbXVsdGlwbHkodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlRdWF0ZXJuaW9ucyh0LHRoaXMpfW11bHRpcGx5UXVhdGVybmlvbnModCxyKXtsZXQgbj10Ll94LGk9dC5feSxvPXQuX3osYT10Ll93LHM9ci5feCxsPXIuX3ksYz1yLl96LHU9ci5fdztyZXR1cm4gdGhpcy5feD1uKnUrYSpzK2kqYy1vKmwsdGhpcy5feT1pKnUrYSpsK28qcy1uKmMsdGhpcy5fej1vKnUrYSpjK24qbC1pKnMsdGhpcy5fdz1hKnUtbipzLWkqbC1vKmMsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9c2xlcnAodCxyKXtpZihyPT09MClyZXR1cm4gdGhpcztpZihyPT09MSlyZXR1cm4gdGhpcy5jb3B5KHQpO2xldCBuPXRoaXMuX3gsaT10aGlzLl95LG89dGhpcy5feixhPXRoaXMuX3cscz1hKnQuX3crbip0Ll94K2kqdC5feStvKnQuX3o7aWYoczwwPyh0aGlzLl93PS10Ll93LHRoaXMuX3g9LXQuX3gsdGhpcy5feT0tdC5feSx0aGlzLl96PS10Ll96LHM9LXMpOnRoaXMuY29weSh0KSxzPj0xKXJldHVybiB0aGlzLl93PWEsdGhpcy5feD1uLHRoaXMuX3k9aSx0aGlzLl96PW8sdGhpcztsZXQgbD0xLXMqcztpZihsPD1OdW1iZXIuRVBTSUxPTil7bGV0IHA9MS1yO3JldHVybiB0aGlzLl93PXAqYStyKnRoaXMuX3csdGhpcy5feD1wKm4rcip0aGlzLl94LHRoaXMuX3k9cCppK3IqdGhpcy5feSx0aGlzLl96PXAqbytyKnRoaXMuX3osdGhpcy5ub3JtYWxpemUoKSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31sZXQgYz1NYXRoLnNxcnQobCksdT1NYXRoLmF0YW4yKGMscyksaD1NYXRoLnNpbigoMS1yKSp1KS9jLGY9TWF0aC5zaW4ocip1KS9jO3JldHVybiB0aGlzLl93PWEqaCt0aGlzLl93KmYsdGhpcy5feD1uKmgrdGhpcy5feCpmLHRoaXMuX3k9aSpoK3RoaXMuX3kqZix0aGlzLl96PW8qaCt0aGlzLl96KmYsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9c2xlcnBRdWF0ZXJuaW9ucyh0LHIsbil7cmV0dXJuIHRoaXMuY29weSh0KS5zbGVycChyLG4pfXJhbmRvbSgpe2xldCB0PU1hdGgucmFuZG9tKCkscj1NYXRoLnNxcnQoMS10KSxuPU1hdGguc3FydCh0KSxpPTIqTWF0aC5QSSpNYXRoLnJhbmRvbSgpLG89MipNYXRoLlBJKk1hdGgucmFuZG9tKCk7cmV0dXJuIHRoaXMuc2V0KHIqTWF0aC5jb3MoaSksbipNYXRoLnNpbihvKSxuKk1hdGguY29zKG8pLHIqTWF0aC5zaW4oaSkpfWVxdWFscyh0KXtyZXR1cm4gdC5feD09PXRoaXMuX3gmJnQuX3k9PT10aGlzLl95JiZ0Ll96PT09dGhpcy5feiYmdC5fdz09PXRoaXMuX3d9ZnJvbUFycmF5KHQscj0wKXtyZXR1cm4gdGhpcy5feD10W3JdLHRoaXMuX3k9dFtyKzFdLHRoaXMuX3o9dFtyKzJdLHRoaXMuX3c9dFtyKzNdLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXRvQXJyYXkodD1bXSxyPTApe3JldHVybiB0W3JdPXRoaXMuX3gsdFtyKzFdPXRoaXMuX3ksdFtyKzJdPXRoaXMuX3osdFtyKzNdPXRoaXMuX3csdH1mcm9tQnVmZmVyQXR0cmlidXRlKHQscil7cmV0dXJuIHRoaXMuX3g9dC5nZXRYKHIpLHRoaXMuX3k9dC5nZXRZKHIpLHRoaXMuX3o9dC5nZXRaKHIpLHRoaXMuX3c9dC5nZXRXKHIpLHRoaXN9X29uQ2hhbmdlKHQpe3JldHVybiB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrPXQsdGhpc31fb25DaGFuZ2VDYWxsYmFjaygpe319O3lpLnByb3RvdHlwZS5pc1F1YXRlcm5pb249ITA7dmFyIGo9Y2xhc3N7Y29uc3RydWN0b3IodD0wLHI9MCxuPTApe3RoaXMueD10LHRoaXMueT1yLHRoaXMuej1ufXNldCh0LHIsbil7cmV0dXJuIG49PT12b2lkIDAmJihuPXRoaXMueiksdGhpcy54PXQsdGhpcy55PXIsdGhpcy56PW4sdGhpc31zZXRTY2FsYXIodCl7cmV0dXJuIHRoaXMueD10LHRoaXMueT10LHRoaXMuej10LHRoaXN9c2V0WCh0KXtyZXR1cm4gdGhpcy54PXQsdGhpc31zZXRZKHQpe3JldHVybiB0aGlzLnk9dCx0aGlzfXNldFoodCl7cmV0dXJuIHRoaXMuej10LHRoaXN9c2V0Q29tcG9uZW50KHQscil7c3dpdGNoKHQpe2Nhc2UgMDp0aGlzLng9cjticmVhaztjYXNlIDE6dGhpcy55PXI7YnJlYWs7Y2FzZSAyOnRoaXMuej1yO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9cmV0dXJuIHRoaXN9Z2V0Q29tcG9uZW50KHQpe3N3aXRjaCh0KXtjYXNlIDA6cmV0dXJuIHRoaXMueDtjYXNlIDE6cmV0dXJuIHRoaXMueTtjYXNlIDI6cmV0dXJuIHRoaXMuejtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAiK3QpfX1jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLngsdGhpcy55LHRoaXMueil9Y29weSh0KXtyZXR1cm4gdGhpcy54PXQueCx0aGlzLnk9dC55LHRoaXMuej10LnosdGhpc31hZGQodCxyKXtyZXR1cm4gciE9PXZvaWQgMD8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuYWRkKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuYWRkVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5hZGRWZWN0b3JzKHQscikpOih0aGlzLngrPXQueCx0aGlzLnkrPXQueSx0aGlzLnorPXQueix0aGlzKX1hZGRTY2FsYXIodCl7cmV0dXJuIHRoaXMueCs9dCx0aGlzLnkrPXQsdGhpcy56Kz10LHRoaXN9YWRkVmVjdG9ycyh0LHIpe3JldHVybiB0aGlzLng9dC54K3IueCx0aGlzLnk9dC55K3IueSx0aGlzLno9dC56K3Iueix0aGlzfWFkZFNjYWxlZFZlY3Rvcih0LHIpe3JldHVybiB0aGlzLngrPXQueCpyLHRoaXMueSs9dC55KnIsdGhpcy56Kz10Lnoqcix0aGlzfXN1Yih0LHIpe3JldHVybiByIT09dm9pZCAwPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5zdWIoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5zdWJWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLnN1YlZlY3RvcnModCxyKSk6KHRoaXMueC09dC54LHRoaXMueS09dC55LHRoaXMuei09dC56LHRoaXMpfXN1YlNjYWxhcih0KXtyZXR1cm4gdGhpcy54LT10LHRoaXMueS09dCx0aGlzLnotPXQsdGhpc31zdWJWZWN0b3JzKHQscil7cmV0dXJuIHRoaXMueD10Lngtci54LHRoaXMueT10Lnktci55LHRoaXMuej10Lnotci56LHRoaXN9bXVsdGlwbHkodCxyKXtyZXR1cm4gciE9PXZvaWQgMD8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAubXVsdGlwbHkoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5tdWx0aXBseVZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMubXVsdGlwbHlWZWN0b3JzKHQscikpOih0aGlzLngqPXQueCx0aGlzLnkqPXQueSx0aGlzLnoqPXQueix0aGlzKX1tdWx0aXBseVNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kj10LHRoaXMueSo9dCx0aGlzLnoqPXQsdGhpc31tdWx0aXBseVZlY3RvcnModCxyKXtyZXR1cm4gdGhpcy54PXQueCpyLngsdGhpcy55PXQueSpyLnksdGhpcy56PXQueipyLnosdGhpc31hcHBseUV1bGVyKHQpe3JldHVybiB0JiZ0LmlzRXVsZXJ8fGNvbnNvbGUuZXJyb3IoIlRIUkVFLlZlY3RvcjM6IC5hcHBseUV1bGVyKCkgbm93IGV4cGVjdHMgYW4gRXVsZXIgcm90YXRpb24gcmF0aGVyIHRoYW4gYSBWZWN0b3IzIGFuZCBvcmRlci4iKSx0aGlzLmFwcGx5UXVhdGVybmlvbih5dWUuc2V0RnJvbUV1bGVyKHQpKX1hcHBseUF4aXNBbmdsZSh0LHIpe3JldHVybiB0aGlzLmFwcGx5UXVhdGVybmlvbih5dWUuc2V0RnJvbUF4aXNBbmdsZSh0LHIpKX1hcHBseU1hdHJpeDModCl7bGV0IHI9dGhpcy54LG49dGhpcy55LGk9dGhpcy56LG89dC5lbGVtZW50cztyZXR1cm4gdGhpcy54PW9bMF0qcitvWzNdKm4rb1s2XSppLHRoaXMueT1vWzFdKnIrb1s0XSpuK29bN10qaSx0aGlzLno9b1syXSpyK29bNV0qbitvWzhdKmksdGhpc31hcHBseU5vcm1hbE1hdHJpeCh0KXtyZXR1cm4gdGhpcy5hcHBseU1hdHJpeDModCkubm9ybWFsaXplKCl9YXBwbHlNYXRyaXg0KHQpe2xldCByPXRoaXMueCxuPXRoaXMueSxpPXRoaXMueixvPXQuZWxlbWVudHMsYT0xLyhvWzNdKnIrb1s3XSpuK29bMTFdKmkrb1sxNV0pO3JldHVybiB0aGlzLng9KG9bMF0qcitvWzRdKm4rb1s4XSppK29bMTJdKSphLHRoaXMueT0ob1sxXSpyK29bNV0qbitvWzldKmkrb1sxM10pKmEsdGhpcy56PShvWzJdKnIrb1s2XSpuK29bMTBdKmkrb1sxNF0pKmEsdGhpc31hcHBseVF1YXRlcm5pb24odCl7bGV0IHI9dGhpcy54LG49dGhpcy55LGk9dGhpcy56LG89dC54LGE9dC55LHM9dC56LGw9dC53LGM9bCpyK2EqaS1zKm4sdT1sKm4rcypyLW8qaSxoPWwqaStvKm4tYSpyLGY9LW8qci1hKm4tcyppO3JldHVybiB0aGlzLng9YypsK2YqLW8rdSotcy1oKi1hLHRoaXMueT11KmwrZiotYStoKi1vLWMqLXMsdGhpcy56PWgqbCtmKi1zK2MqLWEtdSotbyx0aGlzfXByb2plY3QodCl7cmV0dXJuIHRoaXMuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGRJbnZlcnNlKS5hcHBseU1hdHJpeDQodC5wcm9qZWN0aW9uTWF0cml4KX11bnByb2plY3QodCl7cmV0dXJuIHRoaXMuYXBwbHlNYXRyaXg0KHQucHJvamVjdGlvbk1hdHJpeEludmVyc2UpLmFwcGx5TWF0cml4NCh0Lm1hdHJpeFdvcmxkKX10cmFuc2Zvcm1EaXJlY3Rpb24odCl7bGV0IHI9dGhpcy54LG49dGhpcy55LGk9dGhpcy56LG89dC5lbGVtZW50cztyZXR1cm4gdGhpcy54PW9bMF0qcitvWzRdKm4rb1s4XSppLHRoaXMueT1vWzFdKnIrb1s1XSpuK29bOV0qaSx0aGlzLno9b1syXSpyK29bNl0qbitvWzEwXSppLHRoaXMubm9ybWFsaXplKCl9ZGl2aWRlKHQpe3JldHVybiB0aGlzLngvPXQueCx0aGlzLnkvPXQueSx0aGlzLnovPXQueix0aGlzfWRpdmlkZVNjYWxhcih0KXtyZXR1cm4gdGhpcy5tdWx0aXBseVNjYWxhcigxL3QpfW1pbih0KXtyZXR1cm4gdGhpcy54PU1hdGgubWluKHRoaXMueCx0LngpLHRoaXMueT1NYXRoLm1pbih0aGlzLnksdC55KSx0aGlzLno9TWF0aC5taW4odGhpcy56LHQueiksdGhpc31tYXgodCl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5tYXgodGhpcy55LHQueSksdGhpcy56PU1hdGgubWF4KHRoaXMueix0LnopLHRoaXN9Y2xhbXAodCxyKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQueCxNYXRoLm1pbihyLngsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQueSxNYXRoLm1pbihyLnksdGhpcy55KSksdGhpcy56PU1hdGgubWF4KHQueixNYXRoLm1pbihyLnosdGhpcy56KSksdGhpc31jbGFtcFNjYWxhcih0LHIpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodCxNYXRoLm1pbihyLHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LE1hdGgubWluKHIsdGhpcy55KSksdGhpcy56PU1hdGgubWF4KHQsTWF0aC5taW4ocix0aGlzLnopKSx0aGlzfWNsYW1wTGVuZ3RoKHQscil7bGV0IG49dGhpcy5sZW5ndGgoKTtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIobnx8MSkubXVsdGlwbHlTY2FsYXIoTWF0aC5tYXgodCxNYXRoLm1pbihyLG4pKSl9Zmxvb3IoKXtyZXR1cm4gdGhpcy54PU1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpLHRoaXMuej1NYXRoLmZsb29yKHRoaXMueiksdGhpc31jZWlsKCl7cmV0dXJuIHRoaXMueD1NYXRoLmNlaWwodGhpcy54KSx0aGlzLnk9TWF0aC5jZWlsKHRoaXMueSksdGhpcy56PU1hdGguY2VpbCh0aGlzLnopLHRoaXN9cm91bmQoKXtyZXR1cm4gdGhpcy54PU1hdGgucm91bmQodGhpcy54KSx0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpLHRoaXMuej1NYXRoLnJvdW5kKHRoaXMueiksdGhpc31yb3VuZFRvWmVybygpe3JldHVybiB0aGlzLng9dGhpcy54PDA/TWF0aC5jZWlsKHRoaXMueCk6TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT10aGlzLnk8MD9NYXRoLmNlaWwodGhpcy55KTpNYXRoLmZsb29yKHRoaXMueSksdGhpcy56PXRoaXMuejwwP01hdGguY2VpbCh0aGlzLnopOk1hdGguZmxvb3IodGhpcy56KSx0aGlzfW5lZ2F0ZSgpe3JldHVybiB0aGlzLng9LXRoaXMueCx0aGlzLnk9LXRoaXMueSx0aGlzLno9LXRoaXMueix0aGlzfWRvdCh0KXtyZXR1cm4gdGhpcy54KnQueCt0aGlzLnkqdC55K3RoaXMueip0Lnp9bGVuZ3RoU3EoKXtyZXR1cm4gdGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55K3RoaXMueip0aGlzLnp9bGVuZ3RoKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkrdGhpcy56KnRoaXMueil9bWFuaGF0dGFuTGVuZ3RoKCl7cmV0dXJuIE1hdGguYWJzKHRoaXMueCkrTWF0aC5hYnModGhpcy55KStNYXRoLmFicyh0aGlzLnopfW5vcm1hbGl6ZSgpe3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcih0aGlzLmxlbmd0aCgpfHwxKX1zZXRMZW5ndGgodCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIodCl9bGVycCh0LHIpe3JldHVybiB0aGlzLngrPSh0LngtdGhpcy54KSpyLHRoaXMueSs9KHQueS10aGlzLnkpKnIsdGhpcy56Kz0odC56LXRoaXMueikqcix0aGlzfWxlcnBWZWN0b3JzKHQscixuKXtyZXR1cm4gdGhpcy54PXQueCsoci54LXQueCkqbix0aGlzLnk9dC55KyhyLnktdC55KSpuLHRoaXMuej10LnorKHIuei10LnopKm4sdGhpc31jcm9zcyh0LHIpe3JldHVybiByIT09dm9pZCAwPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5jcm9zcygpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLmNyb3NzVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5jcm9zc1ZlY3RvcnModCxyKSk6dGhpcy5jcm9zc1ZlY3RvcnModGhpcyx0KX1jcm9zc1ZlY3RvcnModCxyKXtsZXQgbj10LngsaT10Lnksbz10LnosYT1yLngscz1yLnksbD1yLno7cmV0dXJuIHRoaXMueD1pKmwtbypzLHRoaXMueT1vKmEtbipsLHRoaXMuej1uKnMtaSphLHRoaXN9cHJvamVjdE9uVmVjdG9yKHQpe2xldCByPXQubGVuZ3RoU3EoKTtpZihyPT09MClyZXR1cm4gdGhpcy5zZXQoMCwwLDApO2xldCBuPXQuZG90KHRoaXMpL3I7cmV0dXJuIHRoaXMuY29weSh0KS5tdWx0aXBseVNjYWxhcihuKX1wcm9qZWN0T25QbGFuZSh0KXtyZXR1cm4gamN0LmNvcHkodGhpcykucHJvamVjdE9uVmVjdG9yKHQpLHRoaXMuc3ViKGpjdCl9cmVmbGVjdCh0KXtyZXR1cm4gdGhpcy5zdWIoamN0LmNvcHkodCkubXVsdGlwbHlTY2FsYXIoMip0aGlzLmRvdCh0KSkpfWFuZ2xlVG8odCl7bGV0IHI9TWF0aC5zcXJ0KHRoaXMubGVuZ3RoU3EoKSp0Lmxlbmd0aFNxKCkpO2lmKHI9PT0wKXJldHVybiBNYXRoLlBJLzI7bGV0IG49dGhpcy5kb3QodCkvcjtyZXR1cm4gTWF0aC5hY29zKFpvKG4sLTEsMSkpfWRpc3RhbmNlVG8odCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLmRpc3RhbmNlVG9TcXVhcmVkKHQpKX1kaXN0YW5jZVRvU3F1YXJlZCh0KXtsZXQgcj10aGlzLngtdC54LG49dGhpcy55LXQueSxpPXRoaXMuei10Lno7cmV0dXJuIHIqcituKm4raSppfW1hbmhhdHRhbkRpc3RhbmNlVG8odCl7cmV0dXJuIE1hdGguYWJzKHRoaXMueC10LngpK01hdGguYWJzKHRoaXMueS10LnkpK01hdGguYWJzKHRoaXMuei10LnopfXNldEZyb21TcGhlcmljYWwodCl7cmV0dXJuIHRoaXMuc2V0RnJvbVNwaGVyaWNhbENvb3Jkcyh0LnJhZGl1cyx0LnBoaSx0LnRoZXRhKX1zZXRGcm9tU3BoZXJpY2FsQ29vcmRzKHQscixuKXtsZXQgaT1NYXRoLnNpbihyKSp0O3JldHVybiB0aGlzLng9aSpNYXRoLnNpbihuKSx0aGlzLnk9TWF0aC5jb3MocikqdCx0aGlzLno9aSpNYXRoLmNvcyhuKSx0aGlzfXNldEZyb21DeWxpbmRyaWNhbCh0KXtyZXR1cm4gdGhpcy5zZXRGcm9tQ3lsaW5kcmljYWxDb29yZHModC5yYWRpdXMsdC50aGV0YSx0LnkpfXNldEZyb21DeWxpbmRyaWNhbENvb3Jkcyh0LHIsbil7cmV0dXJuIHRoaXMueD10Kk1hdGguc2luKHIpLHRoaXMueT1uLHRoaXMuej10Kk1hdGguY29zKHIpLHRoaXN9c2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQpe2xldCByPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMueD1yWzEyXSx0aGlzLnk9clsxM10sdGhpcy56PXJbMTRdLHRoaXN9c2V0RnJvbU1hdHJpeFNjYWxlKHQpe2xldCByPXRoaXMuc2V0RnJvbU1hdHJpeENvbHVtbih0LDApLmxlbmd0aCgpLG49dGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKHQsMSkubGVuZ3RoKCksaT10aGlzLnNldEZyb21NYXRyaXhDb2x1bW4odCwyKS5sZW5ndGgoKTtyZXR1cm4gdGhpcy54PXIsdGhpcy55PW4sdGhpcy56PWksdGhpc31zZXRGcm9tTWF0cml4Q29sdW1uKHQscil7cmV0dXJuIHRoaXMuZnJvbUFycmF5KHQuZWxlbWVudHMscio0KX1zZXRGcm9tTWF0cml4M0NvbHVtbih0LHIpe3JldHVybiB0aGlzLmZyb21BcnJheSh0LmVsZW1lbnRzLHIqMyl9ZXF1YWxzKHQpe3JldHVybiB0Lng9PT10aGlzLngmJnQueT09PXRoaXMueSYmdC56PT09dGhpcy56fWZyb21BcnJheSh0LHI9MCl7cmV0dXJuIHRoaXMueD10W3JdLHRoaXMueT10W3IrMV0sdGhpcy56PXRbcisyXSx0aGlzfXRvQXJyYXkodD1bXSxyPTApe3JldHVybiB0W3JdPXRoaXMueCx0W3IrMV09dGhpcy55LHRbcisyXT10aGlzLnosdH1mcm9tQnVmZmVyQXR0cmlidXRlKHQscixuKXtyZXR1cm4gbiE9PXZvaWQgMCYmY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiBvZmZzZXQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy54PXQuZ2V0WChyKSx0aGlzLnk9dC5nZXRZKHIpLHRoaXMuej10LmdldFoociksdGhpc31yYW5kb20oKXtyZXR1cm4gdGhpcy54PU1hdGgucmFuZG9tKCksdGhpcy55PU1hdGgucmFuZG9tKCksdGhpcy56PU1hdGgucmFuZG9tKCksdGhpc31yYW5kb21EaXJlY3Rpb24oKXtsZXQgdD0oTWF0aC5yYW5kb20oKS0uNSkqMixyPU1hdGgucmFuZG9tKCkqTWF0aC5QSSoyLG49TWF0aC5zcXJ0KDEtVEkodCwyKSk7cmV0dXJuIHRoaXMueD1uKk1hdGguY29zKHIpLHRoaXMueT1uKk1hdGguc2luKHIpLHRoaXMuej10LHRoaXN9KltTeW1ib2wuaXRlcmF0b3JdKCl7eWllbGQgdGhpcy54LHlpZWxkIHRoaXMueSx5aWVsZCB0aGlzLnp9fTtqLnByb3RvdHlwZS5pc1ZlY3RvcjM9ITA7dmFyIGpjdD1uZXcgaix5dWU9bmV3IHlpLHRhPWNsYXNze2NvbnN0cnVjdG9yKHQ9bmV3IGooMS8wLDEvMCwxLzApLHI9bmV3IGooLTEvMCwtMS8wLC0xLzApKXt0aGlzLm1pbj10LHRoaXMubWF4PXJ9c2V0KHQscil7cmV0dXJuIHRoaXMubWluLmNvcHkodCksdGhpcy5tYXguY29weShyKSx0aGlzfXNldEZyb21BcnJheSh0KXtsZXQgcj0xLzAsbj0xLzAsaT0xLzAsbz0tMS8wLGE9LTEvMCxzPS0xLzA7Zm9yKGxldCBsPTAsYz10Lmxlbmd0aDtsPGM7bCs9Myl7bGV0IHU9dFtsXSxoPXRbbCsxXSxmPXRbbCsyXTt1PHImJihyPXUpLGg8biYmKG49aCksZjxpJiYoaT1mKSx1Pm8mJihvPXUpLGg+YSYmKGE9aCksZj5zJiYocz1mKX1yZXR1cm4gdGhpcy5taW4uc2V0KHIsbixpKSx0aGlzLm1heC5zZXQobyxhLHMpLHRoaXN9c2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZSh0KXtsZXQgcj0xLzAsbj0xLzAsaT0xLzAsbz0tMS8wLGE9LTEvMCxzPS0xLzA7Zm9yKGxldCBsPTAsYz10LmNvdW50O2w8YztsKyspe2xldCB1PXQuZ2V0WChsKSxoPXQuZ2V0WShsKSxmPXQuZ2V0WihsKTt1PHImJihyPXUpLGg8biYmKG49aCksZjxpJiYoaT1mKSx1Pm8mJihvPXUpLGg+YSYmKGE9aCksZj5zJiYocz1mKX1yZXR1cm4gdGhpcy5taW4uc2V0KHIsbixpKSx0aGlzLm1heC5zZXQobyxhLHMpLHRoaXN9c2V0RnJvbVBvaW50cyh0KXt0aGlzLm1ha2VFbXB0eSgpO2ZvcihsZXQgcj0wLG49dC5sZW5ndGg7cjxuO3IrKyl0aGlzLmV4cGFuZEJ5UG9pbnQodFtyXSk7cmV0dXJuIHRoaXN9c2V0RnJvbUNlbnRlckFuZFNpemUodCxyKXtsZXQgbj1nMS5jb3B5KHIpLm11bHRpcGx5U2NhbGFyKC41KTtyZXR1cm4gdGhpcy5taW4uY29weSh0KS5zdWIobiksdGhpcy5tYXguY29weSh0KS5hZGQobiksdGhpc31zZXRGcm9tT2JqZWN0KHQscj0hMSl7cmV0dXJuIHRoaXMubWFrZUVtcHR5KCksdGhpcy5leHBhbmRCeU9iamVjdCh0LHIpfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLm1pbi5jb3B5KHQubWluKSx0aGlzLm1heC5jb3B5KHQubWF4KSx0aGlzfW1ha2VFbXB0eSgpe3JldHVybiB0aGlzLm1pbi54PXRoaXMubWluLnk9dGhpcy5taW4uej0xLzAsdGhpcy5tYXgueD10aGlzLm1heC55PXRoaXMubWF4Lno9LTEvMCx0aGlzfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5tYXgueDx0aGlzLm1pbi54fHx0aGlzLm1heC55PHRoaXMubWluLnl8fHRoaXMubWF4Lno8dGhpcy5taW4uen1nZXRDZW50ZXIodCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpP3Quc2V0KDAsMCwwKTp0LmFkZFZlY3RvcnModGhpcy5taW4sdGhpcy5tYXgpLm11bHRpcGx5U2NhbGFyKC41KX1nZXRTaXplKHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKT90LnNldCgwLDAsMCk6dC5zdWJWZWN0b3JzKHRoaXMubWF4LHRoaXMubWluKX1leHBhbmRCeVBvaW50KHQpe3JldHVybiB0aGlzLm1pbi5taW4odCksdGhpcy5tYXgubWF4KHQpLHRoaXN9ZXhwYW5kQnlWZWN0b3IodCl7cmV0dXJuIHRoaXMubWluLnN1Yih0KSx0aGlzLm1heC5hZGQodCksdGhpc31leHBhbmRCeVNjYWxhcih0KXtyZXR1cm4gdGhpcy5taW4uYWRkU2NhbGFyKC10KSx0aGlzLm1heC5hZGRTY2FsYXIodCksdGhpc31leHBhbmRCeU9iamVjdCh0LHI9ITEpe3QudXBkYXRlV29ybGRNYXRyaXgoITEsITEpO2xldCBuPXQuZ2VvbWV0cnk7aWYobiE9PXZvaWQgMClpZihyJiZuLmF0dHJpYnV0ZXMhPW51bGwmJm4uYXR0cmlidXRlcy5wb3NpdGlvbiE9PXZvaWQgMCl7bGV0IG89bi5hdHRyaWJ1dGVzLnBvc2l0aW9uO2ZvcihsZXQgYT0wLHM9by5jb3VudDthPHM7YSsrKWcxLmZyb21CdWZmZXJBdHRyaWJ1dGUobyxhKS5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCksdGhpcy5leHBhbmRCeVBvaW50KGcxKX1lbHNlIG4uYm91bmRpbmdCb3g9PT1udWxsJiZuLmNvbXB1dGVCb3VuZGluZ0JveCgpLFhjdC5jb3B5KG4uYm91bmRpbmdCb3gpLFhjdC5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCksdGhpcy51bmlvbihYY3QpO2xldCBpPXQuY2hpbGRyZW47Zm9yKGxldCBvPTAsYT1pLmxlbmd0aDtvPGE7bysrKXRoaXMuZXhwYW5kQnlPYmplY3QoaVtvXSxyKTtyZXR1cm4gdGhpc31jb250YWluc1BvaW50KHQpe3JldHVybiEodC54PHRoaXMubWluLnh8fHQueD50aGlzLm1heC54fHx0Lnk8dGhpcy5taW4ueXx8dC55PnRoaXMubWF4Lnl8fHQuejx0aGlzLm1pbi56fHx0Lno+dGhpcy5tYXgueil9Y29udGFpbnNCb3godCl7cmV0dXJuIHRoaXMubWluLng8PXQubWluLngmJnQubWF4Lng8PXRoaXMubWF4LngmJnRoaXMubWluLnk8PXQubWluLnkmJnQubWF4Lnk8PXRoaXMubWF4LnkmJnRoaXMubWluLno8PXQubWluLnomJnQubWF4Lno8PXRoaXMubWF4Lnp9Z2V0UGFyYW1ldGVyKHQscil7cmV0dXJuIHIuc2V0KCh0LngtdGhpcy5taW4ueCkvKHRoaXMubWF4LngtdGhpcy5taW4ueCksKHQueS10aGlzLm1pbi55KS8odGhpcy5tYXgueS10aGlzLm1pbi55KSwodC56LXRoaXMubWluLnopLyh0aGlzLm1heC56LXRoaXMubWluLnopKX1pbnRlcnNlY3RzQm94KHQpe3JldHVybiEodC5tYXgueDx0aGlzLm1pbi54fHx0Lm1pbi54PnRoaXMubWF4Lnh8fHQubWF4Lnk8dGhpcy5taW4ueXx8dC5taW4ueT50aGlzLm1heC55fHx0Lm1heC56PHRoaXMubWluLnp8fHQubWluLno+dGhpcy5tYXgueil9aW50ZXJzZWN0c1NwaGVyZSh0KXtyZXR1cm4gdGhpcy5jbGFtcFBvaW50KHQuY2VudGVyLGcxKSxnMS5kaXN0YW5jZVRvU3F1YXJlZCh0LmNlbnRlcik8PXQucmFkaXVzKnQucmFkaXVzfWludGVyc2VjdHNQbGFuZSh0KXtsZXQgcixuO3JldHVybiB0Lm5vcm1hbC54PjA/KHI9dC5ub3JtYWwueCp0aGlzLm1pbi54LG49dC5ub3JtYWwueCp0aGlzLm1heC54KToocj10Lm5vcm1hbC54KnRoaXMubWF4Lngsbj10Lm5vcm1hbC54KnRoaXMubWluLngpLHQubm9ybWFsLnk+MD8ocis9dC5ub3JtYWwueSp0aGlzLm1pbi55LG4rPXQubm9ybWFsLnkqdGhpcy5tYXgueSk6KHIrPXQubm9ybWFsLnkqdGhpcy5tYXgueSxuKz10Lm5vcm1hbC55KnRoaXMubWluLnkpLHQubm9ybWFsLno+MD8ocis9dC5ub3JtYWwueip0aGlzLm1pbi56LG4rPXQubm9ybWFsLnoqdGhpcy5tYXgueik6KHIrPXQubm9ybWFsLnoqdGhpcy5tYXgueixuKz10Lm5vcm1hbC56KnRoaXMubWluLnopLHI8PS10LmNvbnN0YW50JiZuPj0tdC5jb25zdGFudH1pbnRlcnNlY3RzVHJpYW5nbGUodCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuITE7dGhpcy5nZXRDZW50ZXIoTFApLGZWLnN1YlZlY3RvcnModGhpcy5tYXgsTFApLHgzLnN1YlZlY3RvcnModC5hLExQKSxiMy5zdWJWZWN0b3JzKHQuYixMUCksdzMuc3ViVmVjdG9ycyh0LmMsTFApLEkwLnN1YlZlY3RvcnMoYjMseDMpLEwwLnN1YlZlY3RvcnModzMsYjMpLF8xLnN1YlZlY3RvcnMoeDMsdzMpO2xldCByPVswLC1JMC56LEkwLnksMCwtTDAueixMMC55LDAsLV8xLnosXzEueSxJMC56LDAsLUkwLngsTDAueiwwLC1MMC54LF8xLnosMCwtXzEueCwtSTAueSxJMC54LDAsLUwwLnksTDAueCwwLC1fMS55LF8xLngsMF07cmV0dXJuISRjdChyLHgzLGIzLHczLGZWKXx8KHI9WzEsMCwwLDAsMSwwLDAsMCwxXSwhJGN0KHIseDMsYjMsdzMsZlYpKT8hMToocFYuY3Jvc3NWZWN0b3JzKEkwLEwwKSxyPVtwVi54LHBWLnkscFYuel0sJGN0KHIseDMsYjMsdzMsZlYpKX1jbGFtcFBvaW50KHQscil7cmV0dXJuIHIuY29weSh0KS5jbGFtcCh0aGlzLm1pbix0aGlzLm1heCl9ZGlzdGFuY2VUb1BvaW50KHQpe3JldHVybiBnMS5jb3B5KHQpLmNsYW1wKHRoaXMubWluLHRoaXMubWF4KS5zdWIodCkubGVuZ3RoKCl9Z2V0Qm91bmRpbmdTcGhlcmUodCl7cmV0dXJuIHRoaXMuZ2V0Q2VudGVyKHQuY2VudGVyKSx0LnJhZGl1cz10aGlzLmdldFNpemUoZzEpLmxlbmd0aCgpKi41LHR9aW50ZXJzZWN0KHQpe3JldHVybiB0aGlzLm1pbi5tYXgodC5taW4pLHRoaXMubWF4Lm1pbih0Lm1heCksdGhpcy5pc0VtcHR5KCkmJnRoaXMubWFrZUVtcHR5KCksdGhpc311bmlvbih0KXtyZXR1cm4gdGhpcy5taW4ubWluKHQubWluKSx0aGlzLm1heC5tYXgodC5tYXgpLHRoaXN9YXBwbHlNYXRyaXg0KHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKT90aGlzOihVZFswXS5zZXQodGhpcy5taW4ueCx0aGlzLm1pbi55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSxVZFsxXS5zZXQodGhpcy5taW4ueCx0aGlzLm1pbi55LHRoaXMubWF4LnopLmFwcGx5TWF0cml4NCh0KSxVZFsyXS5zZXQodGhpcy5taW4ueCx0aGlzLm1heC55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSxVZFszXS5zZXQodGhpcy5taW4ueCx0aGlzLm1heC55LHRoaXMubWF4LnopLmFwcGx5TWF0cml4NCh0KSxVZFs0XS5zZXQodGhpcy5tYXgueCx0aGlzLm1pbi55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSxVZFs1XS5zZXQodGhpcy5tYXgueCx0aGlzLm1pbi55LHRoaXMubWF4LnopLmFwcGx5TWF0cml4NCh0KSxVZFs2XS5zZXQodGhpcy5tYXgueCx0aGlzLm1heC55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSxVZFs3XS5zZXQodGhpcy5tYXgueCx0aGlzLm1heC55LHRoaXMubWF4LnopLmFwcGx5TWF0cml4NCh0KSx0aGlzLnNldEZyb21Qb2ludHMoVWQpLHRoaXMpfXRyYW5zbGF0ZSh0KXtyZXR1cm4gdGhpcy5taW4uYWRkKHQpLHRoaXMubWF4LmFkZCh0KSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5taW4uZXF1YWxzKHRoaXMubWluKSYmdC5tYXguZXF1YWxzKHRoaXMubWF4KX19O3RhLnByb3RvdHlwZS5pc0JveDM9ITA7dmFyIFVkPVtuZXcgaixuZXcgaixuZXcgaixuZXcgaixuZXcgaixuZXcgaixuZXcgaixuZXcgal0sZzE9bmV3IGosWGN0PW5ldyB0YSx4Mz1uZXcgaixiMz1uZXcgaix3Mz1uZXcgaixJMD1uZXcgaixMMD1uZXcgaixfMT1uZXcgaixMUD1uZXcgaixmVj1uZXcgaixwVj1uZXcgaix5MT1uZXcgajtmdW5jdGlvbiAkY3QoZSx0LHIsbixpKXtmb3IobGV0IG89MCxhPWUubGVuZ3RoLTM7bzw9YTtvKz0zKXt5MS5mcm9tQXJyYXkoZSxvKTtsZXQgcz1pLngqTWF0aC5hYnMoeTEueCkraS55Kk1hdGguYWJzKHkxLnkpK2kueipNYXRoLmFicyh5MS56KSxsPXQuZG90KHkxKSxjPXIuZG90KHkxKSx1PW4uZG90KHkxKTtpZihNYXRoLm1heCgtTWF0aC5tYXgobCxjLHUpLE1hdGgubWluKGwsYyx1KSk+cylyZXR1cm4hMX1yZXR1cm4hMH12YXIgc2ZyPW5ldyB0YSx2dWU9bmV3IGosZFY9bmV3IGosS2N0PW5ldyBqLEpmPWNsYXNze2NvbnN0cnVjdG9yKHQ9bmV3IGoscj0tMSl7dGhpcy5jZW50ZXI9dCx0aGlzLnJhZGl1cz1yfXNldCh0LHIpe3JldHVybiB0aGlzLmNlbnRlci5jb3B5KHQpLHRoaXMucmFkaXVzPXIsdGhpc31zZXRGcm9tUG9pbnRzKHQscil7bGV0IG49dGhpcy5jZW50ZXI7ciE9PXZvaWQgMD9uLmNvcHkocik6c2ZyLnNldEZyb21Qb2ludHModCkuZ2V0Q2VudGVyKG4pO2xldCBpPTA7Zm9yKGxldCBvPTAsYT10Lmxlbmd0aDtvPGE7bysrKWk9TWF0aC5tYXgoaSxuLmRpc3RhbmNlVG9TcXVhcmVkKHRbb10pKTtyZXR1cm4gdGhpcy5yYWRpdXM9TWF0aC5zcXJ0KGkpLHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5jZW50ZXIuY29weSh0LmNlbnRlciksdGhpcy5yYWRpdXM9dC5yYWRpdXMsdGhpc31pc0VtcHR5KCl7cmV0dXJuIHRoaXMucmFkaXVzPDB9bWFrZUVtcHR5KCl7cmV0dXJuIHRoaXMuY2VudGVyLnNldCgwLDAsMCksdGhpcy5yYWRpdXM9LTEsdGhpc31jb250YWluc1BvaW50KHQpe3JldHVybiB0LmRpc3RhbmNlVG9TcXVhcmVkKHRoaXMuY2VudGVyKTw9dGhpcy5yYWRpdXMqdGhpcy5yYWRpdXN9ZGlzdGFuY2VUb1BvaW50KHQpe3JldHVybiB0LmRpc3RhbmNlVG8odGhpcy5jZW50ZXIpLXRoaXMucmFkaXVzfWludGVyc2VjdHNTcGhlcmUodCl7bGV0IHI9dGhpcy5yYWRpdXMrdC5yYWRpdXM7cmV0dXJuIHQuY2VudGVyLmRpc3RhbmNlVG9TcXVhcmVkKHRoaXMuY2VudGVyKTw9cipyfWludGVyc2VjdHNCb3godCl7cmV0dXJuIHQuaW50ZXJzZWN0c1NwaGVyZSh0aGlzKX1pbnRlcnNlY3RzUGxhbmUodCl7cmV0dXJuIE1hdGguYWJzKHQuZGlzdGFuY2VUb1BvaW50KHRoaXMuY2VudGVyKSk8PXRoaXMucmFkaXVzfWNsYW1wUG9pbnQodCxyKXtsZXQgbj10aGlzLmNlbnRlci5kaXN0YW5jZVRvU3F1YXJlZCh0KTtyZXR1cm4gci5jb3B5KHQpLG4+dGhpcy5yYWRpdXMqdGhpcy5yYWRpdXMmJihyLnN1Yih0aGlzLmNlbnRlcikubm9ybWFsaXplKCksci5tdWx0aXBseVNjYWxhcih0aGlzLnJhZGl1cykuYWRkKHRoaXMuY2VudGVyKSkscn1nZXRCb3VuZGluZ0JveCh0KXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/KHQubWFrZUVtcHR5KCksdCk6KHQuc2V0KHRoaXMuY2VudGVyLHRoaXMuY2VudGVyKSx0LmV4cGFuZEJ5U2NhbGFyKHRoaXMucmFkaXVzKSx0KX1hcHBseU1hdHJpeDQodCl7cmV0dXJuIHRoaXMuY2VudGVyLmFwcGx5TWF0cml4NCh0KSx0aGlzLnJhZGl1cz10aGlzLnJhZGl1cyp0LmdldE1heFNjYWxlT25BeGlzKCksdGhpc310cmFuc2xhdGUodCl7cmV0dXJuIHRoaXMuY2VudGVyLmFkZCh0KSx0aGlzfWV4cGFuZEJ5UG9pbnQodCl7S2N0LnN1YlZlY3RvcnModCx0aGlzLmNlbnRlcik7bGV0IHI9S2N0Lmxlbmd0aFNxKCk7aWYocj50aGlzLnJhZGl1cyp0aGlzLnJhZGl1cyl7bGV0IG49TWF0aC5zcXJ0KHIpLGk9KG4tdGhpcy5yYWRpdXMpKi41O3RoaXMuY2VudGVyLmFkZChLY3QubXVsdGlwbHlTY2FsYXIoaS9uKSksdGhpcy5yYWRpdXMrPWl9cmV0dXJuIHRoaXN9dW5pb24odCl7cmV0dXJuIHRoaXMuY2VudGVyLmVxdWFscyh0LmNlbnRlcik9PT0hMD9kVi5zZXQoMCwwLDEpLm11bHRpcGx5U2NhbGFyKHQucmFkaXVzKTpkVi5zdWJWZWN0b3JzKHQuY2VudGVyLHRoaXMuY2VudGVyKS5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcih0LnJhZGl1cyksdGhpcy5leHBhbmRCeVBvaW50KHZ1ZS5jb3B5KHQuY2VudGVyKS5hZGQoZFYpKSx0aGlzLmV4cGFuZEJ5UG9pbnQodnVlLmNvcHkodC5jZW50ZXIpLnN1YihkVikpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0LmNlbnRlci5lcXVhbHModGhpcy5jZW50ZXIpJiZ0LnJhZGl1cz09PXRoaXMucmFkaXVzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuY29weSh0aGlzKX19LHFkPW5ldyBqLFpjdD1uZXcgaixtVj1uZXcgaixrMD1uZXcgaixKY3Q9bmV3IGosZ1Y9bmV3IGosUWN0PW5ldyBqLFFmPWNsYXNze2NvbnN0cnVjdG9yKHQ9bmV3IGoscj1uZXcgaigwLDAsLTEpKXt0aGlzLm9yaWdpbj10LHRoaXMuZGlyZWN0aW9uPXJ9c2V0KHQscil7cmV0dXJuIHRoaXMub3JpZ2luLmNvcHkodCksdGhpcy5kaXJlY3Rpb24uY29weShyKSx0aGlzfWNvcHkodCl7cmV0dXJuIHRoaXMub3JpZ2luLmNvcHkodC5vcmlnaW4pLHRoaXMuZGlyZWN0aW9uLmNvcHkodC5kaXJlY3Rpb24pLHRoaXN9YXQodCxyKXtyZXR1cm4gci5jb3B5KHRoaXMuZGlyZWN0aW9uKS5tdWx0aXBseVNjYWxhcih0KS5hZGQodGhpcy5vcmlnaW4pfWxvb2tBdCh0KXtyZXR1cm4gdGhpcy5kaXJlY3Rpb24uY29weSh0KS5zdWIodGhpcy5vcmlnaW4pLm5vcm1hbGl6ZSgpLHRoaXN9cmVjYXN0KHQpe3JldHVybiB0aGlzLm9yaWdpbi5jb3B5KHRoaXMuYXQodCxxZCkpLHRoaXN9Y2xvc2VzdFBvaW50VG9Qb2ludCh0LHIpe3Iuc3ViVmVjdG9ycyh0LHRoaXMub3JpZ2luKTtsZXQgbj1yLmRvdCh0aGlzLmRpcmVjdGlvbik7cmV0dXJuIG48MD9yLmNvcHkodGhpcy5vcmlnaW4pOnIuY29weSh0aGlzLmRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIobikuYWRkKHRoaXMub3JpZ2luKX1kaXN0YW5jZVRvUG9pbnQodCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLmRpc3RhbmNlU3FUb1BvaW50KHQpKX1kaXN0YW5jZVNxVG9Qb2ludCh0KXtsZXQgcj1xZC5zdWJWZWN0b3JzKHQsdGhpcy5vcmlnaW4pLmRvdCh0aGlzLmRpcmVjdGlvbik7cmV0dXJuIHI8MD90aGlzLm9yaWdpbi5kaXN0YW5jZVRvU3F1YXJlZCh0KToocWQuY29weSh0aGlzLmRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIocikuYWRkKHRoaXMub3JpZ2luKSxxZC5kaXN0YW5jZVRvU3F1YXJlZCh0KSl9ZGlzdGFuY2VTcVRvU2VnbWVudCh0LHIsbixpKXtaY3QuY29weSh0KS5hZGQocikubXVsdGlwbHlTY2FsYXIoLjUpLG1WLmNvcHkocikuc3ViKHQpLm5vcm1hbGl6ZSgpLGswLmNvcHkodGhpcy5vcmlnaW4pLnN1YihaY3QpO2xldCBvPXQuZGlzdGFuY2VUbyhyKSouNSxhPS10aGlzLmRpcmVjdGlvbi5kb3QobVYpLHM9azAuZG90KHRoaXMuZGlyZWN0aW9uKSxsPS1rMC5kb3QobVYpLGM9azAubGVuZ3RoU3EoKSx1PU1hdGguYWJzKDEtYSphKSxoLGYscCxkO2lmKHU+MClpZihoPWEqbC1zLGY9YSpzLWwsZD1vKnUsaD49MClpZihmPj0tZClpZihmPD1kKXtsZXQgZz0xL3U7aCo9ZyxmKj1nLHA9aCooaCthKmYrMipzKStmKihhKmgrZisyKmwpK2N9ZWxzZSBmPW8saD1NYXRoLm1heCgwLC0oYSpmK3MpKSxwPS1oKmgrZiooZisyKmwpK2M7ZWxzZSBmPS1vLGg9TWF0aC5tYXgoMCwtKGEqZitzKSkscD0taCpoK2YqKGYrMipsKStjO2Vsc2UgZjw9LWQ/KGg9TWF0aC5tYXgoMCwtKC1hKm8rcykpLGY9aD4wPy1vOk1hdGgubWluKE1hdGgubWF4KC1vLC1sKSxvKSxwPS1oKmgrZiooZisyKmwpK2MpOmY8PWQ/KGg9MCxmPU1hdGgubWluKE1hdGgubWF4KC1vLC1sKSxvKSxwPWYqKGYrMipsKStjKTooaD1NYXRoLm1heCgwLC0oYSpvK3MpKSxmPWg+MD9vOk1hdGgubWluKE1hdGgubWF4KC1vLC1sKSxvKSxwPS1oKmgrZiooZisyKmwpK2MpO2Vsc2UgZj1hPjA/LW86byxoPU1hdGgubWF4KDAsLShhKmYrcykpLHA9LWgqaCtmKihmKzIqbCkrYztyZXR1cm4gbiYmbi5jb3B5KHRoaXMuZGlyZWN0aW9uKS5tdWx0aXBseVNjYWxhcihoKS5hZGQodGhpcy5vcmlnaW4pLGkmJmkuY29weShtVikubXVsdGlwbHlTY2FsYXIoZikuYWRkKFpjdCkscH1pbnRlcnNlY3RTcGhlcmUodCxyKXtxZC5zdWJWZWN0b3JzKHQuY2VudGVyLHRoaXMub3JpZ2luKTtsZXQgbj1xZC5kb3QodGhpcy5kaXJlY3Rpb24pLGk9cWQuZG90KHFkKS1uKm4sbz10LnJhZGl1cyp0LnJhZGl1cztpZihpPm8pcmV0dXJuIG51bGw7bGV0IGE9TWF0aC5zcXJ0KG8taSkscz1uLWEsbD1uK2E7cmV0dXJuIHM8MCYmbDwwP251bGw6czwwP3RoaXMuYXQobCxyKTp0aGlzLmF0KHMscil9aW50ZXJzZWN0c1NwaGVyZSh0KXtyZXR1cm4gdGhpcy5kaXN0YW5jZVNxVG9Qb2ludCh0LmNlbnRlcik8PXQucmFkaXVzKnQucmFkaXVzfWRpc3RhbmNlVG9QbGFuZSh0KXtsZXQgcj10Lm5vcm1hbC5kb3QodGhpcy5kaXJlY3Rpb24pO2lmKHI9PT0wKXJldHVybiB0LmRpc3RhbmNlVG9Qb2ludCh0aGlzLm9yaWdpbik9PT0wPzA6bnVsbDtsZXQgbj0tKHRoaXMub3JpZ2luLmRvdCh0Lm5vcm1hbCkrdC5jb25zdGFudCkvcjtyZXR1cm4gbj49MD9uOm51bGx9aW50ZXJzZWN0UGxhbmUodCxyKXtsZXQgbj10aGlzLmRpc3RhbmNlVG9QbGFuZSh0KTtyZXR1cm4gbj09PW51bGw/bnVsbDp0aGlzLmF0KG4scil9aW50ZXJzZWN0c1BsYW5lKHQpe2xldCByPXQuZGlzdGFuY2VUb1BvaW50KHRoaXMub3JpZ2luKTtyZXR1cm4gcj09PTB8fHQubm9ybWFsLmRvdCh0aGlzLmRpcmVjdGlvbikqcjwwfWludGVyc2VjdEJveCh0LHIpe2xldCBuLGksbyxhLHMsbCxjPTEvdGhpcy5kaXJlY3Rpb24ueCx1PTEvdGhpcy5kaXJlY3Rpb24ueSxoPTEvdGhpcy5kaXJlY3Rpb24ueixmPXRoaXMub3JpZ2luO3JldHVybiBjPj0wPyhuPSh0Lm1pbi54LWYueCkqYyxpPSh0Lm1heC54LWYueCkqYyk6KG49KHQubWF4LngtZi54KSpjLGk9KHQubWluLngtZi54KSpjKSx1Pj0wPyhvPSh0Lm1pbi55LWYueSkqdSxhPSh0Lm1heC55LWYueSkqdSk6KG89KHQubWF4LnktZi55KSp1LGE9KHQubWluLnktZi55KSp1KSxuPmF8fG8+aXx8KChvPm58fG4hPT1uKSYmKG49byksKGE8aXx8aSE9PWkpJiYoaT1hKSxoPj0wPyhzPSh0Lm1pbi56LWYueikqaCxsPSh0Lm1heC56LWYueikqaCk6KHM9KHQubWF4LnotZi56KSpoLGw9KHQubWluLnotZi56KSpoKSxuPmx8fHM+aSl8fCgocz5ufHxuIT09bikmJihuPXMpLChsPGl8fGkhPT1pKSYmKGk9bCksaTwwKT9udWxsOnRoaXMuYXQobj49MD9uOmkscil9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4gdGhpcy5pbnRlcnNlY3RCb3godCxxZCkhPT1udWxsfWludGVyc2VjdFRyaWFuZ2xlKHQscixuLGksbyl7SmN0LnN1YlZlY3RvcnMocix0KSxnVi5zdWJWZWN0b3JzKG4sdCksUWN0LmNyb3NzVmVjdG9ycyhKY3QsZ1YpO2xldCBhPXRoaXMuZGlyZWN0aW9uLmRvdChRY3QpLHM7aWYoYT4wKXtpZihpKXJldHVybiBudWxsO3M9MX1lbHNlIGlmKGE8MClzPS0xLGE9LWE7ZWxzZSByZXR1cm4gbnVsbDtrMC5zdWJWZWN0b3JzKHRoaXMub3JpZ2luLHQpO2xldCBsPXMqdGhpcy5kaXJlY3Rpb24uZG90KGdWLmNyb3NzVmVjdG9ycyhrMCxnVikpO2lmKGw8MClyZXR1cm4gbnVsbDtsZXQgYz1zKnRoaXMuZGlyZWN0aW9uLmRvdChKY3QuY3Jvc3MoazApKTtpZihjPDB8fGwrYz5hKXJldHVybiBudWxsO2xldCB1PS1zKmswLmRvdChRY3QpO3JldHVybiB1PDA/bnVsbDp0aGlzLmF0KHUvYSxvKX1hcHBseU1hdHJpeDQodCl7cmV0dXJuIHRoaXMub3JpZ2luLmFwcGx5TWF0cml4NCh0KSx0aGlzLmRpcmVjdGlvbi50cmFuc2Zvcm1EaXJlY3Rpb24odCksdGhpc31lcXVhbHModCl7cmV0dXJuIHQub3JpZ2luLmVxdWFscyh0aGlzLm9yaWdpbikmJnQuZGlyZWN0aW9uLmVxdWFscyh0aGlzLmRpcmVjdGlvbil9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IoKS5jb3B5KHRoaXMpfX0sTWU9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmVsZW1lbnRzPVsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXSxhcmd1bWVudHMubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IHRoZSBjb25zdHJ1Y3RvciBubyBsb25nZXIgcmVhZHMgYXJndW1lbnRzLiB1c2UgLnNldCgpIGluc3RlYWQuIil9c2V0KHQscixuLGksbyxhLHMsbCxjLHUsaCxmLHAsZCxnLF8pe2xldCB5PXRoaXMuZWxlbWVudHM7cmV0dXJuIHlbMF09dCx5WzRdPXIseVs4XT1uLHlbMTJdPWkseVsxXT1vLHlbNV09YSx5WzldPXMseVsxM109bCx5WzJdPWMseVs2XT11LHlbMTBdPWgseVsxNF09Zix5WzNdPXAseVs3XT1kLHlbMTFdPWcseVsxNV09Xyx0aGlzfWlkZW50aXR5KCl7cmV0dXJuIHRoaXMuc2V0KDEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDEpLHRoaXN9Y2xvbmUoKXtyZXR1cm4gbmV3IE1lKCkuZnJvbUFycmF5KHRoaXMuZWxlbWVudHMpfWNvcHkodCl7bGV0IHI9dGhpcy5lbGVtZW50cyxuPXQuZWxlbWVudHM7cmV0dXJuIHJbMF09blswXSxyWzFdPW5bMV0sclsyXT1uWzJdLHJbM109blszXSxyWzRdPW5bNF0scls1XT1uWzVdLHJbNl09bls2XSxyWzddPW5bN10scls4XT1uWzhdLHJbOV09bls5XSxyWzEwXT1uWzEwXSxyWzExXT1uWzExXSxyWzEyXT1uWzEyXSxyWzEzXT1uWzEzXSxyWzE0XT1uWzE0XSxyWzE1XT1uWzE1XSx0aGlzfWNvcHlQb3NpdGlvbih0KXtsZXQgcj10aGlzLmVsZW1lbnRzLG49dC5lbGVtZW50cztyZXR1cm4gclsxMl09blsxMl0sclsxM109blsxM10sclsxNF09blsxNF0sdGhpc31zZXRGcm9tTWF0cml4Myh0KXtsZXQgcj10LmVsZW1lbnRzO3JldHVybiB0aGlzLnNldChyWzBdLHJbM10scls2XSwwLHJbMV0scls0XSxyWzddLDAsclsyXSxyWzVdLHJbOF0sMCwwLDAsMCwxKSx0aGlzfWV4dHJhY3RCYXNpcyh0LHIsbil7cmV0dXJuIHQuc2V0RnJvbU1hdHJpeENvbHVtbih0aGlzLDApLHIuc2V0RnJvbU1hdHJpeENvbHVtbih0aGlzLDEpLG4uc2V0RnJvbU1hdHJpeENvbHVtbih0aGlzLDIpLHRoaXN9bWFrZUJhc2lzKHQscixuKXtyZXR1cm4gdGhpcy5zZXQodC54LHIueCxuLngsMCx0Lnksci55LG4ueSwwLHQueixyLnosbi56LDAsMCwwLDAsMSksdGhpc31leHRyYWN0Um90YXRpb24odCl7bGV0IHI9dGhpcy5lbGVtZW50cyxuPXQuZWxlbWVudHMsaT0xL1MzLnNldEZyb21NYXRyaXhDb2x1bW4odCwwKS5sZW5ndGgoKSxvPTEvUzMuc2V0RnJvbU1hdHJpeENvbHVtbih0LDEpLmxlbmd0aCgpLGE9MS9TMy5zZXRGcm9tTWF0cml4Q29sdW1uKHQsMikubGVuZ3RoKCk7cmV0dXJuIHJbMF09blswXSppLHJbMV09blsxXSppLHJbMl09blsyXSppLHJbM109MCxyWzRdPW5bNF0qbyxyWzVdPW5bNV0qbyxyWzZdPW5bNl0qbyxyWzddPTAscls4XT1uWzhdKmEscls5XT1uWzldKmEsclsxMF09blsxMF0qYSxyWzExXT0wLHJbMTJdPTAsclsxM109MCxyWzE0XT0wLHJbMTVdPTEsdGhpc31tYWtlUm90YXRpb25Gcm9tRXVsZXIodCl7dCYmdC5pc0V1bGVyfHxjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAubWFrZVJvdGF0aW9uRnJvbUV1bGVyKCkgbm93IGV4cGVjdHMgYSBFdWxlciByb3RhdGlvbiByYXRoZXIgdGhhbiBhIFZlY3RvcjMgYW5kIG9yZGVyLiIpO2xldCByPXRoaXMuZWxlbWVudHMsbj10LngsaT10Lnksbz10LnosYT1NYXRoLmNvcyhuKSxzPU1hdGguc2luKG4pLGw9TWF0aC5jb3MoaSksYz1NYXRoLnNpbihpKSx1PU1hdGguY29zKG8pLGg9TWF0aC5zaW4obyk7aWYodC5vcmRlcj09PSJYWVoiKXtsZXQgZj1hKnUscD1hKmgsZD1zKnUsZz1zKmg7clswXT1sKnUscls0XT0tbCpoLHJbOF09YyxyWzFdPXArZCpjLHJbNV09Zi1nKmMscls5XT0tcypsLHJbMl09Zy1mKmMscls2XT1kK3AqYyxyWzEwXT1hKmx9ZWxzZSBpZih0Lm9yZGVyPT09IllYWiIpe2xldCBmPWwqdSxwPWwqaCxkPWMqdSxnPWMqaDtyWzBdPWYrZypzLHJbNF09ZCpzLXAscls4XT1hKmMsclsxXT1hKmgscls1XT1hKnUscls5XT0tcyxyWzJdPXAqcy1kLHJbNl09ZytmKnMsclsxMF09YSpsfWVsc2UgaWYodC5vcmRlcj09PSJaWFkiKXtsZXQgZj1sKnUscD1sKmgsZD1jKnUsZz1jKmg7clswXT1mLWcqcyxyWzRdPS1hKmgscls4XT1kK3AqcyxyWzFdPXArZCpzLHJbNV09YSp1LHJbOV09Zy1mKnMsclsyXT0tYSpjLHJbNl09cyxyWzEwXT1hKmx9ZWxzZSBpZih0Lm9yZGVyPT09IlpZWCIpe2xldCBmPWEqdSxwPWEqaCxkPXMqdSxnPXMqaDtyWzBdPWwqdSxyWzRdPWQqYy1wLHJbOF09ZipjK2csclsxXT1sKmgscls1XT1nKmMrZixyWzldPXAqYy1kLHJbMl09LWMscls2XT1zKmwsclsxMF09YSpsfWVsc2UgaWYodC5vcmRlcj09PSJZWlgiKXtsZXQgZj1hKmwscD1hKmMsZD1zKmwsZz1zKmM7clswXT1sKnUscls0XT1nLWYqaCxyWzhdPWQqaCtwLHJbMV09aCxyWzVdPWEqdSxyWzldPS1zKnUsclsyXT0tYyp1LHJbNl09cCpoK2QsclsxMF09Zi1nKmh9ZWxzZSBpZih0Lm9yZGVyPT09IlhaWSIpe2xldCBmPWEqbCxwPWEqYyxkPXMqbCxnPXMqYztyWzBdPWwqdSxyWzRdPS1oLHJbOF09Yyp1LHJbMV09ZipoK2cscls1XT1hKnUscls5XT1wKmgtZCxyWzJdPWQqaC1wLHJbNl09cyp1LHJbMTBdPWcqaCtmfXJldHVybiByWzNdPTAscls3XT0wLHJbMTFdPTAsclsxMl09MCxyWzEzXT0wLHJbMTRdPTAsclsxNV09MSx0aGlzfW1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHQpe3JldHVybiB0aGlzLmNvbXBvc2UobGZyLHQsY2ZyKX1sb29rQXQodCxyLG4pe2xldCBpPXRoaXMuZWxlbWVudHM7cmV0dXJuIFJsLnN1YlZlY3RvcnModCxyKSxSbC5sZW5ndGhTcSgpPT09MCYmKFJsLno9MSksUmwubm9ybWFsaXplKCksUjAuY3Jvc3NWZWN0b3JzKG4sUmwpLFIwLmxlbmd0aFNxKCk9PT0wJiYoTWF0aC5hYnMobi56KT09PTE/UmwueCs9MWUtNDpSbC56Kz0xZS00LFJsLm5vcm1hbGl6ZSgpLFIwLmNyb3NzVmVjdG9ycyhuLFJsKSksUjAubm9ybWFsaXplKCksX1YuY3Jvc3NWZWN0b3JzKFJsLFIwKSxpWzBdPVIwLngsaVs0XT1fVi54LGlbOF09UmwueCxpWzFdPVIwLnksaVs1XT1fVi55LGlbOV09UmwueSxpWzJdPVIwLnosaVs2XT1fVi56LGlbMTBdPVJsLnosdGhpc31tdWx0aXBseSh0LHIpe3JldHVybiByIT09dm9pZCAwPyhjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5tdWx0aXBseSgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLm11bHRpcGx5TWF0cmljZXMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMubXVsdGlwbHlNYXRyaWNlcyh0LHIpKTp0aGlzLm11bHRpcGx5TWF0cmljZXModGhpcyx0KX1wcmVtdWx0aXBseSh0KXtyZXR1cm4gdGhpcy5tdWx0aXBseU1hdHJpY2VzKHQsdGhpcyl9bXVsdGlwbHlNYXRyaWNlcyh0LHIpe2xldCBuPXQuZWxlbWVudHMsaT1yLmVsZW1lbnRzLG89dGhpcy5lbGVtZW50cyxhPW5bMF0scz1uWzRdLGw9bls4XSxjPW5bMTJdLHU9blsxXSxoPW5bNV0sZj1uWzldLHA9blsxM10sZD1uWzJdLGc9bls2XSxfPW5bMTBdLHk9blsxNF0seD1uWzNdLGI9bls3XSxTPW5bMTFdLEM9blsxNV0sUD1pWzBdLGs9aVs0XSxPPWlbOF0sRD1pWzEyXSxCPWlbMV0sST1pWzVdLEw9aVs5XSxSPWlbMTNdLEY9aVsyXSx6PWlbNl0sVT1pWzEwXSxXPWlbMTRdLFo9aVszXSxydD1pWzddLG90PWlbMTFdLHN0PWlbMTVdO3JldHVybiBvWzBdPWEqUCtzKkIrbCpGK2MqWixvWzRdPWEqaytzKkkrbCp6K2MqcnQsb1s4XT1hKk8rcypMK2wqVStjKm90LG9bMTJdPWEqRCtzKlIrbCpXK2Mqc3Qsb1sxXT11KlAraCpCK2YqRitwKlosb1s1XT11KmsraCpJK2YqeitwKnJ0LG9bOV09dSpPK2gqTCtmKlUrcCpvdCxvWzEzXT11KkQraCpSK2YqVytwKnN0LG9bMl09ZCpQK2cqQitfKkYreSpaLG9bNl09ZCprK2cqSStfKnoreSpydCxvWzEwXT1kKk8rZypMK18qVSt5Km90LG9bMTRdPWQqRCtnKlIrXypXK3kqc3Qsb1szXT14KlArYipCK1MqRitDKlosb1s3XT14KmsrYipJK1MqeitDKnJ0LG9bMTFdPXgqTytiKkwrUypVK0Mqb3Qsb1sxNV09eCpEK2IqUitTKlcrQypzdCx0aGlzfW11bHRpcGx5U2NhbGFyKHQpe2xldCByPXRoaXMuZWxlbWVudHM7cmV0dXJuIHJbMF0qPXQscls0XSo9dCxyWzhdKj10LHJbMTJdKj10LHJbMV0qPXQscls1XSo9dCxyWzldKj10LHJbMTNdKj10LHJbMl0qPXQscls2XSo9dCxyWzEwXSo9dCxyWzE0XSo9dCxyWzNdKj10LHJbN10qPXQsclsxMV0qPXQsclsxNV0qPXQsdGhpc31kZXRlcm1pbmFudCgpe2xldCB0PXRoaXMuZWxlbWVudHMscj10WzBdLG49dFs0XSxpPXRbOF0sbz10WzEyXSxhPXRbMV0scz10WzVdLGw9dFs5XSxjPXRbMTNdLHU9dFsyXSxoPXRbNl0sZj10WzEwXSxwPXRbMTRdLGQ9dFszXSxnPXRbN10sXz10WzExXSx5PXRbMTVdO3JldHVybiBkKigrbypsKmgtaSpjKmgtbypzKmYrbipjKmYraSpzKnAtbipsKnApK2cqKCtyKmwqcC1yKmMqZitvKmEqZi1pKmEqcCtpKmMqdS1vKmwqdSkrXyooK3IqYypoLXIqcypwLW8qYSpoK24qYSpwK28qcyp1LW4qYyp1KSt5KigtaSpzKnUtcipsKmgrcipzKmYraSphKmgtbiphKmYrbipsKnUpfXRyYW5zcG9zZSgpe2xldCB0PXRoaXMuZWxlbWVudHMscjtyZXR1cm4gcj10WzFdLHRbMV09dFs0XSx0WzRdPXIscj10WzJdLHRbMl09dFs4XSx0WzhdPXIscj10WzZdLHRbNl09dFs5XSx0WzldPXIscj10WzNdLHRbM109dFsxMl0sdFsxMl09cixyPXRbN10sdFs3XT10WzEzXSx0WzEzXT1yLHI9dFsxMV0sdFsxMV09dFsxNF0sdFsxNF09cix0aGlzfXNldFBvc2l0aW9uKHQscixuKXtsZXQgaT10aGlzLmVsZW1lbnRzO3JldHVybiB0LmlzVmVjdG9yMz8oaVsxMl09dC54LGlbMTNdPXQueSxpWzE0XT10LnopOihpWzEyXT10LGlbMTNdPXIsaVsxNF09biksdGhpc31pbnZlcnQoKXtsZXQgdD10aGlzLmVsZW1lbnRzLHI9dFswXSxuPXRbMV0saT10WzJdLG89dFszXSxhPXRbNF0scz10WzVdLGw9dFs2XSxjPXRbN10sdT10WzhdLGg9dFs5XSxmPXRbMTBdLHA9dFsxMV0sZD10WzEyXSxnPXRbMTNdLF89dFsxNF0seT10WzE1XSx4PWgqXypjLWcqZipjK2cqbCpwLXMqXypwLWgqbCp5K3MqZip5LGI9ZCpmKmMtdSpfKmMtZCpsKnArYSpfKnArdSpsKnktYSpmKnksUz11KmcqYy1kKmgqYytkKnMqcC1hKmcqcC11KnMqeSthKmgqeSxDPWQqaCpsLXUqZypsLWQqcypmK2EqZypmK3UqcypfLWEqaCpfLFA9cip4K24qYitpKlMrbypDO2lmKFA9PT0wKXJldHVybiB0aGlzLnNldCgwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwKTtsZXQgaz0xL1A7cmV0dXJuIHRbMF09eCprLHRbMV09KGcqZipvLWgqXypvLWcqaSpwK24qXypwK2gqaSp5LW4qZip5KSprLHRbMl09KHMqXypvLWcqbCpvK2cqaSpjLW4qXypjLXMqaSp5K24qbCp5KSprLHRbM109KGgqbCpvLXMqZipvLWgqaSpjK24qZipjK3MqaSpwLW4qbCpwKSprLHRbNF09YiprLHRbNV09KHUqXypvLWQqZipvK2QqaSpwLXIqXypwLXUqaSp5K3IqZip5KSprLHRbNl09KGQqbCpvLWEqXypvLWQqaSpjK3IqXypjK2EqaSp5LXIqbCp5KSprLHRbN109KGEqZipvLXUqbCpvK3UqaSpjLXIqZipjLWEqaSpwK3IqbCpwKSprLHRbOF09UyprLHRbOV09KGQqaCpvLXUqZypvLWQqbipwK3IqZypwK3Uqbip5LXIqaCp5KSprLHRbMTBdPShhKmcqby1kKnMqbytkKm4qYy1yKmcqYy1hKm4qeStyKnMqeSkqayx0WzExXT0odSpzKm8tYSpoKm8tdSpuKmMrcipoKmMrYSpuKnAtcipzKnApKmssdFsxMl09QyprLHRbMTNdPSh1KmcqaS1kKmgqaStkKm4qZi1yKmcqZi11Km4qXytyKmgqXykqayx0WzE0XT0oZCpzKmktYSpnKmktZCpuKmwrcipnKmwrYSpuKl8tcipzKl8pKmssdFsxNV09KGEqaCppLXUqcyppK3UqbipsLXIqaCpsLWEqbipmK3IqcypmKSprLHRoaXN9c2NhbGUodCl7bGV0IHI9dGhpcy5lbGVtZW50cyxuPXQueCxpPXQueSxvPXQuejtyZXR1cm4gclswXSo9bixyWzRdKj1pLHJbOF0qPW8sclsxXSo9bixyWzVdKj1pLHJbOV0qPW8sclsyXSo9bixyWzZdKj1pLHJbMTBdKj1vLHJbM10qPW4scls3XSo9aSxyWzExXSo9byx0aGlzfWdldE1heFNjYWxlT25BeGlzKCl7bGV0IHQ9dGhpcy5lbGVtZW50cyxyPXRbMF0qdFswXSt0WzFdKnRbMV0rdFsyXSp0WzJdLG49dFs0XSp0WzRdK3RbNV0qdFs1XSt0WzZdKnRbNl0saT10WzhdKnRbOF0rdFs5XSp0WzldK3RbMTBdKnRbMTBdO3JldHVybiBNYXRoLnNxcnQoTWF0aC5tYXgocixuLGkpKX1tYWtlVHJhbnNsYXRpb24odCxyLG4pe3JldHVybiB0aGlzLnNldCgxLDAsMCx0LDAsMSwwLHIsMCwwLDEsbiwwLDAsMCwxKSx0aGlzfW1ha2VSb3RhdGlvblgodCl7bGV0IHI9TWF0aC5jb3ModCksbj1NYXRoLnNpbih0KTtyZXR1cm4gdGhpcy5zZXQoMSwwLDAsMCwwLHIsLW4sMCwwLG4sciwwLDAsMCwwLDEpLHRoaXN9bWFrZVJvdGF0aW9uWSh0KXtsZXQgcj1NYXRoLmNvcyh0KSxuPU1hdGguc2luKHQpO3JldHVybiB0aGlzLnNldChyLDAsbiwwLDAsMSwwLDAsLW4sMCxyLDAsMCwwLDAsMSksdGhpc31tYWtlUm90YXRpb25aKHQpe2xldCByPU1hdGguY29zKHQpLG49TWF0aC5zaW4odCk7cmV0dXJuIHRoaXMuc2V0KHIsLW4sMCwwLG4sciwwLDAsMCwwLDEsMCwwLDAsMCwxKSx0aGlzfW1ha2VSb3RhdGlvbkF4aXModCxyKXtsZXQgbj1NYXRoLmNvcyhyKSxpPU1hdGguc2luKHIpLG89MS1uLGE9dC54LHM9dC55LGw9dC56LGM9byphLHU9bypzO3JldHVybiB0aGlzLnNldChjKmErbixjKnMtaSpsLGMqbCtpKnMsMCxjKnMraSpsLHUqcytuLHUqbC1pKmEsMCxjKmwtaSpzLHUqbCtpKmEsbypsKmwrbiwwLDAsMCwwLDEpLHRoaXN9bWFrZVNjYWxlKHQscixuKXtyZXR1cm4gdGhpcy5zZXQodCwwLDAsMCwwLHIsMCwwLDAsMCxuLDAsMCwwLDAsMSksdGhpc31tYWtlU2hlYXIodCxyLG4saSxvLGEpe3JldHVybiB0aGlzLnNldCgxLG4sbywwLHQsMSxhLDAscixpLDEsMCwwLDAsMCwxKSx0aGlzfWNvbXBvc2UodCxyLG4pe2xldCBpPXRoaXMuZWxlbWVudHMsbz1yLl94LGE9ci5feSxzPXIuX3osbD1yLl93LGM9bytvLHU9YSthLGg9cytzLGY9bypjLHA9byp1LGQ9bypoLGc9YSp1LF89YSpoLHk9cypoLHg9bCpjLGI9bCp1LFM9bCpoLEM9bi54LFA9bi55LGs9bi56O3JldHVybiBpWzBdPSgxLShnK3kpKSpDLGlbMV09KHArUykqQyxpWzJdPShkLWIpKkMsaVszXT0wLGlbNF09KHAtUykqUCxpWzVdPSgxLShmK3kpKSpQLGlbNl09KF8reCkqUCxpWzddPTAsaVs4XT0oZCtiKSprLGlbOV09KF8teCkqayxpWzEwXT0oMS0oZitnKSkqayxpWzExXT0wLGlbMTJdPXQueCxpWzEzXT10LnksaVsxNF09dC56LGlbMTVdPTEsdGhpc31kZWNvbXBvc2UodCxyLG4pe2xldCBpPXRoaXMuZWxlbWVudHMsbz1TMy5zZXQoaVswXSxpWzFdLGlbMl0pLmxlbmd0aCgpLGE9UzMuc2V0KGlbNF0saVs1XSxpWzZdKS5sZW5ndGgoKSxzPVMzLnNldChpWzhdLGlbOV0saVsxMF0pLmxlbmd0aCgpO3RoaXMuZGV0ZXJtaW5hbnQoKTwwJiYobz0tbyksdC54PWlbMTJdLHQueT1pWzEzXSx0Lno9aVsxNF0saWguY29weSh0aGlzKTtsZXQgYz0xL28sdT0xL2EsaD0xL3M7cmV0dXJuIGloLmVsZW1lbnRzWzBdKj1jLGloLmVsZW1lbnRzWzFdKj1jLGloLmVsZW1lbnRzWzJdKj1jLGloLmVsZW1lbnRzWzRdKj11LGloLmVsZW1lbnRzWzVdKj11LGloLmVsZW1lbnRzWzZdKj11LGloLmVsZW1lbnRzWzhdKj1oLGloLmVsZW1lbnRzWzldKj1oLGloLmVsZW1lbnRzWzEwXSo9aCxyLnNldEZyb21Sb3RhdGlvbk1hdHJpeChpaCksbi54PW8sbi55PWEsbi56PXMsdGhpc31tYWtlUGVyc3BlY3RpdmUodCxyLG4saSxvLGEpe2E9PT12b2lkIDAmJmNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm1ha2VQZXJzcGVjdGl2ZSgpIGhhcyBiZWVuIHJlZGVmaW5lZCBhbmQgaGFzIGEgbmV3IHNpZ25hdHVyZS4gUGxlYXNlIGNoZWNrIHRoZSBkb2NzLiIpO2xldCBzPXRoaXMuZWxlbWVudHMsbD0yKm8vKHItdCksYz0yKm8vKG4taSksdT0ocit0KS8oci10KSxoPShuK2kpLyhuLWkpLGY9LShhK28pLyhhLW8pLHA9LTIqYSpvLyhhLW8pO3JldHVybiBzWzBdPWwsc1s0XT0wLHNbOF09dSxzWzEyXT0wLHNbMV09MCxzWzVdPWMsc1s5XT1oLHNbMTNdPTAsc1syXT0wLHNbNl09MCxzWzEwXT1mLHNbMTRdPXAsc1szXT0wLHNbN109MCxzWzExXT0tMSxzWzE1XT0wLHRoaXN9bWFrZU9ydGhvZ3JhcGhpYyh0LHIsbixpLG8sYSl7bGV0IHM9dGhpcy5lbGVtZW50cyxsPTEvKHItdCksYz0xLyhuLWkpLHU9MS8oYS1vKSxoPShyK3QpKmwsZj0obitpKSpjLHA9KGErbykqdTtyZXR1cm4gc1swXT0yKmwsc1s0XT0wLHNbOF09MCxzWzEyXT0taCxzWzFdPTAsc1s1XT0yKmMsc1s5XT0wLHNbMTNdPS1mLHNbMl09MCxzWzZdPTAsc1sxMF09LTIqdSxzWzE0XT0tcCxzWzNdPTAsc1s3XT0wLHNbMTFdPTAsc1sxNV09MSx0aGlzfWVxdWFscyh0KXtsZXQgcj10aGlzLmVsZW1lbnRzLG49dC5lbGVtZW50cztmb3IobGV0IGk9MDtpPDE2O2krKylpZihyW2ldIT09bltpXSlyZXR1cm4hMTtyZXR1cm4hMH1mcm9tQXJyYXkodCxyPTApe2ZvcihsZXQgbj0wO248MTY7bisrKXRoaXMuZWxlbWVudHNbbl09dFtuK3JdO3JldHVybiB0aGlzfXRvQXJyYXkodD1bXSxyPTApe2xldCBuPXRoaXMuZWxlbWVudHM7cmV0dXJuIHRbcl09blswXSx0W3IrMV09blsxXSx0W3IrMl09blsyXSx0W3IrM109blszXSx0W3IrNF09bls0XSx0W3IrNV09bls1XSx0W3IrNl09bls2XSx0W3IrN109bls3XSx0W3IrOF09bls4XSx0W3IrOV09bls5XSx0W3IrMTBdPW5bMTBdLHRbcisxMV09blsxMV0sdFtyKzEyXT1uWzEyXSx0W3IrMTNdPW5bMTNdLHRbcisxNF09blsxNF0sdFtyKzE1XT1uWzE1XSx0fX07TWUucHJvdG90eXBlLmlzTWF0cml4ND0hMDt2YXIgUzM9bmV3IGosaWg9bmV3IE1lLGxmcj1uZXcgaigwLDAsMCksY2ZyPW5ldyBqKDEsMSwxKSxSMD1uZXcgaixfVj1uZXcgaixSbD1uZXcgaix4dWU9bmV3IE1lLGJ1ZT1uZXcgeWksZW09Y2xhc3N7Y29uc3RydWN0b3IodD0wLHI9MCxuPTAsaT1lbS5EZWZhdWx0T3JkZXIpe3RoaXMuX3g9dCx0aGlzLl95PXIsdGhpcy5fej1uLHRoaXMuX29yZGVyPWl9Z2V0IHgoKXtyZXR1cm4gdGhpcy5feH1zZXQgeCh0KXt0aGlzLl94PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCB5KCl7cmV0dXJuIHRoaXMuX3l9c2V0IHkodCl7dGhpcy5feT10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgeigpe3JldHVybiB0aGlzLl96fXNldCB6KHQpe3RoaXMuX3o9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IG9yZGVyKCl7cmV0dXJuIHRoaXMuX29yZGVyfXNldCBvcmRlcih0KXt0aGlzLl9vcmRlcj10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1zZXQodCxyLG4saT10aGlzLl9vcmRlcil7cmV0dXJuIHRoaXMuX3g9dCx0aGlzLl95PXIsdGhpcy5fej1uLHRoaXMuX29yZGVyPWksdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5feCx0aGlzLl95LHRoaXMuX3osdGhpcy5fb3JkZXIpfWNvcHkodCl7cmV0dXJuIHRoaXMuX3g9dC5feCx0aGlzLl95PXQuX3ksdGhpcy5fej10Ll96LHRoaXMuX29yZGVyPXQuX29yZGVyLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21Sb3RhdGlvbk1hdHJpeCh0LHI9dGhpcy5fb3JkZXIsbj0hMCl7bGV0IGk9dC5lbGVtZW50cyxvPWlbMF0sYT1pWzRdLHM9aVs4XSxsPWlbMV0sYz1pWzVdLHU9aVs5XSxoPWlbMl0sZj1pWzZdLHA9aVsxMF07c3dpdGNoKHIpe2Nhc2UiWFlaIjp0aGlzLl95PU1hdGguYXNpbihabyhzLC0xLDEpKSxNYXRoLmFicyhzKTwuOTk5OTk5OT8odGhpcy5feD1NYXRoLmF0YW4yKC11LHApLHRoaXMuX3o9TWF0aC5hdGFuMigtYSxvKSk6KHRoaXMuX3g9TWF0aC5hdGFuMihmLGMpLHRoaXMuX3o9MCk7YnJlYWs7Y2FzZSJZWFoiOnRoaXMuX3g9TWF0aC5hc2luKC1abyh1LC0xLDEpKSxNYXRoLmFicyh1KTwuOTk5OTk5OT8odGhpcy5feT1NYXRoLmF0YW4yKHMscCksdGhpcy5fej1NYXRoLmF0YW4yKGwsYykpOih0aGlzLl95PU1hdGguYXRhbjIoLWgsbyksdGhpcy5fej0wKTticmVhaztjYXNlIlpYWSI6dGhpcy5feD1NYXRoLmFzaW4oWm8oZiwtMSwxKSksTWF0aC5hYnMoZik8Ljk5OTk5OTk/KHRoaXMuX3k9TWF0aC5hdGFuMigtaCxwKSx0aGlzLl96PU1hdGguYXRhbjIoLWEsYykpOih0aGlzLl95PTAsdGhpcy5fej1NYXRoLmF0YW4yKGwsbykpO2JyZWFrO2Nhc2UiWllYIjp0aGlzLl95PU1hdGguYXNpbigtWm8oaCwtMSwxKSksTWF0aC5hYnMoaCk8Ljk5OTk5OTk/KHRoaXMuX3g9TWF0aC5hdGFuMihmLHApLHRoaXMuX3o9TWF0aC5hdGFuMihsLG8pKToodGhpcy5feD0wLHRoaXMuX3o9TWF0aC5hdGFuMigtYSxjKSk7YnJlYWs7Y2FzZSJZWlgiOnRoaXMuX3o9TWF0aC5hc2luKFpvKGwsLTEsMSkpLE1hdGguYWJzKGwpPC45OTk5OTk5Pyh0aGlzLl94PU1hdGguYXRhbjIoLXUsYyksdGhpcy5feT1NYXRoLmF0YW4yKC1oLG8pKToodGhpcy5feD0wLHRoaXMuX3k9TWF0aC5hdGFuMihzLHApKTticmVhaztjYXNlIlhaWSI6dGhpcy5fej1NYXRoLmFzaW4oLVpvKGEsLTEsMSkpLE1hdGguYWJzKGEpPC45OTk5OTk5Pyh0aGlzLl94PU1hdGguYXRhbjIoZixjKSx0aGlzLl95PU1hdGguYXRhbjIocyxvKSk6KHRoaXMuX3g9TWF0aC5hdGFuMigtdSxwKSx0aGlzLl95PTApO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKCJUSFJFRS5FdWxlcjogLnNldEZyb21Sb3RhdGlvbk1hdHJpeCgpIGVuY291bnRlcmVkIGFuIHVua25vd24gb3JkZXI6ICIrcil9cmV0dXJuIHRoaXMuX29yZGVyPXIsbj09PSEwJiZ0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tUXVhdGVybmlvbih0LHIsbil7cmV0dXJuIHh1ZS5tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbih0KSx0aGlzLnNldEZyb21Sb3RhdGlvbk1hdHJpeCh4dWUscixuKX1zZXRGcm9tVmVjdG9yMyh0LHI9dGhpcy5fb3JkZXIpe3JldHVybiB0aGlzLnNldCh0LngsdC55LHQueixyKX1yZW9yZGVyKHQpe3JldHVybiBidWUuc2V0RnJvbUV1bGVyKHRoaXMpLHRoaXMuc2V0RnJvbVF1YXRlcm5pb24oYnVlLHQpfWVxdWFscyh0KXtyZXR1cm4gdC5feD09PXRoaXMuX3gmJnQuX3k9PT10aGlzLl95JiZ0Ll96PT09dGhpcy5feiYmdC5fb3JkZXI9PT10aGlzLl9vcmRlcn1mcm9tQXJyYXkodCl7cmV0dXJuIHRoaXMuX3g9dFswXSx0aGlzLl95PXRbMV0sdGhpcy5fej10WzJdLHRbM10hPT12b2lkIDAmJih0aGlzLl9vcmRlcj10WzNdKSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc310b0FycmF5KHQ9W10scj0wKXtyZXR1cm4gdFtyXT10aGlzLl94LHRbcisxXT10aGlzLl95LHRbcisyXT10aGlzLl96LHRbciszXT10aGlzLl9vcmRlcix0fXRvVmVjdG9yMyh0KXtyZXR1cm4gdD90LnNldCh0aGlzLl94LHRoaXMuX3ksdGhpcy5feik6bmV3IGoodGhpcy5feCx0aGlzLl95LHRoaXMuX3opfV9vbkNoYW5nZSh0KXtyZXR1cm4gdGhpcy5fb25DaGFuZ2VDYWxsYmFjaz10LHRoaXN9X29uQ2hhbmdlQ2FsbGJhY2soKXt9fTtlbS5wcm90b3R5cGUuaXNFdWxlcj0hMDtlbS5EZWZhdWx0T3JkZXI9IlhZWiI7ZW0uUm90YXRpb25PcmRlcnM9WyJYWVoiLCJZWlgiLCJaWFkiLCJYWlkiLCJZWFoiLCJaWVgiXTt2YXIgWDM9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm1hc2s9MX1zZXQodCl7dGhpcy5tYXNrPSgxPDx0fDApPj4+MH1lbmFibGUodCl7dGhpcy5tYXNrfD0xPDx0fDB9ZW5hYmxlQWxsKCl7dGhpcy5tYXNrPS0xfXRvZ2dsZSh0KXt0aGlzLm1hc2tePTE8PHR8MH1kaXNhYmxlKHQpe3RoaXMubWFzayY9figxPDx0fDApfWRpc2FibGVBbGwoKXt0aGlzLm1hc2s9MH10ZXN0KHQpe3JldHVybih0aGlzLm1hc2smdC5tYXNrKSE9PTB9aXNFbmFibGVkKHQpe3JldHVybih0aGlzLm1hc2smKDE8PHR8MCkpIT09MH19LHVmcj0wLHd1ZT1uZXcgaixNMz1uZXcgeWksR2Q9bmV3IE1lLHlWPW5ldyBqLGtQPW5ldyBqLGhmcj1uZXcgaixmZnI9bmV3IHlpLFN1ZT1uZXcgaigxLDAsMCksTXVlPW5ldyBqKDAsMSwwKSxFdWU9bmV3IGooMCwwLDEpLHBmcj17dHlwZToiYWRkZWQifSxUdWU9e3R5cGU6InJlbW92ZWQifSxvcj1jbGFzcyBleHRlbmRzIHFze2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiaWQiLHt2YWx1ZTp1ZnIrK30pLHRoaXMudXVpZD1EbCgpLHRoaXMubmFtZT0iIix0aGlzLnR5cGU9Ik9iamVjdDNEIix0aGlzLnBhcmVudD1udWxsLHRoaXMuY2hpbGRyZW49W10sdGhpcy51cD1vci5EZWZhdWx0VXAuY2xvbmUoKTtsZXQgdD1uZXcgaixyPW5ldyBlbSxuPW5ldyB5aSxpPW5ldyBqKDEsMSwxKTtmdW5jdGlvbiBvKCl7bi5zZXRGcm9tRXVsZXIociwhMSl9ZnVuY3Rpb24gYSgpe3Iuc2V0RnJvbVF1YXRlcm5pb24obix2b2lkIDAsITEpfXIuX29uQ2hhbmdlKG8pLG4uX29uQ2hhbmdlKGEpLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMse3Bvc2l0aW9uOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTp0fSxyb3RhdGlvbjp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6cn0scXVhdGVybmlvbjp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6bn0sc2NhbGU6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOml9LG1vZGVsVmlld01hdHJpeDp7dmFsdWU6bmV3IE1lfSxub3JtYWxNYXRyaXg6e3ZhbHVlOm5ldyBraX19KSx0aGlzLm1hdHJpeD1uZXcgTWUsdGhpcy5tYXRyaXhXb3JsZD1uZXcgTWUsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPW9yLkRlZmF1bHRNYXRyaXhBdXRvVXBkYXRlLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMSx0aGlzLmxheWVycz1uZXcgWDMsdGhpcy52aXNpYmxlPSEwLHRoaXMuY2FzdFNoYWRvdz0hMSx0aGlzLnJlY2VpdmVTaGFkb3c9ITEsdGhpcy5mcnVzdHVtQ3VsbGVkPSEwLHRoaXMucmVuZGVyT3JkZXI9MCx0aGlzLmFuaW1hdGlvbnM9W10sdGhpcy51c2VyRGF0YT17fX1vbkJlZm9yZVJlbmRlcigpe31vbkFmdGVyUmVuZGVyKCl7fWFwcGx5TWF0cml4NCh0KXt0aGlzLm1hdHJpeEF1dG9VcGRhdGUmJnRoaXMudXBkYXRlTWF0cml4KCksdGhpcy5tYXRyaXgucHJlbXVsdGlwbHkodCksdGhpcy5tYXRyaXguZGVjb21wb3NlKHRoaXMucG9zaXRpb24sdGhpcy5xdWF0ZXJuaW9uLHRoaXMuc2NhbGUpfWFwcGx5UXVhdGVybmlvbih0KXtyZXR1cm4gdGhpcy5xdWF0ZXJuaW9uLnByZW11bHRpcGx5KHQpLHRoaXN9c2V0Um90YXRpb25Gcm9tQXhpc0FuZ2xlKHQscil7dGhpcy5xdWF0ZXJuaW9uLnNldEZyb21BeGlzQW5nbGUodCxyKX1zZXRSb3RhdGlvbkZyb21FdWxlcih0KXt0aGlzLnF1YXRlcm5pb24uc2V0RnJvbUV1bGVyKHQsITApfXNldFJvdGF0aW9uRnJvbU1hdHJpeCh0KXt0aGlzLnF1YXRlcm5pb24uc2V0RnJvbVJvdGF0aW9uTWF0cml4KHQpfXNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24odCl7dGhpcy5xdWF0ZXJuaW9uLmNvcHkodCl9cm90YXRlT25BeGlzKHQscil7cmV0dXJuIE0zLnNldEZyb21BeGlzQW5nbGUodCxyKSx0aGlzLnF1YXRlcm5pb24ubXVsdGlwbHkoTTMpLHRoaXN9cm90YXRlT25Xb3JsZEF4aXModCxyKXtyZXR1cm4gTTMuc2V0RnJvbUF4aXNBbmdsZSh0LHIpLHRoaXMucXVhdGVybmlvbi5wcmVtdWx0aXBseShNMyksdGhpc31yb3RhdGVYKHQpe3JldHVybiB0aGlzLnJvdGF0ZU9uQXhpcyhTdWUsdCl9cm90YXRlWSh0KXtyZXR1cm4gdGhpcy5yb3RhdGVPbkF4aXMoTXVlLHQpfXJvdGF0ZVoodCl7cmV0dXJuIHRoaXMucm90YXRlT25BeGlzKEV1ZSx0KX10cmFuc2xhdGVPbkF4aXModCxyKXtyZXR1cm4gd3VlLmNvcHkodCkuYXBwbHlRdWF0ZXJuaW9uKHRoaXMucXVhdGVybmlvbiksdGhpcy5wb3NpdGlvbi5hZGQod3VlLm11bHRpcGx5U2NhbGFyKHIpKSx0aGlzfXRyYW5zbGF0ZVgodCl7cmV0dXJuIHRoaXMudHJhbnNsYXRlT25BeGlzKFN1ZSx0KX10cmFuc2xhdGVZKHQpe3JldHVybiB0aGlzLnRyYW5zbGF0ZU9uQXhpcyhNdWUsdCl9dHJhbnNsYXRlWih0KXtyZXR1cm4gdGhpcy50cmFuc2xhdGVPbkF4aXMoRXVlLHQpfWxvY2FsVG9Xb3JsZCh0KXtyZXR1cm4gdC5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCl9d29ybGRUb0xvY2FsKHQpe3JldHVybiB0LmFwcGx5TWF0cml4NChHZC5jb3B5KHRoaXMubWF0cml4V29ybGQpLmludmVydCgpKX1sb29rQXQodCxyLG4pe3QuaXNWZWN0b3IzP3lWLmNvcHkodCk6eVYuc2V0KHQscixuKTtsZXQgaT10aGlzLnBhcmVudDt0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSxrUC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tYXRyaXhXb3JsZCksdGhpcy5pc0NhbWVyYXx8dGhpcy5pc0xpZ2h0P0dkLmxvb2tBdChrUCx5Vix0aGlzLnVwKTpHZC5sb29rQXQoeVYsa1AsdGhpcy51cCksdGhpcy5xdWF0ZXJuaW9uLnNldEZyb21Sb3RhdGlvbk1hdHJpeChHZCksaSYmKEdkLmV4dHJhY3RSb3RhdGlvbihpLm1hdHJpeFdvcmxkKSxNMy5zZXRGcm9tUm90YXRpb25NYXRyaXgoR2QpLHRoaXMucXVhdGVybmlvbi5wcmVtdWx0aXBseShNMy5pbnZlcnQoKSkpfWFkZCh0KXtpZihhcmd1bWVudHMubGVuZ3RoPjEpe2ZvcihsZXQgcj0wO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspdGhpcy5hZGQoYXJndW1lbnRzW3JdKTtyZXR1cm4gdGhpc31yZXR1cm4gdD09PXRoaXM/KGNvbnNvbGUuZXJyb3IoIlRIUkVFLk9iamVjdDNELmFkZDogb2JqZWN0IGNhbid0IGJlIGFkZGVkIGFzIGEgY2hpbGQgb2YgaXRzZWxmLiIsdCksdGhpcyk6KHQmJnQuaXNPYmplY3QzRD8odC5wYXJlbnQhPT1udWxsJiZ0LnBhcmVudC5yZW1vdmUodCksdC5wYXJlbnQ9dGhpcyx0aGlzLmNoaWxkcmVuLnB1c2godCksdC5kaXNwYXRjaEV2ZW50KHBmcikpOmNvbnNvbGUuZXJyb3IoIlRIUkVFLk9iamVjdDNELmFkZDogb2JqZWN0IG5vdCBhbiBpbnN0YW5jZSBvZiBUSFJFRS5PYmplY3QzRC4iLHQpLHRoaXMpfXJlbW92ZSh0KXtpZihhcmd1bWVudHMubGVuZ3RoPjEpe2ZvcihsZXQgbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspdGhpcy5yZW1vdmUoYXJndW1lbnRzW25dKTtyZXR1cm4gdGhpc31sZXQgcj10aGlzLmNoaWxkcmVuLmluZGV4T2YodCk7cmV0dXJuIHIhPT0tMSYmKHQucGFyZW50PW51bGwsdGhpcy5jaGlsZHJlbi5zcGxpY2UociwxKSx0LmRpc3BhdGNoRXZlbnQoVHVlKSksdGhpc31yZW1vdmVGcm9tUGFyZW50KCl7bGV0IHQ9dGhpcy5wYXJlbnQ7cmV0dXJuIHQhPT1udWxsJiZ0LnJlbW92ZSh0aGlzKSx0aGlzfWNsZWFyKCl7Zm9yKGxldCB0PTA7dDx0aGlzLmNoaWxkcmVuLmxlbmd0aDt0Kyspe2xldCByPXRoaXMuY2hpbGRyZW5bdF07ci5wYXJlbnQ9bnVsbCxyLmRpc3BhdGNoRXZlbnQoVHVlKX1yZXR1cm4gdGhpcy5jaGlsZHJlbi5sZW5ndGg9MCx0aGlzfWF0dGFjaCh0KXtyZXR1cm4gdGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksR2QuY29weSh0aGlzLm1hdHJpeFdvcmxkKS5pbnZlcnQoKSx0LnBhcmVudCE9PW51bGwmJih0LnBhcmVudC51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksR2QubXVsdGlwbHkodC5wYXJlbnQubWF0cml4V29ybGQpKSx0LmFwcGx5TWF0cml4NChHZCksdGhpcy5hZGQodCksdC51cGRhdGVXb3JsZE1hdHJpeCghMSwhMCksdGhpc31nZXRPYmplY3RCeUlkKHQpe3JldHVybiB0aGlzLmdldE9iamVjdEJ5UHJvcGVydHkoImlkIix0KX1nZXRPYmplY3RCeU5hbWUodCl7cmV0dXJuIHRoaXMuZ2V0T2JqZWN0QnlQcm9wZXJ0eSgibmFtZSIsdCl9Z2V0T2JqZWN0QnlQcm9wZXJ0eSh0LHIpe2lmKHRoaXNbdF09PT1yKXJldHVybiB0aGlzO2ZvcihsZXQgbj0wLGk9dGhpcy5jaGlsZHJlbi5sZW5ndGg7bjxpO24rKyl7bGV0IGE9dGhpcy5jaGlsZHJlbltuXS5nZXRPYmplY3RCeVByb3BlcnR5KHQscik7aWYoYSE9PXZvaWQgMClyZXR1cm4gYX19Z2V0V29ybGRQb3NpdGlvbih0KXtyZXR1cm4gdGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksdC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tYXRyaXhXb3JsZCl9Z2V0V29ybGRRdWF0ZXJuaW9uKHQpe3JldHVybiB0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx0aGlzLm1hdHJpeFdvcmxkLmRlY29tcG9zZShrUCx0LGhmciksdH1nZXRXb3JsZFNjYWxlKHQpe3JldHVybiB0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx0aGlzLm1hdHJpeFdvcmxkLmRlY29tcG9zZShrUCxmZnIsdCksdH1nZXRXb3JsZERpcmVjdGlvbih0KXt0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKTtsZXQgcj10aGlzLm1hdHJpeFdvcmxkLmVsZW1lbnRzO3JldHVybiB0LnNldChyWzhdLHJbOV0sclsxMF0pLm5vcm1hbGl6ZSgpfXJheWNhc3QoKXt9dHJhdmVyc2UodCl7dCh0aGlzKTtsZXQgcj10aGlzLmNoaWxkcmVuO2ZvcihsZXQgbj0wLGk9ci5sZW5ndGg7bjxpO24rKylyW25dLnRyYXZlcnNlKHQpfXRyYXZlcnNlVmlzaWJsZSh0KXtpZih0aGlzLnZpc2libGU9PT0hMSlyZXR1cm47dCh0aGlzKTtsZXQgcj10aGlzLmNoaWxkcmVuO2ZvcihsZXQgbj0wLGk9ci5sZW5ndGg7bjxpO24rKylyW25dLnRyYXZlcnNlVmlzaWJsZSh0KX10cmF2ZXJzZUFuY2VzdG9ycyh0KXtsZXQgcj10aGlzLnBhcmVudDtyIT09bnVsbCYmKHQociksci50cmF2ZXJzZUFuY2VzdG9ycyh0KSl9dXBkYXRlTWF0cml4KCl7dGhpcy5tYXRyaXguY29tcG9zZSh0aGlzLnBvc2l0aW9uLHRoaXMucXVhdGVybmlvbix0aGlzLnNjYWxlKSx0aGlzLm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITB9dXBkYXRlTWF0cml4V29ybGQodCl7dGhpcy5tYXRyaXhBdXRvVXBkYXRlJiZ0aGlzLnVwZGF0ZU1hdHJpeCgpLCh0aGlzLm1hdHJpeFdvcmxkTmVlZHNVcGRhdGV8fHQpJiYodGhpcy5wYXJlbnQ9PT1udWxsP3RoaXMubWF0cml4V29ybGQuY29weSh0aGlzLm1hdHJpeCk6dGhpcy5tYXRyaXhXb3JsZC5tdWx0aXBseU1hdHJpY2VzKHRoaXMucGFyZW50Lm1hdHJpeFdvcmxkLHRoaXMubWF0cml4KSx0aGlzLm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITEsdD0hMCk7bGV0IHI9dGhpcy5jaGlsZHJlbjtmb3IobGV0IG49MCxpPXIubGVuZ3RoO248aTtuKyspcltuXS51cGRhdGVNYXRyaXhXb3JsZCh0KX11cGRhdGVXb3JsZE1hdHJpeCh0LHIpe2xldCBuPXRoaXMucGFyZW50O2lmKHQ9PT0hMCYmbiE9PW51bGwmJm4udXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHRoaXMubWF0cml4QXV0b1VwZGF0ZSYmdGhpcy51cGRhdGVNYXRyaXgoKSx0aGlzLnBhcmVudD09PW51bGw/dGhpcy5tYXRyaXhXb3JsZC5jb3B5KHRoaXMubWF0cml4KTp0aGlzLm1hdHJpeFdvcmxkLm11bHRpcGx5TWF0cmljZXModGhpcy5wYXJlbnQubWF0cml4V29ybGQsdGhpcy5tYXRyaXgpLHI9PT0hMCl7bGV0IGk9dGhpcy5jaGlsZHJlbjtmb3IobGV0IG89MCxhPWkubGVuZ3RoO288YTtvKyspaVtvXS51cGRhdGVXb3JsZE1hdHJpeCghMSwhMCl9fXRvSlNPTih0KXtsZXQgcj10PT09dm9pZCAwfHx0eXBlb2YgdD09InN0cmluZyIsbj17fTtyJiYodD17Z2VvbWV0cmllczp7fSxtYXRlcmlhbHM6e30sdGV4dHVyZXM6e30saW1hZ2VzOnt9LHNoYXBlczp7fSxza2VsZXRvbnM6e30sYW5pbWF0aW9uczp7fX0sbi5tZXRhZGF0YT17dmVyc2lvbjo0LjUsdHlwZToiT2JqZWN0IixnZW5lcmF0b3I6Ik9iamVjdDNELnRvSlNPTiJ9KTtsZXQgaT17fTtpLnV1aWQ9dGhpcy51dWlkLGkudHlwZT10aGlzLnR5cGUsdGhpcy5uYW1lIT09IiImJihpLm5hbWU9dGhpcy5uYW1lKSx0aGlzLmNhc3RTaGFkb3c9PT0hMCYmKGkuY2FzdFNoYWRvdz0hMCksdGhpcy5yZWNlaXZlU2hhZG93PT09ITAmJihpLnJlY2VpdmVTaGFkb3c9ITApLHRoaXMudmlzaWJsZT09PSExJiYoaS52aXNpYmxlPSExKSx0aGlzLmZydXN0dW1DdWxsZWQ9PT0hMSYmKGkuZnJ1c3R1bUN1bGxlZD0hMSksdGhpcy5yZW5kZXJPcmRlciE9PTAmJihpLnJlbmRlck9yZGVyPXRoaXMucmVuZGVyT3JkZXIpLEpTT04uc3RyaW5naWZ5KHRoaXMudXNlckRhdGEpIT09Int9IiYmKGkudXNlckRhdGE9dGhpcy51c2VyRGF0YSksaS5sYXllcnM9dGhpcy5sYXllcnMubWFzayxpLm1hdHJpeD10aGlzLm1hdHJpeC50b0FycmF5KCksdGhpcy5tYXRyaXhBdXRvVXBkYXRlPT09ITEmJihpLm1hdHJpeEF1dG9VcGRhdGU9ITEpLHRoaXMuaXNJbnN0YW5jZWRNZXNoJiYoaS50eXBlPSJJbnN0YW5jZWRNZXNoIixpLmNvdW50PXRoaXMuY291bnQsaS5pbnN0YW5jZU1hdHJpeD10aGlzLmluc3RhbmNlTWF0cml4LnRvSlNPTigpLHRoaXMuaW5zdGFuY2VDb2xvciE9PW51bGwmJihpLmluc3RhbmNlQ29sb3I9dGhpcy5pbnN0YW5jZUNvbG9yLnRvSlNPTigpKSk7ZnVuY3Rpb24gbyhzLGwpe3JldHVybiBzW2wudXVpZF09PT12b2lkIDAmJihzW2wudXVpZF09bC50b0pTT04odCkpLGwudXVpZH1pZih0aGlzLmlzU2NlbmUpdGhpcy5iYWNrZ3JvdW5kJiYodGhpcy5iYWNrZ3JvdW5kLmlzQ29sb3I/aS5iYWNrZ3JvdW5kPXRoaXMuYmFja2dyb3VuZC50b0pTT04oKTp0aGlzLmJhY2tncm91bmQuaXNUZXh0dXJlJiYoaS5iYWNrZ3JvdW5kPXRoaXMuYmFja2dyb3VuZC50b0pTT04odCkudXVpZCkpLHRoaXMuZW52aXJvbm1lbnQmJnRoaXMuZW52aXJvbm1lbnQuaXNUZXh0dXJlJiYoaS5lbnZpcm9ubWVudD10aGlzLmVudmlyb25tZW50LnRvSlNPTih0KS51dWlkKTtlbHNlIGlmKHRoaXMuaXNNZXNofHx0aGlzLmlzTGluZXx8dGhpcy5pc1BvaW50cyl7aS5nZW9tZXRyeT1vKHQuZ2VvbWV0cmllcyx0aGlzLmdlb21ldHJ5KTtsZXQgcz10aGlzLmdlb21ldHJ5LnBhcmFtZXRlcnM7aWYocyE9PXZvaWQgMCYmcy5zaGFwZXMhPT12b2lkIDApe2xldCBsPXMuc2hhcGVzO2lmKEFycmF5LmlzQXJyYXkobCkpZm9yKGxldCBjPTAsdT1sLmxlbmd0aDtjPHU7YysrKXtsZXQgaD1sW2NdO28odC5zaGFwZXMsaCl9ZWxzZSBvKHQuc2hhcGVzLGwpfX1pZih0aGlzLmlzU2tpbm5lZE1lc2gmJihpLmJpbmRNb2RlPXRoaXMuYmluZE1vZGUsaS5iaW5kTWF0cml4PXRoaXMuYmluZE1hdHJpeC50b0FycmF5KCksdGhpcy5za2VsZXRvbiE9PXZvaWQgMCYmKG8odC5za2VsZXRvbnMsdGhpcy5za2VsZXRvbiksaS5za2VsZXRvbj10aGlzLnNrZWxldG9uLnV1aWQpKSx0aGlzLm1hdGVyaWFsIT09dm9pZCAwKWlmKEFycmF5LmlzQXJyYXkodGhpcy5tYXRlcmlhbCkpe2xldCBzPVtdO2ZvcihsZXQgbD0wLGM9dGhpcy5tYXRlcmlhbC5sZW5ndGg7bDxjO2wrKylzLnB1c2gobyh0Lm1hdGVyaWFscyx0aGlzLm1hdGVyaWFsW2xdKSk7aS5tYXRlcmlhbD1zfWVsc2UgaS5tYXRlcmlhbD1vKHQubWF0ZXJpYWxzLHRoaXMubWF0ZXJpYWwpO2lmKHRoaXMuY2hpbGRyZW4ubGVuZ3RoPjApe2kuY2hpbGRyZW49W107Zm9yKGxldCBzPTA7czx0aGlzLmNoaWxkcmVuLmxlbmd0aDtzKyspaS5jaGlsZHJlbi5wdXNoKHRoaXMuY2hpbGRyZW5bc10udG9KU09OKHQpLm9iamVjdCl9aWYodGhpcy5hbmltYXRpb25zLmxlbmd0aD4wKXtpLmFuaW1hdGlvbnM9W107Zm9yKGxldCBzPTA7czx0aGlzLmFuaW1hdGlvbnMubGVuZ3RoO3MrKyl7bGV0IGw9dGhpcy5hbmltYXRpb25zW3NdO2kuYW5pbWF0aW9ucy5wdXNoKG8odC5hbmltYXRpb25zLGwpKX19aWYocil7bGV0IHM9YSh0Lmdlb21ldHJpZXMpLGw9YSh0Lm1hdGVyaWFscyksYz1hKHQudGV4dHVyZXMpLHU9YSh0LmltYWdlcyksaD1hKHQuc2hhcGVzKSxmPWEodC5za2VsZXRvbnMpLHA9YSh0LmFuaW1hdGlvbnMpO3MubGVuZ3RoPjAmJihuLmdlb21ldHJpZXM9cyksbC5sZW5ndGg+MCYmKG4ubWF0ZXJpYWxzPWwpLGMubGVuZ3RoPjAmJihuLnRleHR1cmVzPWMpLHUubGVuZ3RoPjAmJihuLmltYWdlcz11KSxoLmxlbmd0aD4wJiYobi5zaGFwZXM9aCksZi5sZW5ndGg+MCYmKG4uc2tlbGV0b25zPWYpLHAubGVuZ3RoPjAmJihuLmFuaW1hdGlvbnM9cCl9cmV0dXJuIG4ub2JqZWN0PWksbjtmdW5jdGlvbiBhKHMpe2xldCBsPVtdO2ZvcihsZXQgYyBpbiBzKXtsZXQgdT1zW2NdO2RlbGV0ZSB1Lm1ldGFkYXRhLGwucHVzaCh1KX1yZXR1cm4gbH19Y2xvbmUodCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuY29weSh0aGlzLHQpfWNvcHkodCxyPSEwKXtpZih0aGlzLm5hbWU9dC5uYW1lLHRoaXMudXAuY29weSh0LnVwKSx0aGlzLnBvc2l0aW9uLmNvcHkodC5wb3NpdGlvbiksdGhpcy5yb3RhdGlvbi5vcmRlcj10LnJvdGF0aW9uLm9yZGVyLHRoaXMucXVhdGVybmlvbi5jb3B5KHQucXVhdGVybmlvbiksdGhpcy5zY2FsZS5jb3B5KHQuc2NhbGUpLHRoaXMubWF0cml4LmNvcHkodC5tYXRyaXgpLHRoaXMubWF0cml4V29ybGQuY29weSh0Lm1hdHJpeFdvcmxkKSx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT10Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGUsdGhpcy5sYXllcnMubWFzaz10LmxheWVycy5tYXNrLHRoaXMudmlzaWJsZT10LnZpc2libGUsdGhpcy5jYXN0U2hhZG93PXQuY2FzdFNoYWRvdyx0aGlzLnJlY2VpdmVTaGFkb3c9dC5yZWNlaXZlU2hhZG93LHRoaXMuZnJ1c3R1bUN1bGxlZD10LmZydXN0dW1DdWxsZWQsdGhpcy5yZW5kZXJPcmRlcj10LnJlbmRlck9yZGVyLHRoaXMudXNlckRhdGE9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0LnVzZXJEYXRhKSkscj09PSEwKWZvcihsZXQgbj0wO248dC5jaGlsZHJlbi5sZW5ndGg7bisrKXtsZXQgaT10LmNoaWxkcmVuW25dO3RoaXMuYWRkKGkuY2xvbmUoKSl9cmV0dXJuIHRoaXN9fTtvci5EZWZhdWx0VXA9bmV3IGooMCwxLDApO29yLkRlZmF1bHRNYXRyaXhBdXRvVXBkYXRlPSEwO29yLnByb3RvdHlwZS5pc09iamVjdDNEPSEwO3ZhciBvaD1uZXcgaixXZD1uZXcgaix0dXQ9bmV3IGosWWQ9bmV3IGosRTM9bmV3IGosVDM9bmV3IGosQ3VlPW5ldyBqLGV1dD1uZXcgaixydXQ9bmV3IGosbnV0PW5ldyBqLG9pPWNsYXNze2NvbnN0cnVjdG9yKHQ9bmV3IGoscj1uZXcgaixuPW5ldyBqKXt0aGlzLmE9dCx0aGlzLmI9cix0aGlzLmM9bn1zdGF0aWMgZ2V0Tm9ybWFsKHQscixuLGkpe2kuc3ViVmVjdG9ycyhuLHIpLG9oLnN1YlZlY3RvcnModCxyKSxpLmNyb3NzKG9oKTtsZXQgbz1pLmxlbmd0aFNxKCk7cmV0dXJuIG8+MD9pLm11bHRpcGx5U2NhbGFyKDEvTWF0aC5zcXJ0KG8pKTppLnNldCgwLDAsMCl9c3RhdGljIGdldEJhcnljb29yZCh0LHIsbixpLG8pe29oLnN1YlZlY3RvcnMoaSxyKSxXZC5zdWJWZWN0b3JzKG4sciksdHV0LnN1YlZlY3RvcnModCxyKTtsZXQgYT1vaC5kb3Qob2gpLHM9b2guZG90KFdkKSxsPW9oLmRvdCh0dXQpLGM9V2QuZG90KFdkKSx1PVdkLmRvdCh0dXQpLGg9YSpjLXMqcztpZihoPT09MClyZXR1cm4gby5zZXQoLTIsLTEsLTEpO2xldCBmPTEvaCxwPShjKmwtcyp1KSpmLGQ9KGEqdS1zKmwpKmY7cmV0dXJuIG8uc2V0KDEtcC1kLGQscCl9c3RhdGljIGNvbnRhaW5zUG9pbnQodCxyLG4saSl7cmV0dXJuIHRoaXMuZ2V0QmFyeWNvb3JkKHQscixuLGksWWQpLFlkLng+PTAmJllkLnk+PTAmJllkLngrWWQueTw9MX1zdGF0aWMgZ2V0VVYodCxyLG4saSxvLGEscyxsKXtyZXR1cm4gdGhpcy5nZXRCYXJ5Y29vcmQodCxyLG4saSxZZCksbC5zZXQoMCwwKSxsLmFkZFNjYWxlZFZlY3RvcihvLFlkLngpLGwuYWRkU2NhbGVkVmVjdG9yKGEsWWQueSksbC5hZGRTY2FsZWRWZWN0b3IocyxZZC56KSxsfXN0YXRpYyBpc0Zyb250RmFjaW5nKHQscixuLGkpe3JldHVybiBvaC5zdWJWZWN0b3JzKG4sciksV2Quc3ViVmVjdG9ycyh0LHIpLG9oLmNyb3NzKFdkKS5kb3QoaSk8MH1zZXQodCxyLG4pe3JldHVybiB0aGlzLmEuY29weSh0KSx0aGlzLmIuY29weShyKSx0aGlzLmMuY29weShuKSx0aGlzfXNldEZyb21Qb2ludHNBbmRJbmRpY2VzKHQscixuLGkpe3JldHVybiB0aGlzLmEuY29weSh0W3JdKSx0aGlzLmIuY29weSh0W25dKSx0aGlzLmMuY29weSh0W2ldKSx0aGlzfXNldEZyb21BdHRyaWJ1dGVBbmRJbmRpY2VzKHQscixuLGkpe3JldHVybiB0aGlzLmEuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LHIpLHRoaXMuYi5mcm9tQnVmZmVyQXR0cmlidXRlKHQsbiksdGhpcy5jLmZyb21CdWZmZXJBdHRyaWJ1dGUodCxpKSx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLmEuY29weSh0LmEpLHRoaXMuYi5jb3B5KHQuYiksdGhpcy5jLmNvcHkodC5jKSx0aGlzfWdldEFyZWEoKXtyZXR1cm4gb2guc3ViVmVjdG9ycyh0aGlzLmMsdGhpcy5iKSxXZC5zdWJWZWN0b3JzKHRoaXMuYSx0aGlzLmIpLG9oLmNyb3NzKFdkKS5sZW5ndGgoKSouNX1nZXRNaWRwb2ludCh0KXtyZXR1cm4gdC5hZGRWZWN0b3JzKHRoaXMuYSx0aGlzLmIpLmFkZCh0aGlzLmMpLm11bHRpcGx5U2NhbGFyKDEvMyl9Z2V0Tm9ybWFsKHQpe3JldHVybiBvaS5nZXROb3JtYWwodGhpcy5hLHRoaXMuYix0aGlzLmMsdCl9Z2V0UGxhbmUodCl7cmV0dXJuIHQuc2V0RnJvbUNvcGxhbmFyUG9pbnRzKHRoaXMuYSx0aGlzLmIsdGhpcy5jKX1nZXRCYXJ5Y29vcmQodCxyKXtyZXR1cm4gb2kuZ2V0QmFyeWNvb3JkKHQsdGhpcy5hLHRoaXMuYix0aGlzLmMscil9Z2V0VVYodCxyLG4saSxvKXtyZXR1cm4gb2kuZ2V0VVYodCx0aGlzLmEsdGhpcy5iLHRoaXMuYyxyLG4saSxvKX1jb250YWluc1BvaW50KHQpe3JldHVybiBvaS5jb250YWluc1BvaW50KHQsdGhpcy5hLHRoaXMuYix0aGlzLmMpfWlzRnJvbnRGYWNpbmcodCl7cmV0dXJuIG9pLmlzRnJvbnRGYWNpbmcodGhpcy5hLHRoaXMuYix0aGlzLmMsdCl9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzVHJpYW5nbGUodGhpcyl9Y2xvc2VzdFBvaW50VG9Qb2ludCh0LHIpe2xldCBuPXRoaXMuYSxpPXRoaXMuYixvPXRoaXMuYyxhLHM7RTMuc3ViVmVjdG9ycyhpLG4pLFQzLnN1YlZlY3RvcnMobyxuKSxldXQuc3ViVmVjdG9ycyh0LG4pO2xldCBsPUUzLmRvdChldXQpLGM9VDMuZG90KGV1dCk7aWYobDw9MCYmYzw9MClyZXR1cm4gci5jb3B5KG4pO3J1dC5zdWJWZWN0b3JzKHQsaSk7bGV0IHU9RTMuZG90KHJ1dCksaD1UMy5kb3QocnV0KTtpZih1Pj0wJiZoPD11KXJldHVybiByLmNvcHkoaSk7bGV0IGY9bCpoLXUqYztpZihmPD0wJiZsPj0wJiZ1PD0wKXJldHVybiBhPWwvKGwtdSksci5jb3B5KG4pLmFkZFNjYWxlZFZlY3RvcihFMyxhKTtudXQuc3ViVmVjdG9ycyh0LG8pO2xldCBwPUUzLmRvdChudXQpLGQ9VDMuZG90KG51dCk7aWYoZD49MCYmcDw9ZClyZXR1cm4gci5jb3B5KG8pO2xldCBnPXAqYy1sKmQ7aWYoZzw9MCYmYz49MCYmZDw9MClyZXR1cm4gcz1jLyhjLWQpLHIuY29weShuKS5hZGRTY2FsZWRWZWN0b3IoVDMscyk7bGV0IF89dSpkLXAqaDtpZihfPD0wJiZoLXU+PTAmJnAtZD49MClyZXR1cm4gQ3VlLnN1YlZlY3RvcnMobyxpKSxzPShoLXUpLyhoLXUrKHAtZCkpLHIuY29weShpKS5hZGRTY2FsZWRWZWN0b3IoQ3VlLHMpO2xldCB5PTEvKF8rZytmKTtyZXR1cm4gYT1nKnkscz1mKnksci5jb3B5KG4pLmFkZFNjYWxlZFZlY3RvcihFMyxhKS5hZGRTY2FsZWRWZWN0b3IoVDMscyl9ZXF1YWxzKHQpe3JldHVybiB0LmEuZXF1YWxzKHRoaXMuYSkmJnQuYi5lcXVhbHModGhpcy5iKSYmdC5jLmVxdWFscyh0aGlzLmMpfX0sZGZyPTAscWk9Y2xhc3MgZXh0ZW5kcyBxc3tjb25zdHJ1Y3Rvcigpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlkIix7dmFsdWU6ZGZyKyt9KSx0aGlzLnV1aWQ9RGwoKSx0aGlzLm5hbWU9IiIsdGhpcy50eXBlPSJNYXRlcmlhbCIsdGhpcy5mb2c9ITAsdGhpcy5ibGVuZGluZz1WMyx0aGlzLnNpZGU9TDEsdGhpcy52ZXJ0ZXhDb2xvcnM9ITEsdGhpcy5vcGFjaXR5PTEsdGhpcy50cmFuc3BhcmVudD0hMSx0aGlzLmJsZW5kU3JjPVBodCx0aGlzLmJsZW5kRHN0PUlodCx0aGlzLmJsZW5kRXF1YXRpb249RTEsdGhpcy5ibGVuZFNyY0FscGhhPW51bGwsdGhpcy5ibGVuZERzdEFscGhhPW51bGwsdGhpcy5ibGVuZEVxdWF0aW9uQWxwaGE9bnVsbCx0aGlzLmRlcHRoRnVuYz1pVSx0aGlzLmRlcHRoVGVzdD0hMCx0aGlzLmRlcHRoV3JpdGU9ITAsdGhpcy5zdGVuY2lsV3JpdGVNYXNrPTI1NSx0aGlzLnN0ZW5jaWxGdW5jPU9mZSx0aGlzLnN0ZW5jaWxSZWY9MCx0aGlzLnN0ZW5jaWxGdW5jTWFzaz0yNTUsdGhpcy5zdGVuY2lsRmFpbD1uVSx0aGlzLnN0ZW5jaWxaRmFpbD1uVSx0aGlzLnN0ZW5jaWxaUGFzcz1uVSx0aGlzLnN0ZW5jaWxXcml0ZT0hMSx0aGlzLmNsaXBwaW5nUGxhbmVzPW51bGwsdGhpcy5jbGlwSW50ZXJzZWN0aW9uPSExLHRoaXMuY2xpcFNoYWRvd3M9ITEsdGhpcy5zaGFkb3dTaWRlPW51bGwsdGhpcy5jb2xvcldyaXRlPSEwLHRoaXMuYWxwaGFXcml0ZT0hMCx0aGlzLnByZWNpc2lvbj1udWxsLHRoaXMucG9seWdvbk9mZnNldD0hMSx0aGlzLnBvbHlnb25PZmZzZXRGYWN0b3I9MCx0aGlzLnBvbHlnb25PZmZzZXRVbml0cz0wLHRoaXMuZGl0aGVyaW5nPSExLHRoaXMuYWxwaGFUb0NvdmVyYWdlPSExLHRoaXMucHJlbXVsdGlwbGllZEFscGhhPSExLHRoaXMudmlzaWJsZT0hMCx0aGlzLnRvbmVNYXBwZWQ9ITAsdGhpcy51c2VyRGF0YT17fSx0aGlzLnZlcnNpb249MCx0aGlzLl9hbHBoYVRlc3Q9MH1nZXQgYWxwaGFUZXN0KCl7cmV0dXJuIHRoaXMuX2FscGhhVGVzdH1zZXQgYWxwaGFUZXN0KHQpe3RoaXMuX2FscGhhVGVzdD4wIT10PjAmJnRoaXMudmVyc2lvbisrLHRoaXMuX2FscGhhVGVzdD10fW9uQnVpbGQoKXt9b25CZWZvcmVSZW5kZXIoKXt9b25CZWZvcmVDb21waWxlKCl7fWN1c3RvbVByb2dyYW1DYWNoZUtleSgpe3JldHVybiB0aGlzLm9uQmVmb3JlQ29tcGlsZS50b1N0cmluZygpfXNldFZhbHVlcyh0KXtpZih0IT09dm9pZCAwKWZvcihsZXQgciBpbiB0KXtsZXQgbj10W3JdO2lmKG49PT12b2lkIDApe2NvbnNvbGUud2FybigiVEhSRUUuTWF0ZXJpYWw6ICciK3IrIicgcGFyYW1ldGVyIGlzIHVuZGVmaW5lZC4iKTtjb250aW51ZX1pZihyPT09InNoYWRpbmciKXtjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zaGFkaW5nIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB0aGUgYm9vbGVhbiAuZmxhdFNoYWRpbmcgaW5zdGVhZC4iKSx0aGlzLmZsYXRTaGFkaW5nPW49PT1BaHQ7Y29udGludWV9bGV0IGk9dGhpc1tyXTtpZihpPT09dm9pZCAwKXtjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6ICciK3IrIicgaXMgbm90IGEgcHJvcGVydHkgb2YgdGhpcyBtYXRlcmlhbC4iKTtjb250aW51ZX1pJiZpLmlzQ29sb3I/aS5zZXQobik6aSYmaS5pc1ZlY3RvcjMmJm4mJm4uaXNWZWN0b3IzP2kuY29weShuKTp0aGlzW3JdPW59fXRvSlNPTih0KXtsZXQgcj10PT09dm9pZCAwfHx0eXBlb2YgdD09InN0cmluZyI7ciYmKHQ9e3RleHR1cmVzOnt9LGltYWdlczp7fX0pO2xldCBuPXttZXRhZGF0YTp7dmVyc2lvbjo0LjUsdHlwZToiTWF0ZXJpYWwiLGdlbmVyYXRvcjoiTWF0ZXJpYWwudG9KU09OIn19O24udXVpZD10aGlzLnV1aWQsbi50eXBlPXRoaXMudHlwZSx0aGlzLm5hbWUhPT0iIiYmKG4ubmFtZT10aGlzLm5hbWUpLHRoaXMuY29sb3ImJnRoaXMuY29sb3IuaXNDb2xvciYmKG4uY29sb3I9dGhpcy5jb2xvci5nZXRIZXgoKSksdGhpcy5yb3VnaG5lc3MhPT12b2lkIDAmJihuLnJvdWdobmVzcz10aGlzLnJvdWdobmVzcyksdGhpcy5tZXRhbG5lc3MhPT12b2lkIDAmJihuLm1ldGFsbmVzcz10aGlzLm1ldGFsbmVzcyksdGhpcy5zaGVlbiE9PXZvaWQgMCYmKG4uc2hlZW49dGhpcy5zaGVlbiksdGhpcy5zaGVlbkNvbG9yJiZ0aGlzLnNoZWVuQ29sb3IuaXNDb2xvciYmKG4uc2hlZW5Db2xvcj10aGlzLnNoZWVuQ29sb3IuZ2V0SGV4KCkpLHRoaXMuc2hlZW5Sb3VnaG5lc3MhPT12b2lkIDAmJihuLnNoZWVuUm91Z2huZXNzPXRoaXMuc2hlZW5Sb3VnaG5lc3MpLHRoaXMuZW1pc3NpdmUmJnRoaXMuZW1pc3NpdmUuaXNDb2xvciYmKG4uZW1pc3NpdmU9dGhpcy5lbWlzc2l2ZS5nZXRIZXgoKSksdGhpcy5lbWlzc2l2ZUludGVuc2l0eSYmdGhpcy5lbWlzc2l2ZUludGVuc2l0eSE9PTEmJihuLmVtaXNzaXZlSW50ZW5zaXR5PXRoaXMuZW1pc3NpdmVJbnRlbnNpdHkpLHRoaXMuc3BlY3VsYXImJnRoaXMuc3BlY3VsYXIuaXNDb2xvciYmKG4uc3BlY3VsYXI9dGhpcy5zcGVjdWxhci5nZXRIZXgoKSksdGhpcy5zcGVjdWxhckludGVuc2l0eSE9PXZvaWQgMCYmKG4uc3BlY3VsYXJJbnRlbnNpdHk9dGhpcy5zcGVjdWxhckludGVuc2l0eSksdGhpcy5zcGVjdWxhckNvbG9yJiZ0aGlzLnNwZWN1bGFyQ29sb3IuaXNDb2xvciYmKG4uc3BlY3VsYXJDb2xvcj10aGlzLnNwZWN1bGFyQ29sb3IuZ2V0SGV4KCkpLHRoaXMuc2hpbmluZXNzIT09dm9pZCAwJiYobi5zaGluaW5lc3M9dGhpcy5zaGluaW5lc3MpLHRoaXMuY2xlYXJjb2F0IT09dm9pZCAwJiYobi5jbGVhcmNvYXQ9dGhpcy5jbGVhcmNvYXQpLHRoaXMuY2xlYXJjb2F0Um91Z2huZXNzIT09dm9pZCAwJiYobi5jbGVhcmNvYXRSb3VnaG5lc3M9dGhpcy5jbGVhcmNvYXRSb3VnaG5lc3MpLHRoaXMuY2xlYXJjb2F0TWFwJiZ0aGlzLmNsZWFyY29hdE1hcC5pc1RleHR1cmUmJihuLmNsZWFyY29hdE1hcD10aGlzLmNsZWFyY29hdE1hcC50b0pTT04odCkudXVpZCksdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXAmJnRoaXMuY2xlYXJjb2F0Um91Z2huZXNzTWFwLmlzVGV4dHVyZSYmKG4uY2xlYXJjb2F0Um91Z2huZXNzTWFwPXRoaXMuY2xlYXJjb2F0Um91Z2huZXNzTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLmNsZWFyY29hdE5vcm1hbE1hcCYmdGhpcy5jbGVhcmNvYXROb3JtYWxNYXAuaXNUZXh0dXJlJiYobi5jbGVhcmNvYXROb3JtYWxNYXA9dGhpcy5jbGVhcmNvYXROb3JtYWxNYXAudG9KU09OKHQpLnV1aWQsbi5jbGVhcmNvYXROb3JtYWxTY2FsZT10aGlzLmNsZWFyY29hdE5vcm1hbFNjYWxlLnRvQXJyYXkoKSksdGhpcy5tYXAmJnRoaXMubWFwLmlzVGV4dHVyZSYmKG4ubWFwPXRoaXMubWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLm1hdGNhcCYmdGhpcy5tYXRjYXAuaXNUZXh0dXJlJiYobi5tYXRjYXA9dGhpcy5tYXRjYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuYWxwaGFNYXAmJnRoaXMuYWxwaGFNYXAuaXNUZXh0dXJlJiYobi5hbHBoYU1hcD10aGlzLmFscGhhTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLmxpZ2h0TWFwJiZ0aGlzLmxpZ2h0TWFwLmlzVGV4dHVyZSYmKG4ubGlnaHRNYXA9dGhpcy5saWdodE1hcC50b0pTT04odCkudXVpZCxuLmxpZ2h0TWFwSW50ZW5zaXR5PXRoaXMubGlnaHRNYXBJbnRlbnNpdHkpLHRoaXMuYW9NYXAmJnRoaXMuYW9NYXAuaXNUZXh0dXJlJiYobi5hb01hcD10aGlzLmFvTWFwLnRvSlNPTih0KS51dWlkLG4uYW9NYXBJbnRlbnNpdHk9dGhpcy5hb01hcEludGVuc2l0eSksdGhpcy5idW1wTWFwJiZ0aGlzLmJ1bXBNYXAuaXNUZXh0dXJlJiYobi5idW1wTWFwPXRoaXMuYnVtcE1hcC50b0pTT04odCkudXVpZCxuLmJ1bXBTY2FsZT10aGlzLmJ1bXBTY2FsZSksdGhpcy5ub3JtYWxNYXAmJnRoaXMubm9ybWFsTWFwLmlzVGV4dHVyZSYmKG4ubm9ybWFsTWFwPXRoaXMubm9ybWFsTWFwLnRvSlNPTih0KS51dWlkLG4ubm9ybWFsTWFwVHlwZT10aGlzLm5vcm1hbE1hcFR5cGUsbi5ub3JtYWxTY2FsZT10aGlzLm5vcm1hbFNjYWxlLnRvQXJyYXkoKSksdGhpcy5kaXNwbGFjZW1lbnRNYXAmJnRoaXMuZGlzcGxhY2VtZW50TWFwLmlzVGV4dHVyZSYmKG4uZGlzcGxhY2VtZW50TWFwPXRoaXMuZGlzcGxhY2VtZW50TWFwLnRvSlNPTih0KS51dWlkLG4uZGlzcGxhY2VtZW50U2NhbGU9dGhpcy5kaXNwbGFjZW1lbnRTY2FsZSxuLmRpc3BsYWNlbWVudEJpYXM9dGhpcy5kaXNwbGFjZW1lbnRCaWFzKSx0aGlzLnJvdWdobmVzc01hcCYmdGhpcy5yb3VnaG5lc3NNYXAuaXNUZXh0dXJlJiYobi5yb3VnaG5lc3NNYXA9dGhpcy5yb3VnaG5lc3NNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMubWV0YWxuZXNzTWFwJiZ0aGlzLm1ldGFsbmVzc01hcC5pc1RleHR1cmUmJihuLm1ldGFsbmVzc01hcD10aGlzLm1ldGFsbmVzc01hcC50b0pTT04odCkudXVpZCksdGhpcy5lbWlzc2l2ZU1hcCYmdGhpcy5lbWlzc2l2ZU1hcC5pc1RleHR1cmUmJihuLmVtaXNzaXZlTWFwPXRoaXMuZW1pc3NpdmVNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuc3BlY3VsYXJNYXAmJnRoaXMuc3BlY3VsYXJNYXAuaXNUZXh0dXJlJiYobi5zcGVjdWxhck1hcD10aGlzLnNwZWN1bGFyTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLnNwZWN1bGFySW50ZW5zaXR5TWFwJiZ0aGlzLnNwZWN1bGFySW50ZW5zaXR5TWFwLmlzVGV4dHVyZSYmKG4uc3BlY3VsYXJJbnRlbnNpdHlNYXA9dGhpcy5zcGVjdWxhckludGVuc2l0eU1hcC50b0pTT04odCkudXVpZCksdGhpcy5zcGVjdWxhckNvbG9yTWFwJiZ0aGlzLnNwZWN1bGFyQ29sb3JNYXAuaXNUZXh0dXJlJiYobi5zcGVjdWxhckNvbG9yTWFwPXRoaXMuc3BlY3VsYXJDb2xvck1hcC50b0pTT04odCkudXVpZCksdGhpcy5lbnZNYXAmJnRoaXMuZW52TWFwLmlzVGV4dHVyZSYmKG4uZW52TWFwPXRoaXMuZW52TWFwLnRvSlNPTih0KS51dWlkLHRoaXMuY29tYmluZSE9PXZvaWQgMCYmKG4uY29tYmluZT10aGlzLmNvbWJpbmUpKSx0aGlzLmVudk1hcEludGVuc2l0eSE9PXZvaWQgMCYmKG4uZW52TWFwSW50ZW5zaXR5PXRoaXMuZW52TWFwSW50ZW5zaXR5KSx0aGlzLnJlZmxlY3Rpdml0eSE9PXZvaWQgMCYmKG4ucmVmbGVjdGl2aXR5PXRoaXMucmVmbGVjdGl2aXR5KSx0aGlzLnJlZnJhY3Rpb25SYXRpbyE9PXZvaWQgMCYmKG4ucmVmcmFjdGlvblJhdGlvPXRoaXMucmVmcmFjdGlvblJhdGlvKSx0aGlzLmdyYWRpZW50TWFwJiZ0aGlzLmdyYWRpZW50TWFwLmlzVGV4dHVyZSYmKG4uZ3JhZGllbnRNYXA9dGhpcy5ncmFkaWVudE1hcC50b0pTT04odCkudXVpZCksdGhpcy50cmFuc21pc3Npb24hPT12b2lkIDAmJihuLnRyYW5zbWlzc2lvbj10aGlzLnRyYW5zbWlzc2lvbiksdGhpcy50cmFuc21pc3Npb25NYXAmJnRoaXMudHJhbnNtaXNzaW9uTWFwLmlzVGV4dHVyZSYmKG4udHJhbnNtaXNzaW9uTWFwPXRoaXMudHJhbnNtaXNzaW9uTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLnRoaWNrbmVzcyE9PXZvaWQgMCYmKG4udGhpY2tuZXNzPXRoaXMudGhpY2tuZXNzKSx0aGlzLnRoaWNrbmVzc01hcCYmdGhpcy50aGlja25lc3NNYXAuaXNUZXh0dXJlJiYobi50aGlja25lc3NNYXA9dGhpcy50aGlja25lc3NNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuYXR0ZW51YXRpb25EaXN0YW5jZSE9PXZvaWQgMCYmKG4uYXR0ZW51YXRpb25EaXN0YW5jZT10aGlzLmF0dGVudWF0aW9uRGlzdGFuY2UpLHRoaXMuYXR0ZW51YXRpb25Db2xvciE9PXZvaWQgMCYmKG4uYXR0ZW51YXRpb25Db2xvcj10aGlzLmF0dGVudWF0aW9uQ29sb3IuZ2V0SGV4KCkpLHRoaXMuc2l6ZSE9PXZvaWQgMCYmKG4uc2l6ZT10aGlzLnNpemUpLHRoaXMuc2hhZG93U2lkZSE9PW51bGwmJihuLnNoYWRvd1NpZGU9dGhpcy5zaGFkb3dTaWRlKSx0aGlzLnNpemVBdHRlbnVhdGlvbiE9PXZvaWQgMCYmKG4uc2l6ZUF0dGVudWF0aW9uPXRoaXMuc2l6ZUF0dGVudWF0aW9uKSx0aGlzLmJsZW5kaW5nIT09VjMmJihuLmJsZW5kaW5nPXRoaXMuYmxlbmRpbmcpLHRoaXMuc2lkZSE9PUwxJiYobi5zaWRlPXRoaXMuc2lkZSksdGhpcy52ZXJ0ZXhDb2xvcnMmJihuLnZlcnRleENvbG9ycz0hMCksdGhpcy5vcGFjaXR5PDEmJihuLm9wYWNpdHk9dGhpcy5vcGFjaXR5KSx0aGlzLnRyYW5zcGFyZW50PT09ITAmJihuLnRyYW5zcGFyZW50PXRoaXMudHJhbnNwYXJlbnQpLG4uZGVwdGhGdW5jPXRoaXMuZGVwdGhGdW5jLG4uZGVwdGhUZXN0PXRoaXMuZGVwdGhUZXN0LG4uZGVwdGhXcml0ZT10aGlzLmRlcHRoV3JpdGUsbi5jb2xvcldyaXRlPXRoaXMuY29sb3JXcml0ZSxuLmFscGhhV3JpdGU9dGhpcy5hbHBoYVdyaXRlLG4uc3RlbmNpbFdyaXRlPXRoaXMuc3RlbmNpbFdyaXRlLG4uc3RlbmNpbFdyaXRlTWFzaz10aGlzLnN0ZW5jaWxXcml0ZU1hc2ssbi5zdGVuY2lsRnVuYz10aGlzLnN0ZW5jaWxGdW5jLG4uc3RlbmNpbFJlZj10aGlzLnN0ZW5jaWxSZWYsbi5zdGVuY2lsRnVuY01hc2s9dGhpcy5zdGVuY2lsRnVuY01hc2ssbi5zdGVuY2lsRmFpbD10aGlzLnN0ZW5jaWxGYWlsLG4uc3RlbmNpbFpGYWlsPXRoaXMuc3RlbmNpbFpGYWlsLG4uc3RlbmNpbFpQYXNzPXRoaXMuc3RlbmNpbFpQYXNzLHRoaXMucm90YXRpb24mJnRoaXMucm90YXRpb24hPT0wJiYobi5yb3RhdGlvbj10aGlzLnJvdGF0aW9uKSx0aGlzLnBvbHlnb25PZmZzZXQ9PT0hMCYmKG4ucG9seWdvbk9mZnNldD0hMCksdGhpcy5wb2x5Z29uT2Zmc2V0RmFjdG9yIT09MCYmKG4ucG9seWdvbk9mZnNldEZhY3Rvcj10aGlzLnBvbHlnb25PZmZzZXRGYWN0b3IpLHRoaXMucG9seWdvbk9mZnNldFVuaXRzIT09MCYmKG4ucG9seWdvbk9mZnNldFVuaXRzPXRoaXMucG9seWdvbk9mZnNldFVuaXRzKSx0aGlzLmxpbmV3aWR0aCYmdGhpcy5saW5ld2lkdGghPT0xJiYobi5saW5ld2lkdGg9dGhpcy5saW5ld2lkdGgpLHRoaXMuZGFzaFNpemUhPT12b2lkIDAmJihuLmRhc2hTaXplPXRoaXMuZGFzaFNpemUpLHRoaXMuZ2FwU2l6ZSE9PXZvaWQgMCYmKG4uZ2FwU2l6ZT10aGlzLmdhcFNpemUpLHRoaXMuc2NhbGUhPT12b2lkIDAmJihuLnNjYWxlPXRoaXMuc2NhbGUpLHRoaXMuZGl0aGVyaW5nPT09ITAmJihuLmRpdGhlcmluZz0hMCksdGhpcy5hbHBoYVRlc3Q+MCYmKG4uYWxwaGFUZXN0PXRoaXMuYWxwaGFUZXN0KSx0aGlzLmFscGhhVG9Db3ZlcmFnZT09PSEwJiYobi5hbHBoYVRvQ292ZXJhZ2U9dGhpcy5hbHBoYVRvQ292ZXJhZ2UpLHRoaXMucHJlbXVsdGlwbGllZEFscGhhPT09ITAmJihuLnByZW11bHRpcGxpZWRBbHBoYT10aGlzLnByZW11bHRpcGxpZWRBbHBoYSksdGhpcy53aXJlZnJhbWU9PT0hMCYmKG4ud2lyZWZyYW1lPXRoaXMud2lyZWZyYW1lKSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD4xJiYobi53aXJlZnJhbWVMaW5ld2lkdGg9dGhpcy53aXJlZnJhbWVMaW5ld2lkdGgpLHRoaXMud2lyZWZyYW1lTGluZWNhcCE9PSJyb3VuZCImJihuLndpcmVmcmFtZUxpbmVjYXA9dGhpcy53aXJlZnJhbWVMaW5lY2FwKSx0aGlzLndpcmVmcmFtZUxpbmVqb2luIT09InJvdW5kIiYmKG4ud2lyZWZyYW1lTGluZWpvaW49dGhpcy53aXJlZnJhbWVMaW5lam9pbiksdGhpcy5mbGF0U2hhZGluZz09PSEwJiYobi5mbGF0U2hhZGluZz10aGlzLmZsYXRTaGFkaW5nKSx0aGlzLnZpc2libGU9PT0hMSYmKG4udmlzaWJsZT0hMSksdGhpcy50b25lTWFwcGVkPT09ITEmJihuLnRvbmVNYXBwZWQ9ITEpLEpTT04uc3RyaW5naWZ5KHRoaXMudXNlckRhdGEpIT09Int9IiYmKG4udXNlckRhdGE9dGhpcy51c2VyRGF0YSk7ZnVuY3Rpb24gaShvKXtsZXQgYT1bXTtmb3IobGV0IHMgaW4gbyl7bGV0IGw9b1tzXTtkZWxldGUgbC5tZXRhZGF0YSxhLnB1c2gobCl9cmV0dXJuIGF9aWYocil7bGV0IG89aSh0LnRleHR1cmVzKSxhPWkodC5pbWFnZXMpO28ubGVuZ3RoPjAmJihuLnRleHR1cmVzPW8pLGEubGVuZ3RoPjAmJihuLmltYWdlcz1hKX1yZXR1cm4gbn1jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcigpLmNvcHkodGhpcyl9Y29weSh0KXt0aGlzLm5hbWU9dC5uYW1lLHRoaXMuZm9nPXQuZm9nLHRoaXMuYmxlbmRpbmc9dC5ibGVuZGluZyx0aGlzLnNpZGU9dC5zaWRlLHRoaXMudmVydGV4Q29sb3JzPXQudmVydGV4Q29sb3JzLHRoaXMub3BhY2l0eT10Lm9wYWNpdHksdGhpcy50cmFuc3BhcmVudD10LnRyYW5zcGFyZW50LHRoaXMuYmxlbmRTcmM9dC5ibGVuZFNyYyx0aGlzLmJsZW5kRHN0PXQuYmxlbmREc3QsdGhpcy5ibGVuZEVxdWF0aW9uPXQuYmxlbmRFcXVhdGlvbix0aGlzLmJsZW5kU3JjQWxwaGE9dC5ibGVuZFNyY0FscGhhLHRoaXMuYmxlbmREc3RBbHBoYT10LmJsZW5kRHN0QWxwaGEsdGhpcy5ibGVuZEVxdWF0aW9uQWxwaGE9dC5ibGVuZEVxdWF0aW9uQWxwaGEsdGhpcy5kZXB0aEZ1bmM9dC5kZXB0aEZ1bmMsdGhpcy5kZXB0aFRlc3Q9dC5kZXB0aFRlc3QsdGhpcy5kZXB0aFdyaXRlPXQuZGVwdGhXcml0ZSx0aGlzLnN0ZW5jaWxXcml0ZU1hc2s9dC5zdGVuY2lsV3JpdGVNYXNrLHRoaXMuc3RlbmNpbEZ1bmM9dC5zdGVuY2lsRnVuYyx0aGlzLnN0ZW5jaWxSZWY9dC5zdGVuY2lsUmVmLHRoaXMuc3RlbmNpbEZ1bmNNYXNrPXQuc3RlbmNpbEZ1bmNNYXNrLHRoaXMuc3RlbmNpbEZhaWw9dC5zdGVuY2lsRmFpbCx0aGlzLnN0ZW5jaWxaRmFpbD10LnN0ZW5jaWxaRmFpbCx0aGlzLnN0ZW5jaWxaUGFzcz10LnN0ZW5jaWxaUGFzcyx0aGlzLnN0ZW5jaWxXcml0ZT10LnN0ZW5jaWxXcml0ZTtsZXQgcj10LmNsaXBwaW5nUGxhbmVzLG49bnVsbDtpZihyIT09bnVsbCl7bGV0IGk9ci5sZW5ndGg7bj1uZXcgQXJyYXkoaSk7Zm9yKGxldCBvPTA7byE9PWk7KytvKW5bb109cltvXS5jbG9uZSgpfXJldHVybiB0aGlzLmNsaXBwaW5nUGxhbmVzPW4sdGhpcy5jbGlwSW50ZXJzZWN0aW9uPXQuY2xpcEludGVyc2VjdGlvbix0aGlzLmNsaXBTaGFkb3dzPXQuY2xpcFNoYWRvd3MsdGhpcy5zaGFkb3dTaWRlPXQuc2hhZG93U2lkZSx0aGlzLmNvbG9yV3JpdGU9dC5jb2xvcldyaXRlLHRoaXMuYWxwaGFXcml0ZT10LmFscGhhV3JpdGUsdGhpcy5wcmVjaXNpb249dC5wcmVjaXNpb24sdGhpcy5wb2x5Z29uT2Zmc2V0PXQucG9seWdvbk9mZnNldCx0aGlzLnBvbHlnb25PZmZzZXRGYWN0b3I9dC5wb2x5Z29uT2Zmc2V0RmFjdG9yLHRoaXMucG9seWdvbk9mZnNldFVuaXRzPXQucG9seWdvbk9mZnNldFVuaXRzLHRoaXMuZGl0aGVyaW5nPXQuZGl0aGVyaW5nLHRoaXMuYWxwaGFUZXN0PXQuYWxwaGFUZXN0LHRoaXMuYWxwaGFUb0NvdmVyYWdlPXQuYWxwaGFUb0NvdmVyYWdlLHRoaXMucHJlbXVsdGlwbGllZEFscGhhPXQucHJlbXVsdGlwbGllZEFscGhhLHRoaXMudmlzaWJsZT10LnZpc2libGUsdGhpcy50b25lTWFwcGVkPXQudG9uZU1hcHBlZCx0aGlzLnVzZXJEYXRhPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodC51c2VyRGF0YSkpLHRoaXN9ZGlzcG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzcG9zZSJ9KX1zZXQgbmVlZHNVcGRhdGUodCl7dD09PSEwJiZ0aGlzLnZlcnNpb24rK319O3FpLnByb3RvdHlwZS5pc01hdGVyaWFsPSEwO3ZhciBzaD1jbGFzcyBleHRlbmRzIHFpe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoQmFzaWNNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgbmUoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5saWdodE1hcD1udWxsLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9MSx0aGlzLmFvTWFwPW51bGwsdGhpcy5hb01hcEludGVuc2l0eT0xLHRoaXMuc3BlY3VsYXJNYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5lbnZNYXA9bnVsbCx0aGlzLmNvbWJpbmU9TzYsdGhpcy5yZWZsZWN0aXZpdHk9MSx0aGlzLnJlZnJhY3Rpb25SYXRpbz0uOTgsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXA9dC5tYXAsdGhpcy5saWdodE1hcD10LmxpZ2h0TWFwLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9dC5saWdodE1hcEludGVuc2l0eSx0aGlzLmFvTWFwPXQuYW9NYXAsdGhpcy5hb01hcEludGVuc2l0eT10LmFvTWFwSW50ZW5zaXR5LHRoaXMuc3BlY3VsYXJNYXA9dC5zcGVjdWxhck1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5lbnZNYXA9dC5lbnZNYXAsdGhpcy5jb21iaW5lPXQuY29tYmluZSx0aGlzLnJlZmxlY3Rpdml0eT10LnJlZmxlY3Rpdml0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzfX07c2gucHJvdG90eXBlLmlzTWVzaEJhc2ljTWF0ZXJpYWw9ITA7dmFyIExuPW5ldyBqLHZWPW5ldyBMdCxKZT1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIsbil7aWYoQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IGFycmF5IHNob3VsZCBiZSBhIFR5cGVkIEFycmF5LiIpO3RoaXMubmFtZT0iIix0aGlzLmFycmF5PXQsdGhpcy5pdGVtU2l6ZT1yLHRoaXMuY291bnQ9dCE9PXZvaWQgMD90Lmxlbmd0aC9yOjAsdGhpcy5ub3JtYWxpemVkPW49PT0hMCx0aGlzLnVzYWdlPVczLHRoaXMudXBkYXRlUmFuZ2U9e29mZnNldDowLGNvdW50Oi0xfSx0aGlzLnZlcnNpb249MH1vblVwbG9hZENhbGxiYWNrKCl7fXNldCBuZWVkc1VwZGF0ZSh0KXt0PT09ITAmJnRoaXMudmVyc2lvbisrfXNldFVzYWdlKHQpe3JldHVybiB0aGlzLnVzYWdlPXQsdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLm5hbWU9dC5uYW1lLHRoaXMuYXJyYXk9bmV3IHQuYXJyYXkuY29uc3RydWN0b3IodC5hcnJheSksdGhpcy5pdGVtU2l6ZT10Lml0ZW1TaXplLHRoaXMuY291bnQ9dC5jb3VudCx0aGlzLm5vcm1hbGl6ZWQ9dC5ub3JtYWxpemVkLHRoaXMudXNhZ2U9dC51c2FnZSx0aGlzfWNvcHlBdCh0LHIsbil7dCo9dGhpcy5pdGVtU2l6ZSxuKj1yLml0ZW1TaXplO2ZvcihsZXQgaT0wLG89dGhpcy5pdGVtU2l6ZTtpPG87aSsrKXRoaXMuYXJyYXlbdCtpXT1yLmFycmF5W24raV07cmV0dXJuIHRoaXN9Y29weUFycmF5KHQpe3JldHVybiB0aGlzLmFycmF5LnNldCh0KSx0aGlzfWNvcHlDb2xvcnNBcnJheSh0KXtsZXQgcj10aGlzLmFycmF5LG49MDtmb3IobGV0IGk9MCxvPXQubGVuZ3RoO2k8bztpKyspe2xldCBhPXRbaV07YT09PXZvaWQgMCYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlDb2xvcnNBcnJheSgpOiBjb2xvciBpcyB1bmRlZmluZWQiLGkpLGE9bmV3IG5lKSxyW24rK109YS5yLHJbbisrXT1hLmcscltuKytdPWEuYn1yZXR1cm4gdGhpc31jb3B5VmVjdG9yMnNBcnJheSh0KXtsZXQgcj10aGlzLmFycmF5LG49MDtmb3IobGV0IGk9MCxvPXQubGVuZ3RoO2k8bztpKyspe2xldCBhPXRbaV07YT09PXZvaWQgMCYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlWZWN0b3Iyc0FycmF5KCk6IHZlY3RvciBpcyB1bmRlZmluZWQiLGkpLGE9bmV3IEx0KSxyW24rK109YS54LHJbbisrXT1hLnl9cmV0dXJuIHRoaXN9Y29weVZlY3RvcjNzQXJyYXkodCl7bGV0IHI9dGhpcy5hcnJheSxuPTA7Zm9yKGxldCBpPTAsbz10Lmxlbmd0aDtpPG87aSsrKXtsZXQgYT10W2ldO2E9PT12b2lkIDAmJihjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZS5jb3B5VmVjdG9yM3NBcnJheSgpOiB2ZWN0b3IgaXMgdW5kZWZpbmVkIixpKSxhPW5ldyBqKSxyW24rK109YS54LHJbbisrXT1hLnkscltuKytdPWEuen1yZXR1cm4gdGhpc31jb3B5VmVjdG9yNHNBcnJheSh0KXtsZXQgcj10aGlzLmFycmF5LG49MDtmb3IobGV0IGk9MCxvPXQubGVuZ3RoO2k8bztpKyspe2xldCBhPXRbaV07YT09PXZvaWQgMCYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlWZWN0b3I0c0FycmF5KCk6IHZlY3RvciBpcyB1bmRlZmluZWQiLGkpLGE9bmV3IGVuKSxyW24rK109YS54LHJbbisrXT1hLnkscltuKytdPWEueixyW24rK109YS53fXJldHVybiB0aGlzfWFwcGx5TWF0cml4Myh0KXtpZih0aGlzLml0ZW1TaXplPT09Milmb3IobGV0IHI9MCxuPXRoaXMuY291bnQ7cjxuO3IrKyl2Vi5mcm9tQnVmZmVyQXR0cmlidXRlKHRoaXMsciksdlYuYXBwbHlNYXRyaXgzKHQpLHRoaXMuc2V0WFkocix2Vi54LHZWLnkpO2Vsc2UgaWYodGhpcy5pdGVtU2l6ZT09PTMpZm9yKGxldCByPTAsbj10aGlzLmNvdW50O3I8bjtyKyspTG4uZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0aGlzLHIpLExuLmFwcGx5TWF0cml4Myh0KSx0aGlzLnNldFhZWihyLExuLngsTG4ueSxMbi56KTtyZXR1cm4gdGhpc31hcHBseU1hdHJpeDQodCl7Zm9yKGxldCByPTAsbj10aGlzLmNvdW50O3I8bjtyKyspTG4ueD10aGlzLmdldFgociksTG4ueT10aGlzLmdldFkociksTG4uej10aGlzLmdldFoociksTG4uYXBwbHlNYXRyaXg0KHQpLHRoaXMuc2V0WFlaKHIsTG4ueCxMbi55LExuLnopO3JldHVybiB0aGlzfWFwcGx5Tm9ybWFsTWF0cml4KHQpe2ZvcihsZXQgcj0wLG49dGhpcy5jb3VudDtyPG47cisrKUxuLng9dGhpcy5nZXRYKHIpLExuLnk9dGhpcy5nZXRZKHIpLExuLno9dGhpcy5nZXRaKHIpLExuLmFwcGx5Tm9ybWFsTWF0cml4KHQpLHRoaXMuc2V0WFlaKHIsTG4ueCxMbi55LExuLnopO3JldHVybiB0aGlzfXRyYW5zZm9ybURpcmVjdGlvbih0KXtmb3IobGV0IHI9MCxuPXRoaXMuY291bnQ7cjxuO3IrKylMbi54PXRoaXMuZ2V0WChyKSxMbi55PXRoaXMuZ2V0WShyKSxMbi56PXRoaXMuZ2V0WihyKSxMbi50cmFuc2Zvcm1EaXJlY3Rpb24odCksdGhpcy5zZXRYWVoocixMbi54LExuLnksTG4ueik7cmV0dXJuIHRoaXN9c2V0KHQscj0wKXtyZXR1cm4gdGhpcy5hcnJheS5zZXQodCxyKSx0aGlzfWdldFgodCl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplXX1zZXRYKHQscil7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplXT1yLHRoaXN9Z2V0WSh0KXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemUrMV19c2V0WSh0LHIpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSsxXT1yLHRoaXN9Z2V0Wih0KXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemUrMl19c2V0Wih0LHIpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSsyXT1yLHRoaXN9Z2V0Vyh0KXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemUrM119c2V0Vyh0LHIpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSszXT1yLHRoaXN9c2V0WFkodCxyLG4pe3JldHVybiB0Kj10aGlzLml0ZW1TaXplLHRoaXMuYXJyYXlbdCswXT1yLHRoaXMuYXJyYXlbdCsxXT1uLHRoaXN9c2V0WFlaKHQscixuLGkpe3JldHVybiB0Kj10aGlzLml0ZW1TaXplLHRoaXMuYXJyYXlbdCswXT1yLHRoaXMuYXJyYXlbdCsxXT1uLHRoaXMuYXJyYXlbdCsyXT1pLHRoaXN9c2V0WFlaVyh0LHIsbixpLG8pe3JldHVybiB0Kj10aGlzLml0ZW1TaXplLHRoaXMuYXJyYXlbdCswXT1yLHRoaXMuYXJyYXlbdCsxXT1uLHRoaXMuYXJyYXlbdCsyXT1pLHRoaXMuYXJyYXlbdCszXT1vLHRoaXN9b25VcGxvYWQodCl7cmV0dXJuIHRoaXMub25VcGxvYWRDYWxsYmFjaz10LHRoaXN9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5hcnJheSx0aGlzLml0ZW1TaXplKS5jb3B5KHRoaXMpfXRvSlNPTigpe2xldCB0PXtpdGVtU2l6ZTp0aGlzLml0ZW1TaXplLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLGFycmF5OkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuYXJyYXkpLG5vcm1hbGl6ZWQ6dGhpcy5ub3JtYWxpemVkfTtyZXR1cm4gdGhpcy5uYW1lIT09IiImJih0Lm5hbWU9dGhpcy5uYW1lKSx0aGlzLnVzYWdlIT09VzMmJih0LnVzYWdlPXRoaXMudXNhZ2UpLCh0aGlzLnVwZGF0ZVJhbmdlLm9mZnNldCE9PTB8fHRoaXMudXBkYXRlUmFuZ2UuY291bnQhPT0tMSkmJih0LnVwZGF0ZVJhbmdlPXRoaXMudXBkYXRlUmFuZ2UpLHR9fTtKZS5wcm90b3R5cGUuaXNCdWZmZXJBdHRyaWJ1dGU9ITA7dmFyIGNVPWNsYXNzIGV4dGVuZHMgSmV7Y29uc3RydWN0b3IodCxyLG4pe3N1cGVyKG5ldyBJbnQ4QXJyYXkodCkscixuKX19LHVVPWNsYXNzIGV4dGVuZHMgSmV7Y29uc3RydWN0b3IodCxyLG4pe3N1cGVyKG5ldyBVaW50OEFycmF5KHQpLHIsbil9fSxoVT1jbGFzcyBleHRlbmRzIEple2NvbnN0cnVjdG9yKHQscixuKXtzdXBlcihuZXcgVWludDhDbGFtcGVkQXJyYXkodCkscixuKX19LGZVPWNsYXNzIGV4dGVuZHMgSmV7Y29uc3RydWN0b3IodCxyLG4pe3N1cGVyKG5ldyBJbnQxNkFycmF5KHQpLHIsbil9fSwkMz1jbGFzcyBleHRlbmRzIEple2NvbnN0cnVjdG9yKHQscixuKXtzdXBlcihuZXcgVWludDE2QXJyYXkodCkscixuKX19LHBVPWNsYXNzIGV4dGVuZHMgSmV7Y29uc3RydWN0b3IodCxyLG4pe3N1cGVyKG5ldyBJbnQzMkFycmF5KHQpLHIsbil9fSxLMz1jbGFzcyBleHRlbmRzIEple2NvbnN0cnVjdG9yKHQscixuKXtzdXBlcihuZXcgVWludDMyQXJyYXkodCkscixuKX19LGRVPWNsYXNzIGV4dGVuZHMgSmV7Y29uc3RydWN0b3IodCxyLG4pe3N1cGVyKG5ldyBVaW50MTZBcnJheSh0KSxyLG4pfX07ZFUucHJvdG90eXBlLmlzRmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZT0hMDt2YXIgeGU9Y2xhc3MgZXh0ZW5kcyBKZXtjb25zdHJ1Y3Rvcih0LHIsbil7c3VwZXIobmV3IEZsb2F0MzJBcnJheSh0KSxyLG4pfX0sbVU9Y2xhc3MgZXh0ZW5kcyBKZXtjb25zdHJ1Y3Rvcih0LHIsbil7c3VwZXIobmV3IEZsb2F0NjRBcnJheSh0KSxyLG4pfX0sbWZyPTAsWGM9bmV3IE1lLGl1dD1uZXcgb3IsQzM9bmV3IGosTmw9bmV3IHRhLFJQPW5ldyB0YSxMbz1uZXcgaixQZT1jbGFzcyBleHRlbmRzIHFze2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiaWQiLHt2YWx1ZTptZnIrK30pLHRoaXMudXVpZD1EbCgpLHRoaXMubmFtZT0iIix0aGlzLnR5cGU9IkJ1ZmZlckdlb21ldHJ5Iix0aGlzLmluZGV4PW51bGwsdGhpcy5hdHRyaWJ1dGVzPXt9LHRoaXMubW9ycGhBdHRyaWJ1dGVzPXt9LHRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU9ITEsdGhpcy5ncm91cHM9W10sdGhpcy5ib3VuZGluZ0JveD1udWxsLHRoaXMuYm91bmRpbmdTcGhlcmU9bnVsbCx0aGlzLmRyYXdSYW5nZT17c3RhcnQ6MCxjb3VudDoxLzB9LHRoaXMudXNlckRhdGE9e319Z2V0SW5kZXgoKXtyZXR1cm4gdGhpcy5pbmRleH1zZXRJbmRleCh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90aGlzLmluZGV4PW5ldyhCZmUodCk/SzM6JDMpKHQsMSk6dGhpcy5pbmRleD10LHRoaXN9Z2V0QXR0cmlidXRlKHQpe3JldHVybiB0aGlzLmF0dHJpYnV0ZXNbdF19c2V0QXR0cmlidXRlKHQscil7cmV0dXJuIHRoaXMuYXR0cmlidXRlc1t0XT1yLHRoaXN9ZGVsZXRlQXR0cmlidXRlKHQpe3JldHVybiBkZWxldGUgdGhpcy5hdHRyaWJ1dGVzW3RdLHRoaXN9aGFzQXR0cmlidXRlKHQpe3JldHVybiB0aGlzLmF0dHJpYnV0ZXNbdF0hPT12b2lkIDB9YWRkR3JvdXAodCxyLG49MCl7dGhpcy5ncm91cHMucHVzaCh7c3RhcnQ6dCxjb3VudDpyLG1hdGVyaWFsSW5kZXg6bn0pfWNsZWFyR3JvdXBzKCl7dGhpcy5ncm91cHM9W119c2V0RHJhd1JhbmdlKHQscil7dGhpcy5kcmF3UmFuZ2Uuc3RhcnQ9dCx0aGlzLmRyYXdSYW5nZS5jb3VudD1yfWFwcGx5TWF0cml4NCh0KXtsZXQgcj10aGlzLmF0dHJpYnV0ZXMucG9zaXRpb247ciE9PXZvaWQgMCYmKHIuYXBwbHlNYXRyaXg0KHQpLHIubmVlZHNVcGRhdGU9ITApO2xldCBuPXRoaXMuYXR0cmlidXRlcy5ub3JtYWw7aWYobiE9PXZvaWQgMCl7bGV0IG89bmV3IGtpKCkuZ2V0Tm9ybWFsTWF0cml4KHQpO24uYXBwbHlOb3JtYWxNYXRyaXgobyksbi5uZWVkc1VwZGF0ZT0hMH1sZXQgaT10aGlzLmF0dHJpYnV0ZXMudGFuZ2VudDtyZXR1cm4gaSE9PXZvaWQgMCYmKGkudHJhbnNmb3JtRGlyZWN0aW9uKHQpLGkubmVlZHNVcGRhdGU9ITApLHRoaXMuYm91bmRpbmdCb3ghPT1udWxsJiZ0aGlzLmNvbXB1dGVCb3VuZGluZ0JveCgpLHRoaXMuYm91bmRpbmdTcGhlcmUhPT1udWxsJiZ0aGlzLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLHRoaXN9YXBwbHlRdWF0ZXJuaW9uKHQpe3JldHVybiBYYy5tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbih0KSx0aGlzLmFwcGx5TWF0cml4NChYYyksdGhpc31yb3RhdGVYKHQpe3JldHVybiBYYy5tYWtlUm90YXRpb25YKHQpLHRoaXMuYXBwbHlNYXRyaXg0KFhjKSx0aGlzfXJvdGF0ZVkodCl7cmV0dXJuIFhjLm1ha2VSb3RhdGlvblkodCksdGhpcy5hcHBseU1hdHJpeDQoWGMpLHRoaXN9cm90YXRlWih0KXtyZXR1cm4gWGMubWFrZVJvdGF0aW9uWih0KSx0aGlzLmFwcGx5TWF0cml4NChYYyksdGhpc310cmFuc2xhdGUodCxyLG4pe3JldHVybiBYYy5tYWtlVHJhbnNsYXRpb24odCxyLG4pLHRoaXMuYXBwbHlNYXRyaXg0KFhjKSx0aGlzfXNjYWxlKHQscixuKXtyZXR1cm4gWGMubWFrZVNjYWxlKHQscixuKSx0aGlzLmFwcGx5TWF0cml4NChYYyksdGhpc31sb29rQXQodCl7cmV0dXJuIGl1dC5sb29rQXQodCksaXV0LnVwZGF0ZU1hdHJpeCgpLHRoaXMuYXBwbHlNYXRyaXg0KGl1dC5tYXRyaXgpLHRoaXN9Y2VudGVyKCl7cmV0dXJuIHRoaXMuY29tcHV0ZUJvdW5kaW5nQm94KCksdGhpcy5ib3VuZGluZ0JveC5nZXRDZW50ZXIoQzMpLm5lZ2F0ZSgpLHRoaXMudHJhbnNsYXRlKEMzLngsQzMueSxDMy56KSx0aGlzfXNldEZyb21Qb2ludHModCl7bGV0IHI9W107Zm9yKGxldCBuPTAsaT10Lmxlbmd0aDtuPGk7bisrKXtsZXQgbz10W25dO3IucHVzaChvLngsby55LG8uenx8MCl9cmV0dXJuIHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IHhlKHIsMykpLHRoaXN9Y29tcHV0ZUJvdW5kaW5nQm94KCl7dGhpcy5ib3VuZGluZ0JveD09PW51bGwmJih0aGlzLmJvdW5kaW5nQm94PW5ldyB0YSk7bGV0IHQ9dGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLHI9dGhpcy5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb247aWYodCYmdC5pc0dMQnVmZmVyQXR0cmlidXRlKXtjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTogR0xCdWZmZXJBdHRyaWJ1dGUgcmVxdWlyZXMgYSBtYW51YWwgYm91bmRpbmcgYm94LiBBbHRlcm5hdGl2ZWx5IHNldCAibWVzaC5mcnVzdHVtQ3VsbGVkIiB0byAiZmFsc2UiLicsdGhpcyksdGhpcy5ib3VuZGluZ0JveC5zZXQobmV3IGooLTEvMCwtMS8wLC0xLzApLG5ldyBqKDEvMCwxLzAsMS8wKSk7cmV0dXJufWlmKHQhPT12b2lkIDApe2lmKHRoaXMuYm91bmRpbmdCb3guc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZSh0KSxyKWZvcihsZXQgbj0wLGk9ci5sZW5ndGg7bjxpO24rKyl7bGV0IG89cltuXTtObC5zZXRGcm9tQnVmZmVyQXR0cmlidXRlKG8pLHRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU/KExvLmFkZFZlY3RvcnModGhpcy5ib3VuZGluZ0JveC5taW4sTmwubWluKSx0aGlzLmJvdW5kaW5nQm94LmV4cGFuZEJ5UG9pbnQoTG8pLExvLmFkZFZlY3RvcnModGhpcy5ib3VuZGluZ0JveC5tYXgsTmwubWF4KSx0aGlzLmJvdW5kaW5nQm94LmV4cGFuZEJ5UG9pbnQoTG8pKToodGhpcy5ib3VuZGluZ0JveC5leHBhbmRCeVBvaW50KE5sLm1pbiksdGhpcy5ib3VuZGluZ0JveC5leHBhbmRCeVBvaW50KE5sLm1heCkpfX1lbHNlIHRoaXMuYm91bmRpbmdCb3gubWFrZUVtcHR5KCk7KGlzTmFOKHRoaXMuYm91bmRpbmdCb3gubWluLngpfHxpc05hTih0aGlzLmJvdW5kaW5nQm94Lm1pbi55KXx8aXNOYU4odGhpcy5ib3VuZGluZ0JveC5taW4ueikpJiZjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTogQ29tcHV0ZWQgbWluL21heCBoYXZlIE5hTiB2YWx1ZXMuIFRoZSAicG9zaXRpb24iIGF0dHJpYnV0ZSBpcyBsaWtlbHkgdG8gaGF2ZSBOYU4gdmFsdWVzLicsdGhpcyl9Y29tcHV0ZUJvdW5kaW5nU3BoZXJlKCl7dGhpcy5ib3VuZGluZ1NwaGVyZT09PW51bGwmJih0aGlzLmJvdW5kaW5nU3BoZXJlPW5ldyBKZik7bGV0IHQ9dGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLHI9dGhpcy5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb247aWYodCYmdC5pc0dMQnVmZmVyQXR0cmlidXRlKXtjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogR0xCdWZmZXJBdHRyaWJ1dGUgcmVxdWlyZXMgYSBtYW51YWwgYm91bmRpbmcgc3BoZXJlLiBBbHRlcm5hdGl2ZWx5IHNldCAibWVzaC5mcnVzdHVtQ3VsbGVkIiB0byAiZmFsc2UiLicsdGhpcyksdGhpcy5ib3VuZGluZ1NwaGVyZS5zZXQobmV3IGosMS8wKTtyZXR1cm59aWYodCl7bGV0IG49dGhpcy5ib3VuZGluZ1NwaGVyZS5jZW50ZXI7aWYoTmwuc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZSh0KSxyKWZvcihsZXQgbz0wLGE9ci5sZW5ndGg7bzxhO28rKyl7bGV0IHM9cltvXTtSUC5zZXRGcm9tQnVmZmVyQXR0cmlidXRlKHMpLHRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU/KExvLmFkZFZlY3RvcnMoTmwubWluLFJQLm1pbiksTmwuZXhwYW5kQnlQb2ludChMbyksTG8uYWRkVmVjdG9ycyhObC5tYXgsUlAubWF4KSxObC5leHBhbmRCeVBvaW50KExvKSk6KE5sLmV4cGFuZEJ5UG9pbnQoUlAubWluKSxObC5leHBhbmRCeVBvaW50KFJQLm1heCkpfU5sLmdldENlbnRlcihuKTtsZXQgaT0wO2ZvcihsZXQgbz0wLGE9dC5jb3VudDtvPGE7bysrKUxvLmZyb21CdWZmZXJBdHRyaWJ1dGUodCxvKSxpPU1hdGgubWF4KGksbi5kaXN0YW5jZVRvU3F1YXJlZChMbykpO2lmKHIpZm9yKGxldCBvPTAsYT1yLmxlbmd0aDtvPGE7bysrKXtsZXQgcz1yW29dLGw9dGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZTtmb3IobGV0IGM9MCx1PXMuY291bnQ7Yzx1O2MrKylMby5mcm9tQnVmZmVyQXR0cmlidXRlKHMsYyksbCYmKEMzLmZyb21CdWZmZXJBdHRyaWJ1dGUodCxjKSxMby5hZGQoQzMpKSxpPU1hdGgubWF4KGksbi5kaXN0YW5jZVRvU3F1YXJlZChMbykpfXRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzPU1hdGguc3FydChpKSxpc05hTih0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cykmJmNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpOiBDb21wdXRlZCByYWRpdXMgaXMgTmFOLiBUaGUgInBvc2l0aW9uIiBhdHRyaWJ1dGUgaXMgbGlrZWx5IHRvIGhhdmUgTmFOIHZhbHVlcy4nLHRoaXMpfX1jb21wdXRlVGFuZ2VudHMoKXtsZXQgdD10aGlzLmluZGV4LHI9dGhpcy5hdHRyaWJ1dGVzO2lmKHQ9PT1udWxsfHxyLnBvc2l0aW9uPT09dm9pZCAwfHxyLm5vcm1hbD09PXZvaWQgMHx8ci51dj09PXZvaWQgMCl7Y29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5jb21wdXRlVGFuZ2VudHMoKSBmYWlsZWQuIE1pc3NpbmcgcmVxdWlyZWQgYXR0cmlidXRlcyAoaW5kZXgsIHBvc2l0aW9uLCBub3JtYWwgb3IgdXYpIik7cmV0dXJufWxldCBuPXQuYXJyYXksaT1yLnBvc2l0aW9uLmFycmF5LG89ci5ub3JtYWwuYXJyYXksYT1yLnV2LmFycmF5LHM9aS5sZW5ndGgvMztyLnRhbmdlbnQ9PT12b2lkIDAmJnRoaXMuc2V0QXR0cmlidXRlKCJ0YW5nZW50IixuZXcgSmUobmV3IEZsb2F0MzJBcnJheSg0KnMpLDQpKTtsZXQgbD1yLnRhbmdlbnQuYXJyYXksYz1bXSx1PVtdO2ZvcihsZXQgQj0wO0I8cztCKyspY1tCXT1uZXcgaix1W0JdPW5ldyBqO2xldCBoPW5ldyBqLGY9bmV3IGoscD1uZXcgaixkPW5ldyBMdCxnPW5ldyBMdCxfPW5ldyBMdCx5PW5ldyBqLHg9bmV3IGo7ZnVuY3Rpb24gYihCLEksTCl7aC5mcm9tQXJyYXkoaSxCKjMpLGYuZnJvbUFycmF5KGksSSozKSxwLmZyb21BcnJheShpLEwqMyksZC5mcm9tQXJyYXkoYSxCKjIpLGcuZnJvbUFycmF5KGEsSSoyKSxfLmZyb21BcnJheShhLEwqMiksZi5zdWIoaCkscC5zdWIoaCksZy5zdWIoZCksXy5zdWIoZCk7bGV0IFI9MS8oZy54Kl8ueS1fLngqZy55KTshaXNGaW5pdGUoUil8fCh5LmNvcHkoZikubXVsdGlwbHlTY2FsYXIoXy55KS5hZGRTY2FsZWRWZWN0b3IocCwtZy55KS5tdWx0aXBseVNjYWxhcihSKSx4LmNvcHkocCkubXVsdGlwbHlTY2FsYXIoZy54KS5hZGRTY2FsZWRWZWN0b3IoZiwtXy54KS5tdWx0aXBseVNjYWxhcihSKSxjW0JdLmFkZCh5KSxjW0ldLmFkZCh5KSxjW0xdLmFkZCh5KSx1W0JdLmFkZCh4KSx1W0ldLmFkZCh4KSx1W0xdLmFkZCh4KSl9bGV0IFM9dGhpcy5ncm91cHM7Uy5sZW5ndGg9PT0wJiYoUz1be3N0YXJ0OjAsY291bnQ6bi5sZW5ndGh9XSk7Zm9yKGxldCBCPTAsST1TLmxlbmd0aDtCPEk7KytCKXtsZXQgTD1TW0JdLFI9TC5zdGFydCxGPUwuY291bnQ7Zm9yKGxldCB6PVIsVT1SK0Y7ejxVO3orPTMpYihuW3orMF0sblt6KzFdLG5beisyXSl9bGV0IEM9bmV3IGosUD1uZXcgaixrPW5ldyBqLE89bmV3IGo7ZnVuY3Rpb24gRChCKXtrLmZyb21BcnJheShvLEIqMyksTy5jb3B5KGspO2xldCBJPWNbQl07Qy5jb3B5KEkpLEMuc3ViKGsubXVsdGlwbHlTY2FsYXIoay5kb3QoSSkpKS5ub3JtYWxpemUoKSxQLmNyb3NzVmVjdG9ycyhPLEkpO2xldCBSPVAuZG90KHVbQl0pPDA/LTE6MTtsW0IqNF09Qy54LGxbQio0KzFdPUMueSxsW0IqNCsyXT1DLnosbFtCKjQrM109Un1mb3IobGV0IEI9MCxJPVMubGVuZ3RoO0I8STsrK0Ipe2xldCBMPVNbQl0sUj1MLnN0YXJ0LEY9TC5jb3VudDtmb3IobGV0IHo9UixVPVIrRjt6PFU7eis9MylEKG5beiswXSksRChuW3orMV0pLEQoblt6KzJdKX19Y29tcHV0ZVZlcnRleE5vcm1hbHMoKXtsZXQgdD10aGlzLmluZGV4LHI9dGhpcy5nZXRBdHRyaWJ1dGUoInBvc2l0aW9uIik7aWYociE9PXZvaWQgMCl7bGV0IG49dGhpcy5nZXRBdHRyaWJ1dGUoIm5vcm1hbCIpO2lmKG49PT12b2lkIDApbj1uZXcgSmUobmV3IEZsb2F0MzJBcnJheShyLmNvdW50KjMpLDMpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG4pO2Vsc2UgZm9yKGxldCBmPTAscD1uLmNvdW50O2Y8cDtmKyspbi5zZXRYWVooZiwwLDAsMCk7bGV0IGk9bmV3IGosbz1uZXcgaixhPW5ldyBqLHM9bmV3IGosbD1uZXcgaixjPW5ldyBqLHU9bmV3IGosaD1uZXcgajtpZih0KWZvcihsZXQgZj0wLHA9dC5jb3VudDtmPHA7Zis9Myl7bGV0IGQ9dC5nZXRYKGYrMCksZz10LmdldFgoZisxKSxfPXQuZ2V0WChmKzIpO2kuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLGQpLG8uZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLGcpLGEuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLF8pLHUuc3ViVmVjdG9ycyhhLG8pLGguc3ViVmVjdG9ycyhpLG8pLHUuY3Jvc3MoaCkscy5mcm9tQnVmZmVyQXR0cmlidXRlKG4sZCksbC5mcm9tQnVmZmVyQXR0cmlidXRlKG4sZyksYy5mcm9tQnVmZmVyQXR0cmlidXRlKG4sXykscy5hZGQodSksbC5hZGQodSksYy5hZGQodSksbi5zZXRYWVooZCxzLngscy55LHMueiksbi5zZXRYWVooZyxsLngsbC55LGwueiksbi5zZXRYWVooXyxjLngsYy55LGMueil9ZWxzZSBmb3IobGV0IGY9MCxwPXIuY291bnQ7ZjxwO2YrPTMpaS5mcm9tQnVmZmVyQXR0cmlidXRlKHIsZiswKSxvLmZyb21CdWZmZXJBdHRyaWJ1dGUocixmKzEpLGEuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLGYrMiksdS5zdWJWZWN0b3JzKGEsbyksaC5zdWJWZWN0b3JzKGksbyksdS5jcm9zcyhoKSxuLnNldFhZWihmKzAsdS54LHUueSx1LnopLG4uc2V0WFlaKGYrMSx1LngsdS55LHUueiksbi5zZXRYWVooZisyLHUueCx1LnksdS56KTt0aGlzLm5vcm1hbGl6ZU5vcm1hbHMoKSxuLm5lZWRzVXBkYXRlPSEwfX1tZXJnZSh0LHIpe2lmKCEodCYmdC5pc0J1ZmZlckdlb21ldHJ5KSl7Y29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyR2VvbWV0cnkubWVyZ2UoKTogZ2VvbWV0cnkgbm90IGFuIGluc3RhbmNlIG9mIFRIUkVFLkJ1ZmZlckdlb21ldHJ5LiIsdCk7cmV0dXJufXI9PT12b2lkIDAmJihyPTAsY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeS5tZXJnZSgpOiBPdmVyd3JpdGluZyBvcmlnaW5hbCBnZW9tZXRyeSwgc3RhcnRpbmcgYXQgb2Zmc2V0PTAuIFVzZSBCdWZmZXJHZW9tZXRyeVV0aWxzLm1lcmdlQnVmZmVyR2VvbWV0cmllcygpIGZvciBsb3NzbGVzcyBtZXJnZS4iKSk7bGV0IG49dGhpcy5hdHRyaWJ1dGVzO2ZvcihsZXQgaSBpbiBuKXtpZih0LmF0dHJpYnV0ZXNbaV09PT12b2lkIDApY29udGludWU7bGV0IGE9bltpXS5hcnJheSxzPXQuYXR0cmlidXRlc1tpXSxsPXMuYXJyYXksYz1zLml0ZW1TaXplKnIsdT1NYXRoLm1pbihsLmxlbmd0aCxhLmxlbmd0aC1jKTtmb3IobGV0IGg9MCxmPWM7aDx1O2grKyxmKyspYVtmXT1sW2hdfXJldHVybiB0aGlzfW5vcm1hbGl6ZU5vcm1hbHMoKXtsZXQgdD10aGlzLmF0dHJpYnV0ZXMubm9ybWFsO2ZvcihsZXQgcj0wLG49dC5jb3VudDtyPG47cisrKUxvLmZyb21CdWZmZXJBdHRyaWJ1dGUodCxyKSxMby5ub3JtYWxpemUoKSx0LnNldFhZWihyLExvLngsTG8ueSxMby56KX10b05vbkluZGV4ZWQoKXtmdW5jdGlvbiB0KHMsbCl7bGV0IGM9cy5hcnJheSx1PXMuaXRlbVNpemUsaD1zLm5vcm1hbGl6ZWQsZj1uZXcgYy5jb25zdHJ1Y3RvcihsLmxlbmd0aCp1KSxwPTAsZD0wO2ZvcihsZXQgZz0wLF89bC5sZW5ndGg7ZzxfO2crKyl7cy5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlP3A9bFtnXSpzLmRhdGEuc3RyaWRlK3Mub2Zmc2V0OnA9bFtnXSp1O2ZvcihsZXQgeT0wO3k8dTt5KyspZltkKytdPWNbcCsrXX1yZXR1cm4gbmV3IEplKGYsdSxoKX1pZih0aGlzLmluZGV4PT09bnVsbClyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeS50b05vbkluZGV4ZWQoKTogQnVmZmVyR2VvbWV0cnkgaXMgYWxyZWFkeSBub24taW5kZXhlZC4iKSx0aGlzO2xldCByPW5ldyBQZSxuPXRoaXMuaW5kZXguYXJyYXksaT10aGlzLmF0dHJpYnV0ZXM7Zm9yKGxldCBzIGluIGkpe2xldCBsPWlbc10sYz10KGwsbik7ci5zZXRBdHRyaWJ1dGUocyxjKX1sZXQgbz10aGlzLm1vcnBoQXR0cmlidXRlcztmb3IobGV0IHMgaW4gbyl7bGV0IGw9W10sYz1vW3NdO2ZvcihsZXQgdT0wLGg9Yy5sZW5ndGg7dTxoO3UrKyl7bGV0IGY9Y1t1XSxwPXQoZixuKTtsLnB1c2gocCl9ci5tb3JwaEF0dHJpYnV0ZXNbc109bH1yLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPXRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU7bGV0IGE9dGhpcy5ncm91cHM7Zm9yKGxldCBzPTAsbD1hLmxlbmd0aDtzPGw7cysrKXtsZXQgYz1hW3NdO3IuYWRkR3JvdXAoYy5zdGFydCxjLmNvdW50LGMubWF0ZXJpYWxJbmRleCl9cmV0dXJuIHJ9dG9KU09OKCl7bGV0IHQ9e21ldGFkYXRhOnt2ZXJzaW9uOjQuNSx0eXBlOiJCdWZmZXJHZW9tZXRyeSIsZ2VuZXJhdG9yOiJCdWZmZXJHZW9tZXRyeS50b0pTT04ifX07aWYodC51dWlkPXRoaXMudXVpZCx0LnR5cGU9dGhpcy50eXBlLHRoaXMubmFtZSE9PSIiJiYodC5uYW1lPXRoaXMubmFtZSksT2JqZWN0LmtleXModGhpcy51c2VyRGF0YSkubGVuZ3RoPjAmJih0LnVzZXJEYXRhPXRoaXMudXNlckRhdGEpLHRoaXMucGFyYW1ldGVycyE9PXZvaWQgMCl7bGV0IGw9dGhpcy5wYXJhbWV0ZXJzO2ZvcihsZXQgYyBpbiBsKWxbY10hPT12b2lkIDAmJih0W2NdPWxbY10pO3JldHVybiB0fXQuZGF0YT17YXR0cmlidXRlczp7fX07bGV0IHI9dGhpcy5pbmRleDtyIT09bnVsbCYmKHQuZGF0YS5pbmRleD17dHlwZTpyLmFycmF5LmNvbnN0cnVjdG9yLm5hbWUsYXJyYXk6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoci5hcnJheSl9KTtsZXQgbj10aGlzLmF0dHJpYnV0ZXM7Zm9yKGxldCBsIGluIG4pe2xldCBjPW5bbF07dC5kYXRhLmF0dHJpYnV0ZXNbbF09Yy50b0pTT04odC5kYXRhKX1sZXQgaT17fSxvPSExO2ZvcihsZXQgbCBpbiB0aGlzLm1vcnBoQXR0cmlidXRlcyl7bGV0IGM9dGhpcy5tb3JwaEF0dHJpYnV0ZXNbbF0sdT1bXTtmb3IobGV0IGg9MCxmPWMubGVuZ3RoO2g8ZjtoKyspe2xldCBwPWNbaF07dS5wdXNoKHAudG9KU09OKHQuZGF0YSkpfXUubGVuZ3RoPjAmJihpW2xdPXUsbz0hMCl9byYmKHQuZGF0YS5tb3JwaEF0dHJpYnV0ZXM9aSx0LmRhdGEubW9ycGhUYXJnZXRzUmVsYXRpdmU9dGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZSk7bGV0IGE9dGhpcy5ncm91cHM7YS5sZW5ndGg+MCYmKHQuZGF0YS5ncm91cHM9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhKSkpO2xldCBzPXRoaXMuYm91bmRpbmdTcGhlcmU7cmV0dXJuIHMhPT1udWxsJiYodC5kYXRhLmJvdW5kaW5nU3BoZXJlPXtjZW50ZXI6cy5jZW50ZXIudG9BcnJheSgpLHJhZGl1czpzLnJhZGl1c30pLHR9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IoKS5jb3B5KHRoaXMpfWNvcHkodCl7dGhpcy5pbmRleD1udWxsLHRoaXMuYXR0cmlidXRlcz17fSx0aGlzLm1vcnBoQXR0cmlidXRlcz17fSx0aGlzLmdyb3Vwcz1bXSx0aGlzLmJvdW5kaW5nQm94PW51bGwsdGhpcy5ib3VuZGluZ1NwaGVyZT1udWxsO2xldCByPXt9O3RoaXMubmFtZT10Lm5hbWU7bGV0IG49dC5pbmRleDtuIT09bnVsbCYmdGhpcy5zZXRJbmRleChuLmNsb25lKHIpKTtsZXQgaT10LmF0dHJpYnV0ZXM7Zm9yKGxldCBjIGluIGkpe2xldCB1PWlbY107dGhpcy5zZXRBdHRyaWJ1dGUoYyx1LmNsb25lKHIpKX1sZXQgbz10Lm1vcnBoQXR0cmlidXRlcztmb3IobGV0IGMgaW4gbyl7bGV0IHU9W10saD1vW2NdO2ZvcihsZXQgZj0wLHA9aC5sZW5ndGg7ZjxwO2YrKyl1LnB1c2goaFtmXS5jbG9uZShyKSk7dGhpcy5tb3JwaEF0dHJpYnV0ZXNbY109dX10aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPXQubW9ycGhUYXJnZXRzUmVsYXRpdmU7bGV0IGE9dC5ncm91cHM7Zm9yKGxldCBjPTAsdT1hLmxlbmd0aDtjPHU7YysrKXtsZXQgaD1hW2NdO3RoaXMuYWRkR3JvdXAoaC5zdGFydCxoLmNvdW50LGgubWF0ZXJpYWxJbmRleCl9bGV0IHM9dC5ib3VuZGluZ0JveDtzIT09bnVsbCYmKHRoaXMuYm91bmRpbmdCb3g9cy5jbG9uZSgpKTtsZXQgbD10LmJvdW5kaW5nU3BoZXJlO3JldHVybiBsIT09bnVsbCYmKHRoaXMuYm91bmRpbmdTcGhlcmU9bC5jbG9uZSgpKSx0aGlzLmRyYXdSYW5nZS5zdGFydD10LmRyYXdSYW5nZS5zdGFydCx0aGlzLmRyYXdSYW5nZS5jb3VudD10LmRyYXdSYW5nZS5jb3VudCx0aGlzLnVzZXJEYXRhPXQudXNlckRhdGEsdC5wYXJhbWV0ZXJzIT09dm9pZCAwJiYodGhpcy5wYXJhbWV0ZXJzPU9iamVjdC5hc3NpZ24oe30sdC5wYXJhbWV0ZXJzKSksdGhpc31kaXNwb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNwb3NlIn0pfX07UGUucHJvdG90eXBlLmlzQnVmZmVyR2VvbWV0cnk9ITA7dmFyIEF1ZT1uZXcgTWUsQTM9bmV3IFFmLG91dD1uZXcgSmYsTjA9bmV3IGosRDA9bmV3IGosTzA9bmV3IGosYXV0PW5ldyBqLHN1dD1uZXcgaixsdXQ9bmV3IGoseFY9bmV3IGosYlY9bmV3IGosd1Y9bmV3IGosU1Y9bmV3IEx0LE1WPW5ldyBMdCxFVj1uZXcgTHQsY3V0PW5ldyBqLFRWPW5ldyBqLHRpPWNsYXNzIGV4dGVuZHMgb3J7Y29uc3RydWN0b3IodD1uZXcgUGUscj1uZXcgc2gpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoIix0aGlzLmdlb21ldHJ5PXQsdGhpcy5tYXRlcmlhbD1yLHRoaXMudXBkYXRlTW9ycGhUYXJnZXRzKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0Lm1vcnBoVGFyZ2V0SW5mbHVlbmNlcyE9PXZvaWQgMCYmKHRoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzPXQubW9ycGhUYXJnZXRJbmZsdWVuY2VzLnNsaWNlKCkpLHQubW9ycGhUYXJnZXREaWN0aW9uYXJ5IT09dm9pZCAwJiYodGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnk9T2JqZWN0LmFzc2lnbih7fSx0Lm1vcnBoVGFyZ2V0RGljdGlvbmFyeSkpLHRoaXMubWF0ZXJpYWw9dC5tYXRlcmlhbCx0aGlzLmdlb21ldHJ5PXQuZ2VvbWV0cnksdGhpc311cGRhdGVNb3JwaFRhcmdldHMoKXtsZXQgdD10aGlzLmdlb21ldHJ5O2lmKHQuaXNCdWZmZXJHZW9tZXRyeSl7bGV0IHI9dC5tb3JwaEF0dHJpYnV0ZXMsbj1PYmplY3Qua2V5cyhyKTtpZihuLmxlbmd0aD4wKXtsZXQgaT1yW25bMF1dO2lmKGkhPT12b2lkIDApe3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzPVtdLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5PXt9O2ZvcihsZXQgbz0wLGE9aS5sZW5ndGg7bzxhO28rKyl7bGV0IHM9aVtvXS5uYW1lfHxTdHJpbmcobyk7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXMucHVzaCgwKSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeVtzXT1vfX19fWVsc2V7bGV0IHI9dC5tb3JwaFRhcmdldHM7ciE9PXZvaWQgMCYmci5sZW5ndGg+MCYmY29uc29sZS5lcnJvcigiVEhSRUUuTWVzaC51cGRhdGVNb3JwaFRhcmdldHMoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfX1yYXljYXN0KHQscil7bGV0IG49dGhpcy5nZW9tZXRyeSxpPXRoaXMubWF0ZXJpYWwsbz10aGlzLm1hdHJpeFdvcmxkO2lmKGk9PT12b2lkIDB8fChuLmJvdW5kaW5nU3BoZXJlPT09bnVsbCYmbi5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxvdXQuY29weShuLmJvdW5kaW5nU3BoZXJlKSxvdXQuYXBwbHlNYXRyaXg0KG8pLHQucmF5LmludGVyc2VjdHNTcGhlcmUob3V0KT09PSExKXx8KEF1ZS5jb3B5KG8pLmludmVydCgpLEEzLmNvcHkodC5yYXkpLmFwcGx5TWF0cml4NChBdWUpLG4uYm91bmRpbmdCb3ghPT1udWxsJiZBMy5pbnRlcnNlY3RzQm94KG4uYm91bmRpbmdCb3gpPT09ITEpKXJldHVybjtsZXQgYTtpZihuLmlzQnVmZmVyR2VvbWV0cnkpe2xldCBzPW4uaW5kZXgsbD1uLmF0dHJpYnV0ZXMucG9zaXRpb24sYz1uLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbix1PW4ubW9ycGhUYXJnZXRzUmVsYXRpdmUsaD1uLmF0dHJpYnV0ZXMudXYsZj1uLmF0dHJpYnV0ZXMudXYyLHA9bi5ncm91cHMsZD1uLmRyYXdSYW5nZTtpZihzIT09bnVsbClpZihBcnJheS5pc0FycmF5KGkpKWZvcihsZXQgZz0wLF89cC5sZW5ndGg7ZzxfO2crKyl7bGV0IHk9cFtnXSx4PWlbeS5tYXRlcmlhbEluZGV4XSxiPU1hdGgubWF4KHkuc3RhcnQsZC5zdGFydCksUz1NYXRoLm1pbihzLmNvdW50LE1hdGgubWluKHkuc3RhcnQreS5jb3VudCxkLnN0YXJ0K2QuY291bnQpKTtmb3IobGV0IEM9YixQPVM7QzxQO0MrPTMpe2xldCBrPXMuZ2V0WChDKSxPPXMuZ2V0WChDKzEpLEQ9cy5nZXRYKEMrMik7YT1DVih0aGlzLHgsdCxBMyxsLGMsdSxoLGYsayxPLEQpLGEmJihhLmZhY2VJbmRleD1NYXRoLmZsb29yKEMvMyksYS5mYWNlLm1hdGVyaWFsSW5kZXg9eS5tYXRlcmlhbEluZGV4LHIucHVzaChhKSl9fWVsc2V7bGV0IGc9TWF0aC5tYXgoMCxkLnN0YXJ0KSxfPU1hdGgubWluKHMuY291bnQsZC5zdGFydCtkLmNvdW50KTtmb3IobGV0IHk9Zyx4PV87eTx4O3krPTMpe2xldCBiPXMuZ2V0WCh5KSxTPXMuZ2V0WCh5KzEpLEM9cy5nZXRYKHkrMik7YT1DVih0aGlzLGksdCxBMyxsLGMsdSxoLGYsYixTLEMpLGEmJihhLmZhY2VJbmRleD1NYXRoLmZsb29yKHkvMyksci5wdXNoKGEpKX19ZWxzZSBpZihsIT09dm9pZCAwKWlmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBnPTAsXz1wLmxlbmd0aDtnPF87ZysrKXtsZXQgeT1wW2ddLHg9aVt5Lm1hdGVyaWFsSW5kZXhdLGI9TWF0aC5tYXgoeS5zdGFydCxkLnN0YXJ0KSxTPU1hdGgubWluKGwuY291bnQsTWF0aC5taW4oeS5zdGFydCt5LmNvdW50LGQuc3RhcnQrZC5jb3VudCkpO2ZvcihsZXQgQz1iLFA9UztDPFA7Qys9Myl7bGV0IGs9QyxPPUMrMSxEPUMrMjthPUNWKHRoaXMseCx0LEEzLGwsYyx1LGgsZixrLE8sRCksYSYmKGEuZmFjZUluZGV4PU1hdGguZmxvb3IoQy8zKSxhLmZhY2UubWF0ZXJpYWxJbmRleD15Lm1hdGVyaWFsSW5kZXgsci5wdXNoKGEpKX19ZWxzZXtsZXQgZz1NYXRoLm1heCgwLGQuc3RhcnQpLF89TWF0aC5taW4obC5jb3VudCxkLnN0YXJ0K2QuY291bnQpO2ZvcihsZXQgeT1nLHg9Xzt5PHg7eSs9Myl7bGV0IGI9eSxTPXkrMSxDPXkrMjthPUNWKHRoaXMsaSx0LEEzLGwsYyx1LGgsZixiLFMsQyksYSYmKGEuZmFjZUluZGV4PU1hdGguZmxvb3IoeS8zKSxyLnB1c2goYSkpfX19ZWxzZSBuLmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLk1lc2gucmF5Y2FzdCgpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9fTt0aS5wcm90b3R5cGUuaXNNZXNoPSEwO2Z1bmN0aW9uIGdmcihlLHQscixuLGksbyxhLHMpe2xldCBsO2lmKHQuc2lkZT09PUlpP2w9bi5pbnRlcnNlY3RUcmlhbmdsZShhLG8saSwhMCxzKTpsPW4uaW50ZXJzZWN0VHJpYW5nbGUoaSxvLGEsdC5zaWRlIT09azEscyksbD09PW51bGwpcmV0dXJuIG51bGw7VFYuY29weShzKSxUVi5hcHBseU1hdHJpeDQoZS5tYXRyaXhXb3JsZCk7bGV0IGM9ci5yYXkub3JpZ2luLmRpc3RhbmNlVG8oVFYpO3JldHVybiBjPHIubmVhcnx8Yz5yLmZhcj9udWxsOntkaXN0YW5jZTpjLHBvaW50OlRWLmNsb25lKCksb2JqZWN0OmV9fWZ1bmN0aW9uIENWKGUsdCxyLG4saSxvLGEscyxsLGMsdSxoKXtOMC5mcm9tQnVmZmVyQXR0cmlidXRlKGksYyksRDAuZnJvbUJ1ZmZlckF0dHJpYnV0ZShpLHUpLE8wLmZyb21CdWZmZXJBdHRyaWJ1dGUoaSxoKTtsZXQgZj1lLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcztpZihvJiZmKXt4Vi5zZXQoMCwwLDApLGJWLnNldCgwLDAsMCksd1Yuc2V0KDAsMCwwKTtmb3IobGV0IGQ9MCxnPW8ubGVuZ3RoO2Q8ZztkKyspe2xldCBfPWZbZF0seT1vW2RdO18hPT0wJiYoYXV0LmZyb21CdWZmZXJBdHRyaWJ1dGUoeSxjKSxzdXQuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh5LHUpLGx1dC5mcm9tQnVmZmVyQXR0cmlidXRlKHksaCksYT8oeFYuYWRkU2NhbGVkVmVjdG9yKGF1dCxfKSxiVi5hZGRTY2FsZWRWZWN0b3Ioc3V0LF8pLHdWLmFkZFNjYWxlZFZlY3RvcihsdXQsXykpOih4Vi5hZGRTY2FsZWRWZWN0b3IoYXV0LnN1YihOMCksXyksYlYuYWRkU2NhbGVkVmVjdG9yKHN1dC5zdWIoRDApLF8pLHdWLmFkZFNjYWxlZFZlY3RvcihsdXQuc3ViKE8wKSxfKSkpfU4wLmFkZCh4ViksRDAuYWRkKGJWKSxPMC5hZGQod1YpfWUuaXNTa2lubmVkTWVzaCYmKGUuYm9uZVRyYW5zZm9ybShjLE4wKSxlLmJvbmVUcmFuc2Zvcm0odSxEMCksZS5ib25lVHJhbnNmb3JtKGgsTzApKTtsZXQgcD1nZnIoZSx0LHIsbixOMCxEMCxPMCxjdXQpO2lmKHApe3MmJihTVi5mcm9tQnVmZmVyQXR0cmlidXRlKHMsYyksTVYuZnJvbUJ1ZmZlckF0dHJpYnV0ZShzLHUpLEVWLmZyb21CdWZmZXJBdHRyaWJ1dGUocyxoKSxwLnV2PW9pLmdldFVWKGN1dCxOMCxEMCxPMCxTVixNVixFVixuZXcgTHQpKSxsJiYoU1YuZnJvbUJ1ZmZlckF0dHJpYnV0ZShsLGMpLE1WLmZyb21CdWZmZXJBdHRyaWJ1dGUobCx1KSxFVi5mcm9tQnVmZmVyQXR0cmlidXRlKGwsaCkscC51djI9b2kuZ2V0VVYoY3V0LE4wLEQwLE8wLFNWLE1WLEVWLG5ldyBMdCkpO2xldCBkPXthOmMsYjp1LGM6aCxub3JtYWw6bmV3IGosbWF0ZXJpYWxJbmRleDowfTtvaS5nZXROb3JtYWwoTjAsRDAsTzAsZC5ub3JtYWwpLHAuZmFjZT1kfXJldHVybiBwfXZhciB0cD1jbGFzcyBleHRlbmRzIFBle2NvbnN0cnVjdG9yKHQ9MSxyPTEsbj0xLGk9MSxvPTEsYT0xKXtzdXBlcigpLHRoaXMudHlwZT0iQm94R2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17d2lkdGg6dCxoZWlnaHQ6cixkZXB0aDpuLHdpZHRoU2VnbWVudHM6aSxoZWlnaHRTZWdtZW50czpvLGRlcHRoU2VnbWVudHM6YX07bGV0IHM9dGhpcztpPU1hdGguZmxvb3IoaSksbz1NYXRoLmZsb29yKG8pLGE9TWF0aC5mbG9vcihhKTtsZXQgbD1bXSxjPVtdLHU9W10saD1bXSxmPTAscD0wO2QoInoiLCJ5IiwieCIsLTEsLTEsbixyLHQsYSxvLDApLGQoInoiLCJ5IiwieCIsMSwtMSxuLHIsLXQsYSxvLDEpLGQoIngiLCJ6IiwieSIsMSwxLHQsbixyLGksYSwyKSxkKCJ4IiwieiIsInkiLDEsLTEsdCxuLC1yLGksYSwzKSxkKCJ4IiwieSIsInoiLDEsLTEsdCxyLG4saSxvLDQpLGQoIngiLCJ5IiwieiIsLTEsLTEsdCxyLC1uLGksbyw1KSx0aGlzLnNldEluZGV4KGwpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IHhlKGMsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyB4ZSh1LDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyB4ZShoLDIpKTtmdW5jdGlvbiBkKGcsXyx5LHgsYixTLEMsUCxrLE8sRCl7bGV0IEI9Uy9rLEk9Qy9PLEw9Uy8yLFI9Qy8yLEY9UC8yLHo9aysxLFU9TysxLFc9MCxaPTAscnQ9bmV3IGo7Zm9yKGxldCBvdD0wO290PFU7b3QrKyl7bGV0IHN0PW90KkktUjtmb3IobGV0IFN0PTA7U3Q8ejtTdCsrKXtsZXQgYnQ9U3QqQi1MO3J0W2ddPWJ0KngscnRbX109c3QqYixydFt5XT1GLGMucHVzaChydC54LHJ0LnkscnQueikscnRbZ109MCxydFtfXT0wLHJ0W3ldPVA+MD8xOi0xLHUucHVzaChydC54LHJ0LnkscnQueiksaC5wdXNoKFN0L2spLGgucHVzaCgxLW90L08pLFcrPTF9fWZvcihsZXQgb3Q9MDtvdDxPO290KyspZm9yKGxldCBzdD0wO3N0PGs7c3QrKyl7bGV0IFN0PWYrc3QreipvdCxidD1mK3N0K3oqKG90KzEpLE10PWYrKHN0KzEpK3oqKG90KzEpLGx0PWYrKHN0KzEpK3oqb3Q7bC5wdXNoKFN0LGJ0LGx0KSxsLnB1c2goYnQsTXQsbHQpLForPTZ9cy5hZGRHcm91cChwLFosRCkscCs9WixmKz1XfX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyB0cCh0LndpZHRoLHQuaGVpZ2h0LHQuZGVwdGgsdC53aWR0aFNlZ21lbnRzLHQuaGVpZ2h0U2VnbWVudHMsdC5kZXB0aFNlZ21lbnRzKX19O2Z1bmN0aW9uIFozKGUpe2xldCB0PXt9O2ZvcihsZXQgciBpbiBlKXt0W3JdPXt9O2ZvcihsZXQgbiBpbiBlW3JdKXtsZXQgaT1lW3JdW25dO2kmJihpLmlzQ29sb3J8fGkuaXNNYXRyaXgzfHxpLmlzTWF0cml4NHx8aS5pc1ZlY3RvcjJ8fGkuaXNWZWN0b3IzfHxpLmlzVmVjdG9yNHx8aS5pc1RleHR1cmV8fGkuaXNRdWF0ZXJuaW9uKT90W3JdW25dPWkuY2xvbmUoKTpBcnJheS5pc0FycmF5KGkpP3Rbcl1bbl09aS5zbGljZSgpOnRbcl1bbl09aX19cmV0dXJuIHR9ZnVuY3Rpb24gQ2EoZSl7bGV0IHQ9e307Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspe2xldCBuPVozKGVbcl0pO2ZvcihsZXQgaSBpbiBuKXRbaV09bltpXX1yZXR1cm4gdH12YXIgVmZlPXtjbG9uZTpaMyxtZXJnZTpDYX0sX2ZyPWB2b2lkIG1haW4oKSB7CglnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KCBwb3NpdGlvbiwgMS4wICk7Cn1gLHlmcj1gdm9pZCBtYWluKCkgewoJZ2xfRnJhZ0NvbG9yID0gdmVjNCggMS4wLCAwLjAsIDAuMCwgMS4wICk7Cn1gLGxoPWNsYXNzIGV4dGVuZHMgcWl7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNoYWRlck1hdGVyaWFsIix0aGlzLmRlZmluZXM9e30sdGhpcy51bmlmb3Jtcz17fSx0aGlzLnZlcnRleFNoYWRlcj1fZnIsdGhpcy5mcmFnbWVudFNoYWRlcj15ZnIsdGhpcy5saW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMuZm9nPSExLHRoaXMubGlnaHRzPSExLHRoaXMuY2xpcHBpbmc9ITEsdGhpcy5leHRlbnNpb25zPXtkZXJpdmF0aXZlczohMSxmcmFnRGVwdGg6ITEsZHJhd0J1ZmZlcnM6ITEsc2hhZGVyVGV4dHVyZUxPRDohMX0sdGhpcy5kZWZhdWx0QXR0cmlidXRlVmFsdWVzPXtjb2xvcjpbMSwxLDFdLHV2OlswLDBdLHV2MjpbMCwwXX0sdGhpcy5pbmRleDBBdHRyaWJ1dGVOYW1lPXZvaWQgMCx0aGlzLnVuaWZvcm1zTmVlZFVwZGF0ZT0hMSx0aGlzLmdsc2xWZXJzaW9uPW51bGwsdCE9PXZvaWQgMCYmKHQuYXR0cmlidXRlcyE9PXZvaWQgMCYmY29uc29sZS5lcnJvcigiVEhSRUUuU2hhZGVyTWF0ZXJpYWw6IGF0dHJpYnV0ZXMgc2hvdWxkIG5vdyBiZSBkZWZpbmVkIGluIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIiksdGhpcy5zZXRWYWx1ZXModCkpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5mcmFnbWVudFNoYWRlcj10LmZyYWdtZW50U2hhZGVyLHRoaXMudmVydGV4U2hhZGVyPXQudmVydGV4U2hhZGVyLHRoaXMudW5pZm9ybXM9WjModC51bmlmb3JtcyksdGhpcy5kZWZpbmVzPU9iamVjdC5hc3NpZ24oe30sdC5kZWZpbmVzKSx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLmxpZ2h0cz10LmxpZ2h0cyx0aGlzLmNsaXBwaW5nPXQuY2xpcHBpbmcsdGhpcy5leHRlbnNpb25zPU9iamVjdC5hc3NpZ24oe30sdC5leHRlbnNpb25zKSx0aGlzLmdsc2xWZXJzaW9uPXQuZ2xzbFZlcnNpb24sdGhpc310b0pTT04odCl7bGV0IHI9c3VwZXIudG9KU09OKHQpO3IuZ2xzbFZlcnNpb249dGhpcy5nbHNsVmVyc2lvbixyLnVuaWZvcm1zPXt9O2ZvcihsZXQgaSBpbiB0aGlzLnVuaWZvcm1zKXtsZXQgYT10aGlzLnVuaWZvcm1zW2ldLnZhbHVlO2EmJmEuaXNUZXh0dXJlP3IudW5pZm9ybXNbaV09e3R5cGU6InQiLHZhbHVlOmEudG9KU09OKHQpLnV1aWR9OmEmJmEuaXNDb2xvcj9yLnVuaWZvcm1zW2ldPXt0eXBlOiJjIix2YWx1ZTphLmdldEhleCgpfTphJiZhLmlzVmVjdG9yMj9yLnVuaWZvcm1zW2ldPXt0eXBlOiJ2MiIsdmFsdWU6YS50b0FycmF5KCl9OmEmJmEuaXNWZWN0b3IzP3IudW5pZm9ybXNbaV09e3R5cGU6InYzIix2YWx1ZTphLnRvQXJyYXkoKX06YSYmYS5pc1ZlY3RvcjQ/ci51bmlmb3Jtc1tpXT17dHlwZToidjQiLHZhbHVlOmEudG9BcnJheSgpfTphJiZhLmlzTWF0cml4Mz9yLnVuaWZvcm1zW2ldPXt0eXBlOiJtMyIsdmFsdWU6YS50b0FycmF5KCl9OmEmJmEuaXNNYXRyaXg0P3IudW5pZm9ybXNbaV09e3R5cGU6Im00Iix2YWx1ZTphLnRvQXJyYXkoKX06ci51bmlmb3Jtc1tpXT17dmFsdWU6YX19T2JqZWN0LmtleXModGhpcy5kZWZpbmVzKS5sZW5ndGg+MCYmKHIuZGVmaW5lcz10aGlzLmRlZmluZXMpLHIudmVydGV4U2hhZGVyPXRoaXMudmVydGV4U2hhZGVyLHIuZnJhZ21lbnRTaGFkZXI9dGhpcy5mcmFnbWVudFNoYWRlcjtsZXQgbj17fTtmb3IobGV0IGkgaW4gdGhpcy5leHRlbnNpb25zKXRoaXMuZXh0ZW5zaW9uc1tpXT09PSEwJiYobltpXT0hMCk7cmV0dXJuIE9iamVjdC5rZXlzKG4pLmxlbmd0aD4wJiYoci5leHRlbnNpb25zPW4pLHJ9fTtsaC5wcm90b3R5cGUuaXNTaGFkZXJNYXRlcmlhbD0hMDt2YXIgTjE9Y2xhc3MgZXh0ZW5kcyBvcntjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJDYW1lcmEiLHRoaXMubWF0cml4V29ybGRJbnZlcnNlPW5ldyBNZSx0aGlzLnByb2plY3Rpb25NYXRyaXg9bmV3IE1lLHRoaXMucHJvamVjdGlvbk1hdHJpeEludmVyc2U9bmV3IE1lfWNvcHkodCxyKXtyZXR1cm4gc3VwZXIuY29weSh0LHIpLHRoaXMubWF0cml4V29ybGRJbnZlcnNlLmNvcHkodC5tYXRyaXhXb3JsZEludmVyc2UpLHRoaXMucHJvamVjdGlvbk1hdHJpeC5jb3B5KHQucHJvamVjdGlvbk1hdHJpeCksdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZS5jb3B5KHQucHJvamVjdGlvbk1hdHJpeEludmVyc2UpLHRoaXN9Z2V0V29ybGREaXJlY3Rpb24odCl7dGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSk7bGV0IHI9dGhpcy5tYXRyaXhXb3JsZC5lbGVtZW50cztyZXR1cm4gdC5zZXQoLXJbOF0sLXJbOV0sLXJbMTBdKS5ub3JtYWxpemUoKX11cGRhdGVNYXRyaXhXb3JsZCh0KXtzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KSx0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHRoaXMubWF0cml4V29ybGQpLmludmVydCgpfXVwZGF0ZVdvcmxkTWF0cml4KHQscil7c3VwZXIudXBkYXRlV29ybGRNYXRyaXgodCxyKSx0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHRoaXMubWF0cml4V29ybGQpLmludmVydCgpfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuY29weSh0aGlzKX19O04xLnByb3RvdHlwZS5pc0NhbWVyYT0hMDt2YXIgVWk9Y2xhc3MgZXh0ZW5kcyBOMXtjb25zdHJ1Y3Rvcih0PTUwLHI9MSxuPS4xLGk9MmUzKXtzdXBlcigpLHRoaXMudHlwZT0iUGVyc3BlY3RpdmVDYW1lcmEiLHRoaXMuZm92PXQsdGhpcy56b29tPTEsdGhpcy5uZWFyPW4sdGhpcy5mYXI9aSx0aGlzLmZvY3VzPTEwLHRoaXMuYXNwZWN0PXIsdGhpcy52aWV3PW51bGwsdGhpcy5maWxtR2F1Z2U9MzUsdGhpcy5maWxtT2Zmc2V0PTAsdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y29weSh0LHIpe3JldHVybiBzdXBlci5jb3B5KHQsciksdGhpcy5mb3Y9dC5mb3YsdGhpcy56b29tPXQuem9vbSx0aGlzLm5lYXI9dC5uZWFyLHRoaXMuZmFyPXQuZmFyLHRoaXMuZm9jdXM9dC5mb2N1cyx0aGlzLmFzcGVjdD10LmFzcGVjdCx0aGlzLnZpZXc9dC52aWV3PT09bnVsbD9udWxsOk9iamVjdC5hc3NpZ24oe30sdC52aWV3KSx0aGlzLmZpbG1HYXVnZT10LmZpbG1HYXVnZSx0aGlzLmZpbG1PZmZzZXQ9dC5maWxtT2Zmc2V0LHRoaXN9c2V0Rm9jYWxMZW5ndGgodCl7bGV0IHI9LjUqdGhpcy5nZXRGaWxtSGVpZ2h0KCkvdDt0aGlzLmZvdj1RUCoyKk1hdGguYXRhbihyKSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1nZXRGb2NhbExlbmd0aCgpe2xldCB0PU1hdGgudGFuKEkxKi41KnRoaXMuZm92KTtyZXR1cm4gLjUqdGhpcy5nZXRGaWxtSGVpZ2h0KCkvdH1nZXRFZmZlY3RpdmVGT1YoKXtyZXR1cm4gUVAqMipNYXRoLmF0YW4oTWF0aC50YW4oSTEqLjUqdGhpcy5mb3YpL3RoaXMuem9vbSl9Z2V0RmlsbVdpZHRoKCl7cmV0dXJuIHRoaXMuZmlsbUdhdWdlKk1hdGgubWluKHRoaXMuYXNwZWN0LDEpfWdldEZpbG1IZWlnaHQoKXtyZXR1cm4gdGhpcy5maWxtR2F1Z2UvTWF0aC5tYXgodGhpcy5hc3BlY3QsMSl9c2V0Vmlld09mZnNldCh0LHIsbixpLG8sYSl7dGhpcy5hc3BlY3Q9dC9yLHRoaXMudmlldz09PW51bGwmJih0aGlzLnZpZXc9e2VuYWJsZWQ6ITAsZnVsbFdpZHRoOjEsZnVsbEhlaWdodDoxLG9mZnNldFg6MCxvZmZzZXRZOjAsd2lkdGg6MSxoZWlnaHQ6MX0pLHRoaXMudmlldy5lbmFibGVkPSEwLHRoaXMudmlldy5mdWxsV2lkdGg9dCx0aGlzLnZpZXcuZnVsbEhlaWdodD1yLHRoaXMudmlldy5vZmZzZXRYPW4sdGhpcy52aWV3Lm9mZnNldFk9aSx0aGlzLnZpZXcud2lkdGg9byx0aGlzLnZpZXcuaGVpZ2h0PWEsdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y2xlYXJWaWV3T2Zmc2V0KCl7dGhpcy52aWV3IT09bnVsbCYmKHRoaXMudmlldy5lbmFibGVkPSExKSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX11cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl7bGV0IHQ9dGhpcy5uZWFyLHI9dCpNYXRoLnRhbihJMSouNSp0aGlzLmZvdikvdGhpcy56b29tLG49MipyLGk9dGhpcy5hc3BlY3QqbixvPS0uNSppLGE9dGhpcy52aWV3O2lmKHRoaXMudmlldyE9PW51bGwmJnRoaXMudmlldy5lbmFibGVkKXtsZXQgbD1hLmZ1bGxXaWR0aCxjPWEuZnVsbEhlaWdodDtvKz1hLm9mZnNldFgqaS9sLHItPWEub2Zmc2V0WSpuL2MsaSo9YS53aWR0aC9sLG4qPWEuaGVpZ2h0L2N9bGV0IHM9dGhpcy5maWxtT2Zmc2V0O3MhPT0wJiYobys9dCpzL3RoaXMuZ2V0RmlsbVdpZHRoKCkpLHRoaXMucHJvamVjdGlvbk1hdHJpeC5tYWtlUGVyc3BlY3RpdmUobyxvK2kscixyLW4sdCx0aGlzLmZhciksdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZS5jb3B5KHRoaXMucHJvamVjdGlvbk1hdHJpeCkuaW52ZXJ0KCl9dG9KU09OKHQpe2xldCByPXN1cGVyLnRvSlNPTih0KTtyZXR1cm4gci5vYmplY3QuZm92PXRoaXMuZm92LHIub2JqZWN0Lnpvb209dGhpcy56b29tLHIub2JqZWN0Lm5lYXI9dGhpcy5uZWFyLHIub2JqZWN0LmZhcj10aGlzLmZhcixyLm9iamVjdC5mb2N1cz10aGlzLmZvY3VzLHIub2JqZWN0LmFzcGVjdD10aGlzLmFzcGVjdCx0aGlzLnZpZXchPT1udWxsJiYoci5vYmplY3Qudmlldz1PYmplY3QuYXNzaWduKHt9LHRoaXMudmlldykpLHIub2JqZWN0LmZpbG1HYXVnZT10aGlzLmZpbG1HYXVnZSxyLm9iamVjdC5maWxtT2Zmc2V0PXRoaXMuZmlsbU9mZnNldCxyfX07VWkucHJvdG90eXBlLmlzUGVyc3BlY3RpdmVDYW1lcmE9ITA7dmFyIFAzPTkwLEkzPTEsSjM9Y2xhc3MgZXh0ZW5kcyBvcntjb25zdHJ1Y3Rvcih0LHIsbil7aWYoc3VwZXIoKSx0aGlzLnR5cGU9IkN1YmVDYW1lcmEiLG4uaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQhPT0hMCl7Y29uc29sZS5lcnJvcigiVEhSRUUuQ3ViZUNhbWVyYTogVGhlIGNvbnN0cnVjdG9yIG5vdyBleHBlY3RzIGFuIGluc3RhbmNlIG9mIFdlYkdMQ3ViZVJlbmRlclRhcmdldCBhcyB0aGlyZCBwYXJhbWV0ZXIuIik7cmV0dXJufXRoaXMucmVuZGVyVGFyZ2V0PW47bGV0IGk9bmV3IFVpKFAzLEkzLHQscik7aS5sYXllcnM9dGhpcy5sYXllcnMsaS51cC5zZXQoMCwtMSwwKSxpLmxvb2tBdChuZXcgaigxLDAsMCkpLHRoaXMuYWRkKGkpO2xldCBvPW5ldyBVaShQMyxJMyx0LHIpO28ubGF5ZXJzPXRoaXMubGF5ZXJzLG8udXAuc2V0KDAsLTEsMCksby5sb29rQXQobmV3IGooLTEsMCwwKSksdGhpcy5hZGQobyk7bGV0IGE9bmV3IFVpKFAzLEkzLHQscik7YS5sYXllcnM9dGhpcy5sYXllcnMsYS51cC5zZXQoMCwwLDEpLGEubG9va0F0KG5ldyBqKDAsMSwwKSksdGhpcy5hZGQoYSk7bGV0IHM9bmV3IFVpKFAzLEkzLHQscik7cy5sYXllcnM9dGhpcy5sYXllcnMscy51cC5zZXQoMCwwLC0xKSxzLmxvb2tBdChuZXcgaigwLC0xLDApKSx0aGlzLmFkZChzKTtsZXQgbD1uZXcgVWkoUDMsSTMsdCxyKTtsLmxheWVycz10aGlzLmxheWVycyxsLnVwLnNldCgwLC0xLDApLGwubG9va0F0KG5ldyBqKDAsMCwxKSksdGhpcy5hZGQobCk7bGV0IGM9bmV3IFVpKFAzLEkzLHQscik7Yy5sYXllcnM9dGhpcy5sYXllcnMsYy51cC5zZXQoMCwtMSwwKSxjLmxvb2tBdChuZXcgaigwLDAsLTEpKSx0aGlzLmFkZChjKX11cGRhdGUodCxyKXt0aGlzLnBhcmVudD09PW51bGwmJnRoaXMudXBkYXRlTWF0cml4V29ybGQoKTtsZXQgbj10aGlzLnJlbmRlclRhcmdldCxbaSxvLGEscyxsLGNdPXRoaXMuY2hpbGRyZW4sdT10LnhyLmVuYWJsZWQsaD10LmdldFJlbmRlclRhcmdldCgpO3QueHIuZW5hYmxlZD0hMTtsZXQgZj1uLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzO24udGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9ITEsdC5zZXRSZW5kZXJUYXJnZXQobiwwKSx0LnJlbmRlcihyLGkpLHQuc2V0UmVuZGVyVGFyZ2V0KG4sMSksdC5yZW5kZXIocixvKSx0LnNldFJlbmRlclRhcmdldChuLDIpLHQucmVuZGVyKHIsYSksdC5zZXRSZW5kZXJUYXJnZXQobiwzKSx0LnJlbmRlcihyLHMpLHQuc2V0UmVuZGVyVGFyZ2V0KG4sNCksdC5yZW5kZXIocixsKSxuLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzPWYsdC5zZXRSZW5kZXJUYXJnZXQobiw1KSx0LnJlbmRlcihyLGMpLHQuc2V0UmVuZGVyVGFyZ2V0KGgpLHQueHIuZW5hYmxlZD11LG4udGV4dHVyZS5uZWVkc1BNUkVNVXBkYXRlPSEwfX0sVjA9Y2xhc3MgZXh0ZW5kcyB2aXtjb25zdHJ1Y3Rvcih0LHIsbixpLG8sYSxzLGwsYyx1KXt0PXQhPT12b2lkIDA/dDpbXSxyPXIhPT12b2lkIDA/cjppeCxzdXBlcih0LHIsbixpLG8sYSxzLGwsYyx1KSx0aGlzLmZsaXBZPSExfWdldCBpbWFnZXMoKXtyZXR1cm4gdGhpcy5pbWFnZX1zZXQgaW1hZ2VzKHQpe3RoaXMuaW1hZ2U9dH19O1YwLnByb3RvdHlwZS5pc0N1YmVUZXh0dXJlPSEwO3ZhciBRMz1jbGFzcyBleHRlbmRzIGhze2NvbnN0cnVjdG9yKHQscixuKXtOdW1iZXIuaXNJbnRlZ2VyKHIpJiYoY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTEN1YmVSZW5kZXJUYXJnZXQ6IGNvbnN0cnVjdG9yIHNpZ25hdHVyZSBpcyBub3cgV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KCBzaXplLCBvcHRpb25zICkiKSxyPW4pLHN1cGVyKHQsdCxyKSxyPXJ8fHt9LHRoaXMudGV4dHVyZT1uZXcgVjAodm9pZCAwLHIubWFwcGluZyxyLndyYXBTLHIud3JhcFQsci5tYWdGaWx0ZXIsci5taW5GaWx0ZXIsci5mb3JtYXQsci50eXBlLHIuYW5pc290cm9weSxyLmVuY29kaW5nKSx0aGlzLnRleHR1cmUuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPSEwLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9ci5nZW5lcmF0ZU1pcG1hcHMhPT12b2lkIDA/ci5nZW5lcmF0ZU1pcG1hcHM6ITEsdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj1yLm1pbkZpbHRlciE9PXZvaWQgMD9yLm1pbkZpbHRlcjppaX1mcm9tRXF1aXJlY3Rhbmd1bGFyVGV4dHVyZSh0LHIpe3RoaXMudGV4dHVyZS50eXBlPXIudHlwZSx0aGlzLnRleHR1cmUuZm9ybWF0PVFvLHRoaXMudGV4dHVyZS5lbmNvZGluZz1yLmVuY29kaW5nLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9ci5nZW5lcmF0ZU1pcG1hcHMsdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj1yLm1pbkZpbHRlcix0aGlzLnRleHR1cmUubWFnRmlsdGVyPXIubWFnRmlsdGVyO2xldCBuPXt1bmlmb3Jtczp7dEVxdWlyZWN0Ont2YWx1ZTpudWxsfX0sdmVydGV4U2hhZGVyOmAKCgkJCQl2YXJ5aW5nIHZlYzMgdldvcmxkRGlyZWN0aW9uOwoKCQkJCXZlYzMgdHJhbnNmb3JtRGlyZWN0aW9uKCBpbiB2ZWMzIGRpciwgaW4gbWF0NCBtYXRyaXggKSB7CgoJCQkJCXJldHVybiBub3JtYWxpemUoICggbWF0cml4ICogdmVjNCggZGlyLCAwLjAgKSApLnh5eiApOwoKCQkJCX0KCgkJCQl2b2lkIG1haW4oKSB7CgoJCQkJCXZXb3JsZERpcmVjdGlvbiA9IHRyYW5zZm9ybURpcmVjdGlvbiggcG9zaXRpb24sIG1vZGVsTWF0cml4ICk7CgoJCQkJCSNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+CgkJCQkJI2luY2x1ZGUgPHByb2plY3RfdmVydGV4PgoKCQkJCX0KCQkJYCxmcmFnbWVudFNoYWRlcjpgCgoJCQkJdW5pZm9ybSBzYW1wbGVyMkQgdEVxdWlyZWN0OwoKCQkJCXZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247CgoJCQkJI2luY2x1ZGUgPGNvbW1vbj4KCgkJCQl2b2lkIG1haW4oKSB7CgoJCQkJCXZlYzMgZGlyZWN0aW9uID0gbm9ybWFsaXplKCB2V29ybGREaXJlY3Rpb24gKTsKCgkJCQkJdmVjMiBzYW1wbGVVViA9IGVxdWlyZWN0VXYoIGRpcmVjdGlvbiApOwoKCQkJCQlnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkQoIHRFcXVpcmVjdCwgc2FtcGxlVVYgKTsKCgkJCQl9CgkJCWB9LGk9bmV3IHRwKDUsNSw1KSxvPW5ldyBsaCh7bmFtZToiQ3ViZW1hcEZyb21FcXVpcmVjdCIsdW5pZm9ybXM6WjMobi51bmlmb3JtcyksdmVydGV4U2hhZGVyOm4udmVydGV4U2hhZGVyLGZyYWdtZW50U2hhZGVyOm4uZnJhZ21lbnRTaGFkZXIsc2lkZTpJaSxibGVuZGluZzpLZH0pO28udW5pZm9ybXMudEVxdWlyZWN0LnZhbHVlPXI7bGV0IGE9bmV3IHRpKGksbykscz1yLm1pbkZpbHRlcjtyZXR1cm4gci5taW5GaWx0ZXI9PT1heCYmKHIubWluRmlsdGVyPWlpKSxuZXcgSjMoMSwxMCx0aGlzKS51cGRhdGUodCxhKSxyLm1pbkZpbHRlcj1zLGEuZ2VvbWV0cnkuZGlzcG9zZSgpLGEubWF0ZXJpYWwuZGlzcG9zZSgpLHRoaXN9Y2xlYXIodCxyLG4saSl7bGV0IG89dC5nZXRSZW5kZXJUYXJnZXQoKTtmb3IobGV0IGE9MDthPDY7YSsrKXQuc2V0UmVuZGVyVGFyZ2V0KHRoaXMsYSksdC5jbGVhcihyLG4saSk7dC5zZXRSZW5kZXJUYXJnZXQobyl9fTtRMy5wcm90b3R5cGUuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQ9ITA7dmFyIHV1dD1uZXcgaix2ZnI9bmV3IGoseGZyPW5ldyBraSwkYz1jbGFzc3tjb25zdHJ1Y3Rvcih0PW5ldyBqKDEsMCwwKSxyPTApe3RoaXMubm9ybWFsPXQsdGhpcy5jb25zdGFudD1yfXNldCh0LHIpe3JldHVybiB0aGlzLm5vcm1hbC5jb3B5KHQpLHRoaXMuY29uc3RhbnQ9cix0aGlzfXNldENvbXBvbmVudHModCxyLG4saSl7cmV0dXJuIHRoaXMubm9ybWFsLnNldCh0LHIsbiksdGhpcy5jb25zdGFudD1pLHRoaXN9c2V0RnJvbU5vcm1hbEFuZENvcGxhbmFyUG9pbnQodCxyKXtyZXR1cm4gdGhpcy5ub3JtYWwuY29weSh0KSx0aGlzLmNvbnN0YW50PS1yLmRvdCh0aGlzLm5vcm1hbCksdGhpc31zZXRGcm9tQ29wbGFuYXJQb2ludHModCxyLG4pe2xldCBpPXV1dC5zdWJWZWN0b3JzKG4scikuY3Jvc3ModmZyLnN1YlZlY3RvcnModCxyKSkubm9ybWFsaXplKCk7cmV0dXJuIHRoaXMuc2V0RnJvbU5vcm1hbEFuZENvcGxhbmFyUG9pbnQoaSx0KSx0aGlzfWNvcHkodCl7cmV0dXJuIHRoaXMubm9ybWFsLmNvcHkodC5ub3JtYWwpLHRoaXMuY29uc3RhbnQ9dC5jb25zdGFudCx0aGlzfW5vcm1hbGl6ZSgpe2xldCB0PTEvdGhpcy5ub3JtYWwubGVuZ3RoKCk7cmV0dXJuIHRoaXMubm9ybWFsLm11bHRpcGx5U2NhbGFyKHQpLHRoaXMuY29uc3RhbnQqPXQsdGhpc31uZWdhdGUoKXtyZXR1cm4gdGhpcy5jb25zdGFudCo9LTEsdGhpcy5ub3JtYWwubmVnYXRlKCksdGhpc31kaXN0YW5jZVRvUG9pbnQodCl7cmV0dXJuIHRoaXMubm9ybWFsLmRvdCh0KSt0aGlzLmNvbnN0YW50fWRpc3RhbmNlVG9TcGhlcmUodCl7cmV0dXJuIHRoaXMuZGlzdGFuY2VUb1BvaW50KHQuY2VudGVyKS10LnJhZGl1c31wcm9qZWN0UG9pbnQodCxyKXtyZXR1cm4gci5jb3B5KHRoaXMubm9ybWFsKS5tdWx0aXBseVNjYWxhcigtdGhpcy5kaXN0YW5jZVRvUG9pbnQodCkpLmFkZCh0KX1pbnRlcnNlY3RMaW5lKHQscil7bGV0IG49dC5kZWx0YSh1dXQpLGk9dGhpcy5ub3JtYWwuZG90KG4pO2lmKGk9PT0wKXJldHVybiB0aGlzLmRpc3RhbmNlVG9Qb2ludCh0LnN0YXJ0KT09PTA/ci5jb3B5KHQuc3RhcnQpOm51bGw7bGV0IG89LSh0LnN0YXJ0LmRvdCh0aGlzLm5vcm1hbCkrdGhpcy5jb25zdGFudCkvaTtyZXR1cm4gbzwwfHxvPjE/bnVsbDpyLmNvcHkobikubXVsdGlwbHlTY2FsYXIobykuYWRkKHQuc3RhcnQpfWludGVyc2VjdHNMaW5lKHQpe2xldCByPXRoaXMuZGlzdGFuY2VUb1BvaW50KHQuc3RhcnQpLG49dGhpcy5kaXN0YW5jZVRvUG9pbnQodC5lbmQpO3JldHVybiByPDAmJm4+MHx8bjwwJiZyPjB9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzUGxhbmUodGhpcyl9aW50ZXJzZWN0c1NwaGVyZSh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzUGxhbmUodGhpcyl9Y29wbGFuYXJQb2ludCh0KXtyZXR1cm4gdC5jb3B5KHRoaXMubm9ybWFsKS5tdWx0aXBseVNjYWxhcigtdGhpcy5jb25zdGFudCl9YXBwbHlNYXRyaXg0KHQscil7bGV0IG49cnx8eGZyLmdldE5vcm1hbE1hdHJpeCh0KSxpPXRoaXMuY29wbGFuYXJQb2ludCh1dXQpLmFwcGx5TWF0cml4NCh0KSxvPXRoaXMubm9ybWFsLmFwcGx5TWF0cml4MyhuKS5ub3JtYWxpemUoKTtyZXR1cm4gdGhpcy5jb25zdGFudD0taS5kb3QobyksdGhpc310cmFuc2xhdGUodCl7cmV0dXJuIHRoaXMuY29uc3RhbnQtPXQuZG90KHRoaXMubm9ybWFsKSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5ub3JtYWwuZXF1YWxzKHRoaXMubm9ybWFsKSYmdC5jb25zdGFudD09PXRoaXMuY29uc3RhbnR9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IoKS5jb3B5KHRoaXMpfX07JGMucHJvdG90eXBlLmlzUGxhbmU9ITA7dmFyIEwzPW5ldyBKZixBVj1uZXcgaixEMT1jbGFzc3tjb25zdHJ1Y3Rvcih0PW5ldyAkYyxyPW5ldyAkYyxuPW5ldyAkYyxpPW5ldyAkYyxvPW5ldyAkYyxhPW5ldyAkYyl7dGhpcy5wbGFuZXM9W3QscixuLGksbyxhXX1zZXQodCxyLG4saSxvLGEpe2xldCBzPXRoaXMucGxhbmVzO3JldHVybiBzWzBdLmNvcHkodCksc1sxXS5jb3B5KHIpLHNbMl0uY29weShuKSxzWzNdLmNvcHkoaSksc1s0XS5jb3B5KG8pLHNbNV0uY29weShhKSx0aGlzfWNvcHkodCl7bGV0IHI9dGhpcy5wbGFuZXM7Zm9yKGxldCBuPTA7bjw2O24rKylyW25dLmNvcHkodC5wbGFuZXNbbl0pO3JldHVybiB0aGlzfXNldEZyb21Qcm9qZWN0aW9uTWF0cml4KHQpe2xldCByPXRoaXMucGxhbmVzLG49dC5lbGVtZW50cyxpPW5bMF0sbz1uWzFdLGE9blsyXSxzPW5bM10sbD1uWzRdLGM9bls1XSx1PW5bNl0saD1uWzddLGY9bls4XSxwPW5bOV0sZD1uWzEwXSxnPW5bMTFdLF89blsxMl0seT1uWzEzXSx4PW5bMTRdLGI9blsxNV07cmV0dXJuIHJbMF0uc2V0Q29tcG9uZW50cyhzLWksaC1sLGctZixiLV8pLm5vcm1hbGl6ZSgpLHJbMV0uc2V0Q29tcG9uZW50cyhzK2ksaCtsLGcrZixiK18pLm5vcm1hbGl6ZSgpLHJbMl0uc2V0Q29tcG9uZW50cyhzK28saCtjLGcrcCxiK3kpLm5vcm1hbGl6ZSgpLHJbM10uc2V0Q29tcG9uZW50cyhzLW8saC1jLGctcCxiLXkpLm5vcm1hbGl6ZSgpLHJbNF0uc2V0Q29tcG9uZW50cyhzLWEsaC11LGctZCxiLXgpLm5vcm1hbGl6ZSgpLHJbNV0uc2V0Q29tcG9uZW50cyhzK2EsaCt1LGcrZCxiK3gpLm5vcm1hbGl6ZSgpLHRoaXN9aW50ZXJzZWN0c09iamVjdCh0KXtsZXQgcj10Lmdlb21ldHJ5O3JldHVybiByLmJvdW5kaW5nU3BoZXJlPT09bnVsbCYmci5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxMMy5jb3B5KHIuYm91bmRpbmdTcGhlcmUpLmFwcGx5TWF0cml4NCh0Lm1hdHJpeFdvcmxkKSx0aGlzLmludGVyc2VjdHNTcGhlcmUoTDMpfWludGVyc2VjdHNTcHJpdGUodCl7cmV0dXJuIEwzLmNlbnRlci5zZXQoMCwwLDApLEwzLnJhZGl1cz0uNzA3MTA2NzgxMTg2NTQ3NixMMy5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCksdGhpcy5pbnRlcnNlY3RzU3BoZXJlKEwzKX1pbnRlcnNlY3RzU3BoZXJlKHQpe2xldCByPXRoaXMucGxhbmVzLG49dC5jZW50ZXIsaT0tdC5yYWRpdXM7Zm9yKGxldCBvPTA7bzw2O28rKylpZihyW29dLmRpc3RhbmNlVG9Qb2ludChuKTxpKXJldHVybiExO3JldHVybiEwfWludGVyc2VjdHNCb3godCl7bGV0IHI9dGhpcy5wbGFuZXM7Zm9yKGxldCBuPTA7bjw2O24rKyl7bGV0IGk9cltuXTtpZihBVi54PWkubm9ybWFsLng+MD90Lm1heC54OnQubWluLngsQVYueT1pLm5vcm1hbC55PjA/dC5tYXgueTp0Lm1pbi55LEFWLno9aS5ub3JtYWwuej4wP3QubWF4Lno6dC5taW4ueixpLmRpc3RhbmNlVG9Qb2ludChBVik8MClyZXR1cm4hMX1yZXR1cm4hMH1jb250YWluc1BvaW50KHQpe2xldCByPXRoaXMucGxhbmVzO2ZvcihsZXQgbj0wO248NjtuKyspaWYocltuXS5kaXN0YW5jZVRvUG9pbnQodCk8MClyZXR1cm4hMTtyZXR1cm4hMH1jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcigpLmNvcHkodGhpcyl9fTtmdW5jdGlvbiBVZmUoKXtsZXQgZT1udWxsLHQ9ITEscj1udWxsLG49bnVsbDtmdW5jdGlvbiBpKG8sYSl7cihvLGEpLG49ZS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaSl9cmV0dXJue3N0YXJ0OmZ1bmN0aW9uKCl7dCE9PSEwJiZyIT09bnVsbCYmKG49ZS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaSksdD0hMCl9LHN0b3A6ZnVuY3Rpb24oKXtlLmNhbmNlbEFuaW1hdGlvbkZyYW1lKG4pLHQ9ITF9LHNldEFuaW1hdGlvbkxvb3A6ZnVuY3Rpb24obyl7cj1vfSxzZXRDb250ZXh0OmZ1bmN0aW9uKG8pe2U9b319fWZ1bmN0aW9uIGJmcihlLHQpe2xldCByPXQuaXNXZWJHTDIsbj1uZXcgV2Vha01hcDtmdW5jdGlvbiBpKGMsdSl7bGV0IGg9Yy5hcnJheSxmPWMudXNhZ2UscD1lLmNyZWF0ZUJ1ZmZlcigpO2UuYmluZEJ1ZmZlcih1LHApLGUuYnVmZmVyRGF0YSh1LGgsZiksYy5vblVwbG9hZENhbGxiYWNrKCk7bGV0IGQ9NTEyNjtyZXR1cm4gaCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheT9kPTUxMjY6aCBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheT9jb25zb2xlLndhcm4oIlRIUkVFLldlYkdMQXR0cmlidXRlczogVW5zdXBwb3J0ZWQgZGF0YSBidWZmZXIgZm9ybWF0OiBGbG9hdDY0QXJyYXkuIik6aCBpbnN0YW5jZW9mIFVpbnQxNkFycmF5P2MuaXNGbG9hdDE2QnVmZmVyQXR0cmlidXRlP3I/ZD01MTMxOmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xBdHRyaWJ1dGVzOiBVc2FnZSBvZiBGbG9hdDE2QnVmZmVyQXR0cmlidXRlIHJlcXVpcmVzIFdlYkdMMi4iKTpkPTUxMjM6aCBpbnN0YW5jZW9mIEludDE2QXJyYXk/ZD01MTIyOmggaW5zdGFuY2VvZiBVaW50MzJBcnJheT9kPTUxMjU6aCBpbnN0YW5jZW9mIEludDMyQXJyYXk/ZD01MTI0OmggaW5zdGFuY2VvZiBJbnQ4QXJyYXk/ZD01MTIwOihoIGluc3RhbmNlb2YgVWludDhBcnJheXx8aCBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5KSYmKGQ9NTEyMSkse2J1ZmZlcjpwLHR5cGU6ZCxieXRlc1BlckVsZW1lbnQ6aC5CWVRFU19QRVJfRUxFTUVOVCx2ZXJzaW9uOmMudmVyc2lvbn19ZnVuY3Rpb24gbyhjLHUsaCl7bGV0IGY9dS5hcnJheSxwPXUudXBkYXRlUmFuZ2U7ZS5iaW5kQnVmZmVyKGgsYykscC5jb3VudD09PS0xP2UuYnVmZmVyU3ViRGF0YShoLDAsZik6KHI/ZS5idWZmZXJTdWJEYXRhKGgscC5vZmZzZXQqZi5CWVRFU19QRVJfRUxFTUVOVCxmLHAub2Zmc2V0LHAuY291bnQpOmUuYnVmZmVyU3ViRGF0YShoLHAub2Zmc2V0KmYuQllURVNfUEVSX0VMRU1FTlQsZi5zdWJhcnJheShwLm9mZnNldCxwLm9mZnNldCtwLmNvdW50KSkscC5jb3VudD0tMSl9ZnVuY3Rpb24gYShjKXtyZXR1cm4gYy5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlJiYoYz1jLmRhdGEpLG4uZ2V0KGMpfWZ1bmN0aW9uIHMoYyl7Yy5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlJiYoYz1jLmRhdGEpO2xldCB1PW4uZ2V0KGMpO3UmJihlLmRlbGV0ZUJ1ZmZlcih1LmJ1ZmZlciksbi5kZWxldGUoYykpfWZ1bmN0aW9uIGwoYyx1KXtpZihjLmlzR0xCdWZmZXJBdHRyaWJ1dGUpe2xldCBmPW4uZ2V0KGMpOyghZnx8Zi52ZXJzaW9uPGMudmVyc2lvbikmJm4uc2V0KGMse2J1ZmZlcjpjLmJ1ZmZlcix0eXBlOmMudHlwZSxieXRlc1BlckVsZW1lbnQ6Yy5lbGVtZW50U2l6ZSx2ZXJzaW9uOmMudmVyc2lvbn0pO3JldHVybn1jLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUmJihjPWMuZGF0YSk7bGV0IGg9bi5nZXQoYyk7aD09PXZvaWQgMD9uLnNldChjLGkoYyx1KSk6aC52ZXJzaW9uPGMudmVyc2lvbiYmKG8oaC5idWZmZXIsYyx1KSxoLnZlcnNpb249Yy52ZXJzaW9uKX1yZXR1cm57Z2V0OmEscmVtb3ZlOnMsdXBkYXRlOmx9fXZhciBVMD1jbGFzcyBleHRlbmRzIFBle2NvbnN0cnVjdG9yKHQ9MSxyPTEsbj0xLGk9MSl7c3VwZXIoKSx0aGlzLnR5cGU9IlBsYW5lR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17d2lkdGg6dCxoZWlnaHQ6cix3aWR0aFNlZ21lbnRzOm4saGVpZ2h0U2VnbWVudHM6aX07bGV0IG89dC8yLGE9ci8yLHM9TWF0aC5mbG9vcihuKSxsPU1hdGguZmxvb3IoaSksYz1zKzEsdT1sKzEsaD10L3MsZj1yL2wscD1bXSxkPVtdLGc9W10sXz1bXTtmb3IobGV0IHk9MDt5PHU7eSsrKXtsZXQgeD15KmYtYTtmb3IobGV0IGI9MDtiPGM7YisrKXtsZXQgUz1iKmgtbztkLnB1c2goUywteCwwKSxnLnB1c2goMCwwLDEpLF8ucHVzaChiL3MpLF8ucHVzaCgxLXkvbCl9fWZvcihsZXQgeT0wO3k8bDt5KyspZm9yKGxldCB4PTA7eDxzO3grKyl7bGV0IGI9eCtjKnksUz14K2MqKHkrMSksQz14KzErYyooeSsxKSxQPXgrMStjKnk7cC5wdXNoKGIsUyxQKSxwLnB1c2goUyxDLFApfXRoaXMuc2V0SW5kZXgocCksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgeGUoZCwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IHhlKGcsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IHhlKF8sMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IFUwKHQud2lkdGgsdC5oZWlnaHQsdC53aWR0aFNlZ21lbnRzLHQuaGVpZ2h0U2VnbWVudHMpfX0sd2ZyPWAjaWZkZWYgVVNFX0FMUEhBTUFQCglkaWZmdXNlQ29sb3IuYSAqPSB0ZXh0dXJlMkQoIGFscGhhTWFwLCB2VXYgKS5nOwojZW5kaWZgLFNmcj1gI2lmZGVmIFVTRV9BTFBIQU1BUAoJdW5pZm9ybSBzYW1wbGVyMkQgYWxwaGFNYXA7CiNlbmRpZmAsTWZyPWAjaWZkZWYgVVNFX0FMUEhBVEVTVAoJaWYgKCBkaWZmdXNlQ29sb3IuYSA8IGFscGhhVGVzdCApIGRpc2NhcmQ7CiNlbmRpZmAsRWZyPWAjaWZkZWYgVVNFX0FMUEhBVEVTVAoJdW5pZm9ybSBmbG9hdCBhbHBoYVRlc3Q7CiNlbmRpZmAsVGZyPWAjaWZkZWYgVVNFX0FPTUFQCglmbG9hdCBhbWJpZW50T2NjbHVzaW9uID0gKCB0ZXh0dXJlMkQoIGFvTWFwLCB2VXYyICkuciAtIDEuMCApICogYW9NYXBJbnRlbnNpdHkgKyAxLjA7CglyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKj0gYW1iaWVudE9jY2x1c2lvbjsKCSNpZiBkZWZpbmVkKCBVU0VfRU5WTUFQICkgJiYgZGVmaW5lZCggU1RBTkRBUkQgKQoJCWZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkubm9ybWFsLCBnZW9tZXRyeS52aWV3RGlyICkgKTsKCQlyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICo9IGNvbXB1dGVTcGVjdWxhck9jY2x1c2lvbiggZG90TlYsIGFtYmllbnRPY2NsdXNpb24sIG1hdGVyaWFsLnJvdWdobmVzcyApOwoJI2VuZGlmCiNlbmRpZmAsQ2ZyPWAjaWZkZWYgVVNFX0FPTUFQCgl1bmlmb3JtIHNhbXBsZXIyRCBhb01hcDsKCXVuaWZvcm0gZmxvYXQgYW9NYXBJbnRlbnNpdHk7CiNlbmRpZmAsQWZyPSJ2ZWMzIHRyYW5zZm9ybWVkID0gdmVjMyggcG9zaXRpb24gKTsiLFBmcj1gdmVjMyBvYmplY3ROb3JtYWwgPSB2ZWMzKCBub3JtYWwgKTsKI2lmZGVmIFVTRV9UQU5HRU5UCgl2ZWMzIG9iamVjdFRhbmdlbnQgPSB2ZWMzKCB0YW5nZW50Lnh5eiApOwojZW5kaWZgLElmcj1gdmVjMyBCUkRGX0xhbWJlcnQoIGNvbnN0IGluIHZlYzMgZGlmZnVzZUNvbG9yICkgewoJcmV0dXJuIFJFQ0lQUk9DQUxfUEkgKiBkaWZmdXNlQ29sb3I7Cn0KdmVjMyBGX1NjaGxpY2soIGNvbnN0IGluIHZlYzMgZjAsIGNvbnN0IGluIGZsb2F0IGY5MCwgY29uc3QgaW4gZmxvYXQgZG90VkggKSB7CglmbG9hdCBmcmVzbmVsID0gZXhwMiggKCAtIDUuNTU0NzMgKiBkb3RWSCAtIDYuOTgzMTYgKSAqIGRvdFZIICk7CglyZXR1cm4gZjAgKiAoIDEuMCAtIGZyZXNuZWwgKSArICggZjkwICogZnJlc25lbCApOwp9CmZsb2F0IFZfR0dYX1NtaXRoQ29ycmVsYXRlZCggY29uc3QgaW4gZmxvYXQgYWxwaGEsIGNvbnN0IGluIGZsb2F0IGRvdE5MLCBjb25zdCBpbiBmbG9hdCBkb3ROViApIHsKCWZsb2F0IGEyID0gcG93MiggYWxwaGEgKTsKCWZsb2F0IGd2ID0gZG90TkwgKiBzcXJ0KCBhMiArICggMS4wIC0gYTIgKSAqIHBvdzIoIGRvdE5WICkgKTsKCWZsb2F0IGdsID0gZG90TlYgKiBzcXJ0KCBhMiArICggMS4wIC0gYTIgKSAqIHBvdzIoIGRvdE5MICkgKTsKCXJldHVybiAwLjUgLyBtYXgoIGd2ICsgZ2wsIEVQU0lMT04gKTsKfQpmbG9hdCBEX0dHWCggY29uc3QgaW4gZmxvYXQgYWxwaGEsIGNvbnN0IGluIGZsb2F0IGRvdE5IICkgewoJZmxvYXQgYTIgPSBwb3cyKCBhbHBoYSApOwoJZmxvYXQgZGVub20gPSBwb3cyKCBkb3ROSCApICogKCBhMiAtIDEuMCApICsgMS4wOwoJcmV0dXJuIFJFQ0lQUk9DQUxfUEkgKiBhMiAvIHBvdzIoIGRlbm9tICk7Cn0KdmVjMyBCUkRGX0dHWCggY29uc3QgaW4gdmVjMyBsaWdodERpciwgY29uc3QgaW4gdmVjMyB2aWV3RGlyLCBjb25zdCBpbiB2ZWMzIG5vcm1hbCwgY29uc3QgaW4gdmVjMyBmMCwgY29uc3QgaW4gZmxvYXQgZjkwLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7CglmbG9hdCBhbHBoYSA9IHBvdzIoIHJvdWdobmVzcyApOwoJdmVjMyBoYWxmRGlyID0gbm9ybWFsaXplKCBsaWdodERpciArIHZpZXdEaXIgKTsKCWZsb2F0IGRvdE5MID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCBsaWdodERpciApICk7CglmbG9hdCBkb3ROViA9IHNhdHVyYXRlKCBkb3QoIG5vcm1hbCwgdmlld0RpciApICk7CglmbG9hdCBkb3ROSCA9IHNhdHVyYXRlKCBkb3QoIG5vcm1hbCwgaGFsZkRpciApICk7CglmbG9hdCBkb3RWSCA9IHNhdHVyYXRlKCBkb3QoIHZpZXdEaXIsIGhhbGZEaXIgKSApOwoJdmVjMyBGID0gRl9TY2hsaWNrKCBmMCwgZjkwLCBkb3RWSCApOwoJZmxvYXQgViA9IFZfR0dYX1NtaXRoQ29ycmVsYXRlZCggYWxwaGEsIGRvdE5MLCBkb3ROViApOwoJZmxvYXQgRCA9IERfR0dYKCBhbHBoYSwgZG90TkggKTsKCXJldHVybiBGICogKCBWICogRCApOwp9CnZlYzIgTFRDX1V2KCBjb25zdCBpbiB2ZWMzIE4sIGNvbnN0IGluIHZlYzMgViwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzICkgewoJY29uc3QgZmxvYXQgTFVUX1NJWkUgPSA2NC4wOwoJY29uc3QgZmxvYXQgTFVUX1NDQUxFID0gKCBMVVRfU0laRSAtIDEuMCApIC8gTFVUX1NJWkU7Cgljb25zdCBmbG9hdCBMVVRfQklBUyA9IDAuNSAvIExVVF9TSVpFOwoJZmxvYXQgZG90TlYgPSBzYXR1cmF0ZSggZG90KCBOLCBWICkgKTsKCXZlYzIgdXYgPSB2ZWMyKCByb3VnaG5lc3MsIHNxcnQoIDEuMCAtIGRvdE5WICkgKTsKCXV2ID0gdXYgKiBMVVRfU0NBTEUgKyBMVVRfQklBUzsKCXJldHVybiB1djsKfQpmbG9hdCBMVENfQ2xpcHBlZFNwaGVyZUZvcm1GYWN0b3IoIGNvbnN0IGluIHZlYzMgZiApIHsKCWZsb2F0IGwgPSBsZW5ndGgoIGYgKTsKCXJldHVybiBtYXgoICggbCAqIGwgKyBmLnogKSAvICggbCArIDEuMCApLCAwLjAgKTsKfQp2ZWMzIExUQ19FZGdlVmVjdG9yRm9ybUZhY3RvciggY29uc3QgaW4gdmVjMyB2MSwgY29uc3QgaW4gdmVjMyB2MiApIHsKCWZsb2F0IHggPSBkb3QoIHYxLCB2MiApOwoJZmxvYXQgeSA9IGFicyggeCApOwoJZmxvYXQgYSA9IDAuODU0Mzk4NSArICggMC40OTY1MTU1ICsgMC4wMTQ1MjA2ICogeSApICogeTsKCWZsb2F0IGIgPSAzLjQxNzU5NDAgKyAoIDQuMTYxNjcyNCArIHkgKSAqIHk7CglmbG9hdCB2ID0gYSAvIGI7CglmbG9hdCB0aGV0YV9zaW50aGV0YSA9ICggeCA+IDAuMCApID8gdiA6IDAuNSAqIGludmVyc2VzcXJ0KCBtYXgoIDEuMCAtIHggKiB4LCAxZS03ICkgKSAtIHY7CglyZXR1cm4gY3Jvc3MoIHYxLCB2MiApICogdGhldGFfc2ludGhldGE7Cn0KdmVjMyBMVENfRXZhbHVhdGUoIGNvbnN0IGluIHZlYzMgTiwgY29uc3QgaW4gdmVjMyBWLCBjb25zdCBpbiB2ZWMzIFAsIGNvbnN0IGluIG1hdDMgbUludiwgY29uc3QgaW4gdmVjMyByZWN0Q29vcmRzWyA0IF0gKSB7Cgl2ZWMzIHYxID0gcmVjdENvb3Jkc1sgMSBdIC0gcmVjdENvb3Jkc1sgMCBdOwoJdmVjMyB2MiA9IHJlY3RDb29yZHNbIDMgXSAtIHJlY3RDb29yZHNbIDAgXTsKCXZlYzMgbGlnaHROb3JtYWwgPSBjcm9zcyggdjEsIHYyICk7CglpZiggZG90KCBsaWdodE5vcm1hbCwgUCAtIHJlY3RDb29yZHNbIDAgXSApIDwgMC4wICkgcmV0dXJuIHZlYzMoIDAuMCApOwoJdmVjMyBUMSwgVDI7CglUMSA9IG5vcm1hbGl6ZSggViAtIE4gKiBkb3QoIFYsIE4gKSApOwoJVDIgPSAtIGNyb3NzKCBOLCBUMSApOwoJbWF0MyBtYXQgPSBtSW52ICogdHJhbnNwb3NlTWF0MyggbWF0MyggVDEsIFQyLCBOICkgKTsKCXZlYzMgY29vcmRzWyA0IF07Cgljb29yZHNbIDAgXSA9IG1hdCAqICggcmVjdENvb3Jkc1sgMCBdIC0gUCApOwoJY29vcmRzWyAxIF0gPSBtYXQgKiAoIHJlY3RDb29yZHNbIDEgXSAtIFAgKTsKCWNvb3Jkc1sgMiBdID0gbWF0ICogKCByZWN0Q29vcmRzWyAyIF0gLSBQICk7Cgljb29yZHNbIDMgXSA9IG1hdCAqICggcmVjdENvb3Jkc1sgMyBdIC0gUCApOwoJY29vcmRzWyAwIF0gPSBub3JtYWxpemUoIGNvb3Jkc1sgMCBdICk7Cgljb29yZHNbIDEgXSA9IG5vcm1hbGl6ZSggY29vcmRzWyAxIF0gKTsKCWNvb3Jkc1sgMiBdID0gbm9ybWFsaXplKCBjb29yZHNbIDIgXSApOwoJY29vcmRzWyAzIF0gPSBub3JtYWxpemUoIGNvb3Jkc1sgMyBdICk7Cgl2ZWMzIHZlY3RvckZvcm1GYWN0b3IgPSB2ZWMzKCAwLjAgKTsKCXZlY3RvckZvcm1GYWN0b3IgKz0gTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb29yZHNbIDAgXSwgY29vcmRzWyAxIF0gKTsKCXZlY3RvckZvcm1GYWN0b3IgKz0gTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb29yZHNbIDEgXSwgY29vcmRzWyAyIF0gKTsKCXZlY3RvckZvcm1GYWN0b3IgKz0gTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb29yZHNbIDIgXSwgY29vcmRzWyAzIF0gKTsKCXZlY3RvckZvcm1GYWN0b3IgKz0gTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb29yZHNbIDMgXSwgY29vcmRzWyAwIF0gKTsKCWZsb2F0IHJlc3VsdCA9IExUQ19DbGlwcGVkU3BoZXJlRm9ybUZhY3RvciggdmVjdG9yRm9ybUZhY3RvciApOwoJcmV0dXJuIHZlYzMoIHJlc3VsdCApOwp9CmZsb2F0IEdfQmxpbm5QaG9uZ19JbXBsaWNpdCggKSB7CglyZXR1cm4gMC4yNTsKfQpmbG9hdCBEX0JsaW5uUGhvbmcoIGNvbnN0IGluIGZsb2F0IHNoaW5pbmVzcywgY29uc3QgaW4gZmxvYXQgZG90TkggKSB7CglyZXR1cm4gUkVDSVBST0NBTF9QSSAqICggc2hpbmluZXNzICogMC41ICsgMS4wICkgKiBwb3coIGRvdE5ILCBzaGluaW5lc3MgKTsKfQp2ZWMzIEJSREZfQmxpbm5QaG9uZyggY29uc3QgaW4gdmVjMyBsaWdodERpciwgY29uc3QgaW4gdmVjMyB2aWV3RGlyLCBjb25zdCBpbiB2ZWMzIG5vcm1hbCwgY29uc3QgaW4gdmVjMyBzcGVjdWxhckNvbG9yLCBjb25zdCBpbiBmbG9hdCBzaGluaW5lc3MgKSB7Cgl2ZWMzIGhhbGZEaXIgPSBub3JtYWxpemUoIGxpZ2h0RGlyICsgdmlld0RpciApOwoJZmxvYXQgZG90TkggPSBzYXR1cmF0ZSggZG90KCBub3JtYWwsIGhhbGZEaXIgKSApOwoJZmxvYXQgZG90VkggPSBzYXR1cmF0ZSggZG90KCB2aWV3RGlyLCBoYWxmRGlyICkgKTsKCXZlYzMgRiA9IEZfU2NobGljayggc3BlY3VsYXJDb2xvciwgMS4wLCBkb3RWSCApOwoJZmxvYXQgRyA9IEdfQmxpbm5QaG9uZ19JbXBsaWNpdCggKTsKCWZsb2F0IEQgPSBEX0JsaW5uUGhvbmcoIHNoaW5pbmVzcywgZG90TkggKTsKCXJldHVybiBGICogKCBHICogRCApOwp9CiNpZiBkZWZpbmVkKCBVU0VfU0hFRU4gKQpmbG9hdCBEX0NoYXJsaWUoIGZsb2F0IHJvdWdobmVzcywgZmxvYXQgZG90TkggKSB7CglmbG9hdCBhbHBoYSA9IHBvdzIoIHJvdWdobmVzcyApOwoJZmxvYXQgaW52QWxwaGEgPSAxLjAgLyBhbHBoYTsKCWZsb2F0IGNvczJoID0gZG90TkggKiBkb3ROSDsKCWZsb2F0IHNpbjJoID0gbWF4KCAxLjAgLSBjb3MyaCwgMC4wMDc4MTI1ICk7CglyZXR1cm4gKCAyLjAgKyBpbnZBbHBoYSApICogcG93KCBzaW4yaCwgaW52QWxwaGEgKiAwLjUgKSAvICggMi4wICogUEkgKTsKfQpmbG9hdCBWX05ldWJlbHQoIGZsb2F0IGRvdE5WLCBmbG9hdCBkb3ROTCApIHsKCXJldHVybiBzYXR1cmF0ZSggMS4wIC8gKCA0LjAgKiAoIGRvdE5MICsgZG90TlYgLSBkb3ROTCAqIGRvdE5WICkgKSApOwp9CnZlYzMgQlJERl9TaGVlbiggY29uc3QgaW4gdmVjMyBsaWdodERpciwgY29uc3QgaW4gdmVjMyB2aWV3RGlyLCBjb25zdCBpbiB2ZWMzIG5vcm1hbCwgdmVjMyBzaGVlbkNvbG9yLCBjb25zdCBpbiBmbG9hdCBzaGVlblJvdWdobmVzcyApIHsKCXZlYzMgaGFsZkRpciA9IG5vcm1hbGl6ZSggbGlnaHREaXIgKyB2aWV3RGlyICk7CglmbG9hdCBkb3ROTCA9IHNhdHVyYXRlKCBkb3QoIG5vcm1hbCwgbGlnaHREaXIgKSApOwoJZmxvYXQgZG90TlYgPSBzYXR1cmF0ZSggZG90KCBub3JtYWwsIHZpZXdEaXIgKSApOwoJZmxvYXQgZG90TkggPSBzYXR1cmF0ZSggZG90KCBub3JtYWwsIGhhbGZEaXIgKSApOwoJZmxvYXQgRCA9IERfQ2hhcmxpZSggc2hlZW5Sb3VnaG5lc3MsIGRvdE5IICk7CglmbG9hdCBWID0gVl9OZXViZWx0KCBkb3ROViwgZG90TkwgKTsKCXJldHVybiBzaGVlbkNvbG9yICogKCBEICogViApOwp9CiNlbmRpZmAsTGZyPWAjaWZkZWYgVVNFX0JVTVBNQVAKCXVuaWZvcm0gc2FtcGxlcjJEIGJ1bXBNYXA7Cgl1bmlmb3JtIGZsb2F0IGJ1bXBTY2FsZTsKCXZlYzIgZEhkeHlfZndkKCkgewoJCXZlYzIgZFNUZHggPSBkRmR4KCB2VXYgKTsKCQl2ZWMyIGRTVGR5ID0gZEZkeSggdlV2ICk7CgkJZmxvYXQgSGxsID0gYnVtcFNjYWxlICogdGV4dHVyZTJEKCBidW1wTWFwLCB2VXYgKS54OwoJCWZsb2F0IGRCeCA9IGJ1bXBTY2FsZSAqIHRleHR1cmUyRCggYnVtcE1hcCwgdlV2ICsgZFNUZHggKS54IC0gSGxsOwoJCWZsb2F0IGRCeSA9IGJ1bXBTY2FsZSAqIHRleHR1cmUyRCggYnVtcE1hcCwgdlV2ICsgZFNUZHkgKS54IC0gSGxsOwoJCXJldHVybiB2ZWMyKCBkQngsIGRCeSApOwoJfQoJdmVjMyBwZXJ0dXJiTm9ybWFsQXJiKCB2ZWMzIHN1cmZfcG9zLCB2ZWMzIHN1cmZfbm9ybSwgdmVjMiBkSGR4eSwgZmxvYXQgZmFjZURpcmVjdGlvbiApIHsKCQl2ZWMzIHZTaWdtYVggPSB2ZWMzKCBkRmR4KCBzdXJmX3Bvcy54ICksIGRGZHgoIHN1cmZfcG9zLnkgKSwgZEZkeCggc3VyZl9wb3MueiApICk7CgkJdmVjMyB2U2lnbWFZID0gdmVjMyggZEZkeSggc3VyZl9wb3MueCApLCBkRmR5KCBzdXJmX3Bvcy55ICksIGRGZHkoIHN1cmZfcG9zLnogKSApOwoJCXZlYzMgdk4gPSBzdXJmX25vcm07CgkJdmVjMyBSMSA9IGNyb3NzKCB2U2lnbWFZLCB2TiApOwoJCXZlYzMgUjIgPSBjcm9zcyggdk4sIHZTaWdtYVggKTsKCQlmbG9hdCBmRGV0ID0gZG90KCB2U2lnbWFYLCBSMSApICogZmFjZURpcmVjdGlvbjsKCQl2ZWMzIHZHcmFkID0gc2lnbiggZkRldCApICogKCBkSGR4eS54ICogUjEgKyBkSGR4eS55ICogUjIgKTsKCQlyZXR1cm4gbm9ybWFsaXplKCBhYnMoIGZEZXQgKSAqIHN1cmZfbm9ybSAtIHZHcmFkICk7Cgl9CiNlbmRpZmAsa2ZyPWAjaWYgTlVNX0NMSVBQSU5HX1BMQU5FUyA+IDAKCXZlYzQgcGxhbmU7CgkjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0Cglmb3IgKCBpbnQgaSA9IDA7IGkgPCBVTklPTl9DTElQUElOR19QTEFORVM7IGkgKysgKSB7CgkJcGxhbmUgPSBjbGlwcGluZ1BsYW5lc1sgaSBdOwoJCWlmICggZG90KCB2Q2xpcFBvc2l0aW9uLCBwbGFuZS54eXogKSA+IHBsYW5lLncgKSBkaXNjYXJkOwoJfQoJI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmQKCSNpZiBVTklPTl9DTElQUElOR19QTEFORVMgPCBOVU1fQ0xJUFBJTkdfUExBTkVTCgkJYm9vbCBjbGlwcGVkID0gdHJ1ZTsKCQkjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0CgkJZm9yICggaW50IGkgPSBVTklPTl9DTElQUElOR19QTEFORVM7IGkgPCBOVU1fQ0xJUFBJTkdfUExBTkVTOyBpICsrICkgewoJCQlwbGFuZSA9IGNsaXBwaW5nUGxhbmVzWyBpIF07CgkJCWNsaXBwZWQgPSAoIGRvdCggdkNsaXBQb3NpdGlvbiwgcGxhbmUueHl6ICkgPiBwbGFuZS53ICkgJiYgY2xpcHBlZDsKCQl9CgkJI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmQKCQlpZiAoIGNsaXBwZWQgKSBkaXNjYXJkOwoJI2VuZGlmCiNlbmRpZmAsUmZyPWAjaWYgTlVNX0NMSVBQSU5HX1BMQU5FUyA+IDAKCXZhcnlpbmcgdmVjMyB2Q2xpcFBvc2l0aW9uOwoJdW5pZm9ybSB2ZWM0IGNsaXBwaW5nUGxhbmVzWyBOVU1fQ0xJUFBJTkdfUExBTkVTIF07CiNlbmRpZmAsTmZyPWAjaWYgTlVNX0NMSVBQSU5HX1BMQU5FUyA+IDAKCXZhcnlpbmcgdmVjMyB2Q2xpcFBvc2l0aW9uOwojZW5kaWZgLERmcj1gI2lmIE5VTV9DTElQUElOR19QTEFORVMgPiAwCgl2Q2xpcFBvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejsKI2VuZGlmYCxPZnI9YCNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKQoJZGlmZnVzZUNvbG9yICo9IHZDb2xvcjsKI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SICkKCWRpZmZ1c2VDb2xvci5yZ2IgKj0gdkNvbG9yOwojZW5kaWZgLHpmcj1gI2lmIGRlZmluZWQoIFVTRV9DT0xPUl9BTFBIQSApCgl2YXJ5aW5nIHZlYzQgdkNvbG9yOwojZWxpZiBkZWZpbmVkKCBVU0VfQ09MT1IgKQoJdmFyeWluZyB2ZWMzIHZDb2xvcjsKI2VuZGlmYCxGZnI9YCNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKQoJdmFyeWluZyB2ZWM0IHZDb2xvcjsKI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SICkgfHwgZGVmaW5lZCggVVNFX0lOU1RBTkNJTkdfQ09MT1IgKQoJdmFyeWluZyB2ZWMzIHZDb2xvcjsKI2VuZGlmYCxCZnI9YCNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKQoJdkNvbG9yID0gdmVjNCggMS4wICk7CiNlbGlmIGRlZmluZWQoIFVTRV9DT0xPUiApIHx8IGRlZmluZWQoIFVTRV9JTlNUQU5DSU5HX0NPTE9SICkKCXZDb2xvciA9IHZlYzMoIDEuMCApOwojZW5kaWYKI2lmZGVmIFVTRV9DT0xPUgoJdkNvbG9yICo9IGNvbG9yOwojZW5kaWYKI2lmZGVmIFVTRV9JTlNUQU5DSU5HX0NPTE9SCgl2Q29sb3IueHl6ICo9IGluc3RhbmNlQ29sb3IueHl6OwojZW5kaWZgLEhmcj1gI2RlZmluZSBQSSAzLjE0MTU5MjY1MzU4OTc5MwojZGVmaW5lIFBJMiA2LjI4MzE4NTMwNzE3OTU4NgojZGVmaW5lIFBJX0hBTEYgMS41NzA3OTYzMjY3OTQ4OTY2CiNkZWZpbmUgUkVDSVBST0NBTF9QSSAwLjMxODMwOTg4NjE4Mzc5MDcKI2RlZmluZSBSRUNJUFJPQ0FMX1BJMiAwLjE1OTE1NDk0MzA5MTg5NTM1CiNkZWZpbmUgRVBTSUxPTiAxZS02CiNpZm5kZWYgc2F0dXJhdGUKI2RlZmluZSBzYXR1cmF0ZSggYSApIGNsYW1wKCBhLCAwLjAsIDEuMCApCiNlbmRpZgojZGVmaW5lIHdoaXRlQ29tcGxlbWVudCggYSApICggMS4wIC0gc2F0dXJhdGUoIGEgKSApCmZsb2F0IHBvdzIoIGNvbnN0IGluIGZsb2F0IHggKSB7IHJldHVybiB4Kng7IH0KZmxvYXQgcG93MyggY29uc3QgaW4gZmxvYXQgeCApIHsgcmV0dXJuIHgqeCp4OyB9CmZsb2F0IHBvdzQoIGNvbnN0IGluIGZsb2F0IHggKSB7IGZsb2F0IHgyID0geCp4OyByZXR1cm4geDIqeDI7IH0KZmxvYXQgbWF4MyggY29uc3QgaW4gdmVjMyB2ICkgeyByZXR1cm4gbWF4KCBtYXgoIHYueCwgdi55ICksIHYueiApOyB9CmZsb2F0IGF2ZXJhZ2UoIGNvbnN0IGluIHZlYzMgY29sb3IgKSB7IHJldHVybiBkb3QoIGNvbG9yLCB2ZWMzKCAwLjMzMzMgKSApOyB9CmhpZ2hwIGZsb2F0IHJhbmQoIGNvbnN0IGluIHZlYzIgdXYgKSB7Cgljb25zdCBoaWdocCBmbG9hdCBhID0gMTIuOTg5OCwgYiA9IDc4LjIzMywgYyA9IDQzNzU4LjU0NTM7CgloaWdocCBmbG9hdCBkdCA9IGRvdCggdXYueHksIHZlYzIoIGEsYiApICksIHNuID0gbW9kKCBkdCwgUEkgKTsKCXJldHVybiBmcmFjdCggc2luKCBzbiApICogYyApOwp9CiNpZmRlZiBISUdIX1BSRUNJU0lPTgoJZmxvYXQgcHJlY2lzaW9uU2FmZUxlbmd0aCggdmVjMyB2ICkgeyByZXR1cm4gbGVuZ3RoKCB2ICk7IH0KI2Vsc2UKCWZsb2F0IHByZWNpc2lvblNhZmVMZW5ndGgoIHZlYzMgdiApIHsKCQlmbG9hdCBtYXhDb21wb25lbnQgPSBtYXgzKCBhYnMoIHYgKSApOwoJCXJldHVybiBsZW5ndGgoIHYgLyBtYXhDb21wb25lbnQgKSAqIG1heENvbXBvbmVudDsKCX0KI2VuZGlmCnN0cnVjdCBJbmNpZGVudExpZ2h0IHsKCXZlYzMgY29sb3I7Cgl2ZWMzIGRpcmVjdGlvbjsKCWJvb2wgdmlzaWJsZTsKfTsKc3RydWN0IFJlZmxlY3RlZExpZ2h0IHsKCXZlYzMgZGlyZWN0RGlmZnVzZTsKCXZlYzMgZGlyZWN0U3BlY3VsYXI7Cgl2ZWMzIGluZGlyZWN0RGlmZnVzZTsKCXZlYzMgaW5kaXJlY3RTcGVjdWxhcjsKfTsKc3RydWN0IEdlb21ldHJpY0NvbnRleHQgewoJdmVjMyBwb3NpdGlvbjsKCXZlYzMgbm9ybWFsOwoJdmVjMyB2aWV3RGlyOwojaWZkZWYgVVNFX0NMRUFSQ09BVAoJdmVjMyBjbGVhcmNvYXROb3JtYWw7CiNlbmRpZgp9Owp2ZWMzIHRyYW5zZm9ybURpcmVjdGlvbiggaW4gdmVjMyBkaXIsIGluIG1hdDQgbWF0cml4ICkgewoJcmV0dXJuIG5vcm1hbGl6ZSggKCBtYXRyaXggKiB2ZWM0KCBkaXIsIDAuMCApICkueHl6ICk7Cn0KdmVjMyBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCBpbiB2ZWMzIGRpciwgaW4gbWF0NCBtYXRyaXggKSB7CglyZXR1cm4gbm9ybWFsaXplKCAoIHZlYzQoIGRpciwgMC4wICkgKiBtYXRyaXggKS54eXogKTsKfQptYXQzIHRyYW5zcG9zZU1hdDMoIGNvbnN0IGluIG1hdDMgbSApIHsKCW1hdDMgdG1wOwoJdG1wWyAwIF0gPSB2ZWMzKCBtWyAwIF0ueCwgbVsgMSBdLngsIG1bIDIgXS54ICk7Cgl0bXBbIDEgXSA9IHZlYzMoIG1bIDAgXS55LCBtWyAxIF0ueSwgbVsgMiBdLnkgKTsKCXRtcFsgMiBdID0gdmVjMyggbVsgMCBdLnosIG1bIDEgXS56LCBtWyAyIF0ueiApOwoJcmV0dXJuIHRtcDsKfQpmbG9hdCBsaW5lYXJUb1JlbGF0aXZlTHVtaW5hbmNlKCBjb25zdCBpbiB2ZWMzIGNvbG9yICkgewoJdmVjMyB3ZWlnaHRzID0gdmVjMyggMC4yMTI2LCAwLjcxNTIsIDAuMDcyMiApOwoJcmV0dXJuIGRvdCggd2VpZ2h0cywgY29sb3IucmdiICk7Cn0KYm9vbCBpc1BlcnNwZWN0aXZlTWF0cml4KCBtYXQ0IG0gKSB7CglyZXR1cm4gbVsgMiBdWyAzIF0gPT0gLSAxLjA7Cn0KdmVjMiBlcXVpcmVjdFV2KCBpbiB2ZWMzIGRpciApIHsKCWZsb2F0IHUgPSBhdGFuKCBkaXIueiwgZGlyLnggKSAqIFJFQ0lQUk9DQUxfUEkyICsgMC41OwoJZmxvYXQgdiA9IGFzaW4oIGNsYW1wKCBkaXIueSwgLSAxLjAsIDEuMCApICkgKiBSRUNJUFJPQ0FMX1BJICsgMC41OwoJcmV0dXJuIHZlYzIoIHUsIHYgKTsKfWAsVmZyPWAjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRV9VVgoJI2RlZmluZSBjdWJlVVZfbWF4TWlwTGV2ZWwgOC4wCgkjZGVmaW5lIGN1YmVVVl9taW5NaXBMZXZlbCA0LjAKCSNkZWZpbmUgY3ViZVVWX21heFRpbGVTaXplIDI1Ni4wCgkjZGVmaW5lIGN1YmVVVl9taW5UaWxlU2l6ZSAxNi4wCglmbG9hdCBnZXRGYWNlKCB2ZWMzIGRpcmVjdGlvbiApIHsKCQl2ZWMzIGFic0RpcmVjdGlvbiA9IGFicyggZGlyZWN0aW9uICk7CgkJZmxvYXQgZmFjZSA9IC0gMS4wOwoJCWlmICggYWJzRGlyZWN0aW9uLnggPiBhYnNEaXJlY3Rpb24ueiApIHsKCQkJaWYgKCBhYnNEaXJlY3Rpb24ueCA+IGFic0RpcmVjdGlvbi55ICkKCQkJCWZhY2UgPSBkaXJlY3Rpb24ueCA+IDAuMCA/IDAuMCA6IDMuMDsKCQkJZWxzZQoJCQkJZmFjZSA9IGRpcmVjdGlvbi55ID4gMC4wID8gMS4wIDogNC4wOwoJCX0gZWxzZSB7CgkJCWlmICggYWJzRGlyZWN0aW9uLnogPiBhYnNEaXJlY3Rpb24ueSApCgkJCQlmYWNlID0gZGlyZWN0aW9uLnogPiAwLjAgPyAyLjAgOiA1LjA7CgkJCWVsc2UKCQkJCWZhY2UgPSBkaXJlY3Rpb24ueSA+IDAuMCA/IDEuMCA6IDQuMDsKCQl9CgkJcmV0dXJuIGZhY2U7Cgl9Cgl2ZWMyIGdldFVWKCB2ZWMzIGRpcmVjdGlvbiwgZmxvYXQgZmFjZSApIHsKCQl2ZWMyIHV2OwoJCWlmICggZmFjZSA9PSAwLjAgKSB7CgkJCXV2ID0gdmVjMiggZGlyZWN0aW9uLnosIGRpcmVjdGlvbi55ICkgLyBhYnMoIGRpcmVjdGlvbi54ICk7CgkJfSBlbHNlIGlmICggZmFjZSA9PSAxLjAgKSB7CgkJCXV2ID0gdmVjMiggLSBkaXJlY3Rpb24ueCwgLSBkaXJlY3Rpb24ueiApIC8gYWJzKCBkaXJlY3Rpb24ueSApOwoJCX0gZWxzZSBpZiAoIGZhY2UgPT0gMi4wICkgewoJCQl1diA9IHZlYzIoIC0gZGlyZWN0aW9uLngsIGRpcmVjdGlvbi55ICkgLyBhYnMoIGRpcmVjdGlvbi56ICk7CgkJfSBlbHNlIGlmICggZmFjZSA9PSAzLjAgKSB7CgkJCXV2ID0gdmVjMiggLSBkaXJlY3Rpb24ueiwgZGlyZWN0aW9uLnkgKSAvIGFicyggZGlyZWN0aW9uLnggKTsKCQl9IGVsc2UgaWYgKCBmYWNlID09IDQuMCApIHsKCQkJdXYgPSB2ZWMyKCAtIGRpcmVjdGlvbi54LCBkaXJlY3Rpb24ueiApIC8gYWJzKCBkaXJlY3Rpb24ueSApOwoJCX0gZWxzZSB7CgkJCXV2ID0gdmVjMiggZGlyZWN0aW9uLngsIGRpcmVjdGlvbi55ICkgLyBhYnMoIGRpcmVjdGlvbi56ICk7CgkJfQoJCXJldHVybiAwLjUgKiAoIHV2ICsgMS4wICk7Cgl9Cgl2ZWMzIGJpbGluZWFyQ3ViZVVWKCBzYW1wbGVyMkQgZW52TWFwLCB2ZWMzIGRpcmVjdGlvbiwgZmxvYXQgbWlwSW50ICkgewoJCWZsb2F0IGZhY2UgPSBnZXRGYWNlKCBkaXJlY3Rpb24gKTsKCQlmbG9hdCBmaWx0ZXJJbnQgPSBtYXgoIGN1YmVVVl9taW5NaXBMZXZlbCAtIG1pcEludCwgMC4wICk7CgkJbWlwSW50ID0gbWF4KCBtaXBJbnQsIGN1YmVVVl9taW5NaXBMZXZlbCApOwoJCWZsb2F0IGZhY2VTaXplID0gZXhwMiggbWlwSW50ICk7CgkJZmxvYXQgdGV4ZWxTaXplID0gMS4wIC8gKCAzLjAgKiBjdWJlVVZfbWF4VGlsZVNpemUgKTsKCQl2ZWMyIHV2ID0gZ2V0VVYoIGRpcmVjdGlvbiwgZmFjZSApICogKCBmYWNlU2l6ZSAtIDEuMCApICsgMC41OwoJCWlmICggZmFjZSA+IDIuMCApIHsKCQkJdXYueSArPSBmYWNlU2l6ZTsKCQkJZmFjZSAtPSAzLjA7CgkJfQoJCXV2LnggKz0gZmFjZSAqIGZhY2VTaXplOwoJCWlmICggbWlwSW50IDwgY3ViZVVWX21heE1pcExldmVsICkgewoJCQl1di55ICs9IDIuMCAqIGN1YmVVVl9tYXhUaWxlU2l6ZTsKCQl9CgkJdXYueSArPSBmaWx0ZXJJbnQgKiAyLjAgKiBjdWJlVVZfbWluVGlsZVNpemU7CgkJdXYueCArPSAzLjAgKiBtYXgoIDAuMCwgY3ViZVVWX21heFRpbGVTaXplIC0gMi4wICogZmFjZVNpemUgKTsKCQl1diAqPSB0ZXhlbFNpemU7CgkJcmV0dXJuIHRleHR1cmUyRCggZW52TWFwLCB1diApLnJnYjsKCX0KCSNkZWZpbmUgcjAgMS4wCgkjZGVmaW5lIHYwIDAuMzM5CgkjZGVmaW5lIG0wIC0gMi4wCgkjZGVmaW5lIHIxIDAuOAoJI2RlZmluZSB2MSAwLjI3NgoJI2RlZmluZSBtMSAtIDEuMAoJI2RlZmluZSByNCAwLjQKCSNkZWZpbmUgdjQgMC4wNDYKCSNkZWZpbmUgbTQgMi4wCgkjZGVmaW5lIHI1IDAuMzA1CgkjZGVmaW5lIHY1IDAuMDE2CgkjZGVmaW5lIG01IDMuMAoJI2RlZmluZSByNiAwLjIxCgkjZGVmaW5lIHY2IDAuMDAzOAoJI2RlZmluZSBtNiA0LjAKCWZsb2F0IHJvdWdobmVzc1RvTWlwKCBmbG9hdCByb3VnaG5lc3MgKSB7CgkJZmxvYXQgbWlwID0gMC4wOwoJCWlmICggcm91Z2huZXNzID49IHIxICkgewoJCQltaXAgPSAoIHIwIC0gcm91Z2huZXNzICkgKiAoIG0xIC0gbTAgKSAvICggcjAgLSByMSApICsgbTA7CgkJfSBlbHNlIGlmICggcm91Z2huZXNzID49IHI0ICkgewoJCQltaXAgPSAoIHIxIC0gcm91Z2huZXNzICkgKiAoIG00IC0gbTEgKSAvICggcjEgLSByNCApICsgbTE7CgkJfSBlbHNlIGlmICggcm91Z2huZXNzID49IHI1ICkgewoJCQltaXAgPSAoIHI0IC0gcm91Z2huZXNzICkgKiAoIG01IC0gbTQgKSAvICggcjQgLSByNSApICsgbTQ7CgkJfSBlbHNlIGlmICggcm91Z2huZXNzID49IHI2ICkgewoJCQltaXAgPSAoIHI1IC0gcm91Z2huZXNzICkgKiAoIG02IC0gbTUgKSAvICggcjUgLSByNiApICsgbTU7CgkJfSBlbHNlIHsKCQkJbWlwID0gLSAyLjAgKiBsb2cyKCAxLjE2ICogcm91Z2huZXNzICk7CQl9CgkJcmV0dXJuIG1pcDsKCX0KCXZlYzQgdGV4dHVyZUN1YmVVViggc2FtcGxlcjJEIGVudk1hcCwgdmVjMyBzYW1wbGVEaXIsIGZsb2F0IHJvdWdobmVzcyApIHsKCQlmbG9hdCBtaXAgPSBjbGFtcCggcm91Z2huZXNzVG9NaXAoIHJvdWdobmVzcyApLCBtMCwgY3ViZVVWX21heE1pcExldmVsICk7CgkJZmxvYXQgbWlwRiA9IGZyYWN0KCBtaXAgKTsKCQlmbG9hdCBtaXBJbnQgPSBmbG9vciggbWlwICk7CgkJdmVjMyBjb2xvcjAgPSBiaWxpbmVhckN1YmVVViggZW52TWFwLCBzYW1wbGVEaXIsIG1pcEludCApOwoJCWlmICggbWlwRiA9PSAwLjAgKSB7CgkJCXJldHVybiB2ZWM0KCBjb2xvcjAsIDEuMCApOwoJCX0gZWxzZSB7CgkJCXZlYzMgY29sb3IxID0gYmlsaW5lYXJDdWJlVVYoIGVudk1hcCwgc2FtcGxlRGlyLCBtaXBJbnQgKyAxLjAgKTsKCQkJcmV0dXJuIHZlYzQoIG1peCggY29sb3IwLCBjb2xvcjEsIG1pcEYgKSwgMS4wICk7CgkJfQoJfQojZW5kaWZgLFVmcj1gdmVjMyB0cmFuc2Zvcm1lZE5vcm1hbCA9IG9iamVjdE5vcm1hbDsKI2lmZGVmIFVTRV9JTlNUQU5DSU5HCgltYXQzIG0gPSBtYXQzKCBpbnN0YW5jZU1hdHJpeCApOwoJdHJhbnNmb3JtZWROb3JtYWwgLz0gdmVjMyggZG90KCBtWyAwIF0sIG1bIDAgXSApLCBkb3QoIG1bIDEgXSwgbVsgMSBdICksIGRvdCggbVsgMiBdLCBtWyAyIF0gKSApOwoJdHJhbnNmb3JtZWROb3JtYWwgPSBtICogdHJhbnNmb3JtZWROb3JtYWw7CiNlbmRpZgp0cmFuc2Zvcm1lZE5vcm1hbCA9IG5vcm1hbE1hdHJpeCAqIHRyYW5zZm9ybWVkTm9ybWFsOwojaWZkZWYgRkxJUF9TSURFRAoJdHJhbnNmb3JtZWROb3JtYWwgPSAtIHRyYW5zZm9ybWVkTm9ybWFsOwojZW5kaWYKI2lmZGVmIFVTRV9UQU5HRU5UCgl2ZWMzIHRyYW5zZm9ybWVkVGFuZ2VudCA9ICggbW9kZWxWaWV3TWF0cml4ICogdmVjNCggb2JqZWN0VGFuZ2VudCwgMC4wICkgKS54eXo7CgkjaWZkZWYgRkxJUF9TSURFRAoJCXRyYW5zZm9ybWVkVGFuZ2VudCA9IC0gdHJhbnNmb3JtZWRUYW5nZW50OwoJI2VuZGlmCiNlbmRpZmAscWZyPWAjaWZkZWYgVVNFX0RJU1BMQUNFTUVOVE1BUAoJdW5pZm9ybSBzYW1wbGVyMkQgZGlzcGxhY2VtZW50TWFwOwoJdW5pZm9ybSBmbG9hdCBkaXNwbGFjZW1lbnRTY2FsZTsKCXVuaWZvcm0gZmxvYXQgZGlzcGxhY2VtZW50QmlhczsKI2VuZGlmYCxHZnI9YCNpZmRlZiBVU0VfRElTUExBQ0VNRU5UTUFQCgl0cmFuc2Zvcm1lZCArPSBub3JtYWxpemUoIG9iamVjdE5vcm1hbCApICogKCB0ZXh0dXJlMkQoIGRpc3BsYWNlbWVudE1hcCwgdlV2ICkueCAqIGRpc3BsYWNlbWVudFNjYWxlICsgZGlzcGxhY2VtZW50QmlhcyApOwojZW5kaWZgLFdmcj1gI2lmZGVmIFVTRV9FTUlTU0lWRU1BUAoJdmVjNCBlbWlzc2l2ZUNvbG9yID0gdGV4dHVyZTJEKCBlbWlzc2l2ZU1hcCwgdlV2ICk7Cgl0b3RhbEVtaXNzaXZlUmFkaWFuY2UgKj0gZW1pc3NpdmVDb2xvci5yZ2I7CiNlbmRpZmAsWWZyPWAjaWZkZWYgVVNFX0VNSVNTSVZFTUFQCgl1bmlmb3JtIHNhbXBsZXIyRCBlbWlzc2l2ZU1hcDsKI2VuZGlmYCxqZnI9ImdsX0ZyYWdDb2xvciA9IGxpbmVhclRvT3V0cHV0VGV4ZWwoIGdsX0ZyYWdDb2xvciApOyIsWGZyPWB2ZWM0IExpbmVhclRvTGluZWFyKCBpbiB2ZWM0IHZhbHVlICkgewoJcmV0dXJuIHZhbHVlOwp9CnZlYzQgTGluZWFyVG9zUkdCKCBpbiB2ZWM0IHZhbHVlICkgewoJcmV0dXJuIHZlYzQoIG1peCggcG93KCB2YWx1ZS5yZ2IsIHZlYzMoIDAuNDE2NjYgKSApICogMS4wNTUgLSB2ZWMzKCAwLjA1NSApLCB2YWx1ZS5yZ2IgKiAxMi45MiwgdmVjMyggbGVzc1RoYW5FcXVhbCggdmFsdWUucmdiLCB2ZWMzKCAwLjAwMzEzMDggKSApICkgKSwgdmFsdWUuYSApOwp9YCwkZnI9YCNpZmRlZiBVU0VfRU5WTUFQCgkjaWZkZWYgRU5WX1dPUkxEUE9TCgkJdmVjMyBjYW1lcmFUb0ZyYWc7CgkJaWYgKCBpc09ydGhvZ3JhcGhpYyApIHsKCQkJY2FtZXJhVG9GcmFnID0gbm9ybWFsaXplKCB2ZWMzKCAtIHZpZXdNYXRyaXhbIDAgXVsgMiBdLCAtIHZpZXdNYXRyaXhbIDEgXVsgMiBdLCAtIHZpZXdNYXRyaXhbIDIgXVsgMiBdICkgKTsKCQl9IGVsc2UgewoJCQljYW1lcmFUb0ZyYWcgPSBub3JtYWxpemUoIHZXb3JsZFBvc2l0aW9uIC0gY2FtZXJhUG9zaXRpb24gKTsKCQl9CgkJdmVjMyB3b3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIG5vcm1hbCwgdmlld01hdHJpeCApOwoJCSNpZmRlZiBFTlZNQVBfTU9ERV9SRUZMRUNUSU9OCgkJCXZlYzMgcmVmbGVjdFZlYyA9IHJlZmxlY3QoIGNhbWVyYVRvRnJhZywgd29ybGROb3JtYWwgKTsKCQkjZWxzZQoJCQl2ZWMzIHJlZmxlY3RWZWMgPSByZWZyYWN0KCBjYW1lcmFUb0ZyYWcsIHdvcmxkTm9ybWFsLCByZWZyYWN0aW9uUmF0aW8gKTsKCQkjZW5kaWYKCSNlbHNlCgkJdmVjMyByZWZsZWN0VmVjID0gdlJlZmxlY3Q7CgkjZW5kaWYKCSNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFCgkJdmVjNCBlbnZDb2xvciA9IHRleHR1cmVDdWJlKCBlbnZNYXAsIHZlYzMoIGZsaXBFbnZNYXAgKiByZWZsZWN0VmVjLngsIHJlZmxlY3RWZWMueXogKSApOwoJI2VsaWYgZGVmaW5lZCggRU5WTUFQX1RZUEVfQ1VCRV9VViApCgkJdmVjNCBlbnZDb2xvciA9IHRleHR1cmVDdWJlVVYoIGVudk1hcCwgcmVmbGVjdFZlYywgMC4wICk7CgkjZWxzZQoJCXZlYzQgZW52Q29sb3IgPSB2ZWM0KCAwLjAgKTsKCSNlbmRpZgoJI2lmZGVmIEVOVk1BUF9CTEVORElOR19NVUxUSVBMWQoJCW91dGdvaW5nTGlnaHQgPSBtaXgoIG91dGdvaW5nTGlnaHQsIG91dGdvaW5nTGlnaHQgKiBlbnZDb2xvci54eXosIHNwZWN1bGFyU3RyZW5ndGggKiByZWZsZWN0aXZpdHkgKTsKCSNlbGlmIGRlZmluZWQoIEVOVk1BUF9CTEVORElOR19NSVggKQoJCW91dGdvaW5nTGlnaHQgPSBtaXgoIG91dGdvaW5nTGlnaHQsIGVudkNvbG9yLnh5eiwgc3BlY3VsYXJTdHJlbmd0aCAqIHJlZmxlY3Rpdml0eSApOwoJI2VsaWYgZGVmaW5lZCggRU5WTUFQX0JMRU5ESU5HX0FERCApCgkJb3V0Z29pbmdMaWdodCArPSBlbnZDb2xvci54eXogKiBzcGVjdWxhclN0cmVuZ3RoICogcmVmbGVjdGl2aXR5OwoJI2VuZGlmCiNlbmRpZmAsS2ZyPWAjaWZkZWYgVVNFX0VOVk1BUAoJdW5pZm9ybSBmbG9hdCBlbnZNYXBJbnRlbnNpdHk7Cgl1bmlmb3JtIGZsb2F0IGZsaXBFbnZNYXA7CgkjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRQoJCXVuaWZvcm0gc2FtcGxlckN1YmUgZW52TWFwOwoJI2Vsc2UKCQl1bmlmb3JtIHNhbXBsZXIyRCBlbnZNYXA7CgkjZW5kaWYKCQojZW5kaWZgLFpmcj1gI2lmZGVmIFVTRV9FTlZNQVAKCXVuaWZvcm0gZmxvYXQgcmVmbGVjdGl2aXR5OwoJI2lmIGRlZmluZWQoIFVTRV9CVU1QTUFQICkgfHwgZGVmaW5lZCggVVNFX05PUk1BTE1BUCApIHx8IGRlZmluZWQoIFBIT05HICkKCQkjZGVmaW5lIEVOVl9XT1JMRFBPUwoJI2VuZGlmCgkjaWZkZWYgRU5WX1dPUkxEUE9TCgkJdmFyeWluZyB2ZWMzIHZXb3JsZFBvc2l0aW9uOwoJCXVuaWZvcm0gZmxvYXQgcmVmcmFjdGlvblJhdGlvOwoJI2Vsc2UKCQl2YXJ5aW5nIHZlYzMgdlJlZmxlY3Q7CgkjZW5kaWYKI2VuZGlmYCxKZnI9YCNpZmRlZiBVU0VfRU5WTUFQCgkjaWYgZGVmaW5lZCggVVNFX0JVTVBNQVAgKSB8fCBkZWZpbmVkKCBVU0VfTk9STUFMTUFQICkgfHxkZWZpbmVkKCBQSE9ORyApCgkJI2RlZmluZSBFTlZfV09STERQT1MKCSNlbmRpZgoJI2lmZGVmIEVOVl9XT1JMRFBPUwoJCQoJCXZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjsKCSNlbHNlCgkJdmFyeWluZyB2ZWMzIHZSZWZsZWN0OwoJCXVuaWZvcm0gZmxvYXQgcmVmcmFjdGlvblJhdGlvOwoJI2VuZGlmCiNlbmRpZmAsUWZyPWAjaWZkZWYgVVNFX0VOVk1BUAoJI2lmZGVmIEVOVl9XT1JMRFBPUwoJCXZXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbi54eXo7CgkjZWxzZQoJCXZlYzMgY2FtZXJhVG9WZXJ0ZXg7CgkJaWYgKCBpc09ydGhvZ3JhcGhpYyApIHsKCQkJY2FtZXJhVG9WZXJ0ZXggPSBub3JtYWxpemUoIHZlYzMoIC0gdmlld01hdHJpeFsgMCBdWyAyIF0sIC0gdmlld01hdHJpeFsgMSBdWyAyIF0sIC0gdmlld01hdHJpeFsgMiBdWyAyIF0gKSApOwoJCX0gZWxzZSB7CgkJCWNhbWVyYVRvVmVydGV4ID0gbm9ybWFsaXplKCB3b3JsZFBvc2l0aW9uLnh5eiAtIGNhbWVyYVBvc2l0aW9uICk7CgkJfQoJCXZlYzMgd29ybGROb3JtYWwgPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCB0cmFuc2Zvcm1lZE5vcm1hbCwgdmlld01hdHJpeCApOwoJCSNpZmRlZiBFTlZNQVBfTU9ERV9SRUZMRUNUSU9OCgkJCXZSZWZsZWN0ID0gcmVmbGVjdCggY2FtZXJhVG9WZXJ0ZXgsIHdvcmxkTm9ybWFsICk7CgkJI2Vsc2UKCQkJdlJlZmxlY3QgPSByZWZyYWN0KCBjYW1lcmFUb1ZlcnRleCwgd29ybGROb3JtYWwsIHJlZnJhY3Rpb25SYXRpbyApOwoJCSNlbmRpZgoJI2VuZGlmCiNlbmRpZmAsdHByPWAjaWZkZWYgVVNFX0ZPRwoJdkZvZ0RlcHRoID0gLSBtdlBvc2l0aW9uLno7CiNlbmRpZmAsZXByPWAjaWZkZWYgVVNFX0ZPRwoJdmFyeWluZyBmbG9hdCB2Rm9nRGVwdGg7CiNlbmRpZmAscnByPWAjaWZkZWYgVVNFX0ZPRwoJI2lmZGVmIEZPR19FWFAyCgkJZmxvYXQgZm9nRmFjdG9yID0gMS4wIC0gZXhwKCAtIGZvZ0RlbnNpdHkgKiBmb2dEZW5zaXR5ICogdkZvZ0RlcHRoICogdkZvZ0RlcHRoICk7CgkjZWxzZQoJCWZsb2F0IGZvZ0ZhY3RvciA9IHNtb290aHN0ZXAoIGZvZ05lYXIsIGZvZ0ZhciwgdkZvZ0RlcHRoICk7CgkjZW5kaWYKCWdsX0ZyYWdDb2xvci5yZ2IgPSBtaXgoIGdsX0ZyYWdDb2xvci5yZ2IsIGZvZ0NvbG9yLCBmb2dGYWN0b3IgKTsKI2VuZGlmYCxucHI9YCNpZmRlZiBVU0VfRk9HCgl1bmlmb3JtIHZlYzMgZm9nQ29sb3I7Cgl2YXJ5aW5nIGZsb2F0IHZGb2dEZXB0aDsKCSNpZmRlZiBGT0dfRVhQMgoJCXVuaWZvcm0gZmxvYXQgZm9nRGVuc2l0eTsKCSNlbHNlCgkJdW5pZm9ybSBmbG9hdCBmb2dOZWFyOwoJCXVuaWZvcm0gZmxvYXQgZm9nRmFyOwoJI2VuZGlmCiNlbmRpZmAsaXByPWAjaWZkZWYgVVNFX0dSQURJRU5UTUFQCgl1bmlmb3JtIHNhbXBsZXIyRCBncmFkaWVudE1hcDsKI2VuZGlmCnZlYzMgZ2V0R3JhZGllbnRJcnJhZGlhbmNlKCB2ZWMzIG5vcm1hbCwgdmVjMyBsaWdodERpcmVjdGlvbiApIHsKCWZsb2F0IGRvdE5MID0gZG90KCBub3JtYWwsIGxpZ2h0RGlyZWN0aW9uICk7Cgl2ZWMyIGNvb3JkID0gdmVjMiggZG90TkwgKiAwLjUgKyAwLjUsIDAuMCApOwoJI2lmZGVmIFVTRV9HUkFESUVOVE1BUAoJCXJldHVybiB2ZWMzKCB0ZXh0dXJlMkQoIGdyYWRpZW50TWFwLCBjb29yZCApLnIgKTsKCSNlbHNlCgkJcmV0dXJuICggY29vcmQueCA8IDAuNyApID8gdmVjMyggMC43ICkgOiB2ZWMzKCAxLjAgKTsKCSNlbmRpZgp9YCxvcHI9YCNpZmRlZiBVU0VfTElHSFRNQVAKCXZlYzQgbGlnaHRNYXBUZXhlbCA9IHRleHR1cmUyRCggbGlnaHRNYXAsIHZVdjIgKTsKCXZlYzMgbGlnaHRNYXBJcnJhZGlhbmNlID0gbGlnaHRNYXBUZXhlbC5yZ2IgKiBsaWdodE1hcEludGVuc2l0eTsKCSNpZm5kZWYgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUUwoJCWxpZ2h0TWFwSXJyYWRpYW5jZSAqPSBQSTsKCSNlbmRpZgoJcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGxpZ2h0TWFwSXJyYWRpYW5jZTsKI2VuZGlmYCxhcHI9YCNpZmRlZiBVU0VfTElHSFRNQVAKCXVuaWZvcm0gc2FtcGxlcjJEIGxpZ2h0TWFwOwoJdW5pZm9ybSBmbG9hdCBsaWdodE1hcEludGVuc2l0eTsKI2VuZGlmYCxzcHI9YHZlYzMgZGlmZnVzZSA9IHZlYzMoIDEuMCApOwpHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5OwpnZW9tZXRyeS5wb3NpdGlvbiA9IG12UG9zaXRpb24ueHl6OwpnZW9tZXRyeS5ub3JtYWwgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkTm9ybWFsICk7Cmdlb21ldHJ5LnZpZXdEaXIgPSAoIGlzT3J0aG9ncmFwaGljICkgPyB2ZWMzKCAwLCAwLCAxICkgOiBub3JtYWxpemUoIC1tdlBvc2l0aW9uLnh5eiApOwpHZW9tZXRyaWNDb250ZXh0IGJhY2tHZW9tZXRyeTsKYmFja0dlb21ldHJ5LnBvc2l0aW9uID0gZ2VvbWV0cnkucG9zaXRpb247CmJhY2tHZW9tZXRyeS5ub3JtYWwgPSAtZ2VvbWV0cnkubm9ybWFsOwpiYWNrR2VvbWV0cnkudmlld0RpciA9IGdlb21ldHJ5LnZpZXdEaXI7CnZMaWdodEZyb250ID0gdmVjMyggMC4wICk7CnZJbmRpcmVjdEZyb250ID0gdmVjMyggMC4wICk7CiNpZmRlZiBET1VCTEVfU0lERUQKCXZMaWdodEJhY2sgPSB2ZWMzKCAwLjAgKTsKCXZJbmRpcmVjdEJhY2sgPSB2ZWMzKCAwLjAgKTsKI2VuZGlmCkluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQ7CmZsb2F0IGRvdE5MOwp2ZWMzIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTsKdkluZGlyZWN0RnJvbnQgKz0gZ2V0QW1iaWVudExpZ2h0SXJyYWRpYW5jZSggYW1iaWVudExpZ2h0Q29sb3IgKTsKdkluZGlyZWN0RnJvbnQgKz0gZ2V0TGlnaHRQcm9iZUlycmFkaWFuY2UoIGxpZ2h0UHJvYmUsIGdlb21ldHJ5Lm5vcm1hbCApOwojaWZkZWYgRE9VQkxFX1NJREVECgl2SW5kaXJlY3RCYWNrICs9IGdldEFtYmllbnRMaWdodElycmFkaWFuY2UoIGFtYmllbnRMaWdodENvbG9yICk7Cgl2SW5kaXJlY3RCYWNrICs9IGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBsaWdodFByb2JlLCBiYWNrR2VvbWV0cnkubm9ybWFsICk7CiNlbmRpZgojaWYgTlVNX1BPSU5UX0xJR0hUUyA+IDAKCSNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnQKCWZvciAoIGludCBpID0gMDsgaSA8IE5VTV9QT0lOVF9MSUdIVFM7IGkgKysgKSB7CgkJZ2V0UG9pbnRMaWdodEluZm8oIHBvaW50TGlnaHRzWyBpIF0sIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApOwoJCWRvdE5MID0gZG90KCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApOwoJCWRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZSA9IGRpcmVjdExpZ2h0LmNvbG9yOwoJCXZMaWdodEZyb250ICs9IHNhdHVyYXRlKCBkb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlOwoJCSNpZmRlZiBET1VCTEVfU0lERUQKCQkJdkxpZ2h0QmFjayArPSBzYXR1cmF0ZSggLSBkb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlOwoJCSNlbmRpZgoJfQoJI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmQKI2VuZGlmCiNpZiBOVU1fU1BPVF9MSUdIVFMgPiAwCgkjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0Cglmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fU1BPVF9MSUdIVFM7IGkgKysgKSB7CgkJZ2V0U3BvdExpZ2h0SW5mbyggc3BvdExpZ2h0c1sgaSBdLCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTsKCQlkb3ROTCA9IGRvdCggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKTsKCQlkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2UgPSBkaXJlY3RMaWdodC5jb2xvcjsKCQl2TGlnaHRGcm9udCArPSBzYXR1cmF0ZSggZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTsKCQkjaWZkZWYgRE9VQkxFX1NJREVECgkJCXZMaWdodEJhY2sgKz0gc2F0dXJhdGUoIC0gZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTsKCQkjZW5kaWYKCX0KCSNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kCiNlbmRpZgojaWYgTlVNX0RJUl9MSUdIVFMgPiAwCgkjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0Cglmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fRElSX0xJR0hUUzsgaSArKyApIHsKCQlnZXREaXJlY3Rpb25hbExpZ2h0SW5mbyggZGlyZWN0aW9uYWxMaWdodHNbIGkgXSwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7CgkJZG90TkwgPSBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICk7CgkJZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlID0gZGlyZWN0TGlnaHQuY29sb3I7CgkJdkxpZ2h0RnJvbnQgKz0gc2F0dXJhdGUoIGRvdE5MICkgKiBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7CgkJI2lmZGVmIERPVUJMRV9TSURFRAoJCQl2TGlnaHRCYWNrICs9IHNhdHVyYXRlKCAtIGRvdE5MICkgKiBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7CgkJI2VuZGlmCgl9CgkjcHJhZ21hIHVucm9sbF9sb29wX2VuZAojZW5kaWYKI2lmIE5VTV9IRU1JX0xJR0hUUyA+IDAKCSNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnQKCWZvciAoIGludCBpID0gMDsgaSA8IE5VTV9IRU1JX0xJR0hUUzsgaSArKyApIHsKCQl2SW5kaXJlY3RGcm9udCArPSBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBoZW1pc3BoZXJlTGlnaHRzWyBpIF0sIGdlb21ldHJ5Lm5vcm1hbCApOwoJCSNpZmRlZiBET1VCTEVfU0lERUQKCQkJdkluZGlyZWN0QmFjayArPSBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBoZW1pc3BoZXJlTGlnaHRzWyBpIF0sIGJhY2tHZW9tZXRyeS5ub3JtYWwgKTsKCQkjZW5kaWYKCX0KCSNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kCiNlbmRpZmAsbHByPWB1bmlmb3JtIGJvb2wgcmVjZWl2ZVNoYWRvdzsKdW5pZm9ybSB2ZWMzIGFtYmllbnRMaWdodENvbG9yOwp1bmlmb3JtIHZlYzMgbGlnaHRQcm9iZVsgOSBdOwp2ZWMzIHNoR2V0SXJyYWRpYW5jZUF0KCBpbiB2ZWMzIG5vcm1hbCwgaW4gdmVjMyBzaENvZWZmaWNpZW50c1sgOSBdICkgewoJZmxvYXQgeCA9IG5vcm1hbC54LCB5ID0gbm9ybWFsLnksIHogPSBub3JtYWwuejsKCXZlYzMgcmVzdWx0ID0gc2hDb2VmZmljaWVudHNbIDAgXSAqIDAuODg2MjI3OwoJcmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyAxIF0gKiAyLjAgKiAwLjUxMTY2NCAqIHk7CglyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDIgXSAqIDIuMCAqIDAuNTExNjY0ICogejsKCXJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgMyBdICogMi4wICogMC41MTE2NjQgKiB4OwoJcmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA0IF0gKiAyLjAgKiAwLjQyOTA0MyAqIHggKiB5OwoJcmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA1IF0gKiAyLjAgKiAwLjQyOTA0MyAqIHkgKiB6OwoJcmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA2IF0gKiAoIDAuNzQzMTI1ICogeiAqIHogLSAwLjI0NzcwOCApOwoJcmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA3IF0gKiAyLjAgKiAwLjQyOTA0MyAqIHggKiB6OwoJcmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA4IF0gKiAwLjQyOTA0MyAqICggeCAqIHggLSB5ICogeSApOwoJcmV0dXJuIHJlc3VsdDsKfQp2ZWMzIGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBjb25zdCBpbiB2ZWMzIGxpZ2h0UHJvYmVbIDkgXSwgY29uc3QgaW4gdmVjMyBub3JtYWwgKSB7Cgl2ZWMzIHdvcmxkTm9ybWFsID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggbm9ybWFsLCB2aWV3TWF0cml4ICk7Cgl2ZWMzIGlycmFkaWFuY2UgPSBzaEdldElycmFkaWFuY2VBdCggd29ybGROb3JtYWwsIGxpZ2h0UHJvYmUgKTsKCXJldHVybiBpcnJhZGlhbmNlOwp9CnZlYzMgZ2V0QW1iaWVudExpZ2h0SXJyYWRpYW5jZSggY29uc3QgaW4gdmVjMyBhbWJpZW50TGlnaHRDb2xvciApIHsKCXZlYzMgaXJyYWRpYW5jZSA9IGFtYmllbnRMaWdodENvbG9yOwoJcmV0dXJuIGlycmFkaWFuY2U7Cn0KZmxvYXQgZ2V0RGlzdGFuY2VBdHRlbnVhdGlvbiggY29uc3QgaW4gZmxvYXQgbGlnaHREaXN0YW5jZSwgY29uc3QgaW4gZmxvYXQgY3V0b2ZmRGlzdGFuY2UsIGNvbnN0IGluIGZsb2F0IGRlY2F5RXhwb25lbnQgKSB7CgkjaWYgZGVmaW5lZCAoIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFMgKQoJCWZsb2F0IGRpc3RhbmNlRmFsbG9mZiA9IDEuMCAvIG1heCggcG93KCBsaWdodERpc3RhbmNlLCBkZWNheUV4cG9uZW50ICksIDAuMDEgKTsKCQlpZiAoIGN1dG9mZkRpc3RhbmNlID4gMC4wICkgewoJCQlkaXN0YW5jZUZhbGxvZmYgKj0gcG93Miggc2F0dXJhdGUoIDEuMCAtIHBvdzQoIGxpZ2h0RGlzdGFuY2UgLyBjdXRvZmZEaXN0YW5jZSApICkgKTsKCQl9CgkJcmV0dXJuIGRpc3RhbmNlRmFsbG9mZjsKCSNlbHNlCgkJaWYgKCBjdXRvZmZEaXN0YW5jZSA+IDAuMCAmJiBkZWNheUV4cG9uZW50ID4gMC4wICkgewoJCQlyZXR1cm4gcG93KCBzYXR1cmF0ZSggLSBsaWdodERpc3RhbmNlIC8gY3V0b2ZmRGlzdGFuY2UgKyAxLjAgKSwgZGVjYXlFeHBvbmVudCApOwoJCX0KCQlyZXR1cm4gMS4wOwoJI2VuZGlmCn0KZmxvYXQgZ2V0U3BvdEF0dGVudWF0aW9uKCBjb25zdCBpbiBmbG9hdCBjb25lQ29zaW5lLCBjb25zdCBpbiBmbG9hdCBwZW51bWJyYUNvc2luZSwgY29uc3QgaW4gZmxvYXQgYW5nbGVDb3NpbmUgKSB7CglyZXR1cm4gc21vb3Roc3RlcCggY29uZUNvc2luZSwgcGVudW1icmFDb3NpbmUsIGFuZ2xlQ29zaW5lICk7Cn0KI2lmIE5VTV9ESVJfTElHSFRTID4gMAoJc3RydWN0IERpcmVjdGlvbmFsTGlnaHQgewoJCXZlYzMgZGlyZWN0aW9uOwoJCXZlYzMgY29sb3I7Cgl9OwoJdW5pZm9ybSBEaXJlY3Rpb25hbExpZ2h0IGRpcmVjdGlvbmFsTGlnaHRzWyBOVU1fRElSX0xJR0hUUyBdOwoJdm9pZCBnZXREaXJlY3Rpb25hbExpZ2h0SW5mbyggY29uc3QgaW4gRGlyZWN0aW9uYWxMaWdodCBkaXJlY3Rpb25hbExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBvdXQgSW5jaWRlbnRMaWdodCBsaWdodCApIHsKCQlsaWdodC5jb2xvciA9IGRpcmVjdGlvbmFsTGlnaHQuY29sb3I7CgkJbGlnaHQuZGlyZWN0aW9uID0gZGlyZWN0aW9uYWxMaWdodC5kaXJlY3Rpb247CgkJbGlnaHQudmlzaWJsZSA9IHRydWU7Cgl9CiNlbmRpZgojaWYgTlVNX1BPSU5UX0xJR0hUUyA+IDAKCXN0cnVjdCBQb2ludExpZ2h0IHsKCQl2ZWMzIHBvc2l0aW9uOwoJCXZlYzMgY29sb3I7CgkJZmxvYXQgZGlzdGFuY2U7CgkJZmxvYXQgZGVjYXk7Cgl9OwoJdW5pZm9ybSBQb2ludExpZ2h0IHBvaW50TGlnaHRzWyBOVU1fUE9JTlRfTElHSFRTIF07Cgl2b2lkIGdldFBvaW50TGlnaHRJbmZvKCBjb25zdCBpbiBQb2ludExpZ2h0IHBvaW50TGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIG91dCBJbmNpZGVudExpZ2h0IGxpZ2h0ICkgewoJCXZlYzMgbFZlY3RvciA9IHBvaW50TGlnaHQucG9zaXRpb24gLSBnZW9tZXRyeS5wb3NpdGlvbjsKCQlsaWdodC5kaXJlY3Rpb24gPSBub3JtYWxpemUoIGxWZWN0b3IgKTsKCQlmbG9hdCBsaWdodERpc3RhbmNlID0gbGVuZ3RoKCBsVmVjdG9yICk7CgkJbGlnaHQuY29sb3IgPSBwb2ludExpZ2h0LmNvbG9yOwoJCWxpZ2h0LmNvbG9yICo9IGdldERpc3RhbmNlQXR0ZW51YXRpb24oIGxpZ2h0RGlzdGFuY2UsIHBvaW50TGlnaHQuZGlzdGFuY2UsIHBvaW50TGlnaHQuZGVjYXkgKTsKCQlsaWdodC52aXNpYmxlID0gKCBsaWdodC5jb2xvciAhPSB2ZWMzKCAwLjAgKSApOwoJfQojZW5kaWYKI2lmIE5VTV9TUE9UX0xJR0hUUyA+IDAKCXN0cnVjdCBTcG90TGlnaHQgewoJCXZlYzMgcG9zaXRpb247CgkJdmVjMyBkaXJlY3Rpb247CgkJdmVjMyBjb2xvcjsKCQlmbG9hdCBkaXN0YW5jZTsKCQlmbG9hdCBkZWNheTsKCQlmbG9hdCBjb25lQ29zOwoJCWZsb2F0IHBlbnVtYnJhQ29zOwoJfTsKCXVuaWZvcm0gU3BvdExpZ2h0IHNwb3RMaWdodHNbIE5VTV9TUE9UX0xJR0hUUyBdOwoJdm9pZCBnZXRTcG90TGlnaHRJbmZvKCBjb25zdCBpbiBTcG90TGlnaHQgc3BvdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBvdXQgSW5jaWRlbnRMaWdodCBsaWdodCApIHsKCQl2ZWMzIGxWZWN0b3IgPSBzcG90TGlnaHQucG9zaXRpb24gLSBnZW9tZXRyeS5wb3NpdGlvbjsKCQlsaWdodC5kaXJlY3Rpb24gPSBub3JtYWxpemUoIGxWZWN0b3IgKTsKCQlmbG9hdCBhbmdsZUNvcyA9IGRvdCggbGlnaHQuZGlyZWN0aW9uLCBzcG90TGlnaHQuZGlyZWN0aW9uICk7CgkJZmxvYXQgc3BvdEF0dGVudWF0aW9uID0gZ2V0U3BvdEF0dGVudWF0aW9uKCBzcG90TGlnaHQuY29uZUNvcywgc3BvdExpZ2h0LnBlbnVtYnJhQ29zLCBhbmdsZUNvcyApOwoJCWlmICggc3BvdEF0dGVudWF0aW9uID4gMC4wICkgewoJCQlmbG9hdCBsaWdodERpc3RhbmNlID0gbGVuZ3RoKCBsVmVjdG9yICk7CgkJCWxpZ2h0LmNvbG9yID0gc3BvdExpZ2h0LmNvbG9yICogc3BvdEF0dGVudWF0aW9uOwoJCQlsaWdodC5jb2xvciAqPSBnZXREaXN0YW5jZUF0dGVudWF0aW9uKCBsaWdodERpc3RhbmNlLCBzcG90TGlnaHQuZGlzdGFuY2UsIHNwb3RMaWdodC5kZWNheSApOwoJCQlsaWdodC52aXNpYmxlID0gKCBsaWdodC5jb2xvciAhPSB2ZWMzKCAwLjAgKSApOwoJCX0gZWxzZSB7CgkJCWxpZ2h0LmNvbG9yID0gdmVjMyggMC4wICk7CgkJCWxpZ2h0LnZpc2libGUgPSBmYWxzZTsKCQl9Cgl9CiNlbmRpZgojaWYgTlVNX1JFQ1RfQVJFQV9MSUdIVFMgPiAwCglzdHJ1Y3QgUmVjdEFyZWFMaWdodCB7CgkJdmVjMyBjb2xvcjsKCQl2ZWMzIHBvc2l0aW9uOwoJCXZlYzMgaGFsZldpZHRoOwoJCXZlYzMgaGFsZkhlaWdodDsKCX07Cgl1bmlmb3JtIHNhbXBsZXIyRCBsdGNfMTsJdW5pZm9ybSBzYW1wbGVyMkQgbHRjXzI7Cgl1bmlmb3JtIFJlY3RBcmVhTGlnaHQgcmVjdEFyZWFMaWdodHNbIE5VTV9SRUNUX0FSRUFfTElHSFRTIF07CiNlbmRpZgojaWYgTlVNX0hFTUlfTElHSFRTID4gMAoJc3RydWN0IEhlbWlzcGhlcmVMaWdodCB7CgkJdmVjMyBkaXJlY3Rpb247CgkJdmVjMyBza3lDb2xvcjsKCQl2ZWMzIGdyb3VuZENvbG9yOwoJfTsKCXVuaWZvcm0gSGVtaXNwaGVyZUxpZ2h0IGhlbWlzcGhlcmVMaWdodHNbIE5VTV9IRU1JX0xJR0hUUyBdOwoJdmVjMyBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBjb25zdCBpbiBIZW1pc3BoZXJlTGlnaHQgaGVtaUxpZ2h0LCBjb25zdCBpbiB2ZWMzIG5vcm1hbCApIHsKCQlmbG9hdCBkb3ROTCA9IGRvdCggbm9ybWFsLCBoZW1pTGlnaHQuZGlyZWN0aW9uICk7CgkJZmxvYXQgaGVtaURpZmZ1c2VXZWlnaHQgPSAwLjUgKiBkb3ROTCArIDAuNTsKCQl2ZWMzIGlycmFkaWFuY2UgPSBtaXgoIGhlbWlMaWdodC5ncm91bmRDb2xvciwgaGVtaUxpZ2h0LnNreUNvbG9yLCBoZW1pRGlmZnVzZVdlaWdodCApOwoJCXJldHVybiBpcnJhZGlhbmNlOwoJfQojZW5kaWZgLGNwcj1gI2lmIGRlZmluZWQoIFVTRV9FTlZNQVAgKQoJI2lmZGVmIEVOVk1BUF9NT0RFX1JFRlJBQ1RJT04KCQl1bmlmb3JtIGZsb2F0IHJlZnJhY3Rpb25SYXRpbzsKCSNlbmRpZgoJdmVjMyBnZXRJQkxJcnJhZGlhbmNlKCBjb25zdCBpbiB2ZWMzIG5vcm1hbCApIHsKCQkjaWYgZGVmaW5lZCggRU5WTUFQX1RZUEVfQ1VCRV9VViApCgkJCXZlYzMgd29ybGROb3JtYWwgPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCBub3JtYWwsIHZpZXdNYXRyaXggKTsKCQkJdmVjNCBlbnZNYXBDb2xvciA9IHRleHR1cmVDdWJlVVYoIGVudk1hcCwgd29ybGROb3JtYWwsIDEuMCApOwoJCQlyZXR1cm4gUEkgKiBlbnZNYXBDb2xvci5yZ2IgKiBlbnZNYXBJbnRlbnNpdHk7CgkJI2Vsc2UKCQkJcmV0dXJuIHZlYzMoIDAuMCApOwoJCSNlbmRpZgoJfQoJdmVjMyBnZXRJQkxSYWRpYW5jZSggY29uc3QgaW4gdmVjMyB2aWV3RGlyLCBjb25zdCBpbiB2ZWMzIG5vcm1hbCwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzICkgewoJCSNpZiBkZWZpbmVkKCBFTlZNQVBfVFlQRV9DVUJFX1VWICkKCQkJdmVjMyByZWZsZWN0VmVjOwoJCQkjaWZkZWYgRU5WTUFQX01PREVfUkVGTEVDVElPTgoJCQkJcmVmbGVjdFZlYyA9IHJlZmxlY3QoIC0gdmlld0Rpciwgbm9ybWFsICk7CgkJCQlyZWZsZWN0VmVjID0gbm9ybWFsaXplKCBtaXgoIHJlZmxlY3RWZWMsIG5vcm1hbCwgcm91Z2huZXNzICogcm91Z2huZXNzKSApOwoJCQkjZWxzZQoJCQkJcmVmbGVjdFZlYyA9IHJlZnJhY3QoIC0gdmlld0Rpciwgbm9ybWFsLCByZWZyYWN0aW9uUmF0aW8gKTsKCQkJI2VuZGlmCgkJCXJlZmxlY3RWZWMgPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCByZWZsZWN0VmVjLCB2aWV3TWF0cml4ICk7CgkJCXZlYzQgZW52TWFwQ29sb3IgPSB0ZXh0dXJlQ3ViZVVWKCBlbnZNYXAsIHJlZmxlY3RWZWMsIHJvdWdobmVzcyApOwoJCQlyZXR1cm4gZW52TWFwQ29sb3IucmdiICogZW52TWFwSW50ZW5zaXR5OwoJCSNlbHNlCgkJCXJldHVybiB2ZWMzKCAwLjAgKTsKCQkjZW5kaWYKCX0KI2VuZGlmYCx1cHI9YFRvb25NYXRlcmlhbCBtYXRlcmlhbDsKbWF0ZXJpYWwuZGlmZnVzZUNvbG9yID0gZGlmZnVzZUNvbG9yLnJnYjtgLGhwcj1gdmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247CnN0cnVjdCBUb29uTWF0ZXJpYWwgewoJdmVjMyBkaWZmdXNlQ29sb3I7Cn07CnZvaWQgUkVfRGlyZWN0X1Rvb24oIGNvbnN0IGluIEluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIFRvb25NYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7Cgl2ZWMzIGlycmFkaWFuY2UgPSBnZXRHcmFkaWVudElycmFkaWFuY2UoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICkgKiBkaXJlY3RMaWdodC5jb2xvcjsKCXJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7Cn0Kdm9pZCBSRV9JbmRpcmVjdERpZmZ1c2VfVG9vbiggY29uc3QgaW4gdmVjMyBpcnJhZGlhbmNlLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBUb29uTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkgewoJcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApOwp9CiNkZWZpbmUgUkVfRGlyZWN0CQkJCVJFX0RpcmVjdF9Ub29uCiNkZWZpbmUgUkVfSW5kaXJlY3REaWZmdXNlCQlSRV9JbmRpcmVjdERpZmZ1c2VfVG9vbgojZGVmaW5lIE1hdGVyaWFsX0xpZ2h0UHJvYmVMT0QoIG1hdGVyaWFsICkJKDApYCxmcHI9YEJsaW5uUGhvbmdNYXRlcmlhbCBtYXRlcmlhbDsKbWF0ZXJpYWwuZGlmZnVzZUNvbG9yID0gZGlmZnVzZUNvbG9yLnJnYjsKbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciA9IHNwZWN1bGFyOwptYXRlcmlhbC5zcGVjdWxhclNoaW5pbmVzcyA9IHNoaW5pbmVzczsKbWF0ZXJpYWwuc3BlY3VsYXJTdHJlbmd0aCA9IHNwZWN1bGFyU3RyZW5ndGg7YCxwcHI9YHZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uOwpzdHJ1Y3QgQmxpbm5QaG9uZ01hdGVyaWFsIHsKCXZlYzMgZGlmZnVzZUNvbG9yOwoJdmVjMyBzcGVjdWxhckNvbG9yOwoJZmxvYXQgc3BlY3VsYXJTaGluaW5lc3M7CglmbG9hdCBzcGVjdWxhclN0cmVuZ3RoOwp9Owp2b2lkIFJFX0RpcmVjdF9CbGlublBob25nKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBCbGlublBob25nTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkgewoJZmxvYXQgZG90TkwgPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApICk7Cgl2ZWMzIGlycmFkaWFuY2UgPSBkb3ROTCAqIGRpcmVjdExpZ2h0LmNvbG9yOwoJcmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArPSBpcnJhZGlhbmNlICogQlJERl9MYW1iZXJ0KCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKTsKCXJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICs9IGlycmFkaWFuY2UgKiBCUkRGX0JsaW5uUGhvbmcoIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiwgZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkubm9ybWFsLCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhclNoaW5pbmVzcyApICogbWF0ZXJpYWwuc3BlY3VsYXJTdHJlbmd0aDsKfQp2b2lkIFJFX0luZGlyZWN0RGlmZnVzZV9CbGlublBob25nKCBjb25zdCBpbiB2ZWMzIGlycmFkaWFuY2UsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIEJsaW5uUGhvbmdNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7CglyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7Cn0KI2RlZmluZSBSRV9EaXJlY3QJCQkJUkVfRGlyZWN0X0JsaW5uUGhvbmcKI2RlZmluZSBSRV9JbmRpcmVjdERpZmZ1c2UJCVJFX0luZGlyZWN0RGlmZnVzZV9CbGlublBob25nCiNkZWZpbmUgTWF0ZXJpYWxfTGlnaHRQcm9iZUxPRCggbWF0ZXJpYWwgKQkoMClgLGRwcj1gUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbDsKbWF0ZXJpYWwuZGlmZnVzZUNvbG9yID0gZGlmZnVzZUNvbG9yLnJnYiAqICggMS4wIC0gbWV0YWxuZXNzRmFjdG9yICk7CnZlYzMgZHh5ID0gbWF4KCBhYnMoIGRGZHgoIGdlb21ldHJ5Tm9ybWFsICkgKSwgYWJzKCBkRmR5KCBnZW9tZXRyeU5vcm1hbCApICkgKTsKZmxvYXQgZ2VvbWV0cnlSb3VnaG5lc3MgPSBtYXgoIG1heCggZHh5LngsIGR4eS55ICksIGR4eS56ICk7Cm1hdGVyaWFsLnJvdWdobmVzcyA9IG1heCggcm91Z2huZXNzRmFjdG9yLCAwLjA1MjUgKTttYXRlcmlhbC5yb3VnaG5lc3MgKz0gZ2VvbWV0cnlSb3VnaG5lc3M7Cm1hdGVyaWFsLnJvdWdobmVzcyA9IG1pbiggbWF0ZXJpYWwucm91Z2huZXNzLCAxLjAgKTsKI2lmZGVmIElPUgoJI2lmZGVmIFNQRUNVTEFSCgkJZmxvYXQgc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IgPSBzcGVjdWxhckludGVuc2l0eTsKCQl2ZWMzIHNwZWN1bGFyQ29sb3JGYWN0b3IgPSBzcGVjdWxhckNvbG9yOwoJCSNpZmRlZiBVU0VfU1BFQ1VMQVJJTlRFTlNJVFlNQVAKCQkJc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IgKj0gdGV4dHVyZTJEKCBzcGVjdWxhckludGVuc2l0eU1hcCwgdlV2ICkuYTsKCQkjZW5kaWYKCQkjaWZkZWYgVVNFX1NQRUNVTEFSQ09MT1JNQVAKCQkJc3BlY3VsYXJDb2xvckZhY3RvciAqPSB0ZXh0dXJlMkQoIHNwZWN1bGFyQ29sb3JNYXAsIHZVdiApLnJnYjsKCQkjZW5kaWYKCQltYXRlcmlhbC5zcGVjdWxhckY5MCA9IG1peCggc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IsIDEuMCwgbWV0YWxuZXNzRmFjdG9yICk7CgkjZWxzZQoJCWZsb2F0IHNwZWN1bGFySW50ZW5zaXR5RmFjdG9yID0gMS4wOwoJCXZlYzMgc3BlY3VsYXJDb2xvckZhY3RvciA9IHZlYzMoIDEuMCApOwoJCW1hdGVyaWFsLnNwZWN1bGFyRjkwID0gMS4wOwoJI2VuZGlmCgltYXRlcmlhbC5zcGVjdWxhckNvbG9yID0gbWl4KCBtaW4oIHBvdzIoICggaW9yIC0gMS4wICkgLyAoIGlvciArIDEuMCApICkgKiBzcGVjdWxhckNvbG9yRmFjdG9yLCB2ZWMzKCAxLjAgKSApICogc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IsIGRpZmZ1c2VDb2xvci5yZ2IsIG1ldGFsbmVzc0ZhY3RvciApOwojZWxzZQoJbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciA9IG1peCggdmVjMyggMC4wNCApLCBkaWZmdXNlQ29sb3IucmdiLCBtZXRhbG5lc3NGYWN0b3IgKTsKCW1hdGVyaWFsLnNwZWN1bGFyRjkwID0gMS4wOwojZW5kaWYKI2lmZGVmIFVTRV9DTEVBUkNPQVQKCW1hdGVyaWFsLmNsZWFyY29hdCA9IGNsZWFyY29hdDsKCW1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyA9IGNsZWFyY29hdFJvdWdobmVzczsKCW1hdGVyaWFsLmNsZWFyY29hdEYwID0gdmVjMyggMC4wNCApOwoJbWF0ZXJpYWwuY2xlYXJjb2F0RjkwID0gMS4wOwoJI2lmZGVmIFVTRV9DTEVBUkNPQVRNQVAKCQltYXRlcmlhbC5jbGVhcmNvYXQgKj0gdGV4dHVyZTJEKCBjbGVhcmNvYXRNYXAsIHZVdiApLng7CgkjZW5kaWYKCSNpZmRlZiBVU0VfQ0xFQVJDT0FUX1JPVUdITkVTU01BUAoJCW1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyAqPSB0ZXh0dXJlMkQoIGNsZWFyY29hdFJvdWdobmVzc01hcCwgdlV2ICkueTsKCSNlbmRpZgoJbWF0ZXJpYWwuY2xlYXJjb2F0ID0gc2F0dXJhdGUoIG1hdGVyaWFsLmNsZWFyY29hdCApOwltYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgPSBtYXgoIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcywgMC4wNTI1ICk7CgltYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgKz0gZ2VvbWV0cnlSb3VnaG5lc3M7CgltYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgPSBtaW4oIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcywgMS4wICk7CiNlbmRpZgojaWZkZWYgVVNFX1NIRUVOCgltYXRlcmlhbC5zaGVlbkNvbG9yID0gc2hlZW5Db2xvcjsKCSNpZmRlZiBVU0VfU0hFRU5DT0xPUk1BUAoJCW1hdGVyaWFsLnNoZWVuQ29sb3IgKj0gdGV4dHVyZTJEKCBzaGVlbkNvbG9yTWFwLCB2VXYgKS5yZ2I7CgkjZW5kaWYKCW1hdGVyaWFsLnNoZWVuUm91Z2huZXNzID0gY2xhbXAoIHNoZWVuUm91Z2huZXNzLCAwLjA3LCAxLjAgKTsKCSNpZmRlZiBVU0VfU0hFRU5ST1VHSE5FU1NNQVAKCQltYXRlcmlhbC5zaGVlblJvdWdobmVzcyAqPSB0ZXh0dXJlMkQoIHNoZWVuUm91Z2huZXNzTWFwLCB2VXYgKS5hOwoJI2VuZGlmCiNlbmRpZmAsbXByPWBzdHJ1Y3QgUGh5c2ljYWxNYXRlcmlhbCB7Cgl2ZWMzIGRpZmZ1c2VDb2xvcjsKCWZsb2F0IHJvdWdobmVzczsKCXZlYzMgc3BlY3VsYXJDb2xvcjsKCWZsb2F0IHNwZWN1bGFyRjkwOwoJI2lmZGVmIFVTRV9DTEVBUkNPQVQKCQlmbG9hdCBjbGVhcmNvYXQ7CgkJZmxvYXQgY2xlYXJjb2F0Um91Z2huZXNzOwoJCXZlYzMgY2xlYXJjb2F0RjA7CgkJZmxvYXQgY2xlYXJjb2F0RjkwOwoJI2VuZGlmCgkjaWZkZWYgVVNFX1NIRUVOCgkJdmVjMyBzaGVlbkNvbG9yOwoJCWZsb2F0IHNoZWVuUm91Z2huZXNzOwoJI2VuZGlmCn07CnZlYzMgY2xlYXJjb2F0U3BlY3VsYXIgPSB2ZWMzKCAwLjAgKTsKdmVjMyBzaGVlblNwZWN1bGFyID0gdmVjMyggMC4wICk7CmZsb2F0IElCTFNoZWVuQlJERiggY29uc3QgaW4gdmVjMyBub3JtYWwsIGNvbnN0IGluIHZlYzMgdmlld0RpciwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzKSB7CglmbG9hdCBkb3ROViA9IHNhdHVyYXRlKCBkb3QoIG5vcm1hbCwgdmlld0RpciApICk7CglmbG9hdCByMiA9IHJvdWdobmVzcyAqIHJvdWdobmVzczsKCWZsb2F0IGEgPSByb3VnaG5lc3MgPCAwLjI1ID8gLTMzOS4yICogcjIgKyAxNjEuNCAqIHJvdWdobmVzcyAtIDI1LjkgOiAtOC40OCAqIHIyICsgMTQuMyAqIHJvdWdobmVzcyAtIDkuOTU7CglmbG9hdCBiID0gcm91Z2huZXNzIDwgMC4yNSA/IDQ0LjAgKiByMiAtIDIzLjcgKiByb3VnaG5lc3MgKyAzLjI2IDogMS45NyAqIHIyIC0gMy4yNyAqIHJvdWdobmVzcyArIDAuNzI7CglmbG9hdCBERyA9IGV4cCggYSAqIGRvdE5WICsgYiApICsgKCByb3VnaG5lc3MgPCAwLjI1ID8gMC4wIDogMC4xICogKCByb3VnaG5lc3MgLSAwLjI1ICkgKTsKCXJldHVybiBzYXR1cmF0ZSggREcgKiBSRUNJUFJPQ0FMX1BJICk7Cn0KdmVjMiBERkdBcHByb3goIGNvbnN0IGluIHZlYzMgbm9ybWFsLCBjb25zdCBpbiB2ZWMzIHZpZXdEaXIsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHsKCWZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCB2aWV3RGlyICkgKTsKCWNvbnN0IHZlYzQgYzAgPSB2ZWM0KCAtIDEsIC0gMC4wMjc1LCAtIDAuNTcyLCAwLjAyMiApOwoJY29uc3QgdmVjNCBjMSA9IHZlYzQoIDEsIDAuMDQyNSwgMS4wNCwgLSAwLjA0ICk7Cgl2ZWM0IHIgPSByb3VnaG5lc3MgKiBjMCArIGMxOwoJZmxvYXQgYTAwNCA9IG1pbiggci54ICogci54LCBleHAyKCAtIDkuMjggKiBkb3ROViApICkgKiByLnggKyByLnk7Cgl2ZWMyIGZhYiA9IHZlYzIoIC0gMS4wNCwgMS4wNCApICogYTAwNCArIHIuenc7CglyZXR1cm4gZmFiOwp9CnZlYzMgRW52aXJvbm1lbnRCUkRGKCBjb25zdCBpbiB2ZWMzIG5vcm1hbCwgY29uc3QgaW4gdmVjMyB2aWV3RGlyLCBjb25zdCBpbiB2ZWMzIHNwZWN1bGFyQ29sb3IsIGNvbnN0IGluIGZsb2F0IHNwZWN1bGFyRjkwLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7Cgl2ZWMyIGZhYiA9IERGR0FwcHJveCggbm9ybWFsLCB2aWV3RGlyLCByb3VnaG5lc3MgKTsKCXJldHVybiBzcGVjdWxhckNvbG9yICogZmFiLnggKyBzcGVjdWxhckY5MCAqIGZhYi55Owp9CnZvaWQgY29tcHV0ZU11bHRpc2NhdHRlcmluZyggY29uc3QgaW4gdmVjMyBub3JtYWwsIGNvbnN0IGluIHZlYzMgdmlld0RpciwgY29uc3QgaW4gdmVjMyBzcGVjdWxhckNvbG9yLCBjb25zdCBpbiBmbG9hdCBzcGVjdWxhckY5MCwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBpbm91dCB2ZWMzIHNpbmdsZVNjYXR0ZXIsIGlub3V0IHZlYzMgbXVsdGlTY2F0dGVyICkgewoJdmVjMiBmYWIgPSBERkdBcHByb3goIG5vcm1hbCwgdmlld0Rpciwgcm91Z2huZXNzICk7Cgl2ZWMzIEZzc0VzcyA9IHNwZWN1bGFyQ29sb3IgKiBmYWIueCArIHNwZWN1bGFyRjkwICogZmFiLnk7CglmbG9hdCBFc3MgPSBmYWIueCArIGZhYi55OwoJZmxvYXQgRW1zID0gMS4wIC0gRXNzOwoJdmVjMyBGYXZnID0gc3BlY3VsYXJDb2xvciArICggMS4wIC0gc3BlY3VsYXJDb2xvciApICogMC4wNDc2MTk7CXZlYzMgRm1zID0gRnNzRXNzICogRmF2ZyAvICggMS4wIC0gRW1zICogRmF2ZyApOwoJc2luZ2xlU2NhdHRlciArPSBGc3NFc3M7CgltdWx0aVNjYXR0ZXIgKz0gRm1zICogRW1zOwp9CiNpZiBOVU1fUkVDVF9BUkVBX0xJR0hUUyA+IDAKCXZvaWQgUkVfRGlyZWN0X1JlY3RBcmVhX1BoeXNpY2FsKCBjb25zdCBpbiBSZWN0QXJlYUxpZ2h0IHJlY3RBcmVhTGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIFBoeXNpY2FsTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkgewoJCXZlYzMgbm9ybWFsID0gZ2VvbWV0cnkubm9ybWFsOwoJCXZlYzMgdmlld0RpciA9IGdlb21ldHJ5LnZpZXdEaXI7CgkJdmVjMyBwb3NpdGlvbiA9IGdlb21ldHJ5LnBvc2l0aW9uOwoJCXZlYzMgbGlnaHRQb3MgPSByZWN0QXJlYUxpZ2h0LnBvc2l0aW9uOwoJCXZlYzMgaGFsZldpZHRoID0gcmVjdEFyZWFMaWdodC5oYWxmV2lkdGg7CgkJdmVjMyBoYWxmSGVpZ2h0ID0gcmVjdEFyZWFMaWdodC5oYWxmSGVpZ2h0OwoJCXZlYzMgbGlnaHRDb2xvciA9IHJlY3RBcmVhTGlnaHQuY29sb3I7CgkJZmxvYXQgcm91Z2huZXNzID0gbWF0ZXJpYWwucm91Z2huZXNzOwoJCXZlYzMgcmVjdENvb3Jkc1sgNCBdOwoJCXJlY3RDb29yZHNbIDAgXSA9IGxpZ2h0UG9zICsgaGFsZldpZHRoIC0gaGFsZkhlaWdodDsJCXJlY3RDb29yZHNbIDEgXSA9IGxpZ2h0UG9zIC0gaGFsZldpZHRoIC0gaGFsZkhlaWdodDsKCQlyZWN0Q29vcmRzWyAyIF0gPSBsaWdodFBvcyAtIGhhbGZXaWR0aCArIGhhbGZIZWlnaHQ7CgkJcmVjdENvb3Jkc1sgMyBdID0gbGlnaHRQb3MgKyBoYWxmV2lkdGggKyBoYWxmSGVpZ2h0OwoJCXZlYzIgdXYgPSBMVENfVXYoIG5vcm1hbCwgdmlld0Rpciwgcm91Z2huZXNzICk7CgkJdmVjNCB0MSA9IHRleHR1cmUyRCggbHRjXzEsIHV2ICk7CgkJdmVjNCB0MiA9IHRleHR1cmUyRCggbHRjXzIsIHV2ICk7CgkJbWF0MyBtSW52ID0gbWF0MygKCQkJdmVjMyggdDEueCwgMCwgdDEueSApLAoJCQl2ZWMzKCAgICAwLCAxLCAgICAwICksCgkJCXZlYzMoIHQxLnosIDAsIHQxLncgKQoJCSk7CgkJdmVjMyBmcmVzbmVsID0gKCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yICogdDIueCArICggdmVjMyggMS4wICkgLSBtYXRlcmlhbC5zcGVjdWxhckNvbG9yICkgKiB0Mi55ICk7CgkJcmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKz0gbGlnaHRDb2xvciAqIGZyZXNuZWwgKiBMVENfRXZhbHVhdGUoIG5vcm1hbCwgdmlld0RpciwgcG9zaXRpb24sIG1JbnYsIHJlY3RDb29yZHMgKTsKCQlyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICs9IGxpZ2h0Q29sb3IgKiBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKiBMVENfRXZhbHVhdGUoIG5vcm1hbCwgdmlld0RpciwgcG9zaXRpb24sIG1hdDMoIDEuMCApLCByZWN0Q29vcmRzICk7Cgl9CiNlbmRpZgp2b2lkIFJFX0RpcmVjdF9QaHlzaWNhbCggY29uc3QgaW4gSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7CglmbG9hdCBkb3ROTCA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICkgKTsKCXZlYzMgaXJyYWRpYW5jZSA9IGRvdE5MICogZGlyZWN0TGlnaHQuY29sb3I7CgkjaWZkZWYgVVNFX0NMRUFSQ09BVAoJCWZsb2F0IGRvdE5MY2MgPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApICk7CgkJdmVjMyBjY0lycmFkaWFuY2UgPSBkb3ROTGNjICogZGlyZWN0TGlnaHQuY29sb3I7CgkJY2xlYXJjb2F0U3BlY3VsYXIgKz0gY2NJcnJhZGlhbmNlICogQlJERl9HR1goIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiwgZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsLCBtYXRlcmlhbC5jbGVhcmNvYXRGMCwgbWF0ZXJpYWwuY2xlYXJjb2F0RjkwLCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgKTsKCSNlbmRpZgoJI2lmZGVmIFVTRV9TSEVFTgoJCXNoZWVuU3BlY3VsYXIgKz0gaXJyYWRpYW5jZSAqIEJSREZfU2hlZW4oIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiwgZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkubm9ybWFsLCBtYXRlcmlhbC5zaGVlbkNvbG9yLCBtYXRlcmlhbC5zaGVlblJvdWdobmVzcyApOwoJI2VuZGlmCglyZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArPSBpcnJhZGlhbmNlICogQlJERl9HR1goIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiwgZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkubm9ybWFsLCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhckY5MCwgbWF0ZXJpYWwucm91Z2huZXNzICk7CglyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApOwp9CnZvaWQgUkVfSW5kaXJlY3REaWZmdXNlX1BoeXNpY2FsKCBjb25zdCBpbiB2ZWMzIGlycmFkaWFuY2UsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIFBoeXNpY2FsTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkgewoJcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApOwp9CnZvaWQgUkVfSW5kaXJlY3RTcGVjdWxhcl9QaHlzaWNhbCggY29uc3QgaW4gdmVjMyByYWRpYW5jZSwgY29uc3QgaW4gdmVjMyBpcnJhZGlhbmNlLCBjb25zdCBpbiB2ZWMzIGNsZWFyY29hdFJhZGlhbmNlLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBQaHlzaWNhbE1hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCkgewoJI2lmZGVmIFVTRV9DTEVBUkNPQVQKCQljbGVhcmNvYXRTcGVjdWxhciArPSBjbGVhcmNvYXRSYWRpYW5jZSAqIEVudmlyb25tZW50QlJERiggZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsLCBnZW9tZXRyeS52aWV3RGlyLCBtYXRlcmlhbC5jbGVhcmNvYXRGMCwgbWF0ZXJpYWwuY2xlYXJjb2F0RjkwLCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgKTsKCSNlbmRpZgoJI2lmZGVmIFVTRV9TSEVFTgoJCXNoZWVuU3BlY3VsYXIgKz0gaXJyYWRpYW5jZSAqIG1hdGVyaWFsLnNoZWVuQ29sb3IgKiBJQkxTaGVlbkJSREYoIGdlb21ldHJ5Lm5vcm1hbCwgZ2VvbWV0cnkudmlld0RpciwgbWF0ZXJpYWwuc2hlZW5Sb3VnaG5lc3MgKTsKCSNlbmRpZgoJdmVjMyBzaW5nbGVTY2F0dGVyaW5nID0gdmVjMyggMC4wICk7Cgl2ZWMzIG11bHRpU2NhdHRlcmluZyA9IHZlYzMoIDAuMCApOwoJdmVjMyBjb3NpbmVXZWlnaHRlZElycmFkaWFuY2UgPSBpcnJhZGlhbmNlICogUkVDSVBST0NBTF9QSTsKCWNvbXB1dGVNdWx0aXNjYXR0ZXJpbmcoIGdlb21ldHJ5Lm5vcm1hbCwgZ2VvbWV0cnkudmlld0RpciwgbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJGOTAsIG1hdGVyaWFsLnJvdWdobmVzcywgc2luZ2xlU2NhdHRlcmluZywgbXVsdGlTY2F0dGVyaW5nICk7Cgl2ZWMzIGRpZmZ1c2UgPSBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKiAoIDEuMCAtICggc2luZ2xlU2NhdHRlcmluZyArIG11bHRpU2NhdHRlcmluZyApICk7CglyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICs9IHJhZGlhbmNlICogc2luZ2xlU2NhdHRlcmluZzsKCXJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXIgKz0gbXVsdGlTY2F0dGVyaW5nICogY29zaW5lV2VpZ2h0ZWRJcnJhZGlhbmNlOwoJcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGRpZmZ1c2UgKiBjb3NpbmVXZWlnaHRlZElycmFkaWFuY2U7Cn0KI2RlZmluZSBSRV9EaXJlY3QJCQkJUkVfRGlyZWN0X1BoeXNpY2FsCiNkZWZpbmUgUkVfRGlyZWN0X1JlY3RBcmVhCQlSRV9EaXJlY3RfUmVjdEFyZWFfUGh5c2ljYWwKI2RlZmluZSBSRV9JbmRpcmVjdERpZmZ1c2UJCVJFX0luZGlyZWN0RGlmZnVzZV9QaHlzaWNhbAojZGVmaW5lIFJFX0luZGlyZWN0U3BlY3VsYXIJCVJFX0luZGlyZWN0U3BlY3VsYXJfUGh5c2ljYWwKZmxvYXQgY29tcHV0ZVNwZWN1bGFyT2NjbHVzaW9uKCBjb25zdCBpbiBmbG9hdCBkb3ROViwgY29uc3QgaW4gZmxvYXQgYW1iaWVudE9jY2x1c2lvbiwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzICkgewoJcmV0dXJuIHNhdHVyYXRlKCBwb3coIGRvdE5WICsgYW1iaWVudE9jY2x1c2lvbiwgZXhwMiggLSAxNi4wICogcm91Z2huZXNzIC0gMS4wICkgKSAtIDEuMCArIGFtYmllbnRPY2NsdXNpb24gKTsKfWAsZ3ByPWAKR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeTsKZ2VvbWV0cnkucG9zaXRpb24gPSAtIHZWaWV3UG9zaXRpb247Cmdlb21ldHJ5Lm5vcm1hbCA9IG5vcm1hbDsKZ2VvbWV0cnkudmlld0RpciA9ICggaXNPcnRob2dyYXBoaWMgKSA/IHZlYzMoIDAsIDAsIDEgKSA6IG5vcm1hbGl6ZSggdlZpZXdQb3NpdGlvbiApOwojaWZkZWYgVVNFX0NMRUFSQ09BVAoJZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsID0gY2xlYXJjb2F0Tm9ybWFsOwojZW5kaWYKSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodDsKI2lmICggTlVNX1BPSU5UX0xJR0hUUyA+IDAgKSAmJiBkZWZpbmVkKCBSRV9EaXJlY3QgKQoJUG9pbnRMaWdodCBwb2ludExpZ2h0OwoJI2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDAKCVBvaW50TGlnaHRTaGFkb3cgcG9pbnRMaWdodFNoYWRvdzsKCSNlbmRpZgoJI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydAoJZm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1BPSU5UX0xJR0hUUzsgaSArKyApIHsKCQlwb2ludExpZ2h0ID0gcG9pbnRMaWdodHNbIGkgXTsKCQlnZXRQb2ludExpZ2h0SW5mbyggcG9pbnRMaWdodCwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7CgkJI2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiAoIFVOUk9MTEVEX0xPT1BfSU5ERVggPCBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyApCgkJcG9pbnRMaWdodFNoYWRvdyA9IHBvaW50TGlnaHRTaGFkb3dzWyBpIF07CgkJZGlyZWN0TGlnaHQuY29sb3IgKj0gYWxsKCBidmVjMiggZGlyZWN0TGlnaHQudmlzaWJsZSwgcmVjZWl2ZVNoYWRvdyApICkgPyBnZXRQb2ludFNoYWRvdyggcG9pbnRTaGFkb3dNYXBbIGkgXSwgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dNYXBTaXplLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd0JpYXMsIHBvaW50TGlnaHRTaGFkb3cuc2hhZG93UmFkaXVzLCB2UG9pbnRTaGFkb3dDb29yZFsgaSBdLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd0NhbWVyYU5lYXIsIHBvaW50TGlnaHRTaGFkb3cuc2hhZG93Q2FtZXJhRmFyICkgOiAxLjA7CgkJI2VuZGlmCgkJUkVfRGlyZWN0KCBkaXJlY3RMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLCByZWZsZWN0ZWRMaWdodCApOwoJfQoJI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmQKI2VuZGlmCiNpZiAoIE5VTV9TUE9UX0xJR0hUUyA+IDAgKSAmJiBkZWZpbmVkKCBSRV9EaXJlY3QgKQoJU3BvdExpZ2h0IHNwb3RMaWdodDsKCSNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDAKCVNwb3RMaWdodFNoYWRvdyBzcG90TGlnaHRTaGFkb3c7CgkjZW5kaWYKCSNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnQKCWZvciAoIGludCBpID0gMDsgaSA8IE5VTV9TUE9UX0xJR0hUUzsgaSArKyApIHsKCQlzcG90TGlnaHQgPSBzcG90TGlnaHRzWyBpIF07CgkJZ2V0U3BvdExpZ2h0SW5mbyggc3BvdExpZ2h0LCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTsKCQkjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmICggVU5ST0xMRURfTE9PUF9JTkRFWCA8IE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgKQoJCXNwb3RMaWdodFNoYWRvdyA9IHNwb3RMaWdodFNoYWRvd3NbIGkgXTsKCQlkaXJlY3RMaWdodC5jb2xvciAqPSBhbGwoIGJ2ZWMyKCBkaXJlY3RMaWdodC52aXNpYmxlLCByZWNlaXZlU2hhZG93ICkgKSA/IGdldFNoYWRvdyggc3BvdFNoYWRvd01hcFsgaSBdLCBzcG90TGlnaHRTaGFkb3cuc2hhZG93TWFwU2l6ZSwgc3BvdExpZ2h0U2hhZG93LnNoYWRvd0JpYXMsIHNwb3RMaWdodFNoYWRvdy5zaGFkb3dSYWRpdXMsIHZTcG90U2hhZG93Q29vcmRbIGkgXSApIDogMS4wOwoJCSNlbmRpZgoJCVJFX0RpcmVjdCggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTsKCX0KCSNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kCiNlbmRpZgojaWYgKCBOVU1fRElSX0xJR0hUUyA+IDAgKSAmJiBkZWZpbmVkKCBSRV9EaXJlY3QgKQoJRGlyZWN0aW9uYWxMaWdodCBkaXJlY3Rpb25hbExpZ2h0OwoJI2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiBOVU1fRElSX0xJR0hUX1NIQURPV1MgPiAwCglEaXJlY3Rpb25hbExpZ2h0U2hhZG93IGRpcmVjdGlvbmFsTGlnaHRTaGFkb3c7CgkjZW5kaWYKCSNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnQKCWZvciAoIGludCBpID0gMDsgaSA8IE5VTV9ESVJfTElHSFRTOyBpICsrICkgewoJCWRpcmVjdGlvbmFsTGlnaHQgPSBkaXJlY3Rpb25hbExpZ2h0c1sgaSBdOwoJCWdldERpcmVjdGlvbmFsTGlnaHRJbmZvKCBkaXJlY3Rpb25hbExpZ2h0LCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTsKCQkjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmICggVU5ST0xMRURfTE9PUF9JTkRFWCA8IE5VTV9ESVJfTElHSFRfU0hBRE9XUyApCgkJZGlyZWN0aW9uYWxMaWdodFNoYWRvdyA9IGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzWyBpIF07CgkJZGlyZWN0TGlnaHQuY29sb3IgKj0gYWxsKCBidmVjMiggZGlyZWN0TGlnaHQudmlzaWJsZSwgcmVjZWl2ZVNoYWRvdyApICkgPyBnZXRTaGFkb3coIGRpcmVjdGlvbmFsU2hhZG93TWFwWyBpIF0sIGRpcmVjdGlvbmFsTGlnaHRTaGFkb3cuc2hhZG93TWFwU2l6ZSwgZGlyZWN0aW9uYWxMaWdodFNoYWRvdy5zaGFkb3dCaWFzLCBkaXJlY3Rpb25hbExpZ2h0U2hhZG93LnNoYWRvd1JhZGl1cywgdkRpcmVjdGlvbmFsU2hhZG93Q29vcmRbIGkgXSApIDogMS4wOwoJCSNlbmRpZgoJCVJFX0RpcmVjdCggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTsKCX0KCSNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kCiNlbmRpZgojaWYgKCBOVU1fUkVDVF9BUkVBX0xJR0hUUyA+IDAgKSAmJiBkZWZpbmVkKCBSRV9EaXJlY3RfUmVjdEFyZWEgKQoJUmVjdEFyZWFMaWdodCByZWN0QXJlYUxpZ2h0OwoJI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydAoJZm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1JFQ1RfQVJFQV9MSUdIVFM7IGkgKysgKSB7CgkJcmVjdEFyZWFMaWdodCA9IHJlY3RBcmVhTGlnaHRzWyBpIF07CgkJUkVfRGlyZWN0X1JlY3RBcmVhKCByZWN0QXJlYUxpZ2h0LCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7Cgl9CgkjcHJhZ21hIHVucm9sbF9sb29wX2VuZAojZW5kaWYKI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0RGlmZnVzZSApCgl2ZWMzIGlibElycmFkaWFuY2UgPSB2ZWMzKCAwLjAgKTsKCXZlYzMgaXJyYWRpYW5jZSA9IGdldEFtYmllbnRMaWdodElycmFkaWFuY2UoIGFtYmllbnRMaWdodENvbG9yICk7CglpcnJhZGlhbmNlICs9IGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBsaWdodFByb2JlLCBnZW9tZXRyeS5ub3JtYWwgKTsKCSNpZiAoIE5VTV9IRU1JX0xJR0hUUyA+IDAgKQoJCSNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnQKCQlmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fSEVNSV9MSUdIVFM7IGkgKysgKSB7CgkJCWlycmFkaWFuY2UgKz0gZ2V0SGVtaXNwaGVyZUxpZ2h0SXJyYWRpYW5jZSggaGVtaXNwaGVyZUxpZ2h0c1sgaSBdLCBnZW9tZXRyeS5ub3JtYWwgKTsKCQl9CgkJI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmQKCSNlbmRpZgojZW5kaWYKI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0U3BlY3VsYXIgKQoJdmVjMyByYWRpYW5jZSA9IHZlYzMoIDAuMCApOwoJdmVjMyBjbGVhcmNvYXRSYWRpYW5jZSA9IHZlYzMoIDAuMCApOwojZW5kaWZgLF9wcj1gI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0RGlmZnVzZSApCgkjaWZkZWYgVVNFX0xJR0hUTUFQCgkJdmVjNCBsaWdodE1hcFRleGVsID0gdGV4dHVyZTJEKCBsaWdodE1hcCwgdlV2MiApOwoJCXZlYzMgbGlnaHRNYXBJcnJhZGlhbmNlID0gbGlnaHRNYXBUZXhlbC5yZ2IgKiBsaWdodE1hcEludGVuc2l0eTsKCQkjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFMKCQkJbGlnaHRNYXBJcnJhZGlhbmNlICo9IFBJOwoJCSNlbmRpZgoJCWlycmFkaWFuY2UgKz0gbGlnaHRNYXBJcnJhZGlhbmNlOwoJI2VuZGlmCgkjaWYgZGVmaW5lZCggVVNFX0VOVk1BUCApICYmIGRlZmluZWQoIFNUQU5EQVJEICkgJiYgZGVmaW5lZCggRU5WTUFQX1RZUEVfQ1VCRV9VViApCgkJaWJsSXJyYWRpYW5jZSArPSBnZXRJQkxJcnJhZGlhbmNlKCBnZW9tZXRyeS5ub3JtYWwgKTsKCSNlbmRpZgojZW5kaWYKI2lmIGRlZmluZWQoIFVTRV9FTlZNQVAgKSAmJiBkZWZpbmVkKCBSRV9JbmRpcmVjdFNwZWN1bGFyICkKCXJhZGlhbmNlICs9IGdldElCTFJhZGlhbmNlKCBnZW9tZXRyeS52aWV3RGlyLCBnZW9tZXRyeS5ub3JtYWwsIG1hdGVyaWFsLnJvdWdobmVzcyApOwoJI2lmZGVmIFVTRV9DTEVBUkNPQVQKCQljbGVhcmNvYXRSYWRpYW5jZSArPSBnZXRJQkxSYWRpYW5jZSggZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsLCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgKTsKCSNlbmRpZgojZW5kaWZgLHlwcj1gI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0RGlmZnVzZSApCglSRV9JbmRpcmVjdERpZmZ1c2UoIGlycmFkaWFuY2UsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTsKI2VuZGlmCiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdFNwZWN1bGFyICkKCVJFX0luZGlyZWN0U3BlY3VsYXIoIHJhZGlhbmNlLCBpYmxJcnJhZGlhbmNlLCBjbGVhcmNvYXRSYWRpYW5jZSwgZ2VvbWV0cnksIG1hdGVyaWFsLCByZWZsZWN0ZWRMaWdodCApOwojZW5kaWZgLHZwcj1gI2lmIGRlZmluZWQoIFVTRV9MT0dERVBUSEJVRiApICYmIGRlZmluZWQoIFVTRV9MT0dERVBUSEJVRl9FWFQgKQoJZ2xfRnJhZ0RlcHRoRVhUID0gdklzUGVyc3BlY3RpdmUgPT0gMC4wID8gZ2xfRnJhZ0Nvb3JkLnogOiBsb2cyKCB2RnJhZ0RlcHRoICkgKiBsb2dEZXB0aEJ1ZkZDICogMC41OwojZW5kaWZgLHhwcj1gI2lmIGRlZmluZWQoIFVTRV9MT0dERVBUSEJVRiApICYmIGRlZmluZWQoIFVTRV9MT0dERVBUSEJVRl9FWFQgKQoJdW5pZm9ybSBmbG9hdCBsb2dEZXB0aEJ1ZkZDOwoJdmFyeWluZyBmbG9hdCB2RnJhZ0RlcHRoOwoJdmFyeWluZyBmbG9hdCB2SXNQZXJzcGVjdGl2ZTsKI2VuZGlmYCxicHI9YCNpZmRlZiBVU0VfTE9HREVQVEhCVUYKCSNpZmRlZiBVU0VfTE9HREVQVEhCVUZfRVhUCgkJdmFyeWluZyBmbG9hdCB2RnJhZ0RlcHRoOwoJCXZhcnlpbmcgZmxvYXQgdklzUGVyc3BlY3RpdmU7CgkjZWxzZQoJCXVuaWZvcm0gZmxvYXQgbG9nRGVwdGhCdWZGQzsKCSNlbmRpZgojZW5kaWZgLHdwcj1gI2lmZGVmIFVTRV9MT0dERVBUSEJVRgoJI2lmZGVmIFVTRV9MT0dERVBUSEJVRl9FWFQKCQl2RnJhZ0RlcHRoID0gMS4wICsgZ2xfUG9zaXRpb24udzsKCQl2SXNQZXJzcGVjdGl2ZSA9IGZsb2F0KCBpc1BlcnNwZWN0aXZlTWF0cml4KCBwcm9qZWN0aW9uTWF0cml4ICkgKTsKCSNlbHNlCgkJaWYgKCBpc1BlcnNwZWN0aXZlTWF0cml4KCBwcm9qZWN0aW9uTWF0cml4ICkgKSB7CgkJCWdsX1Bvc2l0aW9uLnogPSBsb2cyKCBtYXgoIEVQU0lMT04sIGdsX1Bvc2l0aW9uLncgKyAxLjAgKSApICogbG9nRGVwdGhCdWZGQyAtIDEuMDsKCQkJZ2xfUG9zaXRpb24ueiAqPSBnbF9Qb3NpdGlvbi53OwoJCX0KCSNlbmRpZgojZW5kaWZgLFNwcj1gI2lmZGVmIFVTRV9NQVAKCXZlYzQgc2FtcGxlZERpZmZ1c2VDb2xvciA9IHRleHR1cmUyRCggbWFwLCB2VXYgKTsKCSNpZmRlZiBERUNPREVfVklERU9fVEVYVFVSRQoJCXNhbXBsZWREaWZmdXNlQ29sb3IgPSB2ZWM0KCBtaXgoIHBvdyggc2FtcGxlZERpZmZ1c2VDb2xvci5yZ2IgKiAwLjk0Nzg2NzI5ODYgKyB2ZWMzKCAwLjA1MjEzMjcwMTQgKSwgdmVjMyggMi40ICkgKSwgc2FtcGxlZERpZmZ1c2VDb2xvci5yZ2IgKiAwLjA3NzM5OTM4MDgsIHZlYzMoIGxlc3NUaGFuRXF1YWwoIHNhbXBsZWREaWZmdXNlQ29sb3IucmdiLCB2ZWMzKCAwLjA0MDQ1ICkgKSApICksIHNhbXBsZWREaWZmdXNlQ29sb3IudyApOwoJI2VuZGlmCglkaWZmdXNlQ29sb3IgKj0gc2FtcGxlZERpZmZ1c2VDb2xvcjsKI2VuZGlmYCxNcHI9YCNpZmRlZiBVU0VfTUFQCgl1bmlmb3JtIHNhbXBsZXIyRCBtYXA7CiNlbmRpZmAsRXByPWAjaWYgZGVmaW5lZCggVVNFX01BUCApIHx8IGRlZmluZWQoIFVTRV9BTFBIQU1BUCApCgl2ZWMyIHV2ID0gKCB1dlRyYW5zZm9ybSAqIHZlYzMoIGdsX1BvaW50Q29vcmQueCwgMS4wIC0gZ2xfUG9pbnRDb29yZC55LCAxICkgKS54eTsKI2VuZGlmCiNpZmRlZiBVU0VfTUFQCglkaWZmdXNlQ29sb3IgKj0gdGV4dHVyZTJEKCBtYXAsIHV2ICk7CiNlbmRpZgojaWZkZWYgVVNFX0FMUEhBTUFQCglkaWZmdXNlQ29sb3IuYSAqPSB0ZXh0dXJlMkQoIGFscGhhTWFwLCB1diApLmc7CiNlbmRpZmAsVHByPWAjaWYgZGVmaW5lZCggVVNFX01BUCApIHx8IGRlZmluZWQoIFVTRV9BTFBIQU1BUCApCgl1bmlmb3JtIG1hdDMgdXZUcmFuc2Zvcm07CiNlbmRpZgojaWZkZWYgVVNFX01BUAoJdW5pZm9ybSBzYW1wbGVyMkQgbWFwOwojZW5kaWYKI2lmZGVmIFVTRV9BTFBIQU1BUAoJdW5pZm9ybSBzYW1wbGVyMkQgYWxwaGFNYXA7CiNlbmRpZmAsQ3ByPWBmbG9hdCBtZXRhbG5lc3NGYWN0b3IgPSBtZXRhbG5lc3M7CiNpZmRlZiBVU0VfTUVUQUxORVNTTUFQCgl2ZWM0IHRleGVsTWV0YWxuZXNzID0gdGV4dHVyZTJEKCBtZXRhbG5lc3NNYXAsIHZVdiApOwoJbWV0YWxuZXNzRmFjdG9yICo9IHRleGVsTWV0YWxuZXNzLmI7CiNlbmRpZmAsQXByPWAjaWZkZWYgVVNFX01FVEFMTkVTU01BUAoJdW5pZm9ybSBzYW1wbGVyMkQgbWV0YWxuZXNzTWFwOwojZW5kaWZgLFBwcj1gI2lmZGVmIFVTRV9NT1JQSE5PUk1BTFMKCW9iamVjdE5vcm1hbCAqPSBtb3JwaFRhcmdldEJhc2VJbmZsdWVuY2U7CgkjaWZkZWYgTU9SUEhUQVJHRVRTX1RFWFRVUkUKCQlmb3IgKCBpbnQgaSA9IDA7IGkgPCBNT1JQSFRBUkdFVFNfQ09VTlQ7IGkgKysgKSB7CgkJCWlmICggbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyBpIF0gIT0gMC4wICkgb2JqZWN0Tm9ybWFsICs9IGdldE1vcnBoKCBnbF9WZXJ0ZXhJRCwgaSwgMSwgMiApICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyBpIF07CgkJfQoJI2Vsc2UKCQlvYmplY3ROb3JtYWwgKz0gbW9ycGhOb3JtYWwwICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAwIF07CgkJb2JqZWN0Tm9ybWFsICs9IG1vcnBoTm9ybWFsMSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMSBdOwoJCW9iamVjdE5vcm1hbCArPSBtb3JwaE5vcm1hbDIgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDIgXTsKCQlvYmplY3ROb3JtYWwgKz0gbW9ycGhOb3JtYWwzICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAzIF07CgkjZW5kaWYKI2VuZGlmYCxJcHI9YCNpZmRlZiBVU0VfTU9SUEhUQVJHRVRTCgl1bmlmb3JtIGZsb2F0IG1vcnBoVGFyZ2V0QmFzZUluZmx1ZW5jZTsKCSNpZmRlZiBNT1JQSFRBUkdFVFNfVEVYVFVSRQoJCXVuaWZvcm0gZmxvYXQgbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyBNT1JQSFRBUkdFVFNfQ09VTlQgXTsKCQl1bmlmb3JtIHNhbXBsZXIyREFycmF5IG1vcnBoVGFyZ2V0c1RleHR1cmU7CgkJdW5pZm9ybSB2ZWMyIG1vcnBoVGFyZ2V0c1RleHR1cmVTaXplOwoJCXZlYzMgZ2V0TW9ycGgoIGNvbnN0IGluIGludCB2ZXJ0ZXhJbmRleCwgY29uc3QgaW4gaW50IG1vcnBoVGFyZ2V0SW5kZXgsIGNvbnN0IGluIGludCBvZmZzZXQsIGNvbnN0IGluIGludCBzdHJpZGUgKSB7CgkJCWZsb2F0IHRleGVsSW5kZXggPSBmbG9hdCggdmVydGV4SW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKTsKCQkJZmxvYXQgeSA9IGZsb29yKCB0ZXhlbEluZGV4IC8gbW9ycGhUYXJnZXRzVGV4dHVyZVNpemUueCApOwoJCQlmbG9hdCB4ID0gdGV4ZWxJbmRleCAtIHkgKiBtb3JwaFRhcmdldHNUZXh0dXJlU2l6ZS54OwoJCQl2ZWMzIG1vcnBoVVYgPSB2ZWMzKCAoIHggKyAwLjUgKSAvIG1vcnBoVGFyZ2V0c1RleHR1cmVTaXplLngsIHkgLyBtb3JwaFRhcmdldHNUZXh0dXJlU2l6ZS55LCBtb3JwaFRhcmdldEluZGV4ICk7CgkJCXJldHVybiB0ZXh0dXJlKCBtb3JwaFRhcmdldHNUZXh0dXJlLCBtb3JwaFVWICkueHl6OwoJCX0KCSNlbHNlCgkJI2lmbmRlZiBVU0VfTU9SUEhOT1JNQUxTCgkJCXVuaWZvcm0gZmxvYXQgbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA4IF07CgkJI2Vsc2UKCQkJdW5pZm9ybSBmbG9hdCBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDQgXTsKCQkjZW5kaWYKCSNlbmRpZgojZW5kaWZgLExwcj1gI2lmZGVmIFVTRV9NT1JQSFRBUkdFVFMKCXRyYW5zZm9ybWVkICo9IG1vcnBoVGFyZ2V0QmFzZUluZmx1ZW5jZTsKCSNpZmRlZiBNT1JQSFRBUkdFVFNfVEVYVFVSRQoJCWZvciAoIGludCBpID0gMDsgaSA8IE1PUlBIVEFSR0VUU19DT1VOVDsgaSArKyApIHsKCQkJI2lmbmRlZiBVU0VfTU9SUEhOT1JNQUxTCgkJCQlpZiAoIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgaSBdICE9IDAuMCApIHRyYW5zZm9ybWVkICs9IGdldE1vcnBoKCBnbF9WZXJ0ZXhJRCwgaSwgMCwgMSApICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyBpIF07CgkJCSNlbHNlCgkJCQlpZiAoIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgaSBdICE9IDAuMCApIHRyYW5zZm9ybWVkICs9IGdldE1vcnBoKCBnbF9WZXJ0ZXhJRCwgaSwgMCwgMiApICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyBpIF07CgkJCSNlbmRpZgoJCX0KCSNlbHNlCgkJdHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQwICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAwIF07CgkJdHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQxICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAxIF07CgkJdHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQyICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAyIF07CgkJdHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQzICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAzIF07CgkJI2lmbmRlZiBVU0VfTU9SUEhOT1JNQUxTCgkJCXRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0NCAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNCBdOwoJCQl0cmFuc2Zvcm1lZCArPSBtb3JwaFRhcmdldDUgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDUgXTsKCQkJdHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQ2ICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA2IF07CgkJCXRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0NyAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNyBdOwoJCSNlbmRpZgoJI2VuZGlmCiNlbmRpZmAsa3ByPWBmbG9hdCBmYWNlRGlyZWN0aW9uID0gZ2xfRnJvbnRGYWNpbmcgPyAxLjAgOiAtIDEuMDsKI2lmZGVmIEZMQVRfU0hBREVECgl2ZWMzIGZkeCA9IHZlYzMoIGRGZHgoIHZWaWV3UG9zaXRpb24ueCApLCBkRmR4KCB2Vmlld1Bvc2l0aW9uLnkgKSwgZEZkeCggdlZpZXdQb3NpdGlvbi56ICkgKTsKCXZlYzMgZmR5ID0gdmVjMyggZEZkeSggdlZpZXdQb3NpdGlvbi54ICksIGRGZHkoIHZWaWV3UG9zaXRpb24ueSApLCBkRmR5KCB2Vmlld1Bvc2l0aW9uLnogKSApOwoJdmVjMyBub3JtYWwgPSBub3JtYWxpemUoIGNyb3NzKCBmZHgsIGZkeSApICk7CiNlbHNlCgl2ZWMzIG5vcm1hbCA9IG5vcm1hbGl6ZSggdk5vcm1hbCApOwoJI2lmZGVmIERPVUJMRV9TSURFRAoJCW5vcm1hbCA9IG5vcm1hbCAqIGZhY2VEaXJlY3Rpb247CgkjZW5kaWYKCSNpZmRlZiBVU0VfVEFOR0VOVAoJCXZlYzMgdGFuZ2VudCA9IG5vcm1hbGl6ZSggdlRhbmdlbnQgKTsKCQl2ZWMzIGJpdGFuZ2VudCA9IG5vcm1hbGl6ZSggdkJpdGFuZ2VudCApOwoJCSNpZmRlZiBET1VCTEVfU0lERUQKCQkJdGFuZ2VudCA9IHRhbmdlbnQgKiBmYWNlRGlyZWN0aW9uOwoJCQliaXRhbmdlbnQgPSBiaXRhbmdlbnQgKiBmYWNlRGlyZWN0aW9uOwoJCSNlbmRpZgoJCSNpZiBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQICkgfHwgZGVmaW5lZCggVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVAgKQoJCQltYXQzIHZUQk4gPSBtYXQzKCB0YW5nZW50LCBiaXRhbmdlbnQsIG5vcm1hbCApOwoJCSNlbmRpZgoJI2VuZGlmCiNlbmRpZgp2ZWMzIGdlb21ldHJ5Tm9ybWFsID0gbm9ybWFsO2AsUnByPWAjaWZkZWYgT0JKRUNUU1BBQ0VfTk9STUFMTUFQCglub3JtYWwgPSB0ZXh0dXJlMkQoIG5vcm1hbE1hcCwgdlV2ICkueHl6ICogMi4wIC0gMS4wOwoJI2lmZGVmIEZMSVBfU0lERUQKCQlub3JtYWwgPSAtIG5vcm1hbDsKCSNlbmRpZgoJI2lmZGVmIERPVUJMRV9TSURFRAoJCW5vcm1hbCA9IG5vcm1hbCAqIGZhY2VEaXJlY3Rpb247CgkjZW5kaWYKCW5vcm1hbCA9IG5vcm1hbGl6ZSggbm9ybWFsTWF0cml4ICogbm9ybWFsICk7CiNlbGlmIGRlZmluZWQoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKQoJdmVjMyBtYXBOID0gdGV4dHVyZTJEKCBub3JtYWxNYXAsIHZVdiApLnh5eiAqIDIuMCAtIDEuMDsKCW1hcE4ueHkgKj0gbm9ybWFsU2NhbGU7CgkjaWZkZWYgVVNFX1RBTkdFTlQKCQlub3JtYWwgPSBub3JtYWxpemUoIHZUQk4gKiBtYXBOICk7CgkjZWxzZQoJCW5vcm1hbCA9IHBlcnR1cmJOb3JtYWwyQXJiKCAtIHZWaWV3UG9zaXRpb24sIG5vcm1hbCwgbWFwTiwgZmFjZURpcmVjdGlvbiApOwoJI2VuZGlmCiNlbGlmIGRlZmluZWQoIFVTRV9CVU1QTUFQICkKCW5vcm1hbCA9IHBlcnR1cmJOb3JtYWxBcmIoIC0gdlZpZXdQb3NpdGlvbiwgbm9ybWFsLCBkSGR4eV9md2QoKSwgZmFjZURpcmVjdGlvbiApOwojZW5kaWZgLE5wcj1gI2lmbmRlZiBGTEFUX1NIQURFRAoJdmFyeWluZyB2ZWMzIHZOb3JtYWw7CgkjaWZkZWYgVVNFX1RBTkdFTlQKCQl2YXJ5aW5nIHZlYzMgdlRhbmdlbnQ7CgkJdmFyeWluZyB2ZWMzIHZCaXRhbmdlbnQ7CgkjZW5kaWYKI2VuZGlmYCxEcHI9YCNpZm5kZWYgRkxBVF9TSEFERUQKCXZhcnlpbmcgdmVjMyB2Tm9ybWFsOwoJI2lmZGVmIFVTRV9UQU5HRU5UCgkJdmFyeWluZyB2ZWMzIHZUYW5nZW50OwoJCXZhcnlpbmcgdmVjMyB2Qml0YW5nZW50OwoJI2VuZGlmCiNlbmRpZmAsT3ByPWAjaWZuZGVmIEZMQVRfU0hBREVECgl2Tm9ybWFsID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZE5vcm1hbCApOwoJI2lmZGVmIFVTRV9UQU5HRU5UCgkJdlRhbmdlbnQgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkVGFuZ2VudCApOwoJCXZCaXRhbmdlbnQgPSBub3JtYWxpemUoIGNyb3NzKCB2Tm9ybWFsLCB2VGFuZ2VudCApICogdGFuZ2VudC53ICk7CgkjZW5kaWYKI2VuZGlmYCx6cHI9YCNpZmRlZiBVU0VfTk9STUFMTUFQCgl1bmlmb3JtIHNhbXBsZXIyRCBub3JtYWxNYXA7Cgl1bmlmb3JtIHZlYzIgbm9ybWFsU2NhbGU7CiNlbmRpZgojaWZkZWYgT0JKRUNUU1BBQ0VfTk9STUFMTUFQCgl1bmlmb3JtIG1hdDMgbm9ybWFsTWF0cml4OwojZW5kaWYKI2lmICEgZGVmaW5lZCAoIFVTRV9UQU5HRU5UICkgJiYgKCBkZWZpbmVkICggVEFOR0VOVFNQQUNFX05PUk1BTE1BUCApIHx8IGRlZmluZWQgKCBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUCApICkKCXZlYzMgcGVydHVyYk5vcm1hbDJBcmIoIHZlYzMgZXllX3BvcywgdmVjMyBzdXJmX25vcm0sIHZlYzMgbWFwTiwgZmxvYXQgZmFjZURpcmVjdGlvbiApIHsKCQl2ZWMzIHEwID0gdmVjMyggZEZkeCggZXllX3Bvcy54ICksIGRGZHgoIGV5ZV9wb3MueSApLCBkRmR4KCBleWVfcG9zLnogKSApOwoJCXZlYzMgcTEgPSB2ZWMzKCBkRmR5KCBleWVfcG9zLnggKSwgZEZkeSggZXllX3Bvcy55ICksIGRGZHkoIGV5ZV9wb3MueiApICk7CgkJdmVjMiBzdDAgPSBkRmR4KCB2VXYuc3QgKTsKCQl2ZWMyIHN0MSA9IGRGZHkoIHZVdi5zdCApOwoJCXZlYzMgTiA9IHN1cmZfbm9ybTsKCQl2ZWMzIHExcGVycCA9IGNyb3NzKCBxMSwgTiApOwoJCXZlYzMgcTBwZXJwID0gY3Jvc3MoIE4sIHEwICk7CgkJdmVjMyBUID0gcTFwZXJwICogc3QwLnggKyBxMHBlcnAgKiBzdDEueDsKCQl2ZWMzIEIgPSBxMXBlcnAgKiBzdDAueSArIHEwcGVycCAqIHN0MS55OwoJCWZsb2F0IGRldCA9IG1heCggZG90KCBULCBUICksIGRvdCggQiwgQiApICk7CgkJZmxvYXQgc2NhbGUgPSAoIGRldCA9PSAwLjAgKSA/IDAuMCA6IGZhY2VEaXJlY3Rpb24gKiBpbnZlcnNlc3FydCggZGV0ICk7CgkJcmV0dXJuIG5vcm1hbGl6ZSggVCAqICggbWFwTi54ICogc2NhbGUgKSArIEIgKiAoIG1hcE4ueSAqIHNjYWxlICkgKyBOICogbWFwTi56ICk7Cgl9CiNlbmRpZmAsRnByPWAjaWZkZWYgVVNFX0NMRUFSQ09BVAoJdmVjMyBjbGVhcmNvYXROb3JtYWwgPSBnZW9tZXRyeU5vcm1hbDsKI2VuZGlmYCxCcHI9YCNpZmRlZiBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUAoJdmVjMyBjbGVhcmNvYXRNYXBOID0gdGV4dHVyZTJEKCBjbGVhcmNvYXROb3JtYWxNYXAsIHZVdiApLnh5eiAqIDIuMCAtIDEuMDsKCWNsZWFyY29hdE1hcE4ueHkgKj0gY2xlYXJjb2F0Tm9ybWFsU2NhbGU7CgkjaWZkZWYgVVNFX1RBTkdFTlQKCQljbGVhcmNvYXROb3JtYWwgPSBub3JtYWxpemUoIHZUQk4gKiBjbGVhcmNvYXRNYXBOICk7CgkjZWxzZQoJCWNsZWFyY29hdE5vcm1hbCA9IHBlcnR1cmJOb3JtYWwyQXJiKCAtIHZWaWV3UG9zaXRpb24sIGNsZWFyY29hdE5vcm1hbCwgY2xlYXJjb2F0TWFwTiwgZmFjZURpcmVjdGlvbiApOwoJI2VuZGlmCiNlbmRpZmAsSHByPWAjaWZkZWYgVVNFX0NMRUFSQ09BVE1BUAoJdW5pZm9ybSBzYW1wbGVyMkQgY2xlYXJjb2F0TWFwOwojZW5kaWYKI2lmZGVmIFVTRV9DTEVBUkNPQVRfUk9VR0hORVNTTUFQCgl1bmlmb3JtIHNhbXBsZXIyRCBjbGVhcmNvYXRSb3VnaG5lc3NNYXA7CiNlbmRpZgojaWZkZWYgVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVAKCXVuaWZvcm0gc2FtcGxlcjJEIGNsZWFyY29hdE5vcm1hbE1hcDsKCXVuaWZvcm0gdmVjMiBjbGVhcmNvYXROb3JtYWxTY2FsZTsKI2VuZGlmYCxWcHI9YCNpZmRlZiBPUEFRVUUKZGlmZnVzZUNvbG9yLmEgPSAxLjA7CiNlbmRpZgojaWZkZWYgVVNFX1RSQU5TTUlTU0lPTgpkaWZmdXNlQ29sb3IuYSAqPSB0cmFuc21pc3Npb25BbHBoYSArIDAuMTsKI2VuZGlmCmdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7YCxVcHI9YHZlYzMgcGFja05vcm1hbFRvUkdCKCBjb25zdCBpbiB2ZWMzIG5vcm1hbCApIHsKCXJldHVybiBub3JtYWxpemUoIG5vcm1hbCApICogMC41ICsgMC41Owp9CnZlYzMgdW5wYWNrUkdCVG9Ob3JtYWwoIGNvbnN0IGluIHZlYzMgcmdiICkgewoJcmV0dXJuIDIuMCAqIHJnYi54eXogLSAxLjA7Cn0KY29uc3QgZmxvYXQgUGFja1Vwc2NhbGUgPSAyNTYuIC8gMjU1Ljtjb25zdCBmbG9hdCBVbnBhY2tEb3duc2NhbGUgPSAyNTUuIC8gMjU2LjsKY29uc3QgdmVjMyBQYWNrRmFjdG9ycyA9IHZlYzMoIDI1Ni4gKiAyNTYuICogMjU2LiwgMjU2LiAqIDI1Ni4sIDI1Ni4gKTsKY29uc3QgdmVjNCBVbnBhY2tGYWN0b3JzID0gVW5wYWNrRG93bnNjYWxlIC8gdmVjNCggUGFja0ZhY3RvcnMsIDEuICk7CmNvbnN0IGZsb2F0IFNoaWZ0UmlnaHQ4ID0gMS4gLyAyNTYuOwp2ZWM0IHBhY2tEZXB0aFRvUkdCQSggY29uc3QgaW4gZmxvYXQgdiApIHsKCXZlYzQgciA9IHZlYzQoIGZyYWN0KCB2ICogUGFja0ZhY3RvcnMgKSwgdiApOwoJci55encgLT0gci54eXogKiBTaGlmdFJpZ2h0ODsJcmV0dXJuIHIgKiBQYWNrVXBzY2FsZTsKfQpmbG9hdCB1bnBhY2tSR0JBVG9EZXB0aCggY29uc3QgaW4gdmVjNCB2ICkgewoJcmV0dXJuIGRvdCggdiwgVW5wYWNrRmFjdG9ycyApOwp9CnZlYzQgcGFjazJIYWxmVG9SR0JBKCB2ZWMyIHYgKSB7Cgl2ZWM0IHIgPSB2ZWM0KCB2LngsIGZyYWN0KCB2LnggKiAyNTUuMCApLCB2LnksIGZyYWN0KCB2LnkgKiAyNTUuMCApICk7CglyZXR1cm4gdmVjNCggci54IC0gci55IC8gMjU1LjAsIHIueSwgci56IC0gci53IC8gMjU1LjAsIHIudyApOwp9CnZlYzIgdW5wYWNrUkdCQVRvMkhhbGYoIHZlYzQgdiApIHsKCXJldHVybiB2ZWMyKCB2LnggKyAoIHYueSAvIDI1NS4wICksIHYueiArICggdi53IC8gMjU1LjAgKSApOwp9CmZsb2F0IHZpZXdaVG9PcnRob2dyYXBoaWNEZXB0aCggY29uc3QgaW4gZmxvYXQgdmlld1osIGNvbnN0IGluIGZsb2F0IG5lYXIsIGNvbnN0IGluIGZsb2F0IGZhciApIHsKCXJldHVybiAoIHZpZXdaICsgbmVhciApIC8gKCBuZWFyIC0gZmFyICk7Cn0KZmxvYXQgb3J0aG9ncmFwaGljRGVwdGhUb1ZpZXdaKCBjb25zdCBpbiBmbG9hdCBsaW5lYXJDbGlwWiwgY29uc3QgaW4gZmxvYXQgbmVhciwgY29uc3QgaW4gZmxvYXQgZmFyICkgewoJcmV0dXJuIGxpbmVhckNsaXBaICogKCBuZWFyIC0gZmFyICkgLSBuZWFyOwp9CmZsb2F0IHZpZXdaVG9QZXJzcGVjdGl2ZURlcHRoKCBjb25zdCBpbiBmbG9hdCB2aWV3WiwgY29uc3QgaW4gZmxvYXQgbmVhciwgY29uc3QgaW4gZmxvYXQgZmFyICkgewoJcmV0dXJuICggKCBuZWFyICsgdmlld1ogKSAqIGZhciApIC8gKCAoIGZhciAtIG5lYXIgKSAqIHZpZXdaICk7Cn0KZmxvYXQgcGVyc3BlY3RpdmVEZXB0aFRvVmlld1ooIGNvbnN0IGluIGZsb2F0IGludkNsaXBaLCBjb25zdCBpbiBmbG9hdCBuZWFyLCBjb25zdCBpbiBmbG9hdCBmYXIgKSB7CglyZXR1cm4gKCBuZWFyICogZmFyICkgLyAoICggZmFyIC0gbmVhciApICogaW52Q2xpcFogLSBmYXIgKTsKfWAscXByPWAjaWZkZWYgUFJFTVVMVElQTElFRF9BTFBIQQoJZ2xfRnJhZ0NvbG9yLnJnYiAqPSBnbF9GcmFnQ29sb3IuYTsKI2VuZGlmYCxHcHI9YHZlYzQgbXZQb3NpdGlvbiA9IHZlYzQoIHRyYW5zZm9ybWVkLCAxLjAgKTsKI2lmZGVmIFVTRV9JTlNUQU5DSU5HCgltdlBvc2l0aW9uID0gaW5zdGFuY2VNYXRyaXggKiBtdlBvc2l0aW9uOwojZW5kaWYKbXZQb3NpdGlvbiA9IG1vZGVsVmlld01hdHJpeCAqIG12UG9zaXRpb247CmdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG12UG9zaXRpb247YCxXcHI9YCNpZmRlZiBESVRIRVJJTkcKCWdsX0ZyYWdDb2xvci5yZ2IgPSBkaXRoZXJpbmcoIGdsX0ZyYWdDb2xvci5yZ2IgKTsKI2VuZGlmYCxZcHI9YCNpZmRlZiBESVRIRVJJTkcKCXZlYzMgZGl0aGVyaW5nKCB2ZWMzIGNvbG9yICkgewoJCWZsb2F0IGdyaWRfcG9zaXRpb24gPSByYW5kKCBnbF9GcmFnQ29vcmQueHkgKTsKCQl2ZWMzIGRpdGhlcl9zaGlmdF9SR0IgPSB2ZWMzKCAwLjI1IC8gMjU1LjAsIC0wLjI1IC8gMjU1LjAsIDAuMjUgLyAyNTUuMCApOwoJCWRpdGhlcl9zaGlmdF9SR0IgPSBtaXgoIDIuMCAqIGRpdGhlcl9zaGlmdF9SR0IsIC0yLjAgKiBkaXRoZXJfc2hpZnRfUkdCLCBncmlkX3Bvc2l0aW9uICk7CgkJcmV0dXJuIGNvbG9yICsgZGl0aGVyX3NoaWZ0X1JHQjsKCX0KI2VuZGlmYCxqcHI9YGZsb2F0IHJvdWdobmVzc0ZhY3RvciA9IHJvdWdobmVzczsKI2lmZGVmIFVTRV9ST1VHSE5FU1NNQVAKCXZlYzQgdGV4ZWxSb3VnaG5lc3MgPSB0ZXh0dXJlMkQoIHJvdWdobmVzc01hcCwgdlV2ICk7Cglyb3VnaG5lc3NGYWN0b3IgKj0gdGV4ZWxSb3VnaG5lc3MuZzsKI2VuZGlmYCxYcHI9YCNpZmRlZiBVU0VfUk9VR0hORVNTTUFQCgl1bmlmb3JtIHNhbXBsZXIyRCByb3VnaG5lc3NNYXA7CiNlbmRpZmAsJHByPWAjaWZkZWYgVVNFX1NIQURPV01BUAoJI2lmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDAKCQl1bmlmb3JtIHNhbXBsZXIyRCBkaXJlY3Rpb25hbFNoYWRvd01hcFsgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07CgkJdmFyeWluZyB2ZWM0IHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTsKCQlzdHJ1Y3QgRGlyZWN0aW9uYWxMaWdodFNoYWRvdyB7CgkJCWZsb2F0IHNoYWRvd0JpYXM7CgkJCWZsb2F0IHNoYWRvd05vcm1hbEJpYXM7CgkJCWZsb2F0IHNoYWRvd1JhZGl1czsKCQkJdmVjMiBzaGFkb3dNYXBTaXplOwoJCX07CgkJdW5pZm9ybSBEaXJlY3Rpb25hbExpZ2h0U2hhZG93IGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTsKCSNlbmRpZgoJI2lmIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwCgkJdW5pZm9ybSBzYW1wbGVyMkQgc3BvdFNoYWRvd01hcFsgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdOwoJCXZhcnlpbmcgdmVjNCB2U3BvdFNoYWRvd0Nvb3JkWyBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIF07CgkJc3RydWN0IFNwb3RMaWdodFNoYWRvdyB7CgkJCWZsb2F0IHNoYWRvd0JpYXM7CgkJCWZsb2F0IHNoYWRvd05vcm1hbEJpYXM7CgkJCWZsb2F0IHNoYWRvd1JhZGl1czsKCQkJdmVjMiBzaGFkb3dNYXBTaXplOwoJCX07CgkJdW5pZm9ybSBTcG90TGlnaHRTaGFkb3cgc3BvdExpZ2h0U2hhZG93c1sgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdOwoJI2VuZGlmCgkjaWYgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwCgkJdW5pZm9ybSBzYW1wbGVyMkQgcG9pbnRTaGFkb3dNYXBbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07CgkJdmFyeWluZyB2ZWM0IHZQb2ludFNoYWRvd0Nvb3JkWyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdOwoJCXN0cnVjdCBQb2ludExpZ2h0U2hhZG93IHsKCQkJZmxvYXQgc2hhZG93QmlhczsKCQkJZmxvYXQgc2hhZG93Tm9ybWFsQmlhczsKCQkJZmxvYXQgc2hhZG93UmFkaXVzOwoJCQl2ZWMyIHNoYWRvd01hcFNpemU7CgkJCWZsb2F0IHNoYWRvd0NhbWVyYU5lYXI7CgkJCWZsb2F0IHNoYWRvd0NhbWVyYUZhcjsKCQl9OwoJCXVuaWZvcm0gUG9pbnRMaWdodFNoYWRvdyBwb2ludExpZ2h0U2hhZG93c1sgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTsKCSNlbmRpZgoJZmxvYXQgdGV4dHVyZTJEQ29tcGFyZSggc2FtcGxlcjJEIGRlcHRocywgdmVjMiB1diwgZmxvYXQgY29tcGFyZSApIHsKCQlyZXR1cm4gc3RlcCggY29tcGFyZSwgdW5wYWNrUkdCQVRvRGVwdGgoIHRleHR1cmUyRCggZGVwdGhzLCB1diApICkgKTsKCX0KCXZlYzIgdGV4dHVyZTJERGlzdHJpYnV0aW9uKCBzYW1wbGVyMkQgc2hhZG93LCB2ZWMyIHV2ICkgewoJCXJldHVybiB1bnBhY2tSR0JBVG8ySGFsZiggdGV4dHVyZTJEKCBzaGFkb3csIHV2ICkgKTsKCX0KCWZsb2F0IFZTTVNoYWRvdyAoc2FtcGxlcjJEIHNoYWRvdywgdmVjMiB1diwgZmxvYXQgY29tcGFyZSApewoJCWZsb2F0IG9jY2x1c2lvbiA9IDEuMDsKCQl2ZWMyIGRpc3RyaWJ1dGlvbiA9IHRleHR1cmUyRERpc3RyaWJ1dGlvbiggc2hhZG93LCB1diApOwoJCWZsb2F0IGhhcmRfc2hhZG93ID0gc3RlcCggY29tcGFyZSAsIGRpc3RyaWJ1dGlvbi54ICk7CgkJaWYgKGhhcmRfc2hhZG93ICE9IDEuMCApIHsKCQkJZmxvYXQgZGlzdGFuY2UgPSBjb21wYXJlIC0gZGlzdHJpYnV0aW9uLnggOwoJCQlmbG9hdCB2YXJpYW5jZSA9IG1heCggMC4wMDAwMCwgZGlzdHJpYnV0aW9uLnkgKiBkaXN0cmlidXRpb24ueSApOwoJCQlmbG9hdCBzb2Z0bmVzc19wcm9iYWJpbGl0eSA9IHZhcmlhbmNlIC8gKHZhcmlhbmNlICsgZGlzdGFuY2UgKiBkaXN0YW5jZSApOwkJCXNvZnRuZXNzX3Byb2JhYmlsaXR5ID0gY2xhbXAoICggc29mdG5lc3NfcHJvYmFiaWxpdHkgLSAwLjMgKSAvICggMC45NSAtIDAuMyApLCAwLjAsIDEuMCApOwkJCW9jY2x1c2lvbiA9IGNsYW1wKCBtYXgoIGhhcmRfc2hhZG93LCBzb2Z0bmVzc19wcm9iYWJpbGl0eSApLCAwLjAsIDEuMCApOwoJCX0KCQlyZXR1cm4gb2NjbHVzaW9uOwoJfQoJZmxvYXQgZ2V0U2hhZG93KCBzYW1wbGVyMkQgc2hhZG93TWFwLCB2ZWMyIHNoYWRvd01hcFNpemUsIGZsb2F0IHNoYWRvd0JpYXMsIGZsb2F0IHNoYWRvd1JhZGl1cywgdmVjNCBzaGFkb3dDb29yZCApIHsKCQlmbG9hdCBzaGFkb3cgPSAxLjA7CgkJc2hhZG93Q29vcmQueHl6IC89IHNoYWRvd0Nvb3JkLnc7CgkJc2hhZG93Q29vcmQueiArPSBzaGFkb3dCaWFzOwoJCWJ2ZWM0IGluRnJ1c3R1bVZlYyA9IGJ2ZWM0ICggc2hhZG93Q29vcmQueCA+PSAwLjAsIHNoYWRvd0Nvb3JkLnggPD0gMS4wLCBzaGFkb3dDb29yZC55ID49IDAuMCwgc2hhZG93Q29vcmQueSA8PSAxLjAgKTsKCQlib29sIGluRnJ1c3R1bSA9IGFsbCggaW5GcnVzdHVtVmVjICk7CgkJYnZlYzIgZnJ1c3R1bVRlc3RWZWMgPSBidmVjMiggaW5GcnVzdHVtLCBzaGFkb3dDb29yZC56IDw9IDEuMCApOwoJCWJvb2wgZnJ1c3R1bVRlc3QgPSBhbGwoIGZydXN0dW1UZXN0VmVjICk7CgkJaWYgKCBmcnVzdHVtVGVzdCApIHsKCQkjaWYgZGVmaW5lZCggU0hBRE9XTUFQX1RZUEVfUENGICkKCQkJdmVjMiB0ZXhlbFNpemUgPSB2ZWMyKCAxLjAgKSAvIHNoYWRvd01hcFNpemU7CgkJCWZsb2F0IGR4MCA9IC0gdGV4ZWxTaXplLnggKiBzaGFkb3dSYWRpdXM7CgkJCWZsb2F0IGR5MCA9IC0gdGV4ZWxTaXplLnkgKiBzaGFkb3dSYWRpdXM7CgkJCWZsb2F0IGR4MSA9ICsgdGV4ZWxTaXplLnggKiBzaGFkb3dSYWRpdXM7CgkJCWZsb2F0IGR5MSA9ICsgdGV4ZWxTaXplLnkgKiBzaGFkb3dSYWRpdXM7CgkJCWZsb2F0IGR4MiA9IGR4MCAvIDIuMDsKCQkJZmxvYXQgZHkyID0gZHkwIC8gMi4wOwoJCQlmbG9hdCBkeDMgPSBkeDEgLyAyLjA7CgkJCWZsb2F0IGR5MyA9IGR5MSAvIDIuMDsKCQkJc2hhZG93ID0gKAoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MCwgZHkwICksIHNoYWRvd0Nvb3JkLnogKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggMC4wLCBkeTAgKSwgc2hhZG93Q29vcmQueiApICsKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDEsIGR5MCApLCBzaGFkb3dDb29yZC56ICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MiwgZHkyICksIHNoYWRvd0Nvb3JkLnogKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggMC4wLCBkeTIgKSwgc2hhZG93Q29vcmQueiApICsKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDMsIGR5MiApLCBzaGFkb3dDb29yZC56ICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MCwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgyLCAwLjAgKSwgc2hhZG93Q29vcmQueiApICsKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHksIHNoYWRvd0Nvb3JkLnogKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgzLCAwLjAgKSwgc2hhZG93Q29vcmQueiApICsKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDEsIDAuMCApLCBzaGFkb3dDb29yZC56ICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MiwgZHkzICksIHNoYWRvd0Nvb3JkLnogKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggMC4wLCBkeTMgKSwgc2hhZG93Q29vcmQueiApICsKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDMsIGR5MyApLCBzaGFkb3dDb29yZC56ICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MCwgZHkxICksIHNoYWRvd0Nvb3JkLnogKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggMC4wLCBkeTEgKSwgc2hhZG93Q29vcmQueiApICsKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDEsIGR5MSApLCBzaGFkb3dDb29yZC56ICkKCQkJKSAqICggMS4wIC8gMTcuMCApOwoJCSNlbGlmIGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1BDRl9TT0ZUICkKCQkJdmVjMiB0ZXhlbFNpemUgPSB2ZWMyKCAxLjAgKSAvIHNoYWRvd01hcFNpemU7CgkJCWZsb2F0IGR4ID0gdGV4ZWxTaXplLng7CgkJCWZsb2F0IGR5ID0gdGV4ZWxTaXplLnk7CgkJCXZlYzIgdXYgPSBzaGFkb3dDb29yZC54eTsKCQkJdmVjMiBmID0gZnJhY3QoIHV2ICogc2hhZG93TWFwU2l6ZSArIDAuNSApOwoJCQl1diAtPSBmICogdGV4ZWxTaXplOwoJCQlzaGFkb3cgPSAoCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2LCBzaGFkb3dDb29yZC56ICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIGR4LCAwLjAgKSwgc2hhZG93Q29vcmQueiApICsKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAwLjAsIGR5ICksIHNoYWRvd0Nvb3JkLnogKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdGV4ZWxTaXplLCBzaGFkb3dDb29yZC56ICkgKwoJCQkJbWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggLWR4LCAwLjAgKSwgc2hhZG93Q29vcmQueiApLCAKCQkJCQkgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDIuMCAqIGR4LCAwLjAgKSwgc2hhZG93Q29vcmQueiApLAoJCQkJCSBmLnggKSArCgkJCQltaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAtZHgsIGR5ICksIHNoYWRvd0Nvb3JkLnogKSwgCgkJCQkJIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAyLjAgKiBkeCwgZHkgKSwgc2hhZG93Q29vcmQueiApLAoJCQkJCSBmLnggKSArCgkJCQltaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAwLjAsIC1keSApLCBzaGFkb3dDb29yZC56ICksIAoJCQkJCSB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMC4wLCAyLjAgKiBkeSApLCBzaGFkb3dDb29yZC56ICksCgkJCQkJIGYueSApICsKCQkJCW1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIGR4LCAtZHkgKSwgc2hhZG93Q29vcmQueiApLCAKCQkJCQkgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIGR4LCAyLjAgKiBkeSApLCBzaGFkb3dDb29yZC56ICksCgkJCQkJIGYueSApICsKCQkJCW1peCggbWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggLWR4LCAtZHkgKSwgc2hhZG93Q29vcmQueiApLCAKCQkJCQkJICB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMi4wICogZHgsIC1keSApLCBzaGFkb3dDb29yZC56ICksCgkJCQkJCSAgZi54ICksCgkJCQkJIG1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIC1keCwgMi4wICogZHkgKSwgc2hhZG93Q29vcmQueiApLCAKCQkJCQkJICB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMi4wICogZHgsIDIuMCAqIGR5ICksIHNoYWRvd0Nvb3JkLnogKSwKCQkJCQkJICBmLnggKSwKCQkJCQkgZi55ICkKCQkJKSAqICggMS4wIC8gOS4wICk7CgkJI2VsaWYgZGVmaW5lZCggU0hBRE9XTUFQX1RZUEVfVlNNICkKCQkJc2hhZG93ID0gVlNNU2hhZG93KCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5LCBzaGFkb3dDb29yZC56ICk7CgkJI2Vsc2UKCQkJc2hhZG93ID0gdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSwgc2hhZG93Q29vcmQueiApOwoJCSNlbmRpZgoJCX0KCQlyZXR1cm4gc2hhZG93OwoJfQoJdmVjMiBjdWJlVG9VViggdmVjMyB2LCBmbG9hdCB0ZXhlbFNpemVZICkgewoJCXZlYzMgYWJzViA9IGFicyggdiApOwoJCWZsb2F0IHNjYWxlVG9DdWJlID0gMS4wIC8gbWF4KCBhYnNWLngsIG1heCggYWJzVi55LCBhYnNWLnogKSApOwoJCWFic1YgKj0gc2NhbGVUb0N1YmU7CgkJdiAqPSBzY2FsZVRvQ3ViZSAqICggMS4wIC0gMi4wICogdGV4ZWxTaXplWSApOwoJCXZlYzIgcGxhbmFyID0gdi54eTsKCQlmbG9hdCBhbG1vc3RBVGV4ZWwgPSAxLjUgKiB0ZXhlbFNpemVZOwoJCWZsb2F0IGFsbW9zdE9uZSA9IDEuMCAtIGFsbW9zdEFUZXhlbDsKCQlpZiAoIGFic1YueiA+PSBhbG1vc3RPbmUgKSB7CgkJCWlmICggdi56ID4gMC4wICkKCQkJCXBsYW5hci54ID0gNC4wIC0gdi54OwoJCX0gZWxzZSBpZiAoIGFic1YueCA+PSBhbG1vc3RPbmUgKSB7CgkJCWZsb2F0IHNpZ25YID0gc2lnbiggdi54ICk7CgkJCXBsYW5hci54ID0gdi56ICogc2lnblggKyAyLjAgKiBzaWduWDsKCQl9IGVsc2UgaWYgKCBhYnNWLnkgPj0gYWxtb3N0T25lICkgewoJCQlmbG9hdCBzaWduWSA9IHNpZ24oIHYueSApOwoJCQlwbGFuYXIueCA9IHYueCArIDIuMCAqIHNpZ25ZICsgMi4wOwoJCQlwbGFuYXIueSA9IHYueiAqIHNpZ25ZIC0gMi4wOwoJCX0KCQlyZXR1cm4gdmVjMiggMC4xMjUsIDAuMjUgKSAqIHBsYW5hciArIHZlYzIoIDAuMzc1LCAwLjc1ICk7Cgl9CglmbG9hdCBnZXRQb2ludFNoYWRvdyggc2FtcGxlcjJEIHNoYWRvd01hcCwgdmVjMiBzaGFkb3dNYXBTaXplLCBmbG9hdCBzaGFkb3dCaWFzLCBmbG9hdCBzaGFkb3dSYWRpdXMsIHZlYzQgc2hhZG93Q29vcmQsIGZsb2F0IHNoYWRvd0NhbWVyYU5lYXIsIGZsb2F0IHNoYWRvd0NhbWVyYUZhciApIHsKCQl2ZWMyIHRleGVsU2l6ZSA9IHZlYzIoIDEuMCApIC8gKCBzaGFkb3dNYXBTaXplICogdmVjMiggNC4wLCAyLjAgKSApOwoJCXZlYzMgbGlnaHRUb1Bvc2l0aW9uID0gc2hhZG93Q29vcmQueHl6OwoJCWZsb2F0IGRwID0gKCBsZW5ndGgoIGxpZ2h0VG9Qb3NpdGlvbiApIC0gc2hhZG93Q2FtZXJhTmVhciApIC8gKCBzaGFkb3dDYW1lcmFGYXIgLSBzaGFkb3dDYW1lcmFOZWFyICk7CQlkcCArPSBzaGFkb3dCaWFzOwoJCXZlYzMgYmQzRCA9IG5vcm1hbGl6ZSggbGlnaHRUb1Bvc2l0aW9uICk7CgkJI2lmIGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1BDRiApIHx8IGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1BDRl9TT0ZUICkgfHwgZGVmaW5lZCggU0hBRE9XTUFQX1RZUEVfVlNNICkKCQkJdmVjMiBvZmZzZXQgPSB2ZWMyKCAtIDEsIDEgKSAqIHNoYWRvd1JhZGl1cyAqIHRleGVsU2l6ZS55OwoJCQlyZXR1cm4gKAoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC54eXksIHRleGVsU2l6ZS55ICksIGRwICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC55eXksIHRleGVsU2l6ZS55ICksIGRwICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC54eXgsIHRleGVsU2l6ZS55ICksIGRwICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC55eXgsIHRleGVsU2l6ZS55ICksIGRwICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCwgdGV4ZWxTaXplLnkgKSwgZHAgKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnh4eSwgdGV4ZWxTaXplLnkgKSwgZHAgKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnl4eSwgdGV4ZWxTaXplLnkgKSwgZHAgKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnh4eCwgdGV4ZWxTaXplLnkgKSwgZHAgKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnl4eCwgdGV4ZWxTaXplLnkgKSwgZHAgKQoJCQkpICogKCAxLjAgLyA5LjAgKTsKCQkjZWxzZQoJCQlyZXR1cm4gdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCwgdGV4ZWxTaXplLnkgKSwgZHAgKTsKCQkjZW5kaWYKCX0KI2VuZGlmYCxLcHI9YCNpZmRlZiBVU0VfU0hBRE9XTUFQCgkjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMAoJCXVuaWZvcm0gbWF0NCBkaXJlY3Rpb25hbFNoYWRvd01hdHJpeFsgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07CgkJdmFyeWluZyB2ZWM0IHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTsKCQlzdHJ1Y3QgRGlyZWN0aW9uYWxMaWdodFNoYWRvdyB7CgkJCWZsb2F0IHNoYWRvd0JpYXM7CgkJCWZsb2F0IHNoYWRvd05vcm1hbEJpYXM7CgkJCWZsb2F0IHNoYWRvd1JhZGl1czsKCQkJdmVjMiBzaGFkb3dNYXBTaXplOwoJCX07CgkJdW5pZm9ybSBEaXJlY3Rpb25hbExpZ2h0U2hhZG93IGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTsKCSNlbmRpZgoJI2lmIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwCgkJdW5pZm9ybSBtYXQ0IHNwb3RTaGFkb3dNYXRyaXhbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTsKCQl2YXJ5aW5nIHZlYzQgdlNwb3RTaGFkb3dDb29yZFsgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdOwoJCXN0cnVjdCBTcG90TGlnaHRTaGFkb3cgewoJCQlmbG9hdCBzaGFkb3dCaWFzOwoJCQlmbG9hdCBzaGFkb3dOb3JtYWxCaWFzOwoJCQlmbG9hdCBzaGFkb3dSYWRpdXM7CgkJCXZlYzIgc2hhZG93TWFwU2l6ZTsKCQl9OwoJCXVuaWZvcm0gU3BvdExpZ2h0U2hhZG93IHNwb3RMaWdodFNoYWRvd3NbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTsKCSNlbmRpZgoJI2lmIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMAoJCXVuaWZvcm0gbWF0NCBwb2ludFNoYWRvd01hdHJpeFsgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTsKCQl2YXJ5aW5nIHZlYzQgdlBvaW50U2hhZG93Q29vcmRbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07CgkJc3RydWN0IFBvaW50TGlnaHRTaGFkb3cgewoJCQlmbG9hdCBzaGFkb3dCaWFzOwoJCQlmbG9hdCBzaGFkb3dOb3JtYWxCaWFzOwoJCQlmbG9hdCBzaGFkb3dSYWRpdXM7CgkJCXZlYzIgc2hhZG93TWFwU2l6ZTsKCQkJZmxvYXQgc2hhZG93Q2FtZXJhTmVhcjsKCQkJZmxvYXQgc2hhZG93Q2FtZXJhRmFyOwoJCX07CgkJdW5pZm9ybSBQb2ludExpZ2h0U2hhZG93IHBvaW50TGlnaHRTaGFkb3dzWyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdOwoJI2VuZGlmCiNlbmRpZmAsWnByPWAjaWZkZWYgVVNFX1NIQURPV01BUAoJI2lmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDAgfHwgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDAgfHwgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwCgkJdmVjMyBzaGFkb3dXb3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIHRyYW5zZm9ybWVkTm9ybWFsLCB2aWV3TWF0cml4ICk7CgkJdmVjNCBzaGFkb3dXb3JsZFBvc2l0aW9uOwoJI2VuZGlmCgkjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMAoJI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydAoJZm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0RJUl9MSUdIVF9TSEFET1dTOyBpICsrICkgewoJCXNoYWRvd1dvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uICsgdmVjNCggc2hhZG93V29ybGROb3JtYWwgKiBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgaSBdLnNoYWRvd05vcm1hbEJpYXMsIDAgKTsKCQl2RGlyZWN0aW9uYWxTaGFkb3dDb29yZFsgaSBdID0gZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXhbIGkgXSAqIHNoYWRvd1dvcmxkUG9zaXRpb247Cgl9CgkjcHJhZ21hIHVucm9sbF9sb29wX2VuZAoJI2VuZGlmCgkjaWYgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDAKCSNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnQKCWZvciAoIGludCBpID0gMDsgaSA8IE5VTV9TUE9UX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7CgkJc2hhZG93V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb24gKyB2ZWM0KCBzaGFkb3dXb3JsZE5vcm1hbCAqIHNwb3RMaWdodFNoYWRvd3NbIGkgXS5zaGFkb3dOb3JtYWxCaWFzLCAwICk7CgkJdlNwb3RTaGFkb3dDb29yZFsgaSBdID0gc3BvdFNoYWRvd01hdHJpeFsgaSBdICogc2hhZG93V29ybGRQb3NpdGlvbjsKCX0KCSNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kCgkjZW5kaWYKCSNpZiBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDAKCSNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnQKCWZvciAoIGludCBpID0gMDsgaSA8IE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTOyBpICsrICkgewoJCXNoYWRvd1dvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uICsgdmVjNCggc2hhZG93V29ybGROb3JtYWwgKiBwb2ludExpZ2h0U2hhZG93c1sgaSBdLnNoYWRvd05vcm1hbEJpYXMsIDAgKTsKCQl2UG9pbnRTaGFkb3dDb29yZFsgaSBdID0gcG9pbnRTaGFkb3dNYXRyaXhbIGkgXSAqIHNoYWRvd1dvcmxkUG9zaXRpb247Cgl9CgkjcHJhZ21hIHVucm9sbF9sb29wX2VuZAoJI2VuZGlmCiNlbmRpZmAsSnByPWBmbG9hdCBnZXRTaGFkb3dNYXNrKCkgewoJZmxvYXQgc2hhZG93ID0gMS4wOwoJI2lmZGVmIFVTRV9TSEFET1dNQVAKCSNpZiBOVU1fRElSX0xJR0hUX1NIQURPV1MgPiAwCglEaXJlY3Rpb25hbExpZ2h0U2hhZG93IGRpcmVjdGlvbmFsTGlnaHQ7CgkjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0Cglmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fRElSX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7CgkJZGlyZWN0aW9uYWxMaWdodCA9IGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzWyBpIF07CgkJc2hhZG93ICo9IHJlY2VpdmVTaGFkb3cgPyBnZXRTaGFkb3coIGRpcmVjdGlvbmFsU2hhZG93TWFwWyBpIF0sIGRpcmVjdGlvbmFsTGlnaHQuc2hhZG93TWFwU2l6ZSwgZGlyZWN0aW9uYWxMaWdodC5zaGFkb3dCaWFzLCBkaXJlY3Rpb25hbExpZ2h0LnNoYWRvd1JhZGl1cywgdkRpcmVjdGlvbmFsU2hhZG93Q29vcmRbIGkgXSApIDogMS4wOwoJfQoJI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmQKCSNlbmRpZgoJI2lmIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwCglTcG90TGlnaHRTaGFkb3cgc3BvdExpZ2h0OwoJI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydAoJZm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1NQT1RfTElHSFRfU0hBRE9XUzsgaSArKyApIHsKCQlzcG90TGlnaHQgPSBzcG90TGlnaHRTaGFkb3dzWyBpIF07CgkJc2hhZG93ICo9IHJlY2VpdmVTaGFkb3cgPyBnZXRTaGFkb3coIHNwb3RTaGFkb3dNYXBbIGkgXSwgc3BvdExpZ2h0LnNoYWRvd01hcFNpemUsIHNwb3RMaWdodC5zaGFkb3dCaWFzLCBzcG90TGlnaHQuc2hhZG93UmFkaXVzLCB2U3BvdFNoYWRvd0Nvb3JkWyBpIF0gKSA6IDEuMDsKCX0KCSNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kCgkjZW5kaWYKCSNpZiBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDAKCVBvaW50TGlnaHRTaGFkb3cgcG9pbnRMaWdodDsKCSNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnQKCWZvciAoIGludCBpID0gMDsgaSA8IE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTOyBpICsrICkgewoJCXBvaW50TGlnaHQgPSBwb2ludExpZ2h0U2hhZG93c1sgaSBdOwoJCXNoYWRvdyAqPSByZWNlaXZlU2hhZG93ID8gZ2V0UG9pbnRTaGFkb3coIHBvaW50U2hhZG93TWFwWyBpIF0sIHBvaW50TGlnaHQuc2hhZG93TWFwU2l6ZSwgcG9pbnRMaWdodC5zaGFkb3dCaWFzLCBwb2ludExpZ2h0LnNoYWRvd1JhZGl1cywgdlBvaW50U2hhZG93Q29vcmRbIGkgXSwgcG9pbnRMaWdodC5zaGFkb3dDYW1lcmFOZWFyLCBwb2ludExpZ2h0LnNoYWRvd0NhbWVyYUZhciApIDogMS4wOwoJfQoJI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmQKCSNlbmRpZgoJI2VuZGlmCglyZXR1cm4gc2hhZG93Owp9YCxRcHI9YCNpZmRlZiBVU0VfU0tJTk5JTkcKCW1hdDQgYm9uZU1hdFggPSBnZXRCb25lTWF0cml4KCBza2luSW5kZXgueCApOwoJbWF0NCBib25lTWF0WSA9IGdldEJvbmVNYXRyaXgoIHNraW5JbmRleC55ICk7CgltYXQ0IGJvbmVNYXRaID0gZ2V0Qm9uZU1hdHJpeCggc2tpbkluZGV4LnogKTsKCW1hdDQgYm9uZU1hdFcgPSBnZXRCb25lTWF0cml4KCBza2luSW5kZXgudyApOwojZW5kaWZgLHRkcj1gI2lmZGVmIFVTRV9TS0lOTklORwoJdW5pZm9ybSBtYXQ0IGJpbmRNYXRyaXg7Cgl1bmlmb3JtIG1hdDQgYmluZE1hdHJpeEludmVyc2U7CgkjaWZkZWYgQk9ORV9URVhUVVJFCgkJdW5pZm9ybSBoaWdocCBzYW1wbGVyMkQgYm9uZVRleHR1cmU7CgkJdW5pZm9ybSBpbnQgYm9uZVRleHR1cmVTaXplOwoJCW1hdDQgZ2V0Qm9uZU1hdHJpeCggY29uc3QgaW4gZmxvYXQgaSApIHsKCQkJZmxvYXQgaiA9IGkgKiA0LjA7CgkJCWZsb2F0IHggPSBtb2QoIGosIGZsb2F0KCBib25lVGV4dHVyZVNpemUgKSApOwoJCQlmbG9hdCB5ID0gZmxvb3IoIGogLyBmbG9hdCggYm9uZVRleHR1cmVTaXplICkgKTsKCQkJZmxvYXQgZHggPSAxLjAgLyBmbG9hdCggYm9uZVRleHR1cmVTaXplICk7CgkJCWZsb2F0IGR5ID0gMS4wIC8gZmxvYXQoIGJvbmVUZXh0dXJlU2l6ZSApOwoJCQl5ID0gZHkgKiAoIHkgKyAwLjUgKTsKCQkJdmVjNCB2MSA9IHRleHR1cmUyRCggYm9uZVRleHR1cmUsIHZlYzIoIGR4ICogKCB4ICsgMC41ICksIHkgKSApOwoJCQl2ZWM0IHYyID0gdGV4dHVyZTJEKCBib25lVGV4dHVyZSwgdmVjMiggZHggKiAoIHggKyAxLjUgKSwgeSApICk7CgkJCXZlYzQgdjMgPSB0ZXh0dXJlMkQoIGJvbmVUZXh0dXJlLCB2ZWMyKCBkeCAqICggeCArIDIuNSApLCB5ICkgKTsKCQkJdmVjNCB2NCA9IHRleHR1cmUyRCggYm9uZVRleHR1cmUsIHZlYzIoIGR4ICogKCB4ICsgMy41ICksIHkgKSApOwoJCQltYXQ0IGJvbmUgPSBtYXQ0KCB2MSwgdjIsIHYzLCB2NCApOwoJCQlyZXR1cm4gYm9uZTsKCQl9CgkjZWxzZQoJCXVuaWZvcm0gbWF0NCBib25lTWF0cmljZXNbIE1BWF9CT05FUyBdOwoJCW1hdDQgZ2V0Qm9uZU1hdHJpeCggY29uc3QgaW4gZmxvYXQgaSApIHsKCQkJbWF0NCBib25lID0gYm9uZU1hdHJpY2VzWyBpbnQoaSkgXTsKCQkJcmV0dXJuIGJvbmU7CgkJfQoJI2VuZGlmCiNlbmRpZmAsZWRyPWAjaWZkZWYgVVNFX1NLSU5OSU5HCgl2ZWM0IHNraW5WZXJ0ZXggPSBiaW5kTWF0cml4ICogdmVjNCggdHJhbnNmb3JtZWQsIDEuMCApOwoJdmVjNCBza2lubmVkID0gdmVjNCggMC4wICk7Cglza2lubmVkICs9IGJvbmVNYXRYICogc2tpblZlcnRleCAqIHNraW5XZWlnaHQueDsKCXNraW5uZWQgKz0gYm9uZU1hdFkgKiBza2luVmVydGV4ICogc2tpbldlaWdodC55OwoJc2tpbm5lZCArPSBib25lTWF0WiAqIHNraW5WZXJ0ZXggKiBza2luV2VpZ2h0Lno7Cglza2lubmVkICs9IGJvbmVNYXRXICogc2tpblZlcnRleCAqIHNraW5XZWlnaHQudzsKCXRyYW5zZm9ybWVkID0gKCBiaW5kTWF0cml4SW52ZXJzZSAqIHNraW5uZWQgKS54eXo7CiNlbmRpZmAscmRyPWAjaWZkZWYgVVNFX1NLSU5OSU5HCgltYXQ0IHNraW5NYXRyaXggPSBtYXQ0KCAwLjAgKTsKCXNraW5NYXRyaXggKz0gc2tpbldlaWdodC54ICogYm9uZU1hdFg7Cglza2luTWF0cml4ICs9IHNraW5XZWlnaHQueSAqIGJvbmVNYXRZOwoJc2tpbk1hdHJpeCArPSBza2luV2VpZ2h0LnogKiBib25lTWF0WjsKCXNraW5NYXRyaXggKz0gc2tpbldlaWdodC53ICogYm9uZU1hdFc7Cglza2luTWF0cml4ID0gYmluZE1hdHJpeEludmVyc2UgKiBza2luTWF0cml4ICogYmluZE1hdHJpeDsKCW9iamVjdE5vcm1hbCA9IHZlYzQoIHNraW5NYXRyaXggKiB2ZWM0KCBvYmplY3ROb3JtYWwsIDAuMCApICkueHl6OwoJI2lmZGVmIFVTRV9UQU5HRU5UCgkJb2JqZWN0VGFuZ2VudCA9IHZlYzQoIHNraW5NYXRyaXggKiB2ZWM0KCBvYmplY3RUYW5nZW50LCAwLjAgKSApLnh5ejsKCSNlbmRpZgojZW5kaWZgLG5kcj1gZmxvYXQgc3BlY3VsYXJTdHJlbmd0aDsKI2lmZGVmIFVTRV9TUEVDVUxBUk1BUAoJdmVjNCB0ZXhlbFNwZWN1bGFyID0gdGV4dHVyZTJEKCBzcGVjdWxhck1hcCwgdlV2ICk7CglzcGVjdWxhclN0cmVuZ3RoID0gdGV4ZWxTcGVjdWxhci5yOwojZWxzZQoJc3BlY3VsYXJTdHJlbmd0aCA9IDEuMDsKI2VuZGlmYCxpZHI9YCNpZmRlZiBVU0VfU1BFQ1VMQVJNQVAKCXVuaWZvcm0gc2FtcGxlcjJEIHNwZWN1bGFyTWFwOwojZW5kaWZgLG9kcj1gI2lmIGRlZmluZWQoIFRPTkVfTUFQUElORyApCglnbF9GcmFnQ29sb3IucmdiID0gdG9uZU1hcHBpbmcoIGdsX0ZyYWdDb2xvci5yZ2IgKTsKI2VuZGlmYCxhZHI9YCNpZm5kZWYgc2F0dXJhdGUKI2RlZmluZSBzYXR1cmF0ZSggYSApIGNsYW1wKCBhLCAwLjAsIDEuMCApCiNlbmRpZgp1bmlmb3JtIGZsb2F0IHRvbmVNYXBwaW5nRXhwb3N1cmU7CnZlYzMgTGluZWFyVG9uZU1hcHBpbmcoIHZlYzMgY29sb3IgKSB7CglyZXR1cm4gdG9uZU1hcHBpbmdFeHBvc3VyZSAqIGNvbG9yOwp9CnZlYzMgUmVpbmhhcmRUb25lTWFwcGluZyggdmVjMyBjb2xvciApIHsKCWNvbG9yICo9IHRvbmVNYXBwaW5nRXhwb3N1cmU7CglyZXR1cm4gc2F0dXJhdGUoIGNvbG9yIC8gKCB2ZWMzKCAxLjAgKSArIGNvbG9yICkgKTsKfQp2ZWMzIE9wdGltaXplZENpbmVvblRvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkgewoJY29sb3IgKj0gdG9uZU1hcHBpbmdFeHBvc3VyZTsKCWNvbG9yID0gbWF4KCB2ZWMzKCAwLjAgKSwgY29sb3IgLSAwLjAwNCApOwoJcmV0dXJuIHBvdyggKCBjb2xvciAqICggNi4yICogY29sb3IgKyAwLjUgKSApIC8gKCBjb2xvciAqICggNi4yICogY29sb3IgKyAxLjcgKSArIDAuMDYgKSwgdmVjMyggMi4yICkgKTsKfQp2ZWMzIFJSVEFuZE9EVEZpdCggdmVjMyB2ICkgewoJdmVjMyBhID0gdiAqICggdiArIDAuMDI0NTc4NiApIC0gMC4wMDAwOTA1Mzc7Cgl2ZWMzIGIgPSB2ICogKCAwLjk4MzcyOSAqIHYgKyAwLjQzMjk1MTAgKSArIDAuMjM4MDgxOwoJcmV0dXJuIGEgLyBiOwp9CnZlYzMgQUNFU0ZpbG1pY1RvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkgewoJY29uc3QgbWF0MyBBQ0VTSW5wdXRNYXQgPSBtYXQzKAoJCXZlYzMoIDAuNTk3MTksIDAuMDc2MDAsIDAuMDI4NDAgKSwJCXZlYzMoIDAuMzU0NTgsIDAuOTA4MzQsIDAuMTMzODMgKSwKCQl2ZWMzKCAwLjA0ODIzLCAwLjAxNTY2LCAwLjgzNzc3ICkKCSk7Cgljb25zdCBtYXQzIEFDRVNPdXRwdXRNYXQgPSBtYXQzKAoJCXZlYzMoICAxLjYwNDc1LCAtMC4xMDIwOCwgLTAuMDAzMjcgKSwJCXZlYzMoIC0wLjUzMTA4LCAgMS4xMDgxMywgLTAuMDcyNzYgKSwKCQl2ZWMzKCAtMC4wNzM2NywgLTAuMDA2MDUsICAxLjA3NjAyICkKCSk7Cgljb2xvciAqPSB0b25lTWFwcGluZ0V4cG9zdXJlIC8gMC42OwoJY29sb3IgPSBBQ0VTSW5wdXRNYXQgKiBjb2xvcjsKCWNvbG9yID0gUlJUQW5kT0RURml0KCBjb2xvciApOwoJY29sb3IgPSBBQ0VTT3V0cHV0TWF0ICogY29sb3I7CglyZXR1cm4gc2F0dXJhdGUoIGNvbG9yICk7Cn0KdmVjMyBDdXN0b21Ub25lTWFwcGluZyggdmVjMyBjb2xvciApIHsgcmV0dXJuIGNvbG9yOyB9YCxzZHI9YCNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OCglmbG9hdCB0cmFuc21pc3Npb25BbHBoYSA9IDEuMDsKCWZsb2F0IHRyYW5zbWlzc2lvbkZhY3RvciA9IHRyYW5zbWlzc2lvbjsKCWZsb2F0IHRoaWNrbmVzc0ZhY3RvciA9IHRoaWNrbmVzczsKCSNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OTUFQCgkJdHJhbnNtaXNzaW9uRmFjdG9yICo9IHRleHR1cmUyRCggdHJhbnNtaXNzaW9uTWFwLCB2VXYgKS5yOwoJI2VuZGlmCgkjaWZkZWYgVVNFX1RISUNLTkVTU01BUAoJCXRoaWNrbmVzc0ZhY3RvciAqPSB0ZXh0dXJlMkQoIHRoaWNrbmVzc01hcCwgdlV2ICkuZzsKCSNlbmRpZgoJdmVjMyBwb3MgPSB2V29ybGRQb3NpdGlvbjsKCXZlYzMgdiA9IG5vcm1hbGl6ZSggY2FtZXJhUG9zaXRpb24gLSBwb3MgKTsKCXZlYzMgbiA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIG5vcm1hbCwgdmlld01hdHJpeCApOwoJdmVjNCB0cmFuc21pc3Npb24gPSBnZXRJQkxWb2x1bWVSZWZyYWN0aW9uKAoJCW4sIHYsIHJvdWdobmVzc0ZhY3RvciwgbWF0ZXJpYWwuZGlmZnVzZUNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhckY5MCwKCQlwb3MsIG1vZGVsTWF0cml4LCB2aWV3TWF0cml4LCBwcm9qZWN0aW9uTWF0cml4LCBpb3IsIHRoaWNrbmVzc0ZhY3RvciwKCQlhdHRlbnVhdGlvbkNvbG9yLCBhdHRlbnVhdGlvbkRpc3RhbmNlICk7Cgl0b3RhbERpZmZ1c2UgPSBtaXgoIHRvdGFsRGlmZnVzZSwgdHJhbnNtaXNzaW9uLnJnYiwgdHJhbnNtaXNzaW9uRmFjdG9yICk7Cgl0cmFuc21pc3Npb25BbHBoYSA9IG1peCggdHJhbnNtaXNzaW9uQWxwaGEsIHRyYW5zbWlzc2lvbi5hLCB0cmFuc21pc3Npb25GYWN0b3IgKTsKI2VuZGlmYCxsZHI9YCNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OCgl1bmlmb3JtIGZsb2F0IHRyYW5zbWlzc2lvbjsKCXVuaWZvcm0gZmxvYXQgdGhpY2tuZXNzOwoJdW5pZm9ybSBmbG9hdCBhdHRlbnVhdGlvbkRpc3RhbmNlOwoJdW5pZm9ybSB2ZWMzIGF0dGVudWF0aW9uQ29sb3I7CgkjaWZkZWYgVVNFX1RSQU5TTUlTU0lPTk1BUAoJCXVuaWZvcm0gc2FtcGxlcjJEIHRyYW5zbWlzc2lvbk1hcDsKCSNlbmRpZgoJI2lmZGVmIFVTRV9USElDS05FU1NNQVAKCQl1bmlmb3JtIHNhbXBsZXIyRCB0aGlja25lc3NNYXA7CgkjZW5kaWYKCXVuaWZvcm0gdmVjMiB0cmFuc21pc3Npb25TYW1wbGVyU2l6ZTsKCXVuaWZvcm0gc2FtcGxlcjJEIHRyYW5zbWlzc2lvblNhbXBsZXJNYXA7Cgl1bmlmb3JtIG1hdDQgbW9kZWxNYXRyaXg7Cgl1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDsKCXZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjsKCXZlYzMgZ2V0Vm9sdW1lVHJhbnNtaXNzaW9uUmF5KCBjb25zdCBpbiB2ZWMzIG4sIGNvbnN0IGluIHZlYzMgdiwgY29uc3QgaW4gZmxvYXQgdGhpY2tuZXNzLCBjb25zdCBpbiBmbG9hdCBpb3IsIGNvbnN0IGluIG1hdDQgbW9kZWxNYXRyaXggKSB7CgkJdmVjMyByZWZyYWN0aW9uVmVjdG9yID0gcmVmcmFjdCggLSB2LCBub3JtYWxpemUoIG4gKSwgMS4wIC8gaW9yICk7CgkJdmVjMyBtb2RlbFNjYWxlOwoJCW1vZGVsU2NhbGUueCA9IGxlbmd0aCggdmVjMyggbW9kZWxNYXRyaXhbIDAgXS54eXogKSApOwoJCW1vZGVsU2NhbGUueSA9IGxlbmd0aCggdmVjMyggbW9kZWxNYXRyaXhbIDEgXS54eXogKSApOwoJCW1vZGVsU2NhbGUueiA9IGxlbmd0aCggdmVjMyggbW9kZWxNYXRyaXhbIDIgXS54eXogKSApOwoJCXJldHVybiBub3JtYWxpemUoIHJlZnJhY3Rpb25WZWN0b3IgKSAqIHRoaWNrbmVzcyAqIG1vZGVsU2NhbGU7Cgl9CglmbG9hdCBhcHBseUlvclRvUm91Z2huZXNzKCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGNvbnN0IGluIGZsb2F0IGlvciApIHsKCQlyZXR1cm4gcm91Z2huZXNzICogY2xhbXAoIGlvciAqIDIuMCAtIDIuMCwgMC4wLCAxLjAgKTsKCX0KCXZlYzQgZ2V0VHJhbnNtaXNzaW9uU2FtcGxlKCBjb25zdCBpbiB2ZWMyIGZyYWdDb29yZCwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBjb25zdCBpbiBmbG9hdCBpb3IgKSB7CgkJZmxvYXQgZnJhbWVidWZmZXJMb2QgPSBsb2cyKCB0cmFuc21pc3Npb25TYW1wbGVyU2l6ZS54ICkgKiBhcHBseUlvclRvUm91Z2huZXNzKCByb3VnaG5lc3MsIGlvciApOwoJCSNpZmRlZiBURVhUVVJFX0xPRF9FWFQKCQkJcmV0dXJuIHRleHR1cmUyRExvZEVYVCggdHJhbnNtaXNzaW9uU2FtcGxlck1hcCwgZnJhZ0Nvb3JkLnh5LCBmcmFtZWJ1ZmZlckxvZCApOwoJCSNlbHNlCgkJCXJldHVybiB0ZXh0dXJlMkQoIHRyYW5zbWlzc2lvblNhbXBsZXJNYXAsIGZyYWdDb29yZC54eSwgZnJhbWVidWZmZXJMb2QgKTsKCQkjZW5kaWYKCX0KCXZlYzMgYXBwbHlWb2x1bWVBdHRlbnVhdGlvbiggY29uc3QgaW4gdmVjMyByYWRpYW5jZSwgY29uc3QgaW4gZmxvYXQgdHJhbnNtaXNzaW9uRGlzdGFuY2UsIGNvbnN0IGluIHZlYzMgYXR0ZW51YXRpb25Db2xvciwgY29uc3QgaW4gZmxvYXQgYXR0ZW51YXRpb25EaXN0YW5jZSApIHsKCQlpZiAoIGF0dGVudWF0aW9uRGlzdGFuY2UgPT0gMC4wICkgewoJCQlyZXR1cm4gcmFkaWFuY2U7CgkJfSBlbHNlIHsKCQkJdmVjMyBhdHRlbnVhdGlvbkNvZWZmaWNpZW50ID0gLWxvZyggYXR0ZW51YXRpb25Db2xvciApIC8gYXR0ZW51YXRpb25EaXN0YW5jZTsKCQkJdmVjMyB0cmFuc21pdHRhbmNlID0gZXhwKCAtIGF0dGVudWF0aW9uQ29lZmZpY2llbnQgKiB0cmFuc21pc3Npb25EaXN0YW5jZSApOwkJCXJldHVybiB0cmFuc21pdHRhbmNlICogcmFkaWFuY2U7CgkJfQoJfQoJdmVjNCBnZXRJQkxWb2x1bWVSZWZyYWN0aW9uKCBjb25zdCBpbiB2ZWMzIG4sIGNvbnN0IGluIHZlYzMgdiwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBjb25zdCBpbiB2ZWMzIGRpZmZ1c2VDb2xvciwKCQljb25zdCBpbiB2ZWMzIHNwZWN1bGFyQ29sb3IsIGNvbnN0IGluIGZsb2F0IHNwZWN1bGFyRjkwLCBjb25zdCBpbiB2ZWMzIHBvc2l0aW9uLCBjb25zdCBpbiBtYXQ0IG1vZGVsTWF0cml4LAoJCWNvbnN0IGluIG1hdDQgdmlld01hdHJpeCwgY29uc3QgaW4gbWF0NCBwcm9qTWF0cml4LCBjb25zdCBpbiBmbG9hdCBpb3IsIGNvbnN0IGluIGZsb2F0IHRoaWNrbmVzcywKCQljb25zdCBpbiB2ZWMzIGF0dGVudWF0aW9uQ29sb3IsIGNvbnN0IGluIGZsb2F0IGF0dGVudWF0aW9uRGlzdGFuY2UgKSB7CgkJdmVjMyB0cmFuc21pc3Npb25SYXkgPSBnZXRWb2x1bWVUcmFuc21pc3Npb25SYXkoIG4sIHYsIHRoaWNrbmVzcywgaW9yLCBtb2RlbE1hdHJpeCApOwoJCXZlYzMgcmVmcmFjdGVkUmF5RXhpdCA9IHBvc2l0aW9uICsgdHJhbnNtaXNzaW9uUmF5OwoJCXZlYzQgbmRjUG9zID0gcHJvak1hdHJpeCAqIHZpZXdNYXRyaXggKiB2ZWM0KCByZWZyYWN0ZWRSYXlFeGl0LCAxLjAgKTsKCQl2ZWMyIHJlZnJhY3Rpb25Db29yZHMgPSBuZGNQb3MueHkgLyBuZGNQb3MudzsKCQlyZWZyYWN0aW9uQ29vcmRzICs9IDEuMDsKCQlyZWZyYWN0aW9uQ29vcmRzIC89IDIuMDsKCQl2ZWM0IHRyYW5zbWl0dGVkTGlnaHQgPSBnZXRUcmFuc21pc3Npb25TYW1wbGUoIHJlZnJhY3Rpb25Db29yZHMsIHJvdWdobmVzcywgaW9yICk7CgkJdmVjMyBhdHRlbnVhdGVkQ29sb3IgPSBhcHBseVZvbHVtZUF0dGVudWF0aW9uKCB0cmFuc21pdHRlZExpZ2h0LnJnYiwgbGVuZ3RoKCB0cmFuc21pc3Npb25SYXkgKSwgYXR0ZW51YXRpb25Db2xvciwgYXR0ZW51YXRpb25EaXN0YW5jZSApOwoJCXZlYzMgRiA9IEVudmlyb25tZW50QlJERiggbiwgdiwgc3BlY3VsYXJDb2xvciwgc3BlY3VsYXJGOTAsIHJvdWdobmVzcyApOwoJCXJldHVybiB2ZWM0KCAoIDEuMCAtIEYgKSAqIGF0dGVudWF0ZWRDb2xvciAqIGRpZmZ1c2VDb2xvciwgdHJhbnNtaXR0ZWRMaWdodC5hICk7Cgl9CiNlbmRpZmAsY2RyPWAjaWYgKCBkZWZpbmVkKCBVU0VfVVYgKSAmJiAhIGRlZmluZWQoIFVWU19WRVJURVhfT05MWSApICkKCXZhcnlpbmcgdmVjMiB2VXY7CiNlbmRpZmAsdWRyPWAjaWZkZWYgVVNFX1VWCgkjaWZkZWYgVVZTX1ZFUlRFWF9PTkxZCgkJdmVjMiB2VXY7CgkjZWxzZQoJCXZhcnlpbmcgdmVjMiB2VXY7CgkjZW5kaWYKCXVuaWZvcm0gbWF0MyB1dlRyYW5zZm9ybTsKI2VuZGlmYCxoZHI9YCNpZmRlZiBVU0VfVVYKCXZVdiA9ICggdXZUcmFuc2Zvcm0gKiB2ZWMzKCB1diwgMSApICkueHk7CiNlbmRpZmAsZmRyPWAjaWYgZGVmaW5lZCggVVNFX0xJR0hUTUFQICkgfHwgZGVmaW5lZCggVVNFX0FPTUFQICkKCXZhcnlpbmcgdmVjMiB2VXYyOwojZW5kaWZgLHBkcj1gI2lmIGRlZmluZWQoIFVTRV9MSUdIVE1BUCApIHx8IGRlZmluZWQoIFVTRV9BT01BUCApCglhdHRyaWJ1dGUgdmVjMiB1djI7Cgl2YXJ5aW5nIHZlYzIgdlV2MjsKCXVuaWZvcm0gbWF0MyB1djJUcmFuc2Zvcm07CiNlbmRpZmAsZGRyPWAjaWYgZGVmaW5lZCggVVNFX0xJR0hUTUFQICkgfHwgZGVmaW5lZCggVVNFX0FPTUFQICkKCXZVdjIgPSAoIHV2MlRyYW5zZm9ybSAqIHZlYzMoIHV2MiwgMSApICkueHk7CiNlbmRpZmAsbWRyPWAjaWYgZGVmaW5lZCggVVNFX0VOVk1BUCApIHx8IGRlZmluZWQoIERJU1RBTkNFICkgfHwgZGVmaW5lZCAoIFVTRV9TSEFET1dNQVAgKSB8fCBkZWZpbmVkICggVVNFX1RSQU5TTUlTU0lPTiApCgl2ZWM0IHdvcmxkUG9zaXRpb24gPSB2ZWM0KCB0cmFuc2Zvcm1lZCwgMS4wICk7CgkjaWZkZWYgVVNFX0lOU1RBTkNJTkcKCQl3b3JsZFBvc2l0aW9uID0gaW5zdGFuY2VNYXRyaXggKiB3b3JsZFBvc2l0aW9uOwoJI2VuZGlmCgl3b3JsZFBvc2l0aW9uID0gbW9kZWxNYXRyaXggKiB3b3JsZFBvc2l0aW9uOwojZW5kaWZgLGdkcj1gdmFyeWluZyB2ZWMyIHZVdjsKdW5pZm9ybSBtYXQzIHV2VHJhbnNmb3JtOwp2b2lkIG1haW4oKSB7Cgl2VXYgPSAoIHV2VHJhbnNmb3JtICogdmVjMyggdXYsIDEgKSApLnh5OwoJZ2xfUG9zaXRpb24gPSB2ZWM0KCBwb3NpdGlvbi54eSwgMS4wLCAxLjAgKTsKfWAsX2RyPWB1bmlmb3JtIHNhbXBsZXIyRCB0MkQ7CnZhcnlpbmcgdmVjMiB2VXY7CnZvaWQgbWFpbigpIHsKCWdsX0ZyYWdDb2xvciA9IHRleHR1cmUyRCggdDJELCB2VXYgKTsKCSNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+Cn1gLHlkcj1gdmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjsKI2luY2x1ZGUgPGNvbW1vbj4Kdm9pZCBtYWluKCkgewoJdldvcmxkRGlyZWN0aW9uID0gdHJhbnNmb3JtRGlyZWN0aW9uKCBwb3NpdGlvbiwgbW9kZWxNYXRyaXggKTsKCSNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+CgkjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+CglnbF9Qb3NpdGlvbi56ID0gZ2xfUG9zaXRpb24udzsKfWAsdmRyPWAjaW5jbHVkZSA8ZW52bWFwX2NvbW1vbl9wYXJzX2ZyYWdtZW50Pgp1bmlmb3JtIGZsb2F0IG9wYWNpdHk7CnZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247CiNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+CnZvaWQgbWFpbigpIHsKCXZlYzMgdlJlZmxlY3QgPSB2V29ybGREaXJlY3Rpb247CgkjaW5jbHVkZSA8ZW52bWFwX2ZyYWdtZW50PgoJZ2xfRnJhZ0NvbG9yID0gZW52Q29sb3I7CglnbF9GcmFnQ29sb3IuYSAqPSBvcGFjaXR5OwoJI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD4KfWAseGRyPWAjaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+CnZhcnlpbmcgdmVjMiB2SGlnaFByZWNpc2lvblpXOwp2b2lkIG1haW4oKSB7CgkjaW5jbHVkZSA8dXZfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD4KCSNpZmRlZiBVU0VfRElTUExBQ0VNRU5UTUFQCgkJI2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD4KCQkjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PgoJCSNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD4KCSNlbmRpZgoJI2luY2x1ZGUgPGJlZ2luX3ZlcnRleD4KCSNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PgoJI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+CgkjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PgoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+Cgl2SGlnaFByZWNpc2lvblpXID0gZ2xfUG9zaXRpb24uenc7Cn1gLGJkcj1gI2lmIERFUFRIX1BBQ0tJTkcgPT0gMzIwMAoJdW5pZm9ybSBmbG9hdCBvcGFjaXR5OwojZW5kaWYKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPHBhY2tpbmc+CiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YWxwaGF0ZXN0X3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+CnZhcnlpbmcgdmVjMiB2SGlnaFByZWNpc2lvblpXOwp2b2lkIG1haW4oKSB7CgkjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PgoJdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCAxLjAgKTsKCSNpZiBERVBUSF9QQUNLSU5HID09IDMyMDAKCQlkaWZmdXNlQ29sb3IuYSA9IG9wYWNpdHk7CgkjZW5kaWYKCSNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PgoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PgoJZmxvYXQgZnJhZ0Nvb3JkWiA9IDAuNSAqIHZIaWdoUHJlY2lzaW9uWldbMF0gLyB2SGlnaFByZWNpc2lvblpXWzFdICsgMC41OwoJI2lmIERFUFRIX1BBQ0tJTkcgPT0gMzIwMAoJCWdsX0ZyYWdDb2xvciA9IHZlYzQoIHZlYzMoIDEuMCAtIGZyYWdDb29yZFogKSwgb3BhY2l0eSApOwoJI2VsaWYgREVQVEhfUEFDS0lORyA9PSAzMjAxCgkJZ2xfRnJhZ0NvbG9yID0gcGFja0RlcHRoVG9SR0JBKCBmcmFnQ29vcmRaICk7CgkjZW5kaWYKfWAsd2RyPWAjZGVmaW5lIERJU1RBTkNFCnZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjsKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PgojaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPHV2X3ZlcnRleD4KCSNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+CgkjaWZkZWYgVVNFX0RJU1BMQUNFTUVOVE1BUAoJCSNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+CgkJI2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD4KCQkjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+CgkjZW5kaWYKCSNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+CgkjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD4KCSNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PgoJI2luY2x1ZGUgPHByb2plY3RfdmVydGV4PgoJI2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD4KCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PgoJdldvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uLnh5ejsKfWAsU2RyPWAjZGVmaW5lIERJU1RBTkNFCnVuaWZvcm0gdmVjMyByZWZlcmVuY2VQb3NpdGlvbjsKdW5pZm9ybSBmbG9hdCBuZWFyRGlzdGFuY2U7CnVuaWZvcm0gZmxvYXQgZmFyRGlzdGFuY2U7CnZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjsKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPHBhY2tpbmc+CiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YWxwaGF0ZXN0X3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD4Kdm9pZCBtYWluICgpIHsKCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+Cgl2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIDEuMCApOwoJI2luY2x1ZGUgPG1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+CglmbG9hdCBkaXN0ID0gbGVuZ3RoKCB2V29ybGRQb3NpdGlvbiAtIHJlZmVyZW5jZVBvc2l0aW9uICk7CglkaXN0ID0gKCBkaXN0IC0gbmVhckRpc3RhbmNlICkgLyAoIGZhckRpc3RhbmNlIC0gbmVhckRpc3RhbmNlICk7CglkaXN0ID0gc2F0dXJhdGUoIGRpc3QgKTsKCWdsX0ZyYWdDb2xvciA9IHBhY2tEZXB0aFRvUkdCQSggZGlzdCApOwp9YCxNZHI9YHZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247CiNpbmNsdWRlIDxjb21tb24+CnZvaWQgbWFpbigpIHsKCXZXb3JsZERpcmVjdGlvbiA9IHRyYW5zZm9ybURpcmVjdGlvbiggcG9zaXRpb24sIG1vZGVsTWF0cml4ICk7CgkjaW5jbHVkZSA8YmVnaW5fdmVydGV4PgoJI2luY2x1ZGUgPHByb2plY3RfdmVydGV4Pgp9YCxFZHI9YHVuaWZvcm0gc2FtcGxlcjJEIHRFcXVpcmVjdDsKdmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjsKI2luY2x1ZGUgPGNvbW1vbj4Kdm9pZCBtYWluKCkgewoJdmVjMyBkaXJlY3Rpb24gPSBub3JtYWxpemUoIHZXb3JsZERpcmVjdGlvbiApOwoJdmVjMiBzYW1wbGVVViA9IGVxdWlyZWN0VXYoIGRpcmVjdGlvbiApOwoJZ2xfRnJhZ0NvbG9yID0gdGV4dHVyZTJEKCB0RXF1aXJlY3QsIHNhbXBsZVVWICk7CgkjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50Pgp9YCxUZHI9YHVuaWZvcm0gZmxvYXQgc2NhbGU7CmF0dHJpYnV0ZSBmbG9hdCBsaW5lRGlzdGFuY2U7CnZhcnlpbmcgZmxvYXQgdkxpbmVEaXN0YW5jZTsKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD4Kdm9pZCBtYWluKCkgewoJdkxpbmVEaXN0YW5jZSA9IHNjYWxlICogbGluZURpc3RhbmNlOwoJI2luY2x1ZGUgPGNvbG9yX3ZlcnRleD4KCSNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+CgkjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PgoJI2luY2x1ZGUgPHByb2plY3RfdmVydGV4PgoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD4KCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PgoJI2luY2x1ZGUgPGZvZ192ZXJ0ZXg+Cn1gLENkcj1gdW5pZm9ybSB2ZWMzIGRpZmZ1c2U7CnVuaWZvcm0gZmxvYXQgb3BhY2l0eTsKdW5pZm9ybSBmbG9hdCBkYXNoU2l6ZTsKdW5pZm9ybSBmbG9hdCB0b3RhbFNpemU7CnZhcnlpbmcgZmxvYXQgdkxpbmVEaXN0YW5jZTsKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD4KCWlmICggbW9kKCB2TGluZURpc3RhbmNlLCB0b3RhbFNpemUgKSA+IGRhc2hTaXplICkgewoJCWRpc2NhcmQ7Cgl9Cgl2ZWMzIG91dGdvaW5nTGlnaHQgPSB2ZWMzKCAwLjAgKTsKCXZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApOwoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PgoJb3V0Z29pbmdMaWdodCA9IGRpZmZ1c2VDb2xvci5yZ2I7CgkjaW5jbHVkZSA8b3V0cHV0X2ZyYWdtZW50PgoJI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD4KCSNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD4KfWAsQWRyPWAjaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDx1djJfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxlbnZtYXBfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PgojaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPHV2X3ZlcnRleD4KCSNpbmNsdWRlIDx1djJfdmVydGV4PgoJI2luY2x1ZGUgPGNvbG9yX3ZlcnRleD4KCSNpZiBkZWZpbmVkICggVVNFX0VOVk1BUCApIHx8IGRlZmluZWQgKCBVU0VfU0tJTk5JTkcgKQoJCSNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+CgkJI2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD4KCQkjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PgoJCSNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD4KCQkjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+CgkjZW5kaWYKCSNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+CgkjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD4KCSNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD4KCSNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+CgkjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD4KCSNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+CgkjaW5jbHVkZSA8ZW52bWFwX3ZlcnRleD4KCSNpbmNsdWRlIDxmb2dfdmVydGV4Pgp9YCxQZHI9YHVuaWZvcm0gdmVjMyBkaWZmdXNlOwp1bmlmb3JtIGZsb2F0IG9wYWNpdHk7CiNpZm5kZWYgRkxBVF9TSEFERUQKCXZhcnlpbmcgdmVjMyB2Tm9ybWFsOwojZW5kaWYKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDx1djJfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGFscGhhdGVzdF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YW9tYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxlbnZtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD4KI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8c3BlY3VsYXJtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD4KCXZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApOwoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PgoJI2luY2x1ZGUgPG1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8c3BlY3VsYXJtYXBfZnJhZ21lbnQ+CglSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApOwoJI2lmZGVmIFVTRV9MSUdIVE1BUAoJCXZlYzQgbGlnaHRNYXBUZXhlbD0gdGV4dHVyZTJEKCBsaWdodE1hcCwgdlV2MiApOwoJCXJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSBsaWdodE1hcFRleGVsLnJnYiAqIGxpZ2h0TWFwSW50ZW5zaXR5OwoJI2Vsc2UKCQlyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gdmVjMyggMS4wICk7CgkjZW5kaWYKCSNpbmNsdWRlIDxhb21hcF9mcmFnbWVudD4KCXJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSAqPSBkaWZmdXNlQ29sb3IucmdiOwoJdmVjMyBvdXRnb2luZ0xpZ2h0ID0gcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlOwoJI2luY2x1ZGUgPGVudm1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxvdXRwdXRfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGZvZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGRpdGhlcmluZ19mcmFnbWVudD4KfWAsSWRyPWAjZGVmaW5lIExBTUJFUlQKdmFyeWluZyB2ZWMzIHZMaWdodEZyb250Owp2YXJ5aW5nIHZlYzMgdkluZGlyZWN0RnJvbnQ7CiNpZmRlZiBET1VCTEVfU0lERUQKCXZhcnlpbmcgdmVjMyB2TGlnaHRCYWNrOwoJdmFyeWluZyB2ZWMzIHZJbmRpcmVjdEJhY2s7CiNlbmRpZgojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDx1djJfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxlbnZtYXBfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxic2Rmcz4KI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPgojaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+CnZvaWQgbWFpbigpIHsKCSNpbmNsdWRlIDx1dl92ZXJ0ZXg+CgkjaW5jbHVkZSA8dXYyX3ZlcnRleD4KCSNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+CgkjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8YmVnaW5fdmVydGV4PgoJI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD4KCSNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+CgkjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PgoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+CgkjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PgoJI2luY2x1ZGUgPGVudm1hcF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bGlnaHRzX2xhbWJlcnRfdmVydGV4PgoJI2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+CgkjaW5jbHVkZSA8Zm9nX3ZlcnRleD4KfWAsTGRyPWB1bmlmb3JtIHZlYzMgZGlmZnVzZTsKdW5pZm9ybSB2ZWMzIGVtaXNzaXZlOwp1bmlmb3JtIGZsb2F0IG9wYWNpdHk7CnZhcnlpbmcgdmVjMyB2TGlnaHRGcm9udDsKdmFyeWluZyB2ZWMzIHZJbmRpcmVjdEZyb250OwojaWZkZWYgRE9VQkxFX1NJREVECgl2YXJ5aW5nIHZlYzMgdkxpZ2h0QmFjazsKCXZhcnlpbmcgdmVjMyB2SW5kaXJlY3RCYWNrOwojZW5kaWYKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPHBhY2tpbmc+CiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8dXYyX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxhbHBoYXRlc3RfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGFvbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxsaWdodG1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8ZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGVudm1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PgojaW5jbHVkZSA8YnNkZnM+CiNpbmNsdWRlIDxsaWdodHNfcGFyc19iZWdpbj4KI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxzaGFkb3dtYXNrX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxzcGVjdWxhcm1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Pgp2b2lkIG1haW4oKSB7CgkjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PgoJdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7CglSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApOwoJdmVjMyB0b3RhbEVtaXNzaXZlUmFkaWFuY2UgPSBlbWlzc2l2ZTsKCSNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD4KCSNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PgoJI2luY2x1ZGUgPHNwZWN1bGFybWFwX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGVtaXNzaXZlbWFwX2ZyYWdtZW50PgoJI2lmZGVmIERPVUJMRV9TSURFRAoJCXJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSAoIGdsX0Zyb250RmFjaW5nICkgPyB2SW5kaXJlY3RGcm9udCA6IHZJbmRpcmVjdEJhY2s7CgkjZWxzZQoJCXJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSB2SW5kaXJlY3RGcm9udDsKCSNlbmRpZgoJI2luY2x1ZGUgPGxpZ2h0bWFwX2ZyYWdtZW50PgoJcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICo9IEJSREZfTGFtYmVydCggZGlmZnVzZUNvbG9yLnJnYiApOwoJI2lmZGVmIERPVUJMRV9TSURFRAoJCXJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgPSAoIGdsX0Zyb250RmFjaW5nICkgPyB2TGlnaHRGcm9udCA6IHZMaWdodEJhY2s7CgkjZWxzZQoJCXJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgPSB2TGlnaHRGcm9udDsKCSNlbmRpZgoJcmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSAqPSBCUkRGX0xhbWJlcnQoIGRpZmZ1c2VDb2xvci5yZ2IgKSAqIGdldFNoYWRvd01hc2soKTsKCSNpbmNsdWRlIDxhb21hcF9mcmFnbWVudD4KCXZlYzMgb3V0Z29pbmdMaWdodCA9IHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKyB0b3RhbEVtaXNzaXZlUmFkaWFuY2U7CgkjaW5jbHVkZSA8ZW52bWFwX2ZyYWdtZW50PgoJI2luY2x1ZGUgPG91dHB1dF9mcmFnbWVudD4KCSNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PgoJI2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50Pgp9YCxrZHI9YCNkZWZpbmUgTUFUQ0FQCnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uOwojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPG5vcm1hbF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PgojaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPHV2X3ZlcnRleD4KCSNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+CgkjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+CgkjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD4KCSNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PgoJI2luY2x1ZGUgPHByb2plY3RfdmVydGV4PgoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD4KCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PgoJI2luY2x1ZGUgPGZvZ192ZXJ0ZXg+Cgl2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejsKfWAsUmRyPWAjZGVmaW5lIE1BVENBUAp1bmlmb3JtIHZlYzMgZGlmZnVzZTsKdW5pZm9ybSBmbG9hdCBvcGFjaXR5Owp1bmlmb3JtIHNhbXBsZXIyRCBtYXRjYXA7CnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uOwojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGFscGhhdGVzdF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxub3JtYWxfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPG5vcm1hbG1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Pgp2b2lkIG1haW4oKSB7CgkjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PgoJdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7CgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD4KCSNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfYmVnaW4+CgkjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+Cgl2ZWMzIHZpZXdEaXIgPSBub3JtYWxpemUoIHZWaWV3UG9zaXRpb24gKTsKCXZlYzMgeCA9IG5vcm1hbGl6ZSggdmVjMyggdmlld0Rpci56LCAwLjAsIC0gdmlld0Rpci54ICkgKTsKCXZlYzMgeSA9IGNyb3NzKCB2aWV3RGlyLCB4ICk7Cgl2ZWMyIHV2ID0gdmVjMiggZG90KCB4LCBub3JtYWwgKSwgZG90KCB5LCBub3JtYWwgKSApICogMC40OTUgKyAwLjU7CgkjaWZkZWYgVVNFX01BVENBUAoJCXZlYzQgbWF0Y2FwQ29sb3IgPSB0ZXh0dXJlMkQoIG1hdGNhcCwgdXYgKTsKCSNlbHNlCgkJdmVjNCBtYXRjYXBDb2xvciA9IHZlYzQoIHZlYzMoIG1peCggMC4yLCAwLjgsIHV2LnkgKSApLCAxLjAgKTsKCSNlbmRpZgoJdmVjMyBvdXRnb2luZ0xpZ2h0ID0gZGlmZnVzZUNvbG9yLnJnYiAqIG1hdGNhcENvbG9yLnJnYjsKCSNpbmNsdWRlIDxvdXRwdXRfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGZvZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGRpdGhlcmluZ19mcmFnbWVudD4KfWAsTmRyPWAjZGVmaW5lIE5PUk1BTAojaWYgZGVmaW5lZCggRkxBVF9TSEFERUQgKSB8fCBkZWZpbmVkKCBVU0VfQlVNUE1BUCApIHx8IGRlZmluZWQoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKQoJdmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247CiNlbmRpZgojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxub3JtYWxfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+CnZvaWQgbWFpbigpIHsKCSNpbmNsdWRlIDx1dl92ZXJ0ZXg+CgkjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+CgkjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD4KCSNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PgoJI2luY2x1ZGUgPHByb2plY3RfdmVydGV4PgoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD4KCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PgojaWYgZGVmaW5lZCggRkxBVF9TSEFERUQgKSB8fCBkZWZpbmVkKCBVU0VfQlVNUE1BUCApIHx8IGRlZmluZWQoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKQoJdlZpZXdQb3NpdGlvbiA9IC0gbXZQb3NpdGlvbi54eXo7CiNlbmRpZgp9YCxEZHI9YCNkZWZpbmUgTk9STUFMCnVuaWZvcm0gZmxvYXQgb3BhY2l0eTsKI2lmIGRlZmluZWQoIEZMQVRfU0hBREVEICkgfHwgZGVmaW5lZCggVVNFX0JVTVBNQVAgKSB8fCBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQICkKCXZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uOwojZW5kaWYKI2luY2x1ZGUgPHBhY2tpbmc+CiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bm9ybWFsX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxidW1wbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD4KCSNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD4KCSNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfYmVnaW4+CgkjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+CglnbF9GcmFnQ29sb3IgPSB2ZWM0KCBwYWNrTm9ybWFsVG9SR0IoIG5vcm1hbCApLCBvcGFjaXR5ICk7Cn1gLE9kcj1gI2RlZmluZSBQSE9ORwp2YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjsKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PgojaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8ZW52bWFwX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxub3JtYWxfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+CnZvaWQgbWFpbigpIHsKCSNpbmNsdWRlIDx1dl92ZXJ0ZXg+CgkjaW5jbHVkZSA8dXYyX3ZlcnRleD4KCSNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+CgkjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+CgkjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD4KCSNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PgoJI2luY2x1ZGUgPHByb2plY3RfdmVydGV4PgoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD4KCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PgoJdlZpZXdQb3NpdGlvbiA9IC0gbXZQb3NpdGlvbi54eXo7CgkjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PgoJI2luY2x1ZGUgPGVudm1hcF92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2hhZG93bWFwX3ZlcnRleD4KCSNpbmNsdWRlIDxmb2dfdmVydGV4Pgp9YCx6ZHI9YCNkZWZpbmUgUEhPTkcKdW5pZm9ybSB2ZWMzIGRpZmZ1c2U7CnVuaWZvcm0gdmVjMyBlbWlzc2l2ZTsKdW5pZm9ybSB2ZWMzIHNwZWN1bGFyOwp1bmlmb3JtIGZsb2F0IHNoaW5pbmVzczsKdW5pZm9ybSBmbG9hdCBvcGFjaXR5OwojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8cGFja2luZz4KI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDx1djJfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGFscGhhdGVzdF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YW9tYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8ZW52bWFwX2NvbW1vbl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8ZW52bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+CiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGJzZGZzPgojaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+CiNpbmNsdWRlIDxub3JtYWxfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGxpZ2h0c19waG9uZ19wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxidW1wbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPHNwZWN1bGFybWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+CnZvaWQgbWFpbigpIHsKCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+Cgl2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTsKCVJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ID0gUmVmbGVjdGVkTGlnaHQoIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApICk7Cgl2ZWMzIHRvdGFsRW1pc3NpdmVSYWRpYW5jZSA9IGVtaXNzaXZlOwoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PgoJI2luY2x1ZGUgPG1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8c3BlY3VsYXJtYXBfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X2JlZ2luPgoJI2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9tYXBzPgoJI2luY2x1ZGUgPGVtaXNzaXZlbWFwX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGxpZ2h0c19waG9uZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfYmVnaW4+CgkjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X21hcHM+CgkjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2VuZD4KCSNpbmNsdWRlIDxhb21hcF9mcmFnbWVudD4KCXZlYzMgb3V0Z29pbmdMaWdodCA9IHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKyByZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArIHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXIgKyB0b3RhbEVtaXNzaXZlUmFkaWFuY2U7CgkjaW5jbHVkZSA8ZW52bWFwX2ZyYWdtZW50PgoJI2luY2x1ZGUgPG91dHB1dF9mcmFnbWVudD4KCSNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PgoJI2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50Pgp9YCxGZHI9YCNkZWZpbmUgU1RBTkRBUkQKdmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247CiNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OCgl2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247CiNlbmRpZgojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDx1djJfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPG5vcm1hbF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PgojaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPHV2X3ZlcnRleD4KCSNpbmNsdWRlIDx1djJfdmVydGV4PgoJI2luY2x1ZGUgPGNvbG9yX3ZlcnRleD4KCSNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD4KCSNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPGJlZ2luX3ZlcnRleD4KCSNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PgoJI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+CgkjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PgoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+Cgl2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejsKCSNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+CgkjaW5jbHVkZSA8c2hhZG93bWFwX3ZlcnRleD4KCSNpbmNsdWRlIDxmb2dfdmVydGV4PgojaWZkZWYgVVNFX1RSQU5TTUlTU0lPTgoJdldvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uLnh5ejsKI2VuZGlmCn1gLEJkcj1gI2RlZmluZSBTVEFOREFSRAojaWZkZWYgUEhZU0lDQUwKCSNkZWZpbmUgSU9SCgkjZGVmaW5lIFNQRUNVTEFSCiNlbmRpZgp1bmlmb3JtIHZlYzMgZGlmZnVzZTsKdW5pZm9ybSB2ZWMzIGVtaXNzaXZlOwp1bmlmb3JtIGZsb2F0IHJvdWdobmVzczsKdW5pZm9ybSBmbG9hdCBtZXRhbG5lc3M7CnVuaWZvcm0gZmxvYXQgb3BhY2l0eTsKI2lmZGVmIElPUgoJdW5pZm9ybSBmbG9hdCBpb3I7CiNlbmRpZgojaWZkZWYgU1BFQ1VMQVIKCXVuaWZvcm0gZmxvYXQgc3BlY3VsYXJJbnRlbnNpdHk7Cgl1bmlmb3JtIHZlYzMgc3BlY3VsYXJDb2xvcjsKCSNpZmRlZiBVU0VfU1BFQ1VMQVJJTlRFTlNJVFlNQVAKCQl1bmlmb3JtIHNhbXBsZXIyRCBzcGVjdWxhckludGVuc2l0eU1hcDsKCSNlbmRpZgoJI2lmZGVmIFVTRV9TUEVDVUxBUkNPTE9STUFQCgkJdW5pZm9ybSBzYW1wbGVyMkQgc3BlY3VsYXJDb2xvck1hcDsKCSNlbmRpZgojZW5kaWYKI2lmZGVmIFVTRV9DTEVBUkNPQVQKCXVuaWZvcm0gZmxvYXQgY2xlYXJjb2F0OwoJdW5pZm9ybSBmbG9hdCBjbGVhcmNvYXRSb3VnaG5lc3M7CiNlbmRpZgojaWZkZWYgVVNFX1NIRUVOCgl1bmlmb3JtIHZlYzMgc2hlZW5Db2xvcjsKCXVuaWZvcm0gZmxvYXQgc2hlZW5Sb3VnaG5lc3M7CgkjaWZkZWYgVVNFX1NIRUVOQ09MT1JNQVAKCQl1bmlmb3JtIHNhbXBsZXIyRCBzaGVlbkNvbG9yTWFwOwoJI2VuZGlmCgkjaWZkZWYgVVNFX1NIRUVOUk9VR0hORVNTTUFQCgkJdW5pZm9ybSBzYW1wbGVyMkQgc2hlZW5Sb3VnaG5lc3NNYXA7CgkjZW5kaWYKI2VuZGlmCnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uOwojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8cGFja2luZz4KI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDx1djJfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGFscGhhdGVzdF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YW9tYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YnNkZnM+CiNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+CiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxlbnZtYXBfcGh5c2ljYWxfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+CiNpbmNsdWRlIDxub3JtYWxfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGxpZ2h0c19waHlzaWNhbF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8dHJhbnNtaXNzaW9uX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPG5vcm1hbG1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Y2xlYXJjb2F0X3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxyb3VnaG5lc3NtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPG1ldGFsbmVzc21hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Pgp2b2lkIG1haW4oKSB7CgkjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PgoJdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7CglSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApOwoJdmVjMyB0b3RhbEVtaXNzaXZlUmFkaWFuY2UgPSBlbWlzc2l2ZTsKCSNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD4KCSNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PgoJI2luY2x1ZGUgPHJvdWdobmVzc21hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxtZXRhbG5lc3NtYXBfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X2JlZ2luPgoJI2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9tYXBzPgoJI2luY2x1ZGUgPGNsZWFyY29hdF9ub3JtYWxfZnJhZ21lbnRfYmVnaW4+CgkjaW5jbHVkZSA8Y2xlYXJjb2F0X25vcm1hbF9mcmFnbWVudF9tYXBzPgoJI2luY2x1ZGUgPGVtaXNzaXZlbWFwX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGxpZ2h0c19waHlzaWNhbF9mcmFnbWVudD4KCSNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfYmVnaW4+CgkjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X21hcHM+CgkjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2VuZD4KCSNpbmNsdWRlIDxhb21hcF9mcmFnbWVudD4KCXZlYzMgdG90YWxEaWZmdXNlID0gcmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArIHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZTsKCXZlYzMgdG90YWxTcGVjdWxhciA9IHJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3RTcGVjdWxhcjsKCSNpbmNsdWRlIDx0cmFuc21pc3Npb25fZnJhZ21lbnQ+Cgl2ZWMzIG91dGdvaW5nTGlnaHQgPSB0b3RhbERpZmZ1c2UgKyB0b3RhbFNwZWN1bGFyICsgdG90YWxFbWlzc2l2ZVJhZGlhbmNlOwoJI2lmZGVmIFVTRV9TSEVFTgoJCWZsb2F0IHNoZWVuRW5lcmd5Q29tcCA9IDEuMCAtIDAuMTU3ICogbWF4MyggbWF0ZXJpYWwuc2hlZW5Db2xvciApOwoJCW91dGdvaW5nTGlnaHQgPSBvdXRnb2luZ0xpZ2h0ICogc2hlZW5FbmVyZ3lDb21wICsgc2hlZW5TcGVjdWxhcjsKCSNlbmRpZgoJI2lmZGVmIFVTRV9DTEVBUkNPQVQKCQlmbG9hdCBkb3ROVmNjID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsLCBnZW9tZXRyeS52aWV3RGlyICkgKTsKCQl2ZWMzIEZjYyA9IEZfU2NobGljayggbWF0ZXJpYWwuY2xlYXJjb2F0RjAsIG1hdGVyaWFsLmNsZWFyY29hdEY5MCwgZG90TlZjYyApOwoJCW91dGdvaW5nTGlnaHQgPSBvdXRnb2luZ0xpZ2h0ICogKCAxLjAgLSBtYXRlcmlhbC5jbGVhcmNvYXQgKiBGY2MgKSArIGNsZWFyY29hdFNwZWN1bGFyICogbWF0ZXJpYWwuY2xlYXJjb2F0OwoJI2VuZGlmCgkjaW5jbHVkZSA8b3V0cHV0X2ZyYWdtZW50PgoJI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD4KCSNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD4KCSNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+Cn1gLEhkcj1gI2RlZmluZSBUT09OCnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uOwojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDx1djJfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPG5vcm1hbF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PgojaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPHV2X3ZlcnRleD4KCSNpbmNsdWRlIDx1djJfdmVydGV4PgoJI2luY2x1ZGUgPGNvbG9yX3ZlcnRleD4KCSNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD4KCSNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPGJlZ2luX3ZlcnRleD4KCSNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PgoJI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+CgkjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PgoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+Cgl2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejsKCSNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+CgkjaW5jbHVkZSA8c2hhZG93bWFwX3ZlcnRleD4KCSNpbmNsdWRlIDxmb2dfdmVydGV4Pgp9YCxWZHI9YCNkZWZpbmUgVE9PTgp1bmlmb3JtIHZlYzMgZGlmZnVzZTsKdW5pZm9ybSB2ZWMzIGVtaXNzaXZlOwp1bmlmb3JtIGZsb2F0IG9wYWNpdHk7CiNpbmNsdWRlIDxjb21tb24+CiNpbmNsdWRlIDxwYWNraW5nPgojaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPHV2Ml9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YWxwaGF0ZXN0X3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bGlnaHRtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGVtaXNzaXZlbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxncmFkaWVudG1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxic2Rmcz4KI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPgojaW5jbHVkZSA8bm9ybWFsX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxsaWdodHNfdG9vbl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxidW1wbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD4KCXZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApOwoJUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTsKCXZlYzMgdG90YWxFbWlzc2l2ZVJhZGlhbmNlID0gZW1pc3NpdmU7CgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD4KCSNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfYmVnaW4+CgkjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+CgkjaW5jbHVkZSA8ZW1pc3NpdmVtYXBfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8bGlnaHRzX3Rvb25fZnJhZ21lbnQ+CgkjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2JlZ2luPgoJI2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9tYXBzPgoJI2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9lbmQ+CgkjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+Cgl2ZWMzIG91dGdvaW5nTGlnaHQgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICsgdG90YWxFbWlzc2l2ZVJhZGlhbmNlOwoJI2luY2x1ZGUgPG91dHB1dF9mcmFnbWVudD4KCSNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PgoJI2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50Pgp9YCxVZHI9YHVuaWZvcm0gZmxvYXQgc2l6ZTsKdW5pZm9ybSBmbG9hdCBzY2FsZTsKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPGNvbG9yX3ZlcnRleD4KCSNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+CgkjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PgoJI2luY2x1ZGUgPHByb2plY3RfdmVydGV4PgoJZ2xfUG9pbnRTaXplID0gc2l6ZTsKCSNpZmRlZiBVU0VfU0laRUFUVEVOVUFUSU9OCgkJYm9vbCBpc1BlcnNwZWN0aXZlID0gaXNQZXJzcGVjdGl2ZU1hdHJpeCggcHJvamVjdGlvbk1hdHJpeCApOwoJCWlmICggaXNQZXJzcGVjdGl2ZSApIGdsX1BvaW50U2l6ZSAqPSAoIHNjYWxlIC8gLSBtdlBvc2l0aW9uLnogKTsKCSNlbmRpZgoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD4KCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PgoJI2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD4KCSNpbmNsdWRlIDxmb2dfdmVydGV4Pgp9YCxxZHI9YHVuaWZvcm0gdmVjMyBkaWZmdXNlOwp1bmlmb3JtIGZsb2F0IG9wYWNpdHk7CiNpbmNsdWRlIDxjb21tb24+CiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bWFwX3BhcnRpY2xlX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxhbHBoYXRlc3RfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Pgp2b2lkIG1haW4oKSB7CgkjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PgoJdmVjMyBvdXRnb2luZ0xpZ2h0ID0gdmVjMyggMC4wICk7Cgl2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTsKCSNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD4KCSNpbmNsdWRlIDxtYXBfcGFydGljbGVfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PgoJb3V0Z29pbmdMaWdodCA9IGRpZmZ1c2VDb2xvci5yZ2I7CgkjaW5jbHVkZSA8b3V0cHV0X2ZyYWdtZW50PgoJI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD4KCSNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD4KfWAsR2RyPWAjaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX3ZlcnRleD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPGJlZ2luX3ZlcnRleD4KCSNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PgoJI2luY2x1ZGUgPHByb2plY3RfdmVydGV4PgoJI2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD4KCSNpbmNsdWRlIDxzaGFkb3dtYXBfdmVydGV4PgoJI2luY2x1ZGUgPGZvZ192ZXJ0ZXg+Cn1gLFdkcj1gdW5pZm9ybSB2ZWMzIGNvbG9yOwp1bmlmb3JtIGZsb2F0IG9wYWNpdHk7CiNpbmNsdWRlIDxjb21tb24+CiNpbmNsdWRlIDxwYWNraW5nPgojaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxic2Rmcz4KI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPgojaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxzaGFkb3dtYXNrX3BhcnNfZnJhZ21lbnQ+CnZvaWQgbWFpbigpIHsKCWdsX0ZyYWdDb2xvciA9IHZlYzQoIGNvbG9yLCBvcGFjaXR5ICogKCAxLjAgLSBnZXRTaGFkb3dNYXNrKCkgKSApOwoJI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD4KCSNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+Cn1gLFlkcj1gdW5pZm9ybSBmbG9hdCByb3RhdGlvbjsKdW5pZm9ybSB2ZWMyIGNlbnRlcjsKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PgojaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+CnZvaWQgbWFpbigpIHsKCSNpbmNsdWRlIDx1dl92ZXJ0ZXg+Cgl2ZWM0IG12UG9zaXRpb24gPSBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KCAwLjAsIDAuMCwgMC4wLCAxLjAgKTsKCXZlYzIgc2NhbGU7CglzY2FsZS54ID0gbGVuZ3RoKCB2ZWMzKCBtb2RlbE1hdHJpeFsgMCBdLngsIG1vZGVsTWF0cml4WyAwIF0ueSwgbW9kZWxNYXRyaXhbIDAgXS56ICkgKTsKCXNjYWxlLnkgPSBsZW5ndGgoIHZlYzMoIG1vZGVsTWF0cml4WyAxIF0ueCwgbW9kZWxNYXRyaXhbIDEgXS55LCBtb2RlbE1hdHJpeFsgMSBdLnogKSApOwoJI2lmbmRlZiBVU0VfU0laRUFUVEVOVUFUSU9OCgkJYm9vbCBpc1BlcnNwZWN0aXZlID0gaXNQZXJzcGVjdGl2ZU1hdHJpeCggcHJvamVjdGlvbk1hdHJpeCApOwoJCWlmICggaXNQZXJzcGVjdGl2ZSApIHNjYWxlICo9IC0gbXZQb3NpdGlvbi56OwoJI2VuZGlmCgl2ZWMyIGFsaWduZWRQb3NpdGlvbiA9ICggcG9zaXRpb24ueHkgLSAoIGNlbnRlciAtIHZlYzIoIDAuNSApICkgKSAqIHNjYWxlOwoJdmVjMiByb3RhdGVkUG9zaXRpb247Cglyb3RhdGVkUG9zaXRpb24ueCA9IGNvcyggcm90YXRpb24gKSAqIGFsaWduZWRQb3NpdGlvbi54IC0gc2luKCByb3RhdGlvbiApICogYWxpZ25lZFBvc2l0aW9uLnk7Cglyb3RhdGVkUG9zaXRpb24ueSA9IHNpbiggcm90YXRpb24gKSAqIGFsaWduZWRQb3NpdGlvbi54ICsgY29zKCByb3RhdGlvbiApICogYWxpZ25lZFBvc2l0aW9uLnk7CgltdlBvc2l0aW9uLnh5ICs9IHJvdGF0ZWRQb3NpdGlvbjsKCWdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG12UG9zaXRpb247CgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PgoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+CgkjaW5jbHVkZSA8Zm9nX3ZlcnRleD4KfWAsamRyPWB1bmlmb3JtIHZlYzMgZGlmZnVzZTsKdW5pZm9ybSBmbG9hdCBvcGFjaXR5OwojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGFscGhhdGVzdF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+CnZvaWQgbWFpbigpIHsKCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+Cgl2ZWMzIG91dGdvaW5nTGlnaHQgPSB2ZWMzKCAwLjAgKTsKCXZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApOwoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PgoJI2luY2x1ZGUgPG1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+CglvdXRnb2luZ0xpZ2h0ID0gZGlmZnVzZUNvbG9yLnJnYjsKCSNpbmNsdWRlIDxvdXRwdXRfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGZvZ19mcmFnbWVudD4KfWAsaHI9e2FscGhhbWFwX2ZyYWdtZW50OndmcixhbHBoYW1hcF9wYXJzX2ZyYWdtZW50OlNmcixhbHBoYXRlc3RfZnJhZ21lbnQ6TWZyLGFscGhhdGVzdF9wYXJzX2ZyYWdtZW50OkVmcixhb21hcF9mcmFnbWVudDpUZnIsYW9tYXBfcGFyc19mcmFnbWVudDpDZnIsYmVnaW5fdmVydGV4OkFmcixiZWdpbm5vcm1hbF92ZXJ0ZXg6UGZyLGJzZGZzOklmcixidW1wbWFwX3BhcnNfZnJhZ21lbnQ6TGZyLGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudDprZnIsY2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ6UmZyLGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleDpOZnIsY2xpcHBpbmdfcGxhbmVzX3ZlcnRleDpEZnIsY29sb3JfZnJhZ21lbnQ6T2ZyLGNvbG9yX3BhcnNfZnJhZ21lbnQ6emZyLGNvbG9yX3BhcnNfdmVydGV4OkZmcixjb2xvcl92ZXJ0ZXg6QmZyLGNvbW1vbjpIZnIsY3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50OlZmcixkZWZhdWx0bm9ybWFsX3ZlcnRleDpVZnIsZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4OnFmcixkaXNwbGFjZW1lbnRtYXBfdmVydGV4OkdmcixlbWlzc2l2ZW1hcF9mcmFnbWVudDpXZnIsZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudDpZZnIsZW5jb2RpbmdzX2ZyYWdtZW50OmpmcixlbmNvZGluZ3NfcGFyc19mcmFnbWVudDpYZnIsZW52bWFwX2ZyYWdtZW50OiRmcixlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ6S2ZyLGVudm1hcF9wYXJzX2ZyYWdtZW50OlpmcixlbnZtYXBfcGFyc192ZXJ0ZXg6SmZyLGVudm1hcF9waHlzaWNhbF9wYXJzX2ZyYWdtZW50OmNwcixlbnZtYXBfdmVydGV4OlFmcixmb2dfdmVydGV4OnRwcixmb2dfcGFyc192ZXJ0ZXg6ZXByLGZvZ19mcmFnbWVudDpycHIsZm9nX3BhcnNfZnJhZ21lbnQ6bnByLGdyYWRpZW50bWFwX3BhcnNfZnJhZ21lbnQ6aXByLGxpZ2h0bWFwX2ZyYWdtZW50Om9wcixsaWdodG1hcF9wYXJzX2ZyYWdtZW50OmFwcixsaWdodHNfbGFtYmVydF92ZXJ0ZXg6c3ByLGxpZ2h0c19wYXJzX2JlZ2luOmxwcixsaWdodHNfdG9vbl9mcmFnbWVudDp1cHIsbGlnaHRzX3Rvb25fcGFyc19mcmFnbWVudDpocHIsbGlnaHRzX3Bob25nX2ZyYWdtZW50OmZwcixsaWdodHNfcGhvbmdfcGFyc19mcmFnbWVudDpwcHIsbGlnaHRzX3BoeXNpY2FsX2ZyYWdtZW50OmRwcixsaWdodHNfcGh5c2ljYWxfcGFyc19mcmFnbWVudDptcHIsbGlnaHRzX2ZyYWdtZW50X2JlZ2luOmdwcixsaWdodHNfZnJhZ21lbnRfbWFwczpfcHIsbGlnaHRzX2ZyYWdtZW50X2VuZDp5cHIsbG9nZGVwdGhidWZfZnJhZ21lbnQ6dnByLGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ6eHByLGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4OmJwcixsb2dkZXB0aGJ1Zl92ZXJ0ZXg6d3ByLG1hcF9mcmFnbWVudDpTcHIsbWFwX3BhcnNfZnJhZ21lbnQ6TXByLG1hcF9wYXJ0aWNsZV9mcmFnbWVudDpFcHIsbWFwX3BhcnRpY2xlX3BhcnNfZnJhZ21lbnQ6VHByLG1ldGFsbmVzc21hcF9mcmFnbWVudDpDcHIsbWV0YWxuZXNzbWFwX3BhcnNfZnJhZ21lbnQ6QXByLG1vcnBobm9ybWFsX3ZlcnRleDpQcHIsbW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg6SXByLG1vcnBodGFyZ2V0X3ZlcnRleDpMcHIsbm9ybWFsX2ZyYWdtZW50X2JlZ2luOmtwcixub3JtYWxfZnJhZ21lbnRfbWFwczpScHIsbm9ybWFsX3BhcnNfZnJhZ21lbnQ6TnByLG5vcm1hbF9wYXJzX3ZlcnRleDpEcHIsbm9ybWFsX3ZlcnRleDpPcHIsbm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQ6enByLGNsZWFyY29hdF9ub3JtYWxfZnJhZ21lbnRfYmVnaW46RnByLGNsZWFyY29hdF9ub3JtYWxfZnJhZ21lbnRfbWFwczpCcHIsY2xlYXJjb2F0X3BhcnNfZnJhZ21lbnQ6SHByLG91dHB1dF9mcmFnbWVudDpWcHIscGFja2luZzpVcHIscHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudDpxcHIscHJvamVjdF92ZXJ0ZXg6R3ByLGRpdGhlcmluZ19mcmFnbWVudDpXcHIsZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ6WXByLHJvdWdobmVzc21hcF9mcmFnbWVudDpqcHIscm91Z2huZXNzbWFwX3BhcnNfZnJhZ21lbnQ6WHByLHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50OiRwcixzaGFkb3dtYXBfcGFyc192ZXJ0ZXg6S3ByLHNoYWRvd21hcF92ZXJ0ZXg6WnByLHNoYWRvd21hc2tfcGFyc19mcmFnbWVudDpKcHIsc2tpbmJhc2VfdmVydGV4OlFwcixza2lubmluZ19wYXJzX3ZlcnRleDp0ZHIsc2tpbm5pbmdfdmVydGV4OmVkcixza2lubm9ybWFsX3ZlcnRleDpyZHIsc3BlY3VsYXJtYXBfZnJhZ21lbnQ6bmRyLHNwZWN1bGFybWFwX3BhcnNfZnJhZ21lbnQ6aWRyLHRvbmVtYXBwaW5nX2ZyYWdtZW50Om9kcix0b25lbWFwcGluZ19wYXJzX2ZyYWdtZW50OmFkcix0cmFuc21pc3Npb25fZnJhZ21lbnQ6c2RyLHRyYW5zbWlzc2lvbl9wYXJzX2ZyYWdtZW50Omxkcix1dl9wYXJzX2ZyYWdtZW50OmNkcix1dl9wYXJzX3ZlcnRleDp1ZHIsdXZfdmVydGV4Omhkcix1djJfcGFyc19mcmFnbWVudDpmZHIsdXYyX3BhcnNfdmVydGV4OnBkcix1djJfdmVydGV4OmRkcix3b3JsZHBvc192ZXJ0ZXg6bWRyLGJhY2tncm91bmRfdmVydDpnZHIsYmFja2dyb3VuZF9mcmFnOl9kcixjdWJlX3ZlcnQ6eWRyLGN1YmVfZnJhZzp2ZHIsZGVwdGhfdmVydDp4ZHIsZGVwdGhfZnJhZzpiZHIsZGlzdGFuY2VSR0JBX3ZlcnQ6d2RyLGRpc3RhbmNlUkdCQV9mcmFnOlNkcixlcXVpcmVjdF92ZXJ0Ok1kcixlcXVpcmVjdF9mcmFnOkVkcixsaW5lZGFzaGVkX3ZlcnQ6VGRyLGxpbmVkYXNoZWRfZnJhZzpDZHIsbWVzaGJhc2ljX3ZlcnQ6QWRyLG1lc2hiYXNpY19mcmFnOlBkcixtZXNobGFtYmVydF92ZXJ0OklkcixtZXNobGFtYmVydF9mcmFnOkxkcixtZXNobWF0Y2FwX3ZlcnQ6a2RyLG1lc2htYXRjYXBfZnJhZzpSZHIsbWVzaG5vcm1hbF92ZXJ0Ok5kcixtZXNobm9ybWFsX2ZyYWc6RGRyLG1lc2hwaG9uZ192ZXJ0Ok9kcixtZXNocGhvbmdfZnJhZzp6ZHIsbWVzaHBoeXNpY2FsX3ZlcnQ6RmRyLG1lc2hwaHlzaWNhbF9mcmFnOkJkcixtZXNodG9vbl92ZXJ0OkhkcixtZXNodG9vbl9mcmFnOlZkcixwb2ludHNfdmVydDpVZHIscG9pbnRzX2ZyYWc6cWRyLHNoYWRvd192ZXJ0OkdkcixzaGFkb3dfZnJhZzpXZHIsc3ByaXRlX3ZlcnQ6WWRyLHNwcml0ZV9mcmFnOmpkcn0scmU9e2NvbW1vbjp7ZGlmZnVzZTp7dmFsdWU6bmV3IG5lKDE2Nzc3MjE1KX0sb3BhY2l0eTp7dmFsdWU6MX0sbWFwOnt2YWx1ZTpudWxsfSx1dlRyYW5zZm9ybTp7dmFsdWU6bmV3IGtpfSx1djJUcmFuc2Zvcm06e3ZhbHVlOm5ldyBraX0sYWxwaGFNYXA6e3ZhbHVlOm51bGx9LGFscGhhVGVzdDp7dmFsdWU6MH19LHNwZWN1bGFybWFwOntzcGVjdWxhck1hcDp7dmFsdWU6bnVsbH19LGVudm1hcDp7ZW52TWFwOnt2YWx1ZTpudWxsfSxmbGlwRW52TWFwOnt2YWx1ZTotMX0scmVmbGVjdGl2aXR5Ont2YWx1ZToxfSxpb3I6e3ZhbHVlOjEuNX0scmVmcmFjdGlvblJhdGlvOnt2YWx1ZTouOTh9fSxhb21hcDp7YW9NYXA6e3ZhbHVlOm51bGx9LGFvTWFwSW50ZW5zaXR5Ont2YWx1ZToxfX0sbGlnaHRtYXA6e2xpZ2h0TWFwOnt2YWx1ZTpudWxsfSxsaWdodE1hcEludGVuc2l0eTp7dmFsdWU6MX19LGVtaXNzaXZlbWFwOntlbWlzc2l2ZU1hcDp7dmFsdWU6bnVsbH19LGJ1bXBtYXA6e2J1bXBNYXA6e3ZhbHVlOm51bGx9LGJ1bXBTY2FsZTp7dmFsdWU6MX19LG5vcm1hbG1hcDp7bm9ybWFsTWFwOnt2YWx1ZTpudWxsfSxub3JtYWxTY2FsZTp7dmFsdWU6bmV3IEx0KDEsMSl9fSxkaXNwbGFjZW1lbnRtYXA6e2Rpc3BsYWNlbWVudE1hcDp7dmFsdWU6bnVsbH0sZGlzcGxhY2VtZW50U2NhbGU6e3ZhbHVlOjF9LGRpc3BsYWNlbWVudEJpYXM6e3ZhbHVlOjB9fSxyb3VnaG5lc3NtYXA6e3JvdWdobmVzc01hcDp7dmFsdWU6bnVsbH19LG1ldGFsbmVzc21hcDp7bWV0YWxuZXNzTWFwOnt2YWx1ZTpudWxsfX0sZ3JhZGllbnRtYXA6e2dyYWRpZW50TWFwOnt2YWx1ZTpudWxsfX0sZm9nOntmb2dEZW5zaXR5Ont2YWx1ZToyNWUtNX0sZm9nTmVhcjp7dmFsdWU6MX0sZm9nRmFyOnt2YWx1ZToyZTN9LGZvZ0NvbG9yOnt2YWx1ZTpuZXcgbmUoMTY3NzcyMTUpfX0sbGlnaHRzOnthbWJpZW50TGlnaHRDb2xvcjp7dmFsdWU6W119LGxpZ2h0UHJvYmU6e3ZhbHVlOltdfSxkaXJlY3Rpb25hbExpZ2h0czp7dmFsdWU6W10scHJvcGVydGllczp7ZGlyZWN0aW9uOnt9LGNvbG9yOnt9fX0sZGlyZWN0aW9uYWxMaWdodFNoYWRvd3M6e3ZhbHVlOltdLHByb3BlcnRpZXM6e3NoYWRvd0JpYXM6e30sc2hhZG93Tm9ybWFsQmlhczp7fSxzaGFkb3dSYWRpdXM6e30sc2hhZG93TWFwU2l6ZTp7fX19LGRpcmVjdGlvbmFsU2hhZG93TWFwOnt2YWx1ZTpbXX0sZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXg6e3ZhbHVlOltdfSxzcG90TGlnaHRzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntjb2xvcjp7fSxwb3NpdGlvbjp7fSxkaXJlY3Rpb246e30sZGlzdGFuY2U6e30sY29uZUNvczp7fSxwZW51bWJyYUNvczp7fSxkZWNheTp7fX19LHNwb3RMaWdodFNoYWRvd3M6e3ZhbHVlOltdLHByb3BlcnRpZXM6e3NoYWRvd0JpYXM6e30sc2hhZG93Tm9ybWFsQmlhczp7fSxzaGFkb3dSYWRpdXM6e30sc2hhZG93TWFwU2l6ZTp7fX19LHNwb3RTaGFkb3dNYXA6e3ZhbHVlOltdfSxzcG90U2hhZG93TWF0cml4Ont2YWx1ZTpbXX0scG9pbnRMaWdodHM6e3ZhbHVlOltdLHByb3BlcnRpZXM6e2NvbG9yOnt9LHBvc2l0aW9uOnt9LGRlY2F5Ont9LGRpc3RhbmNlOnt9fX0scG9pbnRMaWdodFNoYWRvd3M6e3ZhbHVlOltdLHByb3BlcnRpZXM6e3NoYWRvd0JpYXM6e30sc2hhZG93Tm9ybWFsQmlhczp7fSxzaGFkb3dSYWRpdXM6e30sc2hhZG93TWFwU2l6ZTp7fSxzaGFkb3dDYW1lcmFOZWFyOnt9LHNoYWRvd0NhbWVyYUZhcjp7fX19LHBvaW50U2hhZG93TWFwOnt2YWx1ZTpbXX0scG9pbnRTaGFkb3dNYXRyaXg6e3ZhbHVlOltdfSxoZW1pc3BoZXJlTGlnaHRzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntkaXJlY3Rpb246e30sc2t5Q29sb3I6e30sZ3JvdW5kQ29sb3I6e319fSxyZWN0QXJlYUxpZ2h0czp7dmFsdWU6W10scHJvcGVydGllczp7Y29sb3I6e30scG9zaXRpb246e30sd2lkdGg6e30saGVpZ2h0Ont9fX0sbHRjXzE6e3ZhbHVlOm51bGx9LGx0Y18yOnt2YWx1ZTpudWxsfX0scG9pbnRzOntkaWZmdXNlOnt2YWx1ZTpuZXcgbmUoMTY3NzcyMTUpfSxvcGFjaXR5Ont2YWx1ZToxfSxzaXplOnt2YWx1ZToxfSxzY2FsZTp7dmFsdWU6MX0sbWFwOnt2YWx1ZTpudWxsfSxhbHBoYU1hcDp7dmFsdWU6bnVsbH0sYWxwaGFUZXN0Ont2YWx1ZTowfSx1dlRyYW5zZm9ybTp7dmFsdWU6bmV3IGtpfX0sc3ByaXRlOntkaWZmdXNlOnt2YWx1ZTpuZXcgbmUoMTY3NzcyMTUpfSxvcGFjaXR5Ont2YWx1ZToxfSxjZW50ZXI6e3ZhbHVlOm5ldyBMdCguNSwuNSl9LHJvdGF0aW9uOnt2YWx1ZTowfSxtYXA6e3ZhbHVlOm51bGx9LGFscGhhTWFwOnt2YWx1ZTpudWxsfSxhbHBoYVRlc3Q6e3ZhbHVlOjB9LHV2VHJhbnNmb3JtOnt2YWx1ZTpuZXcga2l9fX0sYWg9e2Jhc2ljOnt1bmlmb3JtczpDYShbcmUuY29tbW9uLHJlLnNwZWN1bGFybWFwLHJlLmVudm1hcCxyZS5hb21hcCxyZS5saWdodG1hcCxyZS5mb2ddKSx2ZXJ0ZXhTaGFkZXI6aHIubWVzaGJhc2ljX3ZlcnQsZnJhZ21lbnRTaGFkZXI6aHIubWVzaGJhc2ljX2ZyYWd9LGxhbWJlcnQ6e3VuaWZvcm1zOkNhKFtyZS5jb21tb24scmUuc3BlY3VsYXJtYXAscmUuZW52bWFwLHJlLmFvbWFwLHJlLmxpZ2h0bWFwLHJlLmVtaXNzaXZlbWFwLHJlLmZvZyxyZS5saWdodHMse2VtaXNzaXZlOnt2YWx1ZTpuZXcgbmUoMCl9fV0pLHZlcnRleFNoYWRlcjpoci5tZXNobGFtYmVydF92ZXJ0LGZyYWdtZW50U2hhZGVyOmhyLm1lc2hsYW1iZXJ0X2ZyYWd9LHBob25nOnt1bmlmb3JtczpDYShbcmUuY29tbW9uLHJlLnNwZWN1bGFybWFwLHJlLmVudm1hcCxyZS5hb21hcCxyZS5saWdodG1hcCxyZS5lbWlzc2l2ZW1hcCxyZS5idW1wbWFwLHJlLm5vcm1hbG1hcCxyZS5kaXNwbGFjZW1lbnRtYXAscmUuZm9nLHJlLmxpZ2h0cyx7ZW1pc3NpdmU6e3ZhbHVlOm5ldyBuZSgwKX0sc3BlY3VsYXI6e3ZhbHVlOm5ldyBuZSgxMTE4NDgxKX0sc2hpbmluZXNzOnt2YWx1ZTozMH19XSksdmVydGV4U2hhZGVyOmhyLm1lc2hwaG9uZ192ZXJ0LGZyYWdtZW50U2hhZGVyOmhyLm1lc2hwaG9uZ19mcmFnfSxzdGFuZGFyZDp7dW5pZm9ybXM6Q2EoW3JlLmNvbW1vbixyZS5lbnZtYXAscmUuYW9tYXAscmUubGlnaHRtYXAscmUuZW1pc3NpdmVtYXAscmUuYnVtcG1hcCxyZS5ub3JtYWxtYXAscmUuZGlzcGxhY2VtZW50bWFwLHJlLnJvdWdobmVzc21hcCxyZS5tZXRhbG5lc3NtYXAscmUuZm9nLHJlLmxpZ2h0cyx7ZW1pc3NpdmU6e3ZhbHVlOm5ldyBuZSgwKX0scm91Z2huZXNzOnt2YWx1ZToxfSxtZXRhbG5lc3M6e3ZhbHVlOjB9LGVudk1hcEludGVuc2l0eTp7dmFsdWU6MX19XSksdmVydGV4U2hhZGVyOmhyLm1lc2hwaHlzaWNhbF92ZXJ0LGZyYWdtZW50U2hhZGVyOmhyLm1lc2hwaHlzaWNhbF9mcmFnfSx0b29uOnt1bmlmb3JtczpDYShbcmUuY29tbW9uLHJlLmFvbWFwLHJlLmxpZ2h0bWFwLHJlLmVtaXNzaXZlbWFwLHJlLmJ1bXBtYXAscmUubm9ybWFsbWFwLHJlLmRpc3BsYWNlbWVudG1hcCxyZS5ncmFkaWVudG1hcCxyZS5mb2cscmUubGlnaHRzLHtlbWlzc2l2ZTp7dmFsdWU6bmV3IG5lKDApfX1dKSx2ZXJ0ZXhTaGFkZXI6aHIubWVzaHRvb25fdmVydCxmcmFnbWVudFNoYWRlcjpoci5tZXNodG9vbl9mcmFnfSxtYXRjYXA6e3VuaWZvcm1zOkNhKFtyZS5jb21tb24scmUuYnVtcG1hcCxyZS5ub3JtYWxtYXAscmUuZGlzcGxhY2VtZW50bWFwLHJlLmZvZyx7bWF0Y2FwOnt2YWx1ZTpudWxsfX1dKSx2ZXJ0ZXhTaGFkZXI6aHIubWVzaG1hdGNhcF92ZXJ0LGZyYWdtZW50U2hhZGVyOmhyLm1lc2htYXRjYXBfZnJhZ30scG9pbnRzOnt1bmlmb3JtczpDYShbcmUucG9pbnRzLHJlLmZvZ10pLHZlcnRleFNoYWRlcjpoci5wb2ludHNfdmVydCxmcmFnbWVudFNoYWRlcjpoci5wb2ludHNfZnJhZ30sZGFzaGVkOnt1bmlmb3JtczpDYShbcmUuY29tbW9uLHJlLmZvZyx7c2NhbGU6e3ZhbHVlOjF9LGRhc2hTaXplOnt2YWx1ZToxfSx0b3RhbFNpemU6e3ZhbHVlOjJ9fV0pLHZlcnRleFNoYWRlcjpoci5saW5lZGFzaGVkX3ZlcnQsZnJhZ21lbnRTaGFkZXI6aHIubGluZWRhc2hlZF9mcmFnfSxkZXB0aDp7dW5pZm9ybXM6Q2EoW3JlLmNvbW1vbixyZS5kaXNwbGFjZW1lbnRtYXBdKSx2ZXJ0ZXhTaGFkZXI6aHIuZGVwdGhfdmVydCxmcmFnbWVudFNoYWRlcjpoci5kZXB0aF9mcmFnfSxub3JtYWw6e3VuaWZvcm1zOkNhKFtyZS5jb21tb24scmUuYnVtcG1hcCxyZS5ub3JtYWxtYXAscmUuZGlzcGxhY2VtZW50bWFwLHtvcGFjaXR5Ont2YWx1ZToxfX1dKSx2ZXJ0ZXhTaGFkZXI6aHIubWVzaG5vcm1hbF92ZXJ0LGZyYWdtZW50U2hhZGVyOmhyLm1lc2hub3JtYWxfZnJhZ30sc3ByaXRlOnt1bmlmb3JtczpDYShbcmUuc3ByaXRlLHJlLmZvZ10pLHZlcnRleFNoYWRlcjpoci5zcHJpdGVfdmVydCxmcmFnbWVudFNoYWRlcjpoci5zcHJpdGVfZnJhZ30sYmFja2dyb3VuZDp7dW5pZm9ybXM6e3V2VHJhbnNmb3JtOnt2YWx1ZTpuZXcga2l9LHQyRDp7dmFsdWU6bnVsbH19LHZlcnRleFNoYWRlcjpoci5iYWNrZ3JvdW5kX3ZlcnQsZnJhZ21lbnRTaGFkZXI6aHIuYmFja2dyb3VuZF9mcmFnfSxjdWJlOnt1bmlmb3JtczpDYShbcmUuZW52bWFwLHtvcGFjaXR5Ont2YWx1ZToxfX1dKSx2ZXJ0ZXhTaGFkZXI6aHIuY3ViZV92ZXJ0LGZyYWdtZW50U2hhZGVyOmhyLmN1YmVfZnJhZ30sZXF1aXJlY3Q6e3VuaWZvcm1zOnt0RXF1aXJlY3Q6e3ZhbHVlOm51bGx9fSx2ZXJ0ZXhTaGFkZXI6aHIuZXF1aXJlY3RfdmVydCxmcmFnbWVudFNoYWRlcjpoci5lcXVpcmVjdF9mcmFnfSxkaXN0YW5jZVJHQkE6e3VuaWZvcm1zOkNhKFtyZS5jb21tb24scmUuZGlzcGxhY2VtZW50bWFwLHtyZWZlcmVuY2VQb3NpdGlvbjp7dmFsdWU6bmV3IGp9LG5lYXJEaXN0YW5jZTp7dmFsdWU6MX0sZmFyRGlzdGFuY2U6e3ZhbHVlOjFlM319XSksdmVydGV4U2hhZGVyOmhyLmRpc3RhbmNlUkdCQV92ZXJ0LGZyYWdtZW50U2hhZGVyOmhyLmRpc3RhbmNlUkdCQV9mcmFnfSxzaGFkb3c6e3VuaWZvcm1zOkNhKFtyZS5saWdodHMscmUuZm9nLHtjb2xvcjp7dmFsdWU6bmV3IG5lKDApfSxvcGFjaXR5Ont2YWx1ZToxfX1dKSx2ZXJ0ZXhTaGFkZXI6aHIuc2hhZG93X3ZlcnQsZnJhZ21lbnRTaGFkZXI6aHIuc2hhZG93X2ZyYWd9fTthaC5waHlzaWNhbD17dW5pZm9ybXM6Q2EoW2FoLnN0YW5kYXJkLnVuaWZvcm1zLHtjbGVhcmNvYXQ6e3ZhbHVlOjB9LGNsZWFyY29hdE1hcDp7dmFsdWU6bnVsbH0sY2xlYXJjb2F0Um91Z2huZXNzOnt2YWx1ZTowfSxjbGVhcmNvYXRSb3VnaG5lc3NNYXA6e3ZhbHVlOm51bGx9LGNsZWFyY29hdE5vcm1hbFNjYWxlOnt2YWx1ZTpuZXcgTHQoMSwxKX0sY2xlYXJjb2F0Tm9ybWFsTWFwOnt2YWx1ZTpudWxsfSxzaGVlbjp7dmFsdWU6MH0sc2hlZW5Db2xvcjp7dmFsdWU6bmV3IG5lKDApfSxzaGVlbkNvbG9yTWFwOnt2YWx1ZTpudWxsfSxzaGVlblJvdWdobmVzczp7dmFsdWU6MX0sc2hlZW5Sb3VnaG5lc3NNYXA6e3ZhbHVlOm51bGx9LHRyYW5zbWlzc2lvbjp7dmFsdWU6MH0sdHJhbnNtaXNzaW9uTWFwOnt2YWx1ZTpudWxsfSx0cmFuc21pc3Npb25TYW1wbGVyU2l6ZTp7dmFsdWU6bmV3IEx0fSx0cmFuc21pc3Npb25TYW1wbGVyTWFwOnt2YWx1ZTpudWxsfSx0aGlja25lc3M6e3ZhbHVlOjB9LHRoaWNrbmVzc01hcDp7dmFsdWU6bnVsbH0sYXR0ZW51YXRpb25EaXN0YW5jZTp7dmFsdWU6MH0sYXR0ZW51YXRpb25Db2xvcjp7dmFsdWU6bmV3IG5lKDApfSxzcGVjdWxhckludGVuc2l0eTp7dmFsdWU6MX0sc3BlY3VsYXJJbnRlbnNpdHlNYXA6e3ZhbHVlOm51bGx9LHNwZWN1bGFyQ29sb3I6e3ZhbHVlOm5ldyBuZSgxLDEsMSl9LHNwZWN1bGFyQ29sb3JNYXA6e3ZhbHVlOm51bGx9fV0pLHZlcnRleFNoYWRlcjpoci5tZXNocGh5c2ljYWxfdmVydCxmcmFnbWVudFNoYWRlcjpoci5tZXNocGh5c2ljYWxfZnJhZ307ZnVuY3Rpb24gWGRyKGUsdCxyLG4saSxvKXtsZXQgYT1uZXcgbmUoMCkscz1pPT09ITA/MDoxLGwsYyx1PW51bGwsaD0wLGY9bnVsbDtmdW5jdGlvbiBwKGcsXyl7bGV0IHk9ITEseD1fLmlzU2NlbmU9PT0hMD9fLmJhY2tncm91bmQ6bnVsbDt4JiZ4LmlzVGV4dHVyZSYmKHg9dC5nZXQoeCkpO2xldCBiPWUueHIsUz1iLmdldFNlc3Npb24mJmIuZ2V0U2Vzc2lvbigpO1MmJlMuZW52aXJvbm1lbnRCbGVuZE1vZGU9PT0iYWRkaXRpdmUiJiYoeD1udWxsKSx4PT09bnVsbD9kKGEscyk6eCYmeC5pc0NvbG9yJiYoZCh4LDEpLHk9ITApLChlLmF1dG9DbGVhcnx8eSkmJmUuY2xlYXIoZS5hdXRvQ2xlYXJDb2xvcixlLmF1dG9DbGVhckRlcHRoLGUuYXV0b0NsZWFyU3RlbmNpbCkseCYmKHguaXNDdWJlVGV4dHVyZXx8eC5tYXBwaW5nPT09eE0pPyhjPT09dm9pZCAwJiYoYz1uZXcgdGkobmV3IHRwKDEsMSwxKSxuZXcgbGgoe25hbWU6IkJhY2tncm91bmRDdWJlTWF0ZXJpYWwiLHVuaWZvcm1zOlozKGFoLmN1YmUudW5pZm9ybXMpLHZlcnRleFNoYWRlcjphaC5jdWJlLnZlcnRleFNoYWRlcixmcmFnbWVudFNoYWRlcjphaC5jdWJlLmZyYWdtZW50U2hhZGVyLHNpZGU6SWksZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITEsZm9nOiExfSkpLGMuZ2VvbWV0cnkuZGVsZXRlQXR0cmlidXRlKCJub3JtYWwiKSxjLmdlb21ldHJ5LmRlbGV0ZUF0dHJpYnV0ZSgidXYiKSxjLm9uQmVmb3JlUmVuZGVyPWZ1bmN0aW9uKEMsUCxrKXt0aGlzLm1hdHJpeFdvcmxkLmNvcHlQb3NpdGlvbihrLm1hdHJpeFdvcmxkKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGMubWF0ZXJpYWwsImVudk1hcCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVuaWZvcm1zLmVudk1hcC52YWx1ZX19KSxuLnVwZGF0ZShjKSksYy5tYXRlcmlhbC51bmlmb3Jtcy5lbnZNYXAudmFsdWU9eCxjLm1hdGVyaWFsLnVuaWZvcm1zLmZsaXBFbnZNYXAudmFsdWU9eC5pc0N1YmVUZXh0dXJlJiZ4LmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT09PSExPy0xOjEsKHUhPT14fHxoIT09eC52ZXJzaW9ufHxmIT09ZS50b25lTWFwcGluZykmJihjLm1hdGVyaWFsLm5lZWRzVXBkYXRlPSEwLHU9eCxoPXgudmVyc2lvbixmPWUudG9uZU1hcHBpbmcpLGcudW5zaGlmdChjLGMuZ2VvbWV0cnksYy5tYXRlcmlhbCwwLDAsbnVsbCkpOngmJnguaXNUZXh0dXJlJiYobD09PXZvaWQgMCYmKGw9bmV3IHRpKG5ldyBVMCgyLDIpLG5ldyBsaCh7bmFtZToiQmFja2dyb3VuZE1hdGVyaWFsIix1bmlmb3JtczpaMyhhaC5iYWNrZ3JvdW5kLnVuaWZvcm1zKSx2ZXJ0ZXhTaGFkZXI6YWguYmFja2dyb3VuZC52ZXJ0ZXhTaGFkZXIsZnJhZ21lbnRTaGFkZXI6YWguYmFja2dyb3VuZC5mcmFnbWVudFNoYWRlcixzaWRlOkwxLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExLGZvZzohMX0pKSxsLmdlb21ldHJ5LmRlbGV0ZUF0dHJpYnV0ZSgibm9ybWFsIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwubWF0ZXJpYWwsIm1hcCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVuaWZvcm1zLnQyRC52YWx1ZX19KSxuLnVwZGF0ZShsKSksbC5tYXRlcmlhbC51bmlmb3Jtcy50MkQudmFsdWU9eCx4Lm1hdHJpeEF1dG9VcGRhdGU9PT0hMCYmeC51cGRhdGVNYXRyaXgoKSxsLm1hdGVyaWFsLnVuaWZvcm1zLnV2VHJhbnNmb3JtLnZhbHVlLmNvcHkoeC5tYXRyaXgpLCh1IT09eHx8aCE9PXgudmVyc2lvbnx8ZiE9PWUudG9uZU1hcHBpbmcpJiYobC5tYXRlcmlhbC5uZWVkc1VwZGF0ZT0hMCx1PXgsaD14LnZlcnNpb24sZj1lLnRvbmVNYXBwaW5nKSxnLnVuc2hpZnQobCxsLmdlb21ldHJ5LGwubWF0ZXJpYWwsMCwwLG51bGwpKX1mdW5jdGlvbiBkKGcsXyl7ci5idWZmZXJzLmNvbG9yLnNldENsZWFyKGcucixnLmcsZy5iLF8sbyl9cmV0dXJue2dldENsZWFyQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sc2V0Q2xlYXJDb2xvcjpmdW5jdGlvbihnLF89MSl7YS5zZXQoZykscz1fLGQoYSxzKX0sZ2V0Q2xlYXJBbHBoYTpmdW5jdGlvbigpe3JldHVybiBzfSxzZXRDbGVhckFscGhhOmZ1bmN0aW9uKGcpe3M9ZyxkKGEscyl9LHJlbmRlcjpwfX1mdW5jdGlvbiAkZHIoZSx0LHIsbil7bGV0IGk9ZS5nZXRQYXJhbWV0ZXIoMzQ5MjEpLG89bi5pc1dlYkdMMj9udWxsOnQuZ2V0KCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpLGE9bi5pc1dlYkdMMnx8byE9PW51bGwscz17fSxsPWcobnVsbCksYz1sO2Z1bmN0aW9uIHUoUixGLHosVSxXKXtsZXQgWj0hMTtpZihhKXtsZXQgcnQ9ZChVLHosRik7YyE9PXJ0JiYoYz1ydCxmKGMub2JqZWN0KSksWj1fKFUsVyksWiYmeShVLFcpfWVsc2V7bGV0IHJ0PUYud2lyZWZyYW1lPT09ITA7KGMuZ2VvbWV0cnkhPT1VLmlkfHxjLnByb2dyYW0hPT16LmlkfHxjLndpcmVmcmFtZSE9PXJ0KSYmKGMuZ2VvbWV0cnk9VS5pZCxjLnByb2dyYW09ei5pZCxjLndpcmVmcmFtZT1ydCxaPSEwKX1SLmlzSW5zdGFuY2VkTWVzaD09PSEwJiYoWj0hMCksVyE9PW51bGwmJnIudXBkYXRlKFcsMzQ5NjMpLFomJihrKFIsRix6LFUpLFchPT1udWxsJiZlLmJpbmRCdWZmZXIoMzQ5NjMsci5nZXQoVykuYnVmZmVyKSl9ZnVuY3Rpb24gaCgpe3JldHVybiBuLmlzV2ViR0wyP2UuY3JlYXRlVmVydGV4QXJyYXkoKTpvLmNyZWF0ZVZlcnRleEFycmF5T0VTKCl9ZnVuY3Rpb24gZihSKXtyZXR1cm4gbi5pc1dlYkdMMj9lLmJpbmRWZXJ0ZXhBcnJheShSKTpvLmJpbmRWZXJ0ZXhBcnJheU9FUyhSKX1mdW5jdGlvbiBwKFIpe3JldHVybiBuLmlzV2ViR0wyP2UuZGVsZXRlVmVydGV4QXJyYXkoUik6by5kZWxldGVWZXJ0ZXhBcnJheU9FUyhSKX1mdW5jdGlvbiBkKFIsRix6KXtsZXQgVT16LndpcmVmcmFtZT09PSEwLFc9c1tSLmlkXTtXPT09dm9pZCAwJiYoVz17fSxzW1IuaWRdPVcpO2xldCBaPVdbRi5pZF07Wj09PXZvaWQgMCYmKFo9e30sV1tGLmlkXT1aKTtsZXQgcnQ9WltVXTtyZXR1cm4gcnQ9PT12b2lkIDAmJihydD1nKGgoKSksWltVXT1ydCkscnR9ZnVuY3Rpb24gZyhSKXtsZXQgRj1bXSx6PVtdLFU9W107Zm9yKGxldCBXPTA7VzxpO1crKylGW1ddPTAseltXXT0wLFVbV109MDtyZXR1cm57Z2VvbWV0cnk6bnVsbCxwcm9ncmFtOm51bGwsd2lyZWZyYW1lOiExLG5ld0F0dHJpYnV0ZXM6RixlbmFibGVkQXR0cmlidXRlczp6LGF0dHJpYnV0ZURpdmlzb3JzOlUsb2JqZWN0OlIsYXR0cmlidXRlczp7fSxpbmRleDpudWxsfX1mdW5jdGlvbiBfKFIsRil7bGV0IHo9Yy5hdHRyaWJ1dGVzLFU9Ui5hdHRyaWJ1dGVzLFc9MDtmb3IobGV0IFogaW4gVSl7bGV0IHJ0PXpbWl0sb3Q9VVtaXTtpZihydD09PXZvaWQgMHx8cnQuYXR0cmlidXRlIT09b3R8fHJ0LmRhdGEhPT1vdC5kYXRhKXJldHVybiEwO1crK31yZXR1cm4gYy5hdHRyaWJ1dGVzTnVtIT09V3x8Yy5pbmRleCE9PUZ9ZnVuY3Rpb24geShSLEYpe2xldCB6PXt9LFU9Ui5hdHRyaWJ1dGVzLFc9MDtmb3IobGV0IFogaW4gVSl7bGV0IHJ0PVVbWl0sb3Q9e307b3QuYXR0cmlidXRlPXJ0LHJ0LmRhdGEmJihvdC5kYXRhPXJ0LmRhdGEpLHpbWl09b3QsVysrfWMuYXR0cmlidXRlcz16LGMuYXR0cmlidXRlc051bT1XLGMuaW5kZXg9Rn1mdW5jdGlvbiB4KCl7bGV0IFI9Yy5uZXdBdHRyaWJ1dGVzO2ZvcihsZXQgRj0wLHo9Ui5sZW5ndGg7Rjx6O0YrKylSW0ZdPTB9ZnVuY3Rpb24gYihSKXtTKFIsMCl9ZnVuY3Rpb24gUyhSLEYpe2xldCB6PWMubmV3QXR0cmlidXRlcyxVPWMuZW5hYmxlZEF0dHJpYnV0ZXMsVz1jLmF0dHJpYnV0ZURpdmlzb3JzO3pbUl09MSxVW1JdPT09MCYmKGUuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoUiksVVtSXT0xKSxXW1JdIT09RiYmKChuLmlzV2ViR0wyP2U6dC5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSlbbi5pc1dlYkdMMj8idmVydGV4QXR0cmliRGl2aXNvciI6InZlcnRleEF0dHJpYkRpdmlzb3JBTkdMRSJdKFIsRiksV1tSXT1GKX1mdW5jdGlvbiBDKCl7bGV0IFI9Yy5uZXdBdHRyaWJ1dGVzLEY9Yy5lbmFibGVkQXR0cmlidXRlcztmb3IobGV0IHo9MCxVPUYubGVuZ3RoO3o8VTt6KyspRlt6XSE9PVJbel0mJihlLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSh6KSxGW3pdPTApfWZ1bmN0aW9uIFAoUixGLHosVSxXLFope24uaXNXZWJHTDI9PT0hMCYmKHo9PT01MTI0fHx6PT09NTEyNSk/ZS52ZXJ0ZXhBdHRyaWJJUG9pbnRlcihSLEYseixXLFopOmUudmVydGV4QXR0cmliUG9pbnRlcihSLEYseixVLFcsWil9ZnVuY3Rpb24gayhSLEYseixVKXtpZihuLmlzV2ViR0wyPT09ITEmJihSLmlzSW5zdGFuY2VkTWVzaHx8VS5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5KSYmdC5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKT09PW51bGwpcmV0dXJuO3goKTtsZXQgVz1VLmF0dHJpYnV0ZXMsWj16LmdldEF0dHJpYnV0ZXMoKSxydD1GLmRlZmF1bHRBdHRyaWJ1dGVWYWx1ZXM7Zm9yKGxldCBvdCBpbiBaKXtsZXQgc3Q9WltvdF07aWYoc3QubG9jYXRpb24+PTApe2xldCBTdD1XW290XTtpZihTdD09PXZvaWQgMCYmKG90PT09Imluc3RhbmNlTWF0cml4IiYmUi5pbnN0YW5jZU1hdHJpeCYmKFN0PVIuaW5zdGFuY2VNYXRyaXgpLG90PT09Imluc3RhbmNlQ29sb3IiJiZSLmluc3RhbmNlQ29sb3ImJihTdD1SLmluc3RhbmNlQ29sb3IpKSxTdCE9PXZvaWQgMCl7bGV0IGJ0PVN0Lm5vcm1hbGl6ZWQsTXQ9U3QuaXRlbVNpemUsbHQ9ci5nZXQoU3QpO2lmKGx0PT09dm9pZCAwKWNvbnRpbnVlO2xldCBLdD1sdC5idWZmZXIsX3Q9bHQudHlwZSxjdD1sdC5ieXRlc1BlckVsZW1lbnQ7aWYoU3QuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSl7bGV0IFg9U3QuZGF0YSxldD1YLnN0cmlkZSxkdD1TdC5vZmZzZXQ7aWYoWCYmWC5pc0luc3RhbmNlZEludGVybGVhdmVkQnVmZmVyKXtmb3IobGV0IHE9MDtxPHN0LmxvY2F0aW9uU2l6ZTtxKyspUyhzdC5sb2NhdGlvbitxLFgubWVzaFBlckF0dHJpYnV0ZSk7Ui5pc0luc3RhbmNlZE1lc2ghPT0hMCYmVS5fbWF4SW5zdGFuY2VDb3VudD09PXZvaWQgMCYmKFUuX21heEluc3RhbmNlQ291bnQ9WC5tZXNoUGVyQXR0cmlidXRlKlguY291bnQpfWVsc2UgZm9yKGxldCBxPTA7cTxzdC5sb2NhdGlvblNpemU7cSsrKWIoc3QubG9jYXRpb24rcSk7ZS5iaW5kQnVmZmVyKDM0OTYyLEt0KTtmb3IobGV0IHE9MDtxPHN0LmxvY2F0aW9uU2l6ZTtxKyspUChzdC5sb2NhdGlvbitxLE10L3N0LmxvY2F0aW9uU2l6ZSxfdCxidCxldCpjdCwoZHQrTXQvc3QubG9jYXRpb25TaXplKnEpKmN0KX1lbHNle2lmKFN0LmlzSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlKXtmb3IobGV0IFg9MDtYPHN0LmxvY2F0aW9uU2l6ZTtYKyspUyhzdC5sb2NhdGlvbitYLFN0Lm1lc2hQZXJBdHRyaWJ1dGUpO1IuaXNJbnN0YW5jZWRNZXNoIT09ITAmJlUuX21heEluc3RhbmNlQ291bnQ9PT12b2lkIDAmJihVLl9tYXhJbnN0YW5jZUNvdW50PVN0Lm1lc2hQZXJBdHRyaWJ1dGUqU3QuY291bnQpfWVsc2UgZm9yKGxldCBYPTA7WDxzdC5sb2NhdGlvblNpemU7WCsrKWIoc3QubG9jYXRpb24rWCk7ZS5iaW5kQnVmZmVyKDM0OTYyLEt0KTtmb3IobGV0IFg9MDtYPHN0LmxvY2F0aW9uU2l6ZTtYKyspUChzdC5sb2NhdGlvbitYLE10L3N0LmxvY2F0aW9uU2l6ZSxfdCxidCxNdCpjdCxNdC9zdC5sb2NhdGlvblNpemUqWCpjdCl9fWVsc2UgaWYocnQhPT12b2lkIDApe2xldCBidD1ydFtvdF07aWYoYnQhPT12b2lkIDApc3dpdGNoKGJ0Lmxlbmd0aCl7Y2FzZSAyOmUudmVydGV4QXR0cmliMmZ2KHN0LmxvY2F0aW9uLGJ0KTticmVhaztjYXNlIDM6ZS52ZXJ0ZXhBdHRyaWIzZnYoc3QubG9jYXRpb24sYnQpO2JyZWFrO2Nhc2UgNDplLnZlcnRleEF0dHJpYjRmdihzdC5sb2NhdGlvbixidCk7YnJlYWs7ZGVmYXVsdDplLnZlcnRleEF0dHJpYjFmdihzdC5sb2NhdGlvbixidCl9fX19QygpfWZ1bmN0aW9uIE8oKXtJKCk7Zm9yKGxldCBSIGluIHMpe2xldCBGPXNbUl07Zm9yKGxldCB6IGluIEYpe2xldCBVPUZbel07Zm9yKGxldCBXIGluIFUpcChVW1ddLm9iamVjdCksZGVsZXRlIFVbV107ZGVsZXRlIEZbel19ZGVsZXRlIHNbUl19fWZ1bmN0aW9uIEQoUil7aWYoc1tSLmlkXT09PXZvaWQgMClyZXR1cm47bGV0IEY9c1tSLmlkXTtmb3IobGV0IHogaW4gRil7bGV0IFU9Rlt6XTtmb3IobGV0IFcgaW4gVSlwKFVbV10ub2JqZWN0KSxkZWxldGUgVVtXXTtkZWxldGUgRlt6XX1kZWxldGUgc1tSLmlkXX1mdW5jdGlvbiBCKFIpe2ZvcihsZXQgRiBpbiBzKXtsZXQgej1zW0ZdO2lmKHpbUi5pZF09PT12b2lkIDApY29udGludWU7bGV0IFU9eltSLmlkXTtmb3IobGV0IFcgaW4gVSlwKFVbV10ub2JqZWN0KSxkZWxldGUgVVtXXTtkZWxldGUgeltSLmlkXX19ZnVuY3Rpb24gSSgpe0woKSxjIT09bCYmKGM9bCxmKGMub2JqZWN0KSl9ZnVuY3Rpb24gTCgpe2wuZ2VvbWV0cnk9bnVsbCxsLnByb2dyYW09bnVsbCxsLndpcmVmcmFtZT0hMX1yZXR1cm57c2V0dXA6dSxyZXNldDpJLHJlc2V0RGVmYXVsdFN0YXRlOkwsZGlzcG9zZTpPLHJlbGVhc2VTdGF0ZXNPZkdlb21ldHJ5OkQscmVsZWFzZVN0YXRlc09mUHJvZ3JhbTpCLGluaXRBdHRyaWJ1dGVzOngsZW5hYmxlQXR0cmlidXRlOmIsZGlzYWJsZVVudXNlZEF0dHJpYnV0ZXM6Q319ZnVuY3Rpb24gS2RyKGUsdCxyLG4pe2xldCBpPW4uaXNXZWJHTDIsbztmdW5jdGlvbiBhKGMpe289Y31mdW5jdGlvbiBzKGMsdSl7ZS5kcmF3QXJyYXlzKG8sYyx1KSxyLnVwZGF0ZSh1LG8sMSl9ZnVuY3Rpb24gbChjLHUsaCl7aWYoaD09PTApcmV0dXJuO2xldCBmLHA7aWYoaSlmPWUscD0iZHJhd0FycmF5c0luc3RhbmNlZCI7ZWxzZSBpZihmPXQuZ2V0KCJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIikscD0iZHJhd0FycmF5c0luc3RhbmNlZEFOR0xFIixmPT09bnVsbCl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xCdWZmZXJSZW5kZXJlcjogdXNpbmcgVEhSRUUuSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkgYnV0IGhhcmR3YXJlIGRvZXMgbm90IHN1cHBvcnQgZXh0ZW5zaW9uIEFOR0xFX2luc3RhbmNlZF9hcnJheXMuIik7cmV0dXJufWZbcF0obyxjLHUsaCksci51cGRhdGUodSxvLGgpfXRoaXMuc2V0TW9kZT1hLHRoaXMucmVuZGVyPXMsdGhpcy5yZW5kZXJJbnN0YW5jZXM9bH1mdW5jdGlvbiBaZHIoZSx0LHIpe2xldCBuO2Z1bmN0aW9uIGkoKXtpZihuIT09dm9pZCAwKXJldHVybiBuO2lmKHQuaGFzKCJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKT09PSEwKXtsZXQgaz10LmdldCgiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7bj1lLmdldFBhcmFtZXRlcihrLk1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCl9ZWxzZSBuPTA7cmV0dXJuIG59ZnVuY3Rpb24gbyhrKXtpZihrPT09ImhpZ2hwIil7aWYoZS5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoMzU2MzMsMzYzMzgpLnByZWNpc2lvbj4wJiZlLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgzNTYzMiwzNjMzOCkucHJlY2lzaW9uPjApcmV0dXJuImhpZ2hwIjtrPSJtZWRpdW1wIn1yZXR1cm4gaz09PSJtZWRpdW1wIiYmZS5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoMzU2MzMsMzYzMzcpLnByZWNpc2lvbj4wJiZlLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgzNTYzMiwzNjMzNykucHJlY2lzaW9uPjA/Im1lZGl1bXAiOiJsb3dwIn1sZXQgYT10eXBlb2YgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCE9InVuZGVmaW5lZCImJmUgaW5zdGFuY2VvZiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0fHx0eXBlb2YgV2ViR0wyQ29tcHV0ZVJlbmRlcmluZ0NvbnRleHQhPSJ1bmRlZmluZWQiJiZlIGluc3RhbmNlb2YgV2ViR0wyQ29tcHV0ZVJlbmRlcmluZ0NvbnRleHQscz1yLnByZWNpc2lvbiE9PXZvaWQgMD9yLnByZWNpc2lvbjoiaGlnaHAiLGw9byhzKTtsIT09cyYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjoiLHMsIm5vdCBzdXBwb3J0ZWQsIHVzaW5nIixsLCJpbnN0ZWFkLiIpLHM9bCk7bGV0IGM9YXx8dC5oYXMoIldFQkdMX2RyYXdfYnVmZmVycyIpLHU9ci5sb2dhcml0aG1pY0RlcHRoQnVmZmVyPT09ITAsaD1lLmdldFBhcmFtZXRlcigzNDkzMCksZj1lLmdldFBhcmFtZXRlcigzNTY2MCkscD1lLmdldFBhcmFtZXRlcigzMzc5KSxkPWUuZ2V0UGFyYW1ldGVyKDM0MDc2KSxnPWUuZ2V0UGFyYW1ldGVyKDM0OTIxKSxfPWUuZ2V0UGFyYW1ldGVyKDM2MzQ3KSx5PWUuZ2V0UGFyYW1ldGVyKDM2MzQ4KSx4PWUuZ2V0UGFyYW1ldGVyKDM2MzQ5KSxiPWY+MCxTPWF8fHQuaGFzKCJPRVNfdGV4dHVyZV9mbG9hdCIpLEM9YiYmUyxQPWE/ZS5nZXRQYXJhbWV0ZXIoMzYxODMpOjA7cmV0dXJue2lzV2ViR0wyOmEsZHJhd0J1ZmZlcnM6YyxnZXRNYXhBbmlzb3Ryb3B5OmksZ2V0TWF4UHJlY2lzaW9uOm8scHJlY2lzaW9uOnMsbG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcjp1LG1heFRleHR1cmVzOmgsbWF4VmVydGV4VGV4dHVyZXM6ZixtYXhUZXh0dXJlU2l6ZTpwLG1heEN1YmVtYXBTaXplOmQsbWF4QXR0cmlidXRlczpnLG1heFZlcnRleFVuaWZvcm1zOl8sbWF4VmFyeWluZ3M6eSxtYXhGcmFnbWVudFVuaWZvcm1zOngsdmVydGV4VGV4dHVyZXM6YixmbG9hdEZyYWdtZW50VGV4dHVyZXM6UyxmbG9hdFZlcnRleFRleHR1cmVzOkMsbWF4U2FtcGxlczpQfX1mdW5jdGlvbiBKZHIoZSl7bGV0IHQ9dGhpcyxyPW51bGwsbj0wLGk9ITEsbz0hMSxhPW5ldyAkYyxzPW5ldyBraSxsPXt2YWx1ZTpudWxsLG5lZWRzVXBkYXRlOiExfTt0aGlzLnVuaWZvcm09bCx0aGlzLm51bVBsYW5lcz0wLHRoaXMubnVtSW50ZXJzZWN0aW9uPTAsdGhpcy5pbml0PWZ1bmN0aW9uKGgsZixwKXtsZXQgZD1oLmxlbmd0aCE9PTB8fGZ8fG4hPT0wfHxpO3JldHVybiBpPWYscj11KGgscCwwKSxuPWgubGVuZ3RoLGR9LHRoaXMuYmVnaW5TaGFkb3dzPWZ1bmN0aW9uKCl7bz0hMCx1KG51bGwpfSx0aGlzLmVuZFNoYWRvd3M9ZnVuY3Rpb24oKXtvPSExLGMoKX0sdGhpcy5zZXRTdGF0ZT1mdW5jdGlvbihoLGYscCl7bGV0IGQ9aC5jbGlwcGluZ1BsYW5lcyxnPWguY2xpcEludGVyc2VjdGlvbixfPWguY2xpcFNoYWRvd3MseT1lLmdldChoKTtpZighaXx8ZD09PW51bGx8fGQubGVuZ3RoPT09MHx8byYmIV8pbz91KG51bGwpOmMoKTtlbHNle2xldCB4PW8/MDpuLGI9eCo0LFM9eS5jbGlwcGluZ1N0YXRlfHxudWxsO2wudmFsdWU9UyxTPXUoZCxmLGIscCk7Zm9yKGxldCBDPTA7QyE9PWI7KytDKVNbQ109cltDXTt5LmNsaXBwaW5nU3RhdGU9Uyx0aGlzLm51bUludGVyc2VjdGlvbj1nP3RoaXMubnVtUGxhbmVzOjAsdGhpcy5udW1QbGFuZXMrPXh9fTtmdW5jdGlvbiBjKCl7bC52YWx1ZSE9PXImJihsLnZhbHVlPXIsbC5uZWVkc1VwZGF0ZT1uPjApLHQubnVtUGxhbmVzPW4sdC5udW1JbnRlcnNlY3Rpb249MH1mdW5jdGlvbiB1KGgsZixwLGQpe2xldCBnPWghPT1udWxsP2gubGVuZ3RoOjAsXz1udWxsO2lmKGchPT0wKXtpZihfPWwudmFsdWUsZCE9PSEwfHxfPT09bnVsbCl7bGV0IHk9cCtnKjQseD1mLm1hdHJpeFdvcmxkSW52ZXJzZTtzLmdldE5vcm1hbE1hdHJpeCh4KSwoXz09PW51bGx8fF8ubGVuZ3RoPHkpJiYoXz1uZXcgRmxvYXQzMkFycmF5KHkpKTtmb3IobGV0IGI9MCxTPXA7YiE9PWc7KytiLFMrPTQpYS5jb3B5KGhbYl0pLmFwcGx5TWF0cml4NCh4LHMpLGEubm9ybWFsLnRvQXJyYXkoXyxTKSxfW1MrM109YS5jb25zdGFudH1sLnZhbHVlPV8sbC5uZWVkc1VwZGF0ZT0hMH1yZXR1cm4gdC5udW1QbGFuZXM9Zyx0Lm51bUludGVyc2VjdGlvbj0wLF99fWZ1bmN0aW9uIFFkcihlKXtsZXQgdD1uZXcgV2Vha01hcDtmdW5jdGlvbiByKGEscyl7cmV0dXJuIHM9PT1ZUD9hLm1hcHBpbmc9aXg6cz09PWpQJiYoYS5tYXBwaW5nPW94KSxhfWZ1bmN0aW9uIG4oYSl7aWYoYSYmYS5pc1RleHR1cmUmJmEuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPT09ITEpe2xldCBzPWEubWFwcGluZztpZihzPT09WVB8fHM9PT1qUClpZih0LmhhcyhhKSl7bGV0IGw9dC5nZXQoYSkudGV4dHVyZTtyZXR1cm4gcihsLGEubWFwcGluZyl9ZWxzZXtsZXQgbD1hLmltYWdlO2lmKGwmJmwuaGVpZ2h0PjApe2xldCBjPW5ldyBRMyhsLmhlaWdodC8yKTtyZXR1cm4gYy5mcm9tRXF1aXJlY3Rhbmd1bGFyVGV4dHVyZShlLGEpLHQuc2V0KGEsYyksYS5hZGRFdmVudExpc3RlbmVyKCJkaXNwb3NlIixpKSxyKGMudGV4dHVyZSxhLm1hcHBpbmcpfWVsc2UgcmV0dXJuIG51bGx9fXJldHVybiBhfWZ1bmN0aW9uIGkoYSl7bGV0IHM9YS50YXJnZXQ7cy5yZW1vdmVFdmVudExpc3RlbmVyKCJkaXNwb3NlIixpKTtsZXQgbD10LmdldChzKTtsIT09dm9pZCAwJiYodC5kZWxldGUocyksbC5kaXNwb3NlKCkpfWZ1bmN0aW9uIG8oKXt0PW5ldyBXZWFrTWFwfXJldHVybntnZXQ6bixkaXNwb3NlOm99fXZhciBPMT1jbGFzcyBleHRlbmRzIE4xe2NvbnN0cnVjdG9yKHQ9LTEscj0xLG49MSxpPS0xLG89LjEsYT0yZTMpe3N1cGVyKCksdGhpcy50eXBlPSJPcnRob2dyYXBoaWNDYW1lcmEiLHRoaXMuem9vbT0xLHRoaXMudmlldz1udWxsLHRoaXMubGVmdD10LHRoaXMucmlnaHQ9cix0aGlzLnRvcD1uLHRoaXMuYm90dG9tPWksdGhpcy5uZWFyPW8sdGhpcy5mYXI9YSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1jb3B5KHQscil7cmV0dXJuIHN1cGVyLmNvcHkodCxyKSx0aGlzLmxlZnQ9dC5sZWZ0LHRoaXMucmlnaHQ9dC5yaWdodCx0aGlzLnRvcD10LnRvcCx0aGlzLmJvdHRvbT10LmJvdHRvbSx0aGlzLm5lYXI9dC5uZWFyLHRoaXMuZmFyPXQuZmFyLHRoaXMuem9vbT10Lnpvb20sdGhpcy52aWV3PXQudmlldz09PW51bGw/bnVsbDpPYmplY3QuYXNzaWduKHt9LHQudmlldyksdGhpc31zZXRWaWV3T2Zmc2V0KHQscixuLGksbyxhKXt0aGlzLnZpZXc9PT1udWxsJiYodGhpcy52aWV3PXtlbmFibGVkOiEwLGZ1bGxXaWR0aDoxLGZ1bGxIZWlnaHQ6MSxvZmZzZXRYOjAsb2Zmc2V0WTowLHdpZHRoOjEsaGVpZ2h0OjF9KSx0aGlzLnZpZXcuZW5hYmxlZD0hMCx0aGlzLnZpZXcuZnVsbFdpZHRoPXQsdGhpcy52aWV3LmZ1bGxIZWlnaHQ9cix0aGlzLnZpZXcub2Zmc2V0WD1uLHRoaXMudmlldy5vZmZzZXRZPWksdGhpcy52aWV3LndpZHRoPW8sdGhpcy52aWV3LmhlaWdodD1hLHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfWNsZWFyVmlld09mZnNldCgpe3RoaXMudmlldyE9PW51bGwmJih0aGlzLnZpZXcuZW5hYmxlZD0hMSksdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9dXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpe2xldCB0PSh0aGlzLnJpZ2h0LXRoaXMubGVmdCkvKDIqdGhpcy56b29tKSxyPSh0aGlzLnRvcC10aGlzLmJvdHRvbSkvKDIqdGhpcy56b29tKSxuPSh0aGlzLnJpZ2h0K3RoaXMubGVmdCkvMixpPSh0aGlzLnRvcCt0aGlzLmJvdHRvbSkvMixvPW4tdCxhPW4rdCxzPWkrcixsPWktcjtpZih0aGlzLnZpZXchPT1udWxsJiZ0aGlzLnZpZXcuZW5hYmxlZCl7bGV0IGM9KHRoaXMucmlnaHQtdGhpcy5sZWZ0KS90aGlzLnZpZXcuZnVsbFdpZHRoL3RoaXMuem9vbSx1PSh0aGlzLnRvcC10aGlzLmJvdHRvbSkvdGhpcy52aWV3LmZ1bGxIZWlnaHQvdGhpcy56b29tO28rPWMqdGhpcy52aWV3Lm9mZnNldFgsYT1vK2MqdGhpcy52aWV3LndpZHRoLHMtPXUqdGhpcy52aWV3Lm9mZnNldFksbD1zLXUqdGhpcy52aWV3LmhlaWdodH10aGlzLnByb2plY3Rpb25NYXRyaXgubWFrZU9ydGhvZ3JhcGhpYyhvLGEscyxsLHRoaXMubmVhcix0aGlzLmZhciksdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZS5jb3B5KHRoaXMucHJvamVjdGlvbk1hdHJpeCkuaW52ZXJ0KCl9dG9KU09OKHQpe2xldCByPXN1cGVyLnRvSlNPTih0KTtyZXR1cm4gci5vYmplY3Quem9vbT10aGlzLnpvb20sci5vYmplY3QubGVmdD10aGlzLmxlZnQsci5vYmplY3QucmlnaHQ9dGhpcy5yaWdodCxyLm9iamVjdC50b3A9dGhpcy50b3Asci5vYmplY3QuYm90dG9tPXRoaXMuYm90dG9tLHIub2JqZWN0Lm5lYXI9dGhpcy5uZWFyLHIub2JqZWN0LmZhcj10aGlzLmZhcix0aGlzLnZpZXchPT1udWxsJiYoci5vYmplY3Qudmlldz1PYmplY3QuYXNzaWduKHt9LHRoaXMudmlldykpLHJ9fTtPMS5wcm90b3R5cGUuaXNPcnRob2dyYXBoaWNDYW1lcmE9ITA7dmFyIHEwPWNsYXNzIGV4dGVuZHMgbGh7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy50eXBlPSJSYXdTaGFkZXJNYXRlcmlhbCJ9fTtxMC5wcm90b3R5cGUuaXNSYXdTaGFkZXJNYXRlcmlhbD0hMDt2YXIgcTM9NCxCMD04LEtmPU1hdGgucG93KDIsQjApLHFmZT1bLjEyNSwuMjE1LC4zNSwuNDQ2LC41MjYsLjU4Ml0sR2ZlPUIwLXEzKzErcWZlLmxlbmd0aCxrMz0yMCxodXQ9bmV3IE8xLHtfbG9kUGxhbmVzOk5QLF9zaXplTG9kczpQdWUsX3NpZ21hczpQVn09dG1yKCksSXVlPW5ldyBuZSxmdXQ9bnVsbCxNMT0oMStNYXRoLnNxcnQoNSkpLzIsUjM9MS9NMSxMdWU9W25ldyBqKDEsMSwxKSxuZXcgaigtMSwxLDEpLG5ldyBqKDEsMSwtMSksbmV3IGooLTEsMSwtMSksbmV3IGooMCxNMSxSMyksbmV3IGooMCxNMSwtUjMpLG5ldyBqKFIzLDAsTTEpLG5ldyBqKC1SMywwLE0xKSxuZXcgaihNMSxSMywwKSxuZXcgaigtTTEsUjMsMCldLGU2PWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuX3JlbmRlcmVyPXQsdGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQ9bnVsbCx0aGlzLl9ibHVyTWF0ZXJpYWw9ZW1yKGszKSx0aGlzLl9lcXVpcmVjdFNoYWRlcj1udWxsLHRoaXMuX2N1YmVtYXBTaGFkZXI9bnVsbCx0aGlzLl9jb21waWxlTWF0ZXJpYWwodGhpcy5fYmx1ck1hdGVyaWFsKX1mcm9tU2NlbmUodCxyPTAsbj0uMSxpPTEwMCl7ZnV0PXRoaXMuX3JlbmRlcmVyLmdldFJlbmRlclRhcmdldCgpO2xldCBvPXRoaXMuX2FsbG9jYXRlVGFyZ2V0cygpO3JldHVybiB0aGlzLl9zY2VuZVRvQ3ViZVVWKHQsbixpLG8pLHI+MCYmdGhpcy5fYmx1cihvLDAsMCxyKSx0aGlzLl9hcHBseVBNUkVNKG8pLHRoaXMuX2NsZWFudXAobyksb31mcm9tRXF1aXJlY3Rhbmd1bGFyKHQscj1udWxsKXtyZXR1cm4gdGhpcy5fZnJvbVRleHR1cmUodCxyKX1mcm9tQ3ViZW1hcCh0LHI9bnVsbCl7cmV0dXJuIHRoaXMuX2Zyb21UZXh0dXJlKHQscil9Y29tcGlsZUN1YmVtYXBTaGFkZXIoKXt0aGlzLl9jdWJlbWFwU2hhZGVyPT09bnVsbCYmKHRoaXMuX2N1YmVtYXBTaGFkZXI9TnVlKCksdGhpcy5fY29tcGlsZU1hdGVyaWFsKHRoaXMuX2N1YmVtYXBTaGFkZXIpKX1jb21waWxlRXF1aXJlY3Rhbmd1bGFyU2hhZGVyKCl7dGhpcy5fZXF1aXJlY3RTaGFkZXI9PT1udWxsJiYodGhpcy5fZXF1aXJlY3RTaGFkZXI9UnVlKCksdGhpcy5fY29tcGlsZU1hdGVyaWFsKHRoaXMuX2VxdWlyZWN0U2hhZGVyKSl9ZGlzcG9zZSgpe3RoaXMuX2JsdXJNYXRlcmlhbC5kaXNwb3NlKCksdGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQhPT1udWxsJiZ0aGlzLl9waW5nUG9uZ1JlbmRlclRhcmdldC5kaXNwb3NlKCksdGhpcy5fY3ViZW1hcFNoYWRlciE9PW51bGwmJnRoaXMuX2N1YmVtYXBTaGFkZXIuZGlzcG9zZSgpLHRoaXMuX2VxdWlyZWN0U2hhZGVyIT09bnVsbCYmdGhpcy5fZXF1aXJlY3RTaGFkZXIuZGlzcG9zZSgpO2ZvcihsZXQgdD0wO3Q8TlAubGVuZ3RoO3QrKylOUFt0XS5kaXNwb3NlKCl9X2NsZWFudXAodCl7dGhpcy5fcmVuZGVyZXIuc2V0UmVuZGVyVGFyZ2V0KGZ1dCksdC5zY2lzc29yVGVzdD0hMSxJVih0LDAsMCx0LndpZHRoLHQuaGVpZ2h0KX1fZnJvbVRleHR1cmUodCxyKXtmdXQ9dGhpcy5fcmVuZGVyZXIuZ2V0UmVuZGVyVGFyZ2V0KCk7bGV0IG49cnx8dGhpcy5fYWxsb2NhdGVUYXJnZXRzKHQpO3JldHVybiB0aGlzLl90ZXh0dXJlVG9DdWJlVVYodCxuKSx0aGlzLl9hcHBseVBNUkVNKG4pLHRoaXMuX2NsZWFudXAobiksbn1fYWxsb2NhdGVUYXJnZXRzKHQpe2xldCByPXttYWdGaWx0ZXI6aWksbWluRmlsdGVyOmlpLGdlbmVyYXRlTWlwbWFwczohMSx0eXBlOkExLGZvcm1hdDpRbyxlbmNvZGluZzp0bSxkZXB0aEJ1ZmZlcjohMX0sbj1rdWUocik7cmV0dXJuIG4uZGVwdGhCdWZmZXI9IXQsdGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQ9PT1udWxsJiYodGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQ9a3VlKHIpKSxufV9jb21waWxlTWF0ZXJpYWwodCl7bGV0IHI9bmV3IHRpKE5QWzBdLHQpO3RoaXMuX3JlbmRlcmVyLmNvbXBpbGUocixodXQpfV9zY2VuZVRvQ3ViZVVWKHQscixuLGkpe2xldCBzPW5ldyBVaSg5MCwxLHIsbiksbD1bMSwtMSwxLDEsMSwxXSxjPVsxLDEsMSwtMSwtMSwtMV0sdT10aGlzLl9yZW5kZXJlcixoPXUuYXV0b0NsZWFyLGY9dS50b25lTWFwcGluZzt1LmdldENsZWFyQ29sb3IoSXVlKSx1LnRvbmVNYXBwaW5nPVpkLHUuYXV0b0NsZWFyPSExO2xldCBwPW5ldyBzaCh7bmFtZToiUE1SRU0uQmFja2dyb3VuZCIsc2lkZTpJaSxkZXB0aFdyaXRlOiExLGRlcHRoVGVzdDohMX0pLGQ9bmV3IHRpKG5ldyB0cCxwKSxnPSExLF89dC5iYWNrZ3JvdW5kO18/Xy5pc0NvbG9yJiYocC5jb2xvci5jb3B5KF8pLHQuYmFja2dyb3VuZD1udWxsLGc9ITApOihwLmNvbG9yLmNvcHkoSXVlKSxnPSEwKTtmb3IobGV0IHk9MDt5PDY7eSsrKXtsZXQgeD15JTM7eD09PTA/KHMudXAuc2V0KDAsbFt5XSwwKSxzLmxvb2tBdChjW3ldLDAsMCkpOng9PT0xPyhzLnVwLnNldCgwLDAsbFt5XSkscy5sb29rQXQoMCxjW3ldLDApKToocy51cC5zZXQoMCxsW3ldLDApLHMubG9va0F0KDAsMCxjW3ldKSksSVYoaSx4KktmLHk+Mj9LZjowLEtmLEtmKSx1LnNldFJlbmRlclRhcmdldChpKSxnJiZ1LnJlbmRlcihkLHMpLHUucmVuZGVyKHQscyl9ZC5nZW9tZXRyeS5kaXNwb3NlKCksZC5tYXRlcmlhbC5kaXNwb3NlKCksdS50b25lTWFwcGluZz1mLHUuYXV0b0NsZWFyPWgsdC5iYWNrZ3JvdW5kPV99X3RleHR1cmVUb0N1YmVVVih0LHIpe2xldCBuPXRoaXMuX3JlbmRlcmVyLGk9dC5tYXBwaW5nPT09aXh8fHQubWFwcGluZz09PW94O2k/KHRoaXMuX2N1YmVtYXBTaGFkZXI9PT1udWxsJiYodGhpcy5fY3ViZW1hcFNoYWRlcj1OdWUoKSksdGhpcy5fY3ViZW1hcFNoYWRlci51bmlmb3Jtcy5mbGlwRW52TWFwLnZhbHVlPXQuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPT09ITE/LTE6MSk6dGhpcy5fZXF1aXJlY3RTaGFkZXI9PT1udWxsJiYodGhpcy5fZXF1aXJlY3RTaGFkZXI9UnVlKCkpO2xldCBvPWk/dGhpcy5fY3ViZW1hcFNoYWRlcjp0aGlzLl9lcXVpcmVjdFNoYWRlcixhPW5ldyB0aShOUFswXSxvKSxzPW8udW5pZm9ybXM7cy5lbnZNYXAudmFsdWU9dCxpfHxzLnRleGVsU2l6ZS52YWx1ZS5zZXQoMS90LmltYWdlLndpZHRoLDEvdC5pbWFnZS5oZWlnaHQpLElWKHIsMCwwLDMqS2YsMipLZiksbi5zZXRSZW5kZXJUYXJnZXQociksbi5yZW5kZXIoYSxodXQpfV9hcHBseVBNUkVNKHQpe2xldCByPXRoaXMuX3JlbmRlcmVyLG49ci5hdXRvQ2xlYXI7ci5hdXRvQ2xlYXI9ITE7Zm9yKGxldCBpPTE7aTxHZmU7aSsrKXtsZXQgbz1NYXRoLnNxcnQoUFZbaV0qUFZbaV0tUFZbaS0xXSpQVltpLTFdKSxhPUx1ZVsoaS0xKSVMdWUubGVuZ3RoXTt0aGlzLl9ibHVyKHQsaS0xLGksbyxhKX1yLmF1dG9DbGVhcj1ufV9ibHVyKHQscixuLGksbyl7bGV0IGE9dGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQ7dGhpcy5faGFsZkJsdXIodCxhLHIsbixpLCJsYXRpdHVkaW5hbCIsbyksdGhpcy5faGFsZkJsdXIoYSx0LG4sbixpLCJsb25naXR1ZGluYWwiLG8pfV9oYWxmQmx1cih0LHIsbixpLG8sYSxzKXtsZXQgbD10aGlzLl9yZW5kZXJlcixjPXRoaXMuX2JsdXJNYXRlcmlhbDthIT09ImxhdGl0dWRpbmFsIiYmYSE9PSJsb25naXR1ZGluYWwiJiZjb25zb2xlLmVycm9yKCJibHVyIGRpcmVjdGlvbiBtdXN0IGJlIGVpdGhlciBsYXRpdHVkaW5hbCBvciBsb25naXR1ZGluYWwhIik7bGV0IHU9MyxoPW5ldyB0aShOUFtpXSxjKSxmPWMudW5pZm9ybXMscD1QdWVbbl0tMSxkPWlzRmluaXRlKG8pP01hdGguUEkvKDIqcCk6MipNYXRoLlBJLygyKmszLTEpLGc9by9kLF89aXNGaW5pdGUobyk/MStNYXRoLmZsb29yKHUqZyk6azM7Xz5rMyYmY29uc29sZS53YXJuKGBzaWdtYVJhZGlhbnMsICR7b30sIGlzIHRvbyBsYXJnZSBhbmQgd2lsbCBjbGlwLCBhcyBpdCByZXF1ZXN0ZWQgJHtffSBzYW1wbGVzIHdoZW4gdGhlIG1heGltdW0gaXMgc2V0IHRvICR7azN9YCk7bGV0IHk9W10seD0wO2ZvcihsZXQgUD0wO1A8azM7KytQKXtsZXQgaz1QL2csTz1NYXRoLmV4cCgtayprLzIpO3kucHVzaChPKSxQPT09MD94Kz1POlA8XyYmKHgrPTIqTyl9Zm9yKGxldCBQPTA7UDx5Lmxlbmd0aDtQKyspeVtQXT15W1BdL3g7Zi5lbnZNYXAudmFsdWU9dC50ZXh0dXJlLGYuc2FtcGxlcy52YWx1ZT1fLGYud2VpZ2h0cy52YWx1ZT15LGYubGF0aXR1ZGluYWwudmFsdWU9YT09PSJsYXRpdHVkaW5hbCIscyYmKGYucG9sZUF4aXMudmFsdWU9cyksZi5kVGhldGEudmFsdWU9ZCxmLm1pcEludC52YWx1ZT1CMC1uO2xldCBiPVB1ZVtpXSxTPTMqTWF0aC5tYXgoMCxLZi0yKmIpLEM9KGk9PT0wPzA6MipLZikrMipiKihpPkIwLXEzP2ktQjArcTM6MCk7SVYocixTLEMsMypiLDIqYiksbC5zZXRSZW5kZXJUYXJnZXQociksbC5yZW5kZXIoaCxodXQpfX07ZnVuY3Rpb24gdG1yKCl7bGV0IGU9W10sdD1bXSxyPVtdLG49QjA7Zm9yKGxldCBpPTA7aTxHZmU7aSsrKXtsZXQgbz1NYXRoLnBvdygyLG4pO3QucHVzaChvKTtsZXQgYT0xL287aT5CMC1xMz9hPXFmZVtpLUIwK3EzLTFdOmk9PT0wJiYoYT0wKSxyLnB1c2goYSk7bGV0IHM9MS8oby0xKSxsPS1zLzIsYz0xK3MvMix1PVtsLGwsYyxsLGMsYyxsLGwsYyxjLGwsY10saD02LGY9NixwPTMsZD0yLGc9MSxfPW5ldyBGbG9hdDMyQXJyYXkocCpmKmgpLHk9bmV3IEZsb2F0MzJBcnJheShkKmYqaCkseD1uZXcgRmxvYXQzMkFycmF5KGcqZipoKTtmb3IobGV0IFM9MDtTPGg7UysrKXtsZXQgQz1TJTMqMi8zLTEsUD1TPjI/MDotMSxrPVtDLFAsMCxDKzIvMyxQLDAsQysyLzMsUCsxLDAsQyxQLDAsQysyLzMsUCsxLDAsQyxQKzEsMF07Xy5zZXQoayxwKmYqUykseS5zZXQodSxkKmYqUyk7bGV0IE89W1MsUyxTLFMsUyxTXTt4LnNldChPLGcqZipTKX1sZXQgYj1uZXcgUGU7Yi5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgSmUoXyxwKSksYi5zZXRBdHRyaWJ1dGUoInV2IixuZXcgSmUoeSxkKSksYi5zZXRBdHRyaWJ1dGUoImZhY2VJbmRleCIsbmV3IEplKHgsZykpLGUucHVzaChiKSxuPnEzJiZuLS19cmV0dXJue19sb2RQbGFuZXM6ZSxfc2l6ZUxvZHM6dCxfc2lnbWFzOnJ9fWZ1bmN0aW9uIGt1ZShlKXtsZXQgdD1uZXcgaHMoMypLZiwzKktmLGUpO3JldHVybiB0LnRleHR1cmUubWFwcGluZz14TSx0LnRleHR1cmUubmFtZT0iUE1SRU0uY3ViZVV2Iix0LnNjaXNzb3JUZXN0PSEwLHR9ZnVuY3Rpb24gSVYoZSx0LHIsbixpKXtlLnZpZXdwb3J0LnNldCh0LHIsbixpKSxlLnNjaXNzb3Iuc2V0KHQscixuLGkpfWZ1bmN0aW9uIGVtcihlKXtsZXQgdD1uZXcgRmxvYXQzMkFycmF5KGUpLHI9bmV3IGooMCwxLDApO3JldHVybiBuZXcgcTAoe25hbWU6IlNwaGVyaWNhbEdhdXNzaWFuQmx1ciIsZGVmaW5lczp7bjplfSx1bmlmb3Jtczp7ZW52TWFwOnt2YWx1ZTpudWxsfSxzYW1wbGVzOnt2YWx1ZToxfSx3ZWlnaHRzOnt2YWx1ZTp0fSxsYXRpdHVkaW5hbDp7dmFsdWU6ITF9LGRUaGV0YTp7dmFsdWU6MH0sbWlwSW50Ont2YWx1ZTowfSxwb2xlQXhpczp7dmFsdWU6cn19LHZlcnRleFNoYWRlcjpOaHQoKSxmcmFnbWVudFNoYWRlcjpgCgoJCQlwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKCQkJcHJlY2lzaW9uIG1lZGl1bXAgaW50OwoKCQkJdmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247CgoJCQl1bmlmb3JtIHNhbXBsZXIyRCBlbnZNYXA7CgkJCXVuaWZvcm0gaW50IHNhbXBsZXM7CgkJCXVuaWZvcm0gZmxvYXQgd2VpZ2h0c1sgbiBdOwoJCQl1bmlmb3JtIGJvb2wgbGF0aXR1ZGluYWw7CgkJCXVuaWZvcm0gZmxvYXQgZFRoZXRhOwoJCQl1bmlmb3JtIGZsb2F0IG1pcEludDsKCQkJdW5pZm9ybSB2ZWMzIHBvbGVBeGlzOwoKCQkJI2RlZmluZSBFTlZNQVBfVFlQRV9DVUJFX1VWCgkJCSNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+CgoJCQl2ZWMzIGdldFNhbXBsZSggZmxvYXQgdGhldGEsIHZlYzMgYXhpcyApIHsKCgkJCQlmbG9hdCBjb3NUaGV0YSA9IGNvcyggdGhldGEgKTsKCQkJCS8vIFJvZHJpZ3VlcycgYXhpcy1hbmdsZSByb3RhdGlvbgoJCQkJdmVjMyBzYW1wbGVEaXJlY3Rpb24gPSB2T3V0cHV0RGlyZWN0aW9uICogY29zVGhldGEKCQkJCQkrIGNyb3NzKCBheGlzLCB2T3V0cHV0RGlyZWN0aW9uICkgKiBzaW4oIHRoZXRhICkKCQkJCQkrIGF4aXMgKiBkb3QoIGF4aXMsIHZPdXRwdXREaXJlY3Rpb24gKSAqICggMS4wIC0gY29zVGhldGEgKTsKCgkJCQlyZXR1cm4gYmlsaW5lYXJDdWJlVVYoIGVudk1hcCwgc2FtcGxlRGlyZWN0aW9uLCBtaXBJbnQgKTsKCgkJCX0KCgkJCXZvaWQgbWFpbigpIHsKCgkJCQl2ZWMzIGF4aXMgPSBsYXRpdHVkaW5hbCA/IHBvbGVBeGlzIDogY3Jvc3MoIHBvbGVBeGlzLCB2T3V0cHV0RGlyZWN0aW9uICk7CgoJCQkJaWYgKCBhbGwoIGVxdWFsKCBheGlzLCB2ZWMzKCAwLjAgKSApICkgKSB7CgoJCQkJCWF4aXMgPSB2ZWMzKCB2T3V0cHV0RGlyZWN0aW9uLnosIDAuMCwgLSB2T3V0cHV0RGlyZWN0aW9uLnggKTsKCgkJCQl9CgoJCQkJYXhpcyA9IG5vcm1hbGl6ZSggYXhpcyApOwoKCQkJCWdsX0ZyYWdDb2xvciA9IHZlYzQoIDAuMCwgMC4wLCAwLjAsIDEuMCApOwoJCQkJZ2xfRnJhZ0NvbG9yLnJnYiArPSB3ZWlnaHRzWyAwIF0gKiBnZXRTYW1wbGUoIDAuMCwgYXhpcyApOwoKCQkJCWZvciAoIGludCBpID0gMTsgaSA8IG47IGkrKyApIHsKCgkJCQkJaWYgKCBpID49IHNhbXBsZXMgKSB7CgoJCQkJCQlicmVhazsKCgkJCQkJfQoKCQkJCQlmbG9hdCB0aGV0YSA9IGRUaGV0YSAqIGZsb2F0KCBpICk7CgkJCQkJZ2xfRnJhZ0NvbG9yLnJnYiArPSB3ZWlnaHRzWyBpIF0gKiBnZXRTYW1wbGUoIC0xLjAgKiB0aGV0YSwgYXhpcyApOwoJCQkJCWdsX0ZyYWdDb2xvci5yZ2IgKz0gd2VpZ2h0c1sgaSBdICogZ2V0U2FtcGxlKCB0aGV0YSwgYXhpcyApOwoKCQkJCX0KCgkJCX0KCQlgLGJsZW5kaW5nOktkLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExfSl9ZnVuY3Rpb24gUnVlKCl7bGV0IGU9bmV3IEx0KDEsMSk7cmV0dXJuIG5ldyBxMCh7bmFtZToiRXF1aXJlY3Rhbmd1bGFyVG9DdWJlVVYiLHVuaWZvcm1zOntlbnZNYXA6e3ZhbHVlOm51bGx9LHRleGVsU2l6ZTp7dmFsdWU6ZX19LHZlcnRleFNoYWRlcjpOaHQoKSxmcmFnbWVudFNoYWRlcjpgCgoJCQlwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKCQkJcHJlY2lzaW9uIG1lZGl1bXAgaW50OwoKCQkJdmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247CgoJCQl1bmlmb3JtIHNhbXBsZXIyRCBlbnZNYXA7CgkJCXVuaWZvcm0gdmVjMiB0ZXhlbFNpemU7CgoJCQkjaW5jbHVkZSA8Y29tbW9uPgoKCQkJdm9pZCBtYWluKCkgewoKCQkJCWdsX0ZyYWdDb2xvciA9IHZlYzQoIDAuMCwgMC4wLCAwLjAsIDEuMCApOwoKCQkJCXZlYzMgb3V0cHV0RGlyZWN0aW9uID0gbm9ybWFsaXplKCB2T3V0cHV0RGlyZWN0aW9uICk7CgkJCQl2ZWMyIHV2ID0gZXF1aXJlY3RVdiggb3V0cHV0RGlyZWN0aW9uICk7CgoJCQkJdmVjMiBmID0gZnJhY3QoIHV2IC8gdGV4ZWxTaXplIC0gMC41ICk7CgkJCQl1diAtPSBmICogdGV4ZWxTaXplOwoJCQkJdmVjMyB0bCA9IHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKS5yZ2I7CgkJCQl1di54ICs9IHRleGVsU2l6ZS54OwoJCQkJdmVjMyB0ciA9IHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKS5yZ2I7CgkJCQl1di55ICs9IHRleGVsU2l6ZS55OwoJCQkJdmVjMyBiciA9IHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKS5yZ2I7CgkJCQl1di54IC09IHRleGVsU2l6ZS54OwoJCQkJdmVjMyBibCA9IHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKS5yZ2I7CgoJCQkJdmVjMyB0bSA9IG1peCggdGwsIHRyLCBmLnggKTsKCQkJCXZlYzMgYm0gPSBtaXgoIGJsLCBiciwgZi54ICk7CgkJCQlnbF9GcmFnQ29sb3IucmdiID0gbWl4KCB0bSwgYm0sIGYueSApOwoKCQkJfQoJCWAsYmxlbmRpbmc6S2QsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITF9KX1mdW5jdGlvbiBOdWUoKXtyZXR1cm4gbmV3IHEwKHtuYW1lOiJDdWJlbWFwVG9DdWJlVVYiLHVuaWZvcm1zOntlbnZNYXA6e3ZhbHVlOm51bGx9LGZsaXBFbnZNYXA6e3ZhbHVlOi0xfX0sdmVydGV4U2hhZGVyOk5odCgpLGZyYWdtZW50U2hhZGVyOmAKCgkJCXByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwoJCQlwcmVjaXNpb24gbWVkaXVtcCBpbnQ7CgoJCQl1bmlmb3JtIGZsb2F0IGZsaXBFbnZNYXA7CgoJCQl2YXJ5aW5nIHZlYzMgdk91dHB1dERpcmVjdGlvbjsKCgkJCXVuaWZvcm0gc2FtcGxlckN1YmUgZW52TWFwOwoKCQkJdm9pZCBtYWluKCkgewoKCQkJCWdsX0ZyYWdDb2xvciA9IHRleHR1cmVDdWJlKCBlbnZNYXAsIHZlYzMoIGZsaXBFbnZNYXAgKiB2T3V0cHV0RGlyZWN0aW9uLngsIHZPdXRwdXREaXJlY3Rpb24ueXogKSApOwoKCQkJfQoJCWAsYmxlbmRpbmc6S2QsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITF9KX1mdW5jdGlvbiBOaHQoKXtyZXR1cm5gCgoJCXByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwoJCXByZWNpc2lvbiBtZWRpdW1wIGludDsKCgkJYXR0cmlidXRlIHZlYzMgcG9zaXRpb247CgkJYXR0cmlidXRlIHZlYzIgdXY7CgkJYXR0cmlidXRlIGZsb2F0IGZhY2VJbmRleDsKCgkJdmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247CgoJCS8vIFJIIGNvb3JkaW5hdGUgc3lzdGVtOyBQTVJFTSBmYWNlLWluZGV4aW5nIGNvbnZlbnRpb24KCQl2ZWMzIGdldERpcmVjdGlvbiggdmVjMiB1diwgZmxvYXQgZmFjZSApIHsKCgkJCXV2ID0gMi4wICogdXYgLSAxLjA7CgoJCQl2ZWMzIGRpcmVjdGlvbiA9IHZlYzMoIHV2LCAxLjAgKTsKCgkJCWlmICggZmFjZSA9PSAwLjAgKSB7CgoJCQkJZGlyZWN0aW9uID0gZGlyZWN0aW9uLnp5eDsgLy8gKCAxLCB2LCB1ICkgcG9zIHgKCgkJCX0gZWxzZSBpZiAoIGZhY2UgPT0gMS4wICkgewoKCQkJCWRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7CgkJCQlkaXJlY3Rpb24ueHogKj0gLTEuMDsgLy8gKCAtdSwgMSwgLXYgKSBwb3MgeQoKCQkJfSBlbHNlIGlmICggZmFjZSA9PSAyLjAgKSB7CgoJCQkJZGlyZWN0aW9uLnggKj0gLTEuMDsgLy8gKCAtdSwgdiwgMSApIHBvcyB6CgoJCQl9IGVsc2UgaWYgKCBmYWNlID09IDMuMCApIHsKCgkJCQlkaXJlY3Rpb24gPSBkaXJlY3Rpb24uenl4OwoJCQkJZGlyZWN0aW9uLnh6ICo9IC0xLjA7IC8vICggLTEsIHYsIC11ICkgbmVnIHgKCgkJCX0gZWxzZSBpZiAoIGZhY2UgPT0gNC4wICkgewoKCQkJCWRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7CgkJCQlkaXJlY3Rpb24ueHkgKj0gLTEuMDsgLy8gKCAtdSwgLTEsIHYgKSBuZWcgeQoKCQkJfSBlbHNlIGlmICggZmFjZSA9PSA1LjAgKSB7CgoJCQkJZGlyZWN0aW9uLnogKj0gLTEuMDsgLy8gKCB1LCB2LCAtMSApIG5lZyB6CgoJCQl9CgoJCQlyZXR1cm4gZGlyZWN0aW9uOwoKCQl9CgoJCXZvaWQgbWFpbigpIHsKCgkJCXZPdXRwdXREaXJlY3Rpb24gPSBnZXREaXJlY3Rpb24oIHV2LCBmYWNlSW5kZXggKTsKCQkJZ2xfUG9zaXRpb24gPSB2ZWM0KCBwb3NpdGlvbiwgMS4wICk7CgoJCX0KCWB9ZnVuY3Rpb24gcm1yKGUpe2xldCB0PW5ldyBXZWFrTWFwLHI9bnVsbDtmdW5jdGlvbiBuKHMpe2lmKHMmJnMuaXNUZXh0dXJlKXtsZXQgbD1zLm1hcHBpbmcsYz1sPT09WVB8fGw9PT1qUCx1PWw9PT1peHx8bD09PW94O2lmKGN8fHUpaWYocy5pc1JlbmRlclRhcmdldFRleHR1cmUmJnMubmVlZHNQTVJFTVVwZGF0ZT09PSEwKXtzLm5lZWRzUE1SRU1VcGRhdGU9ITE7bGV0IGg9dC5nZXQocyk7cmV0dXJuIHI9PT1udWxsJiYocj1uZXcgZTYoZSkpLGg9Yz9yLmZyb21FcXVpcmVjdGFuZ3VsYXIocyxoKTpyLmZyb21DdWJlbWFwKHMsaCksdC5zZXQocyxoKSxoLnRleHR1cmV9ZWxzZXtpZih0LmhhcyhzKSlyZXR1cm4gdC5nZXQocykudGV4dHVyZTt7bGV0IGg9cy5pbWFnZTtpZihjJiZoJiZoLmhlaWdodD4wfHx1JiZoJiZpKGgpKXtyPT09bnVsbCYmKHI9bmV3IGU2KGUpKTtsZXQgZj1jP3IuZnJvbUVxdWlyZWN0YW5ndWxhcihzKTpyLmZyb21DdWJlbWFwKHMpO3JldHVybiB0LnNldChzLGYpLHMuYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsbyksZi50ZXh0dXJlfWVsc2UgcmV0dXJuIG51bGx9fX1yZXR1cm4gc31mdW5jdGlvbiBpKHMpe2xldCBsPTAsYz02O2ZvcihsZXQgdT0wO3U8Yzt1Kyspc1t1XSE9PXZvaWQgMCYmbCsrO3JldHVybiBsPT09Y31mdW5jdGlvbiBvKHMpe2xldCBsPXMudGFyZ2V0O2wucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsbyk7bGV0IGM9dC5nZXQobCk7YyE9PXZvaWQgMCYmKHQuZGVsZXRlKGwpLGMuZGlzcG9zZSgpKX1mdW5jdGlvbiBhKCl7dD1uZXcgV2Vha01hcCxyIT09bnVsbCYmKHIuZGlzcG9zZSgpLHI9bnVsbCl9cmV0dXJue2dldDpuLGRpc3Bvc2U6YX19ZnVuY3Rpb24gbm1yKGUpe2xldCB0PXt9O2Z1bmN0aW9uIHIobil7aWYodFtuXSE9PXZvaWQgMClyZXR1cm4gdFtuXTtsZXQgaTtzd2l0Y2gobil7Y2FzZSJXRUJHTF9kZXB0aF90ZXh0dXJlIjppPWUuZ2V0RXh0ZW5zaW9uKCJXRUJHTF9kZXB0aF90ZXh0dXJlIil8fGUuZ2V0RXh0ZW5zaW9uKCJNT1pfV0VCR0xfZGVwdGhfdGV4dHVyZSIpfHxlLmdldEV4dGVuc2lvbigiV0VCS0lUX1dFQkdMX2RlcHRoX3RleHR1cmUiKTticmVhaztjYXNlIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyI6aT1lLmdldEV4dGVuc2lvbigiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIil8fGUuZ2V0RXh0ZW5zaW9uKCJNT1pfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIil8fGUuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7YnJlYWs7Y2FzZSJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyI6aT1lLmdldEV4dGVuc2lvbigiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKXx8ZS5nZXRFeHRlbnNpb24oIk1PWl9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpfHxlLmdldEV4dGVuc2lvbigiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7YnJlYWs7Y2FzZSJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiOmk9ZS5nZXRFeHRlbnNpb24oIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpfHxlLmdldEV4dGVuc2lvbigiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpO2JyZWFrO2RlZmF1bHQ6aT1lLmdldEV4dGVuc2lvbihuKX1yZXR1cm4gdFtuXT1pLGl9cmV0dXJue2hhczpmdW5jdGlvbihuKXtyZXR1cm4gcihuKSE9PW51bGx9LGluaXQ6ZnVuY3Rpb24obil7bi5pc1dlYkdMMj9yKCJFWFRfY29sb3JfYnVmZmVyX2Zsb2F0Iik6KHIoIldFQkdMX2RlcHRoX3RleHR1cmUiKSxyKCJPRVNfdGV4dHVyZV9mbG9hdCIpLHIoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSxyKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpLHIoIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpLHIoIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKSxyKCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpLHIoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSkscigiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikscigiRVhUX2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0IikscigiV0VCR0xfbXVsdGlzYW1wbGVkX3JlbmRlcl90b190ZXh0dXJlIil9LGdldDpmdW5jdGlvbihuKXtsZXQgaT1yKG4pO3JldHVybiBpPT09bnVsbCYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAiK24rIiBleHRlbnNpb24gbm90IHN1cHBvcnRlZC4iKSxpfX19ZnVuY3Rpb24gaW1yKGUsdCxyLG4pe2xldCBpPXt9LG89bmV3IFdlYWtNYXA7ZnVuY3Rpb24gYShoKXtsZXQgZj1oLnRhcmdldDtmLmluZGV4IT09bnVsbCYmdC5yZW1vdmUoZi5pbmRleCk7Zm9yKGxldCBkIGluIGYuYXR0cmlidXRlcyl0LnJlbW92ZShmLmF0dHJpYnV0ZXNbZF0pO2YucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsYSksZGVsZXRlIGlbZi5pZF07bGV0IHA9by5nZXQoZik7cCYmKHQucmVtb3ZlKHApLG8uZGVsZXRlKGYpKSxuLnJlbGVhc2VTdGF0ZXNPZkdlb21ldHJ5KGYpLGYuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeT09PSEwJiZkZWxldGUgZi5fbWF4SW5zdGFuY2VDb3VudCxyLm1lbW9yeS5nZW9tZXRyaWVzLS19ZnVuY3Rpb24gcyhoLGYpe3JldHVybiBpW2YuaWRdPT09ITB8fChmLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLGEpLGlbZi5pZF09ITAsci5tZW1vcnkuZ2VvbWV0cmllcysrKSxmfWZ1bmN0aW9uIGwoaCl7bGV0IGY9aC5hdHRyaWJ1dGVzO2ZvcihsZXQgZCBpbiBmKXQudXBkYXRlKGZbZF0sMzQ5NjIpO2xldCBwPWgubW9ycGhBdHRyaWJ1dGVzO2ZvcihsZXQgZCBpbiBwKXtsZXQgZz1wW2RdO2ZvcihsZXQgXz0wLHk9Zy5sZW5ndGg7Xzx5O18rKyl0LnVwZGF0ZShnW19dLDM0OTYyKX19ZnVuY3Rpb24gYyhoKXtsZXQgZj1bXSxwPWguaW5kZXgsZD1oLmF0dHJpYnV0ZXMucG9zaXRpb24sZz0wO2lmKHAhPT1udWxsKXtsZXQgeD1wLmFycmF5O2c9cC52ZXJzaW9uO2ZvcihsZXQgYj0wLFM9eC5sZW5ndGg7YjxTO2IrPTMpe2xldCBDPXhbYiswXSxQPXhbYisxXSxrPXhbYisyXTtmLnB1c2goQyxQLFAsayxrLEMpfX1lbHNle2xldCB4PWQuYXJyYXk7Zz1kLnZlcnNpb247Zm9yKGxldCBiPTAsUz14Lmxlbmd0aC8zLTE7YjxTO2IrPTMpe2xldCBDPWIrMCxQPWIrMSxrPWIrMjtmLnB1c2goQyxQLFAsayxrLEMpfX1sZXQgXz1uZXcoQmZlKGYpP0szOiQzKShmLDEpO18udmVyc2lvbj1nO2xldCB5PW8uZ2V0KGgpO3kmJnQucmVtb3ZlKHkpLG8uc2V0KGgsXyl9ZnVuY3Rpb24gdShoKXtsZXQgZj1vLmdldChoKTtpZihmKXtsZXQgcD1oLmluZGV4O3AhPT1udWxsJiZmLnZlcnNpb248cC52ZXJzaW9uJiZjKGgpfWVsc2UgYyhoKTtyZXR1cm4gby5nZXQoaCl9cmV0dXJue2dldDpzLHVwZGF0ZTpsLGdldFdpcmVmcmFtZUF0dHJpYnV0ZTp1fX1mdW5jdGlvbiBvbXIoZSx0LHIsbil7bGV0IGk9bi5pc1dlYkdMMixvO2Z1bmN0aW9uIGEoZil7bz1mfWxldCBzLGw7ZnVuY3Rpb24gYyhmKXtzPWYudHlwZSxsPWYuYnl0ZXNQZXJFbGVtZW50fWZ1bmN0aW9uIHUoZixwKXtlLmRyYXdFbGVtZW50cyhvLHAscyxmKmwpLHIudXBkYXRlKHAsbywxKX1mdW5jdGlvbiBoKGYscCxkKXtpZihkPT09MClyZXR1cm47bGV0IGcsXztpZihpKWc9ZSxfPSJkcmF3RWxlbWVudHNJbnN0YW5jZWQiO2Vsc2UgaWYoZz10LmdldCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpLF89ImRyYXdFbGVtZW50c0luc3RhbmNlZEFOR0xFIixnPT09bnVsbCl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xJbmRleGVkQnVmZmVyUmVuZGVyZXI6IHVzaW5nIFRIUkVFLkluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5IGJ1dCBoYXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0IGV4dGVuc2lvbiBBTkdMRV9pbnN0YW5jZWRfYXJyYXlzLiIpO3JldHVybn1nW19dKG8scCxzLGYqbCxkKSxyLnVwZGF0ZShwLG8sZCl9dGhpcy5zZXRNb2RlPWEsdGhpcy5zZXRJbmRleD1jLHRoaXMucmVuZGVyPXUsdGhpcy5yZW5kZXJJbnN0YW5jZXM9aH1mdW5jdGlvbiBhbXIoZSl7bGV0IHQ9e2dlb21ldHJpZXM6MCx0ZXh0dXJlczowfSxyPXtmcmFtZTowLGNhbGxzOjAsdHJpYW5nbGVzOjAscG9pbnRzOjAsbGluZXM6MH07ZnVuY3Rpb24gbihvLGEscyl7c3dpdGNoKHIuY2FsbHMrKyxhKXtjYXNlIDQ6ci50cmlhbmdsZXMrPXMqKG8vMyk7YnJlYWs7Y2FzZSAxOnIubGluZXMrPXMqKG8vMik7YnJlYWs7Y2FzZSAzOnIubGluZXMrPXMqKG8tMSk7YnJlYWs7Y2FzZSAyOnIubGluZXMrPXMqbzticmVhaztjYXNlIDA6ci5wb2ludHMrPXMqbzticmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMSW5mbzogVW5rbm93biBkcmF3IG1vZGU6IixhKTticmVha319ZnVuY3Rpb24gaSgpe3IuZnJhbWUrKyxyLmNhbGxzPTAsci50cmlhbmdsZXM9MCxyLnBvaW50cz0wLHIubGluZXM9MH1yZXR1cm57bWVtb3J5OnQscmVuZGVyOnIscHJvZ3JhbXM6bnVsbCxhdXRvUmVzZXQ6ITAscmVzZXQ6aSx1cGRhdGU6bn19dmFyIHRNPWNsYXNzIGV4dGVuZHMgdml7Y29uc3RydWN0b3IodD1udWxsLHI9MSxuPTEsaT0xKXtzdXBlcihudWxsKSx0aGlzLmltYWdlPXtkYXRhOnQsd2lkdGg6cixoZWlnaHQ6bixkZXB0aDppfSx0aGlzLm1hZ0ZpbHRlcj1MaSx0aGlzLm1pbkZpbHRlcj1MaSx0aGlzLndyYXBSPUpvLHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSExLHRoaXMuZmxpcFk9ITEsdGhpcy51bnBhY2tBbGlnbm1lbnQ9MX19O3RNLnByb3RvdHlwZS5pc0RhdGFUZXh0dXJlMkRBcnJheT0hMDtmdW5jdGlvbiBzbXIoZSx0KXtyZXR1cm4gZVswXS10WzBdfWZ1bmN0aW9uIGxtcihlLHQpe3JldHVybiBNYXRoLmFicyh0WzFdKS1NYXRoLmFicyhlWzFdKX1mdW5jdGlvbiBEdWUoZSx0KXtsZXQgcj0xLG49dC5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlP3QuZGF0YS5hcnJheTp0LmFycmF5O24gaW5zdGFuY2VvZiBJbnQ4QXJyYXk/cj0xMjc6biBpbnN0YW5jZW9mIEludDE2QXJyYXk/cj0zMjc2NzpuIGluc3RhbmNlb2YgSW50MzJBcnJheT9yPTIxNDc0ODM2NDc6Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xNb3JwaHRhcmdldHM6IFVuc3VwcG9ydGVkIG1vcnBoIGF0dHJpYnV0ZSBkYXRhIHR5cGU6ICIsbiksZS5kaXZpZGVTY2FsYXIocil9ZnVuY3Rpb24gY21yKGUsdCxyKXtsZXQgbj17fSxpPW5ldyBGbG9hdDMyQXJyYXkoOCksbz1uZXcgV2Vha01hcCxhPW5ldyBqLHM9W107Zm9yKGxldCBjPTA7Yzw4O2MrKylzW2NdPVtjLDBdO2Z1bmN0aW9uIGwoYyx1LGgsZil7bGV0IHA9Yy5tb3JwaFRhcmdldEluZmx1ZW5jZXM7aWYodC5pc1dlYkdMMj09PSEwKXtsZXQgZD11Lm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbi5sZW5ndGgsZz1vLmdldCh1KTtpZihnPT09dm9pZCAwfHxnLmNvdW50IT09ZCl7bGV0IEw9ZnVuY3Rpb24oKXtCLmRpc3Bvc2UoKSxvLmRlbGV0ZSh1KSx1LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLEwpfTtnIT09dm9pZCAwJiZnLnRleHR1cmUuZGlzcG9zZSgpO2xldCB4PXUubW9ycGhBdHRyaWJ1dGVzLm5vcm1hbCE9PXZvaWQgMCxiPXUubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uLFM9dS5tb3JwaEF0dHJpYnV0ZXMubm9ybWFsfHxbXSxDPXUuYXR0cmlidXRlcy5wb3NpdGlvbi5jb3VudCxQPXg9PT0hMD8yOjEsaz1DKlAsTz0xO2s+dC5tYXhUZXh0dXJlU2l6ZSYmKE89TWF0aC5jZWlsKGsvdC5tYXhUZXh0dXJlU2l6ZSksaz10Lm1heFRleHR1cmVTaXplKTtsZXQgRD1uZXcgRmxvYXQzMkFycmF5KGsqTyo0KmQpLEI9bmV3IHRNKEQsayxPLGQpO0IuZm9ybWF0PVFvLEIudHlwZT1YZCxCLm5lZWRzVXBkYXRlPSEwO2xldCBJPVAqNDtmb3IobGV0IFI9MDtSPGQ7UisrKXtsZXQgRj1iW1JdLHo9U1tSXSxVPWsqTyo0KlI7Zm9yKGxldCBXPTA7VzxGLmNvdW50O1crKyl7YS5mcm9tQnVmZmVyQXR0cmlidXRlKEYsVyksRi5ub3JtYWxpemVkPT09ITAmJkR1ZShhLEYpO2xldCBaPVcqSTtEW1UrWiswXT1hLngsRFtVK1orMV09YS55LERbVStaKzJdPWEueixEW1UrWiszXT0wLHg9PT0hMCYmKGEuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh6LFcpLHoubm9ybWFsaXplZD09PSEwJiZEdWUoYSx6KSxEW1UrWis0XT1hLngsRFtVK1orNV09YS55LERbVStaKzZdPWEueixEW1UrWis3XT0wKX19Zz17Y291bnQ6ZCx0ZXh0dXJlOkIsc2l6ZTpuZXcgTHQoayxPKX0sby5zZXQodSxnKSx1LmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLEwpfWxldCBfPTA7Zm9yKGxldCB4PTA7eDxwLmxlbmd0aDt4KyspXys9cFt4XTtsZXQgeT11Lm1vcnBoVGFyZ2V0c1JlbGF0aXZlPzE6MS1fO2YuZ2V0VW5pZm9ybXMoKS5zZXRWYWx1ZShlLCJtb3JwaFRhcmdldEJhc2VJbmZsdWVuY2UiLHkpLGYuZ2V0VW5pZm9ybXMoKS5zZXRWYWx1ZShlLCJtb3JwaFRhcmdldEluZmx1ZW5jZXMiLHApLGYuZ2V0VW5pZm9ybXMoKS5zZXRWYWx1ZShlLCJtb3JwaFRhcmdldHNUZXh0dXJlIixnLnRleHR1cmUsciksZi5nZXRVbmlmb3JtcygpLnNldFZhbHVlKGUsIm1vcnBoVGFyZ2V0c1RleHR1cmVTaXplIixnLnNpemUpfWVsc2V7bGV0IGQ9cD09PXZvaWQgMD8wOnAubGVuZ3RoLGc9blt1LmlkXTtpZihnPT09dm9pZCAwfHxnLmxlbmd0aCE9PWQpe2c9W107Zm9yKGxldCBTPTA7UzxkO1MrKylnW1NdPVtTLDBdO25bdS5pZF09Z31mb3IobGV0IFM9MDtTPGQ7UysrKXtsZXQgQz1nW1NdO0NbMF09UyxDWzFdPXBbU119Zy5zb3J0KGxtcik7Zm9yKGxldCBTPTA7Uzw4O1MrKylTPGQmJmdbU11bMV0/KHNbU11bMF09Z1tTXVswXSxzW1NdWzFdPWdbU11bMV0pOihzW1NdWzBdPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSLHNbU11bMV09MCk7cy5zb3J0KHNtcik7bGV0IF89dS5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24seT11Lm1vcnBoQXR0cmlidXRlcy5ub3JtYWwseD0wO2ZvcihsZXQgUz0wO1M8ODtTKyspe2xldCBDPXNbU10sUD1DWzBdLGs9Q1sxXTtQIT09TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVImJms/KF8mJnUuZ2V0QXR0cmlidXRlKCJtb3JwaFRhcmdldCIrUykhPT1fW1BdJiZ1LnNldEF0dHJpYnV0ZSgibW9ycGhUYXJnZXQiK1MsX1tQXSkseSYmdS5nZXRBdHRyaWJ1dGUoIm1vcnBoTm9ybWFsIitTKSE9PXlbUF0mJnUuc2V0QXR0cmlidXRlKCJtb3JwaE5vcm1hbCIrUyx5W1BdKSxpW1NdPWsseCs9ayk6KF8mJnUuaGFzQXR0cmlidXRlKCJtb3JwaFRhcmdldCIrUyk9PT0hMCYmdS5kZWxldGVBdHRyaWJ1dGUoIm1vcnBoVGFyZ2V0IitTKSx5JiZ1Lmhhc0F0dHJpYnV0ZSgibW9ycGhOb3JtYWwiK1MpPT09ITAmJnUuZGVsZXRlQXR0cmlidXRlKCJtb3JwaE5vcm1hbCIrUyksaVtTXT0wKX1sZXQgYj11Lm1vcnBoVGFyZ2V0c1JlbGF0aXZlPzE6MS14O2YuZ2V0VW5pZm9ybXMoKS5zZXRWYWx1ZShlLCJtb3JwaFRhcmdldEJhc2VJbmZsdWVuY2UiLGIpLGYuZ2V0VW5pZm9ybXMoKS5zZXRWYWx1ZShlLCJtb3JwaFRhcmdldEluZmx1ZW5jZXMiLGkpfX1yZXR1cm57dXBkYXRlOmx9fWZ1bmN0aW9uIHVtcihlLHQscixuKXtsZXQgaT1uZXcgV2Vha01hcDtmdW5jdGlvbiBvKGwpe2xldCBjPW4ucmVuZGVyLmZyYW1lLHU9bC5nZW9tZXRyeSxoPXQuZ2V0KGwsdSk7cmV0dXJuIGkuZ2V0KGgpIT09YyYmKHQudXBkYXRlKGgpLGkuc2V0KGgsYykpLGwuaXNJbnN0YW5jZWRNZXNoJiYobC5oYXNFdmVudExpc3RlbmVyKCJkaXNwb3NlIixzKT09PSExJiZsLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHMpLHIudXBkYXRlKGwuaW5zdGFuY2VNYXRyaXgsMzQ5NjIpLGwuaW5zdGFuY2VDb2xvciE9PW51bGwmJnIudXBkYXRlKGwuaW5zdGFuY2VDb2xvciwzNDk2MikpLGh9ZnVuY3Rpb24gYSgpe2k9bmV3IFdlYWtNYXB9ZnVuY3Rpb24gcyhsKXtsZXQgYz1sLnRhcmdldDtjLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHMpLHIucmVtb3ZlKGMuaW5zdGFuY2VNYXRyaXgpLGMuaW5zdGFuY2VDb2xvciE9PW51bGwmJnIucmVtb3ZlKGMuaW5zdGFuY2VDb2xvcil9cmV0dXJue3VwZGF0ZTpvLGRpc3Bvc2U6YX19dmFyIHI2PWNsYXNzIGV4dGVuZHMgdml7Y29uc3RydWN0b3IodD1udWxsLHI9MSxuPTEsaT0xKXtzdXBlcihudWxsKSx0aGlzLmltYWdlPXtkYXRhOnQsd2lkdGg6cixoZWlnaHQ6bixkZXB0aDppfSx0aGlzLm1hZ0ZpbHRlcj1MaSx0aGlzLm1pbkZpbHRlcj1MaSx0aGlzLndyYXBSPUpvLHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSExLHRoaXMuZmxpcFk9ITEsdGhpcy51bnBhY2tBbGlnbm1lbnQ9MX19O3I2LnByb3RvdHlwZS5pc0RhdGFUZXh0dXJlM0Q9ITA7dmFyIFdmZT1uZXcgdmksWWZlPW5ldyB0TSxqZmU9bmV3IHI2LFhmZT1uZXcgVjAsT3VlPVtdLHp1ZT1bXSxGdWU9bmV3IEZsb2F0MzJBcnJheSgxNiksQnVlPW5ldyBGbG9hdDMyQXJyYXkoOSksSHVlPW5ldyBGbG9hdDMyQXJyYXkoNCk7ZnVuY3Rpb24gYk0oZSx0LHIpe2xldCBuPWVbMF07aWYobjw9MHx8bj4wKXJldHVybiBlO2xldCBpPXQqcixvPU91ZVtpXTtpZihvPT09dm9pZCAwJiYobz1uZXcgRmxvYXQzMkFycmF5KGkpLE91ZVtpXT1vKSx0IT09MCl7bi50b0FycmF5KG8sMCk7Zm9yKGxldCBhPTEscz0wO2EhPT10OysrYSlzKz1yLGVbYV0udG9BcnJheShvLHMpfXJldHVybiBvfWZ1bmN0aW9uIGZzKGUsdCl7aWYoZS5sZW5ndGghPT10Lmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHI9MCxuPWUubGVuZ3RoO3I8bjtyKyspaWYoZVtyXSE9PXRbcl0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gQWEoZSx0KXtmb3IobGV0IHI9MCxuPXQubGVuZ3RoO3I8bjtyKyspZVtyXT10W3JdfWZ1bmN0aW9uIEtVKGUsdCl7bGV0IHI9enVlW3RdO3I9PT12b2lkIDAmJihyPW5ldyBJbnQzMkFycmF5KHQpLHp1ZVt0XT1yKTtmb3IobGV0IG49MDtuIT09dDsrK24pcltuXT1lLmFsbG9jYXRlVGV4dHVyZVVuaXQoKTtyZXR1cm4gcn1mdW5jdGlvbiBobXIoZSx0KXtsZXQgcj10aGlzLmNhY2hlO3JbMF0hPT10JiYoZS51bmlmb3JtMWYodGhpcy5hZGRyLHQpLHJbMF09dCl9ZnVuY3Rpb24gZm1yKGUsdCl7bGV0IHI9dGhpcy5jYWNoZTtpZih0LnghPT12b2lkIDApKHJbMF0hPT10Lnh8fHJbMV0hPT10LnkpJiYoZS51bmlmb3JtMmYodGhpcy5hZGRyLHQueCx0LnkpLHJbMF09dC54LHJbMV09dC55KTtlbHNle2lmKGZzKHIsdCkpcmV0dXJuO2UudW5pZm9ybTJmdih0aGlzLmFkZHIsdCksQWEocix0KX19ZnVuY3Rpb24gcG1yKGUsdCl7bGV0IHI9dGhpcy5jYWNoZTtpZih0LnghPT12b2lkIDApKHJbMF0hPT10Lnh8fHJbMV0hPT10Lnl8fHJbMl0hPT10LnopJiYoZS51bmlmb3JtM2YodGhpcy5hZGRyLHQueCx0LnksdC56KSxyWzBdPXQueCxyWzFdPXQueSxyWzJdPXQueik7ZWxzZSBpZih0LnIhPT12b2lkIDApKHJbMF0hPT10LnJ8fHJbMV0hPT10Lmd8fHJbMl0hPT10LmIpJiYoZS51bmlmb3JtM2YodGhpcy5hZGRyLHQucix0LmcsdC5iKSxyWzBdPXQucixyWzFdPXQuZyxyWzJdPXQuYik7ZWxzZXtpZihmcyhyLHQpKXJldHVybjtlLnVuaWZvcm0zZnYodGhpcy5hZGRyLHQpLEFhKHIsdCl9fWZ1bmN0aW9uIGRtcihlLHQpe2xldCByPXRoaXMuY2FjaGU7aWYodC54IT09dm9pZCAwKShyWzBdIT09dC54fHxyWzFdIT09dC55fHxyWzJdIT09dC56fHxyWzNdIT09dC53KSYmKGUudW5pZm9ybTRmKHRoaXMuYWRkcix0LngsdC55LHQueix0LncpLHJbMF09dC54LHJbMV09dC55LHJbMl09dC56LHJbM109dC53KTtlbHNle2lmKGZzKHIsdCkpcmV0dXJuO2UudW5pZm9ybTRmdih0aGlzLmFkZHIsdCksQWEocix0KX19ZnVuY3Rpb24gbW1yKGUsdCl7bGV0IHI9dGhpcy5jYWNoZSxuPXQuZWxlbWVudHM7aWYobj09PXZvaWQgMCl7aWYoZnMocix0KSlyZXR1cm47ZS51bmlmb3JtTWF0cml4MmZ2KHRoaXMuYWRkciwhMSx0KSxBYShyLHQpfWVsc2V7aWYoZnMocixuKSlyZXR1cm47SHVlLnNldChuKSxlLnVuaWZvcm1NYXRyaXgyZnYodGhpcy5hZGRyLCExLEh1ZSksQWEocixuKX19ZnVuY3Rpb24gZ21yKGUsdCl7bGV0IHI9dGhpcy5jYWNoZSxuPXQuZWxlbWVudHM7aWYobj09PXZvaWQgMCl7aWYoZnMocix0KSlyZXR1cm47ZS51bmlmb3JtTWF0cml4M2Z2KHRoaXMuYWRkciwhMSx0KSxBYShyLHQpfWVsc2V7aWYoZnMocixuKSlyZXR1cm47QnVlLnNldChuKSxlLnVuaWZvcm1NYXRyaXgzZnYodGhpcy5hZGRyLCExLEJ1ZSksQWEocixuKX19ZnVuY3Rpb24gX21yKGUsdCl7bGV0IHI9dGhpcy5jYWNoZSxuPXQuZWxlbWVudHM7aWYobj09PXZvaWQgMCl7aWYoZnMocix0KSlyZXR1cm47ZS51bmlmb3JtTWF0cml4NGZ2KHRoaXMuYWRkciwhMSx0KSxBYShyLHQpfWVsc2V7aWYoZnMocixuKSlyZXR1cm47RnVlLnNldChuKSxlLnVuaWZvcm1NYXRyaXg0ZnYodGhpcy5hZGRyLCExLEZ1ZSksQWEocixuKX19ZnVuY3Rpb24geW1yKGUsdCl7bGV0IHI9dGhpcy5jYWNoZTtyWzBdIT09dCYmKGUudW5pZm9ybTFpKHRoaXMuYWRkcix0KSxyWzBdPXQpfWZ1bmN0aW9uIHZtcihlLHQpe2xldCByPXRoaXMuY2FjaGU7ZnMocix0KXx8KGUudW5pZm9ybTJpdih0aGlzLmFkZHIsdCksQWEocix0KSl9ZnVuY3Rpb24geG1yKGUsdCl7bGV0IHI9dGhpcy5jYWNoZTtmcyhyLHQpfHwoZS51bmlmb3JtM2l2KHRoaXMuYWRkcix0KSxBYShyLHQpKX1mdW5jdGlvbiBibXIoZSx0KXtsZXQgcj10aGlzLmNhY2hlO2ZzKHIsdCl8fChlLnVuaWZvcm00aXYodGhpcy5hZGRyLHQpLEFhKHIsdCkpfWZ1bmN0aW9uIHdtcihlLHQpe2xldCByPXRoaXMuY2FjaGU7clswXSE9PXQmJihlLnVuaWZvcm0xdWkodGhpcy5hZGRyLHQpLHJbMF09dCl9ZnVuY3Rpb24gU21yKGUsdCl7bGV0IHI9dGhpcy5jYWNoZTtmcyhyLHQpfHwoZS51bmlmb3JtMnVpdih0aGlzLmFkZHIsdCksQWEocix0KSl9ZnVuY3Rpb24gTW1yKGUsdCl7bGV0IHI9dGhpcy5jYWNoZTtmcyhyLHQpfHwoZS51bmlmb3JtM3Vpdih0aGlzLmFkZHIsdCksQWEocix0KSl9ZnVuY3Rpb24gRW1yKGUsdCl7bGV0IHI9dGhpcy5jYWNoZTtmcyhyLHQpfHwoZS51bmlmb3JtNHVpdih0aGlzLmFkZHIsdCksQWEocix0KSl9ZnVuY3Rpb24gVG1yKGUsdCxyKXtsZXQgbj10aGlzLmNhY2hlLGk9ci5hbGxvY2F0ZVRleHR1cmVVbml0KCk7blswXSE9PWkmJihlLnVuaWZvcm0xaSh0aGlzLmFkZHIsaSksblswXT1pKSxyLnNhZmVTZXRUZXh0dXJlMkQodHx8V2ZlLGkpfWZ1bmN0aW9uIENtcihlLHQscil7bGV0IG49dGhpcy5jYWNoZSxpPXIuYWxsb2NhdGVUZXh0dXJlVW5pdCgpO25bMF0hPT1pJiYoZS51bmlmb3JtMWkodGhpcy5hZGRyLGkpLG5bMF09aSksci5zZXRUZXh0dXJlM0QodHx8amZlLGkpfWZ1bmN0aW9uIEFtcihlLHQscil7bGV0IG49dGhpcy5jYWNoZSxpPXIuYWxsb2NhdGVUZXh0dXJlVW5pdCgpO25bMF0hPT1pJiYoZS51bmlmb3JtMWkodGhpcy5hZGRyLGkpLG5bMF09aSksci5zYWZlU2V0VGV4dHVyZUN1YmUodHx8WGZlLGkpfWZ1bmN0aW9uIFBtcihlLHQscil7bGV0IG49dGhpcy5jYWNoZSxpPXIuYWxsb2NhdGVUZXh0dXJlVW5pdCgpO25bMF0hPT1pJiYoZS51bmlmb3JtMWkodGhpcy5hZGRyLGkpLG5bMF09aSksci5zZXRUZXh0dXJlMkRBcnJheSh0fHxZZmUsaSl9ZnVuY3Rpb24gSW1yKGUpe3N3aXRjaChlKXtjYXNlIDUxMjY6cmV0dXJuIGhtcjtjYXNlIDM1NjY0OnJldHVybiBmbXI7Y2FzZSAzNTY2NTpyZXR1cm4gcG1yO2Nhc2UgMzU2NjY6cmV0dXJuIGRtcjtjYXNlIDM1Njc0OnJldHVybiBtbXI7Y2FzZSAzNTY3NTpyZXR1cm4gZ21yO2Nhc2UgMzU2NzY6cmV0dXJuIF9tcjtjYXNlIDUxMjQ6Y2FzZSAzNTY3MDpyZXR1cm4geW1yO2Nhc2UgMzU2Njc6Y2FzZSAzNTY3MTpyZXR1cm4gdm1yO2Nhc2UgMzU2Njg6Y2FzZSAzNTY3MjpyZXR1cm4geG1yO2Nhc2UgMzU2Njk6Y2FzZSAzNTY3MzpyZXR1cm4gYm1yO2Nhc2UgNTEyNTpyZXR1cm4gd21yO2Nhc2UgMzYyOTQ6cmV0dXJuIFNtcjtjYXNlIDM2Mjk1OnJldHVybiBNbXI7Y2FzZSAzNjI5NjpyZXR1cm4gRW1yO2Nhc2UgMzU2Nzg6Y2FzZSAzNjE5ODpjYXNlIDM2Mjk4OmNhc2UgMzYzMDY6Y2FzZSAzNTY4MjpyZXR1cm4gVG1yO2Nhc2UgMzU2Nzk6Y2FzZSAzNjI5OTpjYXNlIDM2MzA3OnJldHVybiBDbXI7Y2FzZSAzNTY4MDpjYXNlIDM2MzAwOmNhc2UgMzYzMDg6Y2FzZSAzNjI5MzpyZXR1cm4gQW1yO2Nhc2UgMzYyODk6Y2FzZSAzNjMwMzpjYXNlIDM2MzExOmNhc2UgMzYyOTI6cmV0dXJuIFBtcn19ZnVuY3Rpb24gTG1yKGUsdCl7ZS51bmlmb3JtMWZ2KHRoaXMuYWRkcix0KX1mdW5jdGlvbiBrbXIoZSx0KXtsZXQgcj1iTSh0LHRoaXMuc2l6ZSwyKTtlLnVuaWZvcm0yZnYodGhpcy5hZGRyLHIpfWZ1bmN0aW9uIFJtcihlLHQpe2xldCByPWJNKHQsdGhpcy5zaXplLDMpO2UudW5pZm9ybTNmdih0aGlzLmFkZHIscil9ZnVuY3Rpb24gTm1yKGUsdCl7bGV0IHI9Yk0odCx0aGlzLnNpemUsNCk7ZS51bmlmb3JtNGZ2KHRoaXMuYWRkcixyKX1mdW5jdGlvbiBEbXIoZSx0KXtsZXQgcj1iTSh0LHRoaXMuc2l6ZSw0KTtlLnVuaWZvcm1NYXRyaXgyZnYodGhpcy5hZGRyLCExLHIpfWZ1bmN0aW9uIE9tcihlLHQpe2xldCByPWJNKHQsdGhpcy5zaXplLDkpO2UudW5pZm9ybU1hdHJpeDNmdih0aGlzLmFkZHIsITEscil9ZnVuY3Rpb24gem1yKGUsdCl7bGV0IHI9Yk0odCx0aGlzLnNpemUsMTYpO2UudW5pZm9ybU1hdHJpeDRmdih0aGlzLmFkZHIsITEscil9ZnVuY3Rpb24gRm1yKGUsdCl7ZS51bmlmb3JtMWl2KHRoaXMuYWRkcix0KX1mdW5jdGlvbiBCbXIoZSx0KXtlLnVuaWZvcm0yaXYodGhpcy5hZGRyLHQpfWZ1bmN0aW9uIEhtcihlLHQpe2UudW5pZm9ybTNpdih0aGlzLmFkZHIsdCl9ZnVuY3Rpb24gVm1yKGUsdCl7ZS51bmlmb3JtNGl2KHRoaXMuYWRkcix0KX1mdW5jdGlvbiBVbXIoZSx0KXtlLnVuaWZvcm0xdWl2KHRoaXMuYWRkcix0KX1mdW5jdGlvbiBxbXIoZSx0KXtlLnVuaWZvcm0ydWl2KHRoaXMuYWRkcix0KX1mdW5jdGlvbiBHbXIoZSx0KXtlLnVuaWZvcm0zdWl2KHRoaXMuYWRkcix0KX1mdW5jdGlvbiBXbXIoZSx0KXtlLnVuaWZvcm00dWl2KHRoaXMuYWRkcix0KX1mdW5jdGlvbiBZbXIoZSx0LHIpe2xldCBuPXQubGVuZ3RoLGk9S1UocixuKTtlLnVuaWZvcm0xaXYodGhpcy5hZGRyLGkpO2ZvcihsZXQgbz0wO28hPT1uOysrbylyLnNhZmVTZXRUZXh0dXJlMkQodFtvXXx8V2ZlLGlbb10pfWZ1bmN0aW9uIGptcihlLHQscil7bGV0IG49dC5sZW5ndGgsaT1LVShyLG4pO2UudW5pZm9ybTFpdih0aGlzLmFkZHIsaSk7Zm9yKGxldCBvPTA7byE9PW47KytvKXIuc2V0VGV4dHVyZTNEKHRbb118fGpmZSxpW29dKX1mdW5jdGlvbiBYbXIoZSx0LHIpe2xldCBuPXQubGVuZ3RoLGk9S1UocixuKTtlLnVuaWZvcm0xaXYodGhpcy5hZGRyLGkpO2ZvcihsZXQgbz0wO28hPT1uOysrbylyLnNhZmVTZXRUZXh0dXJlQ3ViZSh0W29dfHxYZmUsaVtvXSl9ZnVuY3Rpb24gJG1yKGUsdCxyKXtsZXQgbj10Lmxlbmd0aCxpPUtVKHIsbik7ZS51bmlmb3JtMWl2KHRoaXMuYWRkcixpKTtmb3IobGV0IG89MDtvIT09bjsrK28pci5zZXRUZXh0dXJlMkRBcnJheSh0W29dfHxZZmUsaVtvXSl9ZnVuY3Rpb24gS21yKGUpe3N3aXRjaChlKXtjYXNlIDUxMjY6cmV0dXJuIExtcjtjYXNlIDM1NjY0OnJldHVybiBrbXI7Y2FzZSAzNTY2NTpyZXR1cm4gUm1yO2Nhc2UgMzU2NjY6cmV0dXJuIE5tcjtjYXNlIDM1Njc0OnJldHVybiBEbXI7Y2FzZSAzNTY3NTpyZXR1cm4gT21yO2Nhc2UgMzU2NzY6cmV0dXJuIHptcjtjYXNlIDUxMjQ6Y2FzZSAzNTY3MDpyZXR1cm4gRm1yO2Nhc2UgMzU2Njc6Y2FzZSAzNTY3MTpyZXR1cm4gQm1yO2Nhc2UgMzU2Njg6Y2FzZSAzNTY3MjpyZXR1cm4gSG1yO2Nhc2UgMzU2Njk6Y2FzZSAzNTY3MzpyZXR1cm4gVm1yO2Nhc2UgNTEyNTpyZXR1cm4gVW1yO2Nhc2UgMzYyOTQ6cmV0dXJuIHFtcjtjYXNlIDM2Mjk1OnJldHVybiBHbXI7Y2FzZSAzNjI5NjpyZXR1cm4gV21yO2Nhc2UgMzU2Nzg6Y2FzZSAzNjE5ODpjYXNlIDM2Mjk4OmNhc2UgMzYzMDY6Y2FzZSAzNTY4MjpyZXR1cm4gWW1yO2Nhc2UgMzU2Nzk6Y2FzZSAzNjI5OTpjYXNlIDM2MzA3OnJldHVybiBqbXI7Y2FzZSAzNTY4MDpjYXNlIDM2MzAwOmNhc2UgMzYzMDg6Y2FzZSAzNjI5MzpyZXR1cm4gWG1yO2Nhc2UgMzYyODk6Y2FzZSAzNjMwMzpjYXNlIDM2MzExOmNhc2UgMzYyOTI6cmV0dXJuICRtcn19ZnVuY3Rpb24gWm1yKGUsdCxyKXt0aGlzLmlkPWUsdGhpcy5hZGRyPXIsdGhpcy5jYWNoZT1bXSx0aGlzLnNldFZhbHVlPUltcih0LnR5cGUpfWZ1bmN0aW9uICRmZShlLHQscil7dGhpcy5pZD1lLHRoaXMuYWRkcj1yLHRoaXMuY2FjaGU9W10sdGhpcy5zaXplPXQuc2l6ZSx0aGlzLnNldFZhbHVlPUttcih0LnR5cGUpfSRmZS5wcm90b3R5cGUudXBkYXRlQ2FjaGU9ZnVuY3Rpb24oZSl7bGV0IHQ9dGhpcy5jYWNoZTtlIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5JiZ0Lmxlbmd0aCE9PWUubGVuZ3RoJiYodGhpcy5jYWNoZT1uZXcgRmxvYXQzMkFycmF5KGUubGVuZ3RoKSksQWEodCxlKX07ZnVuY3Rpb24gS2ZlKGUpe3RoaXMuaWQ9ZSx0aGlzLnNlcT1bXSx0aGlzLm1hcD17fX1LZmUucHJvdG90eXBlLnNldFZhbHVlPWZ1bmN0aW9uKGUsdCxyKXtsZXQgbj10aGlzLnNlcTtmb3IobGV0IGk9MCxvPW4ubGVuZ3RoO2khPT1vOysraSl7bGV0IGE9bltpXTthLnNldFZhbHVlKGUsdFthLmlkXSxyKX19O3ZhciBwdXQ9LyhcdyspKFxdKT8oXFt8XC4pPy9nO2Z1bmN0aW9uIFZ1ZShlLHQpe2Uuc2VxLnB1c2godCksZS5tYXBbdC5pZF09dH1mdW5jdGlvbiBKbXIoZSx0LHIpe2xldCBuPWUubmFtZSxpPW4ubGVuZ3RoO2ZvcihwdXQubGFzdEluZGV4PTA7Oyl7bGV0IG89cHV0LmV4ZWMobiksYT1wdXQubGFzdEluZGV4LHM9b1sxXSxsPW9bMl09PT0iXSIsYz1vWzNdO2lmKGwmJihzPXN8MCksYz09PXZvaWQgMHx8Yz09PSJbIiYmYSsyPT09aSl7VnVlKHIsYz09PXZvaWQgMD9uZXcgWm1yKHMsZSx0KTpuZXcgJGZlKHMsZSx0KSk7YnJlYWt9ZWxzZXtsZXQgaD1yLm1hcFtzXTtoPT09dm9pZCAwJiYoaD1uZXcgS2ZlKHMpLFZ1ZShyLGgpKSxyPWh9fX1mdW5jdGlvbiBIMChlLHQpe3RoaXMuc2VxPVtdLHRoaXMubWFwPXt9O2xldCByPWUuZ2V0UHJvZ3JhbVBhcmFtZXRlcih0LDM1NzE4KTtmb3IobGV0IG49MDtuPHI7KytuKXtsZXQgaT1lLmdldEFjdGl2ZVVuaWZvcm0odCxuKSxvPWUuZ2V0VW5pZm9ybUxvY2F0aW9uKHQsaS5uYW1lKTtKbXIoaSxvLHRoaXMpfX1IMC5wcm90b3R5cGUuc2V0VmFsdWU9ZnVuY3Rpb24oZSx0LHIsbil7bGV0IGk9dGhpcy5tYXBbdF07aSE9PXZvaWQgMCYmaS5zZXRWYWx1ZShlLHIsbil9O0gwLnByb3RvdHlwZS5zZXRPcHRpb25hbD1mdW5jdGlvbihlLHQscil7bGV0IG49dFtyXTtuIT09dm9pZCAwJiZ0aGlzLnNldFZhbHVlKGUscixuKX07SDAudXBsb2FkPWZ1bmN0aW9uKGUsdCxyLG4pe2ZvcihsZXQgaT0wLG89dC5sZW5ndGg7aSE9PW87KytpKXtsZXQgYT10W2ldLHM9clthLmlkXTtzLm5lZWRzVXBkYXRlIT09ITEmJmEuc2V0VmFsdWUoZSxzLnZhbHVlLG4pfX07SDAuc2VxV2l0aFZhbHVlPWZ1bmN0aW9uKGUsdCl7bGV0IHI9W107Zm9yKGxldCBuPTAsaT1lLmxlbmd0aDtuIT09aTsrK24pe2xldCBvPWVbbl07by5pZCBpbiB0JiZyLnB1c2gobyl9cmV0dXJuIHJ9O2Z1bmN0aW9uIFV1ZShlLHQscil7bGV0IG49ZS5jcmVhdGVTaGFkZXIodCk7cmV0dXJuIGUuc2hhZGVyU291cmNlKG4sciksZS5jb21waWxlU2hhZGVyKG4pLG59dmFyIFFtcj0wO2Z1bmN0aW9uIHRncihlKXtsZXQgdD1lLnNwbGl0KGAKYCk7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspdFtyXT1yKzErIjogIit0W3JdO3JldHVybiB0LmpvaW4oYApgKX1mdW5jdGlvbiBlZ3IoZSl7c3dpdGNoKGUpe2Nhc2UgdG06cmV0dXJuWyJMaW5lYXIiLCIoIHZhbHVlICkiXTtjYXNlIFluOnJldHVyblsic1JHQiIsIiggdmFsdWUgKSJdO2RlZmF1bHQ6cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xQcm9ncmFtOiBVbnN1cHBvcnRlZCBlbmNvZGluZzoiLGUpLFsiTGluZWFyIiwiKCB2YWx1ZSApIl19fWZ1bmN0aW9uIHF1ZShlLHQscil7bGV0IG49ZS5nZXRTaGFkZXJQYXJhbWV0ZXIodCwzNTcxMyksaT1lLmdldFNoYWRlckluZm9Mb2codCkudHJpbSgpO3JldHVybiBuJiZpPT09IiI/IiI6ci50b1VwcGVyQ2FzZSgpK2AKCmAraStgCgpgK3RncihlLmdldFNoYWRlclNvdXJjZSh0KSl9ZnVuY3Rpb24gcmdyKGUsdCl7bGV0IHI9ZWdyKHQpO3JldHVybiJ2ZWM0ICIrZSsiKCB2ZWM0IHZhbHVlICkgeyByZXR1cm4gTGluZWFyVG8iK3JbMF0rclsxXSsiOyB9In1mdW5jdGlvbiBuZ3IoZSx0KXtsZXQgcjtzd2l0Y2godCl7Y2FzZSB1ZmU6cj0iTGluZWFyIjticmVhaztjYXNlIGhmZTpyPSJSZWluaGFyZCI7YnJlYWs7Y2FzZSBmZmU6cj0iT3B0aW1pemVkQ2luZW9uIjticmVhaztjYXNlIHBmZTpyPSJBQ0VTRmlsbWljIjticmVhaztjYXNlIGRmZTpyPSJDdXN0b20iO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW06IFVuc3VwcG9ydGVkIHRvbmVNYXBwaW5nOiIsdCkscj0iTGluZWFyIn1yZXR1cm4idmVjMyAiK2UrIiggdmVjMyBjb2xvciApIHsgcmV0dXJuICIrcisiVG9uZU1hcHBpbmcoIGNvbG9yICk7IH0ifWZ1bmN0aW9uIGlncihlKXtyZXR1cm5bZS5leHRlbnNpb25EZXJpdmF0aXZlc3x8ZS5lbnZNYXBDdWJlVVZ8fGUuYnVtcE1hcHx8ZS50YW5nZW50U3BhY2VOb3JtYWxNYXB8fGUuY2xlYXJjb2F0Tm9ybWFsTWFwfHxlLmZsYXRTaGFkaW5nfHxlLnNoYWRlcklEPT09InBoeXNpY2FsIj8iI2V4dGVuc2lvbiBHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMgOiBlbmFibGUiOiIiLChlLmV4dGVuc2lvbkZyYWdEZXB0aHx8ZS5sb2dhcml0aG1pY0RlcHRoQnVmZmVyKSYmZS5yZW5kZXJlckV4dGVuc2lvbkZyYWdEZXB0aD8iI2V4dGVuc2lvbiBHTF9FWFRfZnJhZ19kZXB0aCA6IGVuYWJsZSI6IiIsZS5leHRlbnNpb25EcmF3QnVmZmVycyYmZS5yZW5kZXJlckV4dGVuc2lvbkRyYXdCdWZmZXJzPyIjZXh0ZW5zaW9uIEdMX0VYVF9kcmF3X2J1ZmZlcnMgOiByZXF1aXJlIjoiIiwoZS5leHRlbnNpb25TaGFkZXJUZXh0dXJlTE9EfHxlLmVudk1hcHx8ZS50cmFuc21pc3Npb24pJiZlLnJlbmRlcmVyRXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxvZD8iI2V4dGVuc2lvbiBHTF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIDogZW5hYmxlIjoiIl0uZmlsdGVyKEhQKS5qb2luKGAKYCl9ZnVuY3Rpb24gb2dyKGUpe2xldCB0PVtdO2ZvcihsZXQgciBpbiBlKXtsZXQgbj1lW3JdO24hPT0hMSYmdC5wdXNoKCIjZGVmaW5lICIrcisiICIrbil9cmV0dXJuIHQuam9pbihgCmApfWZ1bmN0aW9uIGFncihlLHQpe2xldCByPXt9LG49ZS5nZXRQcm9ncmFtUGFyYW1ldGVyKHQsMzU3MjEpO2ZvcihsZXQgaT0wO2k8bjtpKyspe2xldCBvPWUuZ2V0QWN0aXZlQXR0cmliKHQsaSksYT1vLm5hbWUscz0xO28udHlwZT09PTM1Njc0JiYocz0yKSxvLnR5cGU9PT0zNTY3NSYmKHM9Myksby50eXBlPT09MzU2NzYmJihzPTQpLHJbYV09e3R5cGU6by50eXBlLGxvY2F0aW9uOmUuZ2V0QXR0cmliTG9jYXRpb24odCxhKSxsb2NhdGlvblNpemU6c319cmV0dXJuIHJ9ZnVuY3Rpb24gSFAoZSl7cmV0dXJuIGUhPT0iIn1mdW5jdGlvbiBHdWUoZSx0KXtyZXR1cm4gZS5yZXBsYWNlKC9OVU1fRElSX0xJR0hUUy9nLHQubnVtRGlyTGlnaHRzKS5yZXBsYWNlKC9OVU1fU1BPVF9MSUdIVFMvZyx0Lm51bVNwb3RMaWdodHMpLnJlcGxhY2UoL05VTV9SRUNUX0FSRUFfTElHSFRTL2csdC5udW1SZWN0QXJlYUxpZ2h0cykucmVwbGFjZSgvTlVNX1BPSU5UX0xJR0hUUy9nLHQubnVtUG9pbnRMaWdodHMpLnJlcGxhY2UoL05VTV9IRU1JX0xJR0hUUy9nLHQubnVtSGVtaUxpZ2h0cykucmVwbGFjZSgvTlVNX0RJUl9MSUdIVF9TSEFET1dTL2csdC5udW1EaXJMaWdodFNoYWRvd3MpLnJlcGxhY2UoL05VTV9TUE9UX0xJR0hUX1NIQURPV1MvZyx0Lm51bVNwb3RMaWdodFNoYWRvd3MpLnJlcGxhY2UoL05VTV9QT0lOVF9MSUdIVF9TSEFET1dTL2csdC5udW1Qb2ludExpZ2h0U2hhZG93cyl9ZnVuY3Rpb24gV3VlKGUsdCl7cmV0dXJuIGUucmVwbGFjZSgvTlVNX0NMSVBQSU5HX1BMQU5FUy9nLHQubnVtQ2xpcHBpbmdQbGFuZXMpLnJlcGxhY2UoL1VOSU9OX0NMSVBQSU5HX1BMQU5FUy9nLHQubnVtQ2xpcHBpbmdQbGFuZXMtdC5udW1DbGlwSW50ZXJzZWN0aW9uKX12YXIgc2dyPS9eWyBcdF0qI2luY2x1ZGUgKzwoW1x3XGQuL10rKT4vZ207ZnVuY3Rpb24gSnV0KGUpe3JldHVybiBlLnJlcGxhY2Uoc2dyLGxncil9ZnVuY3Rpb24gbGdyKGUsdCl7bGV0IHI9aHJbdF07aWYocj09PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoIkNhbiBub3QgcmVzb2x2ZSAjaW5jbHVkZSA8Iit0KyI+Iik7cmV0dXJuIEp1dChyKX12YXIgY2dyPS8jcHJhZ21hIHVucm9sbF9sb29wW1xzXSs/Zm9yIFwoIGludCBpIFw9IChcZCspXDsgaSA8IChcZCspXDsgaSBcK1wrIFwpIFx7KFtcc1xTXSs/KSg/PVx9KVx9L2csdWdyPS8jcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XHMrZm9yXHMqXChccyppbnRccytpXHMqPVxzKihcZCspXHMqO1xzKmlccyo8XHMqKFxkKylccyo7XHMqaVxzKlwrXCtccypcKVxzKnsoW1xzXFNdKz8pfVxzKyNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kL2c7ZnVuY3Rpb24gWXVlKGUpe3JldHVybiBlLnJlcGxhY2UodWdyLFpmZSkucmVwbGFjZShjZ3IsaGdyKX1mdW5jdGlvbiBoZ3IoZSx0LHIsbil7cmV0dXJuIGNvbnNvbGUud2FybigiV2ViR0xQcm9ncmFtOiAjcHJhZ21hIHVucm9sbF9sb29wIHNoYWRlciBzeW50YXggaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSAjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0IHN5bnRheCBpbnN0ZWFkLiIpLFpmZShlLHQscixuKX1mdW5jdGlvbiBaZmUoZSx0LHIsbil7bGV0IGk9IiI7Zm9yKGxldCBvPXBhcnNlSW50KHQpO288cGFyc2VJbnQocik7bysrKWkrPW4ucmVwbGFjZSgvXFtccyppXHMqXF0vZywiWyAiK28rIiBdIikucmVwbGFjZSgvVU5ST0xMRURfTE9PUF9JTkRFWC9nLG8pO3JldHVybiBpfWZ1bmN0aW9uIGp1ZShlKXtsZXQgdD0icHJlY2lzaW9uICIrZS5wcmVjaXNpb24rYCBmbG9hdDsKcHJlY2lzaW9uIGArZS5wcmVjaXNpb24rIiBpbnQ7IjtyZXR1cm4gZS5wcmVjaXNpb249PT0iaGlnaHAiP3QrPWAKI2RlZmluZSBISUdIX1BSRUNJU0lPTmA6ZS5wcmVjaXNpb249PT0ibWVkaXVtcCI/dCs9YAojZGVmaW5lIE1FRElVTV9QUkVDSVNJT05gOmUucHJlY2lzaW9uPT09Imxvd3AiJiYodCs9YAojZGVmaW5lIExPV19QUkVDSVNJT05gKSx0fWZ1bmN0aW9uIGZncihlKXtsZXQgdD0iU0hBRE9XTUFQX1RZUEVfQkFTSUMiO3JldHVybiBlLnNoYWRvd01hcFR5cGU9PT1DaHQ/dD0iU0hBRE9XTUFQX1RZUEVfUENGIjplLnNoYWRvd01hcFR5cGU9PT1VaGU/dD0iU0hBRE9XTUFQX1RZUEVfUENGX1NPRlQiOmUuc2hhZG93TWFwVHlwZT09PUYzJiYodD0iU0hBRE9XTUFQX1RZUEVfVlNNIiksdH1mdW5jdGlvbiBwZ3IoZSl7bGV0IHQ9IkVOVk1BUF9UWVBFX0NVQkUiO2lmKGUuZW52TWFwKXN3aXRjaChlLmVudk1hcE1vZGUpe2Nhc2UgaXg6Y2FzZSBveDp0PSJFTlZNQVBfVFlQRV9DVUJFIjticmVhaztjYXNlIHhNOmNhc2UgejY6dD0iRU5WTUFQX1RZUEVfQ1VCRV9VViI7YnJlYWt9cmV0dXJuIHR9ZnVuY3Rpb24gZGdyKGUpe2xldCB0PSJFTlZNQVBfTU9ERV9SRUZMRUNUSU9OIjtpZihlLmVudk1hcClzd2l0Y2goZS5lbnZNYXBNb2RlKXtjYXNlIG94OmNhc2UgejY6dD0iRU5WTUFQX01PREVfUkVGUkFDVElPTiI7YnJlYWt9cmV0dXJuIHR9ZnVuY3Rpb24gbWdyKGUpe2xldCB0PSJFTlZNQVBfQkxFTkRJTkdfTk9ORSI7aWYoZS5lbnZNYXApc3dpdGNoKGUuY29tYmluZSl7Y2FzZSBPNjp0PSJFTlZNQVBfQkxFTkRJTkdfTVVMVElQTFkiO2JyZWFrO2Nhc2UgbGZlOnQ9IkVOVk1BUF9CTEVORElOR19NSVgiO2JyZWFrO2Nhc2UgY2ZlOnQ9IkVOVk1BUF9CTEVORElOR19BREQiO2JyZWFrfXJldHVybiB0fWZ1bmN0aW9uIGdncihlLHQscixuKXtsZXQgaT1lLmdldENvbnRleHQoKSxvPXIuZGVmaW5lcyxhPXIudmVydGV4U2hhZGVyLHM9ci5mcmFnbWVudFNoYWRlcixsPWZncihyKSxjPXBncihyKSx1PWRncihyKSxoPW1ncihyKSxmPXIuaXNXZWJHTDI/IiI6aWdyKHIpLHA9b2dyKG8pLGQ9aS5jcmVhdGVQcm9ncmFtKCksZyxfLHk9ci5nbHNsVmVyc2lvbj8iI3ZlcnNpb24gIityLmdsc2xWZXJzaW9uK2AKYDoiIjtyLmlzUmF3U2hhZGVyTWF0ZXJpYWw/KGc9W3BdLmZpbHRlcihIUCkuam9pbihgCmApLGcubGVuZ3RoPjAmJihnKz1gCmApLF89W2YscF0uZmlsdGVyKEhQKS5qb2luKGAKYCksXy5sZW5ndGg+MCYmKF8rPWAKYCkpOihnPVtqdWUociksIiNkZWZpbmUgU0hBREVSX05BTUUgIityLnNoYWRlck5hbWUscCxyLmluc3RhbmNpbmc/IiNkZWZpbmUgVVNFX0lOU1RBTkNJTkciOiIiLHIuaW5zdGFuY2luZ0NvbG9yPyIjZGVmaW5lIFVTRV9JTlNUQU5DSU5HX0NPTE9SIjoiIixyLnN1cHBvcnRzVmVydGV4VGV4dHVyZXM/IiNkZWZpbmUgVkVSVEVYX1RFWFRVUkVTIjoiIiwiI2RlZmluZSBNQVhfQk9ORVMgIityLm1heEJvbmVzLHIudXNlRm9nJiZyLmZvZz8iI2RlZmluZSBVU0VfRk9HIjoiIixyLnVzZUZvZyYmci5mb2dFeHAyPyIjZGVmaW5lIEZPR19FWFAyIjoiIixyLm1hcD8iI2RlZmluZSBVU0VfTUFQIjoiIixyLmVudk1hcD8iI2RlZmluZSBVU0VfRU5WTUFQIjoiIixyLmVudk1hcD8iI2RlZmluZSAiK3U6IiIsci5saWdodE1hcD8iI2RlZmluZSBVU0VfTElHSFRNQVAiOiIiLHIuYW9NYXA/IiNkZWZpbmUgVVNFX0FPTUFQIjoiIixyLmVtaXNzaXZlTWFwPyIjZGVmaW5lIFVTRV9FTUlTU0lWRU1BUCI6IiIsci5idW1wTWFwPyIjZGVmaW5lIFVTRV9CVU1QTUFQIjoiIixyLm5vcm1hbE1hcD8iI2RlZmluZSBVU0VfTk9STUFMTUFQIjoiIixyLm5vcm1hbE1hcCYmci5vYmplY3RTcGFjZU5vcm1hbE1hcD8iI2RlZmluZSBPQkpFQ1RTUEFDRV9OT1JNQUxNQVAiOiIiLHIubm9ybWFsTWFwJiZyLnRhbmdlbnRTcGFjZU5vcm1hbE1hcD8iI2RlZmluZSBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQIjoiIixyLmNsZWFyY29hdE1hcD8iI2RlZmluZSBVU0VfQ0xFQVJDT0FUTUFQIjoiIixyLmNsZWFyY29hdFJvdWdobmVzc01hcD8iI2RlZmluZSBVU0VfQ0xFQVJDT0FUX1JPVUdITkVTU01BUCI6IiIsci5jbGVhcmNvYXROb3JtYWxNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVAiOiIiLHIuZGlzcGxhY2VtZW50TWFwJiZyLnN1cHBvcnRzVmVydGV4VGV4dHVyZXM/IiNkZWZpbmUgVVNFX0RJU1BMQUNFTUVOVE1BUCI6IiIsci5zcGVjdWxhck1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJNQVAiOiIiLHIuc3BlY3VsYXJJbnRlbnNpdHlNYXA/IiNkZWZpbmUgVVNFX1NQRUNVTEFSSU5URU5TSVRZTUFQIjoiIixyLnNwZWN1bGFyQ29sb3JNYXA/IiNkZWZpbmUgVVNFX1NQRUNVTEFSQ09MT1JNQVAiOiIiLHIucm91Z2huZXNzTWFwPyIjZGVmaW5lIFVTRV9ST1VHSE5FU1NNQVAiOiIiLHIubWV0YWxuZXNzTWFwPyIjZGVmaW5lIFVTRV9NRVRBTE5FU1NNQVAiOiIiLHIuYWxwaGFNYXA/IiNkZWZpbmUgVVNFX0FMUEhBTUFQIjoiIixyLnRyYW5zbWlzc2lvbj8iI2RlZmluZSBVU0VfVFJBTlNNSVNTSU9OIjoiIixyLnRyYW5zbWlzc2lvbk1hcD8iI2RlZmluZSBVU0VfVFJBTlNNSVNTSU9OTUFQIjoiIixyLnRoaWNrbmVzc01hcD8iI2RlZmluZSBVU0VfVEhJQ0tORVNTTUFQIjoiIixyLnNoZWVuQ29sb3JNYXA/IiNkZWZpbmUgVVNFX1NIRUVOQ09MT1JNQVAiOiIiLHIuc2hlZW5Sb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX1NIRUVOUk9VR0hORVNTTUFQIjoiIixyLnZlcnRleFRhbmdlbnRzPyIjZGVmaW5lIFVTRV9UQU5HRU5UIjoiIixyLnZlcnRleENvbG9ycz8iI2RlZmluZSBVU0VfQ09MT1IiOiIiLHIudmVydGV4QWxwaGFzPyIjZGVmaW5lIFVTRV9DT0xPUl9BTFBIQSI6IiIsci52ZXJ0ZXhVdnM/IiNkZWZpbmUgVVNFX1VWIjoiIixyLnV2c1ZlcnRleE9ubHk/IiNkZWZpbmUgVVZTX1ZFUlRFWF9PTkxZIjoiIixyLmZsYXRTaGFkaW5nPyIjZGVmaW5lIEZMQVRfU0hBREVEIjoiIixyLnNraW5uaW5nPyIjZGVmaW5lIFVTRV9TS0lOTklORyI6IiIsci51c2VWZXJ0ZXhUZXh0dXJlPyIjZGVmaW5lIEJPTkVfVEVYVFVSRSI6IiIsci5tb3JwaFRhcmdldHM/IiNkZWZpbmUgVVNFX01PUlBIVEFSR0VUUyI6IiIsci5tb3JwaE5vcm1hbHMmJnIuZmxhdFNoYWRpbmc9PT0hMT8iI2RlZmluZSBVU0VfTU9SUEhOT1JNQUxTIjoiIixyLm1vcnBoVGFyZ2V0cyYmci5pc1dlYkdMMj8iI2RlZmluZSBNT1JQSFRBUkdFVFNfVEVYVFVSRSI6IiIsci5tb3JwaFRhcmdldHMmJnIuaXNXZWJHTDI/IiNkZWZpbmUgTU9SUEhUQVJHRVRTX0NPVU5UICIrci5tb3JwaFRhcmdldHNDb3VudDoiIixyLmRvdWJsZVNpZGVkPyIjZGVmaW5lIERPVUJMRV9TSURFRCI6IiIsci5mbGlwU2lkZWQ/IiNkZWZpbmUgRkxJUF9TSURFRCI6IiIsci5zaGFkb3dNYXBFbmFibGVkPyIjZGVmaW5lIFVTRV9TSEFET1dNQVAiOiIiLHIuc2hhZG93TWFwRW5hYmxlZD8iI2RlZmluZSAiK2w6IiIsci5zaXplQXR0ZW51YXRpb24/IiNkZWZpbmUgVVNFX1NJWkVBVFRFTlVBVElPTiI6IiIsci5sb2dhcml0aG1pY0RlcHRoQnVmZmVyPyIjZGVmaW5lIFVTRV9MT0dERVBUSEJVRiI6IiIsci5sb2dhcml0aG1pY0RlcHRoQnVmZmVyJiZyLnJlbmRlcmVyRXh0ZW5zaW9uRnJhZ0RlcHRoPyIjZGVmaW5lIFVTRV9MT0dERVBUSEJVRl9FWFQiOiIiLCJ1bmlmb3JtIG1hdDQgbW9kZWxNYXRyaXg7IiwidW5pZm9ybSBtYXQ0IG1vZGVsVmlld01hdHJpeDsiLCJ1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDsiLCJ1bmlmb3JtIG1hdDQgdmlld01hdHJpeDsiLCJ1bmlmb3JtIG1hdDMgbm9ybWFsTWF0cml4OyIsInVuaWZvcm0gdmVjMyBjYW1lcmFQb3NpdGlvbjsiLCJ1bmlmb3JtIGJvb2wgaXNPcnRob2dyYXBoaWM7IiwiI2lmZGVmIFVTRV9JTlNUQU5DSU5HIiwiCWF0dHJpYnV0ZSBtYXQ0IGluc3RhbmNlTWF0cml4OyIsIiNlbmRpZiIsIiNpZmRlZiBVU0VfSU5TVEFOQ0lOR19DT0xPUiIsIglhdHRyaWJ1dGUgdmVjMyBpbnN0YW5jZUNvbG9yOyIsIiNlbmRpZiIsImF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uOyIsImF0dHJpYnV0ZSB2ZWMzIG5vcm1hbDsiLCJhdHRyaWJ1dGUgdmVjMiB1djsiLCIjaWZkZWYgVVNFX1RBTkdFTlQiLCIJYXR0cmlidXRlIHZlYzQgdGFuZ2VudDsiLCIjZW5kaWYiLCIjaWYgZGVmaW5lZCggVVNFX0NPTE9SX0FMUEhBICkiLCIJYXR0cmlidXRlIHZlYzQgY29sb3I7IiwiI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SICkiLCIJYXR0cmlidXRlIHZlYzMgY29sb3I7IiwiI2VuZGlmIiwiI2lmICggZGVmaW5lZCggVVNFX01PUlBIVEFSR0VUUyApICYmICEgZGVmaW5lZCggTU9SUEhUQVJHRVRTX1RFWFRVUkUgKSApIiwiCWF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0MDsiLCIJYXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQxOyIsIglhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDI7IiwiCWF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0MzsiLCIJI2lmZGVmIFVTRV9NT1JQSE5PUk1BTFMiLCIJCWF0dHJpYnV0ZSB2ZWMzIG1vcnBoTm9ybWFsMDsiLCIJCWF0dHJpYnV0ZSB2ZWMzIG1vcnBoTm9ybWFsMTsiLCIJCWF0dHJpYnV0ZSB2ZWMzIG1vcnBoTm9ybWFsMjsiLCIJCWF0dHJpYnV0ZSB2ZWMzIG1vcnBoTm9ybWFsMzsiLCIJI2Vsc2UiLCIJCWF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0NDsiLCIJCWF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0NTsiLCIJCWF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0NjsiLCIJCWF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0NzsiLCIJI2VuZGlmIiwiI2VuZGlmIiwiI2lmZGVmIFVTRV9TS0lOTklORyIsIglhdHRyaWJ1dGUgdmVjNCBza2luSW5kZXg7IiwiCWF0dHJpYnV0ZSB2ZWM0IHNraW5XZWlnaHQ7IiwiI2VuZGlmIixgCmBdLmZpbHRlcihIUCkuam9pbihgCmApLF89W2YsanVlKHIpLCIjZGVmaW5lIFNIQURFUl9OQU1FICIrci5zaGFkZXJOYW1lLHAsci51c2VGb2cmJnIuZm9nPyIjZGVmaW5lIFVTRV9GT0ciOiIiLHIudXNlRm9nJiZyLmZvZ0V4cDI/IiNkZWZpbmUgRk9HX0VYUDIiOiIiLHIubWFwPyIjZGVmaW5lIFVTRV9NQVAiOiIiLHIubWF0Y2FwPyIjZGVmaW5lIFVTRV9NQVRDQVAiOiIiLHIuZW52TWFwPyIjZGVmaW5lIFVTRV9FTlZNQVAiOiIiLHIuZW52TWFwPyIjZGVmaW5lICIrYzoiIixyLmVudk1hcD8iI2RlZmluZSAiK3U6IiIsci5lbnZNYXA/IiNkZWZpbmUgIitoOiIiLHIubGlnaHRNYXA/IiNkZWZpbmUgVVNFX0xJR0hUTUFQIjoiIixyLmFvTWFwPyIjZGVmaW5lIFVTRV9BT01BUCI6IiIsci5lbWlzc2l2ZU1hcD8iI2RlZmluZSBVU0VfRU1JU1NJVkVNQVAiOiIiLHIuYnVtcE1hcD8iI2RlZmluZSBVU0VfQlVNUE1BUCI6IiIsci5ub3JtYWxNYXA/IiNkZWZpbmUgVVNFX05PUk1BTE1BUCI6IiIsci5ub3JtYWxNYXAmJnIub2JqZWN0U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgT0JKRUNUU1BBQ0VfTk9STUFMTUFQIjoiIixyLm5vcm1hbE1hcCYmci50YW5nZW50U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgVEFOR0VOVFNQQUNFX05PUk1BTE1BUCI6IiIsci5jbGVhcmNvYXQ/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVCI6IiIsci5jbGVhcmNvYXRNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVE1BUCI6IiIsci5jbGVhcmNvYXRSb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVF9ST1VHSE5FU1NNQVAiOiIiLHIuY2xlYXJjb2F0Tm9ybWFsTWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQIjoiIixyLnNwZWN1bGFyTWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUk1BUCI6IiIsci5zcGVjdWxhckludGVuc2l0eU1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJJTlRFTlNJVFlNQVAiOiIiLHIuc3BlY3VsYXJDb2xvck1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJDT0xPUk1BUCI6IiIsci5yb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX1JPVUdITkVTU01BUCI6IiIsci5tZXRhbG5lc3NNYXA/IiNkZWZpbmUgVVNFX01FVEFMTkVTU01BUCI6IiIsci5hbHBoYU1hcD8iI2RlZmluZSBVU0VfQUxQSEFNQVAiOiIiLHIuYWxwaGFUZXN0PyIjZGVmaW5lIFVTRV9BTFBIQVRFU1QiOiIiLHIuc2hlZW4/IiNkZWZpbmUgVVNFX1NIRUVOIjoiIixyLnNoZWVuQ29sb3JNYXA/IiNkZWZpbmUgVVNFX1NIRUVOQ09MT1JNQVAiOiIiLHIuc2hlZW5Sb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX1NIRUVOUk9VR0hORVNTTUFQIjoiIixyLnRyYW5zbWlzc2lvbj8iI2RlZmluZSBVU0VfVFJBTlNNSVNTSU9OIjoiIixyLnRyYW5zbWlzc2lvbk1hcD8iI2RlZmluZSBVU0VfVFJBTlNNSVNTSU9OTUFQIjoiIixyLnRoaWNrbmVzc01hcD8iI2RlZmluZSBVU0VfVEhJQ0tORVNTTUFQIjoiIixyLmRlY29kZVZpZGVvVGV4dHVyZT8iI2RlZmluZSBERUNPREVfVklERU9fVEVYVFVSRSI6IiIsci52ZXJ0ZXhUYW5nZW50cz8iI2RlZmluZSBVU0VfVEFOR0VOVCI6IiIsci52ZXJ0ZXhDb2xvcnN8fHIuaW5zdGFuY2luZ0NvbG9yPyIjZGVmaW5lIFVTRV9DT0xPUiI6IiIsci52ZXJ0ZXhBbHBoYXM/IiNkZWZpbmUgVVNFX0NPTE9SX0FMUEhBIjoiIixyLnZlcnRleFV2cz8iI2RlZmluZSBVU0VfVVYiOiIiLHIudXZzVmVydGV4T25seT8iI2RlZmluZSBVVlNfVkVSVEVYX09OTFkiOiIiLHIuZ3JhZGllbnRNYXA/IiNkZWZpbmUgVVNFX0dSQURJRU5UTUFQIjoiIixyLmZsYXRTaGFkaW5nPyIjZGVmaW5lIEZMQVRfU0hBREVEIjoiIixyLmRvdWJsZVNpZGVkPyIjZGVmaW5lIERPVUJMRV9TSURFRCI6IiIsci5mbGlwU2lkZWQ/IiNkZWZpbmUgRkxJUF9TSURFRCI6IiIsci5zaGFkb3dNYXBFbmFibGVkPyIjZGVmaW5lIFVTRV9TSEFET1dNQVAiOiIiLHIuc2hhZG93TWFwRW5hYmxlZD8iI2RlZmluZSAiK2w6IiIsci5wcmVtdWx0aXBsaWVkQWxwaGE/IiNkZWZpbmUgUFJFTVVMVElQTElFRF9BTFBIQSI6IiIsci5waHlzaWNhbGx5Q29ycmVjdExpZ2h0cz8iI2RlZmluZSBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTIjoiIixyLmxvZ2FyaXRobWljRGVwdGhCdWZmZXI/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGIjoiIixyLmxvZ2FyaXRobWljRGVwdGhCdWZmZXImJnIucmVuZGVyZXJFeHRlbnNpb25GcmFnRGVwdGg/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGX0VYVCI6IiIsKHIuZXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxPRHx8ci5lbnZNYXApJiZyLnJlbmRlcmVyRXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxvZD8iI2RlZmluZSBURVhUVVJFX0xPRF9FWFQiOiIiLCJ1bmlmb3JtIG1hdDQgdmlld01hdHJpeDsiLCJ1bmlmb3JtIHZlYzMgY2FtZXJhUG9zaXRpb247IiwidW5pZm9ybSBib29sIGlzT3J0aG9ncmFwaGljOyIsci50b25lTWFwcGluZyE9PVpkPyIjZGVmaW5lIFRPTkVfTUFQUElORyI6IiIsci50b25lTWFwcGluZyE9PVpkP2hyLnRvbmVtYXBwaW5nX3BhcnNfZnJhZ21lbnQ6IiIsci50b25lTWFwcGluZyE9PVpkP25ncigidG9uZU1hcHBpbmciLHIudG9uZU1hcHBpbmcpOiIiLHIuZGl0aGVyaW5nPyIjZGVmaW5lIERJVEhFUklORyI6IiIsci5hbHBoYVdyaXRlPyIiOiIjZGVmaW5lIE9QQVFVRSIsaHIuZW5jb2RpbmdzX3BhcnNfZnJhZ21lbnQscmdyKCJsaW5lYXJUb091dHB1dFRleGVsIixyLm91dHB1dEVuY29kaW5nKSxyLmRlcHRoUGFja2luZz8iI2RlZmluZSBERVBUSF9QQUNLSU5HICIrci5kZXB0aFBhY2tpbmc6IiIsYApgXS5maWx0ZXIoSFApLmpvaW4oYApgKSksYT1KdXQoYSksYT1HdWUoYSxyKSxhPVd1ZShhLHIpLHM9SnV0KHMpLHM9R3VlKHMscikscz1XdWUocyxyKSxhPVl1ZShhKSxzPVl1ZShzKSxyLmlzV2ViR0wyJiZyLmlzUmF3U2hhZGVyTWF0ZXJpYWwhPT0hMCYmKHk9YCN2ZXJzaW9uIDMwMCBlcwpgLGc9WyJwcmVjaXNpb24gbWVkaXVtcCBzYW1wbGVyMkRBcnJheTsiLCIjZGVmaW5lIGF0dHJpYnV0ZSBpbiIsIiNkZWZpbmUgdmFyeWluZyBvdXQiLCIjZGVmaW5lIHRleHR1cmUyRCB0ZXh0dXJlIl0uam9pbihgCmApK2AKYCtnLF89WyIjZGVmaW5lIHZhcnlpbmcgaW4iLHIuZ2xzbFZlcnNpb249PT1LdXQ/IiI6ImxheW91dChsb2NhdGlvbiA9IDApIG91dCBoaWdocCB2ZWM0IHBjX2ZyYWdDb2xvcjsiLHIuZ2xzbFZlcnNpb249PT1LdXQ/IiI6IiNkZWZpbmUgZ2xfRnJhZ0NvbG9yIHBjX2ZyYWdDb2xvciIsIiNkZWZpbmUgZ2xfRnJhZ0RlcHRoRVhUIGdsX0ZyYWdEZXB0aCIsIiNkZWZpbmUgdGV4dHVyZTJEIHRleHR1cmUiLCIjZGVmaW5lIHRleHR1cmVDdWJlIHRleHR1cmUiLCIjZGVmaW5lIHRleHR1cmUyRFByb2ogdGV4dHVyZVByb2oiLCIjZGVmaW5lIHRleHR1cmUyRExvZEVYVCB0ZXh0dXJlTG9kIiwiI2RlZmluZSB0ZXh0dXJlMkRQcm9qTG9kRVhUIHRleHR1cmVQcm9qTG9kIiwiI2RlZmluZSB0ZXh0dXJlQ3ViZUxvZEVYVCB0ZXh0dXJlTG9kIiwiI2RlZmluZSB0ZXh0dXJlMkRHcmFkRVhUIHRleHR1cmVHcmFkIiwiI2RlZmluZSB0ZXh0dXJlMkRQcm9qR3JhZEVYVCB0ZXh0dXJlUHJvakdyYWQiLCIjZGVmaW5lIHRleHR1cmVDdWJlR3JhZEVYVCB0ZXh0dXJlR3JhZCJdLmpvaW4oYApgKStgCmArXyk7bGV0IHg9eStnK2EsYj15K18rcyxTPVV1ZShpLDM1NjMzLHgpLEM9VXVlKGksMzU2MzIsYik7aWYoaS5hdHRhY2hTaGFkZXIoZCxTKSxpLmF0dGFjaFNoYWRlcihkLEMpLHIuaW5kZXgwQXR0cmlidXRlTmFtZSE9PXZvaWQgMD9pLmJpbmRBdHRyaWJMb2NhdGlvbihkLDAsci5pbmRleDBBdHRyaWJ1dGVOYW1lKTpyLm1vcnBoVGFyZ2V0cz09PSEwJiZpLmJpbmRBdHRyaWJMb2NhdGlvbihkLDAsInBvc2l0aW9uIiksaS5saW5rUHJvZ3JhbShkKSxlLmRlYnVnLmNoZWNrU2hhZGVyRXJyb3JzKXtsZXQgTz1pLmdldFByb2dyYW1JbmZvTG9nKGQpLnRyaW0oKSxEPWkuZ2V0U2hhZGVySW5mb0xvZyhTKS50cmltKCksQj1pLmdldFNoYWRlckluZm9Mb2coQykudHJpbSgpLEk9ITAsTD0hMDtpZihpLmdldFByb2dyYW1QYXJhbWV0ZXIoZCwzNTcxNCk9PT0hMSl7ST0hMTtsZXQgUj1xdWUoaSxTLCJ2ZXJ0ZXgiKSxGPXF1ZShpLEMsImZyYWdtZW50Iik7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xQcm9ncmFtOiBTaGFkZXIgRXJyb3IgIitpLmdldEVycm9yKCkrIiAtIFZBTElEQVRFX1NUQVRVUyAiK2kuZ2V0UHJvZ3JhbVBhcmFtZXRlcihkLDM1NzE1KStgCgpQcm9ncmFtIEluZm8gTG9nOiBgK08rYApgK1IrYApgK0YpfWVsc2UgTyE9PSIiP2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xQcm9ncmFtOiBQcm9ncmFtIEluZm8gTG9nOiIsTyk6KEQ9PT0iInx8Qj09PSIiKSYmKEw9ITEpO0wmJih0aGlzLmRpYWdub3N0aWNzPXtydW5uYWJsZTpJLHByb2dyYW1Mb2c6Tyx2ZXJ0ZXhTaGFkZXI6e2xvZzpELHByZWZpeDpnfSxmcmFnbWVudFNoYWRlcjp7bG9nOkIscHJlZml4Ol99fSl9aS5kZWxldGVTaGFkZXIoUyksaS5kZWxldGVTaGFkZXIoQyk7bGV0IFA7dGhpcy5nZXRVbmlmb3Jtcz1mdW5jdGlvbigpe3JldHVybiBQPT09dm9pZCAwJiYoUD1uZXcgSDAoaSxkKSksUH07bGV0IGs7cmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlcz1mdW5jdGlvbigpe3JldHVybiBrPT09dm9pZCAwJiYoaz1hZ3IoaSxkKSksa30sdGhpcy5kZXN0cm95PWZ1bmN0aW9uKCl7bi5yZWxlYXNlU3RhdGVzT2ZQcm9ncmFtKHRoaXMpLGkuZGVsZXRlUHJvZ3JhbShkKSx0aGlzLnByb2dyYW09dm9pZCAwfSx0aGlzLm5hbWU9ci5zaGFkZXJOYW1lLHRoaXMuaWQ9UW1yKyssdGhpcy5jYWNoZUtleT10LHRoaXMudXNlZFRpbWVzPTEsdGhpcy5wcm9ncmFtPWQsdGhpcy52ZXJ0ZXhTaGFkZXI9Uyx0aGlzLmZyYWdtZW50U2hhZGVyPUMsdGhpc312YXIgX2dyPTAsUXV0PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zaGFkZXJDYWNoZT1uZXcgTWFwLHRoaXMubWF0ZXJpYWxDYWNoZT1uZXcgTWFwfXVwZGF0ZSh0KXtsZXQgcj10LnZlcnRleFNoYWRlcixuPXQuZnJhZ21lbnRTaGFkZXIsaT10aGlzLl9nZXRTaGFkZXJTdGFnZShyKSxvPXRoaXMuX2dldFNoYWRlclN0YWdlKG4pLGE9dGhpcy5fZ2V0U2hhZGVyQ2FjaGVGb3JNYXRlcmlhbCh0KTtyZXR1cm4gYS5oYXMoaSk9PT0hMSYmKGEuYWRkKGkpLGkudXNlZFRpbWVzKyspLGEuaGFzKG8pPT09ITEmJihhLmFkZChvKSxvLnVzZWRUaW1lcysrKSx0aGlzfXJlbW92ZSh0KXtsZXQgcj10aGlzLm1hdGVyaWFsQ2FjaGUuZ2V0KHQpO2ZvcihsZXQgbiBvZiByKW4udXNlZFRpbWVzLS0sbi51c2VkVGltZXM9PT0wJiZ0aGlzLnNoYWRlckNhY2hlLmRlbGV0ZShuKTtyZXR1cm4gdGhpcy5tYXRlcmlhbENhY2hlLmRlbGV0ZSh0KSx0aGlzfWdldFZlcnRleFNoYWRlcklEKHQpe3JldHVybiB0aGlzLl9nZXRTaGFkZXJTdGFnZSh0LnZlcnRleFNoYWRlcikuaWR9Z2V0RnJhZ21lbnRTaGFkZXJJRCh0KXtyZXR1cm4gdGhpcy5fZ2V0U2hhZGVyU3RhZ2UodC5mcmFnbWVudFNoYWRlcikuaWR9ZGlzcG9zZSgpe3RoaXMuc2hhZGVyQ2FjaGUuY2xlYXIoKSx0aGlzLm1hdGVyaWFsQ2FjaGUuY2xlYXIoKX1fZ2V0U2hhZGVyQ2FjaGVGb3JNYXRlcmlhbCh0KXtsZXQgcj10aGlzLm1hdGVyaWFsQ2FjaGU7cmV0dXJuIHIuaGFzKHQpPT09ITEmJnIuc2V0KHQsbmV3IFNldCksci5nZXQodCl9X2dldFNoYWRlclN0YWdlKHQpe2xldCByPXRoaXMuc2hhZGVyQ2FjaGU7aWYoci5oYXModCk9PT0hMSl7bGV0IG49bmV3IHRodDtyLnNldCh0LG4pfXJldHVybiByLmdldCh0KX19LHRodD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaWQ9X2dyKyssdGhpcy51c2VkVGltZXM9MH19O2Z1bmN0aW9uIHlncihlLHQscixuLGksbyxhKXtsZXQgcz1uZXcgWDMsbD1uZXcgUXV0LGM9W10sdT1pLmlzV2ViR0wyLGg9aS5sb2dhcml0aG1pY0RlcHRoQnVmZmVyLGY9aS5mbG9hdFZlcnRleFRleHR1cmVzLHA9aS5tYXhWZXJ0ZXhVbmlmb3JtcyxkPWkudmVydGV4VGV4dHVyZXMsZz1pLnByZWNpc2lvbixfPXtNZXNoRGVwdGhNYXRlcmlhbDoiZGVwdGgiLE1lc2hEaXN0YW5jZU1hdGVyaWFsOiJkaXN0YW5jZVJHQkEiLE1lc2hOb3JtYWxNYXRlcmlhbDoibm9ybWFsIixNZXNoQmFzaWNNYXRlcmlhbDoiYmFzaWMiLE1lc2hMYW1iZXJ0TWF0ZXJpYWw6ImxhbWJlcnQiLE1lc2hQaG9uZ01hdGVyaWFsOiJwaG9uZyIsTWVzaFRvb25NYXRlcmlhbDoidG9vbiIsTWVzaFN0YW5kYXJkTWF0ZXJpYWw6InBoeXNpY2FsIixNZXNoUGh5c2ljYWxNYXRlcmlhbDoicGh5c2ljYWwiLE1lc2hNYXRjYXBNYXRlcmlhbDoibWF0Y2FwIixMaW5lQmFzaWNNYXRlcmlhbDoiYmFzaWMiLExpbmVEYXNoZWRNYXRlcmlhbDoiZGFzaGVkIixQb2ludHNNYXRlcmlhbDoicG9pbnRzIixTaGFkb3dNYXRlcmlhbDoic2hhZG93IixTcHJpdGVNYXRlcmlhbDoic3ByaXRlIn07ZnVuY3Rpb24geShJKXtsZXQgUj1JLnNrZWxldG9uLmJvbmVzO2lmKGYpcmV0dXJuIDEwMjQ7e2xldCB6PU1hdGguZmxvb3IoKHAtMjApLzQpLFU9TWF0aC5taW4oeixSLmxlbmd0aCk7cmV0dXJuIFU8Ui5sZW5ndGg/KGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogU2tlbGV0b24gaGFzICIrUi5sZW5ndGgrIiBib25lcy4gVGhpcyBHUFUgc3VwcG9ydHMgIitVKyIuIiksMCk6VX19ZnVuY3Rpb24geChJLEwsUixGLHope2xldCBVPUYuZm9nLFc9SS5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP0YuZW52aXJvbm1lbnQ6bnVsbCxaPShJLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWw/cjp0KS5nZXQoSS5lbnZNYXB8fFcpLHJ0PV9bSS50eXBlXSxvdD16LmlzU2tpbm5lZE1lc2g/eSh6KTowO0kucHJlY2lzaW9uIT09bnVsbCYmKGc9aS5nZXRNYXhQcmVjaXNpb24oSS5wcmVjaXNpb24pLGchPT1JLnByZWNpc2lvbiYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW0uZ2V0UGFyYW1ldGVyczoiLEkucHJlY2lzaW9uLCJub3Qgc3VwcG9ydGVkLCB1c2luZyIsZywiaW5zdGVhZC4iKSk7bGV0IHN0LFN0LGJ0LE10O2lmKHJ0KXtsZXQgWD1haFtydF07c3Q9WC52ZXJ0ZXhTaGFkZXIsU3Q9WC5mcmFnbWVudFNoYWRlcn1lbHNlIHN0PUkudmVydGV4U2hhZGVyLFN0PUkuZnJhZ21lbnRTaGFkZXIsbC51cGRhdGUoSSksYnQ9bC5nZXRWZXJ0ZXhTaGFkZXJJRChJKSxNdD1sLmdldEZyYWdtZW50U2hhZGVySUQoSSk7bGV0IGx0PWUuZ2V0UmVuZGVyVGFyZ2V0KCksS3Q9SS5hbHBoYVRlc3Q+MCxfdD1JLmNsZWFyY29hdD4wO3JldHVybntpc1dlYkdMMjp1LHNoYWRlcklEOnJ0LHNoYWRlck5hbWU6SS50eXBlLHZlcnRleFNoYWRlcjpzdCxmcmFnbWVudFNoYWRlcjpTdCxkZWZpbmVzOkkuZGVmaW5lcyxjdXN0b21WZXJ0ZXhTaGFkZXJJRDpidCxjdXN0b21GcmFnbWVudFNoYWRlcklEOk10LGlzUmF3U2hhZGVyTWF0ZXJpYWw6SS5pc1Jhd1NoYWRlck1hdGVyaWFsPT09ITAsZ2xzbFZlcnNpb246SS5nbHNsVmVyc2lvbixwcmVjaXNpb246ZyxpbnN0YW5jaW5nOnouaXNJbnN0YW5jZWRNZXNoPT09ITAsaW5zdGFuY2luZ0NvbG9yOnouaXNJbnN0YW5jZWRNZXNoPT09ITAmJnouaW5zdGFuY2VDb2xvciE9PW51bGwsc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlczpkLG91dHB1dEVuY29kaW5nOmx0PT09bnVsbD9lLm91dHB1dEVuY29kaW5nOmx0LmlzWFJSZW5kZXJUYXJnZXQ9PT0hMD9sdC50ZXh0dXJlLmVuY29kaW5nOnRtLG1hcDohIUkubWFwLG1hdGNhcDohIUkubWF0Y2FwLGVudk1hcDohIVosZW52TWFwTW9kZTpaJiZaLm1hcHBpbmcsZW52TWFwQ3ViZVVWOiEhWiYmKFoubWFwcGluZz09PXhNfHxaLm1hcHBpbmc9PT16NiksbGlnaHRNYXA6ISFJLmxpZ2h0TWFwLGFvTWFwOiEhSS5hb01hcCxlbWlzc2l2ZU1hcDohIUkuZW1pc3NpdmVNYXAsYnVtcE1hcDohIUkuYnVtcE1hcCxub3JtYWxNYXA6ISFJLm5vcm1hbE1hcCxvYmplY3RTcGFjZU5vcm1hbE1hcDpJLm5vcm1hbE1hcFR5cGU9PT1EZmUsdGFuZ2VudFNwYWNlTm9ybWFsTWFwOkkubm9ybWFsTWFwVHlwZT09PXN4LGRlY29kZVZpZGVvVGV4dHVyZTohIUkubWFwJiZJLm1hcC5pc1ZpZGVvVGV4dHVyZT09PSEwJiZJLm1hcC5lbmNvZGluZz09PVluLGNsZWFyY29hdDpfdCxjbGVhcmNvYXRNYXA6X3QmJiEhSS5jbGVhcmNvYXRNYXAsY2xlYXJjb2F0Um91Z2huZXNzTWFwOl90JiYhIUkuY2xlYXJjb2F0Um91Z2huZXNzTWFwLGNsZWFyY29hdE5vcm1hbE1hcDpfdCYmISFJLmNsZWFyY29hdE5vcm1hbE1hcCxkaXNwbGFjZW1lbnRNYXA6ISFJLmRpc3BsYWNlbWVudE1hcCxyb3VnaG5lc3NNYXA6ISFJLnJvdWdobmVzc01hcCxtZXRhbG5lc3NNYXA6ISFJLm1ldGFsbmVzc01hcCxzcGVjdWxhck1hcDohIUkuc3BlY3VsYXJNYXAsc3BlY3VsYXJJbnRlbnNpdHlNYXA6ISFJLnNwZWN1bGFySW50ZW5zaXR5TWFwLHNwZWN1bGFyQ29sb3JNYXA6ISFJLnNwZWN1bGFyQ29sb3JNYXAsYWxwaGFNYXA6ISFJLmFscGhhTWFwLGFscGhhVGVzdDpLdCxhbHBoYVdyaXRlOkkuYWxwaGFXcml0ZXx8SS50cmFuc3BhcmVudCxncmFkaWVudE1hcDohIUkuZ3JhZGllbnRNYXAsc2hlZW46SS5zaGVlbj4wLHNoZWVuQ29sb3JNYXA6ISFJLnNoZWVuQ29sb3JNYXAsc2hlZW5Sb3VnaG5lc3NNYXA6ISFJLnNoZWVuUm91Z2huZXNzTWFwLHRyYW5zbWlzc2lvbjpJLnRyYW5zbWlzc2lvbj4wLHRyYW5zbWlzc2lvbk1hcDohIUkudHJhbnNtaXNzaW9uTWFwLHRoaWNrbmVzc01hcDohIUkudGhpY2tuZXNzTWFwLGNvbWJpbmU6SS5jb21iaW5lLHZlcnRleFRhbmdlbnRzOiEhSS5ub3JtYWxNYXAmJiEhei5nZW9tZXRyeSYmISF6Lmdlb21ldHJ5LmF0dHJpYnV0ZXMudGFuZ2VudCx2ZXJ0ZXhDb2xvcnM6SS52ZXJ0ZXhDb2xvcnMsdmVydGV4QWxwaGFzOkkudmVydGV4Q29sb3JzPT09ITAmJiEhei5nZW9tZXRyeSYmISF6Lmdlb21ldHJ5LmF0dHJpYnV0ZXMuY29sb3ImJnouZ2VvbWV0cnkuYXR0cmlidXRlcy5jb2xvci5pdGVtU2l6ZT09PTQsdmVydGV4VXZzOiEhSS5tYXB8fCEhSS5idW1wTWFwfHwhIUkubm9ybWFsTWFwfHwhIUkuc3BlY3VsYXJNYXB8fCEhSS5hbHBoYU1hcHx8ISFJLmVtaXNzaXZlTWFwfHwhIUkucm91Z2huZXNzTWFwfHwhIUkubWV0YWxuZXNzTWFwfHwhIUkuY2xlYXJjb2F0TWFwfHwhIUkuY2xlYXJjb2F0Um91Z2huZXNzTWFwfHwhIUkuY2xlYXJjb2F0Tm9ybWFsTWFwfHwhIUkuZGlzcGxhY2VtZW50TWFwfHwhIUkudHJhbnNtaXNzaW9uTWFwfHwhIUkudGhpY2tuZXNzTWFwfHwhIUkuc3BlY3VsYXJJbnRlbnNpdHlNYXB8fCEhSS5zcGVjdWxhckNvbG9yTWFwfHwhIUkuc2hlZW5Db2xvck1hcHx8ISFJLnNoZWVuUm91Z2huZXNzTWFwLHV2c1ZlcnRleE9ubHk6ISghIUkubWFwfHwhIUkuYnVtcE1hcHx8ISFJLm5vcm1hbE1hcHx8ISFJLnNwZWN1bGFyTWFwfHwhIUkuYWxwaGFNYXB8fCEhSS5lbWlzc2l2ZU1hcHx8ISFJLnJvdWdobmVzc01hcHx8ISFJLm1ldGFsbmVzc01hcHx8ISFJLmNsZWFyY29hdE5vcm1hbE1hcHx8SS50cmFuc21pc3Npb24+MHx8ISFJLnRyYW5zbWlzc2lvbk1hcHx8ISFJLnRoaWNrbmVzc01hcHx8ISFJLnNwZWN1bGFySW50ZW5zaXR5TWFwfHwhIUkuc3BlY3VsYXJDb2xvck1hcHx8SS5zaGVlbj4wfHwhIUkuc2hlZW5Db2xvck1hcHx8ISFJLnNoZWVuUm91Z2huZXNzTWFwKSYmISFJLmRpc3BsYWNlbWVudE1hcCxmb2c6ISFVLHVzZUZvZzpJLmZvZyxmb2dFeHAyOlUmJlUuaXNGb2dFeHAyLGZsYXRTaGFkaW5nOiEhSS5mbGF0U2hhZGluZyxzaXplQXR0ZW51YXRpb246SS5zaXplQXR0ZW51YXRpb24sbG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcjpoLHNraW5uaW5nOnouaXNTa2lubmVkTWVzaD09PSEwJiZvdD4wLG1heEJvbmVzOm90LHVzZVZlcnRleFRleHR1cmU6Zixtb3JwaFRhcmdldHM6ISF6Lmdlb21ldHJ5JiYhIXouZ2VvbWV0cnkubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uLG1vcnBoTm9ybWFsczohIXouZ2VvbWV0cnkmJiEhei5nZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMubm9ybWFsLG1vcnBoVGFyZ2V0c0NvdW50OiEhei5nZW9tZXRyeSYmISF6Lmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbj96Lmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbi5sZW5ndGg6MCxudW1EaXJMaWdodHM6TC5kaXJlY3Rpb25hbC5sZW5ndGgsbnVtUG9pbnRMaWdodHM6TC5wb2ludC5sZW5ndGgsbnVtU3BvdExpZ2h0czpMLnNwb3QubGVuZ3RoLG51bVJlY3RBcmVhTGlnaHRzOkwucmVjdEFyZWEubGVuZ3RoLG51bUhlbWlMaWdodHM6TC5oZW1pLmxlbmd0aCxudW1EaXJMaWdodFNoYWRvd3M6TC5kaXJlY3Rpb25hbFNoYWRvd01hcC5sZW5ndGgsbnVtUG9pbnRMaWdodFNoYWRvd3M6TC5wb2ludFNoYWRvd01hcC5sZW5ndGgsbnVtU3BvdExpZ2h0U2hhZG93czpMLnNwb3RTaGFkb3dNYXAubGVuZ3RoLG51bUNsaXBwaW5nUGxhbmVzOmEubnVtUGxhbmVzLG51bUNsaXBJbnRlcnNlY3Rpb246YS5udW1JbnRlcnNlY3Rpb24sZGl0aGVyaW5nOkkuZGl0aGVyaW5nLHNoYWRvd01hcEVuYWJsZWQ6ZS5zaGFkb3dNYXAuZW5hYmxlZCYmUi5sZW5ndGg+MCxzaGFkb3dNYXBUeXBlOmUuc2hhZG93TWFwLnR5cGUsdG9uZU1hcHBpbmc6SS50b25lTWFwcGVkP2UudG9uZU1hcHBpbmc6WmQscGh5c2ljYWxseUNvcnJlY3RMaWdodHM6ZS5waHlzaWNhbGx5Q29ycmVjdExpZ2h0cyxwcmVtdWx0aXBsaWVkQWxwaGE6SS5wcmVtdWx0aXBsaWVkQWxwaGEsZG91YmxlU2lkZWQ6SS5zaWRlPT09azEsZmxpcFNpZGVkOkkuc2lkZT09PUlpLGRlcHRoUGFja2luZzpJLmRlcHRoUGFja2luZyE9PXZvaWQgMD9JLmRlcHRoUGFja2luZzohMSxpbmRleDBBdHRyaWJ1dGVOYW1lOkkuaW5kZXgwQXR0cmlidXRlTmFtZSxleHRlbnNpb25EZXJpdmF0aXZlczpJLmV4dGVuc2lvbnMmJkkuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlcyxleHRlbnNpb25GcmFnRGVwdGg6SS5leHRlbnNpb25zJiZJLmV4dGVuc2lvbnMuZnJhZ0RlcHRoLGV4dGVuc2lvbkRyYXdCdWZmZXJzOkkuZXh0ZW5zaW9ucyYmSS5leHRlbnNpb25zLmRyYXdCdWZmZXJzLGV4dGVuc2lvblNoYWRlclRleHR1cmVMT0Q6SS5leHRlbnNpb25zJiZJLmV4dGVuc2lvbnMuc2hhZGVyVGV4dHVyZUxPRCxyZW5kZXJlckV4dGVuc2lvbkZyYWdEZXB0aDp1fHxuLmhhcygiRVhUX2ZyYWdfZGVwdGgiKSxyZW5kZXJlckV4dGVuc2lvbkRyYXdCdWZmZXJzOnV8fG4uaGFzKCJXRUJHTF9kcmF3X2J1ZmZlcnMiKSxyZW5kZXJlckV4dGVuc2lvblNoYWRlclRleHR1cmVMb2Q6dXx8bi5oYXMoIkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKSxjdXN0b21Qcm9ncmFtQ2FjaGVLZXk6SS5jdXN0b21Qcm9ncmFtQ2FjaGVLZXkoKX19ZnVuY3Rpb24gYihJKXtsZXQgTD1bXTtpZihJLnNoYWRlcklEP0wucHVzaChJLnNoYWRlcklEKTooTC5wdXNoKEkuY3VzdG9tVmVydGV4U2hhZGVySUQpLEwucHVzaChJLmN1c3RvbUZyYWdtZW50U2hhZGVySUQpKSxJLmRlZmluZXMhPT12b2lkIDApZm9yKGxldCBSIGluIEkuZGVmaW5lcylMLnB1c2goUiksTC5wdXNoKEkuZGVmaW5lc1tSXSk7cmV0dXJuIEkuaXNSYXdTaGFkZXJNYXRlcmlhbD09PSExJiYoUyhMLEkpLEMoTCxJKSxMLnB1c2goZS5vdXRwdXRFbmNvZGluZykpLEwucHVzaChJLmN1c3RvbVByb2dyYW1DYWNoZUtleSksTC5qb2luKCl9ZnVuY3Rpb24gUyhJLEwpe0kucHVzaChMLnByZWNpc2lvbiksSS5wdXNoKEwub3V0cHV0RW5jb2RpbmcpLEkucHVzaChMLmVudk1hcE1vZGUpLEkucHVzaChMLmNvbWJpbmUpLEkucHVzaChMLnZlcnRleFV2cyksSS5wdXNoKEwuZm9nRXhwMiksSS5wdXNoKEwuc2l6ZUF0dGVudWF0aW9uKSxJLnB1c2goTC5tYXhCb25lcyksSS5wdXNoKEwubW9ycGhUYXJnZXRzQ291bnQpLEkucHVzaChMLm51bURpckxpZ2h0cyksSS5wdXNoKEwubnVtUG9pbnRMaWdodHMpLEkucHVzaChMLm51bVNwb3RMaWdodHMpLEkucHVzaChMLm51bUhlbWlMaWdodHMpLEkucHVzaChMLm51bVJlY3RBcmVhTGlnaHRzKSxJLnB1c2goTC5udW1EaXJMaWdodFNoYWRvd3MpLEkucHVzaChMLm51bVBvaW50TGlnaHRTaGFkb3dzKSxJLnB1c2goTC5udW1TcG90TGlnaHRTaGFkb3dzKSxJLnB1c2goTC5zaGFkb3dNYXBUeXBlKSxJLnB1c2goTC50b25lTWFwcGluZyksSS5wdXNoKEwubnVtQ2xpcHBpbmdQbGFuZXMpLEkucHVzaChMLm51bUNsaXBJbnRlcnNlY3Rpb24pLEkucHVzaChMLmFscGhhV3JpdGUpfWZ1bmN0aW9uIEMoSSxMKXtzLmRpc2FibGVBbGwoKSxMLmlzV2ViR0wyJiZzLmVuYWJsZSgwKSxMLnN1cHBvcnRzVmVydGV4VGV4dHVyZXMmJnMuZW5hYmxlKDEpLEwuaW5zdGFuY2luZyYmcy5lbmFibGUoMiksTC5pbnN0YW5jaW5nQ29sb3ImJnMuZW5hYmxlKDMpLEwubWFwJiZzLmVuYWJsZSg0KSxMLm1hdGNhcCYmcy5lbmFibGUoNSksTC5lbnZNYXAmJnMuZW5hYmxlKDYpLEwuZW52TWFwQ3ViZVVWJiZzLmVuYWJsZSg3KSxMLmxpZ2h0TWFwJiZzLmVuYWJsZSg4KSxMLmFvTWFwJiZzLmVuYWJsZSg5KSxMLmVtaXNzaXZlTWFwJiZzLmVuYWJsZSgxMCksTC5idW1wTWFwJiZzLmVuYWJsZSgxMSksTC5ub3JtYWxNYXAmJnMuZW5hYmxlKDEyKSxMLm9iamVjdFNwYWNlTm9ybWFsTWFwJiZzLmVuYWJsZSgxMyksTC50YW5nZW50U3BhY2VOb3JtYWxNYXAmJnMuZW5hYmxlKDE0KSxMLmNsZWFyY29hdCYmcy5lbmFibGUoMTUpLEwuY2xlYXJjb2F0TWFwJiZzLmVuYWJsZSgxNiksTC5jbGVhcmNvYXRSb3VnaG5lc3NNYXAmJnMuZW5hYmxlKDE3KSxMLmNsZWFyY29hdE5vcm1hbE1hcCYmcy5lbmFibGUoMTgpLEwuZGlzcGxhY2VtZW50TWFwJiZzLmVuYWJsZSgxOSksTC5zcGVjdWxhck1hcCYmcy5lbmFibGUoMjApLEwucm91Z2huZXNzTWFwJiZzLmVuYWJsZSgyMSksTC5tZXRhbG5lc3NNYXAmJnMuZW5hYmxlKDIyKSxMLmdyYWRpZW50TWFwJiZzLmVuYWJsZSgyMyksTC5hbHBoYU1hcCYmcy5lbmFibGUoMjQpLEwuYWxwaGFUZXN0JiZzLmVuYWJsZSgyNSksTC52ZXJ0ZXhDb2xvcnMmJnMuZW5hYmxlKDI2KSxMLnZlcnRleEFscGhhcyYmcy5lbmFibGUoMjcpLEwudmVydGV4VXZzJiZzLmVuYWJsZSgyOCksTC52ZXJ0ZXhUYW5nZW50cyYmcy5lbmFibGUoMjkpLEwudXZzVmVydGV4T25seSYmcy5lbmFibGUoMzApLEwuZm9nJiZzLmVuYWJsZSgzMSksSS5wdXNoKHMubWFzaykscy5kaXNhYmxlQWxsKCksTC51c2VGb2cmJnMuZW5hYmxlKDApLEwuZmxhdFNoYWRpbmcmJnMuZW5hYmxlKDEpLEwubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlciYmcy5lbmFibGUoMiksTC5za2lubmluZyYmcy5lbmFibGUoMyksTC51c2VWZXJ0ZXhUZXh0dXJlJiZzLmVuYWJsZSg0KSxMLm1vcnBoVGFyZ2V0cyYmcy5lbmFibGUoNSksTC5tb3JwaE5vcm1hbHMmJnMuZW5hYmxlKDYpLEwucHJlbXVsdGlwbGllZEFscGhhJiZzLmVuYWJsZSg3KSxMLnNoYWRvd01hcEVuYWJsZWQmJnMuZW5hYmxlKDgpLEwucGh5c2ljYWxseUNvcnJlY3RMaWdodHMmJnMuZW5hYmxlKDkpLEwuZG91YmxlU2lkZWQmJnMuZW5hYmxlKDEwKSxMLmZsaXBTaWRlZCYmcy5lbmFibGUoMTEpLEwuZGVwdGhQYWNraW5nJiZzLmVuYWJsZSgxMiksTC5kaXRoZXJpbmcmJnMuZW5hYmxlKDEzKSxMLnNwZWN1bGFySW50ZW5zaXR5TWFwJiZzLmVuYWJsZSgxNCksTC5zcGVjdWxhckNvbG9yTWFwJiZzLmVuYWJsZSgxNSksTC50cmFuc21pc3Npb24mJnMuZW5hYmxlKDE2KSxMLnRyYW5zbWlzc2lvbk1hcCYmcy5lbmFibGUoMTcpLEwudGhpY2tuZXNzTWFwJiZzLmVuYWJsZSgxOCksTC5zaGVlbiYmcy5lbmFibGUoMTkpLEwuc2hlZW5Db2xvck1hcCYmcy5lbmFibGUoMjApLEwuc2hlZW5Sb3VnaG5lc3NNYXAmJnMuZW5hYmxlKDIxKSxMLmRlY29kZVZpZGVvVGV4dHVyZSYmcy5lbmFibGUoMjIpLEkucHVzaChzLm1hc2spfWZ1bmN0aW9uIFAoSSl7bGV0IEw9X1tJLnR5cGVdLFI7aWYoTCl7bGV0IEY9YWhbTF07Uj1WZmUuY2xvbmUoRi51bmlmb3Jtcyl9ZWxzZSBSPUkudW5pZm9ybXM7cmV0dXJuIFJ9ZnVuY3Rpb24gayhJLEwpe2xldCBSO2ZvcihsZXQgRj0wLHo9Yy5sZW5ndGg7Rjx6O0YrKyl7bGV0IFU9Y1tGXTtpZihVLmNhY2hlS2V5PT09TCl7Uj1VLCsrUi51c2VkVGltZXM7YnJlYWt9fXJldHVybiBSPT09dm9pZCAwJiYoUj1uZXcgZ2dyKGUsTCxJLG8pLGMucHVzaChSKSksUn1mdW5jdGlvbiBPKEkpe2lmKC0tSS51c2VkVGltZXM9PT0wKXtsZXQgTD1jLmluZGV4T2YoSSk7Y1tMXT1jW2MubGVuZ3RoLTFdLGMucG9wKCksSS5kZXN0cm95KCl9fWZ1bmN0aW9uIEQoSSl7bC5yZW1vdmUoSSl9ZnVuY3Rpb24gQigpe2wuZGlzcG9zZSgpfXJldHVybntnZXRQYXJhbWV0ZXJzOngsZ2V0UHJvZ3JhbUNhY2hlS2V5OmIsZ2V0VW5pZm9ybXM6UCxhY3F1aXJlUHJvZ3JhbTprLHJlbGVhc2VQcm9ncmFtOk8scmVsZWFzZVNoYWRlckNhY2hlOkQscHJvZ3JhbXM6YyxkaXNwb3NlOkJ9fWZ1bmN0aW9uIHZncigpe2xldCBlPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHQobyl7bGV0IGE9ZS5nZXQobyk7cmV0dXJuIGE9PT12b2lkIDAmJihhPXt9LGUuc2V0KG8sYSkpLGF9ZnVuY3Rpb24gcihvKXtlLmRlbGV0ZShvKX1mdW5jdGlvbiBuKG8sYSxzKXtlLmdldChvKVthXT1zfWZ1bmN0aW9uIGkoKXtlPW5ldyBXZWFrTWFwfXJldHVybntnZXQ6dCxyZW1vdmU6cix1cGRhdGU6bixkaXNwb3NlOml9fWZ1bmN0aW9uIHhncihlLHQpe3JldHVybiBlLmdyb3VwT3JkZXIhPT10Lmdyb3VwT3JkZXI/ZS5ncm91cE9yZGVyLXQuZ3JvdXBPcmRlcjplLnJlbmRlck9yZGVyIT09dC5yZW5kZXJPcmRlcj9lLnJlbmRlck9yZGVyLXQucmVuZGVyT3JkZXI6ZS5tYXRlcmlhbC5pZCE9PXQubWF0ZXJpYWwuaWQ/ZS5tYXRlcmlhbC5pZC10Lm1hdGVyaWFsLmlkOmUueiE9PXQuej9lLnotdC56OmUuaWQtdC5pZH1mdW5jdGlvbiBYdWUoZSx0KXtyZXR1cm4gZS5ncm91cE9yZGVyIT09dC5ncm91cE9yZGVyP2UuZ3JvdXBPcmRlci10Lmdyb3VwT3JkZXI6ZS5yZW5kZXJPcmRlciE9PXQucmVuZGVyT3JkZXI/ZS5yZW5kZXJPcmRlci10LnJlbmRlck9yZGVyOmUueiE9PXQuej90LnotZS56OmUuaWQtdC5pZH1mdW5jdGlvbiAkdWUoKXtsZXQgZT1bXSx0PTAscj1bXSxuPVtdLGk9W107ZnVuY3Rpb24gbygpe3Q9MCxyLmxlbmd0aD0wLG4ubGVuZ3RoPTAsaS5sZW5ndGg9MH1mdW5jdGlvbiBhKGgsZixwLGQsZyxfKXtsZXQgeT1lW3RdO3JldHVybiB5PT09dm9pZCAwPyh5PXtpZDpoLmlkLG9iamVjdDpoLGdlb21ldHJ5OmYsbWF0ZXJpYWw6cCxncm91cE9yZGVyOmQscmVuZGVyT3JkZXI6aC5yZW5kZXJPcmRlcix6OmcsZ3JvdXA6X30sZVt0XT15KTooeS5pZD1oLmlkLHkub2JqZWN0PWgseS5nZW9tZXRyeT1mLHkubWF0ZXJpYWw9cCx5Lmdyb3VwT3JkZXI9ZCx5LnJlbmRlck9yZGVyPWgucmVuZGVyT3JkZXIseS56PWcseS5ncm91cD1fKSx0KysseX1mdW5jdGlvbiBzKGgsZixwLGQsZyxfKXtsZXQgeT1hKGgsZixwLGQsZyxfKTtwLnRyYW5zbWlzc2lvbj4wP24ucHVzaCh5KTpwLnRyYW5zcGFyZW50PT09ITA/aS5wdXNoKHkpOnIucHVzaCh5KX1mdW5jdGlvbiBsKGgsZixwLGQsZyxfKXtsZXQgeT1hKGgsZixwLGQsZyxfKTtwLnRyYW5zbWlzc2lvbj4wP24udW5zaGlmdCh5KTpwLnRyYW5zcGFyZW50PT09ITA/aS51bnNoaWZ0KHkpOnIudW5zaGlmdCh5KX1mdW5jdGlvbiBjKGgsZil7ci5sZW5ndGg+MSYmci5zb3J0KGh8fHhnciksbi5sZW5ndGg+MSYmbi5zb3J0KGZ8fFh1ZSksaS5sZW5ndGg+MSYmaS5zb3J0KGZ8fFh1ZSl9ZnVuY3Rpb24gdSgpe2ZvcihsZXQgaD10LGY9ZS5sZW5ndGg7aDxmO2grKyl7bGV0IHA9ZVtoXTtpZihwLmlkPT09bnVsbClicmVhaztwLmlkPW51bGwscC5vYmplY3Q9bnVsbCxwLmdlb21ldHJ5PW51bGwscC5tYXRlcmlhbD1udWxsLHAuZ3JvdXA9bnVsbH19cmV0dXJue29wYXF1ZTpyLHRyYW5zbWlzc2l2ZTpuLHRyYW5zcGFyZW50OmksaW5pdDpvLHB1c2g6cyx1bnNoaWZ0OmwsZmluaXNoOnUsc29ydDpjfX1mdW5jdGlvbiBiZ3IoKXtsZXQgZT1uZXcgV2Vha01hcDtmdW5jdGlvbiB0KG4saSl7bGV0IG87cmV0dXJuIGUuaGFzKG4pPT09ITE/KG89bmV3ICR1ZSxlLnNldChuLFtvXSkpOmk+PWUuZ2V0KG4pLmxlbmd0aD8obz1uZXcgJHVlLGUuZ2V0KG4pLnB1c2gobykpOm89ZS5nZXQobilbaV0sb31mdW5jdGlvbiByKCl7ZT1uZXcgV2Vha01hcH1yZXR1cm57Z2V0OnQsZGlzcG9zZTpyfX1mdW5jdGlvbiB3Z3IoKXtsZXQgZT17fTtyZXR1cm57Z2V0OmZ1bmN0aW9uKHQpe2lmKGVbdC5pZF0hPT12b2lkIDApcmV0dXJuIGVbdC5pZF07bGV0IHI7c3dpdGNoKHQudHlwZSl7Y2FzZSJEaXJlY3Rpb25hbExpZ2h0IjpyPXtkaXJlY3Rpb246bmV3IGosY29sb3I6bmV3IG5lfTticmVhaztjYXNlIlNwb3RMaWdodCI6cj17cG9zaXRpb246bmV3IGosZGlyZWN0aW9uOm5ldyBqLGNvbG9yOm5ldyBuZSxkaXN0YW5jZTowLGNvbmVDb3M6MCxwZW51bWJyYUNvczowLGRlY2F5OjB9O2JyZWFrO2Nhc2UiUG9pbnRMaWdodCI6cj17cG9zaXRpb246bmV3IGosY29sb3I6bmV3IG5lLGRpc3RhbmNlOjAsZGVjYXk6MH07YnJlYWs7Y2FzZSJIZW1pc3BoZXJlTGlnaHQiOnI9e2RpcmVjdGlvbjpuZXcgaixza3lDb2xvcjpuZXcgbmUsZ3JvdW5kQ29sb3I6bmV3IG5lfTticmVhaztjYXNlIlJlY3RBcmVhTGlnaHQiOnI9e2NvbG9yOm5ldyBuZSxwb3NpdGlvbjpuZXcgaixoYWxmV2lkdGg6bmV3IGosaGFsZkhlaWdodDpuZXcgan07YnJlYWt9cmV0dXJuIGVbdC5pZF09cixyfX19ZnVuY3Rpb24gU2dyKCl7bGV0IGU9e307cmV0dXJue2dldDpmdW5jdGlvbih0KXtpZihlW3QuaWRdIT09dm9pZCAwKXJldHVybiBlW3QuaWRdO2xldCByO3N3aXRjaCh0LnR5cGUpe2Nhc2UiRGlyZWN0aW9uYWxMaWdodCI6cj17c2hhZG93QmlhczowLHNoYWRvd05vcm1hbEJpYXM6MCxzaGFkb3dSYWRpdXM6MSxzaGFkb3dNYXBTaXplOm5ldyBMdH07YnJlYWs7Y2FzZSJTcG90TGlnaHQiOnI9e3NoYWRvd0JpYXM6MCxzaGFkb3dOb3JtYWxCaWFzOjAsc2hhZG93UmFkaXVzOjEsc2hhZG93TWFwU2l6ZTpuZXcgTHR9O2JyZWFrO2Nhc2UiUG9pbnRMaWdodCI6cj17c2hhZG93QmlhczowLHNoYWRvd05vcm1hbEJpYXM6MCxzaGFkb3dSYWRpdXM6MSxzaGFkb3dNYXBTaXplOm5ldyBMdCxzaGFkb3dDYW1lcmFOZWFyOjEsc2hhZG93Q2FtZXJhRmFyOjFlM307YnJlYWt9cmV0dXJuIGVbdC5pZF09cixyfX19dmFyIE1ncj0wO2Z1bmN0aW9uIEVncihlLHQpe3JldHVybih0LmNhc3RTaGFkb3c/MTowKS0oZS5jYXN0U2hhZG93PzE6MCl9ZnVuY3Rpb24gVGdyKGUsdCl7bGV0IHI9bmV3IHdncixuPVNncigpLGk9e3ZlcnNpb246MCxoYXNoOntkaXJlY3Rpb25hbExlbmd0aDotMSxwb2ludExlbmd0aDotMSxzcG90TGVuZ3RoOi0xLHJlY3RBcmVhTGVuZ3RoOi0xLGhlbWlMZW5ndGg6LTEsbnVtRGlyZWN0aW9uYWxTaGFkb3dzOi0xLG51bVBvaW50U2hhZG93czotMSxudW1TcG90U2hhZG93czotMX0sYW1iaWVudDpbMCwwLDBdLHByb2JlOltdLGRpcmVjdGlvbmFsOltdLGRpcmVjdGlvbmFsU2hhZG93OltdLGRpcmVjdGlvbmFsU2hhZG93TWFwOltdLGRpcmVjdGlvbmFsU2hhZG93TWF0cml4OltdLHNwb3Q6W10sc3BvdFNoYWRvdzpbXSxzcG90U2hhZG93TWFwOltdLHNwb3RTaGFkb3dNYXRyaXg6W10scmVjdEFyZWE6W10scmVjdEFyZWFMVEMxOm51bGwscmVjdEFyZWFMVEMyOm51bGwscG9pbnQ6W10scG9pbnRTaGFkb3c6W10scG9pbnRTaGFkb3dNYXA6W10scG9pbnRTaGFkb3dNYXRyaXg6W10saGVtaTpbXX07Zm9yKGxldCB1PTA7dTw5O3UrKylpLnByb2JlLnB1c2gobmV3IGopO2xldCBvPW5ldyBqLGE9bmV3IE1lLHM9bmV3IE1lO2Z1bmN0aW9uIGwodSxoKXtsZXQgZj0wLHA9MCxkPTA7Zm9yKGxldCBEPTA7RDw5O0QrKylpLnByb2JlW0RdLnNldCgwLDAsMCk7bGV0IGc9MCxfPTAseT0wLHg9MCxiPTAsUz0wLEM9MCxQPTA7dS5zb3J0KEVncik7bGV0IGs9aCE9PSEwP01hdGguUEk6MTtmb3IobGV0IEQ9MCxCPXUubGVuZ3RoO0Q8QjtEKyspe2xldCBJPXVbRF0sTD1JLmNvbG9yLFI9SS5pbnRlbnNpdHksRj1JLmRpc3RhbmNlLHo9SS5zaGFkb3cmJkkuc2hhZG93Lm1hcD9JLnNoYWRvdy5tYXAudGV4dHVyZTpudWxsO2lmKEkuaXNBbWJpZW50TGlnaHQpZis9TC5yKlIqayxwKz1MLmcqUiprLGQrPUwuYipSKms7ZWxzZSBpZihJLmlzTGlnaHRQcm9iZSlmb3IobGV0IFU9MDtVPDk7VSsrKWkucHJvYmVbVV0uYWRkU2NhbGVkVmVjdG9yKEkuc2guY29lZmZpY2llbnRzW1VdLFIpO2Vsc2UgaWYoSS5pc0RpcmVjdGlvbmFsTGlnaHQpe2xldCBVPXIuZ2V0KEkpO2lmKFUuY29sb3IuY29weShJLmNvbG9yKS5tdWx0aXBseVNjYWxhcihJLmludGVuc2l0eSprKSxJLmNhc3RTaGFkb3cpe2xldCBXPUkuc2hhZG93LFo9bi5nZXQoSSk7Wi5zaGFkb3dCaWFzPVcuYmlhcyxaLnNoYWRvd05vcm1hbEJpYXM9Vy5ub3JtYWxCaWFzLFouc2hhZG93UmFkaXVzPVcucmFkaXVzLFouc2hhZG93TWFwU2l6ZT1XLm1hcFNpemUsaS5kaXJlY3Rpb25hbFNoYWRvd1tnXT1aLGkuZGlyZWN0aW9uYWxTaGFkb3dNYXBbZ109eixpLmRpcmVjdGlvbmFsU2hhZG93TWF0cml4W2ddPUkuc2hhZG93Lm1hdHJpeCxTKyt9aS5kaXJlY3Rpb25hbFtnXT1VLGcrK31lbHNlIGlmKEkuaXNTcG90TGlnaHQpe2xldCBVPXIuZ2V0KEkpO2lmKFUucG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKEkubWF0cml4V29ybGQpLFUuY29sb3IuY29weShMKS5tdWx0aXBseVNjYWxhcihSKmspLFUuZGlzdGFuY2U9RixVLmNvbmVDb3M9TWF0aC5jb3MoSS5hbmdsZSksVS5wZW51bWJyYUNvcz1NYXRoLmNvcyhJLmFuZ2xlKigxLUkucGVudW1icmEpKSxVLmRlY2F5PUkuZGVjYXksSS5jYXN0U2hhZG93KXtsZXQgVz1JLnNoYWRvdyxaPW4uZ2V0KEkpO1ouc2hhZG93Qmlhcz1XLmJpYXMsWi5zaGFkb3dOb3JtYWxCaWFzPVcubm9ybWFsQmlhcyxaLnNoYWRvd1JhZGl1cz1XLnJhZGl1cyxaLnNoYWRvd01hcFNpemU9Vy5tYXBTaXplLGkuc3BvdFNoYWRvd1t5XT1aLGkuc3BvdFNoYWRvd01hcFt5XT16LGkuc3BvdFNoYWRvd01hdHJpeFt5XT1JLnNoYWRvdy5tYXRyaXgsUCsrfWkuc3BvdFt5XT1VLHkrK31lbHNlIGlmKEkuaXNSZWN0QXJlYUxpZ2h0KXtsZXQgVT1yLmdldChJKTtVLmNvbG9yLmNvcHkoTCkubXVsdGlwbHlTY2FsYXIoUiksVS5oYWxmV2lkdGguc2V0KEkud2lkdGgqLjUsMCwwKSxVLmhhbGZIZWlnaHQuc2V0KDAsSS5oZWlnaHQqLjUsMCksaS5yZWN0QXJlYVt4XT1VLHgrK31lbHNlIGlmKEkuaXNQb2ludExpZ2h0KXtsZXQgVT1yLmdldChJKTtpZihVLmNvbG9yLmNvcHkoSS5jb2xvcikubXVsdGlwbHlTY2FsYXIoSS5pbnRlbnNpdHkqayksVS5kaXN0YW5jZT1JLmRpc3RhbmNlLFUuZGVjYXk9SS5kZWNheSxJLmNhc3RTaGFkb3cpe2xldCBXPUkuc2hhZG93LFo9bi5nZXQoSSk7Wi5zaGFkb3dCaWFzPVcuYmlhcyxaLnNoYWRvd05vcm1hbEJpYXM9Vy5ub3JtYWxCaWFzLFouc2hhZG93UmFkaXVzPVcucmFkaXVzLFouc2hhZG93TWFwU2l6ZT1XLm1hcFNpemUsWi5zaGFkb3dDYW1lcmFOZWFyPVcuY2FtZXJhLm5lYXIsWi5zaGFkb3dDYW1lcmFGYXI9Vy5jYW1lcmEuZmFyLGkucG9pbnRTaGFkb3dbX109WixpLnBvaW50U2hhZG93TWFwW19dPXosaS5wb2ludFNoYWRvd01hdHJpeFtfXT1JLnNoYWRvdy5tYXRyaXgsQysrfWkucG9pbnRbX109VSxfKyt9ZWxzZSBpZihJLmlzSGVtaXNwaGVyZUxpZ2h0KXtsZXQgVT1yLmdldChJKTtVLnNreUNvbG9yLmNvcHkoSS5jb2xvcikubXVsdGlwbHlTY2FsYXIoUiprKSxVLmdyb3VuZENvbG9yLmNvcHkoSS5ncm91bmRDb2xvcikubXVsdGlwbHlTY2FsYXIoUiprKSxpLmhlbWlbYl09VSxiKyt9fXg+MCYmKHQuaXNXZWJHTDJ8fGUuaGFzKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKT09PSEwPyhpLnJlY3RBcmVhTFRDMT1yZS5MVENfRkxPQVRfMSxpLnJlY3RBcmVhTFRDMj1yZS5MVENfRkxPQVRfMik6ZS5oYXMoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik9PT0hMD8oaS5yZWN0QXJlYUxUQzE9cmUuTFRDX0hBTEZfMSxpLnJlY3RBcmVhTFRDMj1yZS5MVENfSEFMRl8yKTpjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBVbmFibGUgdG8gdXNlIFJlY3RBcmVhTGlnaHQuIE1pc3NpbmcgV2ViR0wgZXh0ZW5zaW9ucy4iKSksaS5hbWJpZW50WzBdPWYsaS5hbWJpZW50WzFdPXAsaS5hbWJpZW50WzJdPWQ7bGV0IE89aS5oYXNoOyhPLmRpcmVjdGlvbmFsTGVuZ3RoIT09Z3x8Ty5wb2ludExlbmd0aCE9PV98fE8uc3BvdExlbmd0aCE9PXl8fE8ucmVjdEFyZWFMZW5ndGghPT14fHxPLmhlbWlMZW5ndGghPT1ifHxPLm51bURpcmVjdGlvbmFsU2hhZG93cyE9PVN8fE8ubnVtUG9pbnRTaGFkb3dzIT09Q3x8Ty5udW1TcG90U2hhZG93cyE9PVApJiYoaS5kaXJlY3Rpb25hbC5sZW5ndGg9ZyxpLnNwb3QubGVuZ3RoPXksaS5yZWN0QXJlYS5sZW5ndGg9eCxpLnBvaW50Lmxlbmd0aD1fLGkuaGVtaS5sZW5ndGg9YixpLmRpcmVjdGlvbmFsU2hhZG93Lmxlbmd0aD1TLGkuZGlyZWN0aW9uYWxTaGFkb3dNYXAubGVuZ3RoPVMsaS5wb2ludFNoYWRvdy5sZW5ndGg9QyxpLnBvaW50U2hhZG93TWFwLmxlbmd0aD1DLGkuc3BvdFNoYWRvdy5sZW5ndGg9UCxpLnNwb3RTaGFkb3dNYXAubGVuZ3RoPVAsaS5kaXJlY3Rpb25hbFNoYWRvd01hdHJpeC5sZW5ndGg9UyxpLnBvaW50U2hhZG93TWF0cml4Lmxlbmd0aD1DLGkuc3BvdFNoYWRvd01hdHJpeC5sZW5ndGg9UCxPLmRpcmVjdGlvbmFsTGVuZ3RoPWcsTy5wb2ludExlbmd0aD1fLE8uc3BvdExlbmd0aD15LE8ucmVjdEFyZWFMZW5ndGg9eCxPLmhlbWlMZW5ndGg9YixPLm51bURpcmVjdGlvbmFsU2hhZG93cz1TLE8ubnVtUG9pbnRTaGFkb3dzPUMsTy5udW1TcG90U2hhZG93cz1QLGkudmVyc2lvbj1NZ3IrKyl9ZnVuY3Rpb24gYyh1LGgpe2xldCBmPTAscD0wLGQ9MCxnPTAsXz0wLHk9aC5tYXRyaXhXb3JsZEludmVyc2U7Zm9yKGxldCB4PTAsYj11Lmxlbmd0aDt4PGI7eCsrKXtsZXQgUz11W3hdO2lmKFMuaXNEaXJlY3Rpb25hbExpZ2h0KXtsZXQgQz1pLmRpcmVjdGlvbmFsW2ZdO0MuZGlyZWN0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihTLm1hdHJpeFdvcmxkKSxvLnNldEZyb21NYXRyaXhQb3NpdGlvbihTLnRhcmdldC5tYXRyaXhXb3JsZCksQy5kaXJlY3Rpb24uc3ViKG8pLEMuZGlyZWN0aW9uLnRyYW5zZm9ybURpcmVjdGlvbih5KSxmKyt9ZWxzZSBpZihTLmlzU3BvdExpZ2h0KXtsZXQgQz1pLnNwb3RbZF07Qy5wb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oUy5tYXRyaXhXb3JsZCksQy5wb3NpdGlvbi5hcHBseU1hdHJpeDQoeSksQy5kaXJlY3Rpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKFMubWF0cml4V29ybGQpLG8uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKFMudGFyZ2V0Lm1hdHJpeFdvcmxkKSxDLmRpcmVjdGlvbi5zdWIobyksQy5kaXJlY3Rpb24udHJhbnNmb3JtRGlyZWN0aW9uKHkpLGQrK31lbHNlIGlmKFMuaXNSZWN0QXJlYUxpZ2h0KXtsZXQgQz1pLnJlY3RBcmVhW2ddO0MucG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKFMubWF0cml4V29ybGQpLEMucG9zaXRpb24uYXBwbHlNYXRyaXg0KHkpLHMuaWRlbnRpdHkoKSxhLmNvcHkoUy5tYXRyaXhXb3JsZCksYS5wcmVtdWx0aXBseSh5KSxzLmV4dHJhY3RSb3RhdGlvbihhKSxDLmhhbGZXaWR0aC5zZXQoUy53aWR0aCouNSwwLDApLEMuaGFsZkhlaWdodC5zZXQoMCxTLmhlaWdodCouNSwwKSxDLmhhbGZXaWR0aC5hcHBseU1hdHJpeDQocyksQy5oYWxmSGVpZ2h0LmFwcGx5TWF0cml4NChzKSxnKyt9ZWxzZSBpZihTLmlzUG9pbnRMaWdodCl7bGV0IEM9aS5wb2ludFtwXTtDLnBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihTLm1hdHJpeFdvcmxkKSxDLnBvc2l0aW9uLmFwcGx5TWF0cml4NCh5KSxwKyt9ZWxzZSBpZihTLmlzSGVtaXNwaGVyZUxpZ2h0KXtsZXQgQz1pLmhlbWlbX107Qy5kaXJlY3Rpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKFMubWF0cml4V29ybGQpLEMuZGlyZWN0aW9uLnRyYW5zZm9ybURpcmVjdGlvbih5KSxDLmRpcmVjdGlvbi5ub3JtYWxpemUoKSxfKyt9fX1yZXR1cm57c2V0dXA6bCxzZXR1cFZpZXc6YyxzdGF0ZTppfX1mdW5jdGlvbiBLdWUoZSx0KXtsZXQgcj1uZXcgVGdyKGUsdCksbj1bXSxpPVtdO2Z1bmN0aW9uIG8oKXtuLmxlbmd0aD0wLGkubGVuZ3RoPTB9ZnVuY3Rpb24gYShoKXtuLnB1c2goaCl9ZnVuY3Rpb24gcyhoKXtpLnB1c2goaCl9ZnVuY3Rpb24gbChoKXtyLnNldHVwKG4saCl9ZnVuY3Rpb24gYyhoKXtyLnNldHVwVmlldyhuLGgpfXJldHVybntpbml0Om8sc3RhdGU6e2xpZ2h0c0FycmF5Om4sc2hhZG93c0FycmF5OmksbGlnaHRzOnJ9LHNldHVwTGlnaHRzOmwsc2V0dXBMaWdodHNWaWV3OmMscHVzaExpZ2h0OmEscHVzaFNoYWRvdzpzfX1mdW5jdGlvbiBDZ3IoZSx0KXtsZXQgcj1uZXcgV2Vha01hcDtmdW5jdGlvbiBuKG8sYT0wKXtsZXQgcztyZXR1cm4gci5oYXMobyk9PT0hMT8ocz1uZXcgS3VlKGUsdCksci5zZXQobyxbc10pKTphPj1yLmdldChvKS5sZW5ndGg/KHM9bmV3IEt1ZShlLHQpLHIuZ2V0KG8pLnB1c2gocykpOnM9ci5nZXQobylbYV0sc31mdW5jdGlvbiBpKCl7cj1uZXcgV2Vha01hcH1yZXR1cm57Z2V0Om4sZGlzcG9zZTppfX12YXIgZU09Y2xhc3MgZXh0ZW5kcyBxaXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaERlcHRoTWF0ZXJpYWwiLHRoaXMuZGVwdGhQYWNraW5nPVJmZSx0aGlzLm1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMuZm9nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZXB0aFBhY2tpbmc9dC5kZXB0aFBhY2tpbmcsdGhpcy5tYXA9dC5tYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMud2lyZWZyYW1lPXQud2lyZWZyYW1lLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPXQud2lyZWZyYW1lTGluZXdpZHRoLHRoaXN9fTtlTS5wcm90b3R5cGUuaXNNZXNoRGVwdGhNYXRlcmlhbD0hMDt2YXIgck09Y2xhc3MgZXh0ZW5kcyBxaXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaERpc3RhbmNlTWF0ZXJpYWwiLHRoaXMucmVmZXJlbmNlUG9zaXRpb249bmV3IGosdGhpcy5uZWFyRGlzdGFuY2U9MSx0aGlzLmZhckRpc3RhbmNlPTFlMyx0aGlzLm1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLmZvZz0hMSx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMucmVmZXJlbmNlUG9zaXRpb24uY29weSh0LnJlZmVyZW5jZVBvc2l0aW9uKSx0aGlzLm5lYXJEaXN0YW5jZT10Lm5lYXJEaXN0YW5jZSx0aGlzLmZhckRpc3RhbmNlPXQuZmFyRGlzdGFuY2UsdGhpcy5tYXA9dC5tYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXN9fTtyTS5wcm90b3R5cGUuaXNNZXNoRGlzdGFuY2VNYXRlcmlhbD0hMDt2YXIgQWdyPWB2b2lkIG1haW4oKSB7CglnbF9Qb3NpdGlvbiA9IHZlYzQoIHBvc2l0aW9uLCAxLjAgKTsKfWAsUGdyPWB1bmlmb3JtIHNhbXBsZXIyRCBzaGFkb3dfcGFzczsKdW5pZm9ybSB2ZWMyIHJlc29sdXRpb247CnVuaWZvcm0gZmxvYXQgcmFkaXVzOwojaW5jbHVkZSA8cGFja2luZz4Kdm9pZCBtYWluKCkgewoJY29uc3QgZmxvYXQgc2FtcGxlcyA9IGZsb2F0KCBWU01fU0FNUExFUyApOwoJZmxvYXQgbWVhbiA9IDAuMDsKCWZsb2F0IHNxdWFyZWRfbWVhbiA9IDAuMDsKCWZsb2F0IHV2U3RyaWRlID0gc2FtcGxlcyA8PSAxLjAgPyAwLjAgOiAyLjAgLyAoIHNhbXBsZXMgLSAxLjAgKTsKCWZsb2F0IHV2U3RhcnQgPSBzYW1wbGVzIDw9IDEuMCA/IDAuMCA6IC0gMS4wOwoJZm9yICggZmxvYXQgaSA9IDAuMDsgaSA8IHNhbXBsZXM7IGkgKysgKSB7CgkJZmxvYXQgdXZPZmZzZXQgPSB1dlN0YXJ0ICsgaSAqIHV2U3RyaWRlOwoJCSNpZmRlZiBIT1JJWk9OVEFMX1BBU1MKCQkJdmVjMiBkaXN0cmlidXRpb24gPSB1bnBhY2tSR0JBVG8ySGFsZiggdGV4dHVyZTJEKCBzaGFkb3dfcGFzcywgKCBnbF9GcmFnQ29vcmQueHkgKyB2ZWMyKCB1dk9mZnNldCwgMC4wICkgKiByYWRpdXMgKSAvIHJlc29sdXRpb24gKSApOwoJCQltZWFuICs9IGRpc3RyaWJ1dGlvbi54OwoJCQlzcXVhcmVkX21lYW4gKz0gZGlzdHJpYnV0aW9uLnkgKiBkaXN0cmlidXRpb24ueSArIGRpc3RyaWJ1dGlvbi54ICogZGlzdHJpYnV0aW9uLng7CgkJI2Vsc2UKCQkJZmxvYXQgZGVwdGggPSB1bnBhY2tSR0JBVG9EZXB0aCggdGV4dHVyZTJEKCBzaGFkb3dfcGFzcywgKCBnbF9GcmFnQ29vcmQueHkgKyB2ZWMyKCAwLjAsIHV2T2Zmc2V0ICkgKiByYWRpdXMgKSAvIHJlc29sdXRpb24gKSApOwoJCQltZWFuICs9IGRlcHRoOwoJCQlzcXVhcmVkX21lYW4gKz0gZGVwdGggKiBkZXB0aDsKCQkjZW5kaWYKCX0KCW1lYW4gPSBtZWFuIC8gc2FtcGxlczsKCXNxdWFyZWRfbWVhbiA9IHNxdWFyZWRfbWVhbiAvIHNhbXBsZXM7CglmbG9hdCBzdGRfZGV2ID0gc3FydCggc3F1YXJlZF9tZWFuIC0gbWVhbiAqIG1lYW4gKTsKCWdsX0ZyYWdDb2xvciA9IHBhY2sySGFsZlRvUkdCQSggdmVjMiggbWVhbiwgc3RkX2RldiApICk7Cn1gO2Z1bmN0aW9uIEpmZShlLHQscil7bGV0IG49bmV3IEQxLGk9bmV3IEx0LG89bmV3IEx0LGE9bmV3IGVuLHM9bmV3IGVNKHtkZXB0aFBhY2tpbmc6TmZlfSksbD1uZXcgck0sYz17fSx1PXIubWF4VGV4dHVyZVNpemUsaD17MDpJaSwxOkwxLDI6azF9LGY9bmV3IGxoKHtkZWZpbmVzOntWU01fU0FNUExFUzo4fSx1bmlmb3Jtczp7c2hhZG93X3Bhc3M6e3ZhbHVlOm51bGx9LHJlc29sdXRpb246e3ZhbHVlOm5ldyBMdH0scmFkaXVzOnt2YWx1ZTo0fX0sdmVydGV4U2hhZGVyOkFncixmcmFnbWVudFNoYWRlcjpQZ3J9KSxwPWYuY2xvbmUoKTtwLmRlZmluZXMuSE9SSVpPTlRBTF9QQVNTPTE7bGV0IGQ9bmV3IFBlO2Quc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IEplKG5ldyBGbG9hdDMyQXJyYXkoWy0xLC0xLC41LDMsLTEsLjUsLTEsMywuNV0pLDMpKTtsZXQgZz1uZXcgdGkoZCxmKSxfPXRoaXM7dGhpcy5lbmFibGVkPSExLHRoaXMuYXV0b1VwZGF0ZT0hMCx0aGlzLm5lZWRzVXBkYXRlPSExLHRoaXMudHlwZT1DaHQsdGhpcy5yZW5kZXI9ZnVuY3Rpb24oUyxDLFApe2lmKF8uZW5hYmxlZD09PSExfHxfLmF1dG9VcGRhdGU9PT0hMSYmXy5uZWVkc1VwZGF0ZT09PSExfHxTLmxlbmd0aD09PTApcmV0dXJuO2xldCBrPWUuZ2V0UmVuZGVyVGFyZ2V0KCksTz1lLmdldEFjdGl2ZUN1YmVGYWNlKCksRD1lLmdldEFjdGl2ZU1pcG1hcExldmVsKCksQj1lLnN0YXRlO0Iuc2V0QmxlbmRpbmcoS2QpLEIuYnVmZmVycy5jb2xvci5zZXRDbGVhcigxLDEsMSwxKSxCLmJ1ZmZlcnMuZGVwdGguc2V0VGVzdCghMCksQi5zZXRTY2lzc29yVGVzdCghMSk7Zm9yKGxldCBJPTAsTD1TLmxlbmd0aDtJPEw7SSsrKXtsZXQgUj1TW0ldLEY9Ui5zaGFkb3c7aWYoRj09PXZvaWQgMCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFNoYWRvd01hcDoiLFIsImhhcyBubyBzaGFkb3cuIik7Y29udGludWV9aWYoRi5hdXRvVXBkYXRlPT09ITEmJkYubmVlZHNVcGRhdGU9PT0hMSljb250aW51ZTtpLmNvcHkoRi5tYXBTaXplKTtsZXQgej1GLmdldEZyYW1lRXh0ZW50cygpO2lmKGkubXVsdGlwbHkoeiksby5jb3B5KEYubWFwU2l6ZSksKGkueD51fHxpLnk+dSkmJihpLng+dSYmKG8ueD1NYXRoLmZsb29yKHUvei54KSxpLng9by54KnoueCxGLm1hcFNpemUueD1vLngpLGkueT51JiYoby55PU1hdGguZmxvb3IodS96LnkpLGkueT1vLnkqei55LEYubWFwU2l6ZS55PW8ueSkpLEYubWFwPT09bnVsbCYmIUYuaXNQb2ludExpZ2h0U2hhZG93JiZ0aGlzLnR5cGU9PT1GMyl7bGV0IFc9e21pbkZpbHRlcjppaSxtYWdGaWx0ZXI6aWksZm9ybWF0OlFvfTtGLm1hcD1uZXcgaHMoaS54LGkueSxXKSxGLm1hcC50ZXh0dXJlLm5hbWU9Ui5uYW1lKyIuc2hhZG93TWFwIixGLm1hcFBhc3M9bmV3IGhzKGkueCxpLnksVyksRi5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfWlmKEYubWFwPT09bnVsbCl7bGV0IFc9e21pbkZpbHRlcjpMaSxtYWdGaWx0ZXI6TGksZm9ybWF0OlFvfTtGLm1hcD1uZXcgaHMoaS54LGkueSxXKSxGLm1hcC50ZXh0dXJlLm5hbWU9Ui5uYW1lKyIuc2hhZG93TWFwIixGLmNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9ZS5zZXRSZW5kZXJUYXJnZXQoRi5tYXApLGUuY2xlYXIoKTtsZXQgVT1GLmdldFZpZXdwb3J0Q291bnQoKTtmb3IobGV0IFc9MDtXPFU7VysrKXtsZXQgWj1GLmdldFZpZXdwb3J0KFcpO2Euc2V0KG8ueCpaLngsby55KloueSxvLngqWi56LG8ueSpaLncpLEIudmlld3BvcnQoYSksRi51cGRhdGVNYXRyaWNlcyhSLFcpLG49Ri5nZXRGcnVzdHVtKCksYihDLFAsRi5jYW1lcmEsUix0aGlzLnR5cGUpfSFGLmlzUG9pbnRMaWdodFNoYWRvdyYmdGhpcy50eXBlPT09RjMmJnkoRixQKSxGLm5lZWRzVXBkYXRlPSExfV8ubmVlZHNVcGRhdGU9ITEsZS5zZXRSZW5kZXJUYXJnZXQoayxPLEQpfTtmdW5jdGlvbiB5KFMsQyl7bGV0IFA9dC51cGRhdGUoZyk7Zi5kZWZpbmVzLlZTTV9TQU1QTEVTIT09Uy5ibHVyU2FtcGxlcyYmKGYuZGVmaW5lcy5WU01fU0FNUExFUz1TLmJsdXJTYW1wbGVzLHAuZGVmaW5lcy5WU01fU0FNUExFUz1TLmJsdXJTYW1wbGVzLGYubmVlZHNVcGRhdGU9ITAscC5uZWVkc1VwZGF0ZT0hMCksZi51bmlmb3Jtcy5zaGFkb3dfcGFzcy52YWx1ZT1TLm1hcC50ZXh0dXJlLGYudW5pZm9ybXMucmVzb2x1dGlvbi52YWx1ZT1TLm1hcFNpemUsZi51bmlmb3Jtcy5yYWRpdXMudmFsdWU9Uy5yYWRpdXMsZS5zZXRSZW5kZXJUYXJnZXQoUy5tYXBQYXNzKSxlLmNsZWFyKCksZS5yZW5kZXJCdWZmZXJEaXJlY3QoQyxudWxsLFAsZixnLG51bGwpLHAudW5pZm9ybXMuc2hhZG93X3Bhc3MudmFsdWU9Uy5tYXBQYXNzLnRleHR1cmUscC51bmlmb3Jtcy5yZXNvbHV0aW9uLnZhbHVlPVMubWFwU2l6ZSxwLnVuaWZvcm1zLnJhZGl1cy52YWx1ZT1TLnJhZGl1cyxlLnNldFJlbmRlclRhcmdldChTLm1hcCksZS5jbGVhcigpLGUucmVuZGVyQnVmZmVyRGlyZWN0KEMsbnVsbCxQLHAsZyxudWxsKX1mdW5jdGlvbiB4KFMsQyxQLGssTyxELEIpe2xldCBJPW51bGwsTD1rLmlzUG9pbnRMaWdodD09PSEwP1MuY3VzdG9tRGlzdGFuY2VNYXRlcmlhbDpTLmN1c3RvbURlcHRoTWF0ZXJpYWw7aWYoTCE9PXZvaWQgMD9JPUw6ST1rLmlzUG9pbnRMaWdodD09PSEwP2w6cyxlLmxvY2FsQ2xpcHBpbmdFbmFibGVkJiZQLmNsaXBTaGFkb3dzPT09ITAmJlAuY2xpcHBpbmdQbGFuZXMubGVuZ3RoIT09MHx8UC5kaXNwbGFjZW1lbnRNYXAmJlAuZGlzcGxhY2VtZW50U2NhbGUhPT0wfHxQLmFscGhhTWFwJiZQLmFscGhhVGVzdD4wKXtsZXQgUj1JLnV1aWQsRj1QLnV1aWQsej1jW1JdO3o9PT12b2lkIDAmJih6PXt9LGNbUl09eik7bGV0IFU9eltGXTtVPT09dm9pZCAwJiYoVT1JLmNsb25lKCkseltGXT1VKSxJPVV9cmV0dXJuIEkudmlzaWJsZT1QLnZpc2libGUsSS53aXJlZnJhbWU9UC53aXJlZnJhbWUsQj09PUYzP0kuc2lkZT1QLnNoYWRvd1NpZGUhPT1udWxsP1Auc2hhZG93U2lkZTpQLnNpZGU6SS5zaWRlPVAuc2hhZG93U2lkZSE9PW51bGw/UC5zaGFkb3dTaWRlOmhbUC5zaWRlXSxJLmFscGhhTWFwPVAuYWxwaGFNYXAsSS5hbHBoYVRlc3Q9UC5hbHBoYVRlc3QsSS5jbGlwU2hhZG93cz1QLmNsaXBTaGFkb3dzLEkuY2xpcHBpbmdQbGFuZXM9UC5jbGlwcGluZ1BsYW5lcyxJLmNsaXBJbnRlcnNlY3Rpb249UC5jbGlwSW50ZXJzZWN0aW9uLEkuZGlzcGxhY2VtZW50TWFwPVAuZGlzcGxhY2VtZW50TWFwLEkuZGlzcGxhY2VtZW50U2NhbGU9UC5kaXNwbGFjZW1lbnRTY2FsZSxJLmRpc3BsYWNlbWVudEJpYXM9UC5kaXNwbGFjZW1lbnRCaWFzLEkud2lyZWZyYW1lTGluZXdpZHRoPVAud2lyZWZyYW1lTGluZXdpZHRoLEkubGluZXdpZHRoPVAubGluZXdpZHRoLGsuaXNQb2ludExpZ2h0PT09ITAmJkkuaXNNZXNoRGlzdGFuY2VNYXRlcmlhbD09PSEwJiYoSS5yZWZlcmVuY2VQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oay5tYXRyaXhXb3JsZCksSS5uZWFyRGlzdGFuY2U9TyxJLmZhckRpc3RhbmNlPUQpLEl9ZnVuY3Rpb24gYihTLEMsUCxrLE8pe2lmKFMudmlzaWJsZT09PSExKXJldHVybjtpZihTLmxheWVycy50ZXN0KEMubGF5ZXJzKSYmKFMuaXNNZXNofHxTLmlzTGluZXx8Uy5pc1BvaW50cykmJihTLmNhc3RTaGFkb3d8fFMucmVjZWl2ZVNoYWRvdyYmTz09PUYzKSYmKCFTLmZydXN0dW1DdWxsZWR8fG4uaW50ZXJzZWN0c09iamVjdChTKSkpe1MubW9kZWxWaWV3TWF0cml4Lm11bHRpcGx5TWF0cmljZXMoUC5tYXRyaXhXb3JsZEludmVyc2UsUy5tYXRyaXhXb3JsZCk7bGV0IEk9dC51cGRhdGUoUyksTD1TLm1hdGVyaWFsO2lmKEFycmF5LmlzQXJyYXkoTCkpe2xldCBSPUkuZ3JvdXBzO2ZvcihsZXQgRj0wLHo9Ui5sZW5ndGg7Rjx6O0YrKyl7bGV0IFU9UltGXSxXPUxbVS5tYXRlcmlhbEluZGV4XTtpZihXJiZXLnZpc2libGUpe2xldCBaPXgoUyxJLFcsayxQLm5lYXIsUC5mYXIsTyk7ZS5yZW5kZXJCdWZmZXJEaXJlY3QoUCxudWxsLEksWixTLFUpfX19ZWxzZSBpZihMLnZpc2libGUpe2xldCBSPXgoUyxJLEwsayxQLm5lYXIsUC5mYXIsTyk7ZS5yZW5kZXJCdWZmZXJEaXJlY3QoUCxudWxsLEksUixTLG51bGwpfX1sZXQgQj1TLmNoaWxkcmVuO2ZvcihsZXQgST0wLEw9Qi5sZW5ndGg7STxMO0krKyliKEJbSV0sQyxQLGssTyl9fWZ1bmN0aW9uIElncihlLHQscil7bGV0IG49ci5pc1dlYkdMMjtmdW5jdGlvbiBpKCl7bGV0IGF0PSExLHNlPW5ldyBlbixRdD1udWxsLENlPW5ldyBlbigwLDAsMCwwKTtyZXR1cm57c2V0TWFzazpmdW5jdGlvbihQdCl7UXQhPT1QdCYmIWF0JiYoZS5jb2xvck1hc2soUHQsUHQsUHQsUHQpLFF0PVB0KX0sc2V0TG9ja2VkOmZ1bmN0aW9uKFB0KXthdD1QdH0sc2V0Q2xlYXI6ZnVuY3Rpb24oUHQsTnQsemUseW4sV2kpe1dpPT09ITAmJihQdCo9eW4sTnQqPXluLHplKj15biksc2Uuc2V0KFB0LE50LHplLHluKSxDZS5lcXVhbHMoc2UpPT09ITEmJihlLmNsZWFyQ29sb3IoUHQsTnQsemUseW4pLENlLmNvcHkoc2UpKX0scmVzZXQ6ZnVuY3Rpb24oKXthdD0hMSxRdD1udWxsLENlLnNldCgtMSwwLDAsMCl9fX1mdW5jdGlvbiBvKCl7bGV0IGF0PSExLHNlPW51bGwsUXQ9bnVsbCxDZT1udWxsO3JldHVybntzZXRUZXN0OmZ1bmN0aW9uKFB0KXtQdD9sdCgyOTI5KTpLdCgyOTI5KX0sc2V0TWFzazpmdW5jdGlvbihQdCl7c2UhPT1QdCYmIWF0JiYoZS5kZXB0aE1hc2soUHQpLHNlPVB0KX0sc2V0RnVuYzpmdW5jdGlvbihQdCl7aWYoUXQhPT1QdCl7aWYoUHQpc3dpdGNoKFB0KXtjYXNlIGVmZTplLmRlcHRoRnVuYyg1MTIpO2JyZWFrO2Nhc2UgcmZlOmUuZGVwdGhGdW5jKDUxOSk7YnJlYWs7Y2FzZSBuZmU6ZS5kZXB0aEZ1bmMoNTEzKTticmVhaztjYXNlIGlVOmUuZGVwdGhGdW5jKDUxNSk7YnJlYWs7Y2FzZSBpZmU6ZS5kZXB0aEZ1bmMoNTE0KTticmVhaztjYXNlIG9mZTplLmRlcHRoRnVuYyg1MTgpO2JyZWFrO2Nhc2UgYWZlOmUuZGVwdGhGdW5jKDUxNik7YnJlYWs7Y2FzZSBzZmU6ZS5kZXB0aEZ1bmMoNTE3KTticmVhaztkZWZhdWx0OmUuZGVwdGhGdW5jKDUxNSl9ZWxzZSBlLmRlcHRoRnVuYyg1MTUpO1F0PVB0fX0sc2V0TG9ja2VkOmZ1bmN0aW9uKFB0KXthdD1QdH0sc2V0Q2xlYXI6ZnVuY3Rpb24oUHQpe0NlIT09UHQmJihlLmNsZWFyRGVwdGgoUHQpLENlPVB0KX0scmVzZXQ6ZnVuY3Rpb24oKXthdD0hMSxzZT1udWxsLFF0PW51bGwsQ2U9bnVsbH19fWZ1bmN0aW9uIGEoKXtsZXQgYXQ9ITEsc2U9bnVsbCxRdD1udWxsLENlPW51bGwsUHQ9bnVsbCxOdD1udWxsLHplPW51bGwseW49bnVsbCxXaT1udWxsO3JldHVybntzZXRUZXN0OmZ1bmN0aW9uKEFyKXthdHx8KEFyP2x0KDI5NjApOkt0KDI5NjApKX0sc2V0TWFzazpmdW5jdGlvbihBcil7c2UhPT1BciYmIWF0JiYoZS5zdGVuY2lsTWFzayhBciksc2U9QXIpfSxzZXRGdW5jOmZ1bmN0aW9uKEFyLElhLGhvKXsoUXQhPT1Bcnx8Q2UhPT1JYXx8UHQhPT1obykmJihlLnN0ZW5jaWxGdW5jKEFyLElhLGhvKSxRdD1BcixDZT1JYSxQdD1obyl9LHNldE9wOmZ1bmN0aW9uKEFyLElhLGhvKXsoTnQhPT1Bcnx8emUhPT1JYXx8eW4hPT1obykmJihlLnN0ZW5jaWxPcChBcixJYSxobyksTnQ9QXIsemU9SWEseW49aG8pfSxzZXRMb2NrZWQ6ZnVuY3Rpb24oQXIpe2F0PUFyfSxzZXRDbGVhcjpmdW5jdGlvbihBcil7V2khPT1BciYmKGUuY2xlYXJTdGVuY2lsKEFyKSxXaT1Bcil9LHJlc2V0OmZ1bmN0aW9uKCl7YXQ9ITEsc2U9bnVsbCxRdD1udWxsLENlPW51bGwsUHQ9bnVsbCxOdD1udWxsLHplPW51bGwseW49bnVsbCxXaT1udWxsfX19bGV0IHM9bmV3IGksbD1uZXcgbyxjPW5ldyBhLHU9e30saD17fSxmPW5ldyBXZWFrTWFwLHA9W10sZD1udWxsLGc9ITEsXz1udWxsLHk9bnVsbCx4PW51bGwsYj1udWxsLFM9bnVsbCxDPW51bGwsUD1udWxsLGs9ITEsTz1udWxsLEQ9bnVsbCxCPW51bGwsST1udWxsLEw9bnVsbCxSPWUuZ2V0UGFyYW1ldGVyKDM1NjYxKSxGPSExLHo9MCxVPWUuZ2V0UGFyYW1ldGVyKDc5MzgpO1UuaW5kZXhPZigiV2ViR0wiKSE9PS0xPyh6PXBhcnNlRmxvYXQoL15XZWJHTCAoXGQpLy5leGVjKFUpWzFdKSxGPXo+PTEpOlUuaW5kZXhPZigiT3BlbkdMIEVTIikhPT0tMSYmKHo9cGFyc2VGbG9hdCgvXk9wZW5HTCBFUyAoXGQpLy5leGVjKFUpWzFdKSxGPXo+PTIpO2xldCBXPW51bGwsWj17fSxydD1lLmdldFBhcmFtZXRlcigzMDg4KSxvdD1lLmdldFBhcmFtZXRlcigyOTc4KSxzdD1uZXcgZW4oKS5mcm9tQXJyYXkocnQpLFN0PW5ldyBlbigpLmZyb21BcnJheShvdCk7ZnVuY3Rpb24gYnQoYXQsc2UsUXQpe2xldCBDZT1uZXcgVWludDhBcnJheSg0KSxQdD1lLmNyZWF0ZVRleHR1cmUoKTtlLmJpbmRUZXh0dXJlKGF0LFB0KSxlLnRleFBhcmFtZXRlcmkoYXQsMTAyNDEsOTcyOCksZS50ZXhQYXJhbWV0ZXJpKGF0LDEwMjQwLDk3MjgpO2ZvcihsZXQgTnQ9MDtOdDxRdDtOdCsrKWUudGV4SW1hZ2UyRChzZStOdCwwLDY0MDgsMSwxLDAsNjQwOCw1MTIxLENlKTtyZXR1cm4gUHR9bGV0IE10PXt9O010WzM1NTNdPWJ0KDM1NTMsMzU1MywxKSxNdFszNDA2N109YnQoMzQwNjcsMzQwNjksNikscy5zZXRDbGVhcigwLDAsMCwxKSxsLnNldENsZWFyKDEpLGMuc2V0Q2xlYXIoMCksbHQoMjkyOSksbC5zZXRGdW5jKGlVKSxodCghMSksd3QoU3V0KSxsdCgyODg0KSxxKEtkKTtmdW5jdGlvbiBsdChhdCl7dVthdF0hPT0hMCYmKGUuZW5hYmxlKGF0KSx1W2F0XT0hMCl9ZnVuY3Rpb24gS3QoYXQpe3VbYXRdIT09ITEmJihlLmRpc2FibGUoYXQpLHVbYXRdPSExKX1mdW5jdGlvbiBfdChhdCxzZSl7cmV0dXJuIGhbYXRdIT09c2U/KGUuYmluZEZyYW1lYnVmZmVyKGF0LHNlKSxoW2F0XT1zZSxuJiYoYXQ9PT0zNjAwOSYmKGhbMzYxNjBdPXNlKSxhdD09PTM2MTYwJiYoaFszNjAwOV09c2UpKSwhMCk6ITF9ZnVuY3Rpb24gY3QoYXQsc2Upe2xldCBRdD1wLENlPSExO2lmKGF0KWlmKFF0PWYuZ2V0KHNlKSxRdD09PXZvaWQgMCYmKFF0PVtdLGYuc2V0KHNlLFF0KSksYXQuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cyl7bGV0IFB0PWF0LnRleHR1cmU7aWYoUXQubGVuZ3RoIT09UHQubGVuZ3RofHxRdFswXSE9PTM2MDY0KXtmb3IobGV0IE50PTAsemU9UHQubGVuZ3RoO050PHplO050KyspUXRbTnRdPTM2MDY0K050O1F0Lmxlbmd0aD1QdC5sZW5ndGgsQ2U9ITB9fWVsc2UgUXRbMF0hPT0zNjA2NCYmKFF0WzBdPTM2MDY0LENlPSEwKTtlbHNlIFF0WzBdIT09MTAyOSYmKFF0WzBdPTEwMjksQ2U9ITApO0NlJiYoci5pc1dlYkdMMj9lLmRyYXdCdWZmZXJzKFF0KTp0LmdldCgiV0VCR0xfZHJhd19idWZmZXJzIikuZHJhd0J1ZmZlcnNXRUJHTChRdCkpfWZ1bmN0aW9uIFgoYXQpe3JldHVybiBkIT09YXQ/KGUudXNlUHJvZ3JhbShhdCksZD1hdCwhMCk6ITF9bGV0IGV0PXtbRTFdOjMyNzc0LFtHaGVdOjMyNzc4LFtXaGVdOjMyNzc5fTtpZihuKWV0W0N1dF09MzI3NzUsZXRbQXV0XT0zMjc3NjtlbHNle2xldCBhdD10LmdldCgiRVhUX2JsZW5kX21pbm1heCIpO2F0IT09bnVsbCYmKGV0W0N1dF09YXQuTUlOX0VYVCxldFtBdXRdPWF0Lk1BWF9FWFQpfWxldCBkdD17W1loZV06MCxbamhlXToxLFtYaGVdOjc2OCxbUGh0XTo3NzAsW3RmZV06Nzc2LFtKaGVdOjc3NCxbS2hlXTo3NzIsWyRoZV06NzY5LFtJaHRdOjc3MSxbUWhlXTo3NzUsW1poZV06NzczfTtmdW5jdGlvbiBxKGF0LHNlLFF0LENlLFB0LE50LHplLHluKXtpZihhdD09PUtkKXtnPT09ITAmJihLdCgzMDQyKSxnPSExKTtyZXR1cm59aWYoZz09PSExJiYobHQoMzA0MiksZz0hMCksYXQhPT1xaGUpe2lmKGF0IT09X3x8eW4hPT1rKXtpZigoeSE9PUUxfHxTIT09RTEpJiYoZS5ibGVuZEVxdWF0aW9uKDMyNzc0KSx5PUUxLFM9RTEpLHluKXN3aXRjaChhdCl7Y2FzZSBWMzplLmJsZW5kRnVuY1NlcGFyYXRlKDEsNzcxLDEsNzcxKTticmVhaztjYXNlIE11dDplLmJsZW5kRnVuYygxLDEpO2JyZWFrO2Nhc2UgRXV0OmUuYmxlbmRGdW5jU2VwYXJhdGUoMCw3NjksMCwxKTticmVhaztjYXNlIFR1dDplLmJsZW5kRnVuY1NlcGFyYXRlKDAsNzY4LDAsNzcwKTticmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IEludmFsaWQgYmxlbmRpbmc6ICIsYXQpO2JyZWFrfWVsc2Ugc3dpdGNoKGF0KXtjYXNlIFYzOmUuYmxlbmRGdW5jU2VwYXJhdGUoNzcwLDc3MSwxLDc3MSk7YnJlYWs7Y2FzZSBNdXQ6ZS5ibGVuZEZ1bmMoNzcwLDEpO2JyZWFrO2Nhc2UgRXV0OmUuYmxlbmRGdW5jU2VwYXJhdGUoMCw3NjksMCwxKTticmVhaztjYXNlIFR1dDplLmJsZW5kRnVuYygwLDc2OCk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiBJbnZhbGlkIGJsZW5kaW5nOiAiLGF0KTticmVha314PW51bGwsYj1udWxsLEM9bnVsbCxQPW51bGwsXz1hdCxrPXlufXJldHVybn1QdD1QdHx8c2UsTnQ9TnR8fFF0LHplPXplfHxDZSwoc2UhPT15fHxQdCE9PVMpJiYoZS5ibGVuZEVxdWF0aW9uU2VwYXJhdGUoZXRbc2VdLGV0W1B0XSkseT1zZSxTPVB0KSwoUXQhPT14fHxDZSE9PWJ8fE50IT09Q3x8emUhPT1QKSYmKGUuYmxlbmRGdW5jU2VwYXJhdGUoZHRbUXRdLGR0W0NlXSxkdFtOdF0sZHRbemVdKSx4PVF0LGI9Q2UsQz1OdCxQPXplKSxfPWF0LGs9bnVsbH1mdW5jdGlvbiBwdChhdCxzZSl7YXQuc2lkZT09PWsxP0t0KDI4ODQpOmx0KDI4ODQpO2xldCBRdD1hdC5zaWRlPT09SWk7c2UmJihRdD0hUXQpLGh0KFF0KSxhdC5ibGVuZGluZz09PVYzJiZhdC50cmFuc3BhcmVudD09PSExP3EoS2QpOnEoYXQuYmxlbmRpbmcsYXQuYmxlbmRFcXVhdGlvbixhdC5ibGVuZFNyYyxhdC5ibGVuZERzdCxhdC5ibGVuZEVxdWF0aW9uQWxwaGEsYXQuYmxlbmRTcmNBbHBoYSxhdC5ibGVuZERzdEFscGhhLGF0LnByZW11bHRpcGxpZWRBbHBoYSksbC5zZXRGdW5jKGF0LmRlcHRoRnVuYyksbC5zZXRUZXN0KGF0LmRlcHRoVGVzdCksbC5zZXRNYXNrKGF0LmRlcHRoV3JpdGUpLHMuc2V0TWFzayhhdC5jb2xvcldyaXRlKTtsZXQgQ2U9YXQuc3RlbmNpbFdyaXRlO2Muc2V0VGVzdChDZSksQ2UmJihjLnNldE1hc2soYXQuc3RlbmNpbFdyaXRlTWFzayksYy5zZXRGdW5jKGF0LnN0ZW5jaWxGdW5jLGF0LnN0ZW5jaWxSZWYsYXQuc3RlbmNpbEZ1bmNNYXNrKSxjLnNldE9wKGF0LnN0ZW5jaWxGYWlsLGF0LnN0ZW5jaWxaRmFpbCxhdC5zdGVuY2lsWlBhc3MpKSxpZShhdC5wb2x5Z29uT2Zmc2V0LGF0LnBvbHlnb25PZmZzZXRGYWN0b3IsYXQucG9seWdvbk9mZnNldFVuaXRzKSxhdC5hbHBoYVRvQ292ZXJhZ2U9PT0hMD9sdCgzMjkyNik6S3QoMzI5MjYpfWZ1bmN0aW9uIGh0KGF0KXtPIT09YXQmJihhdD9lLmZyb250RmFjZSgyMzA0KTplLmZyb250RmFjZSgyMzA1KSxPPWF0KX1mdW5jdGlvbiB3dChhdCl7YXQhPT1IaGU/KGx0KDI4ODQpLGF0IT09RCYmKGF0PT09U3V0P2UuY3VsbEZhY2UoMTAyOSk6YXQ9PT1WaGU/ZS5jdWxsRmFjZSgxMDI4KTplLmN1bGxGYWNlKDEwMzIpKSk6S3QoMjg4NCksRD1hdH1mdW5jdGlvbiBrdChhdCl7YXQhPT1CJiYoRiYmZS5saW5lV2lkdGgoYXQpLEI9YXQpfWZ1bmN0aW9uIGllKGF0LHNlLFF0KXthdD8obHQoMzI4MjMpLChJIT09c2V8fEwhPT1RdCkmJihlLnBvbHlnb25PZmZzZXQoc2UsUXQpLEk9c2UsTD1RdCkpOkt0KDMyODIzKX1mdW5jdGlvbiBlZShhdCl7YXQ/bHQoMzA4OSk6S3QoMzA4OSl9ZnVuY3Rpb24gTGUoYXQpe2F0PT09dm9pZCAwJiYoYXQ9MzM5ODQrUi0xKSxXIT09YXQmJihlLmFjdGl2ZVRleHR1cmUoYXQpLFc9YXQpfWZ1bmN0aW9uIGFyKGF0LHNlKXtXPT09bnVsbCYmTGUoKTtsZXQgUXQ9WltXXTtRdD09PXZvaWQgMCYmKFF0PXt0eXBlOnZvaWQgMCx0ZXh0dXJlOnZvaWQgMH0sWltXXT1RdCksKFF0LnR5cGUhPT1hdHx8UXQudGV4dHVyZSE9PXNlKSYmKGUuYmluZFRleHR1cmUoYXQsc2V8fE10W2F0XSksUXQudHlwZT1hdCxRdC50ZXh0dXJlPXNlKX1mdW5jdGlvbiBmcigpe2xldCBhdD1aW1ddO2F0IT09dm9pZCAwJiZhdC50eXBlIT09dm9pZCAwJiYoZS5iaW5kVGV4dHVyZShhdC50eXBlLG51bGwpLGF0LnR5cGU9dm9pZCAwLGF0LnRleHR1cmU9dm9pZCAwKX1mdW5jdGlvbiB0dCgpe3RyeXtlLmNvbXByZXNzZWRUZXhJbWFnZTJELmFwcGx5KGUsYXJndW1lbnRzKX1jYXRjaChhdCl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xTdGF0ZToiLGF0KX19ZnVuY3Rpb24gJCgpe3RyeXtlLnRleFN1YkltYWdlMkQuYXBwbHkoZSxhcmd1bWVudHMpfWNhdGNoKGF0KXtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiIsYXQpfX1mdW5jdGlvbiBJdCgpe3RyeXtlLnRleFN1YkltYWdlM0QuYXBwbHkoZSxhcmd1bWVudHMpfWNhdGNoKGF0KXtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiIsYXQpfX1mdW5jdGlvbiAkdCgpe3RyeXtlLmNvbXByZXNzZWRUZXhTdWJJbWFnZTJELmFwcGx5KGUsYXJndW1lbnRzKX1jYXRjaChhdCl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xTdGF0ZToiLGF0KX19ZnVuY3Rpb24gaGUoKXt0cnl7ZS50ZXhTdG9yYWdlMkQuYXBwbHkoZSxhcmd1bWVudHMpfWNhdGNoKGF0KXtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiIsYXQpfX1mdW5jdGlvbiBUdCgpe3RyeXtlLnRleFN0b3JhZ2UzRC5hcHBseShlLGFyZ3VtZW50cyl9Y2F0Y2goYXQpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IixhdCl9fWZ1bmN0aW9uIGJlKCl7dHJ5e2UudGV4SW1hZ2UyRC5hcHBseShlLGFyZ3VtZW50cyl9Y2F0Y2goYXQpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IixhdCl9fWZ1bmN0aW9uIG50KCl7dHJ5e2UudGV4SW1hZ2UzRC5hcHBseShlLGFyZ3VtZW50cyl9Y2F0Y2goYXQpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IixhdCl9fWZ1bmN0aW9uIEN0KGF0KXtzdC5lcXVhbHMoYXQpPT09ITEmJihlLnNjaXNzb3IoYXQueCxhdC55LGF0LnosYXQudyksc3QuY29weShhdCkpfWZ1bmN0aW9uIFd0KGF0KXtTdC5lcXVhbHMoYXQpPT09ITEmJihlLnZpZXdwb3J0KGF0LngsYXQueSxhdC56LGF0LncpLFN0LmNvcHkoYXQpKX1mdW5jdGlvbiBmZSgpe2UuZGlzYWJsZSgzMDQyKSxlLmRpc2FibGUoMjg4NCksZS5kaXNhYmxlKDI5MjkpLGUuZGlzYWJsZSgzMjgyMyksZS5kaXNhYmxlKDMwODkpLGUuZGlzYWJsZSgyOTYwKSxlLmRpc2FibGUoMzI5MjYpLGUuYmxlbmRFcXVhdGlvbigzMjc3NCksZS5ibGVuZEZ1bmMoMSwwKSxlLmJsZW5kRnVuY1NlcGFyYXRlKDEsMCwxLDApLGUuY29sb3JNYXNrKCEwLCEwLCEwLCEwKSxlLmNsZWFyQ29sb3IoMCwwLDAsMCksZS5kZXB0aE1hc2soITApLGUuZGVwdGhGdW5jKDUxMyksZS5jbGVhckRlcHRoKDEpLGUuc3RlbmNpbE1hc2soNDI5NDk2NzI5NSksZS5zdGVuY2lsRnVuYyg1MTksMCw0Mjk0OTY3Mjk1KSxlLnN0ZW5jaWxPcCg3NjgwLDc2ODAsNzY4MCksZS5jbGVhclN0ZW5jaWwoMCksZS5jdWxsRmFjZSgxMDI5KSxlLmZyb250RmFjZSgyMzA1KSxlLnBvbHlnb25PZmZzZXQoMCwwKSxlLmFjdGl2ZVRleHR1cmUoMzM5ODQpLGUuYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpLG49PT0hMCYmKGUuYmluZEZyYW1lYnVmZmVyKDM2MDA5LG51bGwpLGUuYmluZEZyYW1lYnVmZmVyKDM2MDA4LG51bGwpKSxlLnVzZVByb2dyYW0obnVsbCksZS5saW5lV2lkdGgoMSksZS5zY2lzc29yKDAsMCxlLmNhbnZhcy53aWR0aCxlLmNhbnZhcy5oZWlnaHQpLGUudmlld3BvcnQoMCwwLGUuY2FudmFzLndpZHRoLGUuY2FudmFzLmhlaWdodCksdT17fSxXPW51bGwsWj17fSxoPXt9LGY9bmV3IFdlYWtNYXAscD1bXSxkPW51bGwsZz0hMSxfPW51bGwseT1udWxsLHg9bnVsbCxiPW51bGwsUz1udWxsLEM9bnVsbCxQPW51bGwsaz0hMSxPPW51bGwsRD1udWxsLEI9bnVsbCxJPW51bGwsTD1udWxsLHN0LnNldCgwLDAsZS5jYW52YXMud2lkdGgsZS5jYW52YXMuaGVpZ2h0KSxTdC5zZXQoMCwwLGUuY2FudmFzLndpZHRoLGUuY2FudmFzLmhlaWdodCkscy5yZXNldCgpLGwucmVzZXQoKSxjLnJlc2V0KCl9cmV0dXJue2J1ZmZlcnM6e2NvbG9yOnMsZGVwdGg6bCxzdGVuY2lsOmN9LGVuYWJsZTpsdCxkaXNhYmxlOkt0LGJpbmRGcmFtZWJ1ZmZlcjpfdCxkcmF3QnVmZmVyczpjdCx1c2VQcm9ncmFtOlgsc2V0QmxlbmRpbmc6cSxzZXRNYXRlcmlhbDpwdCxzZXRGbGlwU2lkZWQ6aHQsc2V0Q3VsbEZhY2U6d3Qsc2V0TGluZVdpZHRoOmt0LHNldFBvbHlnb25PZmZzZXQ6aWUsc2V0U2Npc3NvclRlc3Q6ZWUsYWN0aXZlVGV4dHVyZTpMZSxiaW5kVGV4dHVyZTphcix1bmJpbmRUZXh0dXJlOmZyLGNvbXByZXNzZWRUZXhJbWFnZTJEOnR0LHRleEltYWdlMkQ6YmUsdGV4SW1hZ2UzRDpudCx0ZXhTdG9yYWdlMkQ6aGUsdGV4U3RvcmFnZTNEOlR0LHRleFN1YkltYWdlMkQ6JCx0ZXhTdWJJbWFnZTNEOkl0LGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEOiR0LHNjaXNzb3I6Q3Qsdmlld3BvcnQ6V3QscmVzZXQ6ZmV9fWZ1bmN0aW9uIExncihlLHQscixuLGksbyxhKXtsZXQgcz1pLmlzV2ViR0wyLGw9aS5tYXhUZXh0dXJlcyxjPWkubWF4Q3ViZW1hcFNpemUsdT1pLm1heFRleHR1cmVTaXplLGg9aS5tYXhTYW1wbGVzLHA9dC5oYXMoIldFQkdMX211bHRpc2FtcGxlZF9yZW5kZXJfdG9fdGV4dHVyZSIpP3QuZ2V0KCJXRUJHTF9tdWx0aXNhbXBsZWRfcmVuZGVyX3RvX3RleHR1cmUiKTp2b2lkIDAsZD1uZXcgV2Vha01hcCxnLF89ITE7dHJ5e189dHlwZW9mIE9mZnNjcmVlbkNhbnZhcyE9InVuZGVmaW5lZCImJm5ldyBPZmZzY3JlZW5DYW52YXMoMSwxKS5nZXRDb250ZXh0KCIyZCIpIT09bnVsbH1jYXRjaCh0dCl7fWZ1bmN0aW9uIHkodHQsJCl7cmV0dXJuIF8/bmV3IE9mZnNjcmVlbkNhbnZhcyh0dCwkKTp0NigiY2FudmFzIil9ZnVuY3Rpb24geCh0dCwkLEl0LCR0KXtsZXQgaGU9MTtpZigodHQud2lkdGg+JHR8fHR0LmhlaWdodD4kdCkmJihoZT0kdC9NYXRoLm1heCh0dC53aWR0aCx0dC5oZWlnaHQpKSxoZTwxfHwkPT09ITApaWYodHlwZW9mIEhUTUxJbWFnZUVsZW1lbnQhPSJ1bmRlZmluZWQiJiZ0dCBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnR8fHR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudCE9InVuZGVmaW5lZCImJnR0IGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnR8fHR5cGVvZiBJbWFnZUJpdG1hcCE9InVuZGVmaW5lZCImJnR0IGluc3RhbmNlb2YgSW1hZ2VCaXRtYXApe2xldCBUdD0kP0ZmZTpNYXRoLmZsb29yLGJlPVR0KGhlKnR0LndpZHRoKSxudD1UdChoZSp0dC5oZWlnaHQpO2c9PT12b2lkIDAmJihnPXkoYmUsbnQpKTtsZXQgQ3Q9SXQ/eShiZSxudCk6ZztyZXR1cm4gQ3Qud2lkdGg9YmUsQ3QuaGVpZ2h0PW50LEN0LmdldENvbnRleHQoIjJkIikuZHJhd0ltYWdlKHR0LDAsMCxiZSxudCksY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBUZXh0dXJlIGhhcyBiZWVuIHJlc2l6ZWQgZnJvbSAoIit0dC53aWR0aCsieCIrdHQuaGVpZ2h0KyIpIHRvICgiK2JlKyJ4IitudCsiKS4iKSxDdH1lbHNlIHJldHVybiJkYXRhImluIHR0JiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEltYWdlIGluIERhdGFUZXh0dXJlIGlzIHRvbyBiaWcgKCIrdHQud2lkdGgrIngiK3R0LmhlaWdodCsiKS4iKSx0dDtyZXR1cm4gdHR9ZnVuY3Rpb24gYih0dCl7cmV0dXJuIFp1dCh0dC53aWR0aCkmJlp1dCh0dC5oZWlnaHQpfWZ1bmN0aW9uIFModHQpe3JldHVybiBzPyExOnR0LndyYXBTIT09Sm98fHR0LndyYXBUIT09Sm98fHR0Lm1pbkZpbHRlciE9PUxpJiZ0dC5taW5GaWx0ZXIhPT1paX1mdW5jdGlvbiBDKHR0LCQpe3JldHVybiB0dC5nZW5lcmF0ZU1pcG1hcHMmJiQmJnR0Lm1pbkZpbHRlciE9PUxpJiZ0dC5taW5GaWx0ZXIhPT1paX1mdW5jdGlvbiBQKHR0KXtlLmdlbmVyYXRlTWlwbWFwKHR0KX1mdW5jdGlvbiBrKHR0LCQsSXQsJHQsaGU9ITEpe2lmKHM9PT0hMSlyZXR1cm4gJDtpZih0dCE9PW51bGwpe2lmKGVbdHRdIT09dm9pZCAwKXJldHVybiBlW3R0XTtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEF0dGVtcHQgdG8gdXNlIG5vbi1leGlzdGluZyBXZWJHTCBpbnRlcm5hbCBmb3JtYXQgJyIrdHQrIiciKX1sZXQgVHQ9JDtyZXR1cm4gJD09PTY0MDMmJihJdD09PTUxMjYmJihUdD0zMzMyNiksSXQ9PT01MTMxJiYoVHQ9MzMzMjUpLEl0PT09NTEyMSYmKFR0PTMzMzIxKSksJD09PTMzMzE5JiYoSXQ9PT01MTI2JiYoVHQ9MzMzMjgpLEl0PT09NTEzMSYmKFR0PTMzMzI3KSxJdD09PTUxMjEmJihUdD0zMzMyMykpLCQ9PT02NDA4JiYoSXQ9PT01MTI2JiYoVHQ9MzQ4MzYpLEl0PT09NTEzMSYmKFR0PTM0ODQyKSxJdD09PTUxMjEmJihUdD0kdD09PVluJiZoZT09PSExPzM1OTA3OjMyODU2KSxJdD09PTMyODE5JiYoVHQ9MzI4NTQpLEl0PT09MzI4MjAmJihUdD0zMjg1NSkpLChUdD09PTMzMzI1fHxUdD09PTMzMzI2fHxUdD09PTMzMzI3fHxUdD09PTMzMzI4fHxUdD09PTM0ODQyfHxUdD09PTM0ODM2KSYmdC5nZXQoIkVYVF9jb2xvcl9idWZmZXJfZmxvYXQiKSxUdH1mdW5jdGlvbiBPKHR0LCQsSXQpe3JldHVybiBDKHR0LEl0KT09PSEwfHx0dC5pc0ZyYW1lYnVmZmVyVGV4dHVyZSYmdHQubWluRmlsdGVyIT09TGkmJnR0Lm1pbkZpbHRlciE9PWlpP01hdGgubG9nMihNYXRoLm1heCgkLndpZHRoLCQuaGVpZ2h0KSkrMTp0dC5taXBtYXBzIT09dm9pZCAwJiZ0dC5taXBtYXBzLmxlbmd0aD4wP3R0Lm1pcG1hcHMubGVuZ3RoOnR0LmlzQ29tcHJlc3NlZFRleHR1cmUmJkFycmF5LmlzQXJyYXkodHQuaW1hZ2UpPyQubWlwbWFwcy5sZW5ndGg6MX1mdW5jdGlvbiBEKHR0KXtyZXR1cm4gdHQ9PT1MaXx8dHQ9PT1vVXx8dHQ9PT1hVT85NzI4Ojk3Mjl9ZnVuY3Rpb24gQih0dCl7bGV0ICQ9dHQudGFyZ2V0OyQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsQiksTCgkKSwkLmlzVmlkZW9UZXh0dXJlJiZkLmRlbGV0ZSgkKSxhLm1lbW9yeS50ZXh0dXJlcy0tfWZ1bmN0aW9uIEkodHQpe2xldCAkPXR0LnRhcmdldDskLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLEkpLFIoJCl9ZnVuY3Rpb24gTCh0dCl7bGV0ICQ9bi5nZXQodHQpOyQuX193ZWJnbEluaXQhPT12b2lkIDAmJihlLmRlbGV0ZVRleHR1cmUoJC5fX3dlYmdsVGV4dHVyZSksbi5yZW1vdmUodHQpKX1mdW5jdGlvbiBSKHR0KXtsZXQgJD10dC50ZXh0dXJlLEl0PW4uZ2V0KHR0KSwkdD1uLmdldCgkKTtpZighIXR0KXtpZigkdC5fX3dlYmdsVGV4dHVyZSE9PXZvaWQgMCYmKGUuZGVsZXRlVGV4dHVyZSgkdC5fX3dlYmdsVGV4dHVyZSksYS5tZW1vcnkudGV4dHVyZXMtLSksdHQuZGVwdGhUZXh0dXJlJiZ0dC5kZXB0aFRleHR1cmUuZGlzcG9zZSgpLHR0LmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KWZvcihsZXQgaGU9MDtoZTw2O2hlKyspZS5kZWxldGVGcmFtZWJ1ZmZlcihJdC5fX3dlYmdsRnJhbWVidWZmZXJbaGVdKSxJdC5fX3dlYmdsRGVwdGhidWZmZXImJmUuZGVsZXRlUmVuZGVyYnVmZmVyKEl0Ll9fd2ViZ2xEZXB0aGJ1ZmZlcltoZV0pO2Vsc2UgZS5kZWxldGVGcmFtZWJ1ZmZlcihJdC5fX3dlYmdsRnJhbWVidWZmZXIpLEl0Ll9fd2ViZ2xEZXB0aGJ1ZmZlciYmZS5kZWxldGVSZW5kZXJidWZmZXIoSXQuX193ZWJnbERlcHRoYnVmZmVyKSxJdC5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXImJmUuZGVsZXRlRnJhbWVidWZmZXIoSXQuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyKSxJdC5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXImJmUuZGVsZXRlUmVuZGVyYnVmZmVyKEl0Ll9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlciksSXQuX193ZWJnbERlcHRoUmVuZGVyYnVmZmVyJiZlLmRlbGV0ZVJlbmRlcmJ1ZmZlcihJdC5fX3dlYmdsRGVwdGhSZW5kZXJidWZmZXIpO2lmKHR0LmlzV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHMpZm9yKGxldCBoZT0wLFR0PSQubGVuZ3RoO2hlPFR0O2hlKyspe2xldCBiZT1uLmdldCgkW2hlXSk7YmUuX193ZWJnbFRleHR1cmUmJihlLmRlbGV0ZVRleHR1cmUoYmUuX193ZWJnbFRleHR1cmUpLGEubWVtb3J5LnRleHR1cmVzLS0pLG4ucmVtb3ZlKCRbaGVdKX1uLnJlbW92ZSgkKSxuLnJlbW92ZSh0dCl9fWxldCBGPTA7ZnVuY3Rpb24geigpe0Y9MH1mdW5jdGlvbiBVKCl7bGV0IHR0PUY7cmV0dXJuIHR0Pj1sJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMVGV4dHVyZXM6IFRyeWluZyB0byB1c2UgIit0dCsiIHRleHR1cmUgdW5pdHMgd2hpbGUgdGhpcyBHUFUgc3VwcG9ydHMgb25seSAiK2wpLEYrPTEsdHR9ZnVuY3Rpb24gVyh0dCwkKXtsZXQgSXQ9bi5nZXQodHQpO2lmKHR0LmlzVmlkZW9UZXh0dXJlJiZrdCh0dCksdHQudmVyc2lvbj4wJiZJdC5fX3ZlcnNpb24hPT10dC52ZXJzaW9uKXtsZXQgJHQ9dHQuaW1hZ2U7aWYoJHQ9PT12b2lkIDApY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBUZXh0dXJlIG1hcmtlZCBmb3IgdXBkYXRlIGJ1dCBpbWFnZSBpcyB1bmRlZmluZWQiKTtlbHNlIGlmKCR0LmNvbXBsZXRlPT09ITEpY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBUZXh0dXJlIG1hcmtlZCBmb3IgdXBkYXRlIGJ1dCBpbWFnZSBpcyBpbmNvbXBsZXRlIik7ZWxzZXtsdChJdCx0dCwkKTtyZXR1cm59fXIuYWN0aXZlVGV4dHVyZSgzMzk4NCskKSxyLmJpbmRUZXh0dXJlKDM1NTMsSXQuX193ZWJnbFRleHR1cmUpfWZ1bmN0aW9uIFoodHQsJCl7bGV0IEl0PW4uZ2V0KHR0KTtpZih0dC52ZXJzaW9uPjAmJkl0Ll9fdmVyc2lvbiE9PXR0LnZlcnNpb24pe2x0KEl0LHR0LCQpO3JldHVybn1yLmFjdGl2ZVRleHR1cmUoMzM5ODQrJCksci5iaW5kVGV4dHVyZSgzNTg2NixJdC5fX3dlYmdsVGV4dHVyZSl9ZnVuY3Rpb24gcnQodHQsJCl7bGV0IEl0PW4uZ2V0KHR0KTtpZih0dC52ZXJzaW9uPjAmJkl0Ll9fdmVyc2lvbiE9PXR0LnZlcnNpb24pe2x0KEl0LHR0LCQpO3JldHVybn1yLmFjdGl2ZVRleHR1cmUoMzM5ODQrJCksci5iaW5kVGV4dHVyZSgzMjg3OSxJdC5fX3dlYmdsVGV4dHVyZSl9ZnVuY3Rpb24gb3QodHQsJCl7bGV0IEl0PW4uZ2V0KHR0KTtpZih0dC52ZXJzaW9uPjAmJkl0Ll9fdmVyc2lvbiE9PXR0LnZlcnNpb24pe0t0KEl0LHR0LCQpO3JldHVybn1yLmFjdGl2ZVRleHR1cmUoMzM5ODQrJCksci5iaW5kVGV4dHVyZSgzNDA2NyxJdC5fX3dlYmdsVGV4dHVyZSl9bGV0IHN0PXtbWFBdOjEwNDk3LFtKb106MzMwNzEsWyRQXTozMzY0OH0sU3Q9e1tMaV06OTcyOCxbb1VdOjk5ODQsW2FVXTo5OTg2LFtpaV06OTcyOSxbTGh0XTo5OTg1LFtheF06OTk4N307ZnVuY3Rpb24gYnQodHQsJCxJdCl7aWYoSXQ/KGUudGV4UGFyYW1ldGVyaSh0dCwxMDI0MixzdFskLndyYXBTXSksZS50ZXhQYXJhbWV0ZXJpKHR0LDEwMjQzLHN0WyQud3JhcFRdKSwodHQ9PT0zMjg3OXx8dHQ9PT0zNTg2NikmJmUudGV4UGFyYW1ldGVyaSh0dCwzMjg4MixzdFskLndyYXBSXSksZS50ZXhQYXJhbWV0ZXJpKHR0LDEwMjQwLFN0WyQubWFnRmlsdGVyXSksZS50ZXhQYXJhbWV0ZXJpKHR0LDEwMjQxLFN0WyQubWluRmlsdGVyXSkpOihlLnRleFBhcmFtZXRlcmkodHQsMTAyNDIsMzMwNzEpLGUudGV4UGFyYW1ldGVyaSh0dCwxMDI0MywzMzA3MSksKHR0PT09MzI4Nzl8fHR0PT09MzU4NjYpJiZlLnRleFBhcmFtZXRlcmkodHQsMzI4ODIsMzMwNzEpLCgkLndyYXBTIT09Sm98fCQud3JhcFQhPT1KbykmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVGV4dHVyZSBpcyBub3QgcG93ZXIgb2YgdHdvLiBUZXh0dXJlLndyYXBTIGFuZCBUZXh0dXJlLndyYXBUIHNob3VsZCBiZSBzZXQgdG8gVEhSRUUuQ2xhbXBUb0VkZ2VXcmFwcGluZy4iKSxlLnRleFBhcmFtZXRlcmkodHQsMTAyNDAsRCgkLm1hZ0ZpbHRlcikpLGUudGV4UGFyYW1ldGVyaSh0dCwxMDI0MSxEKCQubWluRmlsdGVyKSksJC5taW5GaWx0ZXIhPT1MaSYmJC5taW5GaWx0ZXIhPT1paSYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBUZXh0dXJlIGlzIG5vdCBwb3dlciBvZiB0d28uIFRleHR1cmUubWluRmlsdGVyIHNob3VsZCBiZSBzZXQgdG8gVEhSRUUuTmVhcmVzdEZpbHRlciBvciBUSFJFRS5MaW5lYXJGaWx0ZXIuIikpLHQuaGFzKCJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKT09PSEwKXtsZXQgJHQ9dC5nZXQoIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpO2lmKCQudHlwZT09PVhkJiZ0LmhhcygiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik9PT0hMXx8cz09PSExJiYkLnR5cGU9PT1BMSYmdC5oYXMoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik9PT0hMSlyZXR1cm47KCQuYW5pc290cm9weT4xfHxuLmdldCgkKS5fX2N1cnJlbnRBbmlzb3Ryb3B5KSYmKGUudGV4UGFyYW1ldGVyZih0dCwkdC5URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCxNYXRoLm1pbigkLmFuaXNvdHJvcHksaS5nZXRNYXhBbmlzb3Ryb3B5KCkpKSxuLmdldCgkKS5fX2N1cnJlbnRBbmlzb3Ryb3B5PSQuYW5pc290cm9weSl9fWZ1bmN0aW9uIE10KHR0LCQpe3R0Ll9fd2ViZ2xJbml0PT09dm9pZCAwJiYodHQuX193ZWJnbEluaXQ9ITAsJC5hZGRFdmVudExpc3RlbmVyKCJkaXNwb3NlIixCKSx0dC5fX3dlYmdsVGV4dHVyZT1lLmNyZWF0ZVRleHR1cmUoKSxhLm1lbW9yeS50ZXh0dXJlcysrKX1mdW5jdGlvbiBsdCh0dCwkLEl0KXtsZXQgJHQ9MzU1MzskLmlzRGF0YVRleHR1cmUyREFycmF5JiYoJHQ9MzU4NjYpLCQuaXNEYXRhVGV4dHVyZTNEJiYoJHQ9MzI4NzkpLE10KHR0LCQpLHIuYWN0aXZlVGV4dHVyZSgzMzk4NCtJdCksci5iaW5kVGV4dHVyZSgkdCx0dC5fX3dlYmdsVGV4dHVyZSksZS5waXhlbFN0b3JlaSgzNzQ0MCwkLmZsaXBZKSxlLnBpeGVsU3RvcmVpKDM3NDQxLCQucHJlbXVsdGlwbHlBbHBoYSksZS5waXhlbFN0b3JlaSgzMzE3LCQudW5wYWNrQWxpZ25tZW50KSxlLnBpeGVsU3RvcmVpKDM3NDQzLDApO2xldCBoZT1TKCQpJiZiKCQuaW1hZ2UpPT09ITEsVHQ9eCgkLmltYWdlLGhlLCExLHUpO1R0PWllKCQsVHQpO2xldCBiZT1iKFR0KXx8cyxudD1vLmNvbnZlcnQoJC5mb3JtYXQsJC5lbmNvZGluZyksQ3Q9by5jb252ZXJ0KCQudHlwZSksV3Q9aygkLmludGVybmFsRm9ybWF0LG50LEN0LCQuZW5jb2RpbmcsJC5pc1ZpZGVvVGV4dHVyZSk7YnQoJHQsJCxiZSk7bGV0IGZlLGF0PSQubWlwbWFwcyxzZT1zJiYkLmlzVmlkZW9UZXh0dXJlIT09ITAsUXQ9dHQuX192ZXJzaW9uPT09dm9pZCAwLENlPU8oJCxUdCxiZSk7aWYoJC5pc0RlcHRoVGV4dHVyZSlXdD02NDAyLHM/JC50eXBlPT09WGQ/V3Q9MzYwMTI6JC50eXBlPT09VlA/V3Q9MzMxOTA6JC50eXBlPT09UDE/V3Q9MzUwNTY6V3Q9MzMxODk6JC50eXBlPT09WGQmJmNvbnNvbGUuZXJyb3IoIldlYkdMUmVuZGVyZXI6IEZsb2F0aW5nIHBvaW50IGRlcHRoIHRleHR1cmUgcmVxdWlyZXMgV2ViR0wyLiIpLCQuZm9ybWF0PT09RjAmJld0PT09NjQwMiYmJC50eXBlIT09RzMmJiQudHlwZSE9PVZQJiYoY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBVc2UgVW5zaWduZWRTaG9ydFR5cGUgb3IgVW5zaWduZWRJbnRUeXBlIGZvciBEZXB0aEZvcm1hdCBEZXB0aFRleHR1cmUuIiksJC50eXBlPUczLEN0PW8uY29udmVydCgkLnR5cGUpKSwkLmZvcm1hdD09PVIxJiZXdD09PTY0MDImJihXdD0zNDA0MSwkLnR5cGUhPT1QMSYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVXNlIFVuc2lnbmVkSW50MjQ4VHlwZSBmb3IgRGVwdGhTdGVuY2lsRm9ybWF0IERlcHRoVGV4dHVyZS4iKSwkLnR5cGU9UDEsQ3Q9by5jb252ZXJ0KCQudHlwZSkpKSxzZSYmUXQ/ci50ZXhTdG9yYWdlMkQoMzU1MywxLFd0LFR0LndpZHRoLFR0LmhlaWdodCk6ci50ZXhJbWFnZTJEKDM1NTMsMCxXdCxUdC53aWR0aCxUdC5oZWlnaHQsMCxudCxDdCxudWxsKTtlbHNlIGlmKCQuaXNEYXRhVGV4dHVyZSlpZihhdC5sZW5ndGg+MCYmYmUpe3NlJiZRdCYmci50ZXhTdG9yYWdlMkQoMzU1MyxDZSxXdCxhdFswXS53aWR0aCxhdFswXS5oZWlnaHQpO2ZvcihsZXQgUHQ9MCxOdD1hdC5sZW5ndGg7UHQ8TnQ7UHQrKylmZT1hdFtQdF0sc2U/ci50ZXhTdWJJbWFnZTJEKDM1NTMsMCwwLDAsZmUud2lkdGgsZmUuaGVpZ2h0LG50LEN0LGZlLmRhdGEpOnIudGV4SW1hZ2UyRCgzNTUzLFB0LFd0LGZlLndpZHRoLGZlLmhlaWdodCwwLG50LEN0LGZlLmRhdGEpOyQuZ2VuZXJhdGVNaXBtYXBzPSExfWVsc2Ugc2U/KFF0JiZyLnRleFN0b3JhZ2UyRCgzNTUzLENlLFd0LFR0LndpZHRoLFR0LmhlaWdodCksci50ZXhTdWJJbWFnZTJEKDM1NTMsMCwwLDAsVHQud2lkdGgsVHQuaGVpZ2h0LG50LEN0LFR0LmRhdGEpKTpyLnRleEltYWdlMkQoMzU1MywwLFd0LFR0LndpZHRoLFR0LmhlaWdodCwwLG50LEN0LFR0LmRhdGEpO2Vsc2UgaWYoJC5pc0NvbXByZXNzZWRUZXh0dXJlKXtzZSYmUXQmJnIudGV4U3RvcmFnZTJEKDM1NTMsQ2UsV3QsYXRbMF0ud2lkdGgsYXRbMF0uaGVpZ2h0KTtmb3IobGV0IFB0PTAsTnQ9YXQubGVuZ3RoO1B0PE50O1B0KyspZmU9YXRbUHRdLCQuZm9ybWF0IT09UW8/bnQhPT1udWxsP3NlP3IuY29tcHJlc3NlZFRleFN1YkltYWdlMkQoMzU1MyxQdCwwLDAsZmUud2lkdGgsZmUuaGVpZ2h0LG50LGZlLmRhdGEpOnIuY29tcHJlc3NlZFRleEltYWdlMkQoMzU1MyxQdCxXdCxmZS53aWR0aCxmZS5oZWlnaHQsMCxmZS5kYXRhKTpjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEF0dGVtcHQgdG8gbG9hZCB1bnN1cHBvcnRlZCBjb21wcmVzc2VkIHRleHR1cmUgZm9ybWF0IGluIC51cGxvYWRUZXh0dXJlKCkiKTpzZT9yLnRleFN1YkltYWdlMkQoMzU1MyxQdCwwLDAsZmUud2lkdGgsZmUuaGVpZ2h0LG50LEN0LGZlLmRhdGEpOnIudGV4SW1hZ2UyRCgzNTUzLFB0LFd0LGZlLndpZHRoLGZlLmhlaWdodCwwLG50LEN0LGZlLmRhdGEpfWVsc2UgaWYoJC5pc0RhdGFUZXh0dXJlMkRBcnJheSlzZT8oUXQmJnIudGV4U3RvcmFnZTNEKDM1ODY2LENlLFd0LFR0LndpZHRoLFR0LmhlaWdodCxUdC5kZXB0aCksci50ZXhTdWJJbWFnZTNEKDM1ODY2LDAsMCwwLDAsVHQud2lkdGgsVHQuaGVpZ2h0LFR0LmRlcHRoLG50LEN0LFR0LmRhdGEpKTpyLnRleEltYWdlM0QoMzU4NjYsMCxXdCxUdC53aWR0aCxUdC5oZWlnaHQsVHQuZGVwdGgsMCxudCxDdCxUdC5kYXRhKTtlbHNlIGlmKCQuaXNEYXRhVGV4dHVyZTNEKXNlPyhRdCYmci50ZXhTdG9yYWdlM0QoMzI4NzksQ2UsV3QsVHQud2lkdGgsVHQuaGVpZ2h0LFR0LmRlcHRoKSxyLnRleFN1YkltYWdlM0QoMzI4NzksMCwwLDAsMCxUdC53aWR0aCxUdC5oZWlnaHQsVHQuZGVwdGgsbnQsQ3QsVHQuZGF0YSkpOnIudGV4SW1hZ2UzRCgzMjg3OSwwLFd0LFR0LndpZHRoLFR0LmhlaWdodCxUdC5kZXB0aCwwLG50LEN0LFR0LmRhdGEpO2Vsc2UgaWYoJC5pc0ZyYW1lYnVmZmVyVGV4dHVyZSlzZSYmUXQ/ci50ZXhTdG9yYWdlMkQoMzU1MyxDZSxXdCxUdC53aWR0aCxUdC5oZWlnaHQpOnIudGV4SW1hZ2UyRCgzNTUzLDAsV3QsVHQud2lkdGgsVHQuaGVpZ2h0LDAsbnQsQ3QsbnVsbCk7ZWxzZSBpZihhdC5sZW5ndGg+MCYmYmUpe3NlJiZRdCYmci50ZXhTdG9yYWdlMkQoMzU1MyxDZSxXdCxhdFswXS53aWR0aCxhdFswXS5oZWlnaHQpO2ZvcihsZXQgUHQ9MCxOdD1hdC5sZW5ndGg7UHQ8TnQ7UHQrKylmZT1hdFtQdF0sc2U/ci50ZXhTdWJJbWFnZTJEKDM1NTMsUHQsMCwwLG50LEN0LGZlKTpyLnRleEltYWdlMkQoMzU1MyxQdCxXdCxudCxDdCxmZSk7JC5nZW5lcmF0ZU1pcG1hcHM9ITF9ZWxzZSBzZT8oUXQmJnIudGV4U3RvcmFnZTJEKDM1NTMsQ2UsV3QsVHQud2lkdGgsVHQuaGVpZ2h0KSxyLnRleFN1YkltYWdlMkQoMzU1MywwLDAsMCxudCxDdCxUdCkpOnIudGV4SW1hZ2UyRCgzNTUzLDAsV3QsbnQsQ3QsVHQpO0MoJCxiZSkmJlAoJHQpLHR0Ll9fdmVyc2lvbj0kLnZlcnNpb24sJC5vblVwZGF0ZSYmJC5vblVwZGF0ZSgkKX1mdW5jdGlvbiBLdCh0dCwkLEl0KXtpZigkLmltYWdlLmxlbmd0aCE9PTYpcmV0dXJuO010KHR0LCQpLHIuYWN0aXZlVGV4dHVyZSgzMzk4NCtJdCksci5iaW5kVGV4dHVyZSgzNDA2Nyx0dC5fX3dlYmdsVGV4dHVyZSksZS5waXhlbFN0b3JlaSgzNzQ0MCwkLmZsaXBZKSxlLnBpeGVsU3RvcmVpKDM3NDQxLCQucHJlbXVsdGlwbHlBbHBoYSksZS5waXhlbFN0b3JlaSgzMzE3LCQudW5wYWNrQWxpZ25tZW50KSxlLnBpeGVsU3RvcmVpKDM3NDQzLDApO2xldCAkdD0kJiYoJC5pc0NvbXByZXNzZWRUZXh0dXJlfHwkLmltYWdlWzBdLmlzQ29tcHJlc3NlZFRleHR1cmUpLGhlPSQuaW1hZ2VbMF0mJiQuaW1hZ2VbMF0uaXNEYXRhVGV4dHVyZSxUdD1bXTtmb3IobGV0IFB0PTA7UHQ8NjtQdCsrKSEkdCYmIWhlP1R0W1B0XT14KCQuaW1hZ2VbUHRdLCExLCEwLGMpOlR0W1B0XT1oZT8kLmltYWdlW1B0XS5pbWFnZTokLmltYWdlW1B0XSxUdFtQdF09aWUoJCxUdFtQdF0pO2xldCBiZT1UdFswXSxudD1iKGJlKXx8cyxDdD1vLmNvbnZlcnQoJC5mb3JtYXQsJC5lbmNvZGluZyksV3Q9by5jb252ZXJ0KCQudHlwZSksZmU9aygkLmludGVybmFsRm9ybWF0LEN0LFd0LCQuZW5jb2RpbmcpLGF0PXMmJiQuaXNWaWRlb1RleHR1cmUhPT0hMCxzZT10dC5fX3ZlcnNpb249PT12b2lkIDAsUXQ9TygkLGJlLG50KTtidCgzNDA2NywkLG50KTtsZXQgQ2U7aWYoJHQpe2F0JiZzZSYmci50ZXhTdG9yYWdlMkQoMzQwNjcsUXQsZmUsYmUud2lkdGgsYmUuaGVpZ2h0KTtmb3IobGV0IFB0PTA7UHQ8NjtQdCsrKXtDZT1UdFtQdF0ubWlwbWFwcztmb3IobGV0IE50PTA7TnQ8Q2UubGVuZ3RoO050Kyspe2xldCB6ZT1DZVtOdF07JC5mb3JtYXQhPT1Rbz9DdCE9PW51bGw/YXQ/ci5jb21wcmVzc2VkVGV4U3ViSW1hZ2UyRCgzNDA2OStQdCxOdCwwLDAsemUud2lkdGgsemUuaGVpZ2h0LEN0LHplLmRhdGEpOnIuY29tcHJlc3NlZFRleEltYWdlMkQoMzQwNjkrUHQsTnQsZmUsemUud2lkdGgsemUuaGVpZ2h0LDAsemUuZGF0YSk6Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBBdHRlbXB0IHRvIGxvYWQgdW5zdXBwb3J0ZWQgY29tcHJlc3NlZCB0ZXh0dXJlIGZvcm1hdCBpbiAuc2V0VGV4dHVyZUN1YmUoKSIpOmF0P3IudGV4U3ViSW1hZ2UyRCgzNDA2OStQdCxOdCwwLDAsemUud2lkdGgsemUuaGVpZ2h0LEN0LFd0LHplLmRhdGEpOnIudGV4SW1hZ2UyRCgzNDA2OStQdCxOdCxmZSx6ZS53aWR0aCx6ZS5oZWlnaHQsMCxDdCxXdCx6ZS5kYXRhKX19fWVsc2V7Q2U9JC5taXBtYXBzLGF0JiZzZSYmKENlLmxlbmd0aD4wJiZRdCsrLHIudGV4U3RvcmFnZTJEKDM0MDY3LFF0LGZlLFR0WzBdLndpZHRoLFR0WzBdLmhlaWdodCkpO2ZvcihsZXQgUHQ9MDtQdDw2O1B0KyspaWYoaGUpe2F0P3IudGV4U3ViSW1hZ2UyRCgzNDA2OStQdCwwLDAsMCxUdFtQdF0ud2lkdGgsVHRbUHRdLmhlaWdodCxDdCxXdCxUdFtQdF0uZGF0YSk6ci50ZXhJbWFnZTJEKDM0MDY5K1B0LDAsZmUsVHRbUHRdLndpZHRoLFR0W1B0XS5oZWlnaHQsMCxDdCxXdCxUdFtQdF0uZGF0YSk7Zm9yKGxldCBOdD0wO050PENlLmxlbmd0aDtOdCsrKXtsZXQgeW49Q2VbTnRdLmltYWdlW1B0XS5pbWFnZTthdD9yLnRleFN1YkltYWdlMkQoMzQwNjkrUHQsTnQrMSwwLDAseW4ud2lkdGgseW4uaGVpZ2h0LEN0LFd0LHluLmRhdGEpOnIudGV4SW1hZ2UyRCgzNDA2OStQdCxOdCsxLGZlLHluLndpZHRoLHluLmhlaWdodCwwLEN0LFd0LHluLmRhdGEpfX1lbHNle2F0P3IudGV4U3ViSW1hZ2UyRCgzNDA2OStQdCwwLDAsMCxDdCxXdCxUdFtQdF0pOnIudGV4SW1hZ2UyRCgzNDA2OStQdCwwLGZlLEN0LFd0LFR0W1B0XSk7Zm9yKGxldCBOdD0wO050PENlLmxlbmd0aDtOdCsrKXtsZXQgemU9Q2VbTnRdO2F0P3IudGV4U3ViSW1hZ2UyRCgzNDA2OStQdCxOdCsxLDAsMCxDdCxXdCx6ZS5pbWFnZVtQdF0pOnIudGV4SW1hZ2UyRCgzNDA2OStQdCxOdCsxLGZlLEN0LFd0LHplLmltYWdlW1B0XSl9fX1DKCQsbnQpJiZQKDM0MDY3KSx0dC5fX3ZlcnNpb249JC52ZXJzaW9uLCQub25VcGRhdGUmJiQub25VcGRhdGUoJCl9ZnVuY3Rpb24gX3QodHQsJCxJdCwkdCxoZSl7bGV0IFR0PW8uY29udmVydChJdC5mb3JtYXQsSXQuZW5jb2RpbmcpLGJlPW8uY29udmVydChJdC50eXBlKSxudD1rKEl0LmludGVybmFsRm9ybWF0LFR0LGJlLEl0LmVuY29kaW5nKTtuLmdldCgkKS5fX2hhc0V4dGVybmFsVGV4dHVyZXN8fChoZT09PTMyODc5fHxoZT09PTM1ODY2P3IudGV4SW1hZ2UzRChoZSwwLG50LCQud2lkdGgsJC5oZWlnaHQsJC5kZXB0aCwwLFR0LGJlLG51bGwpOnIudGV4SW1hZ2UyRChoZSwwLG50LCQud2lkdGgsJC5oZWlnaHQsMCxUdCxiZSxudWxsKSksci5iaW5kRnJhbWVidWZmZXIoMzYxNjAsdHQpLCQudXNlUmVuZGVyVG9UZXh0dXJlP3AuZnJhbWVidWZmZXJUZXh0dXJlMkRNdWx0aXNhbXBsZUVYVCgzNjE2MCwkdCxoZSxuLmdldChJdCkuX193ZWJnbFRleHR1cmUsMCx3dCgkKSk6ZS5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwkdCxoZSxuLmdldChJdCkuX193ZWJnbFRleHR1cmUsMCksci5iaW5kRnJhbWVidWZmZXIoMzYxNjAsbnVsbCl9ZnVuY3Rpb24gY3QodHQsJCxJdCl7aWYoZS5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLHR0KSwkLmRlcHRoQnVmZmVyJiYhJC5zdGVuY2lsQnVmZmVyKXtsZXQgJHQ9MzMxODk7aWYoSXR8fCQudXNlUmVuZGVyVG9UZXh0dXJlKXtsZXQgaGU9JC5kZXB0aFRleHR1cmU7aGUmJmhlLmlzRGVwdGhUZXh0dXJlJiYoaGUudHlwZT09PVhkPyR0PTM2MDEyOmhlLnR5cGU9PT1WUCYmKCR0PTMzMTkwKSk7bGV0IFR0PXd0KCQpOyQudXNlUmVuZGVyVG9UZXh0dXJlP3AucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlRVhUKDM2MTYxLFR0LCR0LCQud2lkdGgsJC5oZWlnaHQpOmUucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKDM2MTYxLFR0LCR0LCQud2lkdGgsJC5oZWlnaHQpfWVsc2UgZS5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLCR0LCQud2lkdGgsJC5oZWlnaHQpO2UuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMzYxNjAsMzYwOTYsMzYxNjEsdHQpfWVsc2UgaWYoJC5kZXB0aEJ1ZmZlciYmJC5zdGVuY2lsQnVmZmVyKXtsZXQgJHQ9d3QoJCk7SXQmJiQudXNlUmVuZGVyYnVmZmVyP2UucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKDM2MTYxLCR0LDM1MDU2LCQud2lkdGgsJC5oZWlnaHQpOiQudXNlUmVuZGVyVG9UZXh0dXJlP3AucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlRVhUKDM2MTYxLCR0LDM1MDU2LCQud2lkdGgsJC5oZWlnaHQpOmUucmVuZGVyYnVmZmVyU3RvcmFnZSgzNjE2MSwzNDA0MSwkLndpZHRoLCQuaGVpZ2h0KSxlLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKDM2MTYwLDMzMzA2LDM2MTYxLHR0KX1lbHNle2xldCAkdD0kLmlzV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHM9PT0hMD8kLnRleHR1cmVbMF06JC50ZXh0dXJlLGhlPW8uY29udmVydCgkdC5mb3JtYXQsJHQuZW5jb2RpbmcpLFR0PW8uY29udmVydCgkdC50eXBlKSxiZT1rKCR0LmludGVybmFsRm9ybWF0LGhlLFR0LCR0LmVuY29kaW5nKSxudD13dCgkKTtJdCYmJC51c2VSZW5kZXJidWZmZXI/ZS5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoMzYxNjEsbnQsYmUsJC53aWR0aCwkLmhlaWdodCk6JC51c2VSZW5kZXJUb1RleHR1cmU/cC5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVFWFQoMzYxNjEsbnQsYmUsJC53aWR0aCwkLmhlaWdodCk6ZS5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLGJlLCQud2lkdGgsJC5oZWlnaHQpfWUuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxudWxsKX1mdW5jdGlvbiBYKHR0LCQpe2lmKCQmJiQuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQpdGhyb3cgbmV3IEVycm9yKCJEZXB0aCBUZXh0dXJlIHdpdGggY3ViZSByZW5kZXIgdGFyZ2V0cyBpcyBub3Qgc3VwcG9ydGVkIik7aWYoci5iaW5kRnJhbWVidWZmZXIoMzYxNjAsdHQpLCEoJC5kZXB0aFRleHR1cmUmJiQuZGVwdGhUZXh0dXJlLmlzRGVwdGhUZXh0dXJlKSl0aHJvdyBuZXcgRXJyb3IoInJlbmRlclRhcmdldC5kZXB0aFRleHR1cmUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBUSFJFRS5EZXB0aFRleHR1cmUiKTsoIW4uZ2V0KCQuZGVwdGhUZXh0dXJlKS5fX3dlYmdsVGV4dHVyZXx8JC5kZXB0aFRleHR1cmUuaW1hZ2Uud2lkdGghPT0kLndpZHRofHwkLmRlcHRoVGV4dHVyZS5pbWFnZS5oZWlnaHQhPT0kLmhlaWdodCkmJigkLmRlcHRoVGV4dHVyZS5pbWFnZS53aWR0aD0kLndpZHRoLCQuZGVwdGhUZXh0dXJlLmltYWdlLmhlaWdodD0kLmhlaWdodCwkLmRlcHRoVGV4dHVyZS5uZWVkc1VwZGF0ZT0hMCksVygkLmRlcHRoVGV4dHVyZSwwKTtsZXQgJHQ9bi5nZXQoJC5kZXB0aFRleHR1cmUpLl9fd2ViZ2xUZXh0dXJlLGhlPXd0KCQpO2lmKCQuZGVwdGhUZXh0dXJlLmZvcm1hdD09PUYwKSQudXNlUmVuZGVyVG9UZXh0dXJlP3AuZnJhbWVidWZmZXJUZXh0dXJlMkRNdWx0aXNhbXBsZUVYVCgzNjE2MCwzNjA5NiwzNTUzLCR0LDAsaGUpOmUuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYwOTYsMzU1MywkdCwwKTtlbHNlIGlmKCQuZGVwdGhUZXh0dXJlLmZvcm1hdD09PVIxKSQudXNlUmVuZGVyVG9UZXh0dXJlP3AuZnJhbWVidWZmZXJUZXh0dXJlMkRNdWx0aXNhbXBsZUVYVCgzNjE2MCwzMzMwNiwzNTUzLCR0LDAsaGUpOmUuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzMzMDYsMzU1MywkdCwwKTtlbHNlIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBkZXB0aFRleHR1cmUgZm9ybWF0Iil9ZnVuY3Rpb24gZXQodHQpe2xldCAkPW4uZ2V0KHR0KSxJdD10dC5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldD09PSEwO2lmKHR0LmRlcHRoVGV4dHVyZSYmISQuX19hdXRvQWxsb2NhdGVEZXB0aEJ1ZmZlcil7aWYoSXQpdGhyb3cgbmV3IEVycm9yKCJ0YXJnZXQuZGVwdGhUZXh0dXJlIG5vdCBzdXBwb3J0ZWQgaW4gQ3ViZSByZW5kZXIgdGFyZ2V0cyIpO1goJC5fX3dlYmdsRnJhbWVidWZmZXIsdHQpfWVsc2UgaWYoSXQpeyQuX193ZWJnbERlcHRoYnVmZmVyPVtdO2ZvcihsZXQgJHQ9MDskdDw2OyR0Kyspci5iaW5kRnJhbWVidWZmZXIoMzYxNjAsJC5fX3dlYmdsRnJhbWVidWZmZXJbJHRdKSwkLl9fd2ViZ2xEZXB0aGJ1ZmZlclskdF09ZS5jcmVhdGVSZW5kZXJidWZmZXIoKSxjdCgkLl9fd2ViZ2xEZXB0aGJ1ZmZlclskdF0sdHQsITEpfWVsc2Ugci5iaW5kRnJhbWVidWZmZXIoMzYxNjAsJC5fX3dlYmdsRnJhbWVidWZmZXIpLCQuX193ZWJnbERlcHRoYnVmZmVyPWUuY3JlYXRlUmVuZGVyYnVmZmVyKCksY3QoJC5fX3dlYmdsRGVwdGhidWZmZXIsdHQsITEpO3IuYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpfWZ1bmN0aW9uIGR0KHR0LCQsSXQpe2xldCAkdD1uLmdldCh0dCk7JCE9PXZvaWQgMCYmX3QoJHQuX193ZWJnbEZyYW1lYnVmZmVyLHR0LHR0LnRleHR1cmUsMzYwNjQsMzU1MyksSXQhPT12b2lkIDAmJmV0KHR0KX1mdW5jdGlvbiBxKHR0KXtsZXQgJD10dC50ZXh0dXJlLEl0PW4uZ2V0KHR0KSwkdD1uLmdldCgkKTt0dC5hZGRFdmVudExpc3RlbmVyKCJkaXNwb3NlIixJKSx0dC5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzIT09ITAmJigkdC5fX3dlYmdsVGV4dHVyZT09PXZvaWQgMCYmKCR0Ll9fd2ViZ2xUZXh0dXJlPWUuY3JlYXRlVGV4dHVyZSgpKSwkdC5fX3ZlcnNpb249JC52ZXJzaW9uLGEubWVtb3J5LnRleHR1cmVzKyspO2xldCBoZT10dC5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldD09PSEwLFR0PXR0LmlzV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHM9PT0hMCxiZT0kLmlzRGF0YVRleHR1cmUzRHx8JC5pc0RhdGFUZXh0dXJlMkRBcnJheSxudD1iKHR0KXx8cztpZihoZSl7SXQuX193ZWJnbEZyYW1lYnVmZmVyPVtdO2ZvcihsZXQgQ3Q9MDtDdDw2O0N0KyspSXQuX193ZWJnbEZyYW1lYnVmZmVyW0N0XT1lLmNyZWF0ZUZyYW1lYnVmZmVyKCl9ZWxzZSBpZihJdC5fX3dlYmdsRnJhbWVidWZmZXI9ZS5jcmVhdGVGcmFtZWJ1ZmZlcigpLFR0KWlmKGkuZHJhd0J1ZmZlcnMpe2xldCBDdD10dC50ZXh0dXJlO2ZvcihsZXQgV3Q9MCxmZT1DdC5sZW5ndGg7V3Q8ZmU7V3QrKyl7bGV0IGF0PW4uZ2V0KEN0W1d0XSk7YXQuX193ZWJnbFRleHR1cmU9PT12b2lkIDAmJihhdC5fX3dlYmdsVGV4dHVyZT1lLmNyZWF0ZVRleHR1cmUoKSxhLm1lbW9yeS50ZXh0dXJlcysrKX19ZWxzZSBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFdlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBXZWJHTDIgb3IgV0VCR0xfZHJhd19idWZmZXJzIGV4dGVuc2lvbi4iKTtlbHNlIGlmKHR0LnVzZVJlbmRlcmJ1ZmZlcilpZihzKXtJdC5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXI9ZS5jcmVhdGVGcmFtZWJ1ZmZlcigpLEl0Ll9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlcj1lLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpLGUuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxJdC5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXIpO2xldCBDdD1vLmNvbnZlcnQoJC5mb3JtYXQsJC5lbmNvZGluZyksV3Q9by5jb252ZXJ0KCQudHlwZSksZmU9aygkLmludGVybmFsRm9ybWF0LEN0LFd0LCQuZW5jb2RpbmcpLGF0PXd0KHR0KTtlLnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSgzNjE2MSxhdCxmZSx0dC53aWR0aCx0dC5oZWlnaHQpLHIuYmluZEZyYW1lYnVmZmVyKDM2MTYwLEl0Ll9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlciksZS5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigzNjE2MCwzNjA2NCwzNjE2MSxJdC5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXIpLGUuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxudWxsKSx0dC5kZXB0aEJ1ZmZlciYmKEl0Ll9fd2ViZ2xEZXB0aFJlbmRlcmJ1ZmZlcj1lLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpLGN0KEl0Ll9fd2ViZ2xEZXB0aFJlbmRlcmJ1ZmZlcix0dCwhMCkpLHIuYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpfWVsc2UgY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBXZWJHTDIuIik7aWYoaGUpe3IuYmluZFRleHR1cmUoMzQwNjcsJHQuX193ZWJnbFRleHR1cmUpLGJ0KDM0MDY3LCQsbnQpO2ZvcihsZXQgQ3Q9MDtDdDw2O0N0KyspX3QoSXQuX193ZWJnbEZyYW1lYnVmZmVyW0N0XSx0dCwkLDM2MDY0LDM0MDY5K0N0KTtDKCQsbnQpJiZQKDM0MDY3KSxyLnVuYmluZFRleHR1cmUoKX1lbHNlIGlmKFR0KXtsZXQgQ3Q9dHQudGV4dHVyZTtmb3IobGV0IFd0PTAsZmU9Q3QubGVuZ3RoO1d0PGZlO1d0Kyspe2xldCBhdD1DdFtXdF0sc2U9bi5nZXQoYXQpO3IuYmluZFRleHR1cmUoMzU1MyxzZS5fX3dlYmdsVGV4dHVyZSksYnQoMzU1MyxhdCxudCksX3QoSXQuX193ZWJnbEZyYW1lYnVmZmVyLHR0LGF0LDM2MDY0K1d0LDM1NTMpLEMoYXQsbnQpJiZQKDM1NTMpfXIudW5iaW5kVGV4dHVyZSgpfWVsc2V7bGV0IEN0PTM1NTM7YmUmJihzP0N0PSQuaXNEYXRhVGV4dHVyZTNEPzMyODc5OjM1ODY2OmNvbnNvbGUud2FybigiVEhSRUUuRGF0YVRleHR1cmUzRCBhbmQgVEhSRUUuRGF0YVRleHR1cmUyREFycmF5IG9ubHkgc3VwcG9ydGVkIHdpdGggV2ViR0wyLiIpKSxyLmJpbmRUZXh0dXJlKEN0LCR0Ll9fd2ViZ2xUZXh0dXJlKSxidChDdCwkLG50KSxfdChJdC5fX3dlYmdsRnJhbWVidWZmZXIsdHQsJCwzNjA2NCxDdCksQygkLG50KSYmUChDdCksci51bmJpbmRUZXh0dXJlKCl9dHQuZGVwdGhCdWZmZXImJmV0KHR0KX1mdW5jdGlvbiBwdCh0dCl7bGV0ICQ9Yih0dCl8fHMsSXQ9dHQuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cz09PSEwP3R0LnRleHR1cmU6W3R0LnRleHR1cmVdO2ZvcihsZXQgJHQ9MCxoZT1JdC5sZW5ndGg7JHQ8aGU7JHQrKyl7bGV0IFR0PUl0WyR0XTtpZihDKFR0LCQpKXtsZXQgYmU9dHQuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQ/MzQwNjc6MzU1MyxudD1uLmdldChUdCkuX193ZWJnbFRleHR1cmU7ci5iaW5kVGV4dHVyZShiZSxudCksUChiZSksci51bmJpbmRUZXh0dXJlKCl9fX1mdW5jdGlvbiBodCh0dCl7aWYodHQudXNlUmVuZGVyYnVmZmVyKWlmKHMpe2xldCAkPXR0LndpZHRoLEl0PXR0LmhlaWdodCwkdD0xNjM4NCxoZT1bMzYwNjRdLFR0PXR0LnN0ZW5jaWxCdWZmZXI/MzMzMDY6MzYwOTY7dHQuZGVwdGhCdWZmZXImJmhlLnB1c2goVHQpLHR0Lmlnbm9yZURlcHRoRm9yTXVsdGlzYW1wbGVDb3B5fHwodHQuZGVwdGhCdWZmZXImJigkdHw9MjU2KSx0dC5zdGVuY2lsQnVmZmVyJiYoJHR8PTEwMjQpKTtsZXQgYmU9bi5nZXQodHQpO3IuYmluZEZyYW1lYnVmZmVyKDM2MDA4LGJlLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlciksci5iaW5kRnJhbWVidWZmZXIoMzYwMDksYmUuX193ZWJnbEZyYW1lYnVmZmVyKSx0dC5pZ25vcmVEZXB0aEZvck11bHRpc2FtcGxlQ29weSYmKGUuaW52YWxpZGF0ZUZyYW1lYnVmZmVyKDM2MDA4LFtUdF0pLGUuaW52YWxpZGF0ZUZyYW1lYnVmZmVyKDM2MDA5LFtUdF0pKSxlLmJsaXRGcmFtZWJ1ZmZlcigwLDAsJCxJdCwwLDAsJCxJdCwkdCw5NzI4KSxlLmludmFsaWRhdGVGcmFtZWJ1ZmZlcigzNjAwOCxoZSksci5iaW5kRnJhbWVidWZmZXIoMzYwMDgsbnVsbCksci5iaW5kRnJhbWVidWZmZXIoMzYwMDksYmUuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyKX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogV2ViR0xNdWx0aXNhbXBsZVJlbmRlclRhcmdldCBjYW4gb25seSBiZSB1c2VkIHdpdGggV2ViR0wyLiIpfWZ1bmN0aW9uIHd0KHR0KXtyZXR1cm4gcyYmKHR0LnVzZVJlbmRlcmJ1ZmZlcnx8dHQudXNlUmVuZGVyVG9UZXh0dXJlKT9NYXRoLm1pbihoLHR0LnNhbXBsZXMpOjB9ZnVuY3Rpb24ga3QodHQpe2xldCAkPWEucmVuZGVyLmZyYW1lO2QuZ2V0KHR0KSE9PSQmJihkLnNldCh0dCwkKSx0dC51cGRhdGUoKSl9ZnVuY3Rpb24gaWUodHQsJCl7bGV0IEl0PXR0LmVuY29kaW5nLCR0PXR0LmZvcm1hdCxoZT10dC50eXBlO3JldHVybiB0dC5pc0NvbXByZXNzZWRUZXh0dXJlPT09ITB8fHR0LmlzVmlkZW9UZXh0dXJlPT09ITB8fHR0LmZvcm1hdD09PXNVfHxJdCE9PXRtJiYoSXQ9PT1Zbj9zPT09ITE/dC5oYXMoIkVYVF9zUkdCIik9PT0hMCYmJHQ9PT1Rbz8odHQuZm9ybWF0PXNVLHR0Lm1pbkZpbHRlcj1paSx0dC5nZW5lcmF0ZU1pcG1hcHM9ITEpOiQ9WmYuc1JHQlRvTGluZWFyKCQpOigkdCE9PVFvfHxoZSE9PUpkKSYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFRleHR1cmVzOiBzUkdCIGVuY29kZWQgdGV4dHVyZXMgaGF2ZSB0byB1c2UgUkdCQUZvcm1hdCBhbmQgVW5zaWduZWRCeXRlVHlwZS4iKTpjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFRleHR1cmVzOiBVbnN1cHBvcnRlZCB0ZXh0dXJlIGVuY29kaW5nOiIsSXQpKSwkfWxldCBlZT0hMSxMZT0hMTtmdW5jdGlvbiBhcih0dCwkKXt0dCYmdHQuaXNXZWJHTFJlbmRlclRhcmdldCYmKGVlPT09ITEmJihjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMVGV4dHVyZXMuc2FmZVNldFRleHR1cmUyRDogZG9uJ3QgdXNlIHJlbmRlciB0YXJnZXRzIGFzIHRleHR1cmVzLiBVc2UgdGhlaXIgLnRleHR1cmUgcHJvcGVydHkgaW5zdGVhZC4iKSxlZT0hMCksdHQ9dHQudGV4dHVyZSksVyh0dCwkKX1mdW5jdGlvbiBmcih0dCwkKXt0dCYmdHQuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQmJihMZT09PSExJiYoY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFRleHR1cmVzLnNhZmVTZXRUZXh0dXJlQ3ViZTogZG9uJ3QgdXNlIGN1YmUgcmVuZGVyIHRhcmdldHMgYXMgdGV4dHVyZXMuIFVzZSB0aGVpciAudGV4dHVyZSBwcm9wZXJ0eSBpbnN0ZWFkLiIpLExlPSEwKSx0dD10dC50ZXh0dXJlKSxvdCh0dCwkKX10aGlzLmFsbG9jYXRlVGV4dHVyZVVuaXQ9VSx0aGlzLnJlc2V0VGV4dHVyZVVuaXRzPXosdGhpcy5zZXRUZXh0dXJlMkQ9Vyx0aGlzLnNldFRleHR1cmUyREFycmF5PVosdGhpcy5zZXRUZXh0dXJlM0Q9cnQsdGhpcy5zZXRUZXh0dXJlQ3ViZT1vdCx0aGlzLnJlYmluZFRleHR1cmVzPWR0LHRoaXMuc2V0dXBSZW5kZXJUYXJnZXQ9cSx0aGlzLnVwZGF0ZVJlbmRlclRhcmdldE1pcG1hcD1wdCx0aGlzLnVwZGF0ZU11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0PWh0LHRoaXMuc2V0dXBEZXB0aFJlbmRlcmJ1ZmZlcj1ldCx0aGlzLnNldHVwRnJhbWVCdWZmZXJUZXh0dXJlPV90LHRoaXMuc2FmZVNldFRleHR1cmUyRD1hcix0aGlzLnNhZmVTZXRUZXh0dXJlQ3ViZT1mcn1mdW5jdGlvbiBRZmUoZSx0LHIpe2xldCBuPXIuaXNXZWJHTDI7ZnVuY3Rpb24gaShvLGE9bnVsbCl7bGV0IHM7aWYobz09PUpkKXJldHVybiA1MTIxO2lmKG89PT15ZmUpcmV0dXJuIDMyODE5O2lmKG89PT12ZmUpcmV0dXJuIDMyODIwO2lmKG89PT1tZmUpcmV0dXJuIDUxMjA7aWYobz09PWdmZSlyZXR1cm4gNTEyMjtpZihvPT09RzMpcmV0dXJuIDUxMjM7aWYobz09PV9mZSlyZXR1cm4gNTEyNDtpZihvPT09VlApcmV0dXJuIDUxMjU7aWYobz09PVhkKXJldHVybiA1MTI2O2lmKG89PT1BMSlyZXR1cm4gbj81MTMxOihzPXQuZ2V0KCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikscyE9PW51bGw/cy5IQUxGX0ZMT0FUX09FUzpudWxsKTtpZihvPT09eGZlKXJldHVybiA2NDA2O2lmKG89PT1RbylyZXR1cm4gNjQwODtpZihvPT09YmZlKXJldHVybiA2NDA5O2lmKG89PT13ZmUpcmV0dXJuIDY0MTA7aWYobz09PUYwKXJldHVybiA2NDAyO2lmKG89PT1SMSlyZXR1cm4gMzQwNDE7aWYobz09PVNmZSlyZXR1cm4gNjQwMztpZihvPT09c1UpcmV0dXJuIHM9dC5nZXQoIkVYVF9zUkdCIikscyE9PW51bGw/cy5TUkdCX0FMUEhBX0VYVDpudWxsO2lmKG89PT1NZmUpcmV0dXJuIDM2MjQ0O2lmKG89PT1FZmUpcmV0dXJuIDMzMzE5O2lmKG89PT1UZmUpcmV0dXJuIDMzMzIwO2lmKG89PT1DZmUpcmV0dXJuIDM2MjQ5O2lmKG89PT1KVnx8bz09PVFWfHxvPT09dFV8fG89PT1lVSlpZihhPT09WW4paWYocz10LmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGNfc3JnYiIpLHMhPT1udWxsKXtpZihvPT09SlYpcmV0dXJuIHMuQ09NUFJFU1NFRF9TUkdCX1MzVENfRFhUMV9FWFQ7aWYobz09PVFWKXJldHVybiBzLkNPTVBSRVNTRURfU1JHQl9BTFBIQV9TM1RDX0RYVDFfRVhUO2lmKG89PT10VSlyZXR1cm4gcy5DT01QUkVTU0VEX1NSR0JfQUxQSEFfUzNUQ19EWFQzX0VYVDtpZihvPT09ZVUpcmV0dXJuIHMuQ09NUFJFU1NFRF9TUkdCX0FMUEhBX1MzVENfRFhUNV9FWFR9ZWxzZSByZXR1cm4gbnVsbDtlbHNlIGlmKHM9dC5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIikscyE9PW51bGwpe2lmKG89PT1KVilyZXR1cm4gcy5DT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhUO2lmKG89PT1RVilyZXR1cm4gcy5DT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQxX0VYVDtpZihvPT09dFUpcmV0dXJuIHMuQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUM19FWFQ7aWYobz09PWVVKXJldHVybiBzLkNPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDVfRVhUfWVsc2UgcmV0dXJuIG51bGw7aWYobz09PVB1dHx8bz09PUl1dHx8bz09PUx1dHx8bz09PWt1dClpZihzPXQuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSxzIT09bnVsbCl7aWYobz09PVB1dClyZXR1cm4gcy5DT01QUkVTU0VEX1JHQl9QVlJUQ180QlBQVjFfSU1HO2lmKG89PT1JdXQpcmV0dXJuIHMuQ09NUFJFU1NFRF9SR0JfUFZSVENfMkJQUFYxX0lNRztpZihvPT09THV0KXJldHVybiBzLkNPTVBSRVNTRURfUkdCQV9QVlJUQ180QlBQVjFfSU1HO2lmKG89PT1rdXQpcmV0dXJuIHMuQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzJCUFBWMV9JTUd9ZWxzZSByZXR1cm4gbnVsbDtpZihvPT09QWZlKXJldHVybiBzPXQuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfZXRjMSIpLHMhPT1udWxsP3MuQ09NUFJFU1NFRF9SR0JfRVRDMV9XRUJHTDpudWxsO2lmKG89PT1SdXR8fG89PT1OdXQpaWYocz10LmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2V0YyIpLHMhPT1udWxsKXtpZihvPT09UnV0KXJldHVybiBhPT09WW4/cy5DT01QUkVTU0VEX1NSR0I4X0VUQzI6cy5DT01QUkVTU0VEX1JHQjhfRVRDMjtpZihvPT09TnV0KXJldHVybiBhPT09WW4/cy5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9FVEMyX0VBQzpzLkNPTVBSRVNTRURfUkdCQThfRVRDMl9FQUN9ZWxzZSByZXR1cm4gbnVsbDtpZihvPT09RHV0fHxvPT09T3V0fHxvPT09enV0fHxvPT09RnV0fHxvPT09QnV0fHxvPT09SHV0fHxvPT09VnV0fHxvPT09VXV0fHxvPT09cXV0fHxvPT09R3V0fHxvPT09V3V0fHxvPT09WXV0fHxvPT09anV0fHxvPT09WHV0KWlmKHM9dC5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hc3RjIikscyE9PW51bGwpe2lmKG89PT1EdXQpcmV0dXJuIGE9PT1Zbj9zLkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0FTVENfNHg0X0tIUjpzLkNPTVBSRVNTRURfUkdCQV9BU1RDXzR4NF9LSFI7aWYobz09PU91dClyZXR1cm4gYT09PVluP3MuQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfQVNUQ181eDRfS0hSOnMuQ09NUFJFU1NFRF9SR0JBX0FTVENfNXg0X0tIUjtpZihvPT09enV0KXJldHVybiBhPT09WW4/cy5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9BU1RDXzV4NV9LSFI6cy5DT01QUkVTU0VEX1JHQkFfQVNUQ181eDVfS0hSO2lmKG89PT1GdXQpcmV0dXJuIGE9PT1Zbj9zLkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0FTVENfNng1X0tIUjpzLkNPTVBSRVNTRURfUkdCQV9BU1RDXzZ4NV9LSFI7aWYobz09PUJ1dClyZXR1cm4gYT09PVluP3MuQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfQVNUQ182eDZfS0hSOnMuQ09NUFJFU1NFRF9SR0JBX0FTVENfNng2X0tIUjtpZihvPT09SHV0KXJldHVybiBhPT09WW4/cy5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9BU1RDXzh4NV9LSFI6cy5DT01QUkVTU0VEX1JHQkFfQVNUQ184eDVfS0hSO2lmKG89PT1WdXQpcmV0dXJuIGE9PT1Zbj9zLkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0FTVENfOHg2X0tIUjpzLkNPTVBSRVNTRURfUkdCQV9BU1RDXzh4Nl9LSFI7aWYobz09PVV1dClyZXR1cm4gYT09PVluP3MuQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfQVNUQ184eDhfS0hSOnMuQ09NUFJFU1NFRF9SR0JBX0FTVENfOHg4X0tIUjtpZihvPT09cXV0KXJldHVybiBhPT09WW4/cy5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9BU1RDXzEweDVfS0hSOnMuQ09NUFJFU1NFRF9SR0JBX0FTVENfMTB4NV9LSFI7aWYobz09PUd1dClyZXR1cm4gYT09PVluP3MuQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfQVNUQ18xMHg2X0tIUjpzLkNPTVBSRVNTRURfUkdCQV9BU1RDXzEweDZfS0hSO2lmKG89PT1XdXQpcmV0dXJuIGE9PT1Zbj9zLkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0FTVENfMTB4OF9LSFI6cy5DT01QUkVTU0VEX1JHQkFfQVNUQ18xMHg4X0tIUjtpZihvPT09WXV0KXJldHVybiBhPT09WW4/cy5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9BU1RDXzEweDEwX0tIUjpzLkNPTVBSRVNTRURfUkdCQV9BU1RDXzEweDEwX0tIUjtpZihvPT09anV0KXJldHVybiBhPT09WW4/cy5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9BU1RDXzEyeDEwX0tIUjpzLkNPTVBSRVNTRURfUkdCQV9BU1RDXzEyeDEwX0tIUjtpZihvPT09WHV0KXJldHVybiBhPT09WW4/cy5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9BU1RDXzEyeDEyX0tIUjpzLkNPTVBSRVNTRURfUkdCQV9BU1RDXzEyeDEyX0tIUn1lbHNlIHJldHVybiBudWxsO2lmKG89PT0kdXQpaWYocz10LmdldCgiRVhUX3RleHR1cmVfY29tcHJlc3Npb25fYnB0YyIpLHMhPT1udWxsKXtpZihvPT09JHV0KXJldHVybiBhPT09WW4/cy5DT01QUkVTU0VEX1NSR0JfQUxQSEFfQlBUQ19VTk9STV9FWFQ6cy5DT01QUkVTU0VEX1JHQkFfQlBUQ19VTk9STV9FWFR9ZWxzZSByZXR1cm4gbnVsbDtpZihvPT09UDEpcmV0dXJuIG4/MzQwNDI6KHM9dC5nZXQoIldFQkdMX2RlcHRoX3RleHR1cmUiKSxzIT09bnVsbD9zLlVOU0lHTkVEX0lOVF8yNF84X1dFQkdMOm51bGwpfXJldHVybntjb252ZXJ0Oml9fXZhciBuNj1jbGFzcyBleHRlbmRzIFVpe2NvbnN0cnVjdG9yKHQ9W10pe3N1cGVyKCksdGhpcy5jYW1lcmFzPXR9fTtuNi5wcm90b3R5cGUuaXNBcnJheUNhbWVyYT0hMDt2YXIgJGQ9Y2xhc3MgZXh0ZW5kcyBvcntjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJHcm91cCJ9fTskZC5wcm90b3R5cGUuaXNHcm91cD0hMDt2YXIga2dyPXt0eXBlOiJtb3ZlIn0scVA9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLl90YXJnZXRSYXk9bnVsbCx0aGlzLl9ncmlwPW51bGwsdGhpcy5faGFuZD1udWxsfWdldEhhbmRTcGFjZSgpe3JldHVybiB0aGlzLl9oYW5kPT09bnVsbCYmKHRoaXMuX2hhbmQ9bmV3ICRkLHRoaXMuX2hhbmQubWF0cml4QXV0b1VwZGF0ZT0hMSx0aGlzLl9oYW5kLnZpc2libGU9ITEsdGhpcy5faGFuZC5qb2ludHM9e30sdGhpcy5faGFuZC5pbnB1dFN0YXRlPXtwaW5jaGluZzohMX0pLHRoaXMuX2hhbmR9Z2V0VGFyZ2V0UmF5U3BhY2UoKXtyZXR1cm4gdGhpcy5fdGFyZ2V0UmF5PT09bnVsbCYmKHRoaXMuX3RhcmdldFJheT1uZXcgJGQsdGhpcy5fdGFyZ2V0UmF5Lm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5fdGFyZ2V0UmF5LnZpc2libGU9ITEsdGhpcy5fdGFyZ2V0UmF5Lmhhc0xpbmVhclZlbG9jaXR5PSExLHRoaXMuX3RhcmdldFJheS5saW5lYXJWZWxvY2l0eT1uZXcgaix0aGlzLl90YXJnZXRSYXkuaGFzQW5ndWxhclZlbG9jaXR5PSExLHRoaXMuX3RhcmdldFJheS5hbmd1bGFyVmVsb2NpdHk9bmV3IGopLHRoaXMuX3RhcmdldFJheX1nZXRHcmlwU3BhY2UoKXtyZXR1cm4gdGhpcy5fZ3JpcD09PW51bGwmJih0aGlzLl9ncmlwPW5ldyAkZCx0aGlzLl9ncmlwLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5fZ3JpcC52aXNpYmxlPSExLHRoaXMuX2dyaXAuaGFzTGluZWFyVmVsb2NpdHk9ITEsdGhpcy5fZ3JpcC5saW5lYXJWZWxvY2l0eT1uZXcgaix0aGlzLl9ncmlwLmhhc0FuZ3VsYXJWZWxvY2l0eT0hMSx0aGlzLl9ncmlwLmFuZ3VsYXJWZWxvY2l0eT1uZXcgaiksdGhpcy5fZ3JpcH1kaXNwYXRjaEV2ZW50KHQpe3JldHVybiB0aGlzLl90YXJnZXRSYXkhPT1udWxsJiZ0aGlzLl90YXJnZXRSYXkuZGlzcGF0Y2hFdmVudCh0KSx0aGlzLl9ncmlwIT09bnVsbCYmdGhpcy5fZ3JpcC5kaXNwYXRjaEV2ZW50KHQpLHRoaXMuX2hhbmQhPT1udWxsJiZ0aGlzLl9oYW5kLmRpc3BhdGNoRXZlbnQodCksdGhpc31kaXNjb25uZWN0KHQpe3JldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc2Nvbm5lY3RlZCIsZGF0YTp0fSksdGhpcy5fdGFyZ2V0UmF5IT09bnVsbCYmKHRoaXMuX3RhcmdldFJheS52aXNpYmxlPSExKSx0aGlzLl9ncmlwIT09bnVsbCYmKHRoaXMuX2dyaXAudmlzaWJsZT0hMSksdGhpcy5faGFuZCE9PW51bGwmJih0aGlzLl9oYW5kLnZpc2libGU9ITEpLHRoaXN9dXBkYXRlKHQscixuKXtsZXQgaT1udWxsLG89bnVsbCxhPW51bGwscz10aGlzLl90YXJnZXRSYXksbD10aGlzLl9ncmlwLGM9dGhpcy5faGFuZDtpZih0JiZyLnNlc3Npb24udmlzaWJpbGl0eVN0YXRlIT09InZpc2libGUtYmx1cnJlZCIpaWYocyE9PW51bGwmJihpPXIuZ2V0UG9zZSh0LnRhcmdldFJheVNwYWNlLG4pLGkhPT1udWxsJiYocy5tYXRyaXguZnJvbUFycmF5KGkudHJhbnNmb3JtLm1hdHJpeCkscy5tYXRyaXguZGVjb21wb3NlKHMucG9zaXRpb24scy5yb3RhdGlvbixzLnNjYWxlKSxpLmxpbmVhclZlbG9jaXR5PyhzLmhhc0xpbmVhclZlbG9jaXR5PSEwLHMubGluZWFyVmVsb2NpdHkuY29weShpLmxpbmVhclZlbG9jaXR5KSk6cy5oYXNMaW5lYXJWZWxvY2l0eT0hMSxpLmFuZ3VsYXJWZWxvY2l0eT8ocy5oYXNBbmd1bGFyVmVsb2NpdHk9ITAscy5hbmd1bGFyVmVsb2NpdHkuY29weShpLmFuZ3VsYXJWZWxvY2l0eSkpOnMuaGFzQW5ndWxhclZlbG9jaXR5PSExLHRoaXMuZGlzcGF0Y2hFdmVudChrZ3IpKSksYyYmdC5oYW5kKXthPSEwO2ZvcihsZXQgZyBvZiB0LmhhbmQudmFsdWVzKCkpe2xldCBfPXIuZ2V0Sm9pbnRQb3NlKGcsbik7aWYoYy5qb2ludHNbZy5qb2ludE5hbWVdPT09dm9pZCAwKXtsZXQgeD1uZXcgJGQ7eC5tYXRyaXhBdXRvVXBkYXRlPSExLHgudmlzaWJsZT0hMSxjLmpvaW50c1tnLmpvaW50TmFtZV09eCxjLmFkZCh4KX1sZXQgeT1jLmpvaW50c1tnLmpvaW50TmFtZV07XyE9PW51bGwmJih5Lm1hdHJpeC5mcm9tQXJyYXkoXy50cmFuc2Zvcm0ubWF0cml4KSx5Lm1hdHJpeC5kZWNvbXBvc2UoeS5wb3NpdGlvbix5LnJvdGF0aW9uLHkuc2NhbGUpLHkuam9pbnRSYWRpdXM9Xy5yYWRpdXMpLHkudmlzaWJsZT1fIT09bnVsbH1sZXQgdT1jLmpvaW50c1siaW5kZXgtZmluZ2VyLXRpcCJdLGg9Yy5qb2ludHNbInRodW1iLXRpcCJdLGY9dS5wb3NpdGlvbi5kaXN0YW5jZVRvKGgucG9zaXRpb24pLHA9LjAyLGQ9LjAwNTtjLmlucHV0U3RhdGUucGluY2hpbmcmJmY+cCtkPyhjLmlucHV0U3RhdGUucGluY2hpbmc9ITEsdGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJwaW5jaGVuZCIsaGFuZGVkbmVzczp0LmhhbmRlZG5lc3MsdGFyZ2V0OnRoaXN9KSk6IWMuaW5wdXRTdGF0ZS5waW5jaGluZyYmZjw9cC1kJiYoYy5pbnB1dFN0YXRlLnBpbmNoaW5nPSEwLHRoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToicGluY2hzdGFydCIsaGFuZGVkbmVzczp0LmhhbmRlZG5lc3MsdGFyZ2V0OnRoaXN9KSl9ZWxzZSBsIT09bnVsbCYmdC5ncmlwU3BhY2UmJihvPXIuZ2V0UG9zZSh0LmdyaXBTcGFjZSxuKSxvIT09bnVsbCYmKGwubWF0cml4LmZyb21BcnJheShvLnRyYW5zZm9ybS5tYXRyaXgpLGwubWF0cml4LmRlY29tcG9zZShsLnBvc2l0aW9uLGwucm90YXRpb24sbC5zY2FsZSksby5saW5lYXJWZWxvY2l0eT8obC5oYXNMaW5lYXJWZWxvY2l0eT0hMCxsLmxpbmVhclZlbG9jaXR5LmNvcHkoby5saW5lYXJWZWxvY2l0eSkpOmwuaGFzTGluZWFyVmVsb2NpdHk9ITEsby5hbmd1bGFyVmVsb2NpdHk/KGwuaGFzQW5ndWxhclZlbG9jaXR5PSEwLGwuYW5ndWxhclZlbG9jaXR5LmNvcHkoby5hbmd1bGFyVmVsb2NpdHkpKTpsLmhhc0FuZ3VsYXJWZWxvY2l0eT0hMSkpO3JldHVybiBzIT09bnVsbCYmKHMudmlzaWJsZT1pIT09bnVsbCksbCE9PW51bGwmJihsLnZpc2libGU9byE9PW51bGwpLGMhPT1udWxsJiYoYy52aXNpYmxlPWEhPT1udWxsKSx0aGlzfX0sbk09Y2xhc3MgZXh0ZW5kcyB2aXtjb25zdHJ1Y3Rvcih0LHIsbixpLG8sYSxzLGwsYyx1KXtpZih1PXUhPT12b2lkIDA/dTpGMCx1IT09RjAmJnUhPT1SMSl0aHJvdyBuZXcgRXJyb3IoIkRlcHRoVGV4dHVyZSBmb3JtYXQgbXVzdCBiZSBlaXRoZXIgVEhSRUUuRGVwdGhGb3JtYXQgb3IgVEhSRUUuRGVwdGhTdGVuY2lsRm9ybWF0Iik7bj09PXZvaWQgMCYmdT09PUYwJiYobj1HMyksbj09PXZvaWQgMCYmdT09PVIxJiYobj1QMSksc3VwZXIobnVsbCxpLG8sYSxzLGwsdSxuLGMpLHRoaXMuaW1hZ2U9e3dpZHRoOnQsaGVpZ2h0OnJ9LHRoaXMubWFnRmlsdGVyPXMhPT12b2lkIDA/czpMaSx0aGlzLm1pbkZpbHRlcj1sIT09dm9pZCAwP2w6TGksdGhpcy5mbGlwWT0hMSx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMX19O25NLnByb3RvdHlwZS5pc0RlcHRoVGV4dHVyZT0hMDt2YXIgZWh0PWNsYXNzIGV4dGVuZHMgcXN7Y29uc3RydWN0b3IodCxyKXtzdXBlcigpO2xldCBuPXRoaXMsaT1udWxsLG89MSxhPW51bGwscz0ibG9jYWwtZmxvb3IiLGw9dC5leHRlbnNpb25zLmhhcygiV0VCR0xfbXVsdGlzYW1wbGVkX3JlbmRlcl90b190ZXh0dXJlIiksYz1udWxsLHU9bnVsbCxoPW51bGwsZj1udWxsLHA9ITEsZD1udWxsLGc9ci5nZXRDb250ZXh0QXR0cmlidXRlcygpLF89bnVsbCx5PW51bGwseD1bXSxiPW5ldyBNYXAsUz1uZXcgVWk7Uy5sYXllcnMuZW5hYmxlKDEpLFMudmlld3BvcnQ9bmV3IGVuO2xldCBDPW5ldyBVaTtDLmxheWVycy5lbmFibGUoMiksQy52aWV3cG9ydD1uZXcgZW47bGV0IFA9W1MsQ10saz1uZXcgbjY7ay5sYXllcnMuZW5hYmxlKDEpLGsubGF5ZXJzLmVuYWJsZSgyKTtsZXQgTz1udWxsLEQ9bnVsbDt0aGlzLmNhbWVyYUF1dG9VcGRhdGU9ITAsdGhpcy5lbmFibGVkPSExLHRoaXMuaXNQcmVzZW50aW5nPSExLHRoaXMuZ2V0Q29udHJvbGxlcj1mdW5jdGlvbihvdCl7bGV0IHN0PXhbb3RdO3JldHVybiBzdD09PXZvaWQgMCYmKHN0PW5ldyBxUCx4W290XT1zdCksc3QuZ2V0VGFyZ2V0UmF5U3BhY2UoKX0sdGhpcy5nZXRDb250cm9sbGVyR3JpcD1mdW5jdGlvbihvdCl7bGV0IHN0PXhbb3RdO3JldHVybiBzdD09PXZvaWQgMCYmKHN0PW5ldyBxUCx4W290XT1zdCksc3QuZ2V0R3JpcFNwYWNlKCl9LHRoaXMuZ2V0SGFuZD1mdW5jdGlvbihvdCl7bGV0IHN0PXhbb3RdO3JldHVybiBzdD09PXZvaWQgMCYmKHN0PW5ldyBxUCx4W290XT1zdCksc3QuZ2V0SGFuZFNwYWNlKCl9O2Z1bmN0aW9uIEIob3Qpe2xldCBzdD1iLmdldChvdC5pbnB1dFNvdXJjZSk7c3QmJnN0LmRpc3BhdGNoRXZlbnQoe3R5cGU6b3QudHlwZSxkYXRhOm90LmlucHV0U291cmNlfSl9ZnVuY3Rpb24gSSgpe2IuZm9yRWFjaChmdW5jdGlvbihvdCxzdCl7b3QuZGlzY29ubmVjdChzdCl9KSxiLmNsZWFyKCksTz1udWxsLEQ9bnVsbCx0LnNldFJlbmRlclRhcmdldChfKSxmPW51bGwsaD1udWxsLHU9bnVsbCxpPW51bGwseT1udWxsLHJ0LnN0b3AoKSxuLmlzUHJlc2VudGluZz0hMSxuLmRpc3BhdGNoRXZlbnQoe3R5cGU6InNlc3Npb25lbmQifSl9dGhpcy5zZXRGcmFtZWJ1ZmZlclNjYWxlRmFjdG9yPWZ1bmN0aW9uKG90KXtvPW90LG4uaXNQcmVzZW50aW5nPT09ITAmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViWFJNYW5hZ2VyOiBDYW5ub3QgY2hhbmdlIGZyYW1lYnVmZmVyIHNjYWxlIHdoaWxlIHByZXNlbnRpbmcuIil9LHRoaXMuc2V0UmVmZXJlbmNlU3BhY2VUeXBlPWZ1bmN0aW9uKG90KXtzPW90LG4uaXNQcmVzZW50aW5nPT09ITAmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViWFJNYW5hZ2VyOiBDYW5ub3QgY2hhbmdlIHJlZmVyZW5jZSBzcGFjZSB0eXBlIHdoaWxlIHByZXNlbnRpbmcuIil9LHRoaXMuZ2V0UmVmZXJlbmNlU3BhY2U9ZnVuY3Rpb24oKXtyZXR1cm4gYX0sdGhpcy5nZXRCYXNlTGF5ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gaCE9PW51bGw/aDpmfSx0aGlzLmdldEJpbmRpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdX0sdGhpcy5nZXRGcmFtZT1mdW5jdGlvbigpe3JldHVybiBkfSx0aGlzLmdldFNlc3Npb249ZnVuY3Rpb24oKXtyZXR1cm4gaX0sdGhpcy5zZXRTZXNzaW9uPWZ1bmN0aW9uKG90KXtyZXR1cm4gUmkodGhpcyxudWxsLGZ1bmN0aW9uKigpe2lmKGk9b3QsaSE9PW51bGwpe2lmKF89dC5nZXRSZW5kZXJUYXJnZXQoKSxpLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdCIsQiksaS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RzdGFydCIsQiksaS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlbmQiLEIpLGkuYWRkRXZlbnRMaXN0ZW5lcigic3F1ZWV6ZSIsQiksaS5hZGRFdmVudExpc3RlbmVyKCJzcXVlZXplc3RhcnQiLEIpLGkuYWRkRXZlbnRMaXN0ZW5lcigic3F1ZWV6ZWVuZCIsQiksaS5hZGRFdmVudExpc3RlbmVyKCJlbmQiLEkpLGkuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXRzb3VyY2VzY2hhbmdlIixMKSxnLnhyQ29tcGF0aWJsZSE9PSEwJiYoeWllbGQgci5tYWtlWFJDb21wYXRpYmxlKCkpLGkucmVuZGVyU3RhdGUubGF5ZXJzPT09dm9pZCAwfHx0LmNhcGFiaWxpdGllcy5pc1dlYkdMMj09PSExKXtsZXQgc3Q9e2FudGlhbGlhczppLnJlbmRlclN0YXRlLmxheWVycz09PXZvaWQgMD9nLmFudGlhbGlhczohMCxhbHBoYTpnLmFscGhhLGRlcHRoOmcuZGVwdGgsc3RlbmNpbDpnLnN0ZW5jaWwsZnJhbWVidWZmZXJTY2FsZUZhY3RvcjpvfTtmPW5ldyBYUldlYkdMTGF5ZXIoaSxyLHN0KSxpLnVwZGF0ZVJlbmRlclN0YXRlKHtiYXNlTGF5ZXI6Zn0pLHk9bmV3IGhzKGYuZnJhbWVidWZmZXJXaWR0aCxmLmZyYW1lYnVmZmVySGVpZ2h0LHtmb3JtYXQ6UW8sdHlwZTpKZCxlbmNvZGluZzp0Lm91dHB1dEVuY29kaW5nfSl9ZWxzZXtwPWcuYW50aWFsaWFzO2xldCBzdD1udWxsLFN0PW51bGwsYnQ9bnVsbDtnLmRlcHRoJiYoYnQ9Zy5zdGVuY2lsPzM1MDU2OjMzMTkwLHN0PWcuc3RlbmNpbD9SMTpGMCxTdD1nLnN0ZW5jaWw/UDE6RzMpO2xldCBNdD17Y29sb3JGb3JtYXQ6dC5vdXRwdXRFbmNvZGluZz09PVluPzM1OTA3OjMyODU2LGRlcHRoRm9ybWF0OmJ0LHNjYWxlRmFjdG9yOm99O3U9bmV3IFhSV2ViR0xCaW5kaW5nKGksciksaD11LmNyZWF0ZVByb2plY3Rpb25MYXllcihNdCksaS51cGRhdGVSZW5kZXJTdGF0ZSh7bGF5ZXJzOltoXX0pLHA/eT1uZXcgajMoaC50ZXh0dXJlV2lkdGgsaC50ZXh0dXJlSGVpZ2h0LHtmb3JtYXQ6UW8sdHlwZTpKZCxkZXB0aFRleHR1cmU6bmV3IG5NKGgudGV4dHVyZVdpZHRoLGgudGV4dHVyZUhlaWdodCxTdCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCxzdCksc3RlbmNpbEJ1ZmZlcjpnLnN0ZW5jaWwsaWdub3JlRGVwdGg6aC5pZ25vcmVEZXB0aFZhbHVlcyx1c2VSZW5kZXJUb1RleHR1cmU6bCxlbmNvZGluZzp0Lm91dHB1dEVuY29kaW5nfSk6eT1uZXcgaHMoaC50ZXh0dXJlV2lkdGgsaC50ZXh0dXJlSGVpZ2h0LHtmb3JtYXQ6UW8sdHlwZTpKZCxkZXB0aFRleHR1cmU6bmV3IG5NKGgudGV4dHVyZVdpZHRoLGgudGV4dHVyZUhlaWdodCxTdCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCxzdCksc3RlbmNpbEJ1ZmZlcjpnLnN0ZW5jaWwsaWdub3JlRGVwdGg6aC5pZ25vcmVEZXB0aFZhbHVlcyxlbmNvZGluZzp0Lm91dHB1dEVuY29kaW5nfSl9eS5pc1hSUmVuZGVyVGFyZ2V0PSEwLHRoaXMuc2V0Rm92ZWF0aW9uKDEpLGE9eWllbGQgaS5yZXF1ZXN0UmVmZXJlbmNlU3BhY2UocykscnQuc2V0Q29udGV4dChpKSxydC5zdGFydCgpLG4uaXNQcmVzZW50aW5nPSEwLG4uZGlzcGF0Y2hFdmVudCh7dHlwZToic2Vzc2lvbnN0YXJ0In0pfX0pfTtmdW5jdGlvbiBMKG90KXtsZXQgc3Q9aS5pbnB1dFNvdXJjZXM7Zm9yKGxldCBTdD0wO1N0PHgubGVuZ3RoO1N0KyspYi5zZXQoc3RbU3RdLHhbU3RdKTtmb3IobGV0IFN0PTA7U3Q8b3QucmVtb3ZlZC5sZW5ndGg7U3QrKyl7bGV0IGJ0PW90LnJlbW92ZWRbU3RdLE10PWIuZ2V0KGJ0KTtNdCYmKE10LmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc2Nvbm5lY3RlZCIsZGF0YTpidH0pLGIuZGVsZXRlKGJ0KSl9Zm9yKGxldCBTdD0wO1N0PG90LmFkZGVkLmxlbmd0aDtTdCsrKXtsZXQgYnQ9b3QuYWRkZWRbU3RdLE10PWIuZ2V0KGJ0KTtNdCYmTXQuZGlzcGF0Y2hFdmVudCh7dHlwZToiY29ubmVjdGVkIixkYXRhOmJ0fSl9fWxldCBSPW5ldyBqLEY9bmV3IGo7ZnVuY3Rpb24geihvdCxzdCxTdCl7Ui5zZXRGcm9tTWF0cml4UG9zaXRpb24oc3QubWF0cml4V29ybGQpLEYuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKFN0Lm1hdHJpeFdvcmxkKTtsZXQgYnQ9Ui5kaXN0YW5jZVRvKEYpLE10PXN0LnByb2plY3Rpb25NYXRyaXguZWxlbWVudHMsbHQ9U3QucHJvamVjdGlvbk1hdHJpeC5lbGVtZW50cyxLdD1NdFsxNF0vKE10WzEwXS0xKSxfdD1NdFsxNF0vKE10WzEwXSsxKSxjdD0oTXRbOV0rMSkvTXRbNV0sWD0oTXRbOV0tMSkvTXRbNV0sZXQ9KE10WzhdLTEpL010WzBdLGR0PShsdFs4XSsxKS9sdFswXSxxPUt0KmV0LHB0PUt0KmR0LGh0PWJ0LygtZXQrZHQpLHd0PWh0Ki1ldDtzdC5tYXRyaXhXb3JsZC5kZWNvbXBvc2Uob3QucG9zaXRpb24sb3QucXVhdGVybmlvbixvdC5zY2FsZSksb3QudHJhbnNsYXRlWCh3dCksb3QudHJhbnNsYXRlWihodCksb3QubWF0cml4V29ybGQuY29tcG9zZShvdC5wb3NpdGlvbixvdC5xdWF0ZXJuaW9uLG90LnNjYWxlKSxvdC5tYXRyaXhXb3JsZEludmVyc2UuY29weShvdC5tYXRyaXhXb3JsZCkuaW52ZXJ0KCk7bGV0IGt0PUt0K2h0LGllPV90K2h0LGVlPXEtd3QsTGU9cHQrKGJ0LXd0KSxhcj1jdCpfdC9pZSprdCxmcj1YKl90L2llKmt0O290LnByb2plY3Rpb25NYXRyaXgubWFrZVBlcnNwZWN0aXZlKGVlLExlLGFyLGZyLGt0LGllKX1mdW5jdGlvbiBVKG90LHN0KXtzdD09PW51bGw/b3QubWF0cml4V29ybGQuY29weShvdC5tYXRyaXgpOm90Lm1hdHJpeFdvcmxkLm11bHRpcGx5TWF0cmljZXMoc3QubWF0cml4V29ybGQsb3QubWF0cml4KSxvdC5tYXRyaXhXb3JsZEludmVyc2UuY29weShvdC5tYXRyaXhXb3JsZCkuaW52ZXJ0KCl9dGhpcy51cGRhdGVDYW1lcmE9ZnVuY3Rpb24ob3Qpe2lmKGk9PT1udWxsKXJldHVybjtrLm5lYXI9Qy5uZWFyPVMubmVhcj1vdC5uZWFyLGsuZmFyPUMuZmFyPVMuZmFyPW90LmZhciwoTyE9PWsubmVhcnx8RCE9PWsuZmFyKSYmKGkudXBkYXRlUmVuZGVyU3RhdGUoe2RlcHRoTmVhcjprLm5lYXIsZGVwdGhGYXI6ay5mYXJ9KSxPPWsubmVhcixEPWsuZmFyKTtsZXQgc3Q9b3QucGFyZW50LFN0PWsuY2FtZXJhcztVKGssc3QpO2ZvcihsZXQgTXQ9MDtNdDxTdC5sZW5ndGg7TXQrKylVKFN0W010XSxzdCk7ay5tYXRyaXhXb3JsZC5kZWNvbXBvc2Uoay5wb3NpdGlvbixrLnF1YXRlcm5pb24say5zY2FsZSksb3QucG9zaXRpb24uY29weShrLnBvc2l0aW9uKSxvdC5xdWF0ZXJuaW9uLmNvcHkoay5xdWF0ZXJuaW9uKSxvdC5zY2FsZS5jb3B5KGsuc2NhbGUpLG90Lm1hdHJpeC5jb3B5KGsubWF0cml4KSxvdC5tYXRyaXhXb3JsZC5jb3B5KGsubWF0cml4V29ybGQpO2xldCBidD1vdC5jaGlsZHJlbjtmb3IobGV0IE10PTAsbHQ9YnQubGVuZ3RoO010PGx0O010KyspYnRbTXRdLnVwZGF0ZU1hdHJpeFdvcmxkKCEwKTtTdC5sZW5ndGg9PT0yP3ooayxTLEMpOmsucHJvamVjdGlvbk1hdHJpeC5jb3B5KFMucHJvamVjdGlvbk1hdHJpeCl9LHRoaXMuZ2V0Q2FtZXJhPWZ1bmN0aW9uKCl7cmV0dXJuIGt9LHRoaXMuZ2V0Rm92ZWF0aW9uPWZ1bmN0aW9uKCl7aWYoaCE9PW51bGwpcmV0dXJuIGguZml4ZWRGb3ZlYXRpb247aWYoZiE9PW51bGwpcmV0dXJuIGYuZml4ZWRGb3ZlYXRpb259LHRoaXMuc2V0Rm92ZWF0aW9uPWZ1bmN0aW9uKG90KXtoIT09bnVsbCYmKGguZml4ZWRGb3ZlYXRpb249b3QpLGYhPT1udWxsJiZmLmZpeGVkRm92ZWF0aW9uIT09dm9pZCAwJiYoZi5maXhlZEZvdmVhdGlvbj1vdCl9O2xldCBXPW51bGw7ZnVuY3Rpb24gWihvdCxzdCl7aWYoYz1zdC5nZXRWaWV3ZXJQb3NlKGEpLGQ9c3QsYyE9PW51bGwpe2xldCBidD1jLnZpZXdzO2YhPT1udWxsJiYodC5zZXRSZW5kZXJUYXJnZXRGcmFtZWJ1ZmZlcih5LGYuZnJhbWVidWZmZXIpLHQuc2V0UmVuZGVyVGFyZ2V0KHkpKTtsZXQgTXQ9ITE7YnQubGVuZ3RoIT09ay5jYW1lcmFzLmxlbmd0aCYmKGsuY2FtZXJhcy5sZW5ndGg9MCxNdD0hMCk7Zm9yKGxldCBsdD0wO2x0PGJ0Lmxlbmd0aDtsdCsrKXtsZXQgS3Q9YnRbbHRdLF90PW51bGw7aWYoZiE9PW51bGwpX3Q9Zi5nZXRWaWV3cG9ydChLdCk7ZWxzZXtsZXQgWD11LmdldFZpZXdTdWJJbWFnZShoLEt0KTtfdD1YLnZpZXdwb3J0LGx0PT09MCYmKHQuc2V0UmVuZGVyVGFyZ2V0VGV4dHVyZXMoeSxYLmNvbG9yVGV4dHVyZSxoLmlnbm9yZURlcHRoVmFsdWVzP3ZvaWQgMDpYLmRlcHRoU3RlbmNpbFRleHR1cmUpLHQuc2V0UmVuZGVyVGFyZ2V0KHkpKX1sZXQgY3Q9UFtsdF07Y3QubWF0cml4LmZyb21BcnJheShLdC50cmFuc2Zvcm0ubWF0cml4KSxjdC5wcm9qZWN0aW9uTWF0cml4LmZyb21BcnJheShLdC5wcm9qZWN0aW9uTWF0cml4KSxjdC52aWV3cG9ydC5zZXQoX3QueCxfdC55LF90LndpZHRoLF90LmhlaWdodCksbHQ9PT0wJiZrLm1hdHJpeC5jb3B5KGN0Lm1hdHJpeCksTXQ9PT0hMCYmay5jYW1lcmFzLnB1c2goY3QpfX1sZXQgU3Q9aS5pbnB1dFNvdXJjZXM7Zm9yKGxldCBidD0wO2J0PHgubGVuZ3RoO2J0Kyspe2xldCBNdD14W2J0XSxsdD1TdFtidF07TXQudXBkYXRlKGx0LHN0LGEpfVcmJlcob3Qsc3QpLGQ9bnVsbH1sZXQgcnQ9bmV3IFVmZTtydC5zZXRBbmltYXRpb25Mb29wKFopLHRoaXMuc2V0QW5pbWF0aW9uTG9vcD1mdW5jdGlvbihvdCl7Vz1vdH0sdGhpcy5kaXNwb3NlPWZ1bmN0aW9uKCl7fX19O2Z1bmN0aW9uIFJncihlKXtmdW5jdGlvbiB0KHkseCl7eS5mb2dDb2xvci52YWx1ZS5jb3B5KHguY29sb3IpLHguaXNGb2c/KHkuZm9nTmVhci52YWx1ZT14Lm5lYXIseS5mb2dGYXIudmFsdWU9eC5mYXIpOnguaXNGb2dFeHAyJiYoeS5mb2dEZW5zaXR5LnZhbHVlPXguZGVuc2l0eSl9ZnVuY3Rpb24gcih5LHgsYixTLEMpe3guaXNNZXNoQmFzaWNNYXRlcmlhbD9uKHkseCk6eC5pc01lc2hMYW1iZXJ0TWF0ZXJpYWw/KG4oeSx4KSxsKHkseCkpOnguaXNNZXNoVG9vbk1hdGVyaWFsPyhuKHkseCksdSh5LHgpKTp4LmlzTWVzaFBob25nTWF0ZXJpYWw/KG4oeSx4KSxjKHkseCkpOnguaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD8obih5LHgpLHguaXNNZXNoUGh5c2ljYWxNYXRlcmlhbD9mKHkseCxDKTpoKHkseCkpOnguaXNNZXNoTWF0Y2FwTWF0ZXJpYWw/KG4oeSx4KSxwKHkseCkpOnguaXNNZXNoRGVwdGhNYXRlcmlhbD8obih5LHgpLGQoeSx4KSk6eC5pc01lc2hEaXN0YW5jZU1hdGVyaWFsPyhuKHkseCksZyh5LHgpKTp4LmlzTWVzaE5vcm1hbE1hdGVyaWFsPyhuKHkseCksXyh5LHgpKTp4LmlzTGluZUJhc2ljTWF0ZXJpYWw/KGkoeSx4KSx4LmlzTGluZURhc2hlZE1hdGVyaWFsJiZvKHkseCkpOnguaXNQb2ludHNNYXRlcmlhbD9hKHkseCxiLFMpOnguaXNTcHJpdGVNYXRlcmlhbD9zKHkseCk6eC5pc1NoYWRvd01hdGVyaWFsPyh5LmNvbG9yLnZhbHVlLmNvcHkoeC5jb2xvcikseS5vcGFjaXR5LnZhbHVlPXgub3BhY2l0eSk6eC5pc1NoYWRlck1hdGVyaWFsJiYoeC51bmlmb3Jtc05lZWRVcGRhdGU9ITEpfWZ1bmN0aW9uIG4oeSx4KXt5Lm9wYWNpdHkudmFsdWU9eC5vcGFjaXR5LHguY29sb3ImJnkuZGlmZnVzZS52YWx1ZS5jb3B5KHguY29sb3IpLHguZW1pc3NpdmUmJnkuZW1pc3NpdmUudmFsdWUuY29weSh4LmVtaXNzaXZlKS5tdWx0aXBseVNjYWxhcih4LmVtaXNzaXZlSW50ZW5zaXR5KSx4Lm1hcCYmKHkubWFwLnZhbHVlPXgubWFwKSx4LmFscGhhTWFwJiYoeS5hbHBoYU1hcC52YWx1ZT14LmFscGhhTWFwKSx4LnNwZWN1bGFyTWFwJiYoeS5zcGVjdWxhck1hcC52YWx1ZT14LnNwZWN1bGFyTWFwKSx4LmFscGhhVGVzdD4wJiYoeS5hbHBoYVRlc3QudmFsdWU9eC5hbHBoYVRlc3QpO2xldCBiPWUuZ2V0KHgpLmVudk1hcDtiJiYoeS5lbnZNYXAudmFsdWU9Yix5LmZsaXBFbnZNYXAudmFsdWU9Yi5pc0N1YmVUZXh0dXJlJiZiLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT09PSExPy0xOjEseS5yZWZsZWN0aXZpdHkudmFsdWU9eC5yZWZsZWN0aXZpdHkseS5pb3IudmFsdWU9eC5pb3IseS5yZWZyYWN0aW9uUmF0aW8udmFsdWU9eC5yZWZyYWN0aW9uUmF0aW8pLHgubGlnaHRNYXAmJih5LmxpZ2h0TWFwLnZhbHVlPXgubGlnaHRNYXAseS5saWdodE1hcEludGVuc2l0eS52YWx1ZT14LmxpZ2h0TWFwSW50ZW5zaXR5KSx4LmFvTWFwJiYoeS5hb01hcC52YWx1ZT14LmFvTWFwLHkuYW9NYXBJbnRlbnNpdHkudmFsdWU9eC5hb01hcEludGVuc2l0eSk7bGV0IFM7eC5tYXA/Uz14Lm1hcDp4LnNwZWN1bGFyTWFwP1M9eC5zcGVjdWxhck1hcDp4LmRpc3BsYWNlbWVudE1hcD9TPXguZGlzcGxhY2VtZW50TWFwOngubm9ybWFsTWFwP1M9eC5ub3JtYWxNYXA6eC5idW1wTWFwP1M9eC5idW1wTWFwOngucm91Z2huZXNzTWFwP1M9eC5yb3VnaG5lc3NNYXA6eC5tZXRhbG5lc3NNYXA/Uz14Lm1ldGFsbmVzc01hcDp4LmFscGhhTWFwP1M9eC5hbHBoYU1hcDp4LmVtaXNzaXZlTWFwP1M9eC5lbWlzc2l2ZU1hcDp4LmNsZWFyY29hdE1hcD9TPXguY2xlYXJjb2F0TWFwOnguY2xlYXJjb2F0Tm9ybWFsTWFwP1M9eC5jbGVhcmNvYXROb3JtYWxNYXA6eC5jbGVhcmNvYXRSb3VnaG5lc3NNYXA/Uz14LmNsZWFyY29hdFJvdWdobmVzc01hcDp4LnNwZWN1bGFySW50ZW5zaXR5TWFwP1M9eC5zcGVjdWxhckludGVuc2l0eU1hcDp4LnNwZWN1bGFyQ29sb3JNYXA/Uz14LnNwZWN1bGFyQ29sb3JNYXA6eC50cmFuc21pc3Npb25NYXA/Uz14LnRyYW5zbWlzc2lvbk1hcDp4LnRoaWNrbmVzc01hcD9TPXgudGhpY2tuZXNzTWFwOnguc2hlZW5Db2xvck1hcD9TPXguc2hlZW5Db2xvck1hcDp4LnNoZWVuUm91Z2huZXNzTWFwJiYoUz14LnNoZWVuUm91Z2huZXNzTWFwKSxTIT09dm9pZCAwJiYoUy5pc1dlYkdMUmVuZGVyVGFyZ2V0JiYoUz1TLnRleHR1cmUpLFMubWF0cml4QXV0b1VwZGF0ZT09PSEwJiZTLnVwZGF0ZU1hdHJpeCgpLHkudXZUcmFuc2Zvcm0udmFsdWUuY29weShTLm1hdHJpeCkpO2xldCBDO3guYW9NYXA/Qz14LmFvTWFwOngubGlnaHRNYXAmJihDPXgubGlnaHRNYXApLEMhPT12b2lkIDAmJihDLmlzV2ViR0xSZW5kZXJUYXJnZXQmJihDPUMudGV4dHVyZSksQy5tYXRyaXhBdXRvVXBkYXRlPT09ITAmJkMudXBkYXRlTWF0cml4KCkseS51djJUcmFuc2Zvcm0udmFsdWUuY29weShDLm1hdHJpeCkpfWZ1bmN0aW9uIGkoeSx4KXt5LmRpZmZ1c2UudmFsdWUuY29weSh4LmNvbG9yKSx5Lm9wYWNpdHkudmFsdWU9eC5vcGFjaXR5fWZ1bmN0aW9uIG8oeSx4KXt5LmRhc2hTaXplLnZhbHVlPXguZGFzaFNpemUseS50b3RhbFNpemUudmFsdWU9eC5kYXNoU2l6ZSt4LmdhcFNpemUseS5zY2FsZS52YWx1ZT14LnNjYWxlfWZ1bmN0aW9uIGEoeSx4LGIsUyl7eS5kaWZmdXNlLnZhbHVlLmNvcHkoeC5jb2xvcikseS5vcGFjaXR5LnZhbHVlPXgub3BhY2l0eSx5LnNpemUudmFsdWU9eC5zaXplKmIseS5zY2FsZS52YWx1ZT1TKi41LHgubWFwJiYoeS5tYXAudmFsdWU9eC5tYXApLHguYWxwaGFNYXAmJih5LmFscGhhTWFwLnZhbHVlPXguYWxwaGFNYXApLHguYWxwaGFUZXN0PjAmJih5LmFscGhhVGVzdC52YWx1ZT14LmFscGhhVGVzdCk7bGV0IEM7eC5tYXA/Qz14Lm1hcDp4LmFscGhhTWFwJiYoQz14LmFscGhhTWFwKSxDIT09dm9pZCAwJiYoQy5tYXRyaXhBdXRvVXBkYXRlPT09ITAmJkMudXBkYXRlTWF0cml4KCkseS51dlRyYW5zZm9ybS52YWx1ZS5jb3B5KEMubWF0cml4KSl9ZnVuY3Rpb24gcyh5LHgpe3kuZGlmZnVzZS52YWx1ZS5jb3B5KHguY29sb3IpLHkub3BhY2l0eS52YWx1ZT14Lm9wYWNpdHkseS5yb3RhdGlvbi52YWx1ZT14LnJvdGF0aW9uLHgubWFwJiYoeS5tYXAudmFsdWU9eC5tYXApLHguYWxwaGFNYXAmJih5LmFscGhhTWFwLnZhbHVlPXguYWxwaGFNYXApLHguYWxwaGFUZXN0PjAmJih5LmFscGhhVGVzdC52YWx1ZT14LmFscGhhVGVzdCk7bGV0IGI7eC5tYXA/Yj14Lm1hcDp4LmFscGhhTWFwJiYoYj14LmFscGhhTWFwKSxiIT09dm9pZCAwJiYoYi5tYXRyaXhBdXRvVXBkYXRlPT09ITAmJmIudXBkYXRlTWF0cml4KCkseS51dlRyYW5zZm9ybS52YWx1ZS5jb3B5KGIubWF0cml4KSl9ZnVuY3Rpb24gbCh5LHgpe3guZW1pc3NpdmVNYXAmJih5LmVtaXNzaXZlTWFwLnZhbHVlPXguZW1pc3NpdmVNYXApfWZ1bmN0aW9uIGMoeSx4KXt5LnNwZWN1bGFyLnZhbHVlLmNvcHkoeC5zcGVjdWxhcikseS5zaGluaW5lc3MudmFsdWU9TWF0aC5tYXgoeC5zaGluaW5lc3MsMWUtNCkseC5lbWlzc2l2ZU1hcCYmKHkuZW1pc3NpdmVNYXAudmFsdWU9eC5lbWlzc2l2ZU1hcCkseC5idW1wTWFwJiYoeS5idW1wTWFwLnZhbHVlPXguYnVtcE1hcCx5LmJ1bXBTY2FsZS52YWx1ZT14LmJ1bXBTY2FsZSx4LnNpZGU9PT1JaSYmKHkuYnVtcFNjYWxlLnZhbHVlKj0tMSkpLHgubm9ybWFsTWFwJiYoeS5ub3JtYWxNYXAudmFsdWU9eC5ub3JtYWxNYXAseS5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KHgubm9ybWFsU2NhbGUpLHguc2lkZT09PUlpJiZ5Lm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSx4LmRpc3BsYWNlbWVudE1hcCYmKHkuZGlzcGxhY2VtZW50TWFwLnZhbHVlPXguZGlzcGxhY2VtZW50TWFwLHkuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9eC5kaXNwbGFjZW1lbnRTY2FsZSx5LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9eC5kaXNwbGFjZW1lbnRCaWFzKX1mdW5jdGlvbiB1KHkseCl7eC5ncmFkaWVudE1hcCYmKHkuZ3JhZGllbnRNYXAudmFsdWU9eC5ncmFkaWVudE1hcCkseC5lbWlzc2l2ZU1hcCYmKHkuZW1pc3NpdmVNYXAudmFsdWU9eC5lbWlzc2l2ZU1hcCkseC5idW1wTWFwJiYoeS5idW1wTWFwLnZhbHVlPXguYnVtcE1hcCx5LmJ1bXBTY2FsZS52YWx1ZT14LmJ1bXBTY2FsZSx4LnNpZGU9PT1JaSYmKHkuYnVtcFNjYWxlLnZhbHVlKj0tMSkpLHgubm9ybWFsTWFwJiYoeS5ub3JtYWxNYXAudmFsdWU9eC5ub3JtYWxNYXAseS5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KHgubm9ybWFsU2NhbGUpLHguc2lkZT09PUlpJiZ5Lm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSx4LmRpc3BsYWNlbWVudE1hcCYmKHkuZGlzcGxhY2VtZW50TWFwLnZhbHVlPXguZGlzcGxhY2VtZW50TWFwLHkuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9eC5kaXNwbGFjZW1lbnRTY2FsZSx5LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9eC5kaXNwbGFjZW1lbnRCaWFzKX1mdW5jdGlvbiBoKHkseCl7eS5yb3VnaG5lc3MudmFsdWU9eC5yb3VnaG5lc3MseS5tZXRhbG5lc3MudmFsdWU9eC5tZXRhbG5lc3MseC5yb3VnaG5lc3NNYXAmJih5LnJvdWdobmVzc01hcC52YWx1ZT14LnJvdWdobmVzc01hcCkseC5tZXRhbG5lc3NNYXAmJih5Lm1ldGFsbmVzc01hcC52YWx1ZT14Lm1ldGFsbmVzc01hcCkseC5lbWlzc2l2ZU1hcCYmKHkuZW1pc3NpdmVNYXAudmFsdWU9eC5lbWlzc2l2ZU1hcCkseC5idW1wTWFwJiYoeS5idW1wTWFwLnZhbHVlPXguYnVtcE1hcCx5LmJ1bXBTY2FsZS52YWx1ZT14LmJ1bXBTY2FsZSx4LnNpZGU9PT1JaSYmKHkuYnVtcFNjYWxlLnZhbHVlKj0tMSkpLHgubm9ybWFsTWFwJiYoeS5ub3JtYWxNYXAudmFsdWU9eC5ub3JtYWxNYXAseS5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KHgubm9ybWFsU2NhbGUpLHguc2lkZT09PUlpJiZ5Lm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSx4LmRpc3BsYWNlbWVudE1hcCYmKHkuZGlzcGxhY2VtZW50TWFwLnZhbHVlPXguZGlzcGxhY2VtZW50TWFwLHkuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9eC5kaXNwbGFjZW1lbnRTY2FsZSx5LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9eC5kaXNwbGFjZW1lbnRCaWFzKSxlLmdldCh4KS5lbnZNYXAmJih5LmVudk1hcEludGVuc2l0eS52YWx1ZT14LmVudk1hcEludGVuc2l0eSl9ZnVuY3Rpb24gZih5LHgsYil7aCh5LHgpLHkuaW9yLnZhbHVlPXguaW9yLHguc2hlZW4+MCYmKHkuc2hlZW5Db2xvci52YWx1ZS5jb3B5KHguc2hlZW5Db2xvcikubXVsdGlwbHlTY2FsYXIoeC5zaGVlbikseS5zaGVlblJvdWdobmVzcy52YWx1ZT14LnNoZWVuUm91Z2huZXNzLHguc2hlZW5Db2xvck1hcCYmKHkuc2hlZW5Db2xvck1hcC52YWx1ZT14LnNoZWVuQ29sb3JNYXApLHguc2hlZW5Sb3VnaG5lc3NNYXAmJih5LnNoZWVuUm91Z2huZXNzTWFwLnZhbHVlPXguc2hlZW5Sb3VnaG5lc3NNYXApKSx4LmNsZWFyY29hdD4wJiYoeS5jbGVhcmNvYXQudmFsdWU9eC5jbGVhcmNvYXQseS5jbGVhcmNvYXRSb3VnaG5lc3MudmFsdWU9eC5jbGVhcmNvYXRSb3VnaG5lc3MseC5jbGVhcmNvYXRNYXAmJih5LmNsZWFyY29hdE1hcC52YWx1ZT14LmNsZWFyY29hdE1hcCkseC5jbGVhcmNvYXRSb3VnaG5lc3NNYXAmJih5LmNsZWFyY29hdFJvdWdobmVzc01hcC52YWx1ZT14LmNsZWFyY29hdFJvdWdobmVzc01hcCkseC5jbGVhcmNvYXROb3JtYWxNYXAmJih5LmNsZWFyY29hdE5vcm1hbFNjYWxlLnZhbHVlLmNvcHkoeC5jbGVhcmNvYXROb3JtYWxTY2FsZSkseS5jbGVhcmNvYXROb3JtYWxNYXAudmFsdWU9eC5jbGVhcmNvYXROb3JtYWxNYXAseC5zaWRlPT09SWkmJnkuY2xlYXJjb2F0Tm9ybWFsU2NhbGUudmFsdWUubmVnYXRlKCkpKSx4LnRyYW5zbWlzc2lvbj4wJiYoeS50cmFuc21pc3Npb24udmFsdWU9eC50cmFuc21pc3Npb24seS50cmFuc21pc3Npb25TYW1wbGVyTWFwLnZhbHVlPWIudGV4dHVyZSx5LnRyYW5zbWlzc2lvblNhbXBsZXJTaXplLnZhbHVlLnNldChiLndpZHRoLGIuaGVpZ2h0KSx4LnRyYW5zbWlzc2lvbk1hcCYmKHkudHJhbnNtaXNzaW9uTWFwLnZhbHVlPXgudHJhbnNtaXNzaW9uTWFwKSx5LnRoaWNrbmVzcy52YWx1ZT14LnRoaWNrbmVzcyx4LnRoaWNrbmVzc01hcCYmKHkudGhpY2tuZXNzTWFwLnZhbHVlPXgudGhpY2tuZXNzTWFwKSx5LmF0dGVudWF0aW9uRGlzdGFuY2UudmFsdWU9eC5hdHRlbnVhdGlvbkRpc3RhbmNlLHkuYXR0ZW51YXRpb25Db2xvci52YWx1ZS5jb3B5KHguYXR0ZW51YXRpb25Db2xvcikpLHkuc3BlY3VsYXJJbnRlbnNpdHkudmFsdWU9eC5zcGVjdWxhckludGVuc2l0eSx5LnNwZWN1bGFyQ29sb3IudmFsdWUuY29weSh4LnNwZWN1bGFyQ29sb3IpLHguc3BlY3VsYXJJbnRlbnNpdHlNYXAmJih5LnNwZWN1bGFySW50ZW5zaXR5TWFwLnZhbHVlPXguc3BlY3VsYXJJbnRlbnNpdHlNYXApLHguc3BlY3VsYXJDb2xvck1hcCYmKHkuc3BlY3VsYXJDb2xvck1hcC52YWx1ZT14LnNwZWN1bGFyQ29sb3JNYXApfWZ1bmN0aW9uIHAoeSx4KXt4Lm1hdGNhcCYmKHkubWF0Y2FwLnZhbHVlPXgubWF0Y2FwKSx4LmJ1bXBNYXAmJih5LmJ1bXBNYXAudmFsdWU9eC5idW1wTWFwLHkuYnVtcFNjYWxlLnZhbHVlPXguYnVtcFNjYWxlLHguc2lkZT09PUlpJiYoeS5idW1wU2NhbGUudmFsdWUqPS0xKSkseC5ub3JtYWxNYXAmJih5Lm5vcm1hbE1hcC52YWx1ZT14Lm5vcm1hbE1hcCx5Lm5vcm1hbFNjYWxlLnZhbHVlLmNvcHkoeC5ub3JtYWxTY2FsZSkseC5zaWRlPT09SWkmJnkubm9ybWFsU2NhbGUudmFsdWUubmVnYXRlKCkpLHguZGlzcGxhY2VtZW50TWFwJiYoeS5kaXNwbGFjZW1lbnRNYXAudmFsdWU9eC5kaXNwbGFjZW1lbnRNYXAseS5kaXNwbGFjZW1lbnRTY2FsZS52YWx1ZT14LmRpc3BsYWNlbWVudFNjYWxlLHkuZGlzcGxhY2VtZW50Qmlhcy52YWx1ZT14LmRpc3BsYWNlbWVudEJpYXMpfWZ1bmN0aW9uIGQoeSx4KXt4LmRpc3BsYWNlbWVudE1hcCYmKHkuZGlzcGxhY2VtZW50TWFwLnZhbHVlPXguZGlzcGxhY2VtZW50TWFwLHkuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9eC5kaXNwbGFjZW1lbnRTY2FsZSx5LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9eC5kaXNwbGFjZW1lbnRCaWFzKX1mdW5jdGlvbiBnKHkseCl7eC5kaXNwbGFjZW1lbnRNYXAmJih5LmRpc3BsYWNlbWVudE1hcC52YWx1ZT14LmRpc3BsYWNlbWVudE1hcCx5LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPXguZGlzcGxhY2VtZW50U2NhbGUseS5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPXguZGlzcGxhY2VtZW50QmlhcykseS5yZWZlcmVuY2VQb3NpdGlvbi52YWx1ZS5jb3B5KHgucmVmZXJlbmNlUG9zaXRpb24pLHkubmVhckRpc3RhbmNlLnZhbHVlPXgubmVhckRpc3RhbmNlLHkuZmFyRGlzdGFuY2UudmFsdWU9eC5mYXJEaXN0YW5jZX1mdW5jdGlvbiBfKHkseCl7eC5idW1wTWFwJiYoeS5idW1wTWFwLnZhbHVlPXguYnVtcE1hcCx5LmJ1bXBTY2FsZS52YWx1ZT14LmJ1bXBTY2FsZSx4LnNpZGU9PT1JaSYmKHkuYnVtcFNjYWxlLnZhbHVlKj0tMSkpLHgubm9ybWFsTWFwJiYoeS5ub3JtYWxNYXAudmFsdWU9eC5ub3JtYWxNYXAseS5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KHgubm9ybWFsU2NhbGUpLHguc2lkZT09PUlpJiZ5Lm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSx4LmRpc3BsYWNlbWVudE1hcCYmKHkuZGlzcGxhY2VtZW50TWFwLnZhbHVlPXguZGlzcGxhY2VtZW50TWFwLHkuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9eC5kaXNwbGFjZW1lbnRTY2FsZSx5LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9eC5kaXNwbGFjZW1lbnRCaWFzKX1yZXR1cm57cmVmcmVzaEZvZ1VuaWZvcm1zOnQscmVmcmVzaE1hdGVyaWFsVW5pZm9ybXM6cn19ZnVuY3Rpb24gTmdyKCl7bGV0IGU9dDYoImNhbnZhcyIpO3JldHVybiBlLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixlfWZ1bmN0aW9uIHJuKGU9e30pe2xldCB0PWUuY2FudmFzIT09dm9pZCAwP2UuY2FudmFzOk5ncigpLHI9ZS5jb250ZXh0IT09dm9pZCAwP2UuY29udGV4dDpudWxsLG49ZS5hbHBoYSE9PXZvaWQgMD9lLmFscGhhOiExLGk9ZS5kZXB0aCE9PXZvaWQgMD9lLmRlcHRoOiEwLG89ZS5zdGVuY2lsIT09dm9pZCAwP2Uuc3RlbmNpbDohMCxhPWUuYW50aWFsaWFzIT09dm9pZCAwP2UuYW50aWFsaWFzOiExLHM9ZS5wcmVtdWx0aXBsaWVkQWxwaGEhPT12b2lkIDA/ZS5wcmVtdWx0aXBsaWVkQWxwaGE6ITAsbD1lLnByZXNlcnZlRHJhd2luZ0J1ZmZlciE9PXZvaWQgMD9lLnByZXNlcnZlRHJhd2luZ0J1ZmZlcjohMSxjPWUucG93ZXJQcmVmZXJlbmNlIT09dm9pZCAwP2UucG93ZXJQcmVmZXJlbmNlOiJkZWZhdWx0Iix1PWUuZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdCE9PXZvaWQgMD9lLmZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQ6ITEsaD1udWxsLGY9bnVsbCxwPVtdLGQ9W107dGhpcy5kb21FbGVtZW50PXQsdGhpcy5kZWJ1Zz17Y2hlY2tTaGFkZXJFcnJvcnM6ITB9LHRoaXMuYXV0b0NsZWFyPSEwLHRoaXMuYXV0b0NsZWFyQ29sb3I9ITAsdGhpcy5hdXRvQ2xlYXJEZXB0aD0hMCx0aGlzLmF1dG9DbGVhclN0ZW5jaWw9ITAsdGhpcy5zb3J0T2JqZWN0cz0hMCx0aGlzLmNsaXBwaW5nUGxhbmVzPVtdLHRoaXMubG9jYWxDbGlwcGluZ0VuYWJsZWQ9ITEsdGhpcy5vdXRwdXRFbmNvZGluZz10bSx0aGlzLnBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzPSExLHRoaXMudG9uZU1hcHBpbmc9WmQsdGhpcy50b25lTWFwcGluZ0V4cG9zdXJlPTE7bGV0IGc9dGhpcyxfPSExLHk9MCx4PTAsYj1udWxsLFM9LTEsQz1udWxsLFA9bmV3IGVuLGs9bmV3IGVuLE89bnVsbCxEPXQud2lkdGgsQj10LmhlaWdodCxJPTEsTD1udWxsLFI9bnVsbCxGPW5ldyBlbigwLDAsRCxCKSx6PW5ldyBlbigwLDAsRCxCKSxVPSExLFc9bmV3IEQxLFo9ITEscnQ9ITEsb3Q9bnVsbCxzdD1uZXcgTWUsU3Q9bmV3IGosYnQ9e2JhY2tncm91bmQ6bnVsbCxmb2c6bnVsbCxlbnZpcm9ubWVudDpudWxsLG92ZXJyaWRlTWF0ZXJpYWw6bnVsbCxpc1NjZW5lOiEwfTtmdW5jdGlvbiBNdCgpe3JldHVybiBiPT09bnVsbD9JOjF9bGV0IGx0PXI7ZnVuY3Rpb24gS3QoSyxndCl7Zm9yKGxldCBFdD0wO0V0PEsubGVuZ3RoO0V0Kyspe2xldCB4dD1LW0V0XSxGdD10LmdldENvbnRleHQoeHQsZ3QpO2lmKEZ0IT09bnVsbClyZXR1cm4gRnR9cmV0dXJuIG51bGx9dHJ5e2xldCBLPXthbHBoYTohMCxkZXB0aDppLHN0ZW5jaWw6byxhbnRpYWxpYXM6YSxwcmVtdWx0aXBsaWVkQWxwaGE6cyxwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6bCxwb3dlclByZWZlcmVuY2U6YyxmYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0OnV9O2lmKCJzZXRBdHRyaWJ1dGUiaW4gdCYmdC5zZXRBdHRyaWJ1dGUoImRhdGEtZW5naW5lIixgdGhyZWUuanMgciR7alV9YCksdC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IixmZSwhMSksdC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRyZXN0b3JlZCIsYXQsITEpLGx0PT09bnVsbCl7bGV0IGd0PVsid2ViZ2wyIiwid2ViZ2wiLCJleHBlcmltZW50YWwtd2ViZ2wiXTtpZihnLmlzV2ViR0wxUmVuZGVyZXI9PT0hMCYmZ3Quc2hpZnQoKSxsdD1LdChndCxLKSxsdD09PW51bGwpdGhyb3cgS3QoZ3QpP25ldyBFcnJvcigiRXJyb3IgY3JlYXRpbmcgV2ViR0wgY29udGV4dCB3aXRoIHlvdXIgc2VsZWN0ZWQgYXR0cmlidXRlcy4iKTpuZXcgRXJyb3IoIkVycm9yIGNyZWF0aW5nIFdlYkdMIGNvbnRleHQuIil9bHQuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0PT09dm9pZCAwJiYobHQuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJue3JhbmdlTWluOjEscmFuZ2VNYXg6MSxwcmVjaXNpb246MX19KX1jYXRjaChLKXt0aHJvdyBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAiK0subWVzc2FnZSksS31sZXQgX3QsY3QsWCxldCxkdCxxLHB0LGh0LHd0LGt0LGllLGVlLExlLGFyLGZyLHR0LCQsSXQsJHQsaGUsVHQsYmUsbnQ7ZnVuY3Rpb24gQ3QoKXtfdD1uZXcgbm1yKGx0KSxjdD1uZXcgWmRyKGx0LF90LGUpLF90LmluaXQoY3QpLGJlPW5ldyBRZmUobHQsX3QsY3QpLFg9bmV3IElncihsdCxfdCxjdCksZXQ9bmV3IGFtcihsdCksZHQ9bmV3IHZncixxPW5ldyBMZ3IobHQsX3QsWCxkdCxjdCxiZSxldCkscHQ9bmV3IFFkcihnKSxodD1uZXcgcm1yKGcpLHd0PW5ldyBiZnIobHQsY3QpLG50PW5ldyAkZHIobHQsX3Qsd3QsY3QpLGt0PW5ldyBpbXIobHQsd3QsZXQsbnQpLGllPW5ldyB1bXIobHQsa3Qsd3QsZXQpLCR0PW5ldyBjbXIobHQsY3QscSksdHQ9bmV3IEpkcihkdCksZWU9bmV3IHlncihnLHB0LGh0LF90LGN0LG50LHR0KSxMZT1uZXcgUmdyKGR0KSxhcj1uZXcgYmdyLGZyPW5ldyBDZ3IoX3QsY3QpLEl0PW5ldyBYZHIoZyxwdCxYLGllLG4scyksJD1uZXcgSmZlKGcsaWUsY3QpLGhlPW5ldyBLZHIobHQsX3QsZXQsY3QpLFR0PW5ldyBvbXIobHQsX3QsZXQsY3QpLGV0LnByb2dyYW1zPWVlLnByb2dyYW1zLGcuY2FwYWJpbGl0aWVzPWN0LGcuZXh0ZW5zaW9ucz1fdCxnLnByb3BlcnRpZXM9ZHQsZy5yZW5kZXJMaXN0cz1hcixnLnNoYWRvd01hcD0kLGcuc3RhdGU9WCxnLmluZm89ZXR9Q3QoKTtsZXQgV3Q9bmV3IGVodChnLGx0KTt0aGlzLnhyPVd0LHRoaXMuZ2V0Q29udGV4dD1mdW5jdGlvbigpe3JldHVybiBsdH0sdGhpcy5nZXRDb250ZXh0QXR0cmlidXRlcz1mdW5jdGlvbigpe3JldHVybiBsdC5nZXRDb250ZXh0QXR0cmlidXRlcygpfSx0aGlzLmZvcmNlQ29udGV4dExvc3M9ZnVuY3Rpb24oKXtsZXQgSz1fdC5nZXQoIldFQkdMX2xvc2VfY29udGV4dCIpO0smJksubG9zZUNvbnRleHQoKX0sdGhpcy5mb3JjZUNvbnRleHRSZXN0b3JlPWZ1bmN0aW9uKCl7bGV0IEs9X3QuZ2V0KCJXRUJHTF9sb3NlX2NvbnRleHQiKTtLJiZLLnJlc3RvcmVDb250ZXh0KCl9LHRoaXMuZ2V0UGl4ZWxSYXRpbz1mdW5jdGlvbigpe3JldHVybiBJfSx0aGlzLnNldFBpeGVsUmF0aW89ZnVuY3Rpb24oSyl7SyE9PXZvaWQgMCYmKEk9Syx0aGlzLnNldFNpemUoRCxCLCExKSl9LHRoaXMuZ2V0U2l6ZT1mdW5jdGlvbihLKXtyZXR1cm4gSy5zZXQoRCxCKX0sdGhpcy5zZXRTaXplPWZ1bmN0aW9uKEssZ3QsRXQpe2lmKFd0LmlzUHJlc2VudGluZyl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBDYW4ndCBjaGFuZ2Ugc2l6ZSB3aGlsZSBWUiBkZXZpY2UgaXMgcHJlc2VudGluZy4iKTtyZXR1cm59RD1LLEI9Z3QsdC53aWR0aD1NYXRoLmZsb29yKEsqSSksdC5oZWlnaHQ9TWF0aC5mbG9vcihndCpJKSxFdCE9PSExJiYodC5zdHlsZS53aWR0aD1LKyJweCIsdC5zdHlsZS5oZWlnaHQ9Z3QrInB4IiksdGhpcy5zZXRWaWV3cG9ydCgwLDAsSyxndCl9LHRoaXMuZ2V0RHJhd2luZ0J1ZmZlclNpemU9ZnVuY3Rpb24oSyl7cmV0dXJuIEsuc2V0KEQqSSxCKkkpLmZsb29yKCl9LHRoaXMuc2V0RHJhd2luZ0J1ZmZlclNpemU9ZnVuY3Rpb24oSyxndCxFdCl7RD1LLEI9Z3QsST1FdCx0LndpZHRoPU1hdGguZmxvb3IoSypFdCksdC5oZWlnaHQ9TWF0aC5mbG9vcihndCpFdCksdGhpcy5zZXRWaWV3cG9ydCgwLDAsSyxndCl9LHRoaXMuZ2V0Q3VycmVudFZpZXdwb3J0PWZ1bmN0aW9uKEspe3JldHVybiBLLmNvcHkoUCl9LHRoaXMuZ2V0Vmlld3BvcnQ9ZnVuY3Rpb24oSyl7cmV0dXJuIEsuY29weShGKX0sdGhpcy5zZXRWaWV3cG9ydD1mdW5jdGlvbihLLGd0LEV0LHh0KXtLLmlzVmVjdG9yND9GLnNldChLLngsSy55LEsueixLLncpOkYuc2V0KEssZ3QsRXQseHQpLFgudmlld3BvcnQoUC5jb3B5KEYpLm11bHRpcGx5U2NhbGFyKEkpLmZsb29yKCkpfSx0aGlzLmdldFNjaXNzb3I9ZnVuY3Rpb24oSyl7cmV0dXJuIEsuY29weSh6KX0sdGhpcy5zZXRTY2lzc29yPWZ1bmN0aW9uKEssZ3QsRXQseHQpe0suaXNWZWN0b3I0P3ouc2V0KEsueCxLLnksSy56LEsudyk6ei5zZXQoSyxndCxFdCx4dCksWC5zY2lzc29yKGsuY29weSh6KS5tdWx0aXBseVNjYWxhcihJKS5mbG9vcigpKX0sdGhpcy5nZXRTY2lzc29yVGVzdD1mdW5jdGlvbigpe3JldHVybiBVfSx0aGlzLnNldFNjaXNzb3JUZXN0PWZ1bmN0aW9uKEspe1guc2V0U2Npc3NvclRlc3QoVT1LKX0sdGhpcy5zZXRPcGFxdWVTb3J0PWZ1bmN0aW9uKEspe0w9S30sdGhpcy5zZXRUcmFuc3BhcmVudFNvcnQ9ZnVuY3Rpb24oSyl7Uj1LfSx0aGlzLmdldENsZWFyQ29sb3I9ZnVuY3Rpb24oSyl7cmV0dXJuIEsuY29weShJdC5nZXRDbGVhckNvbG9yKCkpfSx0aGlzLnNldENsZWFyQ29sb3I9ZnVuY3Rpb24oKXtJdC5zZXRDbGVhckNvbG9yLmFwcGx5KEl0LGFyZ3VtZW50cyl9LHRoaXMuZ2V0Q2xlYXJBbHBoYT1mdW5jdGlvbigpe3JldHVybiBJdC5nZXRDbGVhckFscGhhKCl9LHRoaXMuc2V0Q2xlYXJBbHBoYT1mdW5jdGlvbigpe0l0LnNldENsZWFyQWxwaGEuYXBwbHkoSXQsYXJndW1lbnRzKX0sdGhpcy5jbGVhcj1mdW5jdGlvbihLLGd0LEV0KXtsZXQgeHQ9MDsoSz09PXZvaWQgMHx8SykmJih4dHw9MTYzODQpLChndD09PXZvaWQgMHx8Z3QpJiYoeHR8PTI1NiksKEV0PT09dm9pZCAwfHxFdCkmJih4dHw9MTAyNCksbHQuY2xlYXIoeHQpfSx0aGlzLmNsZWFyQ29sb3I9ZnVuY3Rpb24oKXt0aGlzLmNsZWFyKCEwLCExLCExKX0sdGhpcy5jbGVhckRlcHRoPWZ1bmN0aW9uKCl7dGhpcy5jbGVhcighMSwhMCwhMSl9LHRoaXMuY2xlYXJTdGVuY2lsPWZ1bmN0aW9uKCl7dGhpcy5jbGVhcighMSwhMSwhMCl9LHRoaXMuZGlzcG9zZT1mdW5jdGlvbigpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0bG9zdCIsZmUsITEpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0cmVzdG9yZWQiLGF0LCExKSxhci5kaXNwb3NlKCksZnIuZGlzcG9zZSgpLGR0LmRpc3Bvc2UoKSxwdC5kaXNwb3NlKCksaHQuZGlzcG9zZSgpLGllLmRpc3Bvc2UoKSxudC5kaXNwb3NlKCksZWUuZGlzcG9zZSgpLFd0LmRpc3Bvc2UoKSxXdC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZXNzaW9uc3RhcnQiLHplKSxXdC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZXNzaW9uZW5kIix5biksb3QmJihvdC5kaXNwb3NlKCksb3Q9bnVsbCksV2kuc3RvcCgpfTtmdW5jdGlvbiBmZShLKXtLLnByZXZlbnREZWZhdWx0KCksY29uc29sZS5sb2coIlRIUkVFLldlYkdMUmVuZGVyZXI6IENvbnRleHQgTG9zdC4iKSxfPSEwfWZ1bmN0aW9uIGF0KCl7Y29uc29sZS5sb2coIlRIUkVFLldlYkdMUmVuZGVyZXI6IENvbnRleHQgUmVzdG9yZWQuIiksXz0hMTtsZXQgSz1ldC5hdXRvUmVzZXQsZ3Q9JC5lbmFibGVkLEV0PSQuYXV0b1VwZGF0ZSx4dD0kLm5lZWRzVXBkYXRlLEZ0PSQudHlwZTtDdCgpLGV0LmF1dG9SZXNldD1LLCQuZW5hYmxlZD1ndCwkLmF1dG9VcGRhdGU9RXQsJC5uZWVkc1VwZGF0ZT14dCwkLnR5cGU9RnR9ZnVuY3Rpb24gc2UoSyl7bGV0IGd0PUsudGFyZ2V0O2d0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHNlKSxRdChndCl9ZnVuY3Rpb24gUXQoSyl7Q2UoSyksZHQucmVtb3ZlKEspfWZ1bmN0aW9uIENlKEspe2xldCBndD1kdC5nZXQoSykucHJvZ3JhbXM7Z3QhPT12b2lkIDAmJihndC5mb3JFYWNoKGZ1bmN0aW9uKEV0KXtlZS5yZWxlYXNlUHJvZ3JhbShFdCl9KSxLLmlzU2hhZGVyTWF0ZXJpYWwmJmVlLnJlbGVhc2VTaGFkZXJDYWNoZShLKSl9dGhpcy5yZW5kZXJCdWZmZXJEaXJlY3Q9ZnVuY3Rpb24oSyxndCxFdCx4dCxGdCxWZSl7Z3Q9PT1udWxsJiYoZ3Q9YnQpO2xldCBVZT1GdC5pc01lc2gmJkZ0Lm1hdHJpeFdvcmxkLmRldGVybWluYW50KCk8MCx0cj1jbihLLGd0LEV0LHh0LEZ0KTtYLnNldE1hdGVyaWFsKHh0LFVlKTtsZXQgS2U9RXQuaW5kZXgsWHI9RXQuYXR0cmlidXRlcy5wb3NpdGlvbjtpZihLZT09PW51bGwpe2lmKFhyPT09dm9pZCAwfHxYci5jb3VudD09PTApcmV0dXJufWVsc2UgaWYoS2UuY291bnQ9PT0wKXJldHVybjtsZXQgX3I9MTt4dC53aXJlZnJhbWU9PT0hMCYmKEtlPWt0LmdldFdpcmVmcmFtZUF0dHJpYnV0ZShFdCksX3I9MiksbnQuc2V0dXAoRnQseHQsdHIsRXQsS2UpO2xldCBQcixYbj1oZTtLZSE9PW51bGwmJihQcj13dC5nZXQoS2UpLFhuPVR0LFhuLnNldEluZGV4KFByKSk7bGV0IGlwPUtlIT09bnVsbD9LZS5jb3VudDpYci5jb3VudCxobT1FdC5kcmF3UmFuZ2Uuc3RhcnQqX3IsbXI9RXQuZHJhd1JhbmdlLmNvdW50Kl9yLEJsPVZlIT09bnVsbD9WZS5zdGFydCpfcjowLCRuPVZlIT09bnVsbD9WZS5jb3VudCpfcjoxLzAsSGw9TWF0aC5tYXgoaG0sQmwpLGh4PU1hdGgubWluKGlwLGhtK21yLEJsKyRuKS0xLFZsPU1hdGgubWF4KDAsaHgtSGwrMSk7aWYoVmwhPT0wKXtpZihGdC5pc01lc2gpeHQud2lyZWZyYW1lPT09ITA/KFguc2V0TGluZVdpZHRoKHh0LndpcmVmcmFtZUxpbmV3aWR0aCpNdCgpKSxYbi5zZXRNb2RlKDEpKTpYbi5zZXRNb2RlKDQpO2Vsc2UgaWYoRnQuaXNMaW5lKXtsZXQgVWw9eHQubGluZXdpZHRoO1VsPT09dm9pZCAwJiYoVWw9MSksWC5zZXRMaW5lV2lkdGgoVWwqTXQoKSksRnQuaXNMaW5lU2VnbWVudHM/WG4uc2V0TW9kZSgxKTpGdC5pc0xpbmVMb29wP1huLnNldE1vZGUoMik6WG4uc2V0TW9kZSgzKX1lbHNlIEZ0LmlzUG9pbnRzP1huLnNldE1vZGUoMCk6RnQuaXNTcHJpdGUmJlhuLnNldE1vZGUoNCk7aWYoRnQuaXNJbnN0YW5jZWRNZXNoKVhuLnJlbmRlckluc3RhbmNlcyhIbCxWbCxGdC5jb3VudCk7ZWxzZSBpZihFdC5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5KXtsZXQgVWw9TWF0aC5taW4oRXQuaW5zdGFuY2VDb3VudCxFdC5fbWF4SW5zdGFuY2VDb3VudCk7WG4ucmVuZGVySW5zdGFuY2VzKEhsLFZsLFVsKX1lbHNlIFhuLnJlbmRlcihIbCxWbCl9fSx0aGlzLmNvbXBpbGU9ZnVuY3Rpb24oSyxndCl7Zj1mci5nZXQoSyksZi5pbml0KCksZC5wdXNoKGYpLEsudHJhdmVyc2VWaXNpYmxlKGZ1bmN0aW9uKEV0KXtFdC5pc0xpZ2h0JiZFdC5sYXllcnMudGVzdChndC5sYXllcnMpJiYoZi5wdXNoTGlnaHQoRXQpLEV0LmNhc3RTaGFkb3cmJmYucHVzaFNoYWRvdyhFdCkpfSksZi5zZXR1cExpZ2h0cyhnLnBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzKSxLLnRyYXZlcnNlKGZ1bmN0aW9uKEV0KXtsZXQgeHQ9RXQubWF0ZXJpYWw7aWYoeHQpaWYoQXJyYXkuaXNBcnJheSh4dCkpZm9yKGxldCBGdD0wO0Z0PHh0Lmxlbmd0aDtGdCsrKXtsZXQgVmU9eHRbRnRdO3VtKFZlLEssRXQpfWVsc2UgdW0oeHQsSyxFdCl9KSxkLnBvcCgpLGY9bnVsbH07bGV0IFB0PW51bGw7ZnVuY3Rpb24gTnQoSyl7UHQmJlB0KEspfWZ1bmN0aW9uIHplKCl7V2kuc3RvcCgpfWZ1bmN0aW9uIHluKCl7V2kuc3RhcnQoKX1sZXQgV2k9bmV3IFVmZTtXaS5zZXRBbmltYXRpb25Mb29wKE50KSx0eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIiYmV2kuc2V0Q29udGV4dCh3aW5kb3cpLHRoaXMuc2V0QW5pbWF0aW9uTG9vcD1mdW5jdGlvbihLKXtQdD1LLFd0LnNldEFuaW1hdGlvbkxvb3AoSyksSz09PW51bGw/V2kuc3RvcCgpOldpLnN0YXJ0KCl9LFd0LmFkZEV2ZW50TGlzdGVuZXIoInNlc3Npb25zdGFydCIsemUpLFd0LmFkZEV2ZW50TGlzdGVuZXIoInNlc3Npb25lbmQiLHluKSx0aGlzLnJlbmRlcj1mdW5jdGlvbihLLGd0KXtpZihndCE9PXZvaWQgMCYmZ3QuaXNDYW1lcmEhPT0hMCl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZW5kZXI6IGNhbWVyYSBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgVEhSRUUuQ2FtZXJhLiIpO3JldHVybn1pZihfPT09ITApcmV0dXJuO0suYXV0b1VwZGF0ZT09PSEwJiZLLnVwZGF0ZU1hdHJpeFdvcmxkKCksZ3QucGFyZW50PT09bnVsbCYmZ3QudXBkYXRlTWF0cml4V29ybGQoKSxXdC5lbmFibGVkPT09ITAmJld0LmlzUHJlc2VudGluZz09PSEwJiYoV3QuY2FtZXJhQXV0b1VwZGF0ZT09PSEwJiZXdC51cGRhdGVDYW1lcmEoZ3QpLGd0PVd0LmdldENhbWVyYSgpKSxLLmlzU2NlbmU9PT0hMCYmSy5vbkJlZm9yZVJlbmRlcihnLEssZ3QsYiksZj1mci5nZXQoSyxkLmxlbmd0aCksZi5pbml0KCksZC5wdXNoKGYpLHN0Lm11bHRpcGx5TWF0cmljZXMoZ3QucHJvamVjdGlvbk1hdHJpeCxndC5tYXRyaXhXb3JsZEludmVyc2UpLFcuc2V0RnJvbVByb2plY3Rpb25NYXRyaXgoc3QpLHJ0PXRoaXMubG9jYWxDbGlwcGluZ0VuYWJsZWQsWj10dC5pbml0KHRoaXMuY2xpcHBpbmdQbGFuZXMscnQsZ3QpLGg9YXIuZ2V0KEsscC5sZW5ndGgpLGguaW5pdCgpLHAucHVzaChoKSxBcihLLGd0LDAsZy5zb3J0T2JqZWN0cyksaC5maW5pc2goKSxnLnNvcnRPYmplY3RzPT09ITAmJmguc29ydChMLFIpLFo9PT0hMCYmdHQuYmVnaW5TaGFkb3dzKCk7bGV0IEV0PWYuc3RhdGUuc2hhZG93c0FycmF5O2lmKCQucmVuZGVyKEV0LEssZ3QpLFo9PT0hMCYmdHQuZW5kU2hhZG93cygpLHRoaXMuaW5mby5hdXRvUmVzZXQ9PT0hMCYmdGhpcy5pbmZvLnJlc2V0KCksSXQucmVuZGVyKGgsSyksZi5zZXR1cExpZ2h0cyhnLnBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzKSxndC5pc0FycmF5Q2FtZXJhKXtsZXQgeHQ9Z3QuY2FtZXJhcztmb3IobGV0IEZ0PTAsVmU9eHQubGVuZ3RoO0Z0PFZlO0Z0Kyspe2xldCBVZT14dFtGdF07SWEoaCxLLFVlLFVlLnZpZXdwb3J0KX19ZWxzZSBJYShoLEssZ3QpO2IhPT1udWxsJiYocS51cGRhdGVNdWx0aXNhbXBsZVJlbmRlclRhcmdldChiKSxxLnVwZGF0ZVJlbmRlclRhcmdldE1pcG1hcChiKSksSy5pc1NjZW5lPT09ITAmJksub25BZnRlclJlbmRlcihnLEssZ3QpLFguYnVmZmVycy5kZXB0aC5zZXRUZXN0KCEwKSxYLmJ1ZmZlcnMuZGVwdGguc2V0TWFzayghMCksWC5idWZmZXJzLmNvbG9yLnNldE1hc2soITApLFguc2V0UG9seWdvbk9mZnNldCghMSksbnQucmVzZXREZWZhdWx0U3RhdGUoKSxTPS0xLEM9bnVsbCxkLnBvcCgpLGQubGVuZ3RoPjA/Zj1kW2QubGVuZ3RoLTFdOmY9bnVsbCxwLnBvcCgpLHAubGVuZ3RoPjA/aD1wW3AubGVuZ3RoLTFdOmg9bnVsbH07ZnVuY3Rpb24gQXIoSyxndCxFdCx4dCl7aWYoSy52aXNpYmxlPT09ITEpcmV0dXJuO2lmKEsubGF5ZXJzLnRlc3QoZ3QubGF5ZXJzKSl7aWYoSy5pc0dyb3VwKUV0PUsucmVuZGVyT3JkZXI7ZWxzZSBpZihLLmlzTE9EKUsuYXV0b1VwZGF0ZT09PSEwJiZLLnVwZGF0ZShndCk7ZWxzZSBpZihLLmlzTGlnaHQpZi5wdXNoTGlnaHQoSyksSy5jYXN0U2hhZG93JiZmLnB1c2hTaGFkb3coSyk7ZWxzZSBpZihLLmlzU3ByaXRlKXtpZighSy5mcnVzdHVtQ3VsbGVkfHxXLmludGVyc2VjdHNTcHJpdGUoSykpe3h0JiZTdC5zZXRGcm9tTWF0cml4UG9zaXRpb24oSy5tYXRyaXhXb3JsZCkuYXBwbHlNYXRyaXg0KHN0KTtsZXQgVWU9aWUudXBkYXRlKEspLHRyPUsubWF0ZXJpYWw7dHIudmlzaWJsZSYmaC5wdXNoKEssVWUsdHIsRXQsU3QueixudWxsKX19ZWxzZSBpZigoSy5pc01lc2h8fEsuaXNMaW5lfHxLLmlzUG9pbnRzKSYmKEsuaXNTa2lubmVkTWVzaCYmSy5za2VsZXRvbi5mcmFtZSE9PWV0LnJlbmRlci5mcmFtZSYmKEsuc2tlbGV0b24udXBkYXRlKCksSy5za2VsZXRvbi5mcmFtZT1ldC5yZW5kZXIuZnJhbWUpLCFLLmZydXN0dW1DdWxsZWR8fFcuaW50ZXJzZWN0c09iamVjdChLKSkpe3h0JiZTdC5zZXRGcm9tTWF0cml4UG9zaXRpb24oSy5tYXRyaXhXb3JsZCkuYXBwbHlNYXRyaXg0KHN0KTtsZXQgVWU9aWUudXBkYXRlKEspLHRyPUsubWF0ZXJpYWw7aWYoQXJyYXkuaXNBcnJheSh0cikpe2xldCBLZT1VZS5ncm91cHM7Zm9yKGxldCBYcj0wLF9yPUtlLmxlbmd0aDtYcjxfcjtYcisrKXtsZXQgUHI9S2VbWHJdLFhuPXRyW1ByLm1hdGVyaWFsSW5kZXhdO1huJiZYbi52aXNpYmxlJiZoLnB1c2goSyxVZSxYbixFdCxTdC56LFByKX19ZWxzZSB0ci52aXNpYmxlJiZoLnB1c2goSyxVZSx0cixFdCxTdC56LG51bGwpfX1sZXQgVmU9Sy5jaGlsZHJlbjtmb3IobGV0IFVlPTAsdHI9VmUubGVuZ3RoO1VlPHRyO1VlKyspQXIoVmVbVWVdLGd0LEV0LHh0KX1mdW5jdGlvbiBJYShLLGd0LEV0LHh0KXtsZXQgRnQ9Sy5vcGFxdWUsVmU9Sy50cmFuc21pc3NpdmUsVWU9Sy50cmFuc3BhcmVudDtmLnNldHVwTGlnaHRzVmlldyhFdCksVmUubGVuZ3RoPjAmJmhvKEZ0LGd0LEV0KSx4dCYmWC52aWV3cG9ydChQLmNvcHkoeHQpKSxGdC5sZW5ndGg+MCYmTGEoRnQsZ3QsRXQpLFZlLmxlbmd0aD4wJiZMYShWZSxndCxFdCksVWUubGVuZ3RoPjAmJkxhKFVlLGd0LEV0KX1mdW5jdGlvbiBobyhLLGd0LEV0KXtpZihvdD09PW51bGwpe2xldCBVZT1hPT09ITAmJmN0LmlzV2ViR0wyPT09ITA/ajM6aHM7b3Q9bmV3IFVlKDEwMjQsMTAyNCx7Z2VuZXJhdGVNaXBtYXBzOiEwLHR5cGU6YmUuY29udmVydChBMSkhPT1udWxsP0ExOkpkLG1pbkZpbHRlcjpheCxtYWdGaWx0ZXI6TGksd3JhcFM6Sm8sd3JhcFQ6Sm8sdXNlUmVuZGVyVG9UZXh0dXJlOl90LmhhcygiV0VCR0xfbXVsdGlzYW1wbGVkX3JlbmRlcl90b190ZXh0dXJlIil9KX1sZXQgeHQ9Zy5nZXRSZW5kZXJUYXJnZXQoKTtnLnNldFJlbmRlclRhcmdldChvdCksZy5jbGVhcigpO2xldCBGdD1nLnRvbmVNYXBwaW5nO2cudG9uZU1hcHBpbmc9WmQsTGEoSyxndCxFdCksZy50b25lTWFwcGluZz1GdCxxLnVwZGF0ZU11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0KG90KSxxLnVwZGF0ZVJlbmRlclRhcmdldE1pcG1hcChvdCksZy5zZXRSZW5kZXJUYXJnZXQoeHQpfWZ1bmN0aW9uIExhKEssZ3QsRXQpe2xldCB4dD1ndC5pc1NjZW5lPT09ITA/Z3Qub3ZlcnJpZGVNYXRlcmlhbDpudWxsO2ZvcihsZXQgRnQ9MCxWZT1LLmxlbmd0aDtGdDxWZTtGdCsrKXtsZXQgVWU9S1tGdF0sdHI9VWUub2JqZWN0LEtlPVVlLmdlb21ldHJ5LFhyPXh0PT09bnVsbD9VZS5tYXRlcmlhbDp4dCxfcj1VZS5ncm91cDt0ci5sYXllcnMudGVzdChFdC5sYXllcnMpJiZjeCh0cixndCxFdCxLZSxYcixfcil9fWZ1bmN0aW9uIGN4KEssZ3QsRXQseHQsRnQsVmUpe0sub25CZWZvcmVSZW5kZXIoZyxndCxFdCx4dCxGdCxWZSksSy5tb2RlbFZpZXdNYXRyaXgubXVsdGlwbHlNYXRyaWNlcyhFdC5tYXRyaXhXb3JsZEludmVyc2UsSy5tYXRyaXhXb3JsZCksSy5ub3JtYWxNYXRyaXguZ2V0Tm9ybWFsTWF0cml4KEsubW9kZWxWaWV3TWF0cml4KSxGdC5vbkJlZm9yZVJlbmRlcihnLGd0LEV0LHh0LEssVmUpLEZ0LnRyYW5zcGFyZW50PT09ITAmJkZ0LnNpZGU9PT1rMT8oRnQuc2lkZT1JaSxGdC5uZWVkc1VwZGF0ZT0hMCxnLnJlbmRlckJ1ZmZlckRpcmVjdChFdCxndCx4dCxGdCxLLFZlKSxGdC5zaWRlPUwxLEZ0Lm5lZWRzVXBkYXRlPSEwLGcucmVuZGVyQnVmZmVyRGlyZWN0KEV0LGd0LHh0LEZ0LEssVmUpLEZ0LnNpZGU9azEpOmcucmVuZGVyQnVmZmVyRGlyZWN0KEV0LGd0LHh0LEZ0LEssVmUpLEsub25BZnRlclJlbmRlcihnLGd0LEV0LHh0LEZ0LFZlKX1mdW5jdGlvbiB1bShLLGd0LEV0KXtndC5pc1NjZW5lIT09ITAmJihndD1idCk7bGV0IHh0PWR0LmdldChLKSxGdD1mLnN0YXRlLmxpZ2h0cyxWZT1mLnN0YXRlLnNoYWRvd3NBcnJheSxVZT1GdC5zdGF0ZS52ZXJzaW9uLHRyPWVlLmdldFBhcmFtZXRlcnMoSyxGdC5zdGF0ZSxWZSxndCxFdCksS2U9ZWUuZ2V0UHJvZ3JhbUNhY2hlS2V5KHRyKSxYcj14dC5wcm9ncmFtczt4dC5lbnZpcm9ubWVudD1LLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWw/Z3QuZW52aXJvbm1lbnQ6bnVsbCx4dC5mb2c9Z3QuZm9nLHh0LmVudk1hcD0oSy5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP2h0OnB0KS5nZXQoSy5lbnZNYXB8fHh0LmVudmlyb25tZW50KSxYcj09PXZvaWQgMCYmKEsuYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsc2UpLFhyPW5ldyBNYXAseHQucHJvZ3JhbXM9WHIpO2xldCBfcj1Yci5nZXQoS2UpO2lmKF9yIT09dm9pZCAwKXtpZih4dC5jdXJyZW50UHJvZ3JhbT09PV9yJiZ4dC5saWdodHNTdGF0ZVZlcnNpb249PT1VZSlyZXR1cm4gUTAoSyx0ciksX3J9ZWxzZSB0ci51bmlmb3Jtcz1lZS5nZXRVbmlmb3JtcyhLKSxLLm9uQnVpbGQoRXQsdHIsZyksSy5vbkJlZm9yZUNvbXBpbGUodHIsZyksX3I9ZWUuYWNxdWlyZVByb2dyYW0odHIsS2UpLFhyLnNldChLZSxfcikseHQudW5pZm9ybXM9dHIudW5pZm9ybXM7bGV0IFByPXh0LnVuaWZvcm1zOyghSy5pc1NoYWRlck1hdGVyaWFsJiYhSy5pc1Jhd1NoYWRlck1hdGVyaWFsfHxLLmNsaXBwaW5nPT09ITApJiYoUHIuY2xpcHBpbmdQbGFuZXM9dHQudW5pZm9ybSksUTAoSyx0cikseHQubmVlZHNMaWdodHM9bnAoSykseHQubGlnaHRzU3RhdGVWZXJzaW9uPVVlLHh0Lm5lZWRzTGlnaHRzJiYoUHIuYW1iaWVudExpZ2h0Q29sb3IudmFsdWU9RnQuc3RhdGUuYW1iaWVudCxQci5saWdodFByb2JlLnZhbHVlPUZ0LnN0YXRlLnByb2JlLFByLmRpcmVjdGlvbmFsTGlnaHRzLnZhbHVlPUZ0LnN0YXRlLmRpcmVjdGlvbmFsLFByLmRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzLnZhbHVlPUZ0LnN0YXRlLmRpcmVjdGlvbmFsU2hhZG93LFByLnNwb3RMaWdodHMudmFsdWU9RnQuc3RhdGUuc3BvdCxQci5zcG90TGlnaHRTaGFkb3dzLnZhbHVlPUZ0LnN0YXRlLnNwb3RTaGFkb3csUHIucmVjdEFyZWFMaWdodHMudmFsdWU9RnQuc3RhdGUucmVjdEFyZWEsUHIubHRjXzEudmFsdWU9RnQuc3RhdGUucmVjdEFyZWFMVEMxLFByLmx0Y18yLnZhbHVlPUZ0LnN0YXRlLnJlY3RBcmVhTFRDMixQci5wb2ludExpZ2h0cy52YWx1ZT1GdC5zdGF0ZS5wb2ludCxQci5wb2ludExpZ2h0U2hhZG93cy52YWx1ZT1GdC5zdGF0ZS5wb2ludFNoYWRvdyxQci5oZW1pc3BoZXJlTGlnaHRzLnZhbHVlPUZ0LnN0YXRlLmhlbWksUHIuZGlyZWN0aW9uYWxTaGFkb3dNYXAudmFsdWU9RnQuc3RhdGUuZGlyZWN0aW9uYWxTaGFkb3dNYXAsUHIuZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXgudmFsdWU9RnQuc3RhdGUuZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXgsUHIuc3BvdFNoYWRvd01hcC52YWx1ZT1GdC5zdGF0ZS5zcG90U2hhZG93TWFwLFByLnNwb3RTaGFkb3dNYXRyaXgudmFsdWU9RnQuc3RhdGUuc3BvdFNoYWRvd01hdHJpeCxQci5wb2ludFNoYWRvd01hcC52YWx1ZT1GdC5zdGF0ZS5wb2ludFNoYWRvd01hcCxQci5wb2ludFNoYWRvd01hdHJpeC52YWx1ZT1GdC5zdGF0ZS5wb2ludFNoYWRvd01hdHJpeCk7bGV0IFhuPV9yLmdldFVuaWZvcm1zKCksaXA9SDAuc2VxV2l0aFZhbHVlKFhuLnNlcSxQcik7cmV0dXJuIHh0LmN1cnJlbnRQcm9ncmFtPV9yLHh0LnVuaWZvcm1zTGlzdD1pcCxfcn1mdW5jdGlvbiBRMChLLGd0KXtsZXQgRXQ9ZHQuZ2V0KEspO0V0Lm91dHB1dEVuY29kaW5nPWd0Lm91dHB1dEVuY29kaW5nLEV0Lmluc3RhbmNpbmc9Z3QuaW5zdGFuY2luZyxFdC5za2lubmluZz1ndC5za2lubmluZyxFdC5tb3JwaFRhcmdldHM9Z3QubW9ycGhUYXJnZXRzLEV0Lm1vcnBoTm9ybWFscz1ndC5tb3JwaE5vcm1hbHMsRXQubW9ycGhUYXJnZXRzQ291bnQ9Z3QubW9ycGhUYXJnZXRzQ291bnQsRXQubnVtQ2xpcHBpbmdQbGFuZXM9Z3QubnVtQ2xpcHBpbmdQbGFuZXMsRXQubnVtSW50ZXJzZWN0aW9uPWd0Lm51bUNsaXBJbnRlcnNlY3Rpb24sRXQudmVydGV4QWxwaGFzPWd0LnZlcnRleEFscGhhcyxFdC52ZXJ0ZXhUYW5nZW50cz1ndC52ZXJ0ZXhUYW5nZW50cyxFdC50b25lTWFwcGluZz1ndC50b25lTWFwcGluZ31mdW5jdGlvbiBjbihLLGd0LEV0LHh0LEZ0KXtndC5pc1NjZW5lIT09ITAmJihndD1idCkscS5yZXNldFRleHR1cmVVbml0cygpO2xldCBWZT1ndC5mb2csVWU9eHQuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9ndC5lbnZpcm9ubWVudDpudWxsLHRyPWI9PT1udWxsP2cub3V0cHV0RW5jb2Rpbmc6Yi5pc1hSUmVuZGVyVGFyZ2V0PT09ITA/Yi50ZXh0dXJlLmVuY29kaW5nOnRtLEtlPSh4dC5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP2h0OnB0KS5nZXQoeHQuZW52TWFwfHxVZSksWHI9eHQudmVydGV4Q29sb3JzPT09ITAmJiEhRXQuYXR0cmlidXRlcy5jb2xvciYmRXQuYXR0cmlidXRlcy5jb2xvci5pdGVtU2l6ZT09PTQsX3I9ISF4dC5ub3JtYWxNYXAmJiEhRXQuYXR0cmlidXRlcy50YW5nZW50LFByPSEhRXQubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uLFhuPSEhRXQubW9ycGhBdHRyaWJ1dGVzLm5vcm1hbCxpcD1FdC5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24/RXQubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uLmxlbmd0aDowLGhtPXh0LnRvbmVNYXBwZWQ/Zy50b25lTWFwcGluZzpaZCxtcj1kdC5nZXQoeHQpLEJsPWYuc3RhdGUubGlnaHRzO2lmKFo9PT0hMCYmKHJ0PT09ITB8fEshPT1DKSl7bGV0IEdzPUs9PT1DJiZ4dC5pZD09PVM7dHQuc2V0U3RhdGUoeHQsSyxHcyl9bGV0ICRuPSExO3h0LnZlcnNpb249PT1tci5fX3ZlcnNpb24/KG1yLm5lZWRzTGlnaHRzJiZtci5saWdodHNTdGF0ZVZlcnNpb24hPT1CbC5zdGF0ZS52ZXJzaW9ufHxtci5vdXRwdXRFbmNvZGluZyE9PXRyfHxGdC5pc0luc3RhbmNlZE1lc2gmJm1yLmluc3RhbmNpbmc9PT0hMXx8IUZ0LmlzSW5zdGFuY2VkTWVzaCYmbXIuaW5zdGFuY2luZz09PSEwfHxGdC5pc1NraW5uZWRNZXNoJiZtci5za2lubmluZz09PSExfHwhRnQuaXNTa2lubmVkTWVzaCYmbXIuc2tpbm5pbmc9PT0hMHx8bXIuZW52TWFwIT09S2V8fHh0LmZvZyYmbXIuZm9nIT09VmV8fG1yLm51bUNsaXBwaW5nUGxhbmVzIT09dm9pZCAwJiYobXIubnVtQ2xpcHBpbmdQbGFuZXMhPT10dC5udW1QbGFuZXN8fG1yLm51bUludGVyc2VjdGlvbiE9PXR0Lm51bUludGVyc2VjdGlvbil8fG1yLnZlcnRleEFscGhhcyE9PVhyfHxtci52ZXJ0ZXhUYW5nZW50cyE9PV9yfHxtci5tb3JwaFRhcmdldHMhPT1Qcnx8bXIubW9ycGhOb3JtYWxzIT09WG58fG1yLnRvbmVNYXBwaW5nIT09aG18fGN0LmlzV2ViR0wyPT09ITAmJm1yLm1vcnBoVGFyZ2V0c0NvdW50IT09aXApJiYoJG49ITApOigkbj0hMCxtci5fX3ZlcnNpb249eHQudmVyc2lvbik7bGV0IEhsPW1yLmN1cnJlbnRQcm9ncmFtOyRuPT09ITAmJihIbD11bSh4dCxndCxGdCkpO2xldCBoeD0hMSxWbD0hMSxVbD0hMSxZaT1IbC5nZXRVbmlmb3JtcygpLGZtPW1yLnVuaWZvcm1zO2lmKFgudXNlUHJvZ3JhbShIbC5wcm9ncmFtKSYmKGh4PSEwLFZsPSEwLFVsPSEwKSx4dC5pZCE9PVMmJihTPXh0LmlkLFZsPSEwKSxoeHx8QyE9PUspe2lmKFlpLnNldFZhbHVlKGx0LCJwcm9qZWN0aW9uTWF0cml4IixLLnByb2plY3Rpb25NYXRyaXgpLGN0LmxvZ2FyaXRobWljRGVwdGhCdWZmZXImJllpLnNldFZhbHVlKGx0LCJsb2dEZXB0aEJ1ZkZDIiwyLyhNYXRoLmxvZyhLLmZhcisxKS9NYXRoLkxOMikpLEMhPT1LJiYoQz1LLFZsPSEwLFVsPSEwKSx4dC5pc1NoYWRlck1hdGVyaWFsfHx4dC5pc01lc2hQaG9uZ01hdGVyaWFsfHx4dC5pc01lc2hUb29uTWF0ZXJpYWx8fHh0LmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWx8fHh0LmVudk1hcCl7bGV0IEdzPVlpLm1hcC5jYW1lcmFQb3NpdGlvbjtHcyE9PXZvaWQgMCYmR3Muc2V0VmFsdWUobHQsU3Quc2V0RnJvbU1hdHJpeFBvc2l0aW9uKEsubWF0cml4V29ybGQpKX0oeHQuaXNNZXNoUGhvbmdNYXRlcmlhbHx8eHQuaXNNZXNoVG9vbk1hdGVyaWFsfHx4dC5pc01lc2hMYW1iZXJ0TWF0ZXJpYWx8fHh0LmlzTWVzaEJhc2ljTWF0ZXJpYWx8fHh0LmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWx8fHh0LmlzU2hhZGVyTWF0ZXJpYWwpJiZZaS5zZXRWYWx1ZShsdCwiaXNPcnRob2dyYXBoaWMiLEsuaXNPcnRob2dyYXBoaWNDYW1lcmE9PT0hMCksKHh0LmlzTWVzaFBob25nTWF0ZXJpYWx8fHh0LmlzTWVzaFRvb25NYXRlcmlhbHx8eHQuaXNNZXNoTGFtYmVydE1hdGVyaWFsfHx4dC5pc01lc2hCYXNpY01hdGVyaWFsfHx4dC5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHx4dC5pc1NoYWRlck1hdGVyaWFsfHx4dC5pc1NoYWRvd01hdGVyaWFsfHxGdC5pc1NraW5uZWRNZXNoKSYmWWkuc2V0VmFsdWUobHQsInZpZXdNYXRyaXgiLEsubWF0cml4V29ybGRJbnZlcnNlKX1pZihGdC5pc1NraW5uZWRNZXNoKXtZaS5zZXRPcHRpb25hbChsdCxGdCwiYmluZE1hdHJpeCIpLFlpLnNldE9wdGlvbmFsKGx0LEZ0LCJiaW5kTWF0cml4SW52ZXJzZSIpO2xldCBHcz1GdC5za2VsZXRvbjtHcyYmKGN0LmZsb2F0VmVydGV4VGV4dHVyZXM/KEdzLmJvbmVUZXh0dXJlPT09bnVsbCYmR3MuY29tcHV0ZUJvbmVUZXh0dXJlKCksWWkuc2V0VmFsdWUobHQsImJvbmVUZXh0dXJlIixHcy5ib25lVGV4dHVyZSxxKSxZaS5zZXRWYWx1ZShsdCwiYm9uZVRleHR1cmVTaXplIixHcy5ib25lVGV4dHVyZVNpemUpKTpZaS5zZXRPcHRpb25hbChsdCxHcywiYm9uZU1hdHJpY2VzIikpfXJldHVybiEhRXQmJihFdC5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24hPT12b2lkIDB8fEV0Lm1vcnBoQXR0cmlidXRlcy5ub3JtYWwhPT12b2lkIDApJiYkdC51cGRhdGUoRnQsRXQseHQsSGwpLChWbHx8bXIucmVjZWl2ZVNoYWRvdyE9PUZ0LnJlY2VpdmVTaGFkb3cpJiYobXIucmVjZWl2ZVNoYWRvdz1GdC5yZWNlaXZlU2hhZG93LFlpLnNldFZhbHVlKGx0LCJyZWNlaXZlU2hhZG93IixGdC5yZWNlaXZlU2hhZG93KSksVmwmJihZaS5zZXRWYWx1ZShsdCwidG9uZU1hcHBpbmdFeHBvc3VyZSIsZy50b25lTWFwcGluZ0V4cG9zdXJlKSxtci5uZWVkc0xpZ2h0cyYmdXgoZm0sVWwpLFZlJiZ4dC5mb2cmJkxlLnJlZnJlc2hGb2dVbmlmb3JtcyhmbSxWZSksTGUucmVmcmVzaE1hdGVyaWFsVW5pZm9ybXMoZm0seHQsSSxCLG90KSxIMC51cGxvYWQobHQsbXIudW5pZm9ybXNMaXN0LGZtLHEpKSx4dC5pc1NoYWRlck1hdGVyaWFsJiZ4dC51bmlmb3Jtc05lZWRVcGRhdGU9PT0hMCYmKEgwLnVwbG9hZChsdCxtci51bmlmb3Jtc0xpc3QsZm0scSkseHQudW5pZm9ybXNOZWVkVXBkYXRlPSExKSx4dC5pc1Nwcml0ZU1hdGVyaWFsJiZZaS5zZXRWYWx1ZShsdCwiY2VudGVyIixGdC5jZW50ZXIpLFlpLnNldFZhbHVlKGx0LCJtb2RlbFZpZXdNYXRyaXgiLEZ0Lm1vZGVsVmlld01hdHJpeCksWWkuc2V0VmFsdWUobHQsIm5vcm1hbE1hdHJpeCIsRnQubm9ybWFsTWF0cml4KSxZaS5zZXRWYWx1ZShsdCwibW9kZWxNYXRyaXgiLEZ0Lm1hdHJpeFdvcmxkKSxIbH1mdW5jdGlvbiB1eChLLGd0KXtLLmFtYmllbnRMaWdodENvbG9yLm5lZWRzVXBkYXRlPWd0LEsubGlnaHRQcm9iZS5uZWVkc1VwZGF0ZT1ndCxLLmRpcmVjdGlvbmFsTGlnaHRzLm5lZWRzVXBkYXRlPWd0LEsuZGlyZWN0aW9uYWxMaWdodFNoYWRvd3MubmVlZHNVcGRhdGU9Z3QsSy5wb2ludExpZ2h0cy5uZWVkc1VwZGF0ZT1ndCxLLnBvaW50TGlnaHRTaGFkb3dzLm5lZWRzVXBkYXRlPWd0LEsuc3BvdExpZ2h0cy5uZWVkc1VwZGF0ZT1ndCxLLnNwb3RMaWdodFNoYWRvd3MubmVlZHNVcGRhdGU9Z3QsSy5yZWN0QXJlYUxpZ2h0cy5uZWVkc1VwZGF0ZT1ndCxLLmhlbWlzcGhlcmVMaWdodHMubmVlZHNVcGRhdGU9Z3R9ZnVuY3Rpb24gbnAoSyl7cmV0dXJuIEsuaXNNZXNoTGFtYmVydE1hdGVyaWFsfHxLLmlzTWVzaFRvb25NYXRlcmlhbHx8Sy5pc01lc2hQaG9uZ01hdGVyaWFsfHxLLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWx8fEsuaXNTaGFkb3dNYXRlcmlhbHx8Sy5pc1NoYWRlck1hdGVyaWFsJiZLLmxpZ2h0cz09PSEwfXRoaXMuZ2V0QWN0aXZlQ3ViZUZhY2U9ZnVuY3Rpb24oKXtyZXR1cm4geX0sdGhpcy5nZXRBY3RpdmVNaXBtYXBMZXZlbD1mdW5jdGlvbigpe3JldHVybiB4fSx0aGlzLmdldFJlbmRlclRhcmdldD1mdW5jdGlvbigpe3JldHVybiBifSx0aGlzLnNldFJlbmRlclRhcmdldFRleHR1cmVzPWZ1bmN0aW9uKEssZ3QsRXQpe2R0LmdldChLLnRleHR1cmUpLl9fd2ViZ2xUZXh0dXJlPWd0LGR0LmdldChLLmRlcHRoVGV4dHVyZSkuX193ZWJnbFRleHR1cmU9RXQ7bGV0IHh0PWR0LmdldChLKTt4dC5fX2hhc0V4dGVybmFsVGV4dHVyZXM9ITAseHQuX19oYXNFeHRlcm5hbFRleHR1cmVzJiYoeHQuX19hdXRvQWxsb2NhdGVEZXB0aEJ1ZmZlcj1FdD09PXZvaWQgMCx4dC5fX2F1dG9BbGxvY2F0ZURlcHRoQnVmZmVyfHxLLnVzZVJlbmRlclRvVGV4dHVyZSYmKGNvbnNvbGUud2FybigicmVuZGVyLXRvLXRleHR1cmUgZXh0ZW5zaW9uIHdhcyBkaXNhYmxlZCBiZWNhdXNlIGFuIGV4dGVybmFsIHRleHR1cmUgd2FzIHByb3ZpZGVkIiksSy51c2VSZW5kZXJUb1RleHR1cmU9ITEsSy51c2VSZW5kZXJidWZmZXI9ITApKX0sdGhpcy5zZXRSZW5kZXJUYXJnZXRGcmFtZWJ1ZmZlcj1mdW5jdGlvbihLLGd0KXtsZXQgRXQ9ZHQuZ2V0KEspO0V0Ll9fd2ViZ2xGcmFtZWJ1ZmZlcj1ndCxFdC5fX3VzZURlZmF1bHRGcmFtZWJ1ZmZlcj1ndD09PXZvaWQgMH0sdGhpcy5zZXRSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24oSyxndD0wLEV0PTApe2I9Syx5PWd0LHg9RXQ7bGV0IHh0PSEwO2lmKEspe2xldCBLZT1kdC5nZXQoSyk7S2UuX191c2VEZWZhdWx0RnJhbWVidWZmZXIhPT12b2lkIDA/KFguYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpLHh0PSExKTpLZS5fX3dlYmdsRnJhbWVidWZmZXI9PT12b2lkIDA/cS5zZXR1cFJlbmRlclRhcmdldChLKTpLZS5fX2hhc0V4dGVybmFsVGV4dHVyZXMmJnEucmViaW5kVGV4dHVyZXMoSyxkdC5nZXQoSy50ZXh0dXJlKS5fX3dlYmdsVGV4dHVyZSxkdC5nZXQoSy5kZXB0aFRleHR1cmUpLl9fd2ViZ2xUZXh0dXJlKX1sZXQgRnQ9bnVsbCxWZT0hMSxVZT0hMTtpZihLKXtsZXQgS2U9Sy50ZXh0dXJlOyhLZS5pc0RhdGFUZXh0dXJlM0R8fEtlLmlzRGF0YVRleHR1cmUyREFycmF5KSYmKFVlPSEwKTtsZXQgWHI9ZHQuZ2V0KEspLl9fd2ViZ2xGcmFtZWJ1ZmZlcjtLLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0PyhGdD1YcltndF0sVmU9ITApOksudXNlUmVuZGVyYnVmZmVyP0Z0PWR0LmdldChLKS5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXI6RnQ9WHIsUC5jb3B5KEsudmlld3BvcnQpLGsuY29weShLLnNjaXNzb3IpLE89Sy5zY2lzc29yVGVzdH1lbHNlIFAuY29weShGKS5tdWx0aXBseVNjYWxhcihJKS5mbG9vcigpLGsuY29weSh6KS5tdWx0aXBseVNjYWxhcihJKS5mbG9vcigpLE89VTtpZihYLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxGdCkmJmN0LmRyYXdCdWZmZXJzJiZ4dCYmWC5kcmF3QnVmZmVycyhLLEZ0KSxYLnZpZXdwb3J0KFApLFguc2Npc3NvcihrKSxYLnNldFNjaXNzb3JUZXN0KE8pLFZlKXtsZXQgS2U9ZHQuZ2V0KEsudGV4dHVyZSk7bHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYwNjQsMzQwNjkrZ3QsS2UuX193ZWJnbFRleHR1cmUsRXQpfWVsc2UgaWYoVWUpe2xldCBLZT1kdC5nZXQoSy50ZXh0dXJlKSxYcj1ndHx8MDtsdC5mcmFtZWJ1ZmZlclRleHR1cmVMYXllcigzNjE2MCwzNjA2NCxLZS5fX3dlYmdsVGV4dHVyZSxFdHx8MCxYcil9Uz0tMX0sdGhpcy5yZWFkUmVuZGVyVGFyZ2V0UGl4ZWxzPWZ1bmN0aW9uKEssZ3QsRXQseHQsRnQsVmUsVWUpe2lmKCEoSyYmSy5pc1dlYkdMUmVuZGVyVGFyZ2V0KSl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZWFkUmVuZGVyVGFyZ2V0UGl4ZWxzOiByZW5kZXJUYXJnZXQgaXMgbm90IFRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0LiIpO3JldHVybn1sZXQgdHI9ZHQuZ2V0KEspLl9fd2ViZ2xGcmFtZWJ1ZmZlcjtpZihLLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0JiZVZSE9PXZvaWQgMCYmKHRyPXRyW1VlXSksdHIpe1guYmluZEZyYW1lYnVmZmVyKDM2MTYwLHRyKTt0cnl7bGV0IEtlPUsudGV4dHVyZSxYcj1LZS5mb3JtYXQsX3I9S2UudHlwZTtpZihYciE9PVFvJiZiZS5jb252ZXJ0KFhyKSE9PWx0LmdldFBhcmFtZXRlcigzNTczOSkpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXIucmVhZFJlbmRlclRhcmdldFBpeGVsczogcmVuZGVyVGFyZ2V0IGlzIG5vdCBpbiBSR0JBIG9yIGltcGxlbWVudGF0aW9uIGRlZmluZWQgZm9ybWF0LiIpO3JldHVybn1sZXQgUHI9X3I9PT1BMSYmKF90LmhhcygiRVhUX2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0Iil8fGN0LmlzV2ViR0wyJiZfdC5oYXMoIkVYVF9jb2xvcl9idWZmZXJfZmxvYXQiKSk7aWYoX3IhPT1KZCYmYmUuY29udmVydChfcikhPT1sdC5nZXRQYXJhbWV0ZXIoMzU3MzgpJiYhKF9yPT09WGQmJihjdC5pc1dlYkdMMnx8X3QuaGFzKCJPRVNfdGV4dHVyZV9mbG9hdCIpfHxfdC5oYXMoIldFQkdMX2NvbG9yX2J1ZmZlcl9mbG9hdCIpKSkmJiFQcil7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZWFkUmVuZGVyVGFyZ2V0UGl4ZWxzOiByZW5kZXJUYXJnZXQgaXMgbm90IGluIFVuc2lnbmVkQnl0ZVR5cGUgb3IgaW1wbGVtZW50YXRpb24gZGVmaW5lZCB0eXBlLiIpO3JldHVybn1sdC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKDM2MTYwKT09PTM2MDUzP2d0Pj0wJiZndDw9Sy53aWR0aC14dCYmRXQ+PTAmJkV0PD1LLmhlaWdodC1GdCYmbHQucmVhZFBpeGVscyhndCxFdCx4dCxGdCxiZS5jb252ZXJ0KFhyKSxiZS5jb252ZXJ0KF9yKSxWZSk6Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZWFkUmVuZGVyVGFyZ2V0UGl4ZWxzOiByZWFkUGl4ZWxzIGZyb20gcmVuZGVyVGFyZ2V0IGZhaWxlZC4gRnJhbWVidWZmZXIgbm90IGNvbXBsZXRlLiIpfWZpbmFsbHl7bGV0IEtlPWIhPT1udWxsP2R0LmdldChiKS5fX3dlYmdsRnJhbWVidWZmZXI6bnVsbDtYLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxLZSl9fX0sdGhpcy5jb3B5RnJhbWVidWZmZXJUb1RleHR1cmU9ZnVuY3Rpb24oSyxndCxFdD0wKXtpZihndC5pc0ZyYW1lYnVmZmVyVGV4dHVyZSE9PSEwKXtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBjb3B5RnJhbWVidWZmZXJUb1RleHR1cmUoKSBjYW4gb25seSBiZSB1c2VkIHdpdGggRnJhbWVidWZmZXJUZXh0dXJlLiIpO3JldHVybn1sZXQgeHQ9TWF0aC5wb3coMiwtRXQpLEZ0PU1hdGguZmxvb3IoZ3QuaW1hZ2Uud2lkdGgqeHQpLFZlPU1hdGguZmxvb3IoZ3QuaW1hZ2UuaGVpZ2h0Knh0KTtxLnNldFRleHR1cmUyRChndCwwKSxsdC5jb3B5VGV4U3ViSW1hZ2UyRCgzNTUzLEV0LDAsMCxLLngsSy55LEZ0LFZlKSxYLnVuYmluZFRleHR1cmUoKX0sdGhpcy5jb3B5VGV4dHVyZVRvVGV4dHVyZT1mdW5jdGlvbihLLGd0LEV0LHh0PTApe2xldCBGdD1ndC5pbWFnZS53aWR0aCxWZT1ndC5pbWFnZS5oZWlnaHQsVWU9YmUuY29udmVydChFdC5mb3JtYXQpLHRyPWJlLmNvbnZlcnQoRXQudHlwZSk7cS5zZXRUZXh0dXJlMkQoRXQsMCksbHQucGl4ZWxTdG9yZWkoMzc0NDAsRXQuZmxpcFkpLGx0LnBpeGVsU3RvcmVpKDM3NDQxLEV0LnByZW11bHRpcGx5QWxwaGEpLGx0LnBpeGVsU3RvcmVpKDMzMTcsRXQudW5wYWNrQWxpZ25tZW50KSxndC5pc0RhdGFUZXh0dXJlP2x0LnRleFN1YkltYWdlMkQoMzU1Myx4dCxLLngsSy55LEZ0LFZlLFVlLHRyLGd0LmltYWdlLmRhdGEpOmd0LmlzQ29tcHJlc3NlZFRleHR1cmU/bHQuY29tcHJlc3NlZFRleFN1YkltYWdlMkQoMzU1Myx4dCxLLngsSy55LGd0Lm1pcG1hcHNbMF0ud2lkdGgsZ3QubWlwbWFwc1swXS5oZWlnaHQsVWUsZ3QubWlwbWFwc1swXS5kYXRhKTpsdC50ZXhTdWJJbWFnZTJEKDM1NTMseHQsSy54LEsueSxVZSx0cixndC5pbWFnZSkseHQ9PT0wJiZFdC5nZW5lcmF0ZU1pcG1hcHMmJmx0LmdlbmVyYXRlTWlwbWFwKDM1NTMpLFgudW5iaW5kVGV4dHVyZSgpfSx0aGlzLmNvcHlUZXh0dXJlVG9UZXh0dXJlM0Q9ZnVuY3Rpb24oSyxndCxFdCx4dCxGdD0wKXtpZihnLmlzV2ViR0wxUmVuZGVyZXIpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlci5jb3B5VGV4dHVyZVRvVGV4dHVyZTNEOiBjYW4gb25seSBiZSB1c2VkIHdpdGggV2ViR0wyLiIpO3JldHVybn1sZXQgVmU9Sy5tYXgueC1LLm1pbi54KzEsVWU9Sy5tYXgueS1LLm1pbi55KzEsdHI9Sy5tYXguei1LLm1pbi56KzEsS2U9YmUuY29udmVydCh4dC5mb3JtYXQpLFhyPWJlLmNvbnZlcnQoeHQudHlwZSksX3I7aWYoeHQuaXNEYXRhVGV4dHVyZTNEKXEuc2V0VGV4dHVyZTNEKHh0LDApLF9yPTMyODc5O2Vsc2UgaWYoeHQuaXNEYXRhVGV4dHVyZTJEQXJyYXkpcS5zZXRUZXh0dXJlMkRBcnJheSh4dCwwKSxfcj0zNTg2NjtlbHNle2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlci5jb3B5VGV4dHVyZVRvVGV4dHVyZTNEOiBvbmx5IHN1cHBvcnRzIFRIUkVFLkRhdGFUZXh0dXJlM0QgYW5kIFRIUkVFLkRhdGFUZXh0dXJlMkRBcnJheS4iKTtyZXR1cm59bHQucGl4ZWxTdG9yZWkoMzc0NDAseHQuZmxpcFkpLGx0LnBpeGVsU3RvcmVpKDM3NDQxLHh0LnByZW11bHRpcGx5QWxwaGEpLGx0LnBpeGVsU3RvcmVpKDMzMTcseHQudW5wYWNrQWxpZ25tZW50KTtsZXQgUHI9bHQuZ2V0UGFyYW1ldGVyKDMzMTQpLFhuPWx0LmdldFBhcmFtZXRlcigzMjg3OCksaXA9bHQuZ2V0UGFyYW1ldGVyKDMzMTYpLGhtPWx0LmdldFBhcmFtZXRlcigzMzE1KSxtcj1sdC5nZXRQYXJhbWV0ZXIoMzI4NzcpLEJsPUV0LmlzQ29tcHJlc3NlZFRleHR1cmU/RXQubWlwbWFwc1swXTpFdC5pbWFnZTtsdC5waXhlbFN0b3JlaSgzMzE0LEJsLndpZHRoKSxsdC5waXhlbFN0b3JlaSgzMjg3OCxCbC5oZWlnaHQpLGx0LnBpeGVsU3RvcmVpKDMzMTYsSy5taW4ueCksbHQucGl4ZWxTdG9yZWkoMzMxNSxLLm1pbi55KSxsdC5waXhlbFN0b3JlaSgzMjg3NyxLLm1pbi56KSxFdC5pc0RhdGFUZXh0dXJlfHxFdC5pc0RhdGFUZXh0dXJlM0Q/bHQudGV4U3ViSW1hZ2UzRChfcixGdCxndC54LGd0LnksZ3QueixWZSxVZSx0cixLZSxYcixCbC5kYXRhKTpFdC5pc0NvbXByZXNzZWRUZXh0dXJlPyhjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXIuY29weVRleHR1cmVUb1RleHR1cmUzRDogdW50ZXN0ZWQgc3VwcG9ydCBmb3IgY29tcHJlc3NlZCBzcmNUZXh0dXJlLiIpLGx0LmNvbXByZXNzZWRUZXhTdWJJbWFnZTNEKF9yLEZ0LGd0LngsZ3QueSxndC56LFZlLFVlLHRyLEtlLEJsLmRhdGEpKTpsdC50ZXhTdWJJbWFnZTNEKF9yLEZ0LGd0LngsZ3QueSxndC56LFZlLFVlLHRyLEtlLFhyLEJsKSxsdC5waXhlbFN0b3JlaSgzMzE0LFByKSxsdC5waXhlbFN0b3JlaSgzMjg3OCxYbiksbHQucGl4ZWxTdG9yZWkoMzMxNixpcCksbHQucGl4ZWxTdG9yZWkoMzMxNSxobSksbHQucGl4ZWxTdG9yZWkoMzI4NzcsbXIpLEZ0PT09MCYmeHQuZ2VuZXJhdGVNaXBtYXBzJiZsdC5nZW5lcmF0ZU1pcG1hcChfciksWC51bmJpbmRUZXh0dXJlKCl9LHRoaXMuaW5pdFRleHR1cmU9ZnVuY3Rpb24oSyl7cS5zZXRUZXh0dXJlMkQoSywwKSxYLnVuYmluZFRleHR1cmUoKX0sdGhpcy5yZXNldFN0YXRlPWZ1bmN0aW9uKCl7eT0wLHg9MCxiPW51bGwsWC5yZXNldCgpLG50LnJlc2V0KCl9LHR5cGVvZiBfX1RIUkVFX0RFVlRPT0xTX18hPSJ1bmRlZmluZWQiJiZfX1RIUkVFX0RFVlRPT0xTX18uZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm9ic2VydmUiLHtkZXRhaWw6dGhpc30pKX1ybi5wcm90b3R5cGUuaXNXZWJHTFJlbmRlcmVyPSEwO3ZhciBnVT1jbGFzcyBleHRlbmRzIHJue307Z1UucHJvdG90eXBlLmlzV2ViR0wxUmVuZGVyZXI9ITA7dmFyIHoxPWNsYXNze2NvbnN0cnVjdG9yKHQscj0yNWUtNSl7dGhpcy5uYW1lPSIiLHRoaXMuY29sb3I9bmV3IG5lKHQpLHRoaXMuZGVuc2l0eT1yfWNsb25lKCl7cmV0dXJuIG5ldyB6MSh0aGlzLmNvbG9yLHRoaXMuZGVuc2l0eSl9dG9KU09OKCl7cmV0dXJue3R5cGU6IkZvZ0V4cDIiLGNvbG9yOnRoaXMuY29sb3IuZ2V0SGV4KCksZGVuc2l0eTp0aGlzLmRlbnNpdHl9fX07ejEucHJvdG90eXBlLmlzRm9nRXhwMj0hMDt2YXIgRjE9Y2xhc3N7Y29uc3RydWN0b3IodCxyPTEsbj0xZTMpe3RoaXMubmFtZT0iIix0aGlzLmNvbG9yPW5ldyBuZSh0KSx0aGlzLm5lYXI9cix0aGlzLmZhcj1ufWNsb25lKCl7cmV0dXJuIG5ldyBGMSh0aGlzLmNvbG9yLHRoaXMubmVhcix0aGlzLmZhcil9dG9KU09OKCl7cmV0dXJue3R5cGU6IkZvZyIsY29sb3I6dGhpcy5jb2xvci5nZXRIZXgoKSxuZWFyOnRoaXMubmVhcixmYXI6dGhpcy5mYXJ9fX07RjEucHJvdG90eXBlLmlzRm9nPSEwO3ZhciBHMD1jbGFzcyBleHRlbmRzIG9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNjZW5lIix0aGlzLmJhY2tncm91bmQ9bnVsbCx0aGlzLmVudmlyb25tZW50PW51bGwsdGhpcy5mb2c9bnVsbCx0aGlzLm92ZXJyaWRlTWF0ZXJpYWw9bnVsbCx0aGlzLmF1dG9VcGRhdGU9ITAsdHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXyE9InVuZGVmaW5lZCImJl9fVEhSRUVfREVWVE9PTFNfXy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgib2JzZXJ2ZSIse2RldGFpbDp0aGlzfSkpfWNvcHkodCxyKXtyZXR1cm4gc3VwZXIuY29weSh0LHIpLHQuYmFja2dyb3VuZCE9PW51bGwmJih0aGlzLmJhY2tncm91bmQ9dC5iYWNrZ3JvdW5kLmNsb25lKCkpLHQuZW52aXJvbm1lbnQhPT1udWxsJiYodGhpcy5lbnZpcm9ubWVudD10LmVudmlyb25tZW50LmNsb25lKCkpLHQuZm9nIT09bnVsbCYmKHRoaXMuZm9nPXQuZm9nLmNsb25lKCkpLHQub3ZlcnJpZGVNYXRlcmlhbCE9PW51bGwmJih0aGlzLm92ZXJyaWRlTWF0ZXJpYWw9dC5vdmVycmlkZU1hdGVyaWFsLmNsb25lKCkpLHRoaXMuYXV0b1VwZGF0ZT10LmF1dG9VcGRhdGUsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPXQubWF0cml4QXV0b1VwZGF0ZSx0aGlzfXRvSlNPTih0KXtsZXQgcj1zdXBlci50b0pTT04odCk7cmV0dXJuIHRoaXMuZm9nIT09bnVsbCYmKHIub2JqZWN0LmZvZz10aGlzLmZvZy50b0pTT04oKSkscn19O0cwLnByb3RvdHlwZS5pc1NjZW5lPSEwO3ZhciBybT1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIpe3RoaXMuYXJyYXk9dCx0aGlzLnN0cmlkZT1yLHRoaXMuY291bnQ9dCE9PXZvaWQgMD90Lmxlbmd0aC9yOjAsdGhpcy51c2FnZT1XMyx0aGlzLnVwZGF0ZVJhbmdlPXtvZmZzZXQ6MCxjb3VudDotMX0sdGhpcy52ZXJzaW9uPTAsdGhpcy51dWlkPURsKCl9b25VcGxvYWRDYWxsYmFjaygpe31zZXQgbmVlZHNVcGRhdGUodCl7dD09PSEwJiZ0aGlzLnZlcnNpb24rK31zZXRVc2FnZSh0KXtyZXR1cm4gdGhpcy51c2FnZT10LHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5hcnJheT1uZXcgdC5hcnJheS5jb25zdHJ1Y3Rvcih0LmFycmF5KSx0aGlzLmNvdW50PXQuY291bnQsdGhpcy5zdHJpZGU9dC5zdHJpZGUsdGhpcy51c2FnZT10LnVzYWdlLHRoaXN9Y29weUF0KHQscixuKXt0Kj10aGlzLnN0cmlkZSxuKj1yLnN0cmlkZTtmb3IobGV0IGk9MCxvPXRoaXMuc3RyaWRlO2k8bztpKyspdGhpcy5hcnJheVt0K2ldPXIuYXJyYXlbbitpXTtyZXR1cm4gdGhpc31zZXQodCxyPTApe3JldHVybiB0aGlzLmFycmF5LnNldCh0LHIpLHRoaXN9Y2xvbmUodCl7dC5hcnJheUJ1ZmZlcnM9PT12b2lkIDAmJih0LmFycmF5QnVmZmVycz17fSksdGhpcy5hcnJheS5idWZmZXIuX3V1aWQ9PT12b2lkIDAmJih0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD1EbCgpKSx0LmFycmF5QnVmZmVyc1t0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZF09PT12b2lkIDAmJih0LmFycmF5QnVmZmVyc1t0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZF09dGhpcy5hcnJheS5zbGljZSgwKS5idWZmZXIpO2xldCByPW5ldyB0aGlzLmFycmF5LmNvbnN0cnVjdG9yKHQuYXJyYXlCdWZmZXJzW3RoaXMuYXJyYXkuYnVmZmVyLl91dWlkXSksbj1uZXcgdGhpcy5jb25zdHJ1Y3RvcihyLHRoaXMuc3RyaWRlKTtyZXR1cm4gbi5zZXRVc2FnZSh0aGlzLnVzYWdlKSxufW9uVXBsb2FkKHQpe3JldHVybiB0aGlzLm9uVXBsb2FkQ2FsbGJhY2s9dCx0aGlzfXRvSlNPTih0KXtyZXR1cm4gdC5hcnJheUJ1ZmZlcnM9PT12b2lkIDAmJih0LmFycmF5QnVmZmVycz17fSksdGhpcy5hcnJheS5idWZmZXIuX3V1aWQ9PT12b2lkIDAmJih0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD1EbCgpKSx0LmFycmF5QnVmZmVyc1t0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZF09PT12b2lkIDAmJih0LmFycmF5QnVmZmVyc1t0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZF09QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobmV3IFVpbnQzMkFycmF5KHRoaXMuYXJyYXkuYnVmZmVyKSkpLHt1dWlkOnRoaXMudXVpZCxidWZmZXI6dGhpcy5hcnJheS5idWZmZXIuX3V1aWQsdHlwZTp0aGlzLmFycmF5LmNvbnN0cnVjdG9yLm5hbWUsc3RyaWRlOnRoaXMuc3RyaWRlfX19O3JtLnByb3RvdHlwZS5pc0ludGVybGVhdmVkQnVmZmVyPSEwO3ZhciBBaT1uZXcgaixlcD1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIsbixpPSExKXt0aGlzLm5hbWU9IiIsdGhpcy5kYXRhPXQsdGhpcy5pdGVtU2l6ZT1yLHRoaXMub2Zmc2V0PW4sdGhpcy5ub3JtYWxpemVkPWk9PT0hMH1nZXQgY291bnQoKXtyZXR1cm4gdGhpcy5kYXRhLmNvdW50fWdldCBhcnJheSgpe3JldHVybiB0aGlzLmRhdGEuYXJyYXl9c2V0IG5lZWRzVXBkYXRlKHQpe3RoaXMuZGF0YS5uZWVkc1VwZGF0ZT10fWFwcGx5TWF0cml4NCh0KXtmb3IobGV0IHI9MCxuPXRoaXMuZGF0YS5jb3VudDtyPG47cisrKUFpLng9dGhpcy5nZXRYKHIpLEFpLnk9dGhpcy5nZXRZKHIpLEFpLno9dGhpcy5nZXRaKHIpLEFpLmFwcGx5TWF0cml4NCh0KSx0aGlzLnNldFhZWihyLEFpLngsQWkueSxBaS56KTtyZXR1cm4gdGhpc31hcHBseU5vcm1hbE1hdHJpeCh0KXtmb3IobGV0IHI9MCxuPXRoaXMuY291bnQ7cjxuO3IrKylBaS54PXRoaXMuZ2V0WChyKSxBaS55PXRoaXMuZ2V0WShyKSxBaS56PXRoaXMuZ2V0WihyKSxBaS5hcHBseU5vcm1hbE1hdHJpeCh0KSx0aGlzLnNldFhZWihyLEFpLngsQWkueSxBaS56KTtyZXR1cm4gdGhpc310cmFuc2Zvcm1EaXJlY3Rpb24odCl7Zm9yKGxldCByPTAsbj10aGlzLmNvdW50O3I8bjtyKyspQWkueD10aGlzLmdldFgociksQWkueT10aGlzLmdldFkociksQWkuej10aGlzLmdldFoociksQWkudHJhbnNmb3JtRGlyZWN0aW9uKHQpLHRoaXMuc2V0WFlaKHIsQWkueCxBaS55LEFpLnopO3JldHVybiB0aGlzfXNldFgodCxyKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldF09cix0aGlzfXNldFkodCxyKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCsxXT1yLHRoaXN9c2V0Wih0LHIpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzJdPXIsdGhpc31zZXRXKHQscil7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrM109cix0aGlzfWdldFgodCl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXRdfWdldFkodCl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrMV19Z2V0Wih0KXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCsyXX1nZXRXKHQpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzNdfXNldFhZKHQscixuKXtyZXR1cm4gdD10KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQsdGhpcy5kYXRhLmFycmF5W3QrMF09cix0aGlzLmRhdGEuYXJyYXlbdCsxXT1uLHRoaXN9c2V0WFlaKHQscixuLGkpe3JldHVybiB0PXQqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCx0aGlzLmRhdGEuYXJyYXlbdCswXT1yLHRoaXMuZGF0YS5hcnJheVt0KzFdPW4sdGhpcy5kYXRhLmFycmF5W3QrMl09aSx0aGlzfXNldFhZWlcodCxyLG4saSxvKXtyZXR1cm4gdD10KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQsdGhpcy5kYXRhLmFycmF5W3QrMF09cix0aGlzLmRhdGEuYXJyYXlbdCsxXT1uLHRoaXMuZGF0YS5hcnJheVt0KzJdPWksdGhpcy5kYXRhLmFycmF5W3QrM109byx0aGlzfWNsb25lKHQpe2lmKHQ9PT12b2lkIDApe2NvbnNvbGUubG9nKCJUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZS5jbG9uZSgpOiBDbG9uaW5nIGFuIGludGVybGF2ZWQgYnVmZmVyIGF0dHJpYnV0ZSB3aWxsIGRlaW50ZXJsZWF2ZSBidWZmZXIgZGF0YS4iKTtsZXQgcj1bXTtmb3IobGV0IG49MDtuPHRoaXMuY291bnQ7bisrKXtsZXQgaT1uKnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQ7Zm9yKGxldCBvPTA7bzx0aGlzLml0ZW1TaXplO28rKylyLnB1c2godGhpcy5kYXRhLmFycmF5W2krb10pfXJldHVybiBuZXcgSmUobmV3IHRoaXMuYXJyYXkuY29uc3RydWN0b3IociksdGhpcy5pdGVtU2l6ZSx0aGlzLm5vcm1hbGl6ZWQpfWVsc2UgcmV0dXJuIHQuaW50ZXJsZWF2ZWRCdWZmZXJzPT09dm9pZCAwJiYodC5pbnRlcmxlYXZlZEJ1ZmZlcnM9e30pLHQuaW50ZXJsZWF2ZWRCdWZmZXJzW3RoaXMuZGF0YS51dWlkXT09PXZvaWQgMCYmKHQuaW50ZXJsZWF2ZWRCdWZmZXJzW3RoaXMuZGF0YS51dWlkXT10aGlzLmRhdGEuY2xvbmUodCkpLG5ldyBlcCh0LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF0sdGhpcy5pdGVtU2l6ZSx0aGlzLm9mZnNldCx0aGlzLm5vcm1hbGl6ZWQpfXRvSlNPTih0KXtpZih0PT09dm9pZCAwKXtjb25zb2xlLmxvZygiVEhSRUUuSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUudG9KU09OKCk6IFNlcmlhbGl6aW5nIGFuIGludGVybGF2ZWQgYnVmZmVyIGF0dHJpYnV0ZSB3aWxsIGRlaW50ZXJsZWF2ZSBidWZmZXIgZGF0YS4iKTtsZXQgcj1bXTtmb3IobGV0IG49MDtuPHRoaXMuY291bnQ7bisrKXtsZXQgaT1uKnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQ7Zm9yKGxldCBvPTA7bzx0aGlzLml0ZW1TaXplO28rKylyLnB1c2godGhpcy5kYXRhLmFycmF5W2krb10pfXJldHVybntpdGVtU2l6ZTp0aGlzLml0ZW1TaXplLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLGFycmF5OnIsbm9ybWFsaXplZDp0aGlzLm5vcm1hbGl6ZWR9fWVsc2UgcmV0dXJuIHQuaW50ZXJsZWF2ZWRCdWZmZXJzPT09dm9pZCAwJiYodC5pbnRlcmxlYXZlZEJ1ZmZlcnM9e30pLHQuaW50ZXJsZWF2ZWRCdWZmZXJzW3RoaXMuZGF0YS51dWlkXT09PXZvaWQgMCYmKHQuaW50ZXJsZWF2ZWRCdWZmZXJzW3RoaXMuZGF0YS51dWlkXT10aGlzLmRhdGEudG9KU09OKHQpKSx7aXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZTohMCxpdGVtU2l6ZTp0aGlzLml0ZW1TaXplLGRhdGE6dGhpcy5kYXRhLnV1aWQsb2Zmc2V0OnRoaXMub2Zmc2V0LG5vcm1hbGl6ZWQ6dGhpcy5ub3JtYWxpemVkfX19O2VwLnByb3RvdHlwZS5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlPSEwO3ZhciBpTT1jbGFzcyBleHRlbmRzIHFpe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJTcHJpdGVNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgbmUoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMucm90YXRpb249MCx0aGlzLnNpemVBdHRlbnVhdGlvbj0hMCx0aGlzLnRyYW5zcGFyZW50PSEwLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLnJvdGF0aW9uPXQucm90YXRpb24sdGhpcy5zaXplQXR0ZW51YXRpb249dC5zaXplQXR0ZW51YXRpb24sdGhpc319O2lNLnByb3RvdHlwZS5pc1Nwcml0ZU1hdGVyaWFsPSEwO3ZhciBOMyxEUD1uZXcgaixEMz1uZXcgaixPMz1uZXcgaix6Mz1uZXcgTHQsT1A9bmV3IEx0LHRwZT1uZXcgTWUsTFY9bmV3IGoselA9bmV3IGosa1Y9bmV3IGosWnVlPW5ldyBMdCxkdXQ9bmV3IEx0LEp1ZT1uZXcgTHQsb009Y2xhc3MgZXh0ZW5kcyBvcntjb25zdHJ1Y3Rvcih0KXtpZihzdXBlcigpLHRoaXMudHlwZT0iU3ByaXRlIixOMz09PXZvaWQgMCl7TjM9bmV3IFBlO2xldCByPW5ldyBGbG9hdDMyQXJyYXkoWy0uNSwtLjUsMCwwLDAsLjUsLS41LDAsMSwwLC41LC41LDAsMSwxLC0uNSwuNSwwLDAsMV0pLG49bmV3IHJtKHIsNSk7TjMuc2V0SW5kZXgoWzAsMSwyLDAsMiwzXSksTjMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGVwKG4sMywwLCExKSksTjMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGVwKG4sMiwzLCExKSl9dGhpcy5nZW9tZXRyeT1OMyx0aGlzLm1hdGVyaWFsPXQhPT12b2lkIDA/dDpuZXcgaU0sdGhpcy5jZW50ZXI9bmV3IEx0KC41LC41KX1yYXljYXN0KHQscil7dC5jYW1lcmE9PT1udWxsJiZjb25zb2xlLmVycm9yKCdUSFJFRS5TcHJpdGU6ICJSYXljYXN0ZXIuY2FtZXJhIiBuZWVkcyB0byBiZSBzZXQgaW4gb3JkZXIgdG8gcmF5Y2FzdCBhZ2FpbnN0IHNwcml0ZXMuJyksRDMuc2V0RnJvbU1hdHJpeFNjYWxlKHRoaXMubWF0cml4V29ybGQpLHRwZS5jb3B5KHQuY2FtZXJhLm1hdHJpeFdvcmxkKSx0aGlzLm1vZGVsVmlld01hdHJpeC5tdWx0aXBseU1hdHJpY2VzKHQuY2FtZXJhLm1hdHJpeFdvcmxkSW52ZXJzZSx0aGlzLm1hdHJpeFdvcmxkKSxPMy5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tb2RlbFZpZXdNYXRyaXgpLHQuY2FtZXJhLmlzUGVyc3BlY3RpdmVDYW1lcmEmJnRoaXMubWF0ZXJpYWwuc2l6ZUF0dGVudWF0aW9uPT09ITEmJkQzLm11bHRpcGx5U2NhbGFyKC1PMy56KTtsZXQgbj10aGlzLm1hdGVyaWFsLnJvdGF0aW9uLGksbztuIT09MCYmKG89TWF0aC5jb3MobiksaT1NYXRoLnNpbihuKSk7bGV0IGE9dGhpcy5jZW50ZXI7UlYoTFYuc2V0KC0uNSwtLjUsMCksTzMsYSxEMyxpLG8pLFJWKHpQLnNldCguNSwtLjUsMCksTzMsYSxEMyxpLG8pLFJWKGtWLnNldCguNSwuNSwwKSxPMyxhLEQzLGksbyksWnVlLnNldCgwLDApLGR1dC5zZXQoMSwwKSxKdWUuc2V0KDEsMSk7bGV0IHM9dC5yYXkuaW50ZXJzZWN0VHJpYW5nbGUoTFYselAsa1YsITEsRFApO2lmKHM9PT1udWxsJiYoUlYoelAuc2V0KC0uNSwuNSwwKSxPMyxhLEQzLGksbyksZHV0LnNldCgwLDEpLHM9dC5yYXkuaW50ZXJzZWN0VHJpYW5nbGUoTFYsa1YselAsITEsRFApLHM9PT1udWxsKSlyZXR1cm47bGV0IGw9dC5yYXkub3JpZ2luLmRpc3RhbmNlVG8oRFApO2w8dC5uZWFyfHxsPnQuZmFyfHxyLnB1c2goe2Rpc3RhbmNlOmwscG9pbnQ6RFAuY2xvbmUoKSx1djpvaS5nZXRVVihEUCxMVix6UCxrVixadWUsZHV0LEp1ZSxuZXcgTHQpLGZhY2U6bnVsbCxvYmplY3Q6dGhpc30pfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdC5jZW50ZXIhPT12b2lkIDAmJnRoaXMuY2VudGVyLmNvcHkodC5jZW50ZXIpLHRoaXMubWF0ZXJpYWw9dC5tYXRlcmlhbCx0aGlzfX07b00ucHJvdG90eXBlLmlzU3ByaXRlPSEwO2Z1bmN0aW9uIFJWKGUsdCxyLG4saSxvKXt6My5zdWJWZWN0b3JzKGUscikuYWRkU2NhbGFyKC41KS5tdWx0aXBseShuKSxpIT09dm9pZCAwPyhPUC54PW8qejMueC1pKnozLnksT1AueT1pKnozLngrbyp6My55KTpPUC5jb3B5KHozKSxlLmNvcHkodCksZS54Kz1PUC54LGUueSs9T1AueSxlLmFwcGx5TWF0cml4NCh0cGUpfXZhciBOVj1uZXcgaixRdWU9bmV3IGosX1U9Y2xhc3MgZXh0ZW5kcyBvcntjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fY3VycmVudExldmVsPTAsdGhpcy50eXBlPSJMT0QiLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMse2xldmVsczp7ZW51bWVyYWJsZTohMCx2YWx1ZTpbXX0saXNMT0Q6e3ZhbHVlOiEwfX0pLHRoaXMuYXV0b1VwZGF0ZT0hMH1jb3B5KHQpe3N1cGVyLmNvcHkodCwhMSk7bGV0IHI9dC5sZXZlbHM7Zm9yKGxldCBuPTAsaT1yLmxlbmd0aDtuPGk7bisrKXtsZXQgbz1yW25dO3RoaXMuYWRkTGV2ZWwoby5vYmplY3QuY2xvbmUoKSxvLmRpc3RhbmNlKX1yZXR1cm4gdGhpcy5hdXRvVXBkYXRlPXQuYXV0b1VwZGF0ZSx0aGlzfWFkZExldmVsKHQscj0wKXtyPU1hdGguYWJzKHIpO2xldCBuPXRoaXMubGV2ZWxzLGk7Zm9yKGk9MDtpPG4ubGVuZ3RoJiYhKHI8bltpXS5kaXN0YW5jZSk7aSsrKTtyZXR1cm4gbi5zcGxpY2UoaSwwLHtkaXN0YW5jZTpyLG9iamVjdDp0fSksdGhpcy5hZGQodCksdGhpc31nZXRDdXJyZW50TGV2ZWwoKXtyZXR1cm4gdGhpcy5fY3VycmVudExldmVsfWdldE9iamVjdEZvckRpc3RhbmNlKHQpe2xldCByPXRoaXMubGV2ZWxzO2lmKHIubGVuZ3RoPjApe2xldCBuLGk7Zm9yKG49MSxpPXIubGVuZ3RoO248aSYmISh0PHJbbl0uZGlzdGFuY2UpO24rKyk7cmV0dXJuIHJbbi0xXS5vYmplY3R9cmV0dXJuIG51bGx9cmF5Y2FzdCh0LHIpe2lmKHRoaXMubGV2ZWxzLmxlbmd0aD4wKXtOVi5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tYXRyaXhXb3JsZCk7bGV0IGk9dC5yYXkub3JpZ2luLmRpc3RhbmNlVG8oTlYpO3RoaXMuZ2V0T2JqZWN0Rm9yRGlzdGFuY2UoaSkucmF5Y2FzdCh0LHIpfX11cGRhdGUodCl7bGV0IHI9dGhpcy5sZXZlbHM7aWYoci5sZW5ndGg+MSl7TlYuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpLFF1ZS5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tYXRyaXhXb3JsZCk7bGV0IG49TlYuZGlzdGFuY2VUbyhRdWUpL3Quem9vbTtyWzBdLm9iamVjdC52aXNpYmxlPSEwO2xldCBpLG87Zm9yKGk9MSxvPXIubGVuZ3RoO2k8byYmbj49cltpXS5kaXN0YW5jZTtpKyspcltpLTFdLm9iamVjdC52aXNpYmxlPSExLHJbaV0ub2JqZWN0LnZpc2libGU9ITA7Zm9yKHRoaXMuX2N1cnJlbnRMZXZlbD1pLTE7aTxvO2krKylyW2ldLm9iamVjdC52aXNpYmxlPSExfX10b0pTT04odCl7bGV0IHI9c3VwZXIudG9KU09OKHQpO3RoaXMuYXV0b1VwZGF0ZT09PSExJiYoci5vYmplY3QuYXV0b1VwZGF0ZT0hMSksci5vYmplY3QubGV2ZWxzPVtdO2xldCBuPXRoaXMubGV2ZWxzO2ZvcihsZXQgaT0wLG89bi5sZW5ndGg7aTxvO2krKyl7bGV0IGE9bltpXTtyLm9iamVjdC5sZXZlbHMucHVzaCh7b2JqZWN0OmEub2JqZWN0LnV1aWQsZGlzdGFuY2U6YS5kaXN0YW5jZX0pfXJldHVybiByfX0sdGhlPW5ldyBqLGVoZT1uZXcgZW4scmhlPW5ldyBlbixEZ3I9bmV3IGosbmhlPW5ldyBNZSxhTT1jbGFzcyBleHRlbmRzIHRpe2NvbnN0cnVjdG9yKHQscil7c3VwZXIodCxyKSx0aGlzLnR5cGU9IlNraW5uZWRNZXNoIix0aGlzLmJpbmRNb2RlPSJhdHRhY2hlZCIsdGhpcy5iaW5kTWF0cml4PW5ldyBNZSx0aGlzLmJpbmRNYXRyaXhJbnZlcnNlPW5ldyBNZX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuYmluZE1vZGU9dC5iaW5kTW9kZSx0aGlzLmJpbmRNYXRyaXguY29weSh0LmJpbmRNYXRyaXgpLHRoaXMuYmluZE1hdHJpeEludmVyc2UuY29weSh0LmJpbmRNYXRyaXhJbnZlcnNlKSx0aGlzLnNrZWxldG9uPXQuc2tlbGV0b24sdGhpc31iaW5kKHQscil7dGhpcy5za2VsZXRvbj10LHI9PT12b2lkIDAmJih0aGlzLnVwZGF0ZU1hdHJpeFdvcmxkKCEwKSx0aGlzLnNrZWxldG9uLmNhbGN1bGF0ZUludmVyc2VzKCkscj10aGlzLm1hdHJpeFdvcmxkKSx0aGlzLmJpbmRNYXRyaXguY29weShyKSx0aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkocikuaW52ZXJ0KCl9cG9zZSgpe3RoaXMuc2tlbGV0b24ucG9zZSgpfW5vcm1hbGl6ZVNraW5XZWlnaHRzKCl7bGV0IHQ9bmV3IGVuLHI9dGhpcy5nZW9tZXRyeS5hdHRyaWJ1dGVzLnNraW5XZWlnaHQ7Zm9yKGxldCBuPTAsaT1yLmNvdW50O248aTtuKyspe3QueD1yLmdldFgobiksdC55PXIuZ2V0WShuKSx0Lno9ci5nZXRaKG4pLHQudz1yLmdldFcobik7bGV0IG89MS90Lm1hbmhhdHRhbkxlbmd0aCgpO28hPT0xLzA/dC5tdWx0aXBseVNjYWxhcihvKTp0LnNldCgxLDAsMCwwKSxyLnNldFhZWlcobix0LngsdC55LHQueix0LncpfX11cGRhdGVNYXRyaXhXb3JsZCh0KXtzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KSx0aGlzLmJpbmRNb2RlPT09ImF0dGFjaGVkIj90aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCk6dGhpcy5iaW5kTW9kZT09PSJkZXRhY2hlZCI/dGhpcy5iaW5kTWF0cml4SW52ZXJzZS5jb3B5KHRoaXMuYmluZE1hdHJpeCkuaW52ZXJ0KCk6Y29uc29sZS53YXJuKCJUSFJFRS5Ta2lubmVkTWVzaDogVW5yZWNvZ25pemVkIGJpbmRNb2RlOiAiK3RoaXMuYmluZE1vZGUpfWJvbmVUcmFuc2Zvcm0odCxyKXtsZXQgbj10aGlzLnNrZWxldG9uLGk9dGhpcy5nZW9tZXRyeTtlaGUuZnJvbUJ1ZmZlckF0dHJpYnV0ZShpLmF0dHJpYnV0ZXMuc2tpbkluZGV4LHQpLHJoZS5mcm9tQnVmZmVyQXR0cmlidXRlKGkuYXR0cmlidXRlcy5za2luV2VpZ2h0LHQpLHRoZS5jb3B5KHIpLmFwcGx5TWF0cml4NCh0aGlzLmJpbmRNYXRyaXgpLHIuc2V0KDAsMCwwKTtmb3IobGV0IG89MDtvPDQ7bysrKXtsZXQgYT1yaGUuZ2V0Q29tcG9uZW50KG8pO2lmKGEhPT0wKXtsZXQgcz1laGUuZ2V0Q29tcG9uZW50KG8pO25oZS5tdWx0aXBseU1hdHJpY2VzKG4uYm9uZXNbc10ubWF0cml4V29ybGQsbi5ib25lSW52ZXJzZXNbc10pLHIuYWRkU2NhbGVkVmVjdG9yKERnci5jb3B5KHRoZSkuYXBwbHlNYXRyaXg0KG5oZSksYSl9fXJldHVybiByLmFwcGx5TWF0cml4NCh0aGlzLmJpbmRNYXRyaXhJbnZlcnNlKX19O2FNLnByb3RvdHlwZS5pc1NraW5uZWRNZXNoPSEwO3ZhciBzTT1jbGFzcyBleHRlbmRzIG9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnR5cGU9IkJvbmUifX07c00ucHJvdG90eXBlLmlzQm9uZT0hMDt2YXIgUWQ9Y2xhc3MgZXh0ZW5kcyB2aXtjb25zdHJ1Y3Rvcih0PW51bGwscj0xLG49MSxpLG8sYSxzLGwsYz1MaSx1PUxpLGgsZil7c3VwZXIobnVsbCxhLHMsbCxjLHUsaSxvLGgsZiksdGhpcy5pbWFnZT17ZGF0YTp0LHdpZHRoOnIsaGVpZ2h0Om59LHRoaXMubWFnRmlsdGVyPWMsdGhpcy5taW5GaWx0ZXI9dSx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMSx0aGlzLmZsaXBZPSExLHRoaXMudW5wYWNrQWxpZ25tZW50PTF9fTtRZC5wcm90b3R5cGUuaXNEYXRhVGV4dHVyZT0hMDt2YXIgaWhlPW5ldyBNZSxPZ3I9bmV3IE1lLGxNPWNsYXNze2NvbnN0cnVjdG9yKHQ9W10scj1bXSl7dGhpcy51dWlkPURsKCksdGhpcy5ib25lcz10LnNsaWNlKDApLHRoaXMuYm9uZUludmVyc2VzPXIsdGhpcy5ib25lTWF0cmljZXM9bnVsbCx0aGlzLmJvbmVUZXh0dXJlPW51bGwsdGhpcy5ib25lVGV4dHVyZVNpemU9MCx0aGlzLmZyYW1lPS0xLHRoaXMuaW5pdCgpfWluaXQoKXtsZXQgdD10aGlzLmJvbmVzLHI9dGhpcy5ib25lSW52ZXJzZXM7aWYodGhpcy5ib25lTWF0cmljZXM9bmV3IEZsb2F0MzJBcnJheSh0Lmxlbmd0aCoxNiksci5sZW5ndGg9PT0wKXRoaXMuY2FsY3VsYXRlSW52ZXJzZXMoKTtlbHNlIGlmKHQubGVuZ3RoIT09ci5sZW5ndGgpe2NvbnNvbGUud2FybigiVEhSRUUuU2tlbGV0b246IE51bWJlciBvZiBpbnZlcnNlIGJvbmUgbWF0cmljZXMgZG9lcyBub3QgbWF0Y2ggYW1vdW50IG9mIGJvbmVzLiIpLHRoaXMuYm9uZUludmVyc2VzPVtdO2ZvcihsZXQgbj0wLGk9dGhpcy5ib25lcy5sZW5ndGg7bjxpO24rKyl0aGlzLmJvbmVJbnZlcnNlcy5wdXNoKG5ldyBNZSl9fWNhbGN1bGF0ZUludmVyc2VzKCl7dGhpcy5ib25lSW52ZXJzZXMubGVuZ3RoPTA7Zm9yKGxldCB0PTAscj10aGlzLmJvbmVzLmxlbmd0aDt0PHI7dCsrKXtsZXQgbj1uZXcgTWU7dGhpcy5ib25lc1t0XSYmbi5jb3B5KHRoaXMuYm9uZXNbdF0ubWF0cml4V29ybGQpLmludmVydCgpLHRoaXMuYm9uZUludmVyc2VzLnB1c2gobil9fXBvc2UoKXtmb3IobGV0IHQ9MCxyPXRoaXMuYm9uZXMubGVuZ3RoO3Q8cjt0Kyspe2xldCBuPXRoaXMuYm9uZXNbdF07biYmbi5tYXRyaXhXb3JsZC5jb3B5KHRoaXMuYm9uZUludmVyc2VzW3RdKS5pbnZlcnQoKX1mb3IobGV0IHQ9MCxyPXRoaXMuYm9uZXMubGVuZ3RoO3Q8cjt0Kyspe2xldCBuPXRoaXMuYm9uZXNbdF07biYmKG4ucGFyZW50JiZuLnBhcmVudC5pc0JvbmU/KG4ubWF0cml4LmNvcHkobi5wYXJlbnQubWF0cml4V29ybGQpLmludmVydCgpLG4ubWF0cml4Lm11bHRpcGx5KG4ubWF0cml4V29ybGQpKTpuLm1hdHJpeC5jb3B5KG4ubWF0cml4V29ybGQpLG4ubWF0cml4LmRlY29tcG9zZShuLnBvc2l0aW9uLG4ucXVhdGVybmlvbixuLnNjYWxlKSl9fXVwZGF0ZSgpe2xldCB0PXRoaXMuYm9uZXMscj10aGlzLmJvbmVJbnZlcnNlcyxuPXRoaXMuYm9uZU1hdHJpY2VzLGk9dGhpcy5ib25lVGV4dHVyZTtmb3IobGV0IG89MCxhPXQubGVuZ3RoO288YTtvKyspe2xldCBzPXRbb10/dFtvXS5tYXRyaXhXb3JsZDpPZ3I7aWhlLm11bHRpcGx5TWF0cmljZXMocyxyW29dKSxpaGUudG9BcnJheShuLG8qMTYpfWkhPT1udWxsJiYoaS5uZWVkc1VwZGF0ZT0hMCl9Y2xvbmUoKXtyZXR1cm4gbmV3IGxNKHRoaXMuYm9uZXMsdGhpcy5ib25lSW52ZXJzZXMpfWNvbXB1dGVCb25lVGV4dHVyZSgpe2xldCB0PU1hdGguc3FydCh0aGlzLmJvbmVzLmxlbmd0aCo0KTt0PXpmZSh0KSx0PU1hdGgubWF4KHQsNCk7bGV0IHI9bmV3IEZsb2F0MzJBcnJheSh0KnQqNCk7ci5zZXQodGhpcy5ib25lTWF0cmljZXMpO2xldCBuPW5ldyBRZChyLHQsdCxRbyxYZCk7cmV0dXJuIG4ubmVlZHNVcGRhdGU9ITAsdGhpcy5ib25lTWF0cmljZXM9cix0aGlzLmJvbmVUZXh0dXJlPW4sdGhpcy5ib25lVGV4dHVyZVNpemU9dCx0aGlzfWdldEJvbmVCeU5hbWUodCl7Zm9yKGxldCByPTAsbj10aGlzLmJvbmVzLmxlbmd0aDtyPG47cisrKXtsZXQgaT10aGlzLmJvbmVzW3JdO2lmKGkubmFtZT09PXQpcmV0dXJuIGl9fWRpc3Bvc2UoKXt0aGlzLmJvbmVUZXh0dXJlIT09bnVsbCYmKHRoaXMuYm9uZVRleHR1cmUuZGlzcG9zZSgpLHRoaXMuYm9uZVRleHR1cmU9bnVsbCl9ZnJvbUpTT04odCxyKXt0aGlzLnV1aWQ9dC51dWlkO2ZvcihsZXQgbj0wLGk9dC5ib25lcy5sZW5ndGg7bjxpO24rKyl7bGV0IG89dC5ib25lc1tuXSxhPXJbb107YT09PXZvaWQgMCYmKGNvbnNvbGUud2FybigiVEhSRUUuU2tlbGV0b246IE5vIGJvbmUgZm91bmQgd2l0aCBVVUlEOiIsbyksYT1uZXcgc00pLHRoaXMuYm9uZXMucHVzaChhKSx0aGlzLmJvbmVJbnZlcnNlcy5wdXNoKG5ldyBNZSgpLmZyb21BcnJheSh0LmJvbmVJbnZlcnNlc1tuXSkpfXJldHVybiB0aGlzLmluaXQoKSx0aGlzfXRvSlNPTigpe2xldCB0PXttZXRhZGF0YTp7dmVyc2lvbjo0LjUsdHlwZToiU2tlbGV0b24iLGdlbmVyYXRvcjoiU2tlbGV0b24udG9KU09OIn0sYm9uZXM6W10sYm9uZUludmVyc2VzOltdfTt0LnV1aWQ9dGhpcy51dWlkO2xldCByPXRoaXMuYm9uZXMsbj10aGlzLmJvbmVJbnZlcnNlcztmb3IobGV0IGk9MCxvPXIubGVuZ3RoO2k8bztpKyspe2xldCBhPXJbaV07dC5ib25lcy5wdXNoKGEudXVpZCk7bGV0IHM9bltpXTt0LmJvbmVJbnZlcnNlcy5wdXNoKHMudG9BcnJheSgpKX1yZXR1cm4gdH19LG5tPWNsYXNzIGV4dGVuZHMgSmV7Y29uc3RydWN0b3IodCxyLG4saT0xKXt0eXBlb2Ygbj09Im51bWJlciImJihpPW4sbj0hMSxjb25zb2xlLmVycm9yKCJUSFJFRS5JbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU6IFRoZSBjb25zdHJ1Y3RvciBub3cgZXhwZWN0cyBub3JtYWxpemVkIGFzIHRoZSB0aGlyZCBhcmd1bWVudC4iKSksc3VwZXIodCxyLG4pLHRoaXMubWVzaFBlckF0dHJpYnV0ZT1pfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5tZXNoUGVyQXR0cmlidXRlPXQubWVzaFBlckF0dHJpYnV0ZSx0aGlzfXRvSlNPTigpe2xldCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0Lm1lc2hQZXJBdHRyaWJ1dGU9dGhpcy5tZXNoUGVyQXR0cmlidXRlLHQuaXNJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU9ITAsdH19O25tLnByb3RvdHlwZS5pc0luc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZT0hMDt2YXIgb2hlPW5ldyBNZSxhaGU9bmV3IE1lLERWPVtdLEZQPW5ldyB0aSxpNj1jbGFzcyBleHRlbmRzIHRpe2NvbnN0cnVjdG9yKHQscixuKXtzdXBlcih0LHIpLHRoaXMuaW5zdGFuY2VNYXRyaXg9bmV3IG5tKG5ldyBGbG9hdDMyQXJyYXkobioxNiksMTYpLHRoaXMuaW5zdGFuY2VDb2xvcj1udWxsLHRoaXMuY291bnQ9bix0aGlzLmZydXN0dW1DdWxsZWQ9ITF9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmluc3RhbmNlTWF0cml4LmNvcHkodC5pbnN0YW5jZU1hdHJpeCksdC5pbnN0YW5jZUNvbG9yIT09bnVsbCYmKHRoaXMuaW5zdGFuY2VDb2xvcj10Lmluc3RhbmNlQ29sb3IuY2xvbmUoKSksdGhpcy5jb3VudD10LmNvdW50LHRoaXN9Z2V0Q29sb3JBdCh0LHIpe3IuZnJvbUFycmF5KHRoaXMuaW5zdGFuY2VDb2xvci5hcnJheSx0KjMpfWdldE1hdHJpeEF0KHQscil7ci5mcm9tQXJyYXkodGhpcy5pbnN0YW5jZU1hdHJpeC5hcnJheSx0KjE2KX1yYXljYXN0KHQscil7bGV0IG49dGhpcy5tYXRyaXhXb3JsZCxpPXRoaXMuY291bnQ7aWYoRlAuZ2VvbWV0cnk9dGhpcy5nZW9tZXRyeSxGUC5tYXRlcmlhbD10aGlzLm1hdGVyaWFsLEZQLm1hdGVyaWFsIT09dm9pZCAwKWZvcihsZXQgbz0wO288aTtvKyspe3RoaXMuZ2V0TWF0cml4QXQobyxvaGUpLGFoZS5tdWx0aXBseU1hdHJpY2VzKG4sb2hlKSxGUC5tYXRyaXhXb3JsZD1haGUsRlAucmF5Y2FzdCh0LERWKTtmb3IobGV0IGE9MCxzPURWLmxlbmd0aDthPHM7YSsrKXtsZXQgbD1EVlthXTtsLmluc3RhbmNlSWQ9byxsLm9iamVjdD10aGlzLHIucHVzaChsKX1EVi5sZW5ndGg9MH19c2V0Q29sb3JBdCh0LHIpe3RoaXMuaW5zdGFuY2VDb2xvcj09PW51bGwmJih0aGlzLmluc3RhbmNlQ29sb3I9bmV3IG5tKG5ldyBGbG9hdDMyQXJyYXkodGhpcy5pbnN0YW5jZU1hdHJpeC5jb3VudCozKSwzKSksci50b0FycmF5KHRoaXMuaW5zdGFuY2VDb2xvci5hcnJheSx0KjMpfXNldE1hdHJpeEF0KHQscil7ci50b0FycmF5KHRoaXMuaW5zdGFuY2VNYXRyaXguYXJyYXksdCoxNil9dXBkYXRlTW9ycGhUYXJnZXRzKCl7fWRpc3Bvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc3Bvc2UifSl9fTtpNi5wcm90b3R5cGUuaXNJbnN0YW5jZWRNZXNoPSEwO3ZhciBHaT1jbGFzcyBleHRlbmRzIHFpe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJMaW5lQmFzaWNNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgbmUoMTY3NzcyMTUpLHRoaXMubGluZXdpZHRoPTEsdGhpcy5saW5lY2FwPSJyb3VuZCIsdGhpcy5saW5lam9pbj0icm91bmQiLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubGluZXdpZHRoPXQubGluZXdpZHRoLHRoaXMubGluZWNhcD10LmxpbmVjYXAsdGhpcy5saW5lam9pbj10LmxpbmVqb2luLHRoaXN9fTtHaS5wcm90b3R5cGUuaXNMaW5lQmFzaWNNYXRlcmlhbD0hMDt2YXIgc2hlPW5ldyBqLGxoZT1uZXcgaixjaGU9bmV3IE1lLG11dD1uZXcgUWYsT1Y9bmV3IEpmLGNoPWNsYXNzIGV4dGVuZHMgb3J7Y29uc3RydWN0b3IodD1uZXcgUGUscj1uZXcgR2kpe3N1cGVyKCksdGhpcy50eXBlPSJMaW5lIix0aGlzLmdlb21ldHJ5PXQsdGhpcy5tYXRlcmlhbD1yLHRoaXMudXBkYXRlTW9ycGhUYXJnZXRzKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLm1hdGVyaWFsPXQubWF0ZXJpYWwsdGhpcy5nZW9tZXRyeT10Lmdlb21ldHJ5LHRoaXN9Y29tcHV0ZUxpbmVEaXN0YW5jZXMoKXtsZXQgdD10aGlzLmdlb21ldHJ5O2lmKHQuaXNCdWZmZXJHZW9tZXRyeSlpZih0LmluZGV4PT09bnVsbCl7bGV0IHI9dC5hdHRyaWJ1dGVzLnBvc2l0aW9uLG49WzBdO2ZvcihsZXQgaT0xLG89ci5jb3VudDtpPG87aSsrKXNoZS5mcm9tQnVmZmVyQXR0cmlidXRlKHIsaS0xKSxsaGUuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLGkpLG5baV09bltpLTFdLG5baV0rPXNoZS5kaXN0YW5jZVRvKGxoZSk7dC5zZXRBdHRyaWJ1dGUoImxpbmVEaXN0YW5jZSIsbmV3IHhlKG4sMSkpfWVsc2UgY29uc29sZS53YXJuKCJUSFJFRS5MaW5lLmNvbXB1dGVMaW5lRGlzdGFuY2VzKCk6IENvbXB1dGF0aW9uIG9ubHkgcG9zc2libGUgd2l0aCBub24taW5kZXhlZCBCdWZmZXJHZW9tZXRyeS4iKTtlbHNlIHQuaXNHZW9tZXRyeSYmY29uc29sZS5lcnJvcigiVEhSRUUuTGluZS5jb21wdXRlTGluZURpc3RhbmNlcygpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIik7cmV0dXJuIHRoaXN9cmF5Y2FzdCh0LHIpe2xldCBuPXRoaXMuZ2VvbWV0cnksaT10aGlzLm1hdHJpeFdvcmxkLG89dC5wYXJhbXMuTGluZS50aHJlc2hvbGQsYT1uLmRyYXdSYW5nZTtpZihuLmJvdW5kaW5nU3BoZXJlPT09bnVsbCYmbi5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxPVi5jb3B5KG4uYm91bmRpbmdTcGhlcmUpLE9WLmFwcGx5TWF0cml4NChpKSxPVi5yYWRpdXMrPW8sdC5yYXkuaW50ZXJzZWN0c1NwaGVyZShPVik9PT0hMSlyZXR1cm47Y2hlLmNvcHkoaSkuaW52ZXJ0KCksbXV0LmNvcHkodC5yYXkpLmFwcGx5TWF0cml4NChjaGUpO2xldCBzPW8vKCh0aGlzLnNjYWxlLngrdGhpcy5zY2FsZS55K3RoaXMuc2NhbGUueikvMyksbD1zKnMsYz1uZXcgaix1PW5ldyBqLGg9bmV3IGosZj1uZXcgaixwPXRoaXMuaXNMaW5lU2VnbWVudHM/MjoxO2lmKG4uaXNCdWZmZXJHZW9tZXRyeSl7bGV0IGQ9bi5pbmRleCxfPW4uYXR0cmlidXRlcy5wb3NpdGlvbjtpZihkIT09bnVsbCl7bGV0IHk9TWF0aC5tYXgoMCxhLnN0YXJ0KSx4PU1hdGgubWluKGQuY291bnQsYS5zdGFydCthLmNvdW50KTtmb3IobGV0IGI9eSxTPXgtMTtiPFM7Yis9cCl7bGV0IEM9ZC5nZXRYKGIpLFA9ZC5nZXRYKGIrMSk7aWYoYy5mcm9tQnVmZmVyQXR0cmlidXRlKF8sQyksdS5mcm9tQnVmZmVyQXR0cmlidXRlKF8sUCksbXV0LmRpc3RhbmNlU3FUb1NlZ21lbnQoYyx1LGYsaCk+bCljb250aW51ZTtmLmFwcGx5TWF0cml4NCh0aGlzLm1hdHJpeFdvcmxkKTtsZXQgTz10LnJheS5vcmlnaW4uZGlzdGFuY2VUbyhmKTtPPHQubmVhcnx8Tz50LmZhcnx8ci5wdXNoKHtkaXN0YW5jZTpPLHBvaW50OmguY2xvbmUoKS5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCksaW5kZXg6YixmYWNlOm51bGwsZmFjZUluZGV4Om51bGwsb2JqZWN0OnRoaXN9KX19ZWxzZXtsZXQgeT1NYXRoLm1heCgwLGEuc3RhcnQpLHg9TWF0aC5taW4oXy5jb3VudCxhLnN0YXJ0K2EuY291bnQpO2ZvcihsZXQgYj15LFM9eC0xO2I8UztiKz1wKXtpZihjLmZyb21CdWZmZXJBdHRyaWJ1dGUoXyxiKSx1LmZyb21CdWZmZXJBdHRyaWJ1dGUoXyxiKzEpLG11dC5kaXN0YW5jZVNxVG9TZWdtZW50KGMsdSxmLGgpPmwpY29udGludWU7Zi5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCk7bGV0IFA9dC5yYXkub3JpZ2luLmRpc3RhbmNlVG8oZik7UDx0Lm5lYXJ8fFA+dC5mYXJ8fHIucHVzaCh7ZGlzdGFuY2U6UCxwb2ludDpoLmNsb25lKCkuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpLGluZGV4OmIsZmFjZTpudWxsLGZhY2VJbmRleDpudWxsLG9iamVjdDp0aGlzfSl9fX1lbHNlIG4uaXNHZW9tZXRyeSYmY29uc29sZS5lcnJvcigiVEhSRUUuTGluZS5yYXljYXN0KCkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKX11cGRhdGVNb3JwaFRhcmdldHMoKXtsZXQgdD10aGlzLmdlb21ldHJ5O2lmKHQuaXNCdWZmZXJHZW9tZXRyeSl7bGV0IHI9dC5tb3JwaEF0dHJpYnV0ZXMsbj1PYmplY3Qua2V5cyhyKTtpZihuLmxlbmd0aD4wKXtsZXQgaT1yW25bMF1dO2lmKGkhPT12b2lkIDApe3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzPVtdLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5PXt9O2ZvcihsZXQgbz0wLGE9aS5sZW5ndGg7bzxhO28rKyl7bGV0IHM9aVtvXS5uYW1lfHxTdHJpbmcobyk7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXMucHVzaCgwKSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeVtzXT1vfX19fWVsc2V7bGV0IHI9dC5tb3JwaFRhcmdldHM7ciE9PXZvaWQgMCYmci5sZW5ndGg+MCYmY29uc29sZS5lcnJvcigiVEhSRUUuTGluZS51cGRhdGVNb3JwaFRhcmdldHMoKSBkb2VzIG5vdCBzdXBwb3J0IFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKX19fTtjaC5wcm90b3R5cGUuaXNMaW5lPSEwO3ZhciB1aGU9bmV3IGosaGhlPW5ldyBqLFBhPWNsYXNzIGV4dGVuZHMgY2h7Y29uc3RydWN0b3IodCxyKXtzdXBlcih0LHIpLHRoaXMudHlwZT0iTGluZVNlZ21lbnRzIn1jb21wdXRlTGluZURpc3RhbmNlcygpe2xldCB0PXRoaXMuZ2VvbWV0cnk7aWYodC5pc0J1ZmZlckdlb21ldHJ5KWlmKHQuaW5kZXg9PT1udWxsKXtsZXQgcj10LmF0dHJpYnV0ZXMucG9zaXRpb24sbj1bXTtmb3IobGV0IGk9MCxvPXIuY291bnQ7aTxvO2krPTIpdWhlLmZyb21CdWZmZXJBdHRyaWJ1dGUocixpKSxoaGUuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLGkrMSksbltpXT1pPT09MD8wOm5baS0xXSxuW2krMV09bltpXSt1aGUuZGlzdGFuY2VUbyhoaGUpO3Quc2V0QXR0cmlidXRlKCJsaW5lRGlzdGFuY2UiLG5ldyB4ZShuLDEpKX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuTGluZVNlZ21lbnRzLmNvbXB1dGVMaW5lRGlzdGFuY2VzKCk6IENvbXB1dGF0aW9uIG9ubHkgcG9zc2libGUgd2l0aCBub24taW5kZXhlZCBCdWZmZXJHZW9tZXRyeS4iKTtlbHNlIHQuaXNHZW9tZXRyeSYmY29uc29sZS5lcnJvcigiVEhSRUUuTGluZVNlZ21lbnRzLmNvbXB1dGVMaW5lRGlzdGFuY2VzKCkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKTtyZXR1cm4gdGhpc319O1BhLnByb3RvdHlwZS5pc0xpbmVTZWdtZW50cz0hMDt2YXIgbzY9Y2xhc3MgZXh0ZW5kcyBjaHtjb25zdHJ1Y3Rvcih0LHIpe3N1cGVyKHQsciksdGhpcy50eXBlPSJMaW5lTG9vcCJ9fTtvNi5wcm90b3R5cGUuaXNMaW5lTG9vcD0hMDt2YXIgaW09Y2xhc3MgZXh0ZW5kcyBxaXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iUG9pbnRzTWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IG5lKDE2Nzc3MjE1KSx0aGlzLm1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLnNpemU9MSx0aGlzLnNpemVBdHRlbnVhdGlvbj0hMCx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLm1hcD10Lm1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5zaXplPXQuc2l6ZSx0aGlzLnNpemVBdHRlbnVhdGlvbj10LnNpemVBdHRlbnVhdGlvbix0aGlzfX07aW0ucHJvdG90eXBlLmlzUG9pbnRzTWF0ZXJpYWw9ITA7dmFyIGZoZT1uZXcgTWUscmh0PW5ldyBRZix6Vj1uZXcgSmYsRlY9bmV3IGosb209Y2xhc3MgZXh0ZW5kcyBvcntjb25zdHJ1Y3Rvcih0PW5ldyBQZSxyPW5ldyBpbSl7c3VwZXIoKSx0aGlzLnR5cGU9IlBvaW50cyIsdGhpcy5nZW9tZXRyeT10LHRoaXMubWF0ZXJpYWw9cix0aGlzLnVwZGF0ZU1vcnBoVGFyZ2V0cygpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXMuZ2VvbWV0cnk9dC5nZW9tZXRyeSx0aGlzfXJheWNhc3QodCxyKXtsZXQgbj10aGlzLmdlb21ldHJ5LGk9dGhpcy5tYXRyaXhXb3JsZCxvPXQucGFyYW1zLlBvaW50cy50aHJlc2hvbGQsYT1uLmRyYXdSYW5nZTtpZihuLmJvdW5kaW5nU3BoZXJlPT09bnVsbCYmbi5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSx6Vi5jb3B5KG4uYm91bmRpbmdTcGhlcmUpLHpWLmFwcGx5TWF0cml4NChpKSx6Vi5yYWRpdXMrPW8sdC5yYXkuaW50ZXJzZWN0c1NwaGVyZSh6Vik9PT0hMSlyZXR1cm47ZmhlLmNvcHkoaSkuaW52ZXJ0KCkscmh0LmNvcHkodC5yYXkpLmFwcGx5TWF0cml4NChmaGUpO2xldCBzPW8vKCh0aGlzLnNjYWxlLngrdGhpcy5zY2FsZS55K3RoaXMuc2NhbGUueikvMyksbD1zKnM7aWYobi5pc0J1ZmZlckdlb21ldHJ5KXtsZXQgYz1uLmluZGV4LGg9bi5hdHRyaWJ1dGVzLnBvc2l0aW9uO2lmKGMhPT1udWxsKXtsZXQgZj1NYXRoLm1heCgwLGEuc3RhcnQpLHA9TWF0aC5taW4oYy5jb3VudCxhLnN0YXJ0K2EuY291bnQpO2ZvcihsZXQgZD1mLGc9cDtkPGc7ZCsrKXtsZXQgXz1jLmdldFgoZCk7RlYuZnJvbUJ1ZmZlckF0dHJpYnV0ZShoLF8pLHBoZShGVixfLGwsaSx0LHIsdGhpcyl9fWVsc2V7bGV0IGY9TWF0aC5tYXgoMCxhLnN0YXJ0KSxwPU1hdGgubWluKGguY291bnQsYS5zdGFydCthLmNvdW50KTtmb3IobGV0IGQ9ZixnPXA7ZDxnO2QrKylGVi5mcm9tQnVmZmVyQXR0cmlidXRlKGgsZCkscGhlKEZWLGQsbCxpLHQscix0aGlzKX19ZWxzZSBjb25zb2xlLmVycm9yKCJUSFJFRS5Qb2ludHMucmF5Y2FzdCgpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9dXBkYXRlTW9ycGhUYXJnZXRzKCl7bGV0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpe2xldCByPXQubW9ycGhBdHRyaWJ1dGVzLG49T2JqZWN0LmtleXMocik7aWYobi5sZW5ndGg+MCl7bGV0IGk9cltuWzBdXTtpZihpIT09dm9pZCAwKXt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcz1bXSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeT17fTtmb3IobGV0IG89MCxhPWkubGVuZ3RoO288YTtvKyspe2xldCBzPWlbb10ubmFtZXx8U3RyaW5nKG8pO3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzLnB1c2goMCksdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnlbc109b319fX1lbHNle2xldCByPXQubW9ycGhUYXJnZXRzO3IhPT12b2lkIDAmJnIubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLlBvaW50cy51cGRhdGVNb3JwaFRhcmdldHMoKSBkb2VzIG5vdCBzdXBwb3J0IFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKX19fTtvbS5wcm90b3R5cGUuaXNQb2ludHM9ITA7ZnVuY3Rpb24gcGhlKGUsdCxyLG4saSxvLGEpe2xldCBzPXJodC5kaXN0YW5jZVNxVG9Qb2ludChlKTtpZihzPHIpe2xldCBsPW5ldyBqO3JodC5jbG9zZXN0UG9pbnRUb1BvaW50KGUsbCksbC5hcHBseU1hdHJpeDQobik7bGV0IGM9aS5yYXkub3JpZ2luLmRpc3RhbmNlVG8obCk7aWYoYzxpLm5lYXJ8fGM+aS5mYXIpcmV0dXJuO28ucHVzaCh7ZGlzdGFuY2U6YyxkaXN0YW5jZVRvUmF5Ok1hdGguc3FydChzKSxwb2ludDpsLGluZGV4OnQsZmFjZTpudWxsLG9iamVjdDphfSl9fXZhciB5VT1jbGFzcyBleHRlbmRzIHZpe2NvbnN0cnVjdG9yKHQscixuLGksbyxhLHMsbCxjKXtzdXBlcih0LHIsbixpLG8sYSxzLGwsYyksdGhpcy5taW5GaWx0ZXI9YSE9PXZvaWQgMD9hOmlpLHRoaXMubWFnRmlsdGVyPW8hPT12b2lkIDA/bzppaSx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMTtsZXQgdT10aGlzO2Z1bmN0aW9uIGgoKXt1Lm5lZWRzVXBkYXRlPSEwLHQucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhoKX0icmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayJpbiB0JiZ0LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soaCl9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5pbWFnZSkuY29weSh0aGlzKX11cGRhdGUoKXtsZXQgdD10aGlzLmltYWdlOyJyZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrImluIHQ9PT0hMSYmdC5yZWFkeVN0YXRlPj10LkhBVkVfQ1VSUkVOVF9EQVRBJiYodGhpcy5uZWVkc1VwZGF0ZT0hMCl9fTt5VS5wcm90b3R5cGUuaXNWaWRlb1RleHR1cmU9ITA7dmFyIHZVPWNsYXNzIGV4dGVuZHMgdml7Y29uc3RydWN0b3IodCxyLG4pe3N1cGVyKHt3aWR0aDp0LGhlaWdodDpyfSksdGhpcy5mb3JtYXQ9bix0aGlzLm1hZ0ZpbHRlcj1MaSx0aGlzLm1pbkZpbHRlcj1MaSx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMSx0aGlzLm5lZWRzVXBkYXRlPSEwfX07dlUucHJvdG90eXBlLmlzRnJhbWVidWZmZXJUZXh0dXJlPSEwO3ZhciBhNj1jbGFzcyBleHRlbmRzIHZpe2NvbnN0cnVjdG9yKHQscixuLGksbyxhLHMsbCxjLHUsaCxmKXtzdXBlcihudWxsLGEscyxsLGMsdSxpLG8saCxmKSx0aGlzLmltYWdlPXt3aWR0aDpyLGhlaWdodDpufSx0aGlzLm1pcG1hcHM9dCx0aGlzLmZsaXBZPSExLHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSExfX07YTYucHJvdG90eXBlLmlzQ29tcHJlc3NlZFRleHR1cmU9ITA7dmFyIHhVPWNsYXNzIGV4dGVuZHMgdml7Y29uc3RydWN0b3IodCxyLG4saSxvLGEscyxsLGMpe3N1cGVyKHQscixuLGksbyxhLHMsbCxjKSx0aGlzLm5lZWRzVXBkYXRlPSEwfX07eFUucHJvdG90eXBlLmlzQ2FudmFzVGV4dHVyZT0hMDt2YXIgQjE9Y2xhc3MgZXh0ZW5kcyBQZXtjb25zdHJ1Y3Rvcih0PTEscj04LG49MCxpPU1hdGguUEkqMil7c3VwZXIoKSx0aGlzLnR5cGU9IkNpcmNsZUdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LHNlZ21lbnRzOnIsdGhldGFTdGFydDpuLHRoZXRhTGVuZ3RoOml9LHI9TWF0aC5tYXgoMyxyKTtsZXQgbz1bXSxhPVtdLHM9W10sbD1bXSxjPW5ldyBqLHU9bmV3IEx0O2EucHVzaCgwLDAsMCkscy5wdXNoKDAsMCwxKSxsLnB1c2goLjUsLjUpO2ZvcihsZXQgaD0wLGY9MztoPD1yO2grKyxmKz0zKXtsZXQgcD1uK2gvcippO2MueD10Kk1hdGguY29zKHApLGMueT10Kk1hdGguc2luKHApLGEucHVzaChjLngsYy55LGMueikscy5wdXNoKDAsMCwxKSx1Lng9KGFbZl0vdCsxKS8yLHUueT0oYVtmKzFdL3QrMSkvMixsLnB1c2godS54LHUueSl9Zm9yKGxldCBoPTE7aDw9cjtoKyspby5wdXNoKGgsaCsxLDApO3RoaXMuc2V0SW5kZXgobyksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgeGUoYSwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IHhlKHMsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IHhlKGwsMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IEIxKHQucmFkaXVzLHQuc2VnbWVudHMsdC50aGV0YVN0YXJ0LHQudGhldGFMZW5ndGgpfX0sYW09Y2xhc3MgZXh0ZW5kcyBQZXtjb25zdHJ1Y3Rvcih0PTEscj0xLG49MSxpPTgsbz0xLGE9ITEscz0wLGw9TWF0aC5QSSoyKXtzdXBlcigpLHRoaXMudHlwZT0iQ3lsaW5kZXJHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtyYWRpdXNUb3A6dCxyYWRpdXNCb3R0b206cixoZWlnaHQ6bixyYWRpYWxTZWdtZW50czppLGhlaWdodFNlZ21lbnRzOm8sb3BlbkVuZGVkOmEsdGhldGFTdGFydDpzLHRoZXRhTGVuZ3RoOmx9O2xldCBjPXRoaXM7aT1NYXRoLmZsb29yKGkpLG89TWF0aC5mbG9vcihvKTtsZXQgdT1bXSxoPVtdLGY9W10scD1bXSxkPTAsZz1bXSxfPW4vMix5PTA7eCgpLGE9PT0hMSYmKHQ+MCYmYighMCkscj4wJiZiKCExKSksdGhpcy5zZXRJbmRleCh1KSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyB4ZShoLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgeGUoZiwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgeGUocCwyKSk7ZnVuY3Rpb24geCgpe2xldCBTPW5ldyBqLEM9bmV3IGosUD0wLGs9KHItdCkvbjtmb3IobGV0IE89MDtPPD1vO08rKyl7bGV0IEQ9W10sQj1PL28sST1CKihyLXQpK3Q7Zm9yKGxldCBMPTA7TDw9aTtMKyspe2xldCBSPUwvaSxGPVIqbCtzLHo9TWF0aC5zaW4oRiksVT1NYXRoLmNvcyhGKTtDLng9SSp6LEMueT0tQipuK18sQy56PUkqVSxoLnB1c2goQy54LEMueSxDLnopLFMuc2V0KHosayxVKS5ub3JtYWxpemUoKSxmLnB1c2goUy54LFMueSxTLnopLHAucHVzaChSLDEtQiksRC5wdXNoKGQrKyl9Zy5wdXNoKEQpfWZvcihsZXQgTz0wO088aTtPKyspZm9yKGxldCBEPTA7RDxvO0QrKyl7bGV0IEI9Z1tEXVtPXSxJPWdbRCsxXVtPXSxMPWdbRCsxXVtPKzFdLFI9Z1tEXVtPKzFdO3UucHVzaChCLEksUiksdS5wdXNoKEksTCxSKSxQKz02fWMuYWRkR3JvdXAoeSxQLDApLHkrPVB9ZnVuY3Rpb24gYihTKXtsZXQgQz1kLFA9bmV3IEx0LGs9bmV3IGosTz0wLEQ9Uz09PSEwP3Q6cixCPVM9PT0hMD8xOi0xO2ZvcihsZXQgTD0xO0w8PWk7TCsrKWgucHVzaCgwLF8qQiwwKSxmLnB1c2goMCxCLDApLHAucHVzaCguNSwuNSksZCsrO2xldCBJPWQ7Zm9yKGxldCBMPTA7TDw9aTtMKyspe2xldCBGPUwvaSpsK3Msej1NYXRoLmNvcyhGKSxVPU1hdGguc2luKEYpO2sueD1EKlUsay55PV8qQixrLno9RCp6LGgucHVzaChrLngsay55LGsueiksZi5wdXNoKDAsQiwwKSxQLng9eiouNSsuNSxQLnk9VSouNSpCKy41LHAucHVzaChQLngsUC55KSxkKyt9Zm9yKGxldCBMPTA7TDxpO0wrKyl7bGV0IFI9QytMLEY9SStMO1M9PT0hMD91LnB1c2goRixGKzEsUik6dS5wdXNoKEYrMSxGLFIpLE8rPTN9Yy5hZGRHcm91cCh5LE8sUz09PSEwPzE6MikseSs9T319c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgYW0odC5yYWRpdXNUb3AsdC5yYWRpdXNCb3R0b20sdC5oZWlnaHQsdC5yYWRpYWxTZWdtZW50cyx0LmhlaWdodFNlZ21lbnRzLHQub3BlbkVuZGVkLHQudGhldGFTdGFydCx0LnRoZXRhTGVuZ3RoKX19LEgxPWNsYXNzIGV4dGVuZHMgYW17Y29uc3RydWN0b3IodD0xLHI9MSxuPTgsaT0xLG89ITEsYT0wLHM9TWF0aC5QSSoyKXtzdXBlcigwLHQscixuLGksbyxhLHMpLHRoaXMudHlwZT0iQ29uZUdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LGhlaWdodDpyLHJhZGlhbFNlZ21lbnRzOm4saGVpZ2h0U2VnbWVudHM6aSxvcGVuRW5kZWQ6byx0aGV0YVN0YXJ0OmEsdGhldGFMZW5ndGg6c319c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgSDEodC5yYWRpdXMsdC5oZWlnaHQsdC5yYWRpYWxTZWdtZW50cyx0LmhlaWdodFNlZ21lbnRzLHQub3BlbkVuZGVkLHQudGhldGFTdGFydCx0LnRoZXRhTGVuZ3RoKX19LHVoPWNsYXNzIGV4dGVuZHMgUGV7Y29uc3RydWN0b3IodD1bXSxyPVtdLG49MSxpPTApe3N1cGVyKCksdGhpcy50eXBlPSJQb2x5aGVkcm9uR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17dmVydGljZXM6dCxpbmRpY2VzOnIscmFkaXVzOm4sZGV0YWlsOml9O2xldCBvPVtdLGE9W107cyhpKSxjKG4pLHUoKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyB4ZShvLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgeGUoby5zbGljZSgpLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyB4ZShhLDIpKSxpPT09MD90aGlzLmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCk6dGhpcy5ub3JtYWxpemVOb3JtYWxzKCk7ZnVuY3Rpb24gcyh4KXtsZXQgYj1uZXcgaixTPW5ldyBqLEM9bmV3IGo7Zm9yKGxldCBQPTA7UDxyLmxlbmd0aDtQKz0zKXAocltQKzBdLGIpLHAocltQKzFdLFMpLHAocltQKzJdLEMpLGwoYixTLEMseCl9ZnVuY3Rpb24gbCh4LGIsUyxDKXtsZXQgUD1DKzEsaz1bXTtmb3IobGV0IE89MDtPPD1QO08rKyl7a1tPXT1bXTtsZXQgRD14LmNsb25lKCkubGVycChTLE8vUCksQj1iLmNsb25lKCkubGVycChTLE8vUCksST1QLU87Zm9yKGxldCBMPTA7TDw9STtMKyspTD09PTAmJk89PT1QP2tbT11bTF09RDprW09dW0xdPUQuY2xvbmUoKS5sZXJwKEIsTC9JKX1mb3IobGV0IE89MDtPPFA7TysrKWZvcihsZXQgRD0wO0Q8MiooUC1PKS0xO0QrKyl7bGV0IEI9TWF0aC5mbG9vcihELzIpO0QlMj09PTA/KGYoa1tPXVtCKzFdKSxmKGtbTysxXVtCXSksZihrW09dW0JdKSk6KGYoa1tPXVtCKzFdKSxmKGtbTysxXVtCKzFdKSxmKGtbTysxXVtCXSkpfX1mdW5jdGlvbiBjKHgpe2xldCBiPW5ldyBqO2ZvcihsZXQgUz0wO1M8by5sZW5ndGg7Uys9MyliLng9b1tTKzBdLGIueT1vW1MrMV0sYi56PW9bUysyXSxiLm5vcm1hbGl6ZSgpLm11bHRpcGx5U2NhbGFyKHgpLG9bUyswXT1iLngsb1tTKzFdPWIueSxvW1MrMl09Yi56fWZ1bmN0aW9uIHUoKXtsZXQgeD1uZXcgajtmb3IobGV0IGI9MDtiPG8ubGVuZ3RoO2IrPTMpe3gueD1vW2IrMF0seC55PW9bYisxXSx4Lno9b1tiKzJdO2xldCBTPV8oeCkvMi9NYXRoLlBJKy41LEM9eSh4KS9NYXRoLlBJKy41O2EucHVzaChTLDEtQyl9ZCgpLGgoKX1mdW5jdGlvbiBoKCl7Zm9yKGxldCB4PTA7eDxhLmxlbmd0aDt4Kz02KXtsZXQgYj1hW3grMF0sUz1hW3grMl0sQz1hW3grNF0sUD1NYXRoLm1heChiLFMsQyksaz1NYXRoLm1pbihiLFMsQyk7UD4uOSYmazwuMSYmKGI8LjImJihhW3grMF0rPTEpLFM8LjImJihhW3grMl0rPTEpLEM8LjImJihhW3grNF0rPTEpKX19ZnVuY3Rpb24gZih4KXtvLnB1c2goeC54LHgueSx4LnopfWZ1bmN0aW9uIHAoeCxiKXtsZXQgUz14KjM7Yi54PXRbUyswXSxiLnk9dFtTKzFdLGIuej10W1MrMl19ZnVuY3Rpb24gZCgpe2xldCB4PW5ldyBqLGI9bmV3IGosUz1uZXcgaixDPW5ldyBqLFA9bmV3IEx0LGs9bmV3IEx0LE89bmV3IEx0O2ZvcihsZXQgRD0wLEI9MDtEPG8ubGVuZ3RoO0QrPTksQis9Nil7eC5zZXQob1tEKzBdLG9bRCsxXSxvW0QrMl0pLGIuc2V0KG9bRCszXSxvW0QrNF0sb1tEKzVdKSxTLnNldChvW0QrNl0sb1tEKzddLG9bRCs4XSksUC5zZXQoYVtCKzBdLGFbQisxXSksay5zZXQoYVtCKzJdLGFbQiszXSksTy5zZXQoYVtCKzRdLGFbQis1XSksQy5jb3B5KHgpLmFkZChiKS5hZGQoUykuZGl2aWRlU2NhbGFyKDMpO2xldCBJPV8oQyk7ZyhQLEIrMCx4LEkpLGcoayxCKzIsYixJKSxnKE8sQis0LFMsSSl9fWZ1bmN0aW9uIGcoeCxiLFMsQyl7QzwwJiZ4Lng9PT0xJiYoYVtiXT14LngtMSksUy54PT09MCYmUy56PT09MCYmKGFbYl09Qy8yL01hdGguUEkrLjUpfWZ1bmN0aW9uIF8oeCl7cmV0dXJuIE1hdGguYXRhbjIoeC56LC14LngpfWZ1bmN0aW9uIHkoeCl7cmV0dXJuIE1hdGguYXRhbjIoLXgueSxNYXRoLnNxcnQoeC54KngueCt4LnoqeC56KSl9fXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IHVoKHQudmVydGljZXMsdC5pbmRpY2VzLHQucmFkaXVzLHQuZGV0YWlscyl9fSxWMT1jbGFzcyBleHRlbmRzIHVoe2NvbnN0cnVjdG9yKHQ9MSxyPTApe2xldCBuPSgxK01hdGguc3FydCg1KSkvMixpPTEvbixvPVstMSwtMSwtMSwtMSwtMSwxLC0xLDEsLTEsLTEsMSwxLDEsLTEsLTEsMSwtMSwxLDEsMSwtMSwxLDEsMSwwLC1pLC1uLDAsLWksbiwwLGksLW4sMCxpLG4sLWksLW4sMCwtaSxuLDAsaSwtbiwwLGksbiwwLC1uLDAsLWksbiwwLC1pLC1uLDAsaSxuLDAsaV0sYT1bMywxMSw3LDMsNywxNSwzLDE1LDEzLDcsMTksMTcsNywxNyw2LDcsNiwxNSwxNyw0LDgsMTcsOCwxMCwxNywxMCw2LDgsMCwxNiw4LDE2LDIsOCwyLDEwLDAsMTIsMSwwLDEsMTgsMCwxOCwxNiw2LDEwLDIsNiwyLDEzLDYsMTMsMTUsMiwxNiwxOCwyLDE4LDMsMiwzLDEzLDE4LDEsOSwxOCw5LDExLDE4LDExLDMsNCwxNCwxMiw0LDEyLDAsNCwwLDgsMTEsOSw1LDExLDUsMTksMTEsMTksNywxOSw1LDE0LDE5LDE0LDQsMTksNCwxNywxLDEyLDE0LDEsMTQsNSwxLDUsOV07c3VwZXIobyxhLHQsciksdGhpcy50eXBlPSJEb2RlY2FoZWRyb25HZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtyYWRpdXM6dCxkZXRhaWw6cn19c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgVjEodC5yYWRpdXMsdC5kZXRhaWwpfX0sQlY9bmV3IGosSFY9bmV3IGosZ3V0PW5ldyBqLFZWPW5ldyBvaSxzNj1jbGFzcyBleHRlbmRzIFBle2NvbnN0cnVjdG9yKHQ9bnVsbCxyPTEpe2lmKHN1cGVyKCksdGhpcy50eXBlPSJFZGdlc0dlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e2dlb21ldHJ5OnQsdGhyZXNob2xkQW5nbGU6cn0sdCE9PW51bGwpe2xldCBpPU1hdGgucG93KDEwLDQpLG89TWF0aC5jb3MoSTEqciksYT10LmdldEluZGV4KCkscz10LmdldEF0dHJpYnV0ZSgicG9zaXRpb24iKSxsPWE/YS5jb3VudDpzLmNvdW50LGM9WzAsMCwwXSx1PVsiYSIsImIiLCJjIl0saD1uZXcgQXJyYXkoMyksZj17fSxwPVtdO2ZvcihsZXQgZD0wO2Q8bDtkKz0zKXthPyhjWzBdPWEuZ2V0WChkKSxjWzFdPWEuZ2V0WChkKzEpLGNbMl09YS5nZXRYKGQrMikpOihjWzBdPWQsY1sxXT1kKzEsY1syXT1kKzIpO2xldHthOmcsYjpfLGM6eX09VlY7aWYoZy5mcm9tQnVmZmVyQXR0cmlidXRlKHMsY1swXSksXy5mcm9tQnVmZmVyQXR0cmlidXRlKHMsY1sxXSkseS5mcm9tQnVmZmVyQXR0cmlidXRlKHMsY1syXSksVlYuZ2V0Tm9ybWFsKGd1dCksaFswXT1gJHtNYXRoLnJvdW5kKGcueCppKX0sJHtNYXRoLnJvdW5kKGcueSppKX0sJHtNYXRoLnJvdW5kKGcueippKX1gLGhbMV09YCR7TWF0aC5yb3VuZChfLngqaSl9LCR7TWF0aC5yb3VuZChfLnkqaSl9LCR7TWF0aC5yb3VuZChfLnoqaSl9YCxoWzJdPWAke01hdGgucm91bmQoeS54KmkpfSwke01hdGgucm91bmQoeS55KmkpfSwke01hdGgucm91bmQoeS56KmkpfWAsIShoWzBdPT09aFsxXXx8aFsxXT09PWhbMl18fGhbMl09PT1oWzBdKSlmb3IobGV0IHg9MDt4PDM7eCsrKXtsZXQgYj0oeCsxKSUzLFM9aFt4XSxDPWhbYl0sUD1WVlt1W3hdXSxrPVZWW3VbYl1dLE89YCR7U31fJHtDfWAsRD1gJHtDfV8ke1N9YDtEIGluIGYmJmZbRF0/KGd1dC5kb3QoZltEXS5ub3JtYWwpPD1vJiYocC5wdXNoKFAueCxQLnksUC56KSxwLnB1c2goay54LGsueSxrLnopKSxmW0RdPW51bGwpOk8gaW4gZnx8KGZbT109e2luZGV4MDpjW3hdLGluZGV4MTpjW2JdLG5vcm1hbDpndXQuY2xvbmUoKX0pfX1mb3IobGV0IGQgaW4gZilpZihmW2RdKXtsZXR7aW5kZXgwOmcsaW5kZXgxOl99PWZbZF07QlYuZnJvbUJ1ZmZlckF0dHJpYnV0ZShzLGcpLEhWLmZyb21CdWZmZXJBdHRyaWJ1dGUocyxfKSxwLnB1c2goQlYueCxCVi55LEJWLnopLHAucHVzaChIVi54LEhWLnksSFYueil9dGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgeGUocCwzKSl9fX0scHM9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnR5cGU9IkN1cnZlIix0aGlzLmFyY0xlbmd0aERpdmlzaW9ucz0yMDB9Z2V0UG9pbnQoKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5DdXJ2ZTogLmdldFBvaW50KCkgbm90IGltcGxlbWVudGVkLiIpLG51bGx9Z2V0UG9pbnRBdCh0LHIpe2xldCBuPXRoaXMuZ2V0VXRvVG1hcHBpbmcodCk7cmV0dXJuIHRoaXMuZ2V0UG9pbnQobixyKX1nZXRQb2ludHModD01KXtsZXQgcj1bXTtmb3IobGV0IG49MDtuPD10O24rKylyLnB1c2godGhpcy5nZXRQb2ludChuL3QpKTtyZXR1cm4gcn1nZXRTcGFjZWRQb2ludHModD01KXtsZXQgcj1bXTtmb3IobGV0IG49MDtuPD10O24rKylyLnB1c2godGhpcy5nZXRQb2ludEF0KG4vdCkpO3JldHVybiByfWdldExlbmd0aCgpe2xldCB0PXRoaXMuZ2V0TGVuZ3RocygpO3JldHVybiB0W3QubGVuZ3RoLTFdfWdldExlbmd0aHModD10aGlzLmFyY0xlbmd0aERpdmlzaW9ucyl7aWYodGhpcy5jYWNoZUFyY0xlbmd0aHMmJnRoaXMuY2FjaGVBcmNMZW5ndGhzLmxlbmd0aD09PXQrMSYmIXRoaXMubmVlZHNVcGRhdGUpcmV0dXJuIHRoaXMuY2FjaGVBcmNMZW5ndGhzO3RoaXMubmVlZHNVcGRhdGU9ITE7bGV0IHI9W10sbixpPXRoaXMuZ2V0UG9pbnQoMCksbz0wO3IucHVzaCgwKTtmb3IobGV0IGE9MTthPD10O2ErKyluPXRoaXMuZ2V0UG9pbnQoYS90KSxvKz1uLmRpc3RhbmNlVG8oaSksci5wdXNoKG8pLGk9bjtyZXR1cm4gdGhpcy5jYWNoZUFyY0xlbmd0aHM9cixyfXVwZGF0ZUFyY0xlbmd0aHMoKXt0aGlzLm5lZWRzVXBkYXRlPSEwLHRoaXMuZ2V0TGVuZ3RocygpfWdldFV0b1RtYXBwaW5nKHQscil7bGV0IG49dGhpcy5nZXRMZW5ndGhzKCksaT0wLG89bi5sZW5ndGgsYTtyP2E9cjphPXQqbltvLTFdO2xldCBzPTAsbD1vLTEsYztmb3IoO3M8PWw7KWlmKGk9TWF0aC5mbG9vcihzKyhsLXMpLzIpLGM9bltpXS1hLGM8MClzPWkrMTtlbHNlIGlmKGM+MClsPWktMTtlbHNle2w9aTticmVha31pZihpPWwsbltpXT09PWEpcmV0dXJuIGkvKG8tMSk7bGV0IHU9bltpXSxmPW5baSsxXS11LHA9KGEtdSkvZjtyZXR1cm4oaStwKS8oby0xKX1nZXRUYW5nZW50KHQscil7bGV0IGk9dC0xZS00LG89dCsxZS00O2k8MCYmKGk9MCksbz4xJiYobz0xKTtsZXQgYT10aGlzLmdldFBvaW50KGkpLHM9dGhpcy5nZXRQb2ludChvKSxsPXJ8fChhLmlzVmVjdG9yMj9uZXcgTHQ6bmV3IGopO3JldHVybiBsLmNvcHkocykuc3ViKGEpLm5vcm1hbGl6ZSgpLGx9Z2V0VGFuZ2VudEF0KHQscil7bGV0IG49dGhpcy5nZXRVdG9UbWFwcGluZyh0KTtyZXR1cm4gdGhpcy5nZXRUYW5nZW50KG4scil9Y29tcHV0ZUZyZW5ldEZyYW1lcyh0LHIpe2xldCBuPW5ldyBqLGk9W10sbz1bXSxhPVtdLHM9bmV3IGosbD1uZXcgTWU7Zm9yKGxldCBwPTA7cDw9dDtwKyspe2xldCBkPXAvdDtpW3BdPXRoaXMuZ2V0VGFuZ2VudEF0KGQsbmV3IGopfW9bMF09bmV3IGosYVswXT1uZXcgajtsZXQgYz1OdW1iZXIuTUFYX1ZBTFVFLHU9TWF0aC5hYnMoaVswXS54KSxoPU1hdGguYWJzKGlbMF0ueSksZj1NYXRoLmFicyhpWzBdLnopO3U8PWMmJihjPXUsbi5zZXQoMSwwLDApKSxoPD1jJiYoYz1oLG4uc2V0KDAsMSwwKSksZjw9YyYmbi5zZXQoMCwwLDEpLHMuY3Jvc3NWZWN0b3JzKGlbMF0sbikubm9ybWFsaXplKCksb1swXS5jcm9zc1ZlY3RvcnMoaVswXSxzKSxhWzBdLmNyb3NzVmVjdG9ycyhpWzBdLG9bMF0pO2ZvcihsZXQgcD0xO3A8PXQ7cCsrKXtpZihvW3BdPW9bcC0xXS5jbG9uZSgpLGFbcF09YVtwLTFdLmNsb25lKCkscy5jcm9zc1ZlY3RvcnMoaVtwLTFdLGlbcF0pLHMubGVuZ3RoKCk+TnVtYmVyLkVQU0lMT04pe3Mubm9ybWFsaXplKCk7bGV0IGQ9TWF0aC5hY29zKFpvKGlbcC0xXS5kb3QoaVtwXSksLTEsMSkpO29bcF0uYXBwbHlNYXRyaXg0KGwubWFrZVJvdGF0aW9uQXhpcyhzLGQpKX1hW3BdLmNyb3NzVmVjdG9ycyhpW3BdLG9bcF0pfWlmKHI9PT0hMCl7bGV0IHA9TWF0aC5hY29zKFpvKG9bMF0uZG90KG9bdF0pLC0xLDEpKTtwLz10LGlbMF0uZG90KHMuY3Jvc3NWZWN0b3JzKG9bMF0sb1t0XSkpPjAmJihwPS1wKTtmb3IobGV0IGQ9MTtkPD10O2QrKylvW2RdLmFwcGx5TWF0cml4NChsLm1ha2VSb3RhdGlvbkF4aXMoaVtkXSxwKmQpKSxhW2RdLmNyb3NzVmVjdG9ycyhpW2RdLG9bZF0pfXJldHVybnt0YW5nZW50czppLG5vcm1hbHM6byxiaW5vcm1hbHM6YX19Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IoKS5jb3B5KHRoaXMpfWNvcHkodCl7cmV0dXJuIHRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zPXQuYXJjTGVuZ3RoRGl2aXNpb25zLHRoaXN9dG9KU09OKCl7bGV0IHQ9e21ldGFkYXRhOnt2ZXJzaW9uOjQuNSx0eXBlOiJDdXJ2ZSIsZ2VuZXJhdG9yOiJDdXJ2ZS50b0pTT04ifX07cmV0dXJuIHQuYXJjTGVuZ3RoRGl2aXNpb25zPXRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zLHQudHlwZT10aGlzLnR5cGUsdH1mcm9tSlNPTih0KXtyZXR1cm4gdGhpcy5hcmNMZW5ndGhEaXZpc2lvbnM9dC5hcmNMZW5ndGhEaXZpc2lvbnMsdGhpc319LFUxPWNsYXNzIGV4dGVuZHMgcHN7Y29uc3RydWN0b3IodD0wLHI9MCxuPTEsaT0xLG89MCxhPU1hdGguUEkqMixzPSExLGw9MCl7c3VwZXIoKSx0aGlzLnR5cGU9IkVsbGlwc2VDdXJ2ZSIsdGhpcy5hWD10LHRoaXMuYVk9cix0aGlzLnhSYWRpdXM9bix0aGlzLnlSYWRpdXM9aSx0aGlzLmFTdGFydEFuZ2xlPW8sdGhpcy5hRW5kQW5nbGU9YSx0aGlzLmFDbG9ja3dpc2U9cyx0aGlzLmFSb3RhdGlvbj1sfWdldFBvaW50KHQscil7bGV0IG49cnx8bmV3IEx0LGk9TWF0aC5QSSoyLG89dGhpcy5hRW5kQW5nbGUtdGhpcy5hU3RhcnRBbmdsZSxhPU1hdGguYWJzKG8pPE51bWJlci5FUFNJTE9OO2Zvcig7bzwwOylvKz1pO2Zvcig7bz5pOylvLT1pO288TnVtYmVyLkVQU0lMT04mJihhP289MDpvPWkpLHRoaXMuYUNsb2Nrd2lzZT09PSEwJiYhYSYmKG89PT1pP289LWk6bz1vLWkpO2xldCBzPXRoaXMuYVN0YXJ0QW5nbGUrdCpvLGw9dGhpcy5hWCt0aGlzLnhSYWRpdXMqTWF0aC5jb3MocyksYz10aGlzLmFZK3RoaXMueVJhZGl1cypNYXRoLnNpbihzKTtpZih0aGlzLmFSb3RhdGlvbiE9PTApe2xldCB1PU1hdGguY29zKHRoaXMuYVJvdGF0aW9uKSxoPU1hdGguc2luKHRoaXMuYVJvdGF0aW9uKSxmPWwtdGhpcy5hWCxwPWMtdGhpcy5hWTtsPWYqdS1wKmgrdGhpcy5hWCxjPWYqaCtwKnUrdGhpcy5hWX1yZXR1cm4gbi5zZXQobCxjKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuYVg9dC5hWCx0aGlzLmFZPXQuYVksdGhpcy54UmFkaXVzPXQueFJhZGl1cyx0aGlzLnlSYWRpdXM9dC55UmFkaXVzLHRoaXMuYVN0YXJ0QW5nbGU9dC5hU3RhcnRBbmdsZSx0aGlzLmFFbmRBbmdsZT10LmFFbmRBbmdsZSx0aGlzLmFDbG9ja3dpc2U9dC5hQ2xvY2t3aXNlLHRoaXMuYVJvdGF0aW9uPXQuYVJvdGF0aW9uLHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQuYVg9dGhpcy5hWCx0LmFZPXRoaXMuYVksdC54UmFkaXVzPXRoaXMueFJhZGl1cyx0LnlSYWRpdXM9dGhpcy55UmFkaXVzLHQuYVN0YXJ0QW5nbGU9dGhpcy5hU3RhcnRBbmdsZSx0LmFFbmRBbmdsZT10aGlzLmFFbmRBbmdsZSx0LmFDbG9ja3dpc2U9dGhpcy5hQ2xvY2t3aXNlLHQuYVJvdGF0aW9uPXRoaXMuYVJvdGF0aW9uLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMuYVg9dC5hWCx0aGlzLmFZPXQuYVksdGhpcy54UmFkaXVzPXQueFJhZGl1cyx0aGlzLnlSYWRpdXM9dC55UmFkaXVzLHRoaXMuYVN0YXJ0QW5nbGU9dC5hU3RhcnRBbmdsZSx0aGlzLmFFbmRBbmdsZT10LmFFbmRBbmdsZSx0aGlzLmFDbG9ja3dpc2U9dC5hQ2xvY2t3aXNlLHRoaXMuYVJvdGF0aW9uPXQuYVJvdGF0aW9uLHRoaXN9fTtVMS5wcm90b3R5cGUuaXNFbGxpcHNlQ3VydmU9ITA7dmFyIGw2PWNsYXNzIGV4dGVuZHMgVTF7Y29uc3RydWN0b3IodCxyLG4saSxvLGEpe3N1cGVyKHQscixuLG4saSxvLGEpLHRoaXMudHlwZT0iQXJjQ3VydmUifX07bDYucHJvdG90eXBlLmlzQXJjQ3VydmU9ITA7ZnVuY3Rpb24gRGh0KCl7bGV0IGU9MCx0PTAscj0wLG49MDtmdW5jdGlvbiBpKG8sYSxzLGwpe2U9byx0PXMscj0tMypvKzMqYS0yKnMtbCxuPTIqby0yKmErcytsfXJldHVybntpbml0Q2F0bXVsbFJvbTpmdW5jdGlvbihvLGEscyxsLGMpe2koYSxzLGMqKHMtbyksYyoobC1hKSl9LGluaXROb251bmlmb3JtQ2F0bXVsbFJvbTpmdW5jdGlvbihvLGEscyxsLGMsdSxoKXtsZXQgZj0oYS1vKS9jLShzLW8pLyhjK3UpKyhzLWEpL3UscD0ocy1hKS91LShsLWEpLyh1K2gpKyhsLXMpL2g7Zio9dSxwKj11LGkoYSxzLGYscCl9LGNhbGM6ZnVuY3Rpb24obyl7bGV0IGE9bypvLHM9YSpvO3JldHVybiBlK3QqbytyKmErbipzfX19dmFyIFVWPW5ldyBqLF91dD1uZXcgRGh0LHl1dD1uZXcgRGh0LHZ1dD1uZXcgRGh0LGM2PWNsYXNzIGV4dGVuZHMgcHN7Y29uc3RydWN0b3IodD1bXSxyPSExLG49ImNlbnRyaXBldGFsIixpPS41KXtzdXBlcigpLHRoaXMudHlwZT0iQ2F0bXVsbFJvbUN1cnZlMyIsdGhpcy5wb2ludHM9dCx0aGlzLmNsb3NlZD1yLHRoaXMuY3VydmVUeXBlPW4sdGhpcy50ZW5zaW9uPWl9Z2V0UG9pbnQodCxyPW5ldyBqKXtsZXQgbj1yLGk9dGhpcy5wb2ludHMsbz1pLmxlbmd0aCxhPShvLSh0aGlzLmNsb3NlZD8wOjEpKSp0LHM9TWF0aC5mbG9vcihhKSxsPWEtczt0aGlzLmNsb3NlZD9zKz1zPjA/MDooTWF0aC5mbG9vcihNYXRoLmFicyhzKS9vKSsxKSpvOmw9PT0wJiZzPT09by0xJiYocz1vLTIsbD0xKTtsZXQgYyx1O3RoaXMuY2xvc2VkfHxzPjA/Yz1pWyhzLTEpJW9dOihVVi5zdWJWZWN0b3JzKGlbMF0saVsxXSkuYWRkKGlbMF0pLGM9VVYpO2xldCBoPWlbcyVvXSxmPWlbKHMrMSklb107aWYodGhpcy5jbG9zZWR8fHMrMjxvP3U9aVsocysyKSVvXTooVVYuc3ViVmVjdG9ycyhpW28tMV0saVtvLTJdKS5hZGQoaVtvLTFdKSx1PVVWKSx0aGlzLmN1cnZlVHlwZT09PSJjZW50cmlwZXRhbCJ8fHRoaXMuY3VydmVUeXBlPT09ImNob3JkYWwiKXtsZXQgcD10aGlzLmN1cnZlVHlwZT09PSJjaG9yZGFsIj8uNTouMjUsZD1NYXRoLnBvdyhjLmRpc3RhbmNlVG9TcXVhcmVkKGgpLHApLGc9TWF0aC5wb3coaC5kaXN0YW5jZVRvU3F1YXJlZChmKSxwKSxfPU1hdGgucG93KGYuZGlzdGFuY2VUb1NxdWFyZWQodSkscCk7ZzwxZS00JiYoZz0xKSxkPDFlLTQmJihkPWcpLF88MWUtNCYmKF89ZyksX3V0LmluaXROb251bmlmb3JtQ2F0bXVsbFJvbShjLngsaC54LGYueCx1LngsZCxnLF8pLHl1dC5pbml0Tm9udW5pZm9ybUNhdG11bGxSb20oYy55LGgueSxmLnksdS55LGQsZyxfKSx2dXQuaW5pdE5vbnVuaWZvcm1DYXRtdWxsUm9tKGMueixoLnosZi56LHUueixkLGcsXyl9ZWxzZSB0aGlzLmN1cnZlVHlwZT09PSJjYXRtdWxscm9tIiYmKF91dC5pbml0Q2F0bXVsbFJvbShjLngsaC54LGYueCx1LngsdGhpcy50ZW5zaW9uKSx5dXQuaW5pdENhdG11bGxSb20oYy55LGgueSxmLnksdS55LHRoaXMudGVuc2lvbiksdnV0LmluaXRDYXRtdWxsUm9tKGMueixoLnosZi56LHUueix0aGlzLnRlbnNpb24pKTtyZXR1cm4gbi5zZXQoX3V0LmNhbGMobCkseXV0LmNhbGMobCksdnV0LmNhbGMobCkpLG59Y29weSh0KXtzdXBlci5jb3B5KHQpLHRoaXMucG9pbnRzPVtdO2ZvcihsZXQgcj0wLG49dC5wb2ludHMubGVuZ3RoO3I8bjtyKyspe2xldCBpPXQucG9pbnRzW3JdO3RoaXMucG9pbnRzLnB1c2goaS5jbG9uZSgpKX1yZXR1cm4gdGhpcy5jbG9zZWQ9dC5jbG9zZWQsdGhpcy5jdXJ2ZVR5cGU9dC5jdXJ2ZVR5cGUsdGhpcy50ZW5zaW9uPXQudGVuc2lvbix0aGlzfXRvSlNPTigpe2xldCB0PXN1cGVyLnRvSlNPTigpO3QucG9pbnRzPVtdO2ZvcihsZXQgcj0wLG49dGhpcy5wb2ludHMubGVuZ3RoO3I8bjtyKyspe2xldCBpPXRoaXMucG9pbnRzW3JdO3QucG9pbnRzLnB1c2goaS50b0FycmF5KCkpfXJldHVybiB0LmNsb3NlZD10aGlzLmNsb3NlZCx0LmN1cnZlVHlwZT10aGlzLmN1cnZlVHlwZSx0LnRlbnNpb249dGhpcy50ZW5zaW9uLHR9ZnJvbUpTT04odCl7c3VwZXIuZnJvbUpTT04odCksdGhpcy5wb2ludHM9W107Zm9yKGxldCByPTAsbj10LnBvaW50cy5sZW5ndGg7cjxuO3IrKyl7bGV0IGk9dC5wb2ludHNbcl07dGhpcy5wb2ludHMucHVzaChuZXcgaigpLmZyb21BcnJheShpKSl9cmV0dXJuIHRoaXMuY2xvc2VkPXQuY2xvc2VkLHRoaXMuY3VydmVUeXBlPXQuY3VydmVUeXBlLHRoaXMudGVuc2lvbj10LnRlbnNpb24sdGhpc319O2M2LnByb3RvdHlwZS5pc0NhdG11bGxSb21DdXJ2ZTM9ITA7ZnVuY3Rpb24gZGhlKGUsdCxyLG4saSl7bGV0IG89KG4tdCkqLjUsYT0oaS1yKSouNSxzPWUqZSxsPWUqcztyZXR1cm4oMipyLTIqbitvK2EpKmwrKC0zKnIrMypuLTIqby1hKSpzK28qZStyfWZ1bmN0aW9uIHpncihlLHQpe2xldCByPTEtZTtyZXR1cm4gcipyKnR9ZnVuY3Rpb24gRmdyKGUsdCl7cmV0dXJuIDIqKDEtZSkqZSp0fWZ1bmN0aW9uIEJncihlLHQpe3JldHVybiBlKmUqdH1mdW5jdGlvbiBHUChlLHQscixuKXtyZXR1cm4gemdyKGUsdCkrRmdyKGUscikrQmdyKGUsbil9ZnVuY3Rpb24gSGdyKGUsdCl7bGV0IHI9MS1lO3JldHVybiByKnIqcip0fWZ1bmN0aW9uIFZncihlLHQpe2xldCByPTEtZTtyZXR1cm4gMypyKnIqZSp0fWZ1bmN0aW9uIFVncihlLHQpe3JldHVybiAzKigxLWUpKmUqZSp0fWZ1bmN0aW9uIHFncihlLHQpe3JldHVybiBlKmUqZSp0fWZ1bmN0aW9uIFdQKGUsdCxyLG4saSl7cmV0dXJuIEhncihlLHQpK1ZncihlLHIpK1VncihlLG4pK3FncihlLGkpfXZhciBjTT1jbGFzcyBleHRlbmRzIHBze2NvbnN0cnVjdG9yKHQ9bmV3IEx0LHI9bmV3IEx0LG49bmV3IEx0LGk9bmV3IEx0KXtzdXBlcigpLHRoaXMudHlwZT0iQ3ViaWNCZXppZXJDdXJ2ZSIsdGhpcy52MD10LHRoaXMudjE9cix0aGlzLnYyPW4sdGhpcy52Mz1pfWdldFBvaW50KHQscj1uZXcgTHQpe2xldCBuPXIsaT10aGlzLnYwLG89dGhpcy52MSxhPXRoaXMudjIscz10aGlzLnYzO3JldHVybiBuLnNldChXUCh0LGkueCxvLngsYS54LHMueCksV1AodCxpLnksby55LGEueSxzLnkpKSxufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MC5jb3B5KHQudjApLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpcy52My5jb3B5KHQudjMpLHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQudjA9dGhpcy52MC50b0FycmF5KCksdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHQudjM9dGhpcy52My50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy52MC5mcm9tQXJyYXkodC52MCksdGhpcy52MS5mcm9tQXJyYXkodC52MSksdGhpcy52Mi5mcm9tQXJyYXkodC52MiksdGhpcy52My5mcm9tQXJyYXkodC52MyksdGhpc319O2NNLnByb3RvdHlwZS5pc0N1YmljQmV6aWVyQ3VydmU9ITA7dmFyIHU2PWNsYXNzIGV4dGVuZHMgcHN7Y29uc3RydWN0b3IodD1uZXcgaixyPW5ldyBqLG49bmV3IGosaT1uZXcgail7c3VwZXIoKSx0aGlzLnR5cGU9IkN1YmljQmV6aWVyQ3VydmUzIix0aGlzLnYwPXQsdGhpcy52MT1yLHRoaXMudjI9bix0aGlzLnYzPWl9Z2V0UG9pbnQodCxyPW5ldyBqKXtsZXQgbj1yLGk9dGhpcy52MCxvPXRoaXMudjEsYT10aGlzLnYyLHM9dGhpcy52MztyZXR1cm4gbi5zZXQoV1AodCxpLngsby54LGEueCxzLngpLFdQKHQsaS55LG8ueSxhLnkscy55KSxXUCh0LGkueixvLnosYS56LHMueikpLG59Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYwLmNvcHkodC52MCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzLnYzLmNvcHkodC52MyksdGhpc310b0pTT04oKXtsZXQgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MD10aGlzLnYwLnRvQXJyYXkoKSx0LnYxPXRoaXMudjEudG9BcnJheSgpLHQudjI9dGhpcy52Mi50b0FycmF5KCksdC52Mz10aGlzLnYzLnRvQXJyYXkoKSx0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLnYwLmZyb21BcnJheSh0LnYwKSx0aGlzLnYxLmZyb21BcnJheSh0LnYxKSx0aGlzLnYyLmZyb21BcnJheSh0LnYyKSx0aGlzLnYzLmZyb21BcnJheSh0LnYzKSx0aGlzfX07dTYucHJvdG90eXBlLmlzQ3ViaWNCZXppZXJDdXJ2ZTM9ITA7dmFyIHExPWNsYXNzIGV4dGVuZHMgcHN7Y29uc3RydWN0b3IodD1uZXcgTHQscj1uZXcgTHQpe3N1cGVyKCksdGhpcy50eXBlPSJMaW5lQ3VydmUiLHRoaXMudjE9dCx0aGlzLnYyPXJ9Z2V0UG9pbnQodCxyPW5ldyBMdCl7bGV0IG49cjtyZXR1cm4gdD09PTE/bi5jb3B5KHRoaXMudjIpOihuLmNvcHkodGhpcy52Mikuc3ViKHRoaXMudjEpLG4ubXVsdGlwbHlTY2FsYXIodCkuYWRkKHRoaXMudjEpKSxufWdldFBvaW50QXQodCxyKXtyZXR1cm4gdGhpcy5nZXRQb2ludCh0LHIpfWdldFRhbmdlbnQodCxyKXtsZXQgbj1yfHxuZXcgTHQ7cmV0dXJuIG4uY29weSh0aGlzLnYyKS5zdWIodGhpcy52MSkubm9ybWFsaXplKCksbn1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpc310b0pTT04oKXtsZXQgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fTtxMS5wcm90b3R5cGUuaXNMaW5lQ3VydmU9ITA7dmFyIGJVPWNsYXNzIGV4dGVuZHMgcHN7Y29uc3RydWN0b3IodD1uZXcgaixyPW5ldyBqKXtzdXBlcigpLHRoaXMudHlwZT0iTGluZUN1cnZlMyIsdGhpcy5pc0xpbmVDdXJ2ZTM9ITAsdGhpcy52MT10LHRoaXMudjI9cn1nZXRQb2ludCh0LHI9bmV3IGope2xldCBuPXI7cmV0dXJuIHQ9PT0xP24uY29weSh0aGlzLnYyKToobi5jb3B5KHRoaXMudjIpLnN1Yih0aGlzLnYxKSxuLm11bHRpcGx5U2NhbGFyKHQpLmFkZCh0aGlzLnYxKSksbn1nZXRQb2ludEF0KHQscil7cmV0dXJuIHRoaXMuZ2V0UG9pbnQodCxyKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpc310b0pTT04oKXtsZXQgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fSx1TT1jbGFzcyBleHRlbmRzIHBze2NvbnN0cnVjdG9yKHQ9bmV3IEx0LHI9bmV3IEx0LG49bmV3IEx0KXtzdXBlcigpLHRoaXMudHlwZT0iUXVhZHJhdGljQmV6aWVyQ3VydmUiLHRoaXMudjA9dCx0aGlzLnYxPXIsdGhpcy52Mj1ufWdldFBvaW50KHQscj1uZXcgTHQpe2xldCBuPXIsaT10aGlzLnYwLG89dGhpcy52MSxhPXRoaXMudjI7cmV0dXJuIG4uc2V0KEdQKHQsaS54LG8ueCxhLngpLEdQKHQsaS55LG8ueSxhLnkpKSxufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MC5jb3B5KHQudjApLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpc310b0pTT04oKXtsZXQgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MD10aGlzLnYwLnRvQXJyYXkoKSx0LnYxPXRoaXMudjEudG9BcnJheSgpLHQudjI9dGhpcy52Mi50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy52MC5mcm9tQXJyYXkodC52MCksdGhpcy52MS5mcm9tQXJyYXkodC52MSksdGhpcy52Mi5mcm9tQXJyYXkodC52MiksdGhpc319O3VNLnByb3RvdHlwZS5pc1F1YWRyYXRpY0JlemllckN1cnZlPSEwO3ZhciBoTT1jbGFzcyBleHRlbmRzIHBze2NvbnN0cnVjdG9yKHQ9bmV3IGoscj1uZXcgaixuPW5ldyBqKXtzdXBlcigpLHRoaXMudHlwZT0iUXVhZHJhdGljQmV6aWVyQ3VydmUzIix0aGlzLnYwPXQsdGhpcy52MT1yLHRoaXMudjI9bn1nZXRQb2ludCh0LHI9bmV3IGope2xldCBuPXIsaT10aGlzLnYwLG89dGhpcy52MSxhPXRoaXMudjI7cmV0dXJuIG4uc2V0KEdQKHQsaS54LG8ueCxhLngpLEdQKHQsaS55LG8ueSxhLnkpLEdQKHQsaS56LG8ueixhLnopKSxufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MC5jb3B5KHQudjApLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpc310b0pTT04oKXtsZXQgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MD10aGlzLnYwLnRvQXJyYXkoKSx0LnYxPXRoaXMudjEudG9BcnJheSgpLHQudjI9dGhpcy52Mi50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy52MC5mcm9tQXJyYXkodC52MCksdGhpcy52MS5mcm9tQXJyYXkodC52MSksdGhpcy52Mi5mcm9tQXJyYXkodC52MiksdGhpc319O2hNLnByb3RvdHlwZS5pc1F1YWRyYXRpY0JlemllckN1cnZlMz0hMDt2YXIgZk09Y2xhc3MgZXh0ZW5kcyBwc3tjb25zdHJ1Y3Rvcih0PVtdKXtzdXBlcigpLHRoaXMudHlwZT0iU3BsaW5lQ3VydmUiLHRoaXMucG9pbnRzPXR9Z2V0UG9pbnQodCxyPW5ldyBMdCl7bGV0IG49cixpPXRoaXMucG9pbnRzLG89KGkubGVuZ3RoLTEpKnQsYT1NYXRoLmZsb29yKG8pLHM9by1hLGw9aVthPT09MD9hOmEtMV0sYz1pW2FdLHU9aVthPmkubGVuZ3RoLTI/aS5sZW5ndGgtMTphKzFdLGg9aVthPmkubGVuZ3RoLTM/aS5sZW5ndGgtMTphKzJdO3JldHVybiBuLnNldChkaGUocyxsLngsYy54LHUueCxoLngpLGRoZShzLGwueSxjLnksdS55LGgueSkpLG59Y29weSh0KXtzdXBlci5jb3B5KHQpLHRoaXMucG9pbnRzPVtdO2ZvcihsZXQgcj0wLG49dC5wb2ludHMubGVuZ3RoO3I8bjtyKyspe2xldCBpPXQucG9pbnRzW3JdO3RoaXMucG9pbnRzLnB1c2goaS5jbG9uZSgpKX1yZXR1cm4gdGhpc310b0pTT04oKXtsZXQgdD1zdXBlci50b0pTT04oKTt0LnBvaW50cz1bXTtmb3IobGV0IHI9MCxuPXRoaXMucG9pbnRzLmxlbmd0aDtyPG47cisrKXtsZXQgaT10aGlzLnBvaW50c1tyXTt0LnBvaW50cy5wdXNoKGkudG9BcnJheSgpKX1yZXR1cm4gdH1mcm9tSlNPTih0KXtzdXBlci5mcm9tSlNPTih0KSx0aGlzLnBvaW50cz1bXTtmb3IobGV0IHI9MCxuPXQucG9pbnRzLmxlbmd0aDtyPG47cisrKXtsZXQgaT10LnBvaW50c1tyXTt0aGlzLnBvaW50cy5wdXNoKG5ldyBMdCgpLmZyb21BcnJheShpKSl9cmV0dXJuIHRoaXN9fTtmTS5wcm90b3R5cGUuaXNTcGxpbmVDdXJ2ZT0hMDt2YXIgT2h0PU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLEFyY0N1cnZlOmw2LENhdG11bGxSb21DdXJ2ZTM6YzYsQ3ViaWNCZXppZXJDdXJ2ZTpjTSxDdWJpY0JlemllckN1cnZlMzp1NixFbGxpcHNlQ3VydmU6VTEsTGluZUN1cnZlOnExLExpbmVDdXJ2ZTM6YlUsUXVhZHJhdGljQmV6aWVyQ3VydmU6dU0sUXVhZHJhdGljQmV6aWVyQ3VydmUzOmhNLFNwbGluZUN1cnZlOmZNfSksd1U9Y2xhc3MgZXh0ZW5kcyBwc3tjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJDdXJ2ZVBhdGgiLHRoaXMuY3VydmVzPVtdLHRoaXMuYXV0b0Nsb3NlPSExfWFkZCh0KXt0aGlzLmN1cnZlcy5wdXNoKHQpfWNsb3NlUGF0aCgpe2xldCB0PXRoaXMuY3VydmVzWzBdLmdldFBvaW50KDApLHI9dGhpcy5jdXJ2ZXNbdGhpcy5jdXJ2ZXMubGVuZ3RoLTFdLmdldFBvaW50KDEpO3QuZXF1YWxzKHIpfHx0aGlzLmN1cnZlcy5wdXNoKG5ldyBxMShyLHQpKX1nZXRQb2ludCh0LHIpe2xldCBuPXQqdGhpcy5nZXRMZW5ndGgoKSxpPXRoaXMuZ2V0Q3VydmVMZW5ndGhzKCksbz0wO2Zvcig7bzxpLmxlbmd0aDspe2lmKGlbb10+PW4pe2xldCBhPWlbb10tbixzPXRoaXMuY3VydmVzW29dLGw9cy5nZXRMZW5ndGgoKSxjPWw9PT0wPzA6MS1hL2w7cmV0dXJuIHMuZ2V0UG9pbnRBdChjLHIpfW8rK31yZXR1cm4gbnVsbH1nZXRMZW5ndGgoKXtsZXQgdD10aGlzLmdldEN1cnZlTGVuZ3RocygpO3JldHVybiB0W3QubGVuZ3RoLTFdfXVwZGF0ZUFyY0xlbmd0aHMoKXt0aGlzLm5lZWRzVXBkYXRlPSEwLHRoaXMuY2FjaGVMZW5ndGhzPW51bGwsdGhpcy5nZXRDdXJ2ZUxlbmd0aHMoKX1nZXRDdXJ2ZUxlbmd0aHMoKXtpZih0aGlzLmNhY2hlTGVuZ3RocyYmdGhpcy5jYWNoZUxlbmd0aHMubGVuZ3RoPT09dGhpcy5jdXJ2ZXMubGVuZ3RoKXJldHVybiB0aGlzLmNhY2hlTGVuZ3RocztsZXQgdD1bXSxyPTA7Zm9yKGxldCBuPTAsaT10aGlzLmN1cnZlcy5sZW5ndGg7bjxpO24rKylyKz10aGlzLmN1cnZlc1tuXS5nZXRMZW5ndGgoKSx0LnB1c2gocik7cmV0dXJuIHRoaXMuY2FjaGVMZW5ndGhzPXQsdH1nZXRTcGFjZWRQb2ludHModD00MCl7bGV0IHI9W107Zm9yKGxldCBuPTA7bjw9dDtuKyspci5wdXNoKHRoaXMuZ2V0UG9pbnQobi90KSk7cmV0dXJuIHRoaXMuYXV0b0Nsb3NlJiZyLnB1c2goclswXSkscn1nZXRQb2ludHModD0xMil7bGV0IHI9W10sbjtmb3IobGV0IGk9MCxvPXRoaXMuY3VydmVzO2k8by5sZW5ndGg7aSsrKXtsZXQgYT1vW2ldLHM9YSYmYS5pc0VsbGlwc2VDdXJ2ZT90KjI6YSYmKGEuaXNMaW5lQ3VydmV8fGEuaXNMaW5lQ3VydmUzKT8xOmEmJmEuaXNTcGxpbmVDdXJ2ZT90KmEucG9pbnRzLmxlbmd0aDp0LGw9YS5nZXRQb2ludHMocyk7Zm9yKGxldCBjPTA7YzxsLmxlbmd0aDtjKyspe2xldCB1PWxbY107biYmbi5lcXVhbHModSl8fChyLnB1c2godSksbj11KX19cmV0dXJuIHRoaXMuYXV0b0Nsb3NlJiZyLmxlbmd0aD4xJiYhcltyLmxlbmd0aC0xXS5lcXVhbHMoclswXSkmJnIucHVzaChyWzBdKSxyfWNvcHkodCl7c3VwZXIuY29weSh0KSx0aGlzLmN1cnZlcz1bXTtmb3IobGV0IHI9MCxuPXQuY3VydmVzLmxlbmd0aDtyPG47cisrKXtsZXQgaT10LmN1cnZlc1tyXTt0aGlzLmN1cnZlcy5wdXNoKGkuY2xvbmUoKSl9cmV0dXJuIHRoaXMuYXV0b0Nsb3NlPXQuYXV0b0Nsb3NlLHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7dC5hdXRvQ2xvc2U9dGhpcy5hdXRvQ2xvc2UsdC5jdXJ2ZXM9W107Zm9yKGxldCByPTAsbj10aGlzLmN1cnZlcy5sZW5ndGg7cjxuO3IrKyl7bGV0IGk9dGhpcy5jdXJ2ZXNbcl07dC5jdXJ2ZXMucHVzaChpLnRvSlNPTigpKX1yZXR1cm4gdH1mcm9tSlNPTih0KXtzdXBlci5mcm9tSlNPTih0KSx0aGlzLmF1dG9DbG9zZT10LmF1dG9DbG9zZSx0aGlzLmN1cnZlcz1bXTtmb3IobGV0IHI9MCxuPXQuY3VydmVzLmxlbmd0aDtyPG47cisrKXtsZXQgaT10LmN1cnZlc1tyXTt0aGlzLmN1cnZlcy5wdXNoKG5ldyBPaHRbaS50eXBlXSgpLmZyb21KU09OKGkpKX1yZXR1cm4gdGhpc319LEcxPWNsYXNzIGV4dGVuZHMgd1V7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlBhdGgiLHRoaXMuY3VycmVudFBvaW50PW5ldyBMdCx0JiZ0aGlzLnNldEZyb21Qb2ludHModCl9c2V0RnJvbVBvaW50cyh0KXt0aGlzLm1vdmVUbyh0WzBdLngsdFswXS55KTtmb3IobGV0IHI9MSxuPXQubGVuZ3RoO3I8bjtyKyspdGhpcy5saW5lVG8odFtyXS54LHRbcl0ueSk7cmV0dXJuIHRoaXN9bW92ZVRvKHQscil7cmV0dXJuIHRoaXMuY3VycmVudFBvaW50LnNldCh0LHIpLHRoaXN9bGluZVRvKHQscil7bGV0IG49bmV3IHExKHRoaXMuY3VycmVudFBvaW50LmNsb25lKCksbmV3IEx0KHQscikpO3JldHVybiB0aGlzLmN1cnZlcy5wdXNoKG4pLHRoaXMuY3VycmVudFBvaW50LnNldCh0LHIpLHRoaXN9cXVhZHJhdGljQ3VydmVUbyh0LHIsbixpKXtsZXQgbz1uZXcgdU0odGhpcy5jdXJyZW50UG9pbnQuY2xvbmUoKSxuZXcgTHQodCxyKSxuZXcgTHQobixpKSk7cmV0dXJuIHRoaXMuY3VydmVzLnB1c2gobyksdGhpcy5jdXJyZW50UG9pbnQuc2V0KG4saSksdGhpc31iZXppZXJDdXJ2ZVRvKHQscixuLGksbyxhKXtsZXQgcz1uZXcgY00odGhpcy5jdXJyZW50UG9pbnQuY2xvbmUoKSxuZXcgTHQodCxyKSxuZXcgTHQobixpKSxuZXcgTHQobyxhKSk7cmV0dXJuIHRoaXMuY3VydmVzLnB1c2gocyksdGhpcy5jdXJyZW50UG9pbnQuc2V0KG8sYSksdGhpc31zcGxpbmVUaHJ1KHQpe2xldCByPVt0aGlzLmN1cnJlbnRQb2ludC5jbG9uZSgpXS5jb25jYXQodCksbj1uZXcgZk0ocik7cmV0dXJuIHRoaXMuY3VydmVzLnB1c2gobiksdGhpcy5jdXJyZW50UG9pbnQuY29weSh0W3QubGVuZ3RoLTFdKSx0aGlzfWFyYyh0LHIsbixpLG8sYSl7bGV0IHM9dGhpcy5jdXJyZW50UG9pbnQueCxsPXRoaXMuY3VycmVudFBvaW50Lnk7cmV0dXJuIHRoaXMuYWJzYXJjKHQrcyxyK2wsbixpLG8sYSksdGhpc31hYnNhcmModCxyLG4saSxvLGEpe3JldHVybiB0aGlzLmFic2VsbGlwc2UodCxyLG4sbixpLG8sYSksdGhpc31lbGxpcHNlKHQscixuLGksbyxhLHMsbCl7bGV0IGM9dGhpcy5jdXJyZW50UG9pbnQueCx1PXRoaXMuY3VycmVudFBvaW50Lnk7cmV0dXJuIHRoaXMuYWJzZWxsaXBzZSh0K2Mscit1LG4saSxvLGEscyxsKSx0aGlzfWFic2VsbGlwc2UodCxyLG4saSxvLGEscyxsKXtsZXQgYz1uZXcgVTEodCxyLG4saSxvLGEscyxsKTtpZih0aGlzLmN1cnZlcy5sZW5ndGg+MCl7bGV0IGg9Yy5nZXRQb2ludCgwKTtoLmVxdWFscyh0aGlzLmN1cnJlbnRQb2ludCl8fHRoaXMubGluZVRvKGgueCxoLnkpfXRoaXMuY3VydmVzLnB1c2goYyk7bGV0IHU9Yy5nZXRQb2ludCgxKTtyZXR1cm4gdGhpcy5jdXJyZW50UG9pbnQuY29weSh1KSx0aGlzfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jdXJyZW50UG9pbnQuY29weSh0LmN1cnJlbnRQb2ludCksdGhpc310b0pTT04oKXtsZXQgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC5jdXJyZW50UG9pbnQ9dGhpcy5jdXJyZW50UG9pbnQudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMuY3VycmVudFBvaW50LmZyb21BcnJheSh0LmN1cnJlbnRQb2ludCksdGhpc319LEtjPWNsYXNzIGV4dGVuZHMgRzF7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy51dWlkPURsKCksdGhpcy50eXBlPSJTaGFwZSIsdGhpcy5ob2xlcz1bXX1nZXRQb2ludHNIb2xlcyh0KXtsZXQgcj1bXTtmb3IobGV0IG49MCxpPXRoaXMuaG9sZXMubGVuZ3RoO248aTtuKyspcltuXT10aGlzLmhvbGVzW25dLmdldFBvaW50cyh0KTtyZXR1cm4gcn1leHRyYWN0UG9pbnRzKHQpe3JldHVybntzaGFwZTp0aGlzLmdldFBvaW50cyh0KSxob2xlczp0aGlzLmdldFBvaW50c0hvbGVzKHQpfX1jb3B5KHQpe3N1cGVyLmNvcHkodCksdGhpcy5ob2xlcz1bXTtmb3IobGV0IHI9MCxuPXQuaG9sZXMubGVuZ3RoO3I8bjtyKyspe2xldCBpPXQuaG9sZXNbcl07dGhpcy5ob2xlcy5wdXNoKGkuY2xvbmUoKSl9cmV0dXJuIHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7dC51dWlkPXRoaXMudXVpZCx0LmhvbGVzPVtdO2ZvcihsZXQgcj0wLG49dGhpcy5ob2xlcy5sZW5ndGg7cjxuO3IrKyl7bGV0IGk9dGhpcy5ob2xlc1tyXTt0LmhvbGVzLnB1c2goaS50b0pTT04oKSl9cmV0dXJuIHR9ZnJvbUpTT04odCl7c3VwZXIuZnJvbUpTT04odCksdGhpcy51dWlkPXQudXVpZCx0aGlzLmhvbGVzPVtdO2ZvcihsZXQgcj0wLG49dC5ob2xlcy5sZW5ndGg7cjxuO3IrKyl7bGV0IGk9dC5ob2xlc1tyXTt0aGlzLmhvbGVzLnB1c2gobmV3IEcxKCkuZnJvbUpTT04oaSkpfXJldHVybiB0aGlzfX0sR2dyPXt0cmlhbmd1bGF0ZTpmdW5jdGlvbihlLHQscj0yKXtsZXQgbj10JiZ0Lmxlbmd0aCxpPW4/dFswXSpyOmUubGVuZ3RoLG89ZXBlKGUsMCxpLHIsITApLGE9W107aWYoIW98fG8ubmV4dD09PW8ucHJldilyZXR1cm4gYTtsZXQgcyxsLGMsdSxoLGYscDtpZihuJiYobz0kZ3IoZSx0LG8scikpLGUubGVuZ3RoPjgwKnIpe3M9Yz1lWzBdLGw9dT1lWzFdO2ZvcihsZXQgZD1yO2Q8aTtkKz1yKWg9ZVtkXSxmPWVbZCsxXSxoPHMmJihzPWgpLGY8bCYmKGw9ZiksaD5jJiYoYz1oKSxmPnUmJih1PWYpO3A9TWF0aC5tYXgoYy1zLHUtbCkscD1wIT09MD8xL3A6MH1yZXR1cm4gaDYobyxhLHIscyxsLHApLGF9fTtmdW5jdGlvbiBlcGUoZSx0LHIsbixpKXtsZXQgbyxhO2lmKGk9PT1hMHIoZSx0LHIsbik+MClmb3Iobz10O288cjtvKz1uKWE9bWhlKG8sZVtvXSxlW28rMV0sYSk7ZWxzZSBmb3Iobz1yLW47bz49dDtvLT1uKWE9bWhlKG8sZVtvXSxlW28rMV0sYSk7cmV0dXJuIGEmJlpVKGEsYS5uZXh0KSYmKHA2KGEpLGE9YS5uZXh0KSxhfWZ1bmN0aW9uIFcwKGUsdCl7aWYoIWUpcmV0dXJuIGU7dHx8KHQ9ZSk7bGV0IHI9ZSxuO2RvIGlmKG49ITEsIXIuc3RlaW5lciYmKFpVKHIsci5uZXh0KXx8YWkoci5wcmV2LHIsci5uZXh0KT09PTApKXtpZihwNihyKSxyPXQ9ci5wcmV2LHI9PT1yLm5leHQpYnJlYWs7bj0hMH1lbHNlIHI9ci5uZXh0O3doaWxlKG58fHIhPT10KTtyZXR1cm4gdH1mdW5jdGlvbiBoNihlLHQscixuLGksbyxhKXtpZighZSlyZXR1cm47IWEmJm8mJnQwcihlLG4saSxvKTtsZXQgcz1lLGwsYztmb3IoO2UucHJldiE9PWUubmV4dDspe2lmKGw9ZS5wcmV2LGM9ZS5uZXh0LG8/WWdyKGUsbixpLG8pOldncihlKSl7dC5wdXNoKGwuaS9yKSx0LnB1c2goZS5pL3IpLHQucHVzaChjLmkvcikscDYoZSksZT1jLm5leHQscz1jLm5leHQ7Y29udGludWV9aWYoZT1jLGU9PT1zKXthP2E9PT0xPyhlPWpncihXMChlKSx0LHIpLGg2KGUsdCxyLG4saSxvLDIpKTphPT09MiYmWGdyKGUsdCxyLG4saSxvKTpoNihXMChlKSx0LHIsbixpLG8sMSk7YnJlYWt9fX1mdW5jdGlvbiBXZ3IoZSl7bGV0IHQ9ZS5wcmV2LHI9ZSxuPWUubmV4dDtpZihhaSh0LHIsbik+PTApcmV0dXJuITE7bGV0IGk9ZS5uZXh0Lm5leHQ7Zm9yKDtpIT09ZS5wcmV2Oyl7aWYoSDModC54LHQueSxyLngsci55LG4ueCxuLnksaS54LGkueSkmJmFpKGkucHJldixpLGkubmV4dCk+PTApcmV0dXJuITE7aT1pLm5leHR9cmV0dXJuITB9ZnVuY3Rpb24gWWdyKGUsdCxyLG4pe2xldCBpPWUucHJldixvPWUsYT1lLm5leHQ7aWYoYWkoaSxvLGEpPj0wKXJldHVybiExO2xldCBzPWkueDxvLng/aS54PGEueD9pLng6YS54Om8ueDxhLng/by54OmEueCxsPWkueTxvLnk/aS55PGEueT9pLnk6YS55Om8ueTxhLnk/by55OmEueSxjPWkueD5vLng/aS54PmEueD9pLng6YS54Om8ueD5hLng/by54OmEueCx1PWkueT5vLnk/aS55PmEueT9pLnk6YS55Om8ueT5hLnk/by55OmEueSxoPW5odChzLGwsdCxyLG4pLGY9bmh0KGMsdSx0LHIsbikscD1lLnByZXZaLGQ9ZS5uZXh0Wjtmb3IoO3AmJnAuej49aCYmZCYmZC56PD1mOyl7aWYocCE9PWUucHJldiYmcCE9PWUubmV4dCYmSDMoaS54LGkueSxvLngsby55LGEueCxhLnkscC54LHAueSkmJmFpKHAucHJldixwLHAubmV4dCk+PTB8fChwPXAucHJldlosZCE9PWUucHJldiYmZCE9PWUubmV4dCYmSDMoaS54LGkueSxvLngsby55LGEueCxhLnksZC54LGQueSkmJmFpKGQucHJldixkLGQubmV4dCk+PTApKXJldHVybiExO2Q9ZC5uZXh0Wn1mb3IoO3AmJnAuej49aDspe2lmKHAhPT1lLnByZXYmJnAhPT1lLm5leHQmJkgzKGkueCxpLnksby54LG8ueSxhLngsYS55LHAueCxwLnkpJiZhaShwLnByZXYscCxwLm5leHQpPj0wKXJldHVybiExO3A9cC5wcmV2Wn1mb3IoO2QmJmQuejw9Zjspe2lmKGQhPT1lLnByZXYmJmQhPT1lLm5leHQmJkgzKGkueCxpLnksby54LG8ueSxhLngsYS55LGQueCxkLnkpJiZhaShkLnByZXYsZCxkLm5leHQpPj0wKXJldHVybiExO2Q9ZC5uZXh0Wn1yZXR1cm4hMH1mdW5jdGlvbiBqZ3IoZSx0LHIpe2xldCBuPWU7ZG97bGV0IGk9bi5wcmV2LG89bi5uZXh0Lm5leHQ7IVpVKGksbykmJnJwZShpLG4sbi5uZXh0LG8pJiZmNihpLG8pJiZmNihvLGkpJiYodC5wdXNoKGkuaS9yKSx0LnB1c2gobi5pL3IpLHQucHVzaChvLmkvcikscDYobikscDYobi5uZXh0KSxuPWU9byksbj1uLm5leHR9d2hpbGUobiE9PWUpO3JldHVybiBXMChuKX1mdW5jdGlvbiBYZ3IoZSx0LHIsbixpLG8pe2xldCBhPWU7ZG97bGV0IHM9YS5uZXh0Lm5leHQ7Zm9yKDtzIT09YS5wcmV2Oyl7aWYoYS5pIT09cy5pJiZuMHIoYSxzKSl7bGV0IGw9bnBlKGEscyk7YT1XMChhLGEubmV4dCksbD1XMChsLGwubmV4dCksaDYoYSx0LHIsbixpLG8pLGg2KGwsdCxyLG4saSxvKTtyZXR1cm59cz1zLm5leHR9YT1hLm5leHR9d2hpbGUoYSE9PWUpfWZ1bmN0aW9uICRncihlLHQscixuKXtsZXQgaT1bXSxvLGEscyxsLGM7Zm9yKG89MCxhPXQubGVuZ3RoO288YTtvKyspcz10W29dKm4sbD1vPGEtMT90W28rMV0qbjplLmxlbmd0aCxjPWVwZShlLHMsbCxuLCExKSxjPT09Yy5uZXh0JiYoYy5zdGVpbmVyPSEwKSxpLnB1c2gocjByKGMpKTtmb3IoaS5zb3J0KEtnciksbz0wO288aS5sZW5ndGg7bysrKVpncihpW29dLHIpLHI9VzAocixyLm5leHQpO3JldHVybiByfWZ1bmN0aW9uIEtncihlLHQpe3JldHVybiBlLngtdC54fWZ1bmN0aW9uIFpncihlLHQpe2lmKHQ9SmdyKGUsdCksdCl7bGV0IHI9bnBlKHQsZSk7VzAodCx0Lm5leHQpLFcwKHIsci5uZXh0KX19ZnVuY3Rpb24gSmdyKGUsdCl7bGV0IHI9dCxuPWUueCxpPWUueSxvPS0xLzAsYTtkb3tpZihpPD1yLnkmJmk+PXIubmV4dC55JiZyLm5leHQueSE9PXIueSl7bGV0IGY9ci54KyhpLXIueSkqKHIubmV4dC54LXIueCkvKHIubmV4dC55LXIueSk7aWYoZjw9biYmZj5vKXtpZihvPWYsZj09PW4pe2lmKGk9PT1yLnkpcmV0dXJuIHI7aWYoaT09PXIubmV4dC55KXJldHVybiByLm5leHR9YT1yLng8ci5uZXh0Lng/cjpyLm5leHR9fXI9ci5uZXh0fXdoaWxlKHIhPT10KTtpZighYSlyZXR1cm4gbnVsbDtpZihuPT09bylyZXR1cm4gYTtsZXQgcz1hLGw9YS54LGM9YS55LHU9MS8wLGg7cj1hO2RvIG4+PXIueCYmci54Pj1sJiZuIT09ci54JiZIMyhpPGM/bjpvLGksbCxjLGk8Yz9vOm4saSxyLngsci55KSYmKGg9TWF0aC5hYnMoaS1yLnkpLyhuLXIueCksZjYocixlKSYmKGg8dXx8aD09PXUmJihyLng+YS54fHxyLng9PT1hLngmJlFncihhLHIpKSkmJihhPXIsdT1oKSkscj1yLm5leHQ7d2hpbGUociE9PXMpO3JldHVybiBhfWZ1bmN0aW9uIFFncihlLHQpe3JldHVybiBhaShlLnByZXYsZSx0LnByZXYpPDAmJmFpKHQubmV4dCxlLGUubmV4dCk8MH1mdW5jdGlvbiB0MHIoZSx0LHIsbil7bGV0IGk9ZTtkbyBpLno9PT1udWxsJiYoaS56PW5odChpLngsaS55LHQscixuKSksaS5wcmV2Wj1pLnByZXYsaS5uZXh0Wj1pLm5leHQsaT1pLm5leHQ7d2hpbGUoaSE9PWUpO2kucHJldloubmV4dFo9bnVsbCxpLnByZXZaPW51bGwsZTByKGkpfWZ1bmN0aW9uIGUwcihlKXtsZXQgdCxyLG4saSxvLGEscyxsLGM9MTtkb3tmb3Iocj1lLGU9bnVsbCxvPW51bGwsYT0wO3I7KXtmb3IoYSsrLG49cixzPTAsdD0wO3Q8YyYmKHMrKyxuPW4ubmV4dFosISFuKTt0KyspO2ZvcihsPWM7cz4wfHxsPjAmJm47KXMhPT0wJiYobD09PTB8fCFufHxyLno8PW4ueik/KGk9cixyPXIubmV4dFoscy0tKTooaT1uLG49bi5uZXh0WixsLS0pLG8/by5uZXh0Wj1pOmU9aSxpLnByZXZaPW8sbz1pO3I9bn1vLm5leHRaPW51bGwsYyo9Mn13aGlsZShhPjEpO3JldHVybiBlfWZ1bmN0aW9uIG5odChlLHQscixuLGkpe3JldHVybiBlPTMyNzY3KihlLXIpKmksdD0zMjc2NyoodC1uKSppLGU9KGV8ZTw8OCkmMTY3MTE5MzUsZT0oZXxlPDw0KSYyNTI2NDUxMzUsZT0oZXxlPDwyKSY4NTg5OTM0NTksZT0oZXxlPDwxKSYxNDMxNjU1NzY1LHQ9KHR8dDw8OCkmMTY3MTE5MzUsdD0odHx0PDw0KSYyNTI2NDUxMzUsdD0odHx0PDwyKSY4NTg5OTM0NTksdD0odHx0PDwxKSYxNDMxNjU1NzY1LGV8dDw8MX1mdW5jdGlvbiByMHIoZSl7bGV0IHQ9ZSxyPWU7ZG8odC54PHIueHx8dC54PT09ci54JiZ0Lnk8ci55KSYmKHI9dCksdD10Lm5leHQ7d2hpbGUodCE9PWUpO3JldHVybiByfWZ1bmN0aW9uIEgzKGUsdCxyLG4saSxvLGEscyl7cmV0dXJuKGktYSkqKHQtcyktKGUtYSkqKG8tcyk+PTAmJihlLWEpKihuLXMpLShyLWEpKih0LXMpPj0wJiYoci1hKSooby1zKS0oaS1hKSoobi1zKT49MH1mdW5jdGlvbiBuMHIoZSx0KXtyZXR1cm4gZS5uZXh0LmkhPT10LmkmJmUucHJldi5pIT09dC5pJiYhaTByKGUsdCkmJihmNihlLHQpJiZmNih0LGUpJiZvMHIoZSx0KSYmKGFpKGUucHJldixlLHQucHJldil8fGFpKGUsdC5wcmV2LHQpKXx8WlUoZSx0KSYmYWkoZS5wcmV2LGUsZS5uZXh0KT4wJiZhaSh0LnByZXYsdCx0Lm5leHQpPjApfWZ1bmN0aW9uIGFpKGUsdCxyKXtyZXR1cm4odC55LWUueSkqKHIueC10LngpLSh0LngtZS54KSooci55LXQueSl9ZnVuY3Rpb24gWlUoZSx0KXtyZXR1cm4gZS54PT09dC54JiZlLnk9PT10Lnl9ZnVuY3Rpb24gcnBlKGUsdCxyLG4pe2xldCBpPUdWKGFpKGUsdCxyKSksbz1HVihhaShlLHQsbikpLGE9R1YoYWkocixuLGUpKSxzPUdWKGFpKHIsbix0KSk7cmV0dXJuISEoaSE9PW8mJmEhPT1zfHxpPT09MCYmcVYoZSxyLHQpfHxvPT09MCYmcVYoZSxuLHQpfHxhPT09MCYmcVYocixlLG4pfHxzPT09MCYmcVYocix0LG4pKX1mdW5jdGlvbiBxVihlLHQscil7cmV0dXJuIHQueDw9TWF0aC5tYXgoZS54LHIueCkmJnQueD49TWF0aC5taW4oZS54LHIueCkmJnQueTw9TWF0aC5tYXgoZS55LHIueSkmJnQueT49TWF0aC5taW4oZS55LHIueSl9ZnVuY3Rpb24gR1YoZSl7cmV0dXJuIGU+MD8xOmU8MD8tMTowfWZ1bmN0aW9uIGkwcihlLHQpe2xldCByPWU7ZG97aWYoci5pIT09ZS5pJiZyLm5leHQuaSE9PWUuaSYmci5pIT09dC5pJiZyLm5leHQuaSE9PXQuaSYmcnBlKHIsci5uZXh0LGUsdCkpcmV0dXJuITA7cj1yLm5leHR9d2hpbGUociE9PWUpO3JldHVybiExfWZ1bmN0aW9uIGY2KGUsdCl7cmV0dXJuIGFpKGUucHJldixlLGUubmV4dCk8MD9haShlLHQsZS5uZXh0KT49MCYmYWkoZSxlLnByZXYsdCk+PTA6YWkoZSx0LGUucHJldik8MHx8YWkoZSxlLm5leHQsdCk8MH1mdW5jdGlvbiBvMHIoZSx0KXtsZXQgcj1lLG49ITEsaT0oZS54K3QueCkvMixvPShlLnkrdC55KS8yO2RvIHIueT5vIT1yLm5leHQueT5vJiZyLm5leHQueSE9PXIueSYmaTwoci5uZXh0Lngtci54KSooby1yLnkpLyhyLm5leHQueS1yLnkpK3IueCYmKG49IW4pLHI9ci5uZXh0O3doaWxlKHIhPT1lKTtyZXR1cm4gbn1mdW5jdGlvbiBucGUoZSx0KXtsZXQgcj1uZXcgaWh0KGUuaSxlLngsZS55KSxuPW5ldyBpaHQodC5pLHQueCx0LnkpLGk9ZS5uZXh0LG89dC5wcmV2O3JldHVybiBlLm5leHQ9dCx0LnByZXY9ZSxyLm5leHQ9aSxpLnByZXY9cixuLm5leHQ9cixyLnByZXY9bixvLm5leHQ9bixuLnByZXY9byxufWZ1bmN0aW9uIG1oZShlLHQscixuKXtsZXQgaT1uZXcgaWh0KGUsdCxyKTtyZXR1cm4gbj8oaS5uZXh0PW4ubmV4dCxpLnByZXY9bixuLm5leHQucHJldj1pLG4ubmV4dD1pKTooaS5wcmV2PWksaS5uZXh0PWkpLGl9ZnVuY3Rpb24gcDYoZSl7ZS5uZXh0LnByZXY9ZS5wcmV2LGUucHJldi5uZXh0PWUubmV4dCxlLnByZXZaJiYoZS5wcmV2Wi5uZXh0Wj1lLm5leHRaKSxlLm5leHRaJiYoZS5uZXh0Wi5wcmV2Wj1lLnByZXZaKX1mdW5jdGlvbiBpaHQoZSx0LHIpe3RoaXMuaT1lLHRoaXMueD10LHRoaXMueT1yLHRoaXMucHJldj1udWxsLHRoaXMubmV4dD1udWxsLHRoaXMuej1udWxsLHRoaXMucHJldlo9bnVsbCx0aGlzLm5leHRaPW51bGwsdGhpcy5zdGVpbmVyPSExfWZ1bmN0aW9uIGEwcihlLHQscixuKXtsZXQgaT0wO2ZvcihsZXQgbz10LGE9ci1uO288cjtvKz1uKWkrPShlW2FdLWVbb10pKihlW28rMV0rZVthKzFdKSxhPW87cmV0dXJuIGl9dmFyIFpjPWNsYXNze3N0YXRpYyBhcmVhKHQpe2xldCByPXQubGVuZ3RoLG49MDtmb3IobGV0IGk9ci0xLG89MDtvPHI7aT1vKyspbis9dFtpXS54KnRbb10ueS10W29dLngqdFtpXS55O3JldHVybiBuKi41fXN0YXRpYyBpc0Nsb2NrV2lzZSh0KXtyZXR1cm4gWmMuYXJlYSh0KTwwfXN0YXRpYyB0cmlhbmd1bGF0ZVNoYXBlKHQscil7bGV0IG49W10saT1bXSxvPVtdO2doZSh0KSxfaGUobix0KTtsZXQgYT10Lmxlbmd0aDtyLmZvckVhY2goZ2hlKTtmb3IobGV0IGw9MDtsPHIubGVuZ3RoO2wrKylpLnB1c2goYSksYSs9cltsXS5sZW5ndGgsX2hlKG4scltsXSk7bGV0IHM9R2dyLnRyaWFuZ3VsYXRlKG4saSk7Zm9yKGxldCBsPTA7bDxzLmxlbmd0aDtsKz0zKW8ucHVzaChzLnNsaWNlKGwsbCszKSk7cmV0dXJuIG99fTtmdW5jdGlvbiBnaGUoZSl7bGV0IHQ9ZS5sZW5ndGg7dD4yJiZlW3QtMV0uZXF1YWxzKGVbMF0pJiZlLnBvcCgpfWZ1bmN0aW9uIF9oZShlLHQpe2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKWUucHVzaCh0W3JdLngpLGUucHVzaCh0W3JdLnkpfXZhciBoaD1jbGFzcyBleHRlbmRzIFBle2NvbnN0cnVjdG9yKHQ9bmV3IEtjKFtuZXcgTHQoLjUsLjUpLG5ldyBMdCgtLjUsLjUpLG5ldyBMdCgtLjUsLS41KSxuZXcgTHQoLjUsLS41KV0pLHI9e30pe3N1cGVyKCksdGhpcy50eXBlPSJFeHRydWRlR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17c2hhcGVzOnQsb3B0aW9uczpyfSx0PUFycmF5LmlzQXJyYXkodCk/dDpbdF07bGV0IG49dGhpcyxpPVtdLG89W107Zm9yKGxldCBzPTAsbD10Lmxlbmd0aDtzPGw7cysrKXtsZXQgYz10W3NdO2EoYyl9dGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgeGUoaSwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgeGUobywyKSksdGhpcy5jb21wdXRlVmVydGV4Tm9ybWFscygpO2Z1bmN0aW9uIGEocyl7bGV0IGw9W10sYz1yLmN1cnZlU2VnbWVudHMhPT12b2lkIDA/ci5jdXJ2ZVNlZ21lbnRzOjEyLHU9ci5zdGVwcyE9PXZvaWQgMD9yLnN0ZXBzOjEsaD1yLmRlcHRoIT09dm9pZCAwP3IuZGVwdGg6MSxmPXIuYmV2ZWxFbmFibGVkIT09dm9pZCAwP3IuYmV2ZWxFbmFibGVkOiEwLHA9ci5iZXZlbFRoaWNrbmVzcyE9PXZvaWQgMD9yLmJldmVsVGhpY2tuZXNzOi4yLGQ9ci5iZXZlbFNpemUhPT12b2lkIDA/ci5iZXZlbFNpemU6cC0uMSxnPXIuYmV2ZWxPZmZzZXQhPT12b2lkIDA/ci5iZXZlbE9mZnNldDowLF89ci5iZXZlbFNlZ21lbnRzIT09dm9pZCAwP3IuYmV2ZWxTZWdtZW50czozLHk9ci5leHRydWRlUGF0aCx4PXIuVVZHZW5lcmF0b3IhPT12b2lkIDA/ci5VVkdlbmVyYXRvcjpzMHI7ci5hbW91bnQhPT12b2lkIDAmJihjb25zb2xlLndhcm4oIlRIUkVFLkV4dHJ1ZGVCdWZmZXJHZW9tZXRyeTogYW1vdW50IGhhcyBiZWVuIHJlbmFtZWQgdG8gZGVwdGguIiksaD1yLmFtb3VudCk7bGV0IGIsUz0hMSxDLFAsayxPO3kmJihiPXkuZ2V0U3BhY2VkUG9pbnRzKHUpLFM9ITAsZj0hMSxDPXkuY29tcHV0ZUZyZW5ldEZyYW1lcyh1LCExKSxQPW5ldyBqLGs9bmV3IGosTz1uZXcgaiksZnx8KF89MCxwPTAsZD0wLGc9MCk7bGV0IEQ9cy5leHRyYWN0UG9pbnRzKGMpLEI9RC5zaGFwZSxJPUQuaG9sZXM7aWYoIVpjLmlzQ2xvY2tXaXNlKEIpKXtCPUIucmV2ZXJzZSgpO2ZvcihsZXQgcT0wLHB0PUkubGVuZ3RoO3E8cHQ7cSsrKXtsZXQgaHQ9SVtxXTtaYy5pc0Nsb2NrV2lzZShodCkmJihJW3FdPWh0LnJldmVyc2UoKSl9fWxldCBSPVpjLnRyaWFuZ3VsYXRlU2hhcGUoQixJKSxGPUI7Zm9yKGxldCBxPTAscHQ9SS5sZW5ndGg7cTxwdDtxKyspe2xldCBodD1JW3FdO0I9Qi5jb25jYXQoaHQpfWZ1bmN0aW9uIHoocSxwdCxodCl7cmV0dXJuIHB0fHxjb25zb2xlLmVycm9yKCJUSFJFRS5FeHRydWRlR2VvbWV0cnk6IHZlYyBkb2VzIG5vdCBleGlzdCIpLHB0LmNsb25lKCkubXVsdGlwbHlTY2FsYXIoaHQpLmFkZChxKX1sZXQgVT1CLmxlbmd0aCxXPVIubGVuZ3RoO2Z1bmN0aW9uIFoocSxwdCxodCl7bGV0IHd0LGt0LGllLGVlPXEueC1wdC54LExlPXEueS1wdC55LGFyPWh0LngtcS54LGZyPWh0LnktcS55LHR0PWVlKmVlK0xlKkxlLCQ9ZWUqZnItTGUqYXI7aWYoTWF0aC5hYnMoJCk+TnVtYmVyLkVQU0lMT04pe2xldCBJdD1NYXRoLnNxcnQodHQpLCR0PU1hdGguc3FydChhciphcitmcipmciksaGU9cHQueC1MZS9JdCxUdD1wdC55K2VlL0l0LGJlPWh0LngtZnIvJHQsbnQ9aHQueSthci8kdCxDdD0oKGJlLWhlKSpmci0obnQtVHQpKmFyKS8oZWUqZnItTGUqYXIpO3d0PWhlK2VlKkN0LXEueCxrdD1UdCtMZSpDdC1xLnk7bGV0IFd0PXd0Knd0K2t0Kmt0O2lmKFd0PD0yKXJldHVybiBuZXcgTHQod3Qsa3QpO2llPU1hdGguc3FydChXdC8yKX1lbHNle2xldCBJdD0hMTtlZT5OdW1iZXIuRVBTSUxPTj9hcj5OdW1iZXIuRVBTSUxPTiYmKEl0PSEwKTplZTwtTnVtYmVyLkVQU0lMT04/YXI8LU51bWJlci5FUFNJTE9OJiYoSXQ9ITApOk1hdGguc2lnbihMZSk9PT1NYXRoLnNpZ24oZnIpJiYoSXQ9ITApLEl0Pyh3dD0tTGUsa3Q9ZWUsaWU9TWF0aC5zcXJ0KHR0KSk6KHd0PWVlLGt0PUxlLGllPU1hdGguc3FydCh0dC8yKSl9cmV0dXJuIG5ldyBMdCh3dC9pZSxrdC9pZSl9bGV0IHJ0PVtdO2ZvcihsZXQgcT0wLHB0PUYubGVuZ3RoLGh0PXB0LTEsd3Q9cSsxO3E8cHQ7cSsrLGh0Kyssd3QrKylodD09PXB0JiYoaHQ9MCksd3Q9PT1wdCYmKHd0PTApLHJ0W3FdPVooRltxXSxGW2h0XSxGW3d0XSk7bGV0IG90PVtdLHN0LFN0PXJ0LmNvbmNhdCgpO2ZvcihsZXQgcT0wLHB0PUkubGVuZ3RoO3E8cHQ7cSsrKXtsZXQgaHQ9SVtxXTtzdD1bXTtmb3IobGV0IHd0PTAsa3Q9aHQubGVuZ3RoLGllPWt0LTEsZWU9d3QrMTt3dDxrdDt3dCsrLGllKyssZWUrKylpZT09PWt0JiYoaWU9MCksZWU9PT1rdCYmKGVlPTApLHN0W3d0XT1aKGh0W3d0XSxodFtpZV0saHRbZWVdKTtvdC5wdXNoKHN0KSxTdD1TdC5jb25jYXQoc3QpfWZvcihsZXQgcT0wO3E8XztxKyspe2xldCBwdD1xL18saHQ9cCpNYXRoLmNvcyhwdCpNYXRoLlBJLzIpLHd0PWQqTWF0aC5zaW4ocHQqTWF0aC5QSS8yKStnO2ZvcihsZXQga3Q9MCxpZT1GLmxlbmd0aDtrdDxpZTtrdCsrKXtsZXQgZWU9eihGW2t0XSxydFtrdF0sd3QpO190KGVlLngsZWUueSwtaHQpfWZvcihsZXQga3Q9MCxpZT1JLmxlbmd0aDtrdDxpZTtrdCsrKXtsZXQgZWU9SVtrdF07c3Q9b3Rba3RdO2ZvcihsZXQgTGU9MCxhcj1lZS5sZW5ndGg7TGU8YXI7TGUrKyl7bGV0IGZyPXooZWVbTGVdLHN0W0xlXSx3dCk7X3QoZnIueCxmci55LC1odCl9fX1sZXQgYnQ9ZCtnO2ZvcihsZXQgcT0wO3E8VTtxKyspe2xldCBwdD1mP3ooQltxXSxTdFtxXSxidCk6QltxXTtTPyhrLmNvcHkoQy5ub3JtYWxzWzBdKS5tdWx0aXBseVNjYWxhcihwdC54KSxQLmNvcHkoQy5iaW5vcm1hbHNbMF0pLm11bHRpcGx5U2NhbGFyKHB0LnkpLE8uY29weShiWzBdKS5hZGQoaykuYWRkKFApLF90KE8ueCxPLnksTy56KSk6X3QocHQueCxwdC55LDApfWZvcihsZXQgcT0xO3E8PXU7cSsrKWZvcihsZXQgcHQ9MDtwdDxVO3B0Kyspe2xldCBodD1mP3ooQltwdF0sU3RbcHRdLGJ0KTpCW3B0XTtTPyhrLmNvcHkoQy5ub3JtYWxzW3FdKS5tdWx0aXBseVNjYWxhcihodC54KSxQLmNvcHkoQy5iaW5vcm1hbHNbcV0pLm11bHRpcGx5U2NhbGFyKGh0LnkpLE8uY29weShiW3FdKS5hZGQoaykuYWRkKFApLF90KE8ueCxPLnksTy56KSk6X3QoaHQueCxodC55LGgvdSpxKX1mb3IobGV0IHE9Xy0xO3E+PTA7cS0tKXtsZXQgcHQ9cS9fLGh0PXAqTWF0aC5jb3MocHQqTWF0aC5QSS8yKSx3dD1kKk1hdGguc2luKHB0Kk1hdGguUEkvMikrZztmb3IobGV0IGt0PTAsaWU9Ri5sZW5ndGg7a3Q8aWU7a3QrKyl7bGV0IGVlPXooRltrdF0scnRba3RdLHd0KTtfdChlZS54LGVlLnksaCtodCl9Zm9yKGxldCBrdD0wLGllPUkubGVuZ3RoO2t0PGllO2t0Kyspe2xldCBlZT1JW2t0XTtzdD1vdFtrdF07Zm9yKGxldCBMZT0wLGFyPWVlLmxlbmd0aDtMZTxhcjtMZSsrKXtsZXQgZnI9eihlZVtMZV0sc3RbTGVdLHd0KTtTP190KGZyLngsZnIueStiW3UtMV0ueSxiW3UtMV0ueCtodCk6X3QoZnIueCxmci55LGgraHQpfX19TXQoKSxsdCgpO2Z1bmN0aW9uIE10KCl7bGV0IHE9aS5sZW5ndGgvMztpZihmKXtsZXQgcHQ9MCxodD1VKnB0O2ZvcihsZXQgd3Q9MDt3dDxXO3d0Kyspe2xldCBrdD1SW3d0XTtjdChrdFsyXStodCxrdFsxXStodCxrdFswXStodCl9cHQ9dStfKjIsaHQ9VSpwdDtmb3IobGV0IHd0PTA7d3Q8Vzt3dCsrKXtsZXQga3Q9Ult3dF07Y3Qoa3RbMF0raHQsa3RbMV0raHQsa3RbMl0raHQpfX1lbHNle2ZvcihsZXQgcHQ9MDtwdDxXO3B0Kyspe2xldCBodD1SW3B0XTtjdChodFsyXSxodFsxXSxodFswXSl9Zm9yKGxldCBwdD0wO3B0PFc7cHQrKyl7bGV0IGh0PVJbcHRdO2N0KGh0WzBdK1UqdSxodFsxXStVKnUsaHRbMl0rVSp1KX19bi5hZGRHcm91cChxLGkubGVuZ3RoLzMtcSwwKX1mdW5jdGlvbiBsdCgpe2xldCBxPWkubGVuZ3RoLzMscHQ9MDtLdChGLHB0KSxwdCs9Ri5sZW5ndGg7Zm9yKGxldCBodD0wLHd0PUkubGVuZ3RoO2h0PHd0O2h0Kyspe2xldCBrdD1JW2h0XTtLdChrdCxwdCkscHQrPWt0Lmxlbmd0aH1uLmFkZEdyb3VwKHEsaS5sZW5ndGgvMy1xLDEpfWZ1bmN0aW9uIEt0KHEscHQpe2xldCBodD1xLmxlbmd0aDtmb3IoOy0taHQ+PTA7KXtsZXQgd3Q9aHQsa3Q9aHQtMTtrdDwwJiYoa3Q9cS5sZW5ndGgtMSk7Zm9yKGxldCBpZT0wLGVlPXUrXyoyO2llPGVlO2llKyspe2xldCBMZT1VKmllLGFyPVUqKGllKzEpLGZyPXB0K3d0K0xlLHR0PXB0K2t0K0xlLCQ9cHQra3QrYXIsSXQ9cHQrd3QrYXI7WChmcix0dCwkLEl0KX19fWZ1bmN0aW9uIF90KHEscHQsaHQpe2wucHVzaChxKSxsLnB1c2gocHQpLGwucHVzaChodCl9ZnVuY3Rpb24gY3QocSxwdCxodCl7ZXQocSksZXQocHQpLGV0KGh0KTtsZXQgd3Q9aS5sZW5ndGgvMyxrdD14LmdlbmVyYXRlVG9wVVYobixpLHd0LTMsd3QtMix3dC0xKTtkdChrdFswXSksZHQoa3RbMV0pLGR0KGt0WzJdKX1mdW5jdGlvbiBYKHEscHQsaHQsd3Qpe2V0KHEpLGV0KHB0KSxldCh3dCksZXQocHQpLGV0KGh0KSxldCh3dCk7bGV0IGt0PWkubGVuZ3RoLzMsaWU9eC5nZW5lcmF0ZVNpZGVXYWxsVVYobixpLGt0LTYsa3QtMyxrdC0yLGt0LTEpO2R0KGllWzBdKSxkdChpZVsxXSksZHQoaWVbM10pLGR0KGllWzFdKSxkdChpZVsyXSksZHQoaWVbM10pfWZ1bmN0aW9uIGV0KHEpe2kucHVzaChsW3EqMyswXSksaS5wdXNoKGxbcSozKzFdKSxpLnB1c2gobFtxKjMrMl0pfWZ1bmN0aW9uIGR0KHEpe28ucHVzaChxLngpLG8ucHVzaChxLnkpfX19dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCkscj10aGlzLnBhcmFtZXRlcnMuc2hhcGVzLG49dGhpcy5wYXJhbWV0ZXJzLm9wdGlvbnM7cmV0dXJuIGwwcihyLG4sdCl9c3RhdGljIGZyb21KU09OKHQscil7bGV0IG49W107Zm9yKGxldCBvPTAsYT10LnNoYXBlcy5sZW5ndGg7bzxhO28rKyl7bGV0IHM9clt0LnNoYXBlc1tvXV07bi5wdXNoKHMpfWxldCBpPXQub3B0aW9ucy5leHRydWRlUGF0aDtyZXR1cm4gaSE9PXZvaWQgMCYmKHQub3B0aW9ucy5leHRydWRlUGF0aD1uZXcgT2h0W2kudHlwZV0oKS5mcm9tSlNPTihpKSksbmV3IGhoKG4sdC5vcHRpb25zKX19LHMwcj17Z2VuZXJhdGVUb3BVVjpmdW5jdGlvbihlLHQscixuLGkpe2xldCBvPXRbciozXSxhPXRbciozKzFdLHM9dFtuKjNdLGw9dFtuKjMrMV0sYz10W2kqM10sdT10W2kqMysxXTtyZXR1cm5bbmV3IEx0KG8sYSksbmV3IEx0KHMsbCksbmV3IEx0KGMsdSldfSxnZW5lcmF0ZVNpZGVXYWxsVVY6ZnVuY3Rpb24oZSx0LHIsbixpLG8pe2xldCBhPXRbciozXSxzPXRbciozKzFdLGw9dFtyKjMrMl0sYz10W24qM10sdT10W24qMysxXSxoPXRbbiozKzJdLGY9dFtpKjNdLHA9dFtpKjMrMV0sZD10W2kqMysyXSxnPXRbbyozXSxfPXRbbyozKzFdLHk9dFtvKjMrMl07cmV0dXJuIE1hdGguYWJzKHMtdSk8TWF0aC5hYnMoYS1jKT9bbmV3IEx0KGEsMS1sKSxuZXcgTHQoYywxLWgpLG5ldyBMdChmLDEtZCksbmV3IEx0KGcsMS15KV06W25ldyBMdChzLDEtbCksbmV3IEx0KHUsMS1oKSxuZXcgTHQocCwxLWQpLG5ldyBMdChfLDEteSldfX07ZnVuY3Rpb24gbDByKGUsdCxyKXtpZihyLnNoYXBlcz1bXSxBcnJheS5pc0FycmF5KGUpKWZvcihsZXQgbj0wLGk9ZS5sZW5ndGg7bjxpO24rKyl7bGV0IG89ZVtuXTtyLnNoYXBlcy5wdXNoKG8udXVpZCl9ZWxzZSByLnNoYXBlcy5wdXNoKGUudXVpZCk7cmV0dXJuIHQuZXh0cnVkZVBhdGghPT12b2lkIDAmJihyLm9wdGlvbnMuZXh0cnVkZVBhdGg9dC5leHRydWRlUGF0aC50b0pTT04oKSkscn12YXIgVzE9Y2xhc3MgZXh0ZW5kcyB1aHtjb25zdHJ1Y3Rvcih0PTEscj0wKXtsZXQgbj0oMStNYXRoLnNxcnQoNSkpLzIsaT1bLTEsbiwwLDEsbiwwLC0xLC1uLDAsMSwtbiwwLDAsLTEsbiwwLDEsbiwwLC0xLC1uLDAsMSwtbixuLDAsLTEsbiwwLDEsLW4sMCwtMSwtbiwwLDFdLG89WzAsMTEsNSwwLDUsMSwwLDEsNywwLDcsMTAsMCwxMCwxMSwxLDUsOSw1LDExLDQsMTEsMTAsMiwxMCw3LDYsNywxLDgsMyw5LDQsMyw0LDIsMywyLDYsMyw2LDgsMyw4LDksNCw5LDUsMiw0LDExLDYsMiwxMCw4LDYsNyw5LDgsMV07c3VwZXIoaSxvLHQsciksdGhpcy50eXBlPSJJY29zYWhlZHJvbkdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LGRldGFpbDpyfX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBXMSh0LnJhZGl1cyx0LmRldGFpbCl9fSxZMT1jbGFzcyBleHRlbmRzIFBle2NvbnN0cnVjdG9yKHQ9W25ldyBMdCgwLC41KSxuZXcgTHQoLjUsMCksbmV3IEx0KDAsLS41KV0scj0xMixuPTAsaT1NYXRoLlBJKjIpe3N1cGVyKCksdGhpcy50eXBlPSJMYXRoZUdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3BvaW50czp0LHNlZ21lbnRzOnIscGhpU3RhcnQ6bixwaGlMZW5ndGg6aX0scj1NYXRoLmZsb29yKHIpLGk9Wm8oaSwwLE1hdGguUEkqMik7bGV0IG89W10sYT1bXSxzPVtdLGw9W10sYz1bXSx1PTEvcixoPW5ldyBqLGY9bmV3IEx0LHA9bmV3IGosZD1uZXcgaixnPW5ldyBqLF89MCx5PTA7Zm9yKGxldCB4PTA7eDw9dC5sZW5ndGgtMTt4Kyspc3dpdGNoKHgpe2Nhc2UgMDpfPXRbeCsxXS54LXRbeF0ueCx5PXRbeCsxXS55LXRbeF0ueSxwLng9eSoxLHAueT0tXyxwLno9eSowLGcuY29weShwKSxwLm5vcm1hbGl6ZSgpLGwucHVzaChwLngscC55LHAueik7YnJlYWs7Y2FzZSB0Lmxlbmd0aC0xOmwucHVzaChnLngsZy55LGcueik7YnJlYWs7ZGVmYXVsdDpfPXRbeCsxXS54LXRbeF0ueCx5PXRbeCsxXS55LXRbeF0ueSxwLng9eSoxLHAueT0tXyxwLno9eSowLGQuY29weShwKSxwLngrPWcueCxwLnkrPWcueSxwLnorPWcueixwLm5vcm1hbGl6ZSgpLGwucHVzaChwLngscC55LHAueiksZy5jb3B5KGQpfWZvcihsZXQgeD0wO3g8PXI7eCsrKXtsZXQgYj1uK3gqdSppLFM9TWF0aC5zaW4oYiksQz1NYXRoLmNvcyhiKTtmb3IobGV0IFA9MDtQPD10Lmxlbmd0aC0xO1ArKyl7aC54PXRbUF0ueCpTLGgueT10W1BdLnksaC56PXRbUF0ueCpDLGEucHVzaChoLngsaC55LGgueiksZi54PXgvcixmLnk9UC8odC5sZW5ndGgtMSkscy5wdXNoKGYueCxmLnkpO2xldCBrPWxbMypQKzBdKlMsTz1sWzMqUCsxXSxEPWxbMypQKzBdKkM7Yy5wdXNoKGssTyxEKX19Zm9yKGxldCB4PTA7eDxyO3grKylmb3IobGV0IGI9MDtiPHQubGVuZ3RoLTE7YisrKXtsZXQgUz1iK3gqdC5sZW5ndGgsQz1TLFA9Uyt0Lmxlbmd0aCxrPVMrdC5sZW5ndGgrMSxPPVMrMTtvLnB1c2goQyxQLE8pLG8ucHVzaChrLE8sUCl9dGhpcy5zZXRJbmRleChvKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyB4ZShhLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyB4ZShzLDIpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgeGUoYywzKSl9c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgWTEodC5wb2ludHMsdC5zZWdtZW50cyx0LnBoaVN0YXJ0LHQucGhpTGVuZ3RoKX19LFkwPWNsYXNzIGV4dGVuZHMgdWh7Y29uc3RydWN0b3IodD0xLHI9MCl7bGV0IG49WzEsMCwwLC0xLDAsMCwwLDEsMCwwLC0xLDAsMCwwLDEsMCwwLC0xXSxpPVswLDIsNCwwLDQsMywwLDMsNSwwLDUsMiwxLDIsNSwxLDUsMywxLDMsNCwxLDQsMl07c3VwZXIobixpLHQsciksdGhpcy50eXBlPSJPY3RhaGVkcm9uR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cmFkaXVzOnQsZGV0YWlsOnJ9fXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IFkwKHQucmFkaXVzLHQuZGV0YWlsKX19LGoxPWNsYXNzIGV4dGVuZHMgUGV7Y29uc3RydWN0b3IodD0uNSxyPTEsbj04LGk9MSxvPTAsYT1NYXRoLlBJKjIpe3N1cGVyKCksdGhpcy50eXBlPSJSaW5nR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17aW5uZXJSYWRpdXM6dCxvdXRlclJhZGl1czpyLHRoZXRhU2VnbWVudHM6bixwaGlTZWdtZW50czppLHRoZXRhU3RhcnQ6byx0aGV0YUxlbmd0aDphfSxuPU1hdGgubWF4KDMsbiksaT1NYXRoLm1heCgxLGkpO2xldCBzPVtdLGw9W10sYz1bXSx1PVtdLGg9dCxmPShyLXQpL2kscD1uZXcgaixkPW5ldyBMdDtmb3IobGV0IGc9MDtnPD1pO2crKyl7Zm9yKGxldCBfPTA7Xzw9bjtfKyspe2xldCB5PW8rXy9uKmE7cC54PWgqTWF0aC5jb3MoeSkscC55PWgqTWF0aC5zaW4oeSksbC5wdXNoKHAueCxwLnkscC56KSxjLnB1c2goMCwwLDEpLGQueD0ocC54L3IrMSkvMixkLnk9KHAueS9yKzEpLzIsdS5wdXNoKGQueCxkLnkpfWgrPWZ9Zm9yKGxldCBnPTA7ZzxpO2crKyl7bGV0IF89ZyoobisxKTtmb3IobGV0IHk9MDt5PG47eSsrKXtsZXQgeD15K18sYj14LFM9eCtuKzEsQz14K24rMixQPXgrMTtzLnB1c2goYixTLFApLHMucHVzaChTLEMsUCl9fXRoaXMuc2V0SW5kZXgocyksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgeGUobCwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IHhlKGMsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IHhlKHUsMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IGoxKHQuaW5uZXJSYWRpdXMsdC5vdXRlclJhZGl1cyx0LnRoZXRhU2VnbWVudHMsdC5waGlTZWdtZW50cyx0LnRoZXRhU3RhcnQsdC50aGV0YUxlbmd0aCl9fSxqMD1jbGFzcyBleHRlbmRzIFBle2NvbnN0cnVjdG9yKHQ9bmV3IEtjKFtuZXcgTHQoMCwuNSksbmV3IEx0KC0uNSwtLjUpLG5ldyBMdCguNSwtLjUpXSkscj0xMil7c3VwZXIoKSx0aGlzLnR5cGU9IlNoYXBlR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17c2hhcGVzOnQsY3VydmVTZWdtZW50czpyfTtsZXQgbj1bXSxpPVtdLG89W10sYT1bXSxzPTAsbD0wO2lmKEFycmF5LmlzQXJyYXkodCk9PT0hMSljKHQpO2Vsc2UgZm9yKGxldCB1PTA7dTx0Lmxlbmd0aDt1KyspYyh0W3VdKSx0aGlzLmFkZEdyb3VwKHMsbCx1KSxzKz1sLGw9MDt0aGlzLnNldEluZGV4KG4pLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IHhlKGksMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyB4ZShvLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyB4ZShhLDIpKTtmdW5jdGlvbiBjKHUpe2xldCBoPWkubGVuZ3RoLzMsZj11LmV4dHJhY3RQb2ludHMocikscD1mLnNoYXBlLGQ9Zi5ob2xlcztaYy5pc0Nsb2NrV2lzZShwKT09PSExJiYocD1wLnJldmVyc2UoKSk7Zm9yKGxldCBfPTAseT1kLmxlbmd0aDtfPHk7XysrKXtsZXQgeD1kW19dO1pjLmlzQ2xvY2tXaXNlKHgpPT09ITAmJihkW19dPXgucmV2ZXJzZSgpKX1sZXQgZz1aYy50cmlhbmd1bGF0ZVNoYXBlKHAsZCk7Zm9yKGxldCBfPTAseT1kLmxlbmd0aDtfPHk7XysrKXtsZXQgeD1kW19dO3A9cC5jb25jYXQoeCl9Zm9yKGxldCBfPTAseT1wLmxlbmd0aDtfPHk7XysrKXtsZXQgeD1wW19dO2kucHVzaCh4LngseC55LDApLG8ucHVzaCgwLDAsMSksYS5wdXNoKHgueCx4LnkpfWZvcihsZXQgXz0wLHk9Zy5sZW5ndGg7Xzx5O18rKyl7bGV0IHg9Z1tfXSxiPXhbMF0raCxTPXhbMV0raCxDPXhbMl0raDtuLnB1c2goYixTLEMpLGwrPTN9fX10b0pTT04oKXtsZXQgdD1zdXBlci50b0pTT04oKSxyPXRoaXMucGFyYW1ldGVycy5zaGFwZXM7cmV0dXJuIGMwcihyLHQpfXN0YXRpYyBmcm9tSlNPTih0LHIpe2xldCBuPVtdO2ZvcihsZXQgaT0wLG89dC5zaGFwZXMubGVuZ3RoO2k8bztpKyspe2xldCBhPXJbdC5zaGFwZXNbaV1dO24ucHVzaChhKX1yZXR1cm4gbmV3IGowKG4sdC5jdXJ2ZVNlZ21lbnRzKX19O2Z1bmN0aW9uIGMwcihlLHQpe2lmKHQuc2hhcGVzPVtdLEFycmF5LmlzQXJyYXkoZSkpZm9yKGxldCByPTAsbj1lLmxlbmd0aDtyPG47cisrKXtsZXQgaT1lW3JdO3Quc2hhcGVzLnB1c2goaS51dWlkKX1lbHNlIHQuc2hhcGVzLnB1c2goZS51dWlkKTtyZXR1cm4gdH12YXIgWDA9Y2xhc3MgZXh0ZW5kcyBQZXtjb25zdHJ1Y3Rvcih0PTEscj0zMixuPTE2LGk9MCxvPU1hdGguUEkqMixhPTAscz1NYXRoLlBJKXtzdXBlcigpLHRoaXMudHlwZT0iU3BoZXJlR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cmFkaXVzOnQsd2lkdGhTZWdtZW50czpyLGhlaWdodFNlZ21lbnRzOm4scGhpU3RhcnQ6aSxwaGlMZW5ndGg6byx0aGV0YVN0YXJ0OmEsdGhldGFMZW5ndGg6c30scj1NYXRoLm1heCgzLE1hdGguZmxvb3IocikpLG49TWF0aC5tYXgoMixNYXRoLmZsb29yKG4pKTtsZXQgbD1NYXRoLm1pbihhK3MsTWF0aC5QSSksYz0wLHU9W10saD1uZXcgaixmPW5ldyBqLHA9W10sZD1bXSxnPVtdLF89W107Zm9yKGxldCB5PTA7eTw9bjt5Kyspe2xldCB4PVtdLGI9eS9uLFM9MDt5PT0wJiZhPT0wP1M9LjUvcjp5PT1uJiZsPT1NYXRoLlBJJiYoUz0tLjUvcik7Zm9yKGxldCBDPTA7Qzw9cjtDKyspe2xldCBQPUMvcjtoLng9LXQqTWF0aC5jb3MoaStQKm8pKk1hdGguc2luKGErYipzKSxoLnk9dCpNYXRoLmNvcyhhK2IqcyksaC56PXQqTWF0aC5zaW4oaStQKm8pKk1hdGguc2luKGErYipzKSxkLnB1c2goaC54LGgueSxoLnopLGYuY29weShoKS5ub3JtYWxpemUoKSxnLnB1c2goZi54LGYueSxmLnopLF8ucHVzaChQK1MsMS1iKSx4LnB1c2goYysrKX11LnB1c2goeCl9Zm9yKGxldCB5PTA7eTxuO3krKylmb3IobGV0IHg9MDt4PHI7eCsrKXtsZXQgYj11W3ldW3grMV0sUz11W3ldW3hdLEM9dVt5KzFdW3hdLFA9dVt5KzFdW3grMV07KHkhPT0wfHxhPjApJiZwLnB1c2goYixTLFApLCh5IT09bi0xfHxsPE1hdGguUEkpJiZwLnB1c2goUyxDLFApfXRoaXMuc2V0SW5kZXgocCksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgeGUoZCwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IHhlKGcsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IHhlKF8sMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IFgwKHQucmFkaXVzLHQud2lkdGhTZWdtZW50cyx0LmhlaWdodFNlZ21lbnRzLHQucGhpU3RhcnQsdC5waGlMZW5ndGgsdC50aGV0YVN0YXJ0LHQudGhldGFMZW5ndGgpfX0sWDE9Y2xhc3MgZXh0ZW5kcyB1aHtjb25zdHJ1Y3Rvcih0PTEscj0wKXtsZXQgbj1bMSwxLDEsLTEsLTEsMSwtMSwxLC0xLDEsLTEsLTFdLGk9WzIsMSwwLDAsMywyLDEsMywwLDIsMywxXTtzdXBlcihuLGksdCxyKSx0aGlzLnR5cGU9IlRldHJhaGVkcm9uR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cmFkaXVzOnQsZGV0YWlsOnJ9fXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IFgxKHQucmFkaXVzLHQuZGV0YWlsKX19LCQxPWNsYXNzIGV4dGVuZHMgUGV7Y29uc3RydWN0b3IodD0xLHI9LjQsbj04LGk9NixvPU1hdGguUEkqMil7c3VwZXIoKSx0aGlzLnR5cGU9IlRvcnVzR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cmFkaXVzOnQsdHViZTpyLHJhZGlhbFNlZ21lbnRzOm4sdHVidWxhclNlZ21lbnRzOmksYXJjOm99LG49TWF0aC5mbG9vcihuKSxpPU1hdGguZmxvb3IoaSk7bGV0IGE9W10scz1bXSxsPVtdLGM9W10sdT1uZXcgaixoPW5ldyBqLGY9bmV3IGo7Zm9yKGxldCBwPTA7cDw9bjtwKyspZm9yKGxldCBkPTA7ZDw9aTtkKyspe2xldCBnPWQvaSpvLF89cC9uKk1hdGguUEkqMjtoLng9KHQrcipNYXRoLmNvcyhfKSkqTWF0aC5jb3MoZyksaC55PSh0K3IqTWF0aC5jb3MoXykpKk1hdGguc2luKGcpLGguej1yKk1hdGguc2luKF8pLHMucHVzaChoLngsaC55LGgueiksdS54PXQqTWF0aC5jb3MoZyksdS55PXQqTWF0aC5zaW4oZyksZi5zdWJWZWN0b3JzKGgsdSkubm9ybWFsaXplKCksbC5wdXNoKGYueCxmLnksZi56KSxjLnB1c2goZC9pKSxjLnB1c2gocC9uKX1mb3IobGV0IHA9MTtwPD1uO3ArKylmb3IobGV0IGQ9MTtkPD1pO2QrKyl7bGV0IGc9KGkrMSkqcCtkLTEsXz0oaSsxKSoocC0xKStkLTEseT0oaSsxKSoocC0xKStkLHg9KGkrMSkqcCtkO2EucHVzaChnLF8seCksYS5wdXNoKF8seSx4KX10aGlzLnNldEluZGV4KGEpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IHhlKHMsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyB4ZShsLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyB4ZShjLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyAkMSh0LnJhZGl1cyx0LnR1YmUsdC5yYWRpYWxTZWdtZW50cyx0LnR1YnVsYXJTZWdtZW50cyx0LmFyYyl9fSxLMT1jbGFzcyBleHRlbmRzIFBle2NvbnN0cnVjdG9yKHQ9MSxyPS40LG49NjQsaT04LG89MixhPTMpe3N1cGVyKCksdGhpcy50eXBlPSJUb3J1c0tub3RHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtyYWRpdXM6dCx0dWJlOnIsdHVidWxhclNlZ21lbnRzOm4scmFkaWFsU2VnbWVudHM6aSxwOm8scTphfSxuPU1hdGguZmxvb3IobiksaT1NYXRoLmZsb29yKGkpO2xldCBzPVtdLGw9W10sYz1bXSx1PVtdLGg9bmV3IGosZj1uZXcgaixwPW5ldyBqLGQ9bmV3IGosZz1uZXcgaixfPW5ldyBqLHk9bmV3IGo7Zm9yKGxldCBiPTA7Yjw9bjsrK2Ipe2xldCBTPWIvbipvKk1hdGguUEkqMjt4KFMsbyxhLHQscCkseChTKy4wMSxvLGEsdCxkKSxfLnN1YlZlY3RvcnMoZCxwKSx5LmFkZFZlY3RvcnMoZCxwKSxnLmNyb3NzVmVjdG9ycyhfLHkpLHkuY3Jvc3NWZWN0b3JzKGcsXyksZy5ub3JtYWxpemUoKSx5Lm5vcm1hbGl6ZSgpO2ZvcihsZXQgQz0wO0M8PWk7KytDKXtsZXQgUD1DL2kqTWF0aC5QSSoyLGs9LXIqTWF0aC5jb3MoUCksTz1yKk1hdGguc2luKFApO2gueD1wLngrKGsqeS54K08qZy54KSxoLnk9cC55KyhrKnkueStPKmcueSksaC56PXAueisoayp5LnorTypnLnopLGwucHVzaChoLngsaC55LGgueiksZi5zdWJWZWN0b3JzKGgscCkubm9ybWFsaXplKCksYy5wdXNoKGYueCxmLnksZi56KSx1LnB1c2goYi9uKSx1LnB1c2goQy9pKX19Zm9yKGxldCBiPTE7Yjw9bjtiKyspZm9yKGxldCBTPTE7Uzw9aTtTKyspe2xldCBDPShpKzEpKihiLTEpKyhTLTEpLFA9KGkrMSkqYisoUy0xKSxrPShpKzEpKmIrUyxPPShpKzEpKihiLTEpK1M7cy5wdXNoKEMsUCxPKSxzLnB1c2goUCxrLE8pfXRoaXMuc2V0SW5kZXgocyksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgeGUobCwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IHhlKGMsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IHhlKHUsMikpO2Z1bmN0aW9uIHgoYixTLEMsUCxrKXtsZXQgTz1NYXRoLmNvcyhiKSxEPU1hdGguc2luKGIpLEI9Qy9TKmIsST1NYXRoLmNvcyhCKTtrLng9UCooMitJKSouNSpPLGsueT1QKigyK0kpKkQqLjUsay56PVAqTWF0aC5zaW4oQikqLjV9fXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IEsxKHQucmFkaXVzLHQudHViZSx0LnR1YnVsYXJTZWdtZW50cyx0LnJhZGlhbFNlZ21lbnRzLHQucCx0LnEpfX0sWjE9Y2xhc3MgZXh0ZW5kcyBQZXtjb25zdHJ1Y3Rvcih0PW5ldyBoTShuZXcgaigtMSwtMSwwKSxuZXcgaigtMSwxLDApLG5ldyBqKDEsMSwwKSkscj02NCxuPTEsaT04LG89ITEpe3N1cGVyKCksdGhpcy50eXBlPSJUdWJlR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cGF0aDp0LHR1YnVsYXJTZWdtZW50czpyLHJhZGl1czpuLHJhZGlhbFNlZ21lbnRzOmksY2xvc2VkOm99O2xldCBhPXQuY29tcHV0ZUZyZW5ldEZyYW1lcyhyLG8pO3RoaXMudGFuZ2VudHM9YS50YW5nZW50cyx0aGlzLm5vcm1hbHM9YS5ub3JtYWxzLHRoaXMuYmlub3JtYWxzPWEuYmlub3JtYWxzO2xldCBzPW5ldyBqLGw9bmV3IGosYz1uZXcgTHQsdT1uZXcgaixoPVtdLGY9W10scD1bXSxkPVtdO2coKSx0aGlzLnNldEluZGV4KGQpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IHhlKGgsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyB4ZShmLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyB4ZShwLDIpKTtmdW5jdGlvbiBnKCl7Zm9yKGxldCBiPTA7YjxyO2IrKylfKGIpO18obz09PSExP3I6MCkseCgpLHkoKX1mdW5jdGlvbiBfKGIpe3U9dC5nZXRQb2ludEF0KGIvcix1KTtsZXQgUz1hLm5vcm1hbHNbYl0sQz1hLmJpbm9ybWFsc1tiXTtmb3IobGV0IFA9MDtQPD1pO1ArKyl7bGV0IGs9UC9pKk1hdGguUEkqMixPPU1hdGguc2luKGspLEQ9LU1hdGguY29zKGspO2wueD1EKlMueCtPKkMueCxsLnk9RCpTLnkrTypDLnksbC56PUQqUy56K08qQy56LGwubm9ybWFsaXplKCksZi5wdXNoKGwueCxsLnksbC56KSxzLng9dS54K24qbC54LHMueT11LnkrbipsLnkscy56PXUueituKmwueixoLnB1c2gocy54LHMueSxzLnopfX1mdW5jdGlvbiB5KCl7Zm9yKGxldCBiPTE7Yjw9cjtiKyspZm9yKGxldCBTPTE7Uzw9aTtTKyspe2xldCBDPShpKzEpKihiLTEpKyhTLTEpLFA9KGkrMSkqYisoUy0xKSxrPShpKzEpKmIrUyxPPShpKzEpKihiLTEpK1M7ZC5wdXNoKEMsUCxPKSxkLnB1c2goUCxrLE8pfX1mdW5jdGlvbiB4KCl7Zm9yKGxldCBiPTA7Yjw9cjtiKyspZm9yKGxldCBTPTA7Uzw9aTtTKyspYy54PWIvcixjLnk9Uy9pLHAucHVzaChjLngsYy55KX19dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQucGF0aD10aGlzLnBhcmFtZXRlcnMucGF0aC50b0pTT04oKSx0fXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IFoxKG5ldyBPaHRbdC5wYXRoLnR5cGVdKCkuZnJvbUpTT04odC5wYXRoKSx0LnR1YnVsYXJTZWdtZW50cyx0LnJhZGl1cyx0LnJhZGlhbFNlZ21lbnRzLHQuY2xvc2VkKX19LGQ2PWNsYXNzIGV4dGVuZHMgUGV7Y29uc3RydWN0b3IodD1udWxsKXtpZihzdXBlcigpLHRoaXMudHlwZT0iV2lyZWZyYW1lR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17Z2VvbWV0cnk6dH0sdCE9PW51bGwpe2xldCByPVtdLG49bmV3IFNldCxpPW5ldyBqLG89bmV3IGo7aWYodC5pbmRleCE9PW51bGwpe2xldCBhPXQuYXR0cmlidXRlcy5wb3NpdGlvbixzPXQuaW5kZXgsbD10Lmdyb3VwcztsLmxlbmd0aD09PTAmJihsPVt7c3RhcnQ6MCxjb3VudDpzLmNvdW50LG1hdGVyaWFsSW5kZXg6MH1dKTtmb3IobGV0IGM9MCx1PWwubGVuZ3RoO2M8dTsrK2Mpe2xldCBoPWxbY10sZj1oLnN0YXJ0LHA9aC5jb3VudDtmb3IobGV0IGQ9ZixnPWYrcDtkPGc7ZCs9Mylmb3IobGV0IF89MDtfPDM7XysrKXtsZXQgeT1zLmdldFgoZCtfKSx4PXMuZ2V0WChkKyhfKzEpJTMpO2kuZnJvbUJ1ZmZlckF0dHJpYnV0ZShhLHkpLG8uZnJvbUJ1ZmZlckF0dHJpYnV0ZShhLHgpLHloZShpLG8sbik9PT0hMCYmKHIucHVzaChpLngsaS55LGkueiksci5wdXNoKG8ueCxvLnksby56KSl9fX1lbHNle2xldCBhPXQuYXR0cmlidXRlcy5wb3NpdGlvbjtmb3IobGV0IHM9MCxsPWEuY291bnQvMztzPGw7cysrKWZvcihsZXQgYz0wO2M8MztjKyspe2xldCB1PTMqcytjLGg9MypzKyhjKzEpJTM7aS5mcm9tQnVmZmVyQXR0cmlidXRlKGEsdSksby5mcm9tQnVmZmVyQXR0cmlidXRlKGEsaCkseWhlKGksbyxuKT09PSEwJiYoci5wdXNoKGkueCxpLnksaS56KSxyLnB1c2goby54LG8ueSxvLnopKX19dGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgeGUociwzKSl9fX07ZnVuY3Rpb24geWhlKGUsdCxyKXtsZXQgbj1gJHtlLnh9LCR7ZS55fSwke2Uuen0tJHt0Lnh9LCR7dC55fSwke3Quen1gLGk9YCR7dC54fSwke3QueX0sJHt0Lnp9LSR7ZS54fSwke2UueX0sJHtlLnp9YDtyZXR1cm4gci5oYXMobik9PT0hMHx8ci5oYXMoaSk9PT0hMD8hMTooci5hZGQobixpKSwhMCl9dmFyIHZoZT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxCb3hHZW9tZXRyeTp0cCxCb3hCdWZmZXJHZW9tZXRyeTp0cCxDaXJjbGVHZW9tZXRyeTpCMSxDaXJjbGVCdWZmZXJHZW9tZXRyeTpCMSxDb25lR2VvbWV0cnk6SDEsQ29uZUJ1ZmZlckdlb21ldHJ5OkgxLEN5bGluZGVyR2VvbWV0cnk6YW0sQ3lsaW5kZXJCdWZmZXJHZW9tZXRyeTphbSxEb2RlY2FoZWRyb25HZW9tZXRyeTpWMSxEb2RlY2FoZWRyb25CdWZmZXJHZW9tZXRyeTpWMSxFZGdlc0dlb21ldHJ5OnM2LEV4dHJ1ZGVHZW9tZXRyeTpoaCxFeHRydWRlQnVmZmVyR2VvbWV0cnk6aGgsSWNvc2FoZWRyb25HZW9tZXRyeTpXMSxJY29zYWhlZHJvbkJ1ZmZlckdlb21ldHJ5OlcxLExhdGhlR2VvbWV0cnk6WTEsTGF0aGVCdWZmZXJHZW9tZXRyeTpZMSxPY3RhaGVkcm9uR2VvbWV0cnk6WTAsT2N0YWhlZHJvbkJ1ZmZlckdlb21ldHJ5OlkwLFBsYW5lR2VvbWV0cnk6VTAsUGxhbmVCdWZmZXJHZW9tZXRyeTpVMCxQb2x5aGVkcm9uR2VvbWV0cnk6dWgsUG9seWhlZHJvbkJ1ZmZlckdlb21ldHJ5OnVoLFJpbmdHZW9tZXRyeTpqMSxSaW5nQnVmZmVyR2VvbWV0cnk6ajEsU2hhcGVHZW9tZXRyeTpqMCxTaGFwZUJ1ZmZlckdlb21ldHJ5OmowLFNwaGVyZUdlb21ldHJ5OlgwLFNwaGVyZUJ1ZmZlckdlb21ldHJ5OlgwLFRldHJhaGVkcm9uR2VvbWV0cnk6WDEsVGV0cmFoZWRyb25CdWZmZXJHZW9tZXRyeTpYMSxUb3J1c0dlb21ldHJ5OiQxLFRvcnVzQnVmZmVyR2VvbWV0cnk6JDEsVG9ydXNLbm90R2VvbWV0cnk6SzEsVG9ydXNLbm90QnVmZmVyR2VvbWV0cnk6SzEsVHViZUdlb21ldHJ5OloxLFR1YmVCdWZmZXJHZW9tZXRyeTpaMSxXaXJlZnJhbWVHZW9tZXRyeTpkNn0pLG02PWNsYXNzIGV4dGVuZHMgcWl7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNoYWRvd01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBuZSgwKSx0aGlzLnRyYW5zcGFyZW50PSEwLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXN9fTttNi5wcm90b3R5cGUuaXNTaGFkb3dNYXRlcmlhbD0hMDt2YXIgcE09Y2xhc3MgZXh0ZW5kcyBxaXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuZGVmaW5lcz17U1RBTkRBUkQ6IiJ9LHRoaXMudHlwZT0iTWVzaFN0YW5kYXJkTWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IG5lKDE2Nzc3MjE1KSx0aGlzLnJvdWdobmVzcz0xLHRoaXMubWV0YWxuZXNzPTAsdGhpcy5tYXA9bnVsbCx0aGlzLmxpZ2h0TWFwPW51bGwsdGhpcy5saWdodE1hcEludGVuc2l0eT0xLHRoaXMuYW9NYXA9bnVsbCx0aGlzLmFvTWFwSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZT1uZXcgbmUoMCksdGhpcy5lbWlzc2l2ZUludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmVNYXA9bnVsbCx0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPXN4LHRoaXMubm9ybWFsU2NhbGU9bmV3IEx0KDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy5yb3VnaG5lc3NNYXA9bnVsbCx0aGlzLm1ldGFsbmVzc01hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmVudk1hcD1udWxsLHRoaXMuZW52TWFwSW50ZW5zaXR5PTEsdGhpcy5yZWZyYWN0aW9uUmF0aW89Ljk4LHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy53aXJlZnJhbWVMaW5lY2FwPSJyb3VuZCIsdGhpcy53aXJlZnJhbWVMaW5lam9pbj0icm91bmQiLHRoaXMuZmxhdFNoYWRpbmc9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRlZmluZXM9e1NUQU5EQVJEOiIifSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5yb3VnaG5lc3M9dC5yb3VnaG5lc3MsdGhpcy5tZXRhbG5lc3M9dC5tZXRhbG5lc3MsdGhpcy5tYXA9dC5tYXAsdGhpcy5saWdodE1hcD10LmxpZ2h0TWFwLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9dC5saWdodE1hcEludGVuc2l0eSx0aGlzLmFvTWFwPXQuYW9NYXAsdGhpcy5hb01hcEludGVuc2l0eT10LmFvTWFwSW50ZW5zaXR5LHRoaXMuZW1pc3NpdmUuY29weSh0LmVtaXNzaXZlKSx0aGlzLmVtaXNzaXZlTWFwPXQuZW1pc3NpdmVNYXAsdGhpcy5lbWlzc2l2ZUludGVuc2l0eT10LmVtaXNzaXZlSW50ZW5zaXR5LHRoaXMuYnVtcE1hcD10LmJ1bXBNYXAsdGhpcy5idW1wU2NhbGU9dC5idW1wU2NhbGUsdGhpcy5ub3JtYWxNYXA9dC5ub3JtYWxNYXAsdGhpcy5ub3JtYWxNYXBUeXBlPXQubm9ybWFsTWFwVHlwZSx0aGlzLm5vcm1hbFNjYWxlLmNvcHkodC5ub3JtYWxTY2FsZSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9dC5kaXNwbGFjZW1lbnRNYXAsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT10LmRpc3BsYWNlbWVudFNjYWxlLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMsdGhpcy5yb3VnaG5lc3NNYXA9dC5yb3VnaG5lc3NNYXAsdGhpcy5tZXRhbG5lc3NNYXA9dC5tZXRhbG5lc3NNYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZW52TWFwPXQuZW52TWFwLHRoaXMuZW52TWFwSW50ZW5zaXR5PXQuZW52TWFwSW50ZW5zaXR5LHRoaXMucmVmcmFjdGlvblJhdGlvPXQucmVmcmFjdGlvblJhdGlvLHRoaXMud2lyZWZyYW1lPXQud2lyZWZyYW1lLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPXQud2lyZWZyYW1lTGluZXdpZHRoLHRoaXMud2lyZWZyYW1lTGluZWNhcD10LndpcmVmcmFtZUxpbmVjYXAsdGhpcy53aXJlZnJhbWVMaW5lam9pbj10LndpcmVmcmFtZUxpbmVqb2luLHRoaXMuZmxhdFNoYWRpbmc9dC5mbGF0U2hhZGluZyx0aGlzfX07cE0ucHJvdG90eXBlLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWw9ITA7dmFyIGc2PWNsYXNzIGV4dGVuZHMgcE17Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmRlZmluZXM9e1NUQU5EQVJEOiIiLFBIWVNJQ0FMOiIifSx0aGlzLnR5cGU9Ik1lc2hQaHlzaWNhbE1hdGVyaWFsIix0aGlzLmNsZWFyY29hdE1hcD1udWxsLHRoaXMuY2xlYXJjb2F0Um91Z2huZXNzPTAsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXA9bnVsbCx0aGlzLmNsZWFyY29hdE5vcm1hbFNjYWxlPW5ldyBMdCgxLDEpLHRoaXMuY2xlYXJjb2F0Tm9ybWFsTWFwPW51bGwsdGhpcy5pb3I9MS41LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJyZWZsZWN0aXZpdHkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWm8oMi41Kih0aGlzLmlvci0xKS8odGhpcy5pb3IrMSksMCwxKX0sc2V0OmZ1bmN0aW9uKHIpe3RoaXMuaW9yPSgxKy40KnIpLygxLS40KnIpfX0pLHRoaXMuc2hlZW5Db2xvcj1uZXcgbmUoMCksdGhpcy5zaGVlbkNvbG9yTWFwPW51bGwsdGhpcy5zaGVlblJvdWdobmVzcz0xLHRoaXMuc2hlZW5Sb3VnaG5lc3NNYXA9bnVsbCx0aGlzLnRyYW5zbWlzc2lvbk1hcD1udWxsLHRoaXMudGhpY2tuZXNzPTAsdGhpcy50aGlja25lc3NNYXA9bnVsbCx0aGlzLmF0dGVudWF0aW9uRGlzdGFuY2U9MCx0aGlzLmF0dGVudWF0aW9uQ29sb3I9bmV3IG5lKDEsMSwxKSx0aGlzLnNwZWN1bGFySW50ZW5zaXR5PTEsdGhpcy5zcGVjdWxhckludGVuc2l0eU1hcD1udWxsLHRoaXMuc3BlY3VsYXJDb2xvcj1uZXcgbmUoMSwxLDEpLHRoaXMuc3BlY3VsYXJDb2xvck1hcD1udWxsLHRoaXMuX3NoZWVuPTAsdGhpcy5fY2xlYXJjb2F0PTAsdGhpcy5fdHJhbnNtaXNzaW9uPTAsdGhpcy5zZXRWYWx1ZXModCl9Z2V0IHNoZWVuKCl7cmV0dXJuIHRoaXMuX3NoZWVufXNldCBzaGVlbih0KXt0aGlzLl9zaGVlbj4wIT10PjAmJnRoaXMudmVyc2lvbisrLHRoaXMuX3NoZWVuPXR9Z2V0IGNsZWFyY29hdCgpe3JldHVybiB0aGlzLl9jbGVhcmNvYXR9c2V0IGNsZWFyY29hdCh0KXt0aGlzLl9jbGVhcmNvYXQ+MCE9dD4wJiZ0aGlzLnZlcnNpb24rKyx0aGlzLl9jbGVhcmNvYXQ9dH1nZXQgdHJhbnNtaXNzaW9uKCl7cmV0dXJuIHRoaXMuX3RyYW5zbWlzc2lvbn1zZXQgdHJhbnNtaXNzaW9uKHQpe3RoaXMuX3RyYW5zbWlzc2lvbj4wIT10PjAmJnRoaXMudmVyc2lvbisrLHRoaXMuX3RyYW5zbWlzc2lvbj10fWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIixQSFlTSUNBTDoiIn0sdGhpcy5jbGVhcmNvYXQ9dC5jbGVhcmNvYXQsdGhpcy5jbGVhcmNvYXRNYXA9dC5jbGVhcmNvYXRNYXAsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3M9dC5jbGVhcmNvYXRSb3VnaG5lc3MsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXA9dC5jbGVhcmNvYXRSb3VnaG5lc3NNYXAsdGhpcy5jbGVhcmNvYXROb3JtYWxNYXA9dC5jbGVhcmNvYXROb3JtYWxNYXAsdGhpcy5jbGVhcmNvYXROb3JtYWxTY2FsZS5jb3B5KHQuY2xlYXJjb2F0Tm9ybWFsU2NhbGUpLHRoaXMuaW9yPXQuaW9yLHRoaXMuc2hlZW49dC5zaGVlbix0aGlzLnNoZWVuQ29sb3IuY29weSh0LnNoZWVuQ29sb3IpLHRoaXMuc2hlZW5Db2xvck1hcD10LnNoZWVuQ29sb3JNYXAsdGhpcy5zaGVlblJvdWdobmVzcz10LnNoZWVuUm91Z2huZXNzLHRoaXMuc2hlZW5Sb3VnaG5lc3NNYXA9dC5zaGVlblJvdWdobmVzc01hcCx0aGlzLnRyYW5zbWlzc2lvbj10LnRyYW5zbWlzc2lvbix0aGlzLnRyYW5zbWlzc2lvbk1hcD10LnRyYW5zbWlzc2lvbk1hcCx0aGlzLnRoaWNrbmVzcz10LnRoaWNrbmVzcyx0aGlzLnRoaWNrbmVzc01hcD10LnRoaWNrbmVzc01hcCx0aGlzLmF0dGVudWF0aW9uRGlzdGFuY2U9dC5hdHRlbnVhdGlvbkRpc3RhbmNlLHRoaXMuYXR0ZW51YXRpb25Db2xvci5jb3B5KHQuYXR0ZW51YXRpb25Db2xvciksdGhpcy5zcGVjdWxhckludGVuc2l0eT10LnNwZWN1bGFySW50ZW5zaXR5LHRoaXMuc3BlY3VsYXJJbnRlbnNpdHlNYXA9dC5zcGVjdWxhckludGVuc2l0eU1hcCx0aGlzLnNwZWN1bGFyQ29sb3IuY29weSh0LnNwZWN1bGFyQ29sb3IpLHRoaXMuc3BlY3VsYXJDb2xvck1hcD10LnNwZWN1bGFyQ29sb3JNYXAsdGhpc319O2c2LnByb3RvdHlwZS5pc01lc2hQaHlzaWNhbE1hdGVyaWFsPSEwO3ZhciBfNj1jbGFzcyBleHRlbmRzIHFpe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoUGhvbmdNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgbmUoMTY3NzcyMTUpLHRoaXMuc3BlY3VsYXI9bmV3IG5lKDExMTg0ODEpLHRoaXMuc2hpbmluZXNzPTMwLHRoaXMubWFwPW51bGwsdGhpcy5saWdodE1hcD1udWxsLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9MSx0aGlzLmFvTWFwPW51bGwsdGhpcy5hb01hcEludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmU9bmV3IG5lKDApLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlTWFwPW51bGwsdGhpcy5idW1wTWFwPW51bGwsdGhpcy5idW1wU2NhbGU9MSx0aGlzLm5vcm1hbE1hcD1udWxsLHRoaXMubm9ybWFsTWFwVHlwZT1zeCx0aGlzLm5vcm1hbFNjYWxlPW5ldyBMdCgxLDEpLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMuc3BlY3VsYXJNYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5lbnZNYXA9bnVsbCx0aGlzLmNvbWJpbmU9TzYsdGhpcy5yZWZsZWN0aXZpdHk9MSx0aGlzLnJlZnJhY3Rpb25SYXRpbz0uOTgsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5mbGF0U2hhZGluZz0hMSx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLnNwZWN1bGFyLmNvcHkodC5zcGVjdWxhciksdGhpcy5zaGluaW5lc3M9dC5zaGluaW5lc3MsdGhpcy5tYXA9dC5tYXAsdGhpcy5saWdodE1hcD10LmxpZ2h0TWFwLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9dC5saWdodE1hcEludGVuc2l0eSx0aGlzLmFvTWFwPXQuYW9NYXAsdGhpcy5hb01hcEludGVuc2l0eT10LmFvTWFwSW50ZW5zaXR5LHRoaXMuZW1pc3NpdmUuY29weSh0LmVtaXNzaXZlKSx0aGlzLmVtaXNzaXZlTWFwPXQuZW1pc3NpdmVNYXAsdGhpcy5lbWlzc2l2ZUludGVuc2l0eT10LmVtaXNzaXZlSW50ZW5zaXR5LHRoaXMuYnVtcE1hcD10LmJ1bXBNYXAsdGhpcy5idW1wU2NhbGU9dC5idW1wU2NhbGUsdGhpcy5ub3JtYWxNYXA9dC5ub3JtYWxNYXAsdGhpcy5ub3JtYWxNYXBUeXBlPXQubm9ybWFsTWFwVHlwZSx0aGlzLm5vcm1hbFNjYWxlLmNvcHkodC5ub3JtYWxTY2FsZSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9dC5kaXNwbGFjZW1lbnRNYXAsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT10LmRpc3BsYWNlbWVudFNjYWxlLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMsdGhpcy5zcGVjdWxhck1hcD10LnNwZWN1bGFyTWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmVudk1hcD10LmVudk1hcCx0aGlzLmNvbWJpbmU9dC5jb21iaW5lLHRoaXMucmVmbGVjdGl2aXR5PXQucmVmbGVjdGl2aXR5LHRoaXMucmVmcmFjdGlvblJhdGlvPXQucmVmcmFjdGlvblJhdGlvLHRoaXMud2lyZWZyYW1lPXQud2lyZWZyYW1lLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPXQud2lyZWZyYW1lTGluZXdpZHRoLHRoaXMud2lyZWZyYW1lTGluZWNhcD10LndpcmVmcmFtZUxpbmVjYXAsdGhpcy53aXJlZnJhbWVMaW5lam9pbj10LndpcmVmcmFtZUxpbmVqb2luLHRoaXMuZmxhdFNoYWRpbmc9dC5mbGF0U2hhZGluZyx0aGlzfX07XzYucHJvdG90eXBlLmlzTWVzaFBob25nTWF0ZXJpYWw9ITA7dmFyIHk2PWNsYXNzIGV4dGVuZHMgcWl7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmRlZmluZXM9e1RPT046IiJ9LHRoaXMudHlwZT0iTWVzaFRvb25NYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgbmUoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5ncmFkaWVudE1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlPW5ldyBuZSgwKSx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZU1hcD1udWxsLHRoaXMuYnVtcE1hcD1udWxsLHRoaXMuYnVtcFNjYWxlPTEsdGhpcy5ub3JtYWxNYXA9bnVsbCx0aGlzLm5vcm1hbE1hcFR5cGU9c3gsdGhpcy5ub3JtYWxTY2FsZT1uZXcgTHQoMSwxKSx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXA9dC5tYXAsdGhpcy5ncmFkaWVudE1hcD10LmdyYWRpZW50TWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLmVtaXNzaXZlLmNvcHkodC5lbWlzc2l2ZSksdGhpcy5lbWlzc2l2ZU1hcD10LmVtaXNzaXZlTWFwLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9dC5lbWlzc2l2ZUludGVuc2l0eSx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzfX07eTYucHJvdG90eXBlLmlzTWVzaFRvb25NYXRlcmlhbD0hMDt2YXIgdjY9Y2xhc3MgZXh0ZW5kcyBxaXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaE5vcm1hbE1hdGVyaWFsIix0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPXN4LHRoaXMubm9ybWFsU2NhbGU9bmV3IEx0KDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLmZvZz0hMSx0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319O3Y2LnByb3RvdHlwZS5pc01lc2hOb3JtYWxNYXRlcmlhbD0hMDt2YXIgeDY9Y2xhc3MgZXh0ZW5kcyBxaXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaExhbWJlcnRNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgbmUoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5saWdodE1hcD1udWxsLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9MSx0aGlzLmFvTWFwPW51bGwsdGhpcy5hb01hcEludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmU9bmV3IG5lKDApLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlTWFwPW51bGwsdGhpcy5zcGVjdWxhck1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmVudk1hcD1udWxsLHRoaXMuY29tYmluZT1PNix0aGlzLnJlZmxlY3Rpdml0eT0xLHRoaXMucmVmcmFjdGlvblJhdGlvPS45OCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMud2lyZWZyYW1lTGluZWNhcD0icm91bmQiLHRoaXMud2lyZWZyYW1lTGluZWpvaW49InJvdW5kIix0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLm1hcD10Lm1hcCx0aGlzLmxpZ2h0TWFwPXQubGlnaHRNYXAsdGhpcy5saWdodE1hcEludGVuc2l0eT10LmxpZ2h0TWFwSW50ZW5zaXR5LHRoaXMuYW9NYXA9dC5hb01hcCx0aGlzLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHksdGhpcy5lbWlzc2l2ZS5jb3B5KHQuZW1pc3NpdmUpLHRoaXMuZW1pc3NpdmVNYXA9dC5lbWlzc2l2ZU1hcCx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PXQuZW1pc3NpdmVJbnRlbnNpdHksdGhpcy5zcGVjdWxhck1hcD10LnNwZWN1bGFyTWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmVudk1hcD10LmVudk1hcCx0aGlzLmNvbWJpbmU9dC5jb21iaW5lLHRoaXMucmVmbGVjdGl2aXR5PXQucmVmbGVjdGl2aXR5LHRoaXMucmVmcmFjdGlvblJhdGlvPXQucmVmcmFjdGlvblJhdGlvLHRoaXMud2lyZWZyYW1lPXQud2lyZWZyYW1lLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPXQud2lyZWZyYW1lTGluZXdpZHRoLHRoaXMud2lyZWZyYW1lTGluZWNhcD10LndpcmVmcmFtZUxpbmVjYXAsdGhpcy53aXJlZnJhbWVMaW5lam9pbj10LndpcmVmcmFtZUxpbmVqb2luLHRoaXN9fTt4Ni5wcm90b3R5cGUuaXNNZXNoTGFtYmVydE1hdGVyaWFsPSEwO3ZhciBiNj1jbGFzcyBleHRlbmRzIHFpe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5kZWZpbmVzPXtNQVRDQVA6IiJ9LHRoaXMudHlwZT0iTWVzaE1hdGNhcE1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBuZSgxNjc3NzIxNSksdGhpcy5tYXRjYXA9bnVsbCx0aGlzLm1hcD1udWxsLHRoaXMuYnVtcE1hcD1udWxsLHRoaXMuYnVtcFNjYWxlPTEsdGhpcy5ub3JtYWxNYXA9bnVsbCx0aGlzLm5vcm1hbE1hcFR5cGU9c3gsdGhpcy5ub3JtYWxTY2FsZT1uZXcgTHQoMSwxKSx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5mbGF0U2hhZGluZz0hMSx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZGVmaW5lcz17TUFUQ0FQOiIifSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXRjYXA9dC5tYXRjYXAsdGhpcy5tYXA9dC5tYXAsdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5mbGF0U2hhZGluZz10LmZsYXRTaGFkaW5nLHRoaXN9fTtiNi5wcm90b3R5cGUuaXNNZXNoTWF0Y2FwTWF0ZXJpYWw9ITA7dmFyIHc2PWNsYXNzIGV4dGVuZHMgR2l7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IkxpbmVEYXNoZWRNYXRlcmlhbCIsdGhpcy5zY2FsZT0xLHRoaXMuZGFzaFNpemU9Myx0aGlzLmdhcFNpemU9MSx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuc2NhbGU9dC5zY2FsZSx0aGlzLmRhc2hTaXplPXQuZGFzaFNpemUsdGhpcy5nYXBTaXplPXQuZ2FwU2l6ZSx0aGlzfX07dzYucHJvdG90eXBlLmlzTGluZURhc2hlZE1hdGVyaWFsPSEwO3ZhciB1MHI9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsU2hhZG93TWF0ZXJpYWw6bTYsU3ByaXRlTWF0ZXJpYWw6aU0sUmF3U2hhZGVyTWF0ZXJpYWw6cTAsU2hhZGVyTWF0ZXJpYWw6bGgsUG9pbnRzTWF0ZXJpYWw6aW0sTWVzaFBoeXNpY2FsTWF0ZXJpYWw6ZzYsTWVzaFN0YW5kYXJkTWF0ZXJpYWw6cE0sTWVzaFBob25nTWF0ZXJpYWw6XzYsTWVzaFRvb25NYXRlcmlhbDp5NixNZXNoTm9ybWFsTWF0ZXJpYWw6djYsTWVzaExhbWJlcnRNYXRlcmlhbDp4NixNZXNoRGVwdGhNYXRlcmlhbDplTSxNZXNoRGlzdGFuY2VNYXRlcmlhbDpyTSxNZXNoQmFzaWNNYXRlcmlhbDpzaCxNZXNoTWF0Y2FwTWF0ZXJpYWw6YjYsTGluZURhc2hlZE1hdGVyaWFsOnc2LExpbmVCYXNpY01hdGVyaWFsOkdpLE1hdGVyaWFsOnFpfSksam49e2FycmF5U2xpY2U6ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBqbi5pc1R5cGVkQXJyYXkoZSk/bmV3IGUuY29uc3RydWN0b3IoZS5zdWJhcnJheSh0LHIhPT12b2lkIDA/cjplLmxlbmd0aCkpOmUuc2xpY2UodCxyKX0sY29udmVydEFycmF5OmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4hZXx8IXImJmUuY29uc3RydWN0b3I9PT10P2U6dHlwZW9mIHQuQllURVNfUEVSX0VMRU1FTlQ9PSJudW1iZXIiP25ldyB0KGUpOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpfSxpc1R5cGVkQXJyYXk6ZnVuY3Rpb24oZSl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyhlKSYmIShlIGluc3RhbmNlb2YgRGF0YVZpZXcpfSxnZXRLZXlmcmFtZU9yZGVyOmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoaSxvKXtyZXR1cm4gZVtpXS1lW29dfWxldCByPWUubGVuZ3RoLG49bmV3IEFycmF5KHIpO2ZvcihsZXQgaT0wO2khPT1yOysraSluW2ldPWk7cmV0dXJuIG4uc29ydCh0KSxufSxzb3J0ZWRBcnJheTpmdW5jdGlvbihlLHQscil7bGV0IG49ZS5sZW5ndGgsaT1uZXcgZS5jb25zdHJ1Y3RvcihuKTtmb3IobGV0IG89MCxhPTA7YSE9PW47KytvKXtsZXQgcz1yW29dKnQ7Zm9yKGxldCBsPTA7bCE9PXQ7KytsKWlbYSsrXT1lW3MrbF19cmV0dXJuIGl9LGZsYXR0ZW5KU09OOmZ1bmN0aW9uKGUsdCxyLG4pe2xldCBpPTEsbz1lWzBdO2Zvcig7byE9PXZvaWQgMCYmb1tuXT09PXZvaWQgMDspbz1lW2krK107aWYobz09PXZvaWQgMClyZXR1cm47bGV0IGE9b1tuXTtpZihhIT09dm9pZCAwKWlmKEFycmF5LmlzQXJyYXkoYSkpZG8gYT1vW25dLGEhPT12b2lkIDAmJih0LnB1c2goby50aW1lKSxyLnB1c2guYXBwbHkocixhKSksbz1lW2krK107d2hpbGUobyE9PXZvaWQgMCk7ZWxzZSBpZihhLnRvQXJyYXkhPT12b2lkIDApZG8gYT1vW25dLGEhPT12b2lkIDAmJih0LnB1c2goby50aW1lKSxhLnRvQXJyYXkocixyLmxlbmd0aCkpLG89ZVtpKytdO3doaWxlKG8hPT12b2lkIDApO2Vsc2UgZG8gYT1vW25dLGEhPT12b2lkIDAmJih0LnB1c2goby50aW1lKSxyLnB1c2goYSkpLG89ZVtpKytdO3doaWxlKG8hPT12b2lkIDApfSxzdWJjbGlwOmZ1bmN0aW9uKGUsdCxyLG4saT0zMCl7bGV0IG89ZS5jbG9uZSgpO28ubmFtZT10O2xldCBhPVtdO2ZvcihsZXQgbD0wO2w8by50cmFja3MubGVuZ3RoOysrbCl7bGV0IGM9by50cmFja3NbbF0sdT1jLmdldFZhbHVlU2l6ZSgpLGg9W10sZj1bXTtmb3IobGV0IHA9MDtwPGMudGltZXMubGVuZ3RoOysrcCl7bGV0IGQ9Yy50aW1lc1twXSppO2lmKCEoZDxyfHxkPj1uKSl7aC5wdXNoKGMudGltZXNbcF0pO2ZvcihsZXQgZz0wO2c8dTsrK2cpZi5wdXNoKGMudmFsdWVzW3AqdStnXSl9fWgubGVuZ3RoIT09MCYmKGMudGltZXM9am4uY29udmVydEFycmF5KGgsYy50aW1lcy5jb25zdHJ1Y3RvciksYy52YWx1ZXM9am4uY29udmVydEFycmF5KGYsYy52YWx1ZXMuY29uc3RydWN0b3IpLGEucHVzaChjKSl9by50cmFja3M9YTtsZXQgcz0xLzA7Zm9yKGxldCBsPTA7bDxvLnRyYWNrcy5sZW5ndGg7KytsKXM+by50cmFja3NbbF0udGltZXNbMF0mJihzPW8udHJhY2tzW2xdLnRpbWVzWzBdKTtmb3IobGV0IGw9MDtsPG8udHJhY2tzLmxlbmd0aDsrK2wpby50cmFja3NbbF0uc2hpZnQoLTEqcyk7cmV0dXJuIG8ucmVzZXREdXJhdGlvbigpLG99LG1ha2VDbGlwQWRkaXRpdmU6ZnVuY3Rpb24oZSx0PTAscj1lLG49MzApe248PTAmJihuPTMwKTtsZXQgaT1yLnRyYWNrcy5sZW5ndGgsbz10L247Zm9yKGxldCBhPTA7YTxpOysrYSl7bGV0IHM9ci50cmFja3NbYV0sbD1zLlZhbHVlVHlwZU5hbWU7aWYobD09PSJib29sInx8bD09PSJzdHJpbmciKWNvbnRpbnVlO2xldCBjPWUudHJhY2tzLmZpbmQoZnVuY3Rpb24oeSl7cmV0dXJuIHkubmFtZT09PXMubmFtZSYmeS5WYWx1ZVR5cGVOYW1lPT09bH0pO2lmKGM9PT12b2lkIDApY29udGludWU7bGV0IHU9MCxoPXMuZ2V0VmFsdWVTaXplKCk7cy5jcmVhdGVJbnRlcnBvbGFudC5pc0ludGVycG9sYW50RmFjdG9yeU1ldGhvZEdMVEZDdWJpY1NwbGluZSYmKHU9aC8zKTtsZXQgZj0wLHA9Yy5nZXRWYWx1ZVNpemUoKTtjLmNyZWF0ZUludGVycG9sYW50LmlzSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kR0xURkN1YmljU3BsaW5lJiYoZj1wLzMpO2xldCBkPXMudGltZXMubGVuZ3RoLTEsZztpZihvPD1zLnRpbWVzWzBdKXtsZXQgeT11LHg9aC11O2c9am4uYXJyYXlTbGljZShzLnZhbHVlcyx5LHgpfWVsc2UgaWYobz49cy50aW1lc1tkXSl7bGV0IHk9ZCpoK3UseD15K2gtdTtnPWpuLmFycmF5U2xpY2Uocy52YWx1ZXMseSx4KX1lbHNle2xldCB5PXMuY3JlYXRlSW50ZXJwb2xhbnQoKSx4PXUsYj1oLXU7eS5ldmFsdWF0ZShvKSxnPWpuLmFycmF5U2xpY2UoeS5yZXN1bHRCdWZmZXIseCxiKX1sPT09InF1YXRlcm5pb24iJiZuZXcgeWkoKS5mcm9tQXJyYXkoZykubm9ybWFsaXplKCkuY29uanVnYXRlKCkudG9BcnJheShnKTtsZXQgXz1jLnRpbWVzLmxlbmd0aDtmb3IobGV0IHk9MDt5PF87Kyt5KXtsZXQgeD15KnArZjtpZihsPT09InF1YXRlcm5pb24iKXlpLm11bHRpcGx5UXVhdGVybmlvbnNGbGF0KGMudmFsdWVzLHgsZywwLGMudmFsdWVzLHgpO2Vsc2V7bGV0IGI9cC1mKjI7Zm9yKGxldCBTPTA7UzxiOysrUyljLnZhbHVlc1t4K1NdLT1nW1NdfX19cmV0dXJuIGUuYmxlbmRNb2RlPWtodCxlfX0sZmg9Y2xhc3N7Y29uc3RydWN0b3IodCxyLG4saSl7dGhpcy5wYXJhbWV0ZXJQb3NpdGlvbnM9dCx0aGlzLl9jYWNoZWRJbmRleD0wLHRoaXMucmVzdWx0QnVmZmVyPWkhPT12b2lkIDA/aTpuZXcgci5jb25zdHJ1Y3RvcihuKSx0aGlzLnNhbXBsZVZhbHVlcz1yLHRoaXMudmFsdWVTaXplPW4sdGhpcy5zZXR0aW5ncz1udWxsLHRoaXMuRGVmYXVsdFNldHRpbmdzXz17fX1ldmFsdWF0ZSh0KXtsZXQgcj10aGlzLnBhcmFtZXRlclBvc2l0aW9ucyxuPXRoaXMuX2NhY2hlZEluZGV4LGk9cltuXSxvPXJbbi0xXTt0OntlOntsZXQgYTtyOntuOmlmKCEodDxpKSl7Zm9yKGxldCBzPW4rMjs7KXtpZihpPT09dm9pZCAwKXtpZih0PG8pYnJlYWsgbjtyZXR1cm4gbj1yLmxlbmd0aCx0aGlzLl9jYWNoZWRJbmRleD1uLHRoaXMuYWZ0ZXJFbmRfKG4tMSx0LG8pfWlmKG49PT1zKWJyZWFrO2lmKG89aSxpPXJbKytuXSx0PGkpYnJlYWsgZX1hPXIubGVuZ3RoO2JyZWFrIHJ9aWYoISh0Pj1vKSl7bGV0IHM9clsxXTt0PHMmJihuPTIsbz1zKTtmb3IobGV0IGw9bi0yOzspe2lmKG89PT12b2lkIDApcmV0dXJuIHRoaXMuX2NhY2hlZEluZGV4PTAsdGhpcy5iZWZvcmVTdGFydF8oMCx0LGkpO2lmKG49PT1sKWJyZWFrO2lmKGk9byxvPXJbLS1uLTFdLHQ+PW8pYnJlYWsgZX1hPW4sbj0wO2JyZWFrIHJ9YnJlYWsgdH1mb3IoO248YTspe2xldCBzPW4rYT4+PjE7dDxyW3NdP2E9czpuPXMrMX1pZihpPXJbbl0sbz1yW24tMV0sbz09PXZvaWQgMClyZXR1cm4gdGhpcy5fY2FjaGVkSW5kZXg9MCx0aGlzLmJlZm9yZVN0YXJ0XygwLHQsaSk7aWYoaT09PXZvaWQgMClyZXR1cm4gbj1yLmxlbmd0aCx0aGlzLl9jYWNoZWRJbmRleD1uLHRoaXMuYWZ0ZXJFbmRfKG4tMSxvLHQpfXRoaXMuX2NhY2hlZEluZGV4PW4sdGhpcy5pbnRlcnZhbENoYW5nZWRfKG4sbyxpKX1yZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZV8obixvLHQsaSl9Z2V0U2V0dGluZ3NfKCl7cmV0dXJuIHRoaXMuc2V0dGluZ3N8fHRoaXMuRGVmYXVsdFNldHRpbmdzX31jb3B5U2FtcGxlVmFsdWVfKHQpe2xldCByPXRoaXMucmVzdWx0QnVmZmVyLG49dGhpcy5zYW1wbGVWYWx1ZXMsaT10aGlzLnZhbHVlU2l6ZSxvPXQqaTtmb3IobGV0IGE9MDthIT09aTsrK2EpclthXT1uW28rYV07cmV0dXJuIHJ9aW50ZXJwb2xhdGVfKCl7dGhyb3cgbmV3IEVycm9yKCJjYWxsIHRvIGFic3RyYWN0IG1ldGhvZCIpfWludGVydmFsQ2hhbmdlZF8oKXt9fTtmaC5wcm90b3R5cGUuYmVmb3JlU3RhcnRfPWZoLnByb3RvdHlwZS5jb3B5U2FtcGxlVmFsdWVfO2ZoLnByb3RvdHlwZS5hZnRlckVuZF89ZmgucHJvdG90eXBlLmNvcHlTYW1wbGVWYWx1ZV87dmFyIFNVPWNsYXNzIGV4dGVuZHMgZmh7Y29uc3RydWN0b3IodCxyLG4saSl7c3VwZXIodCxyLG4saSksdGhpcy5fd2VpZ2h0UHJldj0tMCx0aGlzLl9vZmZzZXRQcmV2PS0wLHRoaXMuX3dlaWdodE5leHQ9LTAsdGhpcy5fb2Zmc2V0TmV4dD0tMCx0aGlzLkRlZmF1bHRTZXR0aW5nc189e2VuZGluZ1N0YXJ0OlQxLGVuZGluZ0VuZDpUMX19aW50ZXJ2YWxDaGFuZ2VkXyh0LHIsbil7bGV0IGk9dGhpcy5wYXJhbWV0ZXJQb3NpdGlvbnMsbz10LTIsYT10KzEscz1pW29dLGw9aVthXTtpZihzPT09dm9pZCAwKXN3aXRjaCh0aGlzLmdldFNldHRpbmdzXygpLmVuZGluZ1N0YXJ0KXtjYXNlIEMxOm89dCxzPTIqci1uO2JyZWFrO2Nhc2UgSlA6bz1pLmxlbmd0aC0yLHM9citpW29dLWlbbysxXTticmVhaztkZWZhdWx0Om89dCxzPW59aWYobD09PXZvaWQgMClzd2l0Y2godGhpcy5nZXRTZXR0aW5nc18oKS5lbmRpbmdFbmQpe2Nhc2UgQzE6YT10LGw9MipuLXI7YnJlYWs7Y2FzZSBKUDphPTEsbD1uK2lbMV0taVswXTticmVhaztkZWZhdWx0OmE9dC0xLGw9cn1sZXQgYz0obi1yKSouNSx1PXRoaXMudmFsdWVTaXplO3RoaXMuX3dlaWdodFByZXY9Yy8oci1zKSx0aGlzLl93ZWlnaHROZXh0PWMvKGwtbiksdGhpcy5fb2Zmc2V0UHJldj1vKnUsdGhpcy5fb2Zmc2V0TmV4dD1hKnV9aW50ZXJwb2xhdGVfKHQscixuLGkpe2xldCBvPXRoaXMucmVzdWx0QnVmZmVyLGE9dGhpcy5zYW1wbGVWYWx1ZXMscz10aGlzLnZhbHVlU2l6ZSxsPXQqcyxjPWwtcyx1PXRoaXMuX29mZnNldFByZXYsaD10aGlzLl9vZmZzZXROZXh0LGY9dGhpcy5fd2VpZ2h0UHJldixwPXRoaXMuX3dlaWdodE5leHQsZD0obi1yKS8oaS1yKSxnPWQqZCxfPWcqZCx5PS1mKl8rMipmKmctZipkLHg9KDErZikqXysoLTEuNS0yKmYpKmcrKC0uNStmKSpkKzEsYj0oLTEtcCkqXysoMS41K3ApKmcrLjUqZCxTPXAqXy1wKmc7Zm9yKGxldCBDPTA7QyE9PXM7KytDKW9bQ109eSphW3UrQ10reCphW2MrQ10rYiphW2wrQ10rUyphW2grQ107cmV0dXJuIG99fSxTNj1jbGFzcyBleHRlbmRzIGZoe2NvbnN0cnVjdG9yKHQscixuLGkpe3N1cGVyKHQscixuLGkpfWludGVycG9sYXRlXyh0LHIsbixpKXtsZXQgbz10aGlzLnJlc3VsdEJ1ZmZlcixhPXRoaXMuc2FtcGxlVmFsdWVzLHM9dGhpcy52YWx1ZVNpemUsbD10KnMsYz1sLXMsdT0obi1yKS8oaS1yKSxoPTEtdTtmb3IobGV0IGY9MDtmIT09czsrK2Ypb1tmXT1hW2MrZl0qaCthW2wrZl0qdTtyZXR1cm4gb319LE1VPWNsYXNzIGV4dGVuZHMgZmh7Y29uc3RydWN0b3IodCxyLG4saSl7c3VwZXIodCxyLG4saSl9aW50ZXJwb2xhdGVfKHQpe3JldHVybiB0aGlzLmNvcHlTYW1wbGVWYWx1ZV8odC0xKX19LE9sPWNsYXNze2NvbnN0cnVjdG9yKHQscixuLGkpe2lmKHQ9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiB0cmFjayBuYW1lIGlzIHVuZGVmaW5lZCIpO2lmKHI9PT12b2lkIDB8fHIubGVuZ3RoPT09MCl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IG5vIGtleWZyYW1lcyBpbiB0cmFjayBuYW1lZCAiK3QpO3RoaXMubmFtZT10LHRoaXMudGltZXM9am4uY29udmVydEFycmF5KHIsdGhpcy5UaW1lQnVmZmVyVHlwZSksdGhpcy52YWx1ZXM9am4uY29udmVydEFycmF5KG4sdGhpcy5WYWx1ZUJ1ZmZlclR5cGUpLHRoaXMuc2V0SW50ZXJwb2xhdGlvbihpfHx0aGlzLkRlZmF1bHRJbnRlcnBvbGF0aW9uKX1zdGF0aWMgdG9KU09OKHQpe2xldCByPXQuY29uc3RydWN0b3IsbjtpZihyLnRvSlNPTiE9PXRoaXMudG9KU09OKW49ci50b0pTT04odCk7ZWxzZXtuPXtuYW1lOnQubmFtZSx0aW1lczpqbi5jb252ZXJ0QXJyYXkodC50aW1lcyxBcnJheSksdmFsdWVzOmpuLmNvbnZlcnRBcnJheSh0LnZhbHVlcyxBcnJheSl9O2xldCBpPXQuZ2V0SW50ZXJwb2xhdGlvbigpO2khPT10LkRlZmF1bHRJbnRlcnBvbGF0aW9uJiYobi5pbnRlcnBvbGF0aW9uPWkpfXJldHVybiBuLnR5cGU9dC5WYWx1ZVR5cGVOYW1lLG59SW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kRGlzY3JldGUodCl7cmV0dXJuIG5ldyBNVSh0aGlzLnRpbWVzLHRoaXMudmFsdWVzLHRoaXMuZ2V0VmFsdWVTaXplKCksdCl9SW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyKHQpe3JldHVybiBuZXcgUzYodGhpcy50aW1lcyx0aGlzLnZhbHVlcyx0aGlzLmdldFZhbHVlU2l6ZSgpLHQpfUludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aCh0KXtyZXR1cm4gbmV3IFNVKHRoaXMudGltZXMsdGhpcy52YWx1ZXMsdGhpcy5nZXRWYWx1ZVNpemUoKSx0KX1zZXRJbnRlcnBvbGF0aW9uKHQpe2xldCByO3N3aXRjaCh0KXtjYXNlIEtQOnI9dGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZTticmVhaztjYXNlIFpQOnI9dGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXI7YnJlYWs7Y2FzZSByVTpyPXRoaXMuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoO2JyZWFrfWlmKHI9PT12b2lkIDApe2xldCBuPSJ1bnN1cHBvcnRlZCBpbnRlcnBvbGF0aW9uIGZvciAiK3RoaXMuVmFsdWVUeXBlTmFtZSsiIGtleWZyYW1lIHRyYWNrIG5hbWVkICIrdGhpcy5uYW1lO2lmKHRoaXMuY3JlYXRlSW50ZXJwb2xhbnQ9PT12b2lkIDApaWYodCE9PXRoaXMuRGVmYXVsdEludGVycG9sYXRpb24pdGhpcy5zZXRJbnRlcnBvbGF0aW9uKHRoaXMuRGVmYXVsdEludGVycG9sYXRpb24pO2Vsc2UgdGhyb3cgbmV3IEVycm9yKG4pO3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLktleWZyYW1lVHJhY2s6IixuKSx0aGlzfXJldHVybiB0aGlzLmNyZWF0ZUludGVycG9sYW50PXIsdGhpc31nZXRJbnRlcnBvbGF0aW9uKCl7c3dpdGNoKHRoaXMuY3JlYXRlSW50ZXJwb2xhbnQpe2Nhc2UgdGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZTpyZXR1cm4gS1A7Y2FzZSB0aGlzLkludGVycG9sYW50RmFjdG9yeU1ldGhvZExpbmVhcjpyZXR1cm4gWlA7Y2FzZSB0aGlzLkludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aDpyZXR1cm4gclV9fWdldFZhbHVlU2l6ZSgpe3JldHVybiB0aGlzLnZhbHVlcy5sZW5ndGgvdGhpcy50aW1lcy5sZW5ndGh9c2hpZnQodCl7aWYodCE9PTApe2xldCByPXRoaXMudGltZXM7Zm9yKGxldCBuPTAsaT1yLmxlbmd0aDtuIT09aTsrK24pcltuXSs9dH1yZXR1cm4gdGhpc31zY2FsZSh0KXtpZih0IT09MSl7bGV0IHI9dGhpcy50aW1lcztmb3IobGV0IG49MCxpPXIubGVuZ3RoO24hPT1pOysrbilyW25dKj10fXJldHVybiB0aGlzfXRyaW0odCxyKXtsZXQgbj10aGlzLnRpbWVzLGk9bi5sZW5ndGgsbz0wLGE9aS0xO2Zvcig7byE9PWkmJm5bb108dDspKytvO2Zvcig7YSE9PS0xJiZuW2FdPnI7KS0tYTtpZigrK2EsbyE9PTB8fGEhPT1pKXtvPj1hJiYoYT1NYXRoLm1heChhLDEpLG89YS0xKTtsZXQgcz10aGlzLmdldFZhbHVlU2l6ZSgpO3RoaXMudGltZXM9am4uYXJyYXlTbGljZShuLG8sYSksdGhpcy52YWx1ZXM9am4uYXJyYXlTbGljZSh0aGlzLnZhbHVlcyxvKnMsYSpzKX1yZXR1cm4gdGhpc312YWxpZGF0ZSgpe2xldCB0PSEwLHI9dGhpcy5nZXRWYWx1ZVNpemUoKTtyLU1hdGguZmxvb3IocikhPT0wJiYoY29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogSW52YWxpZCB2YWx1ZSBzaXplIGluIHRyYWNrLiIsdGhpcyksdD0hMSk7bGV0IG49dGhpcy50aW1lcyxpPXRoaXMudmFsdWVzLG89bi5sZW5ndGg7bz09PTAmJihjb25zb2xlLmVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBUcmFjayBpcyBlbXB0eS4iLHRoaXMpLHQ9ITEpO2xldCBhPW51bGw7Zm9yKGxldCBzPTA7cyE9PW87cysrKXtsZXQgbD1uW3NdO2lmKHR5cGVvZiBsPT0ibnVtYmVyIiYmaXNOYU4obCkpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IFRpbWUgaXMgbm90IGEgdmFsaWQgbnVtYmVyLiIsdGhpcyxzLGwpLHQ9ITE7YnJlYWt9aWYoYSE9PW51bGwmJmE+bCl7Y29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogT3V0IG9mIG9yZGVyIGtleXMuIix0aGlzLHMsbCxhKSx0PSExO2JyZWFrfWE9bH1pZihpIT09dm9pZCAwJiZqbi5pc1R5cGVkQXJyYXkoaSkpZm9yKGxldCBzPTAsbD1pLmxlbmd0aDtzIT09bDsrK3Mpe2xldCBjPWlbc107aWYoaXNOYU4oYykpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IFZhbHVlIGlzIG5vdCBhIHZhbGlkIG51bWJlci4iLHRoaXMscyxjKSx0PSExO2JyZWFrfX1yZXR1cm4gdH1vcHRpbWl6ZSgpe2xldCB0PWpuLmFycmF5U2xpY2UodGhpcy50aW1lcykscj1qbi5hcnJheVNsaWNlKHRoaXMudmFsdWVzKSxuPXRoaXMuZ2V0VmFsdWVTaXplKCksaT10aGlzLmdldEludGVycG9sYXRpb24oKT09PXJVLG89dC5sZW5ndGgtMSxhPTE7Zm9yKGxldCBzPTE7czxvOysrcyl7bGV0IGw9ITEsYz10W3NdLHU9dFtzKzFdO2lmKGMhPT11JiYocyE9PTF8fGMhPT10WzBdKSlpZihpKWw9ITA7ZWxzZXtsZXQgaD1zKm4sZj1oLW4scD1oK247Zm9yKGxldCBkPTA7ZCE9PW47KytkKXtsZXQgZz1yW2grZF07aWYoZyE9PXJbZitkXXx8ZyE9PXJbcCtkXSl7bD0hMDticmVha319fWlmKGwpe2lmKHMhPT1hKXt0W2FdPXRbc107bGV0IGg9cypuLGY9YSpuO2ZvcihsZXQgcD0wO3AhPT1uOysrcClyW2YrcF09cltoK3BdfSsrYX19aWYobz4wKXt0W2FdPXRbb107Zm9yKGxldCBzPW8qbixsPWEqbixjPTA7YyE9PW47KytjKXJbbCtjXT1yW3MrY107KythfXJldHVybiBhIT09dC5sZW5ndGg/KHRoaXMudGltZXM9am4uYXJyYXlTbGljZSh0LDAsYSksdGhpcy52YWx1ZXM9am4uYXJyYXlTbGljZShyLDAsYSpuKSk6KHRoaXMudGltZXM9dCx0aGlzLnZhbHVlcz1yKSx0aGlzfWNsb25lKCl7bGV0IHQ9am4uYXJyYXlTbGljZSh0aGlzLnRpbWVzLDApLHI9am4uYXJyYXlTbGljZSh0aGlzLnZhbHVlcywwKSxuPXRoaXMuY29uc3RydWN0b3IsaT1uZXcgbih0aGlzLm5hbWUsdCxyKTtyZXR1cm4gaS5jcmVhdGVJbnRlcnBvbGFudD10aGlzLmNyZWF0ZUludGVycG9sYW50LGl9fTtPbC5wcm90b3R5cGUuVGltZUJ1ZmZlclR5cGU9RmxvYXQzMkFycmF5O09sLnByb3RvdHlwZS5WYWx1ZUJ1ZmZlclR5cGU9RmxvYXQzMkFycmF5O09sLnByb3RvdHlwZS5EZWZhdWx0SW50ZXJwb2xhdGlvbj1aUDt2YXIgc209Y2xhc3MgZXh0ZW5kcyBPbHt9O3NtLnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJib29sIjtzbS5wcm90b3R5cGUuVmFsdWVCdWZmZXJUeXBlPUFycmF5O3NtLnByb3RvdHlwZS5EZWZhdWx0SW50ZXJwb2xhdGlvbj1LUDtzbS5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyPXZvaWQgMDtzbS5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoPXZvaWQgMDt2YXIgTTY9Y2xhc3MgZXh0ZW5kcyBPbHt9O002LnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJjb2xvciI7dmFyIEoxPWNsYXNzIGV4dGVuZHMgT2x7fTtKMS5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0ibnVtYmVyIjt2YXIgRVU9Y2xhc3MgZXh0ZW5kcyBmaHtjb25zdHJ1Y3Rvcih0LHIsbixpKXtzdXBlcih0LHIsbixpKX1pbnRlcnBvbGF0ZV8odCxyLG4saSl7bGV0IG89dGhpcy5yZXN1bHRCdWZmZXIsYT10aGlzLnNhbXBsZVZhbHVlcyxzPXRoaXMudmFsdWVTaXplLGw9KG4tcikvKGktciksYz10KnM7Zm9yKGxldCB1PWMrcztjIT09dTtjKz00KXlpLnNsZXJwRmxhdChvLDAsYSxjLXMsYSxjLGwpO3JldHVybiBvfX0sJDA9Y2xhc3MgZXh0ZW5kcyBPbHtJbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXIodCl7cmV0dXJuIG5ldyBFVSh0aGlzLnRpbWVzLHRoaXMudmFsdWVzLHRoaXMuZ2V0VmFsdWVTaXplKCksdCl9fTskMC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0icXVhdGVybmlvbiI7JDAucHJvdG90eXBlLkRlZmF1bHRJbnRlcnBvbGF0aW9uPVpQOyQwLnByb3RvdHlwZS5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGg9dm9pZCAwO3ZhciBsbT1jbGFzcyBleHRlbmRzIE9se307bG0ucHJvdG90eXBlLlZhbHVlVHlwZU5hbWU9InN0cmluZyI7bG0ucHJvdG90eXBlLlZhbHVlQnVmZmVyVHlwZT1BcnJheTtsbS5wcm90b3R5cGUuRGVmYXVsdEludGVycG9sYXRpb249S1A7bG0ucHJvdG90eXBlLkludGVycG9sYW50RmFjdG9yeU1ldGhvZExpbmVhcj12b2lkIDA7bG0ucHJvdG90eXBlLkludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aD12b2lkIDA7dmFyIFExPWNsYXNzIGV4dGVuZHMgT2x7fTtRMS5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0idmVjdG9yIjt2YXIgdHg9Y2xhc3N7Y29uc3RydWN0b3IodCxyPS0xLG4saT0kVSl7dGhpcy5uYW1lPXQsdGhpcy50cmFja3M9bix0aGlzLmR1cmF0aW9uPXIsdGhpcy5ibGVuZE1vZGU9aSx0aGlzLnV1aWQ9RGwoKSx0aGlzLmR1cmF0aW9uPDAmJnRoaXMucmVzZXREdXJhdGlvbigpfXN0YXRpYyBwYXJzZSh0KXtsZXQgcj1bXSxuPXQudHJhY2tzLGk9MS8odC5mcHN8fDEpO2ZvcihsZXQgYT0wLHM9bi5sZW5ndGg7YSE9PXM7KythKXIucHVzaChmMHIoblthXSkuc2NhbGUoaSkpO2xldCBvPW5ldyB0aGlzKHQubmFtZSx0LmR1cmF0aW9uLHIsdC5ibGVuZE1vZGUpO3JldHVybiBvLnV1aWQ9dC51dWlkLG99c3RhdGljIHRvSlNPTih0KXtsZXQgcj1bXSxuPXQudHJhY2tzLGk9e25hbWU6dC5uYW1lLGR1cmF0aW9uOnQuZHVyYXRpb24sdHJhY2tzOnIsdXVpZDp0LnV1aWQsYmxlbmRNb2RlOnQuYmxlbmRNb2RlfTtmb3IobGV0IG89MCxhPW4ubGVuZ3RoO28hPT1hOysrbylyLnB1c2goT2wudG9KU09OKG5bb10pKTtyZXR1cm4gaX1zdGF0aWMgQ3JlYXRlRnJvbU1vcnBoVGFyZ2V0U2VxdWVuY2UodCxyLG4saSl7bGV0IG89ci5sZW5ndGgsYT1bXTtmb3IobGV0IHM9MDtzPG87cysrKXtsZXQgbD1bXSxjPVtdO2wucHVzaCgocytvLTEpJW8scywocysxKSVvKSxjLnB1c2goMCwxLDApO2xldCB1PWpuLmdldEtleWZyYW1lT3JkZXIobCk7bD1qbi5zb3J0ZWRBcnJheShsLDEsdSksYz1qbi5zb3J0ZWRBcnJheShjLDEsdSksIWkmJmxbMF09PT0wJiYobC5wdXNoKG8pLGMucHVzaChjWzBdKSksYS5wdXNoKG5ldyBKMSgiLm1vcnBoVGFyZ2V0SW5mbHVlbmNlc1siK3Jbc10ubmFtZSsiXSIsbCxjKS5zY2FsZSgxL24pKX1yZXR1cm4gbmV3IHRoaXModCwtMSxhKX1zdGF0aWMgZmluZEJ5TmFtZSh0LHIpe2xldCBuPXQ7aWYoIUFycmF5LmlzQXJyYXkodCkpe2xldCBpPXQ7bj1pLmdlb21ldHJ5JiZpLmdlb21ldHJ5LmFuaW1hdGlvbnN8fGkuYW5pbWF0aW9uc31mb3IobGV0IGk9MDtpPG4ubGVuZ3RoO2krKylpZihuW2ldLm5hbWU9PT1yKXJldHVybiBuW2ldO3JldHVybiBudWxsfXN0YXRpYyBDcmVhdGVDbGlwc0Zyb21Nb3JwaFRhcmdldFNlcXVlbmNlcyh0LHIsbil7bGV0IGk9e30sbz0vXihbXHctXSo/KShbXGRdKykkLztmb3IobGV0IHM9MCxsPXQubGVuZ3RoO3M8bDtzKyspe2xldCBjPXRbc10sdT1jLm5hbWUubWF0Y2gobyk7aWYodSYmdS5sZW5ndGg+MSl7bGV0IGg9dVsxXSxmPWlbaF07Znx8KGlbaF09Zj1bXSksZi5wdXNoKGMpfX1sZXQgYT1bXTtmb3IobGV0IHMgaW4gaSlhLnB1c2godGhpcy5DcmVhdGVGcm9tTW9ycGhUYXJnZXRTZXF1ZW5jZShzLGlbc10scixuKSk7cmV0dXJuIGF9c3RhdGljIHBhcnNlQW5pbWF0aW9uKHQscil7aWYoIXQpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIlRIUkVFLkFuaW1hdGlvbkNsaXA6IE5vIGFuaW1hdGlvbiBpbiBKU09OTG9hZGVyIGRhdGEuIiksbnVsbDtsZXQgbj1mdW5jdGlvbihoLGYscCxkLGcpe2lmKHAubGVuZ3RoIT09MCl7bGV0IF89W10seT1bXTtqbi5mbGF0dGVuSlNPTihwLF8seSxkKSxfLmxlbmd0aCE9PTAmJmcucHVzaChuZXcgaChmLF8seSkpfX0saT1bXSxvPXQubmFtZXx8ImRlZmF1bHQiLGE9dC5mcHN8fDMwLHM9dC5ibGVuZE1vZGUsbD10Lmxlbmd0aHx8LTEsYz10LmhpZXJhcmNoeXx8W107Zm9yKGxldCBoPTA7aDxjLmxlbmd0aDtoKyspe2xldCBmPWNbaF0ua2V5cztpZighKCFmfHxmLmxlbmd0aD09PTApKWlmKGZbMF0ubW9ycGhUYXJnZXRzKXtsZXQgcD17fSxkO2ZvcihkPTA7ZDxmLmxlbmd0aDtkKyspaWYoZltkXS5tb3JwaFRhcmdldHMpZm9yKGxldCBnPTA7ZzxmW2RdLm1vcnBoVGFyZ2V0cy5sZW5ndGg7ZysrKXBbZltkXS5tb3JwaFRhcmdldHNbZ11dPS0xO2ZvcihsZXQgZyBpbiBwKXtsZXQgXz1bXSx5PVtdO2ZvcihsZXQgeD0wO3ghPT1mW2RdLm1vcnBoVGFyZ2V0cy5sZW5ndGg7Kyt4KXtsZXQgYj1mW2RdO18ucHVzaChiLnRpbWUpLHkucHVzaChiLm1vcnBoVGFyZ2V0PT09Zz8xOjApfWkucHVzaChuZXcgSjEoIi5tb3JwaFRhcmdldEluZmx1ZW5jZVsiK2crIl0iLF8seSkpfWw9cC5sZW5ndGgqKGF8fDEpfWVsc2V7bGV0IHA9Ii5ib25lc1siK3JbaF0ubmFtZSsiXSI7bihRMSxwKyIucG9zaXRpb24iLGYsInBvcyIsaSksbigkMCxwKyIucXVhdGVybmlvbiIsZiwicm90IixpKSxuKFExLHArIi5zY2FsZSIsZiwic2NsIixpKX19cmV0dXJuIGkubGVuZ3RoPT09MD9udWxsOm5ldyB0aGlzKG8sbCxpLHMpfXJlc2V0RHVyYXRpb24oKXtsZXQgdD10aGlzLnRyYWNrcyxyPTA7Zm9yKGxldCBuPTAsaT10Lmxlbmd0aDtuIT09aTsrK24pe2xldCBvPXRoaXMudHJhY2tzW25dO3I9TWF0aC5tYXgocixvLnRpbWVzW28udGltZXMubGVuZ3RoLTFdKX1yZXR1cm4gdGhpcy5kdXJhdGlvbj1yLHRoaXN9dHJpbSgpe2ZvcihsZXQgdD0wO3Q8dGhpcy50cmFja3MubGVuZ3RoO3QrKyl0aGlzLnRyYWNrc1t0XS50cmltKDAsdGhpcy5kdXJhdGlvbik7cmV0dXJuIHRoaXN9dmFsaWRhdGUoKXtsZXQgdD0hMDtmb3IobGV0IHI9MDtyPHRoaXMudHJhY2tzLmxlbmd0aDtyKyspdD10JiZ0aGlzLnRyYWNrc1tyXS52YWxpZGF0ZSgpO3JldHVybiB0fW9wdGltaXplKCl7Zm9yKGxldCB0PTA7dDx0aGlzLnRyYWNrcy5sZW5ndGg7dCsrKXRoaXMudHJhY2tzW3RdLm9wdGltaXplKCk7cmV0dXJuIHRoaXN9Y2xvbmUoKXtsZXQgdD1bXTtmb3IobGV0IHI9MDtyPHRoaXMudHJhY2tzLmxlbmd0aDtyKyspdC5wdXNoKHRoaXMudHJhY2tzW3JdLmNsb25lKCkpO3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLm5hbWUsdGhpcy5kdXJhdGlvbix0LHRoaXMuYmxlbmRNb2RlKX10b0pTT04oKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci50b0pTT04odGhpcyl9fTtmdW5jdGlvbiBoMHIoZSl7c3dpdGNoKGUudG9Mb3dlckNhc2UoKSl7Y2FzZSJzY2FsYXIiOmNhc2UiZG91YmxlIjpjYXNlImZsb2F0IjpjYXNlIm51bWJlciI6Y2FzZSJpbnRlZ2VyIjpyZXR1cm4gSjE7Y2FzZSJ2ZWN0b3IiOmNhc2UidmVjdG9yMiI6Y2FzZSJ2ZWN0b3IzIjpjYXNlInZlY3RvcjQiOnJldHVybiBRMTtjYXNlImNvbG9yIjpyZXR1cm4gTTY7Y2FzZSJxdWF0ZXJuaW9uIjpyZXR1cm4gJDA7Y2FzZSJib29sIjpjYXNlImJvb2xlYW4iOnJldHVybiBzbTtjYXNlInN0cmluZyI6cmV0dXJuIGxtfXRocm93IG5ldyBFcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogVW5zdXBwb3J0ZWQgdHlwZU5hbWU6ICIrZSl9ZnVuY3Rpb24gZjByKGUpe2lmKGUudHlwZT09PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IHRyYWNrIHR5cGUgdW5kZWZpbmVkLCBjYW4gbm90IHBhcnNlIik7bGV0IHQ9aDByKGUudHlwZSk7aWYoZS50aW1lcz09PXZvaWQgMCl7bGV0IHI9W10sbj1bXTtqbi5mbGF0dGVuSlNPTihlLmtleXMscixuLCJ2YWx1ZSIpLGUudGltZXM9cixlLnZhbHVlcz1ufXJldHVybiB0LnBhcnNlIT09dm9pZCAwP3QucGFyc2UoZSk6bmV3IHQoZS5uYW1lLGUudGltZXMsZS52YWx1ZXMsZS5pbnRlcnBvbGF0aW9uKX12YXIgZXg9e2VuYWJsZWQ6ITEsZmlsZXM6e30sYWRkOmZ1bmN0aW9uKGUsdCl7dGhpcy5lbmFibGVkIT09ITEmJih0aGlzLmZpbGVzW2VdPXQpfSxnZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5lbmFibGVkIT09ITEpcmV0dXJuIHRoaXMuZmlsZXNbZV19LHJlbW92ZTpmdW5jdGlvbihlKXtkZWxldGUgdGhpcy5maWxlc1tlXX0sY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLmZpbGVzPXt9fX0sRTY9Y2xhc3N7Y29uc3RydWN0b3IodCxyLG4pe2xldCBpPXRoaXMsbz0hMSxhPTAscz0wLGwsYz1bXTt0aGlzLm9uU3RhcnQ9dm9pZCAwLHRoaXMub25Mb2FkPXQsdGhpcy5vblByb2dyZXNzPXIsdGhpcy5vbkVycm9yPW4sdGhpcy5pdGVtU3RhcnQ9ZnVuY3Rpb24odSl7cysrLG89PT0hMSYmaS5vblN0YXJ0IT09dm9pZCAwJiZpLm9uU3RhcnQodSxhLHMpLG89ITB9LHRoaXMuaXRlbUVuZD1mdW5jdGlvbih1KXthKyssaS5vblByb2dyZXNzIT09dm9pZCAwJiZpLm9uUHJvZ3Jlc3ModSxhLHMpLGE9PT1zJiYobz0hMSxpLm9uTG9hZCE9PXZvaWQgMCYmaS5vbkxvYWQoKSl9LHRoaXMuaXRlbUVycm9yPWZ1bmN0aW9uKHUpe2kub25FcnJvciE9PXZvaWQgMCYmaS5vbkVycm9yKHUpfSx0aGlzLnJlc29sdmVVUkw9ZnVuY3Rpb24odSl7cmV0dXJuIGw/bCh1KTp1fSx0aGlzLnNldFVSTE1vZGlmaWVyPWZ1bmN0aW9uKHUpe3JldHVybiBsPXUsdGhpc30sdGhpcy5hZGRIYW5kbGVyPWZ1bmN0aW9uKHUsaCl7cmV0dXJuIGMucHVzaCh1LGgpLHRoaXN9LHRoaXMucmVtb3ZlSGFuZGxlcj1mdW5jdGlvbih1KXtsZXQgaD1jLmluZGV4T2YodSk7cmV0dXJuIGghPT0tMSYmYy5zcGxpY2UoaCwyKSx0aGlzfSx0aGlzLmdldEhhbmRsZXI9ZnVuY3Rpb24odSl7Zm9yKGxldCBoPTAsZj1jLmxlbmd0aDtoPGY7aCs9Mil7bGV0IHA9Y1toXSxkPWNbaCsxXTtpZihwLmdsb2JhbCYmKHAubGFzdEluZGV4PTApLHAudGVzdCh1KSlyZXR1cm4gZH1yZXR1cm4gbnVsbH19fSxpcGU9bmV3IEU2LGVhPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMubWFuYWdlcj10IT09dm9pZCAwP3Q6aXBlLHRoaXMuY3Jvc3NPcmlnaW49ImFub255bW91cyIsdGhpcy53aXRoQ3JlZGVudGlhbHM9ITEsdGhpcy5wYXRoPSIiLHRoaXMucmVzb3VyY2VQYXRoPSIiLHRoaXMucmVxdWVzdEhlYWRlcj17fX1sb2FkKCl7fWxvYWRBc3luYyh0LHIpe2xldCBuPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGksbyl7bi5sb2FkKHQsaSxyLG8pfSl9cGFyc2UoKXt9c2V0Q3Jvc3NPcmlnaW4odCl7cmV0dXJuIHRoaXMuY3Jvc3NPcmlnaW49dCx0aGlzfXNldFdpdGhDcmVkZW50aWFscyh0KXtyZXR1cm4gdGhpcy53aXRoQ3JlZGVudGlhbHM9dCx0aGlzfXNldFBhdGgodCl7cmV0dXJuIHRoaXMucGF0aD10LHRoaXN9c2V0UmVzb3VyY2VQYXRoKHQpe3JldHVybiB0aGlzLnJlc291cmNlUGF0aD10LHRoaXN9c2V0UmVxdWVzdEhlYWRlcih0KXtyZXR1cm4gdGhpcy5yZXF1ZXN0SGVhZGVyPXQsdGhpc319LGpkPXt9LEpjPWNsYXNzIGV4dGVuZHMgZWF7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LHIsbixpKXt0PT09dm9pZCAwJiYodD0iIiksdGhpcy5wYXRoIT09dm9pZCAwJiYodD10aGlzLnBhdGgrdCksdD10aGlzLm1hbmFnZXIucmVzb2x2ZVVSTCh0KTtsZXQgbz1leC5nZXQodCk7aWYobyE9PXZvaWQgMClyZXR1cm4gdGhpcy5tYW5hZ2VyLml0ZW1TdGFydCh0KSxzZXRUaW1lb3V0KCgpPT57ciYmcihvKSx0aGlzLm1hbmFnZXIuaXRlbUVuZCh0KX0sMCksbztpZihqZFt0XSE9PXZvaWQgMCl7amRbdF0ucHVzaCh7b25Mb2FkOnIsb25Qcm9ncmVzczpuLG9uRXJyb3I6aX0pO3JldHVybn1qZFt0XT1bXSxqZFt0XS5wdXNoKHtvbkxvYWQ6cixvblByb2dyZXNzOm4sb25FcnJvcjppfSk7bGV0IGE9bmV3IFJlcXVlc3QodCx7aGVhZGVyczpuZXcgSGVhZGVycyh0aGlzLnJlcXVlc3RIZWFkZXIpLGNyZWRlbnRpYWxzOnRoaXMud2l0aENyZWRlbnRpYWxzPyJpbmNsdWRlIjoic2FtZS1vcmlnaW4ifSkscz10aGlzLm1pbWVUeXBlLGw9dGhpcy5yZXNwb25zZVR5cGU7ZmV0Y2goYSkudGhlbihjPT57aWYoYy5zdGF0dXM9PT0yMDB8fGMuc3RhdHVzPT09MCl7aWYoYy5zdGF0dXM9PT0wJiZjb25zb2xlLndhcm4oIlRIUkVFLkZpbGVMb2FkZXI6IEhUVFAgU3RhdHVzIDAgcmVjZWl2ZWQuIiksdHlwZW9mIFJlYWRhYmxlU3RyZWFtPT0idW5kZWZpbmVkInx8Yy5ib2R5LmdldFJlYWRlcj09PXZvaWQgMClyZXR1cm4gYztsZXQgdT1qZFt0XSxoPWMuYm9keS5nZXRSZWFkZXIoKSxmPWMuaGVhZGVycy5nZXQoIkNvbnRlbnQtTGVuZ3RoIikscD1mP3BhcnNlSW50KGYpOjAsZD1wIT09MCxnPTAsXz1uZXcgUmVhZGFibGVTdHJlYW0oe3N0YXJ0KHkpe3goKTtmdW5jdGlvbiB4KCl7aC5yZWFkKCkudGhlbigoe2RvbmU6Yix2YWx1ZTpTfSk9PntpZihiKXkuY2xvc2UoKTtlbHNle2crPVMuYnl0ZUxlbmd0aDtsZXQgQz1uZXcgUHJvZ3Jlc3NFdmVudCgicHJvZ3Jlc3MiLHtsZW5ndGhDb21wdXRhYmxlOmQsbG9hZGVkOmcsdG90YWw6cH0pO2ZvcihsZXQgUD0wLGs9dS5sZW5ndGg7UDxrO1ArKyl7bGV0IE89dVtQXTtPLm9uUHJvZ3Jlc3MmJk8ub25Qcm9ncmVzcyhDKX15LmVucXVldWUoUykseCgpfX0pfX19KTtyZXR1cm4gbmV3IFJlc3BvbnNlKF8pfWVsc2UgdGhyb3cgRXJyb3IoYGZldGNoIGZvciAiJHtjLnVybH0iIHJlc3BvbmRlZCB3aXRoICR7Yy5zdGF0dXN9OiAke2Muc3RhdHVzVGV4dH1gKX0pLnRoZW4oYz0+e3N3aXRjaChsKXtjYXNlImFycmF5YnVmZmVyIjpyZXR1cm4gYy5hcnJheUJ1ZmZlcigpO2Nhc2UiYmxvYiI6cmV0dXJuIGMuYmxvYigpO2Nhc2UiZG9jdW1lbnQiOnJldHVybiBjLnRleHQoKS50aGVuKHU9Pm5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcodSxzKSk7Y2FzZSJqc29uIjpyZXR1cm4gYy5qc29uKCk7ZGVmYXVsdDppZihzPT09dm9pZCAwKXJldHVybiBjLnRleHQoKTt7bGV0IGg9L2NoYXJzZXQ9Ij8oW147IlxzXSopIj8vaS5leGVjKHMpLGY9aCYmaFsxXT9oWzFdLnRvTG93ZXJDYXNlKCk6dm9pZCAwLHA9bmV3IFRleHREZWNvZGVyKGYpO3JldHVybiBjLmFycmF5QnVmZmVyKCkudGhlbihkPT5wLmRlY29kZShkKSl9fX0pLnRoZW4oYz0+e2V4LmFkZCh0LGMpO2xldCB1PWpkW3RdO2RlbGV0ZSBqZFt0XTtmb3IobGV0IGg9MCxmPXUubGVuZ3RoO2g8ZjtoKyspe2xldCBwPXVbaF07cC5vbkxvYWQmJnAub25Mb2FkKGMpfX0pLmNhdGNoKGM9PntsZXQgdT1qZFt0XTtpZih1PT09dm9pZCAwKXRocm93IHRoaXMubWFuYWdlci5pdGVtRXJyb3IodCksYztkZWxldGUgamRbdF07Zm9yKGxldCBoPTAsZj11Lmxlbmd0aDtoPGY7aCsrKXtsZXQgcD11W2hdO3Aub25FcnJvciYmcC5vbkVycm9yKGMpfXRoaXMubWFuYWdlci5pdGVtRXJyb3IodCl9KS5maW5hbGx5KCgpPT57dGhpcy5tYW5hZ2VyLml0ZW1FbmQodCl9KSx0aGlzLm1hbmFnZXIuaXRlbVN0YXJ0KHQpfXNldFJlc3BvbnNlVHlwZSh0KXtyZXR1cm4gdGhpcy5yZXNwb25zZVR5cGU9dCx0aGlzfXNldE1pbWVUeXBlKHQpe3JldHVybiB0aGlzLm1pbWVUeXBlPXQsdGhpc319LG9odD1jbGFzcyBleHRlbmRzIGVhe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxyLG4saSl7bGV0IG89dGhpcyxhPW5ldyBKYyh0aGlzLm1hbmFnZXIpO2Euc2V0UGF0aCh0aGlzLnBhdGgpLGEuc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLGEuc2V0V2l0aENyZWRlbnRpYWxzKHRoaXMud2l0aENyZWRlbnRpYWxzKSxhLmxvYWQodCxmdW5jdGlvbihzKXt0cnl7cihvLnBhcnNlKEpTT04ucGFyc2UocykpKX1jYXRjaChsKXtpP2kobCk6Y29uc29sZS5lcnJvcihsKSxvLm1hbmFnZXIuaXRlbUVycm9yKHQpfX0sbixpKX1wYXJzZSh0KXtsZXQgcj1bXTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7bGV0IGk9dHgucGFyc2UodFtuXSk7ci5wdXNoKGkpfXJldHVybiByfX0sYWh0PWNsYXNzIGV4dGVuZHMgZWF7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LHIsbixpKXtsZXQgbz10aGlzLGE9W10scz1uZXcgYTYsbD1uZXcgSmModGhpcy5tYW5hZ2VyKTtsLnNldFBhdGgodGhpcy5wYXRoKSxsLnNldFJlc3BvbnNlVHlwZSgiYXJyYXlidWZmZXIiKSxsLnNldFJlcXVlc3RIZWFkZXIodGhpcy5yZXF1ZXN0SGVhZGVyKSxsLnNldFdpdGhDcmVkZW50aWFscyhvLndpdGhDcmVkZW50aWFscyk7bGV0IGM9MDtmdW5jdGlvbiB1KGgpe2wubG9hZCh0W2hdLGZ1bmN0aW9uKGYpe2xldCBwPW8ucGFyc2UoZiwhMCk7YVtoXT17d2lkdGg6cC53aWR0aCxoZWlnaHQ6cC5oZWlnaHQsZm9ybWF0OnAuZm9ybWF0LG1pcG1hcHM6cC5taXBtYXBzfSxjKz0xLGM9PT02JiYocC5taXBtYXBDb3VudD09PTEmJihzLm1pbkZpbHRlcj1paSkscy5pbWFnZT1hLHMuZm9ybWF0PXAuZm9ybWF0LHMubmVlZHNVcGRhdGU9ITAsciYmcihzKSl9LG4saSl9aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IobGV0IGg9MCxmPXQubGVuZ3RoO2g8ZjsrK2gpdShoKTtlbHNlIGwubG9hZCh0LGZ1bmN0aW9uKGgpe2xldCBmPW8ucGFyc2UoaCwhMCk7aWYoZi5pc0N1YmVtYXApe2xldCBwPWYubWlwbWFwcy5sZW5ndGgvZi5taXBtYXBDb3VudDtmb3IobGV0IGQ9MDtkPHA7ZCsrKXthW2RdPXttaXBtYXBzOltdfTtmb3IobGV0IGc9MDtnPGYubWlwbWFwQ291bnQ7ZysrKWFbZF0ubWlwbWFwcy5wdXNoKGYubWlwbWFwc1tkKmYubWlwbWFwQ291bnQrZ10pLGFbZF0uZm9ybWF0PWYuZm9ybWF0LGFbZF0ud2lkdGg9Zi53aWR0aCxhW2RdLmhlaWdodD1mLmhlaWdodH1zLmltYWdlPWF9ZWxzZSBzLmltYWdlLndpZHRoPWYud2lkdGgscy5pbWFnZS5oZWlnaHQ9Zi5oZWlnaHQscy5taXBtYXBzPWYubWlwbWFwcztmLm1pcG1hcENvdW50PT09MSYmKHMubWluRmlsdGVyPWlpKSxzLmZvcm1hdD1mLmZvcm1hdCxzLm5lZWRzVXBkYXRlPSEwLHImJnIocyl9LG4saSk7cmV0dXJuIHN9fSxyeD1jbGFzcyBleHRlbmRzIGVhe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxyLG4saSl7dGhpcy5wYXRoIT09dm9pZCAwJiYodD10aGlzLnBhdGgrdCksdD10aGlzLm1hbmFnZXIucmVzb2x2ZVVSTCh0KTtsZXQgbz10aGlzLGE9ZXguZ2V0KHQpO2lmKGEhPT12b2lkIDApcmV0dXJuIG8ubWFuYWdlci5pdGVtU3RhcnQodCksc2V0VGltZW91dChmdW5jdGlvbigpe3ImJnIoYSksby5tYW5hZ2VyLml0ZW1FbmQodCl9LDApLGE7bGV0IHM9dDYoImltZyIpO2Z1bmN0aW9uIGwoKXt1KCksZXguYWRkKHQsdGhpcyksciYmcih0aGlzKSxvLm1hbmFnZXIuaXRlbUVuZCh0KX1mdW5jdGlvbiBjKGgpe3UoKSxpJiZpKGgpLG8ubWFuYWdlci5pdGVtRXJyb3IodCksby5tYW5hZ2VyLml0ZW1FbmQodCl9ZnVuY3Rpb24gdSgpe3MucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsbCwhMSkscy5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsYywhMSl9cmV0dXJuIHMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsbCwhMSkscy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsYywhMSksdC5zdWJzdHIoMCw1KSE9PSJkYXRhOiImJnRoaXMuY3Jvc3NPcmlnaW4hPT12b2lkIDAmJihzLmNyb3NzT3JpZ2luPXRoaXMuY3Jvc3NPcmlnaW4pLG8ubWFuYWdlci5pdGVtU3RhcnQodCkscy5zcmM9dCxzfX0sVFU9Y2xhc3MgZXh0ZW5kcyBlYXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQscixuLGkpe2xldCBvPW5ldyBWMCxhPW5ldyByeCh0aGlzLm1hbmFnZXIpO2Euc2V0Q3Jvc3NPcmlnaW4odGhpcy5jcm9zc09yaWdpbiksYS5zZXRQYXRoKHRoaXMucGF0aCk7bGV0IHM9MDtmdW5jdGlvbiBsKGMpe2EubG9hZCh0W2NdLGZ1bmN0aW9uKHUpe28uaW1hZ2VzW2NdPXUscysrLHM9PT02JiYoby5uZWVkc1VwZGF0ZT0hMCxyJiZyKG8pKX0sdm9pZCAwLGkpfWZvcihsZXQgYz0wO2M8dC5sZW5ndGg7KytjKWwoYyk7cmV0dXJuIG99fSxDVT1jbGFzcyBleHRlbmRzIGVhe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxyLG4saSl7bGV0IG89dGhpcyxhPW5ldyBRZCxzPW5ldyBKYyh0aGlzLm1hbmFnZXIpO3JldHVybiBzLnNldFJlc3BvbnNlVHlwZSgiYXJyYXlidWZmZXIiKSxzLnNldFJlcXVlc3RIZWFkZXIodGhpcy5yZXF1ZXN0SGVhZGVyKSxzLnNldFBhdGgodGhpcy5wYXRoKSxzLnNldFdpdGhDcmVkZW50aWFscyhvLndpdGhDcmVkZW50aWFscykscy5sb2FkKHQsZnVuY3Rpb24obCl7bGV0IGM9by5wYXJzZShsKTshY3x8KGMuaW1hZ2UhPT12b2lkIDA/YS5pbWFnZT1jLmltYWdlOmMuZGF0YSE9PXZvaWQgMCYmKGEuaW1hZ2Uud2lkdGg9Yy53aWR0aCxhLmltYWdlLmhlaWdodD1jLmhlaWdodCxhLmltYWdlLmRhdGE9Yy5kYXRhKSxhLndyYXBTPWMud3JhcFMhPT12b2lkIDA/Yy53cmFwUzpKbyxhLndyYXBUPWMud3JhcFQhPT12b2lkIDA/Yy53cmFwVDpKbyxhLm1hZ0ZpbHRlcj1jLm1hZ0ZpbHRlciE9PXZvaWQgMD9jLm1hZ0ZpbHRlcjppaSxhLm1pbkZpbHRlcj1jLm1pbkZpbHRlciE9PXZvaWQgMD9jLm1pbkZpbHRlcjppaSxhLmFuaXNvdHJvcHk9Yy5hbmlzb3Ryb3B5IT09dm9pZCAwP2MuYW5pc290cm9weToxLGMuZW5jb2RpbmchPT12b2lkIDAmJihhLmVuY29kaW5nPWMuZW5jb2RpbmcpLGMuZmxpcFkhPT12b2lkIDAmJihhLmZsaXBZPWMuZmxpcFkpLGMuZm9ybWF0IT09dm9pZCAwJiYoYS5mb3JtYXQ9Yy5mb3JtYXQpLGMudHlwZSE9PXZvaWQgMCYmKGEudHlwZT1jLnR5cGUpLGMubWlwbWFwcyE9PXZvaWQgMCYmKGEubWlwbWFwcz1jLm1pcG1hcHMsYS5taW5GaWx0ZXI9YXgpLGMubWlwbWFwQ291bnQ9PT0xJiYoYS5taW5GaWx0ZXI9aWkpLGMuZ2VuZXJhdGVNaXBtYXBzIT09dm9pZCAwJiYoYS5nZW5lcmF0ZU1pcG1hcHM9Yy5nZW5lcmF0ZU1pcG1hcHMpLGEubmVlZHNVcGRhdGU9ITAsciYmcihhLGMpKX0sbixpKSxhfX0sQVU9Y2xhc3MgZXh0ZW5kcyBlYXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQscixuLGkpe2xldCBvPW5ldyB2aSxhPW5ldyByeCh0aGlzLm1hbmFnZXIpO3JldHVybiBhLnNldENyb3NzT3JpZ2luKHRoaXMuY3Jvc3NPcmlnaW4pLGEuc2V0UGF0aCh0aGlzLnBhdGgpLGEubG9hZCh0LGZ1bmN0aW9uKHMpe28uaW1hZ2U9cyxvLm5lZWRzVXBkYXRlPSEwLHIhPT12b2lkIDAmJnIobyl9LG4saSksb319LHpsPWNsYXNzIGV4dGVuZHMgb3J7Y29uc3RydWN0b3IodCxyPTEpe3N1cGVyKCksdGhpcy50eXBlPSJMaWdodCIsdGhpcy5jb2xvcj1uZXcgbmUodCksdGhpcy5pbnRlbnNpdHk9cn1kaXNwb3NlKCl7fWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMuaW50ZW5zaXR5PXQuaW50ZW5zaXR5LHRoaXN9dG9KU09OKHQpe2xldCByPXN1cGVyLnRvSlNPTih0KTtyZXR1cm4gci5vYmplY3QuY29sb3I9dGhpcy5jb2xvci5nZXRIZXgoKSxyLm9iamVjdC5pbnRlbnNpdHk9dGhpcy5pbnRlbnNpdHksdGhpcy5ncm91bmRDb2xvciE9PXZvaWQgMCYmKHIub2JqZWN0Lmdyb3VuZENvbG9yPXRoaXMuZ3JvdW5kQ29sb3IuZ2V0SGV4KCkpLHRoaXMuZGlzdGFuY2UhPT12b2lkIDAmJihyLm9iamVjdC5kaXN0YW5jZT10aGlzLmRpc3RhbmNlKSx0aGlzLmFuZ2xlIT09dm9pZCAwJiYoci5vYmplY3QuYW5nbGU9dGhpcy5hbmdsZSksdGhpcy5kZWNheSE9PXZvaWQgMCYmKHIub2JqZWN0LmRlY2F5PXRoaXMuZGVjYXkpLHRoaXMucGVudW1icmEhPT12b2lkIDAmJihyLm9iamVjdC5wZW51bWJyYT10aGlzLnBlbnVtYnJhKSx0aGlzLnNoYWRvdyE9PXZvaWQgMCYmKHIub2JqZWN0LnNoYWRvdz10aGlzLnNoYWRvdy50b0pTT04oKSkscn19O3psLnByb3RvdHlwZS5pc0xpZ2h0PSEwO3ZhciBUNj1jbGFzcyBleHRlbmRzIHpse2NvbnN0cnVjdG9yKHQscixuKXtzdXBlcih0LG4pLHRoaXMudHlwZT0iSGVtaXNwaGVyZUxpZ2h0Iix0aGlzLnBvc2l0aW9uLmNvcHkob3IuRGVmYXVsdFVwKSx0aGlzLnVwZGF0ZU1hdHJpeCgpLHRoaXMuZ3JvdW5kQ29sb3I9bmV3IG5lKHIpfWNvcHkodCl7cmV0dXJuIHpsLnByb3RvdHlwZS5jb3B5LmNhbGwodGhpcyx0KSx0aGlzLmdyb3VuZENvbG9yLmNvcHkodC5ncm91bmRDb2xvciksdGhpc319O1Q2LnByb3RvdHlwZS5pc0hlbWlzcGhlcmVMaWdodD0hMDt2YXIgeGhlPW5ldyBNZSxiaGU9bmV3IGosd2hlPW5ldyBqLEM2PWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuY2FtZXJhPXQsdGhpcy5iaWFzPTAsdGhpcy5ub3JtYWxCaWFzPTAsdGhpcy5yYWRpdXM9MSx0aGlzLmJsdXJTYW1wbGVzPTgsdGhpcy5tYXBTaXplPW5ldyBMdCg1MTIsNTEyKSx0aGlzLm1hcD1udWxsLHRoaXMubWFwUGFzcz1udWxsLHRoaXMubWF0cml4PW5ldyBNZSx0aGlzLmF1dG9VcGRhdGU9ITAsdGhpcy5uZWVkc1VwZGF0ZT0hMSx0aGlzLl9mcnVzdHVtPW5ldyBEMSx0aGlzLl9mcmFtZUV4dGVudHM9bmV3IEx0KDEsMSksdGhpcy5fdmlld3BvcnRDb3VudD0xLHRoaXMuX3ZpZXdwb3J0cz1bbmV3IGVuKDAsMCwxLDEpXX1nZXRWaWV3cG9ydENvdW50KCl7cmV0dXJuIHRoaXMuX3ZpZXdwb3J0Q291bnR9Z2V0RnJ1c3R1bSgpe3JldHVybiB0aGlzLl9mcnVzdHVtfXVwZGF0ZU1hdHJpY2VzKHQpe2xldCByPXRoaXMuY2FtZXJhLG49dGhpcy5tYXRyaXg7YmhlLnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKSxyLnBvc2l0aW9uLmNvcHkoYmhlKSx3aGUuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQudGFyZ2V0Lm1hdHJpeFdvcmxkKSxyLmxvb2tBdCh3aGUpLHIudXBkYXRlTWF0cml4V29ybGQoKSx4aGUubXVsdGlwbHlNYXRyaWNlcyhyLnByb2plY3Rpb25NYXRyaXgsci5tYXRyaXhXb3JsZEludmVyc2UpLHRoaXMuX2ZydXN0dW0uc2V0RnJvbVByb2plY3Rpb25NYXRyaXgoeGhlKSxuLnNldCguNSwwLDAsLjUsMCwuNSwwLC41LDAsMCwuNSwuNSwwLDAsMCwxKSxuLm11bHRpcGx5KHIucHJvamVjdGlvbk1hdHJpeCksbi5tdWx0aXBseShyLm1hdHJpeFdvcmxkSW52ZXJzZSl9Z2V0Vmlld3BvcnQodCl7cmV0dXJuIHRoaXMuX3ZpZXdwb3J0c1t0XX1nZXRGcmFtZUV4dGVudHMoKXtyZXR1cm4gdGhpcy5fZnJhbWVFeHRlbnRzfWRpc3Bvc2UoKXt0aGlzLm1hcCYmdGhpcy5tYXAuZGlzcG9zZSgpLHRoaXMubWFwUGFzcyYmdGhpcy5tYXBQYXNzLmRpc3Bvc2UoKX1jb3B5KHQpe3JldHVybiB0aGlzLmNhbWVyYT10LmNhbWVyYS5jbG9uZSgpLHRoaXMuYmlhcz10LmJpYXMsdGhpcy5yYWRpdXM9dC5yYWRpdXMsdGhpcy5tYXBTaXplLmNvcHkodC5tYXBTaXplKSx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuY29weSh0aGlzKX10b0pTT04oKXtsZXQgdD17fTtyZXR1cm4gdGhpcy5iaWFzIT09MCYmKHQuYmlhcz10aGlzLmJpYXMpLHRoaXMubm9ybWFsQmlhcyE9PTAmJih0Lm5vcm1hbEJpYXM9dGhpcy5ub3JtYWxCaWFzKSx0aGlzLnJhZGl1cyE9PTEmJih0LnJhZGl1cz10aGlzLnJhZGl1cyksKHRoaXMubWFwU2l6ZS54IT09NTEyfHx0aGlzLm1hcFNpemUueSE9PTUxMikmJih0Lm1hcFNpemU9dGhpcy5tYXBTaXplLnRvQXJyYXkoKSksdC5jYW1lcmE9dGhpcy5jYW1lcmEudG9KU09OKCExKS5vYmplY3QsZGVsZXRlIHQuY2FtZXJhLm1hdHJpeCx0fX0sUFU9Y2xhc3MgZXh0ZW5kcyBDNntjb25zdHJ1Y3Rvcigpe3N1cGVyKG5ldyBVaSg1MCwxLC41LDUwMCkpLHRoaXMuZm9jdXM9MX11cGRhdGVNYXRyaWNlcyh0KXtsZXQgcj10aGlzLmNhbWVyYSxuPVFQKjIqdC5hbmdsZSp0aGlzLmZvY3VzLGk9dGhpcy5tYXBTaXplLndpZHRoL3RoaXMubWFwU2l6ZS5oZWlnaHQsbz10LmRpc3RhbmNlfHxyLmZhcjsobiE9PXIuZm92fHxpIT09ci5hc3BlY3R8fG8hPT1yLmZhcikmJihyLmZvdj1uLHIuYXNwZWN0PWksci5mYXI9byxyLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSksc3VwZXIudXBkYXRlTWF0cmljZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmZvY3VzPXQuZm9jdXMsdGhpc319O1BVLnByb3RvdHlwZS5pc1Nwb3RMaWdodFNoYWRvdz0hMDt2YXIgQTY9Y2xhc3MgZXh0ZW5kcyB6bHtjb25zdHJ1Y3Rvcih0LHIsbj0wLGk9TWF0aC5QSS8zLG89MCxhPTEpe3N1cGVyKHQsciksdGhpcy50eXBlPSJTcG90TGlnaHQiLHRoaXMucG9zaXRpb24uY29weShvci5EZWZhdWx0VXApLHRoaXMudXBkYXRlTWF0cml4KCksdGhpcy50YXJnZXQ9bmV3IG9yLHRoaXMuZGlzdGFuY2U9bix0aGlzLmFuZ2xlPWksdGhpcy5wZW51bWJyYT1vLHRoaXMuZGVjYXk9YSx0aGlzLnNoYWRvdz1uZXcgUFV9Z2V0IHBvd2VyKCl7cmV0dXJuIHRoaXMuaW50ZW5zaXR5Kk1hdGguUEl9c2V0IHBvd2VyKHQpe3RoaXMuaW50ZW5zaXR5PXQvTWF0aC5QSX1kaXNwb3NlKCl7dGhpcy5zaGFkb3cuZGlzcG9zZSgpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kaXN0YW5jZT10LmRpc3RhbmNlLHRoaXMuYW5nbGU9dC5hbmdsZSx0aGlzLnBlbnVtYnJhPXQucGVudW1icmEsdGhpcy5kZWNheT10LmRlY2F5LHRoaXMudGFyZ2V0PXQudGFyZ2V0LmNsb25lKCksdGhpcy5zaGFkb3c9dC5zaGFkb3cuY2xvbmUoKSx0aGlzfX07QTYucHJvdG90eXBlLmlzU3BvdExpZ2h0PSEwO3ZhciBTaGU9bmV3IE1lLEJQPW5ldyBqLHh1dD1uZXcgaixJVT1jbGFzcyBleHRlbmRzIEM2e2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IFVpKDkwLDEsLjUsNTAwKSksdGhpcy5fZnJhbWVFeHRlbnRzPW5ldyBMdCg0LDIpLHRoaXMuX3ZpZXdwb3J0Q291bnQ9Nix0aGlzLl92aWV3cG9ydHM9W25ldyBlbigyLDEsMSwxKSxuZXcgZW4oMCwxLDEsMSksbmV3IGVuKDMsMSwxLDEpLG5ldyBlbigxLDEsMSwxKSxuZXcgZW4oMywwLDEsMSksbmV3IGVuKDEsMCwxLDEpXSx0aGlzLl9jdWJlRGlyZWN0aW9ucz1bbmV3IGooMSwwLDApLG5ldyBqKC0xLDAsMCksbmV3IGooMCwwLDEpLG5ldyBqKDAsMCwtMSksbmV3IGooMCwxLDApLG5ldyBqKDAsLTEsMCldLHRoaXMuX2N1YmVVcHM9W25ldyBqKDAsMSwwKSxuZXcgaigwLDEsMCksbmV3IGooMCwxLDApLG5ldyBqKDAsMSwwKSxuZXcgaigwLDAsMSksbmV3IGooMCwwLC0xKV19dXBkYXRlTWF0cmljZXModCxyPTApe2xldCBuPXRoaXMuY2FtZXJhLGk9dGhpcy5tYXRyaXgsbz10LmRpc3RhbmNlfHxuLmZhcjtvIT09bi5mYXImJihuLmZhcj1vLG4udXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpKSxCUC5zZXRGcm9tTWF0cml4UG9zaXRpb24odC5tYXRyaXhXb3JsZCksbi5wb3NpdGlvbi5jb3B5KEJQKSx4dXQuY29weShuLnBvc2l0aW9uKSx4dXQuYWRkKHRoaXMuX2N1YmVEaXJlY3Rpb25zW3JdKSxuLnVwLmNvcHkodGhpcy5fY3ViZVVwc1tyXSksbi5sb29rQXQoeHV0KSxuLnVwZGF0ZU1hdHJpeFdvcmxkKCksaS5tYWtlVHJhbnNsYXRpb24oLUJQLngsLUJQLnksLUJQLnopLFNoZS5tdWx0aXBseU1hdHJpY2VzKG4ucHJvamVjdGlvbk1hdHJpeCxuLm1hdHJpeFdvcmxkSW52ZXJzZSksdGhpcy5fZnJ1c3R1bS5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeChTaGUpfX07SVUucHJvdG90eXBlLmlzUG9pbnRMaWdodFNoYWRvdz0hMDt2YXIgUDY9Y2xhc3MgZXh0ZW5kcyB6bHtjb25zdHJ1Y3Rvcih0LHIsbj0wLGk9MSl7c3VwZXIodCxyKSx0aGlzLnR5cGU9IlBvaW50TGlnaHQiLHRoaXMuZGlzdGFuY2U9bix0aGlzLmRlY2F5PWksdGhpcy5zaGFkb3c9bmV3IElVfWdldCBwb3dlcigpe3JldHVybiB0aGlzLmludGVuc2l0eSo0Kk1hdGguUEl9c2V0IHBvd2VyKHQpe3RoaXMuaW50ZW5zaXR5PXQvKDQqTWF0aC5QSSl9ZGlzcG9zZSgpe3RoaXMuc2hhZG93LmRpc3Bvc2UoKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZGlzdGFuY2U9dC5kaXN0YW5jZSx0aGlzLmRlY2F5PXQuZGVjYXksdGhpcy5zaGFkb3c9dC5zaGFkb3cuY2xvbmUoKSx0aGlzfX07UDYucHJvdG90eXBlLmlzUG9pbnRMaWdodD0hMDt2YXIgTFU9Y2xhc3MgZXh0ZW5kcyBDNntjb25zdHJ1Y3Rvcigpe3N1cGVyKG5ldyBPMSgtNSw1LDUsLTUsLjUsNTAwKSl9fTtMVS5wcm90b3R5cGUuaXNEaXJlY3Rpb25hbExpZ2h0U2hhZG93PSEwO3ZhciBJNj1jbGFzcyBleHRlbmRzIHpse2NvbnN0cnVjdG9yKHQscil7c3VwZXIodCxyKSx0aGlzLnR5cGU9IkRpcmVjdGlvbmFsTGlnaHQiLHRoaXMucG9zaXRpb24uY29weShvci5EZWZhdWx0VXApLHRoaXMudXBkYXRlTWF0cml4KCksdGhpcy50YXJnZXQ9bmV3IG9yLHRoaXMuc2hhZG93PW5ldyBMVX1kaXNwb3NlKCl7dGhpcy5zaGFkb3cuZGlzcG9zZSgpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy50YXJnZXQ9dC50YXJnZXQuY2xvbmUoKSx0aGlzLnNoYWRvdz10LnNoYWRvdy5jbG9uZSgpLHRoaXN9fTtJNi5wcm90b3R5cGUuaXNEaXJlY3Rpb25hbExpZ2h0PSEwO3ZhciBMNj1jbGFzcyBleHRlbmRzIHpse2NvbnN0cnVjdG9yKHQscil7c3VwZXIodCxyKSx0aGlzLnR5cGU9IkFtYmllbnRMaWdodCJ9fTtMNi5wcm90b3R5cGUuaXNBbWJpZW50TGlnaHQ9ITA7dmFyIGs2PWNsYXNzIGV4dGVuZHMgemx7Y29uc3RydWN0b3IodCxyLG49MTAsaT0xMCl7c3VwZXIodCxyKSx0aGlzLnR5cGU9IlJlY3RBcmVhTGlnaHQiLHRoaXMud2lkdGg9bix0aGlzLmhlaWdodD1pfWdldCBwb3dlcigpe3JldHVybiB0aGlzLmludGVuc2l0eSp0aGlzLndpZHRoKnRoaXMuaGVpZ2h0Kk1hdGguUEl9c2V0IHBvd2VyKHQpe3RoaXMuaW50ZW5zaXR5PXQvKHRoaXMud2lkdGgqdGhpcy5oZWlnaHQqTWF0aC5QSSl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLndpZHRoPXQud2lkdGgsdGhpcy5oZWlnaHQ9dC5oZWlnaHQsdGhpc310b0pTT04odCl7bGV0IHI9c3VwZXIudG9KU09OKHQpO3JldHVybiByLm9iamVjdC53aWR0aD10aGlzLndpZHRoLHIub2JqZWN0LmhlaWdodD10aGlzLmhlaWdodCxyfX07azYucHJvdG90eXBlLmlzUmVjdEFyZWFMaWdodD0hMDt2YXIgUjY9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmNvZWZmaWNpZW50cz1bXTtmb3IobGV0IHQ9MDt0PDk7dCsrKXRoaXMuY29lZmZpY2llbnRzLnB1c2gobmV3IGopfXNldCh0KXtmb3IobGV0IHI9MDtyPDk7cisrKXRoaXMuY29lZmZpY2llbnRzW3JdLmNvcHkodFtyXSk7cmV0dXJuIHRoaXN9emVybygpe2ZvcihsZXQgdD0wO3Q8OTt0KyspdGhpcy5jb2VmZmljaWVudHNbdF0uc2V0KDAsMCwwKTtyZXR1cm4gdGhpc31nZXRBdCh0LHIpe2xldCBuPXQueCxpPXQueSxvPXQueixhPXRoaXMuY29lZmZpY2llbnRzO3JldHVybiByLmNvcHkoYVswXSkubXVsdGlwbHlTY2FsYXIoLjI4MjA5NSksci5hZGRTY2FsZWRWZWN0b3IoYVsxXSwuNDg4NjAzKmkpLHIuYWRkU2NhbGVkVmVjdG9yKGFbMl0sLjQ4ODYwMypvKSxyLmFkZFNjYWxlZFZlY3RvcihhWzNdLC40ODg2MDMqbiksci5hZGRTY2FsZWRWZWN0b3IoYVs0XSwxLjA5MjU0OCoobippKSksci5hZGRTY2FsZWRWZWN0b3IoYVs1XSwxLjA5MjU0OCooaSpvKSksci5hZGRTY2FsZWRWZWN0b3IoYVs2XSwuMzE1MzkyKigzKm8qby0xKSksci5hZGRTY2FsZWRWZWN0b3IoYVs3XSwxLjA5MjU0OCoobipvKSksci5hZGRTY2FsZWRWZWN0b3IoYVs4XSwuNTQ2Mjc0KihuKm4taSppKSkscn1nZXRJcnJhZGlhbmNlQXQodCxyKXtsZXQgbj10LngsaT10Lnksbz10LnosYT10aGlzLmNvZWZmaWNpZW50cztyZXR1cm4gci5jb3B5KGFbMF0pLm11bHRpcGx5U2NhbGFyKC44ODYyMjcpLHIuYWRkU2NhbGVkVmVjdG9yKGFbMV0sMiouNTExNjY0KmkpLHIuYWRkU2NhbGVkVmVjdG9yKGFbMl0sMiouNTExNjY0Km8pLHIuYWRkU2NhbGVkVmVjdG9yKGFbM10sMiouNTExNjY0Km4pLHIuYWRkU2NhbGVkVmVjdG9yKGFbNF0sMiouNDI5MDQzKm4qaSksci5hZGRTY2FsZWRWZWN0b3IoYVs1XSwyKi40MjkwNDMqaSpvKSxyLmFkZFNjYWxlZFZlY3RvcihhWzZdLC43NDMxMjUqbypvLS4yNDc3MDgpLHIuYWRkU2NhbGVkVmVjdG9yKGFbN10sMiouNDI5MDQzKm4qbyksci5hZGRTY2FsZWRWZWN0b3IoYVs4XSwuNDI5MDQzKihuKm4taSppKSkscn1hZGQodCl7Zm9yKGxldCByPTA7cjw5O3IrKyl0aGlzLmNvZWZmaWNpZW50c1tyXS5hZGQodC5jb2VmZmljaWVudHNbcl0pO3JldHVybiB0aGlzfWFkZFNjYWxlZFNIKHQscil7Zm9yKGxldCBuPTA7bjw5O24rKyl0aGlzLmNvZWZmaWNpZW50c1tuXS5hZGRTY2FsZWRWZWN0b3IodC5jb2VmZmljaWVudHNbbl0scik7cmV0dXJuIHRoaXN9c2NhbGUodCl7Zm9yKGxldCByPTA7cjw5O3IrKyl0aGlzLmNvZWZmaWNpZW50c1tyXS5tdWx0aXBseVNjYWxhcih0KTtyZXR1cm4gdGhpc31sZXJwKHQscil7Zm9yKGxldCBuPTA7bjw5O24rKyl0aGlzLmNvZWZmaWNpZW50c1tuXS5sZXJwKHQuY29lZmZpY2llbnRzW25dLHIpO3JldHVybiB0aGlzfWVxdWFscyh0KXtmb3IobGV0IHI9MDtyPDk7cisrKWlmKCF0aGlzLmNvZWZmaWNpZW50c1tyXS5lcXVhbHModC5jb2VmZmljaWVudHNbcl0pKXJldHVybiExO3JldHVybiEwfWNvcHkodCl7cmV0dXJuIHRoaXMuc2V0KHQuY29lZmZpY2llbnRzKX1jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcigpLmNvcHkodGhpcyl9ZnJvbUFycmF5KHQscj0wKXtsZXQgbj10aGlzLmNvZWZmaWNpZW50cztmb3IobGV0IGk9MDtpPDk7aSsrKW5baV0uZnJvbUFycmF5KHQscitpKjMpO3JldHVybiB0aGlzfXRvQXJyYXkodD1bXSxyPTApe2xldCBuPXRoaXMuY29lZmZpY2llbnRzO2ZvcihsZXQgaT0wO2k8OTtpKyspbltpXS50b0FycmF5KHQscitpKjMpO3JldHVybiB0fXN0YXRpYyBnZXRCYXNpc0F0KHQscil7bGV0IG49dC54LGk9dC55LG89dC56O3JbMF09LjI4MjA5NSxyWzFdPS40ODg2MDMqaSxyWzJdPS40ODg2MDMqbyxyWzNdPS40ODg2MDMqbixyWzRdPTEuMDkyNTQ4Km4qaSxyWzVdPTEuMDkyNTQ4KmkqbyxyWzZdPS4zMTUzOTIqKDMqbypvLTEpLHJbN109MS4wOTI1NDgqbipvLHJbOF09LjU0NjI3NCoobipuLWkqaSl9fTtSNi5wcm90b3R5cGUuaXNTcGhlcmljYWxIYXJtb25pY3MzPSEwO3ZhciBueD1jbGFzcyBleHRlbmRzIHpse2NvbnN0cnVjdG9yKHQ9bmV3IFI2LHI9MSl7c3VwZXIodm9pZCAwLHIpLHRoaXMuc2g9dH1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuc2guY29weSh0LnNoKSx0aGlzfWZyb21KU09OKHQpe3JldHVybiB0aGlzLmludGVuc2l0eT10LmludGVuc2l0eSx0aGlzLnNoLmZyb21BcnJheSh0LnNoKSx0aGlzfXRvSlNPTih0KXtsZXQgcj1zdXBlci50b0pTT04odCk7cmV0dXJuIHIub2JqZWN0LnNoPXRoaXMuc2gudG9BcnJheSgpLHJ9fTtueC5wcm90b3R5cGUuaXNMaWdodFByb2JlPSEwO3ZhciBrVT1jbGFzcyBleHRlbmRzIGVhe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMudGV4dHVyZXM9e319bG9hZCh0LHIsbixpKXtsZXQgbz10aGlzLGE9bmV3IEpjKG8ubWFuYWdlcik7YS5zZXRQYXRoKG8ucGF0aCksYS5zZXRSZXF1ZXN0SGVhZGVyKG8ucmVxdWVzdEhlYWRlciksYS5zZXRXaXRoQ3JlZGVudGlhbHMoby53aXRoQ3JlZGVudGlhbHMpLGEubG9hZCh0LGZ1bmN0aW9uKHMpe3RyeXtyKG8ucGFyc2UoSlNPTi5wYXJzZShzKSkpfWNhdGNoKGwpe2k/aShsKTpjb25zb2xlLmVycm9yKGwpLG8ubWFuYWdlci5pdGVtRXJyb3IodCl9fSxuLGkpfXBhcnNlKHQpe2xldCByPXRoaXMudGV4dHVyZXM7ZnVuY3Rpb24gbihvKXtyZXR1cm4gcltvXT09PXZvaWQgMCYmY29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbExvYWRlcjogVW5kZWZpbmVkIHRleHR1cmUiLG8pLHJbb119bGV0IGk9bmV3IHUwclt0LnR5cGVdO2lmKHQudXVpZCE9PXZvaWQgMCYmKGkudXVpZD10LnV1aWQpLHQubmFtZSE9PXZvaWQgMCYmKGkubmFtZT10Lm5hbWUpLHQuY29sb3IhPT12b2lkIDAmJmkuY29sb3IhPT12b2lkIDAmJmkuY29sb3Iuc2V0SGV4KHQuY29sb3IpLHQucm91Z2huZXNzIT09dm9pZCAwJiYoaS5yb3VnaG5lc3M9dC5yb3VnaG5lc3MpLHQubWV0YWxuZXNzIT09dm9pZCAwJiYoaS5tZXRhbG5lc3M9dC5tZXRhbG5lc3MpLHQuc2hlZW4hPT12b2lkIDAmJihpLnNoZWVuPXQuc2hlZW4pLHQuc2hlZW5Db2xvciE9PXZvaWQgMCYmKGkuc2hlZW5Db2xvcj1uZXcgbmUoKS5zZXRIZXgodC5zaGVlbkNvbG9yKSksdC5zaGVlblJvdWdobmVzcyE9PXZvaWQgMCYmKGkuc2hlZW5Sb3VnaG5lc3M9dC5zaGVlblJvdWdobmVzcyksdC5lbWlzc2l2ZSE9PXZvaWQgMCYmaS5lbWlzc2l2ZSE9PXZvaWQgMCYmaS5lbWlzc2l2ZS5zZXRIZXgodC5lbWlzc2l2ZSksdC5zcGVjdWxhciE9PXZvaWQgMCYmaS5zcGVjdWxhciE9PXZvaWQgMCYmaS5zcGVjdWxhci5zZXRIZXgodC5zcGVjdWxhciksdC5zcGVjdWxhckludGVuc2l0eSE9PXZvaWQgMCYmKGkuc3BlY3VsYXJJbnRlbnNpdHk9dC5zcGVjdWxhckludGVuc2l0eSksdC5zcGVjdWxhckNvbG9yIT09dm9pZCAwJiZpLnNwZWN1bGFyQ29sb3IhPT12b2lkIDAmJmkuc3BlY3VsYXJDb2xvci5zZXRIZXgodC5zcGVjdWxhckNvbG9yKSx0LnNoaW5pbmVzcyE9PXZvaWQgMCYmKGkuc2hpbmluZXNzPXQuc2hpbmluZXNzKSx0LmNsZWFyY29hdCE9PXZvaWQgMCYmKGkuY2xlYXJjb2F0PXQuY2xlYXJjb2F0KSx0LmNsZWFyY29hdFJvdWdobmVzcyE9PXZvaWQgMCYmKGkuY2xlYXJjb2F0Um91Z2huZXNzPXQuY2xlYXJjb2F0Um91Z2huZXNzKSx0LnRyYW5zbWlzc2lvbiE9PXZvaWQgMCYmKGkudHJhbnNtaXNzaW9uPXQudHJhbnNtaXNzaW9uKSx0LnRoaWNrbmVzcyE9PXZvaWQgMCYmKGkudGhpY2tuZXNzPXQudGhpY2tuZXNzKSx0LmF0dGVudWF0aW9uRGlzdGFuY2UhPT12b2lkIDAmJihpLmF0dGVudWF0aW9uRGlzdGFuY2U9dC5hdHRlbnVhdGlvbkRpc3RhbmNlKSx0LmF0dGVudWF0aW9uQ29sb3IhPT12b2lkIDAmJmkuYXR0ZW51YXRpb25Db2xvciE9PXZvaWQgMCYmaS5hdHRlbnVhdGlvbkNvbG9yLnNldEhleCh0LmF0dGVudWF0aW9uQ29sb3IpLHQuZm9nIT09dm9pZCAwJiYoaS5mb2c9dC5mb2cpLHQuZmxhdFNoYWRpbmchPT12b2lkIDAmJihpLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcpLHQuYmxlbmRpbmchPT12b2lkIDAmJihpLmJsZW5kaW5nPXQuYmxlbmRpbmcpLHQuY29tYmluZSE9PXZvaWQgMCYmKGkuY29tYmluZT10LmNvbWJpbmUpLHQuc2lkZSE9PXZvaWQgMCYmKGkuc2lkZT10LnNpZGUpLHQuc2hhZG93U2lkZSE9PXZvaWQgMCYmKGkuc2hhZG93U2lkZT10LnNoYWRvd1NpZGUpLHQub3BhY2l0eSE9PXZvaWQgMCYmKGkub3BhY2l0eT10Lm9wYWNpdHkpLHQudHJhbnNwYXJlbnQhPT12b2lkIDAmJihpLnRyYW5zcGFyZW50PXQudHJhbnNwYXJlbnQpLHQuYWxwaGFUZXN0IT09dm9pZCAwJiYoaS5hbHBoYVRlc3Q9dC5hbHBoYVRlc3QpLHQuZGVwdGhUZXN0IT09dm9pZCAwJiYoaS5kZXB0aFRlc3Q9dC5kZXB0aFRlc3QpLHQuZGVwdGhXcml0ZSE9PXZvaWQgMCYmKGkuZGVwdGhXcml0ZT10LmRlcHRoV3JpdGUpLHQuY29sb3JXcml0ZSE9PXZvaWQgMCYmKGkuY29sb3JXcml0ZT10LmNvbG9yV3JpdGUpLHQuYWxwaGFXcml0ZSE9PXZvaWQgMCYmKGkuYWxwaGFXcml0ZT10LmFscGhhV3JpdGUpLHQuc3RlbmNpbFdyaXRlIT09dm9pZCAwJiYoaS5zdGVuY2lsV3JpdGU9dC5zdGVuY2lsV3JpdGUpLHQuc3RlbmNpbFdyaXRlTWFzayE9PXZvaWQgMCYmKGkuc3RlbmNpbFdyaXRlTWFzaz10LnN0ZW5jaWxXcml0ZU1hc2spLHQuc3RlbmNpbEZ1bmMhPT12b2lkIDAmJihpLnN0ZW5jaWxGdW5jPXQuc3RlbmNpbEZ1bmMpLHQuc3RlbmNpbFJlZiE9PXZvaWQgMCYmKGkuc3RlbmNpbFJlZj10LnN0ZW5jaWxSZWYpLHQuc3RlbmNpbEZ1bmNNYXNrIT09dm9pZCAwJiYoaS5zdGVuY2lsRnVuY01hc2s9dC5zdGVuY2lsRnVuY01hc2spLHQuc3RlbmNpbEZhaWwhPT12b2lkIDAmJihpLnN0ZW5jaWxGYWlsPXQuc3RlbmNpbEZhaWwpLHQuc3RlbmNpbFpGYWlsIT09dm9pZCAwJiYoaS5zdGVuY2lsWkZhaWw9dC5zdGVuY2lsWkZhaWwpLHQuc3RlbmNpbFpQYXNzIT09dm9pZCAwJiYoaS5zdGVuY2lsWlBhc3M9dC5zdGVuY2lsWlBhc3MpLHQud2lyZWZyYW1lIT09dm9pZCAwJiYoaS53aXJlZnJhbWU9dC53aXJlZnJhbWUpLHQud2lyZWZyYW1lTGluZXdpZHRoIT09dm9pZCAwJiYoaS53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgpLHQud2lyZWZyYW1lTGluZWNhcCE9PXZvaWQgMCYmKGkud2lyZWZyYW1lTGluZWNhcD10LndpcmVmcmFtZUxpbmVjYXApLHQud2lyZWZyYW1lTGluZWpvaW4hPT12b2lkIDAmJihpLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4pLHQucm90YXRpb24hPT12b2lkIDAmJihpLnJvdGF0aW9uPXQucm90YXRpb24pLHQubGluZXdpZHRoIT09MSYmKGkubGluZXdpZHRoPXQubGluZXdpZHRoKSx0LmRhc2hTaXplIT09dm9pZCAwJiYoaS5kYXNoU2l6ZT10LmRhc2hTaXplKSx0LmdhcFNpemUhPT12b2lkIDAmJihpLmdhcFNpemU9dC5nYXBTaXplKSx0LnNjYWxlIT09dm9pZCAwJiYoaS5zY2FsZT10LnNjYWxlKSx0LnBvbHlnb25PZmZzZXQhPT12b2lkIDAmJihpLnBvbHlnb25PZmZzZXQ9dC5wb2x5Z29uT2Zmc2V0KSx0LnBvbHlnb25PZmZzZXRGYWN0b3IhPT12b2lkIDAmJihpLnBvbHlnb25PZmZzZXRGYWN0b3I9dC5wb2x5Z29uT2Zmc2V0RmFjdG9yKSx0LnBvbHlnb25PZmZzZXRVbml0cyE9PXZvaWQgMCYmKGkucG9seWdvbk9mZnNldFVuaXRzPXQucG9seWdvbk9mZnNldFVuaXRzKSx0LmRpdGhlcmluZyE9PXZvaWQgMCYmKGkuZGl0aGVyaW5nPXQuZGl0aGVyaW5nKSx0LmFscGhhVG9Db3ZlcmFnZSE9PXZvaWQgMCYmKGkuYWxwaGFUb0NvdmVyYWdlPXQuYWxwaGFUb0NvdmVyYWdlKSx0LnByZW11bHRpcGxpZWRBbHBoYSE9PXZvaWQgMCYmKGkucHJlbXVsdGlwbGllZEFscGhhPXQucHJlbXVsdGlwbGllZEFscGhhKSx0LnZpc2libGUhPT12b2lkIDAmJihpLnZpc2libGU9dC52aXNpYmxlKSx0LnRvbmVNYXBwZWQhPT12b2lkIDAmJihpLnRvbmVNYXBwZWQ9dC50b25lTWFwcGVkKSx0LnVzZXJEYXRhIT09dm9pZCAwJiYoaS51c2VyRGF0YT10LnVzZXJEYXRhKSx0LnZlcnRleENvbG9ycyE9PXZvaWQgMCYmKHR5cGVvZiB0LnZlcnRleENvbG9ycz09Im51bWJlciI/aS52ZXJ0ZXhDb2xvcnM9dC52ZXJ0ZXhDb2xvcnM+MDppLnZlcnRleENvbG9ycz10LnZlcnRleENvbG9ycyksdC51bmlmb3JtcyE9PXZvaWQgMClmb3IobGV0IG8gaW4gdC51bmlmb3Jtcyl7bGV0IGE9dC51bmlmb3Jtc1tvXTtzd2l0Y2goaS51bmlmb3Jtc1tvXT17fSxhLnR5cGUpe2Nhc2UidCI6aS51bmlmb3Jtc1tvXS52YWx1ZT1uKGEudmFsdWUpO2JyZWFrO2Nhc2UiYyI6aS51bmlmb3Jtc1tvXS52YWx1ZT1uZXcgbmUoKS5zZXRIZXgoYS52YWx1ZSk7YnJlYWs7Y2FzZSJ2MiI6aS51bmlmb3Jtc1tvXS52YWx1ZT1uZXcgTHQoKS5mcm9tQXJyYXkoYS52YWx1ZSk7YnJlYWs7Y2FzZSJ2MyI6aS51bmlmb3Jtc1tvXS52YWx1ZT1uZXcgaigpLmZyb21BcnJheShhLnZhbHVlKTticmVhaztjYXNlInY0IjppLnVuaWZvcm1zW29dLnZhbHVlPW5ldyBlbigpLmZyb21BcnJheShhLnZhbHVlKTticmVhaztjYXNlIm0zIjppLnVuaWZvcm1zW29dLnZhbHVlPW5ldyBraSgpLmZyb21BcnJheShhLnZhbHVlKTticmVhaztjYXNlIm00IjppLnVuaWZvcm1zW29dLnZhbHVlPW5ldyBNZSgpLmZyb21BcnJheShhLnZhbHVlKTticmVhaztkZWZhdWx0OmkudW5pZm9ybXNbb10udmFsdWU9YS52YWx1ZX19aWYodC5kZWZpbmVzIT09dm9pZCAwJiYoaS5kZWZpbmVzPXQuZGVmaW5lcyksdC52ZXJ0ZXhTaGFkZXIhPT12b2lkIDAmJihpLnZlcnRleFNoYWRlcj10LnZlcnRleFNoYWRlciksdC5mcmFnbWVudFNoYWRlciE9PXZvaWQgMCYmKGkuZnJhZ21lbnRTaGFkZXI9dC5mcmFnbWVudFNoYWRlciksdC5leHRlbnNpb25zIT09dm9pZCAwKWZvcihsZXQgbyBpbiB0LmV4dGVuc2lvbnMpaS5leHRlbnNpb25zW29dPXQuZXh0ZW5zaW9uc1tvXTtpZih0LnNoYWRpbmchPT12b2lkIDAmJihpLmZsYXRTaGFkaW5nPXQuc2hhZGluZz09PTEpLHQuc2l6ZSE9PXZvaWQgMCYmKGkuc2l6ZT10LnNpemUpLHQuc2l6ZUF0dGVudWF0aW9uIT09dm9pZCAwJiYoaS5zaXplQXR0ZW51YXRpb249dC5zaXplQXR0ZW51YXRpb24pLHQubWFwIT09dm9pZCAwJiYoaS5tYXA9bih0Lm1hcCkpLHQubWF0Y2FwIT09dm9pZCAwJiYoaS5tYXRjYXA9bih0Lm1hdGNhcCkpLHQuYWxwaGFNYXAhPT12b2lkIDAmJihpLmFscGhhTWFwPW4odC5hbHBoYU1hcCkpLHQuYnVtcE1hcCE9PXZvaWQgMCYmKGkuYnVtcE1hcD1uKHQuYnVtcE1hcCkpLHQuYnVtcFNjYWxlIT09dm9pZCAwJiYoaS5idW1wU2NhbGU9dC5idW1wU2NhbGUpLHQubm9ybWFsTWFwIT09dm9pZCAwJiYoaS5ub3JtYWxNYXA9bih0Lm5vcm1hbE1hcCkpLHQubm9ybWFsTWFwVHlwZSE9PXZvaWQgMCYmKGkubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUpLHQubm9ybWFsU2NhbGUhPT12b2lkIDApe2xldCBvPXQubm9ybWFsU2NhbGU7QXJyYXkuaXNBcnJheShvKT09PSExJiYobz1bbyxvXSksaS5ub3JtYWxTY2FsZT1uZXcgTHQoKS5mcm9tQXJyYXkobyl9cmV0dXJuIHQuZGlzcGxhY2VtZW50TWFwIT09dm9pZCAwJiYoaS5kaXNwbGFjZW1lbnRNYXA9bih0LmRpc3BsYWNlbWVudE1hcCkpLHQuZGlzcGxhY2VtZW50U2NhbGUhPT12b2lkIDAmJihpLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUpLHQuZGlzcGxhY2VtZW50QmlhcyE9PXZvaWQgMCYmKGkuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMpLHQucm91Z2huZXNzTWFwIT09dm9pZCAwJiYoaS5yb3VnaG5lc3NNYXA9bih0LnJvdWdobmVzc01hcCkpLHQubWV0YWxuZXNzTWFwIT09dm9pZCAwJiYoaS5tZXRhbG5lc3NNYXA9bih0Lm1ldGFsbmVzc01hcCkpLHQuZW1pc3NpdmVNYXAhPT12b2lkIDAmJihpLmVtaXNzaXZlTWFwPW4odC5lbWlzc2l2ZU1hcCkpLHQuZW1pc3NpdmVJbnRlbnNpdHkhPT12b2lkIDAmJihpLmVtaXNzaXZlSW50ZW5zaXR5PXQuZW1pc3NpdmVJbnRlbnNpdHkpLHQuc3BlY3VsYXJNYXAhPT12b2lkIDAmJihpLnNwZWN1bGFyTWFwPW4odC5zcGVjdWxhck1hcCkpLHQuc3BlY3VsYXJJbnRlbnNpdHlNYXAhPT12b2lkIDAmJihpLnNwZWN1bGFySW50ZW5zaXR5TWFwPW4odC5zcGVjdWxhckludGVuc2l0eU1hcCkpLHQuc3BlY3VsYXJDb2xvck1hcCE9PXZvaWQgMCYmKGkuc3BlY3VsYXJDb2xvck1hcD1uKHQuc3BlY3VsYXJDb2xvck1hcCkpLHQuZW52TWFwIT09dm9pZCAwJiYoaS5lbnZNYXA9bih0LmVudk1hcCkpLHQuZW52TWFwSW50ZW5zaXR5IT09dm9pZCAwJiYoaS5lbnZNYXBJbnRlbnNpdHk9dC5lbnZNYXBJbnRlbnNpdHkpLHQucmVmbGVjdGl2aXR5IT09dm9pZCAwJiYoaS5yZWZsZWN0aXZpdHk9dC5yZWZsZWN0aXZpdHkpLHQucmVmcmFjdGlvblJhdGlvIT09dm9pZCAwJiYoaS5yZWZyYWN0aW9uUmF0aW89dC5yZWZyYWN0aW9uUmF0aW8pLHQubGlnaHRNYXAhPT12b2lkIDAmJihpLmxpZ2h0TWFwPW4odC5saWdodE1hcCkpLHQubGlnaHRNYXBJbnRlbnNpdHkhPT12b2lkIDAmJihpLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHkpLHQuYW9NYXAhPT12b2lkIDAmJihpLmFvTWFwPW4odC5hb01hcCkpLHQuYW9NYXBJbnRlbnNpdHkhPT12b2lkIDAmJihpLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHkpLHQuZ3JhZGllbnRNYXAhPT12b2lkIDAmJihpLmdyYWRpZW50TWFwPW4odC5ncmFkaWVudE1hcCkpLHQuY2xlYXJjb2F0TWFwIT09dm9pZCAwJiYoaS5jbGVhcmNvYXRNYXA9bih0LmNsZWFyY29hdE1hcCkpLHQuY2xlYXJjb2F0Um91Z2huZXNzTWFwIT09dm9pZCAwJiYoaS5jbGVhcmNvYXRSb3VnaG5lc3NNYXA9bih0LmNsZWFyY29hdFJvdWdobmVzc01hcCkpLHQuY2xlYXJjb2F0Tm9ybWFsTWFwIT09dm9pZCAwJiYoaS5jbGVhcmNvYXROb3JtYWxNYXA9bih0LmNsZWFyY29hdE5vcm1hbE1hcCkpLHQuY2xlYXJjb2F0Tm9ybWFsU2NhbGUhPT12b2lkIDAmJihpLmNsZWFyY29hdE5vcm1hbFNjYWxlPW5ldyBMdCgpLmZyb21BcnJheSh0LmNsZWFyY29hdE5vcm1hbFNjYWxlKSksdC50cmFuc21pc3Npb25NYXAhPT12b2lkIDAmJihpLnRyYW5zbWlzc2lvbk1hcD1uKHQudHJhbnNtaXNzaW9uTWFwKSksdC50aGlja25lc3NNYXAhPT12b2lkIDAmJihpLnRoaWNrbmVzc01hcD1uKHQudGhpY2tuZXNzTWFwKSksdC5zaGVlbkNvbG9yTWFwIT09dm9pZCAwJiYoaS5zaGVlbkNvbG9yTWFwPW4odC5zaGVlbkNvbG9yTWFwKSksdC5zaGVlblJvdWdobmVzc01hcCE9PXZvaWQgMCYmKGkuc2hlZW5Sb3VnaG5lc3NNYXA9bih0LnNoZWVuUm91Z2huZXNzTWFwKSksaX1zZXRUZXh0dXJlcyh0KXtyZXR1cm4gdGhpcy50ZXh0dXJlcz10LHRoaXN9fSxkTT1jbGFzc3tzdGF0aWMgZGVjb2RlVGV4dCh0KXtpZih0eXBlb2YgVGV4dERlY29kZXIhPSJ1bmRlZmluZWQiKXJldHVybiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUodCk7bGV0IHI9IiI7Zm9yKGxldCBuPTAsaT10Lmxlbmd0aDtuPGk7bisrKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUodFtuXSk7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKHIpKX1jYXRjaChuKXtyZXR1cm4gcn19c3RhdGljIGV4dHJhY3RVcmxCYXNlKHQpe2xldCByPXQubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4gcj09PS0xPyIuLyI6dC5zdWJzdHIoMCxyKzEpfXN0YXRpYyByZXNvbHZlVVJMKHQscil7cmV0dXJuIHR5cGVvZiB0IT0ic3RyaW5nInx8dD09PSIiPyIiOigvXmh0dHBzPzpcL1wvL2kudGVzdChyKSYmL15cLy8udGVzdCh0KSYmKHI9ci5yZXBsYWNlKC8oXmh0dHBzPzpcL1wvW15cL10rKS4qL2ksIiQxIikpLC9eKGh0dHBzPzopP1wvXC8vaS50ZXN0KHQpfHwvXmRhdGE6LiosLiokL2kudGVzdCh0KXx8L15ibG9iOi4qJC9pLnRlc3QodCk/dDpyK3QpfX0sTjY9Y2xhc3MgZXh0ZW5kcyBQZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSIsdGhpcy5pbnN0YW5jZUNvdW50PTEvMH1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuaW5zdGFuY2VDb3VudD10Lmluc3RhbmNlQ291bnQsdGhpc31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcigpLmNvcHkodGhpcyl9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKHRoaXMpO3JldHVybiB0Lmluc3RhbmNlQ291bnQ9dGhpcy5pbnN0YW5jZUNvdW50LHQuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeT0hMCx0fX07TjYucHJvdG90eXBlLmlzSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnk9ITA7dmFyIFJVPWNsYXNzIGV4dGVuZHMgZWF7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LHIsbixpKXtsZXQgbz10aGlzLGE9bmV3IEpjKG8ubWFuYWdlcik7YS5zZXRQYXRoKG8ucGF0aCksYS5zZXRSZXF1ZXN0SGVhZGVyKG8ucmVxdWVzdEhlYWRlciksYS5zZXRXaXRoQ3JlZGVudGlhbHMoby53aXRoQ3JlZGVudGlhbHMpLGEubG9hZCh0LGZ1bmN0aW9uKHMpe3RyeXtyKG8ucGFyc2UoSlNPTi5wYXJzZShzKSkpfWNhdGNoKGwpe2k/aShsKTpjb25zb2xlLmVycm9yKGwpLG8ubWFuYWdlci5pdGVtRXJyb3IodCl9fSxuLGkpfXBhcnNlKHQpe2xldCByPXt9LG49e307ZnVuY3Rpb24gaShwLGQpe2lmKHJbZF0hPT12b2lkIDApcmV0dXJuIHJbZF07bGV0IF89cC5pbnRlcmxlYXZlZEJ1ZmZlcnNbZF0seT1vKHAsXy5idWZmZXIpLHg9QjMoXy50eXBlLHkpLGI9bmV3IHJtKHgsXy5zdHJpZGUpO3JldHVybiBiLnV1aWQ9Xy51dWlkLHJbZF09YixifWZ1bmN0aW9uIG8ocCxkKXtpZihuW2RdIT09dm9pZCAwKXJldHVybiBuW2RdO2xldCBfPXAuYXJyYXlCdWZmZXJzW2RdLHk9bmV3IFVpbnQzMkFycmF5KF8pLmJ1ZmZlcjtyZXR1cm4gbltkXT15LHl9bGV0IGE9dC5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5P25ldyBONjpuZXcgUGUscz10LmRhdGEuaW5kZXg7aWYocyE9PXZvaWQgMCl7bGV0IHA9QjMocy50eXBlLHMuYXJyYXkpO2Euc2V0SW5kZXgobmV3IEplKHAsMSkpfWxldCBsPXQuZGF0YS5hdHRyaWJ1dGVzO2ZvcihsZXQgcCBpbiBsKXtsZXQgZD1sW3BdLGc7aWYoZC5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlKXtsZXQgXz1pKHQuZGF0YSxkLmRhdGEpO2c9bmV3IGVwKF8sZC5pdGVtU2l6ZSxkLm9mZnNldCxkLm5vcm1hbGl6ZWQpfWVsc2V7bGV0IF89QjMoZC50eXBlLGQuYXJyYXkpLHk9ZC5pc0luc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZT9ubTpKZTtnPW5ldyB5KF8sZC5pdGVtU2l6ZSxkLm5vcm1hbGl6ZWQpfWQubmFtZSE9PXZvaWQgMCYmKGcubmFtZT1kLm5hbWUpLGQudXNhZ2UhPT12b2lkIDAmJmcuc2V0VXNhZ2UoZC51c2FnZSksZC51cGRhdGVSYW5nZSE9PXZvaWQgMCYmKGcudXBkYXRlUmFuZ2Uub2Zmc2V0PWQudXBkYXRlUmFuZ2Uub2Zmc2V0LGcudXBkYXRlUmFuZ2UuY291bnQ9ZC51cGRhdGVSYW5nZS5jb3VudCksYS5zZXRBdHRyaWJ1dGUocCxnKX1sZXQgYz10LmRhdGEubW9ycGhBdHRyaWJ1dGVzO2lmKGMpZm9yKGxldCBwIGluIGMpe2xldCBkPWNbcF0sZz1bXTtmb3IobGV0IF89MCx5PWQubGVuZ3RoO188eTtfKyspe2xldCB4PWRbX10sYjtpZih4LmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUpe2xldCBTPWkodC5kYXRhLHguZGF0YSk7Yj1uZXcgZXAoUyx4Lml0ZW1TaXplLHgub2Zmc2V0LHgubm9ybWFsaXplZCl9ZWxzZXtsZXQgUz1CMyh4LnR5cGUseC5hcnJheSk7Yj1uZXcgSmUoUyx4Lml0ZW1TaXplLHgubm9ybWFsaXplZCl9eC5uYW1lIT09dm9pZCAwJiYoYi5uYW1lPXgubmFtZSksZy5wdXNoKGIpfWEubW9ycGhBdHRyaWJ1dGVzW3BdPWd9dC5kYXRhLm1vcnBoVGFyZ2V0c1JlbGF0aXZlJiYoYS5tb3JwaFRhcmdldHNSZWxhdGl2ZT0hMCk7bGV0IGg9dC5kYXRhLmdyb3Vwc3x8dC5kYXRhLmRyYXdjYWxsc3x8dC5kYXRhLm9mZnNldHM7aWYoaCE9PXZvaWQgMClmb3IobGV0IHA9MCxkPWgubGVuZ3RoO3AhPT1kOysrcCl7bGV0IGc9aFtwXTthLmFkZEdyb3VwKGcuc3RhcnQsZy5jb3VudCxnLm1hdGVyaWFsSW5kZXgpfWxldCBmPXQuZGF0YS5ib3VuZGluZ1NwaGVyZTtpZihmIT09dm9pZCAwKXtsZXQgcD1uZXcgajtmLmNlbnRlciE9PXZvaWQgMCYmcC5mcm9tQXJyYXkoZi5jZW50ZXIpLGEuYm91bmRpbmdTcGhlcmU9bmV3IEpmKHAsZi5yYWRpdXMpfXJldHVybiB0Lm5hbWUmJihhLm5hbWU9dC5uYW1lKSx0LnVzZXJEYXRhJiYoYS51c2VyRGF0YT10LnVzZXJEYXRhKSxhfX0sc2h0PWNsYXNzIGV4dGVuZHMgZWF7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LHIsbixpKXtsZXQgbz10aGlzLGE9dGhpcy5wYXRoPT09IiI/ZE0uZXh0cmFjdFVybEJhc2UodCk6dGhpcy5wYXRoO3RoaXMucmVzb3VyY2VQYXRoPXRoaXMucmVzb3VyY2VQYXRofHxhO2xldCBzPW5ldyBKYyh0aGlzLm1hbmFnZXIpO3Muc2V0UGF0aCh0aGlzLnBhdGgpLHMuc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLHMuc2V0V2l0aENyZWRlbnRpYWxzKHRoaXMud2l0aENyZWRlbnRpYWxzKSxzLmxvYWQodCxmdW5jdGlvbihsKXtsZXQgYz1udWxsO3RyeXtjPUpTT04ucGFyc2UobCl9Y2F0Y2goaCl7aSE9PXZvaWQgMCYmaShoKSxjb25zb2xlLmVycm9yKCJUSFJFRTpPYmplY3RMb2FkZXI6IENhbid0IHBhcnNlICIrdCsiLiIsaC5tZXNzYWdlKTtyZXR1cm59bGV0IHU9Yy5tZXRhZGF0YTtpZih1PT09dm9pZCAwfHx1LnR5cGU9PT12b2lkIDB8fHUudHlwZS50b0xvd2VyQ2FzZSgpPT09Imdlb21ldHJ5Iil7Y29uc29sZS5lcnJvcigiVEhSRUUuT2JqZWN0TG9hZGVyOiBDYW4ndCBsb2FkICIrdCk7cmV0dXJufW8ucGFyc2UoYyxyKX0sbixpKX1sb2FkQXN5bmModCxyKXtyZXR1cm4gUmkodGhpcyxudWxsLGZ1bmN0aW9uKigpe2xldCBuPXRoaXMsaT10aGlzLnBhdGg9PT0iIj9kTS5leHRyYWN0VXJsQmFzZSh0KTp0aGlzLnBhdGg7dGhpcy5yZXNvdXJjZVBhdGg9dGhpcy5yZXNvdXJjZVBhdGh8fGk7bGV0IG89bmV3IEpjKHRoaXMubWFuYWdlcik7by5zZXRQYXRoKHRoaXMucGF0aCksby5zZXRSZXF1ZXN0SGVhZGVyKHRoaXMucmVxdWVzdEhlYWRlciksby5zZXRXaXRoQ3JlZGVudGlhbHModGhpcy53aXRoQ3JlZGVudGlhbHMpO2xldCBhPXlpZWxkIG8ubG9hZEFzeW5jKHQscikscz1KU09OLnBhcnNlKGEpLGw9cy5tZXRhZGF0YTtpZihsPT09dm9pZCAwfHxsLnR5cGU9PT12b2lkIDB8fGwudHlwZS50b0xvd2VyQ2FzZSgpPT09Imdlb21ldHJ5Iil0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLk9iamVjdExvYWRlcjogQ2FuJ3QgbG9hZCAiK3QpO3JldHVybiB5aWVsZCBuLnBhcnNlQXN5bmMocyl9KX1wYXJzZSh0LHIpe2xldCBuPXRoaXMucGFyc2VBbmltYXRpb25zKHQuYW5pbWF0aW9ucyksaT10aGlzLnBhcnNlU2hhcGVzKHQuc2hhcGVzKSxvPXRoaXMucGFyc2VHZW9tZXRyaWVzKHQuZ2VvbWV0cmllcyxpKSxhPXRoaXMucGFyc2VJbWFnZXModC5pbWFnZXMsZnVuY3Rpb24oKXtyIT09dm9pZCAwJiZyKGMpfSkscz10aGlzLnBhcnNlVGV4dHVyZXModC50ZXh0dXJlcyxhKSxsPXRoaXMucGFyc2VNYXRlcmlhbHModC5tYXRlcmlhbHMscyksYz10aGlzLnBhcnNlT2JqZWN0KHQub2JqZWN0LG8sbCxzLG4pLHU9dGhpcy5wYXJzZVNrZWxldG9ucyh0LnNrZWxldG9ucyxjKTtpZih0aGlzLmJpbmRTa2VsZXRvbnMoYyx1KSxyIT09dm9pZCAwKXtsZXQgaD0hMTtmb3IobGV0IGYgaW4gYSlpZihhW2ZdaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50KXtoPSEwO2JyZWFrfWg9PT0hMSYmcihjKX1yZXR1cm4gY31wYXJzZUFzeW5jKHQpe3JldHVybiBSaSh0aGlzLG51bGwsZnVuY3Rpb24qKCl7bGV0IHI9dGhpcy5wYXJzZUFuaW1hdGlvbnModC5hbmltYXRpb25zKSxuPXRoaXMucGFyc2VTaGFwZXModC5zaGFwZXMpLGk9dGhpcy5wYXJzZUdlb21ldHJpZXModC5nZW9tZXRyaWVzLG4pLG89eWllbGQgdGhpcy5wYXJzZUltYWdlc0FzeW5jKHQuaW1hZ2VzKSxhPXRoaXMucGFyc2VUZXh0dXJlcyh0LnRleHR1cmVzLG8pLHM9dGhpcy5wYXJzZU1hdGVyaWFscyh0Lm1hdGVyaWFscyxhKSxsPXRoaXMucGFyc2VPYmplY3QodC5vYmplY3QsaSxzLGEsciksYz10aGlzLnBhcnNlU2tlbGV0b25zKHQuc2tlbGV0b25zLGwpO3JldHVybiB0aGlzLmJpbmRTa2VsZXRvbnMobCxjKSxsfSl9cGFyc2VTaGFwZXModCl7bGV0IHI9e307aWYodCE9PXZvaWQgMClmb3IobGV0IG49MCxpPXQubGVuZ3RoO248aTtuKyspe2xldCBvPW5ldyBLYygpLmZyb21KU09OKHRbbl0pO3Jbby51dWlkXT1vfXJldHVybiByfXBhcnNlU2tlbGV0b25zKHQscil7bGV0IG49e30saT17fTtpZihyLnRyYXZlcnNlKGZ1bmN0aW9uKG8pe28uaXNCb25lJiYoaVtvLnV1aWRdPW8pfSksdCE9PXZvaWQgMClmb3IobGV0IG89MCxhPXQubGVuZ3RoO288YTtvKyspe2xldCBzPW5ldyBsTSgpLmZyb21KU09OKHRbb10saSk7bltzLnV1aWRdPXN9cmV0dXJuIG59cGFyc2VHZW9tZXRyaWVzKHQscil7bGV0IG49e307aWYodCE9PXZvaWQgMCl7bGV0IGk9bmV3IFJVO2ZvcihsZXQgbz0wLGE9dC5sZW5ndGg7bzxhO28rKyl7bGV0IHMsbD10W29dO3N3aXRjaChsLnR5cGUpe2Nhc2UiQnVmZmVyR2VvbWV0cnkiOmNhc2UiSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkiOnM9aS5wYXJzZShsKTticmVhaztjYXNlIkdlb21ldHJ5Ijpjb25zb2xlLmVycm9yKCJUSFJFRS5PYmplY3RMb2FkZXI6IFRoZSBsZWdhY3kgR2VvbWV0cnkgdHlwZSBpcyBubyBsb25nZXIgc3VwcG9ydGVkLiIpO2JyZWFrO2RlZmF1bHQ6bC50eXBlIGluIHZoZT9zPXZoZVtsLnR5cGVdLmZyb21KU09OKGwscik6Y29uc29sZS53YXJuKGBUSFJFRS5PYmplY3RMb2FkZXI6IFVuc3VwcG9ydGVkIGdlb21ldHJ5IHR5cGUgIiR7bC50eXBlfSJgKX1zLnV1aWQ9bC51dWlkLGwubmFtZSE9PXZvaWQgMCYmKHMubmFtZT1sLm5hbWUpLHMuaXNCdWZmZXJHZW9tZXRyeT09PSEwJiZsLnVzZXJEYXRhIT09dm9pZCAwJiYocy51c2VyRGF0YT1sLnVzZXJEYXRhKSxuW2wudXVpZF09c319cmV0dXJuIG59cGFyc2VNYXRlcmlhbHModCxyKXtsZXQgbj17fSxpPXt9O2lmKHQhPT12b2lkIDApe2xldCBvPW5ldyBrVTtvLnNldFRleHR1cmVzKHIpO2ZvcihsZXQgYT0wLHM9dC5sZW5ndGg7YTxzO2ErKyl7bGV0IGw9dFthXTtpZihsLnR5cGU9PT0iTXVsdGlNYXRlcmlhbCIpe2xldCBjPVtdO2ZvcihsZXQgdT0wO3U8bC5tYXRlcmlhbHMubGVuZ3RoO3UrKyl7bGV0IGg9bC5tYXRlcmlhbHNbdV07bltoLnV1aWRdPT09dm9pZCAwJiYobltoLnV1aWRdPW8ucGFyc2UoaCkpLGMucHVzaChuW2gudXVpZF0pfWlbbC51dWlkXT1jfWVsc2UgbltsLnV1aWRdPT09dm9pZCAwJiYobltsLnV1aWRdPW8ucGFyc2UobCkpLGlbbC51dWlkXT1uW2wudXVpZF19fXJldHVybiBpfXBhcnNlQW5pbWF0aW9ucyh0KXtsZXQgcj17fTtpZih0IT09dm9pZCAwKWZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXtsZXQgaT10W25dLG89dHgucGFyc2UoaSk7cltvLnV1aWRdPW99cmV0dXJuIHJ9cGFyc2VJbWFnZXModCxyKXtsZXQgbj10aGlzLGk9e30sbztmdW5jdGlvbiBhKGwpe3JldHVybiBuLm1hbmFnZXIuaXRlbVN0YXJ0KGwpLG8ubG9hZChsLGZ1bmN0aW9uKCl7bi5tYW5hZ2VyLml0ZW1FbmQobCl9LHZvaWQgMCxmdW5jdGlvbigpe24ubWFuYWdlci5pdGVtRXJyb3IobCksbi5tYW5hZ2VyLml0ZW1FbmQobCl9KX1mdW5jdGlvbiBzKGwpe2lmKHR5cGVvZiBsPT0ic3RyaW5nIil7bGV0IGM9bCx1PS9eKFwvXC8pfChbYS16XSs6KFwvXC8pPykvaS50ZXN0KGMpP2M6bi5yZXNvdXJjZVBhdGgrYztyZXR1cm4gYSh1KX1lbHNlIHJldHVybiBsLmRhdGE/e2RhdGE6QjMobC50eXBlLGwuZGF0YSksd2lkdGg6bC53aWR0aCxoZWlnaHQ6bC5oZWlnaHR9Om51bGx9aWYodCE9PXZvaWQgMCYmdC5sZW5ndGg+MCl7bGV0IGw9bmV3IEU2KHIpO289bmV3IHJ4KGwpLG8uc2V0Q3Jvc3NPcmlnaW4odGhpcy5jcm9zc09yaWdpbik7Zm9yKGxldCBjPTAsdT10Lmxlbmd0aDtjPHU7YysrKXtsZXQgaD10W2NdLGY9aC51cmw7aWYoQXJyYXkuaXNBcnJheShmKSl7aVtoLnV1aWRdPVtdO2ZvcihsZXQgcD0wLGQ9Zi5sZW5ndGg7cDxkO3ArKyl7bGV0IGc9ZltwXSxfPXMoZyk7XyE9PW51bGwmJihfIGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudD9pW2gudXVpZF0ucHVzaChfKTppW2gudXVpZF0ucHVzaChuZXcgUWQoXy5kYXRhLF8ud2lkdGgsXy5oZWlnaHQpKSl9fWVsc2V7bGV0IHA9cyhoLnVybCk7cCE9PW51bGwmJihpW2gudXVpZF09cCl9fX1yZXR1cm4gaX1wYXJzZUltYWdlc0FzeW5jKHQpe3JldHVybiBSaSh0aGlzLG51bGwsZnVuY3Rpb24qKCl7bGV0IHI9dGhpcyxuPXt9LGk7ZnVuY3Rpb24gbyhhKXtyZXR1cm4gUmkodGhpcyxudWxsLGZ1bmN0aW9uKigpe2lmKHR5cGVvZiBhPT0ic3RyaW5nIil7bGV0IHM9YSxsPS9eKFwvXC8pfChbYS16XSs6KFwvXC8pPykvaS50ZXN0KHMpP3M6ci5yZXNvdXJjZVBhdGgrcztyZXR1cm4geWllbGQgaS5sb2FkQXN5bmMobCl9ZWxzZSByZXR1cm4gYS5kYXRhP3tkYXRhOkIzKGEudHlwZSxhLmRhdGEpLHdpZHRoOmEud2lkdGgsaGVpZ2h0OmEuaGVpZ2h0fTpudWxsfSl9aWYodCE9PXZvaWQgMCYmdC5sZW5ndGg+MCl7aT1uZXcgcngodGhpcy5tYW5hZ2VyKSxpLnNldENyb3NzT3JpZ2luKHRoaXMuY3Jvc3NPcmlnaW4pO2ZvcihsZXQgYT0wLHM9dC5sZW5ndGg7YTxzO2ErKyl7bGV0IGw9dFthXSxjPWwudXJsO2lmKEFycmF5LmlzQXJyYXkoYykpe25bbC51dWlkXT1bXTtmb3IobGV0IHU9MCxoPWMubGVuZ3RoO3U8aDt1Kyspe2xldCBmPWNbdV0scD15aWVsZCBvKGYpO3AhPT1udWxsJiYocCBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnQ/bltsLnV1aWRdLnB1c2gocCk6bltsLnV1aWRdLnB1c2gobmV3IFFkKHAuZGF0YSxwLndpZHRoLHAuaGVpZ2h0KSkpfX1lbHNle2xldCB1PXlpZWxkIG8obC51cmwpO3UhPT1udWxsJiYobltsLnV1aWRdPXUpfX19cmV0dXJuIG59KX1wYXJzZVRleHR1cmVzKHQscil7ZnVuY3Rpb24gbihvLGEpe3JldHVybiB0eXBlb2Ygbz09Im51bWJlciI/bzooY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3RMb2FkZXIucGFyc2VUZXh0dXJlOiBDb25zdGFudCBzaG91bGQgYmUgaW4gbnVtZXJpYyBmb3JtLiIsbyksYVtvXSl9bGV0IGk9e307aWYodCE9PXZvaWQgMClmb3IobGV0IG89MCxhPXQubGVuZ3RoO288YTtvKyspe2xldCBzPXRbb107cy5pbWFnZT09PXZvaWQgMCYmY29uc29sZS53YXJuKCdUSFJFRS5PYmplY3RMb2FkZXI6IE5vICJpbWFnZSIgc3BlY2lmaWVkIGZvcicscy51dWlkKSxyW3MuaW1hZ2VdPT09dm9pZCAwJiZjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdExvYWRlcjogVW5kZWZpbmVkIGltYWdlIixzLmltYWdlKTtsZXQgbCxjPXJbcy5pbWFnZV07QXJyYXkuaXNBcnJheShjKT8obD1uZXcgVjAoYyksYy5sZW5ndGg9PT02JiYobC5uZWVkc1VwZGF0ZT0hMCkpOihjJiZjLmRhdGE/bD1uZXcgUWQoYy5kYXRhLGMud2lkdGgsYy5oZWlnaHQpOmw9bmV3IHZpKGMpLGMmJihsLm5lZWRzVXBkYXRlPSEwKSksbC51dWlkPXMudXVpZCxzLm5hbWUhPT12b2lkIDAmJihsLm5hbWU9cy5uYW1lKSxzLm1hcHBpbmchPT12b2lkIDAmJihsLm1hcHBpbmc9bihzLm1hcHBpbmcscDByKSkscy5vZmZzZXQhPT12b2lkIDAmJmwub2Zmc2V0LmZyb21BcnJheShzLm9mZnNldCkscy5yZXBlYXQhPT12b2lkIDAmJmwucmVwZWF0LmZyb21BcnJheShzLnJlcGVhdCkscy5jZW50ZXIhPT12b2lkIDAmJmwuY2VudGVyLmZyb21BcnJheShzLmNlbnRlcikscy5yb3RhdGlvbiE9PXZvaWQgMCYmKGwucm90YXRpb249cy5yb3RhdGlvbikscy53cmFwIT09dm9pZCAwJiYobC53cmFwUz1uKHMud3JhcFswXSxNaGUpLGwud3JhcFQ9bihzLndyYXBbMV0sTWhlKSkscy5mb3JtYXQhPT12b2lkIDAmJihsLmZvcm1hdD1zLmZvcm1hdCkscy50eXBlIT09dm9pZCAwJiYobC50eXBlPXMudHlwZSkscy5lbmNvZGluZyE9PXZvaWQgMCYmKGwuZW5jb2Rpbmc9cy5lbmNvZGluZykscy5taW5GaWx0ZXIhPT12b2lkIDAmJihsLm1pbkZpbHRlcj1uKHMubWluRmlsdGVyLEVoZSkpLHMubWFnRmlsdGVyIT09dm9pZCAwJiYobC5tYWdGaWx0ZXI9bihzLm1hZ0ZpbHRlcixFaGUpKSxzLmFuaXNvdHJvcHkhPT12b2lkIDAmJihsLmFuaXNvdHJvcHk9cy5hbmlzb3Ryb3B5KSxzLmZsaXBZIT09dm9pZCAwJiYobC5mbGlwWT1zLmZsaXBZKSxzLnByZW11bHRpcGx5QWxwaGEhPT12b2lkIDAmJihsLnByZW11bHRpcGx5QWxwaGE9cy5wcmVtdWx0aXBseUFscGhhKSxzLnVucGFja0FsaWdubWVudCE9PXZvaWQgMCYmKGwudW5wYWNrQWxpZ25tZW50PXMudW5wYWNrQWxpZ25tZW50KSxzLnVzZXJEYXRhIT09dm9pZCAwJiYobC51c2VyRGF0YT1zLnVzZXJEYXRhKSxpW3MudXVpZF09bH1yZXR1cm4gaX1wYXJzZU9iamVjdCh0LHIsbixpLG8pe2xldCBhO2Z1bmN0aW9uIHMoZil7cmV0dXJuIHJbZl09PT12b2lkIDAmJmNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0TG9hZGVyOiBVbmRlZmluZWQgZ2VvbWV0cnkiLGYpLHJbZl19ZnVuY3Rpb24gbChmKXtpZihmIT09dm9pZCAwKXtpZihBcnJheS5pc0FycmF5KGYpKXtsZXQgcD1bXTtmb3IobGV0IGQ9MCxnPWYubGVuZ3RoO2Q8ZztkKyspe2xldCBfPWZbZF07bltfXT09PXZvaWQgMCYmY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3RMb2FkZXI6IFVuZGVmaW5lZCBtYXRlcmlhbCIsXykscC5wdXNoKG5bX10pfXJldHVybiBwfXJldHVybiBuW2ZdPT09dm9pZCAwJiZjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdExvYWRlcjogVW5kZWZpbmVkIG1hdGVyaWFsIixmKSxuW2ZdfX1mdW5jdGlvbiBjKGYpe3JldHVybiBpW2ZdPT09dm9pZCAwJiZjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdExvYWRlcjogVW5kZWZpbmVkIHRleHR1cmUiLGYpLGlbZl19bGV0IHUsaDtzd2l0Y2godC50eXBlKXtjYXNlIlNjZW5lIjphPW5ldyBHMCx0LmJhY2tncm91bmQhPT12b2lkIDAmJihOdW1iZXIuaXNJbnRlZ2VyKHQuYmFja2dyb3VuZCk/YS5iYWNrZ3JvdW5kPW5ldyBuZSh0LmJhY2tncm91bmQpOmEuYmFja2dyb3VuZD1jKHQuYmFja2dyb3VuZCkpLHQuZW52aXJvbm1lbnQhPT12b2lkIDAmJihhLmVudmlyb25tZW50PWModC5lbnZpcm9ubWVudCkpLHQuZm9nIT09dm9pZCAwJiYodC5mb2cudHlwZT09PSJGb2ciP2EuZm9nPW5ldyBGMSh0LmZvZy5jb2xvcix0LmZvZy5uZWFyLHQuZm9nLmZhcik6dC5mb2cudHlwZT09PSJGb2dFeHAyIiYmKGEuZm9nPW5ldyB6MSh0LmZvZy5jb2xvcix0LmZvZy5kZW5zaXR5KSkpO2JyZWFrO2Nhc2UiUGVyc3BlY3RpdmVDYW1lcmEiOmE9bmV3IFVpKHQuZm92LHQuYXNwZWN0LHQubmVhcix0LmZhciksdC5mb2N1cyE9PXZvaWQgMCYmKGEuZm9jdXM9dC5mb2N1cyksdC56b29tIT09dm9pZCAwJiYoYS56b29tPXQuem9vbSksdC5maWxtR2F1Z2UhPT12b2lkIDAmJihhLmZpbG1HYXVnZT10LmZpbG1HYXVnZSksdC5maWxtT2Zmc2V0IT09dm9pZCAwJiYoYS5maWxtT2Zmc2V0PXQuZmlsbU9mZnNldCksdC52aWV3IT09dm9pZCAwJiYoYS52aWV3PU9iamVjdC5hc3NpZ24oe30sdC52aWV3KSk7YnJlYWs7Y2FzZSJPcnRob2dyYXBoaWNDYW1lcmEiOmE9bmV3IE8xKHQubGVmdCx0LnJpZ2h0LHQudG9wLHQuYm90dG9tLHQubmVhcix0LmZhciksdC56b29tIT09dm9pZCAwJiYoYS56b29tPXQuem9vbSksdC52aWV3IT09dm9pZCAwJiYoYS52aWV3PU9iamVjdC5hc3NpZ24oe30sdC52aWV3KSk7YnJlYWs7Y2FzZSJBbWJpZW50TGlnaHQiOmE9bmV3IEw2KHQuY29sb3IsdC5pbnRlbnNpdHkpO2JyZWFrO2Nhc2UiRGlyZWN0aW9uYWxMaWdodCI6YT1uZXcgSTYodC5jb2xvcix0LmludGVuc2l0eSk7YnJlYWs7Y2FzZSJQb2ludExpZ2h0IjphPW5ldyBQNih0LmNvbG9yLHQuaW50ZW5zaXR5LHQuZGlzdGFuY2UsdC5kZWNheSk7YnJlYWs7Y2FzZSJSZWN0QXJlYUxpZ2h0IjphPW5ldyBrNih0LmNvbG9yLHQuaW50ZW5zaXR5LHQud2lkdGgsdC5oZWlnaHQpO2JyZWFrO2Nhc2UiU3BvdExpZ2h0IjphPW5ldyBBNih0LmNvbG9yLHQuaW50ZW5zaXR5LHQuZGlzdGFuY2UsdC5hbmdsZSx0LnBlbnVtYnJhLHQuZGVjYXkpO2JyZWFrO2Nhc2UiSGVtaXNwaGVyZUxpZ2h0IjphPW5ldyBUNih0LmNvbG9yLHQuZ3JvdW5kQ29sb3IsdC5pbnRlbnNpdHkpO2JyZWFrO2Nhc2UiTGlnaHRQcm9iZSI6YT1uZXcgbngoKS5mcm9tSlNPTih0KTticmVhaztjYXNlIlNraW5uZWRNZXNoIjp1PXModC5nZW9tZXRyeSksaD1sKHQubWF0ZXJpYWwpLGE9bmV3IGFNKHUsaCksdC5iaW5kTW9kZSE9PXZvaWQgMCYmKGEuYmluZE1vZGU9dC5iaW5kTW9kZSksdC5iaW5kTWF0cml4IT09dm9pZCAwJiZhLmJpbmRNYXRyaXguZnJvbUFycmF5KHQuYmluZE1hdHJpeCksdC5za2VsZXRvbiE9PXZvaWQgMCYmKGEuc2tlbGV0b249dC5za2VsZXRvbik7YnJlYWs7Y2FzZSJNZXNoIjp1PXModC5nZW9tZXRyeSksaD1sKHQubWF0ZXJpYWwpLGE9bmV3IHRpKHUsaCk7YnJlYWs7Y2FzZSJJbnN0YW5jZWRNZXNoIjp1PXModC5nZW9tZXRyeSksaD1sKHQubWF0ZXJpYWwpO2xldCBmPXQuY291bnQscD10Lmluc3RhbmNlTWF0cml4LGQ9dC5pbnN0YW5jZUNvbG9yO2E9bmV3IGk2KHUsaCxmKSxhLmluc3RhbmNlTWF0cml4PW5ldyBubShuZXcgRmxvYXQzMkFycmF5KHAuYXJyYXkpLDE2KSxkIT09dm9pZCAwJiYoYS5pbnN0YW5jZUNvbG9yPW5ldyBubShuZXcgRmxvYXQzMkFycmF5KGQuYXJyYXkpLGQuaXRlbVNpemUpKTticmVhaztjYXNlIkxPRCI6YT1uZXcgX1U7YnJlYWs7Y2FzZSJMaW5lIjphPW5ldyBjaChzKHQuZ2VvbWV0cnkpLGwodC5tYXRlcmlhbCkpO2JyZWFrO2Nhc2UiTGluZUxvb3AiOmE9bmV3IG82KHModC5nZW9tZXRyeSksbCh0Lm1hdGVyaWFsKSk7YnJlYWs7Y2FzZSJMaW5lU2VnbWVudHMiOmE9bmV3IFBhKHModC5nZW9tZXRyeSksbCh0Lm1hdGVyaWFsKSk7YnJlYWs7Y2FzZSJQb2ludENsb3VkIjpjYXNlIlBvaW50cyI6YT1uZXcgb20ocyh0Lmdlb21ldHJ5KSxsKHQubWF0ZXJpYWwpKTticmVhaztjYXNlIlNwcml0ZSI6YT1uZXcgb00obCh0Lm1hdGVyaWFsKSk7YnJlYWs7Y2FzZSJHcm91cCI6YT1uZXcgJGQ7YnJlYWs7Y2FzZSJCb25lIjphPW5ldyBzTTticmVhaztkZWZhdWx0OmE9bmV3IG9yfWlmKGEudXVpZD10LnV1aWQsdC5uYW1lIT09dm9pZCAwJiYoYS5uYW1lPXQubmFtZSksdC5tYXRyaXghPT12b2lkIDA/KGEubWF0cml4LmZyb21BcnJheSh0Lm1hdHJpeCksdC5tYXRyaXhBdXRvVXBkYXRlIT09dm9pZCAwJiYoYS5tYXRyaXhBdXRvVXBkYXRlPXQubWF0cml4QXV0b1VwZGF0ZSksYS5tYXRyaXhBdXRvVXBkYXRlJiZhLm1hdHJpeC5kZWNvbXBvc2UoYS5wb3NpdGlvbixhLnF1YXRlcm5pb24sYS5zY2FsZSkpOih0LnBvc2l0aW9uIT09dm9pZCAwJiZhLnBvc2l0aW9uLmZyb21BcnJheSh0LnBvc2l0aW9uKSx0LnJvdGF0aW9uIT09dm9pZCAwJiZhLnJvdGF0aW9uLmZyb21BcnJheSh0LnJvdGF0aW9uKSx0LnF1YXRlcm5pb24hPT12b2lkIDAmJmEucXVhdGVybmlvbi5mcm9tQXJyYXkodC5xdWF0ZXJuaW9uKSx0LnNjYWxlIT09dm9pZCAwJiZhLnNjYWxlLmZyb21BcnJheSh0LnNjYWxlKSksdC5jYXN0U2hhZG93IT09dm9pZCAwJiYoYS5jYXN0U2hhZG93PXQuY2FzdFNoYWRvdyksdC5yZWNlaXZlU2hhZG93IT09dm9pZCAwJiYoYS5yZWNlaXZlU2hhZG93PXQucmVjZWl2ZVNoYWRvdyksdC5zaGFkb3cmJih0LnNoYWRvdy5iaWFzIT09dm9pZCAwJiYoYS5zaGFkb3cuYmlhcz10LnNoYWRvdy5iaWFzKSx0LnNoYWRvdy5ub3JtYWxCaWFzIT09dm9pZCAwJiYoYS5zaGFkb3cubm9ybWFsQmlhcz10LnNoYWRvdy5ub3JtYWxCaWFzKSx0LnNoYWRvdy5yYWRpdXMhPT12b2lkIDAmJihhLnNoYWRvdy5yYWRpdXM9dC5zaGFkb3cucmFkaXVzKSx0LnNoYWRvdy5tYXBTaXplIT09dm9pZCAwJiZhLnNoYWRvdy5tYXBTaXplLmZyb21BcnJheSh0LnNoYWRvdy5tYXBTaXplKSx0LnNoYWRvdy5jYW1lcmEhPT12b2lkIDAmJihhLnNoYWRvdy5jYW1lcmE9dGhpcy5wYXJzZU9iamVjdCh0LnNoYWRvdy5jYW1lcmEpKSksdC52aXNpYmxlIT09dm9pZCAwJiYoYS52aXNpYmxlPXQudmlzaWJsZSksdC5mcnVzdHVtQ3VsbGVkIT09dm9pZCAwJiYoYS5mcnVzdHVtQ3VsbGVkPXQuZnJ1c3R1bUN1bGxlZCksdC5yZW5kZXJPcmRlciE9PXZvaWQgMCYmKGEucmVuZGVyT3JkZXI9dC5yZW5kZXJPcmRlciksdC51c2VyRGF0YSE9PXZvaWQgMCYmKGEudXNlckRhdGE9dC51c2VyRGF0YSksdC5sYXllcnMhPT12b2lkIDAmJihhLmxheWVycy5tYXNrPXQubGF5ZXJzKSx0LmNoaWxkcmVuIT09dm9pZCAwKXtsZXQgZj10LmNoaWxkcmVuO2ZvcihsZXQgcD0wO3A8Zi5sZW5ndGg7cCsrKWEuYWRkKHRoaXMucGFyc2VPYmplY3QoZltwXSxyLG4saSxvKSl9aWYodC5hbmltYXRpb25zIT09dm9pZCAwKXtsZXQgZj10LmFuaW1hdGlvbnM7Zm9yKGxldCBwPTA7cDxmLmxlbmd0aDtwKyspe2xldCBkPWZbcF07YS5hbmltYXRpb25zLnB1c2gob1tkXSl9fWlmKHQudHlwZT09PSJMT0QiKXt0LmF1dG9VcGRhdGUhPT12b2lkIDAmJihhLmF1dG9VcGRhdGU9dC5hdXRvVXBkYXRlKTtsZXQgZj10LmxldmVscztmb3IobGV0IHA9MDtwPGYubGVuZ3RoO3ArKyl7bGV0IGQ9ZltwXSxnPWEuZ2V0T2JqZWN0QnlQcm9wZXJ0eSgidXVpZCIsZC5vYmplY3QpO2chPT12b2lkIDAmJmEuYWRkTGV2ZWwoZyxkLmRpc3RhbmNlKX19cmV0dXJuIGF9YmluZFNrZWxldG9ucyh0LHIpe09iamVjdC5rZXlzKHIpLmxlbmd0aCE9PTAmJnQudHJhdmVyc2UoZnVuY3Rpb24obil7aWYobi5pc1NraW5uZWRNZXNoPT09ITAmJm4uc2tlbGV0b24hPT12b2lkIDApe2xldCBpPXJbbi5za2VsZXRvbl07aT09PXZvaWQgMD9jb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdExvYWRlcjogTm8gc2tlbGV0b24gZm91bmQgd2l0aCBVVUlEOiIsbi5za2VsZXRvbik6bi5iaW5kKGksbi5iaW5kTWF0cml4KX19KX1zZXRUZXh0dXJlUGF0aCh0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3RMb2FkZXI6IC5zZXRUZXh0dXJlUGF0aCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldFJlc291cmNlUGF0aCgpLiIpLHRoaXMuc2V0UmVzb3VyY2VQYXRoKHQpfX0scDByPXtVVk1hcHBpbmc6WFUsQ3ViZVJlZmxlY3Rpb25NYXBwaW5nOml4LEN1YmVSZWZyYWN0aW9uTWFwcGluZzpveCxFcXVpcmVjdGFuZ3VsYXJSZWZsZWN0aW9uTWFwcGluZzpZUCxFcXVpcmVjdGFuZ3VsYXJSZWZyYWN0aW9uTWFwcGluZzpqUCxDdWJlVVZSZWZsZWN0aW9uTWFwcGluZzp4TSxDdWJlVVZSZWZyYWN0aW9uTWFwcGluZzp6Nn0sTWhlPXtSZXBlYXRXcmFwcGluZzpYUCxDbGFtcFRvRWRnZVdyYXBwaW5nOkpvLE1pcnJvcmVkUmVwZWF0V3JhcHBpbmc6JFB9LEVoZT17TmVhcmVzdEZpbHRlcjpMaSxOZWFyZXN0TWlwbWFwTmVhcmVzdEZpbHRlcjpvVSxOZWFyZXN0TWlwbWFwTGluZWFyRmlsdGVyOmFVLExpbmVhckZpbHRlcjppaSxMaW5lYXJNaXBtYXBOZWFyZXN0RmlsdGVyOkxodCxMaW5lYXJNaXBtYXBMaW5lYXJGaWx0ZXI6YXh9LE5VPWNsYXNzIGV4dGVuZHMgZWF7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdHlwZW9mIGNyZWF0ZUltYWdlQml0bWFwPT0idW5kZWZpbmVkIiYmY29uc29sZS53YXJuKCJUSFJFRS5JbWFnZUJpdG1hcExvYWRlcjogY3JlYXRlSW1hZ2VCaXRtYXAoKSBub3Qgc3VwcG9ydGVkLiIpLHR5cGVvZiBmZXRjaD09InVuZGVmaW5lZCImJmNvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VCaXRtYXBMb2FkZXI6IGZldGNoKCkgbm90IHN1cHBvcnRlZC4iKSx0aGlzLm9wdGlvbnM9e3ByZW11bHRpcGx5QWxwaGE6Im5vbmUifX1zZXRPcHRpb25zKHQpe3JldHVybiB0aGlzLm9wdGlvbnM9dCx0aGlzfWxvYWQodCxyLG4saSl7dD09PXZvaWQgMCYmKHQ9IiIpLHRoaXMucGF0aCE9PXZvaWQgMCYmKHQ9dGhpcy5wYXRoK3QpLHQ9dGhpcy5tYW5hZ2VyLnJlc29sdmVVUkwodCk7bGV0IG89dGhpcyxhPWV4LmdldCh0KTtpZihhIT09dm9pZCAwKXJldHVybiBvLm1hbmFnZXIuaXRlbVN0YXJ0KHQpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyJiZyKGEpLG8ubWFuYWdlci5pdGVtRW5kKHQpfSwwKSxhO2xldCBzPXt9O3MuY3JlZGVudGlhbHM9dGhpcy5jcm9zc09yaWdpbj09PSJhbm9ueW1vdXMiPyJzYW1lLW9yaWdpbiI6ImluY2x1ZGUiLHMuaGVhZGVycz10aGlzLnJlcXVlc3RIZWFkZXIsZmV0Y2godCxzKS50aGVuKGZ1bmN0aW9uKGwpe3JldHVybiBsLmJsb2IoKX0pLnRoZW4oZnVuY3Rpb24obCl7cmV0dXJuIGNyZWF0ZUltYWdlQml0bWFwKGwsT2JqZWN0LmFzc2lnbihvLm9wdGlvbnMse2NvbG9yU3BhY2VDb252ZXJzaW9uOiJub25lIn0pKX0pLnRoZW4oZnVuY3Rpb24obCl7ZXguYWRkKHQsbCksciYmcihsKSxvLm1hbmFnZXIuaXRlbUVuZCh0KX0pLmNhdGNoKGZ1bmN0aW9uKGwpe2kmJmkobCksby5tYW5hZ2VyLml0ZW1FcnJvcih0KSxvLm1hbmFnZXIuaXRlbUVuZCh0KX0pLG8ubWFuYWdlci5pdGVtU3RhcnQodCl9fTtOVS5wcm90b3R5cGUuaXNJbWFnZUJpdG1hcExvYWRlcj0hMDt2YXIgV1Ysemh0PXtnZXRDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIFdWPT09dm9pZCAwJiYoV1Y9bmV3KHdpbmRvdy5BdWRpb0NvbnRleHR8fHdpbmRvdy53ZWJraXRBdWRpb0NvbnRleHQpKSxXVn0sc2V0Q29udGV4dDpmdW5jdGlvbihlKXtXVj1lfX0sRFU9Y2xhc3MgZXh0ZW5kcyBlYXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQscixuLGkpe2xldCBvPXRoaXMsYT1uZXcgSmModGhpcy5tYW5hZ2VyKTthLnNldFJlc3BvbnNlVHlwZSgiYXJyYXlidWZmZXIiKSxhLnNldFBhdGgodGhpcy5wYXRoKSxhLnNldFJlcXVlc3RIZWFkZXIodGhpcy5yZXF1ZXN0SGVhZGVyKSxhLnNldFdpdGhDcmVkZW50aWFscyh0aGlzLndpdGhDcmVkZW50aWFscyksYS5sb2FkKHQsZnVuY3Rpb24ocyl7dHJ5e2xldCBsPXMuc2xpY2UoMCk7emh0LmdldENvbnRleHQoKS5kZWNvZGVBdWRpb0RhdGEobCxmdW5jdGlvbih1KXtyKHUpfSl9Y2F0Y2gobCl7aT9pKGwpOmNvbnNvbGUuZXJyb3IobCksby5tYW5hZ2VyLml0ZW1FcnJvcih0KX19LG4saSl9fSxPVT1jbGFzcyBleHRlbmRzIG54e2NvbnN0cnVjdG9yKHQscixuPTEpe3N1cGVyKHZvaWQgMCxuKTtsZXQgaT1uZXcgbmUoKS5zZXQodCksbz1uZXcgbmUoKS5zZXQociksYT1uZXcgaihpLnIsaS5nLGkuYikscz1uZXcgaihvLnIsby5nLG8uYiksbD1NYXRoLnNxcnQoTWF0aC5QSSksYz1sKk1hdGguc3FydCguNzUpO3RoaXMuc2guY29lZmZpY2llbnRzWzBdLmNvcHkoYSkuYWRkKHMpLm11bHRpcGx5U2NhbGFyKGwpLHRoaXMuc2guY29lZmZpY2llbnRzWzFdLmNvcHkoYSkuc3ViKHMpLm11bHRpcGx5U2NhbGFyKGMpfX07T1UucHJvdG90eXBlLmlzSGVtaXNwaGVyZUxpZ2h0UHJvYmU9ITA7dmFyIHpVPWNsYXNzIGV4dGVuZHMgbnh7Y29uc3RydWN0b3IodCxyPTEpe3N1cGVyKHZvaWQgMCxyKTtsZXQgbj1uZXcgbmUoKS5zZXQodCk7dGhpcy5zaC5jb2VmZmljaWVudHNbMF0uc2V0KG4ucixuLmcsbi5iKS5tdWx0aXBseVNjYWxhcigyKk1hdGguc3FydChNYXRoLlBJKSl9fTt6VS5wcm90b3R5cGUuaXNBbWJpZW50TGlnaHRQcm9iZT0hMDt2YXIgVGhlPW5ldyBNZSxDaGU9bmV3IE1lLHYxPW5ldyBNZSxsaHQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnR5cGU9IlN0ZXJlb0NhbWVyYSIsdGhpcy5hc3BlY3Q9MSx0aGlzLmV5ZVNlcD0uMDY0LHRoaXMuY2FtZXJhTD1uZXcgVWksdGhpcy5jYW1lcmFMLmxheWVycy5lbmFibGUoMSksdGhpcy5jYW1lcmFMLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5jYW1lcmFSPW5ldyBVaSx0aGlzLmNhbWVyYVIubGF5ZXJzLmVuYWJsZSgyKSx0aGlzLmNhbWVyYVIubWF0cml4QXV0b1VwZGF0ZT0hMSx0aGlzLl9jYWNoZT17Zm9jdXM6bnVsbCxmb3Y6bnVsbCxhc3BlY3Q6bnVsbCxuZWFyOm51bGwsZmFyOm51bGwsem9vbTpudWxsLGV5ZVNlcDpudWxsfX11cGRhdGUodCl7bGV0IHI9dGhpcy5fY2FjaGU7aWYoci5mb2N1cyE9PXQuZm9jdXN8fHIuZm92IT09dC5mb3Z8fHIuYXNwZWN0IT09dC5hc3BlY3QqdGhpcy5hc3BlY3R8fHIubmVhciE9PXQubmVhcnx8ci5mYXIhPT10LmZhcnx8ci56b29tIT09dC56b29tfHxyLmV5ZVNlcCE9PXRoaXMuZXllU2VwKXtyLmZvY3VzPXQuZm9jdXMsci5mb3Y9dC5mb3Ysci5hc3BlY3Q9dC5hc3BlY3QqdGhpcy5hc3BlY3Qsci5uZWFyPXQubmVhcixyLmZhcj10LmZhcixyLnpvb209dC56b29tLHIuZXllU2VwPXRoaXMuZXllU2VwLHYxLmNvcHkodC5wcm9qZWN0aW9uTWF0cml4KTtsZXQgaT1yLmV5ZVNlcC8yLG89aSpyLm5lYXIvci5mb2N1cyxhPXIubmVhcipNYXRoLnRhbihJMSpyLmZvdiouNSkvci56b29tLHMsbDtDaGUuZWxlbWVudHNbMTJdPS1pLFRoZS5lbGVtZW50c1sxMl09aSxzPS1hKnIuYXNwZWN0K28sbD1hKnIuYXNwZWN0K28sdjEuZWxlbWVudHNbMF09MipyLm5lYXIvKGwtcyksdjEuZWxlbWVudHNbOF09KGwrcykvKGwtcyksdGhpcy5jYW1lcmFMLnByb2plY3Rpb25NYXRyaXguY29weSh2MSkscz0tYSpyLmFzcGVjdC1vLGw9YSpyLmFzcGVjdC1vLHYxLmVsZW1lbnRzWzBdPTIqci5uZWFyLyhsLXMpLHYxLmVsZW1lbnRzWzhdPShsK3MpLyhsLXMpLHRoaXMuY2FtZXJhUi5wcm9qZWN0aW9uTWF0cml4LmNvcHkodjEpfXRoaXMuY2FtZXJhTC5tYXRyaXhXb3JsZC5jb3B5KHQubWF0cml4V29ybGQpLm11bHRpcGx5KENoZSksdGhpcy5jYW1lcmFSLm1hdHJpeFdvcmxkLmNvcHkodC5tYXRyaXhXb3JsZCkubXVsdGlwbHkoVGhlKX19LG1NPWNsYXNze2NvbnN0cnVjdG9yKHQ9ITApe3RoaXMuYXV0b1N0YXJ0PXQsdGhpcy5zdGFydFRpbWU9MCx0aGlzLm9sZFRpbWU9MCx0aGlzLmVsYXBzZWRUaW1lPTAsdGhpcy5ydW5uaW5nPSExfXN0YXJ0KCl7dGhpcy5zdGFydFRpbWU9QWhlKCksdGhpcy5vbGRUaW1lPXRoaXMuc3RhcnRUaW1lLHRoaXMuZWxhcHNlZFRpbWU9MCx0aGlzLnJ1bm5pbmc9ITB9c3RvcCgpe3RoaXMuZ2V0RWxhcHNlZFRpbWUoKSx0aGlzLnJ1bm5pbmc9ITEsdGhpcy5hdXRvU3RhcnQ9ITF9Z2V0RWxhcHNlZFRpbWUoKXtyZXR1cm4gdGhpcy5nZXREZWx0YSgpLHRoaXMuZWxhcHNlZFRpbWV9Z2V0RGVsdGEoKXtsZXQgdD0wO2lmKHRoaXMuYXV0b1N0YXJ0JiYhdGhpcy5ydW5uaW5nKXJldHVybiB0aGlzLnN0YXJ0KCksMDtpZih0aGlzLnJ1bm5pbmcpe2xldCByPUFoZSgpO3Q9KHItdGhpcy5vbGRUaW1lKS8xZTMsdGhpcy5vbGRUaW1lPXIsdGhpcy5lbGFwc2VkVGltZSs9dH1yZXR1cm4gdH19O2Z1bmN0aW9uIEFoZSgpe3JldHVybih0eXBlb2YgcGVyZm9ybWFuY2U9PSJ1bmRlZmluZWQiP0RhdGU6cGVyZm9ybWFuY2UpLm5vdygpfXZhciB4MT1uZXcgaixQaGU9bmV3IHlpLGQwcj1uZXcgaixiMT1uZXcgaixjaHQ9Y2xhc3MgZXh0ZW5kcyBvcntjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJBdWRpb0xpc3RlbmVyIix0aGlzLmNvbnRleHQ9emh0LmdldENvbnRleHQoKSx0aGlzLmdhaW49dGhpcy5jb250ZXh0LmNyZWF0ZUdhaW4oKSx0aGlzLmdhaW4uY29ubmVjdCh0aGlzLmNvbnRleHQuZGVzdGluYXRpb24pLHRoaXMuZmlsdGVyPW51bGwsdGhpcy50aW1lRGVsdGE9MCx0aGlzLl9jbG9jaz1uZXcgbU19Z2V0SW5wdXQoKXtyZXR1cm4gdGhpcy5nYWlufXJlbW92ZUZpbHRlcigpe3JldHVybiB0aGlzLmZpbHRlciE9PW51bGwmJih0aGlzLmdhaW4uZGlzY29ubmVjdCh0aGlzLmZpbHRlciksdGhpcy5maWx0ZXIuZGlzY29ubmVjdCh0aGlzLmNvbnRleHQuZGVzdGluYXRpb24pLHRoaXMuZ2Fpbi5jb25uZWN0KHRoaXMuY29udGV4dC5kZXN0aW5hdGlvbiksdGhpcy5maWx0ZXI9bnVsbCksdGhpc31nZXRGaWx0ZXIoKXtyZXR1cm4gdGhpcy5maWx0ZXJ9c2V0RmlsdGVyKHQpe3JldHVybiB0aGlzLmZpbHRlciE9PW51bGw/KHRoaXMuZ2Fpbi5kaXNjb25uZWN0KHRoaXMuZmlsdGVyKSx0aGlzLmZpbHRlci5kaXNjb25uZWN0KHRoaXMuY29udGV4dC5kZXN0aW5hdGlvbikpOnRoaXMuZ2Fpbi5kaXNjb25uZWN0KHRoaXMuY29udGV4dC5kZXN0aW5hdGlvbiksdGhpcy5maWx0ZXI9dCx0aGlzLmdhaW4uY29ubmVjdCh0aGlzLmZpbHRlciksdGhpcy5maWx0ZXIuY29ubmVjdCh0aGlzLmNvbnRleHQuZGVzdGluYXRpb24pLHRoaXN9Z2V0TWFzdGVyVm9sdW1lKCl7cmV0dXJuIHRoaXMuZ2Fpbi5nYWluLnZhbHVlfXNldE1hc3RlclZvbHVtZSh0KXtyZXR1cm4gdGhpcy5nYWluLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKHQsdGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lLC4wMSksdGhpc311cGRhdGVNYXRyaXhXb3JsZCh0KXtzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KTtsZXQgcj10aGlzLmNvbnRleHQubGlzdGVuZXIsbj10aGlzLnVwO2lmKHRoaXMudGltZURlbHRhPXRoaXMuX2Nsb2NrLmdldERlbHRhKCksdGhpcy5tYXRyaXhXb3JsZC5kZWNvbXBvc2UoeDEsUGhlLGQwciksYjEuc2V0KDAsMCwtMSkuYXBwbHlRdWF0ZXJuaW9uKFBoZSksci5wb3NpdGlvblgpe2xldCBpPXRoaXMuY29udGV4dC5jdXJyZW50VGltZSt0aGlzLnRpbWVEZWx0YTtyLnBvc2l0aW9uWC5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh4MS54LGkpLHIucG9zaXRpb25ZLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHgxLnksaSksci5wb3NpdGlvbloubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoeDEueixpKSxyLmZvcndhcmRYLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKGIxLngsaSksci5mb3J3YXJkWS5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZShiMS55LGkpLHIuZm9yd2FyZFoubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoYjEueixpKSxyLnVwWC5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZShuLngsaSksci51cFkubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUobi55LGkpLHIudXBaLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKG4ueixpKX1lbHNlIHIuc2V0UG9zaXRpb24oeDEueCx4MS55LHgxLnopLHIuc2V0T3JpZW50YXRpb24oYjEueCxiMS55LGIxLnosbi54LG4ueSxuLnopfX0sRDY9Y2xhc3MgZXh0ZW5kcyBvcntjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iQXVkaW8iLHRoaXMubGlzdGVuZXI9dCx0aGlzLmNvbnRleHQ9dC5jb250ZXh0LHRoaXMuZ2Fpbj10aGlzLmNvbnRleHQuY3JlYXRlR2FpbigpLHRoaXMuZ2Fpbi5jb25uZWN0KHQuZ2V0SW5wdXQoKSksdGhpcy5hdXRvcGxheT0hMSx0aGlzLmJ1ZmZlcj1udWxsLHRoaXMuZGV0dW5lPTAsdGhpcy5sb29wPSExLHRoaXMubG9vcFN0YXJ0PTAsdGhpcy5sb29wRW5kPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmR1cmF0aW9uPXZvaWQgMCx0aGlzLnBsYXliYWNrUmF0ZT0xLHRoaXMuaXNQbGF5aW5nPSExLHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSEwLHRoaXMuc291cmNlPW51bGwsdGhpcy5zb3VyY2VUeXBlPSJlbXB0eSIsdGhpcy5fc3RhcnRlZEF0PTAsdGhpcy5fcHJvZ3Jlc3M9MCx0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5maWx0ZXJzPVtdfWdldE91dHB1dCgpe3JldHVybiB0aGlzLmdhaW59c2V0Tm9kZVNvdXJjZSh0KXtyZXR1cm4gdGhpcy5oYXNQbGF5YmFja0NvbnRyb2w9ITEsdGhpcy5zb3VyY2VUeXBlPSJhdWRpb05vZGUiLHRoaXMuc291cmNlPXQsdGhpcy5jb25uZWN0KCksdGhpc31zZXRNZWRpYUVsZW1lbnRTb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0ibWVkaWFOb2RlIix0aGlzLnNvdXJjZT10aGlzLmNvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50U291cmNlKHQpLHRoaXMuY29ubmVjdCgpLHRoaXN9c2V0TWVkaWFTdHJlYW1Tb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0ibWVkaWFTdHJlYW1Ob2RlIix0aGlzLnNvdXJjZT10aGlzLmNvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UodCksdGhpcy5jb25uZWN0KCksdGhpc31zZXRCdWZmZXIodCl7cmV0dXJuIHRoaXMuYnVmZmVyPXQsdGhpcy5zb3VyY2VUeXBlPSJidWZmZXIiLHRoaXMuYXV0b3BsYXkmJnRoaXMucGxheSgpLHRoaXN9cGxheSh0PTApe2lmKHRoaXMuaXNQbGF5aW5nPT09ITApe2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IEF1ZGlvIGlzIGFscmVhZHkgcGxheWluZy4iKTtyZXR1cm59aWYodGhpcy5oYXNQbGF5YmFja0NvbnRyb2w9PT0hMSl7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKTtyZXR1cm59dGhpcy5fc3RhcnRlZEF0PXRoaXMuY29udGV4dC5jdXJyZW50VGltZSt0O2xldCByPXRoaXMuY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTtyZXR1cm4gci5idWZmZXI9dGhpcy5idWZmZXIsci5sb29wPXRoaXMubG9vcCxyLmxvb3BTdGFydD10aGlzLmxvb3BTdGFydCxyLmxvb3BFbmQ9dGhpcy5sb29wRW5kLHIub25lbmRlZD10aGlzLm9uRW5kZWQuYmluZCh0aGlzKSxyLnN0YXJ0KHRoaXMuX3N0YXJ0ZWRBdCx0aGlzLl9wcm9ncmVzcyt0aGlzLm9mZnNldCx0aGlzLmR1cmF0aW9uKSx0aGlzLmlzUGxheWluZz0hMCx0aGlzLnNvdXJjZT1yLHRoaXMuc2V0RGV0dW5lKHRoaXMuZGV0dW5lKSx0aGlzLnNldFBsYXliYWNrUmF0ZSh0aGlzLnBsYXliYWNrUmF0ZSksdGhpcy5jb25uZWN0KCl9cGF1c2UoKXtpZih0aGlzLmhhc1BsYXliYWNrQ29udHJvbD09PSExKXtjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvOiB0aGlzIEF1ZGlvIGhhcyBubyBwbGF5YmFjayBjb250cm9sLiIpO3JldHVybn1yZXR1cm4gdGhpcy5pc1BsYXlpbmc9PT0hMCYmKHRoaXMuX3Byb2dyZXNzKz1NYXRoLm1heCh0aGlzLmNvbnRleHQuY3VycmVudFRpbWUtdGhpcy5fc3RhcnRlZEF0LDApKnRoaXMucGxheWJhY2tSYXRlLHRoaXMubG9vcD09PSEwJiYodGhpcy5fcHJvZ3Jlc3M9dGhpcy5fcHJvZ3Jlc3MlKHRoaXMuZHVyYXRpb258fHRoaXMuYnVmZmVyLmR1cmF0aW9uKSksdGhpcy5zb3VyY2Uuc3RvcCgpLHRoaXMuc291cmNlLm9uZW5kZWQ9bnVsbCx0aGlzLmlzUGxheWluZz0hMSksdGhpc31zdG9wKCl7aWYodGhpcy5oYXNQbGF5YmFja0NvbnRyb2w9PT0hMSl7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKTtyZXR1cm59cmV0dXJuIHRoaXMuX3Byb2dyZXNzPTAsdGhpcy5zb3VyY2Uuc3RvcCgpLHRoaXMuc291cmNlLm9uZW5kZWQ9bnVsbCx0aGlzLmlzUGxheWluZz0hMSx0aGlzfWNvbm5lY3QoKXtpZih0aGlzLmZpbHRlcnMubGVuZ3RoPjApe3RoaXMuc291cmNlLmNvbm5lY3QodGhpcy5maWx0ZXJzWzBdKTtmb3IobGV0IHQ9MSxyPXRoaXMuZmlsdGVycy5sZW5ndGg7dDxyO3QrKyl0aGlzLmZpbHRlcnNbdC0xXS5jb25uZWN0KHRoaXMuZmlsdGVyc1t0XSk7dGhpcy5maWx0ZXJzW3RoaXMuZmlsdGVycy5sZW5ndGgtMV0uY29ubmVjdCh0aGlzLmdldE91dHB1dCgpKX1lbHNlIHRoaXMuc291cmNlLmNvbm5lY3QodGhpcy5nZXRPdXRwdXQoKSk7cmV0dXJuIHRoaXMuX2Nvbm5lY3RlZD0hMCx0aGlzfWRpc2Nvbm5lY3QoKXtpZih0aGlzLmZpbHRlcnMubGVuZ3RoPjApe3RoaXMuc291cmNlLmRpc2Nvbm5lY3QodGhpcy5maWx0ZXJzWzBdKTtmb3IobGV0IHQ9MSxyPXRoaXMuZmlsdGVycy5sZW5ndGg7dDxyO3QrKyl0aGlzLmZpbHRlcnNbdC0xXS5kaXNjb25uZWN0KHRoaXMuZmlsdGVyc1t0XSk7dGhpcy5maWx0ZXJzW3RoaXMuZmlsdGVycy5sZW5ndGgtMV0uZGlzY29ubmVjdCh0aGlzLmdldE91dHB1dCgpKX1lbHNlIHRoaXMuc291cmNlLmRpc2Nvbm5lY3QodGhpcy5nZXRPdXRwdXQoKSk7cmV0dXJuIHRoaXMuX2Nvbm5lY3RlZD0hMSx0aGlzfWdldEZpbHRlcnMoKXtyZXR1cm4gdGhpcy5maWx0ZXJzfXNldEZpbHRlcnModCl7cmV0dXJuIHR8fCh0PVtdKSx0aGlzLl9jb25uZWN0ZWQ9PT0hMD8odGhpcy5kaXNjb25uZWN0KCksdGhpcy5maWx0ZXJzPXQuc2xpY2UoKSx0aGlzLmNvbm5lY3QoKSk6dGhpcy5maWx0ZXJzPXQuc2xpY2UoKSx0aGlzfXNldERldHVuZSh0KXtpZih0aGlzLmRldHVuZT10LHRoaXMuc291cmNlLmRldHVuZSE9PXZvaWQgMClyZXR1cm4gdGhpcy5pc1BsYXlpbmc9PT0hMCYmdGhpcy5zb3VyY2UuZGV0dW5lLnNldFRhcmdldEF0VGltZSh0aGlzLmRldHVuZSx0aGlzLmNvbnRleHQuY3VycmVudFRpbWUsLjAxKSx0aGlzfWdldERldHVuZSgpe3JldHVybiB0aGlzLmRldHVuZX1nZXRGaWx0ZXIoKXtyZXR1cm4gdGhpcy5nZXRGaWx0ZXJzKClbMF19c2V0RmlsdGVyKHQpe3JldHVybiB0aGlzLnNldEZpbHRlcnModD9bdF06W10pfXNldFBsYXliYWNrUmF0ZSh0KXtpZih0aGlzLmhhc1BsYXliYWNrQ29udHJvbD09PSExKXtjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvOiB0aGlzIEF1ZGlvIGhhcyBubyBwbGF5YmFjayBjb250cm9sLiIpO3JldHVybn1yZXR1cm4gdGhpcy5wbGF5YmFja1JhdGU9dCx0aGlzLmlzUGxheWluZz09PSEwJiZ0aGlzLnNvdXJjZS5wbGF5YmFja1JhdGUuc2V0VGFyZ2V0QXRUaW1lKHRoaXMucGxheWJhY2tSYXRlLHRoaXMuY29udGV4dC5jdXJyZW50VGltZSwuMDEpLHRoaXN9Z2V0UGxheWJhY2tSYXRlKCl7cmV0dXJuIHRoaXMucGxheWJhY2tSYXRlfW9uRW5kZWQoKXt0aGlzLmlzUGxheWluZz0hMX1nZXRMb29wKCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPT09ITE/KGNvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIiksITEpOnRoaXMubG9vcH1zZXRMb29wKHQpe2lmKHRoaXMuaGFzUGxheWJhY2tDb250cm9sPT09ITEpe2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIik7cmV0dXJufXJldHVybiB0aGlzLmxvb3A9dCx0aGlzLmlzUGxheWluZz09PSEwJiYodGhpcy5zb3VyY2UubG9vcD10aGlzLmxvb3ApLHRoaXN9c2V0TG9vcFN0YXJ0KHQpe3JldHVybiB0aGlzLmxvb3BTdGFydD10LHRoaXN9c2V0TG9vcEVuZCh0KXtyZXR1cm4gdGhpcy5sb29wRW5kPXQsdGhpc31nZXRWb2x1bWUoKXtyZXR1cm4gdGhpcy5nYWluLmdhaW4udmFsdWV9c2V0Vm9sdW1lKHQpe3JldHVybiB0aGlzLmdhaW4uZ2Fpbi5zZXRUYXJnZXRBdFRpbWUodCx0aGlzLmNvbnRleHQuY3VycmVudFRpbWUsLjAxKSx0aGlzfX0sdzE9bmV3IGosSWhlPW5ldyB5aSxtMHI9bmV3IGosUzE9bmV3IGosdWh0PWNsYXNzIGV4dGVuZHMgRDZ7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5wYW5uZXI9dGhpcy5jb250ZXh0LmNyZWF0ZVBhbm5lcigpLHRoaXMucGFubmVyLnBhbm5pbmdNb2RlbD0iSFJURiIsdGhpcy5wYW5uZXIuY29ubmVjdCh0aGlzLmdhaW4pfWdldE91dHB1dCgpe3JldHVybiB0aGlzLnBhbm5lcn1nZXRSZWZEaXN0YW5jZSgpe3JldHVybiB0aGlzLnBhbm5lci5yZWZEaXN0YW5jZX1zZXRSZWZEaXN0YW5jZSh0KXtyZXR1cm4gdGhpcy5wYW5uZXIucmVmRGlzdGFuY2U9dCx0aGlzfWdldFJvbGxvZmZGYWN0b3IoKXtyZXR1cm4gdGhpcy5wYW5uZXIucm9sbG9mZkZhY3Rvcn1zZXRSb2xsb2ZmRmFjdG9yKHQpe3JldHVybiB0aGlzLnBhbm5lci5yb2xsb2ZmRmFjdG9yPXQsdGhpc31nZXREaXN0YW5jZU1vZGVsKCl7cmV0dXJuIHRoaXMucGFubmVyLmRpc3RhbmNlTW9kZWx9c2V0RGlzdGFuY2VNb2RlbCh0KXtyZXR1cm4gdGhpcy5wYW5uZXIuZGlzdGFuY2VNb2RlbD10LHRoaXN9Z2V0TWF4RGlzdGFuY2UoKXtyZXR1cm4gdGhpcy5wYW5uZXIubWF4RGlzdGFuY2V9c2V0TWF4RGlzdGFuY2UodCl7cmV0dXJuIHRoaXMucGFubmVyLm1heERpc3RhbmNlPXQsdGhpc31zZXREaXJlY3Rpb25hbENvbmUodCxyLG4pe3JldHVybiB0aGlzLnBhbm5lci5jb25lSW5uZXJBbmdsZT10LHRoaXMucGFubmVyLmNvbmVPdXRlckFuZ2xlPXIsdGhpcy5wYW5uZXIuY29uZU91dGVyR2Fpbj1uLHRoaXN9dXBkYXRlTWF0cml4V29ybGQodCl7aWYoc3VwZXIudXBkYXRlTWF0cml4V29ybGQodCksdGhpcy5oYXNQbGF5YmFja0NvbnRyb2w9PT0hMCYmdGhpcy5pc1BsYXlpbmc9PT0hMSlyZXR1cm47dGhpcy5tYXRyaXhXb3JsZC5kZWNvbXBvc2UodzEsSWhlLG0wciksUzEuc2V0KDAsMCwxKS5hcHBseVF1YXRlcm5pb24oSWhlKTtsZXQgcj10aGlzLnBhbm5lcjtpZihyLnBvc2l0aW9uWCl7bGV0IG49dGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lK3RoaXMubGlzdGVuZXIudGltZURlbHRhO3IucG9zaXRpb25YLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHcxLngsbiksci5wb3NpdGlvblkubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodzEueSxuKSxyLnBvc2l0aW9uWi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh3MS56LG4pLHIub3JpZW50YXRpb25YLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKFMxLngsbiksci5vcmllbnRhdGlvblkubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoUzEueSxuKSxyLm9yaWVudGF0aW9uWi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZShTMS56LG4pfWVsc2Ugci5zZXRQb3NpdGlvbih3MS54LHcxLnksdzEueiksci5zZXRPcmllbnRhdGlvbihTMS54LFMxLnksUzEueil9fSxGVT1jbGFzc3tjb25zdHJ1Y3Rvcih0LHI9MjA0OCl7dGhpcy5hbmFseXNlcj10LmNvbnRleHQuY3JlYXRlQW5hbHlzZXIoKSx0aGlzLmFuYWx5c2VyLmZmdFNpemU9cix0aGlzLmRhdGE9bmV3IFVpbnQ4QXJyYXkodGhpcy5hbmFseXNlci5mcmVxdWVuY3lCaW5Db3VudCksdC5nZXRPdXRwdXQoKS5jb25uZWN0KHRoaXMuYW5hbHlzZXIpfWdldEZyZXF1ZW5jeURhdGEoKXtyZXR1cm4gdGhpcy5hbmFseXNlci5nZXRCeXRlRnJlcXVlbmN5RGF0YSh0aGlzLmRhdGEpLHRoaXMuZGF0YX1nZXRBdmVyYWdlRnJlcXVlbmN5KCl7bGV0IHQ9MCxyPXRoaXMuZ2V0RnJlcXVlbmN5RGF0YSgpO2ZvcihsZXQgbj0wO248ci5sZW5ndGg7bisrKXQrPXJbbl07cmV0dXJuIHQvci5sZW5ndGh9fSxCVT1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIsbil7dGhpcy5iaW5kaW5nPXQsdGhpcy52YWx1ZVNpemU9bjtsZXQgaSxvLGE7c3dpdGNoKHIpe2Nhc2UicXVhdGVybmlvbiI6aT10aGlzLl9zbGVycCxvPXRoaXMuX3NsZXJwQWRkaXRpdmUsYT10aGlzLl9zZXRBZGRpdGl2ZUlkZW50aXR5UXVhdGVybmlvbix0aGlzLmJ1ZmZlcj1uZXcgRmxvYXQ2NEFycmF5KG4qNiksdGhpcy5fd29ya0luZGV4PTU7YnJlYWs7Y2FzZSJzdHJpbmciOmNhc2UiYm9vbCI6aT10aGlzLl9zZWxlY3Qsbz10aGlzLl9zZWxlY3QsYT10aGlzLl9zZXRBZGRpdGl2ZUlkZW50aXR5T3RoZXIsdGhpcy5idWZmZXI9bmV3IEFycmF5KG4qNSk7YnJlYWs7ZGVmYXVsdDppPXRoaXMuX2xlcnAsbz10aGlzLl9sZXJwQWRkaXRpdmUsYT10aGlzLl9zZXRBZGRpdGl2ZUlkZW50aXR5TnVtZXJpYyx0aGlzLmJ1ZmZlcj1uZXcgRmxvYXQ2NEFycmF5KG4qNSl9dGhpcy5fbWl4QnVmZmVyUmVnaW9uPWksdGhpcy5fbWl4QnVmZmVyUmVnaW9uQWRkaXRpdmU9byx0aGlzLl9zZXRJZGVudGl0eT1hLHRoaXMuX29yaWdJbmRleD0zLHRoaXMuX2FkZEluZGV4PTQsdGhpcy5jdW11bGF0aXZlV2VpZ2h0PTAsdGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmU9MCx0aGlzLnVzZUNvdW50PTAsdGhpcy5yZWZlcmVuY2VDb3VudD0wfWFjY3VtdWxhdGUodCxyKXtsZXQgbj10aGlzLmJ1ZmZlcixpPXRoaXMudmFsdWVTaXplLG89dCppK2ksYT10aGlzLmN1bXVsYXRpdmVXZWlnaHQ7aWYoYT09PTApe2ZvcihsZXQgcz0wO3MhPT1pOysrcyluW28rc109bltzXTthPXJ9ZWxzZXthKz1yO2xldCBzPXIvYTt0aGlzLl9taXhCdWZmZXJSZWdpb24obixvLDAscyxpKX10aGlzLmN1bXVsYXRpdmVXZWlnaHQ9YX1hY2N1bXVsYXRlQWRkaXRpdmUodCl7bGV0IHI9dGhpcy5idWZmZXIsbj10aGlzLnZhbHVlU2l6ZSxpPW4qdGhpcy5fYWRkSW5kZXg7dGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmU9PT0wJiZ0aGlzLl9zZXRJZGVudGl0eSgpLHRoaXMuX21peEJ1ZmZlclJlZ2lvbkFkZGl0aXZlKHIsaSwwLHQsbiksdGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmUrPXR9YXBwbHkodCl7bGV0IHI9dGhpcy52YWx1ZVNpemUsbj10aGlzLmJ1ZmZlcixpPXQqcityLG89dGhpcy5jdW11bGF0aXZlV2VpZ2h0LGE9dGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmUscz10aGlzLmJpbmRpbmc7aWYodGhpcy5jdW11bGF0aXZlV2VpZ2h0PTAsdGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmU9MCxvPDEpe2xldCBsPXIqdGhpcy5fb3JpZ0luZGV4O3RoaXMuX21peEJ1ZmZlclJlZ2lvbihuLGksbCwxLW8scil9YT4wJiZ0aGlzLl9taXhCdWZmZXJSZWdpb25BZGRpdGl2ZShuLGksdGhpcy5fYWRkSW5kZXgqciwxLHIpO2ZvcihsZXQgbD1yLGM9cityO2whPT1jOysrbClpZihuW2xdIT09bltsK3JdKXtzLnNldFZhbHVlKG4saSk7YnJlYWt9fXNhdmVPcmlnaW5hbFN0YXRlKCl7bGV0IHQ9dGhpcy5iaW5kaW5nLHI9dGhpcy5idWZmZXIsbj10aGlzLnZhbHVlU2l6ZSxpPW4qdGhpcy5fb3JpZ0luZGV4O3QuZ2V0VmFsdWUocixpKTtmb3IobGV0IG89bixhPWk7byE9PWE7KytvKXJbb109cltpK28lbl07dGhpcy5fc2V0SWRlbnRpdHkoKSx0aGlzLmN1bXVsYXRpdmVXZWlnaHQ9MCx0aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZT0wfXJlc3RvcmVPcmlnaW5hbFN0YXRlKCl7bGV0IHQ9dGhpcy52YWx1ZVNpemUqMzt0aGlzLmJpbmRpbmcuc2V0VmFsdWUodGhpcy5idWZmZXIsdCl9X3NldEFkZGl0aXZlSWRlbnRpdHlOdW1lcmljKCl7bGV0IHQ9dGhpcy5fYWRkSW5kZXgqdGhpcy52YWx1ZVNpemUscj10K3RoaXMudmFsdWVTaXplO2ZvcihsZXQgbj10O248cjtuKyspdGhpcy5idWZmZXJbbl09MH1fc2V0QWRkaXRpdmVJZGVudGl0eVF1YXRlcm5pb24oKXt0aGlzLl9zZXRBZGRpdGl2ZUlkZW50aXR5TnVtZXJpYygpLHRoaXMuYnVmZmVyW3RoaXMuX2FkZEluZGV4KnRoaXMudmFsdWVTaXplKzNdPTF9X3NldEFkZGl0aXZlSWRlbnRpdHlPdGhlcigpe2xldCB0PXRoaXMuX29yaWdJbmRleCp0aGlzLnZhbHVlU2l6ZSxyPXRoaXMuX2FkZEluZGV4KnRoaXMudmFsdWVTaXplO2ZvcihsZXQgbj0wO248dGhpcy52YWx1ZVNpemU7bisrKXRoaXMuYnVmZmVyW3Irbl09dGhpcy5idWZmZXJbdCtuXX1fc2VsZWN0KHQscixuLGksbyl7aWYoaT49LjUpZm9yKGxldCBhPTA7YSE9PW87KythKXRbcithXT10W24rYV19X3NsZXJwKHQscixuLGkpe3lpLnNsZXJwRmxhdCh0LHIsdCxyLHQsbixpKX1fc2xlcnBBZGRpdGl2ZSh0LHIsbixpLG8pe2xldCBhPXRoaXMuX3dvcmtJbmRleCpvO3lpLm11bHRpcGx5UXVhdGVybmlvbnNGbGF0KHQsYSx0LHIsdCxuKSx5aS5zbGVycEZsYXQodCxyLHQscix0LGEsaSl9X2xlcnAodCxyLG4saSxvKXtsZXQgYT0xLWk7Zm9yKGxldCBzPTA7cyE9PW87KytzKXtsZXQgbD1yK3M7dFtsXT10W2xdKmErdFtuK3NdKml9fV9sZXJwQWRkaXRpdmUodCxyLG4saSxvKXtmb3IobGV0IGE9MDthIT09bzsrK2Epe2xldCBzPXIrYTt0W3NdPXRbc10rdFtuK2FdKml9fX0sRmh0PSJcXFtcXF1cXC46XFwvIixnMHI9bmV3IFJlZ0V4cCgiWyIrRmh0KyJdIiwiZyIpLEJodD0iW14iK0ZodCsiXSIsXzByPSJbXiIrRmh0LnJlcGxhY2UoIlxcLiIsIiIpKyJdIix5MHI9LygoPzpXQytbXC86XSkqKS8uc291cmNlLnJlcGxhY2UoIldDIixCaHQpLHYwcj0vKFdDT0QrKT8vLnNvdXJjZS5yZXBsYWNlKCJXQ09EIixfMHIpLHgwcj0vKD86XC4oV0MrKSg/OlxbKC4rKVxdKT8pPy8uc291cmNlLnJlcGxhY2UoIldDIixCaHQpLGIwcj0vXC4oV0MrKSg/OlxbKC4rKVxdKT8vLnNvdXJjZS5yZXBsYWNlKCJXQyIsQmh0KSx3MHI9bmV3IFJlZ0V4cCgiXiIreTByK3Ywcit4MHIrYjByKyIkIiksUzByPVsibWF0ZXJpYWwiLCJtYXRlcmlhbHMiLCJib25lcyJdLGhodD1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIsbil7bGV0IGk9bnx8Q3IucGFyc2VUcmFja05hbWUocik7dGhpcy5fdGFyZ2V0R3JvdXA9dCx0aGlzLl9iaW5kaW5ncz10LnN1YnNjcmliZV8ocixpKX1nZXRWYWx1ZSh0LHIpe3RoaXMuYmluZCgpO2xldCBuPXRoaXMuX3RhcmdldEdyb3VwLm5DYWNoZWRPYmplY3RzXyxpPXRoaXMuX2JpbmRpbmdzW25dO2khPT12b2lkIDAmJmkuZ2V0VmFsdWUodCxyKX1zZXRWYWx1ZSh0LHIpe2xldCBuPXRoaXMuX2JpbmRpbmdzO2ZvcihsZXQgaT10aGlzLl90YXJnZXRHcm91cC5uQ2FjaGVkT2JqZWN0c18sbz1uLmxlbmd0aDtpIT09bzsrK2kpbltpXS5zZXRWYWx1ZSh0LHIpfWJpbmQoKXtsZXQgdD10aGlzLl9iaW5kaW5ncztmb3IobGV0IHI9dGhpcy5fdGFyZ2V0R3JvdXAubkNhY2hlZE9iamVjdHNfLG49dC5sZW5ndGg7ciE9PW47KytyKXRbcl0uYmluZCgpfXVuYmluZCgpe2xldCB0PXRoaXMuX2JpbmRpbmdzO2ZvcihsZXQgcj10aGlzLl90YXJnZXRHcm91cC5uQ2FjaGVkT2JqZWN0c18sbj10Lmxlbmd0aDtyIT09bjsrK3IpdFtyXS51bmJpbmQoKX19LENyPWNsYXNze2NvbnN0cnVjdG9yKHQscixuKXt0aGlzLnBhdGg9cix0aGlzLnBhcnNlZFBhdGg9bnx8Q3IucGFyc2VUcmFja05hbWUociksdGhpcy5ub2RlPUNyLmZpbmROb2RlKHQsdGhpcy5wYXJzZWRQYXRoLm5vZGVOYW1lKXx8dCx0aGlzLnJvb3ROb2RlPXQsdGhpcy5nZXRWYWx1ZT10aGlzLl9nZXRWYWx1ZV91bmJvdW5kLHRoaXMuc2V0VmFsdWU9dGhpcy5fc2V0VmFsdWVfdW5ib3VuZH1zdGF0aWMgY3JlYXRlKHQscixuKXtyZXR1cm4gdCYmdC5pc0FuaW1hdGlvbk9iamVjdEdyb3VwP25ldyBDci5Db21wb3NpdGUodCxyLG4pOm5ldyBDcih0LHIsbil9c3RhdGljIHNhbml0aXplTm9kZU5hbWUodCl7cmV0dXJuIHQucmVwbGFjZSgvXHMvZywiXyIpLnJlcGxhY2UoZzByLCIiKX1zdGF0aWMgcGFyc2VUcmFja05hbWUodCl7bGV0IHI9dzByLmV4ZWModCk7aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJQcm9wZXJ0eUJpbmRpbmc6IENhbm5vdCBwYXJzZSB0cmFja05hbWU6ICIrdCk7bGV0IG49e25vZGVOYW1lOnJbMl0sb2JqZWN0TmFtZTpyWzNdLG9iamVjdEluZGV4OnJbNF0scHJvcGVydHlOYW1lOnJbNV0scHJvcGVydHlJbmRleDpyWzZdfSxpPW4ubm9kZU5hbWUmJm4ubm9kZU5hbWUubGFzdEluZGV4T2YoIi4iKTtpZihpIT09dm9pZCAwJiZpIT09LTEpe2xldCBvPW4ubm9kZU5hbWUuc3Vic3RyaW5nKGkrMSk7UzByLmluZGV4T2YobykhPT0tMSYmKG4ubm9kZU5hbWU9bi5ub2RlTmFtZS5zdWJzdHJpbmcoMCxpKSxuLm9iamVjdE5hbWU9byl9aWYobi5wcm9wZXJ0eU5hbWU9PT1udWxsfHxuLnByb3BlcnR5TmFtZS5sZW5ndGg9PT0wKXRocm93IG5ldyBFcnJvcigiUHJvcGVydHlCaW5kaW5nOiBjYW4gbm90IHBhcnNlIHByb3BlcnR5TmFtZSBmcm9tIHRyYWNrTmFtZTogIit0KTtyZXR1cm4gbn1zdGF0aWMgZmluZE5vZGUodCxyKXtpZighcnx8cj09PSIifHxyPT09Ii4ifHxyPT09LTF8fHI9PT10Lm5hbWV8fHI9PT10LnV1aWQpcmV0dXJuIHQ7aWYodC5za2VsZXRvbil7bGV0IG49dC5za2VsZXRvbi5nZXRCb25lQnlOYW1lKHIpO2lmKG4hPT12b2lkIDApcmV0dXJuIG59aWYodC5jaGlsZHJlbil7bGV0IG49ZnVuY3Rpb24obyl7Zm9yKGxldCBhPTA7YTxvLmxlbmd0aDthKyspe2xldCBzPW9bYV07aWYocy5uYW1lPT09cnx8cy51dWlkPT09cilyZXR1cm4gcztsZXQgbD1uKHMuY2hpbGRyZW4pO2lmKGwpcmV0dXJuIGx9cmV0dXJuIG51bGx9LGk9bih0LmNoaWxkcmVuKTtpZihpKXJldHVybiBpfXJldHVybiBudWxsfV9nZXRWYWx1ZV91bmF2YWlsYWJsZSgpe31fc2V0VmFsdWVfdW5hdmFpbGFibGUoKXt9X2dldFZhbHVlX2RpcmVjdCh0LHIpe3Rbcl09dGhpcy50YXJnZXRPYmplY3RbdGhpcy5wcm9wZXJ0eU5hbWVdfV9nZXRWYWx1ZV9hcnJheSh0LHIpe2xldCBuPXRoaXMucmVzb2x2ZWRQcm9wZXJ0eTtmb3IobGV0IGk9MCxvPW4ubGVuZ3RoO2khPT1vOysraSl0W3IrK109bltpXX1fZ2V0VmFsdWVfYXJyYXlFbGVtZW50KHQscil7dFtyXT10aGlzLnJlc29sdmVkUHJvcGVydHlbdGhpcy5wcm9wZXJ0eUluZGV4XX1fZ2V0VmFsdWVfdG9BcnJheSh0LHIpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eS50b0FycmF5KHQscil9X3NldFZhbHVlX2RpcmVjdCh0LHIpe3RoaXMudGFyZ2V0T2JqZWN0W3RoaXMucHJvcGVydHlOYW1lXT10W3JdfV9zZXRWYWx1ZV9kaXJlY3Rfc2V0TmVlZHNVcGRhdGUodCxyKXt0aGlzLnRhcmdldE9iamVjdFt0aGlzLnByb3BlcnR5TmFtZV09dFtyXSx0aGlzLnRhcmdldE9iamVjdC5uZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfZGlyZWN0X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGUodCxyKXt0aGlzLnRhcmdldE9iamVjdFt0aGlzLnByb3BlcnR5TmFtZV09dFtyXSx0aGlzLnRhcmdldE9iamVjdC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9hcnJheSh0LHIpe2xldCBuPXRoaXMucmVzb2x2ZWRQcm9wZXJ0eTtmb3IobGV0IGk9MCxvPW4ubGVuZ3RoO2khPT1vOysraSluW2ldPXRbcisrXX1fc2V0VmFsdWVfYXJyYXlfc2V0TmVlZHNVcGRhdGUodCxyKXtsZXQgbj10aGlzLnJlc29sdmVkUHJvcGVydHk7Zm9yKGxldCBpPTAsbz1uLmxlbmd0aDtpIT09bzsrK2kpbltpXT10W3IrK107dGhpcy50YXJnZXRPYmplY3QubmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2FycmF5X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGUodCxyKXtsZXQgbj10aGlzLnJlc29sdmVkUHJvcGVydHk7Zm9yKGxldCBpPTAsbz1uLmxlbmd0aDtpIT09bzsrK2kpbltpXT10W3IrK107dGhpcy50YXJnZXRPYmplY3QubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfYXJyYXlFbGVtZW50KHQscil7dGhpcy5yZXNvbHZlZFByb3BlcnR5W3RoaXMucHJvcGVydHlJbmRleF09dFtyXX1fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE5lZWRzVXBkYXRlKHQscil7dGhpcy5yZXNvbHZlZFByb3BlcnR5W3RoaXMucHJvcGVydHlJbmRleF09dFtyXSx0aGlzLnRhcmdldE9iamVjdC5uZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGUodCxyKXt0aGlzLnJlc29sdmVkUHJvcGVydHlbdGhpcy5wcm9wZXJ0eUluZGV4XT10W3JdLHRoaXMudGFyZ2V0T2JqZWN0Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2Zyb21BcnJheSh0LHIpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eS5mcm9tQXJyYXkodCxyKX1fc2V0VmFsdWVfZnJvbUFycmF5X3NldE5lZWRzVXBkYXRlKHQscil7dGhpcy5yZXNvbHZlZFByb3BlcnR5LmZyb21BcnJheSh0LHIpLHRoaXMudGFyZ2V0T2JqZWN0Lm5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9mcm9tQXJyYXlfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZSh0LHIpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eS5mcm9tQXJyYXkodCxyKSx0aGlzLnRhcmdldE9iamVjdC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSEwfV9nZXRWYWx1ZV91bmJvdW5kKHQscil7dGhpcy5iaW5kKCksdGhpcy5nZXRWYWx1ZSh0LHIpfV9zZXRWYWx1ZV91bmJvdW5kKHQscil7dGhpcy5iaW5kKCksdGhpcy5zZXRWYWx1ZSh0LHIpfWJpbmQoKXtsZXQgdD10aGlzLm5vZGUscj10aGlzLnBhcnNlZFBhdGgsbj1yLm9iamVjdE5hbWUsaT1yLnByb3BlcnR5TmFtZSxvPXIucHJvcGVydHlJbmRleDtpZih0fHwodD1Dci5maW5kTm9kZSh0aGlzLnJvb3ROb2RlLHIubm9kZU5hbWUpfHx0aGlzLnJvb3ROb2RlLHRoaXMubm9kZT10KSx0aGlzLmdldFZhbHVlPXRoaXMuX2dldFZhbHVlX3VuYXZhaWxhYmxlLHRoaXMuc2V0VmFsdWU9dGhpcy5fc2V0VmFsdWVfdW5hdmFpbGFibGUsIXQpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogVHJ5aW5nIHRvIHVwZGF0ZSBub2RlIGZvciB0cmFjazogIit0aGlzLnBhdGgrIiBidXQgaXQgd2Fzbid0IGZvdW5kLiIpO3JldHVybn1pZihuKXtsZXQgYz1yLm9iamVjdEluZGV4O3N3aXRjaChuKXtjYXNlIm1hdGVyaWFscyI6aWYoIXQubWF0ZXJpYWwpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogQ2FuIG5vdCBiaW5kIHRvIG1hdGVyaWFsIGFzIG5vZGUgZG9lcyBub3QgaGF2ZSBhIG1hdGVyaWFsLiIsdGhpcyk7cmV0dXJufWlmKCF0Lm1hdGVyaWFsLm1hdGVyaWFscyl7Y29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbWF0ZXJpYWwubWF0ZXJpYWxzIGFzIG5vZGUubWF0ZXJpYWwgZG9lcyBub3QgaGF2ZSBhIG1hdGVyaWFscyBhcnJheS4iLHRoaXMpO3JldHVybn10PXQubWF0ZXJpYWwubWF0ZXJpYWxzO2JyZWFrO2Nhc2UiYm9uZXMiOmlmKCF0LnNrZWxldG9uKXtjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBib25lcyBhcyBub2RlIGRvZXMgbm90IGhhdmUgYSBza2VsZXRvbi4iLHRoaXMpO3JldHVybn10PXQuc2tlbGV0b24uYm9uZXM7Zm9yKGxldCB1PTA7dTx0Lmxlbmd0aDt1KyspaWYodFt1XS5uYW1lPT09Yyl7Yz11O2JyZWFrfWJyZWFrO2RlZmF1bHQ6aWYodFtuXT09PXZvaWQgMCl7Y29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gb2JqZWN0TmFtZSBvZiBub2RlIHVuZGVmaW5lZC4iLHRoaXMpO3JldHVybn10PXRbbl19aWYoYyE9PXZvaWQgMCl7aWYodFtjXT09PXZvaWQgMCl7Y29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBUcnlpbmcgdG8gYmluZCB0byBvYmplY3RJbmRleCBvZiBvYmplY3ROYW1lLCBidXQgaXMgdW5kZWZpbmVkLiIsdGhpcyx0KTtyZXR1cm59dD10W2NdfX1sZXQgYT10W2ldO2lmKGE9PT12b2lkIDApe2xldCBjPXIubm9kZU5hbWU7Y29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBUcnlpbmcgdG8gdXBkYXRlIHByb3BlcnR5IGZvciB0cmFjazogIitjKyIuIitpKyIgYnV0IGl0IHdhc24ndCBmb3VuZC4iLHQpO3JldHVybn1sZXQgcz10aGlzLlZlcnNpb25pbmcuTm9uZTt0aGlzLnRhcmdldE9iamVjdD10LHQubmVlZHNVcGRhdGUhPT12b2lkIDA/cz10aGlzLlZlcnNpb25pbmcuTmVlZHNVcGRhdGU6dC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlIT09dm9pZCAwJiYocz10aGlzLlZlcnNpb25pbmcuTWF0cml4V29ybGROZWVkc1VwZGF0ZSk7bGV0IGw9dGhpcy5CaW5kaW5nVHlwZS5EaXJlY3Q7aWYobyE9PXZvaWQgMCl7aWYoaT09PSJtb3JwaFRhcmdldEluZmx1ZW5jZXMiKXtpZighdC5nZW9tZXRyeSl7Y29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbW9ycGhUYXJnZXRJbmZsdWVuY2VzIGJlY2F1c2Ugbm9kZSBkb2VzIG5vdCBoYXZlIGEgZ2VvbWV0cnkuIix0aGlzKTtyZXR1cm59aWYodC5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5KXtpZighdC5nZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogQ2FuIG5vdCBiaW5kIHRvIG1vcnBoVGFyZ2V0SW5mbHVlbmNlcyBiZWNhdXNlIG5vZGUgZG9lcyBub3QgaGF2ZSBhIGdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy4iLHRoaXMpO3JldHVybn10Lm1vcnBoVGFyZ2V0RGljdGlvbmFyeVtvXSE9PXZvaWQgMCYmKG89dC5tb3JwaFRhcmdldERpY3Rpb25hcnlbb10pfWVsc2V7Y29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbW9ycGhUYXJnZXRJbmZsdWVuY2VzIG9uIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iLHRoaXMpO3JldHVybn19bD10aGlzLkJpbmRpbmdUeXBlLkFycmF5RWxlbWVudCx0aGlzLnJlc29sdmVkUHJvcGVydHk9YSx0aGlzLnByb3BlcnR5SW5kZXg9b31lbHNlIGEuZnJvbUFycmF5IT09dm9pZCAwJiZhLnRvQXJyYXkhPT12b2lkIDA/KGw9dGhpcy5CaW5kaW5nVHlwZS5IYXNGcm9tVG9BcnJheSx0aGlzLnJlc29sdmVkUHJvcGVydHk9YSk6QXJyYXkuaXNBcnJheShhKT8obD10aGlzLkJpbmRpbmdUeXBlLkVudGlyZUFycmF5LHRoaXMucmVzb2x2ZWRQcm9wZXJ0eT1hKTp0aGlzLnByb3BlcnR5TmFtZT1pO3RoaXMuZ2V0VmFsdWU9dGhpcy5HZXR0ZXJCeUJpbmRpbmdUeXBlW2xdLHRoaXMuc2V0VmFsdWU9dGhpcy5TZXR0ZXJCeUJpbmRpbmdUeXBlQW5kVmVyc2lvbmluZ1tsXVtzXX11bmJpbmQoKXt0aGlzLm5vZGU9bnVsbCx0aGlzLmdldFZhbHVlPXRoaXMuX2dldFZhbHVlX3VuYm91bmQsdGhpcy5zZXRWYWx1ZT10aGlzLl9zZXRWYWx1ZV91bmJvdW5kfX07Q3IuQ29tcG9zaXRlPWhodDtDci5wcm90b3R5cGUuQmluZGluZ1R5cGU9e0RpcmVjdDowLEVudGlyZUFycmF5OjEsQXJyYXlFbGVtZW50OjIsSGFzRnJvbVRvQXJyYXk6M307Q3IucHJvdG90eXBlLlZlcnNpb25pbmc9e05vbmU6MCxOZWVkc1VwZGF0ZToxLE1hdHJpeFdvcmxkTmVlZHNVcGRhdGU6Mn07Q3IucHJvdG90eXBlLkdldHRlckJ5QmluZGluZ1R5cGU9W0NyLnByb3RvdHlwZS5fZ2V0VmFsdWVfZGlyZWN0LENyLnByb3RvdHlwZS5fZ2V0VmFsdWVfYXJyYXksQ3IucHJvdG90eXBlLl9nZXRWYWx1ZV9hcnJheUVsZW1lbnQsQ3IucHJvdG90eXBlLl9nZXRWYWx1ZV90b0FycmF5XTtDci5wcm90b3R5cGUuU2V0dGVyQnlCaW5kaW5nVHlwZUFuZFZlcnNpb25pbmc9W1tDci5wcm90b3R5cGUuX3NldFZhbHVlX2RpcmVjdCxDci5wcm90b3R5cGUuX3NldFZhbHVlX2RpcmVjdF9zZXROZWVkc1VwZGF0ZSxDci5wcm90b3R5cGUuX3NldFZhbHVlX2RpcmVjdF9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlXSxbQ3IucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheSxDci5wcm90b3R5cGUuX3NldFZhbHVlX2FycmF5X3NldE5lZWRzVXBkYXRlLENyLnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZV0sW0NyLnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlFbGVtZW50LENyLnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE5lZWRzVXBkYXRlLENyLnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGVdLFtDci5wcm90b3R5cGUuX3NldFZhbHVlX2Zyb21BcnJheSxDci5wcm90b3R5cGUuX3NldFZhbHVlX2Zyb21BcnJheV9zZXROZWVkc1VwZGF0ZSxDci5wcm90b3R5cGUuX3NldFZhbHVlX2Zyb21BcnJheV9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlXV07dmFyIEhVPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy51dWlkPURsKCksdGhpcy5fb2JqZWN0cz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLHRoaXMubkNhY2hlZE9iamVjdHNfPTA7bGV0IHQ9e307dGhpcy5faW5kaWNlc0J5VVVJRD10O2ZvcihsZXQgbj0wLGk9YXJndW1lbnRzLmxlbmd0aDtuIT09aTsrK24pdFthcmd1bWVudHNbbl0udXVpZF09bjt0aGlzLl9wYXRocz1bXSx0aGlzLl9wYXJzZWRQYXRocz1bXSx0aGlzLl9iaW5kaW5ncz1bXSx0aGlzLl9iaW5kaW5nc0luZGljZXNCeVBhdGg9e307bGV0IHI9dGhpczt0aGlzLnN0YXRzPXtvYmplY3RzOntnZXQgdG90YWwoKXtyZXR1cm4gci5fb2JqZWN0cy5sZW5ndGh9LGdldCBpblVzZSgpe3JldHVybiB0aGlzLnRvdGFsLXIubkNhY2hlZE9iamVjdHNffX0sZ2V0IGJpbmRpbmdzUGVyT2JqZWN0KCl7cmV0dXJuIHIuX2JpbmRpbmdzLmxlbmd0aH19fWFkZCgpe2xldCB0PXRoaXMuX29iamVjdHMscj10aGlzLl9pbmRpY2VzQnlVVUlELG49dGhpcy5fcGF0aHMsaT10aGlzLl9wYXJzZWRQYXRocyxvPXRoaXMuX2JpbmRpbmdzLGE9by5sZW5ndGgscyxsPXQubGVuZ3RoLGM9dGhpcy5uQ2FjaGVkT2JqZWN0c187Zm9yKGxldCB1PTAsaD1hcmd1bWVudHMubGVuZ3RoO3UhPT1oOysrdSl7bGV0IGY9YXJndW1lbnRzW3VdLHA9Zi51dWlkLGQ9cltwXTtpZihkPT09dm9pZCAwKXtkPWwrKyxyW3BdPWQsdC5wdXNoKGYpO2ZvcihsZXQgZz0wLF89YTtnIT09XzsrK2cpb1tnXS5wdXNoKG5ldyBDcihmLG5bZ10saVtnXSkpfWVsc2UgaWYoZDxjKXtzPXRbZF07bGV0IGc9LS1jLF89dFtnXTtyW18udXVpZF09ZCx0W2RdPV8scltwXT1nLHRbZ109Zjtmb3IobGV0IHk9MCx4PWE7eSE9PXg7Kyt5KXtsZXQgYj1vW3ldLFM9YltnXSxDPWJbZF07YltkXT1TLEM9PT12b2lkIDAmJihDPW5ldyBDcihmLG5beV0saVt5XSkpLGJbZ109Q319ZWxzZSB0W2RdIT09cyYmY29uc29sZS5lcnJvcigiVEhSRUUuQW5pbWF0aW9uT2JqZWN0R3JvdXA6IERpZmZlcmVudCBvYmplY3RzIHdpdGggdGhlIHNhbWUgVVVJRCBkZXRlY3RlZC4gQ2xlYW4gdGhlIGNhY2hlcyBvciByZWNyZWF0ZSB5b3VyIGluZnJhc3RydWN0dXJlIHdoZW4gcmVsb2FkaW5nIHNjZW5lcy4iKX10aGlzLm5DYWNoZWRPYmplY3RzXz1jfXJlbW92ZSgpe2xldCB0PXRoaXMuX29iamVjdHMscj10aGlzLl9pbmRpY2VzQnlVVUlELG49dGhpcy5fYmluZGluZ3MsaT1uLmxlbmd0aCxvPXRoaXMubkNhY2hlZE9iamVjdHNfO2ZvcihsZXQgYT0wLHM9YXJndW1lbnRzLmxlbmd0aDthIT09czsrK2Epe2xldCBsPWFyZ3VtZW50c1thXSxjPWwudXVpZCx1PXJbY107aWYodSE9PXZvaWQgMCYmdT49byl7bGV0IGg9bysrLGY9dFtoXTtyW2YudXVpZF09dSx0W3VdPWYscltjXT1oLHRbaF09bDtmb3IobGV0IHA9MCxkPWk7cCE9PWQ7KytwKXtsZXQgZz1uW3BdLF89Z1toXSx5PWdbdV07Z1t1XT1fLGdbaF09eX19fXRoaXMubkNhY2hlZE9iamVjdHNfPW99dW5jYWNoZSgpe2xldCB0PXRoaXMuX29iamVjdHMscj10aGlzLl9pbmRpY2VzQnlVVUlELG49dGhpcy5fYmluZGluZ3MsaT1uLmxlbmd0aCxvPXRoaXMubkNhY2hlZE9iamVjdHNfLGE9dC5sZW5ndGg7Zm9yKGxldCBzPTAsbD1hcmd1bWVudHMubGVuZ3RoO3MhPT1sOysrcyl7bGV0IGM9YXJndW1lbnRzW3NdLHU9Yy51dWlkLGg9clt1XTtpZihoIT09dm9pZCAwKWlmKGRlbGV0ZSByW3VdLGg8byl7bGV0IGY9LS1vLHA9dFtmXSxkPS0tYSxnPXRbZF07cltwLnV1aWRdPWgsdFtoXT1wLHJbZy51dWlkXT1mLHRbZl09Zyx0LnBvcCgpO2ZvcihsZXQgXz0wLHk9aTtfIT09eTsrK18pe2xldCB4PW5bX10sYj14W2ZdLFM9eFtkXTt4W2hdPWIseFtmXT1TLHgucG9wKCl9fWVsc2V7bGV0IGY9LS1hLHA9dFtmXTtmPjAmJihyW3AudXVpZF09aCksdFtoXT1wLHQucG9wKCk7Zm9yKGxldCBkPTAsZz1pO2QhPT1nOysrZCl7bGV0IF89bltkXTtfW2hdPV9bZl0sXy5wb3AoKX19fXRoaXMubkNhY2hlZE9iamVjdHNfPW99c3Vic2NyaWJlXyh0LHIpe2xldCBuPXRoaXMuX2JpbmRpbmdzSW5kaWNlc0J5UGF0aCxpPW5bdF0sbz10aGlzLl9iaW5kaW5ncztpZihpIT09dm9pZCAwKXJldHVybiBvW2ldO2xldCBhPXRoaXMuX3BhdGhzLHM9dGhpcy5fcGFyc2VkUGF0aHMsbD10aGlzLl9vYmplY3RzLGM9bC5sZW5ndGgsdT10aGlzLm5DYWNoZWRPYmplY3RzXyxoPW5ldyBBcnJheShjKTtpPW8ubGVuZ3RoLG5bdF09aSxhLnB1c2godCkscy5wdXNoKHIpLG8ucHVzaChoKTtmb3IobGV0IGY9dSxwPWwubGVuZ3RoO2YhPT1wOysrZil7bGV0IGQ9bFtmXTtoW2ZdPW5ldyBDcihkLHQscil9cmV0dXJuIGh9dW5zdWJzY3JpYmVfKHQpe2xldCByPXRoaXMuX2JpbmRpbmdzSW5kaWNlc0J5UGF0aCxuPXJbdF07aWYobiE9PXZvaWQgMCl7bGV0IGk9dGhpcy5fcGF0aHMsbz10aGlzLl9wYXJzZWRQYXRocyxhPXRoaXMuX2JpbmRpbmdzLHM9YS5sZW5ndGgtMSxsPWFbc10sYz10W3NdO3JbY109bixhW25dPWwsYS5wb3AoKSxvW25dPW9bc10sby5wb3AoKSxpW25dPWlbc10saS5wb3AoKX19fTtIVS5wcm90b3R5cGUuaXNBbmltYXRpb25PYmplY3RHcm91cD0hMDt2YXIgZmh0PWNsYXNze2NvbnN0cnVjdG9yKHQscixuPW51bGwsaT1yLmJsZW5kTW9kZSl7dGhpcy5fbWl4ZXI9dCx0aGlzLl9jbGlwPXIsdGhpcy5fbG9jYWxSb290PW4sdGhpcy5ibGVuZE1vZGU9aTtsZXQgbz1yLnRyYWNrcyxhPW8ubGVuZ3RoLHM9bmV3IEFycmF5KGEpLGw9e2VuZGluZ1N0YXJ0OlQxLGVuZGluZ0VuZDpUMX07Zm9yKGxldCBjPTA7YyE9PWE7KytjKXtsZXQgdT1vW2NdLmNyZWF0ZUludGVycG9sYW50KG51bGwpO3NbY109dSx1LnNldHRpbmdzPWx9dGhpcy5faW50ZXJwb2xhbnRTZXR0aW5ncz1sLHRoaXMuX2ludGVycG9sYW50cz1zLHRoaXMuX3Byb3BlcnR5QmluZGluZ3M9bmV3IEFycmF5KGEpLHRoaXMuX2NhY2hlSW5kZXg9bnVsbCx0aGlzLl9ieUNsaXBDYWNoZUluZGV4PW51bGwsdGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ9bnVsbCx0aGlzLl93ZWlnaHRJbnRlcnBvbGFudD1udWxsLHRoaXMubG9vcD1JZmUsdGhpcy5fbG9vcENvdW50PS0xLHRoaXMuX3N0YXJ0VGltZT1udWxsLHRoaXMudGltZT0wLHRoaXMudGltZVNjYWxlPTEsdGhpcy5fZWZmZWN0aXZlVGltZVNjYWxlPTEsdGhpcy53ZWlnaHQ9MSx0aGlzLl9lZmZlY3RpdmVXZWlnaHQ9MSx0aGlzLnJlcGV0aXRpb25zPTEvMCx0aGlzLnBhdXNlZD0hMSx0aGlzLmVuYWJsZWQ9ITAsdGhpcy5jbGFtcFdoZW5GaW5pc2hlZD0hMSx0aGlzLnplcm9TbG9wZUF0U3RhcnQ9ITAsdGhpcy56ZXJvU2xvcGVBdEVuZD0hMH1wbGF5KCl7cmV0dXJuIHRoaXMuX21peGVyLl9hY3RpdmF0ZUFjdGlvbih0aGlzKSx0aGlzfXN0b3AoKXtyZXR1cm4gdGhpcy5fbWl4ZXIuX2RlYWN0aXZhdGVBY3Rpb24odGhpcyksdGhpcy5yZXNldCgpfXJlc2V0KCl7cmV0dXJuIHRoaXMucGF1c2VkPSExLHRoaXMuZW5hYmxlZD0hMCx0aGlzLnRpbWU9MCx0aGlzLl9sb29wQ291bnQ9LTEsdGhpcy5fc3RhcnRUaW1lPW51bGwsdGhpcy5zdG9wRmFkaW5nKCkuc3RvcFdhcnBpbmcoKX1pc1J1bm5pbmcoKXtyZXR1cm4gdGhpcy5lbmFibGVkJiYhdGhpcy5wYXVzZWQmJnRoaXMudGltZVNjYWxlIT09MCYmdGhpcy5fc3RhcnRUaW1lPT09bnVsbCYmdGhpcy5fbWl4ZXIuX2lzQWN0aXZlQWN0aW9uKHRoaXMpfWlzU2NoZWR1bGVkKCl7cmV0dXJuIHRoaXMuX21peGVyLl9pc0FjdGl2ZUFjdGlvbih0aGlzKX1zdGFydEF0KHQpe3JldHVybiB0aGlzLl9zdGFydFRpbWU9dCx0aGlzfXNldExvb3AodCxyKXtyZXR1cm4gdGhpcy5sb29wPXQsdGhpcy5yZXBldGl0aW9ucz1yLHRoaXN9c2V0RWZmZWN0aXZlV2VpZ2h0KHQpe3JldHVybiB0aGlzLndlaWdodD10LHRoaXMuX2VmZmVjdGl2ZVdlaWdodD10aGlzLmVuYWJsZWQ/dDowLHRoaXMuc3RvcEZhZGluZygpfWdldEVmZmVjdGl2ZVdlaWdodCgpe3JldHVybiB0aGlzLl9lZmZlY3RpdmVXZWlnaHR9ZmFkZUluKHQpe3JldHVybiB0aGlzLl9zY2hlZHVsZUZhZGluZyh0LDAsMSl9ZmFkZU91dCh0KXtyZXR1cm4gdGhpcy5fc2NoZWR1bGVGYWRpbmcodCwxLDApfWNyb3NzRmFkZUZyb20odCxyLG4pe2lmKHQuZmFkZU91dChyKSx0aGlzLmZhZGVJbihyKSxuKXtsZXQgaT10aGlzLl9jbGlwLmR1cmF0aW9uLG89dC5fY2xpcC5kdXJhdGlvbixhPW8vaSxzPWkvbzt0LndhcnAoMSxhLHIpLHRoaXMud2FycChzLDEscil9cmV0dXJuIHRoaXN9Y3Jvc3NGYWRlVG8odCxyLG4pe3JldHVybiB0LmNyb3NzRmFkZUZyb20odGhpcyxyLG4pfXN0b3BGYWRpbmcoKXtsZXQgdD10aGlzLl93ZWlnaHRJbnRlcnBvbGFudDtyZXR1cm4gdCE9PW51bGwmJih0aGlzLl93ZWlnaHRJbnRlcnBvbGFudD1udWxsLHRoaXMuX21peGVyLl90YWtlQmFja0NvbnRyb2xJbnRlcnBvbGFudCh0KSksdGhpc31zZXRFZmZlY3RpdmVUaW1lU2NhbGUodCl7cmV0dXJuIHRoaXMudGltZVNjYWxlPXQsdGhpcy5fZWZmZWN0aXZlVGltZVNjYWxlPXRoaXMucGF1c2VkPzA6dCx0aGlzLnN0b3BXYXJwaW5nKCl9Z2V0RWZmZWN0aXZlVGltZVNjYWxlKCl7cmV0dXJuIHRoaXMuX2VmZmVjdGl2ZVRpbWVTY2FsZX1zZXREdXJhdGlvbih0KXtyZXR1cm4gdGhpcy50aW1lU2NhbGU9dGhpcy5fY2xpcC5kdXJhdGlvbi90LHRoaXMuc3RvcFdhcnBpbmcoKX1zeW5jV2l0aCh0KXtyZXR1cm4gdGhpcy50aW1lPXQudGltZSx0aGlzLnRpbWVTY2FsZT10LnRpbWVTY2FsZSx0aGlzLnN0b3BXYXJwaW5nKCl9aGFsdCh0KXtyZXR1cm4gdGhpcy53YXJwKHRoaXMuX2VmZmVjdGl2ZVRpbWVTY2FsZSwwLHQpfXdhcnAodCxyLG4pe2xldCBpPXRoaXMuX21peGVyLG89aS50aW1lLGE9dGhpcy50aW1lU2NhbGUscz10aGlzLl90aW1lU2NhbGVJbnRlcnBvbGFudDtzPT09bnVsbCYmKHM9aS5fbGVuZENvbnRyb2xJbnRlcnBvbGFudCgpLHRoaXMuX3RpbWVTY2FsZUludGVycG9sYW50PXMpO2xldCBsPXMucGFyYW1ldGVyUG9zaXRpb25zLGM9cy5zYW1wbGVWYWx1ZXM7cmV0dXJuIGxbMF09byxsWzFdPW8rbixjWzBdPXQvYSxjWzFdPXIvYSx0aGlzfXN0b3BXYXJwaW5nKCl7bGV0IHQ9dGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ7cmV0dXJuIHQhPT1udWxsJiYodGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ9bnVsbCx0aGlzLl9taXhlci5fdGFrZUJhY2tDb250cm9sSW50ZXJwb2xhbnQodCkpLHRoaXN9Z2V0TWl4ZXIoKXtyZXR1cm4gdGhpcy5fbWl4ZXJ9Z2V0Q2xpcCgpe3JldHVybiB0aGlzLl9jbGlwfWdldFJvb3QoKXtyZXR1cm4gdGhpcy5fbG9jYWxSb290fHx0aGlzLl9taXhlci5fcm9vdH1fdXBkYXRlKHQscixuLGkpe2lmKCF0aGlzLmVuYWJsZWQpe3RoaXMuX3VwZGF0ZVdlaWdodCh0KTtyZXR1cm59bGV0IG89dGhpcy5fc3RhcnRUaW1lO2lmKG8hPT1udWxsKXtsZXQgbD0odC1vKSpuO2lmKGw8MHx8bj09PTApcmV0dXJuO3RoaXMuX3N0YXJ0VGltZT1udWxsLHI9bipsfXIqPXRoaXMuX3VwZGF0ZVRpbWVTY2FsZSh0KTtsZXQgYT10aGlzLl91cGRhdGVUaW1lKHIpLHM9dGhpcy5fdXBkYXRlV2VpZ2h0KHQpO2lmKHM+MCl7bGV0IGw9dGhpcy5faW50ZXJwb2xhbnRzLGM9dGhpcy5fcHJvcGVydHlCaW5kaW5ncztzd2l0Y2godGhpcy5ibGVuZE1vZGUpe2Nhc2Uga2h0OmZvcihsZXQgdT0wLGg9bC5sZW5ndGg7dSE9PWg7Kyt1KWxbdV0uZXZhbHVhdGUoYSksY1t1XS5hY2N1bXVsYXRlQWRkaXRpdmUocyk7YnJlYWs7Y2FzZSAkVTpkZWZhdWx0OmZvcihsZXQgdT0wLGg9bC5sZW5ndGg7dSE9PWg7Kyt1KWxbdV0uZXZhbHVhdGUoYSksY1t1XS5hY2N1bXVsYXRlKGkscyl9fX1fdXBkYXRlV2VpZ2h0KHQpe2xldCByPTA7aWYodGhpcy5lbmFibGVkKXtyPXRoaXMud2VpZ2h0O2xldCBuPXRoaXMuX3dlaWdodEludGVycG9sYW50O2lmKG4hPT1udWxsKXtsZXQgaT1uLmV2YWx1YXRlKHQpWzBdO3IqPWksdD5uLnBhcmFtZXRlclBvc2l0aW9uc1sxXSYmKHRoaXMuc3RvcEZhZGluZygpLGk9PT0wJiYodGhpcy5lbmFibGVkPSExKSl9fXJldHVybiB0aGlzLl9lZmZlY3RpdmVXZWlnaHQ9cixyfV91cGRhdGVUaW1lU2NhbGUodCl7bGV0IHI9MDtpZighdGhpcy5wYXVzZWQpe3I9dGhpcy50aW1lU2NhbGU7bGV0IG49dGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ7biE9PW51bGwmJihyKj1uLmV2YWx1YXRlKHQpWzBdLHQ+bi5wYXJhbWV0ZXJQb3NpdGlvbnNbMV0mJih0aGlzLnN0b3BXYXJwaW5nKCkscj09PTA/dGhpcy5wYXVzZWQ9ITA6dGhpcy50aW1lU2NhbGU9cikpfXJldHVybiB0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGU9cixyfV91cGRhdGVUaW1lKHQpe2xldCByPXRoaXMuX2NsaXAuZHVyYXRpb24sbj10aGlzLmxvb3AsaT10aGlzLnRpbWUrdCxvPXRoaXMuX2xvb3BDb3VudCxhPW49PT1MZmU7aWYodD09PTApcmV0dXJuIG89PT0tMT9pOmEmJihvJjEpPT09MT9yLWk6aTtpZihuPT09UGZlKXtvPT09LTEmJih0aGlzLl9sb29wQ291bnQ9MCx0aGlzLl9zZXRFbmRpbmdzKCEwLCEwLCExKSk7dDp7aWYoaT49cilpPXI7ZWxzZSBpZihpPDApaT0wO2Vsc2V7dGhpcy50aW1lPWk7YnJlYWsgdH10aGlzLmNsYW1wV2hlbkZpbmlzaGVkP3RoaXMucGF1c2VkPSEwOnRoaXMuZW5hYmxlZD0hMSx0aGlzLnRpbWU9aSx0aGlzLl9taXhlci5kaXNwYXRjaEV2ZW50KHt0eXBlOiJmaW5pc2hlZCIsYWN0aW9uOnRoaXMsZGlyZWN0aW9uOnQ8MD8tMToxfSl9fWVsc2V7aWYobz09PS0xJiYodD49MD8obz0wLHRoaXMuX3NldEVuZGluZ3MoITAsdGhpcy5yZXBldGl0aW9ucz09PTAsYSkpOnRoaXMuX3NldEVuZGluZ3ModGhpcy5yZXBldGl0aW9ucz09PTAsITAsYSkpLGk+PXJ8fGk8MCl7bGV0IHM9TWF0aC5mbG9vcihpL3IpO2ktPXIqcyxvKz1NYXRoLmFicyhzKTtsZXQgbD10aGlzLnJlcGV0aXRpb25zLW87aWYobDw9MCl0aGlzLmNsYW1wV2hlbkZpbmlzaGVkP3RoaXMucGF1c2VkPSEwOnRoaXMuZW5hYmxlZD0hMSxpPXQ+MD9yOjAsdGhpcy50aW1lPWksdGhpcy5fbWl4ZXIuZGlzcGF0Y2hFdmVudCh7dHlwZToiZmluaXNoZWQiLGFjdGlvbjp0aGlzLGRpcmVjdGlvbjp0PjA/MTotMX0pO2Vsc2V7aWYobD09PTEpe2xldCBjPXQ8MDt0aGlzLl9zZXRFbmRpbmdzKGMsIWMsYSl9ZWxzZSB0aGlzLl9zZXRFbmRpbmdzKCExLCExLGEpO3RoaXMuX2xvb3BDb3VudD1vLHRoaXMudGltZT1pLHRoaXMuX21peGVyLmRpc3BhdGNoRXZlbnQoe3R5cGU6Imxvb3AiLGFjdGlvbjp0aGlzLGxvb3BEZWx0YTpzfSl9fWVsc2UgdGhpcy50aW1lPWk7aWYoYSYmKG8mMSk9PT0xKXJldHVybiByLWl9cmV0dXJuIGl9X3NldEVuZGluZ3ModCxyLG4pe2xldCBpPXRoaXMuX2ludGVycG9sYW50U2V0dGluZ3M7bj8oaS5lbmRpbmdTdGFydD1DMSxpLmVuZGluZ0VuZD1DMSk6KHQ/aS5lbmRpbmdTdGFydD10aGlzLnplcm9TbG9wZUF0U3RhcnQ/QzE6VDE6aS5lbmRpbmdTdGFydD1KUCxyP2kuZW5kaW5nRW5kPXRoaXMuemVyb1Nsb3BlQXRFbmQ/QzE6VDE6aS5lbmRpbmdFbmQ9SlApfV9zY2hlZHVsZUZhZGluZyh0LHIsbil7bGV0IGk9dGhpcy5fbWl4ZXIsbz1pLnRpbWUsYT10aGlzLl93ZWlnaHRJbnRlcnBvbGFudDthPT09bnVsbCYmKGE9aS5fbGVuZENvbnRyb2xJbnRlcnBvbGFudCgpLHRoaXMuX3dlaWdodEludGVycG9sYW50PWEpO2xldCBzPWEucGFyYW1ldGVyUG9zaXRpb25zLGw9YS5zYW1wbGVWYWx1ZXM7cmV0dXJuIHNbMF09byxsWzBdPXIsc1sxXT1vK3QsbFsxXT1uLHRoaXN9fSxWVT1jbGFzcyBleHRlbmRzIHFze2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fcm9vdD10LHRoaXMuX2luaXRNZW1vcnlNYW5hZ2VyKCksdGhpcy5fYWNjdUluZGV4PTAsdGhpcy50aW1lPTAsdGhpcy50aW1lU2NhbGU9MX1fYmluZEFjdGlvbih0LHIpe2xldCBuPXQuX2xvY2FsUm9vdHx8dGhpcy5fcm9vdCxpPXQuX2NsaXAudHJhY2tzLG89aS5sZW5ndGgsYT10Ll9wcm9wZXJ0eUJpbmRpbmdzLHM9dC5faW50ZXJwb2xhbnRzLGw9bi51dWlkLGM9dGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lLHU9Y1tsXTt1PT09dm9pZCAwJiYodT17fSxjW2xdPXUpO2ZvcihsZXQgaD0wO2ghPT1vOysraCl7bGV0IGY9aVtoXSxwPWYubmFtZSxkPXVbcF07aWYoZCE9PXZvaWQgMCkrK2QucmVmZXJlbmNlQ291bnQsYVtoXT1kO2Vsc2V7aWYoZD1hW2hdLGQhPT12b2lkIDApe2QuX2NhY2hlSW5kZXg9PT1udWxsJiYoKytkLnJlZmVyZW5jZUNvdW50LHRoaXMuX2FkZEluYWN0aXZlQmluZGluZyhkLGwscCkpO2NvbnRpbnVlfWxldCBnPXImJnIuX3Byb3BlcnR5QmluZGluZ3NbaF0uYmluZGluZy5wYXJzZWRQYXRoO2Q9bmV3IEJVKENyLmNyZWF0ZShuLHAsZyksZi5WYWx1ZVR5cGVOYW1lLGYuZ2V0VmFsdWVTaXplKCkpLCsrZC5yZWZlcmVuY2VDb3VudCx0aGlzLl9hZGRJbmFjdGl2ZUJpbmRpbmcoZCxsLHApLGFbaF09ZH1zW2hdLnJlc3VsdEJ1ZmZlcj1kLmJ1ZmZlcn19X2FjdGl2YXRlQWN0aW9uKHQpe2lmKCF0aGlzLl9pc0FjdGl2ZUFjdGlvbih0KSl7aWYodC5fY2FjaGVJbmRleD09PW51bGwpe2xldCBuPSh0Ll9sb2NhbFJvb3R8fHRoaXMuX3Jvb3QpLnV1aWQsaT10Ll9jbGlwLnV1aWQsbz10aGlzLl9hY3Rpb25zQnlDbGlwW2ldO3RoaXMuX2JpbmRBY3Rpb24odCxvJiZvLmtub3duQWN0aW9uc1swXSksdGhpcy5fYWRkSW5hY3RpdmVBY3Rpb24odCxpLG4pfWxldCByPXQuX3Byb3BlcnR5QmluZGluZ3M7Zm9yKGxldCBuPTAsaT1yLmxlbmd0aDtuIT09aTsrK24pe2xldCBvPXJbbl07by51c2VDb3VudCsrPT09MCYmKHRoaXMuX2xlbmRCaW5kaW5nKG8pLG8uc2F2ZU9yaWdpbmFsU3RhdGUoKSl9dGhpcy5fbGVuZEFjdGlvbih0KX19X2RlYWN0aXZhdGVBY3Rpb24odCl7aWYodGhpcy5faXNBY3RpdmVBY3Rpb24odCkpe2xldCByPXQuX3Byb3BlcnR5QmluZGluZ3M7Zm9yKGxldCBuPTAsaT1yLmxlbmd0aDtuIT09aTsrK24pe2xldCBvPXJbbl07LS1vLnVzZUNvdW50PT09MCYmKG8ucmVzdG9yZU9yaWdpbmFsU3RhdGUoKSx0aGlzLl90YWtlQmFja0JpbmRpbmcobykpfXRoaXMuX3Rha2VCYWNrQWN0aW9uKHQpfX1faW5pdE1lbW9yeU1hbmFnZXIoKXt0aGlzLl9hY3Rpb25zPVtdLHRoaXMuX25BY3RpdmVBY3Rpb25zPTAsdGhpcy5fYWN0aW9uc0J5Q2xpcD17fSx0aGlzLl9iaW5kaW5ncz1bXSx0aGlzLl9uQWN0aXZlQmluZGluZ3M9MCx0aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWU9e30sdGhpcy5fY29udHJvbEludGVycG9sYW50cz1bXSx0aGlzLl9uQWN0aXZlQ29udHJvbEludGVycG9sYW50cz0wO2xldCB0PXRoaXM7dGhpcy5zdGF0cz17YWN0aW9uczp7Z2V0IHRvdGFsKCl7cmV0dXJuIHQuX2FjdGlvbnMubGVuZ3RofSxnZXQgaW5Vc2UoKXtyZXR1cm4gdC5fbkFjdGl2ZUFjdGlvbnN9fSxiaW5kaW5nczp7Z2V0IHRvdGFsKCl7cmV0dXJuIHQuX2JpbmRpbmdzLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVCaW5kaW5nc319LGNvbnRyb2xJbnRlcnBvbGFudHM6e2dldCB0b3RhbCgpe3JldHVybiB0Ll9jb250cm9sSW50ZXJwb2xhbnRzLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVDb250cm9sSW50ZXJwb2xhbnRzfX19fV9pc0FjdGl2ZUFjdGlvbih0KXtsZXQgcj10Ll9jYWNoZUluZGV4O3JldHVybiByIT09bnVsbCYmcjx0aGlzLl9uQWN0aXZlQWN0aW9uc31fYWRkSW5hY3RpdmVBY3Rpb24odCxyLG4pe2xldCBpPXRoaXMuX2FjdGlvbnMsbz10aGlzLl9hY3Rpb25zQnlDbGlwLGE9b1tyXTtpZihhPT09dm9pZCAwKWE9e2tub3duQWN0aW9uczpbdF0sYWN0aW9uQnlSb290Ont9fSx0Ll9ieUNsaXBDYWNoZUluZGV4PTAsb1tyXT1hO2Vsc2V7bGV0IHM9YS5rbm93bkFjdGlvbnM7dC5fYnlDbGlwQ2FjaGVJbmRleD1zLmxlbmd0aCxzLnB1c2godCl9dC5fY2FjaGVJbmRleD1pLmxlbmd0aCxpLnB1c2godCksYS5hY3Rpb25CeVJvb3Rbbl09dH1fcmVtb3ZlSW5hY3RpdmVBY3Rpb24odCl7bGV0IHI9dGhpcy5fYWN0aW9ucyxuPXJbci5sZW5ndGgtMV0saT10Ll9jYWNoZUluZGV4O24uX2NhY2hlSW5kZXg9aSxyW2ldPW4sci5wb3AoKSx0Ll9jYWNoZUluZGV4PW51bGw7bGV0IG89dC5fY2xpcC51dWlkLGE9dGhpcy5fYWN0aW9uc0J5Q2xpcCxzPWFbb10sbD1zLmtub3duQWN0aW9ucyxjPWxbbC5sZW5ndGgtMV0sdT10Ll9ieUNsaXBDYWNoZUluZGV4O2MuX2J5Q2xpcENhY2hlSW5kZXg9dSxsW3VdPWMsbC5wb3AoKSx0Ll9ieUNsaXBDYWNoZUluZGV4PW51bGw7bGV0IGg9cy5hY3Rpb25CeVJvb3QsZj0odC5fbG9jYWxSb290fHx0aGlzLl9yb290KS51dWlkO2RlbGV0ZSBoW2ZdLGwubGVuZ3RoPT09MCYmZGVsZXRlIGFbb10sdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nc0ZvckFjdGlvbih0KX1fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nc0ZvckFjdGlvbih0KXtsZXQgcj10Ll9wcm9wZXJ0eUJpbmRpbmdzO2ZvcihsZXQgbj0wLGk9ci5sZW5ndGg7biE9PWk7KytuKXtsZXQgbz1yW25dOy0tby5yZWZlcmVuY2VDb3VudD09PTAmJnRoaXMuX3JlbW92ZUluYWN0aXZlQmluZGluZyhvKX19X2xlbmRBY3Rpb24odCl7bGV0IHI9dGhpcy5fYWN0aW9ucyxuPXQuX2NhY2hlSW5kZXgsaT10aGlzLl9uQWN0aXZlQWN0aW9ucysrLG89cltpXTt0Ll9jYWNoZUluZGV4PWkscltpXT10LG8uX2NhY2hlSW5kZXg9bixyW25dPW99X3Rha2VCYWNrQWN0aW9uKHQpe2xldCByPXRoaXMuX2FjdGlvbnMsbj10Ll9jYWNoZUluZGV4LGk9LS10aGlzLl9uQWN0aXZlQWN0aW9ucyxvPXJbaV07dC5fY2FjaGVJbmRleD1pLHJbaV09dCxvLl9jYWNoZUluZGV4PW4scltuXT1vfV9hZGRJbmFjdGl2ZUJpbmRpbmcodCxyLG4pe2xldCBpPXRoaXMuX2JpbmRpbmdzQnlSb290QW5kTmFtZSxvPXRoaXMuX2JpbmRpbmdzLGE9aVtyXTthPT09dm9pZCAwJiYoYT17fSxpW3JdPWEpLGFbbl09dCx0Ll9jYWNoZUluZGV4PW8ubGVuZ3RoLG8ucHVzaCh0KX1fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKHQpe2xldCByPXRoaXMuX2JpbmRpbmdzLG49dC5iaW5kaW5nLGk9bi5yb290Tm9kZS51dWlkLG89bi5wYXRoLGE9dGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lLHM9YVtpXSxsPXJbci5sZW5ndGgtMV0sYz10Ll9jYWNoZUluZGV4O2wuX2NhY2hlSW5kZXg9YyxyW2NdPWwsci5wb3AoKSxkZWxldGUgc1tvXSxPYmplY3Qua2V5cyhzKS5sZW5ndGg9PT0wJiZkZWxldGUgYVtpXX1fbGVuZEJpbmRpbmcodCl7bGV0IHI9dGhpcy5fYmluZGluZ3Msbj10Ll9jYWNoZUluZGV4LGk9dGhpcy5fbkFjdGl2ZUJpbmRpbmdzKyssbz1yW2ldO3QuX2NhY2hlSW5kZXg9aSxyW2ldPXQsby5fY2FjaGVJbmRleD1uLHJbbl09b31fdGFrZUJhY2tCaW5kaW5nKHQpe2xldCByPXRoaXMuX2JpbmRpbmdzLG49dC5fY2FjaGVJbmRleCxpPS0tdGhpcy5fbkFjdGl2ZUJpbmRpbmdzLG89cltpXTt0Ll9jYWNoZUluZGV4PWkscltpXT10LG8uX2NhY2hlSW5kZXg9bixyW25dPW99X2xlbmRDb250cm9sSW50ZXJwb2xhbnQoKXtsZXQgdD10aGlzLl9jb250cm9sSW50ZXJwb2xhbnRzLHI9dGhpcy5fbkFjdGl2ZUNvbnRyb2xJbnRlcnBvbGFudHMrKyxuPXRbcl07cmV0dXJuIG49PT12b2lkIDAmJihuPW5ldyBTNihuZXcgRmxvYXQzMkFycmF5KDIpLG5ldyBGbG9hdDMyQXJyYXkoMiksMSx0aGlzLl9jb250cm9sSW50ZXJwb2xhbnRzUmVzdWx0QnVmZmVyKSxuLl9fY2FjaGVJbmRleD1yLHRbcl09biksbn1fdGFrZUJhY2tDb250cm9sSW50ZXJwb2xhbnQodCl7bGV0IHI9dGhpcy5fY29udHJvbEludGVycG9sYW50cyxuPXQuX19jYWNoZUluZGV4LGk9LS10aGlzLl9uQWN0aXZlQ29udHJvbEludGVycG9sYW50cyxvPXJbaV07dC5fX2NhY2hlSW5kZXg9aSxyW2ldPXQsby5fX2NhY2hlSW5kZXg9bixyW25dPW99Y2xpcEFjdGlvbih0LHIsbil7bGV0IGk9cnx8dGhpcy5fcm9vdCxvPWkudXVpZCxhPXR5cGVvZiB0PT0ic3RyaW5nIj90eC5maW5kQnlOYW1lKGksdCk6dCxzPWEhPT1udWxsP2EudXVpZDp0LGw9dGhpcy5fYWN0aW9uc0J5Q2xpcFtzXSxjPW51bGw7aWYobj09PXZvaWQgMCYmKGEhPT1udWxsP249YS5ibGVuZE1vZGU6bj0kVSksbCE9PXZvaWQgMCl7bGV0IGg9bC5hY3Rpb25CeVJvb3Rbb107aWYoaCE9PXZvaWQgMCYmaC5ibGVuZE1vZGU9PT1uKXJldHVybiBoO2M9bC5rbm93bkFjdGlvbnNbMF0sYT09PW51bGwmJihhPWMuX2NsaXApfWlmKGE9PT1udWxsKXJldHVybiBudWxsO2xldCB1PW5ldyBmaHQodGhpcyxhLHIsbik7cmV0dXJuIHRoaXMuX2JpbmRBY3Rpb24odSxjKSx0aGlzLl9hZGRJbmFjdGl2ZUFjdGlvbih1LHMsbyksdX1leGlzdGluZ0FjdGlvbih0LHIpe2xldCBuPXJ8fHRoaXMuX3Jvb3QsaT1uLnV1aWQsbz10eXBlb2YgdD09InN0cmluZyI/dHguZmluZEJ5TmFtZShuLHQpOnQsYT1vP28udXVpZDp0LHM9dGhpcy5fYWN0aW9uc0J5Q2xpcFthXTtyZXR1cm4gcyE9PXZvaWQgMCYmcy5hY3Rpb25CeVJvb3RbaV18fG51bGx9c3RvcEFsbEFjdGlvbigpe2xldCB0PXRoaXMuX2FjdGlvbnMscj10aGlzLl9uQWN0aXZlQWN0aW9ucztmb3IobGV0IG49ci0xO24+PTA7LS1uKXRbbl0uc3RvcCgpO3JldHVybiB0aGlzfXVwZGF0ZSh0KXt0Kj10aGlzLnRpbWVTY2FsZTtsZXQgcj10aGlzLl9hY3Rpb25zLG49dGhpcy5fbkFjdGl2ZUFjdGlvbnMsaT10aGlzLnRpbWUrPXQsbz1NYXRoLnNpZ24odCksYT10aGlzLl9hY2N1SW5kZXhePTE7Zm9yKGxldCBjPTA7YyE9PW47KytjKXJbY10uX3VwZGF0ZShpLHQsbyxhKTtsZXQgcz10aGlzLl9iaW5kaW5ncyxsPXRoaXMuX25BY3RpdmVCaW5kaW5ncztmb3IobGV0IGM9MDtjIT09bDsrK2Mpc1tjXS5hcHBseShhKTtyZXR1cm4gdGhpc31zZXRUaW1lKHQpe3RoaXMudGltZT0wO2ZvcihsZXQgcj0wO3I8dGhpcy5fYWN0aW9ucy5sZW5ndGg7cisrKXRoaXMuX2FjdGlvbnNbcl0udGltZT0wO3JldHVybiB0aGlzLnVwZGF0ZSh0KX1nZXRSb290KCl7cmV0dXJuIHRoaXMuX3Jvb3R9dW5jYWNoZUNsaXAodCl7bGV0IHI9dGhpcy5fYWN0aW9ucyxuPXQudXVpZCxpPXRoaXMuX2FjdGlvbnNCeUNsaXAsbz1pW25dO2lmKG8hPT12b2lkIDApe2xldCBhPW8ua25vd25BY3Rpb25zO2ZvcihsZXQgcz0wLGw9YS5sZW5ndGg7cyE9PWw7KytzKXtsZXQgYz1hW3NdO3RoaXMuX2RlYWN0aXZhdGVBY3Rpb24oYyk7bGV0IHU9Yy5fY2FjaGVJbmRleCxoPXJbci5sZW5ndGgtMV07Yy5fY2FjaGVJbmRleD1udWxsLGMuX2J5Q2xpcENhY2hlSW5kZXg9bnVsbCxoLl9jYWNoZUluZGV4PXUsclt1XT1oLHIucG9wKCksdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nc0ZvckFjdGlvbihjKX1kZWxldGUgaVtuXX19dW5jYWNoZVJvb3QodCl7bGV0IHI9dC51dWlkLG49dGhpcy5fYWN0aW9uc0J5Q2xpcDtmb3IobGV0IGEgaW4gbil7bGV0IHM9blthXS5hY3Rpb25CeVJvb3QsbD1zW3JdO2whPT12b2lkIDAmJih0aGlzLl9kZWFjdGl2YXRlQWN0aW9uKGwpLHRoaXMuX3JlbW92ZUluYWN0aXZlQWN0aW9uKGwpKX1sZXQgaT10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWUsbz1pW3JdO2lmKG8hPT12b2lkIDApZm9yKGxldCBhIGluIG8pe2xldCBzPW9bYV07cy5yZXN0b3JlT3JpZ2luYWxTdGF0ZSgpLHRoaXMuX3JlbW92ZUluYWN0aXZlQmluZGluZyhzKX19dW5jYWNoZUFjdGlvbih0LHIpe2xldCBuPXRoaXMuZXhpc3RpbmdBY3Rpb24odCxyKTtuIT09bnVsbCYmKHRoaXMuX2RlYWN0aXZhdGVBY3Rpb24obiksdGhpcy5fcmVtb3ZlSW5hY3RpdmVBY3Rpb24obikpfX07VlUucHJvdG90eXBlLl9jb250cm9sSW50ZXJwb2xhbnRzUmVzdWx0QnVmZmVyPW5ldyBGbG9hdDMyQXJyYXkoMSk7dmFyIGdNPWNsYXNze2NvbnN0cnVjdG9yKHQpe3R5cGVvZiB0PT0ic3RyaW5nIiYmKGNvbnNvbGUud2FybigiVEhSRUUuVW5pZm9ybTogVHlwZSBwYXJhbWV0ZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZC4iKSx0PWFyZ3VtZW50c1sxXSksdGhpcy52YWx1ZT10fWNsb25lKCl7cmV0dXJuIG5ldyBnTSh0aGlzLnZhbHVlLmNsb25lPT09dm9pZCAwP3RoaXMudmFsdWU6dGhpcy52YWx1ZS5jbG9uZSgpKX19LFVVPWNsYXNzIGV4dGVuZHMgcm17Y29uc3RydWN0b3IodCxyLG49MSl7c3VwZXIodCxyKSx0aGlzLm1lc2hQZXJBdHRyaWJ1dGU9bn1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMubWVzaFBlckF0dHJpYnV0ZT10Lm1lc2hQZXJBdHRyaWJ1dGUsdGhpc31jbG9uZSh0KXtsZXQgcj1zdXBlci5jbG9uZSh0KTtyZXR1cm4gci5tZXNoUGVyQXR0cmlidXRlPXRoaXMubWVzaFBlckF0dHJpYnV0ZSxyfXRvSlNPTih0KXtsZXQgcj1zdXBlci50b0pTT04odCk7cmV0dXJuIHIuaXNJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcj0hMCxyLm1lc2hQZXJBdHRyaWJ1dGU9dGhpcy5tZXNoUGVyQXR0cmlidXRlLHJ9fTtVVS5wcm90b3R5cGUuaXNJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcj0hMDt2YXIgcVU9Y2xhc3N7Y29uc3RydWN0b3IodCxyLG4saSxvKXt0aGlzLmJ1ZmZlcj10LHRoaXMudHlwZT1yLHRoaXMuaXRlbVNpemU9bix0aGlzLmVsZW1lbnRTaXplPWksdGhpcy5jb3VudD1vLHRoaXMudmVyc2lvbj0wfXNldCBuZWVkc1VwZGF0ZSh0KXt0PT09ITAmJnRoaXMudmVyc2lvbisrfXNldEJ1ZmZlcih0KXtyZXR1cm4gdGhpcy5idWZmZXI9dCx0aGlzfXNldFR5cGUodCxyKXtyZXR1cm4gdGhpcy50eXBlPXQsdGhpcy5lbGVtZW50U2l6ZT1yLHRoaXN9c2V0SXRlbVNpemUodCl7cmV0dXJuIHRoaXMuaXRlbVNpemU9dCx0aGlzfXNldENvdW50KHQpe3JldHVybiB0aGlzLmNvdW50PXQsdGhpc319O3FVLnByb3RvdHlwZS5pc0dMQnVmZmVyQXR0cmlidXRlPSEwO3ZhciBwaHQ9Y2xhc3N7Y29uc3RydWN0b3IodCxyLG49MCxpPTEvMCl7dGhpcy5yYXk9bmV3IFFmKHQsciksdGhpcy5uZWFyPW4sdGhpcy5mYXI9aSx0aGlzLmNhbWVyYT1udWxsLHRoaXMubGF5ZXJzPW5ldyBYMyx0aGlzLnBhcmFtcz17TWVzaDp7fSxMaW5lOnt0aHJlc2hvbGQ6MX0sTE9EOnt9LFBvaW50czp7dGhyZXNob2xkOjF9LFNwcml0ZTp7fX19c2V0KHQscil7dGhpcy5yYXkuc2V0KHQscil9c2V0RnJvbUNhbWVyYSh0LHIpe3ImJnIuaXNQZXJzcGVjdGl2ZUNhbWVyYT8odGhpcy5yYXkub3JpZ2luLnNldEZyb21NYXRyaXhQb3NpdGlvbihyLm1hdHJpeFdvcmxkKSx0aGlzLnJheS5kaXJlY3Rpb24uc2V0KHQueCx0LnksLjUpLnVucHJvamVjdChyKS5zdWIodGhpcy5yYXkub3JpZ2luKS5ub3JtYWxpemUoKSx0aGlzLmNhbWVyYT1yKTpyJiZyLmlzT3J0aG9ncmFwaGljQ2FtZXJhPyh0aGlzLnJheS5vcmlnaW4uc2V0KHQueCx0LnksKHIubmVhcityLmZhcikvKHIubmVhci1yLmZhcikpLnVucHJvamVjdChyKSx0aGlzLnJheS5kaXJlY3Rpb24uc2V0KDAsMCwtMSkudHJhbnNmb3JtRGlyZWN0aW9uKHIubWF0cml4V29ybGQpLHRoaXMuY2FtZXJhPXIpOmNvbnNvbGUuZXJyb3IoIlRIUkVFLlJheWNhc3RlcjogVW5zdXBwb3J0ZWQgY2FtZXJhIHR5cGU6ICIrci50eXBlKX1pbnRlcnNlY3RPYmplY3QodCxyPSEwLG49W10pe3JldHVybiBkaHQodCx0aGlzLG4sciksbi5zb3J0KExoZSksbn1pbnRlcnNlY3RPYmplY3RzKHQscj0hMCxuPVtdKXtmb3IobGV0IGk9MCxvPXQubGVuZ3RoO2k8bztpKyspZGh0KHRbaV0sdGhpcyxuLHIpO3JldHVybiBuLnNvcnQoTGhlKSxufX07ZnVuY3Rpb24gTGhlKGUsdCl7cmV0dXJuIGUuZGlzdGFuY2UtdC5kaXN0YW5jZX1mdW5jdGlvbiBkaHQoZSx0LHIsbil7aWYoZS5sYXllcnMudGVzdCh0LmxheWVycykmJmUucmF5Y2FzdCh0LHIpLG49PT0hMCl7bGV0IGk9ZS5jaGlsZHJlbjtmb3IobGV0IG89MCxhPWkubGVuZ3RoO288YTtvKyspZGh0KGlbb10sdCxyLCEwKX19dmFyIF9NPWNsYXNze2NvbnN0cnVjdG9yKHQ9MSxyPTAsbj0wKXtyZXR1cm4gdGhpcy5yYWRpdXM9dCx0aGlzLnBoaT1yLHRoaXMudGhldGE9bix0aGlzfXNldCh0LHIsbil7cmV0dXJuIHRoaXMucmFkaXVzPXQsdGhpcy5waGk9cix0aGlzLnRoZXRhPW4sdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLnJhZGl1cz10LnJhZGl1cyx0aGlzLnBoaT10LnBoaSx0aGlzLnRoZXRhPXQudGhldGEsdGhpc31tYWtlU2FmZSgpe3JldHVybiB0aGlzLnBoaT1NYXRoLm1heCgxZS02LE1hdGgubWluKE1hdGguUEktMWUtNix0aGlzLnBoaSkpLHRoaXN9c2V0RnJvbVZlY3RvcjModCl7cmV0dXJuIHRoaXMuc2V0RnJvbUNhcnRlc2lhbkNvb3Jkcyh0LngsdC55LHQueil9c2V0RnJvbUNhcnRlc2lhbkNvb3Jkcyh0LHIsbil7cmV0dXJuIHRoaXMucmFkaXVzPU1hdGguc3FydCh0KnQrcipyK24qbiksdGhpcy5yYWRpdXM9PT0wPyh0aGlzLnRoZXRhPTAsdGhpcy5waGk9MCk6KHRoaXMudGhldGE9TWF0aC5hdGFuMih0LG4pLHRoaXMucGhpPU1hdGguYWNvcyhabyhyL3RoaXMucmFkaXVzLC0xLDEpKSksdGhpc31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcigpLmNvcHkodGhpcyl9fSxtaHQ9Y2xhc3N7Y29uc3RydWN0b3IodD0xLHI9MCxuPTApe3JldHVybiB0aGlzLnJhZGl1cz10LHRoaXMudGhldGE9cix0aGlzLnk9bix0aGlzfXNldCh0LHIsbil7cmV0dXJuIHRoaXMucmFkaXVzPXQsdGhpcy50aGV0YT1yLHRoaXMueT1uLHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5yYWRpdXM9dC5yYWRpdXMsdGhpcy50aGV0YT10LnRoZXRhLHRoaXMueT10LnksdGhpc31zZXRGcm9tVmVjdG9yMyh0KXtyZXR1cm4gdGhpcy5zZXRGcm9tQ2FydGVzaWFuQ29vcmRzKHQueCx0LnksdC56KX1zZXRGcm9tQ2FydGVzaWFuQ29vcmRzKHQscixuKXtyZXR1cm4gdGhpcy5yYWRpdXM9TWF0aC5zcXJ0KHQqdCtuKm4pLHRoaXMudGhldGE9TWF0aC5hdGFuMih0LG4pLHRoaXMueT1yLHRoaXN9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IoKS5jb3B5KHRoaXMpfX0sa2hlPW5ldyBMdCxLMD1jbGFzc3tjb25zdHJ1Y3Rvcih0PW5ldyBMdCgxLzAsMS8wKSxyPW5ldyBMdCgtMS8wLC0xLzApKXt0aGlzLm1pbj10LHRoaXMubWF4PXJ9c2V0KHQscil7cmV0dXJuIHRoaXMubWluLmNvcHkodCksdGhpcy5tYXguY29weShyKSx0aGlzfXNldEZyb21Qb2ludHModCl7dGhpcy5tYWtlRW1wdHkoKTtmb3IobGV0IHI9MCxuPXQubGVuZ3RoO3I8bjtyKyspdGhpcy5leHBhbmRCeVBvaW50KHRbcl0pO3JldHVybiB0aGlzfXNldEZyb21DZW50ZXJBbmRTaXplKHQscil7bGV0IG49a2hlLmNvcHkocikubXVsdGlwbHlTY2FsYXIoLjUpO3JldHVybiB0aGlzLm1pbi5jb3B5KHQpLnN1YihuKSx0aGlzLm1heC5jb3B5KHQpLmFkZChuKSx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLm1pbi5jb3B5KHQubWluKSx0aGlzLm1heC5jb3B5KHQubWF4KSx0aGlzfW1ha2VFbXB0eSgpe3JldHVybiB0aGlzLm1pbi54PXRoaXMubWluLnk9MS8wLHRoaXMubWF4Lng9dGhpcy5tYXgueT0tMS8wLHRoaXN9aXNFbXB0eSgpe3JldHVybiB0aGlzLm1heC54PHRoaXMubWluLnh8fHRoaXMubWF4Lnk8dGhpcy5taW4ueX1nZXRDZW50ZXIodCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpP3Quc2V0KDAsMCk6dC5hZGRWZWN0b3JzKHRoaXMubWluLHRoaXMubWF4KS5tdWx0aXBseVNjYWxhciguNSl9Z2V0U2l6ZSh0KXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/dC5zZXQoMCwwKTp0LnN1YlZlY3RvcnModGhpcy5tYXgsdGhpcy5taW4pfWV4cGFuZEJ5UG9pbnQodCl7cmV0dXJuIHRoaXMubWluLm1pbih0KSx0aGlzLm1heC5tYXgodCksdGhpc31leHBhbmRCeVZlY3Rvcih0KXtyZXR1cm4gdGhpcy5taW4uc3ViKHQpLHRoaXMubWF4LmFkZCh0KSx0aGlzfWV4cGFuZEJ5U2NhbGFyKHQpe3JldHVybiB0aGlzLm1pbi5hZGRTY2FsYXIoLXQpLHRoaXMubWF4LmFkZFNjYWxhcih0KSx0aGlzfWNvbnRhaW5zUG9pbnQodCl7cmV0dXJuISh0Lng8dGhpcy5taW4ueHx8dC54PnRoaXMubWF4Lnh8fHQueTx0aGlzLm1pbi55fHx0Lnk+dGhpcy5tYXgueSl9Y29udGFpbnNCb3godCl7cmV0dXJuIHRoaXMubWluLng8PXQubWluLngmJnQubWF4Lng8PXRoaXMubWF4LngmJnRoaXMubWluLnk8PXQubWluLnkmJnQubWF4Lnk8PXRoaXMubWF4Lnl9Z2V0UGFyYW1ldGVyKHQscil7cmV0dXJuIHIuc2V0KCh0LngtdGhpcy5taW4ueCkvKHRoaXMubWF4LngtdGhpcy5taW4ueCksKHQueS10aGlzLm1pbi55KS8odGhpcy5tYXgueS10aGlzLm1pbi55KSl9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4hKHQubWF4Lng8dGhpcy5taW4ueHx8dC5taW4ueD50aGlzLm1heC54fHx0Lm1heC55PHRoaXMubWluLnl8fHQubWluLnk+dGhpcy5tYXgueSl9Y2xhbXBQb2ludCh0LHIpe3JldHVybiByLmNvcHkodCkuY2xhbXAodGhpcy5taW4sdGhpcy5tYXgpfWRpc3RhbmNlVG9Qb2ludCh0KXtyZXR1cm4ga2hlLmNvcHkodCkuY2xhbXAodGhpcy5taW4sdGhpcy5tYXgpLnN1Yih0KS5sZW5ndGgoKX1pbnRlcnNlY3QodCl7cmV0dXJuIHRoaXMubWluLm1heCh0Lm1pbiksdGhpcy5tYXgubWluKHQubWF4KSx0aGlzfXVuaW9uKHQpe3JldHVybiB0aGlzLm1pbi5taW4odC5taW4pLHRoaXMubWF4Lm1heCh0Lm1heCksdGhpc310cmFuc2xhdGUodCl7cmV0dXJuIHRoaXMubWluLmFkZCh0KSx0aGlzLm1heC5hZGQodCksdGhpc31lcXVhbHModCl7cmV0dXJuIHQubWluLmVxdWFscyh0aGlzLm1pbikmJnQubWF4LmVxdWFscyh0aGlzLm1heCl9fTtLMC5wcm90b3R5cGUuaXNCb3gyPSEwO3ZhciBSaGU9bmV3IGosWVY9bmV3IGosR1U9Y2xhc3N7Y29uc3RydWN0b3IodD1uZXcgaixyPW5ldyBqKXt0aGlzLnN0YXJ0PXQsdGhpcy5lbmQ9cn1zZXQodCxyKXtyZXR1cm4gdGhpcy5zdGFydC5jb3B5KHQpLHRoaXMuZW5kLmNvcHkociksdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLnN0YXJ0LmNvcHkodC5zdGFydCksdGhpcy5lbmQuY29weSh0LmVuZCksdGhpc31nZXRDZW50ZXIodCl7cmV0dXJuIHQuYWRkVmVjdG9ycyh0aGlzLnN0YXJ0LHRoaXMuZW5kKS5tdWx0aXBseVNjYWxhciguNSl9ZGVsdGEodCl7cmV0dXJuIHQuc3ViVmVjdG9ycyh0aGlzLmVuZCx0aGlzLnN0YXJ0KX1kaXN0YW5jZVNxKCl7cmV0dXJuIHRoaXMuc3RhcnQuZGlzdGFuY2VUb1NxdWFyZWQodGhpcy5lbmQpfWRpc3RhbmNlKCl7cmV0dXJuIHRoaXMuc3RhcnQuZGlzdGFuY2VUbyh0aGlzLmVuZCl9YXQodCxyKXtyZXR1cm4gdGhpcy5kZWx0YShyKS5tdWx0aXBseVNjYWxhcih0KS5hZGQodGhpcy5zdGFydCl9Y2xvc2VzdFBvaW50VG9Qb2ludFBhcmFtZXRlcih0LHIpe1JoZS5zdWJWZWN0b3JzKHQsdGhpcy5zdGFydCksWVYuc3ViVmVjdG9ycyh0aGlzLmVuZCx0aGlzLnN0YXJ0KTtsZXQgbj1ZVi5kb3QoWVYpLG89WVYuZG90KFJoZSkvbjtyZXR1cm4gciYmKG89Wm8obywwLDEpKSxvfWNsb3Nlc3RQb2ludFRvUG9pbnQodCxyLG4pe2xldCBpPXRoaXMuY2xvc2VzdFBvaW50VG9Qb2ludFBhcmFtZXRlcih0LHIpO3JldHVybiB0aGlzLmRlbHRhKG4pLm11bHRpcGx5U2NhbGFyKGkpLmFkZCh0aGlzLnN0YXJ0KX1hcHBseU1hdHJpeDQodCl7cmV0dXJuIHRoaXMuc3RhcnQuYXBwbHlNYXRyaXg0KHQpLHRoaXMuZW5kLmFwcGx5TWF0cml4NCh0KSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5zdGFydC5lcXVhbHModGhpcy5zdGFydCkmJnQuZW5kLmVxdWFscyh0aGlzLmVuZCl9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IoKS5jb3B5KHRoaXMpfX0sTmhlPW5ldyBqLGdodD1jbGFzcyBleHRlbmRzIG9ye2NvbnN0cnVjdG9yKHQscil7c3VwZXIoKSx0aGlzLmxpZ2h0PXQsdGhpcy5saWdodC51cGRhdGVNYXRyaXhXb3JsZCgpLHRoaXMubWF0cml4PXQubWF0cml4V29ybGQsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuY29sb3I9cjtsZXQgbj1uZXcgUGUsaT1bMCwwLDAsMCwwLDEsMCwwLDAsMSwwLDEsMCwwLDAsLTEsMCwxLDAsMCwwLDAsMSwxLDAsMCwwLDAsLTEsMV07Zm9yKGxldCBhPTAscz0xLGw9MzI7YTxsO2ErKyxzKyspe2xldCBjPWEvbCpNYXRoLlBJKjIsdT1zL2wqTWF0aC5QSSoyO2kucHVzaChNYXRoLmNvcyhjKSxNYXRoLnNpbihjKSwxLE1hdGguY29zKHUpLE1hdGguc2luKHUpLDEpfW4uc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IHhlKGksMykpO2xldCBvPW5ldyBHaSh7Zm9nOiExLHRvbmVNYXBwZWQ6ITF9KTt0aGlzLmNvbmU9bmV3IFBhKG4sbyksdGhpcy5hZGQodGhpcy5jb25lKSx0aGlzLnVwZGF0ZSgpfWRpc3Bvc2UoKXt0aGlzLmNvbmUuZ2VvbWV0cnkuZGlzcG9zZSgpLHRoaXMuY29uZS5tYXRlcmlhbC5kaXNwb3NlKCl9dXBkYXRlKCl7dGhpcy5saWdodC51cGRhdGVNYXRyaXhXb3JsZCgpO2xldCB0PXRoaXMubGlnaHQuZGlzdGFuY2U/dGhpcy5saWdodC5kaXN0YW5jZToxZTMscj10Kk1hdGgudGFuKHRoaXMubGlnaHQuYW5nbGUpO3RoaXMuY29uZS5zY2FsZS5zZXQocixyLHQpLE5oZS5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5saWdodC50YXJnZXQubWF0cml4V29ybGQpLHRoaXMuY29uZS5sb29rQXQoTmhlKSx0aGlzLmNvbG9yIT09dm9pZCAwP3RoaXMuY29uZS5tYXRlcmlhbC5jb2xvci5zZXQodGhpcy5jb2xvcik6dGhpcy5jb25lLm1hdGVyaWFsLmNvbG9yLmNvcHkodGhpcy5saWdodC5jb2xvcil9fSx6MD1uZXcgaixqVj1uZXcgTWUsYnV0PW5ldyBNZSxXVT1jbGFzcyBleHRlbmRzIFBhe2NvbnN0cnVjdG9yKHQpe2xldCByPW9wZSh0KSxuPW5ldyBQZSxpPVtdLG89W10sYT1uZXcgbmUoMCwwLDEpLHM9bmV3IG5lKDAsMSwwKTtmb3IobGV0IGM9MDtjPHIubGVuZ3RoO2MrKyl7bGV0IHU9cltjXTt1LnBhcmVudCYmdS5wYXJlbnQuaXNCb25lJiYoaS5wdXNoKDAsMCwwKSxpLnB1c2goMCwwLDApLG8ucHVzaChhLnIsYS5nLGEuYiksby5wdXNoKHMucixzLmcscy5iKSl9bi5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgeGUoaSwzKSksbi5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgeGUobywzKSk7bGV0IGw9bmV3IEdpKHt2ZXJ0ZXhDb2xvcnM6ITAsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITEsdG9uZU1hcHBlZDohMSx0cmFuc3BhcmVudDohMH0pO3N1cGVyKG4sbCksdGhpcy50eXBlPSJTa2VsZXRvbkhlbHBlciIsdGhpcy5pc1NrZWxldG9uSGVscGVyPSEwLHRoaXMucm9vdD10LHRoaXMuYm9uZXM9cix0aGlzLm1hdHJpeD10Lm1hdHJpeFdvcmxkLHRoaXMubWF0cml4QXV0b1VwZGF0ZT0hMX11cGRhdGVNYXRyaXhXb3JsZCh0KXtsZXQgcj10aGlzLmJvbmVzLG49dGhpcy5nZW9tZXRyeSxpPW4uZ2V0QXR0cmlidXRlKCJwb3NpdGlvbiIpO2J1dC5jb3B5KHRoaXMucm9vdC5tYXRyaXhXb3JsZCkuaW52ZXJ0KCk7Zm9yKGxldCBvPTAsYT0wO288ci5sZW5ndGg7bysrKXtsZXQgcz1yW29dO3MucGFyZW50JiZzLnBhcmVudC5pc0JvbmUmJihqVi5tdWx0aXBseU1hdHJpY2VzKGJ1dCxzLm1hdHJpeFdvcmxkKSx6MC5zZXRGcm9tTWF0cml4UG9zaXRpb24oalYpLGkuc2V0WFlaKGEsejAueCx6MC55LHowLnopLGpWLm11bHRpcGx5TWF0cmljZXMoYnV0LHMucGFyZW50Lm1hdHJpeFdvcmxkKSx6MC5zZXRGcm9tTWF0cml4UG9zaXRpb24oalYpLGkuc2V0WFlaKGErMSx6MC54LHowLnksejAueiksYSs9Mil9bi5nZXRBdHRyaWJ1dGUoInBvc2l0aW9uIikubmVlZHNVcGRhdGU9ITAsc3VwZXIudXBkYXRlTWF0cml4V29ybGQodCl9fTtmdW5jdGlvbiBvcGUoZSl7bGV0IHQ9W107ZSYmZS5pc0JvbmUmJnQucHVzaChlKTtmb3IobGV0IHI9MDtyPGUuY2hpbGRyZW4ubGVuZ3RoO3IrKyl0LnB1c2guYXBwbHkodCxvcGUoZS5jaGlsZHJlbltyXSkpO3JldHVybiB0fXZhciBfaHQ9Y2xhc3MgZXh0ZW5kcyB0aXtjb25zdHJ1Y3Rvcih0LHIsbil7bGV0IGk9bmV3IFgwKHIsNCwyKSxvPW5ldyBzaCh7d2lyZWZyYW1lOiEwLGZvZzohMSx0b25lTWFwcGVkOiExfSk7c3VwZXIoaSxvKSx0aGlzLmxpZ2h0PXQsdGhpcy5saWdodC51cGRhdGVNYXRyaXhXb3JsZCgpLHRoaXMuY29sb3I9bix0aGlzLnR5cGU9IlBvaW50TGlnaHRIZWxwZXIiLHRoaXMubWF0cml4PXRoaXMubGlnaHQubWF0cml4V29ybGQsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMudXBkYXRlKCl9ZGlzcG9zZSgpe3RoaXMuZ2VvbWV0cnkuZGlzcG9zZSgpLHRoaXMubWF0ZXJpYWwuZGlzcG9zZSgpfXVwZGF0ZSgpe3RoaXMuY29sb3IhPT12b2lkIDA/dGhpcy5tYXRlcmlhbC5jb2xvci5zZXQodGhpcy5jb2xvcik6dGhpcy5tYXRlcmlhbC5jb2xvci5jb3B5KHRoaXMubGlnaHQuY29sb3IpfX0sTTByPW5ldyBqLERoZT1uZXcgbmUsT2hlPW5ldyBuZSx5aHQ9Y2xhc3MgZXh0ZW5kcyBvcntjb25zdHJ1Y3Rvcih0LHIsbil7c3VwZXIoKSx0aGlzLmxpZ2h0PXQsdGhpcy5saWdodC51cGRhdGVNYXRyaXhXb3JsZCgpLHRoaXMubWF0cml4PXQubWF0cml4V29ybGQsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuY29sb3I9bjtsZXQgaT1uZXcgWTAocik7aS5yb3RhdGVZKE1hdGguUEkqLjUpLHRoaXMubWF0ZXJpYWw9bmV3IHNoKHt3aXJlZnJhbWU6ITAsZm9nOiExLHRvbmVNYXBwZWQ6ITF9KSx0aGlzLmNvbG9yPT09dm9pZCAwJiYodGhpcy5tYXRlcmlhbC52ZXJ0ZXhDb2xvcnM9ITApO2xldCBvPWkuZ2V0QXR0cmlidXRlKCJwb3NpdGlvbiIpLGE9bmV3IEZsb2F0MzJBcnJheShvLmNvdW50KjMpO2kuc2V0QXR0cmlidXRlKCJjb2xvciIsbmV3IEplKGEsMykpLHRoaXMuYWRkKG5ldyB0aShpLHRoaXMubWF0ZXJpYWwpKSx0aGlzLnVwZGF0ZSgpfWRpc3Bvc2UoKXt0aGlzLmNoaWxkcmVuWzBdLmdlb21ldHJ5LmRpc3Bvc2UoKSx0aGlzLmNoaWxkcmVuWzBdLm1hdGVyaWFsLmRpc3Bvc2UoKX11cGRhdGUoKXtsZXQgdD10aGlzLmNoaWxkcmVuWzBdO2lmKHRoaXMuY29sb3IhPT12b2lkIDApdGhpcy5tYXRlcmlhbC5jb2xvci5zZXQodGhpcy5jb2xvcik7ZWxzZXtsZXQgcj10Lmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgiY29sb3IiKTtEaGUuY29weSh0aGlzLmxpZ2h0LmNvbG9yKSxPaGUuY29weSh0aGlzLmxpZ2h0Lmdyb3VuZENvbG9yKTtmb3IobGV0IG49MCxpPXIuY291bnQ7bjxpO24rKyl7bGV0IG89bjxpLzI/RGhlOk9oZTtyLnNldFhZWihuLG8ucixvLmcsby5iKX1yLm5lZWRzVXBkYXRlPSEwfXQubG9va0F0KE0wci5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5saWdodC5tYXRyaXhXb3JsZCkubmVnYXRlKCkpfX0sWVU9Y2xhc3MgZXh0ZW5kcyBQYXtjb25zdHJ1Y3Rvcih0PTEwLHI9MTAsbj00NDczOTI0LGk9ODk0Nzg0OCl7bj1uZXcgbmUobiksaT1uZXcgbmUoaSk7bGV0IG89ci8yLGE9dC9yLHM9dC8yLGw9W10sYz1bXTtmb3IobGV0IGY9MCxwPTAsZD0tcztmPD1yO2YrKyxkKz1hKXtsLnB1c2goLXMsMCxkLHMsMCxkKSxsLnB1c2goZCwwLC1zLGQsMCxzKTtsZXQgZz1mPT09bz9uOmk7Zy50b0FycmF5KGMscCkscCs9MyxnLnRvQXJyYXkoYyxwKSxwKz0zLGcudG9BcnJheShjLHApLHArPTMsZy50b0FycmF5KGMscCkscCs9M31sZXQgdT1uZXcgUGU7dS5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgeGUobCwzKSksdS5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgeGUoYywzKSk7bGV0IGg9bmV3IEdpKHt2ZXJ0ZXhDb2xvcnM6ITAsdG9uZU1hcHBlZDohMX0pO3N1cGVyKHUsaCksdGhpcy50eXBlPSJHcmlkSGVscGVyIn19LHZodD1jbGFzcyBleHRlbmRzIFBhe2NvbnN0cnVjdG9yKHQ9MTAscj0xNixuPTgsaT02NCxvPTQ0NzM5MjQsYT04OTQ3ODQ4KXtvPW5ldyBuZShvKSxhPW5ldyBuZShhKTtsZXQgcz1bXSxsPVtdO2ZvcihsZXQgaD0wO2g8PXI7aCsrKXtsZXQgZj1oL3IqKE1hdGguUEkqMikscD1NYXRoLnNpbihmKSp0LGQ9TWF0aC5jb3MoZikqdDtzLnB1c2goMCwwLDApLHMucHVzaChwLDAsZCk7bGV0IGc9aCYxP286YTtsLnB1c2goZy5yLGcuZyxnLmIpLGwucHVzaChnLnIsZy5nLGcuYil9Zm9yKGxldCBoPTA7aDw9bjtoKyspe2xldCBmPWgmMT9vOmEscD10LXQvbipoO2ZvcihsZXQgZD0wO2Q8aTtkKyspe2xldCBnPWQvaSooTWF0aC5QSSoyKSxfPU1hdGguc2luKGcpKnAseT1NYXRoLmNvcyhnKSpwO3MucHVzaChfLDAseSksbC5wdXNoKGYucixmLmcsZi5iKSxnPShkKzEpL2kqKE1hdGguUEkqMiksXz1NYXRoLnNpbihnKSpwLHk9TWF0aC5jb3MoZykqcCxzLnB1c2goXywwLHkpLGwucHVzaChmLnIsZi5nLGYuYil9fWxldCBjPW5ldyBQZTtjLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyB4ZShzLDMpKSxjLnNldEF0dHJpYnV0ZSgiY29sb3IiLG5ldyB4ZShsLDMpKTtsZXQgdT1uZXcgR2koe3ZlcnRleENvbG9yczohMCx0b25lTWFwcGVkOiExfSk7c3VwZXIoYyx1KSx0aGlzLnR5cGU9IlBvbGFyR3JpZEhlbHBlciJ9fSx6aGU9bmV3IGosWFY9bmV3IGosRmhlPW5ldyBqLHhodD1jbGFzcyBleHRlbmRzIG9ye2NvbnN0cnVjdG9yKHQscixuKXtzdXBlcigpLHRoaXMubGlnaHQ9dCx0aGlzLmxpZ2h0LnVwZGF0ZU1hdHJpeFdvcmxkKCksdGhpcy5tYXRyaXg9dC5tYXRyaXhXb3JsZCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5jb2xvcj1uLHI9PT12b2lkIDAmJihyPTEpO2xldCBpPW5ldyBQZTtpLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyB4ZShbLXIsciwwLHIsciwwLHIsLXIsMCwtciwtciwwLC1yLHIsMF0sMykpO2xldCBvPW5ldyBHaSh7Zm9nOiExLHRvbmVNYXBwZWQ6ITF9KTt0aGlzLmxpZ2h0UGxhbmU9bmV3IGNoKGksbyksdGhpcy5hZGQodGhpcy5saWdodFBsYW5lKSxpPW5ldyBQZSxpLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyB4ZShbMCwwLDAsMCwwLDFdLDMpKSx0aGlzLnRhcmdldExpbmU9bmV3IGNoKGksbyksdGhpcy5hZGQodGhpcy50YXJnZXRMaW5lKSx0aGlzLnVwZGF0ZSgpfWRpc3Bvc2UoKXt0aGlzLmxpZ2h0UGxhbmUuZ2VvbWV0cnkuZGlzcG9zZSgpLHRoaXMubGlnaHRQbGFuZS5tYXRlcmlhbC5kaXNwb3NlKCksdGhpcy50YXJnZXRMaW5lLmdlb21ldHJ5LmRpc3Bvc2UoKSx0aGlzLnRhcmdldExpbmUubWF0ZXJpYWwuZGlzcG9zZSgpfXVwZGF0ZSgpe3poZS5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5saWdodC5tYXRyaXhXb3JsZCksWFYuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHRoaXMubGlnaHQudGFyZ2V0Lm1hdHJpeFdvcmxkKSxGaGUuc3ViVmVjdG9ycyhYVix6aGUpLHRoaXMubGlnaHRQbGFuZS5sb29rQXQoWFYpLHRoaXMuY29sb3IhPT12b2lkIDA/KHRoaXMubGlnaHRQbGFuZS5tYXRlcmlhbC5jb2xvci5zZXQodGhpcy5jb2xvciksdGhpcy50YXJnZXRMaW5lLm1hdGVyaWFsLmNvbG9yLnNldCh0aGlzLmNvbG9yKSk6KHRoaXMubGlnaHRQbGFuZS5tYXRlcmlhbC5jb2xvci5jb3B5KHRoaXMubGlnaHQuY29sb3IpLHRoaXMudGFyZ2V0TGluZS5tYXRlcmlhbC5jb2xvci5jb3B5KHRoaXMubGlnaHQuY29sb3IpKSx0aGlzLnRhcmdldExpbmUubG9va0F0KFhWKSx0aGlzLnRhcmdldExpbmUuc2NhbGUuej1GaGUubGVuZ3RoKCl9fSwkVj1uZXcgaixfaT1uZXcgTjEsYmh0PWNsYXNzIGV4dGVuZHMgUGF7Y29uc3RydWN0b3IodCl7bGV0IHI9bmV3IFBlLG49bmV3IEdpKHtjb2xvcjoxNjc3NzIxNSx2ZXJ0ZXhDb2xvcnM6ITAsdG9uZU1hcHBlZDohMX0pLGk9W10sbz1bXSxhPXt9LHM9bmV3IG5lKDE2NzU1MjAwKSxsPW5ldyBuZSgxNjcxMTY4MCksYz1uZXcgbmUoNDM3NzUpLHU9bmV3IG5lKDE2Nzc3MjE1KSxoPW5ldyBuZSgzMzU1NDQzKTtmKCJuMSIsIm4yIixzKSxmKCJuMiIsIm40IixzKSxmKCJuNCIsIm4zIixzKSxmKCJuMyIsIm4xIixzKSxmKCJmMSIsImYyIixzKSxmKCJmMiIsImY0IixzKSxmKCJmNCIsImYzIixzKSxmKCJmMyIsImYxIixzKSxmKCJuMSIsImYxIixzKSxmKCJuMiIsImYyIixzKSxmKCJuMyIsImYzIixzKSxmKCJuNCIsImY0IixzKSxmKCJwIiwibjEiLGwpLGYoInAiLCJuMiIsbCksZigicCIsIm4zIixsKSxmKCJwIiwibjQiLGwpLGYoInUxIiwidTIiLGMpLGYoInUyIiwidTMiLGMpLGYoInUzIiwidTEiLGMpLGYoImMiLCJ0Iix1KSxmKCJwIiwiYyIsaCksZigiY24xIiwiY24yIixoKSxmKCJjbjMiLCJjbjQiLGgpLGYoImNmMSIsImNmMiIsaCksZigiY2YzIiwiY2Y0IixoKTtmdW5jdGlvbiBmKGQsZyxfKXtwKGQsXykscChnLF8pfWZ1bmN0aW9uIHAoZCxnKXtpLnB1c2goMCwwLDApLG8ucHVzaChnLnIsZy5nLGcuYiksYVtkXT09PXZvaWQgMCYmKGFbZF09W10pLGFbZF0ucHVzaChpLmxlbmd0aC8zLTEpfXIuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IHhlKGksMykpLHIuc2V0QXR0cmlidXRlKCJjb2xvciIsbmV3IHhlKG8sMykpLHN1cGVyKHIsbiksdGhpcy50eXBlPSJDYW1lcmFIZWxwZXIiLHRoaXMuY2FtZXJhPXQsdGhpcy5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCYmdGhpcy5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpLHRoaXMubWF0cml4PXQubWF0cml4V29ybGQsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMucG9pbnRNYXA9YSx0aGlzLnVwZGF0ZSgpfXVwZGF0ZSgpe2xldCB0PXRoaXMuZ2VvbWV0cnkscj10aGlzLnBvaW50TWFwLG49MSxpPTE7X2kucHJvamVjdGlvbk1hdHJpeEludmVyc2UuY29weSh0aGlzLmNhbWVyYS5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZSksUGkoImMiLHIsdCxfaSwwLDAsLTEpLFBpKCJ0IixyLHQsX2ksMCwwLDEpLFBpKCJuMSIscix0LF9pLC1uLC1pLC0xKSxQaSgibjIiLHIsdCxfaSxuLC1pLC0xKSxQaSgibjMiLHIsdCxfaSwtbixpLC0xKSxQaSgibjQiLHIsdCxfaSxuLGksLTEpLFBpKCJmMSIscix0LF9pLC1uLC1pLDEpLFBpKCJmMiIscix0LF9pLG4sLWksMSksUGkoImYzIixyLHQsX2ksLW4saSwxKSxQaSgiZjQiLHIsdCxfaSxuLGksMSksUGkoInUxIixyLHQsX2ksbiouNyxpKjEuMSwtMSksUGkoInUyIixyLHQsX2ksLW4qLjcsaSoxLjEsLTEpLFBpKCJ1MyIscix0LF9pLDAsaSoyLC0xKSxQaSgiY2YxIixyLHQsX2ksLW4sMCwxKSxQaSgiY2YyIixyLHQsX2ksbiwwLDEpLFBpKCJjZjMiLHIsdCxfaSwwLC1pLDEpLFBpKCJjZjQiLHIsdCxfaSwwLGksMSksUGkoImNuMSIscix0LF9pLC1uLDAsLTEpLFBpKCJjbjIiLHIsdCxfaSxuLDAsLTEpLFBpKCJjbjMiLHIsdCxfaSwwLC1pLC0xKSxQaSgiY240IixyLHQsX2ksMCxpLC0xKSx0LmdldEF0dHJpYnV0ZSgicG9zaXRpb24iKS5uZWVkc1VwZGF0ZT0hMH1kaXNwb3NlKCl7dGhpcy5nZW9tZXRyeS5kaXNwb3NlKCksdGhpcy5tYXRlcmlhbC5kaXNwb3NlKCl9fTtmdW5jdGlvbiBQaShlLHQscixuLGksbyxhKXskVi5zZXQoaSxvLGEpLnVucHJvamVjdChuKTtsZXQgcz10W2VdO2lmKHMhPT12b2lkIDApe2xldCBsPXIuZ2V0QXR0cmlidXRlKCJwb3NpdGlvbiIpO2ZvcihsZXQgYz0wLHU9cy5sZW5ndGg7Yzx1O2MrKylsLnNldFhZWihzW2NdLCRWLngsJFYueSwkVi56KX19dmFyIEtWPW5ldyB0YSx5TT1jbGFzcyBleHRlbmRzIFBhe2NvbnN0cnVjdG9yKHQscj0xNjc3Njk2MCl7bGV0IG49bmV3IFVpbnQxNkFycmF5KFswLDEsMSwyLDIsMywzLDAsNCw1LDUsNiw2LDcsNyw0LDAsNCwxLDUsMiw2LDMsN10pLGk9bmV3IEZsb2F0MzJBcnJheSg4KjMpLG89bmV3IFBlO28uc2V0SW5kZXgobmV3IEplKG4sMSkpLG8uc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IEplKGksMykpLHN1cGVyKG8sbmV3IEdpKHtjb2xvcjpyLHRvbmVNYXBwZWQ6ITF9KSksdGhpcy5vYmplY3Q9dCx0aGlzLnR5cGU9IkJveEhlbHBlciIsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMudXBkYXRlKCl9dXBkYXRlKHQpe2lmKHQhPT12b2lkIDAmJmNvbnNvbGUud2FybigiVEhSRUUuQm94SGVscGVyOiAudXBkYXRlKCkgaGFzIG5vIGxvbmdlciBhcmd1bWVudHMuIiksdGhpcy5vYmplY3QhPT12b2lkIDAmJktWLnNldEZyb21PYmplY3QodGhpcy5vYmplY3QpLEtWLmlzRW1wdHkoKSlyZXR1cm47bGV0IHI9S1YubWluLG49S1YubWF4LGk9dGhpcy5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLG89aS5hcnJheTtvWzBdPW4ueCxvWzFdPW4ueSxvWzJdPW4ueixvWzNdPXIueCxvWzRdPW4ueSxvWzVdPW4ueixvWzZdPXIueCxvWzddPXIueSxvWzhdPW4ueixvWzldPW4ueCxvWzEwXT1yLnksb1sxMV09bi56LG9bMTJdPW4ueCxvWzEzXT1uLnksb1sxNF09ci56LG9bMTVdPXIueCxvWzE2XT1uLnksb1sxN109ci56LG9bMThdPXIueCxvWzE5XT1yLnksb1syMF09ci56LG9bMjFdPW4ueCxvWzIyXT1yLnksb1syM109ci56LGkubmVlZHNVcGRhdGU9ITAsdGhpcy5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKX1zZXRGcm9tT2JqZWN0KHQpe3JldHVybiB0aGlzLm9iamVjdD10LHRoaXMudXBkYXRlKCksdGhpc31jb3B5KHQpe3JldHVybiBQYS5wcm90b3R5cGUuY29weS5jYWxsKHRoaXMsdCksdGhpcy5vYmplY3Q9dC5vYmplY3QsdGhpc319LHdodD1jbGFzcyBleHRlbmRzIFBhe2NvbnN0cnVjdG9yKHQscj0xNjc3Njk2MCl7bGV0IG49bmV3IFVpbnQxNkFycmF5KFswLDEsMSwyLDIsMywzLDAsNCw1LDUsNiw2LDcsNyw0LDAsNCwxLDUsMiw2LDMsN10pLGk9WzEsMSwxLC0xLDEsMSwtMSwtMSwxLDEsLTEsMSwxLDEsLTEsLTEsMSwtMSwtMSwtMSwtMSwxLC0xLC0xXSxvPW5ldyBQZTtvLnNldEluZGV4KG5ldyBKZShuLDEpKSxvLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyB4ZShpLDMpKSxzdXBlcihvLG5ldyBHaSh7Y29sb3I6cix0b25lTWFwcGVkOiExfSkpLHRoaXMuYm94PXQsdGhpcy50eXBlPSJCb3gzSGVscGVyIix0aGlzLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpfXVwZGF0ZU1hdHJpeFdvcmxkKHQpe2xldCByPXRoaXMuYm94O3IuaXNFbXB0eSgpfHwoci5nZXRDZW50ZXIodGhpcy5wb3NpdGlvbiksci5nZXRTaXplKHRoaXMuc2NhbGUpLHRoaXMuc2NhbGUubXVsdGlwbHlTY2FsYXIoLjUpLHN1cGVyLnVwZGF0ZU1hdHJpeFdvcmxkKHQpKX19LFNodD1jbGFzcyBleHRlbmRzIGNoe2NvbnN0cnVjdG9yKHQscj0xLG49MTY3NzY5NjApe2xldCBpPW4sbz1bMSwtMSwxLC0xLDEsMSwtMSwtMSwxLDEsMSwxLC0xLDEsMSwtMSwtMSwxLDEsLTEsMSwxLDEsMSwwLDAsMSwwLDAsMF0sYT1uZXcgUGU7YS5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgeGUobywzKSksYS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxzdXBlcihhLG5ldyBHaSh7Y29sb3I6aSx0b25lTWFwcGVkOiExfSkpLHRoaXMudHlwZT0iUGxhbmVIZWxwZXIiLHRoaXMucGxhbmU9dCx0aGlzLnNpemU9cjtsZXQgcz1bMSwxLDEsLTEsMSwxLC0xLC0xLDEsMSwxLDEsLTEsLTEsMSwxLC0xLDFdLGw9bmV3IFBlO2wuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IHhlKHMsMykpLGwuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCksdGhpcy5hZGQobmV3IHRpKGwsbmV3IHNoKHtjb2xvcjppLG9wYWNpdHk6LjIsdHJhbnNwYXJlbnQ6ITAsZGVwdGhXcml0ZTohMSx0b25lTWFwcGVkOiExfSkpKX11cGRhdGVNYXRyaXhXb3JsZCh0KXtsZXQgcj0tdGhpcy5wbGFuZS5jb25zdGFudDtNYXRoLmFicyhyKTwxZS04JiYocj0xZS04KSx0aGlzLnNjYWxlLnNldCguNSp0aGlzLnNpemUsLjUqdGhpcy5zaXplLHIpLHRoaXMuY2hpbGRyZW5bMF0ubWF0ZXJpYWwuc2lkZT1yPDA/SWk6TDEsdGhpcy5sb29rQXQodGhpcy5wbGFuZS5ub3JtYWwpLHN1cGVyLnVwZGF0ZU1hdHJpeFdvcmxkKHQpfX0sQmhlPW5ldyBqLFpWLHd1dCxNaHQ9Y2xhc3MgZXh0ZW5kcyBvcntjb25zdHJ1Y3Rvcih0PW5ldyBqKDAsMCwxKSxyPW5ldyBqKDAsMCwwKSxuPTEsaT0xNjc3Njk2MCxvPW4qLjIsYT1vKi4yKXtzdXBlcigpLHRoaXMudHlwZT0iQXJyb3dIZWxwZXIiLFpWPT09dm9pZCAwJiYoWlY9bmV3IFBlLFpWLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyB4ZShbMCwwLDAsMCwxLDBdLDMpKSx3dXQ9bmV3IGFtKDAsLjUsMSw1LDEpLHd1dC50cmFuc2xhdGUoMCwtLjUsMCkpLHRoaXMucG9zaXRpb24uY29weShyKSx0aGlzLmxpbmU9bmV3IGNoKFpWLG5ldyBHaSh7Y29sb3I6aSx0b25lTWFwcGVkOiExfSkpLHRoaXMubGluZS5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuYWRkKHRoaXMubGluZSksdGhpcy5jb25lPW5ldyB0aSh3dXQsbmV3IHNoKHtjb2xvcjppLHRvbmVNYXBwZWQ6ITF9KSksdGhpcy5jb25lLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5hZGQodGhpcy5jb25lKSx0aGlzLnNldERpcmVjdGlvbih0KSx0aGlzLnNldExlbmd0aChuLG8sYSl9c2V0RGlyZWN0aW9uKHQpe2lmKHQueT4uOTk5OTkpdGhpcy5xdWF0ZXJuaW9uLnNldCgwLDAsMCwxKTtlbHNlIGlmKHQueTwtLjk5OTk5KXRoaXMucXVhdGVybmlvbi5zZXQoMSwwLDAsMCk7ZWxzZXtCaGUuc2V0KHQueiwwLC10LngpLm5vcm1hbGl6ZSgpO2xldCByPU1hdGguYWNvcyh0LnkpO3RoaXMucXVhdGVybmlvbi5zZXRGcm9tQXhpc0FuZ2xlKEJoZSxyKX19c2V0TGVuZ3RoKHQscj10Ki4yLG49ciouMil7dGhpcy5saW5lLnNjYWxlLnNldCgxLE1hdGgubWF4KDFlLTQsdC1yKSwxKSx0aGlzLmxpbmUudXBkYXRlTWF0cml4KCksdGhpcy5jb25lLnNjYWxlLnNldChuLHIsbiksdGhpcy5jb25lLnBvc2l0aW9uLnk9dCx0aGlzLmNvbmUudXBkYXRlTWF0cml4KCl9c2V0Q29sb3IodCl7dGhpcy5saW5lLm1hdGVyaWFsLmNvbG9yLnNldCh0KSx0aGlzLmNvbmUubWF0ZXJpYWwuY29sb3Iuc2V0KHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCwhMSksdGhpcy5saW5lLmNvcHkodC5saW5lKSx0aGlzLmNvbmUuY29weSh0LmNvbmUpLHRoaXN9fSx2TT1jbGFzcyBleHRlbmRzIFBhe2NvbnN0cnVjdG9yKHQ9MSl7bGV0IHI9WzAsMCwwLHQsMCwwLDAsMCwwLDAsdCwwLDAsMCwwLDAsMCx0XSxuPVsxLDAsMCwxLC42LDAsMCwxLDAsLjYsMSwwLDAsMCwxLDAsLjYsMV0saT1uZXcgUGU7aS5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgeGUociwzKSksaS5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgeGUobiwzKSk7bGV0IG89bmV3IEdpKHt2ZXJ0ZXhDb2xvcnM6ITAsdG9uZU1hcHBlZDohMX0pO3N1cGVyKGksbyksdGhpcy50eXBlPSJBeGVzSGVscGVyIn1zZXRDb2xvcnModCxyLG4pe2xldCBpPW5ldyBuZSxvPXRoaXMuZ2VvbWV0cnkuYXR0cmlidXRlcy5jb2xvci5hcnJheTtyZXR1cm4gaS5zZXQodCksaS50b0FycmF5KG8sMCksaS50b0FycmF5KG8sMyksaS5zZXQociksaS50b0FycmF5KG8sNiksaS50b0FycmF5KG8sOSksaS5zZXQobiksaS50b0FycmF5KG8sMTIpLGkudG9BcnJheShvLDE1KSx0aGlzLmdlb21ldHJ5LmF0dHJpYnV0ZXMuY29sb3IubmVlZHNVcGRhdGU9ITAsdGhpc31kaXNwb3NlKCl7dGhpcy5nZW9tZXRyeS5kaXNwb3NlKCksdGhpcy5tYXRlcmlhbC5kaXNwb3NlKCl9fSxFaHQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnR5cGU9IlNoYXBlUGF0aCIsdGhpcy5jb2xvcj1uZXcgbmUsdGhpcy5zdWJQYXRocz1bXSx0aGlzLmN1cnJlbnRQYXRoPW51bGx9bW92ZVRvKHQscil7cmV0dXJuIHRoaXMuY3VycmVudFBhdGg9bmV3IEcxLHRoaXMuc3ViUGF0aHMucHVzaCh0aGlzLmN1cnJlbnRQYXRoKSx0aGlzLmN1cnJlbnRQYXRoLm1vdmVUbyh0LHIpLHRoaXN9bGluZVRvKHQscil7cmV0dXJuIHRoaXMuY3VycmVudFBhdGgubGluZVRvKHQsciksdGhpc31xdWFkcmF0aWNDdXJ2ZVRvKHQscixuLGkpe3JldHVybiB0aGlzLmN1cnJlbnRQYXRoLnF1YWRyYXRpY0N1cnZlVG8odCxyLG4saSksdGhpc31iZXppZXJDdXJ2ZVRvKHQscixuLGksbyxhKXtyZXR1cm4gdGhpcy5jdXJyZW50UGF0aC5iZXppZXJDdXJ2ZVRvKHQscixuLGksbyxhKSx0aGlzfXNwbGluZVRocnUodCl7cmV0dXJuIHRoaXMuY3VycmVudFBhdGguc3BsaW5lVGhydSh0KSx0aGlzfXRvU2hhcGVzKHQscil7ZnVuY3Rpb24gbih4KXtsZXQgYj1bXTtmb3IobGV0IFM9MCxDPXgubGVuZ3RoO1M8QztTKyspe2xldCBQPXhbU10saz1uZXcgS2M7ay5jdXJ2ZXM9UC5jdXJ2ZXMsYi5wdXNoKGspfXJldHVybiBifWZ1bmN0aW9uIGkoeCxiKXtsZXQgUz1iLmxlbmd0aCxDPSExO2ZvcihsZXQgUD1TLTEsaz0wO2s8UztQPWsrKyl7bGV0IE89YltQXSxEPWJba10sQj1ELngtTy54LEk9RC55LU8ueTtpZihNYXRoLmFicyhJKT5OdW1iZXIuRVBTSUxPTil7aWYoSTwwJiYoTz1iW2tdLEI9LUIsRD1iW1BdLEk9LUkpLHgueTxPLnl8fHgueT5ELnkpY29udGludWU7aWYoeC55PT09Ty55KXtpZih4Lng9PT1PLngpcmV0dXJuITB9ZWxzZXtsZXQgTD1JKih4LngtTy54KS1CKih4LnktTy55KTtpZihMPT09MClyZXR1cm4hMDtpZihMPDApY29udGludWU7Qz0hQ319ZWxzZXtpZih4LnkhPT1PLnkpY29udGludWU7aWYoRC54PD14LngmJngueDw9Ty54fHxPLng8PXgueCYmeC54PD1ELngpcmV0dXJuITB9fXJldHVybiBDfWxldCBvPVpjLmlzQ2xvY2tXaXNlLGE9dGhpcy5zdWJQYXRocztpZihhLmxlbmd0aD09PTApcmV0dXJuW107aWYocj09PSEwKXJldHVybiBuKGEpO2xldCBzLGwsYyx1PVtdO2lmKGEubGVuZ3RoPT09MSlyZXR1cm4gbD1hWzBdLGM9bmV3IEtjLGMuY3VydmVzPWwuY3VydmVzLHUucHVzaChjKSx1O2xldCBoPSFvKGFbMF0uZ2V0UG9pbnRzKCkpO2g9dD8haDpoO2xldCBmPVtdLHA9W10sZD1bXSxnPTAsXztwW2ddPXZvaWQgMCxkW2ddPVtdO2ZvcihsZXQgeD0wLGI9YS5sZW5ndGg7eDxiO3grKylsPWFbeF0sXz1sLmdldFBvaW50cygpLHM9byhfKSxzPXQ/IXM6cyxzPyghaCYmcFtnXSYmZysrLHBbZ109e3M6bmV3IEtjLHA6X30scFtnXS5zLmN1cnZlcz1sLmN1cnZlcyxoJiZnKyssZFtnXT1bXSk6ZFtnXS5wdXNoKHtoOmwscDpfWzBdfSk7aWYoIXBbMF0pcmV0dXJuIG4oYSk7aWYocC5sZW5ndGg+MSl7bGV0IHg9ITEsYj1bXTtmb3IobGV0IFM9MCxDPXAubGVuZ3RoO1M8QztTKyspZltTXT1bXTtmb3IobGV0IFM9MCxDPXAubGVuZ3RoO1M8QztTKyspe2xldCBQPWRbU107Zm9yKGxldCBrPTA7azxQLmxlbmd0aDtrKyspe2xldCBPPVBba10sRD0hMDtmb3IobGV0IEI9MDtCPHAubGVuZ3RoO0IrKylpKE8ucCxwW0JdLnApJiYoUyE9PUImJmIucHVzaCh7ZnJvbXM6Uyx0b3M6Qixob2xlOmt9KSxEPyhEPSExLGZbQl0ucHVzaChPKSk6eD0hMCk7RCYmZltTXS5wdXNoKE8pfX1iLmxlbmd0aD4wJiYoeHx8KGQ9ZikpfWxldCB5O2ZvcihsZXQgeD0wLGI9cC5sZW5ndGg7eDxiO3grKyl7Yz1wW3hdLnMsdS5wdXNoKGMpLHk9ZFt4XTtmb3IobGV0IFM9MCxDPXkubGVuZ3RoO1M8QztTKyspYy5ob2xlcy5wdXNoKHlbU10uaCl9cmV0dXJuIHV9fSxhcGU9bmV3IEZsb2F0MzJBcnJheSgxKSxFMHI9bmV3IEludDMyQXJyYXkoYXBlLmJ1ZmZlciksVGh0PWNsYXNze3N0YXRpYyB0b0hhbGZGbG9hdCh0KXt0PjY1NTA0JiYoY29uc29sZS53YXJuKCJUSFJFRS5EYXRhVXRpbHMudG9IYWxmRmxvYXQoKTogdmFsdWUgZXhjZWVkcyA2NTUwNC4iKSx0PTY1NTA0KSxhcGVbMF09dDtsZXQgcj1FMHJbMF0sbj1yPj4xNiYzMjc2OCxpPXI+PjEyJjIwNDcsbz1yPj4yMyYyNTU7cmV0dXJuIG88MTAzP246bz4xNDI/KG58PTMxNzQ0LG58PShvPT0yNTU/MDoxKSYmciY4Mzg4NjA3LG4pOm88MTEzPyhpfD0yMDQ4LG58PShpPj4xMTQtbykrKGk+PjExMy1vJjEpLG4pOihufD1vLTExMjw8MTB8aT4+MSxuKz1pJjEsbil9fSxUMHI9MCxDMHI9MSxBMHI9MCxQMHI9MSxJMHI9MjtmdW5jdGlvbiBMMHIoZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWVzaEZhY2VNYXRlcmlhbCBoYXMgYmVlbiByZW1vdmVkLiBVc2UgYW4gQXJyYXkgaW5zdGVhZC4iKSxlfWZ1bmN0aW9uIGswcihlPVtdKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NdWx0aU1hdGVyaWFsIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBhbiBBcnJheSBpbnN0ZWFkLiIpLGUuaXNNdWx0aU1hdGVyaWFsPSEwLGUubWF0ZXJpYWxzPWUsZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBlLnNsaWNlKCl9LGV9ZnVuY3Rpb24gUjByKGUsdCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUG9pbnRDbG91ZCBoYXMgYmVlbiByZW5hbWVkIHRvIFRIUkVFLlBvaW50cy4iKSxuZXcgb20oZSx0KX1mdW5jdGlvbiBOMHIoZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUGFydGljbGUgaGFzIGJlZW4gcmVuYW1lZCB0byBUSFJFRS5TcHJpdGUuIiksbmV3IG9NKGUpfWZ1bmN0aW9uIEQwcihlLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlBhcnRpY2xlU3lzdGVtIGhhcyBiZWVuIHJlbmFtZWQgdG8gVEhSRUUuUG9pbnRzLiIpLG5ldyBvbShlLHQpfWZ1bmN0aW9uIE8wcihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Qb2ludENsb3VkTWF0ZXJpYWwgaGFzIGJlZW4gcmVuYW1lZCB0byBUSFJFRS5Qb2ludHNNYXRlcmlhbC4iKSxuZXcgaW0oZSl9ZnVuY3Rpb24gejByKGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlBhcnRpY2xlQmFzaWNNYXRlcmlhbCBoYXMgYmVlbiByZW5hbWVkIHRvIFRIUkVFLlBvaW50c01hdGVyaWFsLiIpLG5ldyBpbShlKX1mdW5jdGlvbiBGMHIoZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUGFydGljbGVTeXN0ZW1NYXRlcmlhbCBoYXMgYmVlbiByZW5hbWVkIHRvIFRIUkVFLlBvaW50c01hdGVyaWFsLiIpLG5ldyBpbShlKX1mdW5jdGlvbiBCMHIoZSx0LHIpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlcnRleCBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVEhSRUUuVmVjdG9yMyBpbnN0ZWFkLiIpLG5ldyBqKGUsdCxyKX1mdW5jdGlvbiBIMHIoZSx0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5EeW5hbWljQnVmZmVyQXR0cmlidXRlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKCkuc2V0VXNhZ2UoIFRIUkVFLkR5bmFtaWNEcmF3VXNhZ2UgKSBpbnN0ZWFkLiIpLG5ldyBKZShlLHQpLnNldFVzYWdlKFkzKX1mdW5jdGlvbiBWMHIoZSx0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5JbnQ4QXR0cmlidXRlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBuZXcgVEhSRUUuSW50OEJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IGNVKGUsdCl9ZnVuY3Rpb24gVTByKGUsdCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVWludDhBdHRyaWJ1dGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5VaW50OEJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IHVVKGUsdCl9ZnVuY3Rpb24gcTByKGUsdCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVWludDhDbGFtcGVkQXR0cmlidXRlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBuZXcgVEhSRUUuVWludDhDbGFtcGVkQnVmZmVyQXR0cmlidXRlKCkgaW5zdGVhZC4iKSxuZXcgaFUoZSx0KX1mdW5jdGlvbiBHMHIoZSx0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5JbnQxNkF0dHJpYnV0ZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbmV3IFRIUkVFLkludDE2QnVmZmVyQXR0cmlidXRlKCkgaW5zdGVhZC4iKSxuZXcgZlUoZSx0KX1mdW5jdGlvbiBXMHIoZSx0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5VaW50MTZBdHRyaWJ1dGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5VaW50MTZCdWZmZXJBdHRyaWJ1dGUoKSBpbnN0ZWFkLiIpLG5ldyAkMyhlLHQpfWZ1bmN0aW9uIFkwcihlLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkludDMyQXR0cmlidXRlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBuZXcgVEhSRUUuSW50MzJCdWZmZXJBdHRyaWJ1dGUoKSBpbnN0ZWFkLiIpLG5ldyBwVShlLHQpfWZ1bmN0aW9uIGowcihlLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlVpbnQzMkF0dHJpYnV0ZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbmV3IFRIUkVFLlVpbnQzMkJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IEszKGUsdCl9ZnVuY3Rpb24gWDByKGUsdCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuRmxvYXQzMkF0dHJpYnV0ZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbmV3IFRIUkVFLkZsb2F0MzJCdWZmZXJBdHRyaWJ1dGUoKSBpbnN0ZWFkLiIpLG5ldyB4ZShlLHQpfWZ1bmN0aW9uICQwcihlLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkZsb2F0NjRBdHRyaWJ1dGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5GbG9hdDY0QnVmZmVyQXR0cmlidXRlKCkgaW5zdGVhZC4iKSxuZXcgbVUoZSx0KX1wcy5jcmVhdGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gY29uc29sZS5sb2coIlRIUkVFLkN1cnZlLmNyZWF0ZSgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQiKSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHBzLnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXRQb2ludD10LGV9O0cxLnByb3RvdHlwZS5mcm9tUG9pbnRzPWZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlBhdGg6IC5mcm9tUG9pbnRzKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuc2V0RnJvbVBvaW50cygpLiIpLHRoaXMuc2V0RnJvbVBvaW50cyhlKX07ZnVuY3Rpb24gSzByKGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkF4aXNIZWxwZXIgaGFzIGJlZW4gcmVuYW1lZCB0byBUSFJFRS5BeGVzSGVscGVyLiIpLG5ldyB2TShlKX1mdW5jdGlvbiBaMHIoZSx0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3VuZGluZ0JveEhlbHBlciBoYXMgYmVlbiBkZXByZWNhdGVkLiBDcmVhdGluZyBhIFRIUkVFLkJveEhlbHBlciBpbnN0ZWFkLiIpLG5ldyB5TShlLHQpfWZ1bmN0aW9uIEowcihlLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkVkZ2VzSGVscGVyIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBUSFJFRS5FZGdlc0dlb21ldHJ5IGluc3RlYWQuIiksbmV3IFBhKG5ldyBzNihlLmdlb21ldHJ5KSxuZXcgR2koe2NvbG9yOnQhPT12b2lkIDA/dDoxNjc3NzIxNX0pKX1ZVS5wcm90b3R5cGUuc2V0Q29sb3JzPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuR3JpZEhlbHBlcjogc2V0Q29sb3JzKCkgaGFzIGJlZW4gZGVwcmVjYXRlZCwgcGFzcyB0aGVtIGluIHRoZSBjb25zdHJ1Y3RvciBpbnN0ZWFkLiIpfTtXVS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuU2tlbGV0b25IZWxwZXI6IHVwZGF0ZSgpIG5vIGxvbmdlciBuZWVkcyB0byBiZSBjYWxsZWQuIil9O2Z1bmN0aW9uIFEwcihlLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldpcmVmcmFtZUhlbHBlciBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVEhSRUUuV2lyZWZyYW1lR2VvbWV0cnkgaW5zdGVhZC4iKSxuZXcgUGEobmV3IGQ2KGUuZ2VvbWV0cnkpLG5ldyBHaSh7Y29sb3I6dCE9PXZvaWQgMD90OjE2Nzc3MjE1fSkpfWVhLnByb3RvdHlwZS5leHRyYWN0VXJsQmFzZT1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Mb2FkZXI6IC5leHRyYWN0VXJsQmFzZSgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSBUSFJFRS5Mb2FkZXJVdGlscy5leHRyYWN0VXJsQmFzZSgpIGluc3RlYWQuIiksZE0uZXh0cmFjdFVybEJhc2UoZSl9O2VhLkhhbmRsZXJzPXthZGQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5Mb2FkZXI6IEhhbmRsZXJzLmFkZCgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBMb2FkaW5nTWFuYWdlci5hZGRIYW5kbGVyKCkgaW5zdGVhZC4iKX0sZ2V0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTG9hZGVyOiBIYW5kbGVycy5nZXQoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgTG9hZGluZ01hbmFnZXIuZ2V0SGFuZGxlcigpIGluc3RlYWQuIil9fTtmdW5jdGlvbiB0X3IoZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuWEhSTG9hZGVyIGhhcyBiZWVuIHJlbmFtZWQgdG8gVEhSRUUuRmlsZUxvYWRlci4iKSxuZXcgSmMoZSl9ZnVuY3Rpb24gZV9yKGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJpbmFyeVRleHR1cmVMb2FkZXIgaGFzIGJlZW4gcmVuYW1lZCB0byBUSFJFRS5EYXRhVGV4dHVyZUxvYWRlci4iKSxuZXcgQ1UoZSl9SzAucHJvdG90eXBlLmNlbnRlcj1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gyOiAuY2VudGVyKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0Q2VudGVyKCkuIiksdGhpcy5nZXRDZW50ZXIoZSl9O0swLnByb3RvdHlwZS5lbXB0eT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDI6IC5lbXB0eSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmlzRW1wdHkoKS4iKSx0aGlzLmlzRW1wdHkoKX07SzAucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uQm94PWZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDI6IC5pc0ludGVyc2VjdGlvbkJveCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNCb3goKS4iKSx0aGlzLmludGVyc2VjdHNCb3goZSl9O0swLnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDI6IC5zaXplKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0U2l6ZSgpLiIpLHRoaXMuZ2V0U2l6ZShlKX07dGEucHJvdG90eXBlLmNlbnRlcj1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gzOiAuY2VudGVyKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0Q2VudGVyKCkuIiksdGhpcy5nZXRDZW50ZXIoZSl9O3RhLnByb3RvdHlwZS5lbXB0eT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDM6IC5lbXB0eSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmlzRW1wdHkoKS4iKSx0aGlzLmlzRW1wdHkoKX07dGEucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uQm94PWZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDM6IC5pc0ludGVyc2VjdGlvbkJveCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNCb3goKS4iKSx0aGlzLmludGVyc2VjdHNCb3goZSl9O3RhLnByb3RvdHlwZS5pc0ludGVyc2VjdGlvblNwaGVyZT1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gzOiAuaXNJbnRlcnNlY3Rpb25TcGhlcmUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzU3BoZXJlKCkuIiksdGhpcy5pbnRlcnNlY3RzU3BoZXJlKGUpfTt0YS5wcm90b3R5cGUuc2l6ZT1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gzOiAuc2l6ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldFNpemUoKS4iKSx0aGlzLmdldFNpemUoZSl9O0pmLnByb3RvdHlwZS5lbXB0eT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlNwaGVyZTogLmVtcHR5KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaXNFbXB0eSgpLiIpLHRoaXMuaXNFbXB0eSgpfTtEMS5wcm90b3R5cGUuc2V0RnJvbU1hdHJpeD1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5GcnVzdHVtOiAuc2V0RnJvbU1hdHJpeCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEZyb21Qcm9qZWN0aW9uTWF0cml4KCkuIiksdGhpcy5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeChlKX07R1UucHJvdG90eXBlLmNlbnRlcj1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5MaW5lMzogLmNlbnRlcigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldENlbnRlcigpLiIpLHRoaXMuZ2V0Q2VudGVyKGUpfTtraS5wcm90b3R5cGUuZmxhdHRlblRvQXJyYXlPZmZzZXQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXgzOiAuZmxhdHRlblRvQXJyYXlPZmZzZXQoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnRvQXJyYXkoKSBpbnN0ZWFkLiIpLHRoaXMudG9BcnJheShlLHQpfTtraS5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzPWZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDM6IC5tdWx0aXBseVZlY3RvcjMoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdmVjdG9yLmFwcGx5TWF0cml4MyggbWF0cml4ICkgaW5zdGVhZC4iKSxlLmFwcGx5TWF0cml4Myh0aGlzKX07a2kucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yM0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4MzogLm11bHRpcGx5VmVjdG9yM0FycmF5KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07a2kucHJvdG90eXBlLmFwcGx5VG9CdWZmZXJBdHRyaWJ1dGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4MzogLmFwcGx5VG9CdWZmZXJBdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgYXR0cmlidXRlLmFwcGx5TWF0cml4MyggbWF0cml4ICkgaW5zdGVhZC4iKSxlLmFwcGx5TWF0cml4Myh0aGlzKX07a2kucHJvdG90eXBlLmFwcGx5VG9WZWN0b3IzQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXgzOiAuYXBwbHlUb1ZlY3RvcjNBcnJheSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9O2tpLnByb3RvdHlwZS5nZXRJbnZlcnNlPWZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDM6IC5nZXRJbnZlcnNlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG1hdHJpeEludi5jb3B5KCBtYXRyaXggKS5pbnZlcnQoKTsgaW5zdGVhZC4iKSx0aGlzLmNvcHkoZSkuaW52ZXJ0KCl9O01lLnByb3RvdHlwZS5leHRyYWN0UG9zaXRpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmV4dHJhY3RQb3NpdGlvbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmNvcHlQb3NpdGlvbigpLiIpLHRoaXMuY29weVBvc2l0aW9uKGUpfTtNZS5wcm90b3R5cGUuZmxhdHRlblRvQXJyYXlPZmZzZXQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuZmxhdHRlblRvQXJyYXlPZmZzZXQoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnRvQXJyYXkoKSBpbnN0ZWFkLiIpLHRoaXMudG9BcnJheShlLHQpfTtNZS5wcm90b3R5cGUuZ2V0UG9zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuZ2V0UG9zaXRpb24oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVmVjdG9yMy5zZXRGcm9tTWF0cml4UG9zaXRpb24oIG1hdHJpeCApIGluc3RlYWQuIiksbmV3IGooKS5zZXRGcm9tTWF0cml4Q29sdW1uKHRoaXMsMyl9O01lLnByb3RvdHlwZS5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uPWZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFrZVJvdGF0aW9uRnJvbVF1YXRlcm5pb24oKS4iKSx0aGlzLm1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKGUpfTtNZS5wcm90b3R5cGUubXVsdGlwbHlUb0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlUb0FycmF5KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07TWUucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yMz1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlWZWN0b3IzKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHZlY3Rvci5hcHBseU1hdHJpeDQoIG1hdHJpeCApIGluc3RlYWQuIiksZS5hcHBseU1hdHJpeDQodGhpcyl9O01lLnByb3RvdHlwZS5tdWx0aXBseVZlY3RvcjQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm11bHRpcGx5VmVjdG9yNCgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB2ZWN0b3IuYXBwbHlNYXRyaXg0KCBtYXRyaXggKSBpbnN0ZWFkLiIpLGUuYXBwbHlNYXRyaXg0KHRoaXMpfTtNZS5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlWZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTtNZS5wcm90b3R5cGUucm90YXRlQXhpcz1mdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVBeGlzKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIFZlY3RvcjMudHJhbnNmb3JtRGlyZWN0aW9uKCBtYXRyaXggKSBpbnN0ZWFkLiIpLGUudHJhbnNmb3JtRGlyZWN0aW9uKHRoaXMpfTtNZS5wcm90b3R5cGUuY3Jvc3NWZWN0b3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmNyb3NzVmVjdG9yKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHZlY3Rvci5hcHBseU1hdHJpeDQoIG1hdHJpeCApIGluc3RlYWQuIiksZS5hcHBseU1hdHJpeDQodGhpcyl9O01lLnByb3RvdHlwZS50cmFuc2xhdGU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAudHJhbnNsYXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07TWUucHJvdG90eXBlLnJvdGF0ZVg9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlWCgpIGhhcyBiZWVuIHJlbW92ZWQuIil9O01lLnByb3RvdHlwZS5yb3RhdGVZPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLnJvdGF0ZVkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTtNZS5wcm90b3R5cGUucm90YXRlWj1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVaKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07TWUucHJvdG90eXBlLnJvdGF0ZUJ5QXhpcz1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVCeUF4aXMoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTtNZS5wcm90b3R5cGUuYXBwbHlUb0J1ZmZlckF0dHJpYnV0ZT1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuYXBwbHlUb0J1ZmZlckF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBhdHRyaWJ1dGUuYXBwbHlNYXRyaXg0KCBtYXRyaXggKSBpbnN0ZWFkLiIpLGUuYXBwbHlNYXRyaXg0KHRoaXMpfTtNZS5wcm90b3R5cGUuYXBwbHlUb1ZlY3RvcjNBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5hcHBseVRvVmVjdG9yM0FycmF5KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07TWUucHJvdG90eXBlLm1ha2VGcnVzdHVtPWZ1bmN0aW9uKGUsdCxyLG4saSxvKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubWFrZUZydXN0dW0oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLm1ha2VQZXJzcGVjdGl2ZSggbGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tLCBuZWFyLCBmYXIgKSBpbnN0ZWFkLiIpLHRoaXMubWFrZVBlcnNwZWN0aXZlKGUsdCxuLHIsaSxvKX07TWUucHJvdG90eXBlLmdldEludmVyc2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmdldEludmVyc2UoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbWF0cml4SW52LmNvcHkoIG1hdHJpeCApLmludmVydCgpOyBpbnN0ZWFkLiIpLHRoaXMuY29weShlKS5pbnZlcnQoKX07JGMucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uTGluZT1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5QbGFuZTogLmlzSW50ZXJzZWN0aW9uTGluZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNMaW5lKCkuIiksdGhpcy5pbnRlcnNlY3RzTGluZShlKX07eWkucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yMz1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5RdWF0ZXJuaW9uOiAubXVsdGlwbHlWZWN0b3IzKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIGlzIG5vdyB2ZWN0b3IuYXBwbHlRdWF0ZXJuaW9uKCBxdWF0ZXJuaW9uICkgaW5zdGVhZC4iKSxlLmFwcGx5UXVhdGVybmlvbih0aGlzKX07eWkucHJvdG90eXBlLmludmVyc2U9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5RdWF0ZXJuaW9uOiAuaW52ZXJzZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gaW52ZXJ0KCkuIiksdGhpcy5pbnZlcnQoKX07UWYucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uQm94PWZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlJheTogLmlzSW50ZXJzZWN0aW9uQm94KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c0JveCgpLiIpLHRoaXMuaW50ZXJzZWN0c0JveChlKX07UWYucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uUGxhbmU9ZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUmF5OiAuaXNJbnRlcnNlY3Rpb25QbGFuZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNQbGFuZSgpLiIpLHRoaXMuaW50ZXJzZWN0c1BsYW5lKGUpfTtRZi5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25TcGhlcmU9ZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUmF5OiAuaXNJbnRlcnNlY3Rpb25TcGhlcmUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzU3BoZXJlKCkuIiksdGhpcy5pbnRlcnNlY3RzU3BoZXJlKGUpfTtvaS5wcm90b3R5cGUuYXJlYT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAuYXJlYSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldEFyZWEoKS4iKSx0aGlzLmdldEFyZWEoKX07b2kucHJvdG90eXBlLmJhcnljb29yZEZyb21Qb2ludD1mdW5jdGlvbihlLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAuYmFyeWNvb3JkRnJvbVBvaW50KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0QmFyeWNvb3JkKCkuIiksdGhpcy5nZXRCYXJ5Y29vcmQoZSx0KX07b2kucHJvdG90eXBlLm1pZHBvaW50PWZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAubWlkcG9pbnQoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRNaWRwb2ludCgpLiIpLHRoaXMuZ2V0TWlkcG9pbnQoZSl9O29pLnByb3RvdHlwZW5vcm1hbD1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLm5vcm1hbCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE5vcm1hbCgpLiIpLHRoaXMuZ2V0Tm9ybWFsKGUpfTtvaS5wcm90b3R5cGUucGxhbmU9ZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVHJpYW5nbGU6IC5wbGFuZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldFBsYW5lKCkuIiksdGhpcy5nZXRQbGFuZShlKX07b2kuYmFyeWNvb3JkRnJvbVBvaW50PWZ1bmN0aW9uKGUsdCxyLG4saSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVHJpYW5nbGU6IC5iYXJ5Y29vcmRGcm9tUG9pbnQoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRCYXJ5Y29vcmQoKS4iKSxvaS5nZXRCYXJ5Y29vcmQoZSx0LHIsbixpKX07b2kubm9ybWFsPWZ1bmN0aW9uKGUsdCxyLG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAubm9ybWFsKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0Tm9ybWFsKCkuIiksb2kuZ2V0Tm9ybWFsKGUsdCxyLG4pfTtLYy5wcm90b3R5cGUuZXh0cmFjdEFsbFBvaW50cz1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5TaGFwZTogLmV4dHJhY3RBbGxQb2ludHMoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLmV4dHJhY3RQb2ludHMoKSBpbnN0ZWFkLiIpLHRoaXMuZXh0cmFjdFBvaW50cyhlKX07S2MucHJvdG90eXBlLmV4dHJ1ZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuU2hhcGU6IC5leHRydWRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIEV4dHJ1ZGVHZW9tZXRyeSgpIGluc3RlYWQuIiksbmV3IGhoKHRoaXMsZSl9O0tjLnByb3RvdHlwZS5tYWtlR2VvbWV0cnk9ZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuU2hhcGU6IC5tYWtlR2VvbWV0cnkoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgU2hhcGVHZW9tZXRyeSgpIGluc3RlYWQuIiksbmV3IGowKHRoaXMsZSl9O0x0LnByb3RvdHlwZS5mcm9tQXR0cmlidXRlPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IyOiAuZnJvbUF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4iKSx0aGlzLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSx0LHIpfTtMdC5wcm90b3R5cGUuZGlzdGFuY2VUb01hbmhhdHRhbj1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IyOiAuZGlzdGFuY2VUb01hbmhhdHRhbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1hbmhhdHRhbkRpc3RhbmNlVG8oKS4iKSx0aGlzLm1hbmhhdHRhbkRpc3RhbmNlVG8oZSl9O0x0LnByb3RvdHlwZS5sZW5ndGhNYW5oYXR0YW49ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IyOiAubGVuZ3RoTWFuaGF0dGFuKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFuaGF0dGFuTGVuZ3RoKCkuIiksdGhpcy5tYW5oYXR0YW5MZW5ndGgoKX07ai5wcm90b3R5cGUuc2V0RXVsZXJGcm9tUm90YXRpb25NYXRyaXg9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5WZWN0b3IzOiAuc2V0RXVsZXJGcm9tUm90YXRpb25NYXRyaXgoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgRXVsZXIuc2V0RnJvbVJvdGF0aW9uTWF0cml4KCkgaW5zdGVhZC4iKX07ai5wcm90b3R5cGUuc2V0RXVsZXJGcm9tUXVhdGVybmlvbj1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlZlY3RvcjM6IC5zZXRFdWxlckZyb21RdWF0ZXJuaW9uKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIEV1bGVyLnNldEZyb21RdWF0ZXJuaW9uKCkgaW5zdGVhZC4iKX07ai5wcm90b3R5cGUuZ2V0UG9zaXRpb25Gcm9tTWF0cml4PWZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5nZXRQb3NpdGlvbkZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tTWF0cml4UG9zaXRpb24oKS4iKSx0aGlzLnNldEZyb21NYXRyaXhQb3NpdGlvbihlKX07ai5wcm90b3R5cGUuZ2V0U2NhbGVGcm9tTWF0cml4PWZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5nZXRTY2FsZUZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tTWF0cml4U2NhbGUoKS4iKSx0aGlzLnNldEZyb21NYXRyaXhTY2FsZShlKX07ai5wcm90b3R5cGUuZ2V0Q29sdW1uRnJvbU1hdHJpeD1mdW5jdGlvbihlLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5nZXRDb2x1bW5Gcm9tTWF0cml4KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuc2V0RnJvbU1hdHJpeENvbHVtbigpLiIpLHRoaXMuc2V0RnJvbU1hdHJpeENvbHVtbih0LGUpfTtqLnByb3RvdHlwZS5hcHBseVByb2plY3Rpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmFwcGx5UHJvamVjdGlvbigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSAuYXBwbHlNYXRyaXg0KCBtICkgaW5zdGVhZC4iKSx0aGlzLmFwcGx5TWF0cml4NChlKX07ai5wcm90b3R5cGUuZnJvbUF0dHJpYnV0ZT1mdW5jdGlvbihlLHQscil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmZyb21BdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdCxyKX07ai5wcm90b3R5cGUuZGlzdGFuY2VUb01hbmhhdHRhbj1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuZGlzdGFuY2VUb01hbmhhdHRhbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1hbmhhdHRhbkRpc3RhbmNlVG8oKS4iKSx0aGlzLm1hbmhhdHRhbkRpc3RhbmNlVG8oZSl9O2oucHJvdG90eXBlLmxlbmd0aE1hbmhhdHRhbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5sZW5ndGhNYW5oYXR0YW4oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYW5oYXR0YW5MZW5ndGgoKS4iKSx0aGlzLm1hbmhhdHRhbkxlbmd0aCgpfTtlbi5wcm90b3R5cGUuZnJvbUF0dHJpYnV0ZT1mdW5jdGlvbihlLHQscil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yNDogLmZyb21BdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdCxyKX07ZW4ucHJvdG90eXBlLmxlbmd0aE1hbmhhdHRhbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IC5sZW5ndGhNYW5oYXR0YW4oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYW5oYXR0YW5MZW5ndGgoKS4iKSx0aGlzLm1hbmhhdHRhbkxlbmd0aCgpfTtvci5wcm90b3R5cGUuZ2V0Q2hpbGRCeU5hbWU9ZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5nZXRDaGlsZEJ5TmFtZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE9iamVjdEJ5TmFtZSgpLiIpLHRoaXMuZ2V0T2JqZWN0QnlOYW1lKGUpfTtvci5wcm90b3R5cGUucmVuZGVyRGVwdGg9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAucmVuZGVyRGVwdGggaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5yZW5kZXJPcmRlciwgaW5zdGVhZC4iKX07b3IucHJvdG90eXBlLnRyYW5zbGF0ZT1mdW5jdGlvbihlLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAudHJhbnNsYXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC50cmFuc2xhdGVPbkF4aXMoIGF4aXMsIGRpc3RhbmNlICkgaW5zdGVhZC4iKSx0aGlzLnRyYW5zbGF0ZU9uQXhpcyh0LGUpfTtvci5wcm90b3R5cGUuZ2V0V29ybGRSb3RhdGlvbj1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk9iamVjdDNEOiAuZ2V0V29ybGRSb3RhdGlvbigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBUSFJFRS5PYmplY3QzRC5nZXRXb3JsZFF1YXRlcm5pb24oIHRhcmdldCApIGluc3RlYWQuIil9O29yLnByb3RvdHlwZS5hcHBseU1hdHJpeD1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLmFwcGx5TWF0cml4KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuYXBwbHlNYXRyaXg0KCkuIiksdGhpcy5hcHBseU1hdHJpeDQoZSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG9yLnByb3RvdHlwZSx7ZXVsZXJPcmRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5ldWxlck9yZGVyIGlzIG5vdyAucm90YXRpb24ub3JkZXIuIiksdGhpcy5yb3RhdGlvbi5vcmRlcn0sc2V0OmZ1bmN0aW9uKGUpe2NvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5ldWxlck9yZGVyIGlzIG5vdyAucm90YXRpb24ub3JkZXIuIiksdGhpcy5yb3RhdGlvbi5vcmRlcj1lfX0sdXNlUXVhdGVybmlvbjp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLnVzZVF1YXRlcm5pb24gaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIGxpYnJhcnkgbm93IHVzZXMgcXVhdGVybmlvbnMgYnkgZGVmYXVsdC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLnVzZVF1YXRlcm5pb24gaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIGxpYnJhcnkgbm93IHVzZXMgcXVhdGVybmlvbnMgYnkgZGVmYXVsdC4iKX19fSk7dGkucHJvdG90eXBlLnNldERyYXdNb2RlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWVzaDogLnNldERyYXdNb2RlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIHJlbmRlcmVyIG5vdyBhbHdheXMgYXNzdW1lcyBUSFJFRS5UcmlhbmdsZXNEcmF3TW9kZS4gVHJhbnNmb3JtIHlvdXIgZ2VvbWV0cnkgdmlhIEJ1ZmZlckdlb21ldHJ5VXRpbHMudG9UcmlhbmdsZXNEcmF3TW9kZSgpIGlmIG5lY2Vzc2FyeS4iKX07T2JqZWN0LmRlZmluZVByb3BlcnRpZXModGkucHJvdG90eXBlLHtkcmF3TW9kZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIlRIUkVFLk1lc2g6IC5kcmF3TW9kZSBoYXMgYmVlbiByZW1vdmVkLiBUaGUgcmVuZGVyZXIgbm93IGFsd2F5cyBhc3N1bWVzIFRIUkVFLlRyaWFuZ2xlc0RyYXdNb2RlLiIpLGtmZX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWVzaDogLmRyYXdNb2RlIGhhcyBiZWVuIHJlbW92ZWQuIFRoZSByZW5kZXJlciBub3cgYWx3YXlzIGFzc3VtZXMgVEhSRUUuVHJpYW5nbGVzRHJhd01vZGUuIFRyYW5zZm9ybSB5b3VyIGdlb21ldHJ5IHZpYSBCdWZmZXJHZW9tZXRyeVV0aWxzLnRvVHJpYW5nbGVzRHJhd01vZGUoKSBpZiBuZWNlc3NhcnkuIil9fX0pO2FNLnByb3RvdHlwZS5pbml0Qm9uZXM9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5Ta2lubmVkTWVzaDogaW5pdEJvbmVzKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07VWkucHJvdG90eXBlLnNldExlbnM9ZnVuY3Rpb24oZSx0KXtjb25zb2xlLndhcm4oIlRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhLnNldExlbnMgaXMgZGVwcmVjYXRlZC4gVXNlIC5zZXRGb2NhbExlbmd0aCBhbmQgLmZpbG1HYXVnZSBmb3IgYSBwaG90b2dyYXBoaWMgc2V0dXAuIiksdCE9PXZvaWQgMCYmKHRoaXMuZmlsbUdhdWdlPXQpLHRoaXMuc2V0Rm9jYWxMZW5ndGgoZSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHpsLnByb3RvdHlwZSx7b25seVNoYWRvdzp7c2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLm9ubHlTaGFkb3cgaGFzIGJlZW4gcmVtb3ZlZC4iKX19LHNoYWRvd0NhbWVyYUZvdjp7c2V0OmZ1bmN0aW9uKGUpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFGb3YgaXMgbm93IC5zaGFkb3cuY2FtZXJhLmZvdi4iKSx0aGlzLnNoYWRvdy5jYW1lcmEuZm92PWV9fSxzaGFkb3dDYW1lcmFMZWZ0OntzZXQ6ZnVuY3Rpb24oZSl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYUxlZnQgaXMgbm93IC5zaGFkb3cuY2FtZXJhLmxlZnQuIiksdGhpcy5zaGFkb3cuY2FtZXJhLmxlZnQ9ZX19LHNoYWRvd0NhbWVyYVJpZ2h0OntzZXQ6ZnVuY3Rpb24oZSl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYVJpZ2h0IGlzIG5vdyAuc2hhZG93LmNhbWVyYS5yaWdodC4iKSx0aGlzLnNoYWRvdy5jYW1lcmEucmlnaHQ9ZX19LHNoYWRvd0NhbWVyYVRvcDp7c2V0OmZ1bmN0aW9uKGUpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFUb3AgaXMgbm93IC5zaGFkb3cuY2FtZXJhLnRvcC4iKSx0aGlzLnNoYWRvdy5jYW1lcmEudG9wPWV9fSxzaGFkb3dDYW1lcmFCb3R0b206e3NldDpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhQm90dG9tIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5ib3R0b20uIiksdGhpcy5zaGFkb3cuY2FtZXJhLmJvdHRvbT1lfX0sc2hhZG93Q2FtZXJhTmVhcjp7c2V0OmZ1bmN0aW9uKGUpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFOZWFyIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5uZWFyLiIpLHRoaXMuc2hhZG93LmNhbWVyYS5uZWFyPWV9fSxzaGFkb3dDYW1lcmFGYXI6e3NldDpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhRmFyIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5mYXIuIiksdGhpcy5zaGFkb3cuY2FtZXJhLmZhcj1lfX0sc2hhZG93Q2FtZXJhVmlzaWJsZTp7c2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYVZpc2libGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5DYW1lcmFIZWxwZXIoIGxpZ2h0LnNoYWRvdy5jYW1lcmEgKSBpbnN0ZWFkLiIpfX0sc2hhZG93Qmlhczp7c2V0OmZ1bmN0aW9uKGUpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dCaWFzIGlzIG5vdyAuc2hhZG93LmJpYXMuIiksdGhpcy5zaGFkb3cuYmlhcz1lfX0sc2hhZG93RGFya25lc3M6e3NldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dEYXJrbmVzcyBoYXMgYmVlbiByZW1vdmVkLiIpfX0sc2hhZG93TWFwV2lkdGg6e3NldDpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93TWFwV2lkdGggaXMgbm93IC5zaGFkb3cubWFwU2l6ZS53aWR0aC4iKSx0aGlzLnNoYWRvdy5tYXBTaXplLndpZHRoPWV9fSxzaGFkb3dNYXBIZWlnaHQ6e3NldDpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93TWFwSGVpZ2h0IGlzIG5vdyAuc2hhZG93Lm1hcFNpemUuaGVpZ2h0LiIpLHRoaXMuc2hhZG93Lm1hcFNpemUuaGVpZ2h0PWV9fX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEplLnByb3RvdHlwZSx7bGVuZ3RoOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IC5sZW5ndGggaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC5jb3VudCBpbnN0ZWFkLiIpLHRoaXMuYXJyYXkubGVuZ3RofX0sZHluYW1pYzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuZHluYW1pYyBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnVzYWdlIGluc3RlYWQuIiksdGhpcy51c2FnZT09PVkzfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogLmR5bmFtaWMgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC51c2FnZSBpbnN0ZWFkLiIpLHRoaXMuc2V0VXNhZ2UoWTMpfX19KTtKZS5wcm90b3R5cGUuc2V0RHluYW1pYz1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IC5zZXREeW5hbWljKCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC5zZXRVc2FnZSgpIGluc3RlYWQuIiksdGhpcy5zZXRVc2FnZShlPT09ITA/WTM6VzMpLHRoaXN9O0plLnByb3RvdHlwZS5jb3B5SW5kaWNlc0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuY29weUluZGljZXNBcnJheSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LEplLnByb3RvdHlwZS5zZXRBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogLnNldEFycmF5IGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBCdWZmZXJHZW9tZXRyeSAuc2V0QXR0cmlidXRlIHRvIHJlcGxhY2UvcmVzaXplIGF0dHJpYnV0ZSBidWZmZXJzIil9O1BlLnByb3RvdHlwZS5hZGRJbmRleD1mdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkSW5kZXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRJbmRleCgpLiIpLHRoaXMuc2V0SW5kZXgoZSl9O1BlLnByb3RvdHlwZS5hZGRBdHRyaWJ1dGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmFkZEF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEF0dHJpYnV0ZSgpLiIpLCEodCYmdC5pc0J1ZmZlckF0dHJpYnV0ZSkmJiEodCYmdC5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlKT8oY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmFkZEF0dHJpYnV0ZSgpIG5vdyBleHBlY3RzICggbmFtZSwgYXR0cmlidXRlICkuIiksdGhpcy5zZXRBdHRyaWJ1dGUoZSxuZXcgSmUoYXJndW1lbnRzWzFdLGFyZ3VtZW50c1syXSkpKTplPT09ImluZGV4Ij8oY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeS5hZGRBdHRyaWJ1dGU6IFVzZSAuc2V0SW5kZXgoKSBmb3IgaW5kZXggYXR0cmlidXRlLiIpLHRoaXMuc2V0SW5kZXgodCksdGhpcyk6dGhpcy5zZXRBdHRyaWJ1dGUoZSx0KX07UGUucHJvdG90eXBlLmFkZERyYXdDYWxsPWZ1bmN0aW9uKGUsdCxyKXtyIT09dm9pZCAwJiZjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkRHJhd0NhbGwoKSBubyBsb25nZXIgc3VwcG9ydHMgaW5kZXhPZmZzZXQuIiksY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmFkZERyYXdDYWxsKCkgaXMgbm93IC5hZGRHcm91cCgpLiIpLHRoaXMuYWRkR3JvdXAoZSx0KX07UGUucHJvdG90eXBlLmNsZWFyRHJhd0NhbGxzPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmNsZWFyRHJhd0NhbGxzKCkgaXMgbm93IC5jbGVhckdyb3VwcygpLiIpLHRoaXMuY2xlYXJHcm91cHMoKX07UGUucHJvdG90eXBlLmNvbXB1dGVPZmZzZXRzPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmNvbXB1dGVPZmZzZXRzKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07UGUucHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0ZT1mdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLnJlbW92ZUF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmRlbGV0ZUF0dHJpYnV0ZSgpLiIpLHRoaXMuZGVsZXRlQXR0cmlidXRlKGUpfTtQZS5wcm90b3R5cGUuYXBwbHlNYXRyaXg9ZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hcHBseU1hdHJpeCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmFwcGx5TWF0cml4NCgpLiIpLHRoaXMuYXBwbHlNYXRyaXg0KGUpfTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhQZS5wcm90b3R5cGUse2RyYXdjYWxsczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuZHJhd2NhbGxzIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdyb3Vwcy4iKSx0aGlzLmdyb3Vwc319LG9mZnNldHM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAub2Zmc2V0cyBoYXMgYmVlbiByZW5hbWVkIHRvIC5ncm91cHMuIiksdGhpcy5ncm91cHN9fX0pO3JtLnByb3RvdHlwZS5zZXREeW5hbWljPWZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkludGVybGVhdmVkQnVmZmVyOiAuc2V0RHluYW1pYygpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAuc2V0VXNhZ2UoKSBpbnN0ZWFkLiIpLHRoaXMuc2V0VXNhZ2UoZT09PSEwP1kzOlczKSx0aGlzfTtybS5wcm90b3R5cGUuc2V0QXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlcjogLnNldEFycmF5IGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBCdWZmZXJHZW9tZXRyeSAuc2V0QXR0cmlidXRlIHRvIHJlcGxhY2UvcmVzaXplIGF0dHJpYnV0ZSBidWZmZXJzIil9O2hoLnByb3RvdHlwZS5nZXRBcnJheXM9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5FeHRydWRlR2VvbWV0cnk6IC5nZXRBcnJheXMoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTtoaC5wcm90b3R5cGUuYWRkU2hhcGVMaXN0PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuRXh0cnVkZUdlb21ldHJ5OiAuYWRkU2hhcGVMaXN0KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07aGgucHJvdG90eXBlLmFkZFNoYXBlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuRXh0cnVkZUdlb21ldHJ5OiAuYWRkU2hhcGUoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTtHMC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlNjZW5lOiAuZGlzcG9zZSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9O2dNLnByb3RvdHlwZS5vblVwZGF0ZT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlVuaWZvcm06IC5vblVwZGF0ZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBvYmplY3Qub25CZWZvcmVSZW5kZXIoKSBpbnN0ZWFkLiIpLHRoaXN9O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHFpLnByb3RvdHlwZSx7d3JhcEFyb3VuZDp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbDogLndyYXBBcm91bmQgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbDogLndyYXBBcm91bmQgaGFzIGJlZW4gcmVtb3ZlZC4iKX19LG92ZXJkcmF3OntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAub3ZlcmRyYXcgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbDogLm92ZXJkcmF3IGhhcyBiZWVuIHJlbW92ZWQuIil9fSx3cmFwUkdCOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbDogLndyYXBSR0IgaGFzIGJlZW4gcmVtb3ZlZC4iKSxuZXcgbmV9fSxzaGFkaW5nOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc2hhZGluZyBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdGhlIGJvb2xlYW4gLmZsYXRTaGFkaW5nIGluc3RlYWQuIil9LHNldDpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zaGFkaW5nIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB0aGUgYm9vbGVhbiAuZmxhdFNoYWRpbmcgaW5zdGVhZC4iKSx0aGlzLmZsYXRTaGFkaW5nPWU9PT1BaHR9fSxzdGVuY2lsTWFzazp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnN0ZW5jaWxNYXNrIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSAuc3RlbmNpbEZ1bmNNYXNrIGluc3RlYWQuIiksdGhpcy5zdGVuY2lsRnVuY01hc2t9LHNldDpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zdGVuY2lsTWFzayBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLnN0ZW5jaWxGdW5jTWFzayBpbnN0ZWFkLiIpLHRoaXMuc3RlbmNpbEZ1bmNNYXNrPWV9fSx2ZXJ0ZXhUYW5nZW50czp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAudmVydGV4VGFuZ2VudHMgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAudmVydGV4VGFuZ2VudHMgaGFzIGJlZW4gcmVtb3ZlZC4iKX19fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobGgucHJvdG90eXBlLHtkZXJpdmF0aXZlczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuU2hhZGVyTWF0ZXJpYWw6IC5kZXJpdmF0aXZlcyBoYXMgYmVlbiBtb3ZlZCB0byAuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlcy4iKSx0aGlzLmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXN9LHNldDpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLiBTaGFkZXJNYXRlcmlhbDogLmRlcml2YXRpdmVzIGhhcyBiZWVuIG1vdmVkIHRvIC5leHRlbnNpb25zLmRlcml2YXRpdmVzLiIpLHRoaXMuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlcz1lfX19KTtybi5wcm90b3R5cGUuY2xlYXJUYXJnZXQ9ZnVuY3Rpb24oZSx0LHIsbil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuY2xlYXJUYXJnZXQoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnNldFJlbmRlclRhcmdldCgpIGFuZCAuY2xlYXIoKSBpbnN0ZWFkLiIpLHRoaXMuc2V0UmVuZGVyVGFyZ2V0KGUpLHRoaXMuY2xlYXIodCxyLG4pfTtybi5wcm90b3R5cGUuYW5pbWF0ZT1mdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hbmltYXRlKCkgaXMgbm93IC5zZXRBbmltYXRpb25Mb29wKCkuIiksdGhpcy5zZXRBbmltYXRpb25Mb29wKGUpfTtybi5wcm90b3R5cGUuZ2V0Q3VycmVudFJlbmRlclRhcmdldD1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nZXRDdXJyZW50UmVuZGVyVGFyZ2V0KCkgaXMgbm93IC5nZXRSZW5kZXJUYXJnZXQoKS4iKSx0aGlzLmdldFJlbmRlclRhcmdldCgpfTtybi5wcm90b3R5cGUuZ2V0TWF4QW5pc290cm9weT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nZXRNYXhBbmlzb3Ryb3B5KCkgaXMgbm93IC5jYXBhYmlsaXRpZXMuZ2V0TWF4QW5pc290cm9weSgpLiIpLHRoaXMuY2FwYWJpbGl0aWVzLmdldE1heEFuaXNvdHJvcHkoKX07cm4ucHJvdG90eXBlLmdldFByZWNpc2lvbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nZXRQcmVjaXNpb24oKSBpcyBub3cgLmNhcGFiaWxpdGllcy5wcmVjaXNpb24uIiksdGhpcy5jYXBhYmlsaXRpZXMucHJlY2lzaW9ufTtybi5wcm90b3R5cGUucmVzZXRHTFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnJlc2V0R0xTdGF0ZSgpIGlzIG5vdyAuc3RhdGUucmVzZXQoKS4iKSx0aGlzLnN0YXRlLnJlc2V0KCl9O3JuLnByb3RvdHlwZS5zdXBwb3J0c0Zsb2F0VGV4dHVyZXM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNGbG9hdFRleHR1cmVzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ09FU190ZXh0dXJlX2Zsb2F0JyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIk9FU190ZXh0dXJlX2Zsb2F0Iil9O3JuLnByb3RvdHlwZS5zdXBwb3J0c0hhbGZGbG9hdFRleHR1cmVzPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzSGFsZkZsb2F0VGV4dHVyZXMoKSBpcyBub3cgLmV4dGVuc2lvbnMuZ2V0KCAnT0VTX3RleHR1cmVfaGFsZl9mbG9hdCcgKS4iKSx0aGlzLmV4dGVuc2lvbnMuZ2V0KCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iil9O3JuLnByb3RvdHlwZS5zdXBwb3J0c1N0YW5kYXJkRGVyaXZhdGl2ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNTdGFuZGFyZERlcml2YXRpdmVzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcycgKS4iKSx0aGlzLmV4dGVuc2lvbnMuZ2V0KCJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKX07cm4ucHJvdG90eXBlLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVTM1RDPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVTM1RDKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjJyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIil9O3JuLnByb3RvdHlwZS5zdXBwb3J0c0NvbXByZXNzZWRUZXh0dXJlUFZSVEM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNDb21wcmVzc2VkVGV4dHVyZVBWUlRDKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YycgKS4iKSx0aGlzLmV4dGVuc2lvbnMuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKX07cm4ucHJvdG90eXBlLnN1cHBvcnRzQmxlbmRNaW5NYXg9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNCbGVuZE1pbk1heCgpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdFWFRfYmxlbmRfbWlubWF4JyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIkVYVF9ibGVuZF9taW5tYXgiKX07cm4ucHJvdG90eXBlLnN1cHBvcnRzVmVydGV4VGV4dHVyZXM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlcygpIGlzIG5vdyAuY2FwYWJpbGl0aWVzLnZlcnRleFRleHR1cmVzLiIpLHRoaXMuY2FwYWJpbGl0aWVzLnZlcnRleFRleHR1cmVzfTtybi5wcm90b3R5cGUuc3VwcG9ydHNJbnN0YW5jZWRBcnJheXM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNJbnN0YW5jZWRBcnJheXMoKSBpcyBub3cgLmV4dGVuc2lvbnMuZ2V0KCAnQU5HTEVfaW5zdGFuY2VkX2FycmF5cycgKS4iKSx0aGlzLmV4dGVuc2lvbnMuZ2V0KCJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIil9O3JuLnByb3RvdHlwZS5lbmFibGVTY2lzc29yVGVzdD1mdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5lbmFibGVTY2lzc29yVGVzdCgpIGlzIG5vdyAuc2V0U2Npc3NvclRlc3QoKS4iKSx0aGlzLnNldFNjaXNzb3JUZXN0KGUpfTtybi5wcm90b3R5cGUuaW5pdE1hdGVyaWFsPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuaW5pdE1hdGVyaWFsKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07cm4ucHJvdG90eXBlLmFkZFByZVBsdWdpbj1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmFkZFByZVBsdWdpbigpIGhhcyBiZWVuIHJlbW92ZWQuIil9O3JuLnByb3RvdHlwZS5hZGRQb3N0UGx1Z2luPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuYWRkUG9zdFBsdWdpbigpIGhhcyBiZWVuIHJlbW92ZWQuIil9O3JuLnByb3RvdHlwZS51cGRhdGVTaGFkb3dNYXA9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC51cGRhdGVTaGFkb3dNYXAoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTtybi5wcm90b3R5cGUuc2V0RmFjZUN1bGxpbmc9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zZXRGYWNlQ3VsbGluZygpIGhhcyBiZWVuIHJlbW92ZWQuIil9O3JuLnByb3RvdHlwZS5hbGxvY1RleHR1cmVVbml0PWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuYWxsb2NUZXh0dXJlVW5pdCgpIGhhcyBiZWVuIHJlbW92ZWQuIil9O3JuLnByb3RvdHlwZS5zZXRUZXh0dXJlPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0VGV4dHVyZSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9O3JuLnByb3RvdHlwZS5zZXRUZXh0dXJlMkQ9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zZXRUZXh0dXJlMkQoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTtybi5wcm90b3R5cGUuc2V0VGV4dHVyZUN1YmU9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zZXRUZXh0dXJlQ3ViZSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9O3JuLnByb3RvdHlwZS5nZXRBY3RpdmVNaXBNYXBMZXZlbD1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nZXRBY3RpdmVNaXBNYXBMZXZlbCgpIGlzIG5vdyAuZ2V0QWN0aXZlTWlwbWFwTGV2ZWwoKS4iKSx0aGlzLmdldEFjdGl2ZU1pcG1hcExldmVsKCl9O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHJuLnByb3RvdHlwZSx7c2hhZG93TWFwRW5hYmxlZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2hhZG93TWFwLmVuYWJsZWR9LHNldDpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXBFbmFibGVkIGlzIG5vdyAuc2hhZG93TWFwLmVuYWJsZWQuIiksdGhpcy5zaGFkb3dNYXAuZW5hYmxlZD1lfX0sc2hhZG93TWFwVHlwZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2hhZG93TWFwLnR5cGV9LHNldDpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXBUeXBlIGlzIG5vdyAuc2hhZG93TWFwLnR5cGUuIiksdGhpcy5zaGFkb3dNYXAudHlwZT1lfX0sc2hhZG93TWFwQ3VsbEZhY2U6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcEN1bGxGYWNlIGhhcyBiZWVuIHJlbW92ZWQuIFNldCBNYXRlcmlhbC5zaGFkb3dTaWRlIGluc3RlYWQuIil9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcEN1bGxGYWNlIGhhcyBiZWVuIHJlbW92ZWQuIFNldCBNYXRlcmlhbC5zaGFkb3dTaWRlIGluc3RlYWQuIil9fSxjb250ZXh0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuY29udGV4dCBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLmdldENvbnRleHQoKSBpbnN0ZWFkLiIpLHRoaXMuZ2V0Q29udGV4dCgpfX0sdnI6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC52ciBoYXMgYmVlbiByZW5hbWVkIHRvIC54ciIpLHRoaXMueHJ9fSxnYW1tYUlucHV0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFJbnB1dCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgdGhlIGVuY29kaW5nIGZvciB0ZXh0dXJlcyB2aWEgVGV4dHVyZS5lbmNvZGluZyBpbnN0ZWFkLiIpLCExfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nYW1tYUlucHV0IGhhcyBiZWVuIHJlbW92ZWQuIFNldCB0aGUgZW5jb2RpbmcgZm9yIHRleHR1cmVzIHZpYSBUZXh0dXJlLmVuY29kaW5nIGluc3RlYWQuIil9fSxnYW1tYU91dHB1dDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdhbW1hT3V0cHV0IGhhcyBiZWVuIHJlbW92ZWQuIFNldCBXZWJHTFJlbmRlcmVyLm91dHB1dEVuY29kaW5nIGluc3RlYWQuIiksITF9LHNldDpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nYW1tYU91dHB1dCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgV2ViR0xSZW5kZXJlci5vdXRwdXRFbmNvZGluZyBpbnN0ZWFkLiIpLHRoaXMub3V0cHV0RW5jb2Rpbmc9ZT09PSEwP1luOnRtfX0sdG9uZU1hcHBpbmdXaGl0ZVBvaW50OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudG9uZU1hcHBpbmdXaGl0ZVBvaW50IGhhcyBiZWVuIHJlbW92ZWQuIiksMX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudG9uZU1hcHBpbmdXaGl0ZVBvaW50IGhhcyBiZWVuIHJlbW92ZWQuIil9fSxnYW1tYUZhY3Rvcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdhbW1hRmFjdG9yIGhhcyBiZWVuIHJlbW92ZWQuIiksMn0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFGYWN0b3IgaGFzIGJlZW4gcmVtb3ZlZC4iKX19fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoSmZlLnByb3RvdHlwZSx7Y3VsbEZhY2U6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5jdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAuY3VsbEZhY2UgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX19LHJlbmRlclJldmVyc2VTaWRlZDp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLnJlbmRlclJldmVyc2VTaWRlZCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAucmVuZGVyUmV2ZXJzZVNpZGVkIGhhcyBiZWVuIHJlbW92ZWQuIFNldCBNYXRlcmlhbC5zaGFkb3dTaWRlIGluc3RlYWQuIil9fSxyZW5kZXJTaW5nbGVTaWRlZDp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLnJlbmRlclNpbmdsZVNpZGVkIGhhcyBiZWVuIHJlbW92ZWQuIFNldCBNYXRlcmlhbC5zaGFkb3dTaWRlIGluc3RlYWQuIil9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5yZW5kZXJTaW5nbGVTaWRlZCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfX19KTtmdW5jdGlvbiByX3IoZSx0LHIpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0Q3ViZSggd2lkdGgsIGhlaWdodCwgb3B0aW9ucyApIGlzIG5vdyBXZWJHTEN1YmVSZW5kZXJUYXJnZXQoIHNpemUsIG9wdGlvbnMgKS4iKSxuZXcgUTMoZSxyKX1PYmplY3QuZGVmaW5lUHJvcGVydGllcyhocy5wcm90b3R5cGUse3dyYXBTOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLndyYXBTIGlzIG5vdyAudGV4dHVyZS53cmFwUy4iKSx0aGlzLnRleHR1cmUud3JhcFN9LHNldDpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAud3JhcFMgaXMgbm93IC50ZXh0dXJlLndyYXBTLiIpLHRoaXMudGV4dHVyZS53cmFwUz1lfX0sd3JhcFQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAud3JhcFQgaXMgbm93IC50ZXh0dXJlLndyYXBULiIpLHRoaXMudGV4dHVyZS53cmFwVH0sc2V0OmZ1bmN0aW9uKGUpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC53cmFwVCBpcyBub3cgLnRleHR1cmUud3JhcFQuIiksdGhpcy50ZXh0dXJlLndyYXBUPWV9fSxtYWdGaWx0ZXI6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAubWFnRmlsdGVyIGlzIG5vdyAudGV4dHVyZS5tYWdGaWx0ZXIuIiksdGhpcy50ZXh0dXJlLm1hZ0ZpbHRlcn0sc2V0OmZ1bmN0aW9uKGUpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5tYWdGaWx0ZXIgaXMgbm93IC50ZXh0dXJlLm1hZ0ZpbHRlci4iKSx0aGlzLnRleHR1cmUubWFnRmlsdGVyPWV9fSxtaW5GaWx0ZXI6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAubWluRmlsdGVyIGlzIG5vdyAudGV4dHVyZS5taW5GaWx0ZXIuIiksdGhpcy50ZXh0dXJlLm1pbkZpbHRlcn0sc2V0OmZ1bmN0aW9uKGUpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5taW5GaWx0ZXIgaXMgbm93IC50ZXh0dXJlLm1pbkZpbHRlci4iKSx0aGlzLnRleHR1cmUubWluRmlsdGVyPWV9fSxhbmlzb3Ryb3B5OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLmFuaXNvdHJvcHkgaXMgbm93IC50ZXh0dXJlLmFuaXNvdHJvcHkuIiksdGhpcy50ZXh0dXJlLmFuaXNvdHJvcHl9LHNldDpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuYW5pc290cm9weSBpcyBub3cgLnRleHR1cmUuYW5pc290cm9weS4iKSx0aGlzLnRleHR1cmUuYW5pc290cm9weT1lfX0sb2Zmc2V0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLm9mZnNldCBpcyBub3cgLnRleHR1cmUub2Zmc2V0LiIpLHRoaXMudGV4dHVyZS5vZmZzZXR9LHNldDpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAub2Zmc2V0IGlzIG5vdyAudGV4dHVyZS5vZmZzZXQuIiksdGhpcy50ZXh0dXJlLm9mZnNldD1lfX0scmVwZWF0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLnJlcGVhdCBpcyBub3cgLnRleHR1cmUucmVwZWF0LiIpLHRoaXMudGV4dHVyZS5yZXBlYXR9LHNldDpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAucmVwZWF0IGlzIG5vdyAudGV4dHVyZS5yZXBlYXQuIiksdGhpcy50ZXh0dXJlLnJlcGVhdD1lfX0sZm9ybWF0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLmZvcm1hdCBpcyBub3cgLnRleHR1cmUuZm9ybWF0LiIpLHRoaXMudGV4dHVyZS5mb3JtYXR9LHNldDpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuZm9ybWF0IGlzIG5vdyAudGV4dHVyZS5mb3JtYXQuIiksdGhpcy50ZXh0dXJlLmZvcm1hdD1lfX0sdHlwZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC50eXBlIGlzIG5vdyAudGV4dHVyZS50eXBlLiIpLHRoaXMudGV4dHVyZS50eXBlfSxzZXQ6ZnVuY3Rpb24oZSl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLnR5cGUgaXMgbm93IC50ZXh0dXJlLnR5cGUuIiksdGhpcy50ZXh0dXJlLnR5cGU9ZX19LGdlbmVyYXRlTWlwbWFwczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5nZW5lcmF0ZU1pcG1hcHMgaXMgbm93IC50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcy4iKSx0aGlzLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzfSxzZXQ6ZnVuY3Rpb24oZSl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLmdlbmVyYXRlTWlwbWFwcyBpcyBub3cgLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzLiIpLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9ZX19fSk7RDYucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oZSl7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogLmxvYWQgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIFRIUkVFLkF1ZGlvTG9hZGVyIGluc3RlYWQuIik7bGV0IHQ9dGhpcztyZXR1cm4gbmV3IERVKCkubG9hZChlLGZ1bmN0aW9uKG4pe3Quc2V0QnVmZmVyKG4pfSksdGhpc307RlUucHJvdG90eXBlLmdldERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5BdWRpb0FuYWx5c2VyOiAuZ2V0RGF0YSgpIGlzIG5vdyAuZ2V0RnJlcXVlbmN5RGF0YSgpLiIpLHRoaXMuZ2V0RnJlcXVlbmN5RGF0YSgpfTtKMy5wcm90b3R5cGUudXBkYXRlQ3ViZU1hcD1mdW5jdGlvbihlLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkN1YmVDYW1lcmE6IC51cGRhdGVDdWJlTWFwKCkgaXMgbm93IC51cGRhdGUoKS4iKSx0aGlzLnVwZGF0ZShlLHQpfTtKMy5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oZSx0LHIsbil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQ3ViZUNhbWVyYTogLmNsZWFyKCkgaXMgbm93IC5yZW5kZXJUYXJnZXQuY2xlYXIoKS4iKSx0aGlzLnJlbmRlclRhcmdldC5jbGVhcihlLHQscixuKX07WmYuY3Jvc3NPcmlnaW49dm9pZCAwO1pmLmxvYWRUZXh0dXJlPWZ1bmN0aW9uKGUsdCxyLG4pe2NvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VVdGlscy5sb2FkVGV4dHVyZSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgVEhSRUUuVGV4dHVyZUxvYWRlcigpIGluc3RlYWQuIik7bGV0IGk9bmV3IEFVO2kuc2V0Q3Jvc3NPcmlnaW4odGhpcy5jcm9zc09yaWdpbik7bGV0IG89aS5sb2FkKGUscix2b2lkIDAsbik7cmV0dXJuIHQmJihvLm1hcHBpbmc9dCksb307WmYubG9hZFRleHR1cmVDdWJlPWZ1bmN0aW9uKGUsdCxyLG4pe2NvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VVdGlscy5sb2FkVGV4dHVyZUN1YmUgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIFRIUkVFLkN1YmVUZXh0dXJlTG9hZGVyKCkgaW5zdGVhZC4iKTtsZXQgaT1uZXcgVFU7aS5zZXRDcm9zc09yaWdpbih0aGlzLmNyb3NzT3JpZ2luKTtsZXQgbz1pLmxvYWQoZSxyLHZvaWQgMCxuKTtyZXR1cm4gdCYmKG8ubWFwcGluZz10KSxvfTtaZi5sb2FkQ29tcHJlc3NlZFRleHR1cmU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5JbWFnZVV0aWxzLmxvYWRDb21wcmVzc2VkVGV4dHVyZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVEhSRUUuRERTTG9hZGVyIGluc3RlYWQuIil9O1pmLmxvYWRDb21wcmVzc2VkVGV4dHVyZUN1YmU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5JbWFnZVV0aWxzLmxvYWRDb21wcmVzc2VkVGV4dHVyZUN1YmUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIFRIUkVFLkREU0xvYWRlciBpbnN0ZWFkLiIpfTtmdW5jdGlvbiBuX3IoKXtjb25zb2xlLmVycm9yKCJUSFJFRS5DYW52YXNSZW5kZXJlciBoYXMgYmVlbiByZW1vdmVkIil9ZnVuY3Rpb24gaV9yKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuSlNPTkxvYWRlciBoYXMgYmVlbiByZW1vdmVkLiIpfXZhciBvX3I9e2NyZWF0ZU11bHRpTWF0ZXJpYWxPYmplY3Q6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5TY2VuZVV0aWxzIGhhcyBiZWVuIG1vdmVkIHRvIC9leGFtcGxlcy9qc20vdXRpbHMvU2NlbmVVdGlscy5qcyIpfSxkZXRhY2g6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5TY2VuZVV0aWxzIGhhcyBiZWVuIG1vdmVkIHRvIC9leGFtcGxlcy9qc20vdXRpbHMvU2NlbmVVdGlscy5qcyIpfSxhdHRhY2g6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5TY2VuZVV0aWxzIGhhcyBiZWVuIG1vdmVkIHRvIC9leGFtcGxlcy9qc20vdXRpbHMvU2NlbmVVdGlscy5qcyIpfX07ZnVuY3Rpb24gYV9yKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTGVuc0ZsYXJlIGhhcyBiZWVuIG1vdmVkIHRvIC9leGFtcGxlcy9qc20vb2JqZWN0cy9MZW5zZmxhcmUuanMiKX1mdW5jdGlvbiBzX3IoKXtyZXR1cm4gY29uc29sZS5lcnJvcigiVEhSRUUuUGFyYW1ldHJpY0dlb21ldHJ5IGhhcyBiZWVuIG1vdmVkIHRvIC9leGFtcGxlcy9qc20vZ2VvbWV0cmllcy9QYXJhbWV0cmljR2VvbWV0cnkuanMiKSxuZXcgUGV9ZnVuY3Rpb24gbF9yKCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlRleHRHZW9tZXRyeSBoYXMgYmVlbiBtb3ZlZCB0byAvZXhhbXBsZXMvanNtL2dlb21ldHJpZXMvVGV4dEdlb21ldHJ5LmpzIiksbmV3IFBlfWZ1bmN0aW9uIGNfcigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkZvbnRMb2FkZXIgaGFzIGJlZW4gbW92ZWQgdG8gL2V4YW1wbGVzL2pzbS9sb2FkZXJzL0ZvbnRMb2FkZXIuanMiKX1mdW5jdGlvbiB1X3IoKXtjb25zb2xlLmVycm9yKCJUSFJFRS5Gb250IGhhcyBiZWVuIG1vdmVkIHRvIC9leGFtcGxlcy9qc20vbG9hZGVycy9Gb250TG9hZGVyLmpzIil9ZnVuY3Rpb24gaF9yKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuSW1tZWRpYXRlUmVuZGVyT2JqZWN0IGhhcyBiZWVuIHJlbW92ZWQuIil9dHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXyE9InVuZGVmaW5lZCImJl9fVEhSRUVfREVWVE9PTFNfXy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicmVnaXN0ZXIiLHtkZXRhaWw6e3JldmlzaW9uOmpVfX0pKTt0eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIiYmKHdpbmRvdy5fX1RIUkVFX18/Y29uc29sZS53YXJuKCJXQVJOSU5HOiBNdWx0aXBsZSBpbnN0YW5jZXMgb2YgVGhyZWUuanMgYmVpbmcgaW1wb3J0ZWQuIik6d2luZG93Ll9fVEhSRUVfXz1qVSk7dmFyIHNwZT17dHlwZToiY2hhbmdlIn0sSGh0PXt0eXBlOiJzdGFydCJ9LGxwZT17dHlwZToiZW5kIn0sSlU9Y2xhc3MgZXh0ZW5kcyBxc3tjb25zdHJ1Y3Rvcih0LHIpe3N1cGVyKCkscj09PXZvaWQgMCYmY29uc29sZS53YXJuKCdUSFJFRS5PcmJpdENvbnRyb2xzOiBUaGUgc2Vjb25kIHBhcmFtZXRlciAiZG9tRWxlbWVudCIgaXMgbm93IG1hbmRhdG9yeS4nKSxyPT09ZG9jdW1lbnQmJmNvbnNvbGUuZXJyb3IoJ1RIUkVFLk9yYml0Q29udHJvbHM6ICJkb2N1bWVudCIgc2hvdWxkIG5vdCBiZSB1c2VkIGFzIHRoZSB0YXJnZXQgImRvbUVsZW1lbnQiLiBQbGVhc2UgdXNlICJyZW5kZXJlci5kb21FbGVtZW50IiBpbnN0ZWFkLicpLHRoaXMub2JqZWN0PXQsdGhpcy5kb21FbGVtZW50PXIsdGhpcy5kb21FbGVtZW50LnN0eWxlLnRvdWNoQWN0aW9uPSJub25lIix0aGlzLmVuYWJsZWQ9ITAsdGhpcy50YXJnZXQ9bmV3IGosdGhpcy5taW5EaXN0YW5jZT0wLHRoaXMubWF4RGlzdGFuY2U9MS8wLHRoaXMubWluWm9vbT0wLHRoaXMubWF4Wm9vbT0xLzAsdGhpcy5taW5Qb2xhckFuZ2xlPTAsdGhpcy5tYXhQb2xhckFuZ2xlPU1hdGguUEksdGhpcy5taW5BemltdXRoQW5nbGU9LTEvMCx0aGlzLm1heEF6aW11dGhBbmdsZT0xLzAsdGhpcy5lbmFibGVEYW1waW5nPSExLHRoaXMuZGFtcGluZ0ZhY3Rvcj0uMDUsdGhpcy5lbmFibGVab29tPSEwLHRoaXMuem9vbVNwZWVkPTEsdGhpcy5lbmFibGVSb3RhdGU9ITAsdGhpcy5yb3RhdGVTcGVlZD0xLHRoaXMuZW5hYmxlUGFuPSEwLHRoaXMucGFuU3BlZWQ9MSx0aGlzLnNjcmVlblNwYWNlUGFubmluZz0hMCx0aGlzLmtleVBhblNwZWVkPTcsdGhpcy5hdXRvUm90YXRlPSExLHRoaXMuYXV0b1JvdGF0ZVNwZWVkPTIsdGhpcy5rZXlzPXtMRUZUOiJBcnJvd0xlZnQiLFVQOiJBcnJvd1VwIixSSUdIVDoiQXJyb3dSaWdodCIsQk9UVE9NOiJBcnJvd0Rvd24ifSx0aGlzLm1vdXNlQnV0dG9ucz17TEVGVDpaMC5ST1RBVEUsTUlERExFOlowLkRPTExZLFJJR0hUOlowLlBBTn0sdGhpcy50b3VjaGVzPXtPTkU6SjAuUk9UQVRFLFRXTzpKMC5ET0xMWV9QQU59LHRoaXMudGFyZ2V0MD10aGlzLnRhcmdldC5jbG9uZSgpLHRoaXMucG9zaXRpb24wPXRoaXMub2JqZWN0LnBvc2l0aW9uLmNsb25lKCksdGhpcy56b29tMD10aGlzLm9iamVjdC56b29tLHRoaXMuX2RvbUVsZW1lbnRLZXlFdmVudHM9bnVsbCx0aGlzLmdldFBvbGFyQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gcy5waGl9LHRoaXMuZ2V0QXppbXV0aGFsQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gcy50aGV0YX0sdGhpcy5nZXREaXN0YW5jZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9iamVjdC5wb3NpdGlvbi5kaXN0YW5jZVRvKHRoaXMudGFyZ2V0KX0sdGhpcy5saXN0ZW5Ub0tleUV2ZW50cz1mdW5jdGlvbihudCl7bnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnIpLHRoaXMuX2RvbUVsZW1lbnRLZXlFdmVudHM9bnR9LHRoaXMuc2F2ZVN0YXRlPWZ1bmN0aW9uKCl7bi50YXJnZXQwLmNvcHkobi50YXJnZXQpLG4ucG9zaXRpb24wLmNvcHkobi5vYmplY3QucG9zaXRpb24pLG4uem9vbTA9bi5vYmplY3Quem9vbX0sdGhpcy5yZXNldD1mdW5jdGlvbigpe24udGFyZ2V0LmNvcHkobi50YXJnZXQwKSxuLm9iamVjdC5wb3NpdGlvbi5jb3B5KG4ucG9zaXRpb24wKSxuLm9iamVjdC56b29tPW4uem9vbTAsbi5vYmplY3QudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpLG4uZGlzcGF0Y2hFdmVudChzcGUpLG4udXBkYXRlKCksbz1pLk5PTkV9LHRoaXMudXBkYXRlPWZ1bmN0aW9uKCl7bGV0IG50PW5ldyBqLEN0PW5ldyB5aSgpLnNldEZyb21Vbml0VmVjdG9ycyh0LnVwLG5ldyBqKDAsMSwwKSksV3Q9Q3QuY2xvbmUoKS5pbnZlcnQoKSxmZT1uZXcgaixhdD1uZXcgeWksc2U9MipNYXRoLlBJO3JldHVybiBmdW5jdGlvbigpe2xldCBDZT1uLm9iamVjdC5wb3NpdGlvbjtudC5jb3B5KENlKS5zdWIobi50YXJnZXQpLG50LmFwcGx5UXVhdGVybmlvbihDdCkscy5zZXRGcm9tVmVjdG9yMyhudCksbi5hdXRvUm90YXRlJiZvPT09aS5OT05FJiZEKGsoKSksbi5lbmFibGVEYW1waW5nPyhzLnRoZXRhKz1sLnRoZXRhKm4uZGFtcGluZ0ZhY3RvcixzLnBoaSs9bC5waGkqbi5kYW1waW5nRmFjdG9yKToocy50aGV0YSs9bC50aGV0YSxzLnBoaSs9bC5waGkpO2xldCBQdD1uLm1pbkF6aW11dGhBbmdsZSxOdD1uLm1heEF6aW11dGhBbmdsZTtyZXR1cm4gaXNGaW5pdGUoUHQpJiZpc0Zpbml0ZShOdCkmJihQdDwtTWF0aC5QST9QdCs9c2U6UHQ+TWF0aC5QSSYmKFB0LT1zZSksTnQ8LU1hdGguUEk/TnQrPXNlOk50Pk1hdGguUEkmJihOdC09c2UpLFB0PD1OdD9zLnRoZXRhPU1hdGgubWF4KFB0LE1hdGgubWluKE50LHMudGhldGEpKTpzLnRoZXRhPXMudGhldGE+KFB0K050KS8yP01hdGgubWF4KFB0LHMudGhldGEpOk1hdGgubWluKE50LHMudGhldGEpKSxzLnBoaT1NYXRoLm1heChuLm1pblBvbGFyQW5nbGUsTWF0aC5taW4obi5tYXhQb2xhckFuZ2xlLHMucGhpKSkscy5tYWtlU2FmZSgpLHMucmFkaXVzKj1jLHMucmFkaXVzPU1hdGgubWF4KG4ubWluRGlzdGFuY2UsTWF0aC5taW4obi5tYXhEaXN0YW5jZSxzLnJhZGl1cykpLG4uZW5hYmxlRGFtcGluZz09PSEwP24udGFyZ2V0LmFkZFNjYWxlZFZlY3Rvcih1LG4uZGFtcGluZ0ZhY3Rvcik6bi50YXJnZXQuYWRkKHUpLG50LnNldEZyb21TcGhlcmljYWwocyksbnQuYXBwbHlRdWF0ZXJuaW9uKFd0KSxDZS5jb3B5KG4udGFyZ2V0KS5hZGQobnQpLG4ub2JqZWN0Lmxvb2tBdChuLnRhcmdldCksbi5lbmFibGVEYW1waW5nPT09ITA/KGwudGhldGEqPTEtbi5kYW1waW5nRmFjdG9yLGwucGhpKj0xLW4uZGFtcGluZ0ZhY3Rvcix1Lm11bHRpcGx5U2NhbGFyKDEtbi5kYW1waW5nRmFjdG9yKSk6KGwuc2V0KDAsMCwwKSx1LnNldCgwLDAsMCkpLGM9MSxofHxmZS5kaXN0YW5jZVRvU3F1YXJlZChuLm9iamVjdC5wb3NpdGlvbik+YXx8OCooMS1hdC5kb3Qobi5vYmplY3QucXVhdGVybmlvbikpPmE/KG4uZGlzcGF0Y2hFdmVudChzcGUpLGZlLmNvcHkobi5vYmplY3QucG9zaXRpb24pLGF0LmNvcHkobi5vYmplY3QucXVhdGVybmlvbiksaD0hMSwhMCk6ITF9fSgpLHRoaXMuZGlzcG9zZT1mdW5jdGlvbigpe24uZG9tRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsSXQpLG4uZG9tRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsaHQpLG4uZG9tRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixpZSksbi5kb21FbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixhciksbi5kb21FbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix3dCksbi5kb21FbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsa3QpLG4uX2RvbUVsZW1lbnRLZXlFdmVudHMhPT1udWxsJiZuLl9kb21FbGVtZW50S2V5RXZlbnRzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZyKX07bGV0IG49dGhpcyxpPXtOT05FOi0xLFJPVEFURTowLERPTExZOjEsUEFOOjIsVE9VQ0hfUk9UQVRFOjMsVE9VQ0hfUEFOOjQsVE9VQ0hfRE9MTFlfUEFOOjUsVE9VQ0hfRE9MTFlfUk9UQVRFOjZ9LG89aS5OT05FLGE9MWUtNixzPW5ldyBfTSxsPW5ldyBfTSxjPTEsdT1uZXcgaixoPSExLGY9bmV3IEx0LHA9bmV3IEx0LGQ9bmV3IEx0LGc9bmV3IEx0LF89bmV3IEx0LHk9bmV3IEx0LHg9bmV3IEx0LGI9bmV3IEx0LFM9bmV3IEx0LEM9W10sUD17fTtmdW5jdGlvbiBrKCl7cmV0dXJuIDIqTWF0aC5QSS82MC82MCpuLmF1dG9Sb3RhdGVTcGVlZH1mdW5jdGlvbiBPKCl7cmV0dXJuIE1hdGgucG93KC45NSxuLnpvb21TcGVlZCl9ZnVuY3Rpb24gRChudCl7bC50aGV0YS09bnR9ZnVuY3Rpb24gQihudCl7bC5waGktPW50fWxldCBJPWZ1bmN0aW9uKCl7bGV0IG50PW5ldyBqO3JldHVybiBmdW5jdGlvbihXdCxmZSl7bnQuc2V0RnJvbU1hdHJpeENvbHVtbihmZSwwKSxudC5tdWx0aXBseVNjYWxhcigtV3QpLHUuYWRkKG50KX19KCksTD1mdW5jdGlvbigpe2xldCBudD1uZXcgajtyZXR1cm4gZnVuY3Rpb24oV3QsZmUpe24uc2NyZWVuU3BhY2VQYW5uaW5nPT09ITA/bnQuc2V0RnJvbU1hdHJpeENvbHVtbihmZSwxKToobnQuc2V0RnJvbU1hdHJpeENvbHVtbihmZSwwKSxudC5jcm9zc1ZlY3RvcnMobi5vYmplY3QudXAsbnQpKSxudC5tdWx0aXBseVNjYWxhcihXdCksdS5hZGQobnQpfX0oKSxSPWZ1bmN0aW9uKCl7bGV0IG50PW5ldyBqO3JldHVybiBmdW5jdGlvbihXdCxmZSl7bGV0IGF0PW4uZG9tRWxlbWVudDtpZihuLm9iamVjdC5pc1BlcnNwZWN0aXZlQ2FtZXJhKXtsZXQgc2U9bi5vYmplY3QucG9zaXRpb247bnQuY29weShzZSkuc3ViKG4udGFyZ2V0KTtsZXQgUXQ9bnQubGVuZ3RoKCk7UXQqPU1hdGgudGFuKG4ub2JqZWN0LmZvdi8yKk1hdGguUEkvMTgwKSxJKDIqV3QqUXQvYXQuY2xpZW50SGVpZ2h0LG4ub2JqZWN0Lm1hdHJpeCksTCgyKmZlKlF0L2F0LmNsaWVudEhlaWdodCxuLm9iamVjdC5tYXRyaXgpfWVsc2Ugbi5vYmplY3QuaXNPcnRob2dyYXBoaWNDYW1lcmE/KEkoV3QqKG4ub2JqZWN0LnJpZ2h0LW4ub2JqZWN0LmxlZnQpL24ub2JqZWN0Lnpvb20vYXQuY2xpZW50V2lkdGgsbi5vYmplY3QubWF0cml4KSxMKGZlKihuLm9iamVjdC50b3Atbi5vYmplY3QuYm90dG9tKS9uLm9iamVjdC56b29tL2F0LmNsaWVudEhlaWdodCxuLm9iamVjdC5tYXRyaXgpKTooY29uc29sZS53YXJuKCJXQVJOSU5HOiBPcmJpdENvbnRyb2xzLmpzIGVuY291bnRlcmVkIGFuIHVua25vd24gY2FtZXJhIHR5cGUgLSBwYW4gZGlzYWJsZWQuIiksbi5lbmFibGVQYW49ITEpfX0oKTtmdW5jdGlvbiBGKG50KXtuLm9iamVjdC5pc1BlcnNwZWN0aXZlQ2FtZXJhP2MvPW50Om4ub2JqZWN0LmlzT3J0aG9ncmFwaGljQ2FtZXJhPyhuLm9iamVjdC56b29tPU1hdGgubWF4KG4ubWluWm9vbSxNYXRoLm1pbihuLm1heFpvb20sbi5vYmplY3Quem9vbSpudCkpLG4ub2JqZWN0LnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSxoPSEwKTooY29uc29sZS53YXJuKCJXQVJOSU5HOiBPcmJpdENvbnRyb2xzLmpzIGVuY291bnRlcmVkIGFuIHVua25vd24gY2FtZXJhIHR5cGUgLSBkb2xseS96b29tIGRpc2FibGVkLiIpLG4uZW5hYmxlWm9vbT0hMSl9ZnVuY3Rpb24geihudCl7bi5vYmplY3QuaXNQZXJzcGVjdGl2ZUNhbWVyYT9jKj1udDpuLm9iamVjdC5pc09ydGhvZ3JhcGhpY0NhbWVyYT8obi5vYmplY3Quem9vbT1NYXRoLm1heChuLm1pblpvb20sTWF0aC5taW4obi5tYXhab29tLG4ub2JqZWN0Lnpvb20vbnQpKSxuLm9iamVjdC51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCksaD0hMCk6KGNvbnNvbGUud2FybigiV0FSTklORzogT3JiaXRDb250cm9scy5qcyBlbmNvdW50ZXJlZCBhbiB1bmtub3duIGNhbWVyYSB0eXBlIC0gZG9sbHkvem9vbSBkaXNhYmxlZC4iKSxuLmVuYWJsZVpvb209ITEpfWZ1bmN0aW9uIFUobnQpe2Yuc2V0KG50LmNsaWVudFgsbnQuY2xpZW50WSl9ZnVuY3Rpb24gVyhudCl7eC5zZXQobnQuY2xpZW50WCxudC5jbGllbnRZKX1mdW5jdGlvbiBaKG50KXtnLnNldChudC5jbGllbnRYLG50LmNsaWVudFkpfWZ1bmN0aW9uIHJ0KG50KXtwLnNldChudC5jbGllbnRYLG50LmNsaWVudFkpLGQuc3ViVmVjdG9ycyhwLGYpLm11bHRpcGx5U2NhbGFyKG4ucm90YXRlU3BlZWQpO2xldCBDdD1uLmRvbUVsZW1lbnQ7RCgyKk1hdGguUEkqZC54L0N0LmNsaWVudEhlaWdodCksQigyKk1hdGguUEkqZC55L0N0LmNsaWVudEhlaWdodCksZi5jb3B5KHApLG4udXBkYXRlKCl9ZnVuY3Rpb24gb3QobnQpe2Iuc2V0KG50LmNsaWVudFgsbnQuY2xpZW50WSksUy5zdWJWZWN0b3JzKGIseCksUy55PjA/RihPKCkpOlMueTwwJiZ6KE8oKSkseC5jb3B5KGIpLG4udXBkYXRlKCl9ZnVuY3Rpb24gc3QobnQpe18uc2V0KG50LmNsaWVudFgsbnQuY2xpZW50WSkseS5zdWJWZWN0b3JzKF8sZykubXVsdGlwbHlTY2FsYXIobi5wYW5TcGVlZCksUih5LngseS55KSxnLmNvcHkoXyksbi51cGRhdGUoKX1mdW5jdGlvbiBTdChudCl7bnQuZGVsdGFZPDA/eihPKCkpOm50LmRlbHRhWT4wJiZGKE8oKSksbi51cGRhdGUoKX1mdW5jdGlvbiBidChudCl7bGV0IEN0PSExO3N3aXRjaChudC5jb2RlKXtjYXNlIG4ua2V5cy5VUDpSKDAsbi5rZXlQYW5TcGVlZCksQ3Q9ITA7YnJlYWs7Y2FzZSBuLmtleXMuQk9UVE9NOlIoMCwtbi5rZXlQYW5TcGVlZCksQ3Q9ITA7YnJlYWs7Y2FzZSBuLmtleXMuTEVGVDpSKG4ua2V5UGFuU3BlZWQsMCksQ3Q9ITA7YnJlYWs7Y2FzZSBuLmtleXMuUklHSFQ6Uigtbi5rZXlQYW5TcGVlZCwwKSxDdD0hMDticmVha31DdCYmKG50LnByZXZlbnREZWZhdWx0KCksbi51cGRhdGUoKSl9ZnVuY3Rpb24gTXQoKXtpZihDLmxlbmd0aD09PTEpZi5zZXQoQ1swXS5wYWdlWCxDWzBdLnBhZ2VZKTtlbHNle2xldCBudD0uNSooQ1swXS5wYWdlWCtDWzFdLnBhZ2VYKSxDdD0uNSooQ1swXS5wYWdlWStDWzFdLnBhZ2VZKTtmLnNldChudCxDdCl9fWZ1bmN0aW9uIGx0KCl7aWYoQy5sZW5ndGg9PT0xKWcuc2V0KENbMF0ucGFnZVgsQ1swXS5wYWdlWSk7ZWxzZXtsZXQgbnQ9LjUqKENbMF0ucGFnZVgrQ1sxXS5wYWdlWCksQ3Q9LjUqKENbMF0ucGFnZVkrQ1sxXS5wYWdlWSk7Zy5zZXQobnQsQ3QpfX1mdW5jdGlvbiBLdCgpe2xldCBudD1DWzBdLnBhZ2VYLUNbMV0ucGFnZVgsQ3Q9Q1swXS5wYWdlWS1DWzFdLnBhZ2VZLFd0PU1hdGguc3FydChudCpudCtDdCpDdCk7eC5zZXQoMCxXdCl9ZnVuY3Rpb24gX3QoKXtuLmVuYWJsZVpvb20mJkt0KCksbi5lbmFibGVQYW4mJmx0KCl9ZnVuY3Rpb24gY3QoKXtuLmVuYWJsZVpvb20mJkt0KCksbi5lbmFibGVSb3RhdGUmJk10KCl9ZnVuY3Rpb24gWChudCl7aWYoQy5sZW5ndGg9PTEpcC5zZXQobnQucGFnZVgsbnQucGFnZVkpO2Vsc2V7bGV0IFd0PWJlKG50KSxmZT0uNSoobnQucGFnZVgrV3QueCksYXQ9LjUqKG50LnBhZ2VZK1d0LnkpO3Auc2V0KGZlLGF0KX1kLnN1YlZlY3RvcnMocCxmKS5tdWx0aXBseVNjYWxhcihuLnJvdGF0ZVNwZWVkKTtsZXQgQ3Q9bi5kb21FbGVtZW50O0QoMipNYXRoLlBJKmQueC9DdC5jbGllbnRIZWlnaHQpLEIoMipNYXRoLlBJKmQueS9DdC5jbGllbnRIZWlnaHQpLGYuY29weShwKX1mdW5jdGlvbiBldChudCl7aWYoQy5sZW5ndGg9PT0xKV8uc2V0KG50LnBhZ2VYLG50LnBhZ2VZKTtlbHNle2xldCBDdD1iZShudCksV3Q9LjUqKG50LnBhZ2VYK0N0LngpLGZlPS41KihudC5wYWdlWStDdC55KTtfLnNldChXdCxmZSl9eS5zdWJWZWN0b3JzKF8sZykubXVsdGlwbHlTY2FsYXIobi5wYW5TcGVlZCksUih5LngseS55KSxnLmNvcHkoXyl9ZnVuY3Rpb24gZHQobnQpe2xldCBDdD1iZShudCksV3Q9bnQucGFnZVgtQ3QueCxmZT1udC5wYWdlWS1DdC55LGF0PU1hdGguc3FydChXdCpXdCtmZSpmZSk7Yi5zZXQoMCxhdCksUy5zZXQoMCxNYXRoLnBvdyhiLnkveC55LG4uem9vbVNwZWVkKSksRihTLnkpLHguY29weShiKX1mdW5jdGlvbiBxKG50KXtuLmVuYWJsZVpvb20mJmR0KG50KSxuLmVuYWJsZVBhbiYmZXQobnQpfWZ1bmN0aW9uIHB0KG50KXtuLmVuYWJsZVpvb20mJmR0KG50KSxuLmVuYWJsZVJvdGF0ZSYmWChudCl9ZnVuY3Rpb24gaHQobnQpe24uZW5hYmxlZCE9PSExJiYoQy5sZW5ndGg9PT0wJiYobi5kb21FbGVtZW50LnNldFBvaW50ZXJDYXB0dXJlKG50LnBvaW50ZXJJZCksbi5kb21FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix3dCksbi5kb21FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsa3QpKSwkdChudCksbnQucG9pbnRlclR5cGU9PT0idG91Y2giP3R0KG50KTplZShudCkpfWZ1bmN0aW9uIHd0KG50KXtuLmVuYWJsZWQhPT0hMSYmKG50LnBvaW50ZXJUeXBlPT09InRvdWNoIj8kKG50KTpMZShudCkpfWZ1bmN0aW9uIGt0KG50KXtoZShudCksQy5sZW5ndGg9PT0wJiYobi5kb21FbGVtZW50LnJlbGVhc2VQb2ludGVyQ2FwdHVyZShudC5wb2ludGVySWQpLG4uZG9tRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsd3QpLG4uZG9tRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLGt0KSksbi5kaXNwYXRjaEV2ZW50KGxwZSksbz1pLk5PTkV9ZnVuY3Rpb24gaWUobnQpe2hlKG50KX1mdW5jdGlvbiBlZShudCl7bGV0IEN0O3N3aXRjaChudC5idXR0b24pe2Nhc2UgMDpDdD1uLm1vdXNlQnV0dG9ucy5MRUZUO2JyZWFrO2Nhc2UgMTpDdD1uLm1vdXNlQnV0dG9ucy5NSURETEU7YnJlYWs7Y2FzZSAyOkN0PW4ubW91c2VCdXR0b25zLlJJR0hUO2JyZWFrO2RlZmF1bHQ6Q3Q9LTF9c3dpdGNoKEN0KXtjYXNlIFowLkRPTExZOmlmKG4uZW5hYmxlWm9vbT09PSExKXJldHVybjtXKG50KSxvPWkuRE9MTFk7YnJlYWs7Y2FzZSBaMC5ST1RBVEU6aWYobnQuY3RybEtleXx8bnQubWV0YUtleXx8bnQuc2hpZnRLZXkpe2lmKG4uZW5hYmxlUGFuPT09ITEpcmV0dXJuO1oobnQpLG89aS5QQU59ZWxzZXtpZihuLmVuYWJsZVJvdGF0ZT09PSExKXJldHVybjtVKG50KSxvPWkuUk9UQVRFfWJyZWFrO2Nhc2UgWjAuUEFOOmlmKG50LmN0cmxLZXl8fG50Lm1ldGFLZXl8fG50LnNoaWZ0S2V5KXtpZihuLmVuYWJsZVJvdGF0ZT09PSExKXJldHVybjtVKG50KSxvPWkuUk9UQVRFfWVsc2V7aWYobi5lbmFibGVQYW49PT0hMSlyZXR1cm47WihudCksbz1pLlBBTn1icmVhaztkZWZhdWx0Om89aS5OT05FfW8hPT1pLk5PTkUmJm4uZGlzcGF0Y2hFdmVudChIaHQpfWZ1bmN0aW9uIExlKG50KXtpZihuLmVuYWJsZWQhPT0hMSlzd2l0Y2gobyl7Y2FzZSBpLlJPVEFURTppZihuLmVuYWJsZVJvdGF0ZT09PSExKXJldHVybjtydChudCk7YnJlYWs7Y2FzZSBpLkRPTExZOmlmKG4uZW5hYmxlWm9vbT09PSExKXJldHVybjtvdChudCk7YnJlYWs7Y2FzZSBpLlBBTjppZihuLmVuYWJsZVBhbj09PSExKXJldHVybjtzdChudCk7YnJlYWt9fWZ1bmN0aW9uIGFyKG50KXtuLmVuYWJsZWQ9PT0hMXx8bi5lbmFibGVab29tPT09ITF8fG8hPT1pLk5PTkV8fChudC5wcmV2ZW50RGVmYXVsdCgpLG4uZGlzcGF0Y2hFdmVudChIaHQpLFN0KG50KSxuLmRpc3BhdGNoRXZlbnQobHBlKSl9ZnVuY3Rpb24gZnIobnQpe24uZW5hYmxlZD09PSExfHxuLmVuYWJsZVBhbj09PSExfHxidChudCl9ZnVuY3Rpb24gdHQobnQpe3N3aXRjaChUdChudCksQy5sZW5ndGgpe2Nhc2UgMTpzd2l0Y2gobi50b3VjaGVzLk9ORSl7Y2FzZSBKMC5ST1RBVEU6aWYobi5lbmFibGVSb3RhdGU9PT0hMSlyZXR1cm47TXQoKSxvPWkuVE9VQ0hfUk9UQVRFO2JyZWFrO2Nhc2UgSjAuUEFOOmlmKG4uZW5hYmxlUGFuPT09ITEpcmV0dXJuO2x0KCksbz1pLlRPVUNIX1BBTjticmVhaztkZWZhdWx0Om89aS5OT05FfWJyZWFrO2Nhc2UgMjpzd2l0Y2gobi50b3VjaGVzLlRXTyl7Y2FzZSBKMC5ET0xMWV9QQU46aWYobi5lbmFibGVab29tPT09ITEmJm4uZW5hYmxlUGFuPT09ITEpcmV0dXJuO190KCksbz1pLlRPVUNIX0RPTExZX1BBTjticmVhaztjYXNlIEowLkRPTExZX1JPVEFURTppZihuLmVuYWJsZVpvb209PT0hMSYmbi5lbmFibGVSb3RhdGU9PT0hMSlyZXR1cm47Y3QoKSxvPWkuVE9VQ0hfRE9MTFlfUk9UQVRFO2JyZWFrO2RlZmF1bHQ6bz1pLk5PTkV9YnJlYWs7ZGVmYXVsdDpvPWkuTk9ORX1vIT09aS5OT05FJiZuLmRpc3BhdGNoRXZlbnQoSGh0KX1mdW5jdGlvbiAkKG50KXtzd2l0Y2goVHQobnQpLG8pe2Nhc2UgaS5UT1VDSF9ST1RBVEU6aWYobi5lbmFibGVSb3RhdGU9PT0hMSlyZXR1cm47WChudCksbi51cGRhdGUoKTticmVhaztjYXNlIGkuVE9VQ0hfUEFOOmlmKG4uZW5hYmxlUGFuPT09ITEpcmV0dXJuO2V0KG50KSxuLnVwZGF0ZSgpO2JyZWFrO2Nhc2UgaS5UT1VDSF9ET0xMWV9QQU46aWYobi5lbmFibGVab29tPT09ITEmJm4uZW5hYmxlUGFuPT09ITEpcmV0dXJuO3EobnQpLG4udXBkYXRlKCk7YnJlYWs7Y2FzZSBpLlRPVUNIX0RPTExZX1JPVEFURTppZihuLmVuYWJsZVpvb209PT0hMSYmbi5lbmFibGVSb3RhdGU9PT0hMSlyZXR1cm47cHQobnQpLG4udXBkYXRlKCk7YnJlYWs7ZGVmYXVsdDpvPWkuTk9ORX19ZnVuY3Rpb24gSXQobnQpe24uZW5hYmxlZCE9PSExJiZudC5wcmV2ZW50RGVmYXVsdCgpfWZ1bmN0aW9uICR0KG50KXtDLnB1c2gobnQpfWZ1bmN0aW9uIGhlKG50KXtkZWxldGUgUFtudC5wb2ludGVySWRdO2ZvcihsZXQgQ3Q9MDtDdDxDLmxlbmd0aDtDdCsrKWlmKENbQ3RdLnBvaW50ZXJJZD09bnQucG9pbnRlcklkKXtDLnNwbGljZShDdCwxKTtyZXR1cm59fWZ1bmN0aW9uIFR0KG50KXtsZXQgQ3Q9UFtudC5wb2ludGVySWRdO0N0PT09dm9pZCAwJiYoQ3Q9bmV3IEx0LFBbbnQucG9pbnRlcklkXT1DdCksQ3Quc2V0KG50LnBhZ2VYLG50LnBhZ2VZKX1mdW5jdGlvbiBiZShudCl7bGV0IEN0PW50LnBvaW50ZXJJZD09PUNbMF0ucG9pbnRlcklkP0NbMV06Q1swXTtyZXR1cm4gUFtDdC5wb2ludGVySWRdfW4uZG9tRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsSXQpLG4uZG9tRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsaHQpLG4uZG9tRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixpZSksbi5kb21FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixhcix7cGFzc2l2ZTohMX0pLHRoaXMudXBkYXRlKCl9fTt2YXIgRjY9Y2xhc3MgZXh0ZW5kcyBxc3tjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuX2xhc3RNZXNoPW51bGwsdGhpcy5fY2xvY2s9bmV3IG1NLHRoaXMuX2NhbnZhc1NpemU9bnVsbCx0aGlzLl9sYXllcnNDb25maWc9bnVsbCx0aGlzLl9ydW5Db2xvcj10fV9pc09iamVjdCh0KXt2YXIgcj10eXBlb2YgdDtyZXR1cm4gcj09Im9iamVjdCImJnQhPW51bGwmJiFBcnJheS5pc0FycmF5KHQpfV9hcHBseURlZmF1bHRzKHQscil7bGV0IG49e30saT1bdCxyXTtmb3IobGV0IG89MDtvPGkubGVuZ3RoO28rKyl7bGV0IGE9aVtvXTtmb3IobGV0IHMgaW4gYSl7bGV0IGw9cyBpbiBuO3RoaXMuX2lzT2JqZWN0KGFbc10pP25bc109dGhpcy5fYXBwbHlEZWZhdWx0cyhuW3NdfHx7fSxhW3NdKTpsfHwobltzXT1hW3NdKX19cmV0dXJuIG59X2NyZWF0ZUxheWVycygpe2lmKCEoIXRoaXMuX2xheWVyc0NvbmZpZ3x8IXRoaXMuX3NjZW5lfHwhdGhpcy5fbGFzdE1lc2gpKXtpZih0aGlzLl9sYXllcnNDb25maWcuc2hvd0JvdW5kaW5nQm94KXt2YXIgdD1uZXcgeU0odGhpcy5fbGFzdE1lc2gsbmV3IG5lKCJyZ2IoMCwgMCwgMjU1KSIpKTt0aGlzLl9zY2VuZS5hZGQodCl9aWYodGhpcy5fbGF5ZXJzQ29uZmlnLnNob3dBeGVzKXt2YXIgcj1uZXcgdk0oNSk7dGhpcy5fc2NlbmUuYWRkKHIpfX19c2V0TGF5ZXJzQ29uZmlnKHQpe3RoaXMuX2xheWVyc0NvbmZpZz10aGlzLl9hcHBseURlZmF1bHRzKHQsdGhpcy5fbGF5ZXJzQ29uZmlnfHx7fSl9X2NyZWF0ZVdvcmxkKHQscil7dmFyIGEscyxsLGM7aWYodGhpcy5pc1JlYWR5KCkpcmV0dXJuO3RoaXMuX3NjZW5lPW5ldyBHMDt2YXIgbj1uZXcgd01bdC5jYW1lcmEuY2xzXSh0LmNhbWVyYS5mb3YsKChhPXRoaXMuX2NhbnZhc1NpemUpPT1udWxsP3ZvaWQgMDphLndpZHRoKS8oKHM9dGhpcy5fY2FudmFzU2l6ZSk9PW51bGw/dm9pZCAwOnMuaGVpZ2h0KSx0LmNhbWVyYS5uZWFyLHQuY2FtZXJhLmZhcik7dGhpcy5fY2FtZXJhPW4sdGhpcy5pbml0Q2FtZXJhUG9zaXRpb249dm9pZCAwLHQuY2FtZXJhLnBvc2l0aW9uJiYodGhpcy5pbml0Q2FtZXJhUG9zaXRpb249bmV3IGooKS5mcm9tQXJyYXkodC5jYW1lcmEucG9zaXRpb24pKSx0aGlzLmluaXRDYW1lcmFMb29rQXQ9dm9pZCAwLHQuY2FtZXJhLmxvb2tBdCYmKHRoaXMuaW5pdENhbWVyYUxvb2tBdD1uZXcgaigpLmZyb21BcnJheSh0LmNhbWVyYS5sb29rQXQpKTt2YXIgaT1uZXcgSlUobixyKTtsZXQgbz1pO28ubG9va1NwZWVkPS40LG8ubW92ZW1lbnRTcGVlZD0yMCxvLm5vRmx5PSEwLG8ubG9va1ZlcnRpY2FsPSEwLG8uY29uc3RyYWluVmVydGljYWw9ITAsby52ZXJ0aWNhbE1pbj0xLG8udmVydGljYWxNYXg9MixvLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5fb25DYW1lcmFQb3NpdGlvbkNoYW5nZS5iaW5kKHRoaXMpKSx0aGlzLl9jYW1lcmFDb250cm9scz1pLHRoaXMuX3JlbmRlcmVyPW5ldyBybih7YW50aWFsaWFzOiEwfSksdGhpcy5fcmVuZGVyZXIuc2V0UGl4ZWxSYXRpbyh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyksdGhpcy5fcmVuZGVyZXIuc2V0U2l6ZSgobD10aGlzLl9jYW52YXNTaXplKT09bnVsbD92b2lkIDA6bC53aWR0aCwoYz10aGlzLl9jYW52YXNTaXplKT09bnVsbD92b2lkIDA6Yy5oZWlnaHQpLHRoaXMuX3JlbmRlcmVyLnNldENsZWFyQ29sb3IoMTY3NzcyMTUsMSl9X2NsZWFyU2NlbmUoKXt2YXIgdDtpZih0aGlzLl9zY2VuZSlmb3IoO3RoaXMuX3NjZW5lLmNoaWxkcmVuLmxlbmd0aD4wOyl0aGlzLl9zY2VuZS5yZW1vdmUoKHQ9dGhpcy5fc2NlbmUpPT1udWxsP3ZvaWQgMDp0LmNoaWxkcmVuWzBdKX1nZXRSZW5kZXJlcigpe3JldHVybiB0aGlzLl9yZW5kZXJlcn1nZXRDYW1lcmFDb250cm9scygpe3JldHVybiB0aGlzLl9jYW1lcmFDb250cm9sc31pc1JlYWR5KCl7cmV0dXJuISF0aGlzLl9jYW1lcmEmJiEhdGhpcy5fY2FtZXJhQ29udHJvbHN9Z2V0Q2FtZXJhUG9zaXRpb24oKXt2YXIgdCxyLG47cmV0dXJue2ZhcjoodD10aGlzLl9jYW1lcmEpPT1udWxsP3ZvaWQgMDp0LmZhcixwb3NpdGlvbjoocj10aGlzLl9jYW1lcmEpPT1udWxsP3ZvaWQgMDpyLnBvc2l0aW9uLmNsb25lKCksdGFyZ2V0OihuPXRoaXMuX2NhbWVyYUNvbnRyb2xzKT09bnVsbD92b2lkIDA6bi50YXJnZXQuY2xvbmUoKX19c2V0Q2FudmFzU2l6ZSh0KXt0aGlzLl9jYW52YXNTaXplPXR9ZHJhdygpe3ZhciByLG4saSxvO3RoaXMuX2FuaW1hdGlvbkZyYW1lSW5kZXgmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX2FuaW1hdGlvbkZyYW1lSW5kZXgpLHRoaXMuX2NhbWVyYSYmKHRoaXMuX2NhbWVyYS5hc3BlY3Q9KChyPXRoaXMuX2NhbnZhc1NpemUpPT1udWxsP3ZvaWQgMDpyLndpZHRoKS8oKG49dGhpcy5fY2FudmFzU2l6ZSk9PW51bGw/dm9pZCAwOm4uaGVpZ2h0KSx0aGlzLl9jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpKSx0aGlzLl9yZW5kZXJlci5zZXRTaXplKChpPXRoaXMuX2NhbnZhc1NpemUpPT1udWxsP3ZvaWQgMDppLndpZHRoLChvPXRoaXMuX2NhbnZhc1NpemUpPT1udWxsP3ZvaWQgMDpvLmhlaWdodCk7bGV0IHQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9jbG9jay5nZXREZWx0YSgpO3RoaXMuX2NhbWVyYUNvbnRyb2xzLnVwZGF0ZShhKSx0aGlzLl9hbmltYXRpb25GcmFtZUluZGV4PXJlcXVlc3RBbmltYXRpb25GcmFtZSh0KSx0aGlzLl9yZW5kZXJlci5yZW5kZXIodGhpcy5fc2NlbmUsdGhpcy5fY2FtZXJhKX0uYmluZCh0aGlzKTt0KCl9dXBkYXRlU2NlbmUodCxyKXtsZXQgbj17fTsiY29uZmlnImluIHQmJnQuY29uZmlnJiYobj1KU09OLnBhcnNlKHQuY29uZmlnKSksdGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJiZWZvcmVVcGRhdGVTY2VuZSJ9KTtsZXQgaT17Y2FtZXJhOntjbHM6IlBlcnNwZWN0aXZlQ2FtZXJhIixmb3Y6NzUsbmVhcjouMSxmYXI6MWUzfSxsaWdodHM6W3tjbHM6IkFtYmllbnRMaWdodCIsY29sb3I6IiNmZmZmZmYiLGludGVuc2l0eTouNzV9LHtjbHM6IkRpcmVjdGlvbmFsTGlnaHQiLGNvbG9yOiIjZmZmZmZmIixpbnRlbnNpdHk6Ljc1LHBvc2l0aW9uOlswLC0xLDJdfV19O249dGhpcy5fYXBwbHlEZWZhdWx0cyhuLGkpLHRoaXMuX2NyZWF0ZVdvcmxkKG4sciksdGhpcy5fY2xlYXJTY2VuZSgpLHRoaXMuX2NyZWF0ZUxpZ2h0cyh0aGlzLl9zY2VuZSxuKSx0aGlzLl9jcmVhdGVHZW9tZXRyeSh0LG4pLHRoaXMuX2NyZWF0ZUxheWVycygpLHRoaXMuZHJhdygpfXJlc2V0Vmlldyh0KXt2YXIgbixpO2lmKCF0aGlzLmlzUmVhZHkoKSlyZXR1cm47KG49dGhpcy5fY2FtZXJhQ29udHJvbHMpPT1udWxsfHxuLnJlc2V0KCk7bGV0IHI7IXQmJnRoaXMuX2xhc3RNZXNoJiYocj10aGlzLl9sYXN0TWVzaCksciYmKHRoaXMuX2ZpdE9iamVjdFRvVmlld3BvcnQociksdGhpcy5fbGFzdE1lc2g9ciksKGk9dGhpcy5fY2FtZXJhQ29udHJvbHMpPT1udWxsfHxpLnVwZGF0ZSgpfV9jcmVhdGVHZW9tZXRyeSh0LHIpe2xldCBuPXQubWVzaDtuLnZlcnRpY2VzJiZuLmZhY2VzJiZuLmZhY2VzLmxlbmd0aD90aGlzLl9jcmVhdGVNZXNoKG4scik6dGhpcy5fY3JlYXRlUG9pbnRDbG91ZChuLHIpfV9jcmVhdGVQb2ludENsb3VkKHQscil7dmFyIGg7bGV0IG49dC52ZXJ0aWNlcyxpPXQuY29sb3JzLG89e21hdGVyaWFsOntjbHM6IlBvaW50c01hdGVyaWFsIixzaXplOi4wMDV9fTtpJiZpLmxlbmd0aD09bi5sZW5ndGg/by5tYXRlcmlhbC52ZXJ0ZXhDb2xvcnM9ITA6by5tYXRlcmlhbC5jb2xvcj10aGlzLl9ydW5Db2xvcjtsZXQgYT10aGlzLl9hcHBseURlZmF1bHRzKHIsbykscz1uZXcgUGUsbD1uZXcgRmxvYXQzMkFycmF5KG4uZmxhdCgpKTtpZihzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBKZShsLDMpKSxpJiZpLmxlbmd0aD09bi5sZW5ndGgpe2xldCBmPW5ldyBGbG9hdDMyQXJyYXkoaS5mbGF0KCkpO2ZvcihsZXQgcD0wO3A8Zi5sZW5ndGg7cCsrKWZbcF09ZltwXS8yNTU7cy5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgSmUoZiwzKSl9dmFyIGM9bmV3IHdNW2EubWF0ZXJpYWwuY2xzXShhLm1hdGVyaWFsKSx1PW5ldyBvbShzLGMpOyhoPXRoaXMuX3NjZW5lKT09bnVsbHx8aC5hZGQodSksdGhpcy5fbGFzdE1lc2g9dX1zZXRDYW1lcmFWaWV3cG9pbnQodCxyLG4pe3RoaXMuX3NpbGVudD0hMCx0aGlzLl9jYW1lcmEmJih0aGlzLl9jYW1lcmEuZmFyPXIsdGhpcy5fY2FtZXJhLnBvc2l0aW9uLnNldCh0LngsdC55LHQueiksdGhpcy5fY2FtZXJhLmxvb2tBdChuLmNsb25lKCkpLHRoaXMuX2NhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCkpLHRoaXMuX2NhbWVyYUNvbnRyb2xzJiYodGhpcy5fY2FtZXJhQ29udHJvbHMudGFyZ2V0PW4uY2xvbmUoKSx0aGlzLl9jYW1lcmFDb250cm9scy51cGRhdGUoKSksdGhpcy5fc2lsZW50PSExfV9vbkNhbWVyYVBvc2l0aW9uQ2hhbmdlKHQpe3RoaXMuX3NpbGVudHx8dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJjYW1lcmFQb3NpdGlvbkNoYW5nZSIsZXZlbnQ6dH0pfV9maXRPYmplY3RUb1ZpZXdwb3J0KHQpe3ZhciBwLGQsZztsZXQgbj1uZXcgdGEsaT1uZXcgaixvPW5ldyBqO24uc2V0RnJvbU9iamVjdCh0KSxuLmdldENlbnRlcihpKSxuLmdldFNpemUobyk7bGV0IGE9TWF0aC5tYXgoby54LG8ueSxvLnopLHM9KChwPXRoaXMuX2NhbWVyYSk9PW51bGw/dm9pZCAwOnAuZm92KSooTWF0aC5QSS8xODApLGw9TWF0aC5hYnMoYS8oMipNYXRoLnRhbihzLzIpKSkqMS4yNSxjPW4ubWluLnosdT1jPDA/LWMrbDpsLWMsaD0oZD10aGlzLmluaXRDYW1lcmFQb3NpdGlvbikhPW51bGw/ZDpuZXcgaihpLngsaS55LGwpLGY9KGc9dGhpcy5pbml0Q2FtZXJhTG9va0F0KSE9bnVsbD9nOmk7dGhpcy5zZXRDYW1lcmFWaWV3cG9pbnQoaCx1KjMsZil9X2NyZWF0ZU1lc2godCxyKXt2YXIgZjtsZXQgbj10LnZlcnRpY2VzLGk9dC5mYWNlcyxvPXQuY29sb3JzLGE9dGhpcy5fYXBwbHlEZWZhdWx0cyhyLHttYXRlcmlhbDp7Y2xzOiJNZXNoU3RhbmRhcmRNYXRlcmlhbCIsY29sb3I6IiNhMGEwYTAiLHJvdWdobmVzczoxLG1ldGFsbmVzczowfX0pLHM9bmV3IFBlLGw9bmV3IEZsb2F0MzJBcnJheShuLmZsYXQoKSk7cy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgSmUobCwzKSk7bGV0IGM9bmV3IFVpbnQxNkFycmF5KGkuZmxhdCgpKTtpZihvJiZvLmxlbmd0aCl7bGV0IHA9by5mbGF0KCk7Zm9yKGxldCBkPTA7ZDxwLmxlbmd0aDtkKyspcFtkXT1wW2RdLzI1NTtzLnNldEF0dHJpYnV0ZSgiY29sb3IiLG5ldyBKZShuZXcgRmxvYXQzMkFycmF5KHApLDMpKSxhLm1hdGVyaWFsPWEubWF0ZXJpYWx8fHt9LGEubWF0ZXJpYWwudmVydGV4Q29sb3JzPSEwfXMuY2VudGVyKCkscy5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxzLnNldEluZGV4KG5ldyBKZShjLDEpKSxzLmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCk7bGV0IHU9bmV3IHdNW2EubWF0ZXJpYWwuY2xzXShhLm1hdGVyaWFsKSxoPW5ldyB0aShzLHUpO2guY2FzdFNoYWRvdz0hMCxoLnJlY2VpdmVTaGFkb3c9ITAsKGY9dGhpcy5fc2NlbmUpPT1udWxsfHxmLmFkZChoKSx0aGlzLl9sYXN0TWVzaD1ofV9jcmVhdGVMaWdodHModCxyKXtmb3IobGV0IG49MDtuPHIubGlnaHRzLmxlbmd0aDtuKyspe2xldCBpPXIubGlnaHRzW25dLG89bmV3IHdNW2kuY2xzXShpLmNvbG9yLGkuaW50ZW5zaXR5KTtpLnBvc2l0aW9uJiZvLnBvc2l0aW9uLnNldChpLnBvc2l0aW9uWzBdLGkucG9zaXRpb25bMV0saS5wb3NpdGlvblsyXSksdC5hZGQobyl9fX07dmFyIGtuPWNsYXNzIGV4dGVuZHMgR3QobXQpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnNlbGVjdGVkVmlldz0iYWxsIix0aGlzLmFjdGl2ZT0hMSx0aGlzLl9jb2xvclNjYWxlRnVuY3Rpb249Zm4sdGhpcy5fc3RlcHM9W10sdGhpcy5fbWVzaFZpZXdlckF0dGFjaGVkPSExLHRoaXMuX2NhbWVyYVBvc2l0aW9uSW5pdGlhbGl6ZWQ9ITEsdGhpcy5faXNNZXNoTG9hZGluZz0hMX1nZXQgX3J1bkNvbG9yKCl7dmFyIHQ9dGhpcy5ydW47cmV0dXJuIHRoaXMuX2NvbG9yU2NhbGVGdW5jdGlvbih0KX1jb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fZGF0YVByb3ZpZGVyPW5ldyBJUCh0aGlzLnJlcXVlc3RNYW5hZ2VyKTtsZXQgdD1uZXcgRjYodGhpcy5fcnVuQ29sb3IpO3QuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JlVXBkYXRlU2NlbmUiLHRoaXMuX3VwZGF0ZUNhbnZhc1NpemUuYmluZCh0aGlzKSksdC5hZGRFdmVudExpc3RlbmVyKCJjYW1lcmFQb3NpdGlvbkNoYW5nZSIsdGhpcy5fb25DYW1lcmFQb3NpdGlvbkNoYW5nZS5iaW5kKHRoaXMpKSx0aGlzLl9tZXNoVmlld2VyPXR9cmVsb2FkKCl7IXRoaXMuYWN0aXZlfHwhdGhpcy5fZGF0YVByb3ZpZGVyfHwodGhpcy5faXNNZXNoTG9hZGluZz0hMCx0aGlzLl9kYXRhUHJvdmlkZXIucmVsb2FkKHRoaXMucnVuLHRoaXMudGFnLHRoaXMuc2FtcGxlKS50aGVuKHQ9PnshdHx8KHRoaXMuX3N0ZXBzPXQsdGhpcy5fc3RlcEluZGV4PXQubGVuZ3RoLTEpfSkuY2F0Y2godD0+e2lmKCF0fHwhdC5jb2RlfHx0LmNvZGUhPW0xLkNBTkNFTExFRCl0aHJvdyB0PXR8fCJSZXNwb25zZSBwcm9jZXNzaW5nIGZhaWxlZC4iLG5ldyBFcnJvcih0KX0pKX1fdXBkYXRlU2NlbmUoKXt2YXIgcjtsZXQgdD10aGlzLl9jdXJyZW50U3RlcDshdHx8IXQubWVzaHx8KHRoaXMuX21lc2hWaWV3ZXIudXBkYXRlU2NlbmUodCx0aGlzKSx0aGlzLl9jYW1lcmFQb3NpdGlvbkluaXRpYWxpemVkfHwodGhpcy5fbWVzaFZpZXdlci5yZXNldFZpZXcoKSx0aGlzLl9jYW1lcmFQb3NpdGlvbkluaXRpYWxpemVkPSEwKSx0aGlzLl9tZXNoVmlld2VyQXR0YWNoZWR8fCgocj10aGlzLnNoYWRvd1Jvb3QpPT1udWxsfHxyLmFwcGVuZENoaWxkKHRoaXMuX21lc2hWaWV3ZXIuZ2V0UmVuZGVyZXIoKS5kb21FbGVtZW50KSx0aGlzLl9tZXNoVmlld2VyQXR0YWNoZWQ9ITApKX1fZGVib3VuY2VkRmV0Y2hNZXNoKCl7dGhpcy5kZWJvdW5jZSgiZmV0Y2hNZXNoIiwoKT0+dGhpcy5fbWF5YmVGZXRjaE1lc2goKSwxMDApfV9tYXliZUZldGNoTWVzaCgpe3JldHVybiBSaSh0aGlzLG51bGwsZnVuY3Rpb24qKCl7bGV0IHQ9dGhpcy5fY3VycmVudFN0ZXA7aWYoISghdHx8dC5tZXNofHx0Lm1lc2hGZXRjaGluZykpe3QubWVzaEZldGNoaW5nPSEwLHRoaXMuX2lzTWVzaExvYWRpbmc9ITA7dHJ5e2xldCByPXlpZWxkIHRoaXMuX2RhdGFQcm92aWRlci5mZXRjaERhdGEodCx0aGlzLnJ1bix0aGlzLnRhZyx0aGlzLnNhbXBsZSk7dC5tZXNoPXJbMF0sdGhpcy5ub3RpZnlQYXRoKCJfY3VycmVudFN0ZXAubWVzaCIpfWNhdGNoKHIpe2lmKCFyfHwhci5jb2RlfHxyLmNvZGUhPW0xLkNBTkNFTExFRCl0aHJvdyByPXJ8fCJSZXNwb25zZSBwcm9jZXNzaW5nIGZhaWxlZC4iLG5ldyBFcnJvcihyKX1maW5hbGx5e3RoaXMuX2lzTWVzaExvYWRpbmc9ITEsdC5tZXNoRmV0Y2hpbmc9ITF9fX0pfV9vbkNhbWVyYVBvc2l0aW9uQ2hhbmdlKCl7aWYoIXRoaXMuX21lc2hWaWV3ZXIuaXNSZWFkeSgpKXJldHVybjtsZXQgdD1uZXcgQ3VzdG9tRXZlbnQoImNhbWVyYS1wb3NpdGlvbi1jaGFuZ2UiLHtkZXRhaWw6dGhpcy5fbWVzaFZpZXdlci5nZXRDYW1lcmFQb3NpdGlvbigpfSk7dGhpcy5kaXNwYXRjaEV2ZW50KHQpfXNldENhbWVyYVZpZXdwb2ludCh0LHIsbil7dGhpcy5fbWVzaFZpZXdlci5zZXRDYW1lcmFWaWV3cG9pbnQodCxyLG4pfV91cGRhdGVDYW52YXNTaXplKCl7bGV0IHQ9dGhpcy5vZmZzZXRXaWR0aCxyPXQsbj10aGlzLiQkKCIudGYtbWVzaC1sb2FkZXItaGVhZGVyIikub2Zmc2V0SGVpZ2h0LGk9e3dpZHRoOnQsaGVpZ2h0OnItbn07dGhpcy5fbWVzaFZpZXdlci5zZXRDYW52YXNTaXplKGkpfXJlZHJhdygpe3RoaXMuX3VwZGF0ZUNhbnZhc1NpemUoKSx0aGlzLmlzQ29ubmVjdGVkJiZ0aGlzLl9tZXNoVmlld2VyLmRyYXcoKX1faGFzQXRMZWFzdE9uZVN0ZXAodCl7cmV0dXJuISF0JiZ0Lmxlbmd0aD4wfV9oYXNNdWx0aXBsZVN0ZXBzKHQpe3JldHVybiEhdCYmdC5sZW5ndGg+MX1nZXQgX2N1cnJlbnRTdGVwKCl7dmFyIHQ9dGhpcy5fc3RlcHMscj10aGlzLl9zdGVwSW5kZXg7cmV0dXJuIHRbcl18fG51bGx9Z2V0IF9zdGVwVmFsdWUoKXtsZXQgdD10aGlzLl9jdXJyZW50U3RlcDtyZXR1cm4gdD90LnN0ZXA6MH1nZXQgX2N1cnJlbnRXYWxsVGltZSgpe2xldCB0PXRoaXMuX2N1cnJlbnRTdGVwO3JldHVybiB0P3MyKHQud2FsbF90aW1lKToiIn1fZ2V0TWF4U3RlcEluZGV4KHQpe3JldHVybiB0Lmxlbmd0aC0xfV9nZXRTYW1wbGVUZXh0KHQpe3JldHVybiBTdHJpbmcodCsxKX1faGFzTXVsdGlwbGVTYW1wbGVzKHQpe3JldHVybiB0PjF9X3VwZGF0ZVZpZXcoKXt2YXIgdD10aGlzLnNlbGVjdGVkVmlldzt0aGlzLl9tZXNoVmlld2VyJiZ0PT0iYWxsIiYmdGhpcy5fbWVzaFZpZXdlci5yZXNldFZpZXcoKX10b0xvY2FsZVN0cmluZ18odCl7cmV0dXJuIHQudG9Mb2NhbGVTdHJpbmcoKX19O2tuLnRlbXBsYXRlPVFgCiAgICA8dGYtY2FyZC1oZWFkaW5nIGNvbG9yPSJbW19ydW5Db2xvcl1dIiBjbGFzcz0idGYtbWVzaC1sb2FkZXItaGVhZGVyIj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNNdWx0aXBsZVNhbXBsZXMob2ZTYW1wbGVzKV1dIj4KICAgICAgICA8ZGl2PnNhbXBsZTogW1tfZ2V0U2FtcGxlVGV4dChzYW1wbGUpXV0gb2YgW1tvZlNhbXBsZXNdXTwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2hhc0F0TGVhc3RPbmVTdGVwKF9zdGVwcyldXSI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1yb3ciPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1sYWJlbCI+CiAgICAgICAgICAgIHN0ZXAKICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkIgogICAgICAgICAgICAgID5bW3RvTG9jYWxlU3RyaW5nXyhfc3RlcFZhbHVlKV1dPC9zcGFuCiAgICAgICAgICAgID4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1sYWJlbCBoZWFkaW5nLXJpZ2h0Ij4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19jdXJyZW50V2FsbFRpbWVdXSI+CiAgICAgICAgICAgICAgW1tfY3VycmVudFdhbGxUaW1lXV0KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwgcmlnaHQiPgogICAgICAgICAgICA8cGFwZXItc3Bpbm5lci1saXRlIGFjdGl2ZSBoaWRkZW4kPSJbWyFfaXNNZXNoTG9hZGluZ11dIj4KICAgICAgICAgICAgPC9wYXBlci1zcGlubmVyLWxpdGU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNNdWx0aXBsZVN0ZXBzKF9zdGVwcyldXSI+CiAgICAgICAgPGRpdj4KICAgICAgICAgIDxwYXBlci1zbGlkZXIKICAgICAgICAgICAgaWQ9InN0ZXBzIgogICAgICAgICAgICBpbW1lZGlhdGUtdmFsdWU9Int7X3N0ZXBJbmRleH19IgogICAgICAgICAgICBtYXg9IltbX2dldE1heFN0ZXBJbmRleChfc3RlcHMpXV0iCiAgICAgICAgICAgIG1heC1tYXJrZXJzPSJbW19nZXRNYXhTdGVwSW5kZXgoX3N0ZXBzKV1dIgogICAgICAgICAgICBzbmFwcwogICAgICAgICAgICBzdGVwPSIxIgogICAgICAgICAgICB2YWx1ZT0ie3tfc3RlcEluZGV4fX0iCiAgICAgICAgICA+PC9wYXBlci1zbGlkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L3RmLWNhcmQtaGVhZGluZz4KICAgIDxzdHlsZT4KICAgICAgcGFwZXItc2xpZGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXJnaW4tbGVmdDogMXB4OwogICAgICAgIG1hcmdpbi1yaWdodDogMXB4OwogICAgICB9CiAgICAgIC50Zi1tZXNoLWxvYWRlci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTA1cHg7CiAgICAgIH0KICAgICAgW2hpZGRlbl0gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYDtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxrbi5wcm90b3R5cGUsInJ1biIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxrbi5wcm90b3R5cGUsInRhZyIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxrbi5wcm90b3R5cGUsInNhbXBsZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk51bWJlcn0pLHcoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxrbi5wcm90b3R5cGUsIm9mU2FtcGxlcyIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxrbi5wcm90b3R5cGUsInNlbGVjdGVkVmlldyIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGtuLnByb3RvdHlwZSwiYWN0aXZlIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLEFlKV0sa24ucHJvdG90eXBlLCJyZXF1ZXN0TWFuYWdlciIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixGNildLGtuLnByb3RvdHlwZSwiX21lc2hWaWV3ZXIiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsSVApXSxrbi5wcm90b3R5cGUsIl9kYXRhUHJvdmlkZXIiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sa24ucHJvdG90eXBlLCJfY29sb3JTY2FsZUZ1bmN0aW9uIix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXksbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sa24ucHJvdG90eXBlLCJfc3RlcHMiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLGtuLnByb3RvdHlwZSwiX3N0ZXBJbmRleCIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGtuLnByb3RvdHlwZSwiX21lc2hWaWV3ZXJBdHRhY2hlZCIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGtuLnByb3RvdHlwZSwiX2NhbWVyYVBvc2l0aW9uSW5pdGlhbGl6ZWQiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxrbi5wcm90b3R5cGUsIl9pc01lc2hMb2FkaW5nIix2b2lkIDApO0UoW1J0KCJydW4iKSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxrbi5wcm90b3R5cGUsIl9ydW5Db2xvciIsbnVsbCk7RShbQnQoInJ1biIsInRhZyIsImFjdGl2ZSIsIl9kYXRhUHJvdmlkZXIiLCJfbWVzaFZpZXdlciIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sa24ucHJvdG90eXBlLCJyZWxvYWQiLG51bGwpO0UoW0J0KCJfY3VycmVudFN0ZXAuKiIsIl9tZXNoVmlld2VyIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxrbi5wcm90b3R5cGUsIl91cGRhdGVTY2VuZSIsbnVsbCk7RShbQnQoIl9jdXJyZW50U3RlcCIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sa24ucHJvdG90eXBlLCJfZGVib3VuY2VkRmV0Y2hNZXNoIixudWxsKTtFKFtSdCgiX3N0ZXBzIiwiX3N0ZXBJbmRleCIpLHcoImRlc2lnbjp0eXBlIixPYmplY3QpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGtuLnByb3RvdHlwZSwiX2N1cnJlbnRTdGVwIixudWxsKTtFKFtSdCgiX2N1cnJlbnRTdGVwIiksdygiZGVzaWduOnR5cGUiLE51bWJlciksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sa24ucHJvdG90eXBlLCJfc3RlcFZhbHVlIixudWxsKTtFKFtSdCgiX2N1cnJlbnRTdGVwIiksdygiZGVzaWduOnR5cGUiLFN0cmluZyksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sa24ucHJvdG90eXBlLCJfY3VycmVudFdhbGxUaW1lIixudWxsKTtFKFtCdCgic2VsZWN0ZWRWaWV3IiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxrbi5wcm90b3R5cGUsIl91cGRhdGVWaWV3IixudWxsKTtrbj1FKFt5dCgidGYtbWVzaC1sb2FkZXIiKV0sa24pO3ZhciBwaD1jbGFzcyBleHRlbmRzIG10e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnJlbG9hZE9uUmVhZHk9ITAsdGhpcy5fdGFnRmlsdGVyPSIuKiIsdGhpcy5fc2VsZWN0ZWRWaWV3PSJhbGwiLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBBZSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwoKT0+e3RoaXMuX2hhbmRsZVdpbmRvd1Jlc2l6ZSgpfSwhMSksdGhpcy5yZWxvYWRPblJlYWR5JiZ0aGlzLnJlbG9hZCgpfV9nZXRBbGxDaGlsZHJlbigpe3ZhciB0O3JldHVybiBBcnJheS5mcm9tKCh0PXRoaXMuc2hhZG93Um9vdCk9PW51bGw/dm9pZCAwOnQucXVlcnlTZWxlY3RvckFsbCgidGYtbWVzaC1sb2FkZXIiKSl9X29uQ2FtZXJhUG9zaXRpb25DaGFuZ2VkKHQpe3RoaXMuX3NlbGVjdGVkVmlldz09InNoYXJlIiYmdGhpcy5fZ2V0QWxsQ2hpbGRyZW4oKS5mb3JFYWNoKHI9Pnt0LnRhcmdldCE9ciYmci5zZXRDYW1lcmFWaWV3cG9pbnQodC5kZXRhaWwucG9zaXRpb24sdC5kZXRhaWwuZmFyLHQuZGV0YWlsLnRhcmdldCl9KX1fc2hvdWxkT3Blbih0KXtyZXR1cm4gdDw9Mn1yZWxvYWQoKXt0aGlzLl9mZXRjaFRhZ3MoKS50aGVuKHRoaXMuX3JlbG9hZE1lc2hlcy5iaW5kKHRoaXMpKX1faGFuZGxlV2luZG93UmVzaXplKCl7dGhpcy5fZ2V0QWxsQ2hpbGRyZW4oKS5mb3JFYWNoKHQ9Pnt0LnJlZHJhdygpfSl9X2ZldGNoVGFncygpe2xldCB0PV9lKCkucGx1Z2luUm91dGUoIm1lc2giLCIvdGFncyIpO3JldHVybiB0aGlzLl9yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4ocj0+e2lmKGx4LmlzRXF1YWwocix0aGlzLl9ydW5Ub1RhZ0luZm8pKXJldHVybjtsZXQgbj1seC5tYXBWYWx1ZXMocixvPT5PYmplY3Qua2V5cyhvKSksaT0kaShuKTt0aGlzLl9kYXRhTm90Rm91bmQ9aS5sZW5ndGg9PT0wLHRoaXMuX3J1blRvVGFnSW5mbz1yfSl9X3JlbG9hZE1lc2hlcygpe3RoaXMuX2dldEFsbENoaWxkcmVuKCkuZm9yRWFjaCh0PT57dC5yZWxvYWQoKX0pfWdldCBfY2F0ZWdvcmllcygpe3ZhciB0PXRoaXMuX3J1blRvVGFnSW5mbyxyPXRoaXMuX3NlbGVjdGVkUnVucyxuPXRoaXMuX3RhZ0ZpbHRlcjtsZXQgaT1seC5tYXBWYWx1ZXModCxsPT5PYmplY3Qua2V5cyhsKSksbz1RbChpLHIsbik7ZnVuY3Rpb24gYShsKXtsZXQgYz10W2wucnVuXVtsLnRhZ10uc2FtcGxlcztyZXR1cm4gbHgucmFuZ2UoYykubWFwKHU9Pk9iamVjdC5hc3NpZ24oe30sbCx7c2FtcGxlOnUsb2ZTYW1wbGVzOmN9KSl9cmV0dXJuIG8ubWFwKGw9Pk9iamVjdC5hc3NpZ24oe30sbCx7aXRlbXM6W10uY29uY2F0LmFwcGx5KFtdLGwuaXRlbXMubWFwKGEpKX0pKX19O3BoLnRlbXBsYXRlPVFgCiAgICA8dGYtZGFzaGJvYXJkLWxheW91dD4KICAgICAgPGRpdiBzbG90PSJzaWRlYmFyIiBjbGFzcz0iYWxsLWNvbnRyb2xzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24gdmlldy1jb250cm9sIj4KICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+UG9pbnQgb2YgdmlldzwvaDM+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPHBhcGVyLXJhZGlvLWdyb3VwCiAgICAgICAgICAgICAgICBpZD0idmlldy1yYWRpby1ncm91cCIKICAgICAgICAgICAgICAgIHNlbGVjdGVkPSJ7e19zZWxlY3RlZFZpZXd9fSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uIGlkPSJhbGwtcmFkaW8tYnV0dG9uIiBuYW1lPSJhbGwiPgogICAgICAgICAgICAgICAgICBEaXNwbGF5IGFsbCBwb2ludHMKICAgICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tYnV0dG9uPgogICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICBmb3I9ImFsbC1yYWRpby1idXR0b24iCiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICBab29tIGFuZCBjZW50ZXIgY2FtZXJhIHRvIGRpc3BsYXkgYWxsIHBvaW50cyBhdCBvbmNlLiBOb3RlLAogICAgICAgICAgICAgICAgICB0aGF0IHNvbWUgcG9pbnRzIGNvdWxkIGJlIHRvbyBmYXIgKGkuZS4gdG9vIHNtYWxsKSB0byBiZQogICAgICAgICAgICAgICAgICB2aXNpYmxlLgogICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbiBpZD0idXNlci1yYWRpby1idXR0b24iIG5hbWU9InVzZXIiPgogICAgICAgICAgICAgICAgICBDdXJyZW50IHZpZXcKICAgICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tYnV0dG9uPgogICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICBmb3I9InVzZXItcmFkaW8tYnV0dG9uIgogICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgS2VlcCBjdXJyZW50IGNhbWVyYSBwb3NpdGlvbiBhbmQgem9vbSBsZXZlbC4KICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24gaWQ9InNoYXJlLXJhZGlvLWJ1dHRvbiIgbmFtZT0ic2hhcmUiPgogICAgICAgICAgICAgICAgICBTaGFyZSB2aWV3cG9pbnQKICAgICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tYnV0dG9uPgogICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICBmb3I9InNoYXJlLXJhZGlvLWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIFNoYXJlIHZpZXdwb2ludCBhbW9uZyBhbGwgY2FtZXJhcy4KICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICA8L3BhcGVyLXJhZGlvLWdyb3VwPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiBydW5zLXNlbGVjdG9yIj4KICAgICAgICAgIDx0Zi1ydW5zLXNlbGVjdG9yIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319Ij4KICAgICAgICAgIDwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgc2xvdD0iY2VudGVyIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtd2FybmluZyI+CiAgICAgICAgICAgIDxoMz5ObyBwb2ludCBjbG91ZCBkYXRhIHdhcyBmb3VuZC48L2gzPgogICAgICAgICAgICA8cD5Qcm9iYWJsZSBjYXVzZXM6PC9wPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgWW91IGhhdmVu4oCZdCB3cml0dGVuIGFueSBwb2ludCBjbG91ZCBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuCiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGk+VGVuc29yQm9hcmQgY2Fu4oCZdCBmaW5kIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3UgdGhpbmsgVGVuc29yQm9hcmQgaXMgY29uZmlndXJlZCBwcm9wZXJseSwgcGxlYXNlIHNlZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIgogICAgICAgICAgICAgICAgPnRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXM8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPHRmLXRhZy1maWx0ZXJlciB0YWctZmlsdGVyPSJ7e190YWdGaWx0ZXJ9fSI+PC90Zi10YWctZmlsdGVyZXI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19jYXRlZ29yaWVzXV0iIGFzPSJjYXRlZ29yeSI+CiAgICAgICAgICAgIDx0Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldwogICAgICAgICAgICAgIGNhdGVnb3J5PSJbW2NhdGVnb3J5XV0iCiAgICAgICAgICAgICAgaW5pdGlhbC1vcGVuZWQ9IltbX3Nob3VsZE9wZW4oaW5kZXgpXV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGYtbWVzaC1sb2FkZXIKICAgICAgICAgICAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgICAgICAgICAgICBzZWxlY3RlZC12aWV3PSJbW19zZWxlY3RlZFZpZXddXSIKICAgICAgICAgICAgICAgICAgcnVuPSJbW2l0ZW0ucnVuXV0iCiAgICAgICAgICAgICAgICAgIHRhZz0iW1tpdGVtLnRhZ11dIgogICAgICAgICAgICAgICAgICBzYW1wbGU9IltbaXRlbS5zYW1wbGVdXSIKICAgICAgICAgICAgICAgICAgb2Ytc2FtcGxlcz0iW1tpdGVtLm9mU2FtcGxlc11dIgogICAgICAgICAgICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbX3JlcXVlc3RNYW5hZ2VyXV0iCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0Zi1tZXNoLWxvYWRlci1jb250YWluZXIiCiAgICAgICAgICAgICAgICAgIG9uLWNhbWVyYS1wb3NpdGlvbi1jaGFuZ2U9Il9vbkNhbWVyYVBvc2l0aW9uQ2hhbmdlZCIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDwvdGYtbWVzaC1sb2FkZXI+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC90Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldz4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICA8L3RmLWRhc2hib2FyZC1sYXlvdXQ+CgogICAgPHN0eWxlIGluY2x1ZGU9ImRhc2hib2FyZC1zdHlsZSI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgLm5vLWRhdGEtd2FybmluZyB7CiAgICAgICAgbWF4LXdpZHRoOiA1NDBweDsKICAgICAgICBtYXJnaW46IDgwcHggYXV0byAwIGF1dG87CiAgICAgIH0KICAgICAgcGFwZXItcmFkaW8tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA1cHg7CiAgICAgIH0KICAgICAgLnNpZGViYXItc2VjdGlvbiBoMyB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgfQoKICAgICAgLnJ1bnMtc2VsZWN0b3IgewogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgfQoKICAgICAgdGYtcnVucy1zZWxlY3RvciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQoKICAgICAgLnZpZXctY29udHJvbCB7CiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnZpZXctY29udHJvbCBoMy50aXRsZSB7CiAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5hbGxjb250cm9scyAudmlldy1jb250cm9sIHBhcGVyLXJhZGlvLWdyb3VwIHsKICAgICAgICBtYXJnaW4tdG9wOiA1cHg7CiAgICAgIH0KICAgICAgLyogTGF5b3V0IG11c3QgYmUgaG9yaXpvbnRhbCwgaS5lLiBpdGVtcyBhcnJhbmdlZCBpbiBhIHJvdy4gSWYgaXRlbXMgY2Fubm90IGZpdCBpbiBhIHJvdywKICAgICAgICogdGhleSBzaG91bGQgYmUgbW92ZWQgdG8gbmV4dCBsaW5lLiBBbGwgaXRlbXMgbXVzdCBiZSBzcXVhcmUgYXQgYWxsIHRpbWVzLiBNaW5pbXVtIHNpemUgb2YKICAgICAgICogdGhlIGl0ZW0gaXMgNDgwcHguIFRoaXMgbWVhbnMgdGhhdCBtYXhpbXVtIHNpemUgb2YgdGhlIGl0ZW0gbXVzdCBiZSA0ODBweCArIDQ3OXB4ID0gOTU5cHguCiAgICAgICAqICovCiAgICAgIC5ob3Jpem9udGFsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIHRmLW1lc2gtbG9hZGVyIHsKICAgICAgICB3aWR0aDogNDgwcHg7CiAgICAgICAgZmxleC1iYXNpczogNDgwcHg7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICA8L3N0eWxlPgogIGA7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxwaC5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLHBoLnByb3RvdHlwZSwiX3NlbGVjdGVkUnVucyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxwaC5wcm90b3R5cGUsIl9ydW5Ub1RhZ0luZm8iLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxwaC5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCk7RShbQSh7dHlwZTpTdHJpbmd9KSx3KCJkZXNpZ246dHlwZSIsU3RyaW5nKV0scGgucHJvdG90eXBlLCJfdGFnRmlsdGVyIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nLG5vdGlmeTohMH0pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxwaC5wcm90b3R5cGUsIl9zZWxlY3RlZFZpZXciLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0scGgucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCk7RShbUnQoIl9ydW5Ub1RhZ0luZm8iLCJfc2VsZWN0ZWRSdW5zIiwiX3RhZ0ZpbHRlciIpLHcoImRlc2lnbjp0eXBlIixBcnJheSksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0scGgucHJvdG90eXBlLCJfY2F0ZWdvcmllcyIsbnVsbCk7cGg9RShbeXQoIm1lc2gtZGFzaGJvYXJkIiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0scGgpO3ZhciBRVT1jbGFzcyBleHRlbmRzIEd0KG10KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5faW5zdGFsbENvbW1hbmQ9InBpcCBpbnN0YWxsIC1VIHRlbnNvcmJvYXJkLXBsdWdpbi1wcm9maWxlIn1fY29weUluc3RhbGxDb21tYW5kKCl7cmV0dXJuIFJpKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtsZXQgdD0oKT0+UmkodGhpcyxudWxsLGZ1bmN0aW9uKigpe3RoaXMuJC5jb21tYW5kVGV4dGFyZWEuc2VsZWN0KCk7dHJ5e3lpZWxkIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMuX2luc3RhbGxDb21tYW5kKX1jYXRjaChpKXtpZighZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKSlyZXR1cm4gUHJvbWlzZS5yZWplY3QoKX19KSxyPXRoaXMuJC5jb3BpZWRNZXNzYWdlO3RyeXt5aWVsZCB0KCksci5pbm5lclRleHQ9IkNvcGllZC4ifWNhdGNoKG4pe3IuaW5uZXJUZXh0PSJGYWlsZWQgdG8gY29weSB0byBjbGlwYm9hcmQuIn19KX1fcmVtb3ZlQ29waWVkTWVzc2FnZSgpe2xldCB0PXRoaXMuJC5jb3BpZWRNZXNzYWdlO3QuaW5uZXJUZXh0PSIifX07UVUudGVtcGxhdGU9UWAKICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2UiPgogICAgICA8aDM+VGhlIHByb2ZpbGUgcGx1Z2luIGhhcyBtb3ZlZC48L2gzPgogICAgICA8cD4KICAgICAgICBQbGVhc2UgaW5zdGFsbCB0aGUgbmV3IHZlcnNpb24gb2YgdGhlIHByb2ZpbGUgcGx1Z2luIGZyb20gUHlQSSBieQogICAgICAgIHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGZyb20gdGhlIG1hY2hpbmUgcnVubmluZyBUZW5zb3JCb2FyZDoKICAgICAgPC9wPgogICAgICA8dGV4dGFyZWEKICAgICAgICBpZD0iY29tbWFuZFRleHRhcmVhIgogICAgICAgIHJlYWRvbmx5PSIiCiAgICAgICAgcm93cz0iMSIKICAgICAgICBvbi1ibHVyPSJfcmVtb3ZlQ29waWVkTWVzc2FnZSIKICAgICAgPgpbW19pbnN0YWxsQ29tbWFuZF1dPC90ZXh0YXJlYQogICAgICA+CiAgICAgIDxkaXYgaWQ9ImNvcHlDb250YWluZXIiPgogICAgICAgIDxzcGFuIGlkPSJjb3BpZWRNZXNzYWdlIj48L3NwYW4+CiAgICAgICAgPHBhcGVyLWJ1dHRvbiByYWlzZWQ9IiIgb24tdGFwPSJfY29weUluc3RhbGxDb21tYW5kIgogICAgICAgICAgPkNvcHkgdG8gY2xpcGJvYXJkPC9wYXBlci1idXR0b24KICAgICAgICA+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UgewogICAgICAgIG1hcmdpbjogODBweCBhdXRvIDAgYXV0bzsKICAgICAgICBtYXgtd2lkdGg6IDU0MHB4OwogICAgICB9CiAgICAgICNjb21tYW5kVGV4dGFyZWEgewogICAgICAgIG1hcmdpbi10b3A6IDFleDsKICAgICAgICBwYWRkaW5nOiAxZXggMWVtOwogICAgICAgIHJlc2l6ZTogdmVydGljYWw7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgICAgI2NvcHlDb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KICAgICAgI2NvcGllZE1lc3NhZ2UgewogICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDFlbTsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLFFVLnByb3RvdHlwZSwiX2luc3RhbGxDb21tYW5kIix2b2lkIDApO1FVPUUoW3l0KCJ0Zi1wcm9maWxlLXJlZGlyZWN0LWRhc2hib2FyZCIpXSxRVSk7dmFyIGNtPUVlKE9lKCksMSk7dmFyIEZsPUVlKE9lKCksMSksdHE9RWUoU2woKSwxKTt2YXIgbm49Y2xhc3MgZXh0ZW5kcyBtdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fZXhwYW5kZWQ9ITEsdGhpcy5fcnVuVG9QckN1cnZlRW50cnk9e30sdGhpcy5fcHJldmlvdXNSdW5Ub1ByQ3VydmVFbnRyeT17fSx0aGlzLl9jb2xvclNjYWxlRnVuY3Rpb249e3NjYWxlOmZufSx0aGlzLl9jYW5jZWxsZXI9bmV3IGFuLHRoaXMuX3hDb21wb25lbnRzQ3JlYXRpb25NZXRob2Q9KCk9PntsZXQgdD1uZXcgdHEuU2NhbGVzLkxpbmVhcjtyZXR1cm57c2NhbGU6dCxheGlzOm5ldyB0cS5BeGVzLk51bWVyaWModCwiYm90dG9tIiksYWNjZXNzb3I6cj0+ci5yZWNhbGx9fSx0aGlzLl95VmFsdWVBY2Nlc3Nvcj10PT50LnByZWNpc2lvbix0aGlzLl90b29sdGlwQ29sdW1ucz0oKCk9PntsZXQgdD1XdShyMCkscj1uPT5pc05hTihuKT8iTmFOIjp0KG4pO3JldHVyblt7dGl0bGU6IlJ1biIsZXZhbHVhdGU6bj0+bi5kYXRhc2V0Lm1ldGFkYXRhKCkubmFtZX0se3RpdGxlOiJUaHJlc2hvbGQiLGV2YWx1YXRlOm49PnIobi5kYXR1bS50aHJlc2hvbGRzKX0se3RpdGxlOiJQcmVjaXNpb24iLGV2YWx1YXRlOm49PnIobi5kYXR1bS5wcmVjaXNpb24pfSx7dGl0bGU6IlJlY2FsbCIsZXZhbHVhdGU6bj0+cihuLmRhdHVtLnJlY2FsbCl9LHt0aXRsZToiVFAiLGV2YWx1YXRlOm49Pm4uZGF0dW0udHJ1ZV9wb3NpdGl2ZXN9LHt0aXRsZToiRlAiLGV2YWx1YXRlOm49Pm4uZGF0dW0uZmFsc2VfcG9zaXRpdmVzfSx7dGl0bGU6IlROIixldmFsdWF0ZTpuPT5uLmRhdHVtLnRydWVfbmVnYXRpdmVzfSx7dGl0bGU6IkZOIixldmFsdWF0ZTpuPT5uLmRhdHVtLmZhbHNlX25lZ2F0aXZlc31dfSkoKSx0aGlzLl9zZXJpZXNEYXRhRmllbGRzPVsidGhyZXNob2xkcyIsInByZWNpc2lvbiIsInJlY2FsbCIsInRydWVfcG9zaXRpdmVzIiwiZmFsc2VfcG9zaXRpdmVzIiwidHJ1ZV9uZWdhdGl2ZXMiLCJmYWxzZV9uZWdhdGl2ZXMiXSx0aGlzLl9kZWZhdWx0WFJhbmdlPVstLjA1LDEuMDVdLHRoaXMuX2RlZmF1bHRZUmFuZ2U9Wy0uMDUsMS4wNV0sdGhpcy5fcmVxdWVzdERhdGE9KHQscixuKT0+e2xldCBvPV9lKCkucGx1Z2luUm91dGUoInByX2N1cnZlcyIsIi9wcl9jdXJ2ZXMiKTtQcm9taXNlLmFsbCh0Lm1hcChhPT57bGV0IHM9YSxsPXRoaXMudGFnLGM9TWkobyx7dGFnOmwscnVuOnN9KTtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KGMpLnRoZW4odT0+dm9pZCByKHtpdGVtOmEsZGF0YTp1fSkpfSkpLmZpbmFsbHkoKCk9PnZvaWQgbigpKX0sdGhpcy5fc21vb3RoaW5nRW5hYmxlZD0hMX1fY3JlYXRlUHJvY2Vzc0RhdGFGdW5jdGlvbigpe3JldHVybih0LHIsbik9Pnt0aGlzLnNldCgiX3J1blRvRGF0YU92ZXJUaW1lIixPYmplY3QuYXNzaWduKHt9LHRoaXMuX3J1blRvRGF0YU92ZXJUaW1lLG4pKX19X2NvbXB1dGVSdW5Db2xvcih0KXtyZXR1cm4gZm4odCl9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuX2F0dGFjaGVkPSEwLHRoaXMucmVsb2FkKCl9X2dldENoYXJ0RGF0YUxvYWRlcigpe3ZhciB0O3JldHVybih0PXRoaXMuc2hhZG93Um9vdCk9PW51bGw/dm9pZCAwOnQucXVlcnlTZWxlY3RvcigidGYtbGluZS1jaGFydC1kYXRhLWxvYWRlciIpfXJlbG9hZCgpe2lmKCEhdGhpcy5fYXR0YWNoZWQpe2lmKHRoaXMucnVucy5sZW5ndGg9PT0wKXt0aGlzLnNldCgiX3J1blRvRGF0YU92ZXJUaW1lIix7fSk7cmV0dXJufXRoaXMuX2dldENoYXJ0RGF0YUxvYWRlcigpLnJlbG9hZCgpfX1fc2V0Q2hhcnREYXRhKCl7dmFyIHQ9dGhpcy5fcnVuVG9QckN1cnZlRW50cnkscj10aGlzLl9wcmV2aW91c1J1blRvUHJDdXJ2ZUVudHJ5LG49dGhpcy5fc2V0T2ZSZWxldmFudFJ1bnM7RmwuZm9yT3duKHQsKGksbyk9PntsZXQgYT1yW29dO2lmKCEoYSYmdFtvXS5zdGVwPT09YS5zdGVwKSl7aWYoIW5bb10pe3RoaXMuX2NsZWFyU2VyaWVzRGF0YShvKTtyZXR1cm59dGhpcy5fdXBkYXRlU2VyaWVzRGF0YUZvclJ1bihvLGkpfX0pfV91cGRhdGVTZXJpZXNEYXRhRm9yUnVuKHQscil7bGV0IG49RmwucmVkdWNlKHRoaXMuX3Nlcmllc0RhdGFGaWVsZHMsKGEscyk9PihhW3NdPXJbc10uc2xpY2UoKS5yZXZlcnNlKCksYSkse30pLGk9bmV3IEFycmF5KG5bdGhpcy5fc2VyaWVzRGF0YUZpZWxkc1swXV0ubGVuZ3RoKTtmb3IobGV0IGE9MDthPGkubGVuZ3RoO2ErKylpW2FdPUZsLm1hcFZhbHVlcyhuLHM9PnNbYV0pO2xldCBvPXRoaXMuX2dldENoYXJ0RGF0YUxvYWRlcigpO28uc2V0U2VyaWVzRGF0YSh0LGkpLG8uY29tbWl0Q2hhbmdlcygpfV9jbGVhclNlcmllc0RhdGEodCl7bGV0IHI9dGhpcy5fZ2V0Q2hhcnREYXRhTG9hZGVyKCk7ci5zZXRTZXJpZXNEYXRhKHQsW10pLHIuY29tbWl0Q2hhbmdlcygpfV91cGRhdGVSdW5Ub1ByQ3VydmVFbnRyeSgpe3ZhciB0PXRoaXMuX3J1blRvRGF0YU92ZXJUaW1lLHI9dGhpcy5ydW5Ub1N0ZXBDYXA7bGV0IG49e307RmwuZm9yT3duKHQsKGksbyk9PnshaXx8IWkubGVuZ3RofHwobltvXT10aGlzLl9jb21wdXRlRW50cnlDbG9zZXN0T3JFcXVhbFRvU3RlcENhcChyW29dLGkpKX0pLHRoaXMuc2V0KCJfcHJldmlvdXNSdW5Ub1ByQ3VydmVFbnRyeSIsdGhpcy5fcnVuVG9QckN1cnZlRW50cnkpLHRoaXMuc2V0KCJfcnVuVG9QckN1cnZlRW50cnkiLG4pfV9ub3RpZnlEYXRhQ2hhbmdlKCl7dmFyIHQ9dGhpcy5fcnVuVG9EYXRhT3ZlclRpbWU7dGhpcy5vbkRhdGFDaGFuZ2UmJnRoaXMub25EYXRhQ2hhbmdlKHQpfV9jb21wdXRlRW50cnlDbG9zZXN0T3JFcXVhbFRvU3RlcENhcCh0LHIpe2xldCBuPU1hdGgubWluKEZsLnNvcnRlZEluZGV4KHIubWFwKGk9Pmkuc3RlcCksdCksci5sZW5ndGgtMSk7cmV0dXJuIHJbbl19Z2V0IF9ydW5zV2l0aFN0ZXBBdmFpbGFibGUoKXt2YXIgdD10aGlzLnJ1bnMscj10aGlzLl9ydW5Ub1ByQ3VydmVFbnRyeTtyZXR1cm4gRmwuZmlsdGVyKHQsbj0+cltuXSkuc29ydCgpfWdldCBfc2V0T2ZSZWxldmFudFJ1bnMoKXt2YXIgdD10aGlzLl9ydW5zV2l0aFN0ZXBBdmFpbGFibGU7bGV0IHI9e307cmV0dXJuIEZsLmZvckVhY2godCxuPT57cltuXT0hMH0pLHJ9X2NvbXB1dGVDdXJyZW50U3RlcEZvclJ1bih0LHIpe2xldCBuPXRbcl07cmV0dXJuIG4/bi5zdGVwOm51bGx9X2NvbXB1dGVDdXJyZW50V2FsbFRpbWVGb3JSdW4odCxyKXtsZXQgbj10W3JdO3JldHVybiBuP25ldyBEYXRlKG4ud2FsbF90aW1lKjFlMykudG9TdHJpbmcoKTpudWxsfV90b2dnbGVFeHBhbmRlZCh0KXt0aGlzLnNldCgiX2V4cGFuZGVkIiwhdGhpcy5fZXhwYW5kZWQpLHRoaXMucmVkcmF3KCl9X3Jlc2V0RG9tYWluKCl7dGhpcy5fZ2V0Q2hhcnREYXRhTG9hZGVyKCkucmVzZXREb21haW4oKX1yZWRyYXcoKXt0aGlzLl9nZXRDaGFydERhdGFMb2FkZXIoKS5yZWRyYXcoKX19O25uLnRlbXBsYXRlPVFgCiAgICA8dGYtY2FyZC1oZWFkaW5nCiAgICAgIHRhZz0iW1t0YWddXSIKICAgICAgZGlzcGxheS1uYW1lPSJbW3RhZ01ldGFkYXRhLmRpc3BsYXlOYW1lXV0iCiAgICAgIGRlc2NyaXB0aW9uPSJbW3RhZ01ldGFkYXRhLmRlc2NyaXB0aW9uXV0iCiAgICA+PC90Zi1jYXJkLWhlYWRpbmc+CgogICAgPHRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXIKICAgICAgeC1jb21wb25lbnRzLWNyZWF0aW9uLW1ldGhvZD0iW1tfeENvbXBvbmVudHNDcmVhdGlvbk1ldGhvZF1dIgogICAgICB5LXZhbHVlLWFjY2Vzc29yPSJbW195VmFsdWVBY2Nlc3Nvcl1dIgogICAgICB0b29sdGlwLWNvbHVtbnM9IltbX3Rvb2x0aXBDb2x1bW5zXV0iCiAgICAgIGNvbG9yLXNjYWxlPSJbW19jb2xvclNjYWxlRnVuY3Rpb25dXSIKICAgICAgZGVmYXVsdC14LXJhbmdlPSJbW19kZWZhdWx0WFJhbmdlXV0iCiAgICAgIGRlZmF1bHQteS1yYW5nZT0iW1tfZGVmYXVsdFlSYW5nZV1dIgogICAgICBzbW9vdGhpbmctZW5hYmxlZD0iW1tfc21vb3RoaW5nRW5hYmxlZF1dIgogICAgICByZXF1ZXN0LW1hbmFnZXI9IltbcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgZGF0YS10by1sb2FkPSJbW3J1bnNdXSIKICAgICAgZGF0YS1zZXJpZXM9IltbcnVuc11dIgogICAgICBsb2FkLWtleT0iW1t0YWddXSIKICAgICAgcmVxdWVzdC1kYXRhPSJbW19yZXF1ZXN0RGF0YV1dIgogICAgICBsb2FkLWRhdGEtY2FsbGJhY2s9IltbX2NyZWF0ZVByb2Nlc3NEYXRhRnVuY3Rpb24oKV1dIgogICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICA+PC90Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyPgoKICAgIDxkaXYgaWQ9ImJ1dHRvbnMtcm93Ij4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgc2VsZWN0ZWQkPSJbW19leHBhbmRlZF1dIgogICAgICAgIGljb249ImZ1bGxzY3JlZW4iCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlRXhwYW5kZWQiCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBpY29uPSJzZXR0aW5ncy1vdmVyc2NhbiIKICAgICAgICBvbi10YXA9Il9yZXNldERvbWFpbiIKICAgICAgICB0aXRsZT0iUmVzZXQgYXhlcyB0byBbMCwgMV0uIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9InN0ZXAtbGVnZW5kIj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfcnVuc1dpdGhTdGVwQXZhaWxhYmxlXV0iIGFzPSJydW4iPgogICAgICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1yb3ciPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0iY29sb3ItYm94IgogICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZDogW1tfY29tcHV0ZVJ1bkNvbG9yKHJ1bildXTsiCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICBbW3J1bl1dIGlzIGF0CiAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RlcC1sYWJlbC10ZXh0Ij4KICAgICAgICAgICAgc3RlcCBbW19jb21wdXRlQ3VycmVudFN0ZXBGb3JSdW4oX3J1blRvUHJDdXJ2ZUVudHJ5LCBydW4pXV0gPC9zcGFuCiAgICAgICAgICA+PGJyIC8+CiAgICAgICAgICA8c3BhbiBjbGFzcz0id2FsbC10aW1lLWxhYmVsLXRleHQiPgogICAgICAgICAgICAoW1tfY29tcHV0ZUN1cnJlbnRXYWxsVGltZUZvclJ1bihfcnVuVG9QckN1cnZlRW50cnksIHJ1bildXSkKICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvZGl2PgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICB3aWR0aDogNTAwcHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgIH0KICAgICAgOmhvc3QoW19leHBhbmRlZF0pIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICB0Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyIHsKICAgICAgICBoZWlnaHQ6IDMwMHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQogICAgICA6aG9zdChbX2V4cGFuZGVkXSkgdGYtbGluZS1jaGFydC1kYXRhLWxvYWRlciB7CiAgICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgfQogICAgICAjYnV0dG9ucy1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgfQogICAgICAjYnV0dG9ucy1yb3cgcGFwZXItaWNvbi1idXR0b24gewogICAgICAgIGNvbG9yOiAjMjE5NmYzOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgfQogICAgICAjYnV0dG9ucy1yb3cgcGFwZXItaWNvbi1idXR0b25bc2VsZWN0ZWRdIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICB9CiAgICAgICNzdGVwLWxlZ2VuZCB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBmb250LXNpemU6IDAuOGVtOwogICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogMCAwIDAgMTBweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAubGVnZW5kLXJvdyB7CiAgICAgICAgbWFyZ2luOiA1cHggMCA1cHggMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAuY29sb3ItYm94IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4OwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgfQogICAgICAuc3RlcC1sYWJlbC10ZXh0IHsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgfQogICAgICAud2FsbC10aW1lLWxhYmVsLXRleHQgewogICAgICAgIGNvbG9yOiAjODg4OwogICAgICAgIGZvbnQtc2l6ZTogMC44ZW07CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYDtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sbm4ucHJvdG90eXBlLCJydW5zIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLG5uLnByb3RvdHlwZSwidGFnIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLG5uLnByb3RvdHlwZSwidGFnTWV0YWRhdGEiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sbm4ucHJvdG90eXBlLCJydW5Ub1N0ZXBDYXAiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsQWUpXSxubi5wcm90b3R5cGUsInJlcXVlc3RNYW5hZ2VyIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sbm4ucHJvdG90eXBlLCJhY3RpdmUiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sbm4ucHJvdG90eXBlLCJfZXhwYW5kZWQiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sbm4ucHJvdG90eXBlLCJfcnVuVG9QckN1cnZlRW50cnkiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sbm4ucHJvdG90eXBlLCJfcHJldmlvdXNSdW5Ub1ByQ3VydmVFbnRyeSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxubi5wcm90b3R5cGUsIl9ydW5Ub0RhdGFPdmVyVGltZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLG5uLnByb3RvdHlwZSwib25EYXRhQ2hhbmdlIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLG5uLnByb3RvdHlwZSwiX2NvbG9yU2NhbGVGdW5jdGlvbiIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixhbildLG5uLnByb3RvdHlwZSwiX2NhbmNlbGxlciIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLG5uLnByb3RvdHlwZSwiX2F0dGFjaGVkIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLG5uLnByb3RvdHlwZSwiX3hDb21wb25lbnRzQ3JlYXRpb25NZXRob2QiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sbm4ucHJvdG90eXBlLCJfeVZhbHVlQWNjZXNzb3IiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLG5uLnByb3RvdHlwZSwiX3Rvb2x0aXBDb2x1bW5zIix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSxubi5wcm90b3R5cGUsIl9zZXJpZXNEYXRhRmllbGRzIix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSxubi5wcm90b3R5cGUsIl9kZWZhdWx0WFJhbmdlIix2b2lkIDApO0UoW0Eoe3R5cGU6QXJyYXl9KSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpXSxubi5wcm90b3R5cGUsIl9kZWZhdWx0WVJhbmdlIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sbm4ucHJvdG90eXBlLCJfcmVxdWVzdERhdGEiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxubi5wcm90b3R5cGUsIl9zbW9vdGhpbmdFbmFibGVkIix2b2lkIDApO0UoW0J0KCJydW5zIiwidGFnIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxubi5wcm90b3R5cGUsInJlbG9hZCIsbnVsbCk7RShbQnQoIl9ydW5Ub1ByQ3VydmVFbnRyeSIsIl9wcmV2aW91c1J1blRvUHJDdXJ2ZUVudHJ5IiwiX3NldE9mUmVsZXZhbnRSdW5zIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxubi5wcm90b3R5cGUsIl9zZXRDaGFydERhdGEiLG51bGwpO0UoW0J0KCJfcnVuVG9EYXRhT3ZlclRpbWUiLCJydW5Ub1N0ZXBDYXAiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLG5uLnByb3RvdHlwZSwiX3VwZGF0ZVJ1blRvUHJDdXJ2ZUVudHJ5IixudWxsKTtFKFtCdCgiX3J1blRvRGF0YU92ZXJUaW1lIiksdygiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pLHcoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxubi5wcm90b3R5cGUsIl9ub3RpZnlEYXRhQ2hhbmdlIixudWxsKTtFKFtSdCgicnVucyIsIl9ydW5Ub1ByQ3VydmVFbnRyeSIpLHcoImRlc2lnbjp0eXBlIixBcnJheSksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sbm4ucHJvdG90eXBlLCJfcnVuc1dpdGhTdGVwQXZhaWxhYmxlIixudWxsKTtFKFtSdCgiX3J1bnNXaXRoU3RlcEF2YWlsYWJsZSIpLHcoImRlc2lnbjp0eXBlIixPYmplY3QpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLG5uLnByb3RvdHlwZSwiX3NldE9mUmVsZXZhbnRSdW5zIixudWxsKTtubj1FKFt5dCgidGYtcHItY3VydmUtY2FyZCIpXSxubik7dmFyIFNNPUVlKE9lKCksMSk7dmFyIHJwPWNsYXNzIGV4dGVuZHMgbXR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3J1blRvU3RlcEluZGV4PXt9fV9jb21wdXRlQ29sb3JGb3JSdW4odCl7cmV0dXJuIGZuKHQpfV9jb21wdXRlVGltZVRleHRGb3JSdW4odCxyLG4saSl7bGV0IG89cltuXTtpZighU00uaXNOdW1iZXIobykpcmV0dXJuIiI7bGV0IGE9dFtuXTtpZighYSlyZXR1cm4iIjtsZXQgcz1hW29dW2ldO2lmKGk9PT0ic3RlcCIpcmV0dXJuYHN0ZXAgJHtzfWA7aWYoaT09PSJyZWxhdGl2ZSIpcmV0dXJuIHM8MT9gJHsocyoxZTMpLnRvRml4ZWQoMil9IG1zYDpgJHtzLnRvRml4ZWQoMil9IHNgO2lmKGk9PT0id2FsbF90aW1lIilyZXR1cm4gbmV3IERhdGUocyoxZTMpLnRvU3RyaW5nKCk7dGhyb3cgbmV3IEVycm9yKGBUaGUgZGlzcGxheSB0eXBlIG9mICR7aX0gaXMgbm90IHJlY29nbml6ZWQuYCl9X3NsaWRlclZhbHVlQ2hhbmdlZCh0KXtsZXQgcj10LnRhcmdldC5kYXRhc2V0LnJ1bixuPXQudGFyZ2V0LmltbWVkaWF0ZVZhbHVlLGk9T2JqZWN0LmFzc2lnbih7fSx0aGlzLl9ydW5Ub1N0ZXBJbmRleCk7aXNOYU4obik/ZGVsZXRlIGlbcl06aVtyXT10LnRhcmdldC5pbW1lZGlhdGVWYWx1ZSx0aGlzLl9ydW5Ub1N0ZXBJbmRleD1pfV9jb21wdXRlTWF4U3RlcEluZGV4Rm9yUnVuKHQscil7bGV0IG49dFtyXTtyZXR1cm4gbiYmbi5sZW5ndGg/bi5sZW5ndGgtMTowfV91cGRhdGVTdGVwc0Zvck5ld1J1bnMoKXt2YXIgdD10aGlzLnJ1blRvQXZhaWxhYmxlVGltZUVudHJpZXM7bGV0IHI9T2JqZWN0LmFzc2lnbih7fSx0aGlzLl9ydW5Ub1N0ZXBJbmRleCk7U00uZm9yT3duKHQsKG4saSk9PntTTS5pc051bWJlcihyW2ldKXx8KHJbaV09bi5sZW5ndGgtMSl9KSx0aGlzLl9ydW5Ub1N0ZXBJbmRleD1yfV9nZXRTdGVwKHQscil7cmV0dXJuIHRoaXMuX3J1blRvU3RlcEluZGV4P3RoaXMuX3J1blRvU3RlcEluZGV4W3JdOjB9X2NvbXB1dGVSdW5Ub1N0ZXAodCxyKXtsZXQgbj17fTtyZXR1cm4gU00uZm9yT3duKHIsKGksbyk9PntsZXQgYT10W29dOyFhfHwobltvXT1hW2ldLnN0ZXApfSksbn1nZXQgX3J1bnNXaXRoU2xpZGVycygpe3ZhciB0PXRoaXMucnVucyxyPXRoaXMucnVuVG9BdmFpbGFibGVUaW1lRW50cmllcztyZXR1cm4gdC5maWx0ZXIobj0+cltuXSl9fTtycC50ZW1wbGF0ZT1RYAogICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfcnVuc1dpdGhTbGlkZXJzXV0iIGFzPSJydW4iPgogICAgICA8ZGl2IGNsYXNzPSJydW4td2lkZ2V0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJydW4tZGlzcGxheS1jb250YWluZXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0icnVuLWNvbG9yLWJveCIKICAgICAgICAgICAgc3R5bGU9ImJhY2tncm91bmQ6W1tfY29tcHV0ZUNvbG9yRm9yUnVuKHJ1bildXTsiCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJydW4tdGV4dCI+W1tydW5dXTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InN0ZXAtZGlzcGxheS1jb250YWluZXIiPgogICAgICAgICAgW1tfY29tcHV0ZVRpbWVUZXh0Rm9yUnVuKHJ1blRvQXZhaWxhYmxlVGltZUVudHJpZXMsIF9ydW5Ub1N0ZXBJbmRleCwKICAgICAgICAgIHJ1biwgdGltZURpc3BsYXlUeXBlKV1dCiAgICAgICAgPC9kaXY+CiAgICAgICAgPHBhcGVyLXNsaWRlcgogICAgICAgICAgZGF0YS1ydW4kPSJbW3J1bl1dIgogICAgICAgICAgc3RlcD0iMSIKICAgICAgICAgIHR5cGU9Im51bWJlciIKICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgIG1heD0iW1tfY29tcHV0ZU1heFN0ZXBJbmRleEZvclJ1bihydW5Ub0F2YWlsYWJsZVRpbWVFbnRyaWVzLCBydW4pXV0iCiAgICAgICAgICB2YWx1ZT0iW1tfZ2V0U3RlcChfcnVuVG9TdGVwSW5kZXgsIHJ1bildXSIKICAgICAgICAgIG9uLWltbWVkaWF0ZS12YWx1ZS1jaGFuZ2VkPSJfc2xpZGVyVmFsdWVDaGFuZ2VkIgogICAgICAgID48L3BhcGVyLXNsaWRlcj4KICAgICAgPC9kaXY+CiAgICA8L3RlbXBsYXRlPgogICAgPHN0eWxlPgogICAgICAucnVuLXdpZGdldCB7CiAgICAgICAgbWFyZ2luOiAxMHB4IDAgMCAwOwogICAgICB9CiAgICAgIHBhcGVyLXNsaWRlciB7CiAgICAgICAgbWFyZ2luOiAtOHB4IDAgMCAtMTVweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAuc3RlcC1kaXNwbGF5LWNvbnRhaW5lciB7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgICBtYXJnaW46IDAgMTVweCAwIDA7CiAgICAgIH0KICAgICAgLnJ1bi10ZXh0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KICAgICAgLnJ1bi1jb2xvci1ib3ggewogICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CiAgICA8L3N0eWxlPgogIGA7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLHJwLnByb3RvdHlwZSwicnVucyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxycC5wcm90b3R5cGUsInJ1blRvQXZhaWxhYmxlVGltZUVudHJpZXMiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLGNvbXB1dGVkOiJfY29tcHV0ZVJ1blRvU3RlcChydW5Ub0F2YWlsYWJsZVRpbWVFbnRyaWVzLCBfcnVuVG9TdGVwSW5kZXgpIn0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxycC5wcm90b3R5cGUsInJ1blRvU3RlcCIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxycC5wcm90b3R5cGUsInRpbWVEaXNwbGF5VHlwZSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxycC5wcm90b3R5cGUsIl9ydW5Ub1N0ZXBJbmRleCIsdm9pZCAwKTtFKFtCdCgicnVuVG9BdmFpbGFibGVUaW1lRW50cmllcyIpLHcoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSx3KCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0scnAucHJvdG90eXBlLCJfdXBkYXRlU3RlcHNGb3JOZXdSdW5zIixudWxsKTtFKFtSdCgicnVucyIsInJ1blRvQXZhaWxhYmxlVGltZUVudHJpZXMiKSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLHJwLnByb3RvdHlwZSwiX3J1bnNXaXRoU2xpZGVycyIsbnVsbCk7cnA9RShbeXQoInRmLXByLWN1cnZlLXN0ZXBzLXNlbGVjdG9yIildLHJwKTt2YXIga289Y2xhc3MgZXh0ZW5kcyBHdChtdCl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVsb2FkT25SZWFkeT0hMCx0aGlzLl90aW1lRGlzcGxheVR5cGU9InN0ZXAiLHRoaXMuX3NlbGVjdGVkUnVucz1bXSx0aGlzLl9ydW5Ub1RhZ0luZm89e30sdGhpcy5fdGFnVG9SdW5Ub0RhdGE9e30sdGhpcy5fZ2V0Q2F0ZWdvcnlJdGVtS2V5PXQ9PnQudGFnLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBBZSx0aGlzLl9zdGVwPTB9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMucmVsb2FkT25SZWFkeSYmdGhpcy5yZWxvYWQoKX1yZWxvYWQoKXtQcm9taXNlLmFsbChbdGhpcy5fZmV0Y2hUYWdzKCldKS50aGVuKCgpPT57dGhpcy5fcmVsb2FkQ2FyZHMoKX0pfV9zaG91bGRPcGVuKHQpe3JldHVybiB0PD0yfV9mZXRjaFRhZ3MoKXtsZXQgdD1fZSgpLnBsdWdpblJvdXRlKCJwcl9jdXJ2ZXMiLCIvdGFncyIpO3JldHVybiB0aGlzLl9yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4ocj0+e2lmKGNtLmlzRXF1YWwocix0aGlzLl9ydW5Ub1RhZ0luZm8pKXJldHVybjtsZXQgbj1jbS5tYXBWYWx1ZXMocixvPT5jbS5rZXlzKG8pKSxpPSRpKG4pO3RoaXMuc2V0KCJfZGF0YU5vdEZvdW5kIixpLmxlbmd0aD09PTApLHRoaXMuc2V0KCJfcnVuVG9UYWdJbmZvIixyKSx0aGlzLmFzeW5jKCgpPT57dGhpcy5zZXQoIl9jYXRlZ29yaWVzRG9tUmVhZHkiLCEwKX0pfSl9X3JlbG9hZENhcmRzKCl7dmFyIHQ7Y20uZm9yRWFjaCgodD10aGlzLnJvb3QpPT1udWxsP3ZvaWQgMDp0LnF1ZXJ5U2VsZWN0b3JBbGwoInRmLXByLWN1cnZlLWNhcmQiKSxyPT57ci5yZWxvYWQoKX0pfWdldCBfY2F0ZWdvcmllcygpe3ZhciB0PXRoaXMuX3J1blRvVGFnSW5mbyxyPXRoaXMuX3NlbGVjdGVkUnVucyxuPXRoaXMuX3RhZ0ZpbHRlcjtsZXQgaT1jbS5tYXBWYWx1ZXModCxvPT5PYmplY3Qua2V5cyhvKSk7cmV0dXJuIGhFKGkscixuKX1nZXQgX3JlbGV2YW50U2VsZWN0ZWRSdW5zKCl7dmFyIHQ9dGhpcy5fc2VsZWN0ZWRSdW5zLHI9dGhpcy5fcnVuVG9UYWdJbmZvO3JldHVybiB0LmZpbHRlcihuPT5yW25dKX1fdGFnTWV0YWRhdGEodCxyLG4pe2xldCBpPXt9O3IuZm9yRWFjaChhPT57aVthXT10W2FdW25dfSk7bGV0IG89bi5yZXBsYWNlKC9cL3ByX2N1cnZlcyQvLCIiKTtyZXR1cm4gb1IoaSxvKX1fY3JlYXRlRGF0YUNoYW5nZUNhbGxiYWNrKHQpe3JldHVybiByPT57dGhpcy5zZXQoIl90YWdUb1J1blRvRGF0YSIseWgoaWEoe30sdGhpcy5fdGFnVG9SdW5Ub0RhdGEpLHtbdF06cn0pKX19Z2V0IF9ydW5Ub0F2YWlsYWJsZVRpbWVFbnRyaWVzKCl7dmFyIHQ9dGhpcy5fdGFnVG9SdW5Ub0RhdGE7bGV0IHI9e307Zm9yKGxldFtpLG9db2YgT2JqZWN0LmVudHJpZXModCkpZm9yKGxldFthXW9mIE9iamVjdC5lbnRyaWVzKG8pKShyW2FdPT1udWxsfHxpPHJbYV0pJiYoclthXT1pKTtsZXQgbj17fTtmb3IobGV0W2ksb11vZiBPYmplY3QuZW50cmllcyhyKSl7bGV0IGE9dFtvXVtpXTtuW2ldPWEubWFwKHM9Pih7c3RlcDpzLnN0ZXAsd2FsbF90aW1lOnMud2FsbF90aW1lLHJlbGF0aXZlOnMud2FsbF90aW1lLWFbMF0ud2FsbF90aW1lfSkpfXJldHVybiBufX07a28udGVtcGxhdGU9UWAKICAgIDx0Zi1kYXNoYm9hcmQtbGF5b3V0PgogICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyIiBzbG90PSJzaWRlYmFyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtb3B0aW9uLXNlbGVjdG9yCiAgICAgICAgICAgICAgaWQ9InRpbWUtdHlwZS1zZWxlY3RvciIKICAgICAgICAgICAgICBuYW1lPSJUaW1lIERpc3BsYXkgVHlwZSIKICAgICAgICAgICAgICBzZWxlY3RlZC1pZD0ie3tfdGltZURpc3BsYXlUeXBlfX0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIGlkPSJzdGVwIj5zdGVwPC9wYXBlci1idXR0b24+CiAgICAgICAgICAgICAgPCEtLQogICAgICAgICAgICAtLT4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIGlkPSJyZWxhdGl2ZSI+cmVsYXRpdmU8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgICA8IS0tCiAgICAgICAgICAgIC0tPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9IndhbGxfdGltZSI+d2FsbDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICA8L3RmLW9wdGlvbi1zZWxlY3Rvcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19ydW5Ub0F2YWlsYWJsZVRpbWVFbnRyaWVzXV0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iIGlkPSJzdGVwcy1zZWxlY3Rvci1jb250YWluZXIiPgogICAgICAgICAgICAgIDx0Zi1wci1jdXJ2ZS1zdGVwcy1zZWxlY3RvcgogICAgICAgICAgICAgICAgcnVucz0iW1tfcmVsZXZhbnRTZWxlY3RlZFJ1bnNdXSIKICAgICAgICAgICAgICAgIHJ1bi10by1zdGVwPSJ7e19ydW5Ub1N0ZXB9fSIKICAgICAgICAgICAgICAgIHJ1bi10by1hdmFpbGFibGUtdGltZS1lbnRyaWVzPSJbW19ydW5Ub0F2YWlsYWJsZVRpbWVFbnRyaWVzXV0iCiAgICAgICAgICAgICAgICB0aW1lLWRpc3BsYXktdHlwZT0iW1tfdGltZURpc3BsYXlUeXBlXV0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvdGYtcHItY3VydmUtc3RlcHMtc2VsZWN0b3I+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24gcnVucy1zZWxlY3RvciI+CiAgICAgICAgICA8dGYtcnVucy1zZWxlY3RvciBzZWxlY3RlZC1ydW5zPSJ7e19zZWxlY3RlZFJ1bnN9fSI+CiAgICAgICAgICA8L3RmLXJ1bnMtc2VsZWN0b3I+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjZW50ZXIiIHNsb3Q9ImNlbnRlciI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuby1kYXRhLXdhcm5pbmciPgogICAgICAgICAgICA8aDM+Tm8gcHJlY2lzaW9u4oCTcmVjYWxsIGN1cnZlIGRhdGEgd2FzIGZvdW5kLjwvaDM+CiAgICAgICAgICAgIDxwPlByb2JhYmxlIGNhdXNlczo8L3A+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICBZb3UgaGF2ZW7igJl0IHdyaXR0ZW4gYW55IHByZWNpc2lvbuKAk3JlY2FsbCBkYXRhIHRvIHlvdXIgZXZlbnQKICAgICAgICAgICAgICAgIGZpbGVzLgogICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgPGxpPlRlbnNvckJvYXJkIGNhbuKAmXQgZmluZCB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3UgdGhpbmsgVGVuc29yQm9hcmQgaXMgY29uZmlndXJlZCBwcm9wZXJseSwgcGxlYXNlIHNlZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIgogICAgICAgICAgICAgICAgPnRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXM8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPHRmLXRhZy1maWx0ZXJlciB0YWctZmlsdGVyPSJ7e190YWdGaWx0ZXJ9fSI+PC90Zi10YWctZmlsdGVyZXI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19jYXRlZ29yaWVzXV0iIGFzPSJjYXRlZ29yeSI+CiAgICAgICAgICAgIDx0Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldwogICAgICAgICAgICAgIGNhdGVnb3J5PSJbW2NhdGVnb3J5XV0iCiAgICAgICAgICAgICAgaW5pdGlhbC1vcGVuZWQ9IltbX3Nob3VsZE9wZW4oaW5kZXgpXV0iCiAgICAgICAgICAgICAgZ2V0LWNhdGVnb3J5LWl0ZW0ta2V5PSJbW19nZXRDYXRlZ29yeUl0ZW1LZXldXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0Zi1wci1jdXJ2ZS1jYXJkCiAgICAgICAgICAgICAgICAgIGFjdGl2ZT0iW1thY3RpdmVdXSIKICAgICAgICAgICAgICAgICAgcnVucz0iW1tpdGVtLnJ1bnNdXSIKICAgICAgICAgICAgICAgICAgdGFnPSJbW2l0ZW0udGFnXV0iCiAgICAgICAgICAgICAgICAgIHRhZy1tZXRhZGF0YT0iW1tfdGFnTWV0YWRhdGEoX3J1blRvVGFnSW5mbywgaXRlbS5ydW5zLCBpdGVtLnRhZyldXSIKICAgICAgICAgICAgICAgICAgcmVxdWVzdC1tYW5hZ2VyPSJbW19yZXF1ZXN0TWFuYWdlcl1dIgogICAgICAgICAgICAgICAgICBydW4tdG8tc3RlcC1jYXA9IltbX3J1blRvU3RlcF1dIgogICAgICAgICAgICAgICAgICBvbi1kYXRhLWNoYW5nZT0iW1tfY3JlYXRlRGF0YUNoYW5nZUNhbGxiYWNrKGl0ZW0udGFnKV1dIgogICAgICAgICAgICAgICAgPjwvdGYtcHItY3VydmUtY2FyZD4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3RmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvdGYtZGFzaGJvYXJkLWxheW91dD4KCiAgICA8c3R5bGUgaW5jbHVkZT0iZGFzaGJvYXJkLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICAubm8tZGF0YS13YXJuaW5nIHsKICAgICAgICBtYXgtd2lkdGg6IDU0MHB4OwogICAgICAgIG1hcmdpbjogODBweCBhdXRvIDAgYXV0bzsKICAgICAgfQoKICAgICAgLyoqIERvIG5vdCBsZXQgdGhlIHN0ZXBzIHNlbGVjdG9yIG9jY2x1ZGUgdGhlIHJ1biBzZWxlY3Rvci4gKi8KICAgICAgI3N0ZXBzLXNlbGVjdG9yLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LWhlaWdodDogNjAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYDtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGtvLnByb3RvdHlwZSwicmVsb2FkT25SZWFkeSIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxrby5wcm90b3R5cGUsIl90aW1lRGlzcGxheVR5cGUiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLGtvLnByb3RvdHlwZSwiX3NlbGVjdGVkUnVucyIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxrby5wcm90b3R5cGUsIl9ydW5Ub1RhZ0luZm8iLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sa28ucHJvdG90eXBlLCJfdGFnVG9SdW5Ub0RhdGEiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLGtvLnByb3RvdHlwZSwiX3J1blRvU3RlcCIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGtvLnByb3RvdHlwZSwiX2RhdGFOb3RGb3VuZCIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxrby5wcm90b3R5cGUsIl90YWdGaWx0ZXIiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxrby5wcm90b3R5cGUsIl9jYXRlZ29yaWVzRG9tUmVhZHkiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sa28ucHJvdG90eXBlLCJfZ2V0Q2F0ZWdvcnlJdGVtS2V5Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLEFlKV0sa28ucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLGtvLnByb3RvdHlwZSwiX3N0ZXAiLHZvaWQgMCk7RShbUnQoIl9ydW5Ub1RhZ0luZm8iLCJfc2VsZWN0ZWRSdW5zIiwiX3RhZ0ZpbHRlciIsIl9jYXRlZ29yaWVzRG9tUmVhZHkiKSx3KCJkZXNpZ246dHlwZSIsQXJyYXkpLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGtvLnByb3RvdHlwZSwiX2NhdGVnb3JpZXMiLG51bGwpO0UoW1J0KCJfc2VsZWN0ZWRSdW5zIiwiX3J1blRvVGFnSW5mbyIpLHcoImRlc2lnbjp0eXBlIixBcnJheSksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sa28ucHJvdG90eXBlLCJfcmVsZXZhbnRTZWxlY3RlZFJ1bnMiLG51bGwpO0UoW1J0KCJfdGFnVG9SdW5Ub0RhdGEiKSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxrby5wcm90b3R5cGUsIl9ydW5Ub0F2YWlsYWJsZVRpbWVFbnRyaWVzIixudWxsKTtrbz1FKFt5dCgidGYtcHItY3VydmUtZGFzaGJvYXJkIildLGtvKTt2YXIgQjY9RWUoT2UoKSwxKTt2YXIgdW89Y2xhc3MgZXh0ZW5kcyBHdChuYil7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVsb2FkT25SZWFkeT0hMCx0aGlzLl9zaG93RG93bmxvYWRMaW5rcz14cCgiX3Nob3dEb3dubG9hZExpbmtzIix7ZGVmYXVsdFZhbHVlOiExLHVzZUxvY2FsU3RvcmFnZTohMH0pLmNhbGwodGhpcyksdGhpcy5fc21vb3RoaW5nV2VpZ2h0PV9FKCJfc21vb3RoaW5nV2VpZ2h0Iix7ZGVmYXVsdFZhbHVlOi42fSkuY2FsbCh0aGlzKSx0aGlzLl9pZ25vcmVZT3V0bGllcnM9eHAoIl9pZ25vcmVZT3V0bGllcnMiLHtkZWZhdWx0VmFsdWU6ITAsdXNlTG9jYWxTdG9yYWdlOiEwfSkuY2FsbCh0aGlzKSx0aGlzLl94VHlwZT1UZC5TVEVQLHRoaXMuX3NlbGVjdGVkUnVucz1bXSx0aGlzLl90YWdGaWx0ZXI9IiIsdGhpcy5fY2F0ZWdvcmllcz1bXSx0aGlzLl9nZXRDYXRlZ29yeUl0ZW1LZXk9dD0+dC50YWcsdGhpcy5fcmVxdWVzdE1hbmFnZXI9bmV3IEFlKDUwKSx0aGlzLl9zaG93RG93bmxvYWRMaW5rc09ic2VydmVyPWJwKCJfc2hvd0Rvd25sb2FkTGlua3MiLHtkZWZhdWx0VmFsdWU6ITEsdXNlTG9jYWxTdG9yYWdlOiEwfSksdGhpcy5fc21vb3RoaW5nV2VpZ2h0T2JzZXJ2ZXI9eUUoIl9zbW9vdGhpbmdXZWlnaHQiLHtkZWZhdWx0VmFsdWU6LjZ9KSx0aGlzLl9pZ25vcmVZT3V0bGllcnNPYnNlcnZlcj1icCgiX2lnbm9yZVlPdXRsaWVycyIse2RlZmF1bHRWYWx1ZTohMCx1c2VMb2NhbFN0b3JhZ2U6ITB9KX1nZXQgX3Ntb290aGluZ0VuYWJsZWQoKXt2YXIgdD10aGlzLl9zbW9vdGhpbmdXZWlnaHQ7cmV0dXJuIHQ+MH1fZ2V0Q2F0ZWdvcnlLZXkodCl7cmV0dXJuIHQubWV0YWRhdGEudHlwZT09RGEuU0VBUkNIX1JFU1VMVFM/IiI6dC5uYW1lfV9zaG91bGRPcGVuKHQpe3JldHVybiB0PD0yfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9cmVsb2FkKCl7dGhpcy5fZmV0Y2hUYWdzKCkudGhlbigoKT0+e3RoaXMuX3JlbG9hZENoYXJ0cygpfSl9X2ZldGNoVGFncygpe2xldCB0PV9lKCkucGx1Z2luUm91dGUoInNjYWxhcnMiLCIvdGFncyIpO3JldHVybiB0aGlzLl9yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4ocj0+e2lmKEI2LmlzRXF1YWwocix0aGlzLl9ydW5Ub1RhZ0luZm8pKXJldHVybjtsZXQgbj1CNi5tYXBWYWx1ZXMocixvPT5PYmplY3Qua2V5cyhvKSksaT0kaShuKTt0aGlzLnNldCgiX2RhdGFOb3RGb3VuZCIsaS5sZW5ndGg9PT0wKSx0aGlzLnNldCgiX3J1blRvVGFnSW5mbyIsciksdGhpcy5hc3luYygoKT0+e3RoaXMuc2V0KCJfY2F0ZWdvcmllc0RvbVJlYWR5IiwhMCl9KX0pfV9yZWxvYWRDaGFydHMoKXt2YXIgdDsodD10aGlzLnJvb3QpPT1udWxsfHx0LnF1ZXJ5U2VsZWN0b3JBbGwoInRmLXNjYWxhci1jYXJkIikuZm9yRWFjaChyPT57ci5yZWxvYWQoKX0pfV91cGRhdGVDYXRlZ29yaWVzKCl7dmFyIHQ9dGhpcy5fcnVuVG9UYWdJbmZvLHI9dGhpcy5fc2VsZWN0ZWRSdW5zLG49dGhpcy5fdGFnRmlsdGVyO2xldCBpLG89bixhPUI2Lm1hcFZhbHVlcyh0LHM9Pk9iamVjdC5rZXlzKHMpKTtpPWhFKGEscixvKSxpLmZvckVhY2gocz0+e3MuaXRlbXM9cy5pdGVtcy5tYXAobD0+KHt0YWc6bC50YWcsc2VyaWVzOmwucnVucy5tYXAoYz0+KHtydW46Yyx0YWc6bC50YWd9KSl9KSl9KSx0aGlzLnVwZGF0ZUFycmF5UHJvcCgiX2NhdGVnb3JpZXMiLGksdGhpcy5fZ2V0Q2F0ZWdvcnlLZXkpfV90YWdNZXRhZGF0YSh0LHIsbil7bGV0IGk9dC5uYW1lLG89bi50YWcsYT17fTtuLnNlcmllcy5mb3JFYWNoKCh7cnVuOnV9KT0+e2FbdV09clt1XVtvXX0pO2xldCBzPW8ucmVwbGFjZSgvXC9zY2FsYXJfc3VtbWFyeSQvLCIiKSx7ZGVzY3JpcHRpb246bCxkaXNwbGF5TmFtZTpjfT1vUihhLHMpO3JldHVybiB0Lm1ldGFkYXRhLnR5cGU9PURhLlBSRUZJWF9HUk9VUCYmYy5zdGFydHNXaXRoKGkrIi8iKSYmKGM9Yy5zbGljZShpLmxlbmd0aCsxKSkse2Rlc2NyaXB0aW9uOmwsZGlzcGxheU5hbWU6Y319fTt1by50ZW1wbGF0ZT1RYAogICAgPHRmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiIHNsb3Q9InNpZGViYXIiPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtaXRlbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94CiAgICAgICAgICAgICAgICBpZD0ic2hvdy1kb3dubG9hZC1saW5rcyIKICAgICAgICAgICAgICAgIGNoZWNrZWQ9Int7X3Nob3dEb3dubG9hZExpbmtzfX0iCiAgICAgICAgICAgICAgICA+U2hvdyBkYXRhIGRvd25sb2FkIGxpbmtzPC9wYXBlci1jaGVja2JveAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtaXRlbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94CiAgICAgICAgICAgICAgICBpZD0iaWdub3JlLXktb3V0bGllciIKICAgICAgICAgICAgICAgIGNoZWNrZWQ9Int7X2lnbm9yZVlPdXRsaWVyc319IgogICAgICAgICAgICAgICAgPklnbm9yZSBvdXRsaWVycyBpbiBjaGFydCBzY2FsaW5nPC9wYXBlci1jaGVja2JveAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgaWQ9InRvb2x0aXAtc29ydGluZyI+CiAgICAgICAgICAgICAgPGRpdj5Ub29sdGlwIHNvcnRpbmcgbWV0aG9kOjwvZGl2PgogICAgICAgICAgICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgICAgICAgICAgICBuby1sYWJlbC1mbG9hdAogICAgICAgICAgICAgICAgc2VsZWN0ZWQtaXRlbS1sYWJlbD0ie3tfdG9vbHRpcFNvcnRpbmdNZXRob2R9fSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItbGlzdGJveAogICAgICAgICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24tY29udGVudCIKICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9IjAiCiAgICAgICAgICAgICAgICAgIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmRlZmF1bHQ8L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmRlc2NlbmRpbmc8L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPmFzY2VuZGluZzwvcGFwZXItaXRlbT4KICAgICAgICAgICAgICAgICAgPHBhcGVyLWl0ZW0+bmVhcmVzdDwvcGFwZXItaXRlbT4KICAgICAgICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtc21vb3RoaW5nLWlucHV0CiAgICAgICAgICAgICAgd2VpZ2h0PSJ7e19zbW9vdGhpbmdXZWlnaHR9fSIKICAgICAgICAgICAgICBzdGVwPSIwLjAwMSIKICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgbWF4PSIwLjk5OSIKICAgICAgICAgICAgPjwvdGYtc21vb3RoaW5nLWlucHV0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtb3B0aW9uLXNlbGVjdG9yCiAgICAgICAgICAgICAgaWQ9IngtdHlwZS1zZWxlY3RvciIKICAgICAgICAgICAgICBuYW1lPSJIb3Jpem9udGFsIEF4aXMiCiAgICAgICAgICAgICAgc2VsZWN0ZWQtaWQ9Int7X3hUeXBlfX0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIGlkPSJzdGVwIj5zdGVwPC9wYXBlci1idXR0b24KICAgICAgICAgICAgICA+PCEtLQogICAgICAgICAgICAtLT48cGFwZXItYnV0dG9uIGlkPSJyZWxhdGl2ZSI+cmVsYXRpdmU8L3BhcGVyLWJ1dHRvbgogICAgICAgICAgICAgID48IS0tCiAgICAgICAgICAgIC0tPjxwYXBlci1idXR0b24gaWQ9IndhbGxfdGltZSI+d2FsbDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICA8L3RmLW9wdGlvbi1zZWxlY3Rvcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiBydW5zLXNlbGVjdG9yIj4KICAgICAgICAgIDx0Zi1ydW5zLXNlbGVjdG9yIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319Ij4KICAgICAgICAgIDwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNlbnRlciIgc2xvdD0iY2VudGVyIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtd2FybmluZyI+CiAgICAgICAgICAgIDxoMz5ObyBzY2FsYXIgZGF0YSB3YXMgZm91bmQuPC9oMz4KICAgICAgICAgICAgPHA+UHJvYmFibGUgY2F1c2VzOjwvcD4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT5Zb3UgaGF2ZW7igJl0IHdyaXR0ZW4gYW55IHNjYWxhciBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgICA8bGk+VGVuc29yQm9hcmQgY2Fu4oCZdCBmaW5kIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3UgdGhpbmsgVGVuc29yQm9hcmQgaXMgY29uZmlndXJlZCBwcm9wZXJseSwgcGxlYXNlIHNlZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIgogICAgICAgICAgICAgICAgPnRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXM8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPHRmLXRhZy1maWx0ZXJlciB0YWctZmlsdGVyPSJ7e190YWdGaWx0ZXJ9fSI+PC90Zi10YWctZmlsdGVyZXI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19jYXRlZ29yaWVzXV0iIGFzPSJjYXRlZ29yeSI+CiAgICAgICAgICAgIDx0Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldwogICAgICAgICAgICAgIGNhdGVnb3J5PSJbW2NhdGVnb3J5XV0iCiAgICAgICAgICAgICAgaW5pdGlhbC1vcGVuZWQ9IltbX3Nob3VsZE9wZW4oaW5kZXgpXV0iCiAgICAgICAgICAgICAgZ2V0LWNhdGVnb3J5LWl0ZW0ta2V5PSJbW19nZXRDYXRlZ29yeUl0ZW1LZXldXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0Zi1zY2FsYXItY2FyZAogICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgIGRhdGEtdG8tbG9hZD0iW1tpdGVtLnNlcmllc11dIgogICAgICAgICAgICAgICAgICBpZ25vcmUteS1vdXRsaWVycz0iW1tfaWdub3JlWU91dGxpZXJzXV0iCiAgICAgICAgICAgICAgICAgIG11bHRpLWV4cGVyaW1lbnRzPSJbW19nZXRNdWx0aUV4cGVyaW1lbnRzKGRhdGFTZWxlY3Rpb24pXV0iCiAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgICAgc2hvdy1kb3dubG9hZC1saW5rcz0iW1tfc2hvd0Rvd25sb2FkTGlua3NdXSIKICAgICAgICAgICAgICAgICAgc21vb3RoaW5nLWVuYWJsZWQ9IltbX3Ntb290aGluZ0VuYWJsZWRdXSIKICAgICAgICAgICAgICAgICAgc21vb3RoaW5nLXdlaWdodD0iW1tfc21vb3RoaW5nV2VpZ2h0XV0iCiAgICAgICAgICAgICAgICAgIHRhZy1tZXRhZGF0YT0iW1tfdGFnTWV0YWRhdGEoY2F0ZWdvcnksIF9ydW5Ub1RhZ0luZm8sIGl0ZW0pXV0iCiAgICAgICAgICAgICAgICAgIHRhZz0iW1tpdGVtLnRhZ11dIgogICAgICAgICAgICAgICAgICB0b29sdGlwLXNvcnRpbmctbWV0aG9kPSJbW190b29sdGlwU29ydGluZ01ldGhvZF1dIgogICAgICAgICAgICAgICAgICB4LXR5cGU9IltbX3hUeXBlXV0iCiAgICAgICAgICAgICAgICAgIGJhdGNoLXNpemU9IltbZmVhdHVyZUZsYWdzLnNjYWxhcnNCYXRjaFNpemVdXSIKICAgICAgICAgICAgICAgICAgaW4tY29sYWI9IltbZmVhdHVyZUZsYWdzLmluQ29sYWJdXSIKICAgICAgICAgICAgICAgID48L3RmLXNjYWxhci1jYXJkPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvdGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXc+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC90Zi1kYXNoYm9hcmQtbGF5b3V0PgoKICAgIDxzdHlsZSBpbmNsdWRlPSJkYXNoYm9hcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgICN0b29sdGlwLXNvcnRpbmcgewogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTVweDsKICAgICAgfQoKICAgICAgI3Rvb2x0aXAtc29ydGluZyBwYXBlci1kcm9wZG93bi1tZW51IHsKICAgICAgICBtYXJnaW4tbGVmdDogMTBweDsKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1mb2N1cy1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgd2lkdGg6IDEwNXB4OwogICAgICB9CgogICAgICAubGluZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nLXRvcDogNXB4OwogICAgICB9CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CiAgICAgIC5jZW50ZXIgewogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sdW8ucHJvdG90eXBlLCJyZWxvYWRPblJlYWR5Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLHVvLnByb3RvdHlwZSwiZmVhdHVyZUZsYWdzIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbixub3RpZnk6ITAsb2JzZXJ2ZXI6Il9zaG93RG93bmxvYWRMaW5rc09ic2VydmVyIn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sdW8ucHJvdG90eXBlLCJfc2hvd0Rvd25sb2FkTGlua3MiLHZvaWQgMCk7RShbQSh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwLG9ic2VydmVyOiJfc21vb3RoaW5nV2VpZ2h0T2JzZXJ2ZXIifSksdygiZGVzaWduOnR5cGUiLE51bWJlcildLHVvLnByb3RvdHlwZSwiX3Ntb290aGluZ1dlaWdodCIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW4sb2JzZXJ2ZXI6Il9pZ25vcmVZT3V0bGllcnNPYnNlcnZlciJ9KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHVvLnByb3RvdHlwZSwiX2lnbm9yZVlPdXRsaWVycyIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx1by5wcm90b3R5cGUsIl94VHlwZSIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sdW8ucHJvdG90eXBlLCJfc2VsZWN0ZWRSdW5zIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLHVvLnByb3RvdHlwZSwiX3J1blRvVGFnSW5mbyIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHVvLnByb3RvdHlwZSwiX2RhdGFOb3RGb3VuZCIsdm9pZCAwKTtFKFtBKHt0eXBlOlN0cmluZ30pLHcoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx1by5wcm90b3R5cGUsIl90YWdGaWx0ZXIiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSx1by5wcm90b3R5cGUsIl9jYXRlZ29yaWVzRG9tUmVhZHkiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLHVvLnByb3RvdHlwZSwiX2NhdGVnb3JpZXMiLHZvaWQgMCk7RShbQSh7dHlwZTpPYmplY3R9KSx3KCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sdW8ucHJvdG90eXBlLCJfZ2V0Q2F0ZWdvcnlJdGVtS2V5Iix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLEFlKV0sdW8ucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCk7RShbUnQoIl9zbW9vdGhpbmdXZWlnaHQiKSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbiksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sdW8ucHJvdG90eXBlLCJfc21vb3RoaW5nRW5hYmxlZCIsbnVsbCk7RShbQnQoIl9ydW5Ub1RhZ0luZm8iLCJfc2VsZWN0ZWRSdW5zIiwiX3RhZ0ZpbHRlciIsIl9jYXRlZ29yaWVzRG9tUmVhZHkiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLHVvLnByb3RvdHlwZSwiX3VwZGF0ZUNhdGVnb3JpZXMiLG51bGwpO3VvPUUoW3l0KCJ0Zi1zY2FsYXItZGFzaGJvYXJkIildLHVvKTt2YXIgY3BlPUVlKE9lKCksMSk7dmFyIGRoPWNsYXNzIGV4dGVuZHMgR3QobXQpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl90ZXh0cz1bXSx0aGlzLl9jYW5jZWxsZXI9bmV3IGFufWdldCBfcnVuQ29sb3IoKXt2YXIgdD10aGlzLnJ1bjtyZXR1cm4gZm4odCl9X2NoYW5nZVJ1bkNvbG9yKCl7dmFyIHQ9dGhpcy5fcnVuQ29sb3I7dGhpcy51cGRhdGVTdHlsZXMoeyItLXRiLXRleHQtbG9hZGVyLW91dGxpbmUiOnR9KX1hdHRhY2hlZCgpe3RoaXMucmVsb2FkKCl9cmVsb2FkKCl7aWYoIXRoaXMuaXNBdHRhY2hlZClyZXR1cm47dGhpcy5fY2FuY2VsbGVyLmNhbmNlbEFsbCgpO2xldCB0PV9lKCkscj1NaSh0LnBsdWdpblJvdXRlKCJ0ZXh0IiwiL3RleHQiKSx7dGFnOnRoaXMudGFnLHJ1bjp0aGlzLnJ1bixtYXJrZG93bjp0aGlzLm1hcmtkb3duRW5hYmxlZD8idHJ1ZSI6ImZhbHNlIn0pLG49dGhpcy5fY2FuY2VsbGVyLmNhbmNlbGxhYmxlKGk9PntpZihpLmNhbmNlbGxlZClyZXR1cm47bGV0IG89aS52YWx1ZS5tYXAoYT0+KHt3YWxsX3RpbWU6bmV3IERhdGUoYS53YWxsX3RpbWUqMWUzKSxzdGVwOmEuc3RlcCx0ZXh0OmEudGV4dH0pKTt0aGlzLnNldCgiX3RleHRzIixvLnNsaWNlKCkucmV2ZXJzZSgpKX0pO3RoaXMucmVxdWVzdE1hbmFnZXIucmVxdWVzdChyKS50aGVuKG4pfV9mb3JtYXRTdGVwKHQpe3JldHVybiB4bigiLCIpKHQpfX07ZGgudGVtcGxhdGU9UWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcgcnVuPSJbW3J1bl1dIiB0YWc9IltbdGFnXV0iIGNvbG9yPSJbW19ydW5Db2xvcl1dIj4KICAgIDwvdGYtY2FyZC1oZWFkaW5nPgogICAgPHBhcGVyLW1hdGVyaWFsCiAgICAgIGVsZXZhdGlvbj0iMSIKICAgICAgaWQ9InN0ZXBzLWNvbnRhaW5lciIKICAgICAgY2xhc3M9ImNvbnRhaW5lciBzY3JvbGxiYXIiCiAgICA+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX3RleHRzXV0iPgogICAgICAgIDxwYXBlci1tYXRlcmlhbCBlbGV2YXRpb249IjEiIGNsYXNzPSJzdGVwLWNvbnRhaW5lciI+CiAgICAgICAgICBzdGVwIDxzcGFuIGNsYXNzPSJzdGVwLXZhbHVlIj5bW19mb3JtYXRTdGVwKGl0ZW0uc3RlcCldXTwvc3Bhbj4KICAgICAgICA8L3BhcGVyLW1hdGVyaWFsPgogICAgICAgIDxwYXBlci1tYXRlcmlhbCBlbGV2YXRpb249IjEiIGNsYXNzPSJ0ZXh0Ij4KICAgICAgICAgIDx0Zi1tYXJrZG93bi12aWV3IGh0bWw9IltbaXRlbS50ZXh0XV0iPjwvdGYtbWFya2Rvd24tdmlldz4KICAgICAgICA8L3BhcGVyLW1hdGVyaWFsPgogICAgICA8L3RlbXBsYXRlPgogICAgPC9wYXBlci1tYXRlcmlhbD4KICAgIDxzdHlsZSBpbmNsdWRlPSJzY3JvbGxiYXItc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICB9CiAgICAgIC5zY3JvbGxiYXIgewogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KICAgICAgI3N0ZXBzLWNvbnRhaW5lciB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIC8qIGNvbG9yIGNvbXB1dGVkIGFuZCBzZXQgYXMgaW5saW5lIHN0eWxlICovOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10Yi10ZXh0LWxvYWRlci1vdXRsaW5lKTsKICAgICAgfQogICAgICAudGV4dCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDNweCAzcHggM3B4OwogICAgICAgIHBhZGRpbmc6IDVweDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgICB9CiAgICAgIC5zdGVwLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGItdWktbGlnaHQtYWNjZW50KTsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRiLXVpLWJvcmRlcik7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7IC8qIHRvIGNvcnJlY3QgZm9yIGJvcmRlciAqLwogICAgICAgIHBhZGRpbmc6IDNweDsKICAgICAgfQogICAgICAuc3RlcC1jb250YWluZXI6bm90KDpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDE1cHg7CiAgICAgIH0KCiAgICAgIHRmLWNhcmQtaGVhZGluZyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLGRoLnByb3RvdHlwZSwicnVuIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLGRoLnByb3RvdHlwZSwidGFnIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sZGgucHJvdG90eXBlLCJtYXJrZG93bkVuYWJsZWQiLHZvaWQgMCk7RShbQSh7dHlwZTpBcnJheX0pLHcoImRlc2lnbjp0eXBlIixBcnJheSldLGRoLnByb3RvdHlwZSwiX3RleHRzIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLEFlKV0sZGgucHJvdG90eXBlLCJyZXF1ZXN0TWFuYWdlciIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixhbildLGRoLnByb3RvdHlwZSwiX2NhbmNlbGxlciIsdm9pZCAwKTtFKFtSdCgicnVuIiksdygiZGVzaWduOnR5cGUiLFN0cmluZyksdygiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sZGgucHJvdG90eXBlLCJfcnVuQ29sb3IiLG51bGwpO0UoW0J0KCJfcnVuQ29sb3IiKSx3KCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLHcoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksdygiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGRoLnByb3RvdHlwZSwiX2NoYW5nZVJ1bkNvbG9yIixudWxsKTtkaD1FKFt5dCgidGYtdGV4dC1sb2FkZXIiKV0sZGgpO3ZhciBRYz1jbGFzcyBleHRlbmRzIEd0KG10KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZWxvYWRPblJlYWR5PSEwLHRoaXMuX21hcmtkb3duRW5hYmxlZD14cCgiX21hcmtkb3duRW5hYmxlZCIse2RlZmF1bHRWYWx1ZTohMCx1c2VMb2NhbFN0b3JhZ2U6ITB9KS5jYWxsKHRoaXMpLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyBBZSx0aGlzLl9tYXJrZG93bkVuYWJsZWRTdG9yYWdlT2JzZXJ2ZXI9YnAoIl9tYXJrZG93bkVuYWJsZWQiLHtkZWZhdWx0VmFsdWU6ITAsdXNlTG9jYWxTdG9yYWdlOiEwfSl9c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9tYXJrZG93bkVuYWJsZWRPYnNlcnZlcihfbWFya2Rvd25FbmFibGVkKSJdfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9cmVsb2FkKCl7dGhpcy5fZmV0Y2hUYWdzKCkudGhlbigoKT0+e3RoaXMuX3JlbG9hZFRleHRzKCl9KX1fc2hvdWxkT3Blbih0KXtyZXR1cm4gdDw9Mn1fZmV0Y2hUYWdzKCl7bGV0IHQ9X2UoKS5wbHVnaW5Sb3V0ZSgidGV4dCIsIi90YWdzIik7cmV0dXJuIHRoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodCkudGhlbihyPT57aWYoY3BlLmlzRXF1YWwocix0aGlzLl9ydW5Ub1RhZykpcmV0dXJuO2xldCBuPSRpKHIpO3RoaXMuc2V0KCJfZGF0YU5vdEZvdW5kIixuLmxlbmd0aD09PTApLHRoaXMuc2V0KCJfcnVuVG9UYWciLHIpLHRoaXMuYXN5bmMoKCk9Pnt0aGlzLnNldCgiX2NhdGVnb3JpZXNEb21SZWFkeSIsITApfSl9KX1fcmVsb2FkVGV4dHMoKXt2YXIgdDsodD10aGlzLnJvb3QpPT1udWxsfHx0LnF1ZXJ5U2VsZWN0b3JBbGwoInRmLXRleHQtbG9hZGVyIikuZm9yRWFjaChyPT57ci5yZWxvYWQoKX0pfWdldCBfY2F0ZWdvcmllcygpe3ZhciB0PXRoaXMuX3J1blRvVGFnLHI9dGhpcy5fc2VsZWN0ZWRSdW5zLG49dGhpcy5fdGFnRmlsdGVyO3JldHVybiBRbCh0LHIsbil9X21hcmtkb3duRW5hYmxlZE9ic2VydmVyKCl7dGhpcy5fcmVsb2FkVGV4dHMoKX19O1FjLnRlbXBsYXRlPVFgCiAgICA8dGYtZGFzaGJvYXJkLWxheW91dD4KICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhciIgc2xvdD0ic2lkZWJhciI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtaXRlbSI+CiAgICAgICAgICAgIDxwYXBlci1jaGVja2JveCBjaGVja2VkPSJ7e19tYXJrZG93bkVuYWJsZWR9fSIKICAgICAgICAgICAgICA+RW5hYmxlIE1hcmtkb3duPC9wYXBlci1jaGVja2JveAogICAgICAgICAgICA+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24gcnVucy1zZWxlY3RvciI+CiAgICAgICAgICA8dGYtcnVucy1zZWxlY3RvciBzZWxlY3RlZC1ydW5zPSJ7e19zZWxlY3RlZFJ1bnN9fSI+CiAgICAgICAgICA8L3RmLXJ1bnMtc2VsZWN0b3I+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjZW50ZXIiIHNsb3Q9ImNlbnRlciI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuby1kYXRhLXdhcm5pbmciPgogICAgICAgICAgICA8aDM+Tm8gdGV4dCBkYXRhIHdhcyBmb3VuZC48L2gzPgogICAgICAgICAgICA8cD5Qcm9iYWJsZSBjYXVzZXM6PC9wPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPllvdSBoYXZlbuKAmXQgd3JpdHRlbiBhbnkgdGV4dCBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgICA8bGk+VGVuc29yQm9hcmQgY2Fu4oCZdCBmaW5kIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3UgdGhpbmsgVGVuc29yQm9hcmQgaXMgY29uZmlndXJlZCBwcm9wZXJseSwgcGxlYXNlIHNlZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIgogICAgICAgICAgICAgICAgPnRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXM8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPHRmLXRhZy1maWx0ZXJlciB0YWctZmlsdGVyPSJ7e190YWdGaWx0ZXJ9fSI+PC90Zi10YWctZmlsdGVyZXI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19jYXRlZ29yaWVzXV0iIGFzPSJjYXRlZ29yeSI+CiAgICAgICAgICAgIDx0Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldwogICAgICAgICAgICAgIGNhdGVnb3J5PSJbW2NhdGVnb3J5XV0iCiAgICAgICAgICAgICAgaW5pdGlhbC1vcGVuZWQ9IltbX3Nob3VsZE9wZW4oaW5kZXgpXV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGYtdGV4dC1sb2FkZXIKICAgICAgICAgICAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgICAgICAgICAgICB0YWc9IltbaXRlbS50YWddXSIKICAgICAgICAgICAgICAgICAgcnVuPSJbW2l0ZW0ucnVuXV0iCiAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgICAgbWFya2Rvd24tZW5hYmxlZD0iW1tfbWFya2Rvd25FbmFibGVkXV0iCiAgICAgICAgICAgICAgICA+PC90Zi10ZXh0LWxvYWRlcj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3RmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvdGYtZGFzaGJvYXJkLWxheW91dD4KICAgIDxzdHlsZSBpbmNsdWRlPSJkYXNoYm9hcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CiAgICA8L3N0eWxlPgogIGA7RShbQSh7dHlwZTpCb29sZWFufSksdygiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxRYy5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCk7RShbQSh7dHlwZTpCb29sZWFuLG5vdGlmeTohMCxvYnNlcnZlcjoiX21hcmtkb3duRW5hYmxlZFN0b3JhZ2VPYnNlcnZlciJ9KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFFjLnByb3RvdHlwZSwiX21hcmtkb3duRW5hYmxlZCIsdm9pZCAwKTtFKFtBKHt0eXBlOkFycmF5fSksdygiZGVzaWduOnR5cGUiLEFycmF5KV0sUWMucHJvdG90eXBlLCJfc2VsZWN0ZWRSdW5zIix2b2lkIDApO0UoW0Eoe3R5cGU6T2JqZWN0fSksdygiZGVzaWduOnR5cGUiLE9iamVjdCldLFFjLnByb3RvdHlwZSwiX3J1blRvVGFnIix2b2lkIDApO0UoW0Eoe3R5cGU6Qm9vbGVhbn0pLHcoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sUWMucHJvdG90eXBlLCJfZGF0YU5vdEZvdW5kIix2b2lkIDApO0UoW0Eoe3R5cGU6U3RyaW5nfSksdygiZGVzaWduOnR5cGUiLFN0cmluZyldLFFjLnByb3RvdHlwZSwiX3RhZ0ZpbHRlciIsdm9pZCAwKTtFKFtBKHt0eXBlOkJvb2xlYW59KSx3KCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFFjLnByb3RvdHlwZSwiX2NhdGVnb3JpZXNEb21SZWFkeSIsdm9pZCAwKTtFKFtBKHt0eXBlOk9iamVjdH0pLHcoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRYy5wcm90b3R5cGUsIl9yZXF1ZXN0TWFuYWdlciIsdm9pZCAwKTtFKFtSdCgiX3J1blRvVGFnIiwiX3NlbGVjdGVkUnVucyIsIl90YWdGaWx0ZXIiLCJfY2F0ZWdvcmllc0RvbVJlYWR5IiksdygiZGVzaWduOnR5cGUiLEFycmF5KSx3KCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxRYy5wcm90b3R5cGUsIl9jYXRlZ29yaWVzIixudWxsKTtRYz1FKFt5dCgidGYtdGV4dC1kYXNoYm9hcmQiKV0sUWMpO3ZhciBWaHQ9Y2xhc3MgZXh0ZW5kcyBHdChtdCl7fTtWaHQudGVtcGxhdGU9UWAKICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2UiPgogICAgICA8aDM+VGhlIFdoYXQtSWYgVG9vbCBpcyBubyBsb25nZXIgc3VwcG9ydGVkLjwvaDM+CiAgICAgIDxwPgogICAgICAgIFRoZQogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vcGFpci1jb2RlLmdpdGh1Yi5pby9saXQvIgogICAgICAgICAgPkxlYXJuaW5nIEludGVycHJldGFiaWxpdHkgVG9vbCAoTElUKTwvYQogICAgICAgID4KICAgICAgICBpcyBhbiBhY3RpdmVseSBtYWludGFpbmVkIGFsdGVybmF0aXZlLiBQbGVhc2UgZm9sbG93IHRoZSBpbnN0cnVjdGlvbnMKICAgICAgICA8YSBocmVmPSJodHRwczovL3BhaXItY29kZS5naXRodWIuaW8vbGl0L3NldHVwLyI+aGVyZTwvYT4gdG8gaW5zdGFsbCBhbmQKICAgICAgICB1c2UgdGhpcyB0b29sLgogICAgICA8L3A+CiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIH0KCiAgICAgICAgLm1lc3NhZ2UgewogICAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICAgICAgbWF4LXdpZHRoOiA1NDBweDsKICAgICAgICB9CiAgICAgICAgI2NvbW1hbmRUZXh0YXJlYSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxZXg7CiAgICAgICAgICBwYWRkaW5nOiAxZXggMWVtOwogICAgICAgICAgcmVzaXplOiB2ZXJ0aWNhbDsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIH0KICAgICAgICAjY29weUNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIH0KICAgICAgICAjY29waWVkTWVzc2FnZSB7CiAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07CiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICA8L2Rpdj4KICBgO1ZodD1FKFt5dCgidGYtd2l0LXJlZGlyZWN0LWRhc2hib2FyZCIpXSxWaHQpO3ZhciB1cGU9Y2xhc3MgZXh0ZW5kcyBtdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fdGVtcGxhdGU9bnVsbCx0aGlzLnRmX2JhY2tlbmQ9UkJ9fTt1cGU9RShbeXQoInRmLWJhY2tlbmQiKV0sdXBlKTt2YXIgaHBlPWNsYXNzIGV4dGVuZHMgbXR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3RlbXBsYXRlPW51bGwsdGhpcy5ydW5zQ29sb3JTY2FsZT1mbn19O2hwZT1FKFt5dCgidGYtY29sb3Itc2NhbGUiKV0saHBlKTt2YXIgZnBlPWNsYXNzIGV4dGVuZHMgbXR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3RlbXBsYXRlPW51bGwsdGhpcy50Zl9mZWF0dXJlX2ZsYWdzPXRXfX07ZnBlPUUoW3l0KCJ0Zi1mZWF0dXJlLWZsYWdzIildLGZwZSk7dmFyIHBwZTsoZnVuY3Rpb24oZSl7ZS5TVEVQPSJzdGVwIixlLldBTExfVElNRT0id2FsbF90aW1lIixlLlJFTEFUSVZFPSJyZWxhdGl2ZSJ9KShwcGV8fChwcGU9e30pKTt2YXIgZHBlOyhmdW5jdGlvbihlKXtlLk9GRlNFVD0ib2Zmc2V0IixlLk9WRVJMQVk9Im92ZXJsYXkifSkoZHBlfHwoZHBlPXt9KSk7d2luZG93LnRlbnNvcmJvYXJkPXloKGlhKHt9LHdpbmRvdy50ZW5zb3Jib2FyZCkse3RmX2dsb2JhbHM6a1d9KTt2YXIgVWh0PXt9O1pzKFVodCx7VGZEb21SZXBlYXQ6KCk9Pk9pLGFkZExpbWl0TGlzdGVuZXI6KCk9PlVXLGdldExpbWl0OigpPT5HVyxyZW1vdmVMaW1pdExpc3RlbmVyOigpPT5xVyxzZXRMaW1pdDooKT0+czJlfSk7dmFyIG1wZT1jbGFzcyBleHRlbmRzIG10e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl90ZW1wbGF0ZT1udWxsLHRoaXMudGZfcGFnaW5hdGVkX3ZpZXc9VWh0fX07bXBlPUUoW3l0KCJ0Zi1wYWdpbmF0ZWQtdmlldy1zdG9yZSIpXSxtcGUpO3dpbmRvdy50ZW5zb3Jib2FyZD15aChpYSh7fSx3aW5kb3cudGVuc29yYm9hcmQpLHt0Zl9zdG9yYWdlOk9CfSk7fSkoKTsKLyohCiAqIGlzLXBsYWluLW9iamVjdCA8aHR0cHM6Ly9naXRodWIuY29tL2pvbnNjaGxpbmtlcnQvaXMtcGxhaW4tb2JqZWN0PgogKgogKiBDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNywgSm9uIFNjaGxpbmtlcnQuCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KICovCi8qIQogKiBpc29iamVjdCA8aHR0cHM6Ly9naXRodWIuY29tL2pvbnNjaGxpbmtlcnQvaXNvYmplY3Q+CiAqCiAqIENvcHlyaWdodCAoYykgMjAxNC0yMDE3LCBKb24gU2NobGlua2VydC4KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLgogKi8KLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KClNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwphbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCi8qKgogKiBAZmlsZW92ZXJ2aWV3CiAqIEBzdXBwcmVzcyB7Y2hlY2tQcm90b3R5cGFsVHlwZXN9CiAqIEBsaWNlbnNlIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZAogKiBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5CiAqIGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkKICogR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUAogKiByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAqLwovKioKICogQGxpY2Vuc2UKICogQ29weXJpZ2h0IChjKSAyMDE2IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICogVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kCiAqIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkKICogYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieQogKiBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQCiAqIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICovCi8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdAogKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogKiBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogKiBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0CiAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogKi8KLyoqCiAqIEBsaWNlbnNlCiAqIENvcHlyaWdodCAoYykgMjAxOCBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICogVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICogVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0CiAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAqIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAqIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQKICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAqLwovKioKICogQGxpY2Vuc2UKICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICovCi8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgMjAxMC0yMDIyIFRocmVlLmpzIEF1dGhvcnMKICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAogKi8KLyoqCiAqIEBsaWNlbnNlCiAqIExvZGFzaCA8aHR0cHM6Ly9sb2Rhc2guY29tLz4KICogQ29weXJpZ2h0IE9wZW5KUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMgPGh0dHBzOi8vb3BlbmpzZi5vcmcvPgogKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+CiAqIEJhc2VkIG9uIFVuZGVyc2NvcmUuanMgMS44LjMgPGh0dHA6Ly91bmRlcnNjb3JlanMub3JnL0xJQ0VOU0U+CiAqIENvcHlyaWdodCBKZXJlbXkgQXNoa2VuYXMsIERvY3VtZW50Q2xvdWQgYW5kIEludmVzdGlnYXRpdmUgUmVwb3J0ZXJzICYgRWRpdG9ycwogKi8KLyoqCiAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAqIEBsaWNlbnNlIE1JVAogKgogKiBAZmlsZW92ZXJ2aWV3IG1hbnVhbGx5IGFkZCBkMy1zZWxlY3Rpb24tbXVsdGkgdG8gZDMgZGVmYXVsdCBidW5kbGUuIE1vc3Qgb2YgdGhpcyBjb2RlIGlzCiAqIGNvcGllZCBmcm9tIGQzLXNlbGVjdGlvbi1tdWx0aUAxLjAuMC4KICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9kMy9kMy1zZWxlY3Rpb24tbXVsdGkvaXNzdWVzLzExIGZvciB3aHkgd2UgaGF2ZSB0byBkbyB0aGlzCiAqLwovKioKICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICogQGxpY2Vuc2UgTUlUCiAqIEBmaWxlb3ZlcnZpZXcgSW1wbGVtZW50cyBhIGNvbnZlbmllbnQgdGh1bmsgZnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBjb21tb24gY2FzZQogKiBvZiBjcmVhdGluZyBhIG1lbW9pemVkIGZ1bmN0aW9uIHRoYXQgdGFrZXMgaXRzIGlucHV0cyBmcm9tIG11dGFibGUgY2xhc3MgcHJvcGVydGllcy4KICovCi8qKgogKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogKiBAbGljZW5zZSBNSVQKICogQGZpbGVvdmVydmlldyBJbXBsZW1lbnRzIGEgZnVuY3Rpb24gbWVtb2l6ZXIgdXNpbmcgdGhlIFNpZ25hdHVyZSBBUEkuCiAqLwovKioKICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICogQGxpY2Vuc2UgTUlUCiAqIEBmaWxlb3ZlcnZpZXcgSW1wbGVtZW50cyB0aGUgU2lnbmF0dXJlIEFQSSB0byBoZWxwIGluIGNvbXBhcmluZyB3aGVuIHR3bwogKiBQbG90dGFibGUgb2JqZWN0cyBoYXZlICJjaGFuZ2VkIi4KICoKICogTWVtb2l6YXRpb24gaW4gUGxvdHRhYmxlIGlzIGNvbXBsaWNhdGVkIGJ5IG11dGFibGUgc2NhbGVzIGFuZCBkYXRhc2V0cy4gV2UgY2Fubm90IHNpbXBseQogKiByZWZlcmVuY2UgY29tcGFyZSB0d28gZS5nLiBzY2FsZXMgc2luY2UgaXQgbWF5IGhhdmUgaW50ZXJuYWxseSBtdXRhdGVkLiBUbyByZXNvbHZlIHRoaXMsCiAqIHdlIHdyaXRlIGEgcmVjdXJzaXZlIFNpZ25hdHVyZSBpbnRlcmZhY2UgdGhhdCBob2xkcyBhbiBpbW11dGFibGUgc25hcHNob3Qgb2Ygd2hhdGV2ZXIKICogc3RhdGUgdGhlIHNjYWxlL2RhdGEgd2FzIGluIGF0IHRoZSB0aW1lLiBUaGVuIG9uIG1lbW9pemVkIGZ1bmN0aW9uIGludm9jYXRpb24gd2Ugc2lnbiB0aGUKICogbmV3IGlucHV0cyBhbmQgY29tcGFyZSB0aGUgc2lnbmF0dXJlcyB0byBkZWNpZGUgaWYgd2Ugc2hvdWxkIHJlY29tcHV0ZS4KICoKICogV2UgbXVzdCBoYW5kLXdyaXRlIGEgc2lnbmF0dXJlIGZvciBlYWNoIGN1c3RvbSBjbGFzcyB3ZSB3aXNoIHRvIHN1cHBvcnQuCiAqLwovKioKICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICogQGxpY2Vuc2UgTUlUCiAqLwovKioKICogQ29weXJpZ2h0IDIwMTctcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICogQGxpY2Vuc2UgTUlUCiAqLwovKioKQGxpY2Vuc2UKQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0Cmh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0Cmh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudApmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKKi8KLyoqCkBsaWNlbnNlCkNvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuClRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdApodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdApodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCmZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCnBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiovCi8qKgpAbGljZW5zZQpDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0ClRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0ClRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dApDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwpzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAoqLwovKioKQGxpY2Vuc2UKQ29weXJpZ2h0IChjKSAyMDE2IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0Cmh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0Cmh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudApmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKKi8KLyoqCkBsaWNlbnNlCkNvcHlyaWdodCAoYykgMjAxNiBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuClRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CkNvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCnN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiovCi8qKgpAbGljZW5zZQpDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQpmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwpwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CmZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAoqLwovKioKQGxpY2Vuc2UKQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dApUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dApUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28Kc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKKi8KLyoqCkBsaWNlbnNlCkNvcHlyaWdodCAoYykgMjAxOSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuClRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdApodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdApodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCmZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCnBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiovCi8qKgpAbGljZW5zZQpDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0ClRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0ClRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dApDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwpzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAoqLwoKKCgpPT57dmFyIHFpZT1PYmplY3QuY3JlYXRlLEZBPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxYaWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixZaWU9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMsUWllPU9iamVjdC5nZXRQcm90b3R5cGVPZixaaWU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxKVj0obix0KT0+KCk9Pih0fHxuKCh0PXtleHBvcnRzOnt9fSkuZXhwb3J0cyx0KSx0LmV4cG9ydHMpLE5BPShuLHQpPT57Zm9yKHZhciBlIGluIHQpRkEobixlLHtnZXQ6dFtlXSxlbnVtZXJhYmxlOiEwfSl9LCRWPShuLHQsZSk9PihlPW51bGwhPW4/cWllKFFpZShuKSk6e30sKChuLHQsZSxpKT0+e2lmKHQmJiJvYmplY3QiPT10eXBlb2YgdHx8ImZ1bmN0aW9uIj09dHlwZW9mIHQpZm9yKGxldCByIG9mIFlpZSh0KSkhWmllLmNhbGwobixyKSYmdW5kZWZpbmVkIT09ciYmRkEobixyLHtnZXQ6KCk9PnRbcl0sZW51bWVyYWJsZTohKGk9WGllKHQscikpfHxpLmVudW1lcmFibGV9KTtyZXR1cm4gbn0pKCF0JiZuJiZuLl9fZXNNb2R1bGU/ZTpGQShlLCJkZWZhdWx0Iix7dmFsdWU6bixlbnVtZXJhYmxlOiEwfSksbikpLEw0PUpWKChSVWUsYkMpPT57dmFyIHA0LGg0LG00LGY0LGc0LF80LGI0LHY0LHk0LHg0LEM0LE00LHc0LGdDLFpBLFM0LEU0LFQ0LExtLEQ0LEk0LEE0LFI0LFA0LGs0LE80LEY0LE40LF9DOyFmdW5jdGlvbihuKXt2YXIgdD0ib2JqZWN0Ij09dHlwZW9mIGdsb2JhbD9nbG9iYWw6Im9iamVjdCI9PXR5cGVvZiBzZWxmP3NlbGY6Im9iamVjdCI9PXR5cGVvZiB0aGlzP3RoaXM6e307ZnVuY3Rpb24gZShpLHIpe3JldHVybiBpIT09dCYmKCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShpLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTppLl9fZXNNb2R1bGU9ITApLGZ1bmN0aW9uKG8sYSl7cmV0dXJuIGlbb109cj9yKG8sYSk6YX19ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoInRzbGliIixbImV4cG9ydHMiXSxmdW5jdGlvbihpKXtuKGUodCxlKGkpKSl9KTpuKCJvYmplY3QiPT10eXBlb2YgYkMmJiJvYmplY3QiPT10eXBlb2YgYkMuZXhwb3J0cz9lKHQsZShiQy5leHBvcnRzKSk6ZSh0KSl9KGZ1bmN0aW9uKG4pe3ZhciB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihpLHIpe2kuX19wcm90b19fPXJ9fHxmdW5jdGlvbihpLHIpe2Zvcih2YXIgbyBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLG8pJiYoaVtvXT1yW29dKX07cDQ9ZnVuY3Rpb24oaSxyKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgciYmbnVsbCE9PXIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhyKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBvKCl7dGhpcy5jb25zdHJ1Y3Rvcj1pfXQoaSxyKSxpLnByb3RvdHlwZT1udWxsPT09cj9PYmplY3QuY3JlYXRlKHIpOihvLnByb3RvdHlwZT1yLnByb3RvdHlwZSxuZXcgbyl9LGg0PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGkpe2Zvcih2YXIgcixvPTEsYT1hcmd1bWVudHMubGVuZ3RoO288YTtvKyspZm9yKHZhciBzIGluIHI9YXJndW1lbnRzW29dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLHMpJiYoaVtzXT1yW3NdKTtyZXR1cm4gaX0sbTQ9ZnVuY3Rpb24oaSxyKXt2YXIgbz17fTtmb3IodmFyIGEgaW4gaSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmci5pbmRleE9mKGEpPDAmJihvW2FdPWlbYV0pO2lmKG51bGwhPWkmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcz0wO2ZvcihhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaSk7czxhLmxlbmd0aDtzKyspci5pbmRleE9mKGFbc10pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChpLGFbc10pJiYob1thW3NdXT1pW2Fbc11dKX1yZXR1cm4gb30sZjQ9ZnVuY3Rpb24oaSxyLG8sYSl7dmFyIGMscz1hcmd1bWVudHMubGVuZ3RoLGw9czwzP3I6bnVsbD09PWE/YT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsbyk6YTtpZigib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKWw9UmVmbGVjdC5kZWNvcmF0ZShpLHIsbyxhKTtlbHNlIGZvcih2YXIgZD1pLmxlbmd0aC0xO2Q+PTA7ZC0tKShjPWlbZF0pJiYobD0oczwzP2MobCk6cz4zP2MocixvLGwpOmMocixvKSl8fGwpO3JldHVybiBzPjMmJmwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8sbCksbH0sZzQ9ZnVuY3Rpb24oaSxyKXtyZXR1cm4gZnVuY3Rpb24obyxhKXtyKG8sYSxpKX19LF80PWZ1bmN0aW9uKGkscixvLGEscyxsKXtmdW5jdGlvbiBjKEkpe2lmKHZvaWQgMCE9PUkmJiJmdW5jdGlvbiIhPXR5cGVvZiBJKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIEl9Zm9yKHZhciBtLGQ9YS5raW5kLHU9ImdldHRlciI9PT1kPyJnZXQiOiJzZXR0ZXIiPT09ZD8ic2V0IjoidmFsdWUiLHA9IXImJmk/YS5zdGF0aWM/aTppLnByb3RvdHlwZTpudWxsLGg9cnx8KHA/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLGEubmFtZSk6e30pLF89ITEsTT1vLmxlbmd0aC0xO00+PTA7TS0tKXt2YXIgeT17fTtmb3IodmFyIHggaW4gYSl5W3hdPSJhY2Nlc3MiPT09eD97fTphW3hdO2Zvcih2YXIgeCBpbiBhLmFjY2Vzcyl5LmFjY2Vzc1t4XT1hLmFjY2Vzc1t4XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKEkpe2lmKF8pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bC5wdXNoKGMoSXx8bnVsbCkpfTt2YXIgUj0oMCxvW01dKSgiYWNjZXNzb3IiPT09ZD97Z2V0OmguZ2V0LHNldDpoLnNldH06aFt1XSx5KTtpZigiYWNjZXNzb3IiPT09ZCl7aWYodm9pZCAwPT09Uiljb250aW51ZTtpZihudWxsPT09Unx8Im9iamVjdCIhPXR5cGVvZiBSKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhtPWMoUi5nZXQpKSYmKGguZ2V0PW0pLChtPWMoUi5zZXQpKSYmKGguc2V0PW0pLChtPWMoUi5pbml0KSkmJnMucHVzaChtKX1lbHNlKG09YyhSKSkmJigiZmllbGQiPT09ZD9zLnB1c2gobSk6aFt1XT1tKX1wJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocCxhLm5hbWUsaCksXz0hMH0sYjQ9ZnVuY3Rpb24oaSxyLG8pe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ci5sZW5ndGg7cysrKW89YT9yW3NdLmNhbGwoaSxvKTpyW3NdLmNhbGwoaSk7cmV0dXJuIGE/bzp2b2lkIDB9LHY0PWZ1bmN0aW9uKGkpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgaT9pOiIiLmNvbmNhdChpKX0seTQ9ZnVuY3Rpb24oaSxyLG8pe3JldHVybiJzeW1ib2wiPT10eXBlb2YgciYmKHI9ci5kZXNjcmlwdGlvbj8iWyIuY29uY2F0KHIuZGVzY3JpcHRpb24sIl0iKToiIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGksIm5hbWUiLHtjb25maWd1cmFibGU6ITAsdmFsdWU6bz8iIi5jb25jYXQobywiICIscik6cn0pfSx4ND1mdW5jdGlvbihpLHIpe2lmKCJvYmplY3QiPT10eXBlb2YgUmVmbGVjdCYmImZ1bmN0aW9uIj09dHlwZW9mIFJlZmxlY3QubWV0YWRhdGEpcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoaSxyKX0sQzQ9ZnVuY3Rpb24oaSxyLG8sYSl7cmV0dXJuIG5ldyhvfHwobz1Qcm9taXNlKSkoZnVuY3Rpb24obCxjKXtmdW5jdGlvbiBkKGgpe3RyeXtwKGEubmV4dChoKSl9Y2F0Y2gobSl7YyhtKX19ZnVuY3Rpb24gdShoKXt0cnl7cChhLnRocm93KGgpKX1jYXRjaChtKXtjKG0pfX1mdW5jdGlvbiBwKGgpe2guZG9uZT9sKGgudmFsdWUpOmZ1bmN0aW9uKGwpe3JldHVybiBsIGluc3RhbmNlb2Ygbz9sOm5ldyBvKGZ1bmN0aW9uKGMpe2MobCl9KX0oaC52YWx1ZSkudGhlbihkLHUpfXAoKGE9YS5hcHBseShpLHJ8fFtdKSkubmV4dCgpKX0pfSxNND1mdW5jdGlvbihpLHIpe3ZhciBhLHMsbCxjLG89e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmbFswXSl0aHJvdyBsWzFdO3JldHVybiBsWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGM9e25leHQ6ZCgwKSx0aHJvdzpkKDEpLHJldHVybjpkKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoY1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxjO2Z1bmN0aW9uIGQocCl7cmV0dXJuIGZ1bmN0aW9uKGgpe3JldHVybiBmdW5jdGlvbihwKXtpZihhKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2MmJihjPTAscFswXSYmKG89MCkpLG87KXRyeXtpZihhPTEscyYmKGw9MiZwWzBdP3MucmV0dXJuOnBbMF0/cy50aHJvd3x8KChsPXMucmV0dXJuKSYmbC5jYWxsKHMpLDApOnMubmV4dCkmJiEobD1sLmNhbGwocyxwWzFdKSkuZG9uZSlyZXR1cm4gbDtzd2l0Y2gocz0wLGwmJihwPVsyJnBbMF0sbC52YWx1ZV0pLHBbMF0pe2Nhc2UgMDpjYXNlIDE6bD1wO2JyZWFrO2Nhc2UgNDpyZXR1cm4gby5sYWJlbCsrLHt2YWx1ZTpwWzFdLGRvbmU6ITF9O2Nhc2UgNTpvLmxhYmVsKysscz1wWzFdLHA9WzBdO2NvbnRpbnVlO2Nhc2UgNzpwPW8ub3BzLnBvcCgpLG8udHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEobD0obD1vLnRyeXMpLmxlbmd0aD4wJiZsW2wubGVuZ3RoLTFdKSYmKDY9PT1wWzBdfHwyPT09cFswXSkpe289MDtjb250aW51ZX1pZigzPT09cFswXSYmKCFsfHxwWzFdPmxbMF0mJnBbMV08bFszXSkpe28ubGFiZWw9cFsxXTticmVha31pZig2PT09cFswXSYmby5sYWJlbDxsWzFdKXtvLmxhYmVsPWxbMV0sbD1wO2JyZWFrfWlmKGwmJm8ubGFiZWw8bFsyXSl7by5sYWJlbD1sWzJdLG8ub3BzLnB1c2gocCk7YnJlYWt9bFsyXSYmby5vcHMucG9wKCksby50cnlzLnBvcCgpO2NvbnRpbnVlfXA9ci5jYWxsKGksbyl9Y2F0Y2goaCl7cD1bNixoXSxzPTB9ZmluYWxseXthPWw9MH1pZig1JnBbMF0pdGhyb3cgcFsxXTtyZXR1cm57dmFsdWU6cFswXT9wWzFdOnZvaWQgMCxkb25lOiEwfX0oW3AsaF0pfX19LHc0PWZ1bmN0aW9uKGkscil7Zm9yKHZhciBvIGluIGkpImRlZmF1bHQiIT09byYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLG8pJiZfQyhyLGksbyl9LF9DPU9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oaSxyLG8sYSl7dm9pZCAwPT09YSYmKGE9byk7dmFyIHM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLG8pOyghc3x8KCJnZXQiaW4gcz8hci5fX2VzTW9kdWxlOnMud3JpdGFibGV8fHMuY29uZmlndXJhYmxlKSkmJihzPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByW29dfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLGEscyl9OmZ1bmN0aW9uKGkscixvLGEpe3ZvaWQgMD09PWEmJihhPW8pLGlbYV09cltvXX0sZ0M9ZnVuY3Rpb24oaSl7dmFyIHI9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yLG89ciYmaVtyXSxhPTA7aWYobylyZXR1cm4gby5jYWxsKGkpO2lmKGkmJiJudW1iZXIiPT10eXBlb2YgaS5sZW5ndGgpcmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gaSYmYT49aS5sZW5ndGgmJihpPXZvaWQgMCkse3ZhbHVlOmkmJmlbYSsrXSxkb25lOiFpfX19O3Rocm93IG5ldyBUeXBlRXJyb3Iocj8iT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS4iOiJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIil9LFpBPWZ1bmN0aW9uKGkscil7dmFyIG89ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmaVtTeW1ib2wuaXRlcmF0b3JdO2lmKCFvKXJldHVybiBpO3ZhciBzLGMsYT1vLmNhbGwoaSksbD1bXTt0cnl7Zm9yKDsodm9pZCAwPT09cnx8ci0tID4wKSYmIShzPWEubmV4dCgpKS5kb25lOylsLnB1c2gocy52YWx1ZSl9Y2F0Y2goZCl7Yz17ZXJyb3I6ZH19ZmluYWxseXt0cnl7cyYmIXMuZG9uZSYmKG89YS5yZXR1cm4pJiZvLmNhbGwoYSl9ZmluYWxseXtpZihjKXRocm93IGMuZXJyb3J9fXJldHVybiBsfSxTND1mdW5jdGlvbigpe2Zvcih2YXIgaT1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKylpPWkuY29uY2F0KFpBKGFyZ3VtZW50c1tyXSkpO3JldHVybiBpfSxFND1mdW5jdGlvbigpe2Zvcih2YXIgaT0wLHI9MCxvPWFyZ3VtZW50cy5sZW5ndGg7cjxvO3IrKylpKz1hcmd1bWVudHNbcl0ubGVuZ3RoO3ZhciBhPUFycmF5KGkpLHM9MDtmb3Iocj0wO3I8bztyKyspZm9yKHZhciBsPWFyZ3VtZW50c1tyXSxjPTAsZD1sLmxlbmd0aDtjPGQ7YysrLHMrKylhW3NdPWxbY107cmV0dXJuIGF9LFQ0PWZ1bmN0aW9uKGkscixvKXtpZihvfHwyPT09YXJndW1lbnRzLmxlbmd0aClmb3IodmFyIGwsYT0wLHM9ci5sZW5ndGg7YTxzO2ErKykobHx8IShhIGluIHIpKSYmKGx8fChsPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHIsMCxhKSksbFthXT1yW2FdKTtyZXR1cm4gaS5jb25jYXQobHx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocikpfSxMbT1mdW5jdGlvbihpKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIExtPyh0aGlzLnY9aSx0aGlzKTpuZXcgTG0oaSl9LEQ0PWZ1bmN0aW9uKGkscixvKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIHMsYT1vLmFwcGx5KGkscnx8W10pLGw9W107cmV0dXJuIHM9e30sYygibmV4dCIpLGMoInRocm93IiksYygicmV0dXJuIiksc1tTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30scztmdW5jdGlvbiBjKF8pe2FbX10mJihzW19dPWZ1bmN0aW9uKE0pe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih5LHgpe2wucHVzaChbXyxNLHkseF0pPjF8fGQoXyxNKX0pfSl9ZnVuY3Rpb24gZChfLE0pe3RyeXshZnVuY3Rpb24oXyl7Xy52YWx1ZSBpbnN0YW5jZW9mIExtP1Byb21pc2UucmVzb2x2ZShfLnZhbHVlLnYpLnRoZW4ocCxoKTptKGxbMF1bMl0sXyl9KGFbX10oTSkpfWNhdGNoKHkpe20obFswXVszXSx5KX19ZnVuY3Rpb24gcChfKXtkKCJuZXh0IixfKX1mdW5jdGlvbiBoKF8pe2QoInRocm93IixfKX1mdW5jdGlvbiBtKF8sTSl7XyhNKSxsLnNoaWZ0KCksbC5sZW5ndGgmJmQobFswXVswXSxsWzBdWzFdKX19LEk0PWZ1bmN0aW9uKGkpe3ZhciByLG87cmV0dXJuIHI9e30sYSgibmV4dCIpLGEoInRocm93IixmdW5jdGlvbihzKXt0aHJvdyBzfSksYSgicmV0dXJuIikscltTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHI7ZnVuY3Rpb24gYShzLGwpe3Jbc109aVtzXT9mdW5jdGlvbihjKXtyZXR1cm4obz0hbyk/e3ZhbHVlOkxtKGlbc10oYykpLGRvbmU6ITF9Omw/bChjKTpjfTpsfX0sQTQ9ZnVuY3Rpb24oaSl7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBvLHI9aVtTeW1ib2wuYXN5bmNJdGVyYXRvcl07cmV0dXJuIHI/ci5jYWxsKGkpOihpPWdDKGkpLG89e30sYSgibmV4dCIpLGEoInRocm93IiksYSgicmV0dXJuIiksb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sbyk7ZnVuY3Rpb24gYShsKXtvW2xdPWlbbF0mJmZ1bmN0aW9uKGMpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLHUpeyFmdW5jdGlvbihsLGMsZCx1KXtQcm9taXNlLnJlc29sdmUodSkudGhlbihmdW5jdGlvbihwKXtsKHt2YWx1ZTpwLGRvbmU6ZH0pfSxjKX0oZCx1LChjPWlbbF0oYykpLmRvbmUsYy52YWx1ZSl9KX19fSxSND1mdW5jdGlvbihpLHIpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHk/T2JqZWN0LmRlZmluZVByb3BlcnR5KGksInJhdyIse3ZhbHVlOnJ9KTppLnJhdz1yLGl9O3ZhciBlPU9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oaSxyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6cn0pfTpmdW5jdGlvbihpLHIpe2kuZGVmYXVsdD1yfTtQND1mdW5jdGlvbihpKXtpZihpJiZpLl9fZXNNb2R1bGUpcmV0dXJuIGk7dmFyIHI9e307aWYobnVsbCE9aSlmb3IodmFyIG8gaW4gaSkiZGVmYXVsdCIhPT1vJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSxvKSYmX0MocixpLG8pO3JldHVybiBlKHIsaSkscn0sazQ9ZnVuY3Rpb24oaSl7cmV0dXJuIGkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9fSxPND1mdW5jdGlvbihpLHIsbyxhKXtpZigiYSI9PT1vJiYhYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXIiKTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygcj9pIT09cnx8IWE6IXIuaGFzKGkpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdCIpO3JldHVybiJtIj09PW8/YToiYSI9PT1vP2EuY2FsbChpKTphP2EudmFsdWU6ci5nZXQoaSl9LEY0PWZ1bmN0aW9uKGkscixvLGEscyl7aWYoIm0iPT09YSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTtpZigiYSI9PT1hJiYhcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygcj9pIT09cnx8IXM6IXIuaGFzKGkpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuImEiPT09YT9zLmNhbGwoaSxvKTpzP3MudmFsdWU9bzpyLnNldChpLG8pLG99LE40PWZ1bmN0aW9uKGkscil7aWYobnVsbD09PXJ8fCJvYmplY3QiIT10eXBlb2YgciYmImZ1bmN0aW9uIiE9dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHVzZSAnaW4nIG9wZXJhdG9yIG9uIG5vbi1vYmplY3QiKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgaT9yPT09aTppLmhhcyhyKX0sbigiX19leHRlbmRzIixwNCksbigiX19hc3NpZ24iLGg0KSxuKCJfX3Jlc3QiLG00KSxuKCJfX2RlY29yYXRlIixmNCksbigiX19wYXJhbSIsZzQpLG4oIl9fZXNEZWNvcmF0ZSIsXzQpLG4oIl9fcnVuSW5pdGlhbGl6ZXJzIixiNCksbigiX19wcm9wS2V5Iix2NCksbigiX19zZXRGdW5jdGlvbk5hbWUiLHk0KSxuKCJfX21ldGFkYXRhIix4NCksbigiX19hd2FpdGVyIixDNCksbigiX19nZW5lcmF0b3IiLE00KSxuKCJfX2V4cG9ydFN0YXIiLHc0KSxuKCJfX2NyZWF0ZUJpbmRpbmciLF9DKSxuKCJfX3ZhbHVlcyIsZ0MpLG4oIl9fcmVhZCIsWkEpLG4oIl9fc3ByZWFkIixTNCksbigiX19zcHJlYWRBcnJheXMiLEU0KSxuKCJfX3NwcmVhZEFycmF5IixUNCksbigiX19hd2FpdCIsTG0pLG4oIl9fYXN5bmNHZW5lcmF0b3IiLEQ0KSxuKCJfX2FzeW5jRGVsZWdhdG9yIixJNCksbigiX19hc3luY1ZhbHVlcyIsQTQpLG4oIl9fbWFrZVRlbXBsYXRlT2JqZWN0IixSNCksbigiX19pbXBvcnRTdGFyIixQNCksbigiX19pbXBvcnREZWZhdWx0IixrNCksbigiX19jbGFzc1ByaXZhdGVGaWVsZEdldCIsTzQpLG4oIl9fY2xhc3NQcml2YXRlRmllbGRTZXQiLEY0KSxuKCJfX2NsYXNzUHJpdmF0ZUZpZWxkSW4iLE40KX0pfSksdUc9SlYoY089PnsidXNlIHN0cmljdCI7dmFyIG4sdXU9Y08mJmNPLl9fc3ByZWFkQXJyYXl8fGZ1bmN0aW9uKG4sdCxlKXtpZihlfHwyPT09YXJndW1lbnRzLmxlbmd0aClmb3IodmFyIG8saT0wLHI9dC5sZW5ndGg7aTxyO2krKykob3x8IShpIGluIHQpKSYmKG98fChvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQsMCxpKSksb1tpXT10W2ldKTtyZXR1cm4gbi5jb25jYXQob3x8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCkpfTtuPWZ1bmN0aW9uKCl7IWZ1bmN0aW9uKGope3ZhciBKPWoucGVyZm9ybWFuY2U7ZnVuY3Rpb24gbGUoZnQpe0omJkoubWFyayYmSi5tYXJrKGZ0KX1mdW5jdGlvbiBFKGZ0LG1lKXtKJiZKLm1lYXN1cmUmJkoubWVhc3VyZShmdCxtZSl9bGUoIlpvbmUiKTt2YXIgVj1qLl9fWm9uZV9zeW1ib2xfcHJlZml4fHwiX196b25lX3N5bWJvbF9fIjtmdW5jdGlvbiBYKGZ0KXtyZXR1cm4gVitmdH12YXIgWj0hMD09PWpbWCgiZm9yY2VEdXBsaWNhdGVab25lQ2hlY2siKV07aWYoai5ab25lKXtpZihafHwiZnVuY3Rpb24iIT10eXBlb2Ygai5ab25lLl9fc3ltYm9sX18pdGhyb3cgbmV3IEVycm9yKCJab25lIGFscmVhZHkgbG9hZGVkLiIpO3JldHVybiBqLlpvbmV9dmFyIGFlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZnQobWUsZ2Upe3RoaXMuX3BhcmVudD1tZSx0aGlzLl9uYW1lPWdlP2dlLm5hbWV8fCJ1bm5hbWVkIjoiPHJvb3Q+Iix0aGlzLl9wcm9wZXJ0aWVzPWdlJiZnZS5wcm9wZXJ0aWVzfHx7fSx0aGlzLl96b25lRGVsZWdhdGU9bmV3IGV0KHRoaXMsdGhpcy5fcGFyZW50JiZ0aGlzLl9wYXJlbnQuX3pvbmVEZWxlZ2F0ZSxnZSl9cmV0dXJuIGZ0LmFzc2VydFpvbmVQYXRjaGVkPWZ1bmN0aW9uKCl7aWYoai5Qcm9taXNlIT09T24uWm9uZUF3YXJlUHJvbWlzZSl0aHJvdyBuZXcgRXJyb3IoIlpvbmUuanMgaGFzIGRldGVjdGVkIHRoYXQgWm9uZUF3YXJlUHJvbWlzZSBgKHdpbmRvd3xnbG9iYWwpLlByb21pc2VgIGhhcyBiZWVuIG92ZXJ3cml0dGVuLlxuTW9zdCBsaWtlbHkgY2F1c2UgaXMgdGhhdCBhIFByb21pc2UgcG9seWZpbGwgaGFzIGJlZW4gbG9hZGVkIGFmdGVyIFpvbmUuanMgKFBvbHlmaWxsaW5nIFByb21pc2UgYXBpIGlzIG5vdCBuZWNlc3Nhcnkgd2hlbiB6b25lLmpzIGlzIGxvYWRlZC4gSWYgeW91IG11c3QgbG9hZCBvbmUsIGRvIHNvIGJlZm9yZSBsb2FkaW5nIHpvbmUuanMuKSIpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZnQsInJvb3QiLHtnZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIG1lPWZ0LmN1cnJlbnQ7bWUucGFyZW50OyltZT1tZS5wYXJlbnQ7cmV0dXJuIG1lfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmdCwiY3VycmVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiBpci56b25lfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmdCwiY3VycmVudFRhc2siLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gU2F9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZnQuX19sb2FkX3BhdGNoPWZ1bmN0aW9uKG1lLGdlLFBlKXtpZih2b2lkIDA9PT1QZSYmKFBlPSExKSxPbi5oYXNPd25Qcm9wZXJ0eShtZSkpe2lmKCFQZSYmWil0aHJvdyBFcnJvcigiQWxyZWFkeSBsb2FkZWQgcGF0Y2g6ICIrbWUpfWVsc2UgaWYoIWpbIl9fWm9uZV9kaXNhYmxlXyIrbWVdKXt2YXIgTW49IlpvbmU6IittZTtsZShNbiksT25bbWVdPWdlKGosZnQsY3IpLEUoTW4sTW4pfX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGZ0LnByb3RvdHlwZSwicGFyZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhcmVudH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZnQucHJvdG90eXBlLCJuYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25hbWV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZnQucHJvdG90eXBlLmdldD1mdW5jdGlvbihtZSl7dmFyIGdlPXRoaXMuZ2V0Wm9uZVdpdGgobWUpO2lmKGdlKXJldHVybiBnZS5fcHJvcGVydGllc1ttZV19LGZ0LnByb3RvdHlwZS5nZXRab25lV2l0aD1mdW5jdGlvbihtZSl7Zm9yKHZhciBnZT10aGlzO2dlOyl7aWYoZ2UuX3Byb3BlcnRpZXMuaGFzT3duUHJvcGVydHkobWUpKXJldHVybiBnZTtnZT1nZS5fcGFyZW50fXJldHVybiBudWxsfSxmdC5wcm90b3R5cGUuZm9yaz1mdW5jdGlvbihtZSl7aWYoIW1lKXRocm93IG5ldyBFcnJvcigiWm9uZVNwZWMgcmVxdWlyZWQhIik7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5mb3JrKHRoaXMsbWUpfSxmdC5wcm90b3R5cGUud3JhcD1mdW5jdGlvbihtZSxnZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG1lKXRocm93IG5ldyBFcnJvcigiRXhwZWN0aW5nIGZ1bmN0aW9uIGdvdDogIittZSk7dmFyIFBlPXRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnRlcmNlcHQodGhpcyxtZSxnZSksTW49dGhpcztyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gTW4ucnVuR3VhcmRlZChQZSx0aGlzLGFyZ3VtZW50cyxnZSl9fSxmdC5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKG1lLGdlLFBlLE1uKXtpcj17cGFyZW50OmlyLHpvbmU6dGhpc307dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlKHRoaXMsbWUsZ2UsUGUsTW4pfWZpbmFsbHl7aXI9aXIucGFyZW50fX0sZnQucHJvdG90eXBlLnJ1bkd1YXJkZWQ9ZnVuY3Rpb24obWUsZ2UsUGUsTW4pe3ZvaWQgMD09PWdlJiYoZ2U9bnVsbCksaXI9e3BhcmVudDppcix6b25lOnRoaXN9O3RyeXt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2UodGhpcyxtZSxnZSxQZSxNbil9Y2F0Y2godXIpe2lmKHRoaXMuX3pvbmVEZWxlZ2F0ZS5oYW5kbGVFcnJvcih0aGlzLHVyKSl0aHJvdyB1cn19ZmluYWxseXtpcj1pci5wYXJlbnR9fSxmdC5wcm90b3R5cGUucnVuVGFzaz1mdW5jdGlvbihtZSxnZSxQZSl7aWYobWUuem9uZSE9dGhpcyl0aHJvdyBuZXcgRXJyb3IoIkEgdGFzayBjYW4gb25seSBiZSBydW4gaW4gdGhlIHpvbmUgb2YgY3JlYXRpb24hIChDcmVhdGlvbjogIisobWUuem9uZXx8RXQpLm5hbWUrIjsgRXhlY3V0aW9uOiAiK3RoaXMubmFtZSsiKSIpO2lmKG1lLnN0YXRlIT09Z2l8fG1lLnR5cGUhPT1faSYmbWUudHlwZSE9PVBuKXt2YXIgTW49bWUuc3RhdGUhPVFuO01uJiZtZS5fdHJhbnNpdGlvblRvKFFuLEhuKSxtZS5ydW5Db3VudCsrO3ZhciB1cj1TYTtTYT1tZSxpcj17cGFyZW50OmlyLHpvbmU6dGhpc307dHJ5e21lLnR5cGU9PVBuJiZtZS5kYXRhJiYhbWUuZGF0YS5pc1BlcmlvZGljJiYobWUuY2FuY2VsRm49dm9pZCAwKTt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2VUYXNrKHRoaXMsbWUsZ2UsUGUpfWNhdGNoKGhsKXtpZih0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxobCkpdGhyb3cgaGx9fWZpbmFsbHl7bWUuc3RhdGUhPT1naSYmbWUuc3RhdGUhPT1CaSYmKG1lLnR5cGU9PV9pfHxtZS5kYXRhJiZtZS5kYXRhLmlzUGVyaW9kaWM/TW4mJm1lLl90cmFuc2l0aW9uVG8oSG4sUW4pOihtZS5ydW5Db3VudD0wLHRoaXMuX3VwZGF0ZVRhc2tDb3VudChtZSwtMSksTW4mJm1lLl90cmFuc2l0aW9uVG8oZ2ksUW4sZ2kpKSksaXI9aXIucGFyZW50LFNhPXVyfX19LGZ0LnByb3RvdHlwZS5zY2hlZHVsZVRhc2s9ZnVuY3Rpb24obWUpe2lmKG1lLnpvbmUmJm1lLnpvbmUhPT10aGlzKWZvcih2YXIgZ2U9dGhpcztnZTspe2lmKGdlPT09bWUuem9uZSl0aHJvdyBFcnJvcigiY2FuIG5vdCByZXNjaGVkdWxlIHRhc2sgdG8gIi5jb25jYXQodGhpcy5uYW1lLCIgd2hpY2ggaXMgZGVzY2VuZGFudHMgb2YgdGhlIG9yaWdpbmFsIHpvbmUgIikuY29uY2F0KG1lLnpvbmUubmFtZSkpO2dlPWdlLnBhcmVudH1tZS5fdHJhbnNpdGlvblRvKHRpLGdpKTt2YXIgUGU9W107bWUuX3pvbmVEZWxlZ2F0ZXM9UGUsbWUuX3pvbmU9dGhpczt0cnl7bWU9dGhpcy5fem9uZURlbGVnYXRlLnNjaGVkdWxlVGFzayh0aGlzLG1lKX1jYXRjaChNbil7dGhyb3cgbWUuX3RyYW5zaXRpb25UbyhCaSx0aSxnaSksdGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMsTW4pLE1ufXJldHVybiBtZS5fem9uZURlbGVnYXRlcz09PVBlJiZ0aGlzLl91cGRhdGVUYXNrQ291bnQobWUsMSksbWUuc3RhdGU9PXRpJiZtZS5fdHJhbnNpdGlvblRvKEhuLHRpKSxtZX0sZnQucHJvdG90eXBlLnNjaGVkdWxlTWljcm9UYXNrPWZ1bmN0aW9uKG1lLGdlLFBlLE1uKXtyZXR1cm4gdGhpcy5zY2hlZHVsZVRhc2sobmV3IHFlKF9uLG1lLGdlLFBlLE1uLHZvaWQgMCkpfSxmdC5wcm90b3R5cGUuc2NoZWR1bGVNYWNyb1Rhc2s9ZnVuY3Rpb24obWUsZ2UsUGUsTW4sdXIpe3JldHVybiB0aGlzLnNjaGVkdWxlVGFzayhuZXcgcWUoUG4sbWUsZ2UsUGUsTW4sdXIpKX0sZnQucHJvdG90eXBlLnNjaGVkdWxlRXZlbnRUYXNrPWZ1bmN0aW9uKG1lLGdlLFBlLE1uLHVyKXtyZXR1cm4gdGhpcy5zY2hlZHVsZVRhc2sobmV3IHFlKF9pLG1lLGdlLFBlLE1uLHVyKSl9LGZ0LnByb3RvdHlwZS5jYW5jZWxUYXNrPWZ1bmN0aW9uKG1lKXtpZihtZS56b25lIT10aGlzKXRocm93IG5ldyBFcnJvcigiQSB0YXNrIGNhbiBvbmx5IGJlIGNhbmNlbGxlZCBpbiB0aGUgem9uZSBvZiBjcmVhdGlvbiEgKENyZWF0aW9uOiAiKyhtZS56b25lfHxFdCkubmFtZSsiOyBFeGVjdXRpb246ICIrdGhpcy5uYW1lKyIpIik7aWYobWUuc3RhdGU9PT1Ibnx8bWUuc3RhdGU9PT1Rbil7bWUuX3RyYW5zaXRpb25Ubyh6dCxIbixRbik7dHJ5e3RoaXMuX3pvbmVEZWxlZ2F0ZS5jYW5jZWxUYXNrKHRoaXMsbWUpfWNhdGNoKGdlKXt0aHJvdyBtZS5fdHJhbnNpdGlvblRvKEJpLHp0KSx0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxnZSksZ2V9cmV0dXJuIHRoaXMuX3VwZGF0ZVRhc2tDb3VudChtZSwtMSksbWUuX3RyYW5zaXRpb25UbyhnaSx6dCksbWUucnVuQ291bnQ9MCxtZX19LGZ0LnByb3RvdHlwZS5fdXBkYXRlVGFza0NvdW50PWZ1bmN0aW9uKG1lLGdlKXt2YXIgUGU9bWUuX3pvbmVEZWxlZ2F0ZXM7LTE9PWdlJiYobWUuX3pvbmVEZWxlZ2F0ZXM9bnVsbCk7Zm9yKHZhciBNbj0wO01uPFBlLmxlbmd0aDtNbisrKVBlW01uXS5fdXBkYXRlVGFza0NvdW50KG1lLnR5cGUsZ2UpfSxmdH0oKTthZS5fX3N5bWJvbF9fPVg7dmFyIHFpLHplPXtuYW1lOiIiLG9uSGFzVGFzazpmdW5jdGlvbihmdCxtZSxnZSxQZSl7cmV0dXJuIGZ0Lmhhc1Rhc2soZ2UsUGUpfSxvblNjaGVkdWxlVGFzazpmdW5jdGlvbihmdCxtZSxnZSxQZSl7cmV0dXJuIGZ0LnNjaGVkdWxlVGFzayhnZSxQZSl9LG9uSW52b2tlVGFzazpmdW5jdGlvbihmdCxtZSxnZSxQZSxNbix1cil7cmV0dXJuIGZ0Lmludm9rZVRhc2soZ2UsUGUsTW4sdXIpfSxvbkNhbmNlbFRhc2s6ZnVuY3Rpb24oZnQsbWUsZ2UsUGUpe3JldHVybiBmdC5jYW5jZWxUYXNrKGdlLFBlKX19LGV0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZnQobWUsZ2UsUGUpe3RoaXMuX3Rhc2tDb3VudHM9e21pY3JvVGFzazowLG1hY3JvVGFzazowLGV2ZW50VGFzazowfSx0aGlzLnpvbmU9bWUsdGhpcy5fcGFyZW50RGVsZWdhdGU9Z2UsdGhpcy5fZm9ya1pTPVBlJiYoUGUmJlBlLm9uRm9yaz9QZTpnZS5fZm9ya1pTKSx0aGlzLl9mb3JrRGxndD1QZSYmKFBlLm9uRm9yaz9nZTpnZS5fZm9ya0RsZ3QpLHRoaXMuX2ZvcmtDdXJyWm9uZT1QZSYmKFBlLm9uRm9yaz90aGlzLnpvbmU6Z2UuX2ZvcmtDdXJyWm9uZSksdGhpcy5faW50ZXJjZXB0WlM9UGUmJihQZS5vbkludGVyY2VwdD9QZTpnZS5faW50ZXJjZXB0WlMpLHRoaXMuX2ludGVyY2VwdERsZ3Q9UGUmJihQZS5vbkludGVyY2VwdD9nZTpnZS5faW50ZXJjZXB0RGxndCksdGhpcy5faW50ZXJjZXB0Q3VyclpvbmU9UGUmJihQZS5vbkludGVyY2VwdD90aGlzLnpvbmU6Z2UuX2ludGVyY2VwdEN1cnJab25lKSx0aGlzLl9pbnZva2VaUz1QZSYmKFBlLm9uSW52b2tlP1BlOmdlLl9pbnZva2VaUyksdGhpcy5faW52b2tlRGxndD1QZSYmKFBlLm9uSW52b2tlP2dlOmdlLl9pbnZva2VEbGd0KSx0aGlzLl9pbnZva2VDdXJyWm9uZT1QZSYmKFBlLm9uSW52b2tlP3RoaXMuem9uZTpnZS5faW52b2tlQ3VyclpvbmUpLHRoaXMuX2hhbmRsZUVycm9yWlM9UGUmJihQZS5vbkhhbmRsZUVycm9yP1BlOmdlLl9oYW5kbGVFcnJvclpTKSx0aGlzLl9oYW5kbGVFcnJvckRsZ3Q9UGUmJihQZS5vbkhhbmRsZUVycm9yP2dlOmdlLl9oYW5kbGVFcnJvckRsZ3QpLHRoaXMuX2hhbmRsZUVycm9yQ3VyclpvbmU9UGUmJihQZS5vbkhhbmRsZUVycm9yP3RoaXMuem9uZTpnZS5faGFuZGxlRXJyb3JDdXJyWm9uZSksdGhpcy5fc2NoZWR1bGVUYXNrWlM9UGUmJihQZS5vblNjaGVkdWxlVGFzaz9QZTpnZS5fc2NoZWR1bGVUYXNrWlMpLHRoaXMuX3NjaGVkdWxlVGFza0RsZ3Q9UGUmJihQZS5vblNjaGVkdWxlVGFzaz9nZTpnZS5fc2NoZWR1bGVUYXNrRGxndCksdGhpcy5fc2NoZWR1bGVUYXNrQ3VyclpvbmU9UGUmJihQZS5vblNjaGVkdWxlVGFzaz90aGlzLnpvbmU6Z2UuX3NjaGVkdWxlVGFza0N1cnJab25lKSx0aGlzLl9pbnZva2VUYXNrWlM9UGUmJihQZS5vbkludm9rZVRhc2s/UGU6Z2UuX2ludm9rZVRhc2taUyksdGhpcy5faW52b2tlVGFza0RsZ3Q9UGUmJihQZS5vbkludm9rZVRhc2s/Z2U6Z2UuX2ludm9rZVRhc2tEbGd0KSx0aGlzLl9pbnZva2VUYXNrQ3VyclpvbmU9UGUmJihQZS5vbkludm9rZVRhc2s/dGhpcy56b25lOmdlLl9pbnZva2VUYXNrQ3VyclpvbmUpLHRoaXMuX2NhbmNlbFRhc2taUz1QZSYmKFBlLm9uQ2FuY2VsVGFzaz9QZTpnZS5fY2FuY2VsVGFza1pTKSx0aGlzLl9jYW5jZWxUYXNrRGxndD1QZSYmKFBlLm9uQ2FuY2VsVGFzaz9nZTpnZS5fY2FuY2VsVGFza0RsZ3QpLHRoaXMuX2NhbmNlbFRhc2tDdXJyWm9uZT1QZSYmKFBlLm9uQ2FuY2VsVGFzaz90aGlzLnpvbmU6Z2UuX2NhbmNlbFRhc2tDdXJyWm9uZSksdGhpcy5faGFzVGFza1pTPW51bGwsdGhpcy5faGFzVGFza0RsZ3Q9bnVsbCx0aGlzLl9oYXNUYXNrRGxndE93bmVyPW51bGwsdGhpcy5faGFzVGFza0N1cnJab25lPW51bGw7dmFyIE1uPVBlJiZQZS5vbkhhc1Rhc2s7KE1ufHxnZSYmZ2UuX2hhc1Rhc2taUykmJih0aGlzLl9oYXNUYXNrWlM9TW4/UGU6emUsdGhpcy5faGFzVGFza0RsZ3Q9Z2UsdGhpcy5faGFzVGFza0RsZ3RPd25lcj10aGlzLHRoaXMuX2hhc1Rhc2tDdXJyWm9uZT1tZSxQZS5vblNjaGVkdWxlVGFza3x8KHRoaXMuX3NjaGVkdWxlVGFza1pTPXplLHRoaXMuX3NjaGVkdWxlVGFza0RsZ3Q9Z2UsdGhpcy5fc2NoZWR1bGVUYXNrQ3VyclpvbmU9dGhpcy56b25lKSxQZS5vbkludm9rZVRhc2t8fCh0aGlzLl9pbnZva2VUYXNrWlM9emUsdGhpcy5faW52b2tlVGFza0RsZ3Q9Z2UsdGhpcy5faW52b2tlVGFza0N1cnJab25lPXRoaXMuem9uZSksUGUub25DYW5jZWxUYXNrfHwodGhpcy5fY2FuY2VsVGFza1pTPXplLHRoaXMuX2NhbmNlbFRhc2tEbGd0PWdlLHRoaXMuX2NhbmNlbFRhc2tDdXJyWm9uZT10aGlzLnpvbmUpKX1yZXR1cm4gZnQucHJvdG90eXBlLmZvcms9ZnVuY3Rpb24obWUsZ2Upe3JldHVybiB0aGlzLl9mb3JrWlM/dGhpcy5fZm9ya1pTLm9uRm9yayh0aGlzLl9mb3JrRGxndCx0aGlzLnpvbmUsbWUsZ2UpOm5ldyBhZShtZSxnZSl9LGZ0LnByb3RvdHlwZS5pbnRlcmNlcHQ9ZnVuY3Rpb24obWUsZ2UsUGUpe3JldHVybiB0aGlzLl9pbnRlcmNlcHRaUz90aGlzLl9pbnRlcmNlcHRaUy5vbkludGVyY2VwdCh0aGlzLl9pbnRlcmNlcHREbGd0LHRoaXMuX2ludGVyY2VwdEN1cnJab25lLG1lLGdlLFBlKTpnZX0sZnQucHJvdG90eXBlLmludm9rZT1mdW5jdGlvbihtZSxnZSxQZSxNbix1cil7cmV0dXJuIHRoaXMuX2ludm9rZVpTP3RoaXMuX2ludm9rZVpTLm9uSW52b2tlKHRoaXMuX2ludm9rZURsZ3QsdGhpcy5faW52b2tlQ3VyclpvbmUsbWUsZ2UsUGUsTW4sdXIpOmdlLmFwcGx5KFBlLE1uKX0sZnQucHJvdG90eXBlLmhhbmRsZUVycm9yPWZ1bmN0aW9uKG1lLGdlKXtyZXR1cm4hdGhpcy5faGFuZGxlRXJyb3JaU3x8dGhpcy5faGFuZGxlRXJyb3JaUy5vbkhhbmRsZUVycm9yKHRoaXMuX2hhbmRsZUVycm9yRGxndCx0aGlzLl9oYW5kbGVFcnJvckN1cnJab25lLG1lLGdlKX0sZnQucHJvdG90eXBlLnNjaGVkdWxlVGFzaz1mdW5jdGlvbihtZSxnZSl7dmFyIFBlPWdlO2lmKHRoaXMuX3NjaGVkdWxlVGFza1pTKXRoaXMuX2hhc1Rhc2taUyYmUGUuX3pvbmVEZWxlZ2F0ZXMucHVzaCh0aGlzLl9oYXNUYXNrRGxndE93bmVyKSwoUGU9dGhpcy5fc2NoZWR1bGVUYXNrWlMub25TY2hlZHVsZVRhc2sodGhpcy5fc2NoZWR1bGVUYXNrRGxndCx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZSxtZSxnZSkpfHwoUGU9Z2UpO2Vsc2UgaWYoZ2Uuc2NoZWR1bGVGbilnZS5zY2hlZHVsZUZuKGdlKTtlbHNle2lmKGdlLnR5cGUhPV9uKXRocm93IG5ldyBFcnJvcigiVGFzayBpcyBtaXNzaW5nIHNjaGVkdWxlRm4uIik7cG4oZ2UpfXJldHVybiBQZX0sZnQucHJvdG90eXBlLmludm9rZVRhc2s9ZnVuY3Rpb24obWUsZ2UsUGUsTW4pe3JldHVybiB0aGlzLl9pbnZva2VUYXNrWlM/dGhpcy5faW52b2tlVGFza1pTLm9uSW52b2tlVGFzayh0aGlzLl9pbnZva2VUYXNrRGxndCx0aGlzLl9pbnZva2VUYXNrQ3VyclpvbmUsbWUsZ2UsUGUsTW4pOmdlLmNhbGxiYWNrLmFwcGx5KFBlLE1uKX0sZnQucHJvdG90eXBlLmNhbmNlbFRhc2s9ZnVuY3Rpb24obWUsZ2Upe3ZhciBQZTtpZih0aGlzLl9jYW5jZWxUYXNrWlMpUGU9dGhpcy5fY2FuY2VsVGFza1pTLm9uQ2FuY2VsVGFzayh0aGlzLl9jYW5jZWxUYXNrRGxndCx0aGlzLl9jYW5jZWxUYXNrQ3VyclpvbmUsbWUsZ2UpO2Vsc2V7aWYoIWdlLmNhbmNlbEZuKXRocm93IEVycm9yKCJUYXNrIGlzIG5vdCBjYW5jZWxhYmxlIik7UGU9Z2UuY2FuY2VsRm4oZ2UpfXJldHVybiBQZX0sZnQucHJvdG90eXBlLmhhc1Rhc2s9ZnVuY3Rpb24obWUsZ2Upe3RyeXt0aGlzLl9oYXNUYXNrWlMmJnRoaXMuX2hhc1Rhc2taUy5vbkhhc1Rhc2sodGhpcy5faGFzVGFza0RsZ3QsdGhpcy5faGFzVGFza0N1cnJab25lLG1lLGdlKX1jYXRjaChQZSl7dGhpcy5oYW5kbGVFcnJvcihtZSxQZSl9fSxmdC5wcm90b3R5cGUuX3VwZGF0ZVRhc2tDb3VudD1mdW5jdGlvbihtZSxnZSl7dmFyIFBlPXRoaXMuX3Rhc2tDb3VudHMsTW49UGVbbWVdLHVyPVBlW21lXT1NbitnZTtpZih1cjwwKXRocm93IG5ldyBFcnJvcigiTW9yZSB0YXNrcyBleGVjdXRlZCB0aGVuIHdlcmUgc2NoZWR1bGVkLiIpOzAhPU1uJiYwIT11cnx8dGhpcy5oYXNUYXNrKHRoaXMuem9uZSx7bWljcm9UYXNrOlBlLm1pY3JvVGFzaz4wLG1hY3JvVGFzazpQZS5tYWNyb1Rhc2s+MCxldmVudFRhc2s6UGUuZXZlbnRUYXNrPjAsY2hhbmdlOm1lfSl9LGZ0fSgpLHFlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZnQobWUsZ2UsUGUsTW4sdXIsaGwpe2lmKHRoaXMuX3pvbmU9bnVsbCx0aGlzLnJ1bkNvdW50PTAsdGhpcy5fem9uZURlbGVnYXRlcz1udWxsLHRoaXMuX3N0YXRlPSJub3RTY2hlZHVsZWQiLHRoaXMudHlwZT1tZSx0aGlzLnNvdXJjZT1nZSx0aGlzLmRhdGE9TW4sdGhpcy5zY2hlZHVsZUZuPXVyLHRoaXMuY2FuY2VsRm49aGwsIVBlKXRocm93IG5ldyBFcnJvcigiY2FsbGJhY2sgaXMgbm90IGRlZmluZWQiKTt0aGlzLmNhbGxiYWNrPVBlO3ZhciB0dD10aGlzO3RoaXMuaW52b2tlPW1lPT09X2kmJk1uJiZNbi51c2VHP2Z0Lmludm9rZVRhc2s6ZnVuY3Rpb24oKXtyZXR1cm4gZnQuaW52b2tlVGFzay5jYWxsKGosdHQsdGhpcyxhcmd1bWVudHMpfX1yZXR1cm4gZnQuaW52b2tlVGFzaz1mdW5jdGlvbihtZSxnZSxQZSl7bWV8fChtZT10aGlzKSx5cisrO3RyeXtyZXR1cm4gbWUucnVuQ291bnQrKyxtZS56b25lLnJ1blRhc2sobWUsZ2UsUGUpfWZpbmFsbHl7MT09eXImJlJuKCkseXItLX19LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmdC5wcm90b3R5cGUsInpvbmUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fem9uZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZnQucHJvdG90eXBlLCJzdGF0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdGF0ZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxmdC5wcm90b3R5cGUuY2FuY2VsU2NoZWR1bGVSZXF1ZXN0PWZ1bmN0aW9uKCl7dGhpcy5fdHJhbnNpdGlvblRvKGdpLHRpKX0sZnQucHJvdG90eXBlLl90cmFuc2l0aW9uVG89ZnVuY3Rpb24obWUsZ2UsUGUpe2lmKHRoaXMuX3N0YXRlIT09Z2UmJnRoaXMuX3N0YXRlIT09UGUpdGhyb3cgbmV3IEVycm9yKCIiLmNvbmNhdCh0aGlzLnR5cGUsIiAnIikuY29uY2F0KHRoaXMuc291cmNlLCInOiBjYW4gbm90IHRyYW5zaXRpb24gdG8gJyIpLmNvbmNhdChtZSwiJywgZXhwZWN0aW5nIHN0YXRlICciKS5jb25jYXQoZ2UsIiciKS5jb25jYXQoUGU/IiBvciAnIitQZSsiJyI6IiIsIiwgd2FzICciKS5jb25jYXQodGhpcy5fc3RhdGUsIicuIikpO3RoaXMuX3N0YXRlPW1lLG1lPT1naSYmKHRoaXMuX3pvbmVEZWxlZ2F0ZXM9bnVsbCl9LGZ0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEmJnR5cGVvZiB0aGlzLmRhdGEuaGFuZGxlSWQ8InUiP3RoaXMuZGF0YS5oYW5kbGVJZC50b1N0cmluZygpOk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0aGlzKX0sZnQucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOnRoaXMudHlwZSxzdGF0ZTp0aGlzLnN0YXRlLHNvdXJjZTp0aGlzLnNvdXJjZSx6b25lOnRoaXMuem9uZS5uYW1lLHJ1bkNvdW50OnRoaXMucnVuQ291bnR9fSxmdH0oKSxydD1YKCJzZXRUaW1lb3V0IiksZHQ9WCgiUHJvbWlzZSIpLFN0PVgoInRoZW4iKSxBdD1bXSxjbj0hMTtmdW5jdGlvbiB5aShmdCl7aWYocWl8fGpbZHRdJiYocWk9altkdF0ucmVzb2x2ZSgwKSkscWkpe3ZhciBtZT1xaVtTdF07bWV8fChtZT1xaS50aGVuKSxtZS5jYWxsKHFpLGZ0KX1lbHNlIGpbcnRdKGZ0LDApfWZ1bmN0aW9uIHBuKGZ0KXswPT09eXImJjA9PT1BdC5sZW5ndGgmJnlpKFJuKSxmdCYmQXQucHVzaChmdCl9ZnVuY3Rpb24gUm4oKXtpZighY24pe2Zvcihjbj0hMDtBdC5sZW5ndGg7KXt2YXIgZnQ9QXQ7QXQ9W107Zm9yKHZhciBtZT0wO21lPGZ0Lmxlbmd0aDttZSsrKXt2YXIgZ2U9ZnRbbWVdO3RyeXtnZS56b25lLnJ1blRhc2soZ2UsbnVsbCxudWxsKX1jYXRjaChQZSl7Y3Iub25VbmhhbmRsZWRFcnJvcihQZSl9fX1jci5taWNyb3Rhc2tEcmFpbkRvbmUoKSxjbj0hMX19dmFyIEV0PXtuYW1lOiJOTyBaT05FIn0sZ2k9Im5vdFNjaGVkdWxlZCIsdGk9InNjaGVkdWxpbmciLEhuPSJzY2hlZHVsZWQiLFFuPSJydW5uaW5nIix6dD0iY2FuY2VsaW5nIixCaT0idW5rbm93biIsX249Im1pY3JvVGFzayIsUG49Im1hY3JvVGFzayIsX2k9ImV2ZW50VGFzayIsT249e30sY3I9e3N5bWJvbDpYLGN1cnJlbnRab25lRnJhbWU6ZnVuY3Rpb24oKXtyZXR1cm4gaXJ9LG9uVW5oYW5kbGVkRXJyb3I6ZHIsbWljcm90YXNrRHJhaW5Eb25lOmRyLHNjaGVkdWxlTWljcm9UYXNrOnBuLHNob3dVbmNhdWdodEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIWFlW1goImlnbm9yZUNvbnNvbGVFcnJvclVuY2F1Z2h0RXJyb3IiKV19LHBhdGNoRXZlbnRUYXJnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5bXX0scGF0Y2hPblByb3BlcnRpZXM6ZHIscGF0Y2hNZXRob2Q6ZnVuY3Rpb24oKXtyZXR1cm4gZHJ9LGJpbmRBcmd1bWVudHM6ZnVuY3Rpb24oKXtyZXR1cm5bXX0scGF0Y2hUaGVuOmZ1bmN0aW9uKCl7cmV0dXJuIGRyfSxwYXRjaE1hY3JvVGFzazpmdW5jdGlvbigpe3JldHVybiBkcn0scGF0Y2hFdmVudFByb3RvdHlwZTpmdW5jdGlvbigpe3JldHVybiBkcn0saXNJRU9yRWRnZTpmdW5jdGlvbigpe3JldHVybiExfSxnZXRHbG9iYWxPYmplY3RzOmZ1bmN0aW9uKCl7fSxPYmplY3REZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbigpe3JldHVybiBkcn0sT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOmZ1bmN0aW9uKCl7fSxPYmplY3RDcmVhdGU6ZnVuY3Rpb24oKXt9LEFycmF5U2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm5bXX0scGF0Y2hDbGFzczpmdW5jdGlvbigpe3JldHVybiBkcn0sd3JhcFdpdGhDdXJyZW50Wm9uZTpmdW5jdGlvbigpe3JldHVybiBkcn0sZmlsdGVyUHJvcGVydGllczpmdW5jdGlvbigpe3JldHVybltdfSxhdHRhY2hPcmlnaW5Ub1BhdGNoZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZHJ9LF9yZWRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKCl7cmV0dXJuIGRyfSxwYXRjaENhbGxiYWNrczpmdW5jdGlvbigpe3JldHVybiBkcn0sbmF0aXZlU2NoZWR1bGVNaWNyb1Rhc2s6eWl9LGlyPXtwYXJlbnQ6bnVsbCx6b25lOm5ldyBhZShudWxsLG51bGwpfSxTYT1udWxsLHlyPTA7ZnVuY3Rpb24gZHIoKXt9RSgiWm9uZSIsIlpvbmUiKSxqLlpvbmU9YWV9KHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3d8fHR5cGVvZiBzZWxmPCJ1IiYmc2VsZnx8Z2xvYmFsKTt2YXIgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHQ9T2JqZWN0LmRlZmluZVByb3BlcnR5LGU9T2JqZWN0LmdldFByb3RvdHlwZU9mLGk9T2JqZWN0LmNyZWF0ZSxyPUFycmF5LnByb3RvdHlwZS5zbGljZSxvPSJhZGRFdmVudExpc3RlbmVyIixhPSJyZW1vdmVFdmVudExpc3RlbmVyIixzPVpvbmUuX19zeW1ib2xfXyhvKSxsPVpvbmUuX19zeW1ib2xfXyhhKSxjPSJ0cnVlIixkPSJmYWxzZSIsdT1ab25lLl9fc3ltYm9sX18oIiIpO2Z1bmN0aW9uIHAoaixKKXtyZXR1cm4gWm9uZS5jdXJyZW50LndyYXAoaixKKX1mdW5jdGlvbiBoKGosSixsZSxFLFYpe3JldHVybiBab25lLmN1cnJlbnQuc2NoZWR1bGVNYWNyb1Rhc2soaixKLGxlLEUsVil9dmFyIG09Wm9uZS5fX3N5bWJvbF9fLF89dHlwZW9mIHdpbmRvdzwidSIsTT1fP3dpbmRvdzp2b2lkIDAseT1fJiZNfHwib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGZ8fGdsb2JhbCx4PSJyZW1vdmVBdHRyaWJ1dGUiO2Z1bmN0aW9uIFIoaixKKXtmb3IodmFyIGxlPWoubGVuZ3RoLTE7bGU+PTA7bGUtLSkiZnVuY3Rpb24iPT10eXBlb2YgaltsZV0mJihqW2xlXT1wKGpbbGVdLEorIl8iK2xlKSk7cmV0dXJuIGp9ZnVuY3Rpb24gQihqKXtyZXR1cm4hanx8ITEhPT1qLndyaXRhYmxlJiYhKCJmdW5jdGlvbiI9PXR5cGVvZiBqLmdldCYmdHlwZW9mIGouc2V0PiJ1Iil9dmFyIGVlPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSxRPSEoIm53ImluIHkpJiZ0eXBlb2YgeS5wcm9jZXNzPCJ1IiYmIltvYmplY3QgcHJvY2Vzc10iPT09e30udG9TdHJpbmcuY2FsbCh5LnByb2Nlc3MpLHdlPSFRJiYhZWUmJiEoIV98fCFNLkhUTUxFbGVtZW50KSxRZT10eXBlb2YgeS5wcm9jZXNzPCJ1IiYmIltvYmplY3QgcHJvY2Vzc10iPT09e30udG9TdHJpbmcuY2FsbCh5LnByb2Nlc3MpJiYhZWUmJiEoIV98fCFNLkhUTUxFbGVtZW50KSxBZT17fSxEPWZ1bmN0aW9uKGope2lmKGo9anx8eS5ldmVudCl7dmFyIEo9QWVbai50eXBlXTtKfHwoSj1BZVtqLnR5cGVdPW0oIk9OX1BST1BFUlRZIitqLnR5cGUpKTt2YXIgVixsZT10aGlzfHxqLnRhcmdldHx8eSxFPWxlW0pdO3JldHVybiB3ZSYmbGU9PT1NJiYiZXJyb3IiPT09ai50eXBlPyEwPT09KFY9RSYmRS5jYWxsKHRoaXMsai5tZXNzYWdlLGouZmlsZW5hbWUsai5saW5lbm8sai5jb2xubyxqLmVycm9yKSkmJmoucHJldmVudERlZmF1bHQoKTpudWxsIT0oVj1FJiZFLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkmJiFWJiZqLnByZXZlbnREZWZhdWx0KCksVn19O2Z1bmN0aW9uIHJlKGosSixsZSl7dmFyIEU9bihqLEopO2lmKCFFJiZsZSYmbihsZSxKKSYmKEU9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksRSYmRS5jb25maWd1cmFibGUpe3ZhciBYPW0oIm9uIitKKyJwYXRjaGVkIik7aWYoIWouaGFzT3duUHJvcGVydHkoWCl8fCFqW1hdKXtkZWxldGUgRS53cml0YWJsZSxkZWxldGUgRS52YWx1ZTt2YXIgWj1FLmdldCxhZT1FLnNldCx6ZT1KLnNsaWNlKDIpLGV0PUFlW3plXTtldHx8KGV0PUFlW3plXT1tKCJPTl9QUk9QRVJUWSIremUpKSxFLnNldD1mdW5jdGlvbihxZSl7dmFyIHJ0PXRoaXM7IXJ0JiZqPT09eSYmKHJ0PXkpLHJ0JiYoImZ1bmN0aW9uIj09dHlwZW9mIHJ0W2V0XSYmcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih6ZSxEKSxhZSYmYWUuY2FsbChydCxudWxsKSxydFtldF09cWUsImZ1bmN0aW9uIj09dHlwZW9mIHFlJiZydC5hZGRFdmVudExpc3RlbmVyKHplLEQsITEpKX0sRS5nZXQ9ZnVuY3Rpb24oKXt2YXIgcWU9dGhpcztpZighcWUmJmo9PT15JiYocWU9eSksIXFlKXJldHVybiBudWxsO3ZhciBydD1xZVtldF07aWYocnQpcmV0dXJuIHJ0O2lmKFope3ZhciBkdD1aLmNhbGwodGhpcyk7aWYoZHQpcmV0dXJuIEUuc2V0LmNhbGwodGhpcyxkdCksImZ1bmN0aW9uIj09dHlwZW9mIHFlW3hdJiZxZS5yZW1vdmVBdHRyaWJ1dGUoSiksZHR9cmV0dXJuIG51bGx9LHQoaixKLEUpLGpbWF09ITB9fX1mdW5jdGlvbiBjZShqLEosbGUpe2lmKEopZm9yKHZhciBFPTA7RTxKLmxlbmd0aDtFKyspcmUoaiwib24iK0pbRV0sbGUpO2Vsc2V7dmFyIFY9W107Zm9yKHZhciBYIGluIGopIm9uIj09WC5zbGljZSgwLDIpJiZWLnB1c2goWCk7Zm9yKHZhciBaPTA7WjxWLmxlbmd0aDtaKyspcmUoaixWW1pdLGxlKX19dmFyIGhlPW0oIm9yaWdpbmFsSW5zdGFuY2UiKTtmdW5jdGlvbiBfZShqKXt2YXIgSj15W2pdO2lmKEope3lbbShqKV09Six5W2pdPWZ1bmN0aW9uKCl7dmFyIFY9Uihhcmd1bWVudHMsaik7c3dpdGNoKFYubGVuZ3RoKXtjYXNlIDA6dGhpc1toZV09bmV3IEo7YnJlYWs7Y2FzZSAxOnRoaXNbaGVdPW5ldyBKKFZbMF0pO2JyZWFrO2Nhc2UgMjp0aGlzW2hlXT1uZXcgSihWWzBdLFZbMV0pO2JyZWFrO2Nhc2UgMzp0aGlzW2hlXT1uZXcgSihWWzBdLFZbMV0sVlsyXSk7YnJlYWs7Y2FzZSA0OnRoaXNbaGVdPW5ldyBKKFZbMF0sVlsxXSxWWzJdLFZbM10pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJBcmcgbGlzdCB0b28gbG9uZy4iKX19LHBlKHlbal0sSik7dmFyIEUsbGU9bmV3IEooZnVuY3Rpb24oKXt9KTtmb3IoRSBpbiBsZSkiWE1MSHR0cFJlcXVlc3QiPT09aiYmInJlc3BvbnNlQmxvYiI9PT1FfHxmdW5jdGlvbihWKXsiZnVuY3Rpb24iPT10eXBlb2YgbGVbVl0/eVtqXS5wcm90b3R5cGVbVl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1toZV1bVl0uYXBwbHkodGhpc1toZV0sYXJndW1lbnRzKX06dCh5W2pdLnByb3RvdHlwZSxWLHtzZXQ6ZnVuY3Rpb24oWCl7ImZ1bmN0aW9uIj09dHlwZW9mIFg/KHRoaXNbaGVdW1ZdPXAoWCxqKyIuIitWKSxwZSh0aGlzW2hlXVtWXSxYKSk6dGhpc1toZV1bVl09WH0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbaGVdW1ZdfX0pfShFKTtmb3IoRSBpbiBKKSJwcm90b3R5cGUiIT09RSYmSi5oYXNPd25Qcm9wZXJ0eShFKSYmKHlbal1bRV09SltFXSl9fWZ1bmN0aW9uICQoaixKLGxlKXtmb3IodmFyIEU9ajtFJiYhRS5oYXNPd25Qcm9wZXJ0eShKKTspRT1lKEUpOyFFJiZqW0pdJiYoRT1qKTt2YXIgVj1tKEopLFg9bnVsbDtpZihFJiYoIShYPUVbVl0pfHwhRS5oYXNPd25Qcm9wZXJ0eShWKSkmJihYPUVbVl09RVtKXSxCKEUmJm4oRSxKKSkpKXt2YXIgYWU9bGUoWCxWLEopO0VbSl09ZnVuY3Rpb24oKXtyZXR1cm4gYWUodGhpcyxhcmd1bWVudHMpfSxwZShFW0pdLFgpfXJldHVybiBYfWZ1bmN0aW9uIGRlKGosSixsZSl7dmFyIEU9bnVsbDtmdW5jdGlvbiBWKFgpe3ZhciBaPVguZGF0YTtyZXR1cm4gWi5hcmdzW1ouY2JJZHhdPWZ1bmN0aW9uKCl7WC5pbnZva2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxFLmFwcGx5KFoudGFyZ2V0LFouYXJncyksWH1FPSQoaixKLGZ1bmN0aW9uKFgpe3JldHVybiBmdW5jdGlvbihaLGFlKXt2YXIgemU9bGUoWixhZSk7cmV0dXJuIHplLmNiSWR4Pj0wJiYiZnVuY3Rpb24iPT10eXBlb2YgYWVbemUuY2JJZHhdP2goemUubmFtZSxhZVt6ZS5jYklkeF0semUsVik6WC5hcHBseShaLGFlKX19KX1mdW5jdGlvbiBwZShqLEope2pbbSgiT3JpZ2luYWxEZWxlZ2F0ZSIpXT1KfXZhciBHZT0hMSxTZT0hMTtmdW5jdGlvbiBsdCgpe2lmKEdlKXJldHVybiBTZTtHZT0hMDt0cnl7dmFyIGo9TS5uYXZpZ2F0b3IudXNlckFnZW50OygtMSE9PWouaW5kZXhPZigiTVNJRSAiKXx8LTEhPT1qLmluZGV4T2YoIlRyaWRlbnQvIil8fC0xIT09ai5pbmRleE9mKCJFZGdlLyIpKSYmKFNlPSEwKX1jYXRjaHt9cmV0dXJuIFNlfVpvbmUuX19sb2FkX3BhdGNoKCJab25lQXdhcmVQcm9taXNlIixmdW5jdGlvbihqLEosbGUpe3ZhciBFPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsVj1PYmplY3QuZGVmaW5lUHJvcGVydHksWj1sZS5zeW1ib2wsYWU9W10semU9ITA9PT1qW1ooIkRJU0FCTEVfV1JBUFBJTkdfVU5DQVVHSFRfUFJPTUlTRV9SRUpFQ1RJT04iKV0sZXQ9WigiUHJvbWlzZSIpLHFlPVooInRoZW4iKSxydD0iX19jcmVhdGlvblRyYWNlX18iO2xlLm9uVW5oYW5kbGVkRXJyb3I9ZnVuY3Rpb24odHQpe2lmKGxlLnNob3dVbmNhdWdodEVycm9yKCkpe3ZhciBQdD10dCYmdHQucmVqZWN0aW9uO1B0P2NvbnNvbGUuZXJyb3IoIlVuaGFuZGxlZCBQcm9taXNlIHJlamVjdGlvbjoiLFB0IGluc3RhbmNlb2YgRXJyb3I/UHQubWVzc2FnZTpQdCwiOyBab25lOiIsdHQuem9uZS5uYW1lLCI7IFRhc2s6Iix0dC50YXNrJiZ0dC50YXNrLnNvdXJjZSwiOyBWYWx1ZToiLFB0LFB0IGluc3RhbmNlb2YgRXJyb3I/UHQuc3RhY2s6dm9pZCAwKTpjb25zb2xlLmVycm9yKHR0KX19LGxlLm1pY3JvdGFza0RyYWluRG9uZT1mdW5jdGlvbigpe2Zvcih2YXIgdHQ9ZnVuY3Rpb24oKXt2YXIgUHQ9YWUuc2hpZnQoKTt0cnl7UHQuem9uZS5ydW5HdWFyZGVkKGZ1bmN0aW9uKCl7dGhyb3cgUHQudGhyb3dPcmlnaW5hbD9QdC5yZWplY3Rpb246UHR9KX1jYXRjaChDdCl7IWZ1bmN0aW9uKHR0KXtsZS5vblVuaGFuZGxlZEVycm9yKHR0KTt0cnl7dmFyIFB0PUpbZHRdOyJmdW5jdGlvbiI9PXR5cGVvZiBQdCYmUHQuY2FsbCh0aGlzLHR0KX1jYXRjaHt9fShDdCl9fTthZS5sZW5ndGg7KXR0KCl9O3ZhciBkdD1aKCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpO2Z1bmN0aW9uIEF0KHR0KXtyZXR1cm4gdHQmJnR0LnRoZW59ZnVuY3Rpb24gY24odHQpe3JldHVybiB0dH1mdW5jdGlvbiBxaSh0dCl7cmV0dXJuIGdlLnJlamVjdCh0dCl9dmFyIHlpPVooInN0YXRlIikscG49WigidmFsdWUiKSxSbj1aKCJmaW5hbGx5IiksRXQ9WigicGFyZW50UHJvbWlzZVZhbHVlIiksZ2k9WigicGFyZW50UHJvbWlzZVN0YXRlIiksdGk9IlByb21pc2UudGhlbiIsSG49bnVsbCxRbj0hMCx6dD0hMSxCaT0wO2Z1bmN0aW9uIF9uKHR0LFB0KXtyZXR1cm4gZnVuY3Rpb24oQ3Qpe3RyeXtjcih0dCxQdCxDdCl9Y2F0Y2goSmUpe2NyKHR0LCExLEplKX19fXZhciBQbj1mdW5jdGlvbigpe3ZhciB0dD0hMTtyZXR1cm4gZnVuY3Rpb24oQ3Qpe3JldHVybiBmdW5jdGlvbigpe3R0fHwodHQ9ITAsQ3QuYXBwbHkobnVsbCxhcmd1bWVudHMpKX19fSxfaT0iUHJvbWlzZSByZXNvbHZlZCB3aXRoIGl0c2VsZiIsT249WigiY3VycmVudFRhc2tUcmFjZSIpO2Z1bmN0aW9uIGNyKHR0LFB0LEN0KXt2YXIgSmU9UG4oKTtpZih0dD09PUN0KXRocm93IG5ldyBUeXBlRXJyb3IoX2kpO2lmKHR0W3lpXT09PUhuKXt2YXIgWnQ9bnVsbDt0cnl7KCJvYmplY3QiPT10eXBlb2YgQ3R8fCJmdW5jdGlvbiI9PXR5cGVvZiBDdCkmJihadD1DdCYmQ3QudGhlbil9Y2F0Y2gobGkpe3JldHVybiBKZShmdW5jdGlvbigpe2NyKHR0LCExLGxpKX0pKCksdHR9aWYoUHQhPT16dCYmQ3QgaW5zdGFuY2VvZiBnZSYmQ3QuaGFzT3duUHJvcGVydHkoeWkpJiZDdC5oYXNPd25Qcm9wZXJ0eShwbikmJkN0W3lpXSE9PUhuKVNhKEN0KSxjcih0dCxDdFt5aV0sQ3RbcG5dKTtlbHNlIGlmKFB0IT09enQmJiJmdW5jdGlvbiI9PXR5cGVvZiBadCl0cnl7WnQuY2FsbChDdCxKZShfbih0dCxQdCkpLEplKF9uKHR0LCExKSkpfWNhdGNoKGxpKXtKZShmdW5jdGlvbigpe2NyKHR0LCExLGxpKX0pKCl9ZWxzZXt0dFt5aV09UHQ7dmFyIExuPXR0W3BuXTtpZih0dFtwbl09Q3QsdHRbUm5dPT09Um4mJlB0PT09UW4mJih0dFt5aV09dHRbZ2ldLHR0W3BuXT10dFtFdF0pLFB0PT09enQmJkN0IGluc3RhbmNlb2YgRXJyb3Ipe3ZhciBEbj1KLmN1cnJlbnRUYXNrJiZKLmN1cnJlbnRUYXNrLmRhdGEmJkouY3VycmVudFRhc2suZGF0YVtydF07RG4mJlYoQ3QsT24se2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLHZhbHVlOkRufSl9Zm9yKHZhciBuaT0wO25pPExuLmxlbmd0aDspeXIodHQsTG5bbmkrK10sTG5bbmkrK10sTG5bbmkrK10sTG5bbmkrK10pO2lmKDA9PUxuLmxlbmd0aCYmUHQ9PXp0KXt0dFt5aV09Qmk7dmFyIGlpPUN0O3RyeXt0aHJvdyBuZXcgRXJyb3IoIlVuY2F1Z2h0IChpbiBwcm9taXNlKTogIitmdW5jdGlvbih0dCl7cmV0dXJuIHR0JiZ0dC50b1N0cmluZz09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc/KHR0LmNvbnN0cnVjdG9yJiZ0dC5jb25zdHJ1Y3Rvci5uYW1lfHwiIikrIjogIitKU09OLnN0cmluZ2lmeSh0dCk6dHQ/dHQudG9TdHJpbmcoKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodHQpfShDdCkrKEN0JiZDdC5zdGFjaz8iXG4iK0N0LnN0YWNrOiIiKSl9Y2F0Y2gobGkpe2lpPWxpfXplJiYoaWkudGhyb3dPcmlnaW5hbD0hMCksaWkucmVqZWN0aW9uPUN0LGlpLnByb21pc2U9dHQsaWkuem9uZT1KLmN1cnJlbnQsaWkudGFzaz1KLmN1cnJlbnRUYXNrLGFlLnB1c2goaWkpLGxlLnNjaGVkdWxlTWljcm9UYXNrKCl9fX1yZXR1cm4gdHR9dmFyIGlyPVooInJlamVjdGlvbkhhbmRsZWRIYW5kbGVyIik7ZnVuY3Rpb24gU2EodHQpe2lmKHR0W3lpXT09PUJpKXt0cnl7dmFyIFB0PUpbaXJdO1B0JiYiZnVuY3Rpb24iPT10eXBlb2YgUHQmJlB0LmNhbGwodGhpcyx7cmVqZWN0aW9uOnR0W3BuXSxwcm9taXNlOnR0fSl9Y2F0Y2h7fXR0W3lpXT16dDtmb3IodmFyIEN0PTA7Q3Q8YWUubGVuZ3RoO0N0KyspdHQ9PT1hZVtDdF0ucHJvbWlzZSYmYWUuc3BsaWNlKEN0LDEpfX1mdW5jdGlvbiB5cih0dCxQdCxDdCxKZSxadCl7U2EodHQpO3ZhciBMbj10dFt5aV0sRG49TG4/ImZ1bmN0aW9uIj09dHlwZW9mIEplP0plOmNuOiJmdW5jdGlvbiI9PXR5cGVvZiBadD9adDpxaTtQdC5zY2hlZHVsZU1pY3JvVGFzayh0aSxmdW5jdGlvbigpe3RyeXt2YXIgbmk9dHRbcG5dLGlpPSEhQ3QmJlJuPT09Q3RbUm5dO2lpJiYoQ3RbRXRdPW5pLEN0W2dpXT1Mbik7dmFyIGxpPVB0LnJ1bihEbix2b2lkIDAsaWkmJkRuIT09cWkmJkRuIT09Y24/W106W25pXSk7Y3IoQ3QsITAsbGkpfWNhdGNoKHhpKXtjcihDdCwhMSx4aSl9fSxDdCl9dmFyIGZ0PWZ1bmN0aW9uKCl7fSxtZT1qLkFnZ3JlZ2F0ZUVycm9yLGdlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdHQoUHQpe3ZhciBDdD10aGlzO2lmKCEoQ3QgaW5zdGFuY2VvZiB0dCkpdGhyb3cgbmV3IEVycm9yKCJNdXN0IGJlIGFuIGluc3RhbmNlb2YgUHJvbWlzZS4iKTtDdFt5aV09SG4sQ3RbcG5dPVtdO3RyeXt2YXIgSmU9UG4oKTtQdCYmUHQoSmUoX24oQ3QsUW4pKSxKZShfbihDdCx6dCkpKX1jYXRjaChadCl7Y3IoQ3QsITEsWnQpfX1yZXR1cm4gdHQudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24gWm9uZUF3YXJlUHJvbWlzZSgpIHsgW25hdGl2ZSBjb2RlXSB9In0sdHQucmVzb2x2ZT1mdW5jdGlvbihQdCl7cmV0dXJuIGNyKG5ldyB0aGlzKG51bGwpLFFuLFB0KX0sdHQucmVqZWN0PWZ1bmN0aW9uKFB0KXtyZXR1cm4gY3IobmV3IHRoaXMobnVsbCksenQsUHQpfSx0dC5hbnk9ZnVuY3Rpb24oUHQpe2lmKCFQdHx8ImZ1bmN0aW9uIiE9dHlwZW9mIFB0W1N5bWJvbC5pdGVyYXRvcl0pcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBtZShbXSwiQWxsIHByb21pc2VzIHdlcmUgcmVqZWN0ZWQiKSk7dmFyIEN0PVtdLEplPTA7dHJ5e2Zvcih2YXIgWnQ9MCxMbj1QdDtadDxMbi5sZW5ndGg7WnQrKylKZSsrLEN0LnB1c2godHQucmVzb2x2ZShMbltadF0pKX1jYXRjaHtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IG1lKFtdLCJBbGwgcHJvbWlzZXMgd2VyZSByZWplY3RlZCIpKX1pZigwPT09SmUpcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBtZShbXSwiQWxsIHByb21pc2VzIHdlcmUgcmVqZWN0ZWQiKSk7dmFyIG5pPSExLGlpPVtdO3JldHVybiBuZXcgdHQoZnVuY3Rpb24obGkseGkpe2Zvcih2YXIgcHI9MDtwcjxDdC5sZW5ndGg7cHIrKylDdFtwcl0udGhlbihmdW5jdGlvbihObyl7bml8fChuaT0hMCxsaShObykpfSxmdW5jdGlvbihObyl7aWkucHVzaChObyksMD09LS1KZSYmKG5pPSEwLHhpKG5ldyBtZShpaSwiQWxsIHByb21pc2VzIHdlcmUgcmVqZWN0ZWQiKSkpfSl9KX0sdHQucmFjZT1mdW5jdGlvbihQdCl7dmFyIEN0LEplLFp0PW5ldyB0aGlzKGZ1bmN0aW9uKHhpLHByKXtDdD14aSxKZT1wcn0pO2Z1bmN0aW9uIExuKHhpKXtDdCh4aSl9ZnVuY3Rpb24gRG4oeGkpe0plKHhpKX1mb3IodmFyIG5pPTAsaWk9UHQ7bmk8aWkubGVuZ3RoO25pKyspe3ZhciBsaT1paVtuaV07QXQobGkpfHwobGk9dGhpcy5yZXNvbHZlKGxpKSksbGkudGhlbihMbixEbil9cmV0dXJuIFp0fSx0dC5hbGw9ZnVuY3Rpb24oUHQpe3JldHVybiB0dC5hbGxXaXRoQ2FsbGJhY2soUHQpfSx0dC5hbGxTZXR0bGVkPWZ1bmN0aW9uKFB0KXtyZXR1cm4odGhpcyYmdGhpcy5wcm90b3R5cGUgaW5zdGFuY2VvZiB0dD90aGlzOnR0KS5hbGxXaXRoQ2FsbGJhY2soUHQse3RoZW5DYWxsYmFjazpmdW5jdGlvbihKZSl7cmV0dXJue3N0YXR1czoiZnVsZmlsbGVkIix2YWx1ZTpKZX19LGVycm9yQ2FsbGJhY2s6ZnVuY3Rpb24oSmUpe3JldHVybntzdGF0dXM6InJlamVjdGVkIixyZWFzb246SmV9fX0pfSx0dC5hbGxXaXRoQ2FsbGJhY2s9ZnVuY3Rpb24oUHQsQ3Qpe2Zvcih2YXIgSmUsWnQsTG49bmV3IHRoaXMoZnVuY3Rpb24oWnIseG8pe0plPVpyLFp0PXhvfSksRG49MixuaT0wLGlpPVtdLGxpPWZ1bmN0aW9uKFpyKXtBdChacil8fChacj14aS5yZXNvbHZlKFpyKSk7dmFyIHhvPW5pO3RyeXtaci50aGVuKGZ1bmN0aW9uKEhyKXtpaVt4b109Q3Q/Q3QudGhlbkNhbGxiYWNrKEhyKTpIciwwPT0tLURuJiZKZShpaSl9LGZ1bmN0aW9uKEhyKXtDdD8oaWlbeG9dPUN0LmVycm9yQ2FsbGJhY2soSHIpLDA9PS0tRG4mJkplKGlpKSk6WnQoSHIpfSl9Y2F0Y2goSHIpe1p0KEhyKX1EbisrLG5pKyt9LHhpPXRoaXMscHI9MCxObz1QdDtwcjxOby5sZW5ndGg7cHIrKylsaShOb1twcl0pO3JldHVybiAwPT0oRG4tPTIpJiZKZShpaSksTG59LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0dC5wcm90b3R5cGUsU3ltYm9sLnRvU3RyaW5nVGFnLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iUHJvbWlzZSJ9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHR0LnByb3RvdHlwZSxTeW1ib2wuc3BlY2llcyx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHR0fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHR0LnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKFB0LEN0KXt2YXIgSmUsWnQ9bnVsbD09PShKZT10aGlzLmNvbnN0cnVjdG9yKXx8dm9pZCAwPT09SmU/dm9pZCAwOkplW1N5bWJvbC5zcGVjaWVzXTsoIVp0fHwiZnVuY3Rpb24iIT10eXBlb2YgWnQpJiYoWnQ9dGhpcy5jb25zdHJ1Y3Rvcnx8dHQpO3ZhciBMbj1uZXcgWnQoZnQpLERuPUouY3VycmVudDtyZXR1cm4gdGhpc1t5aV09PUhuP3RoaXNbcG5dLnB1c2goRG4sTG4sUHQsQ3QpOnlyKHRoaXMsRG4sTG4sUHQsQ3QpLExufSx0dC5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24oUHQpe3JldHVybiB0aGlzLnRoZW4obnVsbCxQdCl9LHR0LnByb3RvdHlwZS5maW5hbGx5PWZ1bmN0aW9uKFB0KXt2YXIgQ3QsSmU9bnVsbD09PShDdD10aGlzLmNvbnN0cnVjdG9yKXx8dm9pZCAwPT09Q3Q/dm9pZCAwOkN0W1N5bWJvbC5zcGVjaWVzXTsoIUplfHwiZnVuY3Rpb24iIT10eXBlb2YgSmUpJiYoSmU9dHQpO3ZhciBadD1uZXcgSmUoZnQpO1p0W1JuXT1Sbjt2YXIgTG49Si5jdXJyZW50O3JldHVybiB0aGlzW3lpXT09SG4/dGhpc1twbl0ucHVzaChMbixadCxQdCxQdCk6eXIodGhpcyxMbixadCxQdCxQdCksWnR9LHR0fSgpO2dlLnJlc29sdmU9Z2UucmVzb2x2ZSxnZS5yZWplY3Q9Z2UucmVqZWN0LGdlLnJhY2U9Z2UucmFjZSxnZS5hbGw9Z2UuYWxsO3ZhciBQZT1qW2V0XT1qLlByb21pc2U7ai5Qcm9taXNlPWdlO3ZhciBNbj1aKCJ0aGVuUGF0Y2hlZCIpO2Z1bmN0aW9uIHVyKHR0KXt2YXIgUHQ9dHQucHJvdG90eXBlLEN0PUUoUHQsInRoZW4iKTtpZighQ3R8fCExIT09Q3Qud3JpdGFibGUmJkN0LmNvbmZpZ3VyYWJsZSl7dmFyIEplPVB0LnRoZW47UHRbcWVdPUplLHR0LnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKFp0LExuKXt2YXIgRG49dGhpcztyZXR1cm4gbmV3IGdlKGZ1bmN0aW9uKGlpLGxpKXtKZS5jYWxsKERuLGlpLGxpKX0pLnRoZW4oWnQsTG4pfSx0dFtNbl09ITB9fXJldHVybiBsZS5wYXRjaFRoZW49dXIsUGUmJih1cihQZSksJChqLCJmZXRjaCIsZnVuY3Rpb24odHQpe3JldHVybiBmdW5jdGlvbih0dCl7cmV0dXJuIGZ1bmN0aW9uKFB0LEN0KXt2YXIgSmU9dHQuYXBwbHkoUHQsQ3QpO2lmKEplIGluc3RhbmNlb2YgZ2UpcmV0dXJuIEplO3ZhciBadD1KZS5jb25zdHJ1Y3RvcjtyZXR1cm4gWnRbTW5dfHx1cihadCksSmV9fSh0dCl9KSksUHJvbWlzZVtKLl9fc3ltYm9sX18oInVuY2F1Z2h0UHJvbWlzZUVycm9ycyIpXT1hZSxnZX0pLFpvbmUuX19sb2FkX3BhdGNoKCJ0b1N0cmluZyIsZnVuY3Rpb24oail7dmFyIEo9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLGxlPW0oIk9yaWdpbmFsRGVsZWdhdGUiKSxFPW0oIlByb21pc2UiKSxWPW0oIkVycm9yIiksWD1mdW5jdGlvbigpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzKXt2YXIgZXQ9dGhpc1tsZV07aWYoZXQpcmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGV0P0ouY2FsbChldCk6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGV0KTtpZih0aGlzPT09UHJvbWlzZSl7dmFyIHFlPWpbRV07aWYocWUpcmV0dXJuIEouY2FsbChxZSl9aWYodGhpcz09PUVycm9yKXt2YXIgcnQ9altWXTtpZihydClyZXR1cm4gSi5jYWxsKHJ0KX19cmV0dXJuIEouY2FsbCh0aGlzKX07WFtsZV09SixGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc9WDt2YXIgWj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO09iamVjdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgUHJvbWlzZSYmdGhpcyBpbnN0YW5jZW9mIFByb21pc2U/IltvYmplY3QgUHJvbWlzZV0iOlouY2FsbCh0aGlzKX19KTt2YXIgTXQ9ITE7aWYodHlwZW9mIHdpbmRvdzwidSIpdHJ5e3ZhciBwdD1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtNdD0hMH19KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIscHQscHQpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixwdCxwdCl9Y2F0Y2h7TXQ9ITF9dmFyIHNpLE5pLExpLFksTCxrZT17dXNlRzohMH0sVG49e30sd3Q9e30sb249bmV3IFJlZ0V4cCgiXiIrdSsiKFxcdyspKHRydWV8ZmFsc2UpJCIpLENlPW0oInByb3BhZ2F0aW9uU3RvcHBlZCIpO2Z1bmN0aW9uIG10KGosSil7dmFyIGxlPShKP0ooaik6aikrZCxFPShKP0ooaik6aikrYyxWPXUrbGUsWD11K0U7VG5bal09e30sVG5bal1bZF09VixUbltqXVtjXT1YfWZ1bmN0aW9uIGh0KGosSixsZSxFKXt2YXIgVj1FJiZFLmFkZHx8byxYPUUmJkUucm18fGEsWj1FJiZFLmxpc3RlbmVyc3x8ImV2ZW50TGlzdGVuZXJzIixhZT1FJiZFLnJtQWxsfHwicmVtb3ZlQWxsTGlzdGVuZXJzIix6ZT1tKFYpLGV0PSIuIitWKyI6IixxZT0icHJlcGVuZExpc3RlbmVyIixydD0iLiIrcWUrIjoiLGR0PWZ1bmN0aW9uKFJuLEV0LGdpKXtpZighUm4uaXNSZW1vdmVkKXt2YXIgSG4sdGk9Um4uY2FsbGJhY2s7Im9iamVjdCI9PXR5cGVvZiB0aSYmdGkuaGFuZGxlRXZlbnQmJihSbi5jYWxsYmFjaz1mdW5jdGlvbihCaSl7cmV0dXJuIHRpLmhhbmRsZUV2ZW50KEJpKX0sUm4ub3JpZ2luYWxEZWxlZ2F0ZT10aSk7dHJ5e1JuLmludm9rZShSbixFdCxbZ2ldKX1jYXRjaChCaSl7SG49Qml9dmFyIFFuPVJuLm9wdGlvbnM7cmV0dXJuIFFuJiYib2JqZWN0Ij09dHlwZW9mIFFuJiZRbi5vbmNlJiZFdFtYXS5jYWxsKEV0LGdpLnR5cGUsUm4ub3JpZ2luYWxEZWxlZ2F0ZT9Sbi5vcmlnaW5hbERlbGVnYXRlOlJuLmNhbGxiYWNrLFFuKSxIbn19O2Z1bmN0aW9uIFN0KFJuLEV0LGdpKXtpZihFdD1FdHx8ai5ldmVudCl7dmFyIHRpPVJufHxFdC50YXJnZXR8fGosSG49dGlbVG5bRXQudHlwZV1bZ2k/YzpkXV07aWYoSG4pe3ZhciBRbj1bXTtpZigxPT09SG4ubGVuZ3RoKSh6dD1kdChIblswXSx0aSxFdCkpJiZRbi5wdXNoKHp0KTtlbHNlIGZvcih2YXIgQmk9SG4uc2xpY2UoKSxfbj0wO19uPEJpLmxlbmd0aCYmKCFFdHx8ITAhPT1FdFtDZV0pO19uKyspe3ZhciB6dDsoenQ9ZHQoQmlbX25dLHRpLEV0KSkmJlFuLnB1c2goenQpfWlmKDE9PT1Rbi5sZW5ndGgpdGhyb3cgUW5bMF07dmFyIFBuPWZ1bmN0aW9uKF9pKXt2YXIgT249UW5bX2ldO0oubmF0aXZlU2NoZWR1bGVNaWNyb1Rhc2soZnVuY3Rpb24oKXt0aHJvdyBPbn0pfTtmb3IoX249MDtfbjxRbi5sZW5ndGg7X24rKylQbihfbil9fX12YXIgQXQ9ZnVuY3Rpb24oUm4pe3JldHVybiBTdCh0aGlzLFJuLCExKX0sY249ZnVuY3Rpb24oUm4pe3JldHVybiBTdCh0aGlzLFJuLCEwKX07ZnVuY3Rpb24gcWkoUm4sRXQpe2lmKCFSbilyZXR1cm4hMTt2YXIgZ2k9ITA7RXQmJnZvaWQgMCE9PUV0LnVzZUcmJihnaT1FdC51c2VHKTt2YXIgdGk9RXQmJkV0LnZoLEhuPSEwO0V0JiZ2b2lkIDAhPT1FdC5jaGtEdXAmJihIbj1FdC5jaGtEdXApO3ZhciBRbj0hMTtFdCYmdm9pZCAwIT09RXQucnQmJihRbj1FdC5ydCk7Zm9yKHZhciB6dD1Sbjt6dCYmIXp0Lmhhc093blByb3BlcnR5KFYpOyl6dD1lKHp0KTtpZighenQmJlJuW1ZdJiYoenQ9Um4pLCF6dHx8enRbemVdKXJldHVybiExO3ZhciBpcixCaT1FdCYmRXQuZXZlbnROYW1lVG9TdHJpbmcsX249e30sUG49enRbemVdPXp0W1ZdLF9pPXp0W20oWCldPXp0W1hdLE9uPXp0W20oWildPXp0W1pdLGNyPXp0W20oYWUpXT16dFthZV07RXQmJkV0LnByZXBlbmQmJihpcj16dFttKEV0LnByZXBlbmQpXT16dFtFdC5wcmVwZW5kXSk7dmFyIFBlPWdpP2Z1bmN0aW9uKEplKXtpZighX24uaXNFeGlzdGluZylyZXR1cm4gUG4uY2FsbChfbi50YXJnZXQsX24uZXZlbnROYW1lLF9uLmNhcHR1cmU/Y246QXQsX24ub3B0aW9ucyl9OmZ1bmN0aW9uKEplKXtyZXR1cm4gUG4uY2FsbChfbi50YXJnZXQsX24uZXZlbnROYW1lLEplLmludm9rZSxfbi5vcHRpb25zKX0sTW49Z2k/ZnVuY3Rpb24oSmUpe2lmKCFKZS5pc1JlbW92ZWQpe3ZhciBadD1UbltKZS5ldmVudE5hbWVdLExuPXZvaWQgMDtadCYmKExuPVp0W0plLmNhcHR1cmU/YzpkXSk7dmFyIERuPUxuJiZKZS50YXJnZXRbTG5dO2lmKERuKWZvcih2YXIgbmk9MDtuaTxEbi5sZW5ndGg7bmkrKylpZihEbltuaV09PT1KZSl7RG4uc3BsaWNlKG5pLDEpLEplLmlzUmVtb3ZlZD0hMCwwPT09RG4ubGVuZ3RoJiYoSmUuYWxsUmVtb3ZlZD0hMCxKZS50YXJnZXRbTG5dPW51bGwpO2JyZWFrfX1pZihKZS5hbGxSZW1vdmVkKXJldHVybiBfaS5jYWxsKEplLnRhcmdldCxKZS5ldmVudE5hbWUsSmUuY2FwdHVyZT9jbjpBdCxKZS5vcHRpb25zKX06ZnVuY3Rpb24oSmUpe3JldHVybiBfaS5jYWxsKEplLnRhcmdldCxKZS5ldmVudE5hbWUsSmUuaW52b2tlLEplLm9wdGlvbnMpfSxobD1FdCYmRXQuZGlmZj9FdC5kaWZmOmZ1bmN0aW9uKEplLFp0KXt2YXIgTG49dHlwZW9mIFp0O3JldHVybiJmdW5jdGlvbiI9PT1MbiYmSmUuY2FsbGJhY2s9PT1adHx8Im9iamVjdCI9PT1MbiYmSmUub3JpZ2luYWxEZWxlZ2F0ZT09PVp0fSx0dD1ab25lW20oIlVOUEFUQ0hFRF9FVkVOVFMiKV0sUHQ9alttKCJQQVNTSVZFX0VWRU5UUyIpXSxDdD1mdW5jdGlvbihKZSxadCxMbixEbixuaSxpaSl7cmV0dXJuIHZvaWQgMD09PW5pJiYobmk9ITEpLHZvaWQgMD09PWlpJiYoaWk9ITEpLGZ1bmN0aW9uKCl7dmFyIGxpPXRoaXN8fGoseGk9YXJndW1lbnRzWzBdO0V0JiZFdC50cmFuc2ZlckV2ZW50TmFtZSYmKHhpPUV0LnRyYW5zZmVyRXZlbnROYW1lKHhpKSk7dmFyIHByPWFyZ3VtZW50c1sxXTtpZighcHIpcmV0dXJuIEplLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihRJiYidW5jYXVnaHRFeGNlcHRpb24iPT09eGkpcmV0dXJuIEplLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgTm89ITE7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHByKXtpZighcHIuaGFuZGxlRXZlbnQpcmV0dXJuIEplLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtObz0hMH1pZighdGl8fHRpKEplLHByLGxpLGFyZ3VtZW50cykpe3ZhciBZYz1NdCYmISFQdCYmLTEhPT1QdC5pbmRleE9mKHhpKSxacj1mdW5jdGlvbihKZSxadCl7cmV0dXJuIU10JiYib2JqZWN0Ij09dHlwZW9mIEplJiZKZT8hIUplLmNhcHR1cmU6TXQmJlp0PyJib29sZWFuIj09dHlwZW9mIEplP3tjYXB0dXJlOkplLHBhc3NpdmU6ITB9OkplPyJvYmplY3QiPT10eXBlb2YgSmUmJiExIT09SmUucGFzc2l2ZT9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sSmUpLHtwYXNzaXZlOiEwfSk6SmU6e3Bhc3NpdmU6ITB9OkplfShhcmd1bWVudHNbMl0sWWMpO2lmKHR0KWZvcih2YXIgeG89MDt4bzx0dC5sZW5ndGg7eG8rKylpZih4aT09PXR0W3hvXSlyZXR1cm4gWWM/SmUuY2FsbChsaSx4aSxwcixacik6SmUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBIcj0hIVpyJiYoImJvb2xlYW4iPT10eXBlb2YgWnJ8fFpyLmNhcHR1cmUpLEltPSEoIVpyfHwib2JqZWN0IiE9dHlwZW9mIFpyKSYmWnIub25jZSxXaWU9Wm9uZS5jdXJyZW50LE9BPVRuW3hpXTtPQXx8KG10KHhpLEJpKSxPQT1Ublt4aV0pO3ZhciBZVj1PQVtIcj9jOmRdLEFtPWxpW1lWXSxRVj0hMTtpZihBbSl7aWYoUVY9ITAsSG4pZm9yKHhvPTA7eG88QW0ubGVuZ3RoO3hvKyspaWYoaGwoQW1beG9dLHByKSlyZXR1cm59ZWxzZSBBbT1saVtZVl09W107dmFyIG5DLFpWPWxpLmNvbnN0cnVjdG9yLm5hbWUsS1Y9d3RbWlZdO0tWJiYobkM9S1ZbeGldKSxuQ3x8KG5DPVpWK1p0KyhCaT9CaSh4aSk6eGkpKSxfbi5vcHRpb25zPVpyLEltJiYoX24ub3B0aW9ucy5vbmNlPSExKSxfbi50YXJnZXQ9bGksX24uY2FwdHVyZT1Icixfbi5ldmVudE5hbWU9eGksX24uaXNFeGlzdGluZz1RVjt2YXIgRV89Z2k/a2U6dm9pZCAwO0VfJiYoRV8udGFza0RhdGE9X24pO3ZhciBZZD1XaWUuc2NoZWR1bGVFdmVudFRhc2sobkMscHIsRV8sTG4sRG4pO2lmKF9uLnRhcmdldD1udWxsLEVfJiYoRV8udGFza0RhdGE9bnVsbCksSW0mJihaci5vbmNlPSEwKSwhTXQmJiJib29sZWFuIj09dHlwZW9mIFlkLm9wdGlvbnN8fChZZC5vcHRpb25zPVpyKSxZZC50YXJnZXQ9bGksWWQuY2FwdHVyZT1IcixZZC5ldmVudE5hbWU9eGksTm8mJihZZC5vcmlnaW5hbERlbGVnYXRlPXByKSxpaT9BbS51bnNoaWZ0KFlkKTpBbS5wdXNoKFlkKSxuaSlyZXR1cm4gbGl9fX07cmV0dXJuIHp0W1ZdPUN0KFBuLGV0LFBlLE1uLFFuKSxpciYmKHp0W3FlXT1DdChpcixydCxmdW5jdGlvbihKZSl7cmV0dXJuIGlyLmNhbGwoX24udGFyZ2V0LF9uLmV2ZW50TmFtZSxKZS5pbnZva2UsX24ub3B0aW9ucyl9LE1uLFFuLCEwKSksenRbWF09ZnVuY3Rpb24oKXt2YXIgSmU9dGhpc3x8aixadD1hcmd1bWVudHNbMF07RXQmJkV0LnRyYW5zZmVyRXZlbnROYW1lJiYoWnQ9RXQudHJhbnNmZXJFdmVudE5hbWUoWnQpKTt2YXIgTG49YXJndW1lbnRzWzJdLERuPSEhTG4mJigiYm9vbGVhbiI9PXR5cGVvZiBMbnx8TG4uY2FwdHVyZSksbmk9YXJndW1lbnRzWzFdO2lmKCFuaSlyZXR1cm4gX2kuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKCF0aXx8dGkoX2ksbmksSmUsYXJndW1lbnRzKSl7dmFyIGxpLGlpPVRuW1p0XTtpaSYmKGxpPWlpW0RuP2M6ZF0pO3ZhciB4aT1saSYmSmVbbGldO2lmKHhpKWZvcih2YXIgcHI9MDtwcjx4aS5sZW5ndGg7cHIrKyl7dmFyIE5vPXhpW3ByXTtpZihobChObyxuaSkpcmV0dXJuIHhpLnNwbGljZShwciwxKSxOby5pc1JlbW92ZWQ9ITAsMD09PXhpLmxlbmd0aCYmKE5vLmFsbFJlbW92ZWQ9ITAsSmVbbGldPW51bGwsInN0cmluZyI9PXR5cGVvZiBadCkmJihKZVt1KyJPTl9QUk9QRVJUWSIrWnRdPW51bGwpLE5vLnpvbmUuY2FuY2VsVGFzayhObyksUW4/SmU6dm9pZCAwfXJldHVybiBfaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSx6dFtaXT1mdW5jdGlvbigpe3ZhciBKZT10aGlzfHxqLFp0PWFyZ3VtZW50c1swXTtFdCYmRXQudHJhbnNmZXJFdmVudE5hbWUmJihadD1FdC50cmFuc2ZlckV2ZW50TmFtZShadCkpO2Zvcih2YXIgTG49W10sRG49b2UoSmUsQmk/QmkoWnQpOlp0KSxuaT0wO25pPERuLmxlbmd0aDtuaSsrKXt2YXIgaWk9RG5bbmldO0xuLnB1c2goaWkub3JpZ2luYWxEZWxlZ2F0ZT9paS5vcmlnaW5hbERlbGVnYXRlOmlpLmNhbGxiYWNrKX1yZXR1cm4gTG59LHp0W2FlXT1mdW5jdGlvbigpe3ZhciBKZT10aGlzfHxqLFp0PWFyZ3VtZW50c1swXTtpZihadCl7RXQmJkV0LnRyYW5zZmVyRXZlbnROYW1lJiYoWnQ9RXQudHJhbnNmZXJFdmVudE5hbWUoWnQpKTt2YXIgeGk9VG5bWnRdO2lmKHhpKXt2YXIgWWM9SmVbeGlbZF1dLFpyPUplW3hpW2NdXTtpZihZYylmb3IodmFyIHhvPVljLnNsaWNlKCksRG49MDtEbjx4by5sZW5ndGg7RG4rKyl0aGlzW1hdLmNhbGwodGhpcyxadCwoSHI9eG9bRG5dKS5vcmlnaW5hbERlbGVnYXRlP0hyLm9yaWdpbmFsRGVsZWdhdGU6SHIuY2FsbGJhY2ssSHIub3B0aW9ucyk7aWYoWnIpZm9yKHhvPVpyLnNsaWNlKCksRG49MDtEbjx4by5sZW5ndGg7RG4rKyl7dmFyIEhyO3RoaXNbWF0uY2FsbCh0aGlzLFp0LChIcj14b1tEbl0pLm9yaWdpbmFsRGVsZWdhdGU/SHIub3JpZ2luYWxEZWxlZ2F0ZTpIci5jYWxsYmFjayxIci5vcHRpb25zKX19fWVsc2V7dmFyIExuPU9iamVjdC5rZXlzKEplKTtmb3IoRG49MDtEbjxMbi5sZW5ndGg7RG4rKyl7dmFyIGlpPW9uLmV4ZWMoTG5bRG5dKSxsaT1paSYmaWlbMV07bGkmJiJyZW1vdmVMaXN0ZW5lciIhPT1saSYmdGhpc1thZV0uY2FsbCh0aGlzLGxpKX10aGlzW2FlXS5jYWxsKHRoaXMsInJlbW92ZUxpc3RlbmVyIil9aWYoUW4pcmV0dXJuIHRoaXN9LHBlKHp0W1ZdLFBuKSxwZSh6dFtYXSxfaSksY3ImJnBlKHp0W2FlXSxjciksT24mJnBlKHp0W1pdLE9uKSwhMH1mb3IodmFyIHlpPVtdLHBuPTA7cG48bGUubGVuZ3RoO3BuKyspeWlbcG5dPXFpKGxlW3BuXSxFKTtyZXR1cm4geWl9ZnVuY3Rpb24gb2UoaixKKXtpZighSil7dmFyIGxlPVtdO2Zvcih2YXIgRSBpbiBqKXt2YXIgVj1vbi5leGVjKEUpLFg9ViYmVlsxXTtpZihYJiYoIUp8fFg9PT1KKSl7dmFyIFo9altFXTtpZihaKWZvcih2YXIgYWU9MDthZTxaLmxlbmd0aDthZSsrKWxlLnB1c2goWlthZV0pfX1yZXR1cm4gbGV9dmFyIHplPVRuW0pdO3plfHwobXQoSiksemU9VG5bSl0pO3ZhciBldD1qW3plW2RdXSxxZT1qW3plW2NdXTtyZXR1cm4gZXQ/cWU/ZXQuY29uY2F0KHFlKTpldC5zbGljZSgpOnFlP3FlLnNsaWNlKCk6W119ZnVuY3Rpb24gYXQoaixKKXt2YXIgbGU9ai5FdmVudDtsZSYmbGUucHJvdG90eXBlJiZKLnBhdGNoTWV0aG9kKGxlLnByb3RvdHlwZSwic3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uIixmdW5jdGlvbihFKXtyZXR1cm4gZnVuY3Rpb24oVixYKXtWW0NlXT0hMCxFJiZFLmFwcGx5KFYsWCl9fSl9ZnVuY3Rpb24gWWUoaixKLGxlLEUsVil7dmFyIFg9Wm9uZS5fX3N5bWJvbF9fKEUpO2lmKCFKW1hdKXt2YXIgWj1KW1hdPUpbRV07SltFXT1mdW5jdGlvbihhZSx6ZSxldCl7cmV0dXJuIHplJiZ6ZS5wcm90b3R5cGUmJlYuZm9yRWFjaChmdW5jdGlvbihxZSl7dmFyIHJ0PSIiLmNvbmNhdChsZSwiLiIpLmNvbmNhdChFLCI6OiIpK3FlLGR0PXplLnByb3RvdHlwZTt0cnl7aWYoZHQuaGFzT3duUHJvcGVydHkocWUpKXt2YXIgU3Q9ai5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZHQscWUpO1N0JiZTdC52YWx1ZT8oU3QudmFsdWU9ai53cmFwV2l0aEN1cnJlbnRab25lKFN0LnZhbHVlLHJ0KSxqLl9yZWRlZmluZVByb3BlcnR5KHplLnByb3RvdHlwZSxxZSxTdCkpOmR0W3FlXSYmKGR0W3FlXT1qLndyYXBXaXRoQ3VycmVudFpvbmUoZHRbcWVdLHJ0KSl9ZWxzZSBkdFtxZV0mJihkdFtxZV09ai53cmFwV2l0aEN1cnJlbnRab25lKGR0W3FlXSxydCkpfWNhdGNoe319KSxaLmNhbGwoSixhZSx6ZSxldCl9LGouYXR0YWNoT3JpZ2luVG9QYXRjaGVkKEpbRV0sWil9fWZ1bmN0aW9uIF90KGosSixsZSl7aWYoIWxlfHwwPT09bGUubGVuZ3RoKXJldHVybiBKO3ZhciBFPWxlLmZpbHRlcihmdW5jdGlvbihYKXtyZXR1cm4gWC50YXJnZXQ9PT1qfSk7aWYoIUV8fDA9PT1FLmxlbmd0aClyZXR1cm4gSjt2YXIgVj1FWzBdLmlnbm9yZVByb3BlcnRpZXM7cmV0dXJuIEouZmlsdGVyKGZ1bmN0aW9uKFgpe3JldHVybi0xPT09Vi5pbmRleE9mKFgpfSl9ZnVuY3Rpb24gdXQoaixKLGxlLEUpe2omJmNlKGosX3QoaixKLGxlKSxFKX1mdW5jdGlvbiBhbihqKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaikuZmlsdGVyKGZ1bmN0aW9uKEope3JldHVybiBKLnN0YXJ0c1dpdGgoIm9uIikmJkoubGVuZ3RoPjJ9KS5tYXAoZnVuY3Rpb24oSil7cmV0dXJuIEouc3Vic3RyaW5nKDIpfSl9ZnVuY3Rpb24geXQoaixKLGxlKXt2YXIgRT1sZS5jb25maWd1cmFibGU7cmV0dXJuIGhuKGosSixsZT1MZShqLEosbGUpLEUpfWZ1bmN0aW9uIGVuKGosSil7cmV0dXJuIGomJmpbTF0mJmpbTF1bSl19ZnVuY3Rpb24gTGUoaixKLGxlKXtyZXR1cm4gT2JqZWN0LmlzRnJvemVuKGxlKXx8KGxlLmNvbmZpZ3VyYWJsZT0hMCksbGUuY29uZmlndXJhYmxlfHwoIWpbTF0mJiFPYmplY3QuaXNGcm96ZW4oaikmJk5pKGosTCx7d3JpdGFibGU6ITAsdmFsdWU6e319KSxqW0xdJiYoaltMXVtKXT0hMCkpLGxlfWZ1bmN0aW9uIGhuKGosSixsZSxFKXt0cnl7cmV0dXJuIE5pKGosSixsZSl9Y2F0Y2goWil7aWYoIWxlLmNvbmZpZ3VyYWJsZSl0aHJvdyBaO3R5cGVvZiBFPiJ1Ij9kZWxldGUgbGUuY29uZmlndXJhYmxlOmxlLmNvbmZpZ3VyYWJsZT1FO3RyeXtyZXR1cm4gTmkoaixKLGxlKX1jYXRjaChhZSl7dmFyIFY9ITE7aWYoKCJjcmVhdGVkQ2FsbGJhY2siPT09Snx8ImF0dGFjaGVkQ2FsbGJhY2siPT09Snx8ImRldGFjaGVkQ2FsbGJhY2siPT09Snx8ImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayI9PT1KKSYmKFY9ITApLCFWKXRocm93IGFlO3ZhciBYPW51bGw7dHJ5e1g9SlNPTi5zdHJpbmdpZnkobGUpfWNhdGNoe1g9bGUudG9TdHJpbmcoKX1jb25zb2xlLmxvZygiQXR0ZW1wdGluZyB0byBjb25maWd1cmUgJyIuY29uY2F0KEosIicgd2l0aCBkZXNjcmlwdG9yICciKS5jb25jYXQoWCwiJyBvbiBvYmplY3QgJyIpLmNvbmNhdChqLCInIGFuZCBnb3QgZXJyb3IsIGdpdmluZyB1cDogIikuY29uY2F0KGFlKSl9fX1ab25lLl9fbG9hZF9wYXRjaCgidXRpbCIsZnVuY3Rpb24oaixKLGxlKXt2YXIgRT1hbihqKTtsZS5wYXRjaE9uUHJvcGVydGllcz1jZSxsZS5wYXRjaE1ldGhvZD0kLGxlLmJpbmRBcmd1bWVudHM9UixsZS5wYXRjaE1hY3JvVGFzaz1kZTt2YXIgVj1KLl9fc3ltYm9sX18oIkJMQUNLX0xJU1RFRF9FVkVOVFMiKSxYPUouX19zeW1ib2xfXygiVU5QQVRDSEVEX0VWRU5UUyIpO2pbWF0mJihqW1ZdPWpbWF0pLGpbVl0mJihKW1ZdPUpbWF09altWXSksbGUucGF0Y2hFdmVudFByb3RvdHlwZT1hdCxsZS5wYXRjaEV2ZW50VGFyZ2V0PWh0LGxlLmlzSUVPckVkZ2U9bHQsbGUuT2JqZWN0RGVmaW5lUHJvcGVydHk9dCxsZS5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I9bixsZS5PYmplY3RDcmVhdGU9aSxsZS5BcnJheVNsaWNlPXIsbGUucGF0Y2hDbGFzcz1fZSxsZS53cmFwV2l0aEN1cnJlbnRab25lPXAsbGUuZmlsdGVyUHJvcGVydGllcz1fdCxsZS5hdHRhY2hPcmlnaW5Ub1BhdGNoZWQ9cGUsbGUuX3JlZGVmaW5lUHJvcGVydHk9T2JqZWN0LmRlZmluZVByb3BlcnR5LGxlLnBhdGNoQ2FsbGJhY2tzPVllLGxlLmdldEdsb2JhbE9iamVjdHM9ZnVuY3Rpb24oKXtyZXR1cm57Z2xvYmFsU291cmNlczp3dCx6b25lU3ltYm9sRXZlbnROYW1lczpUbixldmVudE5hbWVzOkUsaXNCcm93c2VyOndlLGlzTWl4OlFlLGlzTm9kZTpRLFRSVUVfU1RSOmMsRkFMU0VfU1RSOmQsWk9ORV9TWU1CT0xfUFJFRklYOnUsQUREX0VWRU5UX0xJU1RFTkVSX1NUUjpvLFJFTU9WRV9FVkVOVF9MSVNURU5FUl9TVFI6YX19fSk7dmFyIGosV289dXUodXUodXUodXUodXUodXUodXUodXUoW10sWyJhYm9ydCIsImFuaW1hdGlvbmNhbmNlbCIsImFuaW1hdGlvbmVuZCIsImFuaW1hdGlvbml0ZXJhdGlvbiIsImF1eGNsaWNrIiwiYmVmb3JlaW5wdXQiLCJibHVyIiwiY2FuY2VsIiwiY2FucGxheSIsImNhbnBsYXl0aHJvdWdoIiwiY2hhbmdlIiwiY29tcG9zaXRpb25zdGFydCIsImNvbXBvc2l0aW9udXBkYXRlIiwiY29tcG9zaXRpb25lbmQiLCJjdWVjaGFuZ2UiLCJjbGljayIsImNsb3NlIiwiY29udGV4dG1lbnUiLCJjdXJlY2hhbmdlIiwiZGJsY2xpY2siLCJkcmFnIiwiZHJhZ2VuZCIsImRyYWdlbnRlciIsImRyYWdleGl0IiwiZHJhZ2xlYXZlIiwiZHJhZ292ZXIiLCJkcm9wIiwiZHVyYXRpb25jaGFuZ2UiLCJlbXB0aWVkIiwiZW5kZWQiLCJlcnJvciIsImZvY3VzIiwiZm9jdXNpbiIsImZvY3Vzb3V0IiwiZ290cG9pbnRlcmNhcHR1cmUiLCJpbnB1dCIsImludmFsaWQiLCJrZXlkb3duIiwia2V5cHJlc3MiLCJrZXl1cCIsImxvYWQiLCJsb2Fkc3RhcnQiLCJsb2FkZWRkYXRhIiwibG9hZGVkbWV0YWRhdGEiLCJsb3N0cG9pbnRlcmNhcHR1cmUiLCJtb3VzZWRvd24iLCJtb3VzZWVudGVyIiwibW91c2VsZWF2ZSIsIm1vdXNlbW92ZSIsIm1vdXNlb3V0IiwibW91c2VvdmVyIiwibW91c2V1cCIsIm1vdXNld2hlZWwiLCJvcmllbnRhdGlvbmNoYW5nZSIsInBhdXNlIiwicGxheSIsInBsYXlpbmciLCJwb2ludGVyY2FuY2VsIiwicG9pbnRlcmRvd24iLCJwb2ludGVyZW50ZXIiLCJwb2ludGVybGVhdmUiLCJwb2ludGVybG9ja2NoYW5nZSIsIm1venBvaW50ZXJsb2NrY2hhbmdlIiwid2Via2l0cG9pbnRlcmxvY2tlcmNoYW5nZSIsInBvaW50ZXJsb2NrZXJyb3IiLCJtb3pwb2ludGVybG9ja2Vycm9yIiwid2Via2l0cG9pbnRlcmxvY2tlcnJvciIsInBvaW50ZXJtb3ZlIiwicG9pbnRvdXQiLCJwb2ludGVyb3ZlciIsInBvaW50ZXJ1cCIsInByb2dyZXNzIiwicmF0ZWNoYW5nZSIsInJlc2V0IiwicmVzaXplIiwic2Nyb2xsIiwic2Vla2VkIiwic2Vla2luZyIsInNlbGVjdCIsInNlbGVjdGlvbmNoYW5nZSIsInNlbGVjdHN0YXJ0Iiwic2hvdyIsInNvcnQiLCJzdGFsbGVkIiwic3VibWl0Iiwic3VzcGVuZCIsInRpbWV1cGRhdGUiLCJ2b2x1bWVjaGFuZ2UiLCJ0b3VjaGNhbmNlbCIsInRvdWNobW92ZSIsInRvdWNoc3RhcnQiLCJ0b3VjaGVuZCIsInRyYW5zaXRpb25jYW5jZWwiLCJ0cmFuc2l0aW9uZW5kIiwid2FpdGluZyIsIndoZWVsIl0sITApLFsid2ViZ2xjb250ZXh0cmVzdG9yZWQiLCJ3ZWJnbGNvbnRleHRsb3N0Iiwid2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvciJdLCEwKSxbImF1dG9jb21wbGV0ZSIsImF1dG9jb21wbGV0ZWVycm9yIl0sITApLFsidG9nZ2xlIl0sITApLFsiYWZ0ZXJzY3JpcHRleGVjdXRlIiwiYmVmb3Jlc2NyaXB0ZXhlY3V0ZSIsIkRPTUNvbnRlbnRMb2FkZWQiLCJmcmVlemUiLCJmdWxsc2NyZWVuY2hhbmdlIiwibW96ZnVsbHNjcmVlbmNoYW5nZSIsIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCJtc2Z1bGxzY3JlZW5jaGFuZ2UiLCJmdWxsc2NyZWVuZXJyb3IiLCJtb3pmdWxsc2NyZWVuZXJyb3IiLCJ3ZWJraXRmdWxsc2NyZWVuZXJyb3IiLCJtc2Z1bGxzY3JlZW5lcnJvciIsInJlYWR5c3RhdGVjaGFuZ2UiLCJ2aXNpYmlsaXR5Y2hhbmdlIiwicmVzdW1lIl0sITApLFsiYWJzb2x1dGVkZXZpY2VvcmllbnRhdGlvbiIsImFmdGVyaW5wdXQiLCJhZnRlcnByaW50IiwiYXBwaW5zdGFsbGVkIiwiYmVmb3JlaW5zdGFsbHByb21wdCIsImJlZm9yZXByaW50IiwiYmVmb3JldW5sb2FkIiwiZGV2aWNlbGlnaHQiLCJkZXZpY2Vtb3Rpb24iLCJkZXZpY2VvcmllbnRhdGlvbiIsImRldmljZW9yaWVudGF0aW9uYWJzb2x1dGUiLCJkZXZpY2Vwcm94aW1pdHkiLCJoYXNoY2hhbmdlIiwibGFuZ3VhZ2VjaGFuZ2UiLCJtZXNzYWdlIiwibW96YmVmb3JlcGFpbnQiLCJvZmZsaW5lIiwib25saW5lIiwicGFpbnQiLCJwYWdlc2hvdyIsInBhZ2VoaWRlIiwicG9wc3RhdGUiLCJyZWplY3Rpb25oYW5kbGVkIiwic3RvcmFnZSIsInVuaGFuZGxlZHJlamVjdGlvbiIsInVubG9hZCIsInVzZXJwcm94aW1pdHkiLCJ2cmRpc3BsYXljb25uZWN0ZWQiLCJ2cmRpc3BsYXlkaXNjb25uZWN0ZWQiLCJ2cmRpc3BsYXlwcmVzZW50Y2hhbmdlIl0sITApLFsiYmVmb3JlY29weSIsImJlZm9yZWN1dCIsImJlZm9yZXBhc3RlIiwiY29weSIsImN1dCIsInBhc3RlIiwiZHJhZ3N0YXJ0IiwibG9hZGVuZCIsImFuaW1hdGlvbnN0YXJ0Iiwic2VhcmNoIiwidHJhbnNpdGlvbnJ1biIsInRyYW5zaXRpb25zdGFydCIsIndlYmtpdGFuaW1hdGlvbmVuZCIsIndlYmtpdGFuaW1hdGlvbml0ZXJhdGlvbiIsIndlYmtpdGFuaW1hdGlvbnN0YXJ0Iiwid2Via2l0dHJhbnNpdGlvbmVuZCJdLCEwKSxbImFjdGl2YXRlIiwiYWZ0ZXJ1cGRhdGUiLCJhcmlhcmVxdWVzdCIsImJlZm9yZWFjdGl2YXRlIiwiYmVmb3JlZGVhY3RpdmF0ZSIsImJlZm9yZWVkaXRmb2N1cyIsImJlZm9yZXVwZGF0ZSIsImNlbGxjaGFuZ2UiLCJjb250cm9sc2VsZWN0IiwiZGF0YWF2YWlsYWJsZSIsImRhdGFzZXRjaGFuZ2VkIiwiZGF0YXNldGNvbXBsZXRlIiwiZXJyb3J1cGRhdGUiLCJmaWx0ZXJjaGFuZ2UiLCJsYXlvdXRjb21wbGV0ZSIsImxvc2VjYXB0dXJlIiwibW92ZSIsIm1vdmVlbmQiLCJtb3Zlc3RhcnQiLCJwcm9wZXJ0eWNoYW5nZSIsInJlc2l6ZWVuZCIsInJlc2l6ZXN0YXJ0Iiwicm93ZW50ZXIiLCJyb3dleGl0Iiwicm93c2RlbGV0ZSIsInJvd3NpbnNlcnRlZCIsImNvbW1hbmQiLCJjb21wYXNzbmVlZHNjYWxpYnJhdGlvbiIsImRlYWN0aXZhdGUiLCJoZWxwIiwibXNjb250ZW50em9vbSIsIm1zbWFuaXB1bGF0aW9uc3RhdGVjaGFuZ2VkIiwibXNnZXN0dXJlY2hhbmdlIiwibXNnZXN0dXJlZG91YmxldGFwIiwibXNnZXN0dXJlZW5kIiwibXNnZXN0dXJlaG9sZCIsIm1zZ2VzdHVyZXN0YXJ0IiwibXNnZXN0dXJldGFwIiwibXNnb3Rwb2ludGVyY2FwdHVyZSIsIm1zaW5lcnRpYXN0YXJ0IiwibXNsb3N0cG9pbnRlcmNhcHR1cmUiLCJtc3BvaW50ZXJjYW5jZWwiLCJtc3BvaW50ZXJkb3duIiwibXNwb2ludGVyZW50ZXIiLCJtc3BvaW50ZXJob3ZlciIsIm1zcG9pbnRlcmxlYXZlIiwibXNwb2ludGVybW92ZSIsIm1zcG9pbnRlcm91dCIsIm1zcG9pbnRlcm92ZXIiLCJtc3BvaW50ZXJ1cCIsInBvaW50ZXJvdXQiLCJtc3NpdGVtb2RlanVtcGxpc3RpdGVtcmVtb3ZlZCIsIm1zdGh1bWJuYWlsY2xpY2siLCJzdG9wIiwic3RvcmFnZWNvbW1pdCJdLCEwKTsoaj10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnt9KVsoImxlZ2FjeVBhdGNoIiwoai5fX1pvbmVfc3ltYm9sX3ByZWZpeHx8Il9fem9uZV9zeW1ib2xfXyIpKyJsZWdhY3lQYXRjaCIpXT1mdW5jdGlvbigpe3ZhciBFPWouWm9uZTtFLl9fbG9hZF9wYXRjaCgiZGVmaW5lUHJvcGVydHkiLGZ1bmN0aW9uKFYsWCxaKXtaLl9yZWRlZmluZVByb3BlcnR5PXl0LHNpPVpvbmUuX19zeW1ib2xfXyxOaT1PYmplY3Rbc2koImRlZmluZVByb3BlcnR5IildPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxMaT1PYmplY3Rbc2koImdldE93blByb3BlcnR5RGVzY3JpcHRvciIpXT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFk9T2JqZWN0LmNyZWF0ZSxMPXNpKCJ1bmNvbmZpZ3VyYWJsZXMiKSxPYmplY3QuZGVmaW5lUHJvcGVydHk9ZnVuY3Rpb24oaixKLGxlKXtpZihlbihqLEopKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhc3NpZ24gdG8gcmVhZCBvbmx5IHByb3BlcnR5ICciK0orIicgb2YgIitqKTt2YXIgRT1sZS5jb25maWd1cmFibGU7cmV0dXJuInByb3RvdHlwZSIhPT1KJiYobGU9TGUoaixKLGxlKSksaG4oaixKLGxlLEUpfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcz1mdW5jdGlvbihqLEope09iamVjdC5rZXlzKEopLmZvckVhY2goZnVuY3Rpb24oWil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGosWixKW1pdKX0pO2Zvcih2YXIgbGU9MCxFPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoSik7bGU8RS5sZW5ndGg7bGUrKyl7dmFyIFY9RVtsZV07T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKLFYpPy5lbnVtZXJhYmxlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaixWLEpbVl0pfXJldHVybiBqfSxPYmplY3QuY3JlYXRlPWZ1bmN0aW9uKGosSil7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBKJiYhT2JqZWN0LmlzRnJvemVuKEopJiZPYmplY3Qua2V5cyhKKS5mb3JFYWNoKGZ1bmN0aW9uKGxlKXtKW2xlXT1MZShqLGxlLEpbbGVdKX0pLFkoaixKKX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcj1mdW5jdGlvbihqLEope3ZhciBsZT1MaShqLEopO3JldHVybiBsZSYmZW4oaixKKSYmKGxlLmNvbmZpZ3VyYWJsZT0hMSksbGV9fSksRS5fX2xvYWRfcGF0Y2goInJlZ2lzdGVyRWxlbWVudCIsZnVuY3Rpb24oVixYLFopeyFmdW5jdGlvbihqLEope3ZhciBsZT1KLmdldEdsb2JhbE9iamVjdHMoKTsobGUuaXNCcm93c2VyfHxsZS5pc01peCkmJiJyZWdpc3RlckVsZW1lbnQiaW4gai5kb2N1bWVudCYmSi5wYXRjaENhbGxiYWNrcyhKLGRvY3VtZW50LCJEb2N1bWVudCIsInJlZ2lzdGVyRWxlbWVudCIsWyJjcmVhdGVkQ2FsbGJhY2siLCJhdHRhY2hlZENhbGxiYWNrIiwiZGV0YWNoZWRDYWxsYmFjayIsImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayJdKX0oVixaKX0pLEUuX19sb2FkX3BhdGNoKCJFdmVudFRhcmdldExlZ2FjeSIsZnVuY3Rpb24oVixYLFopeyhmdW5jdGlvbihqLEope3ZhciBsZT1KLmdldEdsb2JhbE9iamVjdHMoKSxFPWxlLmV2ZW50TmFtZXMsVj1sZS5nbG9iYWxTb3VyY2VzLFg9bGUuem9uZVN5bWJvbEV2ZW50TmFtZXMsWj1sZS5UUlVFX1NUUixhZT1sZS5GQUxTRV9TVFIsemU9bGUuWk9ORV9TWU1CT0xfUFJFRklYLHFlPSJBcHBsaWNhdGlvbkNhY2hlLEV2ZW50U291cmNlLEZpbGVSZWFkZXIsSW5wdXRNZXRob2RDb250ZXh0LE1lZGlhQ29udHJvbGxlcixNZXNzYWdlUG9ydCxOb2RlLFBlcmZvcm1hbmNlLFNWR0VsZW1lbnRJbnN0YW5jZSxTaGFyZWRXb3JrZXIsVGV4dFRyYWNrLFRleHRUcmFja0N1ZSxUZXh0VHJhY2tMaXN0LFdlYktpdE5hbWVkRmxvdyxXaW5kb3csV29ya2VyLFdvcmtlckdsb2JhbFNjb3BlLFhNTEh0dHBSZXF1ZXN0LFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQsWE1MSHR0cFJlcXVlc3RVcGxvYWQsSURCUmVxdWVzdCxJREJPcGVuREJSZXF1ZXN0LElEQkRhdGFiYXNlLElEQlRyYW5zYWN0aW9uLElEQkN1cnNvcixEQkluZGV4LFdlYlNvY2tldCIuc3BsaXQoIiwiKSxydD0iRXZlbnRUYXJnZXQiLGR0PVtdLFN0PWoud3RmLEF0PSJBbmNob3IsQXJlYSxBdWRpbyxCUixCYXNlLEJhc2VGb250LEJvZHksQnV0dG9uLENhbnZhcyxDb250ZW50LERMaXN0LERpcmVjdG9yeSxEaXYsRW1iZWQsRmllbGRTZXQsRm9udCxGb3JtLEZyYW1lLEZyYW1lU2V0LEhSLEhlYWQsSGVhZGluZyxIdG1sLElGcmFtZSxJbWFnZSxJbnB1dCxLZXlnZW4sTEksTGFiZWwsTGVnZW5kLExpbmssTWFwLE1hcnF1ZWUsTWVkaWEsTWVudSxNZXRhLE1ldGVyLE1vZCxPTGlzdCxPYmplY3QsT3B0R3JvdXAsT3B0aW9uLE91dHB1dCxQYXJhZ3JhcGgsUHJlLFByb2dyZXNzLFF1b3RlLFNjcmlwdCxTZWxlY3QsU291cmNlLFNwYW4sU3R5bGUsVGFibGVDYXB0aW9uLFRhYmxlQ2VsbCxUYWJsZUNvbCxUYWJsZSxUYWJsZVJvdyxUYWJsZVNlY3Rpb24sVGV4dEFyZWEsVGl0bGUsVHJhY2ssVUxpc3QsVW5rbm93bixWaWRlbyIuc3BsaXQoIiwiKTtTdD9kdD1BdC5tYXAoZnVuY3Rpb24oeXIpe3JldHVybiJIVE1MIit5cisiRWxlbWVudCJ9KS5jb25jYXQocWUpOmpbcnRdP2R0LnB1c2gocnQpOmR0PXFlO2Zvcih2YXIgY249ai5fX1pvbmVfZGlzYWJsZV9JRV9jaGVja3x8ITEscWk9ai5fX1pvbmVfZW5hYmxlX2Nyb3NzX2NvbnRleHRfY2hlY2t8fCExLHlpPUouaXNJRU9yRWRnZSgpLFJuPSJbb2JqZWN0IEZ1bmN0aW9uV3JhcHBlcl0iLEV0PSJmdW5jdGlvbiBfX0JST1dTRVJUT09MU19DT05TT0xFX1NBRkVGVU5DKCkgeyBbbmF0aXZlIGNvZGVdIH0iLGdpPXtNU1BvaW50ZXJDYW5jZWw6InBvaW50ZXJjYW5jZWwiLE1TUG9pbnRlckRvd246InBvaW50ZXJkb3duIixNU1BvaW50ZXJFbnRlcjoicG9pbnRlcmVudGVyIixNU1BvaW50ZXJIb3ZlcjoicG9pbnRlcmhvdmVyIixNU1BvaW50ZXJMZWF2ZToicG9pbnRlcmxlYXZlIixNU1BvaW50ZXJNb3ZlOiJwb2ludGVybW92ZSIsTVNQb2ludGVyT3V0OiJwb2ludGVyb3V0IixNU1BvaW50ZXJPdmVyOiJwb2ludGVyb3ZlciIsTVNQb2ludGVyVXA6InBvaW50ZXJ1cCJ9LHRpPTA7dGk8RS5sZW5ndGg7dGkrKyl7dmFyIEJpPXplKygoSG49RVt0aV0pK2FlKSxfbj16ZSsoSG4rWik7WFtIbl09e30sWFtIbl1bYWVdPUJpLFhbSG5dW1pdPV9ufWZvcih0aT0wO3RpPEF0Lmxlbmd0aDt0aSsrKWZvcih2YXIgUG49QXRbdGldLF9pPVZbUG5dPXt9LE9uPTA7T248RS5sZW5ndGg7T24rKyl7dmFyIEhuO19pW0huPUVbT25dXT1QbisiLmFkZEV2ZW50TGlzdGVuZXI6IitIbn12YXIgaXI9W107Zm9yKHRpPTA7dGk8ZHQubGVuZ3RoO3RpKyspe3ZhciBTYT1qW2R0W3RpXV07aXIucHVzaChTYSYmU2EucHJvdG90eXBlKX1KLnBhdGNoRXZlbnRUYXJnZXQoaixKLGlyLHt2aDpmdW5jdGlvbih5cixkcixmdCxtZSl7aWYoIWNuJiZ5aSlpZihxaSl0cnl7aWYoKGdlPWRyLnRvU3RyaW5nKCkpPT09Um58fGdlPT1FdClyZXR1cm4geXIuYXBwbHkoZnQsbWUpLCExfWNhdGNoe3JldHVybiB5ci5hcHBseShmdCxtZSksITF9ZWxzZXt2YXIgZ2U7aWYoKGdlPWRyLnRvU3RyaW5nKCkpPT09Um58fGdlPT1FdClyZXR1cm4geXIuYXBwbHkoZnQsbWUpLCExfWVsc2UgaWYocWkpdHJ5e2RyLnRvU3RyaW5nKCl9Y2F0Y2h7cmV0dXJuIHlyLmFwcGx5KGZ0LG1lKSwhMX1yZXR1cm4hMH0sdHJhbnNmZXJFdmVudE5hbWU6ZnVuY3Rpb24oeXIpe3JldHVybiBnaVt5cl18fHlyfX0pLFpvbmVbSi5zeW1ib2woInBhdGNoRXZlbnRUYXJnZXQiKV09ISFqW3J0XX0pKFYsWiksZnVuY3Rpb24oaixKKXt2YXIgbGU9ai5nZXRHbG9iYWxPYmplY3RzKCk7aWYoKCFsZS5pc05vZGV8fGxlLmlzTWl4KSYmIWZ1bmN0aW9uKGosSil7dmFyIGxlPWouZ2V0R2xvYmFsT2JqZWN0cygpO2lmKChsZS5pc0Jyb3dzZXJ8fGxlLmlzTWl4KSYmIWouT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIpJiZ0eXBlb2YgRWxlbWVudDwidSIpe3ZhciBYPWouT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEVsZW1lbnQucHJvdG90eXBlLCJvbmNsaWNrIik7aWYoWCYmIVguY29uZmlndXJhYmxlKXJldHVybiExO2lmKFgpe2ouT2JqZWN0RGVmaW5lUHJvcGVydHkoRWxlbWVudC5wcm90b3R5cGUsIm9uY2xpY2siLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19KTt2YXIgYWU9ISFkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKS5vbmNsaWNrO3JldHVybiBqLk9iamVjdERlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCJvbmNsaWNrIixYKSxhZX19dmFyIHplPUouWE1MSHR0cFJlcXVlc3Q7aWYoIXplKXJldHVybiExO3ZhciBldD0ib25yZWFkeXN0YXRlY2hhbmdlIixxZT16ZS5wcm90b3R5cGUscnQ9ai5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocWUsZXQpO2lmKHJ0KXJldHVybiBqLk9iamVjdERlZmluZVByb3BlcnR5KHFlLGV0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19KSxhZT0hIShkdD1uZXcgemUpLm9ucmVhZHlzdGF0ZWNoYW5nZSxqLk9iamVjdERlZmluZVByb3BlcnR5KHFlLGV0LHJ0fHx7fSksYWU7dmFyIFN0PWouc3ltYm9sKCJmYWtlIik7ai5PYmplY3REZWZpbmVQcm9wZXJ0eShxZSxldCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbU3RdfSxzZXQ6ZnVuY3Rpb24oeWkpe3RoaXNbU3RdPXlpfX0pO3ZhciBkdCxBdD1mdW5jdGlvbigpe307cmV0dXJuKGR0PW5ldyB6ZSkub25yZWFkeXN0YXRlY2hhbmdlPUF0LGFlPWR0W1N0XT09PUF0LGR0Lm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGFlfShqLEopKXt2YXIgWD10eXBlb2YgV2ViU29ja2V0PCJ1IjsoZnVuY3Rpb24oail7Zm9yKHZhciBKPWouc3ltYm9sKCJ1bmJvdW5kIiksbGU9ZnVuY3Rpb24oVil7dmFyIFg9V29bVl0sWj0ib24iK1g7c2VsZi5hZGRFdmVudExpc3RlbmVyKFgsZnVuY3Rpb24oYWUpe3ZhciBldCxxZSx6ZT1hZS50YXJnZXQ7Zm9yKHFlPXplP3plLmNvbnN0cnVjdG9yLm5hbWUrIi4iK1o6InVua25vd24uIitaO3plOyl6ZVtaXSYmIXplW1pdW0pdJiYoKGV0PWoud3JhcFdpdGhDdXJyZW50Wm9uZSh6ZVtaXSxxZSkpW0pdPXplW1pdLHplW1pdPWV0KSx6ZT16ZS5wYXJlbnRFbGVtZW50fSwhMCl9LEU9MDtFPFdvLmxlbmd0aDtFKyspbGUoRSl9KShqKSxqLnBhdGNoQ2xhc3MoIlhNTEh0dHBSZXF1ZXN0IiksWCYmZnVuY3Rpb24oaixKKXt2YXIgbGU9ai5nZXRHbG9iYWxPYmplY3RzKCksRT1sZS5BRERfRVZFTlRfTElTVEVORVJfU1RSLFY9bGUuUkVNT1ZFX0VWRU5UX0xJU1RFTkVSX1NUUixYPUouV2ViU29ja2V0O0ouRXZlbnRUYXJnZXR8fGoucGF0Y2hFdmVudFRhcmdldChKLGosW1gucHJvdG90eXBlXSksSi5XZWJTb2NrZXQ9ZnVuY3Rpb24oemUsZXQpe3ZhciBydCxkdCxxZT1hcmd1bWVudHMubGVuZ3RoPjE/bmV3IFgoemUsZXQpOm5ldyBYKHplKSxTdD1qLk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcihxZSwib25tZXNzYWdlIik7cmV0dXJuIFN0JiYhMT09PVN0LmNvbmZpZ3VyYWJsZT8ocnQ9ai5PYmplY3RDcmVhdGUocWUpLGR0PXFlLFtFLFYsInNlbmQiLCJjbG9zZSJdLmZvckVhY2goZnVuY3Rpb24oQXQpe3J0W0F0XT1mdW5jdGlvbigpe3ZhciBjbj1qLkFycmF5U2xpY2UuY2FsbChhcmd1bWVudHMpO2lmKEF0PT09RXx8QXQ9PT1WKXt2YXIgcWk9Y24ubGVuZ3RoPjA/Y25bMF06dm9pZCAwO2lmKHFpKXt2YXIgeWk9Wm9uZS5fX3N5bWJvbF9fKCJPTl9QUk9QRVJUWSIrcWkpO3FlW3lpXT1ydFt5aV19fXJldHVybiBxZVtBdF0uYXBwbHkocWUsY24pfX0pKTpydD1xZSxqLnBhdGNoT25Qcm9wZXJ0aWVzKHJ0LFsiY2xvc2UiLCJlcnJvciIsIm1lc3NhZ2UiLCJvcGVuIl0sZHQpLHJ0fTt2YXIgWj1KLldlYlNvY2tldDtmb3IodmFyIGFlIGluIFgpWlthZV09WFthZV19KGosSiksWm9uZVtqLnN5bWJvbCgicGF0Y2hFdmVudHMiKV09ITB9fShaLFYpfSl9O3ZhciB3YT1tKCJ6b25lVGFzayIpO2Z1bmN0aW9uIHBsKGosSixsZSxFKXt2YXIgVj1udWxsLFg9bnVsbDtsZSs9RTt2YXIgWj17fTtmdW5jdGlvbiBhZShldCl7dmFyIHFlPWV0LmRhdGE7cmV0dXJuIHFlLmFyZ3NbMF09ZnVuY3Rpb24oKXtyZXR1cm4gZXQuaW52b2tlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0scWUuaGFuZGxlSWQ9Vi5hcHBseShqLHFlLmFyZ3MpLGV0fWZ1bmN0aW9uIHplKGV0KXtyZXR1cm4gWC5jYWxsKGosZXQuZGF0YS5oYW5kbGVJZCl9Vj0kKGosSis9RSxmdW5jdGlvbihldCl7cmV0dXJuIGZ1bmN0aW9uKHFlLHJ0KXtpZigiZnVuY3Rpb24iPT10eXBlb2YgcnRbMF0pe3ZhciBkdD17aXNQZXJpb2RpYzoiSW50ZXJ2YWwiPT09RSxkZWxheToiVGltZW91dCI9PT1FfHwiSW50ZXJ2YWwiPT09RT9ydFsxXXx8MDp2b2lkIDAsYXJnczpydH0sU3Q9cnRbMF07cnRbMF09ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIFN0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e2R0LmlzUGVyaW9kaWN8fCgibnVtYmVyIj09dHlwZW9mIGR0LmhhbmRsZUlkP2RlbGV0ZSBaW2R0LmhhbmRsZUlkXTpkdC5oYW5kbGVJZCYmKGR0LmhhbmRsZUlkW3dhXT1udWxsKSl9fTt2YXIgQXQ9aChKLHJ0WzBdLGR0LGFlLHplKTtpZighQXQpcmV0dXJuIEF0O3ZhciBjbj1BdC5kYXRhLmhhbmRsZUlkO3JldHVybiJudW1iZXIiPT10eXBlb2YgY24/Wltjbl09QXQ6Y24mJihjblt3YV09QXQpLGNuJiZjbi5yZWYmJmNuLnVucmVmJiYiZnVuY3Rpb24iPT10eXBlb2YgY24ucmVmJiYiZnVuY3Rpb24iPT10eXBlb2YgY24udW5yZWYmJihBdC5yZWY9Y24ucmVmLmJpbmQoY24pLEF0LnVucmVmPWNuLnVucmVmLmJpbmQoY24pKSwibnVtYmVyIj09dHlwZW9mIGNufHxjbj9jbjpBdH1yZXR1cm4gZXQuYXBwbHkoaixydCl9fSksWD0kKGosbGUsZnVuY3Rpb24oZXQpe3JldHVybiBmdW5jdGlvbihxZSxydCl7dmFyIFN0LGR0PXJ0WzBdOyJudW1iZXIiPT10eXBlb2YgZHQ/U3Q9WltkdF06KFN0PWR0JiZkdFt3YV0pfHwoU3Q9ZHQpLFN0JiYic3RyaW5nIj09dHlwZW9mIFN0LnR5cGU/Im5vdFNjaGVkdWxlZCIhPT1TdC5zdGF0ZSYmKFN0LmNhbmNlbEZuJiZTdC5kYXRhLmlzUGVyaW9kaWN8fDA9PT1TdC5ydW5Db3VudCkmJigibnVtYmVyIj09dHlwZW9mIGR0P2RlbGV0ZSBaW2R0XTpkdCYmKGR0W3dhXT1udWxsKSxTdC56b25lLmNhbmNlbFRhc2soU3QpKTpldC5hcHBseShqLHJ0KX19KX1ab25lLl9fbG9hZF9wYXRjaCgibGVnYWN5IixmdW5jdGlvbihqKXt2YXIgSj1qW1pvbmUuX19zeW1ib2xfXygibGVnYWN5UGF0Y2giKV07SiYmSigpfSksWm9uZS5fX2xvYWRfcGF0Y2goInF1ZXVlTWljcm90YXNrIixmdW5jdGlvbihqLEosbGUpe2xlLnBhdGNoTWV0aG9kKGosInF1ZXVlTWljcm90YXNrIixmdW5jdGlvbihFKXtyZXR1cm4gZnVuY3Rpb24oVixYKXtKLmN1cnJlbnQuc2NoZWR1bGVNaWNyb1Rhc2soInF1ZXVlTWljcm90YXNrIixYWzBdKX19KX0pLFpvbmUuX19sb2FkX3BhdGNoKCJ0aW1lcnMiLGZ1bmN0aW9uKGope3ZhciBKPSJzZXQiLGxlPSJjbGVhciI7cGwoaixKLGxlLCJUaW1lb3V0IikscGwoaixKLGxlLCJJbnRlcnZhbCIpLHBsKGosSixsZSwiSW1tZWRpYXRlIil9KSxab25lLl9fbG9hZF9wYXRjaCgicmVxdWVzdEFuaW1hdGlvbkZyYW1lIixmdW5jdGlvbihqKXtwbChqLCJyZXF1ZXN0IiwiY2FuY2VsIiwiQW5pbWF0aW9uRnJhbWUiKSxwbChqLCJtb3pSZXF1ZXN0IiwibW96Q2FuY2VsIiwiQW5pbWF0aW9uRnJhbWUiKSxwbChqLCJ3ZWJraXRSZXF1ZXN0Iiwid2Via2l0Q2FuY2VsIiwiQW5pbWF0aW9uRnJhbWUiKX0pLFpvbmUuX19sb2FkX3BhdGNoKCJibG9ja2luZyIsZnVuY3Rpb24oaixKKXtmb3IodmFyIGxlPVsiYWxlcnQiLCJwcm9tcHQiLCJjb25maXJtIl0sRT0wO0U8bGUubGVuZ3RoO0UrKykkKGosbGVbRV0sZnVuY3Rpb24oWCxaLGFlKXtyZXR1cm4gZnVuY3Rpb24oemUsZXQpe3JldHVybiBKLmN1cnJlbnQucnVuKFgsaixldCxhZSl9fSl9KSxab25lLl9fbG9hZF9wYXRjaCgiRXZlbnRUYXJnZXQiLGZ1bmN0aW9uKGosSixsZSl7KGZ1bmN0aW9uKGosSil7Si5wYXRjaEV2ZW50UHJvdG90eXBlKGosSil9KShqLGxlKSxmdW5jdGlvbihqLEope2lmKCFab25lW0ouc3ltYm9sKCJwYXRjaEV2ZW50VGFyZ2V0IildKXtmb3IodmFyIGxlPUouZ2V0R2xvYmFsT2JqZWN0cygpLEU9bGUuZXZlbnROYW1lcyxWPWxlLnpvbmVTeW1ib2xFdmVudE5hbWVzLFg9bGUuVFJVRV9TVFIsWj1sZS5GQUxTRV9TVFIsYWU9bGUuWk9ORV9TWU1CT0xfUFJFRklYLHplPTA7emU8RS5sZW5ndGg7emUrKyl7dmFyIGV0PUVbemVdLGR0PWFlKyhldCtaKSxTdD1hZSsoZXQrWCk7VltldF09e30sVltldF1bWl09ZHQsVltldF1bWF09U3R9dmFyIEF0PWouRXZlbnRUYXJnZXQ7QXQmJkF0LnByb3RvdHlwZSYmSi5wYXRjaEV2ZW50VGFyZ2V0KGosSixbQXQmJkF0LnByb3RvdHlwZV0pfX0oaixsZSk7dmFyIEU9ai5YTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0O0UmJkUucHJvdG90eXBlJiZsZS5wYXRjaEV2ZW50VGFyZ2V0KGosbGUsW0UucHJvdG90eXBlXSl9KSxab25lLl9fbG9hZF9wYXRjaCgiTXV0YXRpb25PYnNlcnZlciIsZnVuY3Rpb24oaixKLGxlKXtfZSgiTXV0YXRpb25PYnNlcnZlciIpLF9lKCJXZWJLaXRNdXRhdGlvbk9ic2VydmVyIil9KSxab25lLl9fbG9hZF9wYXRjaCgiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLGZ1bmN0aW9uKGosSixsZSl7X2UoIkludGVyc2VjdGlvbk9ic2VydmVyIil9KSxab25lLl9fbG9hZF9wYXRjaCgiRmlsZVJlYWRlciIsZnVuY3Rpb24oaixKLGxlKXtfZSgiRmlsZVJlYWRlciIpfSksWm9uZS5fX2xvYWRfcGF0Y2goIm9uX3Byb3BlcnR5IixmdW5jdGlvbihqLEosbGUpeyFmdW5jdGlvbihqLEope2lmKCghUXx8UWUpJiYhWm9uZVtqLnN5bWJvbCgicGF0Y2hFdmVudHMiKV0pe3ZhciBsZT1KLl9fWm9uZV9pZ25vcmVfb25fcHJvcGVydGllcyxFPVtdO2lmKHdlKXt2YXIgVj13aW5kb3c7RT1FLmNvbmNhdChbIkRvY3VtZW50IiwiU1ZHRWxlbWVudCIsIkVsZW1lbnQiLCJIVE1MRWxlbWVudCIsIkhUTUxCb2R5RWxlbWVudCIsIkhUTUxNZWRpYUVsZW1lbnQiLCJIVE1MRnJhbWVTZXRFbGVtZW50IiwiSFRNTEZyYW1lRWxlbWVudCIsIkhUTUxJRnJhbWVFbGVtZW50IiwiSFRNTE1hcnF1ZWVFbGVtZW50IiwiV29ya2VyIl0pO3ZhciBYPWZ1bmN0aW9uKCl7dHJ5e3ZhciBqPU0ubmF2aWdhdG9yLnVzZXJBZ2VudDtpZigtMSE9PWouaW5kZXhPZigiTVNJRSAiKXx8LTEhPT1qLmluZGV4T2YoIlRyaWRlbnQvIikpcmV0dXJuITB9Y2F0Y2h7fXJldHVybiExfSgpP1t7dGFyZ2V0OlYsaWdub3JlUHJvcGVydGllczpbImVycm9yIl19XTpbXTt1dChWLGFuKFYpLGxlJiZsZS5jb25jYXQoWCksZShWKSl9RT1FLmNvbmNhdChbIlhNTEh0dHBSZXF1ZXN0IiwiWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldCIsIklEQkluZGV4IiwiSURCUmVxdWVzdCIsIklEQk9wZW5EQlJlcXVlc3QiLCJJREJEYXRhYmFzZSIsIklEQlRyYW5zYWN0aW9uIiwiSURCQ3Vyc29yIiwiV2ViU29ja2V0Il0pO2Zvcih2YXIgWj0wO1o8RS5sZW5ndGg7WisrKXt2YXIgYWU9SltFW1pdXTthZSYmYWUucHJvdG90eXBlJiZ1dChhZS5wcm90b3R5cGUsYW4oYWUucHJvdG90eXBlKSxsZSl9fX0obGUsail9KSxab25lLl9fbG9hZF9wYXRjaCgiY3VzdG9tRWxlbWVudHMiLGZ1bmN0aW9uKGosSixsZSl7IWZ1bmN0aW9uKGosSil7dmFyIGxlPUouZ2V0R2xvYmFsT2JqZWN0cygpOyhsZS5pc0Jyb3dzZXJ8fGxlLmlzTWl4KSYmai5jdXN0b21FbGVtZW50cyYmImN1c3RvbUVsZW1lbnRzImluIGomJkoucGF0Y2hDYWxsYmFja3MoSixqLmN1c3RvbUVsZW1lbnRzLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSIsWyJjb25uZWN0ZWRDYWxsYmFjayIsImRpc2Nvbm5lY3RlZENhbGxiYWNrIiwiYWRvcHRlZENhbGxiYWNrIiwiYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrIl0pfShqLGxlKX0pLFpvbmUuX19sb2FkX3BhdGNoKCJYSFIiLGZ1bmN0aW9uKGosSil7IWZ1bmN0aW9uKGV0KXt2YXIgcWU9ZXQuWE1MSHR0cFJlcXVlc3Q7aWYocWUpe3ZhciBydD1xZS5wcm90b3R5cGUsU3Q9cnRbc10sQXQ9cnRbbF07aWYoIVN0KXt2YXIgY249ZXQuWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldDtpZihjbil7dmFyIHFpPWNuLnByb3RvdHlwZTtTdD1xaVtzXSxBdD1xaVtsXX19dmFyIHlpPSJyZWFkeXN0YXRlY2hhbmdlIixwbj0ic2NoZWR1bGVkIix0aT0kKHJ0LCJvcGVuIixmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihQbixfaSl7cmV0dXJuIFBuW0VdPTA9PV9pWzJdLFBuW1pdPV9pWzFdLHRpLmFwcGx5KFBuLF9pKX19KSxRbj1tKCJmZXRjaFRhc2tBYm9ydGluZyIpLHp0PW0oImZldGNoVGFza1NjaGVkdWxpbmciKSxCaT0kKHJ0LCJzZW5kIixmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihQbixfaSl7aWYoITA9PT1KLmN1cnJlbnRbenRdfHxQbltFXSlyZXR1cm4gQmkuYXBwbHkoUG4sX2kpO3ZhciBPbj17dGFyZ2V0OlBuLHVybDpQbltaXSxpc1BlcmlvZGljOiExLGFyZ3M6X2ksYWJvcnRlZDohMX0sY3I9aCgiWE1MSHR0cFJlcXVlc3Quc2VuZCIsRXQsT24sUm4sZ2kpO1BuJiYhMD09PVBuW2FlXSYmIU9uLmFib3J0ZWQmJmNyLnN0YXRlPT09cG4mJmNyLmludm9rZSgpfX0pLF9uPSQocnQsImFib3J0IixmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihQbixfaSl7dmFyIE9uPWZ1bmN0aW9uKFBuKXtyZXR1cm4gUG5bbGVdfShQbik7aWYoT24mJiJzdHJpbmciPT10eXBlb2YgT24udHlwZSl7aWYobnVsbD09T24uY2FuY2VsRm58fE9uLmRhdGEmJk9uLmRhdGEuYWJvcnRlZClyZXR1cm47T24uem9uZS5jYW5jZWxUYXNrKE9uKX1lbHNlIGlmKCEwPT09Si5jdXJyZW50W1FuXSlyZXR1cm4gX24uYXBwbHkoUG4sX2kpfX0pfWZ1bmN0aW9uIFJuKFBuKXt2YXIgX2k9UG4uZGF0YSxPbj1faS50YXJnZXQ7T25bWF09ITEsT25bYWVdPSExO3ZhciBjcj1PbltWXTtTdHx8KFN0PU9uW3NdLEF0PU9uW2xdKSxjciYmQXQuY2FsbChPbix5aSxjcik7dmFyIGlyPU9uW1ZdPWZ1bmN0aW9uKCl7aWYoT24ucmVhZHlTdGF0ZT09PU9uLkRPTkUpaWYoIV9pLmFib3J0ZWQmJk9uW1hdJiZQbi5zdGF0ZT09PXBuKXt2YXIgeXI9T25bSi5fX3N5bWJvbF9fKCJsb2FkZmFsc2UiKV07aWYoMCE9PU9uLnN0YXR1cyYmeXImJnlyLmxlbmd0aD4wKXt2YXIgZHI9UG4uaW52b2tlO1BuLmludm9rZT1mdW5jdGlvbigpe2Zvcih2YXIgZnQ9T25bSi5fX3N5bWJvbF9fKCJsb2FkZmFsc2UiKV0sbWU9MDttZTxmdC5sZW5ndGg7bWUrKylmdFttZV09PT1QbiYmZnQuc3BsaWNlKG1lLDEpOyFfaS5hYm9ydGVkJiZQbi5zdGF0ZT09PXBuJiZkci5jYWxsKFBuKX0seXIucHVzaChQbil9ZWxzZSBQbi5pbnZva2UoKX1lbHNlIV9pLmFib3J0ZWQmJiExPT09T25bWF0mJihPblthZV09ITApfTtyZXR1cm4gU3QuY2FsbChPbix5aSxpciksT25bbGVdfHwoT25bbGVdPVBuKSxCaS5hcHBseShPbixfaS5hcmdzKSxPbltYXT0hMCxQbn1mdW5jdGlvbiBFdCgpe31mdW5jdGlvbiBnaShQbil7dmFyIF9pPVBuLmRhdGE7cmV0dXJuIF9pLmFib3J0ZWQ9ITAsX24uYXBwbHkoX2kudGFyZ2V0LF9pLmFyZ3MpfX0oaik7dmFyIGxlPW0oInhoclRhc2siKSxFPW0oInhoclN5bmMiKSxWPW0oInhockxpc3RlbmVyIiksWD1tKCJ4aHJTY2hlZHVsZWQiKSxaPW0oInhoclVSTCIpLGFlPW0oInhockVycm9yQmVmb3JlU2NoZWR1bGVkIil9KSxab25lLl9fbG9hZF9wYXRjaCgiZ2VvbG9jYXRpb24iLGZ1bmN0aW9uKGope2oubmF2aWdhdG9yJiZqLm5hdmlnYXRvci5nZW9sb2NhdGlvbiYmZnVuY3Rpb24oaixKKXtmb3IodmFyIGxlPWouY29uc3RydWN0b3IubmFtZSxFPWZ1bmN0aW9uKFgpe3ZhciBldCxxZSxaPUpbWF0sYWU9altaXTtpZihhZSl7aWYoIUIobihqLFopKSlyZXR1cm4iY29udGludWUiO2pbWl09KHFlPWZ1bmN0aW9uKCl7cmV0dXJuIGV0LmFwcGx5KHRoaXMsUihhcmd1bWVudHMsbGUrIi4iK1opKX0scGUocWUsZXQ9YWUpLHFlKX19LFY9MDtWPEoubGVuZ3RoO1YrKylFKFYpfShqLm5hdmlnYXRvci5nZW9sb2NhdGlvbixbImdldEN1cnJlbnRQb3NpdGlvbiIsIndhdGNoUG9zaXRpb24iXSl9KSxab25lLl9fbG9hZF9wYXRjaCgiUHJvbWlzZVJlamVjdGlvbkV2ZW50IixmdW5jdGlvbihqLEope2Z1bmN0aW9uIGxlKEUpe3JldHVybiBmdW5jdGlvbihWKXtvZShqLEUpLmZvckVhY2goZnVuY3Rpb24oWil7dmFyIGFlPWouUHJvbWlzZVJlamVjdGlvbkV2ZW50O2lmKGFlKXt2YXIgemU9bmV3IGFlKEUse3Byb21pc2U6Vi5wcm9taXNlLHJlYXNvbjpWLnJlamVjdGlvbn0pO1ouaW52b2tlKHplKX19KX19ai5Qcm9taXNlUmVqZWN0aW9uRXZlbnQmJihKW20oInVuaGFuZGxlZFByb21pc2VSZWplY3Rpb25IYW5kbGVyIildPWxlKCJ1bmhhbmRsZWRyZWplY3Rpb24iKSxKW20oInJlamVjdGlvbkhhbmRsZWRIYW5kbGVyIildPWxlKCJyZWplY3Rpb25oYW5kbGVkIikpfSl9LCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKG4pOm4oKX0pO2Z1bmN0aW9uIG1uKG4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBufWZ1bmN0aW9uIFJtKG4pe2xldCBlPW4oaT0+e0Vycm9yLmNhbGwoaSksaS5zdGFjaz0obmV3IEVycm9yKS5zdGFja30pO3JldHVybiBlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlfXZhciBpQz1SbShuPT5mdW5jdGlvbihlKXtuKHRoaXMpLHRoaXMubWVzc2FnZT1lP2Ake2UubGVuZ3RofSBlcnJvcnMgb2NjdXJyZWQgZHVyaW5nIHVuc3Vic2NyaXB0aW9uOlxuJHtlLm1hcCgoaSxyKT0+YCR7cisxfSkgJHtpLnRvU3RyaW5nKCl9YCkuam9pbigiXG4gICIpfWA6IiIsdGhpcy5uYW1lPSJVbnN1YnNjcmlwdGlvbkVycm9yIix0aGlzLmVycm9ycz1lfSk7ZnVuY3Rpb24gT3Aobix0KXtpZihuKXtsZXQgZT1uLmluZGV4T2YodCk7MDw9ZSYmbi5zcGxpY2UoZSwxKX19dmFyIEVuPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuaW5pdGlhbFRlYXJkb3duPXQsdGhpcy5jbG9zZWQ9ITEsdGhpcy5fcGFyZW50YWdlPW51bGwsdGhpcy5fZmluYWxpemVycz1udWxsfXVuc3Vic2NyaWJlKCl7bGV0IHQ7aWYoIXRoaXMuY2xvc2VkKXt0aGlzLmNsb3NlZD0hMDtsZXR7X3BhcmVudGFnZTplfT10aGlzO2lmKGUpaWYodGhpcy5fcGFyZW50YWdlPW51bGwsQXJyYXkuaXNBcnJheShlKSlmb3IobGV0IG8gb2YgZSlvLnJlbW92ZSh0aGlzKTtlbHNlIGUucmVtb3ZlKHRoaXMpO2xldHtpbml0aWFsVGVhcmRvd246aX09dGhpcztpZihtbihpKSl0cnl7aSgpfWNhdGNoKG8pe3Q9byBpbnN0YW5jZW9mIGlDP28uZXJyb3JzOltvXX1sZXR7X2ZpbmFsaXplcnM6cn09dGhpcztpZihyKXt0aGlzLl9maW5hbGl6ZXJzPW51bGw7Zm9yKGxldCBvIG9mIHIpdHJ5e2U0KG8pfWNhdGNoKGEpe3Q9dD8/W10sYSBpbnN0YW5jZW9mIGlDP3Q9Wy4uLnQsLi4uYS5lcnJvcnNdOnQucHVzaChhKX19aWYodCl0aHJvdyBuZXcgaUModCl9fWFkZCh0KXt2YXIgZTtpZih0JiZ0IT09dGhpcylpZih0aGlzLmNsb3NlZCllNCh0KTtlbHNle2lmKHQgaW5zdGFuY2VvZiBFbil7aWYodC5jbG9zZWR8fHQuX2hhc1BhcmVudCh0aGlzKSlyZXR1cm47dC5fYWRkUGFyZW50KHRoaXMpfSh0aGlzLl9maW5hbGl6ZXJzPW51bGwhPT0oZT10aGlzLl9maW5hbGl6ZXJzKSYmdm9pZCAwIT09ZT9lOltdKS5wdXNoKHQpfX1faGFzUGFyZW50KHQpe2xldHtfcGFyZW50YWdlOmV9PXRoaXM7cmV0dXJuIGU9PT10fHxBcnJheS5pc0FycmF5KGUpJiZlLmluY2x1ZGVzKHQpfV9hZGRQYXJlbnQodCl7bGV0e19wYXJlbnRhZ2U6ZX09dGhpczt0aGlzLl9wYXJlbnRhZ2U9QXJyYXkuaXNBcnJheShlKT8oZS5wdXNoKHQpLGUpOmU/W2UsdF06dH1fcmVtb3ZlUGFyZW50KHQpe2xldHtfcGFyZW50YWdlOmV9PXRoaXM7ZT09PXQ/dGhpcy5fcGFyZW50YWdlPW51bGw6QXJyYXkuaXNBcnJheShlKSYmT3AoZSx0KX1yZW1vdmUodCl7bGV0e19maW5hbGl6ZXJzOmV9PXRoaXM7ZSYmT3AoZSx0KSx0IGluc3RhbmNlb2YgRW4mJnQuX3JlbW92ZVBhcmVudCh0aGlzKX19O0VuLkVNUFRZPSgoKT0+e2xldCBuPW5ldyBFbjtyZXR1cm4gbi5jbG9zZWQ9ITAsbn0pKCk7dmFyIExBPUVuLkVNUFRZO2Z1bmN0aW9uIHJDKG4pe3JldHVybiBuIGluc3RhbmNlb2YgRW58fG4mJiJjbG9zZWQiaW4gbiYmbW4obi5yZW1vdmUpJiZtbihuLmFkZCkmJm1uKG4udW5zdWJzY3JpYmUpfWZ1bmN0aW9uIGU0KG4pe21uKG4pP24oKTpuLnVuc3Vic2NyaWJlKCl9dmFyIG1sPXtvblVuaGFuZGxlZEVycm9yOm51bGwsb25TdG9wcGVkTm90aWZpY2F0aW9uOm51bGwsUHJvbWlzZTp2b2lkIDAsdXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZzohMSx1c2VEZXByZWNhdGVkTmV4dENvbnRleHQ6ITF9LFBtPXtzZXRUaW1lb3V0KG4sdCwuLi5lKXtsZXR7ZGVsZWdhdGU6aX09UG07cmV0dXJuIGk/LnNldFRpbWVvdXQ/aS5zZXRUaW1lb3V0KG4sdCwuLi5lKTpzZXRUaW1lb3V0KG4sdCwuLi5lKX0sY2xlYXJUaW1lb3V0KG4pe2xldHtkZWxlZ2F0ZTp0fT1QbTtyZXR1cm4odD8uY2xlYXJUaW1lb3V0fHxjbGVhclRpbWVvdXQpKG4pfSxkZWxlZ2F0ZTp2b2lkIDB9O2Z1bmN0aW9uIG9DKG4pe1BtLnNldFRpbWVvdXQoKCk9PntsZXR7b25VbmhhbmRsZWRFcnJvcjp0fT1tbDtpZighdCl0aHJvdyBuO3Qobil9KX1mdW5jdGlvbiBmbCgpe312YXIgdDQ9QkEoIkMiLHZvaWQgMCx2b2lkIDApO2Z1bmN0aW9uIEJBKG4sdCxlKXtyZXR1cm57a2luZDpuLHZhbHVlOnQsZXJyb3I6ZX19dmFyIEZwPW51bGw7ZnVuY3Rpb24ga20obil7aWYobWwudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyl7bGV0IHQ9IUZwO2lmKHQmJihGcD17ZXJyb3JUaHJvd246ITEsZXJyb3I6bnVsbH0pLG4oKSx0KXtsZXR7ZXJyb3JUaHJvd246ZSxlcnJvcjppfT1GcDtpZihGcD1udWxsLGUpdGhyb3cgaX19ZWxzZSBuKCl9dmFyIE5wPWNsYXNzIGV4dGVuZHMgRW57Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmlzU3RvcHBlZD0hMSx0Pyh0aGlzLmRlc3RpbmF0aW9uPXQsckModCkmJnQuYWRkKHRoaXMpKTp0aGlzLmRlc3RpbmF0aW9uPWVyZX1zdGF0aWMgY3JlYXRlKHQsZSxpKXtyZXR1cm4gbmV3IGdsKHQsZSxpKX1uZXh0KHQpe3RoaXMuaXNTdG9wcGVkP0hBKEJBKCJOIix0LHZvaWQgMCksdGhpcyk6dGhpcy5fbmV4dCh0KX1lcnJvcih0KXt0aGlzLmlzU3RvcHBlZD9IQShCQSgiRSIsdm9pZCAwLHQpLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9lcnJvcih0KSl9Y29tcGxldGUoKXt0aGlzLmlzU3RvcHBlZD9IQSh0NCx0aGlzKToodGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5fY29tcGxldGUoKSl9dW5zdWJzY3JpYmUoKXt0aGlzLmNsb3NlZHx8KHRoaXMuaXNTdG9wcGVkPSEwLHN1cGVyLnVuc3Vic2NyaWJlKCksdGhpcy5kZXN0aW5hdGlvbj1udWxsKX1fbmV4dCh0KXt0aGlzLmRlc3RpbmF0aW9uLm5leHQodCl9X2Vycm9yKHQpe3RyeXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHQpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX1fY29tcGxldGUoKXt0cnl7dGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX19LEppZT1GdW5jdGlvbi5wcm90b3R5cGUuYmluZDtmdW5jdGlvbiBWQShuLHQpe3JldHVybiBKaWUuY2FsbChuLHQpfXZhciBnbD1jbGFzcyBleHRlbmRzIE5we2NvbnN0cnVjdG9yKHQsZSxpKXtsZXQgcjtpZihzdXBlcigpLG1uKHQpfHwhdClyPXtuZXh0OnQ/P3ZvaWQgMCxlcnJvcjplPz92b2lkIDAsY29tcGxldGU6aT8/dm9pZCAwfTtlbHNle2xldCBvO3RoaXMmJm1sLnVzZURlcHJlY2F0ZWROZXh0Q29udGV4dD8obz1PYmplY3QuY3JlYXRlKHQpLG8udW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUoKSxyPXtuZXh0OnQubmV4dCYmVkEodC5uZXh0LG8pLGVycm9yOnQuZXJyb3ImJlZBKHQuZXJyb3IsbyksY29tcGxldGU6dC5jb21wbGV0ZSYmVkEodC5jb21wbGV0ZSxvKX0pOnI9dH10aGlzLmRlc3RpbmF0aW9uPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnBhcnRpYWxPYnNlcnZlcj10fW5leHQodCl7bGV0e3BhcnRpYWxPYnNlcnZlcjplfT10aGlzO2lmKGUubmV4dCl0cnl7ZS5uZXh0KHQpfWNhdGNoKGkpe2FDKGkpfX1lcnJvcih0KXtsZXR7cGFydGlhbE9ic2VydmVyOmV9PXRoaXM7aWYoZS5lcnJvcil0cnl7ZS5lcnJvcih0KX1jYXRjaChpKXthQyhpKX1lbHNlIGFDKHQpfWNvbXBsZXRlKCl7bGV0e3BhcnRpYWxPYnNlcnZlcjp0fT10aGlzO2lmKHQuY29tcGxldGUpdHJ5e3QuY29tcGxldGUoKX1jYXRjaChlKXthQyhlKX19fShyKX19O2Z1bmN0aW9uIGFDKG4pe21sLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc/ZnVuY3Rpb24obil7bWwudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyYmRnAmJihGcC5lcnJvclRocm93bj0hMCxGcC5lcnJvcj1uKX0obik6b0Mobil9ZnVuY3Rpb24gSEEobix0KXtsZXR7b25TdG9wcGVkTm90aWZpY2F0aW9uOmV9PW1sO2UmJlBtLnNldFRpbWVvdXQoKCk9PmUobix0KSl9dmFyIGVyZT17Y2xvc2VkOiEwLG5leHQ6ZmwsZXJyb3I6ZnVuY3Rpb24obil7dGhyb3cgbn0sY29tcGxldGU6Zmx9LE9tPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIjtmdW5jdGlvbiBzYShuKXtyZXR1cm4gbn1mdW5jdGlvbiBqQShuKXtyZXR1cm4gMD09PW4ubGVuZ3RoP3NhOjE9PT1uLmxlbmd0aD9uWzBdOmZ1bmN0aW9uKGUpe3JldHVybiBuLnJlZHVjZSgoaSxyKT0+cihpKSxlKX19dmFyIEt0PSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7ZSYmKHRoaXMuX3N1YnNjcmliZT1lKX1saWZ0KGUpe2xldCBpPW5ldyBuO3JldHVybiBpLnNvdXJjZT10aGlzLGkub3BlcmF0b3I9ZSxpfXN1YnNjcmliZShlLGkscil7bGV0IG89ZnVuY3Rpb24obil7cmV0dXJuIG4mJm4gaW5zdGFuY2VvZiBOcHx8ZnVuY3Rpb24obil7cmV0dXJuIG4mJm1uKG4ubmV4dCkmJm1uKG4uZXJyb3IpJiZtbihuLmNvbXBsZXRlKX0obikmJnJDKG4pfShlKT9lOm5ldyBnbChlLGkscik7cmV0dXJuIGttKCgpPT57bGV0e29wZXJhdG9yOmEsc291cmNlOnN9PXRoaXM7by5hZGQoYT9hLmNhbGwobyxzKTpzP3RoaXMuX3N1YnNjcmliZShvKTp0aGlzLl90cnlTdWJzY3JpYmUobykpfSksb31fdHJ5U3Vic2NyaWJlKGUpe3RyeXtyZXR1cm4gdGhpcy5fc3Vic2NyaWJlKGUpfWNhdGNoKGkpe2UuZXJyb3IoaSl9fWZvckVhY2goZSxpKXtyZXR1cm4gbmV3KGk9bzQoaSkpKChyLG8pPT57bGV0IGE9bmV3IGdsKHtuZXh0OnM9Pnt0cnl7ZShzKX1jYXRjaChsKXtvKGwpLGEudW5zdWJzY3JpYmUoKX19LGVycm9yOm8sY29tcGxldGU6cn0pO3RoaXMuc3Vic2NyaWJlKGEpfSl9X3N1YnNjcmliZShlKXt2YXIgaTtyZXR1cm4gbnVsbD09PShpPXRoaXMuc291cmNlKXx8dm9pZCAwPT09aT92b2lkIDA6aS5zdWJzY3JpYmUoZSl9W09tXSgpe3JldHVybiB0aGlzfXBpcGUoLi4uZSl7cmV0dXJuIGpBKGUpKHRoaXMpfXRvUHJvbWlzZShlKXtyZXR1cm4gbmV3KGU9bzQoZSkpKChpLHIpPT57bGV0IG87dGhpcy5zdWJzY3JpYmUoYT0+bz1hLGE9PnIoYSksKCk9PmkobykpfSl9fXJldHVybiBuLmNyZWF0ZT10PT5uZXcgbih0KSxufSkoKTtmdW5jdGlvbiBvNChuKXt2YXIgdDtyZXR1cm4gbnVsbCE9PSh0PW4/P21sLlByb21pc2UpJiZ2b2lkIDAhPT10P3Q6UHJvbWlzZX1mdW5jdGlvbiBHQShuKXtyZXR1cm4gbW4obj8ubGlmdCl9ZnVuY3Rpb24gWXQobil7cmV0dXJuIHQ9PntpZihHQSh0KSlyZXR1cm4gdC5saWZ0KGZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gbihlLHRoaXMpfWNhdGNoKGkpe3RoaXMuZXJyb3IoaSl9fSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5hYmxlIHRvIGxpZnQgdW5rbm93biBPYnNlcnZhYmxlIHR5cGUiKX19ZnVuY3Rpb24gSHQobix0LGUsaSxyKXtyZXR1cm4gbmV3IFRfKG4sdCxlLGkscil9dmFyIFdBLFRfPWNsYXNzIGV4dGVuZHMgTnB7Y29uc3RydWN0b3IodCxlLGkscixvLGEpe3N1cGVyKHQpLHRoaXMub25GaW5hbGl6ZT1vLHRoaXMuc2hvdWxkVW5zdWJzY3JpYmU9YSx0aGlzLl9uZXh0PWU/ZnVuY3Rpb24ocyl7dHJ5e2Uocyl9Y2F0Y2gobCl7dC5lcnJvcihsKX19OnN1cGVyLl9uZXh0LHRoaXMuX2Vycm9yPXI/ZnVuY3Rpb24ocyl7dHJ5e3Iocyl9Y2F0Y2gobCl7dC5lcnJvcihsKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19OnN1cGVyLl9lcnJvcix0aGlzLl9jb21wbGV0ZT1pP2Z1bmN0aW9uKCl7dHJ5e2koKX1jYXRjaChzKXt0LmVycm9yKHMpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX06c3VwZXIuX2NvbXBsZXRlfXVuc3Vic2NyaWJlKCl7dmFyIHQ7aWYoIXRoaXMuc2hvdWxkVW5zdWJzY3JpYmV8fHRoaXMuc2hvdWxkVW5zdWJzY3JpYmUoKSl7bGV0e2Nsb3NlZDplfT10aGlzO3N1cGVyLnVuc3Vic2NyaWJlKCksIWUmJihudWxsPT09KHQ9dGhpcy5vbkZpbmFsaXplKXx8dm9pZCAwPT09dHx8dC5jYWxsKHRoaXMpKX19fSxEXz1jbGFzcyBleHRlbmRzIEt0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLnNvdXJjZT10LHRoaXMuc3ViamVjdEZhY3Rvcnk9ZSx0aGlzLl9zdWJqZWN0PW51bGwsdGhpcy5fcmVmQ291bnQ9MCx0aGlzLl9jb25uZWN0aW9uPW51bGwsR0EodCkmJih0aGlzLmxpZnQ9dC5saWZ0KX1fc3Vic2NyaWJlKHQpe3JldHVybiB0aGlzLmdldFN1YmplY3QoKS5zdWJzY3JpYmUodCl9Z2V0U3ViamVjdCgpe2xldCB0PXRoaXMuX3N1YmplY3Q7cmV0dXJuKCF0fHx0LmlzU3RvcHBlZCkmJih0aGlzLl9zdWJqZWN0PXRoaXMuc3ViamVjdEZhY3RvcnkoKSksdGhpcy5fc3ViamVjdH1fdGVhcmRvd24oKXt0aGlzLl9yZWZDb3VudD0wO2xldHtfY29ubmVjdGlvbjp0fT10aGlzO3RoaXMuX3N1YmplY3Q9dGhpcy5fY29ubmVjdGlvbj1udWxsLHQ/LnVuc3Vic2NyaWJlKCl9Y29ubmVjdCgpe2xldCB0PXRoaXMuX2Nvbm5lY3Rpb247aWYoIXQpe3Q9dGhpcy5fY29ubmVjdGlvbj1uZXcgRW47bGV0IGU9dGhpcy5nZXRTdWJqZWN0KCk7dC5hZGQodGhpcy5zb3VyY2Uuc3Vic2NyaWJlKEh0KGUsdm9pZCAwLCgpPT57dGhpcy5fdGVhcmRvd24oKSxlLmNvbXBsZXRlKCl9LGk9Pnt0aGlzLl90ZWFyZG93bigpLGUuZXJyb3IoaSl9LCgpPT50aGlzLl90ZWFyZG93bigpKSkpLHQuY2xvc2VkJiYodGhpcy5fY29ubmVjdGlvbj1udWxsLHQ9RW4uRU1QVFkpfXJldHVybiB0fXJlZkNvdW50KCl7cmV0dXJuIFl0KChuLHQpPT57bGV0IGU9bnVsbDtuLl9yZWZDb3VudCsrO2xldCBpPUh0KHQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsKCk9PntpZighbnx8bi5fcmVmQ291bnQ8PTB8fDA8LS1uLl9yZWZDb3VudClyZXR1cm4gdm9pZChlPW51bGwpO2xldCByPW4uX2Nvbm5lY3Rpb24sbz1lO2U9bnVsbCxyJiYoIW98fHI9PT1vKSYmci51bnN1YnNjcmliZSgpLHQudW5zdWJzY3JpYmUoKX0pO24uc3Vic2NyaWJlKGkpLGkuY2xvc2VkfHwoZT1uLmNvbm5lY3QoKSl9KSh0aGlzKX19LEZtPXtzY2hlZHVsZShuKXtsZXQgdD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUsZT1jYW5jZWxBbmltYXRpb25GcmFtZSx7ZGVsZWdhdGU6aX09Rm07aSYmKHQ9aS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUsZT1pLmNhbmNlbEFuaW1hdGlvbkZyYW1lKTtsZXQgcj10KG89PntlPXZvaWQgMCxuKG8pfSk7cmV0dXJuIG5ldyBFbigoKT0+ZT8uKHIpKX0scmVxdWVzdEFuaW1hdGlvbkZyYW1lKC4uLm4pe2xldHtkZWxlZ2F0ZTp0fT1GbTtyZXR1cm4odD8ucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpKC4uLm4pfSxjYW5jZWxBbmltYXRpb25GcmFtZSguLi5uKXtsZXR7ZGVsZWdhdGU6dH09Rm07cmV0dXJuKHQ/LmNhbmNlbEFuaW1hdGlvbkZyYW1lfHxjYW5jZWxBbmltYXRpb25GcmFtZSkoLi4ubil9LGRlbGVnYXRlOnZvaWQgMH0sczQ9Um0obj0+ZnVuY3Rpb24oKXtuKHRoaXMpLHRoaXMubmFtZT0iT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IiLHRoaXMubWVzc2FnZT0ib2JqZWN0IHVuc3Vic2NyaWJlZCJ9KSxFZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgS3R7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuY2xvc2VkPSExLHRoaXMuY3VycmVudE9ic2VydmVycz1udWxsLHRoaXMub2JzZXJ2ZXJzPVtdLHRoaXMuaXNTdG9wcGVkPSExLHRoaXMuaGFzRXJyb3I9ITEsdGhpcy50aHJvd25FcnJvcj1udWxsfWxpZnQoZSl7bGV0IGk9bmV3IHNDKHRoaXMsdGhpcyk7cmV0dXJuIGkub3BlcmF0b3I9ZSxpfV90aHJvd0lmQ2xvc2VkKCl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IHM0fW5leHQoZSl7a20oKCk9PntpZih0aGlzLl90aHJvd0lmQ2xvc2VkKCksIXRoaXMuaXNTdG9wcGVkKXt0aGlzLmN1cnJlbnRPYnNlcnZlcnN8fCh0aGlzLmN1cnJlbnRPYnNlcnZlcnM9QXJyYXkuZnJvbSh0aGlzLm9ic2VydmVycykpO2ZvcihsZXQgaSBvZiB0aGlzLmN1cnJlbnRPYnNlcnZlcnMpaS5uZXh0KGUpfX0pfWVycm9yKGUpe2ttKCgpPT57aWYodGhpcy5fdGhyb3dJZkNsb3NlZCgpLCF0aGlzLmlzU3RvcHBlZCl7dGhpcy5oYXNFcnJvcj10aGlzLmlzU3RvcHBlZD0hMCx0aGlzLnRocm93bkVycm9yPWU7bGV0e29ic2VydmVyczppfT10aGlzO2Zvcig7aS5sZW5ndGg7KWkuc2hpZnQoKS5lcnJvcihlKX19KX1jb21wbGV0ZSgpe2ttKCgpPT57aWYodGhpcy5fdGhyb3dJZkNsb3NlZCgpLCF0aGlzLmlzU3RvcHBlZCl7dGhpcy5pc1N0b3BwZWQ9ITA7bGV0e29ic2VydmVyczplfT10aGlzO2Zvcig7ZS5sZW5ndGg7KWUuc2hpZnQoKS5jb21wbGV0ZSgpfX0pfXVuc3Vic2NyaWJlKCl7dGhpcy5pc1N0b3BwZWQ9dGhpcy5jbG9zZWQ9ITAsdGhpcy5vYnNlcnZlcnM9dGhpcy5jdXJyZW50T2JzZXJ2ZXJzPW51bGx9Z2V0IG9ic2VydmVkKCl7dmFyIGU7cmV0dXJuKG51bGw9PT0oZT10aGlzLm9ic2VydmVycyl8fHZvaWQgMD09PWU/dm9pZCAwOmUubGVuZ3RoKT4wfV90cnlTdWJzY3JpYmUoZSl7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSxzdXBlci5fdHJ5U3Vic2NyaWJlKGUpfV9zdWJzY3JpYmUoZSl7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSx0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKGUpLHRoaXMuX2lubmVyU3Vic2NyaWJlKGUpfV9pbm5lclN1YnNjcmliZShlKXtsZXR7aGFzRXJyb3I6aSxpc1N0b3BwZWQ6cixvYnNlcnZlcnM6b309dGhpcztyZXR1cm4gaXx8cj9MQToodGhpcy5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsby5wdXNoKGUpLG5ldyBFbigoKT0+e3RoaXMuY3VycmVudE9ic2VydmVycz1udWxsLE9wKG8sZSl9KSl9X2NoZWNrRmluYWxpemVkU3RhdHVzZXMoZSl7bGV0e2hhc0Vycm9yOmksdGhyb3duRXJyb3I6cixpc1N0b3BwZWQ6b309dGhpcztpP2UuZXJyb3Iocik6byYmZS5jb21wbGV0ZSgpfWFzT2JzZXJ2YWJsZSgpe2xldCBlPW5ldyBLdDtyZXR1cm4gZS5zb3VyY2U9dGhpcyxlfX1yZXR1cm4gbi5jcmVhdGU9KHQsZSk9Pm5ldyBzQyh0LGUpLG59KSgpLHNDPWNsYXNzIGV4dGVuZHMgRWV7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMuZGVzdGluYXRpb249dCx0aGlzLnNvdXJjZT1lfW5leHQodCl7dmFyIGUsaTtudWxsPT09KGk9bnVsbD09PShlPXRoaXMuZGVzdGluYXRpb24pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLm5leHQpfHx2b2lkIDA9PT1pfHxpLmNhbGwoZSx0KX1lcnJvcih0KXt2YXIgZSxpO251bGw9PT0oaT1udWxsPT09KGU9dGhpcy5kZXN0aW5hdGlvbil8fHZvaWQgMD09PWU/dm9pZCAwOmUuZXJyb3IpfHx2b2lkIDA9PT1pfHxpLmNhbGwoZSx0KX1jb21wbGV0ZSgpe3ZhciB0LGU7bnVsbD09PShlPW51bGw9PT0odD10aGlzLmRlc3RpbmF0aW9uKXx8dm9pZCAwPT09dD92b2lkIDA6dC5jb21wbGV0ZSl8fHZvaWQgMD09PWV8fGUuY2FsbCh0KX1fc3Vic2NyaWJlKHQpe3ZhciBlLGk7cmV0dXJuIG51bGwhPT0oaT1udWxsPT09KGU9dGhpcy5zb3VyY2UpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnN1YnNjcmliZSh0KSkmJnZvaWQgMCE9PWk/aTpMQX19LHhyPWNsYXNzIGV4dGVuZHMgRWV7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLl92YWx1ZT10fWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLmdldFZhbHVlKCl9X3N1YnNjcmliZSh0KXtsZXQgZT1zdXBlci5fc3Vic2NyaWJlKHQpO3JldHVybiFlLmNsb3NlZCYmdC5uZXh0KHRoaXMuX3ZhbHVlKSxlfWdldFZhbHVlKCl7bGV0e2hhc0Vycm9yOnQsdGhyb3duRXJyb3I6ZSxfdmFsdWU6aX09dGhpcztpZih0KXRocm93IGU7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSxpfW5leHQodCl7c3VwZXIubmV4dCh0aGlzLl92YWx1ZT10KX19LElfPXtub3c6KCk9PihJXy5kZWxlZ2F0ZXx8RGF0ZSkubm93KCksZGVsZWdhdGU6dm9pZCAwfSxMcD1jbGFzcyBleHRlbmRzIEVle2NvbnN0cnVjdG9yKHQ9MS8wLGU9MS8wLGk9SV8pe3N1cGVyKCksdGhpcy5fYnVmZmVyU2l6ZT10LHRoaXMuX3dpbmRvd1RpbWU9ZSx0aGlzLl90aW1lc3RhbXBQcm92aWRlcj1pLHRoaXMuX2J1ZmZlcj1bXSx0aGlzLl9pbmZpbml0ZVRpbWVXaW5kb3c9ITAsdGhpcy5faW5maW5pdGVUaW1lV2luZG93PWU9PT0xLzAsdGhpcy5fYnVmZmVyU2l6ZT1NYXRoLm1heCgxLHQpLHRoaXMuX3dpbmRvd1RpbWU9TWF0aC5tYXgoMSxlKX1uZXh0KHQpe2xldHtpc1N0b3BwZWQ6ZSxfYnVmZmVyOmksX2luZmluaXRlVGltZVdpbmRvdzpyLF90aW1lc3RhbXBQcm92aWRlcjpvLF93aW5kb3dUaW1lOmF9PXRoaXM7ZXx8KGkucHVzaCh0KSwhciYmaS5wdXNoKG8ubm93KCkrYSkpLHRoaXMuX3RyaW1CdWZmZXIoKSxzdXBlci5uZXh0KHQpfV9zdWJzY3JpYmUodCl7dGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX3RyaW1CdWZmZXIoKTtsZXQgZT10aGlzLl9pbm5lclN1YnNjcmliZSh0KSx7X2luZmluaXRlVGltZVdpbmRvdzppLF9idWZmZXI6cn09dGhpcyxvPXIuc2xpY2UoKTtmb3IobGV0IGE9MDthPG8ubGVuZ3RoJiYhdC5jbG9zZWQ7YSs9aT8xOjIpdC5uZXh0KG9bYV0pO3JldHVybiB0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKHQpLGV9X3RyaW1CdWZmZXIoKXtsZXR7X2J1ZmZlclNpemU6dCxfdGltZXN0YW1wUHJvdmlkZXI6ZSxfYnVmZmVyOmksX2luZmluaXRlVGltZVdpbmRvdzpyfT10aGlzLG89KHI/MToyKSp0O2lmKHQ8MS8wJiZvPGkubGVuZ3RoJiZpLnNwbGljZSgwLGkubGVuZ3RoLW8pLCFyKXtsZXQgYT1lLm5vdygpLHM9MDtmb3IobGV0IGw9MTtsPGkubGVuZ3RoJiZpW2xdPD1hO2wrPTIpcz1sO3MmJmkuc3BsaWNlKDAscysxKX19fSxsQz1jbGFzcyBleHRlbmRzIEVue2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKX1zY2hlZHVsZSh0LGU9MCl7cmV0dXJuIHRoaXN9fSxBXz17c2V0SW50ZXJ2YWwobix0LC4uLmUpe2xldHtkZWxlZ2F0ZTppfT1BXztyZXR1cm4gaT8uc2V0SW50ZXJ2YWw/aS5zZXRJbnRlcnZhbChuLHQsLi4uZSk6c2V0SW50ZXJ2YWwobix0LC4uLmUpfSxjbGVhckludGVydmFsKG4pe2xldHtkZWxlZ2F0ZTp0fT1BXztyZXR1cm4odD8uY2xlYXJJbnRlcnZhbHx8Y2xlYXJJbnRlcnZhbCkobil9LGRlbGVnYXRlOnZvaWQgMH0sSmw9Y2xhc3MgZXh0ZW5kcyBsQ3tjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy5zY2hlZHVsZXI9dCx0aGlzLndvcms9ZSx0aGlzLnBlbmRpbmc9ITF9c2NoZWR1bGUodCxlPTApe3ZhciBpO2lmKHRoaXMuY2xvc2VkKXJldHVybiB0aGlzO3RoaXMuc3RhdGU9dDtsZXQgcj10aGlzLmlkLG89dGhpcy5zY2hlZHVsZXI7cmV0dXJuIG51bGwhPXImJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQobyxyLGUpKSx0aGlzLnBlbmRpbmc9ITAsdGhpcy5kZWxheT1lLHRoaXMuaWQ9bnVsbCE9PShpPXRoaXMuaWQpJiZ2b2lkIDAhPT1pP2k6dGhpcy5yZXF1ZXN0QXN5bmNJZChvLHRoaXMuaWQsZSksdGhpc31yZXF1ZXN0QXN5bmNJZCh0LGUsaT0wKXtyZXR1cm4gQV8uc2V0SW50ZXJ2YWwodC5mbHVzaC5iaW5kKHQsdGhpcyksaSl9cmVjeWNsZUFzeW5jSWQodCxlLGk9MCl7aWYobnVsbCE9aSYmdGhpcy5kZWxheT09PWkmJiExPT09dGhpcy5wZW5kaW5nKXJldHVybiBlO251bGwhPWUmJkFfLmNsZWFySW50ZXJ2YWwoZSl9ZXhlY3V0ZSh0LGUpe2lmKHRoaXMuY2xvc2VkKXJldHVybiBuZXcgRXJyb3IoImV4ZWN1dGluZyBhIGNhbmNlbGxlZCBhY3Rpb24iKTt0aGlzLnBlbmRpbmc9ITE7bGV0IGk9dGhpcy5fZXhlY3V0ZSh0LGUpO2lmKGkpcmV0dXJuIGk7ITE9PT10aGlzLnBlbmRpbmcmJm51bGwhPXRoaXMuaWQmJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQodGhpcy5zY2hlZHVsZXIsdGhpcy5pZCxudWxsKSl9X2V4ZWN1dGUodCxlKXtsZXQgcixpPSExO3RyeXt0aGlzLndvcmsodCl9Y2F0Y2gobyl7aT0hMCxyPW98fG5ldyBFcnJvcigiU2NoZWR1bGVkIGFjdGlvbiB0aHJldyBmYWxzeSBlcnJvciIpfWlmKGkpcmV0dXJuIHRoaXMudW5zdWJzY3JpYmUoKSxyfXVuc3Vic2NyaWJlKCl7aWYoIXRoaXMuY2xvc2VkKXtsZXR7aWQ6dCxzY2hlZHVsZXI6ZX09dGhpcyx7YWN0aW9uczppfT1lO3RoaXMud29yaz10aGlzLnN0YXRlPXRoaXMuc2NoZWR1bGVyPW51bGwsdGhpcy5wZW5kaW5nPSExLE9wKGksdGhpcyksbnVsbCE9dCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChlLHQsbnVsbCkpLHRoaXMuZGVsYXk9bnVsbCxzdXBlci51bnN1YnNjcmliZSgpfX19LGlyZT0xLHFBPXt9O2Z1bmN0aW9uIGw0KG4pe3JldHVybiBuIGluIHFBJiYoZGVsZXRlIHFBW25dLCEwKX12YXIgYzQ9e3NldEltbWVkaWF0ZShuKXtsZXQgdD1pcmUrKztyZXR1cm4gcUFbdF09ITAsV0F8fChXQT1Qcm9taXNlLnJlc29sdmUoKSksV0EudGhlbigoKT0+bDQodCkmJm4oKSksdH0sY2xlYXJJbW1lZGlhdGUobil7bDQobil9fSx7c2V0SW1tZWRpYXRlOnJyZSxjbGVhckltbWVkaWF0ZTpvcmV9PWM0LFJfPXtzZXRJbW1lZGlhdGUoLi4ubil7bGV0e2RlbGVnYXRlOnR9PVJfO3JldHVybih0Py5zZXRJbW1lZGlhdGV8fHJyZSkoLi4ubil9LGNsZWFySW1tZWRpYXRlKG4pe2xldHtkZWxlZ2F0ZTp0fT1SXztyZXR1cm4odD8uY2xlYXJJbW1lZGlhdGV8fG9yZSkobil9LGRlbGVnYXRlOnZvaWQgMH0sUWQ9Y2xhc3N7Y29uc3RydWN0b3IodCxlPVFkLm5vdyl7dGhpcy5zY2hlZHVsZXJBY3Rpb25DdG9yPXQsdGhpcy5ub3c9ZX1zY2hlZHVsZSh0LGU9MCxpKXtyZXR1cm4gbmV3IHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcih0aGlzLHQpLnNjaGVkdWxlKGksZSl9fTtRZC5ub3c9SV8ubm93O3ZhciAkbD1jbGFzcyBleHRlbmRzIFFke2NvbnN0cnVjdG9yKHQsZT1RZC5ub3cpe3N1cGVyKHQsZSksdGhpcy5hY3Rpb25zPVtdLHRoaXMuX2FjdGl2ZT0hMX1mbHVzaCh0KXtsZXQgaSx7YWN0aW9uczplfT10aGlzO2lmKHRoaXMuX2FjdGl2ZSllLnB1c2godCk7ZWxzZXt0aGlzLl9hY3RpdmU9ITA7ZG97aWYoaT10LmV4ZWN1dGUodC5zdGF0ZSx0LmRlbGF5KSlicmVha313aGlsZSh0PWUuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLGkpe2Zvcig7dD1lLnNoaWZ0KCk7KXQudW5zdWJzY3JpYmUoKTt0aHJvdyBpfX19fSxObT1uZXcgY2xhc3MgZXh0ZW5kcyAkbHtmbHVzaCh0KXt0aGlzLl9hY3RpdmU9ITA7bGV0IGU9dGhpcy5fc2NoZWR1bGVkO3RoaXMuX3NjaGVkdWxlZD12b2lkIDA7bGV0IHIse2FjdGlvbnM6aX09dGhpczt0PXR8fGkuc2hpZnQoKTtkb3tpZihyPXQuZXhlY3V0ZSh0LnN0YXRlLHQuZGVsYXkpKWJyZWFrfXdoaWxlKCh0PWlbMF0pJiZ0LmlkPT09ZSYmaS5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEscil7Zm9yKDsodD1pWzBdKSYmdC5pZD09PWUmJmkuc2hpZnQoKTspdC51bnN1YnNjcmliZSgpO3Rocm93IHJ9fX0oY2xhc3MgZXh0ZW5kcyBKbHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy5zY2hlZHVsZXI9dCx0aGlzLndvcms9ZX1yZXF1ZXN0QXN5bmNJZCh0LGUsaT0wKXtyZXR1cm4gbnVsbCE9PWkmJmk+MD9zdXBlci5yZXF1ZXN0QXN5bmNJZCh0LGUsaSk6KHQuYWN0aW9ucy5wdXNoKHRoaXMpLHQuX3NjaGVkdWxlZHx8KHQuX3NjaGVkdWxlZD1SXy5zZXRJbW1lZGlhdGUodC5mbHVzaC5iaW5kKHQsdm9pZCAwKSkpKX1yZWN5Y2xlQXN5bmNJZCh0LGUsaT0wKXt2YXIgcjtpZihudWxsIT1pP2k+MDp0aGlzLmRlbGF5PjApcmV0dXJuIHN1cGVyLnJlY3ljbGVBc3luY0lkKHQsZSxpKTtsZXR7YWN0aW9uczpvfT10O251bGwhPWUmJihudWxsPT09KHI9b1tvLmxlbmd0aC0xXSl8fHZvaWQgMD09PXI/dm9pZCAwOnIuaWQpIT09ZSYmKFJfLmNsZWFySW1tZWRpYXRlKGUpLHQuX3NjaGVkdWxlZD12b2lkIDApfX0pLFFjPW5ldyAkbChKbCksZDQ9UWMsWEE9bmV3IGNsYXNzIGV4dGVuZHMgJGx7fShjbGFzcyBleHRlbmRzIEpse2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnNjaGVkdWxlcj10LHRoaXMud29yaz1lfXNjaGVkdWxlKHQsZT0wKXtyZXR1cm4gZT4wP3N1cGVyLnNjaGVkdWxlKHQsZSk6KHRoaXMuZGVsYXk9ZSx0aGlzLnN0YXRlPXQsdGhpcy5zY2hlZHVsZXIuZmx1c2godGhpcyksdGhpcyl9ZXhlY3V0ZSh0LGUpe3JldHVybiBlPjB8fHRoaXMuY2xvc2VkP3N1cGVyLmV4ZWN1dGUodCxlKTp0aGlzLl9leGVjdXRlKHQsZSl9cmVxdWVzdEFzeW5jSWQodCxlLGk9MCl7cmV0dXJuIG51bGwhPWkmJmk+MHx8bnVsbD09aSYmdGhpcy5kZWxheT4wP3N1cGVyLnJlcXVlc3RBc3luY0lkKHQsZSxpKToodC5mbHVzaCh0aGlzKSwwKX19KSxZQT1uZXcgY2xhc3MgZXh0ZW5kcyAkbHtmbHVzaCh0KXt0aGlzLl9hY3RpdmU9ITA7bGV0IGU9dGhpcy5fc2NoZWR1bGVkO3RoaXMuX3NjaGVkdWxlZD12b2lkIDA7bGV0IHIse2FjdGlvbnM6aX09dGhpczt0PXR8fGkuc2hpZnQoKTtkb3tpZihyPXQuZXhlY3V0ZSh0LnN0YXRlLHQuZGVsYXkpKWJyZWFrfXdoaWxlKCh0PWlbMF0pJiZ0LmlkPT09ZSYmaS5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEscil7Zm9yKDsodD1pWzBdKSYmdC5pZD09PWUmJmkuc2hpZnQoKTspdC51bnN1YnNjcmliZSgpO3Rocm93IHJ9fX0oY2xhc3MgZXh0ZW5kcyBKbHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy5zY2hlZHVsZXI9dCx0aGlzLndvcms9ZX1yZXF1ZXN0QXN5bmNJZCh0LGUsaT0wKXtyZXR1cm4gbnVsbCE9PWkmJmk+MD9zdXBlci5yZXF1ZXN0QXN5bmNJZCh0LGUsaSk6KHQuYWN0aW9ucy5wdXNoKHRoaXMpLHQuX3NjaGVkdWxlZHx8KHQuX3NjaGVkdWxlZD1GbS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PnQuZmx1c2godm9pZCAwKSkpKX1yZWN5Y2xlQXN5bmNJZCh0LGUsaT0wKXt2YXIgcjtpZihudWxsIT1pP2k+MDp0aGlzLmRlbGF5PjApcmV0dXJuIHN1cGVyLnJlY3ljbGVBc3luY0lkKHQsZSxpKTtsZXR7YWN0aW9uczpvfT10O251bGwhPWUmJihudWxsPT09KHI9b1tvLmxlbmd0aC0xXSl8fHZvaWQgMD09PXI/dm9pZCAwOnIuaWQpIT09ZSYmKEZtLmNhbmNlbEFuaW1hdGlvbkZyYW1lKGUpLHQuX3NjaGVkdWxlZD12b2lkIDApfX0pLEtyPW5ldyBLdChuPT5uLmNvbXBsZXRlKCkpO2Z1bmN0aW9uIGZDKG4pe3JldHVybiBuJiZtbihuLnNjaGVkdWxlKX1mdW5jdGlvbiBRQShuKXtyZXR1cm4gbltuLmxlbmd0aC0xXX1mdW5jdGlvbiBlYyhuKXtyZXR1cm4gbW4oUUEobikpP24ucG9wKCk6dm9pZCAwfWZ1bmN0aW9uIHRjKG4pe3JldHVybiBmQyhRQShuKSk/bi5wb3AoKTp2b2lkIDB9dmFyIEI0PSRWKEw0KCksMSkse19fZGVjb3JhdGU6VjQsX19hd2FpdGVyOkg0LF9fYXdhaXQ6dkMsX19hc3luY0dlbmVyYXRvcjp6NCxfX2FzeW5jVmFsdWVzOlU0fT1CNC5kZWZhdWx0LEJtPW49Pm4mJiJudW1iZXIiPT10eXBlb2Ygbi5sZW5ndGgmJiJmdW5jdGlvbiIhPXR5cGVvZiBuO2Z1bmN0aW9uIHlDKG4pe3JldHVybiBtbihuPy50aGVuKX1mdW5jdGlvbiB4QyhuKXtyZXR1cm4gbW4obltPbV0pfWZ1bmN0aW9uIENDKG4pe3JldHVybiBTeW1ib2wuYXN5bmNJdGVyYXRvciYmbW4obj8uW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl9ZnVuY3Rpb24gTUMobil7cmV0dXJuIG5ldyBUeXBlRXJyb3IoYFlvdSBwcm92aWRlZCAke251bGwhPT1uJiYib2JqZWN0Ij09dHlwZW9mIG4/ImFuIGludmFsaWQgb2JqZWN0IjpgJyR7bn0nYH0gd2hlcmUgYSBzdHJlYW0gd2FzIGV4cGVjdGVkLiBZb3UgY2FuIHByb3ZpZGUgYW4gT2JzZXJ2YWJsZSwgUHJvbWlzZSwgUmVhZGFibGVTdHJlYW0sIEFycmF5LCBBc3luY0l0ZXJhYmxlLCBvciBJdGVyYWJsZS5gKX12YXIgd0M9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yP1N5bWJvbC5pdGVyYXRvcjoiQEBpdGVyYXRvciI7ZnVuY3Rpb24gU0Mobil7cmV0dXJuIG1uKG4/Llt3Q10pfWZ1bmN0aW9uIEVDKG4pe3JldHVybiB6NCh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbiooKXtsZXQgZT1uLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHt2YWx1ZTppLGRvbmU6cn09eWllbGQgdkMoZS5yZWFkKCkpO2lmKHIpcmV0dXJuIHlpZWxkIHZDKHZvaWQgMCk7eWllbGQgeWllbGQgdkMoaSl9fWZpbmFsbHl7ZS5yZWxlYXNlTG9jaygpfX0pfWZ1bmN0aW9uIFRDKG4pe3JldHVybiBtbihuPy5nZXRSZWFkZXIpfWZ1bmN0aW9uIGNpKG4pe2lmKG4gaW5zdGFuY2VvZiBLdClyZXR1cm4gbjtpZihudWxsIT1uKXtpZih4QyhuKSlyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG5ldyBLdCh0PT57bGV0IGU9bltPbV0oKTtpZihtbihlLnN1YnNjcmliZSkpcmV0dXJuIGUuc3Vic2NyaWJlKHQpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIil9KX0obik7aWYoQm0obikpcmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBuZXcgS3QodD0+e2ZvcihsZXQgZT0wO2U8bi5sZW5ndGgmJiF0LmNsb3NlZDtlKyspdC5uZXh0KG5bZV0pO3QuY29tcGxldGUoKX0pfShuKTtpZih5QyhuKSlyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG5ldyBLdCh0PT57bi50aGVuKGU9Pnt0LmNsb3NlZHx8KHQubmV4dChlKSx0LmNvbXBsZXRlKCkpfSxlPT50LmVycm9yKGUpKS50aGVuKG51bGwsb0MpfSl9KG4pO2lmKENDKG4pKXJldHVybiBqNChuKTtpZihTQyhuKSlyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG5ldyBLdCh0PT57Zm9yKGxldCBlIG9mIG4paWYodC5uZXh0KGUpLHQuY2xvc2VkKXJldHVybjt0LmNvbXBsZXRlKCl9KX0obik7aWYoVEMobikpcmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBqNChFQyhuKSl9KG4pfXRocm93IE1DKG4pfWZ1bmN0aW9uIGo0KG4pe3JldHVybiBuZXcgS3QodD0+eyhmdW5jdGlvbihuLHQpe3ZhciBlLGkscixvO3JldHVybiBINCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dHJ5e2ZvcihlPVU0KG4pOyEoaT15aWVsZCBlLm5leHQoKSkuZG9uZTspaWYodC5uZXh0KGkudmFsdWUpLHQuY2xvc2VkKXJldHVybn1jYXRjaChhKXtyPXtlcnJvcjphfX1maW5hbGx5e3RyeXtpJiYhaS5kb25lJiYobz1lLnJldHVybikmJih5aWVsZCBvLmNhbGwoZSkpfWZpbmFsbHl7aWYocil0aHJvdyByLmVycm9yfX10LmNvbXBsZXRlKCl9KX0pKG4sdCkuY2F0Y2goZT0+dC5lcnJvcihlKSl9KX1mdW5jdGlvbiBFYShuLHQsZSxpPTAscj0hMSl7bGV0IG89dC5zY2hlZHVsZShmdW5jdGlvbigpe2UoKSxyP24uYWRkKHRoaXMuc2NoZWR1bGUobnVsbCxpKSk6dGhpcy51bnN1YnNjcmliZSgpfSxpKTtpZihuLmFkZChvKSwhcilyZXR1cm4gb31mdW5jdGlvbiBCcChuLHQ9MCl7cmV0dXJuIFl0KChlLGkpPT57ZS5zdWJzY3JpYmUoSHQoaSxyPT5FYShpLG4sKCk9PmkubmV4dChyKSx0KSwoKT0+RWEoaSxuLCgpPT5pLmNvbXBsZXRlKCksdCkscj0+RWEoaSxuLCgpPT5pLmVycm9yKHIpLHQpKSl9KX1mdW5jdGlvbiBEQyhuLHQ9MCl7cmV0dXJuIFl0KChlLGkpPT57aS5hZGQobi5zY2hlZHVsZSgoKT0+ZS5zdWJzY3JpYmUoaSksdCkpfSl9ZnVuY3Rpb24gSUMobix0KXtpZighbil0aHJvdyBuZXcgRXJyb3IoIkl0ZXJhYmxlIGNhbm5vdCBiZSBudWxsIik7cmV0dXJuIG5ldyBLdChlPT57RWEoZSx0LCgpPT57bGV0IGk9bltTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKTtFYShlLHQsKCk9PntpLm5leHQoKS50aGVuKHI9PntyLmRvbmU/ZS5jb21wbGV0ZSgpOmUubmV4dChyLnZhbHVlKX0pfSwwLCEwKX0pfSl9ZnVuY3Rpb24gSnIobix0KXtyZXR1cm4gdD9mdW5jdGlvbihuLHQpe2lmKG51bGwhPW4pe2lmKHhDKG4pKXJldHVybiBmdW5jdGlvbihuLHQpe3JldHVybiBjaShuKS5waXBlKERDKHQpLEJwKHQpKX0obix0KTtpZihCbShuKSlyZXR1cm4gZnVuY3Rpb24obix0KXtyZXR1cm4gbmV3IEt0KGU9PntsZXQgaT0wO3JldHVybiB0LnNjaGVkdWxlKGZ1bmN0aW9uKCl7aT09PW4ubGVuZ3RoP2UuY29tcGxldGUoKTooZS5uZXh0KG5baSsrXSksZS5jbG9zZWR8fHRoaXMuc2NoZWR1bGUoKSl9KX0pfShuLHQpO2lmKHlDKG4pKXJldHVybiBmdW5jdGlvbihuLHQpe3JldHVybiBjaShuKS5waXBlKERDKHQpLEJwKHQpKX0obix0KTtpZihDQyhuKSlyZXR1cm4gSUMobix0KTtpZihTQyhuKSlyZXR1cm4gZnVuY3Rpb24obix0KXtyZXR1cm4gbmV3IEt0KGU9PntsZXQgaTtyZXR1cm4gRWEoZSx0LCgpPT57aT1uW3dDXSgpLEVhKGUsdCwoKT0+e2xldCByLG87dHJ5eyh7dmFsdWU6cixkb25lOm99PWkubmV4dCgpKX1jYXRjaChhKXtyZXR1cm4gdm9pZCBlLmVycm9yKGEpfW8/ZS5jb21wbGV0ZSgpOmUubmV4dChyKX0sMCwhMCl9KSwoKT0+bW4oaT8ucmV0dXJuKSYmaS5yZXR1cm4oKX0pfShuLHQpO2lmKFRDKG4pKXJldHVybiBmdW5jdGlvbihuLHQpe3JldHVybiBJQyhFQyhuKSx0KX0obix0KX10aHJvdyBNQyhuKX0obix0KTpjaShuKX1mdW5jdGlvbiAkdCguLi5uKXtyZXR1cm4gSnIobix0YyhuKSl9ZnVuY3Rpb24gX2wobix0KXtsZXQgZT1tbihuKT9uOigpPT5uLGk9cj0+ci5lcnJvcihlKCkpO3JldHVybiBuZXcgS3QodD9yPT50LnNjaGVkdWxlKGksMCxyKTppKX12YXIgQXM9Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkpe3RoaXMua2luZD10LHRoaXMudmFsdWU9ZSx0aGlzLmVycm9yPWksdGhpcy5oYXNWYWx1ZT0iTiI9PT10fW9ic2VydmUodCl7cmV0dXJuIEtBKHRoaXMsdCl9ZG8odCxlLGkpe2xldHtraW5kOnIsdmFsdWU6byxlcnJvcjphfT10aGlzO3JldHVybiJOIj09PXI/dD8uKG8pOiJFIj09PXI/ZT8uKGEpOmk/LigpfWFjY2VwdCh0LGUsaSl7dmFyIHI7cmV0dXJuIG1uKG51bGw9PT0ocj10KXx8dm9pZCAwPT09cj92b2lkIDA6ci5uZXh0KT90aGlzLm9ic2VydmUodCk6dGhpcy5kbyh0LGUsaSl9dG9PYnNlcnZhYmxlKCl7bGV0e2tpbmQ6dCx2YWx1ZTplLGVycm9yOml9PXRoaXMscj0iTiI9PT10PyR0KGUpOiJFIj09PXQ/X2woKCk9PmkpOiJDIj09PXQ/S3I6MDtpZighcil0aHJvdyBuZXcgVHlwZUVycm9yKGBVbmV4cGVjdGVkIG5vdGlmaWNhdGlvbiBraW5kICR7dH1gKTtyZXR1cm4gcn1zdGF0aWMgY3JlYXRlTmV4dCh0KXtyZXR1cm4gbmV3IEFzKCJOIix0KX1zdGF0aWMgY3JlYXRlRXJyb3IodCl7cmV0dXJuIG5ldyBBcygiRSIsdm9pZCAwLHQpfXN0YXRpYyBjcmVhdGVDb21wbGV0ZSgpe3JldHVybiBBcy5jb21wbGV0ZU5vdGlmaWNhdGlvbn19O2Z1bmN0aW9uIEtBKG4sdCl7dmFyIGUsaSxyO2xldHtraW5kOm8sdmFsdWU6YSxlcnJvcjpzfT1uO2lmKCJzdHJpbmciIT10eXBlb2Ygbyl0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIG5vdGlmaWNhdGlvbiwgbWlzc2luZyAia2luZCInKTsiTiI9PT1vP251bGw9PT0oZT10Lm5leHQpfHx2b2lkIDA9PT1lfHxlLmNhbGwodCxhKToiRSI9PT1vP251bGw9PT0oaT10LmVycm9yKXx8dm9pZCAwPT09aXx8aS5jYWxsKHQscyk6bnVsbD09PShyPXQuY29tcGxldGUpfHx2b2lkIDA9PT1yfHxyLmNhbGwodCl9ZnVuY3Rpb24gUF8obil7cmV0dXJuISFuJiYobiBpbnN0YW5jZW9mIEt0fHxtbihuLmxpZnQpJiZtbihuLnN1YnNjcmliZSkpfUFzLmNvbXBsZXRlTm90aWZpY2F0aW9uPW5ldyBBcygiQyIpO3ZhciBWbT1SbShuPT5mdW5jdGlvbigpe24odGhpcyksdGhpcy5uYW1lPSJFbXB0eUVycm9yIix0aGlzLm1lc3NhZ2U9Im5vIGVsZW1lbnRzIGluIHNlcXVlbmNlIn0pO2Z1bmN0aW9uIEFDKG4sdCl7bGV0IGU9Im9iamVjdCI9PXR5cGVvZiB0O3JldHVybiBuZXcgUHJvbWlzZSgoaSxyKT0+e2xldCBvPW5ldyBnbCh7bmV4dDphPT57aShhKSxvLnVuc3Vic2NyaWJlKCl9LGVycm9yOnIsY29tcGxldGU6KCk9PntlP2kodC5kZWZhdWx0VmFsdWUpOnIobmV3IFZtKX19KTtuLnN1YnNjcmliZShvKX0pfWZ1bmN0aW9uIHEobix0KXtyZXR1cm4gWXQoKGUsaSk9PntsZXQgcj0wO2Uuc3Vic2NyaWJlKEh0KGksbz0+e2kubmV4dChuLmNhbGwodCxvLHIrKykpfSkpfSl9dmFye2lzQXJyYXk6aHJlfT1BcnJheTtmdW5jdGlvbiBaZChuKXtyZXR1cm4gcSh0PT5mdW5jdGlvbihuLHQpe3JldHVybiBocmUodCk/biguLi50KTpuKHQpfShuLHQpKX12YXJ7aXNBcnJheTpmcmV9PUFycmF5LHtnZXRQcm90b3R5cGVPZjpncmUscHJvdG90eXBlOl9yZSxrZXlzOmJyZX09T2JqZWN0O2Z1bmN0aW9uIFJDKG4pe2lmKDE9PT1uLmxlbmd0aCl7bGV0IHQ9blswXTtpZihmcmUodCkpcmV0dXJue2FyZ3M6dCxrZXlzOm51bGx9O2lmKGZ1bmN0aW9uKG4pe3JldHVybiBuJiYib2JqZWN0Ij09dHlwZW9mIG4mJmdyZShuKT09PV9yZX0odCkpe2xldCBlPWJyZSh0KTtyZXR1cm57YXJnczplLm1hcChpPT50W2ldKSxrZXlzOmV9fX1yZXR1cm57YXJnczpuLGtleXM6bnVsbH19ZnVuY3Rpb24gUEMobix0KXtyZXR1cm4gbi5yZWR1Y2UoKGUsaSxyKT0+KGVbaV09dFtyXSxlKSx7fSl9ZnVuY3Rpb24gSW4oLi4ubil7bGV0IHQ9dGMobiksZT1lYyhuKSx7YXJnczppLGtleXM6cn09UkMobik7aWYoMD09PWkubGVuZ3RoKXJldHVybiBKcihbXSx0KTtsZXQgbz1uZXcgS3QoSkEoaSx0LHI/YT0+UEMocixhKTpzYSkpO3JldHVybiBlP28ucGlwZShaZChlKSk6b31mdW5jdGlvbiBKQShuLHQsZT1zYSl7cmV0dXJuIGk9PntLNCh0LCgpPT57bGV0e2xlbmd0aDpyfT1uLG89bmV3IEFycmF5KHIpLGE9cixzPXI7Zm9yKGxldCBsPTA7bDxyO2wrKylLNCh0LCgpPT57bGV0IGM9SnIobltsXSx0KSxkPSExO2Muc3Vic2NyaWJlKEh0KGksdT0+e29bbF09dSxkfHwoZD0hMCxzLS0pLHN8fGkubmV4dChlKG8uc2xpY2UoKSkpfSwoKT0+ey0tYXx8aS5jb21wbGV0ZSgpfSkpfSxpKX0saSl9fWZ1bmN0aW9uIEs0KG4sdCxlKXtuP0VhKGUsbix0KTp0KCl9ZnVuY3Rpb24geG4obix0LGU9MS8wKXtyZXR1cm4gbW4odCk/eG4oKGkscik9PnEoKG8sYSk9PnQoaSxvLHIsYSkpKGNpKG4oaSxyKSkpLGUpOigibnVtYmVyIj09dHlwZW9mIHQmJihlPXQpLFl0KChpLHIpPT5mdW5jdGlvbihuLHQsZSxpLHIsbyxhLHMpe2xldCBsPVtdLGM9MCxkPTAsdT0hMSxwPSgpPT57dSYmIWwubGVuZ3RoJiYhYyYmdC5jb21wbGV0ZSgpfSxoPV89PmM8aT9tKF8pOmwucHVzaChfKSxtPV89PntjKys7bGV0IE09ITE7Y2koZShfLGQrKykpLnN1YnNjcmliZShIdCh0LHk9Pnt0Lm5leHQoeSl9LCgpPT57TT0hMH0sdm9pZCAwLCgpPT57aWYoTSl0cnl7Zm9yKGMtLTtsLmxlbmd0aCYmYzxpOyl7bGV0IHk9bC5zaGlmdCgpO20oeSl9cCgpfWNhdGNoKHkpe3QuZXJyb3IoeSl9fSkpfTtyZXR1cm4gbi5zdWJzY3JpYmUoSHQodCxoLCgpPT57dT0hMCxwKCl9KSksKCk9Pnt9fShpLHIsbixlKSkpfWZ1bmN0aW9uIGtDKG49MS8wKXtyZXR1cm4geG4oc2Esbil9ZnVuY3Rpb24gS2QoLi4ubil7cmV0dXJuIGtDKDEpKEpyKG4sdGMobikpKX1mdW5jdGlvbiBpcyhuKXtyZXR1cm4gbmV3IEt0KHQ9PntjaShuKCkpLnN1YnNjcmliZSh0KX0pfWZ1bmN0aW9uIENvKC4uLm4pe2xldCB0PWVjKG4pLHthcmdzOmUsa2V5czppfT1SQyhuKSxyPW5ldyBLdChvPT57bGV0e2xlbmd0aDphfT1lO2lmKCFhKXJldHVybiB2b2lkIG8uY29tcGxldGUoKTtsZXQgcz1uZXcgQXJyYXkoYSksbD1hLGM9YTtmb3IobGV0IGQ9MDtkPGE7ZCsrKXtsZXQgdT0hMTtjaShlW2RdKS5zdWJzY3JpYmUoSHQobyxwPT57dXx8KHU9ITAsYy0tKSxzW2RdPXB9LCgpPT5sLS0sdm9pZCAwLCgpPT57KCFsfHwhdSkmJihjfHxvLm5leHQoaT9QQyhpLHMpOnMpLG8uY29tcGxldGUoKSl9KSl9fSk7cmV0dXJuIHQ/ci5waXBlKFpkKHQpKTpyfXZhciB5cmU9WyJhZGRMaXN0ZW5lciIsInJlbW92ZUxpc3RlbmVyIl0seHJlPVsiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiXSxDcmU9WyJvbiIsIm9mZiJdO2Z1bmN0aW9uIEVpKG4sdCxlLGkpe2lmKG1uKGUpJiYoaT1lLGU9dm9pZCAwKSxpKXJldHVybiBFaShuLHQsZSkucGlwZShaZChpKSk7bGV0W3Isb109ZnVuY3Rpb24obil7cmV0dXJuIG1uKG4uYWRkRXZlbnRMaXN0ZW5lcikmJm1uKG4ucmVtb3ZlRXZlbnRMaXN0ZW5lcil9KG4pP3hyZS5tYXAoYT0+cz0+blthXSh0LHMsZSkpOmZ1bmN0aW9uKG4pe3JldHVybiBtbihuLmFkZExpc3RlbmVyKSYmbW4obi5yZW1vdmVMaXN0ZW5lcil9KG4pP3lyZS5tYXAoZUgobix0KSk6ZnVuY3Rpb24obil7cmV0dXJuIG1uKG4ub24pJiZtbihuLm9mZil9KG4pP0NyZS5tYXAoZUgobix0KSk6W107aWYoIXImJkJtKG4pKXJldHVybiB4bihhPT5FaShhLHQsZSkpKGNpKG4pKTtpZighcil0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGV2ZW50IHRhcmdldCIpO3JldHVybiBuZXcgS3QoYT0+e2xldCBzPSguLi5sKT0+YS5uZXh0KDE8bC5sZW5ndGg/bDpsWzBdKTtyZXR1cm4gcihzKSwoKT0+byhzKX0pfWZ1bmN0aW9uIGVIKG4sdCl7cmV0dXJuIGU9Pmk9Pm5bZV0odCxpKX1mdW5jdGlvbiBycyhuPTAsdCxlPWQ0KXtsZXQgaT0tMTtyZXR1cm4gbnVsbCE9dCYmKGZDKHQpP2U9dDppPXQpLG5ldyBLdChyPT57bGV0IG89ZnVuY3Rpb24obil7cmV0dXJuIG4gaW5zdGFuY2VvZiBEYXRlJiYhaXNOYU4obil9KG4pPytuLWUubm93KCk6bjtvPDAmJihvPTApO2xldCBhPTA7cmV0dXJuIGUuc2NoZWR1bGUoZnVuY3Rpb24oKXtyLmNsb3NlZHx8KHIubmV4dChhKyspLDA8PWk/dGhpcy5zY2hlZHVsZSh2b2lkIDAsaSk6ci5jb21wbGV0ZSgpKX0sbyl9KX1mdW5jdGlvbiB0biguLi5uKXtsZXQgdD10YyhuKSxlPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBRQShuKT9uLnBvcCgpOjEvMH0obiksaT1uO3JldHVybiBpLmxlbmd0aD8xPT09aS5sZW5ndGg/Y2koaVswXSk6a0MoZSkoSnIoaSx0KSk6S3J9dmFye2lzQXJyYXk6RXJlfT1BcnJheTtmdW5jdGlvbiBPQyhuKXtyZXR1cm4gMT09PW4ubGVuZ3RoJiZFcmUoblswXSk/blswXTpufWZ1bmN0aW9uIE9lKG4sdCl7cmV0dXJuIFl0KChlLGkpPT57bGV0IHI9MDtlLnN1YnNjcmliZShIdChpLG89Pm4uY2FsbCh0LG8scisrKSYmaS5uZXh0KG8pKSl9KX1mdW5jdGlvbiBuYyhuLHQ9UWMpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gWXQoKHQsZSk9PntsZXQgaT0hMSxyPW51bGwsbz1udWxsLGE9ITEscz0oKT0+e2lmKG8/LnVuc3Vic2NyaWJlKCksbz1udWxsLGkpe2k9ITE7bGV0IGM9cjtyPW51bGwsZS5uZXh0KGMpfWEmJmUuY29tcGxldGUoKX0sbD0oKT0+e289bnVsbCxhJiZlLmNvbXBsZXRlKCl9O3Quc3Vic2NyaWJlKEh0KGUsYz0+e2k9ITAscj1jLG98fGNpKG4oKSkuc3Vic2NyaWJlKG89SHQoZSxzLGwpKX0sKCk9PnthPSEwLCghaXx8IW98fG8uY2xvc2VkKSYmZS5jb21wbGV0ZSgpfSkpfSl9KCgpPT5ycyhuLHQpKX1mdW5jdGlvbiBjbyhuKXtyZXR1cm4gWXQoKHQsZSk9PntsZXQgbyxpPW51bGwscj0hMTtpPXQuc3Vic2NyaWJlKEh0KGUsdm9pZCAwLHZvaWQgMCxhPT57bz1jaShuKGEsY28obikodCkpKSxpPyhpLnVuc3Vic2NyaWJlKCksaT1udWxsLG8uc3Vic2NyaWJlKGUpKTpyPSEwfSkpLHImJihpLnVuc3Vic2NyaWJlKCksaT1udWxsLG8uc3Vic2NyaWJlKGUpKX0pfWZ1bmN0aW9uIHRSKC4uLm4pe2xldCB0PWVjKG4pO3JldHVybiB0P2Z1bmN0aW9uKC4uLm4pe3JldHVybiBqQShuKX0odFIoLi4ubiksWmQodCkpOll0KChlLGkpPT57SkEoW2UsLi4uT0MobildKShpKX0pfWZ1bmN0aW9uIFZpKC4uLm4pe3JldHVybiB0UiguLi5uKX1mdW5jdGlvbiBDcihuLHQ9UWMpe3JldHVybiBZdCgoZSxpKT0+e2xldCByPW51bGwsbz1udWxsLGE9bnVsbCxzPSgpPT57aWYocil7ci51bnN1YnNjcmliZSgpLHI9bnVsbDtsZXQgYz1vO289bnVsbCxpLm5leHQoYyl9fTtmdW5jdGlvbiBsKCl7bGV0IGM9YStuLGQ9dC5ub3coKTtpZihkPGMpcmV0dXJuIHI9dGhpcy5zY2hlZHVsZSh2b2lkIDAsYy1kKSx2b2lkIGkuYWRkKHIpO3MoKX1lLnN1YnNjcmliZShIdChpLGM9PntvPWMsYT10Lm5vdygpLHJ8fChyPXQuc2NoZWR1bGUobCxuKSxpLmFkZChyKSl9LCgpPT57cygpLGkuY29tcGxldGUoKX0sdm9pZCAwLCgpPT57bz1yPW51bGx9KSl9KX1mdW5jdGlvbiBMdChuKXtyZXR1cm4gbjw9MD8oKT0+S3I6WXQoKHQsZSk9PntsZXQgaT0wO3Quc3Vic2NyaWJlKEh0KGUscj0+eysraTw9biYmKGUubmV4dChyKSxuPD1pJiZlLmNvbXBsZXRlKCkpfSkpfSl9ZnVuY3Rpb24ga18oKXtyZXR1cm4gWXQoKG4sdCk9PntuLnN1YnNjcmliZShIdCh0LGZsKSl9KX1mdW5jdGlvbiBIbShuLHQpe3JldHVybiB0P2U9PktkKHQucGlwZShMdCgxKSxrXygpKSxlLnBpcGUoSG0obikpKTp4bigoZSxpKT0+bihlLGkpLnBpcGUoTHQoMSksZnVuY3Rpb24obil7cmV0dXJuIHEoKCk9Pm4pfShlKSkpfWZ1bmN0aW9uIFJzKG4sdD1RYyl7bGV0IGU9cnMobix0KTtyZXR1cm4gSG0oKCk9PmUpfWZ1bmN0aW9uIHJpKG4sdD1zYSl7cmV0dXJuIG49bj8/VHJlLFl0KChlLGkpPT57bGV0IHIsbz0hMDtlLnN1YnNjcmliZShIdChpLGE9PntsZXQgcz10KGEpOyhvfHwhbihyLHMpKSYmKG89ITEscj1zLGkubmV4dChhKSl9KSl9KX1mdW5jdGlvbiBUcmUobix0KXtyZXR1cm4gbj09PXR9ZnVuY3Rpb24gb0gobj1EcmUpe3JldHVybiBZdCgodCxlKT0+e2xldCBpPSExO3Quc3Vic2NyaWJlKEh0KGUscj0+e2k9ITAsZS5uZXh0KHIpfSwoKT0+aT9lLmNvbXBsZXRlKCk6ZS5lcnJvcihuKCkpKSl9KX1mdW5jdGlvbiBEcmUoKXtyZXR1cm4gbmV3IFZtfWZ1bmN0aW9uIE5DKG4sdCl7cmV0dXJuIHQ/ZT0+ZS5waXBlKE5DKChpLHIpPT5jaShuKGkscikpLnBpcGUocSgobyxhKT0+dChpLG8scixhKSkpKSk6WXQoKGUsaSk9PntsZXQgcj0wLG89bnVsbCxhPSExO2Uuc3Vic2NyaWJlKEh0KGkscz0+e298fChvPUh0KGksdm9pZCAwLCgpPT57bz1udWxsLGEmJmkuY29tcGxldGUoKX0pLGNpKG4ocyxyKyspKS5zdWJzY3JpYmUobykpfSwoKT0+e2E9ITAsIW8mJmkuY29tcGxldGUoKX0pKX0pfWZ1bmN0aW9uIHptKG4sdCl7bGV0IGU9YXJndW1lbnRzLmxlbmd0aD49MjtyZXR1cm4gaT0+aS5waXBlKG4/T2UoKHIsbyk9Pm4ocixvLGkpKTpzYSxMdCgxKSxlP2Z1bmN0aW9uKG4pe3JldHVybiBZdCgodCxlKT0+e2xldCBpPSExO3Quc3Vic2NyaWJlKEh0KGUscj0+e2k9ITAsZS5uZXh0KHIpfSwoKT0+e2l8fGUubmV4dChuKSxlLmNvbXBsZXRlKCl9KSl9KX0odCk6b0goKCk9Pm5ldyBWbSkpfWZ1bmN0aW9uIEJDKG4sdCxlLGkpe3JldHVybiBZdCgocixvKT0+e2xldCBhO3QmJiJmdW5jdGlvbiIhPXR5cGVvZiB0Pyh7ZHVyYXRpb246ZSxlbGVtZW50OmEsY29ubmVjdG9yOml9PXQpOmE9dDtsZXQgcz1uZXcgTWFwLGw9bT0+e3MuZm9yRWFjaChtKSxtKG8pfSxjPW09PmwoXz0+Xy5lcnJvcihtKSksZD0wLHU9ITEscD1uZXcgVF8obyxtPT57dHJ5e2xldCBfPW4obSksTT1zLmdldChfKTtpZighTSl7cy5zZXQoXyxNPWk/aSgpOm5ldyBFZSk7bGV0IHk9ZnVuY3Rpb24obSxfKXtsZXQgTT1uZXcgS3QoeT0+e2QrKztsZXQgeD1fLnN1YnNjcmliZSh5KTtyZXR1cm4oKT0+e3gudW5zdWJzY3JpYmUoKSwwPT0tLWQmJnUmJnAudW5zdWJzY3JpYmUoKX19KTtyZXR1cm4gTS5rZXk9bSxNfShfLE0pO2lmKG8ubmV4dCh5KSxlKXtsZXQgeD1IdChNLCgpPT57TS5jb21wbGV0ZSgpLHg/LnVuc3Vic2NyaWJlKCl9LHZvaWQgMCx2b2lkIDAsKCk9PnMuZGVsZXRlKF8pKTtwLmFkZChjaShlKHkpKS5zdWJzY3JpYmUoeCkpfX1NLm5leHQoYT9hKG0pOm0pfWNhdGNoKF8pe2MoXyl9fSwoKT0+bChtPT5tLmNvbXBsZXRlKCkpLGMsKCk9PnMuY2xlYXIoKSwoKT0+KHU9ITAsMD09PWQpKTtyLnN1YnNjcmliZShwKX0pfWZ1bmN0aW9uIFRhKG49e30pe2xldHtjb25uZWN0b3I6dD0oKCk9Pm5ldyBFZSkscmVzZXRPbkVycm9yOmU9ITAscmVzZXRPbkNvbXBsZXRlOmk9ITAscmVzZXRPblJlZkNvdW50WmVybzpyPSEwfT1uO3JldHVybiBvPT57bGV0IGEscyxsLGM9MCxkPSExLHU9ITEscD0oKT0+e3M/LnVuc3Vic2NyaWJlKCkscz12b2lkIDB9LGg9KCk9PntwKCksYT1sPXZvaWQgMCxkPXU9ITF9LG09KCk9PntsZXQgXz1hO2goKSxfPy51bnN1YnNjcmliZSgpfTtyZXR1cm4gWXQoKF8sTSk9PntjKyssIXUmJiFkJiZwKCk7bGV0IHk9bD1sPz90KCk7TS5hZGQoKCk9PntjLS0sMD09PWMmJiF1JiYhZCYmKHM9bFIobSxyKSl9KSx5LnN1YnNjcmliZShNKSwhYSYmYz4wJiYoYT1uZXcgZ2woe25leHQ6eD0+eS5uZXh0KHgpLGVycm9yOng9Pnt1PSEwLHAoKSxzPWxSKGgsZSx4KSx5LmVycm9yKHgpfSxjb21wbGV0ZTooKT0+e2Q9ITAscCgpLHM9bFIoaCxpKSx5LmNvbXBsZXRlKCl9fSksY2koXykuc3Vic2NyaWJlKGEpKX0pKG8pfX1mdW5jdGlvbiBsUihuLHQsLi4uZSl7aWYoITA9PT10KXJldHVybiB2b2lkIG4oKTtpZighMT09PXQpcmV0dXJuO2xldCBpPW5ldyBnbCh7bmV4dDooKT0+e2kudW5zdWJzY3JpYmUoKSxuKCl9fSk7cmV0dXJuIHQoLi4uZSkuc3Vic2NyaWJlKGkpfWZ1bmN0aW9uIERhKG4sdCxlKXtsZXQgaSxyPSExO3JldHVybiBuJiYib2JqZWN0Ij09dHlwZW9mIG4/KHtidWZmZXJTaXplOmk9MS8wLHdpbmRvd1RpbWU6dD0xLzAscmVmQ291bnQ6cj0hMSxzY2hlZHVsZXI6ZX09bik6aT1uPz8xLzAsVGEoe2Nvbm5lY3RvcjooKT0+bmV3IExwKGksdCxlKSxyZXNldE9uRXJyb3I6ITAscmVzZXRPbkNvbXBsZXRlOiExLHJlc2V0T25SZWZDb3VudFplcm86cn0pfWZ1bmN0aW9uIG9zKG4pe3JldHVybiBPZSgodCxlKT0+bjw9ZSl9ZnVuY3Rpb24ga24oLi4ubil7bGV0IHQ9dGMobik7cmV0dXJuIFl0KChlLGkpPT57KHQ/S2QobixlLHQpOktkKG4sZSkpLnN1YnNjcmliZShpKX0pfWZ1bmN0aW9uIEpuKG4sdCl7cmV0dXJuIFl0KChlLGkpPT57bGV0IHI9bnVsbCxvPTAsYT0hMSxzPSgpPT5hJiYhciYmaS5jb21wbGV0ZSgpO2Uuc3Vic2NyaWJlKEh0KGksbD0+e3I/LnVuc3Vic2NyaWJlKCk7bGV0IGM9MCxkPW8rKztjaShuKGwsZCkpLnN1YnNjcmliZShyPUh0KGksdT0+aS5uZXh0KHQ/dChsLHUsZCxjKyspOnUpLCgpPT57cj1udWxsLHMoKX0pKX0sKCk9PnthPSEwLHMoKX0pKX0pfWZ1bmN0aW9uIGl0KG4pe3JldHVybiBZdCgodCxlKT0+e2NpKG4pLnN1YnNjcmliZShIdChlLCgpPT5lLmNvbXBsZXRlKCksZmwpKSwhZS5jbG9zZWQmJnQuc3Vic2NyaWJlKGUpfSl9ZnVuY3Rpb24gT18obix0PSExKXtyZXR1cm4gWXQoKGUsaSk9PntsZXQgcj0wO2Uuc3Vic2NyaWJlKEh0KGksbz0+e2xldCBhPW4obyxyKyspOyhhfHx0KSYmaS5uZXh0KG8pLCFhJiZpLmNvbXBsZXRlKCl9KSl9KX1mdW5jdGlvbiBEdChuLHQsZSl7bGV0IGk9bW4obil8fHR8fGU/e25leHQ6bixlcnJvcjp0LGNvbXBsZXRlOmV9Om47cmV0dXJuIGk/WXQoKHIsbyk9Pnt2YXIgYTtudWxsPT09KGE9aS5zdWJzY3JpYmUpfHx2b2lkIDA9PT1hfHxhLmNhbGwoaSk7bGV0IHM9ITA7ci5zdWJzY3JpYmUoSHQobyxsPT57dmFyIGM7bnVsbD09PShjPWkubmV4dCl8fHZvaWQgMD09PWN8fGMuY2FsbChpLGwpLG8ubmV4dChsKX0sKCk9Pnt2YXIgbDtzPSExLG51bGw9PT0obD1pLmNvbXBsZXRlKXx8dm9pZCAwPT09bHx8bC5jYWxsKGkpLG8uY29tcGxldGUoKX0sbD0+e3ZhciBjO3M9ITEsbnVsbD09PShjPWkuZXJyb3IpfHx2b2lkIDA9PT1jfHxjLmNhbGwoaSxsKSxvLmVycm9yKGwpfSwoKT0+e3ZhciBsLGM7cyYmKG51bGw9PT0obD1pLnVuc3Vic2NyaWJlKXx8dm9pZCAwPT09bHx8bC5jYWxsKGkpKSxudWxsPT09KGM9aS5maW5hbGl6ZSl8fHZvaWQgMD09PWN8fGMuY2FsbChpKX0pKX0pOnNhfXZhciBjUj17bGVhZGluZzohMCx0cmFpbGluZzohMX07ZnVuY3Rpb24gaWMobix0PVFjLGU9Y1Ipe2xldCBpPXJzKG4sdCk7cmV0dXJuIGZ1bmN0aW9uKG4sdD1jUil7cmV0dXJuIFl0KChlLGkpPT57bGV0e2xlYWRpbmc6cix0cmFpbGluZzpvfT10LGE9ITEscz1udWxsLGw9bnVsbCxjPSExLGQ9KCk9PntsPy51bnN1YnNjcmliZSgpLGw9bnVsbCxvJiYoaCgpLGMmJmkuY29tcGxldGUoKSl9LHU9KCk9PntsPW51bGwsYyYmaS5jb21wbGV0ZSgpfSxwPW09Pmw9Y2kobihtKSkuc3Vic2NyaWJlKEh0KGksZCx1KSksaD0oKT0+e2lmKGEpe2E9ITE7bGV0IG09cztzPW51bGwsaS5uZXh0KG0pLCFjJiZwKG0pfX07ZS5zdWJzY3JpYmUoSHQoaSxtPT57YT0hMCxzPW0sKCFsfHxsLmNsb3NlZCkmJihyP2goKTpwKG0pKX0sKCk9PntjPSEwLCghKG8mJmEmJmwpfHxsLmNsb3NlZCkmJmkuY29tcGxldGUoKX0pKX0pfSgoKT0+aSxlKX1mdW5jdGlvbiBJdCguLi5uKXtsZXQgdD1lYyhuKTtyZXR1cm4gWXQoKGUsaSk9PntsZXQgcj1uLmxlbmd0aCxvPW5ldyBBcnJheShyKSxhPW4ubWFwKCgpPT4hMSkscz0hMTtmb3IobGV0IGw9MDtsPHI7bCsrKWNpKG5bbF0pLnN1YnNjcmliZShIdChpLGM9PntvW2xdPWMsIXMmJiFhW2xdJiYoYVtsXT0hMCwocz1hLmV2ZXJ5KHNhKSkmJihhPW51bGwpKX0sZmwpKTtlLnN1YnNjcmliZShIdChpLGw9PntpZihzKXtsZXQgYz1bbCwuLi5vXTtpLm5leHQodD90KC4uLmMpOmMpfX0pKX0pfWZ1bmN0aW9uICRpKG4pe2ZvcihsZXQgdCBpbiBuKWlmKG5bdF09PT0kaSlyZXR1cm4gdDt0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgcmVuYW1lZCBwcm9wZXJ0eSBvbiB0YXJnZXQgb2JqZWN0LiIpfWZ1bmN0aW9uIGRSKG4sdCl7Zm9yKGxldCBlIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShlKSYmIW4uaGFzT3duUHJvcGVydHkoZSkmJihuW2VdPXRbZV0pfWZ1bmN0aW9uIHBvKG4pe2lmKCJzdHJpbmciPT10eXBlb2YgbilyZXR1cm4gbjtpZihBcnJheS5pc0FycmF5KG4pKXJldHVybiJbIituLm1hcChwbykuam9pbigiLCAiKSsiXSI7aWYobnVsbD09bilyZXR1cm4iIituO2lmKG4ub3ZlcnJpZGRlbk5hbWUpcmV0dXJuYCR7bi5vdmVycmlkZGVuTmFtZX1gO2lmKG4ubmFtZSlyZXR1cm5gJHtuLm5hbWV9YDtsZXQgdD1uLnRvU3RyaW5nKCk7aWYobnVsbD09dClyZXR1cm4iIit0O2xldCBlPXQuaW5kZXhPZigiXG4iKTtyZXR1cm4tMT09PWU/dDp0LnN1YnN0cmluZygwLGUpfWZ1bmN0aW9uIFJSKG4sdCl7cmV0dXJuIG51bGw9PW58fCIiPT09bj9udWxsPT09dD8iIjp0Om51bGw9PXR8fCIiPT09dD9uOm4rIiAiK3R9dmFyIElyZT0kaSh7X19mb3J3YXJkX3JlZl9fOiRpfSk7ZnVuY3Rpb24gV24obil7cmV0dXJuIG4uX19mb3J3YXJkX3JlZl9fPVduLG4udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gcG8odGhpcygpKX0sbn1mdW5jdGlvbiBBaShuKXtyZXR1cm4gdDUobik/bigpOm59ZnVuY3Rpb24gdDUobil7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4uaGFzT3duUHJvcGVydHkoSXJlKSYmbi5fX2ZvcndhcmRfcmVmX189PT1Xbn1mdW5jdGlvbiBuNShuKXtyZXR1cm4gbiYmISFuLlx1MDI3NXByb3ZpZGVyc312YXIgb2I9Imh0dHBzOi8vZy5jby9uZy9zZWN1cml0eSN4c3MiLHh0PWNsYXNzIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IodCxlKXtzdXBlcihmdW5jdGlvbihuLHQpe3JldHVybmBORzAke01hdGguYWJzKG4pfSR7dD8iOiAiK3QudHJpbSgpOiIifWB9KHQsZSkpLHRoaXMuY29kZT10fX07ZnVuY3Rpb24gam4obil7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBuP246bnVsbD09bj8iIjpTdHJpbmcobil9ZnVuY3Rpb24gQlAobil7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG4/bi5uYW1lfHxuLnRvU3RyaW5nKCk6Im9iamVjdCI9PXR5cGVvZiBuJiZudWxsIT1uJiYiZnVuY3Rpb24iPT10eXBlb2Ygbi50eXBlP24udHlwZS5uYW1lfHxuLnR5cGUudG9TdHJpbmcoKTpqbihuKX1mdW5jdGlvbiBWUChuLHQpe3Rocm93IG5ldyB4dCgtMjAxLCExKX1mdW5jdGlvbiBpNShuLHQsZSxpKXt0aHJvdyBuZXcgRXJyb3IoYEFTU0VSVElPTiBFUlJPUjogJHtufWArKG51bGw9PWk/IiI6YCBbRXhwZWN0ZWQ9PiAke2V9ICR7aX0gJHt0fSA8PUFjdHVhbF1gKSl9ZnVuY3Rpb24gdWUobil7cmV0dXJue3Rva2VuOm4udG9rZW4scHJvdmlkZWRJbjpuLnByb3ZpZGVkSW58fG51bGwsZmFjdG9yeTpuLmZhY3RvcnksdmFsdWU6dm9pZCAwfX1mdW5jdGlvbiBIKG4pe3JldHVybntwcm92aWRlcnM6bi5wcm92aWRlcnN8fFtdLGltcG9ydHM6bi5pbXBvcnRzfHxbXX19ZnVuY3Rpb24gSFAobil7cmV0dXJuIHNIKG4sJEMpfHxzSChuLHI1KX1mdW5jdGlvbiBzSChuLHQpe3JldHVybiBuLmhhc093blByb3BlcnR5KHQpP25bdF06bnVsbH1mdW5jdGlvbiBsSChuKXtyZXR1cm4gbiYmKG4uaGFzT3duUHJvcGVydHkoUFIpfHxuLmhhc093blByb3BlcnR5KE9yZSkpP25bUFJdOm51bGx9dmFyIGtSLCRDPSRpKHsiXHUwMjc1cHJvdiI6JGl9KSxQUj0kaSh7Ilx1MDI3NWluaiI6JGl9KSxyNT0kaSh7bmdJbmplY3RhYmxlRGVmOiRpfSksT3JlPSRpKHtuZ0luamVjdG9yRGVmOiRpfSksQ2k9KCgpPT57cmV0dXJuKG49Q2l8fChDaT17fSkpW24uRGVmYXVsdD0wXT0iRGVmYXVsdCIsbltuLkhvc3Q9MV09Ikhvc3QiLG5bbi5TZWxmPTJdPSJTZWxmIixuW24uU2tpcFNlbGY9NF09IlNraXBTZWxmIixuW24uT3B0aW9uYWw9OF09Ik9wdGlvbmFsIixDaTt2YXIgbn0pKCk7ZnVuY3Rpb24gUHMobil7bGV0IHQ9a1I7cmV0dXJuIGtSPW4sdH1mdW5jdGlvbiBvNShuLHQsZSl7bGV0IGk9SFAobik7cmV0dXJuIGkmJiJyb290Ij09aS5wcm92aWRlZEluP3ZvaWQgMD09PWkudmFsdWU/aS52YWx1ZT1pLmZhY3RvcnkoKTppLnZhbHVlOmUmQ2kuT3B0aW9uYWw/bnVsbDp2b2lkIDAhPT10P3Q6dm9pZCBWUChwbyhuKSl9dmFyIExfLHpyPSgoKT0+dHlwZW9mIGdsb2JhbFRoaXM8InUiJiZnbG9iYWxUaGlzfHx0eXBlb2YgZ2xvYmFsPCJ1IiYmZ2xvYmFsfHx0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93fHx0eXBlb2Ygc2VsZjwidSImJnR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmc2VsZikoKSxYXz17fSxPUj0iX19OR19ESV9GTEFHX18iLGVNPSJuZ1RlbXBUb2tlblBhdGgiLExyZT0ibmdUb2tlblBhdGgiLEJyZT0vXG4vZ20sVnJlPSJcdTAyNzUiLGNIPSJfX3NvdXJjZSI7ZnVuY3Rpb24gVW0obil7bGV0IHQ9TF87cmV0dXJuIExfPW4sdH1mdW5jdGlvbiBIcmUobix0PUNpLkRlZmF1bHQpe2lmKHZvaWQgMD09PUxfKXRocm93IG5ldyB4dCgtMjAzLCExKTtyZXR1cm4gbnVsbD09PUxfP281KG4sdm9pZCAwLHQpOkxfLmdldChuLHQmQ2kuT3B0aW9uYWw/bnVsbDp2b2lkIDAsdCl9ZnVuY3Rpb24gTyhuLHQ9Q2kuRGVmYXVsdCl7cmV0dXJuKGtSfHxIcmUpKEFpKG4pLHQpfWZ1bmN0aW9uIGE1KG4pe3Rocm93IG5ldyB4dCgyMDIsITEpfWZ1bmN0aW9uICRuKG4sdD1DaS5EZWZhdWx0KXtyZXR1cm4gTyhuLFNNKHQpKX1mdW5jdGlvbiBTTShuKXtyZXR1cm4gdHlwZW9mIG4+InUifHwibnVtYmVyIj09dHlwZW9mIG4/bjowfChuLm9wdGlvbmFsJiY4KXwobi5ob3N0JiYxKXwobi5zZWxmJiYyKXwobi5za2lwU2VsZiYmNCl9ZnVuY3Rpb24gRlIobil7bGV0IHQ9W107Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKyspe2xldCBpPUFpKG5bZV0pO2lmKEFycmF5LmlzQXJyYXkoaSkpe2lmKDA9PT1pLmxlbmd0aCl0aHJvdyBuZXcgeHQoOTAwLCExKTtsZXQgcixvPUNpLkRlZmF1bHQ7Zm9yKGxldCBhPTA7YTxpLmxlbmd0aDthKyspe2xldCBzPWlbYV0sbD16cmUocyk7Im51bWJlciI9PXR5cGVvZiBsPy0xPT09bD9yPXMudG9rZW46b3w9bDpyPXN9dC5wdXNoKE8ocixvKSl9ZWxzZSB0LnB1c2goTyhpKSl9cmV0dXJuIHR9ZnVuY3Rpb24gYWIobix0KXtyZXR1cm4gbltPUl09dCxuLnByb3RvdHlwZVtPUl09dCxufWZ1bmN0aW9uIHpyZShuKXtyZXR1cm4gbltPUl19ZnVuY3Rpb24gcnUobil7cmV0dXJue3RvU3RyaW5nOm59LnRvU3RyaW5nKCl9dmFyIEJfPSgoKT0+e3JldHVybihuPUJffHwoQl89e30pKVtuLk9uUHVzaD0wXT0iT25QdXNoIixuW24uRGVmYXVsdD0xXT0iRGVmYXVsdCIsQl87dmFyIG59KSgpLGFzPSgoKT0+e3JldHVybihuPWFzfHwoYXM9e30pKVtuLkVtdWxhdGVkPTBdPSJFbXVsYXRlZCIsbltuLk5vbmU9Ml09Ik5vbmUiLG5bbi5TaGFkb3dEb209M109IlNoYWRvd0RvbSIsYXM7dmFyIG59KSgpLFpjPXt9LGppPVtdLEVNPSRpKHsiXHUwMjc1Y21wIjokaX0pLHpQPSRpKHsiXHUwMjc1ZGlyIjokaX0pLFVQPSRpKHsiXHUwMjc1cGlwZSI6JGl9KSxzNT0kaSh7Ilx1MDI3NW1vZCI6JGl9KSxLYz0kaSh7Ilx1MDI3NWZhYyI6JGl9KSxWXz0kaSh7X19OR19FTEVNRU5UX0lEX186JGl9KSxHcmU9MDtmdW5jdGlvbiBQKG4pe3JldHVybiBydSgoKT0+e2xldCB0PWM1KG4pLGU9ey4uLnQsZGVjbHM6bi5kZWNscyx2YXJzOm4udmFycyx0ZW1wbGF0ZTpuLnRlbXBsYXRlLGNvbnN0czpuLmNvbnN0c3x8bnVsbCxuZ0NvbnRlbnRTZWxlY3RvcnM6bi5uZ0NvbnRlbnRTZWxlY3RvcnMsb25QdXNoOm4uY2hhbmdlRGV0ZWN0aW9uPT09Ql8uT25QdXNoLGRpcmVjdGl2ZURlZnM6bnVsbCxwaXBlRGVmczpudWxsLGRlcGVuZGVuY2llczp0LnN0YW5kYWxvbmUmJm4uZGVwZW5kZW5jaWVzfHxudWxsLGdldFN0YW5kYWxvbmVJbmplY3RvcjpudWxsLGRhdGE6bi5kYXRhfHx7fSxlbmNhcHN1bGF0aW9uOm4uZW5jYXBzdWxhdGlvbnx8YXMuRW11bGF0ZWQsaWQ6ImMiK0dyZSsrLHN0eWxlczpuLnN0eWxlc3x8amksXzpudWxsLHNjaGVtYXM6bi5zY2hlbWFzfHxudWxsLHRWaWV3Om51bGx9O2Q1KGUpO2xldCBpPW4uZGVwZW5kZW5jaWVzO3JldHVybiBlLmRpcmVjdGl2ZURlZnM9dE0oaSwhMSksZS5waXBlRGVmcz10TShpLCEwKSxlfSl9ZnVuY3Rpb24gc2Iobix0LGUpe2xldCBpPW4uXHUwMjc1Y21wO2kuZGlyZWN0aXZlRGVmcz10TSh0LCExKSxpLnBpcGVEZWZzPXRNKGUsITApfWZ1bmN0aW9uIFdyZShuKXtyZXR1cm4gT3Mobil8fGV1KG4pfWZ1bmN0aW9uIHFyZShuKXtyZXR1cm4gbnVsbCE9PW59ZnVuY3Rpb24geihuKXtyZXR1cm4gcnUoKCk9Pih7dHlwZTpuLnR5cGUsYm9vdHN0cmFwOm4uYm9vdHN0cmFwfHxqaSxkZWNsYXJhdGlvbnM6bi5kZWNsYXJhdGlvbnN8fGppLGltcG9ydHM6bi5pbXBvcnRzfHxqaSxleHBvcnRzOm4uZXhwb3J0c3x8amksdHJhbnNpdGl2ZUNvbXBpbGVTY29wZXM6bnVsbCxzY2hlbWFzOm4uc2NoZW1hc3x8bnVsbCxpZDpuLmlkfHxudWxsfSkpfWZ1bmN0aW9uIGRIKG4sdCl7aWYobnVsbD09bilyZXR1cm4gWmM7bGV0IGU9e307Zm9yKGxldCBpIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShpKSl7bGV0IHI9bltpXSxvPXI7QXJyYXkuaXNBcnJheShyKSYmKG89clsxXSxyPXJbMF0pLGVbcl09aSx0JiYodFtyXT1vKX1yZXR1cm4gZX1mdW5jdGlvbiBNZShuKXtyZXR1cm4gcnUoKCk9PntsZXQgdD1jNShuKTtyZXR1cm4gZDUodCksdH0pfWZ1bmN0aW9uIHJmKG4pe3JldHVybnt0eXBlOm4udHlwZSxuYW1lOm4ubmFtZSxmYWN0b3J5Om51bGwscHVyZTohMSE9PW4ucHVyZSxzdGFuZGFsb25lOiEwPT09bi5zdGFuZGFsb25lLG9uRGVzdHJveTpuLnR5cGUucHJvdG90eXBlLm5nT25EZXN0cm95fHxudWxsfX1mdW5jdGlvbiBPcyhuKXtyZXR1cm4gbltFTV18fG51bGx9ZnVuY3Rpb24gZXUobil7cmV0dXJuIG5belBdfHxudWxsfWZ1bmN0aW9uIHR1KG4pe3JldHVybiBuW1VQXXx8bnVsbH1mdW5jdGlvbiBsNShuKXtsZXQgdD1PcyhuKXx8ZXUobil8fHR1KG4pO3JldHVybiBudWxsIT09dCYmdC5zdGFuZGFsb25lfWZ1bmN0aW9uIFptKG4sdCl7bGV0IGU9bltzNV18fG51bGw7aWYoIWUmJiEwPT09dCl0aHJvdyBuZXcgRXJyb3IoYFR5cGUgJHtwbyhuKX0gZG9lcyBub3QgaGF2ZSAnXHUwMjc1bW9kJyBwcm9wZXJ0eS5gKTtyZXR1cm4gZX1mdW5jdGlvbiBjNShuKXtsZXQgdD17fTtyZXR1cm57dHlwZTpuLnR5cGUscHJvdmlkZXJzUmVzb2x2ZXI6bnVsbCxmYWN0b3J5Om51bGwsaG9zdEJpbmRpbmdzOm4uaG9zdEJpbmRpbmdzfHxudWxsLGhvc3RWYXJzOm4uaG9zdFZhcnN8fDAsaG9zdEF0dHJzOm4uaG9zdEF0dHJzfHxudWxsLGNvbnRlbnRRdWVyaWVzOm4uY29udGVudFF1ZXJpZXN8fG51bGwsZGVjbGFyZWRJbnB1dHM6dCxleHBvcnRBczpuLmV4cG9ydEFzfHxudWxsLHN0YW5kYWxvbmU6ITA9PT1uLnN0YW5kYWxvbmUsc2VsZWN0b3JzOm4uc2VsZWN0b3JzfHxqaSx2aWV3UXVlcnk6bi52aWV3UXVlcnl8fG51bGwsZmVhdHVyZXM6bi5mZWF0dXJlc3x8bnVsbCxzZXRJbnB1dDpudWxsLGZpbmRIb3N0RGlyZWN0aXZlRGVmczpudWxsLGhvc3REaXJlY3RpdmVzOm51bGwsaW5wdXRzOmRIKG4uaW5wdXRzLHQpLG91dHB1dHM6ZEgobi5vdXRwdXRzKX19ZnVuY3Rpb24gZDUobil7bi5mZWF0dXJlcz8uZm9yRWFjaCh0PT50KG4pKX1mdW5jdGlvbiB0TShuLHQpe2lmKCFuKXJldHVybiBudWxsO2xldCBlPXQ/dHU6V3JlO3JldHVybigpPT4oImZ1bmN0aW9uIj09dHlwZW9mIG4/bigpOm4pLm1hcChpPT5lKGkpKS5maWx0ZXIocXJlKX12YXIgb3U9MCxGbj0xLGRpPTIsanI9Myx5bD00LHpwPTUsQWE9NixZXz03LFJhPTgsbk09OSxpTT0xMCx1aT0xMSxOUj0xMixRXz0xMyx1SD0xNCxvZj0xNSx4bD0xNixsYj0xNyxqbT0xOCxvYz0xOSxUTT0yMCx1NT0yMSxHcj0yMixqUD0xLHA1PTIsR1A9NyxyTT04LEttPTksSWE9MTA7ZnVuY3Rpb24gVXAobil7cmV0dXJuIEFycmF5LmlzQXJyYXkobikmJiJvYmplY3QiPT10eXBlb2YgbltqUF19ZnVuY3Rpb24gJGMobil7cmV0dXJuIEFycmF5LmlzQXJyYXkobikmJiEwPT09bltqUF19ZnVuY3Rpb24gV1Aobil7cmV0dXJuIDAhPSg0Jm4uZmxhZ3MpfWZ1bmN0aW9uIERNKG4pe3JldHVybiBuLmNvbXBvbmVudE9mZnNldD4tMX1mdW5jdGlvbiBJTShuKXtyZXR1cm4gMT09KDEmbi5mbGFncyl9ZnVuY3Rpb24gQ2wobil7cmV0dXJuISFuLnRlbXBsYXRlfWZ1bmN0aW9uIFhyZShuKXtyZXR1cm4gMCE9KDI1NiZuW2RpXSl9ZnVuY3Rpb24gR3Aobix0KXtyZXR1cm4gbi5oYXNPd25Qcm9wZXJ0eShLYyk/bltLY106bnVsbH12YXIgTFI9Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkpe3RoaXMucHJldmlvdXNWYWx1ZT10LHRoaXMuY3VycmVudFZhbHVlPWUsdGhpcy5maXJzdENoYW5nZT1pfWlzRmlyc3RDaGFuZ2UoKXtyZXR1cm4gdGhpcy5maXJzdENoYW5nZX19O2Z1bmN0aW9uIHF0KCl7cmV0dXJuIGg1fWZ1bmN0aW9uIGg1KG4pe3JldHVybiBuLnR5cGUucHJvdG90eXBlLm5nT25DaGFuZ2VzJiYobi5zZXRJbnB1dD1RcmUpLFlyZX1mdW5jdGlvbiBZcmUoKXtsZXQgbj1mNSh0aGlzKSx0PW4/LmN1cnJlbnQ7aWYodCl7bGV0IGU9bi5wcmV2aW91cztpZihlPT09WmMpbi5wcmV2aW91cz10O2Vsc2UgZm9yKGxldCBpIGluIHQpZVtpXT10W2ldO24uY3VycmVudD1udWxsLHRoaXMubmdPbkNoYW5nZXModCl9fWZ1bmN0aW9uIFFyZShuLHQsZSxpKXtsZXQgcj10aGlzLmRlY2xhcmVkSW5wdXRzW2VdLG89ZjUobil8fGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG5bbTVdPXR9KG4se3ByZXZpb3VzOlpjLGN1cnJlbnQ6bnVsbH0pLGE9by5jdXJyZW50fHwoby5jdXJyZW50PXt9KSxzPW8ucHJldmlvdXMsbD1zW3JdO2Fbcl09bmV3IExSKGwmJmwuY3VycmVudFZhbHVlLHQscz09PVpjKSxuW2ldPXR9cXQubmdJbmhlcml0PSEwO3ZhciBtNT0iX19uZ1NpbXBsZUNoYW5nZXNfXyI7ZnVuY3Rpb24gZjUobil7cmV0dXJuIG5bbTVdfHxudWxsfXZhciBrcz1mdW5jdGlvbihuLHQsZSl7fSxnNT0ic3ZnIixfNT0ibWF0aCI7ZnVuY3Rpb24gTHMobil7Zm9yKDtBcnJheS5pc0FycmF5KG4pOyluPW5bb3VdO3JldHVybiBufWZ1bmN0aW9uIEFNKG4sdCl7cmV0dXJuIExzKHRbbl0pfWZ1bmN0aW9uIHNzKG4sdCl7cmV0dXJuIExzKHRbbi5pbmRleF0pfWZ1bmN0aW9uIGI1KG4sdCl7cmV0dXJuIG4uZGF0YVt0XX1mdW5jdGlvbiBhZihuLHQpe3JldHVybiBuW3RdfWZ1bmN0aW9uIGVkKG4sdCl7bGV0IGU9dFtuXTtyZXR1cm4gVXAoZSk/ZTplW291XX1mdW5jdGlvbiBvTShuKXtyZXR1cm4gNjQ9PSg2NCZuW2RpXSl9ZnVuY3Rpb24gbnUobix0KXtyZXR1cm4gbnVsbD09dD9udWxsOm5bdF19ZnVuY3Rpb24gdjUobil7bltqbV09MH1mdW5jdGlvbiBxUChuLHQpe25benBdKz10O2xldCBlPW4saT1uW2pyXTtmb3IoO251bGwhPT1pJiYoMT09PXQmJjE9PT1lW3pwXXx8LTE9PT10JiYwPT09ZVt6cF0pOylpW3pwXSs9dCxlPWksaT1pW2pyXX12YXIgR249e2xGcmFtZTpUNShudWxsKSxiaW5kaW5nc0VuYWJsZWQ6ITB9O2Z1bmN0aW9uIHk1KCl7cmV0dXJuIEduLmJpbmRpbmdzRW5hYmxlZH1mdW5jdGlvbiBaZSgpe3JldHVybiBHbi5sRnJhbWUubFZpZXd9ZnVuY3Rpb24gVGkoKXtyZXR1cm4gR24ubEZyYW1lLnRWaWV3fWZ1bmN0aW9uIG5lKG4pe3JldHVybiBHbi5sRnJhbWUuY29udGV4dExWaWV3PW4sbltSYV19ZnVuY3Rpb24gaWUobil7cmV0dXJuIEduLmxGcmFtZS5jb250ZXh0TFZpZXc9bnVsbCxufWZ1bmN0aW9uIExvKCl7bGV0IG49eDUoKTtmb3IoO251bGwhPT1uJiY2ND09PW4udHlwZTspbj1uLnBhcmVudDtyZXR1cm4gbn1mdW5jdGlvbiB4NSgpe3JldHVybiBHbi5sRnJhbWUuY3VycmVudFROb2RlfWZ1bmN0aW9uIFpfKCl7bGV0IG49R24ubEZyYW1lLHQ9bi5jdXJyZW50VE5vZGU7cmV0dXJuIG4uaXNQYXJlbnQ/dDp0LnBhcmVudH1mdW5jdGlvbiBhYyhuLHQpe2xldCBlPUduLmxGcmFtZTtlLmN1cnJlbnRUTm9kZT1uLGUuaXNQYXJlbnQ9dH1mdW5jdGlvbiBYUCgpe3JldHVybiBHbi5sRnJhbWUuaXNQYXJlbnR9ZnVuY3Rpb24gWVAoKXtHbi5sRnJhbWUuaXNQYXJlbnQ9ITF9ZnVuY3Rpb24gY2EoKXtsZXQgbj1Hbi5sRnJhbWUsdD1uLmJpbmRpbmdSb290SW5kZXg7cmV0dXJuLTE9PT10JiYodD1uLmJpbmRpbmdSb290SW5kZXg9bi50Vmlldy5iaW5kaW5nU3RhcnRJbmRleCksdH1mdW5jdGlvbiB0ZCgpe3JldHVybiBHbi5sRnJhbWUuYmluZGluZ0luZGV4fWZ1bmN0aW9uIEM1KG4pe3JldHVybiBHbi5sRnJhbWUuYmluZGluZ0luZGV4PW59ZnVuY3Rpb24gc2YoKXtyZXR1cm4gR24ubEZyYW1lLmJpbmRpbmdJbmRleCsrfWZ1bmN0aW9uIG5kKG4pe2xldCB0PUduLmxGcmFtZSxlPXQuYmluZGluZ0luZGV4O3JldHVybiB0LmJpbmRpbmdJbmRleD10LmJpbmRpbmdJbmRleCtuLGV9ZnVuY3Rpb24gTTUobil7R24ubEZyYW1lLmluSTE4bj1ufWZ1bmN0aW9uIHNvZShuLHQpe2xldCBlPUduLmxGcmFtZTtlLmJpbmRpbmdJbmRleD1lLmJpbmRpbmdSb290SW5kZXg9bixCUih0KX1mdW5jdGlvbiBCUihuKXtHbi5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4PW59ZnVuY3Rpb24gUVAobil7bGV0IHQ9R24ubEZyYW1lLmN1cnJlbnREaXJlY3RpdmVJbmRleDtyZXR1cm4tMT09PXQ/bnVsbDpuW3RdfWZ1bmN0aW9uIHc1KCl7cmV0dXJuIEduLmxGcmFtZS5jdXJyZW50UXVlcnlJbmRleH1mdW5jdGlvbiBaUChuKXtHbi5sRnJhbWUuY3VycmVudFF1ZXJ5SW5kZXg9bn1mdW5jdGlvbiBjb2Uobil7bGV0IHQ9bltGbl07cmV0dXJuIDI9PT10LnR5cGU/dC5kZWNsVE5vZGU6MT09PXQudHlwZT9uW0FhXTpudWxsfWZ1bmN0aW9uIFM1KG4sdCxlKXtpZihlJkNpLlNraXBTZWxmKXtsZXQgcj10LG89bjtmb3IoOyEocj1yLnBhcmVudCxudWxsIT09cnx8ZSZDaS5Ib3N0fHwocj1jb2UobyksbnVsbD09PXJ8fChvPW9bb2ZdLDEwJnIudHlwZSkpKTspO2lmKG51bGw9PT1yKXJldHVybiExO3Q9cixuPW99bGV0IGk9R24ubEZyYW1lPUU1KCk7cmV0dXJuIGkuY3VycmVudFROb2RlPXQsaS5sVmlldz1uLCEwfWZ1bmN0aW9uIEtQKG4pe2xldCB0PUU1KCksZT1uW0ZuXTtHbi5sRnJhbWU9dCx0LmN1cnJlbnRUTm9kZT1lLmZpcnN0Q2hpbGQsdC5sVmlldz1uLHQudFZpZXc9ZSx0LmNvbnRleHRMVmlldz1uLHQuYmluZGluZ0luZGV4PWUuYmluZGluZ1N0YXJ0SW5kZXgsdC5pbkkxOG49ITF9ZnVuY3Rpb24gRTUoKXtsZXQgbj1Hbi5sRnJhbWUsdD1udWxsPT09bj9udWxsOm4uY2hpbGQ7cmV0dXJuIG51bGw9PT10P1Q1KG4pOnR9ZnVuY3Rpb24gVDUobil7bGV0IHQ9e2N1cnJlbnRUTm9kZTpudWxsLGlzUGFyZW50OiEwLGxWaWV3Om51bGwsdFZpZXc6bnVsbCxzZWxlY3RlZEluZGV4Oi0xLGNvbnRleHRMVmlldzpudWxsLGVsZW1lbnREZXB0aENvdW50OjAsY3VycmVudE5hbWVzcGFjZTpudWxsLGN1cnJlbnREaXJlY3RpdmVJbmRleDotMSxiaW5kaW5nUm9vdEluZGV4Oi0xLGJpbmRpbmdJbmRleDotMSxjdXJyZW50UXVlcnlJbmRleDowLHBhcmVudDpuLGNoaWxkOm51bGwsaW5JMThuOiExfTtyZXR1cm4gbnVsbCE9PW4mJihuLmNoaWxkPXQpLHR9ZnVuY3Rpb24gRDUoKXtsZXQgbj1Hbi5sRnJhbWU7cmV0dXJuIEduLmxGcmFtZT1uLnBhcmVudCxuLmN1cnJlbnRUTm9kZT1udWxsLG4ubFZpZXc9bnVsbCxufXZhciBJNT1ENTtmdW5jdGlvbiBKUCgpe2xldCBuPUQ1KCk7bi5pc1BhcmVudD0hMCxuLnRWaWV3PW51bGwsbi5zZWxlY3RlZEluZGV4PS0xLG4uY29udGV4dExWaWV3PW51bGwsbi5lbGVtZW50RGVwdGhDb3VudD0wLG4uY3VycmVudERpcmVjdGl2ZUluZGV4PS0xLG4uY3VycmVudE5hbWVzcGFjZT1udWxsLG4uYmluZGluZ1Jvb3RJbmRleD0tMSxuLmJpbmRpbmdJbmRleD0tMSxuLmN1cnJlbnRRdWVyeUluZGV4PTB9ZnVuY3Rpb24gZGEoKXtyZXR1cm4gR24ubEZyYW1lLnNlbGVjdGVkSW5kZXh9ZnVuY3Rpb24gV3Aobil7R24ubEZyYW1lLnNlbGVjdGVkSW5kZXg9bn1mdW5jdGlvbiBQcigpe2xldCBuPUduLmxGcmFtZTtyZXR1cm4gYjUobi50VmlldyxuLnNlbGVjdGVkSW5kZXgpfWZ1bmN0aW9uIHFuKCl7R24ubEZyYW1lLmN1cnJlbnROYW1lc3BhY2U9ZzV9ZnVuY3Rpb24gdWEoKXtHbi5sRnJhbWUuY3VycmVudE5hbWVzcGFjZT1udWxsfWZ1bmN0aW9uIFJNKG4sdCl7Zm9yKGxldCBlPXQuZGlyZWN0aXZlU3RhcnQsaT10LmRpcmVjdGl2ZUVuZDtlPGk7ZSsrKXtsZXQgbz1uLmRhdGFbZV0udHlwZS5wcm90b3R5cGUse25nQWZ0ZXJDb250ZW50SW5pdDphLG5nQWZ0ZXJDb250ZW50Q2hlY2tlZDpzLG5nQWZ0ZXJWaWV3SW5pdDpsLG5nQWZ0ZXJWaWV3Q2hlY2tlZDpjLG5nT25EZXN0cm95OmR9PW87YSYmKG4uY29udGVudEhvb2tzPz8obi5jb250ZW50SG9va3M9W10pKS5wdXNoKC1lLGEpLHMmJigobi5jb250ZW50SG9va3M/PyhuLmNvbnRlbnRIb29rcz1bXSkpLnB1c2goZSxzKSwobi5jb250ZW50Q2hlY2tIb29rcz8/KG4uY29udGVudENoZWNrSG9va3M9W10pKS5wdXNoKGUscykpLGwmJihuLnZpZXdIb29rcz8/KG4udmlld0hvb2tzPVtdKSkucHVzaCgtZSxsKSxjJiYoKG4udmlld0hvb2tzPz8obi52aWV3SG9va3M9W10pKS5wdXNoKGUsYyksKG4udmlld0NoZWNrSG9va3M/PyhuLnZpZXdDaGVja0hvb2tzPVtdKSkucHVzaChlLGMpKSxudWxsIT1kJiYobi5kZXN0cm95SG9va3M/PyhuLmRlc3Ryb3lIb29rcz1bXSkpLnB1c2goZSxkKX19ZnVuY3Rpb24gR0Mobix0LGUpe0E1KG4sdCwzLGUpfWZ1bmN0aW9uIFdDKG4sdCxlLGkpeygzJm5bZGldKT09PWUmJkE1KG4sdCxlLGkpfWZ1bmN0aW9uIHVSKG4sdCl7bGV0IGU9bltkaV07KDMmZSk9PT10JiYoZSY9MjA0NyxlKz0xLG5bZGldPWUpfWZ1bmN0aW9uIEE1KG4sdCxlLGkpe2xldCBvPWk/Py0xLGE9dC5sZW5ndGgtMSxzPTA7Zm9yKGxldCBsPXZvaWQgMCE9PWk/NjU1MzUmbltqbV06MDtsPGE7bCsrKWlmKCJudW1iZXIiPT10eXBlb2YgdFtsKzFdKXtpZihzPXRbbF0sbnVsbCE9aSYmcz49aSlicmVha31lbHNlIHRbbF08MCYmKG5bam1dKz02NTUzNiksKHM8b3x8LTE9PW8pJiYoZ29lKG4sZSx0LGwpLG5bam1dPSg0Mjk0OTAxNzYwJm5bam1dKStsKzIpLGwrK31mdW5jdGlvbiBnb2Uobix0LGUsaSl7bGV0IHI9ZVtpXTwwLG89ZVtpKzFdLHM9bltyPy1lW2ldOmVbaV1dO2lmKHIpe2lmKG5bZGldPj4xMTxuW2ptXT4+MTYmJigzJm5bZGldKT09PXQpe25bZGldKz0yMDQ4LGtzKDQscyxvKTt0cnl7by5jYWxsKHMpfWZpbmFsbHl7a3MoNSxzLG8pfX19ZWxzZXtrcyg0LHMsbyk7dHJ5e28uY2FsbChzKX1maW5hbGx5e2tzKDUscyxvKX19fXZhciBRbT0tMSxxcD1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSl7dGhpcy5mYWN0b3J5PXQsdGhpcy5yZXNvbHZpbmc9ITEsdGhpcy5jYW5TZWVWaWV3UHJvdmlkZXJzPWUsdGhpcy5pbmplY3RJbXBsPWl9fTtmdW5jdGlvbiBWUihuLHQsZSl7bGV0IGk9MDtmb3IoO2k8ZS5sZW5ndGg7KXtsZXQgcj1lW2ldO2lmKCJudW1iZXIiPT10eXBlb2Ygcil7aWYoMCE9PXIpYnJlYWs7aSsrO2xldCBvPWVbaSsrXSxhPWVbaSsrXSxzPWVbaSsrXTtuLnNldEF0dHJpYnV0ZSh0LGEscyxvKX1lbHNle2xldCBvPXIsYT1lWysraV07eW9lKG8pP24uc2V0UHJvcGVydHkodCxvLGEpOm4uc2V0QXR0cmlidXRlKHQsbyxhKSxpKyt9fXJldHVybiBpfWZ1bmN0aW9uIFI1KG4pe3JldHVybiAzPT09bnx8ND09PW58fDY9PT1ufWZ1bmN0aW9uIHlvZShuKXtyZXR1cm4gNjQ9PT1uLmNoYXJDb2RlQXQoMCl9ZnVuY3Rpb24gS18obix0KXtpZihudWxsIT09dCYmMCE9PXQubGVuZ3RoKWlmKG51bGw9PT1ufHwwPT09bi5sZW5ndGgpbj10LnNsaWNlKCk7ZWxzZXtsZXQgZT0tMTtmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krKyl7bGV0IHI9dFtpXTsibnVtYmVyIj09dHlwZW9mIHI/ZT1yOjA9PT1lfHxoSChuLGUscixudWxsLC0xPT09ZXx8Mj09PWU/dFsrK2ldOm51bGwpfX1yZXR1cm4gbn1mdW5jdGlvbiBoSChuLHQsZSxpLHIpe2xldCBvPTAsYT1uLmxlbmd0aDtpZigtMT09PXQpYT0tMTtlbHNlIGZvcig7bzxuLmxlbmd0aDspe2xldCBzPW5bbysrXTtpZigibnVtYmVyIj09dHlwZW9mIHMpe2lmKHM9PT10KXthPS0xO2JyZWFrfWlmKHM+dCl7YT1vLTE7YnJlYWt9fX1mb3IoO288bi5sZW5ndGg7KXtsZXQgcz1uW29dO2lmKCJudW1iZXIiPT10eXBlb2YgcylicmVhaztpZihzPT09ZSl7aWYobnVsbD09PWkpcmV0dXJuIHZvaWQobnVsbCE9PXImJihuW28rMV09cikpO2lmKGk9PT1uW28rMV0pcmV0dXJuIHZvaWQobltvKzJdPXIpfW8rKyxudWxsIT09aSYmbysrLG51bGwhPT1yJiZvKyt9LTEhPT1hJiYobi5zcGxpY2UoYSwwLHQpLG89YSsxKSxuLnNwbGljZShvKyssMCxlKSxudWxsIT09aSYmbi5zcGxpY2UobysrLDAsaSksbnVsbCE9PXImJm4uc3BsaWNlKG8rKywwLHIpfWZ1bmN0aW9uIFA1KG4pe3JldHVybiBuIT09UW19ZnVuY3Rpb24gYU0obil7cmV0dXJuIDMyNzY3Jm59ZnVuY3Rpb24gc00obix0KXtsZXQgZT1mdW5jdGlvbihuKXtyZXR1cm4gbj4+MTZ9KG4pLGk9dDtmb3IoO2U+MDspaT1pW29mXSxlLS07cmV0dXJuIGl9dmFyIEhSPSEwO2Z1bmN0aW9uIGxNKG4pe2xldCB0PUhSO3JldHVybiBIUj1uLHR9dmFyIGs1PTI1NSxPNT01LE1vZT0wLHJjPXt9O2Z1bmN0aW9uIGNNKG4sdCl7bGV0IGU9RjUobix0KTtpZigtMSE9PWUpcmV0dXJuIGU7bGV0IGk9dFtGbl07aS5maXJzdENyZWF0ZVBhc3MmJihuLmluamVjdG9ySW5kZXg9dC5sZW5ndGgscFIoaS5kYXRhLG4pLHBSKHQsbnVsbCkscFIoaS5ibHVlcHJpbnQsbnVsbCkpO2xldCByPSRQKG4sdCksbz1uLmluamVjdG9ySW5kZXg7aWYoUDUocikpe2xldCBhPWFNKHIpLHM9c00ocix0KSxsPXNbRm5dLmRhdGE7Zm9yKGxldCBjPTA7Yzw4O2MrKyl0W28rY109c1thK2NdfGxbYStjXX1yZXR1cm4gdFtvKzhdPXIsb31mdW5jdGlvbiBwUihuLHQpe24ucHVzaCgwLDAsMCwwLDAsMCwwLDAsdCl9ZnVuY3Rpb24gRjUobix0KXtyZXR1cm4tMT09PW4uaW5qZWN0b3JJbmRleHx8bi5wYXJlbnQmJm4ucGFyZW50LmluamVjdG9ySW5kZXg9PT1uLmluamVjdG9ySW5kZXh8fG51bGw9PT10W24uaW5qZWN0b3JJbmRleCs4XT8tMTpuLmluamVjdG9ySW5kZXh9ZnVuY3Rpb24gJFAobix0KXtpZihuLnBhcmVudCYmLTEhPT1uLnBhcmVudC5pbmplY3RvckluZGV4KXJldHVybiBuLnBhcmVudC5pbmplY3RvckluZGV4O2xldCBlPTAsaT1udWxsLHI9dDtmb3IoO251bGwhPT1yOyl7aWYoaT1INShyKSxudWxsPT09aSlyZXR1cm4gUW07aWYoZSsrLHI9cltvZl0sLTEhPT1pLmluamVjdG9ySW5kZXgpcmV0dXJuIGkuaW5qZWN0b3JJbmRleHxlPDwxNn1yZXR1cm4gUW19ZnVuY3Rpb24gelIobix0LGUpeyFmdW5jdGlvbihuLHQsZSl7bGV0IGk7InN0cmluZyI9PXR5cGVvZiBlP2k9ZS5jaGFyQ29kZUF0KDApfHwwOmUuaGFzT3duUHJvcGVydHkoVl8pJiYoaT1lW1ZfXSksbnVsbD09aSYmKGk9ZVtWX109TW9lKyspO2xldCByPWkmazU7dC5kYXRhW24rKHI+Pk81KV18PTE8PHJ9KG4sdCxlKX1mdW5jdGlvbiBONShuLHQsZSl7aWYoZSZDaS5PcHRpb25hbHx8dm9pZCAwIT09bilyZXR1cm4gbjtWUCgpfWZ1bmN0aW9uIEw1KG4sdCxlLGkpe2lmKGUmQ2kuT3B0aW9uYWwmJnZvaWQgMD09PWkmJihpPW51bGwpLDA9PShlJihDaS5TZWxmfENpLkhvc3QpKSl7bGV0IHI9bltuTV0sbz1Qcyh2b2lkIDApO3RyeXtyZXR1cm4gcj9yLmdldCh0LGksZSZDaS5PcHRpb25hbCk6bzUodCxpLGUmQ2kuT3B0aW9uYWwpfWZpbmFsbHl7UHMobyl9fXJldHVybiBONShpLDAsZSl9ZnVuY3Rpb24gQjUobix0LGUsaT1DaS5EZWZhdWx0LHIpe2lmKG51bGwhPT1uKXtpZigxMDI0JnRbZGldKXtsZXQgYT1mdW5jdGlvbihuLHQsZSxpLHIpe2xldCBvPW4sYT10O2Zvcig7bnVsbCE9PW8mJm51bGwhPT1hJiYxMDI0JmFbZGldJiYhKDI1NiZhW2RpXSk7KXtsZXQgcz1WNShvLGEsZSxpfENpLlNlbGYscmMpO2lmKHMhPT1yYylyZXR1cm4gcztsZXQgbD1vLnBhcmVudDtpZighbCl7bGV0IGM9YVt1NV07aWYoYyl7bGV0IGQ9Yy5nZXQoZSxyYyxpKTtpZihkIT09cmMpcmV0dXJuIGR9bD1INShhKSxhPWFbb2ZdfW89bH1yZXR1cm4gcn0obix0LGUsaSxyYyk7aWYoYSE9PXJjKXJldHVybiBhfWxldCBvPVY1KG4sdCxlLGkscmMpO2lmKG8hPT1yYylyZXR1cm4gb31yZXR1cm4gTDUodCxlLGkscil9ZnVuY3Rpb24gVjUobix0LGUsaSxyKXtsZXQgbz1mdW5jdGlvbihuKXtpZigic3RyaW5nIj09dHlwZW9mIG4pcmV0dXJuIG4uY2hhckNvZGVBdCgwKXx8MDtsZXQgdD1uLmhhc093blByb3BlcnR5KFZfKT9uW1ZfXTp2b2lkIDA7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0P3Q+PTA/dCZrNTpEb2U6dH0oZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG8pe2lmKCFTNSh0LG4saSkpcmV0dXJuIGkmQ2kuSG9zdD9ONShyLDAsaSk6TDUodCxlLGkscik7dHJ5e2xldCBhPW8oaSk7aWYobnVsbCE9YXx8aSZDaS5PcHRpb25hbClyZXR1cm4gYTtWUCgpfWZpbmFsbHl7STUoKX19ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIG8pe2xldCBhPW51bGwscz1GNShuLHQpLGw9UW0sYz1pJkNpLkhvc3Q/dFt4bF1bQWFdOm51bGw7Zm9yKCgtMT09PXN8fGkmQ2kuU2tpcFNlbGYpJiYobD0tMT09PXM/JFAobix0KTp0W3MrOF0sbCE9PVFtJiZmSChpLCExKT8oYT10W0ZuXSxzPWFNKGwpLHQ9c00obCx0KSk6cz0tMSk7LTEhPT1zOyl7bGV0IGQ9dFtGbl07aWYobUgobyxzLGQuZGF0YSkpe2xldCB1PUVvZShzLHQsZSxhLGksYyk7aWYodSE9PXJjKXJldHVybiB1fWw9dFtzKzhdLGwhPT1RbSYmZkgoaSx0W0ZuXS5kYXRhW3MrOF09PT1jKSYmbUgobyxzLHQpPyhhPWQscz1hTShsKSx0PXNNKGwsdCkpOnM9LTF9fXJldHVybiByfWZ1bmN0aW9uIEVvZShuLHQsZSxpLHIsbyl7bGV0IGE9dFtGbl0scz1hLmRhdGFbbis4XSxkPXFDKHMsYSxlLG51bGw9PWk/RE0ocykmJkhSOmkhPWEmJjAhPSgzJnMudHlwZSksciZDaS5Ib3N0JiZvPT09cyk7cmV0dXJuIG51bGwhPT1kP1hwKHQsYSxkLHMpOnJjfWZ1bmN0aW9uIHFDKG4sdCxlLGkscil7bGV0IG89bi5wcm92aWRlckluZGV4ZXMsYT10LmRhdGEscz0xMDQ4NTc1Jm8sbD1uLmRpcmVjdGl2ZVN0YXJ0LGQ9bz4+MjAscD1yP3MrZDpuLmRpcmVjdGl2ZUVuZDtmb3IobGV0IGg9aT9zOnMrZDtoPHA7aCsrKXtsZXQgbT1hW2hdO2lmKGg8bCYmZT09PW18fGg+PWwmJm0udHlwZT09PWUpcmV0dXJuIGh9aWYocil7bGV0IGg9YVtsXTtpZihoJiZDbChoKSYmaC50eXBlPT09ZSlyZXR1cm4gbH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBYcChuLHQsZSxpKXtsZXQgcj1uW2VdLG89dC5kYXRhO2lmKGZ1bmN0aW9uKG4pe3JldHVybiBuIGluc3RhbmNlb2YgcXB9KHIpKXtsZXQgYT1yO2EucmVzb2x2aW5nJiZmdW5jdGlvbihuLHQpe3Rocm93IG5ldyB4dCgtMjAwLGBDaXJjdWxhciBkZXBlbmRlbmN5IGluIERJIGRldGVjdGVkIGZvciAke259YCl9KEJQKG9bZV0pKTtsZXQgcz1sTShhLmNhblNlZVZpZXdQcm92aWRlcnMpO2EucmVzb2x2aW5nPSEwO2xldCBsPWEuaW5qZWN0SW1wbD9QcyhhLmluamVjdEltcGwpOm51bGw7UzUobixpLENpLkRlZmF1bHQpO3RyeXtyPW5bZV09YS5mYWN0b3J5KHZvaWQgMCxvLG4saSksdC5maXJzdENyZWF0ZVBhc3MmJmU+PWkuZGlyZWN0aXZlU3RhcnQmJmZ1bmN0aW9uKG4sdCxlKXtsZXR7bmdPbkNoYW5nZXM6aSxuZ09uSW5pdDpyLG5nRG9DaGVjazpvfT10LnR5cGUucHJvdG90eXBlO2lmKGkpe2xldCBhPWg1KHQpOyhlLnByZU9yZGVySG9va3M/PyhlLnByZU9yZGVySG9va3M9W10pKS5wdXNoKG4sYSksKGUucHJlT3JkZXJDaGVja0hvb2tzPz8oZS5wcmVPcmRlckNoZWNrSG9va3M9W10pKS5wdXNoKG4sYSl9ciYmKGUucHJlT3JkZXJIb29rcz8/KGUucHJlT3JkZXJIb29rcz1bXSkpLnB1c2goMC1uLHIpLG8mJigoZS5wcmVPcmRlckhvb2tzPz8oZS5wcmVPcmRlckhvb2tzPVtdKSkucHVzaChuLG8pLChlLnByZU9yZGVyQ2hlY2tIb29rcz8/KGUucHJlT3JkZXJDaGVja0hvb2tzPVtdKSkucHVzaChuLG8pKX0oZSxvW2VdLHQpfWZpbmFsbHl7bnVsbCE9PWwmJlBzKGwpLGxNKHMpLGEucmVzb2x2aW5nPSExLEk1KCl9fXJldHVybiByfWZ1bmN0aW9uIG1IKG4sdCxlKXtyZXR1cm4hIShlW3QrKG4+Pk81KV0mMTw8bil9ZnVuY3Rpb24gZkgobix0KXtyZXR1cm4hKG4mQ2kuU2VsZnx8biZDaS5Ib3N0JiZ0KX12YXIganA9Y2xhc3N7Y29uc3RydWN0b3IodCxlKXt0aGlzLl90Tm9kZT10LHRoaXMuX2xWaWV3PWV9Z2V0KHQsZSxpKXtyZXR1cm4gQjUodGhpcy5fdE5vZGUsdGhpcy5fbFZpZXcsdCxTTShpKSxlKX19O2Z1bmN0aW9uIERvZSgpe3JldHVybiBuZXcganAoTG8oKSxaZSgpKX1mdW5jdGlvbiBYbihuKXtyZXR1cm4gcnUoKCk9PntsZXQgdD1uLnByb3RvdHlwZS5jb25zdHJ1Y3RvcixlPXRbS2NdfHxVUih0KSxpPU9iamVjdC5wcm90b3R5cGUscj1PYmplY3QuZ2V0UHJvdG90eXBlT2Yobi5wcm90b3R5cGUpLmNvbnN0cnVjdG9yO2Zvcig7ciYmciE9PWk7KXtsZXQgbz1yW0tjXXx8VVIocik7aWYobyYmbyE9PWUpcmV0dXJuIG87cj1PYmplY3QuZ2V0UHJvdG90eXBlT2Yocil9cmV0dXJuIG89Pm5ldyBvfSl9ZnVuY3Rpb24gVVIobil7cmV0dXJuIHQ1KG4pPygpPT57bGV0IHQ9VVIoQWkobikpO3JldHVybiB0JiZ0KCl9OkdwKG4pfWZ1bmN0aW9uIEg1KG4pe2xldCB0PW5bRm5dLGU9dC50eXBlO3JldHVybiAyPT09ZT90LmRlY2xUTm9kZToxPT09ZT9uW0FhXTpudWxsfWZ1bmN0aW9uIE1vKG4pe3JldHVybiBmdW5jdGlvbihuLHQpe2lmKCJjbGFzcyI9PT10KXJldHVybiBuLmNsYXNzZXM7aWYoInN0eWxlIj09PXQpcmV0dXJuIG4uc3R5bGVzO2xldCBlPW4uYXR0cnM7aWYoZSl7bGV0IGk9ZS5sZW5ndGgscj0wO2Zvcig7cjxpOyl7bGV0IG89ZVtyXTtpZihSNShvKSlicmVhaztpZigwPT09bylyKz0yO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBvKWZvcihyKys7cjxpJiYic3RyaW5nIj09dHlwZW9mIGVbcl07KXIrKztlbHNle2lmKG89PT10KXJldHVybiBlW3IrMV07cis9Mn19fXJldHVybiBudWxsfShMbygpLG4pfXZhciBHbT0iX19hbm5vdGF0aW9uc19fIixXbT0iX19wYXJhbWV0ZXJzX18iLHFtPSJfX3Byb3BfX21ldGFkYXRhX18iO2Z1bmN0aW9uIGNiKG4sdCxlLGkscil7cmV0dXJuIHJ1KCgpPT57bGV0IG89ZWsodCk7ZnVuY3Rpb24gYSguLi5zKXtpZih0aGlzIGluc3RhbmNlb2YgYSlyZXR1cm4gby5jYWxsKHRoaXMsLi4ucyksdGhpcztsZXQgbD1uZXcgYSguLi5zKTtyZXR1cm4gZnVuY3Rpb24oZCl7cmV0dXJuIHImJnIoZCwuLi5zKSwoZC5oYXNPd25Qcm9wZXJ0eShHbSk/ZFtHbV06T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsR20se3ZhbHVlOltdfSlbR21dKS5wdXNoKGwpLGkmJmkoZCksZH19cmV0dXJuIGUmJihhLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSksYS5wcm90b3R5cGUubmdNZXRhZGF0YU5hbWU9bixhLmFubm90YXRpb25DbHM9YSxhfSl9ZnVuY3Rpb24gZWsobil7cmV0dXJuIGZ1bmN0aW9uKC4uLmUpe2lmKG4pe2xldCBpPW4oLi4uZSk7Zm9yKGxldCByIGluIGkpdGhpc1tyXT1pW3JdfX19ZnVuY3Rpb24gbGYobix0LGUpe3JldHVybiBydSgoKT0+e2xldCBpPWVrKHQpO2Z1bmN0aW9uIHIoLi4ubyl7aWYodGhpcyBpbnN0YW5jZW9mIHIpcmV0dXJuIGkuYXBwbHkodGhpcyxvKSx0aGlzO2xldCBhPW5ldyByKC4uLm8pO3JldHVybiBzLmFubm90YXRpb249YSxzO2Z1bmN0aW9uIHMobCxjLGQpe2xldCB1PWwuaGFzT3duUHJvcGVydHkoV20pP2xbV21dOk9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLFdtLHt2YWx1ZTpbXX0pW1dtXTtmb3IoO3UubGVuZ3RoPD1kOyl1LnB1c2gobnVsbCk7cmV0dXJuKHVbZF09dVtkXXx8W10pLnB1c2goYSksbH19cmV0dXJuIGUmJihyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSksci5wcm90b3R5cGUubmdNZXRhZGF0YU5hbWU9bixyLmFubm90YXRpb25DbHM9cixyfSl9ZnVuY3Rpb24gYXUobix0LGUsaSl7cmV0dXJuIHJ1KCgpPT57bGV0IHI9ZWsodCk7ZnVuY3Rpb24gbyguLi5hKXtpZih0aGlzIGluc3RhbmNlb2YgbylyZXR1cm4gci5hcHBseSh0aGlzLGEpLHRoaXM7bGV0IHM9bmV3IG8oLi4uYSk7cmV0dXJuIGZ1bmN0aW9uKGMsZCl7bGV0IHU9Yy5jb25zdHJ1Y3RvcixwPXUuaGFzT3duUHJvcGVydHkocW0pP3VbcW1dOk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LHFtLHt2YWx1ZTp7fX0pW3FtXTtwW2RdPXAuaGFzT3duUHJvcGVydHkoZCkmJnBbZF18fFtdLHBbZF0udW5zaGlmdChzKSxpJiZpKGMsZCwuLi5hKX19cmV0dXJuIGUmJihvLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSksby5wcm90b3R5cGUubmdNZXRhZGF0YU5hbWU9bixvLmFubm90YXRpb25DbHM9byxvfSl9dmFyIEFvZT1sZigiQXR0cmlidXRlIixuPT4oe2F0dHJpYnV0ZU5hbWU6bixfX05HX0VMRU1FTlRfSURfXzooKT0+TW8obil9KSksdGU9Y2xhc3N7Y29uc3RydWN0b3IodCxlKXt0aGlzLl9kZXNjPXQsdGhpcy5uZ01ldGFkYXRhTmFtZT0iSW5qZWN0aW9uVG9rZW4iLHRoaXMuXHUwMjc1cHJvdj12b2lkIDAsIm51bWJlciI9PXR5cGVvZiBlP3RoaXMuX19OR19FTEVNRU5UX0lEX189ZTp2b2lkIDAhPT1lJiYodGhpcy5cdTAyNzVwcm92PXVlKHt0b2tlbjp0aGlzLHByb3ZpZGVkSW46ZS5wcm92aWRlZElufHwicm9vdCIsZmFjdG9yeTplLmZhY3Rvcnl9KSl9Z2V0IG11bHRpKCl7cmV0dXJuIHRoaXN9dG9TdHJpbmcoKXtyZXR1cm5gSW5qZWN0aW9uVG9rZW4gJHt0aGlzLl9kZXNjfWB9fSxKbT0obmV3IHRlKCJBbmFseXplRm9yRW50cnlDb21wb25lbnRzIiksY2xhc3N7fSk7ZnVuY3Rpb24gRnMobil7bGV0IHQ9enIubmc7aWYodCYmdC5cdTAyNzVjb21waWxlckZhY2FkZSlyZXR1cm4gdC5cdTAyNzVjb21waWxlckZhY2FkZTt0aHJvdyBuZXcgRXJyb3IoIkpJVCBjb21waWxlciB1bmF2YWlsYWJsZSIpfWF1KCJDb250ZW50Q2hpbGRyZW4iLChuLHQ9e30pPT4oe3NlbGVjdG9yOm4sZmlyc3Q6ITEsaXNWaWV3UXVlcnk6ITEsZGVzY2VuZGFudHM6ITEsZW1pdERpc3RpbmN0Q2hhbmdlc09ubHk6ITAsLi4udH0pLEptKSxhdSgiQ29udGVudENoaWxkIiwobix0PXt9KT0+KHtzZWxlY3RvcjpuLGZpcnN0OiEwLGlzVmlld1F1ZXJ5OiExLGRlc2NlbmRhbnRzOiEwLC4uLnR9KSxKbSksYXUoIlZpZXdDaGlsZHJlbiIsKG4sdD17fSk9Pih7c2VsZWN0b3I6bixmaXJzdDohMSxpc1ZpZXdRdWVyeTohMCxkZXNjZW5kYW50czohMCxlbWl0RGlzdGluY3RDaGFuZ2VzT25seTohMCwuLi50fSksSm0pLGF1KCJWaWV3Q2hpbGQiLChuLHQpPT4oe3NlbGVjdG9yOm4sZmlyc3Q6ITAsaXNWaWV3UXVlcnk6ITAsZGVzY2VuZGFudHM6ITAsLi4udH0pLEptKTt2YXIgUm9lPUZ1bmN0aW9uO2Z1bmN0aW9uIEZfKG4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBufWZ1bmN0aW9uIEpkKG4pe3JldHVybiBuLmZsYXQoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKX1mdW5jdGlvbiB0ayhuLHQpe24uZm9yRWFjaChlPT5BcnJheS5pc0FycmF5KGUpP3RrKGUsdCk6dChlKSl9ZnVuY3Rpb24gVTUobix0LGUpe3Q+PW4ubGVuZ3RoP24ucHVzaChlKTpuLnNwbGljZSh0LDAsZSl9ZnVuY3Rpb24gZE0obix0KXtyZXR1cm4gdD49bi5sZW5ndGgtMT9uLnBvcCgpOm4uc3BsaWNlKHQsMSlbMF19ZnVuY3Rpb24gSF8obix0KXtsZXQgZT1bXTtmb3IobGV0IGk9MDtpPG47aSsrKWUucHVzaCh0KTtyZXR1cm4gZX1mdW5jdGlvbiBscyhuLHQsZSl7bGV0IGk9ZGIobix0KTtyZXR1cm4gaT49MD9uWzF8aV09ZTooaT1+aSxmdW5jdGlvbihuLHQsZSxpKXtsZXQgcj1uLmxlbmd0aDtpZihyPT10KW4ucHVzaChlLGkpO2Vsc2UgaWYoMT09PXIpbi5wdXNoKGksblswXSksblswXT1lO2Vsc2V7Zm9yKHItLSxuLnB1c2gobltyLTFdLG5bcl0pO3I+dDspbltyXT1uW3ItMl0sci0tO25bdF09ZSxuW3QrMV09aX19KG4saSx0LGUpKSxpfWZ1bmN0aW9uIGhSKG4sdCl7bGV0IGU9ZGIobix0KTtpZihlPj0wKXJldHVybiBuWzF8ZV19ZnVuY3Rpb24gZGIobix0KXtyZXR1cm4gZnVuY3Rpb24obix0LGUpe2xldCBpPTAscj1uLmxlbmd0aD4+MTtmb3IoO3IhPT1pOyl7bGV0IG89aSsoci1pPj4xKSxhPW5bbzw8MV07aWYodD09PWEpcmV0dXJuIG88PDE7YT50P3I9bzppPW8rMX1yZXR1cm5+KHI8PDEpfShuLHQpfXZhciBGb2U9L15mdW5jdGlvblxzK1xTK1woXClccyp7W1xzXFNdK1wuYXBwbHlcKHRoaXMsXHMqKGFyZ3VtZW50c3woPzpbXigpXStcKFxbXF0sKT9bXigpXStcKGFyZ3VtZW50c1wpLiopXCkvLE5vZT0vXmNsYXNzXHMrW0EtWmEtelxkJF9dKlxzKmV4dGVuZHNccytbXntdK3svLExvZT0vXmNsYXNzXHMrW0EtWmEtelxkJF9dKlxzKmV4dGVuZHNccytbXntdK3tbXHNcU10qY29uc3RydWN0b3JccypcKC8sQm9lPS9eY2xhc3NccytbQS1aYS16XGQkX10qXHMqZXh0ZW5kc1xzK1tee10re1tcc1xTXSpjb25zdHJ1Y3RvclxzKlwoXClccyp7W159XSpzdXBlclwoXC5cLlwuYXJndW1lbnRzXCkvLGpSPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuX3JlZmxlY3Q9dHx8enIuUmVmbGVjdH1mYWN0b3J5KHQpe3JldHVybiguLi5lKT0+bmV3IHQoLi4uZSl9X3ppcFR5cGVzQW5kQW5ub3RhdGlvbnModCxlKXtsZXQgaTtpPUhfKHR5cGVvZiB0PiJ1Ij9lLmxlbmd0aDp0Lmxlbmd0aCk7Zm9yKGxldCByPTA7cjxpLmxlbmd0aDtyKyspaVtyXT10eXBlb2YgdD4idSI/W106dFtyXSYmdFtyXSE9T2JqZWN0P1t0W3JdXTpbXSxlJiZudWxsIT1lW3JdJiYoaVtyXT1pW3JdLmNvbmNhdChlW3JdKSk7cmV0dXJuIGl9X293blBhcmFtZXRlcnModCxlKXtsZXQgaT10LnRvU3RyaW5nKCk7aWYoRm9lLnRlc3Qobj1pKXx8Qm9lLnRlc3Qobil8fE5vZS50ZXN0KG4pJiYhTG9lLnRlc3QobikpcmV0dXJuIG51bGw7dmFyIG47aWYodC5wYXJhbWV0ZXJzJiZ0LnBhcmFtZXRlcnMhPT1lLnBhcmFtZXRlcnMpcmV0dXJuIHQucGFyYW1ldGVycztsZXQgcj10LmN0b3JQYXJhbWV0ZXJzO2lmKHImJnIhPT1lLmN0b3JQYXJhbWV0ZXJzKXtsZXQgcz0iZnVuY3Rpb24iPT10eXBlb2Ygcj9yKCk6cixsPXMubWFwKGQ9PmQmJmQudHlwZSksYz1zLm1hcChkPT5kJiZtUihkLmRlY29yYXRvcnMpKTtyZXR1cm4gdGhpcy5femlwVHlwZXNBbmRBbm5vdGF0aW9ucyhsLGMpfWxldCBvPXQuaGFzT3duUHJvcGVydHkoV20pJiZ0W1dtXSxhPXRoaXMuX3JlZmxlY3QmJnRoaXMuX3JlZmxlY3QuZ2V0T3duTWV0YWRhdGEmJnRoaXMuX3JlZmxlY3QuZ2V0T3duTWV0YWRhdGEoImRlc2lnbjpwYXJhbXR5cGVzIix0KTtyZXR1cm4gYXx8bz90aGlzLl96aXBUeXBlc0FuZEFubm90YXRpb25zKGEsbyk6SF8odC5sZW5ndGgpfXBhcmFtZXRlcnModCl7aWYoIUZfKHQpKXJldHVybltdO2xldCBlPVZDKHQpLGk9dGhpcy5fb3duUGFyYW1ldGVycyh0LGUpO3JldHVybiFpJiZlIT09T2JqZWN0JiYoaT10aGlzLnBhcmFtZXRlcnMoZSkpLGl8fFtdfV9vd25Bbm5vdGF0aW9ucyh0LGUpe2lmKHQuYW5ub3RhdGlvbnMmJnQuYW5ub3RhdGlvbnMhPT1lLmFubm90YXRpb25zKXtsZXQgaT10LmFubm90YXRpb25zO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBpJiZpLmFubm90YXRpb25zJiYoaT1pLmFubm90YXRpb25zKSxpfXJldHVybiB0LmRlY29yYXRvcnMmJnQuZGVjb3JhdG9ycyE9PWUuZGVjb3JhdG9ycz9tUih0LmRlY29yYXRvcnMpOnQuaGFzT3duUHJvcGVydHkoR20pP3RbR21dOm51bGx9YW5ub3RhdGlvbnModCl7aWYoIUZfKHQpKXJldHVybltdO2xldCBlPVZDKHQpLGk9dGhpcy5fb3duQW5ub3RhdGlvbnModCxlKXx8W107cmV0dXJuKGUhPT1PYmplY3Q/dGhpcy5hbm5vdGF0aW9ucyhlKTpbXSkuY29uY2F0KGkpfV9vd25Qcm9wTWV0YWRhdGEodCxlKXtpZih0LnByb3BNZXRhZGF0YSYmdC5wcm9wTWV0YWRhdGEhPT1lLnByb3BNZXRhZGF0YSl7bGV0IGk9dC5wcm9wTWV0YWRhdGE7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGkmJmkucHJvcE1ldGFkYXRhJiYoaT1pLnByb3BNZXRhZGF0YSksaX1pZih0LnByb3BEZWNvcmF0b3JzJiZ0LnByb3BEZWNvcmF0b3JzIT09ZS5wcm9wRGVjb3JhdG9ycyl7bGV0IGk9dC5wcm9wRGVjb3JhdG9ycyxyPXt9O3JldHVybiBPYmplY3Qua2V5cyhpKS5mb3JFYWNoKG89PntyW29dPW1SKGlbb10pfSkscn1yZXR1cm4gdC5oYXNPd25Qcm9wZXJ0eShxbSk/dFtxbV06bnVsbH1wcm9wTWV0YWRhdGEodCl7aWYoIUZfKHQpKXJldHVybnt9O2xldCBlPVZDKHQpLGk9e307aWYoZSE9PU9iamVjdCl7bGV0IG89dGhpcy5wcm9wTWV0YWRhdGEoZSk7T2JqZWN0LmtleXMobykuZm9yRWFjaChhPT57aVthXT1vW2FdfSl9bGV0IHI9dGhpcy5fb3duUHJvcE1ldGFkYXRhKHQsZSk7cmV0dXJuIHImJk9iamVjdC5rZXlzKHIpLmZvckVhY2gobz0+e2xldCBhPVtdO2kuaGFzT3duUHJvcGVydHkobykmJmEucHVzaCguLi5pW29dKSxhLnB1c2goLi4ucltvXSksaVtvXT1hfSksaX1vd25Qcm9wTWV0YWRhdGEodCl7cmV0dXJuIEZfKHQpJiZ0aGlzLl9vd25Qcm9wTWV0YWRhdGEodCxWQyh0KSl8fHt9fWhhc0xpZmVjeWNsZUhvb2sodCxlKXtyZXR1cm4gdCBpbnN0YW5jZW9mIFJvZSYmZSBpbiB0LnByb3RvdHlwZX19O2Z1bmN0aW9uIG1SKG4pe3JldHVybiBuP24ubWFwKHQ9Pm5ldygwLHQudHlwZS5hbm5vdGF0aW9uQ2xzKSguLi50LmFyZ3M/dC5hcmdzOltdKSk6W119ZnVuY3Rpb24gVkMobil7bGV0IHQ9bi5wcm90b3R5cGU/T2JqZWN0LmdldFByb3RvdHlwZU9mKG4ucHJvdG90eXBlKTpudWxsO3JldHVybih0P3QuY29uc3RydWN0b3I6bnVsbCl8fE9iamVjdH12YXIgY2Y9YWIobGYoIkluamVjdCIsbj0+KHt0b2tlbjpufSkpLC0xKSxrYT1hYihsZigiT3B0aW9uYWwiKSw4KSxIb2U9YWIobGYoIlNlbGYiKSwyKSxpZD1hYihsZigiU2tpcFNlbGYiKSw0KSx6b2U9YWIobGYoIkhvc3QiKSwxKSxnSD1udWxsO2Z1bmN0aW9uIG5rKCl7cmV0dXJuIGdIPWdIfHxuZXcgalJ9ZnVuY3Rpb24gUE0obil7cmV0dXJuIGo1KG5rKCkucGFyYW1ldGVycyhuKSl9ZnVuY3Rpb24gajUobil7cmV0dXJuIG4ubWFwKHQ9PmZ1bmN0aW9uKG4pe2xldCB0PXt0b2tlbjpudWxsLGF0dHJpYnV0ZTpudWxsLGhvc3Q6ITEsb3B0aW9uYWw6ITEsc2VsZjohMSxza2lwU2VsZjohMX07aWYoQXJyYXkuaXNBcnJheShuKSYmbi5sZW5ndGg+MClmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrKyl7bGV0IGk9bltlXTtpZih2b2lkIDA9PT1pKWNvbnRpbnVlO2xldCByPU9iamVjdC5nZXRQcm90b3R5cGVPZihpKTtpZihpIGluc3RhbmNlb2Yga2F8fCJPcHRpb25hbCI9PT1yLm5nTWV0YWRhdGFOYW1lKXQub3B0aW9uYWw9ITA7ZWxzZSBpZihpIGluc3RhbmNlb2YgaWR8fCJTa2lwU2VsZiI9PT1yLm5nTWV0YWRhdGFOYW1lKXQuc2tpcFNlbGY9ITA7ZWxzZSBpZihpIGluc3RhbmNlb2YgSG9lfHwiU2VsZiI9PT1yLm5nTWV0YWRhdGFOYW1lKXQuc2VsZj0hMDtlbHNlIGlmKGkgaW5zdGFuY2VvZiB6b2V8fCJIb3N0Ij09PXIubmdNZXRhZGF0YU5hbWUpdC5ob3N0PSEwO2Vsc2UgaWYoaSBpbnN0YW5jZW9mIGNmKXQudG9rZW49aS50b2tlbjtlbHNlIGlmKGkgaW5zdGFuY2VvZiBBb2Upe2lmKHZvaWQgMD09PWkuYXR0cmlidXRlTmFtZSl0aHJvdyBuZXcgeHQoMjA0LCExKTt0LmF0dHJpYnV0ZT1pLmF0dHJpYnV0ZU5hbWV9ZWxzZSB0LnRva2VuPWl9ZWxzZSB0LnRva2VuPXZvaWQgMD09PW58fEFycmF5LmlzQXJyYXkobikmJjA9PT1uLmxlbmd0aD9udWxsOm47cmV0dXJuIHR9KHQpKX12YXIgSl89bmV3IE1hcCxHNT1uZXcgU2V0O2Z1bmN0aW9uIFc1KG4pe3JldHVybiEhKG4udGVtcGxhdGVVcmwmJiFuLmhhc093blByb3BlcnR5KCJ0ZW1wbGF0ZSIpfHxuLnN0eWxlVXJscyYmbi5zdHlsZVVybHMubGVuZ3RoKX12YXIgX0g9bmV3IE1hcCxRb2U9ITA7ZnVuY3Rpb24gcTUobix0KXsoZnVuY3Rpb24obix0LGUpe2lmKHQmJnQhPT1lJiZRb2UpdGhyb3cgbmV3IEVycm9yKGBEdXBsaWNhdGUgbW9kdWxlIHJlZ2lzdGVyZWQgZm9yICR7bn0gLSAke3BvKHQpfSB2cyAke3BvKHQubmFtZSl9YCl9KSh0LF9ILmdldCh0KXx8bnVsbCxuKSxfSC5zZXQodCxuKX12YXIgR1IsTnM9KCgpPT57cmV0dXJuKG49TnN8fChOcz17fSkpW24uSW1wb3J0YW50PTFdPSJJbXBvcnRhbnQiLG5bbi5EYXNoQ2FzZT0yXT0iRGFzaENhc2UiLE5zO3ZhciBufSkoKSxLb2U9L14+fF4tPnw8IS0tfC0tPnwtLSE+fDwhLSQvZyxKb2U9Lyg8fD4pLywkb2U9Ilx1MjAwYiQxXHUyMDBiIixYNT1uZXcgTWFwLHRhZT0wLGJIPSJfX25nQ29udGV4dF9fIjtmdW5jdGlvbiBzYyhuLHQpe1VwKHQpPyhuW2JIXT10W1RNXSxmdW5jdGlvbihuKXtYNS5zZXQobltUTV0sbil9KHQpKTpuW2JIXT10fWZ1bmN0aW9uIGlrKG4sdCl7cmV0dXJuIEdSKG4sdCl9ZnVuY3Rpb24gcmsobil7bGV0IHQ9bltqcl07cmV0dXJuICRjKHQpP3RbanJdOnR9ZnVuY3Rpb24gb2sobil7cmV0dXJuIFk1KG5bUV9dKX1mdW5jdGlvbiBhayhuKXtyZXR1cm4gWTUoblt5bF0pfWZ1bmN0aW9uIFk1KG4pe2Zvcig7bnVsbCE9PW4mJiEkYyhuKTspbj1uW3lsXTtyZXR1cm4gbn1mdW5jdGlvbiBYbShuLHQsZSxpLHIpe2lmKG51bGwhPWkpe2xldCBvLGE9ITE7JGMoaSk/bz1pOlVwKGkpJiYoYT0hMCxpPWlbb3VdKTtsZXQgcz1McyhpKTswPT09biYmbnVsbCE9PWU/bnVsbD09cj9leih0LGUscyk6WXAodCxlLHMscnx8bnVsbCwhMCk6MT09PW4mJm51bGwhPT1lP1lwKHQsZSxzLHJ8fG51bGwsITApOjI9PT1uP2NrKHQscyxhKTozPT09biYmdC5kZXN0cm95Tm9kZShzKSxudWxsIT1vJiZmdW5jdGlvbihuLHQsZSxpLHIpe2xldCBvPWVbR1BdO28hPT1McyhlKSYmWG0odCxuLGksbyxyKTtmb3IobGV0IHM9SWE7czxlLmxlbmd0aDtzKyspe2xldCBsPWVbc107dWIobFtGbl0sbCxuLHQsaSxvKX19KHQsbixvLGUscil9fWZ1bmN0aW9uIHNrKG4sdCl7cmV0dXJuIG4uY3JlYXRlVGV4dCh0KX1mdW5jdGlvbiBRNShuLHQsZSl7bi5zZXRWYWx1ZSh0LGUpfWZ1bmN0aW9uIGFhZShuLHQpe3JldHVybiBuLmNyZWF0ZUNvbW1lbnQoZnVuY3Rpb24obil7cmV0dXJuIG4ucmVwbGFjZShLb2UsdD0+dC5yZXBsYWNlKEpvZSwkb2UpKX0odCkpfWZ1bmN0aW9uIGxrKG4sdCxlKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHQsZSl9ZnVuY3Rpb24gWjUobix0KXtsZXQgZT1uW0ttXSxpPWUuaW5kZXhPZih0KSxyPXRbanJdOzUxMiZ0W2RpXSYmKHRbZGldJj0tNTEzLHFQKHIsLTEpKSxlLnNwbGljZShpLDEpfWZ1bmN0aW9uIFdSKG4sdCl7aWYobi5sZW5ndGg8PUlhKXJldHVybjtsZXQgZT1JYSt0LGk9bltlXTtpZihpKXtsZXQgcj1pW2xiXTtudWxsIT09ciYmciE9PW4mJlo1KHIsaSksdD4wJiYobltlLTFdW3lsXT1pW3lsXSk7bGV0IG89ZE0obixJYSt0KTshZnVuY3Rpb24obix0KXt1YihuLHQsdFt1aV0sMixudWxsLG51bGwpLHRbb3VdPW51bGwsdFtBYV09bnVsbH0oaVtGbl0saSk7bGV0IGE9b1tvY107bnVsbCE9PWEmJmEuZGV0YWNoVmlldyhvW0ZuXSksaVtqcl09bnVsbCxpW3lsXT1udWxsLGlbZGldJj0tNjV9cmV0dXJuIGl9ZnVuY3Rpb24gSzUobix0KXtpZighKDEyOCZ0W2RpXSkpe2xldCBlPXRbdWldO2UuZGVzdHJveU5vZGUmJnViKG4sdCxlLDMsbnVsbCxudWxsKSxmdW5jdGlvbihuKXtsZXQgdD1uW1FfXTtpZighdClyZXR1cm4gZlIobltGbl0sbik7Zm9yKDt0Oyl7bGV0IGU9bnVsbDtpZihVcCh0KSllPXRbUV9dO2Vsc2V7bGV0IGk9dFtJYV07aSYmKGU9aSl9aWYoIWUpe2Zvcig7dCYmIXRbeWxdJiZ0IT09bjspVXAodCkmJmZSKHRbRm5dLHQpLHQ9dFtqcl07bnVsbD09PXQmJih0PW4pLFVwKHQpJiZmUih0W0ZuXSx0KSxlPXQmJnRbeWxdfXQ9ZX19KHQpfX1mdW5jdGlvbiBmUihuLHQpe2lmKCEoMTI4JnRbZGldKSl7dFtkaV0mPS02NSx0W2RpXXw9MTI4LGZ1bmN0aW9uKG4sdCl7bGV0IGU7aWYobnVsbCE9biYmbnVsbCE9KGU9bi5kZXN0cm95SG9va3MpKWZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSs9Mil7bGV0IHI9dFtlW2ldXTtpZighKHIgaW5zdGFuY2VvZiBxcCkpe2xldCBvPWVbaSsxXTtpZihBcnJheS5pc0FycmF5KG8pKWZvcihsZXQgYT0wO2E8by5sZW5ndGg7YSs9Mil7bGV0IHM9cltvW2FdXSxsPW9bYSsxXTtrcyg0LHMsbCk7dHJ5e2wuY2FsbChzKX1maW5hbGx5e2tzKDUscyxsKX19ZWxzZXtrcyg0LHIsbyk7dHJ5e28uY2FsbChyKX1maW5hbGx5e2tzKDUscixvKX19fX19KG4sdCksZnVuY3Rpb24obix0KXtsZXQgZT1uLmNsZWFudXAsaT10W1lfXSxyPS0xO2lmKG51bGwhPT1lKWZvcihsZXQgbz0wO288ZS5sZW5ndGgtMTtvKz0yKWlmKCJzdHJpbmciPT10eXBlb2YgZVtvXSl7bGV0IGE9ZVtvKzNdO2E+PTA/aVtyPWFdKCk6aVtyPS1hXS51bnN1YnNjcmliZSgpLG8rPTJ9ZWxzZXtsZXQgYT1pW3I9ZVtvKzFdXTtlW29dLmNhbGwoYSl9aWYobnVsbCE9PWkpe2ZvcihsZXQgbz1yKzE7bzxpLmxlbmd0aDtvKyspKDAsaVtvXSkoKTt0W1lfXT1udWxsfX0obix0KSwxPT09dFtGbl0udHlwZSYmdFt1aV0uZGVzdHJveSgpO2xldCBlPXRbbGJdO2lmKG51bGwhPT1lJiYkYyh0W2pyXSkpe2UhPT10W2pyXSYmWjUoZSx0KTtsZXQgaT10W29jXTtudWxsIT09aSYmaS5kZXRhY2hWaWV3KG4pfSFmdW5jdGlvbihuKXtYNS5kZWxldGUobltUTV0pfSh0KX19ZnVuY3Rpb24gSjUobix0LGUpe3JldHVybiAkNShuLHQucGFyZW50LGUpfWZ1bmN0aW9uICQ1KG4sdCxlKXtsZXQgaT10O2Zvcig7bnVsbCE9PWkmJjQwJmkudHlwZTspaT0odD1pKS5wYXJlbnQ7aWYobnVsbD09PWkpcmV0dXJuIGVbb3VdO3tsZXR7Y29tcG9uZW50T2Zmc2V0OnJ9PWk7aWYocj4tMSl7bGV0e2VuY2Fwc3VsYXRpb246b309bi5kYXRhW2kuZGlyZWN0aXZlU3RhcnQrcl07aWYobz09PWFzLk5vbmV8fG89PT1hcy5FbXVsYXRlZClyZXR1cm4gbnVsbH1yZXR1cm4gc3MoaSxlKX19ZnVuY3Rpb24gWXAobix0LGUsaSxyKXtuLmluc2VydEJlZm9yZSh0LGUsaSxyKX1mdW5jdGlvbiBleihuLHQsZSl7bi5hcHBlbmRDaGlsZCh0LGUpfWZ1bmN0aW9uIHZIKG4sdCxlLGkscil7bnVsbCE9PWk/WXAobix0LGUsaSxyKTpleihuLHQsZSl9ZnVuY3Rpb24ga00obix0KXtyZXR1cm4gbi5wYXJlbnROb2RlKHQpfWZ1bmN0aW9uIHR6KG4sdCxlKXtyZXR1cm4gaXoobix0LGUpfWZ1bmN0aW9uIG56KG4sdCxlKXtyZXR1cm4gNDAmbi50eXBlP3NzKG4sZSk6bnVsbH12YXIgcVIsSEMsWVIsekMsaXo9bno7ZnVuY3Rpb24gcnoobix0KXtpej1uLHFSPXR9ZnVuY3Rpb24gT00obix0LGUsaSl7bGV0IHI9SjUobixpLHQpLG89dFt1aV0scz10eihpLnBhcmVudHx8dFtBYV0saSx0KTtpZihudWxsIT1yKWlmKEFycmF5LmlzQXJyYXkoZSkpZm9yKGxldCBsPTA7bDxlLmxlbmd0aDtsKyspdkgobyxyLGVbbF0scywhMSk7ZWxzZSB2SChvLHIsZSxzLCExKTt2b2lkIDAhPT1xUiYmcVIobyxpLHQsZSxyKX1mdW5jdGlvbiBYQyhuLHQpe2lmKG51bGwhPT10KXtsZXQgZT10LnR5cGU7aWYoMyZlKXJldHVybiBzcyh0LG4pO2lmKDQmZSlyZXR1cm4gWFIoLTEsblt0LmluZGV4XSk7aWYoOCZlKXtsZXQgaT10LmNoaWxkO2lmKG51bGwhPT1pKXJldHVybiBYQyhuLGkpO3tsZXQgcj1uW3QuaW5kZXhdO3JldHVybiAkYyhyKT9YUigtMSxyKTpMcyhyKX19aWYoMzImZSlyZXR1cm4gaWsodCxuKSgpfHxMcyhuW3QuaW5kZXhdKTt7bGV0IGk9b3oobix0KTtyZXR1cm4gbnVsbCE9PWk/QXJyYXkuaXNBcnJheShpKT9pWzBdOlhDKHJrKG5beGxdKSxpKTpYQyhuLHQubmV4dCl9fXJldHVybiBudWxsfWZ1bmN0aW9uIG96KG4sdCl7cmV0dXJuIG51bGwhPT10P25beGxdW0FhXS5wcm9qZWN0aW9uW3QucHJvamVjdGlvbl06bnVsbH1mdW5jdGlvbiBYUihuLHQpe2xldCBlPUlhK24rMTtpZihlPHQubGVuZ3RoKXtsZXQgaT10W2VdLHI9aVtGbl0uZmlyc3RDaGlsZDtpZihudWxsIT09cilyZXR1cm4gWEMoaSxyKX1yZXR1cm4gdFtHUF19ZnVuY3Rpb24gY2sobix0LGUpe2xldCBpPWtNKG4sdCk7aSYmZnVuY3Rpb24obix0LGUsaSl7bi5yZW1vdmVDaGlsZCh0LGUsaSl9KG4saSx0LGUpfWZ1bmN0aW9uIGRrKG4sdCxlLGkscixvLGEpe2Zvcig7bnVsbCE9ZTspe2xldCBzPWlbZS5pbmRleF0sbD1lLnR5cGU7aWYoYSYmMD09PXQmJihzJiZzYyhMcyhzKSxpKSxlLmZsYWdzfD0yKSwzMiE9KDMyJmUuZmxhZ3MpKWlmKDgmbClkayhuLHQsZS5jaGlsZCxpLHIsbywhMSksWG0odCxuLHIscyxvKTtlbHNlIGlmKDMyJmwpe2xldCBkLGM9aWsoZSxpKTtmb3IoO2Q9YygpOylYbSh0LG4scixkLG8pO1htKHQsbixyLHMsbyl9ZWxzZSAxNiZsP2F6KG4sdCxpLGUscixvKTpYbSh0LG4scixzLG8pO2U9YT9lLnByb2plY3Rpb25OZXh0OmUubmV4dH19ZnVuY3Rpb24gdWIobix0LGUsaSxyLG8pe2RrKGUsaSxuLmZpcnN0Q2hpbGQsdCxyLG8sITEpfWZ1bmN0aW9uIGF6KG4sdCxlLGkscixvKXtsZXQgYT1lW3hsXSxsPWFbQWFdLnByb2plY3Rpb25baS5wcm9qZWN0aW9uXTtpZihBcnJheS5pc0FycmF5KGwpKWZvcihsZXQgYz0wO2M8bC5sZW5ndGg7YysrKVhtKHQsbixyLGxbY10sbyk7ZWxzZSBkayhuLHQsbCxhW2pyXSxyLG8sITApfWZ1bmN0aW9uIHN6KG4sdCxlKXsiIj09PWU/bi5yZW1vdmVBdHRyaWJ1dGUodCwiY2xhc3MiKTpuLnNldEF0dHJpYnV0ZSh0LCJjbGFzcyIsZSl9ZnVuY3Rpb24gbHoobix0LGUpe2xldHttZXJnZWRBdHRyczppLGNsYXNzZXM6cixzdHlsZXM6b309ZTtudWxsIT09aSYmVlIobix0LGkpLG51bGwhPT1yJiZzeihuLHQsciksbnVsbCE9PW8mJmZ1bmN0aW9uKG4sdCxlKXtuLnNldEF0dHJpYnV0ZSh0LCJzdHlsZSIsZSl9KG4sdCxvKX1mdW5jdGlvbiBjeigpe2lmKHZvaWQgMD09PUhDJiYoSEM9bnVsbCx6ci50cnVzdGVkVHlwZXMpKXRyeXtIQz16ci50cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5KCJhbmd1bGFyIix7Y3JlYXRlSFRNTDpuPT5uLGNyZWF0ZVNjcmlwdDpuPT5uLGNyZWF0ZVNjcmlwdFVSTDpuPT5ufSl9Y2F0Y2h7fXJldHVybiBIQ31mdW5jdGlvbiBkZihuKXtyZXR1cm4gY3ooKT8uY3JlYXRlSFRNTChuKXx8bn1mdW5jdGlvbiB1eigpe3JldHVybiB2b2lkIDAhPT1ZUj9ZUjp0eXBlb2YgZG9jdW1lbnQ8InUiP2RvY3VtZW50OnZvaWQgMH1mdW5jdGlvbiB1aygpe2lmKHZvaWQgMD09PXpDJiYoekM9bnVsbCx6ci50cnVzdGVkVHlwZXMpKXRyeXt6Qz16ci50cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5KCJhbmd1bGFyI3Vuc2FmZS1ieXBhc3MiLHtjcmVhdGVIVE1MOm49Pm4sY3JlYXRlU2NyaXB0Om49Pm4sY3JlYXRlU2NyaXB0VVJMOm49Pm59KX1jYXRjaHt9cmV0dXJuIHpDfWZ1bmN0aW9uIHlIKG4pe3JldHVybiB1aygpPy5jcmVhdGVIVE1MKG4pfHxufWZ1bmN0aW9uIHhIKG4pe3JldHVybiB1aygpPy5jcmVhdGVTY3JpcHQobil8fG59ZnVuY3Rpb24gQ0gobil7cmV0dXJuIHVrKCk/LmNyZWF0ZVNjcmlwdFVSTChuKXx8bn12YXIgSmM9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5jaGFuZ2luZ1RoaXNCcmVha3NBcHBsaWNhdGlvblNlY3VyaXR5PXR9dG9TdHJpbmcoKXtyZXR1cm5gU2FmZVZhbHVlIG11c3QgdXNlIFtwcm9wZXJ0eV09YmluZGluZzogJHt0aGlzLmNoYW5naW5nVGhpc0JyZWFrc0FwcGxpY2F0aW9uU2VjdXJpdHl9IChzZWUgJHtvYn0pYH19LFFSPWNsYXNzIGV4dGVuZHMgSmN7Z2V0VHlwZU5hbWUoKXtyZXR1cm4iSFRNTCJ9fSxaUj1jbGFzcyBleHRlbmRzIEpje2dldFR5cGVOYW1lKCl7cmV0dXJuIlN0eWxlIn19LEtSPWNsYXNzIGV4dGVuZHMgSmN7Z2V0VHlwZU5hbWUoKXtyZXR1cm4iU2NyaXB0In19LEpSPWNsYXNzIGV4dGVuZHMgSmN7Z2V0VHlwZU5hbWUoKXtyZXR1cm4iVVJMIn19LCRSPWNsYXNzIGV4dGVuZHMgSmN7Z2V0VHlwZU5hbWUoKXtyZXR1cm4iUmVzb3VyY2VVUkwifX07ZnVuY3Rpb24gT2Eobil7cmV0dXJuIG4gaW5zdGFuY2VvZiBKYz9uLmNoYW5naW5nVGhpc0JyZWFrc0FwcGxpY2F0aW9uU2VjdXJpdHk6bn1mdW5jdGlvbiB3bChuLHQpe2xldCBlPWZ1bmN0aW9uKG4pe3JldHVybiBuIGluc3RhbmNlb2YgSmMmJm4uZ2V0VHlwZU5hbWUoKXx8bnVsbH0obik7aWYobnVsbCE9ZSYmZSE9PXQpe2lmKCJSZXNvdXJjZVVSTCI9PT1lJiYiVVJMIj09PXQpcmV0dXJuITA7dGhyb3cgbmV3IEVycm9yKGBSZXF1aXJlZCBhIHNhZmUgJHt0fSwgZ290IGEgJHtlfSAoc2VlICR7b2J9KWApfXJldHVybiBlPT09dH1mdW5jdGlvbiBfeihuKXtsZXQgdD1uZXcgdFAobik7cmV0dXJuIGZ1bmN0aW9uKCl7dHJ5e3JldHVybiEhKG5ldyB3aW5kb3cuRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoZGYoIiIpLCJ0ZXh0L2h0bWwiKX1jYXRjaHtyZXR1cm4hMX19KCk/bmV3IGVQKHQpOnR9dmFyIGVQPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuaW5lcnREb2N1bWVudEhlbHBlcj10fWdldEluZXJ0Qm9keUVsZW1lbnQodCl7dD0iPGJvZHk+PHJlbW92ZT48L3JlbW92ZT4iK3Q7dHJ5e2xldCBlPShuZXcgd2luZG93LkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKGRmKHQpLCJ0ZXh0L2h0bWwiKS5ib2R5O3JldHVybiBudWxsPT09ZT90aGlzLmluZXJ0RG9jdW1lbnRIZWxwZXIuZ2V0SW5lcnRCb2R5RWxlbWVudCh0KTooZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpLGUpfWNhdGNoe3JldHVybiBudWxsfX19LHRQPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuZGVmYXVsdERvYz10LHRoaXMuaW5lcnREb2N1bWVudD10aGlzLmRlZmF1bHREb2MuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCJzYW5pdGl6YXRpb24taW5lcnQiKX1nZXRJbmVydEJvZHlFbGVtZW50KHQpe2xldCBlPXRoaXMuaW5lcnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO3JldHVybiBlLmlubmVySFRNTD1kZih0KSxlfX0sU2FlPS9eKD8hamF2YXNjcmlwdDopKD86W2EtejAtOSsuLV0rOnxbXiY6XC8/I10qKD86W1wvPyNdfCQpKS9pO2Z1bmN0aW9uIHBiKG4pe3JldHVybihuPVN0cmluZyhuKSkubWF0Y2goU2FlKT9uOiJ1bnNhZmU6IitufWZ1bmN0aW9uIHJkKG4pe2xldCB0PXt9O2ZvcihsZXQgZSBvZiBuLnNwbGl0KCIsIikpdFtlXT0hMDtyZXR1cm4gdH1mdW5jdGlvbiBoYiguLi5uKXtsZXQgdD17fTtmb3IobGV0IGUgb2Ygbilmb3IobGV0IGkgaW4gZSllLmhhc093blByb3BlcnR5KGkpJiYodFtpXT0hMCk7cmV0dXJuIHR9dmFyIFVDLGJ6PXJkKCJhcmVhLGJyLGNvbCxocixpbWcsd2JyIiksdno9cmQoImNvbGdyb3VwLGRkLGR0LGxpLHAsdGJvZHksdGQsdGZvb3QsdGgsdGhlYWQsdHIiKSx5ej1yZCgicnAscnQiKSxFYWU9aGIoeXosdnopLFRhZT1oYih2eixyZCgiYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGJsb2NrcXVvdGUsY2FwdGlvbixjZW50ZXIsZGVsLGRldGFpbHMsZGlhbG9nLGRpcixkaXYsZGwsZmlndXJlLGZpZ2NhcHRpb24sZm9vdGVyLGgxLGgyLGgzLGg0LGg1LGg2LGhlYWRlcixoZ3JvdXAsaHIsaW5zLG1haW4sbWFwLG1lbnUsbmF2LG9sLHByZSxzZWN0aW9uLHN1bW1hcnksdGFibGUsdWwiKSksRGFlPWhiKHl6LHJkKCJhLGFiYnIsYWNyb255bSxhdWRpbyxiLGJkaSxiZG8sYmlnLGJyLGNpdGUsY29kZSxkZWwsZGZuLGVtLGZvbnQsaSxpbWcsaW5zLGtiZCxsYWJlbCxtYXAsbWFyayxwaWN0dXJlLHEscnVieSxycCxydCxzLHNhbXAsc21hbGwsc291cmNlLHNwYW4sc3RyaWtlLHN0cm9uZyxzdWIsc3VwLHRpbWUsdHJhY2ssdHQsdSx2YXIsdmlkZW8iKSksblA9aGIoYnosVGFlLERhZSxFYWUpLHBrPXJkKCJiYWNrZ3JvdW5kLGNpdGUsaHJlZixpdGVtdHlwZSxsb25nZGVzYyxwb3N0ZXIsc3JjLHhsaW5rOmhyZWYiKSxJYWU9cmQoImFiYnIsYWNjZXNza2V5LGFsaWduLGFsdCxhdXRvcGxheSxheGlzLGJnY29sb3IsYm9yZGVyLGNlbGxwYWRkaW5nLGNlbGxzcGFjaW5nLGNsYXNzLGNsZWFyLGNvbG9yLGNvbHMsY29sc3Bhbixjb21wYWN0LGNvbnRyb2xzLGNvb3JkcyxkYXRldGltZSxkZWZhdWx0LGRpcixkb3dubG9hZCxmYWNlLGhlYWRlcnMsaGVpZ2h0LGhpZGRlbixocmVmbGFuZyxoc3BhY2UsaXNtYXAsaXRlbXNjb3BlLGl0ZW1wcm9wLGtpbmQsbGFiZWwsbGFuZyxsYW5ndWFnZSxsb29wLG1lZGlhLG11dGVkLG5vaHJlZixub3dyYXAsb3BlbixwcmVsb2FkLHJlbCxyZXYscm9sZSxyb3dzLHJvd3NwYW4scnVsZXMsc2NvcGUsc2Nyb2xsaW5nLHNoYXBlLHNpemUsc2l6ZXMsc3BhbixzcmNsYW5nLHNyY3NldCxzdGFydCxzdW1tYXJ5LHRhYmluZGV4LHRhcmdldCx0aXRsZSx0cmFuc2xhdGUsdHlwZSx1c2VtYXAsdmFsaWduLHZhbHVlLHZzcGFjZSx3aWR0aCIpLEFhZT1yZCgiYXJpYS1hY3RpdmVkZXNjZW5kYW50LGFyaWEtYXRvbWljLGFyaWEtYXV0b2NvbXBsZXRlLGFyaWEtYnVzeSxhcmlhLWNoZWNrZWQsYXJpYS1jb2xjb3VudCxhcmlhLWNvbGluZGV4LGFyaWEtY29sc3BhbixhcmlhLWNvbnRyb2xzLGFyaWEtY3VycmVudCxhcmlhLWRlc2NyaWJlZGJ5LGFyaWEtZGV0YWlscyxhcmlhLWRpc2FibGVkLGFyaWEtZHJvcGVmZmVjdCxhcmlhLWVycm9ybWVzc2FnZSxhcmlhLWV4cGFuZGVkLGFyaWEtZmxvd3RvLGFyaWEtZ3JhYmJlZCxhcmlhLWhhc3BvcHVwLGFyaWEtaGlkZGVuLGFyaWEtaW52YWxpZCxhcmlhLWtleXNob3J0Y3V0cyxhcmlhLWxhYmVsLGFyaWEtbGFiZWxsZWRieSxhcmlhLWxldmVsLGFyaWEtbGl2ZSxhcmlhLW1vZGFsLGFyaWEtbXVsdGlsaW5lLGFyaWEtbXVsdGlzZWxlY3RhYmxlLGFyaWEtb3JpZW50YXRpb24sYXJpYS1vd25zLGFyaWEtcGxhY2Vob2xkZXIsYXJpYS1wb3NpbnNldCxhcmlhLXByZXNzZWQsYXJpYS1yZWFkb25seSxhcmlhLXJlbGV2YW50LGFyaWEtcmVxdWlyZWQsYXJpYS1yb2xlZGVzY3JpcHRpb24sYXJpYS1yb3djb3VudCxhcmlhLXJvd2luZGV4LGFyaWEtcm93c3BhbixhcmlhLXNlbGVjdGVkLGFyaWEtc2V0c2l6ZSxhcmlhLXNvcnQsYXJpYS12YWx1ZW1heCxhcmlhLXZhbHVlbWluLGFyaWEtdmFsdWVub3csYXJpYS12YWx1ZXRleHQiKSx4ej1oYihwayxJYWUsQWFlKSxSYWU9cmQoInNjcmlwdCxzdHlsZSx0ZW1wbGF0ZSIpLGlQPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zYW5pdGl6ZWRTb21ldGhpbmc9ITEsdGhpcy5idWY9W119c2FuaXRpemVDaGlsZHJlbih0KXtsZXQgZT10LmZpcnN0Q2hpbGQsaT0hMDtmb3IoO2U7KWlmKGUubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERT9pPXRoaXMuc3RhcnRFbGVtZW50KGUpOmUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT90aGlzLmNoYXJzKGUubm9kZVZhbHVlKTp0aGlzLnNhbml0aXplZFNvbWV0aGluZz0hMCxpJiZlLmZpcnN0Q2hpbGQpZT1lLmZpcnN0Q2hpbGQ7ZWxzZSBmb3IoO2U7KXtlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJnRoaXMuZW5kRWxlbWVudChlKTtsZXQgcj10aGlzLmNoZWNrQ2xvYmJlcmVkRWxlbWVudChlLGUubmV4dFNpYmxpbmcpO2lmKHIpe2U9cjticmVha31lPXRoaXMuY2hlY2tDbG9iYmVyZWRFbGVtZW50KGUsZS5wYXJlbnROb2RlKX1yZXR1cm4gdGhpcy5idWYuam9pbigiIil9c3RhcnRFbGVtZW50KHQpe2xldCBlPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZighblAuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIHRoaXMuc2FuaXRpemVkU29tZXRoaW5nPSEwLCFSYWUuaGFzT3duUHJvcGVydHkoZSk7dGhpcy5idWYucHVzaCgiPCIpLHRoaXMuYnVmLnB1c2goZSk7bGV0IGk9dC5hdHRyaWJ1dGVzO2ZvcihsZXQgcj0wO3I8aS5sZW5ndGg7cisrKXtsZXQgbz1pLml0ZW0ociksYT1vLm5hbWUscz1hLnRvTG93ZXJDYXNlKCk7aWYoIXh6Lmhhc093blByb3BlcnR5KHMpKXt0aGlzLnNhbml0aXplZFNvbWV0aGluZz0hMDtjb250aW51ZX1sZXQgbD1vLnZhbHVlO3BrW3NdJiYobD1wYihsKSksdGhpcy5idWYucHVzaCgiICIsYSwnPSInLE1IKGwpLCciJyl9cmV0dXJuIHRoaXMuYnVmLnB1c2goIj4iKSwhMH1lbmRFbGVtZW50KHQpe2xldCBlPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtuUC5oYXNPd25Qcm9wZXJ0eShlKSYmIWJ6Lmhhc093blByb3BlcnR5KGUpJiYodGhpcy5idWYucHVzaCgiPC8iKSx0aGlzLmJ1Zi5wdXNoKGUpLHRoaXMuYnVmLnB1c2goIj4iKSl9Y2hhcnModCl7dGhpcy5idWYucHVzaChNSCh0KSl9Y2hlY2tDbG9iYmVyZWRFbGVtZW50KHQsZSl7aWYoZSYmKHQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZSkmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpPT09Tm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gc2FuaXRpemUgaHRtbCBiZWNhdXNlIHRoZSBlbGVtZW50IGlzIGNsb2JiZXJlZDogJHt0Lm91dGVySFRNTH1gKTtyZXR1cm4gZX19LFBhZT0vW1x1RDgwMC1cdURCRkZdW1x1REMwMC1cdURGRkZdL2csa2FlPS8oW15cIy1+IHwhXSkvZztmdW5jdGlvbiBNSChuKXtyZXR1cm4gbi5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZShQYWUsZnVuY3Rpb24odCl7cmV0dXJuIiYjIisoMTAyNCoodC5jaGFyQ29kZUF0KDApLTU1Mjk2KSsodC5jaGFyQ29kZUF0KDEpLTU2MzIwKSs2NTUzNikrIjsifSkucmVwbGFjZShrYWUsZnVuY3Rpb24odCl7cmV0dXJuIiYjIit0LmNoYXJDb2RlQXQoMCkrIjsifSkucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7Iil9ZnVuY3Rpb24gaGsobix0KXtsZXQgZT1udWxsO3RyeXtVQz1VQ3x8X3oobik7bGV0IGk9dD9TdHJpbmcodCk6IiI7ZT1VQy5nZXRJbmVydEJvZHlFbGVtZW50KGkpO2xldCByPTUsbz1pO2Rve2lmKDA9PT1yKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIHNhbml0aXplIGh0bWwgYmVjYXVzZSB0aGUgaW5wdXQgaXMgdW5zdGFibGUiKTtyLS0saT1vLG89ZS5pbm5lckhUTUwsZT1VQy5nZXRJbmVydEJvZHlFbGVtZW50KGkpfXdoaWxlKGkhPT1vKTtyZXR1cm4gZGYoKG5ldyBpUCkuc2FuaXRpemVDaGlsZHJlbihyUChlKXx8ZSkpfWZpbmFsbHl7aWYoZSl7bGV0IGk9clAoZSl8fGU7Zm9yKDtpLmZpcnN0Q2hpbGQ7KWkucmVtb3ZlQ2hpbGQoaS5maXJzdENoaWxkKX19fWZ1bmN0aW9uIHJQKG4pe3JldHVybiJjb250ZW50ImluIG4mJmZ1bmN0aW9uKG4pe3JldHVybiBuLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJiJURU1QTEFURSI9PT1uLm5vZGVOYW1lfShuKT9uLmNvbnRlbnQ6bnVsbH12YXIgVXI9KCgpPT57cmV0dXJuKG49VXJ8fChVcj17fSkpW24uTk9ORT0wXT0iTk9ORSIsbltuLkhUTUw9MV09IkhUTUwiLG5bbi5TVFlMRT0yXT0iU1RZTEUiLG5bbi5TQ1JJUFQ9M109IlNDUklQVCIsbltuLlVSTD00XT0iVVJMIixuW24uUkVTT1VSQ0VfVVJMPTVdPSJSRVNPVVJDRV9VUkwiLFVyO3ZhciBufSkoKTtmdW5jdGlvbiBtayhuKXtsZXQgdD1tYigpO3JldHVybiB0P3lIKHQuc2FuaXRpemUoVXIuSFRNTCxuKXx8IiIpOndsKG4sIkhUTUwiKT95SChPYShuKSk6aGsodXooKSxqbihuKSl9ZnVuY3Rpb24gVnMobil7bGV0IHQ9bWIoKTtyZXR1cm4gdD90LnNhbml0aXplKFVyLlVSTCxuKXx8IiI6d2wobiwiVVJMIik/T2Eobik6cGIoam4obikpfWZ1bmN0aW9uIEN6KG4pe2xldCB0PW1iKCk7aWYodClyZXR1cm4gQ0godC5zYW5pdGl6ZShVci5SRVNPVVJDRV9VUkwsbil8fCIiKTtpZih3bChuLCJSZXNvdXJjZVVSTCIpKXJldHVybiBDSChPYShuKSk7dGhyb3cgbmV3IHh0KDkwNCwhMSl9ZnVuY3Rpb24gbWIoKXtsZXQgbj1aZSgpO3JldHVybiBuJiZuW05SXX12YXIgRk09bmV3IHRlKCJFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiIpLE16PW5ldyB0ZSgiSU5KRUNUT1IiLC0xKSx3ej1uZXcgdGUoIklOSkVDVE9SX0RFRl9UWVBFUyIpLHVNPWNsYXNze2dldCh0LGU9WF8pe2lmKGU9PT1YXyl7bGV0IGk9bmV3IEVycm9yKGBOdWxsSW5qZWN0b3JFcnJvcjogTm8gcHJvdmlkZXIgZm9yICR7cG8odCl9IWApO3Rocm93IGkubmFtZT0iTnVsbEluamVjdG9yRXJyb3IiLGl9cmV0dXJuIGV9fTtmdW5jdGlvbiB6YWUoLi4ubil7cmV0dXJueyJcdTAyNzVwcm92aWRlcnMiOlN6KDAsbiksIlx1MDI3NWZyb21OZ01vZHVsZSI6ITB9fWZ1bmN0aW9uIFN6KG4sLi4udCl7bGV0IHIsZT1bXSxpPW5ldyBTZXQ7cmV0dXJuIHRrKHQsbz0+e2xldCBhPW87b1AoYSxlLFtdLGkpJiYocnx8KHI9W10pLHIucHVzaChhKSl9KSx2b2lkIDAhPT1yJiZFeihyLGUpLGV9ZnVuY3Rpb24gRXoobix0KXtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrKyl7bGV0e3Byb3ZpZGVyczpyfT1uW2VdO2ZrKHIsbz0+e3QucHVzaChvKX0pfX1mdW5jdGlvbiBvUChuLHQsZSxpKXtpZighKG49QWkobikpKXJldHVybiExO2xldCByPW51bGwsbz1sSChuKSxhPSFvJiZPcyhuKTtpZihvfHxhKXtpZihhJiYhYS5zdGFuZGFsb25lKXJldHVybiExO3I9bn1lbHNle2xldCBsPW4ubmdNb2R1bGU7aWYobz1sSChsKSwhbylyZXR1cm4hMTtyPWx9bGV0IHM9aS5oYXMocik7aWYoYSl7aWYocylyZXR1cm4hMTtpZihpLmFkZChyKSxhLmRlcGVuZGVuY2llcyl7bGV0IGw9ImZ1bmN0aW9uIj09dHlwZW9mIGEuZGVwZW5kZW5jaWVzP2EuZGVwZW5kZW5jaWVzKCk6YS5kZXBlbmRlbmNpZXM7Zm9yKGxldCBjIG9mIGwpb1AoYyx0LGUsaSl9fWVsc2V7aWYoIW8pcmV0dXJuITE7e2lmKG51bGwhPW8uaW1wb3J0cyYmIXMpe2xldCBjO2kuYWRkKHIpO3RyeXt0ayhvLmltcG9ydHMsZD0+e29QKGQsdCxlLGkpJiYoY3x8KGM9W10pLGMucHVzaChkKSl9KX1maW5hbGx5e312b2lkIDAhPT1jJiZFeihjLHQpfWlmKCFzKXtsZXQgYz1HcChyKXx8KCgpPT5uZXcgcik7dC5wdXNoKHtwcm92aWRlOnIsdXNlRmFjdG9yeTpjLGRlcHM6aml9LHtwcm92aWRlOnd6LHVzZVZhbHVlOnIsbXVsdGk6ITB9LHtwcm92aWRlOkZNLHVzZVZhbHVlOigpPT5PKHIpLG11bHRpOiEwfSl9bGV0IGw9by5wcm92aWRlcnM7bnVsbD09bHx8c3x8ZmsobCxkPT57dC5wdXNoKGQpfSl9fXJldHVybiByIT09biYmdm9pZCAwIT09bi5wcm92aWRlcnN9ZnVuY3Rpb24gZmsobix0KXtmb3IobGV0IGUgb2YgbiluNShlKSYmKGU9ZS5cdTAyNzVwcm92aWRlcnMpLEFycmF5LmlzQXJyYXkoZSk/ZmsoZSx0KTp0KGUpfXZhciBVYWU9JGkoe3Byb3ZpZGU6U3RyaW5nLHVzZVZhbHVlOiRpfSk7ZnVuY3Rpb24gVHoobil7cmV0dXJuIG51bGwhPT1uJiYib2JqZWN0Ij09dHlwZW9mIG4mJlVhZSBpbiBufWZ1bmN0aW9uICRtKG4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBufXZhciBnUixMTT1uZXcgdGUoIlNldCBJbmplY3RvciBzY29wZS4iKSxZQz17fSxxYWU9e307ZnVuY3Rpb24gZ2soKXtyZXR1cm4gdm9pZCAwPT09Z1ImJihnUj1uZXcgdU0pLGdSfXZhciBsYz1jbGFzc3t9LHBNPWNsYXNzIGV4dGVuZHMgbGN7Z2V0IGRlc3Ryb3llZCgpe3JldHVybiB0aGlzLl9kZXN0cm95ZWR9Y29uc3RydWN0b3IodCxlLGkscil7c3VwZXIoKSx0aGlzLnBhcmVudD1lLHRoaXMuc291cmNlPWksdGhpcy5zY29wZXM9cix0aGlzLnJlY29yZHM9bmV3IE1hcCx0aGlzLl9uZ09uRGVzdHJveUhvb2tzPW5ldyBTZXQsdGhpcy5fb25EZXN0cm95SG9va3M9W10sdGhpcy5fZGVzdHJveWVkPSExLHNQKHQsYT0+dGhpcy5wcm9jZXNzUHJvdmlkZXIoYSkpLHRoaXMucmVjb3Jkcy5zZXQoTXosWW0odm9pZCAwLHRoaXMpKSxyLmhhcygiZW52aXJvbm1lbnQiKSYmdGhpcy5yZWNvcmRzLnNldChsYyxZbSh2b2lkIDAsdGhpcykpO2xldCBvPXRoaXMucmVjb3Jkcy5nZXQoTE0pO251bGwhPW8mJiJzdHJpbmciPT10eXBlb2Ygby52YWx1ZSYmdGhpcy5zY29wZXMuYWRkKG8udmFsdWUpLHRoaXMuaW5qZWN0b3JEZWZUeXBlcz1uZXcgU2V0KHRoaXMuZ2V0KHd6Lm11bHRpLGppLENpLlNlbGYpKX1kZXN0cm95KCl7dGhpcy5hc3NlcnROb3REZXN0cm95ZWQoKSx0aGlzLl9kZXN0cm95ZWQ9ITA7dHJ5e2ZvcihsZXQgdCBvZiB0aGlzLl9uZ09uRGVzdHJveUhvb2tzKXQubmdPbkRlc3Ryb3koKTtmb3IobGV0IHQgb2YgdGhpcy5fb25EZXN0cm95SG9va3MpdCgpfWZpbmFsbHl7dGhpcy5yZWNvcmRzLmNsZWFyKCksdGhpcy5fbmdPbkRlc3Ryb3lIb29rcy5jbGVhcigpLHRoaXMuaW5qZWN0b3JEZWZUeXBlcy5jbGVhcigpLHRoaXMuX29uRGVzdHJveUhvb2tzLmxlbmd0aD0wfX1vbkRlc3Ryb3kodCl7dGhpcy5fb25EZXN0cm95SG9va3MucHVzaCh0KX1ydW5JbkNvbnRleHQodCl7dGhpcy5hc3NlcnROb3REZXN0cm95ZWQoKTtsZXQgZT1VbSh0aGlzKSxpPVBzKHZvaWQgMCk7dHJ5e3JldHVybiB0KCl9ZmluYWxseXtVbShlKSxQcyhpKX19Z2V0KHQsZT1YXyxpPUNpLkRlZmF1bHQpe3RoaXMuYXNzZXJ0Tm90RGVzdHJveWVkKCksaT1TTShpKTtsZXQgcj1VbSh0aGlzKSxvPVBzKHZvaWQgMCk7dHJ5e2lmKCEoaSZDaS5Ta2lwU2VsZikpe2xldCBzPXRoaXMucmVjb3Jkcy5nZXQodCk7aWYodm9pZCAwPT09cyl7bGV0IGw9KCJmdW5jdGlvbiI9PXR5cGVvZihuPXQpfHwib2JqZWN0Ij09dHlwZW9mIG4mJm4gaW5zdGFuY2VvZiB0ZSkmJkhQKHQpO3M9bCYmdGhpcy5pbmplY3RhYmxlRGVmSW5TY29wZShsKT9ZbShhUCh0KSxZQyk6bnVsbCx0aGlzLnJlY29yZHMuc2V0KHQscyl9aWYobnVsbCE9cylyZXR1cm4gdGhpcy5oeWRyYXRlKHQscyl9cmV0dXJuKGkmQ2kuU2VsZj9naygpOnRoaXMucGFyZW50KS5nZXQodCxlPWkmQ2kuT3B0aW9uYWwmJmU9PT1YXz9udWxsOmUpfWNhdGNoKGEpe2lmKCJOdWxsSW5qZWN0b3JFcnJvciI9PT1hLm5hbWUpe2lmKChhW2VNXT1hW2VNXXx8W10pLnVuc2hpZnQocG8odCkpLHIpdGhyb3cgYTtyZXR1cm4gZnVuY3Rpb24obix0LGUsaSl7bGV0IHI9bltlTV07dGhyb3cgdFtjSF0mJnIudW5zaGlmdCh0W2NIXSksbi5tZXNzYWdlPWZ1bmN0aW9uKG4sdCxlLGk9bnVsbCl7bj1uJiYiXG4iPT09bi5jaGFyQXQoMCkmJm4uY2hhckF0KDEpPT1WcmU/bi5zbGljZSgyKTpuO2xldCByPXBvKHQpO2lmKEFycmF5LmlzQXJyYXkodCkpcj10Lm1hcChwbykuam9pbigiIC0+ICIpO2Vsc2UgaWYoIm9iamVjdCI9PXR5cGVvZiB0KXtsZXQgbz1bXTtmb3IobGV0IGEgaW4gdClpZih0Lmhhc093blByb3BlcnR5KGEpKXtsZXQgcz10W2FdO28ucHVzaChhKyI6IisoInN0cmluZyI9PXR5cGVvZiBzP0pTT04uc3RyaW5naWZ5KHMpOnBvKHMpKSl9cj1geyR7by5qb2luKCIsICIpfX1gfXJldHVybmAke2V9JHtpPyIoIitpKyIpIjoiIn1bJHtyfV06ICR7bi5yZXBsYWNlKEJyZSwiXG4gICIpfWB9KCJcbiIrbi5tZXNzYWdlLHIsZSxpKSxuW0xyZV09cixuW2VNXT1udWxsLG59KGEsdCwiUjNJbmplY3RvckVycm9yIix0aGlzLnNvdXJjZSl9dGhyb3cgYX1maW5hbGx5e1BzKG8pLFVtKHIpfXZhciBufXJlc29sdmVJbmplY3RvckluaXRpYWxpemVycygpe2xldCB0PVVtKHRoaXMpLGU9UHModm9pZCAwKTt0cnl7bGV0IGk9dGhpcy5nZXQoRk0ubXVsdGksamksQ2kuU2VsZik7Zm9yKGxldCByIG9mIGkpcigpfWZpbmFsbHl7VW0odCksUHMoZSl9fXRvU3RyaW5nKCl7bGV0IHQ9W10sZT10aGlzLnJlY29yZHM7Zm9yKGxldCBpIG9mIGUua2V5cygpKXQucHVzaChwbyhpKSk7cmV0dXJuYFIzSW5qZWN0b3JbJHt0LmpvaW4oIiwgIil9XWB9YXNzZXJ0Tm90RGVzdHJveWVkKCl7aWYodGhpcy5fZGVzdHJveWVkKXRocm93IG5ldyB4dCgyMDUsITEpfXByb2Nlc3NQcm92aWRlcih0KXtsZXQgZT0kbSh0PUFpKHQpKT90OkFpKHQmJnQucHJvdmlkZSksaT1mdW5jdGlvbihuKXtyZXR1cm4gVHoobik/WW0odm9pZCAwLG4udXNlVmFsdWUpOlltKER6KG4pLFlDKX0odCk7aWYoJG0odCl8fCEwIT09dC5tdWx0aSl0aGlzLnJlY29yZHMuZ2V0KGUpO2Vsc2V7bGV0IHI9dGhpcy5yZWNvcmRzLmdldChlKTtyfHwocj1ZbSh2b2lkIDAsWUMsITApLHIuZmFjdG9yeT0oKT0+RlIoci5tdWx0aSksdGhpcy5yZWNvcmRzLnNldChlLHIpKSxlPXQsci5tdWx0aS5wdXNoKHQpfXRoaXMucmVjb3Jkcy5zZXQoZSxpKX1oeWRyYXRlKHQsZSl7cmV0dXJuIGUudmFsdWU9PT1ZQyYmKGUudmFsdWU9cWFlLGUudmFsdWU9ZS5mYWN0b3J5KCkpLCJvYmplY3QiPT10eXBlb2YgZS52YWx1ZSYmZS52YWx1ZSYmbnVsbCE9PShuPWUudmFsdWUpJiYib2JqZWN0Ij09dHlwZW9mIG4mJiJmdW5jdGlvbiI9PXR5cGVvZiBuLm5nT25EZXN0cm95JiZ0aGlzLl9uZ09uRGVzdHJveUhvb2tzLmFkZChlLnZhbHVlKSxlLnZhbHVlO3ZhciBufWluamVjdGFibGVEZWZJblNjb3BlKHQpe2lmKCF0LnByb3ZpZGVkSW4pcmV0dXJuITE7bGV0IGU9QWkodC5wcm92aWRlZEluKTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/ImFueSI9PT1lfHx0aGlzLnNjb3Blcy5oYXMoZSk6dGhpcy5pbmplY3RvckRlZlR5cGVzLmhhcyhlKX19O2Z1bmN0aW9uIGFQKG4pe2xldCB0PUhQKG4pLGU9bnVsbCE9PXQ/dC5mYWN0b3J5OkdwKG4pO2lmKG51bGwhPT1lKXJldHVybiBlO2lmKG4gaW5zdGFuY2VvZiB0ZSl0aHJvdyBuZXcgeHQoMjA0LCExKTtpZihuIGluc3RhbmNlb2YgRnVuY3Rpb24pcmV0dXJuIGZ1bmN0aW9uKG4pe2xldCB0PW4ubGVuZ3RoO2lmKHQ+MCl0aHJvdyBIXyh0LCI/IiksbmV3IHh0KDIwNCwhMSk7bGV0IGU9ZnVuY3Rpb24obil7cmV0dXJuIG4mJihuWyRDXXx8bltyNV0pfHxudWxsfShuKTtyZXR1cm4gbnVsbCE9PWU/KCk9PmUuZmFjdG9yeShuKTooKT0+bmV3IG59KG4pO3Rocm93IG5ldyB4dCgyMDQsITEpfWZ1bmN0aW9uIER6KG4sdCxlKXtsZXQgaTtpZigkbShuKSl7bGV0IHI9QWkobik7cmV0dXJuIEdwKHIpfHxhUChyKX1pZihUeihuKSlpPSgpPT5BaShuLnVzZVZhbHVlKTtlbHNlIGlmKGZ1bmN0aW9uKG4pe3JldHVybiEoIW58fCFuLnVzZUZhY3RvcnkpfShuKSlpPSgpPT5uLnVzZUZhY3RvcnkoLi4uRlIobi5kZXBzfHxbXSkpO2Vsc2UgaWYoZnVuY3Rpb24obil7cmV0dXJuISghbnx8IW4udXNlRXhpc3RpbmcpfShuKSlpPSgpPT5PKEFpKG4udXNlRXhpc3RpbmcpKTtlbHNle2xldCByPUFpKG4mJihuLnVzZUNsYXNzfHxuLnByb3ZpZGUpKTtpZighZnVuY3Rpb24obil7cmV0dXJuISFuLmRlcHN9KG4pKXJldHVybiBHcChyKXx8YVAocik7aT0oKT0+bmV3IHIoLi4uRlIobi5kZXBzKSl9cmV0dXJuIGl9ZnVuY3Rpb24gWW0obix0LGU9ITEpe3JldHVybntmYWN0b3J5Om4sdmFsdWU6dCxtdWx0aTplP1tdOnZvaWQgMH19ZnVuY3Rpb24gc1Aobix0KXtmb3IobGV0IGUgb2YgbilBcnJheS5pc0FycmF5KGUpP3NQKGUsdCk6ZSYmbjUoZSk/c1AoZS5cdTAyNzVwcm92aWRlcnMsdCk6dChlKX12YXIgbFA9Y2xhc3N7fSxoTT1jbGFzc3t9LGNQPWNsYXNze3Jlc29sdmVDb21wb25lbnRGYWN0b3J5KHQpe3Rocm93IGZ1bmN0aW9uKG4pe2xldCB0PUVycm9yKGBObyBjb21wb25lbnQgZmFjdG9yeSBmb3VuZCBmb3IgJHtwbyhuKX0uIERpZCB5b3UgYWRkIGl0IHRvIEBOZ01vZHVsZS5lbnRyeUNvbXBvbmVudHM/YCk7cmV0dXJuIHQubmdDb21wb25lbnQ9bix0fSh0KX19LGhvPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLk5VTEw9bmV3IGNQLG59KSgpO2Z1bmN0aW9uIGVzZSgpe3JldHVybiB1ZihMbygpLFplKCkpfWZ1bmN0aW9uIHVmKG4sdCl7cmV0dXJuIG5ldyB4ZShzcyhuLHQpKX12YXIgeGU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLm5hdGl2ZUVsZW1lbnQ9ZX19cmV0dXJuIG4uX19OR19FTEVNRU5UX0lEX189ZXNlLG59KSgpO2Z1bmN0aW9uIHRzZShuKXtyZXR1cm4gbiBpbnN0YW5jZW9mIHhlP24ubmF0aXZlRWxlbWVudDpufXZhciBjYz1jbGFzc3t9LGRjPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLl9fTkdfRUxFTUVOVF9JRF9fPSgpPT5mdW5jdGlvbigpe2xldCBuPVplKCksZT1lZChMbygpLmluZGV4LG4pO3JldHVybihVcChlKT9lOm4pW3VpXX0oKSxufSkoKSxpc2U9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5udWxsfSksbn0pKCksTWw9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5mdWxsPXQsdGhpcy5tYWpvcj10LnNwbGl0KCIuIilbMF0sdGhpcy5taW5vcj10LnNwbGl0KCIuIilbMV0sdGhpcy5wYXRjaD10LnNwbGl0KCIuIikuc2xpY2UoMikuam9pbigiLiIpfX0scnNlPW5ldyBNbCgiMTUuMi45IiksX1I9e30sb3NlPSJuZ09yaWdpbmFsRXJyb3IiO2Z1bmN0aW9uIGJSKG4pe3JldHVybiBuW29zZV19dmFyIGxhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fY29uc29sZT1jb25zb2xlfWhhbmRsZUVycm9yKHQpe2xldCBlPXRoaXMuX2ZpbmRPcmlnaW5hbEVycm9yKHQpO3RoaXMuX2NvbnNvbGUuZXJyb3IoIkVSUk9SIix0KSxlJiZ0aGlzLl9jb25zb2xlLmVycm9yKCJPUklHSU5BTCBFUlJPUiIsZSl9X2ZpbmRPcmlnaW5hbEVycm9yKHQpe2xldCBlPXQmJmJSKHQpO2Zvcig7ZSYmYlIoZSk7KWU9YlIoZSk7cmV0dXJuIGV8fG51bGx9fTtmdW5jdGlvbiBzdShuKXtyZXR1cm4gbi5vd25lckRvY3VtZW50fWZ1bmN0aW9uIFFDKG4pe3JldHVybiBuIGluc3RhbmNlb2YgRnVuY3Rpb24/bigpOm59ZnVuY3Rpb24gSXoobix0LGUpe2xldCBpPW4ubGVuZ3RoO2Zvcig7Oyl7bGV0IHI9bi5pbmRleE9mKHQsZSk7aWYoLTE9PT1yKXJldHVybiByO2lmKDA9PT1yfHxuLmNoYXJDb2RlQXQoci0xKTw9MzIpe2xldCBvPXQubGVuZ3RoO2lmKHIrbz09PWl8fG4uY2hhckNvZGVBdChyK28pPD0zMilyZXR1cm4gcn1lPXIrMX19dmFyIEF6PSJuZy10ZW1wbGF0ZSI7ZnVuY3Rpb24gbHNlKG4sdCxlKXtsZXQgaT0wLHI9ITA7Zm9yKDtpPG4ubGVuZ3RoOyl7bGV0IG89bltpKytdO2lmKCJzdHJpbmciPT10eXBlb2YgbyYmcil7bGV0IGE9bltpKytdO2lmKGUmJiJjbGFzcyI9PT1vJiYtMSE9PUl6KGEudG9Mb3dlckNhc2UoKSx0LDApKXJldHVybiEwfWVsc2V7aWYoMT09PW8pe2Zvcig7aTxuLmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZihvPW5baSsrXSk7KWlmKG8udG9Mb3dlckNhc2UoKT09PXQpcmV0dXJuITA7cmV0dXJuITF9Im51bWJlciI9PXR5cGVvZiBvJiYocj0hMSl9fXJldHVybiExfWZ1bmN0aW9uIFJ6KG4pe3JldHVybiA0PT09bi50eXBlJiZuLnZhbHVlIT09QXp9ZnVuY3Rpb24gY3NlKG4sdCxlKXtyZXR1cm4gdD09PSg0IT09bi50eXBlfHxlP24udmFsdWU6QXopfWZ1bmN0aW9uIGRzZShuLHQsZSl7bGV0IGk9NCxyPW4uYXR0cnN8fFtdLG89ZnVuY3Rpb24obil7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0KyspaWYoUjUoblt0XSkpcmV0dXJuIHQ7cmV0dXJuIG4ubGVuZ3RofShyKSxhPSExO2ZvcihsZXQgcz0wO3M8dC5sZW5ndGg7cysrKXtsZXQgbD10W3NdO2lmKCJudW1iZXIiIT10eXBlb2YgbCl7aWYoIWEpaWYoNCZpKXtpZihpPTJ8MSZpLCIiIT09bCYmIWNzZShuLGwsZSl8fCIiPT09bCYmMT09PXQubGVuZ3RoKXtpZihibChpKSlyZXR1cm4hMTthPSEwfX1lbHNle2xldCBjPTgmaT9sOnRbKytzXTtpZig4JmkmJm51bGwhPT1uLmF0dHJzKXtpZighbHNlKG4uYXR0cnMsYyxlKSl7aWYoYmwoaSkpcmV0dXJuITE7YT0hMH1jb250aW51ZX1sZXQgdT11c2UoOCZpPyJjbGFzcyI6bCxyLFJ6KG4pLGUpO2lmKC0xPT09dSl7aWYoYmwoaSkpcmV0dXJuITE7YT0hMDtjb250aW51ZX1pZigiIiE9PWMpe2xldCBwO3A9dT5vPyIiOnJbdSsxXS50b0xvd2VyQ2FzZSgpO2xldCBoPTgmaT9wOm51bGw7aWYoaCYmLTEhPT1JeihoLGMsMCl8fDImaSYmYyE9PXApe2lmKGJsKGkpKXJldHVybiExO2E9ITB9fX19ZWxzZXtpZighYSYmIWJsKGkpJiYhYmwobCkpcmV0dXJuITE7aWYoYSYmYmwobCkpY29udGludWU7YT0hMSxpPWx8MSZpfX1yZXR1cm4gYmwoaSl8fGF9ZnVuY3Rpb24gYmwobil7cmV0dXJuIDA9PSgxJm4pfWZ1bmN0aW9uIHVzZShuLHQsZSxpKXtpZihudWxsPT09dClyZXR1cm4tMTtsZXQgcj0wO2lmKGl8fCFlKXtsZXQgbz0hMTtmb3IoO3I8dC5sZW5ndGg7KXtsZXQgYT10W3JdO2lmKGE9PT1uKXJldHVybiByO2lmKDM9PT1hfHw2PT09YSlvPSEwO2Vsc2V7aWYoMT09PWF8fDI9PT1hKXtsZXQgcz10Wysrcl07Zm9yKDsic3RyaW5nIj09dHlwZW9mIHM7KXM9dFsrK3JdO2NvbnRpbnVlfWlmKDQ9PT1hKWJyZWFrO2lmKDA9PT1hKXtyKz00O2NvbnRpbnVlfX1yKz1vPzE6Mn1yZXR1cm4tMX1yZXR1cm4gZnVuY3Rpb24obix0KXtsZXQgZT1uLmluZGV4T2YoNCk7aWYoZT4tMSlmb3IoZSsrO2U8bi5sZW5ndGg7KXtsZXQgaT1uW2VdO2lmKCJudW1iZXIiPT10eXBlb2YgaSlyZXR1cm4tMTtpZihpPT09dClyZXR1cm4gZTtlKyt9cmV0dXJuLTF9KHQsbil9ZnVuY3Rpb24gUHoobix0LGU9ITEpe2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKWlmKGRzZShuLHRbaV0sZSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gZnNlKG4sdCl7ZTpmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7bGV0IGk9dFtlXTtpZihuLmxlbmd0aD09PWkubGVuZ3RoKXtmb3IobGV0IHI9MDtyPG4ubGVuZ3RoO3IrKylpZihuW3JdIT09aVtyXSljb250aW51ZSBlO3JldHVybiEwfX1yZXR1cm4hMX1mdW5jdGlvbiB3SChuLHQpe3JldHVybiBuPyI6bm90KCIrdC50cmltKCkrIikiOnR9ZnVuY3Rpb24gZ3NlKG4pe2xldCB0PW5bMF0sZT0xLGk9MixyPSIiLG89ITE7Zm9yKDtlPG4ubGVuZ3RoOyl7bGV0IGE9bltlXTtpZigic3RyaW5nIj09dHlwZW9mIGEpaWYoMiZpKXtsZXQgcz1uWysrZV07cis9IlsiK2ErKHMubGVuZ3RoPjA/Jz0iJytzKyciJzoiIikrIl0ifWVsc2UgOCZpP3IrPSIuIithOjQmaSYmKHIrPSIgIithKTtlbHNlIiIhPT1yJiYhYmwoYSkmJih0Kz13SChvLHIpLHI9IiIpLGk9YSxvPW98fCFibChpKTtlKyt9cmV0dXJuIiIhPT1yJiYodCs9d0gobyxyKSksdH12YXIgem49e307ZnVuY3Rpb24gdihuKXtreihUaSgpLFplKCksZGEoKStuLCExKX1mdW5jdGlvbiBreihuLHQsZSxpKXtpZighaSlpZigzPT0oMyZ0W2RpXSkpe2xldCBvPW4ucHJlT3JkZXJDaGVja0hvb2tzO251bGwhPT1vJiZHQyh0LG8sZSl9ZWxzZXtsZXQgbz1uLnByZU9yZGVySG9va3M7bnVsbCE9PW8mJldDKHQsbywwLGUpfVdwKGUpfXZhciBTSD17Ilx1MDI3NVx1MDI3NWRlZmluZUluamVjdGFibGUiOnVlLCJcdTAyNzVcdTAyNzVkZWZpbmVJbmplY3RvciI6SCwiXHUwMjc1XHUwMjc1aW5qZWN0IjpPLCJcdTAyNzVcdTAyNzVpbnZhbGlkRmFjdG9yeURlcCI6YTUscmVzb2x2ZUZvcndhcmRSZWY6QWl9O3ZhciB5c2U9JGkoe3Byb3ZpZGU6U3RyaW5nLHVzZVZhbHVlOiRpfSk7ZnVuY3Rpb24gRUgobil7cmV0dXJuIHZvaWQgMCE9PW4udXNlQ2xhc3N9ZnVuY3Rpb24gVEgobil7cmV0dXJuIHZvaWQgMCE9PW4udXNlRmFjdG9yeX12YXIgT3o9Y2IoIkluamVjdGFibGUiLHZvaWQgMCx2b2lkIDAsdm9pZCAwLChuLHQpPT5mdW5jdGlvbihuLHQpe2xldCBlPW51bGwsaT1udWxsO24uaGFzT3duUHJvcGVydHkoJEMpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwkQyx7Z2V0OigpPT4obnVsbD09PWUmJihlPUZzKCkuY29tcGlsZUluamVjdGFibGUoU0gsYG5nOi8vLyR7bi5uYW1lfS9cdTAyNzVwcm92LmpzYCxmdW5jdGlvbihuLHQpe2xldCBlPXR8fHtwcm92aWRlZEluOm51bGx9LGk9e25hbWU6bi5uYW1lLHR5cGU6bix0eXBlQXJndW1lbnRDb3VudDowLHByb3ZpZGVkSW46ZS5wcm92aWRlZElufTtyZXR1cm4oRUgoZSl8fFRIKGUpKSYmdm9pZCAwIT09ZS5kZXBzJiYoaS5kZXBzPWo1KGUuZGVwcykpLEVIKGUpP2kudXNlQ2xhc3M9ZS51c2VDbGFzczpmdW5jdGlvbihuKXtyZXR1cm4geXNlIGluIG59KGUpP2kudXNlVmFsdWU9ZS51c2VWYWx1ZTpUSChlKT9pLnVzZUZhY3Rvcnk9ZS51c2VGYWN0b3J5OmZ1bmN0aW9uKG4pe3JldHVybiB2b2lkIDAhPT1uLnVzZUV4aXN0aW5nfShlKSYmKGkudXNlRXhpc3Rpbmc9ZS51c2VFeGlzdGluZyksaX0obix0KSkpLGUpfSksbi5oYXNPd25Qcm9wZXJ0eShLYyl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLEtjLHtnZXQ6KCk9PntpZihudWxsPT09aSl7bGV0IHI9RnMoKTtpPXIuY29tcGlsZUZhY3RvcnkoU0gsYG5nOi8vLyR7bi5uYW1lfS9cdTAyNzVmYWMuanNgLHtuYW1lOm4ubmFtZSx0eXBlOm4sdHlwZUFyZ3VtZW50Q291bnQ6MCxkZXBzOlBNKG4pLHRhcmdldDpyLkZhY3RvcnlUYXJnZXQuSW5qZWN0YWJsZX0pfXJldHVybiBpfSxjb25maWd1cmFibGU6ITB9KX0obix0KSk7ZnVuY3Rpb24gREgobix0PW51bGwsZT1udWxsLGkpe2xldCByPUZ6KG4sdCxlLGkpO3JldHVybiByLnJlc29sdmVJbmplY3RvckluaXRpYWxpemVycygpLHJ9ZnVuY3Rpb24gRnoobix0PW51bGwsZT1udWxsLGkscj1uZXcgU2V0KXtsZXQgbz1bZXx8amksemFlKG4pXTtyZXR1cm4gaT1pfHwoIm9iamVjdCI9PXR5cGVvZiBuP3ZvaWQgMDpwbyhuKSksbmV3IHBNKG8sdHx8Z2soKSxpfHxudWxsLHIpfXZhciB3aT0oKCk9PntjbGFzcyBue3N0YXRpYyBjcmVhdGUoZSxpKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBESCh7bmFtZToiIn0saSxlLCIiKTt7bGV0IHI9ZS5uYW1lPz8iIjtyZXR1cm4gREgoe25hbWU6cn0sZS5wYXJlbnQsZS5wcm92aWRlcnMscil9fX1yZXR1cm4gbi5USFJPV19JRl9OT1RfRk9VTkQ9WF8sbi5OVUxMPW5ldyB1TSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4scHJvdmlkZWRJbjoiYW55IixmYWN0b3J5OigpPT5PKE16KX0pLG4uX19OR19FTEVNRU5UX0lEX189LTEsbn0pKCksel89Y2xhc3N7Y29uc3RydWN0b3IodCxlKXtpZih0aGlzLnRva2VuPXQsdGhpcy5pZD1lLCF0KXRocm93IG5ldyB4dCgyMDgsITEpO3RoaXMuZGlzcGxheU5hbWU9cG8odGhpcy50b2tlbil9c3RhdGljIGdldCh0KXtyZXR1cm4gSUguZ2V0KEFpKHQpKX1zdGF0aWMgZ2V0IG51bWJlck9mS2V5cygpe3JldHVybiBJSC5udW1iZXJPZktleXN9fSxJSD1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLl9hbGxLZXlzPW5ldyBNYXB9Z2V0KHQpe2lmKHQgaW5zdGFuY2VvZiB6XylyZXR1cm4gdDtpZih0aGlzLl9hbGxLZXlzLmhhcyh0KSlyZXR1cm4gdGhpcy5fYWxsS2V5cy5nZXQodCk7bGV0IGU9bmV3IHpfKHQsel8ubnVtYmVyT2ZLZXlzKTtyZXR1cm4gdGhpcy5fYWxsS2V5cy5zZXQodCxlKSxlfWdldCBudW1iZXJPZktleXMoKXtyZXR1cm4gdGhpcy5fYWxsS2V5cy5zaXplfX07ZnVuY3Rpb24gQyhuLHQ9Q2kuRGVmYXVsdCl7bGV0IGU9WmUoKTtyZXR1cm4gbnVsbD09PWU/TyhuLHQpOkI1KExvKCksZSxBaShuKSx0KX1mdW5jdGlvbiBjcygpe3Rocm93IG5ldyBFcnJvcigiaW52YWxpZCIpfWZ1bmN0aW9uIE56KG4sdCl7bGV0IGU9bi5jb250ZW50UXVlcmllcztpZihudWxsIT09ZSlmb3IobGV0IGk9MDtpPGUubGVuZ3RoO2krPTIpe2xldCBvPWVbaSsxXTtpZigtMSE9PW8pe2xldCBhPW4uZGF0YVtvXTtaUChlW2ldKSxhLmNvbnRlbnRRdWVyaWVzKDIsdFtvXSxvKX19fWZ1bmN0aW9uIEJNKG4sdCxlLGkscixvLGEscyxsLGMsZCl7bGV0IHU9dC5ibHVlcHJpbnQuc2xpY2UoKTtyZXR1cm4gdVtvdV09cix1W2RpXT03NnxpLChudWxsIT09ZHx8biYmMTAyNCZuW2RpXSkmJih1W2RpXXw9MTAyNCksdjUodSksdVtqcl09dVtvZl09bix1W1JhXT1lLHVbaU1dPWF8fG4mJm5baU1dLHVbdWldPXN8fG4mJm5bdWldLHVbTlJdPWx8fG4mJm5bTlJdfHxudWxsLHVbbk1dPWN8fG4mJm5bbk1dfHxudWxsLHVbQWFdPW8sdVtUTV09dGFlKyssdVt1NV09ZCx1W3hsXT0yPT10LnR5cGU/blt4bF06dSx1fWZ1bmN0aW9uIHBmKG4sdCxlLGkscil7bGV0IG89bi5kYXRhW3RdO2lmKG51bGw9PT1vKW89X2sobix0LGUsaSxyKSxHbi5sRnJhbWUuaW5JMThuJiYoby5mbGFnc3w9MzIpO2Vsc2UgaWYoNjQmby50eXBlKXtvLnR5cGU9ZSxvLnZhbHVlPWksby5hdHRycz1yO2xldCBhPVpfKCk7by5pbmplY3RvckluZGV4PW51bGw9PT1hPy0xOmEuaW5qZWN0b3JJbmRleH1yZXR1cm4gYWMobywhMCksb31mdW5jdGlvbiBfayhuLHQsZSxpLHIpe2xldCBvPXg1KCksYT1YUCgpLGw9bi5kYXRhW3RdPWZ1bmN0aW9uKG4sdCxlLGkscixvKXtyZXR1cm57dHlwZTplLGluZGV4OmksaW5zZXJ0QmVmb3JlSW5kZXg6bnVsbCxpbmplY3RvckluZGV4OnQ/dC5pbmplY3RvckluZGV4Oi0xLGRpcmVjdGl2ZVN0YXJ0Oi0xLGRpcmVjdGl2ZUVuZDotMSxkaXJlY3RpdmVTdHlsaW5nTGFzdDotMSxjb21wb25lbnRPZmZzZXQ6LTEscHJvcGVydHlCaW5kaW5nczpudWxsLGZsYWdzOjAscHJvdmlkZXJJbmRleGVzOjAsdmFsdWU6cixhdHRyczpvLG1lcmdlZEF0dHJzOm51bGwsbG9jYWxOYW1lczpudWxsLGluaXRpYWxJbnB1dHM6dm9pZCAwLGlucHV0czpudWxsLG91dHB1dHM6bnVsbCx0VmlldzpudWxsLG5leHQ6bnVsbCxwcmV2Om51bGwscHJvamVjdGlvbk5leHQ6bnVsbCxjaGlsZDpudWxsLHBhcmVudDp0LHByb2plY3Rpb246bnVsbCxzdHlsZXM6bnVsbCxzdHlsZXNXaXRob3V0SG9zdDpudWxsLHJlc2lkdWFsU3R5bGVzOnZvaWQgMCxjbGFzc2VzOm51bGwsY2xhc3Nlc1dpdGhvdXRIb3N0Om51bGwscmVzaWR1YWxDbGFzc2VzOnZvaWQgMCxjbGFzc0JpbmRpbmdzOjAsc3R5bGVCaW5kaW5nczowfX0oMCxhP286byYmby5wYXJlbnQsZSx0LGkscik7cmV0dXJuIG51bGw9PT1uLmZpcnN0Q2hpbGQmJihuLmZpcnN0Q2hpbGQ9bCksbnVsbCE9PW8mJihhP251bGw9PW8uY2hpbGQmJm51bGwhPT1sLnBhcmVudCYmKG8uY2hpbGQ9bCk6bnVsbD09PW8ubmV4dCYmKG8ubmV4dD1sLGwucHJldj1vKSksbH1mdW5jdGlvbiBmYihuLHQsZSxpKXtpZigwPT09ZSlyZXR1cm4tMTtsZXQgcj10Lmxlbmd0aDtmb3IobGV0IG89MDtvPGU7bysrKXQucHVzaChpKSxuLmJsdWVwcmludC5wdXNoKGkpLG4uZGF0YS5wdXNoKG51bGwpO3JldHVybiByfWZ1bmN0aW9uIGJrKG4sdCxlKXtLUCh0KTt0cnl7bGV0IGk9bi52aWV3UXVlcnk7bnVsbCE9PWkmJmhQKDEsaSxlKTtsZXQgcj1uLnRlbXBsYXRlO251bGwhPT1yJiZMeihuLHQsciwxLGUpLG4uZmlyc3RDcmVhdGVQYXNzJiYobi5maXJzdENyZWF0ZVBhc3M9ITEpLG4uc3RhdGljQ29udGVudFF1ZXJpZXMmJk56KG4sdCksbi5zdGF0aWNWaWV3UXVlcmllcyYmaFAoMixuLnZpZXdRdWVyeSxlKTtsZXQgbz1uLmNvbXBvbmVudHM7bnVsbCE9PW8mJmZ1bmN0aW9uKG4sdCl7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspWXNlKG4sdFtlXSl9KHQsbyl9Y2F0Y2goaSl7dGhyb3cgbi5maXJzdENyZWF0ZVBhc3MmJihuLmluY29tcGxldGVGaXJzdFBhc3M9ITAsbi5maXJzdENyZWF0ZVBhc3M9ITEpLGl9ZmluYWxseXt0W2RpXSY9LTUsSlAoKX19ZnVuY3Rpb24gVk0obix0LGUsaSl7bGV0IHI9dFtkaV07aWYoMTI4IT0oMTI4JnIpKXtLUCh0KTt0cnl7djUodCksQzUobi5iaW5kaW5nU3RhcnRJbmRleCksbnVsbCE9PWUmJkx6KG4sdCxlLDIsaSk7bGV0IGE9Mz09KDMmcik7aWYoYSl7bGV0IGM9bi5wcmVPcmRlckNoZWNrSG9va3M7bnVsbCE9PWMmJkdDKHQsYyxudWxsKX1lbHNle2xldCBjPW4ucHJlT3JkZXJIb29rcztudWxsIT09YyYmV0ModCxjLDAsbnVsbCksdVIodCwwKX1pZihmdW5jdGlvbihuKXtmb3IobGV0IHQ9b2sobik7bnVsbCE9PXQ7dD1hayh0KSl7aWYoIXRbcDVdKWNvbnRpbnVlO2xldCBlPXRbS21dO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSsrKXtsZXQgcj1lW2ldOzA9PSg1MTImcltkaV0pJiZxUChyW2pyXSwxKSxyW2RpXXw9NTEyfX19KHQpLGZ1bmN0aW9uKG4pe2ZvcihsZXQgdD1vayhuKTtudWxsIT09dDt0PWFrKHQpKWZvcihsZXQgZT1JYTtlPHQubGVuZ3RoO2UrKyl7bGV0IGk9dFtlXSxyPWlbRm5dO29NKGkpJiZWTShyLGksci50ZW1wbGF0ZSxpW1JhXSl9fSh0KSxudWxsIT09bi5jb250ZW50UXVlcmllcyYmTnoobix0KSxhKXtsZXQgYz1uLmNvbnRlbnRDaGVja0hvb2tzO251bGwhPT1jJiZHQyh0LGMpfWVsc2V7bGV0IGM9bi5jb250ZW50SG9va3M7bnVsbCE9PWMmJldDKHQsYywxKSx1Uih0LDEpfSFmdW5jdGlvbihuLHQpe2xldCBlPW4uaG9zdEJpbmRpbmdPcENvZGVzO2lmKG51bGwhPT1lKXRyeXtmb3IobGV0IGk9MDtpPGUubGVuZ3RoO2krKyl7bGV0IHI9ZVtpXTtpZihyPDApV3AofnIpO2Vsc2V7bGV0IG89cixhPWVbKytpXSxzPWVbKytpXTtzb2UoYSxvKSxzKDIsdFtvXSl9fX1maW5hbGx5e1dwKC0xKX19KG4sdCk7bGV0IHM9bi5jb21wb25lbnRzO251bGwhPT1zJiZmdW5jdGlvbihuLHQpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKVhzZShuLHRbZV0pfSh0LHMpO2xldCBsPW4udmlld1F1ZXJ5O2lmKG51bGwhPT1sJiZoUCgyLGwsaSksYSl7bGV0IGM9bi52aWV3Q2hlY2tIb29rcztudWxsIT09YyYmR0ModCxjKX1lbHNle2xldCBjPW4udmlld0hvb2tzO251bGwhPT1jJiZXQyh0LGMsMiksdVIodCwyKX0hMD09PW4uZmlyc3RVcGRhdGVQYXNzJiYobi5maXJzdFVwZGF0ZVBhc3M9ITEpLHRbZGldJj0tNDEsNTEyJnRbZGldJiYodFtkaV0mPS01MTMscVAodFtqcl0sLTEpKX1maW5hbGx5e0pQKCl9fX1mdW5jdGlvbiBMeihuLHQsZSxpLHIpe2xldCBvPWRhKCksYT0yJmk7dHJ5e1dwKC0xKSxhJiZ0Lmxlbmd0aD5HciYma3oobix0LEdyLCExKSxrcyhhPzI6MCxyKSxlKGkscil9ZmluYWxseXtXcChvKSxrcyhhPzM6MSxyKX19ZnVuY3Rpb24gdmsobix0LGUpe2lmKFdQKHQpKXtsZXQgcj10LmRpcmVjdGl2ZUVuZDtmb3IobGV0IG89dC5kaXJlY3RpdmVTdGFydDtvPHI7bysrKXtsZXQgYT1uLmRhdGFbb107YS5jb250ZW50UXVlcmllcyYmYS5jb250ZW50UXVlcmllcygxLGVbb10sbyl9fX1mdW5jdGlvbiB5ayhuLHQsZSl7IXk1KCl8fChmdW5jdGlvbihuLHQsZSxpKXtsZXQgcj1lLmRpcmVjdGl2ZVN0YXJ0LG89ZS5kaXJlY3RpdmVFbmQ7RE0oZSkmJmZ1bmN0aW9uKG4sdCxlKXtsZXQgaT1zcyh0LG4pLHI9QnooZSksbz1uW2lNXSxhPUhNKG4sQk0obixyLG51bGwsZS5vblB1c2g/MzI6MTYsaSx0LG8sby5jcmVhdGVSZW5kZXJlcihpLGUpLG51bGwsbnVsbCxudWxsKSk7blt0LmluZGV4XT1hfSh0LGUsbi5kYXRhW3IrZS5jb21wb25lbnRPZmZzZXRdKSxuLmZpcnN0Q3JlYXRlUGFzc3x8Y00oZSx0KSxzYyhpLHQpO2xldCBhPWUuaW5pdGlhbElucHV0cztmb3IobGV0IHM9cjtzPG87cysrKXtsZXQgbD1uLmRhdGFbc10sYz1YcCh0LG4scyxlKTtzYyhjLHQpLG51bGwhPT1hJiZqc2UoMCxzLXIsYyxsLDAsYSksQ2wobCkmJihlZChlLmluZGV4LHQpW1JhXT1YcCh0LG4scyxlKSl9fShuLHQsZSxzcyhlLHQpKSw2ND09KDY0JmUuZmxhZ3MpJiZ6eihuLHQsZSkpfWZ1bmN0aW9uIHhrKG4sdCxlPXNzKXtsZXQgaT10LmxvY2FsTmFtZXM7aWYobnVsbCE9PWkpe2xldCByPXQuaW5kZXgrMTtmb3IobGV0IG89MDtvPGkubGVuZ3RoO28rPTIpe2xldCBhPWlbbysxXSxzPS0xPT09YT9lKHQsbik6blthXTtuW3IrK109c319fWZ1bmN0aW9uIEJ6KG4pe2xldCB0PW4udFZpZXc7cmV0dXJuIG51bGw9PT10fHx0LmluY29tcGxldGVGaXJzdFBhc3M/bi50Vmlldz1DaygxLG51bGwsbi50ZW1wbGF0ZSxuLmRlY2xzLG4udmFycyxuLmRpcmVjdGl2ZURlZnMsbi5waXBlRGVmcyxuLnZpZXdRdWVyeSxuLnNjaGVtYXMsbi5jb25zdHMpOnR9ZnVuY3Rpb24gQ2sobix0LGUsaSxyLG8sYSxzLGwsYyl7bGV0IGQ9R3IraSx1PWQrcixwPWZ1bmN0aW9uKG4sdCl7bGV0IGU9W107Zm9yKGxldCBpPTA7aTx0O2krKyllLnB1c2goaTxuP251bGw6em4pO3JldHVybiBlfShkLHUpLGg9ImZ1bmN0aW9uIj09dHlwZW9mIGM/YygpOmM7cmV0dXJuIHBbRm5dPXt0eXBlOm4sYmx1ZXByaW50OnAsdGVtcGxhdGU6ZSxxdWVyaWVzOm51bGwsdmlld1F1ZXJ5OnMsZGVjbFROb2RlOnQsZGF0YTpwLnNsaWNlKCkuZmlsbChudWxsLGQpLGJpbmRpbmdTdGFydEluZGV4OmQsZXhwYW5kb1N0YXJ0SW5kZXg6dSxob3N0QmluZGluZ09wQ29kZXM6bnVsbCxmaXJzdENyZWF0ZVBhc3M6ITAsZmlyc3RVcGRhdGVQYXNzOiEwLHN0YXRpY1ZpZXdRdWVyaWVzOiExLHN0YXRpY0NvbnRlbnRRdWVyaWVzOiExLHByZU9yZGVySG9va3M6bnVsbCxwcmVPcmRlckNoZWNrSG9va3M6bnVsbCxjb250ZW50SG9va3M6bnVsbCxjb250ZW50Q2hlY2tIb29rczpudWxsLHZpZXdIb29rczpudWxsLHZpZXdDaGVja0hvb2tzOm51bGwsZGVzdHJveUhvb2tzOm51bGwsY2xlYW51cDpudWxsLGNvbnRlbnRRdWVyaWVzOm51bGwsY29tcG9uZW50czpudWxsLGRpcmVjdGl2ZVJlZ2lzdHJ5OiJmdW5jdGlvbiI9PXR5cGVvZiBvP28oKTpvLHBpcGVSZWdpc3RyeToiZnVuY3Rpb24iPT10eXBlb2YgYT9hKCk6YSxmaXJzdENoaWxkOm51bGwsc2NoZW1hczpsLGNvbnN0czpoLGluY29tcGxldGVGaXJzdFBhc3M6ITF9fWZ1bmN0aW9uIFZ6KG4sdCxlLGkpe2xldCByPUd6KHQpO251bGw9PT1lP3IucHVzaChpKTooci5wdXNoKGUpLG4uZmlyc3RDcmVhdGVQYXNzJiZXeihuKS5wdXNoKGksci5sZW5ndGgtMSkpfWZ1bmN0aW9uIEFIKG4sdCxlLGkpe2ZvcihsZXQgciBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkocikpe2U9bnVsbD09PWU/e306ZTtsZXQgbz1uW3JdO251bGw9PT1pP1JIKGUsdCxyLG8pOmkuaGFzT3duUHJvcGVydHkocikmJlJIKGUsdCxpW3JdLG8pfXJldHVybiBlfWZ1bmN0aW9uIFJIKG4sdCxlLGkpe24uaGFzT3duUHJvcGVydHkoZSk/bltlXS5wdXNoKHQsaSk6bltlXT1bdCxpXX1mdW5jdGlvbiBkcyhuLHQsZSxpLHIsbyxhLHMpe2xldCBkLGw9c3ModCxlKSxjPXQuaW5wdXRzOyFzJiZudWxsIT1jJiYoZD1jW2ldKT8oRWsobixlLGQsaSxyKSxETSh0KSYmZnVuY3Rpb24obix0KXtsZXQgZT1lZCh0LG4pOzE2JmVbZGldfHwoZVtkaV18PTMyKX0oZSx0LmluZGV4KSk6MyZ0LnR5cGUmJihpPWZ1bmN0aW9uKG4pe3JldHVybiJjbGFzcyI9PT1uPyJjbGFzc05hbWUiOiJmb3IiPT09bj8iaHRtbEZvciI6ImZvcm1hY3Rpb24iPT09bj8iZm9ybUFjdGlvbiI6ImlubmVySHRtbCI9PT1uPyJpbm5lckhUTUwiOiJyZWFkb25seSI9PT1uPyJyZWFkT25seSI6InRhYmluZGV4Ij09PW4/InRhYkluZGV4IjpufShpKSxyPW51bGwhPWE/YShyLHQudmFsdWV8fCIiLGkpOnIsby5zZXRQcm9wZXJ0eShsLGkscikpfWZ1bmN0aW9uIE1rKG4sdCxlLGkpe2lmKHk1KCkpe2xldCBhLHMscj1udWxsPT09aT9udWxsOnsiIjotMX0sbz1mdW5jdGlvbihuLHQpe2xldCBlPW4uZGlyZWN0aXZlUmVnaXN0cnksaT1udWxsLHI9bnVsbDtpZihlKWZvcihsZXQgbz0wO288ZS5sZW5ndGg7bysrKXtsZXQgYT1lW29dO2lmKFB6KHQsYS5zZWxlY3RvcnMsITEpKWlmKGl8fChpPVtdKSxDbChhKSlpZihudWxsIT09YS5maW5kSG9zdERpcmVjdGl2ZURlZnMpe2xldCBzPVtdO3I9cnx8bmV3IE1hcCxhLmZpbmRIb3N0RGlyZWN0aXZlRGVmcyhhLHMsciksaS51bnNoaWZ0KC4uLnMsYSksdVAobix0LHMubGVuZ3RoKX1lbHNlIGkudW5zaGlmdChhKSx1UChuLHQsMCk7ZWxzZSByPXJ8fG5ldyBNYXAsYS5maW5kSG9zdERpcmVjdGl2ZURlZnM/LihhLGksciksaS5wdXNoKGEpfXJldHVybiBudWxsPT09aT9udWxsOltpLHJdfShuLGUpO251bGw9PT1vP2E9cz1udWxsOlthLHNdPW8sbnVsbCE9PWEmJkh6KG4sdCxlLGEscixzKSxyJiZmdW5jdGlvbihuLHQsZSl7aWYodCl7bGV0IGk9bi5sb2NhbE5hbWVzPVtdO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cis9Mil7bGV0IG89ZVt0W3IrMV1dO2lmKG51bGw9PW8pdGhyb3cgbmV3IHh0KC0zMDEsITEpO2kucHVzaCh0W3JdLG8pfX19KGUsaSxyKX1lLm1lcmdlZEF0dHJzPUtfKGUubWVyZ2VkQXR0cnMsZS5hdHRycyl9ZnVuY3Rpb24gSHoobix0LGUsaSxyLG8pe2ZvcihsZXQgYz0wO2M8aS5sZW5ndGg7YysrKXpSKGNNKGUsdCksbixpW2NdLnR5cGUpOyFmdW5jdGlvbihuLHQsZSl7bi5mbGFnc3w9MSxuLmRpcmVjdGl2ZVN0YXJ0PXQsbi5kaXJlY3RpdmVFbmQ9dCtlLG4ucHJvdmlkZXJJbmRleGVzPXR9KGUsbi5kYXRhLmxlbmd0aCxpLmxlbmd0aCk7Zm9yKGxldCBjPTA7YzxpLmxlbmd0aDtjKyspe2xldCBkPWlbY107ZC5wcm92aWRlcnNSZXNvbHZlciYmZC5wcm92aWRlcnNSZXNvbHZlcihkKX1sZXQgYT0hMSxzPSExLGw9ZmIobix0LGkubGVuZ3RoLG51bGwpO2ZvcihsZXQgYz0wO2M8aS5sZW5ndGg7YysrKXtsZXQgZD1pW2NdO2UubWVyZ2VkQXR0cnM9S18oZS5tZXJnZWRBdHRycyxkLmhvc3RBdHRycyksenNlKG4sZSx0LGwsZCksVnNlKGwsZCxyKSxudWxsIT09ZC5jb250ZW50UXVlcmllcyYmKGUuZmxhZ3N8PTQpLChudWxsIT09ZC5ob3N0QmluZGluZ3N8fG51bGwhPT1kLmhvc3RBdHRyc3x8MCE9PWQuaG9zdFZhcnMpJiYoZS5mbGFnc3w9NjQpO2xldCB1PWQudHlwZS5wcm90b3R5cGU7IWEmJih1Lm5nT25DaGFuZ2VzfHx1Lm5nT25Jbml0fHx1Lm5nRG9DaGVjaykmJigobi5wcmVPcmRlckhvb2tzPz8obi5wcmVPcmRlckhvb2tzPVtdKSkucHVzaChlLmluZGV4KSxhPSEwKSwhcyYmKHUubmdPbkNoYW5nZXN8fHUubmdEb0NoZWNrKSYmKChuLnByZU9yZGVyQ2hlY2tIb29rcz8/KG4ucHJlT3JkZXJDaGVja0hvb2tzPVtdKSkucHVzaChlLmluZGV4KSxzPSEwKSxsKyt9IWZ1bmN0aW9uKG4sdCxlKXtsZXQgcj10LmRpcmVjdGl2ZUVuZCxvPW4uZGF0YSxhPXQuYXR0cnMscz1bXSxsPW51bGwsYz1udWxsO2ZvcihsZXQgZD10LmRpcmVjdGl2ZVN0YXJ0O2Q8cjtkKyspe2xldCB1PW9bZF0scD1lP2UuZ2V0KHUpOm51bGwsbT1wP3Aub3V0cHV0czpudWxsO2w9QUgodS5pbnB1dHMsZCxsLHA/cC5pbnB1dHM6bnVsbCksYz1BSCh1Lm91dHB1dHMsZCxjLG0pO2xldCBfPW51bGw9PT1sfHxudWxsPT09YXx8UnoodCk/bnVsbDpHc2UobCxkLGEpO3MucHVzaChfKX1udWxsIT09bCYmKGwuaGFzT3duUHJvcGVydHkoImNsYXNzIikmJih0LmZsYWdzfD04KSxsLmhhc093blByb3BlcnR5KCJzdHlsZSIpJiYodC5mbGFnc3w9MTYpKSx0LmluaXRpYWxJbnB1dHM9cyx0LmlucHV0cz1sLHQub3V0cHV0cz1jfShuLGUsbyl9ZnVuY3Rpb24genoobix0LGUpe2xldCBpPWUuZGlyZWN0aXZlU3RhcnQscj1lLmRpcmVjdGl2ZUVuZCxvPWUuaW5kZXgsYT1Hbi5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4O3RyeXtXcChvKTtmb3IobGV0IHM9aTtzPHI7cysrKXtsZXQgbD1uLmRhdGFbc10sYz10W3NdO0JSKHMpLChudWxsIT09bC5ob3N0QmluZGluZ3N8fDAhPT1sLmhvc3RWYXJzfHxudWxsIT09bC5ob3N0QXR0cnMpJiZOc2UobCxjKX19ZmluYWxseXtXcCgtMSksQlIoYSl9fWZ1bmN0aW9uIE5zZShuLHQpe251bGwhPT1uLmhvc3RCaW5kaW5ncyYmbi5ob3N0QmluZGluZ3MoMSx0KX1mdW5jdGlvbiB1UChuLHQsZSl7dC5jb21wb25lbnRPZmZzZXQ9ZSwobi5jb21wb25lbnRzPz8obi5jb21wb25lbnRzPVtdKSkucHVzaCh0LmluZGV4KX1mdW5jdGlvbiBWc2Uobix0LGUpe2lmKGUpe2lmKHQuZXhwb3J0QXMpZm9yKGxldCBpPTA7aTx0LmV4cG9ydEFzLmxlbmd0aDtpKyspZVt0LmV4cG9ydEFzW2ldXT1uO0NsKHQpJiYoZVsiIl09bil9fWZ1bmN0aW9uIHpzZShuLHQsZSxpLHIpe24uZGF0YVtpXT1yO2xldCBvPXIuZmFjdG9yeXx8KHIuZmFjdG9yeT1HcChyLnR5cGUpKSxhPW5ldyBxcChvLENsKHIpLEMpO24uYmx1ZXByaW50W2ldPWEsZVtpXT1hLGZ1bmN0aW9uKG4sdCxlLGkscil7bGV0IG89ci5ob3N0QmluZGluZ3M7aWYobyl7bGV0IGE9bi5ob3N0QmluZGluZ09wQ29kZXM7bnVsbD09PWEmJihhPW4uaG9zdEJpbmRpbmdPcENvZGVzPVtdKTtsZXQgcz1+dC5pbmRleDsoZnVuY3Rpb24obil7bGV0IHQ9bi5sZW5ndGg7Zm9yKDt0PjA7KXtsZXQgZT1uWy0tdF07aWYoIm51bWJlciI9PXR5cGVvZiBlJiZlPDApcmV0dXJuIGV9cmV0dXJuIDB9KShhKSE9cyYmYS5wdXNoKHMpLGEucHVzaChlLGksbyl9fShuLHQsaSxmYihuLGUsci5ob3N0VmFycyx6bikscil9ZnVuY3Rpb24gdWMobix0LGUsaSxyLG8pe2xldCBhPXNzKG4sdCk7d2sodFt1aV0sYSxvLG4udmFsdWUsZSxpLHIpfWZ1bmN0aW9uIHdrKG4sdCxlLGkscixvLGEpe2lmKG51bGw9PW8pbi5yZW1vdmVBdHRyaWJ1dGUodCxyLGUpO2Vsc2V7bGV0IHM9bnVsbD09YT9qbihvKTphKG8saXx8IiIscik7bi5zZXRBdHRyaWJ1dGUodCxyLHMsZSl9fWZ1bmN0aW9uIGpzZShuLHQsZSxpLHIsbyl7bGV0IGE9b1t0XTtpZihudWxsIT09YSl7bGV0IHM9aS5zZXRJbnB1dDtmb3IobGV0IGw9MDtsPGEubGVuZ3RoOyl7bGV0IGM9YVtsKytdLGQ9YVtsKytdLHU9YVtsKytdO251bGwhPT1zP2kuc2V0SW5wdXQoZSx1LGMsZCk6ZVtkXT11fX19ZnVuY3Rpb24gR3NlKG4sdCxlKXtsZXQgaT1udWxsLHI9MDtmb3IoO3I8ZS5sZW5ndGg7KXtsZXQgbz1lW3JdO2lmKDAhPT1vKWlmKDUhPT1vKXtpZigibnVtYmVyIj09dHlwZW9mIG8pYnJlYWs7aWYobi5oYXNPd25Qcm9wZXJ0eShvKSl7bnVsbD09PWkmJihpPVtdKTtsZXQgYT1uW29dO2ZvcihsZXQgcz0wO3M8YS5sZW5ndGg7cys9MilpZihhW3NdPT09dCl7aS5wdXNoKG8sYVtzKzFdLGVbcisxXSk7YnJlYWt9fXIrPTJ9ZWxzZSByKz0yO2Vsc2Ugcis9NH1yZXR1cm4gaX1mdW5jdGlvbiBVeihuLHQsZSxpKXtyZXR1cm5bbiwhMCwhMSx0LG51bGwsMCxpLGUsbnVsbCxudWxsXX1mdW5jdGlvbiBYc2Uobix0KXtsZXQgZT1lZCh0LG4pO2lmKG9NKGUpKXtsZXQgaT1lW0ZuXTs0OCZlW2RpXT9WTShpLGUsaS50ZW1wbGF0ZSxlW1JhXSk6ZVt6cF0+MCYmcFAoZSl9fWZ1bmN0aW9uIHBQKG4pe2ZvcihsZXQgaT1vayhuKTtudWxsIT09aTtpPWFrKGkpKWZvcihsZXQgcj1JYTtyPGkubGVuZ3RoO3IrKyl7bGV0IG89aVtyXTtpZihvTShvKSlpZig1MTImb1tkaV0pe2xldCBhPW9bRm5dO1ZNKGEsbyxhLnRlbXBsYXRlLG9bUmFdKX1lbHNlIG9benBdPjAmJnBQKG8pfWxldCBlPW5bRm5dLmNvbXBvbmVudHM7aWYobnVsbCE9PWUpZm9yKGxldCBpPTA7aTxlLmxlbmd0aDtpKyspe2xldCByPWVkKGVbaV0sbik7b00ocikmJnJbenBdPjAmJnBQKHIpfX1mdW5jdGlvbiBZc2Uobix0KXtsZXQgZT1lZCh0LG4pLGk9ZVtGbl07KGZ1bmN0aW9uKG4sdCl7Zm9yKGxldCBlPXQubGVuZ3RoO2U8bi5ibHVlcHJpbnQubGVuZ3RoO2UrKyl0LnB1c2gobi5ibHVlcHJpbnRbZV0pfSkoaSxlKSxiayhpLGUsZVtSYV0pfWZ1bmN0aW9uIEhNKG4sdCl7cmV0dXJuIG5bUV9dP25bdUhdW3lsXT10Om5bUV9dPXQsblt1SF09dCx0fWZ1bmN0aW9uIFNrKG4pe2Zvcig7bjspe25bZGldfD0zMjtsZXQgdD1yayhuKTtpZihYcmUobikmJiF0KXJldHVybiBuO249dH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBqeihuLHQsZSxpPSEwKXtsZXQgcj10W2lNXTtyLmJlZ2luJiZyLmJlZ2luKCk7dHJ5e1ZNKG4sdCxuLnRlbXBsYXRlLGUpfWNhdGNoKGEpe3Rocm93IGkmJlh6KHQsYSksYX1maW5hbGx5e3IuZW5kJiZyLmVuZCgpfX1mdW5jdGlvbiBoUChuLHQsZSl7WlAoMCksdChuLGUpfWZ1bmN0aW9uIEd6KG4pe3JldHVybiBuW1lfXXx8KG5bWV9dPVtdKX1mdW5jdGlvbiBXeihuKXtyZXR1cm4gbi5jbGVhbnVwfHwobi5jbGVhbnVwPVtdKX1mdW5jdGlvbiBxeihuLHQsZSl7cmV0dXJuKG51bGw9PT1ufHxDbChuKSkmJihlPWZ1bmN0aW9uKG4pe2Zvcig7QXJyYXkuaXNBcnJheShuKTspe2lmKCJvYmplY3QiPT10eXBlb2YgbltqUF0pcmV0dXJuIG47bj1uW291XX1yZXR1cm4gbnVsbH0oZVt0LmluZGV4XSkpLGVbdWldfWZ1bmN0aW9uIFh6KG4sdCl7bGV0IGU9bltuTV0saT1lP2UuZ2V0KGxhLG51bGwpOm51bGw7aSYmaS5oYW5kbGVFcnJvcih0KX1mdW5jdGlvbiBFayhuLHQsZSxpLHIpe2ZvcihsZXQgbz0wO288ZS5sZW5ndGg7KXtsZXQgYT1lW28rK10scz1lW28rK10sbD10W2FdLGM9bi5kYXRhW2FdO251bGwhPT1jLnNldElucHV0P2Muc2V0SW5wdXQobCxyLGkscyk6bFtzXT1yfX1mdW5jdGlvbiBvZChuLHQsZSl7bGV0IGk9QU0odCxuKTtRNShuW3VpXSxpLGUpfWZ1bmN0aW9uIG1NKG4sdCxlKXtsZXQgaT1lP24uc3R5bGVzOm51bGwscj1lP24uY2xhc3NlczpudWxsLG89MDtpZihudWxsIT09dClmb3IobGV0IGE9MDthPHQubGVuZ3RoO2ErKyl7bGV0IHM9dFthXTsibnVtYmVyIj09dHlwZW9mIHM/bz1zOjE9PW8/cj1SUihyLHMpOjI9PW8mJihpPVJSKGkscysiOiAiK3RbKythXSsiOyIpKX1lP24uc3R5bGVzPWk6bi5zdHlsZXNXaXRob3V0SG9zdD1pLGU/bi5jbGFzc2VzPXI6bi5jbGFzc2VzV2l0aG91dEhvc3Q9cn1mdW5jdGlvbiBaQyhuLHQsZSxpLHI9ITEpe2Zvcig7bnVsbCE9PWU7KXtsZXQgbz10W2UuaW5kZXhdO2lmKG51bGwhPT1vJiZpLnB1c2goTHMobykpLCRjKG8pKWZvcihsZXQgcz1JYTtzPG8ubGVuZ3RoO3MrKyl7bGV0IGw9b1tzXSxjPWxbRm5dLmZpcnN0Q2hpbGQ7bnVsbCE9PWMmJlpDKGxbRm5dLGwsYyxpKX1sZXQgYT1lLnR5cGU7aWYoOCZhKVpDKG4sdCxlLmNoaWxkLGkpO2Vsc2UgaWYoMzImYSl7bGV0IGwscz1payhlLHQpO2Zvcig7bD1zKCk7KWkucHVzaChsKX1lbHNlIGlmKDE2JmEpe2xldCBzPW96KHQsZSk7aWYoQXJyYXkuaXNBcnJheShzKSlpLnB1c2goLi4ucyk7ZWxzZXtsZXQgbD1yayh0W3hsXSk7WkMobFtGbl0sbCxzLGksITApfX1lPXI/ZS5wcm9qZWN0aW9uTmV4dDplLm5leHR9cmV0dXJuIGl9dmFyIFFwPWNsYXNze2dldCByb290Tm9kZXMoKXtsZXQgdD10aGlzLl9sVmlldyxlPXRbRm5dO3JldHVybiBaQyhlLHQsZS5maXJzdENoaWxkLFtdKX1jb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2xWaWV3PXQsdGhpcy5fY2RSZWZJbmplY3RpbmdWaWV3PWUsdGhpcy5fYXBwUmVmPW51bGwsdGhpcy5fYXR0YWNoZWRUb1ZpZXdDb250YWluZXI9ITF9Z2V0IGNvbnRleHQoKXtyZXR1cm4gdGhpcy5fbFZpZXdbUmFdfXNldCBjb250ZXh0KHQpe3RoaXMuX2xWaWV3W1JhXT10fWdldCBkZXN0cm95ZWQoKXtyZXR1cm4gMTI4PT0oMTI4JnRoaXMuX2xWaWV3W2RpXSl9ZGVzdHJveSgpe2lmKHRoaXMuX2FwcFJlZil0aGlzLl9hcHBSZWYuZGV0YWNoVmlldyh0aGlzKTtlbHNlIGlmKHRoaXMuX2F0dGFjaGVkVG9WaWV3Q29udGFpbmVyKXtsZXQgdD10aGlzLl9sVmlld1tqcl07aWYoJGModCkpe2xldCBlPXRbck1dLGk9ZT9lLmluZGV4T2YodGhpcyk6LTE7aT4tMSYmKFdSKHQsaSksZE0oZSxpKSl9dGhpcy5fYXR0YWNoZWRUb1ZpZXdDb250YWluZXI9ITF9SzUodGhpcy5fbFZpZXdbRm5dLHRoaXMuX2xWaWV3KX1vbkRlc3Ryb3kodCl7VnoodGhpcy5fbFZpZXdbRm5dLHRoaXMuX2xWaWV3LG51bGwsdCl9bWFya0ZvckNoZWNrKCl7U2sodGhpcy5fY2RSZWZJbmplY3RpbmdWaWV3fHx0aGlzLl9sVmlldyl9ZGV0YWNoKCl7dGhpcy5fbFZpZXdbZGldJj0tNjV9cmVhdHRhY2goKXt0aGlzLl9sVmlld1tkaV18PTY0fWRldGVjdENoYW5nZXMoKXtqeih0aGlzLl9sVmlld1tGbl0sdGhpcy5fbFZpZXcsdGhpcy5jb250ZXh0KX1jaGVja05vQ2hhbmdlcygpe31hdHRhY2hUb1ZpZXdDb250YWluZXJSZWYoKXtpZih0aGlzLl9hcHBSZWYpdGhyb3cgbmV3IHh0KDkwMiwhMSk7dGhpcy5fYXR0YWNoZWRUb1ZpZXdDb250YWluZXI9ITB9ZGV0YWNoRnJvbUFwcFJlZigpe3ZhciB0O3RoaXMuX2FwcFJlZj1udWxsLHViKHRoaXMuX2xWaWV3W0ZuXSx0PXRoaXMuX2xWaWV3LHRbdWldLDIsbnVsbCxudWxsKX1hdHRhY2hUb0FwcFJlZih0KXtpZih0aGlzLl9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcil0aHJvdyBuZXcgeHQoOTAyLCExKTt0aGlzLl9hcHBSZWY9dH19LG1QPWNsYXNzIGV4dGVuZHMgUXB7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5fdmlldz10fWRldGVjdENoYW5nZXMoKXtsZXQgdD10aGlzLl92aWV3O2p6KHRbRm5dLHQsdFtSYV0sITEpfWNoZWNrTm9DaGFuZ2VzKCl7fWdldCBjb250ZXh0KCl7cmV0dXJuIG51bGx9fSxmTT1jbGFzcyBleHRlbmRzIGhve2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5uZ01vZHVsZT10fXJlc29sdmVDb21wb25lbnRGYWN0b3J5KHQpe2xldCBlPU9zKHQpO3JldHVybiBuZXcgZ00oZSx0aGlzLm5nTW9kdWxlKX19O2Z1bmN0aW9uIFBIKG4pe2xldCB0PVtdO2ZvcihsZXQgZSBpbiBuKW4uaGFzT3duUHJvcGVydHkoZSkmJnQucHVzaCh7cHJvcE5hbWU6bltlXSx0ZW1wbGF0ZU5hbWU6ZX0pO3JldHVybiB0fXZhciBnTT1jbGFzcyBleHRlbmRzIGhNe2dldCBpbnB1dHMoKXtyZXR1cm4gUEgodGhpcy5jb21wb25lbnREZWYuaW5wdXRzKX1nZXQgb3V0cHV0cygpe3JldHVybiBQSCh0aGlzLmNvbXBvbmVudERlZi5vdXRwdXRzKX1jb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5jb21wb25lbnREZWY9dCx0aGlzLm5nTW9kdWxlPWUsdGhpcy5jb21wb25lbnRUeXBlPXQudHlwZSx0aGlzLnNlbGVjdG9yPXQuc2VsZWN0b3JzLm1hcChnc2UpLmpvaW4oIiwiKSx0aGlzLm5nQ29udGVudFNlbGVjdG9ycz10Lm5nQ29udGVudFNlbGVjdG9ycz90Lm5nQ29udGVudFNlbGVjdG9yczpbXSx0aGlzLmlzQm91bmRUb01vZHVsZT0hIWV9Y3JlYXRlKHQsZSxpLHIpe2xldCBvPShyPXJ8fHRoaXMubmdNb2R1bGUpaW5zdGFuY2VvZiBsYz9yOnI/LmluamVjdG9yO28mJm51bGwhPT10aGlzLmNvbXBvbmVudERlZi5nZXRTdGFuZGFsb25lSW5qZWN0b3ImJihvPXRoaXMuY29tcG9uZW50RGVmLmdldFN0YW5kYWxvbmVJbmplY3RvcihvKXx8byk7bGV0IGE9bz9uZXcgY2xhc3N7Y29uc3RydWN0b3IodCxlKXt0aGlzLmluamVjdG9yPXQsdGhpcy5wYXJlbnRJbmplY3Rvcj1lfWdldCh0LGUsaSl7aT1TTShpKTtsZXQgcj10aGlzLmluamVjdG9yLmdldCh0LF9SLGkpO3JldHVybiByIT09X1J8fGU9PT1fUj9yOnRoaXMucGFyZW50SW5qZWN0b3IuZ2V0KHQsZSxpKX19KHQsbyk6dCxzPWEuZ2V0KGNjLG51bGwpO2lmKG51bGw9PT1zKXRocm93IG5ldyB4dCg0MDcsITEpO2xldCBfLE0sbD1hLmdldChpc2UsbnVsbCksYz1zLmNyZWF0ZVJlbmRlcmVyKG51bGwsdGhpcy5jb21wb25lbnREZWYpLGQ9dGhpcy5jb21wb25lbnREZWYuc2VsZWN0b3JzWzBdWzBdfHwiZGl2Iix1PWk/ZnVuY3Rpb24obix0LGUpe3JldHVybiBuLnNlbGVjdFJvb3RFbGVtZW50KHQsZT09PWFzLlNoYWRvd0RvbSl9KGMsaSx0aGlzLmNvbXBvbmVudERlZi5lbmNhcHN1bGF0aW9uKTpsayhjLGQsZnVuY3Rpb24obil7bGV0IHQ9bi50b0xvd2VyQ2FzZSgpO3JldHVybiJzdmciPT09dD9nNToibWF0aCI9PT10P181Om51bGx9KGQpKSxwPXRoaXMuY29tcG9uZW50RGVmLm9uUHVzaD8yODg6MjcyLGg9Q2soMCxudWxsLG51bGwsMSwwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCksbT1CTShudWxsLGgsbnVsbCxwLG51bGwsbnVsbCxzLGMsbCxhLG51bGwpO0tQKG0pO3RyeXtsZXQgeCx5PXRoaXMuY29tcG9uZW50RGVmLFI9bnVsbDt5LmZpbmRIb3N0RGlyZWN0aXZlRGVmcz8oeD1bXSxSPW5ldyBNYXAseS5maW5kSG9zdERpcmVjdGl2ZURlZnMoeSx4LFIpLHgucHVzaCh5KSk6eD1beV07bGV0IEk9ZnVuY3Rpb24obix0KXtsZXQgZT1uW0ZuXSxpPUdyO3JldHVybiBuW2ldPXQscGYoZSxpLDIsIiNob3N0IixudWxsKX0obSx1KSxCPWZ1bmN0aW9uKG4sdCxlLGkscixvLGEscyl7bGV0IGw9cltGbl07IWZ1bmN0aW9uKG4sdCxlLGkpe2ZvcihsZXQgciBvZiBuKXQubWVyZ2VkQXR0cnM9S18odC5tZXJnZWRBdHRycyxyLmhvc3RBdHRycyk7bnVsbCE9PXQubWVyZ2VkQXR0cnMmJihtTSh0LHQubWVyZ2VkQXR0cnMsITApLG51bGwhPT1lJiZseihpLGUsdCkpfShpLG4sdCxhKTtsZXQgYz1vLmNyZWF0ZVJlbmRlcmVyKHQsZSksZD1CTShyLEJ6KGUpLG51bGwsZS5vblB1c2g/MzI6MTYscltuLmluZGV4XSxuLG8sYyxudWxsLG51bGwsbnVsbCk7cmV0dXJuIGwuZmlyc3RDcmVhdGVQYXNzJiZ1UChsLG4saS5sZW5ndGgtMSksSE0ocixkKSxyW24uaW5kZXhdPWR9KEksdSx5LHgsbSxzLGMpO009YjUoaCxHciksdSYmZnVuY3Rpb24obix0LGUsaSl7aWYoaSlWUihuLGUsWyJuZy12ZXJzaW9uIixyc2UuZnVsbF0pO2Vsc2V7bGV0e2F0dHJzOnIsY2xhc3NlczpvfT1mdW5jdGlvbihuKXtsZXQgdD1bXSxlPVtdLGk9MSxyPTI7Zm9yKDtpPG4ubGVuZ3RoOyl7bGV0IG89bltpXTtpZigic3RyaW5nIj09dHlwZW9mIG8pMj09PXI/IiIhPT1vJiZ0LnB1c2gobyxuWysraV0pOjg9PT1yJiZlLnB1c2gobyk7ZWxzZXtpZighYmwocikpYnJlYWs7cj1vfWkrK31yZXR1cm57YXR0cnM6dCxjbGFzc2VzOmV9fSh0LnNlbGVjdG9yc1swXSk7ciYmVlIobixlLHIpLG8mJm8ubGVuZ3RoPjAmJnN6KG4sZSxvLmpvaW4oIiAiKSl9fShjLHksdSxpKSx2b2lkIDAhPT1lJiZmdW5jdGlvbihuLHQsZSl7bGV0IGk9bi5wcm9qZWN0aW9uPVtdO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKXtsZXQgbz1lW3JdO2kucHVzaChudWxsIT1vP0FycmF5LmZyb20obyk6bnVsbCl9fShNLHRoaXMubmdDb250ZW50U2VsZWN0b3JzLGUpLF89ZnVuY3Rpb24obix0LGUsaSxyLG8pe2xldCBhPUxvKCkscz1yW0ZuXSxsPXNzKGEscik7SHoocyxyLGEsZSxudWxsLGkpO2ZvcihsZXQgZD0wO2Q8ZS5sZW5ndGg7ZCsrKXNjKFhwKHIscyxhLmRpcmVjdGl2ZVN0YXJ0K2QsYSkscik7enoocyxyLGEpLGwmJnNjKGwscik7bGV0IGM9WHAocixzLGEuZGlyZWN0aXZlU3RhcnQrYS5jb21wb25lbnRPZmZzZXQsYSk7aWYobltSYV09cltSYV09YyxudWxsIT09bylmb3IobGV0IGQgb2YgbylkKGMsdCk7cmV0dXJuIHZrKHMsYSxuKSxjfShCLHkseCxSLG0sW2lsZV0pLGJrKGgsbSxudWxsKX1maW5hbGx5e0pQKCl9cmV0dXJuIG5ldyBnUCh0aGlzLmNvbXBvbmVudFR5cGUsXyx1ZihNLG0pLG0sTSl9fSxnUD1jbGFzcyBleHRlbmRzIGxQe2NvbnN0cnVjdG9yKHQsZSxpLHIsbyl7c3VwZXIoKSx0aGlzLmxvY2F0aW9uPWksdGhpcy5fcm9vdExWaWV3PXIsdGhpcy5fdE5vZGU9byx0aGlzLmluc3RhbmNlPWUsdGhpcy5ob3N0Vmlldz10aGlzLmNoYW5nZURldGVjdG9yUmVmPW5ldyBtUChyKSx0aGlzLmNvbXBvbmVudFR5cGU9dH1zZXRJbnB1dCh0LGUpe2xldCByLGk9dGhpcy5fdE5vZGUuaW5wdXRzO2lmKG51bGwhPT1pJiYocj1pW3RdKSl7bGV0IG89dGhpcy5fcm9vdExWaWV3O0VrKG9bRm5dLG8scix0LGUpLFNrKGVkKHRoaXMuX3ROb2RlLmluZGV4LG8pKX19Z2V0IGluamVjdG9yKCl7cmV0dXJuIG5ldyBqcCh0aGlzLl90Tm9kZSx0aGlzLl9yb290TFZpZXcpfWRlc3Ryb3koKXt0aGlzLmhvc3RWaWV3LmRlc3Ryb3koKX1vbkRlc3Ryb3kodCl7dGhpcy5ob3N0Vmlldy5vbkRlc3Ryb3kodCl9fTtmdW5jdGlvbiBpbGUoKXtsZXQgbj1MbygpO1JNKFplKClbRm5dLG4pfWZ1bmN0aW9uIFl6KG4pe3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobi5wcm90b3R5cGUpLmNvbnN0cnVjdG9yfWZ1bmN0aW9uIFhlKG4pe2xldCB0PVl6KG4udHlwZSksZT0hMCxpPVtuXTtmb3IoO3Q7KXtsZXQgcjtpZihDbChuKSlyPXQuXHUwMjc1Y21wfHx0Llx1MDI3NWRpcjtlbHNle2lmKHQuXHUwMjc1Y21wKXRocm93IG5ldyB4dCg5MDMsITEpO3I9dC5cdTAyNzVkaXJ9aWYocil7aWYoZSl7aS5wdXNoKHIpO2xldCBhPW47YS5pbnB1dHM9dlIobi5pbnB1dHMpLGEuZGVjbGFyZWRJbnB1dHM9dlIobi5kZWNsYXJlZElucHV0cyksYS5vdXRwdXRzPXZSKG4ub3V0cHV0cyk7bGV0IHM9ci5ob3N0QmluZGluZ3M7cyYmc2xlKG4scyk7bGV0IGw9ci52aWV3UXVlcnksYz1yLmNvbnRlbnRRdWVyaWVzO2lmKGwmJm9sZShuLGwpLGMmJmFsZShuLGMpLGRSKG4uaW5wdXRzLHIuaW5wdXRzKSxkUihuLmRlY2xhcmVkSW5wdXRzLHIuZGVjbGFyZWRJbnB1dHMpLGRSKG4ub3V0cHV0cyxyLm91dHB1dHMpLENsKHIpJiZyLmRhdGEuYW5pbWF0aW9uKXtsZXQgZD1uLmRhdGE7ZC5hbmltYXRpb249KGQuYW5pbWF0aW9ufHxbXSkuY29uY2F0KHIuZGF0YS5hbmltYXRpb24pfX1sZXQgbz1yLmZlYXR1cmVzO2lmKG8pZm9yKGxldCBhPTA7YTxvLmxlbmd0aDthKyspe2xldCBzPW9bYV07cyYmcy5uZ0luaGVyaXQmJnMobikscz09PVhlJiYoZT0hMSl9fXQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSFmdW5jdGlvbihuKXtsZXQgdD0wLGU9bnVsbDtmb3IobGV0IGk9bi5sZW5ndGgtMTtpPj0wO2ktLSl7bGV0IHI9bltpXTtyLmhvc3RWYXJzPXQrPXIuaG9zdFZhcnMsci5ob3N0QXR0cnM9S18oci5ob3N0QXR0cnMsZT1LXyhlLHIuaG9zdEF0dHJzKSl9fShpKX1mdW5jdGlvbiB2UihuKXtyZXR1cm4gbj09PVpjP3t9Om49PT1qaT9bXTpufWZ1bmN0aW9uIG9sZShuLHQpe2xldCBlPW4udmlld1F1ZXJ5O24udmlld1F1ZXJ5PWU/KGkscik9Pnt0KGksciksZShpLHIpfTp0fWZ1bmN0aW9uIGFsZShuLHQpe2xldCBlPW4uY29udGVudFF1ZXJpZXM7bi5jb250ZW50UXVlcmllcz1lPyhpLHIsbyk9Pnt0KGkscixvKSxlKGkscixvKX06dH1mdW5jdGlvbiBzbGUobix0KXtsZXQgZT1uLmhvc3RCaW5kaW5ncztuLmhvc3RCaW5kaW5ncz1lPyhpLHIpPT57dChpLHIpLGUoaSxyKX06dH12YXIgbGxlPVsicHJvdmlkZXJzUmVzb2x2ZXIiXSxjbGU9WyJ0ZW1wbGF0ZSIsImRlY2xzIiwiY29uc3RzIiwidmFycyIsIm9uUHVzaCIsIm5nQ29udGVudFNlbGVjdG9ycyIsInN0eWxlcyIsImVuY2Fwc3VsYXRpb24iLCJzY2hlbWFzIl07ZnVuY3Rpb24gUXoobix0LGUpe2lmKG51bGwhPT1uLmhvc3REaXJlY3RpdmVzKWZvcihsZXQgaSBvZiBuLmhvc3REaXJlY3RpdmVzKXtsZXQgcj1ldShpLmRpcmVjdGl2ZSk7cGxlKHIuZGVjbGFyZWRJbnB1dHMsaS5pbnB1dHMpLFF6KHIsdCxlKSxlLnNldChyLGkpLHQucHVzaChyKX19ZnVuY3Rpb24ga0gobil7aWYodm9pZCAwPT09bnx8MD09PW4ubGVuZ3RoKXJldHVybiBaYztsZXQgdD17fTtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrPTIpdFtuW2VdXT1uW2UrMV07cmV0dXJuIHR9ZnVuY3Rpb24gcGxlKG4sdCl7Zm9yKGxldCBlIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShlKSYmKG5bdFtlXV09bltlXSl9ZnVuY3Rpb24gWnoobil7cmV0dXJuISFUayhuKSYmKEFycmF5LmlzQXJyYXkobil8fCEobiBpbnN0YW5jZW9mIE1hcCkmJlN5bWJvbC5pdGVyYXRvciBpbiBuKX1mdW5jdGlvbiBUayhuKXtyZXR1cm4gbnVsbCE9PW4mJigiZnVuY3Rpb24iPT10eXBlb2Ygbnx8Im9iamVjdCI9PXR5cGVvZiBuKX1mdW5jdGlvbiBwYyhuLHQsZSl7cmV0dXJuIG5bdF09ZX1mdW5jdGlvbiBnYihuLHQpe3JldHVybiBuW3RdfWZ1bmN0aW9uIHFvKG4sdCxlKXtyZXR1cm4hT2JqZWN0LmlzKG5bdF0sZSkmJihuW3RdPWUsITApfWZ1bmN0aW9uIFpwKG4sdCxlLGkpe2xldCByPXFvKG4sdCxlKTtyZXR1cm4gcW8obix0KzEsaSl8fHJ9ZnVuY3Rpb24gek0obix0LGUsaSxyKXtsZXQgbz1acChuLHQsZSxpKTtyZXR1cm4gcW8obix0KzIscil8fG99ZnVuY3Rpb24gQnMobix0LGUsaSxyLG8pe2xldCBhPVpwKG4sdCxlLGkpO3JldHVybiBacChuLHQrMixyLG8pfHxhfWZ1bmN0aW9uIEJlKG4sdCxlLGkpe2xldCByPVplKCk7cmV0dXJuIHFvKHIsc2YoKSx0KSYmKFRpKCksdWMoUHIoKSxyLG4sdCxlLGkpKSxCZX1mdW5jdGlvbiBoZihuLHQpe2xldCBlPSExLGk9dGQoKTtmb3IobGV0IG89MTtvPHQubGVuZ3RoO28rPTIpZT1xbyhuLGkrKyx0W29dKXx8ZTtpZihDNShpKSwhZSlyZXR1cm4gem47bGV0IHI9dFswXTtmb3IobGV0IG89MTtvPHQubGVuZ3RoO28rPTIpcis9am4odFtvXSkrdFtvKzFdO3JldHVybiByfWZ1bmN0aW9uIG1mKG4sdCxlLGkpe3JldHVybiBxbyhuLHNmKCksZSk/dCtqbihlKStpOnpufWZ1bmN0aW9uIGZmKG4sdCxlLGkscixvKXtsZXQgcz1acChuLHRkKCksZSxyKTtyZXR1cm4gbmQoMikscz90K2puKGUpK2kram4ocikrbzp6bn1mdW5jdGlvbiBnZihuLHQsZSxpLHIsbyxhLHMpe2xldCBjPXpNKG4sdGQoKSxlLHIsYSk7cmV0dXJuIG5kKDMpLGM/dCtqbihlKStpK2puKHIpK28ram4oYSkrczp6bn1mdW5jdGlvbiBfZihuLHQsZSxpLHIsbyxhLHMsbCxjKXtsZXQgdT1CcyhuLHRkKCksZSxyLGEsbCk7cmV0dXJuIG5kKDQpLHU/dCtqbihlKStpK2puKHIpK28ram4oYSkrcytqbihsKStjOnpufWZ1bmN0aW9uIGJmKG4sdCxlLGkscixvLGEscyxsLGMsZCx1KXtsZXQgcD10ZCgpLGg9QnMobixwLGUscixhLGwpO3JldHVybiBoPXFvKG4scCs0LGQpfHxoLG5kKDUpLGg/dCtqbihlKStpK2puKHIpK28ram4oYSkrcytqbihsKStjK2puKGQpK3U6em59ZnVuY3Rpb24gdmYobix0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCxoKXtsZXQgbT10ZCgpLF89QnMobixtLGUscixhLGwpO3JldHVybiBfPVpwKG4sbSs0LGQscCl8fF8sbmQoNiksXz90K2puKGUpK2kram4ocikrbytqbihhKStzK2puKGwpK2Mram4oZCkrdStqbihwKStoOnpufWZ1bmN0aW9uIHlmKG4sdCxlLGkscixvLGEscyxsLGMsZCx1LHAsaCxtLF8pe2xldCBNPXRkKCkseT1CcyhuLE0sZSxyLGEsbCk7cmV0dXJuIHk9ek0obixNKzQsZCxwLG0pfHx5LG5kKDcpLHk/dCtqbihlKStpK2puKHIpK28ram4oYSkrcytqbihsKStjK2puKGQpK3Uram4ocCkraCtqbihtKStfOnpufWZ1bmN0aW9uIHhmKG4sdCxlLGkscixvLGEscyxsLGMsZCx1LHAsaCxtLF8sTSx5KXtsZXQgeD10ZCgpLFI9QnMobix4LGUscixhLGwpO3JldHVybiBSPUJzKG4seCs0LGQscCxtLE0pfHxSLG5kKDgpLFI/dCtqbihlKStpK2puKHIpK28ram4oYSkrcytqbihsKStjK2puKGQpK3Uram4ocCkraCtqbihtKStfK2puKE0pK3k6em59ZnVuY3Rpb24gUyhuLHQsZSxpLHIsbyxhLHMpe2xldCBsPVplKCksYz1UaSgpLGQ9bitHcix1PWMuZmlyc3RDcmVhdGVQYXNzP2Z1bmN0aW9uKG4sdCxlLGkscixvLGEscyxsKXtsZXQgYz10LmNvbnN0cyxkPXBmKHQsbiw0LGF8fG51bGwsbnUoYyxzKSk7TWsodCxlLGQsbnUoYyxsKSksUk0odCxkKTtsZXQgdT1kLnRWaWV3PUNrKDIsZCxpLHIsbyx0LmRpcmVjdGl2ZVJlZ2lzdHJ5LHQucGlwZVJlZ2lzdHJ5LG51bGwsdC5zY2hlbWFzLGMpO3JldHVybiBudWxsIT09dC5xdWVyaWVzJiYodC5xdWVyaWVzLnRlbXBsYXRlKHQsZCksdS5xdWVyaWVzPXQucXVlcmllcy5lbWJlZGRlZFRWaWV3KGQpKSxkfShkLGMsbCx0LGUsaSxyLG8sYSk6Yy5kYXRhW2RdO2FjKHUsITEpO2xldCBwPWxbdWldLmNyZWF0ZUNvbW1lbnQoIiIpO09NKGMsbCxwLHUpLHNjKHAsbCksSE0obCxsW2RdPVV6KHAsbCxwLHUpKSxJTSh1KSYmeWsoYyxsLHUpLG51bGwhPWEmJnhrKGwsdSxzKX1mdW5jdGlvbiBzdChuKXtyZXR1cm4gYWYoR24ubEZyYW1lLmNvbnRleHRMVmlldyxHcituKX1mdW5jdGlvbiBiKG4sdCxlKXtsZXQgaT1aZSgpO3JldHVybiBxbyhpLHNmKCksdCkmJmRzKFRpKCksUHIoKSxpLG4sdCxpW3VpXSxlLCExKSxifWZ1bmN0aW9uIF9QKG4sdCxlLGkscil7bGV0IGE9cj8iY2xhc3MiOiJzdHlsZSI7RWsobixlLHQuaW5wdXRzW2FdLGEsaSl9ZnVuY3Rpb24gZihuLHQsZSxpKXtsZXQgcj1aZSgpLG89VGkoKSxhPUdyK24scz1yW3VpXSxsPW8uZmlyc3RDcmVhdGVQYXNzP2Z1bmN0aW9uKG4sdCxlLGkscixvKXtsZXQgYT10LmNvbnN0cyxsPXBmKHQsbiwyLGksbnUoYSxyKSk7cmV0dXJuIE1rKHQsZSxsLG51KGEsbykpLG51bGwhPT1sLmF0dHJzJiZtTShsLGwuYXR0cnMsITEpLG51bGwhPT1sLm1lcmdlZEF0dHJzJiZtTShsLGwubWVyZ2VkQXR0cnMsITApLG51bGwhPT10LnF1ZXJpZXMmJnQucXVlcmllcy5lbGVtZW50U3RhcnQodCxsKSxsfShhLG8scix0LGUsaSk6by5kYXRhW2FdLGM9clthXT1sayhzLHQsR24ubEZyYW1lLmN1cnJlbnROYW1lc3BhY2UpLGQ9SU0obCk7cmV0dXJuIGFjKGwsITApLGx6KHMsYyxsKSwzMiE9KDMyJmwuZmxhZ3MpJiZPTShvLHIsYyxsKSwwPT09R24ubEZyYW1lLmVsZW1lbnREZXB0aENvdW50JiZzYyhjLHIpLEduLmxGcmFtZS5lbGVtZW50RGVwdGhDb3VudCsrLGQmJih5ayhvLHIsbCksdmsobyxsLHIpKSxudWxsIT09aSYmeGsocixsKSxmfWZ1bmN0aW9uIGcoKXtsZXQgbj1MbygpO1hQKCk/WVAoKToobj1uLnBhcmVudCxhYyhuLCExKSk7bGV0IHQ9bjtHbi5sRnJhbWUuZWxlbWVudERlcHRoQ291bnQtLTtsZXQgZT1UaSgpO3JldHVybiBlLmZpcnN0Q3JlYXRlUGFzcyYmKFJNKGUsbiksV1AobikmJmUucXVlcmllcy5lbGVtZW50RW5kKG4pKSxudWxsIT10LmNsYXNzZXNXaXRob3V0SG9zdCYmZnVuY3Rpb24obil7cmV0dXJuIDAhPSg4Jm4uZmxhZ3MpfSh0KSYmX1AoZSx0LFplKCksdC5jbGFzc2VzV2l0aG91dEhvc3QsITApLG51bGwhPXQuc3R5bGVzV2l0aG91dEhvc3QmJmZ1bmN0aW9uKG4pe3JldHVybiAwIT0oMTYmbi5mbGFncyl9KHQpJiZfUChlLHQsWmUoKSx0LnN0eWxlc1dpdGhvdXRIb3N0LCExKSxnfWZ1bmN0aW9uIGsobix0LGUsaSl7cmV0dXJuIGYobix0LGUsaSksZygpLGt9ZnVuY3Rpb24gR3Qobix0LGUpe2xldCBpPVplKCkscj1UaSgpLG89bitHcixhPXIuZmlyc3RDcmVhdGVQYXNzP2Z1bmN0aW9uKG4sdCxlLGkscil7bGV0IG89dC5jb25zdHMsYT1udShvLGkpLHM9cGYodCxuLDgsIm5nLWNvbnRhaW5lciIsYSk7cmV0dXJuIG51bGwhPT1hJiZtTShzLGEsITApLE1rKHQsZSxzLG51KG8scikpLG51bGwhPT10LnF1ZXJpZXMmJnQucXVlcmllcy5lbGVtZW50U3RhcnQodCxzKSxzfShvLHIsaSx0LGUpOnIuZGF0YVtvXTthYyhhLCEwKTtsZXQgcz1pW29dPWlbdWldLmNyZWF0ZUNvbW1lbnQoIiIpO3JldHVybiBPTShyLGkscyxhKSxzYyhzLGkpLElNKGEpJiYoeWsocixpLGEpLHZrKHIsYSxpKSksbnVsbCE9ZSYmeGsoaSxhKSxHdH1mdW5jdGlvbiBXdCgpe2xldCBuPUxvKCksdD1UaSgpO3JldHVybiBYUCgpP1lQKCk6KG49bi5wYXJlbnQsYWMobiwhMSkpLHQuZmlyc3RDcmVhdGVQYXNzJiYoUk0odCxuKSxXUChuKSYmdC5xdWVyaWVzLmVsZW1lbnRFbmQobikpLFd0fWZ1bmN0aW9uIGhpKG4sdCxlKXtyZXR1cm4gR3Qobix0LGUpLFd0KCksaGl9ZnVuY3Rpb24gVGUoKXtyZXR1cm4gWmUoKX1mdW5jdGlvbiBDZihuKXtyZXR1cm4hIW4mJiJmdW5jdGlvbiI9PXR5cGVvZiBuLnRoZW59ZnVuY3Rpb24gRGsobil7cmV0dXJuISFuJiYiZnVuY3Rpb24iPT10eXBlb2Ygbi5zdWJzY3JpYmV9dmFyIElrPURrO2Z1bmN0aW9uIEEobix0LGUsaSl7bGV0IHI9WmUoKSxvPVRpKCksYT1MbygpO3JldHVybiBhVShvLHIsclt1aV0sYSxuLHQsaSksQX1mdW5jdGlvbiBVTShuLHQpe2xldCBlPUxvKCksaT1aZSgpLHI9VGkoKTtyZXR1cm4gYVUocixpLHF6KFFQKHIuZGF0YSksZSxpKSxlLG4sdCksVU19ZnVuY3Rpb24gYVUobix0LGUsaSxyLG8sYSl7bGV0IHM9SU0oaSksYz1uLmZpcnN0Q3JlYXRlUGFzcyYmV3oobiksZD10W1JhXSx1PUd6KHQpLHA9ITA7aWYoMyZpLnR5cGV8fGEpe2xldCBfPXNzKGksdCksTT1hP2EoXyk6Xyx5PXUubGVuZ3RoLHg9YT9JPT5hKExzKElbaS5pbmRleF0pKTppLmluZGV4LFI9bnVsbDtpZighYSYmcyYmKFI9ZnVuY3Rpb24obix0LGUsaSl7bGV0IHI9bi5jbGVhbnVwO2lmKG51bGwhPXIpZm9yKGxldCBvPTA7bzxyLmxlbmd0aC0xO28rPTIpe2xldCBhPXJbb107aWYoYT09PWUmJnJbbysxXT09PWkpe2xldCBzPXRbWV9dLGw9cltvKzJdO3JldHVybiBzLmxlbmd0aD5sP3NbbF06bnVsbH0ic3RyaW5nIj09dHlwZW9mIGEmJihvKz0yKX1yZXR1cm4gbnVsbH0obix0LHIsaS5pbmRleCkpLG51bGwhPT1SKShSLl9fbmdMYXN0TGlzdGVuZXJGbl9ffHxSKS5fX25nTmV4dExpc3RlbmVyRm5fXz1vLFIuX19uZ0xhc3RMaXN0ZW5lckZuX189byxwPSExO2Vsc2V7bz1GSChpLHQsZCxvLCExKTtsZXQgST1lLmxpc3RlbihNLHIsbyk7dS5wdXNoKG8sSSksYyYmYy5wdXNoKHIseCx5LHkrMSl9fWVsc2Ugbz1GSChpLHQsZCxvLCExKTtsZXQgbSxoPWkub3V0cHV0cztpZihwJiZudWxsIT09aCYmKG09aFtyXSkpe2xldCBfPW0ubGVuZ3RoO2lmKF8pZm9yKGxldCBNPTA7TTxfO00rPTIpe2xldCBCPXRbbVtNXV1bbVtNKzFdXS5zdWJzY3JpYmUobyksZWU9dS5sZW5ndGg7dS5wdXNoKG8sQiksYyYmYy5wdXNoKHIsaS5pbmRleCxlZSwtKGVlKzEpKX19fWZ1bmN0aW9uIE9IKG4sdCxlLGkpe3RyeXtyZXR1cm4ga3MoNix0LGUpLCExIT09ZShpKX1jYXRjaChyKXtyZXR1cm4gWHoobixyKSwhMX1maW5hbGx5e2tzKDcsdCxlKX19ZnVuY3Rpb24gRkgobix0LGUsaSxyKXtyZXR1cm4gZnVuY3Rpb24gbyhhKXtpZihhPT09RnVuY3Rpb24pcmV0dXJuIGk7U2sobi5jb21wb25lbnRPZmZzZXQ+LTE/ZWQobi5pbmRleCx0KTp0KTtsZXQgbD1PSCh0LGUsaSxhKSxjPW8uX19uZ05leHRMaXN0ZW5lckZuX187Zm9yKDtjOylsPU9IKHQsZSxjLGEpJiZsLGM9Yy5fX25nTmV4dExpc3RlbmVyRm5fXztyZXR1cm4gciYmITE9PT1sJiYoYS5wcmV2ZW50RGVmYXVsdCgpLGEucmV0dXJuVmFsdWU9ITEpLGx9fWZ1bmN0aW9uIHcobj0xKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuKEduLmxGcmFtZS5jb250ZXh0TFZpZXc9ZnVuY3Rpb24obix0KXtmb3IoO24+MDspdD10W29mXSxuLS07cmV0dXJuIHR9KG4sR24ubEZyYW1lLmNvbnRleHRMVmlldykpW1JhXX0obil9ZnVuY3Rpb24gdmxlKG4sdCl7bGV0IGU9bnVsbCxpPWZ1bmN0aW9uKG4pe2xldCB0PW4uYXR0cnM7aWYobnVsbCE9dCl7bGV0IGU9dC5pbmRleE9mKDUpO2lmKDA9PSgxJmUpKXJldHVybiB0W2UrMV19cmV0dXJuIG51bGx9KG4pO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKXtsZXQgbz10W3JdO2lmKCIqIiE9PW8pe2lmKG51bGw9PT1pP1B6KG4sbywhMCk6ZnNlKGksbykpcmV0dXJuIHJ9ZWxzZSBlPXJ9cmV0dXJuIGV9ZnVuY3Rpb24gZm4obil7bGV0IHQ9WmUoKVt4bF1bQWFdO2lmKCF0LnByb2plY3Rpb24pe2xldCBpPXQucHJvamVjdGlvbj1IXyhuP24ubGVuZ3RoOjEsbnVsbCkscj1pLnNsaWNlKCksbz10LmNoaWxkO2Zvcig7bnVsbCE9PW87KXtsZXQgYT1uP3ZsZShvLG4pOjA7bnVsbCE9PWEmJihyW2FdP3JbYV0ucHJvamVjdGlvbk5leHQ9bzppW2FdPW8sclthXT1vKSxvPW8ubmV4dH19fWZ1bmN0aW9uIFR0KG4sdD0wLGUpe2xldCBpPVplKCkscj1UaSgpLG89cGYocixHcituLDE2LG51bGwsZXx8bnVsbCk7bnVsbD09PW8ucHJvamVjdGlvbiYmKG8ucHJvamVjdGlvbj10KSxZUCgpLDMyIT0oMzImby5mbGFncykmJmZ1bmN0aW9uKG4sdCxlKXtheih0W3VpXSwwLHQsZSxKNShuLGUsdCksdHooZS5wYXJlbnR8fHRbQWFdLGUsdCkpfShyLGksbyl9ZnVuY3Rpb24gWmkobix0LGUpe3JldHVybiBfYihuLCIiLHQsIiIsZSksWml9ZnVuY3Rpb24gX2Iobix0LGUsaSxyKXtsZXQgbz1aZSgpLGE9bWYobyx0LGUsaSk7cmV0dXJuIGEhPT16biYmZHMoVGkoKSxQcigpLG8sbixhLG9bdWldLHIsITEpLF9ifWZ1bmN0aW9uIGpNKG4sdCxlLGkscixvLGEpe2xldCBzPVplKCksbD1mZihzLHQsZSxpLHIsbyk7cmV0dXJuIGwhPT16biYmZHMoVGkoKSxQcigpLHMsbixsLHNbdWldLGEsITEpLGpNfWZ1bmN0aW9uIGpDKG4sdCl7cmV0dXJuIG48PDE3fHQ8PDJ9ZnVuY3Rpb24gS3Aobil7cmV0dXJuIG4+PjE3JjMyNzY3fWZ1bmN0aW9uIGJQKG4pe3JldHVybiAyfG59ZnVuY3Rpb24gZWYobil7cmV0dXJuKDEzMTA2OCZuKT4+Mn1mdW5jdGlvbiB5UihuLHQpe3JldHVybi0xMzEwNjkmbnx0PDwyfWZ1bmN0aW9uIHZQKG4pe3JldHVybiAxfG59ZnVuY3Rpb24gTkgobix0LGUsaSxyKXtsZXQgbz1uW2UrMV0sYT1udWxsPT09dCxzPWk/S3Aobyk6ZWYobyksbD0hMTtmb3IoOzAhPT1zJiYoITE9PT1sfHxhKTspe2xldCBkPW5bcysxXTtTbGUobltzXSx0KSYmKGw9ITAsbltzKzFdPWk/dlAoZCk6YlAoZCkpLHM9aT9LcChkKTplZihkKX1sJiYobltlKzFdPWk/YlAobyk6dlAobykpfWZ1bmN0aW9uIFNsZShuLHQpe3JldHVybiBudWxsPT09bnx8bnVsbD09dHx8KEFycmF5LmlzQXJyYXkobik/blsxXTpuKT09PXR8fCEoIUFycmF5LmlzQXJyYXkobil8fCJzdHJpbmciIT10eXBlb2YgdCkmJmRiKG4sdCk+PTB9dmFyIHVvPXt0ZXh0RW5kOjAsa2V5OjAsa2V5RW5kOjAsdmFsdWU6MCx2YWx1ZUVuZDowfTtmdW5jdGlvbiBtVShuKXtyZXR1cm4gbi5zdWJzdHJpbmcodW8ua2V5LHVvLmtleUVuZCl9ZnVuY3Rpb24gRWxlKG4pe3JldHVybiBuLnN1YnN0cmluZyh1by52YWx1ZSx1by52YWx1ZUVuZCl9ZnVuY3Rpb24gZlUobix0KXtsZXQgZT11by50ZXh0RW5kO3JldHVybiBlPT09dD8tMToodD11by5rZXlFbmQ9ZnVuY3Rpb24obix0LGUpe2Zvcig7dDxlJiZuLmNoYXJDb2RlQXQodCk+MzI7KXQrKztyZXR1cm4gdH0obix1by5rZXk9dCxlKSx0ZihuLHQsZSkpfWZ1bmN0aW9uIGdVKG4sdCl7bGV0IGU9dW8udGV4dEVuZCxpPXVvLmtleT10ZihuLHQsZSk7cmV0dXJuIGU9PT1pPy0xOihpPXVvLmtleUVuZD1mdW5jdGlvbihuLHQsZSl7bGV0IGk7Zm9yKDt0PGUmJig0NT09PShpPW4uY2hhckNvZGVBdCh0KSl8fDk1PT09aXx8KC0zMyZpKT49NjUmJigtMzMmaSk8PTkwfHxpPj00OCYmaTw9NTcpOyl0Kys7cmV0dXJuIHR9KG4saSxlKSxpPUxIKG4saSxlKSxpPXVvLnZhbHVlPXRmKG4saSxlKSxpPXVvLnZhbHVlRW5kPWZ1bmN0aW9uKG4sdCxlKXtsZXQgaT0tMSxyPS0xLG89LTEsYT10LHM9YTtmb3IoO2E8ZTspe2xldCBsPW4uY2hhckNvZGVBdChhKyspO2lmKDU5PT09bClyZXR1cm4gczszND09PWx8fDM5PT09bD9zPWE9QkgobixsLGEsZSk6dD09PWEtNCYmODU9PT1vJiY4Mj09PXImJjc2PT09aSYmNDA9PT1sP3M9YT1CSChuLDQxLGEsZSk6bD4zMiYmKHM9YSksbz1yLHI9aSxpPS0zMyZsfXJldHVybiBzfShuLGksZSksTEgobixpLGUpKX1mdW5jdGlvbiBfVShuKXt1by5rZXk9MCx1by5rZXlFbmQ9MCx1by52YWx1ZT0wLHVvLnZhbHVlRW5kPTAsdW8udGV4dEVuZD1uLmxlbmd0aH1mdW5jdGlvbiB0ZihuLHQsZSl7Zm9yKDt0PGUmJm4uY2hhckNvZGVBdCh0KTw9MzI7KXQrKztyZXR1cm4gdH1mdW5jdGlvbiBMSChuLHQsZSxpKXtyZXR1cm4odD10ZihuLHQsZSkpPGUmJnQrKyx0fWZ1bmN0aW9uIEJIKG4sdCxlLGkpe2xldCByPS0xLG89ZTtmb3IoO288aTspe2xldCBhPW4uY2hhckNvZGVBdChvKyspO2lmKGE9PXQmJjkyIT09cilyZXR1cm4gbztyPTkyPT1hJiY5Mj09PXI/MDphfXRocm93IG5ldyBFcnJvcn1mdW5jdGlvbiBCdChuLHQsZSl7cmV0dXJuIFNsKG4sdCxlLCExKSxCdH1mdW5jdGlvbiBudChuLHQpe3JldHVybiBTbChuLHQsbnVsbCwhMCksbnR9ZnVuY3Rpb24gSHMobil7RWwoeVUsUGxlLG4sITEpfWZ1bmN0aW9uIFBsZShuLHQpe2ZvcihsZXQgZT1mdW5jdGlvbihuKXtyZXR1cm4gX1UobiksZ1Uobix0ZihuLDAsdW8udGV4dEVuZCkpfSh0KTtlPj0wO2U9Z1UodCxlKSl5VShuLG1VKHQpLEVsZSh0KSl9ZnVuY3Rpb24gWG8obil7RWwoQmxlLGhjLG4sITApfWZ1bmN0aW9uIGhjKG4sdCl7Zm9yKGxldCBlPWZ1bmN0aW9uKG4pe3JldHVybiBfVShuKSxmVShuLHRmKG4sMCx1by50ZXh0RW5kKSl9KHQpO2U+PTA7ZT1mVSh0LGUpKWxzKG4sbVUodCksITApfWZ1bmN0aW9uIFNsKG4sdCxlLGkpe2xldCByPVplKCksbz1UaSgpLGE9bmQoMik7by5maXJzdFVwZGF0ZVBhc3MmJnZVKG8sbixhLGkpLHQhPT16biYmcW8ocixhLHQpJiZ4VShvLG8uZGF0YVtkYSgpXSxyLHJbdWldLG4sclthKzFdPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIG51bGw9PW58fCIiPT09bnx8KCJzdHJpbmciPT10eXBlb2YgdD9uKz10OiJvYmplY3QiPT10eXBlb2YgbiYmKG49cG8oT2EobikpKSksbn0odCxlKSxpLGEpfWZ1bmN0aW9uIEVsKG4sdCxlLGkpe2xldCByPVRpKCksbz1uZCgyKTtyLmZpcnN0VXBkYXRlUGFzcyYmdlUocixudWxsLG8saSk7bGV0IGE9WmUoKTtpZihlIT09em4mJnFvKGEsbyxlKSl7bGV0IHM9ci5kYXRhW2RhKCldO2lmKENVKHMsaSkmJiFiVShyLG8pKXtsZXQgbD1pP3MuY2xhc3Nlc1dpdGhvdXRIb3N0OnMuc3R5bGVzV2l0aG91dEhvc3Q7bnVsbCE9PWwmJihlPVJSKGwsZXx8IiIpKSxfUChyLHMsYSxlLGkpfWVsc2UhZnVuY3Rpb24obix0LGUsaSxyLG8sYSxzKXtyPT09em4mJihyPWppKTtsZXQgbD0wLGM9MCxkPTA8ci5sZW5ndGg/clswXTpudWxsLHU9MDxvLmxlbmd0aD9vWzBdOm51bGw7Zm9yKDtudWxsIT09ZHx8bnVsbCE9PXU7KXtsZXQgXyxwPWw8ci5sZW5ndGg/cltsKzFdOnZvaWQgMCxoPWM8by5sZW5ndGg/b1tjKzFdOnZvaWQgMCxtPW51bGw7ZD09PXU/KGwrPTIsYys9MixwIT09aCYmKG09dSxfPWgpKTpudWxsPT09dXx8bnVsbCE9PWQmJmQ8dT8obCs9MixtPWQpOihjKz0yLG09dSxfPWgpLG51bGwhPT1tJiZ4VShuLHQsZSxpLG0sXyxhLHMpLGQ9bDxyLmxlbmd0aD9yW2xdOm51bGwsdT1jPG8ubGVuZ3RoP29bY106bnVsbH19KHIscyxhLGFbdWldLGFbbysxXSxhW28rMV09ZnVuY3Rpb24obix0LGUpe2lmKG51bGw9PWV8fCIiPT09ZSlyZXR1cm4gamk7bGV0IGk9W10scj1PYShlKTtpZihBcnJheS5pc0FycmF5KHIpKWZvcihsZXQgbz0wO288ci5sZW5ndGg7bysrKW4oaSxyW29dLCEwKTtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2Ygcilmb3IobGV0IG8gaW4gcilyLmhhc093blByb3BlcnR5KG8pJiZuKGksbyxyW29dKTtlbHNlInN0cmluZyI9PXR5cGVvZiByJiZ0KGkscik7cmV0dXJuIGl9KG4sdCxlKSxpLG8pfX1mdW5jdGlvbiBiVShuLHQpe3JldHVybiB0Pj1uLmV4cGFuZG9TdGFydEluZGV4fWZ1bmN0aW9uIHZVKG4sdCxlLGkpe2xldCByPW4uZGF0YTtpZihudWxsPT09cltlKzFdKXtsZXQgbz1yW2RhKCldLGE9YlUobixlKTtDVShvLGkpJiZudWxsPT09dCYmIWEmJih0PSExKSx0PWZ1bmN0aW9uKG4sdCxlLGkpe2xldCByPVFQKG4pLG89aT90LnJlc2lkdWFsQ2xhc3Nlczp0LnJlc2lkdWFsU3R5bGVzO2lmKG51bGw9PT1yKTA9PT0oaT90LmNsYXNzQmluZGluZ3M6dC5zdHlsZUJpbmRpbmdzKSYmKGU9JF8oZT14UihudWxsLG4sdCxlLGkpLHQuYXR0cnMsaSksbz1udWxsKTtlbHNle2xldCBhPXQuZGlyZWN0aXZlU3R5bGluZ0xhc3Q7aWYoLTE9PT1hfHxuW2FdIT09cilpZihlPXhSKHIsbix0LGUsaSksbnVsbD09PW8pe2xldCBsPWZ1bmN0aW9uKG4sdCxlKXtsZXQgaT1lP3QuY2xhc3NCaW5kaW5nczp0LnN0eWxlQmluZGluZ3M7aWYoMCE9PWVmKGkpKXJldHVybiBuW0twKGkpXX0obix0LGkpO3ZvaWQgMCE9PWwmJkFycmF5LmlzQXJyYXkobCkmJihsPXhSKG51bGwsbix0LGxbMV0saSksbD0kXyhsLHQuYXR0cnMsaSksZnVuY3Rpb24obix0LGUsaSl7bltLcChlP3QuY2xhc3NCaW5kaW5nczp0LnN0eWxlQmluZGluZ3MpXT1pfShuLHQsaSxsKSl9ZWxzZSBvPWZ1bmN0aW9uKG4sdCxlKXtsZXQgaSxyPXQuZGlyZWN0aXZlRW5kO2ZvcihsZXQgbz0xK3QuZGlyZWN0aXZlU3R5bGluZ0xhc3Q7bzxyO28rKylpPSRfKGksbltvXS5ob3N0QXR0cnMsZSk7cmV0dXJuICRfKGksdC5hdHRycyxlKX0obix0LGkpfXJldHVybiB2b2lkIDAhPT1vJiYoaT90LnJlc2lkdWFsQ2xhc3Nlcz1vOnQucmVzaWR1YWxTdHlsZXM9byksZX0ocixvLHQsaSksZnVuY3Rpb24obix0LGUsaSxyLG8pe2xldCBhPW8/dC5jbGFzc0JpbmRpbmdzOnQuc3R5bGVCaW5kaW5ncyxzPUtwKGEpLGw9ZWYoYSk7bltpXT1lO2xldCBkLGM9ITE7aWYoQXJyYXkuaXNBcnJheShlKT8oZD1lWzFdLChudWxsPT09ZHx8ZGIoZSxkKT4wKSYmKGM9ITApKTpkPWUscilpZigwIT09bCl7bGV0IHA9S3AobltzKzFdKTtuW2krMV09akMocCxzKSwwIT09cCYmKG5bcCsxXT15UihuW3ArMV0saSkpLG5bcysxXT1mdW5jdGlvbihuLHQpe3JldHVybiAxMzEwNzEmbnx0PDwxN30obltzKzFdLGkpfWVsc2UgbltpKzFdPWpDKHMsMCksMCE9PXMmJihuW3MrMV09eVIobltzKzFdLGkpKSxzPWk7ZWxzZSBuW2krMV09akMobCwwKSwwPT09cz9zPWk6bltsKzFdPXlSKG5bbCsxXSxpKSxsPWk7YyYmKG5baSsxXT1iUChuW2krMV0pKSxOSChuLGQsaSwhMCksTkgobixkLGksITEpLGZ1bmN0aW9uKG4sdCxlLGkscil7bGV0IG89cj9uLnJlc2lkdWFsQ2xhc3NlczpuLnJlc2lkdWFsU3R5bGVzO251bGwhPW8mJiJzdHJpbmciPT10eXBlb2YgdCYmZGIobyx0KT49MCYmKGVbaSsxXT12UChlW2krMV0pKX0odCxkLG4saSxvKSxhPWpDKHMsbCksbz90LmNsYXNzQmluZGluZ3M9YTp0LnN0eWxlQmluZGluZ3M9YX0ocixvLHQsZSxhLGkpfX1mdW5jdGlvbiB4UihuLHQsZSxpLHIpe2xldCBvPW51bGwsYT1lLmRpcmVjdGl2ZUVuZCxzPWUuZGlyZWN0aXZlU3R5bGluZ0xhc3Q7Zm9yKC0xPT09cz9zPWUuZGlyZWN0aXZlU3RhcnQ6cysrO3M8YSYmKG89dFtzXSxpPSRfKGksby5ob3N0QXR0cnMsciksbyE9PW4pOylzKys7cmV0dXJuIG51bGwhPT1uJiYoZS5kaXJlY3RpdmVTdHlsaW5nTGFzdD1zKSxpfWZ1bmN0aW9uICRfKG4sdCxlKXtsZXQgaT1lPzE6MixyPS0xO2lmKG51bGwhPT10KWZvcihsZXQgbz0wO288dC5sZW5ndGg7bysrKXtsZXQgYT10W29dOyJudW1iZXIiPT10eXBlb2YgYT9yPWE6cj09PWkmJihBcnJheS5pc0FycmF5KG4pfHwobj12b2lkIDA9PT1uP1tdOlsiIixuXSksbHMobixhLCEhZXx8dFsrK29dKSl9cmV0dXJuIHZvaWQgMD09PW4/bnVsbDpufWZ1bmN0aW9uIHlVKG4sdCxlKXtscyhuLHQsT2EoZSkpfWZ1bmN0aW9uIEJsZShuLHQsZSl7bGV0IGk9U3RyaW5nKHQpOyIiIT09aSYmIWkuaW5jbHVkZXMoIiAiKSYmbHMobixpLGUpfWZ1bmN0aW9uIHhVKG4sdCxlLGkscixvLGEscyl7aWYoISgzJnQudHlwZSkpcmV0dXJuO2xldCBsPW4uZGF0YSxjPWxbcysxXSxkPWZ1bmN0aW9uKG4pe3JldHVybiAxPT0oMSZuKX0oYyk/VkgobCx0LGUscixlZihjKSxhKTp2b2lkIDA7X00oZCl8fChfTShvKXx8ZnVuY3Rpb24obil7cmV0dXJuIDI9PSgyJm4pfShjKSYmKG89VkgobCxudWxsLGUscixzLGEpKSxmdW5jdGlvbihuLHQsZSxpLHIpe2lmKHQpcj9uLmFkZENsYXNzKGUsaSk6bi5yZW1vdmVDbGFzcyhlLGkpO2Vsc2V7bGV0IG89LTE9PT1pLmluZGV4T2YoIi0iKT92b2lkIDA6TnMuRGFzaENhc2U7bnVsbD09cj9uLnJlbW92ZVN0eWxlKGUsaSxvKTooInN0cmluZyI9PXR5cGVvZiByJiZyLmVuZHNXaXRoKCIhaW1wb3J0YW50IikmJihyPXIuc2xpY2UoMCwtMTApLG98PU5zLkltcG9ydGFudCksbi5zZXRTdHlsZShlLGkscixvKSl9fShpLGEsQU0oZGEoKSxlKSxyLG8pKX1mdW5jdGlvbiBWSChuLHQsZSxpLHIsbyl7bGV0IHMsYT1udWxsPT09dDtmb3IoO3I+MDspe2xldCBsPW5bcl0sYz1BcnJheS5pc0FycmF5KGwpLGQ9Yz9sWzFdOmwsdT1udWxsPT09ZCxwPWVbcisxXTtwPT09em4mJihwPXU/amk6dm9pZCAwKTtsZXQgaD11P2hSKHAsaSk6ZD09PWk/cDp2b2lkIDA7aWYoYyYmIV9NKGgpJiYoaD1oUihsLGkpKSxfTShoKSYmKHM9aCxhKSlyZXR1cm4gcztsZXQgbT1uW3IrMV07cj1hP0twKG0pOmVmKG0pfWlmKG51bGwhPT10KXtsZXQgbD1vP3QucmVzaWR1YWxDbGFzc2VzOnQucmVzaWR1YWxTdHlsZXM7bnVsbCE9bCYmKHM9aFIobCxpKSl9cmV0dXJuIHN9ZnVuY3Rpb24gX00obil7cmV0dXJuIHZvaWQgMCE9PW59ZnVuY3Rpb24gQ1Uobix0KXtyZXR1cm4gMCE9KG4uZmxhZ3MmKHQ/ODoxNikpfWZ1bmN0aW9uIFQobix0PSIiKXtsZXQgZT1aZSgpLGk9VGkoKSxyPW4rR3Isbz1pLmZpcnN0Q3JlYXRlUGFzcz9wZihpLHIsMSx0LG51bGwpOmkuZGF0YVtyXSxhPWVbcl09c2soZVt1aV0sdCk7T00oaSxlLGEsbyksYWMobywhMSl9ZnVuY3Rpb24ga3Qobil7cmV0dXJuIFZlKCIiLG4sIiIpLGt0fWZ1bmN0aW9uIFZlKG4sdCxlKXtsZXQgaT1aZSgpLHI9bWYoaSxuLHQsZSk7cmV0dXJuIHIhPT16biYmb2QoaSxkYSgpLHIpLFZlfWZ1bmN0aW9uIGx1KG4sdCxlLGkscil7bGV0IG89WmUoKSxhPWZmKG8sbix0LGUsaSxyKTtyZXR1cm4gYSE9PXpuJiZvZChvLGRhKCksYSksbHV9ZnVuY3Rpb24gR00obix0LGUsaSxyLG8sYSl7bGV0IHM9WmUoKSxsPWdmKHMsbix0LGUsaSxyLG8sYSk7cmV0dXJuIGwhPT16biYmb2QocyxkYSgpLGwpLEdNfWZ1bmN0aW9uIGJiKG4sdCxlKXtFbChscyxoYyxtZihaZSgpLG4sdCxlKSwhMCl9ZnVuY3Rpb24gd28obix0LGUpe2xldCBpPVplKCk7cmV0dXJuIHFvKGksc2YoKSx0KSYmZHMoVGkoKSxQcigpLGksbix0LGlbdWldLGUsITApLHdvfWZ1bmN0aW9uIFdNKG4sdCxlKXtsZXQgaT1aZSgpO2lmKHFvKGksc2YoKSx0KSl7bGV0IG89VGkoKSxhPVByKCk7ZHMobyxhLGksbix0LHF6KFFQKG8uZGF0YSksYSxpKSxlLCEwKX1yZXR1cm4gV019dmFyIFZwPXZvaWQgMCxvY2U9WyJlbiIsW1siYSIsInAiXSxbIkFNIiwiUE0iXSxWcF0sW1siQU0iLCJQTSJdLFZwLFZwXSxbWyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sWyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sWyJTdSIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdXSxWcCxbWyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSxbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLFsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXV0sVnAsW1siQiIsIkEiXSxbIkJDIiwiQUQiXSxbIkJlZm9yZSBDaHJpc3QiLCJBbm5vIERvbWluaSJdXSwwLFs2LDBdLFsiTS9kL3l5IiwiTU1NIGQsIHkiLCJNTU1NIGQsIHkiLCJFRUVFLCBNTU1NIGQsIHkiXSxbImg6bW0gYSIsImg6bW06c3MgYSIsImg6bW06c3MgYSB6IiwiaDptbTpzcyBhIHp6enoiXSxbInsxfSwgezB9IixWcCwiezF9ICdhdCcgezB9IixWcF0sWyIuIiwiLCIsIjsiLCIlIiwiKyIsIi0iLCJFIiwiXHhkNyIsIlx1MjAzMCIsIlx1MjIxZSIsIk5hTiIsIjoiXSxbIiMsIyMwLiMjIyIsIiMsIyMwJSIsIlx4YTQjLCMjMC4wMCIsIiNFMCJdLCJVU0QiLCIkIiwiVVMgRG9sbGFyIix7fSwibHRyIixmdW5jdGlvbihuKXtsZXQgZT1NYXRoLmZsb29yKE1hdGguYWJzKG4pKSxpPW4udG9TdHJpbmcoKS5yZXBsYWNlKC9eW14uXSpcLj8vLCIiKS5sZW5ndGg7cmV0dXJuIDE9PT1lJiYwPT09aT8xOjV9XSxDUj17fTtmdW5jdGlvbiBGYShuKXtsZXQgdD1mdW5jdGlvbihuKXtyZXR1cm4gbi50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL18vZywiLSIpfShuKSxlPUhIKHQpO2lmKGUpcmV0dXJuIGU7bGV0IGk9dC5zcGxpdCgiLSIpWzBdO2lmKGU9SEgoaSksZSlyZXR1cm4gZTtpZigiZW4iPT09aSlyZXR1cm4gb2NlO3Rocm93IG5ldyB4dCg3MDEsITEpfWZ1bmN0aW9uIEhIKG4pe3JldHVybiBuIGluIENSfHwoQ1Jbbl09enIubmcmJnpyLm5nLmNvbW1vbiYmenIubmcuY29tbW9uLmxvY2FsZXMmJnpyLm5nLmNvbW1vbi5sb2NhbGVzW25dKSxDUltuXX12YXIgaHI9KCgpPT57cmV0dXJuKG49aHJ8fChocj17fSkpW24uTG9jYWxlSWQ9MF09IkxvY2FsZUlkIixuW24uRGF5UGVyaW9kc0Zvcm1hdD0xXT0iRGF5UGVyaW9kc0Zvcm1hdCIsbltuLkRheVBlcmlvZHNTdGFuZGFsb25lPTJdPSJEYXlQZXJpb2RzU3RhbmRhbG9uZSIsbltuLkRheXNGb3JtYXQ9M109IkRheXNGb3JtYXQiLG5bbi5EYXlzU3RhbmRhbG9uZT00XT0iRGF5c1N0YW5kYWxvbmUiLG5bbi5Nb250aHNGb3JtYXQ9NV09Ik1vbnRoc0Zvcm1hdCIsbltuLk1vbnRoc1N0YW5kYWxvbmU9Nl09Ik1vbnRoc1N0YW5kYWxvbmUiLG5bbi5FcmFzPTddPSJFcmFzIixuW24uRmlyc3REYXlPZldlZWs9OF09IkZpcnN0RGF5T2ZXZWVrIixuW24uV2Vla2VuZFJhbmdlPTldPSJXZWVrZW5kUmFuZ2UiLG5bbi5EYXRlRm9ybWF0PTEwXT0iRGF0ZUZvcm1hdCIsbltuLlRpbWVGb3JtYXQ9MTFdPSJUaW1lRm9ybWF0IixuW24uRGF0ZVRpbWVGb3JtYXQ9MTJdPSJEYXRlVGltZUZvcm1hdCIsbltuLk51bWJlclN5bWJvbHM9MTNdPSJOdW1iZXJTeW1ib2xzIixuW24uTnVtYmVyRm9ybWF0cz0xNF09Ik51bWJlckZvcm1hdHMiLG5bbi5DdXJyZW5jeUNvZGU9MTVdPSJDdXJyZW5jeUNvZGUiLG5bbi5DdXJyZW5jeVN5bWJvbD0xNl09IkN1cnJlbmN5U3ltYm9sIixuW24uQ3VycmVuY3lOYW1lPTE3XT0iQ3VycmVuY3lOYW1lIixuW24uQ3VycmVuY2llcz0xOF09IkN1cnJlbmNpZXMiLG5bbi5EaXJlY3Rpb25hbGl0eT0xOV09IkRpcmVjdGlvbmFsaXR5IixuW24uUGx1cmFsQ2FzZT0yMF09IlBsdXJhbENhc2UiLG5bbi5FeHRyYURhdGE9MjFdPSJFeHRyYURhdGEiLGhyO3ZhciBufSkoKSxzY2U9WyJ6ZXJvIiwib25lIiwidHdvIiwiZmV3IiwibWFueSJdO3ZhciBiTT0iZW4tVVMiLFZVPXttYXJrZXI6ImVsZW1lbnQifSxIVT17bWFya2VyOiJJQ1UifSx2bD0oKCk9PntyZXR1cm4obj12bHx8KHZsPXt9KSlbbi5TSElGVD0yXT0iU0hJRlQiLG5bbi5BUFBFTkRfRUFHRVJMWT0xXT0iQVBQRU5EX0VBR0VSTFkiLG5bbi5DT01NRU5UPTJdPSJDT01NRU5UIix2bDt2YXIgbn0pKCkselU9Yk07ZnVuY3Rpb24gVVUobix0LGUpe2xldCBpPXQuaW5zZXJ0QmVmb3JlSW5kZXgscj1BcnJheS5pc0FycmF5KGkpP2lbMF06aTtyZXR1cm4gbnVsbD09PXI/bnoobiwwLGUpOkxzKGVbcl0pfWZ1bmN0aW9uIGpVKG4sdCxlLGkscil7bGV0IG89dC5pbnNlcnRCZWZvcmVJbmRleDtpZihBcnJheS5pc0FycmF5KG8pKXtsZXQgYT1pLHM9bnVsbDtpZigzJnQudHlwZXx8KHM9YSxhPXIpLG51bGwhPT1hJiYtMT09PXQuY29tcG9uZW50T2Zmc2V0KWZvcihsZXQgbD0xO2w8by5sZW5ndGg7bCsrKVlwKG4sYSxlW29bbF1dLHMsITEpfX1mdW5jdGlvbiBHVShuLHQpe2lmKG4ucHVzaCh0KSxuLmxlbmd0aD4xKWZvcihsZXQgZT1uLmxlbmd0aC0yO2U+PTA7ZS0tKXtsZXQgaT1uW2VdO1dVKGkpfHxwY2UoaSx0KSYmbnVsbD09PWhjZShpKSYmbWNlKGksdC5pbmRleCl9fWZ1bmN0aW9uIFdVKG4pe3JldHVybiEoNjQmbi50eXBlKX1mdW5jdGlvbiBwY2Uobix0KXtyZXR1cm4gV1UodCl8fG4uaW5kZXg+dC5pbmRleH1mdW5jdGlvbiBoY2Uobil7bGV0IHQ9bi5pbnNlcnRCZWZvcmVJbmRleDtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90WzBdOnR9ZnVuY3Rpb24gbWNlKG4sdCl7bGV0IGU9bi5pbnNlcnRCZWZvcmVJbmRleDtBcnJheS5pc0FycmF5KGUpP2VbMF09dDoocnooVVUsalUpLG4uaW5zZXJ0QmVmb3JlSW5kZXg9dCl9ZnVuY3Rpb24gVV8obix0KXtsZXQgZT1uLmRhdGFbdF07cmV0dXJuIG51bGw9PT1lfHwic3RyaW5nIj09dHlwZW9mIGU/bnVsbDplLmhhc093blByb3BlcnR5KCJjdXJyZW50Q2FzZUxWaWV3SW5kZXgiKT9lOmUudmFsdWV9ZnVuY3Rpb24gX2NlKG4sdCxlKXtsZXQgaT1fayhuLGUsNjQsbnVsbCxudWxsKTtyZXR1cm4gR1UodCxpKSxpfWZ1bmN0aW9uIHFNKG4sdCl7bGV0IGU9dFtuLmN1cnJlbnRDYXNlTFZpZXdJbmRleF07cmV0dXJuIG51bGw9PT1lP2U6ZTwwP35lOmV9ZnVuY3Rpb24gYmNlKG4pe3JldHVybiBuPj4+MTd9ZnVuY3Rpb24gdmNlKG4pe3JldHVybigxMzEwNzAmbik+Pj4xfXZhciBlYj0wLGpfPTA7ZnVuY3Rpb24gcVUobix0LGUsaSl7bGV0IGEscj1lW3VpXSxvPW51bGw7Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspe2xldCBsPXRbc107aWYoInN0cmluZyI9PXR5cGVvZiBsKXtsZXQgYz10Wysrc107bnVsbD09PWVbY10mJihlW2NdPXNrKHIsbCkpfWVsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBsKXN3aXRjaCgxJmwpe2Nhc2UgMDpsZXQgZCx1LGM9YmNlKGwpO2lmKG51bGw9PT1vJiYobz1jLGE9a00ocixpKSksYz09PW8/KGQ9aSx1PWEpOihkPW51bGwsdT1McyhlW2NdKSksbnVsbCE9PXUpe2xldCBfPXZjZShsKTtZcChyLHUsZVtfXSxkLCExKTtsZXQgeT1VXyhuLF8pO2lmKG51bGwhPT15JiYib2JqZWN0Ij09dHlwZW9mIHkpe2xldCB4PXFNKHksZSk7bnVsbCE9PXgmJnFVKG4seS5jcmVhdGVbeF0sZSxlW3kuYW5jaG9ySWR4XSl9fWJyZWFrO2Nhc2UgMTpsZXQgaD10Wysrc10sbT10Wysrc107d2socixBTShsPj4+MSxlKSxudWxsLG51bGwsaCxtLG51bGwpfWVsc2Ugc3dpdGNoKGwpe2Nhc2UgSFU6bGV0IGM9dFsrK3NdLGQ9dFsrK3NdO251bGw9PT1lW2RdJiZzYyhlW2RdPWFhZShyLGMpLGUpO2JyZWFrO2Nhc2UgVlU6bGV0IHU9dFsrK3NdLHA9dFsrK3NdO251bGw9PT1lW3BdJiZzYyhlW3BdPWxrKHIsdSxudWxsKSxlKX19fWZ1bmN0aW9uIFhVKG4sdCxlLGkscil7Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDtvKyspe2xldCBhPWVbb10scz1lWysrb107aWYoYSZyKXtsZXQgbD0iIjtmb3IobGV0IGM9bysxO2M8PW8rcztjKyspe2xldCBkPWVbY107aWYoInN0cmluZyI9PXR5cGVvZiBkKWwrPWQ7ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIGQpaWYoZDwwKWwrPWpuKHRbaS1kXSk7ZWxzZXtsZXQgdT1kPj4+Mjtzd2l0Y2goMyZkKXtjYXNlIDE6bGV0IHA9ZVsrK2NdLGg9ZVsrK2NdLG09bi5kYXRhW3VdOyJzdHJpbmciPT10eXBlb2YgbT93ayh0W3VpXSx0W3VdLG51bGwsbSxwLGwsaCk6ZHMobixtLHQscCxsLHRbdWldLGgsITEpO2JyZWFrO2Nhc2UgMDpsZXQgXz10W3VdO251bGwhPT1fJiZRNSh0W3VpXSxfLGwpO2JyZWFrO2Nhc2UgMjp3Y2UobixVXyhuLHUpLHQsbCk7YnJlYWs7Y2FzZSAzOnpIKG4sVV8obix1KSxpLHQpfX19fWVsc2V7bGV0IGw9ZVtvKzFdO2lmKGw+MCYmMz09KDMmbCkpe2xldCBkPVVfKG4sbD4+PjIpO3RbZC5jdXJyZW50Q2FzZUxWaWV3SW5kZXhdPDAmJnpIKG4sZCxpLHQpfX1vKz1zfX1mdW5jdGlvbiB6SChuLHQsZSxpKXtsZXQgcj1pW3QuY3VycmVudENhc2VMVmlld0luZGV4XTtpZihudWxsIT09cil7bGV0IG89ZWI7cjwwJiYocj1pW3QuY3VycmVudENhc2VMVmlld0luZGV4XT1+cixvPS0xKSxYVShuLGksdC51cGRhdGVbcl0sZSxvKX19ZnVuY3Rpb24gd2NlKG4sdCxlLGkpe2xldCByPWZ1bmN0aW9uKG4sdCl7bGV0IGU9bi5jYXNlcy5pbmRleE9mKHQpO2lmKC0xPT09ZSlzd2l0Y2gobi50eXBlKXtjYXNlIDE6e2xldCBpPWZ1bmN0aW9uKG4sdCl7bGV0IGU9ZnVuY3Rpb24obil7cmV0dXJuIEZhKG4pW2hyLlBsdXJhbENhc2VdfSh0KShwYXJzZUludChuLDEwKSksaT1zY2VbZV07cmV0dXJuIHZvaWQgMCE9PWk/aToib3RoZXIifSh0LHpVKTtlPW4uY2FzZXMuaW5kZXhPZihpKSwtMT09PWUmJiJvdGhlciIhPT1pJiYoZT1uLmNhc2VzLmluZGV4T2YoIm90aGVyIikpO2JyZWFrfWNhc2UgMDplPW4uY2FzZXMuaW5kZXhPZigib3RoZXIiKX1yZXR1cm4tMT09PWU/bnVsbDplfSh0LGkpO2lmKHFNKHQsZSkhPT1yJiYoWVUobix0LGUpLGVbdC5jdXJyZW50Q2FzZUxWaWV3SW5kZXhdPW51bGw9PT1yP251bGw6fnIsbnVsbCE9PXIpKXtsZXQgYT1lW3QuYW5jaG9ySWR4XTthJiZxVShuLHQuY3JlYXRlW3JdLGUsYSl9fWZ1bmN0aW9uIFlVKG4sdCxlKXtsZXQgaT1xTSh0LGUpO2lmKG51bGwhPT1pKXtsZXQgcj10LnJlbW92ZVtpXTtmb3IobGV0IG89MDtvPHIubGVuZ3RoO28rKyl7bGV0IGE9cltvXTtpZihhPjApe2xldCBzPUFNKGEsZSk7bnVsbCE9PXMmJmNrKGVbdWldLHMpfWVsc2UgWVUobixVXyhuLH5hKSxlKX19fWZ1bmN0aW9uIEVjZSgpe2xldCBlLGksbj1bXSx0PS0xO2Z1bmN0aW9uIG8ocyxsKXt0PTA7bGV0IGM9cU0ocyxsKTtpPW51bGwhPT1jP3MucmVtb3ZlW2NdOmppfWZ1bmN0aW9uIGEoKXtpZih0PGkubGVuZ3RoKXtsZXQgcz1pW3QrK107cmV0dXJuIHM+MD9lW3NdOihuLnB1c2godCxpKSxvKGVbRm5dLmRhdGFbfnNdLGUpLGEoKSl9cmV0dXJuIDA9PT1uLmxlbmd0aD9udWxsOihpPW4ucG9wKCksdD1uLnBvcCgpLGEoKSl9cmV0dXJuIGZ1bmN0aW9uKHMsbCl7Zm9yKGU9bDtuLmxlbmd0aDspbi5wb3AoKTtyZXR1cm4gbyhzLnZhbHVlLGwpLGF9fXZhciB2TT0vXHVmZmZkKFxkKyk6P1xkKlx1ZmZmZC9naSxUY2U9Lyh7XHMqXHVmZmZkXGQrOj9cZCpcdWZmZmRccyosXHMqXFN7Nn1ccyosW1xzXFNdKn0pL2dpLERjZT0vXHVmZmZkKFxkKylcdWZmZmQvLFFVPS9eXHMqKFx1ZmZmZFxkKzo/XGQqXHVmZmZkKVxzKixccyooc2VsZWN0fHBsdXJhbClccyosLyxHXz0iXHVmZmZkIixJY2U9L1x1ZmZmZFwvP1wqKFxkKzpcZCspXHVmZmZkL2dpLEFjZT0vXHVmZmZkKFwvP1sjKl1cZCspOj9cZCpcdWZmZmQvZ2ksUmNlPS9cdUU1MDAvZztmdW5jdGlvbiBaVShuLHQsZSxpLHIsbyxhKXtsZXQgcz1mYihuLGksMSxudWxsKSxsPXM8PHZsLlNISUZULGM9Wl8oKTt0PT09YyYmKGM9bnVsbCksbnVsbD09PWMmJihsfD12bC5BUFBFTkRfRUFHRVJMWSksYSYmKGx8PXZsLkNPTU1FTlQsZnVuY3Rpb24obil7dm9pZCAwPT09R1ImJihHUj1uKCkpfShFY2UpKSxyLnB1c2gobCxudWxsPT09bz8iIjpvKTtsZXQgZD1fayhuLHMsYT8zMjoxLG51bGw9PT1vPyIiOm8sbnVsbCk7R1UoZSxkKTtsZXQgdT1kLmluZGV4O3JldHVybiBhYyhkLCExKSxudWxsIT09YyYmdCE9PWMmJmZ1bmN0aW9uKG4sdCl7bGV0IGU9bi5pbnNlcnRCZWZvcmVJbmRleDtudWxsPT09ZT8ocnooVVUsalUpLGU9bi5pbnNlcnRCZWZvcmVJbmRleD1bbnVsbCx0XSk6KGZ1bmN0aW9uKG4sdCxlKXsxIT1uJiZpNSgiRXhwZWN0aW5nIGFycmF5IGhlcmUiLG4sITAsIj09Iil9KEFycmF5LmlzQXJyYXkoZSkpLGUucHVzaCh0KSl9KGMsdSksZH1mdW5jdGlvbiBPY2Uobix0LGUsaSxyLG8sYSl7bGV0IHM9YS5tYXRjaCh2TSksbD1aVShuLHQsZSxvLGkscz9udWxsOmEsITEpO3MmJldfKHIsYSxsLmluZGV4LG51bGwsMCxudWxsKX1mdW5jdGlvbiBXXyhuLHQsZSxpLHIsbyl7bGV0IGE9bi5sZW5ndGgscz1hKzE7bi5wdXNoKG51bGwsbnVsbCk7bGV0IGw9YSsyLGM9dC5zcGxpdCh2TSksZD0wO2ZvcihsZXQgdT0wO3U8Yy5sZW5ndGg7dSsrKXtsZXQgcD1jW3VdO2lmKDEmdSl7bGV0IGg9citwYXJzZUludChwLDEwKTtuLnB1c2goLTEtaCksZHw9S1UoaCl9ZWxzZSIiIT09cCYmbi5wdXNoKHApfXJldHVybiBuLnB1c2goZTw8MnwoaT8xOjApKSxpJiZuLnB1c2goaSxvKSxuW2FdPWQsbltzXT1uLmxlbmd0aC1sLGR9ZnVuY3Rpb24gTmNlKG4pe2xldCB0PTA7Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKyspe2xldCBpPW5bZV07Im51bWJlciI9PXR5cGVvZiBpJiZpPDAmJnQrK31yZXR1cm4gdH1mdW5jdGlvbiBLVShuKXtyZXR1cm4gMTw8TWF0aC5taW4obiwzMSl9ZnVuY3Rpb24gVUgobil7bGV0IHQsbyxlPSIiLGk9MCxyPSExO2Zvcig7bnVsbCE9PSh0PUljZS5leGVjKG4pKTspcj90WzBdPT09YCR7R199Lyoke299JHtHX31gJiYoaT10LmluZGV4LHI9ITEpOihlKz1uLnN1YnN0cmluZyhpLHQuaW5kZXgrdFswXS5sZW5ndGgpLG89dFsxXSxyPSEwKTtyZXR1cm4gZSs9bi5zbGljZShpKSxlfWZ1bmN0aW9uIEpVKG4sdCxlLGkscixvKXtsZXQgYT0wLHM9e3R5cGU6ci50eXBlLGN1cnJlbnRDYXNlTFZpZXdJbmRleDpmYihuLHQsMSxudWxsKSxhbmNob3JJZHg6byxjYXNlczpbXSxjcmVhdGU6W10scmVtb3ZlOltdLHVwZGF0ZTpbXX07KGZ1bmN0aW9uKG4sdCxlKXtuLnB1c2goS1UodC5tYWluQmluZGluZyksMiwtMS10Lm1haW5CaW5kaW5nLGU8PDJ8Mil9KShlLHIsbyksZnVuY3Rpb24obix0LGUpe2xldCBpPW4uZGF0YVt0XTtudWxsPT09aT9uLmRhdGFbdF09ZTppLnZhbHVlPWV9KG4sbyxzKTtsZXQgbD1yLnZhbHVlcztmb3IobGV0IGM9MDtjPGwubGVuZ3RoO2MrKyl7bGV0IGQ9bFtjXSx1PVtdO2ZvcihsZXQgcD0wO3A8ZC5sZW5ndGg7cCsrKXtsZXQgaD1kW3BdO2lmKCJzdHJpbmciIT10eXBlb2YgaCl7bGV0IG09dS5wdXNoKGgpLTE7ZFtwXT1gXHgzYyEtLVx1ZmZmZCR7bX1cdWZmZmQtLVx4M2VgfX1hPUhjZShuLHMsdCxlLGksci5jYXNlc1tjXSxkLmpvaW4oIiIpLHUpfGF9YSYmZnVuY3Rpb24obix0LGUpe24ucHVzaCh0LDEsZTw8MnwzKX0oZSxhLG8pfWZ1bmN0aW9uIFZjZShuKXtsZXQgdD1bXSxlPVtdLGk9MSxyPTAsbz15UChuPW4ucmVwbGFjZShRVSxmdW5jdGlvbihhLHMsbCl7cmV0dXJuIGk9InNlbGVjdCI9PT1sPzA6MSxyPXBhcnNlSW50KHMuc2xpY2UoMSksMTApLCIifSkpO2ZvcihsZXQgYT0wO2E8by5sZW5ndGg7KXtsZXQgcz1vW2ErK10udHJpbSgpOzE9PT1pJiYocz1zLnJlcGxhY2UoL1xzKig/Oj0pPyhcdyspXHMqLywiJDEiKSkscy5sZW5ndGgmJnQucHVzaChzKTtsZXQgbD15UChvW2ErK10pO3QubGVuZ3RoPmUubGVuZ3RoJiZlLnB1c2gobCl9cmV0dXJue3R5cGU6aSxtYWluQmluZGluZzpyLGNhc2VzOnQsdmFsdWVzOmV9fWZ1bmN0aW9uIHlQKG4pe2lmKCFuKXJldHVybltdO2xldCBvLHQ9MCxlPVtdLGk9W10scj0vW3t9XS9nO2ZvcihyLmxhc3RJbmRleD0wO289ci5leGVjKG4pOyl7bGV0IHM9by5pbmRleDtpZigifSI9PW9bMF0pe2lmKGUucG9wKCksMD09ZS5sZW5ndGgpe2xldCBsPW4uc3Vic3RyaW5nKHQscyk7UVUudGVzdChsKT9pLnB1c2goVmNlKGwpKTppLnB1c2gobCksdD1zKzF9fWVsc2V7aWYoMD09ZS5sZW5ndGgpe2xldCBsPW4uc3Vic3RyaW5nKHQscyk7aS5wdXNoKGwpLHQ9cysxfWUucHVzaCgieyIpfX1sZXQgYT1uLnN1YnN0cmluZyh0KTtyZXR1cm4gaS5wdXNoKGEpLGl9ZnVuY3Rpb24gSGNlKG4sdCxlLGkscixvLGEscyl7bGV0IGw9W10sYz1bXSxkPVtdO3QuY2FzZXMucHVzaChvKSx0LmNyZWF0ZS5wdXNoKGwpLHQucmVtb3ZlLnB1c2goYyksdC51cGRhdGUucHVzaChkKTtsZXQgcD1feih1eigpKS5nZXRJbmVydEJvZHlFbGVtZW50KGEpLGg9clAocCl8fHA7cmV0dXJuIGg/JFUobix0LGUsaSxsLGMsZCxoLHIscywwKTowfWZ1bmN0aW9uICRVKG4sdCxlLGkscixvLGEscyxsLGMsZCl7bGV0IHU9MCxwPXMuZmlyc3RDaGlsZDtmb3IoO3A7KXtsZXQgaD1mYihuLGUsMSxudWxsKTtzd2l0Y2gocC5ub2RlVHlwZSl7Y2FzZSBOb2RlLkVMRU1FTlRfTk9ERTpsZXQgbT1wLF89bS50YWdOYW1lLnRvTG93ZXJDYXNlKCk7aWYoblAuaGFzT3duUHJvcGVydHkoXykpe01SKHIsVlUsXyxsLGgpLG4uZGF0YVtoXT1fO2xldCBSPW0uYXR0cmlidXRlcztmb3IobGV0IEk9MDtJPFIubGVuZ3RoO0krKyl7bGV0IEI9Ui5pdGVtKEkpLGVlPUIubmFtZS50b0xvd2VyQ2FzZSgpO0IudmFsdWUubWF0Y2godk0pP3h6Lmhhc093blByb3BlcnR5KGVlKSYmV18oYSxCLnZhbHVlLGgsQi5uYW1lLDAscGtbZWVdP3BiOm51bGwpOkdjZShyLGgsQil9dT0kVShuLHQsZSxpLHIsbyxhLHAsaCxjLGQrMSl8dSxqSChvLGgsZCl9YnJlYWs7Y2FzZSBOb2RlLlRFWFRfTk9ERTpsZXQgTT1wLnRleHRDb250ZW50fHwiIix5PU0ubWF0Y2godk0pO01SKHIsbnVsbCx5PyIiOk0sbCxoKSxqSChvLGgsZCkseSYmKHU9V18oYSxNLGgsbnVsbCwwLG51bGwpfHUpO2JyZWFrO2Nhc2UgTm9kZS5DT01NRU5UX05PREU6bGV0IHg9RGNlLmV4ZWMocC50ZXh0Q29udGVudHx8IiIpO2lmKHgpe2xldCBJPWNbcGFyc2VJbnQoeFsxXSwxMCldO01SKHIsSFUsIiIsbCxoKSxKVShuLGUsaSxsLEksaCksemNlKG8saCxkKX19cD1wLm5leHRTaWJsaW5nfXJldHVybiB1fWZ1bmN0aW9uIGpIKG4sdCxlKXswPT09ZSYmbi5wdXNoKHQpfWZ1bmN0aW9uIHpjZShuLHQsZSl7MD09PWUmJihuLnB1c2gofnQpLG4ucHVzaCh0KSl9ZnVuY3Rpb24gTVIobix0LGUsaSxyKXtudWxsIT09dCYmbi5wdXNoKHQpLG4ucHVzaChlLHIsZnVuY3Rpb24obix0LGUpe3JldHVybiAwfHQ8PDE3fGU8PDF9KDAsaSxyKSl9ZnVuY3Rpb24gR2NlKG4sdCxlKXtuLnB1c2godDw8MXwxLGUubmFtZSxlLnZhbHVlKX12YXIgR0g9MCxXY2U9L1xbKFx1ZmZmZC4rP1x1ZmZmZD8pXF0vLHFjZT0vXFsoXHVmZmZkLis/XHVmZmZkPylcXXwoXHVmZmZkXC8/XCpcZCs6XGQrXHVmZmZkKS9nLFhjZT0vKHtccyopKFZBUl8oUExVUkFMfFNFTEVDVCkoX1xkKyk/KShccyosKS9nLFljZT0veyhbQS1aMC05X10rKX0vZyxRY2U9L1x1ZmZmZEkxOE5fRVhQXyhJQ1UoX1xkKyk/KVx1ZmZmZC9nLFpjZT0vXC9cKi8sS2NlPS9cZCtcOihcZCspLztmdW5jdGlvbiBlaihuLHQsZT0tMSl7bGV0IGk9VGkoKSxyPVplKCksbz1HcituLGE9bnUoaS5jb25zdHMsdCkscz1aXygpO2kuZmlyc3RDcmVhdGVQYXNzJiZmdW5jdGlvbihuLHQsZSxpLHIsbyl7bGV0IGE9Wl8oKSxzPVtdLGw9W10sYz1bW11dO3I9ZnVuY3Rpb24obix0KXtpZihmdW5jdGlvbihuKXtyZXR1cm4tMT09PW59KHQpKXJldHVybiBVSChuKTt7bGV0IGU9bi5pbmRleE9mKGA6JHt0fSR7R199YCkrMit0LnRvU3RyaW5nKCkubGVuZ3RoLGk9bi5zZWFyY2gobmV3IFJlZ0V4cChgJHtHX31cXC9cXCpcXGQrOiR7dH0ke0dffWApKTtyZXR1cm4gVUgobi5zdWJzdHJpbmcoZSxpKSl9fShyLG8pO2xldCBkPWZ1bmN0aW9uKG4pe3JldHVybiBuLnJlcGxhY2UoUmNlLCIgIil9KHIpLnNwbGl0KEFjZSk7Zm9yKGxldCB1PTA7dTxkLmxlbmd0aDt1Kyspe2xldCBwPWRbdV07aWYoMD09KDEmdSkpe2xldCBoPXlQKHApO2ZvcihsZXQgbT0wO208aC5sZW5ndGg7bSsrKXtsZXQgXz1oW21dO2lmKDA9PSgxJm0pKSIiIT09XyYmT2NlKG4sYSxjWzBdLHMsbCxlLF8pO2Vsc2V7bGV0IE09XztpZigib2JqZWN0IiE9dHlwZW9mIE0pdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gcGFyc2UgSUNVIGV4cHJlc3Npb24gaW4gIiR7cn0iIG1lc3NhZ2UuYCk7SlUobixlLGwsdCxNLFpVKG4sYSxjWzBdLGUscywiIiwhMCkuaW5kZXgpfX19ZWxzZXtsZXQgaD00Nz09PXAuY2hhckNvZGVBdCgwKSxfPShwLmNoYXJDb2RlQXQoaD8xOjApLEdyK051bWJlci5wYXJzZUludChwLnN1YnN0cmluZyhoPzI6MSkpKTtpZihoKWMuc2hpZnQoKSxhYyhaXygpLCExKTtlbHNle2xldCBNPV9jZShuLGNbMF0sXyk7Yy51bnNoaWZ0KFtdKSxhYyhNLCEwKX19fW4uZGF0YVtpXT17Y3JlYXRlOnMsdXBkYXRlOmx9fShpLG51bGw9PT1zPzA6cy5pbmRleCxyLG8sYSxlKTtsZXQgbD1pLmRhdGFbb10sZD0kNShpLHM9PT1yW0FhXT9udWxsOnMscik7KGZ1bmN0aW9uKG4sdCxlLGkpe2xldCByPW5bdWldO2ZvcihsZXQgbz0wO288dC5sZW5ndGg7bysrKXtsZXQgYT10W28rK10scz10W29dLGM9KGEmdmwuQVBQRU5EX0VBR0VSTFkpPT09dmwuQVBQRU5EX0VBR0VSTFksZD1hPj4+dmwuU0hJRlQsdT1uW2RdO251bGw9PT11JiYodT1uW2RdPShhJnZsLkNPTU1FTlQpPT09dmwuQ09NTUVOVD9yLmNyZWF0ZUNvbW1lbnQocyk6c2socixzKSksYyYmbnVsbCE9PWUmJllwKHIsZSx1LGksITEpfX0pKHIsbC5jcmVhdGUsZCxzJiY4JnMudHlwZT9yW3MuaW5kZXhdOm51bGwpLE01KCEwKX1mdW5jdGlvbiB0aigpe001KCExKX1mdW5jdGlvbiBYTShuLHQsZSl7ZWoobix0LGUpLHRqKCl9ZnVuY3Rpb24gdmIobil7cmV0dXJuIGZ1bmN0aW9uKG4pe24mJihlYnw9MTw8TWF0aC5taW4oal8sMzEpKSxqXysrfShxbyhaZSgpLHNmKCksbikpLHZifWZ1bmN0aW9uIFlNKG4peyFmdW5jdGlvbihuLHQsZSl7aWYoal8+MCl7bGV0IGk9bi5kYXRhW2VdO1hVKG4sdCxBcnJheS5pc0FycmF5KGkpP2k6aS51cGRhdGUsdGQoKS1qXy0xLGViKX1lYj0wLGpfPTB9KFRpKCksWmUoKSxuK0dyKX1mdW5jdGlvbiBRTShuLHQ9e30pe3JldHVybiBmdW5jdGlvbihuLHQ9e30pe2xldCBlPW47aWYoV2NlLnRlc3Qobikpe2xldCBpPXt9LHI9W0dIXTtlPWUucmVwbGFjZShxY2UsKG8sYSxzKT0+e2xldCBsPWF8fHMsYz1pW2xdfHxbXTtpZihjLmxlbmd0aHx8KGwuc3BsaXQoInwiKS5mb3JFYWNoKF89PntsZXQgTT1fLm1hdGNoKEtjZSkseT1NP3BhcnNlSW50KE1bMV0sMTApOkdILHg9WmNlLnRlc3QoXyk7Yy5wdXNoKFt5LHgsX10pfSksaVtsXT1jKSwhYy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBpMThuIHBvc3Rwcm9jZXNzOiB1bm1hdGNoZWQgcGxhY2Vob2xkZXIgLSAke2x9YCk7bGV0IGQ9cltyLmxlbmd0aC0xXSx1PTA7Zm9yKGxldCBfPTA7XzxjLmxlbmd0aDtfKyspaWYoY1tfXVswXT09PWQpe3U9XzticmVha31sZXRbcCxoLG1dPWNbdV07cmV0dXJuIGg/ci5wb3AoKTpkIT09cCYmci5wdXNoKHApLGMuc3BsaWNlKHUsMSksbX0pfXJldHVybiBPYmplY3Qua2V5cyh0KS5sZW5ndGgmJihlPWUucmVwbGFjZShYY2UsKGkscixvLGEscyxsKT0+dC5oYXNPd25Qcm9wZXJ0eShvKT9gJHtyfSR7dFtvXX0ke2x9YDppKSxlPWUucmVwbGFjZShZY2UsKGkscik9PnQuaGFzT3duUHJvcGVydHkocik/dFtyXTppKSxlPWUucmVwbGFjZShRY2UsKGkscik9PntpZih0Lmhhc093blByb3BlcnR5KHIpKXtsZXQgbz10W3JdO2lmKCFvLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYGkxOG4gcG9zdHByb2Nlc3M6IHVubWF0Y2hlZCBJQ1UgLSAke2l9IHdpdGgga2V5OiAke3J9YCk7cmV0dXJuIG8uc2hpZnQoKX1yZXR1cm4gaX0pKSxlfShuLHQpfWZ1bmN0aW9uIHhQKG4sdCxlLGkscil7aWYobj1BaShuKSxBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgbz0wO288bi5sZW5ndGg7bysrKXhQKG5bb10sdCxlLGkscik7ZWxzZXtsZXQgbz1UaSgpLGE9WmUoKSxzPSRtKG4pP246QWkobi5wcm92aWRlKSxsPUR6KG4pLGM9TG8oKSxkPTEwNDg1NzUmYy5wcm92aWRlckluZGV4ZXMsdT1jLmRpcmVjdGl2ZVN0YXJ0LHA9Yy5wcm92aWRlckluZGV4ZXM+PjIwO2lmKCRtKG4pfHwhbi5tdWx0aSl7bGV0IGg9bmV3IHFwKGwscixDKSxtPVNSKHMsdCxyP2Q6ZCtwLHUpOy0xPT09bT8oelIoY00oYyxhKSxvLHMpLHdSKG8sbix0Lmxlbmd0aCksdC5wdXNoKHMpLGMuZGlyZWN0aXZlU3RhcnQrKyxjLmRpcmVjdGl2ZUVuZCsrLHImJihjLnByb3ZpZGVySW5kZXhlcys9MTA0ODU3NiksZS5wdXNoKGgpLGEucHVzaChoKSk6KGVbbV09aCxhW21dPWgpfWVsc2V7bGV0IGg9U1Iocyx0LGQrcCx1KSxtPVNSKHMsdCxkLGQrcCksTT1tPj0wJiZlW21dO2lmKHImJiFNfHwhciYmIShoPj0wJiZlW2hdKSl7elIoY00oYyxhKSxvLHMpO2xldCB5PWZ1bmN0aW9uKG4sdCxlLGkscil7bGV0IG89bmV3IHFwKG4sZSxDKTtyZXR1cm4gby5tdWx0aT1bXSxvLmluZGV4PXQsby5jb21wb25lbnRQcm92aWRlcnM9MCxuaihvLHIsaSYmIWUpLG99KHI/bmRlOnRkZSxlLmxlbmd0aCxyLGksbCk7IXImJk0mJihlW21dLnByb3ZpZGVyRmFjdG9yeT15KSx3UihvLG4sdC5sZW5ndGgsMCksdC5wdXNoKHMpLGMuZGlyZWN0aXZlU3RhcnQrKyxjLmRpcmVjdGl2ZUVuZCsrLHImJihjLnByb3ZpZGVySW5kZXhlcys9MTA0ODU3NiksZS5wdXNoKHkpLGEucHVzaCh5KX1lbHNlIHdSKG8sbixoPi0xP2g6bSxuaihlW3I/bTpoXSxsLCFyJiZpKSk7IXImJmkmJk0mJmVbbV0uY29tcG9uZW50UHJvdmlkZXJzKyt9fX1mdW5jdGlvbiB3UihuLHQsZSxpKXtsZXQgcj0kbSh0KSxvPWZ1bmN0aW9uKG4pe3JldHVybiEhbi51c2VDbGFzc30odCk7aWYocnx8byl7bGV0IGw9KG8/QWkodC51c2VDbGFzcyk6dCkucHJvdG90eXBlLm5nT25EZXN0cm95O2lmKGwpe2xldCBjPW4uZGVzdHJveUhvb2tzfHwobi5kZXN0cm95SG9va3M9W10pO2lmKCFyJiZ0Lm11bHRpKXtsZXQgZD1jLmluZGV4T2YoZSk7LTE9PT1kP2MucHVzaChlLFtpLGxdKTpjW2QrMV0ucHVzaChpLGwpfWVsc2UgYy5wdXNoKGUsbCl9fX1mdW5jdGlvbiBuaihuLHQsZSl7cmV0dXJuIGUmJm4uY29tcG9uZW50UHJvdmlkZXJzKyssbi5tdWx0aS5wdXNoKHQpLTF9ZnVuY3Rpb24gU1Iobix0LGUsaSl7Zm9yKGxldCByPWU7cjxpO3IrKylpZih0W3JdPT09bilyZXR1cm4gcjtyZXR1cm4tMX1mdW5jdGlvbiB0ZGUobix0LGUsaSl7cmV0dXJuIENQKHRoaXMubXVsdGksW10pfWZ1bmN0aW9uIG5kZShuLHQsZSxpKXtsZXQgbyxyPXRoaXMubXVsdGk7aWYodGhpcy5wcm92aWRlckZhY3Rvcnkpe2xldCBhPXRoaXMucHJvdmlkZXJGYWN0b3J5LmNvbXBvbmVudFByb3ZpZGVycyxzPVhwKGUsZVtGbl0sdGhpcy5wcm92aWRlckZhY3RvcnkuaW5kZXgsaSk7bz1zLnNsaWNlKDAsYSksQ1AocixvKTtmb3IobGV0IGw9YTtsPHMubGVuZ3RoO2wrKylvLnB1c2goc1tsXSl9ZWxzZSBvPVtdLENQKHIsbyk7cmV0dXJuIG99ZnVuY3Rpb24gQ1Aobix0KXtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrKyl0LnB1c2goKDAsbltlXSkoKSk7cmV0dXJuIHR9ZnVuY3Rpb24gVnQobix0PVtdKXtyZXR1cm4gZT0+e2UucHJvdmlkZXJzUmVzb2x2ZXI9KGkscik9PmZ1bmN0aW9uKG4sdCxlKXtsZXQgaT1UaSgpO2lmKGkuZmlyc3RDcmVhdGVQYXNzKXtsZXQgcj1DbChuKTt4UChlLGkuZGF0YSxpLmJsdWVwcmludCxyLCEwKSx4UCh0LGkuZGF0YSxpLmJsdWVwcmludCxyLCExKX19KGkscj9yKG4pOm4sdCl9fXZhciBpdT1jbGFzc3t9LE1QPWNsYXNze30sd1A9Y2xhc3MgZXh0ZW5kcyBpdXtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5fcGFyZW50PWUsdGhpcy5fYm9vdHN0cmFwQ29tcG9uZW50cz1bXSx0aGlzLmRlc3Ryb3lDYnM9W10sdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9bmV3IGZNKHRoaXMpO2xldCBpPVptKHQpO3RoaXMuX2Jvb3RzdHJhcENvbXBvbmVudHM9UUMoaS5ib290c3RyYXApLHRoaXMuX3IzSW5qZWN0b3I9RnoodCxlLFt7cHJvdmlkZTppdSx1c2VWYWx1ZTp0aGlzfSx7cHJvdmlkZTpobyx1c2VWYWx1ZTp0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcn1dLHBvKHQpLG5ldyBTZXQoWyJlbnZpcm9ubWVudCJdKSksdGhpcy5fcjNJbmplY3Rvci5yZXNvbHZlSW5qZWN0b3JJbml0aWFsaXplcnMoKSx0aGlzLmluc3RhbmNlPXRoaXMuX3IzSW5qZWN0b3IuZ2V0KHQpfWdldCBpbmplY3Rvcigpe3JldHVybiB0aGlzLl9yM0luamVjdG9yfWRlc3Ryb3koKXtsZXQgdD10aGlzLl9yM0luamVjdG9yOyF0LmRlc3Ryb3llZCYmdC5kZXN0cm95KCksdGhpcy5kZXN0cm95Q2JzLmZvckVhY2goZT0+ZSgpKSx0aGlzLmRlc3Ryb3lDYnM9bnVsbH1vbkRlc3Ryb3kodCl7dGhpcy5kZXN0cm95Q2JzLnB1c2godCl9fSxTUD1jbGFzcyBleHRlbmRzIE1Qe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5tb2R1bGVUeXBlPXR9Y3JlYXRlKHQpe3JldHVybiBuZXcgd1AodGhpcy5tb2R1bGVUeXBlLHQpfX0sRVA9Y2xhc3MgZXh0ZW5kcyBpdXtjb25zdHJ1Y3Rvcih0LGUsaSl7c3VwZXIoKSx0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcj1uZXcgZk0odGhpcyksdGhpcy5pbnN0YW5jZT1udWxsO2xldCByPW5ldyBwTShbLi4udCx7cHJvdmlkZTppdSx1c2VWYWx1ZTp0aGlzfSx7cHJvdmlkZTpobyx1c2VWYWx1ZTp0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcn1dLGV8fGdrKCksaSxuZXcgU2V0KFsiZW52aXJvbm1lbnQiXSkpO3RoaXMuaW5qZWN0b3I9cixyLnJlc29sdmVJbmplY3RvckluaXRpYWxpemVycygpfWRlc3Ryb3koKXt0aGlzLmluamVjdG9yLmRlc3Ryb3koKX1vbkRlc3Ryb3kodCl7dGhpcy5pbmplY3Rvci5vbkRlc3Ryb3kodCl9fSxvZGU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLl9pbmplY3Rvcj1lLHRoaXMuY2FjaGVkSW5qZWN0b3JzPW5ldyBNYXB9Z2V0T3JDcmVhdGVTdGFuZGFsb25lSW5qZWN0b3IoZSl7aWYoIWUuc3RhbmRhbG9uZSlyZXR1cm4gbnVsbDtpZighdGhpcy5jYWNoZWRJbmplY3RvcnMuaGFzKGUuaWQpKXtsZXQgaT1TeigwLGUudHlwZSkscj1pLmxlbmd0aD4wP2Z1bmN0aW9uKG4sdCxlPW51bGwpe3JldHVybiBuZXcgRVAobix0LGUpLmluamVjdG9yfShbaV0sdGhpcy5faW5qZWN0b3IsYFN0YW5kYWxvbmVbJHtlLnR5cGUubmFtZX1dYCk6bnVsbDt0aGlzLmNhY2hlZEluamVjdG9ycy5zZXQoZS5pZCxyKX1yZXR1cm4gdGhpcy5jYWNoZWRJbmplY3RvcnMuZ2V0KGUuaWQpfW5nT25EZXN0cm95KCl7dHJ5e2ZvcihsZXQgZSBvZiB0aGlzLmNhY2hlZEluamVjdG9ycy52YWx1ZXMoKSludWxsIT09ZSYmZS5kZXN0cm95KCl9ZmluYWxseXt0aGlzLmNhY2hlZEluamVjdG9ycy5jbGVhcigpfX19cmV0dXJuIG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixwcm92aWRlZEluOiJlbnZpcm9ubWVudCIsZmFjdG9yeTooKT0+bmV3IG4oTyhsYykpfSksbn0pKCk7ZnVuY3Rpb24gQWsobil7bi5nZXRTdGFuZGFsb25lSW5qZWN0b3I9dD0+dC5nZXQob2RlKS5nZXRPckNyZWF0ZVN0YW5kYWxvbmVJbmplY3RvcihuKX1mdW5jdGlvbiBtYyhuLHQsZSl7bGV0IGk9Y2EoKStuLHI9WmUoKTtyZXR1cm4gcltpXT09PXpuP3BjKHIsaSxlP3QuY2FsbChlKTp0KCkpOmdiKHIsaSl9ZnVuY3Rpb24gVW4obix0LGUsaSl7cmV0dXJuIGlqKFplKCksY2EoKSxuLHQsZSxpKX1mdW5jdGlvbiBTbyhuLHQsZSxpLHIpe3JldHVybiByaihaZSgpLGNhKCksbix0LGUsaSxyKX1mdW5jdGlvbiB5YihuLHQsZSxpLHIsbyl7cmV0dXJuIG9qKFplKCksY2EoKSxuLHQsZSxpLHIsbyl9ZnVuY3Rpb24gUmsobix0LGUsaSxyLG8sYSl7cmV0dXJuIGFqKFplKCksY2EoKSxuLHQsZSxpLHIsbyxhKX1mdW5jdGlvbiBQayhuLHQsZSxpLHIsbyxhLHMpe2xldCBsPWNhKCkrbixjPVplKCksZD1CcyhjLGwsZSxpLHIsbyk7cmV0dXJuIHFvKGMsbCs0LGEpfHxkP3BjKGMsbCs1LHM/dC5jYWxsKHMsZSxpLHIsbyxhKTp0KGUsaSxyLG8sYSkpOmdiKGMsbCs1KX1mdW5jdGlvbiB4YihuLHQpe2xldCBlPW5bdF07cmV0dXJuIGU9PT16bj92b2lkIDA6ZX1mdW5jdGlvbiBpaihuLHQsZSxpLHIsbyl7bGV0IGE9dCtlO3JldHVybiBxbyhuLGEscik/cGMobixhKzEsbz9pLmNhbGwobyxyKTppKHIpKTp4YihuLGErMSl9ZnVuY3Rpb24gcmoobix0LGUsaSxyLG8sYSl7bGV0IHM9dCtlO3JldHVybiBacChuLHMscixvKT9wYyhuLHMrMixhP2kuY2FsbChhLHIsbyk6aShyLG8pKTp4YihuLHMrMil9ZnVuY3Rpb24gb2oobix0LGUsaSxyLG8sYSxzKXtsZXQgbD10K2U7cmV0dXJuIHpNKG4sbCxyLG8sYSk/cGMobixsKzMscz9pLmNhbGwocyxyLG8sYSk6aShyLG8sYSkpOnhiKG4sbCszKX1mdW5jdGlvbiBhaihuLHQsZSxpLHIsbyxhLHMsbCl7bGV0IGM9dCtlO3JldHVybiBCcyhuLGMscixvLGEscyk/cGMobixjKzQsbD9pLmNhbGwobCxyLG8sYSxzKTppKHIsbyxhLHMpKTp4YihuLGMrNCl9ZnVuY3Rpb24gc2oobix0LGUsaSxyLG8pe2xldCBhPXQrZSxzPSExO2ZvcihsZXQgbD0wO2w8ci5sZW5ndGg7bCsrKXFvKG4sYSsrLHJbbF0pJiYocz0hMCk7cmV0dXJuIHM/cGMobixhLGkuYXBwbHkobyxyKSk6eGIobixhKX1mdW5jdGlvbiBVKG4sdCl7bGV0IGksZT1UaSgpLHI9bitHcjtlLmZpcnN0Q3JlYXRlUGFzcz8oaT1mdW5jdGlvbihuLHQpe2lmKHQpZm9yKGxldCBlPXQubGVuZ3RoLTE7ZT49MDtlLS0pe2xldCBpPXRbZV07aWYobj09PWkubmFtZSlyZXR1cm4gaX19KHQsZS5waXBlUmVnaXN0cnkpLGUuZGF0YVtyXT1pLGkub25EZXN0cm95JiYoZS5kZXN0cm95SG9va3M/PyhlLmRlc3Ryb3lIb29rcz1bXSkpLnB1c2gocixpLm9uRGVzdHJveSkpOmk9ZS5kYXRhW3JdO2xldCBvPWkuZmFjdG9yeXx8KGkuZmFjdG9yeT1HcChpLnR5cGUpKSxhPVBzKEMpO3RyeXtsZXQgcz1sTSghMSksbD1vKCk7cmV0dXJuIGxNKHMpLGZ1bmN0aW9uKG4sdCxlLGkpe2U+PW4uZGF0YS5sZW5ndGgmJihuLmRhdGFbZV09bnVsbCxuLmJsdWVwcmludFtlXT1udWxsKSx0W2VdPWl9KGUsWmUoKSxyLGwpLGx9ZmluYWxseXtQcyhhKX19ZnVuY3Rpb24gRyhuLHQsZSl7bGV0IGk9bitHcixyPVplKCksbz1hZihyLGkpO3JldHVybiBDYihyLGkpP2lqKHIsY2EoKSx0LG8udHJhbnNmb3JtLGUsbyk6by50cmFuc2Zvcm0oZSl9ZnVuY3Rpb24gSnAobix0LGUsaSl7bGV0IHI9bitHcixvPVplKCksYT1hZihvLHIpO3JldHVybiBDYihvLHIpP3JqKG8sY2EoKSx0LGEudHJhbnNmb3JtLGUsaSxhKTphLnRyYW5zZm9ybShlLGkpfWZ1bmN0aW9uIGtrKG4sdCxlLGkscil7bGV0IG89bitHcixhPVplKCkscz1hZihhLG8pO3JldHVybiBDYihhLG8pP29qKGEsY2EoKSx0LHMudHJhbnNmb3JtLGUsaSxyLHMpOnMudHJhbnNmb3JtKGUsaSxyKX1mdW5jdGlvbiBDYihuLHQpe3JldHVybiBuW0ZuXS5kYXRhW3RdLnB1cmV9ZnVuY3Rpb24gRVIobil7cmV0dXJuIHQ9PntzZXRUaW1lb3V0KG4sdm9pZCAwLHQpfX12YXIgRj1jbGFzcyBleHRlbmRzIEVle2NvbnN0cnVjdG9yKHQ9ITEpe3N1cGVyKCksdGhpcy5fX2lzQXN5bmM9dH1lbWl0KHQpe3N1cGVyLm5leHQodCl9c3Vic2NyaWJlKHQsZSxpKXtsZXQgcj10LG89ZXx8KCgpPT5udWxsKSxhPWk7aWYodCYmIm9iamVjdCI9PXR5cGVvZiB0KXtsZXQgbD10O3I9bC5uZXh0Py5iaW5kKGwpLG89bC5lcnJvcj8uYmluZChsKSxhPWwuY29tcGxldGU/LmJpbmQobCl9dGhpcy5fX2lzQXN5bmMmJihvPUVSKG8pLHImJihyPUVSKHIpKSxhJiYoYT1FUihhKSkpO2xldCBzPXN1cGVyLnN1YnNjcmliZSh7bmV4dDpyLGVycm9yOm8sY29tcGxldGU6YX0pO3JldHVybiB0IGluc3RhbmNlb2YgRW4mJnQuYWRkKHMpLHN9fTtmdW5jdGlvbiBoZGUoKXtyZXR1cm4gdGhpcy5fcmVzdWx0c1tTeW1ib2wuaXRlcmF0b3JdKCl9dmFyIFBhPWNsYXNze2dldCBjaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2NoYW5nZXN8fCh0aGlzLl9jaGFuZ2VzPW5ldyBGKX1jb25zdHJ1Y3Rvcih0PSExKXt0aGlzLl9lbWl0RGlzdGluY3RDaGFuZ2VzT25seT10LHRoaXMuZGlydHk9ITAsdGhpcy5fcmVzdWx0cz1bXSx0aGlzLl9jaGFuZ2VzRGV0ZWN0ZWQ9ITEsdGhpcy5fY2hhbmdlcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5maXJzdD12b2lkIDAsdGhpcy5sYXN0PXZvaWQgMDtsZXQgZT1QYS5wcm90b3R5cGU7ZVtTeW1ib2wuaXRlcmF0b3JdfHwoZVtTeW1ib2wuaXRlcmF0b3JdPWhkZSl9Z2V0KHQpe3JldHVybiB0aGlzLl9yZXN1bHRzW3RdfW1hcCh0KXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5tYXAodCl9ZmlsdGVyKHQpe3JldHVybiB0aGlzLl9yZXN1bHRzLmZpbHRlcih0KX1maW5kKHQpe3JldHVybiB0aGlzLl9yZXN1bHRzLmZpbmQodCl9cmVkdWNlKHQsZSl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMucmVkdWNlKHQsZSl9Zm9yRWFjaCh0KXt0aGlzLl9yZXN1bHRzLmZvckVhY2godCl9c29tZSh0KXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5zb21lKHQpfXRvQXJyYXkoKXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5zbGljZSgpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMudG9TdHJpbmcoKX1yZXNldCh0LGUpe2xldCBpPXRoaXM7aS5kaXJ0eT0hMTtsZXQgcj1KZCh0KTsodGhpcy5fY2hhbmdlc0RldGVjdGVkPSFmdW5jdGlvbihuLHQsZSl7aWYobi5sZW5ndGghPT10Lmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IGk9MDtpPG4ubGVuZ3RoO2krKyl7bGV0IHI9bltpXSxvPXRbaV07aWYoZSYmKHI9ZShyKSxvPWUobykpLG8hPT1yKXJldHVybiExfXJldHVybiEwfShpLl9yZXN1bHRzLHIsZSkpJiYoaS5fcmVzdWx0cz1yLGkubGVuZ3RoPXIubGVuZ3RoLGkubGFzdD1yW3RoaXMubGVuZ3RoLTFdLGkuZmlyc3Q9clswXSl9bm90aWZ5T25DaGFuZ2VzKCl7dGhpcy5fY2hhbmdlcyYmKHRoaXMuX2NoYW5nZXNEZXRlY3RlZHx8IXRoaXMuX2VtaXREaXN0aW5jdENoYW5nZXNPbmx5KSYmdGhpcy5fY2hhbmdlcy5lbWl0KHRoaXMpfXNldERpcnR5KCl7dGhpcy5kaXJ0eT0hMH1kZXN0cm95KCl7dGhpcy5jaGFuZ2VzLmNvbXBsZXRlKCksdGhpcy5jaGFuZ2VzLnVuc3Vic2NyaWJlKCl9fSxvaT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5fX05HX0VMRU1FTlRfSURfXz1nZGUsbn0pKCksbWRlPW9pLGZkZT1jbGFzcyBleHRlbmRzIG1kZXtjb25zdHJ1Y3Rvcih0LGUsaSl7c3VwZXIoKSx0aGlzLl9kZWNsYXJhdGlvbkxWaWV3PXQsdGhpcy5fZGVjbGFyYXRpb25UQ29udGFpbmVyPWUsdGhpcy5lbGVtZW50UmVmPWl9Y3JlYXRlRW1iZWRkZWRWaWV3KHQsZSl7bGV0IGk9dGhpcy5fZGVjbGFyYXRpb25UQ29udGFpbmVyLnRWaWV3LHI9Qk0odGhpcy5fZGVjbGFyYXRpb25MVmlldyxpLHQsMTYsbnVsbCxpLmRlY2xUTm9kZSxudWxsLG51bGwsbnVsbCxudWxsLGV8fG51bGwpO3JbbGJdPXRoaXMuX2RlY2xhcmF0aW9uTFZpZXdbdGhpcy5fZGVjbGFyYXRpb25UQ29udGFpbmVyLmluZGV4XTtsZXQgYT10aGlzLl9kZWNsYXJhdGlvbkxWaWV3W29jXTtyZXR1cm4gbnVsbCE9PWEmJihyW29jXT1hLmNyZWF0ZUVtYmVkZGVkVmlldyhpKSksYmsoaSxyLHQpLG5ldyBRcChyKX19O2Z1bmN0aW9uIGdkZSgpe3JldHVybiBaTShMbygpLFplKCkpfWZ1bmN0aW9uIFpNKG4sdCl7cmV0dXJuIDQmbi50eXBlP25ldyBmZGUodCxuLHVmKG4sdCkpOm51bGx9dmFyIGVpPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLl9fTkdfRUxFTUVOVF9JRF9fPV9kZSxufSkoKTtmdW5jdGlvbiBfZGUoKXtyZXR1cm4gY2ooTG8oKSxaZSgpKX12YXIgYmRlPWVpLGxqPWNsYXNzIGV4dGVuZHMgYmRle2NvbnN0cnVjdG9yKHQsZSxpKXtzdXBlcigpLHRoaXMuX2xDb250YWluZXI9dCx0aGlzLl9ob3N0VE5vZGU9ZSx0aGlzLl9ob3N0TFZpZXc9aX1nZXQgZWxlbWVudCgpe3JldHVybiB1Zih0aGlzLl9ob3N0VE5vZGUsdGhpcy5faG9zdExWaWV3KX1nZXQgaW5qZWN0b3IoKXtyZXR1cm4gbmV3IGpwKHRoaXMuX2hvc3RUTm9kZSx0aGlzLl9ob3N0TFZpZXcpfWdldCBwYXJlbnRJbmplY3Rvcigpe2xldCB0PSRQKHRoaXMuX2hvc3RUTm9kZSx0aGlzLl9ob3N0TFZpZXcpO2lmKFA1KHQpKXtsZXQgZT1zTSh0LHRoaXMuX2hvc3RMVmlldyksaT1hTSh0KTtyZXR1cm4gbmV3IGpwKGVbRm5dLmRhdGFbaSs4XSxlKX1yZXR1cm4gbmV3IGpwKG51bGwsdGhpcy5faG9zdExWaWV3KX1jbGVhcigpe2Zvcig7dGhpcy5sZW5ndGg+MDspdGhpcy5yZW1vdmUodGhpcy5sZW5ndGgtMSl9Z2V0KHQpe2xldCBlPVdIKHRoaXMuX2xDb250YWluZXIpO3JldHVybiBudWxsIT09ZSYmZVt0XXx8bnVsbH1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuX2xDb250YWluZXIubGVuZ3RoLUlhfWNyZWF0ZUVtYmVkZGVkVmlldyh0LGUsaSl7bGV0IHIsbzsibnVtYmVyIj09dHlwZW9mIGk/cj1pOm51bGwhPWkmJihyPWkuaW5kZXgsbz1pLmluamVjdG9yKTtsZXQgYT10LmNyZWF0ZUVtYmVkZGVkVmlldyhlfHx7fSxvKTtyZXR1cm4gdGhpcy5pbnNlcnQoYSxyKSxhfWNyZWF0ZUNvbXBvbmVudCh0LGUsaSxyLG8pe2xldCBzLGE9dCYmIUZfKHQpO2lmKGEpcz1lO2Vsc2V7bGV0IHU9ZXx8e307cz11LmluZGV4LGk9dS5pbmplY3RvcixyPXUucHJvamVjdGFibGVOb2RlcyxvPXUuZW52aXJvbm1lbnRJbmplY3Rvcnx8dS5uZ01vZHVsZVJlZn1sZXQgbD1hP3Q6bmV3IGdNKE9zKHQpKSxjPWl8fHRoaXMucGFyZW50SW5qZWN0b3I7aWYoIW8mJm51bGw9PWwubmdNb2R1bGUpe2xldCBwPShhP2M6dGhpcy5wYXJlbnRJbmplY3RvcikuZ2V0KGxjLG51bGwpO3AmJihvPXApfWxldCBkPWwuY3JlYXRlKGMscix2b2lkIDAsbyk7cmV0dXJuIHRoaXMuaW5zZXJ0KGQuaG9zdFZpZXcscyksZH1pbnNlcnQodCxlKXtsZXQgaT10Ll9sVmlldyxyPWlbRm5dO2lmKCRjKGlbanJdKSl7bGV0IGQ9dGhpcy5pbmRleE9mKHQpO2lmKC0xIT09ZCl0aGlzLmRldGFjaChkKTtlbHNle2xldCB1PWlbanJdLHA9bmV3IGxqKHUsdVtBYV0sdVtqcl0pO3AuZGV0YWNoKHAuaW5kZXhPZih0KSl9fWxldCBvPXRoaXMuX2FkanVzdEluZGV4KGUpLGE9dGhpcy5fbENvbnRhaW5lcjshZnVuY3Rpb24obix0LGUsaSl7bGV0IHI9SWEraSxvPWUubGVuZ3RoO2k+MCYmKGVbci0xXVt5bF09dCksaTxvLUlhPyh0W3lsXT1lW3JdLFU1KGUsSWEraSx0KSk6KGUucHVzaCh0KSx0W3lsXT1udWxsKSx0W2pyXT1lO2xldCBhPXRbbGJdO251bGwhPT1hJiZlIT09YSYmZnVuY3Rpb24obix0KXtsZXQgZT1uW0ttXTt0W3hsXSE9PXRbanJdW2pyXVt4bF0mJihuW3A1XT0hMCksbnVsbD09PWU/bltLbV09W3RdOmUucHVzaCh0KX0oYSx0KTtsZXQgcz10W29jXTtudWxsIT09cyYmcy5pbnNlcnRWaWV3KG4pLHRbZGldfD02NH0ocixpLGEsbyk7bGV0IHM9WFIobyxhKSxsPWlbdWldLGM9a00obCxhW0dQXSk7cmV0dXJuIG51bGwhPT1jJiZmdW5jdGlvbihuLHQsZSxpLHIsbyl7aVtvdV09cixpW0FhXT10LHViKG4saSxlLDEscixvKX0ocixhW0FhXSxsLGksYyxzKSx0LmF0dGFjaFRvVmlld0NvbnRhaW5lclJlZigpLFU1KFRSKGEpLG8sdCksdH1tb3ZlKHQsZSl7cmV0dXJuIHRoaXMuaW5zZXJ0KHQsZSl9aW5kZXhPZih0KXtsZXQgZT1XSCh0aGlzLl9sQ29udGFpbmVyKTtyZXR1cm4gbnVsbCE9PWU/ZS5pbmRleE9mKHQpOi0xfXJlbW92ZSh0KXtsZXQgZT10aGlzLl9hZGp1c3RJbmRleCh0LC0xKSxpPVdSKHRoaXMuX2xDb250YWluZXIsZSk7aSYmKGRNKFRSKHRoaXMuX2xDb250YWluZXIpLGUpLEs1KGlbRm5dLGkpKX1kZXRhY2godCl7bGV0IGU9dGhpcy5fYWRqdXN0SW5kZXgodCwtMSksaT1XUih0aGlzLl9sQ29udGFpbmVyLGUpO3JldHVybiBpJiZudWxsIT1kTShUUih0aGlzLl9sQ29udGFpbmVyKSxlKT9uZXcgUXAoaSk6bnVsbH1fYWRqdXN0SW5kZXgodCxlPTApe3JldHVybiB0Pz90aGlzLmxlbmd0aCtlfX07ZnVuY3Rpb24gV0gobil7cmV0dXJuIG5bck1dfWZ1bmN0aW9uIFRSKG4pe3JldHVybiBuW3JNXXx8KG5bck1dPVtdKX1mdW5jdGlvbiBjaihuLHQpe2xldCBlLGk9dFtuLmluZGV4XTtpZigkYyhpKSllPWk7ZWxzZXtsZXQgcjtpZig4Jm4udHlwZSlyPUxzKGkpO2Vsc2V7bGV0IG89dFt1aV07cj1vLmNyZWF0ZUNvbW1lbnQoIiIpO2xldCBhPXNzKG4sdCk7WXAobyxrTShvLGEpLHIsZnVuY3Rpb24obix0KXtyZXR1cm4gbi5uZXh0U2libGluZyh0KX0obyxhKSwhMSl9dFtuLmluZGV4XT1lPVV6KGksdCxyLG4pLEhNKHQsZSl9cmV0dXJuIG5ldyBsaihlLG4sdCl9dmFyIHRiPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMucXVlcnlMaXN0PXQsdGhpcy5tYXRjaGVzPW51bGx9Y2xvbmUoKXtyZXR1cm4gbmV3IHRiKHRoaXMucXVlcnlMaXN0KX1zZXREaXJ0eSgpe3RoaXMucXVlcnlMaXN0LnNldERpcnR5KCl9fSxuYj1jbGFzc3tjb25zdHJ1Y3Rvcih0PVtdKXt0aGlzLnF1ZXJpZXM9dH1jcmVhdGVFbWJlZGRlZFZpZXcodCl7bGV0IGU9dC5xdWVyaWVzO2lmKG51bGwhPT1lKXtsZXQgaT1udWxsIT09dC5jb250ZW50UXVlcmllcz90LmNvbnRlbnRRdWVyaWVzWzBdOmUubGVuZ3RoLHI9W107Zm9yKGxldCBvPTA7bzxpO28rKyl7bGV0IGE9ZS5nZXRCeUluZGV4KG8pO3IucHVzaCh0aGlzLnF1ZXJpZXNbYS5pbmRleEluRGVjbGFyYXRpb25WaWV3XS5jbG9uZSgpKX1yZXR1cm4gbmV3IG5iKHIpfXJldHVybiBudWxsfWluc2VydFZpZXcodCl7dGhpcy5kaXJ0eVF1ZXJpZXNXaXRoTWF0Y2hlcyh0KX1kZXRhY2hWaWV3KHQpe3RoaXMuZGlydHlRdWVyaWVzV2l0aE1hdGNoZXModCl9ZGlydHlRdWVyaWVzV2l0aE1hdGNoZXModCl7Zm9yKGxldCBlPTA7ZTx0aGlzLnF1ZXJpZXMubGVuZ3RoO2UrKyludWxsIT09aGoodCxlKS5tYXRjaGVzJiZ0aGlzLnF1ZXJpZXNbZV0uc2V0RGlydHkoKX19LHlNPWNsYXNze2NvbnN0cnVjdG9yKHQsZSxpPW51bGwpe3RoaXMucHJlZGljYXRlPXQsdGhpcy5mbGFncz1lLHRoaXMucmVhZD1pfX0saWI9Y2xhc3N7Y29uc3RydWN0b3IodD1bXSl7dGhpcy5xdWVyaWVzPXR9ZWxlbWVudFN0YXJ0KHQsZSl7Zm9yKGxldCBpPTA7aTx0aGlzLnF1ZXJpZXMubGVuZ3RoO2krKyl0aGlzLnF1ZXJpZXNbaV0uZWxlbWVudFN0YXJ0KHQsZSl9ZWxlbWVudEVuZCh0KXtmb3IobGV0IGU9MDtlPHRoaXMucXVlcmllcy5sZW5ndGg7ZSsrKXRoaXMucXVlcmllc1tlXS5lbGVtZW50RW5kKHQpfWVtYmVkZGVkVFZpZXcodCl7bGV0IGU9bnVsbDtmb3IobGV0IGk9MDtpPHRoaXMubGVuZ3RoO2krKyl7bGV0IHI9bnVsbCE9PWU/ZS5sZW5ndGg6MCxvPXRoaXMuZ2V0QnlJbmRleChpKS5lbWJlZGRlZFRWaWV3KHQscik7byYmKG8uaW5kZXhJbkRlY2xhcmF0aW9uVmlldz1pLG51bGwhPT1lP2UucHVzaChvKTplPVtvXSl9cmV0dXJuIG51bGwhPT1lP25ldyBpYihlKTpudWxsfXRlbXBsYXRlKHQsZSl7Zm9yKGxldCBpPTA7aTx0aGlzLnF1ZXJpZXMubGVuZ3RoO2krKyl0aGlzLnF1ZXJpZXNbaV0udGVtcGxhdGUodCxlKX1nZXRCeUluZGV4KHQpe3JldHVybiB0aGlzLnF1ZXJpZXNbdF19Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLnF1ZXJpZXMubGVuZ3RofXRyYWNrKHQpe3RoaXMucXVlcmllcy5wdXNoKHQpfX0scmI9Y2xhc3N7Y29uc3RydWN0b3IodCxlPS0xKXt0aGlzLm1ldGFkYXRhPXQsdGhpcy5tYXRjaGVzPW51bGwsdGhpcy5pbmRleEluRGVjbGFyYXRpb25WaWV3PS0xLHRoaXMuY3Jvc3Nlc05nVGVtcGxhdGU9ITEsdGhpcy5fYXBwbGllc1RvTmV4dE5vZGU9ITAsdGhpcy5fZGVjbGFyYXRpb25Ob2RlSW5kZXg9ZX1lbGVtZW50U3RhcnQodCxlKXt0aGlzLmlzQXBwbHlpbmdUb05vZGUoZSkmJnRoaXMubWF0Y2hUTm9kZSh0LGUpfWVsZW1lbnRFbmQodCl7dGhpcy5fZGVjbGFyYXRpb25Ob2RlSW5kZXg9PT10LmluZGV4JiYodGhpcy5fYXBwbGllc1RvTmV4dE5vZGU9ITEpfXRlbXBsYXRlKHQsZSl7dGhpcy5lbGVtZW50U3RhcnQodCxlKX1lbWJlZGRlZFRWaWV3KHQsZSl7cmV0dXJuIHRoaXMuaXNBcHBseWluZ1RvTm9kZSh0KT8odGhpcy5jcm9zc2VzTmdUZW1wbGF0ZT0hMCx0aGlzLmFkZE1hdGNoKC10LmluZGV4LGUpLG5ldyByYih0aGlzLm1ldGFkYXRhKSk6bnVsbH1pc0FwcGx5aW5nVG9Ob2RlKHQpe2lmKHRoaXMuX2FwcGxpZXNUb05leHROb2RlJiYxIT0oMSZ0aGlzLm1ldGFkYXRhLmZsYWdzKSl7bGV0IGU9dGhpcy5fZGVjbGFyYXRpb25Ob2RlSW5kZXgsaT10LnBhcmVudDtmb3IoO251bGwhPT1pJiY4JmkudHlwZSYmaS5pbmRleCE9PWU7KWk9aS5wYXJlbnQ7cmV0dXJuIGU9PT0obnVsbCE9PWk/aS5pbmRleDotMSl9cmV0dXJuIHRoaXMuX2FwcGxpZXNUb05leHROb2RlfW1hdGNoVE5vZGUodCxlKXtsZXQgaT10aGlzLm1ldGFkYXRhLnByZWRpY2F0ZTtpZihBcnJheS5pc0FycmF5KGkpKWZvcihsZXQgcj0wO3I8aS5sZW5ndGg7cisrKXtsZXQgbz1pW3JdO3RoaXMubWF0Y2hUTm9kZVdpdGhSZWFkT3B0aW9uKHQsZSx2ZGUoZSxvKSksdGhpcy5tYXRjaFROb2RlV2l0aFJlYWRPcHRpb24odCxlLHFDKGUsdCxvLCExLCExKSl9ZWxzZSBpPT09b2k/NCZlLnR5cGUmJnRoaXMubWF0Y2hUTm9kZVdpdGhSZWFkT3B0aW9uKHQsZSwtMSk6dGhpcy5tYXRjaFROb2RlV2l0aFJlYWRPcHRpb24odCxlLHFDKGUsdCxpLCExLCExKSl9bWF0Y2hUTm9kZVdpdGhSZWFkT3B0aW9uKHQsZSxpKXtpZihudWxsIT09aSl7bGV0IHI9dGhpcy5tZXRhZGF0YS5yZWFkO2lmKG51bGwhPT1yKWlmKHI9PT14ZXx8cj09PWVpfHxyPT09b2kmJjQmZS50eXBlKXRoaXMuYWRkTWF0Y2goZS5pbmRleCwtMik7ZWxzZXtsZXQgbz1xQyhlLHQsciwhMSwhMSk7bnVsbCE9PW8mJnRoaXMuYWRkTWF0Y2goZS5pbmRleCxvKX1lbHNlIHRoaXMuYWRkTWF0Y2goZS5pbmRleCxpKX19YWRkTWF0Y2godCxlKXtudWxsPT09dGhpcy5tYXRjaGVzP3RoaXMubWF0Y2hlcz1bdCxlXTp0aGlzLm1hdGNoZXMucHVzaCh0LGUpfX07ZnVuY3Rpb24gdmRlKG4sdCl7bGV0IGU9bi5sb2NhbE5hbWVzO2lmKG51bGwhPT1lKWZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSs9MilpZihlW2ldPT09dClyZXR1cm4gZVtpKzFdO3JldHVybiBudWxsfWZ1bmN0aW9uIHhkZShuLHQsZSxpKXtyZXR1cm4tMT09PWU/ZnVuY3Rpb24obix0KXtyZXR1cm4gMTEmbi50eXBlP3VmKG4sdCk6NCZuLnR5cGU/Wk0obix0KTpudWxsfSh0LG4pOi0yPT09ZT9mdW5jdGlvbihuLHQsZSl7cmV0dXJuIGU9PT14ZT91Zih0LG4pOmU9PT1vaT9aTSh0LG4pOmU9PT1laT9jaih0LG4pOnZvaWQgMH0obix0LGkpOlhwKG4sbltGbl0sZSx0KX1mdW5jdGlvbiBkaihuLHQsZSxpKXtsZXQgcj10W29jXS5xdWVyaWVzW2ldO2lmKG51bGw9PT1yLm1hdGNoZXMpe2xldCBvPW4uZGF0YSxhPWUubWF0Y2hlcyxzPVtdO2ZvcihsZXQgbD0wO2w8YS5sZW5ndGg7bCs9Mil7bGV0IGM9YVtsXTtzLnB1c2goYzwwP251bGw6eGRlKHQsb1tjXSxhW2wrMV0sZS5tZXRhZGF0YS5yZWFkKSl9ci5tYXRjaGVzPXN9cmV0dXJuIHIubWF0Y2hlc31mdW5jdGlvbiBEUChuLHQsZSxpKXtsZXQgcj1uLnF1ZXJpZXMuZ2V0QnlJbmRleChlKSxvPXIubWF0Y2hlcztpZihudWxsIT09byl7bGV0IGE9ZGoobix0LHIsZSk7Zm9yKGxldCBzPTA7czxvLmxlbmd0aDtzKz0yKXtsZXQgbD1vW3NdO2lmKGw+MClpLnB1c2goYVtzLzJdKTtlbHNle2xldCBjPW9bcysxXSxkPXRbLWxdO2ZvcihsZXQgdT1JYTt1PGQubGVuZ3RoO3UrKyl7bGV0IHA9ZFt1XTtwW2xiXT09PXBbanJdJiZEUChwW0ZuXSxwLGMsaSl9aWYobnVsbCE9PWRbS21dKXtsZXQgdT1kW0ttXTtmb3IobGV0IHA9MDtwPHUubGVuZ3RoO3ArKyl7bGV0IGg9dVtwXTtEUChoW0ZuXSxoLGMsaSl9fX19fXJldHVybiBpfWZ1bmN0aW9uIGJlKG4pe2xldCB0PVplKCksZT1UaSgpLGk9dzUoKTtaUChpKzEpO2xldCByPWhqKGUsaSk7aWYobi5kaXJ0eSYmZnVuY3Rpb24obil7cmV0dXJuIDQ9PSg0Jm5bZGldKX0odCk9PT0oMj09KDImci5tZXRhZGF0YS5mbGFncykpKXtpZihudWxsPT09ci5tYXRjaGVzKW4ucmVzZXQoW10pO2Vsc2V7bGV0IG89ci5jcm9zc2VzTmdUZW1wbGF0ZT9EUChlLHQsaSxbXSk6ZGooZSx0LHIsaSk7bi5yZXNldChvLHRzZSksbi5ub3RpZnlPbkNoYW5nZXMoKX1yZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBVZShuLHQsZSl7bGV0IGk9VGkoKTtpLmZpcnN0Q3JlYXRlUGFzcyYmKHBqKGksbmV3IHlNKG4sdCxlKSwtMSksMj09KDImdCkmJihpLnN0YXRpY1ZpZXdRdWVyaWVzPSEwKSksdWooaSxaZSgpLHQpfWZ1bmN0aW9uIEJuKG4sdCxlLGkpe2xldCByPVRpKCk7aWYoci5maXJzdENyZWF0ZVBhc3Mpe2xldCBvPUxvKCk7cGoocixuZXcgeU0odCxlLGkpLG8uaW5kZXgpLGZ1bmN0aW9uKG4sdCl7bGV0IGU9bi5jb250ZW50UXVlcmllc3x8KG4uY29udGVudFF1ZXJpZXM9W10pO3QhPT0oZS5sZW5ndGg/ZVtlLmxlbmd0aC0xXTotMSkmJmUucHVzaChuLnF1ZXJpZXMubGVuZ3RoLTEsdCl9KHIsbiksMj09KDImZSkmJihyLnN0YXRpY0NvbnRlbnRRdWVyaWVzPSEwKX11aihyLFplKCksZSl9ZnVuY3Rpb24gdmUoKXtyZXR1cm4gbj1aZSgpLHQ9dzUoKSxuW29jXS5xdWVyaWVzW3RdLnF1ZXJ5TGlzdDt2YXIgbix0fWZ1bmN0aW9uIHVqKG4sdCxlKXtsZXQgaT1uZXcgUGEoND09KDQmZSkpO1Z6KG4sdCxpLGkuZGVzdHJveSksbnVsbD09PXRbb2NdJiYodFtvY109bmV3IG5iKSx0W29jXS5xdWVyaWVzLnB1c2gobmV3IHRiKGkpKX1mdW5jdGlvbiBwaihuLHQsZSl7bnVsbD09PW4ucXVlcmllcyYmKG4ucXVlcmllcz1uZXcgaWIpLG4ucXVlcmllcy50cmFjayhuZXcgcmIodCxlKSl9ZnVuY3Rpb24gaGoobix0KXtyZXR1cm4gbi5xdWVyaWVzLmdldEJ5SW5kZXgodCl9ZnVuY3Rpb24ganQobix0KXtyZXR1cm4gWk0obix0KX12YXIgJGQ9eyJcdTAyNzVcdTAyNzVhdHRyaWJ1dGUiOkJlLCJcdTAyNzVcdTAyNzVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTEiOmZ1bmN0aW9uIEt6KG4sdCxlLGkscixvKXtsZXQgYT1aZSgpLHM9bWYoYSx0LGUsaSk7cmV0dXJuIHMhPT16biYmdWMoUHIoKSxhLG4scyxyLG8pLEt6fSwiXHUwMjc1XHUwMjc1YXR0cmlidXRlSW50ZXJwb2xhdGUyIjpmdW5jdGlvbiBKeihuLHQsZSxpLHIsbyxhLHMpe2xldCBsPVplKCksYz1mZihsLHQsZSxpLHIsbyk7cmV0dXJuIGMhPT16biYmdWMoUHIoKSxsLG4sYyxhLHMpLEp6fSwiXHUwMjc1XHUwMjc1YXR0cmlidXRlSW50ZXJwb2xhdGUzIjpmdW5jdGlvbiAkeihuLHQsZSxpLHIsbyxhLHMsbCxjKXtsZXQgZD1aZSgpLHU9Z2YoZCx0LGUsaSxyLG8sYSxzKTtyZXR1cm4gdSE9PXpuJiZ1YyhQcigpLGQsbix1LGwsYyksJHp9LCJcdTAyNzVcdTAyNzVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTQiOmZ1bmN0aW9uIGVVKG4sdCxlLGkscixvLGEscyxsLGMsZCx1KXtsZXQgcD1aZSgpLGg9X2YocCx0LGUsaSxyLG8sYSxzLGwsYyk7cmV0dXJuIGghPT16biYmdWMoUHIoKSxwLG4saCxkLHUpLGVVfSwiXHUwMjc1XHUwMjc1YXR0cmlidXRlSW50ZXJwb2xhdGU1IjpmdW5jdGlvbiB0VShuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgpe2xldCBtPVplKCksXz1iZihtLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSk7cmV0dXJuIF8hPT16biYmdWMoUHIoKSxtLG4sXyxwLGgpLHRVfSwiXHUwMjc1XHUwMjc1YXR0cmlidXRlSW50ZXJwb2xhdGU2IjpmdW5jdGlvbiBuVShuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgsbSxfKXtsZXQgTT1aZSgpLHk9dmYoTSx0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCxoKTtyZXR1cm4geSE9PXpuJiZ1YyhQcigpLE0sbix5LG0sXyksblV9LCJcdTAyNzVcdTAyNzVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTciOmZ1bmN0aW9uIGlVKG4sdCxlLGkscixvLGEscyxsLGMsZCx1LHAsaCxtLF8sTSx5KXtsZXQgeD1aZSgpLFI9eWYoeCx0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCxoLG0sXyk7cmV0dXJuIFIhPT16biYmdWMoUHIoKSx4LG4sUixNLHkpLGlVfSwiXHUwMjc1XHUwMjc1YXR0cmlidXRlSW50ZXJwb2xhdGU4IjpmdW5jdGlvbiByVShuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgsbSxfLE0seSx4LFIpe2xldCBJPVplKCksQj14ZihJLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgsbSxfLE0seSk7cmV0dXJuIEIhPT16biYmdWMoUHIoKSxJLG4sQix4LFIpLHJVfSwiXHUwMjc1XHUwMjc1YXR0cmlidXRlSW50ZXJwb2xhdGVWIjpmdW5jdGlvbiBvVShuLHQsZSxpKXtsZXQgcj1aZSgpLG89aGYocix0KTtyZXR1cm4gbyE9PXpuJiZ1YyhQcigpLHIsbixvLGUsaSksb1V9LCJcdTAyNzVcdTAyNzVkZWZpbmVDb21wb25lbnQiOlAsIlx1MDI3NVx1MDI3NWRlZmluZURpcmVjdGl2ZSI6TWUsIlx1MDI3NVx1MDI3NWRlZmluZUluamVjdGFibGUiOnVlLCJcdTAyNzVcdTAyNzVkZWZpbmVJbmplY3RvciI6SCwiXHUwMjc1XHUwMjc1ZGVmaW5lTmdNb2R1bGUiOnosIlx1MDI3NVx1MDI3NWRlZmluZVBpcGUiOnJmLCJcdTAyNzVcdTAyNzVkaXJlY3RpdmVJbmplY3QiOkMsIlx1MDI3NVx1MDI3NWdldEluaGVyaXRlZEZhY3RvcnkiOlhuLCJcdTAyNzVcdTAyNzVpbmplY3QiOk8sIlx1MDI3NVx1MDI3NWluamVjdEF0dHJpYnV0ZSI6TW8sIlx1MDI3NVx1MDI3NWludmFsaWRGYWN0b3J5IjpjcywiXHUwMjc1XHUwMjc1aW52YWxpZEZhY3RvcnlEZXAiOmE1LCJcdTAyNzVcdTAyNzV0ZW1wbGF0ZVJlZkV4dHJhY3RvciI6anQsIlx1MDI3NVx1MDI3NXJlc2V0VmlldyI6aWUsIlx1MDI3NVx1MDI3NUhvc3REaXJlY3RpdmVzRmVhdHVyZSI6ZnVuY3Rpb24obil7cmV0dXJuIHQ9Pnt0LmZpbmRIb3N0RGlyZWN0aXZlRGVmcz1Reix0Lmhvc3REaXJlY3RpdmVzPShBcnJheS5pc0FycmF5KG4pP246bigpKS5tYXAoZT0+ImZ1bmN0aW9uIj09dHlwZW9mIGU/e2RpcmVjdGl2ZTpBaShlKSxpbnB1dHM6WmMsb3V0cHV0czpaY306e2RpcmVjdGl2ZTpBaShlLmRpcmVjdGl2ZSksaW5wdXRzOmtIKGUuaW5wdXRzKSxvdXRwdXRzOmtIKGUub3V0cHV0cyl9KX19LCJcdTAyNzVcdTAyNzVOZ09uQ2hhbmdlc0ZlYXR1cmUiOnF0LCJcdTAyNzVcdTAyNzVQcm92aWRlcnNGZWF0dXJlIjpWdCwiXHUwMjc1XHUwMjc1Q29weURlZmluaXRpb25GZWF0dXJlIjpmdW5jdGlvbihuKXtsZXQgZSx0PVl6KG4udHlwZSk7ZT1DbChuKT90Llx1MDI3NWNtcDp0Llx1MDI3NWRpcjtsZXQgaT1uO2ZvcihsZXQgciBvZiBsbGUpaVtyXT1lW3JdO2lmKENsKGUpKWZvcihsZXQgciBvZiBjbGUpaVtyXT1lW3JdfSwiXHUwMjc1XHUwMjc1SW5oZXJpdERlZmluaXRpb25GZWF0dXJlIjpYZSwiXHUwMjc1XHUwMjc1U3RhbmRhbG9uZUZlYXR1cmUiOkFrLCJcdTAyNzVcdTAyNzVuZXh0Q29udGV4dCI6dywiXHUwMjc1XHUwMjc1bmFtZXNwYWNlSFRNTCI6dWEsIlx1MDI3NVx1MDI3NW5hbWVzcGFjZU1hdGhNTCI6ZnVuY3Rpb24oKXtHbi5sRnJhbWUuY3VycmVudE5hbWVzcGFjZT1fNX0sIlx1MDI3NVx1MDI3NW5hbWVzcGFjZVNWRyI6cW4sIlx1MDI3NVx1MDI3NWVuYWJsZUJpbmRpbmdzIjpmdW5jdGlvbigpe0duLmJpbmRpbmdzRW5hYmxlZD0hMH0sIlx1MDI3NVx1MDI3NWRpc2FibGVCaW5kaW5ncyI6ZnVuY3Rpb24oKXtHbi5iaW5kaW5nc0VuYWJsZWQ9ITF9LCJcdTAyNzVcdTAyNzVlbGVtZW50U3RhcnQiOmYsIlx1MDI3NVx1MDI3NWVsZW1lbnRFbmQiOmcsIlx1MDI3NVx1MDI3NWVsZW1lbnQiOmssIlx1MDI3NVx1MDI3NWVsZW1lbnRDb250YWluZXJTdGFydCI6R3QsIlx1MDI3NVx1MDI3NWVsZW1lbnRDb250YWluZXJFbmQiOld0LCJcdTAyNzVcdTAyNzVlbGVtZW50Q29udGFpbmVyIjpoaSwiXHUwMjc1XHUwMjc1cHVyZUZ1bmN0aW9uMCI6bWMsIlx1MDI3NVx1MDI3NXB1cmVGdW5jdGlvbjEiOlVuLCJcdTAyNzVcdTAyNzVwdXJlRnVuY3Rpb24yIjpTbywiXHUwMjc1XHUwMjc1cHVyZUZ1bmN0aW9uMyI6eWIsIlx1MDI3NVx1MDI3NXB1cmVGdW5jdGlvbjQiOlJrLCJcdTAyNzVcdTAyNzVwdXJlRnVuY3Rpb241IjpQaywiXHUwMjc1XHUwMjc1cHVyZUZ1bmN0aW9uNiI6ZnVuY3Rpb24obix0LGUsaSxyLG8sYSxzLGwpe2xldCBjPWNhKCkrbixkPVplKCksdT1CcyhkLGMsZSxpLHIsbyk7cmV0dXJuIFpwKGQsYys0LGEscyl8fHU/cGMoZCxjKzYsbD90LmNhbGwobCxlLGkscixvLGEscyk6dChlLGkscixvLGEscykpOmdiKGQsYys2KX0sIlx1MDI3NVx1MDI3NXB1cmVGdW5jdGlvbjciOmZ1bmN0aW9uKG4sdCxlLGkscixvLGEscyxsLGMpe2xldCBkPWNhKCkrbix1PVplKCkscD1Ccyh1LGQsZSxpLHIsbyk7cmV0dXJuIHpNKHUsZCs0LGEscyxsKXx8cD9wYyh1LGQrNyxjP3QuY2FsbChjLGUsaSxyLG8sYSxzLGwpOnQoZSxpLHIsbyxhLHMsbCkpOmdiKHUsZCs3KX0sIlx1MDI3NVx1MDI3NXB1cmVGdW5jdGlvbjgiOmZ1bmN0aW9uKG4sdCxlLGkscixvLGEscyxsLGMsZCl7bGV0IHU9Y2EoKStuLHA9WmUoKSxoPUJzKHAsdSxlLGkscixvKTtyZXR1cm4gQnMocCx1KzQsYSxzLGwsYyl8fGg/cGMocCx1KzgsZD90LmNhbGwoZCxlLGkscixvLGEscyxsLGMpOnQoZSxpLHIsbyxhLHMsbCxjKSk6Z2IocCx1KzgpfSwiXHUwMjc1XHUwMjc1cHVyZUZ1bmN0aW9uViI6ZnVuY3Rpb24obix0LGUsaSl7cmV0dXJuIHNqKFplKCksY2EoKSxuLHQsZSxpKX0sIlx1MDI3NVx1MDI3NWdldEN1cnJlbnRWaWV3IjpUZSwiXHUwMjc1XHUwMjc1cmVzdG9yZVZpZXciOm5lLCJcdTAyNzVcdTAyNzVsaXN0ZW5lciI6QSwiXHUwMjc1XHUwMjc1cHJvamVjdGlvbiI6VHQsIlx1MDI3NVx1MDI3NXN5bnRoZXRpY0hvc3RQcm9wZXJ0eSI6V00sIlx1MDI3NVx1MDI3NXN5bnRoZXRpY0hvc3RMaXN0ZW5lciI6VU0sIlx1MDI3NVx1MDI3NXBpcGVCaW5kMSI6RywiXHUwMjc1XHUwMjc1cGlwZUJpbmQyIjpKcCwiXHUwMjc1XHUwMjc1cGlwZUJpbmQzIjpraywiXHUwMjc1XHUwMjc1cGlwZUJpbmQ0IjpmdW5jdGlvbihuLHQsZSxpLHIsbyl7bGV0IGE9bitHcixzPVplKCksbD1hZihzLGEpO3JldHVybiBDYihzLGEpP2FqKHMsY2EoKSx0LGwudHJhbnNmb3JtLGUsaSxyLG8sbCk6bC50cmFuc2Zvcm0oZSxpLHIsbyl9LCJcdTAyNzVcdTAyNzVwaXBlQmluZFYiOmZ1bmN0aW9uKG4sdCxlKXtsZXQgaT1uK0dyLHI9WmUoKSxvPWFmKHIsaSk7cmV0dXJuIENiKHIsaSk/c2oocixjYSgpLHQsby50cmFuc2Zvcm0sZSxvKTpvLnRyYW5zZm9ybS5hcHBseShvLGUpfSwiXHUwMjc1XHUwMjc1cHJvamVjdGlvbkRlZiI6Zm4sIlx1MDI3NVx1MDI3NWhvc3RQcm9wZXJ0eSI6d28sIlx1MDI3NVx1MDI3NXByb3BlcnR5IjpiLCJcdTAyNzVcdTAyNzVwcm9wZXJ0eUludGVycG9sYXRlIjpaaSwiXHUwMjc1XHUwMjc1cHJvcGVydHlJbnRlcnBvbGF0ZTEiOl9iLCJcdTAyNzVcdTAyNzVwcm9wZXJ0eUludGVycG9sYXRlMiI6ak0sIlx1MDI3NVx1MDI3NXByb3BlcnR5SW50ZXJwb2xhdGUzIjpmdW5jdGlvbiBzVShuLHQsZSxpLHIsbyxhLHMsbCl7bGV0IGM9WmUoKSxkPWdmKGMsdCxlLGkscixvLGEscyk7cmV0dXJuIGQhPT16biYmZHMoVGkoKSxQcigpLGMsbixkLGNbdWldLGwsITEpLHNVfSwiXHUwMjc1XHUwMjc1cHJvcGVydHlJbnRlcnBvbGF0ZTQiOmZ1bmN0aW9uIGxVKG4sdCxlLGkscixvLGEscyxsLGMsZCl7bGV0IHU9WmUoKSxwPV9mKHUsdCxlLGkscixvLGEscyxsLGMpO3JldHVybiBwIT09em4mJmRzKFRpKCksUHIoKSx1LG4scCx1W3VpXSxkLCExKSxsVX0sIlx1MDI3NVx1MDI3NXByb3BlcnR5SW50ZXJwb2xhdGU1IjpmdW5jdGlvbiBjVShuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwKXtsZXQgaD1aZSgpLG09YmYoaCx0LGUsaSxyLG8sYSxzLGwsYyxkLHUpO3JldHVybiBtIT09em4mJmRzKFRpKCksUHIoKSxoLG4sbSxoW3VpXSxwLCExKSxjVX0sIlx1MDI3NVx1MDI3NXByb3BlcnR5SW50ZXJwb2xhdGU2IjpmdW5jdGlvbiBkVShuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgsbSl7bGV0IF89WmUoKSxNPXZmKF8sdCxlLGkscixvLGEscyxsLGMsZCx1LHAsaCk7cmV0dXJuIE0hPT16biYmZHMoVGkoKSxQcigpLF8sbixNLF9bdWldLG0sITEpLGRVfSwiXHUwMjc1XHUwMjc1cHJvcGVydHlJbnRlcnBvbGF0ZTciOmZ1bmN0aW9uIHVVKG4sdCxlLGkscixvLGEscyxsLGMsZCx1LHAsaCxtLF8sTSl7bGV0IHk9WmUoKSx4PXlmKHksdCxlLGkscixvLGEscyxsLGMsZCx1LHAsaCxtLF8pO3JldHVybiB4IT09em4mJmRzKFRpKCksUHIoKSx5LG4seCx5W3VpXSxNLCExKSx1VX0sIlx1MDI3NVx1MDI3NXByb3BlcnR5SW50ZXJwb2xhdGU4IjpmdW5jdGlvbiBwVShuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgsbSxfLE0seSx4KXtsZXQgUj1aZSgpLEk9eGYoUix0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCxoLG0sXyxNLHkpO3JldHVybiBJIT09em4mJmRzKFRpKCksUHIoKSxSLG4sSSxSW3VpXSx4LCExKSxwVX0sIlx1MDI3NVx1MDI3NXByb3BlcnR5SW50ZXJwb2xhdGVWIjpmdW5jdGlvbiBoVShuLHQsZSl7bGV0IGk9WmUoKSxyPWhmKGksdCk7cmV0dXJuIHIhPT16biYmZHMoVGkoKSxQcigpLGksbixyLGlbdWldLGUsITEpLGhVfSwiXHUwMjc1XHUwMjc1cGlwZSI6VSwiXHUwMjc1XHUwMjc1cXVlcnlSZWZyZXNoIjpiZSwiXHUwMjc1XHUwMjc1dmlld1F1ZXJ5IjpVZSwiXHUwMjc1XHUwMjc1bG9hZFF1ZXJ5Ijp2ZSwiXHUwMjc1XHUwMjc1Y29udGVudFF1ZXJ5IjpCbiwiXHUwMjc1XHUwMjc1cmVmZXJlbmNlIjpzdCwiXHUwMjc1XHUwMjc1Y2xhc3NNYXAiOlhvLCJcdTAyNzVcdTAyNzVjbGFzc01hcEludGVycG9sYXRlMSI6YmIsIlx1MDI3NVx1MDI3NWNsYXNzTWFwSW50ZXJwb2xhdGUyIjpmdW5jdGlvbihuLHQsZSxpLHIpe0VsKGxzLGhjLGZmKFplKCksbix0LGUsaSxyKSwhMCl9LCJcdTAyNzVcdTAyNzVjbGFzc01hcEludGVycG9sYXRlMyI6ZnVuY3Rpb24obix0LGUsaSxyLG8sYSl7RWwobHMsaGMsZ2YoWmUoKSxuLHQsZSxpLHIsbyxhKSwhMCl9LCJcdTAyNzVcdTAyNzVjbGFzc01hcEludGVycG9sYXRlNCI6ZnVuY3Rpb24obix0LGUsaSxyLG8sYSxzLGwpe0VsKGxzLGhjLF9mKFplKCksbix0LGUsaSxyLG8sYSxzLGwpLCEwKX0sIlx1MDI3NVx1MDI3NWNsYXNzTWFwSW50ZXJwb2xhdGU1IjpmdW5jdGlvbihuLHQsZSxpLHIsbyxhLHMsbCxjLGQpe0VsKGxzLGhjLGJmKFplKCksbix0LGUsaSxyLG8sYSxzLGwsYyxkKSwhMCl9LCJcdTAyNzVcdTAyNzVjbGFzc01hcEludGVycG9sYXRlNiI6ZnVuY3Rpb24obix0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCl7RWwobHMsaGMsdmYoWmUoKSxuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwKSwhMCl9LCJcdTAyNzVcdTAyNzVjbGFzc01hcEludGVycG9sYXRlNyI6ZnVuY3Rpb24obix0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCxoLG0pe0VsKGxzLGhjLHlmKFplKCksbix0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCxoLG0pLCEwKX0sIlx1MDI3NVx1MDI3NWNsYXNzTWFwSW50ZXJwb2xhdGU4IjpmdW5jdGlvbihuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgsbSxfLE0pe0VsKGxzLGhjLHhmKFplKCksbix0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCxoLG0sXyxNKSwhMCl9LCJcdTAyNzVcdTAyNzVjbGFzc01hcEludGVycG9sYXRlViI6ZnVuY3Rpb24obil7RWwobHMsaGMsaGYoWmUoKSxuKSwhMCl9LCJcdTAyNzVcdTAyNzVzdHlsZU1hcCI6SHMsIlx1MDI3NVx1MDI3NXN0eWxlTWFwSW50ZXJwb2xhdGUxIjpmdW5jdGlvbihuLHQsZSl7SHMobWYoWmUoKSxuLHQsZSkpfSwiXHUwMjc1XHUwMjc1c3R5bGVNYXBJbnRlcnBvbGF0ZTIiOmZ1bmN0aW9uKG4sdCxlLGkscil7SHMoZmYoWmUoKSxuLHQsZSxpLHIpKX0sIlx1MDI3NVx1MDI3NXN0eWxlTWFwSW50ZXJwb2xhdGUzIjpmdW5jdGlvbihuLHQsZSxpLHIsbyxhKXtIcyhnZihaZSgpLG4sdCxlLGkscixvLGEpKX0sIlx1MDI3NVx1MDI3NXN0eWxlTWFwSW50ZXJwb2xhdGU0IjpmdW5jdGlvbihuLHQsZSxpLHIsbyxhLHMsbCl7SHMoX2YoWmUoKSxuLHQsZSxpLHIsbyxhLHMsbCkpfSwiXHUwMjc1XHUwMjc1c3R5bGVNYXBJbnRlcnBvbGF0ZTUiOmZ1bmN0aW9uKG4sdCxlLGkscixvLGEscyxsLGMsZCl7SHMoYmYoWmUoKSxuLHQsZSxpLHIsbyxhLHMsbCxjLGQpKX0sIlx1MDI3NVx1MDI3NXN0eWxlTWFwSW50ZXJwb2xhdGU2IjpmdW5jdGlvbihuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwKXtIcyh2ZihaZSgpLG4sdCxlLGkscixvLGEscyxsLGMsZCx1LHApKX0sIlx1MDI3NVx1MDI3NXN0eWxlTWFwSW50ZXJwb2xhdGU3IjpmdW5jdGlvbihuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgsbSl7SHMoeWYoWmUoKSxuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgsbSkpfSwiXHUwMjc1XHUwMjc1c3R5bGVNYXBJbnRlcnBvbGF0ZTgiOmZ1bmN0aW9uKG4sdCxlLGkscixvLGEscyxsLGMsZCx1LHAsaCxtLF8sTSl7SHMoeGYoWmUoKSxuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgsbSxfLE0pKX0sIlx1MDI3NVx1MDI3NXN0eWxlTWFwSW50ZXJwb2xhdGVWIjpmdW5jdGlvbihuKXtIcyhoZihaZSgpLG4pKX0sIlx1MDI3NVx1MDI3NXN0eWxlUHJvcCI6QnQsIlx1MDI3NVx1MDI3NXN0eWxlUHJvcEludGVycG9sYXRlMSI6ZnVuY3Rpb24gSVUobix0LGUsaSxyKXtyZXR1cm4gU2wobixtZihaZSgpLHQsZSxpKSxyLCExKSxJVX0sIlx1MDI3NVx1MDI3NXN0eWxlUHJvcEludGVycG9sYXRlMiI6ZnVuY3Rpb24gQVUobix0LGUsaSxyLG8sYSl7cmV0dXJuIFNsKG4sZmYoWmUoKSx0LGUsaSxyLG8pLGEsITEpLEFVfSwiXHUwMjc1XHUwMjc1c3R5bGVQcm9wSW50ZXJwb2xhdGUzIjpmdW5jdGlvbiBSVShuLHQsZSxpLHIsbyxhLHMsbCl7cmV0dXJuIFNsKG4sZ2YoWmUoKSx0LGUsaSxyLG8sYSxzKSxsLCExKSxSVX0sIlx1MDI3NVx1MDI3NXN0eWxlUHJvcEludGVycG9sYXRlNCI6ZnVuY3Rpb24gUFUobix0LGUsaSxyLG8sYSxzLGwsYyxkKXtyZXR1cm4gU2wobixfZihaZSgpLHQsZSxpLHIsbyxhLHMsbCxjKSxkLCExKSxQVX0sIlx1MDI3NVx1MDI3NXN0eWxlUHJvcEludGVycG9sYXRlNSI6ZnVuY3Rpb24ga1Uobix0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCl7cmV0dXJuIFNsKG4sYmYoWmUoKSx0LGUsaSxyLG8sYSxzLGwsYyxkLHUpLHAsITEpLGtVfSwiXHUwMjc1XHUwMjc1c3R5bGVQcm9wSW50ZXJwb2xhdGU2IjpmdW5jdGlvbiBPVShuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgsbSl7cmV0dXJuIFNsKG4sdmYoWmUoKSx0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCxoKSxtLCExKSxPVX0sIlx1MDI3NVx1MDI3NXN0eWxlUHJvcEludGVycG9sYXRlNyI6ZnVuY3Rpb24gRlUobix0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCxoLG0sXyxNKXtyZXR1cm4gU2wobix5ZihaZSgpLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgsbSxfKSxNLCExKSxGVX0sIlx1MDI3NVx1MDI3NXN0eWxlUHJvcEludGVycG9sYXRlOCI6ZnVuY3Rpb24gTlUobix0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCxoLG0sXyxNLHkseCl7cmV0dXJuIFNsKG4seGYoWmUoKSx0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCxoLG0sXyxNLHkpLHgsITEpLE5VfSwiXHUwMjc1XHUwMjc1c3R5bGVQcm9wSW50ZXJwb2xhdGVWIjpmdW5jdGlvbiBMVShuLHQsZSl7cmV0dXJuIFNsKG4saGYoWmUoKSx0KSxlLCExKSxMVX0sIlx1MDI3NVx1MDI3NWNsYXNzUHJvcCI6bnQsIlx1MDI3NVx1MDI3NWFkdmFuY2UiOnYsIlx1MDI3NVx1MDI3NXRlbXBsYXRlIjpTLCJcdTAyNzVcdTAyNzV0ZXh0IjpULCJcdTAyNzVcdTAyNzV0ZXh0SW50ZXJwb2xhdGUiOmt0LCJcdTAyNzVcdTAyNzV0ZXh0SW50ZXJwb2xhdGUxIjpWZSwiXHUwMjc1XHUwMjc1dGV4dEludGVycG9sYXRlMiI6bHUsIlx1MDI3NVx1MDI3NXRleHRJbnRlcnBvbGF0ZTMiOkdNLCJcdTAyNzVcdTAyNzV0ZXh0SW50ZXJwb2xhdGU0IjpmdW5jdGlvbiBNVShuLHQsZSxpLHIsbyxhLHMsbCl7bGV0IGM9WmUoKSxkPV9mKGMsbix0LGUsaSxyLG8sYSxzLGwpO3JldHVybiBkIT09em4mJm9kKGMsZGEoKSxkKSxNVX0sIlx1MDI3NVx1MDI3NXRleHRJbnRlcnBvbGF0ZTUiOmZ1bmN0aW9uIHdVKG4sdCxlLGkscixvLGEscyxsLGMsZCl7bGV0IHU9WmUoKSxwPWJmKHUsbix0LGUsaSxyLG8sYSxzLGwsYyxkKTtyZXR1cm4gcCE9PXpuJiZvZCh1LGRhKCkscCksd1V9LCJcdTAyNzVcdTAyNzV0ZXh0SW50ZXJwb2xhdGU2IjpmdW5jdGlvbiBTVShuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwKXtsZXQgaD1aZSgpLG09dmYoaCxuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwKTtyZXR1cm4gbSE9PXpuJiZvZChoLGRhKCksbSksU1V9LCJcdTAyNzVcdTAyNzV0ZXh0SW50ZXJwb2xhdGU3IjpmdW5jdGlvbiBFVShuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgsbSl7bGV0IF89WmUoKSxNPXlmKF8sbix0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCxoLG0pO3JldHVybiBNIT09em4mJm9kKF8sZGEoKSxNKSxFVX0sIlx1MDI3NVx1MDI3NXRleHRJbnRlcnBvbGF0ZTgiOmZ1bmN0aW9uIFRVKG4sdCxlLGkscixvLGEscyxsLGMsZCx1LHAsaCxtLF8sTSl7bGV0IHk9WmUoKSx4PXhmKHksbix0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCxoLG0sXyxNKTtyZXR1cm4geCE9PXpuJiZvZCh5LGRhKCkseCksVFV9LCJcdTAyNzVcdTAyNzV0ZXh0SW50ZXJwb2xhdGVWIjpmdW5jdGlvbiBEVShuKXtsZXQgdD1aZSgpLGU9aGYodCxuKTtyZXR1cm4gZSE9PXpuJiZvZCh0LGRhKCksZSksRFV9LCJcdTAyNzVcdTAyNzVpMThuIjpYTSwiXHUwMjc1XHUwMjc1aTE4bkF0dHJpYnV0ZXMiOmZ1bmN0aW9uKG4sdCl7bGV0IGU9VGkoKSxpPW51KGUuY29uc3RzLHQpOyFmdW5jdGlvbihuLHQsZSl7bGV0IHI9TG8oKS5pbmRleCxvPVtdO2lmKG4uZmlyc3RDcmVhdGVQYXNzJiZudWxsPT09bi5kYXRhW3RdKXtmb3IobGV0IGE9MDthPGUubGVuZ3RoO2ErPTIpe2xldCBzPWVbYV0sbD1lW2ErMV07aWYoIiIhPT1sKXtpZihUY2UudGVzdChsKSl0aHJvdyBuZXcgRXJyb3IoYElDVSBleHByZXNzaW9ucyBhcmUgbm90IHN1cHBvcnRlZCBpbiBhdHRyaWJ1dGVzLiBNZXNzYWdlOiAiJHtsfSIuYCk7V18obyxsLHIscyxOY2UobyksbnVsbCl9fW4uZGF0YVt0XT1vfX0oZSxuK0dyLGkpfSwiXHUwMjc1XHUwMjc1aTE4bkV4cCI6dmIsIlx1MDI3NVx1MDI3NWkxOG5TdGFydCI6ZWosIlx1MDI3NVx1MDI3NWkxOG5FbmQiOnRqLCJcdTAyNzVcdTAyNzVpMThuQXBwbHkiOllNLCJcdTAyNzVcdTAyNzVpMThuUG9zdHByb2Nlc3MiOlFNLCJcdTAyNzVcdTAyNzVyZXNvbHZlV2luZG93IjpmdW5jdGlvbihuKXtyZXR1cm4gbi5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fSwiXHUwMjc1XHUwMjc1cmVzb2x2ZURvY3VtZW50IjpzdSwiXHUwMjc1XHUwMjc1cmVzb2x2ZUJvZHkiOmZ1bmN0aW9uKG4pe3JldHVybiBuLm93bmVyRG9jdW1lbnQuYm9keX0sIlx1MDI3NVx1MDI3NXNldENvbXBvbmVudFNjb3BlIjpzYiwiXHUwMjc1XHUwMjc1c2V0TmdNb2R1bGVTY29wZSI6ZnVuY3Rpb24obix0KXtyZXR1cm4gcnUoKCk9PntsZXQgZT1abShuLCEwKTtlLmRlY2xhcmF0aW9ucz10LmRlY2xhcmF0aW9uc3x8amksZS5pbXBvcnRzPXQuaW1wb3J0c3x8amksZS5leHBvcnRzPXQuZXhwb3J0c3x8aml9KX0sIlx1MDI3NVx1MDI3NXJlZ2lzdGVyTmdNb2R1bGVUeXBlIjpxNSwiXHUwMjc1XHUwMjc1c2FuaXRpemVIdG1sIjptaywiXHUwMjc1XHUwMjc1c2FuaXRpemVTdHlsZSI6ZnVuY3Rpb24obil7bGV0IHQ9bWIoKTtyZXR1cm4gdD90LnNhbml0aXplKFVyLlNUWUxFLG4pfHwiIjp3bChuLCJTdHlsZSIpP09hKG4pOmpuKG4pfSwiXHUwMjc1XHUwMjc1c2FuaXRpemVSZXNvdXJjZVVybCI6Q3osIlx1MDI3NVx1MDI3NXNhbml0aXplU2NyaXB0IjpmdW5jdGlvbihuKXtsZXQgdD1tYigpO2lmKHQpcmV0dXJuIHhIKHQuc2FuaXRpemUoVXIuU0NSSVBULG4pfHwiIik7aWYod2wobiwiU2NyaXB0IikpcmV0dXJuIHhIKE9hKG4pKTt0aHJvdyBuZXcgeHQoOTA1LCExKX0sIlx1MDI3NVx1MDI3NXNhbml0aXplVXJsIjpWcywiXHUwMjc1XHUwMjc1c2FuaXRpemVVcmxPclJlc291cmNlVXJsIjpmdW5jdGlvbihuLHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4sdCl7cmV0dXJuInNyYyI9PT10JiYoImVtYmVkIj09PW58fCJmcmFtZSI9PT1ufHwiaWZyYW1lIj09PW58fCJtZWRpYSI9PT1ufHwic2NyaXB0Ij09PW4pfHwiaHJlZiI9PT10JiYoImJhc2UiPT09bnx8ImxpbmsiPT09bik/Q3o6VnN9KHQsZSkobil9LCJcdTAyNzVcdTAyNzV0cnVzdENvbnN0YW50SHRtbCI6ZnVuY3Rpb24obil7cmV0dXJuIGRmKG5bMF0pfSwiXHUwMjc1XHUwMjc1dHJ1c3RDb25zdGFudFJlc291cmNlVXJsIjpmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIGN6KCk/LmNyZWF0ZVNjcmlwdFVSTChuKXx8bn0oblswXSl9LCJcdTAyNzVcdTAyNzV2YWxpZGF0ZUlmcmFtZUF0dHJpYnV0ZSI6ZnVuY3Rpb24obix0LGUpe2xldCBpPVplKCkscj1QcigpLG89c3MocixpKTtpZigyPT09ci50eXBlJiYiaWZyYW1lIj09PXQudG9Mb3dlckNhc2UoKSl7bGV0IGE9bzt0aHJvdyBhLnNyYz0iIixhLnNyY2RvYz1kZigiIiksY2soaVt1aV0sYSksbmV3IHh0KC05MTAsITEpfXJldHVybiBufSxmb3J3YXJkUmVmOlduLHJlc29sdmVGb3J3YXJkUmVmOkFpfSxOXz1udWxsO2Z1bmN0aW9uIG1qKG4pe3JldHVybiEhWm0obil9dmFyIEtDPVtdLERSPSExO2Z1bmN0aW9uIGZqKG4pe3JldHVybiBBcnJheS5pc0FycmF5KG4pP24uZXZlcnkoZmopOiEhQWkobil9ZnVuY3Rpb24gUGRlKG4sdCl7bGV0IGU9SmQodC5kZWNsYXJhdGlvbnN8fGppKSxpPW5mKG4pO2UuZm9yRWFjaChyPT57KHI9QWkocikpLmhhc093blByb3BlcnR5KEVNKT9naihPcyhyKSxpKTohci5oYXNPd25Qcm9wZXJ0eSh6UCkmJiFyLmhhc093blByb3BlcnR5KFVQKSYmKHIubmdTZWxlY3RvclNjb3BlPW4pfSl9ZnVuY3Rpb24gZ2oobix0KXtuLmRpcmVjdGl2ZURlZnM9KCk9PkFycmF5LmZyb20odC5jb21waWxhdGlvbi5kaXJlY3RpdmVzKS5tYXAoZT0+ZS5oYXNPd25Qcm9wZXJ0eShFTSk/T3MoZSk6ZXUoZSkpLmZpbHRlcihlPT4hIWUpLG4ucGlwZURlZnM9KCk9PkFycmF5LmZyb20odC5jb21waWxhdGlvbi5waXBlcykubWFwKGU9PnR1KGUpKSxuLnNjaGVtYXM9dC5zY2hlbWFzLG4udFZpZXc9bnVsbH1mdW5jdGlvbiBuZihuKXtpZihtaihuKSlyZXR1cm4gZnVuY3Rpb24obil7bGV0IHQ9Wm0obiwhMCk7aWYobnVsbCE9PXQudHJhbnNpdGl2ZUNvbXBpbGVTY29wZXMpcmV0dXJuIHQudHJhbnNpdGl2ZUNvbXBpbGVTY29wZXM7bGV0IGU9e3NjaGVtYXM6dC5zY2hlbWFzfHxudWxsLGNvbXBpbGF0aW9uOntkaXJlY3RpdmVzOm5ldyBTZXQscGlwZXM6bmV3IFNldH0sZXhwb3J0ZWQ6e2RpcmVjdGl2ZXM6bmV3IFNldCxwaXBlczpuZXcgU2V0fX07cmV0dXJuIFFDKHQuaW1wb3J0cykuZm9yRWFjaChpPT57bGV0IHI9bmYoaSk7ci5leHBvcnRlZC5kaXJlY3RpdmVzLmZvckVhY2gobz0+ZS5jb21waWxhdGlvbi5kaXJlY3RpdmVzLmFkZChvKSksci5leHBvcnRlZC5waXBlcy5mb3JFYWNoKG89PmUuY29tcGlsYXRpb24ucGlwZXMuYWRkKG8pKX0pLFFDKHQuZGVjbGFyYXRpb25zKS5mb3JFYWNoKGk9Pnt0dShpKT9lLmNvbXBpbGF0aW9uLnBpcGVzLmFkZChpKTplLmNvbXBpbGF0aW9uLmRpcmVjdGl2ZXMuYWRkKGkpfSksUUModC5leHBvcnRzKS5mb3JFYWNoKGk9PntsZXQgcj1pO2lmKG1qKHIpKXtsZXQgbz1uZihyKTtvLmV4cG9ydGVkLmRpcmVjdGl2ZXMuZm9yRWFjaChhPT57ZS5jb21waWxhdGlvbi5kaXJlY3RpdmVzLmFkZChhKSxlLmV4cG9ydGVkLmRpcmVjdGl2ZXMuYWRkKGEpfSksby5leHBvcnRlZC5waXBlcy5mb3JFYWNoKGE9PntlLmNvbXBpbGF0aW9uLnBpcGVzLmFkZChhKSxlLmV4cG9ydGVkLnBpcGVzLmFkZChhKX0pfWVsc2UgdHUocik/ZS5leHBvcnRlZC5waXBlcy5hZGQocik6ZS5leHBvcnRlZC5kaXJlY3RpdmVzLmFkZChyKX0pLHQudHJhbnNpdGl2ZUNvbXBpbGVTY29wZXM9ZSxlfShuKTtpZihsNShuKSl7aWYobnVsbCE9PShPcyhuKXx8ZXUobikpKXJldHVybntzY2hlbWFzOm51bGwsY29tcGlsYXRpb246e2RpcmVjdGl2ZXM6bmV3IFNldCxwaXBlczpuZXcgU2V0fSxleHBvcnRlZDp7ZGlyZWN0aXZlczpuZXcgU2V0KFtuXSkscGlwZXM6bmV3IFNldH19O2lmKG51bGwhPT10dShuKSlyZXR1cm57c2NoZW1hczpudWxsLGNvbXBpbGF0aW9uOntkaXJlY3RpdmVzOm5ldyBTZXQscGlwZXM6bmV3IFNldH0sZXhwb3J0ZWQ6e2RpcmVjdGl2ZXM6bmV3IFNldCxwaXBlczpuZXcgU2V0KFtuXSl9fX10aHJvdyBuZXcgRXJyb3IoYCR7bi5uYW1lfSBkb2VzIG5vdCBoYXZlIGEgbW9kdWxlIGRlZiAoXHUwMjc1bW9kIHByb3BlcnR5KWApfWZ1bmN0aW9uIHFIKG4pe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdm9pZCAwIT09bi5uZ01vZHVsZX0obik/bi5uZ01vZHVsZTpufXZhciBJUj0wO2Z1bmN0aW9uIF9qKG4sdCl7bGV0IGU9bnVsbDt2aihuLHR8fHt9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobix6UCx7Z2V0OigpPT57aWYobnVsbD09PWUpe2xldCBpPWJqKG4sdHx8e30pO2U9RnMoKS5jb21waWxlRGlyZWN0aXZlKCRkLGkuc291cmNlTWFwVXJsLGkubWV0YWRhdGEpfXJldHVybiBlfSxjb25maWd1cmFibGU6ITF9KX1mdW5jdGlvbiBiaihuLHQpe2xldCBlPW4mJm4ubmFtZSxpPWBuZzovLy8ke2V9L1x1MDI3NWRpci5qc2Ascj1GcygpLG89eWoobix0KTtyZXR1cm4gby50eXBlU291cmNlU3Bhbj1yLmNyZWF0ZVBhcnNlU291cmNlU3BhbigiRGlyZWN0aXZlIixlLGkpLG8udXNlc0luaGVyaXRhbmNlJiZ4aihuKSx7bWV0YWRhdGE6byxzb3VyY2VNYXBVcmw6aX19ZnVuY3Rpb24gdmoobix0KXtsZXQgZT1udWxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLEtjLHtnZXQ6KCk9PntpZihudWxsPT09ZSl7bGV0IGk9Ymoobix0KSxyPUZzKCk7ZT1yLmNvbXBpbGVGYWN0b3J5KCRkLGBuZzovLy8ke24ubmFtZX0vXHUwMjc1ZmFjLmpzYCx7bmFtZTppLm1ldGFkYXRhLm5hbWUsdHlwZTppLm1ldGFkYXRhLnR5cGUsdHlwZUFyZ3VtZW50Q291bnQ6MCxkZXBzOlBNKG4pLHRhcmdldDpyLkZhY3RvcnlUYXJnZXQuRGlyZWN0aXZlfSl9cmV0dXJuIGV9LGNvbmZpZ3VyYWJsZTohMX0pfWZ1bmN0aW9uIExkZShuKXtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKG4ucHJvdG90eXBlKT09PU9iamVjdC5wcm90b3R5cGV9ZnVuY3Rpb24geWoobix0KXtsZXQgZT1uaygpLGk9ZS5vd25Qcm9wTWV0YWRhdGEobik7cmV0dXJue25hbWU6bi5uYW1lLHR5cGU6bixzZWxlY3Rvcjp2b2lkIDAhPT10LnNlbGVjdG9yP3Quc2VsZWN0b3I6bnVsbCxob3N0OnQuaG9zdHx8WmMscHJvcE1ldGFkYXRhOmksaW5wdXRzOnQuaW5wdXRzfHxqaSxvdXRwdXRzOnQub3V0cHV0c3x8amkscXVlcmllczpYSChuLGksQ2opLGxpZmVjeWNsZTp7dXNlc09uQ2hhbmdlczplLmhhc0xpZmVjeWNsZUhvb2sobiwibmdPbkNoYW5nZXMiKX0sdHlwZVNvdXJjZVNwYW46bnVsbCx1c2VzSW5oZXJpdGFuY2U6IUxkZShuKSxleHBvcnRBczpIZGUodC5leHBvcnRBcykscHJvdmlkZXJzOnQucHJvdmlkZXJzfHxudWxsLHZpZXdRdWVyaWVzOlhIKG4saSxNaiksaXNTdGFuZGFsb25lOiEhdC5zdGFuZGFsb25lLGhvc3REaXJlY3RpdmVzOnQuaG9zdERpcmVjdGl2ZXM/Lm1hcChyPT4iZnVuY3Rpb24iPT10eXBlb2Ygcj97ZGlyZWN0aXZlOnJ9OnIpfHxudWxsfX1mdW5jdGlvbiB4aihuKXtsZXQgdD1PYmplY3QucHJvdG90eXBlLGU9T2JqZWN0LmdldFByb3RvdHlwZU9mKG4ucHJvdG90eXBlKS5jb25zdHJ1Y3Rvcjtmb3IoO2UmJmUhPT10OykhZXUoZSkmJiFPcyhlKSYmVWRlKGUpJiZfaihlLG51bGwpLGU9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpfWZ1bmN0aW9uIEJkZShuKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIG4/U2oobik6QWkobil9ZnVuY3Rpb24gVmRlKG4sdCl7cmV0dXJue3Byb3BlcnR5TmFtZTpuLHByZWRpY2F0ZTpCZGUodC5zZWxlY3RvciksZGVzY2VuZGFudHM6dC5kZXNjZW5kYW50cyxmaXJzdDp0LmZpcnN0LHJlYWQ6dC5yZWFkP3QucmVhZDpudWxsLHN0YXRpYzohIXQuc3RhdGljLGVtaXREaXN0aW5jdENoYW5nZXNPbmx5OiEhdC5lbWl0RGlzdGluY3RDaGFuZ2VzT25seX19ZnVuY3Rpb24gWEgobix0LGUpe2xldCBpPVtdO2ZvcihsZXQgciBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkocikpe2xldCBvPXRbcl07by5mb3JFYWNoKGE9PntpZihlKGEpKXtpZighYS5zZWxlY3Rvcil0aHJvdyBuZXcgRXJyb3IoYENhbid0IGNvbnN0cnVjdCBhIHF1ZXJ5IGZvciB0aGUgcHJvcGVydHkgIiR7cn0iIG9mICIke0JQKG4pfSIgc2luY2UgdGhlIHF1ZXJ5IHNlbGVjdG9yIHdhc24ndCBkZWZpbmVkLmApO2lmKG8uc29tZSh3aikpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY29tYmluZSBASW5wdXQgZGVjb3JhdG9ycyB3aXRoIHF1ZXJ5IGRlY29yYXRvcnMiKTtpLnB1c2goVmRlKHIsYSkpfX0pfXJldHVybiBpfWZ1bmN0aW9uIEhkZShuKXtyZXR1cm4gdm9pZCAwPT09bj9udWxsOlNqKG4pfWZ1bmN0aW9uIENqKG4pe2xldCB0PW4ubmdNZXRhZGF0YU5hbWU7cmV0dXJuIkNvbnRlbnRDaGlsZCI9PT10fHwiQ29udGVudENoaWxkcmVuIj09PXR9ZnVuY3Rpb24gTWoobil7bGV0IHQ9bi5uZ01ldGFkYXRhTmFtZTtyZXR1cm4iVmlld0NoaWxkIj09PXR8fCJWaWV3Q2hpbGRyZW4iPT09dH1mdW5jdGlvbiB3aihuKXtyZXR1cm4iSW5wdXQiPT09bi5uZ01ldGFkYXRhTmFtZX1mdW5jdGlvbiBTaihuKXtyZXR1cm4gbi5zcGxpdCgiLCIpLm1hcCh0PT50LnRyaW0oKSl9dmFyIHpkZT1bIm5nT25DaGFuZ2VzIiwibmdPbkluaXQiLCJuZ09uRGVzdHJveSIsIm5nRG9DaGVjayIsIm5nQWZ0ZXJWaWV3SW5pdCIsIm5nQWZ0ZXJWaWV3Q2hlY2tlZCIsIm5nQWZ0ZXJDb250ZW50SW5pdCIsIm5nQWZ0ZXJDb250ZW50Q2hlY2tlZCJdO2Z1bmN0aW9uIFVkZShuKXtsZXQgdD1uaygpO2lmKHpkZS5zb21lKGk9PnQuaGFzTGlmZWN5Y2xlSG9vayhuLGkpKSlyZXR1cm4hMDtsZXQgZT10LnByb3BNZXRhZGF0YShuKTtmb3IobGV0IGkgaW4gZSl7bGV0IHI9ZVtpXTtmb3IobGV0IG89MDtvPHIubGVuZ3RoO28rKyl7bGV0IGE9cltvXSxzPWEubmdNZXRhZGF0YU5hbWU7aWYod2ooYSl8fENqKGEpfHxNaihhKXx8Ik91dHB1dCI9PT1zfHwiSG9zdEJpbmRpbmciPT09c3x8Ikhvc3RMaXN0ZW5lciI9PT1zKXJldHVybiEwfX1yZXR1cm4hMX1mdW5jdGlvbiBZSChuLHQpe3JldHVybnt0eXBlOm4sbmFtZTpuLm5hbWUscGlwZU5hbWU6dC5uYW1lLHB1cmU6dm9pZCAwPT09dC5wdXJlfHx0LnB1cmUsaXNTdGFuZGFsb25lOiEhdC5zdGFuZGFsb25lfX12YXIgR2RlPWNiKCJEaXJlY3RpdmUiLChuPXt9KT0+bix2b2lkIDAsdm9pZCAwLChuLHQpPT5faihuLHQpKTtmdW5jdGlvbiB4TSguLi5uKXt9Y2IoIkNvbXBvbmVudCIsKG49e30pPT4oe2NoYW5nZURldGVjdGlvbjpCXy5EZWZhdWx0LC4uLm59KSxHZGUsdm9pZCAwLChuLHQpPT5mdW5jdGlvbihuLHQpe2xldCBlPW51bGw7KGZ1bmN0aW9uKG4sdCl7VzUodCkmJihKXy5zZXQobix0KSxHNS5hZGQobikpfSkobix0KSx2aihuLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLEVNLHtnZXQ6KCk9PntpZihudWxsPT09ZSl7bGV0IGk9RnMoKTtpZihXNSh0KSl7bGV0IGM9W2BDb21wb25lbnQgJyR7bi5uYW1lfScgaXMgbm90IHJlc29sdmVkOmBdO3Rocm93IHQudGVtcGxhdGVVcmwmJmMucHVzaChgIC0gdGVtcGxhdGVVcmw6ICR7dC50ZW1wbGF0ZVVybH1gKSx0LnN0eWxlVXJscyYmdC5zdHlsZVVybHMubGVuZ3RoJiZjLnB1c2goYCAtIHN0eWxlVXJsczogJHtKU09OLnN0cmluZ2lmeSh0LnN0eWxlVXJscyl9YCksYy5wdXNoKCJEaWQgeW91IHJ1biBhbmQgd2FpdCBmb3IgJ3Jlc29sdmVDb21wb25lbnRSZXNvdXJjZXMoKSc/IiksbmV3IEVycm9yKGMuam9pbigiXG4iKSl9bGV0IG89dC5wcmVzZXJ2ZVdoaXRlc3BhY2VzO3ZvaWQgMD09PW8mJihvPW51bGwhPT1OXyYmdm9pZCAwIT09Tl8ucHJlc2VydmVXaGl0ZXNwYWNlcyYmTl8ucHJlc2VydmVXaGl0ZXNwYWNlcyk7bGV0IGE9dC5lbmNhcHN1bGF0aW9uO3ZvaWQgMD09PWEmJihhPW51bGwhPT1OXyYmdm9pZCAwIT09Tl8uZGVmYXVsdEVuY2Fwc3VsYXRpb24/Tl8uZGVmYXVsdEVuY2Fwc3VsYXRpb246YXMuRW11bGF0ZWQpO2xldCBzPXQudGVtcGxhdGVVcmx8fGBuZzovLy8ke24ubmFtZX0vdGVtcGxhdGUuaHRtbGAsbD17Li4ueWoobix0KSx0eXBlU291cmNlU3BhbjppLmNyZWF0ZVBhcnNlU291cmNlU3BhbigiQ29tcG9uZW50IixuLm5hbWUscyksdGVtcGxhdGU6dC50ZW1wbGF0ZXx8IiIscHJlc2VydmVXaGl0ZXNwYWNlczpvLHN0eWxlczp0LnN0eWxlc3x8amksYW5pbWF0aW9uczp0LmFuaW1hdGlvbnMsZGVjbGFyYXRpb25zOltdLGNoYW5nZURldGVjdGlvbjp0LmNoYW5nZURldGVjdGlvbixlbmNhcHN1bGF0aW9uOmEsaW50ZXJwb2xhdGlvbjp0LmludGVycG9sYXRpb24sdmlld1Byb3ZpZGVyczp0LnZpZXdQcm92aWRlcnN8fG51bGx9O0lSKys7dHJ5e2lmKGwudXNlc0luaGVyaXRhbmNlJiZ4aihuKSxlPWkuY29tcGlsZUNvbXBvbmVudCgkZCxzLGwpLHQuc3RhbmRhbG9uZSl7bGV0IGM9SmQodC5pbXBvcnRzfHxqaSkse2RpcmVjdGl2ZURlZnM6ZCxwaXBlRGVmczp1fT1mdW5jdGlvbihuLHQpe2xldCBlPW51bGwsaT1udWxsO3JldHVybntkaXJlY3RpdmVEZWZzOigpPT57aWYobnVsbD09PWUpe2U9W09zKG4pXTtsZXQgYT1uZXcgU2V0O2ZvcihsZXQgcyBvZiB0KXtsZXQgbD1BaShzKTtpZighYS5oYXMobCkpaWYoYS5hZGQobCksWm0obCkpe2xldCBjPW5mKGwpO2ZvcihsZXQgZCBvZiBjLmV4cG9ydGVkLmRpcmVjdGl2ZXMpe2xldCB1PU9zKGQpfHxldShkKTt1JiYhYS5oYXMoZCkmJihhLmFkZChkKSxlLnB1c2godSkpfX1lbHNle2xldCBjPU9zKGwpfHxldShsKTtjJiZlLnB1c2goYyl9fX1yZXR1cm4gZX0scGlwZURlZnM6KCk9PntpZihudWxsPT09aSl7aT1bXTtsZXQgYT1uZXcgU2V0O2ZvcihsZXQgcyBvZiB0KXtsZXQgbD1BaShzKTtpZighYS5oYXMobCkpaWYoYS5hZGQobCksWm0obCkpe2xldCBjPW5mKGwpO2ZvcihsZXQgZCBvZiBjLmV4cG9ydGVkLnBpcGVzKXtsZXQgdT10dShkKTt1JiYhYS5oYXMoZCkmJihhLmFkZChkKSxpLnB1c2godSkpfX1lbHNle2xldCBjPXR1KGwpO2MmJmkucHVzaChjKX19fXJldHVybiBpfX19KG4sYyk7ZS5kaXJlY3RpdmVEZWZzPWQsZS5waXBlRGVmcz11LGUuZGVwZW5kZW5jaWVzPSgpPT5jLm1hcChBaSl9fWZpbmFsbHl7SVItLX1pZigwPT09SVImJmZ1bmN0aW9uKCl7aWYoIURSKXtEUj0hMDt0cnl7Zm9yKGxldCBuPUtDLmxlbmd0aC0xO24+PTA7bi0tKXtsZXR7bW9kdWxlVHlwZTp0LG5nTW9kdWxlOmV9PUtDW25dO2UuZGVjbGFyYXRpb25zJiZlLmRlY2xhcmF0aW9ucy5ldmVyeShmaikmJihLQy5zcGxpY2UobiwxKSxQZGUodCxlKSl9fWZpbmFsbHl7RFI9ITF9fX0oKSxmdW5jdGlvbihuKXtyZXR1cm4gdm9pZCAwIT09bi5uZ1NlbGVjdG9yU2NvcGV9KG4pKXtsZXQgYz1uZihuLm5nU2VsZWN0b3JTY29wZSk7Z2ooZSxjKX1pZih0LnNjaGVtYXMpe2lmKCF0LnN0YW5kYWxvbmUpdGhyb3cgbmV3IEVycm9yKGBUaGUgJ3NjaGVtYXMnIHdhcyBzcGVjaWZpZWQgZm9yIHRoZSAke0JQKG4pfSBidXQgaXMgb25seSB2YWxpZCBvbiBhIGNvbXBvbmVudCB0aGF0IGlzIHN0YW5kYWxvbmUuYCk7ZS5zY2hlbWFzPXQuc2NoZW1hc31lbHNlIHQuc3RhbmRhbG9uZSYmKGUuc2NoZW1hcz1bXSl9cmV0dXJuIGV9LGNvbmZpZ3VyYWJsZTohMX0pfShuLHQpKSxjYigiUGlwZSIsbj0+KHtwdXJlOiEwLC4uLm59KSx2b2lkIDAsdm9pZCAwLChuLHQpPT5mdW5jdGlvbihuLHQpe2xldCBlPW51bGwsaT1udWxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLEtjLHtnZXQ6KCk9PntpZihudWxsPT09aSl7bGV0IHI9WUgobix0KSxvPUZzKCk7aT1vLmNvbXBpbGVGYWN0b3J5KCRkLGBuZzovLy8ke3IubmFtZX0vXHUwMjc1ZmFjLmpzYCx7bmFtZTpyLm5hbWUsdHlwZTpyLnR5cGUsdHlwZUFyZ3VtZW50Q291bnQ6MCxkZXBzOlBNKG4pLHRhcmdldDpvLkZhY3RvcnlUYXJnZXQuUGlwZX0pfXJldHVybiBpfSxjb25maWd1cmFibGU6ITF9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobixVUCx7Z2V0OigpPT57aWYobnVsbD09PWUpe2xldCByPVlIKG4sdCk7ZT1GcygpLmNvbXBpbGVQaXBlKCRkLGBuZzovLy8ke3IubmFtZX0vXHUwMjc1cGlwZS5qc2Ascil9cmV0dXJuIGV9LGNvbmZpZ3VyYWJsZTohMX0pfShuLHQpKSxhdSgiSW5wdXQiLG49Pih7YmluZGluZ1Byb3BlcnR5TmFtZTpufSkpLGF1KCJPdXRwdXQiLG49Pih7YmluZGluZ1Byb3BlcnR5TmFtZTpufSkpLGF1KCJIb3N0QmluZGluZyIsbj0+KHtob3N0UHJvcGVydHlOYW1lOm59KSksYXUoIkhvc3RMaXN0ZW5lciIsKG4sdCk9Pih7ZXZlbnROYW1lOm4sYXJnczp0fSkpLGNiKCJOZ01vZHVsZSIsbj0+bix2b2lkIDAsdm9pZCAwLChuLHQpPT5mdW5jdGlvbihuLHQ9e30peyhmdW5jdGlvbihuLHQsZT0hMSl7bGV0IGk9SmQodC5kZWNsYXJhdGlvbnN8fGppKSxyPW51bGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sczUse2NvbmZpZ3VyYWJsZTohMCxnZXQ6KCk9PihudWxsPT09ciYmKHI9RnMoKS5jb21waWxlTmdNb2R1bGUoJGQsYG5nOi8vLyR7bi5uYW1lfS9cdTAyNzVtb2QuanNgLHt0eXBlOm4sYm9vdHN0cmFwOkpkKHQuYm9vdHN0cmFwfHxqaSkubWFwKEFpKSxkZWNsYXJhdGlvbnM6aS5tYXAoQWkpLGltcG9ydHM6SmQodC5pbXBvcnRzfHxqaSkubWFwKEFpKS5tYXAocUgpLGV4cG9ydHM6SmQodC5leHBvcnRzfHxqaSkubWFwKEFpKS5tYXAocUgpLHNjaGVtYXM6dC5zY2hlbWFzP0pkKHQuc2NoZW1hcyk6bnVsbCxpZDp0LmlkfHxudWxsfSksci5zY2hlbWFzfHwoci5zY2hlbWFzPVtdKSkscil9KTtsZXQgbz1udWxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLEtjLHtnZXQ6KCk9PntpZihudWxsPT09byl7bGV0IHM9RnMoKTtvPXMuY29tcGlsZUZhY3RvcnkoJGQsYG5nOi8vLyR7bi5uYW1lfS9cdTAyNzVmYWMuanNgLHtuYW1lOm4ubmFtZSx0eXBlOm4sZGVwczpQTShuKSx0YXJnZXQ6cy5GYWN0b3J5VGFyZ2V0Lk5nTW9kdWxlLHR5cGVBcmd1bWVudENvdW50OjB9KX1yZXR1cm4gb30sY29uZmlndXJhYmxlOiExfSk7bGV0IGE9bnVsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkobixQUix7Z2V0OigpPT57aWYobnVsbD09PWEpe2xldCBzPXtuYW1lOm4ubmFtZSx0eXBlOm4scHJvdmlkZXJzOnQucHJvdmlkZXJzfHxqaSxpbXBvcnRzOlsodC5pbXBvcnRzfHxqaSkubWFwKEFpKSwodC5leHBvcnRzfHxqaSkubWFwKEFpKV19O2E9RnMoKS5jb21waWxlSW5qZWN0b3IoJGQsYG5nOi8vLyR7bi5uYW1lfS9cdTAyNzVpbmouanNgLHMpfXJldHVybiBhfSxjb25maWd1cmFibGU6ITF9KX0pKG4sdCksdm9pZCAwIT09dC5pZCYmcTUobix0LmlkKSxmdW5jdGlvbihuLHQpe0tDLnB1c2goe21vZHVsZVR5cGU6bixuZ01vZHVsZTp0fSl9KG4sdCl9KG4sdCkpO3ZhciBPaz1uZXcgdGUoIkFwcGxpY2F0aW9uIEluaXRpYWxpemVyIiksS009KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLmFwcEluaXRzPWUsdGhpcy5yZXNvbHZlPXhNLHRoaXMucmVqZWN0PXhNLHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5kb25lPSExLHRoaXMuZG9uZVByb21pc2U9bmV3IFByb21pc2UoKGkscik9Pnt0aGlzLnJlc29sdmU9aSx0aGlzLnJlamVjdD1yfSl9cnVuSW5pdGlhbGl6ZXJzKCl7aWYodGhpcy5pbml0aWFsaXplZClyZXR1cm47bGV0IGU9W10saT0oKT0+e3RoaXMuZG9uZT0hMCx0aGlzLnJlc29sdmUoKX07aWYodGhpcy5hcHBJbml0cylmb3IobGV0IHI9MDtyPHRoaXMuYXBwSW5pdHMubGVuZ3RoO3IrKyl7bGV0IG89dGhpcy5hcHBJbml0c1tyXSgpO2lmKENmKG8pKWUucHVzaChvKTtlbHNlIGlmKElrKG8pKXtsZXQgYT1uZXcgUHJvbWlzZSgocyxsKT0+e28uc3Vic2NyaWJlKHtjb21wbGV0ZTpzLGVycm9yOmx9KX0pO2UucHVzaChhKX19UHJvbWlzZS5hbGwoZSkudGhlbigoKT0+e2koKX0pLmNhdGNoKHI9Pnt0aGlzLnJlamVjdChyKX0pLDA9PT1lLmxlbmd0aCYmaSgpLHRoaXMuaW5pdGlhbGl6ZWQ9ITB9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oT2ssOCkpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLG59KSgpLCRwPW5ldyB0ZSgiQXBwSWQiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuYCR7QVIoKX0ke0FSKCl9JHtBUigpfWB9fSk7ZnVuY3Rpb24gQVIoKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSg5NytNYXRoLmZsb29yKDI1Kk1hdGgucmFuZG9tKCkpKX12YXIgRms9bmV3IHRlKCJQbGF0Zm9ybSBJbml0aWFsaXplciIpLGZjPW5ldyB0ZSgiUGxhdGZvcm0gSUQiLHtwcm92aWRlZEluOiJwbGF0Zm9ybSIsZmFjdG9yeTooKT0+InVua25vd24ifSkscGk9KG5ldyB0ZSgiQXBwbGljYXRpb24gUGFja2FnZXMgUm9vdCBVUkwiKSxuZXcgdGUoIkFuaW1hdGlvbk1vZHVsZVR5cGUiKSksYWQ9bmV3IHRlKCJMb2NhbGVJZCIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9PiRuKGFkLENpLk9wdGlvbmFsfENpLlNraXBTZWxmKXx8dHlwZW9mICRsb2NhbGl6ZTwidSImJiRsb2NhbGl6ZS5sb2NhbGV8fGJNfSksUWRlPShuZXcgdGUoIkRlZmF1bHRDdXJyZW5jeUNvZGUiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT4iVVNEIn0pLG5ldyB0ZSgiVHJhbnNsYXRpb25zIiksbmV3IHRlKCJUcmFuc2xhdGlvbnNGb3JtYXQiKSxuZXcgdGUoImNvbXBpbGVyT3B0aW9ucyIpLFByb21pc2UucmVzb2x2ZSgwKSk7ZnVuY3Rpb24gSVAobil7dHlwZW9mIFpvbmU+InUiP1FkZS50aGVuKCgpPT57biYmbi5hcHBseShudWxsLG51bGwpfSk6Wm9uZS5jdXJyZW50LnNjaGVkdWxlTWljcm9UYXNrKCJzY2hlZHVsZU1pY3JvdGFzayIsbil9dmFyIG90PWNsYXNze2NvbnN0cnVjdG9yKHtlbmFibGVMb25nU3RhY2tUcmFjZTp0PSExLHNob3VsZENvYWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb246ZT0hMSxzaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbjppPSExfSl7aWYodGhpcy5oYXNQZW5kaW5nTWFjcm90YXNrcz0hMSx0aGlzLmhhc1BlbmRpbmdNaWNyb3Rhc2tzPSExLHRoaXMuaXNTdGFibGU9ITAsdGhpcy5vblVuc3RhYmxlPW5ldyBGKCExKSx0aGlzLm9uTWljcm90YXNrRW1wdHk9bmV3IEYoITEpLHRoaXMub25TdGFibGU9bmV3IEYoITEpLHRoaXMub25FcnJvcj1uZXcgRighMSksdHlwZW9mIFpvbmU+InUiKXRocm93IG5ldyB4dCg5MDgsITEpO1pvbmUuYXNzZXJ0Wm9uZVBhdGNoZWQoKTtsZXQgcj10aGlzO3IuX25lc3Rpbmc9MCxyLl9vdXRlcj1yLl9pbm5lcj1ab25lLmN1cnJlbnQsWm9uZS5UYXNrVHJhY2tpbmdab25lU3BlYyYmKHIuX2lubmVyPXIuX2lubmVyLmZvcmsobmV3IFpvbmUuVGFza1RyYWNraW5nWm9uZVNwZWMpKSx0JiZab25lLmxvbmdTdGFja1RyYWNlWm9uZVNwZWMmJihyLl9pbm5lcj1yLl9pbm5lci5mb3JrKFpvbmUubG9uZ1N0YWNrVHJhY2Vab25lU3BlYykpLHIuc2hvdWxkQ29hbGVzY2VFdmVudENoYW5nZURldGVjdGlvbj0haSYmZSxyLnNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uPWksci5sYXN0UmVxdWVzdEFuaW1hdGlvbkZyYW1lSWQ9LTEsci5uYXRpdmVSZXF1ZXN0QW5pbWF0aW9uRnJhbWU9ZnVuY3Rpb24oKXtsZXQgbj16ci5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUsdD16ci5jYW5jZWxBbmltYXRpb25GcmFtZTtpZih0eXBlb2YgWm9uZTwidSImJm4mJnQpe2xldCBlPW5bWm9uZS5fX3N5bWJvbF9fKCJPcmlnaW5hbERlbGVnYXRlIildO2UmJihuPWUpO2xldCBpPXRbWm9uZS5fX3N5bWJvbF9fKCJPcmlnaW5hbERlbGVnYXRlIildO2kmJih0PWkpfXJldHVybntuYXRpdmVSZXF1ZXN0QW5pbWF0aW9uRnJhbWU6bixuYXRpdmVDYW5jZWxBbmltYXRpb25GcmFtZTp0fX0oKS5uYXRpdmVSZXF1ZXN0QW5pbWF0aW9uRnJhbWUsZnVuY3Rpb24obil7bGV0IHQ9KCk9PnshZnVuY3Rpb24obil7bi5pc0NoZWNrU3RhYmxlUnVubmluZ3x8LTEhPT1uLmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZHx8KG4ubGFzdFJlcXVlc3RBbmltYXRpb25GcmFtZUlkPW4ubmF0aXZlUmVxdWVzdEFuaW1hdGlvbkZyYW1lLmNhbGwoenIsKCk9PntuLmZha2VUb3BFdmVudFRhc2t8fChuLmZha2VUb3BFdmVudFRhc2s9Wm9uZS5yb290LnNjaGVkdWxlRXZlbnRUYXNrKCJmYWtlVG9wRXZlbnRUYXNrIiwoKT0+e24ubGFzdFJlcXVlc3RBbmltYXRpb25GcmFtZUlkPS0xLEFQKG4pLG4uaXNDaGVja1N0YWJsZVJ1bm5pbmc9ITAsTmsobiksbi5pc0NoZWNrU3RhYmxlUnVubmluZz0hMX0sdm9pZCAwLCgpPT57fSwoKT0+e30pKSxuLmZha2VUb3BFdmVudFRhc2suaW52b2tlKCl9KSxBUChuKSl9KG4pfTtuLl9pbm5lcj1uLl9pbm5lci5mb3JrKHtuYW1lOiJhbmd1bGFyIixwcm9wZXJ0aWVzOntpc0FuZ3VsYXJab25lOiEwfSxvbkludm9rZVRhc2s6KGUsaSxyLG8sYSxzKT0+e3RyeXtyZXR1cm4gUUgobiksZS5pbnZva2VUYXNrKHIsbyxhLHMpfWZpbmFsbHl7KG4uc2hvdWxkQ29hbGVzY2VFdmVudENoYW5nZURldGVjdGlvbiYmImV2ZW50VGFzayI9PT1vLnR5cGV8fG4uc2hvdWxkQ29hbGVzY2VSdW5DaGFuZ2VEZXRlY3Rpb24pJiZ0KCksWkgobil9fSxvbkludm9rZTooZSxpLHIsbyxhLHMsbCk9Pnt0cnl7cmV0dXJuIFFIKG4pLGUuaW52b2tlKHIsbyxhLHMsbCl9ZmluYWxseXtuLnNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uJiZ0KCksWkgobil9fSxvbkhhc1Rhc2s6KGUsaSxyLG8pPT57ZS5oYXNUYXNrKHIsbyksaT09PXImJigibWljcm9UYXNrIj09by5jaGFuZ2U/KG4uX2hhc1BlbmRpbmdNaWNyb3Rhc2tzPW8ubWljcm9UYXNrLEFQKG4pLE5rKG4pKToibWFjcm9UYXNrIj09by5jaGFuZ2UmJihuLmhhc1BlbmRpbmdNYWNyb3Rhc2tzPW8ubWFjcm9UYXNrKSl9LG9uSGFuZGxlRXJyb3I6KGUsaSxyLG8pPT4oZS5oYW5kbGVFcnJvcihyLG8pLG4ucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pm4ub25FcnJvci5lbWl0KG8pKSwhMSl9KX0ocil9c3RhdGljIGlzSW5Bbmd1bGFyWm9uZSgpe3JldHVybiB0eXBlb2YgWm9uZTwidSImJiEwPT09Wm9uZS5jdXJyZW50LmdldCgiaXNBbmd1bGFyWm9uZSIpfXN0YXRpYyBhc3NlcnRJbkFuZ3VsYXJab25lKCl7aWYoIW90LmlzSW5Bbmd1bGFyWm9uZSgpKXRocm93IG5ldyB4dCg5MDksITEpfXN0YXRpYyBhc3NlcnROb3RJbkFuZ3VsYXJab25lKCl7aWYob3QuaXNJbkFuZ3VsYXJab25lKCkpdGhyb3cgbmV3IHh0KDkwOSwhMSl9cnVuKHQsZSxpKXtyZXR1cm4gdGhpcy5faW5uZXIucnVuKHQsZSxpKX1ydW5UYXNrKHQsZSxpLHIpe2xldCBvPXRoaXMuX2lubmVyLGE9by5zY2hlZHVsZUV2ZW50VGFzaygiTmdab25lRXZlbnQ6ICIrcix0LEtkZSx4TSx4TSk7dHJ5e3JldHVybiBvLnJ1blRhc2soYSxlLGkpfWZpbmFsbHl7by5jYW5jZWxUYXNrKGEpfX1ydW5HdWFyZGVkKHQsZSxpKXtyZXR1cm4gdGhpcy5faW5uZXIucnVuR3VhcmRlZCh0LGUsaSl9cnVuT3V0c2lkZUFuZ3VsYXIodCl7cmV0dXJuIHRoaXMuX291dGVyLnJ1bih0KX19LEtkZT17fTtmdW5jdGlvbiBOayhuKXtpZigwPT1uLl9uZXN0aW5nJiYhbi5oYXNQZW5kaW5nTWljcm90YXNrcyYmIW4uaXNTdGFibGUpdHJ5e24uX25lc3RpbmcrKyxuLm9uTWljcm90YXNrRW1wdHkuZW1pdChudWxsKX1maW5hbGx5e2lmKG4uX25lc3RpbmctLSwhbi5oYXNQZW5kaW5nTWljcm90YXNrcyl0cnl7bi5ydW5PdXRzaWRlQW5ndWxhcigoKT0+bi5vblN0YWJsZS5lbWl0KG51bGwpKX1maW5hbGx5e24uaXNTdGFibGU9ITB9fX1mdW5jdGlvbiBBUChuKXtuLmhhc1BlbmRpbmdNaWNyb3Rhc2tzPSEhKG4uX2hhc1BlbmRpbmdNaWNyb3Rhc2tzfHwobi5zaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0ZWN0aW9ufHxuLnNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uKSYmLTEhPT1uLmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZCl9ZnVuY3Rpb24gUUgobil7bi5fbmVzdGluZysrLG4uaXNTdGFibGUmJihuLmlzU3RhYmxlPSExLG4ub25VbnN0YWJsZS5lbWl0KG51bGwpKX1mdW5jdGlvbiBaSChuKXtuLl9uZXN0aW5nLS0sTmsobil9dmFyIEJrLExrPW5ldyB0ZSgiIiksTWI9bmV3IHRlKCIiKSxKTT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSxyKXt0aGlzLl9uZ1pvbmU9ZSx0aGlzLnJlZ2lzdHJ5PWksdGhpcy5fcGVuZGluZ0NvdW50PTAsdGhpcy5faXNab25lU3RhYmxlPSEwLHRoaXMuX2RpZFdvcms9ITEsdGhpcy5fY2FsbGJhY2tzPVtdLHRoaXMudGFza1RyYWNraW5nWm9uZT1udWxsLEJrfHwoZnVuY3Rpb24obil7Qms9bn0ociksci5hZGRUb1dpbmRvdyhpKSksdGhpcy5fd2F0Y2hBbmd1bGFyRXZlbnRzKCksZS5ydW4oKCk9Pnt0aGlzLnRhc2tUcmFja2luZ1pvbmU9dHlwZW9mIFpvbmU+InUiP251bGw6Wm9uZS5jdXJyZW50LmdldCgiVGFza1RyYWNraW5nWm9uZSIpfSl9X3dhdGNoQW5ndWxhckV2ZW50cygpe3RoaXMuX25nWm9uZS5vblVuc3RhYmxlLnN1YnNjcmliZSh7bmV4dDooKT0+e3RoaXMuX2RpZFdvcms9ITAsdGhpcy5faXNab25lU3RhYmxlPSExfX0pLHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuX25nWm9uZS5vblN0YWJsZS5zdWJzY3JpYmUoe25leHQ6KCk9PntvdC5hc3NlcnROb3RJbkFuZ3VsYXJab25lKCksSVAoKCk9Pnt0aGlzLl9pc1pvbmVTdGFibGU9ITAsdGhpcy5fcnVuQ2FsbGJhY2tzSWZSZWFkeSgpfSl9fSl9KX1pbmNyZWFzZVBlbmRpbmdSZXF1ZXN0Q291bnQoKXtyZXR1cm4gdGhpcy5fcGVuZGluZ0NvdW50Kz0xLHRoaXMuX2RpZFdvcms9ITAsdGhpcy5fcGVuZGluZ0NvdW50fWRlY3JlYXNlUGVuZGluZ1JlcXVlc3RDb3VudCgpe2lmKHRoaXMuX3BlbmRpbmdDb3VudC09MSx0aGlzLl9wZW5kaW5nQ291bnQ8MCl0aHJvdyBuZXcgRXJyb3IoInBlbmRpbmcgYXN5bmMgcmVxdWVzdHMgYmVsb3cgemVybyIpO3JldHVybiB0aGlzLl9ydW5DYWxsYmFja3NJZlJlYWR5KCksdGhpcy5fcGVuZGluZ0NvdW50fWlzU3RhYmxlKCl7cmV0dXJuIHRoaXMuX2lzWm9uZVN0YWJsZSYmMD09PXRoaXMuX3BlbmRpbmdDb3VudCYmIXRoaXMuX25nWm9uZS5oYXNQZW5kaW5nTWFjcm90YXNrc31fcnVuQ2FsbGJhY2tzSWZSZWFkeSgpe2lmKHRoaXMuaXNTdGFibGUoKSlJUCgoKT0+e2Zvcig7MCE9PXRoaXMuX2NhbGxiYWNrcy5sZW5ndGg7KXtsZXQgZT10aGlzLl9jYWxsYmFja3MucG9wKCk7Y2xlYXJUaW1lb3V0KGUudGltZW91dElkKSxlLmRvbmVDYih0aGlzLl9kaWRXb3JrKX10aGlzLl9kaWRXb3JrPSExfSk7ZWxzZXtsZXQgZT10aGlzLmdldFBlbmRpbmdUYXNrcygpO3RoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3MuZmlsdGVyKGk9PiFpLnVwZGF0ZUNifHwhaS51cGRhdGVDYihlKXx8KGNsZWFyVGltZW91dChpLnRpbWVvdXRJZCksITEpKSx0aGlzLl9kaWRXb3JrPSEwfX1nZXRQZW5kaW5nVGFza3MoKXtyZXR1cm4gdGhpcy50YXNrVHJhY2tpbmdab25lP3RoaXMudGFza1RyYWNraW5nWm9uZS5tYWNyb1Rhc2tzLm1hcChlPT4oe3NvdXJjZTplLnNvdXJjZSxjcmVhdGlvbkxvY2F0aW9uOmUuY3JlYXRpb25Mb2NhdGlvbixkYXRhOmUuZGF0YX0pKTpbXX1hZGRDYWxsYmFjayhlLGkscil7bGV0IG89LTE7aSYmaT4wJiYobz1zZXRUaW1lb3V0KCgpPT57dGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrcy5maWx0ZXIoYT0+YS50aW1lb3V0SWQhPT1vKSxlKHRoaXMuX2RpZFdvcmssdGhpcy5nZXRQZW5kaW5nVGFza3MoKSl9LGkpKSx0aGlzLl9jYWxsYmFja3MucHVzaCh7ZG9uZUNiOmUsdGltZW91dElkOm8sdXBkYXRlQ2I6cn0pfXdoZW5TdGFibGUoZSxpLHIpe2lmKHImJiF0aGlzLnRhc2tUcmFja2luZ1pvbmUpdGhyb3cgbmV3IEVycm9yKCdUYXNrIHRyYWNraW5nIHpvbmUgaXMgcmVxdWlyZWQgd2hlbiBwYXNzaW5nIGFuIHVwZGF0ZSBjYWxsYmFjayB0byB3aGVuU3RhYmxlKCkuIElzICJ6b25lLmpzL3BsdWdpbnMvdGFzay10cmFja2luZyIgbG9hZGVkPycpO3RoaXMuYWRkQ2FsbGJhY2soZSxpLHIpLHRoaXMuX3J1bkNhbGxiYWNrc0lmUmVhZHkoKX1nZXRQZW5kaW5nUmVxdWVzdENvdW50KCl7cmV0dXJuIHRoaXMuX3BlbmRpbmdDb3VudH1yZWdpc3RlckFwcGxpY2F0aW9uKGUpe3RoaXMucmVnaXN0cnkucmVnaXN0ZXJBcHBsaWNhdGlvbihlLHRoaXMpfXVucmVnaXN0ZXJBcHBsaWNhdGlvbihlKXt0aGlzLnJlZ2lzdHJ5LnVucmVnaXN0ZXJBcHBsaWNhdGlvbihlKX1maW5kUHJvdmlkZXJzKGUsaSxyKXtyZXR1cm5bXX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhvdCksTygkTSksTyhNYikpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLCRNPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLl9hcHBsaWNhdGlvbnM9bmV3IE1hcH1yZWdpc3RlckFwcGxpY2F0aW9uKGUsaSl7dGhpcy5fYXBwbGljYXRpb25zLnNldChlLGkpfXVucmVnaXN0ZXJBcHBsaWNhdGlvbihlKXt0aGlzLl9hcHBsaWNhdGlvbnMuZGVsZXRlKGUpfXVucmVnaXN0ZXJBbGxBcHBsaWNhdGlvbnMoKXt0aGlzLl9hcHBsaWNhdGlvbnMuY2xlYXIoKX1nZXRUZXN0YWJpbGl0eShlKXtyZXR1cm4gdGhpcy5fYXBwbGljYXRpb25zLmdldChlKXx8bnVsbH1nZXRBbGxUZXN0YWJpbGl0aWVzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fYXBwbGljYXRpb25zLnZhbHVlcygpKX1nZXRBbGxSb290RWxlbWVudHMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9hcHBsaWNhdGlvbnMua2V5cygpKX1maW5kVGVzdGFiaWxpdHlJblRyZWUoZSxpPSEwKXtyZXR1cm4gQms/LmZpbmRUZXN0YWJpbGl0eUluVHJlZSh0aGlzLGUsaSk/P251bGx9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhYyxwcm92aWRlZEluOiJwbGF0Zm9ybSJ9KSxufSkoKSxxXz1udWxsLEVqPW5ldyB0ZSgiQWxsb3dNdWx0aXBsZVRva2VuIiksVGo9bmV3IHRlKCJQbGF0Zm9ybURlc3Ryb3lMaXN0ZW5lcnMiKSx0dWU9bmV3IHRlKCJhcHBCb290c3RyYXBMaXN0ZW5lciIpO2Z1bmN0aW9uIFZrKG4sdCxlPVtdKXtsZXQgaT1gUGxhdGZvcm06ICR7dH1gLHI9bmV3IHRlKGkpO3JldHVybihvPVtdKT0+e2xldCBhPURqKCk7aWYoIWF8fGEuaW5qZWN0b3IuZ2V0KEVqLCExKSl7bGV0IHM9Wy4uLmUsLi4ubyx7cHJvdmlkZTpyLHVzZVZhbHVlOiEwfV07bj9uKHMpOmZ1bmN0aW9uKG4pe2lmKHFfJiYhcV8uZ2V0KEVqLCExKSl0aHJvdyBuZXcgeHQoNDAwLCExKTtxXz1uO2xldCB0PW4uZ2V0KElqKTsoZnVuY3Rpb24obil7bGV0IHQ9bi5nZXQoRmssbnVsbCk7dCYmdC5mb3JFYWNoKGU9PmUoKSl9KShuKX0oZnVuY3Rpb24obj1bXSx0KXtyZXR1cm4gd2kuY3JlYXRlKHtuYW1lOnQscHJvdmlkZXJzOlt7cHJvdmlkZTpMTSx1c2VWYWx1ZToicGxhdGZvcm0ifSx7cHJvdmlkZTpUaix1c2VWYWx1ZTpuZXcgU2V0KFsoKT0+cV89bnVsbF0pfSwuLi5uXX0pfShzLGkpKX1yZXR1cm4gZnVuY3Rpb24obil7bGV0IHQ9RGooKTtpZighdCl0aHJvdyBuZXcgeHQoNDAxLCExKTtyZXR1cm4gdH0oKX19ZnVuY3Rpb24gRGooKXtyZXR1cm4gcV8/LmdldChJaik/P251bGx9dmFyIElqPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5faW5qZWN0b3I9ZSx0aGlzLl9tb2R1bGVzPVtdLHRoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnM9W10sdGhpcy5fZGVzdHJveWVkPSExfWJvb3RzdHJhcE1vZHVsZUZhY3RvcnkoZSxpKXtsZXQgcj1mdW5jdGlvbihuLHQpe2xldCBlO3JldHVybiBlPSJub29wIj09PW4/bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYXNQZW5kaW5nTWljcm90YXNrcz0hMSx0aGlzLmhhc1BlbmRpbmdNYWNyb3Rhc2tzPSExLHRoaXMuaXNTdGFibGU9ITAsdGhpcy5vblVuc3RhYmxlPW5ldyBGLHRoaXMub25NaWNyb3Rhc2tFbXB0eT1uZXcgRix0aGlzLm9uU3RhYmxlPW5ldyBGLHRoaXMub25FcnJvcj1uZXcgRn1ydW4odCxlLGkpe3JldHVybiB0LmFwcGx5KGUsaSl9cnVuR3VhcmRlZCh0LGUsaSl7cmV0dXJuIHQuYXBwbHkoZSxpKX1ydW5PdXRzaWRlQW5ndWxhcih0KXtyZXR1cm4gdCgpfXJ1blRhc2sodCxlLGkscil7cmV0dXJuIHQuYXBwbHkoZSxpKX19Oigiem9uZS5qcyI9PT1uP3ZvaWQgMDpuKXx8bmV3IG90KHQpLGV9KGk/Lm5nWm9uZSxmdW5jdGlvbihuKXtyZXR1cm57ZW5hYmxlTG9uZ1N0YWNrVHJhY2U6ITEsc2hvdWxkQ29hbGVzY2VFdmVudENoYW5nZURldGVjdGlvbjohKCFufHwhbi5uZ1pvbmVFdmVudENvYWxlc2NpbmcpfHwhMSxzaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbjohKCFufHwhbi5uZ1pvbmVSdW5Db2FsZXNjaW5nKXx8ITF9fShpKSksbz1be3Byb3ZpZGU6b3QsdXNlVmFsdWU6cn1dO3JldHVybiByLnJ1bigoKT0+e2xldCBhPXdpLmNyZWF0ZSh7cHJvdmlkZXJzOm8scGFyZW50OnRoaXMuaW5qZWN0b3IsbmFtZTplLm1vZHVsZVR5cGUubmFtZX0pLHM9ZS5jcmVhdGUoYSksbD1zLmluamVjdG9yLmdldChsYSxudWxsKTtpZighbCl0aHJvdyBuZXcgeHQoNDAyLCExKTtyZXR1cm4gci5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e2xldCBjPXIub25FcnJvci5zdWJzY3JpYmUoe25leHQ6ZD0+e2wuaGFuZGxlRXJyb3IoZCl9fSk7cy5vbkRlc3Ryb3koKCk9PntKQyh0aGlzLl9tb2R1bGVzLHMpLGMudW5zdWJzY3JpYmUoKX0pfSksZnVuY3Rpb24obix0LGUpe3RyeXtsZXQgaT1lKCk7cmV0dXJuIENmKGkpP2kuY2F0Y2gocj0+e3Rocm93IHQucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pm4uaGFuZGxlRXJyb3IocikpLHJ9KTppfWNhdGNoKGkpe3Rocm93IHQucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pm4uaGFuZGxlRXJyb3IoaSkpLGl9fShsLHIsKCk9PntsZXQgYz1zLmluamVjdG9yLmdldChLTSk7cmV0dXJuIGMucnVuSW5pdGlhbGl6ZXJzKCksYy5kb25lUHJvbWlzZS50aGVuKCgpPT4oZnVuY3Rpb24obil7KGZ1bmN0aW9uKG4sdCl7bnVsbD09biYmaTUoIkV4cGVjdGVkIGxvY2FsZUlkIHRvIGJlIGRlZmluZWQiLG4sbnVsbCwiIT0iKX0pKG4pLCJzdHJpbmciPT10eXBlb2YgbiYmKHpVPW4udG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9fL2csIi0iKSl9KHMuaW5qZWN0b3IuZ2V0KGFkLGJNKXx8Yk0pLHRoaXMuX21vZHVsZURvQm9vdHN0cmFwKHMpLHMpKX0pfSl9Ym9vdHN0cmFwTW9kdWxlKGUsaT1bXSl7bGV0IHI9QWooe30saSk7cmV0dXJuIGZ1bmN0aW9uKG4sdCxlKXtsZXQgaT1uZXcgU1AoZSk7cmV0dXJuIFByb21pc2UucmVzb2x2ZShpKX0oMCwwLGUpLnRoZW4obz0+dGhpcy5ib290c3RyYXBNb2R1bGVGYWN0b3J5KG8scikpfV9tb2R1bGVEb0Jvb3RzdHJhcChlKXtsZXQgaT1lLmluamVjdG9yLmdldChnYyk7aWYoZS5fYm9vdHN0cmFwQ29tcG9uZW50cy5sZW5ndGg+MCllLl9ib290c3RyYXBDb21wb25lbnRzLmZvckVhY2gocj0+aS5ib290c3RyYXAocikpO2Vsc2V7aWYoIWUuaW5zdGFuY2UubmdEb0Jvb3RzdHJhcCl0aHJvdyBuZXcgeHQoLTQwMywhMSk7ZS5pbnN0YW5jZS5uZ0RvQm9vdHN0cmFwKGkpfXRoaXMuX21vZHVsZXMucHVzaChlKX1vbkRlc3Ryb3koZSl7dGhpcy5fZGVzdHJveUxpc3RlbmVycy5wdXNoKGUpfWdldCBpbmplY3Rvcigpe3JldHVybiB0aGlzLl9pbmplY3Rvcn1kZXN0cm95KCl7aWYodGhpcy5fZGVzdHJveWVkKXRocm93IG5ldyB4dCg0MDQsITEpO3RoaXMuX21vZHVsZXMuc2xpY2UoKS5mb3JFYWNoKGk9PmkuZGVzdHJveSgpKSx0aGlzLl9kZXN0cm95TGlzdGVuZXJzLmZvckVhY2goaT0+aSgpKTtsZXQgZT10aGlzLl9pbmplY3Rvci5nZXQoVGosbnVsbCk7ZSYmKGUuZm9yRWFjaChpPT5pKCkpLGUuY2xlYXIoKSksdGhpcy5fZGVzdHJveWVkPSEwfWdldCBkZXN0cm95ZWQoKXtyZXR1cm4gdGhpcy5fZGVzdHJveWVkfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKHdpKSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InBsYXRmb3JtIn0pLG59KSgpO2Z1bmN0aW9uIEFqKG4sdCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dC5yZWR1Y2UoQWosbik6ey4uLm4sLi4udH19dmFyIGdjPSgoKT0+e2NsYXNzIG57Z2V0IGRlc3Ryb3llZCgpe3JldHVybiB0aGlzLl9kZXN0cm95ZWR9Z2V0IGluamVjdG9yKCl7cmV0dXJuIHRoaXMuX2luamVjdG9yfWNvbnN0cnVjdG9yKGUsaSxyKXt0aGlzLl96b25lPWUsdGhpcy5faW5qZWN0b3I9aSx0aGlzLl9leGNlcHRpb25IYW5kbGVyPXIsdGhpcy5fYm9vdHN0cmFwTGlzdGVuZXJzPVtdLHRoaXMuX3ZpZXdzPVtdLHRoaXMuX3J1bm5pbmdUaWNrPSExLHRoaXMuX3N0YWJsZT0hMCx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZGVzdHJveUxpc3RlbmVycz1bXSx0aGlzLmNvbXBvbmVudFR5cGVzPVtdLHRoaXMuY29tcG9uZW50cz1bXSx0aGlzLl9vbk1pY3JvdGFza0VtcHR5U3Vic2NyaXB0aW9uPXRoaXMuX3pvbmUub25NaWNyb3Rhc2tFbXB0eS5zdWJzY3JpYmUoe25leHQ6KCk9Pnt0aGlzLl96b25lLnJ1bigoKT0+e3RoaXMudGljaygpfSl9fSk7bGV0IG89bmV3IEt0KHM9Pnt0aGlzLl9zdGFibGU9dGhpcy5fem9uZS5pc1N0YWJsZSYmIXRoaXMuX3pvbmUuaGFzUGVuZGluZ01hY3JvdGFza3MmJiF0aGlzLl96b25lLmhhc1BlbmRpbmdNaWNyb3Rhc2tzLHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PntzLm5leHQodGhpcy5fc3RhYmxlKSxzLmNvbXBsZXRlKCl9KX0pLGE9bmV3IEt0KHM9PntsZXQgbDt0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57bD10aGlzLl96b25lLm9uU3RhYmxlLnN1YnNjcmliZSgoKT0+e290LmFzc2VydE5vdEluQW5ndWxhclpvbmUoKSxJUCgoKT0+eyF0aGlzLl9zdGFibGUmJiF0aGlzLl96b25lLmhhc1BlbmRpbmdNYWNyb3Rhc2tzJiYhdGhpcy5fem9uZS5oYXNQZW5kaW5nTWljcm90YXNrcyYmKHRoaXMuX3N0YWJsZT0hMCxzLm5leHQoITApKX0pfSl9KTtsZXQgYz10aGlzLl96b25lLm9uVW5zdGFibGUuc3Vic2NyaWJlKCgpPT57b3QuYXNzZXJ0SW5Bbmd1bGFyWm9uZSgpLHRoaXMuX3N0YWJsZSYmKHRoaXMuX3N0YWJsZT0hMSx0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57cy5uZXh0KCExKX0pKX0pO3JldHVybigpPT57bC51bnN1YnNjcmliZSgpLGMudW5zdWJzY3JpYmUoKX19KTt0aGlzLmlzU3RhYmxlPXRuKG8sYS5waXBlKFRhKCkpKX1ib290c3RyYXAoZSxpKXtsZXQgYSxyPWUgaW5zdGFuY2VvZiBoTTtpZighdGhpcy5faW5qZWN0b3IuZ2V0KEtNKS5kb25lKXRocm93IXImJmw1KGUpLG5ldyB4dCg0MDUsZmFsc2UpO2E9cj9lOnRoaXMuX2luamVjdG9yLmdldChobykucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoZSksdGhpcy5jb21wb25lbnRUeXBlcy5wdXNoKGEuY29tcG9uZW50VHlwZSk7bGV0IHM9ZnVuY3Rpb24obil7cmV0dXJuIG4uaXNCb3VuZFRvTW9kdWxlfShhKT92b2lkIDA6dGhpcy5faW5qZWN0b3IuZ2V0KGl1KSxjPWEuY3JlYXRlKHdpLk5VTEwsW10saXx8YS5zZWxlY3RvcixzKSxkPWMubG9jYXRpb24ubmF0aXZlRWxlbWVudCx1PWMuaW5qZWN0b3IuZ2V0KExrLG51bGwpO3JldHVybiB1Py5yZWdpc3RlckFwcGxpY2F0aW9uKGQpLGMub25EZXN0cm95KCgpPT57dGhpcy5kZXRhY2hWaWV3KGMuaG9zdFZpZXcpLEpDKHRoaXMuY29tcG9uZW50cyxjKSx1Py51bnJlZ2lzdGVyQXBwbGljYXRpb24oZCl9KSx0aGlzLl9sb2FkQ29tcG9uZW50KGMpLGN9dGljaygpe2lmKHRoaXMuX3J1bm5pbmdUaWNrKXRocm93IG5ldyB4dCgxMDEsITEpO3RyeXt0aGlzLl9ydW5uaW5nVGljaz0hMDtmb3IobGV0IGUgb2YgdGhpcy5fdmlld3MpZS5kZXRlY3RDaGFuZ2VzKCl9Y2F0Y2goZSl7dGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+dGhpcy5fZXhjZXB0aW9uSGFuZGxlci5oYW5kbGVFcnJvcihlKSl9ZmluYWxseXt0aGlzLl9ydW5uaW5nVGljaz0hMX19YXR0YWNoVmlldyhlKXtsZXQgaT1lO3RoaXMuX3ZpZXdzLnB1c2goaSksaS5hdHRhY2hUb0FwcFJlZih0aGlzKX1kZXRhY2hWaWV3KGUpe2xldCBpPWU7SkModGhpcy5fdmlld3MsaSksaS5kZXRhY2hGcm9tQXBwUmVmKCl9X2xvYWRDb21wb25lbnQoZSl7dGhpcy5hdHRhY2hWaWV3KGUuaG9zdFZpZXcpLHRoaXMudGljaygpLHRoaXMuY29tcG9uZW50cy5wdXNoKGUpO2xldCBpPXRoaXMuX2luamVjdG9yLmdldCh0dWUsW10pO2kucHVzaCguLi50aGlzLl9ib290c3RyYXBMaXN0ZW5lcnMpLGkuZm9yRWFjaChyPT5yKGUpKX1uZ09uRGVzdHJveSgpe2lmKCF0aGlzLl9kZXN0cm95ZWQpdHJ5e3RoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnMuZm9yRWFjaChlPT5lKCkpLHRoaXMuX3ZpZXdzLnNsaWNlKCkuZm9yRWFjaChlPT5lLmRlc3Ryb3koKSksdGhpcy5fb25NaWNyb3Rhc2tFbXB0eVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfWZpbmFsbHl7dGhpcy5fZGVzdHJveWVkPSEwLHRoaXMuX3ZpZXdzPVtdLHRoaXMuX2Jvb3RzdHJhcExpc3RlbmVycz1bXSx0aGlzLl9kZXN0cm95TGlzdGVuZXJzPVtdfX1vbkRlc3Ryb3koZSl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnMucHVzaChlKSwoKT0+SkModGhpcy5fZGVzdHJveUxpc3RlbmVycyxlKX1kZXN0cm95KCl7aWYodGhpcy5fZGVzdHJveWVkKXRocm93IG5ldyB4dCg0MDYsITEpO2xldCBlPXRoaXMuX2luamVjdG9yO2UuZGVzdHJveSYmIWUuZGVzdHJveWVkJiZlLmRlc3Ryb3koKX1nZXQgdmlld0NvdW50KCl7cmV0dXJuIHRoaXMuX3ZpZXdzLmxlbmd0aH13YXJuSWZEZXN0cm95ZWQoKXt9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8ob3QpLE8obGMpLE8obGEpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxufSkoKTtmdW5jdGlvbiBKQyhuLHQpe2xldCBlPW4uaW5kZXhPZih0KTtlPi0xJiZuLnNwbGljZShlLDEpfXZhciBRdD0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5fX05HX0VMRU1FTlRfSURfXz1wdWUsbn0pKCk7ZnVuY3Rpb24gcHVlKG4pe3JldHVybiBmdW5jdGlvbihuLHQsZSl7aWYoRE0obikmJiFlKXtsZXQgaT1lZChuLmluZGV4LHQpO3JldHVybiBuZXcgUXAoaSxpKX1yZXR1cm4gNDcmbi50eXBlP25ldyBRcCh0W3hsXSx0KTpudWxsfShMbygpLFplKCksMTY9PSgxNiZuKSl9dmFyIENNPWNsYXNze2NvbnN0cnVjdG9yKCl7fXN1cHBvcnRzKHQpe3JldHVybiBaeih0KX1jcmVhdGUodCl7cmV0dXJuIG5ldyBQUCh0KX19LG11ZT0obix0KT0+dCxQUD1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmxlbmd0aD0wLHRoaXMuX2xpbmtlZFJlY29yZHM9bnVsbCx0aGlzLl91bmxpbmtlZFJlY29yZHM9bnVsbCx0aGlzLl9wcmV2aW91c0l0SGVhZD1udWxsLHRoaXMuX2l0SGVhZD1udWxsLHRoaXMuX2l0VGFpbD1udWxsLHRoaXMuX2FkZGl0aW9uc0hlYWQ9bnVsbCx0aGlzLl9hZGRpdGlvbnNUYWlsPW51bGwsdGhpcy5fbW92ZXNIZWFkPW51bGwsdGhpcy5fbW92ZXNUYWlsPW51bGwsdGhpcy5fcmVtb3ZhbHNIZWFkPW51bGwsdGhpcy5fcmVtb3ZhbHNUYWlsPW51bGwsdGhpcy5faWRlbnRpdHlDaGFuZ2VzSGVhZD1udWxsLHRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWw9bnVsbCx0aGlzLl90cmFja0J5Rm49dHx8bXVlfWZvckVhY2hJdGVtKHQpe2xldCBlO2ZvcihlPXRoaXMuX2l0SGVhZDtudWxsIT09ZTtlPWUuX25leHQpdChlKX1mb3JFYWNoT3BlcmF0aW9uKHQpe2xldCBlPXRoaXMuX2l0SGVhZCxpPXRoaXMuX3JlbW92YWxzSGVhZCxyPTAsbz1udWxsO2Zvcig7ZXx8aTspe2xldCBhPSFpfHxlJiZlLmN1cnJlbnRJbmRleDxKSChpLHIsbyk/ZTppLHM9SkgoYSxyLG8pLGw9YS5jdXJyZW50SW5kZXg7aWYoYT09PWkpci0tLGk9aS5fbmV4dFJlbW92ZWQ7ZWxzZSBpZihlPWUuX25leHQsbnVsbD09YS5wcmV2aW91c0luZGV4KXIrKztlbHNle298fChvPVtdKTtsZXQgYz1zLXIsZD1sLXI7aWYoYyE9ZCl7Zm9yKGxldCBwPTA7cDxjO3ArKyl7bGV0IGg9cDxvLmxlbmd0aD9vW3BdOm9bcF09MCxtPWgrcDtkPD1tJiZtPGMmJihvW3BdPWgrMSl9b1thLnByZXZpb3VzSW5kZXhdPWQtY319cyE9PWwmJnQoYSxzLGwpfX1mb3JFYWNoUHJldmlvdXNJdGVtKHQpe2xldCBlO2ZvcihlPXRoaXMuX3ByZXZpb3VzSXRIZWFkO251bGwhPT1lO2U9ZS5fbmV4dFByZXZpb3VzKXQoZSl9Zm9yRWFjaEFkZGVkSXRlbSh0KXtsZXQgZTtmb3IoZT10aGlzLl9hZGRpdGlvbnNIZWFkO251bGwhPT1lO2U9ZS5fbmV4dEFkZGVkKXQoZSl9Zm9yRWFjaE1vdmVkSXRlbSh0KXtsZXQgZTtmb3IoZT10aGlzLl9tb3Zlc0hlYWQ7bnVsbCE9PWU7ZT1lLl9uZXh0TW92ZWQpdChlKX1mb3JFYWNoUmVtb3ZlZEl0ZW0odCl7bGV0IGU7Zm9yKGU9dGhpcy5fcmVtb3ZhbHNIZWFkO251bGwhPT1lO2U9ZS5fbmV4dFJlbW92ZWQpdChlKX1mb3JFYWNoSWRlbnRpdHlDaGFuZ2UodCl7bGV0IGU7Zm9yKGU9dGhpcy5faWRlbnRpdHlDaGFuZ2VzSGVhZDtudWxsIT09ZTtlPWUuX25leHRJZGVudGl0eUNoYW5nZSl0KGUpfWRpZmYodCl7aWYobnVsbD09dCYmKHQ9W10pLCFaeih0KSl0aHJvdyBuZXcgeHQoOTAwLCExKTtyZXR1cm4gdGhpcy5jaGVjayh0KT90aGlzOm51bGx9b25EZXN0cm95KCl7fWNoZWNrKHQpe3RoaXMuX3Jlc2V0KCk7bGV0IHIsbyxhLGU9dGhpcy5faXRIZWFkLGk9ITE7aWYoQXJyYXkuaXNBcnJheSh0KSl7dGhpcy5sZW5ndGg9dC5sZW5ndGg7Zm9yKGxldCBzPTA7czx0aGlzLmxlbmd0aDtzKyspbz10W3NdLGE9dGhpcy5fdHJhY2tCeUZuKHMsbyksbnVsbCE9PWUmJk9iamVjdC5pcyhlLnRyYWNrQnlJZCxhKT8oaSYmKGU9dGhpcy5fdmVyaWZ5UmVpbnNlcnRpb24oZSxvLGEscykpLE9iamVjdC5pcyhlLml0ZW0sbyl8fHRoaXMuX2FkZElkZW50aXR5Q2hhbmdlKGUsbykpOihlPXRoaXMuX21pc21hdGNoKGUsbyxhLHMpLGk9ITApLGU9ZS5fbmV4dH1lbHNlIHI9MCxmdW5jdGlvbihuLHQpe2lmKEFycmF5LmlzQXJyYXkobikpZm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKyspdChuW2VdKTtlbHNle2xldCBpLGU9bltTeW1ib2wuaXRlcmF0b3JdKCk7Zm9yKDshKGk9ZS5uZXh0KCkpLmRvbmU7KXQoaS52YWx1ZSl9fSh0LHM9PnthPXRoaXMuX3RyYWNrQnlGbihyLHMpLG51bGwhPT1lJiZPYmplY3QuaXMoZS50cmFja0J5SWQsYSk/KGkmJihlPXRoaXMuX3ZlcmlmeVJlaW5zZXJ0aW9uKGUscyxhLHIpKSxPYmplY3QuaXMoZS5pdGVtLHMpfHx0aGlzLl9hZGRJZGVudGl0eUNoYW5nZShlLHMpKTooZT10aGlzLl9taXNtYXRjaChlLHMsYSxyKSxpPSEwKSxlPWUuX25leHQscisrfSksdGhpcy5sZW5ndGg9cjtyZXR1cm4gdGhpcy5fdHJ1bmNhdGUoZSksdGhpcy5jb2xsZWN0aW9uPXQsdGhpcy5pc0RpcnR5fWdldCBpc0RpcnR5KCl7cmV0dXJuIG51bGwhPT10aGlzLl9hZGRpdGlvbnNIZWFkfHxudWxsIT09dGhpcy5fbW92ZXNIZWFkfHxudWxsIT09dGhpcy5fcmVtb3ZhbHNIZWFkfHxudWxsIT09dGhpcy5faWRlbnRpdHlDaGFuZ2VzSGVhZH1fcmVzZXQoKXtpZih0aGlzLmlzRGlydHkpe2xldCB0O2Zvcih0PXRoaXMuX3ByZXZpb3VzSXRIZWFkPXRoaXMuX2l0SGVhZDtudWxsIT09dDt0PXQuX25leHQpdC5fbmV4dFByZXZpb3VzPXQuX25leHQ7Zm9yKHQ9dGhpcy5fYWRkaXRpb25zSGVhZDtudWxsIT09dDt0PXQuX25leHRBZGRlZCl0LnByZXZpb3VzSW5kZXg9dC5jdXJyZW50SW5kZXg7Zm9yKHRoaXMuX2FkZGl0aW9uc0hlYWQ9dGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHQ9dGhpcy5fbW92ZXNIZWFkO251bGwhPT10O3Q9dC5fbmV4dE1vdmVkKXQucHJldmlvdXNJbmRleD10LmN1cnJlbnRJbmRleDt0aGlzLl9tb3Zlc0hlYWQ9dGhpcy5fbW92ZXNUYWlsPW51bGwsdGhpcy5fcmVtb3ZhbHNIZWFkPXRoaXMuX3JlbW92YWxzVGFpbD1udWxsLHRoaXMuX2lkZW50aXR5Q2hhbmdlc0hlYWQ9dGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbD1udWxsfX1fbWlzbWF0Y2godCxlLGkscil7bGV0IG87cmV0dXJuIG51bGw9PT10P289dGhpcy5faXRUYWlsOihvPXQuX3ByZXYsdGhpcy5fcmVtb3ZlKHQpKSxudWxsIT09KHQ9bnVsbD09PXRoaXMuX3VubGlua2VkUmVjb3Jkcz9udWxsOnRoaXMuX3VubGlua2VkUmVjb3Jkcy5nZXQoaSxudWxsKSk/KE9iamVjdC5pcyh0Lml0ZW0sZSl8fHRoaXMuX2FkZElkZW50aXR5Q2hhbmdlKHQsZSksdGhpcy5fcmVpbnNlcnRBZnRlcih0LG8scikpOm51bGwhPT0odD1udWxsPT09dGhpcy5fbGlua2VkUmVjb3Jkcz9udWxsOnRoaXMuX2xpbmtlZFJlY29yZHMuZ2V0KGkscikpPyhPYmplY3QuaXModC5pdGVtLGUpfHx0aGlzLl9hZGRJZGVudGl0eUNoYW5nZSh0LGUpLHRoaXMuX21vdmVBZnRlcih0LG8scikpOnQ9dGhpcy5fYWRkQWZ0ZXIobmV3IGtQKGUsaSksbyxyKSx0fV92ZXJpZnlSZWluc2VydGlvbih0LGUsaSxyKXtsZXQgbz1udWxsPT09dGhpcy5fdW5saW5rZWRSZWNvcmRzP251bGw6dGhpcy5fdW5saW5rZWRSZWNvcmRzLmdldChpLG51bGwpO3JldHVybiBudWxsIT09bz90PXRoaXMuX3JlaW5zZXJ0QWZ0ZXIobyx0Ll9wcmV2LHIpOnQuY3VycmVudEluZGV4IT1yJiYodC5jdXJyZW50SW5kZXg9cix0aGlzLl9hZGRUb01vdmVzKHQscikpLHR9X3RydW5jYXRlKHQpe2Zvcig7bnVsbCE9PXQ7KXtsZXQgZT10Ll9uZXh0O3RoaXMuX2FkZFRvUmVtb3ZhbHModGhpcy5fdW5saW5rKHQpKSx0PWV9bnVsbCE9PXRoaXMuX3VubGlua2VkUmVjb3JkcyYmdGhpcy5fdW5saW5rZWRSZWNvcmRzLmNsZWFyKCksbnVsbCE9PXRoaXMuX2FkZGl0aW9uc1RhaWwmJih0aGlzLl9hZGRpdGlvbnNUYWlsLl9uZXh0QWRkZWQ9bnVsbCksbnVsbCE9PXRoaXMuX21vdmVzVGFpbCYmKHRoaXMuX21vdmVzVGFpbC5fbmV4dE1vdmVkPW51bGwpLG51bGwhPT10aGlzLl9pdFRhaWwmJih0aGlzLl9pdFRhaWwuX25leHQ9bnVsbCksbnVsbCE9PXRoaXMuX3JlbW92YWxzVGFpbCYmKHRoaXMuX3JlbW92YWxzVGFpbC5fbmV4dFJlbW92ZWQ9bnVsbCksbnVsbCE9PXRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWwmJih0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsLl9uZXh0SWRlbnRpdHlDaGFuZ2U9bnVsbCl9X3JlaW5zZXJ0QWZ0ZXIodCxlLGkpe251bGwhPT10aGlzLl91bmxpbmtlZFJlY29yZHMmJnRoaXMuX3VubGlua2VkUmVjb3Jkcy5yZW1vdmUodCk7bGV0IHI9dC5fcHJldlJlbW92ZWQsbz10Ll9uZXh0UmVtb3ZlZDtyZXR1cm4gbnVsbD09PXI/dGhpcy5fcmVtb3ZhbHNIZWFkPW86ci5fbmV4dFJlbW92ZWQ9byxudWxsPT09bz90aGlzLl9yZW1vdmFsc1RhaWw9cjpvLl9wcmV2UmVtb3ZlZD1yLHRoaXMuX2luc2VydEFmdGVyKHQsZSxpKSx0aGlzLl9hZGRUb01vdmVzKHQsaSksdH1fbW92ZUFmdGVyKHQsZSxpKXtyZXR1cm4gdGhpcy5fdW5saW5rKHQpLHRoaXMuX2luc2VydEFmdGVyKHQsZSxpKSx0aGlzLl9hZGRUb01vdmVzKHQsaSksdH1fYWRkQWZ0ZXIodCxlLGkpe3JldHVybiB0aGlzLl9pbnNlcnRBZnRlcih0LGUsaSksdGhpcy5fYWRkaXRpb25zVGFpbD1udWxsPT09dGhpcy5fYWRkaXRpb25zVGFpbD90aGlzLl9hZGRpdGlvbnNIZWFkPXQ6dGhpcy5fYWRkaXRpb25zVGFpbC5fbmV4dEFkZGVkPXQsdH1faW5zZXJ0QWZ0ZXIodCxlLGkpe2xldCByPW51bGw9PT1lP3RoaXMuX2l0SGVhZDplLl9uZXh0O3JldHVybiB0Ll9uZXh0PXIsdC5fcHJldj1lLG51bGw9PT1yP3RoaXMuX2l0VGFpbD10OnIuX3ByZXY9dCxudWxsPT09ZT90aGlzLl9pdEhlYWQ9dDplLl9uZXh0PXQsbnVsbD09PXRoaXMuX2xpbmtlZFJlY29yZHMmJih0aGlzLl9saW5rZWRSZWNvcmRzPW5ldyBNTSksdGhpcy5fbGlua2VkUmVjb3Jkcy5wdXQodCksdC5jdXJyZW50SW5kZXg9aSx0fV9yZW1vdmUodCl7cmV0dXJuIHRoaXMuX2FkZFRvUmVtb3ZhbHModGhpcy5fdW5saW5rKHQpKX1fdW5saW5rKHQpe251bGwhPT10aGlzLl9saW5rZWRSZWNvcmRzJiZ0aGlzLl9saW5rZWRSZWNvcmRzLnJlbW92ZSh0KTtsZXQgZT10Ll9wcmV2LGk9dC5fbmV4dDtyZXR1cm4gbnVsbD09PWU/dGhpcy5faXRIZWFkPWk6ZS5fbmV4dD1pLG51bGw9PT1pP3RoaXMuX2l0VGFpbD1lOmkuX3ByZXY9ZSx0fV9hZGRUb01vdmVzKHQsZSl7cmV0dXJuIHQucHJldmlvdXNJbmRleD09PWV8fCh0aGlzLl9tb3Zlc1RhaWw9bnVsbD09PXRoaXMuX21vdmVzVGFpbD90aGlzLl9tb3Zlc0hlYWQ9dDp0aGlzLl9tb3Zlc1RhaWwuX25leHRNb3ZlZD10KSx0fV9hZGRUb1JlbW92YWxzKHQpe3JldHVybiBudWxsPT09dGhpcy5fdW5saW5rZWRSZWNvcmRzJiYodGhpcy5fdW5saW5rZWRSZWNvcmRzPW5ldyBNTSksdGhpcy5fdW5saW5rZWRSZWNvcmRzLnB1dCh0KSx0LmN1cnJlbnRJbmRleD1udWxsLHQuX25leHRSZW1vdmVkPW51bGwsbnVsbD09PXRoaXMuX3JlbW92YWxzVGFpbD8odGhpcy5fcmVtb3ZhbHNUYWlsPXRoaXMuX3JlbW92YWxzSGVhZD10LHQuX3ByZXZSZW1vdmVkPW51bGwpOih0Ll9wcmV2UmVtb3ZlZD10aGlzLl9yZW1vdmFsc1RhaWwsdGhpcy5fcmVtb3ZhbHNUYWlsPXRoaXMuX3JlbW92YWxzVGFpbC5fbmV4dFJlbW92ZWQ9dCksdH1fYWRkSWRlbnRpdHlDaGFuZ2UodCxlKXtyZXR1cm4gdC5pdGVtPWUsdGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbD1udWxsPT09dGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbD90aGlzLl9pZGVudGl0eUNoYW5nZXNIZWFkPXQ6dGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbC5fbmV4dElkZW50aXR5Q2hhbmdlPXQsdH19LGtQPWNsYXNze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5pdGVtPXQsdGhpcy50cmFja0J5SWQ9ZSx0aGlzLmN1cnJlbnRJbmRleD1udWxsLHRoaXMucHJldmlvdXNJbmRleD1udWxsLHRoaXMuX25leHRQcmV2aW91cz1udWxsLHRoaXMuX3ByZXY9bnVsbCx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcHJldkR1cD1udWxsLHRoaXMuX25leHREdXA9bnVsbCx0aGlzLl9wcmV2UmVtb3ZlZD1udWxsLHRoaXMuX25leHRSZW1vdmVkPW51bGwsdGhpcy5fbmV4dEFkZGVkPW51bGwsdGhpcy5fbmV4dE1vdmVkPW51bGwsdGhpcy5fbmV4dElkZW50aXR5Q2hhbmdlPW51bGx9fSxNTT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubWFwPW5ldyBNYXB9cHV0KHQpe2xldCBlPXQudHJhY2tCeUlkLGk9dGhpcy5tYXAuZ2V0KGUpO2l8fChpPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2hlYWQ9bnVsbCx0aGlzLl90YWlsPW51bGx9YWRkKHQpe251bGw9PT10aGlzLl9oZWFkPyh0aGlzLl9oZWFkPXRoaXMuX3RhaWw9dCx0Ll9uZXh0RHVwPW51bGwsdC5fcHJldkR1cD1udWxsKToodGhpcy5fdGFpbC5fbmV4dER1cD10LHQuX3ByZXZEdXA9dGhpcy5fdGFpbCx0Ll9uZXh0RHVwPW51bGwsdGhpcy5fdGFpbD10KX1nZXQodCxlKXtsZXQgaTtmb3IoaT10aGlzLl9oZWFkO251bGwhPT1pO2k9aS5fbmV4dER1cClpZigobnVsbD09PWV8fGU8PWkuY3VycmVudEluZGV4KSYmT2JqZWN0LmlzKGkudHJhY2tCeUlkLHQpKXJldHVybiBpO3JldHVybiBudWxsfXJlbW92ZSh0KXtsZXQgZT10Ll9wcmV2RHVwLGk9dC5fbmV4dER1cDtyZXR1cm4gbnVsbD09PWU/dGhpcy5faGVhZD1pOmUuX25leHREdXA9aSxudWxsPT09aT90aGlzLl90YWlsPWU6aS5fcHJldkR1cD1lLG51bGw9PT10aGlzLl9oZWFkfX0sdGhpcy5tYXAuc2V0KGUsaSkpLGkuYWRkKHQpfWdldCh0LGUpe2xldCByPXRoaXMubWFwLmdldCh0KTtyZXR1cm4gcj9yLmdldCh0LGUpOm51bGx9cmVtb3ZlKHQpe2xldCBlPXQudHJhY2tCeUlkO3JldHVybiB0aGlzLm1hcC5nZXQoZSkucmVtb3ZlKHQpJiZ0aGlzLm1hcC5kZWxldGUoZSksdH1nZXQgaXNFbXB0eSgpe3JldHVybiAwPT09dGhpcy5tYXAuc2l6ZX1jbGVhcigpe3RoaXMubWFwLmNsZWFyKCl9fTtmdW5jdGlvbiBKSChuLHQsZSl7bGV0IGk9bi5wcmV2aW91c0luZGV4O2lmKG51bGw9PT1pKXJldHVybiBpO2xldCByPTA7cmV0dXJuIGUmJmk8ZS5sZW5ndGgmJihyPWVbaV0pLGkrdCtyfXZhciB3TT1jbGFzc3tjb25zdHJ1Y3Rvcigpe31zdXBwb3J0cyh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIE1hcHx8VGsodCl9Y3JlYXRlKCl7cmV0dXJuIG5ldyBGUH19LEZQPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fcmVjb3Jkcz1uZXcgTWFwLHRoaXMuX21hcEhlYWQ9bnVsbCx0aGlzLl9hcHBlbmRBZnRlcj1udWxsLHRoaXMuX3ByZXZpb3VzTWFwSGVhZD1udWxsLHRoaXMuX2NoYW5nZXNIZWFkPW51bGwsdGhpcy5fY2hhbmdlc1RhaWw9bnVsbCx0aGlzLl9hZGRpdGlvbnNIZWFkPW51bGwsdGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxsLHRoaXMuX3JlbW92YWxzVGFpbD1udWxsfWdldCBpc0RpcnR5KCl7cmV0dXJuIG51bGwhPT10aGlzLl9hZGRpdGlvbnNIZWFkfHxudWxsIT09dGhpcy5fY2hhbmdlc0hlYWR8fG51bGwhPT10aGlzLl9yZW1vdmFsc0hlYWR9Zm9yRWFjaEl0ZW0odCl7bGV0IGU7Zm9yKGU9dGhpcy5fbWFwSGVhZDtudWxsIT09ZTtlPWUuX25leHQpdChlKX1mb3JFYWNoUHJldmlvdXNJdGVtKHQpe2xldCBlO2ZvcihlPXRoaXMuX3ByZXZpb3VzTWFwSGVhZDtudWxsIT09ZTtlPWUuX25leHRQcmV2aW91cyl0KGUpfWZvckVhY2hDaGFuZ2VkSXRlbSh0KXtsZXQgZTtmb3IoZT10aGlzLl9jaGFuZ2VzSGVhZDtudWxsIT09ZTtlPWUuX25leHRDaGFuZ2VkKXQoZSl9Zm9yRWFjaEFkZGVkSXRlbSh0KXtsZXQgZTtmb3IoZT10aGlzLl9hZGRpdGlvbnNIZWFkO251bGwhPT1lO2U9ZS5fbmV4dEFkZGVkKXQoZSl9Zm9yRWFjaFJlbW92ZWRJdGVtKHQpe2xldCBlO2ZvcihlPXRoaXMuX3JlbW92YWxzSGVhZDtudWxsIT09ZTtlPWUuX25leHRSZW1vdmVkKXQoZSl9ZGlmZih0KXtpZih0KXtpZighKHQgaW5zdGFuY2VvZiBNYXB8fFRrKHQpKSl0aHJvdyBuZXcgeHQoOTAwLCExKX1lbHNlIHQ9bmV3IE1hcDtyZXR1cm4gdGhpcy5jaGVjayh0KT90aGlzOm51bGx9b25EZXN0cm95KCl7fWNoZWNrKHQpe3RoaXMuX3Jlc2V0KCk7bGV0IGU9dGhpcy5fbWFwSGVhZDtpZih0aGlzLl9hcHBlbmRBZnRlcj1udWxsLHRoaXMuX2ZvckVhY2godCwoaSxyKT0+e2lmKGUmJmUua2V5PT09cil0aGlzLl9tYXliZUFkZFRvQ2hhbmdlcyhlLGkpLHRoaXMuX2FwcGVuZEFmdGVyPWUsZT1lLl9uZXh0O2Vsc2V7bGV0IG89dGhpcy5fZ2V0T3JDcmVhdGVSZWNvcmRGb3JLZXkocixpKTtlPXRoaXMuX2luc2VydEJlZm9yZU9yQXBwZW5kKGUsbyl9fSksZSl7ZS5fcHJldiYmKGUuX3ByZXYuX25leHQ9bnVsbCksdGhpcy5fcmVtb3ZhbHNIZWFkPWU7Zm9yKGxldCBpPWU7bnVsbCE9PWk7aT1pLl9uZXh0UmVtb3ZlZClpPT09dGhpcy5fbWFwSGVhZCYmKHRoaXMuX21hcEhlYWQ9bnVsbCksdGhpcy5fcmVjb3Jkcy5kZWxldGUoaS5rZXkpLGkuX25leHRSZW1vdmVkPWkuX25leHQsaS5wcmV2aW91c1ZhbHVlPWkuY3VycmVudFZhbHVlLGkuY3VycmVudFZhbHVlPW51bGwsaS5fcHJldj1udWxsLGkuX25leHQ9bnVsbH1yZXR1cm4gdGhpcy5fY2hhbmdlc1RhaWwmJih0aGlzLl9jaGFuZ2VzVGFpbC5fbmV4dENoYW5nZWQ9bnVsbCksdGhpcy5fYWRkaXRpb25zVGFpbCYmKHRoaXMuX2FkZGl0aW9uc1RhaWwuX25leHRBZGRlZD1udWxsKSx0aGlzLmlzRGlydHl9X2luc2VydEJlZm9yZU9yQXBwZW5kKHQsZSl7aWYodCl7bGV0IGk9dC5fcHJldjtyZXR1cm4gZS5fbmV4dD10LGUuX3ByZXY9aSx0Ll9wcmV2PWUsaSYmKGkuX25leHQ9ZSksdD09PXRoaXMuX21hcEhlYWQmJih0aGlzLl9tYXBIZWFkPWUpLHRoaXMuX2FwcGVuZEFmdGVyPXQsdH1yZXR1cm4gdGhpcy5fYXBwZW5kQWZ0ZXI/KHRoaXMuX2FwcGVuZEFmdGVyLl9uZXh0PWUsZS5fcHJldj10aGlzLl9hcHBlbmRBZnRlcik6dGhpcy5fbWFwSGVhZD1lLHRoaXMuX2FwcGVuZEFmdGVyPWUsbnVsbH1fZ2V0T3JDcmVhdGVSZWNvcmRGb3JLZXkodCxlKXtpZih0aGlzLl9yZWNvcmRzLmhhcyh0KSl7bGV0IHI9dGhpcy5fcmVjb3Jkcy5nZXQodCk7dGhpcy5fbWF5YmVBZGRUb0NoYW5nZXMocixlKTtsZXQgbz1yLl9wcmV2LGE9ci5fbmV4dDtyZXR1cm4gbyYmKG8uX25leHQ9YSksYSYmKGEuX3ByZXY9byksci5fbmV4dD1udWxsLHIuX3ByZXY9bnVsbCxyfWxldCBpPW5ldyBOUCh0KTtyZXR1cm4gdGhpcy5fcmVjb3Jkcy5zZXQodCxpKSxpLmN1cnJlbnRWYWx1ZT1lLHRoaXMuX2FkZFRvQWRkaXRpb25zKGkpLGl9X3Jlc2V0KCl7aWYodGhpcy5pc0RpcnR5KXtsZXQgdDtmb3IodGhpcy5fcHJldmlvdXNNYXBIZWFkPXRoaXMuX21hcEhlYWQsdD10aGlzLl9wcmV2aW91c01hcEhlYWQ7bnVsbCE9PXQ7dD10Ll9uZXh0KXQuX25leHRQcmV2aW91cz10Ll9uZXh0O2Zvcih0PXRoaXMuX2NoYW5nZXNIZWFkO251bGwhPT10O3Q9dC5fbmV4dENoYW5nZWQpdC5wcmV2aW91c1ZhbHVlPXQuY3VycmVudFZhbHVlO2Zvcih0PXRoaXMuX2FkZGl0aW9uc0hlYWQ7bnVsbCE9dDt0PXQuX25leHRBZGRlZCl0LnByZXZpb3VzVmFsdWU9dC5jdXJyZW50VmFsdWU7dGhpcy5fY2hhbmdlc0hlYWQ9dGhpcy5fY2hhbmdlc1RhaWw9bnVsbCx0aGlzLl9hZGRpdGlvbnNIZWFkPXRoaXMuX2FkZGl0aW9uc1RhaWw9bnVsbCx0aGlzLl9yZW1vdmFsc0hlYWQ9bnVsbH19X21heWJlQWRkVG9DaGFuZ2VzKHQsZSl7T2JqZWN0LmlzKGUsdC5jdXJyZW50VmFsdWUpfHwodC5wcmV2aW91c1ZhbHVlPXQuY3VycmVudFZhbHVlLHQuY3VycmVudFZhbHVlPWUsdGhpcy5fYWRkVG9DaGFuZ2VzKHQpKX1fYWRkVG9BZGRpdGlvbnModCl7bnVsbD09PXRoaXMuX2FkZGl0aW9uc0hlYWQ/dGhpcy5fYWRkaXRpb25zSGVhZD10aGlzLl9hZGRpdGlvbnNUYWlsPXQ6KHRoaXMuX2FkZGl0aW9uc1RhaWwuX25leHRBZGRlZD10LHRoaXMuX2FkZGl0aW9uc1RhaWw9dCl9X2FkZFRvQ2hhbmdlcyh0KXtudWxsPT09dGhpcy5fY2hhbmdlc0hlYWQ/dGhpcy5fY2hhbmdlc0hlYWQ9dGhpcy5fY2hhbmdlc1RhaWw9dDoodGhpcy5fY2hhbmdlc1RhaWwuX25leHRDaGFuZ2VkPXQsdGhpcy5fY2hhbmdlc1RhaWw9dCl9X2ZvckVhY2godCxlKXt0IGluc3RhbmNlb2YgTWFwP3QuZm9yRWFjaChlKTpPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGk9PmUodFtpXSxpKSl9fSxOUD1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmtleT10LHRoaXMucHJldmlvdXNWYWx1ZT1udWxsLHRoaXMuY3VycmVudFZhbHVlPW51bGwsdGhpcy5fbmV4dFByZXZpb3VzPW51bGwsdGhpcy5fbmV4dD1udWxsLHRoaXMuX3ByZXY9bnVsbCx0aGlzLl9uZXh0QWRkZWQ9bnVsbCx0aGlzLl9uZXh0UmVtb3ZlZD1udWxsLHRoaXMuX25leHRDaGFuZ2VkPW51bGx9fTtmdW5jdGlvbiAkSCgpe3JldHVybiBuZXcgVGwoW25ldyBDTV0pfXZhciBUbD0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuZmFjdG9yaWVzPWV9c3RhdGljIGNyZWF0ZShlLGkpe2lmKG51bGwhPWkpe2xldCByPWkuZmFjdG9yaWVzLnNsaWNlKCk7ZT1lLmNvbmNhdChyKX1yZXR1cm4gbmV3IG4oZSl9c3RhdGljIGV4dGVuZChlKXtyZXR1cm57cHJvdmlkZTpuLHVzZUZhY3Rvcnk6aT0+bi5jcmVhdGUoZSxpfHwkSCgpKSxkZXBzOltbbixuZXcgaWQsbmV3IGthXV19fWZpbmQoZSl7bGV0IGk9dGhpcy5mYWN0b3JpZXMuZmluZChyPT5yLnN1cHBvcnRzKGUpKTtpZihudWxsIT1pKXJldHVybiBpO3Rocm93IG5ldyB4dCg5MDEsITEpfX1yZXR1cm4gbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLHByb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6JEh9KSxufSkoKTtmdW5jdGlvbiBlNSgpe3JldHVybiBuZXcgU2IoW25ldyB3TV0pfXZhciBTYj0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuZmFjdG9yaWVzPWV9c3RhdGljIGNyZWF0ZShlLGkpe2lmKGkpe2xldCByPWkuZmFjdG9yaWVzLnNsaWNlKCk7ZT1lLmNvbmNhdChyKX1yZXR1cm4gbmV3IG4oZSl9c3RhdGljIGV4dGVuZChlKXtyZXR1cm57cHJvdmlkZTpuLHVzZUZhY3Rvcnk6aT0+bi5jcmVhdGUoZSxpfHxlNSgpKSxkZXBzOltbbixuZXcgaWQsbmV3IGthXV19fWZpbmQoZSl7bGV0IGk9dGhpcy5mYWN0b3JpZXMuZmluZChyPT5yLnN1cHBvcnRzKGUpKTtpZihpKXJldHVybiBpO3Rocm93IG5ldyB4dCg5MDEsITEpfX1yZXR1cm4gbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLHByb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6ZTV9KSxufSkoKSxmdWU9W25ldyB3TV0sZ3VlPVtuZXcgQ01dLFJqPShuZXcgVGwoZ3VlKSxuZXcgU2IoZnVlKSxWayhudWxsLCJjb3JlIixbXSkpLFBqPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7fX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKGdjKSl9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe30pLG59KSgpO2Z1bmN0aW9uIGV3KG4pe3JldHVybiJib29sZWFuIj09dHlwZW9mIG4/bjpudWxsIT1uJiYiZmFsc2UiIT09bn12YXIgX3VlPSI6IixjdT1jbGFzc3tzdGF0aWMgemVybygpe3JldHVybiBuZXcgY3UoWzBdKX1zdGF0aWMgb25lKCl7cmV0dXJuIG5ldyBjdShbMV0pfWNvbnN0cnVjdG9yKHQpe3RoaXMuZGlnaXRzPXR9Y2xvbmUoKXtyZXR1cm4gbmV3IGN1KHRoaXMuZGlnaXRzLnNsaWNlKCkpfWFkZCh0KXtsZXQgZT10aGlzLmNsb25lKCk7cmV0dXJuIGUuYWRkVG9TZWxmKHQpLGV9YWRkVG9TZWxmKHQpe2xldCBlPU1hdGgubWF4KHRoaXMuZGlnaXRzLmxlbmd0aCx0LmRpZ2l0cy5sZW5ndGgpLGk9MDtmb3IobGV0IHI9MDtyPGU7cisrKXtsZXQgbz1pO3I8dGhpcy5kaWdpdHMubGVuZ3RoJiYobys9dGhpcy5kaWdpdHNbcl0pLHI8dC5kaWdpdHMubGVuZ3RoJiYobys9dC5kaWdpdHNbcl0pLG8+PTEwPyh0aGlzLmRpZ2l0c1tyXT1vLTEwLGk9MSk6KHRoaXMuZGlnaXRzW3JdPW8saT0wKX1pPjAmJih0aGlzLmRpZ2l0c1tlXT0xKX10b1N0cmluZygpe2xldCB0PSIiO2ZvcihsZXQgZT10aGlzLmRpZ2l0cy5sZW5ndGgtMTtlPj0wO2UtLSl0Kz10aGlzLmRpZ2l0c1tlXTtyZXR1cm4gdH19LHR3PWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMucG93ZXJPZlR3b3M9W3RdfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMucG93ZXJPZlR3b3NbMF19bXVsdGlwbHlCeSh0KXtsZXQgZT1jdS56ZXJvKCk7cmV0dXJuIHRoaXMubXVsdGlwbHlCeUFuZEFkZFRvKHQsZSksZX1tdWx0aXBseUJ5QW5kQWRkVG8odCxlKXtmb3IobGV0IGk9MDswIT09dDt0Pj4+PTEsaSsrKWlmKDEmdCl7bGV0IHI9dGhpcy5nZXRNdWx0aXBsaWVkQnlQb3dlck9mVHdvKGkpO2UuYWRkVG9TZWxmKHIpfX1nZXRNdWx0aXBsaWVkQnlQb3dlck9mVHdvKHQpe2ZvcihsZXQgZT10aGlzLnBvd2VyT2ZUd29zLmxlbmd0aDtlPD10O2UrKyl7bGV0IGk9dGhpcy5wb3dlck9mVHdvc1tlLTFdO3RoaXMucG93ZXJPZlR3b3NbZV09aS5hZGQoaSl9cmV0dXJuIHRoaXMucG93ZXJPZlR3b3NbdF19fTtuZXcgY2xhc3N7dmlzaXRUZXh0KHQsZSl7cmV0dXJuIHQudmFsdWV9dmlzaXRDb250YWluZXIodCxlKXtyZXR1cm5gWyR7dC5jaGlsZHJlbi5tYXAoaT0+aS52aXNpdCh0aGlzKSkuam9pbigiLCAiKX1dYH12aXNpdEljdSh0LGUpe2xldCBpPU9iamVjdC5rZXlzKHQuY2FzZXMpLm1hcChyPT5gJHtyfSB7JHt0LmNhc2VzW3JdLnZpc2l0KHRoaXMpfX1gKTtyZXR1cm5geyR7dC5leHByZXNzaW9ufSwgJHt0LnR5cGV9LCAke2kuam9pbigiLCAiKX19YH12aXNpdFRhZ1BsYWNlaG9sZGVyKHQsZSl7cmV0dXJuIHQuaXNWb2lkP2A8cGggdGFnIG5hbWU9IiR7dC5zdGFydE5hbWV9Ii8+YDpgPHBoIHRhZyBuYW1lPSIke3Quc3RhcnROYW1lfSI+JHt0LmNoaWxkcmVuLm1hcChpPT5pLnZpc2l0KHRoaXMpKS5qb2luKCIsICIpfTwvcGggbmFtZT0iJHt0LmNsb3NlTmFtZX0iPmB9dmlzaXRQbGFjZWhvbGRlcih0LGUpe3JldHVybiB0LnZhbHVlP2A8cGggbmFtZT0iJHt0Lm5hbWV9Ij4ke3QudmFsdWV9PC9waD5gOmA8cGggbmFtZT0iJHt0Lm5hbWV9Ii8+YH12aXNpdEljdVBsYWNlaG9sZGVyKHQsZSl7cmV0dXJuYDxwaCBpY3UgbmFtZT0iJHt0Lm5hbWV9Ij4ke3QudmFsdWUudmlzaXQodGhpcyl9PC9waD5gfX0sbmV3IGNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuYmFzZT10LHRoaXMuZXhwb25lbnRzPVtuZXcgdHcoY3Uub25lKCkpXX10b1RoZVBvd2VyT2YodCl7Zm9yKGxldCBlPXRoaXMuZXhwb25lbnRzLmxlbmd0aDtlPD10O2UrKyl7bGV0IGk9dGhpcy5leHBvbmVudHNbZS0xXS5tdWx0aXBseUJ5KHRoaXMuYmFzZSk7dGhpcy5leHBvbmVudHNbZV09bmV3IHR3KGkpfXJldHVybiB0aGlzLmV4cG9uZW50c1t0XX19KDI1Nik7dmFyIG53PWZ1bmN0aW9uKG4sLi4udCl7aWYobncudHJhbnNsYXRlKXtsZXQgaT1udy50cmFuc2xhdGUobix0KTtuPWlbMF0sdD1pWzFdfWxldCBlPWtqKG5bMF0sbi5yYXdbMF0pO2ZvcihsZXQgaT0xO2k8bi5sZW5ndGg7aSsrKWUrPXRbaS0xXStraihuW2ldLG4ucmF3W2ldKTtyZXR1cm4gZX0sdnVlPSI6IjtmdW5jdGlvbiBraihuLHQpe3JldHVybiB0LmNoYXJBdCgwKT09PXZ1ZT9uLnN1YnN0cmluZyhmdW5jdGlvbihuLHQpe2ZvcihsZXQgZT0xLGk9MTtlPG4ubGVuZ3RoO2UrKyxpKyspaWYoIlxcIj09PXRbaV0paSsrO2Vsc2UgaWYobltlXT09PV91ZSlyZXR1cm4gZTt0aHJvdyBuZXcgRXJyb3IoYFVudGVybWluYXRlZCAkbG9jYWxpemUgbWV0YWRhdGEgYmxvY2sgaW4gIiR7dH0iLmApfShuLHQpKzEpOm59KCgpPT50eXBlb2YgZ2xvYmFsVGhpczwidSImJmdsb2JhbFRoaXN8fHR5cGVvZiBnbG9iYWw8InUiJiZnbG9iYWx8fHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3d8fHR5cGVvZiBzZWxmPCJ1IiYmdHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZzZWxmKSgpLiRsb2NhbGl6ZT1udzt2YXIgWWs9bnVsbDtmdW5jdGlvbiBBbCgpe3JldHVybiBZa312YXIgdXc9Y2xhc3N7fSxOdD1uZXcgdGUoIkRvY3VtZW50VG9rZW4iKSxXaj0oKCk9PntjbGFzcyBue2hpc3RvcnlHbyhlKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gTyhxail9LHByb3ZpZGVkSW46InBsYXRmb3JtIn0pLG59KSgpO25ldyB0ZSgiTG9jYXRpb24gSW5pdGlhbGl6ZWQiKTt2YXIgcWo9KCgpPT57Y2xhc3MgbiBleHRlbmRzIFdqe2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5fZG9jPWUsdGhpcy5fbG9jYXRpb249d2luZG93LmxvY2F0aW9uLHRoaXMuX2hpc3Rvcnk9d2luZG93Lmhpc3Rvcnl9Z2V0QmFzZUhyZWZGcm9tRE9NKCl7cmV0dXJuIEFsKCkuZ2V0QmFzZUhyZWYodGhpcy5fZG9jKX1vblBvcFN0YXRlKGUpe2xldCBpPUFsKCkuZ2V0R2xvYmFsRXZlbnRUYXJnZXQodGhpcy5fZG9jLCJ3aW5kb3ciKTtyZXR1cm4gaS5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsZSwhMSksKCk9PmkucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLGUpfW9uSGFzaENoYW5nZShlKXtsZXQgaT1BbCgpLmdldEdsb2JhbEV2ZW50VGFyZ2V0KHRoaXMuX2RvYywid2luZG93Iik7cmV0dXJuIGkuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsZSwhMSksKCk9PmkucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsZSl9Z2V0IGhyZWYoKXtyZXR1cm4gdGhpcy5fbG9jYXRpb24uaHJlZn1nZXQgcHJvdG9jb2woKXtyZXR1cm4gdGhpcy5fbG9jYXRpb24ucHJvdG9jb2x9Z2V0IGhvc3RuYW1lKCl7cmV0dXJuIHRoaXMuX2xvY2F0aW9uLmhvc3RuYW1lfWdldCBwb3J0KCl7cmV0dXJuIHRoaXMuX2xvY2F0aW9uLnBvcnR9Z2V0IHBhdGhuYW1lKCl7cmV0dXJuIHRoaXMuX2xvY2F0aW9uLnBhdGhuYW1lfWdldCBzZWFyY2goKXtyZXR1cm4gdGhpcy5fbG9jYXRpb24uc2VhcmNofWdldCBoYXNoKCl7cmV0dXJuIHRoaXMuX2xvY2F0aW9uLmhhc2h9c2V0IHBhdGhuYW1lKGUpe3RoaXMuX2xvY2F0aW9uLnBhdGhuYW1lPWV9cHVzaFN0YXRlKGUsaSxyKXtGaigpP3RoaXMuX2hpc3RvcnkucHVzaFN0YXRlKGUsaSxyKTp0aGlzLl9sb2NhdGlvbi5oYXNoPXJ9cmVwbGFjZVN0YXRlKGUsaSxyKXtGaigpP3RoaXMuX2hpc3RvcnkucmVwbGFjZVN0YXRlKGUsaSxyKTp0aGlzLl9sb2NhdGlvbi5oYXNoPXJ9Zm9yd2FyZCgpe3RoaXMuX2hpc3RvcnkuZm9yd2FyZCgpfWJhY2soKXt0aGlzLl9oaXN0b3J5LmJhY2soKX1oaXN0b3J5R28oZT0wKXt0aGlzLl9oaXN0b3J5LmdvKGUpfWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuX2hpc3Rvcnkuc3RhdGV9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oTnQpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHFqKE8oTnQpKX0scHJvdmlkZWRJbjoicGxhdGZvcm0ifSksbn0pKCk7ZnVuY3Rpb24gRmooKXtyZXR1cm4hIXdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZX1mdW5jdGlvbiBYaihuLHQpe2lmKDA9PW4ubGVuZ3RoKXJldHVybiB0O2lmKDA9PXQubGVuZ3RoKXJldHVybiBuO2xldCBlPTA7cmV0dXJuIG4uZW5kc1dpdGgoIi8iKSYmZSsrLHQuc3RhcnRzV2l0aCgiLyIpJiZlKyssMj09ZT9uK3Quc3Vic3RyaW5nKDEpOjE9PWU/bit0Om4rIi8iK3R9ZnVuY3Rpb24gTmoobil7bGV0IHQ9bi5tYXRjaCgvI3xcP3wkLyksZT10JiZ0LmluZGV4fHxuLmxlbmd0aDtyZXR1cm4gbi5zbGljZSgwLGUtKCIvIj09PW5bZS0xXT8xOjApKStuLnNsaWNlKGUpfWZ1bmN0aW9uIGVoKG4pe3JldHVybiBuJiYiPyIhPT1uWzBdPyI/IituOm59dmFyICRrPSgoKT0+e2NsYXNzIG57aGlzdG9yeUdvKGUpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpmdW5jdGlvbigpe3JldHVybiAkbihNdWUpfSxwcm92aWRlZEluOiJyb290In0pLG59KSgpLEN1ZT1uZXcgdGUoImFwcEJhc2VIcmVmIiksTXVlPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyAka3tjb25zdHJ1Y3RvcihlLGkpe3N1cGVyKCksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbj1lLHRoaXMuX3JlbW92ZUxpc3RlbmVyRm5zPVtdLHRoaXMuX2Jhc2VIcmVmPWk/P3RoaXMuX3BsYXRmb3JtTG9jYXRpb24uZ2V0QmFzZUhyZWZGcm9tRE9NKCk/PyRuKE50KS5sb2NhdGlvbj8ub3JpZ2luPz8iIn1uZ09uRGVzdHJveSgpe2Zvcig7dGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMubGVuZ3RoOyl0aGlzLl9yZW1vdmVMaXN0ZW5lckZucy5wb3AoKSgpfW9uUG9wU3RhdGUoZSl7dGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMucHVzaCh0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLm9uUG9wU3RhdGUoZSksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5vbkhhc2hDaGFuZ2UoZSkpfWdldEJhc2VIcmVmKCl7cmV0dXJuIHRoaXMuX2Jhc2VIcmVmfXByZXBhcmVFeHRlcm5hbFVybChlKXtyZXR1cm4gWGoodGhpcy5fYmFzZUhyZWYsZSl9cGF0aChlPSExKXtsZXQgaT10aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLnBhdGhuYW1lK2VoKHRoaXMuX3BsYXRmb3JtTG9jYXRpb24uc2VhcmNoKSxyPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24uaGFzaDtyZXR1cm4gciYmZT9gJHtpfSR7cn1gOml9cHVzaFN0YXRlKGUsaSxyLG8pe2xldCBhPXRoaXMucHJlcGFyZUV4dGVybmFsVXJsKHIrZWgobykpO3RoaXMuX3BsYXRmb3JtTG9jYXRpb24ucHVzaFN0YXRlKGUsaSxhKX1yZXBsYWNlU3RhdGUoZSxpLHIsbyl7bGV0IGE9dGhpcy5wcmVwYXJlRXh0ZXJuYWxVcmwocitlaChvKSk7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5yZXBsYWNlU3RhdGUoZSxpLGEpfWZvcndhcmQoKXt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmZvcndhcmQoKX1iYWNrKCl7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5iYWNrKCl9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5nZXRTdGF0ZSgpfWhpc3RvcnlHbyhlPTApe3RoaXMuX3BsYXRmb3JtTG9jYXRpb24uaGlzdG9yeUdvPy4oZSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oV2opLE8oQ3VlLDgpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxufSkoKSxEYj0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuX3N1YmplY3Q9bmV3IEYsdGhpcy5fdXJsQ2hhbmdlTGlzdGVuZXJzPVtdLHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbj1udWxsLHRoaXMuX2xvY2F0aW9uU3RyYXRlZ3k9ZTtsZXQgaT10aGlzLl9sb2NhdGlvblN0cmF0ZWd5LmdldEJhc2VIcmVmKCk7dGhpcy5fYmFzZVBhdGg9ZnVuY3Rpb24obil7aWYobmV3IFJlZ0V4cCgiXihodHRwcz86KT8vLyIpLnRlc3Qobikpe2xldFssZV09bi5zcGxpdCgvXC9cL1teXC9dKy8pO3JldHVybiBlfXJldHVybiBufShOaihMaihpKSkpLHRoaXMuX2xvY2F0aW9uU3RyYXRlZ3kub25Qb3BTdGF0ZShyPT57dGhpcy5fc3ViamVjdC5lbWl0KHt1cmw6dGhpcy5wYXRoKCEwKSxwb3A6ITAsc3RhdGU6ci5zdGF0ZSx0eXBlOnIudHlwZX0pfSl9bmdPbkRlc3Ryb3koKXt0aGlzLl91cmxDaGFuZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCksdGhpcy5fdXJsQ2hhbmdlTGlzdGVuZXJzPVtdfXBhdGgoZT0hMSl7cmV0dXJuIHRoaXMubm9ybWFsaXplKHRoaXMuX2xvY2F0aW9uU3RyYXRlZ3kucGF0aChlKSl9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fbG9jYXRpb25TdHJhdGVneS5nZXRTdGF0ZSgpfWlzQ3VycmVudFBhdGhFcXVhbFRvKGUsaT0iIil7cmV0dXJuIHRoaXMucGF0aCgpPT10aGlzLm5vcm1hbGl6ZShlK2VoKGkpKX1ub3JtYWxpemUoZSl7cmV0dXJuIG4uc3RyaXBUcmFpbGluZ1NsYXNoKGZ1bmN0aW9uKG4sdCl7aWYoIW58fCF0LnN0YXJ0c1dpdGgobikpcmV0dXJuIHQ7bGV0IGU9dC5zdWJzdHJpbmcobi5sZW5ndGgpO3JldHVybiIiPT09ZXx8WyIvIiwiOyIsIj8iLCIjIl0uaW5jbHVkZXMoZVswXSk/ZTp0fSh0aGlzLl9iYXNlUGF0aCxMaihlKSkpfXByZXBhcmVFeHRlcm5hbFVybChlKXtyZXR1cm4gZSYmIi8iIT09ZVswXSYmKGU9Ii8iK2UpLHRoaXMuX2xvY2F0aW9uU3RyYXRlZ3kucHJlcGFyZUV4dGVybmFsVXJsKGUpfWdvKGUsaT0iIixyPW51bGwpe3RoaXMuX2xvY2F0aW9uU3RyYXRlZ3kucHVzaFN0YXRlKHIsIiIsZSxpKSx0aGlzLl9ub3RpZnlVcmxDaGFuZ2VMaXN0ZW5lcnModGhpcy5wcmVwYXJlRXh0ZXJuYWxVcmwoZStlaChpKSkscil9cmVwbGFjZVN0YXRlKGUsaT0iIixyPW51bGwpe3RoaXMuX2xvY2F0aW9uU3RyYXRlZ3kucmVwbGFjZVN0YXRlKHIsIiIsZSxpKSx0aGlzLl9ub3RpZnlVcmxDaGFuZ2VMaXN0ZW5lcnModGhpcy5wcmVwYXJlRXh0ZXJuYWxVcmwoZStlaChpKSkscil9Zm9yd2FyZCgpe3RoaXMuX2xvY2F0aW9uU3RyYXRlZ3kuZm9yd2FyZCgpfWJhY2soKXt0aGlzLl9sb2NhdGlvblN0cmF0ZWd5LmJhY2soKX1oaXN0b3J5R28oZT0wKXt0aGlzLl9sb2NhdGlvblN0cmF0ZWd5Lmhpc3RvcnlHbz8uKGUpfW9uVXJsQ2hhbmdlKGUpe3JldHVybiB0aGlzLl91cmxDaGFuZ2VMaXN0ZW5lcnMucHVzaChlKSx0aGlzLl91cmxDaGFuZ2VTdWJzY3JpcHRpb258fCh0aGlzLl91cmxDaGFuZ2VTdWJzY3JpcHRpb249dGhpcy5zdWJzY3JpYmUoaT0+e3RoaXMuX25vdGlmeVVybENoYW5nZUxpc3RlbmVycyhpLnVybCxpLnN0YXRlKX0pKSwoKT0+e2xldCBpPXRoaXMuX3VybENoYW5nZUxpc3RlbmVycy5pbmRleE9mKGUpO3RoaXMuX3VybENoYW5nZUxpc3RlbmVycy5zcGxpY2UoaSwxKSwwPT09dGhpcy5fdXJsQ2hhbmdlTGlzdGVuZXJzLmxlbmd0aCYmKHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKSx0aGlzLl91cmxDaGFuZ2VTdWJzY3JpcHRpb249bnVsbCl9fV9ub3RpZnlVcmxDaGFuZ2VMaXN0ZW5lcnMoZT0iIixpKXt0aGlzLl91cmxDaGFuZ2VMaXN0ZW5lcnMuZm9yRWFjaChyPT5yKGUsaSkpfXN1YnNjcmliZShlLGkscil7cmV0dXJuIHRoaXMuX3N1YmplY3Quc3Vic2NyaWJlKHtuZXh0OmUsZXJyb3I6aSxjb21wbGV0ZTpyfSl9fXJldHVybiBuLm5vcm1hbGl6ZVF1ZXJ5UGFyYW1zPWVoLG4uam9pbldpdGhTbGFzaD1YaixuLnN0cmlwVHJhaWxpbmdTbGFzaD1OaixuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oJGspKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERiKE8oJGspKX0scHJvdmlkZWRJbjoicm9vdCJ9KSxufSkoKTtmdW5jdGlvbiBMaihuKXtyZXR1cm4gbi5yZXBsYWNlKC9cL2luZGV4Lmh0bWwkLywiIil9dmFyIGN3PSgoKT0+e3JldHVybihuPWN3fHwoY3c9e30pKVtuLkRlY2ltYWw9MF09IkRlY2ltYWwiLG5bbi5QZXJjZW50PTFdPSJQZXJjZW50IixuW24uQ3VycmVuY3k9Ml09IkN1cnJlbmN5IixuW24uU2NpZW50aWZpYz0zXT0iU2NpZW50aWZpYyIsY3c7dmFyIG59KSgpLEJvPSgoKT0+e3JldHVybihuPUJvfHwoQm89e30pKVtuLkZvcm1hdD0wXT0iRm9ybWF0IixuW24uU3RhbmRhbG9uZT0xXT0iU3RhbmRhbG9uZSIsQm87dmFyIG59KSgpLFhpPSgoKT0+e3JldHVybihuPVhpfHwoWGk9e30pKVtuLk5hcnJvdz0wXT0iTmFycm93IixuW24uQWJicmV2aWF0ZWQ9MV09IkFiYnJldmlhdGVkIixuW24uV2lkZT0yXT0iV2lkZSIsbltuLlNob3J0PTNdPSJTaG9ydCIsWGk7dmFyIG59KSgpLHBhPSgoKT0+e3JldHVybihuPXBhfHwocGE9e30pKVtuLlNob3J0PTBdPSJTaG9ydCIsbltuLk1lZGl1bT0xXT0iTWVkaXVtIixuW24uTG9uZz0yXT0iTG9uZyIsbltuLkZ1bGw9M109IkZ1bGwiLHBhO3ZhciBufSkoKSxZbz0oKCk9PntyZXR1cm4obj1Zb3x8KFlvPXt9KSlbbi5EZWNpbWFsPTBdPSJEZWNpbWFsIixuW24uR3JvdXA9MV09Ikdyb3VwIixuW24uTGlzdD0yXT0iTGlzdCIsbltuLlBlcmNlbnRTaWduPTNdPSJQZXJjZW50U2lnbiIsbltuLlBsdXNTaWduPTRdPSJQbHVzU2lnbiIsbltuLk1pbnVzU2lnbj01XT0iTWludXNTaWduIixuW24uRXhwb25lbnRpYWw9Nl09IkV4cG9uZW50aWFsIixuW24uU3VwZXJzY3JpcHRpbmdFeHBvbmVudD03XT0iU3VwZXJzY3JpcHRpbmdFeHBvbmVudCIsbltuLlBlck1pbGxlPThdPSJQZXJNaWxsZSIsbltuLkluZmluaXR5PTldPSJJbmZpbml0eSIsbltuLk5hTj0xMF09Ik5hTiIsbltuLlRpbWVTZXBhcmF0b3I9MTFdPSJUaW1lU2VwYXJhdG9yIixuW24uQ3VycmVuY3lEZWNpbWFsPTEyXT0iQ3VycmVuY3lEZWNpbWFsIixuW24uQ3VycmVuY3lHcm91cD0xM109IkN1cnJlbmN5R3JvdXAiLFlvO3ZhciBufSkoKTtmdW5jdGlvbiBpdyhuLHQpe3JldHVybiB6cyhGYShuKVtoci5EYXRlRm9ybWF0XSx0KX1mdW5jdGlvbiBydyhuLHQpe3JldHVybiB6cyhGYShuKVtoci5UaW1lRm9ybWF0XSx0KX1mdW5jdGlvbiBvdyhuLHQpe3JldHVybiB6cyhGYShuKVtoci5EYXRlVGltZUZvcm1hdF0sdCl9ZnVuY3Rpb24gbGQobix0KXtsZXQgZT1GYShuKSxpPWVbaHIuTnVtYmVyU3ltYm9sc11bdF07aWYodHlwZW9mIGk+InUiKXtpZih0PT09WW8uQ3VycmVuY3lEZWNpbWFsKXJldHVybiBlW2hyLk51bWJlclN5bWJvbHNdW1lvLkRlY2ltYWxdO2lmKHQ9PT1Zby5DdXJyZW5jeUdyb3VwKXJldHVybiBlW2hyLk51bWJlclN5bWJvbHNdW1lvLkdyb3VwXX1yZXR1cm4gaX1mdW5jdGlvbiBZaihuKXtpZighbltoci5FeHRyYURhdGFdKXRocm93IG5ldyBFcnJvcihgTWlzc2luZyBleHRyYSBsb2NhbGUgZGF0YSBmb3IgdGhlIGxvY2FsZSAiJHtuW2hyLkxvY2FsZUlkXX0iLiBVc2UgInJlZ2lzdGVyTG9jYWxlRGF0YSIgdG8gbG9hZCBuZXcgZGF0YS4gU2VlIHRoZSAiSTE4biBndWlkZSIgb24gYW5ndWxhci5pbyB0byBrbm93IG1vcmUuYCl9ZnVuY3Rpb24genMobix0KXtmb3IobGV0IGU9dDtlPi0xO2UtLSlpZih0eXBlb2YgbltlXTwidSIpcmV0dXJuIG5bZV07dGhyb3cgbmV3IEVycm9yKCJMb2NhbGUgZGF0YSBBUEk6IGxvY2FsZSBkYXRhIHVuZGVmaW5lZCIpfWZ1bmN0aW9uIFVrKG4pe2xldFt0LGVdPW4uc3BsaXQoIjoiKTtyZXR1cm57aG91cnM6K3QsbWludXRlczorZX19dmFyIEZ1ZT0vXihcZHs0LH0pLT8oXGRcZCktPyhcZFxkKSg/OlQoXGRcZCkoPzo6PyhcZFxkKSg/Ojo/KFxkXGQpKD86XC4oXGQrKSk/KT8pPyhafChbKy1dKShcZFxkKTo/KFxkXGQpKT8pPyQvLEViPXt9LE51ZT0vKCg/OlteQkVHSExNT1NXWVphYmNkaG1zd3l6J10rKXwoPzonKD86W14nXXwnJykqJyl8KD86R3sxLDV9fHl7MSw0fXxZezEsNH18TXsxLDV9fEx7MSw1fXx3ezEsMn18V3sxfXxkezEsMn18RXsxLDZ9fGN7MSw2fXxhezEsNX18YnsxLDV9fEJ7MSw1fXxoezEsMn18SHsxLDJ9fG17MSwyfXxzezEsMn18U3sxLDN9fHp7MSw0fXxaezEsNX18T3sxLDR9KSkoW1xzXFNdKikvLElsPSgoKT0+e3JldHVybihuPUlsfHwoSWw9e30pKVtuLlNob3J0PTBdPSJTaG9ydCIsbltuLlNob3J0R01UPTFdPSJTaG9ydEdNVCIsbltuLkxvbmc9Ml09IkxvbmciLG5bbi5FeHRlbmRlZD0zXT0iRXh0ZW5kZWQiLElsO3ZhciBufSkoKSxJaT0oKCk9PntyZXR1cm4obj1JaXx8KElpPXt9KSlbbi5GdWxsWWVhcj0wXT0iRnVsbFllYXIiLG5bbi5Nb250aD0xXT0iTW9udGgiLG5bbi5EYXRlPTJdPSJEYXRlIixuW24uSG91cnM9M109IkhvdXJzIixuW24uTWludXRlcz00XT0iTWludXRlcyIsbltuLlNlY29uZHM9NV09IlNlY29uZHMiLG5bbi5GcmFjdGlvbmFsU2Vjb25kcz02XT0iRnJhY3Rpb25hbFNlY29uZHMiLG5bbi5EYXk9N109IkRheSIsSWk7dmFyIG59KSgpLERpPSgoKT0+e3JldHVybihuPURpfHwoRGk9e30pKVtuLkRheVBlcmlvZHM9MF09IkRheVBlcmlvZHMiLG5bbi5EYXlzPTFdPSJEYXlzIixuW24uTW9udGhzPTJdPSJNb250aHMiLG5bbi5FcmFzPTNdPSJFcmFzIixEaTt2YXIgbn0pKCk7ZnVuY3Rpb24gTHVlKG4sdCxlLGkpe2xldCByPWZ1bmN0aW9uKG4pe2lmKEJqKG4pKXJldHVybiBuO2lmKCJudW1iZXIiPT10eXBlb2YgbiYmIWlzTmFOKG4pKXJldHVybiBuZXcgRGF0ZShuKTtpZigic3RyaW5nIj09dHlwZW9mIG4pe2lmKG49bi50cmltKCksL14oXGR7NH0oLVxkezEsMn0oLVxkezEsMn0pPyk/KSQvLnRlc3Qobikpe2xldFtyLG89MSxhPTFdPW4uc3BsaXQoIi0iKS5tYXAocz0+K3MpO3JldHVybiBwdyhyLG8tMSxhKX1sZXQgaSxlPXBhcnNlRmxvYXQobik7aWYoIWlzTmFOKG4tZSkpcmV0dXJuIG5ldyBEYXRlKGUpO2lmKGk9bi5tYXRjaChGdWUpKXJldHVybiBmdW5jdGlvbihuKXtsZXQgdD1uZXcgRGF0ZSgwKSxlPTAsaT0wLHI9bls4XT90LnNldFVUQ0Z1bGxZZWFyOnQuc2V0RnVsbFllYXIsbz1uWzhdP3Quc2V0VVRDSG91cnM6dC5zZXRIb3VycztuWzldJiYoZT1OdW1iZXIobls5XStuWzEwXSksaT1OdW1iZXIobls5XStuWzExXSkpLHIuY2FsbCh0LE51bWJlcihuWzFdKSxOdW1iZXIoblsyXSktMSxOdW1iZXIoblszXSkpO2xldCBhPU51bWJlcihuWzRdfHwwKS1lLHM9TnVtYmVyKG5bNV18fDApLWksbD1OdW1iZXIobls2XXx8MCksYz1NYXRoLmZsb29yKDFlMypwYXJzZUZsb2F0KCIwLiIrKG5bN118fDApKSk7cmV0dXJuIG8uY2FsbCh0LGEscyxsLGMpLHR9KGkpfWxldCB0PW5ldyBEYXRlKG4pO2lmKCFCaih0KSl0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBjb252ZXJ0ICIke259IiBpbnRvIGEgZGF0ZWApO3JldHVybiB0fShuKTt0PXNkKGUsdCl8fHQ7bGV0IHMsYT1bXTtmb3IoO3Q7KXtpZihzPU51ZS5leGVjKHQpLCFzKXthLnB1c2godCk7YnJlYWt9e2E9YS5jb25jYXQocy5zbGljZSgxKSk7bGV0IGQ9YS5wb3AoKTtpZighZClicmVhazt0PWR9fWxldCBsPXIuZ2V0VGltZXpvbmVPZmZzZXQoKTtpJiYobD1aaihpLGwpLHI9ZnVuY3Rpb24obix0LGUpe2xldCByPW4uZ2V0VGltZXpvbmVPZmZzZXQoKTtyZXR1cm4gZnVuY3Rpb24obix0KXtyZXR1cm4obj1uZXcgRGF0ZShuLmdldFRpbWUoKSkpLnNldE1pbnV0ZXMobi5nZXRNaW51dGVzKCkrdCksbn0obiwtMSooWmoodCxyKS1yKSl9KHIsaSkpO2xldCBjPSIiO3JldHVybiBhLmZvckVhY2goZD0+e2xldCB1PWZ1bmN0aW9uKG4pe2lmKEdrW25dKXJldHVybiBHa1tuXTtsZXQgdDtzd2l0Y2gobil7Y2FzZSJHIjpjYXNlIkdHIjpjYXNlIkdHRyI6dD1ycihEaS5FcmFzLFhpLkFiYnJldmlhdGVkKTticmVhaztjYXNlIkdHR0ciOnQ9cnIoRGkuRXJhcyxYaS5XaWRlKTticmVhaztjYXNlIkdHR0dHIjp0PXJyKERpLkVyYXMsWGkuTmFycm93KTticmVhaztjYXNlInkiOnQ9JHIoSWkuRnVsbFllYXIsMSwwLCExLCEwKTticmVhaztjYXNlInl5Ijp0PSRyKElpLkZ1bGxZZWFyLDIsMCwhMCwhMCk7YnJlYWs7Y2FzZSJ5eXkiOnQ9JHIoSWkuRnVsbFllYXIsMywwLCExLCEwKTticmVhaztjYXNlInl5eXkiOnQ9JHIoSWkuRnVsbFllYXIsNCwwLCExLCEwKTticmVhaztjYXNlIlkiOnQ9bHcoMSk7YnJlYWs7Y2FzZSJZWSI6dD1sdygyLCEwKTticmVhaztjYXNlIllZWSI6dD1sdygzKTticmVhaztjYXNlIllZWVkiOnQ9bHcoNCk7YnJlYWs7Y2FzZSJNIjpjYXNlIkwiOnQ9JHIoSWkuTW9udGgsMSwxKTticmVhaztjYXNlIk1NIjpjYXNlIkxMIjp0PSRyKElpLk1vbnRoLDIsMSk7YnJlYWs7Y2FzZSJNTU0iOnQ9cnIoRGkuTW9udGhzLFhpLkFiYnJldmlhdGVkKTticmVhaztjYXNlIk1NTU0iOnQ9cnIoRGkuTW9udGhzLFhpLldpZGUpO2JyZWFrO2Nhc2UiTU1NTU0iOnQ9cnIoRGkuTW9udGhzLFhpLk5hcnJvdyk7YnJlYWs7Y2FzZSJMTEwiOnQ9cnIoRGkuTW9udGhzLFhpLkFiYnJldmlhdGVkLEJvLlN0YW5kYWxvbmUpO2JyZWFrO2Nhc2UiTExMTCI6dD1ycihEaS5Nb250aHMsWGkuV2lkZSxCby5TdGFuZGFsb25lKTticmVhaztjYXNlIkxMTExMIjp0PXJyKERpLk1vbnRocyxYaS5OYXJyb3csQm8uU3RhbmRhbG9uZSk7YnJlYWs7Y2FzZSJ3Ijp0PWprKDEpO2JyZWFrO2Nhc2Uid3ciOnQ9amsoMik7YnJlYWs7Y2FzZSJXIjp0PWprKDEsITApO2JyZWFrO2Nhc2UiZCI6dD0kcihJaS5EYXRlLDEpO2JyZWFrO2Nhc2UiZGQiOnQ9JHIoSWkuRGF0ZSwyKTticmVhaztjYXNlImMiOmNhc2UiY2MiOnQ9JHIoSWkuRGF5LDEpO2JyZWFrO2Nhc2UiY2NjIjp0PXJyKERpLkRheXMsWGkuQWJicmV2aWF0ZWQsQm8uU3RhbmRhbG9uZSk7YnJlYWs7Y2FzZSJjY2NjIjp0PXJyKERpLkRheXMsWGkuV2lkZSxCby5TdGFuZGFsb25lKTticmVhaztjYXNlImNjY2NjIjp0PXJyKERpLkRheXMsWGkuTmFycm93LEJvLlN0YW5kYWxvbmUpO2JyZWFrO2Nhc2UiY2NjY2NjIjp0PXJyKERpLkRheXMsWGkuU2hvcnQsQm8uU3RhbmRhbG9uZSk7YnJlYWs7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6dD1ycihEaS5EYXlzLFhpLkFiYnJldmlhdGVkKTticmVhaztjYXNlIkVFRUUiOnQ9cnIoRGkuRGF5cyxYaS5XaWRlKTticmVhaztjYXNlIkVFRUVFIjp0PXJyKERpLkRheXMsWGkuTmFycm93KTticmVhaztjYXNlIkVFRUVFRSI6dD1ycihEaS5EYXlzLFhpLlNob3J0KTticmVhaztjYXNlImEiOmNhc2UiYWEiOmNhc2UiYWFhIjp0PXJyKERpLkRheVBlcmlvZHMsWGkuQWJicmV2aWF0ZWQpO2JyZWFrO2Nhc2UiYWFhYSI6dD1ycihEaS5EYXlQZXJpb2RzLFhpLldpZGUpO2JyZWFrO2Nhc2UiYWFhYWEiOnQ9cnIoRGkuRGF5UGVyaW9kcyxYaS5OYXJyb3cpO2JyZWFrO2Nhc2UiYiI6Y2FzZSJiYiI6Y2FzZSJiYmIiOnQ9cnIoRGkuRGF5UGVyaW9kcyxYaS5BYmJyZXZpYXRlZCxCby5TdGFuZGFsb25lLCEwKTticmVhaztjYXNlImJiYmIiOnQ9cnIoRGkuRGF5UGVyaW9kcyxYaS5XaWRlLEJvLlN0YW5kYWxvbmUsITApO2JyZWFrO2Nhc2UiYmJiYmIiOnQ9cnIoRGkuRGF5UGVyaW9kcyxYaS5OYXJyb3csQm8uU3RhbmRhbG9uZSwhMCk7YnJlYWs7Y2FzZSJCIjpjYXNlIkJCIjpjYXNlIkJCQiI6dD1ycihEaS5EYXlQZXJpb2RzLFhpLkFiYnJldmlhdGVkLEJvLkZvcm1hdCwhMCk7YnJlYWs7Y2FzZSJCQkJCIjp0PXJyKERpLkRheVBlcmlvZHMsWGkuV2lkZSxCby5Gb3JtYXQsITApO2JyZWFrO2Nhc2UiQkJCQkIiOnQ9cnIoRGkuRGF5UGVyaW9kcyxYaS5OYXJyb3csQm8uRm9ybWF0LCEwKTticmVhaztjYXNlImgiOnQ9JHIoSWkuSG91cnMsMSwtMTIpO2JyZWFrO2Nhc2UiaGgiOnQ9JHIoSWkuSG91cnMsMiwtMTIpO2JyZWFrO2Nhc2UiSCI6dD0kcihJaS5Ib3VycywxKTticmVhaztjYXNlIkhIIjp0PSRyKElpLkhvdXJzLDIpO2JyZWFrO2Nhc2UibSI6dD0kcihJaS5NaW51dGVzLDEpO2JyZWFrO2Nhc2UibW0iOnQ9JHIoSWkuTWludXRlcywyKTticmVhaztjYXNlInMiOnQ9JHIoSWkuU2Vjb25kcywxKTticmVhaztjYXNlInNzIjp0PSRyKElpLlNlY29uZHMsMik7YnJlYWs7Y2FzZSJTIjp0PSRyKElpLkZyYWN0aW9uYWxTZWNvbmRzLDEpO2JyZWFrO2Nhc2UiU1MiOnQ9JHIoSWkuRnJhY3Rpb25hbFNlY29uZHMsMik7YnJlYWs7Y2FzZSJTU1MiOnQ9JHIoSWkuRnJhY3Rpb25hbFNlY29uZHMsMyk7YnJlYWs7Y2FzZSJaIjpjYXNlIlpaIjpjYXNlIlpaWiI6dD1zdyhJbC5TaG9ydCk7YnJlYWs7Y2FzZSJaWlpaWiI6dD1zdyhJbC5FeHRlbmRlZCk7YnJlYWs7Y2FzZSJPIjpjYXNlIk9PIjpjYXNlIk9PTyI6Y2FzZSJ6IjpjYXNlInp6IjpjYXNlInp6eiI6dD1zdyhJbC5TaG9ydEdNVCk7YnJlYWs7Y2FzZSJPT09PIjpjYXNlIlpaWloiOmNhc2Uienp6eiI6dD1zdyhJbC5Mb25nKTticmVhaztkZWZhdWx0OnJldHVybiBudWxsfXJldHVybiBHa1tuXT10LHR9KGQpO2MrPXU/dShyLGUsbCk6IicnIj09PWQ/IiciOmQucmVwbGFjZSgvKF4nfCckKS9nLCIiKS5yZXBsYWNlKC8nJy9nLCInIil9KSxjfWZ1bmN0aW9uIHB3KG4sdCxlKXtsZXQgaT1uZXcgRGF0ZSgwKTtyZXR1cm4gaS5zZXRGdWxsWWVhcihuLHQsZSksaS5zZXRIb3VycygwLDAsMCksaX1mdW5jdGlvbiBzZChuLHQpe2xldCBlPWZ1bmN0aW9uKG4pe3JldHVybiBGYShuKVtoci5Mb2NhbGVJZF19KG4pO2lmKEViW2VdPUViW2VdfHx7fSxFYltlXVt0XSlyZXR1cm4gRWJbZV1bdF07bGV0IGk9IiI7c3dpdGNoKHQpe2Nhc2Uic2hvcnREYXRlIjppPWl3KG4scGEuU2hvcnQpO2JyZWFrO2Nhc2UibWVkaXVtRGF0ZSI6aT1pdyhuLHBhLk1lZGl1bSk7YnJlYWs7Y2FzZSJsb25nRGF0ZSI6aT1pdyhuLHBhLkxvbmcpO2JyZWFrO2Nhc2UiZnVsbERhdGUiOmk9aXcobixwYS5GdWxsKTticmVhaztjYXNlInNob3J0VGltZSI6aT1ydyhuLHBhLlNob3J0KTticmVhaztjYXNlIm1lZGl1bVRpbWUiOmk9cncobixwYS5NZWRpdW0pO2JyZWFrO2Nhc2UibG9uZ1RpbWUiOmk9cncobixwYS5Mb25nKTticmVhaztjYXNlImZ1bGxUaW1lIjppPXJ3KG4scGEuRnVsbCk7YnJlYWs7Y2FzZSJzaG9ydCI6bGV0IHI9c2Qobiwic2hvcnRUaW1lIiksbz1zZChuLCJzaG9ydERhdGUiKTtpPWF3KG93KG4scGEuU2hvcnQpLFtyLG9dKTticmVhaztjYXNlIm1lZGl1bSI6bGV0IGE9c2QobiwibWVkaXVtVGltZSIpLHM9c2QobiwibWVkaXVtRGF0ZSIpO2k9YXcob3cobixwYS5NZWRpdW0pLFthLHNdKTticmVhaztjYXNlImxvbmciOmxldCBsPXNkKG4sImxvbmdUaW1lIiksYz1zZChuLCJsb25nRGF0ZSIpO2k9YXcob3cobixwYS5Mb25nKSxbbCxjXSk7YnJlYWs7Y2FzZSJmdWxsIjpsZXQgZD1zZChuLCJmdWxsVGltZSIpLHU9c2QobiwiZnVsbERhdGUiKTtpPWF3KG93KG4scGEuRnVsbCksW2QsdV0pfXJldHVybiBpJiYoRWJbZV1bdF09aSksaX1mdW5jdGlvbiBhdyhuLHQpe3JldHVybiB0JiYobj1uLnJlcGxhY2UoL1x7KFtefV0rKX0vZyxmdW5jdGlvbihlLGkpe3JldHVybiBudWxsIT10JiZpIGluIHQ/dFtpXTplfSkpLG59ZnVuY3Rpb24gRGwobix0LGU9Ii0iLGkscil7bGV0IG89IiI7KG48MHx8ciYmbjw9MCkmJihyP249MS1uOihuPS1uLG89ZSkpO2xldCBhPVN0cmluZyhuKTtmb3IoO2EubGVuZ3RoPHQ7KWE9IjAiK2E7cmV0dXJuIGkmJihhPWEuc2xpY2UoYS5sZW5ndGgtdCkpLG8rYX1mdW5jdGlvbiAkcihuLHQsZT0wLGk9ITEscj0hMSl7cmV0dXJuIGZ1bmN0aW9uKG8sYSl7bGV0IHM9ZnVuY3Rpb24obix0KXtzd2l0Y2gobil7Y2FzZSBJaS5GdWxsWWVhcjpyZXR1cm4gdC5nZXRGdWxsWWVhcigpO2Nhc2UgSWkuTW9udGg6cmV0dXJuIHQuZ2V0TW9udGgoKTtjYXNlIElpLkRhdGU6cmV0dXJuIHQuZ2V0RGF0ZSgpO2Nhc2UgSWkuSG91cnM6cmV0dXJuIHQuZ2V0SG91cnMoKTtjYXNlIElpLk1pbnV0ZXM6cmV0dXJuIHQuZ2V0TWludXRlcygpO2Nhc2UgSWkuU2Vjb25kczpyZXR1cm4gdC5nZXRTZWNvbmRzKCk7Y2FzZSBJaS5GcmFjdGlvbmFsU2Vjb25kczpyZXR1cm4gdC5nZXRNaWxsaXNlY29uZHMoKTtjYXNlIElpLkRheTpyZXR1cm4gdC5nZXREYXkoKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5rbm93biBEYXRlVHlwZSB2YWx1ZSAiJHtufSIuYCl9fShuLG8pO2lmKChlPjB8fHM+LWUpJiYocys9ZSksbj09PUlpLkhvdXJzKTA9PT1zJiYtMTI9PT1lJiYocz0xMik7ZWxzZSBpZihuPT09SWkuRnJhY3Rpb25hbFNlY29uZHMpcmV0dXJuIGZ1bmN0aW9uKG4sdCl7cmV0dXJuIERsKG4sMykuc3Vic3RyaW5nKDAsdCl9KHMsdCk7bGV0IGw9bGQoYSxZby5NaW51c1NpZ24pO3JldHVybiBEbChzLHQsbCxpLHIpfX1mdW5jdGlvbiBycihuLHQsZT1Cby5Gb3JtYXQsaT0hMSl7cmV0dXJuIGZ1bmN0aW9uKHIsbyl7cmV0dXJuIGZ1bmN0aW9uKG4sdCxlLGkscixvKXtzd2l0Y2goZSl7Y2FzZSBEaS5Nb250aHM6cmV0dXJuIGZ1bmN0aW9uKG4sdCxlKXtsZXQgaT1GYShuKSxvPXpzKFtpW2hyLk1vbnRoc0Zvcm1hdF0saVtoci5Nb250aHNTdGFuZGFsb25lXV0sdCk7cmV0dXJuIHpzKG8sZSl9KHQscixpKVtuLmdldE1vbnRoKCldO2Nhc2UgRGkuRGF5czpyZXR1cm4gZnVuY3Rpb24obix0LGUpe2xldCBpPUZhKG4pLG89enMoW2lbaHIuRGF5c0Zvcm1hdF0saVtoci5EYXlzU3RhbmRhbG9uZV1dLHQpO3JldHVybiB6cyhvLGUpfSh0LHIsaSlbbi5nZXREYXkoKV07Y2FzZSBEaS5EYXlQZXJpb2RzOmxldCBhPW4uZ2V0SG91cnMoKSxzPW4uZ2V0TWludXRlcygpO2lmKG8pe2xldCBjPWZ1bmN0aW9uKG4pe2xldCB0PUZhKG4pO3JldHVybiBZaih0KSwodFtoci5FeHRyYURhdGFdWzJdfHxbXSkubWFwKGk9PiJzdHJpbmciPT10eXBlb2YgaT9VayhpKTpbVWsoaVswXSksVWsoaVsxXSldKX0odCksZD1mdW5jdGlvbihuLHQsZSl7bGV0IGk9RmEobik7WWooaSk7bGV0IG89enMoW2lbaHIuRXh0cmFEYXRhXVswXSxpW2hyLkV4dHJhRGF0YV1bMV1dLHQpfHxbXTtyZXR1cm4genMobyxlKXx8W119KHQscixpKSx1PWMuZmluZEluZGV4KHA9PntpZihBcnJheS5pc0FycmF5KHApKXtsZXRbaCxtXT1wLF89YT49aC5ob3VycyYmcz49aC5taW51dGVzLE09YTxtLmhvdXJzfHxhPT09bS5ob3VycyYmczxtLm1pbnV0ZXM7aWYoaC5ob3VyczxtLmhvdXJzKXtpZihfJiZNKXJldHVybiEwfWVsc2UgaWYoX3x8TSlyZXR1cm4hMH1lbHNlIGlmKHAuaG91cnM9PT1hJiZwLm1pbnV0ZXM9PT1zKXJldHVybiEwO3JldHVybiExfSk7aWYoLTEhPT11KXJldHVybiBkW3VdfXJldHVybiBmdW5jdGlvbihuLHQsZSl7bGV0IGk9RmEobiksbz16cyhbaVtoci5EYXlQZXJpb2RzRm9ybWF0XSxpW2hyLkRheVBlcmlvZHNTdGFuZGFsb25lXV0sdCk7cmV0dXJuIHpzKG8sZSl9KHQscixpKVthPDEyPzA6MV07Y2FzZSBEaS5FcmFzOnJldHVybiBmdW5jdGlvbihuLHQpe3JldHVybiB6cyhGYShuKVtoci5FcmFzXSx0KX0odCxpKVtuLmdldEZ1bGxZZWFyKCk8PTA/MDoxXTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCB0cmFuc2xhdGlvbiB0eXBlICR7ZX1gKX19KHIsbyxuLHQsZSxpKX19ZnVuY3Rpb24gc3cobil7cmV0dXJuIGZ1bmN0aW9uKHQsZSxpKXtsZXQgcj0tMSppLG89bGQoZSxZby5NaW51c1NpZ24pLGE9cj4wP01hdGguZmxvb3Ioci82MCk6TWF0aC5jZWlsKHIvNjApO3N3aXRjaChuKXtjYXNlIElsLlNob3J0OnJldHVybihyPj0wPyIrIjoiIikrRGwoYSwyLG8pK0RsKE1hdGguYWJzKHIlNjApLDIsbyk7Y2FzZSBJbC5TaG9ydEdNVDpyZXR1cm4iR01UIisocj49MD8iKyI6IiIpK0RsKGEsMSxvKTtjYXNlIElsLkxvbmc6cmV0dXJuIkdNVCIrKHI+PTA/IisiOiIiKStEbChhLDIsbykrIjoiK0RsKE1hdGguYWJzKHIlNjApLDIsbyk7Y2FzZSBJbC5FeHRlbmRlZDpyZXR1cm4gMD09PWk/IloiOihyPj0wPyIrIjoiIikrRGwoYSwyLG8pKyI6IitEbChNYXRoLmFicyhyJTYwKSwyLG8pO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHpvbmUgd2lkdGggIiR7bn0iYCl9fX12YXIgenVlPTAsZHc9NDtmdW5jdGlvbiBRaihuKXtyZXR1cm4gcHcobi5nZXRGdWxsWWVhcigpLG4uZ2V0TW9udGgoKSxuLmdldERhdGUoKSsoZHctbi5nZXREYXkoKSkpfWZ1bmN0aW9uIGprKG4sdD0hMSl7cmV0dXJuIGZ1bmN0aW9uKGUsaSl7bGV0IHI7aWYodCl7bGV0IG89bmV3IERhdGUoZS5nZXRGdWxsWWVhcigpLGUuZ2V0TW9udGgoKSwxKS5nZXREYXkoKS0xLGE9ZS5nZXREYXRlKCk7cj0xK01hdGguZmxvb3IoKGErbykvNyl9ZWxzZXtsZXQgbz1RaihlKSxhPWZ1bmN0aW9uKG4pe2xldCB0PXB3KG4senVlLDEpLmdldERheSgpO3JldHVybiBwdyhuLDAsMSsodDw9ZHc/ZHc6ZHcrNyktdCl9KG8uZ2V0RnVsbFllYXIoKSkscz1vLmdldFRpbWUoKS1hLmdldFRpbWUoKTtyPTErTWF0aC5yb3VuZChzLzYwNDhlNSl9cmV0dXJuIERsKHIsbixsZChpLFlvLk1pbnVzU2lnbikpfX1mdW5jdGlvbiBsdyhuLHQ9ITEpe3JldHVybiBmdW5jdGlvbihlLGkpe3JldHVybiBEbChRaihlKS5nZXRGdWxsWWVhcigpLG4sbGQoaSxZby5NaW51c1NpZ24pLHQpfX12YXIgR2s9e307ZnVuY3Rpb24gWmoobix0KXtuPW4ucmVwbGFjZSgvOi9nLCIiKTtsZXQgZT1EYXRlLnBhcnNlKCJKYW4gMDEsIDE5NzAgMDA6MDA6MDAgIituKS82ZTQ7cmV0dXJuIGlzTmFOKGUpP3Q6ZX1mdW5jdGlvbiBCaihuKXtyZXR1cm4gbiBpbnN0YW5jZW9mIERhdGUmJiFpc05hTihuLnZhbHVlT2YoKSl9dmFyIFl1ZT0vXihcZCspP1wuKChcZCspKC0oXGQrKSk/KT8kLyxWaj0yMixodz0iLiIsVGI9IjAiLFF1ZT0iOyIsWnVlPSIsIixXaz0iIyI7ZnVuY3Rpb24gZU8obix0LGUpe2xldCBpPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIEZhKG4pW2hyLk51bWJlckZvcm1hdHNdW3RdfSh0LGN3LkRlY2ltYWwpLHI9ZnVuY3Rpb24obix0PSItIil7bGV0IGU9e21pbkludDoxLG1pbkZyYWM6MCxtYXhGcmFjOjAscG9zUHJlOiIiLHBvc1N1ZjoiIixuZWdQcmU6IiIsbmVnU3VmOiIiLGdTaXplOjAsbGdTaXplOjB9LGk9bi5zcGxpdChRdWUpLHI9aVswXSxvPWlbMV0sYT0tMSE9PXIuaW5kZXhPZihodyk/ci5zcGxpdChodyk6W3Iuc3Vic3RyaW5nKDAsci5sYXN0SW5kZXhPZihUYikrMSksci5zdWJzdHJpbmcoci5sYXN0SW5kZXhPZihUYikrMSldLHM9YVswXSxsPWFbMV18fCIiO2UucG9zUHJlPXMuc3Vic3RyaW5nKDAscy5pbmRleE9mKFdrKSk7Zm9yKGxldCBkPTA7ZDxsLmxlbmd0aDtkKyspe2xldCB1PWwuY2hhckF0KGQpO3U9PT1UYj9lLm1pbkZyYWM9ZS5tYXhGcmFjPWQrMTp1PT09V2s/ZS5tYXhGcmFjPWQrMTplLnBvc1N1Zis9dX1sZXQgYz1zLnNwbGl0KFp1ZSk7aWYoZS5nU2l6ZT1jWzFdP2NbMV0ubGVuZ3RoOjAsZS5sZ1NpemU9Y1syXXx8Y1sxXT8oY1syXXx8Y1sxXSkubGVuZ3RoOjAsbyl7bGV0IGQ9ci5sZW5ndGgtZS5wb3NQcmUubGVuZ3RoLWUucG9zU3VmLmxlbmd0aCx1PW8uaW5kZXhPZihXayk7ZS5uZWdQcmU9by5zdWJzdHJpbmcoMCx1KS5yZXBsYWNlKC8nL2csIiIpLGUubmVnU3VmPW8uc2xpY2UodStkKS5yZXBsYWNlKC8nL2csIiIpfWVsc2UgZS5uZWdQcmU9dCtlLnBvc1ByZSxlLm5lZ1N1Zj1lLnBvc1N1ZjtyZXR1cm4gZX0oaSxsZCh0LFlvLk1pbnVzU2lnbikpO3JldHVybiBmdW5jdGlvbihuLHQsZSxpLHIsbyxhPSExKXtsZXQgcz0iIixsPSExO2lmKGlzRmluaXRlKG4pKXtsZXQgYz1mdW5jdGlvbihuKXtsZXQgaSxyLG8sYSxzLHQ9TWF0aC5hYnMobikrIiIsZT0wO2Zvcigocj10LmluZGV4T2YoaHcpKT4tMSYmKHQ9dC5yZXBsYWNlKGh3LCIiKSksKG89dC5zZWFyY2goL2UvaSkpPjA/KHI8MCYmKHI9bykscis9K3Quc2xpY2UobysxKSx0PXQuc3Vic3RyaW5nKDAsbykpOnI8MCYmKHI9dC5sZW5ndGgpLG89MDt0LmNoYXJBdChvKT09PVRiO28rKyk7aWYobz09PShzPXQubGVuZ3RoKSlpPVswXSxyPTE7ZWxzZXtmb3Iocy0tO3QuY2hhckF0KHMpPT09VGI7KXMtLTtmb3Ioci09byxpPVtdLGE9MDtvPD1zO28rKyxhKyspaVthXT1OdW1iZXIodC5jaGFyQXQobykpfXJldHVybiByPlZqJiYoaT1pLnNwbGljZSgwLFZqLTEpLGU9ci0xLHI9MSkse2RpZ2l0czppLGV4cG9uZW50OmUsaW50ZWdlckxlbjpyfX0obik7YSYmKGM9ZnVuY3Rpb24obil7aWYoMD09PW4uZGlnaXRzWzBdKXJldHVybiBuO2xldCB0PW4uZGlnaXRzLmxlbmd0aC1uLmludGVnZXJMZW47cmV0dXJuIG4uZXhwb25lbnQ/bi5leHBvbmVudCs9MjooMD09PXQ/bi5kaWdpdHMucHVzaCgwLDApOjE9PT10JiZuLmRpZ2l0cy5wdXNoKDApLG4uaW50ZWdlckxlbis9Miksbn0oYykpO2xldCBkPXQubWluSW50LHU9dC5taW5GcmFjLHA9dC5tYXhGcmFjO2lmKG8pe2xldCB4PW8ubWF0Y2goWXVlKTtpZihudWxsPT09eCl0aHJvdyBuZXcgRXJyb3IoYCR7b30gaXMgbm90IGEgdmFsaWQgZGlnaXQgaW5mb2ApO2xldCBSPXhbMV0sST14WzNdLEI9eFs1XTtudWxsIT1SJiYoZD1xayhSKSksbnVsbCE9SSYmKHU9cWsoSSkpLG51bGwhPUI/cD1xayhCKTpudWxsIT1JJiZ1PnAmJihwPXUpfSFmdW5jdGlvbihuLHQsZSl7aWYodD5lKXRocm93IG5ldyBFcnJvcihgVGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciBmcmFjdGlvbiAoJHt0fSkgaXMgaGlnaGVyIHRoYW4gdGhlIG1heGltdW0gKCR7ZX0pLmApO2xldCBpPW4uZGlnaXRzLHI9aS5sZW5ndGgtbi5pbnRlZ2VyTGVuLG89TWF0aC5taW4oTWF0aC5tYXgodCxyKSxlKSxhPW8rbi5pbnRlZ2VyTGVuLHM9aVthXTtpZihhPjApe2kuc3BsaWNlKE1hdGgubWF4KG4uaW50ZWdlckxlbixhKSk7Zm9yKGxldCB1PWE7dTxpLmxlbmd0aDt1KyspaVt1XT0wfWVsc2V7cj1NYXRoLm1heCgwLHIpLG4uaW50ZWdlckxlbj0xLGkubGVuZ3RoPU1hdGgubWF4KDEsYT1vKzEpLGlbMF09MDtmb3IobGV0IHU9MTt1PGE7dSsrKWlbdV09MH1pZihzPj01KWlmKGEtMTwwKXtmb3IobGV0IHU9MDt1PmE7dS0tKWkudW5zaGlmdCgwKSxuLmludGVnZXJMZW4rKztpLnVuc2hpZnQoMSksbi5pbnRlZ2VyTGVuKyt9ZWxzZSBpW2EtMV0rKztmb3IoO3I8TWF0aC5tYXgoMCxvKTtyKyspaS5wdXNoKDApO2xldCBsPTAhPT1vLGM9dCtuLmludGVnZXJMZW4sZD1pLnJlZHVjZVJpZ2h0KGZ1bmN0aW9uKHUscCxoLG0pe3JldHVybiBtW2hdPShwKz11KTwxMD9wOnAtMTAsbCYmKDA9PT1tW2hdJiZoPj1jP20ucG9wKCk6bD0hMSkscD49MTA/MTowfSwwKTtkJiYoaS51bnNoaWZ0KGQpLG4uaW50ZWdlckxlbisrKX0oYyx1LHApO2xldCBoPWMuZGlnaXRzLG09Yy5pbnRlZ2VyTGVuLF89Yy5leHBvbmVudCxNPVtdO2ZvcihsPWguZXZlcnkoeD0+IXgpO208ZDttKyspaC51bnNoaWZ0KDApO2Zvcig7bTwwO20rKyloLnVuc2hpZnQoMCk7bT4wP009aC5zcGxpY2UobSxoLmxlbmd0aCk6KE09aCxoPVswXSk7bGV0IHk9W107Zm9yKGgubGVuZ3RoPj10LmxnU2l6ZSYmeS51bnNoaWZ0KGguc3BsaWNlKC10LmxnU2l6ZSxoLmxlbmd0aCkuam9pbigiIikpO2gubGVuZ3RoPnQuZ1NpemU7KXkudW5zaGlmdChoLnNwbGljZSgtdC5nU2l6ZSxoLmxlbmd0aCkuam9pbigiIikpO2gubGVuZ3RoJiZ5LnVuc2hpZnQoaC5qb2luKCIiKSkscz15LmpvaW4obGQoZSxpKSksTS5sZW5ndGgmJihzKz1sZChlLHIpK00uam9pbigiIikpLF8mJihzKz1sZChlLFlvLkV4cG9uZW50aWFsKSsiKyIrXyl9ZWxzZSBzPWxkKGUsWW8uSW5maW5pdHkpO3JldHVybiBzPW48MCYmIWw/dC5uZWdQcmUrcyt0Lm5lZ1N1Zjp0LnBvc1ByZStzK3QucG9zU3VmLHN9KG4scix0LFlvLkdyb3VwLFlvLkRlY2ltYWwsZSl9ZnVuY3Rpb24gcWsobil7bGV0IHQ9cGFyc2VJbnQobik7aWYoaXNOYU4odCkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGludGVnZXIgbGl0ZXJhbCB3aGVuIHBhcnNpbmcgIituKTtyZXR1cm4gdH1mdW5jdGlvbiBmdyhuLHQpe3Q9ZW5jb2RlVVJJQ29tcG9uZW50KHQpO2ZvcihsZXQgZSBvZiBuLnNwbGl0KCI7Iikpe2xldCBpPWUuaW5kZXhPZigiPSIpLFtyLG9dPS0xPT1pP1tlLCIiXTpbZS5zbGljZSgwLGkpLGUuc2xpY2UoaSsxKV07aWYoci50cmltKCk9PT10KXJldHVybiBkZWNvZGVVUklDb21wb25lbnQobyl9cmV0dXJuIG51bGx9dmFyIFhrPS9ccysvLEhqPVtdLHduPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIsbyl7dGhpcy5faXRlcmFibGVEaWZmZXJzPWUsdGhpcy5fa2V5VmFsdWVEaWZmZXJzPWksdGhpcy5fbmdFbD1yLHRoaXMuX3JlbmRlcmVyPW8sdGhpcy5pbml0aWFsQ2xhc3Nlcz1Iaix0aGlzLnN0YXRlTWFwPW5ldyBNYXB9c2V0IGtsYXNzKGUpe3RoaXMuaW5pdGlhbENsYXNzZXM9bnVsbCE9ZT9lLnRyaW0oKS5zcGxpdChYayk6SGp9c2V0IG5nQ2xhc3MoZSl7dGhpcy5yYXdDbGFzcz0ic3RyaW5nIj09dHlwZW9mIGU/ZS50cmltKCkuc3BsaXQoWGspOmV9bmdEb0NoZWNrKCl7Zm9yKGxldCBpIG9mIHRoaXMuaW5pdGlhbENsYXNzZXMpdGhpcy5fdXBkYXRlU3RhdGUoaSwhMCk7bGV0IGU9dGhpcy5yYXdDbGFzcztpZihBcnJheS5pc0FycmF5KGUpfHxlIGluc3RhbmNlb2YgU2V0KWZvcihsZXQgaSBvZiBlKXRoaXMuX3VwZGF0ZVN0YXRlKGksITApO2Vsc2UgaWYobnVsbCE9ZSlmb3IobGV0IGkgb2YgT2JqZWN0LmtleXMoZSkpdGhpcy5fdXBkYXRlU3RhdGUoaSxCb29sZWFuKGVbaV0pKTt0aGlzLl9hcHBseVN0YXRlRGlmZigpfV91cGRhdGVTdGF0ZShlLGkpe2xldCByPXRoaXMuc3RhdGVNYXAuZ2V0KGUpO3ZvaWQgMCE9PXI/KHIuZW5hYmxlZCE9PWkmJihyLmNoYW5nZWQ9ITAsci5lbmFibGVkPWkpLHIudG91Y2hlZD0hMCk6dGhpcy5zdGF0ZU1hcC5zZXQoZSx7ZW5hYmxlZDppLGNoYW5nZWQ6ITAsdG91Y2hlZDohMH0pfV9hcHBseVN0YXRlRGlmZigpe2ZvcihsZXQgZSBvZiB0aGlzLnN0YXRlTWFwKXtsZXQgaT1lWzBdLHI9ZVsxXTtyLmNoYW5nZWQ/KHRoaXMuX3RvZ2dsZUNsYXNzKGksci5lbmFibGVkKSxyLmNoYW5nZWQ9ITEpOnIudG91Y2hlZHx8KHIuZW5hYmxlZCYmdGhpcy5fdG9nZ2xlQ2xhc3MoaSwhMSksdGhpcy5zdGF0ZU1hcC5kZWxldGUoaSkpLHIudG91Y2hlZD0hMX19X3RvZ2dsZUNsYXNzKGUsaSl7KGU9ZS50cmltKCkpLmxlbmd0aD4wJiZlLnNwbGl0KFhrKS5mb3JFYWNoKHI9PntpP3RoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuX25nRWwubmF0aXZlRWxlbWVudCxyKTp0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLl9uZ0VsLm5hdGl2ZUVsZW1lbnQscil9KX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhUbCksQyhTYiksQyh4ZSksQyhkYykpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJuZ0NsYXNzIiwiIl1dLGlucHV0czp7a2xhc3M6WyJjbGFzcyIsImtsYXNzIl0sbmdDbGFzczoibmdDbGFzcyJ9LHN0YW5kYWxvbmU6ITB9KSxufSkoKSxubj0oKCk9PntjbGFzcyBue3NldCBuZ0Zvck9mKGUpe3RoaXMuX25nRm9yT2Y9ZSx0aGlzLl9uZ0Zvck9mRGlydHk9ITB9c2V0IG5nRm9yVHJhY2tCeShlKXt0aGlzLl90cmFja0J5Rm49ZX1nZXQgbmdGb3JUcmFja0J5KCl7cmV0dXJuIHRoaXMuX3RyYWNrQnlGbn1jb25zdHJ1Y3RvcihlLGkscil7dGhpcy5fdmlld0NvbnRhaW5lcj1lLHRoaXMuX3RlbXBsYXRlPWksdGhpcy5fZGlmZmVycz1yLHRoaXMuX25nRm9yT2Y9bnVsbCx0aGlzLl9uZ0Zvck9mRGlydHk9ITAsdGhpcy5fZGlmZmVyPW51bGx9c2V0IG5nRm9yVGVtcGxhdGUoZSl7ZSYmKHRoaXMuX3RlbXBsYXRlPWUpfW5nRG9DaGVjaygpe2lmKHRoaXMuX25nRm9yT2ZEaXJ0eSl7dGhpcy5fbmdGb3JPZkRpcnR5PSExO2xldCBlPXRoaXMuX25nRm9yT2Y7IXRoaXMuX2RpZmZlciYmZSYmKHRoaXMuX2RpZmZlcj10aGlzLl9kaWZmZXJzLmZpbmQoZSkuY3JlYXRlKHRoaXMubmdGb3JUcmFja0J5KSl9aWYodGhpcy5fZGlmZmVyKXtsZXQgZT10aGlzLl9kaWZmZXIuZGlmZih0aGlzLl9uZ0Zvck9mKTtlJiZ0aGlzLl9hcHBseUNoYW5nZXMoZSl9fV9hcHBseUNoYW5nZXMoZSl7bGV0IGk9dGhpcy5fdmlld0NvbnRhaW5lcjtlLmZvckVhY2hPcGVyYXRpb24oKHIsbyxhKT0+e2lmKG51bGw9PXIucHJldmlvdXNJbmRleClpLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90ZW1wbGF0ZSxuZXcgY2xhc3N7Y29uc3RydWN0b3IodCxlLGkscil7dGhpcy4kaW1wbGljaXQ9dCx0aGlzLm5nRm9yT2Y9ZSx0aGlzLmluZGV4PWksdGhpcy5jb3VudD1yfWdldCBmaXJzdCgpe3JldHVybiAwPT09dGhpcy5pbmRleH1nZXQgbGFzdCgpe3JldHVybiB0aGlzLmluZGV4PT09dGhpcy5jb3VudC0xfWdldCBldmVuKCl7cmV0dXJuIHRoaXMuaW5kZXglMj09MH1nZXQgb2RkKCl7cmV0dXJuIXRoaXMuZXZlbn19KHIuaXRlbSx0aGlzLl9uZ0Zvck9mLC0xLC0xKSxudWxsPT09YT92b2lkIDA6YSk7ZWxzZSBpZihudWxsPT1hKWkucmVtb3ZlKG51bGw9PT1vP3ZvaWQgMDpvKTtlbHNlIGlmKG51bGwhPT1vKXtsZXQgcz1pLmdldChvKTtpLm1vdmUocyxhKSxVaihzLHIpfX0pO2ZvcihsZXQgcj0wLG89aS5sZW5ndGg7cjxvO3IrKyl7bGV0IHM9aS5nZXQocikuY29udGV4dDtzLmluZGV4PXIscy5jb3VudD1vLHMubmdGb3JPZj10aGlzLl9uZ0Zvck9mfWUuZm9yRWFjaElkZW50aXR5Q2hhbmdlKHI9PntVaihpLmdldChyLmN1cnJlbnRJbmRleCkscil9KX1zdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChlLGkpe3JldHVybiEwfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKGVpKSxDKG9pKSxDKFRsKSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsIm5nRm9yIiwiIiwibmdGb3JPZiIsIiJdXSxpbnB1dHM6e25nRm9yT2Y6Im5nRm9yT2YiLG5nRm9yVHJhY2tCeToibmdGb3JUcmFja0J5IixuZ0ZvclRlbXBsYXRlOiJuZ0ZvclRlbXBsYXRlIn0sc3RhbmRhbG9uZTohMH0pLG59KSgpO2Z1bmN0aW9uIFVqKG4sdCl7bi5jb250ZXh0LiRpbXBsaWNpdD10Lml0ZW19dmFyIE5lPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpKXt0aGlzLl92aWV3Q29udGFpbmVyPWUsdGhpcy5fY29udGV4dD1uZXcgWmssdGhpcy5fdGhlblRlbXBsYXRlUmVmPW51bGwsdGhpcy5fZWxzZVRlbXBsYXRlUmVmPW51bGwsdGhpcy5fdGhlblZpZXdSZWY9bnVsbCx0aGlzLl9lbHNlVmlld1JlZj1udWxsLHRoaXMuX3RoZW5UZW1wbGF0ZVJlZj1pfXNldCBuZ0lmKGUpe3RoaXMuX2NvbnRleHQuJGltcGxpY2l0PXRoaXMuX2NvbnRleHQubmdJZj1lLHRoaXMuX3VwZGF0ZVZpZXcoKX1zZXQgbmdJZlRoZW4oZSl7amooIm5nSWZUaGVuIixlKSx0aGlzLl90aGVuVGVtcGxhdGVSZWY9ZSx0aGlzLl90aGVuVmlld1JlZj1udWxsLHRoaXMuX3VwZGF0ZVZpZXcoKX1zZXQgbmdJZkVsc2UoZSl7amooIm5nSWZFbHNlIixlKSx0aGlzLl9lbHNlVGVtcGxhdGVSZWY9ZSx0aGlzLl9lbHNlVmlld1JlZj1udWxsLHRoaXMuX3VwZGF0ZVZpZXcoKX1fdXBkYXRlVmlldygpe3RoaXMuX2NvbnRleHQuJGltcGxpY2l0P3RoaXMuX3RoZW5WaWV3UmVmfHwodGhpcy5fdmlld0NvbnRhaW5lci5jbGVhcigpLHRoaXMuX2Vsc2VWaWV3UmVmPW51bGwsdGhpcy5fdGhlblRlbXBsYXRlUmVmJiYodGhpcy5fdGhlblZpZXdSZWY9dGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fdGhlblRlbXBsYXRlUmVmLHRoaXMuX2NvbnRleHQpKSk6dGhpcy5fZWxzZVZpZXdSZWZ8fCh0aGlzLl92aWV3Q29udGFpbmVyLmNsZWFyKCksdGhpcy5fdGhlblZpZXdSZWY9bnVsbCx0aGlzLl9lbHNlVGVtcGxhdGVSZWYmJih0aGlzLl9lbHNlVmlld1JlZj10aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl9lbHNlVGVtcGxhdGVSZWYsdGhpcy5fY29udGV4dCkpKX1zdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChlLGkpe3JldHVybiEwfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKGVpKSxDKG9pKSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsIm5nSWYiLCIiXV0saW5wdXRzOntuZ0lmOiJuZ0lmIixuZ0lmVGhlbjoibmdJZlRoZW4iLG5nSWZFbHNlOiJuZ0lmRWxzZSJ9LHN0YW5kYWxvbmU6ITB9KSxufSkoKSxaaz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuJGltcGxpY2l0PW51bGwsdGhpcy5uZ0lmPW51bGx9fTtmdW5jdGlvbiBqaihuLHQpe2lmKHQmJiF0LmNyZWF0ZUVtYmVkZGVkVmlldyl0aHJvdyBuZXcgRXJyb3IoYCR7bn0gbXVzdCBiZSBhIFRlbXBsYXRlUmVmLCBidXQgcmVjZWl2ZWQgJyR7cG8odCl9Jy5gKX12YXIgbXc9Y2xhc3N7Y29uc3RydWN0b3IodCxlKXt0aGlzLl92aWV3Q29udGFpbmVyUmVmPXQsdGhpcy5fdGVtcGxhdGVSZWY9ZSx0aGlzLl9jcmVhdGVkPSExfWNyZWF0ZSgpe3RoaXMuX2NyZWF0ZWQ9ITAsdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fdGVtcGxhdGVSZWYpfWRlc3Ryb3koKXt0aGlzLl9jcmVhdGVkPSExLHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY2xlYXIoKX1lbmZvcmNlU3RhdGUodCl7dCYmIXRoaXMuX2NyZWF0ZWQ/dGhpcy5jcmVhdGUoKTohdCYmdGhpcy5fY3JlYXRlZCYmdGhpcy5kZXN0cm95KCl9fSxtcj0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy5fZGVmYXVsdFZpZXdzPVtdLHRoaXMuX2RlZmF1bHRVc2VkPSExLHRoaXMuX2Nhc2VDb3VudD0wLHRoaXMuX2xhc3RDYXNlQ2hlY2tJbmRleD0wLHRoaXMuX2xhc3RDYXNlc01hdGNoZWQ9ITF9c2V0IG5nU3dpdGNoKGUpe3RoaXMuX25nU3dpdGNoPWUsMD09PXRoaXMuX2Nhc2VDb3VudCYmdGhpcy5fdXBkYXRlRGVmYXVsdENhc2VzKCEwKX1fYWRkQ2FzZSgpe3JldHVybiB0aGlzLl9jYXNlQ291bnQrK31fYWRkRGVmYXVsdChlKXt0aGlzLl9kZWZhdWx0Vmlld3MucHVzaChlKX1fbWF0Y2hDYXNlKGUpe2xldCBpPWU9PXRoaXMuX25nU3dpdGNoO3JldHVybiB0aGlzLl9sYXN0Q2FzZXNNYXRjaGVkPXRoaXMuX2xhc3RDYXNlc01hdGNoZWR8fGksdGhpcy5fbGFzdENhc2VDaGVja0luZGV4KyssdGhpcy5fbGFzdENhc2VDaGVja0luZGV4PT09dGhpcy5fY2FzZUNvdW50JiYodGhpcy5fdXBkYXRlRGVmYXVsdENhc2VzKCF0aGlzLl9sYXN0Q2FzZXNNYXRjaGVkKSx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXg9MCx0aGlzLl9sYXN0Q2FzZXNNYXRjaGVkPSExKSxpfV91cGRhdGVEZWZhdWx0Q2FzZXMoZSl7aWYodGhpcy5fZGVmYXVsdFZpZXdzLmxlbmd0aD4wJiZlIT09dGhpcy5fZGVmYXVsdFVzZWQpe3RoaXMuX2RlZmF1bHRVc2VkPWU7Zm9yKGxldCBpIG9mIHRoaXMuX2RlZmF1bHRWaWV3cylpLmVuZm9yY2VTdGF0ZShlKX19fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJuZ1N3aXRjaCIsIiJdXSxpbnB1dHM6e25nU3dpdGNoOiJuZ1N3aXRjaCJ9LHN0YW5kYWxvbmU6ITB9KSxufSkoKSxrcj0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSxyKXt0aGlzLm5nU3dpdGNoPXIsci5fYWRkQ2FzZSgpLHRoaXMuX3ZpZXc9bmV3IG13KGUsaSl9bmdEb0NoZWNrKCl7dGhpcy5fdmlldy5lbmZvcmNlU3RhdGUodGhpcy5uZ1N3aXRjaC5fbWF0Y2hDYXNlKHRoaXMubmdTd2l0Y2hDYXNlKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoZWkpLEMob2kpLEMobXIsOSkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJuZ1N3aXRjaENhc2UiLCIiXV0saW5wdXRzOntuZ1N3aXRjaENhc2U6Im5nU3dpdGNoQ2FzZSJ9LHN0YW5kYWxvbmU6ITB9KSxufSkoKSxkdT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSxyKXtyLl9hZGREZWZhdWx0KG5ldyBtdyhlLGkpKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhlaSksQyhvaSksQyhtciw5KSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsIm5nU3dpdGNoRGVmYXVsdCIsIiJdXSxzdGFuZGFsb25lOiEwfSksbn0pKCksTWY9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscil7dGhpcy5fbmdFbD1lLHRoaXMuX2RpZmZlcnM9aSx0aGlzLl9yZW5kZXJlcj1yLHRoaXMuX25nU3R5bGU9bnVsbCx0aGlzLl9kaWZmZXI9bnVsbH1zZXQgbmdTdHlsZShlKXt0aGlzLl9uZ1N0eWxlPWUsIXRoaXMuX2RpZmZlciYmZSYmKHRoaXMuX2RpZmZlcj10aGlzLl9kaWZmZXJzLmZpbmQoZSkuY3JlYXRlKCkpfW5nRG9DaGVjaygpe2lmKHRoaXMuX2RpZmZlcil7bGV0IGU9dGhpcy5fZGlmZmVyLmRpZmYodGhpcy5fbmdTdHlsZSk7ZSYmdGhpcy5fYXBwbHlDaGFuZ2VzKGUpfX1fc2V0U3R5bGUoZSxpKXtsZXRbcixvXT1lLnNwbGl0KCIuIiksYT0tMT09PXIuaW5kZXhPZigiLSIpP3ZvaWQgMDpOcy5EYXNoQ2FzZTtudWxsIT1pP3RoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuX25nRWwubmF0aXZlRWxlbWVudCxyLG8/YCR7aX0ke299YDppLGEpOnRoaXMuX3JlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuX25nRWwubmF0aXZlRWxlbWVudCxyLGEpfV9hcHBseUNoYW5nZXMoZSl7ZS5mb3JFYWNoUmVtb3ZlZEl0ZW0oaT0+dGhpcy5fc2V0U3R5bGUoaS5rZXksbnVsbCkpLGUuZm9yRWFjaEFkZGVkSXRlbShpPT50aGlzLl9zZXRTdHlsZShpLmtleSxpLmN1cnJlbnRWYWx1ZSkpLGUuZm9yRWFjaENoYW5nZWRJdGVtKGk9PnRoaXMuX3NldFN0eWxlKGkua2V5LGkuY3VycmVudFZhbHVlKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMoU2IpLEMoZGMpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siIiwibmdTdHlsZSIsIiJdXSxpbnB1dHM6e25nU3R5bGU6Im5nU3R5bGUifSxzdGFuZGFsb25lOiEwfSksbn0pKCksZW89KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLl92aWV3Q29udGFpbmVyUmVmPWUsdGhpcy5fdmlld1JlZj1udWxsLHRoaXMubmdUZW1wbGF0ZU91dGxldENvbnRleHQ9bnVsbCx0aGlzLm5nVGVtcGxhdGVPdXRsZXQ9bnVsbCx0aGlzLm5nVGVtcGxhdGVPdXRsZXRJbmplY3Rvcj1udWxsfW5nT25DaGFuZ2VzKGUpe2lmKGUubmdUZW1wbGF0ZU91dGxldHx8ZS5uZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3Ipe2xldCBpPXRoaXMuX3ZpZXdDb250YWluZXJSZWY7aWYodGhpcy5fdmlld1JlZiYmaS5yZW1vdmUoaS5pbmRleE9mKHRoaXMuX3ZpZXdSZWYpKSx0aGlzLm5nVGVtcGxhdGVPdXRsZXQpe2xldHtuZ1RlbXBsYXRlT3V0bGV0OnIsbmdUZW1wbGF0ZU91dGxldENvbnRleHQ6byxuZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3I6YX09dGhpczt0aGlzLl92aWV3UmVmPWkuY3JlYXRlRW1iZWRkZWRWaWV3KHIsbyxhP3tpbmplY3RvcjphfTp2b2lkIDApfWVsc2UgdGhpcy5fdmlld1JlZj1udWxsfWVsc2UgdGhpcy5fdmlld1JlZiYmZS5uZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCYmdGhpcy5uZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCYmKHRoaXMuX3ZpZXdSZWYuY29udGV4dD10aGlzLm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0KX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhlaSkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJuZ1RlbXBsYXRlT3V0bGV0IiwiIl1dLGlucHV0czp7bmdUZW1wbGF0ZU91dGxldENvbnRleHQ6Im5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixuZ1RlbXBsYXRlT3V0bGV0OiJuZ1RlbXBsYXRlT3V0bGV0IixuZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3I6Im5nVGVtcGxhdGVPdXRsZXRJbmplY3RvciJ9LHN0YW5kYWxvbmU6ITAsZmVhdHVyZXM6W3F0XX0pLG59KSgpO2Z1bmN0aW9uIGd3KG4sdCl7cmV0dXJuIG5ldyB4dCgyMTAwLCExKX12YXIgaXBlPW5ldyBjbGFzc3tjcmVhdGVTdWJzY3JpcHRpb24odCxlKXtyZXR1cm4gdC50aGVuKGUsaT0+e3Rocm93IGl9KX1kaXNwb3NlKHQpe319LHJwZT1uZXcgY2xhc3N7Y3JlYXRlU3Vic2NyaXB0aW9uKHQsZSl7cmV0dXJuIHQuc3Vic2NyaWJlKHtuZXh0OmUsZXJyb3I6aT0+e3Rocm93IGl9fSl9ZGlzcG9zZSh0KXt0LnVuc3Vic2NyaWJlKCl9fSxjdD0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuX2xhdGVzdFZhbHVlPW51bGwsdGhpcy5fc3Vic2NyaXB0aW9uPW51bGwsdGhpcy5fb2JqPW51bGwsdGhpcy5fc3RyYXRlZ3k9bnVsbCx0aGlzLl9yZWY9ZX1uZ09uRGVzdHJveSgpe3RoaXMuX3N1YnNjcmlwdGlvbiYmdGhpcy5fZGlzcG9zZSgpLHRoaXMuX3JlZj1udWxsfXRyYW5zZm9ybShlKXtyZXR1cm4gdGhpcy5fb2JqP2UhPT10aGlzLl9vYmo/KHRoaXMuX2Rpc3Bvc2UoKSx0aGlzLnRyYW5zZm9ybShlKSk6dGhpcy5fbGF0ZXN0VmFsdWU6KGUmJnRoaXMuX3N1YnNjcmliZShlKSx0aGlzLl9sYXRlc3RWYWx1ZSl9X3N1YnNjcmliZShlKXt0aGlzLl9vYmo9ZSx0aGlzLl9zdHJhdGVneT10aGlzLl9zZWxlY3RTdHJhdGVneShlKSx0aGlzLl9zdWJzY3JpcHRpb249dGhpcy5fc3RyYXRlZ3kuY3JlYXRlU3Vic2NyaXB0aW9uKGUsaT0+dGhpcy5fdXBkYXRlTGF0ZXN0VmFsdWUoZSxpKSl9X3NlbGVjdFN0cmF0ZWd5KGUpe2lmKENmKGUpKXJldHVybiBpcGU7aWYoRGsoZSkpcmV0dXJuIHJwZTt0aHJvdyBndygpfV9kaXNwb3NlKCl7dGhpcy5fc3RyYXRlZ3kuZGlzcG9zZSh0aGlzLl9zdWJzY3JpcHRpb24pLHRoaXMuX2xhdGVzdFZhbHVlPW51bGwsdGhpcy5fc3Vic2NyaXB0aW9uPW51bGwsdGhpcy5fb2JqPW51bGx9X3VwZGF0ZUxhdGVzdFZhbHVlKGUsaSl7ZT09PXRoaXMuX29iaiYmKHRoaXMuX2xhdGVzdFZhbHVlPWksdGhpcy5fcmVmLm1hcmtGb3JDaGVjaygpKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhRdCwxNikpfSxuLlx1MDI3NXBpcGU9cmYoe25hbWU6ImFzeW5jIix0eXBlOm4scHVyZTohMSxzdGFuZGFsb25lOiEwfSksbn0pKCksYXBlPW5ldyB0ZSgiREFURV9QSVBFX0RFRkFVTFRfVElNRVpPTkUiKSxzcGU9bmV3IHRlKCJEQVRFX1BJUEVfREVGQVVMVF9PUFRJT05TIiksd2Y9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscil7dGhpcy5sb2NhbGU9ZSx0aGlzLmRlZmF1bHRUaW1lem9uZT1pLHRoaXMuZGVmYXVsdE9wdGlvbnM9cn10cmFuc2Zvcm0oZSxpLHIsbyl7aWYobnVsbD09ZXx8IiI9PT1lfHxlIT1lKXJldHVybiBudWxsO3RyeXtyZXR1cm4gTHVlKGUsaT8/dGhpcy5kZWZhdWx0T3B0aW9ucz8uZGF0ZUZvcm1hdD8/Im1lZGl1bURhdGUiLG98fHRoaXMubG9jYWxlLHI/P3RoaXMuZGVmYXVsdE9wdGlvbnM/LnRpbWV6b25lPz90aGlzLmRlZmF1bHRUaW1lem9uZT8/dm9pZCAwKX1jYXRjaChhKXt0aHJvdyBndygpfX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhhZCwxNiksQyhhcGUsMjQpLEMoc3BlLDI0KSl9LG4uXHUwMjc1cGlwZT1yZih7bmFtZToiZGF0ZSIsdHlwZTpuLHB1cmU6ITAsc3RhbmRhbG9uZTohMH0pLG59KSgpLFVzPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5fbG9jYWxlPWV9dHJhbnNmb3JtKGUsaSxyKXtpZighZnVuY3Rpb24obil7cmV0dXJuIShudWxsPT1ufHwiIj09PW58fG4hPW4pfShlKSlyZXR1cm4gbnVsbDtyPXJ8fHRoaXMuX2xvY2FsZTt0cnl7bGV0IG89ZnVuY3Rpb24obil7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYhaXNOYU4oTnVtYmVyKG4pLXBhcnNlRmxvYXQobikpKXJldHVybiBOdW1iZXIobik7aWYoIm51bWJlciIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcihgJHtufSBpcyBub3QgYSBudW1iZXJgKTtyZXR1cm4gbn0oZSk7cmV0dXJuIGVPKG8scixpKX1jYXRjaChvKXt0aHJvdyBndygpfX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhhZCwxNikpfSxuLlx1MDI3NXBpcGU9cmYoe25hbWU6Im51bWJlciIsdHlwZTpuLHB1cmU6ITAsc3RhbmRhbG9uZTohMH0pLG59KSgpLEtqPSgoKT0+e2NsYXNzIG57dHJhbnNmb3JtKGUsaSxyKXtpZihudWxsPT1lKXJldHVybiBudWxsO2lmKCF0aGlzLnN1cHBvcnRzKGUpKXRocm93IGd3KCk7cmV0dXJuIGUuc2xpY2UoaSxyKX1zdXBwb3J0cyhlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGV8fEFycmF5LmlzQXJyYXkoZSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NXBpcGU9cmYoe25hbWU6InNsaWNlIix0eXBlOm4scHVyZTohMSxzdGFuZGFsb25lOiEwfSksbn0pKCksRGU9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe30pLG59KSgpLHRPPSJicm93c2VyIjtmdW5jdGlvbiBfdyhuKXtyZXR1cm4gbj09PXRPfW5ldyBNbCgiMTUuMi45Iik7dmFyIHRoPWNsYXNze307ZnVuY3Rpb24gaHBlKG4pe3JldHVybiBuLnN0YXJ0c1dpdGgoIi8iKT9uLnNsaWNlKDEpOm59dmFyIG1wZT1uPT5uLnNyYyxmcGU9bmV3IHRlKCJJbWFnZUxvYWRlciIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9Pm1wZX0pO2Z1bmN0aW9uIGJ3KG4sdCl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBmdW5jdGlvbihuKXtpZigic3RyaW5nIiE9dHlwZW9mIG58fCIiPT09bi50cmltKCkpcmV0dXJuITE7dHJ5e3JldHVybiBuZXcgVVJMKG4pLCEwfWNhdGNoe3JldHVybiExfX0oaSl8fGZ1bmN0aW9uKG4sdCl7dGhyb3cgbmV3IHh0KDI5NTksITEpfSgpLGk9ZnVuY3Rpb24obil7cmV0dXJuIG4uZW5kc1dpdGgoIi8iKT9uLnNsaWNlKDAsLTEpOm59KGkpLFt7cHJvdmlkZTpmcGUsdXNlVmFsdWU6YT0+KGZ1bmN0aW9uKG4pe3JldHVybi9eaHR0cHM/OlwvXC8vLnRlc3Qobil9KGEuc3JjKSYmZnVuY3Rpb24obix0KXt0aHJvdyBuZXcgeHQoMjk1OSwhMSl9KCksbihpLHsuLi5hLHNyYzpocGUoYS5zcmMpfSkpfV19fWJ3KGZ1bmN0aW9uKG4sdCl7bGV0IGU9ImZvcm1hdD1hdXRvIjtyZXR1cm4gdC53aWR0aCYmKGUrPWAsd2lkdGg9JHt0LndpZHRofWApLGAke259L2Nkbi1jZ2kvaW1hZ2UvJHtlfS8ke3Quc3JjfWB9KSxidyhmdW5jdGlvbihuLHQpe2xldCBlPSJmX2F1dG8scV9hdXRvIjtyZXR1cm4gdC53aWR0aCYmKGUrPWAsd18ke3Qud2lkdGh9YCksYCR7bn0vaW1hZ2UvdXBsb2FkLyR7ZX0vJHt0LnNyY31gfSksYncoZnVuY3Rpb24obix0KXtsZXQgcix7c3JjOmUsd2lkdGg6aX09dDtyZXR1cm4gcj1pP1tuLGB0cjp3LSR7aX1gLGVdOltuLGVdLHIuam9pbigiLyIpfSksYncoZnVuY3Rpb24obix0KXtsZXQgZT1uZXcgVVJMKGAke259LyR7dC5zcmN9YCk7cmV0dXJuIGUuc2VhcmNoUGFyYW1zLnNldCgiYXV0byIsImZvcm1hdCIpLHQud2lkdGgmJmUuc2VhcmNoUGFyYW1zLnNldCgidyIsdC53aWR0aC50b1N0cmluZygpKSxlLmhyZWZ9KSxuZXcgdGUoIlBSRUNPTk5FQ1RfQ0hFQ0tfQkxPQ0tMSVNUIiksbmV3IHRlKCJOR19PUFRJTUlaRURfUFJFTE9BREVEX0lNQUdFUyIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9Pm5ldyBTZXR9KTt2YXIgdncsQ3BlPXticmVha3BvaW50czpbMTYsMzIsNDgsNjQsOTYsMTI4LDI1NiwzODQsNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXX0saU89KG5ldyB0ZSgiSW1hZ2VDb25maWciLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5DcGV9KSxjbGFzcyBleHRlbmRzIHV3e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnN1cHBvcnRzRE9NRXZlbnRzPSEwfX0pLFBiPWNsYXNzIGV4dGVuZHMgaU97c3RhdGljIG1ha2VDdXJyZW50KCl7dmFyIG47bj1uZXcgUGIsWWt8fChZaz1uKX1vbkFuZENhbmNlbCh0LGUsaSl7cmV0dXJuIHQuYWRkRXZlbnRMaXN0ZW5lcihlLGksITEpLCgpPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKGUsaSwhMSl9fWRpc3BhdGNoRXZlbnQodCxlKXt0LmRpc3BhdGNoRXZlbnQoZSl9cmVtb3ZlKHQpe3QucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpfWNyZWF0ZUVsZW1lbnQodCxlKXtyZXR1cm4oZT1lfHx0aGlzLmdldERlZmF1bHREb2N1bWVudCgpKS5jcmVhdGVFbGVtZW50KHQpfWNyZWF0ZUh0bWxEb2N1bWVudCgpe3JldHVybiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoImZha2VUaXRsZSIpfWdldERlZmF1bHREb2N1bWVudCgpe3JldHVybiBkb2N1bWVudH1pc0VsZW1lbnROb2RlKHQpe3JldHVybiB0Lm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREV9aXNTaGFkb3dSb290KHQpe3JldHVybiB0IGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudH1nZXRHbG9iYWxFdmVudFRhcmdldCh0LGUpe3JldHVybiJ3aW5kb3ciPT09ZT93aW5kb3c6ImRvY3VtZW50Ij09PWU/dDoiYm9keSI9PT1lP3QuYm9keTpudWxsfWdldEJhc2VIcmVmKHQpe2xldCBlPShJYj1JYnx8ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYmFzZSIpKT9JYi5nZXRBdHRyaWJ1dGUoImhyZWYiKTpudWxsO3JldHVybiBudWxsPT1lP251bGw6ZnVuY3Rpb24obil7KHZ3PXZ3fHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIikpLnNldEF0dHJpYnV0ZSgiaHJlZiIsbik7bGV0IHQ9dncucGF0aG5hbWU7cmV0dXJuIi8iPT09dC5jaGFyQXQoMCk/dDpgLyR7dH1gfShlKX1yZXNldEJhc2VFbGVtZW50KCl7SWI9bnVsbH1nZXRVc2VyQWdlbnQoKXtyZXR1cm4gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnR9Z2V0Q29va2llKHQpe3JldHVybiBmdyhkb2N1bWVudC5jb29raWUsdCl9fSxJYj1udWxsLGlHPW5ldyB0ZSgiVFJBTlNJVElPTl9JRCIpLFRwZT1be3Byb3ZpZGU6T2ssdXNlRmFjdG9yeTpmdW5jdGlvbihuLHQsZSl7cmV0dXJuKCk9PntlLmdldChLTSkuZG9uZVByb21pc2UudGhlbigoKT0+e2xldCBpPUFsKCkscj10LnF1ZXJ5U2VsZWN0b3JBbGwoYHN0eWxlW25nLXRyYW5zaXRpb249IiR7bn0iXWApO2ZvcihsZXQgbz0wO288ci5sZW5ndGg7bysrKWkucmVtb3ZlKHJbb10pfSl9fSxkZXBzOltpRyxOdCx3aV0sbXVsdGk6ITB9XSxEcGU9KCgpPT57Y2xhc3MgbntidWlsZCgpe3JldHVybiBuZXcgWE1MSHR0cFJlcXVlc3R9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLHl3PW5ldyB0ZSgiRXZlbnRNYW5hZ2VyUGx1Z2lucyIpLHh3PSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpKXt0aGlzLl96b25lPWksdGhpcy5fZXZlbnROYW1lVG9QbHVnaW49bmV3IE1hcCxlLmZvckVhY2gocj0+e3IubWFuYWdlcj10aGlzfSksdGhpcy5fcGx1Z2lucz1lLnNsaWNlKCkucmV2ZXJzZSgpfWFkZEV2ZW50TGlzdGVuZXIoZSxpLHIpe3JldHVybiB0aGlzLl9maW5kUGx1Z2luRm9yKGkpLmFkZEV2ZW50TGlzdGVuZXIoZSxpLHIpfWFkZEdsb2JhbEV2ZW50TGlzdGVuZXIoZSxpLHIpe3JldHVybiB0aGlzLl9maW5kUGx1Z2luRm9yKGkpLmFkZEdsb2JhbEV2ZW50TGlzdGVuZXIoZSxpLHIpfWdldFpvbmUoKXtyZXR1cm4gdGhpcy5fem9uZX1fZmluZFBsdWdpbkZvcihlKXtsZXQgaT10aGlzLl9ldmVudE5hbWVUb1BsdWdpbi5nZXQoZSk7aWYoaSlyZXR1cm4gaTtsZXQgcj10aGlzLl9wbHVnaW5zO2ZvcihsZXQgbz0wO288ci5sZW5ndGg7bysrKXtsZXQgYT1yW29dO2lmKGEuc3VwcG9ydHMoZSkpcmV0dXJuIHRoaXMuX2V2ZW50TmFtZVRvUGx1Z2luLnNldChlLGEpLGF9dGhyb3cgbmV3IEVycm9yKGBObyBldmVudCBtYW5hZ2VyIHBsdWdpbiBmb3VuZCBmb3IgZXZlbnQgJHtlfWApfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKHl3KSxPKG90KSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCksQ3c9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5fZG9jPXR9YWRkR2xvYmFsRXZlbnRMaXN0ZW5lcih0LGUsaSl7bGV0IHI9QWwoKS5nZXRHbG9iYWxFdmVudFRhcmdldCh0aGlzLl9kb2MsdCk7aWYoIXIpdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBldmVudCB0YXJnZXQgJHtyfSBmb3IgZXZlbnQgJHtlfWApO3JldHVybiB0aGlzLmFkZEV2ZW50TGlzdGVuZXIocixlLGkpfX0sckc9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMudXNhZ2VDb3VudD1uZXcgTWFwfWFkZFN0eWxlcyhlKXtmb3IobGV0IGkgb2YgZSkxPT09dGhpcy5jaGFuZ2VVc2FnZUNvdW50KGksMSkmJnRoaXMub25TdHlsZUFkZGVkKGkpfXJlbW92ZVN0eWxlcyhlKXtmb3IobGV0IGkgb2YgZSkwPT09dGhpcy5jaGFuZ2VVc2FnZUNvdW50KGksLTEpJiZ0aGlzLm9uU3R5bGVSZW1vdmVkKGkpfW9uU3R5bGVSZW1vdmVkKGUpe31vblN0eWxlQWRkZWQoZSl7fWdldEFsbFN0eWxlcygpe3JldHVybiB0aGlzLnVzYWdlQ291bnQua2V5cygpfWNoYW5nZVVzYWdlQ291bnQoZSxpKXtsZXQgcj10aGlzLnVzYWdlQ291bnQsbz1yLmdldChlKT8/MDtyZXR1cm4gbys9aSxvPjA/ci5zZXQoZSxvKTpyLmRlbGV0ZShlKSxvfW5nT25EZXN0cm95KCl7Zm9yKGxldCBlIG9mIHRoaXMuZ2V0QWxsU3R5bGVzKCkpdGhpcy5vblN0eWxlUmVtb3ZlZChlKTt0aGlzLnVzYWdlQ291bnQuY2xlYXIoKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCksQWI9KCgpPT57Y2xhc3MgbiBleHRlbmRzIHJHe2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5kb2M9ZSx0aGlzLnN0eWxlUmVmPW5ldyBNYXAsdGhpcy5ob3N0Tm9kZXM9bmV3IFNldCx0aGlzLnJlc2V0SG9zdE5vZGVzKCl9b25TdHlsZUFkZGVkKGUpe2ZvcihsZXQgaSBvZiB0aGlzLmhvc3ROb2Rlcyl0aGlzLmFkZFN0eWxlVG9Ib3N0KGksZSl9b25TdHlsZVJlbW92ZWQoZSl7bGV0IGk9dGhpcy5zdHlsZVJlZjtpLmdldChlKT8uZm9yRWFjaChvPT5vLnJlbW92ZSgpKSxpLmRlbGV0ZShlKX1uZ09uRGVzdHJveSgpe3N1cGVyLm5nT25EZXN0cm95KCksdGhpcy5zdHlsZVJlZi5jbGVhcigpLHRoaXMucmVzZXRIb3N0Tm9kZXMoKX1hZGRIb3N0KGUpe3RoaXMuaG9zdE5vZGVzLmFkZChlKTtmb3IobGV0IGkgb2YgdGhpcy5nZXRBbGxTdHlsZXMoKSl0aGlzLmFkZFN0eWxlVG9Ib3N0KGUsaSl9cmVtb3ZlSG9zdChlKXt0aGlzLmhvc3ROb2Rlcy5kZWxldGUoZSl9YWRkU3R5bGVUb0hvc3QoZSxpKXtsZXQgcj10aGlzLmRvYy5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3IudGV4dENvbnRlbnQ9aSxlLmFwcGVuZENoaWxkKHIpO2xldCBvPXRoaXMuc3R5bGVSZWYuZ2V0KGkpO28/by5wdXNoKHIpOnRoaXMuc3R5bGVSZWYuc2V0KGksW3JdKX1yZXNldEhvc3ROb2Rlcygpe2xldCBlPXRoaXMuaG9zdE5vZGVzO2UuY2xlYXIoKSxlLmFkZCh0aGlzLmRvYy5oZWFkKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhOdCkpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLG5PPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIseGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8iLG1hdGg6Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aE1MLyJ9LGFPPS8lQ09NUCUvZyxhRz1uZXcgdGUoIlJlbW92ZVN0eWxlc09uQ29tcERlc3RvcnkiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT4hMX0pO2Z1bmN0aW9uIHNHKG4sdCl7cmV0dXJuIHQuZmxhdCgxMDApLm1hcChlPT5lLnJlcGxhY2UoYU8sbikpfWZ1bmN0aW9uICRqKG4pe3JldHVybiB0PT57aWYoIl9fbmdVbndyYXBfXyI9PT10KXJldHVybiBuOyExPT09bih0KSYmKHQucHJldmVudERlZmF1bHQoKSx0LnJldHVyblZhbHVlPSExKX19dmFyIFJiPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIsbyl7dGhpcy5ldmVudE1hbmFnZXI9ZSx0aGlzLnNoYXJlZFN0eWxlc0hvc3Q9aSx0aGlzLmFwcElkPXIsdGhpcy5yZW1vdmVTdHlsZXNPbkNvbXBEZXN0b3J5PW8sdGhpcy5yZW5kZXJlckJ5Q29tcElkPW5ldyBNYXAsdGhpcy5kZWZhdWx0UmVuZGVyZXI9bmV3IGtiKGUpfWNyZWF0ZVJlbmRlcmVyKGUsaSl7aWYoIWV8fCFpKXJldHVybiB0aGlzLmRlZmF1bHRSZW5kZXJlcjtsZXQgcj10aGlzLmdldE9yQ3JlYXRlUmVuZGVyZXIoZSxpKTtyZXR1cm4gciBpbnN0YW5jZW9mIE13P3IuYXBwbHlUb0hvc3QoZSk6ciBpbnN0YW5jZW9mIE9iJiZyLmFwcGx5U3R5bGVzKCkscn1nZXRPckNyZWF0ZVJlbmRlcmVyKGUsaSl7bGV0IHI9dGhpcy5yZW5kZXJlckJ5Q29tcElkLG89ci5nZXQoaS5pZCk7aWYoIW8pe2xldCBhPXRoaXMuZXZlbnRNYW5hZ2VyLHM9dGhpcy5zaGFyZWRTdHlsZXNIb3N0LGw9dGhpcy5yZW1vdmVTdHlsZXNPbkNvbXBEZXN0b3J5O3N3aXRjaChpLmVuY2Fwc3VsYXRpb24pe2Nhc2UgYXMuRW11bGF0ZWQ6bz1uZXcgTXcoYSxzLGksdGhpcy5hcHBJZCxsKTticmVhaztjYXNlIGFzLlNoYWRvd0RvbTpyZXR1cm4gbmV3IG9PKGEscyxlLGkpO2RlZmF1bHQ6bz1uZXcgT2IoYSxzLGksbCl9by5vbkRlc3Ryb3k9KCk9PnIuZGVsZXRlKGkuaWQpLHIuc2V0KGkuaWQsbyl9cmV0dXJuIG99bmdPbkRlc3Ryb3koKXt0aGlzLnJlbmRlcmVyQnlDb21wSWQuY2xlYXIoKX1iZWdpbigpe31lbmQoKXt9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oeHcpLE8oQWIpLE8oJHApLE8oYUcpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWN9KSxufSkoKSxrYj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmV2ZW50TWFuYWdlcj10LHRoaXMuZGF0YT1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuZGVzdHJveU5vZGU9bnVsbH1kZXN0cm95KCl7fWNyZWF0ZUVsZW1lbnQodCxlKXtyZXR1cm4gZT9kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobk9bZV18fGUsdCk6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0KX1jcmVhdGVDb21tZW50KHQpe3JldHVybiBkb2N1bWVudC5jcmVhdGVDb21tZW50KHQpfWNyZWF0ZVRleHQodCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQpfWFwcGVuZENoaWxkKHQsZSl7KHRHKHQpP3QuY29udGVudDp0KS5hcHBlbmRDaGlsZChlKX1pbnNlcnRCZWZvcmUodCxlLGkpe3QmJih0Ryh0KT90LmNvbnRlbnQ6dCkuaW5zZXJ0QmVmb3JlKGUsaSl9cmVtb3ZlQ2hpbGQodCxlKXt0JiZ0LnJlbW92ZUNoaWxkKGUpfXNlbGVjdFJvb3RFbGVtZW50KHQsZSl7bGV0IGk9InN0cmluZyI9PXR5cGVvZiB0P2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCk6dDtpZighaSl0aHJvdyBuZXcgRXJyb3IoYFRoZSBzZWxlY3RvciAiJHt0fSIgZGlkIG5vdCBtYXRjaCBhbnkgZWxlbWVudHNgKTtyZXR1cm4gZXx8KGkudGV4dENvbnRlbnQ9IiIpLGl9cGFyZW50Tm9kZSh0KXtyZXR1cm4gdC5wYXJlbnROb2RlfW5leHRTaWJsaW5nKHQpe3JldHVybiB0Lm5leHRTaWJsaW5nfXNldEF0dHJpYnV0ZSh0LGUsaSxyKXtpZihyKXtlPXIrIjoiK2U7bGV0IG89bk9bcl07bz90LnNldEF0dHJpYnV0ZU5TKG8sZSxpKTp0LnNldEF0dHJpYnV0ZShlLGkpfWVsc2UgdC5zZXRBdHRyaWJ1dGUoZSxpKX1yZW1vdmVBdHRyaWJ1dGUodCxlLGkpe2lmKGkpe2xldCByPW5PW2ldO3I/dC5yZW1vdmVBdHRyaWJ1dGVOUyhyLGUpOnQucmVtb3ZlQXR0cmlidXRlKGAke2l9OiR7ZX1gKX1lbHNlIHQucmVtb3ZlQXR0cmlidXRlKGUpfWFkZENsYXNzKHQsZSl7dC5jbGFzc0xpc3QuYWRkKGUpfXJlbW92ZUNsYXNzKHQsZSl7dC5jbGFzc0xpc3QucmVtb3ZlKGUpfXNldFN0eWxlKHQsZSxpLHIpe3ImKE5zLkRhc2hDYXNlfE5zLkltcG9ydGFudCk/dC5zdHlsZS5zZXRQcm9wZXJ0eShlLGksciZOcy5JbXBvcnRhbnQ/ImltcG9ydGFudCI6IiIpOnQuc3R5bGVbZV09aX1yZW1vdmVTdHlsZSh0LGUsaSl7aSZOcy5EYXNoQ2FzZT90LnN0eWxlLnJlbW92ZVByb3BlcnR5KGUpOnQuc3R5bGVbZV09IiJ9c2V0UHJvcGVydHkodCxlLGkpe3RbZV09aX1zZXRWYWx1ZSh0LGUpe3Qubm9kZVZhbHVlPWV9bGlzdGVuKHQsZSxpKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/dGhpcy5ldmVudE1hbmFnZXIuYWRkR2xvYmFsRXZlbnRMaXN0ZW5lcih0LGUsJGooaSkpOnRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodCxlLCRqKGkpKX19O2Z1bmN0aW9uIHRHKG4pe3JldHVybiJURU1QTEFURSI9PT1uLnRhZ05hbWUmJnZvaWQgMCE9PW4uY29udGVudH0iQCIuY2hhckNvZGVBdCgwKTt2YXIgb089Y2xhc3MgZXh0ZW5kcyBrYntjb25zdHJ1Y3Rvcih0LGUsaSxyKXtzdXBlcih0KSx0aGlzLnNoYXJlZFN0eWxlc0hvc3Q9ZSx0aGlzLmhvc3RFbD1pLHRoaXMuc2hhZG93Um9vdD1pLmF0dGFjaFNoYWRvdyh7bW9kZToib3BlbiJ9KSx0aGlzLnNoYXJlZFN0eWxlc0hvc3QuYWRkSG9zdCh0aGlzLnNoYWRvd1Jvb3QpO2xldCBvPXNHKHIuaWQsci5zdHlsZXMpO2ZvcihsZXQgYSBvZiBvKXtsZXQgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3MudGV4dENvbnRlbnQ9YSx0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQocyl9fW5vZGVPclNoYWRvd1Jvb3QodCl7cmV0dXJuIHQ9PT10aGlzLmhvc3RFbD90aGlzLnNoYWRvd1Jvb3Q6dH1hcHBlbmRDaGlsZCh0LGUpe3JldHVybiBzdXBlci5hcHBlbmRDaGlsZCh0aGlzLm5vZGVPclNoYWRvd1Jvb3QodCksZSl9aW5zZXJ0QmVmb3JlKHQsZSxpKXtyZXR1cm4gc3VwZXIuaW5zZXJ0QmVmb3JlKHRoaXMubm9kZU9yU2hhZG93Um9vdCh0KSxlLGkpfXJlbW92ZUNoaWxkKHQsZSl7cmV0dXJuIHN1cGVyLnJlbW92ZUNoaWxkKHRoaXMubm9kZU9yU2hhZG93Um9vdCh0KSxlKX1wYXJlbnROb2RlKHQpe3JldHVybiB0aGlzLm5vZGVPclNoYWRvd1Jvb3Qoc3VwZXIucGFyZW50Tm9kZSh0aGlzLm5vZGVPclNoYWRvd1Jvb3QodCkpKX1kZXN0cm95KCl7dGhpcy5zaGFyZWRTdHlsZXNIb3N0LnJlbW92ZUhvc3QodGhpcy5zaGFkb3dSb290KX19LE9iPWNsYXNzIGV4dGVuZHMga2J7Y29uc3RydWN0b3IodCxlLGkscixvPWkuaWQpe3N1cGVyKHQpLHRoaXMuc2hhcmVkU3R5bGVzSG9zdD1lLHRoaXMucmVtb3ZlU3R5bGVzT25Db21wRGVzdG9yeT1yLHRoaXMucmVuZGVyZXJVc2FnZUNvdW50PTAsdGhpcy5zdHlsZXM9c0cobyxpLnN0eWxlcyl9YXBwbHlTdHlsZXMoKXt0aGlzLnNoYXJlZFN0eWxlc0hvc3QuYWRkU3R5bGVzKHRoaXMuc3R5bGVzKSx0aGlzLnJlbmRlcmVyVXNhZ2VDb3VudCsrfWRlc3Ryb3koKXshdGhpcy5yZW1vdmVTdHlsZXNPbkNvbXBEZXN0b3J5fHwodGhpcy5zaGFyZWRTdHlsZXNIb3N0LnJlbW92ZVN0eWxlcyh0aGlzLnN0eWxlcyksdGhpcy5yZW5kZXJlclVzYWdlQ291bnQtLSwwPT09dGhpcy5yZW5kZXJlclVzYWdlQ291bnQmJnRoaXMub25EZXN0cm95Py4oKSl9fSxNdz1jbGFzcyBleHRlbmRzIE9ie2NvbnN0cnVjdG9yKHQsZSxpLHIsbyl7bGV0IGE9cisiLSIraS5pZDtzdXBlcih0LGUsaSxvLGEpLHRoaXMuY29udGVudEF0dHI9Il9uZ2NvbnRlbnQtJUNPTVAlIi5yZXBsYWNlKGFPLGEpLHRoaXMuaG9zdEF0dHI9ZnVuY3Rpb24obil7cmV0dXJuIl9uZ2hvc3QtJUNPTVAlIi5yZXBsYWNlKGFPLG4pfShhKX1hcHBseVRvSG9zdCh0KXt0aGlzLmFwcGx5U3R5bGVzKCksdGhpcy5zZXRBdHRyaWJ1dGUodCx0aGlzLmhvc3RBdHRyLCIiKX1jcmVhdGVFbGVtZW50KHQsZSl7bGV0IGk9c3VwZXIuY3JlYXRlRWxlbWVudCh0LGUpO3JldHVybiBzdXBlci5zZXRBdHRyaWJ1dGUoaSx0aGlzLmNvbnRlbnRBdHRyLCIiKSxpfX0sRnBlPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBDd3tjb25zdHJ1Y3RvcihlKXtzdXBlcihlKX1zdXBwb3J0cyhlKXtyZXR1cm4hMH1hZGRFdmVudExpc3RlbmVyKGUsaSxyKXtyZXR1cm4gZS5hZGRFdmVudExpc3RlbmVyKGksciwhMSksKCk9PnRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLGkscil9cmVtb3ZlRXZlbnRMaXN0ZW5lcihlLGkscil7cmV0dXJuIGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihpLHIpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKE50KSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCksbkc9WyJhbHQiLCJjb250cm9sIiwibWV0YSIsInNoaWZ0Il0sTnBlPXsiXGIiOiJCYWNrc3BhY2UiLCJcdCI6IlRhYiIsIlx4N2YiOiJEZWxldGUiLCJceDFiIjoiRXNjYXBlIixEZWw6IkRlbGV0ZSIsRXNjOiJFc2NhcGUiLExlZnQ6IkFycm93TGVmdCIsUmlnaHQ6IkFycm93UmlnaHQiLFVwOiJBcnJvd1VwIixEb3duOiJBcnJvd0Rvd24iLE1lbnU6IkNvbnRleHRNZW51IixTY3JvbGw6IlNjcm9sbExvY2siLFdpbjoiT1MifSxMcGU9e2FsdDpuPT5uLmFsdEtleSxjb250cm9sOm49Pm4uY3RybEtleSxtZXRhOm49Pm4ubWV0YUtleSxzaGlmdDpuPT5uLnNoaWZ0S2V5fSxCcGU9KCgpPT57Y2xhc3MgbiBleHRlbmRzIEN3e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpfXN1cHBvcnRzKGUpe3JldHVybiBudWxsIT1uLnBhcnNlRXZlbnROYW1lKGUpfWFkZEV2ZW50TGlzdGVuZXIoZSxpLHIpe2xldCBvPW4ucGFyc2VFdmVudE5hbWUoaSksYT1uLmV2ZW50Q2FsbGJhY2soby5mdWxsS2V5LHIsdGhpcy5tYW5hZ2VyLmdldFpvbmUoKSk7cmV0dXJuIHRoaXMubWFuYWdlci5nZXRab25lKCkucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PkFsKCkub25BbmRDYW5jZWwoZSxvLmRvbUV2ZW50TmFtZSxhKSl9c3RhdGljIHBhcnNlRXZlbnROYW1lKGUpe2xldCBpPWUudG9Mb3dlckNhc2UoKS5zcGxpdCgiLiIpLHI9aS5zaGlmdCgpO2lmKDA9PT1pLmxlbmd0aHx8ImtleWRvd24iIT09ciYmImtleXVwIiE9PXIpcmV0dXJuIG51bGw7bGV0IG89bi5fbm9ybWFsaXplS2V5KGkucG9wKCkpLGE9IiIscz1pLmluZGV4T2YoImNvZGUiKTtpZihzPi0xJiYoaS5zcGxpY2UocywxKSxhPSJjb2RlLiIpLG5HLmZvckVhY2goYz0+e2xldCBkPWkuaW5kZXhPZihjKTtkPi0xJiYoaS5zcGxpY2UoZCwxKSxhKz1jKyIuIil9KSxhKz1vLDAhPWkubGVuZ3RofHwwPT09by5sZW5ndGgpcmV0dXJuIG51bGw7bGV0IGw9e307cmV0dXJuIGwuZG9tRXZlbnROYW1lPXIsbC5mdWxsS2V5PWEsbH1zdGF0aWMgbWF0Y2hFdmVudEZ1bGxLZXlDb2RlKGUsaSl7bGV0IHI9TnBlW2Uua2V5XXx8ZS5rZXksbz0iIjtyZXR1cm4gaS5pbmRleE9mKCJjb2RlLiIpPi0xJiYocj1lLmNvZGUsbz0iY29kZS4iKSwhKG51bGw9PXJ8fCFyKSYmKHI9ci50b0xvd2VyQ2FzZSgpLCIgIj09PXI/cj0ic3BhY2UiOiIuIj09PXImJihyPSJkb3QiKSxuRy5mb3JFYWNoKGE9PnthIT09ciYmKDAsTHBlW2FdKShlKSYmKG8rPWErIi4iKX0pLG8rPXIsbz09PWkpfXN0YXRpYyBldmVudENhbGxiYWNrKGUsaSxyKXtyZXR1cm4gbz0+e24ubWF0Y2hFdmVudEZ1bGxLZXlDb2RlKG8sZSkmJnIucnVuR3VhcmRlZCgoKT0+aShvKSl9fXN0YXRpYyBfbm9ybWFsaXplS2V5KGUpe3JldHVybiJlc2MiPT09ZT8iZXNjYXBlIjplfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKE50KSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCksVXBlPVt7cHJvdmlkZTpmYyx1c2VWYWx1ZTp0T30se3Byb3ZpZGU6RmssdXNlVmFsdWU6ZnVuY3Rpb24oKXtQYi5tYWtlQ3VycmVudCgpfSxtdWx0aTohMH0se3Byb3ZpZGU6TnQsdXNlRmFjdG9yeTpmdW5jdGlvbigpe3JldHVybiBuPWRvY3VtZW50LFlSPW4sZG9jdW1lbnQ7dmFyIG59LGRlcHM6W119XSxsTz1WayhSaiwiYnJvd3NlciIsVXBlKSxsRz1uZXcgdGUoIiIpLGpwZT1be3Byb3ZpZGU6TWIsdXNlQ2xhc3M6Y2xhc3N7YWRkVG9XaW5kb3codCl7enIuZ2V0QW5ndWxhclRlc3RhYmlsaXR5PShpLHI9ITApPT57bGV0IG89dC5maW5kVGVzdGFiaWxpdHlJblRyZWUoaSxyKTtpZihudWxsPT1vKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgdGVzdGFiaWxpdHkgZm9yIGVsZW1lbnQuIik7cmV0dXJuIG99LHpyLmdldEFsbEFuZ3VsYXJUZXN0YWJpbGl0aWVzPSgpPT50LmdldEFsbFRlc3RhYmlsaXRpZXMoKSx6ci5nZXRBbGxBbmd1bGFyUm9vdEVsZW1lbnRzPSgpPT50LmdldEFsbFJvb3RFbGVtZW50cygpLHpyLmZyYW1ld29ya1N0YWJpbGl6ZXJzfHwoenIuZnJhbWV3b3JrU3RhYmlsaXplcnM9W10pLHpyLmZyYW1ld29ya1N0YWJpbGl6ZXJzLnB1c2goaT0+e2xldCByPXpyLmdldEFsbEFuZ3VsYXJUZXN0YWJpbGl0aWVzKCksbz1yLmxlbmd0aCxhPSExLHM9ZnVuY3Rpb24obCl7YT1hfHxsLG8tLSwwPT1vJiZpKGEpfTtyLmZvckVhY2goZnVuY3Rpb24obCl7bC53aGVuU3RhYmxlKHMpfSl9KX1maW5kVGVzdGFiaWxpdHlJblRyZWUodCxlLGkpe3JldHVybiBudWxsPT1lP251bGw6dC5nZXRUZXN0YWJpbGl0eShlKT8/KGk/QWwoKS5pc1NoYWRvd1Jvb3QoZSk/dGhpcy5maW5kVGVzdGFiaWxpdHlJblRyZWUodCxlLmhvc3QsITApOnRoaXMuZmluZFRlc3RhYmlsaXR5SW5UcmVlKHQsZS5wYXJlbnRFbGVtZW50LCEwKTpudWxsKX19LGRlcHM6W119LHtwcm92aWRlOkxrLHVzZUNsYXNzOkpNLGRlcHM6W290LCRNLE1iXX0se3Byb3ZpZGU6Sk0sdXNlQ2xhc3M6Sk0sZGVwczpbb3QsJE0sTWJdfV0sR3BlPVt7cHJvdmlkZTpMTSx1c2VWYWx1ZToicm9vdCJ9LHtwcm92aWRlOmxhLHVzZUZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGxhfSxkZXBzOltdfSx7cHJvdmlkZTp5dyx1c2VDbGFzczpGcGUsbXVsdGk6ITAsZGVwczpbTnQsb3QsZmNdfSx7cHJvdmlkZTp5dyx1c2VDbGFzczpCcGUsbXVsdGk6ITAsZGVwczpbTnRdfSx7cHJvdmlkZTpSYix1c2VDbGFzczpSYixkZXBzOlt4dyxBYiwkcCxhR119LHtwcm92aWRlOmNjLHVzZUV4aXN0aW5nOlJifSx7cHJvdmlkZTpyRyx1c2VFeGlzdGluZzpBYn0se3Byb3ZpZGU6QWIsdXNlQ2xhc3M6QWIsZGVwczpbTnRdfSx7cHJvdmlkZTp4dyx1c2VDbGFzczp4dyxkZXBzOlt5dyxvdF19LHtwcm92aWRlOnRoLHVzZUNsYXNzOkRwZSxkZXBzOltdfSxbXV0sd3c9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt9c3RhdGljIHdpdGhTZXJ2ZXJUcmFuc2l0aW9uKGUpe3JldHVybntuZ01vZHVsZTpuLHByb3ZpZGVyczpbe3Byb3ZpZGU6JHAsdXNlVmFsdWU6ZS5hcHBJZH0se3Byb3ZpZGU6aUcsdXNlRXhpc3Rpbmc6JHB9LFRwZV19fX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKGxHLDEyKSl9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe3Byb3ZpZGVyczpbLi4uR3BlLC4uLmpwZV0saW1wb3J0czpbRGUsUGpdfSksbn0pKCksbmg9KG5ldyB0ZSgiSGFtbWVyR2VzdHVyZUNvbmZpZyIpLG5ldyB0ZSgiSGFtbWVyTG9hZGVyIiksKCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5OmZ1bmN0aW9uKGUpe2xldCBpPW51bGw7cmV0dXJuIGk9ZT9uZXcoZXx8bik6TyhjRyksaX0scHJvdmlkZWRJbjoicm9vdCJ9KSxufSkoKSksY0c9KCgpPT57Y2xhc3MgbiBleHRlbmRzIG5oe2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5fZG9jPWV9c2FuaXRpemUoZSxpKXtpZihudWxsPT1pKXJldHVybiBudWxsO3N3aXRjaChlKXtjYXNlIFVyLk5PTkU6cmV0dXJuIGk7Y2FzZSBVci5IVE1MOnJldHVybiB3bChpLCJIVE1MIik/T2EoaSk6aGsodGhpcy5fZG9jLFN0cmluZyhpKSkudG9TdHJpbmcoKTtjYXNlIFVyLlNUWUxFOnJldHVybiB3bChpLCJTdHlsZSIpP09hKGkpOmk7Y2FzZSBVci5TQ1JJUFQ6aWYod2woaSwiU2NyaXB0IikpcmV0dXJuIE9hKGkpO3Rocm93IG5ldyBFcnJvcigidW5zYWZlIHZhbHVlIHVzZWQgaW4gYSBzY3JpcHQgY29udGV4dCIpO2Nhc2UgVXIuVVJMOnJldHVybiB3bChpLCJVUkwiKT9PYShpKTpwYihTdHJpbmcoaSkpO2Nhc2UgVXIuUkVTT1VSQ0VfVVJMOmlmKHdsKGksIlJlc291cmNlVVJMIikpcmV0dXJuIE9hKGkpO3Rocm93IG5ldyBFcnJvcihgdW5zYWZlIHZhbHVlIHVzZWQgaW4gYSByZXNvdXJjZSBVUkwgY29udGV4dCAoc2VlICR7b2J9KWApO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIFNlY3VyaXR5Q29udGV4dCAke2V9IChzZWUgJHtvYn0pYCl9fWJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gbmV3IFFSKG4pfShlKX1ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBuZXcgWlIobil9KGUpfWJ5cGFzc1NlY3VyaXR5VHJ1c3RTY3JpcHQoZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBuZXcgS1Iobil9KGUpfWJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBuZXcgSlIobil9KGUpfWJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG5ldyAkUihuKX0oZSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oTnQpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6ZnVuY3Rpb24oZSl7bGV0IGk9bnVsbDtyZXR1cm4gaT1lP25ldyBlOmZ1bmN0aW9uKG4pe3JldHVybiBuZXcgY0cobi5nZXQoTnQpKX0oTyh3aSkpLGl9LHByb3ZpZGVkSW46InJvb3QifSksbn0pKCksRmI9KG5ldyBNbCgiMTUuMi45IiksJFYodUcoKSwxKSxjbGFzc3t9KSxTdz1jbGFzc3t9LF9jPSIqIjtmdW5jdGlvbiBmcihuLHQpe3JldHVybnt0eXBlOjcsbmFtZTpuLGRlZmluaXRpb25zOnQsb3B0aW9uczp7fX19ZnVuY3Rpb24gTWkobix0PW51bGwpe3JldHVybnt0eXBlOjQsc3R5bGVzOnQsdGltaW5nczpufX1mdW5jdGlvbiBMYihuLHQ9bnVsbCl7cmV0dXJue3R5cGU6MyxzdGVwczpuLG9wdGlvbnM6dH19ZnVuY3Rpb24gRXcobix0PW51bGwpe3JldHVybnt0eXBlOjIsc3RlcHM6bixvcHRpb25zOnR9fWZ1bmN0aW9uIHJuKG4pe3JldHVybnt0eXBlOjYsc3R5bGVzOm4sb2Zmc2V0Om51bGx9fWZ1bmN0aW9uIFNpKG4sdCxlKXtyZXR1cm57dHlwZTowLG5hbWU6bixzdHlsZXM6dCxvcHRpb25zOmV9fWZ1bmN0aW9uIEJiKG4pe3JldHVybnt0eXBlOjUsc3RlcHM6bn19ZnVuY3Rpb24gYmkobix0LGU9bnVsbCl7cmV0dXJue3R5cGU6MSxleHByOm4sYW5pbWF0aW9uOnQsb3B0aW9uczplfX1mdW5jdGlvbiBpaChuPW51bGwpe3JldHVybnt0eXBlOjksb3B0aW9uczpufX1mdW5jdGlvbiByaChuLHQsZT1udWxsKXtyZXR1cm57dHlwZToxMSxzZWxlY3RvcjpuLGFuaW1hdGlvbjp0LG9wdGlvbnM6ZX19ZnVuY3Rpb24gcEcobil7UHJvbWlzZS5yZXNvbHZlKCkudGhlbihuKX12YXIgcHU9Y2xhc3N7Y29uc3RydWN0b3IodD0wLGU9MCl7dGhpcy5fb25Eb25lRm5zPVtdLHRoaXMuX29uU3RhcnRGbnM9W10sdGhpcy5fb25EZXN0cm95Rm5zPVtdLHRoaXMuX29yaWdpbmFsT25Eb25lRm5zPVtdLHRoaXMuX29yaWdpbmFsT25TdGFydEZucz1bXSx0aGlzLl9zdGFydGVkPSExLHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9maW5pc2hlZD0hMSx0aGlzLl9wb3NpdGlvbj0wLHRoaXMucGFyZW50UGxheWVyPW51bGwsdGhpcy50b3RhbFRpbWU9dCtlfV9vbkZpbmlzaCgpe3RoaXMuX2ZpbmlzaGVkfHwodGhpcy5fZmluaXNoZWQ9ITAsdGhpcy5fb25Eb25lRm5zLmZvckVhY2godD0+dCgpKSx0aGlzLl9vbkRvbmVGbnM9W10pfW9uU3RhcnQodCl7dGhpcy5fb3JpZ2luYWxPblN0YXJ0Rm5zLnB1c2godCksdGhpcy5fb25TdGFydEZucy5wdXNoKHQpfW9uRG9uZSh0KXt0aGlzLl9vcmlnaW5hbE9uRG9uZUZucy5wdXNoKHQpLHRoaXMuX29uRG9uZUZucy5wdXNoKHQpfW9uRGVzdHJveSh0KXt0aGlzLl9vbkRlc3Ryb3lGbnMucHVzaCh0KX1oYXNTdGFydGVkKCl7cmV0dXJuIHRoaXMuX3N0YXJ0ZWR9aW5pdCgpe31wbGF5KCl7dGhpcy5oYXNTdGFydGVkKCl8fCh0aGlzLl9vblN0YXJ0KCksdGhpcy50cmlnZ2VyTWljcm90YXNrKCkpLHRoaXMuX3N0YXJ0ZWQ9ITB9dHJpZ2dlck1pY3JvdGFzaygpe3BHKCgpPT50aGlzLl9vbkZpbmlzaCgpKX1fb25TdGFydCgpe3RoaXMuX29uU3RhcnRGbnMuZm9yRWFjaCh0PT50KCkpLHRoaXMuX29uU3RhcnRGbnM9W119cGF1c2UoKXt9cmVzdGFydCgpe31maW5pc2goKXt0aGlzLl9vbkZpbmlzaCgpfWRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWR8fCh0aGlzLl9kZXN0cm95ZWQ9ITAsdGhpcy5oYXNTdGFydGVkKCl8fHRoaXMuX29uU3RhcnQoKSx0aGlzLmZpbmlzaCgpLHRoaXMuX29uRGVzdHJveUZucy5mb3JFYWNoKHQ9PnQoKSksdGhpcy5fb25EZXN0cm95Rm5zPVtdKX1yZXNldCgpe3RoaXMuX3N0YXJ0ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fb25TdGFydEZucz10aGlzLl9vcmlnaW5hbE9uU3RhcnRGbnMsdGhpcy5fb25Eb25lRm5zPXRoaXMuX29yaWdpbmFsT25Eb25lRm5zfXNldFBvc2l0aW9uKHQpe3RoaXMuX3Bvc2l0aW9uPXRoaXMudG90YWxUaW1lP3QqdGhpcy50b3RhbFRpbWU6MX1nZXRQb3NpdGlvbigpe3JldHVybiB0aGlzLnRvdGFsVGltZT90aGlzLl9wb3NpdGlvbi90aGlzLnRvdGFsVGltZToxfXRyaWdnZXJDYWxsYmFjayh0KXtsZXQgZT0ic3RhcnQiPT10P3RoaXMuX29uU3RhcnRGbnM6dGhpcy5fb25Eb25lRm5zO2UuZm9yRWFjaChpPT5pKCkpLGUubGVuZ3RoPTB9fSxOYj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9vbkRvbmVGbnM9W10sdGhpcy5fb25TdGFydEZucz1bXSx0aGlzLl9maW5pc2hlZD0hMSx0aGlzLl9zdGFydGVkPSExLHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9vbkRlc3Ryb3lGbnM9W10sdGhpcy5wYXJlbnRQbGF5ZXI9bnVsbCx0aGlzLnRvdGFsVGltZT0wLHRoaXMucGxheWVycz10O2xldCBlPTAsaT0wLHI9MCxvPXRoaXMucGxheWVycy5sZW5ndGg7MD09bz9wRygoKT0+dGhpcy5fb25GaW5pc2goKSk6dGhpcy5wbGF5ZXJzLmZvckVhY2goYT0+e2Eub25Eb25lKCgpPT57KytlPT1vJiZ0aGlzLl9vbkZpbmlzaCgpfSksYS5vbkRlc3Ryb3koKCk9PnsrK2k9PW8mJnRoaXMuX29uRGVzdHJveSgpfSksYS5vblN0YXJ0KCgpPT57KytyPT1vJiZ0aGlzLl9vblN0YXJ0KCl9KX0pLHRoaXMudG90YWxUaW1lPXRoaXMucGxheWVycy5yZWR1Y2UoKGEscyk9Pk1hdGgubWF4KGEscy50b3RhbFRpbWUpLDApfV9vbkZpbmlzaCgpe3RoaXMuX2ZpbmlzaGVkfHwodGhpcy5fZmluaXNoZWQ9ITAsdGhpcy5fb25Eb25lRm5zLmZvckVhY2godD0+dCgpKSx0aGlzLl9vbkRvbmVGbnM9W10pfWluaXQoKXt0aGlzLnBsYXllcnMuZm9yRWFjaCh0PT50LmluaXQoKSl9b25TdGFydCh0KXt0aGlzLl9vblN0YXJ0Rm5zLnB1c2godCl9X29uU3RhcnQoKXt0aGlzLmhhc1N0YXJ0ZWQoKXx8KHRoaXMuX3N0YXJ0ZWQ9ITAsdGhpcy5fb25TdGFydEZucy5mb3JFYWNoKHQ9PnQoKSksdGhpcy5fb25TdGFydEZucz1bXSl9b25Eb25lKHQpe3RoaXMuX29uRG9uZUZucy5wdXNoKHQpfW9uRGVzdHJveSh0KXt0aGlzLl9vbkRlc3Ryb3lGbnMucHVzaCh0KX1oYXNTdGFydGVkKCl7cmV0dXJuIHRoaXMuX3N0YXJ0ZWR9cGxheSgpe3RoaXMucGFyZW50UGxheWVyfHx0aGlzLmluaXQoKSx0aGlzLl9vblN0YXJ0KCksdGhpcy5wbGF5ZXJzLmZvckVhY2godD0+dC5wbGF5KCkpfXBhdXNlKCl7dGhpcy5wbGF5ZXJzLmZvckVhY2godD0+dC5wYXVzZSgpKX1yZXN0YXJ0KCl7dGhpcy5wbGF5ZXJzLmZvckVhY2godD0+dC5yZXN0YXJ0KCkpfWZpbmlzaCgpe3RoaXMuX29uRmluaXNoKCksdGhpcy5wbGF5ZXJzLmZvckVhY2godD0+dC5maW5pc2goKSl9ZGVzdHJveSgpe3RoaXMuX29uRGVzdHJveSgpfV9vbkRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWR8fCh0aGlzLl9kZXN0cm95ZWQ9ITAsdGhpcy5fb25GaW5pc2goKSx0aGlzLnBsYXllcnMuZm9yRWFjaCh0PT50LmRlc3Ryb3koKSksdGhpcy5fb25EZXN0cm95Rm5zLmZvckVhY2godD0+dCgpKSx0aGlzLl9vbkRlc3Ryb3lGbnM9W10pfXJlc2V0KCl7dGhpcy5wbGF5ZXJzLmZvckVhY2godD0+dC5yZXNldCgpKSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMX1zZXRQb3NpdGlvbih0KXtsZXQgZT10KnRoaXMudG90YWxUaW1lO3RoaXMucGxheWVycy5mb3JFYWNoKGk9PntsZXQgcj1pLnRvdGFsVGltZT9NYXRoLm1pbigxLGUvaS50b3RhbFRpbWUpOjE7aS5zZXRQb3NpdGlvbihyKX0pfWdldFBvc2l0aW9uKCl7bGV0IHQ9dGhpcy5wbGF5ZXJzLnJlZHVjZSgoZSxpKT0+bnVsbD09PWV8fGkudG90YWxUaW1lPmUudG90YWxUaW1lP2k6ZSxudWxsKTtyZXR1cm4gbnVsbCE9dD90LmdldFBvc2l0aW9uKCk6MH1iZWZvcmVEZXN0cm95KCl7dGhpcy5wbGF5ZXJzLmZvckVhY2godD0+e3QuYmVmb3JlRGVzdHJveSYmdC5iZWZvcmVEZXN0cm95KCl9KX10cmlnZ2VyQ2FsbGJhY2sodCl7bGV0IGU9InN0YXJ0Ij09dD90aGlzLl9vblN0YXJ0Rm5zOnRoaXMuX29uRG9uZUZucztlLmZvckVhY2goaT0+aSgpKSxlLmxlbmd0aD0wfX0sVHc9IiEiO2Z1bmN0aW9uIGhHKG4pe3JldHVybiBuZXcgeHQoM2UzLCExKX1mdW5jdGlvbiBBTygpe3JldHVybiB0eXBlb2YgcHJvY2VzczwidSImJiJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwocHJvY2Vzcyl9ZnVuY3Rpb24gaHUobil7c3dpdGNoKG4ubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyBwdTtjYXNlIDE6cmV0dXJuIG5bMF07ZGVmYXVsdDpyZXR1cm4gbmV3IE5iKG4pfX1mdW5jdGlvbiBERyhuLHQsZSxpLHI9bmV3IE1hcCxvPW5ldyBNYXApe2xldCBhPVtdLHM9W10sbD0tMSxjPW51bGw7aWYoaS5mb3JFYWNoKGQ9PntsZXQgdT1kLmdldCgib2Zmc2V0IikscD11PT1sLGg9cCYmY3x8bmV3IE1hcDtkLmZvckVhY2goKG0sXyk9PntsZXQgTT1fLHk9bTtpZigib2Zmc2V0IiE9PV8pc3dpdGNoKE09dC5ub3JtYWxpemVQcm9wZXJ0eU5hbWUoTSxhKSx5KXtjYXNlIFR3Onk9ci5nZXQoXyk7YnJlYWs7Y2FzZSBfYzp5PW8uZ2V0KF8pO2JyZWFrO2RlZmF1bHQ6eT10Lm5vcm1hbGl6ZVN0eWxlVmFsdWUoXyxNLHksYSl9aC5zZXQoTSx5KX0pLHB8fHMucHVzaChoKSxjPWgsbD11fSksYS5sZW5ndGgpdGhyb3cgbmV3IHh0KDM1MDIsITEpO3JldHVybiBzfWZ1bmN0aW9uIFJPKG4sdCxlLGkpe3N3aXRjaCh0KXtjYXNlInN0YXJ0IjpuLm9uU3RhcnQoKCk9PmkoZSYmZE8oZSwic3RhcnQiLG4pKSk7YnJlYWs7Y2FzZSJkb25lIjpuLm9uRG9uZSgoKT0+aShlJiZkTyhlLCJkb25lIixuKSkpO2JyZWFrO2Nhc2UiZGVzdHJveSI6bi5vbkRlc3Ryb3koKCk9PmkoZSYmZE8oZSwiZGVzdHJveSIsbikpKX19ZnVuY3Rpb24gZE8obix0LGUpe2xldCBvPVBPKG4uZWxlbWVudCxuLnRyaWdnZXJOYW1lLG4uZnJvbVN0YXRlLG4udG9TdGF0ZSx0fHxuLnBoYXNlTmFtZSxlLnRvdGFsVGltZT8/bi50b3RhbFRpbWUsISFlLmRpc2FibGVkKSxhPW4uX2RhdGE7cmV0dXJuIG51bGwhPWEmJihvLl9kYXRhPWEpLG99ZnVuY3Rpb24gUE8obix0LGUsaSxyPSIiLG89MCxhKXtyZXR1cm57ZWxlbWVudDpuLHRyaWdnZXJOYW1lOnQsZnJvbVN0YXRlOmUsdG9TdGF0ZTppLHBoYXNlTmFtZTpyLHRvdGFsVGltZTpvLGRpc2FibGVkOiEhYX19ZnVuY3Rpb24gcHMobix0LGUpe2xldCBpPW4uZ2V0KHQpO3JldHVybiBpfHxuLnNldCh0LGk9ZSksaX1mdW5jdGlvbiBtRyhuKXtsZXQgdD1uLmluZGV4T2YoIjoiKTtyZXR1cm5bbi5zdWJzdHJpbmcoMSx0KSxuLnNsaWNlKHQrMSldfXZhciBnTz0obix0KT0+ITEsSUc9KG4sdCxlKT0+W10sQUc9bnVsbDtmdW5jdGlvbiBrTyhuKXtsZXQgdD1uLnBhcmVudE5vZGV8fG4uaG9zdDtyZXR1cm4gdD09PUFHP251bGw6dH0oQU8oKXx8dHlwZW9mIEVsZW1lbnQ8InUiKSYmKHR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2Ygd2luZG93LmRvY3VtZW50PCJ1Ij8oQUc9KCgpPT5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKCksZ089KG4sdCk9Pntmb3IoO3Q7KXtpZih0PT09bilyZXR1cm4hMDt0PWtPKHQpfXJldHVybiExfSk6Z089KG4sdCk9Pm4uY29udGFpbnModCksSUc9KG4sdCxlKT0+e2lmKGUpcmV0dXJuIEFycmF5LmZyb20obi5xdWVyeVNlbGVjdG9yQWxsKHQpKTtsZXQgaT1uLnF1ZXJ5U2VsZWN0b3IodCk7cmV0dXJuIGk/W2ldOltdfSk7dmFyIG9oPW51bGwsZkc9ITE7dmFyIFJHPWdPLFBHPUlHLE9PPSgoKT0+e2NsYXNzIG57dmFsaWRhdGVTdHlsZVByb3BlcnR5KGUpe3JldHVybiBmdW5jdGlvbihuKXtvaHx8KG9oPSh0eXBlb2YgZG9jdW1lbnQ8InUiP2RvY3VtZW50LmJvZHk6bnVsbCl8fHt9LGZHPSEhb2guc3R5bGUmJiJXZWJraXRBcHBlYXJhbmNlImluIG9oLnN0eWxlKTtsZXQgdD0hMDtyZXR1cm4gb2guc3R5bGUmJiFmdW5jdGlvbihuKXtyZXR1cm4iZWJraXQiPT1uLnN1YnN0cmluZygxLDYpfShuKSYmKHQ9biBpbiBvaC5zdHlsZSwhdCYmZkcmJih0PSJXZWJraXQiK24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrbi5zbGljZSgxKWluIG9oLnN0eWxlKSksdH0oZSl9bWF0Y2hlc0VsZW1lbnQoZSxpKXtyZXR1cm4hMX1jb250YWluc0VsZW1lbnQoZSxpKXtyZXR1cm4gUkcoZSxpKX1nZXRQYXJlbnRFbGVtZW50KGUpe3JldHVybiBrTyhlKX1xdWVyeShlLGkscil7cmV0dXJuIFBHKGUsaSxyKX1jb21wdXRlU3R5bGUoZSxpLHIpe3JldHVybiByfHwiIn1hbmltYXRlKGUsaSxyLG8sYSxzPVtdLGwpe3JldHVybiBuZXcgcHUocixvKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCkscWI9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uTk9PUD1uZXcgT08sbn0pKCksRGhlPTFlMyxPRz0ibmctZW50ZXIiLF9PPSJuZy1sZWF2ZSIsRHc9Im5nLXRyaWdnZXIiLFB3PSIubmctdHJpZ2dlciIsZ0c9Im5nLWFuaW1hdGluZyIsYk89Ii5uZy1hbmltYXRpbmciO2Z1bmN0aW9uIGNkKG4pe2lmKCJudW1iZXIiPT10eXBlb2YgbilyZXR1cm4gbjtsZXQgdD1uLm1hdGNoKC9eKC0/W1wuXGRdKykobT9zKS8pO3JldHVybiF0fHx0Lmxlbmd0aDwyPzA6dk8ocGFyc2VGbG9hdCh0WzFdKSx0WzJdKX1mdW5jdGlvbiB2TyhuLHQpe3JldHVybiJzIj09PXQ/bipEaGU6bn1mdW5jdGlvbiBrdyhuLHQsZSl7cmV0dXJuIG4uaGFzT3duUHJvcGVydHkoImR1cmF0aW9uIik/bjpmdW5jdGlvbihuLHQsZSl7bGV0IHIsbz0wLGE9IiI7aWYoInN0cmluZyI9PXR5cGVvZiBuKXtsZXQgcz1uLm1hdGNoKC9eKC0/W1wuXGRdKykobT9zKSg/OlxzKygtP1tcLlxkXSspKG0/cykpPyg/OlxzKyhbLWEtel0rKD86XCguKz9cKSk/KSk/JC9pKTtpZihudWxsPT09cylyZXR1cm4gdC5wdXNoKGhHKCkpLHtkdXJhdGlvbjowLGRlbGF5OjAsZWFzaW5nOiIifTtyPXZPKHBhcnNlRmxvYXQoc1sxXSksc1syXSk7bGV0IGw9c1szXTtudWxsIT1sJiYobz12TyhwYXJzZUZsb2F0KGwpLHNbNF0pKTtsZXQgYz1zWzVdO2MmJihhPWMpfWVsc2Ugcj1uO2lmKCFlKXtsZXQgcz0hMSxsPXQubGVuZ3RoO3I8MCYmKHQucHVzaChuZXcgeHQoMzEwMCwhMSkpLHM9ITApLG88MCYmKHQucHVzaChuZXcgeHQoMzEwMSwhMSkpLHM9ITApLHMmJnQuc3BsaWNlKGwsMCxoRygpKX1yZXR1cm57ZHVyYXRpb246cixkZWxheTpvLGVhc2luZzphfX0obix0LGUpfWZ1bmN0aW9uIFhiKG4sdD17fSl7cmV0dXJuIE9iamVjdC5rZXlzKG4pLmZvckVhY2goZT0+e3RbZV09bltlXX0pLHR9ZnVuY3Rpb24gRkcobil7bGV0IHQ9bmV3IE1hcDtyZXR1cm4gT2JqZWN0LmtleXMobikuZm9yRWFjaChlPT57dC5zZXQoZSxuW2VdKX0pLHR9ZnVuY3Rpb24gRWYobix0PW5ldyBNYXAsZSl7aWYoZSlmb3IobGV0W2kscl1vZiBlKXQuc2V0KGkscik7Zm9yKGxldFtpLHJdb2Ygbil0LnNldChpLHIpO3JldHVybiB0fWZ1bmN0aW9uIF9HKG4sdCxlKXtyZXR1cm4gZT90KyI6IitlKyI7IjoiIn1mdW5jdGlvbiBORyhuKXtsZXQgdD0iIjtmb3IobGV0IGU9MDtlPG4uc3R5bGUubGVuZ3RoO2UrKyl7bGV0IGk9bi5zdHlsZS5pdGVtKGUpO3QrPV9HKDAsaSxuLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoaSkpfWZvcihsZXQgZSBpbiBuLnN0eWxlKW4uc3R5bGUuaGFzT3duUHJvcGVydHkoZSkmJiFlLnN0YXJ0c1dpdGgoIl8iKSYmKHQrPV9HKDAsT2hlKGUpLG4uc3R5bGVbZV0pKTtuLnNldEF0dHJpYnV0ZSgic3R5bGUiLHQpfWZ1bmN0aW9uIGJjKG4sdCxlKXtuLnN0eWxlJiYodC5mb3JFYWNoKChpLHIpPT57bGV0IG89Rk8ocik7ZSYmIWUuaGFzKHIpJiZlLnNldChyLG4uc3R5bGVbb10pLG4uc3R5bGVbb109aX0pLEFPKCkmJk5HKG4pKX1mdW5jdGlvbiBzaChuLHQpe24uc3R5bGUmJih0LmZvckVhY2goKGUsaSk9PntsZXQgcj1GTyhpKTtuLnN0eWxlW3JdPSIifSksQU8oKSYmTkcobikpfWZ1bmN0aW9uIFZiKG4pe3JldHVybiBBcnJheS5pc0FycmF5KG4pPzE9PW4ubGVuZ3RoP25bMF06RXcobik6bn12YXIgeU89bmV3IFJlZ0V4cCgie3tcXHMqKC4rPylcXHMqfX0iLCJnIik7ZnVuY3Rpb24gTEcobil7bGV0IHQ9W107aWYoInN0cmluZyI9PXR5cGVvZiBuKXtsZXQgZTtmb3IoO2U9eU8uZXhlYyhuKTspdC5wdXNoKGVbMV0pO3lPLmxhc3RJbmRleD0wfXJldHVybiB0fWZ1bmN0aW9uIHpiKG4sdCxlKXtsZXQgaT1uLnRvU3RyaW5nKCkscj1pLnJlcGxhY2UoeU8sKG8sYSk9PntsZXQgcz10W2FdO3JldHVybiBudWxsPT1zJiYoZS5wdXNoKG5ldyB4dCgzMDAzLCExKSkscz0iIikscy50b1N0cmluZygpfSk7cmV0dXJuIHI9PWk/bjpyfWZ1bmN0aW9uIE93KG4pe2xldCB0PVtdLGU9bi5uZXh0KCk7Zm9yKDshZS5kb25lOyl0LnB1c2goZS52YWx1ZSksZT1uLm5leHQoKTtyZXR1cm4gdH12YXIga2hlPS8tKyhbYS16MC05XSkvZztmdW5jdGlvbiBGTyhuKXtyZXR1cm4gbi5yZXBsYWNlKGtoZSwoLi4udCk9PnRbMV0udG9VcHBlckNhc2UoKSl9ZnVuY3Rpb24gT2hlKG4pe3JldHVybiBuLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiB1cyhuLHQsZSl7c3dpdGNoKHQudHlwZSl7Y2FzZSA3OnJldHVybiBuLnZpc2l0VHJpZ2dlcih0LGUpO2Nhc2UgMDpyZXR1cm4gbi52aXNpdFN0YXRlKHQsZSk7Y2FzZSAxOnJldHVybiBuLnZpc2l0VHJhbnNpdGlvbih0LGUpO2Nhc2UgMjpyZXR1cm4gbi52aXNpdFNlcXVlbmNlKHQsZSk7Y2FzZSAzOnJldHVybiBuLnZpc2l0R3JvdXAodCxlKTtjYXNlIDQ6cmV0dXJuIG4udmlzaXRBbmltYXRlKHQsZSk7Y2FzZSA1OnJldHVybiBuLnZpc2l0S2V5ZnJhbWVzKHQsZSk7Y2FzZSA2OnJldHVybiBuLnZpc2l0U3R5bGUodCxlKTtjYXNlIDg6cmV0dXJuIG4udmlzaXRSZWZlcmVuY2UodCxlKTtjYXNlIDk6cmV0dXJuIG4udmlzaXRBbmltYXRlQ2hpbGQodCxlKTtjYXNlIDEwOnJldHVybiBuLnZpc2l0QW5pbWF0ZVJlZih0LGUpO2Nhc2UgMTE6cmV0dXJuIG4udmlzaXRRdWVyeSh0LGUpO2Nhc2UgMTI6cmV0dXJuIG4udmlzaXRTdGFnZ2VyKHQsZSk7ZGVmYXVsdDp0aHJvdyBuZXcgeHQoMzAwNCwhMSl9fWZ1bmN0aW9uIEJHKG4sdCl7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG4pW3RdfXZhciBGdz0iKiI7ZnVuY3Rpb24gVmhlKG4sdCl7bGV0IGU9W107cmV0dXJuInN0cmluZyI9PXR5cGVvZiBuP24uc3BsaXQoL1xzKixccyovKS5mb3JFYWNoKGk9PmZ1bmN0aW9uKG4sdCxlKXtpZigiOiI9PW5bMF0pe2xldCBsPWZ1bmN0aW9uKG4sdCl7c3dpdGNoKG4pe2Nhc2UiOmVudGVyIjpyZXR1cm4idm9pZCA9PiAqIjtjYXNlIjpsZWF2ZSI6cmV0dXJuIiogPT4gdm9pZCI7Y2FzZSI6aW5jcmVtZW50IjpyZXR1cm4oZSxpKT0+cGFyc2VGbG9hdChpKT5wYXJzZUZsb2F0KGUpO2Nhc2UiOmRlY3JlbWVudCI6cmV0dXJuKGUsaSk9PnBhcnNlRmxvYXQoaSk8cGFyc2VGbG9hdChlKTtkZWZhdWx0OnJldHVybiB0LnB1c2gobmV3IHh0KDMwMTYsITEpKSwiKiA9PiAqIn19KG4sZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGwpcmV0dXJuIHZvaWQgdC5wdXNoKGwpO249bH1sZXQgaT1uLm1hdGNoKC9eKFwqfFstXHddKylccyooPD9bPS1dPilccyooXCp8Wy1cd10rKSQvKTtpZihudWxsPT1pfHxpLmxlbmd0aDw0KXJldHVybiBlLnB1c2gobmV3IHh0KDMwMTUsITEpKSx0O2xldCByPWlbMV0sbz1pWzJdLGE9aVszXTt0LnB1c2goYkcocixhKSksIjwiPT1vWzBdJiYhKHI9PUZ3JiZhPT1GdykmJnQucHVzaChiRyhhLHIpKX0oaSxlLHQpKTplLnB1c2gobiksZX12YXIgSXc9bmV3IFNldChbInRydWUiLCIxIl0pLEF3PW5ldyBTZXQoWyJmYWxzZSIsIjAiXSk7ZnVuY3Rpb24gYkcobix0KXtsZXQgZT1Jdy5oYXMobil8fEF3LmhhcyhuKSxpPUl3Lmhhcyh0KXx8QXcuaGFzKHQpO3JldHVybihyLG8pPT57bGV0IGE9bj09Rnd8fG49PXIscz10PT1Gd3x8dD09bztyZXR1cm4hYSYmZSYmImJvb2xlYW4iPT10eXBlb2YgciYmKGE9cj9Jdy5oYXMobik6QXcuaGFzKG4pKSwhcyYmaSYmImJvb2xlYW4iPT10eXBlb2YgbyYmKHM9bz9Jdy5oYXModCk6QXcuaGFzKHQpKSxhJiZzfX12YXIgVWhlPW5ldyBSZWdFeHAoInMqOnNlbGZzKiw/IiwiZyIpO2Z1bmN0aW9uIFVHKG4sdCxlLGkpe3JldHVybiBuZXcgeE8obikuYnVpbGQodCxlLGkpfXZhciB4Tz1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9kcml2ZXI9dH1idWlsZCh0LGUsaSl7bGV0IHI9bmV3IENPKGUpO3JldHVybiB0aGlzLl9yZXNldENvbnRleHRTdHlsZVRpbWluZ1N0YXRlKHIpLHVzKHRoaXMsVmIodCkscil9X3Jlc2V0Q29udGV4dFN0eWxlVGltaW5nU3RhdGUodCl7dC5jdXJyZW50UXVlcnlTZWxlY3Rvcj0iIix0LmNvbGxlY3RlZFN0eWxlcz1uZXcgTWFwLHQuY29sbGVjdGVkU3R5bGVzLnNldCgiIixuZXcgTWFwKSx0LmN1cnJlbnRUaW1lPTB9dmlzaXRUcmlnZ2VyKHQsZSl7bGV0IGk9ZS5xdWVyeUNvdW50PTAscj1lLmRlcENvdW50PTAsbz1bXSxhPVtdO3JldHVybiJAIj09dC5uYW1lLmNoYXJBdCgwKSYmZS5lcnJvcnMucHVzaChuZXcgeHQoMzAwNiwhMSkpLHQuZGVmaW5pdGlvbnMuZm9yRWFjaChzPT57aWYodGhpcy5fcmVzZXRDb250ZXh0U3R5bGVUaW1pbmdTdGF0ZShlKSwwPT1zLnR5cGUpe2xldCBsPXMsYz1sLm5hbWU7Yy50b1N0cmluZygpLnNwbGl0KC9ccyosXHMqLykuZm9yRWFjaChkPT57bC5uYW1lPWQsby5wdXNoKHRoaXMudmlzaXRTdGF0ZShsLGUpKX0pLGwubmFtZT1jfWVsc2UgaWYoMT09cy50eXBlKXtsZXQgbD10aGlzLnZpc2l0VHJhbnNpdGlvbihzLGUpO2krPWwucXVlcnlDb3VudCxyKz1sLmRlcENvdW50LGEucHVzaChsKX1lbHNlIGUuZXJyb3JzLnB1c2gobmV3IHh0KDMwMDcsITEpKX0pLHt0eXBlOjcsbmFtZTp0Lm5hbWUsc3RhdGVzOm8sdHJhbnNpdGlvbnM6YSxxdWVyeUNvdW50OmksZGVwQ291bnQ6cixvcHRpb25zOm51bGx9fXZpc2l0U3RhdGUodCxlKXtsZXQgaT10aGlzLnZpc2l0U3R5bGUodC5zdHlsZXMsZSkscj10Lm9wdGlvbnMmJnQub3B0aW9ucy5wYXJhbXN8fG51bGw7aWYoaS5jb250YWluc0R5bmFtaWNTdHlsZXMpe2xldCBvPW5ldyBTZXQsYT1yfHx7fTtpLnN0eWxlcy5mb3JFYWNoKHM9PntzIGluc3RhbmNlb2YgTWFwJiZzLmZvckVhY2gobD0+e0xHKGwpLmZvckVhY2goYz0+e2EuaGFzT3duUHJvcGVydHkoYyl8fG8uYWRkKGMpfSl9KX0pLG8uc2l6ZSYmKE93KG8udmFsdWVzKCkpLGUuZXJyb3JzLnB1c2gobmV3IHh0KDMwMDgsITEpKSl9cmV0dXJue3R5cGU6MCxuYW1lOnQubmFtZSxzdHlsZTppLG9wdGlvbnM6cj97cGFyYW1zOnJ9Om51bGx9fXZpc2l0VHJhbnNpdGlvbih0LGUpe2UucXVlcnlDb3VudD0wLGUuZGVwQ291bnQ9MDtsZXQgaT11cyh0aGlzLFZiKHQuYW5pbWF0aW9uKSxlKTtyZXR1cm57dHlwZToxLG1hdGNoZXJzOlZoZSh0LmV4cHIsZS5lcnJvcnMpLGFuaW1hdGlvbjppLHF1ZXJ5Q291bnQ6ZS5xdWVyeUNvdW50LGRlcENvdW50OmUuZGVwQ291bnQsb3B0aW9uczphaCh0Lm9wdGlvbnMpfX12aXNpdFNlcXVlbmNlKHQsZSl7cmV0dXJue3R5cGU6MixzdGVwczp0LnN0ZXBzLm1hcChpPT51cyh0aGlzLGksZSkpLG9wdGlvbnM6YWgodC5vcHRpb25zKX19dmlzaXRHcm91cCh0LGUpe2xldCBpPWUuY3VycmVudFRpbWUscj0wLG89dC5zdGVwcy5tYXAoYT0+e2UuY3VycmVudFRpbWU9aTtsZXQgcz11cyh0aGlzLGEsZSk7cmV0dXJuIHI9TWF0aC5tYXgocixlLmN1cnJlbnRUaW1lKSxzfSk7cmV0dXJuIGUuY3VycmVudFRpbWU9cix7dHlwZTozLHN0ZXBzOm8sb3B0aW9uczphaCh0Lm9wdGlvbnMpfX12aXNpdEFuaW1hdGUodCxlKXtsZXQgaT1mdW5jdGlvbihuLHQpe2lmKG4uaGFzT3duUHJvcGVydHkoImR1cmF0aW9uIikpcmV0dXJuIG47aWYoIm51bWJlciI9PXR5cGVvZiBuKXJldHVybiB1TyhrdyhuLHQpLmR1cmF0aW9uLDAsIiIpO2xldCBlPW47aWYoZS5zcGxpdCgvXHMrLykuc29tZShvPT4ieyI9PW8uY2hhckF0KDApJiYieyI9PW8uY2hhckF0KDEpKSl7bGV0IG89dU8oMCwwLCIiKTtyZXR1cm4gby5keW5hbWljPSEwLG8uc3RyVmFsdWU9ZSxvfWxldCByPWt3KGUsdCk7cmV0dXJuIHVPKHIuZHVyYXRpb24sci5kZWxheSxyLmVhc2luZyl9KHQudGltaW5ncyxlLmVycm9ycyk7ZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9aTtsZXQgcixvPXQuc3R5bGVzP3Quc3R5bGVzOnJuKHt9KTtpZig1PT1vLnR5cGUpcj10aGlzLnZpc2l0S2V5ZnJhbWVzKG8sZSk7ZWxzZXtsZXQgYT10LnN0eWxlcyxzPSExO2lmKCFhKXtzPSEwO2xldCBjPXt9O2kuZWFzaW5nJiYoYy5lYXNpbmc9aS5lYXNpbmcpLGE9cm4oYyl9ZS5jdXJyZW50VGltZSs9aS5kdXJhdGlvbitpLmRlbGF5O2xldCBsPXRoaXMudmlzaXRTdHlsZShhLGUpO2wuaXNFbXB0eVN0ZXA9cyxyPWx9cmV0dXJuIGUuY3VycmVudEFuaW1hdGVUaW1pbmdzPW51bGwse3R5cGU6NCx0aW1pbmdzOmksc3R5bGU6cixvcHRpb25zOm51bGx9fXZpc2l0U3R5bGUodCxlKXtsZXQgaT10aGlzLl9tYWtlU3R5bGVBc3QodCxlKTtyZXR1cm4gdGhpcy5fdmFsaWRhdGVTdHlsZUFzdChpLGUpLGl9X21ha2VTdHlsZUFzdCh0LGUpe2xldCBpPVtdLHI9QXJyYXkuaXNBcnJheSh0LnN0eWxlcyk/dC5zdHlsZXM6W3Quc3R5bGVzXTtmb3IobGV0IHMgb2Ygcikic3RyaW5nIj09dHlwZW9mIHM/cz09PV9jP2kucHVzaChzKTplLmVycm9ycy5wdXNoKG5ldyB4dCgzMDAyLCExKSk6aS5wdXNoKEZHKHMpKTtsZXQgbz0hMSxhPW51bGw7cmV0dXJuIGkuZm9yRWFjaChzPT57aWYocyBpbnN0YW5jZW9mIE1hcCYmKHMuaGFzKCJlYXNpbmciKSYmKGE9cy5nZXQoImVhc2luZyIpLHMuZGVsZXRlKCJlYXNpbmciKSksIW8pKWZvcihsZXQgbCBvZiBzLnZhbHVlcygpKWlmKGwudG9TdHJpbmcoKS5pbmRleE9mKCJ7eyIpPj0wKXtvPSEwO2JyZWFrfX0pLHt0eXBlOjYsc3R5bGVzOmksZWFzaW5nOmEsb2Zmc2V0OnQub2Zmc2V0LGNvbnRhaW5zRHluYW1pY1N0eWxlczpvLG9wdGlvbnM6bnVsbH19X3ZhbGlkYXRlU3R5bGVBc3QodCxlKXtsZXQgaT1lLmN1cnJlbnRBbmltYXRlVGltaW5ncyxyPWUuY3VycmVudFRpbWUsbz1lLmN1cnJlbnRUaW1lO2kmJm8+MCYmKG8tPWkuZHVyYXRpb24raS5kZWxheSksdC5zdHlsZXMuZm9yRWFjaChhPT57InN0cmluZyIhPXR5cGVvZiBhJiZhLmZvckVhY2goKHMsbCk9PntsZXQgYz1lLmNvbGxlY3RlZFN0eWxlcy5nZXQoZS5jdXJyZW50UXVlcnlTZWxlY3RvciksZD1jLmdldChsKSx1PSEwO2QmJihvIT1yJiZvPj1kLnN0YXJ0VGltZSYmcjw9ZC5lbmRUaW1lJiYoZS5lcnJvcnMucHVzaChuZXcgeHQoMzAxMCwhMSkpLHU9ITEpLG89ZC5zdGFydFRpbWUpLHUmJmMuc2V0KGwse3N0YXJ0VGltZTpvLGVuZFRpbWU6cn0pLGUub3B0aW9ucyYmZnVuY3Rpb24obix0LGUpe2xldCBpPXQucGFyYW1zfHx7fSxyPUxHKG4pO3IubGVuZ3RoJiZyLmZvckVhY2gobz0+e2kuaGFzT3duUHJvcGVydHkobyl8fGUucHVzaChuZXcgeHQoMzAwMSwhMSkpfSl9KHMsZS5vcHRpb25zLGUuZXJyb3JzKX0pfSl9dmlzaXRLZXlmcmFtZXModCxlKXtsZXQgaT17dHlwZTo1LHN0eWxlczpbXSxvcHRpb25zOm51bGx9O2lmKCFlLmN1cnJlbnRBbmltYXRlVGltaW5ncylyZXR1cm4gZS5lcnJvcnMucHVzaChuZXcgeHQoMzAxMSwhMSkpLGk7bGV0IG89MCxhPVtdLHM9ITEsbD0hMSxjPTAsZD10LnN0ZXBzLm1hcCh5PT57bGV0IHg9dGhpcy5fbWFrZVN0eWxlQXN0KHksZSksUj1udWxsIT14Lm9mZnNldD94Lm9mZnNldDpmdW5jdGlvbihuKXtpZigic3RyaW5nIj09dHlwZW9mIG4pcmV0dXJuIG51bGw7bGV0IHQ9bnVsbDtpZihBcnJheS5pc0FycmF5KG4pKW4uZm9yRWFjaChlPT57aWYoZSBpbnN0YW5jZW9mIE1hcCYmZS5oYXMoIm9mZnNldCIpKXtsZXQgaT1lO3Q9cGFyc2VGbG9hdChpLmdldCgib2Zmc2V0IikpLGkuZGVsZXRlKCJvZmZzZXQiKX19KTtlbHNlIGlmKG4gaW5zdGFuY2VvZiBNYXAmJm4uaGFzKCJvZmZzZXQiKSl7bGV0IGU9bjt0PXBhcnNlRmxvYXQoZS5nZXQoIm9mZnNldCIpKSxlLmRlbGV0ZSgib2Zmc2V0Iil9cmV0dXJuIHR9KHguc3R5bGVzKSxJPTA7cmV0dXJuIG51bGwhPVImJihvKyssST14Lm9mZnNldD1SKSxsPWx8fEk8MHx8ST4xLHM9c3x8STxjLGM9SSxhLnB1c2goSSkseH0pO2wmJmUuZXJyb3JzLnB1c2gobmV3IHh0KDMwMTIsITEpKSxzJiZlLmVycm9ycy5wdXNoKG5ldyB4dCgzMjAwLCExKSk7bGV0IHU9dC5zdGVwcy5sZW5ndGgscD0wO28+MCYmbzx1P2UuZXJyb3JzLnB1c2gobmV3IHh0KDMyMDIsITEpKTowPT1vJiYocD0xLyh1LTEpKTtsZXQgaD11LTEsbT1lLmN1cnJlbnRUaW1lLF89ZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3MsTT1fLmR1cmF0aW9uO3JldHVybiBkLmZvckVhY2goKHkseCk9PntsZXQgUj1wPjA/eD09aD8xOnAqeDphW3hdLEk9UipNO2UuY3VycmVudFRpbWU9bStfLmRlbGF5K0ksXy5kdXJhdGlvbj1JLHRoaXMuX3ZhbGlkYXRlU3R5bGVBc3QoeSxlKSx5Lm9mZnNldD1SLGkuc3R5bGVzLnB1c2goeSl9KSxpfXZpc2l0UmVmZXJlbmNlKHQsZSl7cmV0dXJue3R5cGU6OCxhbmltYXRpb246dXModGhpcyxWYih0LmFuaW1hdGlvbiksZSksb3B0aW9uczphaCh0Lm9wdGlvbnMpfX12aXNpdEFuaW1hdGVDaGlsZCh0LGUpe3JldHVybiBlLmRlcENvdW50Kysse3R5cGU6OSxvcHRpb25zOmFoKHQub3B0aW9ucyl9fXZpc2l0QW5pbWF0ZVJlZih0LGUpe3JldHVybnt0eXBlOjEwLGFuaW1hdGlvbjp0aGlzLnZpc2l0UmVmZXJlbmNlKHQuYW5pbWF0aW9uLGUpLG9wdGlvbnM6YWgodC5vcHRpb25zKX19dmlzaXRRdWVyeSh0LGUpe2xldCBpPWUuY3VycmVudFF1ZXJ5U2VsZWN0b3Iscj10Lm9wdGlvbnN8fHt9O2UucXVlcnlDb3VudCsrLGUuY3VycmVudFF1ZXJ5PXQ7bGV0W28sYV09ZnVuY3Rpb24obil7bGV0IHQ9ISFuLnNwbGl0KC9ccyosXHMqLykuZmluZChlPT4iOnNlbGYiPT1lKTtyZXR1cm4gdCYmKG49bi5yZXBsYWNlKFVoZSwiIikpLG49bi5yZXBsYWNlKC9AXCovZyxQdykucmVwbGFjZSgvQFx3Ky9nLGU9PlB3KyItIitlLnNsaWNlKDEpKS5yZXBsYWNlKC86YW5pbWF0aW5nL2csYk8pLFtuLHRdfSh0LnNlbGVjdG9yKTtlLmN1cnJlbnRRdWVyeVNlbGVjdG9yPWkubGVuZ3RoP2krIiAiK286byxwcyhlLmNvbGxlY3RlZFN0eWxlcyxlLmN1cnJlbnRRdWVyeVNlbGVjdG9yLG5ldyBNYXApO2xldCBzPXVzKHRoaXMsVmIodC5hbmltYXRpb24pLGUpO3JldHVybiBlLmN1cnJlbnRRdWVyeT1udWxsLGUuY3VycmVudFF1ZXJ5U2VsZWN0b3I9aSx7dHlwZToxMSxzZWxlY3RvcjpvLGxpbWl0OnIubGltaXR8fDAsb3B0aW9uYWw6ISFyLm9wdGlvbmFsLGluY2x1ZGVTZWxmOmEsYW5pbWF0aW9uOnMsb3JpZ2luYWxTZWxlY3Rvcjp0LnNlbGVjdG9yLG9wdGlvbnM6YWgodC5vcHRpb25zKX19dmlzaXRTdGFnZ2VyKHQsZSl7ZS5jdXJyZW50UXVlcnl8fGUuZXJyb3JzLnB1c2gobmV3IHh0KDMwMTMsITEpKTtsZXQgaT0iZnVsbCI9PT10LnRpbWluZ3M/e2R1cmF0aW9uOjAsZGVsYXk6MCxlYXNpbmc6ImZ1bGwifTprdyh0LnRpbWluZ3MsZS5lcnJvcnMsITApO3JldHVybnt0eXBlOjEyLGFuaW1hdGlvbjp1cyh0aGlzLFZiKHQuYW5pbWF0aW9uKSxlKSx0aW1pbmdzOmksb3B0aW9uczpudWxsfX19LENPPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuZXJyb3JzPXQsdGhpcy5xdWVyeUNvdW50PTAsdGhpcy5kZXBDb3VudD0wLHRoaXMuY3VycmVudFRyYW5zaXRpb249bnVsbCx0aGlzLmN1cnJlbnRRdWVyeT1udWxsLHRoaXMuY3VycmVudFF1ZXJ5U2VsZWN0b3I9bnVsbCx0aGlzLmN1cnJlbnRBbmltYXRlVGltaW5ncz1udWxsLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmNvbGxlY3RlZFN0eWxlcz1uZXcgTWFwLHRoaXMub3B0aW9ucz1udWxsLHRoaXMudW5zdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzRm91bmQ9bmV3IFNldH19O2Z1bmN0aW9uIGFoKG4pe3JldHVybiBuPyhuPVhiKG4pKS5wYXJhbXMmJihuLnBhcmFtcz1mdW5jdGlvbihuKXtyZXR1cm4gbj9YYihuKTpudWxsfShuLnBhcmFtcykpOm49e30sbn1mdW5jdGlvbiB1TyhuLHQsZSl7cmV0dXJue2R1cmF0aW9uOm4sZGVsYXk6dCxlYXNpbmc6ZX19ZnVuY3Rpb24gTk8obix0LGUsaSxyLG8sYT1udWxsLHM9ITEpe3JldHVybnt0eXBlOjEsZWxlbWVudDpuLGtleWZyYW1lczp0LHByZVN0eWxlUHJvcHM6ZSxwb3N0U3R5bGVQcm9wczppLGR1cmF0aW9uOnIsZGVsYXk6byx0b3RhbFRpbWU6citvLGVhc2luZzphLHN1YlRpbWVsaW5lOnN9fXZhciBVYj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX21hcD1uZXcgTWFwfWdldCh0KXtyZXR1cm4gdGhpcy5fbWFwLmdldCh0KXx8W119YXBwZW5kKHQsZSl7bGV0IGk9dGhpcy5fbWFwLmdldCh0KTtpfHx0aGlzLl9tYXAuc2V0KHQsaT1bXSksaS5wdXNoKC4uLmUpfWhhcyh0KXtyZXR1cm4gdGhpcy5fbWFwLmhhcyh0KX1jbGVhcigpe3RoaXMuX21hcC5jbGVhcigpfX0sUWhlPW5ldyBSZWdFeHAoIjplbnRlciIsImciKSxLaGU9bmV3IFJlZ0V4cCgiOmxlYXZlIiwiZyIpO2Z1bmN0aW9uIGpHKG4sdCxlLGkscixvPW5ldyBNYXAsYT1uZXcgTWFwLHMsbCxjPVtdKXtyZXR1cm4obmV3IE1PKS5idWlsZEtleWZyYW1lcyhuLHQsZSxpLHIsbyxhLHMsbCxjKX12YXIgTU89Y2xhc3N7YnVpbGRLZXlmcmFtZXModCxlLGkscixvLGEscyxsLGMsZD1bXSl7Yz1jfHxuZXcgVWI7bGV0IHU9bmV3IGpiKHQsZSxjLHIsbyxkLFtdKTt1Lm9wdGlvbnM9bDtsZXQgcD1sLmRlbGF5P2NkKGwuZGVsYXkpOjA7dS5jdXJyZW50VGltZWxpbmUuZGVsYXlOZXh0U3RlcChwKSx1LmN1cnJlbnRUaW1lbGluZS5zZXRTdHlsZXMoW2FdLG51bGwsdS5lcnJvcnMsbCksdXModGhpcyxpLHUpO2xldCBoPXUudGltZWxpbmVzLmZpbHRlcihtPT5tLmNvbnRhaW5zQW5pbWF0aW9uKCkpO2lmKGgubGVuZ3RoJiZzLnNpemUpe2xldCBtO2ZvcihsZXQgXz1oLmxlbmd0aC0xO18+PTA7Xy0tKXtsZXQgTT1oW19dO2lmKE0uZWxlbWVudD09PWUpe209TTticmVha319bSYmIW0uYWxsb3dPbmx5VGltZWxpbmVTdHlsZXMoKSYmbS5zZXRTdHlsZXMoW3NdLG51bGwsdS5lcnJvcnMsbCl9cmV0dXJuIGgubGVuZ3RoP2gubWFwKG09Pm0uYnVpbGRLZXlmcmFtZXMoKSk6W05PKGUsW10sW10sW10sMCxwLCIiLCExKV19dmlzaXRUcmlnZ2VyKHQsZSl7fXZpc2l0U3RhdGUodCxlKXt9dmlzaXRUcmFuc2l0aW9uKHQsZSl7fXZpc2l0QW5pbWF0ZUNoaWxkKHQsZSl7bGV0IGk9ZS5zdWJJbnN0cnVjdGlvbnMuZ2V0KGUuZWxlbWVudCk7aWYoaSl7bGV0IHI9ZS5jcmVhdGVTdWJDb250ZXh0KHQub3B0aW9ucyksbz1lLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZSxhPXRoaXMuX3Zpc2l0U3ViSW5zdHJ1Y3Rpb25zKGkscixyLm9wdGlvbnMpO28hPWEmJmUudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKGEpfWUucHJldmlvdXNOb2RlPXR9dmlzaXRBbmltYXRlUmVmKHQsZSl7bGV0IGk9ZS5jcmVhdGVTdWJDb250ZXh0KHQub3B0aW9ucyk7aS50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoKSx0aGlzLl9hcHBseUFuaW1hdGlvblJlZkRlbGF5cyhbdC5vcHRpb25zLHQuYW5pbWF0aW9uLm9wdGlvbnNdLGUsaSksdGhpcy52aXNpdFJlZmVyZW5jZSh0LmFuaW1hdGlvbixpKSxlLnRyYW5zZm9ybUludG9OZXdUaW1lbGluZShpLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZSksZS5wcmV2aW91c05vZGU9dH1fYXBwbHlBbmltYXRpb25SZWZEZWxheXModCxlLGkpe2ZvcihsZXQgciBvZiB0KXtsZXQgbz1yPy5kZWxheTtpZihvKXtsZXQgYT0ibnVtYmVyIj09dHlwZW9mIG8/bzpjZCh6YihvLHI/LnBhcmFtcz8/e30sZS5lcnJvcnMpKTtpLmRlbGF5TmV4dFN0ZXAoYSl9fX1fdmlzaXRTdWJJbnN0cnVjdGlvbnModCxlLGkpe2xldCBvPWUuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lLGE9bnVsbCE9aS5kdXJhdGlvbj9jZChpLmR1cmF0aW9uKTpudWxsLHM9bnVsbCE9aS5kZWxheT9jZChpLmRlbGF5KTpudWxsO3JldHVybiAwIT09YSYmdC5mb3JFYWNoKGw9PntsZXQgYz1lLmFwcGVuZEluc3RydWN0aW9uVG9UaW1lbGluZShsLGEscyk7bz1NYXRoLm1heChvLGMuZHVyYXRpb24rYy5kZWxheSl9KSxvfXZpc2l0UmVmZXJlbmNlKHQsZSl7ZS51cGRhdGVPcHRpb25zKHQub3B0aW9ucywhMCksdXModGhpcyx0LmFuaW1hdGlvbixlKSxlLnByZXZpb3VzTm9kZT10fXZpc2l0U2VxdWVuY2UodCxlKXtsZXQgaT1lLnN1YkNvbnRleHRDb3VudCxyPWUsbz10Lm9wdGlvbnM7aWYobyYmKG8ucGFyYW1zfHxvLmRlbGF5KSYmKHI9ZS5jcmVhdGVTdWJDb250ZXh0KG8pLHIudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKCksbnVsbCE9by5kZWxheSkpezY9PXIucHJldmlvdXNOb2RlLnR5cGUmJihyLmN1cnJlbnRUaW1lbGluZS5zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKSxyLnByZXZpb3VzTm9kZT1Odyk7bGV0IGE9Y2Qoby5kZWxheSk7ci5kZWxheU5leHRTdGVwKGEpfXQuc3RlcHMubGVuZ3RoJiYodC5zdGVwcy5mb3JFYWNoKGE9PnVzKHRoaXMsYSxyKSksci5jdXJyZW50VGltZWxpbmUuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCksci5zdWJDb250ZXh0Q291bnQ+aSYmci50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoKSksZS5wcmV2aW91c05vZGU9dH12aXNpdEdyb3VwKHQsZSl7bGV0IGk9W10scj1lLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZSxvPXQub3B0aW9ucyYmdC5vcHRpb25zLmRlbGF5P2NkKHQub3B0aW9ucy5kZWxheSk6MDt0LnN0ZXBzLmZvckVhY2goYT0+e2xldCBzPWUuY3JlYXRlU3ViQ29udGV4dCh0Lm9wdGlvbnMpO28mJnMuZGVsYXlOZXh0U3RlcChvKSx1cyh0aGlzLGEscykscj1NYXRoLm1heChyLHMuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lKSxpLnB1c2gocy5jdXJyZW50VGltZWxpbmUpfSksaS5mb3JFYWNoKGE9PmUuY3VycmVudFRpbWVsaW5lLm1lcmdlVGltZWxpbmVDb2xsZWN0ZWRTdHlsZXMoYSkpLGUudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKHIpLGUucHJldmlvdXNOb2RlPXR9X3Zpc2l0VGltaW5nKHQsZSl7aWYodC5keW5hbWljKXtsZXQgaT10LnN0clZhbHVlO3JldHVybiBrdyhlLnBhcmFtcz96YihpLGUucGFyYW1zLGUuZXJyb3JzKTppLGUuZXJyb3JzKX1yZXR1cm57ZHVyYXRpb246dC5kdXJhdGlvbixkZWxheTp0LmRlbGF5LGVhc2luZzp0LmVhc2luZ319dmlzaXRBbmltYXRlKHQsZSl7bGV0IGk9ZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9dGhpcy5fdmlzaXRUaW1pbmcodC50aW1pbmdzLGUpLHI9ZS5jdXJyZW50VGltZWxpbmU7aS5kZWxheSYmKGUuaW5jcmVtZW50VGltZShpLmRlbGF5KSxyLnNuYXBzaG90Q3VycmVudFN0eWxlcygpKTtsZXQgbz10LnN0eWxlOzU9PW8udHlwZT90aGlzLnZpc2l0S2V5ZnJhbWVzKG8sZSk6KGUuaW5jcmVtZW50VGltZShpLmR1cmF0aW9uKSx0aGlzLnZpc2l0U3R5bGUobyxlKSxyLmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpKSxlLmN1cnJlbnRBbmltYXRlVGltaW5ncz1udWxsLGUucHJldmlvdXNOb2RlPXR9dmlzaXRTdHlsZSh0LGUpe2xldCBpPWUuY3VycmVudFRpbWVsaW5lLHI9ZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M7IXImJmkuaGFzQ3VycmVudFN0eWxlUHJvcGVydGllcygpJiZpLmZvcndhcmRGcmFtZSgpO2xldCBvPXImJnIuZWFzaW5nfHx0LmVhc2luZzt0LmlzRW1wdHlTdGVwP2kuYXBwbHlFbXB0eVN0ZXAobyk6aS5zZXRTdHlsZXModC5zdHlsZXMsbyxlLmVycm9ycyxlLm9wdGlvbnMpLGUucHJldmlvdXNOb2RlPXR9dmlzaXRLZXlmcmFtZXModCxlKXtsZXQgaT1lLmN1cnJlbnRBbmltYXRlVGltaW5ncyxyPWUuY3VycmVudFRpbWVsaW5lLmR1cmF0aW9uLG89aS5kdXJhdGlvbixzPWUuY3JlYXRlU3ViQ29udGV4dCgpLmN1cnJlbnRUaW1lbGluZTtzLmVhc2luZz1pLmVhc2luZyx0LnN0eWxlcy5mb3JFYWNoKGw9PntzLmZvcndhcmRUaW1lKChsLm9mZnNldHx8MCkqbykscy5zZXRTdHlsZXMobC5zdHlsZXMsbC5lYXNpbmcsZS5lcnJvcnMsZS5vcHRpb25zKSxzLmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpfSksZS5jdXJyZW50VGltZWxpbmUubWVyZ2VUaW1lbGluZUNvbGxlY3RlZFN0eWxlcyhzKSxlLnRyYW5zZm9ybUludG9OZXdUaW1lbGluZShyK28pLGUucHJldmlvdXNOb2RlPXR9dmlzaXRRdWVyeSh0LGUpe2xldCBpPWUuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lLHI9dC5vcHRpb25zfHx7fSxvPXIuZGVsYXk/Y2Qoci5kZWxheSk6MDtvJiYoNj09PWUucHJldmlvdXNOb2RlLnR5cGV8fDA9PWkmJmUuY3VycmVudFRpbWVsaW5lLmhhc0N1cnJlbnRTdHlsZVByb3BlcnRpZXMoKSkmJihlLmN1cnJlbnRUaW1lbGluZS5zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKSxlLnByZXZpb3VzTm9kZT1Odyk7bGV0IGE9aSxzPWUuaW52b2tlUXVlcnkodC5zZWxlY3Rvcix0Lm9yaWdpbmFsU2VsZWN0b3IsdC5saW1pdCx0LmluY2x1ZGVTZWxmLCEhci5vcHRpb25hbCxlLmVycm9ycyk7ZS5jdXJyZW50UXVlcnlUb3RhbD1zLmxlbmd0aDtsZXQgbD1udWxsO3MuZm9yRWFjaCgoYyxkKT0+e2UuY3VycmVudFF1ZXJ5SW5kZXg9ZDtsZXQgdT1lLmNyZWF0ZVN1YkNvbnRleHQodC5vcHRpb25zLGMpO28mJnUuZGVsYXlOZXh0U3RlcChvKSxjPT09ZS5lbGVtZW50JiYobD11LmN1cnJlbnRUaW1lbGluZSksdXModGhpcyx0LmFuaW1hdGlvbix1KSx1LmN1cnJlbnRUaW1lbGluZS5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKSxhPU1hdGgubWF4KGEsdS5jdXJyZW50VGltZWxpbmUuY3VycmVudFRpbWUpfSksZS5jdXJyZW50UXVlcnlJbmRleD0wLGUuY3VycmVudFF1ZXJ5VG90YWw9MCxlLnRyYW5zZm9ybUludG9OZXdUaW1lbGluZShhKSxsJiYoZS5jdXJyZW50VGltZWxpbmUubWVyZ2VUaW1lbGluZUNvbGxlY3RlZFN0eWxlcyhsKSxlLmN1cnJlbnRUaW1lbGluZS5zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKSksZS5wcmV2aW91c05vZGU9dH12aXNpdFN0YWdnZXIodCxlKXtsZXQgaT1lLnBhcmVudENvbnRleHQscj1lLmN1cnJlbnRUaW1lbGluZSxvPXQudGltaW5ncyxhPU1hdGguYWJzKG8uZHVyYXRpb24pLHM9YSooZS5jdXJyZW50UXVlcnlUb3RhbC0xKSxsPWEqZS5jdXJyZW50UXVlcnlJbmRleDtzd2l0Y2goby5kdXJhdGlvbjwwPyJyZXZlcnNlIjpvLmVhc2luZyl7Y2FzZSJyZXZlcnNlIjpsPXMtbDticmVhaztjYXNlImZ1bGwiOmw9aS5jdXJyZW50U3RhZ2dlclRpbWV9bGV0IGQ9ZS5jdXJyZW50VGltZWxpbmU7bCYmZC5kZWxheU5leHRTdGVwKGwpO2xldCB1PWQuY3VycmVudFRpbWU7dXModGhpcyx0LmFuaW1hdGlvbixlKSxlLnByZXZpb3VzTm9kZT10LGkuY3VycmVudFN0YWdnZXJUaW1lPXIuY3VycmVudFRpbWUtdSsoci5zdGFydFRpbWUtaS5jdXJyZW50VGltZWxpbmUuc3RhcnRUaW1lKX19LE53PXt9LGpiPWNsYXNze2NvbnN0cnVjdG9yKHQsZSxpLHIsbyxhLHMsbCl7dGhpcy5fZHJpdmVyPXQsdGhpcy5lbGVtZW50PWUsdGhpcy5zdWJJbnN0cnVjdGlvbnM9aSx0aGlzLl9lbnRlckNsYXNzTmFtZT1yLHRoaXMuX2xlYXZlQ2xhc3NOYW1lPW8sdGhpcy5lcnJvcnM9YSx0aGlzLnRpbWVsaW5lcz1zLHRoaXMucGFyZW50Q29udGV4dD1udWxsLHRoaXMuY3VycmVudEFuaW1hdGVUaW1pbmdzPW51bGwsdGhpcy5wcmV2aW91c05vZGU9TncsdGhpcy5zdWJDb250ZXh0Q291bnQ9MCx0aGlzLm9wdGlvbnM9e30sdGhpcy5jdXJyZW50UXVlcnlJbmRleD0wLHRoaXMuY3VycmVudFF1ZXJ5VG90YWw9MCx0aGlzLmN1cnJlbnRTdGFnZ2VyVGltZT0wLHRoaXMuY3VycmVudFRpbWVsaW5lPWx8fG5ldyBUZih0aGlzLl9kcml2ZXIsZSwwKSxzLnB1c2godGhpcy5jdXJyZW50VGltZWxpbmUpfWdldCBwYXJhbXMoKXtyZXR1cm4gdGhpcy5vcHRpb25zLnBhcmFtc311cGRhdGVPcHRpb25zKHQsZSl7aWYoIXQpcmV0dXJuO2xldCBpPXQscj10aGlzLm9wdGlvbnM7bnVsbCE9aS5kdXJhdGlvbiYmKHIuZHVyYXRpb249Y2QoaS5kdXJhdGlvbikpLG51bGwhPWkuZGVsYXkmJihyLmRlbGF5PWNkKGkuZGVsYXkpKTtsZXQgbz1pLnBhcmFtcztpZihvKXtsZXQgYT1yLnBhcmFtczthfHwoYT10aGlzLm9wdGlvbnMucGFyYW1zPXt9KSxPYmplY3Qua2V5cyhvKS5mb3JFYWNoKHM9PnsoIWV8fCFhLmhhc093blByb3BlcnR5KHMpKSYmKGFbc109emIob1tzXSxhLHRoaXMuZXJyb3JzKSl9KX19X2NvcHlPcHRpb25zKCl7bGV0IHQ9e307aWYodGhpcy5vcHRpb25zKXtsZXQgZT10aGlzLm9wdGlvbnMucGFyYW1zO2lmKGUpe2xldCBpPXQucGFyYW1zPXt9O09iamVjdC5rZXlzKGUpLmZvckVhY2gocj0+e2lbcl09ZVtyXX0pfX1yZXR1cm4gdH1jcmVhdGVTdWJDb250ZXh0KHQ9bnVsbCxlLGkpe2xldCByPWV8fHRoaXMuZWxlbWVudCxvPW5ldyBqYih0aGlzLl9kcml2ZXIscix0aGlzLnN1Ykluc3RydWN0aW9ucyx0aGlzLl9lbnRlckNsYXNzTmFtZSx0aGlzLl9sZWF2ZUNsYXNzTmFtZSx0aGlzLmVycm9ycyx0aGlzLnRpbWVsaW5lcyx0aGlzLmN1cnJlbnRUaW1lbGluZS5mb3JrKHIsaXx8MCkpO3JldHVybiBvLnByZXZpb3VzTm9kZT10aGlzLnByZXZpb3VzTm9kZSxvLmN1cnJlbnRBbmltYXRlVGltaW5ncz10aGlzLmN1cnJlbnRBbmltYXRlVGltaW5ncyxvLm9wdGlvbnM9dGhpcy5fY29weU9wdGlvbnMoKSxvLnVwZGF0ZU9wdGlvbnModCksby5jdXJyZW50UXVlcnlJbmRleD10aGlzLmN1cnJlbnRRdWVyeUluZGV4LG8uY3VycmVudFF1ZXJ5VG90YWw9dGhpcy5jdXJyZW50UXVlcnlUb3RhbCxvLnBhcmVudENvbnRleHQ9dGhpcyx0aGlzLnN1YkNvbnRleHRDb3VudCsrLG99dHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKHQpe3JldHVybiB0aGlzLnByZXZpb3VzTm9kZT1Odyx0aGlzLmN1cnJlbnRUaW1lbGluZT10aGlzLmN1cnJlbnRUaW1lbGluZS5mb3JrKHRoaXMuZWxlbWVudCx0KSx0aGlzLnRpbWVsaW5lcy5wdXNoKHRoaXMuY3VycmVudFRpbWVsaW5lKSx0aGlzLmN1cnJlbnRUaW1lbGluZX1hcHBlbmRJbnN0cnVjdGlvblRvVGltZWxpbmUodCxlLGkpe2xldCByPXtkdXJhdGlvbjplPz90LmR1cmF0aW9uLGRlbGF5OnRoaXMuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lKyhpPz8wKSt0LmRlbGF5LGVhc2luZzoiIn0sbz1uZXcgd08odGhpcy5fZHJpdmVyLHQuZWxlbWVudCx0LmtleWZyYW1lcyx0LnByZVN0eWxlUHJvcHMsdC5wb3N0U3R5bGVQcm9wcyxyLHQuc3RyZXRjaFN0YXJ0aW5nS2V5ZnJhbWUpO3JldHVybiB0aGlzLnRpbWVsaW5lcy5wdXNoKG8pLHJ9aW5jcmVtZW50VGltZSh0KXt0aGlzLmN1cnJlbnRUaW1lbGluZS5mb3J3YXJkVGltZSh0aGlzLmN1cnJlbnRUaW1lbGluZS5kdXJhdGlvbit0KX1kZWxheU5leHRTdGVwKHQpe3Q+MCYmdGhpcy5jdXJyZW50VGltZWxpbmUuZGVsYXlOZXh0U3RlcCh0KX1pbnZva2VRdWVyeSh0LGUsaSxyLG8sYSl7bGV0IHM9W107aWYociYmcy5wdXNoKHRoaXMuZWxlbWVudCksdC5sZW5ndGg+MCl7dD0odD10LnJlcGxhY2UoUWhlLCIuIit0aGlzLl9lbnRlckNsYXNzTmFtZSkpLnJlcGxhY2UoS2hlLCIuIit0aGlzLl9sZWF2ZUNsYXNzTmFtZSk7bGV0IGM9dGhpcy5fZHJpdmVyLnF1ZXJ5KHRoaXMuZWxlbWVudCx0LDEhPWkpOzAhPT1pJiYoYz1pPDA/Yy5zbGljZShjLmxlbmd0aCtpLGMubGVuZ3RoKTpjLnNsaWNlKDAsaSkpLHMucHVzaCguLi5jKX1yZXR1cm4hbyYmMD09cy5sZW5ndGgmJmEucHVzaChuZXcgeHQoMzAxNCwhMSkpLHN9fSxUZj1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSxyKXt0aGlzLl9kcml2ZXI9dCx0aGlzLmVsZW1lbnQ9ZSx0aGlzLnN0YXJ0VGltZT1pLHRoaXMuX2VsZW1lbnRUaW1lbGluZVN0eWxlc0xvb2t1cD1yLHRoaXMuZHVyYXRpb249MCx0aGlzLmVhc2luZz1udWxsLHRoaXMuX3ByZXZpb3VzS2V5ZnJhbWU9bmV3IE1hcCx0aGlzLl9jdXJyZW50S2V5ZnJhbWU9bmV3IE1hcCx0aGlzLl9rZXlmcmFtZXM9bmV3IE1hcCx0aGlzLl9zdHlsZVN1bW1hcnk9bmV3IE1hcCx0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzPW5ldyBNYXAsdGhpcy5fcGVuZGluZ1N0eWxlcz1uZXcgTWFwLHRoaXMuX2JhY2tGaWxsPW5ldyBNYXAsdGhpcy5fY3VycmVudEVtcHR5U3RlcEtleWZyYW1lPW51bGwsdGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwfHwodGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwPW5ldyBNYXApLHRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzPXRoaXMuX2VsZW1lbnRUaW1lbGluZVN0eWxlc0xvb2t1cC5nZXQoZSksdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXN8fCh0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlcz10aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzLHRoaXMuX2VsZW1lbnRUaW1lbGluZVN0eWxlc0xvb2t1cC5zZXQoZSx0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzKSksdGhpcy5fbG9hZEtleWZyYW1lKCl9Y29udGFpbnNBbmltYXRpb24oKXtzd2l0Y2godGhpcy5fa2V5ZnJhbWVzLnNpemUpe2Nhc2UgMDpyZXR1cm4hMTtjYXNlIDE6cmV0dXJuIHRoaXMuaGFzQ3VycmVudFN0eWxlUHJvcGVydGllcygpO2RlZmF1bHQ6cmV0dXJuITB9fWhhc0N1cnJlbnRTdHlsZVByb3BlcnRpZXMoKXtyZXR1cm4gdGhpcy5fY3VycmVudEtleWZyYW1lLnNpemU+MH1nZXQgY3VycmVudFRpbWUoKXtyZXR1cm4gdGhpcy5zdGFydFRpbWUrdGhpcy5kdXJhdGlvbn1kZWxheU5leHRTdGVwKHQpe2xldCBlPTE9PT10aGlzLl9rZXlmcmFtZXMuc2l6ZSYmdGhpcy5fcGVuZGluZ1N0eWxlcy5zaXplO3RoaXMuZHVyYXRpb258fGU/KHRoaXMuZm9yd2FyZFRpbWUodGhpcy5jdXJyZW50VGltZSt0KSxlJiZ0aGlzLnNuYXBzaG90Q3VycmVudFN0eWxlcygpKTp0aGlzLnN0YXJ0VGltZSs9dH1mb3JrKHQsZSl7cmV0dXJuIHRoaXMuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCksbmV3IFRmKHRoaXMuX2RyaXZlcix0LGV8fHRoaXMuY3VycmVudFRpbWUsdGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwKX1fbG9hZEtleWZyYW1lKCl7dGhpcy5fY3VycmVudEtleWZyYW1lJiYodGhpcy5fcHJldmlvdXNLZXlmcmFtZT10aGlzLl9jdXJyZW50S2V5ZnJhbWUpLHRoaXMuX2N1cnJlbnRLZXlmcmFtZT10aGlzLl9rZXlmcmFtZXMuZ2V0KHRoaXMuZHVyYXRpb24pLHRoaXMuX2N1cnJlbnRLZXlmcmFtZXx8KHRoaXMuX2N1cnJlbnRLZXlmcmFtZT1uZXcgTWFwLHRoaXMuX2tleWZyYW1lcy5zZXQodGhpcy5kdXJhdGlvbix0aGlzLl9jdXJyZW50S2V5ZnJhbWUpKX1mb3J3YXJkRnJhbWUoKXt0aGlzLmR1cmF0aW9uKz0xLHRoaXMuX2xvYWRLZXlmcmFtZSgpfWZvcndhcmRUaW1lKHQpe3RoaXMuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCksdGhpcy5kdXJhdGlvbj10LHRoaXMuX2xvYWRLZXlmcmFtZSgpfV91cGRhdGVTdHlsZSh0LGUpe3RoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMuc2V0KHQsZSksdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXMuc2V0KHQsZSksdGhpcy5fc3R5bGVTdW1tYXJ5LnNldCh0LHt0aW1lOnRoaXMuY3VycmVudFRpbWUsdmFsdWU6ZX0pfWFsbG93T25seVRpbWVsaW5lU3R5bGVzKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRFbXB0eVN0ZXBLZXlmcmFtZSE9PXRoaXMuX2N1cnJlbnRLZXlmcmFtZX1hcHBseUVtcHR5U3RlcCh0KXt0JiZ0aGlzLl9wcmV2aW91c0tleWZyYW1lLnNldCgiZWFzaW5nIix0KTtmb3IobGV0W2UsaV1vZiB0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlcyl0aGlzLl9iYWNrRmlsbC5zZXQoZSxpfHxfYyksdGhpcy5fY3VycmVudEtleWZyYW1lLnNldChlLF9jKTt0aGlzLl9jdXJyZW50RW1wdHlTdGVwS2V5ZnJhbWU9dGhpcy5fY3VycmVudEtleWZyYW1lfXNldFN0eWxlcyh0LGUsaSxyKXtlJiZ0aGlzLl9wcmV2aW91c0tleWZyYW1lLnNldCgiZWFzaW5nIixlKTtsZXQgbz1yJiZyLnBhcmFtc3x8e30sYT1mdW5jdGlvbihuLHQpe2xldCBpLGU9bmV3IE1hcDtyZXR1cm4gbi5mb3JFYWNoKHI9PntpZigiKiI9PT1yKXtpPWl8fHQua2V5cygpO2ZvcihsZXQgbyBvZiBpKWUuc2V0KG8sX2MpfWVsc2UgRWYocixlKX0pLGV9KHQsdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXMpO2ZvcihsZXRbcyxsXW9mIGEpe2xldCBjPXpiKGwsbyxpKTt0aGlzLl9wZW5kaW5nU3R5bGVzLnNldChzLGMpLHRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMuaGFzKHMpfHx0aGlzLl9iYWNrRmlsbC5zZXQocyx0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlcy5nZXQocyk/P19jKSx0aGlzLl91cGRhdGVTdHlsZShzLGMpfX1hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKXswIT10aGlzLl9wZW5kaW5nU3R5bGVzLnNpemUmJih0aGlzLl9wZW5kaW5nU3R5bGVzLmZvckVhY2goKHQsZSk9Pnt0aGlzLl9jdXJyZW50S2V5ZnJhbWUuc2V0KGUsdCl9KSx0aGlzLl9wZW5kaW5nU3R5bGVzLmNsZWFyKCksdGhpcy5fbG9jYWxUaW1lbGluZVN0eWxlcy5mb3JFYWNoKCh0LGUpPT57dGhpcy5fY3VycmVudEtleWZyYW1lLmhhcyhlKXx8dGhpcy5fY3VycmVudEtleWZyYW1lLnNldChlLHQpfSkpfXNuYXBzaG90Q3VycmVudFN0eWxlcygpe2ZvcihsZXRbdCxlXW9mIHRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMpdGhpcy5fcGVuZGluZ1N0eWxlcy5zZXQodCxlKSx0aGlzLl91cGRhdGVTdHlsZSh0LGUpfWdldEZpbmFsS2V5ZnJhbWUoKXtyZXR1cm4gdGhpcy5fa2V5ZnJhbWVzLmdldCh0aGlzLmR1cmF0aW9uKX1nZXQgcHJvcGVydGllcygpe2xldCB0PVtdO2ZvcihsZXQgZSBpbiB0aGlzLl9jdXJyZW50S2V5ZnJhbWUpdC5wdXNoKGUpO3JldHVybiB0fW1lcmdlVGltZWxpbmVDb2xsZWN0ZWRTdHlsZXModCl7dC5fc3R5bGVTdW1tYXJ5LmZvckVhY2goKGUsaSk9PntsZXQgcj10aGlzLl9zdHlsZVN1bW1hcnkuZ2V0KGkpOyghcnx8ZS50aW1lPnIudGltZSkmJnRoaXMuX3VwZGF0ZVN0eWxlKGksZS52YWx1ZSl9KX1idWlsZEtleWZyYW1lcygpe3RoaXMuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCk7bGV0IHQ9bmV3IFNldCxlPW5ldyBTZXQsaT0xPT09dGhpcy5fa2V5ZnJhbWVzLnNpemUmJjA9PT10aGlzLmR1cmF0aW9uLHI9W107dGhpcy5fa2V5ZnJhbWVzLmZvckVhY2goKHMsbCk9PntsZXQgYz1FZihzLG5ldyBNYXAsdGhpcy5fYmFja0ZpbGwpO2MuZm9yRWFjaCgoZCx1KT0+e2Q9PT1Udz90LmFkZCh1KTpkPT09X2MmJmUuYWRkKHUpfSksaXx8Yy5zZXQoIm9mZnNldCIsbC90aGlzLmR1cmF0aW9uKSxyLnB1c2goYyl9KTtsZXQgbz10LnNpemU/T3codC52YWx1ZXMoKSk6W10sYT1lLnNpemU/T3coZS52YWx1ZXMoKSk6W107aWYoaSl7bGV0IHM9clswXSxsPW5ldyBNYXAocyk7cy5zZXQoIm9mZnNldCIsMCksbC5zZXQoIm9mZnNldCIsMSkscj1bcyxsXX1yZXR1cm4gTk8odGhpcy5lbGVtZW50LHIsbyxhLHRoaXMuZHVyYXRpb24sdGhpcy5zdGFydFRpbWUsdGhpcy5lYXNpbmcsITEpfX0sd089Y2xhc3MgZXh0ZW5kcyBUZntjb25zdHJ1Y3Rvcih0LGUsaSxyLG8sYSxzPSExKXtzdXBlcih0LGUsYS5kZWxheSksdGhpcy5rZXlmcmFtZXM9aSx0aGlzLnByZVN0eWxlUHJvcHM9cix0aGlzLnBvc3RTdHlsZVByb3BzPW8sdGhpcy5fc3RyZXRjaFN0YXJ0aW5nS2V5ZnJhbWU9cyx0aGlzLnRpbWluZ3M9e2R1cmF0aW9uOmEuZHVyYXRpb24sZGVsYXk6YS5kZWxheSxlYXNpbmc6YS5lYXNpbmd9fWNvbnRhaW5zQW5pbWF0aW9uKCl7cmV0dXJuIHRoaXMua2V5ZnJhbWVzLmxlbmd0aD4xfWJ1aWxkS2V5ZnJhbWVzKCl7bGV0IHQ9dGhpcy5rZXlmcmFtZXMse2RlbGF5OmUsZHVyYXRpb246aSxlYXNpbmc6cn09dGhpcy50aW1pbmdzO2lmKHRoaXMuX3N0cmV0Y2hTdGFydGluZ0tleWZyYW1lJiZlKXtsZXQgbz1bXSxhPWkrZSxzPWUvYSxsPUVmKHRbMF0pO2wuc2V0KCJvZmZzZXQiLDApLG8ucHVzaChsKTtsZXQgYz1FZih0WzBdKTtjLnNldCgib2Zmc2V0Iix5RyhzKSksby5wdXNoKGMpO2xldCBkPXQubGVuZ3RoLTE7Zm9yKGxldCB1PTE7dTw9ZDt1Kyspe2xldCBwPUVmKHRbdV0pLGg9cC5nZXQoIm9mZnNldCIpO3Auc2V0KCJvZmZzZXQiLHlHKChlK2gqaSkvYSkpLG8ucHVzaChwKX1pPWEsZT0wLHI9IiIsdD1vfXJldHVybiBOTyh0aGlzLmVsZW1lbnQsdCx0aGlzLnByZVN0eWxlUHJvcHMsdGhpcy5wb3N0U3R5bGVQcm9wcyxpLGUsciwhMCl9fTtmdW5jdGlvbiB5RyhuLHQ9Myl7bGV0IGU9TWF0aC5wb3coMTAsdC0xKTtyZXR1cm4gTWF0aC5yb3VuZChuKmUpL2V9dmFyIGxoPWNsYXNze30sJGhlPW5ldyBTZXQoWyJ3aWR0aCIsImhlaWdodCIsIm1pbldpZHRoIiwibWluSGVpZ2h0IiwibWF4V2lkdGgiLCJtYXhIZWlnaHQiLCJsZWZ0IiwidG9wIiwiYm90dG9tIiwicmlnaHQiLCJmb250U2l6ZSIsIm91dGxpbmVXaWR0aCIsIm91dGxpbmVPZmZzZXQiLCJwYWRkaW5nVG9wIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nQm90dG9tIiwicGFkZGluZ1JpZ2h0IiwibWFyZ2luVG9wIiwibWFyZ2luTGVmdCIsIm1hcmdpbkJvdHRvbSIsIm1hcmdpblJpZ2h0IiwiYm9yZGVyUmFkaXVzIiwiYm9yZGVyV2lkdGgiLCJib3JkZXJUb3BXaWR0aCIsImJvcmRlckxlZnRXaWR0aCIsImJvcmRlclJpZ2h0V2lkdGgiLCJib3JkZXJCb3R0b21XaWR0aCIsInRleHRJbmRlbnQiLCJwZXJzcGVjdGl2ZSJdKSxMdz1jbGFzcyBleHRlbmRzIGxoe25vcm1hbGl6ZVByb3BlcnR5TmFtZSh0LGUpe3JldHVybiBGTyh0KX1ub3JtYWxpemVTdHlsZVZhbHVlKHQsZSxpLHIpe2xldCBvPSIiLGE9aS50b1N0cmluZygpLnRyaW0oKTtpZigkaGUuaGFzKGUpJiYwIT09aSYmIjAiIT09aSlpZigibnVtYmVyIj09dHlwZW9mIGkpbz0icHgiO2Vsc2V7bGV0IHM9aS5tYXRjaCgvXlsrLV0/W1xkXC5dKyhbYS16XSopJC8pO3MmJjA9PXNbMV0ubGVuZ3RoJiZyLnB1c2gobmV3IHh0KDMwMDUsITEpKX1yZXR1cm4gYStvfX07ZnVuY3Rpb24geEcobix0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCl7cmV0dXJue3R5cGU6MCxlbGVtZW50Om4sdHJpZ2dlck5hbWU6dCxpc1JlbW92YWxUcmFuc2l0aW9uOnIsZnJvbVN0YXRlOmUsZnJvbVN0eWxlczpvLHRvU3RhdGU6aSx0b1N0eWxlczphLHRpbWVsaW5lczpzLHF1ZXJpZWRFbGVtZW50czpsLHByZVN0eWxlUHJvcHM6Yyxwb3N0U3R5bGVQcm9wczpkLHRvdGFsVGltZTp1LGVycm9yczpwfX12YXIgcE89e30sQnc9Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkpe3RoaXMuX3RyaWdnZXJOYW1lPXQsdGhpcy5hc3Q9ZSx0aGlzLl9zdGF0ZVN0eWxlcz1pfW1hdGNoKHQsZSxpLHIpe3JldHVybiBmdW5jdGlvbihuLHQsZSxpLHIpe3JldHVybiBuLnNvbWUobz0+byh0LGUsaSxyKSl9KHRoaXMuYXN0Lm1hdGNoZXJzLHQsZSxpLHIpfWJ1aWxkU3R5bGVzKHQsZSxpKXtsZXQgcj10aGlzLl9zdGF0ZVN0eWxlcy5nZXQoIioiKTtyZXR1cm4gdm9pZCAwIT09dCYmKHI9dGhpcy5fc3RhdGVTdHlsZXMuZ2V0KHQ/LnRvU3RyaW5nKCkpfHxyKSxyP3IuYnVpbGRTdHlsZXMoZSxpKTpuZXcgTWFwfWJ1aWxkKHQsZSxpLHIsbyxhLHMsbCxjLGQpe2xldCB1PVtdLHA9dGhpcy5hc3Qub3B0aW9ucyYmdGhpcy5hc3Qub3B0aW9ucy5wYXJhbXN8fHBPLG09dGhpcy5idWlsZFN0eWxlcyhpLHMmJnMucGFyYW1zfHxwTyx1KSxfPWwmJmwucGFyYW1zfHxwTyxNPXRoaXMuYnVpbGRTdHlsZXMocixfLHUpLHk9bmV3IFNldCx4PW5ldyBNYXAsUj1uZXcgTWFwLEk9InZvaWQiPT09cixCPXtwYXJhbXM6dG1lKF8scCksZGVsYXk6dGhpcy5hc3Qub3B0aW9ucz8uZGVsYXl9LGVlPWQ/W106akcodCxlLHRoaXMuYXN0LmFuaW1hdGlvbixvLGEsbSxNLEIsYyx1KSxRPTA7aWYoZWUuZm9yRWFjaChRZT0+e1E9TWF0aC5tYXgoUWUuZHVyYXRpb24rUWUuZGVsYXksUSl9KSx1Lmxlbmd0aClyZXR1cm4geEcoZSx0aGlzLl90cmlnZ2VyTmFtZSxpLHIsSSxtLE0sW10sW10seCxSLFEsdSk7ZWUuZm9yRWFjaChRZT0+e2xldCBBZT1RZS5lbGVtZW50LEQ9cHMoeCxBZSxuZXcgU2V0KTtRZS5wcmVTdHlsZVByb3BzLmZvckVhY2goY2U9PkQuYWRkKGNlKSk7bGV0IHJlPXBzKFIsQWUsbmV3IFNldCk7UWUucG9zdFN0eWxlUHJvcHMuZm9yRWFjaChjZT0+cmUuYWRkKGNlKSksQWUhPT1lJiZ5LmFkZChBZSl9KTtsZXQgd2U9T3coeS52YWx1ZXMoKSk7cmV0dXJuIHhHKGUsdGhpcy5fdHJpZ2dlck5hbWUsaSxyLEksbSxNLGVlLHdlLHgsUixRKX19O2Z1bmN0aW9uIHRtZShuLHQpe2xldCBlPVhiKHQpO2ZvcihsZXQgaSBpbiBuKW4uaGFzT3duUHJvcGVydHkoaSkmJm51bGwhPW5baV0mJihlW2ldPW5baV0pO3JldHVybiBlfWZ1bmN0aW9uIENHKG4sdCxlKXtuLmhhcyh0KT9uLmhhcyhlKXx8bi5zZXQoZSxuLmdldCh0KSk6bi5oYXMoZSkmJm4uc2V0KHQsbi5nZXQoZSkpfXZhciBybWU9bmV3IFViLE1HPSJuZy1hbmltYXRlLXF1ZXVlZCIsaE89Im5nLWFuaW1hdGUtZGlzYWJsZWQiLGNtZT1bXSxHRz17bmFtZXNwYWNlSWQ6IiIsc2V0Rm9yUmVtb3ZhbDohMSxzZXRGb3JNb3ZlOiExLGhhc0FuaW1hdGlvbjohMSxyZW1vdmVkQmVmb3JlUXVlcmllZDohMX0sZG1lPXtuYW1lc3BhY2VJZDoiIixzZXRGb3JNb3ZlOiExLHNldEZvclJlbW92YWw6ITEsaGFzQW5pbWF0aW9uOiExLHJlbW92ZWRCZWZvcmVRdWVyaWVkOiEwfSxqcz0iX19uZ19yZW1vdmVkIixHYj1jbGFzc3tnZXQgcGFyYW1zKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5wYXJhbXN9Y29uc3RydWN0b3IodCxlPSIiKXt0aGlzLm5hbWVzcGFjZUlkPWU7bGV0IGk9dCYmdC5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKTtpZih0aGlzLnZhbHVlPShpP3QudmFsdWU6dCk/P251bGwsaSl7bGV0IG89WGIodCk7ZGVsZXRlIG8udmFsdWUsdGhpcy5vcHRpb25zPW99ZWxzZSB0aGlzLm9wdGlvbnM9e307dGhpcy5vcHRpb25zLnBhcmFtc3x8KHRoaXMub3B0aW9ucy5wYXJhbXM9e30pfWFic29yYk9wdGlvbnModCl7bGV0IGU9dC5wYXJhbXM7aWYoZSl7bGV0IGk9dGhpcy5vcHRpb25zLnBhcmFtcztPYmplY3Qua2V5cyhlKS5mb3JFYWNoKHI9PntudWxsPT1pW3JdJiYoaVtyXT1lW3JdKX0pfX19LEhiPSJ2b2lkIixtTz1uZXcgR2IoSGIpLFdiPWNsYXNze2NvbnN0cnVjdG9yKHQsZSxpKXt0aGlzLm5hbWVzcGFjZUlkPXQsdGhpcy50cmlnZ2VyTmFtZT1lLHRoaXMuZWxlbWVudD1pLHRoaXMuX3BsYXllcj1uZXcgcHUsdGhpcy5fY29udGFpbnNSZWFsUGxheWVyPSExLHRoaXMuX3F1ZXVlZENhbGxiYWNrcz1uZXcgTWFwLHRoaXMuZGVzdHJveWVkPSExLHRoaXMucGFyZW50UGxheWVyPW51bGwsdGhpcy5tYXJrZWRGb3JEZXN0cm95PSExLHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy5xdWV1ZWQ9ITAsdGhpcy50b3RhbFRpbWU9MH1zZXRSZWFsUGxheWVyKHQpe3RoaXMuX2NvbnRhaW5zUmVhbFBsYXllcnx8KHRoaXMuX3BsYXllcj10LHRoaXMuX3F1ZXVlZENhbGxiYWNrcy5mb3JFYWNoKChlLGkpPT57ZS5mb3JFYWNoKHI9PlJPKHQsaSx2b2lkIDAscikpfSksdGhpcy5fcXVldWVkQ2FsbGJhY2tzLmNsZWFyKCksdGhpcy5fY29udGFpbnNSZWFsUGxheWVyPSEwLHRoaXMub3ZlcnJpZGVUb3RhbFRpbWUodC50b3RhbFRpbWUpLHRoaXMucXVldWVkPSExKX1nZXRSZWFsUGxheWVyKCl7cmV0dXJuIHRoaXMuX3BsYXllcn1vdmVycmlkZVRvdGFsVGltZSh0KXt0aGlzLnRvdGFsVGltZT10fXN5bmNQbGF5ZXJFdmVudHModCl7bGV0IGU9dGhpcy5fcGxheWVyO2UudHJpZ2dlckNhbGxiYWNrJiZ0Lm9uU3RhcnQoKCk9PmUudHJpZ2dlckNhbGxiYWNrKCJzdGFydCIpKSx0Lm9uRG9uZSgoKT0+dGhpcy5maW5pc2goKSksdC5vbkRlc3Ryb3koKCk9PnRoaXMuZGVzdHJveSgpKX1fcXVldWVFdmVudCh0LGUpe3BzKHRoaXMuX3F1ZXVlZENhbGxiYWNrcyx0LFtdKS5wdXNoKGUpfW9uRG9uZSh0KXt0aGlzLnF1ZXVlZCYmdGhpcy5fcXVldWVFdmVudCgiZG9uZSIsdCksdGhpcy5fcGxheWVyLm9uRG9uZSh0KX1vblN0YXJ0KHQpe3RoaXMucXVldWVkJiZ0aGlzLl9xdWV1ZUV2ZW50KCJzdGFydCIsdCksdGhpcy5fcGxheWVyLm9uU3RhcnQodCl9b25EZXN0cm95KHQpe3RoaXMucXVldWVkJiZ0aGlzLl9xdWV1ZUV2ZW50KCJkZXN0cm95Iix0KSx0aGlzLl9wbGF5ZXIub25EZXN0cm95KHQpfWluaXQoKXt0aGlzLl9wbGF5ZXIuaW5pdCgpfWhhc1N0YXJ0ZWQoKXtyZXR1cm4hdGhpcy5xdWV1ZWQmJnRoaXMuX3BsYXllci5oYXNTdGFydGVkKCl9cGxheSgpeyF0aGlzLnF1ZXVlZCYmdGhpcy5fcGxheWVyLnBsYXkoKX1wYXVzZSgpeyF0aGlzLnF1ZXVlZCYmdGhpcy5fcGxheWVyLnBhdXNlKCl9cmVzdGFydCgpeyF0aGlzLnF1ZXVlZCYmdGhpcy5fcGxheWVyLnJlc3RhcnQoKX1maW5pc2goKXt0aGlzLl9wbGF5ZXIuZmluaXNoKCl9ZGVzdHJveSgpe3RoaXMuZGVzdHJveWVkPSEwLHRoaXMuX3BsYXllci5kZXN0cm95KCl9cmVzZXQoKXshdGhpcy5xdWV1ZWQmJnRoaXMuX3BsYXllci5yZXNldCgpfXNldFBvc2l0aW9uKHQpe3RoaXMucXVldWVkfHx0aGlzLl9wbGF5ZXIuc2V0UG9zaXRpb24odCl9Z2V0UG9zaXRpb24oKXtyZXR1cm4gdGhpcy5xdWV1ZWQ/MDp0aGlzLl9wbGF5ZXIuZ2V0UG9zaXRpb24oKX10cmlnZ2VyQ2FsbGJhY2sodCl7bGV0IGU9dGhpcy5fcGxheWVyO2UudHJpZ2dlckNhbGxiYWNrJiZlLnRyaWdnZXJDYWxsYmFjayh0KX19O2Z1bmN0aW9uIFJ3KG4pe3JldHVybiBuJiYxPT09bi5ub2RlVHlwZX1mdW5jdGlvbiB3RyhuLHQpe2xldCBlPW4uc3R5bGUuZGlzcGxheTtyZXR1cm4gbi5zdHlsZS5kaXNwbGF5PXQ/PyJub25lIixlfWZ1bmN0aW9uIFNHKG4sdCxlLGkscil7bGV0IG89W107ZS5mb3JFYWNoKGw9Pm8ucHVzaCh3RyhsKSkpO2xldCBhPVtdO2kuZm9yRWFjaCgobCxjKT0+e2xldCBkPW5ldyBNYXA7bC5mb3JFYWNoKHU9PntsZXQgcD10LmNvbXB1dGVTdHlsZShjLHUscik7ZC5zZXQodSxwKSwoIXB8fDA9PXAubGVuZ3RoKSYmKGNbanNdPWRtZSxhLnB1c2goYykpfSksbi5zZXQoYyxkKX0pO2xldCBzPTA7cmV0dXJuIGUuZm9yRWFjaChsPT53RyhsLG9bcysrXSkpLGF9ZnVuY3Rpb24gRUcobix0KXtsZXQgZT1uZXcgTWFwO2lmKG4uZm9yRWFjaChzPT5lLnNldChzLFtdKSksMD09dC5sZW5ndGgpcmV0dXJuIGU7bGV0IGk9MSxyPW5ldyBTZXQodCksbz1uZXcgTWFwO2Z1bmN0aW9uIGEocyl7aWYoIXMpcmV0dXJuIGk7bGV0IGw9by5nZXQocyk7aWYobClyZXR1cm4gbDtsZXQgYz1zLnBhcmVudE5vZGU7cmV0dXJuIGw9ZS5oYXMoYyk/YzpyLmhhcyhjKT9pOmEoYyksby5zZXQocyxsKSxsfXJldHVybiB0LmZvckVhY2gocz0+e2xldCBsPWEocyk7bCE9PWkmJmUuZ2V0KGwpLnB1c2gocyl9KSxlfWZ1bmN0aW9uIEdzKG4sdCl7bi5jbGFzc0xpc3Q/LmFkZCh0KX1mdW5jdGlvbiBTZihuLHQpe24uY2xhc3NMaXN0Py5yZW1vdmUodCl9ZnVuY3Rpb24gbW1lKG4sdCxlKXtodShlKS5vbkRvbmUoKCk9Pm4ucHJvY2Vzc0xlYXZlTm9kZSh0KSl9ZnVuY3Rpb24gV0cobix0KXtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrKyl7bGV0IGk9bltlXTtpIGluc3RhbmNlb2YgTmI/V0coaS5wbGF5ZXJzLHQpOnQucHVzaChpKX19ZnVuY3Rpb24gVEcobix0LGUpe2xldCBpPWUuZ2V0KG4pO2lmKCFpKXJldHVybiExO2xldCByPXQuZ2V0KG4pO3JldHVybiByP2kuZm9yRWFjaChvPT5yLmFkZChvKSk6dC5zZXQobixpKSxlLmRlbGV0ZShuKSwhMH12YXIgbXU9Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkpe3RoaXMuYm9keU5vZGU9dCx0aGlzLl9kcml2ZXI9ZSx0aGlzLl9ub3JtYWxpemVyPWksdGhpcy5fdHJpZ2dlckNhY2hlPXt9LHRoaXMub25SZW1vdmFsQ29tcGxldGU9KHIsbyk9Pnt9LHRoaXMuX3RyYW5zaXRpb25FbmdpbmU9bmV3IGNsYXNze19vblJlbW92YWxDb21wbGV0ZSh0LGUpe3RoaXMub25SZW1vdmFsQ29tcGxldGUodCxlKX1jb25zdHJ1Y3Rvcih0LGUsaSl7dGhpcy5ib2R5Tm9kZT10LHRoaXMuZHJpdmVyPWUsdGhpcy5fbm9ybWFsaXplcj1pLHRoaXMucGxheWVycz1bXSx0aGlzLm5ld0hvc3RFbGVtZW50cz1uZXcgTWFwLHRoaXMucGxheWVyc0J5RWxlbWVudD1uZXcgTWFwLHRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQ9bmV3IE1hcCx0aGlzLnN0YXRlc0J5RWxlbWVudD1uZXcgTWFwLHRoaXMuZGlzYWJsZWROb2Rlcz1uZXcgU2V0LHRoaXMudG90YWxBbmltYXRpb25zPTAsdGhpcy50b3RhbFF1ZXVlZFBsYXllcnM9MCx0aGlzLl9uYW1lc3BhY2VMb29rdXA9e30sdGhpcy5fbmFtZXNwYWNlTGlzdD1bXSx0aGlzLl9mbHVzaEZucz1bXSx0aGlzLl93aGVuUXVpZXRGbnM9W10sdGhpcy5uYW1lc3BhY2VzQnlIb3N0RWxlbWVudD1uZXcgTWFwLHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cz1bXSx0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHM9W10sdGhpcy5vblJlbW92YWxDb21wbGV0ZT0ocixvKT0+e319Z2V0IHF1ZXVlZFBsYXllcnMoKXtsZXQgdD1bXTtyZXR1cm4gdGhpcy5fbmFtZXNwYWNlTGlzdC5mb3JFYWNoKGU9PntlLnBsYXllcnMuZm9yRWFjaChpPT57aS5xdWV1ZWQmJnQucHVzaChpKX0pfSksdH1jcmVhdGVOYW1lc3BhY2UodCxlKXtsZXQgaT1uZXcgY2xhc3N7Y29uc3RydWN0b3IodCxlLGkpe3RoaXMuaWQ9dCx0aGlzLmhvc3RFbGVtZW50PWUsdGhpcy5fZW5naW5lPWksdGhpcy5wbGF5ZXJzPVtdLHRoaXMuX3RyaWdnZXJzPW5ldyBNYXAsdGhpcy5fcXVldWU9W10sdGhpcy5fZWxlbWVudExpc3RlbmVycz1uZXcgTWFwLHRoaXMuX2hvc3RDbGFzc05hbWU9Im5nLXRucy0iK3QsR3MoZSx0aGlzLl9ob3N0Q2xhc3NOYW1lKX1saXN0ZW4odCxlLGkscil7aWYoIXRoaXMuX3RyaWdnZXJzLmhhcyhlKSl0aHJvdyBuZXcgeHQoMzMwMiwhMSk7aWYobnVsbD09aXx8MD09aS5sZW5ndGgpdGhyb3cgbmV3IHh0KDMzMDMsITEpO2lmKCJzdGFydCIhPShuPWkpJiYiZG9uZSIhPW4pdGhyb3cgbmV3IHh0KDM0MDAsITEpO3ZhciBuO2xldCBvPXBzKHRoaXMuX2VsZW1lbnRMaXN0ZW5lcnMsdCxbXSksYT17bmFtZTplLHBoYXNlOmksY2FsbGJhY2s6cn07by5wdXNoKGEpO2xldCBzPXBzKHRoaXMuX2VuZ2luZS5zdGF0ZXNCeUVsZW1lbnQsdCxuZXcgTWFwKTtyZXR1cm4gcy5oYXMoZSl8fChHcyh0LER3KSxHcyh0LER3KyItIitlKSxzLnNldChlLG1PKSksKCk9Pnt0aGlzLl9lbmdpbmUuYWZ0ZXJGbHVzaCgoKT0+e2xldCBsPW8uaW5kZXhPZihhKTtsPj0wJiZvLnNwbGljZShsLDEpLHRoaXMuX3RyaWdnZXJzLmhhcyhlKXx8cy5kZWxldGUoZSl9KX19cmVnaXN0ZXIodCxlKXtyZXR1cm4hdGhpcy5fdHJpZ2dlcnMuaGFzKHQpJiYodGhpcy5fdHJpZ2dlcnMuc2V0KHQsZSksITApfV9nZXRUcmlnZ2VyKHQpe2xldCBlPXRoaXMuX3RyaWdnZXJzLmdldCh0KTtpZighZSl0aHJvdyBuZXcgeHQoMzQwMSwhMSk7cmV0dXJuIGV9dHJpZ2dlcih0LGUsaSxyPSEwKXtsZXQgbz10aGlzLl9nZXRUcmlnZ2VyKGUpLGE9bmV3IFdiKHRoaXMuaWQsZSx0KSxzPXRoaXMuX2VuZ2luZS5zdGF0ZXNCeUVsZW1lbnQuZ2V0KHQpO3N8fChHcyh0LER3KSxHcyh0LER3KyItIitlKSx0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LnNldCh0LHM9bmV3IE1hcCkpO2xldCBsPXMuZ2V0KGUpLGM9bmV3IEdiKGksdGhpcy5pZCk7aWYoIShpJiZpLmhhc093blByb3BlcnR5KCJ2YWx1ZSIpKSYmbCYmYy5hYnNvcmJPcHRpb25zKGwub3B0aW9ucykscy5zZXQoZSxjKSxsfHwobD1tTyksYy52YWx1ZSE9PUhiJiZsLnZhbHVlPT09Yy52YWx1ZSl7aWYoIWZ1bmN0aW9uKG4sdCl7bGV0IGU9T2JqZWN0LmtleXMobiksaT1PYmplY3Qua2V5cyh0KTtpZihlLmxlbmd0aCE9aS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspe2xldCBvPWVbcl07aWYoIXQuaGFzT3duUHJvcGVydHkobyl8fG5bb10hPT10W29dKXJldHVybiExfXJldHVybiEwfShsLnBhcmFtcyxjLnBhcmFtcykpe2xldCBfPVtdLE09by5tYXRjaFN0eWxlcyhsLnZhbHVlLGwucGFyYW1zLF8pLHk9by5tYXRjaFN0eWxlcyhjLnZhbHVlLGMucGFyYW1zLF8pO18ubGVuZ3RoP3RoaXMuX2VuZ2luZS5yZXBvcnRFcnJvcihfKTp0aGlzLl9lbmdpbmUuYWZ0ZXJGbHVzaCgoKT0+e3NoKHQsTSksYmModCx5KX0pfXJldHVybn1sZXQgcD1wcyh0aGlzLl9lbmdpbmUucGxheWVyc0J5RWxlbWVudCx0LFtdKTtwLmZvckVhY2goXz0+e18ubmFtZXNwYWNlSWQ9PXRoaXMuaWQmJl8udHJpZ2dlck5hbWU9PWUmJl8ucXVldWVkJiZfLmRlc3Ryb3koKX0pO2xldCBoPW8ubWF0Y2hUcmFuc2l0aW9uKGwudmFsdWUsYy52YWx1ZSx0LGMucGFyYW1zKSxtPSExO2lmKCFoKXtpZighcilyZXR1cm47aD1vLmZhbGxiYWNrVHJhbnNpdGlvbixtPSEwfXJldHVybiB0aGlzLl9lbmdpbmUudG90YWxRdWV1ZWRQbGF5ZXJzKyssdGhpcy5fcXVldWUucHVzaCh7ZWxlbWVudDp0LHRyaWdnZXJOYW1lOmUsdHJhbnNpdGlvbjpoLGZyb21TdGF0ZTpsLHRvU3RhdGU6YyxwbGF5ZXI6YSxpc0ZhbGxiYWNrVHJhbnNpdGlvbjptfSksbXx8KEdzKHQsTUcpLGEub25TdGFydCgoKT0+e1NmKHQsTUcpfSkpLGEub25Eb25lKCgpPT57bGV0IF89dGhpcy5wbGF5ZXJzLmluZGV4T2YoYSk7Xz49MCYmdGhpcy5wbGF5ZXJzLnNwbGljZShfLDEpO2xldCBNPXRoaXMuX2VuZ2luZS5wbGF5ZXJzQnlFbGVtZW50LmdldCh0KTtpZihNKXtsZXQgeT1NLmluZGV4T2YoYSk7eT49MCYmTS5zcGxpY2UoeSwxKX19KSx0aGlzLnBsYXllcnMucHVzaChhKSxwLnB1c2goYSksYX1kZXJlZ2lzdGVyKHQpe3RoaXMuX3RyaWdnZXJzLmRlbGV0ZSh0KSx0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmZvckVhY2goZT0+ZS5kZWxldGUodCkpLHRoaXMuX2VsZW1lbnRMaXN0ZW5lcnMuZm9yRWFjaCgoZSxpKT0+e3RoaXMuX2VsZW1lbnRMaXN0ZW5lcnMuc2V0KGksZS5maWx0ZXIocj0+ci5uYW1lIT10KSl9KX1jbGVhckVsZW1lbnRDYWNoZSh0KXt0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmRlbGV0ZSh0KSx0aGlzLl9lbGVtZW50TGlzdGVuZXJzLmRlbGV0ZSh0KTtsZXQgZT10aGlzLl9lbmdpbmUucGxheWVyc0J5RWxlbWVudC5nZXQodCk7ZSYmKGUuZm9yRWFjaChpPT5pLmRlc3Ryb3koKSksdGhpcy5fZW5naW5lLnBsYXllcnNCeUVsZW1lbnQuZGVsZXRlKHQpKX1fc2lnbmFsUmVtb3ZhbEZvcklubmVyVHJpZ2dlcnModCxlKXtsZXQgaT10aGlzLl9lbmdpbmUuZHJpdmVyLnF1ZXJ5KHQsUHcsITApO2kuZm9yRWFjaChyPT57aWYocltqc10pcmV0dXJuO2xldCBvPXRoaXMuX2VuZ2luZS5mZXRjaE5hbWVzcGFjZXNCeUVsZW1lbnQocik7by5zaXplP28uZm9yRWFjaChhPT5hLnRyaWdnZXJMZWF2ZUFuaW1hdGlvbihyLGUsITEsITApKTp0aGlzLmNsZWFyRWxlbWVudENhY2hlKHIpfSksdGhpcy5fZW5naW5lLmFmdGVyRmx1c2hBbmltYXRpb25zRG9uZSgoKT0+aS5mb3JFYWNoKHI9PnRoaXMuY2xlYXJFbGVtZW50Q2FjaGUocikpKX10cmlnZ2VyTGVhdmVBbmltYXRpb24odCxlLGkscil7bGV0IG89dGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5nZXQodCksYT1uZXcgTWFwO2lmKG8pe2xldCBzPVtdO2lmKG8uZm9yRWFjaCgobCxjKT0+e2lmKGEuc2V0KGMsbC52YWx1ZSksdGhpcy5fdHJpZ2dlcnMuaGFzKGMpKXtsZXQgZD10aGlzLnRyaWdnZXIodCxjLEhiLHIpO2QmJnMucHVzaChkKX19KSxzLmxlbmd0aClyZXR1cm4gdGhpcy5fZW5naW5lLm1hcmtFbGVtZW50QXNSZW1vdmVkKHRoaXMuaWQsdCwhMCxlLGEpLGkmJmh1KHMpLm9uRG9uZSgoKT0+dGhpcy5fZW5naW5lLnByb2Nlc3NMZWF2ZU5vZGUodCkpLCEwfXJldHVybiExfXByZXBhcmVMZWF2ZUFuaW1hdGlvbkxpc3RlbmVycyh0KXtsZXQgZT10aGlzLl9lbGVtZW50TGlzdGVuZXJzLmdldCh0KSxpPXRoaXMuX2VuZ2luZS5zdGF0ZXNCeUVsZW1lbnQuZ2V0KHQpO2lmKGUmJmkpe2xldCByPW5ldyBTZXQ7ZS5mb3JFYWNoKG89PntsZXQgYT1vLm5hbWU7aWYoci5oYXMoYSkpcmV0dXJuO3IuYWRkKGEpO2xldCBsPXRoaXMuX3RyaWdnZXJzLmdldChhKS5mYWxsYmFja1RyYW5zaXRpb24sYz1pLmdldChhKXx8bU8sZD1uZXcgR2IoSGIpLHU9bmV3IFdiKHRoaXMuaWQsYSx0KTt0aGlzLl9lbmdpbmUudG90YWxRdWV1ZWRQbGF5ZXJzKyssdGhpcy5fcXVldWUucHVzaCh7ZWxlbWVudDp0LHRyaWdnZXJOYW1lOmEsdHJhbnNpdGlvbjpsLGZyb21TdGF0ZTpjLHRvU3RhdGU6ZCxwbGF5ZXI6dSxpc0ZhbGxiYWNrVHJhbnNpdGlvbjohMH0pfSl9fXJlbW92ZU5vZGUodCxlKXtsZXQgaT10aGlzLl9lbmdpbmU7aWYodC5jaGlsZEVsZW1lbnRDb3VudCYmdGhpcy5fc2lnbmFsUmVtb3ZhbEZvcklubmVyVHJpZ2dlcnModCxlKSx0aGlzLnRyaWdnZXJMZWF2ZUFuaW1hdGlvbih0LGUsITApKXJldHVybjtsZXQgcj0hMTtpZihpLnRvdGFsQW5pbWF0aW9ucyl7bGV0IG89aS5wbGF5ZXJzLmxlbmd0aD9pLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LmdldCh0KTpbXTtpZihvJiZvLmxlbmd0aClyPSEwO2Vsc2V7bGV0IGE9dDtmb3IoO2E9YS5wYXJlbnROb2RlOylpZihpLnN0YXRlc0J5RWxlbWVudC5nZXQoYSkpe3I9ITA7YnJlYWt9fX1pZih0aGlzLnByZXBhcmVMZWF2ZUFuaW1hdGlvbkxpc3RlbmVycyh0KSxyKWkubWFya0VsZW1lbnRBc1JlbW92ZWQodGhpcy5pZCx0LCExLGUpO2Vsc2V7bGV0IG89dFtqc107KCFvfHxvPT09R0cpJiYoaS5hZnRlckZsdXNoKCgpPT50aGlzLmNsZWFyRWxlbWVudENhY2hlKHQpKSxpLmRlc3Ryb3lJbm5lckFuaW1hdGlvbnModCksaS5fb25SZW1vdmFsQ29tcGxldGUodCxlKSl9fWluc2VydE5vZGUodCxlKXtHcyh0LHRoaXMuX2hvc3RDbGFzc05hbWUpfWRyYWluUXVldWVkVHJhbnNpdGlvbnModCl7bGV0IGU9W107cmV0dXJuIHRoaXMuX3F1ZXVlLmZvckVhY2goaT0+e2xldCByPWkucGxheWVyO2lmKHIuZGVzdHJveWVkKXJldHVybjtsZXQgbz1pLmVsZW1lbnQsYT10aGlzLl9lbGVtZW50TGlzdGVuZXJzLmdldChvKTthJiZhLmZvckVhY2gocz0+e2lmKHMubmFtZT09aS50cmlnZ2VyTmFtZSl7bGV0IGw9UE8obyxpLnRyaWdnZXJOYW1lLGkuZnJvbVN0YXRlLnZhbHVlLGkudG9TdGF0ZS52YWx1ZSk7bC5fZGF0YT10LFJPKGkucGxheWVyLHMucGhhc2UsbCxzLmNhbGxiYWNrKX19KSxyLm1hcmtlZEZvckRlc3Ryb3k/dGhpcy5fZW5naW5lLmFmdGVyRmx1c2goKCk9PntyLmRlc3Ryb3koKX0pOmUucHVzaChpKX0pLHRoaXMuX3F1ZXVlPVtdLGUuc29ydCgoaSxyKT0+e2xldCBvPWkudHJhbnNpdGlvbi5hc3QuZGVwQ291bnQsYT1yLnRyYW5zaXRpb24uYXN0LmRlcENvdW50O3JldHVybiAwPT1vfHwwPT1hP28tYTp0aGlzLl9lbmdpbmUuZHJpdmVyLmNvbnRhaW5zRWxlbWVudChpLmVsZW1lbnQsci5lbGVtZW50KT8xOi0xfSl9ZGVzdHJveSh0KXt0aGlzLnBsYXllcnMuZm9yRWFjaChlPT5lLmRlc3Ryb3koKSksdGhpcy5fc2lnbmFsUmVtb3ZhbEZvcklubmVyVHJpZ2dlcnModGhpcy5ob3N0RWxlbWVudCx0KX1lbGVtZW50Q29udGFpbnNEYXRhKHQpe2xldCBlPSExO3JldHVybiB0aGlzLl9lbGVtZW50TGlzdGVuZXJzLmhhcyh0KSYmKGU9ITApLGU9ISF0aGlzLl9xdWV1ZS5maW5kKGk9PmkuZWxlbWVudD09PXQpfHxlLGV9fSh0LGUsdGhpcyk7cmV0dXJuIHRoaXMuYm9keU5vZGUmJnRoaXMuZHJpdmVyLmNvbnRhaW5zRWxlbWVudCh0aGlzLmJvZHlOb2RlLGUpP3RoaXMuX2JhbGFuY2VOYW1lc3BhY2VMaXN0KGksZSk6KHRoaXMubmV3SG9zdEVsZW1lbnRzLnNldChlLGkpLHRoaXMuY29sbGVjdEVudGVyRWxlbWVudChlKSksdGhpcy5fbmFtZXNwYWNlTG9va3VwW3RdPWl9X2JhbGFuY2VOYW1lc3BhY2VMaXN0KHQsZSl7bGV0IGk9dGhpcy5fbmFtZXNwYWNlTGlzdCxyPXRoaXMubmFtZXNwYWNlc0J5SG9zdEVsZW1lbnQ7aWYoaS5sZW5ndGgtMT49MCl7bGV0IGE9ITEscz10aGlzLmRyaXZlci5nZXRQYXJlbnRFbGVtZW50KGUpO2Zvcig7czspe2xldCBsPXIuZ2V0KHMpO2lmKGwpe2xldCBjPWkuaW5kZXhPZihsKTtpLnNwbGljZShjKzEsMCx0KSxhPSEwO2JyZWFrfXM9dGhpcy5kcml2ZXIuZ2V0UGFyZW50RWxlbWVudChzKX1hfHxpLnVuc2hpZnQodCl9ZWxzZSBpLnB1c2godCk7cmV0dXJuIHIuc2V0KGUsdCksdH1yZWdpc3Rlcih0LGUpe2xldCBpPXRoaXMuX25hbWVzcGFjZUxvb2t1cFt0XTtyZXR1cm4gaXx8KGk9dGhpcy5jcmVhdGVOYW1lc3BhY2UodCxlKSksaX1yZWdpc3RlclRyaWdnZXIodCxlLGkpe2xldCByPXRoaXMuX25hbWVzcGFjZUxvb2t1cFt0XTtyJiZyLnJlZ2lzdGVyKGUsaSkmJnRoaXMudG90YWxBbmltYXRpb25zKyt9ZGVzdHJveSh0LGUpe2lmKCF0KXJldHVybjtsZXQgaT10aGlzLl9mZXRjaE5hbWVzcGFjZSh0KTt0aGlzLmFmdGVyRmx1c2goKCk9Pnt0aGlzLm5hbWVzcGFjZXNCeUhvc3RFbGVtZW50LmRlbGV0ZShpLmhvc3RFbGVtZW50KSxkZWxldGUgdGhpcy5fbmFtZXNwYWNlTG9va3VwW3RdO2xldCByPXRoaXMuX25hbWVzcGFjZUxpc3QuaW5kZXhPZihpKTtyPj0wJiZ0aGlzLl9uYW1lc3BhY2VMaXN0LnNwbGljZShyLDEpfSksdGhpcy5hZnRlckZsdXNoQW5pbWF0aW9uc0RvbmUoKCk9PmkuZGVzdHJveShlKSl9X2ZldGNoTmFtZXNwYWNlKHQpe3JldHVybiB0aGlzLl9uYW1lc3BhY2VMb29rdXBbdF19ZmV0Y2hOYW1lc3BhY2VzQnlFbGVtZW50KHQpe2xldCBlPW5ldyBTZXQsaT10aGlzLnN0YXRlc0J5RWxlbWVudC5nZXQodCk7aWYoaSlmb3IobGV0IHIgb2YgaS52YWx1ZXMoKSlpZihyLm5hbWVzcGFjZUlkKXtsZXQgbz10aGlzLl9mZXRjaE5hbWVzcGFjZShyLm5hbWVzcGFjZUlkKTtvJiZlLmFkZChvKX1yZXR1cm4gZX10cmlnZ2VyKHQsZSxpLHIpe2lmKFJ3KGUpKXtsZXQgbz10aGlzLl9mZXRjaE5hbWVzcGFjZSh0KTtpZihvKXJldHVybiBvLnRyaWdnZXIoZSxpLHIpLCEwfXJldHVybiExfWluc2VydE5vZGUodCxlLGkscil7aWYoIVJ3KGUpKXJldHVybjtsZXQgbz1lW2pzXTtpZihvJiZvLnNldEZvclJlbW92YWwpe28uc2V0Rm9yUmVtb3ZhbD0hMSxvLnNldEZvck1vdmU9ITA7bGV0IGE9dGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLmluZGV4T2YoZSk7YT49MCYmdGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLnNwbGljZShhLDEpfWlmKHQpe2xldCBhPXRoaXMuX2ZldGNoTmFtZXNwYWNlKHQpO2EmJmEuaW5zZXJ0Tm9kZShlLGkpfXImJnRoaXMuY29sbGVjdEVudGVyRWxlbWVudChlKX1jb2xsZWN0RW50ZXJFbGVtZW50KHQpe3RoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5wdXNoKHQpfW1hcmtFbGVtZW50QXNEaXNhYmxlZCh0LGUpe2U/dGhpcy5kaXNhYmxlZE5vZGVzLmhhcyh0KXx8KHRoaXMuZGlzYWJsZWROb2Rlcy5hZGQodCksR3ModCxoTykpOnRoaXMuZGlzYWJsZWROb2Rlcy5oYXModCkmJih0aGlzLmRpc2FibGVkTm9kZXMuZGVsZXRlKHQpLFNmKHQsaE8pKX1yZW1vdmVOb2RlKHQsZSxpLHIpe2lmKFJ3KGUpKXtsZXQgbz10P3RoaXMuX2ZldGNoTmFtZXNwYWNlKHQpOm51bGw7aWYobz9vLnJlbW92ZU5vZGUoZSxyKTp0aGlzLm1hcmtFbGVtZW50QXNSZW1vdmVkKHQsZSwhMSxyKSxpKXtsZXQgYT10aGlzLm5hbWVzcGFjZXNCeUhvc3RFbGVtZW50LmdldChlKTthJiZhLmlkIT09dCYmYS5yZW1vdmVOb2RlKGUscil9fWVsc2UgdGhpcy5fb25SZW1vdmFsQ29tcGxldGUoZSxyKX1tYXJrRWxlbWVudEFzUmVtb3ZlZCh0LGUsaSxyLG8pe3RoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5wdXNoKGUpLGVbanNdPXtuYW1lc3BhY2VJZDp0LHNldEZvclJlbW92YWw6cixoYXNBbmltYXRpb246aSxyZW1vdmVkQmVmb3JlUXVlcmllZDohMSxwcmV2aW91c1RyaWdnZXJzVmFsdWVzOm99fWxpc3Rlbih0LGUsaSxyLG8pe3JldHVybiBSdyhlKT90aGlzLl9mZXRjaE5hbWVzcGFjZSh0KS5saXN0ZW4oZSxpLHIsbyk6KCk9Pnt9fV9idWlsZEluc3RydWN0aW9uKHQsZSxpLHIsbyl7cmV0dXJuIHQudHJhbnNpdGlvbi5idWlsZCh0aGlzLmRyaXZlcix0LmVsZW1lbnQsdC5mcm9tU3RhdGUudmFsdWUsdC50b1N0YXRlLnZhbHVlLGkscix0LmZyb21TdGF0ZS5vcHRpb25zLHQudG9TdGF0ZS5vcHRpb25zLGUsbyl9ZGVzdHJveUlubmVyQW5pbWF0aW9ucyh0KXtsZXQgZT10aGlzLmRyaXZlci5xdWVyeSh0LFB3LCEwKTtlLmZvckVhY2goaT0+dGhpcy5kZXN0cm95QWN0aXZlQW5pbWF0aW9uc0ZvckVsZW1lbnQoaSkpLDAhPXRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQuc2l6ZSYmKGU9dGhpcy5kcml2ZXIucXVlcnkodCxiTywhMCksZS5mb3JFYWNoKGk9PnRoaXMuZmluaXNoQWN0aXZlUXVlcmllZEFuaW1hdGlvbk9uRWxlbWVudChpKSkpfWRlc3Ryb3lBY3RpdmVBbmltYXRpb25zRm9yRWxlbWVudCh0KXtsZXQgZT10aGlzLnBsYXllcnNCeUVsZW1lbnQuZ2V0KHQpO2UmJmUuZm9yRWFjaChpPT57aS5xdWV1ZWQ/aS5tYXJrZWRGb3JEZXN0cm95PSEwOmkuZGVzdHJveSgpfSl9ZmluaXNoQWN0aXZlUXVlcmllZEFuaW1hdGlvbk9uRWxlbWVudCh0KXtsZXQgZT10aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LmdldCh0KTtlJiZlLmZvckVhY2goaT0+aS5maW5pc2goKSl9d2hlblJlbmRlcmluZ0RvbmUoKXtyZXR1cm4gbmV3IFByb21pc2UodD0+e2lmKHRoaXMucGxheWVycy5sZW5ndGgpcmV0dXJuIGh1KHRoaXMucGxheWVycykub25Eb25lKCgpPT50KCkpO3QoKX0pfXByb2Nlc3NMZWF2ZU5vZGUodCl7bGV0IGU9dFtqc107aWYoZSYmZS5zZXRGb3JSZW1vdmFsKXtpZih0W2pzXT1HRyxlLm5hbWVzcGFjZUlkKXt0aGlzLmRlc3Ryb3lJbm5lckFuaW1hdGlvbnModCk7bGV0IGk9dGhpcy5fZmV0Y2hOYW1lc3BhY2UoZS5uYW1lc3BhY2VJZCk7aSYmaS5jbGVhckVsZW1lbnRDYWNoZSh0KX10aGlzLl9vblJlbW92YWxDb21wbGV0ZSh0LGUuc2V0Rm9yUmVtb3ZhbCl9dC5jbGFzc0xpc3Q/LmNvbnRhaW5zKGhPKSYmdGhpcy5tYXJrRWxlbWVudEFzRGlzYWJsZWQodCwhMSksdGhpcy5kcml2ZXIucXVlcnkodCwiLm5nLWFuaW1hdGUtZGlzYWJsZWQiLCEwKS5mb3JFYWNoKGk9Pnt0aGlzLm1hcmtFbGVtZW50QXNEaXNhYmxlZChpLCExKX0pfWZsdXNoKHQ9LTEpe2xldCBlPVtdO2lmKHRoaXMubmV3SG9zdEVsZW1lbnRzLnNpemUmJih0aGlzLm5ld0hvc3RFbGVtZW50cy5mb3JFYWNoKChpLHIpPT50aGlzLl9iYWxhbmNlTmFtZXNwYWNlTGlzdChpLHIpKSx0aGlzLm5ld0hvc3RFbGVtZW50cy5jbGVhcigpKSx0aGlzLnRvdGFsQW5pbWF0aW9ucyYmdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzLmxlbmd0aClmb3IobGV0IGk9MDtpPHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5sZW5ndGg7aSsrKUdzKHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50c1tpXSwibmctc3Rhci1pbnNlcnRlZCIpO2lmKHRoaXMuX25hbWVzcGFjZUxpc3QubGVuZ3RoJiYodGhpcy50b3RhbFF1ZXVlZFBsYXllcnN8fHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5sZW5ndGgpKXtsZXQgaT1bXTt0cnl7ZT10aGlzLl9mbHVzaEFuaW1hdGlvbnMoaSx0KX1maW5hbGx5e2ZvcihsZXQgcj0wO3I8aS5sZW5ndGg7cisrKWlbcl0oKX19ZWxzZSBmb3IobGV0IGk9MDtpPHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5sZW5ndGg7aSsrKXRoaXMucHJvY2Vzc0xlYXZlTm9kZSh0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHNbaV0pO2lmKHRoaXMudG90YWxRdWV1ZWRQbGF5ZXJzPTAsdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzLmxlbmd0aD0wLHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5sZW5ndGg9MCx0aGlzLl9mbHVzaEZucy5mb3JFYWNoKGk9PmkoKSksdGhpcy5fZmx1c2hGbnM9W10sdGhpcy5fd2hlblF1aWV0Rm5zLmxlbmd0aCl7bGV0IGk9dGhpcy5fd2hlblF1aWV0Rm5zO3RoaXMuX3doZW5RdWlldEZucz1bXSxlLmxlbmd0aD9odShlKS5vbkRvbmUoKCk9PntpLmZvckVhY2gocj0+cigpKX0pOmkuZm9yRWFjaChyPT5yKCkpfX1yZXBvcnRFcnJvcih0KXt0aHJvdyBuZXcgeHQoMzQwMiwhMSl9X2ZsdXNoQW5pbWF0aW9ucyh0LGUpe2xldCBpPW5ldyBVYixyPVtdLG89bmV3IE1hcCxhPVtdLHM9bmV3IE1hcCxsPW5ldyBNYXAsYz1uZXcgTWFwLGQ9bmV3IFNldDt0aGlzLmRpc2FibGVkTm9kZXMuZm9yRWFjaCgkPT57ZC5hZGQoJCk7bGV0IGRlPXRoaXMuZHJpdmVyLnF1ZXJ5KCQsIi5uZy1hbmltYXRlLXF1ZXVlZCIsITApO2ZvcihsZXQgcGU9MDtwZTxkZS5sZW5ndGg7cGUrKylkLmFkZChkZVtwZV0pfSk7bGV0IHU9dGhpcy5ib2R5Tm9kZSxwPUFycmF5LmZyb20odGhpcy5zdGF0ZXNCeUVsZW1lbnQua2V5cygpKSxoPUVHKHAsdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzKSxtPW5ldyBNYXAsXz0wO2guZm9yRWFjaCgoJCxkZSk9PntsZXQgcGU9T0crXysrO20uc2V0KGRlLHBlKSwkLmZvckVhY2goR2U9PkdzKEdlLHBlKSl9KTtsZXQgTT1bXSx5PW5ldyBTZXQseD1uZXcgU2V0O2ZvcihsZXQgJD0wOyQ8dGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLmxlbmd0aDskKyspe2xldCBkZT10aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHNbJF0scGU9ZGVbanNdO3BlJiZwZS5zZXRGb3JSZW1vdmFsJiYoTS5wdXNoKGRlKSx5LmFkZChkZSkscGUuaGFzQW5pbWF0aW9uP3RoaXMuZHJpdmVyLnF1ZXJ5KGRlLCIubmctc3Rhci1pbnNlcnRlZCIsITApLmZvckVhY2goR2U9PnkuYWRkKEdlKSk6eC5hZGQoZGUpKX1sZXQgUj1uZXcgTWFwLEk9RUcocCxBcnJheS5mcm9tKHkpKTtJLmZvckVhY2goKCQsZGUpPT57bGV0IHBlPV9PK18rKztSLnNldChkZSxwZSksJC5mb3JFYWNoKEdlPT5HcyhHZSxwZSkpfSksdC5wdXNoKCgpPT57aC5mb3JFYWNoKCgkLGRlKT0+e2xldCBwZT1tLmdldChkZSk7JC5mb3JFYWNoKEdlPT5TZihHZSxwZSkpfSksSS5mb3JFYWNoKCgkLGRlKT0+e2xldCBwZT1SLmdldChkZSk7JC5mb3JFYWNoKEdlPT5TZihHZSxwZSkpfSksTS5mb3JFYWNoKCQ9Pnt0aGlzLnByb2Nlc3NMZWF2ZU5vZGUoJCl9KX0pO2xldCBCPVtdLGVlPVtdO2ZvcihsZXQgJD10aGlzLl9uYW1lc3BhY2VMaXN0Lmxlbmd0aC0xOyQ+PTA7JC0tKXRoaXMuX25hbWVzcGFjZUxpc3RbJF0uZHJhaW5RdWV1ZWRUcmFuc2l0aW9ucyhlKS5mb3JFYWNoKHBlPT57bGV0IEdlPXBlLnBsYXllcixTZT1wZS5lbGVtZW50O2lmKEIucHVzaChHZSksdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzLmxlbmd0aCl7bGV0IHd0PVNlW2pzXTtpZih3dCYmd3Quc2V0Rm9yTW92ZSl7aWYod3QucHJldmlvdXNUcmlnZ2Vyc1ZhbHVlcyYmd3QucHJldmlvdXNUcmlnZ2Vyc1ZhbHVlcy5oYXMocGUudHJpZ2dlck5hbWUpKXtsZXQgb249d3QucHJldmlvdXNUcmlnZ2Vyc1ZhbHVlcy5nZXQocGUudHJpZ2dlck5hbWUpLENlPXRoaXMuc3RhdGVzQnlFbGVtZW50LmdldChwZS5lbGVtZW50KTtpZihDZSYmQ2UuaGFzKHBlLnRyaWdnZXJOYW1lKSl7bGV0IG10PUNlLmdldChwZS50cmlnZ2VyTmFtZSk7bXQudmFsdWU9b24sQ2Uuc2V0KHBlLnRyaWdnZXJOYW1lLG10KX19cmV0dXJuIHZvaWQgR2UuZGVzdHJveSgpfX1sZXQgRmU9IXV8fCF0aGlzLmRyaXZlci5jb250YWluc0VsZW1lbnQodSxTZSksbHQ9Ui5nZXQoU2UpLE10PW0uZ2V0KFNlKSxwdD10aGlzLl9idWlsZEluc3RydWN0aW9uKHBlLGksTXQsbHQsRmUpO2lmKHB0LmVycm9ycyYmcHQuZXJyb3JzLmxlbmd0aClyZXR1cm4gdm9pZCBlZS5wdXNoKHB0KTtpZihGZSlyZXR1cm4gR2Uub25TdGFydCgoKT0+c2goU2UscHQuZnJvbVN0eWxlcykpLEdlLm9uRGVzdHJveSgoKT0+YmMoU2UscHQudG9TdHlsZXMpKSx2b2lkIHIucHVzaChHZSk7aWYocGUuaXNGYWxsYmFja1RyYW5zaXRpb24pcmV0dXJuIEdlLm9uU3RhcnQoKCk9PnNoKFNlLHB0LmZyb21TdHlsZXMpKSxHZS5vbkRlc3Ryb3koKCk9PmJjKFNlLHB0LnRvU3R5bGVzKSksdm9pZCByLnB1c2goR2UpO2xldCBrZT1bXTtwdC50aW1lbGluZXMuZm9yRWFjaCh3dD0+e3d0LnN0cmV0Y2hTdGFydGluZ0tleWZyYW1lPSEwLHRoaXMuZGlzYWJsZWROb2Rlcy5oYXMod3QuZWxlbWVudCl8fGtlLnB1c2god3QpfSkscHQudGltZWxpbmVzPWtlLGkuYXBwZW5kKFNlLHB0LnRpbWVsaW5lcyksYS5wdXNoKHtpbnN0cnVjdGlvbjpwdCxwbGF5ZXI6R2UsZWxlbWVudDpTZX0pLHB0LnF1ZXJpZWRFbGVtZW50cy5mb3JFYWNoKHd0PT5wcyhzLHd0LFtdKS5wdXNoKEdlKSkscHQucHJlU3R5bGVQcm9wcy5mb3JFYWNoKCh3dCxvbik9PntpZih3dC5zaXplKXtsZXQgQ2U9bC5nZXQob24pO0NlfHxsLnNldChvbixDZT1uZXcgU2V0KSx3dC5mb3JFYWNoKChtdCxodCk9PkNlLmFkZChodCkpfX0pLHB0LnBvc3RTdHlsZVByb3BzLmZvckVhY2goKHd0LG9uKT0+e2xldCBDZT1jLmdldChvbik7Q2V8fGMuc2V0KG9uLENlPW5ldyBTZXQpLHd0LmZvckVhY2goKG10LGh0KT0+Q2UuYWRkKGh0KSl9KX0pO2lmKGVlLmxlbmd0aCl7bGV0ICQ9W107ZWUuZm9yRWFjaChkZT0+eyQucHVzaChuZXcgeHQoMzUwNSwhMSkpfSksQi5mb3JFYWNoKGRlPT5kZS5kZXN0cm95KCkpLHRoaXMucmVwb3J0RXJyb3IoJCl9bGV0IFE9bmV3IE1hcCx3ZT1uZXcgTWFwO2EuZm9yRWFjaCgkPT57bGV0IGRlPSQuZWxlbWVudDtpLmhhcyhkZSkmJih3ZS5zZXQoZGUsZGUpLHRoaXMuX2JlZm9yZUFuaW1hdGlvbkJ1aWxkKCQucGxheWVyLm5hbWVzcGFjZUlkLCQuaW5zdHJ1Y3Rpb24sUSkpfSksci5mb3JFYWNoKCQ9PntsZXQgZGU9JC5lbGVtZW50O3RoaXMuX2dldFByZXZpb3VzUGxheWVycyhkZSwhMSwkLm5hbWVzcGFjZUlkLCQudHJpZ2dlck5hbWUsbnVsbCkuZm9yRWFjaChHZT0+e3BzKFEsZGUsW10pLnB1c2goR2UpLEdlLmRlc3Ryb3koKX0pfSk7bGV0IFFlPU0uZmlsdGVyKCQ9PlRHKCQsbCxjKSksQWU9bmV3IE1hcDtTRyhBZSx0aGlzLmRyaXZlcix4LGMsX2MpLmZvckVhY2goJD0+e1RHKCQsbCxjKSYmUWUucHVzaCgkKX0pO2xldCByZT1uZXcgTWFwO2guZm9yRWFjaCgoJCxkZSk9PntTRyhyZSx0aGlzLmRyaXZlcixuZXcgU2V0KCQpLGwsVHcpfSksUWUuZm9yRWFjaCgkPT57bGV0IGRlPUFlLmdldCgkKSxwZT1yZS5nZXQoJCk7QWUuc2V0KCQsbmV3IE1hcChbLi4uQXJyYXkuZnJvbShkZT8uZW50cmllcygpPz9bXSksLi4uQXJyYXkuZnJvbShwZT8uZW50cmllcygpPz9bXSldKSl9KTtsZXQgY2U9W10saGU9W10sX2U9e307YS5mb3JFYWNoKCQ9PntsZXR7ZWxlbWVudDpkZSxwbGF5ZXI6cGUsaW5zdHJ1Y3Rpb246R2V9PSQ7aWYoaS5oYXMoZGUpKXtpZihkLmhhcyhkZSkpcmV0dXJuIHBlLm9uRGVzdHJveSgoKT0+YmMoZGUsR2UudG9TdHlsZXMpKSxwZS5kaXNhYmxlZD0hMCxwZS5vdmVycmlkZVRvdGFsVGltZShHZS50b3RhbFRpbWUpLHZvaWQgci5wdXNoKHBlKTtsZXQgU2U9X2U7aWYod2Uuc2l6ZT4xKXtsZXQgbHQ9ZGUsTXQ9W107Zm9yKDtsdD1sdC5wYXJlbnROb2RlOyl7bGV0IHB0PXdlLmdldChsdCk7aWYocHQpe1NlPXB0O2JyZWFrfU10LnB1c2gobHQpfU10LmZvckVhY2gocHQ9PndlLnNldChwdCxTZSkpfWxldCBGZT10aGlzLl9idWlsZEFuaW1hdGlvbihwZS5uYW1lc3BhY2VJZCxHZSxRLG8scmUsQWUpO2lmKHBlLnNldFJlYWxQbGF5ZXIoRmUpLFNlPT09X2UpY2UucHVzaChwZSk7ZWxzZXtsZXQgbHQ9dGhpcy5wbGF5ZXJzQnlFbGVtZW50LmdldChTZSk7bHQmJmx0Lmxlbmd0aCYmKHBlLnBhcmVudFBsYXllcj1odShsdCkpLHIucHVzaChwZSl9fWVsc2Ugc2goZGUsR2UuZnJvbVN0eWxlcykscGUub25EZXN0cm95KCgpPT5iYyhkZSxHZS50b1N0eWxlcykpLGhlLnB1c2gocGUpLGQuaGFzKGRlKSYmci5wdXNoKHBlKX0pLGhlLmZvckVhY2goJD0+e2xldCBkZT1vLmdldCgkLmVsZW1lbnQpO2lmKGRlJiZkZS5sZW5ndGgpe2xldCBwZT1odShkZSk7JC5zZXRSZWFsUGxheWVyKHBlKX19KSxyLmZvckVhY2goJD0+eyQucGFyZW50UGxheWVyPyQuc3luY1BsYXllckV2ZW50cygkLnBhcmVudFBsYXllcik6JC5kZXN0cm95KCl9KTtmb3IobGV0ICQ9MDskPE0ubGVuZ3RoOyQrKyl7bGV0IGRlPU1bJF0scGU9ZGVbanNdO2lmKFNmKGRlLF9PKSxwZSYmcGUuaGFzQW5pbWF0aW9uKWNvbnRpbnVlO2xldCBHZT1bXTtpZihzLnNpemUpe2xldCBGZT1zLmdldChkZSk7RmUmJkZlLmxlbmd0aCYmR2UucHVzaCguLi5GZSk7bGV0IGx0PXRoaXMuZHJpdmVyLnF1ZXJ5KGRlLGJPLCEwKTtmb3IobGV0IE10PTA7TXQ8bHQubGVuZ3RoO010Kyspe2xldCBwdD1zLmdldChsdFtNdF0pO3B0JiZwdC5sZW5ndGgmJkdlLnB1c2goLi4ucHQpfX1sZXQgU2U9R2UuZmlsdGVyKEZlPT4hRmUuZGVzdHJveWVkKTtTZS5sZW5ndGg/bW1lKHRoaXMsZGUsU2UpOnRoaXMucHJvY2Vzc0xlYXZlTm9kZShkZSl9cmV0dXJuIE0ubGVuZ3RoPTAsY2UuZm9yRWFjaCgkPT57dGhpcy5wbGF5ZXJzLnB1c2goJCksJC5vbkRvbmUoKCk9PnskLmRlc3Ryb3koKTtsZXQgZGU9dGhpcy5wbGF5ZXJzLmluZGV4T2YoJCk7dGhpcy5wbGF5ZXJzLnNwbGljZShkZSwxKX0pLCQucGxheSgpfSksY2V9ZWxlbWVudENvbnRhaW5zRGF0YSh0LGUpe2xldCBpPSExLHI9ZVtqc107cmV0dXJuIHImJnIuc2V0Rm9yUmVtb3ZhbCYmKGk9ITApLHRoaXMucGxheWVyc0J5RWxlbWVudC5oYXMoZSkmJihpPSEwKSx0aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LmhhcyhlKSYmKGk9ITApLHRoaXMuc3RhdGVzQnlFbGVtZW50LmhhcyhlKSYmKGk9ITApLHRoaXMuX2ZldGNoTmFtZXNwYWNlKHQpLmVsZW1lbnRDb250YWluc0RhdGEoZSl8fGl9YWZ0ZXJGbHVzaCh0KXt0aGlzLl9mbHVzaEZucy5wdXNoKHQpfWFmdGVyRmx1c2hBbmltYXRpb25zRG9uZSh0KXt0aGlzLl93aGVuUXVpZXRGbnMucHVzaCh0KX1fZ2V0UHJldmlvdXNQbGF5ZXJzKHQsZSxpLHIsbyl7bGV0IGE9W107aWYoZSl7bGV0IHM9dGhpcy5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudC5nZXQodCk7cyYmKGE9cyl9ZWxzZXtsZXQgcz10aGlzLnBsYXllcnNCeUVsZW1lbnQuZ2V0KHQpO2lmKHMpe2xldCBsPSFvfHxvPT1IYjtzLmZvckVhY2goYz0+e2MucXVldWVkfHwhbCYmYy50cmlnZ2VyTmFtZSE9cnx8YS5wdXNoKGMpfSl9fXJldHVybihpfHxyKSYmKGE9YS5maWx0ZXIocz0+IShpJiZpIT1zLm5hbWVzcGFjZUlkfHxyJiZyIT1zLnRyaWdnZXJOYW1lKSkpLGF9X2JlZm9yZUFuaW1hdGlvbkJ1aWxkKHQsZSxpKXtsZXQgbz1lLmVsZW1lbnQsYT1lLmlzUmVtb3ZhbFRyYW5zaXRpb24/dm9pZCAwOnQscz1lLmlzUmVtb3ZhbFRyYW5zaXRpb24/dm9pZCAwOmUudHJpZ2dlck5hbWU7Zm9yKGxldCBsIG9mIGUudGltZWxpbmVzKXtsZXQgYz1sLmVsZW1lbnQsZD1jIT09byx1PXBzKGksYyxbXSk7dGhpcy5fZ2V0UHJldmlvdXNQbGF5ZXJzKGMsZCxhLHMsZS50b1N0YXRlKS5mb3JFYWNoKGg9PntsZXQgbT1oLmdldFJlYWxQbGF5ZXIoKTttLmJlZm9yZURlc3Ryb3kmJm0uYmVmb3JlRGVzdHJveSgpLGguZGVzdHJveSgpLHUucHVzaChoKX0pfXNoKG8sZS5mcm9tU3R5bGVzKX1fYnVpbGRBbmltYXRpb24odCxlLGkscixvLGEpe2xldCBzPWUudHJpZ2dlck5hbWUsbD1lLmVsZW1lbnQsYz1bXSxkPW5ldyBTZXQsdT1uZXcgU2V0LHA9ZS50aW1lbGluZXMubWFwKG09PntsZXQgXz1tLmVsZW1lbnQ7ZC5hZGQoXyk7bGV0IE09X1tqc107aWYoTSYmTS5yZW1vdmVkQmVmb3JlUXVlcmllZClyZXR1cm4gbmV3IHB1KG0uZHVyYXRpb24sbS5kZWxheSk7bGV0IHk9XyE9PWwseD1mdW5jdGlvbihuKXtsZXQgdD1bXTtyZXR1cm4gV0cobix0KSx0fSgoaS5nZXQoXyl8fGNtZSkubWFwKFE9PlEuZ2V0UmVhbFBsYXllcigpKSkuZmlsdGVyKFE9PiEhUS5lbGVtZW50JiZRLmVsZW1lbnQ9PT1fKSxSPW8uZ2V0KF8pLEk9YS5nZXQoXyksQj1ERygwLHRoaXMuX25vcm1hbGl6ZXIsMCxtLmtleWZyYW1lcyxSLEkpLGVlPXRoaXMuX2J1aWxkUGxheWVyKG0sQix4KTtpZihtLnN1YlRpbWVsaW5lJiZyJiZ1LmFkZChfKSx5KXtsZXQgUT1uZXcgV2IodCxzLF8pO1Euc2V0UmVhbFBsYXllcihlZSksYy5wdXNoKFEpfXJldHVybiBlZX0pO2MuZm9yRWFjaChtPT57cHModGhpcy5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudCxtLmVsZW1lbnQsW10pLnB1c2gobSksbS5vbkRvbmUoKCk9PmZ1bmN0aW9uKG4sdCxlKXtsZXQgaT1uLmdldCh0KTtpZihpKXtpZihpLmxlbmd0aCl7bGV0IHI9aS5pbmRleE9mKGUpO2kuc3BsaWNlKHIsMSl9MD09aS5sZW5ndGgmJm4uZGVsZXRlKHQpfXJldHVybiBpfSh0aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LG0uZWxlbWVudCxtKSl9KSxkLmZvckVhY2gobT0+R3MobSxnRykpO2xldCBoPWh1KHApO3JldHVybiBoLm9uRGVzdHJveSgoKT0+e2QuZm9yRWFjaChtPT5TZihtLGdHKSksYmMobCxlLnRvU3R5bGVzKX0pLHUuZm9yRWFjaChtPT57cHMocixtLFtdKS5wdXNoKGgpfSksaH1fYnVpbGRQbGF5ZXIodCxlLGkpe3JldHVybiBlLmxlbmd0aD4wP3RoaXMuZHJpdmVyLmFuaW1hdGUodC5lbGVtZW50LGUsdC5kdXJhdGlvbix0LmRlbGF5LHQuZWFzaW5nLGkpOm5ldyBwdSh0LmR1cmF0aW9uLHQuZGVsYXkpfX0odCxlLGkpLHRoaXMuX3RpbWVsaW5lRW5naW5lPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSl7dGhpcy5ib2R5Tm9kZT10LHRoaXMuX2RyaXZlcj1lLHRoaXMuX25vcm1hbGl6ZXI9aSx0aGlzLl9hbmltYXRpb25zPW5ldyBNYXAsdGhpcy5fcGxheWVyc0J5SWQ9bmV3IE1hcCx0aGlzLnBsYXllcnM9W119cmVnaXN0ZXIodCxlKXtsZXQgaT1bXSxyPVtdLG89VUcodGhpcy5fZHJpdmVyLGUsaSxyKTtpZihpLmxlbmd0aCl0aHJvdyBuZXcgeHQoMzUwMywhMSk7dGhpcy5fYW5pbWF0aW9ucy5zZXQodCxvKX1fYnVpbGRQbGF5ZXIodCxlLGkpe2xldCByPXQuZWxlbWVudCxvPURHKDAsdGhpcy5fbm9ybWFsaXplciwwLHQua2V5ZnJhbWVzLGUsaSk7cmV0dXJuIHRoaXMuX2RyaXZlci5hbmltYXRlKHIsbyx0LmR1cmF0aW9uLHQuZGVsYXksdC5lYXNpbmcsW10sITApfWNyZWF0ZSh0LGUsaT17fSl7bGV0IGEscj1bXSxvPXRoaXMuX2FuaW1hdGlvbnMuZ2V0KHQpLHM9bmV3IE1hcDtpZihvPyhhPWpHKHRoaXMuX2RyaXZlcixlLG8sT0csX08sbmV3IE1hcCxuZXcgTWFwLGkscm1lLHIpLGEuZm9yRWFjaChkPT57bGV0IHU9cHMocyxkLmVsZW1lbnQsbmV3IE1hcCk7ZC5wb3N0U3R5bGVQcm9wcy5mb3JFYWNoKHA9PnUuc2V0KHAsbnVsbCkpfSkpOihyLnB1c2gobmV3IHh0KDMzMDAsITEpKSxhPVtdKSxyLmxlbmd0aCl0aHJvdyBuZXcgeHQoMzUwNCwhMSk7cy5mb3JFYWNoKChkLHUpPT57ZC5mb3JFYWNoKChwLGgpPT57ZC5zZXQoaCx0aGlzLl9kcml2ZXIuY29tcHV0ZVN0eWxlKHUsaCxfYykpfSl9KTtsZXQgYz1odShhLm1hcChkPT57bGV0IHU9cy5nZXQoZC5lbGVtZW50KTtyZXR1cm4gdGhpcy5fYnVpbGRQbGF5ZXIoZCxuZXcgTWFwLHUpfSkpO3JldHVybiB0aGlzLl9wbGF5ZXJzQnlJZC5zZXQodCxjKSxjLm9uRGVzdHJveSgoKT0+dGhpcy5kZXN0cm95KHQpKSx0aGlzLnBsYXllcnMucHVzaChjKSxjfWRlc3Ryb3kodCl7bGV0IGU9dGhpcy5fZ2V0UGxheWVyKHQpO2UuZGVzdHJveSgpLHRoaXMuX3BsYXllcnNCeUlkLmRlbGV0ZSh0KTtsZXQgaT10aGlzLnBsYXllcnMuaW5kZXhPZihlKTtpPj0wJiZ0aGlzLnBsYXllcnMuc3BsaWNlKGksMSl9X2dldFBsYXllcih0KXtsZXQgZT10aGlzLl9wbGF5ZXJzQnlJZC5nZXQodCk7aWYoIWUpdGhyb3cgbmV3IHh0KDMzMDEsITEpO3JldHVybiBlfWxpc3Rlbih0LGUsaSxyKXtsZXQgbz1QTyhlLCIiLCIiLCIiKTtyZXR1cm4gUk8odGhpcy5fZ2V0UGxheWVyKHQpLGksbyxyKSwoKT0+e319Y29tbWFuZCh0LGUsaSxyKXtpZigicmVnaXN0ZXIiPT1pKXJldHVybiB2b2lkIHRoaXMucmVnaXN0ZXIodCxyWzBdKTtpZigiY3JlYXRlIj09aSlyZXR1cm4gdm9pZCB0aGlzLmNyZWF0ZSh0LGUsclswXXx8e30pO2xldCBvPXRoaXMuX2dldFBsYXllcih0KTtzd2l0Y2goaSl7Y2FzZSJwbGF5IjpvLnBsYXkoKTticmVhaztjYXNlInBhdXNlIjpvLnBhdXNlKCk7YnJlYWs7Y2FzZSJyZXNldCI6by5yZXNldCgpO2JyZWFrO2Nhc2UicmVzdGFydCI6by5yZXN0YXJ0KCk7YnJlYWs7Y2FzZSJmaW5pc2giOm8uZmluaXNoKCk7YnJlYWs7Y2FzZSJpbml0IjpvLmluaXQoKTticmVhaztjYXNlInNldFBvc2l0aW9uIjpvLnNldFBvc2l0aW9uKHBhcnNlRmxvYXQoclswXSkpO2JyZWFrO2Nhc2UiZGVzdHJveSI6dGhpcy5kZXN0cm95KHQpfX19KHQsZSxpKSx0aGlzLl90cmFuc2l0aW9uRW5naW5lLm9uUmVtb3ZhbENvbXBsZXRlPShyLG8pPT50aGlzLm9uUmVtb3ZhbENvbXBsZXRlKHIsbyl9cmVnaXN0ZXJUcmlnZ2VyKHQsZSxpLHIsbyl7bGV0IGE9dCsiLSIrcixzPXRoaXMuX3RyaWdnZXJDYWNoZVthXTtpZighcyl7bGV0IGw9W10sYz1bXSxkPVVHKHRoaXMuX2RyaXZlcixvLGwsYyk7aWYobC5sZW5ndGgpdGhyb3cgbmV3IHh0KDM0MDQsITEpO3M9ZnVuY3Rpb24obix0LGUpe3JldHVybiBuZXcgY2xhc3N7Y29uc3RydWN0b3IodCxlLGkpe3RoaXMubmFtZT10LHRoaXMuYXN0PWUsdGhpcy5fbm9ybWFsaXplcj1pLHRoaXMudHJhbnNpdGlvbkZhY3Rvcmllcz1bXSx0aGlzLnN0YXRlcz1uZXcgTWFwLGUuc3RhdGVzLmZvckVhY2gocj0+e2xldCBvPXIub3B0aW9ucyYmci5vcHRpb25zLnBhcmFtc3x8e307dGhpcy5zdGF0ZXMuc2V0KHIubmFtZSxuZXcgY2xhc3N7Y29uc3RydWN0b3IodCxlLGkpe3RoaXMuc3R5bGVzPXQsdGhpcy5kZWZhdWx0UGFyYW1zPWUsdGhpcy5ub3JtYWxpemVyPWl9YnVpbGRTdHlsZXModCxlKXtsZXQgaT1uZXcgTWFwLHI9WGIodGhpcy5kZWZhdWx0UGFyYW1zKTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChvPT57bGV0IGE9dFtvXTtudWxsIT09YSYmKHJbb109YSl9KSx0aGlzLnN0eWxlcy5zdHlsZXMuZm9yRWFjaChvPT57InN0cmluZyIhPXR5cGVvZiBvJiZvLmZvckVhY2goKGEscyk9PnthJiYoYT16YihhLHIsZSkpO2xldCBsPXRoaXMubm9ybWFsaXplci5ub3JtYWxpemVQcm9wZXJ0eU5hbWUocyxlKTthPXRoaXMubm9ybWFsaXplci5ub3JtYWxpemVTdHlsZVZhbHVlKHMsbCxhLGUpLGkuc2V0KHMsYSl9KX0pLGl9fShyLnN0eWxlLG8saSkpfSksQ0codGhpcy5zdGF0ZXMsInRydWUiLCIxIiksQ0codGhpcy5zdGF0ZXMsImZhbHNlIiwiMCIpLGUudHJhbnNpdGlvbnMuZm9yRWFjaChyPT57dGhpcy50cmFuc2l0aW9uRmFjdG9yaWVzLnB1c2gobmV3IEJ3KHQscix0aGlzLnN0YXRlcykpfSksdGhpcy5mYWxsYmFja1RyYW5zaXRpb249ZnVuY3Rpb24obix0LGUpe3JldHVybiBuZXcgQncobix7dHlwZToxLGFuaW1hdGlvbjp7dHlwZToyLHN0ZXBzOltdLG9wdGlvbnM6bnVsbH0sbWF0Y2hlcnM6WyhhLHMpPT4hMF0sb3B0aW9uczpudWxsLHF1ZXJ5Q291bnQ6MCxkZXBDb3VudDowfSx0KX0odCx0aGlzLnN0YXRlcyl9Z2V0IGNvbnRhaW5zUXVlcmllcygpe3JldHVybiB0aGlzLmFzdC5xdWVyeUNvdW50PjB9bWF0Y2hUcmFuc2l0aW9uKHQsZSxpLHIpe3JldHVybiB0aGlzLnRyYW5zaXRpb25GYWN0b3JpZXMuZmluZChhPT5hLm1hdGNoKHQsZSxpLHIpKXx8bnVsbH1tYXRjaFN0eWxlcyh0LGUsaSl7cmV0dXJuIHRoaXMuZmFsbGJhY2tUcmFuc2l0aW9uLmJ1aWxkU3R5bGVzKHQsZSxpKX19KG4sdCxlKX0ocixkLHRoaXMuX25vcm1hbGl6ZXIpLHRoaXMuX3RyaWdnZXJDYWNoZVthXT1zfXRoaXMuX3RyYW5zaXRpb25FbmdpbmUucmVnaXN0ZXJUcmlnZ2VyKGUscixzKX1yZWdpc3Rlcih0LGUpe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUucmVnaXN0ZXIodCxlKX1kZXN0cm95KHQsZSl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5kZXN0cm95KHQsZSl9b25JbnNlcnQodCxlLGkscil7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5pbnNlcnROb2RlKHQsZSxpLHIpfW9uUmVtb3ZlKHQsZSxpLHIpe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUucmVtb3ZlTm9kZSh0LGUscnx8ITEsaSl9ZGlzYWJsZUFuaW1hdGlvbnModCxlKXt0aGlzLl90cmFuc2l0aW9uRW5naW5lLm1hcmtFbGVtZW50QXNEaXNhYmxlZCh0LGUpfXByb2Nlc3ModCxlLGkscil7aWYoIkAiPT1pLmNoYXJBdCgwKSl7bGV0W28sYV09bUcoaSk7dGhpcy5fdGltZWxpbmVFbmdpbmUuY29tbWFuZChvLGUsYSxyKX1lbHNlIHRoaXMuX3RyYW5zaXRpb25FbmdpbmUudHJpZ2dlcih0LGUsaSxyKX1saXN0ZW4odCxlLGkscixvKXtpZigiQCI9PWkuY2hhckF0KDApKXtsZXRbYSxzXT1tRyhpKTtyZXR1cm4gdGhpcy5fdGltZWxpbmVFbmdpbmUubGlzdGVuKGEsZSxzLG8pfXJldHVybiB0aGlzLl90cmFuc2l0aW9uRW5naW5lLmxpc3Rlbih0LGUsaSxyLG8pfWZsdXNoKHQ9LTEpe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUuZmx1c2godCl9Z2V0IHBsYXllcnMoKXtyZXR1cm4gdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5wbGF5ZXJzLmNvbmNhdCh0aGlzLl90aW1lbGluZUVuZ2luZS5wbGF5ZXJzKX13aGVuUmVuZGVyaW5nRG9uZSgpe3JldHVybiB0aGlzLl90cmFuc2l0aW9uRW5naW5lLndoZW5SZW5kZXJpbmdEb25lKCl9fSxibWU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscil7dGhpcy5fZWxlbWVudD1lLHRoaXMuX3N0YXJ0U3R5bGVzPWksdGhpcy5fZW5kU3R5bGVzPXIsdGhpcy5fc3RhdGU9MDtsZXQgbz1uLmluaXRpYWxTdHlsZXNCeUVsZW1lbnQuZ2V0KGUpO298fG4uaW5pdGlhbFN0eWxlc0J5RWxlbWVudC5zZXQoZSxvPW5ldyBNYXApLHRoaXMuX2luaXRpYWxTdHlsZXM9b31zdGFydCgpe3RoaXMuX3N0YXRlPDEmJih0aGlzLl9zdGFydFN0eWxlcyYmYmModGhpcy5fZWxlbWVudCx0aGlzLl9zdGFydFN0eWxlcyx0aGlzLl9pbml0aWFsU3R5bGVzKSx0aGlzLl9zdGF0ZT0xKX1maW5pc2goKXt0aGlzLnN0YXJ0KCksdGhpcy5fc3RhdGU8MiYmKGJjKHRoaXMuX2VsZW1lbnQsdGhpcy5faW5pdGlhbFN0eWxlcyksdGhpcy5fZW5kU3R5bGVzJiYoYmModGhpcy5fZWxlbWVudCx0aGlzLl9lbmRTdHlsZXMpLHRoaXMuX2VuZFN0eWxlcz1udWxsKSx0aGlzLl9zdGF0ZT0xKX1kZXN0cm95KCl7dGhpcy5maW5pc2goKSx0aGlzLl9zdGF0ZTwzJiYobi5pbml0aWFsU3R5bGVzQnlFbGVtZW50LmRlbGV0ZSh0aGlzLl9lbGVtZW50KSx0aGlzLl9zdGFydFN0eWxlcyYmKHNoKHRoaXMuX2VsZW1lbnQsdGhpcy5fc3RhcnRTdHlsZXMpLHRoaXMuX2VuZFN0eWxlcz1udWxsKSx0aGlzLl9lbmRTdHlsZXMmJihzaCh0aGlzLl9lbGVtZW50LHRoaXMuX2VuZFN0eWxlcyksdGhpcy5fZW5kU3R5bGVzPW51bGwpLGJjKHRoaXMuX2VsZW1lbnQsdGhpcy5faW5pdGlhbFN0eWxlcyksdGhpcy5fc3RhdGU9Myl9fXJldHVybiBuLmluaXRpYWxTdHlsZXNCeUVsZW1lbnQ9bmV3IFdlYWtNYXAsbn0pKCk7ZnVuY3Rpb24gZk8obil7bGV0IHQ9bnVsbDtyZXR1cm4gbi5mb3JFYWNoKChlLGkpPT57KGZ1bmN0aW9uKG4pe3JldHVybiJkaXNwbGF5Ij09PW58fCJwb3NpdGlvbiI9PT1ufSkoaSkmJih0PXR8fG5ldyBNYXAsdC5zZXQoaSxlKSl9KSx0fXZhciBWdz1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSxyKXt0aGlzLmVsZW1lbnQ9dCx0aGlzLmtleWZyYW1lcz1lLHRoaXMub3B0aW9ucz1pLHRoaXMuX3NwZWNpYWxTdHlsZXM9cix0aGlzLl9vbkRvbmVGbnM9W10sdGhpcy5fb25TdGFydEZucz1bXSx0aGlzLl9vbkRlc3Ryb3lGbnM9W10sdGhpcy5faW5pdGlhbGl6ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fb3JpZ2luYWxPbkRvbmVGbnM9W10sdGhpcy5fb3JpZ2luYWxPblN0YXJ0Rm5zPVtdLHRoaXMudGltZT0wLHRoaXMucGFyZW50UGxheWVyPW51bGwsdGhpcy5jdXJyZW50U25hcHNob3Q9bmV3IE1hcCx0aGlzLl9kdXJhdGlvbj1pLmR1cmF0aW9uLHRoaXMuX2RlbGF5PWkuZGVsYXl8fDAsdGhpcy50aW1lPXRoaXMuX2R1cmF0aW9uK3RoaXMuX2RlbGF5fV9vbkZpbmlzaCgpe3RoaXMuX2ZpbmlzaGVkfHwodGhpcy5fZmluaXNoZWQ9ITAsdGhpcy5fb25Eb25lRm5zLmZvckVhY2godD0+dCgpKSx0aGlzLl9vbkRvbmVGbnM9W10pfWluaXQoKXt0aGlzLl9idWlsZFBsYXllcigpLHRoaXMuX3ByZXBhcmVQbGF5ZXJCZWZvcmVTdGFydCgpfV9idWlsZFBsYXllcigpe2lmKHRoaXMuX2luaXRpYWxpemVkKXJldHVybjt0aGlzLl9pbml0aWFsaXplZD0hMDtsZXQgdD10aGlzLmtleWZyYW1lczt0aGlzLmRvbVBsYXllcj10aGlzLl90cmlnZ2VyV2ViQW5pbWF0aW9uKHRoaXMuZWxlbWVudCx0LHRoaXMub3B0aW9ucyksdGhpcy5fZmluYWxLZXlmcmFtZT10Lmxlbmd0aD90W3QubGVuZ3RoLTFdOm5ldyBNYXAsdGhpcy5kb21QbGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiZmluaXNoIiwoKT0+dGhpcy5fb25GaW5pc2goKSl9X3ByZXBhcmVQbGF5ZXJCZWZvcmVTdGFydCgpe3RoaXMuX2RlbGF5P3RoaXMuX3Jlc2V0RG9tUGxheWVyU3RhdGUoKTp0aGlzLmRvbVBsYXllci5wYXVzZSgpfV9jb252ZXJ0S2V5ZnJhbWVzVG9PYmplY3QodCl7bGV0IGU9W107cmV0dXJuIHQuZm9yRWFjaChpPT57ZS5wdXNoKE9iamVjdC5mcm9tRW50cmllcyhpKSl9KSxlfV90cmlnZ2VyV2ViQW5pbWF0aW9uKHQsZSxpKXtyZXR1cm4gdC5hbmltYXRlKHRoaXMuX2NvbnZlcnRLZXlmcmFtZXNUb09iamVjdChlKSxpKX1vblN0YXJ0KHQpe3RoaXMuX29yaWdpbmFsT25TdGFydEZucy5wdXNoKHQpLHRoaXMuX29uU3RhcnRGbnMucHVzaCh0KX1vbkRvbmUodCl7dGhpcy5fb3JpZ2luYWxPbkRvbmVGbnMucHVzaCh0KSx0aGlzLl9vbkRvbmVGbnMucHVzaCh0KX1vbkRlc3Ryb3kodCl7dGhpcy5fb25EZXN0cm95Rm5zLnB1c2godCl9cGxheSgpe3RoaXMuX2J1aWxkUGxheWVyKCksdGhpcy5oYXNTdGFydGVkKCl8fCh0aGlzLl9vblN0YXJ0Rm5zLmZvckVhY2godD0+dCgpKSx0aGlzLl9vblN0YXJ0Rm5zPVtdLHRoaXMuX3N0YXJ0ZWQ9ITAsdGhpcy5fc3BlY2lhbFN0eWxlcyYmdGhpcy5fc3BlY2lhbFN0eWxlcy5zdGFydCgpKSx0aGlzLmRvbVBsYXllci5wbGF5KCl9cGF1c2UoKXt0aGlzLmluaXQoKSx0aGlzLmRvbVBsYXllci5wYXVzZSgpfWZpbmlzaCgpe3RoaXMuaW5pdCgpLHRoaXMuX3NwZWNpYWxTdHlsZXMmJnRoaXMuX3NwZWNpYWxTdHlsZXMuZmluaXNoKCksdGhpcy5fb25GaW5pc2goKSx0aGlzLmRvbVBsYXllci5maW5pc2goKX1yZXNldCgpe3RoaXMuX3Jlc2V0RG9tUGxheWVyU3RhdGUoKSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9vblN0YXJ0Rm5zPXRoaXMuX29yaWdpbmFsT25TdGFydEZucyx0aGlzLl9vbkRvbmVGbnM9dGhpcy5fb3JpZ2luYWxPbkRvbmVGbnN9X3Jlc2V0RG9tUGxheWVyU3RhdGUoKXt0aGlzLmRvbVBsYXllciYmdGhpcy5kb21QbGF5ZXIuY2FuY2VsKCl9cmVzdGFydCgpe3RoaXMucmVzZXQoKSx0aGlzLnBsYXkoKX1oYXNTdGFydGVkKCl7cmV0dXJuIHRoaXMuX3N0YXJ0ZWR9ZGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZHx8KHRoaXMuX2Rlc3Ryb3llZD0hMCx0aGlzLl9yZXNldERvbVBsYXllclN0YXRlKCksdGhpcy5fb25GaW5pc2goKSx0aGlzLl9zcGVjaWFsU3R5bGVzJiZ0aGlzLl9zcGVjaWFsU3R5bGVzLmRlc3Ryb3koKSx0aGlzLl9vbkRlc3Ryb3lGbnMuZm9yRWFjaCh0PT50KCkpLHRoaXMuX29uRGVzdHJveUZucz1bXSl9c2V0UG9zaXRpb24odCl7dm9pZCAwPT09dGhpcy5kb21QbGF5ZXImJnRoaXMuaW5pdCgpLHRoaXMuZG9tUGxheWVyLmN1cnJlbnRUaW1lPXQqdGhpcy50aW1lfWdldFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuZG9tUGxheWVyLmN1cnJlbnRUaW1lL3RoaXMudGltZX1nZXQgdG90YWxUaW1lKCl7cmV0dXJuIHRoaXMuX2RlbGF5K3RoaXMuX2R1cmF0aW9ufWJlZm9yZURlc3Ryb3koKXtsZXQgdD1uZXcgTWFwO3RoaXMuaGFzU3RhcnRlZCgpJiZ0aGlzLl9maW5hbEtleWZyYW1lLmZvckVhY2goKGkscik9Pnsib2Zmc2V0IiE9PXImJnQuc2V0KHIsdGhpcy5fZmluaXNoZWQ/aTpCRyh0aGlzLmVsZW1lbnQscikpfSksdGhpcy5jdXJyZW50U25hcHNob3Q9dH10cmlnZ2VyQ2FsbGJhY2sodCl7bGV0IGU9InN0YXJ0Ij09PXQ/dGhpcy5fb25TdGFydEZuczp0aGlzLl9vbkRvbmVGbnM7ZS5mb3JFYWNoKGk9PmkoKSksZS5sZW5ndGg9MH19LHhtZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgRmJ7Y29uc3RydWN0b3IoZSxpKXtzdXBlcigpLHRoaXMuX25leHRBbmltYXRpb25JZD0wLHRoaXMuX3JlbmRlcmVyPWUuY3JlYXRlUmVuZGVyZXIoaS5ib2R5LHtpZDoiMCIsZW5jYXBzdWxhdGlvbjphcy5Ob25lLHN0eWxlczpbXSxkYXRhOnthbmltYXRpb246W119fSl9YnVpbGQoZSl7bGV0IGk9dGhpcy5fbmV4dEFuaW1hdGlvbklkLnRvU3RyaW5nKCk7dGhpcy5fbmV4dEFuaW1hdGlvbklkKys7bGV0IHI9QXJyYXkuaXNBcnJheShlKT9FdyhlKTplO3JldHVybiBYRyh0aGlzLl9yZW5kZXJlcixudWxsLGksInJlZ2lzdGVyIixbcl0pLG5ldyBMTyhpLHRoaXMuX3JlbmRlcmVyKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhjYyksTyhOdCkpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLExPPWNsYXNzIGV4dGVuZHMgU3d7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMuX2lkPXQsdGhpcy5fcmVuZGVyZXI9ZX1jcmVhdGUodCxlKXtyZXR1cm4gbmV3IEJPKHRoaXMuX2lkLHQsZXx8e30sdGhpcy5fcmVuZGVyZXIpfX0sQk89Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkscil7dGhpcy5pZD10LHRoaXMuZWxlbWVudD1lLHRoaXMuX3JlbmRlcmVyPXIsdGhpcy5wYXJlbnRQbGF5ZXI9bnVsbCx0aGlzLl9zdGFydGVkPSExLHRoaXMudG90YWxUaW1lPTAsdGhpcy5fY29tbWFuZCgiY3JlYXRlIixpKX1fbGlzdGVuKHQsZSl7cmV0dXJuIHRoaXMuX3JlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnQsYEBAJHt0aGlzLmlkfToke3R9YCxlKX1fY29tbWFuZCh0LC4uLmUpe3JldHVybiBYRyh0aGlzLl9yZW5kZXJlcix0aGlzLmVsZW1lbnQsdGhpcy5pZCx0LGUpfW9uRG9uZSh0KXt0aGlzLl9saXN0ZW4oImRvbmUiLHQpfW9uU3RhcnQodCl7dGhpcy5fbGlzdGVuKCJzdGFydCIsdCl9b25EZXN0cm95KHQpe3RoaXMuX2xpc3RlbigiZGVzdHJveSIsdCl9aW5pdCgpe3RoaXMuX2NvbW1hbmQoImluaXQiKX1oYXNTdGFydGVkKCl7cmV0dXJuIHRoaXMuX3N0YXJ0ZWR9cGxheSgpe3RoaXMuX2NvbW1hbmQoInBsYXkiKSx0aGlzLl9zdGFydGVkPSEwfXBhdXNlKCl7dGhpcy5fY29tbWFuZCgicGF1c2UiKX1yZXN0YXJ0KCl7dGhpcy5fY29tbWFuZCgicmVzdGFydCIpfWZpbmlzaCgpe3RoaXMuX2NvbW1hbmQoImZpbmlzaCIpfWRlc3Ryb3koKXt0aGlzLl9jb21tYW5kKCJkZXN0cm95Iil9cmVzZXQoKXt0aGlzLl9jb21tYW5kKCJyZXNldCIpLHRoaXMuX3N0YXJ0ZWQ9ITF9c2V0UG9zaXRpb24odCl7dGhpcy5fY29tbWFuZCgic2V0UG9zaXRpb24iLHQpfWdldFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbmRlcmVyLmVuZ2luZS5wbGF5ZXJzWyt0aGlzLmlkXT8uZ2V0UG9zaXRpb24oKT8/MH19O2Z1bmN0aW9uIFhHKG4sdCxlLGkscil7cmV0dXJuIG4uc2V0UHJvcGVydHkodCxgQEAke2V9OiR7aX1gLHIpfXZhciBZRz0iQC5kaXNhYmxlZCIsQ21lPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIpe3RoaXMuZGVsZWdhdGU9ZSx0aGlzLmVuZ2luZT1pLHRoaXMuX3pvbmU9cix0aGlzLl9jdXJyZW50SWQ9MCx0aGlzLl9taWNyb3Rhc2tJZD0xLHRoaXMuX2FuaW1hdGlvbkNhbGxiYWNrc0J1ZmZlcj1bXSx0aGlzLl9yZW5kZXJlckNhY2hlPW5ldyBNYXAsdGhpcy5fY2RSZWN1ckRlcHRoPTAsdGhpcy5wcm9taXNlPVByb21pc2UucmVzb2x2ZSgwKSxpLm9uUmVtb3ZhbENvbXBsZXRlPShvLGEpPT57bGV0IHM9YT8ucGFyZW50Tm9kZShvKTtzJiZhLnJlbW92ZUNoaWxkKHMsbyl9fWNyZWF0ZVJlbmRlcmVyKGUsaSl7bGV0IG89dGhpcy5kZWxlZ2F0ZS5jcmVhdGVSZW5kZXJlcihlLGkpO2lmKCEoZSYmaSYmaS5kYXRhJiZpLmRhdGEuYW5pbWF0aW9uKSl7bGV0IGQ9dGhpcy5fcmVuZGVyZXJDYWNoZS5nZXQobyk7cmV0dXJuIGR8fChkPW5ldyBVdygiIixvLHRoaXMuZW5naW5lLCgpPT50aGlzLl9yZW5kZXJlckNhY2hlLmRlbGV0ZShvKSksdGhpcy5fcmVuZGVyZXJDYWNoZS5zZXQobyxkKSksZH1sZXQgYT1pLmlkLHM9aS5pZCsiLSIrdGhpcy5fY3VycmVudElkO3RoaXMuX2N1cnJlbnRJZCsrLHRoaXMuZW5naW5lLnJlZ2lzdGVyKHMsZSk7bGV0IGw9ZD0+e0FycmF5LmlzQXJyYXkoZCk/ZC5mb3JFYWNoKGwpOnRoaXMuZW5naW5lLnJlZ2lzdGVyVHJpZ2dlcihhLHMsZSxkLm5hbWUsZCl9O3JldHVybiBpLmRhdGEuYW5pbWF0aW9uLmZvckVhY2gobCksbmV3IFZPKHRoaXMscyxvLHRoaXMuZW5naW5lKX1iZWdpbigpe3RoaXMuX2NkUmVjdXJEZXB0aCsrLHRoaXMuZGVsZWdhdGUuYmVnaW4mJnRoaXMuZGVsZWdhdGUuYmVnaW4oKX1fc2NoZWR1bGVDb3VudFRhc2soKXt0aGlzLnByb21pc2UudGhlbigoKT0+e3RoaXMuX21pY3JvdGFza0lkKyt9KX1zY2hlZHVsZUxpc3RlbmVyQ2FsbGJhY2soZSxpLHIpe2U+PTAmJmU8dGhpcy5fbWljcm90YXNrSWQ/dGhpcy5fem9uZS5ydW4oKCk9PmkocikpOigwPT10aGlzLl9hbmltYXRpb25DYWxsYmFja3NCdWZmZXIubGVuZ3RoJiZQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbigoKT0+e3RoaXMuX3pvbmUucnVuKCgpPT57dGhpcy5fYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyLmZvckVhY2gobz0+e2xldFthLHNdPW87YShzKX0pLHRoaXMuX2FuaW1hdGlvbkNhbGxiYWNrc0J1ZmZlcj1bXX0pfSksdGhpcy5fYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyLnB1c2goW2kscl0pKX1lbmQoKXt0aGlzLl9jZFJlY3VyRGVwdGgtLSwwPT10aGlzLl9jZFJlY3VyRGVwdGgmJnRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLl9zY2hlZHVsZUNvdW50VGFzaygpLHRoaXMuZW5naW5lLmZsdXNoKHRoaXMuX21pY3JvdGFza0lkKX0pLHRoaXMuZGVsZWdhdGUuZW5kJiZ0aGlzLmRlbGVnYXRlLmVuZCgpfXdoZW5SZW5kZXJpbmdEb25lKCl7cmV0dXJuIHRoaXMuZW5naW5lLndoZW5SZW5kZXJpbmdEb25lKCl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oY2MpLE8obXUpLE8ob3QpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWN9KSxufSkoKSxVdz1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSxyKXt0aGlzLm5hbWVzcGFjZUlkPXQsdGhpcy5kZWxlZ2F0ZT1lLHRoaXMuZW5naW5lPWksdGhpcy5fb25EZXN0cm95PXIsdGhpcy5kZXN0cm95Tm9kZT10aGlzLmRlbGVnYXRlLmRlc3Ryb3lOb2RlP289PmUuZGVzdHJveU5vZGUobyk6bnVsbH1nZXQgZGF0YSgpe3JldHVybiB0aGlzLmRlbGVnYXRlLmRhdGF9ZGVzdHJveSgpe3RoaXMuZW5naW5lLmRlc3Ryb3kodGhpcy5uYW1lc3BhY2VJZCx0aGlzLmRlbGVnYXRlKSx0aGlzLmRlbGVnYXRlLmRlc3Ryb3koKSx0aGlzLl9vbkRlc3Ryb3k/LigpfWNyZWF0ZUVsZW1lbnQodCxlKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5jcmVhdGVFbGVtZW50KHQsZSl9Y3JlYXRlQ29tbWVudCh0KXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5jcmVhdGVDb21tZW50KHQpfWNyZWF0ZVRleHQodCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuY3JlYXRlVGV4dCh0KX1hcHBlbmRDaGlsZCh0LGUpe3RoaXMuZGVsZWdhdGUuYXBwZW5kQ2hpbGQodCxlKSx0aGlzLmVuZ2luZS5vbkluc2VydCh0aGlzLm5hbWVzcGFjZUlkLGUsdCwhMSl9aW5zZXJ0QmVmb3JlKHQsZSxpLHI9ITApe3RoaXMuZGVsZWdhdGUuaW5zZXJ0QmVmb3JlKHQsZSxpKSx0aGlzLmVuZ2luZS5vbkluc2VydCh0aGlzLm5hbWVzcGFjZUlkLGUsdCxyKX1yZW1vdmVDaGlsZCh0LGUsaSl7dGhpcy5lbmdpbmUub25SZW1vdmUodGhpcy5uYW1lc3BhY2VJZCxlLHRoaXMuZGVsZWdhdGUsaSl9c2VsZWN0Um9vdEVsZW1lbnQodCxlKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5zZWxlY3RSb290RWxlbWVudCh0LGUpfXBhcmVudE5vZGUodCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUucGFyZW50Tm9kZSh0KX1uZXh0U2libGluZyh0KXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5uZXh0U2libGluZyh0KX1zZXRBdHRyaWJ1dGUodCxlLGkscil7dGhpcy5kZWxlZ2F0ZS5zZXRBdHRyaWJ1dGUodCxlLGkscil9cmVtb3ZlQXR0cmlidXRlKHQsZSxpKXt0aGlzLmRlbGVnYXRlLnJlbW92ZUF0dHJpYnV0ZSh0LGUsaSl9YWRkQ2xhc3ModCxlKXt0aGlzLmRlbGVnYXRlLmFkZENsYXNzKHQsZSl9cmVtb3ZlQ2xhc3ModCxlKXt0aGlzLmRlbGVnYXRlLnJlbW92ZUNsYXNzKHQsZSl9c2V0U3R5bGUodCxlLGkscil7dGhpcy5kZWxlZ2F0ZS5zZXRTdHlsZSh0LGUsaSxyKX1yZW1vdmVTdHlsZSh0LGUsaSl7dGhpcy5kZWxlZ2F0ZS5yZW1vdmVTdHlsZSh0LGUsaSl9c2V0UHJvcGVydHkodCxlLGkpeyJAIj09ZS5jaGFyQXQoMCkmJmU9PVlHP3RoaXMuZGlzYWJsZUFuaW1hdGlvbnModCwhIWkpOnRoaXMuZGVsZWdhdGUuc2V0UHJvcGVydHkodCxlLGkpfXNldFZhbHVlKHQsZSl7dGhpcy5kZWxlZ2F0ZS5zZXRWYWx1ZSh0LGUpfWxpc3Rlbih0LGUsaSl7cmV0dXJuIHRoaXMuZGVsZWdhdGUubGlzdGVuKHQsZSxpKX1kaXNhYmxlQW5pbWF0aW9ucyh0LGUpe3RoaXMuZW5naW5lLmRpc2FibGVBbmltYXRpb25zKHQsZSl9fSxWTz1jbGFzcyBleHRlbmRzIFV3e2NvbnN0cnVjdG9yKHQsZSxpLHIsbyl7c3VwZXIoZSxpLHIsbyksdGhpcy5mYWN0b3J5PXQsdGhpcy5uYW1lc3BhY2VJZD1lfXNldFByb3BlcnR5KHQsZSxpKXsiQCI9PWUuY2hhckF0KDApPyIuIj09ZS5jaGFyQXQoMSkmJmU9PVlHP3RoaXMuZGlzYWJsZUFuaW1hdGlvbnModCxpPXZvaWQgMD09PWl8fCEhaSk6dGhpcy5lbmdpbmUucHJvY2Vzcyh0aGlzLm5hbWVzcGFjZUlkLHQsZS5zbGljZSgxKSxpKTp0aGlzLmRlbGVnYXRlLnNldFByb3BlcnR5KHQsZSxpKX1saXN0ZW4odCxlLGkpe2lmKCJAIj09ZS5jaGFyQXQoMCkpe2xldCByPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlImJvZHkiOnJldHVybiBkb2N1bWVudC5ib2R5O2Nhc2UiZG9jdW1lbnQiOnJldHVybiBkb2N1bWVudDtjYXNlIndpbmRvdyI6cmV0dXJuIHdpbmRvdztkZWZhdWx0OnJldHVybiBufX0odCksbz1lLnNsaWNlKDEpLGE9IiI7cmV0dXJuIkAiIT1vLmNoYXJBdCgwKSYmKFtvLGFdPWZ1bmN0aW9uKG4pe2xldCB0PW4uaW5kZXhPZigiLiIpO3JldHVybltuLnN1YnN0cmluZygwLHQpLG4uc2xpY2UodCsxKV19KG8pKSx0aGlzLmVuZ2luZS5saXN0ZW4odGhpcy5uYW1lc3BhY2VJZCxyLG8sYSxzPT57dGhpcy5mYWN0b3J5LnNjaGVkdWxlTGlzdGVuZXJDYWxsYmFjayhzLl9kYXRhfHwtMSxpLHMpfSl9cmV0dXJuIHRoaXMuZGVsZWdhdGUubGlzdGVuKHQsZSxpKX19LFNtZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgbXV7Y29uc3RydWN0b3IoZSxpLHIsbyl7c3VwZXIoZS5ib2R5LGkscil9bmdPbkRlc3Ryb3koKXt0aGlzLmZsdXNoKCl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oTnQpLE8ocWIpLE8obGgpLE8oZ2MpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWN9KSxufSkoKSxRRz1be3Byb3ZpZGU6RmIsdXNlQ2xhc3M6eG1lfSx7cHJvdmlkZTpsaCx1c2VGYWN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBMd319LHtwcm92aWRlOm11LHVzZUNsYXNzOlNtZX0se3Byb3ZpZGU6Y2MsdXNlRmFjdG9yeTpmdW5jdGlvbihuLHQsZSl7cmV0dXJuIG5ldyBDbWUobix0LGUpfSxkZXBzOltSYixtdSxvdF19XSxxRz1be3Byb3ZpZGU6cWIsdXNlRmFjdG9yeTooKT0+bmV3IGNsYXNze3ZhbGlkYXRlU3R5bGVQcm9wZXJ0eSh0KXtyZXR1cm4hMH12YWxpZGF0ZUFuaW1hdGFibGVTdHlsZVByb3BlcnR5KHQpe3JldHVybiEwfW1hdGNoZXNFbGVtZW50KHQsZSl7cmV0dXJuITF9Y29udGFpbnNFbGVtZW50KHQsZSl7cmV0dXJuIFJHKHQsZSl9Z2V0UGFyZW50RWxlbWVudCh0KXtyZXR1cm4ga08odCl9cXVlcnkodCxlLGkpe3JldHVybiBQRyh0LGUsaSl9Y29tcHV0ZVN0eWxlKHQsZSxpKXtyZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUodClbZV19YW5pbWF0ZSh0LGUsaSxyLG8sYT1bXSl7bGV0IGw9e2R1cmF0aW9uOmksZGVsYXk6cixmaWxsOjA9PXI/ImJvdGgiOiJmb3J3YXJkcyJ9O28mJihsLmVhc2luZz1vKTtsZXQgYz1uZXcgTWFwLGQ9YS5maWx0ZXIoaD0+aCBpbnN0YW5jZW9mIFZ3KTsoZnVuY3Rpb24obix0KXtyZXR1cm4gMD09PW58fDA9PT10fSkoaSxyKSYmZC5mb3JFYWNoKGg9PntoLmN1cnJlbnRTbmFwc2hvdC5mb3JFYWNoKChtLF8pPT5jLnNldChfLG0pKX0pO2xldCB1PShuPWUsbi5sZW5ndGg/blswXWluc3RhbmNlb2YgTWFwP246bi5tYXAodD0+RkcodCkpOltdKS5tYXAoaD0+RWYoaCkpO3ZhciBuO3U9ZnVuY3Rpb24obix0LGUpe2lmKGUuc2l6ZSYmdC5sZW5ndGgpe2xldCBpPXRbMF0scj1bXTtpZihlLmZvckVhY2goKG8sYSk9PntpLmhhcyhhKXx8ci5wdXNoKGEpLGkuc2V0KGEsbyl9KSxyLmxlbmd0aClmb3IobGV0IG89MTtvPHQubGVuZ3RoO28rKyl7bGV0IGE9dFtvXTtyLmZvckVhY2gocz0+YS5zZXQocyxCRyhuLHMpKSl9fXJldHVybiB0fSh0LHUsYyk7bGV0IHA9ZnVuY3Rpb24obix0KXtsZXQgZT1udWxsLGk9bnVsbDtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmdC5sZW5ndGg/KGU9Zk8odFswXSksdC5sZW5ndGg+MSYmKGk9Zk8odFt0Lmxlbmd0aC0xXSkpKTp0IGluc3RhbmNlb2YgTWFwJiYoZT1mTyh0KSksZXx8aT9uZXcgYm1lKG4sZSxpKTpudWxsfSh0LHUpO3JldHVybiBuZXcgVncodCx1LGwscCl9fX0se3Byb3ZpZGU6cGksdXNlVmFsdWU6IkJyb3dzZXJBbmltYXRpb25zIn0sLi4uUUddLERtZT1be3Byb3ZpZGU6cWIsdXNlQ2xhc3M6T099LHtwcm92aWRlOnBpLHVzZVZhbHVlOiJOb29wQW5pbWF0aW9ucyJ9LC4uLlFHXSxaRz0oKCk9PntjbGFzcyBue3N0YXRpYyB3aXRoQ29uZmlnKGUpe3JldHVybntuZ01vZHVsZTpuLHByb3ZpZGVyczplLmRpc2FibGVBbmltYXRpb25zP0RtZTpxR319fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtwcm92aWRlcnM6cUcsaW1wb3J0czpbd3ddfSksbn0pKCksak89e307ZnVuY3Rpb24gZmUobix0KXtpZihqT1tuXT0oak9bbl18fDApKzEsImZ1bmN0aW9uIj09dHlwZW9mIHQpcmV0dXJuIEhPKG4sKC4uLmkpPT4oey4uLnQoLi4uaSksdHlwZTpufSkpO3N3aXRjaCh0P3QuX2FzOiJlbXB0eSIpe2Nhc2UiZW1wdHkiOnJldHVybiBITyhuLCgpPT4oe3R5cGU6bn0pKTtjYXNlInByb3BzIjpyZXR1cm4gSE8obixpPT4oey4uLmksdHlwZTpufSkpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGNvbmZpZy4iKX19ZnVuY3Rpb24gSE8obix0KXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInR5cGUiLHt2YWx1ZTpuLHdyaXRhYmxlOiExfSl9dmFyIHA4PSJAbmdyeC9zdG9yZS9pbml0IixJZj0oKCk9PntjbGFzcyBuIGV4dGVuZHMgeHJ7Y29uc3RydWN0b3IoKXtzdXBlcih7dHlwZTpwOH0pfW5leHQoZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiXG4gICAgICAgIERpc3BhdGNoIGV4cGVjdGVkIGFuIG9iamVjdCwgaW5zdGVhZCBpdCByZWNlaXZlZCBhIGZ1bmN0aW9uLlxuICAgICAgICBJZiB5b3UncmUgdXNpbmcgdGhlIGNyZWF0ZUFjdGlvbiBmdW5jdGlvbiwgbWFrZSBzdXJlIHRvIGludm9rZSB0aGUgZnVuY3Rpb25cbiAgICAgICAgYmVmb3JlIGRpc3BhdGNoaW5nIHRoZSBhY3Rpb24uIEZvciBleGFtcGxlLCBzb21lQWN0aW9uIHNob3VsZCBiZSBzb21lQWN0aW9uKCkuIik7aWYodHlwZW9mIGU+InUiKXRocm93IG5ldyBUeXBlRXJyb3IoIkFjdGlvbnMgbXVzdCBiZSBvYmplY3RzIik7aWYodHlwZW9mIGUudHlwZT4idSIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQWN0aW9ucyBtdXN0IGhhdmUgYSB0eXBlIHByb3BlcnR5Iik7c3VwZXIubmV4dChlKX1jb21wbGV0ZSgpe31uZ09uRGVzdHJveSgpe3N1cGVyLmNvbXBsZXRlKCl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLEltZT1bSWZdLGg4PW5ldyB0ZSgiQG5ncngvc3RvcmUgSW50ZXJuYWwgUm9vdCBHdWFyZCIpLEtHPW5ldyB0ZSgiQG5ncngvc3RvcmUgSW50ZXJuYWwgSW5pdGlhbCBTdGF0ZSIpLFhPPW5ldyB0ZSgiQG5ncngvc3RvcmUgSW5pdGlhbCBTdGF0ZSIpLG04PW5ldyB0ZSgiQG5ncngvc3RvcmUgUmVkdWNlciBGYWN0b3J5IiksSkc9bmV3IHRlKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBSZWR1Y2VyIEZhY3RvcnkgUHJvdmlkZXIiKSxmOD1uZXcgdGUoIkBuZ3J4L3N0b3JlIEluaXRpYWwgUmVkdWNlcnMiKSx6Tz1uZXcgdGUoIkBuZ3J4L3N0b3JlIEludGVybmFsIEluaXRpYWwgUmVkdWNlcnMiKSwkRz1uZXcgdGUoIkBuZ3J4L3N0b3JlIFN0b3JlIEZlYXR1cmVzIiksZTg9bmV3IHRlKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBTdG9yZSBSZWR1Y2VycyIpLFVPPW5ldyB0ZSgiQG5ncngvc3RvcmUgSW50ZXJuYWwgRmVhdHVyZSBSZWR1Y2VycyIpLHQ4PW5ldyB0ZSgiQG5ncngvc3RvcmUgSW50ZXJuYWwgRmVhdHVyZSBDb25maWdzIiksZzg9bmV3IHRlKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBTdG9yZSBGZWF0dXJlcyIpLG44PW5ldyB0ZSgiQG5ncngvc3RvcmUgSW50ZXJuYWwgRmVhdHVyZSBSZWR1Y2VycyBUb2tlbiIpLF84PW5ldyB0ZSgiQG5ncngvc3RvcmUgRmVhdHVyZSBSZWR1Y2VycyIpLGk4PW5ldyB0ZSgiQG5ncngvc3RvcmUgVXNlciBQcm92aWRlZCBNZXRhIFJlZHVjZXJzIiksRGY9bmV3IHRlKCJAbmdyeC9zdG9yZSBNZXRhIFJlZHVjZXJzIikscjg9bmV3IHRlKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBSZXNvbHZlZCBNZXRhIFJlZHVjZXJzIiksbzg9bmV3IHRlKCJAbmdyeC9zdG9yZSBVc2VyIFJ1bnRpbWUgQ2hlY2tzIENvbmZpZyIpLGE4PW5ldyB0ZSgiQG5ncngvc3RvcmUgSW50ZXJuYWwgVXNlciBSdW50aW1lIENoZWNrcyBDb25maWciKSxZYj1uZXcgdGUoIkBuZ3J4L3N0b3JlIEludGVybmFsIFJ1bnRpbWUgQ2hlY2tzIiksWU89bmV3IHRlKCJAbmdyeC9zdG9yZSBDaGVjayBpZiBBY3Rpb24gdHlwZXMgYXJlIHVuaXF1ZSIpO2Z1bmN0aW9uIGNoKG4sdD17fSl7bGV0IGU9T2JqZWN0LmtleXMobiksaT17fTtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyl7bGV0IGE9ZVtvXTsiZnVuY3Rpb24iPT10eXBlb2YgblthXSYmKGlbYV09blthXSl9bGV0IHI9T2JqZWN0LmtleXMoaSk7cmV0dXJuIGZ1bmN0aW9uKGEscyl7YT12b2lkIDA9PT1hP3Q6YTtsZXQgbD0hMSxjPXt9O2ZvcihsZXQgZD0wO2Q8ci5sZW5ndGg7ZCsrKXtsZXQgdT1yW2RdLGg9YVt1XSxtPSgwLGlbdV0pKGgscyk7Y1t1XT1tLGw9bHx8bSE9PWh9cmV0dXJuIGw/YzphfX1mdW5jdGlvbiBiOCguLi5uKXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoMD09PW4ubGVuZ3RoKXJldHVybiB0O2xldCBlPW5bbi5sZW5ndGgtMV07cmV0dXJuIG4uc2xpY2UoMCwtMSkucmVkdWNlUmlnaHQoKHIsbyk9Pm8ociksZSh0KSl9fWZ1bmN0aW9uIHY4KG4sdCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPjAmJihuPWI4LmFwcGx5KG51bGwsWy4uLnQsbl0pKSwoZSxpKT0+e2xldCByPW4oZSk7cmV0dXJuKG8sYSk9PnIobz12b2lkIDA9PT1vP2k6byxhKX19bmV3IHRlKCJAbmdyeC9zdG9yZSBSb290IFN0b3JlIFByb3ZpZGVyIiksbmV3IHRlKCJAbmdyeC9zdG9yZSBGZWF0dXJlIFN0YXRlIFByb3ZpZGVyIik7dmFyIFFiPWNsYXNzIGV4dGVuZHMgS3R7fSxqdz1jbGFzcyBleHRlbmRzIElme30sR3c9KCgpPT57Y2xhc3MgbiBleHRlbmRzIHhye2NvbnN0cnVjdG9yKGUsaSxyLG8pe3N1cGVyKG8ocixpKSksdGhpcy5kaXNwYXRjaGVyPWUsdGhpcy5pbml0aWFsU3RhdGU9aSx0aGlzLnJlZHVjZXJzPXIsdGhpcy5yZWR1Y2VyRmFjdG9yeT1vfWdldCBjdXJyZW50UmVkdWNlcnMoKXtyZXR1cm4gdGhpcy5yZWR1Y2Vyc31hZGRGZWF0dXJlKGUpe3RoaXMuYWRkRmVhdHVyZXMoW2VdKX1hZGRGZWF0dXJlcyhlKXtsZXQgaT1lLnJlZHVjZSgocix7cmVkdWNlcnM6byxyZWR1Y2VyRmFjdG9yeTphLG1ldGFSZWR1Y2VyczpzLGluaXRpYWxTdGF0ZTpsLGtleTpjfSk9PntsZXQgZD0iZnVuY3Rpb24iPT10eXBlb2Ygbz9mdW5jdGlvbihuKXtsZXQgdD1BcnJheS5pc0FycmF5KG4pJiZuLmxlbmd0aD4wP2I4KC4uLm4pOmU9PmU7cmV0dXJuKGUsaSk9PihlPXQoZSksKHIsbyk9PmUocj12b2lkIDA9PT1yP2k6cixvKSl9KHMpKG8sbCk6djgoYSxzKShvLGwpO3JldHVybiByW2NdPWQscn0se30pO3RoaXMuYWRkUmVkdWNlcnMoaSl9cmVtb3ZlRmVhdHVyZShlKXt0aGlzLnJlbW92ZUZlYXR1cmVzKFtlXSl9cmVtb3ZlRmVhdHVyZXMoZSl7dGhpcy5yZW1vdmVSZWR1Y2VycyhlLm1hcChpPT5pLmtleSkpfWFkZFJlZHVjZXIoZSxpKXt0aGlzLmFkZFJlZHVjZXJzKHtbZV06aX0pfWFkZFJlZHVjZXJzKGUpe3RoaXMucmVkdWNlcnM9ey4uLnRoaXMucmVkdWNlcnMsLi4uZX0sdGhpcy51cGRhdGVSZWR1Y2VycyhPYmplY3Qua2V5cyhlKSl9cmVtb3ZlUmVkdWNlcihlKXt0aGlzLnJlbW92ZVJlZHVjZXJzKFtlXSl9cmVtb3ZlUmVkdWNlcnMoZSl7ZS5mb3JFYWNoKGk9Pnt0aGlzLnJlZHVjZXJzPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIE9iamVjdC5rZXlzKG4pLmZpbHRlcihlPT5lIT09dCkucmVkdWNlKChlLGkpPT5PYmplY3QuYXNzaWduKGUse1tpXTpuW2ldfSkse30pfSh0aGlzLnJlZHVjZXJzLGkpfSksdGhpcy51cGRhdGVSZWR1Y2VycyhlKX11cGRhdGVSZWR1Y2VycyhlKXt0aGlzLm5leHQodGhpcy5yZWR1Y2VyRmFjdG9yeSh0aGlzLnJlZHVjZXJzLHRoaXMuaW5pdGlhbFN0YXRlKSksdGhpcy5kaXNwYXRjaGVyLm5leHQoe3R5cGU6IkBuZ3J4L3N0b3JlL3VwZGF0ZS1yZWR1Y2VycyIsZmVhdHVyZXM6ZX0pfW5nT25EZXN0cm95KCl7dGhpcy5jb21wbGV0ZSgpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKGp3KSxPKFhPKSxPKGY4KSxPKG04KSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCksRm1lPVtHdyx7cHJvdmlkZTpRYix1c2VFeGlzdGluZzpHd30se3Byb3ZpZGU6ancsdXNlRXhpc3Rpbmc6SWZ9XSxaYj0oKCk9PntjbGFzcyBuIGV4dGVuZHMgRWV7bmdPbkRlc3Ryb3koKXt0aGlzLmNvbXBsZXRlKCl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4odHx8KHQ9WG4obikpKShpfHxuKX19KCksbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWN9KSxufSkoKSxObWU9W1piXSxXdz1jbGFzcyBleHRlbmRzIEt0e30sczg9KCgpPT57Y2xhc3MgbiBleHRlbmRzIHhye2NvbnN0cnVjdG9yKGUsaSxyLG8pe3N1cGVyKG8pO2xldCBjPWUucGlwZShCcChYQSkpLnBpcGUoSXQoaSkpLnBpcGUoZnVuY3Rpb24obix0KXtyZXR1cm4gWXQoZnVuY3Rpb24obix0LGUsaSxyKXtyZXR1cm4obyxhKT0+e2xldCBzPWUsbD10LGM9MDtvLnN1YnNjcmliZShIdChhLGQ9PntsZXQgdT1jKys7bD1zP24obCxkLHUpOihzPSEwLGQpLGEubmV4dChsKX0sdm9pZCAwKSl9fShuLHQsYXJndW1lbnRzLmxlbmd0aD49MikpfShMbWUse3N0YXRlOm99KSk7dGhpcy5zdGF0ZVN1YnNjcmlwdGlvbj1jLnN1YnNjcmliZSgoe3N0YXRlOmQsYWN0aW9uOnV9KT0+e3RoaXMubmV4dChkKSxyLm5leHQodSl9KX1uZ09uRGVzdHJveSgpe3RoaXMuc3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLmNvbXBsZXRlKCl9fXJldHVybiBuLklOSVQ9cDgsbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKElmKSxPKFFiKSxPKFpiKSxPKFhPKSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCk7ZnVuY3Rpb24gTG1lKG49e3N0YXRlOnZvaWQgMH0sW3QsZV0pe2xldHtzdGF0ZTppfT1uO3JldHVybntzdGF0ZTplKGksdCksYWN0aW9uOnR9fXZhciBCbWU9W3M4LHtwcm92aWRlOld3LHVzZUV4aXN0aW5nOnM4fV0sSWU9KCgpPT57Y2xhc3MgbiBleHRlbmRzIEt0e2NvbnN0cnVjdG9yKGUsaSxyKXtzdXBlcigpLHRoaXMuYWN0aW9uc09ic2VydmVyPWksdGhpcy5yZWR1Y2VyTWFuYWdlcj1yLHRoaXMuc291cmNlPWV9c2VsZWN0KGUsLi4uaSl7cmV0dXJuIHVuLmNhbGwobnVsbCxlLC4uLmkpKHRoaXMpfWxpZnQoZSl7bGV0IGk9bmV3IG4odGhpcyx0aGlzLmFjdGlvbnNPYnNlcnZlcix0aGlzLnJlZHVjZXJNYW5hZ2VyKTtyZXR1cm4gaS5vcGVyYXRvcj1lLGl9ZGlzcGF0Y2goZSl7dGhpcy5hY3Rpb25zT2JzZXJ2ZXIubmV4dChlKX1uZXh0KGUpe3RoaXMuYWN0aW9uc09ic2VydmVyLm5leHQoZSl9ZXJyb3IoZSl7dGhpcy5hY3Rpb25zT2JzZXJ2ZXIuZXJyb3IoZSl9Y29tcGxldGUoKXt0aGlzLmFjdGlvbnNPYnNlcnZlci5jb21wbGV0ZSgpfWFkZFJlZHVjZXIoZSxpKXt0aGlzLnJlZHVjZXJNYW5hZ2VyLmFkZFJlZHVjZXIoZSxpKX1yZW1vdmVSZWR1Y2VyKGUpe3RoaXMucmVkdWNlck1hbmFnZXIucmVtb3ZlUmVkdWNlcihlKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhXdyksTyhJZiksTyhHdykpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLFZtZT1bSWVdO2Z1bmN0aW9uIHVuKG4sdCwuLi5lKXtyZXR1cm4gZnVuY3Rpb24ocil7bGV0IG87aWYoInN0cmluZyI9PXR5cGVvZiBuKXtsZXQgYT1bdCwuLi5lXS5maWx0ZXIoQm9vbGVhbik7bz1yLnBpcGUoZnVuY3Rpb24oLi4ubil7bGV0IHQ9bi5sZW5ndGg7aWYoMD09PXQpdGhyb3cgbmV3IEVycm9yKCJsaXN0IG9mIHByb3BlcnRpZXMgY2Fubm90IGJlIGVtcHR5LiIpO3JldHVybiBxKGU9PntsZXQgaT1lO2ZvcihsZXQgcj0wO3I8dDtyKyspe2xldCBvPWk/LltuW3JdXTtpZighKHR5cGVvZiBvPCJ1IikpcmV0dXJuO2k9b31yZXR1cm4gaX0pfShuLC4uLmEpKX1lbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IG5ldyBUeXBlRXJyb3IoYFVuZXhwZWN0ZWQgdHlwZSAnJHt0eXBlb2Ygbn0nIGluIHNlbGVjdCBvcGVyYXRvciwgZXhwZWN0ZWQgJ3N0cmluZycgb3IgJ2Z1bmN0aW9uJ2ApO289ci5waXBlKHEoYT0+bihhLHQpKSl9cmV0dXJuIG8ucGlwZShyaSgpKX19dmFyIFFPPSJodHRwczovL25ncnguaW8vZ3VpZGUvc3RvcmUvY29uZmlndXJhdGlvbi9ydW50aW1lLWNoZWNrcyI7ZnVuY3Rpb24gbDgobil7cmV0dXJuIHZvaWQgMD09PW59ZnVuY3Rpb24gYzgobil7cmV0dXJuIG51bGw9PT1ufWZ1bmN0aW9uIHk4KG4pe3JldHVybiBBcnJheS5pc0FycmF5KG4pfWZ1bmN0aW9uIHg4KG4pe3JldHVybiJvYmplY3QiPT10eXBlb2YgbiYmbnVsbCE9PW59ZnVuY3Rpb24gR08obil7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG59ZnVuY3Rpb24gZDgobix0KXtyZXR1cm4gbj09PXR9ZnVuY3Rpb24gQzgobix0PWQ4LGU9ZDgpe2xldCBvLGk9bnVsbCxyPW51bGw7cmV0dXJue21lbW9pemVkOmZ1bmN0aW9uKCl7aWYodm9pZCAwIT09bylyZXR1cm4gby5yZXN1bHQ7aWYoIWkpcmV0dXJuIHI9bi5hcHBseShudWxsLGFyZ3VtZW50cyksaT1hcmd1bWVudHMscjtpZighZnVuY3Rpb24obix0LGUpe2ZvcihsZXQgaT0wO2k8bi5sZW5ndGg7aSsrKWlmKCFlKG5baV0sdFtpXSkpcmV0dXJuITA7cmV0dXJuITF9KGFyZ3VtZW50cyxpLHQpKXJldHVybiByO2xldCBkPW4uYXBwbHkobnVsbCxhcmd1bWVudHMpO3JldHVybiBpPWFyZ3VtZW50cyxlKHIsZCk/cjoocj1kLGQpfSxyZXNldDpmdW5jdGlvbigpe2k9bnVsbCxyPW51bGx9LHNldFJlc3VsdDpmdW5jdGlvbihkKXtvPXtyZXN1bHQ6ZH19LGNsZWFyUmVzdWx0OmZ1bmN0aW9uKCl7bz12b2lkIDB9fX1mdW5jdGlvbiBXKC4uLm4pe3JldHVybiBmdW5jdGlvbihuLHQ9e3N0YXRlRm46Wm1lfSl7cmV0dXJuIGZ1bmN0aW9uKC4uLmUpe2xldCBpPWU7aWYoQXJyYXkuaXNBcnJheShpWzBdKSl7bGV0W2QsLi4udV09aTtpPVsuLi5kLC4uLnVdfWVsc2UgMT09PWkubGVuZ3RoJiZmdW5jdGlvbihuKXtyZXR1cm4hIW4mJiJvYmplY3QiPT10eXBlb2YgbiYmT2JqZWN0LnZhbHVlcyhuKS5ldmVyeSh0PT4iZnVuY3Rpb24iPT10eXBlb2YgdCl9KGlbMF0pJiYoaT1mdW5jdGlvbihuKXtsZXQgdD1PYmplY3QudmFsdWVzKG4pLGU9T2JqZWN0LmtleXMobik7cmV0dXJuWy4uLnQsKC4uLnIpPT5lLnJlZHVjZSgobyxhLHMpPT4oey4uLm8sW2FdOnJbc119KSx7fSldfShpWzBdKSk7bGV0IHI9aS5zbGljZSgwLGkubGVuZ3RoLTEpLG89aVtpLmxlbmd0aC0xXSxhPXIuZmlsdGVyKGQ9PmQucmVsZWFzZSYmImZ1bmN0aW9uIj09dHlwZW9mIGQucmVsZWFzZSkscz1uKGZ1bmN0aW9uKC4uLmQpe3JldHVybiBvLmFwcGx5KG51bGwsZCl9KSxsPUM4KGZ1bmN0aW9uKGQsdSl7cmV0dXJuIHQuc3RhdGVGbi5hcHBseShudWxsLFtkLHIsdSxzXSl9KTtyZXR1cm4gT2JqZWN0LmFzc2lnbihsLm1lbW9pemVkLHtyZWxlYXNlOmZ1bmN0aW9uKCl7bC5yZXNldCgpLHMucmVzZXQoKSxhLmZvckVhY2goZD0+ZC5yZWxlYXNlKCkpfSxwcm9qZWN0b3I6cy5tZW1vaXplZCxzZXRSZXN1bHQ6bC5zZXRSZXN1bHQsY2xlYXJSZXN1bHQ6bC5jbGVhclJlc3VsdH0pfX0oQzgpKC4uLm4pfWZ1bmN0aW9uIFptZShuLHQsZSxpKXtpZih2b2lkIDA9PT1lKXtsZXQgbz10Lm1hcChhPT5hKG4pKTtyZXR1cm4gaS5tZW1vaXplZC5hcHBseShudWxsLG8pfWxldCByPXQubWFwKG89Pm8obixlKSk7cmV0dXJuIGkubWVtb2l6ZWQuYXBwbHkobnVsbCxbLi4ucixlXSl9ZnVuY3Rpb24gTXIobil7cmV0dXJuIFcodD0+dFtuXSx0PT50KX1mdW5jdGlvbiBlZmUobil7cmV0dXJuIG4gaW5zdGFuY2VvZiB0ZT8kbihuKTpufWZ1bmN0aW9uIHRmZShuLHQpe3JldHVybiB0Lm1hcCgoZSxpKT0+e2lmKG5baV1pbnN0YW5jZW9mIHRlKXtsZXQgcj0kbihuW2ldKTtyZXR1cm57a2V5OmUua2V5LHJlZHVjZXJGYWN0b3J5OnIucmVkdWNlckZhY3Rvcnk/ci5yZWR1Y2VyRmFjdG9yeTpjaCxtZXRhUmVkdWNlcnM6ci5tZXRhUmVkdWNlcnM/ci5tZXRhUmVkdWNlcnM6W10saW5pdGlhbFN0YXRlOnIuaW5pdGlhbFN0YXRlfX1yZXR1cm4gZX0pfWZ1bmN0aW9uIG5mZShuKXtyZXR1cm4gbi5tYXAodD0+dCBpbnN0YW5jZW9mIHRlPyRuKHQpOnQpfWZ1bmN0aW9uIE04KG4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuP24oKTpufWZ1bmN0aW9uIGlmZShuLHQpe3JldHVybiBuLmNvbmNhdCh0KX1mdW5jdGlvbiByZmUoKXtpZigkbihJZSx7b3B0aW9uYWw6ITAsc2tpcFNlbGY6ITB9KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgcm9vdCBTdG9yZSBoYXMgYmVlbiBwcm92aWRlZCBtb3JlIHRoYW4gb25jZS4gRmVhdHVyZSBtb2R1bGVzIHNob3VsZCBwcm92aWRlIGZlYXR1cmUgc3RhdGVzIGluc3RlYWQuIik7cmV0dXJuImd1YXJkZWQifWZ1bmN0aW9uIFdPKG4pe09iamVjdC5mcmVlemUobik7bGV0IHQ9R08obik7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG4pLmZvckVhY2goZT0+e2lmKCFlLnN0YXJ0c1dpdGgoIlx1MDI3NSIpJiZmdW5jdGlvbihuLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobix0KX0obixlKSYmKCF0fHwiY2FsbGVyIiE9PWUmJiJjYWxsZWUiIT09ZSYmImFyZ3VtZW50cyIhPT1lKSl7bGV0IGk9bltlXTsoeDgoaSl8fEdPKGkpKSYmIU9iamVjdC5pc0Zyb3plbihpKSYmV08oaSl9fSksbn1mdW5jdGlvbiBxTyhuLHQ9W10pe3JldHVybihsOChuKXx8YzgobikpJiYwPT09dC5sZW5ndGg/e3BhdGg6WyJyb290Il0sdmFsdWU6bn06T2JqZWN0LmtleXMobikucmVkdWNlKChpLHIpPT57aWYoaSlyZXR1cm4gaTtsZXQgbz1uW3JdO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gR08obikmJm4uaGFzT3duUHJvcGVydHkoIlx1MDI3NWNtcCIpfShvKT9pOiEobDgobyl8fGM4KG8pfHxmdW5jdGlvbihuKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIG59KG8pfHxmdW5jdGlvbihuKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBufShvKXx8ZnVuY3Rpb24obil7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBufShvKXx8eTgobykpJiYoZnVuY3Rpb24obil7aWYoIWZ1bmN0aW9uKG4pe3JldHVybiB4OChuKSYmIXk4KG4pfShuKSlyZXR1cm4hMTtsZXQgdD1PYmplY3QuZ2V0UHJvdG90eXBlT2Yobik7cmV0dXJuIHQ9PT1PYmplY3QucHJvdG90eXBlfHxudWxsPT09dH0obyk/cU8obyxbLi4udCxyXSk6e3BhdGg6Wy4uLnQscl0sdmFsdWU6b30pfSwhMSl9ZnVuY3Rpb24gdTgobix0KXtpZighMT09PW4pcmV0dXJuO2xldCBlPW4ucGF0aC5qb2luKCIuIiksaT1uZXcgRXJyb3IoYERldGVjdGVkIHVuc2VyaWFsaXphYmxlICR7dH0gYXQgIiR7ZX0iLiAke1FPfSNzdHJpY3Qke3R9c2VyaWFsaXphYmlsaXR5YCk7dGhyb3cgaS52YWx1ZT1uLnZhbHVlLGkudW5zZXJpYWxpemFibGVQYXRoPWUsaX1mdW5jdGlvbiBsZmUobil7cmV0dXJue3N0cmljdFN0YXRlU2VyaWFsaXphYmlsaXR5OiExLHN0cmljdEFjdGlvblNlcmlhbGl6YWJpbGl0eTohMSxzdHJpY3RTdGF0ZUltbXV0YWJpbGl0eTohMSxzdHJpY3RBY3Rpb25JbW11dGFiaWxpdHk6ITEsc3RyaWN0QWN0aW9uV2l0aGluTmdab25lOiExLHN0cmljdEFjdGlvblR5cGVVbmlxdWVuZXNzOiExfX1mdW5jdGlvbiBjZmUoe3N0cmljdEFjdGlvblNlcmlhbGl6YWJpbGl0eTpuLHN0cmljdFN0YXRlU2VyaWFsaXphYmlsaXR5OnR9KXtyZXR1cm4gZT0+bnx8dD9mdW5jdGlvbihuLHQpe3JldHVybiBmdW5jdGlvbihlLGkpe3QuYWN0aW9uKGkpJiZ1OChxTyhpKSwiYWN0aW9uIik7bGV0IHI9bihlLGkpO3JldHVybiB0LnN0YXRlKCkmJnU4KHFPKHIpLCJzdGF0ZSIpLHJ9fShlLHthY3Rpb246aT0+biYmIVpPKGkpLHN0YXRlOigpPT50fSk6ZX1mdW5jdGlvbiBkZmUoe3N0cmljdEFjdGlvbkltbXV0YWJpbGl0eTpuLHN0cmljdFN0YXRlSW1tdXRhYmlsaXR5OnR9KXtyZXR1cm4gZT0+bnx8dD9mdW5jdGlvbihuLHQpe3JldHVybiBmdW5jdGlvbihlLGkpe2xldCByPXQuYWN0aW9uKGkpP1dPKGkpOmksbz1uKGUscik7cmV0dXJuIHQuc3RhdGUoKT9XTyhvKTpvfX0oZSx7YWN0aW9uOmk9Pm4mJiFaTyhpKSxzdGF0ZTooKT0+dH0pOmV9ZnVuY3Rpb24gWk8obil7cmV0dXJuIG4udHlwZS5zdGFydHNXaXRoKCJAbmdyeCIpfWZ1bmN0aW9uIHVmZSh7c3RyaWN0QWN0aW9uV2l0aGluTmdab25lOm59KXtyZXR1cm4gdD0+bj9mdW5jdGlvbihuLHQpe3JldHVybiBmdW5jdGlvbihlLGkpe2lmKHQuYWN0aW9uKGkpJiYhb3QuaXNJbkFuZ3VsYXJab25lKCkpdGhyb3cgbmV3IEVycm9yKGBBY3Rpb24gJyR7aS50eXBlfScgcnVubmluZyBvdXRzaWRlIE5nWm9uZS4gJHtRT30jc3RyaWN0YWN0aW9ud2l0aGlubmd6b25lYCk7cmV0dXJuIG4oZSxpKX19KHQse2FjdGlvbjplPT5uJiYhWk8oZSl9KTp0fWZ1bmN0aW9uIHBmZShuKXtyZXR1cm5be3Byb3ZpZGU6YTgsdXNlVmFsdWU6bn0se3Byb3ZpZGU6bzgsdXNlRmFjdG9yeTpoZmUsZGVwczpbYThdfSx7cHJvdmlkZTpZYixkZXBzOltvOF0sdXNlRmFjdG9yeTpsZmV9LHtwcm92aWRlOkRmLG11bHRpOiEwLGRlcHM6W1liXSx1c2VGYWN0b3J5OmRmZX0se3Byb3ZpZGU6RGYsbXVsdGk6ITAsZGVwczpbWWJdLHVzZUZhY3Rvcnk6Y2ZlfSx7cHJvdmlkZTpEZixtdWx0aTohMCxkZXBzOltZYl0sdXNlRmFjdG9yeTp1ZmV9XX1mdW5jdGlvbiB3OCgpe3JldHVyblt7cHJvdmlkZTpZTyxtdWx0aTohMCxkZXBzOltZYl0sdXNlRmFjdG9yeTptZmV9XX1mdW5jdGlvbiBoZmUobil7cmV0dXJuIG59ZnVuY3Rpb24gbWZlKG4pe2lmKCFuLnN0cmljdEFjdGlvblR5cGVVbmlxdWVuZXNzKXJldHVybjtsZXQgdD1PYmplY3QuZW50cmllcyhqTykuZmlsdGVyKChbLGVdKT0+ZT4xKS5tYXAoKFtlXSk9PmUpO2lmKHQubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgQWN0aW9uIHR5cGVzIGFyZSByZWdpc3RlcmVkIG1vcmUgdGhhbiBvbmNlLCAke3QubWFwKGU9PmAiJHtlfSJgKS5qb2luKCIsICIpfS4gJHtRT30jc3RyaWN0YWN0aW9udHlwZXVuaXF1ZW5lc3NgKX1mdW5jdGlvbiBmZmUobj17fSx0PXt9KXtyZXR1cm5be3Byb3ZpZGU6aDgsdXNlRmFjdG9yeTpyZmV9LHtwcm92aWRlOktHLHVzZVZhbHVlOnQuaW5pdGlhbFN0YXRlfSx7cHJvdmlkZTpYTyx1c2VGYWN0b3J5Ok04LGRlcHM6W0tHXX0se3Byb3ZpZGU6ek8sdXNlVmFsdWU6bn0se3Byb3ZpZGU6ZTgsdXNlRXhpc3Rpbmc6biBpbnN0YW5jZW9mIHRlP246ek99LHtwcm92aWRlOmY4LGRlcHM6W3pPLFtuZXcgY2YoZTgpXV0sdXNlRmFjdG9yeTplZmV9LHtwcm92aWRlOmk4LHVzZVZhbHVlOnQubWV0YVJlZHVjZXJzP3QubWV0YVJlZHVjZXJzOltdfSx7cHJvdmlkZTpyOCxkZXBzOltEZixpOF0sdXNlRmFjdG9yeTppZmV9LHtwcm92aWRlOkpHLHVzZVZhbHVlOnQucmVkdWNlckZhY3Rvcnk/dC5yZWR1Y2VyRmFjdG9yeTpjaH0se3Byb3ZpZGU6bTgsZGVwczpbSkcscjhdLHVzZUZhY3Rvcnk6djh9LEltZSxGbWUsTm1lLEJtZSxWbWUscGZlKHQucnVudGltZUNoZWNrcyksdzgoKV19ZnVuY3Rpb24gZ2ZlKG4sdCxlPXt9KXtyZXR1cm5be3Byb3ZpZGU6dDgsbXVsdGk6ITAsdXNlVmFsdWU6biBpbnN0YW5jZW9mIE9iamVjdD97fTplfSx7cHJvdmlkZTokRyxtdWx0aTohMCx1c2VWYWx1ZTp7a2V5Om4gaW5zdGFuY2VvZiBPYmplY3Q/bi5uYW1lOm4scmVkdWNlckZhY3Rvcnk6ZSBpbnN0YW5jZW9mIHRlfHwhZS5yZWR1Y2VyRmFjdG9yeT9jaDplLnJlZHVjZXJGYWN0b3J5LG1ldGFSZWR1Y2VyczplIGluc3RhbmNlb2YgdGV8fCFlLm1ldGFSZWR1Y2Vycz9bXTplLm1ldGFSZWR1Y2Vycyxpbml0aWFsU3RhdGU6ZSBpbnN0YW5jZW9mIHRlfHwhZS5pbml0aWFsU3RhdGU/dm9pZCAwOmUuaW5pdGlhbFN0YXRlfX0se3Byb3ZpZGU6ZzgsZGVwczpbdDgsJEddLHVzZUZhY3Rvcnk6dGZlfSx7cHJvdmlkZTpVTyxtdWx0aTohMCx1c2VWYWx1ZTpuIGluc3RhbmNlb2YgT2JqZWN0P24ucmVkdWNlcjp0fSx7cHJvdmlkZTpuOCxtdWx0aTohMCx1c2VFeGlzdGluZzp0IGluc3RhbmNlb2YgdGU/dDpVT30se3Byb3ZpZGU6XzgsbXVsdGk6ITAsZGVwczpbVU8sW25ldyBjZihuOCldXSx1c2VGYWN0b3J5Om5mZX0sdzgoKV19dmFyIEtiPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIsbyxhLHMpe319cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhJZiksTyhRYiksTyhaYiksTyhJZSksTyhoOCw4KSxPKFlPLDgpKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7fSksbn0pKCkscXc9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscixvLGEpe3RoaXMuZmVhdHVyZXM9ZSx0aGlzLmZlYXR1cmVSZWR1Y2Vycz1pLHRoaXMucmVkdWNlck1hbmFnZXI9cjtsZXQgcz1lLm1hcCgobCxjKT0+e2xldCB1PWkuc2hpZnQoKVtjXTtyZXR1cm57Li4ubCxyZWR1Y2Vyczp1LGluaXRpYWxTdGF0ZTpNOChsLmluaXRpYWxTdGF0ZSl9fSk7ci5hZGRGZWF0dXJlcyhzKX1uZ09uRGVzdHJveSgpe3RoaXMucmVkdWNlck1hbmFnZXIucmVtb3ZlRmVhdHVyZXModGhpcy5mZWF0dXJlcyl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oZzgpLE8oXzgpLE8oR3cpLE8oS2IpLE8oWU8sOCkpfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHt9KSxufSkoKSx3cj0oKCk9PntjbGFzcyBue3N0YXRpYyBmb3JSb290KGUsaSl7cmV0dXJue25nTW9kdWxlOktiLHByb3ZpZGVyczpbLi4uZmZlKGUsaSldfX1zdGF0aWMgZm9yRmVhdHVyZShlLGkscj17fSl7cmV0dXJue25nTW9kdWxlOnF3LHByb3ZpZGVyczpbLi4uZ2ZlKGUsaSxyKV19fX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7fSksbn0pKCk7ZnVuY3Rpb24geWUoLi4ubil7cmV0dXJue3JlZHVjZXI6bi5wb3AoKSx0eXBlczpuLm1hcChpPT5pLnR5cGUpfX1mdW5jdGlvbiBncihuLC4uLnQpe2xldCBlPW5ldyBNYXA7Zm9yKGxldCBpIG9mIHQpZm9yKGxldCByIG9mIGkudHlwZXMpe2xldCBvPWUuZ2V0KHIpO2Uuc2V0KHIsbz8ocyxsKT0+aS5yZWR1Y2VyKG8ocyxsKSxsKTppLnJlZHVjZXIpfXJldHVybiBmdW5jdGlvbihpPW4scil7bGV0IG89ZS5nZXQoci50eXBlKTtyZXR1cm4gbz9vKGkscik6aX19dmFyIF9mZT17ZGlzcGF0Y2g6ITAsZnVuY3Rpb25hbDohMSx1c2VFZmZlY3RzRXJyb3JIYW5kbGVyOiEwfSxZdz0iX19AbmdyeC9lZmZlY3RzX2NyZWF0ZV9fIjtmdW5jdGlvbiBfcihuLHQ9e30pe2xldCBlPXQuZnVuY3Rpb25hbD9uOm4oKSxpPXsuLi5fZmUsLi4udH07cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFl3LHt2YWx1ZTppfSksZX1mdW5jdGlvbiBEOChuKXtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKG4pfWZ1bmN0aW9uIEk4KG4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBufWZ1bmN0aW9uIFM4KG4pe3JldHVybiBuLmZpbHRlcihJOCl9ZnVuY3Rpb24geGZlKG4sdCxlKXtsZXQgaT1EOChuKS5jb25zdHJ1Y3Rvci5uYW1lLHI9ZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhuKS5maWx0ZXIoaT0+ISghbltpXXx8IW5baV0uaGFzT3duUHJvcGVydHkoWXcpKSYmbltpXVtZd10uaGFzT3duUHJvcGVydHkoImRpc3BhdGNoIikpLm1hcChpPT4oe3Byb3BlcnR5TmFtZTppLC4uLm5baV1bWXddfSkpfShuKX0obikubWFwKCh7cHJvcGVydHlOYW1lOm8sZGlzcGF0Y2g6YSx1c2VFZmZlY3RzRXJyb3JIYW5kbGVyOnN9KT0+e2xldCBsPSJmdW5jdGlvbiI9PXR5cGVvZiBuW29dP25bb10oKTpuW29dLGM9cz9lKGwsdCk6bDtyZXR1cm4hMT09PWE/Yy5waXBlKGtfKCkpOmMucGlwZShZdCgobix0KT0+e24uc3Vic2NyaWJlKEh0KHQsZT0+e3QubmV4dChBcy5jcmVhdGVOZXh0KGUpKX0sKCk9Pnt0Lm5leHQoQXMuY3JlYXRlQ29tcGxldGUoKSksdC5jb21wbGV0ZSgpfSxlPT57dC5uZXh0KEFzLmNyZWF0ZUVycm9yKGUpKSx0LmNvbXBsZXRlKCl9KSl9KSkucGlwZShxKHU9Pih7ZWZmZWN0Om5bb10sbm90aWZpY2F0aW9uOnUscHJvcGVydHlOYW1lOm8sc291cmNlTmFtZTppLHNvdXJjZUluc3RhbmNlOm59KSkpfSk7cmV0dXJuIHRuKC4uLnIpfXZhciBDZmU9MTA7ZnVuY3Rpb24gQTgobix0LGU9Q2ZlKXtyZXR1cm4gbi5waXBlKGNvKGk9Pih0JiZ0LmhhbmRsZUVycm9yKGkpLGU8PTE/bjpBOChuLHQsZS0xKSkpKX12YXIgRW89KCgpPT57Y2xhc3MgbiBleHRlbmRzIEt0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksZSYmKHRoaXMuc291cmNlPWUpfWxpZnQoZSl7bGV0IGk9bmV3IG47cmV0dXJuIGkuc291cmNlPXRoaXMsaS5vcGVyYXRvcj1lLGl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oWmIpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxufSkoKTtmdW5jdGlvbiBabiguLi5uKXtyZXR1cm4gT2UodD0+bi5zb21lKGU9PiJzdHJpbmciPT10eXBlb2YgZT9lPT09dC50eXBlOmUudHlwZT09PXQudHlwZSkpfXZhciBSOD1uZXcgdGUoIkBuZ3J4L2VmZmVjdHMgSW50ZXJuYWwgUm9vdCBHdWFyZCIpLFh3PW5ldyB0ZSgiQG5ncngvZWZmZWN0cyBVc2VyIFByb3ZpZGVkIEVmZmVjdHMiKSxLTz1uZXcgdGUoIkBuZ3J4L2VmZmVjdHMgSW50ZXJuYWwgUm9vdCBFZmZlY3RzIiksUDg9bmV3IHRlKCJAbmdyeC9lZmZlY3RzIEludGVybmFsIFJvb3QgRWZmZWN0cyBJbnN0YW5jZXMiKSxFOD1uZXcgdGUoIkBuZ3J4L2VmZmVjdHMgSW50ZXJuYWwgRmVhdHVyZSBFZmZlY3RzIiksazg9bmV3IHRlKCJAbmdyeC9lZmZlY3RzIEludGVybmFsIEZlYXR1cmUgRWZmZWN0cyBJbnN0YW5jZSBHcm91cHMiKSxNZmU9bmV3IHRlKCJAbmdyeC9lZmZlY3RzIEVmZmVjdHMgRXJyb3IgSGFuZGxlciIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9PkE4fSksTzg9IkBuZ3J4L2VmZmVjdHMvaW5pdCI7ZmUoTzgpO3ZhciBEZmU9Im5ncnhPbklkZW50aWZ5RWZmZWN0cyIsUGZlPSJuZ3J4T25Jbml0RWZmZWN0cyI7ZnVuY3Rpb24ga2ZlKG4pe3JldHVybiBKTyhuLFBmZSl9ZnVuY3Rpb24gSk8obix0KXtyZXR1cm4gbiYmdCBpbiBuJiYiZnVuY3Rpb24iPT10eXBlb2Ygblt0XX12YXIgRjg9KCgpPT57Y2xhc3MgbiBleHRlbmRzIEVle2NvbnN0cnVjdG9yKGUsaSl7c3VwZXIoKSx0aGlzLmVycm9ySGFuZGxlcj1lLHRoaXMuZWZmZWN0c0Vycm9ySGFuZGxlcj1pfWFkZEVmZmVjdHMoZSl7dGhpcy5uZXh0KGUpfXRvQWN0aW9ucygpe3JldHVybiB0aGlzLnBpcGUoQkMoZT0+ZnVuY3Rpb24obil7cmV0dXJuIk9iamVjdCIhPT1uLmNvbnN0cnVjdG9yLm5hbWUmJiJGdW5jdGlvbiIhPT1uLmNvbnN0cnVjdG9yLm5hbWV9KGUpP0Q4KGUpOmUpLHhuKGU9PmUucGlwZShCQyhPZmUpKSkseG4oZT0+e2xldCBpPWUucGlwZShOQyhvPT5mdW5jdGlvbihuLHQpe3JldHVybiBlPT57bGV0IGk9eGZlKGUsbix0KTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIEpPKG4sIm5ncnhPblJ1bkVmZmVjdHMiKX0oZSk/ZS5uZ3J4T25SdW5FZmZlY3RzKGkpOml9fSh0aGlzLmVycm9ySGFuZGxlcix0aGlzLmVmZmVjdHNFcnJvckhhbmRsZXIpKG8pKSxxKG89PihmdW5jdGlvbihuLHQpe2lmKCJOIj09PW4ubm90aWZpY2F0aW9uLmtpbmQpe2xldCBlPW4ubm90aWZpY2F0aW9uLnZhbHVlOyFmdW5jdGlvbihuKXtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgbiYmbiYmbi50eXBlJiYic3RyaW5nIj09dHlwZW9mIG4udHlwZX0oZSkmJnQuaGFuZGxlRXJyb3IobmV3IEVycm9yKGBFZmZlY3QgJHtmdW5jdGlvbih7cHJvcGVydHlOYW1lOm4sc291cmNlSW5zdGFuY2U6dCxzb3VyY2VOYW1lOmV9KXtsZXQgaT0iZnVuY3Rpb24iPT10eXBlb2YgdFtuXTtyZXR1cm5gIiR7ZX0uJHtTdHJpbmcobil9JHtpPyIoKSI6IiJ9ImB9KG4pfSBkaXNwYXRjaGVkIGFuIGludmFsaWQgYWN0aW9uOiAke2Z1bmN0aW9uKG4pe3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkobil9Y2F0Y2h7cmV0dXJuIG59fShlKX1gKSl9fShvLHRoaXMuZXJyb3JIYW5kbGVyKSxvLm5vdGlmaWNhdGlvbikpLE9lKG89PiJOIj09PW8ua2luZCYmbnVsbCE9by52YWx1ZSksWXQoKG4sdCk9PntuLnN1YnNjcmliZShIdCh0LGU9PktBKGUsdCkpKX0pKTtyZXR1cm4gdG4oaSxlLnBpcGUoTHQoMSksT2Uoa2ZlKSxxKG89Pm8ubmdyeE9uSW5pdEVmZmVjdHMoKSkpKX0pKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhsYSksTyhNZmUpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxufSkoKTtmdW5jdGlvbiBPZmUobil7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBKTyhuLERmZSl9KG4pP24ubmdyeE9uSWRlbnRpZnlFZmZlY3RzKCk6IiJ9dmFyIE44PSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpKXt0aGlzLmVmZmVjdFNvdXJjZXM9ZSx0aGlzLnN0b3JlPWksdGhpcy5lZmZlY3RzU3Vic2NyaXB0aW9uPW51bGx9Z2V0IGlzU3RhcnRlZCgpe3JldHVybiEhdGhpcy5lZmZlY3RzU3Vic2NyaXB0aW9ufXN0YXJ0KCl7dGhpcy5lZmZlY3RzU3Vic2NyaXB0aW9ufHwodGhpcy5lZmZlY3RzU3Vic2NyaXB0aW9uPXRoaXMuZWZmZWN0U291cmNlcy50b0FjdGlvbnMoKS5zdWJzY3JpYmUodGhpcy5zdG9yZSkpfW5nT25EZXN0cm95KCl7dGhpcy5lZmZlY3RzU3Vic2NyaXB0aW9uJiYodGhpcy5lZmZlY3RzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5lZmZlY3RzU3Vic2NyaXB0aW9uPW51bGwpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKEY4KSxPKEllKSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCksTDg9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscixvLGEscyxsKXt0aGlzLnNvdXJjZXM9ZSxpLnN0YXJ0KCk7Zm9yKGxldCBjIG9mIG8pZS5hZGRFZmZlY3RzKGMpO3IuZGlzcGF0Y2goe3R5cGU6Tzh9KX1hZGRFZmZlY3RzKGUpe3RoaXMuc291cmNlcy5hZGRFZmZlY3RzKGUpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKEY4KSxPKE44KSxPKEllKSxPKFA4KSxPKEtiLDgpLE8ocXcsOCksTyhSOCw4KSl9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe30pLG59KSgpLE5mZT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSxyLG8pe2xldCBhPWkuZmxhdCgpO2ZvcihsZXQgcyBvZiBhKWUuYWRkRWZmZWN0cyhzKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhMOCksTyhrOCksTyhLYiw4KSxPKHF3LDgpKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7fSksbn0pKCksdG89KCgpPT57Y2xhc3MgbntzdGF0aWMgZm9yRmVhdHVyZSguLi5lKXtsZXQgaT1lLmZsYXQoKSxyPVM4KGkpO3JldHVybntuZ01vZHVsZTpOZmUscHJvdmlkZXJzOltyLHtwcm92aWRlOkU4LG11bHRpOiEwLHVzZVZhbHVlOml9LHtwcm92aWRlOlh3LG11bHRpOiEwLHVzZVZhbHVlOltdfSx7cHJvdmlkZTprOCxtdWx0aTohMCx1c2VGYWN0b3J5OlQ4LGRlcHM6W0U4LFh3XX1dfX1zdGF0aWMgZm9yUm9vdCguLi5lKXtsZXQgaT1lLmZsYXQoKSxyPVM4KGkpO3JldHVybntuZ01vZHVsZTpMOCxwcm92aWRlcnM6W3Ise3Byb3ZpZGU6S08sdXNlVmFsdWU6W2ldfSx7cHJvdmlkZTpSOCx1c2VGYWN0b3J5OkxmZX0se3Byb3ZpZGU6WHcsbXVsdGk6ITAsdXNlVmFsdWU6W119LHtwcm92aWRlOlA4LHVzZUZhY3Rvcnk6VDgsZGVwczpbS08sWHddfV19fX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7fSksbn0pKCk7ZnVuY3Rpb24gVDgobix0KXtsZXQgZT1bXTtmb3IobGV0IGkgb2YgbillLnB1c2goLi4uaSk7Zm9yKGxldCBpIG9mIHQpZS5wdXNoKC4uLmkpO3JldHVybiBlLm1hcChpPT5JOChpKT8kbihpKTppKX1mdW5jdGlvbiBMZmUoKXtsZXQgbj0kbihOOCx7b3B0aW9uYWw6ITAsc2tpcFNlbGY6ITB9KSx0PSRuKEtPLHtzZWxmOiEwfSk7aWYoKDEhPT10Lmxlbmd0aHx8MCE9PXRbMF0ubGVuZ3RoKSYmbil0aHJvdyBuZXcgVHlwZUVycm9yKCJFZmZlY3RzTW9kdWxlLmZvclJvb3QoKSBjYWxsZWQgdHdpY2UuIEZlYXR1cmUgbW9kdWxlcyBzaG91bGQgdXNlIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZSgpIGluc3RlYWQuIik7cmV0dXJuImd1YXJkZWQifXZhciBDbj0oKCk9PntyZXR1cm4obj1Dbnx8KENuPXt9KSlbbi5VTktOT1dOPTBdPSJVTktOT1dOIixuW24uRVhQRVJJTUVOVFM9MV09IkVYUEVSSU1FTlRTIixuW24uRVhQRVJJTUVOVD0yXT0iRVhQRVJJTUVOVCIsbltuLkNPTVBBUkVfRVhQRVJJTUVOVD0zXT0iQ09NUEFSRV9FWFBFUklNRU5UIixuW24uQ0FSRD00XT0iQ0FSRCIsbltuLk5PVF9TRVQ9NV09Ik5PVF9TRVQiLENuO3ZhciBufSkoKSxRdz0iZGVmYXVsdEV4cGVyaW1lbnRJZCIsQWY9KCgpPT57cmV0dXJuKG49QWZ8fChBZj17fSkpW24uRVhQRVJJTUVOVFM9MF09IkVYUEVSSU1FTlRTIixuW24uREFTSEJPQVJEPTFdPSJEQVNIQk9BUkQiLEFmO3ZhciBufSkoKTtmdW5jdGlvbiBSZihuKXtyZXR1cm4gbi5zcGxpdCgiLCIpLm1hcCh0PT57bGV0IGU9dC5pbmRleE9mKCI6Iik7aWYoZTwwKXRocm93IG5ldyBFcnJvcihgRXhwZWN0IGNvbG9uIGRlbGltaXRpbmcgbmFtZSBhbmQgSUQ6ICR7dH1gKTtsZXQgaT10LnNsaWNlKDAsZSkscj10LnNsaWNlKGUrMSk7aWYoIXIpdGhyb3cgbmV3IEVycm9yKGBFeHBlY3QgaWQgdG8gYmUgbm9uLWZhbHN5OiAke3R9YCk7cmV0dXJue25hbWU6aSxpZDpyfX0pfWZ1bmN0aW9uIEI4KG4pe3JldHVybiBuLm1hcCgoe2FsaWFzOnQsaWQ6ZX0pPT5gJHt0fToke2V9YCkuam9pbigiLCIpfWZ1bmN0aW9uIEpiKG4sdCl7c3dpdGNoKG4pe2Nhc2UgQ24uRVhQRVJJTUVOVDpyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsImV4cGVyaW1lbnRJZCIpP1t0LmV4cGVyaW1lbnRJZF06W1F3XTtjYXNlIENuLkNBUkQ6e2xldCBlPXQuZXhwZXJpbWVudElkcztyZXR1cm4gZS5pbmRleE9mKCIsIik8MD9bZV06UmYoZSkubWFwKCh7aWQ6aX0pPT5pKX1jYXNlIENuLkNPTVBBUkVfRVhQRVJJTUVOVDpyZXR1cm4gUmYodC5leHBlcmltZW50SWRzKS5tYXAoKHtpZDppfSk9PmkpO2RlZmF1bHQ6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIFZvKG4sdCl7aWYoIW58fCF0KXJldHVybiBuPT09dDtpZihuLnJvdXRlS2luZCE9PXQucm91dGVLaW5kKXJldHVybiExO2xldCBlPUpiKG4ucm91dGVLaW5kLG4ucGFyYW1zKSxpPUpiKHQucm91dGVLaW5kLHQucGFyYW1zKTtpZihudWxsPT09ZXx8bnVsbD09PWkpcmV0dXJuIGU9PT1pO2lmKGUubGVuZ3RoIT09aS5sZW5ndGgpcmV0dXJuITE7bGV0IHI9aS5zb3J0KCk7cmV0dXJuIGUuc29ydCgpLmV2ZXJ5KChvLGEpPT5yW2FdPT09byl9ZnVuY3Rpb24gJE8obil7c3dpdGNoKG4pe2Nhc2UgQ24uRVhQRVJJTUVOVFM6cmV0dXJuIEFmLkVYUEVSSU1FTlRTO2Nhc2UgQ24uRVhQRVJJTUVOVDpjYXNlIENuLkNBUkQ6Y2FzZSBDbi5DT01QQVJFX0VYUEVSSU1FTlQ6cmV0dXJuIEFmLkRBU0hCT0FSRDtjYXNlIENuLlVOS05PV046Y2FzZSBDbi5OT1RfU0VUOnJldHVybiBudWxsfX1mdW5jdGlvbiBadyhuLHQsZSl7bGV0IGk9JE8obik7cmV0dXJuIG51bGwhPT1pJiYhZS5zb21lKHI9PnIuZGVlcExpbmtHcm91cD09PWkmJnIubmFtZXNwYWNlSWQ9PT10KX12YXIgVThfZ2V0SHJlZj0oKT0+d2luZG93LmxvY2F0aW9uLmhyZWYsZGg9KCgpPT57Y2xhc3MgbntnZXRIcmVmKCl7cmV0dXJuIFU4X2dldEhyZWYoKX1nZXRTZWFyY2goKXtsZXQgZT1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLGk9W107cmV0dXJuIGUuZm9yRWFjaCgocixvKT0+e2kucHVzaCh7a2V5Om8sdmFsdWU6cn0pfSksaX1nZXRIYXNoKCl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5oYXNofWdldFBhdGgoKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfWdldEhpc3RvcnlTdGF0ZSgpe3JldHVybiB3aW5kb3cuaGlzdG9yeS5zdGF0ZX1yZXBsYWNlU3RhdGVVcmwoZSl7d2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHdpbmRvdy5oaXN0b3J5LnN0YXRlLCIiLGUpfXB1c2hTdGF0ZVVybChlKXt3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUobnVsbCwiIixlKX1yZXBsYWNlU3RhdGVEYXRhKGUpe3dpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShlLCIiKX1vblBvcFN0YXRlKCl7cmV0dXJuIEVpKHdpbmRvdywicG9wc3RhdGUiKS5waXBlKHEoZT0+KHtwYXRobmFtZTp0aGlzLmdldFBhdGgoKSxzdGF0ZTplLnN0YXRlfSkpKX1nZXRSZXNvbHZlZFBhdGgoZSl7cmV0dXJuIG5ldyBVUkwoZSxVOF9nZXRIcmVmKCkpLnBhdGhuYW1lfWdldEZ1bGxQYXRoKGUsaSxyKXtsZXQgbz10aGlzLmdldFJlc29sdmVkUGF0aChlKSxhPSIiO3JldHVybiBpLmxlbmd0aCYmKGE9Ij8iK2Z1bmN0aW9uKG4pe2xldCB0PW5ldyBVUkxTZWFyY2hQYXJhbXM7Zm9yKGxldHtrZXk6ZSx2YWx1ZTppfW9mIG4pdC5hcHBlbmQoZSxpKTtyZXR1cm4gdH0oaSkudG9TdHJpbmcoKSksYCR7b30ke2F9JHtyP3RoaXMuZ2V0SGFzaCgpOiIifWB9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLHVoPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5hcHBSb290PXRoaXMuZ2V0QXBwUm9vdEZyb21NZXRhRWxlbWVudChlKX1nZXRBcHBSb290RnJvbU1ldGFFbGVtZW50KGUpe2xldCBpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQgbWV0YVtuYW1lPSJ0Yi1yZWxhdGl2ZS1yb290Il0nKTtpZighaSlyZXR1cm4iLyI7bGV0e3BhdGhuYW1lOnJ9PW5ldyBVUkwoaS5jb250ZW50LGUuZ2V0SHJlZigpKTtyZXR1cm4gci5yZXBsYWNlKC9cLyokLywiLyIpfWdldEFic1BhdGhuYW1lV2l0aEFwcFJvb3QoZSl7cmV0dXJuIHRoaXMuYXBwUm9vdC5zbGljZSgwLC0xKStlfWdldEFwcFJvb3RsZXNzUGF0aG5hbWUoZSl7cmV0dXJuIGUuc3RhcnRzV2l0aCh0aGlzLmFwcFJvb3QpPyIvIitlLnNsaWNlKHRoaXMuYXBwUm9vdC5sZW5ndGgpOmV9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oZGgpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWN9KSxufSkoKSxQZj0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7cHJvdmlkZXJzOltkaF19KSxufSkoKSxrZj0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7cHJvdmlkZXJzOlt1aF0saW1wb3J0czpbUGZdfSksbn0pKCksbkY9bmV3IHRlKCJbQXBwIFJvdXRpbmddIERpcnR5IFVwZGF0ZXMiKSxLdz0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuZGlydHlVcGRhdGVzU2VsZWN0b3JGYWN0b3JpZXM9ZX1nZXREaXJ0eVVwZGF0ZXNTZWxlY3RvcnMoKXtyZXR1cm4gdGhpcy5kaXJ0eVVwZGF0ZXNTZWxlY3RvckZhY3Rvcmllcz8/W119c3RhdGljIHJlZ2lzdGVyRGlydHlVcGRhdGVzKGUpe3JldHVybntuZ01vZHVsZTpuLHByb3ZpZGVyczpbe3Byb3ZpZGU6bkYsbXVsdGk6ITAsdXNlRmFjdG9yeTplfV19fX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKG5GLDgpKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7fSksbn0pKCksajg9ZmUoIltBcHAgUm91dGluZ10gRGlzY2FyZGluZyBVbnNhdmVkIFVwZGF0ZXMiKSxmdT1mZSgiW0FwcCBSb3V0aW5nXSBTdGF0ZSBSZWh5ZHJhdGVkIEZyb20gVXJsIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksSnc9ZmUoIltBcHAgUm91dGluZ10gUm91dGUgQ29uZmlnIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGlGPWZlKCJbQXBwIFJvdXRpbmddIEluIEFwcCBOYXZpZ2F0aW9uIFJlcXVlc3RlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLE9mPWZlKCJbQXBwIFJvdXRpbmddIEluIEFwcCBOYXZpZ2F0aW5nIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksTmE9ZmUoIltBcHAgUm91dGluZ10gSW4gQXBwIE5hdmlnYXRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLG9GPW5ldyB0ZSgiW0FwcCBSb3V0aW5nXSBQcm9ncmFtbWF0aWNhbCBOYXZpZ2F0aW9uIFByb3ZpZGVyIiksJHc9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLnByb3ZpZGVycz1uZXcgTWFwO2ZvcihsZXQgaSBvZiBlfHxbXSl7aWYodGhpcy5wcm92aWRlcnMuaGFzKGkuYWN0aW9uQ3JlYXRvci50eXBlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgIiR7aS5hY3Rpb25DcmVhdG9yLnR5cGV9IiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgZm9yIG5hdi4gTXVsdGlwbGUgbmF2aWdhdGlvbnMgb24gc2FtZSBraWNrIGlzIG5vdCBhbGxvd2VkLmApO3RoaXMucHJvdmlkZXJzLnNldChpLmFjdGlvbkNyZWF0b3IudHlwZSxpLmxhbWJkYSl9fWdldE5hdmlnYXRpb24oZSl7bGV0IGk9dGhpcy5wcm92aWRlcnMuZ2V0KGUudHlwZSk7cmV0dXJuIGk/aShlKTpudWxsfXN0YXRpYyByZWdpc3RlclByb2dyYW1tYXRpY2FsTmF2aWdhdGlvbihlKXtyZXR1cm57bmdNb2R1bGU6bixwcm92aWRlcnM6W3twcm92aWRlOm9GLG11bHRpOiEwLHVzZUZhY3Rvcnk6ZX1dfX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhvRiw4KSl9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe30pLG59KSgpO2Z1bmN0aW9uICRiKG4pe3JldHVybiBudWxsIT1uLnJvdXRlS2luZH1mdW5jdGlvbiBsRihuKXtyZXR1cm4gcTgobikubWFwKGU9PntsZXQgaT1lLnN0YXJ0c1dpdGgoIjoiKTtyZXR1cm4gaT97cGF0aFBhcnQ6ZSxpc1BhcmFtOiEwLHBhcmFtTmFtZTplLnNsaWNlKDEpfTp7cGF0aFBhcnQ6ZSxpc1BhcmFtOml9fSl9dmFyIEZmPWNsYXNze3N0YXRpYyBnZXRNYXRjaGVyKHQpe3JldHVybiAkYih0KT9uZXcgZXYodCk6dm9pZCAwIT09dC5yZWRpcmVjdGlvblBhdGg/bmV3IGFGKHQpOm5ldyBzRih0KX1jb25zdHJ1Y3Rvcih0KXt0aGlzLnZhbGlkYXRlQ29uZmlnKHQpLHRoaXMucGF0aEZyYWdtZW50cz1sRih0LnBhdGgpLHRoaXMucGF0aE1hdGNoZXJzPXRoaXMuZ2V0UGF0aE1hdGNoZXJzKHRoaXMucGF0aEZyYWdtZW50cyl9dmFsaWRhdGVDb25maWcoe3BhdGg6dH0pe2lmKCF0LnN0YXJ0c1dpdGgoIi8iKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgY29uZmlnLnBhdGggc2hvdWxkIHN0YXJ0IHdpdGggJy8nLiAke3R9YCk7bGV0IGU9MDtmb3IoOyhlPXQuaW5kZXhPZigiOiIsZSsxKSk+PTA7KXtpZigiLyIhPT10W2UtMV0pdGhyb3cgbmV3IFJhbmdlRXJyb3IoYGNvbmZpZy5wYXRoIHBhcmFtZXRlciBzaG91bGQgY29tZSBhZnRlciAnLycuICR7dH1gKTtpZih2b2lkIDA9PT10W2UrMV18fCIvIj09PXRbZSsxXSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgY29uZmlnLnBhdGggcGFyYW1ldGVyIHNob3VsZCBoYXZlIG5vbi1lbXB0eSBuYW1lLiAke3R9YCl9fWdldFBhdGhNYXRjaGVycyh0KXtyZXR1cm4gdC5tYXAoZT0+e2xldHtwYXRoUGFydDppfT1lO3JldHVybiBlLmlzUGFyYW0/cj0+KHtpc1BhcmFtUGF0aFBhcnQ6ITAscGFydE1hdGNoZWQ6ITAscGFyYW1OYW1lOmUucGFyYW1OYW1lLHBhcmFtVmFsdWU6cn0pOnI9Pih7aXNQYXJhbVBhdGhQYXJ0OiExLHBhcnRNYXRjaGVkOnI9PT1pfSl9KX1tYXRjaCh0KXtsZXQgZT17fTtpZih0aGlzLnBhdGhNYXRjaGVycy5sZW5ndGghPT10Lmxlbmd0aClyZXR1cm57cmVzdWx0OiExfTtsZXQgaT0wO2ZvcihsZXQgciBvZiB0aGlzLnBhdGhNYXRjaGVycyl7bGV0IGE9cih0W2krK10pO2lmKCFhLnBhcnRNYXRjaGVkKXJldHVybntyZXN1bHQ6ITF9O2EuaXNQYXJhbVBhdGhQYXJ0JiYoZT17Li4uZSxbYS5wYXJhbU5hbWVdOmEucGFyYW1WYWx1ZX0pfXJldHVybntyZXN1bHQ6ITAscGFyYW1zOmUscGF0aFBhcnRzOnQsaXNSZWRpcmVjdGlvbjohMSxyZWRpcmVjdGlvblF1ZXJ5UGFyYW1zOnZvaWQgMH19bWF0Y2hCeVBhcmFtcyh0KXtyZXR1cm57cmVzdWx0OiEwLHBhcmFtczp0LHBhdGhQYXJ0czp0aGlzLnJlcHJvamVjdFBhdGhCeVBhcmFtcyh0aGlzLnBhdGhGcmFnbWVudHMsdCksaXNSZWRpcmVjdGlvbjohMSxyZWRpcmVjdGlvblF1ZXJ5UGFyYW1zOnZvaWQgMH19cmVwcm9qZWN0UGF0aEJ5UGFyYW1zKHQsZSl7bGV0IGk9W107Zm9yKGxldCByIG9mIHQpaWYoci5pc1BhcmFtKXtsZXR7cGFyYW1OYW1lOm99PXI7aWYoIWUuaGFzT3duUHJvcGVydHkobykpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEZhaWxlZCB0byByZXByb2plY3QgcGFyYW1ldGVyLiAiJHtvfSIgcGFyYW1ldGVyIHNob3VsZCBiZSBwcmVzZW50LmApO2kucHVzaChlW29dKX1lbHNlIGkucHVzaChyLnBhdGhQYXJ0KTtyZXR1cm4gaX19LGV2PWNsYXNzIGV4dGVuZHMgRmZ7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5kZWZpbml0aW9uPXR9fSxhRj1jbGFzcyBleHRlbmRzIEZme2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMuZGVmaW5pdGlvbj10LHRoaXMucmVkaXJlY3Rpb25GcmFnbWVudHM9bEYodC5yZWRpcmVjdGlvblBhdGgpfW1hdGNoKHQpe2xldCBlPXN1cGVyLm1hdGNoKHQpO2lmKCFlLnJlc3VsdClyZXR1cm4gZTtsZXQgaT10aGlzLnJlcHJvamVjdFBhdGhCeVBhcmFtcyh0aGlzLnJlZGlyZWN0aW9uRnJhZ21lbnRzLGUucGFyYW1zKTtyZXR1cm57cmVzdWx0OiEwLHBhcmFtczplLnBhcmFtcyxwYXRoUGFydHM6aSxpc1JlZGlyZWN0aW9uOiEwLHJlZGlyZWN0aW9uUXVlcnlQYXJhbXM6dm9pZCAwfX19LHNGPWNsYXNzIGV4dGVuZHMgRmZ7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5kZWZpbml0aW9uPXR9bWF0Y2godCl7bGV0IGU9c3VwZXIubWF0Y2godCk7aWYoIWUucmVzdWx0KXJldHVybiBlO2xldHtwYXRoUGFydHM6aSxxdWVyeVBhcmFtczpyfT10aGlzLmRlZmluaXRpb24ucmVkaXJlY3Rvcih0KTtyZXR1cm57cmVzdWx0OiEwLHBhcmFtczplLnBhcmFtcyxwYXRoUGFydHM6aSxpc1JlZGlyZWN0aW9uOiEwLHJlZGlyZWN0aW9uUXVlcnlQYXJhbXM6cn19fSx0dj1jbGFzc3tjb25zdHJ1Y3Rvcih0LGU9Myl7aWYodGhpcy5tYXhSZWRpcmVjdGlvbj1lLGU8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigibWF4UmVkaXJlY3Rpb24gaGFzIHRvIGJlIG5vbi1uZWdhdGl2ZSBudW1iZXIiKTt0aGlzLnZhbGlkYXRlUm91dGVDb25maWdzKHQpLHRoaXMuZGVmYXVsdFJvdXRlQ29uZmlnPW51bGwsdGhpcy5yb3V0ZUtpbmRUb0NvbmNyZXRlQ29uZmlnTWF0Y2hlcnM9bmV3IE1hcCx0aGlzLmNvbmZpZ01hdGNoZXJzPVtdO2ZvcihsZXQgaSBvZiB0KXtsZXQgcj1GZi5nZXRNYXRjaGVyKGkpO3RoaXMuY29uZmlnTWF0Y2hlcnMucHVzaChyKSxyIGluc3RhbmNlb2YgZXYmJih0aGlzLnJvdXRlS2luZFRvQ29uY3JldGVDb25maWdNYXRjaGVycy5zZXQoci5kZWZpbml0aW9uLnJvdXRlS2luZCxyKSxyLmRlZmluaXRpb24uZGVmYXVsdFJvdXRlJiYodGhpcy5kZWZhdWx0Um91dGVDb25maWc9cikpfX12YWxpZGF0ZVJvdXRlQ29uZmlncyh0KXtsZXQgZT10LmZpbHRlcigkYiksaT1lLmZpbHRlcihvPT5vLmRlZmF1bHRSb3V0ZSk7aWYoaS5sZW5ndGg+MSl7bGV0IG89aS5tYXAoKHtwYXRoOmF9KT0+YSkuam9pbigiLCAiKTt0aHJvdyBuZXcgUmFuZ2VFcnJvcihgVGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgZGVmYXVsdFJvdXRlcy4gJHtvfWApfWlmKDE9PT1pLmxlbmd0aCl7bGV0e3BhdGg6b309aVswXTtpZihCb29sZWFuKGxGKG8pLmZpbmQoKHtpc1BhcmFtOnN9KT0+cykpKXRocm93IG5ldyBSYW5nZUVycm9yKGBBIGRlZmF1bHRSb3V0ZSBjYW5ub3QgaGF2ZSBhbnkgcGFyYW1zLiAke299YCl9bGV0IHI9bmV3IFNldDtmb3IobGV0e3JvdXRlS2luZDpvfW9mIGUpe2lmKHIuaGFzKG8pKXRocm93IG5ldyBSYW5nZUVycm9yKGBNdWx0aXBsZSByb3V0ZSBjb25maWd1cmF0aW9uIGZvciBraW5kOiAke299LiBDb25maWd1cmF0aW9ucyBzaG91bGQgaGF2ZSB1bmlxdWUgcm91dGVLaW5kc2ApO3IuYWRkKG8pfX1nZW5lcmF0ZUFjdGlvbih0LGUpe3JldHVybiB0LmFjdGlvbkdlbmVyYXRvcj90LmFjdGlvbkdlbmVyYXRvcihlKTpudWxsfW1hdGNoKHQpe2lmKCF0LnBhdGhuYW1lLnN0YXJ0c1dpdGgoIi8iKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignTmF2aWdhdGlvbiBoYXMgdG8gbWFkZSB3aXRoIHBhdGhuYW1lIHRoYXQgc3RhcnRzIHdpdGggIi8iJyk7bGV0IG8sZT1xOCh0LnBhdGhuYW1lKSxpPTAscj0hMTtmb3IoOzspe2xldCBhPSExO2ZvcihsZXQgcyBvZiB0aGlzLmNvbmZpZ01hdGNoZXJzKXtsZXQgbD1zLm1hdGNoKGUpO2lmKGwucmVzdWx0KXthPSEwO2xldHtwYXJhbXM6YyxwYXRoUGFydHM6ZCxpc1JlZGlyZWN0aW9uOnV9PWw7aWYodSl7ZT1kLHI9ITAsbz1sLnJlZGlyZWN0aW9uUXVlcnlQYXJhbXM7YnJlYWt9aWYoIShzIGluc3RhbmNlb2YgZXYpKXRocm93IG5ldyBSYW5nZUVycm9yKCJObyBjb25jcmV0ZSByb3V0ZSBkZWZpbml0aW9uIGBtYXRjaGAgcmV0dXJuIHJlZGlyZWN0aW9uIik7bGV0e2RlZmluaXRpb246cH09cyxoPXtyb3V0ZUtpbmQ6cC5yb3V0ZUtpbmQscGFyYW1zOmMscGF0aG5hbWU6VzgoZCksZGVlcExpbmtQcm92aWRlcjpwLmRlZXBMaW5rUHJvdmlkZXJ8fG51bGwsYWN0aW9uOnRoaXMuZ2VuZXJhdGVBY3Rpb24ocCxkKX07cmV0dXJuIHI/ey4uLmgsb3JpZ2luYXRlRnJvbVJlZGlyZWN0aW9uOiEwLHJlZGlyZWN0aW9uT25seVF1ZXJ5UGFyYW1zOm99OnsuLi5oLG9yaWdpbmF0ZUZyb21SZWRpcmVjdGlvbjohMX19fWlmKHImJmkrKywhYXx8aT50aGlzLm1heFJlZGlyZWN0aW9uKWJyZWFrfWlmKGk+dGhpcy5tYXhSZWRpcmVjdGlvbil0aHJvdyBuZXcgRXJyb3IoYFBvdGVudGlhbCByZWRpcmVjdGlvbiBsb29wIChyZWRpcmVjdGluZyBtb3JlIHRoYW4gJHt0aGlzLm1heFJlZGlyZWN0aW9ufSB0aW1lcy4gUGxlYXNlIGRvIG5vdCBoYXZlIGN5Y2xlcyBpbiB0aGUgcm91dGVzLmApO2lmKHRoaXMuZGVmYXVsdFJvdXRlQ29uZmlnKXtsZXR7ZGVmaW5pdGlvbjphfT10aGlzLmRlZmF1bHRSb3V0ZUNvbmZpZztyZXR1cm57cm91dGVLaW5kOmEucm91dGVLaW5kLGRlZXBMaW5rUHJvdmlkZXI6YS5kZWVwTGlua1Byb3ZpZGVyPz9udWxsLHBhdGhuYW1lOmEucGF0aCxwYXJhbXM6e30sb3JpZ2luYXRlRnJvbVJlZGlyZWN0aW9uOiEwLHJlZGlyZWN0aW9uT25seVF1ZXJ5UGFyYW1zOnZvaWQgMCxhY3Rpb246dGhpcy5nZW5lcmF0ZUFjdGlvbihhLGUpfX1yZXR1cm4gbnVsbH1tYXRjaEJ5Um91dGVLaW5kKHQsZSl7bGV0IGk9dGhpcy5yb3V0ZUtpbmRUb0NvbmNyZXRlQ29uZmlnTWF0Y2hlcnMuZ2V0KHQpO2lmKCFpKXRocm93IG5ldyBSYW5nZUVycm9yKGBSZXF1aXJlcyBjb25maWd1cmF0aW9uIGZvciByb3V0ZUtpbmQ6ICR7dH1gKTtsZXQgcj1pLm1hdGNoQnlQYXJhbXMoZSk7cmV0dXJue3JvdXRlS2luZDp0LHBhcmFtczplLHBhdGhuYW1lOlc4KHIucGF0aFBhcnRzKSxkZWVwTGlua1Byb3ZpZGVyOmkuZGVmaW5pdGlvbi5kZWVwTGlua1Byb3ZpZGVyfHxudWxsLG9yaWdpbmF0ZUZyb21SZWRpcmVjdGlvbjohMSxhY3Rpb246dGhpcy5nZW5lcmF0ZUFjdGlvbihpLmRlZmluaXRpb24sci5wYXRoUGFydHMpfX19O2Z1bmN0aW9uIHE4KG4pe3JldHVybiBuLnNwbGl0KCIvIikuc2xpY2UoMSl9ZnVuY3Rpb24gVzgobil7cmV0dXJuIi8iK24uam9pbigiLyIpfXZhciBjRj1uZXcgdGUoIltBcHAgUm91dGluZ10gUm91dGUgQ29uZmlnIiksUmw9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXtpZih0aGlzLnJvdXRlS2luZFRvTmdDb21wb25lbnQ9bmV3IE1hcCwhZSlyZXR1cm4gdm9pZCh0aGlzLnJvdXRlQ29uZmlncz1uZXcgdHYoW10pKTtsZXQgaT1bXTtmb3IobGV0IHIgb2YgZSlmb3IobGV0IG8gb2YgcilpLnB1c2gobyk7dGhpcy5yb3V0ZUNvbmZpZ3M9bmV3IHR2KGkpLGkuZm9yRWFjaChyPT57JGIocikmJnRoaXMucm91dGVLaW5kVG9OZ0NvbXBvbmVudC5zZXQoci5yb3V0ZUtpbmQsci5uZ0NvbXBvbmVudCl9KX1nZXRSZWdpc3RlcmVkUm91dGVLaW5kcygpe3JldHVybiB0aGlzLnJvdXRlS2luZFRvTmdDb21wb25lbnQua2V5cygpfWdldFJvdXRlQ29uZmlncygpe3JldHVybiB0aGlzLnJvdXRlQ29uZmlnc31nZXROZ0NvbXBvbmVudEJ5Um91dGVLaW5kKGUpe3JldHVybiB0aGlzLnJvdXRlS2luZFRvTmdDb21wb25lbnQuZ2V0KGUpfHxudWxsfXN0YXRpYyByZWdpc3RlclJvdXRlcyhlKXtyZXR1cm57bmdNb2R1bGU6bixwcm92aWRlcnM6W3twcm92aWRlOmNGLG11bHRpOiEwLHVzZUZhY3Rvcnk6ZX1dfX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhjRiw4KSl9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe30pLG59KSgpLGVTPSJhcHBfcm91dGluZyIsbnY9TXIoZVMpLEhvPVcobnYsbj0+bi5hY3RpdmVSb3V0ZSksUTg9VyhudixuPT5uLm5leHRSb3V0ZSksWjg9VyhudixuPT5uLmFjdGl2ZU5hbWVzcGFjZUlkKSxLOD1XKG52LG49Pm4ucmVoeWRyYXRlZERlZXBMaW5rcyksSjg9VyhudixuPT5uLnJlZ2lzdGVyZWRSb3V0ZUtleXMpLFdzPVcoSG8sbj0+bj9uLnJvdXRlS2luZDpDbi5OT1RfU0VUKSx1Rj1XKEhvLG49Pm4/bi5wYXJhbXM6e30pLG9yPVcoV3MsdUYsKG4sdCk9PkpiKG4sdCkpLHFzPShXKFdzLHVGLChuLHQpPT57aWYobiE9PUNuLkNPTVBBUkVfRVhQRVJJTUVOVClyZXR1cm57fTtsZXQgaT1mdW5jdGlvbihuKXtsZXQgdD1uZXcgTWFwLGU9UmYobi5leHBlcmltZW50SWRzKTtmb3IobGV0e2lkOmksbmFtZTpyfW9mIGUpciYmdC5zZXQoaSxyKTtyZXR1cm4gdH0odCk7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhpLmVudHJpZXMoKSl9KSxXKFdzLHVGLChuLHQpPT57bGV0IGU9dDtpZihuIT09Q24uQ09NUEFSRV9FWFBFUklNRU5UJiYobiE9PUNuLkNBUkR8fC0xPT09ZS5leHBlcmltZW50SWRzLmluZGV4T2YoIiwiKSkpcmV0dXJue307bGV0IGk9ZnVuY3Rpb24obil7bGV0IHQ9bmV3IE1hcCxlPVJmKG4uZXhwZXJpbWVudElkcyksaT0wO2ZvcihsZXR7aWQ6cixuYW1lOm99b2YgZSlpKyssIXQuaGFzKHIpJiZ0LnNldChyLHthbGlhc1RleHQ6byxhbGlhc051bWJlcjppfSk7cmV0dXJuIHR9KGUpO3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoaS5lbnRyaWVzKCkpfSkpLHBGPWZlKCJbQXBwIFJvdXRpbmddIEVmZmVjdHMgSW5pdCIpLGhhPSgoKT0+e3JldHVybihuPWhhfHwoaGE9e30pKVtuLlVOQ0hBTkdFRD0wXT0iVU5DSEFOR0VEIixuW24uTkVXPTFdPSJORVciLG5bbi5GUk9NX0hJU1RPUlk9Ml09IkZST01fSElTVE9SWSIsaGE7dmFyIG59KSgpLCQ4PSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIsbyxhLHMsbCl7dGhpcy5hY3Rpb25zJD1lLHRoaXMuc3RvcmU9aSx0aGlzLmxvY2F0aW9uPXIsdGhpcy5kaXJ0eVVwZGF0ZXNSZWdpc3RyeT1vLHRoaXMucmVnaXN0cnk9YSx0aGlzLnByb2dyYW1tYXRpY2FsTmF2TW9kdWxlPXMsdGhpcy5hcHBSb290UHJvdmlkZXI9bCx0aGlzLm9uTmF2aWdhdGlvblJlcXVlc3RlZCQ9dGhpcy5hY3Rpb25zJC5waXBlKFpuKGlGKSxxKGM9Pih7cGF0aG5hbWU6Yy5wYXRobmFtZS5zdGFydHNXaXRoKCIvIik/dGhpcy5hcHBSb290UHJvdmlkZXIuZ2V0QWJzUGF0aG5hbWVXaXRoQXBwUm9vdChjLnBhdGhuYW1lKTp0aGlzLmxvY2F0aW9uLmdldFJlc29sdmVkUGF0aChjLnBhdGhuYW1lKSxvcHRpb25zOnticm93c2VySW5pdGlhdGVkOiExLHJlcGxhY2VTdGF0ZTpjLnJlcGxhY2VTdGF0ZT8/ITEsbmFtZXNwYWNlVXBkYXRlOntvcHRpb246Yy5yZXNldE5hbWVzcGFjZWRTdGF0ZT9oYS5ORVc6aGEuVU5DSEFOR0VEfX19KSkpLHRoaXMuYm9vdHN0cmFwUmVkdWNlcnMkPV9yKCgpPT50aGlzLmFjdGlvbnMkLnBpcGUoWm4ocEYpLHEoKCk9Pkp3KHtyb3V0ZUtpbmRzOm5ldyBTZXQodGhpcy5yZWdpc3RyeS5nZXRSZWdpc3RlcmVkUm91dGVLaW5kcygpKX0pKSkpLHRoaXMub25Jbml0JD10aGlzLmFjdGlvbnMkLnBpcGUoWm4ocEYpKS5waXBlKFJzKDApLHEoKCk9PntsZXQgYz10aGlzLmxvY2F0aW9uLmdldEhpc3RvcnlTdGF0ZSgpPy5uYW1lc3BhY2VJZCxkPXZvaWQgMD09PWM/e29wdGlvbjpoYS5ORVd9OntvcHRpb246aGEuRlJPTV9ISVNUT1JZLG5hbWVzcGFjZUlkOmN9O3JldHVybntwYXRobmFtZTp0aGlzLmxvY2F0aW9uLmdldFBhdGgoKSxvcHRpb25zOnticm93c2VySW5pdGlhdGVkOiEwLHJlcGxhY2VTdGF0ZTohMCxuYW1lc3BhY2VVcGRhdGU6ZH19fSkpLHRoaXMub25Qb3BTdGF0ZSQ9dGhpcy5sb2NhdGlvbi5vblBvcFN0YXRlKCkucGlwZShxKGM9Pih7cGF0aG5hbWU6Yy5wYXRobmFtZSxvcHRpb25zOnticm93c2VySW5pdGlhdGVkOiEwLHJlcGxhY2VTdGF0ZTohMCxuYW1lc3BhY2VVcGRhdGU6dm9pZCAwPT09Yy5zdGF0ZT8ubmFtZXNwYWNlSWQ/e29wdGlvbjpoYS5VTkNIQU5HRUR9OntvcHRpb246aGEuRlJPTV9ISVNUT1JZLG5hbWVzcGFjZUlkOmMuc3RhdGUubmFtZXNwYWNlSWR9fX0pKSksdGhpcy51c2VySW5pdE5hdlJvdXRlJD10bih0aGlzLm9uTmF2aWdhdGlvblJlcXVlc3RlZCQsdGhpcy5vbkluaXQkLHRoaXMub25Qb3BTdGF0ZSQpLnBpcGUocShjPT57aWYoIWMucGF0aG5hbWUuc3RhcnRzV2l0aCgiLyIpKXRocm93IG5ldyBFcnJvcihgW0FwcCByb3V0aW5nXSBwYXRobmFtZSBtdXN0IHN0YXJ0IHdpdGggJy8nLiBHb3Q6ICR7Yy5wYXRobmFtZX1gKTtyZXR1cm57Li4uYyxwYXRobmFtZTp0aGlzLmFwcFJvb3RQcm92aWRlci5nZXRBcHBSb290bGVzc1BhdGhuYW1lKGMucGF0aG5hbWUpfX0pLHEoYz0+KHtyb3V0ZU1hdGNoOnRoaXMucm91dGVDb25maWdzLm1hdGNoKGMpLG9wdGlvbnM6Yy5vcHRpb25zfSkpKSx0aGlzLnByb2dyYW1tYXRpY2FsTmF2Um91dGUkPXRoaXMuYWN0aW9ucyQucGlwZShxKGM9PnRoaXMucHJvZ3JhbW1hdGljYWxOYXZNb2R1bGUuZ2V0TmF2aWdhdGlvbihjKSksT2UoYz0+bnVsbCE9PWMpLHEoYz0+e2xldCBtLGQ9Yyx7cmVwbGFjZVN0YXRlOnU9ITEscmVzZXROYW1lc3BhY2VkU3RhdGU6cCxyb3V0ZUtpbmQ6aH09ZDtyZXR1cm4gbT1kLnJvdXRlS2luZD09PUNuLkNPTVBBUkVfRVhQRVJJTUVOVD97ZXhwZXJpbWVudElkczpCOChkLnJvdXRlUGFyYW1zLmFsaWFzQW5kRXhwZXJpbWVudElkcyl9OmQucm91dGVQYXJhbXMse3JlcGxhY2VTdGF0ZTp1LHJvdXRlS2luZDpoLHJvdXRlUGFyYW1zOm0scmVzZXROYW1lc3BhY2VkU3RhdGU6cH19KSxxKCh7cmVwbGFjZVN0YXRlOmMscm91dGVLaW5kOmQscm91dGVQYXJhbXM6dSxyZXNldE5hbWVzcGFjZWRTdGF0ZTpwfSk9Pih7cm91dGVNYXRjaDp0aGlzLnJvdXRlQ29uZmlncz90aGlzLnJvdXRlQ29uZmlncy5tYXRjaEJ5Um91dGVLaW5kKGQsdSk6bnVsbCxvcHRpb25zOntyZXBsYWNlU3RhdGU6Yyxicm93c2VySW5pdGlhdGVkOiExLG5hbWVzcGFjZVVwZGF0ZTp7b3B0aW9uOnA/aGEuTkVXOmhhLlVOQ0hBTkdFRH19fSkpKSx0aGlzLnZhbGlkYXRlZFJvdXRlTWF0Y2gkPXRuKHRoaXMudXNlckluaXROYXZSb3V0ZSQsdGhpcy5wcm9ncmFtbWF0aWNhbE5hdlJvdXRlJCkucGlwZShPZSgoe3JvdXRlTWF0Y2g6Y30pPT5Cb29sZWFuKGMpKSxxKCh7cm91dGVNYXRjaDpjLG9wdGlvbnM6ZH0pPT4oe3JvdXRlTWF0Y2g6YyxvcHRpb25zOmR9KSkpLHRoaXMubmF2aWdhdGUkPV9yKCgpPT50aGlzLnZhbGlkYXRlZFJvdXRlTWF0Y2gkLnBpcGUoSXQodGhpcy5zdG9yZS5zZWxlY3QoSG8pKSx4bigoW3UscF0pPT57bGV0IGg9bnVsbCE9PXAmJlZvKHAsdS5yb3V0ZU1hdGNoKSxtPXRoaXMuZGlydHlVcGRhdGVzUmVnaXN0cnkuZ2V0RGlydHlVcGRhdGVzU2VsZWN0b3JzKCk7cmV0dXJuIGh8fCFtLmxlbmd0aD8kdCh1KTpDbyh0aGlzLmRpcnR5VXBkYXRlc1JlZ2lzdHJ5LmdldERpcnR5VXBkYXRlc1NlbGVjdG9ycygpLm1hcChfPT50aGlzLnN0b3JlLnNlbGVjdChfKS5waXBlKEx0KDEpKSkpLnBpcGUocShfPT52b2lkIDAhPT1fWzBdLmV4cGVyaW1lbnRJZHMmJl9bMF0uZXhwZXJpbWVudElkcy5sZW5ndGg+MCksT2UoXz0+e2lmKF8pe2xldCBNPXdpbmRvdy5jb25maXJtKCJZb3UgaGF2ZSB1bnNhdmVkIGVkaXRzLCBhcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGlzY2FyZCB0aGVtPyIpO3JldHVybiBNJiZ0aGlzLnN0b3JlLmRpc3BhdGNoKGo4KCkpLE19cmV0dXJuITB9KSxxKCgpPT51KSl9KSxJdCh0aGlzLnN0b3JlLnNlbGVjdChLOCkpLER0KChbe3JvdXRlTWF0Y2g6dSxvcHRpb25zOnB9LGhdKT0+e2lmKCFwLmJyb3dzZXJJbml0aWF0ZWR8fCF1LmRlZXBMaW5rUHJvdmlkZXJ8fHAubmFtZXNwYWNlVXBkYXRlLm9wdGlvbj09PWhhLkZST01fSElTVE9SWSYmIVp3KHUucm91dGVLaW5kLHAubmFtZXNwYWNlVXBkYXRlLm5hbWVzcGFjZUlkLGgpKXJldHVybjtsZXQgbT11Lm9yaWdpbmF0ZUZyb21SZWRpcmVjdGlvbiYmdS5yZWRpcmVjdGlvbk9ubHlRdWVyeVBhcmFtcz91LnJlZGlyZWN0aW9uT25seVF1ZXJ5UGFyYW1zOnRoaXMubG9jYXRpb24uZ2V0U2VhcmNoKCksXz11LmRlZXBMaW5rUHJvdmlkZXIuZGVzZXJpYWxpemVRdWVyeVBhcmFtcyhtKTt0aGlzLnN0b3JlLmRpc3BhdGNoKGZ1KHtyb3V0ZUtpbmQ6dS5yb3V0ZUtpbmQscGFydGlhbFN0YXRlOl99KSl9KSxEdCgoW3tyb3V0ZU1hdGNoOnV9XSk9Pnt1LmFjdGlvbiYmdGhpcy5zdG9yZS5kaXNwYXRjaCh1LmFjdGlvbil9KSxKbigoW3tyb3V0ZU1hdGNoOnUsb3B0aW9uczpwfV0pPT5udWxsPT09dS5kZWVwTGlua1Byb3ZpZGVyPyR0KHtyb3V0ZTp7cm91dGVLaW5kOnUucm91dGVLaW5kLHBhcmFtczp1LnBhcmFtc30scGF0aG5hbWU6dS5wYXRobmFtZSxxdWVyeVBhcmFtczpbXSxvcHRpb25zOnB9KTp1LmRlZXBMaW5rUHJvdmlkZXIuc2VyaWFsaXplU3RhdGVUb1F1ZXJ5UGFyYW1zKHRoaXMuc3RvcmUpLnBpcGUocSgoaCxtKT0+KHtyb3V0ZTp7cm91dGVLaW5kOnUucm91dGVLaW5kLHBhcmFtczp1LnBhcmFtc30scGF0aG5hbWU6dS5wYXRobmFtZSxxdWVyeVBhcmFtczpoLG9wdGlvbnM6MD09PW0/cDp7Li4ucCxuYW1lc3BhY2VVcGRhdGU6e29wdGlvbjpoYS5VTkNIQU5HRUR9LHJlcGxhY2VTdGF0ZTohMH19KSkpKSxEdCgoe3JvdXRlOnV9KT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goT2Yoe2FmdGVyOnV9KSl9KSxDcigwKSkucGlwZShJdCh0aGlzLnN0b3JlLnNlbGVjdChIbykpLHEoKFt1LHBdKT0+e2xldCBoPW51bGw9PT1wfHxudWxsPT09dS5yb3V0ZXx8Vm8ocCx1LnJvdXRlKTtyZXR1cm57Li4udSxwcmVzZXJ2ZUhhc2g6aH19KSxEdCgoe3ByZXNlcnZlSGFzaDp1LHBhdGhuYW1lOnAscXVlcnlQYXJhbXM6aCxvcHRpb25zOm19KT0+eyhmdW5jdGlvbihuLHQpe3JldHVybiBuLnBhdGhuYW1lPT09dC5wYXRobmFtZSYmbi5xdWVyeVBhcmFtcy5sZW5ndGg9PT10LnF1ZXJ5UGFyYW1zLmxlbmd0aCYmbi5xdWVyeVBhcmFtcy5ldmVyeSgoZSxpKT0+e2xldCByPXQucXVlcnlQYXJhbXNbaV07cmV0dXJuIGUua2V5PT09ci5rZXkmJmUudmFsdWU9PT1yLnZhbHVlfSl9KSh7cGF0aG5hbWU6cCxxdWVyeVBhcmFtczpofSx7cGF0aG5hbWU6dGhpcy5hcHBSb290UHJvdmlkZXIuZ2V0QXBwUm9vdGxlc3NQYXRobmFtZSh0aGlzLmxvY2F0aW9uLmdldFBhdGgoKSkscXVlcnlQYXJhbXM6dGhpcy5sb2NhdGlvbi5nZXRTZWFyY2goKX0pfHwobS5yZXBsYWNlU3RhdGU/dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGVVcmwodGhpcy5hcHBSb290UHJvdmlkZXIuZ2V0QWJzUGF0aG5hbWVXaXRoQXBwUm9vdCh0aGlzLmxvY2F0aW9uLmdldEZ1bGxQYXRoKHAsaCx1KSkpOnRoaXMubG9jYXRpb24ucHVzaFN0YXRlVXJsKHRoaXMuYXBwUm9vdFByb3ZpZGVyLmdldEFic1BhdGhuYW1lV2l0aEFwcFJvb3QodGhpcy5sb2NhdGlvbi5nZXRGdWxsUGF0aChwLGgsdSkpKSl9KSkucGlwZShJdCh0aGlzLnN0b3JlLnNlbGVjdChIbyksdGhpcy5zdG9yZS5zZWxlY3QoWjgpKSxxKChbe3JvdXRlOnUsb3B0aW9uczpwfSxoLG1dKT0+e2xldCBfPWZ1bmN0aW9uKG4sdCxlKXtyZXR1cm4gdC5uYW1lc3BhY2VVcGRhdGUub3B0aW9uPT09aGEuRlJPTV9ISVNUT1JZP3QubmFtZXNwYWNlVXBkYXRlLm5hbWVzcGFjZUlkOm51bGw9PWV8fHQubmFtZXNwYWNlVXBkYXRlLm9wdGlvbj09PWhhLk5FVz9gJHtEYXRlLm5vdygpLnRvU3RyaW5nKCl9OiR7ZnVuY3Rpb24oKXtsZXQgbj1uZXcgVWludDhBcnJheSgzMik7Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuKTtsZXQgdD0iIjtmb3IobGV0IGUgb2Ygbil0Kz0oZT4+NCkudG9TdHJpbmcoMTYpO3JldHVybiB0fSgpfWA6ZX0oMCxwLG0pO3JldHVybiB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZURhdGEoey4uLnRoaXMubG9jYXRpb24uZ2V0SGlzdG9yeVN0YXRlKCksbmFtZXNwYWNlSWQ6X30pLE5hKHtiZWZvcmU6aCxhZnRlcjp1LGJlZm9yZU5hbWVzcGFjZUlkOm0sYWZ0ZXJOYW1lc3BhY2VJZDpffSl9KSkpLHRoaXMucm91dGVDb25maWdzPWEuZ2V0Um91dGVDb25maWdzKCl9bmdyeE9uSW5pdEVmZmVjdHMoKXtyZXR1cm4gcEYoKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhFbyksTyhJZSksTyhkaCksTyhLdyksTyhSbCksTygkdyksTyh1aCkpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLFVmZT1ncih7YWN0aXZlUm91dGU6bnVsbCxuZXh0Um91dGU6bnVsbCxhY3RpdmVOYW1lc3BhY2VJZDpudWxsLHJlaHlkcmF0ZWREZWVwTGlua3M6W10scmVnaXN0ZXJlZFJvdXRlS2V5czpuZXcgU2V0fSx5ZShPZiwobix7YWZ0ZXI6dH0pPT4oey4uLm4sbmV4dFJvdXRlOnR9KSkseWUoTmEsKG4se2FmdGVyOnQsYWZ0ZXJOYW1lc3BhY2VJZDplfSk9PntsZXQgaT1uLnJlaHlkcmF0ZWREZWVwTGlua3M7cmV0dXJuIFp3KHQucm91dGVLaW5kLGUsaSkmJihpPVsuLi5pXSxpLnB1c2goe2RlZXBMaW5rR3JvdXA6JE8odC5yb3V0ZUtpbmQpLG5hbWVzcGFjZUlkOmV9KSksey4uLm4sYWN0aXZlUm91dGU6dCxuZXh0Um91dGU6bnVsbCxhY3RpdmVOYW1lc3BhY2VJZDplLHJlaHlkcmF0ZWREZWVwTGlua3M6aX19KSx5ZShKdywobix7cm91dGVLaW5kczp0fSk9Pih7Li4ubixyZWdpc3RlcmVkUm91dGVLZXlzOnR9KSkpO2Z1bmN0aW9uIGU2KG4sdCl7cmV0dXJuIFVmZShuLHQpfXZhciBOZj0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7cHJvdmlkZXJzOltLdywkd10saW1wb3J0czpbUmwsd3IuZm9yRmVhdHVyZShlUyxlNiksdG8uZm9yRmVhdHVyZShbJDhdKSxrZixQZl19KSxufSkoKSxubz0oKCk9PntyZXR1cm4obj1ub3x8KG5vPXt9KSkuU1RFUD0ic3RlcCIsbi5XQUxMX1RJTUU9IndhbGxfdGltZSIsbi5SRUxBVElWRT0icmVsYXRpdmUiLG5vO3ZhciBufSkoKSxTcj0oKCk9PntyZXR1cm4obj1Tcnx8KFNyPXt9KSkuT0ZGU0VUPSJvZmZzZXQiLG4uT1ZFUkxBWT0ib3ZlcmxheSIsU3I7dmFyIG59KSgpLHQ2PSJfX3RhYl9fIixuNj0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7d2luZG93LnRlbnNvcmJvYXJkLnRmX3N0b3JhZ2UubWlncmF0ZUxlZ2FjeVVSTFNjaGVtZSgpLHdpbmRvdy50ZW5zb3Jib2FyZC50Zl9nbG9iYWxzLnNldFVzZUhhc2goITApfWdldFN0cmluZyhlKXtyZXR1cm4gd2luZG93LnRlbnNvcmJvYXJkLnRmX3N0b3JhZ2UuZ2V0U3RyaW5nKGUpfXNldFN0cmluZyhlLGkscil7d2luZG93LnRlbnNvcmJvYXJkLnRmX3N0b3JhZ2Uuc2V0U3RyaW5nKGUsaSxyKX1nZXRQbHVnaW5JZCgpe3JldHVybiB3aW5kb3cudGVuc29yYm9hcmQudGZfc3RvcmFnZS5nZXRTdHJpbmcodDYpfXNldFBsdWdpbklkKGUsaSl7dGhpcy5zZXRTdHJpbmcodDYsZSxpKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCksZ3U9Y2xhc3N7fSxMYT0oKCk9PntyZXR1cm4obj1MYXx8KExhPXt9KSkuQlJPV1NFUl9ERUZBVUxUPSJicm93c2VyX2RlZmF1bHQiLG4uTElHSFQ9ImxpZ2h0IixuLkRBUks9ImRhcmsiLExhO3ZhciBufSkoKSxocz1mZSgiW1BlcnNpc3RlbnQgU2V0dGluZ3NdIEdsb2JhbCBTZXR0aW5ncyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxoRj1uZXcgdGUoIltQZXJzaXN0ZW50IFNldHRpbmdzXSBHbG9iYWwgU2V0dGluZ3MiKSxSaT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuZ2xvYmFsU2V0dGluZ1NlbGVjdG9ycz1bXSxlJiYodGhpcy5nbG9iYWxTZXR0aW5nU2VsZWN0b3JzPWUubWFwKGk9PmkoKSkpfWdldEdsb2JhbFNldHRpbmdTZWxlY3RvcnMoKXtyZXR1cm4gdGhpcy5nbG9iYWxTZXR0aW5nU2VsZWN0b3JzPz9bXX1zdGF0aWMgZGVmaW5lR2xvYmFsU2V0dGluZyhlKXtyZXR1cm57bmdNb2R1bGU6bixwcm92aWRlcnM6W3twcm92aWRlOmhGLG11bHRpOiEwLHVzZVZhbHVlOmV9XX19fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oaEYsOCkpfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHt9KSxufSkoKSxpNj0iX3RiX2dsb2JhbF9zZXR0aW5ncy50aW1lc2VyaWVzIixyNj0iX3RiX2dsb2JhbF9zZXR0aW5ncyIsbzY9Im5vdGlmaWNhdGlvbkxhc3RSZWFkVGltZXN0YW1wIjtmdW5jdGlvbiBhNihuKXtuLmZvckVhY2godD0+e3Quc29ydGFibGU9ITAsIlJVTiI9PT10LnR5cGU/KHQubW92YWJsZT0hMSx0LnJlbW92YWJsZT0hMSk6KHQubW92YWJsZT0hMCx0LnJlbW92YWJsZT0hMCl9KX12YXIgdFM9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCksblM9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCksbUY9KCgpPT57Y2xhc3MgbiBleHRlbmRzIG5Te3VpVG9CYWNrZW5kKGUpe2xldCBpPXt9O3JldHVybiB2b2lkIDAhPT1lLmlnbm9yZU91dGxpZXJzJiYoaS5pZ25vcmVPdXRsaWVycz1lLmlnbm9yZU91dGxpZXJzKSx2b2lkIDAhPT1lLnNjYWxhclNtb290aGluZyYmKGkuc2NhbGFyU21vb3RoaW5nPWUuc2NhbGFyU21vb3RoaW5nKSx2b2lkIDAhPT1lLnRvb2x0aXBTb3J0JiYoaS50b29sdGlwU29ydD1lLnRvb2x0aXBTb3J0KSx2b2lkIDAhPT1lLmF1dG9SZWxvYWQmJihpLmF1dG9SZWxvYWQ9ZS5hdXRvUmVsb2FkKSx2b2lkIDAhPT1lLmF1dG9SZWxvYWRQZXJpb2RJbk1zJiYoaS5hdXRvUmVsb2FkUGVyaW9kSW5Ncz1lLmF1dG9SZWxvYWRQZXJpb2RJbk1zKSx2b2lkIDAhPT1lLnBhZ2VTaXplJiYoaS5wYWdpbmF0aW9uU2l6ZT1lLnBhZ2VTaXplKSx2b2lkIDAhPT1lLnRoZW1lT3ZlcnJpZGUmJihpLnRoZW1lPWUudGhlbWVPdmVycmlkZSksdm9pZCAwIT09ZS5ub3RpZmljYXRpb25MYXN0UmVhZFRpbWVJbk1zJiYoaS5ub3RpZmljYXRpb25MYXN0UmVhZFRpbWVJbk1zPWUubm90aWZpY2F0aW9uTGFzdFJlYWRUaW1lSW5Ncyksdm9pZCAwIT09ZS5zaWRlQmFyV2lkdGhJblBlcmNlbnQmJihpLnNpZGVCYXJXaWR0aEluUGVyY2VudD1lLnNpZGVCYXJXaWR0aEluUGVyY2VudCksdm9pZCAwIT09ZS50aW1lU2VyaWVzU2V0dGluZ3NQYW5lT3BlbmVkJiYoaS50aW1lU2VyaWVzU2V0dGluZ3NQYW5lT3BlbmVkPWUudGltZVNlcmllc1NldHRpbmdzUGFuZU9wZW5lZCksdm9pZCAwIT09ZS50aW1lU2VyaWVzQ2FyZE1pbldpZHRoJiYoaS50aW1lU2VyaWVzQ2FyZE1pbldpZHRoPWUudGltZVNlcmllc0NhcmRNaW5XaWR0aCksdm9pZCAwIT09ZS5zdGVwU2VsZWN0b3JFbmFibGVkJiYoaS5zdGVwU2VsZWN0b3JFbmFibGVkPWUuc3RlcFNlbGVjdG9yRW5hYmxlZCksdm9pZCAwIT09ZS5yYW5nZVNlbGVjdGlvbkVuYWJsZWQmJihpLnJhbmdlU2VsZWN0aW9uRW5hYmxlZD1lLnJhbmdlU2VsZWN0aW9uRW5hYmxlZCksdm9pZCAwIT09ZS5saW5rZWRUaW1lRW5hYmxlZCYmKGkubGlua2VkVGltZUVuYWJsZWQ9ZS5saW5rZWRUaW1lRW5hYmxlZCksdm9pZCAwIT09ZS5zaW5nbGVTZWxlY3Rpb25IZWFkZXJzJiYoaS5zaW5nbGVTZWxlY3Rpb25IZWFkZXJzPWUuc2luZ2xlU2VsZWN0aW9uSGVhZGVycyksdm9pZCAwIT09ZS5yYW5nZVNlbGVjdGlvbkhlYWRlcnMmJihpLnJhbmdlU2VsZWN0aW9uSGVhZGVycz1lLnJhbmdlU2VsZWN0aW9uSGVhZGVycyksdm9pZCAwIT09ZS5kYXNoYm9hcmREaXNwbGF5ZWRIcGFyYW1Db2x1bW5zJiYoaS5kYXNoYm9hcmREaXNwbGF5ZWRIcGFyYW1Db2x1bW5zPWUuZGFzaGJvYXJkRGlzcGxheWVkSHBhcmFtQ29sdW1ucyksdm9pZCAwIT09ZS5zYXZpbmdQaW5zRW5hYmxlZCYmKGkuc2F2aW5nUGluc0VuYWJsZWQ9ZS5zYXZpbmdQaW5zRW5hYmxlZCksaX1iYWNrZW5kVG9VaShlKXtsZXQgaT17fTtyZXR1cm4gZS5oYXNPd25Qcm9wZXJ0eSgic2NhbGFyU21vb3RoaW5nIikmJiJudW1iZXIiPT10eXBlb2YgZS5zY2FsYXJTbW9vdGhpbmcmJihpLnNjYWxhclNtb290aGluZz1lLnNjYWxhclNtb290aGluZyksZS5oYXNPd25Qcm9wZXJ0eSgiaWdub3JlT3V0bGllcnMiKSYmImJvb2xlYW4iPT10eXBlb2YgZS5pZ25vcmVPdXRsaWVycyYmKGkuaWdub3JlT3V0bGllcnM9ZS5pZ25vcmVPdXRsaWVycyksZS5oYXNPd25Qcm9wZXJ0eSgidG9vbHRpcFNvcnQiKSYmInN0cmluZyI9PXR5cGVvZiBlLnRvb2x0aXBTb3J0JiYoaS50b29sdGlwU29ydD1lLnRvb2x0aXBTb3J0KSxlLmhhc093blByb3BlcnR5KCJhdXRvUmVsb2FkIikmJiJib29sZWFuIj09dHlwZW9mIGUuYXV0b1JlbG9hZCYmKGkuYXV0b1JlbG9hZD1lLmF1dG9SZWxvYWQpLGUuaGFzT3duUHJvcGVydHkoImF1dG9SZWxvYWRQZXJpb2RJbk1zIikmJiJudW1iZXIiPT10eXBlb2YgZS5hdXRvUmVsb2FkUGVyaW9kSW5NcyYmKGkuYXV0b1JlbG9hZFBlcmlvZEluTXM9ZS5hdXRvUmVsb2FkUGVyaW9kSW5NcyksZS5oYXNPd25Qcm9wZXJ0eSgicGFnaW5hdGlvblNpemUiKSYmIm51bWJlciI9PXR5cGVvZiBlLnBhZ2luYXRpb25TaXplJiYoaS5wYWdlU2l6ZT1lLnBhZ2luYXRpb25TaXplKSxlLmhhc093blByb3BlcnR5KCJ0aGVtZSIpJiYic3RyaW5nIj09dHlwZW9mIGUudGhlbWUmJm5ldyBTZXQoT2JqZWN0LnZhbHVlcyhMYSkpLmhhcyhlLnRoZW1lKSYmKGkudGhlbWVPdmVycmlkZT1lLnRoZW1lKSxlLmhhc093blByb3BlcnR5KCJub3RpZmljYXRpb25MYXN0UmVhZFRpbWVJbk1zIikmJiJudW1iZXIiPT10eXBlb2YgZS5ub3RpZmljYXRpb25MYXN0UmVhZFRpbWVJbk1zJiYoaS5ub3RpZmljYXRpb25MYXN0UmVhZFRpbWVJbk1zPWUubm90aWZpY2F0aW9uTGFzdFJlYWRUaW1lSW5NcyksZS5oYXNPd25Qcm9wZXJ0eSgic2lkZUJhcldpZHRoSW5QZXJjZW50IikmJiJudW1iZXIiPT10eXBlb2YgZS5zaWRlQmFyV2lkdGhJblBlcmNlbnQmJihpLnNpZGVCYXJXaWR0aEluUGVyY2VudD1lLnNpZGVCYXJXaWR0aEluUGVyY2VudCksZS5oYXNPd25Qcm9wZXJ0eSgidGltZVNlcmllc1NldHRpbmdzUGFuZU9wZW5lZCIpJiYiYm9vbGVhbiI9PXR5cGVvZiBlLnRpbWVTZXJpZXNTZXR0aW5nc1BhbmVPcGVuZWQmJihpLnRpbWVTZXJpZXNTZXR0aW5nc1BhbmVPcGVuZWQ9ZS50aW1lU2VyaWVzU2V0dGluZ3NQYW5lT3BlbmVkKSxlLmhhc093blByb3BlcnR5KCJ0aW1lU2VyaWVzQ2FyZE1pbldpZHRoIikmJiJudW1iZXIiPT10eXBlb2YgZS50aW1lU2VyaWVzQ2FyZE1pbldpZHRoJiYoaS50aW1lU2VyaWVzQ2FyZE1pbldpZHRoPWUudGltZVNlcmllc0NhcmRNaW5XaWR0aCksZS5oYXNPd25Qcm9wZXJ0eSgic3RlcFNlbGVjdG9yRW5hYmxlZCIpJiYiYm9vbGVhbiI9PXR5cGVvZiBlLnN0ZXBTZWxlY3RvckVuYWJsZWQmJihpLnN0ZXBTZWxlY3RvckVuYWJsZWQ9ZS5zdGVwU2VsZWN0b3JFbmFibGVkKSxlLmhhc093blByb3BlcnR5KCJyYW5nZVNlbGVjdGlvbkVuYWJsZWQiKSYmImJvb2xlYW4iPT10eXBlb2YgZS5yYW5nZVNlbGVjdGlvbkVuYWJsZWQmJihpLnJhbmdlU2VsZWN0aW9uRW5hYmxlZD1lLnJhbmdlU2VsZWN0aW9uRW5hYmxlZCksZS5oYXNPd25Qcm9wZXJ0eSgibGlua2VkVGltZUVuYWJsZWQiKSYmImJvb2xlYW4iPT10eXBlb2YgZS5saW5rZWRUaW1lRW5hYmxlZCYmKGkubGlua2VkVGltZUVuYWJsZWQ9ZS5saW5rZWRUaW1lRW5hYmxlZCksQXJyYXkuaXNBcnJheShlLnNpbmdsZVNlbGVjdGlvbkhlYWRlcnMpJiZ2b2lkIDAhPT1lLnNpbmdsZVNlbGVjdGlvbkhlYWRlcnNbMF0ubmFtZSYmIlJVTiI9PT1lLnNpbmdsZVNlbGVjdGlvbkhlYWRlcnNbMF0udHlwZSYmKGE2KGUuc2luZ2xlU2VsZWN0aW9uSGVhZGVycyksaS5zaW5nbGVTZWxlY3Rpb25IZWFkZXJzPWUuc2luZ2xlU2VsZWN0aW9uSGVhZGVycyksQXJyYXkuaXNBcnJheShlLnJhbmdlU2VsZWN0aW9uSGVhZGVycykmJnZvaWQgMCE9PWUucmFuZ2VTZWxlY3Rpb25IZWFkZXJzWzBdLm5hbWUmJiJSVU4iPT09ZS5yYW5nZVNlbGVjdGlvbkhlYWRlcnNbMF0udHlwZSYmKGE2KGUucmFuZ2VTZWxlY3Rpb25IZWFkZXJzKSxpLnJhbmdlU2VsZWN0aW9uSGVhZGVycz1lLnJhbmdlU2VsZWN0aW9uSGVhZGVycyksQXJyYXkuaXNBcnJheShlLmRhc2hib2FyZERpc3BsYXllZEhwYXJhbUNvbHVtbnMpJiYoaS5kYXNoYm9hcmREaXNwbGF5ZWRIcGFyYW1Db2x1bW5zPWUuZGFzaGJvYXJkRGlzcGxheWVkSHBhcmFtQ29sdW1ucyksZS5oYXNPd25Qcm9wZXJ0eSgic2F2aW5nUGluc0VuYWJsZWQiKSYmImJvb2xlYW4iPT10eXBlb2YgZS5zYXZpbmdQaW5zRW5hYmxlZCYmKGkuc2F2aW5nUGluc0VuYWJsZWQ9ZS5zYXZpbmdQaW5zRW5hYmxlZCksaX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybih0fHwodD1YbihuKSkpKGl8fG4pfX0oKSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLHM2PSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5jb252ZXJ0ZXI9ZX1zZXRTZXR0aW5ncyhlKXtyZXR1cm4gT2JqZWN0LmtleXMoZSk/dGhpcy5nZXRTZXR0aW5ncygpLnBpcGUoRHQoaT0+e3dpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShyNixKU09OLnN0cmluZ2lmeSh0aGlzLmNvbnZlcnRlci51aVRvQmFja2VuZCh7Li4uaSwuLi5lfSkpKSx3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oaTYpLHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShvNil9KSxxKCgpPT57fSkpOktyfWRlc2VyaWFsaXplKGUpe3RyeXtyZXR1cm4gSlNPTi5wYXJzZShlKX1jYXRjaHtyZXR1cm57fX19Z2V0U2V0dGluZ3MoKXtsZXQgZT13aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0obzYpO3JldHVybiAkdCh7Li4udGhpcy5jb252ZXJ0ZXIuYmFja2VuZFRvVWkodGhpcy5kZXNlcmlhbGl6ZShlP0pTT04uc3RyaW5naWZ5KHtub3RpZmljYXRpb25MYXN0UmVhZFRpbWVJbk1zOk51bWJlcihlKX0pOiJ7fSIpKSwuLi50aGlzLmNvbnZlcnRlci5iYWNrZW5kVG9VaSh0aGlzLmRlc2VyaWFsaXplKHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShpNik/PyJ7fSIpKSwuLi50aGlzLmNvbnZlcnRlci5iYWNrZW5kVG9VaSh0aGlzLmRlc2VyaWFsaXplKHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShyNik/PyJ7fSIpKX0pfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKG5TKSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCksbDY9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe3Byb3ZpZGVyczpbe3Byb3ZpZGU6dFMsdXNlQ2xhc3M6czZ9LG1GLHtwcm92aWRlOm5TLHVzZUV4aXN0aW5nOm1GfV19KSxufSkoKSxpUz0icGVyc2lzdGVudF9zZXR0aW5ncyIscGg9VyhNcihpUyksbj0+bi5zaG91bGRQZXJzaXN0U2V0dGluZ3MpLGM2PSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIsbyl7dGhpcy5hY3Rpb25zJD1lLHRoaXMuc3RvcmU9aSx0aGlzLmNvbmZpZ01vZHVsZT1yLHRoaXMuZGF0YVNvdXJjZT1vLHRoaXMuaW5pdGlhbGl6ZUFuZFVwZGF0ZVNldHRpbmdzJD1fcigoKT0+e2xldCBhPXRoaXMuYWN0aW9ucyQucGlwZShabihPZiksTHQoMSksSXQodGhpcy5zdG9yZS5zZWxlY3QocGgpKSxPZSgoWyxzXSk9PnMpLHhuKCgpPT50aGlzLmRhdGFTb3VyY2UuZ2V0U2V0dGluZ3MoKSksRHQocz0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goaHMoe3BhcnRpYWxTZXR0aW5nczpzfSkpfSksUnMoMCkseG4oKCk9PnRuKC4uLnRoaXMuY29uZmlnTW9kdWxlLmdldEdsb2JhbFNldHRpbmdTZWxlY3RvcnMoKS5tYXAobD0+dGhpcy5zdG9yZS5zZWxlY3QobCkucGlwZShyaSgoYyxkKT0+e2xldCB1PU9iamVjdC52YWx1ZXMoYykscD1PYmplY3QudmFsdWVzKGQpO3JldHVybiB1Lmxlbmd0aD09PXAubGVuZ3RoJiZ1LmV2ZXJ5KChoLG0pPT5oPT09cFttXSl9KSxvcygxKSkpKSksVGEoKSk7cmV0dXJuIGEucGlwZShmdW5jdGlvbihuKXtyZXR1cm4gWXQoKHQsZSk9PntsZXQgaT1bXTtyZXR1cm4gdC5zdWJzY3JpYmUoSHQoZSxyPT5pLnB1c2gociksKCk9PntlLm5leHQoaSksZS5jb21wbGV0ZSgpfSkpLG4uc3Vic2NyaWJlKEh0KGUsKCk9PntsZXQgcj1pO2k9W10sZS5uZXh0KHIpfSxmbCkpLCgpPT57aT1udWxsfX0pfShhLnBpcGUoQ3IoNTAwKSkpLHhuKHM9PntpZigwPT09cy5sZW5ndGgpcmV0dXJuIEtyO2xldCBsPXt9O2ZvcihsZXQgYyBvZiBzKU9iamVjdC5hc3NpZ24obCxjKTtyZXR1cm4gdGhpcy5kYXRhU291cmNlLnNldFNldHRpbmdzKGwpfSkpfSx7ZGlzcGF0Y2g6ITF9KX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhFbyksTyhJZSksTyhSaSksTyh0UykpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLFlmZT1ncih7c2hvdWxkUGVyc2lzdFNldHRpbmdzOiEwfSk7ZnVuY3Rpb24gZDYobix0KXtyZXR1cm4gWWZlKG4sdCl9dmFyIGl2PSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtwcm92aWRlcnM6W1JpXSxpbXBvcnRzOlt3ci5mb3JGZWF0dXJlKGlTLGQ2KSx0by5mb3JGZWF0dXJlKFtjNl0pLGw2XX0pLG59KSgpLHJ2PWNsYXNze30sYVM9Y2xhc3N7fSxtcz1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLm5vcm1hbGl6ZWROYW1lcz1uZXcgTWFwLHRoaXMubGF6eVVwZGF0ZT1udWxsLHQ/dGhpcy5sYXp5SW5pdD0ic3RyaW5nIj09dHlwZW9mIHQ/KCk9Pnt0aGlzLmhlYWRlcnM9bmV3IE1hcCx0LnNwbGl0KCJcbiIpLmZvckVhY2goZT0+e2xldCBpPWUuaW5kZXhPZigiOiIpO2lmKGk+MCl7bGV0IHI9ZS5zbGljZSgwLGkpLG89ci50b0xvd2VyQ2FzZSgpLGE9ZS5zbGljZShpKzEpLnRyaW0oKTt0aGlzLm1heWJlU2V0Tm9ybWFsaXplZE5hbWUocixvKSx0aGlzLmhlYWRlcnMuaGFzKG8pP3RoaXMuaGVhZGVycy5nZXQobykucHVzaChhKTp0aGlzLmhlYWRlcnMuc2V0KG8sW2FdKX19KX06KCk9Pnt0aGlzLmhlYWRlcnM9bmV3IE1hcCxPYmplY3QuZW50cmllcyh0KS5mb3JFYWNoKChbZSxpXSk9PntsZXQgcjtpZihyPSJzdHJpbmciPT10eXBlb2YgaT9baV06Im51bWJlciI9PXR5cGVvZiBpP1tpLnRvU3RyaW5nKCldOmkubWFwKG89Pm8udG9TdHJpbmcoKSksci5sZW5ndGg+MCl7bGV0IG89ZS50b0xvd2VyQ2FzZSgpO3RoaXMuaGVhZGVycy5zZXQobyxyKSx0aGlzLm1heWJlU2V0Tm9ybWFsaXplZE5hbWUoZSxvKX19KX06dGhpcy5oZWFkZXJzPW5ldyBNYXB9aGFzKHQpe3JldHVybiB0aGlzLmluaXQoKSx0aGlzLmhlYWRlcnMuaGFzKHQudG9Mb3dlckNhc2UoKSl9Z2V0KHQpe3RoaXMuaW5pdCgpO2xldCBlPXRoaXMuaGVhZGVycy5nZXQodC50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gZSYmZS5sZW5ndGg+MD9lWzBdOm51bGx9a2V5cygpe3JldHVybiB0aGlzLmluaXQoKSxBcnJheS5mcm9tKHRoaXMubm9ybWFsaXplZE5hbWVzLnZhbHVlcygpKX1nZXRBbGwodCl7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXMuaGVhZGVycy5nZXQodC50b0xvd2VyQ2FzZSgpKXx8bnVsbH1hcHBlbmQodCxlKXtyZXR1cm4gdGhpcy5jbG9uZSh7bmFtZTp0LHZhbHVlOmUsb3A6ImEifSl9c2V0KHQsZSl7cmV0dXJuIHRoaXMuY2xvbmUoe25hbWU6dCx2YWx1ZTplLG9wOiJzIn0pfWRlbGV0ZSh0LGUpe3JldHVybiB0aGlzLmNsb25lKHtuYW1lOnQsdmFsdWU6ZSxvcDoiZCJ9KX1tYXliZVNldE5vcm1hbGl6ZWROYW1lKHQsZSl7dGhpcy5ub3JtYWxpemVkTmFtZXMuaGFzKGUpfHx0aGlzLm5vcm1hbGl6ZWROYW1lcy5zZXQoZSx0KX1pbml0KCl7dGhpcy5sYXp5SW5pdCYmKHRoaXMubGF6eUluaXQgaW5zdGFuY2VvZiBtcz90aGlzLmNvcHlGcm9tKHRoaXMubGF6eUluaXQpOnRoaXMubGF6eUluaXQoKSx0aGlzLmxhenlJbml0PW51bGwsdGhpcy5sYXp5VXBkYXRlJiYodGhpcy5sYXp5VXBkYXRlLmZvckVhY2godD0+dGhpcy5hcHBseVVwZGF0ZSh0KSksdGhpcy5sYXp5VXBkYXRlPW51bGwpKX1jb3B5RnJvbSh0KXt0LmluaXQoKSxBcnJheS5mcm9tKHQuaGVhZGVycy5rZXlzKCkpLmZvckVhY2goZT0+e3RoaXMuaGVhZGVycy5zZXQoZSx0LmhlYWRlcnMuZ2V0KGUpKSx0aGlzLm5vcm1hbGl6ZWROYW1lcy5zZXQoZSx0Lm5vcm1hbGl6ZWROYW1lcy5nZXQoZSkpfSl9Y2xvbmUodCl7bGV0IGU9bmV3IG1zO3JldHVybiBlLmxhenlJbml0PXRoaXMubGF6eUluaXQmJnRoaXMubGF6eUluaXQgaW5zdGFuY2VvZiBtcz90aGlzLmxhenlJbml0OnRoaXMsZS5sYXp5VXBkYXRlPSh0aGlzLmxhenlVcGRhdGV8fFtdKS5jb25jYXQoW3RdKSxlfWFwcGx5VXBkYXRlKHQpe2xldCBlPXQubmFtZS50b0xvd2VyQ2FzZSgpO3N3aXRjaCh0Lm9wKXtjYXNlImEiOmNhc2UicyI6bGV0IGk9dC52YWx1ZTtpZigic3RyaW5nIj09dHlwZW9mIGkmJihpPVtpXSksMD09PWkubGVuZ3RoKXJldHVybjt0aGlzLm1heWJlU2V0Tm9ybWFsaXplZE5hbWUodC5uYW1lLGUpO2xldCByPSgiYSI9PT10Lm9wP3RoaXMuaGVhZGVycy5nZXQoZSk6dm9pZCAwKXx8W107ci5wdXNoKC4uLmkpLHRoaXMuaGVhZGVycy5zZXQoZSxyKTticmVhaztjYXNlImQiOmxldCBvPXQudmFsdWU7aWYobyl7bGV0IGE9dGhpcy5oZWFkZXJzLmdldChlKTtpZighYSlyZXR1cm47YT1hLmZpbHRlcihzPT4tMT09PW8uaW5kZXhPZihzKSksMD09PWEubGVuZ3RoPyh0aGlzLmhlYWRlcnMuZGVsZXRlKGUpLHRoaXMubm9ybWFsaXplZE5hbWVzLmRlbGV0ZShlKSk6dGhpcy5oZWFkZXJzLnNldChlLGEpfWVsc2UgdGhpcy5oZWFkZXJzLmRlbGV0ZShlKSx0aGlzLm5vcm1hbGl6ZWROYW1lcy5kZWxldGUoZSl9fWZvckVhY2godCl7dGhpcy5pbml0KCksQXJyYXkuZnJvbSh0aGlzLm5vcm1hbGl6ZWROYW1lcy5rZXlzKCkpLmZvckVhY2goZT0+dCh0aGlzLm5vcm1hbGl6ZWROYW1lcy5nZXQoZSksdGhpcy5oZWFkZXJzLmdldChlKSkpfX0sWmZlPS8lKFxkW2EtZjAtOV0pL2dpLEtmZT17NDA6IkAiLCIzQSI6IjoiLDI0OiIkIiwiMkMiOiIsIiwiM0IiOiI7IiwiM0QiOiI9IiwiM0YiOiI/IiwiMkYiOiIvIn07ZnVuY3Rpb24gdTYobil7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChuKS5yZXBsYWNlKFpmZSwodCxlKT0+S2ZlW2VdPz90KX1mdW5jdGlvbiByUyhuKXtyZXR1cm5gJHtufWB9dmFyIHZjPWNsYXNze2NvbnN0cnVjdG9yKHQ9e30pe2lmKHRoaXMudXBkYXRlcz1udWxsLHRoaXMuY2xvbmVGcm9tPW51bGwsdGhpcy5lbmNvZGVyPXQuZW5jb2Rlcnx8bmV3IGNsYXNze2VuY29kZUtleSh0KXtyZXR1cm4gdTYodCl9ZW5jb2RlVmFsdWUodCl7cmV0dXJuIHU2KHQpfWRlY29kZUtleSh0KXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHQpfWRlY29kZVZhbHVlKHQpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQodCl9fSx0LmZyb21TdHJpbmcpe2lmKHQuZnJvbU9iamVjdCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzcGVjaWZ5IGJvdGggZnJvbVN0cmluZyBhbmQgZnJvbU9iamVjdC4iKTt0aGlzLm1hcD1mdW5jdGlvbihuLHQpe2xldCBlPW5ldyBNYXA7cmV0dXJuIG4ubGVuZ3RoPjAmJm4ucmVwbGFjZSgvXlw/LywiIikuc3BsaXQoIiYiKS5mb3JFYWNoKHI9PntsZXQgbz1yLmluZGV4T2YoIj0iKSxbYSxzXT0tMT09bz9bdC5kZWNvZGVLZXkociksIiJdOlt0LmRlY29kZUtleShyLnNsaWNlKDAsbykpLHQuZGVjb2RlVmFsdWUoci5zbGljZShvKzEpKV0sbD1lLmdldChhKXx8W107bC5wdXNoKHMpLGUuc2V0KGEsbCl9KSxlfSh0LmZyb21TdHJpbmcsdGhpcy5lbmNvZGVyKX1lbHNlIHQuZnJvbU9iamVjdD8odGhpcy5tYXA9bmV3IE1hcCxPYmplY3Qua2V5cyh0LmZyb21PYmplY3QpLmZvckVhY2goZT0+e2xldCBpPXQuZnJvbU9iamVjdFtlXSxyPUFycmF5LmlzQXJyYXkoaSk/aS5tYXAoclMpOltyUyhpKV07dGhpcy5tYXAuc2V0KGUscil9KSk6dGhpcy5tYXA9bnVsbH1oYXModCl7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXMubWFwLmhhcyh0KX1nZXQodCl7dGhpcy5pbml0KCk7bGV0IGU9dGhpcy5tYXAuZ2V0KHQpO3JldHVybiBlP2VbMF06bnVsbH1nZXRBbGwodCl7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXMubWFwLmdldCh0KXx8bnVsbH1rZXlzKCl7cmV0dXJuIHRoaXMuaW5pdCgpLEFycmF5LmZyb20odGhpcy5tYXAua2V5cygpKX1hcHBlbmQodCxlKXtyZXR1cm4gdGhpcy5jbG9uZSh7cGFyYW06dCx2YWx1ZTplLG9wOiJhIn0pfWFwcGVuZEFsbCh0KXtsZXQgZT1bXTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChpPT57bGV0IHI9dFtpXTtBcnJheS5pc0FycmF5KHIpP3IuZm9yRWFjaChvPT57ZS5wdXNoKHtwYXJhbTppLHZhbHVlOm8sb3A6ImEifSl9KTplLnB1c2goe3BhcmFtOmksdmFsdWU6cixvcDoiYSJ9KX0pLHRoaXMuY2xvbmUoZSl9c2V0KHQsZSl7cmV0dXJuIHRoaXMuY2xvbmUoe3BhcmFtOnQsdmFsdWU6ZSxvcDoicyJ9KX1kZWxldGUodCxlKXtyZXR1cm4gdGhpcy5jbG9uZSh7cGFyYW06dCx2YWx1ZTplLG9wOiJkIn0pfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXMua2V5cygpLm1hcCh0PT57bGV0IGU9dGhpcy5lbmNvZGVyLmVuY29kZUtleSh0KTtyZXR1cm4gdGhpcy5tYXAuZ2V0KHQpLm1hcChpPT5lKyI9Iit0aGlzLmVuY29kZXIuZW5jb2RlVmFsdWUoaSkpLmpvaW4oIiYiKX0pLmZpbHRlcih0PT4iIiE9PXQpLmpvaW4oIiYiKX1jbG9uZSh0KXtsZXQgZT1uZXcgdmMoe2VuY29kZXI6dGhpcy5lbmNvZGVyfSk7cmV0dXJuIGUuY2xvbmVGcm9tPXRoaXMuY2xvbmVGcm9tfHx0aGlzLGUudXBkYXRlcz0odGhpcy51cGRhdGVzfHxbXSkuY29uY2F0KHQpLGV9aW5pdCgpe251bGw9PT10aGlzLm1hcCYmKHRoaXMubWFwPW5ldyBNYXApLG51bGwhPT10aGlzLmNsb25lRnJvbSYmKHRoaXMuY2xvbmVGcm9tLmluaXQoKSx0aGlzLmNsb25lRnJvbS5rZXlzKCkuZm9yRWFjaCh0PT50aGlzLm1hcC5zZXQodCx0aGlzLmNsb25lRnJvbS5tYXAuZ2V0KHQpKSksdGhpcy51cGRhdGVzLmZvckVhY2godD0+e3N3aXRjaCh0Lm9wKXtjYXNlImEiOmNhc2UicyI6bGV0IGU9KCJhIj09PXQub3A/dGhpcy5tYXAuZ2V0KHQucGFyYW0pOnZvaWQgMCl8fFtdO2UucHVzaChyUyh0LnZhbHVlKSksdGhpcy5tYXAuc2V0KHQucGFyYW0sZSk7YnJlYWs7Y2FzZSJkIjppZih2b2lkIDA9PT10LnZhbHVlKXt0aGlzLm1hcC5kZWxldGUodC5wYXJhbSk7YnJlYWt9e2xldCBpPXRoaXMubWFwLmdldCh0LnBhcmFtKXx8W10scj1pLmluZGV4T2YoclModC52YWx1ZSkpOy0xIT09ciYmaS5zcGxpY2UociwxKSxpLmxlbmd0aD4wP3RoaXMubWFwLnNldCh0LnBhcmFtLGkpOnRoaXMubWFwLmRlbGV0ZSh0LnBhcmFtKX19fSksdGhpcy5jbG9uZUZyb209dGhpcy51cGRhdGVzPW51bGwpfX07ZnVuY3Rpb24gcDYobil7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJm4gaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcn1mdW5jdGlvbiBoNihuKXtyZXR1cm4gdHlwZW9mIEJsb2I8InUiJiZuIGluc3RhbmNlb2YgQmxvYn1mdW5jdGlvbiBtNihuKXtyZXR1cm4gdHlwZW9mIEZvcm1EYXRhPCJ1IiYmbiBpbnN0YW5jZW9mIEZvcm1EYXRhfXZhciBoaD1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSxyKXtsZXQgbztpZih0aGlzLnVybD1lLHRoaXMuYm9keT1udWxsLHRoaXMucmVwb3J0UHJvZ3Jlc3M9ITEsdGhpcy53aXRoQ3JlZGVudGlhbHM9ITEsdGhpcy5yZXNwb25zZVR5cGU9Impzb24iLHRoaXMubWV0aG9kPXQudG9VcHBlckNhc2UoKSxmdW5jdGlvbihuKXtzd2l0Y2gobil7Y2FzZSJERUxFVEUiOmNhc2UiR0VUIjpjYXNlIkhFQUQiOmNhc2UiT1BUSU9OUyI6Y2FzZSJKU09OUCI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19KHRoaXMubWV0aG9kKXx8cj8odGhpcy5ib2R5PXZvaWQgMCE9PWk/aTpudWxsLG89cik6bz1pLG8mJih0aGlzLnJlcG9ydFByb2dyZXNzPSEhby5yZXBvcnRQcm9ncmVzcyx0aGlzLndpdGhDcmVkZW50aWFscz0hIW8ud2l0aENyZWRlbnRpYWxzLG8ucmVzcG9uc2VUeXBlJiYodGhpcy5yZXNwb25zZVR5cGU9by5yZXNwb25zZVR5cGUpLG8uaGVhZGVycyYmKHRoaXMuaGVhZGVycz1vLmhlYWRlcnMpLG8uY29udGV4dCYmKHRoaXMuY29udGV4dD1vLmNvbnRleHQpLG8ucGFyYW1zJiYodGhpcy5wYXJhbXM9by5wYXJhbXMpKSx0aGlzLmhlYWRlcnN8fCh0aGlzLmhlYWRlcnM9bmV3IG1zKSx0aGlzLmNvbnRleHR8fCh0aGlzLmNvbnRleHQ9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5tYXA9bmV3IE1hcH1zZXQodCxlKXtyZXR1cm4gdGhpcy5tYXAuc2V0KHQsZSksdGhpc31nZXQodCl7cmV0dXJuIHRoaXMubWFwLmhhcyh0KXx8dGhpcy5tYXAuc2V0KHQsdC5kZWZhdWx0VmFsdWUoKSksdGhpcy5tYXAuZ2V0KHQpfWRlbGV0ZSh0KXtyZXR1cm4gdGhpcy5tYXAuZGVsZXRlKHQpLHRoaXN9aGFzKHQpe3JldHVybiB0aGlzLm1hcC5oYXModCl9a2V5cygpe3JldHVybiB0aGlzLm1hcC5rZXlzKCl9fSksdGhpcy5wYXJhbXMpe2xldCBhPXRoaXMucGFyYW1zLnRvU3RyaW5nKCk7aWYoMD09PWEubGVuZ3RoKXRoaXMudXJsV2l0aFBhcmFtcz1lO2Vsc2V7bGV0IHM9ZS5pbmRleE9mKCI/Iik7dGhpcy51cmxXaXRoUGFyYW1zPWUrKC0xPT09cz8iPyI6czxlLmxlbmd0aC0xPyImIjoiIikrYX19ZWxzZSB0aGlzLnBhcmFtcz1uZXcgdmMsdGhpcy51cmxXaXRoUGFyYW1zPWV9c2VyaWFsaXplQm9keSgpe3JldHVybiBudWxsPT09dGhpcy5ib2R5P251bGw6cDYodGhpcy5ib2R5KXx8aDYodGhpcy5ib2R5KXx8bTYodGhpcy5ib2R5KXx8dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSImJnRoaXMuYm9keSBpbnN0YW5jZW9mIFVSTFNlYXJjaFBhcmFtc3x8InN0cmluZyI9PXR5cGVvZiB0aGlzLmJvZHk/dGhpcy5ib2R5OnRoaXMuYm9keSBpbnN0YW5jZW9mIHZjP3RoaXMuYm9keS50b1N0cmluZygpOiJvYmplY3QiPT10eXBlb2YgdGhpcy5ib2R5fHwiYm9vbGVhbiI9PXR5cGVvZiB0aGlzLmJvZHl8fEFycmF5LmlzQXJyYXkodGhpcy5ib2R5KT9KU09OLnN0cmluZ2lmeSh0aGlzLmJvZHkpOnRoaXMuYm9keS50b1N0cmluZygpfWRldGVjdENvbnRlbnRUeXBlSGVhZGVyKCl7cmV0dXJuIG51bGw9PT10aGlzLmJvZHl8fG02KHRoaXMuYm9keSk/bnVsbDpoNih0aGlzLmJvZHkpP3RoaXMuYm9keS50eXBlfHxudWxsOnA2KHRoaXMuYm9keSk/bnVsbDoic3RyaW5nIj09dHlwZW9mIHRoaXMuYm9keT8idGV4dC9wbGFpbiI6dGhpcy5ib2R5IGluc3RhbmNlb2YgdmM/ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04Ijoib2JqZWN0Ij09dHlwZW9mIHRoaXMuYm9keXx8Im51bWJlciI9PXR5cGVvZiB0aGlzLmJvZHl8fCJib29sZWFuIj09dHlwZW9mIHRoaXMuYm9keT8iYXBwbGljYXRpb24vanNvbiI6bnVsbH1jbG9uZSh0PXt9KXtsZXQgZT10Lm1ldGhvZHx8dGhpcy5tZXRob2QsaT10LnVybHx8dGhpcy51cmwscj10LnJlc3BvbnNlVHlwZXx8dGhpcy5yZXNwb25zZVR5cGUsbz12b2lkIDAhPT10LmJvZHk/dC5ib2R5OnRoaXMuYm9keSxhPXZvaWQgMCE9PXQud2l0aENyZWRlbnRpYWxzP3Qud2l0aENyZWRlbnRpYWxzOnRoaXMud2l0aENyZWRlbnRpYWxzLHM9dm9pZCAwIT09dC5yZXBvcnRQcm9ncmVzcz90LnJlcG9ydFByb2dyZXNzOnRoaXMucmVwb3J0UHJvZ3Jlc3MsbD10LmhlYWRlcnN8fHRoaXMuaGVhZGVycyxjPXQucGFyYW1zfHx0aGlzLnBhcmFtcyxkPXQuY29udGV4dD8/dGhpcy5jb250ZXh0O3JldHVybiB2b2lkIDAhPT10LnNldEhlYWRlcnMmJihsPU9iamVjdC5rZXlzKHQuc2V0SGVhZGVycykucmVkdWNlKCh1LHApPT51LnNldChwLHQuc2V0SGVhZGVyc1twXSksbCkpLHQuc2V0UGFyYW1zJiYoYz1PYmplY3Qua2V5cyh0LnNldFBhcmFtcykucmVkdWNlKCh1LHApPT51LnNldChwLHQuc2V0UGFyYW1zW3BdKSxjKSksbmV3IGhoKGUsaSxvLHtwYXJhbXM6YyxoZWFkZXJzOmwsY29udGV4dDpkLHJlcG9ydFByb2dyZXNzOnMscmVzcG9uc2VUeXBlOnIsd2l0aENyZWRlbnRpYWxzOmF9KX19LF91PSgoKT0+e3JldHVybihuPV91fHwoX3U9e30pKVtuLlNlbnQ9MF09IlNlbnQiLG5bbi5VcGxvYWRQcm9ncmVzcz0xXT0iVXBsb2FkUHJvZ3Jlc3MiLG5bbi5SZXNwb25zZUhlYWRlcj0yXT0iUmVzcG9uc2VIZWFkZXIiLG5bbi5Eb3dubG9hZFByb2dyZXNzPTNdPSJEb3dubG9hZFByb2dyZXNzIixuW24uUmVzcG9uc2U9NF09IlJlc3BvbnNlIixuW24uVXNlcj01XT0iVXNlciIsX3U7dmFyIG59KSgpLG92PWNsYXNze2NvbnN0cnVjdG9yKHQsZT0yMDAsaT0iT0siKXt0aGlzLmhlYWRlcnM9dC5oZWFkZXJzfHxuZXcgbXMsdGhpcy5zdGF0dXM9dm9pZCAwIT09dC5zdGF0dXM/dC5zdGF0dXM6ZSx0aGlzLnN0YXR1c1RleHQ9dC5zdGF0dXNUZXh0fHxpLHRoaXMudXJsPXQudXJsfHxudWxsLHRoaXMub2s9dGhpcy5zdGF0dXM+PTIwMCYmdGhpcy5zdGF0dXM8MzAwfX0sYXY9Y2xhc3MgZXh0ZW5kcyBvdntjb25zdHJ1Y3Rvcih0PXt9KXtzdXBlcih0KSx0aGlzLnR5cGU9X3UuUmVzcG9uc2VIZWFkZXJ9Y2xvbmUodD17fSl7cmV0dXJuIG5ldyBhdih7aGVhZGVyczp0LmhlYWRlcnN8fHRoaXMuaGVhZGVycyxzdGF0dXM6dm9pZCAwIT09dC5zdGF0dXM/dC5zdGF0dXM6dGhpcy5zdGF0dXMsc3RhdHVzVGV4dDp0LnN0YXR1c1RleHR8fHRoaXMuc3RhdHVzVGV4dCx1cmw6dC51cmx8fHRoaXMudXJsfHx2b2lkIDB9KX19LEJmPWNsYXNzIGV4dGVuZHMgb3Z7Y29uc3RydWN0b3IodD17fSl7c3VwZXIodCksdGhpcy50eXBlPV91LlJlc3BvbnNlLHRoaXMuYm9keT12b2lkIDAhPT10LmJvZHk/dC5ib2R5Om51bGx9Y2xvbmUodD17fSl7cmV0dXJuIG5ldyBCZih7Ym9keTp2b2lkIDAhPT10LmJvZHk/dC5ib2R5OnRoaXMuYm9keSxoZWFkZXJzOnQuaGVhZGVyc3x8dGhpcy5oZWFkZXJzLHN0YXR1czp2b2lkIDAhPT10LnN0YXR1cz90LnN0YXR1czp0aGlzLnN0YXR1cyxzdGF0dXNUZXh0OnQuc3RhdHVzVGV4dHx8dGhpcy5zdGF0dXNUZXh0LHVybDp0LnVybHx8dGhpcy51cmx8fHZvaWQgMH0pfX0sdWQ9Y2xhc3MgZXh0ZW5kcyBvdntjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LDAsIlVua25vd24gRXJyb3IiKSx0aGlzLm5hbWU9Ikh0dHBFcnJvclJlc3BvbnNlIix0aGlzLm9rPSExLHRoaXMubWVzc2FnZT10aGlzLnN0YXR1cz49MjAwJiZ0aGlzLnN0YXR1czwzMDA/YEh0dHAgZmFpbHVyZSBkdXJpbmcgcGFyc2luZyBmb3IgJHt0LnVybHx8Iih1bmtub3duIHVybCkifWA6YEh0dHAgZmFpbHVyZSByZXNwb25zZSBmb3IgJHt0LnVybHx8Iih1bmtub3duIHVybCkifTogJHt0LnN0YXR1c30gJHt0LnN0YXR1c1RleHR9YCx0aGlzLmVycm9yPXQuZXJyb3J8fG51bGx9fTtmdW5jdGlvbiBmRihuLHQpe3JldHVybntib2R5OnQsaGVhZGVyczpuLmhlYWRlcnMsY29udGV4dDpuLmNvbnRleHQsb2JzZXJ2ZTpuLm9ic2VydmUscGFyYW1zOm4ucGFyYW1zLHJlcG9ydFByb2dyZXNzOm4ucmVwb3J0UHJvZ3Jlc3MscmVzcG9uc2VUeXBlOm4ucmVzcG9uc2VUeXBlLHdpdGhDcmVkZW50aWFsczpuLndpdGhDcmVkZW50aWFsc319dmFyIG1oPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5oYW5kbGVyPWV9cmVxdWVzdChlLGkscj17fSl7bGV0IG87aWYoZSBpbnN0YW5jZW9mIGhoKW89ZTtlbHNle2xldCBsLGM7bD1yLmhlYWRlcnMgaW5zdGFuY2VvZiBtcz9yLmhlYWRlcnM6bmV3IG1zKHIuaGVhZGVycyksci5wYXJhbXMmJihjPXIucGFyYW1zIGluc3RhbmNlb2YgdmM/ci5wYXJhbXM6bmV3IHZjKHtmcm9tT2JqZWN0OnIucGFyYW1zfSkpLG89bmV3IGhoKGUsaSx2b2lkIDAhPT1yLmJvZHk/ci5ib2R5Om51bGwse2hlYWRlcnM6bCxjb250ZXh0OnIuY29udGV4dCxwYXJhbXM6YyxyZXBvcnRQcm9ncmVzczpyLnJlcG9ydFByb2dyZXNzLHJlc3BvbnNlVHlwZTpyLnJlc3BvbnNlVHlwZXx8Impzb24iLHdpdGhDcmVkZW50aWFsczpyLndpdGhDcmVkZW50aWFsc30pfWxldCBhPSR0KG8pLnBpcGUoZnVuY3Rpb24obix0KXtyZXR1cm4gbW4odCk/eG4obix0LDEpOnhuKG4sMSl9KGw9PnRoaXMuaGFuZGxlci5oYW5kbGUobCkpKTtpZihlIGluc3RhbmNlb2YgaGh8fCJldmVudHMiPT09ci5vYnNlcnZlKXJldHVybiBhO2xldCBzPWEucGlwZShPZShsPT5sIGluc3RhbmNlb2YgQmYpKTtzd2l0Y2goci5vYnNlcnZlfHwiYm9keSIpe2Nhc2UiYm9keSI6c3dpdGNoKG8ucmVzcG9uc2VUeXBlKXtjYXNlImFycmF5YnVmZmVyIjpyZXR1cm4gcy5waXBlKHEobD0+e2lmKG51bGwhPT1sLmJvZHkmJiEobC5ib2R5IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpKXRocm93IG5ldyBFcnJvcigiUmVzcG9uc2UgaXMgbm90IGFuIEFycmF5QnVmZmVyLiIpO3JldHVybiBsLmJvZHl9KSk7Y2FzZSJibG9iIjpyZXR1cm4gcy5waXBlKHEobD0+e2lmKG51bGwhPT1sLmJvZHkmJiEobC5ib2R5IGluc3RhbmNlb2YgQmxvYikpdGhyb3cgbmV3IEVycm9yKCJSZXNwb25zZSBpcyBub3QgYSBCbG9iLiIpO3JldHVybiBsLmJvZHl9KSk7Y2FzZSJ0ZXh0IjpyZXR1cm4gcy5waXBlKHEobD0+e2lmKG51bGwhPT1sLmJvZHkmJiJzdHJpbmciIT10eXBlb2YgbC5ib2R5KXRocm93IG5ldyBFcnJvcigiUmVzcG9uc2UgaXMgbm90IGEgc3RyaW5nLiIpO3JldHVybiBsLmJvZHl9KSk7ZGVmYXVsdDpyZXR1cm4gcy5waXBlKHEobD0+bC5ib2R5KSl9Y2FzZSJyZXNwb25zZSI6cmV0dXJuIHM7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVucmVhY2hhYmxlOiB1bmhhbmRsZWQgb2JzZXJ2ZSB0eXBlICR7ci5vYnNlcnZlfX1gKX19ZGVsZXRlKGUsaT17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiREVMRVRFIixlLGkpfWdldChlLGk9e30pe3JldHVybiB0aGlzLnJlcXVlc3QoIkdFVCIsZSxpKX1oZWFkKGUsaT17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiSEVBRCIsZSxpKX1qc29ucChlLGkpe3JldHVybiB0aGlzLnJlcXVlc3QoIkpTT05QIixlLHtwYXJhbXM6KG5ldyB2YykuYXBwZW5kKGksIkpTT05QX0NBTExCQUNLIiksb2JzZXJ2ZToiYm9keSIscmVzcG9uc2VUeXBlOiJqc29uIn0pfW9wdGlvbnMoZSxpPXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJPUFRJT05TIixlLGkpfXBhdGNoKGUsaSxyPXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJQQVRDSCIsZSxmRihyLGkpKX1wb3N0KGUsaSxyPXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJQT1NUIixlLGZGKHIsaSkpfXB1dChlLGkscj17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiUFVUIixlLGZGKHIsaSkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKHJ2KSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCk7ZnVuY3Rpb24gYjYobix0KXtyZXR1cm4gdChuKX1mdW5jdGlvbiBlZ2Uobix0KXtyZXR1cm4oZSxpKT0+dC5pbnRlcmNlcHQoZSx7aGFuZGxlOnI9Pm4ocixpKX0pfXZhciBiRj1uZXcgdGUoIkhUVFBfSU5URVJDRVBUT1JTIiksdkY9bmV3IHRlKCJIVFRQX0lOVEVSQ0VQVE9SX0ZOUyIpO2Z1bmN0aW9uIG5nZSgpe2xldCBuPW51bGw7cmV0dXJuKHQsZSk9PihudWxsPT09biYmKG49KCRuKGJGLHtvcHRpb25hbDohMH0pPz9bXSkucmVkdWNlUmlnaHQoZWdlLGI2KSksbih0LGUpKX12YXIgZjY9KCgpPT57Y2xhc3MgbiBleHRlbmRzIHJ2e2NvbnN0cnVjdG9yKGUsaSl7c3VwZXIoKSx0aGlzLmJhY2tlbmQ9ZSx0aGlzLmluamVjdG9yPWksdGhpcy5jaGFpbj1udWxsfWhhbmRsZShlKXtpZihudWxsPT09dGhpcy5jaGFpbil7bGV0IGk9QXJyYXkuZnJvbShuZXcgU2V0KHRoaXMuaW5qZWN0b3IuZ2V0KHZGKSkpO3RoaXMuY2hhaW49aS5yZWR1Y2VSaWdodCgocixvKT0+ZnVuY3Rpb24obix0LGUpe3JldHVybihpLHIpPT5lLnJ1bkluQ29udGV4dCgoKT0+dChpLG89Pm4obyxyKSkpfShyLG8sdGhpcy5pbmplY3RvciksYjYpfXJldHVybiB0aGlzLmNoYWluKGUsaT0+dGhpcy5iYWNrZW5kLmhhbmRsZShpKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oYVMpLE8obGMpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWN9KSxufSkoKSxpZ2U9L15cKVxdXH0nLD9cbi8sZzY9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLnhockZhY3Rvcnk9ZX1oYW5kbGUoZSl7aWYoIkpTT05QIj09PWUubWV0aG9kKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGVkIHRvIGNvbnN0cnVjdCBKc29ucCByZXF1ZXN0IHdpdGhvdXQgSHR0cENsaWVudEpzb25wTW9kdWxlIGluc3RhbGxlZC4iKTtyZXR1cm4gbmV3IEt0KGk9PntsZXQgcj10aGlzLnhockZhY3RvcnkuYnVpbGQoKTtpZihyLm9wZW4oZS5tZXRob2QsZS51cmxXaXRoUGFyYW1zKSxlLndpdGhDcmVkZW50aWFscyYmKHIud2l0aENyZWRlbnRpYWxzPSEwKSxlLmhlYWRlcnMuZm9yRWFjaCgoaCxtKT0+ci5zZXRSZXF1ZXN0SGVhZGVyKGgsbS5qb2luKCIsIikpKSxlLmhlYWRlcnMuaGFzKCJBY2NlcHQiKXx8ci5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLCJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiKSwhZS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIikpe2xldCBoPWUuZGV0ZWN0Q29udGVudFR5cGVIZWFkZXIoKTtudWxsIT09aCYmci5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGgpfWlmKGUucmVzcG9uc2VUeXBlKXtsZXQgaD1lLnJlc3BvbnNlVHlwZS50b0xvd2VyQ2FzZSgpO3IucmVzcG9uc2VUeXBlPSJqc29uIiE9PWg/aDoidGV4dCJ9bGV0IG89ZS5zZXJpYWxpemVCb2R5KCksYT1udWxsLHM9KCk9PntpZihudWxsIT09YSlyZXR1cm4gYTtsZXQgaD1yLnN0YXR1c1RleHR8fCJPSyIsbT1uZXcgbXMoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksXz1mdW5jdGlvbihuKXtyZXR1cm4icmVzcG9uc2VVUkwiaW4gbiYmbi5yZXNwb25zZVVSTD9uLnJlc3BvbnNlVVJMOi9eWC1SZXF1ZXN0LVVSTDovbS50ZXN0KG4uZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpP24uZ2V0UmVzcG9uc2VIZWFkZXIoIlgtUmVxdWVzdC1VUkwiKTpudWxsfShyKXx8ZS51cmw7cmV0dXJuIGE9bmV3IGF2KHtoZWFkZXJzOm0sc3RhdHVzOnIuc3RhdHVzLHN0YXR1c1RleHQ6aCx1cmw6X30pLGF9LGw9KCk9PntsZXR7aGVhZGVyczpoLHN0YXR1czptLHN0YXR1c1RleHQ6Xyx1cmw6TX09cygpLHk9bnVsbDsyMDQhPT1tJiYoeT10eXBlb2Ygci5yZXNwb25zZT4idSI/ci5yZXNwb25zZVRleHQ6ci5yZXNwb25zZSksMD09PW0mJihtPXk/MjAwOjApO2xldCB4PW0+PTIwMCYmbTwzMDA7aWYoImpzb24iPT09ZS5yZXNwb25zZVR5cGUmJiJzdHJpbmciPT10eXBlb2YgeSl7bGV0IFI9eTt5PXkucmVwbGFjZShpZ2UsIiIpO3RyeXt5PSIiIT09eT9KU09OLnBhcnNlKHkpOm51bGx9Y2F0Y2goSSl7eT1SLHgmJih4PSExLHk9e2Vycm9yOkksdGV4dDp5fSl9fXg/KGkubmV4dChuZXcgQmYoe2JvZHk6eSxoZWFkZXJzOmgsc3RhdHVzOm0sc3RhdHVzVGV4dDpfLHVybDpNfHx2b2lkIDB9KSksaS5jb21wbGV0ZSgpKTppLmVycm9yKG5ldyB1ZCh7ZXJyb3I6eSxoZWFkZXJzOmgsc3RhdHVzOm0sc3RhdHVzVGV4dDpfLHVybDpNfHx2b2lkIDB9KSl9LGM9aD0+e2xldHt1cmw6bX09cygpLF89bmV3IHVkKHtlcnJvcjpoLHN0YXR1czpyLnN0YXR1c3x8MCxzdGF0dXNUZXh0OnIuc3RhdHVzVGV4dHx8IlVua25vd24gRXJyb3IiLHVybDptfHx2b2lkIDB9KTtpLmVycm9yKF8pfSxkPSExLHU9aD0+e2R8fChpLm5leHQocygpKSxkPSEwKTtsZXQgbT17dHlwZTpfdS5Eb3dubG9hZFByb2dyZXNzLGxvYWRlZDpoLmxvYWRlZH07aC5sZW5ndGhDb21wdXRhYmxlJiYobS50b3RhbD1oLnRvdGFsKSwidGV4dCI9PT1lLnJlc3BvbnNlVHlwZSYmISFyLnJlc3BvbnNlVGV4dCYmKG0ucGFydGlhbFRleHQ9ci5yZXNwb25zZVRleHQpLGkubmV4dChtKX0scD1oPT57bGV0IG09e3R5cGU6X3UuVXBsb2FkUHJvZ3Jlc3MsbG9hZGVkOmgubG9hZGVkfTtoLmxlbmd0aENvbXB1dGFibGUmJihtLnRvdGFsPWgudG90YWwpLGkubmV4dChtKX07cmV0dXJuIHIuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsbCksci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsYyksci5hZGRFdmVudExpc3RlbmVyKCJ0aW1lb3V0IixjKSxyLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixjKSxlLnJlcG9ydFByb2dyZXNzJiYoci5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsdSksbnVsbCE9PW8mJnIudXBsb2FkJiZyLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIscCkpLHIuc2VuZChvKSxpLm5leHQoe3R5cGU6X3UuU2VudH0pLCgpPT57ci5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsYyksci5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsYyksci5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixsKSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRpbWVvdXQiLGMpLGUucmVwb3J0UHJvZ3Jlc3MmJihyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInByb2dyZXNzIix1KSxudWxsIT09byYmci51cGxvYWQmJnIudXBsb2FkLnJlbW92ZUV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixwKSksci5yZWFkeVN0YXRlIT09ci5ET05FJiZyLmFib3J0KCl9fSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8odGgpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWN9KSxufSkoKSx2Nj1uZXcgdGUoIlhTUkZfRU5BQkxFRCIpLGFnZT1uZXcgdGUoIlhTUkZfQ09PS0lFX05BTUUiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT4iWFNSRi1UT0tFTiJ9KSxsZ2U9bmV3IHRlKCJYU1JGX0hFQURFUl9OQU1FIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+IlgtWFNSRi1UT0tFTiJ9KSxzUz1jbGFzc3t9LGNnZT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSxyKXt0aGlzLmRvYz1lLHRoaXMucGxhdGZvcm09aSx0aGlzLmNvb2tpZU5hbWU9cix0aGlzLmxhc3RDb29raWVTdHJpbmc9IiIsdGhpcy5sYXN0VG9rZW49bnVsbCx0aGlzLnBhcnNlQ291bnQ9MH1nZXRUb2tlbigpe2lmKCJzZXJ2ZXIiPT09dGhpcy5wbGF0Zm9ybSlyZXR1cm4gbnVsbDtsZXQgZT10aGlzLmRvYy5jb29raWV8fCIiO3JldHVybiBlIT09dGhpcy5sYXN0Q29va2llU3RyaW5nJiYodGhpcy5wYXJzZUNvdW50KyssdGhpcy5sYXN0VG9rZW49ZncoZSx0aGlzLmNvb2tpZU5hbWUpLHRoaXMubGFzdENvb2tpZVN0cmluZz1lKSx0aGlzLmxhc3RUb2tlbn19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhOdCksTyhmYyksTyhhZ2UpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWN9KSxufSkoKTtmdW5jdGlvbiBkZ2Uobix0KXtsZXQgZT1uLnVybC50b0xvd2VyQ2FzZSgpO2lmKCEkbih2Nil8fCJHRVQiPT09bi5tZXRob2R8fCJIRUFEIj09PW4ubWV0aG9kfHxlLnN0YXJ0c1dpdGgoImh0dHA6Ly8iKXx8ZS5zdGFydHNXaXRoKCJodHRwczovLyIpKXJldHVybiB0KG4pO2xldCBpPSRuKHNTKS5nZXRUb2tlbigpLHI9JG4obGdlKTtyZXR1cm4gbnVsbCE9aSYmIW4uaGVhZGVycy5oYXMocikmJihuPW4uY2xvbmUoe2hlYWRlcnM6bi5oZWFkZXJzLnNldChyLGkpfSkpLHQobil9dmFyIG9TPSgoKT0+e3JldHVybihuPW9TfHwob1M9e30pKVtuLkludGVyY2VwdG9ycz0wXT0iSW50ZXJjZXB0b3JzIixuW24uTGVnYWN5SW50ZXJjZXB0b3JzPTFdPSJMZWdhY3lJbnRlcmNlcHRvcnMiLG5bbi5DdXN0b21Yc3JmQ29uZmlndXJhdGlvbj0yXT0iQ3VzdG9tWHNyZkNvbmZpZ3VyYXRpb24iLG5bbi5Ob1hzcmZQcm90ZWN0aW9uPTNdPSJOb1hzcmZQcm90ZWN0aW9uIixuW24uSnNvbnBTdXBwb3J0PTRdPSJKc29ucFN1cHBvcnQiLG5bbi5SZXF1ZXN0c01hZGVWaWFQYXJlbnQ9NV09IlJlcXVlc3RzTWFkZVZpYVBhcmVudCIsb1M7dmFyIG59KSgpO2Z1bmN0aW9uIHBnZSguLi5uKXtsZXQgdD1bbWgsZzYsZjYse3Byb3ZpZGU6cnYsdXNlRXhpc3Rpbmc6ZjZ9LHtwcm92aWRlOmFTLHVzZUV4aXN0aW5nOmc2fSx7cHJvdmlkZTp2Rix1c2VWYWx1ZTpkZ2UsbXVsdGk6ITB9LHtwcm92aWRlOnY2LHVzZVZhbHVlOiEwfSx7cHJvdmlkZTpzUyx1c2VDbGFzczpjZ2V9XTtmb3IobGV0IGUgb2Ygbil0LnB1c2goLi4uZS5cdTAyNzVwcm92aWRlcnMpO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm57Ilx1MDI3NXByb3ZpZGVycyI6bn19KHQpfXZhciBfNj1uZXcgdGUoIkxFR0FDWV9JTlRFUkNFUFRPUl9GTiIpLHk2PSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtwcm92aWRlcnM6W3BnZSh7Ilx1MDI3NWtpbmQiOm9TLkxlZ2FjeUludGVyY2VwdG9ycywiXHUwMjc1cHJvdmlkZXJzIjpbe3Byb3ZpZGU6XzYsdXNlRmFjdG9yeTpuZ2V9LHtwcm92aWRlOnZGLHVzZUV4aXN0aW5nOl82LG11bHRpOiEwfV19KV19KSxufSkoKSxsUz0iZmVhdHVyZSIsVmY9TXIobFMpLGJ1PVcoVmYsbj0+bi5pc0ZlYXR1cmVGbGFnc0xvYWRlZCksUW89VyhWZixuPT4oey4uLm4uZGVmYXVsdEZsYWdzLC4uLm4uZmxhZ092ZXJyaWRlc30pKSxDNj1XKFZmLG49Pm4uZGVmYXVsdEZsYWdzKSxzdj1XKFZmLG49Pm4uZmxhZ092ZXJyaWRlc3x8e30pLGZoPVcoVmYsbj0+bi5tZXRhZGF0YSksSGY9VyhWZixuPT57bGV0IHQ9e307Zm9yKGxldCBlIGluIG4uZmxhZ092ZXJyaWRlcyl7bGV0IGk9bi5tZXRhZGF0YVtlXTtpJiZpLnF1ZXJ5UGFyYW1PdmVycmlkZSYmaS5zZW5kVG9TZXJ2ZXJXaGVuT3ZlcnJpZGRlbiYmKHRbZV09bi5mbGFnT3ZlcnJpZGVzW2VdKX1yZXR1cm4gdH0pLE02PVcoUW8sbj0+bi5pc0F1dG9EYXJrTW9kZUFsbG93ZWQpLFBsPVcoUW8sbj0+bnVsbCE9PW4uZW5hYmxlRGFya01vZGVPdmVycmlkZT9uLmVuYWJsZURhcmtNb2RlT3ZlcnJpZGU6bi5kZWZhdWx0RW5hYmxlRGFya01vZGUpLGNTPVcoUW8sbj0+bi5lbmFibGVEYXJrTW9kZU92ZXJyaWRlKSx3Nj1XKFFvLG49Pm4uZW5hYmxlZEV4cGVyaW1lbnRhbFBsdWdpbnMpLFM2PVcoUW8sbj0+bi5pbkNvbGFiKSxkUz1XKFFvLG49Pm4ubWV0cmljc0ltYWdlU3VwcG9ydEVuYWJsZWQpLHlGPVcoUW8sbj0+bi5mb3JjZVN2ZyksRTY9VyhRbyxuPT52b2lkIDAhPT1uLnNob3dGbGFncyksdVM9VyhRbyxuPT5uLmVuYWJsZVNjYWxhckNvbHVtbkN1c3RvbWl6YXRpb24pLFQ2PVcoUW8sbj0+bi5lbmFibGVTY2FsYXJDb2x1bW5Db250ZXh0TWVudXMpLHBkPVcoUW8sbj0+bi5lbmFibGVHbG9iYWxQaW5zKSxENj1XKFFvLG49Pm4uZW5hYmxlQ29sb3JCeUV4cGVyaW1lbnQpO2Z1bmN0aW9uIGZnZShuLHQpe2lmKCFuKXJldHVybjtsZXQgZT1uIGluc3RhbmNlb2YgRm9ybURhdGE/ZnVuY3Rpb24obil7bGV0IHQ9e307Zm9yKGxldFtlLGldb2Ygbi5lbnRyaWVzKCkpdFtlXT1pO3JldHVybiB0fShuKTpuO3JldHVybiB0P3tbdF06SlNPTi5zdHJpbmdpZnkoZSl9OmV9dmFyIGdnZT0iWC1YU1JGLVByb3RlY3RlZCI7ZnVuY3Rpb24geEYobil7bGV0IHQ9bi5oZWFkZXJzfHxuZXcgbXM7cmV0dXJuIHQ9dC5hcHBlbmQoZ2dlLCIxIiksey4uLm4saGVhZGVyczp0fX12YXIgWHM9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscil7dGhpcy5hcHBSb290UHJvdmlkZXI9ZSx0aGlzLmh0dHA9aSx0aGlzLnN0b3JlPXJ9cmVzb2x2ZUFwcFJvb3QoZSl7cmV0dXJuIGUuc3RhcnRzV2l0aCgiLyIpP3RoaXMuYXBwUm9vdFByb3ZpZGVyLmdldEFic1BhdGhuYW1lV2l0aEFwcFJvb3QoZSk6ZX1nZXQoZSxpPXt9KXtyZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnJlc29sdmVBcHBSb290KGUpLGkpfXBvc3QoZSxpLHI9e30sbyl7cmV0dXJuIHI9eEYociksdGhpcy5zdG9yZS5zZWxlY3QoYnUpLnBpcGUoT2UoYT0+Qm9vbGVhbihhKSksTHQoMSksSXQodGhpcy5zdG9yZS5zZWxlY3QoUzYpKSx4bigoWyxhXSk9PntsZXQgcz10aGlzLnJlc29sdmVBcHBSb290KGUpO3JldHVybiBhP3RoaXMuaHR0cC5nZXQocyx7aGVhZGVyczpyLmhlYWRlcnM/P3t9LHBhcmFtczpmZ2UoaSxvKX0pOnRoaXMuaHR0cC5wb3N0KHMsaSxyKX0pKX1wdXQoZSxpLHI9e30pe3JldHVybiB0aGlzLmh0dHAucHV0KHRoaXMucmVzb2x2ZUFwcFJvb3QoZSksaSx4RihyKSl9ZGVsZXRlKGUsaT17fSl7cmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodGhpcy5yZXNvbHZlQXBwUm9vdChlKSx4RihpKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8odWgpLE8obWgpLE8oSWUpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWN9KSxufSkoKSx6Zj0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7cHJvdmlkZXJzOltYc10saW1wb3J0czpbeTYsa2ZdfSksbn0pKCksWXM9KCgpPT57cmV0dXJuKG49WXN8fChZcz17fSkpLlVOS05PV049IlVOS05PV04iLG4uTk9UX0ZPVU5EPSJOT1RfRk9VTkQiLG4uUEVSTUlTU0lPTl9ERU5JRUQ9IlBFUk1JU1NJT05fREVOSUVEIixZczt2YXIgbn0pKCksSTY9bmV3IHRlKCJUZW5zb3JCb2FyZCBicmFuZCBuYW1lIik7ZnVuY3Rpb24gQTYobil7bGV0IHQ9WXMuVU5LTk9XTjtyZXR1cm4gbiBpbnN0YW5jZW9mIHVkJiYoNDA0PT09bi5zdGF0dXMmJih0PVlzLk5PVF9GT1VORCksNDAzPT09bi5zdGF0dXMmJih0PVlzLlBFUk1JU1NJT05fREVOSUVEKSksX2wobmV3IGN2KHQpKX12YXIgY3Y9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5mYWlsdXJlQ29kZT10fX0scFM9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLmh0dHA9ZSx0aGlzLnRmQmFja2VuZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Zi1iYWNrZW5kIikudGZfYmFja2VuZH1mZXRjaFBsdWdpbnNMaXN0aW5nKGUpe2xldCBpPWZ1bmN0aW9uKG4pe2lmKCFuLmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgdD1uZXcgVVJMU2VhcmNoUGFyYW1zO2ZvcihsZXQgZSBvZiBuKXQuYXBwZW5kKCJleHBlcmltZW50YWxQbHVnaW4iLGUpO3JldHVybiB0fShlKSxyPWk/YGRhdGEvcGx1Z2luc19saXN0aW5nPyR7aS50b1N0cmluZygpfWA6ImRhdGEvcGx1Z2luc19saXN0aW5nIjtyZXR1cm4gdGhpcy5odHRwLmdldChyKS5waXBlKGNvKEE2KSl9ZmV0Y2hFbnZpcm9ubWVudCgpe3JldHVybiBDbyhbdGhpcy5odHRwLmdldCgiZGF0YS9lbnZpcm9ubWVudCIpLEpyKHRoaXMudGZCYWNrZW5kLmVudmlyb25tZW50U3RvcmUucmVmcmVzaCgpKV0pLnBpcGUocSgoW3JdKT0+ciksY28oQTYpKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhYcykpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLFI2PSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtwcm92aWRlcnM6W3BTXSxpbXBvcnRzOlt6Zl19KSxufSkoKSxSZT0oKCk9PntyZXR1cm4obj1SZXx8KFJlPXt9KSlbbi5OT1RfTE9BREVEPTBdPSJOT1RfTE9BREVEIixuW24uTE9BREVEPTFdPSJMT0FERUQiLG5bbi5MT0FESU5HPTJdPSJMT0FESU5HIixuW24uRkFJTEVEPTNdPSJGQUlMRUQiLFJlO3ZhciBufSkoKSx5Yz1mZSgiW0NvcmVdIFBsdWdpbiBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksaFM9ZmUoIltDb3JlXSBQbHVnaW4gVXJsIEhhc2ggQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFA2PWZlKCJbQ29yZV0gTG9hZGVkIiksQmE9ZmUoIltDb3JlXSBVc2VyIFRyaWdnZXJlZCBSZWxvYWQiKSxtYT1mZSgiW0NvcmVdIEF1dG8gUmVsb2FkIiksbVM9ZmUoIltDb3JlXSBQbHVnaW5MaXN0aW5nIEZldGNoIFJlcXVlc3RlZCIpLGdoPWZlKCJbQ29yZV0gUGx1Z2luTGlzdGluZyBGZXRjaCBTdWNjZXNzZnVsIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksZHY9ZmUoIltDb3JlXSBQbHVnaW5MaXN0aW5nIEZldGNoIEZhaWxlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGZTPWZlKCJbQ29yZV0gUG9seW1lciBDb21wb25lbnQgUnVucyBGZXRjaCBSZXF1ZXN0ZWQiKSxnUz1mZSgiW0NvcmVdIFBvbHltZXIgQ29tcG9uZW50IFJ1bnMgRmV0Y2ggU3VjY2Vzc2Z1bCIpLF9TPWZlKCJbQ29yZV0gUG9seW1lciBDb21wb25lbnQgUnVucyBGZXRjaCBGYWlsZWQiKSxiUz1mZSgiW0NvcmVdIEVudmlyb25tZW50IEZldGNoIFN1Y2Nlc3NmdWwiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxrNj1mZSgiW0NvcmVdIFJ1biBTZWxlY3Rpb24gQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLE82PWZlKCJbQ29yZV0gUnVuIEZldGNoIFN1Y2Nlc3NmdWwiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxVZj1mZSgiW0NvcmVdIFNpZGUgQmFyIFdpZHRoIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSx2Uz1mZSgiW0NvcmVdIFJ1bnMgVGFibGUgRnVsbCBTY3JlZW4gVG9nZ2xlZCIpO2Z1bmN0aW9uIF9oKG4sdCxlKXtsZXQgaT1PYmplY3Qua2V5cyhuKSxyPXsuLi5uLC4uLnQscHJpdmF0ZU5hbWVzcGFjZWRTdGF0ZTp7fX07cmV0dXJue2luaXRpYWxTdGF0ZTpyLHJlZHVjZXJzOmdyKHIseWUoTmEsKHMse2JlZm9yZTpsLGFmdGVyOmMsYmVmb3JlTmFtZXNwYWNlSWQ6ZCxhZnRlck5hbWVzcGFjZUlkOnV9KT0+e2xldCBwPXM7cmV0dXJuIGQhPT11JiYocD1mdW5jdGlvbihzLGwsYyl7bGV0IGQ9ey4uLnMucHJpdmF0ZU5hbWVzcGFjZWRTdGF0ZX07aWYobCl7bGV0IHA9e307Zm9yKGxldCBoIG9mIGkpcFtoXT1zW2hdO2Q9ey4uLmQsW2xdOnB9fWxldCB1PXt9O3JldHVybiBzLnByaXZhdGVOYW1lc3BhY2VkU3RhdGU/LltjXT91PXMucHJpdmF0ZU5hbWVzcGFjZWRTdGF0ZVtjXTpsJiYodT1uKSx7Li4ucywuLi51LHByaXZhdGVOYW1lc3BhY2VkU3RhdGU6ZH19KHMsZCx1KSksZSYmKHA9ZShwLGwsYykpLHB9KSl9fWZ1bmN0aW9uIGJoKC4uLm4pe3JldHVybih0LGUpPT57bGV0IGk9dDtmb3IobGV0IHIgb2YgbilpPXIoaSxlKTtyZXR1cm4gaX19dmFyIHB2PXthY3RpdmVQbHVnaW46bnVsbCxwbHVnaW5zOnt9LGNvcmVEYXRhTG9hZFN0YXRlOntzdGF0ZTpSZS5OT1RfTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpudWxsfSxwbHVnaW5zTGlzdExvYWRlZDp7c3RhdGU6UmUuTk9UX0xPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6bnVsbCxmYWlsdXJlQ29kZTpudWxsfSxlbnZpcm9ubWVudDp7ZGF0YV9sb2NhdGlvbjoiIix3aW5kb3dfdGl0bGU6IiJ9LHBvbHltZXJSdW5zTG9hZFN0YXRlOntzdGF0ZTpSZS5OT1RfTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpudWxsfSxwb2x5bWVySW50ZXJvcFJ1bnM6W10scG9seW1lckludGVyb3BSdW5TZWxlY3Rpb246bmV3IFNldCxzaWRlQmFyV2lkdGhJblBlcmNlbnQ6MjAscnVuc1RhYmxlRnVsbFNjcmVlbjohMSx1bmtub3duUXVlcnlQYXJhbXM6e319LHZnZT1ncihwdix5ZSh5YyxoUywobix7cGx1Z2luOnR9KT0+KHsuLi5uLGFjdGl2ZVBsdWdpbjp0fSkpLHllKG1TLG49Pih7Li4ubixjb3JlRGF0YUxvYWRTdGF0ZTp7Li4ubi5jb3JlRGF0YUxvYWRTdGF0ZSxzdGF0ZTpSZS5MT0FESU5HfSxwbHVnaW5zTGlzdExvYWRlZDp7Li4ubi5wbHVnaW5zTGlzdExvYWRlZCxzdGF0ZTpSZS5MT0FESU5HfX0pKSx5ZShkdiwobix7ZmFpbHVyZUNvZGU6dH0pPT4oey4uLm4sY29yZURhdGFMb2FkU3RhdGU6ey4uLm4uY29yZURhdGFMb2FkU3RhdGUsc3RhdGU6UmUuRkFJTEVEfSxwbHVnaW5zTGlzdExvYWRlZDp7Li4ubi5wbHVnaW5zTGlzdExvYWRlZCxzdGF0ZTpSZS5GQUlMRUQsZmFpbHVyZUNvZGU6dH19KSkseWUoZ2gsKG4se3BsdWdpbnM6dH0pPT57bGV0IGU9T2JqZWN0LmtleXModCkuZmluZChhPT50W2FdLmVuYWJsZWQpfHxudWxsLGk9bi5hY3RpdmVQbHVnaW58fGUscj1EYXRlLm5vdygpLG89bi5jb3JlRGF0YUxvYWRTdGF0ZTtyZXR1cm4gbi5wb2x5bWVyUnVuc0xvYWRTdGF0ZS5zdGF0ZT09PVJlLkxPQURFRCYmKG89e3N0YXRlOlJlLkxPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6cn0pLHsuLi5uLGFjdGl2ZVBsdWdpbjppLGNvcmVEYXRhTG9hZFN0YXRlOm8scGx1Z2luczp0LHBsdWdpbnNMaXN0TG9hZGVkOntzdGF0ZTpSZS5MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOnIsZmFpbHVyZUNvZGU6bnVsbH19fSkseWUoZlMsbj0+KHsuLi5uLGNvcmVEYXRhTG9hZFN0YXRlOnsuLi5uLmNvcmVEYXRhTG9hZFN0YXRlLHN0YXRlOlJlLkxPQURJTkd9LHBvbHltZXJSdW5zTG9hZFN0YXRlOnsuLi5uLnBvbHltZXJSdW5zTG9hZFN0YXRlLHN0YXRlOlJlLkxPQURJTkd9fSkpLHllKGdTLG49PntsZXQgdD1EYXRlLm5vdygpLGU9bi5jb3JlRGF0YUxvYWRTdGF0ZTtyZXR1cm4gbi5wbHVnaW5zTGlzdExvYWRlZC5zdGF0ZT09PVJlLkxPQURFRCYmKGU9e3N0YXRlOlJlLkxPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6dH0pLHsuLi5uLGNvcmVEYXRhTG9hZFN0YXRlOmUscG9seW1lclJ1bnNMb2FkU3RhdGU6ey4uLm4ucG9seW1lclJ1bnNMb2FkU3RhdGUsc3RhdGU6UmUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5Nczp0fX19KSx5ZShfUyxuPT4oey4uLm4sY29yZURhdGFMb2FkU3RhdGU6ey4uLm4uY29yZURhdGFMb2FkU3RhdGUsc3RhdGU6UmUuRkFJTEVEfSxwb2x5bWVyUnVuc0xvYWRTdGF0ZTp7Li4ubi5wb2x5bWVyUnVuc0xvYWRTdGF0ZSxzdGF0ZTpSZS5GQUlMRUR9fSkpLHllKGJTLChuLHtlbnZpcm9ubWVudDp0fSk9Pih7Li4ubixlbnZpcm9ubWVudDp0fSkpLHllKE82LChuLHtydW5zOnR9KT0+KHsuLi5uLHBvbHltZXJJbnRlcm9wUnVuczp0fSkpLHllKGs2LChuLHtuZXh0U2VsZWN0aW9uOnR9KT0+KHsuLi5uLHBvbHltZXJJbnRlcm9wUnVuU2VsZWN0aW9uOm5ldyBTZXQodCl9KSkseWUoVWYsKG4se3dpZHRoSW5QZXJjZW50OnR9KT0+KHsuLi5uLHNpZGVCYXJXaWR0aEluUGVyY2VudDpNYXRoLm1pbihNYXRoLm1heCgwLHQpLDEwMCl9KSkseWUoaHMsKG4se3BhcnRpYWxTZXR0aW5nczp0fSk9PntsZXQgZT17Li4ubn0saT10LnNpZGVCYXJXaWR0aEluUGVyY2VudDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGkmJmk+PTAmJmk8PTEwMCYmKGUuc2lkZUJhcldpZHRoSW5QZXJjZW50PWkpLGV9KSx5ZSh2UyxuPT4oey4uLm4scnVuc1RhYmxlRnVsbFNjcmVlbjohbi5ydW5zVGFibGVGdWxsU2NyZWVufSkpLHllKGZ1LChuLHtwYXJ0aWFsU3RhdGU6dH0pPT57bGV0e3Vua25vd25RdWVyeVBhcmFtczplPXt9fT10O3JldHVybnsuLi5uLHVua25vd25RdWVyeVBhcmFtczplfX0pKSx7cmVkdWNlcnM6eWdlfT1faChwdix7fSk7ZnVuY3Rpb24gRjYobix0KXtyZXR1cm4gYmgodmdlLHlnZSkobix0KX12YXIgeGM9TXIoImNvcmUiKSx4Uz1XKHhjLG49Pm4ucGx1Z2luc0xpc3RMb2FkZWQpLE42PVcoeGMsbj0+bi5wb2x5bWVyUnVuc0xvYWRTdGF0ZSksTDY9Vyh4YyxuPT5uLmNvcmVEYXRhTG9hZFN0YXRlLnN0YXRlKSxqZj1XKHhjLG49Pm4uY29yZURhdGFMb2FkU3RhdGUubGFzdExvYWRlZFRpbWVJbk1zKSxabz1XKHhjLG49Pm4uYWN0aXZlUGx1Z2luKSxHZj1XKHhjLG49Pm4ucGx1Z2lucyksQjY9Vyh4YyxuPT5uLnVua25vd25RdWVyeVBhcmFtcyksQ1M9Vyh4YyxuPT5uLmVudmlyb25tZW50KSxNUz1XKHhjLG49Pm4uc2lkZUJhcldpZHRoSW5QZXJjZW50KSx3Uz1XKHhjLG49Pm4ucnVuc1RhYmxlRnVsbFNjcmVlbiksVjY9bmV3IFNldChbQ24uQ09NUEFSRV9FWFBFUklNRU5ULENuLkVYUEVSSU1FTlQsQ24uTk9UX1NFVF0pLEg2PSgoKT0+e2NsYXNzIG57cmVmcmVzaFBvbHltZXJSdW5zKCl7cmV0dXJuIEpyKHRoaXMudGZCYWNrZW5kLnJlZi5ydW5zU3RvcmUucmVmcmVzaCgpKX1mZXRjaEVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMud2ViYXBwRGF0YVNvdXJjZS5mZXRjaEVudmlyb25tZW50KCkucGlwZShEdChlPT57dGhpcy5zdG9yZS5kaXNwYXRjaChiUyh7ZW52aXJvbm1lbnQ6ZX0pKX0pKX1jb25zdHJ1Y3RvcihlLGkscil7dGhpcy5hY3Rpb25zJD1lLHRoaXMuc3RvcmU9aSx0aGlzLndlYmFwcERhdGFTb3VyY2U9cix0aGlzLnRmQmFja2VuZD17cmVmOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRmLWJhY2tlbmQiKS50Zl9iYWNrZW5kfSx0aGlzLm9uRGFzaGJvYXJkTG9hZCQ9dG4odGhpcy5hY3Rpb25zJC5waXBlKFpuKFA2LE5hKSxJdCh0aGlzLnN0b3JlLnNlbGVjdChIbykpLHJpKChbLG9dLFssYV0pPT5WbyhvLGEpKSksdGhpcy5hY3Rpb25zJC5waXBlKFpuKG1hLEJhKSkpLnBpcGUoSXQodGhpcy5zdG9yZS5zZWxlY3QoV3MpKSxPZSgoWyxvXSk9PlY2LmhhcyhvKSksaWMoMSx2b2lkIDAse2xlYWRpbmc6ITB9KSksdGhpcy5mZXRjaFdlYkFwcERhdGEkPV9yKCgpPT57bGV0IG89dGhpcy5vbkRhc2hib2FyZExvYWQkLnBpcGUoSXQodGhpcy5zdG9yZS5zZWxlY3QoeFMpLHRoaXMuc3RvcmUuc2VsZWN0KHc2KSksT2UoKFsse3N0YXRlOnN9XSk9PnMhPT1SZS5MT0FESU5HKSxEdCgoKT0+dGhpcy5zdG9yZS5kaXNwYXRjaChtUygpKSkseG4oKFssLHNdKT0+ZnVuY3Rpb24oLi4ubil7bGV0IHQ9ZWMobiksZT1PQyhuKTtyZXR1cm4gZS5sZW5ndGg/bmV3IEt0KGk9PntsZXQgcj1lLm1hcCgoKT0+W10pLG89ZS5tYXAoKCk9PiExKTtpLmFkZCgoKT0+e3I9bz1udWxsfSk7Zm9yKGxldCBhPTA7IWkuY2xvc2VkJiZhPGUubGVuZ3RoO2ErKyljaShlW2FdKS5zdWJzY3JpYmUoSHQoaSxzPT57aWYoclthXS5wdXNoKHMpLHIuZXZlcnkobD0+bC5sZW5ndGgpKXtsZXQgbD1yLm1hcChjPT5jLnNoaWZ0KCkpO2kubmV4dCh0P3QoLi4ubCk6bCksci5zb21lKChjLGQpPT4hYy5sZW5ndGgmJm9bZF0pJiZpLmNvbXBsZXRlKCl9fSwoKT0+e29bYV09ITAsIXJbYV0ubGVuZ3RoJiZpLmNvbXBsZXRlKCl9KSk7cmV0dXJuKCk9PntyPW89bnVsbH19KTpLcn0odGhpcy53ZWJhcHBEYXRhU291cmNlLmZldGNoUGx1Z2luc0xpc3RpbmcocyksdGhpcy5mZXRjaEVudmlyb25tZW50KCkpLnBpcGUocSgoW2xdKT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goZ2goe3BsdWdpbnM6bH0pKX0pLGNvKGw9Pih0aGlzLnN0b3JlLmRpc3BhdGNoKGR2KGwgaW5zdGFuY2VvZiBjdj97ZmFpbHVyZUNvZGU6bC5mYWlsdXJlQ29kZX06e2ZhaWx1cmVDb2RlOllzLlVOS05PV059KSksS3IpKSkpKTtyZXR1cm4gdG4obyx0aGlzLm9uRGFzaGJvYXJkTG9hZCQucGlwZShxKChbLHNdKT0+cyksSm4ocz0+cyE9PUNuLkNPTVBBUkVfRVhQRVJJTUVOVD8kdChbXSk6dGhpcy5zdG9yZS5zZWxlY3QocXMpLnBpcGUocmkoKGwsYyk9PntsZXQgZD1PYmplY3QuZW50cmllcyhsKSx1PW5ldyBNYXAoT2JqZWN0LmVudHJpZXMoYykpO2lmKGQubGVuZ3RoIT09dS5zaXplKXJldHVybiExO2ZvcihsZXRbcCxoXW9mIGQpaWYoIXUuZ2V0KHApfHx1LmdldChwKS5hbGlhc1RleHQhPT1oLmFsaWFzVGV4dHx8dS5nZXQocCkuYWxpYXNOdW1iZXIhPT1oLmFsaWFzTnVtYmVyKXJldHVybiExO3JldHVybiEwfSksUnMoMCksaWMoNTAwLHZvaWQgMCx7bGVhZGluZzohMCx0cmFpbGluZzohMH0pKSksSXQodGhpcy5zdG9yZS5zZWxlY3QoV3MpLHRoaXMuc3RvcmUuc2VsZWN0KE42KSksT2UoKFsscyxsXSk9PlY2LmhhcyhzKSYmbC5zdGF0ZSE9PVJlLkxPQURJTkcpLER0KCgpPT57dGhpcy5zdG9yZS5kaXNwYXRjaChmUygpKX0pLEpuKCgpPT50aGlzLnJlZnJlc2hQb2x5bWVyUnVucygpKSxEdCgoKT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goZ1MoKSl9KSxjbygoKT0+KHRoaXMuc3RvcmUuZGlzcGF0Y2goX1MoKSksS3IpKSkpfSx7ZGlzcGF0Y2g6ITF9KSx0aGlzLmRpc3BhdGNoQ2hhbmdlUGx1Z2luJD1fcigoKT0+dG4odGhpcy5vbkRhc2hib2FyZExvYWQkLHRoaXMuYWN0aW9ucyQucGlwZShabihnaCkpKS5waXBlKEl0KHRoaXMuc3RvcmUuc2VsZWN0KFpvKSkscSgoWyxvXSk9Pm8pLHJpKCksT2Uobz0+bnVsbCE9PW8pLEx0KDEpLER0KG89Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKHljKHtwbHVnaW46b30pKX0pKSx7ZGlzcGF0Y2g6ITF9KX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhFbyksTyhJZSksTyhwUykpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLENGPW5ldyB0ZSgiQ29yZSBGZWF0dXJlIENvbmZpZyIpO2Z1bmN0aW9uIHo2KG4pe3JldHVybntpbml0aWFsU3RhdGU6ey4uLnB2LGFjdGl2ZVBsdWdpbjpuLmdldFBsdWdpbklkKCl8fG51bGx9fX1mdW5jdGlvbiBNZ2UoKXtyZXR1cm4gVyhNUyxuPT4oe3NpZGVCYXJXaWR0aEluUGVyY2VudDpufSkpfXZhciBRcz0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7cHJvdmlkZXJzOlt7cHJvdmlkZTpDRixkZXBzOltndV0sdXNlRmFjdG9yeTp6Nn1dLGltcG9ydHM6W3RvLmZvckZlYXR1cmUoW0g2XSksd3IuZm9yRmVhdHVyZSgiY29yZSIsRjYsQ0YpLFI2LFJpLmRlZmluZUdsb2JhbFNldHRpbmcoTWdlKV19KSxufSkoKSxVNj1uZXcgdGUoIltBbGVydF0gQWN0aW9uLVRvLUFsZXJ0IFByb3ZpZGVyIiksQ2M9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLnByb3ZpZGVycz1uZXcgTWFwO2ZvcihsZXQgaSBvZiBlfHxbXSlmb3IobGV0IHIgb2YgaSl7aWYodGhpcy5wcm92aWRlcnMuaGFzKHIuYWN0aW9uQ3JlYXRvci50eXBlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgIiR7ci5hY3Rpb25DcmVhdG9yLnR5cGV9IiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgZm9yIGFsZXJ0cy4gTXVsdGlwbGUgYWxlcnRzIGZvciB0aGUgc2FtZSBhY3Rpb24gaXMgbm90IGFsbG93ZWQuYCk7dGhpcy5wcm92aWRlcnMuc2V0KHIuYWN0aW9uQ3JlYXRvci50eXBlLHIuYWxlcnRGcm9tQWN0aW9uKX19Z2V0QWxlcnRGcm9tQWN0aW9uKGUpe2xldCBpPXRoaXMucHJvdmlkZXJzLmdldChlLnR5cGUpO3JldHVybiBpP2koZSk6bnVsbH1zdGF0aWMgcmVnaXN0ZXJBbGVydEFjdGlvbnMoZSl7cmV0dXJue25nTW9kdWxlOm4scHJvdmlkZXJzOlt7cHJvdmlkZTpVNixtdWx0aTohMCx1c2VGYWN0b3J5OmV9XX19fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oVTYsOCkpfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHt9KSxufSkoKSxndD0oKCk9PntyZXR1cm4obj1ndHx8KGd0PXt9KSkuQ09MT1I9IkNPTE9SIixuLlJFTEFUSVZFX1RJTUU9IlJFTEFUSVZFX1RJTUUiLG4uUlVOPSJSVU4iLG4uU1RFUD0iU1RFUCIsbi5FWFBFUklNRU5UPSJFWFBFUklNRU5UIixuLlRJTUU9IlRJTUUiLG4uVkFMVUU9IlZBTFVFIixuLlNNT09USEVEPSJTTU9PVEhFRCIsbi5WQUxVRV9DSEFOR0U9IlZBTFVFX0NIQU5HRSIsbi5TVEFSVF9TVEVQPSJTVEFSVF9TVEVQIixuLkVORF9TVEVQPSJFTkRfU1RFUCIsbi5TVEFSVF9WQUxVRT0iU1RBUlRfVkFMVUUiLG4uRU5EX1ZBTFVFPSJFTkRfVkFMVUUiLG4uTUlOX1ZBTFVFPSJNSU5fVkFMVUUiLG4uTUFYX1ZBTFVFPSJNQVhfVkFMVUUiLG4uUEVSQ0VOVEFHRV9DSEFOR0U9IlBFUkNFTlRBR0VfQ0hBTkdFIixuLlNURVBfQVRfTUFYPSJTVEVQX0FUX01BWCIsbi5TVEVQX0FUX01JTj0iU1RFUF9BVF9NSU4iLG4uTUVBTj0iTUVBTiIsbi5SQVdfQ0hBTkdFPSJSQVdfQ0hBTkdFIixuLkhQQVJBTT0iSFBBUkFNIixuLk1FVFJJQz0iTUVUUklDIixuLkNVU1RPTT0iQ1VTVE9NIixndDt2YXIgbn0pKCksaW89KCgpPT57cmV0dXJuKG49aW98fChpbz17fSkpW24uRElTQ1JFVEU9MF09IkRJU0NSRVRFIixuW24uSU5URVJWQUw9MV09IklOVEVSVkFMIixpbzt2YXIgbn0pKCksTHI9KCgpPT57cmV0dXJuKG49THJ8fChMcj17fSkpW24uQVNDRU5ESU5HPTBdPSJBU0NFTkRJTkciLG5bbi5ERVNDRU5ESU5HPTFdPSJERVNDRU5ESU5HIixMcjt2YXIgbn0pKCksV3I9KCgpPT57cmV0dXJuKG49V3J8fChXcj17fSkpW24uU0lOR0xFPTBdPSJTSU5HTEUiLG5bbi5SQU5HRT0xXT0iUkFOR0UiLFdyO3ZhciBufSkoKSxtbz0oKCk9PntyZXR1cm4obj1tb3x8KG1vPXt9KSlbbi5SSUdIVD0wXT0iUklHSFQiLG5bbi5MRUZUPTFdPSJMRUZUIixtbzt2YXIgbn0pKCksWnM9KCgpPT57cmV0dXJuKG49WnN8fChacz17fSkpLlJVTj0iUlVOIixuLkVYUEVSSU1FTlRfQUxJQVM9IkVYUEVSSU1FTlRfQUxJQVMiLG4uSFBBUkFNPSJIUEFSQU0iLG4uT1RIRVI9Ik9USEVSIixaczt2YXIgbn0pKCksdnU9KCgpPT57cmV0dXJuKG49dnV8fCh2dT17fSkpLkRFRkFVTFQ9IkRFRkFVTFQiLG4uU01BTEw9IlNNQUxMIix2dTt2YXIgbn0pKCk7ZnVuY3Rpb24gajYobil7cmV0dXJuIlJVTiI9PT1uLnR5cGU/WnMuUlVOOiJDVVNUT00iPT09bi50eXBlJiYiZXhwZXJpbWVudEFsaWFzIj09PW4ubmFtZT9acy5FWFBFUklNRU5UX0FMSUFTOiJIUEFSQU0iPT09bi50eXBlP1pzLkhQQVJBTTpacy5PVEhFUn12YXIga2w9e21vdmVDb2x1bW46ZnVuY3Rpb24obix0LGUsaSl7bGV0IHI9bi5maW5kSW5kZXgocz0+cy5uYW1lPT09dC5uYW1lKSxvPW4uZmluZEluZGV4KHM9PnMubmFtZT09PWUubmFtZSk7aWYoLTE9PT1yfHxyPT09bylyZXR1cm4gbjtpZigtMT09PW8pe2lmKHZvaWQgMD09PWkpcmV0dXJuIG47bz1pPT09bW8uTEVGVD8wOm4ubGVuZ3RoLTF9bGV0IGE9Wy4uLm5dO3JldHVybiBhLnNwbGljZShyLDEpLGEuc3BsaWNlKG8sMCx0KSxhfSxncm91cENvbHVtbnM6ZnVuY3Rpb24obil7bGV0IHQ9bmV3IE1hcChbW1pzLlJVTixbXV0sW1pzLkVYUEVSSU1FTlRfQUxJQVMsW11dLFtacy5IUEFSQU0sW11dLFtacy5PVEhFUixbXV1dKTtyZXR1cm4gbi5mb3JFYWNoKGU9Pnt0LmdldChqNihlKSk/LnB1c2goZSl9KSxBcnJheS5mcm9tKHQudmFsdWVzKCkpLmZsYXQoKX0sY29sdW1uVG9Hcm91cDpqNn0scm89e307TkEocm8se2Rhc2hib2FyZEhwYXJhbUNvbHVtbkFkZGVkOigpPT5FRixkYXNoYm9hcmRIcGFyYW1Db2x1bW5PcmRlckNoYW5nZWQ6KCk9PklGLGRhc2hib2FyZEhwYXJhbUNvbHVtblJlbW92ZWQ6KCk9PlRGLGRhc2hib2FyZEhwYXJhbUNvbHVtblRvZ2dsZWQ6KCk9PkRGLGRhc2hib2FyZEhwYXJhbUZpbHRlckFkZGVkOigpPT53RixkYXNoYm9hcmRIcGFyYW1GaWx0ZXJSZW1vdmVkOigpPT5tdixkYXNoYm9hcmRNZXRyaWNGaWx0ZXJBZGRlZDooKT0+U0YsZGFzaGJvYXJkTWV0cmljRmlsdGVyUmVtb3ZlZDooKT0+ZnYsaHBhcmFtc0ZldGNoU2Vzc2lvbkdyb3Vwc1N1Y2NlZWRlZDooKT0+aHYsbG9hZEFsbERhc2hib2FyZEhwYXJhbXM6KCk9Pmd2fSk7dmFyIGh2PWZlKCJbSHBhcmFtc10gSHBhcmFtcyBGZXRjaCBTZXNzaW9uIEdyb3VwcyBTdWNjZWVkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSx3Rj1mZSgiW0hwYXJhbXNdIERhc2hib2FyZCBIcGFyYW0gRmlsdGVyIEFkZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksU0Y9ZmUoIltIcGFyYW1zXSBEYXNoYm9hcmQgTWV0cmljIEZpbHRlciBBZGRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLG12PWZlKCJbSHBhcmFtc10gRGFzaGJvYXJkIEhwYXJhbSBGaWx0ZXIgUmVtb3ZlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGZ2PWZlKCJbSHBhcmFtc10gRGFzaGJvYXJkIE1ldHJpYyBGaWx0ZXIgUmVtb3ZlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEVGPWZlKCJbSHBhcmFtc10gRGFzaGJvYXJkIEhwYXJhbSBDb2x1bW4gQWRkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxURj1mZSgiW0hwYXJhbXNdIERhc2hib2FyZCBIcGFyYW0gQ29sdW1uIFJlbW92ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxERj1mZSgiW0hwYXJhbXNdIERhc2hib2FyZCBIcGFyYW0gQ29sdW1uIFRvZ2dsZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxJRj1mZSgiW0hwYXJhbXNdIERhc2hib2FyZCBIcGFyYW0gQ29sdW1uIE9yZGVyIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxndj1mZSgiW0hwYXJhbXNdIExvYWQgYWxsIEhwYXJhbXMiKSxEZ2U9Z3Ioe2Rhc2hib2FyZEhwYXJhbVNwZWNzOltdLGRhc2hib2FyZFNlc3Npb25Hcm91cHM6W10sZGFzaGJvYXJkRmlsdGVyczp7aHBhcmFtczpuZXcgTWFwLG1ldHJpY3M6bmV3IE1hcH0sZGFzaGJvYXJkRGlzcGxheWVkSHBhcmFtQ29sdW1uczpbXSxudW1EYXNoYm9hcmRIcGFyYW1zVG9Mb2FkOjFlMyxudW1EYXNoYm9hcmRIcGFyYW1zTG9hZGVkOjB9LHllKGhzLChuLHtwYXJ0aWFsU2V0dGluZ3M6dH0pPT57bGV0e2Rhc2hib2FyZERpc3BsYXllZEhwYXJhbUNvbHVtbnM6ZX09dDtyZXR1cm4gZT97Li4ubixkYXNoYm9hcmREaXNwbGF5ZWRIcGFyYW1Db2x1bW5zOmV9Om59KSx5ZShodiwobix0KT0+e2xldCBlPXQuaHBhcmFtU3BlY3M7cmV0dXJuey4uLm4sZGFzaGJvYXJkSHBhcmFtU3BlY3M6ZSxkYXNoYm9hcmRTZXNzaW9uR3JvdXBzOnQuc2Vzc2lvbkdyb3VwcyxudW1EYXNoYm9hcmRIcGFyYW1zTG9hZGVkOmUubGVuZ3RofX0pLHllKHdGLChuLHQpPT57bGV0IGU9bmV3IE1hcChuLmRhc2hib2FyZEZpbHRlcnMuaHBhcmFtcyk7cmV0dXJuIGUuc2V0KHQubmFtZSx0LmZpbHRlciksey4uLm4sZGFzaGJvYXJkRmlsdGVyczp7Li4ubi5kYXNoYm9hcmRGaWx0ZXJzLGhwYXJhbXM6ZX19fSkseWUoU0YsKG4sdCk9PntsZXQgZT1uZXcgTWFwKG4uZGFzaGJvYXJkRmlsdGVycy5tZXRyaWNzKTtyZXR1cm4gZS5zZXQodC5uYW1lLHQuZmlsdGVyKSx7Li4ubixkYXNoYm9hcmRGaWx0ZXJzOnsuLi5uLmRhc2hib2FyZEZpbHRlcnMsbWV0cmljczplfX19KSx5ZShtdiwobix0KT0+e2xldCBlPW5ldyBNYXAobi5kYXNoYm9hcmRGaWx0ZXJzLmhwYXJhbXMpO3JldHVybiBlLmRlbGV0ZSh0Lm5hbWUpLHsuLi5uLGRhc2hib2FyZEZpbHRlcnM6ey4uLm4uZGFzaGJvYXJkRmlsdGVycyxocGFyYW1zOmV9fX0pLHllKGZ2LChuLHQpPT57bGV0IGU9bmV3IE1hcChuLmRhc2hib2FyZEZpbHRlcnMubWV0cmljcyk7cmV0dXJuIGUuZGVsZXRlKHQubmFtZSksey4uLm4sZGFzaGJvYXJkRmlsdGVyczp7Li4ubi5kYXNoYm9hcmRGaWx0ZXJzLG1ldHJpY3M6ZX19fSkseWUoRUYsKG4se2NvbHVtbjp0LG5leHRUbzplLHNpZGU6aX0pPT57bGV0e2Rhc2hib2FyZERpc3BsYXllZEhwYXJhbUNvbHVtbnM6cn09bixvPXIubGVuZ3RoO2lmKHZvaWQgMCE9PWUmJnZvaWQgMCE9PWkpe2xldCBsPXIuZmluZEluZGV4KGM9PmMubmFtZT09PWUubmFtZSk7LTEhPT1sJiYobz1pPT09bW8uUklHSFQ/bCsxOmwpfWxldCBhPXsuLi50LGVuYWJsZWQ6ITB9LHM9Wy4uLnJdO3JldHVybiBzLnNwbGljZShvLDAsYSksey4uLm4sZGFzaGJvYXJkRGlzcGxheWVkSHBhcmFtQ29sdW1uczpzfX0pLHllKFRGLChuLHtjb2x1bW46dH0pPT57bGV0IGU9bi5kYXNoYm9hcmREaXNwbGF5ZWRIcGFyYW1Db2x1bW5zLmZpbHRlcigoe25hbWU6aX0pPT5pIT09dC5uYW1lKTtyZXR1cm57Li4ubixkYXNoYm9hcmREaXNwbGF5ZWRIcGFyYW1Db2x1bW5zOmV9fSkseWUoREYsKG4se2NvbHVtbjp0fSk9PntsZXQgZT1uLmRhc2hib2FyZERpc3BsYXllZEhwYXJhbUNvbHVtbnMubWFwKGk9PmkubmFtZT09PXQubmFtZT97Li4uaSxlbmFibGVkOiF0LmVuYWJsZWR9OmkpO3JldHVybnsuLi5uLGRhc2hib2FyZERpc3BsYXllZEhwYXJhbUNvbHVtbnM6ZX19KSx5ZShJRiwobix7c291cmNlOnQsZGVzdGluYXRpb246ZSxzaWRlOml9KT0+e2xldHtkYXNoYm9hcmREaXNwbGF5ZWRIcGFyYW1Db2x1bW5zOnJ9PW4sbz1rbC5tb3ZlQ29sdW1uKHIsdCxlLGkpO3JldHVybnsuLi5uLGRhc2hib2FyZERpc3BsYXllZEhwYXJhbUNvbHVtbnM6b319KSx5ZShndixuPT4oey4uLm4sbnVtRGFzaGJvYXJkSHBhcmFtc1RvTG9hZDowfSkpKTtmdW5jdGlvbiBHNihuLHQpe3JldHVybiBEZ2Uobix0KX12YXIgU1M9ImhwYXJhbXMiLGhkPSgoKT0+e3JldHVybihuPWhkfHwoaGQ9e30pKS5TVEFUVVNfVU5LTk9XTj0iU1RBVFVTX1VOS05PV04iLG4uU1RBVFVTX1NVQ0NFU1M9IlNUQVRVU19TVUNDRVNTIixuLlNUQVRVU19GQUlMVVJFPSJTVEFUVVNfRkFJTFVSRSIsbi5TVEFUVVNfUlVOTklORz0iU1RBVFVTX1JVTk5JTkciLGhkO3ZhciBufSkoKSxFUz0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxufSkoKSxxNj0iZGF0YS9wbHVnaW4vaHBhcmFtcyI7ZnVuY3Rpb24ga2dlKG4pe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gQm9vbGVhbihuLmRvbWFpbkRpc2NyZXRlKX0obik/e3R5cGU6aW8uRElTQ1JFVEUsdmFsdWVzOm4uZG9tYWluRGlzY3JldGV9OmZ1bmN0aW9uKG4pe3JldHVybiBCb29sZWFuKG4uZG9tYWluSW50ZXJ2YWwpfShuKT97Li4ubi5kb21haW5JbnRlcnZhbCx0eXBlOmlvLklOVEVSVkFMfTp7dmFsdWVzOltdLHR5cGU6aW8uRElTQ1JFVEV9fXZhciBUUz0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuaHR0cD1lfWdldFByZWZpeChlKXtyZXR1cm4gZS5sZW5ndGg+MT8iY29tcGFyZSI6ImV4cGVyaW1lbnQifWZvcm1hdEV4cGVyaW1lbnRJZHMoZSl7cmV0dXJuIDE9PT1lLmxlbmd0aD9lWzBdOmUubWFwKChpLHIpPT5gJHtyfToke2l9YCkuam9pbigiLCIpfWZldGNoRXhwZXJpbWVudEluZm8oZSxpKXtsZXQgcj10aGlzLmZvcm1hdEV4cGVyaW1lbnRJZHMoZSksbz17ZXhwZXJpbWVudE5hbWU6cixocGFyYW1zTGltaXQ6aSxpbmNsdWRlTWV0cmljczohMX07cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAvJHt0aGlzLmdldFByZWZpeChlKX0vJHtyfS8ke3E2fS9leHBlcmltZW50YCxvLHt9LCJyZXF1ZXN0IikucGlwZShxKGE9PmEuaHBhcmFtSW5mb3MubWFwKHM9PntsZXQgbD17Li4ucyxkb21haW46a2dlKHMpfTtyZXR1cm4gZGVsZXRlIGwuZG9tYWluSW50ZXJ2YWwsZGVsZXRlIGwuZG9tYWluRGlzY3JldGUsbH0pKSl9ZmV0Y2hTZXNzaW9uR3JvdXBzKGUsaSl7bGV0IHI9dGhpcy5mb3JtYXRFeHBlcmltZW50SWRzKGUpLG89W107Zm9yKGxldCBzIG9mIGkpby5wdXNoKHtocGFyYW06cy5uYW1lLGluY2x1ZGVJblJlc3VsdDohMH0pO2xldCBhPXtleHBlcmltZW50TmFtZTpyLGFsbG93ZWRTdGF0dXNlczpbaGQuU1RBVFVTX0ZBSUxVUkUsaGQuU1RBVFVTX1JVTk5JTkcsaGQuU1RBVFVTX1NVQ0NFU1MsaGQuU1RBVFVTX1VOS05PV05dLGNvbFBhcmFtczpvLHN0YXJ0SW5kZXg6MCxzbGljZVNpemU6MWU2LGluY2x1ZGVNZXRyaWNzOiExfTtyZXR1cm4gdGhpcy5odHRwLnBvc3QoYC8ke3RoaXMuZ2V0UHJlZml4KGUpfS8ke3J9LyR7cTZ9L3Nlc3Npb25fZ3JvdXBzYCxhLHt9LCJyZXF1ZXN0IikucGlwZShxKHM9PnMuc2Vzc2lvbkdyb3Vwcy5tYXAobD0+KGwuc2Vzc2lvbnM9bC5zZXNzaW9ucy5tYXAoYz0+e2lmKGUubGVuZ3RoPjEpe2xldFssLi4uZF09Yy5uYW1lLnNwbGl0KCIgIiksW3UsLi4ucF09ZC5qb2luKCIgIikuc3BsaXQoIi8iKTtjLm5hbWU9W2VbcGFyc2VJbnQodSldLC4uLnBdLmpvaW4oIi8iKX1lbHNlIGMubmFtZT1bZVswXSxjLm5hbWVdLmpvaW4oIi8iKTtyZXR1cm4gY30pLGwpKSkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKFhzKSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCksTWM9e307ZnVuY3Rpb24gWDYobil7cmV0dXJuIG4uZG9tYWluLnR5cGU9PT1pby5ESVNDUkVURT97dHlwZTppby5ESVNDUkVURSxpbmNsdWRlVW5kZWZpbmVkOiEwLHBvc3NpYmxlVmFsdWVzOm4uZG9tYWluLnZhbHVlcyxmaWx0ZXJWYWx1ZXM6bi5kb21haW4udmFsdWVzfTp7dHlwZTppby5JTlRFUlZBTCxpbmNsdWRlVW5kZWZpbmVkOiEwLG1pblZhbHVlOm4uZG9tYWluLm1pblZhbHVlLG1heFZhbHVlOm4uZG9tYWluLm1heFZhbHVlLGZpbHRlckxvd2VyVmFsdWU6bi5kb21haW4ubWluVmFsdWUsZmlsdGVyVXBwZXJWYWx1ZTpuLmRvbWFpbi5tYXhWYWx1ZX19TkEoTWMse2dldERhc2hib2FyZERlZmF1bHRIcGFyYW1GaWx0ZXJzOigpPT5SRixnZXREYXNoYm9hcmREaXNwbGF5ZWRIcGFyYW1Db2x1bW5zOigpPT5tZCxnZXREYXNoYm9hcmRIcGFyYW1GaWx0ZXJNYXA6KCk9PklTLGdldERhc2hib2FyZEhwYXJhbVNwZWNzOigpPT5EUyxnZXREYXNoYm9hcmRNZXRyaWNzRmlsdGVyTWFwOigpPT5BUyxnZXREYXNoYm9hcmRTZXNzaW9uR3JvdXBzOigpPT5BRixnZXROdW1EYXNoYm9hcmRIcGFyYW1zTG9hZGVkOigpPT5GZ2UsZ2V0TnVtRGFzaGJvYXJkSHBhcmFtc1RvTG9hZDooKT0+UEZ9KTt2YXIgdmg9TXIoU1MpLERTPVcodmgsbj0+bi5kYXNoYm9hcmRIcGFyYW1TcGVjcyksQUY9Vyh2aCxuPT5uLmRhc2hib2FyZFNlc3Npb25Hcm91cHMpLFJGPVcoRFMsbj0+bmV3IE1hcChuLm1hcChlPT5bZS5uYW1lLFg2KGUpXSkpKSxtZD1XKHZoLG49PntsZXQgdD1uZXcgU2V0KG4uZGFzaGJvYXJkSHBhcmFtU3BlY3MubWFwKGU9PmUubmFtZSkpO3JldHVybiBuLmRhc2hib2FyZERpc3BsYXllZEhwYXJhbUNvbHVtbnMuZmlsdGVyKGU9PnQuaGFzKGUubmFtZSkpfSksSVM9Vyh2aCxuPT5uLmRhc2hib2FyZEZpbHRlcnMuaHBhcmFtcyksQVM9Vyh2aCxuPT5uLmRhc2hib2FyZEZpbHRlcnMubWV0cmljcyksUEY9Vyh2aCxuPT5uLm51bURhc2hib2FyZEhwYXJhbXNUb0xvYWQpLEZnZT1XKHZoLG49Pm4ubnVtRGFzaGJvYXJkSHBhcmFtc0xvYWRlZCksWTY9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscil7dGhpcy5hY3Rpb25zJD1lLHRoaXMuc3RvcmU9aSx0aGlzLmRhdGFTb3VyY2U9cix0aGlzLm5hdmlnYXRlZCQ9dGhpcy5hY3Rpb25zJC5waXBlKFpuKE5hKSxJdCh0aGlzLnN0b3JlLnNlbGVjdChvcikpLE9lKChbLG9dKT0+Qm9vbGVhbihvKSkscSgoWyxvXSk9Pm8pLHJpKChvLGEpPT5vLmpvaW4oIiIpPT09YS5qb2luKCIiKSkpLHRoaXMubG9hZEhwYXJhbXNPblJlbG9hZCQ9dGhpcy5hY3Rpb25zJC5waXBlKFpuKG1hLEJhLGd2KSxJdCh0aGlzLnN0b3JlLnNlbGVjdChvcikpLE9lKChbLG9dKT0+Qm9vbGVhbihvKSkscSgoWyxvXSk9Pm8pKSx0aGlzLmxvYWRIcGFyYW1zRGF0YSQ9X3IoKCk9PnRuKHRoaXMubmF2aWdhdGVkJCx0aGlzLmxvYWRIcGFyYW1zT25SZWxvYWQkKS5waXBlKEl0KHRoaXMuc3RvcmUuc2VsZWN0KEhvKSx0aGlzLnN0b3JlLnNlbGVjdChQRikpLE9lKChbLG9dKT0+bz8ucm91dGVLaW5kPT09Q24uRVhQRVJJTUVOVHx8bz8ucm91dGVLaW5kPT09Q24uQ09NUEFSRV9FWFBFUklNRU5UKSxpYygxMCksSm4oKFtvLCxhXSk9PnRoaXMubG9hZEhwYXJhbXNGb3JFeHBlcmltZW50cyhvLGEpKSxxKG89Pmh2KG8pKSkpfWxvYWRIcGFyYW1zRm9yRXhwZXJpbWVudHMoZSxpKXtyZXR1cm4gdGhpcy5kYXRhU291cmNlLmZldGNoRXhwZXJpbWVudEluZm8oZSxpKS5waXBlKEpuKHI9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaFNlc3Npb25Hcm91cHMoZSxyKS5waXBlKGNvKG89Pm8gaW5zdGFuY2VvZiB1ZCYmNDAwPT09by5zdGF0dXM/JHQoW10pOl9sKCgpPT5vKSkscShvPT4oe2hwYXJhbVNwZWNzOnIsc2Vzc2lvbkdyb3VwczpvfSkpKSkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKEVvKSxPKEllKSxPKFRTKSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCksUTY9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe3Byb3ZpZGVyczpbVFNdLGltcG9ydHM6W3dyLmZvckZlYXR1cmUoU1MsRzYpLHRvLmZvckZlYXR1cmUoW1k2XSldfSksbn0pKCk7ZnVuY3Rpb24gTmdlKCl7cmV0dXJuIFcobWQsbj0+KHtkYXNoYm9hcmREaXNwbGF5ZWRIcGFyYW1Db2x1bW5zOm59KSl9dmFyIFJTPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltRNixSaS5kZWZpbmVHbG9iYWxTZXR0aW5nKE5nZSldfSksbn0pKCksUFM9ZmUoIltSdW5zXSBGZXRjaCBSdW5zIFJlcXVlc3RlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFdmPWZlKCJbUnVuc10gRmV0Y2ggUnVucyBTdWNjZWVkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxxZj1mZSgiW1J1bnNdIEZldGNoIFJ1bnMgRmFpbGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksa1M9ZmUoIltSdW5zXSBSdW4gU2VsZWN0aW9uIFRvZ2dsZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxPUz1mZSgiW1J1bnNdIFNpbmdsZSBSdW4gU2VsZWN0ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxGUz1mZSgiW1J1bnNdIFJ1biBQYWdlIFNlbGVjdGlvbiBUb2dnbGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksTlM9ZmUoIltSdW5zXSBSdW4gU2VsZWN0b3IgUmVnZXggRmlsdGVyIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxMUz1mZSgiW1J1bnNdIFJ1biBDb2xvciBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksWGY9ZmUoIltSdW5zXSBSdW4gR3JvdXAgQnkgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFo2PWZlKCJbUnVuc10gUnVucyBUYWJsZSBIZWFkZXIgQWRkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxCUz1mZSgiW1J1bnNdIFJ1bnMgVGFibGUgSGVhZGVyIFJlbW92ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxLNj1mZSgiW1J1bnNdIFJ1bnMgVGFibGUgSGVhZGVyIE9yZGVyIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxWUz1mZSgiW1J1bnNdIFJ1bnMgVGFibGUgU29ydGluZyBJbmZvIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KTtmdW5jdGlvbiBMZ2Uobix0KXtyZXR1cm5gJHt0fS8ke259YH12YXIgSjY9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLmh0dHA9ZX1mZXRjaFJ1bnMoZSl7cmV0dXJuIHRoaXMuaHR0cC5nZXQoYC9leHBlcmltZW50LyR7ZX0vZGF0YS9ydW5zYCkucGlwZShxKGk9PmkubWFwKHI9Pih7aWQ6TGdlKHIsZSksbmFtZTpyLHN0YXJ0VGltZTowfSkpKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oWHMpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWN9KSxufSkoKSwkNj0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7cHJvdmlkZXJzOlt7cHJvdmlkZTpFUyx1c2VDbGFzczpKNn1dfSksbn0pKCksZVc9VyhNcigiYWxlcnRzIiksbj0+bi5sYXRlc3RBbGVydCkselM9ImV4cGVyaW1lbnRzIix0Vz1XKE1yKHpTKSxuPT5uLmRhdGEpLFVTPVcodFcsKG4sdCk9PntsZXR7ZXhwZXJpbWVudElkOmV9PXQ7cmV0dXJuIG4uZXhwZXJpbWVudE1hcFtlXXx8bnVsbH0pLHl1PVcodFcsb3IsKG4sdCk9Pih0Pz9bXSkubWFwKGU9Pm4uZXhwZXJpbWVudE1hcFtlXSkuZmlsdGVyKEJvb2xlYW4pLnJlZHVjZSgoZSxpKT0+KGVbaS5pZF09aS5uYW1lLGUpLHt9KSk7ZnVuY3Rpb24galMobix0LGUpe3JldHVybiBuPHQ/dDpuPmU/ZTpufWZ1bmN0aW9uIFlmKG4sdCxlKXtsZXQgaT1qUyhuLnN0YXJ0LnN0ZXAsdCxlKSxyPW4uZW5kP2pTKG4uZW5kLnN0ZXAsdCxlKTpudWxsO3JldHVybntzdGFydFN0ZXA6aSxlbmRTdGVwOnIsY2xpcHBlZDppIT09bi5zdGFydC5zdGVwfHxyIT09KG4uZW5kPy5zdGVwPz9udWxsKX19ZnVuY3Rpb24gR1Mobix0KXtsZXQgZT10W24uaWRdO3JldHVybiBlJiZlLnZpc2libGUmJiFCb29sZWFuKGUuYXV4KX1mdW5jdGlvbiBPRihuLHQpe3JldHVybiB0P246e3N0YXJ0Om4uc3RhcnQsZW5kOm51bGx9fWZ1bmN0aW9uIEZGKG4sdCxlKXtyZXR1cm4gT0YoZnVuY3Rpb24obix7bWluU3RlcDp0LG1heFN0ZXA6ZX0pe3JldHVybntzdGFydDp7c3RlcDpqUyhuLnN0YXJ0LnN0ZXAsdCxlKX0sZW5kOm4uZW5kP3tzdGVwOmpTKG4uZW5kLnN0ZXAsdCxlKX06bnVsbH19KG4sdCksZSl9dmFyIEFuPSgoKT0+e3JldHVybihuPUFufHwoQW49e30pKS5TQ0FMQVJTPSJzY2FsYXJzIixuLkhJU1RPR1JBTVM9Imhpc3RvZ3JhbXMiLG4uSU1BR0VTPSJpbWFnZXMiLEFuO3ZhciBufSkoKSxQaT0oKCk9PntyZXR1cm4obj1QaXx8KFBpPXt9KSkuU1RFUD0ic3RlcCIsbi5SRUxBVElWRT0icmVsYXRpdmUiLG4uV0FMTF9USU1FPSJ3YWxsdGltZSIsUGk7dmFyIG59KSgpLF92PSJ0aW1lc2VyaWVzIjtmdW5jdGlvbiBhVyhuKXtyZXR1cm4gbj09PUFuLlNDQUxBUlN8fG49PT1Bbi5ISVNUT0dSQU1TfHxuPT09QW4uSU1BR0VTfXZhciBVZ2U9W0FuLklNQUdFU107ZnVuY3Rpb24gZnMobil7cmV0dXJuIFVnZS5pbmNsdWRlcyhuKX12YXIgamdlPVtBbi5ISVNUT0dSQU1TLEFuLklNQUdFU107ZnVuY3Rpb24gZ3Mobil7cmV0dXJuIGpnZS5pbmNsdWRlcyhuKX1mdW5jdGlvbiBORihuKXtyZXR1cm4gZ3Mobi5wbHVnaW4pfXZhciB3Yz1jbGFzc3t9O2Z1bmN0aW9uIHFTKG4pe3JldHVybiBuLmhhc093blByb3BlcnR5KCJlcnJvciIpfXZhciBMRj0iZGF0YS9wbHVnaW4vdGltZXNlcmllcyI7ZnVuY3Rpb24gc1cobil7bGV0IHQ9bi5pbmRleE9mKCIvIik7cmV0dXJue3J1bjpuLnN1YnN0cmluZyh0KzEpLGV4cGVyaW1lbnRJZDpuLnN1YnN0cmluZygwLHQpfX1mdW5jdGlvbiBjVyhuLHQpe3JldHVybmAke3R9LyR7bn1gfWZ1bmN0aW9uIGxXKG4sdCl7bGV0e3J1blRvU2VyaWVzOmUscnVuOmksLi4ucn09bixvPXsuLi5yfTtyZXR1cm4gZSYmKG8ucnVuVG9TZXJpZXM9QkYoZSx0KSksaSYmKG8ucnVuSWQ9Y1coaSx0KSksb31mdW5jdGlvbiBCRihuLHQpe2xldCBlPXt9O2ZvcihsZXQgaSBpbiBuKW4uaGFzT3duUHJvcGVydHkoaSkmJihlW2NXKGksdCldPW5baV0pO3JldHVybiBlfXZhciBkVz0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSl7dGhpcy5odHRwPWUsdGhpcy5zdG9yZT1pfWZldGNoVGFnTWV0YWRhdGEoZSl7bGV0IGk9ZS5tYXAobz0+dGhpcy5odHRwLmdldChgL2V4cGVyaW1lbnQvJHtvfS8ke0xGfS90YWdzYCkucGlwZShxKHM9PmZ1bmN0aW9uKG4sdCl7bGV0IGU9e307Zm9yKGxldCBpIG9mIE9iamVjdC5rZXlzKG4pKXtsZXQgcj1pO2lmKGZzKHIpKXtsZXR7dGFnUnVuU2FtcGxlZEluZm86bywuLi5hfT1uW3JdLHM9e307Zm9yKGxldCBsIGluIG8pby5oYXNPd25Qcm9wZXJ0eShsKSYmKHNbbF09QkYob1tsXSx0KSk7ZVtyXT17Li4uYSx0YWdSdW5TYW1wbGVkSW5mbzpzfX1lbHNle2xldHtydW5UYWdJbmZvOm8sLi4uYX09bltyXTtlW3JdPXsuLi5hLHJ1blRhZ0luZm86QkYobyx0KX19fXJldHVybiBlfShzLG8pKSkpLHI9dGhpcy5zdG9yZS5zZWxlY3QoYnUpLnBpcGUoT2UoQm9vbGVhbiksTHQoMSksSXQodGhpcy5zdG9yZS5zZWxlY3QoZFMpKSxxKChbLG9dKT0+bykpO3JldHVybiBDbyhpKS5waXBlKEl0KHIpLHEoKFtvLGFdKT0+e2xldCBzPWZ1bmN0aW9uKG4pe2xldCB0PXt9O2ZvcihsZXQgZSBvZiBuKWZvcihsZXQgaSBvZiBPYmplY3QudmFsdWVzKEFuKSlpZihmcyhpKSl7dFtpXT10W2ldfHx7dGFnRGVzY3JpcHRpb25zOnt9LHRhZ1J1blNhbXBsZWRJbmZvOnt9fTtsZXR7dGFnRGVzY3JpcHRpb25zOnIsdGFnUnVuU2FtcGxlZEluZm86b309ZVtpXTt0W2ldLnRhZ0Rlc2NyaXB0aW9ucz17Li4udFtpXS50YWdEZXNjcmlwdGlvbnMsLi4ucn07bGV0IGE9dFtpXS50YWdSdW5TYW1wbGVkSW5mbztmb3IobGV0IHMgb2YgT2JqZWN0LmtleXMobykpe2Fbc109YVtzXXx8e307Zm9yKGxldCBsIG9mIE9iamVjdC5rZXlzKG9bc10pKWFbc11bbF09b1tzXVtsXX19ZWxzZXt0W2ldPXRbaV18fHt0YWdEZXNjcmlwdGlvbnM6e30scnVuVGFnSW5mbzp7fX07bGV0e3RhZ0Rlc2NyaXB0aW9uczpyLHJ1blRhZ0luZm86b309ZVtpXTt0W2ldLnRhZ0Rlc2NyaXB0aW9ucz17Li4udFtpXS50YWdEZXNjcmlwdGlvbnMsLi4ucn0sdFtpXS5ydW5UYWdJbmZvPXsuLi50W2ldLnJ1blRhZ0luZm8sLi4ub319cmV0dXJuIHR9KG8pO3JldHVybiBhfHwoc1tBbi5JTUFHRVNdPXt0YWdEZXNjcmlwdGlvbnM6e30sdGFnUnVuU2FtcGxlZEluZm86e319KSxzfSkpfWZldGNoVGltZVNlcmllcyhlKXtsZXQgaT1lLm1hcChyPT57aWYoZ3Moci5wbHVnaW4pKXtsZXR7cnVuSWQ6bCwuLi5jfT1yLHtydW46ZCxleHBlcmltZW50SWQ6dX09c1cobCkscD17Li4uYyxydW46ZH07cmV0dXJuIHRoaXMuZmV0Y2hUaW1lU2VyaWVzQmFja2VuZFJlcXVlc3QocCx1KS5waXBlKHEoKHtyZXNwb25zZTpoLGV4cGVyaW1lbnRJZDptfSk9PmxXKGgsbSkpKX1sZXR7ZXhwZXJpbWVudElkczpvLC4uLmF9PXI7cmV0dXJuIENvKG8ubWFwKGw9PnRoaXMuZmV0Y2hUaW1lU2VyaWVzQmFja2VuZFJlcXVlc3QoYSxsKSkpLnBpcGUocShsPT57bGV0e3J1blRvU2VyaWVzOmMsZXJyb3I6ZCwuLi51fT1sWzBdLnJlc3BvbnNlLHA9dTtmb3IobGV0e3Jlc3BvbnNlOmgsZXhwZXJpbWVudElkOm19b2YgbCl7bGV0IF89bFcoaCxtKTtpZihwLmVycm9yKWNvbnRpbnVlO2xldHtydW5Ub1NlcmllczpNLGVycm9yOnl9PV87aWYoeSlwLmVycm9yPXkscC5ydW5Ub1Nlcmllcz12b2lkIDA7ZWxzZXtwLnJ1blRvU2VyaWVzPXAucnVuVG9TZXJpZXN8fHt9O2ZvcihsZXQgeCBvZiBPYmplY3Qua2V5cyhNKSlwLnJ1blRvU2VyaWVzW3hdPU1beF19fXJldHVybiBwfSkpfSk7cmV0dXJuIENvKGkpfWZldGNoVGltZVNlcmllc0JhY2tlbmRSZXF1ZXN0KGUsaSl7bGV0IHI9bmV3IEZvcm1EYXRhO3JldHVybiByLmFwcGVuZCgicmVxdWVzdHMiLEpTT04uc3RyaW5naWZ5KFtlXSkpLHRoaXMuaHR0cC5wb3N0KGAvZXhwZXJpbWVudC8ke2l9LyR7TEZ9L3RpbWVTZXJpZXNgLHIpLnBpcGUocShvPT4oe3Jlc3BvbnNlOm9bMF0sZXhwZXJpbWVudElkOml9KSkpfWltYWdlVXJsKGUpe3JldHVybmAke0xGfS9pbWFnZURhdGE/aW1hZ2VJZD0ke2V9YH1kb3dubG9hZFVybChlLGkscixvKXtsZXQgbCx7cnVuOmEsZXhwZXJpbWVudElkOnN9PXNXKHIpO2lmKGUhPT1Bbi5TQ0FMQVJTKXRocm93IG5ldyBFcnJvcihgTm90IGltcGxlbWVudGVkOiBkb3dubG9hZFVybCBmb3IgJHtlfSBpcyBub3QgaW1wbGVtZW50ZWQgeWV0YCk7aWYobD0ic2NhbGFycy9zY2FsYXJzIiwhcyl0aHJvdyBuZXcgRXJyb3IoImV4cGVyaW1lbnRJZCBpcyBlbXB0eTsgaXQgaXMgcmVxdWlyZWQgdG8gZm9ybSBkb3dubG9hZFVybC4iKTtyZXR1cm5gL2V4cGVyaW1lbnQvJHtzfS9kYXRhL3BsdWdpbi9zY2FsYXJzL3NjYWxhcnM/JHtuZXcgVVJMU2VhcmNoUGFyYW1zKHt0YWc6aSxydW46YSxmb3JtYXQ6b30pfWB9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oWHMpLE8oSWUpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWN9KSxufSkoKSxidj0idGItc2F2ZWQtc2NhbGFyLXBpbnMiLFhTPSgoKT0+e2NsYXNzIG57c2F2ZVNjYWxhclBpbihlKXtsZXQgaT10aGlzLmdldFNhdmVkU2NhbGFyUGlucygpO2kuaW5jbHVkZXMoZSl8fGkucHVzaChlKSx3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oYnYsSlNPTi5zdHJpbmdpZnkoaSkpfXNhdmVTY2FsYXJQaW5zKGUpe2xldCBpPXRoaXMuZ2V0U2F2ZWRTY2FsYXJQaW5zKCkscj1lLmZpbHRlcihvPT4haS5pbmNsdWRlcyhvKSk7aS5wdXNoKC4uLnIpLHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShidixKU09OLnN0cmluZ2lmeShpKSl9cmVtb3ZlU2NhbGFyUGluKGUpe2xldCBpPXRoaXMuZ2V0U2F2ZWRTY2FsYXJQaW5zKCk7d2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKGJ2LEpTT04uc3RyaW5naWZ5KGkuZmlsdGVyKHI9PnIhPT1lKSkpfWdldFNhdmVkU2NhbGFyUGlucygpe2xldCBlPXdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShidik7cmV0dXJuIGU/SlNPTi5wYXJzZShlKTpbXX1yZW1vdmVBbGxTY2FsYXJQaW5zKCl7d2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKGJ2LEpTT04uc3RyaW5naWZ5KFtdKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLFhnZT1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLFlTPSgoKT0+e2NsYXNzIG57Z2V0UGFyYW1zKCl7cmV0dXJuIFhnZX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCksdnY9InRiX2ZlYXR1cmVfZmxhZ19zdG9yYWdlX2tleSIsVkY9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLnF1ZXJ5UGFyYW1zPWV9Z2V0RmVhdHVyZXMoZSxpKXtsZXQgcj1lP3RoaXMuZ2V0UGFydGlhbEZlYXR1cmVzRnJvbU1lZGlhUXVlcnkoKTp7fSxvPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKG4pLnJlZHVjZSgoZSxbaSxyXSk9PntsZXQgbz1mdW5jdGlvbihuLHQpe2xldCBlPW4ucXVlcnlQYXJhbU92ZXJyaWRlO2lmKCFlfHwhdC5oYXMoZSkpcmV0dXJuIG51bGw7bGV0IGk9dC5nZXQoZSk7cmV0dXJuIG51bGw9PWk/bnVsbDpuLnBhcnNlVmFsdWUoaSl9KHIsdCk7cmV0dXJuIG51bGwhPT1vJiYoZVtpXT1vKSxlfSx7fSl9KGksdGhpcy5xdWVyeVBhcmFtcy5nZXRQYXJhbXMoKSk7cmV0dXJuey4uLnIsLi4uT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHRoaXMuZ2V0UGVyc2lzdGVudEZlYXR1cmVGbGFncygpKS5maWx0ZXIoKFtzXSk9Pmlbc10pKSwuLi5vfX1wZXJzaXN0RmVhdHVyZUZsYWdzKGUpe2xldCByPXsuLi50aGlzLmdldFBlcnNpc3RlbnRGZWF0dXJlRmxhZ3MoKSwuLi5lfTt3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0odnYsSlNPTi5zdHJpbmdpZnkocikpfXJlc2V0UGVyc2lzdGVkRmVhdHVyZUZsYWcoZSl7bGV0IGk9dGhpcy5nZXRQZXJzaXN0ZW50RmVhdHVyZUZsYWdzKCk7aWYobnVsbCE9aVtlXSl7aWYoZGVsZXRlIGlbZV0sMD09PU9iamVjdC5rZXlzKGkpLmxlbmd0aClyZXR1cm4gdm9pZCB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odnYpO3dpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh2dixKU09OLnN0cmluZ2lmeShpKSl9fXJlc2V0QWxsUGVyc2lzdGVkRmVhdHVyZUZsYWdzKCl7d2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHZ2KX1nZXRQZXJzaXN0ZW50RmVhdHVyZUZsYWdzKCl7bGV0IGU9d2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKHZ2KTtyZXR1cm4gbnVsbD09ZT97fTpKU09OLnBhcnNlKGUpfWdldFBhcnRpYWxGZWF0dXJlc0Zyb21NZWRpYVF1ZXJ5KCl7bGV0IGU9e307cmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcyYmKGUuZGVmYXVsdEVuYWJsZURhcmtNb2RlPSEwKSxlfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKFlTKSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCksUVM9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCksaFc9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe3Byb3ZpZGVyczpbVkYsWVMse3Byb3ZpZGU6UVMsdXNlQ2xhc3M6VkZ9XX0pLG59KSgpLHl2PWZlKCJbRkVBVFVSRSBGTEFHXSBQYXJ0aWFsIEZlYXR1cmUgRmxhZ3MgTG9hZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksWlM9ZmUoIltGRUFUVVJFIEZMQUddIEVuYWJsZSBEYXJrIE1vZGUgT3ZlcnJpZGUgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHloPWZlKCJbRkVBVFVSRSBGTEFHXSBTdG9yZSB0aGUgZmVhdHVyZSBmbGFncyBpbiBwZXJzaXN0ZW50IGxvY2FsU3RvcmFnZSIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHh1PWZlKCJbRkVBVFVSRSBGTEFHXSBSZXNldCBmZWF0dXJlIGZsYWcgb3ZlcnJpZGVzIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksUWY9ZmUoIltGRUFUVVJFIEZMQUddIFJlc2V0IGFsbCBmZWF0dXJlIGZsYWcgb3ZlcnJpZGVzIiksbVc9ZmUoIltGRUFUVVJFIEZMQUddIEVmZmVjdHMgSW5pdCIpLGZXPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIpe3RoaXMuYWN0aW9ucyQ9ZSx0aGlzLnN0b3JlPWksdGhpcy5kYXRhU291cmNlPXIsdGhpcy50ZkZlYXR1cmVGbGFncz17cmVmOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRmLWZlYXR1cmUtZmxhZ3MiKS50Zl9mZWF0dXJlX2ZsYWdzfSx0aGlzLmdldEZlYXR1cmVGbGFncyQ9X3IoKCk9PnRoaXMuYWN0aW9ucyQucGlwZShabihtVyksVmkodGhpcy5zdG9yZS5zZWxlY3QoTTYpLHRoaXMuc3RvcmUuc2VsZWN0KGZoKSkscSgoWyxvLGFdKT0+e2xldCBzPXRoaXMuZGF0YVNvdXJjZS5nZXRGZWF0dXJlcyhvLGEpO3JldHVybiB5dih7ZmVhdHVyZXM6c30pfSkpKSx0aGlzLnVwZGF0ZVBvbHltZXJGZWF0dXJlRmxhZ3MkPV9yKCgpPT50aGlzLmFjdGlvbnMkLnBpcGUoWm4oeXYpLEl0KHRoaXMuc3RvcmUuc2VsZWN0KFFvKSx0aGlzLnN0b3JlLnNlbGVjdChIZikpLER0KChbLG8sYV0pPT57dGhpcy50ZkZlYXR1cmVGbGFncy5yZWYuc2V0RmVhdHVyZUZsYWdzKG8sYSl9KSkse2Rpc3BhdGNoOiExfSksdGhpcy5zdG9yZUZlYXR1cmVGbGFnJD1fcigoKT0+dGhpcy5hY3Rpb25zJC5waXBlKFpuKHloKSxEdCgoe2ZsYWdzOm99KT0+e3RoaXMuZGF0YVNvdXJjZS5wZXJzaXN0RmVhdHVyZUZsYWdzKG8pfSkpLHtkaXNwYXRjaDohMX0pLHRoaXMucmVzZXRGZWF0dXJlRmxhZ092ZXJyaWRlcyQ9X3IoKCk9PnRoaXMuYWN0aW9ucyQucGlwZShabih4dSksRHQoKHtmbGFnczpvfSk9PntvLmZvckVhY2goYT0+e3RoaXMuZGF0YVNvdXJjZS5yZXNldFBlcnNpc3RlZEZlYXR1cmVGbGFnKGEpfSl9KSkse2Rpc3BhdGNoOiExfSksdGhpcy5yZXNldEFsbEZlYXR1cmVGbGFnT3ZlcnJpZGVzJD1fcigoKT0+dGhpcy5hY3Rpb25zJC5waXBlKFpuKFFmKSxEdCgoKT0+e3RoaXMuZGF0YVNvdXJjZS5yZXNldEFsbFBlcnNpc3RlZEZlYXR1cmVGbGFncygpfSkpLHtkaXNwYXRjaDohMX0pfW5ncnhPbkluaXRFZmZlY3RzKCl7cmV0dXJuIG1XKCl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oRW8pLE8oSWUpLE8oUVMpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWN9KSxufSkoKSxiVz0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmU9ZX1pbnRlcmNlcHQoZSxpKXtyZXR1cm4gdGhpcy5zdG9yZS5waXBlKHVuKEhmKSx6bSgpLEpuKHI9PihlPWUuY2xvbmUoe2hlYWRlcnM6ZS5oZWFkZXJzLnNldCgiWC1UZW5zb3JCb2FyZC1GZWF0dXJlLUZsYWdzIixKU09OLnN0cmluZ2lmeShyKSl9KSxpLmhhbmRsZShlKSkpKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhJZSkpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpO2Z1bmN0aW9uIEN1KG4pe3JldHVybiJmYWxzZSIhPT1ufXZhciBuLEhGPXtzY2FsYXJzQmF0Y2hTaXplOntkZWZhdWx0VmFsdWU6dm9pZCAwLHF1ZXJ5UGFyYW1PdmVycmlkZToic2NhbGFyc0JhdGNoU2l6ZSIscGFyc2VWYWx1ZTpwYXJzZUludH0sZW5hYmxlZEV4cGVyaW1lbnRhbFBsdWdpbnM6e2RlZmF1bHRWYWx1ZTpbXSxxdWVyeVBhcmFtT3ZlcnJpZGU6ImV4cGVyaW1lbnRhbFBsdWdpbiIscGFyc2VWYWx1ZTpmdW5jdGlvbihuKXtyZXR1cm4gbj9uLnNwbGl0KCIsIik6W119fSxmb3JjZVN2Zzp7ZGVmYXVsdFZhbHVlOiExLHF1ZXJ5UGFyYW1PdmVycmlkZToiZm9yY2VTVkciLHBhcnNlVmFsdWU6Q3V9LGVuYWJsZURhcmtNb2RlT3ZlcnJpZGU6e2RlZmF1bHRWYWx1ZTpudWxsLHF1ZXJ5UGFyYW1PdmVycmlkZTpudWxsfSxkZWZhdWx0RW5hYmxlRGFya01vZGU6e2RlZmF1bHRWYWx1ZTohMSxxdWVyeVBhcmFtT3ZlcnJpZGU6ImRhcmtNb2RlIixwYXJzZVZhbHVlOkN1fSxpc0F1dG9EYXJrTW9kZUFsbG93ZWQ6e2RlZmF1bHRWYWx1ZTohMCxxdWVyeVBhcmFtT3ZlcnJpZGU6bnVsbH0saW5Db2xhYjp7ZGVmYXVsdFZhbHVlOiExLHF1ZXJ5UGFyYW1PdmVycmlkZToidGVuc29yYm9hcmRDb2xhYiIscGFyc2VWYWx1ZTpDdX0sbWV0cmljc0ltYWdlU3VwcG9ydEVuYWJsZWQ6e2RlZmF1bHRWYWx1ZTohMCxxdWVyeVBhcmFtT3ZlcnJpZGU6bnVsbH0sc2hvd0ZsYWdzOntkZWZhdWx0VmFsdWU6dm9pZCAwLHF1ZXJ5UGFyYW1PdmVycmlkZToic2hvd0ZsYWdzIixwYXJzZVZhbHVlOm49Pm59LGVuYWJsZVNjYWxhckNvbHVtbkN1c3RvbWl6YXRpb246e2RlZmF1bHRWYWx1ZTohMSxxdWVyeVBhcmFtT3ZlcnJpZGU6ImVuYWJsZVNjYWxhckNvbHVtbkN1c3RvbWl6YXRpb24iLHBhcnNlVmFsdWU6Q3V9LGVuYWJsZVNjYWxhckNvbHVtbkNvbnRleHRNZW51czp7ZGVmYXVsdFZhbHVlOiExLHF1ZXJ5UGFyYW1PdmVycmlkZToiZW5hYmxlU2NhbGFyQ29sdW1uQ29udGV4dE1lbnVzIixwYXJzZVZhbHVlOkN1fSxlbmFibGVTdWdnZXN0ZWRDYXJkczp7ZGVmYXVsdFZhbHVlOiExLHF1ZXJ5UGFyYW1PdmVycmlkZToiZW5hYmxlU3VnZ2VzdGVkQ2FyZHMiLHBhcnNlVmFsdWU6Q3V9LGVuYWJsZUdsb2JhbFBpbnM6e2RlZmF1bHRWYWx1ZTohMCxxdWVyeVBhcmFtT3ZlcnJpZGU6ImVuYWJsZUdsb2JhbFBpbnMiLHBhcnNlVmFsdWU6Q3V9LGVuYWJsZUNvbG9yQnlFeHBlcmltZW50OntkZWZhdWx0VmFsdWU6ITEscXVlcnlQYXJhbU92ZXJyaWRlOiJlbmFibGVDb2xvckJ5RXhwZXJpbWVudCIscGFyc2VWYWx1ZTpDdX19LHpGPXtpc0ZlYXR1cmVGbGFnc0xvYWRlZDohMSxkZWZhdWx0RmxhZ3M6KG49SEYsT2JqZWN0LmVudHJpZXMobikucmVkdWNlKCh0LFtlLGldKT0+KHRbZV09aS5kZWZhdWx0VmFsdWUsdCkse30pKSxtZXRhZGF0YTpIRixmbGFnT3ZlcnJpZGVzOnt9fSxVRj1uZXcgdGUoIltGZWF0dXJlIEZsYWddIFN0b3JlIENvbmZpZyIpO2Z1bmN0aW9uIHlXKCl7cmV0dXJue2luaXRpYWxTdGF0ZTp6Rn19dmFyIGUwZT1ncih6Rix5ZSh5diwobix7ZmVhdHVyZXM6dH0pPT4oey4uLm4saXNGZWF0dXJlRmxhZ3NMb2FkZWQ6ITAsZmxhZ092ZXJyaWRlczp7Li4ubi5mbGFnT3ZlcnJpZGVzLC4uLnR9fSkpLHllKFpTLChuLHtlbmFibGVEYXJrTW9kZTp0fSk9Pih7Li4ubixmbGFnT3ZlcnJpZGVzOnsuLi5uLmZsYWdPdmVycmlkZXMsZW5hYmxlRGFya01vZGVPdmVycmlkZTp0fX0pKSx5ZSh5aCwobix0KT0+KHsuLi5uLGZsYWdPdmVycmlkZXM6ey4uLm4uZmxhZ092ZXJyaWRlcywuLi50LmZsYWdzfX0pKSx5ZSh4dSwobix0KT0+e2lmKCF0fHwhdC5mbGFnc3x8IXQuZmxhZ3MubGVuZ3RoKXJldHVybiBuO2xldCBlPXsuLi5uLmZsYWdPdmVycmlkZXN9O3JldHVybiB0LmZsYWdzLmZvckVhY2goaT0+e2RlbGV0ZSBlW2ldfSksey4uLm4sZmxhZ092ZXJyaWRlczplfX0pLHllKFFmLG49Pih7Li4ubixmbGFnT3ZlcnJpZGVzOnt9fSkpLHllKGhzLChuLHtwYXJ0aWFsU2V0dGluZ3M6dH0pPT57aWYoIXQudGhlbWVPdmVycmlkZSlyZXR1cm4gbjtsZXQgZTtzd2l0Y2godC50aGVtZU92ZXJyaWRlKXtjYXNlIExhLkJST1dTRVJfREVGQVVMVDplPW51bGw7YnJlYWs7Y2FzZSBMYS5EQVJLOmU9ITA7YnJlYWs7Y2FzZSBMYS5MSUdIVDplPSExfXJldHVybnsuLi5uLGZsYWdPdmVycmlkZXM6ey4uLm4uZmxhZ092ZXJyaWRlcyxlbmFibGVEYXJrTW9kZU92ZXJyaWRlOmV9fX0pKTtmdW5jdGlvbiB4VyhuLHQpe3JldHVybiBlMGUobix0KX1mdW5jdGlvbiB0MGUoKXtyZXR1cm4gVyhjUyxuPT5udWxsPT09bj97dGhlbWVPdmVycmlkZTpMYS5CUk9XU0VSX0RFRkFVTFR9Ont0aGVtZU92ZXJyaWRlOm4/TGEuREFSSzpMYS5MSUdIVH0pfXZhciBNdT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7cHJvdmlkZXJzOlt7cHJvdmlkZTpVRix1c2VGYWN0b3J5OnlXfSx7cHJvdmlkZTpiRix1c2VDbGFzczpiVyxtdWx0aTohMH1dLGltcG9ydHM6W2hXLHdyLmZvckZlYXR1cmUobFMseFcsVUYpLHRvLmZvckZlYXR1cmUoW2ZXXSksUmkuZGVmaW5lR2xvYmFsU2V0dGluZyh0MGUpXX0pLG59KSgpLEtTPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtwcm92aWRlcnM6W3twcm92aWRlOndjLHVzZUNsYXNzOmRXfV0saW1wb3J0czpbTXUsemZdfSksbn0pKCksQ1c9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe3Byb3ZpZGVyczpbWFNdfSksbn0pKCksb289KCgpPT4oZnVuY3Rpb24obil7bi5ERUZBVUxUPSJkZWZhdWx0IixuLkFMUEhBQkVUSUNBTD0iYWxwaGFiZXRpY2FsIixuLkFTQ0VORElORz0iYXNjZW5kaW5nIixuLkRFU0NFTkRJTkc9ImRlc2NlbmRpbmciLG4uTkVBUkVTVD0ibmVhcmVzdCIsbi5ORUFSRVNUX1k9Im5lYXJlc3RfWSJ9KG9vfHwob289e30pKSxvbykpKCksSlM9Im1ldHJpY3MiLFZhPSgoKT0+KGZ1bmN0aW9uKG4pe25bbi5OT05FPTBdPSJOT05FIixuW24uT1ZFUlJJREVfQVNfRU5BQkxFRD0xXT0iT1ZFUlJJREVfQVNfRU5BQkxFRCIsbltuLk9WRVJSSURFX0FTX0RJU0FCTEVEPTJdPSJPVkVSUklERV9BU19ESVNBQkxFRCJ9KFZhfHwoVmE9e30pKSxWYSkpKCksJFM9e2NhcmRNaW5XaWR0aDpudWxsLHRvb2x0aXBTb3J0Om9vLkFMUEhBQkVUSUNBTCxpZ25vcmVPdXRsaWVyczohMCx4QXhpc1R5cGU6UGkuU1RFUCxoaWRlRW1wdHlDYXJkczohMCxzY2FsYXJTbW9vdGhpbmc6LjYsc2NhbGFyUGFydGl0aW9uTm9uTW9ub3RvbmljWDohMSxpbWFnZUJyaWdodG5lc3NJbk1pbGxpOjFlMyxpbWFnZUNvbnRyYXN0SW5NaWxsaToxZTMsaW1hZ2VTaG93QWN0dWFsU2l6ZTohMSxoaXN0b2dyYW1Nb2RlOlNyLk9GRlNFVCxzYXZpbmdQaW5zRW5hYmxlZDohMH0sbjBlPS4xO2Z1bmN0aW9uIGZkKG4sdCxlLGkpe3JldHVybiBuW3RdLmhhc093blByb3BlcnR5KGUpP2ZzKHQpP25bdF1bZV0uaGFzT3duUHJvcGVydHkoaSk/blt0XVtlXVtpXTpudWxsOm5bdF1bZV06bnVsbH1mdW5jdGlvbiBlMShuLHQsZSxpKXtpZihmcyh0KSl7bGV0IGE9ey4uLm5bdF19LHM9ZnVuY3Rpb24obix0LGUpe2xldCByPW4uaGFzT3duUHJvcGVydHkodCk/ey4uLm5bdF19Ont9LG89ci5oYXNPd25Qcm9wZXJ0eShlKTtyZXR1cm4gcltlXT1vP3suLi5yW2VdfTp7cnVuVG9TZXJpZXM6e30scnVuVG9Mb2FkU3RhdGU6e319LHJ9KGEsZSxpKTtyZXR1cm4gYVtlXT1zLGF9bGV0IHI9ey4uLm5bdF19LG89ci5oYXNPd25Qcm9wZXJ0eShlKTtyZXR1cm4gcltlXT1vP3suLi5yW2VdfTp7cnVuVG9TZXJpZXM6e30scnVuVG9Mb2FkU3RhdGU6e319LHJ9ZnVuY3Rpb24gakYobil7cmV0dXJuIEpTT04uc3RyaW5naWZ5KG4pfWZ1bmN0aW9uIHQxKG4sdCxlKXtsZXQgaT17Li4uZX07Zm9yKGxldCByIG9mIHQpaVtyXT1uO3JldHVybiBpfWZ1bmN0aW9uIFpmKG4sdCxlLGkpe2lmKGZzKHQpKXtsZXQgbz1uW3RdLnRhZ1J1blNhbXBsZWRJbmZvO3JldHVybiBvLmhhc093blByb3BlcnR5KGUpP09iamVjdC5rZXlzKG9bZV0pLmZpbHRlcihzPT5pPG9bZV1bc10ubWF4U2FtcGxlc1BlclN0ZXApOltdfWxldCByPW5bdF0udGFnVG9SdW5zO3JldHVybiByLmhhc093blByb3BlcnR5KGUpP3JbZV06W119ZnVuY3Rpb24gbzBlKG4sdCl7cmV0dXJuIG4ucGx1Z2luPT09dC5wbHVnaW4mJm4udGFnPT09dC50YWcmJm4uc2FtcGxlPT09dC5zYW1wbGUmJihuLnJ1bklkPT09dC5ydW5JZHx8IW4ucnVuSWQmJiF0LnJ1bklkKX1mdW5jdGlvbiBHRihuLHQsZSxpLHIsbyxhLHMpe2xldCBsPW5ldyBTZXQobiksYz1bXTtmb3IobGV0IHUgb2Ygbilmb3IobGV0IHAgb2YgdClpZihvMGUoZVtwXSx1KSl7Yy5wdXNoKHApLGwuZGVsZXRlKHUpO2JyZWFrfWlmKCFjLmxlbmd0aClyZXR1cm57dW5yZXNvbHZlZEltcG9ydGVkUGlubmVkQ2FyZHM6bixjYXJkTWV0YWRhdGFNYXA6ZSxjYXJkVG9QaW5uZWRDb3B5OmksY2FyZFRvUGlubmVkQ29weUNhY2hlOnIscGlubmVkQ2FyZFRvT3JpZ2luYWw6byxjYXJkU3RlcEluZGV4OmEsY2FyZFN0YXRlTWFwOnN9O2xldCBkPXtjYXJkVG9QaW5uZWRDb3B5OmksY2FyZFRvUGlubmVkQ29weUNhY2hlOnIscGlubmVkQ2FyZFRvT3JpZ2luYWw6byxjYXJkU3RlcEluZGV4OmEsY2FyZE1ldGFkYXRhTWFwOmUsY2FyZFN0YXRlTWFwOnN9O2ZvcihsZXQgdSBvZiBjKWQ9V0YodSxkLmNhcmRUb1Bpbm5lZENvcHksZC5jYXJkVG9QaW5uZWRDb3B5Q2FjaGUsZC5waW5uZWRDYXJkVG9PcmlnaW5hbCxkLmNhcmRTdGVwSW5kZXgsZC5jYXJkTWV0YWRhdGFNYXAscyk7cmV0dXJuey4uLmQsdW5yZXNvbHZlZEltcG9ydGVkUGlubmVkQ2FyZHM6Wy4uLmxdfX1mdW5jdGlvbiBXRihuLHQsZSxpLHIsbyxhKXtpZih0LmhhcyhuKSlyZXR1cm57Y2FyZFRvUGlubmVkQ29weTp0LGNhcmRUb1Bpbm5lZENvcHlDYWNoZTplLHBpbm5lZENhcmRUb09yaWdpbmFsOmksY2FyZFN0ZXBJbmRleDpyLGNhcmRNZXRhZGF0YU1hcDpvLGNhcmRTdGF0ZU1hcDphfTtsZXQgcz1uZXcgTWFwKHQpLGw9bmV3IE1hcChlKSxjPW5ldyBNYXAoaSksZD17Li4ucn0sdT17Li4ub30scD17Li4uYX0saD1mdW5jdGlvbihuKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoe2Jhc2VDYXJkSWQ6bn0pfShuKTtzLnNldChuLGgpLGwuc2V0KG4saCksYy5zZXQoaCxuKSxyLmhhc093blByb3BlcnR5KG4pJiYoZFtoXT1yW25dKTtsZXQgbT1vW25dO2lmKCFtKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHBpbiBhIGNhcmQgd2l0aG91dCBtZXRhZGF0YSIpO3JldHVybiB1W2hdPW0scFtuXSYmKHBbaF09cFtuXSkse2NhcmRUb1Bpbm5lZENvcHk6cyxjYXJkVG9QaW5uZWRDb3B5Q2FjaGU6bCxwaW5uZWRDYXJkVG9PcmlnaW5hbDpjLGNhcmRTdGVwSW5kZXg6ZCxjYXJkTWV0YWRhdGFNYXA6dSxjYXJkU3RhdGVNYXA6cH19dmFyIGEwZT17TUFYX1BJTl9DT1VOVDoxMH07ZnVuY3Rpb24gbjEobil7cmV0dXJuIG4ucGlubmVkQ2FyZFRvT3JpZ2luYWwuc2l6ZStuLnVucmVzb2x2ZWRJbXBvcnRlZFBpbm5lZENhcmRzLmxlbmd0aDxhMGUuTUFYX1BJTl9DT1VOVH1mdW5jdGlvbiBxRihuLHQsZSxpKXtsZXQgcj17Li4ubn07cmV0dXJuIE9iamVjdC5rZXlzKG4pLmZvckVhY2gobz0+e2lmKCFvLmluY2x1ZGVzKCcicGx1Z2luIjoiaW1hZ2VzIicpKXJldHVybjtsZXQgYT1YRihvLHQsZSkscz1udWxsO2lmKG51bGw9PT1pLmVuZClzPWZ1bmN0aW9uKG4sdCl7bGV0IGU9dC5pbmRleE9mKG4pO2lmKC0xIT09ZSlyZXR1cm57aW5kZXg6ZSxpc0Nsb3Nlc3Q6ITF9O2ZvcihsZXQgaT0wO2k8dC5sZW5ndGgtMTtpKyspe2xldCByPXRbaV0sbz10W2krMV0sYT0oby1yKSpuMGU7aWYobjxyKXJldHVybiBudWxsO2lmKCEobj5vKSl7aWYobi1yPD1hKXJldHVybntpbmRleDppLGlzQ2xvc2VzdDohMH07aWYoby1uPD1hKXJldHVybntpbmRleDppKzEsaXNDbG9zZXN0OiEwfX19cmV0dXJuIG51bGx9KGkuc3RhcnQuc3RlcCxhKTtlbHNle2xldCBjPWFbbltvXS5pbmRleF0sZD1mdW5jdGlvbihuLHQpe2lmKCFuKXJldHVybltdO2lmKG51bGw9PT1uLmVuZClyZXR1cm4tMSE9PXQuaW5kZXhPZihuLnN0YXJ0LnN0ZXApP1tuLnN0YXJ0LnN0ZXBdOltdO2xldCBlPVtdO2ZvcihsZXQgaSBvZiB0KWk+PW4uc3RhcnQuc3RlcCYmaTw9bi5lbmQuc3RlcCYmZS5wdXNoKGkpO3JldHVybiBlfShpLGEpO3M9ZnVuY3Rpb24obix0LGUpe2lmKDA9PT1uLmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgaT1uWzBdLHI9bltuLmxlbmd0aC0xXTtyZXR1cm4gZT5yP3tpbmRleDp0LmluZGV4T2YociksaXNDbG9zZXN0OiExfTplPGk/e2luZGV4OnQuaW5kZXhPZihpKSxpc0Nsb3Nlc3Q6ITF9Om51bGx9KGQsYSxjKX1udWxsIT09cyYmKHJbb109cyl9KSxyfWZ1bmN0aW9uIFhGKG4sdCxlKXtpZighdC5oYXNPd25Qcm9wZXJ0eShuKSlyZXR1cm5bXTtsZXR7cGx1Z2luOmksdGFnOnIsc2FtcGxlOm8scnVuSWQ6YX09dFtuXTtpZihudWxsPT09YSlyZXR1cm5bXTtsZXQgcz1mZChlLGkscixvKTtyZXR1cm4gbnVsbCE9PXMmJnMucnVuVG9TZXJpZXMuaGFzT3duUHJvcGVydHkoYSk/cy5ydW5Ub1Nlcmllc1thXS5tYXAobD0+bC5zdGVwKTpbXX1mdW5jdGlvbiBZRihuKXtsZXR7ZGF0YU1pbk1heDp0LHVzZXJWaWV3Qm94OmV9PW4saT1lPy54O2lmKCFpKXJldHVybiB0O2xldCByPWlbMF08aVsxXT9pWzBdOmlbMV0sbz1yPT09aVswXT9pWzFdOmlbMF07cmV0dXJue21pblN0ZXA6TWF0aC5jZWlsKHIpLG1heFN0ZXA6TWF0aC5mbG9vcihvKX19ZnVuY3Rpb24gaTEobix0KXtzd2l0Y2gobil7Y2FzZSBWYS5PVkVSUklERV9BU19FTkFCTEVEOnJldHVybiEwO2Nhc2UgVmEuT1ZFUlJJREVfQVNfRElTQUJMRUQ6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4gdH19ZnVuY3Rpb24gcjEobix0LGUsaSl7cmV0dXJuIGU/dDppMShuW2ldPy5yYW5nZVNlbGVjdGlvbk92ZXJyaWRlLHQpfWZ1bmN0aW9uIF9zKG4pe2xldCB0PW5ldyBNYXA7cmV0dXJuKC4uLmUpPT57bGV0IGk9SlNPTi5zdHJpbmdpZnkoZSk7aWYodC5oYXMoaSkpcmV0dXJuIHQuZ2V0KGkpO3tsZXQgcj1uKC4uLmUpO3JldHVybiB0LnNldChpLHIpLHJ9fX12YXIgSGk9TXIoSlMpLHh2PVcoSGksbj0+bi50YWdNZXRhZGF0YUxvYWRTdGF0ZSksRFc9VyhIaSxuPT5uLnRhZ01ldGFkYXRhKSx1MGU9VyhIaSxuPT5uLmNhcmRMaXN0KSxnZD1XKEhpLChuLHQpPT57aWYoIW4uY2FyZE1ldGFkYXRhTWFwLmhhc093blByb3BlcnR5KHQpKXJldHVybiBSZS5OT1RfTE9BREVEO2xldHtwbHVnaW46ZSx0YWc6aSxydW5JZDpyLHNhbXBsZTpvfT1uLmNhcmRNZXRhZGF0YU1hcFt0XSxhPWZkKG4udGltZVNlcmllc0RhdGEsZSxpLG8pO2lmKCFhKXJldHVybiBSZS5OT1RfTE9BREVEO2xldCBzPWEucnVuVG9Mb2FkU3RhdGU7aWYocilyZXR1cm4gcy5oYXNPd25Qcm9wZXJ0eShyKT9zW3JdOlJlLk5PVF9MT0FERUQ7bGV0IGw9WmYobi50YWdNZXRhZGF0YSxlLGksbyk7aWYoIWwubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGxvYWQgYSBjYXJkIHdob3NlIHRhZyBoYXMgbm8gcnVucyIpO3JldHVybiBsLmV2ZXJ5KGM9PnNbY109PT1SZS5MT0FERUQpP1JlLkxPQURFRDpsLnNvbWUoYz0+c1tjXT09PVJlLkxPQURJTkcpP1JlLkxPQURJTkc6UmUuTk9UX0xPQURFRH0pLHAwZT1fcyhuPT5XKHQ9PnQsdD0+e2xldHtwbHVnaW46ZSx0YWc6aSxzYW1wbGU6cn09bixvPWZkKHQudGltZVNlcmllc0RhdGEsZSxpLHIpO3JldHVybiBvP28ucnVuVG9TZXJpZXM6bnVsbH0pKSx3dT1XKEhpLChuLHQpPT5uLmNhcmRNZXRhZGF0YU1hcC5oYXNPd25Qcm9wZXJ0eSh0KT9wMGUobi5jYXJkTWV0YWRhdGFNYXBbdF0pKG4pOm51bGwpLFFGPVcoSGksbj0+bi5jYXJkTWV0YWRhdGFNYXApLEtzPVcoUUYsKG4sdCk9Pm4uaGFzT3duUHJvcGVydHkodCk/blt0XTpudWxsKSxKcz1XKEhpLG49Pm4uY2FyZFN0YXRlTWFwKSxoMGU9VyhIaSxuPT5uLnZpc2libGVDYXJkTWFwKSxJVz1XKGgwZSxuPT5uZXcgU2V0KG4udmFsdWVzKCkpKSxvMT1XKHUwZSxRRiwobix0KT0+bi5maWx0ZXIoZT0+dC5oYXNPd25Qcm9wZXJ0eShlKSkubWFwKGU9Pih7Y2FyZElkOmUsLi4udFtlXX0pKSksWkY9VyhIaSwobix0KT0+bi5jYXJkU3RlcEluZGV4Lmhhc093blByb3BlcnR5KHQpP24uY2FyZFN0ZXBJbmRleFt0XTpudWxsKSxBVz1XKEhpLChuLHQpPT5YRih0LG4uY2FyZE1ldGFkYXRhTWFwLG4udGltZVNlcmllc0RhdGEpKSxSVz1XKEhpLG49Pm4uY2FyZFRvUGlubmVkQ29weSksbTBlPVcoSGksbj0+bi5waW5uZWRDYXJkVG9PcmlnaW5hbCksS2Y9VyhSVyxRRiwobix0KT0+Wy4uLm4udmFsdWVzKCldLmZpbHRlcihlPT50Lmhhc093blByb3BlcnR5KGUpKS5tYXAoZT0+KHtjYXJkSWQ6ZSwuLi50W2VdfSkpKSxTdT1XKFJXLG0wZSwobix0LGUpPT5uLmhhcyhlKXx8dC5oYXMoZSkpLFBXPVcoSGksbj0+bi51bnJlc29sdmVkSW1wb3J0ZWRQaW5uZWRDYXJkcyksa1c9VyhIaSxuPT5uMShuKSksT1c9VyhIaSxuPT5uLmxhc3RQaW5uZWRDYXJkVGltZSksJHM9VyhIaSxuPT4oey4uLm4uc2V0dGluZ3MsLi4ubi5zZXR0aW5nT3ZlcnJpZGVzfSkpLEZXPVcoSGksbj0+bi5zZXR0aW5nT3ZlcnJpZGVzKSxKZj1XKCRzLG49Pm4uY2FyZE1pbldpZHRoKSx4aD1XKCRzLG49Pm4udG9vbHRpcFNvcnQpLENoPVcoJHMsbj0+bi5pZ25vcmVPdXRsaWVycyksT2w9VygkcyxuPT5uLnhBeGlzVHlwZSksYTE9VygkcyxuPT5uLmhpc3RvZ3JhbU1vZGUpLE5XPVcoJHMsbj0+bi5oaWRlRW1wdHlDYXJkcyksX2Q9VygkcyxuPT5uLnNjYWxhclNtb290aGluZyksczE9VygkcyxuPT5uLnNjYWxhclBhcnRpdGlvbk5vbk1vbm90b25pY1gpLGwxPVcoJHMsbj0+bi5pbWFnZUJyaWdodG5lc3NJbk1pbGxpKSxjMT1XKCRzLG49Pm4uaW1hZ2VDb250cmFzdEluTWlsbGkpLGQxPVcoJHMsbj0+bi5pbWFnZVNob3dBY3R1YWxTaXplKSxiZD1XKCRzLG49Pm4uc2F2aW5nUGluc0VuYWJsZWQpLEZsPVcoSGksbj0+bi50YWdGaWx0ZXIpLHUxPVcoSGksKG4sdCk9PkJvb2xlYW4obi50YWdHcm91cEV4cGFuZGVkLmdldCh0KSkpLEV1PVcoSGksbj0+bi5saW5rZWRUaW1lRW5hYmxlZCksQ3Y9VyhIaSxuPT5uLnN0ZXBTZWxlY3RvckVuYWJsZWQpLFR1PVcoSGksbj0+bi5yYW5nZVNlbGVjdGlvbkVuYWJsZWQpLEtGPVcoSGksbj0+e2xldHttaW46dCxtYXg6ZX09bi5zdGVwTWluTWF4O3JldHVybnttaW46dD09PTEvMD8wOnQsbWF4OmU9PT0tMS8wPzFlMzplfX0pLEpGPVcoSGksS0YsKG4sdCk9Pm4ubGlua2VkVGltZVNlbGVjdGlvbj9uLmxpbmtlZFRpbWVTZWxlY3Rpb246e3N0YXJ0OntzdGVwOnQubWF4fSxlbmQ6bnVsbH0pLER1PVcoSGksSkYsKG4sdCk9Pm4ubGlua2VkVGltZUVuYWJsZWQ/dDpudWxsKSxTYz1XKEhpLG49Pm4uZmlsdGVyZWRQbHVnaW5UeXBlcykscDE9VyhIaSxuPT5uLmlzU2V0dGluZ3NQYW5lT3BlbiksaDE9VyhIaSxuPT5uLmlzU2xpZGVvdXRNZW51T3BlbiksTFc9VyhIaSxuPT5uLnRhYmxlRWRpdG9yU2VsZWN0ZWRUYWIpLG0xPV9zKG49PlcoSnMsVHUsRXUsKHQsZSxpKT0+cjEodCxlLGksbikpKSxCVz1XKEpzLChuLHQpPT57aWYoblt0XSlyZXR1cm4gWUYoblt0XSl9KSxWVz1XKEpzLChuLHQpPT5uW3RdPy5kYXRhTWluTWF4KSwkRj1XKEpzLChuLHQpPT5uW3RdPy51c2VyVmlld0JveD8/bnVsbCksSFc9VyhKcyxDdixUdSxFdSxEdSwobix0LGUsaSxyLG8pPT57bGV0IGE9bltvXTtpZighYSlyZXR1cm47bGV0IHM9WUYoYSk7aWYoIXMpcmV0dXJuO2lmKGkmJnIpcmV0dXJuIEZGKHIscyxlKTtpZighaTEoYS5zdGVwU2VsZWN0aW9uT3ZlcnJpZGUsdCkpcmV0dXJuO2xldCBsPWkxKGEucmFuZ2VTZWxlY3Rpb25PdmVycmlkZSxlKSxjPWEudGltZVNlbGVjdGlvbjtyZXR1cm4gY3x8KGM9e3N0YXJ0OntzdGVwOnMubWluU3RlcH0sZW5kOntzdGVwOnMubWF4U3RlcH19KSxsP2MuZW5kfHwoYz17c3RhcnQ6e3N0ZXA6cy5taW5TdGVwfSxlbmQ6Yy5zdGFydH0pOmM9e3N0YXJ0OmMuZW5kPz9jLnN0YXJ0LGVuZDpudWxsfSxGRihjLHMsbCl9KSxNdj1XKEhpLG49Pm4uc2luZ2xlU2VsZWN0aW9uSGVhZGVycyksd3Y9VyhIaSxuPT5uLnJhbmdlU2VsZWN0aW9uSGVhZGVycyksZTI9X3Mobj0+VyhtMShuKSxNdix3diwodCxlLGkpPT50P2k6ZSkpLHpXPV9zKG49PlcoZTIobiksbWQsKHQsZSk9PmtsLmdyb3VwQ29sdW1ucyhbLi4udCwuLi5lXSkpKSxqVz1Ncigibm90aWZpY2F0aW9uIiksWW49KFcoalcsbj0+bi5ub3RpZmljYXRpb25zKSxXKGpXLG49Pm4ubGFzdFJlYWRUaW1lc3RhbXBJbk1zPz8tMSksKCgpPT4oZnVuY3Rpb24obil7bltuLlJVTj0wXT0iUlVOIixuW24uRVhQRVJJTUVOVD0xXT0iRVhQRVJJTUVOVCIsbltuLlJFR0VYPTJdPSJSRUdFWCIsbltuLlJFR0VYX0JZX0VYUD0zXT0iUkVHRVhfQllfRVhQIn0oWW58fChZbj17fSkpLFluKSkoKSk7ZnVuY3Rpb24gRXYobix0LGUsaSl7bGV0IHMscj17fSxvPVtdLGE9e21hdGNoZXM6cixub25NYXRjaGVzOm99O3N3aXRjaChuLmtleSl7Y2FzZSBZbi5SVU46Zm9yKGxldCBsIG9mIHQpcltsLmlkXT1bbF07YnJlYWs7Y2FzZSBZbi5FWFBFUklNRU5UOmZvcihsZXQgbCBvZiB0KXtsZXQgYz1lW2wuaWRdLGQ9cltjXXx8W107ZC5wdXNoKGwpLHJbY109ZH1icmVhaztjYXNlIFluLlJFR0VYOmlmKCFuLnJlZ2V4U3RyaW5nKWJyZWFrO3RyeXtzPW5ldyBSZWdFeHAobi5yZWdleFN0cmluZyl9Y2F0Y2h7YnJlYWt9Zm9yKGxldCBsIG9mIHQpe2xldCBjPWwubmFtZS5tYXRjaChzKTtpZihjKXtsZXQgdT1jLmxlbmd0aD4xP0pTT04uc3RyaW5naWZ5KGMuc2xpY2UoMSkpOiJwc2V1ZG9fZ3JvdXAiLHA9clt1XXx8W107cC5wdXNoKGwpLHJbdV09cH1lbHNlIG8ucHVzaChsKX1icmVhaztjYXNlIFluLlJFR0VYX0JZX0VYUDppZighbi5yZWdleFN0cmluZ3x8IWl8fDA9PT1PYmplY3Qua2V5cyhpKS5sZW5ndGgpYnJlYWs7dHJ5e3M9bmV3IFJlZ0V4cChuLnJlZ2V4U3RyaW5nKX1jYXRjaHticmVha31mb3IobGV0IGwgb2YgdCl7bGV0IGQ9aVtlW2wuaWRdXS5tYXRjaChzKTtpZihkKXtsZXQgcD1kLmxlbmd0aD4xP0pTT04uc3RyaW5naWZ5KGQuc2xpY2UoMSkpOiJwc2V1ZG9fZ3JvdXAiLGg9cltwXXx8W107aC5wdXNoKGwpLHJbcF09aH1lbHNlIG8ucHVzaChsKX19cmV0dXJuIGF9ZnVuY3Rpb24gZzEobix0KXtzd2l0Y2gobil7Y2FzZSBZbi5SRUdFWDpjYXNlIFluLlJFR0VYX0JZX0VYUDpyZXR1cm57a2V5Om4scmVnZXhTdHJpbmc6dD8/IiJ9O2RlZmF1bHQ6cmV0dXJue2tleTpufX19dmFyIEdXPU1yKCJydW5zIiksZmE9VyhHVyxuPT5uLmRhdGEpLFdXPVcoZmEsbj0+bi5ydW5JZFRvRXhwSWQpLF8xPVcoZmEsKG4sdCk9Pm4ucnVuSWRUb0V4cElkW3QucnVuSWRdPz9udWxsKSxiMT1XKGZhLChuLHQpPT5uLnJ1bk1ldGFkYXRhW3QucnVuSWRdPz9udWxsKSxJdT1XKGZhLChuLHQpPT4obi5ydW5JZHNbdC5leHBlcmltZW50SWRdfHxbXSkuZmlsdGVyKGk9PkJvb2xlYW4obi5ydW5NZXRhZGF0YVtpXSkpLm1hcChpPT5uLnJ1bk1ldGFkYXRhW2ldKSkscVc9VyhBRixvcixmYSwobix0LGUpPT57aWYoIXQpcmV0dXJue307bGV0IGk9W107Zm9yKGxldCBzIG9mIHQpaS5wdXNoKC4uLmUucnVuSWRzW3NdfHxbXSk7bGV0IHI9e307Zm9yKGxldCBzIG9mIG4pe2xldCBsPU9iamVjdC5lbnRyaWVzKHMuaHBhcmFtcykubWFwKGM9PntsZXRbZCx1XT1jO3JldHVybntuYW1lOmQsdmFsdWU6dX19KTtmb3IobGV0IGMgb2Ygcy5zZXNzaW9ucylyW2MubmFtZV09bH1sZXQgbz1PYmplY3Qua2V5cyhyKS5zb3J0KChzLGwpPT5sLmxlbmd0aC1zLmxlbmd0aCksYT17fTtmb3IobGV0IHMgb2YgaSlmb3IobGV0IGwgb2YgbylpZihzLnN0YXJ0c1dpdGgobCkpe2Fbc109e2hwYXJhbXM6cltsXSxtZXRyaWNzOltdfTticmVha31yZXR1cm4gYX0pLFhXPVcocVcsbj0+e2xldCB0PXt9O2ZvcihsZXRbZSx7aHBhcmFtczppfV1vZiBPYmplY3QuZW50cmllcyhuKSl0W2VdPW5ldyBNYXAoaS5tYXAoKHtuYW1lOnIsdmFsdWU6b30pPT5bcixvXSkpO3JldHVybiB0fSksdjE9VyhmYSxvcixxVywobix0LGUpPT50P3QubWFwKGk9PihuLnJ1bklkc1tpXXx8W10pLmZpbHRlcihyPT5Cb29sZWFuKG4ucnVuTWV0YWRhdGFbcl0pKS5tYXAocj0+e2xldCBvPXsuLi5uLnJ1bk1ldGFkYXRhW3JdLGV4cGVyaW1lbnRJZDppfTtyZXR1cm4gby5ocGFyYW1zPWVbcl0/LmhwYXJhbXM/P251bGwsby5tZXRyaWNzPWVbcl0/Lm1ldHJpY3M/P251bGwsb30pKS5mbGF0KCk6W10pLFlXPVcoZmEsKG4sdCk9Pm4ucnVuSWRzW3QuZXhwZXJpbWVudElkXT8/W10pLFFXPVcoZmEsbj0+bmV3IE1hcChPYmplY3QuZW50cmllcyhuLnJ1bk1ldGFkYXRhKSkpLFR2PVcoZmEsKG4sdCk9Pm4ucnVuc0xvYWRTdGF0ZVt0LmV4cGVyaW1lbnRJZF18fHtsYXN0TG9hZGVkVGltZUluTXM6bnVsbCxzdGF0ZTpSZS5OT1RfTE9BREVEfSksdDI9VyhmYSxuPT5udWxsIT09bi51c2VyU2V0R3JvdXBCeUtleT9nMShuLnVzZXJTZXRHcm91cEJ5S2V5LG4uY29sb3JHcm91cFJlZ2V4U3RyaW5nKTpudWxsKSxEdj1XKHQyLGZhLChuLHQpPT5uPz90LmluaXRpYWxHcm91cEJ5KSxBdT1XKGZhLG49Pm4ucmVnZXhGaWx0ZXIpLG4yPVcoR1csbj0+bi51aSksWlc9VyhuMixuPT5uLnNlbGVjdGlvblN0YXRlKSxLVz1XKGZhLG49Pm4ucnVuQ29sb3JPdmVycmlkZUZvckdyb3VwQnkpLEpXPVcoZmEsbj0+bi5kZWZhdWx0UnVuQ29sb3JJZEZvckdyb3VwQnkpLHkxPVcoZmEsbj0+bi5jb2xvckdyb3VwUmVnZXhTdHJpbmcpLGYwZT1XKG4yLG49Pm4ucnVuc1RhYmxlSGVhZGVycyksJFc9VyhuMixuPT5uLnNvcnRpbmdJbmZvKSxlNz1XKGYwZSxtZCwobix0KT0+a2wuZ3JvdXBDb2x1bW5zKFsuLi5uLC4uLnRdKSkseDE9ZmUoIltTZXR0aW5nc10gUmVsb2FkIEVuYWJsZSBUb2dnbGVkIiksQzE9ZmUoIltTZXR0aW5nc10gUmVsb2FkIFBlcmlvZCBDaGFuZ2UiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxNMT1mZSgiW1NldHRpbmdzXSBQYWdlIFNpemUgQ2hhbmdlIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksSGE9e307TkEoSGEse2dldENvbG9yUGFsZXR0ZTooKT0+ZzBlLGdldFBhZ2VTaXplOigpPT5NaCxnZXRSZWxvYWRFbmFibGVkOigpPT5BdixnZXRSZWxvYWRQZXJpb2RJbk1zOigpPT5SdixnZXRTZXR0aW5nc0xvYWRTdGF0ZTooKT0+aTJ9KTt2YXIgdzE9InNldHRpbmdzIixpNz17c3RhdGU6UmUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpLHNldHRpbmdzOntyZWxvYWRQZXJpb2RJbk1zOjNlNCxyZWxvYWRFbmFibGVkOiExLHBhZ2VTaXplOjEyLGNvbG9yUGFsZXR0ZTp7aWQ6ImRlZmF1bHQiLG5hbWU6IkRlZmFsdCIsY29sb3JzOlt7bmFtZToiU2xhdGUiLGxpZ2h0SGV4OiIjNDI1MDY2IixkYXJrSGV4OiIjOGU5OGEzIn0se25hbWU6IkN5YW4iLGxpZ2h0SGV4OiIjMTJiNWNiIixkYXJrSGV4OiIjMTJiNWNiIn0se25hbWU6IlBpbmsiLGxpZ2h0SGV4OiIjZTUyNTkyIixkYXJrSGV4OiIjZTUyNTkyIn0se25hbWU6IlllbGxvdyIsbGlnaHRIZXg6IiNmOWFiMDAiLGRhcmtIZXg6IiNmOWFiMDAifSx7bmFtZToiUHVycGxlIixsaWdodEhleDoiIzkzMzRlNiIsZGFya0hleDoiIzkzMzRlNiJ9LHtuYW1lOiJMaWdodCBHcmVlbiIsbGlnaHRIZXg6IiM3Y2IzNDIiLGRhcmtIZXg6IiM3Y2IzNDIifSx7bmFtZToiT3JhbmdlIixsaWdodEhleDoiI2U4NzEwYSIsZGFya0hleDoiI2U4NzEwYSJ9XSxpbmFjdGl2ZTp7bmFtZToiR3JheSIsbGlnaHRIZXg6IiNlMGUwZTAiLGRhcmtIZXg6IiMzYjNiM2IifX19fSxJdj1Ncih3MSksaTI9VyhJdixuPT5uLnN0YXRlKSxBdj1XKEl2LG49Pm4uc2V0dGluZ3MucmVsb2FkRW5hYmxlZCksUnY9VyhJdixuPT5uLnNldHRpbmdzLnJlbG9hZFBlcmlvZEluTXMpLE1oPVcoSXYsbj0+bi5zZXR0aW5ncy5wYWdlU2l6ZSksZzBlPVcoSXYsbj0+bi5zZXR0aW5ncy5jb2xvclBhbGV0dGUpO2Z1bmN0aW9uIFMxKG4sdCxlKXtpZighdClyZXR1cm4hMDtsZXQgaTt0cnl7aT1uZXcgUmVnRXhwKHQsImkiKX1jYXRjaHtyZXR1cm4hMX1sZXQgcj1bbi5ydW5OYW1lXTtyZXR1cm4gZSYmci5wdXNoKG4uZXhwZXJpbWVudEFsaWFzLmFsaWFzVGV4dCxgJHtuLmV4cGVyaW1lbnRBbGlhcy5hbGlhc1RleHR9LyR7bi5ydW5OYW1lfWApLHIuc29tZShvPT5pLnRlc3QobykpfXZhciBfMGU9VyhvcixaVyxXVywobix0LGUpPT57aWYoIW4pcmV0dXJuIG5ldyBNYXA7bGV0IGk9bmV3IE1hcDtmb3IobGV0W3Isb11vZiB0LmVudHJpZXMoKSl7bGV0IGE9ZVtyXTthJiZuLmluZGV4T2YoYSk+PTAmJmkuc2V0KHIsbyl9cmV0dXJuIGl9KSxiMGU9Vyhxcyx2MSwobix0KT0+e2xldCBlPW5ldyBNYXA7Zm9yKGxldCBpIG9mIHQpZS5zZXQoaS5pZCx7cnVuTmFtZTppLm5hbWUsZXhwZXJpbWVudEFsaWFzOm5baS5leHBlcmltZW50SWRdfSk7cmV0dXJuIGV9KSxSdT1XKG9yLF8wZSxBdSxiMGUsV3MsKG4sdCxlLGkscik9PntpZighbilyZXR1cm4gbnVsbDtsZXQgbz1yPT09Q24uQ09NUEFSRV9FWFBFUklNRU5ULGE9bmV3IE1hcDtmb3IobGV0W3MsbF1vZiB0LmVudHJpZXMoKSl7bGV0IGM9aS5nZXQocyk7YS5zZXQocyxTMShjLGUsbykmJmwpfXJldHVybiBhfSksUHU9VyhIYS5nZXRDb2xvclBhbGV0dGUsSlcsS1csUGwsKG4sdCxlLGkpPT57bGV0IHI9e307cmV0dXJuIHQuZm9yRWFjaCgobyxhKT0+e2xldCBzPWk/bi5pbmFjdGl2ZS5kYXJrSGV4Om4uaW5hY3RpdmUubGlnaHRIZXg7aWYoZS5oYXMoYSkpcz1lLmdldChhKTtlbHNlIGlmKG8+PTApe2xldCBsPW4uY29sb3JzW28lbi5jb2xvcnMubGVuZ3RoXTtzPWk/bC5kYXJrSGV4OmwubGlnaHRIZXh9clthXT1zfSkscn0pLHI3PSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIpe3RoaXMuYWN0aW9ucyQ9ZSx0aGlzLnN0b3JlPWksdGhpcy5ydW5zRGF0YVNvdXJjZT1yLHRoaXMuZXhwZXJpbWVudHNXaXRoU3RhbGVSdW5zT25Sb3V0ZUNoYW5nZSQ9dGhpcy5hY3Rpb25zJC5waXBlKFpuKE5hKSxJdCh0aGlzLnN0b3JlLnNlbGVjdChIbykpLHJpKChbLG9dLFssYV0pPT5WbyhvLGEpKSxJdCh0aGlzLnN0b3JlLnNlbGVjdChvcikpLE9lKChbLG9dKT0+ISFvKSxxKChbLG9dKT0+bykseG4obz0+dGhpcy5nZXRFeHBlcmltZW50c1dpdGhMb2FkU3RhdGUobyxhPT5hPT09UmUuRkFJTEVEfHxhPT09UmUuTk9UX0xPQURFRCkucGlwZShxKGE9Pih7ZXhwZXJpbWVudElkczpvLGV4cGVyaW1lbnRJZHNUb0JlRmV0Y2hlZDphfSkpKSkpLHRoaXMuZXhwZXJpbWVudHNXaXRoU3RhbGVSdW5zT25SZWxvYWQkPXRoaXMuYWN0aW9ucyQucGlwZShabihtYSxCYSksSXQodGhpcy5zdG9yZS5zZWxlY3Qob3IpKSxPZSgoWyxvXSk9PiEhbykscSgoWyxvXSk9Pm8pLHhuKG89PnRoaXMuZ2V0RXhwZXJpbWVudHNXaXRoTG9hZFN0YXRlKG8sYT0+YSE9PVJlLkxPQURJTkcpLnBpcGUocShhPT4oe2V4cGVyaW1lbnRJZHM6byxleHBlcmltZW50SWRzVG9CZUZldGNoZWQ6YX0pKSkpKSx0aGlzLmxvYWRSdW5zT25OYXZpZ2F0aW9uT3JSZWxvYWQkPV9yKCgpPT50bih0aGlzLmV4cGVyaW1lbnRzV2l0aFN0YWxlUnVuc09uUm91dGVDaGFuZ2UkLHRoaXMuZXhwZXJpbWVudHNXaXRoU3RhbGVSdW5zT25SZWxvYWQkKS5waXBlKEl0KHRoaXMuc3RvcmUuc2VsZWN0KEhvKSksT2UoKFssb10pPT5udWxsIT09byYmby5yb3V0ZUtpbmQhPT1Dbi5DQVJEKSx4bigoW3tleHBlcmltZW50SWRzOm8sZXhwZXJpbWVudElkc1RvQmVGZXRjaGVkOmF9XSk9PnRoaXMuZmV0Y2hBbGxSdW5zTGlzdChvLGEpKSkse2Rpc3BhdGNoOiExfSksdGhpcy5yZW1vdmVIcGFyYW1GaWx0ZXJXaGVuQ29sdW1uSXNSZW1vdmVkJD1fcigoKT0+dGhpcy5hY3Rpb25zJC5waXBlKFpuKEJTKSxEdCgoe2hlYWRlcjpvfSk9PntvLnR5cGUhPT1ndC5IUEFSQU0/by50eXBlPT09Z3QuTUVUUklDJiZ0aGlzLnN0b3JlLmRpc3BhdGNoKGZ2KHtuYW1lOm8ubmFtZX0pKTp0aGlzLnN0b3JlLmRpc3BhdGNoKG12KHtuYW1lOm8ubmFtZX0pKX0pKSx7ZGlzcGF0Y2g6ITF9KX1nZXRSdW5zTGlzdExvYWRTdGF0ZShlKXtyZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoVHYse2V4cGVyaW1lbnRJZDplfSkucGlwZShMdCgxKSl9Z2V0RXhwZXJpbWVudHNXaXRoTG9hZFN0YXRlKGUsaSl7cmV0dXJuIENvKGUubWFwKHI9PnRoaXMuZ2V0UnVuc0xpc3RMb2FkU3RhdGUocikpKS5waXBlKHEocj0+ZS5maWx0ZXIoKG8sYSk9PmkoclthXS5zdGF0ZSkpKSl9ZmV0Y2hBbGxSdW5zTGlzdChlLGkpe3JldHVybiAkdCh7ZXhwZXJpbWVudElkczplLGV4cGVyaW1lbnRJZHNUb0JlRmV0Y2hlZDppfSkucGlwZShEdCgoKT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goUFMoe2V4cGVyaW1lbnRJZHM6ZSxyZXF1ZXN0ZWRFeHBlcmltZW50SWRzOml9KSl9KSx4bigoKT0+e2xldCByPW5ldyBTZXQoaSk7cmV0dXJuIENvKGUubWFwKGE9PnIuaGFzKGEpP3RoaXMuZmV0Y2hSdW5zRm9yRXhwZXJpbWVudChhKTp0aGlzLm1heWJlV2FpdEZvclJ1bnNBbmRHZXRSdW5zKGEpKSl9KSxxKHI9PntsZXQgbz17fSxhPVtdO2ZvcihsZXQgcyBvZiByKWEucHVzaCguLi5zLnJ1bnMpLHMuZnJvbVJlbW90ZSYmKG9bcy5leHBlcmltZW50SWRdPXtydW5zOnMucnVuc30pO3JldHVybntuZXdSdW5zOm8scnVuc0ZvckFsbEV4cGVyaW1lbnRzOmF9fSksSXQodGhpcy5zdG9yZS5zZWxlY3QoeXUpKSxEdCgoW3Isb10pPT57bGV0e25ld1J1bnM6YSxydW5zRm9yQWxsRXhwZXJpbWVudHM6c309cjt0aGlzLnN0b3JlLmRpc3BhdGNoKFdmKHtleHBlcmltZW50SWRzOmUsbmV3UnVuczphLHJ1bnNGb3JBbGxFeHBlcmltZW50czpzLGV4cE5hbWVCeUV4cElkOm99KSl9KSxjbyhyPT4odGhpcy5zdG9yZS5kaXNwYXRjaChxZih7ZXhwZXJpbWVudElkczplLHJlcXVlc3RlZEV4cGVyaW1lbnRJZHM6aX0pKSwkdChudWxsKSkpLHEoKCk9Pm51bGwpKX1tYXliZVdhaXRGb3JSdW5zQW5kR2V0UnVucyhlKXtyZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoVHYse2V4cGVyaW1lbnRJZDplfSkucGlwZShPZShpPT5pLnN0YXRlIT09UmUuTE9BRElORyksTHQoMSkseG4oaT0+aS5zdGF0ZT09PVJlLkZBSUxFRD9fbChuZXcgRXJyb3IoIlBlbmRpbmcgcmVxdWVzdCBmYWlsZWQiKSk6JHQoaSkpLEl0KHRoaXMuc3RvcmUuc2VsZWN0KEl1LHtleHBlcmltZW50SWQ6ZX0pKSxxKChbLGldKT0+KHtmcm9tUmVtb3RlOiExLGV4cGVyaW1lbnRJZDplLHJ1bnM6aX0pKSl9ZmV0Y2hSdW5zRm9yRXhwZXJpbWVudChlKXtyZXR1cm4gdGhpcy5ydW5zRGF0YVNvdXJjZS5mZXRjaFJ1bnMoZSkucGlwZShxKGk9Pih7ZnJvbVJlbW90ZTohMCxleHBlcmltZW50SWQ6ZSxydW5zOml9KSkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKEVvKSxPKEllKSxPKEVTKSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCkse2luaXRpYWxTdGF0ZTp2MGUscmVkdWNlcnM6eTBlfT1faCh7cnVuQ29sb3JPdmVycmlkZUZvckdyb3VwQnk6bmV3IE1hcCxkZWZhdWx0UnVuQ29sb3JJZEZvckdyb3VwQnk6bmV3IE1hcCxncm91cEtleVRvQ29sb3JJZDpuZXcgTWFwLGluaXRpYWxHcm91cEJ5OntrZXk6WW4uUlVOfSx1c2VyU2V0R3JvdXBCeUtleTpudWxsLGNvbG9yR3JvdXBSZWdleFN0cmluZzoiIixyZWdleEZpbHRlcjoiIn0se3J1bklkczp7fSxydW5JZFRvRXhwSWQ6e30scnVuTWV0YWRhdGE6e30scnVuc0xvYWRTdGF0ZTp7fX0sKG4sdCxlKT0+Vm8odCxlKT9uOnsuLi5uLGluaXRpYWxHcm91cEJ5OntrZXk6ZS5yb3V0ZUtpbmQ9PT1Dbi5DT01QQVJFX0VYUEVSSU1FTlQ/WW4uRVhQRVJJTUVOVDpZbi5SVU59fSkseDBlPWdyKHYwZSx5ZShmdSwobix7cm91dGVLaW5kOnQscGFydGlhbFN0YXRlOmV9KT0+e2lmKHQhPT1Dbi5DT01QQVJFX0VYUEVSSU1FTlQmJnQhPT1Dbi5FWFBFUklNRU5UKXJldHVybiBuO2xldCByPWUucnVucy5ncm91cEJ5LG89ZS5ydW5zLnJlZ2V4RmlsdGVyPz8iIjtpZighciYmIW8pcmV0dXJuIG47bGV0e2NvbG9yR3JvdXBSZWdleFN0cmluZzphLHVzZXJTZXRHcm91cEJ5S2V5OnN9PW47cmV0dXJuIHImJihhPXIua2V5PT09WW4uUkVHRVh8fHIua2V5PT09WW4uUkVHRVhfQllfRVhQP3IucmVnZXhTdHJpbmc6bi5jb2xvckdyb3VwUmVnZXhTdHJpbmcscz1yLmtleT8/bnVsbCksey4uLm4sY29sb3JHcm91cFJlZ2V4U3RyaW5nOmEscmVnZXhGaWx0ZXI6byx1c2VyU2V0R3JvdXBCeUtleTpzfX0pLHllKFBTLChuLHQpPT57bGV0IGU9ey4uLm4ucnVuc0xvYWRTdGF0ZX07Zm9yKGxldCBpIG9mIHQucmVxdWVzdGVkRXhwZXJpbWVudElkcyllW2ldPWVbaV0/ey4uLmVbaV0sc3RhdGU6UmUuTE9BRElOR306e2xhc3RMb2FkZWRUaW1lSW5NczpudWxsLHN0YXRlOlJlLkxPQURJTkd9O3JldHVybnsuLi5uLHJ1bnNMb2FkU3RhdGU6ZX19KSx5ZShXZiwobix0KT0+e2xldCBlPXsuLi5uLnJ1bklkc30saT17Li4ubi5ydW5NZXRhZGF0YX0scj17Li4ubi5ydW5JZFRvRXhwSWR9LG89ey4uLm4ucnVuc0xvYWRTdGF0ZX07Zm9yKGxldCBhIG9mIE9iamVjdC5rZXlzKHQubmV3UnVucykpe2xldHtydW5zOnN9PXQubmV3UnVuc1thXTtlW2FdPXMubWFwKCh7aWQ6bH0pPT5sKSxvW2FdPXsuLi5vW2FdLGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpLHN0YXRlOlJlLkxPQURFRH07Zm9yKGxldCBsIG9mIHMpaVtsLmlkXT17Li4ubCxocGFyYW1zOm51bGwsbWV0cmljczpudWxsfSxyW2wuaWRdPWF9cmV0dXJuey4uLm4scnVuSWRzOmUscnVuSWRUb0V4cElkOnIscnVuTWV0YWRhdGE6aSxydW5zTG9hZFN0YXRlOm99fSkseWUocWYsKG4sdCk9PntsZXQgZT17Li4ubi5ydW5zTG9hZFN0YXRlfTtmb3IobGV0IGkgb2YgdC5yZXF1ZXN0ZWRFeHBlcmltZW50SWRzKWVbaV09ZVtpXT97Li4uZVtpXSxzdGF0ZTpSZS5GQUlMRUR9OntsYXN0TG9hZGVkVGltZUluTXM6bnVsbCxzdGF0ZTpSZS5GQUlMRUR9O3JldHVybnsuLi5uLHJ1bnNMb2FkU3RhdGU6ZX19KSx5ZShXZiwobix7cnVuc0ZvckFsbEV4cGVyaW1lbnRzOnQsZXhwTmFtZUJ5RXhwSWQ6ZX0pPT57bGV0IGk9bmV3IE1hcChuLmdyb3VwS2V5VG9Db2xvcklkKSxyPW5ldyBNYXAobi5kZWZhdWx0UnVuQ29sb3JJZEZvckdyb3VwQnkpLG89bi5pbml0aWFsR3JvdXBCeTtudWxsIT09bi51c2VyU2V0R3JvdXBCeUtleSYmKG89ZzEobi51c2VyU2V0R3JvdXBCeUtleSxuLmNvbG9yR3JvdXBSZWdleFN0cmluZykpO2xldCBhPUV2KG8sdCxuLnJ1bklkVG9FeHBJZCxlKTtPYmplY3QuZW50cmllcyhhLm1hdGNoZXMpLmZvckVhY2goKFtzLGxdKT0+e2xldCBjPWkuZ2V0KHMpPz9pLnNpemU7aS5zZXQocyxjKTtmb3IobGV0IGQgb2YgbClyLnNldChkLmlkLGMpfSk7Zm9yKGxldCBzIG9mIGEubm9uTWF0Y2hlcylyLnNldChzLmlkLC0xKTtyZXR1cm57Li4ubixkZWZhdWx0UnVuQ29sb3JJZEZvckdyb3VwQnk6cixncm91cEtleVRvQ29sb3JJZDppfX0pLHllKFhmLChuLHtleHBlcmltZW50SWRzOnQsZ3JvdXBCeTplLGV4cE5hbWVCeUV4cElkOml9KT0+e2xldCByPW5ldyBNYXAsbz1uZXcgTWFwKG4uZGVmYXVsdFJ1bkNvbG9ySWRGb3JHcm91cEJ5KSxzPUV2KGUsdC5mbGF0TWFwKGM9Pm4ucnVuSWRzW2NdKS5tYXAoYz0+bi5ydW5NZXRhZGF0YVtjXSksbi5ydW5JZFRvRXhwSWQsaSk7T2JqZWN0LmVudHJpZXMocy5tYXRjaGVzKS5mb3JFYWNoKChbYyxkXSk9PntsZXQgdT1yLmdldChjKT8/ci5zaXplO3Iuc2V0KGMsdSk7Zm9yKGxldCBwIG9mIGQpby5zZXQocC5pZCx1KX0pO2ZvcihsZXQgYyBvZiBzLm5vbk1hdGNoZXMpby5zZXQoYy5pZCwtMSk7bGV0IGw9ZS5rZXk9PT1Zbi5SRUdFWHx8ZS5rZXk9PT1Zbi5SRUdFWF9CWV9FWFA/ZS5yZWdleFN0cmluZzpuLmNvbG9yR3JvdXBSZWdleFN0cmluZztyZXR1cm57Li4ubixjb2xvckdyb3VwUmVnZXhTdHJpbmc6bCx1c2VyU2V0R3JvdXBCeUtleTplLmtleSxkZWZhdWx0UnVuQ29sb3JJZEZvckdyb3VwQnk6byxncm91cEtleVRvQ29sb3JJZDpyLHJ1bkNvbG9yT3ZlcnJpZGVGb3JHcm91cEJ5Om5ldyBNYXB9fSkseWUoTFMsKG4se3J1bklkOnQsbmV3Q29sb3I6ZX0pPT57bGV0IGk9bmV3IE1hcChuLnJ1bkNvbG9yT3ZlcnJpZGVGb3JHcm91cEJ5KTtyZXR1cm4gaS5zZXQodCxlKSx7Li4ubixydW5Db2xvck92ZXJyaWRlRm9yR3JvdXBCeTppfX0pLHllKE5TLChuLHQpPT4oey4uLm4scmVnZXhGaWx0ZXI6dC5yZWdleFN0cmluZ30pKSksQzBlPWJoKHgwZSx5MGUpLHtpbml0aWFsU3RhdGU6TTBlLHJlZHVjZXJzOncwZX09X2goe3NlbGVjdGlvblN0YXRlOm5ldyBNYXAscnVuc1RhYmxlSGVhZGVyczpbe3R5cGU6Z3QuUlVOLG5hbWU6InJ1biIsZGlzcGxheU5hbWU6IlJ1biIsZW5hYmxlZDohMCxzb3J0YWJsZTohMCxyZW1vdmFibGU6ITEsbW92YWJsZTohMSxmaWx0ZXJhYmxlOiExfV0sc29ydGluZ0luZm86e25hbWU6InJ1biIsb3JkZXI6THIuQVNDRU5ESU5HfX0se30sKG4sdCxlKT0+e2lmKCFWbyh0LGUpKXtpZihlLnJvdXRlS2luZD09PUNuLkNPTVBBUkVfRVhQRVJJTUVOVCYmIW4ucnVuc1RhYmxlSGVhZGVycy5maW5kKGk9PiJleHBlcmltZW50QWxpYXMiPT09aS5uYW1lKSl7bGV0IGk9Wy4uLm4ucnVuc1RhYmxlSGVhZGVycyx7dHlwZTpndC5DVVNUT00sbmFtZToiZXhwZXJpbWVudEFsaWFzIixkaXNwbGF5TmFtZToiRXhwZXJpbWVudCIsZW5hYmxlZDohMCxtb3ZhYmxlOiExLHNvcnRhYmxlOiEwfV07cmV0dXJuey4uLm4scnVuc1RhYmxlSGVhZGVyczppfX1pZih0Py5yb3V0ZUtpbmQ9PT1Dbi5DT01QQVJFX0VYUEVSSU1FTlQmJmUucm91dGVLaW5kIT09Q24uQ09NUEFSRV9FWFBFUklNRU5UKXtsZXQgaT1uLnJ1bnNUYWJsZUhlYWRlcnMuZmlsdGVyKHI9PiJleHBlcmltZW50QWxpYXMiIT09ci5uYW1lKTtyZXR1cm57Li4ubixydW5zVGFibGVIZWFkZXJzOml9fX1yZXR1cm4gbn0pLFMwZT1ncihNMGUseWUoV2YsKG4sdCk9PntsZXQgZT1uZXcgTWFwKG4uc2VsZWN0aW9uU3RhdGUpLGk9dC5ydW5zRm9yQWxsRXhwZXJpbWVudHMubGVuZ3RoPD01MDA7Zm9yKGxldCByIG9mIHQucnVuc0ZvckFsbEV4cGVyaW1lbnRzKWUuaGFzKHIuaWQpfHxlLnNldChyLmlkLGkpO3JldHVybnsuLi5uLHNlbGVjdGlvblN0YXRlOmV9fSkseWUoa1MsKG4se3J1bklkOnR9KT0+e2xldCBlPW5ldyBNYXAobi5zZWxlY3Rpb25TdGF0ZSk7cmV0dXJuIGUuc2V0KHQsIUJvb2xlYW4oZS5nZXQodCkpKSx7Li4ubixzZWxlY3Rpb25TdGF0ZTplfX0pLHllKE9TLChuLHtydW5JZDp0fSk9PntsZXQgZT1uZXcgTWFwO2ZvcihsZXQgaSBvZiBuLnNlbGVjdGlvblN0YXRlLmtleXMoKSllLnNldChpLHQ9PT1pKTtyZXR1cm57Li4ubixzZWxlY3Rpb25TdGF0ZTplfX0pLHllKEZTLChuLHtydW5JZHM6dH0pPT57bGV0IGU9bmV3IE1hcChuLnNlbGVjdGlvblN0YXRlKSxpPSF0LmV2ZXJ5KHI9PkJvb2xlYW4oZS5nZXQocikpKTtmb3IobGV0IHIgb2YgdCllLnNldChyLGkpO3JldHVybnsuLi5uLHNlbGVjdGlvblN0YXRlOmV9fSkseWUoWjYsKG4se2hlYWRlcjp0LGluZGV4OmV9KT0+e2xldCBpPVsuLi5uLnJ1bnNUYWJsZUhlYWRlcnNdO3JldHVybiB2b2lkIDA9PT1lP2kucHVzaCh0KTppLnNwbGljZShlLDAsdCksey4uLm4scnVuc1RhYmxlSGVhZGVyczppfX0pLHllKEJTLChuLHtoZWFkZXI6dH0pPT57bGV0IGU9bi5ydW5zVGFibGVIZWFkZXJzLmZpbHRlcigoe25hbWU6aX0pPT5pIT09dC5uYW1lKTtyZXR1cm57Li4ubixydW5zVGFibGVIZWFkZXJzOmV9fSkseWUoSzYsKG4se25ld0hlYWRlck9yZGVyOnR9KT0+KHsuLi5uLHJ1bnNUYWJsZUhlYWRlcnM6dH0pKSx5ZShWUywobix7c29ydGluZ0luZm86dH0pPT4oey4uLm4sc29ydGluZ0luZm86dH0pKSksRTBlPWJoKFMwZSx3MGUpO2Z1bmN0aW9uIG83KG4sdCl7cmV0dXJuIGNoKHtkYXRhOkMwZSx1aTpFMGV9KShuLHQpfWZ1bmN0aW9uIFQwZSgpe3JldHVyblt7YWN0aW9uQ3JlYXRvcjpxZixhbGVydEZyb21BY3Rpb246KCk9Pih7bG9jYWxpemVkTWVzc2FnZToiRmFpbGVkIHRvIGZldGNoIHJ1bnMifSl9XX12YXIgRTE9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W3dyLmZvckZlYXR1cmUoInJ1bnMiLG83KSx0by5mb3JGZWF0dXJlKFtyN10pLCQ2LENjLnJlZ2lzdGVyQWxlcnRBY3Rpb25zKFQwZSksUlNdfSksbn0pKCksdmQ9KCgpPT4oZnVuY3Rpb24obil7bi5SVU5TX0NIQU5HRUQ9ImV4cGVyaW1lbnRhbC5SdW5zQ2hhbmdlZCIsbi5HRVRfUlVOUz0iZXhwZXJpbWVudGFsLkdldFJ1bnMiLG4uR0VUX1VSTF9EQVRBPSJleHBlcmltZW50YWwuR2V0VVJMUGx1Z2luRGF0YSIsbi5EQVRBX1JFTE9BREVEPSJleHBlcmltZW50YWwuRGF0YVJlbG9hZGVkIn0odmR8fCh2ZD17fSkpLHZkKSkoKSxzNz1uZXcgV2Vha01hcCwkZj1uZXcgU2V0LHIyPW5ldyBNYXAsRDE9bmV3IE1hcDtmdW5jdGlvbiBsNyhuLHQpe3JldHVybiBlPT57bGV0IGk9RDEuZ2V0KHQpLHI9czcuZ2V0KGkpfHxudWxsO3JldHVybiBuKHIsZSl9fXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixuPT57aWYoImV4cGVyaW1lbnRhbC5ib290c3RyYXAiIT09bi5kYXRhKXJldHVybjtsZXQgdD1uLnBvcnRzWzBdO2lmKCF0KXJldHVybjtsZXQgZT1uLnNvdXJjZT9uLnNvdXJjZS5mcmFtZUVsZW1lbnQ6bnVsbDshZXx8ZnVuY3Rpb24obix0KXtsZXQgZT1uZXcgY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5wb3J0PXQsdGhpcy5pZD0wLHRoaXMucmVzcG9uc2VXYWl0cz1uZXcgTWFwLHRoaXMubGlzdGVuZXJzPW5ldyBNYXAsdGhpcy5wb3J0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGU9PnRoaXMub25NZXNzYWdlKGUpKX1saXN0ZW4odCxlKXt0aGlzLmxpc3RlbmVycy5zZXQodCxlKX11bmxpc3Rlbih0KXt0aGlzLmxpc3RlbmVycy5kZWxldGUodCl9YXN5bmMgb25NZXNzYWdlKHQpe2xldCBlPUpTT04ucGFyc2UodC5kYXRhKSxpPWUudHlwZSxyPWUuaWQsbz1lLnBheWxvYWQsYT1lLmVycm9yO2lmKGUuaXNSZXBseSl7aWYoIXRoaXMucmVzcG9uc2VXYWl0cy5oYXMocikpcmV0dXJuO2xldHtyZXNvbHZlOnUscmVqZWN0OnB9PXRoaXMucmVzcG9uc2VXYWl0cy5nZXQocik7cmV0dXJuIHRoaXMucmVzcG9uc2VXYWl0cy5kZWxldGUociksdm9pZChhP3AobmV3IEVycm9yKGEpKTp1KG8pKX1sZXQgbD1udWxsLGM9bnVsbDtpZih0aGlzLmxpc3RlbmVycy5oYXMoaSkpe2xldCB1PXRoaXMubGlzdGVuZXJzLmdldChpKTt0cnl7bD1hd2FpdCB1KG8pfWNhdGNoKHApe2M9cH19dGhpcy5wb3N0TWVzc2FnZSh7dHlwZTppLGlkOnIscGF5bG9hZDpsLGVycm9yOmMsaXNSZXBseTohMH0pfXBvc3RNZXNzYWdlKHQpe3RoaXMucG9ydC5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeSh0KSl9c2VuZE1lc3NhZ2UodCxlKXtsZXQgaT10aGlzLmlkKys7cmV0dXJuIHRoaXMucG9zdE1lc3NhZ2Uoe3R5cGU6dCxpZDppLHBheWxvYWQ6ZSxlcnJvcjpudWxsLGlzUmVwbHk6ITF9KSxuZXcgUHJvbWlzZSgobyxhKT0+e3RoaXMucmVzcG9uc2VXYWl0cy5zZXQoaSx7cmVzb2x2ZTpvLHJlamVjdDphfSl9KX19KG4pOyRmLmFkZChlKSxEMS5zZXQoZSx0KSxuLnN0YXJ0KCk7Zm9yKGxldFtpLHJdb2YgcjIpe2xldCBvPWw3KHIsZSk7ZS5saXN0ZW4oaSxvKX19KHQsZSl9KTt2YXIgYTIsZWc9KCgpPT57Y2xhc3Mgbnticm9hZGNhc3QoZSxpKXtyZXR1cm4gZnVuY3Rpb24obix0KXtmb3IobGV0IGkgb2YgJGYpRDEuZ2V0KGkpLmlzQ29ubmVjdGVkfHwoJGYuZGVsZXRlKGkpLEQxLmRlbGV0ZShpKSk7bGV0IGU9Wy4uLiRmXS5tYXAoaT0+aS5zZW5kTWVzc2FnZShuLHQpKTtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9KGUsaSl9bGlzdGVuKGUsaSl7IWZ1bmN0aW9uKG4sdCl7cjIuc2V0KG4sdCk7Zm9yKGxldCBlIG9mICRmKXtsZXQgaT1sNyh0LGUpO2UubGlzdGVuKG4saSl9fShlLGkpfXVubGlzdGVuKGUpeyFmdW5jdGlvbihuKXtyMi5kZWxldGUobik7Zm9yKGxldCB0IG9mICRmKXQudW5saXN0ZW4obil9KGUpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWN9KSxufSkoKSxJMT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSl7dGhpcy5pcGM9ZSx0aGlzLnN0b3JlPWl9aW5pdCgpe3RoaXMuaXBjLmxpc3Rlbih2ZC5HRVRfVVJMX0RBVEEsZT0+e2lmKCFlKXJldHVybjtsZXQgaT1gcC4ke2UucGx1Z2luTmFtZX0uYCxyPXt9LG89d2luZG93LnRlbnNvcmJvYXJkLnRmX3N0b3JhZ2UuZ2V0VXJsSGFzaERpY3QoKTtmb3IobGV0IGEgaW4gbylhLnN0YXJ0c1dpdGgoaSkmJihyW2Euc3Vic3RyaW5nKGkubGVuZ3RoKV09b1thXSk7cmV0dXJuIHJ9KSx0aGlzLnN0b3JlLnNlbGVjdChqZikucGlwZShPZShlPT5udWxsIT09ZSkscmkoKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5pcGMuYnJvYWRjYXN0KHZkLkRBVEFfUkVMT0FERUQsdm9pZCAwKX0pfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKGVnKSxPKEllKSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCksQTE9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkpe3RoaXMuaXBjPWUsdGhpcy5zdG9yZT1pfWluaXQoKXtsZXQgZT10aGlzLnN0b3JlLnNlbGVjdChvcikucGlwZSh4bihpPT5pP0luKGkubWFwKG89PnRoaXMuc3RvcmUuc2VsZWN0KEl1LHtleHBlcmltZW50SWQ6b30pKSkucGlwZShxKG89Pm8uZmxhdCgpKSxyaSgobyxhKT0+by5sZW5ndGg9PT1hLmxlbmd0aCYmby5ldmVyeSgocyxsKT0+YVtsXS5pZD09PXMuaWQpKSxxKG89Pm8ubWFwKCh7bmFtZTphfSk9PmEpKSk6JHQoW10pKSk7ZS5zdWJzY3JpYmUoaT0+e3RoaXMuaXBjLmJyb2FkY2FzdCh2ZC5SVU5TX0NIQU5HRUQsaSl9KSx0aGlzLmlwYy5saXN0ZW4odmQuR0VUX1JVTlMsKCk9PmUucGlwZShMdCgxKSkudG9Qcm9taXNlKCkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKGVnKSxPKEllKSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCksUjE9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkpe2kuaW5pdCgpLGUuaW5pdCgpfXJlZ2lzdGVyUGx1Z2luSWZyYW1lKGUsaSl7IWZ1bmN0aW9uKG4sdCl7czcuc2V0KG4se3BsdWdpbk5hbWU6dH0pfShlLGkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKEExKSxPKEkxKSl9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe3Byb3ZpZGVyczpbZWcsSTEsQTFdLGltcG9ydHM6W05mLFFzLEUxXX0pLG59KSgpLHRnPWZlKCJbQWxlcnRdIEFsZXJ0IFJlcG9ydGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksdTc9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscil7dGhpcy5hY3Rpb25zJD1lLHRoaXMuc3RvcmU9aSx0aGlzLmFsZXJ0QWN0aW9uTW9kdWxlPXIsdGhpcy5yZXBvcnRSZWdpc3RlcmVkQWN0aW9uQWxlcnRzJD1fcigoKT0+dGhpcy5hY3Rpb25zJC5waXBlKER0KG89PntsZXQgYT10aGlzLmFsZXJ0QWN0aW9uTW9kdWxlLmdldEFsZXJ0RnJvbUFjdGlvbihvKTthJiZ0aGlzLnN0b3JlLmRpc3BhdGNoKHRnKGEpKX0pKSx7ZGlzcGF0Y2g6ITF9KX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhFbyksTyhJZSksTyhDYykpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLEwwZT1ncih7bGF0ZXN0QWxlcnQ6bnVsbH0seWUodGcsKG4se2xvY2FsaXplZE1lc3NhZ2U6dCxmb2xsb3d1cEFjdGlvbjplfSk9PntsZXQgaT17bG9jYWxpemVkTWVzc2FnZTp0LGNyZWF0ZWQ6RGF0ZS5ub3coKX07cmV0dXJuIGUmJihpLmZvbGxvd3VwQWN0aW9uPWUpLHsuLi5uLGxhdGVzdEFsZXJ0Oml9fSkpO2Z1bmN0aW9uIHA3KG4sdCl7cmV0dXJuIEwwZShuLHQpfXRyeXthMj10eXBlb2YgSW50bDwidSImJkludGwudjhCcmVha0l0ZXJhdG9yfWNhdGNoe2EyPSExfXZhciBuZyxrdixQMSx3aCxvMixWbj0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuX3BsYXRmb3JtSWQ9ZSx0aGlzLmlzQnJvd3Nlcj10aGlzLl9wbGF0Zm9ybUlkP193KHRoaXMuX3BsYXRmb3JtSWQpOiJvYmplY3QiPT10eXBlb2YgZG9jdW1lbnQmJiEhZG9jdW1lbnQsdGhpcy5FREdFPXRoaXMuaXNCcm93c2VyJiYvKGVkZ2UpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx0aGlzLlRSSURFTlQ9dGhpcy5pc0Jyb3dzZXImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksdGhpcy5CTElOSz10aGlzLmlzQnJvd3NlciYmISghd2luZG93LmNocm9tZSYmIWEyKSYmdHlwZW9mIENTUzwidSImJiF0aGlzLkVER0UmJiF0aGlzLlRSSURFTlQsdGhpcy5XRUJLSVQ9dGhpcy5pc0Jyb3dzZXImJi9BcHBsZVdlYktpdC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJiF0aGlzLkJMSU5LJiYhdGhpcy5FREdFJiYhdGhpcy5UUklERU5ULHRoaXMuSU9TPXRoaXMuaXNCcm93c2VyJiYvaVBhZHxpUGhvbmV8aVBvZC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmISgiTVNTdHJlYW0iaW4gd2luZG93KSx0aGlzLkZJUkVGT1g9dGhpcy5pc0Jyb3dzZXImJi8oZmlyZWZveHxtaW5lZmllbGQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx0aGlzLkFORFJPSUQ9dGhpcy5pc0Jyb3dzZXImJi9hbmRyb2lkL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmIXRoaXMuVFJJREVOVCx0aGlzLlNBRkFSST10aGlzLmlzQnJvd3NlciYmL3NhZmFyaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJnRoaXMuV0VCS0lUfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKGZjKSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCksaDc9WyJjb2xvciIsImJ1dHRvbiIsImNoZWNrYm94IiwiZGF0ZSIsImRhdGV0aW1lLWxvY2FsIiwiZW1haWwiLCJmaWxlIiwiaGlkZGVuIiwiaW1hZ2UiLCJtb250aCIsIm51bWJlciIsInBhc3N3b3JkIiwicmFkaW8iLCJyYW5nZSIsInJlc2V0Iiwic2VhcmNoIiwic3VibWl0IiwidGVsIiwidGV4dCIsInRpbWUiLCJ1cmwiLCJ3ZWVrIl07ZnVuY3Rpb24gczIoKXtpZihuZylyZXR1cm4gbmc7aWYoIm9iamVjdCIhPXR5cGVvZiBkb2N1bWVudHx8IWRvY3VtZW50KXJldHVybiBuZz1uZXcgU2V0KGg3KTtsZXQgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3JldHVybiBuZz1uZXcgU2V0KGg3LmZpbHRlcih0PT4obi5zZXRBdHRyaWJ1dGUoInR5cGUiLHQpLG4udHlwZT09PXQpKSl9ZnVuY3Rpb24gemEobil7cmV0dXJuIGZ1bmN0aW9uKCl7aWYobnVsbD09a3YmJnR5cGVvZiB3aW5kb3c8InUiKXRyeXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6KCk9Pmt2PSEwfSkpfWZpbmFsbHl7a3Y9a3Z8fCExfXJldHVybiBrdn0oKT9uOiEhbi5jYXB0dXJlfWZ1bmN0aW9uIGsxKCl7aWYobnVsbD09d2gpe2lmKCJvYmplY3QiIT10eXBlb2YgZG9jdW1lbnR8fCFkb2N1bWVudHx8ImZ1bmN0aW9uIiE9dHlwZW9mIEVsZW1lbnR8fCFFbGVtZW50KXJldHVybiB3aD0hMTtpZigic2Nyb2xsQmVoYXZpb3IiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlKXdoPSEwO2Vsc2V7bGV0IG49RWxlbWVudC5wcm90b3R5cGUuc2Nyb2xsVG87d2g9ISFuJiYhL1x7XHMqXFtuYXRpdmUgY29kZVxdXHMqXH0vLnRlc3Qobi50b1N0cmluZygpKX19cmV0dXJuIHdofWZ1bmN0aW9uIGlnKCl7aWYoIm9iamVjdCIhPXR5cGVvZiBkb2N1bWVudHx8IWRvY3VtZW50KXJldHVybiAwO2lmKG51bGw9PVAxKXtsZXQgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0PW4uc3R5bGU7bi5kaXI9InJ0bCIsdC53aWR0aD0iMXB4Iix0Lm92ZXJmbG93PSJhdXRvIix0LnZpc2liaWxpdHk9ImhpZGRlbiIsdC5wb2ludGVyRXZlbnRzPSJub25lIix0LnBvc2l0aW9uPSJhYnNvbHV0ZSI7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksaT1lLnN0eWxlO2kud2lkdGg9IjJweCIsaS5oZWlnaHQ9IjFweCIsbi5hcHBlbmRDaGlsZChlKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pLFAxPTAsMD09PW4uc2Nyb2xsTGVmdCYmKG4uc2Nyb2xsTGVmdD0xLFAxPTA9PT1uLnNjcm9sbExlZnQ/MToyKSxuLnJlbW92ZSgpfXJldHVybiBQMX1mdW5jdGlvbiBPdigpe2xldCBuPXR5cGVvZiBkb2N1bWVudDwidSImJmRvY3VtZW50P2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ6bnVsbDtmb3IoO24mJm4uc2hhZG93Um9vdDspe2xldCB0PW4uc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50O2lmKHQ9PT1uKWJyZWFrO249dH1yZXR1cm4gbn1mdW5jdGlvbiBicyhuKXtyZXR1cm4gbi5jb21wb3NlZFBhdGg/bi5jb21wb3NlZFBhdGgoKVswXTpuLnRhcmdldH1mdW5jdGlvbiBGdigpe3JldHVybiB0eXBlb2YgX19rYXJtYV9fPCJ1IiYmISFfX2thcm1hX198fHR5cGVvZiBqYXNtaW5lPCJ1IiYmISFqYXNtaW5lfHx0eXBlb2YgamVzdDwidSImJiEhamVzdHx8dHlwZW9mIE1vY2hhPCJ1IiYmISFNb2NoYX1mdW5jdGlvbiBPcihuLC4uLnQpe3JldHVybiB0Lmxlbmd0aD90LnNvbWUoZT0+bltlXSk6bi5hbHRLZXl8fG4uc2hpZnRLZXl8fG4uY3RybEtleXx8bi5tZXRhS2V5fWZ1bmN0aW9uIHZ0KG4pe3JldHVybiBudWxsIT1uJiYiZmFsc2UiIT1gJHtufWB9ZnVuY3Rpb24gbWkobix0PTApe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4haXNOYU4ocGFyc2VGbG9hdChuKSkmJiFpc05hTihOdW1iZXIobikpfShuKT9OdW1iZXIobik6dH1mdW5jdGlvbiByZyhuKXtyZXR1cm4gQXJyYXkuaXNBcnJheShuKT9uOltuXX1mdW5jdGlvbiBxcihuKXtyZXR1cm4gbnVsbD09bj8iIjoic3RyaW5nIj09dHlwZW9mIG4/bjpgJHtufXB4YH1mdW5jdGlvbiBVYShuKXtyZXR1cm4gbiBpbnN0YW5jZW9mIHhlP24ubmF0aXZlRWxlbWVudDpufXZhciBhZyxnNz0oKCk9PntjbGFzcyBue2NyZWF0ZShlKXtyZXR1cm4gdHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXI+InUiP251bGw6bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLG59KSgpLHowZT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuX211dGF0aW9uT2JzZXJ2ZXJGYWN0b3J5PWUsdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cz1uZXcgTWFwfW5nT25EZXN0cm95KCl7dGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5mb3JFYWNoKChlLGkpPT50aGlzLl9jbGVhbnVwT2JzZXJ2ZXIoaSkpfW9ic2VydmUoZSl7bGV0IGk9VWEoZSk7cmV0dXJuIG5ldyBLdChyPT57bGV0IGE9dGhpcy5fb2JzZXJ2ZUVsZW1lbnQoaSkuc3Vic2NyaWJlKHIpO3JldHVybigpPT57YS51bnN1YnNjcmliZSgpLHRoaXMuX3Vub2JzZXJ2ZUVsZW1lbnQoaSl9fSl9X29ic2VydmVFbGVtZW50KGUpe2lmKHRoaXMuX29ic2VydmVkRWxlbWVudHMuaGFzKGUpKXRoaXMuX29ic2VydmVkRWxlbWVudHMuZ2V0KGUpLmNvdW50Kys7ZWxzZXtsZXQgaT1uZXcgRWUscj10aGlzLl9tdXRhdGlvbk9ic2VydmVyRmFjdG9yeS5jcmVhdGUobz0+aS5uZXh0KG8pKTtyJiZyLm9ic2VydmUoZSx7Y2hhcmFjdGVyRGF0YTohMCxjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pLHRoaXMuX29ic2VydmVkRWxlbWVudHMuc2V0KGUse29ic2VydmVyOnIsc3RyZWFtOmksY291bnQ6MX0pfXJldHVybiB0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmdldChlKS5zdHJlYW19X3Vub2JzZXJ2ZUVsZW1lbnQoZSl7dGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5oYXMoZSkmJih0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmdldChlKS5jb3VudC0tLHRoaXMuX29ic2VydmVkRWxlbWVudHMuZ2V0KGUpLmNvdW50fHx0aGlzLl9jbGVhbnVwT2JzZXJ2ZXIoZSkpfV9jbGVhbnVwT2JzZXJ2ZXIoZSl7aWYodGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5oYXMoZSkpe2xldHtvYnNlcnZlcjppLHN0cmVhbTpyfT10aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmdldChlKTtpJiZpLmRpc2Nvbm5lY3QoKSxyLmNvbXBsZXRlKCksdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5kZWxldGUoZSl9fX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKGc3KSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCksTzE9KCgpPT57Y2xhc3MgbntnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZWR9c2V0IGRpc2FibGVkKGUpe3RoaXMuX2Rpc2FibGVkPXZ0KGUpLHRoaXMuX2Rpc2FibGVkP3RoaXMuX3Vuc3Vic2NyaWJlKCk6dGhpcy5fc3Vic2NyaWJlKCl9Z2V0IGRlYm91bmNlKCl7cmV0dXJuIHRoaXMuX2RlYm91bmNlfXNldCBkZWJvdW5jZShlKXt0aGlzLl9kZWJvdW5jZT1taShlKSx0aGlzLl9zdWJzY3JpYmUoKX1jb25zdHJ1Y3RvcihlLGkscil7dGhpcy5fY29udGVudE9ic2VydmVyPWUsdGhpcy5fZWxlbWVudFJlZj1pLHRoaXMuX25nWm9uZT1yLHRoaXMuZXZlbnQ9bmV3IEYsdGhpcy5fZGlzYWJsZWQ9ITEsdGhpcy5fY3VycmVudFN1YnNjcmlwdGlvbj1udWxsfW5nQWZ0ZXJDb250ZW50SW5pdCgpeyF0aGlzLl9jdXJyZW50U3Vic2NyaXB0aW9uJiYhdGhpcy5kaXNhYmxlZCYmdGhpcy5fc3Vic2NyaWJlKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl91bnN1YnNjcmliZSgpfV9zdWJzY3JpYmUoKXt0aGlzLl91bnN1YnNjcmliZSgpO2xldCBlPXRoaXMuX2NvbnRlbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYpO3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuX2N1cnJlbnRTdWJzY3JpcHRpb249KHRoaXMuZGVib3VuY2U/ZS5waXBlKENyKHRoaXMuZGVib3VuY2UpKTplKS5zdWJzY3JpYmUodGhpcy5ldmVudCl9KX1fdW5zdWJzY3JpYmUoKXt0aGlzLl9jdXJyZW50U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHowZSksQyh4ZSksQyhvdCkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJjZGtPYnNlcnZlQ29udGVudCIsIiJdXSxpbnB1dHM6e2Rpc2FibGVkOlsiY2RrT2JzZXJ2ZUNvbnRlbnREaXNhYmxlZCIsImRpc2FibGVkIl0sZGVib3VuY2U6ImRlYm91bmNlIn0sb3V0cHV0czp7ZXZlbnQ6ImNka09ic2VydmVDb250ZW50In0sZXhwb3J0QXM6WyJjZGtPYnNlcnZlQ29udGVudCJdfSksbn0pKCksb2c9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe3Byb3ZpZGVyczpbZzddfSksbn0pKCksYjc9bmV3IFNldCxVMGU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLl9wbGF0Zm9ybT1lLHRoaXMuX21hdGNoTWVkaWE9dGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyJiZ3aW5kb3cubWF0Y2hNZWRpYT93aW5kb3cubWF0Y2hNZWRpYS5iaW5kKHdpbmRvdyk6RzBlfW1hdGNoTWVkaWEoZSl7cmV0dXJuKHRoaXMuX3BsYXRmb3JtLldFQktJVHx8dGhpcy5fcGxhdGZvcm0uQkxJTkspJiZmdW5jdGlvbihuKXtpZighYjcuaGFzKG4pKXRyeXthZ3x8KChhZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2NzcyIpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYWcpKSxhZy5zaGVldCYmKGFnLnNoZWV0Lmluc2VydFJ1bGUoYEBtZWRpYSAke259IHtib2R5eyB9fWAsMCksYjcuYWRkKG4pKX1jYXRjaCh0KXtjb25zb2xlLmVycm9yKHQpfX0oZSksdGhpcy5fbWF0Y2hNZWRpYShlKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhWbikpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLG59KSgpO2Z1bmN0aW9uIEcwZShuKXtyZXR1cm57bWF0Y2hlczoiYWxsIj09PW58fCIiPT09bixtZWRpYTpuLGFkZExpc3RlbmVyOigpPT57fSxyZW1vdmVMaXN0ZW5lcjooKT0+e319fXZhciBOdj0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSl7dGhpcy5fbWVkaWFNYXRjaGVyPWUsdGhpcy5fem9uZT1pLHRoaXMuX3F1ZXJpZXM9bmV3IE1hcCx0aGlzLl9kZXN0cm95U3ViamVjdD1uZXcgRWV9bmdPbkRlc3Ryb3koKXt0aGlzLl9kZXN0cm95U3ViamVjdC5uZXh0KCksdGhpcy5fZGVzdHJveVN1YmplY3QuY29tcGxldGUoKX1pc01hdGNoZWQoZSl7cmV0dXJuIHY3KHJnKGUpKS5zb21lKHI9PnRoaXMuX3JlZ2lzdGVyUXVlcnkocikubXFsLm1hdGNoZXMpfW9ic2VydmUoZSl7bGV0IG89SW4odjcocmcoZSkpLm1hcChhPT50aGlzLl9yZWdpc3RlclF1ZXJ5KGEpLm9ic2VydmFibGUpKTtyZXR1cm4gbz1LZChvLnBpcGUoTHQoMSkpLG8ucGlwZShvcygxKSxDcigwKSkpLG8ucGlwZShxKGE9PntsZXQgcz17bWF0Y2hlczohMSxicmVha3BvaW50czp7fX07cmV0dXJuIGEuZm9yRWFjaCgoe21hdGNoZXM6bCxxdWVyeTpjfSk9PntzLm1hdGNoZXM9cy5tYXRjaGVzfHxsLHMuYnJlYWtwb2ludHNbY109bH0pLHN9KSl9X3JlZ2lzdGVyUXVlcnkoZSl7aWYodGhpcy5fcXVlcmllcy5oYXMoZSkpcmV0dXJuIHRoaXMuX3F1ZXJpZXMuZ2V0KGUpO2xldCBpPXRoaXMuX21lZGlhTWF0Y2hlci5tYXRjaE1lZGlhKGUpLG89e29ic2VydmFibGU6bmV3IEt0KGE9PntsZXQgcz1sPT50aGlzLl96b25lLnJ1bigoKT0+YS5uZXh0KGwpKTtyZXR1cm4gaS5hZGRMaXN0ZW5lcihzKSwoKT0+e2kucmVtb3ZlTGlzdGVuZXIocyl9fSkucGlwZShrbihpKSxxKCh7bWF0Y2hlczphfSk9Pih7cXVlcnk6ZSxtYXRjaGVzOmF9KSksaXQodGhpcy5fZGVzdHJveVN1YmplY3QpKSxtcWw6aX07cmV0dXJuIHRoaXMuX3F1ZXJpZXMuc2V0KGUsbyksb319cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhVMGUpLE8ob3QpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxufSkoKTtmdW5jdGlvbiB2NyhuKXtyZXR1cm4gbi5tYXAodD0+dC5zcGxpdCgiLCIpKS5yZWR1Y2UoKHQsZSk9PnQuY29uY2F0KGUpKS5tYXAodD0+dC50cmltKCkpfWZ1bmN0aW9uIEwxKG4sdCl7cmV0dXJuKG4uZ2V0QXR0cmlidXRlKHQpfHwiIikubWF0Y2goL1xTKy9nKXx8W119dmFyIEU3PSJjZGstZGVzY3JpYmVkYnktbWVzc2FnZSIsRjE9ImNkay1kZXNjcmliZWRieS1ob3N0IixkMj0wLFQ3PSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpKXt0aGlzLl9wbGF0Zm9ybT1pLHRoaXMuX21lc3NhZ2VSZWdpc3RyeT1uZXcgTWFwLHRoaXMuX21lc3NhZ2VzQ29udGFpbmVyPW51bGwsdGhpcy5faWQ9IiIrZDIrKyx0aGlzLl9kb2N1bWVudD1lLHRoaXMuX2lkPSRuKCRwKSsiLSIrZDIrK31kZXNjcmliZShlLGkscil7aWYoIXRoaXMuX2NhbkJlRGVzY3JpYmVkKGUsaSkpcmV0dXJuO2xldCBvPWwyKGkscik7InN0cmluZyIhPXR5cGVvZiBpPyh4NyhpLHRoaXMuX2lkKSx0aGlzLl9tZXNzYWdlUmVnaXN0cnkuc2V0KG8se21lc3NhZ2VFbGVtZW50OmkscmVmZXJlbmNlQ291bnQ6MH0pKTp0aGlzLl9tZXNzYWdlUmVnaXN0cnkuaGFzKG8pfHx0aGlzLl9jcmVhdGVNZXNzYWdlRWxlbWVudChpLHIpLHRoaXMuX2lzRWxlbWVudERlc2NyaWJlZEJ5TWVzc2FnZShlLG8pfHx0aGlzLl9hZGRNZXNzYWdlUmVmZXJlbmNlKGUsbyl9cmVtb3ZlRGVzY3JpcHRpb24oZSxpLHIpe2lmKCFpfHwhdGhpcy5faXNFbGVtZW50Tm9kZShlKSlyZXR1cm47bGV0IG89bDIoaSxyKTtpZih0aGlzLl9pc0VsZW1lbnREZXNjcmliZWRCeU1lc3NhZ2UoZSxvKSYmdGhpcy5fcmVtb3ZlTWVzc2FnZVJlZmVyZW5jZShlLG8pLCJzdHJpbmciPT10eXBlb2YgaSl7bGV0IGE9dGhpcy5fbWVzc2FnZVJlZ2lzdHJ5LmdldChvKTthJiYwPT09YS5yZWZlcmVuY2VDb3VudCYmdGhpcy5fZGVsZXRlTWVzc2FnZUVsZW1lbnQobyl9MD09PXRoaXMuX21lc3NhZ2VzQ29udGFpbmVyPy5jaGlsZE5vZGVzLmxlbmd0aCYmKHRoaXMuX21lc3NhZ2VzQ29udGFpbmVyLnJlbW92ZSgpLHRoaXMuX21lc3NhZ2VzQ29udGFpbmVyPW51bGwpfW5nT25EZXN0cm95KCl7bGV0IGU9dGhpcy5fZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgWyR7RjF9PSIke3RoaXMuX2lkfSJdYCk7Zm9yKGxldCBpPTA7aTxlLmxlbmd0aDtpKyspdGhpcy5fcmVtb3ZlQ2RrRGVzY3JpYmVkQnlSZWZlcmVuY2VJZHMoZVtpXSksZVtpXS5yZW1vdmVBdHRyaWJ1dGUoRjEpO3RoaXMuX21lc3NhZ2VzQ29udGFpbmVyPy5yZW1vdmUoKSx0aGlzLl9tZXNzYWdlc0NvbnRhaW5lcj1udWxsLHRoaXMuX21lc3NhZ2VSZWdpc3RyeS5jbGVhcigpfV9jcmVhdGVNZXNzYWdlRWxlbWVudChlLGkpe2xldCByPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3g3KHIsdGhpcy5faWQpLHIudGV4dENvbnRlbnQ9ZSxpJiZyLnNldEF0dHJpYnV0ZSgicm9sZSIsaSksdGhpcy5fY3JlYXRlTWVzc2FnZXNDb250YWluZXIoKSx0aGlzLl9tZXNzYWdlc0NvbnRhaW5lci5hcHBlbmRDaGlsZChyKSx0aGlzLl9tZXNzYWdlUmVnaXN0cnkuc2V0KGwyKGUsaSkse21lc3NhZ2VFbGVtZW50OnIscmVmZXJlbmNlQ291bnQ6MH0pfV9kZWxldGVNZXNzYWdlRWxlbWVudChlKXt0aGlzLl9tZXNzYWdlUmVnaXN0cnkuZ2V0KGUpPy5tZXNzYWdlRWxlbWVudD8ucmVtb3ZlKCksdGhpcy5fbWVzc2FnZVJlZ2lzdHJ5LmRlbGV0ZShlKX1fY3JlYXRlTWVzc2FnZXNDb250YWluZXIoKXtpZih0aGlzLl9tZXNzYWdlc0NvbnRhaW5lcilyZXR1cm47bGV0IGU9ImNkay1kZXNjcmliZWRieS1tZXNzYWdlLWNvbnRhaW5lciIsaT10aGlzLl9kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGAuJHtlfVtwbGF0Zm9ybT0ic2VydmVyIl1gKTtmb3IobGV0IG89MDtvPGkubGVuZ3RoO28rKylpW29dLnJlbW92ZSgpO2xldCByPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3Iuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIixyLmNsYXNzTGlzdC5hZGQoZSksci5jbGFzc0xpc3QuYWRkKCJjZGstdmlzdWFsbHktaGlkZGVuIiksdGhpcy5fcGxhdGZvcm0mJiF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJnIuc2V0QXR0cmlidXRlKCJwbGF0Zm9ybSIsInNlcnZlciIpLHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQociksdGhpcy5fbWVzc2FnZXNDb250YWluZXI9cn1fcmVtb3ZlQ2RrRGVzY3JpYmVkQnlSZWZlcmVuY2VJZHMoZSl7bGV0IGk9TDEoZSwiYXJpYS1kZXNjcmliZWRieSIpLmZpbHRlcihyPT4wIT1yLmluZGV4T2YoRTcpKTtlLnNldEF0dHJpYnV0ZSgiYXJpYS1kZXNjcmliZWRieSIsaS5qb2luKCIgIikpfV9hZGRNZXNzYWdlUmVmZXJlbmNlKGUsaSl7bGV0IHI9dGhpcy5fbWVzc2FnZVJlZ2lzdHJ5LmdldChpKTsoZnVuY3Rpb24obix0LGUpe2xldCBpPUwxKG4sdCk7aS5zb21lKHI9PnIudHJpbSgpPT1lLnRyaW0oKSl8fChpLnB1c2goZS50cmltKCkpLG4uc2V0QXR0cmlidXRlKHQsaS5qb2luKCIgIikpKX0pKGUsImFyaWEtZGVzY3JpYmVkYnkiLHIubWVzc2FnZUVsZW1lbnQuaWQpLGUuc2V0QXR0cmlidXRlKEYxLHRoaXMuX2lkKSxyLnJlZmVyZW5jZUNvdW50Kyt9X3JlbW92ZU1lc3NhZ2VSZWZlcmVuY2UoZSxpKXtsZXQgcj10aGlzLl9tZXNzYWdlUmVnaXN0cnkuZ2V0KGkpO3IucmVmZXJlbmNlQ291bnQtLSxmdW5jdGlvbihuLHQsZSl7bGV0IHI9TDEobix0KS5maWx0ZXIobz0+byE9ZS50cmltKCkpO3IubGVuZ3RoP24uc2V0QXR0cmlidXRlKHQsci5qb2luKCIgIikpOm4ucmVtb3ZlQXR0cmlidXRlKHQpfShlLCJhcmlhLWRlc2NyaWJlZGJ5IixyLm1lc3NhZ2VFbGVtZW50LmlkKSxlLnJlbW92ZUF0dHJpYnV0ZShGMSl9X2lzRWxlbWVudERlc2NyaWJlZEJ5TWVzc2FnZShlLGkpe2xldCByPUwxKGUsImFyaWEtZGVzY3JpYmVkYnkiKSxvPXRoaXMuX21lc3NhZ2VSZWdpc3RyeS5nZXQoaSksYT1vJiZvLm1lc3NhZ2VFbGVtZW50LmlkO3JldHVybiEhYSYmLTEhPXIuaW5kZXhPZihhKX1fY2FuQmVEZXNjcmliZWQoZSxpKXtpZighdGhpcy5faXNFbGVtZW50Tm9kZShlKSlyZXR1cm4hMTtpZihpJiYib2JqZWN0Ij09dHlwZW9mIGkpcmV0dXJuITA7bGV0IHI9bnVsbD09aT8iIjpgJHtpfWAudHJpbSgpLG89ZS5nZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiKTtyZXR1cm4hKCFyfHxvJiZvLnRyaW0oKT09PXIpfV9pc0VsZW1lbnROb2RlKGUpe3JldHVybiBlLm5vZGVUeXBlPT09dGhpcy5fZG9jdW1lbnQuRUxFTUVOVF9OT0RFfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKE50KSxPKFZuKSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCk7ZnVuY3Rpb24gbDIobix0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIG4/YCR7dHx8IiJ9LyR7bn1gOm59ZnVuY3Rpb24geDcobix0KXtuLmlkfHwobi5pZD1gJHtFN30tJHt0fS0ke2QyKyt9YCl9dmFyIEIxPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuX2l0ZW1zPXQsdGhpcy5fYWN0aXZlSXRlbUluZGV4PS0xLHRoaXMuX2FjdGl2ZUl0ZW09bnVsbCx0aGlzLl93cmFwPSExLHRoaXMuX2xldHRlcktleVN0cmVhbT1uZXcgRWUsdGhpcy5fdHlwZWFoZWFkU3Vic2NyaXB0aW9uPUVuLkVNUFRZLHRoaXMuX3ZlcnRpY2FsPSEwLHRoaXMuX2FsbG93ZWRNb2RpZmllcktleXM9W10sdGhpcy5faG9tZUFuZEVuZD0hMSx0aGlzLl9wYWdlVXBBbmREb3duPXtlbmFibGVkOiExLGRlbHRhOjEwfSx0aGlzLl9za2lwUHJlZGljYXRlRm49ZT0+ZS5kaXNhYmxlZCx0aGlzLl9wcmVzc2VkTGV0dGVycz1bXSx0aGlzLnRhYk91dD1uZXcgRWUsdGhpcy5jaGFuZ2U9bmV3IEVlLHQgaW5zdGFuY2VvZiBQYSYmKHRoaXMuX2l0ZW1DaGFuZ2VzU3Vic2NyaXB0aW9uPXQuY2hhbmdlcy5zdWJzY3JpYmUoZT0+e2lmKHRoaXMuX2FjdGl2ZUl0ZW0pe2xldCByPWUudG9BcnJheSgpLmluZGV4T2YodGhpcy5fYWN0aXZlSXRlbSk7cj4tMSYmciE9PXRoaXMuX2FjdGl2ZUl0ZW1JbmRleCYmKHRoaXMuX2FjdGl2ZUl0ZW1JbmRleD1yKX19KSl9c2tpcFByZWRpY2F0ZSh0KXtyZXR1cm4gdGhpcy5fc2tpcFByZWRpY2F0ZUZuPXQsdGhpc313aXRoV3JhcCh0PSEwKXtyZXR1cm4gdGhpcy5fd3JhcD10LHRoaXN9d2l0aFZlcnRpY2FsT3JpZW50YXRpb24odD0hMCl7cmV0dXJuIHRoaXMuX3ZlcnRpY2FsPXQsdGhpc313aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHQpe3JldHVybiB0aGlzLl9ob3Jpem9udGFsPXQsdGhpc313aXRoQWxsb3dlZE1vZGlmaWVyS2V5cyh0KXtyZXR1cm4gdGhpcy5fYWxsb3dlZE1vZGlmaWVyS2V5cz10LHRoaXN9d2l0aFR5cGVBaGVhZCh0PTIwMCl7cmV0dXJuIHRoaXMuX3R5cGVhaGVhZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3R5cGVhaGVhZFN1YnNjcmlwdGlvbj10aGlzLl9sZXR0ZXJLZXlTdHJlYW0ucGlwZShEdChlPT50aGlzLl9wcmVzc2VkTGV0dGVycy5wdXNoKGUpKSxDcih0KSxPZSgoKT0+dGhpcy5fcHJlc3NlZExldHRlcnMubGVuZ3RoPjApLHEoKCk9PnRoaXMuX3ByZXNzZWRMZXR0ZXJzLmpvaW4oIiIpKSkuc3Vic2NyaWJlKGU9PntsZXQgaT10aGlzLl9nZXRJdGVtc0FycmF5KCk7Zm9yKGxldCByPTE7cjxpLmxlbmd0aCsxO3IrKyl7bGV0IG89KHRoaXMuX2FjdGl2ZUl0ZW1JbmRleCtyKSVpLmxlbmd0aCxhPWlbb107aWYoIXRoaXMuX3NraXBQcmVkaWNhdGVGbihhKSYmMD09PWEuZ2V0TGFiZWwoKS50b1VwcGVyQ2FzZSgpLnRyaW0oKS5pbmRleE9mKGUpKXt0aGlzLnNldEFjdGl2ZUl0ZW0obyk7YnJlYWt9fXRoaXMuX3ByZXNzZWRMZXR0ZXJzPVtdfSksdGhpc31jYW5jZWxUeXBlYWhlYWQoKXtyZXR1cm4gdGhpcy5fcHJlc3NlZExldHRlcnM9W10sdGhpc313aXRoSG9tZUFuZEVuZCh0PSEwKXtyZXR1cm4gdGhpcy5faG9tZUFuZEVuZD10LHRoaXN9d2l0aFBhZ2VVcERvd24odD0hMCxlPTEwKXtyZXR1cm4gdGhpcy5fcGFnZVVwQW5kRG93bj17ZW5hYmxlZDp0LGRlbHRhOmV9LHRoaXN9c2V0QWN0aXZlSXRlbSh0KXtsZXQgZT10aGlzLl9hY3RpdmVJdGVtO3RoaXMudXBkYXRlQWN0aXZlSXRlbSh0KSx0aGlzLl9hY3RpdmVJdGVtIT09ZSYmdGhpcy5jaGFuZ2UubmV4dCh0aGlzLl9hY3RpdmVJdGVtSW5kZXgpfW9uS2V5ZG93bih0KXtsZXQgZT10LmtleUNvZGUscj1bImFsdEtleSIsImN0cmxLZXkiLCJtZXRhS2V5Iiwic2hpZnRLZXkiXS5ldmVyeShvPT4hdFtvXXx8dGhpcy5fYWxsb3dlZE1vZGlmaWVyS2V5cy5pbmRleE9mKG8pPi0xKTtzd2l0Y2goZSl7Y2FzZSA5OnJldHVybiB2b2lkIHRoaXMudGFiT3V0Lm5leHQoKTtjYXNlIDQwOmlmKHRoaXMuX3ZlcnRpY2FsJiZyKXt0aGlzLnNldE5leHRJdGVtQWN0aXZlKCk7YnJlYWt9cmV0dXJuO2Nhc2UgMzg6aWYodGhpcy5fdmVydGljYWwmJnIpe3RoaXMuc2V0UHJldmlvdXNJdGVtQWN0aXZlKCk7YnJlYWt9cmV0dXJuO2Nhc2UgMzk6aWYodGhpcy5faG9yaXpvbnRhbCYmcil7InJ0bCI9PT10aGlzLl9ob3Jpem9udGFsP3RoaXMuc2V0UHJldmlvdXNJdGVtQWN0aXZlKCk6dGhpcy5zZXROZXh0SXRlbUFjdGl2ZSgpO2JyZWFrfXJldHVybjtjYXNlIDM3OmlmKHRoaXMuX2hvcml6b250YWwmJnIpeyJydGwiPT09dGhpcy5faG9yaXpvbnRhbD90aGlzLnNldE5leHRJdGVtQWN0aXZlKCk6dGhpcy5zZXRQcmV2aW91c0l0ZW1BY3RpdmUoKTticmVha31yZXR1cm47Y2FzZSAzNjppZih0aGlzLl9ob21lQW5kRW5kJiZyKXt0aGlzLnNldEZpcnN0SXRlbUFjdGl2ZSgpO2JyZWFrfXJldHVybjtjYXNlIDM1OmlmKHRoaXMuX2hvbWVBbmRFbmQmJnIpe3RoaXMuc2V0TGFzdEl0ZW1BY3RpdmUoKTticmVha31yZXR1cm47Y2FzZSAzMzppZih0aGlzLl9wYWdlVXBBbmREb3duLmVuYWJsZWQmJnIpe2xldCBvPXRoaXMuX2FjdGl2ZUl0ZW1JbmRleC10aGlzLl9wYWdlVXBBbmREb3duLmRlbHRhO3RoaXMuX3NldEFjdGl2ZUl0ZW1CeUluZGV4KG8+MD9vOjAsMSk7YnJlYWt9cmV0dXJuO2Nhc2UgMzQ6aWYodGhpcy5fcGFnZVVwQW5kRG93bi5lbmFibGVkJiZyKXtsZXQgbz10aGlzLl9hY3RpdmVJdGVtSW5kZXgrdGhpcy5fcGFnZVVwQW5kRG93bi5kZWx0YSxhPXRoaXMuX2dldEl0ZW1zQXJyYXkoKS5sZW5ndGg7dGhpcy5fc2V0QWN0aXZlSXRlbUJ5SW5kZXgobzxhP286YS0xLC0xKTticmVha31yZXR1cm47ZGVmYXVsdDpyZXR1cm4gdm9pZCgocnx8T3IodCwic2hpZnRLZXkiKSkmJih0LmtleSYmMT09PXQua2V5Lmxlbmd0aD90aGlzLl9sZXR0ZXJLZXlTdHJlYW0ubmV4dCh0LmtleS50b0xvY2FsZVVwcGVyQ2FzZSgpKTooZT49NjUmJmU8PTkwfHxlPj00OCYmZTw9NTcpJiZ0aGlzLl9sZXR0ZXJLZXlTdHJlYW0ubmV4dChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKSkpfXRoaXMuX3ByZXNzZWRMZXR0ZXJzPVtdLHQucHJldmVudERlZmF1bHQoKX1nZXQgYWN0aXZlSXRlbUluZGV4KCl7cmV0dXJuIHRoaXMuX2FjdGl2ZUl0ZW1JbmRleH1nZXQgYWN0aXZlSXRlbSgpe3JldHVybiB0aGlzLl9hY3RpdmVJdGVtfWlzVHlwaW5nKCl7cmV0dXJuIHRoaXMuX3ByZXNzZWRMZXR0ZXJzLmxlbmd0aD4wfXNldEZpcnN0SXRlbUFjdGl2ZSgpe3RoaXMuX3NldEFjdGl2ZUl0ZW1CeUluZGV4KDAsMSl9c2V0TGFzdEl0ZW1BY3RpdmUoKXt0aGlzLl9zZXRBY3RpdmVJdGVtQnlJbmRleCh0aGlzLl9pdGVtcy5sZW5ndGgtMSwtMSl9c2V0TmV4dEl0ZW1BY3RpdmUoKXt0aGlzLl9hY3RpdmVJdGVtSW5kZXg8MD90aGlzLnNldEZpcnN0SXRlbUFjdGl2ZSgpOnRoaXMuX3NldEFjdGl2ZUl0ZW1CeURlbHRhKDEpfXNldFByZXZpb3VzSXRlbUFjdGl2ZSgpe3RoaXMuX2FjdGl2ZUl0ZW1JbmRleDwwJiZ0aGlzLl93cmFwP3RoaXMuc2V0TGFzdEl0ZW1BY3RpdmUoKTp0aGlzLl9zZXRBY3RpdmVJdGVtQnlEZWx0YSgtMSl9dXBkYXRlQWN0aXZlSXRlbSh0KXtsZXQgZT10aGlzLl9nZXRJdGVtc0FycmF5KCksaT0ibnVtYmVyIj09dHlwZW9mIHQ/dDplLmluZGV4T2YodCk7dGhpcy5fYWN0aXZlSXRlbT1lW2ldPz9udWxsLHRoaXMuX2FjdGl2ZUl0ZW1JbmRleD1pfWRlc3Ryb3koKXt0aGlzLl90eXBlYWhlYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9pdGVtQ2hhbmdlc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKSx0aGlzLl9sZXR0ZXJLZXlTdHJlYW0uY29tcGxldGUoKSx0aGlzLnRhYk91dC5jb21wbGV0ZSgpLHRoaXMuY2hhbmdlLmNvbXBsZXRlKCksdGhpcy5fcHJlc3NlZExldHRlcnM9W119X3NldEFjdGl2ZUl0ZW1CeURlbHRhKHQpe3RoaXMuX3dyYXA/dGhpcy5fc2V0QWN0aXZlSW5XcmFwTW9kZSh0KTp0aGlzLl9zZXRBY3RpdmVJbkRlZmF1bHRNb2RlKHQpfV9zZXRBY3RpdmVJbldyYXBNb2RlKHQpe2xldCBlPXRoaXMuX2dldEl0ZW1zQXJyYXkoKTtmb3IobGV0IGk9MTtpPD1lLmxlbmd0aDtpKyspe2xldCByPSh0aGlzLl9hY3RpdmVJdGVtSW5kZXgrdCppK2UubGVuZ3RoKSVlLmxlbmd0aDtpZighdGhpcy5fc2tpcFByZWRpY2F0ZUZuKGVbcl0pKXJldHVybiB2b2lkIHRoaXMuc2V0QWN0aXZlSXRlbShyKX19X3NldEFjdGl2ZUluRGVmYXVsdE1vZGUodCl7dGhpcy5fc2V0QWN0aXZlSXRlbUJ5SW5kZXgodGhpcy5fYWN0aXZlSXRlbUluZGV4K3QsdCl9X3NldEFjdGl2ZUl0ZW1CeUluZGV4KHQsZSl7bGV0IGk9dGhpcy5fZ2V0SXRlbXNBcnJheSgpO2lmKGlbdF0pe2Zvcig7dGhpcy5fc2tpcFByZWRpY2F0ZUZuKGlbdF0pOylpZighaVt0Kz1lXSlyZXR1cm47dGhpcy5zZXRBY3RpdmVJdGVtKHQpfX1fZ2V0SXRlbXNBcnJheSgpe3JldHVybiB0aGlzLl9pdGVtcyBpbnN0YW5jZW9mIFBhP3RoaXMuX2l0ZW1zLnRvQXJyYXkoKTp0aGlzLl9pdGVtc319LGxnPWNsYXNzIGV4dGVuZHMgQjF7c2V0QWN0aXZlSXRlbSh0KXt0aGlzLmFjdGl2ZUl0ZW0mJnRoaXMuYWN0aXZlSXRlbS5zZXRJbmFjdGl2ZVN0eWxlcygpLHN1cGVyLnNldEFjdGl2ZUl0ZW0odCksdGhpcy5hY3RpdmVJdGVtJiZ0aGlzLmFjdGl2ZUl0ZW0uc2V0QWN0aXZlU3R5bGVzKCl9fSxrdT1jbGFzcyBleHRlbmRzIEIxe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9vcmlnaW49InByb2dyYW0ifXNldEZvY3VzT3JpZ2luKHQpe3JldHVybiB0aGlzLl9vcmlnaW49dCx0aGlzfXNldEFjdGl2ZUl0ZW0odCl7c3VwZXIuc2V0QWN0aXZlSXRlbSh0KSx0aGlzLmFjdGl2ZUl0ZW0mJnRoaXMuYWN0aXZlSXRlbS5mb2N1cyh0aGlzLl9vcmlnaW4pfX0sdWc9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLl9wbGF0Zm9ybT1lfWlzRGlzYWJsZWQoZSl7cmV0dXJuIGUuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpfWlzVmlzaWJsZShlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuISEobi5vZmZzZXRXaWR0aHx8bi5vZmZzZXRIZWlnaHR8fCJmdW5jdGlvbiI9PXR5cGVvZiBuLmdldENsaWVudFJlY3RzJiZuLmdldENsaWVudFJlY3RzKCkubGVuZ3RoKX0oZSkmJiJ2aXNpYmxlIj09PWdldENvbXB1dGVkU3R5bGUoZSkudmlzaWJpbGl0eX1pc1RhYmJhYmxlKGUpe2lmKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpcmV0dXJuITE7bGV0IGk9ZnVuY3Rpb24obil7dHJ5e3JldHVybiBuLmZyYW1lRWxlbWVudH1jYXRjaHtyZXR1cm4gbnVsbH19KGZ1bmN0aW9uKG4pe3JldHVybiBuLm93bmVyRG9jdW1lbnQmJm4ub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93fShlKSk7aWYoaSYmKC0xPT09QzcoaSl8fCF0aGlzLmlzVmlzaWJsZShpKSkpcmV0dXJuITE7bGV0IHI9ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLG89QzcoZSk7cmV0dXJuIGUuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKT8tMSE9PW86ISgiaWZyYW1lIj09PXJ8fCJvYmplY3QiPT09cnx8dGhpcy5fcGxhdGZvcm0uV0VCS0lUJiZ0aGlzLl9wbGF0Zm9ybS5JT1MmJiFmdW5jdGlvbihuKXtsZXQgdD1uLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksZT0iaW5wdXQiPT09dCYmbi50eXBlO3JldHVybiJ0ZXh0Ij09PWV8fCJwYXNzd29yZCI9PT1lfHwic2VsZWN0Ij09PXR8fCJ0ZXh0YXJlYSI9PT10fShlKSkmJigiYXVkaW8iPT09cj8hIWUuaGFzQXR0cmlidXRlKCJjb250cm9scyIpJiYtMSE9PW86InZpZGVvIj09PXI/LTEhPT1vJiYobnVsbCE9PW98fHRoaXMuX3BsYXRmb3JtLkZJUkVGT1h8fGUuaGFzQXR0cmlidXRlKCJjb250cm9scyIpKTplLnRhYkluZGV4Pj0wKX1pc0ZvY3VzYWJsZShlLGkpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4hZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiJpbnB1dCI9PW4ubm9kZU5hbWUudG9Mb3dlckNhc2UoKX0obikmJiJoaWRkZW4iPT1uLnR5cGV9KG4pJiYoZnVuY3Rpb24obil7bGV0IHQ9bi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT10fHwic2VsZWN0Ij09PXR8fCJidXR0b24iPT09dHx8InRleHRhcmVhIj09PXR9KG4pfHxmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuImEiPT1uLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCl9KG4pJiZuLmhhc0F0dHJpYnV0ZSgiaHJlZiIpfShuKXx8bi5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxENyhuKSl9KGUpJiYhdGhpcy5pc0Rpc2FibGVkKGUpJiYoaT8uaWdub3JlVmlzaWJpbGl0eXx8dGhpcy5pc1Zpc2libGUoZSkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKFZuKSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCk7ZnVuY3Rpb24gRDcobil7aWYoIW4uaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpfHx2b2lkIDA9PT1uLnRhYkluZGV4KXJldHVybiExO2xldCB0PW4uZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpO3JldHVybiEoIXR8fGlzTmFOKHBhcnNlSW50KHQsMTApKSl9ZnVuY3Rpb24gQzcobil7aWYoIUQ3KG4pKXJldHVybiBudWxsO2xldCB0PXBhcnNlSW50KG4uZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpfHwiIiwxMCk7cmV0dXJuIGlzTmFOKHQpPy0xOnR9dmFyIEx2PSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIpe3RoaXMuX2NoZWNrZXI9ZSx0aGlzLl9uZ1pvbmU9aSx0aGlzLl9kb2N1bWVudD1yfWNyZWF0ZShlLGk9ITEpe3JldHVybiBuZXcgY2xhc3N7Z2V0IGVuYWJsZWQoKXtyZXR1cm4gdGhpcy5fZW5hYmxlZH1zZXQgZW5hYmxlZCh0KXt0aGlzLl9lbmFibGVkPXQsdGhpcy5fc3RhcnRBbmNob3ImJnRoaXMuX2VuZEFuY2hvciYmKHRoaXMuX3RvZ2dsZUFuY2hvclRhYkluZGV4KHQsdGhpcy5fc3RhcnRBbmNob3IpLHRoaXMuX3RvZ2dsZUFuY2hvclRhYkluZGV4KHQsdGhpcy5fZW5kQW5jaG9yKSl9Y29uc3RydWN0b3IodCxlLGkscixvPSExKXt0aGlzLl9lbGVtZW50PXQsdGhpcy5fY2hlY2tlcj1lLHRoaXMuX25nWm9uZT1pLHRoaXMuX2RvY3VtZW50PXIsdGhpcy5faGFzQXR0YWNoZWQ9ITEsdGhpcy5zdGFydEFuY2hvckxpc3RlbmVyPSgpPT50aGlzLmZvY3VzTGFzdFRhYmJhYmxlRWxlbWVudCgpLHRoaXMuZW5kQW5jaG9yTGlzdGVuZXI9KCk9PnRoaXMuZm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudCgpLHRoaXMuX2VuYWJsZWQ9ITAsb3x8dGhpcy5hdHRhY2hBbmNob3JzKCl9ZGVzdHJveSgpe2xldCB0PXRoaXMuX3N0YXJ0QW5jaG9yLGU9dGhpcy5fZW5kQW5jaG9yO3QmJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLnN0YXJ0QW5jaG9yTGlzdGVuZXIpLHQucmVtb3ZlKCkpLGUmJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLmVuZEFuY2hvckxpc3RlbmVyKSxlLnJlbW92ZSgpKSx0aGlzLl9zdGFydEFuY2hvcj10aGlzLl9lbmRBbmNob3I9bnVsbCx0aGlzLl9oYXNBdHRhY2hlZD0hMX1hdHRhY2hBbmNob3JzKCl7cmV0dXJuISF0aGlzLl9oYXNBdHRhY2hlZHx8KHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuX3N0YXJ0QW5jaG9yfHwodGhpcy5fc3RhcnRBbmNob3I9dGhpcy5fY3JlYXRlQW5jaG9yKCksdGhpcy5fc3RhcnRBbmNob3IuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuc3RhcnRBbmNob3JMaXN0ZW5lcikpLHRoaXMuX2VuZEFuY2hvcnx8KHRoaXMuX2VuZEFuY2hvcj10aGlzLl9jcmVhdGVBbmNob3IoKSx0aGlzLl9lbmRBbmNob3IuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuZW5kQW5jaG9yTGlzdGVuZXIpKX0pLHRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZSYmKHRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5fc3RhcnRBbmNob3IsdGhpcy5fZWxlbWVudCksdGhpcy5fZWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLl9lbmRBbmNob3IsdGhpcy5fZWxlbWVudC5uZXh0U2libGluZyksdGhpcy5faGFzQXR0YWNoZWQ9ITApLHRoaXMuX2hhc0F0dGFjaGVkKX1mb2N1c0luaXRpYWxFbGVtZW50V2hlblJlYWR5KHQpe3JldHVybiBuZXcgUHJvbWlzZShlPT57dGhpcy5fZXhlY3V0ZU9uU3RhYmxlKCgpPT5lKHRoaXMuZm9jdXNJbml0aWFsRWxlbWVudCh0KSkpfSl9Zm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudFdoZW5SZWFkeSh0KXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e3RoaXMuX2V4ZWN1dGVPblN0YWJsZSgoKT0+ZSh0aGlzLmZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQodCkpKX0pfWZvY3VzTGFzdFRhYmJhYmxlRWxlbWVudFdoZW5SZWFkeSh0KXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e3RoaXMuX2V4ZWN1dGVPblN0YWJsZSgoKT0+ZSh0aGlzLmZvY3VzTGFzdFRhYmJhYmxlRWxlbWVudCh0KSkpfSl9X2dldFJlZ2lvbkJvdW5kYXJ5KHQpe2xldCBlPXRoaXMuX2VsZW1lbnQucXVlcnlTZWxlY3RvckFsbChgW2Nkay1mb2N1cy1yZWdpb24tJHt0fV0sIFtjZGtGb2N1c1JlZ2lvbiR7dH1dLCBbY2RrLWZvY3VzLSR7dH1dYCk7cmV0dXJuInN0YXJ0Ij09dD9lLmxlbmd0aD9lWzBdOnRoaXMuX2dldEZpcnN0VGFiYmFibGVFbGVtZW50KHRoaXMuX2VsZW1lbnQpOmUubGVuZ3RoP2VbZS5sZW5ndGgtMV06dGhpcy5fZ2V0TGFzdFRhYmJhYmxlRWxlbWVudCh0aGlzLl9lbGVtZW50KX1mb2N1c0luaXRpYWxFbGVtZW50KHQpe2xldCBlPXRoaXMuX2VsZW1lbnQucXVlcnlTZWxlY3RvcigiW2Nkay1mb2N1cy1pbml0aWFsXSwgW2Nka0ZvY3VzSW5pdGlhbF0iKTtpZihlKXtpZighdGhpcy5fY2hlY2tlci5pc0ZvY3VzYWJsZShlKSl7bGV0IGk9dGhpcy5fZ2V0Rmlyc3RUYWJiYWJsZUVsZW1lbnQoZSk7cmV0dXJuIGk/LmZvY3VzKHQpLCEhaX1yZXR1cm4gZS5mb2N1cyh0KSwhMH1yZXR1cm4gdGhpcy5mb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50KHQpfWZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQodCl7bGV0IGU9dGhpcy5fZ2V0UmVnaW9uQm91bmRhcnkoInN0YXJ0Iik7cmV0dXJuIGUmJmUuZm9jdXModCksISFlfWZvY3VzTGFzdFRhYmJhYmxlRWxlbWVudCh0KXtsZXQgZT10aGlzLl9nZXRSZWdpb25Cb3VuZGFyeSgiZW5kIik7cmV0dXJuIGUmJmUuZm9jdXModCksISFlfWhhc0F0dGFjaGVkKCl7cmV0dXJuIHRoaXMuX2hhc0F0dGFjaGVkfV9nZXRGaXJzdFRhYmJhYmxlRWxlbWVudCh0KXtpZih0aGlzLl9jaGVja2VyLmlzRm9jdXNhYmxlKHQpJiZ0aGlzLl9jaGVja2VyLmlzVGFiYmFibGUodCkpcmV0dXJuIHQ7bGV0IGU9dC5jaGlsZHJlbjtmb3IobGV0IGk9MDtpPGUubGVuZ3RoO2krKyl7bGV0IHI9ZVtpXS5ub2RlVHlwZT09PXRoaXMuX2RvY3VtZW50LkVMRU1FTlRfTk9ERT90aGlzLl9nZXRGaXJzdFRhYmJhYmxlRWxlbWVudChlW2ldKTpudWxsO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIG51bGx9X2dldExhc3RUYWJiYWJsZUVsZW1lbnQodCl7aWYodGhpcy5fY2hlY2tlci5pc0ZvY3VzYWJsZSh0KSYmdGhpcy5fY2hlY2tlci5pc1RhYmJhYmxlKHQpKXJldHVybiB0O2xldCBlPXQuY2hpbGRyZW47Zm9yKGxldCBpPWUubGVuZ3RoLTE7aT49MDtpLS0pe2xldCByPWVbaV0ubm9kZVR5cGU9PT10aGlzLl9kb2N1bWVudC5FTEVNRU5UX05PREU/dGhpcy5fZ2V0TGFzdFRhYmJhYmxlRWxlbWVudChlW2ldKTpudWxsO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIG51bGx9X2NyZWF0ZUFuY2hvcigpe2xldCB0PXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0aGlzLl90b2dnbGVBbmNob3JUYWJJbmRleCh0aGlzLl9lbmFibGVkLHQpLHQuY2xhc3NMaXN0LmFkZCgiY2RrLXZpc3VhbGx5LWhpZGRlbiIpLHQuY2xhc3NMaXN0LmFkZCgiY2RrLWZvY3VzLXRyYXAtYW5jaG9yIiksdC5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLHR9X3RvZ2dsZUFuY2hvclRhYkluZGV4KHQsZSl7dD9lLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIik6ZS5yZW1vdmVBdHRyaWJ1dGUoInRhYmluZGV4Iil9dG9nZ2xlQW5jaG9ycyh0KXt0aGlzLl9zdGFydEFuY2hvciYmdGhpcy5fZW5kQW5jaG9yJiYodGhpcy5fdG9nZ2xlQW5jaG9yVGFiSW5kZXgodCx0aGlzLl9zdGFydEFuY2hvciksdGhpcy5fdG9nZ2xlQW5jaG9yVGFiSW5kZXgodCx0aGlzLl9lbmRBbmNob3IpKX1fZXhlY3V0ZU9uU3RhYmxlKHQpe3RoaXMuX25nWm9uZS5pc1N0YWJsZT90KCk6dGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUoTHQoMSkpLnN1YnNjcmliZSh0KX19KGUsdGhpcy5fY2hlY2tlcix0aGlzLl9uZ1pvbmUsdGhpcy5fZG9jdW1lbnQsaSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8odWcpLE8ob3QpLE8oTnQpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxufSkoKTtmdW5jdGlvbiBCdihuKXtyZXR1cm4gMD09PW4uYnV0dG9uc3x8MD09PW4ub2Zmc2V0WCYmMD09PW4ub2Zmc2V0WX1mdW5jdGlvbiBWdihuKXtsZXQgdD1uLnRvdWNoZXMmJm4udG91Y2hlc1swXXx8bi5jaGFuZ2VkVG91Y2hlcyYmbi5jaGFuZ2VkVG91Y2hlc1swXTtyZXR1cm4hKCF0fHwtMSE9PXQuaWRlbnRpZmllcnx8bnVsbCE9dC5yYWRpdXNYJiYxIT09dC5yYWRpdXNYfHxudWxsIT10LnJhZGl1c1kmJjEhPT10LnJhZGl1c1kpfW5ldyB0ZSgiRk9DVVNfVFJBUF9JTkVSVF9TVFJBVEVHWSIpO3ZhciBnX2U9bmV3IHRlKCJjZGstaW5wdXQtbW9kYWxpdHktZGV0ZWN0b3Itb3B0aW9ucyIpLF9fZT17aWdub3JlS2V5czpbMTgsMTcsMjI0LDkxLDE2XX0sc2c9emEoe3Bhc3NpdmU6ITAsY2FwdHVyZTohMH0pLGJfZT0oKCk9PntjbGFzcyBue2dldCBtb3N0UmVjZW50TW9kYWxpdHkoKXtyZXR1cm4gdGhpcy5fbW9kYWxpdHkudmFsdWV9Y29uc3RydWN0b3IoZSxpLHIsbyl7dGhpcy5fcGxhdGZvcm09ZSx0aGlzLl9tb3N0UmVjZW50VGFyZ2V0PW51bGwsdGhpcy5fbW9kYWxpdHk9bmV3IHhyKG51bGwpLHRoaXMuX2xhc3RUb3VjaE1zPTAsdGhpcy5fb25LZXlkb3duPWE9Pnt0aGlzLl9vcHRpb25zPy5pZ25vcmVLZXlzPy5zb21lKHM9PnM9PT1hLmtleUNvZGUpfHwodGhpcy5fbW9kYWxpdHkubmV4dCgia2V5Ym9hcmQiKSx0aGlzLl9tb3N0UmVjZW50VGFyZ2V0PWJzKGEpKX0sdGhpcy5fb25Nb3VzZWRvd249YT0+e0RhdGUubm93KCktdGhpcy5fbGFzdFRvdWNoTXM8NjUwfHwodGhpcy5fbW9kYWxpdHkubmV4dChCdihhKT8ia2V5Ym9hcmQiOiJtb3VzZSIpLHRoaXMuX21vc3RSZWNlbnRUYXJnZXQ9YnMoYSkpfSx0aGlzLl9vblRvdWNoc3RhcnQ9YT0+e1Z2KGEpP3RoaXMuX21vZGFsaXR5Lm5leHQoImtleWJvYXJkIik6KHRoaXMuX2xhc3RUb3VjaE1zPURhdGUubm93KCksdGhpcy5fbW9kYWxpdHkubmV4dCgidG91Y2giKSx0aGlzLl9tb3N0UmVjZW50VGFyZ2V0PWJzKGEpKX0sdGhpcy5fb3B0aW9ucz17Li4uX19lLC4uLm99LHRoaXMubW9kYWxpdHlEZXRlY3RlZD10aGlzLl9tb2RhbGl0eS5waXBlKG9zKDEpKSx0aGlzLm1vZGFsaXR5Q2hhbmdlZD10aGlzLm1vZGFsaXR5RGV0ZWN0ZWQucGlwZShyaSgpKSxlLmlzQnJvd3NlciYmaS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3IuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fb25LZXlkb3duLHNnKSxyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5fb25Nb3VzZWRvd24sc2cpLHIuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fb25Ub3VjaHN0YXJ0LHNnKX0pfW5nT25EZXN0cm95KCl7dGhpcy5fbW9kYWxpdHkuY29tcGxldGUoKSx0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9vbktleWRvd24sc2cpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5fb25Nb3VzZWRvd24sc2cpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX29uVG91Y2hzdGFydCxzZykpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKFZuKSxPKG90KSxPKE50KSxPKGdfZSw4KSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCksdl9lPW5ldyB0ZSgibGl2ZUFubm91bmNlckVsZW1lbnQiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9fSkseF9lPW5ldyB0ZSgiTElWRV9BTk5PVU5DRVJfREVGQVVMVF9PUFRJT05TIiksQ19lPTAsSHY9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscixvKXt0aGlzLl9uZ1pvbmU9aSx0aGlzLl9kZWZhdWx0T3B0aW9ucz1vLHRoaXMuX2RvY3VtZW50PXIsdGhpcy5fbGl2ZUVsZW1lbnQ9ZXx8dGhpcy5fY3JlYXRlTGl2ZUVsZW1lbnQoKX1hbm5vdW5jZShlLC4uLmkpe2xldCBvLGEscj10aGlzLl9kZWZhdWx0T3B0aW9ucztyZXR1cm4gMT09PWkubGVuZ3RoJiYibnVtYmVyIj09dHlwZW9mIGlbMF0/YT1pWzBdOltvLGFdPWksdGhpcy5jbGVhcigpLGNsZWFyVGltZW91dCh0aGlzLl9wcmV2aW91c1RpbWVvdXQpLG98fChvPXImJnIucG9saXRlbmVzcz9yLnBvbGl0ZW5lc3M6InBvbGl0ZSIpLG51bGw9PWEmJnImJihhPXIuZHVyYXRpb24pLHRoaXMuX2xpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1saXZlIixvKSx0aGlzLl9saXZlRWxlbWVudC5pZCYmdGhpcy5fZXhwb3NlQW5ub3VuY2VyVG9Nb2RhbHModGhpcy5fbGl2ZUVsZW1lbnQuaWQpLHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+KHRoaXMuX2N1cnJlbnRQcm9taXNlfHwodGhpcy5fY3VycmVudFByb21pc2U9bmV3IFByb21pc2Uocz0+dGhpcy5fY3VycmVudFJlc29sdmU9cykpLGNsZWFyVGltZW91dCh0aGlzLl9wcmV2aW91c1RpbWVvdXQpLHRoaXMuX3ByZXZpb3VzVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5fbGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ9ZSwibnVtYmVyIj09dHlwZW9mIGEmJih0aGlzLl9wcmV2aW91c1RpbWVvdXQ9c2V0VGltZW91dCgoKT0+dGhpcy5jbGVhcigpLGEpKSx0aGlzLl9jdXJyZW50UmVzb2x2ZSgpLHRoaXMuX2N1cnJlbnRQcm9taXNlPXRoaXMuX2N1cnJlbnRSZXNvbHZlPXZvaWQgMH0sMTAwKSx0aGlzLl9jdXJyZW50UHJvbWlzZSkpfWNsZWFyKCl7dGhpcy5fbGl2ZUVsZW1lbnQmJih0aGlzLl9saXZlRWxlbWVudC50ZXh0Q29udGVudD0iIil9bmdPbkRlc3Ryb3koKXtjbGVhclRpbWVvdXQodGhpcy5fcHJldmlvdXNUaW1lb3V0KSx0aGlzLl9saXZlRWxlbWVudD8ucmVtb3ZlKCksdGhpcy5fbGl2ZUVsZW1lbnQ9bnVsbCx0aGlzLl9jdXJyZW50UmVzb2x2ZT8uKCksdGhpcy5fY3VycmVudFByb21pc2U9dGhpcy5fY3VycmVudFJlc29sdmU9dm9pZCAwfV9jcmVhdGVMaXZlRWxlbWVudCgpe2xldCBlPSJjZGstbGl2ZS1hbm5vdW5jZXItZWxlbWVudCIsaT10aGlzLl9kb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGUpLHI9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zm9yKGxldCBvPTA7bzxpLmxlbmd0aDtvKyspaVtvXS5yZW1vdmUoKTtyZXR1cm4gci5jbGFzc0xpc3QuYWRkKGUpLHIuY2xhc3NMaXN0LmFkZCgiY2RrLXZpc3VhbGx5LWhpZGRlbiIpLHIuc2V0QXR0cmlidXRlKCJhcmlhLWF0b21pYyIsInRydWUiKSxyLnNldEF0dHJpYnV0ZSgiYXJpYS1saXZlIiwicG9saXRlIiksci5pZD0iY2RrLWxpdmUtYW5ub3VuY2VyLSIrQ19lKyssdGhpcy5fZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyKSxyfV9leHBvc2VBbm5vdW5jZXJUb01vZGFscyhlKXtsZXQgaT10aGlzLl9kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdib2R5ID4gLmNkay1vdmVybGF5LWNvbnRhaW5lciBbYXJpYS1tb2RhbD0idHJ1ZSJdJyk7Zm9yKGxldCByPTA7cjxpLmxlbmd0aDtyKyspe2xldCBvPWlbcl0sYT1vLmdldEF0dHJpYnV0ZSgiYXJpYS1vd25zIik7YT8tMT09PWEuaW5kZXhPZihlKSYmby5zZXRBdHRyaWJ1dGUoImFyaWEtb3ducyIsYSsiICIrZSk6by5zZXRBdHRyaWJ1dGUoImFyaWEtb3ducyIsZSl9fX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKHZfZSw4KSxPKG90KSxPKE50KSxPKHhfZSw4KSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCksTV9lPW5ldyB0ZSgiY2RrLWZvY3VzLW1vbml0b3ItZGVmYXVsdC1vcHRpb25zIiksTjE9emEoe3Bhc3NpdmU6ITAsY2FwdHVyZTohMH0pLGZvPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIsbyxhKXt0aGlzLl9uZ1pvbmU9ZSx0aGlzLl9wbGF0Zm9ybT1pLHRoaXMuX2lucHV0TW9kYWxpdHlEZXRlY3Rvcj1yLHRoaXMuX29yaWdpbj1udWxsLHRoaXMuX3dpbmRvd0ZvY3VzZWQ9ITEsdGhpcy5fb3JpZ2luRnJvbVRvdWNoSW50ZXJhY3Rpb249ITEsdGhpcy5fZWxlbWVudEluZm89bmV3IE1hcCx0aGlzLl9tb25pdG9yZWRFbGVtZW50Q291bnQ9MCx0aGlzLl9yb290Tm9kZUZvY3VzTGlzdGVuZXJDb3VudD1uZXcgTWFwLHRoaXMuX3dpbmRvd0ZvY3VzTGlzdGVuZXI9KCk9Pnt0aGlzLl93aW5kb3dGb2N1c2VkPSEwLHRoaXMuX3dpbmRvd0ZvY3VzVGltZW91dElkPXdpbmRvdy5zZXRUaW1lb3V0KCgpPT50aGlzLl93aW5kb3dGb2N1c2VkPSExKX0sdGhpcy5fc3RvcElucHV0TW9kYWxpdHlEZXRlY3Rvcj1uZXcgRWUsdGhpcy5fcm9vdE5vZGVGb2N1c0FuZEJsdXJMaXN0ZW5lcj1zPT57Zm9yKGxldCBjPWJzKHMpO2M7Yz1jLnBhcmVudEVsZW1lbnQpImZvY3VzIj09PXMudHlwZT90aGlzLl9vbkZvY3VzKHMsYyk6dGhpcy5fb25CbHVyKHMsYyl9LHRoaXMuX2RvY3VtZW50PW8sdGhpcy5fZGV0ZWN0aW9uTW9kZT1hPy5kZXRlY3Rpb25Nb2RlfHwwfW1vbml0b3IoZSxpPSExKXtsZXQgcj1VYShlKTtpZighdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyfHwxIT09ci5ub2RlVHlwZSlyZXR1cm4gJHQobnVsbCk7bGV0IG89ZnVuY3Rpb24obil7aWYoZnVuY3Rpb24oKXtpZihudWxsPT1vMil7bGV0IG49dHlwZW9mIGRvY3VtZW50PCJ1Ij9kb2N1bWVudC5oZWFkOm51bGw7bzI9ISghbnx8IW4uY3JlYXRlU2hhZG93Um9vdCYmIW4uYXR0YWNoU2hhZG93KX1yZXR1cm4gbzJ9KCkpe2xldCB0PW4uZ2V0Um9vdE5vZGU/bi5nZXRSb290Tm9kZSgpOm51bGw7aWYodHlwZW9mIFNoYWRvd1Jvb3Q8InUiJiZTaGFkb3dSb290JiZ0IGluc3RhbmNlb2YgU2hhZG93Um9vdClyZXR1cm4gdH1yZXR1cm4gbnVsbH0ocil8fHRoaXMuX2dldERvY3VtZW50KCksYT10aGlzLl9lbGVtZW50SW5mby5nZXQocik7aWYoYSlyZXR1cm4gaSYmKGEuY2hlY2tDaGlsZHJlbj0hMCksYS5zdWJqZWN0O2xldCBzPXtjaGVja0NoaWxkcmVuOmksc3ViamVjdDpuZXcgRWUscm9vdE5vZGU6b307cmV0dXJuIHRoaXMuX2VsZW1lbnRJbmZvLnNldChyLHMpLHRoaXMuX3JlZ2lzdGVyR2xvYmFsTGlzdGVuZXJzKHMpLHMuc3ViamVjdH1zdG9wTW9uaXRvcmluZyhlKXtsZXQgaT1VYShlKSxyPXRoaXMuX2VsZW1lbnRJbmZvLmdldChpKTtyJiYoci5zdWJqZWN0LmNvbXBsZXRlKCksdGhpcy5fc2V0Q2xhc3NlcyhpKSx0aGlzLl9lbGVtZW50SW5mby5kZWxldGUoaSksdGhpcy5fcmVtb3ZlR2xvYmFsTGlzdGVuZXJzKHIpKX1mb2N1c1ZpYShlLGkscil7bGV0IG89VWEoZSk7bz09PXRoaXMuX2dldERvY3VtZW50KCkuYWN0aXZlRWxlbWVudD90aGlzLl9nZXRDbG9zZXN0RWxlbWVudHNJbmZvKG8pLmZvckVhY2goKFtzLGxdKT0+dGhpcy5fb3JpZ2luQ2hhbmdlZChzLGksbCkpOih0aGlzLl9zZXRPcmlnaW4oaSksImZ1bmN0aW9uIj09dHlwZW9mIG8uZm9jdXMmJm8uZm9jdXMocikpfW5nT25EZXN0cm95KCl7dGhpcy5fZWxlbWVudEluZm8uZm9yRWFjaCgoZSxpKT0+dGhpcy5zdG9wTW9uaXRvcmluZyhpKSl9X2dldERvY3VtZW50KCl7cmV0dXJuIHRoaXMuX2RvY3VtZW50fHxkb2N1bWVudH1fZ2V0V2luZG93KCl7cmV0dXJuIHRoaXMuX2dldERvY3VtZW50KCkuZGVmYXVsdFZpZXd8fHdpbmRvd31fZ2V0Rm9jdXNPcmlnaW4oZSl7cmV0dXJuIHRoaXMuX29yaWdpbj90aGlzLl9vcmlnaW5Gcm9tVG91Y2hJbnRlcmFjdGlvbj90aGlzLl9zaG91bGRCZUF0dHJpYnV0ZWRUb1RvdWNoKGUpPyJ0b3VjaCI6InByb2dyYW0iOnRoaXMuX29yaWdpbjp0aGlzLl93aW5kb3dGb2N1c2VkJiZ0aGlzLl9sYXN0Rm9jdXNPcmlnaW4/dGhpcy5fbGFzdEZvY3VzT3JpZ2luOmUmJnRoaXMuX2lzTGFzdEludGVyYWN0aW9uRnJvbUlucHV0TGFiZWwoZSk/Im1vdXNlIjoicHJvZ3JhbSJ9X3Nob3VsZEJlQXR0cmlidXRlZFRvVG91Y2goZSl7cmV0dXJuIDE9PT10aGlzLl9kZXRlY3Rpb25Nb2RlfHwhIWU/LmNvbnRhaW5zKHRoaXMuX2lucHV0TW9kYWxpdHlEZXRlY3Rvci5fbW9zdFJlY2VudFRhcmdldCl9X3NldENsYXNzZXMoZSxpKXtlLmNsYXNzTGlzdC50b2dnbGUoImNkay1mb2N1c2VkIiwhIWkpLGUuY2xhc3NMaXN0LnRvZ2dsZSgiY2RrLXRvdWNoLWZvY3VzZWQiLCJ0b3VjaCI9PT1pKSxlLmNsYXNzTGlzdC50b2dnbGUoImNkay1rZXlib2FyZC1mb2N1c2VkIiwia2V5Ym9hcmQiPT09aSksZS5jbGFzc0xpc3QudG9nZ2xlKCJjZGstbW91c2UtZm9jdXNlZCIsIm1vdXNlIj09PWkpLGUuY2xhc3NMaXN0LnRvZ2dsZSgiY2RrLXByb2dyYW0tZm9jdXNlZCIsInByb2dyYW0iPT09aSl9X3NldE9yaWdpbihlLGk9ITEpe3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuX29yaWdpbj1lLHRoaXMuX29yaWdpbkZyb21Ub3VjaEludGVyYWN0aW9uPSJ0b3VjaCI9PT1lJiZpLDA9PT10aGlzLl9kZXRlY3Rpb25Nb2RlJiYoY2xlYXJUaW1lb3V0KHRoaXMuX29yaWdpblRpbWVvdXRJZCksdGhpcy5fb3JpZ2luVGltZW91dElkPXNldFRpbWVvdXQoKCk9PnRoaXMuX29yaWdpbj1udWxsLHRoaXMuX29yaWdpbkZyb21Ub3VjaEludGVyYWN0aW9uPzY1MDoxKSl9KX1fb25Gb2N1cyhlLGkpe2xldCByPXRoaXMuX2VsZW1lbnRJbmZvLmdldChpKSxvPWJzKGUpOyFyfHwhci5jaGVja0NoaWxkcmVuJiZpIT09b3x8dGhpcy5fb3JpZ2luQ2hhbmdlZChpLHRoaXMuX2dldEZvY3VzT3JpZ2luKG8pLHIpfV9vbkJsdXIoZSxpKXtsZXQgcj10aGlzLl9lbGVtZW50SW5mby5nZXQoaSk7IXJ8fHIuY2hlY2tDaGlsZHJlbiYmZS5yZWxhdGVkVGFyZ2V0IGluc3RhbmNlb2YgTm9kZSYmaS5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpfHwodGhpcy5fc2V0Q2xhc3NlcyhpKSx0aGlzLl9lbWl0T3JpZ2luKHIsbnVsbCkpfV9lbWl0T3JpZ2luKGUsaSl7ZS5zdWJqZWN0Lm9ic2VydmVycy5sZW5ndGgmJnRoaXMuX25nWm9uZS5ydW4oKCk9PmUuc3ViamVjdC5uZXh0KGkpKX1fcmVnaXN0ZXJHbG9iYWxMaXN0ZW5lcnMoZSl7aWYoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3NlcilyZXR1cm47bGV0IGk9ZS5yb290Tm9kZSxyPXRoaXMuX3Jvb3ROb2RlRm9jdXNMaXN0ZW5lckNvdW50LmdldChpKXx8MDtyfHx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PntpLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9yb290Tm9kZUZvY3VzQW5kQmx1ckxpc3RlbmVyLE4xKSxpLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX3Jvb3ROb2RlRm9jdXNBbmRCbHVyTGlzdGVuZXIsTjEpfSksdGhpcy5fcm9vdE5vZGVGb2N1c0xpc3RlbmVyQ291bnQuc2V0KGkscisxKSwxPT0rK3RoaXMuX21vbml0b3JlZEVsZW1lbnRDb3VudCYmKHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuX2dldFdpbmRvdygpLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl93aW5kb3dGb2N1c0xpc3RlbmVyKX0pLHRoaXMuX2lucHV0TW9kYWxpdHlEZXRlY3Rvci5tb2RhbGl0eURldGVjdGVkLnBpcGUoaXQodGhpcy5fc3RvcElucHV0TW9kYWxpdHlEZXRlY3RvcikpLnN1YnNjcmliZShvPT57dGhpcy5fc2V0T3JpZ2luKG8sITApfSkpfV9yZW1vdmVHbG9iYWxMaXN0ZW5lcnMoZSl7bGV0IGk9ZS5yb290Tm9kZTtpZih0aGlzLl9yb290Tm9kZUZvY3VzTGlzdGVuZXJDb3VudC5oYXMoaSkpe2xldCByPXRoaXMuX3Jvb3ROb2RlRm9jdXNMaXN0ZW5lckNvdW50LmdldChpKTtyPjE/dGhpcy5fcm9vdE5vZGVGb2N1c0xpc3RlbmVyQ291bnQuc2V0KGksci0xKTooaS5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5fcm9vdE5vZGVGb2N1c0FuZEJsdXJMaXN0ZW5lcixOMSksaS5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9yb290Tm9kZUZvY3VzQW5kQmx1ckxpc3RlbmVyLE4xKSx0aGlzLl9yb290Tm9kZUZvY3VzTGlzdGVuZXJDb3VudC5kZWxldGUoaSkpfS0tdGhpcy5fbW9uaXRvcmVkRWxlbWVudENvdW50fHwodGhpcy5fZ2V0V2luZG93KCkucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuX3dpbmRvd0ZvY3VzTGlzdGVuZXIpLHRoaXMuX3N0b3BJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubmV4dCgpLGNsZWFyVGltZW91dCh0aGlzLl93aW5kb3dGb2N1c1RpbWVvdXRJZCksY2xlYXJUaW1lb3V0KHRoaXMuX29yaWdpblRpbWVvdXRJZCkpfV9vcmlnaW5DaGFuZ2VkKGUsaSxyKXt0aGlzLl9zZXRDbGFzc2VzKGUsaSksdGhpcy5fZW1pdE9yaWdpbihyLGkpLHRoaXMuX2xhc3RGb2N1c09yaWdpbj1pfV9nZXRDbG9zZXN0RWxlbWVudHNJbmZvKGUpe2xldCBpPVtdO3JldHVybiB0aGlzLl9lbGVtZW50SW5mby5mb3JFYWNoKChyLG8pPT57KG89PT1lfHxyLmNoZWNrQ2hpbGRyZW4mJm8uY29udGFpbnMoZSkpJiZpLnB1c2goW28scl0pfSksaX1faXNMYXN0SW50ZXJhY3Rpb25Gcm9tSW5wdXRMYWJlbChlKXtsZXR7X21vc3RSZWNlbnRUYXJnZXQ6aSxtb3N0UmVjZW50TW9kYWxpdHk6cn09dGhpcy5faW5wdXRNb2RhbGl0eURldGVjdG9yO2lmKCJtb3VzZSIhPT1yfHwhaXx8aT09PWV8fCJJTlBVVCIhPT1lLm5vZGVOYW1lJiYiVEVYVEFSRUEiIT09ZS5ub2RlTmFtZXx8ZS5kaXNhYmxlZClyZXR1cm4hMTtsZXQgbz1lLmxhYmVscztpZihvKWZvcihsZXQgYT0wO2E8by5sZW5ndGg7YSsrKWlmKG9bYV0uY29udGFpbnMoaSkpcmV0dXJuITA7cmV0dXJuITF9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8ob3QpLE8oVm4pLE8oYl9lKSxPKE50LDgpLE8oTV9lLDgpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxufSkoKSxBNz0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSl7dGhpcy5fZWxlbWVudFJlZj1lLHRoaXMuX2ZvY3VzTW9uaXRvcj1pLHRoaXMuX2ZvY3VzT3JpZ2luPW51bGwsdGhpcy5jZGtGb2N1c0NoYW5nZT1uZXcgRn1nZXQgZm9jdXNPcmlnaW4oKXtyZXR1cm4gdGhpcy5fZm9jdXNPcmlnaW59bmdBZnRlclZpZXdJbml0KCl7bGV0IGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O3RoaXMuX21vbml0b3JTdWJzY3JpcHRpb249dGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IoZSwxPT09ZS5ub2RlVHlwZSYmZS5oYXNBdHRyaWJ1dGUoImNka01vbml0b3JTdWJ0cmVlRm9jdXMiKSkuc3Vic2NyaWJlKGk9Pnt0aGlzLl9mb2N1c09yaWdpbj1pLHRoaXMuY2RrRm9jdXNDaGFuZ2UuZW1pdChpKX0pfW5nT25EZXN0cm95KCl7dGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpLHRoaXMuX21vbml0b3JTdWJzY3JpcHRpb24mJnRoaXMuX21vbml0b3JTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyh4ZSksQyhmbykpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJjZGtNb25pdG9yRWxlbWVudEZvY3VzIiwiIl0sWyIiLCJjZGtNb25pdG9yU3VidHJlZUZvY3VzIiwiIl1dLG91dHB1dHM6e2Nka0ZvY3VzQ2hhbmdlOiJjZGtGb2N1c0NoYW5nZSJ9LGV4cG9ydEFzOlsiY2RrTW9uaXRvckZvY3VzIl19KSxufSkoKSxNNz0iY2RrLWhpZ2gtY29udHJhc3QtYmxhY2stb24td2hpdGUiLHc3PSJjZGstaGlnaC1jb250cmFzdC13aGl0ZS1vbi1ibGFjayIsYzI9ImNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSIsaDI9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkpe3RoaXMuX3BsYXRmb3JtPWUsdGhpcy5fZG9jdW1lbnQ9aSx0aGlzLl9icmVha3BvaW50U3Vic2NyaXB0aW9uPSRuKE52KS5vYnNlcnZlKCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKSIpLnN1YnNjcmliZSgoKT0+e3RoaXMuX2hhc0NoZWNrZWRIaWdoQ29udHJhc3RNb2RlJiYodGhpcy5faGFzQ2hlY2tlZEhpZ2hDb250cmFzdE1vZGU9ITEsdGhpcy5fYXBwbHlCb2R5SGlnaENvbnRyYXN0TW9kZUNzc0NsYXNzZXMoKSl9KX1nZXRIaWdoQ29udHJhc3RNb2RlKCl7aWYoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3NlcilyZXR1cm4gMDtsZXQgZT10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLnN0eWxlLmJhY2tncm91bmRDb2xvcj0icmdiKDEsMiwzKSIsZS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7bGV0IGk9dGhpcy5fZG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdyxyPWkmJmkuZ2V0Q29tcHV0ZWRTdHlsZT9pLmdldENvbXB1dGVkU3R5bGUoZSk6bnVsbCxvPShyJiZyLmJhY2tncm91bmRDb2xvcnx8IiIpLnJlcGxhY2UoLyAvZywiIik7c3dpdGNoKGUucmVtb3ZlKCksbyl7Y2FzZSJyZ2IoMCwwLDApIjpjYXNlInJnYig0NSw1MCw1NCkiOmNhc2UicmdiKDMyLDMyLDMyKSI6cmV0dXJuIDI7Y2FzZSJyZ2IoMjU1LDI1NSwyNTUpIjpjYXNlInJnYigyNTUsMjUwLDIzOSkiOnJldHVybiAxfXJldHVybiAwfW5nT25EZXN0cm95KCl7dGhpcy5fYnJlYWtwb2ludFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfV9hcHBseUJvZHlIaWdoQ29udHJhc3RNb2RlQ3NzQ2xhc3Nlcygpe2lmKCF0aGlzLl9oYXNDaGVja2VkSGlnaENvbnRyYXN0TW9kZSYmdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyJiZ0aGlzLl9kb2N1bWVudC5ib2R5KXtsZXQgZT10aGlzLl9kb2N1bWVudC5ib2R5LmNsYXNzTGlzdDtlLnJlbW92ZShjMixNNyx3NyksdGhpcy5faGFzQ2hlY2tlZEhpZ2hDb250cmFzdE1vZGU9ITA7bGV0IGk9dGhpcy5nZXRIaWdoQ29udHJhc3RNb2RlKCk7MT09PWk/ZS5hZGQoYzIsTTcpOjI9PT1pJiZlLmFkZChjMix3Nyl9fX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKFZuKSxPKE50KSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCkscGc9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXtlLl9hcHBseUJvZHlIaWdoQ29udHJhc3RNb2RlQ3NzQ2xhc3NlcygpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKGgyKSl9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W29nXX0pLG59KSgpLHdfZT1uZXcgdGUoImNkay1kaXItZG9jIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbigpe3JldHVybiAkbihOdCl9fSksRV9lPS9eKGFyfGNrYnxkdnxoZXxpd3xmYXxucW98cHN8c2R8dWd8dXJ8eWl8LipbLV9dKEFkbG18QXJhYnxIZWJyfE5rb298Um9oZ3xUaGFhKSkoPyEuKlstX10oTGF0bnxDeXJsKSgkfC18XykpKCR8LXxfKS9pLHppPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy52YWx1ZT0ibHRyIix0aGlzLmNoYW5nZT1uZXcgRixlJiYodGhpcy52YWx1ZT1mdW5jdGlvbihuKXtsZXQgdD1uPy50b0xvd2VyQ2FzZSgpfHwiIjtyZXR1cm4iYXV0byI9PT10JiZ0eXBlb2YgbmF2aWdhdG9yPCJ1IiYmbmF2aWdhdG9yPy5sYW5ndWFnZT9FX2UudGVzdChuYXZpZ2F0b3IubGFuZ3VhZ2UpPyJydGwiOiJsdHIiOiJydGwiPT09dD8icnRsIjoibHRyIn0oKGUuYm9keT9lLmJvZHkuZGlyOm51bGwpfHwoZS5kb2N1bWVudEVsZW1lbnQ/ZS5kb2N1bWVudEVsZW1lbnQuZGlyOm51bGwpfHwibHRyIikpfW5nT25EZXN0cm95KCl7dGhpcy5jaGFuZ2UuY29tcGxldGUoKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyh3X2UsOCkpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLG59KSgpLEZ1PSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHt9KSxufSkoKSxEX2U9WyJ0ZXh0Il07ZnVuY3Rpb24gSV9lKG4sdCl7aWYoMSZuJiZrKDAsIm1hdC1wc2V1ZG8tY2hlY2tib3giLDYpLDImbil7bGV0IGU9dygpO2IoInN0YXRlIixlLnNlbGVjdGVkPyJjaGVja2VkIjoidW5jaGVja2VkIikoImRpc2FibGVkIixlLmRpc2FibGVkKX19ZnVuY3Rpb24gQV9lKG4sdCl7MSZuJiZrKDAsIm1hdC1wc2V1ZG8tY2hlY2tib3giLDcpLDImbiYmYigiZGlzYWJsZWQiLHcoKS5kaXNhYmxlZCl9ZnVuY3Rpb24gUl9lKG4sdCl7aWYoMSZuJiYoZigwLCJzcGFuIiw4KSxUKDEpLGcoKSksMiZuKXtsZXQgZT13KCk7digxKSxWZSgiKCIsZS5ncm91cC5sYWJlbCwiKSIpfX12YXIgUF9lPVtbWyJtYXQtaWNvbiJdXSwiKiJdLGtfZT1bIm1hdC1pY29uIiwiKiJdLE43PShuZXcgTWwoIjE1LjIuOSIpLCgoKT0+e2NsYXNzIG57fXJldHVybiBuLlNUQU5EQVJEX0NVUlZFPSJjdWJpYy1iZXppZXIoMC40LDAuMCwwLjIsMSkiLG4uREVDRUxFUkFUSU9OX0NVUlZFPSJjdWJpYy1iZXppZXIoMC4wLDAuMCwwLjIsMSkiLG4uQUNDRUxFUkFUSU9OX0NVUlZFPSJjdWJpYy1iZXppZXIoMC40LDAuMCwxLDEpIixuLlNIQVJQX0NVUlZFPSJjdWJpYy1iZXppZXIoMC40LDAuMCwwLjYsMSkiLG59KSgpKSxMNz0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5DT01QTEVYPSIzNzVtcyIsbi5FTlRFUklORz0iMjI1bXMiLG4uRVhJVElORz0iMTk1bXMiLG59KSgpLEZfZT1uZXcgdGUoIm1hdC1zYW5pdHktY2hlY2tzIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbigpe3JldHVybiEwfX0pLGRuPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIpe3RoaXMuX3Nhbml0eUNoZWNrcz1pLHRoaXMuX2RvY3VtZW50PXIsdGhpcy5faGFzRG9uZUdsb2JhbENoZWNrcz0hMSxlLl9hcHBseUJvZHlIaWdoQ29udHJhc3RNb2RlQ3NzQ2xhc3NlcygpLHRoaXMuX2hhc0RvbmVHbG9iYWxDaGVja3N8fCh0aGlzLl9oYXNEb25lR2xvYmFsQ2hlY2tzPSEwKX1fY2hlY2tJc0VuYWJsZWQoZSl7cmV0dXJuIUZ2KCkmJigiYm9vbGVhbiI9PXR5cGVvZiB0aGlzLl9zYW5pdHlDaGVja3M/dGhpcy5fc2FuaXR5Q2hlY2tzOiEhdGhpcy5fc2FuaXR5Q2hlY2tzW2VdKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhoMiksTyhGX2UsOCksTyhOdCkpfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltGdSxGdV19KSxufSkoKTtmdW5jdGlvbiBhbyhuKXtyZXR1cm4gY2xhc3MgZXh0ZW5kcyBue2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7dGhpcy5fZGlzYWJsZWQ9dnQodCl9Y29uc3RydWN0b3IoLi4udCl7c3VwZXIoLi4udCksdGhpcy5fZGlzYWJsZWQ9ITF9fX1mdW5jdGlvbiBLbyhuLHQpe3JldHVybiBjbGFzcyBleHRlbmRzIG57Z2V0IGNvbG9yKCl7cmV0dXJuIHRoaXMuX2NvbG9yfXNldCBjb2xvcihlKXtsZXQgaT1lfHx0aGlzLmRlZmF1bHRDb2xvcjtpIT09dGhpcy5fY29sb3ImJih0aGlzLl9jb2xvciYmdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoYG1hdC0ke3RoaXMuX2NvbG9yfWApLGkmJnRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBtYXQtJHtpfWApLHRoaXMuX2NvbG9yPWkpfWNvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuZGVmYXVsdENvbG9yPXQsdGhpcy5jb2xvcj10fX19ZnVuY3Rpb24gZ28obil7cmV0dXJuIGNsYXNzIGV4dGVuZHMgbntnZXQgZGlzYWJsZVJpcHBsZSgpe3JldHVybiB0aGlzLl9kaXNhYmxlUmlwcGxlfXNldCBkaXNhYmxlUmlwcGxlKHQpe3RoaXMuX2Rpc2FibGVSaXBwbGU9dnQodCl9Y29uc3RydWN0b3IoLi4udCl7c3VwZXIoLi4udCksdGhpcy5fZGlzYWJsZVJpcHBsZT0hMX19fWZ1bmN0aW9uIERjKG4sdD0wKXtyZXR1cm4gY2xhc3MgZXh0ZW5kcyBue2dldCB0YWJJbmRleCgpe3JldHVybiB0aGlzLmRpc2FibGVkPy0xOnRoaXMuX3RhYkluZGV4fXNldCB0YWJJbmRleChlKXt0aGlzLl90YWJJbmRleD1udWxsIT1lP21pKGUpOnRoaXMuZGVmYXVsdFRhYkluZGV4fWNvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuX3RhYkluZGV4PXQsdGhpcy5kZWZhdWx0VGFiSW5kZXg9dH19fWZ1bmN0aW9uIGhnKG4pe3JldHVybiBjbGFzcyBleHRlbmRzIG57dXBkYXRlRXJyb3JTdGF0ZSgpe2xldCB0PXRoaXMuZXJyb3JTdGF0ZSxvPSh0aGlzLmVycm9yU3RhdGVNYXRjaGVyfHx0aGlzLl9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXIpLmlzRXJyb3JTdGF0ZSh0aGlzLm5nQ29udHJvbD90aGlzLm5nQ29udHJvbC5jb250cm9sOm51bGwsdGhpcy5fcGFyZW50Rm9ybUdyb3VwfHx0aGlzLl9wYXJlbnRGb3JtKTtvIT09dCYmKHRoaXMuZXJyb3JTdGF0ZT1vLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKSl9Y29uc3RydWN0b3IoLi4udCl7c3VwZXIoLi4udCksdGhpcy5lcnJvclN0YXRlPSExfX19ZnVuY3Rpb24gSDEobil7cmV0dXJuIGNsYXNzIGV4dGVuZHMgbntjb25zdHJ1Y3RvciguLi50KXtzdXBlciguLi50KSx0aGlzLl9pc0luaXRpYWxpemVkPSExLHRoaXMuX3BlbmRpbmdTdWJzY3JpYmVycz1bXSx0aGlzLmluaXRpYWxpemVkPW5ldyBLdChlPT57dGhpcy5faXNJbml0aWFsaXplZD90aGlzLl9ub3RpZnlTdWJzY3JpYmVyKGUpOnRoaXMuX3BlbmRpbmdTdWJzY3JpYmVycy5wdXNoKGUpfSl9X21hcmtJbml0aWFsaXplZCgpe3RoaXMuX2lzSW5pdGlhbGl6ZWQ9ITAsdGhpcy5fcGVuZGluZ1N1YnNjcmliZXJzLmZvckVhY2godGhpcy5fbm90aWZ5U3Vic2NyaWJlciksdGhpcy5fcGVuZGluZ1N1YnNjcmliZXJzPW51bGx9X25vdGlmeVN1YnNjcmliZXIodCl7dC5uZXh0KCksdC5jb21wbGV0ZSgpfX19bmV3IHRlKCJNQVRfREFURV9MT0NBTEUiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuICRuKGFkKX19KSxuZXcgdGUoIm1hdC1kYXRlLWZvcm1hdHMiKTt2YXIgRWg9KCgpPT57Y2xhc3Mgbntpc0Vycm9yU3RhdGUoZSxpKXtyZXR1cm4hIShlJiZlLmludmFsaWQmJihlLnRvdWNoZWR8fGkmJmkuc3VibWl0dGVkKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLG59KSgpLFI3PXphKHtwYXNzaXZlOiEwLGNhcHR1cmU6ITB9KSxQNz17ZW50ZXJEdXJhdGlvbjoyMjUsZXhpdER1cmF0aW9uOjE1MH0sazc9emEoe3Bhc3NpdmU6ITAsY2FwdHVyZTohMH0pLE83PVsibW91c2Vkb3duIiwidG91Y2hzdGFydCJdLEY3PVsibW91c2V1cCIsIm1vdXNlbGVhdmUiLCJ0b3VjaGVuZCIsInRvdWNoY2FuY2VsIl0sU2g9Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkscil7dGhpcy5fdGFyZ2V0PXQsdGhpcy5fbmdab25lPWUsdGhpcy5fcGxhdGZvcm09cix0aGlzLl9pc1BvaW50ZXJEb3duPSExLHRoaXMuX2FjdGl2ZVJpcHBsZXM9bmV3IE1hcCx0aGlzLl9wb2ludGVyVXBFdmVudHNSZWdpc3RlcmVkPSExLHIuaXNCcm93c2VyJiYodGhpcy5fY29udGFpbmVyRWxlbWVudD1VYShpKSl9ZmFkZUluUmlwcGxlKHQsZSxpPXt9KXtsZXQgcj10aGlzLl9jb250YWluZXJSZWN0PXRoaXMuX2NvbnRhaW5lclJlY3R8fHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz17Li4uUDcsLi4uaS5hbmltYXRpb259O2kuY2VudGVyZWQmJih0PXIubGVmdCtyLndpZHRoLzIsZT1yLnRvcCtyLmhlaWdodC8yKTtsZXQgYT1pLnJhZGl1c3x8ZnVuY3Rpb24obix0LGUpe2xldCBpPU1hdGgubWF4KE1hdGguYWJzKG4tZS5sZWZ0KSxNYXRoLmFicyhuLWUucmlnaHQpKSxyPU1hdGgubWF4KE1hdGguYWJzKHQtZS50b3ApLE1hdGguYWJzKHQtZS5ib3R0b20pKTtyZXR1cm4gTWF0aC5zcXJ0KGkqaStyKnIpfSh0LGUscikscz10LXIubGVmdCxsPWUtci50b3AsYz1vLmVudGVyRHVyYXRpb24sZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtkLmNsYXNzTGlzdC5hZGQoIm1hdC1yaXBwbGUtZWxlbWVudCIpLGQuc3R5bGUubGVmdD1zLWErInB4IixkLnN0eWxlLnRvcD1sLWErInB4IixkLnN0eWxlLmhlaWdodD0yKmErInB4IixkLnN0eWxlLndpZHRoPTIqYSsicHgiLG51bGwhPWkuY29sb3ImJihkLnN0eWxlLmJhY2tncm91bmRDb2xvcj1pLmNvbG9yKSxkLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbj1gJHtjfW1zYCx0aGlzLl9jb250YWluZXJFbGVtZW50LmFwcGVuZENoaWxkKGQpO2xldCB1PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGQpLGg9dS50cmFuc2l0aW9uRHVyYXRpb24sbT0ibm9uZSI9PT11LnRyYW5zaXRpb25Qcm9wZXJ0eXx8IjBzIj09PWh8fCIwcywgMHMiPT09aHx8MD09PXIud2lkdGgmJjA9PT1yLmhlaWdodCxfPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSxyPSExKXt0aGlzLl9yZW5kZXJlcj10LHRoaXMuZWxlbWVudD1lLHRoaXMuY29uZmlnPWksdGhpcy5fYW5pbWF0aW9uRm9yY2libHlEaXNhYmxlZFRocm91Z2hDc3M9cix0aGlzLnN0YXRlPTN9ZmFkZU91dCgpe3RoaXMuX3JlbmRlcmVyLmZhZGVPdXRSaXBwbGUodGhpcyl9fSh0aGlzLGQsaSxtKTtkLnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUzZCgxLCAxLCAxKSIsXy5zdGF0ZT0wLGkucGVyc2lzdGVudHx8KHRoaXMuX21vc3RSZWNlbnRUcmFuc2llbnRSaXBwbGU9Xyk7bGV0IE09bnVsbDtyZXR1cm4hbSYmKGN8fG8uZXhpdER1cmF0aW9uKSYmdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57bGV0IHk9KCk9PnRoaXMuX2ZpbmlzaFJpcHBsZVRyYW5zaXRpb24oXykseD0oKT0+dGhpcy5fZGVzdHJveVJpcHBsZShfKTtkLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHkpLGQuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmNhbmNlbCIseCksTT17b25UcmFuc2l0aW9uRW5kOnksb25UcmFuc2l0aW9uQ2FuY2VsOnh9fSksdGhpcy5fYWN0aXZlUmlwcGxlcy5zZXQoXyxNKSwobXx8IWMpJiZ0aGlzLl9maW5pc2hSaXBwbGVUcmFuc2l0aW9uKF8pLF99ZmFkZU91dFJpcHBsZSh0KXtpZigyPT09dC5zdGF0ZXx8Mz09PXQuc3RhdGUpcmV0dXJuO2xldCBlPXQuZWxlbWVudCxpPXsuLi5QNywuLi50LmNvbmZpZy5hbmltYXRpb259O2Uuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uPWAke2kuZXhpdER1cmF0aW9ufW1zYCxlLnN0eWxlLm9wYWNpdHk9IjAiLHQuc3RhdGU9MiwodC5fYW5pbWF0aW9uRm9yY2libHlEaXNhYmxlZFRocm91Z2hDc3N8fCFpLmV4aXREdXJhdGlvbikmJnRoaXMuX2ZpbmlzaFJpcHBsZVRyYW5zaXRpb24odCl9ZmFkZU91dEFsbCgpe3RoaXMuX2dldEFjdGl2ZVJpcHBsZXMoKS5mb3JFYWNoKHQ9PnQuZmFkZU91dCgpKX1mYWRlT3V0QWxsTm9uUGVyc2lzdGVudCgpe3RoaXMuX2dldEFjdGl2ZVJpcHBsZXMoKS5mb3JFYWNoKHQ9Pnt0LmNvbmZpZy5wZXJzaXN0ZW50fHx0LmZhZGVPdXQoKX0pfXNldHVwVHJpZ2dlckV2ZW50cyh0KXtsZXQgZT1VYSh0KTshdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyfHwhZXx8ZT09PXRoaXMuX3RyaWdnZXJFbGVtZW50fHwodGhpcy5fcmVtb3ZlVHJpZ2dlckV2ZW50cygpLHRoaXMuX3RyaWdnZXJFbGVtZW50PWUsTzcuZm9yRWFjaChpPT57U2guX2V2ZW50TWFuYWdlci5hZGRIYW5kbGVyKHRoaXMuX25nWm9uZSxpLGUsdGhpcyl9KSl9aGFuZGxlRXZlbnQodCl7Im1vdXNlZG93biI9PT10LnR5cGU/dGhpcy5fb25Nb3VzZWRvd24odCk6InRvdWNoc3RhcnQiPT09dC50eXBlP3RoaXMuX29uVG91Y2hTdGFydCh0KTp0aGlzLl9vblBvaW50ZXJVcCgpLHRoaXMuX3BvaW50ZXJVcEV2ZW50c1JlZ2lzdGVyZWR8fCh0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PntGNy5mb3JFYWNoKGU9Pnt0aGlzLl90cmlnZ2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGUsdGhpcyxrNyl9KX0pLHRoaXMuX3BvaW50ZXJVcEV2ZW50c1JlZ2lzdGVyZWQ9ITApfV9maW5pc2hSaXBwbGVUcmFuc2l0aW9uKHQpezA9PT10LnN0YXRlP3RoaXMuX3N0YXJ0RmFkZU91dFRyYW5zaXRpb24odCk6Mj09PXQuc3RhdGUmJnRoaXMuX2Rlc3Ryb3lSaXBwbGUodCl9X3N0YXJ0RmFkZU91dFRyYW5zaXRpb24odCl7bGV0IGU9dD09PXRoaXMuX21vc3RSZWNlbnRUcmFuc2llbnRSaXBwbGUse3BlcnNpc3RlbnQ6aX09dC5jb25maWc7dC5zdGF0ZT0xLCFpJiYoIWV8fCF0aGlzLl9pc1BvaW50ZXJEb3duKSYmdC5mYWRlT3V0KCl9X2Rlc3Ryb3lSaXBwbGUodCl7bGV0IGU9dGhpcy5fYWN0aXZlUmlwcGxlcy5nZXQodCk/P251bGw7dGhpcy5fYWN0aXZlUmlwcGxlcy5kZWxldGUodCksdGhpcy5fYWN0aXZlUmlwcGxlcy5zaXplfHwodGhpcy5fY29udGFpbmVyUmVjdD1udWxsKSx0PT09dGhpcy5fbW9zdFJlY2VudFRyYW5zaWVudFJpcHBsZSYmKHRoaXMuX21vc3RSZWNlbnRUcmFuc2llbnRSaXBwbGU9bnVsbCksdC5zdGF0ZT0zLG51bGwhPT1lJiYodC5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLGUub25UcmFuc2l0aW9uRW5kKSx0LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmNhbmNlbCIsZS5vblRyYW5zaXRpb25DYW5jZWwpKSx0LmVsZW1lbnQucmVtb3ZlKCl9X29uTW91c2Vkb3duKHQpe2xldCBlPUJ2KHQpLGk9dGhpcy5fbGFzdFRvdWNoU3RhcnRFdmVudCYmRGF0ZS5ub3coKTx0aGlzLl9sYXN0VG91Y2hTdGFydEV2ZW50KzgwMDshdGhpcy5fdGFyZ2V0LnJpcHBsZURpc2FibGVkJiYhZSYmIWkmJih0aGlzLl9pc1BvaW50ZXJEb3duPSEwLHRoaXMuZmFkZUluUmlwcGxlKHQuY2xpZW50WCx0LmNsaWVudFksdGhpcy5fdGFyZ2V0LnJpcHBsZUNvbmZpZykpfV9vblRvdWNoU3RhcnQodCl7aWYoIXRoaXMuX3RhcmdldC5yaXBwbGVEaXNhYmxlZCYmIVZ2KHQpKXt0aGlzLl9sYXN0VG91Y2hTdGFydEV2ZW50PURhdGUubm93KCksdGhpcy5faXNQb2ludGVyRG93bj0hMDtsZXQgZT10LmNoYW5nZWRUb3VjaGVzO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSsrKXRoaXMuZmFkZUluUmlwcGxlKGVbaV0uY2xpZW50WCxlW2ldLmNsaWVudFksdGhpcy5fdGFyZ2V0LnJpcHBsZUNvbmZpZyl9fV9vblBvaW50ZXJVcCgpeyF0aGlzLl9pc1BvaW50ZXJEb3dufHwodGhpcy5faXNQb2ludGVyRG93bj0hMSx0aGlzLl9nZXRBY3RpdmVSaXBwbGVzKCkuZm9yRWFjaCh0PT57IXQuY29uZmlnLnBlcnNpc3RlbnQmJigxPT09dC5zdGF0ZXx8dC5jb25maWcudGVybWluYXRlT25Qb2ludGVyVXAmJjA9PT10LnN0YXRlKSYmdC5mYWRlT3V0KCl9KSl9X2dldEFjdGl2ZVJpcHBsZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9hY3RpdmVSaXBwbGVzLmtleXMoKSl9X3JlbW92ZVRyaWdnZXJFdmVudHMoKXtsZXQgdD10aGlzLl90cmlnZ2VyRWxlbWVudDt0JiYoTzcuZm9yRWFjaChlPT5TaC5fZXZlbnRNYW5hZ2VyLnJlbW92ZUhhbmRsZXIoZSx0LHRoaXMpKSx0aGlzLl9wb2ludGVyVXBFdmVudHNSZWdpc3RlcmVkJiZGNy5mb3JFYWNoKGU9PnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHRoaXMsazcpKSl9fTtTaC5fZXZlbnRNYW5hZ2VyPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2V2ZW50cz1uZXcgTWFwLHRoaXMuX2RlbGVnYXRlRXZlbnRIYW5kbGVyPXQ9PntsZXQgZT1icyh0KTtlJiZ0aGlzLl9ldmVudHMuZ2V0KHQudHlwZSk/LmZvckVhY2goKGkscik9Pnsocj09PWV8fHIuY29udGFpbnMoZSkpJiZpLmZvckVhY2gobz0+by5oYW5kbGVFdmVudCh0KSl9KX19YWRkSGFuZGxlcih0LGUsaSxyKXtsZXQgbz10aGlzLl9ldmVudHMuZ2V0KGUpO2lmKG8pe2xldCBhPW8uZ2V0KGkpO2E/YS5hZGQocik6by5zZXQoaSxuZXcgU2V0KFtyXSkpfWVsc2UgdGhpcy5fZXZlbnRzLnNldChlLG5ldyBNYXAoW1tpLG5ldyBTZXQoW3JdKV1dKSksdC5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoZSx0aGlzLl9kZWxlZ2F0ZUV2ZW50SGFuZGxlcixSNyl9KX1yZW1vdmVIYW5kbGVyKHQsZSxpKXtsZXQgcj10aGlzLl9ldmVudHMuZ2V0KHQpO2lmKCFyKXJldHVybjtsZXQgbz1yLmdldChlKTshb3x8KG8uZGVsZXRlKGkpLDA9PT1vLnNpemUmJnIuZGVsZXRlKGUpLDA9PT1yLnNpemUmJih0aGlzLl9ldmVudHMuZGVsZXRlKHQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodCx0aGlzLl9kZWxlZ2F0ZUV2ZW50SGFuZGxlcixSNykpKX19O3ZhciBUaD1uZXcgdGUoIm1hdC1yaXBwbGUtZ2xvYmFsLW9wdGlvbnMiKSxLaT0oKCk9PntjbGFzcyBue2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQoZSl7ZSYmdGhpcy5mYWRlT3V0QWxsTm9uUGVyc2lzdGVudCgpLHRoaXMuX2Rpc2FibGVkPWUsdGhpcy5fc2V0dXBUcmlnZ2VyRXZlbnRzSWZFbmFibGVkKCl9Z2V0IHRyaWdnZXIoKXtyZXR1cm4gdGhpcy5fdHJpZ2dlcnx8dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50fXNldCB0cmlnZ2VyKGUpe3RoaXMuX3RyaWdnZXI9ZSx0aGlzLl9zZXR1cFRyaWdnZXJFdmVudHNJZkVuYWJsZWQoKX1jb25zdHJ1Y3RvcihlLGkscixvLGEpe3RoaXMuX2VsZW1lbnRSZWY9ZSx0aGlzLl9hbmltYXRpb25Nb2RlPWEsdGhpcy5yYWRpdXM9MCx0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLl9pc0luaXRpYWxpemVkPSExLHRoaXMuX2dsb2JhbE9wdGlvbnM9b3x8e30sdGhpcy5fcmlwcGxlUmVuZGVyZXI9bmV3IFNoKHRoaXMsaSxlLHIpfW5nT25Jbml0KCl7dGhpcy5faXNJbml0aWFsaXplZD0hMCx0aGlzLl9zZXR1cFRyaWdnZXJFdmVudHNJZkVuYWJsZWQoKX1uZ09uRGVzdHJveSgpe3RoaXMuX3JpcHBsZVJlbmRlcmVyLl9yZW1vdmVUcmlnZ2VyRXZlbnRzKCl9ZmFkZU91dEFsbCgpe3RoaXMuX3JpcHBsZVJlbmRlcmVyLmZhZGVPdXRBbGwoKX1mYWRlT3V0QWxsTm9uUGVyc2lzdGVudCgpe3RoaXMuX3JpcHBsZVJlbmRlcmVyLmZhZGVPdXRBbGxOb25QZXJzaXN0ZW50KCl9Z2V0IHJpcHBsZUNvbmZpZygpe3JldHVybntjZW50ZXJlZDp0aGlzLmNlbnRlcmVkLHJhZGl1czp0aGlzLnJhZGl1cyxjb2xvcjp0aGlzLmNvbG9yLGFuaW1hdGlvbjp7Li4udGhpcy5fZ2xvYmFsT3B0aW9ucy5hbmltYXRpb24sLi4uIk5vb3BBbmltYXRpb25zIj09PXRoaXMuX2FuaW1hdGlvbk1vZGU/e2VudGVyRHVyYXRpb246MCxleGl0RHVyYXRpb246MH06e30sLi4udGhpcy5hbmltYXRpb259LHRlcm1pbmF0ZU9uUG9pbnRlclVwOnRoaXMuX2dsb2JhbE9wdGlvbnMudGVybWluYXRlT25Qb2ludGVyVXB9fWdldCByaXBwbGVEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVkfHwhIXRoaXMuX2dsb2JhbE9wdGlvbnMuZGlzYWJsZWR9X3NldHVwVHJpZ2dlckV2ZW50c0lmRW5hYmxlZCgpeyF0aGlzLmRpc2FibGVkJiZ0aGlzLl9pc0luaXRpYWxpemVkJiZ0aGlzLl9yaXBwbGVSZW5kZXJlci5zZXR1cFRyaWdnZXJFdmVudHModGhpcy50cmlnZ2VyKX1sYXVuY2goZSxpPTAscil7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP3RoaXMuX3JpcHBsZVJlbmRlcmVyLmZhZGVJblJpcHBsZShlLGksey4uLnRoaXMucmlwcGxlQ29uZmlnLC4uLnJ9KTp0aGlzLl9yaXBwbGVSZW5kZXJlci5mYWRlSW5SaXBwbGUoMCwwLHsuLi50aGlzLnJpcHBsZUNvbmZpZywuLi5lfSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMob3QpLEMoVm4pLEMoVGgsOCksQyhwaSw4KSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsIm1hdC1yaXBwbGUiLCIiXSxbIiIsIm1hdFJpcHBsZSIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1yaXBwbGUiXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezImZSYmbnQoIm1hdC1yaXBwbGUtdW5ib3VuZGVkIixpLnVuYm91bmRlZCl9LGlucHV0czp7Y29sb3I6WyJtYXRSaXBwbGVDb2xvciIsImNvbG9yIl0sdW5ib3VuZGVkOlsibWF0UmlwcGxlVW5ib3VuZGVkIiwidW5ib3VuZGVkIl0sY2VudGVyZWQ6WyJtYXRSaXBwbGVDZW50ZXJlZCIsImNlbnRlcmVkIl0scmFkaXVzOlsibWF0UmlwcGxlUmFkaXVzIiwicmFkaXVzIl0sYW5pbWF0aW9uOlsibWF0UmlwcGxlQW5pbWF0aW9uIiwiYW5pbWF0aW9uIl0sZGlzYWJsZWQ6WyJtYXRSaXBwbGVEaXNhYmxlZCIsImRpc2FibGVkIl0sdHJpZ2dlcjpbIm1hdFJpcHBsZVRyaWdnZXIiLCJ0cmlnZ2VyIl19LGV4cG9ydEFzOlsibWF0UmlwcGxlIl19KSxufSkoKSxfYT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbZG4sZG5dfSksbn0pKCksVl9lPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5fYW5pbWF0aW9uTW9kZT1lLHRoaXMuc3RhdGU9InVuY2hlY2tlZCIsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLmFwcGVhcmFuY2U9ImZ1bGwifX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHBpLDgpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtYXQtcHNldWRvLWNoZWNrYm94Il1dLGhvc3RBdHRyczpbMSwibWF0LXBzZXVkby1jaGVja2JveCJdLGhvc3RWYXJzOjEyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezImZSYmbnQoIm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSIsImluZGV0ZXJtaW5hdGUiPT09aS5zdGF0ZSkoIm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCIsImNoZWNrZWQiPT09aS5zdGF0ZSkoIm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQiLGkuZGlzYWJsZWQpKCJtYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWwiLCJtaW5pbWFsIj09PWkuYXBwZWFyYW5jZSkoIm1hdC1wc2V1ZG8tY2hlY2tib3gtZnVsbCIsImZ1bGwiPT09aS5hcHBlYXJhbmNlKSgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLCJOb29wQW5pbWF0aW9ucyI9PT1pLl9hbmltYXRpb25Nb2RlKX0saW5wdXRzOntzdGF0ZToic3RhdGUiLGRpc2FibGVkOiJkaXNhYmxlZCIsYXBwZWFyYW5jZToiYXBwZWFyYW5jZSJ9LGRlY2xzOjAsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7fSxzdHlsZXM6WycubWF0LXBzZXVkby1jaGVja2JveHtib3JkZXItcmFkaXVzOjJweDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgOTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpLGJhY2tncm91bmQtY29sb3IgOTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpfS5tYXQtcHNldWRvLWNoZWNrYm94OjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7Y29udGVudDoiIjtib3JkZXItYm90dG9tOjJweCBzb2xpZCBjdXJyZW50Q29sb3I7dHJhbnNpdGlvbjpvcGFjaXR5IDkwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKX0ubWF0LXBzZXVkby1jaGVja2JveC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZXt0cmFuc2l0aW9uOm5vbmUgIWltcG9ydGFudDthbmltYXRpb246bm9uZSAhaW1wb3J0YW50fS5tYXQtcHNldWRvLWNoZWNrYm94Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlOjphZnRlcnt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9Lm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZTo6YWZ0ZXJ7bGVmdDoxcHg7b3BhY2l0eToxO2JvcmRlci1yYWRpdXM6MnB4fS5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQ6OmFmdGVye2xlZnQ6MXB4O2JvcmRlci1sZWZ0OjJweCBzb2xpZCBjdXJyZW50Q29sb3I7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO29wYWNpdHk6MTtib3gtc2l6aW5nOmNvbnRlbnQtYm94fS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGx7Ym9yZGVyOjJweCBzb2xpZH0ubWF0LXBzZXVkby1jaGVja2JveC1mdWxsLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCwubWF0LXBzZXVkby1jaGVja2JveC1mdWxsLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZXtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKX0ubWF0LXBzZXVkby1jaGVja2JveHt3aWR0aDoxOHB4O2hlaWdodDoxOHB4fS5tYXQtcHNldWRvLWNoZWNrYm94LW1pbmltYWwubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkOjphZnRlcnt3aWR0aDoxNHB4O2hlaWdodDo2cHg7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7dG9wOi00LjI0MjY0MDY4NzFweDtsZWZ0OjA7Ym90dG9tOjA7cmlnaHQ6MDttYXJnaW46YXV0b30ubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFsLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZTo6YWZ0ZXJ7dG9wOjhweDt3aWR0aDoxNnB4fS5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGwubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkOjphZnRlcnt3aWR0aDoxMHB4O2hlaWdodDo0cHg7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7dG9wOi0yLjgyODQyNzEyNDdweDtsZWZ0OjA7Ym90dG9tOjA7cmlnaHQ6MDttYXJnaW46YXV0b30ubWF0LXBzZXVkby1jaGVja2JveC1mdWxsLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZTo6YWZ0ZXJ7dG9wOjZweDt3aWR0aDoxMnB4fSddLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLEhfZT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbZG5dfSksbn0pKCksVXY9bmV3IHRlKCJNQVRfT1BUSU9OX1BBUkVOVF9DT01QT05FTlQiKSxqdj0oYW8oY2xhc3N7fSksbmV3IHRlKCJNYXRPcHRncm91cCIpKSx6X2U9MCx6dj1jbGFzc3tjb25zdHJ1Y3Rvcih0LGU9ITEpe3RoaXMuc291cmNlPXQsdGhpcy5pc1VzZXJJbnB1dD1lfX0sVV9lPSgoKT0+e2NsYXNzIG57Z2V0IG11bHRpcGxlKCl7cmV0dXJuIHRoaXMuX3BhcmVudCYmdGhpcy5fcGFyZW50Lm11bHRpcGxlfWdldCBzZWxlY3RlZCgpe3JldHVybiB0aGlzLl9zZWxlY3RlZH1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5ncm91cCYmdGhpcy5ncm91cC5kaXNhYmxlZHx8dGhpcy5fZGlzYWJsZWR9c2V0IGRpc2FibGVkKGUpe3RoaXMuX2Rpc2FibGVkPXZ0KGUpfWdldCBkaXNhYmxlUmlwcGxlKCl7cmV0dXJuISghdGhpcy5fcGFyZW50fHwhdGhpcy5fcGFyZW50LmRpc2FibGVSaXBwbGUpfWdldCBoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yKCl7cmV0dXJuISghdGhpcy5fcGFyZW50fHwhdGhpcy5fcGFyZW50LmhpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3IpfWNvbnN0cnVjdG9yKGUsaSxyLG8pe3RoaXMuX2VsZW1lbnQ9ZSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1pLHRoaXMuX3BhcmVudD1yLHRoaXMuZ3JvdXA9byx0aGlzLl9zZWxlY3RlZD0hMSx0aGlzLl9hY3RpdmU9ITEsdGhpcy5fZGlzYWJsZWQ9ITEsdGhpcy5fbW9zdFJlY2VudFZpZXdWYWx1ZT0iIix0aGlzLmlkPSJtYXQtb3B0aW9uLSIrel9lKyssdGhpcy5vblNlbGVjdGlvbkNoYW5nZT1uZXcgRix0aGlzLl9zdGF0ZUNoYW5nZXM9bmV3IEVlfWdldCBhY3RpdmUoKXtyZXR1cm4gdGhpcy5fYWN0aXZlfWdldCB2aWV3VmFsdWUoKXtyZXR1cm4odGhpcy5fdGV4dD8ubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudHx8IiIpLnRyaW0oKX1zZWxlY3QoKXt0aGlzLl9zZWxlY3RlZHx8KHRoaXMuX3NlbGVjdGVkPSEwLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpLHRoaXMuX2VtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpKX1kZXNlbGVjdCgpe3RoaXMuX3NlbGVjdGVkJiYodGhpcy5fc2VsZWN0ZWQ9ITEsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5fZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCkpfWZvY3VzKGUsaSl7bGV0IHI9dGhpcy5fZ2V0SG9zdEVsZW1lbnQoKTsiZnVuY3Rpb24iPT10eXBlb2Ygci5mb2N1cyYmci5mb2N1cyhpKX1zZXRBY3RpdmVTdHlsZXMoKXt0aGlzLl9hY3RpdmV8fCh0aGlzLl9hY3RpdmU9ITAsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfXNldEluYWN0aXZlU3R5bGVzKCl7dGhpcy5fYWN0aXZlJiYodGhpcy5fYWN0aXZlPSExLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1nZXRMYWJlbCgpe3JldHVybiB0aGlzLnZpZXdWYWx1ZX1faGFuZGxlS2V5ZG93bihlKXsoMTM9PT1lLmtleUNvZGV8fDMyPT09ZS5rZXlDb2RlKSYmIU9yKGUpJiYodGhpcy5fc2VsZWN0VmlhSW50ZXJhY3Rpb24oKSxlLnByZXZlbnREZWZhdWx0KCkpfV9zZWxlY3RWaWFJbnRlcmFjdGlvbigpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLl9zZWxlY3RlZD0hdGhpcy5tdWx0aXBsZXx8IXRoaXMuX3NlbGVjdGVkLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpLHRoaXMuX2VtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCghMCkpfV9nZXRUYWJJbmRleCgpe3JldHVybiB0aGlzLmRpc2FibGVkPyItMSI6IjAifV9nZXRIb3N0RWxlbWVudCgpe3JldHVybiB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnR9bmdBZnRlclZpZXdDaGVja2VkKCl7aWYodGhpcy5fc2VsZWN0ZWQpe2xldCBlPXRoaXMudmlld1ZhbHVlO2UhPT10aGlzLl9tb3N0UmVjZW50Vmlld1ZhbHVlJiYodGhpcy5fbW9zdFJlY2VudFZpZXdWYWx1ZSYmdGhpcy5fc3RhdGVDaGFuZ2VzLm5leHQoKSx0aGlzLl9tb3N0UmVjZW50Vmlld1ZhbHVlPWUpfX1uZ09uRGVzdHJveSgpe3RoaXMuX3N0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpfV9lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoZT0hMSl7dGhpcy5vblNlbGVjdGlvbkNoYW5nZS5lbWl0KG5ldyB6dih0aGlzLGUpKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe2NzKCl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sdmlld1F1ZXJ5OmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiZVZShEX2UsNyksMiZlKXtsZXQgcjtiZShyPXZlKCkpJiYoaS5fdGV4dD1yLmZpcnN0KX19LGlucHV0czp7dmFsdWU6InZhbHVlIixpZDoiaWQiLGRpc2FibGVkOiJkaXNhYmxlZCJ9LG91dHB1dHM6e29uU2VsZWN0aW9uQ2hhbmdlOiJvblNlbGVjdGlvbkNoYW5nZSJ9fSksbn0pKCksamE9KCgpPT57Y2xhc3MgbiBleHRlbmRzIFVfZXtjb25zdHJ1Y3RvcihlLGkscixvKXtzdXBlcihlLGkscixvKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyh4ZSksQyhRdCksQyhVdiw4KSxDKGp2LDgpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtYXQtb3B0aW9uIl1dLGhvc3RBdHRyczpbInJvbGUiLCJvcHRpb24iLDEsIm1hdC1tZGMtb3B0aW9uIiwibWRjLWxpc3QtaXRlbSJdLGhvc3RWYXJzOjExLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezEmZSYmQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGkuX3NlbGVjdFZpYUludGVyYWN0aW9uKCl9KSgia2V5ZG93biIsZnVuY3Rpb24obyl7cmV0dXJuIGkuX2hhbmRsZUtleWRvd24obyl9KSwyJmUmJih3bygiaWQiLGkuaWQpLEJlKCJhcmlhLXNlbGVjdGVkIixpLnNlbGVjdGVkKSgiYXJpYS1kaXNhYmxlZCIsaS5kaXNhYmxlZC50b1N0cmluZygpKSxudCgibWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQiLGkuc2VsZWN0ZWQpKCJtYXQtbWRjLW9wdGlvbi1tdWx0aXBsZSIsaS5tdWx0aXBsZSkoIm1hdC1tZGMtb3B0aW9uLWFjdGl2ZSIsaS5hY3RpdmUpKCJtZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCIsaS5kaXNhYmxlZCkpfSxleHBvcnRBczpbIm1hdE9wdGlvbiJdLGZlYXR1cmVzOltYZV0sbmdDb250ZW50U2VsZWN0b3JzOmtfZSxkZWNsczo4LHZhcnM6NSxjb25zdHM6W1siY2xhc3MiLCJtYXQtbWRjLW9wdGlvbi1wc2V1ZG8tY2hlY2tib3giLDMsInN0YXRlIiwiZGlzYWJsZWQiLDQsIm5nSWYiXSxbMSwibWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0Il0sWyJ0ZXh0IiwiIl0sWyJjbGFzcyIsIm1hdC1tZGMtb3B0aW9uLXBzZXVkby1jaGVja2JveCIsInN0YXRlIiwiY2hlY2tlZCIsImFwcGVhcmFuY2UiLCJtaW5pbWFsIiwzLCJkaXNhYmxlZCIsNCwibmdJZiJdLFsiY2xhc3MiLCJjZGstdmlzdWFsbHktaGlkZGVuIiw0LCJuZ0lmIl0sWyJtYXQtcmlwcGxlIiwiIiwxLCJtYXQtbWRjLW9wdGlvbi1yaXBwbGUiLCJtYXQtbWRjLWZvY3VzLWluZGljYXRvciIsMywibWF0UmlwcGxlVHJpZ2dlciIsIm1hdFJpcHBsZURpc2FibGVkIl0sWzEsIm1hdC1tZGMtb3B0aW9uLXBzZXVkby1jaGVja2JveCIsMywic3RhdGUiLCJkaXNhYmxlZCJdLFsic3RhdGUiLCJjaGVja2VkIiwiYXBwZWFyYW5jZSIsIm1pbmltYWwiLDEsIm1hdC1tZGMtb3B0aW9uLXBzZXVkby1jaGVja2JveCIsMywiZGlzYWJsZWQiXSxbMSwiY2RrLXZpc3VhbGx5LWhpZGRlbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGZuKFBfZSksUygwLElfZSwxLDIsIm1hdC1wc2V1ZG8tY2hlY2tib3giLDApLFR0KDEpLGYoMiwic3BhbiIsMSwyKSxUdCg0LDEpLGcoKSxTKDUsQV9lLDEsMSwibWF0LXBzZXVkby1jaGVja2JveCIsMyksUyg2LFJfZSwyLDEsInNwYW4iLDQpLGsoNywiZGl2Iiw1KSksMiZlJiYoYigibmdJZiIsaS5tdWx0aXBsZSksdig1KSxiKCJuZ0lmIiwhaS5tdWx0aXBsZSYmaS5zZWxlY3RlZCYmIWkuaGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvciksdigxKSxiKCJuZ0lmIixpLmdyb3VwJiZpLmdyb3VwLl9pbmVydCksdigxKSxiKCJtYXRSaXBwbGVUcmlnZ2VyIixpLl9nZXRIb3N0RWxlbWVudCgpKSgibWF0UmlwcGxlRGlzYWJsZWQiLGkuZGlzYWJsZWR8fGkuZGlzYWJsZVJpcHBsZSkpfSxkZXBlbmRlbmNpZXM6W0tpLE5lLFZfZV0sc3R5bGVzOlsnLm1hdC1tZGMtb3B0aW9ue2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwYWRkaW5nLWxlZnQ6MTZweDtwYWRkaW5nLXJpZ2h0OjE2cHg7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCk7bWluLWhlaWdodDo0OHB4fS5tYXQtbWRjLW9wdGlvbjpmb2N1c3tvdXRsaW5lOm5vbmV9W2Rpcj1ydGxdIC5tYXQtbWRjLW9wdGlvbiwubWF0LW1kYy1vcHRpb25bZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjE2cHg7cGFkZGluZy1yaWdodDoxNnB4fS5tYXQtbWRjLW9wdGlvbi5tZGMtbGlzdC1pdGVte2FsaWduLWl0ZW1zOmNlbnRlcn0ubWF0LW1kYy1vcHRpb24ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWR7b3BhY2l0eTouMzg7Y3Vyc29yOmRlZmF1bHR9Lm1hdC1tZGMtb3B0Z3JvdXAgLm1hdC1tZGMtb3B0aW9uOm5vdCgubWF0LW1kYy1vcHRpb24tbXVsdGlwbGUpe3BhZGRpbmctbGVmdDozMnB4fVtkaXI9cnRsXSAubWF0LW1kYy1vcHRncm91cCAubWF0LW1kYy1vcHRpb246bm90KC5tYXQtbWRjLW9wdGlvbi1tdWx0aXBsZSl7cGFkZGluZy1sZWZ0OjE2cHg7cGFkZGluZy1yaWdodDozMnB4fS5tYXQtbWRjLW9wdGlvbiAubWF0LWljb24sLm1hdC1tZGMtb3B0aW9uIC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGx7bWFyZ2luLXJpZ2h0OjE2cHg7ZmxleC1zaHJpbms6MH1bZGlyPXJ0bF0gLm1hdC1tZGMtb3B0aW9uIC5tYXQtaWNvbixbZGlyPXJ0bF0gLm1hdC1tZGMtb3B0aW9uIC5tYXQtcHNldWRvLWNoZWNrYm94LWZ1bGx7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6MTZweH0ubWF0LW1kYy1vcHRpb24gLm1hdC1wc2V1ZG8tY2hlY2tib3gtbWluaW1hbHttYXJnaW4tbGVmdDoxNnB4O2ZsZXgtc2hyaW5rOjB9W2Rpcj1ydGxdIC5tYXQtbWRjLW9wdGlvbiAubWF0LXBzZXVkby1jaGVja2JveC1taW5pbWFse21hcmdpbi1yaWdodDoxNnB4O21hcmdpbi1sZWZ0OjB9Lm1hdC1tZGMtb3B0aW9uIC5tYXQtbWRjLW9wdGlvbi1yaXBwbGV7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZX0ubWF0LW1kYy1vcHRpb24gLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dHt3aGl0ZS1zcGFjZTpub3JtYWw7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdDtsZXR0ZXItc3BhY2luZzppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7Zm9udC1mYW1pbHk6aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246aW5oZXJpdDt0ZXh0LXRyYW5zZm9ybTppbmhlcml0O21hcmdpbi1yaWdodDphdXRvfVtkaXI9cnRsXSAubWF0LW1kYy1vcHRpb24gLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dHttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDphdXRvfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZGMtb3B0aW9uLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOm5vdCgubWF0LW1kYy1vcHRpb24tbXVsdGlwbGUpOjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MTZweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt3aWR0aDoxMHB4O2hlaWdodDowO2JvcmRlci1ib3R0b206c29saWQgMTBweDtib3JkZXItcmFkaXVzOjEwcHh9W2Rpcj1ydGxdIC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZGMtb3B0aW9uLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOm5vdCgubWF0LW1kYy1vcHRpb24tbXVsdGlwbGUpOjphZnRlcntyaWdodDphdXRvO2xlZnQ6MTZweH0ubWF0LW1kYy1vcHRpb24tYWN0aXZlIC5tYXQtbWRjLWZvY3VzLWluZGljYXRvcjo6YmVmb3Jle2NvbnRlbnQ6IiJ9J10sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCk7ZnVuY3Rpb24gejEobix0LGUpe2lmKGUubGVuZ3RoKXtsZXQgaT10LnRvQXJyYXkoKSxyPWUudG9BcnJheSgpLG89MDtmb3IobGV0IGE9MDthPG4rMTthKyspaVthXS5ncm91cCYmaVthXS5ncm91cD09PXJbb10mJm8rKztyZXR1cm4gb31yZXR1cm4gMH1mdW5jdGlvbiBVMShuLHQsZSxpKXtyZXR1cm4gbjxlP246bit0PmUraT9NYXRoLm1heCgwLG4taSt0KTplfXZhciBtZz0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbX2EsRGUsZG4sSF9lXX0pLG59KSgpLEI3PVsibWF0LWJ1dHRvbiIsIiJdLGcyPVtbWyIiLDgsIm1hdGVyaWFsLWljb25zIiwzLCJpY29uUG9zaXRpb25FbmQiLCIiXSxbIm1hdC1pY29uIiwzLCJpY29uUG9zaXRpb25FbmQiLCIiXSxbIiIsIm1hdEJ1dHRvbkljb24iLCIiLDMsImljb25Qb3NpdGlvbkVuZCIsIiJdXSwiKiIsW1siIiwiaWNvblBvc2l0aW9uRW5kIiwiIiw4LCJtYXRlcmlhbC1pY29ucyJdLFsibWF0LWljb24iLCJpY29uUG9zaXRpb25FbmQiLCIiXSxbIiIsIm1hdEJ1dHRvbkljb24iLCIiLCJpY29uUG9zaXRpb25FbmQiLCIiXV1dLF8yPVsiLm1hdGVyaWFsLWljb25zOm5vdChbaWNvblBvc2l0aW9uRW5kXSksIG1hdC1pY29uOm5vdChbaWNvblBvc2l0aW9uRW5kXSksIFttYXRCdXR0b25JY29uXTpub3QoW2ljb25Qb3NpdGlvbkVuZF0pIiwiKiIsIi5tYXRlcmlhbC1pY29uc1tpY29uUG9zaXRpb25FbmRdLCBtYXQtaWNvbltpY29uUG9zaXRpb25FbmRdLCBbbWF0QnV0dG9uSWNvbl1baWNvblBvc2l0aW9uRW5kXSJdLGIyPSIuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWRjLWJ1dHRvbjpub3QoLm1kYy1idXR0b24tLW91dGxpbmVkKSwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uOm5vdCgubWRjLWJ1dHRvbi0tb3V0bGluZWQpLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbjpub3QoLm1kYy1idXR0b24tLW91dGxpbmVkKSwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbjpub3QoLm1kYy1idXR0b24tLW91dGxpbmVkKSwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWRjLWljb24tYnV0dG9ue291dGxpbmU6c29saWQgMXB4fSIsVjc9WyJtYXQtaWNvbi1idXR0b24iLCIiXSxHX2U9WyIqIl0scV9lPVt7c2VsZWN0b3I6Im1hdC1idXR0b24iLG1kY0NsYXNzZXM6WyJtZGMtYnV0dG9uIiwibWF0LW1kYy1idXR0b24iXX0se3NlbGVjdG9yOiJtYXQtZmxhdC1idXR0b24iLG1kY0NsYXNzZXM6WyJtZGMtYnV0dG9uIiwibWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCIsIm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24iXX0se3NlbGVjdG9yOiJtYXQtcmFpc2VkLWJ1dHRvbiIsbWRjQ2xhc3NlczpbIm1kYy1idXR0b24iLCJtZGMtYnV0dG9uLS1yYWlzZWQiLCJtYXQtbWRjLXJhaXNlZC1idXR0b24iXX0se3NlbGVjdG9yOiJtYXQtc3Ryb2tlZC1idXR0b24iLG1kY0NsYXNzZXM6WyJtZGMtYnV0dG9uIiwibWRjLWJ1dHRvbi0tb3V0bGluZWQiLCJtYXQtbWRjLW91dGxpbmVkLWJ1dHRvbiJdfSx7c2VsZWN0b3I6Im1hdC1mYWIiLG1kY0NsYXNzZXM6WyJtZGMtZmFiIiwibWF0LW1kYy1mYWIiXX0se3NlbGVjdG9yOiJtYXQtbWluaS1mYWIiLG1kY0NsYXNzZXM6WyJtZGMtZmFiIiwibWRjLWZhYi0tbWluaSIsIm1hdC1tZGMtbWluaS1mYWIiXX0se3NlbGVjdG9yOiJtYXQtaWNvbi1idXR0b24iLG1kY0NsYXNzZXM6WyJtZGMtaWNvbi1idXR0b24iLCJtYXQtbWRjLWljb24tYnV0dG9uIl19XSxYX2U9S28oYW8oZ28oY2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5fZWxlbWVudFJlZj1ufX0pKSksdjI9KCgpPT57Y2xhc3MgbiBleHRlbmRzIFhfZXtjb25zdHJ1Y3RvcihlLGkscixvKXtzdXBlcihlKSx0aGlzLl9wbGF0Zm9ybT1pLHRoaXMuX25nWm9uZT1yLHRoaXMuX2FuaW1hdGlvbk1vZGU9byx0aGlzLl9mb2N1c01vbml0b3I9JG4oZm8pLHRoaXMuX2lzRmFiPSExO2xldCBhPWUubmF0aXZlRWxlbWVudC5jbGFzc0xpc3Q7Zm9yKGxldCBzIG9mIHFfZSl0aGlzLl9oYXNIb3N0QXR0cmlidXRlcyhzLnNlbGVjdG9yKSYmcy5tZGNDbGFzc2VzLmZvckVhY2gobD0+e2EuYWRkKGwpfSl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwhMCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZil9Zm9jdXMoZT0icHJvZ3JhbSIsaSl7ZT90aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LGUsaSk6dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKGkpfV9oYXNIb3N0QXR0cmlidXRlcyguLi5lKXtyZXR1cm4gZS5zb21lKGk9PnRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5oYXNBdHRyaWJ1dGUoaSkpfV9pc1JpcHBsZURpc2FibGVkKCl7cmV0dXJuIHRoaXMuZGlzYWJsZVJpcHBsZXx8dGhpcy5kaXNhYmxlZH19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe2NzKCl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sdmlld1F1ZXJ5OmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiZVZShLaSw1KSwyJmUpe2xldCByO2JlKHI9dmUoKSkmJihpLnJpcHBsZT1yLmZpcnN0KX19LGZlYXR1cmVzOltYZV19KSxufSkoKSxINz0oKCk9PntjbGFzcyBuIGV4dGVuZHMgdjJ7Y29uc3RydWN0b3IoZSxpLHIsbyl7c3VwZXIoZSxpLHIsbyksdGhpcy5faGFsdERpc2FibGVkRXZlbnRzPWE9Pnt0aGlzLmRpc2FibGVkJiYoYS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfX1uZ09uSW5pdCgpe3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5faGFsdERpc2FibGVkRXZlbnRzKX0pfW5nT25EZXN0cm95KCl7c3VwZXIubmdPbkRlc3Ryb3koKSx0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2hhbHREaXNhYmxlZEV2ZW50cyl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtjcygpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLGZlYXR1cmVzOltYZV19KSxufSkoKSxraT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgdjJ7Y29uc3RydWN0b3IoZSxpLHIsbyl7c3VwZXIoZSxpLHIsbyl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMoVm4pLEMob3QpLEMocGksOCkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImJ1dHRvbiIsIm1hdC1idXR0b24iLCIiXSxbImJ1dHRvbiIsIm1hdC1yYWlzZWQtYnV0dG9uIiwiIl0sWyJidXR0b24iLCJtYXQtZmxhdC1idXR0b24iLCIiXSxbImJ1dHRvbiIsIm1hdC1zdHJva2VkLWJ1dHRvbiIsIiJdXSxob3N0VmFyczo3LGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezImZSYmKEJlKCJkaXNhYmxlZCIsaS5kaXNhYmxlZHx8bnVsbCksbnQoIl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIiwiTm9vcEFuaW1hdGlvbnMiPT09aS5fYW5pbWF0aW9uTW9kZSkoIm1hdC11bnRoZW1lZCIsIWkuY29sb3IpKCJtYXQtbWRjLWJ1dHRvbi1iYXNlIiwhMCkpfSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCIsZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIsY29sb3I6ImNvbG9yIn0sZXhwb3J0QXM6WyJtYXRCdXR0b24iXSxmZWF0dXJlczpbWGVdLGF0dHJzOkI3LG5nQ29udGVudFNlbGVjdG9yczpfMixkZWNsczo4LHZhcnM6Nixjb25zdHM6W1sxLCJtYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZSJdLFsxLCJtZGMtYnV0dG9uX19sYWJlbCJdLFsxLCJtYXQtbWRjLWZvY3VzLWluZGljYXRvciJdLFsibWF0UmlwcGxlIiwiIiwxLCJtYXQtbWRjLWJ1dHRvbi1yaXBwbGUiLDMsIm1hdFJpcHBsZURpc2FibGVkIiwibWF0UmlwcGxlVHJpZ2dlciJdLFsxLCJtYXQtbWRjLWJ1dHRvbi10b3VjaC10YXJnZXQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmbihnMiksaygwLCJzcGFuIiwwKSxUdCgxKSxmKDIsInNwYW4iLDEpLFR0KDMsMSksZygpLFR0KDQsMiksayg1LCJzcGFuIiwyKSg2LCJzcGFuIiwzKSg3LCJzcGFuIiw0KSksMiZlJiYobnQoIm1kYy1idXR0b25fX3JpcHBsZSIsIWkuX2lzRmFiKSgibWRjLWZhYl9fcmlwcGxlIixpLl9pc0ZhYiksdig2KSxiKCJtYXRSaXBwbGVEaXNhYmxlZCIsaS5faXNSaXBwbGVEaXNhYmxlZCgpKSgibWF0UmlwcGxlVHJpZ2dlciIsaS5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSl9LGRlcGVuZGVuY2llczpbS2ldLHN0eWxlczpbJy5tZGMtdG91Y2gtdGFyZ2V0LXdyYXBwZXJ7ZGlzcGxheTppbmxpbmV9Lm1kYy1lbGV2YXRpb24tb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOmluaGVyaXQ7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OnZhcigtLW1kYy1lbGV2YXRpb24tb3ZlcmxheS1vcGFjaXR5LCAwKTt0cmFuc2l0aW9uOm9wYWNpdHkgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKX0ubWRjLWJ1dHRvbntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDttaW4td2lkdGg6NjRweDtib3JkZXI6bm9uZTtvdXRsaW5lOm5vbmU7bGluZS1oZWlnaHQ6aW5oZXJpdDt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO292ZXJmbG93OnZpc2libGU7dmVydGljYWwtYWxpZ246bWlkZGxlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKX0ubWRjLWJ1dHRvbiAubWRjLWVsZXZhdGlvbi1vdmVybGF5e3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG9wOjA7bGVmdDowfS5tZGMtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye3BhZGRpbmc6MDtib3JkZXI6MH0ubWRjLWJ1dHRvbjphY3RpdmV7b3V0bGluZTpub25lfS5tZGMtYnV0dG9uOmhvdmVye2N1cnNvcjpwb2ludGVyfS5tZGMtYnV0dG9uOmRpc2FibGVke2N1cnNvcjpkZWZhdWx0O3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1kYy1idXR0b25baGlkZGVuXXtkaXNwbGF5Om5vbmV9Lm1kYy1idXR0b24gLm1kYy1idXR0b25fX2ljb257bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6OHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOnRvcH1bZGlyPXJ0bF0gLm1kYy1idXR0b24gLm1kYy1idXR0b25fX2ljb24sLm1kYy1idXR0b24gLm1kYy1idXR0b25fX2ljb25bZGlyPXJ0bF17bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDowfS5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19wcm9ncmVzcy1pbmRpY2F0b3J7Zm9udC1zaXplOjA7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTt0b3A6NTAlO2xlZnQ6NTAlO2xpbmUtaGVpZ2h0OmluaXRpYWx9Lm1kYy1idXR0b24gLm1kYy1idXR0b25fX2xhYmVse3Bvc2l0aW9uOnJlbGF0aXZlfS5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19mb2N1cy1yaW5ne3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDAsMCwwLDApO2JvcmRlci1yYWRpdXM6NnB4O2JveC1zaXppbmc6Y29udGVudC1ib3g7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO2hlaWdodDpjYWxjKFxuICAgICAgMTAwJSArIDRweFxuICAgICk7d2lkdGg6Y2FsYyhcbiAgICAgIDEwMCUgKyA0cHhcbiAgICApO2Rpc3BsYXk6bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9fZm9jdXMtcmluZ3tib3JkZXItY29sb3I6Q2FudmFzVGV4dH19Lm1kYy1idXR0b24gLm1kYy1idXR0b25fX2ZvY3VzLXJpbmc6OmFmdGVye2NvbnRlbnQ6IiI7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDAsMCwwLDApO2JvcmRlci1yYWRpdXM6OHB4O2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO2hlaWdodDpjYWxjKDEwMCUgKyA0cHgpO3dpZHRoOmNhbGMoMTAwJSArIDRweCl9QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7Lm1kYy1idXR0b24gLm1kYy1idXR0b25fX2ZvY3VzLXJpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpDYW52YXNUZXh0fX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQgLm1kYy1idXR0b25fX2ZvY3VzLXJpbmcsLm1kYy1idXR0b246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1cyAubWRjLWJ1dHRvbl9fZm9jdXMtcmluZ3tkaXNwbGF5OmJsb2NrfX0ubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9fdG91Y2h7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtoZWlnaHQ6NDhweDtsZWZ0OjA7cmlnaHQ6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0ubWRjLWJ1dHRvbl9fbGFiZWwrLm1kYy1idXR0b25fX2ljb257bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDowfVtkaXI9cnRsXSAubWRjLWJ1dHRvbl9fbGFiZWwrLm1kYy1idXR0b25fX2ljb24sLm1kYy1idXR0b25fX2xhYmVsKy5tZGMtYnV0dG9uX19pY29uW2Rpcj1ydGxde21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjhweH1zdmcubWRjLWJ1dHRvbl9faWNvbntmaWxsOmN1cnJlbnRDb2xvcn0ubWRjLWJ1dHRvbi0tdG91Y2h7bWFyZ2luLXRvcDo2cHg7bWFyZ2luLWJvdHRvbTo2cHh9Lm1kYy1idXR0b257cGFkZGluZzowIDhweCAwIDhweH0ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZHt0cmFuc2l0aW9uOmJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtwYWRkaW5nOjAgMTZweCAwIDE2cHh9Lm1kYy1idXR0b24tLXVuZWxldmF0ZWQubWRjLWJ1dHRvbi0taWNvbi10cmFpbGluZ3twYWRkaW5nOjAgMTJweCAwIDE2cHh9Lm1kYy1idXR0b24tLXVuZWxldmF0ZWQubWRjLWJ1dHRvbi0taWNvbi1sZWFkaW5ne3BhZGRpbmc6MCAxNnB4IDAgMTJweH0ubWRjLWJ1dHRvbi0tcmFpc2Vke3RyYW5zaXRpb246Ym94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO3BhZGRpbmc6MCAxNnB4IDAgMTZweH0ubWRjLWJ1dHRvbi0tcmFpc2VkLm1kYy1idXR0b24tLWljb24tdHJhaWxpbmd7cGFkZGluZzowIDEycHggMCAxNnB4fS5tZGMtYnV0dG9uLS1yYWlzZWQubWRjLWJ1dHRvbi0taWNvbi1sZWFkaW5ne3BhZGRpbmc6MCAxNnB4IDAgMTJweH0ubWRjLWJ1dHRvbi0tb3V0bGluZWR7Ym9yZGVyLXN0eWxlOnNvbGlkO3RyYW5zaXRpb246Ym9yZGVyIDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9Lm1kYy1idXR0b24tLW91dGxpbmVkIC5tZGMtYnV0dG9uX19yaXBwbGV7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApfS5tYXQtbWRjLWJ1dHRvbntoZWlnaHQ6dmFyKC0tbWRjLXRleHQtYnV0dG9uLWNvbnRhaW5lci1oZWlnaHQsIDM2cHgpO2JvcmRlci1yYWRpdXM6dmFyKC0tbWRjLXRleHQtYnV0dG9uLWNvbnRhaW5lci1zaGFwZSwgdmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpKX0ubWF0LW1kYy1idXR0b246bm90KDpkaXNhYmxlZCl7Y29sb3I6dmFyKC0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3IsIGluaGVyaXQpfS5tYXQtbWRjLWJ1dHRvbjpkaXNhYmxlZHtjb2xvcjp2YXIoLS1tZGMtdGV4dC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjM4KSl9Lm1hdC1tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19yaXBwbGV7Ym9yZGVyLXJhZGl1czp2YXIoLS1tZGMtdGV4dC1idXR0b24tY29udGFpbmVyLXNoYXBlLCB2YXIoLS1tZGMtc2hhcGUtc21hbGwsIDRweCkpfS5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9ue2hlaWdodDp2YXIoLS1tZGMtZmlsbGVkLWJ1dHRvbi1jb250YWluZXItaGVpZ2h0LCAzNnB4KTtib3JkZXItcmFkaXVzOnZhcigtLW1kYy1maWxsZWQtYnV0dG9uLWNvbnRhaW5lci1zaGFwZSwgdmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpKX0ubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbjpub3QoOmRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1maWxsZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvciwgdHJhbnNwYXJlbnQpfS5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uOmRpc2FibGVke2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLWZpbGxlZC1idXR0b24tZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMTIpKX0ubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbjpub3QoOmRpc2FibGVkKXtjb2xvcjp2YXIoLS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yLCBpbmhlcml0KX0ubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbjpkaXNhYmxlZHtjb2xvcjp2YXIoLS1tZGMtZmlsbGVkLWJ1dHRvbi1kaXNhYmxlZC1sYWJlbC10ZXh0LWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMzgpKX0ubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbiAubWRjLWJ1dHRvbl9fcmlwcGxle2JvcmRlci1yYWRpdXM6dmFyKC0tbWRjLWZpbGxlZC1idXR0b24tY29udGFpbmVyLXNoYXBlLCB2YXIoLS1tZGMtc2hhcGUtc21hbGwsIDRweCkpfS5tYXQtbWRjLXJhaXNlZC1idXR0b257aGVpZ2h0OnZhcigtLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1oZWlnaHQsIDM2cHgpO2JvcmRlci1yYWRpdXM6dmFyKC0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLXNoYXBlLCB2YXIoLS1tZGMtc2hhcGUtc21hbGwsIDRweCkpO2JveC1zaGFkb3c6dmFyKC0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWVsZXZhdGlvbiwgMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKSl9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbjpub3QoOmRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvciwgdHJhbnNwYXJlbnQpfS5tYXQtbWRjLXJhaXNlZC1idXR0b246ZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1kaXNhYmxlZC1jb250YWluZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4xMikpfS5tYXQtbWRjLXJhaXNlZC1idXR0b246bm90KDpkaXNhYmxlZCl7Y29sb3I6dmFyKC0tbWRjLXByb3RlY3RlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvciwgaW5oZXJpdCl9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbjpkaXNhYmxlZHtjb2xvcjp2YXIoLS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1kaXNhYmxlZC1sYWJlbC10ZXh0LWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMzgpKX0ubWF0LW1kYy1yYWlzZWQtYnV0dG9uIC5tZGMtYnV0dG9uX19yaXBwbGV7Ym9yZGVyLXJhZGl1czp2YXIoLS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1jb250YWluZXItc2hhcGUsIHZhcigtLW1kYy1zaGFwZS1zbWFsbCwgNHB4KSl9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQsLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3Vze2JveC1zaGFkb3c6dmFyKC0tbWRjLXByb3RlY3RlZC1idXR0b24tZm9jdXMtY29udGFpbmVyLWVsZXZhdGlvbiwgMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMikpfS5tYXQtbWRjLXJhaXNlZC1idXR0b246aG92ZXJ7Ym94LXNoYWRvdzp2YXIoLS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1ob3Zlci1jb250YWluZXItZWxldmF0aW9uLCAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKSl9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbjpub3QoOmRpc2FibGVkKTphY3RpdmV7Ym94LXNoYWRvdzp2YXIoLS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1wcmVzc2VkLWNvbnRhaW5lci1lbGV2YXRpb24sIDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKSl9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbjpkaXNhYmxlZHtib3gtc2hhZG93OnZhcigtLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWRpc2FibGVkLWNvbnRhaW5lci1lbGV2YXRpb24sIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKSl9Lm1hdC1tZGMtb3V0bGluZWQtYnV0dG9ue2hlaWdodDp2YXIoLS1tZGMtb3V0bGluZWQtYnV0dG9uLWNvbnRhaW5lci1oZWlnaHQsIDM2cHgpO2JvcmRlci1yYWRpdXM6dmFyKC0tbWRjLW91dGxpbmVkLWJ1dHRvbi1jb250YWluZXItc2hhcGUsIHZhcigtLW1kYy1zaGFwZS1zbWFsbCwgNHB4KSk7cGFkZGluZzowIDE1cHggMCAxNXB4O2JvcmRlci13aWR0aDp2YXIoLS1tZGMtb3V0bGluZWQtYnV0dG9uLW91dGxpbmUtd2lkdGgsIDFweCl9Lm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpe2NvbG9yOnZhcigtLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvciwgaW5oZXJpdCl9Lm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uOmRpc2FibGVke2NvbG9yOnZhcigtLW1kYy1vdXRsaW5lZC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjM4KSl9Lm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uIC5tZGMtYnV0dG9uX19yaXBwbGV7Ym9yZGVyLXJhZGl1czp2YXIoLS1tZGMtb3V0bGluZWQtYnV0dG9uLWNvbnRhaW5lci1zaGFwZSwgdmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpKX0ubWF0LW1kYy1vdXRsaW5lZC1idXR0b246bm90KDpkaXNhYmxlZCl7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy1vdXRsaW5lZC1idXR0b24tb3V0bGluZS1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjEyKSl9Lm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uOmRpc2FibGVke2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtb3V0bGluZWQtYnV0dG9uLWRpc2FibGVkLW91dGxpbmUtY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4xMikpfS5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbi5tZGMtYnV0dG9uLS1pY29uLXRyYWlsaW5ne3BhZGRpbmc6MCAxMXB4IDAgMTVweH0ubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWRjLWJ1dHRvbi0taWNvbi1sZWFkaW5ne3BhZGRpbmc6MCAxNXB4IDAgMTFweH0ubWF0LW1kYy1vdXRsaW5lZC1idXR0b24gLm1kYy1idXR0b25fX3JpcHBsZXt0b3A6LTFweDtsZWZ0Oi0xcHg7Ym90dG9tOi0xcHg7cmlnaHQ6LTFweDtib3JkZXItd2lkdGg6dmFyKC0tbWRjLW91dGxpbmVkLWJ1dHRvbi1vdXRsaW5lLXdpZHRoLCAxcHgpfS5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbiAubWRjLWJ1dHRvbl9fdG91Y2h7bGVmdDpjYWxjKC0xICogdmFyKC0tbWRjLW91dGxpbmVkLWJ1dHRvbi1vdXRsaW5lLXdpZHRoLCAxcHgpKTt3aWR0aDpjYWxjKDEwMCUgKyAyICogdmFyKC0tbWRjLW91dGxpbmVkLWJ1dHRvbi1vdXRsaW5lLXdpZHRoLCAxcHgpKX0ubWF0LW1kYy1idXR0b24sLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24sLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbiwubWF0LW1kYy1vdXRsaW5lZC1idXR0b257LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCl9Lm1hdC1tZGMtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1yaXBwbGUsLm1hdC1tZGMtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZSwubWF0LW1kYy1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXJpcHBsZSwubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbiAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUsLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbiAubWF0LW1kYy1idXR0b24tcmlwcGxlLC5tYXQtbWRjLXJhaXNlZC1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLC5tYXQtbWRjLXJhaXNlZC1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1yaXBwbGUsLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZSwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmV7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXItcmFkaXVzOmluaGVyaXR9Lm1hdC1tZGMtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLXJhaXNlZC1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle2NvbnRlbnQ6IiI7b3BhY2l0eTowO2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3IpfS5tYXQtbWRjLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWF0LW1kYy1idXR0b24tcmlwcGxlLWNvbG9yKX0ubWF0LW1kYy1idXR0b24gLm1kYy1idXR0b25fX2xhYmVsLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbCwubWF0LW1kYy1yYWlzZWQtYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbCwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24gLm1kYy1idXR0b25fX2xhYmVse3otaW5kZXg6MX0ubWF0LW1kYy1idXR0b24gLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uIC5tYXQtbWRjLWZvY3VzLWluZGljYXRvciwubWF0LW1kYy1yYWlzZWQtYnV0dG9uIC5tYXQtbWRjLWZvY3VzLWluZGljYXRvciwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24gLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9ye3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlfS5tYXQtbWRjLWJ1dHRvbjpmb2N1cyAubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbjpmb2N1cyAubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LW1kYy1yYWlzZWQtYnV0dG9uOmZvY3VzIC5tYXQtbWRjLWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbjpmb2N1cyAubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXtjb250ZW50OiIifS5tYXQtbWRjLWJ1dHRvbltkaXNhYmxlZF0sLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b25bZGlzYWJsZWRdLC5tYXQtbWRjLXJhaXNlZC1idXR0b25bZGlzYWJsZWRdLC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbltkaXNhYmxlZF17Y3Vyc29yOmRlZmF1bHQ7cG9pbnRlci1ldmVudHM6bm9uZX0ubWF0LW1kYy1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXRvdWNoLXRhcmdldCwubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbiAubWF0LW1kYy1idXR0b24tdG91Y2gtdGFyZ2V0LC5tYXQtbWRjLXJhaXNlZC1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXRvdWNoLXRhcmdldCwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXRvdWNoLXRhcmdldHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2hlaWdodDo0OHB4O2xlZnQ6MDtyaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfS5tYXQtbWRjLWJ1dHRvbi5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSwubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbi5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSwubWF0LW1kYy1yYWlzZWQtYnV0dG9uLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbi5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZXt0cmFuc2l0aW9uOm5vbmUgIWltcG9ydGFudDthbmltYXRpb246bm9uZSAhaW1wb3J0YW50fS5tYXQtbWRjLWJ1dHRvbj4ubWF0LWljb257bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6OHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOnRvcDtmb250LXNpemU6MS4xMjVyZW07aGVpZ2h0OjEuMTI1cmVtO3dpZHRoOjEuMTI1cmVtfVtkaXI9cnRsXSAubWF0LW1kYy1idXR0b24+Lm1hdC1pY29uLC5tYXQtbWRjLWJ1dHRvbj4ubWF0LWljb25bZGlyPXJ0bF17bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDowfS5tYXQtbWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9fbGFiZWwrLm1hdC1pY29ue21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6MH1bZGlyPXJ0bF0gLm1hdC1tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbCsubWF0LWljb24sLm1hdC1tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbCsubWF0LWljb25bZGlyPXJ0bF17bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6OHB4fS5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uPi5tYXQtaWNvbiwubWF0LW1kYy1yYWlzZWQtYnV0dG9uPi5tYXQtaWNvbiwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24+Lm1hdC1pY29ue21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjhweDtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjp0b3A7Zm9udC1zaXplOjEuMTI1cmVtO2hlaWdodDoxLjEyNXJlbTt3aWR0aDoxLjEyNXJlbTttYXJnaW4tbGVmdDotNHB4O21hcmdpbi1yaWdodDo4cHh9W2Rpcj1ydGxdIC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uPi5tYXQtaWNvbixbZGlyPXJ0bF0gLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbj4ubWF0LWljb24sW2Rpcj1ydGxdIC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbj4ubWF0LWljb24sLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24+Lm1hdC1pY29uW2Rpcj1ydGxdLC5tYXQtbWRjLXJhaXNlZC1idXR0b24+Lm1hdC1pY29uW2Rpcj1ydGxdLC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbj4ubWF0LWljb25bZGlyPXJ0bF17bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDowfVtkaXI9cnRsXSAubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbj4ubWF0LWljb24sW2Rpcj1ydGxdIC5tYXQtbWRjLXJhaXNlZC1idXR0b24+Lm1hdC1pY29uLFtkaXI9cnRsXSAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24+Lm1hdC1pY29uLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uPi5tYXQtaWNvbltkaXI9cnRsXSwubWF0LW1kYy1yYWlzZWQtYnV0dG9uPi5tYXQtaWNvbltkaXI9cnRsXSwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24+Lm1hdC1pY29uW2Rpcj1ydGxde21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6LTRweH0ubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbiAubWRjLWJ1dHRvbl9fbGFiZWwrLm1hdC1pY29uLC5tYXQtbWRjLXJhaXNlZC1idXR0b24gLm1kYy1idXR0b25fX2xhYmVsKy5tYXQtaWNvbiwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24gLm1kYy1idXR0b25fX2xhYmVsKy5tYXQtaWNvbnttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0Oi00cHh9W2Rpcj1ydGxdIC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbCsubWF0LWljb24sW2Rpcj1ydGxdIC5tYXQtbWRjLXJhaXNlZC1idXR0b24gLm1kYy1idXR0b25fX2xhYmVsKy5tYXQtaWNvbixbZGlyPXJ0bF0gLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbCsubWF0LWljb24sLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24gLm1kYy1idXR0b25fX2xhYmVsKy5tYXQtaWNvbltkaXI9cnRsXSwubWF0LW1kYy1yYWlzZWQtYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbCsubWF0LWljb25bZGlyPXJ0bF0sLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbCsubWF0LWljb25bZGlyPXJ0bF17bWFyZ2luLWxlZnQ6LTRweDttYXJnaW4tcmlnaHQ6OHB4fS5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbiAubWF0LW1kYy1idXR0b24tcmlwcGxlLC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbiAubWRjLWJ1dHRvbl9fcmlwcGxle3RvcDotMXB4O2xlZnQ6LTFweDtib3R0b206LTFweDtyaWdodDotMXB4O2JvcmRlci13aWR0aDotMXB4fS5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uIC5tYXQtbWRjLWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLC5tYXQtbWRjLXJhaXNlZC1idXR0b24gLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmV7bWFyZ2luOmNhbGMoY2FsYyh2YXIoLS1tYXQtbWRjLWZvY3VzLWluZGljYXRvci1ib3JkZXItd2lkdGgsIDNweCkgKyAycHgpICogLTEpfS5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbiAubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXttYXJnaW46Y2FsYyhjYWxjKHZhcigtLW1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLWJvcmRlci13aWR0aCwgM3B4KSArIDNweCkgKiAtMSl9JywiLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1kYy1idXR0b246bm90KC5tZGMtYnV0dG9uLS1vdXRsaW5lZCksLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbjpub3QoLm1kYy1idXR0b24tLW91dGxpbmVkKSwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWRjLXJhaXNlZC1idXR0b246bm90KC5tZGMtYnV0dG9uLS1vdXRsaW5lZCksLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1kYy1vdXRsaW5lZC1idXR0b246bm90KC5tZGMtYnV0dG9uLS1vdXRsaW5lZCksLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1kYy1pY29uLWJ1dHRvbntvdXRsaW5lOnNvbGlkIDFweH0iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSx6Nz0oKCk9PntjbGFzcyBuIGV4dGVuZHMgSDd7Y29uc3RydWN0b3IoZSxpLHIsbyl7c3VwZXIoZSxpLHIsbyl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMoVm4pLEMob3QpLEMocGksOCkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImEiLCJtYXQtYnV0dG9uIiwiIl0sWyJhIiwibWF0LXJhaXNlZC1idXR0b24iLCIiXSxbImEiLCJtYXQtZmxhdC1idXR0b24iLCIiXSxbImEiLCJtYXQtc3Ryb2tlZC1idXR0b24iLCIiXV0saG9zdFZhcnM6OSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsyJmUmJihCZSgiZGlzYWJsZWQiLGkuZGlzYWJsZWR8fG51bGwpKCJ0YWJpbmRleCIsaS5kaXNhYmxlZD8tMTppLnRhYkluZGV4KSgiYXJpYS1kaXNhYmxlZCIsaS5kaXNhYmxlZC50b1N0cmluZygpKSxudCgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLCJOb29wQW5pbWF0aW9ucyI9PT1pLl9hbmltYXRpb25Nb2RlKSgibWF0LXVudGhlbWVkIiwhaS5jb2xvcikoIm1hdC1tZGMtYnV0dG9uLWJhc2UiLCEwKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIixjb2xvcjoiY29sb3IiLHRhYkluZGV4OiJ0YWJJbmRleCJ9LGV4cG9ydEFzOlsibWF0QnV0dG9uIiwibWF0QW5jaG9yIl0sZmVhdHVyZXM6W1hlXSxhdHRyczpCNyxuZ0NvbnRlbnRTZWxlY3RvcnM6XzIsZGVjbHM6OCx2YXJzOjYsY29uc3RzOltbMSwibWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUiXSxbMSwibWRjLWJ1dHRvbl9fbGFiZWwiXSxbMSwibWF0LW1kYy1mb2N1cy1pbmRpY2F0b3IiXSxbIm1hdFJpcHBsZSIsIiIsMSwibWF0LW1kYy1idXR0b24tcmlwcGxlIiwzLCJtYXRSaXBwbGVEaXNhYmxlZCIsIm1hdFJpcHBsZVRyaWdnZXIiXSxbMSwibWF0LW1kYy1idXR0b24tdG91Y2gtdGFyZ2V0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZm4oZzIpLGsoMCwic3BhbiIsMCksVHQoMSksZigyLCJzcGFuIiwxKSxUdCgzLDEpLGcoKSxUdCg0LDIpLGsoNSwic3BhbiIsMikoNiwic3BhbiIsMykoNywic3BhbiIsNCkpLDImZSYmKG50KCJtZGMtYnV0dG9uX19yaXBwbGUiLCFpLl9pc0ZhYikoIm1kYy1mYWJfX3JpcHBsZSIsaS5faXNGYWIpLHYoNiksYigibWF0UmlwcGxlRGlzYWJsZWQiLGkuX2lzUmlwcGxlRGlzYWJsZWQoKSkoIm1hdFJpcHBsZVRyaWdnZXIiLGkuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkpfSxkZXBlbmRlbmNpZXM6W0tpXSxzdHlsZXM6WycubWRjLXRvdWNoLXRhcmdldC13cmFwcGVye2Rpc3BsYXk6aW5saW5lfS5tZGMtZWxldmF0aW9uLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czppbmhlcml0O3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTp2YXIoLS1tZGMtZWxldmF0aW9uLW92ZXJsYXktb3BhY2l0eSwgMCk7dHJhbnNpdGlvbjpvcGFjaXR5IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9Lm1kYy1idXR0b257cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWluLXdpZHRoOjY0cHg7Ym9yZGVyOm5vbmU7b3V0bGluZTpub25lO2xpbmUtaGVpZ2h0OmluaGVyaXQ7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtvdmVyZmxvdzp2aXNpYmxlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCl9Lm1kYy1idXR0b24gLm1kYy1lbGV2YXRpb24tb3ZlcmxheXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MH0ubWRjLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntwYWRkaW5nOjA7Ym9yZGVyOjB9Lm1kYy1idXR0b246YWN0aXZle291dGxpbmU6bm9uZX0ubWRjLWJ1dHRvbjpob3ZlcntjdXJzb3I6cG9pbnRlcn0ubWRjLWJ1dHRvbjpkaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdDtwb2ludGVyLWV2ZW50czpub25lfS5tZGMtYnV0dG9uW2hpZGRlbl17ZGlzcGxheTpub25lfS5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19pY29ue21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjhweDtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjp0b3B9W2Rpcj1ydGxdIC5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19pY29uLC5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19pY29uW2Rpcj1ydGxde21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6MH0ubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9fcHJvZ3Jlc3MtaW5kaWNhdG9ye2ZvbnQtc2l6ZTowO3Bvc2l0aW9uOmFic29sdXRlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7dG9wOjUwJTtsZWZ0OjUwJTtsaW5lLWhlaWdodDppbml0aWFsfS5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbHtwb3NpdGlvbjpyZWxhdGl2ZX0ubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9fZm9jdXMtcmluZ3twb2ludGVyLWV2ZW50czpub25lO2JvcmRlcjoycHggc29saWQgcmdiYSgwLDAsMCwwKTtib3JkZXItcmFkaXVzOjZweDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtoZWlnaHQ6Y2FsYyhcbiAgICAgIDEwMCUgKyA0cHhcbiAgICApO3dpZHRoOmNhbGMoXG4gICAgICAxMDAlICsgNHB4XG4gICAgKTtkaXNwbGF5Om5vbmV9QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7Lm1kYy1idXR0b24gLm1kYy1idXR0b25fX2ZvY3VzLXJpbmd7Ym9yZGVyLWNvbG9yOkNhbnZhc1RleHR9fS5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19mb2N1cy1yaW5nOjphZnRlcntjb250ZW50OiIiO2JvcmRlcjoycHggc29saWQgcmdiYSgwLDAsMCwwKTtib3JkZXItcmFkaXVzOjhweDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtoZWlnaHQ6Y2FsYygxMDAlICsgNHB4KTt3aWR0aDpjYWxjKDEwMCUgKyA0cHgpfUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19mb2N1cy1yaW5nOjphZnRlcntib3JkZXItY29sb3I6Q2FudmFzVGV4dH19QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7Lm1kYy1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkIC5tZGMtYnV0dG9uX19mb2N1cy1yaW5nLC5tZGMtYnV0dG9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXMgLm1kYy1idXR0b25fX2ZvY3VzLXJpbmd7ZGlzcGxheTpibG9ja319Lm1kYy1idXR0b24gLm1kYy1idXR0b25fX3RvdWNoe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7aGVpZ2h0OjQ4cHg7bGVmdDowO3JpZ2h0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9Lm1kYy1idXR0b25fX2xhYmVsKy5tZGMtYnV0dG9uX19pY29ue21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6MH1bZGlyPXJ0bF0gLm1kYy1idXR0b25fX2xhYmVsKy5tZGMtYnV0dG9uX19pY29uLC5tZGMtYnV0dG9uX19sYWJlbCsubWRjLWJ1dHRvbl9faWNvbltkaXI9cnRsXXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDo4cHh9c3ZnLm1kYy1idXR0b25fX2ljb257ZmlsbDpjdXJyZW50Q29sb3J9Lm1kYy1idXR0b24tLXRvdWNoe21hcmdpbi10b3A6NnB4O21hcmdpbi1ib3R0b206NnB4fS5tZGMtYnV0dG9ue3BhZGRpbmc6MCA4cHggMCA4cHh9Lm1kYy1idXR0b24tLXVuZWxldmF0ZWR7dHJhbnNpdGlvbjpib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7cGFkZGluZzowIDE2cHggMCAxNnB4fS5tZGMtYnV0dG9uLS11bmVsZXZhdGVkLm1kYy1idXR0b24tLWljb24tdHJhaWxpbmd7cGFkZGluZzowIDEycHggMCAxNnB4fS5tZGMtYnV0dG9uLS11bmVsZXZhdGVkLm1kYy1idXR0b24tLWljb24tbGVhZGluZ3twYWRkaW5nOjAgMTZweCAwIDEycHh9Lm1kYy1idXR0b24tLXJhaXNlZHt0cmFuc2l0aW9uOmJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtwYWRkaW5nOjAgMTZweCAwIDE2cHh9Lm1kYy1idXR0b24tLXJhaXNlZC5tZGMtYnV0dG9uLS1pY29uLXRyYWlsaW5ne3BhZGRpbmc6MCAxMnB4IDAgMTZweH0ubWRjLWJ1dHRvbi0tcmFpc2VkLm1kYy1idXR0b24tLWljb24tbGVhZGluZ3twYWRkaW5nOjAgMTZweCAwIDEycHh9Lm1kYy1idXR0b24tLW91dGxpbmVke2JvcmRlci1zdHlsZTpzb2xpZDt0cmFuc2l0aW9uOmJvcmRlciAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpfS5tZGMtYnV0dG9uLS1vdXRsaW5lZCAubWRjLWJ1dHRvbl9fcmlwcGxle2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKX0ubWF0LW1kYy1idXR0b257aGVpZ2h0OnZhcigtLW1kYy10ZXh0LWJ1dHRvbi1jb250YWluZXItaGVpZ2h0LCAzNnB4KTtib3JkZXItcmFkaXVzOnZhcigtLW1kYy10ZXh0LWJ1dHRvbi1jb250YWluZXItc2hhcGUsIHZhcigtLW1kYy1zaGFwZS1zbWFsbCwgNHB4KSl9Lm1hdC1tZGMtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpe2NvbG9yOnZhcigtLW1kYy10ZXh0LWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yLCBpbmhlcml0KX0ubWF0LW1kYy1idXR0b246ZGlzYWJsZWR7Y29sb3I6dmFyKC0tbWRjLXRleHQtYnV0dG9uLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4zOCkpfS5tYXQtbWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9fcmlwcGxle2JvcmRlci1yYWRpdXM6dmFyKC0tbWRjLXRleHQtYnV0dG9uLWNvbnRhaW5lci1zaGFwZSwgdmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpKX0ubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbntoZWlnaHQ6dmFyKC0tbWRjLWZpbGxlZC1idXR0b24tY29udGFpbmVyLWhlaWdodCwgMzZweCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1tZGMtZmlsbGVkLWJ1dHRvbi1jb250YWluZXItc2hhcGUsIHZhcigtLW1kYy1zaGFwZS1zbWFsbCwgNHB4KSl9Lm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b246bm90KDpkaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtZmlsbGVkLWJ1dHRvbi1jb250YWluZXItY29sb3IsIHRyYW5zcGFyZW50KX0ubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbjpkaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1maWxsZWQtYnV0dG9uLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjEyKSl9Lm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b246bm90KDpkaXNhYmxlZCl7Y29sb3I6dmFyKC0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvciwgaW5oZXJpdCl9Lm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b246ZGlzYWJsZWR7Y29sb3I6dmFyKC0tbWRjLWZpbGxlZC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjM4KSl9Lm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24gLm1kYy1idXR0b25fX3JpcHBsZXtib3JkZXItcmFkaXVzOnZhcigtLW1kYy1maWxsZWQtYnV0dG9uLWNvbnRhaW5lci1zaGFwZSwgdmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpKX0ubWF0LW1kYy1yYWlzZWQtYnV0dG9ue2hlaWdodDp2YXIoLS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1jb250YWluZXItaGVpZ2h0LCAzNnB4KTtib3JkZXItcmFkaXVzOnZhcigtLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1zaGFwZSwgdmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpKTtib3gtc2hhZG93OnZhcigtLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1lbGV2YXRpb24sIDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMikpfS5tYXQtbWRjLXJhaXNlZC1idXR0b246bm90KDpkaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1jb250YWluZXItY29sb3IsIHRyYW5zcGFyZW50KX0ubWF0LW1kYy1yYWlzZWQtYnV0dG9uOmRpc2FibGVke2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLXByb3RlY3RlZC1idXR0b24tZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMTIpKX0ubWF0LW1kYy1yYWlzZWQtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpe2NvbG9yOnZhcigtLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3IsIGluaGVyaXQpfS5tYXQtbWRjLXJhaXNlZC1idXR0b246ZGlzYWJsZWR7Y29sb3I6dmFyKC0tbWRjLXByb3RlY3RlZC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjM4KSl9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbiAubWRjLWJ1dHRvbl9fcmlwcGxle2JvcmRlci1yYWRpdXM6dmFyKC0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLXNoYXBlLCB2YXIoLS1tZGMtc2hhcGUtc21hbGwsIDRweCkpfS5tYXQtbWRjLXJhaXNlZC1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkLC5tYXQtbWRjLXJhaXNlZC1idXR0b246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1c3tib3gtc2hhZG93OnZhcigtLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWZvY3VzLWNvbnRhaW5lci1lbGV2YXRpb24sIDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpKX0ubWF0LW1kYy1yYWlzZWQtYnV0dG9uOmhvdmVye2JveC1zaGFkb3c6dmFyKC0tbWRjLXByb3RlY3RlZC1idXR0b24taG92ZXItY29udGFpbmVyLWVsZXZhdGlvbiwgMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMikpfS5tYXQtbWRjLXJhaXNlZC1idXR0b246bm90KDpkaXNhYmxlZCk6YWN0aXZle2JveC1zaGFkb3c6dmFyKC0tbWRjLXByb3RlY3RlZC1idXR0b24tcHJlc3NlZC1jb250YWluZXItZWxldmF0aW9uLCAwcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMikpfS5tYXQtbWRjLXJhaXNlZC1idXR0b246ZGlzYWJsZWR7Ym94LXNoYWRvdzp2YXIoLS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1kaXNhYmxlZC1jb250YWluZXItZWxldmF0aW9uLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMikpfS5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbntoZWlnaHQ6dmFyKC0tbWRjLW91dGxpbmVkLWJ1dHRvbi1jb250YWluZXItaGVpZ2h0LCAzNnB4KTtib3JkZXItcmFkaXVzOnZhcigtLW1kYy1vdXRsaW5lZC1idXR0b24tY29udGFpbmVyLXNoYXBlLCB2YXIoLS1tZGMtc2hhcGUtc21hbGwsIDRweCkpO3BhZGRpbmc6MCAxNXB4IDAgMTVweDtib3JkZXItd2lkdGg6dmFyKC0tbWRjLW91dGxpbmVkLWJ1dHRvbi1vdXRsaW5lLXdpZHRoLCAxcHgpfS5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbjpub3QoOmRpc2FibGVkKXtjb2xvcjp2YXIoLS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3IsIGluaGVyaXQpfS5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbjpkaXNhYmxlZHtjb2xvcjp2YXIoLS1tZGMtb3V0bGluZWQtYnV0dG9uLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4zOCkpfS5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbiAubWRjLWJ1dHRvbl9fcmlwcGxle2JvcmRlci1yYWRpdXM6dmFyKC0tbWRjLW91dGxpbmVkLWJ1dHRvbi1jb250YWluZXItc2hhcGUsIHZhcigtLW1kYy1zaGFwZS1zbWFsbCwgNHB4KSl9Lm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpe2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtb3V0bGluZWQtYnV0dG9uLW91dGxpbmUtY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4xMikpfS5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbjpkaXNhYmxlZHtib3JkZXItY29sb3I6dmFyKC0tbWRjLW91dGxpbmVkLWJ1dHRvbi1kaXNhYmxlZC1vdXRsaW5lLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMTIpKX0ubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWRjLWJ1dHRvbi0taWNvbi10cmFpbGluZ3twYWRkaW5nOjAgMTFweCAwIDE1cHh9Lm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uLm1kYy1idXR0b24tLWljb24tbGVhZGluZ3twYWRkaW5nOjAgMTVweCAwIDExcHh9Lm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uIC5tZGMtYnV0dG9uX19yaXBwbGV7dG9wOi0xcHg7bGVmdDotMXB4O2JvdHRvbTotMXB4O3JpZ2h0Oi0xcHg7Ym9yZGVyLXdpZHRoOnZhcigtLW1kYy1vdXRsaW5lZC1idXR0b24tb3V0bGluZS13aWR0aCwgMXB4KX0ubWF0LW1kYy1vdXRsaW5lZC1idXR0b24gLm1kYy1idXR0b25fX3RvdWNoe2xlZnQ6Y2FsYygtMSAqIHZhcigtLW1kYy1vdXRsaW5lZC1idXR0b24tb3V0bGluZS13aWR0aCwgMXB4KSk7d2lkdGg6Y2FsYygxMDAlICsgMiAqIHZhcigtLW1kYy1vdXRsaW5lZC1idXR0b24tb3V0bGluZS13aWR0aCwgMXB4KSl9Lm1hdC1tZGMtYnV0dG9uLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLC5tYXQtbWRjLXJhaXNlZC1idXR0b24sLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uey13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApfS5tYXQtbWRjLWJ1dHRvbiAubWF0LW1kYy1idXR0b24tcmlwcGxlLC5tYXQtbWRjLWJ1dHRvbiAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUsLm1hdC1tZGMtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1yaXBwbGUsLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLXJhaXNlZC1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXJpcHBsZSwubWF0LW1kYy1yYWlzZWQtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZSwubWF0LW1kYy1yYWlzZWQtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbiAubWF0LW1kYy1idXR0b24tcmlwcGxlLC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbiAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUsLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXJhZGl1czppbmhlcml0fS5tYXQtbWRjLWJ1dHRvbiAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbiAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy1yYWlzZWQtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3JlLC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbiAubWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGU6OmJlZm9yZXtjb250ZW50OiIiO29wYWNpdHk6MDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLWNvbG9yKX0ubWF0LW1kYy1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWRjLXJhaXNlZC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1hdC1tZGMtYnV0dG9uLXJpcHBsZS1jb2xvcil9Lm1hdC1tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbCwubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbiAubWRjLWJ1dHRvbl9fbGFiZWwsLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbiAubWRjLWJ1dHRvbl9fbGFiZWwsLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbHt6LWluZGV4OjF9Lm1hdC1tZGMtYnV0dG9uIC5tYXQtbWRjLWZvY3VzLWluZGljYXRvciwubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbiAubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3IsLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbiAubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3IsLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uIC5tYXQtbWRjLWZvY3VzLWluZGljYXRvcnt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZX0ubWF0LW1kYy1idXR0b246Zm9jdXMgLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b246Zm9jdXMgLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbjpmb2N1cyAubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LW1kYy1vdXRsaW5lZC1idXR0b246Zm9jdXMgLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmV7Y29udGVudDoiIn0ubWF0LW1kYy1idXR0b25bZGlzYWJsZWRdLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uW2Rpc2FibGVkXSwubWF0LW1kYy1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXSwubWF0LW1kYy1vdXRsaW5lZC1idXR0b25bZGlzYWJsZWRde2N1cnNvcjpkZWZhdWx0O3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1hdC1tZGMtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi10b3VjaC10YXJnZXQsLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXRvdWNoLXRhcmdldCwubWF0LW1kYy1yYWlzZWQtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi10b3VjaC10YXJnZXQsLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi10b3VjaC10YXJnZXR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtoZWlnaHQ6NDhweDtsZWZ0OjA7cmlnaHQ6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0ubWF0LW1kYy1idXR0b24uX21hdC1hbmltYXRpb24tbm9vcGFibGUsLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24uX21hdC1hbmltYXRpb24tbm9vcGFibGUsLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24uX21hdC1hbmltYXRpb24tbm9vcGFibGV7dHJhbnNpdGlvbjpub25lICFpbXBvcnRhbnQ7YW5pbWF0aW9uOm5vbmUgIWltcG9ydGFudH0ubWF0LW1kYy1idXR0b24+Lm1hdC1pY29ue21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjhweDtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjp0b3A7Zm9udC1zaXplOjEuMTI1cmVtO2hlaWdodDoxLjEyNXJlbTt3aWR0aDoxLjEyNXJlbX1bZGlyPXJ0bF0gLm1hdC1tZGMtYnV0dG9uPi5tYXQtaWNvbiwubWF0LW1kYy1idXR0b24+Lm1hdC1pY29uW2Rpcj1ydGxde21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6MH0ubWF0LW1kYy1idXR0b24gLm1kYy1idXR0b25fX2xhYmVsKy5tYXQtaWNvbnttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OjB9W2Rpcj1ydGxdIC5tYXQtbWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9fbGFiZWwrLm1hdC1pY29uLC5tYXQtbWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9fbGFiZWwrLm1hdC1pY29uW2Rpcj1ydGxde21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjhweH0ubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbj4ubWF0LWljb24sLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbj4ubWF0LWljb24sLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uPi5tYXQtaWNvbnttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDo4cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246dG9wO2ZvbnQtc2l6ZToxLjEyNXJlbTtoZWlnaHQ6MS4xMjVyZW07d2lkdGg6MS4xMjVyZW07bWFyZ2luLWxlZnQ6LTRweDttYXJnaW4tcmlnaHQ6OHB4fVtkaXI9cnRsXSAubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbj4ubWF0LWljb24sW2Rpcj1ydGxdIC5tYXQtbWRjLXJhaXNlZC1idXR0b24+Lm1hdC1pY29uLFtkaXI9cnRsXSAubWF0LW1kYy1vdXRsaW5lZC1idXR0b24+Lm1hdC1pY29uLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uPi5tYXQtaWNvbltkaXI9cnRsXSwubWF0LW1kYy1yYWlzZWQtYnV0dG9uPi5tYXQtaWNvbltkaXI9cnRsXSwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24+Lm1hdC1pY29uW2Rpcj1ydGxde21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6MH1bZGlyPXJ0bF0gLm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24+Lm1hdC1pY29uLFtkaXI9cnRsXSAubWF0LW1kYy1yYWlzZWQtYnV0dG9uPi5tYXQtaWNvbixbZGlyPXJ0bF0gLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uPi5tYXQtaWNvbiwubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbj4ubWF0LWljb25bZGlyPXJ0bF0sLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbj4ubWF0LWljb25bZGlyPXJ0bF0sLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uPi5tYXQtaWNvbltkaXI9cnRsXXttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0Oi00cHh9Lm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24gLm1kYy1idXR0b25fX2xhYmVsKy5tYXQtaWNvbiwubWF0LW1kYy1yYWlzZWQtYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbCsubWF0LWljb24sLm1hdC1tZGMtb3V0bGluZWQtYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbCsubWF0LWljb257bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDotNHB4fVtkaXI9cnRsXSAubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbiAubWRjLWJ1dHRvbl9fbGFiZWwrLm1hdC1pY29uLFtkaXI9cnRsXSAubWF0LW1kYy1yYWlzZWQtYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbCsubWF0LWljb24sW2Rpcj1ydGxdIC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbiAubWRjLWJ1dHRvbl9fbGFiZWwrLm1hdC1pY29uLC5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbCsubWF0LWljb25bZGlyPXJ0bF0sLm1hdC1tZGMtcmFpc2VkLWJ1dHRvbiAubWRjLWJ1dHRvbl9fbGFiZWwrLm1hdC1pY29uW2Rpcj1ydGxdLC5tYXQtbWRjLW91dGxpbmVkLWJ1dHRvbiAubWRjLWJ1dHRvbl9fbGFiZWwrLm1hdC1pY29uW2Rpcj1ydGxde21hcmdpbi1sZWZ0Oi00cHg7bWFyZ2luLXJpZ2h0OjhweH0ubWF0LW1kYy1vdXRsaW5lZC1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXJpcHBsZSwubWF0LW1kYy1vdXRsaW5lZC1idXR0b24gLm1kYy1idXR0b25fX3JpcHBsZXt0b3A6LTFweDtsZWZ0Oi0xcHg7Ym90dG9tOi0xcHg7cmlnaHQ6LTFweDtib3JkZXItd2lkdGg6LTFweH0ubWF0LW1kYy11bmVsZXZhdGVkLWJ1dHRvbiAubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LW1kYy1yYWlzZWQtYnV0dG9uIC5tYXQtbWRjLWZvY3VzLWluZGljYXRvcjo6YmVmb3Jle21hcmdpbjpjYWxjKGNhbGModmFyKC0tbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoLCAzcHgpICsgMnB4KSAqIC0xKX0ubWF0LW1kYy1vdXRsaW5lZC1idXR0b24gLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmV7bWFyZ2luOmNhbGMoY2FsYyh2YXIoLS1tYXQtbWRjLWZvY3VzLWluZGljYXRvci1ib3JkZXItd2lkdGgsIDNweCkgKyAzcHgpICogLTEpfScsYjJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpO25ldyB0ZSgibWF0LW1kYy1mYWItZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbigpe3JldHVybntjb2xvcjoiYWNjZW50In19fSk7dmFyIEVyPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyB2Mntjb25zdHJ1Y3RvcihlLGkscixvKXtzdXBlcihlLGkscixvKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyh4ZSksQyhWbiksQyhvdCksQyhwaSw4KSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1siYnV0dG9uIiwibWF0LWljb24tYnV0dG9uIiwiIl1dLGhvc3RWYXJzOjcsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MiZlJiYoQmUoImRpc2FibGVkIixpLmRpc2FibGVkfHxudWxsKSxudCgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLCJOb29wQW5pbWF0aW9ucyI9PT1pLl9hbmltYXRpb25Nb2RlKSgibWF0LXVudGhlbWVkIiwhaS5jb2xvcikoIm1hdC1tZGMtYnV0dG9uLWJhc2UiLCEwKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIixjb2xvcjoiY29sb3IifSxleHBvcnRBczpbIm1hdEJ1dHRvbiJdLGZlYXR1cmVzOltYZV0sYXR0cnM6VjcsbmdDb250ZW50U2VsZWN0b3JzOkdfZSxkZWNsczo1LHZhcnM6Myxjb25zdHM6W1sxLCJtYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZSIsIm1kYy1pY29uLWJ1dHRvbl9fcmlwcGxlIl0sWzEsIm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yIl0sWyJtYXRSaXBwbGUiLCIiLDEsIm1hdC1tZGMtYnV0dG9uLXJpcHBsZSIsMywibWF0UmlwcGxlRGlzYWJsZWQiLCJtYXRSaXBwbGVDZW50ZXJlZCIsIm1hdFJpcHBsZVRyaWdnZXIiXSxbMSwibWF0LW1kYy1idXR0b24tdG91Y2gtdGFyZ2V0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZm4oKSxrKDAsInNwYW4iLDApLFR0KDEpLGsoMiwic3BhbiIsMSkoMywic3BhbiIsMikoNCwic3BhbiIsMykpLDImZSYmKHYoMyksYigibWF0UmlwcGxlRGlzYWJsZWQiLGkuX2lzUmlwcGxlRGlzYWJsZWQoKSkoIm1hdFJpcHBsZUNlbnRlcmVkIiwhMCkoIm1hdFJpcHBsZVRyaWdnZXIiLGkuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkpfSxkZXBlbmRlbmNpZXM6W0tpXSxzdHlsZXM6WycubWRjLWljb24tYnV0dG9ue2ZvbnQtc2l6ZToyNHB4O3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7cGFkZGluZzoxMnB4fS5tZGMtaWNvbi1idXR0b24gLm1kYy1pY29uLWJ1dHRvbl9fZm9jdXMtcmluZ3ttYXgtaGVpZ2h0OjQ4cHg7bWF4LXdpZHRoOjQ4cHh9Lm1kYy1pY29uLWJ1dHRvbi5tZGMtaWNvbi1idXR0b24tLXJlZHVjZWQtc2l6ZSAubWRjLWljb24tYnV0dG9uX19yaXBwbGV7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDttYXJnaW4tdG9wOjRweDttYXJnaW4tYm90dG9tOjRweDttYXJnaW4tcmlnaHQ6NHB4O21hcmdpbi1sZWZ0OjRweH0ubWRjLWljb24tYnV0dG9uLm1kYy1pY29uLWJ1dHRvbi0tcmVkdWNlZC1zaXplIC5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmd7bWF4LWhlaWdodDo0MHB4O21heC13aWR0aDo0MHB4fS5tZGMtaWNvbi1idXR0b24gLm1kYy1pY29uLWJ1dHRvbl9fdG91Y2h7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtoZWlnaHQ6NDhweDtsZWZ0OjUwJTt3aWR0aDo0OHB4O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSl9Lm1kYy1pY29uLWJ1dHRvbiBzdmcsLm1kYy1pY29uLWJ1dHRvbiBpbWd7d2lkdGg6MjRweDtoZWlnaHQ6MjRweH0ubWRjLWljb24tYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6bm9uZTtvdXRsaW5lOm5vbmU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2ZpbGw6Y3VycmVudENvbG9yO2NvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y3Vyc29yOnBvaW50ZXI7dXNlci1zZWxlY3Q6bm9uZTt6LWluZGV4OjA7b3ZlcmZsb3c6dmlzaWJsZX0ubWRjLWljb24tYnV0dG9uIC5tZGMtaWNvbi1idXR0b25fX3RvdWNoe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7aGVpZ2h0OjQ4cHg7bGVmdDo1MCU7d2lkdGg6NDhweDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpfUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5tZGMtaWNvbi1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkIC5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmcsLm1kYy1pY29uLWJ1dHRvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzIC5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmd7ZGlzcGxheTpibG9ja319Lm1kYy1pY29uLWJ1dHRvbjpkaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdDtwb2ludGVyLWV2ZW50czpub25lfS5tZGMtaWNvbi1idXR0b25baGlkZGVuXXtkaXNwbGF5Om5vbmV9Lm1kYy1pY29uLWJ1dHRvbi0tZGlzcGxheS1mbGV4e2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lm1kYy1pY29uLWJ1dHRvbl9fZm9jdXMtcmluZ3twb2ludGVyLWV2ZW50czpub25lO2JvcmRlcjoycHggc29saWQgcmdiYSgwLDAsMCwwKTtib3JkZXItcmFkaXVzOjZweDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2Rpc3BsYXk6bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsubWRjLWljb24tYnV0dG9uX19mb2N1cy1yaW5ne2JvcmRlci1jb2xvcjpDYW52YXNUZXh0fX0ubWRjLWljb24tYnV0dG9uX19mb2N1cy1yaW5nOjphZnRlcntjb250ZW50OiIiO2JvcmRlcjoycHggc29saWQgcmdiYSgwLDAsMCwwKTtib3JkZXItcmFkaXVzOjhweDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtoZWlnaHQ6Y2FsYygxMDAlICsgNHB4KTt3aWR0aDpjYWxjKDEwMCUgKyA0cHgpfUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpDYW52YXNUZXh0fX0ubWRjLWljb24tYnV0dG9uX19pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5tZGMtaWNvbi1idXR0b25fX2ljb24ubWRjLWljb24tYnV0dG9uX19pY29uLS1vbntkaXNwbGF5Om5vbmV9Lm1kYy1pY29uLWJ1dHRvbi0tb24gLm1kYy1pY29uLWJ1dHRvbl9faWNvbntkaXNwbGF5Om5vbmV9Lm1kYy1pY29uLWJ1dHRvbi0tb24gLm1kYy1pY29uLWJ1dHRvbl9faWNvbi5tZGMtaWNvbi1idXR0b25fX2ljb24tLW9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5tZGMtaWNvbi1idXR0b25fX2xpbmt7aGVpZ2h0OjEwMCU7bGVmdDowO291dGxpbmU6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS5tYXQtbWRjLWljb24tYnV0dG9ue2hlaWdodDp2YXIoLS1tZGMtaWNvbi1idXR0b24tc3RhdGUtbGF5ZXItc2l6ZSwgNDhweCk7d2lkdGg6dmFyKC0tbWRjLWljb24tYnV0dG9uLXN0YXRlLWxheWVyLXNpemUsIDQ4cHgpO2NvbG9yOnZhcigtLW1kYy1pY29uLWJ1dHRvbi1pY29uLWNvbG9yLCBpbmhlcml0KTtib3JkZXItcmFkaXVzOjUwJTtmbGV4LXNocmluazowO3RleHQtYWxpZ246Y2VudGVyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApfS5tYXQtbWRjLWljb24tYnV0dG9uIC5tZGMtYnV0dG9uX19pY29ue2ZvbnQtc2l6ZTp2YXIoLS1tZGMtaWNvbi1idXR0b24taWNvbi1zaXplLCAyNHB4KX0ubWF0LW1kYy1pY29uLWJ1dHRvbiBzdmcsLm1hdC1tZGMtaWNvbi1idXR0b24gaW1ne3dpZHRoOnZhcigtLW1kYy1pY29uLWJ1dHRvbi1pY29uLXNpemUsIDI0cHgpO2hlaWdodDp2YXIoLS1tZGMtaWNvbi1idXR0b24taWNvbi1zaXplLCAyNHB4KX0ubWF0LW1kYy1pY29uLWJ1dHRvbjpkaXNhYmxlZHtvcGFjaXR5OnZhcigtLW1kYy1pY29uLWJ1dHRvbi1kaXNhYmxlZC1pY29uLW9wYWNpdHksIDAuMzgpfS5tYXQtbWRjLWljb24tYnV0dG9uOmRpc2FibGVke2NvbG9yOnZhcigtLW1kYy1pY29uLWJ1dHRvbi1kaXNhYmxlZC1pY29uLWNvbG9yLCAjMDAwKX0ubWF0LW1kYy1pY29uLWJ1dHRvbiBzdmd7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9Lm1hdC1tZGMtaWNvbi1idXR0b25bZGlzYWJsZWRde2N1cnNvcjpkZWZhdWx0O3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eToxfS5tYXQtbWRjLWljb24tYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1yaXBwbGUsLm1hdC1tZGMtaWNvbi1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLC5tYXQtbWRjLWljb24tYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXJhZGl1czppbmhlcml0fS5tYXQtbWRjLWljb24tYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle2NvbnRlbnQ6IiI7b3BhY2l0eTowO2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3IpfS5tYXQtbWRjLWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3IpfS5tYXQtbWRjLWljb24tYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbHt6LWluZGV4OjF9Lm1hdC1tZGMtaWNvbi1idXR0b24gLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9ye3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlfS5tYXQtbWRjLWljb24tYnV0dG9uOmZvY3VzIC5tYXQtbWRjLWZvY3VzLWluZGljYXRvcjo6YmVmb3Jle2NvbnRlbnQ6IiJ9Lm1hdC1tZGMtaWNvbi1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXRvdWNoLXRhcmdldHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2hlaWdodDo0OHB4O2xlZnQ6NTAlO3dpZHRoOjQ4cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKX0ubWF0LW1kYy1pY29uLWJ1dHRvbi5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZXt0cmFuc2l0aW9uOm5vbmUgIWltcG9ydGFudDthbmltYXRpb246bm9uZSAhaW1wb3J0YW50fS5tYXQtbWRjLWljb24tYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZXtib3JkZXItcmFkaXVzOjUwJX0ubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtdW50aGVtZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1wcmltYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtYWNjZW50Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtd2Fybjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDApO29wYWNpdHk6MX0nLGIyXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxqNz0oKCk9PntjbGFzcyBuIGV4dGVuZHMgSDd7Y29uc3RydWN0b3IoZSxpLHIsbyl7c3VwZXIoZSxpLHIsbyl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMoVm4pLEMob3QpLEMocGksOCkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImEiLCJtYXQtaWNvbi1idXR0b24iLCIiXV0saG9zdFZhcnM6OSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsyJmUmJihCZSgiZGlzYWJsZWQiLGkuZGlzYWJsZWR8fG51bGwpKCJ0YWJpbmRleCIsaS5kaXNhYmxlZD8tMTppLnRhYkluZGV4KSgiYXJpYS1kaXNhYmxlZCIsaS5kaXNhYmxlZC50b1N0cmluZygpKSxudCgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLCJOb29wQW5pbWF0aW9ucyI9PT1pLl9hbmltYXRpb25Nb2RlKSgibWF0LXVudGhlbWVkIiwhaS5jb2xvcikoIm1hdC1tZGMtYnV0dG9uLWJhc2UiLCEwKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIixjb2xvcjoiY29sb3IiLHRhYkluZGV4OiJ0YWJJbmRleCJ9LGV4cG9ydEFzOlsibWF0QnV0dG9uIiwibWF0QW5jaG9yIl0sZmVhdHVyZXM6W1hlXSxhdHRyczpWNyxuZ0NvbnRlbnRTZWxlY3RvcnM6XzIsZGVjbHM6OCx2YXJzOjYsY29uc3RzOltbMSwibWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUiXSxbMSwibWRjLWJ1dHRvbl9fbGFiZWwiXSxbMSwibWF0LW1kYy1mb2N1cy1pbmRpY2F0b3IiXSxbIm1hdFJpcHBsZSIsIiIsMSwibWF0LW1kYy1idXR0b24tcmlwcGxlIiwzLCJtYXRSaXBwbGVEaXNhYmxlZCIsIm1hdFJpcHBsZVRyaWdnZXIiXSxbMSwibWF0LW1kYy1idXR0b24tdG91Y2gtdGFyZ2V0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZm4oZzIpLGsoMCwic3BhbiIsMCksVHQoMSksZigyLCJzcGFuIiwxKSxUdCgzLDEpLGcoKSxUdCg0LDIpLGsoNSwic3BhbiIsMikoNiwic3BhbiIsMykoNywic3BhbiIsNCkpLDImZSYmKG50KCJtZGMtYnV0dG9uX19yaXBwbGUiLCFpLl9pc0ZhYikoIm1kYy1mYWJfX3JpcHBsZSIsaS5faXNGYWIpLHYoNiksYigibWF0UmlwcGxlRGlzYWJsZWQiLGkuX2lzUmlwcGxlRGlzYWJsZWQoKSkoIm1hdFJpcHBsZVRyaWdnZXIiLGkuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkpfSxkZXBlbmRlbmNpZXM6W0tpXSxzdHlsZXM6WycubWRjLWljb24tYnV0dG9ue2ZvbnQtc2l6ZToyNHB4O3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7cGFkZGluZzoxMnB4fS5tZGMtaWNvbi1idXR0b24gLm1kYy1pY29uLWJ1dHRvbl9fZm9jdXMtcmluZ3ttYXgtaGVpZ2h0OjQ4cHg7bWF4LXdpZHRoOjQ4cHh9Lm1kYy1pY29uLWJ1dHRvbi5tZGMtaWNvbi1idXR0b24tLXJlZHVjZWQtc2l6ZSAubWRjLWljb24tYnV0dG9uX19yaXBwbGV7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDttYXJnaW4tdG9wOjRweDttYXJnaW4tYm90dG9tOjRweDttYXJnaW4tcmlnaHQ6NHB4O21hcmdpbi1sZWZ0OjRweH0ubWRjLWljb24tYnV0dG9uLm1kYy1pY29uLWJ1dHRvbi0tcmVkdWNlZC1zaXplIC5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmd7bWF4LWhlaWdodDo0MHB4O21heC13aWR0aDo0MHB4fS5tZGMtaWNvbi1idXR0b24gLm1kYy1pY29uLWJ1dHRvbl9fdG91Y2h7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtoZWlnaHQ6NDhweDtsZWZ0OjUwJTt3aWR0aDo0OHB4O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSl9Lm1kYy1pY29uLWJ1dHRvbiBzdmcsLm1kYy1pY29uLWJ1dHRvbiBpbWd7d2lkdGg6MjRweDtoZWlnaHQ6MjRweH0ubWRjLWljb24tYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6bm9uZTtvdXRsaW5lOm5vbmU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2ZpbGw6Y3VycmVudENvbG9yO2NvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y3Vyc29yOnBvaW50ZXI7dXNlci1zZWxlY3Q6bm9uZTt6LWluZGV4OjA7b3ZlcmZsb3c6dmlzaWJsZX0ubWRjLWljb24tYnV0dG9uIC5tZGMtaWNvbi1idXR0b25fX3RvdWNoe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7aGVpZ2h0OjQ4cHg7bGVmdDo1MCU7d2lkdGg6NDhweDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpfUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5tZGMtaWNvbi1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkIC5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmcsLm1kYy1pY29uLWJ1dHRvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzIC5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmd7ZGlzcGxheTpibG9ja319Lm1kYy1pY29uLWJ1dHRvbjpkaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdDtwb2ludGVyLWV2ZW50czpub25lfS5tZGMtaWNvbi1idXR0b25baGlkZGVuXXtkaXNwbGF5Om5vbmV9Lm1kYy1pY29uLWJ1dHRvbi0tZGlzcGxheS1mbGV4e2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lm1kYy1pY29uLWJ1dHRvbl9fZm9jdXMtcmluZ3twb2ludGVyLWV2ZW50czpub25lO2JvcmRlcjoycHggc29saWQgcmdiYSgwLDAsMCwwKTtib3JkZXItcmFkaXVzOjZweDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2Rpc3BsYXk6bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsubWRjLWljb24tYnV0dG9uX19mb2N1cy1yaW5ne2JvcmRlci1jb2xvcjpDYW52YXNUZXh0fX0ubWRjLWljb24tYnV0dG9uX19mb2N1cy1yaW5nOjphZnRlcntjb250ZW50OiIiO2JvcmRlcjoycHggc29saWQgcmdiYSgwLDAsMCwwKTtib3JkZXItcmFkaXVzOjhweDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtoZWlnaHQ6Y2FsYygxMDAlICsgNHB4KTt3aWR0aDpjYWxjKDEwMCUgKyA0cHgpfUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5tZGMtaWNvbi1idXR0b25fX2ZvY3VzLXJpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpDYW52YXNUZXh0fX0ubWRjLWljb24tYnV0dG9uX19pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5tZGMtaWNvbi1idXR0b25fX2ljb24ubWRjLWljb24tYnV0dG9uX19pY29uLS1vbntkaXNwbGF5Om5vbmV9Lm1kYy1pY29uLWJ1dHRvbi0tb24gLm1kYy1pY29uLWJ1dHRvbl9faWNvbntkaXNwbGF5Om5vbmV9Lm1kYy1pY29uLWJ1dHRvbi0tb24gLm1kYy1pY29uLWJ1dHRvbl9faWNvbi5tZGMtaWNvbi1idXR0b25fX2ljb24tLW9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5tZGMtaWNvbi1idXR0b25fX2xpbmt7aGVpZ2h0OjEwMCU7bGVmdDowO291dGxpbmU6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS5tYXQtbWRjLWljb24tYnV0dG9ue2hlaWdodDp2YXIoLS1tZGMtaWNvbi1idXR0b24tc3RhdGUtbGF5ZXItc2l6ZSwgNDhweCk7d2lkdGg6dmFyKC0tbWRjLWljb24tYnV0dG9uLXN0YXRlLWxheWVyLXNpemUsIDQ4cHgpO2NvbG9yOnZhcigtLW1kYy1pY29uLWJ1dHRvbi1pY29uLWNvbG9yLCBpbmhlcml0KTtib3JkZXItcmFkaXVzOjUwJTtmbGV4LXNocmluazowO3RleHQtYWxpZ246Y2VudGVyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApfS5tYXQtbWRjLWljb24tYnV0dG9uIC5tZGMtYnV0dG9uX19pY29ue2ZvbnQtc2l6ZTp2YXIoLS1tZGMtaWNvbi1idXR0b24taWNvbi1zaXplLCAyNHB4KX0ubWF0LW1kYy1pY29uLWJ1dHRvbiBzdmcsLm1hdC1tZGMtaWNvbi1idXR0b24gaW1ne3dpZHRoOnZhcigtLW1kYy1pY29uLWJ1dHRvbi1pY29uLXNpemUsIDI0cHgpO2hlaWdodDp2YXIoLS1tZGMtaWNvbi1idXR0b24taWNvbi1zaXplLCAyNHB4KX0ubWF0LW1kYy1pY29uLWJ1dHRvbjpkaXNhYmxlZHtvcGFjaXR5OnZhcigtLW1kYy1pY29uLWJ1dHRvbi1kaXNhYmxlZC1pY29uLW9wYWNpdHksIDAuMzgpfS5tYXQtbWRjLWljb24tYnV0dG9uOmRpc2FibGVke2NvbG9yOnZhcigtLW1kYy1pY29uLWJ1dHRvbi1kaXNhYmxlZC1pY29uLWNvbG9yLCAjMDAwKX0ubWF0LW1kYy1pY29uLWJ1dHRvbiBzdmd7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9Lm1hdC1tZGMtaWNvbi1idXR0b25bZGlzYWJsZWRde2N1cnNvcjpkZWZhdWx0O3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eToxfS5tYXQtbWRjLWljb24tYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1yaXBwbGUsLm1hdC1tZGMtaWNvbi1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlLC5tYXQtbWRjLWljb24tYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXJhZGl1czppbmhlcml0fS5tYXQtbWRjLWljb24tYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZTo6YmVmb3Jle2NvbnRlbnQ6IiI7b3BhY2l0eTowO2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3IpfS5tYXQtbWRjLWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tYXQtbWRjLWJ1dHRvbi1yaXBwbGUtY29sb3IpfS5tYXQtbWRjLWljb24tYnV0dG9uIC5tZGMtYnV0dG9uX19sYWJlbHt6LWluZGV4OjF9Lm1hdC1tZGMtaWNvbi1idXR0b24gLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9ye3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlfS5tYXQtbWRjLWljb24tYnV0dG9uOmZvY3VzIC5tYXQtbWRjLWZvY3VzLWluZGljYXRvcjo6YmVmb3Jle2NvbnRlbnQ6IiJ9Lm1hdC1tZGMtaWNvbi1idXR0b24gLm1hdC1tZGMtYnV0dG9uLXRvdWNoLXRhcmdldHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2hlaWdodDo0OHB4O2xlZnQ6NTAlO3dpZHRoOjQ4cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKX0ubWF0LW1kYy1pY29uLWJ1dHRvbi5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZXt0cmFuc2l0aW9uOm5vbmUgIWltcG9ydGFudDthbmltYXRpb246bm9uZSAhaW1wb3J0YW50fS5tYXQtbWRjLWljb24tYnV0dG9uIC5tYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZXtib3JkZXItcmFkaXVzOjUwJX0ubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtdW50aGVtZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1wcmltYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtYWNjZW50Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtd2Fybjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDApO29wYWNpdHk6MX0nLGIyXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxLbj0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbZG4sX2EsZG5dfSksbn0pKCksR3Y9Y2xhc3N7YXR0YWNoKHQpe3JldHVybiB0aGlzLl9hdHRhY2hlZEhvc3Q9dCx0LmF0dGFjaCh0aGlzKX1kZXRhY2goKXtsZXQgdD10aGlzLl9hdHRhY2hlZEhvc3Q7bnVsbCE9dCYmKHRoaXMuX2F0dGFjaGVkSG9zdD1udWxsLHQuZGV0YWNoKCkpfWdldCBpc0F0dGFjaGVkKCl7cmV0dXJuIG51bGwhPXRoaXMuX2F0dGFjaGVkSG9zdH1zZXRBdHRhY2hlZEhvc3QodCl7dGhpcy5fYXR0YWNoZWRIb3N0PXR9fSxMbD1jbGFzcyBleHRlbmRzIEd2e2NvbnN0cnVjdG9yKHQsZSxpLHIsbyl7c3VwZXIoKSx0aGlzLmNvbXBvbmVudD10LHRoaXMudmlld0NvbnRhaW5lclJlZj1lLHRoaXMuaW5qZWN0b3I9aSx0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcj1yLHRoaXMucHJvamVjdGFibGVOb2Rlcz1vfX0sVG89Y2xhc3MgZXh0ZW5kcyBHdntjb25zdHJ1Y3Rvcih0LGUsaSxyKXtzdXBlcigpLHRoaXMudGVtcGxhdGVSZWY9dCx0aGlzLnZpZXdDb250YWluZXJSZWY9ZSx0aGlzLmNvbnRleHQ9aSx0aGlzLmluamVjdG9yPXJ9Z2V0IG9yaWdpbigpe3JldHVybiB0aGlzLnRlbXBsYXRlUmVmLmVsZW1lbnRSZWZ9YXR0YWNoKHQsZT10aGlzLmNvbnRleHQpe3JldHVybiB0aGlzLmNvbnRleHQ9ZSxzdXBlci5hdHRhY2godCl9ZGV0YWNoKCl7cmV0dXJuIHRoaXMuY29udGV4dD12b2lkIDAsc3VwZXIuZGV0YWNoKCl9fSx5Mj1jbGFzcyBleHRlbmRzIEd2e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5lbGVtZW50PXQgaW5zdGFuY2VvZiB4ZT90Lm5hdGl2ZUVsZW1lbnQ6dH19LE51PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5faXNEaXNwb3NlZD0hMSx0aGlzLmF0dGFjaERvbVBvcnRhbD1udWxsfWhhc0F0dGFjaGVkKCl7cmV0dXJuISF0aGlzLl9hdHRhY2hlZFBvcnRhbH1hdHRhY2godCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBMbD8odGhpcy5fYXR0YWNoZWRQb3J0YWw9dCx0aGlzLmF0dGFjaENvbXBvbmVudFBvcnRhbCh0KSk6dCBpbnN0YW5jZW9mIFRvPyh0aGlzLl9hdHRhY2hlZFBvcnRhbD10LHRoaXMuYXR0YWNoVGVtcGxhdGVQb3J0YWwodCkpOnRoaXMuYXR0YWNoRG9tUG9ydGFsJiZ0IGluc3RhbmNlb2YgeTI/KHRoaXMuX2F0dGFjaGVkUG9ydGFsPXQsdGhpcy5hdHRhY2hEb21Qb3J0YWwodCkpOnZvaWQgMH1kZXRhY2goKXt0aGlzLl9hdHRhY2hlZFBvcnRhbCYmKHRoaXMuX2F0dGFjaGVkUG9ydGFsLnNldEF0dGFjaGVkSG9zdChudWxsKSx0aGlzLl9hdHRhY2hlZFBvcnRhbD1udWxsKSx0aGlzLl9pbnZva2VEaXNwb3NlRm4oKX1kaXNwb3NlKCl7dGhpcy5oYXNBdHRhY2hlZCgpJiZ0aGlzLmRldGFjaCgpLHRoaXMuX2ludm9rZURpc3Bvc2VGbigpLHRoaXMuX2lzRGlzcG9zZWQ9ITB9c2V0RGlzcG9zZUZuKHQpe3RoaXMuX2Rpc3Bvc2VGbj10fV9pbnZva2VEaXNwb3NlRm4oKXt0aGlzLl9kaXNwb3NlRm4mJih0aGlzLl9kaXNwb3NlRm4oKSx0aGlzLl9kaXNwb3NlRm49bnVsbCl9fSxXdj1jbGFzcyBleHRlbmRzIE51e2NvbnN0cnVjdG9yKHQsZSxpLHIsbyl7c3VwZXIoKSx0aGlzLm91dGxldEVsZW1lbnQ9dCx0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9ZSx0aGlzLl9hcHBSZWY9aSx0aGlzLl9kZWZhdWx0SW5qZWN0b3I9cix0aGlzLmF0dGFjaERvbVBvcnRhbD1hPT57bGV0IHM9YS5lbGVtZW50LGw9dGhpcy5fZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiZG9tLXBvcnRhbCIpO3MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobCxzKSx0aGlzLm91dGxldEVsZW1lbnQuYXBwZW5kQ2hpbGQocyksdGhpcy5fYXR0YWNoZWRQb3J0YWw9YSxzdXBlci5zZXREaXNwb3NlRm4oKCk9PntsLnBhcmVudE5vZGUmJmwucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQocyxsKX0pfSx0aGlzLl9kb2N1bWVudD1vfWF0dGFjaENvbXBvbmVudFBvcnRhbCh0KXtsZXQgcixpPSh0LmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcnx8dGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyKS5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0LmNvbXBvbmVudCk7cmV0dXJuIHQudmlld0NvbnRhaW5lclJlZj8ocj10LnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGksdC52aWV3Q29udGFpbmVyUmVmLmxlbmd0aCx0LmluamVjdG9yfHx0LnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3IsdC5wcm9qZWN0YWJsZU5vZGVzfHx2b2lkIDApLHRoaXMuc2V0RGlzcG9zZUZuKCgpPT5yLmRlc3Ryb3koKSkpOihyPWkuY3JlYXRlKHQuaW5qZWN0b3J8fHRoaXMuX2RlZmF1bHRJbmplY3Rvcnx8d2kuTlVMTCksdGhpcy5fYXBwUmVmLmF0dGFjaFZpZXcoci5ob3N0VmlldyksdGhpcy5zZXREaXNwb3NlRm4oKCk9Pnt0aGlzLl9hcHBSZWYudmlld0NvdW50PjAmJnRoaXMuX2FwcFJlZi5kZXRhY2hWaWV3KHIuaG9zdFZpZXcpLHIuZGVzdHJveSgpfSkpLHRoaXMub3V0bGV0RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9nZXRDb21wb25lbnRSb290Tm9kZShyKSksdGhpcy5fYXR0YWNoZWRQb3J0YWw9dCxyfWF0dGFjaFRlbXBsYXRlUG9ydGFsKHQpe2xldCBlPXQudmlld0NvbnRhaW5lclJlZixpPWUuY3JlYXRlRW1iZWRkZWRWaWV3KHQudGVtcGxhdGVSZWYsdC5jb250ZXh0LHtpbmplY3Rvcjp0LmluamVjdG9yfSk7cmV0dXJuIGkucm9vdE5vZGVzLmZvckVhY2gocj0+dGhpcy5vdXRsZXRFbGVtZW50LmFwcGVuZENoaWxkKHIpKSxpLmRldGVjdENoYW5nZXMoKSx0aGlzLnNldERpc3Bvc2VGbigoKT0+e2xldCByPWUuaW5kZXhPZihpKTstMSE9PXImJmUucmVtb3ZlKHIpfSksdGhpcy5fYXR0YWNoZWRQb3J0YWw9dCxpfWRpc3Bvc2UoKXtzdXBlci5kaXNwb3NlKCksdGhpcy5vdXRsZXRFbGVtZW50LnJlbW92ZSgpfV9nZXRDb21wb25lbnRSb290Tm9kZSh0KXtyZXR1cm4gdC5ob3N0Vmlldy5yb290Tm9kZXNbMF19fSxHNz0oKCk9PntjbGFzcyBuIGV4dGVuZHMgVG97Y29uc3RydWN0b3IoZSxpKXtzdXBlcihlLGkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKG9pKSxDKGVpKSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsImNka1BvcnRhbCIsIiJdXSxleHBvcnRBczpbImNka1BvcnRhbCJdLGZlYXR1cmVzOltYZV19KSxufSkoKSxiYT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgTnV7Y29uc3RydWN0b3IoZSxpLHIpe3N1cGVyKCksdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPWUsdGhpcy5fdmlld0NvbnRhaW5lclJlZj1pLHRoaXMuX2lzSW5pdGlhbGl6ZWQ9ITEsdGhpcy5hdHRhY2hlZD1uZXcgRix0aGlzLmF0dGFjaERvbVBvcnRhbD1vPT57bGV0IGE9by5lbGVtZW50LHM9dGhpcy5fZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiZG9tLXBvcnRhbCIpO28uc2V0QXR0YWNoZWRIb3N0KHRoaXMpLGEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocyxhKSx0aGlzLl9nZXRSb290Tm9kZSgpLmFwcGVuZENoaWxkKGEpLHRoaXMuX2F0dGFjaGVkUG9ydGFsPW8sc3VwZXIuc2V0RGlzcG9zZUZuKCgpPT57cy5wYXJlbnROb2RlJiZzLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGEscyl9KX0sdGhpcy5fZG9jdW1lbnQ9cn1nZXQgcG9ydGFsKCl7cmV0dXJuIHRoaXMuX2F0dGFjaGVkUG9ydGFsfXNldCBwb3J0YWwoZSl7dGhpcy5oYXNBdHRhY2hlZCgpJiYhZSYmIXRoaXMuX2lzSW5pdGlhbGl6ZWR8fCh0aGlzLmhhc0F0dGFjaGVkKCkmJnN1cGVyLmRldGFjaCgpLGUmJnN1cGVyLmF0dGFjaChlKSx0aGlzLl9hdHRhY2hlZFBvcnRhbD1lfHxudWxsKX1nZXQgYXR0YWNoZWRSZWYoKXtyZXR1cm4gdGhpcy5fYXR0YWNoZWRSZWZ9bmdPbkluaXQoKXt0aGlzLl9pc0luaXRpYWxpemVkPSEwfW5nT25EZXN0cm95KCl7c3VwZXIuZGlzcG9zZSgpLHRoaXMuX2F0dGFjaGVkUmVmPXRoaXMuX2F0dGFjaGVkUG9ydGFsPW51bGx9YXR0YWNoQ29tcG9uZW50UG9ydGFsKGUpe2Uuc2V0QXR0YWNoZWRIb3N0KHRoaXMpO2xldCBpPW51bGwhPWUudmlld0NvbnRhaW5lclJlZj9lLnZpZXdDb250YWluZXJSZWY6dGhpcy5fdmlld0NvbnRhaW5lclJlZixvPShlLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcnx8dGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyKS5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShlLmNvbXBvbmVudCksYT1pLmNyZWF0ZUNvbXBvbmVudChvLGkubGVuZ3RoLGUuaW5qZWN0b3J8fGkuaW5qZWN0b3IsZS5wcm9qZWN0YWJsZU5vZGVzfHx2b2lkIDApO3JldHVybiBpIT09dGhpcy5fdmlld0NvbnRhaW5lclJlZiYmdGhpcy5fZ2V0Um9vdE5vZGUoKS5hcHBlbmRDaGlsZChhLmhvc3RWaWV3LnJvb3ROb2Rlc1swXSksc3VwZXIuc2V0RGlzcG9zZUZuKCgpPT5hLmRlc3Ryb3koKSksdGhpcy5fYXR0YWNoZWRQb3J0YWw9ZSx0aGlzLl9hdHRhY2hlZFJlZj1hLHRoaXMuYXR0YWNoZWQuZW1pdChhKSxhfWF0dGFjaFRlbXBsYXRlUG9ydGFsKGUpe2Uuc2V0QXR0YWNoZWRIb3N0KHRoaXMpO2xldCBpPXRoaXMuX3ZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KGUudGVtcGxhdGVSZWYsZS5jb250ZXh0LHtpbmplY3RvcjplLmluamVjdG9yfSk7cmV0dXJuIHN1cGVyLnNldERpc3Bvc2VGbigoKT0+dGhpcy5fdmlld0NvbnRhaW5lclJlZi5jbGVhcigpKSx0aGlzLl9hdHRhY2hlZFBvcnRhbD1lLHRoaXMuX2F0dGFjaGVkUmVmPWksdGhpcy5hdHRhY2hlZC5lbWl0KGkpLGl9X2dldFJvb3ROb2RlKCl7bGV0IGU9dGhpcy5fdmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7cmV0dXJuIGUubm9kZVR5cGU9PT1lLkVMRU1FTlRfTk9ERT9lOmUucGFyZW50Tm9kZX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhobyksQyhlaSksQyhOdCkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJjZGtQb3J0YWxPdXRsZXQiLCIiXV0saW5wdXRzOntwb3J0YWw6WyJjZGtQb3J0YWxPdXRsZXQiLCJwb3J0YWwiXX0sb3V0cHV0czp7YXR0YWNoZWQ6ImF0dGFjaGVkIn0sZXhwb3J0QXM6WyJjZGtQb3J0YWxPdXRsZXQiXSxmZWF0dXJlczpbWGVdfSksbn0pKCksQmw9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe30pLG59KSgpLHgyPWNsYXNze30sRzE9Y2xhc3MgZXh0ZW5kcyB4Mntjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuX2RhdGE9dH1jb25uZWN0KCl7cmV0dXJuIFBfKHRoaXMuX2RhdGEpP3RoaXMuX2RhdGE6JHQodGhpcy5fZGF0YSl9ZGlzY29ubmVjdCgpe319LFcxPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy52aWV3Q2FjaGVTaXplPTIwLHRoaXMuX3ZpZXdDYWNoZT1bXX1hcHBseUNoYW5nZXModCxlLGkscixvKXt0LmZvckVhY2hPcGVyYXRpb24oKGEscyxsKT0+e2xldCBjLGQ7bnVsbD09YS5wcmV2aW91c0luZGV4PyhjPXRoaXMuX2luc2VydFZpZXcoKCk9PmkoYSxzLGwpLGwsZSxyKGEpKSxkPWM/MTowKTpudWxsPT1sPyh0aGlzLl9kZXRhY2hBbmRDYWNoZVZpZXcocyxlKSxkPTMpOihjPXRoaXMuX21vdmVWaWV3KHMsbCxlLHIoYSkpLGQ9MiksbyYmbyh7Y29udGV4dDpjPy5jb250ZXh0LG9wZXJhdGlvbjpkLHJlY29yZDphfSl9KX1kZXRhY2goKXtmb3IobGV0IHQgb2YgdGhpcy5fdmlld0NhY2hlKXQuZGVzdHJveSgpO3RoaXMuX3ZpZXdDYWNoZT1bXX1faW5zZXJ0Vmlldyh0LGUsaSxyKXtsZXQgbz10aGlzLl9pbnNlcnRWaWV3RnJvbUNhY2hlKGUsaSk7aWYobylyZXR1cm4gdm9pZChvLmNvbnRleHQuJGltcGxpY2l0PXIpO2xldCBhPXQoKTtyZXR1cm4gaS5jcmVhdGVFbWJlZGRlZFZpZXcoYS50ZW1wbGF0ZVJlZixhLmNvbnRleHQsYS5pbmRleCl9X2RldGFjaEFuZENhY2hlVmlldyh0LGUpe2xldCBpPWUuZGV0YWNoKHQpO3RoaXMuX21heWJlQ2FjaGVWaWV3KGksZSl9X21vdmVWaWV3KHQsZSxpLHIpe2xldCBvPWkuZ2V0KHQpO3JldHVybiBpLm1vdmUobyxlKSxvLmNvbnRleHQuJGltcGxpY2l0PXIsb31fbWF5YmVDYWNoZVZpZXcodCxlKXtpZih0aGlzLl92aWV3Q2FjaGUubGVuZ3RoPHRoaXMudmlld0NhY2hlU2l6ZSl0aGlzLl92aWV3Q2FjaGUucHVzaCh0KTtlbHNle2xldCBpPWUuaW5kZXhPZih0KTstMT09PWk/dC5kZXN0cm95KCk6ZS5yZW1vdmUoaSl9fV9pbnNlcnRWaWV3RnJvbUNhY2hlKHQsZSl7bGV0IGk9dGhpcy5fdmlld0NhY2hlLnBvcCgpO3JldHVybiBpJiZlLmluc2VydChpLHQpLGl8fG51bGx9fSxmZz1jbGFzc3tnZXQgc2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWR8fCh0aGlzLl9zZWxlY3RlZD1BcnJheS5mcm9tKHRoaXMuX3NlbGVjdGlvbi52YWx1ZXMoKSkpLHRoaXMuX3NlbGVjdGVkfWNvbnN0cnVjdG9yKHQ9ITEsZSxpPSEwLHIpe3RoaXMuX211bHRpcGxlPXQsdGhpcy5fZW1pdENoYW5nZXM9aSx0aGlzLmNvbXBhcmVXaXRoPXIsdGhpcy5fc2VsZWN0aW9uPW5ldyBTZXQsdGhpcy5fZGVzZWxlY3RlZFRvRW1pdD1bXSx0aGlzLl9zZWxlY3RlZFRvRW1pdD1bXSx0aGlzLmNoYW5nZWQ9bmV3IEVlLGUmJmUubGVuZ3RoJiYodD9lLmZvckVhY2gobz0+dGhpcy5fbWFya1NlbGVjdGVkKG8pKTp0aGlzLl9tYXJrU2VsZWN0ZWQoZVswXSksdGhpcy5fc2VsZWN0ZWRUb0VtaXQubGVuZ3RoPTApfXNlbGVjdCguLi50KXt0aGlzLl92ZXJpZnlWYWx1ZUFzc2lnbm1lbnQodCksdC5mb3JFYWNoKGk9PnRoaXMuX21hcmtTZWxlY3RlZChpKSk7bGV0IGU9dGhpcy5faGFzUXVldWVkQ2hhbmdlcygpO3JldHVybiB0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoKSxlfWRlc2VsZWN0KC4uLnQpe3RoaXMuX3ZlcmlmeVZhbHVlQXNzaWdubWVudCh0KSx0LmZvckVhY2goaT0+dGhpcy5fdW5tYXJrU2VsZWN0ZWQoaSkpO2xldCBlPXRoaXMuX2hhc1F1ZXVlZENoYW5nZXMoKTtyZXR1cm4gdGhpcy5fZW1pdENoYW5nZUV2ZW50KCksZX1zZXRTZWxlY3Rpb24oLi4udCl7dGhpcy5fdmVyaWZ5VmFsdWVBc3NpZ25tZW50KHQpO2xldCBlPXRoaXMuc2VsZWN0ZWQsaT1uZXcgU2V0KHQpO3QuZm9yRWFjaChvPT50aGlzLl9tYXJrU2VsZWN0ZWQobykpLGUuZmlsdGVyKG89PiFpLmhhcyhvKSkuZm9yRWFjaChvPT50aGlzLl91bm1hcmtTZWxlY3RlZChvKSk7bGV0IHI9dGhpcy5faGFzUXVldWVkQ2hhbmdlcygpO3JldHVybiB0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoKSxyfXRvZ2dsZSh0KXtyZXR1cm4gdGhpcy5pc1NlbGVjdGVkKHQpP3RoaXMuZGVzZWxlY3QodCk6dGhpcy5zZWxlY3QodCl9Y2xlYXIodD0hMCl7dGhpcy5fdW5tYXJrQWxsKCk7bGV0IGU9dGhpcy5faGFzUXVldWVkQ2hhbmdlcygpO3JldHVybiB0JiZ0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoKSxlfWlzU2VsZWN0ZWQodCl7cmV0dXJuIHRoaXMuX3NlbGVjdGlvbi5oYXModGhpcy5fZ2V0Q29uY3JldGVWYWx1ZSh0KSl9aXNFbXB0eSgpe3JldHVybiAwPT09dGhpcy5fc2VsZWN0aW9uLnNpemV9aGFzVmFsdWUoKXtyZXR1cm4hdGhpcy5pc0VtcHR5KCl9c29ydCh0KXt0aGlzLl9tdWx0aXBsZSYmdGhpcy5zZWxlY3RlZCYmdGhpcy5fc2VsZWN0ZWQuc29ydCh0KX1pc011bHRpcGxlU2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuX211bHRpcGxlfV9lbWl0Q2hhbmdlRXZlbnQoKXt0aGlzLl9zZWxlY3RlZD1udWxsLCh0aGlzLl9zZWxlY3RlZFRvRW1pdC5sZW5ndGh8fHRoaXMuX2Rlc2VsZWN0ZWRUb0VtaXQubGVuZ3RoKSYmKHRoaXMuY2hhbmdlZC5uZXh0KHtzb3VyY2U6dGhpcyxhZGRlZDp0aGlzLl9zZWxlY3RlZFRvRW1pdCxyZW1vdmVkOnRoaXMuX2Rlc2VsZWN0ZWRUb0VtaXR9KSx0aGlzLl9kZXNlbGVjdGVkVG9FbWl0PVtdLHRoaXMuX3NlbGVjdGVkVG9FbWl0PVtdKX1fbWFya1NlbGVjdGVkKHQpe3Q9dGhpcy5fZ2V0Q29uY3JldGVWYWx1ZSh0KSx0aGlzLmlzU2VsZWN0ZWQodCl8fCh0aGlzLl9tdWx0aXBsZXx8dGhpcy5fdW5tYXJrQWxsKCksdGhpcy5pc1NlbGVjdGVkKHQpfHx0aGlzLl9zZWxlY3Rpb24uYWRkKHQpLHRoaXMuX2VtaXRDaGFuZ2VzJiZ0aGlzLl9zZWxlY3RlZFRvRW1pdC5wdXNoKHQpKX1fdW5tYXJrU2VsZWN0ZWQodCl7dD10aGlzLl9nZXRDb25jcmV0ZVZhbHVlKHQpLHRoaXMuaXNTZWxlY3RlZCh0KSYmKHRoaXMuX3NlbGVjdGlvbi5kZWxldGUodCksdGhpcy5fZW1pdENoYW5nZXMmJnRoaXMuX2Rlc2VsZWN0ZWRUb0VtaXQucHVzaCh0KSl9X3VubWFya0FsbCgpe3RoaXMuaXNFbXB0eSgpfHx0aGlzLl9zZWxlY3Rpb24uZm9yRWFjaCh0PT50aGlzLl91bm1hcmtTZWxlY3RlZCh0KSl9X3ZlcmlmeVZhbHVlQXNzaWdubWVudCh0KXt9X2hhc1F1ZXVlZENoYW5nZXMoKXtyZXR1cm4hKCF0aGlzLl9kZXNlbGVjdGVkVG9FbWl0Lmxlbmd0aCYmIXRoaXMuX3NlbGVjdGVkVG9FbWl0Lmxlbmd0aCl9X2dldENvbmNyZXRlVmFsdWUodCl7aWYodGhpcy5jb21wYXJlV2l0aCl7Zm9yKGxldCBlIG9mIHRoaXMuX3NlbGVjdGlvbilpZih0aGlzLmNvbXBhcmVXaXRoKHQsZSkpcmV0dXJuIGU7cmV0dXJuIHR9cmV0dXJuIHR9fSxDMj1uZXcgdGUoIl9WaWV3UmVwZWF0ZXIiKSxRX2U9WyJjb250ZW50V3JhcHBlciJdLFpfZT1bIioiXSxZNz1uZXcgdGUoIlZJUlRVQUxfU0NST0xMX1NUUkFURUdZIik7ZnVuY3Rpb24gS19lKG4pe3JldHVybiBuLl9zY3JvbGxTdHJhdGVneX12YXIgUTc9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMuX2l0ZW1TaXplPTIwLHRoaXMuX21pbkJ1ZmZlclB4PTEwMCx0aGlzLl9tYXhCdWZmZXJQeD0yMDAsdGhpcy5fc2Nyb2xsU3RyYXRlZ3k9bmV3IGNsYXNze2NvbnN0cnVjdG9yKHQsZSxpKXt0aGlzLl9zY3JvbGxlZEluZGV4Q2hhbmdlPW5ldyBFZSx0aGlzLnNjcm9sbGVkSW5kZXhDaGFuZ2U9dGhpcy5fc2Nyb2xsZWRJbmRleENoYW5nZS5waXBlKHJpKCkpLHRoaXMuX3ZpZXdwb3J0PW51bGwsdGhpcy5faXRlbVNpemU9dCx0aGlzLl9taW5CdWZmZXJQeD1lLHRoaXMuX21heEJ1ZmZlclB4PWl9YXR0YWNoKHQpe3RoaXMuX3ZpZXdwb3J0PXQsdGhpcy5fdXBkYXRlVG90YWxDb250ZW50U2l6ZSgpLHRoaXMuX3VwZGF0ZVJlbmRlcmVkUmFuZ2UoKX1kZXRhY2goKXt0aGlzLl9zY3JvbGxlZEluZGV4Q2hhbmdlLmNvbXBsZXRlKCksdGhpcy5fdmlld3BvcnQ9bnVsbH11cGRhdGVJdGVtQW5kQnVmZmVyU2l6ZSh0LGUsaSl7dGhpcy5faXRlbVNpemU9dCx0aGlzLl9taW5CdWZmZXJQeD1lLHRoaXMuX21heEJ1ZmZlclB4PWksdGhpcy5fdXBkYXRlVG90YWxDb250ZW50U2l6ZSgpLHRoaXMuX3VwZGF0ZVJlbmRlcmVkUmFuZ2UoKX1vbkNvbnRlbnRTY3JvbGxlZCgpe3RoaXMuX3VwZGF0ZVJlbmRlcmVkUmFuZ2UoKX1vbkRhdGFMZW5ndGhDaGFuZ2VkKCl7dGhpcy5fdXBkYXRlVG90YWxDb250ZW50U2l6ZSgpLHRoaXMuX3VwZGF0ZVJlbmRlcmVkUmFuZ2UoKX1vbkNvbnRlbnRSZW5kZXJlZCgpe31vblJlbmRlcmVkT2Zmc2V0Q2hhbmdlZCgpe31zY3JvbGxUb0luZGV4KHQsZSl7dGhpcy5fdmlld3BvcnQmJnRoaXMuX3ZpZXdwb3J0LnNjcm9sbFRvT2Zmc2V0KHQqdGhpcy5faXRlbVNpemUsZSl9X3VwZGF0ZVRvdGFsQ29udGVudFNpemUoKXshdGhpcy5fdmlld3BvcnR8fHRoaXMuX3ZpZXdwb3J0LnNldFRvdGFsQ29udGVudFNpemUodGhpcy5fdmlld3BvcnQuZ2V0RGF0YUxlbmd0aCgpKnRoaXMuX2l0ZW1TaXplKX1fdXBkYXRlUmVuZGVyZWRSYW5nZSgpe2lmKCF0aGlzLl92aWV3cG9ydClyZXR1cm47bGV0IHQ9dGhpcy5fdmlld3BvcnQuZ2V0UmVuZGVyZWRSYW5nZSgpLGU9e3N0YXJ0OnQuc3RhcnQsZW5kOnQuZW5kfSxpPXRoaXMuX3ZpZXdwb3J0LmdldFZpZXdwb3J0U2l6ZSgpLHI9dGhpcy5fdmlld3BvcnQuZ2V0RGF0YUxlbmd0aCgpLG89dGhpcy5fdmlld3BvcnQubWVhc3VyZVNjcm9sbE9mZnNldCgpLGE9dGhpcy5faXRlbVNpemU+MD9vL3RoaXMuX2l0ZW1TaXplOjA7aWYoZS5lbmQ+cil7bGV0IGw9TWF0aC5jZWlsKGkvdGhpcy5faXRlbVNpemUpLGM9TWF0aC5tYXgoMCxNYXRoLm1pbihhLHItbCkpO2EhPWMmJihhPWMsbz1jKnRoaXMuX2l0ZW1TaXplLGUuc3RhcnQ9TWF0aC5mbG9vcihhKSksZS5lbmQ9TWF0aC5tYXgoMCxNYXRoLm1pbihyLGUuc3RhcnQrbCkpfWxldCBzPW8tZS5zdGFydCp0aGlzLl9pdGVtU2l6ZTtpZihzPHRoaXMuX21pbkJ1ZmZlclB4JiYwIT1lLnN0YXJ0KXtsZXQgbD1NYXRoLmNlaWwoKHRoaXMuX21heEJ1ZmZlclB4LXMpL3RoaXMuX2l0ZW1TaXplKTtlLnN0YXJ0PU1hdGgubWF4KDAsZS5zdGFydC1sKSxlLmVuZD1NYXRoLm1pbihyLE1hdGguY2VpbChhKyhpK3RoaXMuX21pbkJ1ZmZlclB4KS90aGlzLl9pdGVtU2l6ZSkpfWVsc2V7bGV0IGw9ZS5lbmQqdGhpcy5faXRlbVNpemUtKG8raSk7aWYobDx0aGlzLl9taW5CdWZmZXJQeCYmZS5lbmQhPXIpe2xldCBjPU1hdGguY2VpbCgodGhpcy5fbWF4QnVmZmVyUHgtbCkvdGhpcy5faXRlbVNpemUpO2M+MCYmKGUuZW5kPU1hdGgubWluKHIsZS5lbmQrYyksZS5zdGFydD1NYXRoLm1heCgwLE1hdGguZmxvb3IoYS10aGlzLl9taW5CdWZmZXJQeC90aGlzLl9pdGVtU2l6ZSkpKX19dGhpcy5fdmlld3BvcnQuc2V0UmVuZGVyZWRSYW5nZShlKSx0aGlzLl92aWV3cG9ydC5zZXRSZW5kZXJlZENvbnRlbnRPZmZzZXQodGhpcy5faXRlbVNpemUqZS5zdGFydCksdGhpcy5fc2Nyb2xsZWRJbmRleENoYW5nZS5uZXh0KE1hdGguZmxvb3IoYSkpfX0odGhpcy5pdGVtU2l6ZSx0aGlzLm1pbkJ1ZmZlclB4LHRoaXMubWF4QnVmZmVyUHgpfWdldCBpdGVtU2l6ZSgpe3JldHVybiB0aGlzLl9pdGVtU2l6ZX1zZXQgaXRlbVNpemUoZSl7dGhpcy5faXRlbVNpemU9bWkoZSl9Z2V0IG1pbkJ1ZmZlclB4KCl7cmV0dXJuIHRoaXMuX21pbkJ1ZmZlclB4fXNldCBtaW5CdWZmZXJQeChlKXt0aGlzLl9taW5CdWZmZXJQeD1taShlKX1nZXQgbWF4QnVmZmVyUHgoKXtyZXR1cm4gdGhpcy5fbWF4QnVmZmVyUHh9c2V0IG1heEJ1ZmZlclB4KGUpe3RoaXMuX21heEJ1ZmZlclB4PW1pKGUpfW5nT25DaGFuZ2VzKCl7dGhpcy5fc2Nyb2xsU3RyYXRlZ3kudXBkYXRlSXRlbUFuZEJ1ZmZlclNpemUodGhpcy5pdGVtU2l6ZSx0aGlzLm1pbkJ1ZmZlclB4LHRoaXMubWF4QnVmZmVyUHgpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IiwiaXRlbVNpemUiLCIiXV0saW5wdXRzOntpdGVtU2l6ZToiaXRlbVNpemUiLG1pbkJ1ZmZlclB4OiJtaW5CdWZmZXJQeCIsbWF4QnVmZmVyUHg6Im1heEJ1ZmZlclB4In0sc3RhbmRhbG9uZTohMCxmZWF0dXJlczpbVnQoW3twcm92aWRlOlk3LHVzZUZhY3Rvcnk6S19lLGRlcHM6W1duKCgpPT5uKV19XSkscXRdfSksbn0pKCksTHU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscil7dGhpcy5fbmdab25lPWUsdGhpcy5fcGxhdGZvcm09aSx0aGlzLl9zY3JvbGxlZD1uZXcgRWUsdGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uPW51bGwsdGhpcy5fc2Nyb2xsZWRDb3VudD0wLHRoaXMuc2Nyb2xsQ29udGFpbmVycz1uZXcgTWFwLHRoaXMuX2RvY3VtZW50PXJ9cmVnaXN0ZXIoZSl7dGhpcy5zY3JvbGxDb250YWluZXJzLmhhcyhlKXx8dGhpcy5zY3JvbGxDb250YWluZXJzLnNldChlLGUuZWxlbWVudFNjcm9sbGVkKCkuc3Vic2NyaWJlKCgpPT50aGlzLl9zY3JvbGxlZC5uZXh0KGUpKSl9ZGVyZWdpc3RlcihlKXtsZXQgaT10aGlzLnNjcm9sbENvbnRhaW5lcnMuZ2V0KGUpO2kmJihpLnVuc3Vic2NyaWJlKCksdGhpcy5zY3JvbGxDb250YWluZXJzLmRlbGV0ZShlKSl9c2Nyb2xsZWQoZT0yMCl7cmV0dXJuIHRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcj9uZXcgS3QoaT0+e3RoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbnx8dGhpcy5fYWRkR2xvYmFsTGlzdGVuZXIoKTtsZXQgcj1lPjA/dGhpcy5fc2Nyb2xsZWQucGlwZShuYyhlKSkuc3Vic2NyaWJlKGkpOnRoaXMuX3Njcm9sbGVkLnN1YnNjcmliZShpKTtyZXR1cm4gdGhpcy5fc2Nyb2xsZWRDb3VudCsrLCgpPT57ci51bnN1YnNjcmliZSgpLHRoaXMuX3Njcm9sbGVkQ291bnQtLSx0aGlzLl9zY3JvbGxlZENvdW50fHx0aGlzLl9yZW1vdmVHbG9iYWxMaXN0ZW5lcigpfX0pOiR0KCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9yZW1vdmVHbG9iYWxMaXN0ZW5lcigpLHRoaXMuc2Nyb2xsQ29udGFpbmVycy5mb3JFYWNoKChlLGkpPT50aGlzLmRlcmVnaXN0ZXIoaSkpLHRoaXMuX3Njcm9sbGVkLmNvbXBsZXRlKCl9YW5jZXN0b3JTY3JvbGxlZChlLGkpe2xldCByPXRoaXMuZ2V0QW5jZXN0b3JTY3JvbGxDb250YWluZXJzKGUpO3JldHVybiB0aGlzLnNjcm9sbGVkKGkpLnBpcGUoT2Uobz0+IW98fHIuaW5kZXhPZihvKT4tMSkpfWdldEFuY2VzdG9yU2Nyb2xsQ29udGFpbmVycyhlKXtsZXQgaT1bXTtyZXR1cm4gdGhpcy5zY3JvbGxDb250YWluZXJzLmZvckVhY2goKHIsbyk9Pnt0aGlzLl9zY3JvbGxhYmxlQ29udGFpbnNFbGVtZW50KG8sZSkmJmkucHVzaChvKX0pLGl9X2dldFdpbmRvdygpe3JldHVybiB0aGlzLl9kb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93fV9zY3JvbGxhYmxlQ29udGFpbnNFbGVtZW50KGUsaSl7bGV0IHI9VWEoaSksbz1lLmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50O2Rve2lmKHI9PW8pcmV0dXJuITB9d2hpbGUocj1yLnBhcmVudEVsZW1lbnQpO3JldHVybiExfV9hZGRHbG9iYWxMaXN0ZW5lcigpe3RoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbj10aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PkVpKHRoaXMuX2dldFdpbmRvdygpLmRvY3VtZW50LCJzY3JvbGwiKS5zdWJzY3JpYmUoKCk9PnRoaXMuX3Njcm9sbGVkLm5leHQoKSkpfV9yZW1vdmVHbG9iYWxMaXN0ZW5lcigpe3RoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbiYmKHRoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbj1udWxsKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhvdCksTyhWbiksTyhOdCw4KSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCkseGQ9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscixvKXt0aGlzLmVsZW1lbnRSZWY9ZSx0aGlzLnNjcm9sbERpc3BhdGNoZXI9aSx0aGlzLm5nWm9uZT1yLHRoaXMuZGlyPW8sdGhpcy5fZGVzdHJveWVkPW5ldyBFZSx0aGlzLl9lbGVtZW50U2Nyb2xsZWQ9bmV3IEt0KGE9PnRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT5FaSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwic2Nyb2xsIikucGlwZShpdCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoYSkpKX1uZ09uSW5pdCgpe3RoaXMuc2Nyb2xsRGlzcGF0Y2hlci5yZWdpc3Rlcih0aGlzKX1uZ09uRGVzdHJveSgpe3RoaXMuc2Nyb2xsRGlzcGF0Y2hlci5kZXJlZ2lzdGVyKHRoaXMpLHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCksdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCl9ZWxlbWVudFNjcm9sbGVkKCl7cmV0dXJuIHRoaXMuX2VsZW1lbnRTY3JvbGxlZH1nZXRFbGVtZW50UmVmKCl7cmV0dXJuIHRoaXMuZWxlbWVudFJlZn1zY3JvbGxUbyhlKXtsZXQgaT10aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxyPXRoaXMuZGlyJiYicnRsIj09dGhpcy5kaXIudmFsdWU7bnVsbD09ZS5sZWZ0JiYoZS5sZWZ0PXI/ZS5lbmQ6ZS5zdGFydCksbnVsbD09ZS5yaWdodCYmKGUucmlnaHQ9cj9lLnN0YXJ0OmUuZW5kKSxudWxsIT1lLmJvdHRvbSYmKGUudG9wPWkuc2Nyb2xsSGVpZ2h0LWkuY2xpZW50SGVpZ2h0LWUuYm90dG9tKSxyJiYwIT1pZygpPyhudWxsIT1lLmxlZnQmJihlLnJpZ2h0PWkuc2Nyb2xsV2lkdGgtaS5jbGllbnRXaWR0aC1lLmxlZnQpLDI9PWlnKCk/ZS5sZWZ0PWUucmlnaHQ6MT09aWcoKSYmKGUubGVmdD1lLnJpZ2h0Py1lLnJpZ2h0OmUucmlnaHQpKTpudWxsIT1lLnJpZ2h0JiYoZS5sZWZ0PWkuc2Nyb2xsV2lkdGgtaS5jbGllbnRXaWR0aC1lLnJpZ2h0KSx0aGlzLl9hcHBseVNjcm9sbFRvT3B0aW9ucyhlKX1fYXBwbHlTY3JvbGxUb09wdGlvbnMoZSl7bGV0IGk9dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7azEoKT9pLnNjcm9sbFRvKGUpOihudWxsIT1lLnRvcCYmKGkuc2Nyb2xsVG9wPWUudG9wKSxudWxsIT1lLmxlZnQmJihpLnNjcm9sbExlZnQ9ZS5sZWZ0KSl9bWVhc3VyZVNjcm9sbE9mZnNldChlKXtsZXQgaT0ibGVmdCIscj0icmlnaHQiLG89dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7aWYoInRvcCI9PWUpcmV0dXJuIG8uc2Nyb2xsVG9wO2lmKCJib3R0b20iPT1lKXJldHVybiBvLnNjcm9sbEhlaWdodC1vLmNsaWVudEhlaWdodC1vLnNjcm9sbFRvcDtsZXQgYT10aGlzLmRpciYmInJ0bCI9PXRoaXMuZGlyLnZhbHVlO3JldHVybiJzdGFydCI9PWU/ZT1hP3I6aToiZW5kIj09ZSYmKGU9YT9pOnIpLGEmJjI9PWlnKCk/ZT09aT9vLnNjcm9sbFdpZHRoLW8uY2xpZW50V2lkdGgtby5zY3JvbGxMZWZ0Om8uc2Nyb2xsTGVmdDphJiYxPT1pZygpP2U9PWk/by5zY3JvbGxMZWZ0K28uc2Nyb2xsV2lkdGgtby5jbGllbnRXaWR0aDotby5zY3JvbGxMZWZ0OmU9PWk/by5zY3JvbGxMZWZ0Om8uc2Nyb2xsV2lkdGgtby5jbGllbnRXaWR0aC1vLnNjcm9sbExlZnR9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMoTHUpLEMob3QpLEMoemksOCkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJjZGstc2Nyb2xsYWJsZSIsIiJdLFsiIiwiY2RrU2Nyb2xsYWJsZSIsIiJdXSxzdGFuZGFsb25lOiEwfSksbn0pKCksV2E9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscil7dGhpcy5fcGxhdGZvcm09ZSx0aGlzLl9jaGFuZ2U9bmV3IEVlLHRoaXMuX2NoYW5nZUxpc3RlbmVyPW89Pnt0aGlzLl9jaGFuZ2UubmV4dChvKX0sdGhpcy5fZG9jdW1lbnQ9cixpLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57aWYoZS5pc0Jyb3dzZXIpe2xldCBvPXRoaXMuX2dldFdpbmRvdygpO28uYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9jaGFuZ2VMaXN0ZW5lciksby5hZGRFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsdGhpcy5fY2hhbmdlTGlzdGVuZXIpfXRoaXMuY2hhbmdlKCkuc3Vic2NyaWJlKCgpPT50aGlzLl92aWV3cG9ydFNpemU9bnVsbCl9KX1uZ09uRGVzdHJveSgpe2lmKHRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcil7bGV0IGU9dGhpcy5fZ2V0V2luZG93KCk7ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX2NoYW5nZUxpc3RlbmVyKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIix0aGlzLl9jaGFuZ2VMaXN0ZW5lcil9dGhpcy5fY2hhbmdlLmNvbXBsZXRlKCl9Z2V0Vmlld3BvcnRTaXplKCl7dGhpcy5fdmlld3BvcnRTaXplfHx0aGlzLl91cGRhdGVWaWV3cG9ydFNpemUoKTtsZXQgZT17d2lkdGg6dGhpcy5fdmlld3BvcnRTaXplLndpZHRoLGhlaWdodDp0aGlzLl92aWV3cG9ydFNpemUuaGVpZ2h0fTtyZXR1cm4gdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyfHwodGhpcy5fdmlld3BvcnRTaXplPW51bGwpLGV9Z2V0Vmlld3BvcnRSZWN0KCl7bGV0IGU9dGhpcy5nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCkse3dpZHRoOmksaGVpZ2h0OnJ9PXRoaXMuZ2V0Vmlld3BvcnRTaXplKCk7cmV0dXJue3RvcDplLnRvcCxsZWZ0OmUubGVmdCxib3R0b206ZS50b3ArcixyaWdodDplLmxlZnQraSxoZWlnaHQ6cix3aWR0aDppfX1nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCl7aWYoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3NlcilyZXR1cm57dG9wOjAsbGVmdDowfTtsZXQgZT10aGlzLl9kb2N1bWVudCxpPXRoaXMuX2dldFdpbmRvdygpLHI9ZS5kb2N1bWVudEVsZW1lbnQsbz1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt0b3A6LW8udG9wfHxlLmJvZHkuc2Nyb2xsVG9wfHxpLnNjcm9sbFl8fHIuc2Nyb2xsVG9wfHwwLGxlZnQ6LW8ubGVmdHx8ZS5ib2R5LnNjcm9sbExlZnR8fGkuc2Nyb2xsWHx8ci5zY3JvbGxMZWZ0fHwwfX1jaGFuZ2UoZT0yMCl7cmV0dXJuIGU+MD90aGlzLl9jaGFuZ2UucGlwZShuYyhlKSk6dGhpcy5fY2hhbmdlfV9nZXRXaW5kb3coKXtyZXR1cm4gdGhpcy5fZG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvd31fdXBkYXRlVmlld3BvcnRTaXplKCl7bGV0IGU9dGhpcy5fZ2V0V2luZG93KCk7dGhpcy5fdmlld3BvcnRTaXplPXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcj97d2lkdGg6ZS5pbm5lcldpZHRoLGhlaWdodDplLmlubmVySGVpZ2h0fTp7d2lkdGg6MCxoZWlnaHQ6MH19fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oVm4pLE8ob3QpLE8oTnQsOCkpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLG59KSgpLHE3PW5ldyB0ZSgiVklSVFVBTF9TQ1JPTExBQkxFIiksZWJlPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyB4ZHtjb25zdHJ1Y3RvcihlLGkscixvKXtzdXBlcihlLGkscixvKX1tZWFzdXJlVmlld3BvcnRTaXplKGUpe2xldCBpPXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O3JldHVybiJob3Jpem9udGFsIj09PWU/aS5jbGllbnRXaWR0aDppLmNsaWVudEhlaWdodH19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyh4ZSksQyhMdSksQyhvdCksQyh6aSw4KSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sZmVhdHVyZXM6W1hlXX0pLG59KSgpLG5iZT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lPCJ1Ij9ZQTpObSxnZz0oKCk9PntjbGFzcyBuIGV4dGVuZHMgZWJle2dldCBvcmllbnRhdGlvbigpe3JldHVybiB0aGlzLl9vcmllbnRhdGlvbn1zZXQgb3JpZW50YXRpb24oZSl7dGhpcy5fb3JpZW50YXRpb24hPT1lJiYodGhpcy5fb3JpZW50YXRpb249ZSx0aGlzLl9jYWxjdWxhdGVTcGFjZXJTaXplKCkpfWdldCBhcHBlbmRPbmx5KCl7cmV0dXJuIHRoaXMuX2FwcGVuZE9ubHl9c2V0IGFwcGVuZE9ubHkoZSl7dGhpcy5fYXBwZW5kT25seT12dChlKX1jb25zdHJ1Y3RvcihlLGkscixvLGEscyxsLGMpe3N1cGVyKGUscyxyLGEpLHRoaXMuZWxlbWVudFJlZj1lLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWksdGhpcy5fc2Nyb2xsU3RyYXRlZ3k9byx0aGlzLnNjcm9sbGFibGU9Yyx0aGlzLl9wbGF0Zm9ybT0kbihWbiksdGhpcy5fZGV0YWNoZWRTdWJqZWN0PW5ldyBFZSx0aGlzLl9yZW5kZXJlZFJhbmdlU3ViamVjdD1uZXcgRWUsdGhpcy5fb3JpZW50YXRpb249InZlcnRpY2FsIix0aGlzLl9hcHBlbmRPbmx5PSExLHRoaXMuc2Nyb2xsZWRJbmRleENoYW5nZT1uZXcgS3QoZD0+dGhpcy5fc2Nyb2xsU3RyYXRlZ3kuc2Nyb2xsZWRJbmRleENoYW5nZS5zdWJzY3JpYmUodT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dGhpcy5uZ1pvbmUucnVuKCgpPT5kLm5leHQodSkpKSkpLHRoaXMucmVuZGVyZWRSYW5nZVN0cmVhbT10aGlzLl9yZW5kZXJlZFJhbmdlU3ViamVjdCx0aGlzLl90b3RhbENvbnRlbnRTaXplPTAsdGhpcy5fdG90YWxDb250ZW50V2lkdGg9IiIsdGhpcy5fdG90YWxDb250ZW50SGVpZ2h0PSIiLHRoaXMuX3JlbmRlcmVkUmFuZ2U9e3N0YXJ0OjAsZW5kOjB9LHRoaXMuX2RhdGFMZW5ndGg9MCx0aGlzLl92aWV3cG9ydFNpemU9MCx0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXQ9MCx0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXROZWVkc1Jld3JpdGU9ITEsdGhpcy5faXNDaGFuZ2VEZXRlY3Rpb25QZW5kaW5nPSExLHRoaXMuX3J1bkFmdGVyQ2hhbmdlRGV0ZWN0aW9uPVtdLHRoaXMuX3ZpZXdwb3J0Q2hhbmdlcz1Fbi5FTVBUWSx0aGlzLl92aWV3cG9ydENoYW5nZXM9bC5jaGFuZ2UoKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNoZWNrVmlld3BvcnRTaXplKCl9KSx0aGlzLnNjcm9sbGFibGV8fCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJjZGstdmlydHVhbC1zY3JvbGxhYmxlIiksdGhpcy5zY3JvbGxhYmxlPXRoaXMpfW5nT25Jbml0KCl7IXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcnx8KHRoaXMuc2Nyb2xsYWJsZT09PXRoaXMmJnN1cGVyLm5nT25Jbml0KCksdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pnt0aGlzLl9tZWFzdXJlVmlld3BvcnRTaXplKCksdGhpcy5fc2Nyb2xsU3RyYXRlZ3kuYXR0YWNoKHRoaXMpLHRoaXMuc2Nyb2xsYWJsZS5lbGVtZW50U2Nyb2xsZWQoKS5waXBlKGtuKG51bGwpLG5jKDAsbmJlKSkuc3Vic2NyaWJlKCgpPT50aGlzLl9zY3JvbGxTdHJhdGVneS5vbkNvbnRlbnRTY3JvbGxlZCgpKSx0aGlzLl9tYXJrQ2hhbmdlRGV0ZWN0aW9uTmVlZGVkKCl9KSkpfW5nT25EZXN0cm95KCl7dGhpcy5kZXRhY2goKSx0aGlzLl9zY3JvbGxTdHJhdGVneS5kZXRhY2goKSx0aGlzLl9yZW5kZXJlZFJhbmdlU3ViamVjdC5jb21wbGV0ZSgpLHRoaXMuX2RldGFjaGVkU3ViamVjdC5jb21wbGV0ZSgpLHRoaXMuX3ZpZXdwb3J0Q2hhbmdlcy51bnN1YnNjcmliZSgpLHN1cGVyLm5nT25EZXN0cm95KCl9YXR0YWNoKGUpe3RoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57dGhpcy5fZm9yT2Y9ZSx0aGlzLl9mb3JPZi5kYXRhU3RyZWFtLnBpcGUoaXQodGhpcy5fZGV0YWNoZWRTdWJqZWN0KSkuc3Vic2NyaWJlKGk9PntsZXQgcj1pLmxlbmd0aDtyIT09dGhpcy5fZGF0YUxlbmd0aCYmKHRoaXMuX2RhdGFMZW5ndGg9cix0aGlzLl9zY3JvbGxTdHJhdGVneS5vbkRhdGFMZW5ndGhDaGFuZ2VkKCkpLHRoaXMuX2RvQ2hhbmdlRGV0ZWN0aW9uKCl9KX0pfWRldGFjaCgpe3RoaXMuX2Zvck9mPW51bGwsdGhpcy5fZGV0YWNoZWRTdWJqZWN0Lm5leHQoKX1nZXREYXRhTGVuZ3RoKCl7cmV0dXJuIHRoaXMuX2RhdGFMZW5ndGh9Z2V0Vmlld3BvcnRTaXplKCl7cmV0dXJuIHRoaXMuX3ZpZXdwb3J0U2l6ZX1nZXRSZW5kZXJlZFJhbmdlKCl7cmV0dXJuIHRoaXMuX3JlbmRlcmVkUmFuZ2V9bWVhc3VyZUJvdW5kaW5nQ2xpZW50UmVjdFdpdGhTY3JvbGxPZmZzZXQoZSl7cmV0dXJuIHRoaXMuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbZV19c2V0VG90YWxDb250ZW50U2l6ZShlKXt0aGlzLl90b3RhbENvbnRlbnRTaXplIT09ZSYmKHRoaXMuX3RvdGFsQ29udGVudFNpemU9ZSx0aGlzLl9jYWxjdWxhdGVTcGFjZXJTaXplKCksdGhpcy5fbWFya0NoYW5nZURldGVjdGlvbk5lZWRlZCgpKX1zZXRSZW5kZXJlZFJhbmdlKGUpeyhmdW5jdGlvbihuLHQpe3JldHVybiBuLnN0YXJ0PT10LnN0YXJ0JiZuLmVuZD09dC5lbmR9KSh0aGlzLl9yZW5kZXJlZFJhbmdlLGUpfHwodGhpcy5hcHBlbmRPbmx5JiYoZT17c3RhcnQ6MCxlbmQ6TWF0aC5tYXgodGhpcy5fcmVuZGVyZWRSYW5nZS5lbmQsZS5lbmQpfSksdGhpcy5fcmVuZGVyZWRSYW5nZVN1YmplY3QubmV4dCh0aGlzLl9yZW5kZXJlZFJhbmdlPWUpLHRoaXMuX21hcmtDaGFuZ2VEZXRlY3Rpb25OZWVkZWQoKCk9PnRoaXMuX3Njcm9sbFN0cmF0ZWd5Lm9uQ29udGVudFJlbmRlcmVkKCkpKX1nZXRPZmZzZXRUb1JlbmRlcmVkQ29udGVudFN0YXJ0KCl7cmV0dXJuIHRoaXMuX3JlbmRlcmVkQ29udGVudE9mZnNldE5lZWRzUmV3cml0ZT9udWxsOnRoaXMuX3JlbmRlcmVkQ29udGVudE9mZnNldH1zZXRSZW5kZXJlZENvbnRlbnRPZmZzZXQoZSxpPSJ0by1zdGFydCIpe2U9dGhpcy5hcHBlbmRPbmx5JiYidG8tc3RhcnQiPT09aT8wOmU7bGV0IG89Imhvcml6b250YWwiPT10aGlzLm9yaWVudGF0aW9uLGE9bz8iWCI6IlkiLGw9YHRyYW5zbGF0ZSR7YX0oJHtOdW1iZXIoKG8mJnRoaXMuZGlyJiYicnRsIj09dGhpcy5kaXIudmFsdWU/LTE6MSkqZSl9cHgpYDt0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXQ9ZSwidG8tZW5kIj09PWkmJihsKz1gIHRyYW5zbGF0ZSR7YX0oLTEwMCUpYCx0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXROZWVkc1Jld3JpdGU9ITApLHRoaXMuX3JlbmRlcmVkQ29udGVudFRyYW5zZm9ybSE9bCYmKHRoaXMuX3JlbmRlcmVkQ29udGVudFRyYW5zZm9ybT1sLHRoaXMuX21hcmtDaGFuZ2VEZXRlY3Rpb25OZWVkZWQoKCk9Pnt0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXROZWVkc1Jld3JpdGU/KHRoaXMuX3JlbmRlcmVkQ29udGVudE9mZnNldC09dGhpcy5tZWFzdXJlUmVuZGVyZWRDb250ZW50U2l6ZSgpLHRoaXMuX3JlbmRlcmVkQ29udGVudE9mZnNldE5lZWRzUmV3cml0ZT0hMSx0aGlzLnNldFJlbmRlcmVkQ29udGVudE9mZnNldCh0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXQpKTp0aGlzLl9zY3JvbGxTdHJhdGVneS5vblJlbmRlcmVkT2Zmc2V0Q2hhbmdlZCgpfSkpfXNjcm9sbFRvT2Zmc2V0KGUsaT0iYXV0byIpe2xldCByPXtiZWhhdmlvcjppfTsiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uP3Iuc3RhcnQ9ZTpyLnRvcD1lLHRoaXMuc2Nyb2xsYWJsZS5zY3JvbGxUbyhyKX1zY3JvbGxUb0luZGV4KGUsaT0iYXV0byIpe3RoaXMuX3Njcm9sbFN0cmF0ZWd5LnNjcm9sbFRvSW5kZXgoZSxpKX1tZWFzdXJlU2Nyb2xsT2Zmc2V0KGUpe2xldCBpO3JldHVybiBpPXRoaXMuc2Nyb2xsYWJsZT09dGhpcz9yPT5zdXBlci5tZWFzdXJlU2Nyb2xsT2Zmc2V0KHIpOnI9PnRoaXMuc2Nyb2xsYWJsZS5tZWFzdXJlU2Nyb2xsT2Zmc2V0KHIpLE1hdGgubWF4KDAsaShlPz8oImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj8ic3RhcnQiOiJ0b3AiKSktdGhpcy5tZWFzdXJlVmlld3BvcnRPZmZzZXQoKSl9bWVhc3VyZVZpZXdwb3J0T2Zmc2V0KGUpe2xldCBpLHI9ImxlZnQiLG89InJpZ2h0IixhPSJydGwiPT10aGlzLmRpcj8udmFsdWU7aT0ic3RhcnQiPT1lP2E/bzpyOiJlbmQiPT1lP2E/cjpvOmV8fCgiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyJsZWZ0IjoidG9wIik7bGV0IHM9dGhpcy5zY3JvbGxhYmxlLm1lYXN1cmVCb3VuZGluZ0NsaWVudFJlY3RXaXRoU2Nyb2xsT2Zmc2V0KGkpO3JldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVtpXS1zfW1lYXN1cmVSZW5kZXJlZENvbnRlbnRTaXplKCl7bGV0IGU9dGhpcy5fY29udGVudFdyYXBwZXIubmF0aXZlRWxlbWVudDtyZXR1cm4iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uP2Uub2Zmc2V0V2lkdGg6ZS5vZmZzZXRIZWlnaHR9bWVhc3VyZVJhbmdlU2l6ZShlKXtyZXR1cm4gdGhpcy5fZm9yT2Y/dGhpcy5fZm9yT2YubWVhc3VyZVJhbmdlU2l6ZShlLHRoaXMub3JpZW50YXRpb24pOjB9Y2hlY2tWaWV3cG9ydFNpemUoKXt0aGlzLl9tZWFzdXJlVmlld3BvcnRTaXplKCksdGhpcy5fc2Nyb2xsU3RyYXRlZ3kub25EYXRhTGVuZ3RoQ2hhbmdlZCgpfV9tZWFzdXJlVmlld3BvcnRTaXplKCl7dGhpcy5fdmlld3BvcnRTaXplPXRoaXMuc2Nyb2xsYWJsZS5tZWFzdXJlVmlld3BvcnRTaXplKHRoaXMub3JpZW50YXRpb24pfV9tYXJrQ2hhbmdlRGV0ZWN0aW9uTmVlZGVkKGUpe2UmJnRoaXMuX3J1bkFmdGVyQ2hhbmdlRGV0ZWN0aW9uLnB1c2goZSksdGhpcy5faXNDaGFuZ2VEZXRlY3Rpb25QZW5kaW5nfHwodGhpcy5faXNDaGFuZ2VEZXRlY3Rpb25QZW5kaW5nPSEwLHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57dGhpcy5fZG9DaGFuZ2VEZXRlY3Rpb24oKX0pKSl9X2RvQ2hhbmdlRGV0ZWN0aW9uKCl7dGhpcy5faXNDaGFuZ2VEZXRlY3Rpb25QZW5kaW5nPSExLHRoaXMuX2NvbnRlbnRXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNmb3JtPXRoaXMuX3JlbmRlcmVkQ29udGVudFRyYW5zZm9ybSx0aGlzLm5nWm9uZS5ydW4oKCk9PnRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtsZXQgZT10aGlzLl9ydW5BZnRlckNoYW5nZURldGVjdGlvbjt0aGlzLl9ydW5BZnRlckNoYW5nZURldGVjdGlvbj1bXTtmb3IobGV0IGkgb2YgZSlpKCl9X2NhbGN1bGF0ZVNwYWNlclNpemUoKXt0aGlzLl90b3RhbENvbnRlbnRIZWlnaHQ9Imhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj8iIjpgJHt0aGlzLl90b3RhbENvbnRlbnRTaXplfXB4YCx0aGlzLl90b3RhbENvbnRlbnRXaWR0aD0iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uP2Ake3RoaXMuX3RvdGFsQ29udGVudFNpemV9cHhgOiIifX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSxDKFF0KSxDKG90KSxDKFk3LDgpLEMoemksOCksQyhMdSksQyhXYSksQyhxNyw4KSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1siY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0Il1dLHZpZXdRdWVyeTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmVWUoUV9lLDcpLDImZSl7bGV0IHI7YmUocj12ZSgpKSYmKGkuX2NvbnRlbnRXcmFwcGVyPXIuZmlyc3QpfX0saG9zdEF0dHJzOlsxLCJjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQiXSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezImZSYmbnQoImNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIiwiaG9yaXpvbnRhbCI9PT1pLm9yaWVudGF0aW9uKSgiY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIiwiaG9yaXpvbnRhbCIhPT1pLm9yaWVudGF0aW9uKX0saW5wdXRzOntvcmllbnRhdGlvbjoib3JpZW50YXRpb24iLGFwcGVuZE9ubHk6ImFwcGVuZE9ubHkifSxvdXRwdXRzOntzY3JvbGxlZEluZGV4Q2hhbmdlOiJzY3JvbGxlZEluZGV4Q2hhbmdlIn0sc3RhbmRhbG9uZTohMCxmZWF0dXJlczpbVnQoW3twcm92aWRlOnhkLHVzZUZhY3Rvcnk6KHQsZSk9PnR8fGUsZGVwczpbW25ldyBrYSxuZXcgY2YocTcpXSxuXX1dKSxYZSxBa10sbmdDb250ZW50U2VsZWN0b3JzOlpfZSxkZWNsczo0LHZhcnM6NCxjb25zdHM6W1sxLCJjZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyIl0sWyJjb250ZW50V3JhcHBlciIsIiJdLFsxLCJjZGstdmlydHVhbC1zY3JvbGwtc3BhY2VyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZm4oKSxmKDAsImRpdiIsMCwxKSxUdCgyKSxnKCksaygzLCJkaXYiLDIpKSwyJmUmJih2KDMpLEJ0KCJ3aWR0aCIsaS5fdG90YWxDb250ZW50V2lkdGgpKCJoZWlnaHQiLGkuX3RvdGFsQ29udGVudEhlaWdodCkpfSxzdHlsZXM6WyJjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnR7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0uY2RrLXZpcnR1YWwtc2Nyb2xsYWJsZXtvdmVyZmxvdzphdXRvO3dpbGwtY2hhbmdlOnNjcm9sbC1wb3NpdGlvbjtjb250YWluOnN0cmljdDstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0uY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7Y29udGFpbjpjb250ZW50fVtkaXI9cnRsXSAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcntyaWdodDowO2xlZnQ6YXV0b30uY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXJ7bWluLWhlaWdodDoxMDAlfS5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24taG9yaXpvbnRhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj5kbDpub3QoW2Nka1ZpcnR1YWxGb3JdKSwuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+b2w6bm90KFtjZGtWaXJ0dWFsRm9yXSksLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPnRhYmxlOm5vdChbY2RrVmlydHVhbEZvcl0pLC5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24taG9yaXpvbnRhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj51bDpub3QoW2Nka1ZpcnR1YWxGb3JdKXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MDtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodC13aWR0aDowO291dGxpbmU6bm9uZX0uY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVye21pbi13aWR0aDoxMDAlfS5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24tdmVydGljYWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+ZGw6bm90KFtjZGtWaXJ0dWFsRm9yXSksLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi12ZXJ0aWNhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj5vbDpub3QoW2Nka1ZpcnR1YWxGb3JdKSwuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPnRhYmxlOm5vdChbY2RrVmlydHVhbEZvcl0pLC5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24tdmVydGljYWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+dWw6bm90KFtjZGtWaXJ0dWFsRm9yXSl7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjA7Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1ib3R0b20td2lkdGg6MDtvdXRsaW5lOm5vbmV9LmNkay12aXJ0dWFsLXNjcm9sbC1zcGFjZXJ7aGVpZ2h0OjFweDt0cmFuc2Zvcm0tb3JpZ2luOjAgMDtmbGV4OjAgMCBhdXRvfVtkaXI9cnRsXSAuY2RrLXZpcnR1YWwtc2Nyb2xsLXNwYWNlcnt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMH0iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKTtmdW5jdGlvbiBYNyhuLHQsZSl7aWYoIWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KXJldHVybiAwO2xldCByPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuImhvcml6b250YWwiPT09bj8ic3RhcnQiPT09dD9yLmxlZnQ6ci5yaWdodDoic3RhcnQiPT09dD9yLnRvcDpyLmJvdHRvbX12YXIgWjc9KCgpPT57Y2xhc3MgbntnZXQgY2RrVmlydHVhbEZvck9mKCl7cmV0dXJuIHRoaXMuX2Nka1ZpcnR1YWxGb3JPZn1zZXQgY2RrVmlydHVhbEZvck9mKGUpe3RoaXMuX2Nka1ZpcnR1YWxGb3JPZj1lLGZ1bmN0aW9uKG4pe3JldHVybiBuJiYiZnVuY3Rpb24iPT10eXBlb2Ygbi5jb25uZWN0JiYhKG4gaW5zdGFuY2VvZiBEXyl9KGUpP3RoaXMuX2RhdGFTb3VyY2VDaGFuZ2VzLm5leHQoZSk6dGhpcy5fZGF0YVNvdXJjZUNoYW5nZXMubmV4dChuZXcgRzEoUF8oZSk/ZTpBcnJheS5mcm9tKGV8fFtdKSkpfWdldCBjZGtWaXJ0dWFsRm9yVHJhY2tCeSgpe3JldHVybiB0aGlzLl9jZGtWaXJ0dWFsRm9yVHJhY2tCeX1zZXQgY2RrVmlydHVhbEZvclRyYWNrQnkoZSl7dGhpcy5fbmVlZHNVcGRhdGU9ITAsdGhpcy5fY2RrVmlydHVhbEZvclRyYWNrQnk9ZT8oaSxyKT0+ZShpKyh0aGlzLl9yZW5kZXJlZFJhbmdlP3RoaXMuX3JlbmRlcmVkUmFuZ2Uuc3RhcnQ6MCkscik6dm9pZCAwfXNldCBjZGtWaXJ0dWFsRm9yVGVtcGxhdGUoZSl7ZSYmKHRoaXMuX25lZWRzVXBkYXRlPSEwLHRoaXMuX3RlbXBsYXRlPWUpfWdldCBjZGtWaXJ0dWFsRm9yVGVtcGxhdGVDYWNoZVNpemUoKXtyZXR1cm4gdGhpcy5fdmlld1JlcGVhdGVyLnZpZXdDYWNoZVNpemV9c2V0IGNka1ZpcnR1YWxGb3JUZW1wbGF0ZUNhY2hlU2l6ZShlKXt0aGlzLl92aWV3UmVwZWF0ZXIudmlld0NhY2hlU2l6ZT1taShlKX1jb25zdHJ1Y3RvcihlLGkscixvLGEscyl7dGhpcy5fdmlld0NvbnRhaW5lclJlZj1lLHRoaXMuX3RlbXBsYXRlPWksdGhpcy5fZGlmZmVycz1yLHRoaXMuX3ZpZXdSZXBlYXRlcj1vLHRoaXMuX3ZpZXdwb3J0PWEsdGhpcy52aWV3Q2hhbmdlPW5ldyBFZSx0aGlzLl9kYXRhU291cmNlQ2hhbmdlcz1uZXcgRWUsdGhpcy5kYXRhU3RyZWFtPXRoaXMuX2RhdGFTb3VyY2VDaGFuZ2VzLnBpcGUoa24obnVsbCksWXQoKG4sdCk9PntsZXQgZSxpPSExO24uc3Vic2NyaWJlKEh0KHQscj0+e2xldCBvPWU7ZT1yLGkmJnQubmV4dChbbyxyXSksaT0hMH0pKX0pLEpuKChbbCxjXSk9PnRoaXMuX2NoYW5nZURhdGFTb3VyY2UobCxjKSksRGEoMSkpLHRoaXMuX2RpZmZlcj1udWxsLHRoaXMuX25lZWRzVXBkYXRlPSExLHRoaXMuX2Rlc3Ryb3llZD1uZXcgRWUsdGhpcy5kYXRhU3RyZWFtLnN1YnNjcmliZShsPT57dGhpcy5fZGF0YT1sLHRoaXMuX29uUmVuZGVyZWREYXRhQ2hhbmdlKCl9KSx0aGlzLl92aWV3cG9ydC5yZW5kZXJlZFJhbmdlU3RyZWFtLnBpcGUoaXQodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKGw9Pnt0aGlzLl9yZW5kZXJlZFJhbmdlPWwsdGhpcy52aWV3Q2hhbmdlLm9ic2VydmVycy5sZW5ndGgmJnMucnVuKCgpPT50aGlzLnZpZXdDaGFuZ2UubmV4dCh0aGlzLl9yZW5kZXJlZFJhbmdlKSksdGhpcy5fb25SZW5kZXJlZERhdGFDaGFuZ2UoKX0pLHRoaXMuX3ZpZXdwb3J0LmF0dGFjaCh0aGlzKX1tZWFzdXJlUmFuZ2VTaXplKGUsaSl7aWYoZS5zdGFydD49ZS5lbmQpcmV0dXJuIDA7bGV0IGEscyxyPWUuc3RhcnQtdGhpcy5fcmVuZGVyZWRSYW5nZS5zdGFydCxvPWUuZW5kLWUuc3RhcnQ7Zm9yKGxldCBsPTA7bDxvO2wrKyl7bGV0IGM9dGhpcy5fdmlld0NvbnRhaW5lclJlZi5nZXQobCtyKTtpZihjJiZjLnJvb3ROb2Rlcy5sZW5ndGgpe2E9cz1jLnJvb3ROb2Rlc1swXTticmVha319Zm9yKGxldCBsPW8tMTtsPi0xO2wtLSl7bGV0IGM9dGhpcy5fdmlld0NvbnRhaW5lclJlZi5nZXQobCtyKTtpZihjJiZjLnJvb3ROb2Rlcy5sZW5ndGgpe3M9Yy5yb290Tm9kZXNbYy5yb290Tm9kZXMubGVuZ3RoLTFdO2JyZWFrfX1yZXR1cm4gYSYmcz9YNyhpLCJlbmQiLHMpLVg3KGksInN0YXJ0IixhKTowfW5nRG9DaGVjaygpe2lmKHRoaXMuX2RpZmZlciYmdGhpcy5fbmVlZHNVcGRhdGUpe2xldCBlPXRoaXMuX2RpZmZlci5kaWZmKHRoaXMuX3JlbmRlcmVkSXRlbXMpO2U/dGhpcy5fYXBwbHlDaGFuZ2VzKGUpOnRoaXMuX3VwZGF0ZUNvbnRleHQoKSx0aGlzLl9uZWVkc1VwZGF0ZT0hMX19bmdPbkRlc3Ryb3koKXt0aGlzLl92aWV3cG9ydC5kZXRhY2goKSx0aGlzLl9kYXRhU291cmNlQ2hhbmdlcy5uZXh0KHZvaWQgMCksdGhpcy5fZGF0YVNvdXJjZUNoYW5nZXMuY29tcGxldGUoKSx0aGlzLnZpZXdDaGFuZ2UuY29tcGxldGUoKSx0aGlzLl9kZXN0cm95ZWQubmV4dCgpLHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpLHRoaXMuX3ZpZXdSZXBlYXRlci5kZXRhY2goKX1fb25SZW5kZXJlZERhdGFDaGFuZ2UoKXshdGhpcy5fcmVuZGVyZWRSYW5nZXx8KHRoaXMuX3JlbmRlcmVkSXRlbXM9dGhpcy5fZGF0YS5zbGljZSh0aGlzLl9yZW5kZXJlZFJhbmdlLnN0YXJ0LHRoaXMuX3JlbmRlcmVkUmFuZ2UuZW5kKSx0aGlzLl9kaWZmZXJ8fCh0aGlzLl9kaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKHRoaXMuX3JlbmRlcmVkSXRlbXMpLmNyZWF0ZSgoZSxpKT0+dGhpcy5jZGtWaXJ0dWFsRm9yVHJhY2tCeT90aGlzLmNka1ZpcnR1YWxGb3JUcmFja0J5KGUsaSk6aSkpLHRoaXMuX25lZWRzVXBkYXRlPSEwKX1fY2hhbmdlRGF0YVNvdXJjZShlLGkpe3JldHVybiBlJiZlLmRpc2Nvbm5lY3QodGhpcyksdGhpcy5fbmVlZHNVcGRhdGU9ITAsaT9pLmNvbm5lY3QodGhpcyk6JHQoKX1fdXBkYXRlQ29udGV4dCgpe2xldCBlPXRoaXMuX2RhdGEubGVuZ3RoLGk9dGhpcy5fdmlld0NvbnRhaW5lclJlZi5sZW5ndGg7Zm9yKDtpLS07KXtsZXQgcj10aGlzLl92aWV3Q29udGFpbmVyUmVmLmdldChpKTtyLmNvbnRleHQuaW5kZXg9dGhpcy5fcmVuZGVyZWRSYW5nZS5zdGFydCtpLHIuY29udGV4dC5jb3VudD1lLHRoaXMuX3VwZGF0ZUNvbXB1dGVkQ29udGV4dFByb3BlcnRpZXMoci5jb250ZXh0KSxyLmRldGVjdENoYW5nZXMoKX19X2FwcGx5Q2hhbmdlcyhlKXt0aGlzLl92aWV3UmVwZWF0ZXIuYXBwbHlDaGFuZ2VzKGUsdGhpcy5fdmlld0NvbnRhaW5lclJlZiwobyxhLHMpPT50aGlzLl9nZXRFbWJlZGRlZFZpZXdBcmdzKG8scyksbz0+by5pdGVtKSxlLmZvckVhY2hJZGVudGl0eUNoYW5nZShvPT57dGhpcy5fdmlld0NvbnRhaW5lclJlZi5nZXQoby5jdXJyZW50SW5kZXgpLmNvbnRleHQuJGltcGxpY2l0PW8uaXRlbX0pO2xldCBpPXRoaXMuX2RhdGEubGVuZ3RoLHI9dGhpcy5fdmlld0NvbnRhaW5lclJlZi5sZW5ndGg7Zm9yKDtyLS07KXtsZXQgbz10aGlzLl92aWV3Q29udGFpbmVyUmVmLmdldChyKTtvLmNvbnRleHQuaW5kZXg9dGhpcy5fcmVuZGVyZWRSYW5nZS5zdGFydCtyLG8uY29udGV4dC5jb3VudD1pLHRoaXMuX3VwZGF0ZUNvbXB1dGVkQ29udGV4dFByb3BlcnRpZXMoby5jb250ZXh0KX19X3VwZGF0ZUNvbXB1dGVkQ29udGV4dFByb3BlcnRpZXMoZSl7ZS5maXJzdD0wPT09ZS5pbmRleCxlLmxhc3Q9ZS5pbmRleD09PWUuY291bnQtMSxlLmV2ZW49ZS5pbmRleCUyPT0wLGUub2RkPSFlLmV2ZW59X2dldEVtYmVkZGVkVmlld0FyZ3MoZSxpKXtyZXR1cm57dGVtcGxhdGVSZWY6dGhpcy5fdGVtcGxhdGUsY29udGV4dDp7JGltcGxpY2l0OmUuaXRlbSxjZGtWaXJ0dWFsRm9yT2Y6dGhpcy5fY2RrVmlydHVhbEZvck9mLGluZGV4Oi0xLGNvdW50Oi0xLGZpcnN0OiExLGxhc3Q6ITEsb2RkOiExLGV2ZW46ITF9LGluZGV4Oml9fX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKGVpKSxDKG9pKSxDKFRsKSxDKEMyKSxDKGdnLDQpLEMob3QpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siIiwiY2RrVmlydHVhbEZvciIsIiIsImNka1ZpcnR1YWxGb3JPZiIsIiJdXSxpbnB1dHM6e2Nka1ZpcnR1YWxGb3JPZjoiY2RrVmlydHVhbEZvck9mIixjZGtWaXJ0dWFsRm9yVHJhY2tCeToiY2RrVmlydHVhbEZvclRyYWNrQnkiLGNka1ZpcnR1YWxGb3JUZW1wbGF0ZToiY2RrVmlydHVhbEZvclRlbXBsYXRlIixjZGtWaXJ0dWFsRm9yVGVtcGxhdGVDYWNoZVNpemU6ImNka1ZpcnR1YWxGb3JUZW1wbGF0ZUNhY2hlU2l6ZSJ9LHN0YW5kYWxvbmU6ITAsZmVhdHVyZXM6W1Z0KFt7cHJvdmlkZTpDMix1c2VDbGFzczpXMX1dKV19KSxufSkoKSxJYz0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7fSksbn0pKCksQ2Q9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0Z1LEljLGdnLEZ1LEljXX0pLG59KSgpLEs3PWsxKCkscTE9Y2xhc3N7ZW5hYmxlKCl7fWRpc2FibGUoKXt9YXR0YWNoKCl7fX07ZnVuY3Rpb24gRTIobix0KXtyZXR1cm4gdC5zb21lKGU9Pm4uYm90dG9tPGUudG9wfHxuLnRvcD5lLmJvdHRvbXx8bi5yaWdodDxlLmxlZnR8fG4ubGVmdD5lLnJpZ2h0KX1mdW5jdGlvbiBKNyhuLHQpe3JldHVybiB0LnNvbWUoZT0+bi50b3A8ZS50b3B8fG4uYm90dG9tPmUuYm90dG9tfHxuLmxlZnQ8ZS5sZWZ0fHxuLnJpZ2h0PmUucmlnaHQpfXZhciBJaD1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSxyKXt0aGlzLl9zY3JvbGxEaXNwYXRjaGVyPXQsdGhpcy5fdmlld3BvcnRSdWxlcj1lLHRoaXMuX25nWm9uZT1pLHRoaXMuX2NvbmZpZz1yLHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbj1udWxsfWF0dGFjaCh0KXt0aGlzLl9vdmVybGF5UmVmPXR9ZW5hYmxlKCl7dGhpcy5fc2Nyb2xsU3Vic2NyaXB0aW9ufHwodGhpcy5fc2Nyb2xsU3Vic2NyaXB0aW9uPXRoaXMuX3Njcm9sbERpc3BhdGNoZXIuc2Nyb2xsZWQodGhpcy5fY29uZmlnP3RoaXMuX2NvbmZpZy5zY3JvbGxUaHJvdHRsZTowKS5zdWJzY3JpYmUoKCk9PntpZih0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCksdGhpcy5fY29uZmlnJiZ0aGlzLl9jb25maWcuYXV0b0Nsb3NlKXtsZXQgZT10aGlzLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHt3aWR0aDppLGhlaWdodDpyfT10aGlzLl92aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2l6ZSgpO0UyKGUsW3t3aWR0aDppLGhlaWdodDpyLGJvdHRvbTpyLHJpZ2h0OmksdG9wOjAsbGVmdDowfV0pJiYodGhpcy5kaXNhYmxlKCksdGhpcy5fbmdab25lLnJ1bigoKT0+dGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKSkpfX0pKX1kaXNhYmxlKCl7dGhpcy5fc2Nyb2xsU3Vic2NyaXB0aW9uJiYodGhpcy5fc2Nyb2xsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fc2Nyb2xsU3Vic2NyaXB0aW9uPW51bGwpfWRldGFjaCgpe3RoaXMuZGlzYWJsZSgpLHRoaXMuX292ZXJsYXlSZWY9bnVsbH19LGliZT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSxyLG8pe3RoaXMuX3Njcm9sbERpc3BhdGNoZXI9ZSx0aGlzLl92aWV3cG9ydFJ1bGVyPWksdGhpcy5fbmdab25lPXIsdGhpcy5ub29wPSgpPT5uZXcgcTEsdGhpcy5jbG9zZT1hPT5uZXcgY2xhc3N7Y29uc3RydWN0b3IodCxlLGkscil7dGhpcy5fc2Nyb2xsRGlzcGF0Y2hlcj10LHRoaXMuX25nWm9uZT1lLHRoaXMuX3ZpZXdwb3J0UnVsZXI9aSx0aGlzLl9jb25maWc9cix0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb249bnVsbCx0aGlzLl9kZXRhY2g9KCk9Pnt0aGlzLmRpc2FibGUoKSx0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkmJnRoaXMuX25nWm9uZS5ydW4oKCk9PnRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCkpfX1hdHRhY2godCl7dGhpcy5fb3ZlcmxheVJlZj10fWVuYWJsZSgpe2lmKHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbilyZXR1cm47bGV0IHQ9dGhpcy5fc2Nyb2xsRGlzcGF0Y2hlci5zY3JvbGxlZCgwKS5waXBlKE9lKGU9PiFlfHwhdGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5jb250YWlucyhlLmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50KSkpO3RoaXMuX2NvbmZpZyYmdGhpcy5fY29uZmlnLnRocmVzaG9sZCYmdGhpcy5fY29uZmlnLnRocmVzaG9sZD4xPyh0aGlzLl9pbml0aWFsU2Nyb2xsUG9zaXRpb249dGhpcy5fdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCkudG9wLHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbj10LnN1YnNjcmliZSgoKT0+e2xldCBlPXRoaXMuX3ZpZXdwb3J0UnVsZXIuZ2V0Vmlld3BvcnRTY3JvbGxQb3NpdGlvbigpLnRvcDtNYXRoLmFicyhlLXRoaXMuX2luaXRpYWxTY3JvbGxQb3NpdGlvbik+dGhpcy5fY29uZmlnLnRocmVzaG9sZD90aGlzLl9kZXRhY2goKTp0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCl9KSk6dGhpcy5fc2Nyb2xsU3Vic2NyaXB0aW9uPXQuc3Vic2NyaWJlKHRoaXMuX2RldGFjaCl9ZGlzYWJsZSgpe3RoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbiYmKHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbj1udWxsKX1kZXRhY2goKXt0aGlzLmRpc2FibGUoKSx0aGlzLl9vdmVybGF5UmVmPW51bGx9fSh0aGlzLl9zY3JvbGxEaXNwYXRjaGVyLHRoaXMuX25nWm9uZSx0aGlzLl92aWV3cG9ydFJ1bGVyLGEpLHRoaXMuYmxvY2s9KCk9Pm5ldyBjbGFzc3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3ZpZXdwb3J0UnVsZXI9dCx0aGlzLl9wcmV2aW91c0hUTUxTdHlsZXM9e3RvcDoiIixsZWZ0OiIifSx0aGlzLl9pc0VuYWJsZWQ9ITEsdGhpcy5fZG9jdW1lbnQ9ZX1hdHRhY2goKXt9ZW5hYmxlKCl7aWYodGhpcy5fY2FuQmVFbmFibGVkKCkpe2xldCB0PXRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudDt0aGlzLl9wcmV2aW91c1Njcm9sbFBvc2l0aW9uPXRoaXMuX3ZpZXdwb3J0UnVsZXIuZ2V0Vmlld3BvcnRTY3JvbGxQb3NpdGlvbigpLHRoaXMuX3ByZXZpb3VzSFRNTFN0eWxlcy5sZWZ0PXQuc3R5bGUubGVmdHx8IiIsdGhpcy5fcHJldmlvdXNIVE1MU3R5bGVzLnRvcD10LnN0eWxlLnRvcHx8IiIsdC5zdHlsZS5sZWZ0PXFyKC10aGlzLl9wcmV2aW91c1Njcm9sbFBvc2l0aW9uLmxlZnQpLHQuc3R5bGUudG9wPXFyKC10aGlzLl9wcmV2aW91c1Njcm9sbFBvc2l0aW9uLnRvcCksdC5jbGFzc0xpc3QuYWRkKCJjZGstZ2xvYmFsLXNjcm9sbGJsb2NrIiksdGhpcy5faXNFbmFibGVkPSEwfX1kaXNhYmxlKCl7aWYodGhpcy5faXNFbmFibGVkKXtsZXQgdD10aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsaT10LnN0eWxlLHI9dGhpcy5fZG9jdW1lbnQuYm9keS5zdHlsZSxvPWkuc2Nyb2xsQmVoYXZpb3J8fCIiLGE9ci5zY3JvbGxCZWhhdmlvcnx8IiI7dGhpcy5faXNFbmFibGVkPSExLGkubGVmdD10aGlzLl9wcmV2aW91c0hUTUxTdHlsZXMubGVmdCxpLnRvcD10aGlzLl9wcmV2aW91c0hUTUxTdHlsZXMudG9wLHQuY2xhc3NMaXN0LnJlbW92ZSgiY2RrLWdsb2JhbC1zY3JvbGxibG9jayIpLEs3JiYoaS5zY3JvbGxCZWhhdmlvcj1yLnNjcm9sbEJlaGF2aW9yPSJhdXRvIiksd2luZG93LnNjcm9sbCh0aGlzLl9wcmV2aW91c1Njcm9sbFBvc2l0aW9uLmxlZnQsdGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbi50b3ApLEs3JiYoaS5zY3JvbGxCZWhhdmlvcj1vLHIuc2Nyb2xsQmVoYXZpb3I9YSl9fV9jYW5CZUVuYWJsZWQoKXtpZih0aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJjZGstZ2xvYmFsLXNjcm9sbGJsb2NrIil8fHRoaXMuX2lzRW5hYmxlZClyZXR1cm4hMTtsZXQgZT10aGlzLl9kb2N1bWVudC5ib2R5LGk9dGhpcy5fdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNpemUoKTtyZXR1cm4gZS5zY3JvbGxIZWlnaHQ+aS5oZWlnaHR8fGUuc2Nyb2xsV2lkdGg+aS53aWR0aH19KHRoaXMuX3ZpZXdwb3J0UnVsZXIsdGhpcy5fZG9jdW1lbnQpLHRoaXMucmVwb3NpdGlvbj1hPT5uZXcgSWgodGhpcy5fc2Nyb2xsRGlzcGF0Y2hlcix0aGlzLl92aWV3cG9ydFJ1bGVyLHRoaXMuX25nWm9uZSxhKSx0aGlzLl9kb2N1bWVudD1vfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKEx1KSxPKFdhKSxPKG90KSxPKE50KSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCksZWw9Y2xhc3N7Y29uc3RydWN0b3IodCl7aWYodGhpcy5zY3JvbGxTdHJhdGVneT1uZXcgcTEsdGhpcy5wYW5lbENsYXNzPSIiLHRoaXMuaGFzQmFja2Ryb3A9ITEsdGhpcy5iYWNrZHJvcENsYXNzPSJjZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIix0aGlzLmRpc3Bvc2VPbk5hdmlnYXRpb249ITEsdCl7bGV0IGU9T2JqZWN0LmtleXModCk7Zm9yKGxldCBpIG9mIGUpdm9pZCAwIT09dFtpXSYmKHRoaXNbaV09dFtpXSl9fX0saTk9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLl9hdHRhY2hlZE92ZXJsYXlzPVtdLHRoaXMuX2RvY3VtZW50PWV9bmdPbkRlc3Ryb3koKXt0aGlzLmRldGFjaCgpfWFkZChlKXt0aGlzLnJlbW92ZShlKSx0aGlzLl9hdHRhY2hlZE92ZXJsYXlzLnB1c2goZSl9cmVtb3ZlKGUpe2xldCBpPXRoaXMuX2F0dGFjaGVkT3ZlcmxheXMuaW5kZXhPZihlKTtpPi0xJiZ0aGlzLl9hdHRhY2hlZE92ZXJsYXlzLnNwbGljZShpLDEpLDA9PT10aGlzLl9hdHRhY2hlZE92ZXJsYXlzLmxlbmd0aCYmdGhpcy5kZXRhY2goKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhOdCkpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLG59KSgpLHJiZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgaTl7Y29uc3RydWN0b3IoZSxpKXtzdXBlcihlKSx0aGlzLl9uZ1pvbmU9aSx0aGlzLl9rZXlkb3duTGlzdGVuZXI9cj0+e2xldCBvPXRoaXMuX2F0dGFjaGVkT3ZlcmxheXM7Zm9yKGxldCBhPW8ubGVuZ3RoLTE7YT4tMTthLS0paWYob1thXS5fa2V5ZG93bkV2ZW50cy5vYnNlcnZlcnMubGVuZ3RoPjApe2xldCBzPW9bYV0uX2tleWRvd25FdmVudHM7dGhpcy5fbmdab25lP3RoaXMuX25nWm9uZS5ydW4oKCk9PnMubmV4dChyKSk6cy5uZXh0KHIpO2JyZWFrfX19YWRkKGUpe3N1cGVyLmFkZChlKSx0aGlzLl9pc0F0dGFjaGVkfHwodGhpcy5fbmdab25lP3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+dGhpcy5fZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9rZXlkb3duTGlzdGVuZXIpKTp0aGlzLl9kb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX2tleWRvd25MaXN0ZW5lciksdGhpcy5faXNBdHRhY2hlZD0hMCl9ZGV0YWNoKCl7dGhpcy5faXNBdHRhY2hlZCYmKHRoaXMuX2RvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fa2V5ZG93bkxpc3RlbmVyKSx0aGlzLl9pc0F0dGFjaGVkPSExKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhOdCksTyhvdCw4KSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCksb2JlPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBpOXtjb25zdHJ1Y3RvcihlLGkscil7c3VwZXIoZSksdGhpcy5fcGxhdGZvcm09aSx0aGlzLl9uZ1pvbmU9cix0aGlzLl9jdXJzb3JTdHlsZUlzU2V0PSExLHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXI9bz0+e3RoaXMuX3BvaW50ZXJEb3duRXZlbnRUYXJnZXQ9YnMobyl9LHRoaXMuX2NsaWNrTGlzdGVuZXI9bz0+e2xldCBhPWJzKG8pLHM9ImNsaWNrIj09PW8udHlwZSYmdGhpcy5fcG9pbnRlckRvd25FdmVudFRhcmdldD90aGlzLl9wb2ludGVyRG93bkV2ZW50VGFyZ2V0OmE7dGhpcy5fcG9pbnRlckRvd25FdmVudFRhcmdldD1udWxsO2xldCBsPXRoaXMuX2F0dGFjaGVkT3ZlcmxheXMuc2xpY2UoKTtmb3IobGV0IGM9bC5sZW5ndGgtMTtjPi0xO2MtLSl7bGV0IGQ9bFtjXTtpZihkLl9vdXRzaWRlUG9pbnRlckV2ZW50cy5vYnNlcnZlcnMubGVuZ3RoPDF8fCFkLmhhc0F0dGFjaGVkKCkpY29udGludWU7aWYoZC5vdmVybGF5RWxlbWVudC5jb250YWlucyhhKXx8ZC5vdmVybGF5RWxlbWVudC5jb250YWlucyhzKSlicmVhaztsZXQgdT1kLl9vdXRzaWRlUG9pbnRlckV2ZW50czt0aGlzLl9uZ1pvbmU/dGhpcy5fbmdab25lLnJ1bigoKT0+dS5uZXh0KG8pKTp1Lm5leHQobyl9fX1hZGQoZSl7aWYoc3VwZXIuYWRkKGUpLCF0aGlzLl9pc0F0dGFjaGVkKXtsZXQgaT10aGlzLl9kb2N1bWVudC5ib2R5O3RoaXMuX25nWm9uZT90aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PnRoaXMuX2FkZEV2ZW50TGlzdGVuZXJzKGkpKTp0aGlzLl9hZGRFdmVudExpc3RlbmVycyhpKSx0aGlzLl9wbGF0Zm9ybS5JT1MmJiF0aGlzLl9jdXJzb3JTdHlsZUlzU2V0JiYodGhpcy5fY3Vyc29yT3JpZ2luYWxWYWx1ZT1pLnN0eWxlLmN1cnNvcixpLnN0eWxlLmN1cnNvcj0icG9pbnRlciIsdGhpcy5fY3Vyc29yU3R5bGVJc1NldD0hMCksdGhpcy5faXNBdHRhY2hlZD0hMH19ZGV0YWNoKCl7aWYodGhpcy5faXNBdHRhY2hlZCl7bGV0IGU9dGhpcy5fZG9jdW1lbnQuYm9keTtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyLCEwKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9jbGlja0xpc3RlbmVyLCEwKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImF1eGNsaWNrIix0aGlzLl9jbGlja0xpc3RlbmVyLCEwKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLl9jbGlja0xpc3RlbmVyLCEwKSx0aGlzLl9wbGF0Zm9ybS5JT1MmJnRoaXMuX2N1cnNvclN0eWxlSXNTZXQmJihlLnN0eWxlLmN1cnNvcj10aGlzLl9jdXJzb3JPcmlnaW5hbFZhbHVlLHRoaXMuX2N1cnNvclN0eWxlSXNTZXQ9ITEpLHRoaXMuX2lzQXR0YWNoZWQ9ITF9fV9hZGRFdmVudExpc3RlbmVycyhlKXtlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyLCEwKSxlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9jbGlja0xpc3RlbmVyLCEwKSxlLmFkZEV2ZW50TGlzdGVuZXIoImF1eGNsaWNrIix0aGlzLl9jbGlja0xpc3RlbmVyLCEwKSxlLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLl9jbGlja0xpc3RlbmVyLCEwKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhOdCksTyhWbiksTyhvdCw4KSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCksX2c9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkpe3RoaXMuX3BsYXRmb3JtPWksdGhpcy5fZG9jdW1lbnQ9ZX1uZ09uRGVzdHJveSgpe3RoaXMuX2NvbnRhaW5lckVsZW1lbnQ/LnJlbW92ZSgpfWdldENvbnRhaW5lckVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fY29udGFpbmVyRWxlbWVudHx8dGhpcy5fY3JlYXRlQ29udGFpbmVyKCksdGhpcy5fY29udGFpbmVyRWxlbWVudH1fY3JlYXRlQ29udGFpbmVyKCl7bGV0IGU9ImNkay1vdmVybGF5LWNvbnRhaW5lciI7aWYodGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyfHxGdigpKXtsZXQgcj10aGlzLl9kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGAuJHtlfVtwbGF0Zm9ybT0ic2VydmVyIl0sIC4ke2V9W3BsYXRmb3JtPSJ0ZXN0Il1gKTtmb3IobGV0IG89MDtvPHIubGVuZ3RoO28rKylyW29dLnJlbW92ZSgpfWxldCBpPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NMaXN0LmFkZChlKSxGdigpP2kuc2V0QXR0cmlidXRlKCJwbGF0Zm9ybSIsInRlc3QiKTp0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXJ8fGkuc2V0QXR0cmlidXRlKCJwbGF0Zm9ybSIsInNlcnZlciIpLHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaSksdGhpcy5fY29udGFpbmVyRWxlbWVudD1pfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKE50KSxPKFZuKSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCksQWM9Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkscixvLGEscyxsLGMsZD0hMSl7dGhpcy5fcG9ydGFsT3V0bGV0PXQsdGhpcy5faG9zdD1lLHRoaXMuX3BhbmU9aSx0aGlzLl9jb25maWc9cix0aGlzLl9uZ1pvbmU9byx0aGlzLl9rZXlib2FyZERpc3BhdGNoZXI9YSx0aGlzLl9kb2N1bWVudD1zLHRoaXMuX2xvY2F0aW9uPWwsdGhpcy5fb3V0c2lkZUNsaWNrRGlzcGF0Y2hlcj1jLHRoaXMuX2FuaW1hdGlvbnNEaXNhYmxlZD1kLHRoaXMuX2JhY2tkcm9wRWxlbWVudD1udWxsLHRoaXMuX2JhY2tkcm9wQ2xpY2s9bmV3IEVlLHRoaXMuX2F0dGFjaG1lbnRzPW5ldyBFZSx0aGlzLl9kZXRhY2htZW50cz1uZXcgRWUsdGhpcy5fbG9jYXRpb25DaGFuZ2VzPUVuLkVNUFRZLHRoaXMuX2JhY2tkcm9wQ2xpY2tIYW5kbGVyPXU9PnRoaXMuX2JhY2tkcm9wQ2xpY2submV4dCh1KSx0aGlzLl9iYWNrZHJvcFRyYW5zaXRpb25lbmRIYW5kbGVyPXU9Pnt0aGlzLl9kaXNwb3NlQmFja2Ryb3AodS50YXJnZXQpfSx0aGlzLl9rZXlkb3duRXZlbnRzPW5ldyBFZSx0aGlzLl9vdXRzaWRlUG9pbnRlckV2ZW50cz1uZXcgRWUsci5zY3JvbGxTdHJhdGVneSYmKHRoaXMuX3Njcm9sbFN0cmF0ZWd5PXIuc2Nyb2xsU3RyYXRlZ3ksdGhpcy5fc2Nyb2xsU3RyYXRlZ3kuYXR0YWNoKHRoaXMpKSx0aGlzLl9wb3NpdGlvblN0cmF0ZWd5PXIucG9zaXRpb25TdHJhdGVneX1nZXQgb3ZlcmxheUVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fcGFuZX1nZXQgYmFja2Ryb3BFbGVtZW50KCl7cmV0dXJuIHRoaXMuX2JhY2tkcm9wRWxlbWVudH1nZXQgaG9zdEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5faG9zdH1hdHRhY2godCl7IXRoaXMuX2hvc3QucGFyZW50RWxlbWVudCYmdGhpcy5fcHJldmlvdXNIb3N0UGFyZW50JiZ0aGlzLl9wcmV2aW91c0hvc3RQYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5faG9zdCk7bGV0IGU9dGhpcy5fcG9ydGFsT3V0bGV0LmF0dGFjaCh0KTtyZXR1cm4gdGhpcy5fcG9zaXRpb25TdHJhdGVneSYmdGhpcy5fcG9zaXRpb25TdHJhdGVneS5hdHRhY2godGhpcyksdGhpcy5fdXBkYXRlU3RhY2tpbmdPcmRlcigpLHRoaXMuX3VwZGF0ZUVsZW1lbnRTaXplKCksdGhpcy5fdXBkYXRlRWxlbWVudERpcmVjdGlvbigpLHRoaXMuX3Njcm9sbFN0cmF0ZWd5JiZ0aGlzLl9zY3JvbGxTdHJhdGVneS5lbmFibGUoKSx0aGlzLl9uZ1pvbmUub25TdGFibGUucGlwZShMdCgxKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5oYXNBdHRhY2hlZCgpJiZ0aGlzLnVwZGF0ZVBvc2l0aW9uKCl9KSx0aGlzLl90b2dnbGVQb2ludGVyRXZlbnRzKCEwKSx0aGlzLl9jb25maWcuaGFzQmFja2Ryb3AmJnRoaXMuX2F0dGFjaEJhY2tkcm9wKCksdGhpcy5fY29uZmlnLnBhbmVsQ2xhc3MmJnRoaXMuX3RvZ2dsZUNsYXNzZXModGhpcy5fcGFuZSx0aGlzLl9jb25maWcucGFuZWxDbGFzcywhMCksdGhpcy5fYXR0YWNobWVudHMubmV4dCgpLHRoaXMuX2tleWJvYXJkRGlzcGF0Y2hlci5hZGQodGhpcyksdGhpcy5fY29uZmlnLmRpc3Bvc2VPbk5hdmlnYXRpb24mJih0aGlzLl9sb2NhdGlvbkNoYW5nZXM9dGhpcy5fbG9jYXRpb24uc3Vic2NyaWJlKCgpPT50aGlzLmRpc3Bvc2UoKSkpLHRoaXMuX291dHNpZGVDbGlja0Rpc3BhdGNoZXIuYWRkKHRoaXMpLCJmdW5jdGlvbiI9PXR5cGVvZiBlPy5vbkRlc3Ryb3kmJmUub25EZXN0cm95KCgpPT57dGhpcy5oYXNBdHRhY2hlZCgpJiZ0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuZGV0YWNoKCkpKX0pLGV9ZGV0YWNoKCl7aWYoIXRoaXMuaGFzQXR0YWNoZWQoKSlyZXR1cm47dGhpcy5kZXRhY2hCYWNrZHJvcCgpLHRoaXMuX3RvZ2dsZVBvaW50ZXJFdmVudHMoITEpLHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kmJnRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kuZGV0YWNoJiZ0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LmRldGFjaCgpLHRoaXMuX3Njcm9sbFN0cmF0ZWd5JiZ0aGlzLl9zY3JvbGxTdHJhdGVneS5kaXNhYmxlKCk7bGV0IHQ9dGhpcy5fcG9ydGFsT3V0bGV0LmRldGFjaCgpO3JldHVybiB0aGlzLl9kZXRhY2htZW50cy5uZXh0KCksdGhpcy5fa2V5Ym9hcmREaXNwYXRjaGVyLnJlbW92ZSh0aGlzKSx0aGlzLl9kZXRhY2hDb250ZW50V2hlblN0YWJsZSgpLHRoaXMuX2xvY2F0aW9uQ2hhbmdlcy51bnN1YnNjcmliZSgpLHRoaXMuX291dHNpZGVDbGlja0Rpc3BhdGNoZXIucmVtb3ZlKHRoaXMpLHR9ZGlzcG9zZSgpe2xldCB0PXRoaXMuaGFzQXR0YWNoZWQoKTt0aGlzLl9wb3NpdGlvblN0cmF0ZWd5JiZ0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LmRpc3Bvc2UoKSx0aGlzLl9kaXNwb3NlU2Nyb2xsU3RyYXRlZ3koKSx0aGlzLl9kaXNwb3NlQmFja2Ryb3AodGhpcy5fYmFja2Ryb3BFbGVtZW50KSx0aGlzLl9sb2NhdGlvbkNoYW5nZXMudW5zdWJzY3JpYmUoKSx0aGlzLl9rZXlib2FyZERpc3BhdGNoZXIucmVtb3ZlKHRoaXMpLHRoaXMuX3BvcnRhbE91dGxldC5kaXNwb3NlKCksdGhpcy5fYXR0YWNobWVudHMuY29tcGxldGUoKSx0aGlzLl9iYWNrZHJvcENsaWNrLmNvbXBsZXRlKCksdGhpcy5fa2V5ZG93bkV2ZW50cy5jb21wbGV0ZSgpLHRoaXMuX291dHNpZGVQb2ludGVyRXZlbnRzLmNvbXBsZXRlKCksdGhpcy5fb3V0c2lkZUNsaWNrRGlzcGF0Y2hlci5yZW1vdmUodGhpcyksdGhpcy5faG9zdD8ucmVtb3ZlKCksdGhpcy5fcHJldmlvdXNIb3N0UGFyZW50PXRoaXMuX3BhbmU9dGhpcy5faG9zdD1udWxsLHQmJnRoaXMuX2RldGFjaG1lbnRzLm5leHQoKSx0aGlzLl9kZXRhY2htZW50cy5jb21wbGV0ZSgpfWhhc0F0dGFjaGVkKCl7cmV0dXJuIHRoaXMuX3BvcnRhbE91dGxldC5oYXNBdHRhY2hlZCgpfWJhY2tkcm9wQ2xpY2soKXtyZXR1cm4gdGhpcy5fYmFja2Ryb3BDbGlja31hdHRhY2htZW50cygpe3JldHVybiB0aGlzLl9hdHRhY2htZW50c31kZXRhY2htZW50cygpe3JldHVybiB0aGlzLl9kZXRhY2htZW50c31rZXlkb3duRXZlbnRzKCl7cmV0dXJuIHRoaXMuX2tleWRvd25FdmVudHN9b3V0c2lkZVBvaW50ZXJFdmVudHMoKXtyZXR1cm4gdGhpcy5fb3V0c2lkZVBvaW50ZXJFdmVudHN9Z2V0Q29uZmlnKCl7cmV0dXJuIHRoaXMuX2NvbmZpZ311cGRhdGVQb3NpdGlvbigpe3RoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kmJnRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kuYXBwbHkoKX11cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHQpe3QhPT10aGlzLl9wb3NpdGlvblN0cmF0ZWd5JiYodGhpcy5fcG9zaXRpb25TdHJhdGVneSYmdGhpcy5fcG9zaXRpb25TdHJhdGVneS5kaXNwb3NlKCksdGhpcy5fcG9zaXRpb25TdHJhdGVneT10LHRoaXMuaGFzQXR0YWNoZWQoKSYmKHQuYXR0YWNoKHRoaXMpLHRoaXMudXBkYXRlUG9zaXRpb24oKSkpfXVwZGF0ZVNpemUodCl7dGhpcy5fY29uZmlnPXsuLi50aGlzLl9jb25maWcsLi4udH0sdGhpcy5fdXBkYXRlRWxlbWVudFNpemUoKX1zZXREaXJlY3Rpb24odCl7dGhpcy5fY29uZmlnPXsuLi50aGlzLl9jb25maWcsZGlyZWN0aW9uOnR9LHRoaXMuX3VwZGF0ZUVsZW1lbnREaXJlY3Rpb24oKX1hZGRQYW5lbENsYXNzKHQpe3RoaXMuX3BhbmUmJnRoaXMuX3RvZ2dsZUNsYXNzZXModGhpcy5fcGFuZSx0LCEwKX1yZW1vdmVQYW5lbENsYXNzKHQpe3RoaXMuX3BhbmUmJnRoaXMuX3RvZ2dsZUNsYXNzZXModGhpcy5fcGFuZSx0LCExKX1nZXREaXJlY3Rpb24oKXtsZXQgdD10aGlzLl9jb25maWcuZGlyZWN0aW9uO3JldHVybiB0PyJzdHJpbmciPT10eXBlb2YgdD90OnQudmFsdWU6Imx0ciJ9dXBkYXRlU2Nyb2xsU3RyYXRlZ3kodCl7dCE9PXRoaXMuX3Njcm9sbFN0cmF0ZWd5JiYodGhpcy5fZGlzcG9zZVNjcm9sbFN0cmF0ZWd5KCksdGhpcy5fc2Nyb2xsU3RyYXRlZ3k9dCx0aGlzLmhhc0F0dGFjaGVkKCkmJih0LmF0dGFjaCh0aGlzKSx0LmVuYWJsZSgpKSl9X3VwZGF0ZUVsZW1lbnREaXJlY3Rpb24oKXt0aGlzLl9ob3N0LnNldEF0dHJpYnV0ZSgiZGlyIix0aGlzLmdldERpcmVjdGlvbigpKX1fdXBkYXRlRWxlbWVudFNpemUoKXtpZighdGhpcy5fcGFuZSlyZXR1cm47bGV0IHQ9dGhpcy5fcGFuZS5zdHlsZTt0LndpZHRoPXFyKHRoaXMuX2NvbmZpZy53aWR0aCksdC5oZWlnaHQ9cXIodGhpcy5fY29uZmlnLmhlaWdodCksdC5taW5XaWR0aD1xcih0aGlzLl9jb25maWcubWluV2lkdGgpLHQubWluSGVpZ2h0PXFyKHRoaXMuX2NvbmZpZy5taW5IZWlnaHQpLHQubWF4V2lkdGg9cXIodGhpcy5fY29uZmlnLm1heFdpZHRoKSx0Lm1heEhlaWdodD1xcih0aGlzLl9jb25maWcubWF4SGVpZ2h0KX1fdG9nZ2xlUG9pbnRlckV2ZW50cyh0KXt0aGlzLl9wYW5lLnN0eWxlLnBvaW50ZXJFdmVudHM9dD8iIjoibm9uZSJ9X2F0dGFjaEJhY2tkcm9wKCl7bGV0IHQ9ImNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmciO3RoaXMuX2JhY2tkcm9wRWxlbWVudD10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9iYWNrZHJvcEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiY2RrLW92ZXJsYXktYmFja2Ryb3AiKSx0aGlzLl9hbmltYXRpb25zRGlzYWJsZWQmJnRoaXMuX2JhY2tkcm9wRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJjZGstb3ZlcmxheS1iYWNrZHJvcC1ub29wLWFuaW1hdGlvbiIpLHRoaXMuX2NvbmZpZy5iYWNrZHJvcENsYXNzJiZ0aGlzLl90b2dnbGVDbGFzc2VzKHRoaXMuX2JhY2tkcm9wRWxlbWVudCx0aGlzLl9jb25maWcuYmFja2Ryb3BDbGFzcywhMCksdGhpcy5faG9zdC5wYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZSh0aGlzLl9iYWNrZHJvcEVsZW1lbnQsdGhpcy5faG9zdCksdGhpcy5fYmFja2Ryb3BFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9iYWNrZHJvcENsaWNrSGFuZGxlciksIXRoaXMuX2FuaW1hdGlvbnNEaXNhYmxlZCYmdHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZTwidSI/dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5fYmFja2Ryb3BFbGVtZW50JiZ0aGlzLl9iYWNrZHJvcEVsZW1lbnQuY2xhc3NMaXN0LmFkZCh0KX0pfSk6dGhpcy5fYmFja2Ryb3BFbGVtZW50LmNsYXNzTGlzdC5hZGQodCl9X3VwZGF0ZVN0YWNraW5nT3JkZXIoKXt0aGlzLl9ob3N0Lm5leHRTaWJsaW5nJiZ0aGlzLl9ob3N0LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcy5faG9zdCl9ZGV0YWNoQmFja2Ryb3AoKXtsZXQgdD10aGlzLl9iYWNrZHJvcEVsZW1lbnQ7aWYodCl7aWYodGhpcy5fYW5pbWF0aW9uc0Rpc2FibGVkKXJldHVybiB2b2lkIHRoaXMuX2Rpc3Bvc2VCYWNrZHJvcCh0KTt0LmNsYXNzTGlzdC5yZW1vdmUoImNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmciKSx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMuX2JhY2tkcm9wVHJhbnNpdGlvbmVuZEhhbmRsZXIpfSksdC5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIix0aGlzLl9iYWNrZHJvcFRpbWVvdXQ9dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT5zZXRUaW1lb3V0KCgpPT57dGhpcy5fZGlzcG9zZUJhY2tkcm9wKHQpfSw1MDApKX19X3RvZ2dsZUNsYXNzZXModCxlLGkpe2xldCByPXJnKGV8fFtdKS5maWx0ZXIobz0+ISFvKTtyLmxlbmd0aCYmKGk/dC5jbGFzc0xpc3QuYWRkKC4uLnIpOnQuY2xhc3NMaXN0LnJlbW92ZSguLi5yKSl9X2RldGFjaENvbnRlbnRXaGVuU3RhYmxlKCl7dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57bGV0IHQ9dGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUoaXQodG4odGhpcy5fYXR0YWNobWVudHMsdGhpcy5fZGV0YWNobWVudHMpKSkuc3Vic2NyaWJlKCgpPT57KCF0aGlzLl9wYW5lfHwhdGhpcy5faG9zdHx8MD09PXRoaXMuX3BhbmUuY2hpbGRyZW4ubGVuZ3RoKSYmKHRoaXMuX3BhbmUmJnRoaXMuX2NvbmZpZy5wYW5lbENsYXNzJiZ0aGlzLl90b2dnbGVDbGFzc2VzKHRoaXMuX3BhbmUsdGhpcy5fY29uZmlnLnBhbmVsQ2xhc3MsITEpLHRoaXMuX2hvc3QmJnRoaXMuX2hvc3QucGFyZW50RWxlbWVudCYmKHRoaXMuX3ByZXZpb3VzSG9zdFBhcmVudD10aGlzLl9ob3N0LnBhcmVudEVsZW1lbnQsdGhpcy5faG9zdC5yZW1vdmUoKSksdC51bnN1YnNjcmliZSgpKX0pfSl9X2Rpc3Bvc2VTY3JvbGxTdHJhdGVneSgpe2xldCB0PXRoaXMuX3Njcm9sbFN0cmF0ZWd5O3QmJih0LmRpc2FibGUoKSx0LmRldGFjaCYmdC5kZXRhY2goKSl9X2Rpc3Bvc2VCYWNrZHJvcCh0KXt0JiYodC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5fYmFja2Ryb3BDbGlja0hhbmRsZXIpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsdGhpcy5fYmFja2Ryb3BUcmFuc2l0aW9uZW5kSGFuZGxlciksdC5yZW1vdmUoKSx0aGlzLl9iYWNrZHJvcEVsZW1lbnQ9PT10JiYodGhpcy5fYmFja2Ryb3BFbGVtZW50PW51bGwpKSx0aGlzLl9iYWNrZHJvcFRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5fYmFja2Ryb3BUaW1lb3V0KSx0aGlzLl9iYWNrZHJvcFRpbWVvdXQ9dm9pZCAwKX19LCQ3PSJjZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IixhYmU9LyhbQS1aYS16JV0rKSQvO2Z1bmN0aW9uIERoKG4sdCl7Zm9yKGxldCBlIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShlKSYmKG5bZV09dFtlXSk7cmV0dXJuIG59ZnVuY3Rpb24gZTkobil7aWYoIm51bWJlciIhPXR5cGVvZiBuJiZudWxsIT1uKXtsZXRbdCxlXT1uLnNwbGl0KGFiZSk7cmV0dXJuIGUmJiJweCIhPT1lP251bGw6cGFyc2VGbG9hdCh0KX1yZXR1cm4gbnx8bnVsbH1mdW5jdGlvbiB0OShuKXtyZXR1cm57dG9wOk1hdGguZmxvb3Iobi50b3ApLHJpZ2h0Ok1hdGguZmxvb3Iobi5yaWdodCksYm90dG9tOk1hdGguZmxvb3Iobi5ib3R0b20pLGxlZnQ6TWF0aC5mbG9vcihuLmxlZnQpLHdpZHRoOk1hdGguZmxvb3Iobi53aWR0aCksaGVpZ2h0Ok1hdGguZmxvb3Iobi5oZWlnaHQpfX12YXIgbjk9ImNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIixzYmU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscixvKXt0aGlzLl92aWV3cG9ydFJ1bGVyPWUsdGhpcy5fZG9jdW1lbnQ9aSx0aGlzLl9wbGF0Zm9ybT1yLHRoaXMuX292ZXJsYXlDb250YWluZXI9b31nbG9iYWwoKXtyZXR1cm4gbmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fY3NzUG9zaXRpb249InN0YXRpYyIsdGhpcy5fdG9wT2Zmc2V0PSIiLHRoaXMuX2JvdHRvbU9mZnNldD0iIix0aGlzLl9hbGlnbkl0ZW1zPSIiLHRoaXMuX3hQb3NpdGlvbj0iIix0aGlzLl94T2Zmc2V0PSIiLHRoaXMuX3dpZHRoPSIiLHRoaXMuX2hlaWdodD0iIix0aGlzLl9pc0Rpc3Bvc2VkPSExfWF0dGFjaCh0KXtsZXQgZT10LmdldENvbmZpZygpO3RoaXMuX292ZXJsYXlSZWY9dCx0aGlzLl93aWR0aCYmIWUud2lkdGgmJnQudXBkYXRlU2l6ZSh7d2lkdGg6dGhpcy5fd2lkdGh9KSx0aGlzLl9oZWlnaHQmJiFlLmhlaWdodCYmdC51cGRhdGVTaXplKHtoZWlnaHQ6dGhpcy5faGVpZ2h0fSksdC5ob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKG45KSx0aGlzLl9pc0Rpc3Bvc2VkPSExfXRvcCh0PSIiKXtyZXR1cm4gdGhpcy5fYm90dG9tT2Zmc2V0PSIiLHRoaXMuX3RvcE9mZnNldD10LHRoaXMuX2FsaWduSXRlbXM9ImZsZXgtc3RhcnQiLHRoaXN9bGVmdCh0PSIiKXtyZXR1cm4gdGhpcy5feE9mZnNldD10LHRoaXMuX3hQb3NpdGlvbj0ibGVmdCIsdGhpc31ib3R0b20odD0iIil7cmV0dXJuIHRoaXMuX3RvcE9mZnNldD0iIix0aGlzLl9ib3R0b21PZmZzZXQ9dCx0aGlzLl9hbGlnbkl0ZW1zPSJmbGV4LWVuZCIsdGhpc31yaWdodCh0PSIiKXtyZXR1cm4gdGhpcy5feE9mZnNldD10LHRoaXMuX3hQb3NpdGlvbj0icmlnaHQiLHRoaXN9c3RhcnQodD0iIil7cmV0dXJuIHRoaXMuX3hPZmZzZXQ9dCx0aGlzLl94UG9zaXRpb249InN0YXJ0Iix0aGlzfWVuZCh0PSIiKXtyZXR1cm4gdGhpcy5feE9mZnNldD10LHRoaXMuX3hQb3NpdGlvbj0iZW5kIix0aGlzfXdpZHRoKHQ9IiIpe3JldHVybiB0aGlzLl9vdmVybGF5UmVmP3RoaXMuX292ZXJsYXlSZWYudXBkYXRlU2l6ZSh7d2lkdGg6dH0pOnRoaXMuX3dpZHRoPXQsdGhpc31oZWlnaHQodD0iIil7cmV0dXJuIHRoaXMuX292ZXJsYXlSZWY/dGhpcy5fb3ZlcmxheVJlZi51cGRhdGVTaXplKHtoZWlnaHQ6dH0pOnRoaXMuX2hlaWdodD10LHRoaXN9Y2VudGVySG9yaXpvbnRhbGx5KHQ9IiIpe3JldHVybiB0aGlzLmxlZnQodCksdGhpcy5feFBvc2l0aW9uPSJjZW50ZXIiLHRoaXN9Y2VudGVyVmVydGljYWxseSh0PSIiKXtyZXR1cm4gdGhpcy50b3AodCksdGhpcy5fYWxpZ25JdGVtcz0iY2VudGVyIix0aGlzfWFwcGx5KCl7aWYoIXRoaXMuX292ZXJsYXlSZWZ8fCF0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpcmV0dXJuO2xldCB0PXRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuc3R5bGUsZT10aGlzLl9vdmVybGF5UmVmLmhvc3RFbGVtZW50LnN0eWxlLGk9dGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKSx7d2lkdGg6cixoZWlnaHQ6byxtYXhXaWR0aDphLG1heEhlaWdodDpzfT1pLGw9ISgiMTAwJSIhPT1yJiYiMTAwdnciIT09cnx8YSYmIjEwMCUiIT09YSYmIjEwMHZ3IiE9PWEpLGM9ISgiMTAwJSIhPT1vJiYiMTAwdmgiIT09b3x8cyYmIjEwMCUiIT09cyYmIjEwMHZoIiE9PXMpLGQ9dGhpcy5feFBvc2l0aW9uLHU9dGhpcy5feE9mZnNldCxwPSJydGwiPT09dGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKS5kaXJlY3Rpb24saD0iIixtPSIiLF89IiI7bD9fPSJmbGV4LXN0YXJ0IjoiY2VudGVyIj09PWQ/KF89ImNlbnRlciIscD9tPXU6aD11KTpwPyJsZWZ0Ij09PWR8fCJlbmQiPT09ZD8oXz0iZmxleC1lbmQiLGg9dSk6KCJyaWdodCI9PT1kfHwic3RhcnQiPT09ZCkmJihfPSJmbGV4LXN0YXJ0IixtPXUpOiJsZWZ0Ij09PWR8fCJzdGFydCI9PT1kPyhfPSJmbGV4LXN0YXJ0IixoPXUpOigicmlnaHQiPT09ZHx8ImVuZCI9PT1kKSYmKF89ImZsZXgtZW5kIixtPXUpLHQucG9zaXRpb249dGhpcy5fY3NzUG9zaXRpb24sdC5tYXJnaW5MZWZ0PWw/IjAiOmgsdC5tYXJnaW5Ub3A9Yz8iMCI6dGhpcy5fdG9wT2Zmc2V0LHQubWFyZ2luQm90dG9tPXRoaXMuX2JvdHRvbU9mZnNldCx0Lm1hcmdpblJpZ2h0PWw/IjAiOm0sZS5qdXN0aWZ5Q29udGVudD1fLGUuYWxpZ25JdGVtcz1jPyJmbGV4LXN0YXJ0Ijp0aGlzLl9hbGlnbkl0ZW1zfWRpc3Bvc2UoKXtpZih0aGlzLl9pc0Rpc3Bvc2VkfHwhdGhpcy5fb3ZlcmxheVJlZilyZXR1cm47bGV0IHQ9dGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5zdHlsZSxlPXRoaXMuX292ZXJsYXlSZWYuaG9zdEVsZW1lbnQsaT1lLnN0eWxlO2UuY2xhc3NMaXN0LnJlbW92ZShuOSksaS5qdXN0aWZ5Q29udGVudD1pLmFsaWduSXRlbXM9dC5tYXJnaW5Ub3A9dC5tYXJnaW5Cb3R0b209dC5tYXJnaW5MZWZ0PXQubWFyZ2luUmlnaHQ9dC5wb3NpdGlvbj0iIix0aGlzLl9vdmVybGF5UmVmPW51bGwsdGhpcy5faXNEaXNwb3NlZD0hMH19fWZsZXhpYmxlQ29ubmVjdGVkVG8oZSl7cmV0dXJuIG5ldyBjbGFzc3tnZXQgcG9zaXRpb25zKCl7cmV0dXJuIHRoaXMuX3ByZWZlcnJlZFBvc2l0aW9uc31jb25zdHJ1Y3Rvcih0LGUsaSxyLG8pe3RoaXMuX3ZpZXdwb3J0UnVsZXI9ZSx0aGlzLl9kb2N1bWVudD1pLHRoaXMuX3BsYXRmb3JtPXIsdGhpcy5fb3ZlcmxheUNvbnRhaW5lcj1vLHRoaXMuX2xhc3RCb3VuZGluZ0JveFNpemU9e3dpZHRoOjAsaGVpZ2h0OjB9LHRoaXMuX2lzUHVzaGVkPSExLHRoaXMuX2NhblB1c2g9ITAsdGhpcy5fZ3Jvd0FmdGVyT3Blbj0hMSx0aGlzLl9oYXNGbGV4aWJsZURpbWVuc2lvbnM9ITAsdGhpcy5fcG9zaXRpb25Mb2NrZWQ9ITEsdGhpcy5fdmlld3BvcnRNYXJnaW49MCx0aGlzLl9zY3JvbGxhYmxlcz1bXSx0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnM9W10sdGhpcy5fcG9zaXRpb25DaGFuZ2VzPW5ldyBFZSx0aGlzLl9yZXNpemVTdWJzY3JpcHRpb249RW4uRU1QVFksdGhpcy5fb2Zmc2V0WD0wLHRoaXMuX29mZnNldFk9MCx0aGlzLl9hcHBsaWVkUGFuZWxDbGFzc2VzPVtdLHRoaXMucG9zaXRpb25DaGFuZ2VzPXRoaXMuX3Bvc2l0aW9uQ2hhbmdlcyx0aGlzLnNldE9yaWdpbih0KX1hdHRhY2godCl7dGhpcy5fdmFsaWRhdGVQb3NpdGlvbnMoKSx0Lmhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoJDcpLHRoaXMuX292ZXJsYXlSZWY9dCx0aGlzLl9ib3VuZGluZ0JveD10Lmhvc3RFbGVtZW50LHRoaXMuX3BhbmU9dC5vdmVybGF5RWxlbWVudCx0aGlzLl9pc0Rpc3Bvc2VkPSExLHRoaXMuX2lzSW5pdGlhbFJlbmRlcj0hMCx0aGlzLl9sYXN0UG9zaXRpb249bnVsbCx0aGlzLl9yZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9yZXNpemVTdWJzY3JpcHRpb249dGhpcy5fdmlld3BvcnRSdWxlci5jaGFuZ2UoKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLl9pc0luaXRpYWxSZW5kZXI9ITAsdGhpcy5hcHBseSgpfSl9YXBwbHkoKXtpZih0aGlzLl9pc0Rpc3Bvc2VkfHwhdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKXJldHVybjtpZighdGhpcy5faXNJbml0aWFsUmVuZGVyJiZ0aGlzLl9wb3NpdGlvbkxvY2tlZCYmdGhpcy5fbGFzdFBvc2l0aW9uKXJldHVybiB2b2lkIHRoaXMucmVhcHBseUxhc3RQb3NpdGlvbigpO3RoaXMuX2NsZWFyUGFuZWxDbGFzc2VzKCksdGhpcy5fcmVzZXRPdmVybGF5RWxlbWVudFN0eWxlcygpLHRoaXMuX3Jlc2V0Qm91bmRpbmdCb3hTdHlsZXMoKSx0aGlzLl92aWV3cG9ydFJlY3Q9dGhpcy5fZ2V0TmFycm93ZWRWaWV3cG9ydFJlY3QoKSx0aGlzLl9vcmlnaW5SZWN0PXRoaXMuX2dldE9yaWdpblJlY3QoKSx0aGlzLl9vdmVybGF5UmVjdD10aGlzLl9wYW5lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRoaXMuX2NvbnRhaW5lclJlY3Q9dGhpcy5fb3ZlcmxheUNvbnRhaW5lci5nZXRDb250YWluZXJFbGVtZW50KCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bGV0IGEsdD10aGlzLl9vcmlnaW5SZWN0LGU9dGhpcy5fb3ZlcmxheVJlY3QsaT10aGlzLl92aWV3cG9ydFJlY3Qscj10aGlzLl9jb250YWluZXJSZWN0LG89W107Zm9yKGxldCBzIG9mIHRoaXMuX3ByZWZlcnJlZFBvc2l0aW9ucyl7bGV0IGw9dGhpcy5fZ2V0T3JpZ2luUG9pbnQodCxyLHMpLGM9dGhpcy5fZ2V0T3ZlcmxheVBvaW50KGwsZSxzKSxkPXRoaXMuX2dldE92ZXJsYXlGaXQoYyxlLGkscyk7aWYoZC5pc0NvbXBsZXRlbHlXaXRoaW5WaWV3cG9ydClyZXR1cm4gdGhpcy5faXNQdXNoZWQ9ITEsdm9pZCB0aGlzLl9hcHBseVBvc2l0aW9uKHMsbCk7dGhpcy5fY2FuRml0V2l0aEZsZXhpYmxlRGltZW5zaW9ucyhkLGMsaSk/by5wdXNoKHtwb3NpdGlvbjpzLG9yaWdpbjpsLG92ZXJsYXlSZWN0OmUsYm91bmRpbmdCb3hSZWN0OnRoaXMuX2NhbGN1bGF0ZUJvdW5kaW5nQm94UmVjdChsLHMpfSk6KCFhfHxhLm92ZXJsYXlGaXQudmlzaWJsZUFyZWE8ZC52aXNpYmxlQXJlYSkmJihhPXtvdmVybGF5Rml0OmQsb3ZlcmxheVBvaW50OmMsb3JpZ2luUG9pbnQ6bCxwb3NpdGlvbjpzLG92ZXJsYXlSZWN0OmV9KX1pZihvLmxlbmd0aCl7bGV0IHM9bnVsbCxsPS0xO2ZvcihsZXQgYyBvZiBvKXtsZXQgZD1jLmJvdW5kaW5nQm94UmVjdC53aWR0aCpjLmJvdW5kaW5nQm94UmVjdC5oZWlnaHQqKGMucG9zaXRpb24ud2VpZ2h0fHwxKTtkPmwmJihsPWQscz1jKX1yZXR1cm4gdGhpcy5faXNQdXNoZWQ9ITEsdm9pZCB0aGlzLl9hcHBseVBvc2l0aW9uKHMucG9zaXRpb24scy5vcmlnaW4pfWlmKHRoaXMuX2NhblB1c2gpcmV0dXJuIHRoaXMuX2lzUHVzaGVkPSEwLHZvaWQgdGhpcy5fYXBwbHlQb3NpdGlvbihhLnBvc2l0aW9uLGEub3JpZ2luUG9pbnQpO3RoaXMuX2FwcGx5UG9zaXRpb24oYS5wb3NpdGlvbixhLm9yaWdpblBvaW50KX1kZXRhY2goKXt0aGlzLl9jbGVhclBhbmVsQ2xhc3NlcygpLHRoaXMuX2xhc3RQb3NpdGlvbj1udWxsLHRoaXMuX3ByZXZpb3VzUHVzaEFtb3VudD1udWxsLHRoaXMuX3Jlc2l6ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfWRpc3Bvc2UoKXt0aGlzLl9pc0Rpc3Bvc2VkfHwodGhpcy5fYm91bmRpbmdCb3gmJkRoKHRoaXMuX2JvdW5kaW5nQm94LnN0eWxlLHt0b3A6IiIsbGVmdDoiIixyaWdodDoiIixib3R0b206IiIsaGVpZ2h0OiIiLHdpZHRoOiIiLGFsaWduSXRlbXM6IiIsanVzdGlmeUNvbnRlbnQ6IiJ9KSx0aGlzLl9wYW5lJiZ0aGlzLl9yZXNldE92ZXJsYXlFbGVtZW50U3R5bGVzKCksdGhpcy5fb3ZlcmxheVJlZiYmdGhpcy5fb3ZlcmxheVJlZi5ob3N0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCQ3KSx0aGlzLmRldGFjaCgpLHRoaXMuX3Bvc2l0aW9uQ2hhbmdlcy5jb21wbGV0ZSgpLHRoaXMuX292ZXJsYXlSZWY9dGhpcy5fYm91bmRpbmdCb3g9bnVsbCx0aGlzLl9pc0Rpc3Bvc2VkPSEwKX1yZWFwcGx5TGFzdFBvc2l0aW9uKCl7aWYodGhpcy5faXNEaXNwb3NlZHx8IXRoaXMuX3BsYXRmb3JtLmlzQnJvd3NlcilyZXR1cm47bGV0IHQ9dGhpcy5fbGFzdFBvc2l0aW9uO2lmKHQpe3RoaXMuX29yaWdpblJlY3Q9dGhpcy5fZ2V0T3JpZ2luUmVjdCgpLHRoaXMuX292ZXJsYXlSZWN0PXRoaXMuX3BhbmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5fdmlld3BvcnRSZWN0PXRoaXMuX2dldE5hcnJvd2VkVmlld3BvcnRSZWN0KCksdGhpcy5fY29udGFpbmVyUmVjdD10aGlzLl9vdmVybGF5Q29udGFpbmVyLmdldENvbnRhaW5lckVsZW1lbnQoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtsZXQgZT10aGlzLl9nZXRPcmlnaW5Qb2ludCh0aGlzLl9vcmlnaW5SZWN0LHRoaXMuX2NvbnRhaW5lclJlY3QsdCk7dGhpcy5fYXBwbHlQb3NpdGlvbih0LGUpfWVsc2UgdGhpcy5hcHBseSgpfXdpdGhTY3JvbGxhYmxlQ29udGFpbmVycyh0KXtyZXR1cm4gdGhpcy5fc2Nyb2xsYWJsZXM9dCx0aGlzfXdpdGhQb3NpdGlvbnModCl7cmV0dXJuIHRoaXMuX3ByZWZlcnJlZFBvc2l0aW9ucz10LC0xPT09dC5pbmRleE9mKHRoaXMuX2xhc3RQb3NpdGlvbikmJih0aGlzLl9sYXN0UG9zaXRpb249bnVsbCksdGhpcy5fdmFsaWRhdGVQb3NpdGlvbnMoKSx0aGlzfXdpdGhWaWV3cG9ydE1hcmdpbih0KXtyZXR1cm4gdGhpcy5fdmlld3BvcnRNYXJnaW49dCx0aGlzfXdpdGhGbGV4aWJsZURpbWVuc2lvbnModD0hMCl7cmV0dXJuIHRoaXMuX2hhc0ZsZXhpYmxlRGltZW5zaW9ucz10LHRoaXN9d2l0aEdyb3dBZnRlck9wZW4odD0hMCl7cmV0dXJuIHRoaXMuX2dyb3dBZnRlck9wZW49dCx0aGlzfXdpdGhQdXNoKHQ9ITApe3JldHVybiB0aGlzLl9jYW5QdXNoPXQsdGhpc313aXRoTG9ja2VkUG9zaXRpb24odD0hMCl7cmV0dXJuIHRoaXMuX3Bvc2l0aW9uTG9ja2VkPXQsdGhpc31zZXRPcmlnaW4odCl7cmV0dXJuIHRoaXMuX29yaWdpbj10LHRoaXN9d2l0aERlZmF1bHRPZmZzZXRYKHQpe3JldHVybiB0aGlzLl9vZmZzZXRYPXQsdGhpc313aXRoRGVmYXVsdE9mZnNldFkodCl7cmV0dXJuIHRoaXMuX29mZnNldFk9dCx0aGlzfXdpdGhUcmFuc2Zvcm1PcmlnaW5Pbih0KXtyZXR1cm4gdGhpcy5fdHJhbnNmb3JtT3JpZ2luU2VsZWN0b3I9dCx0aGlzfV9nZXRPcmlnaW5Qb2ludCh0LGUsaSl7bGV0IHIsbztpZigiY2VudGVyIj09aS5vcmlnaW5YKXI9dC5sZWZ0K3Qud2lkdGgvMjtlbHNle2xldCBhPXRoaXMuX2lzUnRsKCk/dC5yaWdodDp0LmxlZnQscz10aGlzLl9pc1J0bCgpP3QubGVmdDp0LnJpZ2h0O3I9InN0YXJ0Ij09aS5vcmlnaW5YP2E6c31yZXR1cm4gZS5sZWZ0PDAmJihyLT1lLmxlZnQpLG89ImNlbnRlciI9PWkub3JpZ2luWT90LnRvcCt0LmhlaWdodC8yOiJ0b3AiPT1pLm9yaWdpblk/dC50b3A6dC5ib3R0b20sZS50b3A8MCYmKG8tPWUudG9wKSx7eDpyLHk6b319X2dldE92ZXJsYXlQb2ludCh0LGUsaSl7bGV0IHIsbztyZXR1cm4gcj0iY2VudGVyIj09aS5vdmVybGF5WD8tZS53aWR0aC8yOiJzdGFydCI9PT1pLm92ZXJsYXlYP3RoaXMuX2lzUnRsKCk/LWUud2lkdGg6MDp0aGlzLl9pc1J0bCgpPzA6LWUud2lkdGgsbz0iY2VudGVyIj09aS5vdmVybGF5WT8tZS5oZWlnaHQvMjoidG9wIj09aS5vdmVybGF5WT8wOi1lLmhlaWdodCx7eDp0Lngrcix5OnQueStvfX1fZ2V0T3ZlcmxheUZpdCh0LGUsaSxyKXtsZXQgbz10OShlKSx7eDphLHk6c309dCxsPXRoaXMuX2dldE9mZnNldChyLCJ4IiksYz10aGlzLl9nZXRPZmZzZXQociwieSIpO2wmJihhKz1sKSxjJiYocys9Yyk7bGV0IHA9MC1zLGg9cytvLmhlaWdodC1pLmhlaWdodCxtPXRoaXMuX3N1YnRyYWN0T3ZlcmZsb3dzKG8ud2lkdGgsMC1hLGErby53aWR0aC1pLndpZHRoKSxfPXRoaXMuX3N1YnRyYWN0T3ZlcmZsb3dzKG8uaGVpZ2h0LHAsaCksTT1tKl87cmV0dXJue3Zpc2libGVBcmVhOk0saXNDb21wbGV0ZWx5V2l0aGluVmlld3BvcnQ6by53aWR0aCpvLmhlaWdodD09PU0sZml0c0luVmlld3BvcnRWZXJ0aWNhbGx5Ol89PT1vLmhlaWdodCxmaXRzSW5WaWV3cG9ydEhvcml6b250YWxseTptPT1vLndpZHRofX1fY2FuRml0V2l0aEZsZXhpYmxlRGltZW5zaW9ucyh0LGUsaSl7aWYodGhpcy5faGFzRmxleGlibGVEaW1lbnNpb25zKXtsZXQgcj1pLmJvdHRvbS1lLnksbz1pLnJpZ2h0LWUueCxhPWU5KHRoaXMuX292ZXJsYXlSZWYuZ2V0Q29uZmlnKCkubWluSGVpZ2h0KSxzPWU5KHRoaXMuX292ZXJsYXlSZWYuZ2V0Q29uZmlnKCkubWluV2lkdGgpO3JldHVybih0LmZpdHNJblZpZXdwb3J0VmVydGljYWxseXx8bnVsbCE9YSYmYTw9cikmJih0LmZpdHNJblZpZXdwb3J0SG9yaXpvbnRhbGx5fHxudWxsIT1zJiZzPD1vKX1yZXR1cm4hMX1fcHVzaE92ZXJsYXlPblNjcmVlbih0LGUsaSl7aWYodGhpcy5fcHJldmlvdXNQdXNoQW1vdW50JiZ0aGlzLl9wb3NpdGlvbkxvY2tlZClyZXR1cm57eDp0LngrdGhpcy5fcHJldmlvdXNQdXNoQW1vdW50LngseTp0LnkrdGhpcy5fcHJldmlvdXNQdXNoQW1vdW50Lnl9O2xldCByPXQ5KGUpLG89dGhpcy5fdmlld3BvcnRSZWN0LGE9TWF0aC5tYXgodC54K3Iud2lkdGgtby53aWR0aCwwKSxzPU1hdGgubWF4KHQueStyLmhlaWdodC1vLmhlaWdodCwwKSxsPU1hdGgubWF4KG8udG9wLWkudG9wLXQueSwwKSxjPU1hdGgubWF4KG8ubGVmdC1pLmxlZnQtdC54LDApLGQ9MCx1PTA7cmV0dXJuIGQ9ci53aWR0aDw9by53aWR0aD9jfHwtYTp0Lng8dGhpcy5fdmlld3BvcnRNYXJnaW4/by5sZWZ0LWkubGVmdC10Lng6MCx1PXIuaGVpZ2h0PD1vLmhlaWdodD9sfHwtczp0Lnk8dGhpcy5fdmlld3BvcnRNYXJnaW4/by50b3AtaS50b3AtdC55OjAsdGhpcy5fcHJldmlvdXNQdXNoQW1vdW50PXt4OmQseTp1fSx7eDp0LngrZCx5OnQueSt1fX1fYXBwbHlQb3NpdGlvbih0LGUpe2lmKHRoaXMuX3NldFRyYW5zZm9ybU9yaWdpbih0KSx0aGlzLl9zZXRPdmVybGF5RWxlbWVudFN0eWxlcyhlLHQpLHRoaXMuX3NldEJvdW5kaW5nQm94U3R5bGVzKGUsdCksdC5wYW5lbENsYXNzJiZ0aGlzLl9hZGRQYW5lbENsYXNzZXModC5wYW5lbENsYXNzKSx0aGlzLl9sYXN0UG9zaXRpb249dCx0aGlzLl9wb3NpdGlvbkNoYW5nZXMub2JzZXJ2ZXJzLmxlbmd0aCl7bGV0IGk9dGhpcy5fZ2V0U2Nyb2xsVmlzaWJpbGl0eSgpLHI9bmV3IGNsYXNze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5jb25uZWN0aW9uUGFpcj10LHRoaXMuc2Nyb2xsYWJsZVZpZXdQcm9wZXJ0aWVzPWV9fSh0LGkpO3RoaXMuX3Bvc2l0aW9uQ2hhbmdlcy5uZXh0KHIpfXRoaXMuX2lzSW5pdGlhbFJlbmRlcj0hMX1fc2V0VHJhbnNmb3JtT3JpZ2luKHQpe2lmKCF0aGlzLl90cmFuc2Zvcm1PcmlnaW5TZWxlY3RvcilyZXR1cm47bGV0IGksZT10aGlzLl9ib3VuZGluZ0JveC5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuX3RyYW5zZm9ybU9yaWdpblNlbGVjdG9yKSxyPXQub3ZlcmxheVk7aT0iY2VudGVyIj09PXQub3ZlcmxheVg/ImNlbnRlciI6dGhpcy5faXNSdGwoKT8ic3RhcnQiPT09dC5vdmVybGF5WD8icmlnaHQiOiJsZWZ0Ijoic3RhcnQiPT09dC5vdmVybGF5WD8ibGVmdCI6InJpZ2h0Ijtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyllW29dLnN0eWxlLnRyYW5zZm9ybU9yaWdpbj1gJHtpfSAke3J9YH1fY2FsY3VsYXRlQm91bmRpbmdCb3hSZWN0KHQsZSl7bGV0IG8sYSxzLGQsdSxwLGk9dGhpcy5fdmlld3BvcnRSZWN0LHI9dGhpcy5faXNSdGwoKTtpZigidG9wIj09PWUub3ZlcmxheVkpYT10Lnksbz1pLmhlaWdodC1hK3RoaXMuX3ZpZXdwb3J0TWFyZ2luO2Vsc2UgaWYoImJvdHRvbSI9PT1lLm92ZXJsYXlZKXM9aS5oZWlnaHQtdC55KzIqdGhpcy5fdmlld3BvcnRNYXJnaW4sbz1pLmhlaWdodC1zK3RoaXMuX3ZpZXdwb3J0TWFyZ2luO2Vsc2V7bGV0IGg9TWF0aC5taW4oaS5ib3R0b20tdC55K2kudG9wLHQueSksbT10aGlzLl9sYXN0Qm91bmRpbmdCb3hTaXplLmhlaWdodDtvPTIqaCxhPXQueS1oLG8+bSYmIXRoaXMuX2lzSW5pdGlhbFJlbmRlciYmIXRoaXMuX2dyb3dBZnRlck9wZW4mJihhPXQueS1tLzIpfWlmKCJlbmQiPT09ZS5vdmVybGF5WCYmIXJ8fCJzdGFydCI9PT1lLm92ZXJsYXlYJiZyKXA9aS53aWR0aC10LngrdGhpcy5fdmlld3BvcnRNYXJnaW4sZD10LngtdGhpcy5fdmlld3BvcnRNYXJnaW47ZWxzZSBpZigic3RhcnQiPT09ZS5vdmVybGF5WCYmIXJ8fCJlbmQiPT09ZS5vdmVybGF5WCYmcil1PXQueCxkPWkucmlnaHQtdC54O2Vsc2V7bGV0IGg9TWF0aC5taW4oaS5yaWdodC10LngraS5sZWZ0LHQueCksbT10aGlzLl9sYXN0Qm91bmRpbmdCb3hTaXplLndpZHRoO2Q9MipoLHU9dC54LWgsZD5tJiYhdGhpcy5faXNJbml0aWFsUmVuZGVyJiYhdGhpcy5fZ3Jvd0FmdGVyT3BlbiYmKHU9dC54LW0vMil9cmV0dXJue3RvcDphLGxlZnQ6dSxib3R0b206cyxyaWdodDpwLHdpZHRoOmQsaGVpZ2h0Om99fV9zZXRCb3VuZGluZ0JveFN0eWxlcyh0LGUpe2xldCBpPXRoaXMuX2NhbGN1bGF0ZUJvdW5kaW5nQm94UmVjdCh0LGUpOyF0aGlzLl9pc0luaXRpYWxSZW5kZXImJiF0aGlzLl9ncm93QWZ0ZXJPcGVuJiYoaS5oZWlnaHQ9TWF0aC5taW4oaS5oZWlnaHQsdGhpcy5fbGFzdEJvdW5kaW5nQm94U2l6ZS5oZWlnaHQpLGkud2lkdGg9TWF0aC5taW4oaS53aWR0aCx0aGlzLl9sYXN0Qm91bmRpbmdCb3hTaXplLndpZHRoKSk7bGV0IHI9e307aWYodGhpcy5faGFzRXhhY3RQb3NpdGlvbigpKXIudG9wPXIubGVmdD0iMCIsci5ib3R0b209ci5yaWdodD1yLm1heEhlaWdodD1yLm1heFdpZHRoPSIiLHIud2lkdGg9ci5oZWlnaHQ9IjEwMCUiO2Vsc2V7bGV0IG89dGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKS5tYXhIZWlnaHQsYT10aGlzLl9vdmVybGF5UmVmLmdldENvbmZpZygpLm1heFdpZHRoO3IuaGVpZ2h0PXFyKGkuaGVpZ2h0KSxyLnRvcD1xcihpLnRvcCksci5ib3R0b209cXIoaS5ib3R0b20pLHIud2lkdGg9cXIoaS53aWR0aCksci5sZWZ0PXFyKGkubGVmdCksci5yaWdodD1xcihpLnJpZ2h0KSxyLmFsaWduSXRlbXM9ImNlbnRlciI9PT1lLm92ZXJsYXlYPyJjZW50ZXIiOiJlbmQiPT09ZS5vdmVybGF5WD8iZmxleC1lbmQiOiJmbGV4LXN0YXJ0IixyLmp1c3RpZnlDb250ZW50PSJjZW50ZXIiPT09ZS5vdmVybGF5WT8iY2VudGVyIjoiYm90dG9tIj09PWUub3ZlcmxheVk/ImZsZXgtZW5kIjoiZmxleC1zdGFydCIsbyYmKHIubWF4SGVpZ2h0PXFyKG8pKSxhJiYoci5tYXhXaWR0aD1xcihhKSl9dGhpcy5fbGFzdEJvdW5kaW5nQm94U2l6ZT1pLERoKHRoaXMuX2JvdW5kaW5nQm94LnN0eWxlLHIpfV9yZXNldEJvdW5kaW5nQm94U3R5bGVzKCl7RGgodGhpcy5fYm91bmRpbmdCb3guc3R5bGUse3RvcDoiMCIsbGVmdDoiMCIscmlnaHQ6IjAiLGJvdHRvbToiMCIsaGVpZ2h0OiIiLHdpZHRoOiIiLGFsaWduSXRlbXM6IiIsanVzdGlmeUNvbnRlbnQ6IiJ9KX1fcmVzZXRPdmVybGF5RWxlbWVudFN0eWxlcygpe0RoKHRoaXMuX3BhbmUuc3R5bGUse3RvcDoiIixsZWZ0OiIiLGJvdHRvbToiIixyaWdodDoiIixwb3NpdGlvbjoiIix0cmFuc2Zvcm06IiJ9KX1fc2V0T3ZlcmxheUVsZW1lbnRTdHlsZXModCxlKXtsZXQgaT17fSxyPXRoaXMuX2hhc0V4YWN0UG9zaXRpb24oKSxvPXRoaXMuX2hhc0ZsZXhpYmxlRGltZW5zaW9ucyxhPXRoaXMuX292ZXJsYXlSZWYuZ2V0Q29uZmlnKCk7aWYocil7bGV0IGQ9dGhpcy5fdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCk7RGgoaSx0aGlzLl9nZXRFeGFjdE92ZXJsYXlZKGUsdCxkKSksRGgoaSx0aGlzLl9nZXRFeGFjdE92ZXJsYXlYKGUsdCxkKSl9ZWxzZSBpLnBvc2l0aW9uPSJzdGF0aWMiO2xldCBzPSIiLGw9dGhpcy5fZ2V0T2Zmc2V0KGUsIngiKSxjPXRoaXMuX2dldE9mZnNldChlLCJ5Iik7bCYmKHMrPWB0cmFuc2xhdGVYKCR7bH1weCkgYCksYyYmKHMrPWB0cmFuc2xhdGVZKCR7Y31weClgKSxpLnRyYW5zZm9ybT1zLnRyaW0oKSxhLm1heEhlaWdodCYmKHI/aS5tYXhIZWlnaHQ9cXIoYS5tYXhIZWlnaHQpOm8mJihpLm1heEhlaWdodD0iIikpLGEubWF4V2lkdGgmJihyP2kubWF4V2lkdGg9cXIoYS5tYXhXaWR0aCk6byYmKGkubWF4V2lkdGg9IiIpKSxEaCh0aGlzLl9wYW5lLnN0eWxlLGkpfV9nZXRFeGFjdE92ZXJsYXlZKHQsZSxpKXtsZXQgcj17dG9wOiIiLGJvdHRvbToiIn0sbz10aGlzLl9nZXRPdmVybGF5UG9pbnQoZSx0aGlzLl9vdmVybGF5UmVjdCx0KTtyZXR1cm4gdGhpcy5faXNQdXNoZWQmJihvPXRoaXMuX3B1c2hPdmVybGF5T25TY3JlZW4obyx0aGlzLl9vdmVybGF5UmVjdCxpKSksImJvdHRvbSI9PT10Lm92ZXJsYXlZP3IuYm90dG9tPXRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQtKG8ueSt0aGlzLl9vdmVybGF5UmVjdC5oZWlnaHQpKyJweCI6ci50b3A9cXIoby55KSxyfV9nZXRFeGFjdE92ZXJsYXlYKHQsZSxpKXtsZXQgYSxyPXtsZWZ0OiIiLHJpZ2h0OiIifSxvPXRoaXMuX2dldE92ZXJsYXlQb2ludChlLHRoaXMuX292ZXJsYXlSZWN0LHQpO3JldHVybiB0aGlzLl9pc1B1c2hlZCYmKG89dGhpcy5fcHVzaE92ZXJsYXlPblNjcmVlbihvLHRoaXMuX292ZXJsYXlSZWN0LGkpKSxhPXRoaXMuX2lzUnRsKCk/ImVuZCI9PT10Lm92ZXJsYXlYPyJsZWZ0IjoicmlnaHQiOiJlbmQiPT09dC5vdmVybGF5WD8icmlnaHQiOiJsZWZ0IiwicmlnaHQiPT09YT9yLnJpZ2h0PXRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aC0oby54K3RoaXMuX292ZXJsYXlSZWN0LndpZHRoKSsicHgiOnIubGVmdD1xcihvLngpLHJ9X2dldFNjcm9sbFZpc2liaWxpdHkoKXtsZXQgdD10aGlzLl9nZXRPcmlnaW5SZWN0KCksZT10aGlzLl9wYW5lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9dGhpcy5fc2Nyb2xsYWJsZXMubWFwKHI9PnIuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO3JldHVybntpc09yaWdpbkNsaXBwZWQ6SjcodCxpKSxpc09yaWdpbk91dHNpZGVWaWV3OkUyKHQsaSksaXNPdmVybGF5Q2xpcHBlZDpKNyhlLGkpLGlzT3ZlcmxheU91dHNpZGVWaWV3OkUyKGUsaSl9fV9zdWJ0cmFjdE92ZXJmbG93cyh0LC4uLmUpe3JldHVybiBlLnJlZHVjZSgoaSxyKT0+aS1NYXRoLm1heChyLDApLHQpfV9nZXROYXJyb3dlZFZpZXdwb3J0UmVjdCgpe2xldCB0PXRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCxlPXRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsaT10aGlzLl92aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKTtyZXR1cm57dG9wOmkudG9wK3RoaXMuX3ZpZXdwb3J0TWFyZ2luLGxlZnQ6aS5sZWZ0K3RoaXMuX3ZpZXdwb3J0TWFyZ2luLHJpZ2h0OmkubGVmdCt0LXRoaXMuX3ZpZXdwb3J0TWFyZ2luLGJvdHRvbTppLnRvcCtlLXRoaXMuX3ZpZXdwb3J0TWFyZ2luLHdpZHRoOnQtMip0aGlzLl92aWV3cG9ydE1hcmdpbixoZWlnaHQ6ZS0yKnRoaXMuX3ZpZXdwb3J0TWFyZ2lufX1faXNSdGwoKXtyZXR1cm4icnRsIj09PXRoaXMuX292ZXJsYXlSZWYuZ2V0RGlyZWN0aW9uKCl9X2hhc0V4YWN0UG9zaXRpb24oKXtyZXR1cm4hdGhpcy5faGFzRmxleGlibGVEaW1lbnNpb25zfHx0aGlzLl9pc1B1c2hlZH1fZ2V0T2Zmc2V0KHQsZSl7cmV0dXJuIngiPT09ZT9udWxsPT10Lm9mZnNldFg/dGhpcy5fb2Zmc2V0WDp0Lm9mZnNldFg6bnVsbD09dC5vZmZzZXRZP3RoaXMuX29mZnNldFk6dC5vZmZzZXRZfV92YWxpZGF0ZVBvc2l0aW9ucygpe31fYWRkUGFuZWxDbGFzc2VzKHQpe3RoaXMuX3BhbmUmJnJnKHQpLmZvckVhY2goZT0+eyIiIT09ZSYmLTE9PT10aGlzLl9hcHBsaWVkUGFuZWxDbGFzc2VzLmluZGV4T2YoZSkmJih0aGlzLl9hcHBsaWVkUGFuZWxDbGFzc2VzLnB1c2goZSksdGhpcy5fcGFuZS5jbGFzc0xpc3QuYWRkKGUpKX0pfV9jbGVhclBhbmVsQ2xhc3Nlcygpe3RoaXMuX3BhbmUmJih0aGlzLl9hcHBsaWVkUGFuZWxDbGFzc2VzLmZvckVhY2godD0+e3RoaXMuX3BhbmUuY2xhc3NMaXN0LnJlbW92ZSh0KX0pLHRoaXMuX2FwcGxpZWRQYW5lbENsYXNzZXM9W10pfV9nZXRPcmlnaW5SZWN0KCl7bGV0IHQ9dGhpcy5fb3JpZ2luO2lmKHQgaW5zdGFuY2VvZiB4ZSlyZXR1cm4gdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKHQgaW5zdGFuY2VvZiBFbGVtZW50KXJldHVybiB0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2xldCBlPXQud2lkdGh8fDAsaT10LmhlaWdodHx8MDtyZXR1cm57dG9wOnQueSxib3R0b206dC55K2ksbGVmdDp0LngscmlnaHQ6dC54K2UsaGVpZ2h0Omksd2lkdGg6ZX19fShlLHRoaXMuX3ZpZXdwb3J0UnVsZXIsdGhpcy5fZG9jdW1lbnQsdGhpcy5fcGxhdGZvcm0sdGhpcy5fb3ZlcmxheUNvbnRhaW5lcil9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oV2EpLE8oTnQpLE8oVm4pLE8oX2cpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxufSkoKSxsYmU9MCxPaT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSxyLG8sYSxzLGwsYyxkLHUscCxoKXt0aGlzLnNjcm9sbFN0cmF0ZWdpZXM9ZSx0aGlzLl9vdmVybGF5Q29udGFpbmVyPWksdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPXIsdGhpcy5fcG9zaXRpb25CdWlsZGVyPW8sdGhpcy5fa2V5Ym9hcmREaXNwYXRjaGVyPWEsdGhpcy5faW5qZWN0b3I9cyx0aGlzLl9uZ1pvbmU9bCx0aGlzLl9kb2N1bWVudD1jLHRoaXMuX2RpcmVjdGlvbmFsaXR5PWQsdGhpcy5fbG9jYXRpb249dSx0aGlzLl9vdXRzaWRlQ2xpY2tEaXNwYXRjaGVyPXAsdGhpcy5fYW5pbWF0aW9uc01vZHVsZVR5cGU9aH1jcmVhdGUoZSl7bGV0IGk9dGhpcy5fY3JlYXRlSG9zdEVsZW1lbnQoKSxyPXRoaXMuX2NyZWF0ZVBhbmVFbGVtZW50KGkpLG89dGhpcy5fY3JlYXRlUG9ydGFsT3V0bGV0KHIpLGE9bmV3IGVsKGUpO3JldHVybiBhLmRpcmVjdGlvbj1hLmRpcmVjdGlvbnx8dGhpcy5fZGlyZWN0aW9uYWxpdHkudmFsdWUsbmV3IEFjKG8saSxyLGEsdGhpcy5fbmdab25lLHRoaXMuX2tleWJvYXJkRGlzcGF0Y2hlcix0aGlzLl9kb2N1bWVudCx0aGlzLl9sb2NhdGlvbix0aGlzLl9vdXRzaWRlQ2xpY2tEaXNwYXRjaGVyLCJOb29wQW5pbWF0aW9ucyI9PT10aGlzLl9hbmltYXRpb25zTW9kdWxlVHlwZSl9cG9zaXRpb24oKXtyZXR1cm4gdGhpcy5fcG9zaXRpb25CdWlsZGVyfV9jcmVhdGVQYW5lRWxlbWVudChlKXtsZXQgaT10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gaS5pZD0iY2RrLW92ZXJsYXktIitsYmUrKyxpLmNsYXNzTGlzdC5hZGQoImNkay1vdmVybGF5LXBhbmUiKSxlLmFwcGVuZENoaWxkKGkpLGl9X2NyZWF0ZUhvc3RFbGVtZW50KCl7bGV0IGU9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHRoaXMuX292ZXJsYXlDb250YWluZXIuZ2V0Q29udGFpbmVyRWxlbWVudCgpLmFwcGVuZENoaWxkKGUpLGV9X2NyZWF0ZVBvcnRhbE91dGxldChlKXtyZXR1cm4gdGhpcy5fYXBwUmVmfHwodGhpcy5fYXBwUmVmPXRoaXMuX2luamVjdG9yLmdldChnYykpLG5ldyBXdihlLHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcix0aGlzLl9hcHBSZWYsdGhpcy5faW5qZWN0b3IsdGhpcy5fZG9jdW1lbnQpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKGliZSksTyhfZyksTyhobyksTyhzYmUpLE8ocmJlKSxPKHdpKSxPKG90KSxPKE50KSxPKHppKSxPKERiKSxPKG9iZSksTyhwaSw4KSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCksY2JlPVt7b3JpZ2luWDoic3RhcnQiLG9yaWdpblk6ImJvdHRvbSIsb3ZlcmxheVg6InN0YXJ0IixvdmVybGF5WToidG9wIn0se29yaWdpblg6InN0YXJ0IixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlYOiJzdGFydCIsb3ZlcmxheVk6ImJvdHRvbSJ9LHtvcmlnaW5YOiJlbmQiLG9yaWdpblk6InRvcCIsb3ZlcmxheVg6ImVuZCIsb3ZlcmxheVk6ImJvdHRvbSJ9LHtvcmlnaW5YOiJlbmQiLG9yaWdpblk6ImJvdHRvbSIsb3ZlcmxheVg6ImVuZCIsb3ZlcmxheVk6InRvcCJ9XSxyOT1uZXcgdGUoImNkay1jb25uZWN0ZWQtb3ZlcmxheS1zY3JvbGwtc3RyYXRlZ3kiKSxNZD0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuZWxlbWVudFJlZj1lfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsImNkay1vdmVybGF5LW9yaWdpbiIsIiJdLFsiIiwib3ZlcmxheS1vcmlnaW4iLCIiXSxbIiIsImNka092ZXJsYXlPcmlnaW4iLCIiXV0sZXhwb3J0QXM6WyJjZGtPdmVybGF5T3JpZ2luIl0sc3RhbmRhbG9uZTohMH0pLG59KSgpLFZ1PSgoKT0+e2NsYXNzIG57Z2V0IG9mZnNldFgoKXtyZXR1cm4gdGhpcy5fb2Zmc2V0WH1zZXQgb2Zmc2V0WChlKXt0aGlzLl9vZmZzZXRYPWUsdGhpcy5fcG9zaXRpb24mJnRoaXMuX3VwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5fcG9zaXRpb24pfWdldCBvZmZzZXRZKCl7cmV0dXJuIHRoaXMuX29mZnNldFl9c2V0IG9mZnNldFkoZSl7dGhpcy5fb2Zmc2V0WT1lLHRoaXMuX3Bvc2l0aW9uJiZ0aGlzLl91cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHRoaXMuX3Bvc2l0aW9uKX1nZXQgaGFzQmFja2Ryb3AoKXtyZXR1cm4gdGhpcy5faGFzQmFja2Ryb3B9c2V0IGhhc0JhY2tkcm9wKGUpe3RoaXMuX2hhc0JhY2tkcm9wPXZ0KGUpfWdldCBsb2NrUG9zaXRpb24oKXtyZXR1cm4gdGhpcy5fbG9ja1Bvc2l0aW9ufXNldCBsb2NrUG9zaXRpb24oZSl7dGhpcy5fbG9ja1Bvc2l0aW9uPXZ0KGUpfWdldCBmbGV4aWJsZURpbWVuc2lvbnMoKXtyZXR1cm4gdGhpcy5fZmxleGlibGVEaW1lbnNpb25zfXNldCBmbGV4aWJsZURpbWVuc2lvbnMoZSl7dGhpcy5fZmxleGlibGVEaW1lbnNpb25zPXZ0KGUpfWdldCBncm93QWZ0ZXJPcGVuKCl7cmV0dXJuIHRoaXMuX2dyb3dBZnRlck9wZW59c2V0IGdyb3dBZnRlck9wZW4oZSl7dGhpcy5fZ3Jvd0FmdGVyT3Blbj12dChlKX1nZXQgcHVzaCgpe3JldHVybiB0aGlzLl9wdXNofXNldCBwdXNoKGUpe3RoaXMuX3B1c2g9dnQoZSl9Y29uc3RydWN0b3IoZSxpLHIsbyxhKXt0aGlzLl9vdmVybGF5PWUsdGhpcy5fZGlyPWEsdGhpcy5faGFzQmFja2Ryb3A9ITEsdGhpcy5fbG9ja1Bvc2l0aW9uPSExLHRoaXMuX2dyb3dBZnRlck9wZW49ITEsdGhpcy5fZmxleGlibGVEaW1lbnNpb25zPSExLHRoaXMuX3B1c2g9ITEsdGhpcy5fYmFja2Ryb3BTdWJzY3JpcHRpb249RW4uRU1QVFksdGhpcy5fYXR0YWNoU3Vic2NyaXB0aW9uPUVuLkVNUFRZLHRoaXMuX2RldGFjaFN1YnNjcmlwdGlvbj1Fbi5FTVBUWSx0aGlzLl9wb3NpdGlvblN1YnNjcmlwdGlvbj1Fbi5FTVBUWSx0aGlzLnZpZXdwb3J0TWFyZ2luPTAsdGhpcy5vcGVuPSExLHRoaXMuZGlzYWJsZUNsb3NlPSExLHRoaXMuYmFja2Ryb3BDbGljaz1uZXcgRix0aGlzLnBvc2l0aW9uQ2hhbmdlPW5ldyBGLHRoaXMuYXR0YWNoPW5ldyBGLHRoaXMuZGV0YWNoPW5ldyBGLHRoaXMub3ZlcmxheUtleWRvd249bmV3IEYsdGhpcy5vdmVybGF5T3V0c2lkZUNsaWNrPW5ldyBGLHRoaXMuX3RlbXBsYXRlUG9ydGFsPW5ldyBUbyhpLHIpLHRoaXMuX3Njcm9sbFN0cmF0ZWd5RmFjdG9yeT1vLHRoaXMuc2Nyb2xsU3RyYXRlZ3k9dGhpcy5fc2Nyb2xsU3RyYXRlZ3lGYWN0b3J5KCl9Z2V0IG92ZXJsYXlSZWYoKXtyZXR1cm4gdGhpcy5fb3ZlcmxheVJlZn1nZXQgZGlyKCl7cmV0dXJuIHRoaXMuX2Rpcj90aGlzLl9kaXIudmFsdWU6Imx0ciJ9bmdPbkRlc3Ryb3koKXt0aGlzLl9hdHRhY2hTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9kZXRhY2hTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9iYWNrZHJvcFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3Bvc2l0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fb3ZlcmxheVJlZiYmdGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCl9bmdPbkNoYW5nZXMoZSl7dGhpcy5fcG9zaXRpb24mJih0aGlzLl91cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHRoaXMuX3Bvc2l0aW9uKSx0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVNpemUoe3dpZHRoOnRoaXMud2lkdGgsbWluV2lkdGg6dGhpcy5taW5XaWR0aCxoZWlnaHQ6dGhpcy5oZWlnaHQsbWluSGVpZ2h0OnRoaXMubWluSGVpZ2h0fSksZS5vcmlnaW4mJnRoaXMub3BlbiYmdGhpcy5fcG9zaXRpb24uYXBwbHkoKSksZS5vcGVuJiYodGhpcy5vcGVuP3RoaXMuX2F0dGFjaE92ZXJsYXkoKTp0aGlzLl9kZXRhY2hPdmVybGF5KCkpfV9jcmVhdGVPdmVybGF5KCl7KCF0aGlzLnBvc2l0aW9uc3x8IXRoaXMucG9zaXRpb25zLmxlbmd0aCkmJih0aGlzLnBvc2l0aW9ucz1jYmUpO2xldCBlPXRoaXMuX292ZXJsYXlSZWY9dGhpcy5fb3ZlcmxheS5jcmVhdGUodGhpcy5fYnVpbGRDb25maWcoKSk7dGhpcy5fYXR0YWNoU3Vic2NyaXB0aW9uPWUuYXR0YWNobWVudHMoKS5zdWJzY3JpYmUoKCk9PnRoaXMuYXR0YWNoLmVtaXQoKSksdGhpcy5fZGV0YWNoU3Vic2NyaXB0aW9uPWUuZGV0YWNobWVudHMoKS5zdWJzY3JpYmUoKCk9PnRoaXMuZGV0YWNoLmVtaXQoKSksZS5rZXlkb3duRXZlbnRzKCkuc3Vic2NyaWJlKGk9Pnt0aGlzLm92ZXJsYXlLZXlkb3duLm5leHQoaSksMjc9PT1pLmtleUNvZGUmJiF0aGlzLmRpc2FibGVDbG9zZSYmIU9yKGkpJiYoaS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2RldGFjaE92ZXJsYXkoKSl9KSx0aGlzLl9vdmVybGF5UmVmLm91dHNpZGVQb2ludGVyRXZlbnRzKCkuc3Vic2NyaWJlKGk9Pnt0aGlzLm92ZXJsYXlPdXRzaWRlQ2xpY2submV4dChpKX0pfV9idWlsZENvbmZpZygpe2xldCBlPXRoaXMuX3Bvc2l0aW9uPXRoaXMucG9zaXRpb25TdHJhdGVneXx8dGhpcy5fY3JlYXRlUG9zaXRpb25TdHJhdGVneSgpLGk9bmV3IGVsKHtkaXJlY3Rpb246dGhpcy5fZGlyLHBvc2l0aW9uU3RyYXRlZ3k6ZSxzY3JvbGxTdHJhdGVneTp0aGlzLnNjcm9sbFN0cmF0ZWd5LGhhc0JhY2tkcm9wOnRoaXMuaGFzQmFja2Ryb3B9KTtyZXR1cm4odGhpcy53aWR0aHx8MD09PXRoaXMud2lkdGgpJiYoaS53aWR0aD10aGlzLndpZHRoKSwodGhpcy5oZWlnaHR8fDA9PT10aGlzLmhlaWdodCkmJihpLmhlaWdodD10aGlzLmhlaWdodCksKHRoaXMubWluV2lkdGh8fDA9PT10aGlzLm1pbldpZHRoKSYmKGkubWluV2lkdGg9dGhpcy5taW5XaWR0aCksKHRoaXMubWluSGVpZ2h0fHwwPT09dGhpcy5taW5IZWlnaHQpJiYoaS5taW5IZWlnaHQ9dGhpcy5taW5IZWlnaHQpLHRoaXMuYmFja2Ryb3BDbGFzcyYmKGkuYmFja2Ryb3BDbGFzcz10aGlzLmJhY2tkcm9wQ2xhc3MpLHRoaXMucGFuZWxDbGFzcyYmKGkucGFuZWxDbGFzcz10aGlzLnBhbmVsQ2xhc3MpLGl9X3VwZGF0ZVBvc2l0aW9uU3RyYXRlZ3koZSl7bGV0IGk9dGhpcy5wb3NpdGlvbnMubWFwKHI9Pih7b3JpZ2luWDpyLm9yaWdpblgsb3JpZ2luWTpyLm9yaWdpblksb3ZlcmxheVg6ci5vdmVybGF5WCxvdmVybGF5WTpyLm92ZXJsYXlZLG9mZnNldFg6ci5vZmZzZXRYfHx0aGlzLm9mZnNldFgsb2Zmc2V0WTpyLm9mZnNldFl8fHRoaXMub2Zmc2V0WSxwYW5lbENsYXNzOnIucGFuZWxDbGFzc3x8dm9pZCAwfSkpO3JldHVybiBlLnNldE9yaWdpbih0aGlzLl9nZXRGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3lPcmlnaW4oKSkud2l0aFBvc2l0aW9ucyhpKS53aXRoRmxleGlibGVEaW1lbnNpb25zKHRoaXMuZmxleGlibGVEaW1lbnNpb25zKS53aXRoUHVzaCh0aGlzLnB1c2gpLndpdGhHcm93QWZ0ZXJPcGVuKHRoaXMuZ3Jvd0FmdGVyT3Blbikud2l0aFZpZXdwb3J0TWFyZ2luKHRoaXMudmlld3BvcnRNYXJnaW4pLndpdGhMb2NrZWRQb3NpdGlvbih0aGlzLmxvY2tQb3NpdGlvbikud2l0aFRyYW5zZm9ybU9yaWdpbk9uKHRoaXMudHJhbnNmb3JtT3JpZ2luU2VsZWN0b3IpfV9jcmVhdGVQb3NpdGlvblN0cmF0ZWd5KCl7bGV0IGU9dGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5fZ2V0RmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5T3JpZ2luKCkpO3JldHVybiB0aGlzLl91cGRhdGVQb3NpdGlvblN0cmF0ZWd5KGUpLGV9X2dldEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneU9yaWdpbigpe3JldHVybiB0aGlzLm9yaWdpbiBpbnN0YW5jZW9mIE1kP3RoaXMub3JpZ2luLmVsZW1lbnRSZWY6dGhpcy5vcmlnaW59X2F0dGFjaE92ZXJsYXkoKXt0aGlzLl9vdmVybGF5UmVmP3RoaXMuX292ZXJsYXlSZWYuZ2V0Q29uZmlnKCkuaGFzQmFja2Ryb3A9dGhpcy5oYXNCYWNrZHJvcDp0aGlzLl9jcmVhdGVPdmVybGF5KCksdGhpcy5fb3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpfHx0aGlzLl9vdmVybGF5UmVmLmF0dGFjaCh0aGlzLl90ZW1wbGF0ZVBvcnRhbCksdGhpcy5oYXNCYWNrZHJvcD90aGlzLl9iYWNrZHJvcFN1YnNjcmlwdGlvbj10aGlzLl9vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoZT0+e3RoaXMuYmFja2Ryb3BDbGljay5lbWl0KGUpfSk6dGhpcy5fYmFja2Ryb3BTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9wb3NpdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMucG9zaXRpb25DaGFuZ2Uub2JzZXJ2ZXJzLmxlbmd0aD4wJiYodGhpcy5fcG9zaXRpb25TdWJzY3JpcHRpb249dGhpcy5fcG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzLnBpcGUoT18oKCk9PnRoaXMucG9zaXRpb25DaGFuZ2Uub2JzZXJ2ZXJzLmxlbmd0aD4wKSkuc3Vic2NyaWJlKGU9Pnt0aGlzLnBvc2l0aW9uQ2hhbmdlLmVtaXQoZSksMD09PXRoaXMucG9zaXRpb25DaGFuZ2Uub2JzZXJ2ZXJzLmxlbmd0aCYmdGhpcy5fcG9zaXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX0pKX1fZGV0YWNoT3ZlcmxheSgpe3RoaXMuX292ZXJsYXlSZWYmJnRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCksdGhpcy5fYmFja2Ryb3BTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9wb3NpdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKE9pKSxDKG9pKSxDKGVpKSxDKHI5KSxDKHppLDgpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siIiwiY2RrLWNvbm5lY3RlZC1vdmVybGF5IiwiIl0sWyIiLCJjb25uZWN0ZWQtb3ZlcmxheSIsIiJdLFsiIiwiY2RrQ29ubmVjdGVkT3ZlcmxheSIsIiJdXSxpbnB1dHM6e29yaWdpbjpbImNka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW4iLCJvcmlnaW4iXSxwb3NpdGlvbnM6WyJjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25zIiwicG9zaXRpb25zIl0scG9zaXRpb25TdHJhdGVneTpbImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvblN0cmF0ZWd5IiwicG9zaXRpb25TdHJhdGVneSJdLG9mZnNldFg6WyJjZGtDb25uZWN0ZWRPdmVybGF5T2Zmc2V0WCIsIm9mZnNldFgiXSxvZmZzZXRZOlsiY2RrQ29ubmVjdGVkT3ZlcmxheU9mZnNldFkiLCJvZmZzZXRZIl0sd2lkdGg6WyJjZGtDb25uZWN0ZWRPdmVybGF5V2lkdGgiLCJ3aWR0aCJdLGhlaWdodDpbImNka0Nvbm5lY3RlZE92ZXJsYXlIZWlnaHQiLCJoZWlnaHQiXSxtaW5XaWR0aDpbImNka0Nvbm5lY3RlZE92ZXJsYXlNaW5XaWR0aCIsIm1pbldpZHRoIl0sbWluSGVpZ2h0OlsiY2RrQ29ubmVjdGVkT3ZlcmxheU1pbkhlaWdodCIsIm1pbkhlaWdodCJdLGJhY2tkcm9wQ2xhc3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzcyIsImJhY2tkcm9wQ2xhc3MiXSxwYW5lbENsYXNzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVBhbmVsQ2xhc3MiLCJwYW5lbENsYXNzIl0sdmlld3BvcnRNYXJnaW46WyJjZGtDb25uZWN0ZWRPdmVybGF5Vmlld3BvcnRNYXJnaW4iLCJ2aWV3cG9ydE1hcmdpbiJdLHNjcm9sbFN0cmF0ZWd5OlsiY2RrQ29ubmVjdGVkT3ZlcmxheVNjcm9sbFN0cmF0ZWd5Iiwic2Nyb2xsU3RyYXRlZ3kiXSxvcGVuOlsiY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW4iLCJvcGVuIl0sZGlzYWJsZUNsb3NlOlsiY2RrQ29ubmVjdGVkT3ZlcmxheURpc2FibGVDbG9zZSIsImRpc2FibGVDbG9zZSJdLHRyYW5zZm9ybU9yaWdpblNlbGVjdG9yOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVRyYW5zZm9ybU9yaWdpbk9uIiwidHJhbnNmb3JtT3JpZ2luU2VsZWN0b3IiXSxoYXNCYWNrZHJvcDpbImNka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcCIsImhhc0JhY2tkcm9wIl0sbG9ja1Bvc2l0aW9uOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUxvY2tQb3NpdGlvbiIsImxvY2tQb3NpdGlvbiJdLGZsZXhpYmxlRGltZW5zaW9uczpbImNka0Nvbm5lY3RlZE92ZXJsYXlGbGV4aWJsZURpbWVuc2lvbnMiLCJmbGV4aWJsZURpbWVuc2lvbnMiXSxncm93QWZ0ZXJPcGVuOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUdyb3dBZnRlck9wZW4iLCJncm93QWZ0ZXJPcGVuIl0scHVzaDpbImNka0Nvbm5lY3RlZE92ZXJsYXlQdXNoIiwicHVzaCJdfSxvdXRwdXRzOntiYWNrZHJvcENsaWNrOiJiYWNrZHJvcENsaWNrIixwb3NpdGlvbkNoYW5nZToicG9zaXRpb25DaGFuZ2UiLGF0dGFjaDoiYXR0YWNoIixkZXRhY2g6ImRldGFjaCIsb3ZlcmxheUtleWRvd246Im92ZXJsYXlLZXlkb3duIixvdmVybGF5T3V0c2lkZUNsaWNrOiJvdmVybGF5T3V0c2lkZUNsaWNrIn0sZXhwb3J0QXM6WyJjZGtDb25uZWN0ZWRPdmVybGF5Il0sc3RhbmRhbG9uZTohMCxmZWF0dXJlczpbcXRdfSksbn0pKCksdWJlPXtwcm92aWRlOnI5LGRlcHM6W09pXSx1c2VGYWN0b3J5OmZ1bmN0aW9uKG4pe3JldHVybigpPT5uLnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpfX0sRG89KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe3Byb3ZpZGVyczpbT2ksdWJlXSxpbXBvcnRzOltGdSxCbCxDZCxDZF19KSxufSkoKTtmdW5jdGlvbiBwYmUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJkaXYiLDIpKDEsImJ1dHRvbiIsMyksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIG5lKGUpLGllKHcoKS5hY3Rpb24oKSl9KSxUKDIpLGcoKSgpfWlmKDImbil7bGV0IGU9dygpO3YoMiksVmUoIiAiLGUuZGF0YS5hY3Rpb24sIiAiKX19dmFyIGhiZT1bImxhYmVsIl07ZnVuY3Rpb24gbWJlKG4sdCl7fXZhciBmYmU9TWF0aC5wb3coMiwzMSktMSxBaD1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX292ZXJsYXlSZWY9ZSx0aGlzLl9hZnRlckRpc21pc3NlZD1uZXcgRWUsdGhpcy5fYWZ0ZXJPcGVuZWQ9bmV3IEVlLHRoaXMuX29uQWN0aW9uPW5ldyBFZSx0aGlzLl9kaXNtaXNzZWRCeUFjdGlvbj0hMSx0aGlzLmNvbnRhaW5lckluc3RhbmNlPXQsdC5fb25FeGl0LnN1YnNjcmliZSgoKT0+dGhpcy5fZmluaXNoRGlzbWlzcygpKX1kaXNtaXNzKCl7dGhpcy5fYWZ0ZXJEaXNtaXNzZWQuY2xvc2VkfHx0aGlzLmNvbnRhaW5lckluc3RhbmNlLmV4aXQoKSxjbGVhclRpbWVvdXQodGhpcy5fZHVyYXRpb25UaW1lb3V0SWQpfWRpc21pc3NXaXRoQWN0aW9uKCl7dGhpcy5fb25BY3Rpb24uY2xvc2VkfHwodGhpcy5fZGlzbWlzc2VkQnlBY3Rpb249ITAsdGhpcy5fb25BY3Rpb24ubmV4dCgpLHRoaXMuX29uQWN0aW9uLmNvbXBsZXRlKCksdGhpcy5kaXNtaXNzKCkpLGNsZWFyVGltZW91dCh0aGlzLl9kdXJhdGlvblRpbWVvdXRJZCl9Y2xvc2VXaXRoQWN0aW9uKCl7dGhpcy5kaXNtaXNzV2l0aEFjdGlvbigpfV9kaXNtaXNzQWZ0ZXIodCl7dGhpcy5fZHVyYXRpb25UaW1lb3V0SWQ9c2V0VGltZW91dCgoKT0+dGhpcy5kaXNtaXNzKCksTWF0aC5taW4odCxmYmUpKX1fb3Blbigpe3RoaXMuX2FmdGVyT3BlbmVkLmNsb3NlZHx8KHRoaXMuX2FmdGVyT3BlbmVkLm5leHQoKSx0aGlzLl9hZnRlck9wZW5lZC5jb21wbGV0ZSgpKX1fZmluaXNoRGlzbWlzcygpe3RoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpLHRoaXMuX29uQWN0aW9uLmNsb3NlZHx8dGhpcy5fb25BY3Rpb24uY29tcGxldGUoKSx0aGlzLl9hZnRlckRpc21pc3NlZC5uZXh0KHtkaXNtaXNzZWRCeUFjdGlvbjp0aGlzLl9kaXNtaXNzZWRCeUFjdGlvbn0pLHRoaXMuX2FmdGVyRGlzbWlzc2VkLmNvbXBsZXRlKCksdGhpcy5fZGlzbWlzc2VkQnlBY3Rpb249ITF9YWZ0ZXJEaXNtaXNzZWQoKXtyZXR1cm4gdGhpcy5fYWZ0ZXJEaXNtaXNzZWR9YWZ0ZXJPcGVuZWQoKXtyZXR1cm4gdGhpcy5jb250YWluZXJJbnN0YW5jZS5fb25FbnRlcn1vbkFjdGlvbigpe3JldHVybiB0aGlzLl9vbkFjdGlvbn19LFgxPW5ldyB0ZSgiTWF0U25hY2tCYXJEYXRhIiksYmc9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnBvbGl0ZW5lc3M9ImFzc2VydGl2ZSIsdGhpcy5hbm5vdW5jZW1lbnRNZXNzYWdlPSIiLHRoaXMuZHVyYXRpb249MCx0aGlzLmRhdGE9bnVsbCx0aGlzLmhvcml6b250YWxQb3NpdGlvbj0iY2VudGVyIix0aGlzLnZlcnRpY2FsUG9zaXRpb249ImJvdHRvbSJ9fSxnYmU9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsIm1hdFNuYWNrQmFyTGFiZWwiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtbWRjLXNuYWNrLWJhci1sYWJlbCIsIm1kYy1zbmFja2Jhcl9fbGFiZWwiXX0pLG59KSgpLF9iZT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siIiwibWF0U25hY2tCYXJBY3Rpb25zIiwiIl1dLGhvc3RBdHRyczpbMSwibWF0LW1kYy1zbmFjay1iYXItYWN0aW9ucyIsIm1kYy1zbmFja2Jhcl9fYWN0aW9ucyJdfSksbn0pKCksYmJlPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJtYXRTbmFja0JhckFjdGlvbiIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1tZGMtc25hY2stYmFyLWFjdGlvbiIsIm1kYy1zbmFja2Jhcl9fYWN0aW9uIl19KSxufSkoKSx2YmU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkpe3RoaXMuc25hY2tCYXJSZWY9ZSx0aGlzLmRhdGE9aX1hY3Rpb24oKXt0aGlzLnNuYWNrQmFyUmVmLmRpc21pc3NXaXRoQWN0aW9uKCl9Z2V0IGhhc0FjdGlvbigpe3JldHVybiEhdGhpcy5kYXRhLmFjdGlvbn19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhBaCksQyhYMSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInNpbXBsZS1zbmFjay1iYXIiXV0saG9zdEF0dHJzOlsxLCJtYXQtbWRjLXNpbXBsZS1zbmFjay1iYXIiXSxleHBvcnRBczpbIm1hdFNuYWNrQmFyIl0sZGVjbHM6Myx2YXJzOjIsY29uc3RzOltbIm1hdFNuYWNrQmFyTGFiZWwiLCIiXSxbIm1hdFNuYWNrQmFyQWN0aW9ucyIsIiIsNCwibmdJZiJdLFsibWF0U25hY2tCYXJBY3Rpb25zIiwiIl0sWyJtYXQtYnV0dG9uIiwiIiwibWF0U25hY2tCYXJBY3Rpb24iLCIiLDMsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJkaXYiLDApLFQoMSksZygpLFMoMixwYmUsMywxLCJkaXYiLDEpKSwyJmUmJih2KDEpLFZlKCIgIixpLmRhdGEubWVzc2FnZSwiXG4iKSx2KDEpLGIoIm5nSWYiLGkuaGFzQWN0aW9uKSl9LGRlcGVuZGVuY2llczpbTmUsa2ksZ2JlLF9iZSxiYmVdLHN0eWxlczpbIi5tYXQtbWRjLXNpbXBsZS1zbmFjay1iYXJ7ZGlzcGxheTpmbGV4fSJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLHliZT17c25hY2tCYXJTdGF0ZTpmcigic3RhdGUiLFtTaSgidm9pZCwgaGlkZGVuIixybih7dHJhbnNmb3JtOiJzY2FsZSgwLjgpIixvcGFjaXR5OjB9KSksU2koInZpc2libGUiLHJuKHt0cmFuc2Zvcm06InNjYWxlKDEpIixvcGFjaXR5OjF9KSksYmkoIiogPT4gdmlzaWJsZSIsTWkoIjE1MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpIikpLGJpKCIqID0+IHZvaWQsICogPT4gaGlkZGVuIixNaSgiNzVtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDEsIDEpIixybih7b3BhY2l0eTowfSkpKV0pfSx4YmU9MCxDYmU9KCgpPT57Y2xhc3MgbiBleHRlbmRzIE51e2NvbnN0cnVjdG9yKGUsaSxyLG8sYSl7c3VwZXIoKSx0aGlzLl9uZ1pvbmU9ZSx0aGlzLl9lbGVtZW50UmVmPWksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9cix0aGlzLl9wbGF0Zm9ybT1vLHRoaXMuc25hY2tCYXJDb25maWc9YSx0aGlzLl9kb2N1bWVudD0kbihOdCksdGhpcy5fdHJhY2tlZE1vZGFscz1uZXcgU2V0LHRoaXMuX2Fubm91bmNlRGVsYXk9MTUwLHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9vbkFubm91bmNlPW5ldyBFZSx0aGlzLl9vbkV4aXQ9bmV3IEVlLHRoaXMuX29uRW50ZXI9bmV3IEVlLHRoaXMuX2FuaW1hdGlvblN0YXRlPSJ2b2lkIix0aGlzLl9saXZlRWxlbWVudElkPSJtYXQtc25hY2stYmFyLWNvbnRhaW5lci1saXZlLSIreGJlKyssdGhpcy5hdHRhY2hEb21Qb3J0YWw9cz0+e3RoaXMuX2Fzc2VydE5vdEF0dGFjaGVkKCk7bGV0IGw9dGhpcy5fcG9ydGFsT3V0bGV0LmF0dGFjaERvbVBvcnRhbChzKTtyZXR1cm4gdGhpcy5fYWZ0ZXJQb3J0YWxBdHRhY2hlZCgpLGx9LHRoaXMuX2xpdmU9ImFzc2VydGl2ZSIhPT1hLnBvbGl0ZW5lc3N8fGEuYW5ub3VuY2VtZW50TWVzc2FnZT8ib2ZmIj09PWEucG9saXRlbmVzcz8ib2ZmIjoicG9saXRlIjoiYXNzZXJ0aXZlIix0aGlzLl9wbGF0Zm9ybS5GSVJFRk9YJiYoInBvbGl0ZSI9PT10aGlzLl9saXZlJiYodGhpcy5fcm9sZT0ic3RhdHVzIiksImFzc2VydGl2ZSI9PT10aGlzLl9saXZlJiYodGhpcy5fcm9sZT0iYWxlcnQiKSl9YXR0YWNoQ29tcG9uZW50UG9ydGFsKGUpe3RoaXMuX2Fzc2VydE5vdEF0dGFjaGVkKCk7bGV0IGk9dGhpcy5fcG9ydGFsT3V0bGV0LmF0dGFjaENvbXBvbmVudFBvcnRhbChlKTtyZXR1cm4gdGhpcy5fYWZ0ZXJQb3J0YWxBdHRhY2hlZCgpLGl9YXR0YWNoVGVtcGxhdGVQb3J0YWwoZSl7dGhpcy5fYXNzZXJ0Tm90QXR0YWNoZWQoKTtsZXQgaT10aGlzLl9wb3J0YWxPdXRsZXQuYXR0YWNoVGVtcGxhdGVQb3J0YWwoZSk7cmV0dXJuIHRoaXMuX2FmdGVyUG9ydGFsQXR0YWNoZWQoKSxpfW9uQW5pbWF0aW9uRW5kKGUpe2xldHtmcm9tU3RhdGU6aSx0b1N0YXRlOnJ9PWU7aWYoKCJ2b2lkIj09PXImJiJ2b2lkIiE9PWl8fCJoaWRkZW4iPT09cikmJnRoaXMuX2NvbXBsZXRlRXhpdCgpLCJ2aXNpYmxlIj09PXIpe2xldCBvPXRoaXMuX29uRW50ZXI7dGhpcy5fbmdab25lLnJ1bigoKT0+e28ubmV4dCgpLG8uY29tcGxldGUoKX0pfX1lbnRlcigpe3RoaXMuX2Rlc3Ryb3llZHx8KHRoaXMuX2FuaW1hdGlvblN0YXRlPSJ2aXNpYmxlIix0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCksdGhpcy5fc2NyZWVuUmVhZGVyQW5ub3VuY2UoKSl9ZXhpdCgpe3JldHVybiB0aGlzLl9uZ1pvbmUucnVuKCgpPT57dGhpcy5fYW5pbWF0aW9uU3RhdGU9ImhpZGRlbiIsdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF0LWV4aXQiLCIiKSxjbGVhclRpbWVvdXQodGhpcy5fYW5ub3VuY2VUaW1lb3V0SWQpfSksdGhpcy5fb25FeGl0fW5nT25EZXN0cm95KCl7dGhpcy5fZGVzdHJveWVkPSEwLHRoaXMuX2NsZWFyRnJvbU1vZGFscygpLHRoaXMuX2NvbXBsZXRlRXhpdCgpfV9jb21wbGV0ZUV4aXQoKXt0aGlzLl9uZ1pvbmUub25NaWNyb3Rhc2tFbXB0eS5waXBlKEx0KDEpKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLl9uZ1pvbmUucnVuKCgpPT57dGhpcy5fb25FeGl0Lm5leHQoKSx0aGlzLl9vbkV4aXQuY29tcGxldGUoKX0pfSl9X2FmdGVyUG9ydGFsQXR0YWNoZWQoKXtsZXQgZT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsaT10aGlzLnNuYWNrQmFyQ29uZmlnLnBhbmVsQ2xhc3M7aSYmKEFycmF5LmlzQXJyYXkoaSk/aS5mb3JFYWNoKHI9PmUuY2xhc3NMaXN0LmFkZChyKSk6ZS5jbGFzc0xpc3QuYWRkKGkpKSx0aGlzLl9leHBvc2VUb01vZGFscygpfV9leHBvc2VUb01vZGFscygpe2xldCBlPXRoaXMuX2xpdmVFbGVtZW50SWQsaT10aGlzLl9kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdib2R5ID4gLmNkay1vdmVybGF5LWNvbnRhaW5lciBbYXJpYS1tb2RhbD0idHJ1ZSJdJyk7Zm9yKGxldCByPTA7cjxpLmxlbmd0aDtyKyspe2xldCBvPWlbcl0sYT1vLmdldEF0dHJpYnV0ZSgiYXJpYS1vd25zIik7dGhpcy5fdHJhY2tlZE1vZGFscy5hZGQobyksYT8tMT09PWEuaW5kZXhPZihlKSYmby5zZXRBdHRyaWJ1dGUoImFyaWEtb3ducyIsYSsiICIrZSk6by5zZXRBdHRyaWJ1dGUoImFyaWEtb3ducyIsZSl9fV9jbGVhckZyb21Nb2RhbHMoKXt0aGlzLl90cmFja2VkTW9kYWxzLmZvckVhY2goZT0+e2xldCBpPWUuZ2V0QXR0cmlidXRlKCJhcmlhLW93bnMiKTtpZihpKXtsZXQgcj1pLnJlcGxhY2UodGhpcy5fbGl2ZUVsZW1lbnRJZCwiIikudHJpbSgpO3IubGVuZ3RoPjA/ZS5zZXRBdHRyaWJ1dGUoImFyaWEtb3ducyIscik6ZS5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtb3ducyIpfX0pLHRoaXMuX3RyYWNrZWRNb2RhbHMuY2xlYXIoKX1fYXNzZXJ0Tm90QXR0YWNoZWQoKXt0aGlzLl9wb3J0YWxPdXRsZXQuaGFzQXR0YWNoZWQoKX1fc2NyZWVuUmVhZGVyQW5ub3VuY2UoKXt0aGlzLl9hbm5vdW5jZVRpbWVvdXRJZHx8dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57dGhpcy5fYW5ub3VuY2VUaW1lb3V0SWQ9c2V0VGltZW91dCgoKT0+e2xldCBlPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCJbYXJpYS1oaWRkZW5dIiksaT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigiW2FyaWEtbGl2ZV0iKTtpZihlJiZpKXtsZXQgcj1udWxsO3RoaXMuX3BsYXRmb3JtLmlzQnJvd3NlciYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZlLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpJiYocj1kb2N1bWVudC5hY3RpdmVFbGVtZW50KSxlLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKSxpLmFwcGVuZENoaWxkKGUpLHI/LmZvY3VzKCksdGhpcy5fb25Bbm5vdW5jZS5uZXh0KCksdGhpcy5fb25Bbm5vdW5jZS5jb21wbGV0ZSgpfX0sdGhpcy5fYW5ub3VuY2VEZWxheSl9KX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhvdCksQyh4ZSksQyhRdCksQyhWbiksQyhiZykpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHZpZXdRdWVyeTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmVWUoYmEsNyksMiZlKXtsZXQgcjtiZShyPXZlKCkpJiYoaS5fcG9ydGFsT3V0bGV0PXIuZmlyc3QpfX0sZmVhdHVyZXM6W1hlXX0pLG59KSgpLE1iZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgQ2Jle19hZnRlclBvcnRhbEF0dGFjaGVkKCl7c3VwZXIuX2FmdGVyUG9ydGFsQXR0YWNoZWQoKTtsZXQgZT10aGlzLl9sYWJlbC5uYXRpdmVFbGVtZW50LGk9Im1kYy1zbmFja2Jhcl9fbGFiZWwiO2UuY2xhc3NMaXN0LnRvZ2dsZShpLCFlLnF1ZXJ5U2VsZWN0b3IoYC4ke2l9YCkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuKHR8fCh0PVhuKG4pKSkoaXx8bil9fSgpLG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sibWF0LXNuYWNrLWJhci1jb250YWluZXIiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiZVZShoYmUsNyksMiZlKXtsZXQgcjtiZShyPXZlKCkpJiYoaS5fbGFiZWw9ci5maXJzdCl9fSxob3N0QXR0cnM6WzEsIm1kYy1zbmFja2JhciIsIm1hdC1tZGMtc25hY2stYmFyLWNvbnRhaW5lciIsIm1kYy1zbmFja2Jhci0tb3BlbiJdLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MSZlJiZVTSgiQHN0YXRlLmRvbmUiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uQW5pbWF0aW9uRW5kKG8pfSksMiZlJiZXTSgiQHN0YXRlIixpLl9hbmltYXRpb25TdGF0ZSl9LGZlYXR1cmVzOltYZV0sZGVjbHM6Nix2YXJzOjMsY29uc3RzOltbMSwibWRjLXNuYWNrYmFyX19zdXJmYWNlIl0sWzEsIm1hdC1tZGMtc25hY2stYmFyLWxhYmVsIl0sWyJsYWJlbCIsIiJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIl0sWyJjZGtQb3J0YWxPdXRsZXQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImRpdiIsMCkoMSwiZGl2IiwxLDIpKDMsImRpdiIsMyksUyg0LG1iZSwwLDAsIm5nLXRlbXBsYXRlIiw0KSxnKCksayg1LCJkaXYiKSxnKCkoKSksMiZlJiYodig1KSxCZSgiYXJpYS1saXZlIixpLl9saXZlKSgicm9sZSIsaS5fcm9sZSkoImlkIixpLl9saXZlRWxlbWVudElkKSl9LGRlcGVuZGVuY2llczpbYmFdLHN0eWxlczpbJy5tZGMtc25hY2tiYXJ7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmZpeGVkO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwb2ludGVyLWV2ZW50czpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApfS5tZGMtc25hY2tiYXItLW9wZW5pbmcsLm1kYy1zbmFja2Jhci0tb3BlbiwubWRjLXNuYWNrYmFyLS1jbG9zaW5ne2Rpc3BsYXk6ZmxleH0ubWRjLXNuYWNrYmFyLS1vcGVuIC5tZGMtc25hY2tiYXJfX2xhYmVsLC5tZGMtc25hY2tiYXItLW9wZW4gLm1kYy1zbmFja2Jhcl9fYWN0aW9uc3t2aXNpYmlsaXR5OnZpc2libGV9Lm1kYy1zbmFja2Jhcl9fc3VyZmFjZXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjhweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2JveC1zaXppbmc6Ym9yZGVyLWJveDt0cmFuc2Zvcm06c2NhbGUoMC44KTtvcGFjaXR5OjB9Lm1kYy1zbmFja2Jhcl9fc3VyZmFjZTo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMCk7Ym9yZGVyLXJhZGl1czppbmhlcml0O2NvbnRlbnQ6IiI7cG9pbnRlci1ldmVudHM6bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsubWRjLXNuYWNrYmFyX19zdXJmYWNlOjpiZWZvcmV7Ym9yZGVyLWNvbG9yOkNhbnZhc1RleHR9fVtkaXI9cnRsXSAubWRjLXNuYWNrYmFyX19zdXJmYWNlLC5tZGMtc25hY2tiYXJfX3N1cmZhY2VbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjB9Lm1kYy1zbmFja2Jhci0tb3BlbiAubWRjLXNuYWNrYmFyX19zdXJmYWNle3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6YXV0b30ubWRjLXNuYWNrYmFyLS1jbG9zaW5nIC5tZGMtc25hY2tiYXJfX3N1cmZhY2V7dHJhbnNmb3JtOnNjYWxlKDEpfS5tZGMtc25hY2tiYXJfX2xhYmVse3BhZGRpbmctbGVmdDoxNnB4O3BhZGRpbmctcmlnaHQ6OHB4O3dpZHRoOjEwMCU7ZmxleC1ncm93OjE7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO3Zpc2liaWxpdHk6aGlkZGVuO3BhZGRpbmctdG9wOjE0cHg7cGFkZGluZy1ib3R0b206MTRweH1bZGlyPXJ0bF0gLm1kYy1zbmFja2Jhcl9fbGFiZWwsLm1kYy1zbmFja2Jhcl9fbGFiZWxbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjE2cHh9Lm1kYy1zbmFja2Jhcl9fbGFiZWw6OmJlZm9yZXtkaXNwbGF5OmlubGluZTtjb250ZW50OmF0dHIoZGF0YS1tZGMtc25hY2tiYXItbGFiZWwtdGV4dCl9Lm1kYy1zbmFja2Jhcl9fYWN0aW9uc3tkaXNwbGF5OmZsZXg7ZmxleC1zaHJpbms6MDthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O3Zpc2liaWxpdHk6aGlkZGVufS5tZGMtc25hY2tiYXJfX2FjdGlvbisubWRjLXNuYWNrYmFyX19kaXNtaXNze21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6MH1bZGlyPXJ0bF0gLm1kYy1zbmFja2Jhcl9fYWN0aW9uKy5tZGMtc25hY2tiYXJfX2Rpc21pc3MsLm1kYy1zbmFja2Jhcl9fYWN0aW9uKy5tZGMtc25hY2tiYXJfX2Rpc21pc3NbZGlyPXJ0bF17bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6OHB4fS5tYXQtbWRjLXNuYWNrLWJhci1jb250YWluZXJ7bWFyZ2luOjhweDtwb3NpdGlvbjpzdGF0aWN9Lm1hdC1tZGMtc25hY2stYmFyLWNvbnRhaW5lciAubWRjLXNuYWNrYmFyX19zdXJmYWNle21pbi13aWR0aDozNDRweH1AbWVkaWEobWF4LXdpZHRoOiA0ODBweCksKG1heC13aWR0aDogMzQ0cHgpey5tYXQtbWRjLXNuYWNrLWJhci1jb250YWluZXIgLm1kYy1zbmFja2Jhcl9fc3VyZmFjZXttaW4td2lkdGg6MTAwJX19QG1lZGlhKG1heC13aWR0aDogNDgwcHgpLChtYXgtd2lkdGg6IDM0NHB4KXsubWF0LW1kYy1zbmFjay1iYXItY29udGFpbmVye3dpZHRoOjEwMHZ3fX0ubWF0LW1kYy1zbmFjay1iYXItY29udGFpbmVyIC5tZGMtc25hY2tiYXJfX3N1cmZhY2V7bWF4LXdpZHRoOjY3MnB4fS5tYXQtbWRjLXNuYWNrLWJhci1jb250YWluZXIgLm1kYy1zbmFja2Jhcl9fc3VyZmFjZXtib3gtc2hhZG93OjBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LW1kYy1zbmFjay1iYXItY29udGFpbmVyIC5tZGMtc25hY2tiYXJfX2Rpc21pc3MgLm1kYy1idXR0b25fX2ljb257Zm9udC1zaXplOnZhcigtLW1kYy1pY29uLWJ1dHRvbi1pY29uLXNpemUsIHZhcigtLW1kYy1zbmFja2Jhci1pY29uLXNpemUsIDI0cHgpKX0ubWF0LW1kYy1zbmFjay1iYXItY29udGFpbmVyIC5tZGMtc25hY2tiYXJfX2Rpc21pc3Mgc3ZnLC5tYXQtbWRjLXNuYWNrLWJhci1jb250YWluZXIgLm1kYy1zbmFja2Jhcl9fZGlzbWlzcyBpbWd7d2lkdGg6dmFyKC0tbWRjLWljb24tYnV0dG9uLWljb24tc2l6ZSwgdmFyKC0tbWRjLXNuYWNrYmFyLWljb24tc2l6ZSwgMjRweCkpO2hlaWdodDp2YXIoLS1tZGMtaWNvbi1idXR0b24taWNvbi1zaXplLCB2YXIoLS1tZGMtc25hY2tiYXItaWNvbi1zaXplLCAyNHB4KSl9Lm1hdC1tZGMtc25hY2stYmFyLWNvbnRhaW5lciAubWRjLXNuYWNrYmFyX19zdXJmYWNle2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLXNuYWNrYmFyLWNvbnRhaW5lci1jb2xvciwgaW5oZXJpdCl9Lm1hdC1tZGMtc25hY2stYmFyLWNvbnRhaW5lciAubWRjLXNuYWNrYmFyX19zdXJmYWNle2JvcmRlci1yYWRpdXM6dmFyKC0tbWRjLXNuYWNrYmFyLWNvbnRhaW5lci1zaGFwZSwgdmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpKX0ubWF0LW1kYy1zbmFjay1iYXItY29udGFpbmVyIC5tZGMtc25hY2tiYXJfX2xhYmVse2NvbG9yOnZhcigtLW1kYy1zbmFja2Jhci1zdXBwb3J0aW5nLXRleHQtY29sb3IsIGluaGVyaXQpfS5tYXQtbWRjLXNuYWNrLWJhci1jb250YWluZXIgLm1kYy1zbmFja2Jhcl9fbGFiZWx7Zm9udC1zaXplOnZhcigtLW1kYy1zbmFja2Jhci1zdXBwb3J0aW5nLXRleHQtc2l6ZSwgaW5oZXJpdCk7Zm9udC1mYW1pbHk6dmFyKC0tbWRjLXNuYWNrYmFyLXN1cHBvcnRpbmctdGV4dC1mb250LCBpbmhlcml0KTtmb250LXdlaWdodDp2YXIoLS1tZGMtc25hY2tiYXItc3VwcG9ydGluZy10ZXh0LXdlaWdodCwgaW5oZXJpdCk7bGluZS1oZWlnaHQ6dmFyKC0tbWRjLXNuYWNrYmFyLXN1cHBvcnRpbmctdGV4dC1saW5lLWhlaWdodCwgaW5oZXJpdCl9Lm1hdC1tZGMtc25hY2stYmFyLWNvbnRhaW5lciAubWF0LW1kYy1idXR0b24ubWF0LW1kYy1zbmFjay1iYXItYWN0aW9uOm5vdCg6ZGlzYWJsZWQpe2NvbG9yOnZhcigtLW1hdC1tZGMtc25hY2stYmFyLWJ1dHRvbi1jb2xvciwgdHJhbnNwYXJlbnQpOy0tbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUtY29sb3I6IGN1cnJlbnRDb2xvcn0ubWF0LW1kYy1zbmFjay1iYXItY29udGFpbmVyIC5tYXQtbWRjLWJ1dHRvbi5tYXQtbWRjLXNuYWNrLWJhci1hY3Rpb246bm90KDpkaXNhYmxlZCkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcjtvcGFjaXR5Oi4xfS5tYXQtbWRjLXNuYWNrLWJhci1jb250YWluZXIgLm1kYy1zbmFja2Jhcl9fbGFiZWw6OmJlZm9yZXtkaXNwbGF5Om5vbmV9Lm1hdC1tZGMtc25hY2stYmFyLWhhbmRzZXQsLm1hdC1tZGMtc25hY2stYmFyLWNvbnRhaW5lciwubWF0LW1kYy1zbmFjay1iYXItbGFiZWx7ZmxleDoxIDEgYXV0b30ubWF0LW1kYy1zbmFjay1iYXItaGFuZHNldCAubWRjLXNuYWNrYmFyX19zdXJmYWNle3dpZHRoOjEwMCV9J10sZW5jYXBzdWxhdGlvbjoyLGRhdGE6e2FuaW1hdGlvbjpbeWJlLnNuYWNrQmFyU3RhdGVdfX0pLG59KSgpLEEyPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltEbyxCbCxEZSxLbixkbixkbl19KSxufSkoKSxvOT1uZXcgdGUoIm1hdC1zbmFjay1iYXItZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbigpe3JldHVybiBuZXcgYmd9fSksU2JlPSgoKT0+e2NsYXNzIG57Z2V0IF9vcGVuZWRTbmFja0JhclJlZigpe2xldCBlPXRoaXMuX3BhcmVudFNuYWNrQmFyO3JldHVybiBlP2UuX29wZW5lZFNuYWNrQmFyUmVmOnRoaXMuX3NuYWNrQmFyUmVmQXRUaGlzTGV2ZWx9c2V0IF9vcGVuZWRTbmFja0JhclJlZihlKXt0aGlzLl9wYXJlbnRTbmFja0Jhcj90aGlzLl9wYXJlbnRTbmFja0Jhci5fb3BlbmVkU25hY2tCYXJSZWY9ZTp0aGlzLl9zbmFja0JhclJlZkF0VGhpc0xldmVsPWV9Y29uc3RydWN0b3IoZSxpLHIsbyxhLHMpe3RoaXMuX292ZXJsYXk9ZSx0aGlzLl9saXZlPWksdGhpcy5faW5qZWN0b3I9cix0aGlzLl9icmVha3BvaW50T2JzZXJ2ZXI9byx0aGlzLl9wYXJlbnRTbmFja0Jhcj1hLHRoaXMuX2RlZmF1bHRDb25maWc9cyx0aGlzLl9zbmFja0JhclJlZkF0VGhpc0xldmVsPW51bGx9b3BlbkZyb21Db21wb25lbnQoZSxpKXtyZXR1cm4gdGhpcy5fYXR0YWNoKGUsaSl9b3BlbkZyb21UZW1wbGF0ZShlLGkpe3JldHVybiB0aGlzLl9hdHRhY2goZSxpKX1vcGVuKGUsaT0iIixyKXtsZXQgbz17Li4udGhpcy5fZGVmYXVsdENvbmZpZywuLi5yfTtyZXR1cm4gby5kYXRhPXttZXNzYWdlOmUsYWN0aW9uOml9LG8uYW5ub3VuY2VtZW50TWVzc2FnZT09PWUmJihvLmFubm91bmNlbWVudE1lc3NhZ2U9dm9pZCAwKSx0aGlzLm9wZW5Gcm9tQ29tcG9uZW50KHRoaXMuc2ltcGxlU25hY2tCYXJDb21wb25lbnQsbyl9ZGlzbWlzcygpe3RoaXMuX29wZW5lZFNuYWNrQmFyUmVmJiZ0aGlzLl9vcGVuZWRTbmFja0JhclJlZi5kaXNtaXNzKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zbmFja0JhclJlZkF0VGhpc0xldmVsJiZ0aGlzLl9zbmFja0JhclJlZkF0VGhpc0xldmVsLmRpc21pc3MoKX1fYXR0YWNoU25hY2tCYXJDb250YWluZXIoZSxpKXtsZXQgbz13aS5jcmVhdGUoe3BhcmVudDppJiZpLnZpZXdDb250YWluZXJSZWYmJmkudmlld0NvbnRhaW5lclJlZi5pbmplY3Rvcnx8dGhpcy5faW5qZWN0b3IscHJvdmlkZXJzOlt7cHJvdmlkZTpiZyx1c2VWYWx1ZTppfV19KSxhPW5ldyBMbCh0aGlzLnNuYWNrQmFyQ29udGFpbmVyQ29tcG9uZW50LGkudmlld0NvbnRhaW5lclJlZixvKSxzPWUuYXR0YWNoKGEpO3JldHVybiBzLmluc3RhbmNlLnNuYWNrQmFyQ29uZmlnPWkscy5pbnN0YW5jZX1fYXR0YWNoKGUsaSl7bGV0IHI9ey4uLm5ldyBiZywuLi50aGlzLl9kZWZhdWx0Q29uZmlnLC4uLml9LG89dGhpcy5fY3JlYXRlT3ZlcmxheShyKSxhPXRoaXMuX2F0dGFjaFNuYWNrQmFyQ29udGFpbmVyKG8scikscz1uZXcgQWgoYSxvKTtpZihlIGluc3RhbmNlb2Ygb2kpe2xldCBsPW5ldyBUbyhlLG51bGwseyRpbXBsaWNpdDpyLmRhdGEsc25hY2tCYXJSZWY6c30pO3MuaW5zdGFuY2U9YS5hdHRhY2hUZW1wbGF0ZVBvcnRhbChsKX1lbHNle2xldCBsPXRoaXMuX2NyZWF0ZUluamVjdG9yKHIscyksYz1uZXcgTGwoZSx2b2lkIDAsbCksZD1hLmF0dGFjaENvbXBvbmVudFBvcnRhbChjKTtzLmluc3RhbmNlPWQuaW5zdGFuY2V9cmV0dXJuIHRoaXMuX2JyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKCIobWF4LXdpZHRoOiA1OTkuOThweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIikucGlwZShpdChvLmRldGFjaG1lbnRzKCkpKS5zdWJzY3JpYmUobD0+e28ub3ZlcmxheUVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSh0aGlzLmhhbmRzZXRDc3NDbGFzcyxsLm1hdGNoZXMpfSksci5hbm5vdW5jZW1lbnRNZXNzYWdlJiZhLl9vbkFubm91bmNlLnN1YnNjcmliZSgoKT0+e3RoaXMuX2xpdmUuYW5ub3VuY2Uoci5hbm5vdW5jZW1lbnRNZXNzYWdlLHIucG9saXRlbmVzcyl9KSx0aGlzLl9hbmltYXRlU25hY2tCYXIocyxyKSx0aGlzLl9vcGVuZWRTbmFja0JhclJlZj1zLHRoaXMuX29wZW5lZFNuYWNrQmFyUmVmfV9hbmltYXRlU25hY2tCYXIoZSxpKXtlLmFmdGVyRGlzbWlzc2VkKCkuc3Vic2NyaWJlKCgpPT57dGhpcy5fb3BlbmVkU25hY2tCYXJSZWY9PWUmJih0aGlzLl9vcGVuZWRTbmFja0JhclJlZj1udWxsKSxpLmFubm91bmNlbWVudE1lc3NhZ2UmJnRoaXMuX2xpdmUuY2xlYXIoKX0pLHRoaXMuX29wZW5lZFNuYWNrQmFyUmVmPyh0aGlzLl9vcGVuZWRTbmFja0JhclJlZi5hZnRlckRpc21pc3NlZCgpLnN1YnNjcmliZSgoKT0+e2UuY29udGFpbmVySW5zdGFuY2UuZW50ZXIoKX0pLHRoaXMuX29wZW5lZFNuYWNrQmFyUmVmLmRpc21pc3MoKSk6ZS5jb250YWluZXJJbnN0YW5jZS5lbnRlcigpLGkuZHVyYXRpb24mJmkuZHVyYXRpb24+MCYmZS5hZnRlck9wZW5lZCgpLnN1YnNjcmliZSgoKT0+ZS5fZGlzbWlzc0FmdGVyKGkuZHVyYXRpb24pKX1fY3JlYXRlT3ZlcmxheShlKXtsZXQgaT1uZXcgZWw7aS5kaXJlY3Rpb249ZS5kaXJlY3Rpb247bGV0IHI9dGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLG89InJ0bCI9PT1lLmRpcmVjdGlvbixhPSJsZWZ0Ij09PWUuaG9yaXpvbnRhbFBvc2l0aW9ufHwic3RhcnQiPT09ZS5ob3Jpem9udGFsUG9zaXRpb24mJiFvfHwiZW5kIj09PWUuaG9yaXpvbnRhbFBvc2l0aW9uJiZvLHM9IWEmJiJjZW50ZXIiIT09ZS5ob3Jpem9udGFsUG9zaXRpb247cmV0dXJuIGE/ci5sZWZ0KCIwIik6cz9yLnJpZ2h0KCIwIik6ci5jZW50ZXJIb3Jpem9udGFsbHkoKSwidG9wIj09PWUudmVydGljYWxQb3NpdGlvbj9yLnRvcCgiMCIpOnIuYm90dG9tKCIwIiksaS5wb3NpdGlvblN0cmF0ZWd5PXIsdGhpcy5fb3ZlcmxheS5jcmVhdGUoaSl9X2NyZWF0ZUluamVjdG9yKGUsaSl7cmV0dXJuIHdpLmNyZWF0ZSh7cGFyZW50OmUmJmUudmlld0NvbnRhaW5lclJlZiYmZS52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yfHx0aGlzLl9pbmplY3Rvcixwcm92aWRlcnM6W3twcm92aWRlOkFoLHVzZVZhbHVlOml9LHtwcm92aWRlOlgxLHVzZVZhbHVlOmUuZGF0YX1dfSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oT2kpLE8oSHYpLE8od2kpLE8oTnYpLE8obiwxMiksTyhvOSkpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLGE5PSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBTYmV7Y29uc3RydWN0b3IoZSxpLHIsbyxhLHMpe3N1cGVyKGUsaSxyLG8sYSxzKSx0aGlzLnNpbXBsZVNuYWNrQmFyQ29tcG9uZW50PXZiZSx0aGlzLnNuYWNrQmFyQ29udGFpbmVyQ29tcG9uZW50PU1iZSx0aGlzLmhhbmRzZXRDc3NDbGFzcz0ibWF0LW1kYy1zbmFjay1iYXItaGFuZHNldCJ9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8oT2kpLE8oSHYpLE8od2kpLE8oTnYpLE8obiwxMiksTyhvOSkpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhYyxwcm92aWRlZEluOkEyfSksbn0pKCksRWJlPS9bXFxeJC4qKz8oKVtcXXt9fF0vZyxsOT0iXFx1MDAwMC1cXHUwMDIwXFx1MDA3Zi1cXHUwMDlmIixEYmU9bmV3IFJlZ0V4cCgiKD86W2EtekEtWl1bYS16QS1aMC05Ky4tXXsyLH06XFwvXFwvfGRhdGE6fHd3d1xcLilbXlxccyIrbDkrJyJdezIsfVteXFxzJytsOSsiXCInKX1cXF0sOjsuIT9dIiwiZ3UiKTtmdW5jdGlvbiBkOShuKXtyZXR1cm4gZnVuY3Rpb24obix0KXt0LmZsYWdzLmluY2x1ZGVzKCJnIil8fCh0PW5ldyBSZWdFeHAodCx0LmZsYWdzKyJnIikpO2xldCBlPVtdLGk9MDtmb3IobGV0IHIgb2Ygbi5tYXRjaEFsbCh0KSl7bGV0IG89ci5pbmRleCxhPXJbMF07bz5pJiZlLnB1c2goe2luZGV4OmksdGV4dDpuLnN1YnN0cmluZyhpLG8pLG1hdGNoZXNSZWdleDohMX0pLGUucHVzaCh7aW5kZXg6byx0ZXh0OmEsbWF0Y2hlc1JlZ2V4OiEwfSksaT1vK2EubGVuZ3RofXJldHVybiBuLmxlbmd0aD5pJiZlLnB1c2goe2luZGV4OmksdGV4dDpuLnN1YnN0cmluZyhpLG4ubGVuZ3RoKSxtYXRjaGVzUmVnZXg6ITF9KSxlfShuLERiZSkubWFwKCh7bWF0Y2hlc1JlZ2V4OnQsdGV4dDplfSk9Pih7aXNVUkw6dCx0ZXh0OmV9KSl9ZnVuY3Rpb24gSWJlKG4sdCl7aWYoMSZuJiYoR3QoMCksVCgxKSxXdCgpKSwyJm4pe2xldCBlPXcoKS4kaW1wbGljaXQ7digxKSxWZSgiICIsZS50ZXh0LCIgIil9fWZ1bmN0aW9uIEFiZShuLHQpe2lmKDEmbiYmKGYoMCwiYSIsNyksVCgxKSxnKCkpLDImbil7bGV0IGU9dygpLiRpbXBsaWNpdDtaaSgiaHJlZiIsZS50ZXh0LFZzKSx2KDEpLGt0KGUudGV4dCl9fWZ1bmN0aW9uIFJiZShuLHQpe2lmKDEmbiYmKEd0KDApLFMoMSxJYmUsMiwxLCJuZy1jb250YWluZXIiLDUpLFMoMixBYmUsMiwyLCJuZy10ZW1wbGF0ZSIsbnVsbCw2LGp0KSxXdCgpKSwyJm4pe2xldCBlPXQuJGltcGxpY2l0LGk9c3QoMyk7digxKSxiKCJuZ0lmIiwhZS5pc1VSTCkoIm5nSWZFbHNlIixpKX19ZnVuY3Rpb24gUGJlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiYnV0dG9uIiw4KSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gbmUoZSksaWUodygpLm9uQWN0aW9uQnV0dG9uQ2xpY2tlZCgpKX0pLFQoMSksZygpfWlmKDImbil7bGV0IGU9dygpO3YoMSksVmUoIiAiLGUuYWxlcnQuZm9sbG93dXBBY3Rpb24ubG9jYWxpemVkTGFiZWwsIiAiKX19dmFyIHU5PSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIpe3RoaXMuc25hY2tCYXJSZWY9ZSx0aGlzLnVua25vd25EYXRhPWksdGhpcy5zdG9yZT1yLHRoaXMuc3BsaXRCeVVSTD1kOSx0aGlzLmFsZXJ0PWl9YXN5bmMgb25BY3Rpb25CdXR0b25DbGlja2VkKCl7dGhpcy5zbmFja0JhclJlZi5kaXNtaXNzKCk7bGV0IGU9YXdhaXQgdGhpcy5hbGVydC5mb2xsb3d1cEFjdGlvbi5nZXRGb2xsb3d1cEFjdGlvbigpO3RoaXMuc3RvcmUuZGlzcGF0Y2goZSl9b25DbG9zZUJ1dHRvbkNsaWNrZWQoKXt0aGlzLnNuYWNrQmFyUmVmLmRpc21pc3MoKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhBaCksQyhYMSksQyhJZSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImFsZXJ0LWRpc3BsYXktc25hY2tiYXIiXV0sZGVjbHM6Nix2YXJzOjIsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIHQ9JGxvY2FsaXplYDpBIGJ1dHRvbiB0byBjbG9zZSB0aGUgc25hY2tiYXIgbWVzc2FnZeKQn2VhNGQ5ZmU2MTQyMGEzZmNlODFjZjU0YzRjNjE1ZTNjMTljNjQ2YTbikJ8xNTM2MDg3NTE5NzQzNzA3MzYyOkRpc21pc3NgLFtbMSwibWVzc2FnZSJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY29udHJvbHMiXSxbIm1hdC1idXR0b24iLCIiLCJjbGFzcyIsImZvbGxvd3VwLWJ1dHRvbiIsMywiY2xpY2siLDQsIm5nSWYiXSxbIm1hdC1idXR0b24iLCIiLCJhcmlhLWxhYmVsIix0LDEsImRpc21pc3MtYnV0dG9uIiwzLCJjbGljayJdLFs0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImxpbmtQaWVjZSIsIiJdLFsicmVsIiwibm9yZWZlcnJlciBub29wZW5lciIsInRhcmdldCIsIl9ibGFuayIsMywiaHJlZiJdLFsibWF0LWJ1dHRvbiIsIiIsMSwiZm9sbG93dXAtYnV0dG9uIiwzLCJjbGljayJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImRpdiIsMCksUygxLFJiZSw0LDIsIm5nLWNvbnRhaW5lciIsMSksZygpLGYoMiwiZGl2IiwyKSxTKDMsUGJlLDIsMSwiYnV0dG9uIiwzKSxmKDQsImJ1dHRvbiIsNCksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25DbG9zZUJ1dHRvbkNsaWNrZWQoKX0pLFQoNSwiIERpc21pc3MgIiksZygpKCkpLDImZSYmKHYoMSksYigibmdGb3JPZiIsaS5zcGxpdEJ5VVJMKGkuYWxlcnQubG9jYWxpemVkTWVzc2FnZSkpLHYoMiksYigibmdJZiIsaS5hbGVydC5mb2xsb3d1cEFjdGlvbikpfSxkZXBlbmRlbmNpZXM6W25uLE5lLGtpXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcH0ubWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7YWxpZ24tc2VsZjpjZW50ZXI7bWFyZ2luOjVweCAwO3dvcmQtYnJlYWs6YnJlYWstd29yZH0ubWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV0gICBhW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjppbmhlcml0fS5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO21hcmdpbi1sZWZ0OmF1dG99YnV0dG9uLm1hdC1tZGMtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjppbmhlcml0O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLHA5PSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpKXt0aGlzLnN0b3JlPWUsdGhpcy5zbmFja0Jhcj1pLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgRWV9bmdPbkluaXQoKXt0aGlzLnN0b3JlLnNlbGVjdChlVykucGlwZShpdCh0aGlzLm5nVW5zdWJzY3JpYmUpLE9lKGU9PkJvb2xlYW4oZSkpKS5zdWJzY3JpYmUoZT0+e3RoaXMuc2hvd0FsZXJ0KGUpfSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfXNob3dBbGVydChlKXt0aGlzLnNuYWNrQmFyLm9wZW5Gcm9tQ29tcG9uZW50KHU5LHtkdXJhdGlvbjo1ZTMsaG9yaXpvbnRhbFBvc2l0aW9uOiJzdGFydCIsdmVydGljYWxQb3NpdGlvbjoiYm90dG9tIixkYXRhOmV9KX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSksQyhhOSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImFsZXJ0LXNuYWNrYmFyIl1dLGRlY2xzOjAsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7fSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxZMT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGUsS24sQTJdfSksbn0pKCksUTE9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0NjLFkxLHdyLmZvckZlYXR1cmUoImFsZXJ0cyIscDcpLHRvLmZvckZlYXR1cmUoW3U3XSldfSksbn0pKCk7ZnVuY3Rpb24gT2JlKG4sdCl7fXZhciBSaD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucm9sZT0iZGlhbG9nIix0aGlzLnBhbmVsQ2xhc3M9IiIsdGhpcy5oYXNCYWNrZHJvcD0hMCx0aGlzLmJhY2tkcm9wQ2xhc3M9IiIsdGhpcy5kaXNhYmxlQ2xvc2U9ITEsdGhpcy53aWR0aD0iIix0aGlzLmhlaWdodD0iIix0aGlzLmRhdGE9bnVsbCx0aGlzLmFyaWFEZXNjcmliZWRCeT1udWxsLHRoaXMuYXJpYUxhYmVsbGVkQnk9bnVsbCx0aGlzLmFyaWFMYWJlbD1udWxsLHRoaXMuYXJpYU1vZGFsPSEwLHRoaXMuYXV0b0ZvY3VzPSJmaXJzdC10YWJiYWJsZSIsdGhpcy5yZXN0b3JlRm9jdXM9ITAsdGhpcy5jbG9zZU9uTmF2aWdhdGlvbj0hMCx0aGlzLmNsb3NlT25EZXN0cm95PSEwLHRoaXMuY2xvc2VPbk92ZXJsYXlEZXRhY2htZW50cz0hMH19LFAyPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBOdXtjb25zdHJ1Y3RvcihlLGkscixvLGEscyxsLGMpe3N1cGVyKCksdGhpcy5fZWxlbWVudFJlZj1lLHRoaXMuX2ZvY3VzVHJhcEZhY3Rvcnk9aSx0aGlzLl9jb25maWc9byx0aGlzLl9pbnRlcmFjdGl2aXR5Q2hlY2tlcj1hLHRoaXMuX25nWm9uZT1zLHRoaXMuX292ZXJsYXlSZWY9bCx0aGlzLl9mb2N1c01vbml0b3I9Yyx0aGlzLl9lbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZD1udWxsLHRoaXMuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlPW51bGwsdGhpcy5hdHRhY2hEb21Qb3J0YWw9ZD0+e3RoaXMuX3BvcnRhbE91dGxldC5oYXNBdHRhY2hlZCgpO2xldCB1PXRoaXMuX3BvcnRhbE91dGxldC5hdHRhY2hEb21Qb3J0YWwoZCk7cmV0dXJuIHRoaXMuX2NvbnRlbnRBdHRhY2hlZCgpLHV9LHRoaXMuX2FyaWFMYWJlbGxlZEJ5PXRoaXMuX2NvbmZpZy5hcmlhTGFiZWxsZWRCeXx8bnVsbCx0aGlzLl9kb2N1bWVudD1yfV9jb250ZW50QXR0YWNoZWQoKXt0aGlzLl9pbml0aWFsaXplRm9jdXNUcmFwKCksdGhpcy5faGFuZGxlQmFja2Ryb3BDbGlja3MoKSx0aGlzLl9jYXB0dXJlSW5pdGlhbEZvY3VzKCl9X2NhcHR1cmVJbml0aWFsRm9jdXMoKXt0aGlzLl90cmFwRm9jdXMoKX1uZ09uRGVzdHJveSgpe3RoaXMuX3Jlc3RvcmVGb2N1cygpfWF0dGFjaENvbXBvbmVudFBvcnRhbChlKXt0aGlzLl9wb3J0YWxPdXRsZXQuaGFzQXR0YWNoZWQoKTtsZXQgaT10aGlzLl9wb3J0YWxPdXRsZXQuYXR0YWNoQ29tcG9uZW50UG9ydGFsKGUpO3JldHVybiB0aGlzLl9jb250ZW50QXR0YWNoZWQoKSxpfWF0dGFjaFRlbXBsYXRlUG9ydGFsKGUpe3RoaXMuX3BvcnRhbE91dGxldC5oYXNBdHRhY2hlZCgpO2xldCBpPXRoaXMuX3BvcnRhbE91dGxldC5hdHRhY2hUZW1wbGF0ZVBvcnRhbChlKTtyZXR1cm4gdGhpcy5fY29udGVudEF0dGFjaGVkKCksaX1fcmVjYXB0dXJlRm9jdXMoKXt0aGlzLl9jb250YWluc0ZvY3VzKCl8fHRoaXMuX3RyYXBGb2N1cygpfV9mb3JjZUZvY3VzKGUsaSl7dGhpcy5faW50ZXJhY3Rpdml0eUNoZWNrZXIuaXNGb2N1c2FibGUoZSl8fChlLnRhYkluZGV4PS0xLHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e2xldCByPSgpPT57ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIixyKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsciksZS5yZW1vdmVBdHRyaWJ1dGUoInRhYmluZGV4Iil9O2UuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsciksZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHIpfSkpLGUuZm9jdXMoaSl9X2ZvY3VzQnlDc3NTZWxlY3RvcihlLGkpe2xldCByPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGUpO3ImJnRoaXMuX2ZvcmNlRm9jdXMocixpKX1fdHJhcEZvY3VzKCl7bGV0IGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O3N3aXRjaCh0aGlzLl9jb25maWcuYXV0b0ZvY3VzKXtjYXNlITE6Y2FzZSJkaWFsb2ciOnRoaXMuX2NvbnRhaW5zRm9jdXMoKXx8ZS5mb2N1cygpO2JyZWFrO2Nhc2UhMDpjYXNlImZpcnN0LXRhYmJhYmxlIjp0aGlzLl9mb2N1c1RyYXAuZm9jdXNJbml0aWFsRWxlbWVudFdoZW5SZWFkeSgpLnRoZW4oaT0+e2l8fHRoaXMuX2ZvY3VzRGlhbG9nQ29udGFpbmVyKCl9KTticmVhaztjYXNlImZpcnN0LWhlYWRpbmciOnRoaXMuX2ZvY3VzQnlDc3NTZWxlY3RvcignaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgW3JvbGU9ImhlYWRpbmciXScpO2JyZWFrO2RlZmF1bHQ6dGhpcy5fZm9jdXNCeUNzc1NlbGVjdG9yKHRoaXMuX2NvbmZpZy5hdXRvRm9jdXMpfX1fcmVzdG9yZUZvY3VzKCl7bGV0IGU9dGhpcy5fY29uZmlnLnJlc3RvcmVGb2N1cyxpPW51bGw7aWYoInN0cmluZyI9PXR5cGVvZiBlP2k9dGhpcy5fZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlKToiYm9vbGVhbiI9PXR5cGVvZiBlP2k9ZT90aGlzLl9lbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZDpudWxsOmUmJihpPWUpLHRoaXMuX2NvbmZpZy5yZXN0b3JlRm9jdXMmJmkmJiJmdW5jdGlvbiI9PXR5cGVvZiBpLmZvY3VzKXtsZXQgcj1PdigpLG89dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Oyghcnx8cj09PXRoaXMuX2RvY3VtZW50LmJvZHl8fHI9PT1vfHxvLmNvbnRhaW5zKHIpKSYmKHRoaXMuX2ZvY3VzTW9uaXRvcj8odGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKGksdGhpcy5fY2xvc2VJbnRlcmFjdGlvblR5cGUpLHRoaXMuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlPW51bGwpOmkuZm9jdXMoKSl9dGhpcy5fZm9jdXNUcmFwJiZ0aGlzLl9mb2N1c1RyYXAuZGVzdHJveSgpfV9mb2N1c0RpYWxvZ0NvbnRhaW5lcigpe3RoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cyYmdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCl9X2NvbnRhaW5zRm9jdXMoKXtsZXQgZT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsaT1PdigpO3JldHVybiBlPT09aXx8ZS5jb250YWlucyhpKX1faW5pdGlhbGl6ZUZvY3VzVHJhcCgpe3RoaXMuX2ZvY3VzVHJhcD10aGlzLl9mb2N1c1RyYXBGYWN0b3J5LmNyZWF0ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLHRoaXMuX2RvY3VtZW50JiYodGhpcy5fZWxlbWVudEZvY3VzZWRCZWZvcmVEaWFsb2dXYXNPcGVuZWQ9T3YoKSl9X2hhbmRsZUJhY2tkcm9wQ2xpY2tzKCl7dGhpcy5fb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpPT57dGhpcy5fY29uZmlnLmRpc2FibGVDbG9zZSYmdGhpcy5fcmVjYXB0dXJlRm9jdXMoKX0pfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSxDKEx2KSxDKE50LDgpLEMoUmgpLEModWcpLEMob3QpLEMoQWMpLEMoZm8pKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJjZGstZGlhbG9nLWNvbnRhaW5lciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJlVlKGJhLDcpLDImZSl7bGV0IHI7YmUocj12ZSgpKSYmKGkuX3BvcnRhbE91dGxldD1yLmZpcnN0KX19LGhvc3RBdHRyczpbInRhYmluZGV4IiwiLTEiLDEsImNkay1kaWFsb2ctY29udGFpbmVyIl0saG9zdFZhcnM6Nixob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsyJmUmJkJlKCJpZCIsaS5fY29uZmlnLmlkfHxudWxsKSgicm9sZSIsaS5fY29uZmlnLnJvbGUpKCJhcmlhLW1vZGFsIixpLl9jb25maWcuYXJpYU1vZGFsKSgiYXJpYS1sYWJlbGxlZGJ5IixpLl9jb25maWcuYXJpYUxhYmVsP251bGw6aS5fYXJpYUxhYmVsbGVkQnkpKCJhcmlhLWxhYmVsIixpLl9jb25maWcuYXJpYUxhYmVsKSgiYXJpYS1kZXNjcmliZWRieSIsaS5fY29uZmlnLmFyaWFEZXNjcmliZWRCeXx8bnVsbCl9LGZlYXR1cmVzOltYZV0sZGVjbHM6MSx2YXJzOjAsY29uc3RzOltbImNka1BvcnRhbE91dGxldCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmUygwLE9iZSwwLDAsIm5nLXRlbXBsYXRlIiwwKX0sZGVwZW5kZW5jaWVzOltiYV0sc3R5bGVzOlsiLmNkay1kaWFsb2ctY29udGFpbmVye2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OmluaGVyaXQ7bWF4LWhlaWdodDppbmhlcml0fSJdLGVuY2Fwc3VsYXRpb246Mn0pLG59KSgpLHF2PWNsYXNze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5vdmVybGF5UmVmPXQsdGhpcy5jb25maWc9ZSx0aGlzLmNsb3NlZD1uZXcgRWUsdGhpcy5kaXNhYmxlQ2xvc2U9ZS5kaXNhYmxlQ2xvc2UsdGhpcy5iYWNrZHJvcENsaWNrPXQuYmFja2Ryb3BDbGljaygpLHRoaXMua2V5ZG93bkV2ZW50cz10LmtleWRvd25FdmVudHMoKSx0aGlzLm91dHNpZGVQb2ludGVyRXZlbnRzPXQub3V0c2lkZVBvaW50ZXJFdmVudHMoKSx0aGlzLmlkPWUuaWQsdGhpcy5rZXlkb3duRXZlbnRzLnN1YnNjcmliZShpPT57Mjc9PT1pLmtleUNvZGUmJiF0aGlzLmRpc2FibGVDbG9zZSYmIU9yKGkpJiYoaS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2xvc2Uodm9pZCAwLHtmb2N1c09yaWdpbjoia2V5Ym9hcmQifSkpfSksdGhpcy5iYWNrZHJvcENsaWNrLnN1YnNjcmliZSgoKT0+e3RoaXMuZGlzYWJsZUNsb3NlfHx0aGlzLmNsb3NlKHZvaWQgMCx7Zm9jdXNPcmlnaW46Im1vdXNlIn0pfSksdGhpcy5fZGV0YWNoU3Vic2NyaXB0aW9uPXQuZGV0YWNobWVudHMoKS5zdWJzY3JpYmUoKCk9PnshMSE9PWUuY2xvc2VPbk92ZXJsYXlEZXRhY2htZW50cyYmdGhpcy5jbG9zZSgpfSl9Y2xvc2UodCxlKXtpZih0aGlzLmNvbnRhaW5lckluc3RhbmNlKXtsZXQgaT10aGlzLmNsb3NlZDt0aGlzLmNvbnRhaW5lckluc3RhbmNlLl9jbG9zZUludGVyYWN0aW9uVHlwZT1lPy5mb2N1c09yaWdpbnx8InByb2dyYW0iLHRoaXMuX2RldGFjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCksaS5uZXh0KHQpLGkuY29tcGxldGUoKSx0aGlzLmNvbXBvbmVudEluc3RhbmNlPXRoaXMuY29udGFpbmVySW5zdGFuY2U9bnVsbH19dXBkYXRlUG9zaXRpb24oKXtyZXR1cm4gdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCksdGhpc311cGRhdGVTaXplKHQ9IiIsZT0iIil7cmV0dXJuIHRoaXMub3ZlcmxheVJlZi51cGRhdGVTaXplKHt3aWR0aDp0LGhlaWdodDplfSksdGhpc31hZGRQYW5lbENsYXNzKHQpe3JldHVybiB0aGlzLm92ZXJsYXlSZWYuYWRkUGFuZWxDbGFzcyh0KSx0aGlzfXJlbW92ZVBhbmVsQ2xhc3ModCl7cmV0dXJuIHRoaXMub3ZlcmxheVJlZi5yZW1vdmVQYW5lbENsYXNzKHQpLHRoaXN9fSxoOT1uZXcgdGUoIkRpYWxvZ1Njcm9sbFN0cmF0ZWd5IiksRmJlPW5ldyB0ZSgiRGlhbG9nRGF0YSIpLE5iZT1uZXcgdGUoIkRlZmF1bHREaWFsb2dDb25maWciKSxCYmU9e3Byb3ZpZGU6aDksZGVwczpbT2ldLHVzZUZhY3Rvcnk6ZnVuY3Rpb24obil7cmV0dXJuKCk9Pm4uc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpfX0sVmJlPTAsazI9KCgpPT57Y2xhc3MgbntnZXQgb3BlbkRpYWxvZ3MoKXtyZXR1cm4gdGhpcy5fcGFyZW50RGlhbG9nP3RoaXMuX3BhcmVudERpYWxvZy5vcGVuRGlhbG9nczp0aGlzLl9vcGVuRGlhbG9nc0F0VGhpc0xldmVsfWdldCBhZnRlck9wZW5lZCgpe3JldHVybiB0aGlzLl9wYXJlbnREaWFsb2c/dGhpcy5fcGFyZW50RGlhbG9nLmFmdGVyT3BlbmVkOnRoaXMuX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWx9Y29uc3RydWN0b3IoZSxpLHIsbyxhLHMpe3RoaXMuX292ZXJsYXk9ZSx0aGlzLl9pbmplY3Rvcj1pLHRoaXMuX2RlZmF1bHRPcHRpb25zPXIsdGhpcy5fcGFyZW50RGlhbG9nPW8sdGhpcy5fb3ZlcmxheUNvbnRhaW5lcj1hLHRoaXMuX29wZW5EaWFsb2dzQXRUaGlzTGV2ZWw9W10sdGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbD1uZXcgRWUsdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbD1uZXcgRWUsdGhpcy5fYXJpYUhpZGRlbkVsZW1lbnRzPW5ldyBNYXAsdGhpcy5hZnRlckFsbENsb3NlZD1pcygoKT0+dGhpcy5vcGVuRGlhbG9ncy5sZW5ndGg/dGhpcy5fZ2V0QWZ0ZXJBbGxDbG9zZWQoKTp0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpLnBpcGUoa24odm9pZCAwKSkpLHRoaXMuX3Njcm9sbFN0cmF0ZWd5PXN9b3BlbihlLGkpeyhpPXsuLi50aGlzLl9kZWZhdWx0T3B0aW9uc3x8bmV3IFJoLC4uLml9KS5pZD1pLmlkfHwiY2RrLWRpYWxvZy0iK1ZiZSsrLGkuaWQmJnRoaXMuZ2V0RGlhbG9nQnlJZChpLmlkKTtsZXQgbz10aGlzLl9nZXRPdmVybGF5Q29uZmlnKGkpLGE9dGhpcy5fb3ZlcmxheS5jcmVhdGUobykscz1uZXcgcXYoYSxpKSxsPXRoaXMuX2F0dGFjaENvbnRhaW5lcihhLHMsaSk7cmV0dXJuIHMuY29udGFpbmVySW5zdGFuY2U9bCx0aGlzLl9hdHRhY2hEaWFsb2dDb250ZW50KGUscyxsLGkpLHRoaXMub3BlbkRpYWxvZ3MubGVuZ3RofHx0aGlzLl9oaWRlTm9uRGlhbG9nQ29udGVudEZyb21Bc3Npc3RpdmVUZWNobm9sb2d5KCksdGhpcy5vcGVuRGlhbG9ncy5wdXNoKHMpLHMuY2xvc2VkLnN1YnNjcmliZSgoKT0+dGhpcy5fcmVtb3ZlT3BlbkRpYWxvZyhzLCEwKSksdGhpcy5hZnRlck9wZW5lZC5uZXh0KHMpLHN9Y2xvc2VBbGwoKXtSMih0aGlzLm9wZW5EaWFsb2dzLGU9PmUuY2xvc2UoKSl9Z2V0RGlhbG9nQnlJZChlKXtyZXR1cm4gdGhpcy5vcGVuRGlhbG9ncy5maW5kKGk9PmkuaWQ9PT1lKX1uZ09uRGVzdHJveSgpe1IyKHRoaXMuX29wZW5EaWFsb2dzQXRUaGlzTGV2ZWwsZT0+eyExPT09ZS5jb25maWcuY2xvc2VPbkRlc3Ryb3kmJnRoaXMuX3JlbW92ZU9wZW5EaWFsb2coZSwhMSl9KSxSMih0aGlzLl9vcGVuRGlhbG9nc0F0VGhpc0xldmVsLGU9PmUuY2xvc2UoKSksdGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbC5jb21wbGV0ZSgpLHRoaXMuX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwuY29tcGxldGUoKSx0aGlzLl9vcGVuRGlhbG9nc0F0VGhpc0xldmVsPVtdfV9nZXRPdmVybGF5Q29uZmlnKGUpe2xldCBpPW5ldyBlbCh7cG9zaXRpb25TdHJhdGVneTplLnBvc2l0aW9uU3RyYXRlZ3l8fHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5jZW50ZXJIb3Jpem9udGFsbHkoKS5jZW50ZXJWZXJ0aWNhbGx5KCksc2Nyb2xsU3RyYXRlZ3k6ZS5zY3JvbGxTdHJhdGVneXx8dGhpcy5fc2Nyb2xsU3RyYXRlZ3koKSxwYW5lbENsYXNzOmUucGFuZWxDbGFzcyxoYXNCYWNrZHJvcDplLmhhc0JhY2tkcm9wLGRpcmVjdGlvbjplLmRpcmVjdGlvbixtaW5XaWR0aDplLm1pbldpZHRoLG1pbkhlaWdodDplLm1pbkhlaWdodCxtYXhXaWR0aDplLm1heFdpZHRoLG1heEhlaWdodDplLm1heEhlaWdodCx3aWR0aDplLndpZHRoLGhlaWdodDplLmhlaWdodCxkaXNwb3NlT25OYXZpZ2F0aW9uOmUuY2xvc2VPbk5hdmlnYXRpb259KTtyZXR1cm4gZS5iYWNrZHJvcENsYXNzJiYoaS5iYWNrZHJvcENsYXNzPWUuYmFja2Ryb3BDbGFzcyksaX1fYXR0YWNoQ29udGFpbmVyKGUsaSxyKXtsZXQgcyxvPXIuaW5qZWN0b3J8fHIudmlld0NvbnRhaW5lclJlZj8uaW5qZWN0b3IsYT1be3Byb3ZpZGU6UmgsdXNlVmFsdWU6cn0se3Byb3ZpZGU6cXYsdXNlVmFsdWU6aX0se3Byb3ZpZGU6QWMsdXNlVmFsdWU6ZX1dO3IuY29udGFpbmVyPyJmdW5jdGlvbiI9PXR5cGVvZiByLmNvbnRhaW5lcj9zPXIuY29udGFpbmVyOihzPXIuY29udGFpbmVyLnR5cGUsYS5wdXNoKC4uLnIuY29udGFpbmVyLnByb3ZpZGVycyhyKSkpOnM9UDI7bGV0IGw9bmV3IExsKHMsci52aWV3Q29udGFpbmVyUmVmLHdpLmNyZWF0ZSh7cGFyZW50Om98fHRoaXMuX2luamVjdG9yLHByb3ZpZGVyczphfSksci5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpO3JldHVybiBlLmF0dGFjaChsKS5pbnN0YW5jZX1fYXR0YWNoRGlhbG9nQ29udGVudChlLGkscixvKXtpZihlIGluc3RhbmNlb2Ygb2kpe2xldCBhPXRoaXMuX2NyZWF0ZUluamVjdG9yKG8saSxyLHZvaWQgMCkscz17JGltcGxpY2l0Om8uZGF0YSxkaWFsb2dSZWY6aX07by50ZW1wbGF0ZUNvbnRleHQmJihzPXsuLi5zLC4uLiJmdW5jdGlvbiI9PXR5cGVvZiBvLnRlbXBsYXRlQ29udGV4dD9vLnRlbXBsYXRlQ29udGV4dCgpOm8udGVtcGxhdGVDb250ZXh0fSksci5hdHRhY2hUZW1wbGF0ZVBvcnRhbChuZXcgVG8oZSxudWxsLHMsYSkpfWVsc2V7bGV0IGE9dGhpcy5fY3JlYXRlSW5qZWN0b3IobyxpLHIsdGhpcy5faW5qZWN0b3IpLHM9ci5hdHRhY2hDb21wb25lbnRQb3J0YWwobmV3IExsKGUsby52aWV3Q29udGFpbmVyUmVmLGEsby5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpKTtpLmNvbXBvbmVudEluc3RhbmNlPXMuaW5zdGFuY2V9fV9jcmVhdGVJbmplY3RvcihlLGkscixvKXtsZXQgYT1lLmluamVjdG9yfHxlLnZpZXdDb250YWluZXJSZWY/LmluamVjdG9yLHM9W3twcm92aWRlOkZiZSx1c2VWYWx1ZTplLmRhdGF9LHtwcm92aWRlOnF2LHVzZVZhbHVlOml9XTtyZXR1cm4gZS5wcm92aWRlcnMmJigiZnVuY3Rpb24iPT10eXBlb2YgZS5wcm92aWRlcnM/cy5wdXNoKC4uLmUucHJvdmlkZXJzKGksZSxyKSk6cy5wdXNoKC4uLmUucHJvdmlkZXJzKSksZS5kaXJlY3Rpb24mJighYXx8IWEuZ2V0KHppLG51bGwse29wdGlvbmFsOiEwfSkpJiZzLnB1c2goe3Byb3ZpZGU6emksdXNlVmFsdWU6e3ZhbHVlOmUuZGlyZWN0aW9uLGNoYW5nZTokdCgpfX0pLHdpLmNyZWF0ZSh7cGFyZW50OmF8fG8scHJvdmlkZXJzOnN9KX1fcmVtb3ZlT3BlbkRpYWxvZyhlLGkpe2xldCByPXRoaXMub3BlbkRpYWxvZ3MuaW5kZXhPZihlKTtyPi0xJiYodGhpcy5vcGVuRGlhbG9ncy5zcGxpY2UociwxKSx0aGlzLm9wZW5EaWFsb2dzLmxlbmd0aHx8KHRoaXMuX2FyaWFIaWRkZW5FbGVtZW50cy5mb3JFYWNoKChvLGEpPT57bz9hLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLG8pOmEucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWhpZGRlbiIpfSksdGhpcy5fYXJpYUhpZGRlbkVsZW1lbnRzLmNsZWFyKCksaSYmdGhpcy5fZ2V0QWZ0ZXJBbGxDbG9zZWQoKS5uZXh0KCkpKX1faGlkZU5vbkRpYWxvZ0NvbnRlbnRGcm9tQXNzaXN0aXZlVGVjaG5vbG9neSgpe2xldCBlPXRoaXMuX292ZXJsYXlDb250YWluZXIuZ2V0Q29udGFpbmVyRWxlbWVudCgpO2lmKGUucGFyZW50RWxlbWVudCl7bGV0IGk9ZS5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO2ZvcihsZXQgcj1pLmxlbmd0aC0xO3I+LTE7ci0tKXtsZXQgbz1pW3JdO28hPT1lJiYiU0NSSVBUIiE9PW8ubm9kZU5hbWUmJiJTVFlMRSIhPT1vLm5vZGVOYW1lJiYhby5oYXNBdHRyaWJ1dGUoImFyaWEtbGl2ZSIpJiYodGhpcy5fYXJpYUhpZGRlbkVsZW1lbnRzLnNldChvLG8uZ2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIpKSxvLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIikpfX19X2dldEFmdGVyQWxsQ2xvc2VkKCl7bGV0IGU9dGhpcy5fcGFyZW50RGlhbG9nO3JldHVybiBlP2UuX2dldEFmdGVyQWxsQ2xvc2VkKCk6dGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbH19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhPaSksTyh3aSksTyhOYmUsOCksTyhuLDEyKSxPKF9nKSxPKGg5KSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCk7ZnVuY3Rpb24gUjIobix0KXtsZXQgZT1uLmxlbmd0aDtmb3IoO2UtLTspdChuW2VdKX12YXIgbTk9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe3Byb3ZpZGVyczpbazIsQmJlXSxpbXBvcnRzOltEbyxCbCxwZyxCbF19KSxufSkoKTtmdW5jdGlvbiBIYmUobix0KXt9dmFyIHZnPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5yb2xlPSJkaWFsb2ciLHRoaXMucGFuZWxDbGFzcz0iIix0aGlzLmhhc0JhY2tkcm9wPSEwLHRoaXMuYmFja2Ryb3BDbGFzcz0iIix0aGlzLmRpc2FibGVDbG9zZT0hMSx0aGlzLndpZHRoPSIiLHRoaXMuaGVpZ2h0PSIiLHRoaXMubWF4V2lkdGg9IjgwdnciLHRoaXMuZGF0YT1udWxsLHRoaXMuYXJpYURlc2NyaWJlZEJ5PW51bGwsdGhpcy5hcmlhTGFiZWxsZWRCeT1udWxsLHRoaXMuYXJpYUxhYmVsPW51bGwsdGhpcy5hcmlhTW9kYWw9ITAsdGhpcy5hdXRvRm9jdXM9ImZpcnN0LXRhYmJhYmxlIix0aGlzLnJlc3RvcmVGb2N1cz0hMCx0aGlzLmRlbGF5Rm9jdXNUcmFwPSEwLHRoaXMuY2xvc2VPbk5hdmlnYXRpb249ITB9fSxPMj0ibWRjLWRpYWxvZy0tb3BlbiIsZjk9Im1kYy1kaWFsb2ctLW9wZW5pbmciLGc5PSJtZGMtZGlhbG9nLS1jbG9zaW5nIixqYmU9KCgpPT57Y2xhc3MgbiBleHRlbmRzIFAye2NvbnN0cnVjdG9yKGUsaSxyLG8sYSxzLGwsYyl7c3VwZXIoZSxpLHIsbyxhLHMsbCxjKSx0aGlzLl9hbmltYXRpb25TdGF0ZUNoYW5nZWQ9bmV3IEZ9X2NhcHR1cmVJbml0aWFsRm9jdXMoKXt0aGlzLl9jb25maWcuZGVsYXlGb2N1c1RyYXB8fHRoaXMuX3RyYXBGb2N1cygpfV9vcGVuQW5pbWF0aW9uRG9uZShlKXt0aGlzLl9jb25maWcuZGVsYXlGb2N1c1RyYXAmJnRoaXMuX3RyYXBGb2N1cygpLHRoaXMuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZC5uZXh0KHtzdGF0ZToib3BlbmVkIix0b3RhbFRpbWU6ZX0pfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSxDKEx2KSxDKE50LDgpLEModmcpLEModWcpLEMob3QpLEMoQWMpLEMoZm8pKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJuZy1jb21wb25lbnQiXV0sZmVhdHVyZXM6W1hlXSxkZWNsczowLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpe30sZW5jYXBzdWxhdGlvbjoyfSksbn0pKCksXzk9Ii0tbWF0LWRpYWxvZy10cmFuc2l0aW9uLWR1cmF0aW9uIjtmdW5jdGlvbiBiOShuKXtyZXR1cm4gbnVsbD09bj9udWxsOiJudW1iZXIiPT10eXBlb2Ygbj9uOm4uZW5kc1dpdGgoIm1zIik/bWkobi5zdWJzdHJpbmcoMCxuLmxlbmd0aC0yKSk6bi5lbmRzV2l0aCgicyIpPzFlMyptaShuLnN1YnN0cmluZygwLG4ubGVuZ3RoLTEpKToiMCI9PT1uPzA6bnVsbH12YXIgR2JlPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBqYmV7Y29uc3RydWN0b3IoZSxpLHIsbyxhLHMsbCxjLGQpe3N1cGVyKGUsaSxyLG8sYSxzLGwsZCksdGhpcy5fYW5pbWF0aW9uTW9kZT1jLHRoaXMuX2FuaW1hdGlvbnNFbmFibGVkPSJOb29wQW5pbWF0aW9ucyIhPT10aGlzLl9hbmltYXRpb25Nb2RlLHRoaXMuX2hvc3RFbGVtZW50PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCx0aGlzLl9vcGVuQW5pbWF0aW9uRHVyYXRpb249dGhpcy5fYW5pbWF0aW9uc0VuYWJsZWQ/YjkodGhpcy5fY29uZmlnLmVudGVyQW5pbWF0aW9uRHVyYXRpb24pPz8xNTA6MCx0aGlzLl9jbG9zZUFuaW1hdGlvbkR1cmF0aW9uPXRoaXMuX2FuaW1hdGlvbnNFbmFibGVkP2I5KHRoaXMuX2NvbmZpZy5leGl0QW5pbWF0aW9uRHVyYXRpb24pPz83NTowLHRoaXMuX2FuaW1hdGlvblRpbWVyPW51bGwsdGhpcy5fZmluaXNoRGlhbG9nT3Blbj0oKT0+e3RoaXMuX2NsZWFyQW5pbWF0aW9uQ2xhc3NlcygpLHRoaXMuX29wZW5BbmltYXRpb25Eb25lKHRoaXMuX29wZW5BbmltYXRpb25EdXJhdGlvbil9LHRoaXMuX2ZpbmlzaERpYWxvZ0Nsb3NlPSgpPT57dGhpcy5fY2xlYXJBbmltYXRpb25DbGFzc2VzKCksdGhpcy5fYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLmVtaXQoe3N0YXRlOiJjbG9zZWQiLHRvdGFsVGltZTp0aGlzLl9jbG9zZUFuaW1hdGlvbkR1cmF0aW9ufSl9fV9jb250ZW50QXR0YWNoZWQoKXtzdXBlci5fY29udGVudEF0dGFjaGVkKCksdGhpcy5fc3RhcnRPcGVuQW5pbWF0aW9uKCl9bmdPbkRlc3Ryb3koKXtzdXBlci5uZ09uRGVzdHJveSgpLG51bGwhPT10aGlzLl9hbmltYXRpb25UaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuX2FuaW1hdGlvblRpbWVyKX1fc3RhcnRPcGVuQW5pbWF0aW9uKCl7dGhpcy5fYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLmVtaXQoe3N0YXRlOiJvcGVuaW5nIix0b3RhbFRpbWU6dGhpcy5fb3BlbkFuaW1hdGlvbkR1cmF0aW9ufSksdGhpcy5fYW5pbWF0aW9uc0VuYWJsZWQ/KHRoaXMuX2hvc3RFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KF85LGAke3RoaXMuX29wZW5BbmltYXRpb25EdXJhdGlvbn1tc2ApLHRoaXMuX3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+dGhpcy5faG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZChmOSxPMikpLHRoaXMuX3dhaXRGb3JBbmltYXRpb25Ub0NvbXBsZXRlKHRoaXMuX29wZW5BbmltYXRpb25EdXJhdGlvbix0aGlzLl9maW5pc2hEaWFsb2dPcGVuKSk6KHRoaXMuX2hvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoTzIpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuX2ZpbmlzaERpYWxvZ09wZW4oKSkpfV9zdGFydEV4aXRBbmltYXRpb24oKXt0aGlzLl9hbmltYXRpb25TdGF0ZUNoYW5nZWQuZW1pdCh7c3RhdGU6ImNsb3NpbmciLHRvdGFsVGltZTp0aGlzLl9jbG9zZUFuaW1hdGlvbkR1cmF0aW9ufSksdGhpcy5faG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShPMiksdGhpcy5fYW5pbWF0aW9uc0VuYWJsZWQ/KHRoaXMuX2hvc3RFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KF85LGAke3RoaXMuX29wZW5BbmltYXRpb25EdXJhdGlvbn1tc2ApLHRoaXMuX3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+dGhpcy5faG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZChnOSkpLHRoaXMuX3dhaXRGb3JBbmltYXRpb25Ub0NvbXBsZXRlKHRoaXMuX2Nsb3NlQW5pbWF0aW9uRHVyYXRpb24sdGhpcy5fZmluaXNoRGlhbG9nQ2xvc2UpKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLl9maW5pc2hEaWFsb2dDbG9zZSgpKX1fY2xlYXJBbmltYXRpb25DbGFzc2VzKCl7dGhpcy5faG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShmOSxnOSl9X3dhaXRGb3JBbmltYXRpb25Ub0NvbXBsZXRlKGUsaSl7bnVsbCE9PXRoaXMuX2FuaW1hdGlvblRpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5fYW5pbWF0aW9uVGltZXIpLHRoaXMuX2FuaW1hdGlvblRpbWVyPXNldFRpbWVvdXQoaSxlKX1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpe3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+eyJmdW5jdGlvbiI9PXR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU/cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpOmUoKX0pfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSxDKEx2KSxDKE50LDgpLEModmcpLEModWcpLEMob3QpLEMoQWMpLEMocGksOCksQyhmbykpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbIm1hdC1kaWFsb2ctY29udGFpbmVyIl1dLGhvc3RBdHRyczpbInRhYmluZGV4IiwiLTEiLDEsIm1hdC1tZGMtZGlhbG9nLWNvbnRhaW5lciIsIm1kYy1kaWFsb2ciXSxob3N0VmFyczo4LGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezImZSYmKHdvKCJpZCIsaS5fY29uZmlnLmlkKSxCZSgiYXJpYS1tb2RhbCIsaS5fY29uZmlnLmFyaWFNb2RhbCkoInJvbGUiLGkuX2NvbmZpZy5yb2xlKSgiYXJpYS1sYWJlbGxlZGJ5IixpLl9jb25maWcuYXJpYUxhYmVsP251bGw6aS5fYXJpYUxhYmVsbGVkQnkpKCJhcmlhLWxhYmVsIixpLl9jb25maWcuYXJpYUxhYmVsKSgiYXJpYS1kZXNjcmliZWRieSIsaS5fY29uZmlnLmFyaWFEZXNjcmliZWRCeXx8bnVsbCksbnQoIl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIiwhaS5fYW5pbWF0aW9uc0VuYWJsZWQpKX0sZmVhdHVyZXM6W1hlXSxkZWNsczozLHZhcnM6MCxjb25zdHM6W1sxLCJtZGMtZGlhbG9nX19jb250YWluZXIiXSxbMSwibWF0LW1kYy1kaWFsb2ctc3VyZmFjZSIsIm1kYy1kaWFsb2dfX3N1cmZhY2UiXSxbImNka1BvcnRhbE91dGxldCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwiZGl2IiwwKSgxLCJkaXYiLDEpLFMoMixIYmUsMCwwLCJuZy10ZW1wbGF0ZSIsMiksZygpKCkpfSxkZXBlbmRlbmNpZXM6W2JhXSxzdHlsZXM6WycubWRjLWVsZXZhdGlvbi1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6dmFyKC0tbWRjLWVsZXZhdGlvbi1vdmVybGF5LW9wYWNpdHksIDApO3RyYW5zaXRpb246b3BhY2l0eSAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpfS5tZGMtZGlhbG9nLC5tZGMtZGlhbG9nX19zY3JpbXtwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Lm1kYy1kaWFsb2d7ZGlzcGxheTpub25lO3otaW5kZXg6dmFyKC0tbWRjLWRpYWxvZy16LWluZGV4LCA3KX0ubWRjLWRpYWxvZyAubWRjLWRpYWxvZ19fY29udGVudHtwYWRkaW5nOjIwcHggMjRweCAyMHB4IDI0cHh9Lm1kYy1kaWFsb2cgLm1kYy1kaWFsb2dfX3N1cmZhY2V7bWluLXdpZHRoOjI4MHB4fUBtZWRpYShtYXgtd2lkdGg6IDU5MnB4KXsubWRjLWRpYWxvZyAubWRjLWRpYWxvZ19fc3VyZmFjZXttYXgtd2lkdGg6Y2FsYygxMDB2dyAtIDMycHgpfX1AbWVkaWEobWluLXdpZHRoOiA1OTJweCl7Lm1kYy1kaWFsb2cgLm1kYy1kaWFsb2dfX3N1cmZhY2V7bWF4LXdpZHRoOjU2MHB4fX0ubWRjLWRpYWxvZyAubWRjLWRpYWxvZ19fc3VyZmFjZXttYXgtaGVpZ2h0OmNhbGMoMTAwJSAtIDMycHgpfS5tZGMtZGlhbG9nLm1kYy1kaWFsb2ctLWZ1bGxzY3JlZW4gLm1kYy1kaWFsb2dfX3N1cmZhY2V7bWF4LXdpZHRoOm5vbmV9QG1lZGlhKG1heC13aWR0aDogOTYwcHgpey5tZGMtZGlhbG9nLm1kYy1kaWFsb2ctLWZ1bGxzY3JlZW4gLm1kYy1kaWFsb2dfX3N1cmZhY2V7bWF4LWhlaWdodDo1NjBweDt3aWR0aDo1NjBweH0ubWRjLWRpYWxvZy5tZGMtZGlhbG9nLS1mdWxsc2NyZWVuIC5tZGMtZGlhbG9nX19zdXJmYWNlIC5tZGMtZGlhbG9nX19jbG9zZXtyaWdodDotMTJweH19QG1lZGlhKG1heC13aWR0aDogNzIwcHgpYW5kIChtYXgtd2lkdGg6IDY3MnB4KXsubWRjLWRpYWxvZy5tZGMtZGlhbG9nLS1mdWxsc2NyZWVuIC5tZGMtZGlhbG9nX19zdXJmYWNle3dpZHRoOmNhbGMoMTAwdncgLSAxMTJweCl9fUBtZWRpYShtYXgtd2lkdGg6IDcyMHB4KWFuZCAobWluLXdpZHRoOiA2NzJweCl7Lm1kYy1kaWFsb2cubWRjLWRpYWxvZy0tZnVsbHNjcmVlbiAubWRjLWRpYWxvZ19fc3VyZmFjZXt3aWR0aDo1NjBweH19QG1lZGlhKG1heC13aWR0aDogNzIwcHgpYW5kIChtYXgtaGVpZ2h0OiA3MjBweCl7Lm1kYy1kaWFsb2cubWRjLWRpYWxvZy0tZnVsbHNjcmVlbiAubWRjLWRpYWxvZ19fc3VyZmFjZXttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSAxNjBweCl9fUBtZWRpYShtYXgtd2lkdGg6IDcyMHB4KWFuZCAobWluLWhlaWdodDogNzIwcHgpey5tZGMtZGlhbG9nLm1kYy1kaWFsb2ctLWZ1bGxzY3JlZW4gLm1kYy1kaWFsb2dfX3N1cmZhY2V7bWF4LWhlaWdodDo1NjBweH19QG1lZGlhKG1heC13aWR0aDogNzIwcHgpey5tZGMtZGlhbG9nLm1kYy1kaWFsb2ctLWZ1bGxzY3JlZW4gLm1kYy1kaWFsb2dfX3N1cmZhY2UgLm1kYy1kaWFsb2dfX2Nsb3Nle3JpZ2h0Oi0xMnB4fX1AbWVkaWEobWF4LXdpZHRoOiA3MjBweClhbmQgKG1heC1oZWlnaHQ6IDQwMHB4KSwobWF4LXdpZHRoOiA2MDBweCksKG1pbi13aWR0aDogNzIwcHgpYW5kIChtYXgtaGVpZ2h0OiA0MDBweCl7Lm1kYy1kaWFsb2cubWRjLWRpYWxvZy0tZnVsbHNjcmVlbiAubWRjLWRpYWxvZ19fc3VyZmFjZXtoZWlnaHQ6MTAwJTttYXgtaGVpZ2h0OjEwMHZoO21heC13aWR0aDoxMDB2dzt3aWR0aDoxMDB2dztib3JkZXItcmFkaXVzOjB9Lm1kYy1kaWFsb2cubWRjLWRpYWxvZy0tZnVsbHNjcmVlbiAubWRjLWRpYWxvZ19fc3VyZmFjZSAubWRjLWRpYWxvZ19fY2xvc2V7b3JkZXI6LTE7bGVmdDotMTJweH0ubWRjLWRpYWxvZy5tZGMtZGlhbG9nLS1mdWxsc2NyZWVuIC5tZGMtZGlhbG9nX19zdXJmYWNlIC5tZGMtZGlhbG9nX19oZWFkZXJ7cGFkZGluZzowIDE2cHggOXB4O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5tZGMtZGlhbG9nLm1kYy1kaWFsb2ctLWZ1bGxzY3JlZW4gLm1kYy1kaWFsb2dfX3N1cmZhY2UgLm1kYy1kaWFsb2dfX3RpdGxle21hcmdpbi1sZWZ0OmNhbGMoMTZweCAtIDIgKiAxMnB4KX19QG1lZGlhKG1pbi13aWR0aDogOTYwcHgpey5tZGMtZGlhbG9nLm1kYy1kaWFsb2ctLWZ1bGxzY3JlZW4gLm1kYy1kaWFsb2dfX3N1cmZhY2V7d2lkdGg6Y2FsYygxMDB2dyAtIDQwMHB4KX0ubWRjLWRpYWxvZy5tZGMtZGlhbG9nLS1mdWxsc2NyZWVuIC5tZGMtZGlhbG9nX19zdXJmYWNlIC5tZGMtZGlhbG9nX19jbG9zZXtyaWdodDotMTJweH19Lm1kYy1kaWFsb2cubWRjLWRpYWxvZ19fc2NyaW0tLWhpZGRlbiAubWRjLWRpYWxvZ19fc2NyaW17b3BhY2l0eTowfS5tZGMtZGlhbG9nX19zY3JpbXtvcGFjaXR5OjA7ei1pbmRleDotMX0ubWRjLWRpYWxvZ19fY29udGFpbmVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDoxMDAlO3RyYW5zZm9ybTpzY2FsZSgwLjgpO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lfS5tZGMtZGlhbG9nX19zdXJmYWNle3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1ncm93OjA7ZmxleC1zaHJpbms6MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlO3BvaW50ZXItZXZlbnRzOmF1dG87b3ZlcmZsb3cteTphdXRvfS5tZGMtZGlhbG9nX19zdXJmYWNlIC5tZGMtZWxldmF0aW9uLW92ZXJsYXl7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0b3A6MDtsZWZ0OjB9W2Rpcj1ydGxdIC5tZGMtZGlhbG9nX19zdXJmYWNlLC5tZGMtZGlhbG9nX19zdXJmYWNlW2Rpcj1ydGxde3RleHQtYWxpZ246cmlnaHR9QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpey5tZGMtZGlhbG9nX19zdXJmYWNle291dGxpbmU6MnB4IHNvbGlkIHdpbmRvd1RleHR9fS5tZGMtZGlhbG9nX19zdXJmYWNlOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG9wOjA7bGVmdDowO2JvcmRlcjoycHggc29saWQgcmdiYSgwLDAsMCwwKTtib3JkZXItcmFkaXVzOmluaGVyaXQ7Y29udGVudDoiIjtwb2ludGVyLWV2ZW50czpub25lfUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5tZGMtZGlhbG9nX19zdXJmYWNlOjpiZWZvcmV7Ym9yZGVyLWNvbG9yOkNhbnZhc1RleHR9fUBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSxzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSl7Lm1kYy1kaWFsb2dfX3N1cmZhY2U6OmJlZm9yZXtjb250ZW50Om5vbmV9fS5tZGMtZGlhbG9nX190aXRsZXtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MDtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4LXNocmluazowO2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXJnaW46MCAwIDFweDtwYWRkaW5nOjAgMjRweCA5cHh9Lm1kYy1kaWFsb2dfX3RpdGxlOjpiZWZvcmV7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MDtoZWlnaHQ6NDBweDtjb250ZW50OiIiO3ZlcnRpY2FsLWFsaWduOjB9W2Rpcj1ydGxdIC5tZGMtZGlhbG9nX190aXRsZSwubWRjLWRpYWxvZ19fdGl0bGVbZGlyPXJ0bF17dGV4dC1hbGlnbjpyaWdodH0ubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZSAubWRjLWRpYWxvZ19fdGl0bGV7bWFyZ2luLWJvdHRvbToxcHg7cGFkZGluZy1ib3R0b206MTVweH0ubWRjLWRpYWxvZy0tZnVsbHNjcmVlbiAubWRjLWRpYWxvZ19faGVhZGVye2FsaWduLWl0ZW1zOmJhc2VsaW5lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMCwwLDAsMCk7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjAgMjRweCA5cHg7ei1pbmRleDoxfUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5tZGMtZGlhbG9nLS1mdWxsc2NyZWVuIC5tZGMtZGlhbG9nX19oZWFkZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjpDYW52YXNUZXh0fX0ubWRjLWRpYWxvZy0tZnVsbHNjcmVlbiAubWRjLWRpYWxvZ19faGVhZGVyIC5tZGMtZGlhbG9nX19jbG9zZXtyaWdodDotMTJweH0ubWRjLWRpYWxvZy0tZnVsbHNjcmVlbiAubWRjLWRpYWxvZ19fdGl0bGV7bWFyZ2luLWJvdHRvbTowO3BhZGRpbmc6MDtib3JkZXItYm90dG9tOjB9Lm1kYy1kaWFsb2ctLWZ1bGxzY3JlZW4ubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZSAubWRjLWRpYWxvZ19fdGl0bGV7Ym9yZGVyLWJvdHRvbTowO21hcmdpbi1ib3R0b206MH0ubWRjLWRpYWxvZy0tZnVsbHNjcmVlbiAubWRjLWRpYWxvZ19fY2xvc2V7dG9wOjVweH0ubWRjLWRpYWxvZy0tZnVsbHNjcmVlbi5tZGMtZGlhbG9nLS1zY3JvbGxhYmxlIC5tZGMtZGlhbG9nX19hY3Rpb25ze2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMCl9QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7Lm1kYy1kaWFsb2ctLWZ1bGxzY3JlZW4ubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZSAubWRjLWRpYWxvZ19fYWN0aW9uc3tib3JkZXItdG9wLWNvbG9yOkNhbnZhc1RleHR9fS5tZGMtZGlhbG9nLS1mdWxsc2NyZWVuLS10aXRsZWxlc3MgLm1kYy1kaWFsb2dfX2Nsb3Nle21hcmdpbi10b3A6NHB4fS5tZGMtZGlhbG9nLS1mdWxsc2NyZWVuLS10aXRsZWxlc3MubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZSAubWRjLWRpYWxvZ19fY2xvc2V7bWFyZ2luLXRvcDowfS5tZGMtZGlhbG9nX19jb250ZW50e2ZsZXgtZ3JvdzoxO2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXJnaW46MDtvdmVyZmxvdzphdXRvfS5tZGMtZGlhbG9nX19jb250ZW50PjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9Lm1kYy1kaWFsb2dfX2NvbnRlbnQ+Omxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5tZGMtZGlhbG9nX190aXRsZSsubWRjLWRpYWxvZ19fY29udGVudCwubWRjLWRpYWxvZ19faGVhZGVyKy5tZGMtZGlhbG9nX19jb250ZW50e3BhZGRpbmctdG9wOjB9Lm1kYy1kaWFsb2ctLXNjcm9sbGFibGUgLm1kYy1kaWFsb2dfX3RpdGxlKy5tZGMtZGlhbG9nX19jb250ZW50e3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1kYy1kaWFsb2dfX2NvbnRlbnQgLm1kYy1kZXByZWNhdGVkLWxpc3Q6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZHtwYWRkaW5nOjZweCAwIDB9Lm1kYy1kaWFsb2ctLXNjcm9sbGFibGUgLm1kYy1kaWFsb2dfX2NvbnRlbnQgLm1kYy1kZXByZWNhdGVkLWxpc3Q6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZHtwYWRkaW5nOjB9Lm1kYy1kaWFsb2dfX2FjdGlvbnN7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXgtc2hyaW5rOjA7ZmxleC13cmFwOndyYXA7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWluLWhlaWdodDo1MnB4O21hcmdpbjowO3BhZGRpbmc6OHB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMCl9QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7Lm1kYy1kaWFsb2dfX2FjdGlvbnN7Ym9yZGVyLXRvcC1jb2xvcjpDYW52YXNUZXh0fX0ubWRjLWRpYWxvZy0tc3RhY2tlZCAubWRjLWRpYWxvZ19fYWN0aW9uc3tmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1lbmR9Lm1kYy1kaWFsb2dfX2J1dHRvbnttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OjA7bWF4LXdpZHRoOjEwMCU7dGV4dC1hbGlnbjpyaWdodH1bZGlyPXJ0bF0gLm1kYy1kaWFsb2dfX2J1dHRvbiwubWRjLWRpYWxvZ19fYnV0dG9uW2Rpcj1ydGxde21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjhweH0ubWRjLWRpYWxvZ19fYnV0dG9uOmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjB9W2Rpcj1ydGxdIC5tZGMtZGlhbG9nX19idXR0b246Zmlyc3QtY2hpbGQsLm1kYy1kaWFsb2dfX2J1dHRvbjpmaXJzdC1jaGlsZFtkaXI9cnRsXXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDowfVtkaXI9cnRsXSAubWRjLWRpYWxvZ19fYnV0dG9uLC5tZGMtZGlhbG9nX19idXR0b25bZGlyPXJ0bF17dGV4dC1hbGlnbjpsZWZ0fS5tZGMtZGlhbG9nLS1zdGFja2VkIC5tZGMtZGlhbG9nX19idXR0b246bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLXRvcDoxMnB4fS5tZGMtZGlhbG9nLS1vcGVuLC5tZGMtZGlhbG9nLS1vcGVuaW5nLC5tZGMtZGlhbG9nLS1jbG9zaW5ne2Rpc3BsYXk6ZmxleH0ubWRjLWRpYWxvZy0tb3BlbmluZyAubWRjLWRpYWxvZ19fc2NyaW17dHJhbnNpdGlvbjpvcGFjaXR5IDE1MG1zIGxpbmVhcn0ubWRjLWRpYWxvZy0tb3BlbmluZyAubWRjLWRpYWxvZ19fY29udGFpbmVye3RyYW5zaXRpb246b3BhY2l0eSA3NW1zIGxpbmVhcix0cmFuc2Zvcm0gMTUwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpfS5tZGMtZGlhbG9nLS1jbG9zaW5nIC5tZGMtZGlhbG9nX19zY3JpbSwubWRjLWRpYWxvZy0tY2xvc2luZyAubWRjLWRpYWxvZ19fY29udGFpbmVye3RyYW5zaXRpb246b3BhY2l0eSA3NW1zIGxpbmVhcn0ubWRjLWRpYWxvZy0tY2xvc2luZyAubWRjLWRpYWxvZ19fY29udGFpbmVye3RyYW5zZm9ybTpub25lfS5tZGMtZGlhbG9nLS1vcGVuIC5tZGMtZGlhbG9nX19zY3JpbXtvcGFjaXR5OjF9Lm1kYy1kaWFsb2ctLW9wZW4gLm1kYy1kaWFsb2dfX2NvbnRhaW5lcnt0cmFuc2Zvcm06bm9uZTtvcGFjaXR5OjF9Lm1kYy1kaWFsb2ctLW9wZW4ubWRjLWRpYWxvZ19fc3VyZmFjZS1zY3JpbS0tc2hvd24gLm1kYy1kaWFsb2dfX3N1cmZhY2Utc2NyaW17b3BhY2l0eToxfS5tZGMtZGlhbG9nLS1vcGVuLm1kYy1kaWFsb2dfX3N1cmZhY2Utc2NyaW0tLWhpZGluZyAubWRjLWRpYWxvZ19fc3VyZmFjZS1zY3JpbXt0cmFuc2l0aW9uOm9wYWNpdHkgNzVtcyBsaW5lYXJ9Lm1kYy1kaWFsb2ctLW9wZW4ubWRjLWRpYWxvZ19fc3VyZmFjZS1zY3JpbS0tc2hvd2luZyAubWRjLWRpYWxvZ19fc3VyZmFjZS1zY3JpbXt0cmFuc2l0aW9uOm9wYWNpdHkgMTUwbXMgbGluZWFyfS5tZGMtZGlhbG9nX19zdXJmYWNlLXNjcmlte2Rpc3BsYXk6bm9uZTtvcGFjaXR5OjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4OjF9Lm1kYy1kaWFsb2dfX3N1cmZhY2Utc2NyaW0tLXNob3duIC5tZGMtZGlhbG9nX19zdXJmYWNlLXNjcmltLC5tZGMtZGlhbG9nX19zdXJmYWNlLXNjcmltLS1zaG93aW5nIC5tZGMtZGlhbG9nX19zdXJmYWNlLXNjcmltLC5tZGMtZGlhbG9nX19zdXJmYWNlLXNjcmltLS1oaWRpbmcgLm1kYy1kaWFsb2dfX3N1cmZhY2Utc2NyaW17ZGlzcGxheTpibG9ja30ubWRjLWRpYWxvZy1zY3JvbGwtbG9ja3tvdmVyZmxvdzpoaWRkZW59Lm1kYy1kaWFsb2ctLW5vLWNvbnRlbnQtcGFkZGluZyAubWRjLWRpYWxvZ19fY29udGVudHtwYWRkaW5nOjB9Lm1kYy1kaWFsb2ctLXNoZWV0IC5tZGMtZGlhbG9nX19jbG9zZXtyaWdodDoxMnB4O3RvcDo5cHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxfS5tZGMtZGlhbG9nX19zY3JpbS0tcmVtb3ZlZHtwb2ludGVyLWV2ZW50czpub25lfS5tZGMtZGlhbG9nX19zY3JpbS0tcmVtb3ZlZCAubWRjLWRpYWxvZ19fc2NyaW0sLm1kYy1kaWFsb2dfX3NjcmltLS1yZW1vdmVkIC5tZGMtZGlhbG9nX19zdXJmYWNlLXNjcmlte2Rpc3BsYXk6bm9uZX0ubWF0LW1kYy1kaWFsb2ctY29udGVudHttYXgtaGVpZ2h0OjY1dmh9Lm1hdC1tZGMtZGlhbG9nLWNvbnRhaW5lcntwb3NpdGlvbjpzdGF0aWM7ZGlzcGxheTpibG9ja30ubWF0LW1kYy1kaWFsb2ctY29udGFpbmVyLC5tYXQtbWRjLWRpYWxvZy1jb250YWluZXIgLm1kYy1kaWFsb2dfX2NvbnRhaW5lciwubWF0LW1kYy1kaWFsb2ctY29udGFpbmVyIC5tZGMtZGlhbG9nX19zdXJmYWNle21heC1oZWlnaHQ6aW5oZXJpdDttaW4taGVpZ2h0OmluaGVyaXQ7bWluLXdpZHRoOmluaGVyaXQ7bWF4LXdpZHRoOmluaGVyaXR9Lm1hdC1tZGMtZGlhbG9nLWNvbnRhaW5lciAubWRjLWRpYWxvZ19fc3VyZmFjZXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Lm1hdC1tZGMtZGlhbG9nLWNvbnRhaW5lcntvdXRsaW5lOjB9Lm1hdC1tZGMtZGlhbG9nLWNvbnRhaW5lciAubWRjLWRpYWxvZ19fc3VyZmFjZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1kaWFsb2ctY29udGFpbmVyLWNvbG9yLCB3aGl0ZSl9Lm1hdC1tZGMtZGlhbG9nLWNvbnRhaW5lciAubWRjLWRpYWxvZ19fc3VyZmFjZXtib3gtc2hhZG93OnZhcigtLW1kYy1kaWFsb2ctY29udGFpbmVyLWVsZXZhdGlvbiwgMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpKX0ubWF0LW1kYy1kaWFsb2ctY29udGFpbmVyIC5tZGMtZGlhbG9nX19zdXJmYWNle2JvcmRlci1yYWRpdXM6dmFyKC0tbWRjLWRpYWxvZy1jb250YWluZXItc2hhcGUsIHZhcigtLW1kYy1zaGFwZS1tZWRpdW0sIDRweCkpfS5tYXQtbWRjLWRpYWxvZy1jb250YWluZXIubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZSAubWRjLWRpYWxvZ19fdGl0bGUsLm1hdC1tZGMtZGlhbG9nLWNvbnRhaW5lci5tZGMtZGlhbG9nLS1zY3JvbGxhYmxlIC5tZGMtZGlhbG9nX19hY3Rpb25zLC5tYXQtbWRjLWRpYWxvZy1jb250YWluZXIubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZS5tZGMtZGlhbG9nLXNjcm9sbC1kaXZpZGVyLWZvb3RlciAubWRjLWRpYWxvZ19fYWN0aW9uc3tib3JkZXItY29sb3I6dmFyKC0tbWRjLWRpYWxvZy13aXRoLWRpdmlkZXItZGl2aWRlci1jb2xvciwgYmxhY2spfS5tYXQtbWRjLWRpYWxvZy1jb250YWluZXIubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZSAubWRjLWRpYWxvZ19fdGl0bGV7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1tZGMtZGlhbG9nLXdpdGgtZGl2aWRlci1kaXZpZGVyLWNvbG9yLCBibGFjayl9Lm1hdC1tZGMtZGlhbG9nLWNvbnRhaW5lciAubWRjLWRpYWxvZ19fdGl0bGV7Zm9udC1mYW1pbHk6dmFyKC0tbWRjLWRpYWxvZy1zdWJoZWFkLWZvbnQsICJBcmlhbCIpO2xpbmUtaGVpZ2h0OnZhcigtLW1kYy1kaWFsb2ctc3ViaGVhZC1saW5lLWhlaWdodCwgMTRweCk7Zm9udC1zaXplOnZhcigtLW1kYy1kaWFsb2ctc3ViaGVhZC1zaXplLCAxNHB4KTtmb250LXdlaWdodDp2YXIoLS1tZGMtZGlhbG9nLXN1YmhlYWQtd2VpZ2h0LCA1MDApO2xldHRlci1zcGFjaW5nOnZhcigtLW1kYy1kaWFsb2ctc3ViaGVhZC10cmFja2luZywgMXB4KX0ubWF0LW1kYy1kaWFsb2ctY29udGFpbmVyIC5tZGMtZGlhbG9nX190aXRsZXtjb2xvcjp2YXIoLS1tZGMtZGlhbG9nLXN1YmhlYWQtY29sb3IsIGJsYWNrKX0ubWF0LW1kYy1kaWFsb2ctY29udGFpbmVyIC5tZGMtZGlhbG9nX19jb250ZW50e2ZvbnQtZmFtaWx5OnZhcigtLW1kYy1kaWFsb2ctc3VwcG9ydGluZy10ZXh0LWZvbnQsICJBcmlhbCIpO2xpbmUtaGVpZ2h0OnZhcigtLW1kYy1kaWFsb2ctc3VwcG9ydGluZy10ZXh0LWxpbmUtaGVpZ2h0LCAxNHB4KTtmb250LXNpemU6dmFyKC0tbWRjLWRpYWxvZy1zdXBwb3J0aW5nLXRleHQtc2l6ZSwgMTRweCk7Zm9udC13ZWlnaHQ6dmFyKC0tbWRjLWRpYWxvZy1zdXBwb3J0aW5nLXRleHQtd2VpZ2h0LCA1MDApO2xldHRlci1zcGFjaW5nOnZhcigtLW1kYy1kaWFsb2ctc3VwcG9ydGluZy10ZXh0LXRyYWNraW5nLCAxcHgpfS5tYXQtbWRjLWRpYWxvZy1jb250YWluZXIgLm1kYy1kaWFsb2dfX2NvbnRlbnR7Y29sb3I6dmFyKC0tbWRjLWRpYWxvZy1zdXBwb3J0aW5nLXRleHQtY29sb3IsIGJsYWNrKX0ubWF0LW1kYy1kaWFsb2ctY29udGFpbmVyIC5tZGMtZGlhbG9nX19jb250YWluZXJ7dHJhbnNpdGlvbi1kdXJhdGlvbjp2YXIoLS1tYXQtZGlhbG9nLXRyYW5zaXRpb24tZHVyYXRpb24sIDBtcyl9Lm1hdC1tZGMtZGlhbG9nLWNvbnRhaW5lci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWRjLWRpYWxvZ19fY29udGFpbmVye3RyYW5zaXRpb246bm9uZX0ubWF0LW1kYy1kaWFsb2ctY29udGVudHtkaXNwbGF5OmJsb2NrfS5tYXQtbWRjLWRpYWxvZy1hY3Rpb25ze2p1c3RpZnktY29udGVudDpzdGFydH0ubWF0LW1kYy1kaWFsb2ctYWN0aW9ucy5tYXQtbWRjLWRpYWxvZy1hY3Rpb25zLWFsaWduLWNlbnRlciwubWF0LW1kYy1kaWFsb2ctYWN0aW9uc1thbGlnbj1jZW50ZXJde2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lm1hdC1tZGMtZGlhbG9nLWFjdGlvbnMubWF0LW1kYy1kaWFsb2ctYWN0aW9ucy1hbGlnbi1lbmQsLm1hdC1tZGMtZGlhbG9nLWFjdGlvbnNbYWxpZ249ZW5kXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9Lm1hdC1tZGMtZGlhbG9nLWFjdGlvbnMgLm1hdC1idXR0b24tYmFzZSsubWF0LWJ1dHRvbi1iYXNlLC5tYXQtbWRjLWRpYWxvZy1hY3Rpb25zIC5tYXQtbWRjLWJ1dHRvbi1iYXNlKy5tYXQtbWRjLWJ1dHRvbi1iYXNle21hcmdpbi1sZWZ0OjhweH1bZGlyPXJ0bF0gLm1hdC1tZGMtZGlhbG9nLWFjdGlvbnMgLm1hdC1idXR0b24tYmFzZSsubWF0LWJ1dHRvbi1iYXNlLFtkaXI9cnRsXSAubWF0LW1kYy1kaWFsb2ctYWN0aW9ucyAubWF0LW1kYy1idXR0b24tYmFzZSsubWF0LW1kYy1idXR0b24tYmFzZXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDo4cHh9J10sZW5jYXBzdWxhdGlvbjoyfSksbn0pKCksVmw9Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkpe3RoaXMuX3JlZj10LHRoaXMuX2NvbnRhaW5lckluc3RhbmNlPWksdGhpcy5fYWZ0ZXJPcGVuZWQ9bmV3IEVlLHRoaXMuX2JlZm9yZUNsb3NlZD1uZXcgRWUsdGhpcy5fc3RhdGU9MCx0aGlzLmRpc2FibGVDbG9zZT1lLmRpc2FibGVDbG9zZSx0aGlzLmlkPXQuaWQsaS5fYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLnBpcGUoT2Uocj0+Im9wZW5lZCI9PT1yLnN0YXRlKSxMdCgxKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5fYWZ0ZXJPcGVuZWQubmV4dCgpLHRoaXMuX2FmdGVyT3BlbmVkLmNvbXBsZXRlKCl9KSxpLl9hbmltYXRpb25TdGF0ZUNoYW5nZWQucGlwZShPZShyPT4iY2xvc2VkIj09PXIuc3RhdGUpLEx0KDEpKS5zdWJzY3JpYmUoKCk9PntjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VGYWxsYmFja1RpbWVvdXQpLHRoaXMuX2ZpbmlzaERpYWxvZ0Nsb3NlKCl9KSx0Lm92ZXJsYXlSZWYuZGV0YWNobWVudHMoKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLl9iZWZvcmVDbG9zZWQubmV4dCh0aGlzLl9yZXN1bHQpLHRoaXMuX2JlZm9yZUNsb3NlZC5jb21wbGV0ZSgpLHRoaXMuX2ZpbmlzaERpYWxvZ0Nsb3NlKCl9KSx0bih0aGlzLmJhY2tkcm9wQ2xpY2soKSx0aGlzLmtleWRvd25FdmVudHMoKS5waXBlKE9lKHI9PjI3PT09ci5rZXlDb2RlJiYhdGhpcy5kaXNhYmxlQ2xvc2UmJiFPcihyKSkpKS5zdWJzY3JpYmUocj0+e3RoaXMuZGlzYWJsZUNsb3NlfHwoci5wcmV2ZW50RGVmYXVsdCgpLHk5KHRoaXMsImtleWRvd24iPT09ci50eXBlPyJrZXlib2FyZCI6Im1vdXNlIikpfSl9Y2xvc2UodCl7dGhpcy5fcmVzdWx0PXQsdGhpcy5fY29udGFpbmVySW5zdGFuY2UuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZC5waXBlKE9lKGU9PiJjbG9zaW5nIj09PWUuc3RhdGUpLEx0KDEpKS5zdWJzY3JpYmUoZT0+e3RoaXMuX2JlZm9yZUNsb3NlZC5uZXh0KHQpLHRoaXMuX2JlZm9yZUNsb3NlZC5jb21wbGV0ZSgpLHRoaXMuX3JlZi5vdmVybGF5UmVmLmRldGFjaEJhY2tkcm9wKCksdGhpcy5fY2xvc2VGYWxsYmFja1RpbWVvdXQ9c2V0VGltZW91dCgoKT0+dGhpcy5fZmluaXNoRGlhbG9nQ2xvc2UoKSxlLnRvdGFsVGltZSsxMDApfSksdGhpcy5fc3RhdGU9MSx0aGlzLl9jb250YWluZXJJbnN0YW5jZS5fc3RhcnRFeGl0QW5pbWF0aW9uKCl9YWZ0ZXJPcGVuZWQoKXtyZXR1cm4gdGhpcy5fYWZ0ZXJPcGVuZWR9YWZ0ZXJDbG9zZWQoKXtyZXR1cm4gdGhpcy5fcmVmLmNsb3NlZH1iZWZvcmVDbG9zZWQoKXtyZXR1cm4gdGhpcy5fYmVmb3JlQ2xvc2VkfWJhY2tkcm9wQ2xpY2soKXtyZXR1cm4gdGhpcy5fcmVmLmJhY2tkcm9wQ2xpY2t9a2V5ZG93bkV2ZW50cygpe3JldHVybiB0aGlzLl9yZWYua2V5ZG93bkV2ZW50c311cGRhdGVQb3NpdGlvbih0KXtsZXQgZT10aGlzLl9yZWYuY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3k7cmV0dXJuIHQmJih0LmxlZnR8fHQucmlnaHQpP3QubGVmdD9lLmxlZnQodC5sZWZ0KTplLnJpZ2h0KHQucmlnaHQpOmUuY2VudGVySG9yaXpvbnRhbGx5KCksdCYmKHQudG9wfHx0LmJvdHRvbSk/dC50b3A/ZS50b3AodC50b3ApOmUuYm90dG9tKHQuYm90dG9tKTplLmNlbnRlclZlcnRpY2FsbHkoKSx0aGlzLl9yZWYudXBkYXRlUG9zaXRpb24oKSx0aGlzfXVwZGF0ZVNpemUodD0iIixlPSIiKXtyZXR1cm4gdGhpcy5fcmVmLnVwZGF0ZVNpemUodCxlKSx0aGlzfWFkZFBhbmVsQ2xhc3ModCl7cmV0dXJuIHRoaXMuX3JlZi5hZGRQYW5lbENsYXNzKHQpLHRoaXN9cmVtb3ZlUGFuZWxDbGFzcyh0KXtyZXR1cm4gdGhpcy5fcmVmLnJlbW92ZVBhbmVsQ2xhc3ModCksdGhpc31nZXRTdGF0ZSgpe3JldHVybiB0aGlzLl9zdGF0ZX1fZmluaXNoRGlhbG9nQ2xvc2UoKXt0aGlzLl9zdGF0ZT0yLHRoaXMuX3JlZi5jbG9zZSh0aGlzLl9yZXN1bHQse2ZvY3VzT3JpZ2luOnRoaXMuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlfSksdGhpcy5jb21wb25lbnRJbnN0YW5jZT1udWxsfX07ZnVuY3Rpb24geTkobix0LGUpe3JldHVybiBuLl9jbG9zZUludGVyYWN0aW9uVHlwZT10LG4uY2xvc2UoZSl9dmFyIFh2PW5ldyB0ZSgiTWF0TWRjRGlhbG9nRGF0YSIpLFdiZT1uZXcgdGUoIm1hdC1tZGMtZGlhbG9nLWRlZmF1bHQtb3B0aW9ucyIpLHg5PW5ldyB0ZSgibWF0LW1kYy1kaWFsb2ctc2Nyb2xsLXN0cmF0ZWd5IiksWGJlPXtwcm92aWRlOng5LGRlcHM6W09pXSx1c2VGYWN0b3J5OmZ1bmN0aW9uKG4pe3JldHVybigpPT5uLnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKX19LFliZT0wLFFiZT0oKCk9PntjbGFzcyBue2dldCBvcGVuRGlhbG9ncygpe3JldHVybiB0aGlzLl9wYXJlbnREaWFsb2c/dGhpcy5fcGFyZW50RGlhbG9nLm9wZW5EaWFsb2dzOnRoaXMuX29wZW5EaWFsb2dzQXRUaGlzTGV2ZWx9Z2V0IGFmdGVyT3BlbmVkKCl7cmV0dXJuIHRoaXMuX3BhcmVudERpYWxvZz90aGlzLl9wYXJlbnREaWFsb2cuYWZ0ZXJPcGVuZWQ6dGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbH1fZ2V0QWZ0ZXJBbGxDbG9zZWQoKXtsZXQgZT10aGlzLl9wYXJlbnREaWFsb2c7cmV0dXJuIGU/ZS5fZ2V0QWZ0ZXJBbGxDbG9zZWQoKTp0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsfWNvbnN0cnVjdG9yKGUsaSxyLG8sYSxzLGwsYyxkLHUpe3RoaXMuX292ZXJsYXk9ZSx0aGlzLl9kZWZhdWx0T3B0aW9ucz1yLHRoaXMuX3BhcmVudERpYWxvZz1vLHRoaXMuX2RpYWxvZ1JlZkNvbnN0cnVjdG9yPWwsdGhpcy5fZGlhbG9nQ29udGFpbmVyVHlwZT1jLHRoaXMuX2RpYWxvZ0RhdGFUb2tlbj1kLHRoaXMuX29wZW5EaWFsb2dzQXRUaGlzTGV2ZWw9W10sdGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbD1uZXcgRWUsdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbD1uZXcgRWUsdGhpcy5faWRQcmVmaXg9Im1hdC1kaWFsb2ctIix0aGlzLmRpYWxvZ0NvbmZpZ0NsYXNzPXZnLHRoaXMuYWZ0ZXJBbGxDbG9zZWQ9aXMoKCk9PnRoaXMub3BlbkRpYWxvZ3MubGVuZ3RoP3RoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCk6dGhpcy5fZ2V0QWZ0ZXJBbGxDbG9zZWQoKS5waXBlKGtuKHZvaWQgMCkpKSx0aGlzLl9zY3JvbGxTdHJhdGVneT1zLHRoaXMuX2RpYWxvZz1pLmdldChrMil9b3BlbihlLGkpe2xldCByOyhpPXsuLi50aGlzLl9kZWZhdWx0T3B0aW9uc3x8bmV3IHZnLC4uLml9KS5pZD1pLmlkfHxgJHt0aGlzLl9pZFByZWZpeH0ke1liZSsrfWAsaS5zY3JvbGxTdHJhdGVneT1pLnNjcm9sbFN0cmF0ZWd5fHx0aGlzLl9zY3JvbGxTdHJhdGVneSgpO2xldCBvPXRoaXMuX2RpYWxvZy5vcGVuKGUsey4uLmkscG9zaXRpb25TdHJhdGVneTp0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpLGRpc2FibGVDbG9zZTohMCxjbG9zZU9uRGVzdHJveTohMSxjbG9zZU9uT3ZlcmxheURldGFjaG1lbnRzOiExLGNvbnRhaW5lcjp7dHlwZTp0aGlzLl9kaWFsb2dDb250YWluZXJUeXBlLHByb3ZpZGVyczooKT0+W3twcm92aWRlOnRoaXMuZGlhbG9nQ29uZmlnQ2xhc3MsdXNlVmFsdWU6aX0se3Byb3ZpZGU6UmgsdXNlVmFsdWU6aX1dfSx0ZW1wbGF0ZUNvbnRleHQ6KCk9Pih7ZGlhbG9nUmVmOnJ9KSxwcm92aWRlcnM6KGEscyxsKT0+KHI9bmV3IHRoaXMuX2RpYWxvZ1JlZkNvbnN0cnVjdG9yKGEsaSxsKSxyLnVwZGF0ZVBvc2l0aW9uKGk/LnBvc2l0aW9uKSxbe3Byb3ZpZGU6dGhpcy5fZGlhbG9nQ29udGFpbmVyVHlwZSx1c2VWYWx1ZTpsfSx7cHJvdmlkZTp0aGlzLl9kaWFsb2dEYXRhVG9rZW4sdXNlVmFsdWU6cy5kYXRhfSx7cHJvdmlkZTp0aGlzLl9kaWFsb2dSZWZDb25zdHJ1Y3Rvcix1c2VWYWx1ZTpyfV0pfSk7cmV0dXJuIHIuY29tcG9uZW50SW5zdGFuY2U9by5jb21wb25lbnRJbnN0YW5jZSx0aGlzLm9wZW5EaWFsb2dzLnB1c2gociksdGhpcy5hZnRlck9wZW5lZC5uZXh0KHIpLHIuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCk9PntsZXQgYT10aGlzLm9wZW5EaWFsb2dzLmluZGV4T2Yocik7YT4tMSYmKHRoaXMub3BlbkRpYWxvZ3Muc3BsaWNlKGEsMSksdGhpcy5vcGVuRGlhbG9ncy5sZW5ndGh8fHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkubmV4dCgpKX0pLHJ9Y2xvc2VBbGwoKXt0aGlzLl9jbG9zZURpYWxvZ3ModGhpcy5vcGVuRGlhbG9ncyl9Z2V0RGlhbG9nQnlJZChlKXtyZXR1cm4gdGhpcy5vcGVuRGlhbG9ncy5maW5kKGk9PmkuaWQ9PT1lKX1uZ09uRGVzdHJveSgpe3RoaXMuX2Nsb3NlRGlhbG9ncyh0aGlzLl9vcGVuRGlhbG9nc0F0VGhpc0xldmVsKSx0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsLmNvbXBsZXRlKCksdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbC5jb21wbGV0ZSgpfV9jbG9zZURpYWxvZ3MoZSl7bGV0IGk9ZS5sZW5ndGg7Zm9yKDtpLS07KWVbaV0uY2xvc2UoKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe2NzKCl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCkseXM9KCgpPT57Y2xhc3MgbiBleHRlbmRzIFFiZXtjb25zdHJ1Y3RvcihlLGkscixvLGEscyxsLGMpe3N1cGVyKGUsaSxvLHMsbCxhLFZsLEdiZSxYdixjKSx0aGlzLl9pZFByZWZpeD0ibWF0LW1kYy1kaWFsb2ctIn19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhPaSksTyh3aSksTyhEYiw4KSxPKFdiZSw4KSxPKHg5KSxPKG4sMTIpLE8oX2cpLE8ocGksOCkpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLFpiZT0wLFoxPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIpe3RoaXMuZGlhbG9nUmVmPWUsdGhpcy5fZWxlbWVudFJlZj1pLHRoaXMuX2RpYWxvZz1yLHRoaXMudHlwZT0iYnV0dG9uIn1uZ09uSW5pdCgpe3RoaXMuZGlhbG9nUmVmfHwodGhpcy5kaWFsb2dSZWY9TTkodGhpcy5fZWxlbWVudFJlZix0aGlzLl9kaWFsb2cub3BlbkRpYWxvZ3MpKX1uZ09uQ2hhbmdlcyhlKXtsZXQgaT1lLl9tYXREaWFsb2dDbG9zZXx8ZS5fbWF0RGlhbG9nQ2xvc2VSZXN1bHQ7aSYmKHRoaXMuZGlhbG9nUmVzdWx0PWkuY3VycmVudFZhbHVlKX1fb25CdXR0b25DbGljayhlKXt5OSh0aGlzLmRpYWxvZ1JlZiwwPT09ZS5zY3JlZW5YJiYwPT09ZS5zY3JlZW5ZPyJrZXlib2FyZCI6Im1vdXNlIix0aGlzLmRpYWxvZ1Jlc3VsdCl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoVmwsOCksQyh4ZSksQyh5cykpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJtYXQtZGlhbG9nLWNsb3NlIiwiIl0sWyIiLCJtYXREaWFsb2dDbG9zZSIsIiJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezEmZSYmQSgiY2xpY2siLGZ1bmN0aW9uKG8pe3JldHVybiBpLl9vbkJ1dHRvbkNsaWNrKG8pfSksMiZlJiZCZSgiYXJpYS1sYWJlbCIsaS5hcmlhTGFiZWx8fG51bGwpKCJ0eXBlIixpLnR5cGUpfSxpbnB1dHM6e2FyaWFMYWJlbDpbImFyaWEtbGFiZWwiLCJhcmlhTGFiZWwiXSx0eXBlOiJ0eXBlIixkaWFsb2dSZXN1bHQ6WyJtYXQtZGlhbG9nLWNsb3NlIiwiZGlhbG9nUmVzdWx0Il0sX21hdERpYWxvZ0Nsb3NlOlsibWF0RGlhbG9nQ2xvc2UiLCJfbWF0RGlhbG9nQ2xvc2UiXX0sZXhwb3J0QXM6WyJtYXREaWFsb2dDbG9zZSJdLGZlYXR1cmVzOltxdF19KSxufSkoKSxDOT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSxyKXt0aGlzLl9kaWFsb2dSZWY9ZSx0aGlzLl9lbGVtZW50UmVmPWksdGhpcy5fZGlhbG9nPXIsdGhpcy5pZD0ibWF0LW1kYy1kaWFsb2ctdGl0bGUtIitaYmUrK31uZ09uSW5pdCgpe3RoaXMuX2RpYWxvZ1JlZnx8KHRoaXMuX2RpYWxvZ1JlZj1NOSh0aGlzLl9lbGVtZW50UmVmLHRoaXMuX2RpYWxvZy5vcGVuRGlhbG9ncykpLHRoaXMuX2RpYWxvZ1JlZiYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2xldCBlPXRoaXMuX2RpYWxvZ1JlZi5fY29udGFpbmVySW5zdGFuY2U7ZSYmIWUuX2FyaWFMYWJlbGxlZEJ5JiYoZS5fYXJpYUxhYmVsbGVkQnk9dGhpcy5pZCl9KX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhWbCw4KSxDKHhlKSxDKHlzKSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsIm1hdC1kaWFsb2ctdGl0bGUiLCIiXSxbIiIsIm1hdERpYWxvZ1RpdGxlIiwiIl1dLGhvc3RBdHRyczpbMSwibWF0LW1kYy1kaWFsb2ctdGl0bGUiLCJtZGMtZGlhbG9nX190aXRsZSJdLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MiZlJiZ3bygiaWQiLGkuaWQpfSxpbnB1dHM6e2lkOiJpZCJ9LGV4cG9ydEFzOlsibWF0RGlhbG9nVGl0bGUiXX0pLG59KSgpLEsxPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJtYXQtZGlhbG9nLWNvbnRlbnQiLCIiXSxbIm1hdC1kaWFsb2ctY29udGVudCJdLFsiIiwibWF0RGlhbG9nQ29udGVudCIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1tZGMtZGlhbG9nLWNvbnRlbnQiLCJtZGMtZGlhbG9nX19jb250ZW50Il19KSxufSkoKSxKMT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy5hbGlnbj0ic3RhcnQifX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siIiwibWF0LWRpYWxvZy1hY3Rpb25zIiwiIl0sWyJtYXQtZGlhbG9nLWFjdGlvbnMiXSxbIiIsIm1hdERpYWxvZ0FjdGlvbnMiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtbWRjLWRpYWxvZy1hY3Rpb25zIiwibWRjLWRpYWxvZ19fYWN0aW9ucyJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MiZlJiZudCgibWF0LW1kYy1kaWFsb2ctYWN0aW9ucy1hbGlnbi1jZW50ZXIiLCJjZW50ZXIiPT09aS5hbGlnbikoIm1hdC1tZGMtZGlhbG9nLWFjdGlvbnMtYWxpZ24tZW5kIiwiZW5kIj09PWkuYWxpZ24pfSxpbnB1dHM6e2FsaWduOiJhbGlnbiJ9fSksbn0pKCk7ZnVuY3Rpb24gTTkobix0KXtsZXQgZT1uLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudDtmb3IoO2UmJiFlLmNsYXNzTGlzdC5jb250YWlucygibWF0LW1kYy1kaWFsb2ctY29udGFpbmVyIik7KWU9ZS5wYXJlbnRFbGVtZW50O3JldHVybiBlP3QuZmluZChpPT5pLmlkPT09ZS5pZCk6bnVsbH12YXIgSHU9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe3Byb3ZpZGVyczpbeXMsWGJlXSxpbXBvcnRzOlttOSxEbyxCbCxkbixkbl19KSxufSkoKSx2OT17cGFyYW1zOntlbnRlckFuaW1hdGlvbkR1cmF0aW9uOiIxNTBtcyIsZXhpdEFuaW1hdGlvbkR1cmF0aW9uOiI3NW1zIn19LEtiZT0oZnIoImRpYWxvZ0NvbnRhaW5lciIsW1NpKCJ2b2lkLCBleGl0Iixybih7b3BhY2l0eTowLHRyYW5zZm9ybToic2NhbGUoMC43KSJ9KSksU2koImVudGVyIixybih7dHJhbnNmb3JtOiJub25lIn0pKSxiaSgiKiA9PiBlbnRlciIsTGIoW01pKCJ7e2VudGVyQW5pbWF0aW9uRHVyYXRpb259fSBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSIscm4oe3RyYW5zZm9ybToibm9uZSIsb3BhY2l0eToxfSkpLHJoKCJAKiIsaWgoKSx7b3B0aW9uYWw6ITB9KV0pLHY5KSxiaSgiKiA9PiB2b2lkLCAqID0+IGV4aXQiLExiKFtNaSgie3tleGl0QW5pbWF0aW9uRHVyYXRpb259fSBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSkiLHJuKHtvcGFjaXR5OjB9KSkscmgoIkAqIixpaCgpLHtvcHRpb25hbDohMH0pXSksdjkpXSksWyJtYXRGb3JtRmllbGROb3RjaGVkT3V0bGluZSIsIiJdKSxKYmU9WyIqIl0sJGJlPVsidGV4dEZpZWxkIl0sZXZlPVsiaWNvblByZWZpeENvbnRhaW5lciJdLHR2ZT1bInRleHRQcmVmaXhDb250YWluZXIiXTtmdW5jdGlvbiBudmUobix0KXsxJm4mJmsoMCwic3BhbiIsMTkpfWZ1bmN0aW9uIGl2ZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImxhYmVsIiwxNyksQSgiY2RrT2JzZXJ2ZUNvbnRlbnQiLGZ1bmN0aW9uKCl7cmV0dXJuIG5lKGUpLGllKHcoMikuX3JlZnJlc2hPdXRsaW5lTm90Y2hXaWR0aCgpKX0pLFR0KDEsMSksUygyLG52ZSwxLDAsInNwYW4iLDE4KSxnKCl9aWYoMiZuKXtsZXQgZT13KDIpO2IoImZsb2F0aW5nIixlLl9zaG91bGRMYWJlbEZsb2F0KCkpKCJjZGtPYnNlcnZlQ29udGVudERpc2FibGVkIiwhZS5faGFzT3V0bGluZSgpKSgiaWQiLGUuX2xhYmVsSWQpLEJlKCJmb3IiLGUuX2NvbnRyb2wuaWQpKCJhcmlhLW93bnMiLGUuX2NvbnRyb2wuaWQpLHYoMiksYigibmdJZiIsIWUuaGlkZVJlcXVpcmVkTWFya2VyJiZlLl9jb250cm9sLnJlcXVpcmVkKX19ZnVuY3Rpb24gcnZlKG4sdCl7MSZuJiZTKDAsaXZlLDMsNiwibGFiZWwiLDE2KSwyJm4mJmIoIm5nSWYiLHcoKS5faGFzRmxvYXRpbmdMYWJlbCgpKX1mdW5jdGlvbiBvdmUobix0KXsxJm4mJmsoMCwiZGl2IiwyMCl9ZnVuY3Rpb24gYXZlKG4sdCl7fWZ1bmN0aW9uIHN2ZShuLHQpezEmbiYmUygwLGF2ZSwwLDAsIm5nLXRlbXBsYXRlIiwyMiksMiZuJiYodygyKSxiKCJuZ1RlbXBsYXRlT3V0bGV0IixzdCgxKSkpfWZ1bmN0aW9uIGx2ZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2IiwyMSksUygxLHN2ZSwxLDEsIm5nLXRlbXBsYXRlIiw5KSxnKCkpLDImbil7bGV0IGU9dygpO2IoIm1hdEZvcm1GaWVsZE5vdGNoZWRPdXRsaW5lT3BlbiIsZS5fc2hvdWxkTGFiZWxGbG9hdCgpKSgibWF0Rm9ybUZpZWxkTm90Y2hlZE91dGxpbmVMYWJlbFdpZHRoIixlLl9sYWJlbFdpZHRoKSx2KDEpLGIoIm5nSWYiLCFlLl9mb3JjZURpc3BsYXlJbmZpeExhYmVsKCkpfX1mdW5jdGlvbiBjdmUobix0KXsxJm4mJihmKDAsImRpdiIsMjMsMjQpLFR0KDIsMiksZygpKX1mdW5jdGlvbiBkdmUobix0KXsxJm4mJihmKDAsImRpdiIsMjUsMjYpLFR0KDIsMyksZygpKX1mdW5jdGlvbiB1dmUobix0KXt9ZnVuY3Rpb24gcHZlKG4sdCl7MSZuJiZTKDAsdXZlLDAsMCwibmctdGVtcGxhdGUiLDIyKSwyJm4mJih3KCksYigibmdUZW1wbGF0ZU91dGxldCIsc3QoMSkpKX1mdW5jdGlvbiBodmUobix0KXsxJm4mJihmKDAsImRpdiIsMjcpLFR0KDEsNCksZygpKX1mdW5jdGlvbiBtdmUobix0KXsxJm4mJihmKDAsImRpdiIsMjgpLFR0KDEsNSksZygpKX1mdW5jdGlvbiBmdmUobix0KXsxJm4mJmsoMCwiZGl2IiwyOSl9ZnVuY3Rpb24gZ3ZlKG4sdCl7MSZuJiYoZigwLCJkaXYiLDMwKSxUdCgxLDYpLGcoKSksMiZuJiZiKCJAdHJhbnNpdGlvbk1lc3NhZ2VzIix3KCkuX3N1YnNjcmlwdEFuaW1hdGlvblN0YXRlKX1mdW5jdGlvbiBfdmUobix0KXtpZigxJm4mJihmKDAsIm1hdC1oaW50IiwzNCksVCgxKSxnKCkpLDImbil7bGV0IGU9dygyKTtiKCJpZCIsZS5faGludExhYmVsSWQpLHYoMSksa3QoZS5oaW50TGFiZWwpfX1mdW5jdGlvbiBidmUobix0KXtpZigxJm4mJihmKDAsImRpdiIsMzEpLFMoMSxfdmUsMiwyLCJtYXQtaGludCIsMzIpLFR0KDIsNyksaygzLCJkaXYiLDMzKSxUdCg0LDgpLGcoKSksMiZuKXtsZXQgZT13KCk7YigiQHRyYW5zaXRpb25NZXNzYWdlcyIsZS5fc3Vic2NyaXB0QW5pbWF0aW9uU3RhdGUpLHYoMSksYigibmdJZiIsZS5oaW50TGFiZWwpfX12YXIgdnZlPVsiKiIsW1sibWF0LWxhYmVsIl1dLFtbIiIsIm1hdFByZWZpeCIsIiJdLFsiIiwibWF0SWNvblByZWZpeCIsIiJdXSxbWyIiLCJtYXRUZXh0UHJlZml4IiwiIl1dLFtbIiIsIm1hdFRleHRTdWZmaXgiLCIiXV0sW1siIiwibWF0U3VmZml4IiwiIl0sWyIiLCJtYXRJY29uU3VmZml4IiwiIl1dLFtbIm1hdC1lcnJvciJdLFsiIiwibWF0RXJyb3IiLCIiXV0sW1sibWF0LWhpbnQiLDMsImFsaWduIiwiZW5kIl1dLFtbIm1hdC1oaW50IiwiYWxpZ24iLCJlbmQiXV1dLHl2ZT1bIioiLCJtYXQtbGFiZWwiLCJbbWF0UHJlZml4XSwgW21hdEljb25QcmVmaXhdIiwiW21hdFRleHRQcmVmaXhdIiwiW21hdFRleHRTdWZmaXhdIiwiW21hdFN1ZmZpeF0sIFttYXRJY29uU3VmZml4XSIsIm1hdC1lcnJvciwgW21hdEVycm9yXSIsIm1hdC1oaW50Om5vdChbYWxpZ249J2VuZCddKSIsIm1hdC1oaW50W2FsaWduPSdlbmQnXSJdLG5sPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyJtYXQtbGFiZWwiXV19KSxufSkoKSx4dmU9MCxQOT1uZXcgdGUoIk1hdEVycm9yIiksazk9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkpe3RoaXMuaWQ9Im1hdC1tZGMtZXJyb3ItIit4dmUrKyxlfHxpLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWxpdmUiLCJwb2xpdGUiKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTW8oImFyaWEtbGl2ZSIpLEMoeGUpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1sibWF0LWVycm9yIl0sWyIiLCJtYXRFcnJvciIsIiJdXSxob3N0QXR0cnM6WyJhcmlhLWF0b21pYyIsInRydWUiLDEsIm1hdC1tZGMtZm9ybS1maWVsZC1lcnJvciIsIm1hdC1tZGMtZm9ybS1maWVsZC1ib3R0b20tYWxpZ24iXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezImZSYmd28oImlkIixpLmlkKX0saW5wdXRzOntpZDoiaWQifSxmZWF0dXJlczpbVnQoW3twcm92aWRlOlA5LHVzZUV4aXN0aW5nOm59XSldfSksbn0pKCksQ3ZlPTAsdzk9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMuYWxpZ249InN0YXJ0Iix0aGlzLmlkPSJtYXQtbWRjLWhpbnQtIitDdmUrK319cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIm1hdC1oaW50Il1dLGhvc3RBdHRyczpbMSwibWF0LW1kYy1mb3JtLWZpZWxkLWhpbnQiLCJtYXQtbWRjLWZvcm0tZmllbGQtYm90dG9tLWFsaWduIl0saG9zdFZhcnM6NCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsyJmUmJih3bygiaWQiLGkuaWQpLEJlKCJhbGlnbiIsbnVsbCksbnQoIm1hdC1tZGMtZm9ybS1maWVsZC1oaW50LWVuZCIsImVuZCI9PT1pLmFsaWduKSl9LGlucHV0czp7YWxpZ246ImFsaWduIixpZDoiaWQifX0pLG59KSgpLE85PW5ldyB0ZSgiTWF0UHJlZml4IiksRjk9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMuX2lzVGV4dD0hMX1zZXQgX2lzVGV4dFNlbGVjdG9yKGUpe3RoaXMuX2lzVGV4dD0hMH19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsIm1hdFByZWZpeCIsIiJdLFsiIiwibWF0SWNvblByZWZpeCIsIiJdLFsiIiwibWF0VGV4dFByZWZpeCIsIiJdXSxpbnB1dHM6e19pc1RleHRTZWxlY3RvcjpbIm1hdFRleHRQcmVmaXgiLCJfaXNUZXh0U2VsZWN0b3IiXX0sZmVhdHVyZXM6W1Z0KFt7cHJvdmlkZTpPOSx1c2VFeGlzdGluZzpufV0pXX0pLG59KSgpLE12ZT1uZXcgdGUoIk1hdFN1ZmZpeCIpLFM5PSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5fZWxlbWVudFJlZj1lLHRoaXMuZmxvYXRpbmc9ITF9Z2V0V2lkdGgoKXtyZXR1cm4gZnVuY3Rpb24obil7aWYobnVsbCE9PW4ub2Zmc2V0UGFyZW50KXJldHVybiBuLnNjcm9sbFdpZHRoO2xldCBlPW4uY2xvbmVOb2RlKCEwKTtlLnN0eWxlLnNldFByb3BlcnR5KCJwb3NpdGlvbiIsImFic29sdXRlIiksZS5zdHlsZS5zZXRQcm9wZXJ0eSgidHJhbnNmb3JtIiwidHJhbnNsYXRlKC05OTk5cHgsIC05OTk5cHgpIiksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGUpO2xldCBpPWUuc2Nyb2xsV2lkdGg7cmV0dXJuIGUucmVtb3ZlKCksaX0odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KX1nZXQgZWxlbWVudCgpe3JldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnR9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1sibGFiZWwiLCJtYXRGb3JtRmllbGRGbG9hdGluZ0xhYmVsIiwiIl1dLGhvc3RBdHRyczpbMSwibWRjLWZsb2F0aW5nLWxhYmVsIiwibWF0LW1kYy1mbG9hdGluZy1sYWJlbCJdLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MiZlJiZudCgibWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSIsaS5mbG9hdGluZyl9LGlucHV0czp7ZmxvYXRpbmc6ImZsb2F0aW5nIn19KSxufSkoKSxFOT0ibWRjLWxpbmUtcmlwcGxlLS1hY3RpdmUiLCQxPSJtZGMtbGluZS1yaXBwbGUtLWRlYWN0aXZhdGluZyIsVDk9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkpe3RoaXMuX2VsZW1lbnRSZWY9ZSx0aGlzLl9oYW5kbGVUcmFuc2l0aW9uRW5kPXI9PntsZXQgbz10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LGE9by5jb250YWlucygkMSk7Im9wYWNpdHkiPT09ci5wcm9wZXJ0eU5hbWUmJmEmJm8ucmVtb3ZlKEU5LCQxKX0saS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e2UubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIix0aGlzLl9oYW5kbGVUcmFuc2l0aW9uRW5kKX0pfWFjdGl2YXRlKCl7bGV0IGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdDtlLnJlbW92ZSgkMSksZS5hZGQoRTkpfWRlYWN0aXZhdGUoKXt0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgkMSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsdGhpcy5faGFuZGxlVHJhbnNpdGlvbkVuZCl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMob3QpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siZGl2IiwibWF0Rm9ybUZpZWxkTGluZVJpcHBsZSIsIiJdXSxob3N0QXR0cnM6WzEsIm1kYy1saW5lLXJpcHBsZSJdfSksbn0pKCksRDk9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkpe3RoaXMuX2VsZW1lbnRSZWY9ZSx0aGlzLl9uZ1pvbmU9aSx0aGlzLmxhYmVsV2lkdGg9MCx0aGlzLm9wZW49ITF9bmdBZnRlclZpZXdJbml0KCl7bGV0IGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tZGMtZmxvYXRpbmctbGFiZWwiKTtlPyh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQiKSwiZnVuY3Rpb24iPT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lJiYoZS5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb249IjBzIix0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PmUuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uPSIiKX0pKSk6dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoIm1kYy1ub3RjaGVkLW91dGxpbmUtLW5vLWxhYmVsIil9X2dldE5vdGNoV2lkdGgoKXtyZXR1cm4gdGhpcy5vcGVuP3RoaXMubGFiZWxXaWR0aD4wP2BjYWxjKCR7dGhpcy5sYWJlbFdpZHRofXB4ICogdmFyKC0tbWF0LW1kYy1mb3JtLWZpZWxkLWZsb2F0aW5nLWxhYmVsLXNjYWxlLCAwLjc1KSArIDlweClgOiIwcHgiOm51bGx9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMob3QpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJkaXYiLCJtYXRGb3JtRmllbGROb3RjaGVkT3V0bGluZSIsIiJdXSxob3N0QXR0cnM6WzEsIm1kYy1ub3RjaGVkLW91dGxpbmUiXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezImZSYmbnQoIm1kYy1ub3RjaGVkLW91dGxpbmUtLW5vdGNoZWQiLGkub3Blbil9LGlucHV0czp7bGFiZWxXaWR0aDpbIm1hdEZvcm1GaWVsZE5vdGNoZWRPdXRsaW5lTGFiZWxXaWR0aCIsImxhYmVsV2lkdGgiXSxvcGVuOlsibWF0Rm9ybUZpZWxkTm90Y2hlZE91dGxpbmVPcGVuIiwib3BlbiJdfSxhdHRyczpLYmUsbmdDb250ZW50U2VsZWN0b3JzOkpiZSxkZWNsczo0LHZhcnM6Mixjb25zdHM6W1sxLCJtZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nIl0sWzEsIm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoIl0sWzEsIm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZm4oKSxrKDAsImRpdiIsMCksZigxLCJkaXYiLDEpLFR0KDIpLGcoKSxrKDMsImRpdiIsMikpLDImZSYmKHYoMSksQnQoIndpZHRoIixpLl9nZXROb3RjaFdpZHRoKCkpKX0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksU3ZlPXt0cmFuc2l0aW9uTWVzc2FnZXM6ZnIoInRyYW5zaXRpb25NZXNzYWdlcyIsW1NpKCJlbnRlciIscm4oe29wYWNpdHk6MSx0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMCUpIn0pKSxiaSgidm9pZCA9PiBlbnRlciIsW3JuKHtvcGFjaXR5OjAsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC01cHgpIn0pLE1pKCIzMDBtcyBjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKSIpXSldKX0sWXY9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm59KSxufSkoKSxQaD1uZXcgdGUoIk1hdEZvcm1GaWVsZCIpLEV2ZT1uZXcgdGUoIk1BVF9GT1JNX0ZJRUxEX0RFRkFVTFRfT1BUSU9OUyIpLEk5PTAsUGM9KCgpPT57Y2xhc3MgbntnZXQgaGlkZVJlcXVpcmVkTWFya2VyKCl7cmV0dXJuIHRoaXMuX2hpZGVSZXF1aXJlZE1hcmtlcn1zZXQgaGlkZVJlcXVpcmVkTWFya2VyKGUpe3RoaXMuX2hpZGVSZXF1aXJlZE1hcmtlcj12dChlKX1nZXQgZmxvYXRMYWJlbCgpe3JldHVybiB0aGlzLl9mbG9hdExhYmVsfHx0aGlzLl9kZWZhdWx0cz8uZmxvYXRMYWJlbHx8ImF1dG8ifXNldCBmbG9hdExhYmVsKGUpe2UhPT10aGlzLl9mbG9hdExhYmVsJiYodGhpcy5fZmxvYXRMYWJlbD1lLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1nZXQgYXBwZWFyYW5jZSgpe3JldHVybiB0aGlzLl9hcHBlYXJhbmNlfXNldCBhcHBlYXJhbmNlKGUpe2xldCBpPXRoaXMuX2FwcGVhcmFuY2U7dGhpcy5fYXBwZWFyYW5jZT1lfHx0aGlzLl9kZWZhdWx0cz8uYXBwZWFyYW5jZXx8ImZpbGwiLCJvdXRsaW5lIj09PXRoaXMuX2FwcGVhcmFuY2UmJnRoaXMuX2FwcGVhcmFuY2UhPT1pJiYodGhpcy5fcmVmcmVzaE91dGxpbmVOb3RjaFdpZHRoKCksdGhpcy5fbmVlZHNPdXRsaW5lTGFiZWxPZmZzZXRVcGRhdGVPblN0YWJsZT0hMCl9Z2V0IHN1YnNjcmlwdFNpemluZygpe3JldHVybiB0aGlzLl9zdWJzY3JpcHRTaXppbmd8fHRoaXMuX2RlZmF1bHRzPy5zdWJzY3JpcHRTaXppbmd8fCJmaXhlZCJ9c2V0IHN1YnNjcmlwdFNpemluZyhlKXt0aGlzLl9zdWJzY3JpcHRTaXppbmc9ZXx8dGhpcy5fZGVmYXVsdHM/LnN1YnNjcmlwdFNpemluZ3x8ImZpeGVkIn1nZXQgaGludExhYmVsKCl7cmV0dXJuIHRoaXMuX2hpbnRMYWJlbH1zZXQgaGludExhYmVsKGUpe3RoaXMuX2hpbnRMYWJlbD1lLHRoaXMuX3Byb2Nlc3NIaW50cygpfWdldCBfY29udHJvbCgpe3JldHVybiB0aGlzLl9leHBsaWNpdEZvcm1GaWVsZENvbnRyb2x8fHRoaXMuX2Zvcm1GaWVsZENvbnRyb2x9c2V0IF9jb250cm9sKGUpe3RoaXMuX2V4cGxpY2l0Rm9ybUZpZWxkQ29udHJvbD1lfWNvbnN0cnVjdG9yKGUsaSxyLG8sYSxzLGwsYyl7dGhpcy5fZWxlbWVudFJlZj1lLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWksdGhpcy5fbmdab25lPXIsdGhpcy5fZGlyPW8sdGhpcy5fcGxhdGZvcm09YSx0aGlzLl9kZWZhdWx0cz1zLHRoaXMuX2FuaW1hdGlvbk1vZGU9bCx0aGlzLl9kb2N1bWVudD1jLHRoaXMuX2hpZGVSZXF1aXJlZE1hcmtlcj0hMSx0aGlzLmNvbG9yPSJwcmltYXJ5Iix0aGlzLl9hcHBlYXJhbmNlPSJmaWxsIix0aGlzLl9zdWJzY3JpcHRTaXppbmc9bnVsbCx0aGlzLl9oaW50TGFiZWw9IiIsdGhpcy5faGFzSWNvblByZWZpeD0hMSx0aGlzLl9oYXNUZXh0UHJlZml4PSExLHRoaXMuX2hhc0ljb25TdWZmaXg9ITEsdGhpcy5faGFzVGV4dFN1ZmZpeD0hMSx0aGlzLl9sYWJlbElkPSJtYXQtbWRjLWZvcm0tZmllbGQtbGFiZWwtIitJOSsrLHRoaXMuX2hpbnRMYWJlbElkPSJtYXQtbWRjLWhpbnQtIitJOSsrLHRoaXMuX3N1YnNjcmlwdEFuaW1hdGlvblN0YXRlPSIiLHRoaXMuX2xhYmVsV2lkdGg9MCx0aGlzLl9kZXN0cm95ZWQ9bmV3IEVlLHRoaXMuX2lzRm9jdXNlZD1udWxsLHRoaXMuX25lZWRzT3V0bGluZUxhYmVsT2Zmc2V0VXBkYXRlT25TdGFibGU9ITEscyYmKHMuYXBwZWFyYW5jZSYmKHRoaXMuYXBwZWFyYW5jZT1zLmFwcGVhcmFuY2UpLHRoaXMuX2hpZGVSZXF1aXJlZE1hcmtlcj1Cb29sZWFuKHM/LmhpZGVSZXF1aXJlZE1hcmtlcikscy5jb2xvciYmKHRoaXMuY29sb3I9cy5jb2xvcikpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX3VwZGF0ZUZvY3VzU3RhdGUoKSx0aGlzLl9yZWZyZXNoT3V0bGluZU5vdGNoV2lkdGgoKSx0aGlzLl9kb2N1bWVudD8uZm9udHM/LnJlYWR5P3RoaXMuX2RvY3VtZW50LmZvbnRzLnJlYWR5LnRoZW4oKCk9Pnt0aGlzLl9yZWZyZXNoT3V0bGluZU5vdGNoV2lkdGgoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX0pOnNldFRpbWVvdXQoKCk9PnRoaXMuX3JlZnJlc2hPdXRsaW5lTm90Y2hXaWR0aCgpLDEwMCksdGhpcy5fc3Vic2NyaXB0QW5pbWF0aW9uU3RhdGU9ImVudGVyIix0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5fYXNzZXJ0Rm9ybUZpZWxkQ29udHJvbCgpLHRoaXMuX2luaXRpYWxpemVDb250cm9sKCksdGhpcy5faW5pdGlhbGl6ZVN1YnNjcmlwdCgpLHRoaXMuX2luaXRpYWxpemVQcmVmaXhBbmRTdWZmaXgoKSx0aGlzLl9pbml0aWFsaXplT3V0bGluZUxhYmVsT2Zmc2V0U3Vic2NyaXB0aW9ucygpfW5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpe3RoaXMuX2Fzc2VydEZvcm1GaWVsZENvbnRyb2woKX1uZ09uRGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZC5uZXh0KCksdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCl9Z2V0TGFiZWxJZCgpe3JldHVybiB0aGlzLl9oYXNGbG9hdGluZ0xhYmVsKCk/dGhpcy5fbGFiZWxJZDpudWxsfWdldENvbm5lY3RlZE92ZXJsYXlPcmlnaW4oKXtyZXR1cm4gdGhpcy5fdGV4dEZpZWxkfHx0aGlzLl9lbGVtZW50UmVmfV9hbmltYXRlQW5kTG9ja0xhYmVsKCl7dGhpcy5faGFzRmxvYXRpbmdMYWJlbCgpJiYodGhpcy5mbG9hdExhYmVsPSJhbHdheXMiKX1faW5pdGlhbGl6ZUNvbnRyb2woKXtsZXQgZT10aGlzLl9jb250cm9sO2UuY29udHJvbFR5cGUmJnRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBtYXQtbWRjLWZvcm0tZmllbGQtdHlwZS0ke2UuY29udHJvbFR5cGV9YCksZS5zdGF0ZUNoYW5nZXMuc3Vic2NyaWJlKCgpPT57dGhpcy5fdXBkYXRlRm9jdXNTdGF0ZSgpLHRoaXMuX3N5bmNEZXNjcmliZWRCeUlkcygpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfSksZS5uZ0NvbnRyb2wmJmUubmdDb250cm9sLnZhbHVlQ2hhbmdlcyYmZS5uZ0NvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoaXQodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpPT50aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9X2NoZWNrUHJlZml4QW5kU3VmZml4VHlwZXMoKXt0aGlzLl9oYXNJY29uUHJlZml4PSEhdGhpcy5fcHJlZml4Q2hpbGRyZW4uZmluZChlPT4hZS5faXNUZXh0KSx0aGlzLl9oYXNUZXh0UHJlZml4PSEhdGhpcy5fcHJlZml4Q2hpbGRyZW4uZmluZChlPT5lLl9pc1RleHQpLHRoaXMuX2hhc0ljb25TdWZmaXg9ISF0aGlzLl9zdWZmaXhDaGlsZHJlbi5maW5kKGU9PiFlLl9pc1RleHQpLHRoaXMuX2hhc1RleHRTdWZmaXg9ISF0aGlzLl9zdWZmaXhDaGlsZHJlbi5maW5kKGU9PmUuX2lzVGV4dCl9X2luaXRpYWxpemVQcmVmaXhBbmRTdWZmaXgoKXt0aGlzLl9jaGVja1ByZWZpeEFuZFN1ZmZpeFR5cGVzKCksdG4odGhpcy5fcHJlZml4Q2hpbGRyZW4uY2hhbmdlcyx0aGlzLl9zdWZmaXhDaGlsZHJlbi5jaGFuZ2VzKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLl9jaGVja1ByZWZpeEFuZFN1ZmZpeFR5cGVzKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KX1faW5pdGlhbGl6ZVN1YnNjcmlwdCgpe3RoaXMuX2hpbnRDaGlsZHJlbi5jaGFuZ2VzLnN1YnNjcmliZSgoKT0+e3RoaXMuX3Byb2Nlc3NIaW50cygpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfSksdGhpcy5fZXJyb3JDaGlsZHJlbi5jaGFuZ2VzLnN1YnNjcmliZSgoKT0+e3RoaXMuX3N5bmNEZXNjcmliZWRCeUlkcygpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfSksdGhpcy5fdmFsaWRhdGVIaW50cygpLHRoaXMuX3N5bmNEZXNjcmliZWRCeUlkcygpfV9hc3NlcnRGb3JtRmllbGRDb250cm9sKCl7fV91cGRhdGVGb2N1c1N0YXRlKCl7dGhpcy5fY29udHJvbC5mb2N1c2VkJiYhdGhpcy5faXNGb2N1c2VkPyh0aGlzLl9pc0ZvY3VzZWQ9ITAsdGhpcy5fbGluZVJpcHBsZT8uYWN0aXZhdGUoKSk6IXRoaXMuX2NvbnRyb2wuZm9jdXNlZCYmKHRoaXMuX2lzRm9jdXNlZHx8bnVsbD09PXRoaXMuX2lzRm9jdXNlZCkmJih0aGlzLl9pc0ZvY3VzZWQ9ITEsdGhpcy5fbGluZVJpcHBsZT8uZGVhY3RpdmF0ZSgpKSx0aGlzLl90ZXh0RmllbGQ/Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgibWRjLXRleHQtZmllbGQtLWZvY3VzZWQiLHRoaXMuX2NvbnRyb2wuZm9jdXNlZCl9X2luaXRpYWxpemVPdXRsaW5lTGFiZWxPZmZzZXRTdWJzY3JpcHRpb25zKCl7dGhpcy5fcHJlZml4Q2hpbGRyZW4uY2hhbmdlcy5zdWJzY3JpYmUoKCk9PnRoaXMuX25lZWRzT3V0bGluZUxhYmVsT2Zmc2V0VXBkYXRlT25TdGFibGU9ITApLHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKGl0KHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKT0+e3RoaXMuX25lZWRzT3V0bGluZUxhYmVsT2Zmc2V0VXBkYXRlT25TdGFibGUmJih0aGlzLl9uZWVkc091dGxpbmVMYWJlbE9mZnNldFVwZGF0ZU9uU3RhYmxlPSExLHRoaXMuX3VwZGF0ZU91dGxpbmVMYWJlbE9mZnNldCgpKX0pfSksdGhpcy5fZGlyLmNoYW5nZS5waXBlKGl0KHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKT0+dGhpcy5fbmVlZHNPdXRsaW5lTGFiZWxPZmZzZXRVcGRhdGVPblN0YWJsZT0hMCl9X3Nob3VsZEFsd2F5c0Zsb2F0KCl7cmV0dXJuImFsd2F5cyI9PT10aGlzLmZsb2F0TGFiZWx9X2hhc091dGxpbmUoKXtyZXR1cm4ib3V0bGluZSI9PT10aGlzLmFwcGVhcmFuY2V9X2ZvcmNlRGlzcGxheUluZml4TGFiZWwoKXtyZXR1cm4hdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyJiZ0aGlzLl9wcmVmaXhDaGlsZHJlbi5sZW5ndGgmJiF0aGlzLl9zaG91bGRMYWJlbEZsb2F0KCl9X2hhc0Zsb2F0aW5nTGFiZWwoKXtyZXR1cm4hIXRoaXMuX2xhYmVsQ2hpbGROb25TdGF0aWN8fCEhdGhpcy5fbGFiZWxDaGlsZFN0YXRpY31fc2hvdWxkTGFiZWxGbG9hdCgpe3JldHVybiB0aGlzLl9jb250cm9sLnNob3VsZExhYmVsRmxvYXR8fHRoaXMuX3Nob3VsZEFsd2F5c0Zsb2F0KCl9X3Nob3VsZEZvcndhcmQoZSl7bGV0IGk9dGhpcy5fY29udHJvbD90aGlzLl9jb250cm9sLm5nQ29udHJvbDpudWxsO3JldHVybiBpJiZpW2VdfV9nZXREaXNwbGF5ZWRNZXNzYWdlcygpe3JldHVybiB0aGlzLl9lcnJvckNoaWxkcmVuJiZ0aGlzLl9lcnJvckNoaWxkcmVuLmxlbmd0aD4wJiZ0aGlzLl9jb250cm9sLmVycm9yU3RhdGU/ImVycm9yIjoiaGludCJ9X3JlZnJlc2hPdXRsaW5lTm90Y2hXaWR0aCgpeyF0aGlzLl9oYXNPdXRsaW5lKCl8fCF0aGlzLl9mbG9hdGluZ0xhYmVsfHwodGhpcy5fbGFiZWxXaWR0aD10aGlzLl9mbG9hdGluZ0xhYmVsLmdldFdpZHRoKCkpfV9wcm9jZXNzSGludHMoKXt0aGlzLl92YWxpZGF0ZUhpbnRzKCksdGhpcy5fc3luY0Rlc2NyaWJlZEJ5SWRzKCl9X3ZhbGlkYXRlSGludHMoKXt9X3N5bmNEZXNjcmliZWRCeUlkcygpe2lmKHRoaXMuX2NvbnRyb2wpe2xldCBlPVtdO2lmKHRoaXMuX2NvbnRyb2wudXNlckFyaWFEZXNjcmliZWRCeSYmInN0cmluZyI9PXR5cGVvZiB0aGlzLl9jb250cm9sLnVzZXJBcmlhRGVzY3JpYmVkQnkmJmUucHVzaCguLi50aGlzLl9jb250cm9sLnVzZXJBcmlhRGVzY3JpYmVkQnkuc3BsaXQoIiAiKSksImhpbnQiPT09dGhpcy5fZ2V0RGlzcGxheWVkTWVzc2FnZXMoKSl7bGV0IGk9dGhpcy5faGludENoaWxkcmVuP3RoaXMuX2hpbnRDaGlsZHJlbi5maW5kKG89PiJzdGFydCI9PT1vLmFsaWduKTpudWxsLHI9dGhpcy5faGludENoaWxkcmVuP3RoaXMuX2hpbnRDaGlsZHJlbi5maW5kKG89PiJlbmQiPT09by5hbGlnbik6bnVsbDtpP2UucHVzaChpLmlkKTp0aGlzLl9oaW50TGFiZWwmJmUucHVzaCh0aGlzLl9oaW50TGFiZWxJZCksciYmZS5wdXNoKHIuaWQpfWVsc2UgdGhpcy5fZXJyb3JDaGlsZHJlbiYmZS5wdXNoKC4uLnRoaXMuX2Vycm9yQ2hpbGRyZW4ubWFwKGk9PmkuaWQpKTt0aGlzLl9jb250cm9sLnNldERlc2NyaWJlZEJ5SWRzKGUpfX1fdXBkYXRlT3V0bGluZUxhYmVsT2Zmc2V0KCl7aWYoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcnx8IXRoaXMuX2hhc091dGxpbmUoKXx8IXRoaXMuX2Zsb2F0aW5nTGFiZWwpcmV0dXJuO2xldCBlPXRoaXMuX2Zsb2F0aW5nTGFiZWwuZWxlbWVudDtpZighdGhpcy5faWNvblByZWZpeENvbnRhaW5lciYmIXRoaXMuX3RleHRQcmVmaXhDb250YWluZXIpcmV0dXJuIHZvaWQoZS5zdHlsZS50cmFuc2Zvcm09IiIpO2lmKCF0aGlzLl9pc0F0dGFjaGVkVG9Eb20oKSlyZXR1cm4gdm9pZCh0aGlzLl9uZWVkc091dGxpbmVMYWJlbE9mZnNldFVwZGF0ZU9uU3RhYmxlPSEwKTtsZXQgaT10aGlzLl9pY29uUHJlZml4Q29udGFpbmVyPy5uYXRpdmVFbGVtZW50LHI9dGhpcy5fdGV4dFByZWZpeENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCxvPWk/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoPz8wLGE9cj8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg/PzA7ZS5zdHlsZS50cmFuc2Zvcm09YHZhcihcbiAgICAgICAgLS1tYXQtbWRjLWZvcm0tZmllbGQtbGFiZWwtdHJhbnNmb3JtLFxuICAgICAgICB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoY2FsYygkeyJydGwiPT09dGhpcy5fZGlyLnZhbHVlPyItMSI6IjEifSAqICgke28rYX1weCArIHZhcigtLW1hdC1tZGMtZm9ybS1maWVsZC1sYWJlbC1vZmZzZXQteCwgMHB4KSkpKVxuICAgIClgfV9pc0F0dGFjaGVkVG9Eb20oKXtsZXQgZT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7aWYoZS5nZXRSb290Tm9kZSl7bGV0IGk9ZS5nZXRSb290Tm9kZSgpO3JldHVybiBpJiZpIT09ZX1yZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbnRhaW5zKGUpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSxDKFF0KSxDKG90KSxDKHppKSxDKFZuKSxDKEV2ZSw4KSxDKHBpLDgpLEMoTnQpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtYXQtZm9ybS1maWVsZCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihlLGkscil7aWYoMSZlJiYoQm4ocixubCw1KSxCbihyLG5sLDcpLEJuKHIsWXYsNSksQm4ocixPOSw1KSxCbihyLE12ZSw1KSxCbihyLFA5LDUpLEJuKHIsdzksNSkpLDImZSl7bGV0IG87YmUobz12ZSgpKSYmKGkuX2xhYmVsQ2hpbGROb25TdGF0aWM9by5maXJzdCksYmUobz12ZSgpKSYmKGkuX2xhYmVsQ2hpbGRTdGF0aWM9by5maXJzdCksYmUobz12ZSgpKSYmKGkuX2Zvcm1GaWVsZENvbnRyb2w9by5maXJzdCksYmUobz12ZSgpKSYmKGkuX3ByZWZpeENoaWxkcmVuPW8pLGJlKG89dmUoKSkmJihpLl9zdWZmaXhDaGlsZHJlbj1vKSxiZShvPXZlKCkpJiYoaS5fZXJyb3JDaGlsZHJlbj1vKSxiZShvPXZlKCkpJiYoaS5faGludENoaWxkcmVuPW8pfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiYoVWUoJGJlLDUpLFVlKGV2ZSw1KSxVZSh0dmUsNSksVWUoUzksNSksVWUoRDksNSksVWUoVDksNSkpLDImZSl7bGV0IHI7YmUocj12ZSgpKSYmKGkuX3RleHRGaWVsZD1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS5faWNvblByZWZpeENvbnRhaW5lcj1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS5fdGV4dFByZWZpeENvbnRhaW5lcj1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS5fZmxvYXRpbmdMYWJlbD1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS5fbm90Y2hlZE91dGxpbmU9ci5maXJzdCksYmUocj12ZSgpKSYmKGkuX2xpbmVSaXBwbGU9ci5maXJzdCl9fSxob3N0QXR0cnM6WzEsIm1hdC1tZGMtZm9ybS1maWVsZCJdLGhvc3RWYXJzOjQyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezImZSYmbnQoIm1hdC1tZGMtZm9ybS1maWVsZC1sYWJlbC1hbHdheXMtZmxvYXQiLGkuX3Nob3VsZEFsd2F5c0Zsb2F0KCkpKCJtYXQtbWRjLWZvcm0tZmllbGQtaGFzLWljb24tcHJlZml4IixpLl9oYXNJY29uUHJlZml4KSgibWF0LW1kYy1mb3JtLWZpZWxkLWhhcy1pY29uLXN1ZmZpeCIsaS5faGFzSWNvblN1ZmZpeCkoIm1hdC1mb3JtLWZpZWxkLWludmFsaWQiLGkuX2NvbnRyb2wuZXJyb3JTdGF0ZSkoIm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIixpLl9jb250cm9sLmRpc2FibGVkKSgibWF0LWZvcm0tZmllbGQtYXV0b2ZpbGxlZCIsaS5fY29udHJvbC5hdXRvZmlsbGVkKSgibWF0LWZvcm0tZmllbGQtbm8tYW5pbWF0aW9ucyIsIk5vb3BBbmltYXRpb25zIj09PWkuX2FuaW1hdGlvbk1vZGUpKCJtYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwiLCJmaWxsIj09aS5hcHBlYXJhbmNlKSgibWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIiwib3V0bGluZSI9PWkuYXBwZWFyYW5jZSkoIm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIiLGkuX2hhc0Zsb2F0aW5nTGFiZWwoKSYmIWkuX3Nob3VsZExhYmVsRmxvYXQoKSkoIm1hdC1mb2N1c2VkIixpLl9jb250cm9sLmZvY3VzZWQpKCJtYXQtcHJpbWFyeSIsImFjY2VudCIhPT1pLmNvbG9yJiYid2FybiIhPT1pLmNvbG9yKSgibWF0LWFjY2VudCIsImFjY2VudCI9PT1pLmNvbG9yKSgibWF0LXdhcm4iLCJ3YXJuIj09PWkuY29sb3IpKCJuZy11bnRvdWNoZWQiLGkuX3Nob3VsZEZvcndhcmQoInVudG91Y2hlZCIpKSgibmctdG91Y2hlZCIsaS5fc2hvdWxkRm9yd2FyZCgidG91Y2hlZCIpKSgibmctcHJpc3RpbmUiLGkuX3Nob3VsZEZvcndhcmQoInByaXN0aW5lIikpKCJuZy1kaXJ0eSIsaS5fc2hvdWxkRm9yd2FyZCgiZGlydHkiKSkoIm5nLXZhbGlkIixpLl9zaG91bGRGb3J3YXJkKCJ2YWxpZCIpKSgibmctaW52YWxpZCIsaS5fc2hvdWxkRm9yd2FyZCgiaW52YWxpZCIpKSgibmctcGVuZGluZyIsaS5fc2hvdWxkRm9yd2FyZCgicGVuZGluZyIpKX0saW5wdXRzOntoaWRlUmVxdWlyZWRNYXJrZXI6ImhpZGVSZXF1aXJlZE1hcmtlciIsY29sb3I6ImNvbG9yIixmbG9hdExhYmVsOiJmbG9hdExhYmVsIixhcHBlYXJhbmNlOiJhcHBlYXJhbmNlIixzdWJzY3JpcHRTaXppbmc6InN1YnNjcmlwdFNpemluZyIsaGludExhYmVsOiJoaW50TGFiZWwifSxleHBvcnRBczpbIm1hdEZvcm1GaWVsZCJdLGZlYXR1cmVzOltWdChbe3Byb3ZpZGU6UGgsdXNlRXhpc3Rpbmc6bn1dKV0sbmdDb250ZW50U2VsZWN0b3JzOnl2ZSxkZWNsczoxOCx2YXJzOjIzLGNvbnN0czpbWyJsYWJlbFRlbXBsYXRlIiwiIl0sWzEsIm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyIiwibWRjLXRleHQtZmllbGQiLDMsImNsaWNrIl0sWyJ0ZXh0RmllbGQiLCIiXSxbImNsYXNzIiwibWF0LW1kYy1mb3JtLWZpZWxkLWZvY3VzLW92ZXJsYXkiLDQsIm5nSWYiXSxbMSwibWF0LW1kYy1mb3JtLWZpZWxkLWZsZXgiXSxbIm1hdEZvcm1GaWVsZE5vdGNoZWRPdXRsaW5lIiwiIiwzLCJtYXRGb3JtRmllbGROb3RjaGVkT3V0bGluZU9wZW4iLCJtYXRGb3JtRmllbGROb3RjaGVkT3V0bGluZUxhYmVsV2lkdGgiLDQsIm5nSWYiXSxbImNsYXNzIiwibWF0LW1kYy1mb3JtLWZpZWxkLWljb24tcHJlZml4Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm1hdC1tZGMtZm9ybS1maWVsZC10ZXh0LXByZWZpeCIsNCwibmdJZiJdLFsxLCJtYXQtbWRjLWZvcm0tZmllbGQtaW5maXgiXSxbMywibmdJZiJdLFsiY2xhc3MiLCJtYXQtbWRjLWZvcm0tZmllbGQtdGV4dC1zdWZmaXgiLDQsIm5nSWYiXSxbImNsYXNzIiwibWF0LW1kYy1mb3JtLWZpZWxkLWljb24tc3VmZml4Iiw0LCJuZ0lmIl0sWyJtYXRGb3JtRmllbGRMaW5lUmlwcGxlIiwiIiw0LCJuZ0lmIl0sWzEsIm1hdC1tZGMtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciIsIm1hdC1tZGMtZm9ybS1maWVsZC1ib3R0b20tYWxpZ24iLDMsIm5nU3dpdGNoIl0sWyJjbGFzcyIsIm1hdC1tZGMtZm9ybS1maWVsZC1lcnJvci13cmFwcGVyIiw0LCJuZ1N3aXRjaENhc2UiXSxbImNsYXNzIiwibWF0LW1kYy1mb3JtLWZpZWxkLWhpbnQtd3JhcHBlciIsNCwibmdTd2l0Y2hDYXNlIl0sWyJtYXRGb3JtRmllbGRGbG9hdGluZ0xhYmVsIiwiIiwzLCJmbG9hdGluZyIsImNka09ic2VydmVDb250ZW50RGlzYWJsZWQiLCJpZCIsImNka09ic2VydmVDb250ZW50Iiw0LCJuZ0lmIl0sWyJtYXRGb3JtRmllbGRGbG9hdGluZ0xhYmVsIiwiIiwzLCJmbG9hdGluZyIsImNka09ic2VydmVDb250ZW50RGlzYWJsZWQiLCJpZCIsImNka09ic2VydmVDb250ZW50Il0sWyJhcmlhLWhpZGRlbiIsInRydWUiLCJjbGFzcyIsIm1hdC1tZGMtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIgbWRjLWZsb2F0aW5nLWxhYmVsLS1yZXF1aXJlZCIsNCwibmdJZiJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJtYXQtbWRjLWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIiwibWRjLWZsb2F0aW5nLWxhYmVsLS1yZXF1aXJlZCJdLFsxLCJtYXQtbWRjLWZvcm0tZmllbGQtZm9jdXMtb3ZlcmxheSJdLFsibWF0Rm9ybUZpZWxkTm90Y2hlZE91dGxpbmUiLCIiLDMsIm1hdEZvcm1GaWVsZE5vdGNoZWRPdXRsaW5lT3BlbiIsIm1hdEZvcm1GaWVsZE5vdGNoZWRPdXRsaW5lTGFiZWxXaWR0aCJdLFszLCJuZ1RlbXBsYXRlT3V0bGV0Il0sWzEsIm1hdC1tZGMtZm9ybS1maWVsZC1pY29uLXByZWZpeCJdLFsiaWNvblByZWZpeENvbnRhaW5lciIsIiJdLFsxLCJtYXQtbWRjLWZvcm0tZmllbGQtdGV4dC1wcmVmaXgiXSxbInRleHRQcmVmaXhDb250YWluZXIiLCIiXSxbMSwibWF0LW1kYy1mb3JtLWZpZWxkLXRleHQtc3VmZml4Il0sWzEsIm1hdC1tZGMtZm9ybS1maWVsZC1pY29uLXN1ZmZpeCJdLFsibWF0Rm9ybUZpZWxkTGluZVJpcHBsZSIsIiJdLFsxLCJtYXQtbWRjLWZvcm0tZmllbGQtZXJyb3Itd3JhcHBlciJdLFsxLCJtYXQtbWRjLWZvcm0tZmllbGQtaGludC13cmFwcGVyIl0sWzMsImlkIiw0LCJuZ0lmIl0sWzEsIm1hdC1tZGMtZm9ybS1maWVsZC1oaW50LXNwYWNlciJdLFszLCJpZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGZuKHZ2ZSksUygwLHJ2ZSwxLDEsIm5nLXRlbXBsYXRlIixudWxsLDAsanQpLGYoMiwiZGl2IiwxLDIpLEEoImNsaWNrIixmdW5jdGlvbihvKXtyZXR1cm4gaS5fY29udHJvbC5vbkNvbnRhaW5lckNsaWNrJiZpLl9jb250cm9sLm9uQ29udGFpbmVyQ2xpY2sobyl9KSxTKDQsb3ZlLDEsMCwiZGl2IiwzKSxmKDUsImRpdiIsNCksUyg2LGx2ZSwyLDMsImRpdiIsNSksUyg3LGN2ZSwzLDAsImRpdiIsNiksUyg4LGR2ZSwzLDAsImRpdiIsNyksZig5LCJkaXYiLDgpLFMoMTAscHZlLDEsMSwibmctdGVtcGxhdGUiLDkpLFR0KDExKSxnKCksUygxMixodmUsMiwwLCJkaXYiLDEwKSxTKDEzLG12ZSwyLDAsImRpdiIsMTEpLGcoKSxTKDE0LGZ2ZSwxLDAsImRpdiIsMTIpLGcoKSxmKDE1LCJkaXYiLDEzKSxTKDE2LGd2ZSwyLDEsImRpdiIsMTQpLFMoMTcsYnZlLDUsMiwiZGl2IiwxNSksZygpKSwyJmUmJih2KDIpLG50KCJtZGMtdGV4dC1maWVsZC0tZmlsbGVkIiwhaS5faGFzT3V0bGluZSgpKSgibWRjLXRleHQtZmllbGQtLW91dGxpbmVkIixpLl9oYXNPdXRsaW5lKCkpKCJtZGMtdGV4dC1maWVsZC0tbm8tbGFiZWwiLCFpLl9oYXNGbG9hdGluZ0xhYmVsKCkpKCJtZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQiLGkuX2NvbnRyb2wuZGlzYWJsZWQpKCJtZGMtdGV4dC1maWVsZC0taW52YWxpZCIsaS5fY29udHJvbC5lcnJvclN0YXRlKSx2KDIpLGIoIm5nSWYiLCFpLl9oYXNPdXRsaW5lKCkmJiFpLl9jb250cm9sLmRpc2FibGVkKSx2KDIpLGIoIm5nSWYiLGkuX2hhc091dGxpbmUoKSksdigxKSxiKCJuZ0lmIixpLl9oYXNJY29uUHJlZml4KSx2KDEpLGIoIm5nSWYiLGkuX2hhc1RleHRQcmVmaXgpLHYoMiksYigibmdJZiIsIWkuX2hhc091dGxpbmUoKXx8aS5fZm9yY2VEaXNwbGF5SW5maXhMYWJlbCgpKSx2KDIpLGIoIm5nSWYiLGkuX2hhc1RleHRTdWZmaXgpLHYoMSksYigibmdJZiIsaS5faGFzSWNvblN1ZmZpeCksdigxKSxiKCJuZ0lmIiwhaS5faGFzT3V0bGluZSgpKSx2KDEpLG50KCJtYXQtbWRjLWZvcm0tZmllbGQtc3Vic2NyaXB0LWR5bmFtaWMtc2l6ZSIsImR5bmFtaWMiPT09aS5zdWJzY3JpcHRTaXppbmcpLGIoIm5nU3dpdGNoIixpLl9nZXREaXNwbGF5ZWRNZXNzYWdlcygpKSx2KDEpLGIoIm5nU3dpdGNoQ2FzZSIsImVycm9yIiksdigxKSxiKCJuZ1N3aXRjaENhc2UiLCJoaW50IikpfSxkZXBlbmRlbmNpZXM6W05lLGVvLG1yLGtyLE8xLHc5LFM5LEQ5LFQ5XSxzdHlsZXM6WycubWRjLXRleHQtZmllbGR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1tZGMtc2hhcGUtc21hbGwsIDRweCk7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6YmFzZWxpbmU7cGFkZGluZzowIDE2cHg7cG9zaXRpb246cmVsYXRpdmU7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmhpZGRlbjt3aWxsLWNoYW5nZTpvcGFjaXR5LHRyYW5zZm9ybSxjb2xvcn0ubWRjLXRleHQtZmllbGQgLm1kYy1mbG9hdGluZy1sYWJlbHt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1kYy10ZXh0LWZpZWxkX19pbnB1dHtoZWlnaHQ6MjhweDt3aWR0aDoxMDAlO21pbi13aWR0aDowO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kOm5vbmU7YXBwZWFyYW5jZTpub25lO3BhZGRpbmc6MH0ubWRjLXRleHQtZmllbGRfX2lucHV0OjotbXMtY2xlYXJ7ZGlzcGxheTpub25lfS5tZGMtdGV4dC1maWVsZF9faW5wdXQ6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvcntkaXNwbGF5Om5vbmV9Lm1kYy10ZXh0LWZpZWxkX19pbnB1dDpmb2N1c3tvdXRsaW5lOm5vbmV9Lm1kYy10ZXh0LWZpZWxkX19pbnB1dDppbnZhbGlke2JveC1zaGFkb3c6bm9uZX1AbWVkaWEgYWxsey5tZGMtdGV4dC1maWVsZF9faW5wdXQ6OnBsYWNlaG9sZGVye29wYWNpdHk6MH19QG1lZGlhIGFsbHsubWRjLXRleHQtZmllbGRfX2lucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcntvcGFjaXR5OjB9fUBtZWRpYSBhbGx7Lm1kYy10ZXh0LWZpZWxkLS1uby1sYWJlbCAubWRjLXRleHQtZmllbGRfX2lucHV0OjpwbGFjZWhvbGRlciwubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDo6cGxhY2Vob2xkZXJ7b3BhY2l0eToxfX1AbWVkaWEgYWxsey5tZGMtdGV4dC1maWVsZC0tbm8tbGFiZWwgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIsLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye29wYWNpdHk6MX19Lm1kYy10ZXh0LWZpZWxkX19hZmZpeHtoZWlnaHQ6MjhweDtvcGFjaXR5OjA7d2hpdGUtc3BhY2U6bm93cmFwfS5tZGMtdGV4dC1maWVsZC0tbGFiZWwtZmxvYXRpbmcgLm1kYy10ZXh0LWZpZWxkX19hZmZpeCwubWRjLXRleHQtZmllbGQtLW5vLWxhYmVsIC5tZGMtdGV4dC1maWVsZF9fYWZmaXh7b3BhY2l0eToxfUBzdXBwb3J0cygtd2Via2l0LWh5cGhlbnM6IG5vbmUpey5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19hZmZpeHthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtoZWlnaHQ6MTAwJX19Lm1kYy10ZXh0LWZpZWxkX19hZmZpeC0tcHJlZml4e3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MnB4fVtkaXI9cnRsXSAubWRjLXRleHQtZmllbGRfX2FmZml4LS1wcmVmaXgsLm1kYy10ZXh0LWZpZWxkX19hZmZpeC0tcHJlZml4W2Rpcj1ydGxde3BhZGRpbmctbGVmdDoycHg7cGFkZGluZy1yaWdodDowfS5tZGMtdGV4dC1maWVsZC0tZW5kLWFsaWduZWQgLm1kYy10ZXh0LWZpZWxkX19hZmZpeC0tcHJlZml4e3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MTJweH1bZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkLS1lbmQtYWxpZ25lZCAubWRjLXRleHQtZmllbGRfX2FmZml4LS1wcmVmaXgsLm1kYy10ZXh0LWZpZWxkLS1lbmQtYWxpZ25lZCAubWRjLXRleHQtZmllbGRfX2FmZml4LS1wcmVmaXhbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjEycHg7cGFkZGluZy1yaWdodDowfS5tZGMtdGV4dC1maWVsZF9fYWZmaXgtLXN1ZmZpeHtwYWRkaW5nLWxlZnQ6MTJweDtwYWRkaW5nLXJpZ2h0OjB9W2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZF9fYWZmaXgtLXN1ZmZpeCwubWRjLXRleHQtZmllbGRfX2FmZml4LS1zdWZmaXhbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDoxMnB4fS5tZGMtdGV4dC1maWVsZC0tZW5kLWFsaWduZWQgLm1kYy10ZXh0LWZpZWxkX19hZmZpeC0tc3VmZml4e3BhZGRpbmctbGVmdDoycHg7cGFkZGluZy1yaWdodDowfVtkaXI9cnRsXSAubWRjLXRleHQtZmllbGQtLWVuZC1hbGlnbmVkIC5tZGMtdGV4dC1maWVsZF9fYWZmaXgtLXN1ZmZpeCwubWRjLXRleHQtZmllbGQtLWVuZC1hbGlnbmVkIC5tZGMtdGV4dC1maWVsZF9fYWZmaXgtLXN1ZmZpeFtkaXI9cnRsXXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjJweH0ubWRjLXRleHQtZmllbGQtLWZpbGxlZHtoZWlnaHQ6NTZweH0ubWRjLXRleHQtZmllbGQtLWZpbGxlZDo6YmVmb3Jle2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjA7aGVpZ2h0OjQwcHg7Y29udGVudDoiIjt2ZXJ0aWNhbC1hbGlnbjowfS5tZGMtdGV4dC1maWVsZC0tZmlsbGVkIC5tZGMtZmxvYXRpbmctbGFiZWx7bGVmdDoxNnB4O3JpZ2h0OmluaXRpYWx9W2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZC0tZmlsbGVkIC5tZGMtZmxvYXRpbmctbGFiZWwsLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQgLm1kYy1mbG9hdGluZy1sYWJlbFtkaXI9cnRsXXtsZWZ0OmluaXRpYWw7cmlnaHQ6MTZweH0ubWRjLXRleHQtZmllbGQtLWZpbGxlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTA2JSkgc2NhbGUoMC43NSl9Lm1kYy10ZXh0LWZpZWxkLS1maWxsZWQubWRjLXRleHQtZmllbGQtLW5vLWxhYmVsIC5tZGMtdGV4dC1maWVsZF9faW5wdXR7aGVpZ2h0OjEwMCV9Lm1kYy10ZXh0LWZpZWxkLS1maWxsZWQubWRjLXRleHQtZmllbGQtLW5vLWxhYmVsIC5tZGMtZmxvYXRpbmctbGFiZWx7ZGlzcGxheTpub25lfS5tZGMtdGV4dC1maWVsZC0tZmlsbGVkLm1kYy10ZXh0LWZpZWxkLS1uby1sYWJlbDo6YmVmb3Jle2Rpc3BsYXk6bm9uZX1Ac3VwcG9ydHMoLXdlYmtpdC1oeXBoZW5zOiBub25lKXsubWRjLXRleHQtZmllbGQtLWZpbGxlZC5tZGMtdGV4dC1maWVsZC0tbm8tbGFiZWwgLm1kYy10ZXh0LWZpZWxkX19hZmZpeHthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtoZWlnaHQ6MTAwJX19Lm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZHtoZWlnaHQ6NTZweDtvdmVyZmxvdzp2aXNpYmxlfS5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTM3LjI1cHgpIHNjYWxlKDEpfS5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmV7Zm9udC1zaXplOi43NXJlbX0ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3Zle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0zNC43NXB4KSBzY2FsZSgwLjc1KX0ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3Zle2ZvbnQtc2l6ZToxcmVtfS5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dHtoZWlnaHQ6MTAwJX0ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5ne2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLW1kYy1zaGFwZS1zbWFsbCwgNHB4KX1bZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nW2Rpcj1ydGxde2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1tZGMtc2hhcGUtc21hbGwsIDRweCk7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH1Ac3VwcG9ydHModG9wOiBtYXgoMCUpKXsubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5ne3dpZHRoOm1heCgxMnB4LCB2YXIoLS1tZGMtc2hhcGUtc21hbGwsIDRweCkpfX1Ac3VwcG9ydHModG9wOiBtYXgoMCUpKXsubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaHttYXgtd2lkdGg6Y2FsYygxMDAlIC0gbWF4KDEycHgsIHZhcigtLW1kYy1zaGFwZS1zbWFsbCwgNHB4KSkqMil9fS5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1tZGMtc2hhcGUtc21hbGwsIDRweCk7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH1bZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcsLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmdbZGlyPXJ0bF17Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1tZGMtc2hhcGUtc21hbGwsIDRweCk7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpfUBzdXBwb3J0cyh0b3A6IG1heCgwJSkpey5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWR7cGFkZGluZy1sZWZ0Om1heCgxNnB4LCBjYWxjKHZhcigtLW1kYy1zaGFwZS1zbWFsbCwgNHB4KSArIDRweCkpfX1Ac3VwcG9ydHModG9wOiBtYXgoMCUpKXsubWRjLXRleHQtZmllbGQtLW91dGxpbmVke3BhZGRpbmctcmlnaHQ6bWF4KDE2cHgsIHZhcigtLW1kYy1zaGFwZS1zbWFsbCwgNHB4KSl9fUBzdXBwb3J0cyh0b3A6IG1heCgwJSkpey5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQrLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5le3BhZGRpbmctbGVmdDptYXgoMTZweCwgY2FsYyh2YXIoLS1tZGMtc2hhcGUtc21hbGwsIDRweCkgKyA0cHgpKX19QHN1cHBvcnRzKHRvcDogbWF4KDAlKSl7Lm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCsubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmV7cGFkZGluZy1yaWdodDptYXgoMTZweCwgdmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpKX19Lm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb257cGFkZGluZy1sZWZ0OjB9QHN1cHBvcnRzKHRvcDogbWF4KDAlKSl7Lm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb257cGFkZGluZy1yaWdodDptYXgoMTZweCwgdmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpKX19W2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uW2Rpcj1ydGxde3BhZGRpbmctcmlnaHQ6MH1Ac3VwcG9ydHModG9wOiBtYXgoMCUpKXtbZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24sLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb25bZGlyPXJ0bF17cGFkZGluZy1sZWZ0Om1heCgxNnB4LCB2YXIoLS1tZGMtc2hhcGUtc21hbGwsIDRweCkpfX0ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb257cGFkZGluZy1yaWdodDowfUBzdXBwb3J0cyh0b3A6IG1heCgwJSkpey5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbntwYWRkaW5nLWxlZnQ6bWF4KDE2cHgsIGNhbGModmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpICsgNHB4KSl9fVtkaXI9cnRsXSAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24sLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uW2Rpcj1ydGxde3BhZGRpbmctbGVmdDowfUBzdXBwb3J0cyh0b3A6IG1heCgwJSkpe1tkaXI9cnRsXSAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24sLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uW2Rpcj1ydGxde3BhZGRpbmctcmlnaHQ6bWF4KDE2cHgsIGNhbGModmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpICsgNHB4KSl9fS5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb257cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfS5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLW5vdGNoZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoe3BhZGRpbmctdG9wOjFweH0ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWx7bGVmdDo0cHg7cmlnaHQ6aW5pdGlhbH1bZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbFtkaXI9cnRsXXtsZWZ0OmluaXRpYWw7cmlnaHQ6NHB4fS5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dHtkaXNwbGF5OmZsZXg7Ym9yZGVyOm5vbmUgIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCl9Lm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZXt6LWluZGV4OjF9Lm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYXtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87cGFkZGluZzowfS5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy1mbG9hdGluZy1sYWJlbHt0b3A6MTlweH0ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtZmxvYXRpbmctbGFiZWw6bm90KC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlKXt0cmFuc2Zvcm06bm9uZX0ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtdGV4dC1maWVsZF9faW5wdXR7ZmxleC1ncm93OjE7aGVpZ2h0OmF1dG87bWluLWhlaWdodDoxLjVyZW07b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDtyZXNpemU6bm9uZTtwYWRkaW5nOjAgMTZweH0ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQ6OmJlZm9yZXtkaXNwbGF5Om5vbmV9Lm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tZmlsbGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3Zle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMC4yNXB4KSBzY2FsZSgwLjc1KX0ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dHttYXJnaW4tdG9wOjIzcHg7bWFyZ2luLWJvdHRvbTo5cHh9Lm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tZmlsbGVkLm1kYy10ZXh0LWZpZWxkLS1uby1sYWJlbCAubWRjLXRleHQtZmllbGRfX2lucHV0e21hcmdpbi10b3A6MTZweDttYXJnaW4tYm90dG9tOjE2cHh9Lm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLW5vdGNoZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoe3BhZGRpbmctdG9wOjB9Lm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTI3LjI1cHgpIHNjYWxlKDEpfS5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3Zle2ZvbnQtc2l6ZTouNzVyZW19Lm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3Zle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0yNC43NXB4KSBzY2FsZSgwLjc1KX0ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSwubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmV7Zm9udC1zaXplOjFyZW19Lm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dHttYXJnaW4tdG9wOjE2cHg7bWFyZ2luLWJvdHRvbToxNnB4fS5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWx7dG9wOjE4cHh9Lm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0td2l0aC1pbnRlcm5hbC1jb3VudGVyIC5tZGMtdGV4dC1maWVsZF9faW5wdXR7bWFyZ2luLWJvdHRvbToycHh9Lm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0td2l0aC1pbnRlcm5hbC1jb3VudGVyIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlcnthbGlnbi1zZWxmOmZsZXgtZW5kO3BhZGRpbmc6MCAxNnB4fS5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLXdpdGgtaW50ZXJuYWwtY291bnRlciAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXI6OmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjA7aGVpZ2h0OjE2cHg7Y29udGVudDoiIjt2ZXJ0aWNhbC1hbGlnbjotMTZweH0ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS13aXRoLWludGVybmFsLWNvdW50ZXIgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyOjpiZWZvcmV7ZGlzcGxheTpub25lfS5tZGMtdGV4dC1maWVsZF9fcmVzaXplcnthbGlnbi1zZWxmOnN0cmV0Y2g7ZGlzcGxheTppbmxpbmUtZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1ncm93OjE7bWF4LWhlaWdodDoxMDAlO21heC13aWR0aDoxMDAlO21pbi1oZWlnaHQ6NTZweDttaW4td2lkdGg6Zml0LWNvbnRlbnQ7bWluLXdpZHRoOi1tb3otYXZhaWxhYmxlO21pbi13aWR0aDotd2Via2l0LWZpbGwtYXZhaWxhYmxlO292ZXJmbG93OmhpZGRlbjtyZXNpemU6Ym90aH0ubWRjLXRleHQtZmllbGQtLWZpbGxlZCAubWRjLXRleHQtZmllbGRfX3Jlc2l6ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCl9Lm1kYy10ZXh0LWZpZWxkLS1maWxsZWQgLm1kYy10ZXh0LWZpZWxkX19yZXNpemVyIC5tZGMtdGV4dC1maWVsZF9faW5wdXQsLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQgLm1kYy10ZXh0LWZpZWxkX19yZXNpemVyIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxcHgpfS5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19yZXNpemVye3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xcHgpIHRyYW5zbGF0ZVkoLTFweCl9W2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19yZXNpemVyLC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19yZXNpemVyW2Rpcj1ydGxde3RyYW5zZm9ybTp0cmFuc2xhdGVYKDFweCkgdHJhbnNsYXRlWSgtMXB4KX0ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9fcmVzaXplciAubWRjLXRleHQtZmllbGRfX2lucHV0LC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19yZXNpemVyIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxcHgpIHRyYW5zbGF0ZVkoMXB4KX1bZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX3Jlc2l6ZXIgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCxbZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX3Jlc2l6ZXIgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19yZXNpemVyIC5tZGMtdGV4dC1maWVsZF9faW5wdXRbZGlyPXJ0bF0sLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX3Jlc2l6ZXIgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyW2Rpcj1ydGxde3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xcHgpIHRyYW5zbGF0ZVkoMXB4KX0ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29ue3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MTZweH1bZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbiwubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uW2Rpcj1ydGxde3BhZGRpbmctbGVmdDoxNnB4O3BhZGRpbmctcmlnaHQ6MH0ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQgLm1kYy1mbG9hdGluZy1sYWJlbHttYXgtd2lkdGg6Y2FsYygxMDAlIC0gNDhweCk7bGVmdDo0OHB4O3JpZ2h0OmluaXRpYWx9W2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWZpbGxlZCAubWRjLWZsb2F0aW5nLWxhYmVsLC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWZpbGxlZCAubWRjLWZsb2F0aW5nLWxhYmVsW2Rpcj1ydGxde2xlZnQ6aW5pdGlhbDtyaWdodDo0OHB4fS5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWZpbGxlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZXttYXgtd2lkdGg6Y2FsYygxMDAlIC8gMC43NSAtIDY0cHggLyAwLjc1KX0ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVse2xlZnQ6MzZweDtyaWdodDppbml0aWFsfVtkaXI9cnRsXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPXJ0bF17bGVmdDppbml0aWFsO3JpZ2h0OjM2cHh9Lm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgOm5vdCgubWRjLW5vdGNoZWQtb3V0bGluZS0tbm90Y2hlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoe21heC13aWR0aDpjYWxjKDEwMCUgLSA2MHB4KX0ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMzcuMjVweCkgdHJhbnNsYXRlWCgtMzJweCkgc2NhbGUoMSl9W2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlW2Rpcj1ydGxde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0zNy4yNXB4KSB0cmFuc2xhdGVYKDMycHgpIHNjYWxlKDEpfS5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3Zle2ZvbnQtc2l6ZTouNzVyZW19Lm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3Zle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0zNC43NXB4KSB0cmFuc2xhdGVYKC0zMnB4KSBzY2FsZSgwLjc1KX1bZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsW2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSwubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZVtkaXI9cnRsXSwubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmVbZGlyPXJ0bF17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTM0Ljc1cHgpIHRyYW5zbGF0ZVgoMzJweCkgc2NhbGUoMC43NSl9Lm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3Zle2ZvbnQtc2l6ZToxcmVtfS5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29ue3BhZGRpbmctbGVmdDoxNnB4O3BhZGRpbmctcmlnaHQ6MH1bZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24sLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb25bZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDoxNnB4fS5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQgLm1kYy1mbG9hdGluZy1sYWJlbHttYXgtd2lkdGg6Y2FsYygxMDAlIC0gNjRweCl9Lm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWZpbGxlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZXttYXgtd2lkdGg6Y2FsYygxMDAlIC8gMC43NSAtIDY0cHggLyAwLjc1KX0ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgOm5vdCgubWRjLW5vdGNoZWQtb3V0bGluZS0tbm90Y2hlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoe21heC13aWR0aDpjYWxjKDEwMCUgLSA2MHB4KX0ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb257cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfS5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZmlsbGVkIC5tZGMtZmxvYXRpbmctbGFiZWx7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDk2cHgpfS5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZmlsbGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3Zle21heC13aWR0aDpjYWxjKDEwMCUgLyAwLjc1IC0gOTZweCAvIDAuNzUpfS5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Ym94LXNpemluZzpib3JkZXItYm94fS5tZGMtdGV4dC1maWVsZCsubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmV7cGFkZGluZy1yaWdodDoxNnB4O3BhZGRpbmctbGVmdDoxNnB4fS5tZGMtZm9ybS1maWVsZD4ubWRjLXRleHQtZmllbGQrbGFiZWx7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmd7Ym9yZGVyLXdpZHRoOjJweH0ubWRjLXRleHQtZmllbGQtLWZvY3VzZWQrLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dDpub3QoLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LS12YWxpZGF0aW9uLW1zZyl7b3BhY2l0eToxfS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLW5vdGNoZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoe3BhZGRpbmctdG9wOjJweH0ubWRjLXRleHQtZmllbGQtLWZvY3VzZWQubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLW5vdGNoZWQtb3V0bGluZS0tbm90Y2hlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2h7cGFkZGluZy10b3A6MH0ubWRjLXRleHQtZmllbGQtLWludmFsaWQrLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC0tdmFsaWRhdGlvbi1tc2d7b3BhY2l0eToxfS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWR7cG9pbnRlci1ldmVudHM6bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXR7YmFja2dyb3VuZC1jb2xvcjpXaW5kb3d9Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLWZsb2F0aW5nLWxhYmVse3otaW5kZXg6MX19Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLWZsb2F0aW5nLWxhYmVse2N1cnNvcjpkZWZhdWx0fS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQubWRjLXRleHQtZmllbGQtLWZpbGxlZCAubWRjLXRleHQtZmllbGRfX3JpcHBsZXtkaXNwbGF5Om5vbmV9Lm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2lucHV0e3BvaW50ZXItZXZlbnRzOmF1dG99Lm1kYy10ZXh0LWZpZWxkLS1lbmQtYWxpZ25lZCAubWRjLXRleHQtZmllbGRfX2lucHV0e3RleHQtYWxpZ246cmlnaHR9W2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZC0tZW5kLWFsaWduZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCwubWRjLXRleHQtZmllbGQtLWVuZC1hbGlnbmVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXRbZGlyPXJ0bF17dGV4dC1hbGlnbjpsZWZ0fVtkaXI9cnRsXSAubWRjLXRleHQtZmllbGQtLWx0ci10ZXh0IC5tZGMtdGV4dC1maWVsZF9faW5wdXQsW2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZC0tbHRyLXRleHQgLm1kYy10ZXh0LWZpZWxkX19hZmZpeCwubWRjLXRleHQtZmllbGQtLWx0ci10ZXh0W2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZF9faW5wdXQsLm1kYy10ZXh0LWZpZWxkLS1sdHItdGV4dFtkaXI9cnRsXSAubWRjLXRleHQtZmllbGRfX2FmZml4e2RpcmVjdGlvbjpsdHJ9W2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZC0tbHRyLXRleHQgLm1kYy10ZXh0LWZpZWxkX19hZmZpeC0tcHJlZml4LC5tZGMtdGV4dC1maWVsZC0tbHRyLXRleHRbZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkX19hZmZpeC0tcHJlZml4e3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MnB4fVtkaXI9cnRsXSAubWRjLXRleHQtZmllbGQtLWx0ci10ZXh0IC5tZGMtdGV4dC1maWVsZF9fYWZmaXgtLXN1ZmZpeCwubWRjLXRleHQtZmllbGQtLWx0ci10ZXh0W2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZF9fYWZmaXgtLXN1ZmZpeHtwYWRkaW5nLWxlZnQ6MTJweDtwYWRkaW5nLXJpZ2h0OjB9W2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZC0tbHRyLXRleHQgLm1kYy10ZXh0LWZpZWxkX19pY29uLS1sZWFkaW5nLC5tZGMtdGV4dC1maWVsZC0tbHRyLXRleHRbZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkX19pY29uLS1sZWFkaW5ne29yZGVyOjF9W2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZC0tbHRyLXRleHQgLm1kYy10ZXh0LWZpZWxkX19hZmZpeC0tc3VmZml4LC5tZGMtdGV4dC1maWVsZC0tbHRyLXRleHRbZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkX19hZmZpeC0tc3VmZml4e29yZGVyOjJ9W2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZC0tbHRyLXRleHQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCwubWRjLXRleHQtZmllbGQtLWx0ci10ZXh0W2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZF9faW5wdXR7b3JkZXI6M31bZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkLS1sdHItdGV4dCAubWRjLXRleHQtZmllbGRfX2FmZml4LS1wcmVmaXgsLm1kYy10ZXh0LWZpZWxkLS1sdHItdGV4dFtkaXI9cnRsXSAubWRjLXRleHQtZmllbGRfX2FmZml4LS1wcmVmaXh7b3JkZXI6NH1bZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkLS1sdHItdGV4dCAubWRjLXRleHQtZmllbGRfX2ljb24tLXRyYWlsaW5nLC5tZGMtdGV4dC1maWVsZC0tbHRyLXRleHRbZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkX19pY29uLS10cmFpbGluZ3tvcmRlcjo1fVtkaXI9cnRsXSAubWRjLXRleHQtZmllbGQtLWx0ci10ZXh0Lm1kYy10ZXh0LWZpZWxkLS1lbmQtYWxpZ25lZCAubWRjLXRleHQtZmllbGRfX2lucHV0LC5tZGMtdGV4dC1maWVsZC0tbHRyLXRleHQubWRjLXRleHQtZmllbGQtLWVuZC1hbGlnbmVkW2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZF9faW5wdXR7dGV4dC1hbGlnbjpyaWdodH1bZGlyPXJ0bF0gLm1kYy10ZXh0LWZpZWxkLS1sdHItdGV4dC5tZGMtdGV4dC1maWVsZC0tZW5kLWFsaWduZWQgLm1kYy10ZXh0LWZpZWxkX19hZmZpeC0tcHJlZml4LC5tZGMtdGV4dC1maWVsZC0tbHRyLXRleHQubWRjLXRleHQtZmllbGQtLWVuZC1hbGlnbmVkW2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZF9fYWZmaXgtLXByZWZpeHtwYWRkaW5nLXJpZ2h0OjEycHh9W2Rpcj1ydGxdIC5tZGMtdGV4dC1maWVsZC0tbHRyLXRleHQubWRjLXRleHQtZmllbGQtLWVuZC1hbGlnbmVkIC5tZGMtdGV4dC1maWVsZF9fYWZmaXgtLXN1ZmZpeCwubWRjLXRleHQtZmllbGQtLWx0ci10ZXh0Lm1kYy10ZXh0LWZpZWxkLS1lbmQtYWxpZ25lZFtkaXI9cnRsXSAubWRjLXRleHQtZmllbGRfX2FmZml4LS1zdWZmaXh7cGFkZGluZy1sZWZ0OjJweH0ubWRjLWZsb2F0aW5nLWxhYmVse3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46bGVmdCB0b3A7dHJhbnNmb3JtLW9yaWdpbjpsZWZ0IHRvcDtsaW5lLWhlaWdodDoxLjE1cmVtO3RleHQtYWxpZ246bGVmdDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtjdXJzb3I6dGV4dDtvdmVyZmxvdzpoaWRkZW47d2lsbC1jaGFuZ2U6dHJhbnNmb3JtfVtkaXI9cnRsXSAubWRjLWZsb2F0aW5nLWxhYmVsLC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPXJ0bF17cmlnaHQ6MDtsZWZ0OmF1dG87LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IHRvcDt0cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IHRvcDt0ZXh0LWFsaWduOnJpZ2h0fS5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3Zle2N1cnNvcjphdXRvfS5tZGMtZmxvYXRpbmctbGFiZWwtLXJlcXVpcmVkOm5vdCgubWRjLWZsb2F0aW5nLWxhYmVsLS1oaWRlLXJlcXVpcmVkLW1hcmtlcik6OmFmdGVye21hcmdpbi1sZWZ0OjFweDttYXJnaW4tcmlnaHQ6MHB4O2NvbnRlbnQ6IioifVtkaXI9cnRsXSAubWRjLWZsb2F0aW5nLWxhYmVsLS1yZXF1aXJlZDpub3QoLm1kYy1mbG9hdGluZy1sYWJlbC0taGlkZS1yZXF1aXJlZC1tYXJrZXIpOjphZnRlciwubWRjLWZsb2F0aW5nLWxhYmVsLS1yZXF1aXJlZDpub3QoLm1kYy1mbG9hdGluZy1sYWJlbC0taGlkZS1yZXF1aXJlZC1tYXJrZXIpW2Rpcj1ydGxdOjphZnRlcnttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDoxcHh9Lm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwNiUpIHNjYWxlKDAuNzUpfS5tZGMtbm90Y2hlZC1vdXRsaW5le2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2xlZnQ6MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0ZXh0LWFsaWduOmxlZnQ7cG9pbnRlci1ldmVudHM6bm9uZX1bZGlyPXJ0bF0gLm1kYy1ub3RjaGVkLW91dGxpbmUsLm1kYy1ub3RjaGVkLW91dGxpbmVbZGlyPXJ0bF17dGV4dC1hbGlnbjpyaWdodH0ubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6MTAwJTtib3JkZXItdG9wOjFweCBzb2xpZDtib3JkZXItYm90dG9tOjFweCBzb2xpZDtwb2ludGVyLWV2ZW50czpub25lfS5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5ne2JvcmRlci1sZWZ0OjFweCBzb2xpZDtib3JkZXItcmlnaHQ6bm9uZTt3aWR0aDoxMnB4fVtkaXI9cnRsXSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZ1tkaXI9cnRsXXtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDoxcHggc29saWR9Lm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5ne2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZDtmbGV4LWdyb3c6MX1bZGlyPXJ0bF0gLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nLC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ1tkaXI9cnRsXXtib3JkZXItbGVmdDoxcHggc29saWQ7Ym9yZGVyLXJpZ2h0Om5vbmV9Lm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoe2ZsZXg6MCAwIGF1dG87d2lkdGg6YXV0bzttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMTJweCAqIDIpfS5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtZmxvYXRpbmctbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7bWF4LXdpZHRoOjEwMCV9Lm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmV7dGV4dC1vdmVyZmxvdzpjbGlwfS5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZXttYXgtd2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tZGMtbm90Y2hlZC1vdXRsaW5lLS1ub3RjaGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaHtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjhweDtib3JkZXItdG9wOm5vbmV9W2Rpcj1ydGxdIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS1ub3RjaGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCwubWRjLW5vdGNoZWQtb3V0bGluZS0tbm90Y2hlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2hbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjB9Lm1kYy1ub3RjaGVkLW91dGxpbmUtLW5vLWxhYmVsIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaHtkaXNwbGF5Om5vbmV9Lm1kYy1saW5lLXJpcHBsZTo6YmVmb3JlLC5tZGMtbGluZS1yaXBwbGU6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDt3aWR0aDoxMDAlO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Y29udGVudDoiIn0ubWRjLWxpbmUtcmlwcGxlOjpiZWZvcmV7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHh9Lm1kYy1saW5lLXJpcHBsZTo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHh9Lm1kYy1saW5lLXJpcHBsZTo6YmVmb3Jle3otaW5kZXg6MX0ubWRjLWxpbmUtcmlwcGxlOjphZnRlcnt0cmFuc2Zvcm06c2NhbGVYKDApO29wYWNpdHk6MDt6LWluZGV4OjJ9Lm1kYy1saW5lLXJpcHBsZS0tYWN0aXZlOjphZnRlcnt0cmFuc2Zvcm06c2NhbGVYKDEpO29wYWNpdHk6MX0ubWRjLWxpbmUtcmlwcGxlLS1kZWFjdGl2YXRpbmc6OmFmdGVye29wYWNpdHk6MH0ubWF0LW1kYy1mb3JtLWZpZWxkLXRleHRhcmVhLWNvbnRyb2x7dmVydGljYWwtYWxpZ246bWlkZGxlO3Jlc2l6ZTp2ZXJ0aWNhbDtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OmF1dG87bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjpub25lO292ZXJmbG93OmF1dG99Lm1hdC1tZGMtZm9ybS1maWVsZC1pbnB1dC1jb250cm9sLm1hdC1tZGMtZm9ybS1maWVsZC1pbnB1dC1jb250cm9se2ZvbnQ6aW5oZXJpdDtsZXR0ZXItc3BhY2luZzppbmhlcml0O3RleHQtZGVjb3JhdGlvbjppbmhlcml0O3RleHQtdHJhbnNmb3JtOmluaGVyaXQ7Ym9yZGVyOm5vbmV9Lm1hdC1tZGMtZm9ybS1maWVsZCAubWF0LW1kYy1mbG9hdGluZy1sYWJlbC5tZGMtZmxvYXRpbmctbGFiZWx7bGluZS1oZWlnaHQ6bm9ybWFsO3BvaW50ZXItZXZlbnRzOmFsbH0ubWRjLXRleHQtZmllbGQtLW5vLWxhYmVsOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKSAubWF0LW1kYy1mb3JtLWZpZWxkLWlucHV0LWNvbnRyb2wubWRjLXRleHQtZmllbGRfX2lucHV0LC5tYXQtbWRjLXRleHQtZmllbGQtd3JhcHBlciAubWF0LW1kYy1mb3JtLWZpZWxkLWlucHV0LWNvbnRyb2x7aGVpZ2h0OmF1dG99Lm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyIC5tYXQtbWRjLWZvcm0tZmllbGQtaW5wdXQtY29udHJvbC5tZGMtdGV4dC1maWVsZF9faW5wdXRbdHlwZT1jb2xvcl17aGVpZ2h0OjIzcHh9Lm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVye2hlaWdodDphdXRvO2ZsZXg6YXV0b30ubWF0LW1kYy1mb3JtLWZpZWxkLWhhcy1pY29uLXByZWZpeCAubWF0LW1kYy10ZXh0LWZpZWxkLXdyYXBwZXJ7cGFkZGluZy1sZWZ0OjA7LS1tYXQtbWRjLWZvcm0tZmllbGQtbGFiZWwtb2Zmc2V0LXg6IC0xNnB4fS5tYXQtbWRjLWZvcm0tZmllbGQtaGFzLWljb24tc3VmZml4IC5tYXQtbWRjLXRleHQtZmllbGQtd3JhcHBlcntwYWRkaW5nLXJpZ2h0OjB9W2Rpcj1ydGxdIC5tYXQtbWRjLXRleHQtZmllbGQtd3JhcHBlcntwYWRkaW5nLWxlZnQ6MTZweDtwYWRkaW5nLXJpZ2h0OjE2cHh9W2Rpcj1ydGxdIC5tYXQtbWRjLWZvcm0tZmllbGQtaGFzLWljb24tc3VmZml4IC5tYXQtbWRjLXRleHQtZmllbGQtd3JhcHBlcntwYWRkaW5nLWxlZnQ6MH1bZGlyPXJ0bF0gLm1hdC1tZGMtZm9ybS1maWVsZC1oYXMtaWNvbi1wcmVmaXggLm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVye3BhZGRpbmctcmlnaHQ6MH0ubWF0LW1kYy1mb3JtLWZpZWxkLWxhYmVsLWFsd2F5cy1mbG9hdCAubWRjLXRleHQtZmllbGRfX2lucHV0OjpwbGFjZWhvbGRlcnt0cmFuc2l0aW9uLWRlbGF5OjQwbXM7dHJhbnNpdGlvbi1kdXJhdGlvbjoxMTBtcztvcGFjaXR5OjF9Lm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyIC5tYXQtbWRjLWZvcm0tZmllbGQtaW5maXggLm1hdC1tZGMtZmxvYXRpbmctbGFiZWx7bGVmdDphdXRvO3JpZ2h0OmF1dG99Lm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX2lucHV0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5tYXQtbWRjLWZvcm0tZmllbGQgLm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyLm1kYy10ZXh0LWZpZWxkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaHtwYWRkaW5nLXRvcDowfS5tYXQtbWRjLXRleHQtZmllbGQtd3JhcHBlcjo6YmVmb3Jle2NvbnRlbnQ6bm9uZX0ubWF0LW1kYy1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVye2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvcm0tZmllbGQtaGludC13cmFwcGVyLC5tYXQtbWRjLWZvcm0tZmllbGQtZXJyb3Itd3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtwYWRkaW5nOjAgMTZweH0ubWF0LW1kYy1mb3JtLWZpZWxkLXN1YnNjcmlwdC1keW5hbWljLXNpemUgLm1hdC1tZGMtZm9ybS1maWVsZC1oaW50LXdyYXBwZXIsLm1hdC1tZGMtZm9ybS1maWVsZC1zdWJzY3JpcHQtZHluYW1pYy1zaXplIC5tYXQtbWRjLWZvcm0tZmllbGQtZXJyb3Itd3JhcHBlcntwb3NpdGlvbjpzdGF0aWN9Lm1hdC1tZGMtZm9ybS1maWVsZC1ib3R0b20tYWxpZ246OmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxNnB4fS5tYXQtbWRjLWZvcm0tZmllbGQtYm90dG9tLWFsaWduLm1hdC1tZGMtZm9ybS1maWVsZC1zdWJzY3JpcHQtZHluYW1pYy1zaXplOjpiZWZvcmV7Y29udGVudDp1bnNldH0ubWF0LW1kYy1mb3JtLWZpZWxkLWhpbnQtZW5ke29yZGVyOjF9Lm1hdC1tZGMtZm9ybS1maWVsZC1oaW50LXdyYXBwZXJ7ZGlzcGxheTpmbGV4fS5tYXQtbWRjLWZvcm0tZmllbGQtaGludC1zcGFjZXJ7ZmxleDoxIDAgMWVtfS5tYXQtbWRjLWZvcm0tZmllbGQtZXJyb3J7ZGlzcGxheTpibG9ja30ubWF0LW1kYy1mb3JtLWZpZWxkLWZvY3VzLW92ZXJsYXl7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmV9c2VsZWN0Lm1hdC1tZGMtZm9ybS1maWVsZC1pbnB1dC1jb250cm9sey1tb3otYXBwZWFyYW5jZTpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtkaXNwbGF5OmlubGluZS1mbGV4O2JveC1zaXppbmc6Ym9yZGVyLWJveH1zZWxlY3QubWF0LW1kYy1mb3JtLWZpZWxkLWlucHV0LWNvbnRyb2w6bm90KDpkaXNhYmxlZCl7Y3Vyc29yOnBvaW50ZXJ9Lm1hdC1tZGMtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtbWRjLWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbnRlbnQ6IiI7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItbGVmdDo1cHggc29saWQgcmdiYSgwLDAsMCwwKTtib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHJnYmEoMCwwLDAsMCk7Ym9yZGVyLXRvcDo1cHggc29saWQ7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6NTAlO21hcmdpbi10b3A6LTIuNXB4O3BvaW50ZXItZXZlbnRzOm5vbmV9W2Rpcj1ydGxdIC5tYXQtbWRjLWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LW1kYy1mb3JtLWZpZWxkLWluZml4OjphZnRlcntyaWdodDphdXRvO2xlZnQ6MH0ubWF0LW1kYy1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1tZGMtZm9ybS1maWVsZC1pbnB1dC1jb250cm9se3BhZGRpbmctcmlnaHQ6MTVweH1bZGlyPXJ0bF0gLm1hdC1tZGMtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtbWRjLWZvcm0tZmllbGQtaW5wdXQtY29udHJvbHtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjE1cHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtbWRjLXRleHQtZmllbGQtd3JhcHBlcntvdXRsaW5lOnNvbGlkIDFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVye291dGxpbmUtY29sb3I6R3JheVRleHR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb2N1c2VkIC5tYXQtbWRjLXRleHQtZmllbGQtd3JhcHBlcntvdXRsaW5lOmRhc2hlZCAzcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5le2JvcmRlcjpkYXNoZWQgM3B4fS5tYXQtbWRjLWZvcm0tZmllbGQtaW5wdXQtY29udHJvbFt0eXBlPWRhdGVdLC5tYXQtbWRjLWZvcm0tZmllbGQtaW5wdXQtY29udHJvbFt0eXBlPWRhdGV0aW1lXSwubWF0LW1kYy1mb3JtLWZpZWxkLWlucHV0LWNvbnRyb2xbdHlwZT1kYXRldGltZS1sb2NhbF0sLm1hdC1tZGMtZm9ybS1maWVsZC1pbnB1dC1jb250cm9sW3R5cGU9bW9udGhdLC5tYXQtbWRjLWZvcm0tZmllbGQtaW5wdXQtY29udHJvbFt0eXBlPXdlZWtdLC5tYXQtbWRjLWZvcm0tZmllbGQtaW5wdXQtY29udHJvbFt0eXBlPXRpbWVde2xpbmUtaGVpZ2h0OjF9Lm1hdC1tZGMtZm9ybS1maWVsZC1pbnB1dC1jb250cm9sOjotd2Via2l0LWRhdGV0aW1lLWVkaXR7bGluZS1oZWlnaHQ6MTtwYWRkaW5nOjA7bWFyZ2luLWJvdHRvbTotMnB4fS5tYXQtbWRjLWZvcm0tZmllbGR7LS1tYXQtbWRjLWZvcm0tZmllbGQtZmxvYXRpbmctbGFiZWwtc2NhbGU6IDAuNzU7ZGlzcGxheTppbmxpbmUtZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjA7dGV4dC1hbGlnbjpsZWZ0fVtkaXI9cnRsXSAubWF0LW1kYy1mb3JtLWZpZWxke3RleHQtYWxpZ246cmlnaHR9Lm1hdC1tZGMtZm9ybS1maWVsZC1mbGV4e2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6YmFzZWxpbmU7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCV9Lm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVye3dpZHRoOjEwMCV9Lm1hdC1tZGMtZm9ybS1maWVsZC1pY29uLXByZWZpeCwubWF0LW1kYy1mb3JtLWZpZWxkLWljb24tc3VmZml4e2FsaWduLXNlbGY6Y2VudGVyO2xpbmUtaGVpZ2h0OjA7cG9pbnRlci1ldmVudHM6YXV0b30ubWF0LW1kYy1mb3JtLWZpZWxkLWljb24tcHJlZml4LFtkaXI9cnRsXSAubWF0LW1kYy1mb3JtLWZpZWxkLWljb24tc3VmZml4e3BhZGRpbmc6MCA0cHggMCAwfS5tYXQtbWRjLWZvcm0tZmllbGQtaWNvbi1zdWZmaXgsW2Rpcj1ydGxdIC5tYXQtbWRjLWZvcm0tZmllbGQtaWNvbi1wcmVmaXh7cGFkZGluZzowIDAgMCA0cHh9Lm1hdC1tZGMtZm9ybS1maWVsZC1pY29uLXByZWZpeD4ubWF0LWljb24sLm1hdC1tZGMtZm9ybS1maWVsZC1pY29uLXN1ZmZpeD4ubWF0LWljb257cGFkZGluZzoxMnB4O2JveC1zaXppbmc6Y29udGVudC1ib3h9Lm1hdC1tZGMtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciAubWF0LWljb24sLm1hdC1tZGMtZm9ybS1maWVsZCBsYWJlbCAubWF0LWljb257d2lkdGg6MWVtO2hlaWdodDoxZW07Zm9udC1zaXplOmluaGVyaXR9Lm1hdC1tZGMtZm9ybS1maWVsZC1pbmZpeHtmbGV4OmF1dG87bWluLXdpZHRoOjA7d2lkdGg6MTgwcHg7cG9zaXRpb246cmVsYXRpdmU7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbWRjLWZvcm0tZmllbGQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoe21hcmdpbi1sZWZ0Oi0xcHg7LXdlYmtpdC1jbGlwLXBhdGg6aW5zZXQoLTllbSAtOTk5ZW0gLTllbSAxcHgpO2NsaXAtcGF0aDppbnNldCgtOWVtIC05OTllbSAtOWVtIDFweCl9W2Rpcj1ydGxdIC5tYXQtbWRjLWZvcm0tZmllbGQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoe21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0Oi0xcHg7LXdlYmtpdC1jbGlwLXBhdGg6aW5zZXQoLTllbSAxcHggLTllbSAtOTk5ZW0pO2NsaXAtcGF0aDppbnNldCgtOWVtIDFweCAtOWVtIC05OTllbSl9Lm1hdC1tZGMtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLW5vLWFuaW1hdGlvbnMpIC5tZGMtdGV4dC1maWVsZF9faW5wdXR7dHJhbnNpdGlvbjpvcGFjaXR5IDE1MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpfUBtZWRpYSBhbGx7Lm1hdC1tZGMtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLW5vLWFuaW1hdGlvbnMpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6OnBsYWNlaG9sZGVye3RyYW5zaXRpb246b3BhY2l0eSA2N21zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpfX1AbWVkaWEgYWxsey5tYXQtbWRjLWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1uby1hbmltYXRpb25zKSAubWRjLXRleHQtZmllbGRfX2lucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcnt0cmFuc2l0aW9uOm9wYWNpdHkgNjdtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKX19QG1lZGlhIGFsbHsubWRjLXRleHQtZmllbGQtLW5vLWxhYmVsIC5tYXQtbWRjLWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1uby1hbmltYXRpb25zKSAubWRjLXRleHQtZmllbGRfX2lucHV0OjpwbGFjZWhvbGRlciwubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1hdC1tZGMtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLW5vLWFuaW1hdGlvbnMpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6OnBsYWNlaG9sZGVye3RyYW5zaXRpb24tZGVsYXk6NDBtczt0cmFuc2l0aW9uLWR1cmF0aW9uOjExMG1zfX1AbWVkaWEgYWxsey5tZGMtdGV4dC1maWVsZC0tbm8tbGFiZWwgLm1hdC1tZGMtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLW5vLWFuaW1hdGlvbnMpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyLC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWF0LW1kYy1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtbm8tYW5pbWF0aW9ucykgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7dHJhbnNpdGlvbi1kZWxheTo0MG1zO3RyYW5zaXRpb24tZHVyYXRpb246MTEwbXN9fS5tYXQtbWRjLWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1uby1hbmltYXRpb25zKSAubWRjLXRleHQtZmllbGRfX2FmZml4e3RyYW5zaXRpb246b3BhY2l0eSAxNTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKX0ubWF0LW1kYy1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtbm8tYW5pbWF0aW9ucykgLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkIC5tZGMtdGV4dC1maWVsZF9fcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLW5vLWFuaW1hdGlvbnMpIC5tZGMtdGV4dC1maWVsZC0tZmlsbGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXMgLm1kYy10ZXh0LWZpZWxkX19yaXBwbGU6OmJlZm9yZXt0cmFuc2l0aW9uLWR1cmF0aW9uOjc1bXN9Lm1hdC1tZGMtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLW5vLWFuaW1hdGlvbnMpIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tc2hha2V7YW5pbWF0aW9uOm1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0LWZpZWxkLW91dGxpbmVkIDI1MG1zIDF9QGtleWZyYW1lcyBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZHswJXt0cmFuc2Zvcm06dHJhbnNsYXRlWChjYWxjKDAgLSAwJSkpIHRyYW5zbGF0ZVkoLTM0Ljc1cHgpIHNjYWxlKDAuNzUpfTMzJXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjUsIDAsIDAuNzAxNzMyLCAwLjQ5NTgxOSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYyg0JSAtIDAlKSkgdHJhbnNsYXRlWSgtMzQuNzVweCkgc2NhbGUoMC43NSl9NjYle2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuMzAyNDM1LCAwLjM4MTM1MiwgMC41NSwgMC45NTYzNTIpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoLTQlIC0gMCUpKSB0cmFuc2xhdGVZKC0zNC43NXB4KSBzY2FsZSgwLjc1KX0xMDAle3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoMCAtIDAlKSkgdHJhbnNsYXRlWSgtMzQuNzVweCkgc2NhbGUoMC43NSl9fS5tYXQtbWRjLWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1uby1hbmltYXRpb25zKSAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhe3RyYW5zaXRpb246bm9uZX0ubWF0LW1kYy1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtbm8tYW5pbWF0aW9ucykgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tZmlsbGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtle2FuaW1hdGlvbjptZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dGFyZWEtZmlsbGVkIDI1MG1zIDF9QGtleWZyYW1lcyBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dGFyZWEtZmlsbGVkezAle3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoMCAtIDAlKSkgdHJhbnNsYXRlWSgtMTAuMjVweCkgc2NhbGUoMC43NSl9MzMle2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuNSwgMCwgMC43MDE3MzIsIDAuNDk1ODE5KTt0cmFuc2Zvcm06dHJhbnNsYXRlWChjYWxjKDQlIC0gMCUpKSB0cmFuc2xhdGVZKC0xMC4yNXB4KSBzY2FsZSgwLjc1KX02NiV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMC4zMDI0MzUsIDAuMzgxMzUyLCAwLjU1LCAwLjk1NjM1Mik7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYygtNCUgLSAwJSkpIHRyYW5zbGF0ZVkoLTEwLjI1cHgpIHNjYWxlKDAuNzUpfTEwMCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYygwIC0gMCUpKSB0cmFuc2xhdGVZKC0xMC4yNXB4KSBzY2FsZSgwLjc1KX19Lm1hdC1tZGMtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLW5vLWFuaW1hdGlvbnMpIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtle2FuaW1hdGlvbjptZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dGFyZWEtb3V0bGluZWQgMjUwbXMgMX1Aa2V5ZnJhbWVzIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0YXJlYS1vdXRsaW5lZHswJXt0cmFuc2Zvcm06dHJhbnNsYXRlWChjYWxjKDAgLSAwJSkpIHRyYW5zbGF0ZVkoLTI0Ljc1cHgpIHNjYWxlKDAuNzUpfTMzJXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjUsIDAsIDAuNzAxNzMyLCAwLjQ5NTgxOSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYyg0JSAtIDAlKSkgdHJhbnNsYXRlWSgtMjQuNzVweCkgc2NhbGUoMC43NSl9NjYle2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuMzAyNDM1LCAwLjM4MTM1MiwgMC41NSwgMC45NTYzNTIpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoLTQlIC0gMCUpKSB0cmFuc2xhdGVZKC0yNC43NXB4KSBzY2FsZSgwLjc1KX0xMDAle3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoMCAtIDAlKSkgdHJhbnNsYXRlWSgtMjQuNzVweCkgc2NhbGUoMC43NSl9fS5tYXQtbWRjLWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1uby1hbmltYXRpb25zKSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZXthbmltYXRpb246bWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXRleHQtZmllbGQtb3V0bGluZWQtbGVhZGluZy1pY29uIDI1MG1zIDF9QGtleWZyYW1lcyBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb257MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYygwIC0gMzJweCkpIHRyYW5zbGF0ZVkoLTM0Ljc1cHgpIHNjYWxlKDAuNzUpfTMzJXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjUsIDAsIDAuNzAxNzMyLCAwLjQ5NTgxOSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYyg0JSAtIDMycHgpKSB0cmFuc2xhdGVZKC0zNC43NXB4KSBzY2FsZSgwLjc1KX02NiV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMC4zMDI0MzUsIDAuMzgxMzUyLCAwLjU1LCAwLjk1NjM1Mik7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYygtNCUgLSAzMnB4KSkgdHJhbnNsYXRlWSgtMzQuNzVweCkgc2NhbGUoMC43NSl9MTAwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWChjYWxjKDAgLSAzMnB4KSkgdHJhbnNsYXRlWSgtMzQuNzVweCkgc2NhbGUoMC43NSl9fVtkaXI9cnRsXSAubWF0LW1kYy1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtbm8tYW5pbWF0aW9ucykgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tc2hha2UsLm1hdC1tZGMtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLW5vLWFuaW1hdGlvbnMpIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkW2Rpcj1ydGxdIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtle2FuaW1hdGlvbjptZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24gMjUwbXMgMX1Aa2V5ZnJhbWVzIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0LWZpZWxkLW91dGxpbmVkLWxlYWRpbmctaWNvbi1ydGx7MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYygwIC0gLTMycHgpKSB0cmFuc2xhdGVZKC0zNC43NXB4KSBzY2FsZSgwLjc1KX0zMyV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMC41LCAwLCAwLjcwMTczMiwgMC40OTU4MTkpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoNCUgLSAtMzJweCkpIHRyYW5zbGF0ZVkoLTM0Ljc1cHgpIHNjYWxlKDAuNzUpfTY2JXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjMwMjQzNSwgMC4zODEzNTIsIDAuNTUsIDAuOTU2MzUyKTt0cmFuc2Zvcm06dHJhbnNsYXRlWChjYWxjKC00JSAtIC0zMnB4KSkgdHJhbnNsYXRlWSgtMzQuNzVweCkgc2NhbGUoMC43NSl9MTAwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWChjYWxjKDAgLSAtMzJweCkpIHRyYW5zbGF0ZVkoLTM0Ljc1cHgpIHNjYWxlKDAuNzUpfX0ubWF0LW1kYy1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtbm8tYW5pbWF0aW9ucykgLm1kYy1mbG9hdGluZy1sYWJlbHt0cmFuc2l0aW9uOnRyYW5zZm9ybSAxNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLGNvbG9yIDE1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9Lm1kYy1mbG9hdGluZy1sYWJlbC0tc2hha2V7YW5pbWF0aW9uOm1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS1zdGFuZGFyZCAyNTBtcyAxfUBrZXlmcmFtZXMgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXN0YW5kYXJkezAle3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoMCAtIDAlKSkgdHJhbnNsYXRlWSgtMTA2JSkgc2NhbGUoMC43NSl9MzMle2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuNSwgMCwgMC43MDE3MzIsIDAuNDk1ODE5KTt0cmFuc2Zvcm06dHJhbnNsYXRlWChjYWxjKDQlIC0gMCUpKSB0cmFuc2xhdGVZKC0xMDYlKSBzY2FsZSgwLjc1KX02NiV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMC4zMDI0MzUsIDAuMzgxMzUyLCAwLjU1LCAwLjk1NjM1Mik7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYygtNCUgLSAwJSkpIHRyYW5zbGF0ZVkoLTEwNiUpIHNjYWxlKDAuNzUpfTEwMCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYygwIC0gMCUpKSB0cmFuc2xhdGVZKC0xMDYlKSBzY2FsZSgwLjc1KX19Lm1hdC1tZGMtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLW5vLWFuaW1hdGlvbnMpIC5tZGMtbGluZS1yaXBwbGU6OmFmdGVye3RyYW5zaXRpb246dHJhbnNmb3JtIDE4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksb3BhY2l0eSAxODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpfSddLGVuY2Fwc3VsYXRpb246MixkYXRhOnthbmltYXRpb246W1N2ZS50cmFuc2l0aW9uTWVzc2FnZXNdfSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLFF2PSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltkbixEZSxvZyxkbl19KSxufSkoKSxqOT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSl7dGhpcy5fcmVuZGVyZXI9ZSx0aGlzLl9lbGVtZW50UmVmPWksdGhpcy5vbkNoYW5nZT1yPT57fSx0aGlzLm9uVG91Y2hlZD0oKT0+e319c2V0UHJvcGVydHkoZSxpKXt0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsZSxpKX1yZWdpc3Rlck9uVG91Y2hlZChlKXt0aGlzLm9uVG91Y2hlZD1lfXJlZ2lzdGVyT25DaGFuZ2UoZSl7dGhpcy5vbkNoYW5nZT1lfXNldERpc2FibGVkU3RhdGUoZSl7dGhpcy5zZXRQcm9wZXJ0eSgiZGlzYWJsZWQiLGUpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKGRjKSxDKHhlKSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm59KSxufSkoKSxraD0oKCk9PntjbGFzcyBuIGV4dGVuZHMgajl7fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4odHx8KHQ9WG4obikpKShpfHxuKX19KCksbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixmZWF0dXJlczpbWGVdfSksbn0pKCksWHI9bmV3IHRlKCJOZ1ZhbHVlQWNjZXNzb3IiKSxJdmU9e3Byb3ZpZGU6WHIsdXNlRXhpc3Rpbmc6V24oKCk9PkF2ZSksbXVsdGk6ITB9LEF2ZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMga2h7d3JpdGVWYWx1ZShlKXt0aGlzLnNldFByb3BlcnR5KCJjaGVja2VkIixlKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybih0fHwodD1YbihuKSkpKGl8fG4pfX0oKSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJjaGVja2JveCIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezEmZSYmQSgiY2hhbmdlIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkNoYW5nZShvLnRhcmdldC5jaGVja2VkKX0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiBpLm9uVG91Y2hlZCgpfSl9LGZlYXR1cmVzOltWdChbSXZlXSksWGVdfSksbn0pKCksUnZlPXtwcm92aWRlOlhyLHVzZUV4aXN0aW5nOlduKCgpPT5VdSksbXVsdGk6ITB9LGt2ZT1uZXcgdGUoIkNvbXBvc2l0aW9uRXZlbnRNb2RlIiksVXU9KCgpPT57Y2xhc3MgbiBleHRlbmRzIGo5e2NvbnN0cnVjdG9yKGUsaSxyKXtzdXBlcihlLGkpLHRoaXMuX2NvbXBvc2l0aW9uTW9kZT1yLHRoaXMuX2NvbXBvc2luZz0hMSxudWxsPT10aGlzLl9jb21wb3NpdGlvbk1vZGUmJih0aGlzLl9jb21wb3NpdGlvbk1vZGU9IWZ1bmN0aW9uKCl7bGV0IG49QWwoKT9BbCgpLmdldFVzZXJBZ2VudCgpOiIiO3JldHVybi9hbmRyb2lkIChcZCspLy50ZXN0KG4udG9Mb3dlckNhc2UoKSl9KCkpfXdyaXRlVmFsdWUoZSl7dGhpcy5zZXRQcm9wZXJ0eSgidmFsdWUiLGU/PyIiKX1faGFuZGxlSW5wdXQoZSl7KCF0aGlzLl9jb21wb3NpdGlvbk1vZGV8fHRoaXMuX2NvbXBvc2l0aW9uTW9kZSYmIXRoaXMuX2NvbXBvc2luZykmJnRoaXMub25DaGFuZ2UoZSl9X2NvbXBvc2l0aW9uU3RhcnQoKXt0aGlzLl9jb21wb3Npbmc9ITB9X2NvbXBvc2l0aW9uRW5kKGUpe3RoaXMuX2NvbXBvc2luZz0hMSx0aGlzLl9jb21wb3NpdGlvbk1vZGUmJnRoaXMub25DaGFuZ2UoZSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoZGMpLEMoeGUpLEMoa3ZlLDgpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siaW5wdXQiLCJmb3JtQ29udHJvbE5hbWUiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdLFsidGV4dGFyZWEiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwiZm9ybUNvbnRyb2wiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdLFsidGV4dGFyZWEiLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJuZ01vZGVsIiwiIiwzLCJ0eXBlIiwiY2hlY2tib3giXSxbInRleHRhcmVhIiwibmdNb2RlbCIsIiJdLFsiIiwibmdEZWZhdWx0Q29udHJvbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsxJmUmJkEoImlucHV0IixmdW5jdGlvbihvKXtyZXR1cm4gaS5faGFuZGxlSW5wdXQoby50YXJnZXQudmFsdWUpfSkoImJsdXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25Ub3VjaGVkKCl9KSgiY29tcG9zaXRpb25zdGFydCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5fY29tcG9zaXRpb25TdGFydCgpfSkoImNvbXBvc2l0aW9uZW5kIixmdW5jdGlvbihvKXtyZXR1cm4gaS5fY29tcG9zaXRpb25FbmQoby50YXJnZXQudmFsdWUpfSl9LGZlYXR1cmVzOltWdChbUnZlXSksWGVdfSksbn0pKCksT3ZlPSExO2Z1bmN0aW9uIHp1KG4pe3JldHVybiBudWxsPT1ufHwoInN0cmluZyI9PXR5cGVvZiBufHxBcnJheS5pc0FycmF5KG4pKSYmMD09PW4ubGVuZ3RofWZ1bmN0aW9uIEc5KG4pe3JldHVybiBudWxsIT1uJiYibnVtYmVyIj09dHlwZW9mIG4ubGVuZ3RofXZhciBJbz1uZXcgdGUoIk5nVmFsaWRhdG9ycyIpLGp1PW5ldyB0ZSgiTmdBc3luY1ZhbGlkYXRvcnMiKSxGdmU9L14oPz0uezEsMjU0fSQpKD89LnsxLDY0fUApW2EtekEtWjAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKyg/OlwuW2EtekEtWjAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKykqQFthLXpBLVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPyg/OlwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSokLyxpbD1jbGFzc3tzdGF0aWMgbWluKHQpe3JldHVybiBXOSh0KX1zdGF0aWMgbWF4KHQpe3JldHVybiBxOSh0KX1zdGF0aWMgcmVxdWlyZWQodCl7cmV0dXJuIFg5KHQpfXN0YXRpYyByZXF1aXJlZFRydWUodCl7cmV0dXJuIFk5KHQpfXN0YXRpYyBlbWFpbCh0KXtyZXR1cm4gUTkodCl9c3RhdGljIG1pbkxlbmd0aCh0KXtyZXR1cm4gWjkodCl9c3RhdGljIG1heExlbmd0aCh0KXtyZXR1cm4gSzkodCl9c3RhdGljIHBhdHRlcm4odCl7cmV0dXJuIEo5KHQpfXN0YXRpYyBudWxsVmFsaWRhdG9yKHQpe3JldHVybiBudWxsfXN0YXRpYyBjb21wb3NlKHQpe3JldHVybiBycSh0KX1zdGF0aWMgY29tcG9zZUFzeW5jKHQpe3JldHVybiBvcSh0KX19O2Z1bmN0aW9uIFc5KG4pe3JldHVybiB0PT57aWYoenUodC52YWx1ZSl8fHp1KG4pKXJldHVybiBudWxsO2xldCBlPXBhcnNlRmxvYXQodC52YWx1ZSk7cmV0dXJuIWlzTmFOKGUpJiZlPG4/e21pbjp7bWluOm4sYWN0dWFsOnQudmFsdWV9fTpudWxsfX1mdW5jdGlvbiBxOShuKXtyZXR1cm4gdD0+e2lmKHp1KHQudmFsdWUpfHx6dShuKSlyZXR1cm4gbnVsbDtsZXQgZT1wYXJzZUZsb2F0KHQudmFsdWUpO3JldHVybiFpc05hTihlKSYmZT5uP3ttYXg6e21heDpuLGFjdHVhbDp0LnZhbHVlfX06bnVsbH19ZnVuY3Rpb24gWDkobil7cmV0dXJuIHp1KG4udmFsdWUpP3tyZXF1aXJlZDohMH06bnVsbH1mdW5jdGlvbiBZOShuKXtyZXR1cm4hMD09PW4udmFsdWU/bnVsbDp7cmVxdWlyZWQ6ITB9fWZ1bmN0aW9uIFE5KG4pe3JldHVybiB6dShuLnZhbHVlKXx8RnZlLnRlc3Qobi52YWx1ZSk/bnVsbDp7ZW1haWw6ITB9fWZ1bmN0aW9uIFo5KG4pe3JldHVybiB0PT56dSh0LnZhbHVlKXx8IUc5KHQudmFsdWUpP251bGw6dC52YWx1ZS5sZW5ndGg8bj97bWlubGVuZ3RoOntyZXF1aXJlZExlbmd0aDpuLGFjdHVhbExlbmd0aDp0LnZhbHVlLmxlbmd0aH19Om51bGx9ZnVuY3Rpb24gSzkobil7cmV0dXJuIHQ9Pkc5KHQudmFsdWUpJiZ0LnZhbHVlLmxlbmd0aD5uP3ttYXhsZW5ndGg6e3JlcXVpcmVkTGVuZ3RoOm4sYWN0dWFsTGVuZ3RoOnQudmFsdWUubGVuZ3RofX06bnVsbH1mdW5jdGlvbiBKOShuKXtpZighbilyZXR1cm4gdEU7bGV0IHQsZTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIG4/KGU9IiIsIl4iIT09bi5jaGFyQXQoMCkmJihlKz0iXiIpLGUrPW4sIiQiIT09bi5jaGFyQXQobi5sZW5ndGgtMSkmJihlKz0iJCIpLHQ9bmV3IFJlZ0V4cChlKSk6KGU9bi50b1N0cmluZygpLHQ9biksaT0+e2lmKHp1KGkudmFsdWUpKXJldHVybiBudWxsO2xldCByPWkudmFsdWU7cmV0dXJuIHQudGVzdChyKT9udWxsOntwYXR0ZXJuOntyZXF1aXJlZFBhdHRlcm46ZSxhY3R1YWxWYWx1ZTpyfX19fWZ1bmN0aW9uIHRFKG4pe3JldHVybiBudWxsfWZ1bmN0aW9uICQ5KG4pe3JldHVybiBudWxsIT1ufWZ1bmN0aW9uIGVxKG4pe2xldCB0PUNmKG4pP0pyKG4pOm47aWYoT3ZlJiYhSWsodCkpe2xldCBlPSJFeHBlY3RlZCBhc3luYyB2YWxpZGF0b3IgdG8gcmV0dXJuIFByb21pc2Ugb3IgT2JzZXJ2YWJsZS4iO3Rocm93Im9iamVjdCI9PXR5cGVvZiBuJiYoZSs9IiBBcmUgeW91IHVzaW5nIGEgc3luY2hyb25vdXMgdmFsaWRhdG9yIHdoZXJlIGFuIGFzeW5jIHZhbGlkYXRvciBpcyBleHBlY3RlZD8iKSxuZXcgeHQoLTExMDEsZSl9cmV0dXJuIHR9ZnVuY3Rpb24gdHEobil7bGV0IHQ9e307cmV0dXJuIG4uZm9yRWFjaChlPT57dD1udWxsIT1lP3suLi50LC4uLmV9OnR9KSwwPT09T2JqZWN0LmtleXModCkubGVuZ3RoP251bGw6dH1mdW5jdGlvbiBucShuLHQpe3JldHVybiB0Lm1hcChlPT5lKG4pKX1mdW5jdGlvbiBpcShuKXtyZXR1cm4gbi5tYXAodD0+ZnVuY3Rpb24obil7cmV0dXJuIW4udmFsaWRhdGV9KHQpP3Q6ZT0+dC52YWxpZGF0ZShlKSl9ZnVuY3Rpb24gcnEobil7aWYoIW4pcmV0dXJuIG51bGw7bGV0IHQ9bi5maWx0ZXIoJDkpO3JldHVybiAwPT10Lmxlbmd0aD9udWxsOmZ1bmN0aW9uKGUpe3JldHVybiB0cShucShlLHQpKX19ZnVuY3Rpb24gQjIobil7cmV0dXJuIG51bGwhPW4/cnEoaXEobikpOm51bGx9ZnVuY3Rpb24gb3Eobil7aWYoIW4pcmV0dXJuIG51bGw7bGV0IHQ9bi5maWx0ZXIoJDkpO3JldHVybiAwPT10Lmxlbmd0aD9udWxsOmZ1bmN0aW9uKGUpe3JldHVybiBDbyhucShlLHQpLm1hcChlcSkpLnBpcGUocSh0cSkpfX1mdW5jdGlvbiBWMihuKXtyZXR1cm4gbnVsbCE9bj9vcShpcShuKSk6bnVsbH1mdW5jdGlvbiBOOShuLHQpe3JldHVybiBudWxsPT09bj9bdF06QXJyYXkuaXNBcnJheShuKT9bLi4ubix0XTpbbix0XX1mdW5jdGlvbiBhcShuKXtyZXR1cm4gbi5fcmF3VmFsaWRhdG9yc31mdW5jdGlvbiBzcShuKXtyZXR1cm4gbi5fcmF3QXN5bmNWYWxpZGF0b3JzfWZ1bmN0aW9uIEYyKG4pe3JldHVybiBuP0FycmF5LmlzQXJyYXkobik/bjpbbl06W119ZnVuY3Rpb24gbkUobix0KXtyZXR1cm4gQXJyYXkuaXNBcnJheShuKT9uLmluY2x1ZGVzKHQpOm49PT10fWZ1bmN0aW9uIEw5KG4sdCl7bGV0IGU9RjIodCk7cmV0dXJuIEYyKG4pLmZvckVhY2gocj0+e25FKGUscil8fGUucHVzaChyKX0pLGV9ZnVuY3Rpb24gQjkobix0KXtyZXR1cm4gRjIodCkuZmlsdGVyKGU9PiFuRShuLGUpKX12YXIgaUU9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLl9yYXdWYWxpZGF0b3JzPVtdLHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz1bXSx0aGlzLl9vbkRlc3Ryb3lDYWxsYmFja3M9W119Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wudmFsdWU6bnVsbH1nZXQgdmFsaWQoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC52YWxpZDpudWxsfWdldCBpbnZhbGlkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuaW52YWxpZDpudWxsfWdldCBwZW5kaW5nKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wucGVuZGluZzpudWxsfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmRpc2FibGVkOm51bGx9Z2V0IGVuYWJsZWQoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5lbmFibGVkOm51bGx9Z2V0IGVycm9ycygpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmVycm9yczpudWxsfWdldCBwcmlzdGluZSgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnByaXN0aW5lOm51bGx9Z2V0IGRpcnR5KCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuZGlydHk6bnVsbH1nZXQgdG91Y2hlZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnRvdWNoZWQ6bnVsbH1nZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuc3RhdHVzOm51bGx9Z2V0IHVudG91Y2hlZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnVudG91Y2hlZDpudWxsfWdldCBzdGF0dXNDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlczpudWxsfWdldCB2YWx1ZUNoYW5nZXMoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC52YWx1ZUNoYW5nZXM6bnVsbH1nZXQgcGF0aCgpe3JldHVybiBudWxsfV9zZXRWYWxpZGF0b3JzKHQpe3RoaXMuX3Jhd1ZhbGlkYXRvcnM9dHx8W10sdGhpcy5fY29tcG9zZWRWYWxpZGF0b3JGbj1CMih0aGlzLl9yYXdWYWxpZGF0b3JzKX1fc2V0QXN5bmNWYWxpZGF0b3JzKHQpe3RoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz10fHxbXSx0aGlzLl9jb21wb3NlZEFzeW5jVmFsaWRhdG9yRm49VjIodGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzKX1nZXQgdmFsaWRhdG9yKCl7cmV0dXJuIHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm58fG51bGx9Z2V0IGFzeW5jVmFsaWRhdG9yKCl7cmV0dXJuIHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbnx8bnVsbH1fcmVnaXN0ZXJPbkRlc3Ryb3kodCl7dGhpcy5fb25EZXN0cm95Q2FsbGJhY2tzLnB1c2godCl9X2ludm9rZU9uRGVzdHJveUNhbGxiYWNrcygpe3RoaXMuX29uRGVzdHJveUNhbGxiYWNrcy5mb3JFYWNoKHQ9PnQoKSksdGhpcy5fb25EZXN0cm95Q2FsbGJhY2tzPVtdfXJlc2V0KHQpe3RoaXMuY29udHJvbCYmdGhpcy5jb250cm9sLnJlc2V0KHQpfWhhc0Vycm9yKHQsZSl7cmV0dXJuISF0aGlzLmNvbnRyb2wmJnRoaXMuY29udHJvbC5oYXNFcnJvcih0LGUpfWdldEVycm9yKHQsZSl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuZ2V0RXJyb3IodCxlKTpudWxsfX0sSm89Y2xhc3MgZXh0ZW5kcyBpRXtnZXQgZm9ybURpcmVjdGl2ZSgpe3JldHVybiBudWxsfWdldCBwYXRoKCl7cmV0dXJuIG51bGx9fSxxYT1jbGFzcyBleHRlbmRzIGlFe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9wYXJlbnQ9bnVsbCx0aGlzLm5hbWU9bnVsbCx0aGlzLnZhbHVlQWNjZXNzb3I9bnVsbH19LE4yPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuX2NkPXR9Z2V0IGlzVG91Y2hlZCgpe3JldHVybiEhdGhpcy5fY2Q/LmNvbnRyb2w/LnRvdWNoZWR9Z2V0IGlzVW50b3VjaGVkKCl7cmV0dXJuISF0aGlzLl9jZD8uY29udHJvbD8udW50b3VjaGVkfWdldCBpc1ByaXN0aW5lKCl7cmV0dXJuISF0aGlzLl9jZD8uY29udHJvbD8ucHJpc3RpbmV9Z2V0IGlzRGlydHkoKXtyZXR1cm4hIXRoaXMuX2NkPy5jb250cm9sPy5kaXJ0eX1nZXQgaXNWYWxpZCgpe3JldHVybiEhdGhpcy5fY2Q/LmNvbnRyb2w/LnZhbGlkfWdldCBpc0ludmFsaWQoKXtyZXR1cm4hIXRoaXMuX2NkPy5jb250cm9sPy5pbnZhbGlkfWdldCBpc1BlbmRpbmcoKXtyZXR1cm4hIXRoaXMuX2NkPy5jb250cm9sPy5wZW5kaW5nfWdldCBpc1N1Ym1pdHRlZCgpe3JldHVybiEhdGhpcy5fY2Q/LnN1Ym1pdHRlZH19LHhnPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBOMntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhxYSwyKSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiIiwibmdNb2RlbCIsIiJdLFsiIiwiZm9ybUNvbnRyb2wiLCIiXV0saG9zdFZhcnM6MTQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MiZlJiZudCgibmctdW50b3VjaGVkIixpLmlzVW50b3VjaGVkKSgibmctdG91Y2hlZCIsaS5pc1RvdWNoZWQpKCJuZy1wcmlzdGluZSIsaS5pc1ByaXN0aW5lKSgibmctZGlydHkiLGkuaXNEaXJ0eSkoIm5nLXZhbGlkIixpLmlzVmFsaWQpKCJuZy1pbnZhbGlkIixpLmlzSW52YWxpZCkoIm5nLXBlbmRpbmciLGkuaXNQZW5kaW5nKX0sZmVhdHVyZXM6W1hlXX0pLG59KSgpO2Z1bmN0aW9uIGxxKG4sdCl7cmV0dXJuIG4/YHdpdGggbmFtZTogJyR7dH0nYDpgYXQgaW5kZXg6ICR7dH1gfXZhciBMMj0hMSxLdj0iVkFMSUQiLGVFPSJJTlZBTElEIix5Zz0iUEVORElORyIsSnY9IkRJU0FCTEVEIjtmdW5jdGlvbiBjcShuKXtyZXR1cm4oY0Uobik/bi52YWxpZGF0b3JzOm4pfHxudWxsfWZ1bmN0aW9uIGRxKG4sdCl7cmV0dXJuKGNFKHQpP3QuYXN5bmNWYWxpZGF0b3JzOm4pfHxudWxsfWZ1bmN0aW9uIGNFKG4pe3JldHVybiBudWxsIT1uJiYhQXJyYXkuaXNBcnJheShuKSYmIm9iamVjdCI9PXR5cGVvZiBufXZhciByRT1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3BlbmRpbmdEaXJ0eT0hMSx0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3I9ITEsdGhpcy5fcGVuZGluZ1RvdWNoZWQ9ITEsdGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlPSgpPT57fSx0aGlzLl9wYXJlbnQ9bnVsbCx0aGlzLnByaXN0aW5lPSEwLHRoaXMudG91Y2hlZD0hMSx0aGlzLl9vbkRpc2FibGVkQ2hhbmdlPVtdLHRoaXMuX2Fzc2lnblZhbGlkYXRvcnModCksdGhpcy5fYXNzaWduQXN5bmNWYWxpZGF0b3JzKGUpfWdldCB2YWxpZGF0b3IoKXtyZXR1cm4gdGhpcy5fY29tcG9zZWRWYWxpZGF0b3JGbn1zZXQgdmFsaWRhdG9yKHQpe3RoaXMuX3Jhd1ZhbGlkYXRvcnM9dGhpcy5fY29tcG9zZWRWYWxpZGF0b3JGbj10fWdldCBhc3luY1ZhbGlkYXRvcigpe3JldHVybiB0aGlzLl9jb21wb3NlZEFzeW5jVmFsaWRhdG9yRm59c2V0IGFzeW5jVmFsaWRhdG9yKHQpe3RoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz10aGlzLl9jb21wb3NlZEFzeW5jVmFsaWRhdG9yRm49dH1nZXQgcGFyZW50KCl7cmV0dXJuIHRoaXMuX3BhcmVudH1nZXQgdmFsaWQoKXtyZXR1cm4gdGhpcy5zdGF0dXM9PT1Ldn1nZXQgaW52YWxpZCgpe3JldHVybiB0aGlzLnN0YXR1cz09PWVFfWdldCBwZW5kaW5nKCl7cmV0dXJuIHRoaXMuc3RhdHVzPT15Z31nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5zdGF0dXM9PT1Kdn1nZXQgZW5hYmxlZCgpe3JldHVybiB0aGlzLnN0YXR1cyE9PUp2fWdldCBkaXJ0eSgpe3JldHVybiF0aGlzLnByaXN0aW5lfWdldCB1bnRvdWNoZWQoKXtyZXR1cm4hdGhpcy50b3VjaGVkfWdldCB1cGRhdGVPbigpe3JldHVybiB0aGlzLl91cGRhdGVPbj90aGlzLl91cGRhdGVPbjp0aGlzLnBhcmVudD90aGlzLnBhcmVudC51cGRhdGVPbjoiY2hhbmdlIn1zZXRWYWxpZGF0b3JzKHQpe3RoaXMuX2Fzc2lnblZhbGlkYXRvcnModCl9c2V0QXN5bmNWYWxpZGF0b3JzKHQpe3RoaXMuX2Fzc2lnbkFzeW5jVmFsaWRhdG9ycyh0KX1hZGRWYWxpZGF0b3JzKHQpe3RoaXMuc2V0VmFsaWRhdG9ycyhMOSh0LHRoaXMuX3Jhd1ZhbGlkYXRvcnMpKX1hZGRBc3luY1ZhbGlkYXRvcnModCl7dGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoTDkodCx0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpKX1yZW1vdmVWYWxpZGF0b3JzKHQpe3RoaXMuc2V0VmFsaWRhdG9ycyhCOSh0LHRoaXMuX3Jhd1ZhbGlkYXRvcnMpKX1yZW1vdmVBc3luY1ZhbGlkYXRvcnModCl7dGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoQjkodCx0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpKX1oYXNWYWxpZGF0b3IodCl7cmV0dXJuIG5FKHRoaXMuX3Jhd1ZhbGlkYXRvcnMsdCl9aGFzQXN5bmNWYWxpZGF0b3IodCl7cmV0dXJuIG5FKHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycyx0KX1jbGVhclZhbGlkYXRvcnMoKXt0aGlzLnZhbGlkYXRvcj1udWxsfWNsZWFyQXN5bmNWYWxpZGF0b3JzKCl7dGhpcy5hc3luY1ZhbGlkYXRvcj1udWxsfW1hcmtBc1RvdWNoZWQodD17fSl7dGhpcy50b3VjaGVkPSEwLHRoaXMuX3BhcmVudCYmIXQub25seVNlbGYmJnRoaXMuX3BhcmVudC5tYXJrQXNUb3VjaGVkKHQpfW1hcmtBbGxBc1RvdWNoZWQoKXt0aGlzLm1hcmtBc1RvdWNoZWQoe29ubHlTZWxmOiEwfSksdGhpcy5fZm9yRWFjaENoaWxkKHQ9PnQubWFya0FsbEFzVG91Y2hlZCgpKX1tYXJrQXNVbnRvdWNoZWQodD17fSl7dGhpcy50b3VjaGVkPSExLHRoaXMuX3BlbmRpbmdUb3VjaGVkPSExLHRoaXMuX2ZvckVhY2hDaGlsZChlPT57ZS5tYXJrQXNVbnRvdWNoZWQoe29ubHlTZWxmOiEwfSl9KSx0aGlzLl9wYXJlbnQmJiF0Lm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZVRvdWNoZWQodCl9bWFya0FzRGlydHkodD17fSl7dGhpcy5wcmlzdGluZT0hMSx0aGlzLl9wYXJlbnQmJiF0Lm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQubWFya0FzRGlydHkodCl9bWFya0FzUHJpc3RpbmUodD17fSl7dGhpcy5wcmlzdGluZT0hMCx0aGlzLl9wZW5kaW5nRGlydHk9ITEsdGhpcy5fZm9yRWFjaENoaWxkKGU9PntlLm1hcmtBc1ByaXN0aW5lKHtvbmx5U2VsZjohMH0pfSksdGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Ll91cGRhdGVQcmlzdGluZSh0KX1tYXJrQXNQZW5kaW5nKHQ9e30pe3RoaXMuc3RhdHVzPXlnLCExIT09dC5lbWl0RXZlbnQmJnRoaXMuc3RhdHVzQ2hhbmdlcy5lbWl0KHRoaXMuc3RhdHVzKSx0aGlzLl9wYXJlbnQmJiF0Lm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQubWFya0FzUGVuZGluZyh0KX1kaXNhYmxlKHQ9e30pe2xldCBlPXRoaXMuX3BhcmVudE1hcmtlZERpcnR5KHQub25seVNlbGYpO3RoaXMuc3RhdHVzPUp2LHRoaXMuZXJyb3JzPW51bGwsdGhpcy5fZm9yRWFjaENoaWxkKGk9PntpLmRpc2FibGUoey4uLnQsb25seVNlbGY6ITB9KX0pLHRoaXMuX3VwZGF0ZVZhbHVlKCksITEhPT10LmVtaXRFdmVudCYmKHRoaXMudmFsdWVDaGFuZ2VzLmVtaXQodGhpcy52YWx1ZSksdGhpcy5zdGF0dXNDaGFuZ2VzLmVtaXQodGhpcy5zdGF0dXMpKSx0aGlzLl91cGRhdGVBbmNlc3RvcnMoey4uLnQsc2tpcFByaXN0aW5lQ2hlY2s6ZX0pLHRoaXMuX29uRGlzYWJsZWRDaGFuZ2UuZm9yRWFjaChpPT5pKCEwKSl9ZW5hYmxlKHQ9e30pe2xldCBlPXRoaXMuX3BhcmVudE1hcmtlZERpcnR5KHQub25seVNlbGYpO3RoaXMuc3RhdHVzPUt2LHRoaXMuX2ZvckVhY2hDaGlsZChpPT57aS5lbmFibGUoey4uLnQsb25seVNlbGY6ITB9KX0pLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OnQuZW1pdEV2ZW50fSksdGhpcy5fdXBkYXRlQW5jZXN0b3JzKHsuLi50LHNraXBQcmlzdGluZUNoZWNrOmV9KSx0aGlzLl9vbkRpc2FibGVkQ2hhbmdlLmZvckVhY2goaT0+aSghMSkpfV91cGRhdGVBbmNlc3RvcnModCl7dGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmKHRoaXMuX3BhcmVudC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHQpLHQuc2tpcFByaXN0aW5lQ2hlY2t8fHRoaXMuX3BhcmVudC5fdXBkYXRlUHJpc3RpbmUoKSx0aGlzLl9wYXJlbnQuX3VwZGF0ZVRvdWNoZWQoKSl9c2V0UGFyZW50KHQpe3RoaXMuX3BhcmVudD10fWdldFJhd1ZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9dXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh0PXt9KXt0aGlzLl9zZXRJbml0aWFsU3RhdHVzKCksdGhpcy5fdXBkYXRlVmFsdWUoKSx0aGlzLmVuYWJsZWQmJih0aGlzLl9jYW5jZWxFeGlzdGluZ1N1YnNjcmlwdGlvbigpLHRoaXMuZXJyb3JzPXRoaXMuX3J1blZhbGlkYXRvcigpLHRoaXMuc3RhdHVzPXRoaXMuX2NhbGN1bGF0ZVN0YXR1cygpLCh0aGlzLnN0YXR1cz09PUt2fHx0aGlzLnN0YXR1cz09PXlnKSYmdGhpcy5fcnVuQXN5bmNWYWxpZGF0b3IodC5lbWl0RXZlbnQpKSwhMSE9PXQuZW1pdEV2ZW50JiYodGhpcy52YWx1ZUNoYW5nZXMuZW1pdCh0aGlzLnZhbHVlKSx0aGlzLnN0YXR1c0NoYW5nZXMuZW1pdCh0aGlzLnN0YXR1cykpLHRoaXMuX3BhcmVudCYmIXQub25seVNlbGYmJnRoaXMuX3BhcmVudC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHQpfV91cGRhdGVUcmVlVmFsaWRpdHkodD17ZW1pdEV2ZW50OiEwfSl7dGhpcy5fZm9yRWFjaENoaWxkKGU9PmUuX3VwZGF0ZVRyZWVWYWxpZGl0eSh0KSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6dC5lbWl0RXZlbnR9KX1fc2V0SW5pdGlhbFN0YXR1cygpe3RoaXMuc3RhdHVzPXRoaXMuX2FsbENvbnRyb2xzRGlzYWJsZWQoKT9KdjpLdn1fcnVuVmFsaWRhdG9yKCl7cmV0dXJuIHRoaXMudmFsaWRhdG9yP3RoaXMudmFsaWRhdG9yKHRoaXMpOm51bGx9X3J1bkFzeW5jVmFsaWRhdG9yKHQpe2lmKHRoaXMuYXN5bmNWYWxpZGF0b3Ipe3RoaXMuc3RhdHVzPXlnLHRoaXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcj0hMDtsZXQgZT1lcSh0aGlzLmFzeW5jVmFsaWRhdG9yKHRoaXMpKTt0aGlzLl9hc3luY1ZhbGlkYXRpb25TdWJzY3JpcHRpb249ZS5zdWJzY3JpYmUoaT0+e3RoaXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcj0hMSx0aGlzLnNldEVycm9ycyhpLHtlbWl0RXZlbnQ6dH0pfSl9fV9jYW5jZWxFeGlzdGluZ1N1YnNjcmlwdGlvbigpe3RoaXMuX2FzeW5jVmFsaWRhdGlvblN1YnNjcmlwdGlvbiYmKHRoaXMuX2FzeW5jVmFsaWRhdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcj0hMSl9c2V0RXJyb3JzKHQsZT17fSl7dGhpcy5lcnJvcnM9dCx0aGlzLl91cGRhdGVDb250cm9sc0Vycm9ycyghMSE9PWUuZW1pdEV2ZW50KX1nZXQodCl7bGV0IGU9dDtyZXR1cm4gbnVsbD09ZXx8KEFycmF5LmlzQXJyYXkoZSl8fChlPWUuc3BsaXQoIi4iKSksMD09PWUubGVuZ3RoKT9udWxsOmUucmVkdWNlKChpLHIpPT5pJiZpLl9maW5kKHIpLHRoaXMpfWdldEVycm9yKHQsZSl7bGV0IGk9ZT90aGlzLmdldChlKTp0aGlzO3JldHVybiBpJiZpLmVycm9ycz9pLmVycm9yc1t0XTpudWxsfWhhc0Vycm9yKHQsZSl7cmV0dXJuISF0aGlzLmdldEVycm9yKHQsZSl9Z2V0IHJvb3QoKXtsZXQgdD10aGlzO2Zvcig7dC5fcGFyZW50Oyl0PXQuX3BhcmVudDtyZXR1cm4gdH1fdXBkYXRlQ29udHJvbHNFcnJvcnModCl7dGhpcy5zdGF0dXM9dGhpcy5fY2FsY3VsYXRlU3RhdHVzKCksdCYmdGhpcy5zdGF0dXNDaGFuZ2VzLmVtaXQodGhpcy5zdGF0dXMpLHRoaXMuX3BhcmVudCYmdGhpcy5fcGFyZW50Ll91cGRhdGVDb250cm9sc0Vycm9ycyh0KX1faW5pdE9ic2VydmFibGVzKCl7dGhpcy52YWx1ZUNoYW5nZXM9bmV3IEYsdGhpcy5zdGF0dXNDaGFuZ2VzPW5ldyBGfV9jYWxjdWxhdGVTdGF0dXMoKXtyZXR1cm4gdGhpcy5fYWxsQ29udHJvbHNEaXNhYmxlZCgpP0p2OnRoaXMuZXJyb3JzP2VFOnRoaXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcnx8dGhpcy5fYW55Q29udHJvbHNIYXZlU3RhdHVzKHlnKT95Zzp0aGlzLl9hbnlDb250cm9sc0hhdmVTdGF0dXMoZUUpP2VFOkt2fV9hbnlDb250cm9sc0hhdmVTdGF0dXModCl7cmV0dXJuIHRoaXMuX2FueUNvbnRyb2xzKGU9PmUuc3RhdHVzPT09dCl9X2FueUNvbnRyb2xzRGlydHkoKXtyZXR1cm4gdGhpcy5fYW55Q29udHJvbHModD0+dC5kaXJ0eSl9X2FueUNvbnRyb2xzVG91Y2hlZCgpe3JldHVybiB0aGlzLl9hbnlDb250cm9scyh0PT50LnRvdWNoZWQpfV91cGRhdGVQcmlzdGluZSh0PXt9KXt0aGlzLnByaXN0aW5lPSF0aGlzLl9hbnlDb250cm9sc0RpcnR5KCksdGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Ll91cGRhdGVQcmlzdGluZSh0KX1fdXBkYXRlVG91Y2hlZCh0PXt9KXt0aGlzLnRvdWNoZWQ9dGhpcy5fYW55Q29udHJvbHNUb3VjaGVkKCksdGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Ll91cGRhdGVUb3VjaGVkKHQpfV9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSh0KXt0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2U9dH1fc2V0VXBkYXRlU3RyYXRlZ3kodCl7Y0UodCkmJm51bGwhPXQudXBkYXRlT24mJih0aGlzLl91cGRhdGVPbj10LnVwZGF0ZU9uKX1fcGFyZW50TWFya2VkRGlydHkodCl7cmV0dXJuIXQmJiEoIXRoaXMuX3BhcmVudHx8IXRoaXMuX3BhcmVudC5kaXJ0eSkmJiF0aGlzLl9wYXJlbnQuX2FueUNvbnRyb2xzRGlydHkoKX1fZmluZCh0KXtyZXR1cm4gbnVsbH1fYXNzaWduVmFsaWRhdG9ycyh0KXt0aGlzLl9yYXdWYWxpZGF0b3JzPUFycmF5LmlzQXJyYXkodCk/dC5zbGljZSgpOnQsdGhpcy5fY29tcG9zZWRWYWxpZGF0b3JGbj1mdW5jdGlvbihuKXtyZXR1cm4gQXJyYXkuaXNBcnJheShuKT9CMihuKTpufHxudWxsfSh0aGlzLl9yYXdWYWxpZGF0b3JzKX1fYXNzaWduQXN5bmNWYWxpZGF0b3JzKHQpe3RoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz1BcnJheS5pc0FycmF5KHQpP3Quc2xpY2UoKTp0LHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbj1mdW5jdGlvbihuKXtyZXR1cm4gQXJyYXkuaXNBcnJheShuKT9WMihuKTpufHxudWxsfSh0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpfX0sb0U9Y2xhc3MgZXh0ZW5kcyByRXtjb25zdHJ1Y3Rvcih0LGUsaSl7c3VwZXIoY3EoZSksZHEoaSxlKSksdGhpcy5jb250cm9scz10LHRoaXMuX2luaXRPYnNlcnZhYmxlcygpLHRoaXMuX3NldFVwZGF0ZVN0cmF0ZWd5KGUpLHRoaXMuX3NldFVwQ29udHJvbHMoKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe29ubHlTZWxmOiEwLGVtaXRFdmVudDohIXRoaXMuYXN5bmNWYWxpZGF0b3J9KX1yZWdpc3RlckNvbnRyb2wodCxlKXtyZXR1cm4gdGhpcy5jb250cm9sc1t0XT90aGlzLmNvbnRyb2xzW3RdOih0aGlzLmNvbnRyb2xzW3RdPWUsZS5zZXRQYXJlbnQodGhpcyksZS5fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UodGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlKSxlKX1hZGRDb250cm9sKHQsZSxpPXt9KXt0aGlzLnJlZ2lzdGVyQ29udHJvbCh0LGUpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OmkuZW1pdEV2ZW50fSksdGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlKCl9cmVtb3ZlQ29udHJvbCh0LGU9e30pe3RoaXMuY29udHJvbHNbdF0mJnRoaXMuY29udHJvbHNbdF0uX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKCgpPT57fSksZGVsZXRlIHRoaXMuY29udHJvbHNbdF0sdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ZS5lbWl0RXZlbnR9KSx0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UoKX1zZXRDb250cm9sKHQsZSxpPXt9KXt0aGlzLmNvbnRyb2xzW3RdJiZ0aGlzLmNvbnRyb2xzW3RdLl9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSgoKT0+e30pLGRlbGV0ZSB0aGlzLmNvbnRyb2xzW3RdLGUmJnRoaXMucmVnaXN0ZXJDb250cm9sKHQsZSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6aS5lbWl0RXZlbnR9KSx0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UoKX1jb250YWlucyh0KXtyZXR1cm4gdGhpcy5jb250cm9scy5oYXNPd25Qcm9wZXJ0eSh0KSYmdGhpcy5jb250cm9sc1t0XS5lbmFibGVkfXNldFZhbHVlKHQsZT17fSl7KGZ1bmN0aW9uKG4sdCxlKXtuLl9mb3JFYWNoQ2hpbGQoKGkscik9PntpZih2b2lkIDA9PT1lW3JdKXRocm93IG5ldyB4dCgxMDAyLEwyP2Z1bmN0aW9uKG4sdCl7cmV0dXJuYE11c3Qgc3VwcGx5IGEgdmFsdWUgZm9yIGZvcm0gY29udHJvbCAke2xxKG4sdCl9YH0odCxyKToiIil9KX0pKHRoaXMsITAsdCksT2JqZWN0LmtleXModCkuZm9yRWFjaChpPT57KGZ1bmN0aW9uKG4sdCxlKXtsZXQgaT1uLmNvbnRyb2xzO2lmKCEodD9PYmplY3Qua2V5cyhpKTppKS5sZW5ndGgpdGhyb3cgbmV3IHh0KDFlMyxMMj9mdW5jdGlvbihuKXtyZXR1cm5gXG4gICAgVGhlcmUgYXJlIG5vIGZvcm0gY29udHJvbHMgcmVnaXN0ZXJlZCB3aXRoIHRoaXMgJHtuPyJncm91cCI6ImFycmF5In0geWV0LiBJZiB5b3UncmUgdXNpbmcgbmdNb2RlbCxcbiAgICB5b3UgbWF5IHdhbnQgdG8gY2hlY2sgbmV4dCB0aWNrIChlLmcuIHVzZSBzZXRUaW1lb3V0KS5cbiAgYH0odCk6IiIpO2lmKCFpW2VdKXRocm93IG5ldyB4dCgxMDAxLEwyP2Z1bmN0aW9uKG4sdCl7cmV0dXJuYENhbm5vdCBmaW5kIGZvcm0gY29udHJvbCAke2xxKG4sdCl9YH0odCxlKToiIil9KSh0aGlzLCEwLGkpLHRoaXMuY29udHJvbHNbaV0uc2V0VmFsdWUodFtpXSx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmUuZW1pdEV2ZW50fSl9KSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoZSl9cGF0Y2hWYWx1ZSh0LGU9e30pe251bGwhPXQmJihPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGk9PntsZXQgcj10aGlzLmNvbnRyb2xzW2ldO3ImJnIucGF0Y2hWYWx1ZSh0W2ldLHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ZS5lbWl0RXZlbnR9KX0pLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShlKSl9cmVzZXQodD17fSxlPXt9KXt0aGlzLl9mb3JFYWNoQ2hpbGQoKGkscik9PntpLnJlc2V0KHRbcl0se29ubHlTZWxmOiEwLGVtaXRFdmVudDplLmVtaXRFdmVudH0pfSksdGhpcy5fdXBkYXRlUHJpc3RpbmUoZSksdGhpcy5fdXBkYXRlVG91Y2hlZChlKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoZSl9Z2V0UmF3VmFsdWUoKXtyZXR1cm4gdGhpcy5fcmVkdWNlQ2hpbGRyZW4oe30sKHQsZSxpKT0+KHRbaV09ZS5nZXRSYXdWYWx1ZSgpLHQpKX1fc3luY1BlbmRpbmdDb250cm9scygpe2xldCB0PXRoaXMuX3JlZHVjZUNoaWxkcmVuKCExLChlLGkpPT4hIWkuX3N5bmNQZW5kaW5nQ29udHJvbHMoKXx8ZSk7cmV0dXJuIHQmJnRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6ITB9KSx0fV9mb3JFYWNoQ2hpbGQodCl7T2JqZWN0LmtleXModGhpcy5jb250cm9scykuZm9yRWFjaChlPT57bGV0IGk9dGhpcy5jb250cm9sc1tlXTtpJiZ0KGksZSl9KX1fc2V0VXBDb250cm9scygpe3RoaXMuX2ZvckVhY2hDaGlsZCh0PT57dC5zZXRQYXJlbnQodGhpcyksdC5fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UodGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlKX0pfV91cGRhdGVWYWx1ZSgpe3RoaXMudmFsdWU9dGhpcy5fcmVkdWNlVmFsdWUoKX1fYW55Q29udHJvbHModCl7Zm9yKGxldFtlLGldb2YgT2JqZWN0LmVudHJpZXModGhpcy5jb250cm9scykpaWYodGhpcy5jb250YWlucyhlKSYmdChpKSlyZXR1cm4hMDtyZXR1cm4hMX1fcmVkdWNlVmFsdWUoKXtyZXR1cm4gdGhpcy5fcmVkdWNlQ2hpbGRyZW4oe30sKGUsaSxyKT0+KChpLmVuYWJsZWR8fHRoaXMuZGlzYWJsZWQpJiYoZVtyXT1pLnZhbHVlKSxlKSl9X3JlZHVjZUNoaWxkcmVuKHQsZSl7bGV0IGk9dDtyZXR1cm4gdGhpcy5fZm9yRWFjaENoaWxkKChyLG8pPT57aT1lKGkscixvKX0pLGl9X2FsbENvbnRyb2xzRGlzYWJsZWQoKXtmb3IobGV0IHQgb2YgT2JqZWN0LmtleXModGhpcy5jb250cm9scykpaWYodGhpcy5jb250cm9sc1t0XS5lbmFibGVkKXJldHVybiExO3JldHVybiBPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2xzKS5sZW5ndGg+MHx8dGhpcy5kaXNhYmxlZH1fZmluZCh0KXtyZXR1cm4gdGhpcy5jb250cm9scy5oYXNPd25Qcm9wZXJ0eSh0KT90aGlzLmNvbnRyb2xzW3RdOm51bGx9fSxPaD1uZXcgdGUoIkNhbGxTZXREaXNhYmxlZFN0YXRlIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+dHl9KSx0eT0iYWx3YXlzIjtmdW5jdGlvbiBkRShuLHQpe3JldHVyblsuLi50LnBhdGgsbl19ZnVuY3Rpb24gZXkobix0LGU9dHkpe0gyKG4sdCksdC52YWx1ZUFjY2Vzc29yLndyaXRlVmFsdWUobi52YWx1ZSksKG4uZGlzYWJsZWR8fCJhbHdheXMiPT09ZSkmJnQudmFsdWVBY2Nlc3Nvci5zZXREaXNhYmxlZFN0YXRlPy4obi5kaXNhYmxlZCksZnVuY3Rpb24obix0KXt0LnZhbHVlQWNjZXNzb3IucmVnaXN0ZXJPbkNoYW5nZShlPT57bi5fcGVuZGluZ1ZhbHVlPWUsbi5fcGVuZGluZ0NoYW5nZT0hMCxuLl9wZW5kaW5nRGlydHk9ITAsImNoYW5nZSI9PT1uLnVwZGF0ZU9uJiZ1cShuLHQpfSl9KG4sdCksZnVuY3Rpb24obix0KXtsZXQgZT0oaSxyKT0+e3QudmFsdWVBY2Nlc3Nvci53cml0ZVZhbHVlKGkpLHImJnQudmlld1RvTW9kZWxVcGRhdGUoaSl9O24ucmVnaXN0ZXJPbkNoYW5nZShlKSx0Ll9yZWdpc3Rlck9uRGVzdHJveSgoKT0+e24uX3VucmVnaXN0ZXJPbkNoYW5nZShlKX0pfShuLHQpLGZ1bmN0aW9uKG4sdCl7dC52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25Ub3VjaGVkKCgpPT57bi5fcGVuZGluZ1RvdWNoZWQ9ITAsImJsdXIiPT09bi51cGRhdGVPbiYmbi5fcGVuZGluZ0NoYW5nZSYmdXEobix0KSwic3VibWl0IiE9PW4udXBkYXRlT24mJm4ubWFya0FzVG91Y2hlZCgpfSl9KG4sdCksZnVuY3Rpb24obix0KXtpZih0LnZhbHVlQWNjZXNzb3Iuc2V0RGlzYWJsZWRTdGF0ZSl7bGV0IGU9aT0+e3QudmFsdWVBY2Nlc3Nvci5zZXREaXNhYmxlZFN0YXRlKGkpfTtuLnJlZ2lzdGVyT25EaXNhYmxlZENoYW5nZShlKSx0Ll9yZWdpc3Rlck9uRGVzdHJveSgoKT0+e24uX3VucmVnaXN0ZXJPbkRpc2FibGVkQ2hhbmdlKGUpfSl9fShuLHQpfWZ1bmN0aW9uIGFFKG4sdCxlPSEwKXtsZXQgaT0oKT0+e307dC52YWx1ZUFjY2Vzc29yJiYodC52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25DaGFuZ2UoaSksdC52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25Ub3VjaGVkKGkpKSxsRShuLHQpLG4mJih0Ll9pbnZva2VPbkRlc3Ryb3lDYWxsYmFja3MoKSxuLl9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSgoKT0+e30pKX1mdW5jdGlvbiBzRShuLHQpe24uZm9yRWFjaChlPT57ZS5yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlJiZlLnJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UodCl9KX1mdW5jdGlvbiBIMihuLHQpe2xldCBlPWFxKG4pO251bGwhPT10LnZhbGlkYXRvcj9uLnNldFZhbGlkYXRvcnMoTjkoZSx0LnZhbGlkYXRvcikpOiJmdW5jdGlvbiI9PXR5cGVvZiBlJiZuLnNldFZhbGlkYXRvcnMoW2VdKTtsZXQgaT1zcShuKTtudWxsIT09dC5hc3luY1ZhbGlkYXRvcj9uLnNldEFzeW5jVmFsaWRhdG9ycyhOOShpLHQuYXN5bmNWYWxpZGF0b3IpKToiZnVuY3Rpb24iPT10eXBlb2YgaSYmbi5zZXRBc3luY1ZhbGlkYXRvcnMoW2ldKTtsZXQgcj0oKT0+bi51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7c0UodC5fcmF3VmFsaWRhdG9ycyxyKSxzRSh0Ll9yYXdBc3luY1ZhbGlkYXRvcnMscil9ZnVuY3Rpb24gbEUobix0KXtsZXQgZT0hMTtpZihudWxsIT09bil7aWYobnVsbCE9PXQudmFsaWRhdG9yKXtsZXQgcj1hcShuKTtpZihBcnJheS5pc0FycmF5KHIpJiZyLmxlbmd0aD4wKXtsZXQgbz1yLmZpbHRlcihhPT5hIT09dC52YWxpZGF0b3IpO28ubGVuZ3RoIT09ci5sZW5ndGgmJihlPSEwLG4uc2V0VmFsaWRhdG9ycyhvKSl9fWlmKG51bGwhPT10LmFzeW5jVmFsaWRhdG9yKXtsZXQgcj1zcShuKTtpZihBcnJheS5pc0FycmF5KHIpJiZyLmxlbmd0aD4wKXtsZXQgbz1yLmZpbHRlcihhPT5hIT09dC5hc3luY1ZhbGlkYXRvcik7by5sZW5ndGghPT1yLmxlbmd0aCYmKGU9ITAsbi5zZXRBc3luY1ZhbGlkYXRvcnMobykpfX19bGV0IGk9KCk9Pnt9O3JldHVybiBzRSh0Ll9yYXdWYWxpZGF0b3JzLGkpLHNFKHQuX3Jhd0FzeW5jVmFsaWRhdG9ycyxpKSxlfWZ1bmN0aW9uIHVxKG4sdCl7bi5fcGVuZGluZ0RpcnR5JiZuLm1hcmtBc0RpcnR5KCksbi5zZXRWYWx1ZShuLl9wZW5kaW5nVmFsdWUse2VtaXRNb2RlbFRvVmlld0NoYW5nZTohMX0pLHQudmlld1RvTW9kZWxVcGRhdGUobi5fcGVuZGluZ1ZhbHVlKSxuLl9wZW5kaW5nQ2hhbmdlPSExfWZ1bmN0aW9uIHBxKG4sdCl7SDIobix0KX1mdW5jdGlvbiB6MihuLHQpe2lmKCFuLmhhc093blByb3BlcnR5KCJtb2RlbCIpKXJldHVybiExO2xldCBlPW4ubW9kZWw7cmV0dXJuISFlLmlzRmlyc3RDaGFuZ2UoKXx8IU9iamVjdC5pcyh0LGUuY3VycmVudFZhbHVlKX1mdW5jdGlvbiBocShuLHQpe24uX3N5bmNQZW5kaW5nQ29udHJvbHMoKSx0LmZvckVhY2goZT0+e2xldCBpPWUuY29udHJvbDsic3VibWl0Ij09PWkudXBkYXRlT24mJmkuX3BlbmRpbmdDaGFuZ2UmJihlLnZpZXdUb01vZGVsVXBkYXRlKGkuX3BlbmRpbmdWYWx1ZSksaS5fcGVuZGluZ0NoYW5nZT0hMSl9KX1mdW5jdGlvbiBVMihuLHQpe2lmKCF0KXJldHVybiBudWxsO2xldCBlLGkscjtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSx0LmZvckVhY2gobz0+e28uY29uc3RydWN0b3I9PT1VdT9lPW86ZnVuY3Rpb24obil7cmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihuLmNvbnN0cnVjdG9yKT09PWtofShvKT9pPW86cj1vfSkscnx8aXx8ZXx8bnVsbH12YXIgSnZlPXtwcm92aWRlOkpvLHVzZUV4aXN0aW5nOlduKCgpPT5DZyl9LCR2PVByb21pc2UucmVzb2x2ZSgpLENnPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBKb3tjb25zdHJ1Y3RvcihlLGkscil7c3VwZXIoKSx0aGlzLmNhbGxTZXREaXNhYmxlZFN0YXRlPXIsdGhpcy5zdWJtaXR0ZWQ9ITEsdGhpcy5fZGlyZWN0aXZlcz1uZXcgU2V0LHRoaXMubmdTdWJtaXQ9bmV3IEYsdGhpcy5mb3JtPW5ldyBvRSh7fSxCMihlKSxWMihpKSl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fc2V0VXBkYXRlU3RyYXRlZ3koKX1nZXQgZm9ybURpcmVjdGl2ZSgpe3JldHVybiB0aGlzfWdldCBjb250cm9sKCl7cmV0dXJuIHRoaXMuZm9ybX1nZXQgcGF0aCgpe3JldHVybltdfWdldCBjb250cm9scygpe3JldHVybiB0aGlzLmZvcm0uY29udHJvbHN9YWRkQ29udHJvbChlKXskdi50aGVuKCgpPT57bGV0IGk9dGhpcy5fZmluZENvbnRhaW5lcihlLnBhdGgpO2UuY29udHJvbD1pLnJlZ2lzdGVyQ29udHJvbChlLm5hbWUsZS5jb250cm9sKSxleShlLmNvbnRyb2wsZSx0aGlzLmNhbGxTZXREaXNhYmxlZFN0YXRlKSxlLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSksdGhpcy5fZGlyZWN0aXZlcy5hZGQoZSl9KX1nZXRDb250cm9sKGUpe3JldHVybiB0aGlzLmZvcm0uZ2V0KGUucGF0aCl9cmVtb3ZlQ29udHJvbChlKXskdi50aGVuKCgpPT57bGV0IGk9dGhpcy5fZmluZENvbnRhaW5lcihlLnBhdGgpO2kmJmkucmVtb3ZlQ29udHJvbChlLm5hbWUpLHRoaXMuX2RpcmVjdGl2ZXMuZGVsZXRlKGUpfSl9YWRkRm9ybUdyb3VwKGUpeyR2LnRoZW4oKCk9PntsZXQgaT10aGlzLl9maW5kQ29udGFpbmVyKGUucGF0aCkscj1uZXcgb0Uoe30pO3BxKHIsZSksaS5yZWdpc3RlckNvbnRyb2woZS5uYW1lLHIpLHIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9KX1yZW1vdmVGb3JtR3JvdXAoZSl7JHYudGhlbigoKT0+e2xldCBpPXRoaXMuX2ZpbmRDb250YWluZXIoZS5wYXRoKTtpJiZpLnJlbW92ZUNvbnRyb2woZS5uYW1lKX0pfWdldEZvcm1Hcm91cChlKXtyZXR1cm4gdGhpcy5mb3JtLmdldChlLnBhdGgpfXVwZGF0ZU1vZGVsKGUsaSl7JHYudGhlbigoKT0+e3RoaXMuZm9ybS5nZXQoZS5wYXRoKS5zZXRWYWx1ZShpKX0pfXNldFZhbHVlKGUpe3RoaXMuY29udHJvbC5zZXRWYWx1ZShlKX1vblN1Ym1pdChlKXtyZXR1cm4gdGhpcy5zdWJtaXR0ZWQ9ITAsaHEodGhpcy5mb3JtLHRoaXMuX2RpcmVjdGl2ZXMpLHRoaXMubmdTdWJtaXQuZW1pdChlKSwiZGlhbG9nIj09PWU/LnRhcmdldD8ubWV0aG9kfW9uUmVzZXQoKXt0aGlzLnJlc2V0Rm9ybSgpfXJlc2V0Rm9ybShlKXt0aGlzLmZvcm0ucmVzZXQoZSksdGhpcy5zdWJtaXR0ZWQ9ITF9X3NldFVwZGF0ZVN0cmF0ZWd5KCl7dGhpcy5vcHRpb25zJiZudWxsIT10aGlzLm9wdGlvbnMudXBkYXRlT24mJih0aGlzLmZvcm0uX3VwZGF0ZU9uPXRoaXMub3B0aW9ucy51cGRhdGVPbil9X2ZpbmRDb250YWluZXIoZSl7cmV0dXJuIGUucG9wKCksZS5sZW5ndGg/dGhpcy5mb3JtLmdldChlKTp0aGlzLmZvcm19fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSW8sMTApLEMoanUsMTApLEMoT2gsOCkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyJmb3JtIiwzLCJuZ05vRm9ybSIsIiIsMywiZm9ybUdyb3VwIiwiIl0sWyJuZy1mb3JtIl0sWyIiLCJuZ0Zvcm0iLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MSZlJiZBKCJzdWJtaXQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uU3VibWl0KG8pfSkoInJlc2V0IixmdW5jdGlvbigpe3JldHVybiBpLm9uUmVzZXQoKX0pfSxpbnB1dHM6e29wdGlvbnM6WyJuZ0Zvcm1PcHRpb25zIiwib3B0aW9ucyJdfSxvdXRwdXRzOntuZ1N1Ym1pdDoibmdTdWJtaXQifSxleHBvcnRBczpbIm5nRm9ybSJdLGZlYXR1cmVzOltWdChbSnZlXSksWGVdfSksbn0pKCk7ZnVuY3Rpb24gVjkobix0KXtsZXQgZT1uLmluZGV4T2YodCk7ZT4tMSYmbi5zcGxpY2UoZSwxKX1mdW5jdGlvbiBIOShuKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIG4mJm51bGwhPT1uJiYyPT09T2JqZWN0LmtleXMobikubGVuZ3RoJiYidmFsdWUiaW4gbiYmImRpc2FibGVkImluIG59dmFyIG55PWNsYXNzIGV4dGVuZHMgckV7Y29uc3RydWN0b3IodD1udWxsLGUsaSl7c3VwZXIoY3EoZSksZHEoaSxlKSksdGhpcy5kZWZhdWx0VmFsdWU9bnVsbCx0aGlzLl9vbkNoYW5nZT1bXSx0aGlzLl9wZW5kaW5nQ2hhbmdlPSExLHRoaXMuX2FwcGx5Rm9ybVN0YXRlKHQpLHRoaXMuX3NldFVwZGF0ZVN0cmF0ZWd5KGUpLHRoaXMuX2luaXRPYnNlcnZhYmxlcygpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OiEhdGhpcy5hc3luY1ZhbGlkYXRvcn0pLGNFKGUpJiYoZS5ub25OdWxsYWJsZXx8ZS5pbml0aWFsVmFsdWVJc0RlZmF1bHQpJiYodGhpcy5kZWZhdWx0VmFsdWU9SDkodCk/dC52YWx1ZTp0KX1zZXRWYWx1ZSh0LGU9e30pe3RoaXMudmFsdWU9dGhpcy5fcGVuZGluZ1ZhbHVlPXQsdGhpcy5fb25DaGFuZ2UubGVuZ3RoJiYhMSE9PWUuZW1pdE1vZGVsVG9WaWV3Q2hhbmdlJiZ0aGlzLl9vbkNoYW5nZS5mb3JFYWNoKGk9PmkodGhpcy52YWx1ZSwhMSE9PWUuZW1pdFZpZXdUb01vZGVsQ2hhbmdlKSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGUpfXBhdGNoVmFsdWUodCxlPXt9KXt0aGlzLnNldFZhbHVlKHQsZSl9cmVzZXQodD10aGlzLmRlZmF1bHRWYWx1ZSxlPXt9KXt0aGlzLl9hcHBseUZvcm1TdGF0ZSh0KSx0aGlzLm1hcmtBc1ByaXN0aW5lKGUpLHRoaXMubWFya0FzVW50b3VjaGVkKGUpLHRoaXMuc2V0VmFsdWUodGhpcy52YWx1ZSxlKSx0aGlzLl9wZW5kaW5nQ2hhbmdlPSExfV91cGRhdGVWYWx1ZSgpe31fYW55Q29udHJvbHModCl7cmV0dXJuITF9X2FsbENvbnRyb2xzRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5kaXNhYmxlZH1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMuX29uQ2hhbmdlLnB1c2godCl9X3VucmVnaXN0ZXJPbkNoYW5nZSh0KXtWOSh0aGlzLl9vbkNoYW5nZSx0KX1yZWdpc3Rlck9uRGlzYWJsZWRDaGFuZ2UodCl7dGhpcy5fb25EaXNhYmxlZENoYW5nZS5wdXNoKHQpfV91bnJlZ2lzdGVyT25EaXNhYmxlZENoYW5nZSh0KXtWOSh0aGlzLl9vbkRpc2FibGVkQ2hhbmdlLHQpfV9mb3JFYWNoQ2hpbGQodCl7fV9zeW5jUGVuZGluZ0NvbnRyb2xzKCl7cmV0dXJuISgic3VibWl0IiE9PXRoaXMudXBkYXRlT258fCh0aGlzLl9wZW5kaW5nRGlydHkmJnRoaXMubWFya0FzRGlydHkoKSx0aGlzLl9wZW5kaW5nVG91Y2hlZCYmdGhpcy5tYXJrQXNUb3VjaGVkKCksIXRoaXMuX3BlbmRpbmdDaGFuZ2UpfHwodGhpcy5zZXRWYWx1ZSh0aGlzLl9wZW5kaW5nVmFsdWUse29ubHlTZWxmOiEwLGVtaXRNb2RlbFRvVmlld0NoYW5nZTohMX0pLDApKX1fYXBwbHlGb3JtU3RhdGUodCl7SDkodCk/KHRoaXMudmFsdWU9dGhpcy5fcGVuZGluZ1ZhbHVlPXQudmFsdWUsdC5kaXNhYmxlZD90aGlzLmRpc2FibGUoe29ubHlTZWxmOiEwLGVtaXRFdmVudDohMX0pOnRoaXMuZW5hYmxlKHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ITF9KSk6dGhpcy52YWx1ZT10aGlzLl9wZW5kaW5nVmFsdWU9dH19LG1xPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBKb3tuZ09uSW5pdCgpe3RoaXMuX2NoZWNrUGFyZW50VHlwZSgpLHRoaXMuZm9ybURpcmVjdGl2ZS5hZGRGb3JtR3JvdXAodGhpcyl9bmdPbkRlc3Ryb3koKXt0aGlzLmZvcm1EaXJlY3RpdmUmJnRoaXMuZm9ybURpcmVjdGl2ZS5yZW1vdmVGb3JtR3JvdXAodGhpcyl9Z2V0IGNvbnRyb2woKXtyZXR1cm4gdGhpcy5mb3JtRGlyZWN0aXZlLmdldEZvcm1Hcm91cCh0aGlzKX1nZXQgcGF0aCgpe3JldHVybiBkRShudWxsPT10aGlzLm5hbWU/dGhpcy5uYW1lOnRoaXMubmFtZS50b1N0cmluZygpLHRoaXMuX3BhcmVudCl9Z2V0IGZvcm1EaXJlY3RpdmUoKXtyZXR1cm4gdGhpcy5fcGFyZW50P3RoaXMuX3BhcmVudC5mb3JtRGlyZWN0aXZlOm51bGx9X2NoZWNrUGFyZW50VHlwZSgpe319cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybih0fHwodD1YbihuKSkpKGl8fG4pfX0oKSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLGZlYXR1cmVzOltYZV19KSxufSkoKSxleWU9e3Byb3ZpZGU6Sm8sdXNlRXhpc3Rpbmc6V24oKCk9PnR5ZSl9LHR5ZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgbXF7Y29uc3RydWN0b3IoZSxpLHIpe3N1cGVyKCksdGhpcy5fcGFyZW50PWUsdGhpcy5fc2V0VmFsaWRhdG9ycyhpKSx0aGlzLl9zZXRBc3luY1ZhbGlkYXRvcnMocil9X2NoZWNrUGFyZW50VHlwZSgpe319cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhKbyw1KSxDKElvLDEwKSxDKGp1LDEwKSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsIm5nTW9kZWxHcm91cCIsIiJdXSxpbnB1dHM6e25hbWU6WyJuZ01vZGVsR3JvdXAiLCJuYW1lIl19LGV4cG9ydEFzOlsibmdNb2RlbEdyb3VwIl0sZmVhdHVyZXM6W1Z0KFtleWVdKSxYZV19KSxufSkoKSxueWU9e3Byb3ZpZGU6cWEsdXNlRXhpc3Rpbmc6V24oKCk9Pml5KX0sejk9UHJvbWlzZS5yZXNvbHZlKCksaXk9KCgpPT57Y2xhc3MgbiBleHRlbmRzIHFhe2NvbnN0cnVjdG9yKGUsaSxyLG8sYSxzKXtzdXBlcigpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWEsdGhpcy5jYWxsU2V0RGlzYWJsZWRTdGF0ZT1zLHRoaXMuY29udHJvbD1uZXcgbnksdGhpcy5fcmVnaXN0ZXJlZD0hMSx0aGlzLnVwZGF0ZT1uZXcgRix0aGlzLl9wYXJlbnQ9ZSx0aGlzLl9zZXRWYWxpZGF0b3JzKGkpLHRoaXMuX3NldEFzeW5jVmFsaWRhdG9ycyhyKSx0aGlzLnZhbHVlQWNjZXNzb3I9VTIoMCxvKX1uZ09uQ2hhbmdlcyhlKXtpZih0aGlzLl9jaGVja0ZvckVycm9ycygpLCF0aGlzLl9yZWdpc3RlcmVkfHwibmFtZSJpbiBlKXtpZih0aGlzLl9yZWdpc3RlcmVkJiYodGhpcy5fY2hlY2tOYW1lKCksdGhpcy5mb3JtRGlyZWN0aXZlKSl7bGV0IGk9ZS5uYW1lLnByZXZpb3VzVmFsdWU7dGhpcy5mb3JtRGlyZWN0aXZlLnJlbW92ZUNvbnRyb2woe25hbWU6aSxwYXRoOnRoaXMuX2dldFBhdGgoaSl9KX10aGlzLl9zZXRVcENvbnRyb2woKX0iaXNEaXNhYmxlZCJpbiBlJiZ0aGlzLl91cGRhdGVEaXNhYmxlZChlKSx6MihlLHRoaXMudmlld01vZGVsKSYmKHRoaXMuX3VwZGF0ZVZhbHVlKHRoaXMubW9kZWwpLHRoaXMudmlld01vZGVsPXRoaXMubW9kZWwpfW5nT25EZXN0cm95KCl7dGhpcy5mb3JtRGlyZWN0aXZlJiZ0aGlzLmZvcm1EaXJlY3RpdmUucmVtb3ZlQ29udHJvbCh0aGlzKX1nZXQgcGF0aCgpe3JldHVybiB0aGlzLl9nZXRQYXRoKHRoaXMubmFtZSl9Z2V0IGZvcm1EaXJlY3RpdmUoKXtyZXR1cm4gdGhpcy5fcGFyZW50P3RoaXMuX3BhcmVudC5mb3JtRGlyZWN0aXZlOm51bGx9dmlld1RvTW9kZWxVcGRhdGUoZSl7dGhpcy52aWV3TW9kZWw9ZSx0aGlzLnVwZGF0ZS5lbWl0KGUpfV9zZXRVcENvbnRyb2woKXt0aGlzLl9zZXRVcGRhdGVTdHJhdGVneSgpLHRoaXMuX2lzU3RhbmRhbG9uZSgpP3RoaXMuX3NldFVwU3RhbmRhbG9uZSgpOnRoaXMuZm9ybURpcmVjdGl2ZS5hZGRDb250cm9sKHRoaXMpLHRoaXMuX3JlZ2lzdGVyZWQ9ITB9X3NldFVwZGF0ZVN0cmF0ZWd5KCl7dGhpcy5vcHRpb25zJiZudWxsIT10aGlzLm9wdGlvbnMudXBkYXRlT24mJih0aGlzLmNvbnRyb2wuX3VwZGF0ZU9uPXRoaXMub3B0aW9ucy51cGRhdGVPbil9X2lzU3RhbmRhbG9uZSgpe3JldHVybiF0aGlzLl9wYXJlbnR8fCEoIXRoaXMub3B0aW9uc3x8IXRoaXMub3B0aW9ucy5zdGFuZGFsb25lKX1fc2V0VXBTdGFuZGFsb25lKCl7ZXkodGhpcy5jb250cm9sLHRoaXMsdGhpcy5jYWxsU2V0RGlzYWJsZWRTdGF0ZSksdGhpcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDohMX0pfV9jaGVja0ZvckVycm9ycygpe3RoaXMuX2lzU3RhbmRhbG9uZSgpfHx0aGlzLl9jaGVja1BhcmVudFR5cGUoKSx0aGlzLl9jaGVja05hbWUoKX1fY2hlY2tQYXJlbnRUeXBlKCl7fV9jaGVja05hbWUoKXt0aGlzLm9wdGlvbnMmJnRoaXMub3B0aW9ucy5uYW1lJiYodGhpcy5uYW1lPXRoaXMub3B0aW9ucy5uYW1lKSx0aGlzLl9pc1N0YW5kYWxvbmUoKX1fdXBkYXRlVmFsdWUoZSl7ejkudGhlbigoKT0+e3RoaXMuY29udHJvbC5zZXRWYWx1ZShlLHtlbWl0Vmlld1RvTW9kZWxDaGFuZ2U6ITF9KSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj8ubWFya0ZvckNoZWNrKCl9KX1fdXBkYXRlRGlzYWJsZWQoZSl7bGV0IGk9ZS5pc0Rpc2FibGVkLmN1cnJlbnRWYWx1ZSxyPTAhPT1pJiZldyhpKTt6OS50aGVuKCgpPT57ciYmIXRoaXMuY29udHJvbC5kaXNhYmxlZD90aGlzLmNvbnRyb2wuZGlzYWJsZSgpOiFyJiZ0aGlzLmNvbnRyb2wuZGlzYWJsZWQmJnRoaXMuY29udHJvbC5lbmFibGUoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj8ubWFya0ZvckNoZWNrKCl9KX1fZ2V0UGF0aChlKXtyZXR1cm4gdGhpcy5fcGFyZW50P2RFKGUsdGhpcy5fcGFyZW50KTpbZV19fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSm8sOSksQyhJbywxMCksQyhqdSwxMCksQyhYciwxMCksQyhRdCw4KSxDKE9oLDgpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siIiwibmdNb2RlbCIsIiIsMywiZm9ybUNvbnRyb2xOYW1lIiwiIiwzLCJmb3JtQ29udHJvbCIsIiJdXSxpbnB1dHM6e25hbWU6Im5hbWUiLGlzRGlzYWJsZWQ6WyJkaXNhYmxlZCIsImlzRGlzYWJsZWQiXSxtb2RlbDpbIm5nTW9kZWwiLCJtb2RlbCJdLG9wdGlvbnM6WyJuZ01vZGVsT3B0aW9ucyIsIm9wdGlvbnMiXX0sb3V0cHV0czp7dXBkYXRlOiJuZ01vZGVsQ2hhbmdlIn0sZXhwb3J0QXM6WyJuZ01vZGVsIl0sZmVhdHVyZXM6W1Z0KFtueWVdKSxYZSxxdF19KSxufSkoKSxpeWU9e3Byb3ZpZGU6WHIsdXNlRXhpc3Rpbmc6V24oKCk9PmoyKSxtdWx0aTohMH0sajI9KCgpPT57Y2xhc3MgbiBleHRlbmRzIGtoe3dyaXRlVmFsdWUoZSl7dGhpcy5zZXRQcm9wZXJ0eSgidmFsdWUiLGU/PyIiKX1yZWdpc3Rlck9uQ2hhbmdlKGUpe3RoaXMub25DaGFuZ2U9aT0+e2UoIiI9PWk/bnVsbDpwYXJzZUZsb2F0KGkpKX19fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4odHx8KHQ9WG4obikpKShpfHxuKX19KCksbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siaW5wdXQiLCJ0eXBlIiwibnVtYmVyIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwibnVtYmVyIiwibmdNb2RlbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsxJmUmJkEoImlucHV0IixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkNoYW5nZShvLnRhcmdldC52YWx1ZSl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vblRvdWNoZWQoKX0pfSxmZWF0dXJlczpbVnQoW2l5ZV0pLFhlXX0pLG59KSgpLHJ5ZT17cHJvdmlkZTpYcix1c2VFeGlzdGluZzpXbigoKT0+YXllKSxtdWx0aTohMH0sZnE9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe30pLG59KSgpLG95ZT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy5fYWNjZXNzb3JzPVtdfWFkZChlLGkpe3RoaXMuX2FjY2Vzc29ycy5wdXNoKFtlLGldKX1yZW1vdmUoZSl7Zm9yKGxldCBpPXRoaXMuX2FjY2Vzc29ycy5sZW5ndGgtMTtpPj0wOy0taSlpZih0aGlzLl9hY2Nlc3NvcnNbaV1bMV09PT1lKXJldHVybiB2b2lkIHRoaXMuX2FjY2Vzc29ycy5zcGxpY2UoaSwxKX1zZWxlY3QoZSl7dGhpcy5fYWNjZXNzb3JzLmZvckVhY2goaT0+e3RoaXMuX2lzU2FtZUdyb3VwKGksZSkmJmlbMV0hPT1lJiZpWzFdLmZpcmVVbmNoZWNrKGUudmFsdWUpfSl9X2lzU2FtZUdyb3VwKGUsaSl7cmV0dXJuISFlWzBdLmNvbnRyb2wmJmVbMF0uX3BhcmVudD09PWkuX2NvbnRyb2wuX3BhcmVudCYmZVsxXS5uYW1lPT09aS5uYW1lfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWMscHJvdmlkZWRJbjpmcX0pLG59KSgpLGF5ZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMga2h7Y29uc3RydWN0b3IoZSxpLHIsbyl7c3VwZXIoZSxpKSx0aGlzLl9yZWdpc3RyeT1yLHRoaXMuX2luamVjdG9yPW8sdGhpcy5zZXREaXNhYmxlZFN0YXRlRmlyZWQ9ITEsdGhpcy5vbkNoYW5nZT0oKT0+e30sdGhpcy5jYWxsU2V0RGlzYWJsZWRTdGF0ZT0kbihPaCx7b3B0aW9uYWw6ITB9KT8/dHl9bmdPbkluaXQoKXt0aGlzLl9jb250cm9sPXRoaXMuX2luamVjdG9yLmdldChxYSksdGhpcy5fY2hlY2tOYW1lKCksdGhpcy5fcmVnaXN0cnkuYWRkKHRoaXMuX2NvbnRyb2wsdGhpcyl9bmdPbkRlc3Ryb3koKXt0aGlzLl9yZWdpc3RyeS5yZW1vdmUodGhpcyl9d3JpdGVWYWx1ZShlKXt0aGlzLl9zdGF0ZT1lPT09dGhpcy52YWx1ZSx0aGlzLnNldFByb3BlcnR5KCJjaGVja2VkIix0aGlzLl9zdGF0ZSl9cmVnaXN0ZXJPbkNoYW5nZShlKXt0aGlzLl9mbj1lLHRoaXMub25DaGFuZ2U9KCk9PntlKHRoaXMudmFsdWUpLHRoaXMuX3JlZ2lzdHJ5LnNlbGVjdCh0aGlzKX19c2V0RGlzYWJsZWRTdGF0ZShlKXsodGhpcy5zZXREaXNhYmxlZFN0YXRlRmlyZWR8fGV8fCJ3aGVuRGlzYWJsZWRGb3JMZWdhY3lDb2RlIj09PXRoaXMuY2FsbFNldERpc2FibGVkU3RhdGUpJiZ0aGlzLnNldFByb3BlcnR5KCJkaXNhYmxlZCIsZSksdGhpcy5zZXREaXNhYmxlZFN0YXRlRmlyZWQ9ITB9ZmlyZVVuY2hlY2soZSl7dGhpcy53cml0ZVZhbHVlKGUpfV9jaGVja05hbWUoKXshdGhpcy5uYW1lJiZ0aGlzLmZvcm1Db250cm9sTmFtZSYmKHRoaXMubmFtZT10aGlzLmZvcm1Db250cm9sTmFtZSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoZGMpLEMoeGUpLEMob3llKSxDKHdpKSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbImlucHV0IiwidHlwZSIsInJhZGlvIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJyYWRpbyIsImZvcm1Db250cm9sIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJyYWRpbyIsIm5nTW9kZWwiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MSZlJiZBKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25DaGFuZ2UoKX0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiBpLm9uVG91Y2hlZCgpfSl9LGlucHV0czp7bmFtZToibmFtZSIsZm9ybUNvbnRyb2xOYW1lOiJmb3JtQ29udHJvbE5hbWUiLHZhbHVlOiJ2YWx1ZSJ9LGZlYXR1cmVzOltWdChbcnllXSksWGVdfSksbn0pKCksc3llPXtwcm92aWRlOlhyLHVzZUV4aXN0aW5nOlduKCgpPT5seWUpLG11bHRpOiEwfSxseWU9KCgpPT57Y2xhc3MgbiBleHRlbmRzIGtoe3dyaXRlVmFsdWUoZSl7dGhpcy5zZXRQcm9wZXJ0eSgidmFsdWUiLHBhcnNlRmxvYXQoZSkpfXJlZ2lzdGVyT25DaGFuZ2UoZSl7dGhpcy5vbkNoYW5nZT1pPT57ZSgiIj09aT9udWxsOnBhcnNlRmxvYXQoaSkpfX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybih0fHwodD1YbihuKSkpKGl8fG4pfX0oKSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJyYW5nZSIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwicmFuZ2UiLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwicmFuZ2UiLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezEmZSYmQSgiY2hhbmdlIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkNoYW5nZShvLnRhcmdldC52YWx1ZSl9KSgiaW5wdXQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uQ2hhbmdlKG8udGFyZ2V0LnZhbHVlKX0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiBpLm9uVG91Y2hlZCgpfSl9LGZlYXR1cmVzOltWdChbc3llXSksWGVdfSksbn0pKCksRzI9bmV3IHRlKCJOZ01vZGVsV2l0aEZvcm1Db250cm9sV2FybmluZyIpLGN5ZT17cHJvdmlkZTpxYSx1c2VFeGlzdGluZzpXbigoKT0+VzIpfSxXMj0oKCk9PntjbGFzcyBuIGV4dGVuZHMgcWF7c2V0IGlzRGlzYWJsZWQoZSl7fWNvbnN0cnVjdG9yKGUsaSxyLG8sYSl7c3VwZXIoKSx0aGlzLl9uZ01vZGVsV2FybmluZ0NvbmZpZz1vLHRoaXMuY2FsbFNldERpc2FibGVkU3RhdGU9YSx0aGlzLnVwZGF0ZT1uZXcgRix0aGlzLl9uZ01vZGVsV2FybmluZ1NlbnQ9ITEsdGhpcy5fc2V0VmFsaWRhdG9ycyhlKSx0aGlzLl9zZXRBc3luY1ZhbGlkYXRvcnMoaSksdGhpcy52YWx1ZUFjY2Vzc29yPVUyKDAscil9bmdPbkNoYW5nZXMoZSl7aWYodGhpcy5faXNDb250cm9sQ2hhbmdlZChlKSl7bGV0IGk9ZS5mb3JtLnByZXZpb3VzVmFsdWU7aSYmYUUoaSx0aGlzLCExKSxleSh0aGlzLmZvcm0sdGhpcyx0aGlzLmNhbGxTZXREaXNhYmxlZFN0YXRlKSx0aGlzLmZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9ejIoZSx0aGlzLnZpZXdNb2RlbCkmJih0aGlzLmZvcm0uc2V0VmFsdWUodGhpcy5tb2RlbCksdGhpcy52aWV3TW9kZWw9dGhpcy5tb2RlbCl9bmdPbkRlc3Ryb3koKXt0aGlzLmZvcm0mJmFFKHRoaXMuZm9ybSx0aGlzLCExKX1nZXQgcGF0aCgpe3JldHVybltdfWdldCBjb250cm9sKCl7cmV0dXJuIHRoaXMuZm9ybX12aWV3VG9Nb2RlbFVwZGF0ZShlKXt0aGlzLnZpZXdNb2RlbD1lLHRoaXMudXBkYXRlLmVtaXQoZSl9X2lzQ29udHJvbENoYW5nZWQoZSl7cmV0dXJuIGUuaGFzT3duUHJvcGVydHkoImZvcm0iKX19cmV0dXJuIG4uX25nTW9kZWxXYXJuaW5nU2VudE9uY2U9ITEsbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKElvLDEwKSxDKGp1LDEwKSxDKFhyLDEwKSxDKEcyLDgpLEMoT2gsOCkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJmb3JtQ29udHJvbCIsIiJdXSxpbnB1dHM6e2Zvcm06WyJmb3JtQ29udHJvbCIsImZvcm0iXSxpc0Rpc2FibGVkOlsiZGlzYWJsZWQiLCJpc0Rpc2FibGVkIl0sbW9kZWw6WyJuZ01vZGVsIiwibW9kZWwiXX0sb3V0cHV0czp7dXBkYXRlOiJuZ01vZGVsQ2hhbmdlIn0sZXhwb3J0QXM6WyJuZ0Zvcm0iXSxmZWF0dXJlczpbVnQoW2N5ZV0pLFhlLHF0XX0pLG59KSgpLGR5ZT17cHJvdmlkZTpKbyx1c2VFeGlzdGluZzpXbigoKT0+TWcpfSxNZz0oKCk9PntjbGFzcyBuIGV4dGVuZHMgSm97Y29uc3RydWN0b3IoZSxpLHIpe3N1cGVyKCksdGhpcy5jYWxsU2V0RGlzYWJsZWRTdGF0ZT1yLHRoaXMuc3VibWl0dGVkPSExLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZT0oKT0+dGhpcy5fdXBkYXRlRG9tVmFsdWUoKSx0aGlzLmRpcmVjdGl2ZXM9W10sdGhpcy5mb3JtPW51bGwsdGhpcy5uZ1N1Ym1pdD1uZXcgRix0aGlzLl9zZXRWYWxpZGF0b3JzKGUpLHRoaXMuX3NldEFzeW5jVmFsaWRhdG9ycyhpKX1uZ09uQ2hhbmdlcyhlKXt0aGlzLl9jaGVja0Zvcm1QcmVzZW50KCksZS5oYXNPd25Qcm9wZXJ0eSgiZm9ybSIpJiYodGhpcy5fdXBkYXRlVmFsaWRhdG9ycygpLHRoaXMuX3VwZGF0ZURvbVZhbHVlKCksdGhpcy5fdXBkYXRlUmVnaXN0cmF0aW9ucygpLHRoaXMuX29sZEZvcm09dGhpcy5mb3JtKX1uZ09uRGVzdHJveSgpe3RoaXMuZm9ybSYmKGxFKHRoaXMuZm9ybSx0aGlzKSx0aGlzLmZvcm0uX29uQ29sbGVjdGlvbkNoYW5nZT09PXRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSYmdGhpcy5mb3JtLl9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSgoKT0+e30pKX1nZXQgZm9ybURpcmVjdGl2ZSgpe3JldHVybiB0aGlzfWdldCBjb250cm9sKCl7cmV0dXJuIHRoaXMuZm9ybX1nZXQgcGF0aCgpe3JldHVybltdfWFkZENvbnRyb2woZSl7bGV0IGk9dGhpcy5mb3JtLmdldChlLnBhdGgpO3JldHVybiBleShpLGUsdGhpcy5jYWxsU2V0RGlzYWJsZWRTdGF0ZSksaS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ITF9KSx0aGlzLmRpcmVjdGl2ZXMucHVzaChlKSxpfWdldENvbnRyb2woZSl7cmV0dXJuIHRoaXMuZm9ybS5nZXQoZS5wYXRoKX1yZW1vdmVDb250cm9sKGUpe2FFKGUuY29udHJvbHx8bnVsbCxlLCExKSxmdW5jdGlvbihuLHQpe2xldCBlPW4uaW5kZXhPZih0KTtlPi0xJiZuLnNwbGljZShlLDEpfSh0aGlzLmRpcmVjdGl2ZXMsZSl9YWRkRm9ybUdyb3VwKGUpe3RoaXMuX3NldFVwRm9ybUNvbnRhaW5lcihlKX1yZW1vdmVGb3JtR3JvdXAoZSl7dGhpcy5fY2xlYW5VcEZvcm1Db250YWluZXIoZSl9Z2V0Rm9ybUdyb3VwKGUpe3JldHVybiB0aGlzLmZvcm0uZ2V0KGUucGF0aCl9YWRkRm9ybUFycmF5KGUpe3RoaXMuX3NldFVwRm9ybUNvbnRhaW5lcihlKX1yZW1vdmVGb3JtQXJyYXkoZSl7dGhpcy5fY2xlYW5VcEZvcm1Db250YWluZXIoZSl9Z2V0Rm9ybUFycmF5KGUpe3JldHVybiB0aGlzLmZvcm0uZ2V0KGUucGF0aCl9dXBkYXRlTW9kZWwoZSxpKXt0aGlzLmZvcm0uZ2V0KGUucGF0aCkuc2V0VmFsdWUoaSl9b25TdWJtaXQoZSl7cmV0dXJuIHRoaXMuc3VibWl0dGVkPSEwLGhxKHRoaXMuZm9ybSx0aGlzLmRpcmVjdGl2ZXMpLHRoaXMubmdTdWJtaXQuZW1pdChlKSwiZGlhbG9nIj09PWU/LnRhcmdldD8ubWV0aG9kfW9uUmVzZXQoKXt0aGlzLnJlc2V0Rm9ybSgpfXJlc2V0Rm9ybShlKXt0aGlzLmZvcm0ucmVzZXQoZSksdGhpcy5zdWJtaXR0ZWQ9ITF9X3VwZGF0ZURvbVZhbHVlKCl7dGhpcy5kaXJlY3RpdmVzLmZvckVhY2goZT0+e2xldCBpPWUuY29udHJvbCxyPXRoaXMuZm9ybS5nZXQoZS5wYXRoKTtpIT09ciYmKGFFKGl8fG51bGwsZSksKG49Pm4gaW5zdGFuY2VvZiBueSkocikmJihleShyLGUsdGhpcy5jYWxsU2V0RGlzYWJsZWRTdGF0ZSksZS5jb250cm9sPXIpKX0pLHRoaXMuZm9ybS5fdXBkYXRlVHJlZVZhbGlkaXR5KHtlbWl0RXZlbnQ6ITF9KX1fc2V0VXBGb3JtQ29udGFpbmVyKGUpe2xldCBpPXRoaXMuZm9ybS5nZXQoZS5wYXRoKTtwcShpLGUpLGkudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9X2NsZWFuVXBGb3JtQ29udGFpbmVyKGUpe2lmKHRoaXMuZm9ybSl7bGV0IGk9dGhpcy5mb3JtLmdldChlLnBhdGgpO2kmJmZ1bmN0aW9uKG4sdCl7cmV0dXJuIGxFKG4sdCl9KGksZSkmJmkudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9fV91cGRhdGVSZWdpc3RyYXRpb25zKCl7dGhpcy5mb3JtLl9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSh0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UpLHRoaXMuX29sZEZvcm0mJnRoaXMuX29sZEZvcm0uX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKCgpPT57fSl9X3VwZGF0ZVZhbGlkYXRvcnMoKXtIMih0aGlzLmZvcm0sdGhpcyksdGhpcy5fb2xkRm9ybSYmbEUodGhpcy5fb2xkRm9ybSx0aGlzKX1fY2hlY2tGb3JtUHJlc2VudCgpe319cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJbywxMCksQyhqdSwxMCksQyhPaCw4KSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsImZvcm1Hcm91cCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsxJmUmJkEoInN1Ym1pdCIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25TdWJtaXQobyl9KSgicmVzZXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25SZXNldCgpfSl9LGlucHV0czp7Zm9ybTpbImZvcm1Hcm91cCIsImZvcm0iXX0sb3V0cHV0czp7bmdTdWJtaXQ6Im5nU3VibWl0In0sZXhwb3J0QXM6WyJuZ0Zvcm0iXSxmZWF0dXJlczpbVnQoW2R5ZV0pLFhlLHF0XX0pLG59KSgpLHV5ZT17cHJvdmlkZTpKbyx1c2VFeGlzdGluZzpXbigoKT0+Z3EpfSxncT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgbXF7Y29uc3RydWN0b3IoZSxpLHIpe3N1cGVyKCksdGhpcy5fcGFyZW50PWUsdGhpcy5fc2V0VmFsaWRhdG9ycyhpKSx0aGlzLl9zZXRBc3luY1ZhbGlkYXRvcnMocil9X2NoZWNrUGFyZW50VHlwZSgpe2JxKHRoaXMuX3BhcmVudCl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSm8sMTMpLEMoSW8sMTApLEMoanUsMTApKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siIiwiZm9ybUdyb3VwTmFtZSIsIiJdXSxpbnB1dHM6e25hbWU6WyJmb3JtR3JvdXBOYW1lIiwibmFtZSJdfSxmZWF0dXJlczpbVnQoW3V5ZV0pLFhlXX0pLG59KSgpLHB5ZT17cHJvdmlkZTpKbyx1c2VFeGlzdGluZzpXbigoKT0+X3EpfSxfcT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgSm97Y29uc3RydWN0b3IoZSxpLHIpe3N1cGVyKCksdGhpcy5fcGFyZW50PWUsdGhpcy5fc2V0VmFsaWRhdG9ycyhpKSx0aGlzLl9zZXRBc3luY1ZhbGlkYXRvcnMocil9bmdPbkluaXQoKXt0aGlzLl9jaGVja1BhcmVudFR5cGUoKSx0aGlzLmZvcm1EaXJlY3RpdmUuYWRkRm9ybUFycmF5KHRoaXMpfW5nT25EZXN0cm95KCl7dGhpcy5mb3JtRGlyZWN0aXZlJiZ0aGlzLmZvcm1EaXJlY3RpdmUucmVtb3ZlRm9ybUFycmF5KHRoaXMpfWdldCBjb250cm9sKCl7cmV0dXJuIHRoaXMuZm9ybURpcmVjdGl2ZS5nZXRGb3JtQXJyYXkodGhpcyl9Z2V0IGZvcm1EaXJlY3RpdmUoKXtyZXR1cm4gdGhpcy5fcGFyZW50P3RoaXMuX3BhcmVudC5mb3JtRGlyZWN0aXZlOm51bGx9Z2V0IHBhdGgoKXtyZXR1cm4gZEUobnVsbD09dGhpcy5uYW1lP3RoaXMubmFtZTp0aGlzLm5hbWUudG9TdHJpbmcoKSx0aGlzLl9wYXJlbnQpfV9jaGVja1BhcmVudFR5cGUoKXticSh0aGlzLl9wYXJlbnQpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKEpvLDEzKSxDKElvLDEwKSxDKGp1LDEwKSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsImZvcm1BcnJheU5hbWUiLCIiXV0saW5wdXRzOntuYW1lOlsiZm9ybUFycmF5TmFtZSIsIm5hbWUiXX0sZmVhdHVyZXM6W1Z0KFtweWVdKSxYZV19KSxufSkoKTtmdW5jdGlvbiBicShuKXtyZXR1cm4hKG4gaW5zdGFuY2VvZiBncXx8biBpbnN0YW5jZW9mIE1nfHxuIGluc3RhbmNlb2YgX3EpfXZhciBoeWU9e3Byb3ZpZGU6cWEsdXNlRXhpc3Rpbmc6V24oKCk9Pm15ZSl9LG15ZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgcWF7c2V0IGlzRGlzYWJsZWQoZSl7fWNvbnN0cnVjdG9yKGUsaSxyLG8sYSl7c3VwZXIoKSx0aGlzLl9uZ01vZGVsV2FybmluZ0NvbmZpZz1hLHRoaXMuX2FkZGVkPSExLHRoaXMudXBkYXRlPW5ldyBGLHRoaXMuX25nTW9kZWxXYXJuaW5nU2VudD0hMSx0aGlzLl9wYXJlbnQ9ZSx0aGlzLl9zZXRWYWxpZGF0b3JzKGkpLHRoaXMuX3NldEFzeW5jVmFsaWRhdG9ycyhyKSx0aGlzLnZhbHVlQWNjZXNzb3I9VTIoMCxvKX1uZ09uQ2hhbmdlcyhlKXt0aGlzLl9hZGRlZHx8dGhpcy5fc2V0VXBDb250cm9sKCksejIoZSx0aGlzLnZpZXdNb2RlbCkmJih0aGlzLnZpZXdNb2RlbD10aGlzLm1vZGVsLHRoaXMuZm9ybURpcmVjdGl2ZS51cGRhdGVNb2RlbCh0aGlzLHRoaXMubW9kZWwpKX1uZ09uRGVzdHJveSgpe3RoaXMuZm9ybURpcmVjdGl2ZSYmdGhpcy5mb3JtRGlyZWN0aXZlLnJlbW92ZUNvbnRyb2wodGhpcyl9dmlld1RvTW9kZWxVcGRhdGUoZSl7dGhpcy52aWV3TW9kZWw9ZSx0aGlzLnVwZGF0ZS5lbWl0KGUpfWdldCBwYXRoKCl7cmV0dXJuIGRFKG51bGw9PXRoaXMubmFtZT90aGlzLm5hbWU6dGhpcy5uYW1lLnRvU3RyaW5nKCksdGhpcy5fcGFyZW50KX1nZXQgZm9ybURpcmVjdGl2ZSgpe3JldHVybiB0aGlzLl9wYXJlbnQ/dGhpcy5fcGFyZW50LmZvcm1EaXJlY3RpdmU6bnVsbH1fY2hlY2tQYXJlbnRUeXBlKCl7fV9zZXRVcENvbnRyb2woKXt0aGlzLl9jaGVja1BhcmVudFR5cGUoKSx0aGlzLmNvbnRyb2w9dGhpcy5mb3JtRGlyZWN0aXZlLmFkZENvbnRyb2wodGhpcyksdGhpcy5fYWRkZWQ9ITB9fXJldHVybiBuLl9uZ01vZGVsV2FybmluZ1NlbnRPbmNlPSExLG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhKbywxMyksQyhJbywxMCksQyhqdSwxMCksQyhYciwxMCksQyhHMiw4KSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsImZvcm1Db250cm9sTmFtZSIsIiJdXSxpbnB1dHM6e25hbWU6WyJmb3JtQ29udHJvbE5hbWUiLCJuYW1lIl0saXNEaXNhYmxlZDpbImRpc2FibGVkIiwiaXNEaXNhYmxlZCJdLG1vZGVsOlsibmdNb2RlbCIsIm1vZGVsIl19LG91dHB1dHM6e3VwZGF0ZToibmdNb2RlbENoYW5nZSJ9LGZlYXR1cmVzOltWdChbaHllXSksWGUscXRdfSksbn0pKCksZnllPXtwcm92aWRlOlhyLHVzZUV4aXN0aW5nOlduKCgpPT55cSksbXVsdGk6ITB9O2Z1bmN0aW9uIHZxKG4sdCl7cmV0dXJuIG51bGw9PW4/YCR7dH1gOih0JiYib2JqZWN0Ij09dHlwZW9mIHQmJih0PSJPYmplY3QiKSxgJHtufTogJHt0fWAuc2xpY2UoMCw1MCkpfXZhciB5cT0oKCk9PntjbGFzcyBuIGV4dGVuZHMga2h7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX29wdGlvbk1hcD1uZXcgTWFwLHRoaXMuX2lkQ291bnRlcj0wLHRoaXMuX2NvbXBhcmVXaXRoPU9iamVjdC5pc31zZXQgY29tcGFyZVdpdGgoZSl7dGhpcy5fY29tcGFyZVdpdGg9ZX13cml0ZVZhbHVlKGUpe3RoaXMudmFsdWU9ZTtsZXQgcj12cSh0aGlzLl9nZXRPcHRpb25JZChlKSxlKTt0aGlzLnNldFByb3BlcnR5KCJ2YWx1ZSIscil9cmVnaXN0ZXJPbkNoYW5nZShlKXt0aGlzLm9uQ2hhbmdlPWk9Pnt0aGlzLnZhbHVlPXRoaXMuX2dldE9wdGlvblZhbHVlKGkpLGUodGhpcy52YWx1ZSl9fV9yZWdpc3Rlck9wdGlvbigpe3JldHVybih0aGlzLl9pZENvdW50ZXIrKykudG9TdHJpbmcoKX1fZ2V0T3B0aW9uSWQoZSl7Zm9yKGxldCBpIG9mIEFycmF5LmZyb20odGhpcy5fb3B0aW9uTWFwLmtleXMoKSkpaWYodGhpcy5fY29tcGFyZVdpdGgodGhpcy5fb3B0aW9uTWFwLmdldChpKSxlKSlyZXR1cm4gaTtyZXR1cm4gbnVsbH1fZ2V0T3B0aW9uVmFsdWUoZSl7bGV0IGk9ZnVuY3Rpb24obil7cmV0dXJuIG4uc3BsaXQoIjoiKVswXX0oZSk7cmV0dXJuIHRoaXMuX29wdGlvbk1hcC5oYXMoaSk/dGhpcy5fb3B0aW9uTWFwLmdldChpKTplfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuKHR8fCh0PVhuKG4pKSkoaXx8bil9fSgpLG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbInNlbGVjdCIsImZvcm1Db250cm9sTmFtZSIsIiIsMywibXVsdGlwbGUiLCIiXSxbInNlbGVjdCIsImZvcm1Db250cm9sIiwiIiwzLCJtdWx0aXBsZSIsIiJdLFsic2VsZWN0IiwibmdNb2RlbCIsIiIsMywibXVsdGlwbGUiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MSZlJiZBKCJjaGFuZ2UiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uQ2hhbmdlKG8udGFyZ2V0LnZhbHVlKX0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiBpLm9uVG91Y2hlZCgpfSl9LGlucHV0czp7Y29tcGFyZVdpdGg6ImNvbXBhcmVXaXRoIn0sZmVhdHVyZXM6W1Z0KFtmeWVdKSxYZV19KSxufSkoKSx4cT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSxyKXt0aGlzLl9lbGVtZW50PWUsdGhpcy5fcmVuZGVyZXI9aSx0aGlzLl9zZWxlY3Q9cix0aGlzLl9zZWxlY3QmJih0aGlzLmlkPXRoaXMuX3NlbGVjdC5fcmVnaXN0ZXJPcHRpb24oKSl9c2V0IG5nVmFsdWUoZSl7bnVsbCE9dGhpcy5fc2VsZWN0JiYodGhpcy5fc2VsZWN0Ll9vcHRpb25NYXAuc2V0KHRoaXMuaWQsZSksdGhpcy5fc2V0RWxlbWVudFZhbHVlKHZxKHRoaXMuaWQsZSkpLHRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSkpfXNldCB2YWx1ZShlKXt0aGlzLl9zZXRFbGVtZW50VmFsdWUoZSksdGhpcy5fc2VsZWN0JiZ0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpfV9zZXRFbGVtZW50VmFsdWUoZSl7dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCJ2YWx1ZSIsZSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zZWxlY3QmJih0aGlzLl9zZWxlY3QuX29wdGlvbk1hcC5kZWxldGUodGhpcy5pZCksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMoZGMpLEMoeXEsOSkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyJvcHRpb24iXV0saW5wdXRzOntuZ1ZhbHVlOiJuZ1ZhbHVlIix2YWx1ZToidmFsdWUifX0pLG59KSgpLF95ZT17cHJvdmlkZTpYcix1c2VFeGlzdGluZzpXbigoKT0+Q3EpLG11bHRpOiEwfTtmdW5jdGlvbiBVOShuLHQpe3JldHVybiBudWxsPT1uP2Ake3R9YDooInN0cmluZyI9PXR5cGVvZiB0JiYodD1gJyR7dH0nYCksdCYmIm9iamVjdCI9PXR5cGVvZiB0JiYodD0iT2JqZWN0IiksYCR7bn06ICR7dH1gLnNsaWNlKDAsNTApKX12YXIgQ3E9KCgpPT57Y2xhc3MgbiBleHRlbmRzIGtoe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9vcHRpb25NYXA9bmV3IE1hcCx0aGlzLl9pZENvdW50ZXI9MCx0aGlzLl9jb21wYXJlV2l0aD1PYmplY3QuaXN9c2V0IGNvbXBhcmVXaXRoKGUpe3RoaXMuX2NvbXBhcmVXaXRoPWV9d3JpdGVWYWx1ZShlKXtsZXQgaTtpZih0aGlzLnZhbHVlPWUsQXJyYXkuaXNBcnJheShlKSl7bGV0IHI9ZS5tYXAobz0+dGhpcy5fZ2V0T3B0aW9uSWQobykpO2k9KG8sYSk9PntvLl9zZXRTZWxlY3RlZChyLmluZGV4T2YoYS50b1N0cmluZygpKT4tMSl9fWVsc2UgaT0ocixvKT0+e3IuX3NldFNlbGVjdGVkKCExKX07dGhpcy5fb3B0aW9uTWFwLmZvckVhY2goaSl9cmVnaXN0ZXJPbkNoYW5nZShlKXt0aGlzLm9uQ2hhbmdlPWk9PntsZXQgcj1bXSxvPWkuc2VsZWN0ZWRPcHRpb25zO2lmKHZvaWQgMCE9PW8pe2xldCBhPW87Zm9yKGxldCBzPTA7czxhLmxlbmd0aDtzKyspe2xldCBjPXRoaXMuX2dldE9wdGlvblZhbHVlKGFbc10udmFsdWUpO3IucHVzaChjKX19ZWxzZXtsZXQgYT1pLm9wdGlvbnM7Zm9yKGxldCBzPTA7czxhLmxlbmd0aDtzKyspe2xldCBsPWFbc107aWYobC5zZWxlY3RlZCl7bGV0IGM9dGhpcy5fZ2V0T3B0aW9uVmFsdWUobC52YWx1ZSk7ci5wdXNoKGMpfX19dGhpcy52YWx1ZT1yLGUocil9fV9yZWdpc3Rlck9wdGlvbihlKXtsZXQgaT0odGhpcy5faWRDb3VudGVyKyspLnRvU3RyaW5nKCk7cmV0dXJuIHRoaXMuX29wdGlvbk1hcC5zZXQoaSxlKSxpfV9nZXRPcHRpb25JZChlKXtmb3IobGV0IGkgb2YgQXJyYXkuZnJvbSh0aGlzLl9vcHRpb25NYXAua2V5cygpKSlpZih0aGlzLl9jb21wYXJlV2l0aCh0aGlzLl9vcHRpb25NYXAuZ2V0KGkpLl92YWx1ZSxlKSlyZXR1cm4gaTtyZXR1cm4gbnVsbH1fZ2V0T3B0aW9uVmFsdWUoZSl7bGV0IGk9ZnVuY3Rpb24obil7cmV0dXJuIG4uc3BsaXQoIjoiKVswXX0oZSk7cmV0dXJuIHRoaXMuX29wdGlvbk1hcC5oYXMoaSk/dGhpcy5fb3B0aW9uTWFwLmdldChpKS5fdmFsdWU6ZX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybih0fHwodD1YbihuKSkpKGl8fG4pfX0oKSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyJzZWxlY3QiLCJtdWx0aXBsZSIsIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsic2VsZWN0IiwibXVsdGlwbGUiLCIiLCJmb3JtQ29udHJvbCIsIiJdLFsic2VsZWN0IiwibXVsdGlwbGUiLCIiLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezEmZSYmQSgiY2hhbmdlIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkNoYW5nZShvLnRhcmdldCl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vblRvdWNoZWQoKX0pfSxpbnB1dHM6e2NvbXBhcmVXaXRoOiJjb21wYXJlV2l0aCJ9LGZlYXR1cmVzOltWdChbX3llXSksWGVdfSksbn0pKCksTXE9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscil7dGhpcy5fZWxlbWVudD1lLHRoaXMuX3JlbmRlcmVyPWksdGhpcy5fc2VsZWN0PXIsdGhpcy5fc2VsZWN0JiYodGhpcy5pZD10aGlzLl9zZWxlY3QuX3JlZ2lzdGVyT3B0aW9uKHRoaXMpKX1zZXQgbmdWYWx1ZShlKXtudWxsIT10aGlzLl9zZWxlY3QmJih0aGlzLl92YWx1ZT1lLHRoaXMuX3NldEVsZW1lbnRWYWx1ZShVOSh0aGlzLmlkLGUpKSx0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpKX1zZXQgdmFsdWUoZSl7dGhpcy5fc2VsZWN0Pyh0aGlzLl92YWx1ZT1lLHRoaXMuX3NldEVsZW1lbnRWYWx1ZShVOSh0aGlzLmlkLGUpKSx0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpKTp0aGlzLl9zZXRFbGVtZW50VmFsdWUoZSl9X3NldEVsZW1lbnRWYWx1ZShlKXt0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsInZhbHVlIixlKX1fc2V0U2VsZWN0ZWQoZSl7dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCJzZWxlY3RlZCIsZSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zZWxlY3QmJih0aGlzLl9zZWxlY3QuX29wdGlvbk1hcC5kZWxldGUodGhpcy5pZCksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMoZGMpLEMoQ3EsOSkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyJvcHRpb24iXV0saW5wdXRzOntuZ1ZhbHVlOiJuZ1ZhbHVlIix2YWx1ZToidmFsdWUifX0pLG59KSgpO2Z1bmN0aW9uIHdxKG4pe3JldHVybiJudW1iZXIiPT10eXBlb2Ygbj9uOnBhcnNlSW50KG4sMTApfWZ1bmN0aW9uIFNxKG4pe3JldHVybiJudW1iZXIiPT10eXBlb2Ygbj9uOnBhcnNlRmxvYXQobil9dmFyIEZoPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLl92YWxpZGF0b3I9dEV9bmdPbkNoYW5nZXMoZSl7aWYodGhpcy5pbnB1dE5hbWUgaW4gZSl7bGV0IGk9dGhpcy5ub3JtYWxpemVJbnB1dChlW3RoaXMuaW5wdXROYW1lXS5jdXJyZW50VmFsdWUpO3RoaXMuX2VuYWJsZWQ9dGhpcy5lbmFibGVkKGkpLHRoaXMuX3ZhbGlkYXRvcj10aGlzLl9lbmFibGVkP3RoaXMuY3JlYXRlVmFsaWRhdG9yKGkpOnRFLHRoaXMuX29uQ2hhbmdlJiZ0aGlzLl9vbkNoYW5nZSgpfX12YWxpZGF0ZShlKXtyZXR1cm4gdGhpcy5fdmFsaWRhdG9yKGUpfXJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZSl7dGhpcy5fb25DaGFuZ2U9ZX1lbmFibGVkKGUpe3JldHVybiBudWxsIT1lfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixmZWF0dXJlczpbcXRdfSksbn0pKCksdnllPXtwcm92aWRlOklvLHVzZUV4aXN0aW5nOlduKCgpPT55eWUpLG11bHRpOiEwfSx5eWU9KCgpPT57Y2xhc3MgbiBleHRlbmRzIEZoe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmlucHV0TmFtZT0ibWF4Iix0aGlzLm5vcm1hbGl6ZUlucHV0PWU9PlNxKGUpLHRoaXMuY3JlYXRlVmFsaWRhdG9yPWU9PnE5KGUpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuKHR8fCh0PVhuKG4pKSkoaXx8bil9fSgpLG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbImlucHV0IiwidHlwZSIsIm51bWJlciIsIm1heCIsIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwibnVtYmVyIiwibWF4IiwiIiwiZm9ybUNvbnRyb2wiLCIiXSxbImlucHV0IiwidHlwZSIsIm51bWJlciIsIm1heCIsIiIsIm5nTW9kZWwiLCIiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsyJmUmJkJlKCJtYXgiLGkuX2VuYWJsZWQ/aS5tYXg6bnVsbCl9LGlucHV0czp7bWF4OiJtYXgifSxmZWF0dXJlczpbVnQoW3Z5ZV0pLFhlXX0pLG59KSgpLHh5ZT17cHJvdmlkZTpJbyx1c2VFeGlzdGluZzpXbigoKT0+Q3llKSxtdWx0aTohMH0sQ3llPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBGaHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5pbnB1dE5hbWU9Im1pbiIsdGhpcy5ub3JtYWxpemVJbnB1dD1lPT5TcShlKSx0aGlzLmNyZWF0ZVZhbGlkYXRvcj1lPT5XOShlKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybih0fHwodD1YbihuKSkpKGl8fG4pfX0oKSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJtaW4iLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsIm51bWJlciIsIm1pbiIsIiIsImZvcm1Db250cm9sIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJtaW4iLCIiLCJuZ01vZGVsIiwiIl1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MiZlJiZCZSgibWluIixpLl9lbmFibGVkP2kubWluOm51bGwpfSxpbnB1dHM6e21pbjoibWluIn0sZmVhdHVyZXM6W1Z0KFt4eWVdKSxYZV19KSxufSkoKSxNeWU9e3Byb3ZpZGU6SW8sdXNlRXhpc3Rpbmc6V24oKCk9PkVxKSxtdWx0aTohMH0sd3llPXtwcm92aWRlOklvLHVzZUV4aXN0aW5nOlduKCgpPT5xMiksbXVsdGk6ITB9LEVxPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBGaHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5pbnB1dE5hbWU9InJlcXVpcmVkIix0aGlzLm5vcm1hbGl6ZUlucHV0PWV3LHRoaXMuY3JlYXRlVmFsaWRhdG9yPWU9Plg5fWVuYWJsZWQoZSl7cmV0dXJuIGV9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4odHx8KHQ9WG4obikpKShpfHxuKX19KCksbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siIiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdLFsiIiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbCIsIiIsMywidHlwZSIsImNoZWNrYm94Il0sWyIiLCJyZXF1aXJlZCIsIiIsIm5nTW9kZWwiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezImZSYmQmUoInJlcXVpcmVkIixpLl9lbmFibGVkPyIiOm51bGwpfSxpbnB1dHM6e3JlcXVpcmVkOiJyZXF1aXJlZCJ9LGZlYXR1cmVzOltWdChbTXllXSksWGVdfSksbn0pKCkscTI9KCgpPT57Y2xhc3MgbiBleHRlbmRzIEVxe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmNyZWF0ZVZhbGlkYXRvcj1lPT5ZOX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybih0fHwodD1YbihuKSkpKGl8fG4pfX0oKSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJjaGVja2JveCIsInJlcXVpcmVkIiwiIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJjaGVja2JveCIsInJlcXVpcmVkIiwiIiwiZm9ybUNvbnRyb2wiLCIiXSxbImlucHV0IiwidHlwZSIsImNoZWNrYm94IiwicmVxdWlyZWQiLCIiLCJuZ01vZGVsIiwiIl1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MiZlJiZCZSgicmVxdWlyZWQiLGkuX2VuYWJsZWQ/IiI6bnVsbCl9LGZlYXR1cmVzOltWdChbd3llXSksWGVdfSksbn0pKCksU3llPXtwcm92aWRlOklvLHVzZUV4aXN0aW5nOlduKCgpPT5FeWUpLG11bHRpOiEwfSxFeWU9KCgpPT57Y2xhc3MgbiBleHRlbmRzIEZoe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmlucHV0TmFtZT0iZW1haWwiLHRoaXMubm9ybWFsaXplSW5wdXQ9ZXcsdGhpcy5jcmVhdGVWYWxpZGF0b3I9ZT0+UTl9ZW5hYmxlZChlKXtyZXR1cm4gZX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybih0fHwodD1YbihuKSkpKGl8fG4pfX0oKSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJlbWFpbCIsIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiIiwiZW1haWwiLCIiLCJmb3JtQ29udHJvbCIsIiJdLFsiIiwiZW1haWwiLCIiLCJuZ01vZGVsIiwiIl1dLGlucHV0czp7ZW1haWw6ImVtYWlsIn0sZmVhdHVyZXM6W1Z0KFtTeWVdKSxYZV19KSxufSkoKSxUeWU9e3Byb3ZpZGU6SW8sdXNlRXhpc3Rpbmc6V24oKCk9PkR5ZSksbXVsdGk6ITB9LER5ZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgRmh7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuaW5wdXROYW1lPSJtaW5sZW5ndGgiLHRoaXMubm9ybWFsaXplSW5wdXQ9ZT0+d3EoZSksdGhpcy5jcmVhdGVWYWxpZGF0b3I9ZT0+WjkoZSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4odHx8KHQ9WG4obikpKShpfHxuKX19KCksbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siIiwibWlubGVuZ3RoIiwiIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyIiLCJtaW5sZW5ndGgiLCIiLCJmb3JtQ29udHJvbCIsIiJdLFsiIiwibWlubGVuZ3RoIiwiIiwibmdNb2RlbCIsIiJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezImZSYmQmUoIm1pbmxlbmd0aCIsaS5fZW5hYmxlZD9pLm1pbmxlbmd0aDpudWxsKX0saW5wdXRzOnttaW5sZW5ndGg6Im1pbmxlbmd0aCJ9LGZlYXR1cmVzOltWdChbVHllXSksWGVdfSksbn0pKCksSXllPXtwcm92aWRlOklvLHVzZUV4aXN0aW5nOlduKCgpPT5BeWUpLG11bHRpOiEwfSxBeWU9KCgpPT57Y2xhc3MgbiBleHRlbmRzIEZoe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmlucHV0TmFtZT0ibWF4bGVuZ3RoIix0aGlzLm5vcm1hbGl6ZUlucHV0PWU9PndxKGUpLHRoaXMuY3JlYXRlVmFsaWRhdG9yPWU9Pks5KGUpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuKHR8fCh0PVhuKG4pKSkoaXx8bil9fSgpLG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsIm1heGxlbmd0aCIsIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiIiwibWF4bGVuZ3RoIiwiIiwiZm9ybUNvbnRyb2wiLCIiXSxbIiIsIm1heGxlbmd0aCIsIiIsIm5nTW9kZWwiLCIiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsyJmUmJkJlKCJtYXhsZW5ndGgiLGkuX2VuYWJsZWQ/aS5tYXhsZW5ndGg6bnVsbCl9LGlucHV0czp7bWF4bGVuZ3RoOiJtYXhsZW5ndGgifSxmZWF0dXJlczpbVnQoW0l5ZV0pLFhlXX0pLG59KSgpLFJ5ZT17cHJvdmlkZTpJbyx1c2VFeGlzdGluZzpXbigoKT0+UHllKSxtdWx0aTohMH0sUHllPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBGaHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5pbnB1dE5hbWU9InBhdHRlcm4iLHRoaXMubm9ybWFsaXplSW5wdXQ9ZT0+ZSx0aGlzLmNyZWF0ZVZhbGlkYXRvcj1lPT5KOShlKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybih0fHwodD1YbihuKSkpKGl8fG4pfX0oKSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJwYXR0ZXJuIiwiIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyIiLCJwYXR0ZXJuIiwiIiwiZm9ybUNvbnRyb2wiLCIiXSxbIiIsInBhdHRlcm4iLCIiLCJuZ01vZGVsIiwiIl1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MiZlJiZCZSgicGF0dGVybiIsaS5fZW5hYmxlZD9pLnBhdHRlcm46bnVsbCl9LGlucHV0czp7cGF0dGVybjoicGF0dGVybiJ9LGZlYXR1cmVzOltWdChbUnllXSksWGVdfSksbn0pKCksVHE9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W2ZxXX0pLG59KSgpLEd1PShuZXcgTWwoIjE1LjIuOSIpLCgoKT0+e2NsYXNzIG57c3RhdGljIHdpdGhDb25maWcoZSl7cmV0dXJue25nTW9kdWxlOm4scHJvdmlkZXJzOlt7cHJvdmlkZTpPaCx1c2VWYWx1ZTplLmNhbGxTZXREaXNhYmxlZFN0YXRlPz90eX1dfX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W1RxXX0pLG59KSgpKSx1RT0oKCk9PntjbGFzcyBue3N0YXRpYyB3aXRoQ29uZmlnKGUpe3JldHVybntuZ01vZHVsZTpuLHByb3ZpZGVyczpbe3Byb3ZpZGU6RzIsdXNlVmFsdWU6ZS53YXJuT25OZ01vZGVsV2l0aEZvcm1Db250cm9sPz8iYWx3YXlzIn0se3Byb3ZpZGU6T2gsdXNlVmFsdWU6ZS5jYWxsU2V0RGlzYWJsZWRTdGF0ZT8/dHl9XX19fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltUcV19KSxufSkoKSxreWU9WyJ0cmlnZ2VyIl0sT3llPVsicGFuZWwiXTtmdW5jdGlvbiBGeWUobix0KXtpZigxJm4mJihmKDAsInNwYW4iLDEwKSxUKDEpLGcoKSksMiZuKXtsZXQgZT13KCk7digxKSxrdChlLnBsYWNlaG9sZGVyKX19ZnVuY3Rpb24gTnllKG4sdCl7aWYoMSZuJiYoZigwLCJzcGFuIiwxNCksVCgxKSxnKCkpLDImbil7bGV0IGU9dygyKTt2KDEpLGt0KGUudHJpZ2dlclZhbHVlKX19ZnVuY3Rpb24gTHllKG4sdCl7MSZuJiZUdCgwLDAsWyIqbmdTd2l0Y2hDYXNlIiwidHJ1ZSJdKX1mdW5jdGlvbiBCeWUobix0KXsxJm4mJihmKDAsInNwYW4iLDExKSxTKDEsTnllLDIsMSwic3BhbiIsMTIpLFMoMixMeWUsMSwwLCJuZy1jb250ZW50IiwxMyksZygpKSwyJm4mJihiKCJuZ1N3aXRjaCIsISF3KCkuY3VzdG9tVHJpZ2dlciksdigyKSxiKCJuZ1N3aXRjaENhc2UiLCEwKSl9ZnVuY3Rpb24gVnllKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO3FuKCksdWEoKSxmKDAsImRpdiIsMTUsMTYpLEEoIkB0cmFuc2Zvcm1QYW5lbC5kb25lIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLl9wYW5lbERvbmVBbmltYXRpbmdTdHJlYW0ubmV4dChyLnRvU3RhdGUpKX0pKCJrZXlkb3duIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLl9oYW5kbGVLZXlkb3duKHIpKX0pLFR0KDIsMSksZygpfWlmKDImbil7bGV0IGU9dygpO2JiKCJtYXQtbWRjLXNlbGVjdC1wYW5lbCBtZGMtbWVudS1zdXJmYWNlIG1kYy1tZW51LXN1cmZhY2UtLW9wZW4gIixlLl9nZXRQYW5lbFRoZW1lKCksIiIpLGIoIm5nQ2xhc3MiLGUucGFuZWxDbGFzcykoIkB0cmFuc2Zvcm1QYW5lbCIsInNob3dpbmciKSxCZSgiaWQiLGUuaWQrIi1wYW5lbCIpKCJhcmlhLW11bHRpc2VsZWN0YWJsZSIsZS5tdWx0aXBsZSkoImFyaWEtbGFiZWwiLGUuYXJpYUxhYmVsfHxudWxsKSgiYXJpYS1sYWJlbGxlZGJ5IixlLl9nZXRQYW5lbEFyaWFMYWJlbGxlZGJ5KCkpfX12YXIgSHllPVtbWyJtYXQtc2VsZWN0LXRyaWdnZXIiXV0sIioiXSx6eWU9WyJtYXQtc2VsZWN0LXRyaWdnZXIiLCIqIl0sVXllPXt0cmFuc2Zvcm1QYW5lbFdyYXA6ZnIoInRyYW5zZm9ybVBhbmVsV3JhcCIsW2JpKCIqID0+IHZvaWQiLHJoKCJAdHJhbnNmb3JtUGFuZWwiLFtpaCgpXSx7b3B0aW9uYWw6ITB9KSldKSx0cmFuc2Zvcm1QYW5lbDpmcigidHJhbnNmb3JtUGFuZWwiLFtTaSgidm9pZCIscm4oe29wYWNpdHk6MCx0cmFuc2Zvcm06InNjYWxlKDEsIDAuOCkifSkpLGJpKCJ2b2lkID0+IHNob3dpbmciLE1pKCIxMjBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSIscm4oe29wYWNpdHk6MSx0cmFuc2Zvcm06InNjYWxlKDEsIDEpIn0pKSksYmkoIiogPT4gdm9pZCIsTWkoIjEwMG1zIGxpbmVhciIscm4oe29wYWNpdHk6MH0pKSldKX0sRHE9MCxJcT1uZXcgdGUoIm1hdC1zZWxlY3Qtc2Nyb2xsLXN0cmF0ZWd5IiksR3llPW5ldyB0ZSgiTUFUX1NFTEVDVF9DT05GSUciKSxXeWU9e3Byb3ZpZGU6SXEsZGVwczpbT2ldLHVzZUZhY3Rvcnk6ZnVuY3Rpb24obil7cmV0dXJuKCk9Pm4uc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCl9fSxxeWU9bmV3IHRlKCJNYXRTZWxlY3RUcmlnZ2VyIiksWHllPWdvKERjKGFvKGhnKGNsYXNze2NvbnN0cnVjdG9yKG4sdCxlLGkscil7dGhpcy5fZWxlbWVudFJlZj1uLHRoaXMuX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcj10LHRoaXMuX3BhcmVudEZvcm09ZSx0aGlzLl9wYXJlbnRGb3JtR3JvdXA9aSx0aGlzLm5nQ29udHJvbD1yLHRoaXMuc3RhdGVDaGFuZ2VzPW5ldyBFZX19KSkpKSxZeWU9KCgpPT57Y2xhc3MgbiBleHRlbmRzIFh5ZXtnZXQgZm9jdXNlZCgpe3JldHVybiB0aGlzLl9mb2N1c2VkfHx0aGlzLl9wYW5lbE9wZW59Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyfXNldCBwbGFjZWhvbGRlcihlKXt0aGlzLl9wbGFjZWhvbGRlcj1lLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX1nZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy5fcmVxdWlyZWQ/P3RoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoaWwucmVxdWlyZWQpPz8hMX1zZXQgcmVxdWlyZWQoZSl7dGhpcy5fcmVxdWlyZWQ9dnQoZSksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfWdldCBtdWx0aXBsZSgpe3JldHVybiB0aGlzLl9tdWx0aXBsZX1zZXQgbXVsdGlwbGUoZSl7dGhpcy5fbXVsdGlwbGU9dnQoZSl9Z2V0IGRpc2FibGVPcHRpb25DZW50ZXJpbmcoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZU9wdGlvbkNlbnRlcmluZ31zZXQgZGlzYWJsZU9wdGlvbkNlbnRlcmluZyhlKXt0aGlzLl9kaXNhYmxlT3B0aW9uQ2VudGVyaW5nPXZ0KGUpfWdldCBjb21wYXJlV2l0aCgpe3JldHVybiB0aGlzLl9jb21wYXJlV2l0aH1zZXQgY29tcGFyZVdpdGgoZSl7dGhpcy5fY29tcGFyZVdpdGg9ZSx0aGlzLl9zZWxlY3Rpb25Nb2RlbCYmdGhpcy5faW5pdGlhbGl6ZVNlbGVjdGlvbigpfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLl92YWx1ZX1zZXQgdmFsdWUoZSl7dGhpcy5fYXNzaWduVmFsdWUoZSkmJnRoaXMuX29uQ2hhbmdlKGUpfWdldCB0eXBlYWhlYWREZWJvdW5jZUludGVydmFsKCl7cmV0dXJuIHRoaXMuX3R5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWx9c2V0IHR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWwoZSl7dGhpcy5fdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbD1taShlKX1nZXQgaWQoKXtyZXR1cm4gdGhpcy5faWR9c2V0IGlkKGUpe3RoaXMuX2lkPWV8fHRoaXMuX3VpZCx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9Y29uc3RydWN0b3IoZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgsbSxfKXtzdXBlcihhLG8sbCxjLHUpLHRoaXMuX3ZpZXdwb3J0UnVsZXI9ZSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1pLHRoaXMuX25nWm9uZT1yLHRoaXMuX2Rpcj1zLHRoaXMuX3BhcmVudEZvcm1GaWVsZD1kLHRoaXMuX2xpdmVBbm5vdW5jZXI9bSx0aGlzLl9kZWZhdWx0T3B0aW9ucz1fLHRoaXMuX3BhbmVsT3Blbj0hMSx0aGlzLl9jb21wYXJlV2l0aD0oTSx5KT0+TT09PXksdGhpcy5fdWlkPSJtYXQtc2VsZWN0LSIrRHErKyx0aGlzLl90cmlnZ2VyQXJpYUxhYmVsbGVkQnk9bnVsbCx0aGlzLl9kZXN0cm95PW5ldyBFZSx0aGlzLl9vbkNoYW5nZT0oKT0+e30sdGhpcy5fb25Ub3VjaGVkPSgpPT57fSx0aGlzLl92YWx1ZUlkPSJtYXQtc2VsZWN0LXZhbHVlLSIrRHErKyx0aGlzLl9wYW5lbERvbmVBbmltYXRpbmdTdHJlYW09bmV3IEVlLHRoaXMuX292ZXJsYXlQYW5lbENsYXNzPXRoaXMuX2RlZmF1bHRPcHRpb25zPy5vdmVybGF5UGFuZWxDbGFzc3x8IiIsdGhpcy5fZm9jdXNlZD0hMSx0aGlzLmNvbnRyb2xUeXBlPSJtYXQtc2VsZWN0Iix0aGlzLl9tdWx0aXBsZT0hMSx0aGlzLl9kaXNhYmxlT3B0aW9uQ2VudGVyaW5nPXRoaXMuX2RlZmF1bHRPcHRpb25zPy5kaXNhYmxlT3B0aW9uQ2VudGVyaW5nPz8hMSx0aGlzLmFyaWFMYWJlbD0iIix0aGlzLm9wdGlvblNlbGVjdGlvbkNoYW5nZXM9aXMoKCk9PntsZXQgTT10aGlzLm9wdGlvbnM7cmV0dXJuIE0/TS5jaGFuZ2VzLnBpcGUoa24oTSksSm4oKCk9PnRuKC4uLk0ubWFwKHk9Pnkub25TZWxlY3Rpb25DaGFuZ2UpKSkpOnRoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKEx0KDEpLEpuKCgpPT50aGlzLm9wdGlvblNlbGVjdGlvbkNoYW5nZXMpKX0pLHRoaXMub3BlbmVkQ2hhbmdlPW5ldyBGLHRoaXMuX29wZW5lZFN0cmVhbT10aGlzLm9wZW5lZENoYW5nZS5waXBlKE9lKE09Pk0pLHEoKCk9Pnt9KSksdGhpcy5fY2xvc2VkU3RyZWFtPXRoaXMub3BlbmVkQ2hhbmdlLnBpcGUoT2UoTT0+IU0pLHEoKCk9Pnt9KSksdGhpcy5zZWxlY3Rpb25DaGFuZ2U9bmV3IEYsdGhpcy52YWx1ZUNoYW5nZT1uZXcgRix0aGlzLm5nQ29udHJvbCYmKHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3I9dGhpcyksbnVsbCE9Xz8udHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCYmKHRoaXMuX3R5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWw9Xy50eXBlYWhlYWREZWJvdW5jZUludGVydmFsKSx0aGlzLl9zY3JvbGxTdHJhdGVneUZhY3Rvcnk9aCx0aGlzLl9zY3JvbGxTdHJhdGVneT10aGlzLl9zY3JvbGxTdHJhdGVneUZhY3RvcnkoKSx0aGlzLnRhYkluZGV4PXBhcnNlSW50KHApfHwwLHRoaXMuaWQ9dGhpcy5pZH1uZ09uSW5pdCgpe3RoaXMuX3NlbGVjdGlvbk1vZGVsPW5ldyBmZyh0aGlzLm11bHRpcGxlKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCksdGhpcy5fcGFuZWxEb25lQW5pbWF0aW5nU3RyZWFtLnBpcGUocmkoKSxpdCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgpPT50aGlzLl9wYW5lbERvbmVBbmltYXRpbmcodGhpcy5wYW5lbE9wZW4pKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLl9pbml0S2V5TWFuYWdlcigpLHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNoYW5nZWQucGlwZShpdCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKGU9PntlLmFkZGVkLmZvckVhY2goaT0+aS5zZWxlY3QoKSksZS5yZW1vdmVkLmZvckVhY2goaT0+aS5kZXNlbGVjdCgpKX0pLHRoaXMub3B0aW9ucy5jaGFuZ2VzLnBpcGUoa24obnVsbCksaXQodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKT0+e3RoaXMuX3Jlc2V0T3B0aW9ucygpLHRoaXMuX2luaXRpYWxpemVTZWxlY3Rpb24oKX0pfW5nRG9DaGVjaygpe2xldCBlPXRoaXMuX2dldFRyaWdnZXJBcmlhTGFiZWxsZWRieSgpLGk9dGhpcy5uZ0NvbnRyb2w7aWYoZSE9PXRoaXMuX3RyaWdnZXJBcmlhTGFiZWxsZWRCeSl7bGV0IHI9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O3RoaXMuX3RyaWdnZXJBcmlhTGFiZWxsZWRCeT1lLGU/ci5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsZSk6ci5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIpfWkmJih0aGlzLl9wcmV2aW91c0NvbnRyb2whPT1pLmNvbnRyb2wmJih2b2lkIDAhPT10aGlzLl9wcmV2aW91c0NvbnRyb2wmJm51bGwhPT1pLmRpc2FibGVkJiZpLmRpc2FibGVkIT09dGhpcy5kaXNhYmxlZCYmKHRoaXMuZGlzYWJsZWQ9aS5kaXNhYmxlZCksdGhpcy5fcHJldmlvdXNDb250cm9sPWkuY29udHJvbCksdGhpcy51cGRhdGVFcnJvclN0YXRlKCkpfW5nT25DaGFuZ2VzKGUpeyhlLmRpc2FibGVkfHxlLnVzZXJBcmlhRGVzY3JpYmVkQnkpJiZ0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCksZS50eXBlYWhlYWREZWJvdW5jZUludGVydmFsJiZ0aGlzLl9rZXlNYW5hZ2VyJiZ0aGlzLl9rZXlNYW5hZ2VyLndpdGhUeXBlQWhlYWQodGhpcy5fdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9rZXlNYW5hZ2VyPy5kZXN0cm95KCksdGhpcy5fZGVzdHJveS5uZXh0KCksdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpLHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCl9dG9nZ2xlKCl7dGhpcy5wYW5lbE9wZW4/dGhpcy5jbG9zZSgpOnRoaXMub3BlbigpfW9wZW4oKXt0aGlzLl9jYW5PcGVuKCkmJih0aGlzLl9wYW5lbE9wZW49ITAsdGhpcy5fa2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKG51bGwpLHRoaXMuX2hpZ2hsaWdodENvcnJlY3RPcHRpb24oKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9Y2xvc2UoKXt0aGlzLl9wYW5lbE9wZW4mJih0aGlzLl9wYW5lbE9wZW49ITEsdGhpcy5fa2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuX2lzUnRsKCk/InJ0bCI6Imx0ciIpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpLHRoaXMuX29uVG91Y2hlZCgpKX13cml0ZVZhbHVlKGUpe3RoaXMuX2Fzc2lnblZhbHVlKGUpfXJlZ2lzdGVyT25DaGFuZ2UoZSl7dGhpcy5fb25DaGFuZ2U9ZX1yZWdpc3Rlck9uVG91Y2hlZChlKXt0aGlzLl9vblRvdWNoZWQ9ZX1zZXREaXNhYmxlZFN0YXRlKGUpe3RoaXMuZGlzYWJsZWQ9ZSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9Z2V0IHBhbmVsT3Blbigpe3JldHVybiB0aGlzLl9wYW5lbE9wZW59Z2V0IHNlbGVjdGVkKCl7cmV0dXJuIHRoaXMubXVsdGlwbGU/dGhpcy5fc2VsZWN0aW9uTW9kZWw/LnNlbGVjdGVkfHxbXTp0aGlzLl9zZWxlY3Rpb25Nb2RlbD8uc2VsZWN0ZWRbMF19Z2V0IHRyaWdnZXJWYWx1ZSgpe2lmKHRoaXMuZW1wdHkpcmV0dXJuIiI7aWYodGhpcy5fbXVsdGlwbGUpe2xldCBlPXRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLm1hcChpPT5pLnZpZXdWYWx1ZSk7cmV0dXJuIHRoaXMuX2lzUnRsKCkmJmUucmV2ZXJzZSgpLGUuam9pbigiLCAiKX1yZXR1cm4gdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWRbMF0udmlld1ZhbHVlfV9pc1J0bCgpe3JldHVybiEhdGhpcy5fZGlyJiYicnRsIj09PXRoaXMuX2Rpci52YWx1ZX1faGFuZGxlS2V5ZG93bihlKXt0aGlzLmRpc2FibGVkfHwodGhpcy5wYW5lbE9wZW4/dGhpcy5faGFuZGxlT3BlbktleWRvd24oZSk6dGhpcy5faGFuZGxlQ2xvc2VkS2V5ZG93bihlKSl9X2hhbmRsZUNsb3NlZEtleWRvd24oZSl7bGV0IGk9ZS5rZXlDb2RlLHI9NDA9PT1pfHwzOD09PWl8fDM3PT09aXx8Mzk9PT1pLG89MTM9PT1pfHwzMj09PWksYT10aGlzLl9rZXlNYW5hZ2VyO2lmKCFhLmlzVHlwaW5nKCkmJm8mJiFPcihlKXx8KHRoaXMubXVsdGlwbGV8fGUuYWx0S2V5KSYmcillLnByZXZlbnREZWZhdWx0KCksdGhpcy5vcGVuKCk7ZWxzZSBpZighdGhpcy5tdWx0aXBsZSl7bGV0IHM9dGhpcy5zZWxlY3RlZDthLm9uS2V5ZG93bihlKTtsZXQgbD10aGlzLnNlbGVjdGVkO2wmJnMhPT1sJiZ0aGlzLl9saXZlQW5ub3VuY2VyLmFubm91bmNlKGwudmlld1ZhbHVlLDFlNCl9fV9oYW5kbGVPcGVuS2V5ZG93bihlKXtsZXQgaT10aGlzLl9rZXlNYW5hZ2VyLHI9ZS5rZXlDb2RlLG89NDA9PT1yfHwzOD09PXIsYT1pLmlzVHlwaW5nKCk7aWYobyYmZS5hbHRLZXkpZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2xvc2UoKTtlbHNlIGlmKGF8fDEzIT09ciYmMzIhPT1yfHwhaS5hY3RpdmVJdGVtfHxPcihlKSlpZighYSYmdGhpcy5fbXVsdGlwbGUmJjY1PT09ciYmZS5jdHJsS2V5KXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHM9dGhpcy5vcHRpb25zLnNvbWUobD0+IWwuZGlzYWJsZWQmJiFsLnNlbGVjdGVkKTt0aGlzLm9wdGlvbnMuZm9yRWFjaChsPT57bC5kaXNhYmxlZHx8KHM/bC5zZWxlY3QoKTpsLmRlc2VsZWN0KCkpfSl9ZWxzZXtsZXQgcz1pLmFjdGl2ZUl0ZW1JbmRleDtpLm9uS2V5ZG93bihlKSx0aGlzLl9tdWx0aXBsZSYmbyYmZS5zaGlmdEtleSYmaS5hY3RpdmVJdGVtJiZpLmFjdGl2ZUl0ZW1JbmRleCE9PXMmJmkuYWN0aXZlSXRlbS5fc2VsZWN0VmlhSW50ZXJhY3Rpb24oKX1lbHNlIGUucHJldmVudERlZmF1bHQoKSxpLmFjdGl2ZUl0ZW0uX3NlbGVjdFZpYUludGVyYWN0aW9uKCl9X29uRm9jdXMoKXt0aGlzLmRpc2FibGVkfHwodGhpcy5fZm9jdXNlZD0hMCx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCkpfV9vbkJsdXIoKXt0aGlzLl9mb2N1c2VkPSExLHRoaXMuX2tleU1hbmFnZXI/LmNhbmNlbFR5cGVhaGVhZCgpLCF0aGlzLmRpc2FibGVkJiYhdGhpcy5wYW5lbE9wZW4mJih0aGlzLl9vblRvdWNoZWQoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCkpfV9vbkF0dGFjaGVkKCl7dGhpcy5fb3ZlcmxheURpci5wb3NpdGlvbkNoYW5nZS5waXBlKEx0KDEpKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCksdGhpcy5fcG9zaXRpb25pbmdTZXR0bGVkKCl9KX1fZ2V0UGFuZWxUaGVtZSgpe3JldHVybiB0aGlzLl9wYXJlbnRGb3JtRmllbGQ/YG1hdC0ke3RoaXMuX3BhcmVudEZvcm1GaWVsZC5jb2xvcn1gOiIifWdldCBlbXB0eSgpe3JldHVybiF0aGlzLl9zZWxlY3Rpb25Nb2RlbHx8dGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNFbXB0eSgpfV9pbml0aWFsaXplU2VsZWN0aW9uKCl7UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3RoaXMubmdDb250cm9sJiYodGhpcy5fdmFsdWU9dGhpcy5uZ0NvbnRyb2wudmFsdWUpLHRoaXMuX3NldFNlbGVjdGlvbkJ5VmFsdWUodGhpcy5fdmFsdWUpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX0pfV9zZXRTZWxlY3Rpb25CeVZhbHVlKGUpe2lmKHRoaXMub3B0aW9ucy5mb3JFYWNoKGk9Pmkuc2V0SW5hY3RpdmVTdHlsZXMoKSksdGhpcy5fc2VsZWN0aW9uTW9kZWwuY2xlYXIoKSx0aGlzLm11bHRpcGxlJiZlKUFycmF5LmlzQXJyYXkoZSksZS5mb3JFYWNoKGk9PnRoaXMuX3NlbGVjdE9wdGlvbkJ5VmFsdWUoaSkpLHRoaXMuX3NvcnRWYWx1ZXMoKTtlbHNle2xldCBpPXRoaXMuX3NlbGVjdE9wdGlvbkJ5VmFsdWUoZSk7aT90aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oaSk6dGhpcy5wYW5lbE9wZW58fHRoaXMuX2tleU1hbmFnZXIudXBkYXRlQWN0aXZlSXRlbSgtMSl9dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9X3NlbGVjdE9wdGlvbkJ5VmFsdWUoZSl7bGV0IGk9dGhpcy5vcHRpb25zLmZpbmQocj0+e2lmKHRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzU2VsZWN0ZWQocikpcmV0dXJuITE7dHJ5e3JldHVybiBudWxsIT1yLnZhbHVlJiZ0aGlzLl9jb21wYXJlV2l0aChyLnZhbHVlLGUpfWNhdGNoe3JldHVybiExfX0pO3JldHVybiBpJiZ0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QoaSksaX1fYXNzaWduVmFsdWUoZSl7cmV0dXJuISEoZSE9PXRoaXMuX3ZhbHVlfHx0aGlzLl9tdWx0aXBsZSYmQXJyYXkuaXNBcnJheShlKSkmJih0aGlzLm9wdGlvbnMmJnRoaXMuX3NldFNlbGVjdGlvbkJ5VmFsdWUoZSksdGhpcy5fdmFsdWU9ZSwhMCl9X2luaXRLZXlNYW5hZ2VyKCl7dGhpcy5fa2V5TWFuYWdlcj1uZXcgbGcodGhpcy5vcHRpb25zKS53aXRoVHlwZUFoZWFkKHRoaXMuX3R5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWwpLndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKCkud2l0aEhvcml6b250YWxPcmllbnRhdGlvbih0aGlzLl9pc1J0bCgpPyJydGwiOiJsdHIiKS53aXRoSG9tZUFuZEVuZCgpLndpdGhQYWdlVXBEb3duKCkud2l0aEFsbG93ZWRNb2RpZmllcktleXMoWyJzaGlmdEtleSJdKSx0aGlzLl9rZXlNYW5hZ2VyLnRhYk91dC5zdWJzY3JpYmUoKCk9Pnt0aGlzLnBhbmVsT3BlbiYmKCF0aGlzLm11bHRpcGxlJiZ0aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0mJnRoaXMuX2tleU1hbmFnZXIuYWN0aXZlSXRlbS5fc2VsZWN0VmlhSW50ZXJhY3Rpb24oKSx0aGlzLmZvY3VzKCksdGhpcy5jbG9zZSgpKX0pLHRoaXMuX2tleU1hbmFnZXIuY2hhbmdlLnN1YnNjcmliZSgoKT0+e3RoaXMuX3BhbmVsT3BlbiYmdGhpcy5wYW5lbD90aGlzLl9zY3JvbGxPcHRpb25JbnRvVmlldyh0aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleHx8MCk6IXRoaXMuX3BhbmVsT3BlbiYmIXRoaXMubXVsdGlwbGUmJnRoaXMuX2tleU1hbmFnZXIuYWN0aXZlSXRlbSYmdGhpcy5fa2V5TWFuYWdlci5hY3RpdmVJdGVtLl9zZWxlY3RWaWFJbnRlcmFjdGlvbigpfSl9X3Jlc2V0T3B0aW9ucygpe2xldCBlPXRuKHRoaXMub3B0aW9ucy5jaGFuZ2VzLHRoaXMuX2Rlc3Ryb3kpO3RoaXMub3B0aW9uU2VsZWN0aW9uQ2hhbmdlcy5waXBlKGl0KGUpKS5zdWJzY3JpYmUoaT0+e3RoaXMuX29uU2VsZWN0KGkuc291cmNlLGkuaXNVc2VySW5wdXQpLGkuaXNVc2VySW5wdXQmJiF0aGlzLm11bHRpcGxlJiZ0aGlzLl9wYW5lbE9wZW4mJih0aGlzLmNsb3NlKCksdGhpcy5mb2N1cygpKX0pLHRuKC4uLnRoaXMub3B0aW9ucy5tYXAoaT0+aS5fc3RhdGVDaGFuZ2VzKSkucGlwZShpdChlKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX0pfV9vblNlbGVjdChlLGkpe2xldCByPXRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzU2VsZWN0ZWQoZSk7bnVsbCE9ZS52YWx1ZXx8dGhpcy5fbXVsdGlwbGU/KHIhPT1lLnNlbGVjdGVkJiYoZS5zZWxlY3RlZD90aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QoZSk6dGhpcy5fc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3QoZSkpLGkmJnRoaXMuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShlKSx0aGlzLm11bHRpcGxlJiYodGhpcy5fc29ydFZhbHVlcygpLGkmJnRoaXMuZm9jdXMoKSkpOihlLmRlc2VsZWN0KCksdGhpcy5fc2VsZWN0aW9uTW9kZWwuY2xlYXIoKSxudWxsIT10aGlzLnZhbHVlJiZ0aGlzLl9wcm9wYWdhdGVDaGFuZ2VzKGUudmFsdWUpKSxyIT09dGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZChlKSYmdGhpcy5fcHJvcGFnYXRlQ2hhbmdlcygpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX1fc29ydFZhbHVlcygpe2lmKHRoaXMubXVsdGlwbGUpe2xldCBlPXRoaXMub3B0aW9ucy50b0FycmF5KCk7dGhpcy5fc2VsZWN0aW9uTW9kZWwuc29ydCgoaSxyKT0+dGhpcy5zb3J0Q29tcGFyYXRvcj90aGlzLnNvcnRDb21wYXJhdG9yKGkscixlKTplLmluZGV4T2YoaSktZS5pbmRleE9mKHIpKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9fV9wcm9wYWdhdGVDaGFuZ2VzKGUpe2xldCBpPW51bGw7aT10aGlzLm11bHRpcGxlP3RoaXMuc2VsZWN0ZWQubWFwKHI9PnIudmFsdWUpOnRoaXMuc2VsZWN0ZWQ/dGhpcy5zZWxlY3RlZC52YWx1ZTplLHRoaXMuX3ZhbHVlPWksdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGkpLHRoaXMuX29uQ2hhbmdlKGkpLHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5fZ2V0Q2hhbmdlRXZlbnQoaSkpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfV9oaWdobGlnaHRDb3JyZWN0T3B0aW9uKCl7dGhpcy5fa2V5TWFuYWdlciYmKHRoaXMuZW1wdHk/dGhpcy5fa2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTp0aGlzLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWRbMF0pKX1fY2FuT3Blbigpe3JldHVybiF0aGlzLl9wYW5lbE9wZW4mJiF0aGlzLmRpc2FibGVkJiZ0aGlzLm9wdGlvbnM/Lmxlbmd0aD4wfWZvY3VzKGUpe3RoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cyhlKX1fZ2V0UGFuZWxBcmlhTGFiZWxsZWRieSgpe2lmKHRoaXMuYXJpYUxhYmVsKXJldHVybiBudWxsO2xldCBlPXRoaXMuX3BhcmVudEZvcm1GaWVsZD8uZ2V0TGFiZWxJZCgpO3JldHVybiB0aGlzLmFyaWFMYWJlbGxlZGJ5PyhlP2UrIiAiOiIiKSt0aGlzLmFyaWFMYWJlbGxlZGJ5OmV9X2dldEFyaWFBY3RpdmVEZXNjZW5kYW50KCl7cmV0dXJuIHRoaXMucGFuZWxPcGVuJiZ0aGlzLl9rZXlNYW5hZ2VyJiZ0aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/dGhpcy5fa2V5TWFuYWdlci5hY3RpdmVJdGVtLmlkOm51bGx9X2dldFRyaWdnZXJBcmlhTGFiZWxsZWRieSgpe2lmKHRoaXMuYXJpYUxhYmVsKXJldHVybiBudWxsO2xldCBlPXRoaXMuX3BhcmVudEZvcm1GaWVsZD8uZ2V0TGFiZWxJZCgpLGk9KGU/ZSsiICI6IiIpK3RoaXMuX3ZhbHVlSWQ7cmV0dXJuIHRoaXMuYXJpYUxhYmVsbGVkYnkmJihpKz0iICIrdGhpcy5hcmlhTGFiZWxsZWRieSksaX1fcGFuZWxEb25lQW5pbWF0aW5nKGUpe3RoaXMub3BlbmVkQ2hhbmdlLmVtaXQoZSl9c2V0RGVzY3JpYmVkQnlJZHMoZSl7ZS5sZW5ndGg/dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1kZXNjcmliZWRieSIsZS5qb2luKCIgIikpOnRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtZGVzY3JpYmVkYnkiKX1vbkNvbnRhaW5lckNsaWNrKCl7dGhpcy5mb2N1cygpLHRoaXMub3BlbigpfWdldCBzaG91bGRMYWJlbEZsb2F0KCl7cmV0dXJuIHRoaXMuX3BhbmVsT3Blbnx8IXRoaXMuZW1wdHl8fHRoaXMuX2ZvY3VzZWQmJiEhdGhpcy5fcGxhY2Vob2xkZXJ9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoV2EpLEMoUXQpLEMob3QpLEMoRWgpLEMoeGUpLEMoemksOCksQyhDZyw4KSxDKE1nLDgpLEMoUGgsOCksQyhxYSwxMCksTW8oInRhYmluZGV4IiksQyhJcSksQyhIdiksQyhHeWUsOCkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHZpZXdRdWVyeTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmKFVlKGt5ZSw1KSxVZShPeWUsNSksVWUoVnUsNSkpLDImZSl7bGV0IHI7YmUocj12ZSgpKSYmKGkudHJpZ2dlcj1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS5wYW5lbD1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS5fb3ZlcmxheURpcj1yLmZpcnN0KX19LGlucHV0czp7dXNlckFyaWFEZXNjcmliZWRCeTpbImFyaWEtZGVzY3JpYmVkYnkiLCJ1c2VyQXJpYURlc2NyaWJlZEJ5Il0scGFuZWxDbGFzczoicGFuZWxDbGFzcyIscGxhY2Vob2xkZXI6InBsYWNlaG9sZGVyIixyZXF1aXJlZDoicmVxdWlyZWQiLG11bHRpcGxlOiJtdWx0aXBsZSIsZGlzYWJsZU9wdGlvbkNlbnRlcmluZzoiZGlzYWJsZU9wdGlvbkNlbnRlcmluZyIsY29tcGFyZVdpdGg6ImNvbXBhcmVXaXRoIix2YWx1ZToidmFsdWUiLGFyaWFMYWJlbDpbImFyaWEtbGFiZWwiLCJhcmlhTGFiZWwiXSxhcmlhTGFiZWxsZWRieTpbImFyaWEtbGFiZWxsZWRieSIsImFyaWFMYWJlbGxlZGJ5Il0sZXJyb3JTdGF0ZU1hdGNoZXI6ImVycm9yU3RhdGVNYXRjaGVyIix0eXBlYWhlYWREZWJvdW5jZUludGVydmFsOiJ0eXBlYWhlYWREZWJvdW5jZUludGVydmFsIixzb3J0Q29tcGFyYXRvcjoic29ydENvbXBhcmF0b3IiLGlkOiJpZCJ9LG91dHB1dHM6e29wZW5lZENoYW5nZToib3BlbmVkQ2hhbmdlIixfb3BlbmVkU3RyZWFtOiJvcGVuZWQiLF9jbG9zZWRTdHJlYW06ImNsb3NlZCIsc2VsZWN0aW9uQ2hhbmdlOiJzZWxlY3Rpb25DaGFuZ2UiLHZhbHVlQ2hhbmdlOiJ2YWx1ZUNoYW5nZSJ9LGZlYXR1cmVzOltYZSxxdF19KSxufSkoKSxXdT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgWXlle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9wb3NpdGlvbnM9W3tvcmlnaW5YOiJzdGFydCIsb3JpZ2luWToiYm90dG9tIixvdmVybGF5WDoic3RhcnQiLG92ZXJsYXlZOiJ0b3AifSx7b3JpZ2luWDoic3RhcnQiLG9yaWdpblk6InRvcCIsb3ZlcmxheVg6InN0YXJ0IixvdmVybGF5WToiYm90dG9tIixwYW5lbENsYXNzOiJtYXQtbWRjLXNlbGVjdC1wYW5lbC1hYm92ZSJ9XSx0aGlzLl9oaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yPXRoaXMuX2RlZmF1bHRPcHRpb25zPy5oaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yPz8hMX1nZXQgc2hvdWxkTGFiZWxGbG9hdCgpe3JldHVybiB0aGlzLnBhbmVsT3Blbnx8IXRoaXMuZW1wdHl8fHRoaXMuZm9jdXNlZCYmISF0aGlzLnBsYWNlaG9sZGVyfW5nT25Jbml0KCl7c3VwZXIubmdPbkluaXQoKSx0aGlzLl92aWV3cG9ydFJ1bGVyLmNoYW5nZSgpLnBpcGUoaXQodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKT0+e3RoaXMucGFuZWxPcGVuJiYodGhpcy5fb3ZlcmxheVdpZHRoPXRoaXMuX2dldE92ZXJsYXlXaWR0aCgpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKSl9KX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9wYXJlbnRGb3JtRmllbGQmJih0aGlzLl9wcmVmZXJyZWRPdmVybGF5T3JpZ2luPXRoaXMuX3BhcmVudEZvcm1GaWVsZC5nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCkpfW9wZW4oKXt0aGlzLl9vdmVybGF5V2lkdGg9dGhpcy5fZ2V0T3ZlcmxheVdpZHRoKCksc3VwZXIub3BlbigpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX1jbG9zZSgpe3N1cGVyLmNsb3NlKCksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfV9zY3JvbGxPcHRpb25JbnRvVmlldyhlKXtsZXQgaT10aGlzLm9wdGlvbnMudG9BcnJheSgpW2VdO2lmKGkpe2xldCByPXRoaXMucGFuZWwubmF0aXZlRWxlbWVudCxvPXoxKGUsdGhpcy5vcHRpb25zLHRoaXMub3B0aW9uR3JvdXBzKSxhPWkuX2dldEhvc3RFbGVtZW50KCk7ci5zY3JvbGxUb3A9MD09PWUmJjE9PT1vPzA6VTEoYS5vZmZzZXRUb3AsYS5vZmZzZXRIZWlnaHQsci5zY3JvbGxUb3Asci5vZmZzZXRIZWlnaHQpfX1fcG9zaXRpb25pbmdTZXR0bGVkKCl7dGhpcy5fc2Nyb2xsT3B0aW9uSW50b1ZpZXcodGhpcy5fa2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXh8fDApfV9nZXRDaGFuZ2VFdmVudChlKXtyZXR1cm4gbmV3IGNsYXNze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5zb3VyY2U9dCx0aGlzLnZhbHVlPWV9fSh0aGlzLGUpfV9nZXRPdmVybGF5V2lkdGgoKXtyZXR1cm4odGhpcy5fcHJlZmVycmVkT3ZlcmxheU9yaWdpbiBpbnN0YW5jZW9mIE1kP3RoaXMuX3ByZWZlcnJlZE92ZXJsYXlPcmlnaW4uZWxlbWVudFJlZjp0aGlzLl9wcmVmZXJyZWRPdmVybGF5T3JpZ2lufHx0aGlzLl9lbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRofWdldCBoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yKCl7cmV0dXJuIHRoaXMuX2hpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3J9c2V0IGhpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3IoZSl7dGhpcy5faGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvcj12dChlKSx0aGlzLl9zeW5jUGFyZW50UHJvcGVydGllcygpfV9zeW5jUGFyZW50UHJvcGVydGllcygpe2lmKHRoaXMub3B0aW9ucylmb3IobGV0IGUgb2YgdGhpcy5vcHRpb25zKWUuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuKHR8fCh0PVhuKG4pKSkoaXx8bil9fSgpLG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sibWF0LXNlbGVjdCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihlLGkscil7aWYoMSZlJiYoQm4ocixxeWUsNSksQm4ocixqYSw1KSxCbihyLGp2LDUpKSwyJmUpe2xldCBvO2JlKG89dmUoKSkmJihpLmN1c3RvbVRyaWdnZXI9by5maXJzdCksYmUobz12ZSgpKSYmKGkub3B0aW9ucz1vKSxiZShvPXZlKCkpJiYoaS5vcHRpb25Hcm91cHM9byl9fSxob3N0QXR0cnM6WyJyb2xlIiwiY29tYm9ib3giLCJhcmlhLWF1dG9jb21wbGV0ZSIsIm5vbmUiLCJhcmlhLWhhc3BvcHVwIiwibGlzdGJveCIsMSwibWF0LW1kYy1zZWxlY3QiXSxob3N0VmFyczoxOSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsxJmUmJkEoImtleWRvd24iLGZ1bmN0aW9uKG8pe3JldHVybiBpLl9oYW5kbGVLZXlkb3duKG8pfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBpLl9vbkZvY3VzKCl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gaS5fb25CbHVyKCl9KSwyJmUmJihCZSgiaWQiLGkuaWQpKCJ0YWJpbmRleCIsaS50YWJJbmRleCkoImFyaWEtY29udHJvbHMiLGkucGFuZWxPcGVuP2kuaWQrIi1wYW5lbCI6bnVsbCkoImFyaWEtZXhwYW5kZWQiLGkucGFuZWxPcGVuKSgiYXJpYS1sYWJlbCIsaS5hcmlhTGFiZWx8fG51bGwpKCJhcmlhLXJlcXVpcmVkIixpLnJlcXVpcmVkLnRvU3RyaW5nKCkpKCJhcmlhLWRpc2FibGVkIixpLmRpc2FibGVkLnRvU3RyaW5nKCkpKCJhcmlhLWludmFsaWQiLGkuZXJyb3JTdGF0ZSkoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIsaS5fZ2V0QXJpYUFjdGl2ZURlc2NlbmRhbnQoKSksbnQoIm1hdC1tZGMtc2VsZWN0LWRpc2FibGVkIixpLmRpc2FibGVkKSgibWF0LW1kYy1zZWxlY3QtaW52YWxpZCIsaS5lcnJvclN0YXRlKSgibWF0LW1kYy1zZWxlY3QtcmVxdWlyZWQiLGkucmVxdWlyZWQpKCJtYXQtbWRjLXNlbGVjdC1lbXB0eSIsaS5lbXB0eSkoIm1hdC1tZGMtc2VsZWN0LW11bHRpcGxlIixpLm11bHRpcGxlKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIix0YWJJbmRleDoidGFiSW5kZXgiLGhpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3I6ImhpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3IifSxleHBvcnRBczpbIm1hdFNlbGVjdCJdLGZlYXR1cmVzOltWdChbe3Byb3ZpZGU6WXYsdXNlRXhpc3Rpbmc6bn0se3Byb3ZpZGU6VXYsdXNlRXhpc3Rpbmc6bn1dKSxYZV0sbmdDb250ZW50U2VsZWN0b3JzOnp5ZSxkZWNsczoxMSx2YXJzOjExLGNvbnN0czpbWyJjZGstb3ZlcmxheS1vcmlnaW4iLCIiLDEsIm1hdC1tZGMtc2VsZWN0LXRyaWdnZXIiLDMsImNsaWNrIl0sWyJmYWxsYmFja092ZXJsYXlPcmlnaW4iLCJjZGtPdmVybGF5T3JpZ2luIiwidHJpZ2dlciIsIiJdLFsxLCJtYXQtbWRjLXNlbGVjdC12YWx1ZSIsMywibmdTd2l0Y2giXSxbImNsYXNzIiwibWF0LW1kYy1zZWxlY3QtcGxhY2Vob2xkZXIgbWF0LW1kYy1zZWxlY3QtbWluLWxpbmUiLDQsIm5nU3dpdGNoQ2FzZSJdLFsiY2xhc3MiLCJtYXQtbWRjLXNlbGVjdC12YWx1ZS10ZXh0IiwzLCJuZ1N3aXRjaCIsNCwibmdTd2l0Y2hDYXNlIl0sWzEsIm1hdC1tZGMtc2VsZWN0LWFycm93LXdyYXBwZXIiXSxbMSwibWF0LW1kYy1zZWxlY3QtYXJyb3ciXSxbInZpZXdCb3giLCIwIDAgMjQgMjQiLCJ3aWR0aCIsIjI0cHgiLCJoZWlnaHQiLCIyNHB4IiwiZm9jdXNhYmxlIiwiZmFsc2UiXSxbImQiLCJNNyAxMGw1IDUgNS01eiJdLFsiY2RrLWNvbm5lY3RlZC1vdmVybGF5IiwiIiwiY2RrQ29ubmVjdGVkT3ZlcmxheUxvY2tQb3NpdGlvbiIsIiIsImNka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcCIsIiIsImNka0Nvbm5lY3RlZE92ZXJsYXlCYWNrZHJvcENsYXNzIiwiY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AiLDMsImNka0Nvbm5lY3RlZE92ZXJsYXlQYW5lbENsYXNzIiwiY2RrQ29ubmVjdGVkT3ZlcmxheVNjcm9sbFN0cmF0ZWd5IiwiY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbiIsImNka0Nvbm5lY3RlZE92ZXJsYXlPcGVuIiwiY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9ucyIsImNka0Nvbm5lY3RlZE92ZXJsYXlXaWR0aCIsImJhY2tkcm9wQ2xpY2siLCJhdHRhY2giLCJkZXRhY2giXSxbMSwibWF0LW1kYy1zZWxlY3QtcGxhY2Vob2xkZXIiLCJtYXQtbWRjLXNlbGVjdC1taW4tbGluZSJdLFsxLCJtYXQtbWRjLXNlbGVjdC12YWx1ZS10ZXh0IiwzLCJuZ1N3aXRjaCJdLFsiY2xhc3MiLCJtYXQtbWRjLXNlbGVjdC1taW4tbGluZSIsNCwibmdTd2l0Y2hEZWZhdWx0Il0sWzQsIm5nU3dpdGNoQ2FzZSJdLFsxLCJtYXQtbWRjLXNlbGVjdC1taW4tbGluZSJdLFsicm9sZSIsImxpc3Rib3giLCJ0YWJpbmRleCIsIi0xIiwzLCJuZ0NsYXNzIiwia2V5ZG93biJdLFsicGFuZWwiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJihmbihIeWUpLGYoMCwiZGl2IiwwLDEpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpLnRvZ2dsZSgpfSksZigzLCJkaXYiLDIpLFMoNCxGeWUsMiwxLCJzcGFuIiwzKSxTKDUsQnllLDMsMiwic3BhbiIsNCksZygpLGYoNiwiZGl2Iiw1KSg3LCJkaXYiLDYpLHFuKCksZig4LCJzdmciLDcpLGsoOSwicGF0aCIsOCksZygpKCkoKSgpLFMoMTAsVnllLDMsOSwibmctdGVtcGxhdGUiLDkpLEEoImJhY2tkcm9wQ2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGkuY2xvc2UoKX0pKCJhdHRhY2giLGZ1bmN0aW9uKCl7cmV0dXJuIGkuX29uQXR0YWNoZWQoKX0pKCJkZXRhY2giLGZ1bmN0aW9uKCl7cmV0dXJuIGkuY2xvc2UoKX0pKSwyJmUpe2xldCByPXN0KDEpO0JlKCJhcmlhLW93bnMiLGkucGFuZWxPcGVuP2kuaWQrIi1wYW5lbCI6bnVsbCksdigzKSxiKCJuZ1N3aXRjaCIsaS5lbXB0eSksQmUoImlkIixpLl92YWx1ZUlkKSx2KDEpLGIoIm5nU3dpdGNoQ2FzZSIsITApLHYoMSksYigibmdTd2l0Y2hDYXNlIiwhMSksdig1KSxiKCJjZGtDb25uZWN0ZWRPdmVybGF5UGFuZWxDbGFzcyIsaS5fb3ZlcmxheVBhbmVsQ2xhc3MpKCJjZGtDb25uZWN0ZWRPdmVybGF5U2Nyb2xsU3RyYXRlZ3kiLGkuX3Njcm9sbFN0cmF0ZWd5KSgiY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbiIsaS5fcHJlZmVycmVkT3ZlcmxheU9yaWdpbnx8cikoImNka0Nvbm5lY3RlZE92ZXJsYXlPcGVuIixpLnBhbmVsT3BlbikoImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnMiLGkuX3Bvc2l0aW9ucykoImNka0Nvbm5lY3RlZE92ZXJsYXlXaWR0aCIsaS5fb3ZlcmxheVdpZHRoKX19LGRlcGVuZGVuY2llczpbd24sbXIsa3IsZHUsVnUsTWRdLHN0eWxlczpbJy5tZGMtbWVudS1zdXJmYWNle2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWF4LXdpZHRoOmNhbGMoMTAwdncgLSAzMnB4KTttYXgtd2lkdGg6dmFyKC0tbWRjLW1lbnUtbWF4LXdpZHRoLCBjYWxjKDEwMHZ3IC0gMzJweCkpO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDMycHgpO21heC1oZWlnaHQ6dmFyKC0tbWRjLW1lbnUtbWF4LWhlaWdodCwgY2FsYygxMDB2aCAtIDMycHgpKTttYXJnaW46MDtwYWRkaW5nOjA7dHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybS1vcmlnaW46dG9wIGxlZnQ7b3BhY2l0eTowO292ZXJmbG93OmF1dG87d2lsbC1jaGFuZ2U6dHJhbnNmb3JtLG9wYWNpdHk7ei1pbmRleDo4O2JvcmRlci1yYWRpdXM6NHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tbWRjLXNoYXBlLW1lZGl1bSwgNHB4KTt0cmFuc2Zvcm0tb3JpZ2luLWxlZnQ6dG9wIGxlZnQ7dHJhbnNmb3JtLW9yaWdpbi1yaWdodDp0b3AgcmlnaHR9Lm1kYy1tZW51LXN1cmZhY2U6Zm9jdXN7b3V0bGluZTpub25lfS5tZGMtbWVudS1zdXJmYWNlLS1hbmltYXRpbmctb3BlbntkaXNwbGF5OmlubGluZS1ibG9jazt0cmFuc2Zvcm06c2NhbGUoMC44KTtvcGFjaXR5OjB9Lm1kYy1tZW51LXN1cmZhY2UtLW9wZW57ZGlzcGxheTppbmxpbmUtYmxvY2s7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX0ubWRjLW1lbnUtc3VyZmFjZS0tYW5pbWF0aW5nLWNsb3NlZHtkaXNwbGF5OmlubGluZS1ibG9jaztvcGFjaXR5OjB9W2Rpcj1ydGxdIC5tZGMtbWVudS1zdXJmYWNlLC5tZGMtbWVudS1zdXJmYWNlW2Rpcj1ydGxde3RyYW5zZm9ybS1vcmlnaW4tbGVmdDp0b3AgcmlnaHQ7dHJhbnNmb3JtLW9yaWdpbi1yaWdodDp0b3AgbGVmdH0ubWRjLW1lbnUtc3VyZmFjZS0tYW5jaG9ye3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OnZpc2libGV9Lm1kYy1tZW51LXN1cmZhY2UtLWZpeGVke3Bvc2l0aW9uOmZpeGVkfS5tZGMtbWVudS1zdXJmYWNlLS1mdWxsd2lkdGh7d2lkdGg6MTAwJX0ubWF0LW1kYy1zZWxlY3R7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTAwJTtvdXRsaW5lOm5vbmV9Lm1hdC1tZGMtc2VsZWN0LXRyaWdnZXJ7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246cmVsYXRpdmU7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCV9Lm1hdC1tZGMtc2VsZWN0LWRpc2FibGVkIC5tYXQtbWRjLXNlbGVjdC10cmlnZ2Vyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpkZWZhdWx0fS5tYXQtbWRjLXNlbGVjdC12YWx1ZXt3aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0ubWF0LW1kYy1zZWxlY3QtdmFsdWUtdGV4dHt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm1hdC1tZGMtc2VsZWN0LWFycm93LXdyYXBwZXJ7aGVpZ2h0OjI0cHg7ZmxleC1zaHJpbms6MDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtbWRjLXNlbGVjdC1hcnJvdy13cmFwcGVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC04cHgpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1kYy10ZXh0LWZpZWxkLS1uby1sYWJlbCAubWF0LW1kYy1zZWxlY3QtYXJyb3ctd3JhcHBlcnt0cmFuc2Zvcm06bm9uZX0ubWF0LW1kYy1zZWxlY3QtYXJyb3d7d2lkdGg6MTBweDtoZWlnaHQ6NXB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLXNlbGVjdC1hcnJvdyBzdmd7ZmlsbDpjdXJyZW50Q29sb3I7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZGMtc2VsZWN0LWFycm93IHN2Z3tmaWxsOkNhbnZhc1RleHR9Lm1hdC1tZGMtc2VsZWN0LWRpc2FibGVkIC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZGMtc2VsZWN0LWFycm93IHN2Z3tmaWxsOkdyYXlUZXh0fS5tZGMtbWVudS1zdXJmYWNlLm1hdC1tZGMtc2VsZWN0LXBhbmVse3dpZHRoOjEwMCU7bWF4LWhlaWdodDoyNzVweDtwb3NpdGlvbjpzdGF0aWM7b3V0bGluZTowO21hcmdpbjowO3BhZGRpbmc6OHB4IDA7bGlzdC1zdHlsZS10eXBlOm5vbmV9Lm1kYy1tZW51LXN1cmZhY2UubWF0LW1kYy1zZWxlY3QtcGFuZWw6Zm9jdXN7b3V0bGluZTpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1kYy1tZW51LXN1cmZhY2UubWF0LW1kYy1zZWxlY3QtcGFuZWx7b3V0bGluZTpzb2xpZCAxcHh9LmNkay1vdmVybGF5LXBhbmU6bm90KC5tYXQtbWRjLXNlbGVjdC1wYW5lbC1hYm92ZSkgLm1kYy1tZW51LXN1cmZhY2UubWF0LW1kYy1zZWxlY3QtcGFuZWx7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7dHJhbnNmb3JtLW9yaWdpbjp0b3AgY2VudGVyfS5tYXQtbWRjLXNlbGVjdC1wYW5lbC1hYm92ZSAubWRjLW1lbnUtc3VyZmFjZS5tYXQtbWRjLXNlbGVjdC1wYW5lbHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDt0cmFuc2Zvcm0tb3JpZ2luOmJvdHRvbSBjZW50ZXJ9Lm1hdC1tZGMtc2VsZWN0LXBsYWNlaG9sZGVye3RyYW5zaXRpb246Y29sb3IgNDAwbXMgMTMzLjMzMzMzMzMzMzNtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1tZGMtc2VsZWN0LXBsYWNlaG9sZGVye3RyYW5zaXRpb246bm9uZX0ubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LW1kYy1zZWxlY3QtcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSgwLDAsMCwwKTstd2Via2l0LXRleHQtZmlsbC1jb2xvcjpyZ2JhKDAsMCwwLDApO3RyYW5zaXRpb246bm9uZTtkaXNwbGF5OmJsb2NrfS5tYXQtbWRjLWZvcm0tZmllbGQtdHlwZS1tYXQtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LW1kYy1mbG9hdGluZy1sYWJlbHttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMThweCl9Lm1hdC1tZGMtZm9ybS1maWVsZC10eXBlLW1hdC1zZWxlY3QubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3Zle21heC13aWR0aDpjYWxjKDEwMCUgLyAwLjc1IC0gMjRweCl9Lm1hdC1tZGMtZm9ybS1maWVsZC10eXBlLW1hdC1zZWxlY3QubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaHttYXgtd2lkdGg6Y2FsYygxMDAlIC0gNjBweCl9Lm1hdC1tZGMtZm9ybS1maWVsZC10eXBlLW1hdC1zZWxlY3QubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tZGMtdGV4dC1maWVsZC0tbGFiZWwtZmxvYXRpbmcgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoe21heC13aWR0aDpjYWxjKDEwMCUgLSAyNHB4KX0ubWF0LW1kYy1zZWxlY3QtbWluLWxpbmU6ZW1wdHk6OmJlZm9yZXtjb250ZW50OiIgIjt3aGl0ZS1zcGFjZTpwcmU7d2lkdGg6MXB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Zpc2liaWxpdHk6aGlkZGVufSddLGVuY2Fwc3VsYXRpb246MixkYXRhOnthbmltYXRpb246W1V5ZS50cmFuc2Zvcm1QYW5lbF19LGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksWGE9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe3Byb3ZpZGVyczpbV3llXSxpbXBvcnRzOltEZSxEbyxtZyxkbixJYyxRdixtZyxkbl19KSxufSkoKTtmdW5jdGlvbiBReWUobix0KXsxJm4mJihHdCgwKSxmKDEsImRpdiIsMSksVCgyLCIgVGhlcmUgaXMgYSBkaWZmZXJlbmNlIGJldHdlZW4gRGVmYXVsdCAtIChFbmFibGVkL0Rpc2FibGVkKSBhbmQgKEVuYWJsZWQvRGlzYWJsZWQpICIpLGcoKSxmKDMsImRpdiIsMSksVCg0LCIgT25seSBmbGFncyB3aXRoIG5vbiBkZWZhdWx0IHZhbHVlcyBhcmUgc2VudCB0byB0aGUgYmFja2VuZC4gIiksZygpLFd0KCkpfWZ1bmN0aW9uIFp5ZShuLHQpe2lmKDEmbiYmKEd0KDApLGYoMSwiZGl2IiwxKSxUKDIpLGcoKSxXdCgpKSwyJm4pe2xldCBlPXcoKTt2KDIpLFZlKCcgRmVhdHVyZSBGbGFncyBhcmUgZmlsdGVyZWQgdG8gb25seSBzaG93IGZlYXR1cmVzIGNvbnRhaW5pbmcgIicsZS5zaG93RmxhZ3NGaWx0ZXIsJyIgJyl9fWZ1bmN0aW9uIEt5ZShuLHQpezEmbiYmKGYoMCwic3VwIiwxMSksVCgxLCIxIiksZygpKX1mdW5jdGlvbiBKeWUobix0KXsxJm4mJmhpKDApfWZ1bmN0aW9uICR5ZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsIm1hdC1zZWxlY3QiLDEyKSxBKCJzZWxlY3Rpb25DaGFuZ2UiLGZ1bmN0aW9uKHIpe25lKGUpO2xldCBvPXcoKS4kaW1wbGljaXQ7cmV0dXJuIGllKHcoKS5mbGFnQ2hhbmdlZC5lbWl0KHtmbGFnOm8uZmxhZyxzdGF0dXM6ci52YWx1ZX0pKX0pLGYoMSwibWF0LW9wdGlvbiIsMTMpLFQoMiksZygpLGYoMywibWF0LW9wdGlvbiIsMTQpLFQoNCwiRW5hYmxlZCIpLGcoKSxmKDUsIm1hdC1vcHRpb24iLDE1KSxUKDYsIkRpc2FibGVkIiksZygpKCl9aWYoMiZuKXtsZXQgZT13KCkuJGltcGxpY2l0LGk9dygpO2IoInZhbHVlIixlLnN0YXR1cyksdigyKSxWZSgiIERlZmF1bHQgIixpLmZvcm1hdEZsYWdWYWx1ZShlLmRlZmF1bHRWYWx1ZSksIiAiKX19ZnVuY3Rpb24gZXhlKG4sdCl7aWYoMSZuJiYoZigwLCJ0ZCIpLFQoMSksZygpKSwyJm4pe2xldCBlPXcoKS4kaW1wbGljaXQsaT13KCk7digxKSxWZSgiVW5zdXBwb3J0ZWQgQnkgVUkgIixpLmZvcm1hdEZsYWdWYWx1ZShlLnZhbHVlKSwiIil9fWZ1bmN0aW9uIHR4ZShuLHQpe2lmKDEmbiYmKEd0KDApLGYoMSwidHIiKSgyLCJ0ZCIpKDMsImRpdiIpLFQoNCksUyg1LEt5ZSwyLDAsInN1cCIsNyksZygpKCksUyg2LEp5ZSwxLDAsIm5nLWNvbnRhaW5lciIsOCksUyg3LCR5ZSw3LDIsIm5nLXRlbXBsYXRlIixudWxsLDksanQpLFMoOSxleGUsMiwxLCJuZy10ZW1wbGF0ZSIsbnVsbCwxMCxqdCksZygpLFd0KCkpLDImbil7bGV0IGU9dC4kaW1wbGljaXQsaT1zdCg4KSxyPXN0KDEwKSxvPXcoKTt2KDQpLFZlKCIgIixlLmZsYWcsIiAiKSx2KDEpLGIoIm5nSWYiLGUuc2VuZFRvU2VydmVyV2hlbk92ZXJyaWRkZW4pLHYoMSksYigibmdJZiIsby5pc0VkaXRhYmxlKGUpKSgibmdJZlRoZW4iLGkpKCJuZ0lmRWxzZSIscil9fWZ1bmN0aW9uIG54ZShuLHQpezEmbiYmKGYoMCwiZGl2IiwxMSksVCgxLCIgMS4gU2VudCB0byBzZXJ2ZXIgd2hlbiBvdmVycmlkZGVuICIpLGcoKSl9dmFyIGhFLEFxPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLmhhc0ZsYWdzU2VudFRvU2VydmVyPSExLHRoaXMuZmxhZ0NoYW5nZWQ9bmV3IEYsdGhpcy5hbGxGbGFnc1Jlc2V0PW5ldyBGfXNlcmlhbGl6ZUZsYWdWYWx1ZShlKXtyZXR1cm4hMD09PWU/IkVuYWJsZWQiOiExPT09ZT8iRGlzYWJsZWQiOm51bGw9PWU/Im51bGwiOkFycmF5LmlzQXJyYXkoZSk/SlNPTi5zdHJpbmdpZnkoZSk6ZS50b1N0cmluZygpfWlzRWRpdGFibGUoZSl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgZS5kZWZhdWx0VmFsdWV9Zm9ybWF0RmxhZ1ZhbHVlKGUpe2xldCBpPXRoaXMuc2VyaWFsaXplRmxhZ1ZhbHVlKGUpO3JldHVybiAwPT09aS5sZW5ndGg/IiI6YC0gJHtpfWB9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImZlYXR1cmUtZmxhZy1kaWFsb2ctY29tcG9uZW50Il1dLGlucHV0czp7ZmVhdHVyZUZsYWdTdGF0dXNlczoiZmVhdHVyZUZsYWdTdGF0dXNlcyIsaGFzRmxhZ3NTZW50VG9TZXJ2ZXI6Imhhc0ZsYWdzU2VudFRvU2VydmVyIixzaG93RmxhZ3NGaWx0ZXI6InNob3dGbGFnc0ZpbHRlciJ9LG91dHB1dHM6e2ZsYWdDaGFuZ2VkOiJmbGFnQ2hhbmdlZCIsYWxsRmxhZ3NSZXNldDoiYWxsRmxhZ3NSZXNldCJ9LGRlY2xzOjEyLHZhcnM6NCxjb25zdHM6W1sxLCJzY3JvbGxpbmctcGFnZSJdLFsxLCJtZXNzYWdlIl0sWzEsIndhcm5pbmciXSxbNCwibmdJZiJdLFsxLCJmZWF0dXJlLWZsYWctdGFibGUiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJtYXQtYnV0dG9uIiwiIiwzLCJjbGljayJdLFsiY2xhc3MiLCJub3RlLTEiLDQsIm5nSWYiXSxbNCwibmdJZiIsIm5nSWZUaGVuIiwibmdJZkVsc2UiXSxbInNlbGVjdEJsb2NrIiwiIl0sWyJ1bnN1cHBvcnRlZEJsb2NrIiwiIl0sWzEsIm5vdGUtMSJdLFszLCJ2YWx1ZSIsInNlbGVjdGlvbkNoYW5nZSJdLFsidmFsdWUiLCJkZWZhdWx0Il0sWyJ2YWx1ZSIsImVuYWJsZWQiXSxbInZhbHVlIiwiZGlzYWJsZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImRpdiIsMCkoMSwiZGl2IiwxKSgyLCJoMiIsMiksVCgzLCJXQVJOSU5HOiBFWFBFUklNRU5UQUwgRkVBVFVSRVMgQUhFQUQhIiksZygpLFQoNCwiIEJ5IGVuYWJsaW5nIHRoZXNlIGZlYXR1cmVzLCB5b3UgY291bGQgcHV0IHRoZSBhcHBsaWNhdGlvbiBpbiBhbiB1bnVzYWJsZSBzdGF0ZSBvciBleHBvc2UgeW91cnNlbGYgdG8gdW50ZXN0ZWQgZmVhdHVyZXMgb3IgcG90ZW50aWFsIGJ1Z3MuICIpLGcoKSxTKDUsUXllLDUsMCwibmctY29udGFpbmVyIiwzKSxTKDYsWnllLDMsMSwibmctY29udGFpbmVyIiwzKSxmKDcsInRhYmxlIiw0KSxTKDgsdHhlLDExLDUsIm5nLWNvbnRhaW5lciIsNSksZygpLGYoOSwiYnV0dG9uIiw2KSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaS5hbGxGbGFnc1Jlc2V0LmVtaXQoKX0pLFQoMTAsIlJlc2V0IEFsbCIpLGcoKSxTKDExLG54ZSwyLDAsImRpdiIsNyksZygpKSwyJmUmJih2KDUpLGIoIm5nSWYiLGkuaGFzRmxhZ3NTZW50VG9TZXJ2ZXIpLHYoMSksYigibmdJZiIsaS5zaG93RmxhZ3NGaWx0ZXIpLHYoMiksYigibmdGb3JPZiIsaS5mZWF0dXJlRmxhZ1N0YXR1c2VzKSx2KDMpLGIoIm5nSWYiLGkuaGFzRmxhZ3NTZW50VG9TZXJ2ZXIpKX0sZGVwZW5kZW5jaWVzOltubixOZSxraSxXdSxqYV0sc3R5bGVzOlsiLm1lc3NhZ2VbX25nY29udGVudC0lQ09NUCVde21hcmdpbi1ib3R0b206MTZweH0ubWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV0gICAud2FybmluZ1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2Y0NDMzNn0ubm90ZS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZmY5ODAwfS5zY3JvbGxpbmctcGFnZVtfbmdjb250ZW50LSVDT01QJV17bWF4LWhlaWdodDo5MHZofS5mZWF0dXJlLWZsYWctdGFibGVbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9Il19KSxufSkoKSxScT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmU9ZSx0aGlzLnNob3dGbGFnc0ZpbHRlciQ9dGhpcy5zdG9yZS5zZWxlY3Qoc3YpLnBpcGUocShpPT5pLnNob3dGbGFncz8udG9Mb3dlckNhc2UoKSkpLHRoaXMuaGFzRmxhZ3NTZW50VG9TZXJ2ZXIkPXRoaXMuc3RvcmUuc2VsZWN0KGZoKS5waXBlKHEoaT0+T2JqZWN0LnZhbHVlcyhpKS5zb21lKHI9PnIuc2VuZFRvU2VydmVyV2hlbk92ZXJyaWRkZW4pKSksdGhpcy5mZWF0dXJlRmxhZ3MkPXRoaXMuc3RvcmUuc2VsZWN0KHN2KS5waXBlKEl0KHRoaXMuc3RvcmUuc2VsZWN0KEM2KSx0aGlzLnN0b3JlLnNlbGVjdChmaCksdGhpcy5zaG93RmxhZ3NGaWx0ZXIkKSxxKChbaSxyLG8sYV0pPT5PYmplY3QuZW50cmllcyhyKS5maWx0ZXIoKFtzXSk9PiFhfHxzLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYSkpLm1hcCgoW3MsbF0pPT57bGV0IGM9ZnVuY3Rpb24obix0KXtyZXR1cm4gdm9pZCAwPT09dFtuXT8iZGVmYXVsdCI6dFtuXT8iZW5hYmxlZCI6ImRpc2FibGVkIn0ocyxpKTtyZXR1cm57ZmxhZzpzLGRlZmF1bHRWYWx1ZTpsLHN0YXR1czpjLHNlbmRUb1NlcnZlcldoZW5PdmVycmlkZGVuOm9bc10uc2VuZFRvU2VydmVyV2hlbk92ZXJyaWRkZW59fSkpKX1vbkZsYWdDaGFuZ2VkKHtmbGFnOmUsc3RhdHVzOml9KXtzd2l0Y2goaSl7Y2FzZSJkZWZhdWx0Ijp0aGlzLnN0b3JlLmRpc3BhdGNoKHh1KHtmbGFnczpbZV19KSk7YnJlYWs7Y2FzZSJlbmFibGVkIjp0aGlzLnN0b3JlLmRpc3BhdGNoKHloKHtmbGFnczp7W2VdOiEwfX0pKTticmVhaztjYXNlImRpc2FibGVkIjp0aGlzLnN0b3JlLmRpc3BhdGNoKHloKHtmbGFnczp7W2VdOiExfX0pKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiRmxhZyBjaGFuZ2VkIHRvIGludmFsaWQgc3RhdHVzIil9fW9uQWxsRmxhZ3NSZXNldCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goUWYoKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJmZWF0dXJlLWZsYWctZGlhbG9nIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsImZlYXR1cmVGbGFnU3RhdHVzZXMiLCJoYXNGbGFnc1NlbnRUb1NlcnZlciIsInNob3dGbGFnc0ZpbHRlciIsImZsYWdDaGFuZ2VkIiwiYWxsRmxhZ3NSZXNldCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwiZmVhdHVyZS1mbGFnLWRpYWxvZy1jb21wb25lbnQiLDApLEEoImZsYWdDaGFuZ2VkIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkZsYWdDaGFuZ2VkKG8pfSkoImFsbEZsYWdzUmVzZXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25BbGxGbGFnc1Jlc2V0KCl9KSxVKDEsImFzeW5jIiksVSgyLCJhc3luYyIpLFUoMywiYXN5bmMiKSxnKCkpLDImZSYmYigiZmVhdHVyZUZsYWdTdGF0dXNlcyIsRygxLDMsaS5mZWF0dXJlRmxhZ3MkKSkoImhhc0ZsYWdzU2VudFRvU2VydmVyIixHKDIsNSxpLmhhc0ZsYWdzU2VudFRvU2VydmVyJCkpKCJzaG93RmxhZ3NGaWx0ZXIiLEcoMyw3LGkuc2hvd0ZsYWdzRmlsdGVyJCkpfSxkZXBlbmRlbmNpZXM6W0FxLGN0XSxlbmNhcHN1bGF0aW9uOjJ9KSxufSkoKSxQcT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSl7dGhpcy5zdG9yZT1lLHRoaXMuZGlhbG9nPWksdGhpcy5mZWF0dXJlRmxhZ0RpYWxvZ1R5cGU9UnEsdGhpcy5zaG93RmVhdHVyZUZsYWdzJD10aGlzLnN0b3JlLnNlbGVjdChFNiksdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBFZX1uZ09uSW5pdCgpe3RoaXMuc2hvd0ZlYXR1cmVGbGFncyQucGlwZShpdCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoZT0+e2lmKGUpcmV0dXJuIHRoaXMuZmVhdHVyZUZsYWdzRGlhbG9nPXRoaXMuZGlhbG9nLm9wZW4odGhpcy5mZWF0dXJlRmxhZ0RpYWxvZ1R5cGUpLHZvaWQgdGhpcy5mZWF0dXJlRmxhZ3NEaWFsb2cuYWZ0ZXJDbG9zZWQoKS5waXBlKGl0KHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goeHUoe2ZsYWdzOlsic2hvd0ZsYWdzIl19KSksc2V0VGltZW91dCgoKT0+e3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0sMSl9KX0pfW5nT25EZXN0cm95KCl7dGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKSx0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSksQyh5cykpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImZlYXR1cmUtZmxhZy1tb2RhbC10cmlnZ2VyIl1dLGRlY2xzOjAsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7fSxlbmNhcHN1bGF0aW9uOjJ9KSxufSkoKSxzeGU9WyJyb3V0ZUNvbnRhaW5lciJdLGtxPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9ZX1uZ09uQ2hhbmdlcyhlKXtsZXQgaT1lLmFjdGl2ZU5nQ29tcG9uZW50O2lmKGkmJih0aGlzLnJvdXRlQ29udGFpbmVyLmNsZWFyKCksaS5jdXJyZW50VmFsdWUpKXtsZXQgcj10aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShpLmN1cnJlbnRWYWx1ZSk7dGhpcy5yb3V0ZUNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQocil9fX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKGhvKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sicm91dGVyLW91dGxldC1jb21wb25lbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiZVZShzeGUsNyxlaSksMiZlKXtsZXQgcjtiZShyPXZlKCkpJiYoaS5yb3V0ZUNvbnRhaW5lcj1yLmZpcnN0KX19LGlucHV0czp7YWN0aXZlTmdDb21wb25lbnQ6ImFjdGl2ZU5nQ29tcG9uZW50In0sZmVhdHVyZXM6W3F0XSxkZWNsczoyLHZhcnM6MCxjb25zdHM6W1sicm91dGVDb250YWluZXIiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJmhpKDAsbnVsbCwwKX0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksT3E9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkpe3RoaXMuc3RvcmU9ZSx0aGlzLnJlZ2lzdHJ5PWksdGhpcy5hY3RpdmVOZ0NvbXBvbmVudCQ9SW4oW3RoaXMuc3RvcmUuc2VsZWN0KEhvKSx0aGlzLnN0b3JlLnNlbGVjdChROCldKS5waXBlKHEoKFtyLG9dKT0+ciYmKG51bGw9PT1vfHxWbyhyLG8pKT90aGlzLnJlZ2lzdHJ5LmdldE5nQ29tcG9uZW50QnlSb3V0ZUtpbmQoci5yb3V0ZUtpbmQpOm51bGwpKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSksQyhSbCkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInJvdXRlci1vdXRsZXQiXV0sZGVjbHM6Mix2YXJzOjMsY29uc3RzOltbMywiYWN0aXZlTmdDb21wb25lbnQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihrKDAsInJvdXRlci1vdXRsZXQtY29tcG9uZW50IiwwKSxVKDEsImFzeW5jIikpLDImZSYmYigiYWN0aXZlTmdDb21wb25lbnQiLEcoMSwxLGkuYWN0aXZlTmdDb21wb25lbnQkKSl9LGRlcGVuZGVuY2llczpba3EsY3RdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLEZxPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7ZS5zZWxlY3QoUGwpLnN1YnNjcmliZShpPT57ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJkYXJrLW1vZGUiLGkpfSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJkYXJrLW1vZGUtc3VwcG9ydGVyIl1dLGRlY2xzOjAsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7fSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLFNnPSgoKT0+KGZ1bmN0aW9uKG4pe25bbi5BQ1RJVkVfUExVR0lOPTBdPSJBQ1RJVkVfUExVR0lOIn0oU2d8fChTZz17fSkpLFNnKSkoKSxOcT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuZGVlcExpbmtlcj1lLHRoaXMub25WYWx1ZUNoYW5nZT1uZXcgRix0aGlzLm5nVW5zdWJzY3JpYmU9bmV3IEVlLHRoaXMub25IYXNoQ2hhbmdlPUVpKHdpbmRvdywicG9wc3RhdGUiLHtwYXNzaXZlOiEwfSkucGlwZShpdCh0aGlzLm5nVW5zdWJzY3JpYmUpKX1uZ09uSW5pdCgpe3RoaXMub25IYXNoQ2hhbmdlLnN1YnNjcmliZSgoKT0+e2xldCBlPXRoaXMuZGVlcExpbmtlci5nZXRQbHVnaW5JZCgpO2UhPT10aGlzLmFjdGl2ZVBsdWdpbklkJiZ0aGlzLm9uVmFsdWVDaGFuZ2UuZW1pdCh7cHJvcDpTZy5BQ1RJVkVfUExVR0lOLHZhbHVlOmV9KX0pfW5nT25EZXN0cm95KCl7dGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKSx0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKX1uZ09uQ2hhbmdlcyhlKXtpZihlLmFjdGl2ZVBsdWdpbklkKXtsZXQgaT1lLmFjdGl2ZVBsdWdpbklkO3RoaXMuZGVlcExpbmtlci5zZXRQbHVnaW5JZChudWxsPT09aS5jdXJyZW50VmFsdWU/IiI6aS5jdXJyZW50VmFsdWUse2RlZmF1bHRWYWx1ZToiIix1c2VMb2NhdGlvblJlcGxhY2U6bnVsbD09PWkucHJldmlvdXNWYWx1ZXx8aS5maXJzdENoYW5nZX0pfX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhndSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImhhc2gtc3RvcmFnZS1jb21wb25lbnQiXV0saW5wdXRzOnthY3RpdmVQbHVnaW5JZDoiYWN0aXZlUGx1Z2luSWQifSxvdXRwdXRzOntvblZhbHVlQ2hhbmdlOiJvblZhbHVlQ2hhbmdlIn0sZmVhdHVyZXM6W3F0XSxkZWNsczowLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpe30sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksTHE9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLnN0b3JlPWUsdGhpcy5hY3RpdmVQbHVnaW5JZCQ9dGhpcy5zdG9yZS5waXBlKHVuKFpvKSl9b25WYWx1ZUNoYW5nZWQoZSl7ZS5wcm9wPT09U2cuQUNUSVZFX1BMVUdJTiYmdGhpcy5zdG9yZS5kaXNwYXRjaChoUyh7cGx1Z2luOmUudmFsdWV9KSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJoYXNoLXN0b3JhZ2UiXV0sZGVjbHM6Mix2YXJzOjMsY29uc3RzOltbMywiYWN0aXZlUGx1Z2luSWQiLCJvblZhbHVlQ2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJoYXNoLXN0b3JhZ2UtY29tcG9uZW50IiwwKSxBKCJvblZhbHVlQ2hhbmdlIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vblZhbHVlQ2hhbmdlZChvKX0pLFUoMSwiYXN5bmMiKSxnKCkpLDImZSYmYigiYWN0aXZlUGx1Z2luSWQiLEcoMSwxLGkuYWN0aXZlUGx1Z2luSWQkKSl9LGRlcGVuZGVuY2llczpbTnEsY3RdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksaHhlPVsiKiJdO2Z1bmN0aW9uIHJ5KG4pe3JldHVybiBmdW5jdGlvbigpe2lmKHZvaWQgMD09PWhFJiYoaEU9bnVsbCx0eXBlb2Ygd2luZG93PCJ1Iikpe2xldCBuPXdpbmRvdzt2b2lkIDAhPT1uLnRydXN0ZWRUeXBlcyYmKGhFPW4udHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSgiYW5ndWxhciNjb21wb25lbnRzIix7Y3JlYXRlSFRNTDp0PT50fSkpfXJldHVybiBoRX0oKT8uY3JlYXRlSFRNTChuKXx8bn1mdW5jdGlvbiBCcShuKXtyZXR1cm4gRXJyb3IoYFVuYWJsZSB0byBmaW5kIGljb24gd2l0aCB0aGUgbmFtZSAiJHtufSJgKX1mdW5jdGlvbiBWcShuKXtyZXR1cm4gRXJyb3IoYFRoZSBVUkwgcHJvdmlkZWQgdG8gTWF0SWNvblJlZ2lzdHJ5IHdhcyBub3QgdHJ1c3RlZCBhcyBhIHJlc291cmNlIFVSTCB2aWEgQW5ndWxhcidzIERvbVNhbml0aXplci4gQXR0ZW1wdGVkIFVSTCB3YXMgIiR7bn0iLmApfWZ1bmN0aW9uIEhxKG4pe3JldHVybiBFcnJvcihgVGhlIGxpdGVyYWwgcHJvdmlkZWQgdG8gTWF0SWNvblJlZ2lzdHJ5IHdhcyBub3QgdHJ1c3RlZCBhcyBzYWZlIEhUTUwgYnkgQW5ndWxhcidzIERvbVNhbml0aXplci4gQXR0ZW1wdGVkIGxpdGVyYWwgd2FzICIke259Ii5gKX12YXIgU2Q9Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkpe3RoaXMudXJsPXQsdGhpcy5zdmdUZXh0PWUsdGhpcy5vcHRpb25zPWl9fSxFZz0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSxyLG8pe3RoaXMuX2h0dHBDbGllbnQ9ZSx0aGlzLl9zYW5pdGl6ZXI9aSx0aGlzLl9lcnJvckhhbmRsZXI9byx0aGlzLl9zdmdJY29uQ29uZmlncz1uZXcgTWFwLHRoaXMuX2ljb25TZXRDb25maWdzPW5ldyBNYXAsdGhpcy5fY2FjaGVkSWNvbnNCeVVybD1uZXcgTWFwLHRoaXMuX2luUHJvZ3Jlc3NVcmxGZXRjaGVzPW5ldyBNYXAsdGhpcy5fZm9udENzc0NsYXNzZXNCeUFsaWFzPW5ldyBNYXAsdGhpcy5fcmVzb2x2ZXJzPVtdLHRoaXMuX2RlZmF1bHRGb250U2V0Q2xhc3M9WyJtYXRlcmlhbC1pY29ucyIsIm1hdC1saWdhdHVyZS1mb250Il0sdGhpcy5fZG9jdW1lbnQ9cn1hZGRTdmdJY29uKGUsaSxyKXtyZXR1cm4gdGhpcy5hZGRTdmdJY29uSW5OYW1lc3BhY2UoIiIsZSxpLHIpfWFkZFN2Z0ljb25MaXRlcmFsKGUsaSxyKXtyZXR1cm4gdGhpcy5hZGRTdmdJY29uTGl0ZXJhbEluTmFtZXNwYWNlKCIiLGUsaSxyKX1hZGRTdmdJY29uSW5OYW1lc3BhY2UoZSxpLHIsbyl7cmV0dXJuIHRoaXMuX2FkZFN2Z0ljb25Db25maWcoZSxpLG5ldyBTZChyLG51bGwsbykpfWFkZFN2Z0ljb25SZXNvbHZlcihlKXtyZXR1cm4gdGhpcy5fcmVzb2x2ZXJzLnB1c2goZSksdGhpc31hZGRTdmdJY29uTGl0ZXJhbEluTmFtZXNwYWNlKGUsaSxyLG8pe2xldCBhPXRoaXMuX3Nhbml0aXplci5zYW5pdGl6ZShVci5IVE1MLHIpO2lmKCFhKXRocm93IEhxKHIpO2xldCBzPXJ5KGEpO3JldHVybiB0aGlzLl9hZGRTdmdJY29uQ29uZmlnKGUsaSxuZXcgU2QoIiIscyxvKSl9YWRkU3ZnSWNvblNldChlLGkpe3JldHVybiB0aGlzLmFkZFN2Z0ljb25TZXRJbk5hbWVzcGFjZSgiIixlLGkpfWFkZFN2Z0ljb25TZXRMaXRlcmFsKGUsaSl7cmV0dXJuIHRoaXMuYWRkU3ZnSWNvblNldExpdGVyYWxJbk5hbWVzcGFjZSgiIixlLGkpfWFkZFN2Z0ljb25TZXRJbk5hbWVzcGFjZShlLGkscil7cmV0dXJuIHRoaXMuX2FkZFN2Z0ljb25TZXRDb25maWcoZSxuZXcgU2QoaSxudWxsLHIpKX1hZGRTdmdJY29uU2V0TGl0ZXJhbEluTmFtZXNwYWNlKGUsaSxyKXtsZXQgbz10aGlzLl9zYW5pdGl6ZXIuc2FuaXRpemUoVXIuSFRNTCxpKTtpZighbyl0aHJvdyBIcShpKTtsZXQgYT1yeShvKTtyZXR1cm4gdGhpcy5fYWRkU3ZnSWNvblNldENvbmZpZyhlLG5ldyBTZCgiIixhLHIpKX1yZWdpc3RlckZvbnRDbGFzc0FsaWFzKGUsaT1lKXtyZXR1cm4gdGhpcy5fZm9udENzc0NsYXNzZXNCeUFsaWFzLnNldChlLGkpLHRoaXN9Y2xhc3NOYW1lRm9yRm9udEFsaWFzKGUpe3JldHVybiB0aGlzLl9mb250Q3NzQ2xhc3Nlc0J5QWxpYXMuZ2V0KGUpfHxlfXNldERlZmF1bHRGb250U2V0Q2xhc3MoLi4uZSl7cmV0dXJuIHRoaXMuX2RlZmF1bHRGb250U2V0Q2xhc3M9ZSx0aGlzfWdldERlZmF1bHRGb250U2V0Q2xhc3MoKXtyZXR1cm4gdGhpcy5fZGVmYXVsdEZvbnRTZXRDbGFzc31nZXRTdmdJY29uRnJvbVVybChlKXtsZXQgaT10aGlzLl9zYW5pdGl6ZXIuc2FuaXRpemUoVXIuUkVTT1VSQ0VfVVJMLGUpO2lmKCFpKXRocm93IFZxKGUpO2xldCByPXRoaXMuX2NhY2hlZEljb25zQnlVcmwuZ2V0KGkpO3JldHVybiByPyR0KG1FKHIpKTp0aGlzLl9sb2FkU3ZnSWNvbkZyb21Db25maWcobmV3IFNkKGUsbnVsbCkpLnBpcGUoRHQobz0+dGhpcy5fY2FjaGVkSWNvbnNCeVVybC5zZXQoaSxvKSkscShvPT5tRShvKSkpfWdldE5hbWVkU3ZnSWNvbihlLGk9IiIpe2xldCByPXpxKGksZSksbz10aGlzLl9zdmdJY29uQ29uZmlncy5nZXQocik7aWYobylyZXR1cm4gdGhpcy5fZ2V0U3ZnRnJvbUNvbmZpZyhvKTtpZihvPXRoaXMuX2dldEljb25Db25maWdGcm9tUmVzb2x2ZXJzKGksZSksbylyZXR1cm4gdGhpcy5fc3ZnSWNvbkNvbmZpZ3Muc2V0KHIsbyksdGhpcy5fZ2V0U3ZnRnJvbUNvbmZpZyhvKTtsZXQgYT10aGlzLl9pY29uU2V0Q29uZmlncy5nZXQoaSk7cmV0dXJuIGE/dGhpcy5fZ2V0U3ZnRnJvbUljb25TZXRDb25maWdzKGUsYSk6X2woQnEocikpfW5nT25EZXN0cm95KCl7dGhpcy5fcmVzb2x2ZXJzPVtdLHRoaXMuX3N2Z0ljb25Db25maWdzLmNsZWFyKCksdGhpcy5faWNvblNldENvbmZpZ3MuY2xlYXIoKSx0aGlzLl9jYWNoZWRJY29uc0J5VXJsLmNsZWFyKCl9X2dldFN2Z0Zyb21Db25maWcoZSl7cmV0dXJuIGUuc3ZnVGV4dD8kdChtRSh0aGlzLl9zdmdFbGVtZW50RnJvbUNvbmZpZyhlKSkpOnRoaXMuX2xvYWRTdmdJY29uRnJvbUNvbmZpZyhlKS5waXBlKHEoaT0+bUUoaSkpKX1fZ2V0U3ZnRnJvbUljb25TZXRDb25maWdzKGUsaSl7bGV0IHI9dGhpcy5fZXh0cmFjdEljb25XaXRoTmFtZUZyb21BbnlTZXQoZSxpKTtyZXR1cm4gcj8kdChyKTpDbyhpLmZpbHRlcihhPT4hYS5zdmdUZXh0KS5tYXAoYT0+dGhpcy5fbG9hZFN2Z0ljb25TZXRGcm9tQ29uZmlnKGEpLnBpcGUoY28ocz0+e2xldCBjPWBMb2FkaW5nIGljb24gc2V0IFVSTDogJHt0aGlzLl9zYW5pdGl6ZXIuc2FuaXRpemUoVXIuUkVTT1VSQ0VfVVJMLGEudXJsKX0gZmFpbGVkOiAke3MubWVzc2FnZX1gO3JldHVybiB0aGlzLl9lcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IobmV3IEVycm9yKGMpKSwkdChudWxsKX0pKSkpLnBpcGUocSgoKT0+e2xldCBhPXRoaXMuX2V4dHJhY3RJY29uV2l0aE5hbWVGcm9tQW55U2V0KGUsaSk7aWYoIWEpdGhyb3cgQnEoZSk7cmV0dXJuIGF9KSl9X2V4dHJhY3RJY29uV2l0aE5hbWVGcm9tQW55U2V0KGUsaSl7Zm9yKGxldCByPWkubGVuZ3RoLTE7cj49MDtyLS0pe2xldCBvPWlbcl07aWYoby5zdmdUZXh0JiZvLnN2Z1RleHQudG9TdHJpbmcoKS5pbmRleE9mKGUpPi0xKXtsZXQgYT10aGlzLl9zdmdFbGVtZW50RnJvbUNvbmZpZyhvKSxzPXRoaXMuX2V4dHJhY3RTdmdJY29uRnJvbVNldChhLGUsby5vcHRpb25zKTtpZihzKXJldHVybiBzfX1yZXR1cm4gbnVsbH1fbG9hZFN2Z0ljb25Gcm9tQ29uZmlnKGUpe3JldHVybiB0aGlzLl9mZXRjaEljb24oZSkucGlwZShEdChpPT5lLnN2Z1RleHQ9aSkscSgoKT0+dGhpcy5fc3ZnRWxlbWVudEZyb21Db25maWcoZSkpKX1fbG9hZFN2Z0ljb25TZXRGcm9tQ29uZmlnKGUpe3JldHVybiBlLnN2Z1RleHQ/JHQobnVsbCk6dGhpcy5fZmV0Y2hJY29uKGUpLnBpcGUoRHQoaT0+ZS5zdmdUZXh0PWkpKX1fZXh0cmFjdFN2Z0ljb25Gcm9tU2V0KGUsaSxyKXtsZXQgbz1lLnF1ZXJ5U2VsZWN0b3IoYFtpZD0iJHtpfSJdYCk7aWYoIW8pcmV0dXJuIG51bGw7bGV0IGE9by5jbG9uZU5vZGUoITApO2lmKGEucmVtb3ZlQXR0cmlidXRlKCJpZCIpLCJzdmciPT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiB0aGlzLl9zZXRTdmdBdHRyaWJ1dGVzKGEscik7aWYoInN5bWJvbCI9PT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuIHRoaXMuX3NldFN2Z0F0dHJpYnV0ZXModGhpcy5fdG9TdmdFbGVtZW50KGEpLHIpO2xldCBzPXRoaXMuX3N2Z0VsZW1lbnRGcm9tU3RyaW5nKHJ5KCI8c3ZnPjwvc3ZnPiIpKTtyZXR1cm4gcy5hcHBlbmRDaGlsZChhKSx0aGlzLl9zZXRTdmdBdHRyaWJ1dGVzKHMscil9X3N2Z0VsZW1lbnRGcm9tU3RyaW5nKGUpe2xldCBpPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpO2kuaW5uZXJIVE1MPWU7bGV0IHI9aS5xdWVyeVNlbGVjdG9yKCJzdmciKTtpZighcil0aHJvdyBFcnJvcigiPHN2Zz4gdGFnIG5vdCBmb3VuZCIpO3JldHVybiByfV90b1N2Z0VsZW1lbnQoZSl7bGV0IGk9dGhpcy5fc3ZnRWxlbWVudEZyb21TdHJpbmcocnkoIjxzdmc+PC9zdmc+IikpLHI9ZS5hdHRyaWJ1dGVzO2ZvcihsZXQgbz0wO288ci5sZW5ndGg7bysrKXtsZXR7bmFtZTphLHZhbHVlOnN9PXJbb107ImlkIiE9PWEmJmkuc2V0QXR0cmlidXRlKGEscyl9Zm9yKGxldCBvPTA7bzxlLmNoaWxkTm9kZXMubGVuZ3RoO28rKyllLmNoaWxkTm9kZXNbb10ubm9kZVR5cGU9PT10aGlzLl9kb2N1bWVudC5FTEVNRU5UX05PREUmJmkuYXBwZW5kQ2hpbGQoZS5jaGlsZE5vZGVzW29dLmNsb25lTm9kZSghMCkpO3JldHVybiBpfV9zZXRTdmdBdHRyaWJ1dGVzKGUsaSl7cmV0dXJuIGUuc2V0QXR0cmlidXRlKCJmaXQiLCIiKSxlLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwiMTAwJSIpLGUuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIjEwMCUiKSxlLnNldEF0dHJpYnV0ZSgicHJlc2VydmVBc3BlY3RSYXRpbyIsInhNaWRZTWlkIG1lZXQiKSxlLnNldEF0dHJpYnV0ZSgiZm9jdXNhYmxlIiwiZmFsc2UiKSxpJiZpLnZpZXdCb3gmJmUuc2V0QXR0cmlidXRlKCJ2aWV3Qm94IixpLnZpZXdCb3gpLGV9X2ZldGNoSWNvbihlKXtsZXR7dXJsOmksb3B0aW9uczpyfT1lLG89cj8ud2l0aENyZWRlbnRpYWxzPz8hMTtpZighdGhpcy5faHR0cENsaWVudCl0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgSHR0cENsaWVudCBwcm92aWRlciBmb3IgdXNlIHdpdGggQW5ndWxhciBNYXRlcmlhbCBpY29ucy4gUGxlYXNlIGluY2x1ZGUgdGhlIEh0dHBDbGllbnRNb2R1bGUgZnJvbSBAYW5ndWxhci9jb21tb24vaHR0cCBpbiB5b3VyIGFwcCBpbXBvcnRzLiIpO2lmKG51bGw9PWkpdGhyb3cgRXJyb3IoYENhbm5vdCBmZXRjaCBpY29uIGZyb20gVVJMICIke2l9Ii5gKTtsZXQgYT10aGlzLl9zYW5pdGl6ZXIuc2FuaXRpemUoVXIuUkVTT1VSQ0VfVVJMLGkpO2lmKCFhKXRocm93IFZxKGkpO2xldCBzPXRoaXMuX2luUHJvZ3Jlc3NVcmxGZXRjaGVzLmdldChhKTtpZihzKXJldHVybiBzO2xldCBsPXRoaXMuX2h0dHBDbGllbnQuZ2V0KGEse3Jlc3BvbnNlVHlwZToidGV4dCIsd2l0aENyZWRlbnRpYWxzOm99KS5waXBlKHEoYz0+cnkoYykpLGZ1bmN0aW9uKG4pe3JldHVybiBZdCgodCxlKT0+e3RyeXt0LnN1YnNjcmliZShlKX1maW5hbGx5e2UuYWRkKG4pfX0pfSgoKT0+dGhpcy5faW5Qcm9ncmVzc1VybEZldGNoZXMuZGVsZXRlKGEpKSxUYSgpKTtyZXR1cm4gdGhpcy5faW5Qcm9ncmVzc1VybEZldGNoZXMuc2V0KGEsbCksbH1fYWRkU3ZnSWNvbkNvbmZpZyhlLGkscil7cmV0dXJuIHRoaXMuX3N2Z0ljb25Db25maWdzLnNldCh6cShlLGkpLHIpLHRoaXN9X2FkZFN2Z0ljb25TZXRDb25maWcoZSxpKXtsZXQgcj10aGlzLl9pY29uU2V0Q29uZmlncy5nZXQoZSk7cmV0dXJuIHI/ci5wdXNoKGkpOnRoaXMuX2ljb25TZXRDb25maWdzLnNldChlLFtpXSksdGhpc31fc3ZnRWxlbWVudEZyb21Db25maWcoZSl7aWYoIWUuc3ZnRWxlbWVudCl7bGV0IGk9dGhpcy5fc3ZnRWxlbWVudEZyb21TdHJpbmcoZS5zdmdUZXh0KTt0aGlzLl9zZXRTdmdBdHRyaWJ1dGVzKGksZS5vcHRpb25zKSxlLnN2Z0VsZW1lbnQ9aX1yZXR1cm4gZS5zdmdFbGVtZW50fV9nZXRJY29uQ29uZmlnRnJvbVJlc29sdmVycyhlLGkpe2ZvcihsZXQgcj0wO3I8dGhpcy5fcmVzb2x2ZXJzLmxlbmd0aDtyKyspe2xldCBvPXRoaXMuX3Jlc29sdmVyc1tyXShpLGUpO2lmKG8pcmV0dXJuIF94ZShvKT9uZXcgU2Qoby51cmwsbnVsbCxvLm9wdGlvbnMpOm5ldyBTZChvLG51bGwpfX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhtaCw4KSxPKG5oKSxPKE50LDgpLE8obGEpKX0sbi5cdTAyNzVwcm92PXVlKHt0b2tlbjpuLGZhY3Rvcnk6bi5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxufSkoKTtmdW5jdGlvbiBtRShuKXtyZXR1cm4gbi5jbG9uZU5vZGUoITApfWZ1bmN0aW9uIHpxKG4sdCl7cmV0dXJuIG4rIjoiK3R9ZnVuY3Rpb24gX3hlKG4pe3JldHVybiEoIW4udXJsfHwhbi5vcHRpb25zKX1uZXcga2EsbmV3IGlkLG5ldyBrYSxuZXcga2E7dmFyIGJ4ZT1LbyhjbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLl9lbGVtZW50UmVmPW59fSksdnhlPW5ldyB0ZSgiTUFUX0lDT05fREVGQVVMVF9PUFRJT05TIikseXhlPW5ldyB0ZSgibWF0LWljb24tbG9jYXRpb24iLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uKCl7bGV0IG49JG4oTnQpLHQ9bj9uLmxvY2F0aW9uOm51bGw7cmV0dXJue2dldFBhdGhuYW1lOigpPT50P3QucGF0aG5hbWUrdC5zZWFyY2g6IiJ9fX0pLFVxPVsiY2xpcC1wYXRoIiwiY29sb3ItcHJvZmlsZSIsInNyYyIsImN1cnNvciIsImZpbGwiLCJmaWx0ZXIiLCJtYXJrZXIiLCJtYXJrZXItc3RhcnQiLCJtYXJrZXItbWlkIiwibWFya2VyLWVuZCIsIm1hc2siLCJzdHJva2UiXSxDeGU9VXEubWFwKG49PmBbJHtufV1gKS5qb2luKCIsICIpLE14ZT0vXnVybFwoWyciXT8jKC4qPylbJyJdP1wpJC8sYm49KCgpPT57Y2xhc3MgbiBleHRlbmRzIGJ4ZXtnZXQgaW5saW5lKCl7cmV0dXJuIHRoaXMuX2lubGluZX1zZXQgaW5saW5lKGUpe3RoaXMuX2lubGluZT12dChlKX1nZXQgc3ZnSWNvbigpe3JldHVybiB0aGlzLl9zdmdJY29ufXNldCBzdmdJY29uKGUpe2UhPT10aGlzLl9zdmdJY29uJiYoZT90aGlzLl91cGRhdGVTdmdJY29uKGUpOnRoaXMuX3N2Z0ljb24mJnRoaXMuX2NsZWFyU3ZnRWxlbWVudCgpLHRoaXMuX3N2Z0ljb249ZSl9Z2V0IGZvbnRTZXQoKXtyZXR1cm4gdGhpcy5fZm9udFNldH1zZXQgZm9udFNldChlKXtsZXQgaT10aGlzLl9jbGVhbnVwRm9udFZhbHVlKGUpO2khPT10aGlzLl9mb250U2V0JiYodGhpcy5fZm9udFNldD1pLHRoaXMuX3VwZGF0ZUZvbnRJY29uQ2xhc3NlcygpKX1nZXQgZm9udEljb24oKXtyZXR1cm4gdGhpcy5fZm9udEljb259c2V0IGZvbnRJY29uKGUpe2xldCBpPXRoaXMuX2NsZWFudXBGb250VmFsdWUoZSk7aSE9PXRoaXMuX2ZvbnRJY29uJiYodGhpcy5fZm9udEljb249aSx0aGlzLl91cGRhdGVGb250SWNvbkNsYXNzZXMoKSl9Y29uc3RydWN0b3IoZSxpLHIsbyxhLHMpe3N1cGVyKGUpLHRoaXMuX2ljb25SZWdpc3RyeT1pLHRoaXMuX2xvY2F0aW9uPW8sdGhpcy5fZXJyb3JIYW5kbGVyPWEsdGhpcy5faW5saW5lPSExLHRoaXMuX3ByZXZpb3VzRm9udFNldENsYXNzPVtdLHRoaXMuX2N1cnJlbnRJY29uRmV0Y2g9RW4uRU1QVFkscyYmKHMuY29sb3ImJih0aGlzLmNvbG9yPXRoaXMuZGVmYXVsdENvbG9yPXMuY29sb3IpLHMuZm9udFNldCYmKHRoaXMuZm9udFNldD1zLmZvbnRTZXQpKSxyfHxlLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKX1fc3BsaXRJY29uTmFtZShlKXtpZighZSlyZXR1cm5bIiIsIiJdO2xldCBpPWUuc3BsaXQoIjoiKTtzd2l0Y2goaS5sZW5ndGgpe2Nhc2UgMTpyZXR1cm5bIiIsaVswXV07Y2FzZSAyOnJldHVybiBpO2RlZmF1bHQ6dGhyb3cgRXJyb3IoYEludmFsaWQgaWNvbiBuYW1lOiAiJHtlfSJgKX19bmdPbkluaXQoKXt0aGlzLl91cGRhdGVGb250SWNvbkNsYXNzZXMoKX1uZ0FmdGVyVmlld0NoZWNrZWQoKXtsZXQgZT10aGlzLl9lbGVtZW50c1dpdGhFeHRlcm5hbFJlZmVyZW5jZXM7aWYoZSYmZS5zaXplKXtsZXQgaT10aGlzLl9sb2NhdGlvbi5nZXRQYXRobmFtZSgpO2khPT10aGlzLl9wcmV2aW91c1BhdGgmJih0aGlzLl9wcmV2aW91c1BhdGg9aSx0aGlzLl9wcmVwZW5kUGF0aFRvUmVmZXJlbmNlcyhpKSl9fW5nT25EZXN0cm95KCl7dGhpcy5fY3VycmVudEljb25GZXRjaC51bnN1YnNjcmliZSgpLHRoaXMuX2VsZW1lbnRzV2l0aEV4dGVybmFsUmVmZXJlbmNlcyYmdGhpcy5fZWxlbWVudHNXaXRoRXh0ZXJuYWxSZWZlcmVuY2VzLmNsZWFyKCl9X3VzaW5nRm9udEljb24oKXtyZXR1cm4hdGhpcy5zdmdJY29ufV9zZXRTdmdFbGVtZW50KGUpe3RoaXMuX2NsZWFyU3ZnRWxlbWVudCgpO2xldCBpPXRoaXMuX2xvY2F0aW9uLmdldFBhdGhuYW1lKCk7dGhpcy5fcHJldmlvdXNQYXRoPWksdGhpcy5fY2FjaGVDaGlsZHJlbldpdGhFeHRlcm5hbFJlZmVyZW5jZXMoZSksdGhpcy5fcHJlcGVuZFBhdGhUb1JlZmVyZW5jZXMoaSksdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGUpfV9jbGVhclN2Z0VsZW1lbnQoKXtsZXQgZT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsaT1lLmNoaWxkTm9kZXMubGVuZ3RoO2Zvcih0aGlzLl9lbGVtZW50c1dpdGhFeHRlcm5hbFJlZmVyZW5jZXMmJnRoaXMuX2VsZW1lbnRzV2l0aEV4dGVybmFsUmVmZXJlbmNlcy5jbGVhcigpO2ktLTspe2xldCByPWUuY2hpbGROb2Rlc1tpXTsoMSE9PXIubm9kZVR5cGV8fCJzdmciPT09ci5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKSYmci5yZW1vdmUoKX19X3VwZGF0ZUZvbnRJY29uQ2xhc3Nlcygpe2lmKCF0aGlzLl91c2luZ0ZvbnRJY29uKCkpcmV0dXJuO2xldCBlPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxpPSh0aGlzLmZvbnRTZXQ/dGhpcy5faWNvblJlZ2lzdHJ5LmNsYXNzTmFtZUZvckZvbnRBbGlhcyh0aGlzLmZvbnRTZXQpLnNwbGl0KC8gKy8pOnRoaXMuX2ljb25SZWdpc3RyeS5nZXREZWZhdWx0Rm9udFNldENsYXNzKCkpLmZpbHRlcihyPT5yLmxlbmd0aD4wKTt0aGlzLl9wcmV2aW91c0ZvbnRTZXRDbGFzcy5mb3JFYWNoKHI9PmUuY2xhc3NMaXN0LnJlbW92ZShyKSksaS5mb3JFYWNoKHI9PmUuY2xhc3NMaXN0LmFkZChyKSksdGhpcy5fcHJldmlvdXNGb250U2V0Q2xhc3M9aSx0aGlzLmZvbnRJY29uIT09dGhpcy5fcHJldmlvdXNGb250SWNvbkNsYXNzJiYhaS5pbmNsdWRlcygibWF0LWxpZ2F0dXJlLWZvbnQiKSYmKHRoaXMuX3ByZXZpb3VzRm9udEljb25DbGFzcyYmZS5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuX3ByZXZpb3VzRm9udEljb25DbGFzcyksdGhpcy5mb250SWNvbiYmZS5jbGFzc0xpc3QuYWRkKHRoaXMuZm9udEljb24pLHRoaXMuX3ByZXZpb3VzRm9udEljb25DbGFzcz10aGlzLmZvbnRJY29uKX1fY2xlYW51cEZvbnRWYWx1ZShlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/ZS50cmltKCkuc3BsaXQoIiAiKVswXTplfV9wcmVwZW5kUGF0aFRvUmVmZXJlbmNlcyhlKXtsZXQgaT10aGlzLl9lbGVtZW50c1dpdGhFeHRlcm5hbFJlZmVyZW5jZXM7aSYmaS5mb3JFYWNoKChyLG8pPT57ci5mb3JFYWNoKGE9PntvLnNldEF0dHJpYnV0ZShhLm5hbWUsYHVybCgnJHtlfSMke2EudmFsdWV9JylgKX0pfSl9X2NhY2hlQ2hpbGRyZW5XaXRoRXh0ZXJuYWxSZWZlcmVuY2VzKGUpe2xldCBpPWUucXVlcnlTZWxlY3RvckFsbChDeGUpLHI9dGhpcy5fZWxlbWVudHNXaXRoRXh0ZXJuYWxSZWZlcmVuY2VzPXRoaXMuX2VsZW1lbnRzV2l0aEV4dGVybmFsUmVmZXJlbmNlc3x8bmV3IE1hcDtmb3IobGV0IG89MDtvPGkubGVuZ3RoO28rKylVcS5mb3JFYWNoKGE9PntsZXQgcz1pW29dLGw9cy5nZXRBdHRyaWJ1dGUoYSksYz1sP2wubWF0Y2goTXhlKTpudWxsO2lmKGMpe2xldCBkPXIuZ2V0KHMpO2R8fChkPVtdLHIuc2V0KHMsZCkpLGQucHVzaCh7bmFtZTphLHZhbHVlOmNbMV19KX19KX1fdXBkYXRlU3ZnSWNvbihlKXtpZih0aGlzLl9zdmdOYW1lc3BhY2U9bnVsbCx0aGlzLl9zdmdOYW1lPW51bGwsdGhpcy5fY3VycmVudEljb25GZXRjaC51bnN1YnNjcmliZSgpLGUpe2xldFtpLHJdPXRoaXMuX3NwbGl0SWNvbk5hbWUoZSk7aSYmKHRoaXMuX3N2Z05hbWVzcGFjZT1pKSxyJiYodGhpcy5fc3ZnTmFtZT1yKSx0aGlzLl9jdXJyZW50SWNvbkZldGNoPXRoaXMuX2ljb25SZWdpc3RyeS5nZXROYW1lZFN2Z0ljb24ocixpKS5waXBlKEx0KDEpKS5zdWJzY3JpYmUobz0+dGhpcy5fc2V0U3ZnRWxlbWVudChvKSxvPT57dGhpcy5fZXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKG5ldyBFcnJvcihgRXJyb3IgcmV0cmlldmluZyBpY29uICR7aX06JHtyfSEgJHtvLm1lc3NhZ2V9YCkpfSl9fX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSxDKEVnKSxNbygiYXJpYS1oaWRkZW4iKSxDKHl4ZSksQyhsYSksQyh2eGUsOCkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbIm1hdC1pY29uIl1dLGhvc3RBdHRyczpbInJvbGUiLCJpbWciLDEsIm1hdC1pY29uIiwibm90cmFuc2xhdGUiXSxob3N0VmFyczo4LGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezImZSYmKEJlKCJkYXRhLW1hdC1pY29uLXR5cGUiLGkuX3VzaW5nRm9udEljb24oKT8iZm9udCI6InN2ZyIpKCJkYXRhLW1hdC1pY29uLW5hbWUiLGkuX3N2Z05hbWV8fGkuZm9udEljb24pKCJkYXRhLW1hdC1pY29uLW5hbWVzcGFjZSIsaS5fc3ZnTmFtZXNwYWNlfHxpLmZvbnRTZXQpKCJmb250SWNvbiIsaS5fdXNpbmdGb250SWNvbigpP2kuZm9udEljb246bnVsbCksbnQoIm1hdC1pY29uLWlubGluZSIsaS5pbmxpbmUpKCJtYXQtaWNvbi1uby1jb2xvciIsInByaW1hcnkiIT09aS5jb2xvciYmImFjY2VudCIhPT1pLmNvbG9yJiYid2FybiIhPT1pLmNvbG9yKSl9LGlucHV0czp7Y29sb3I6ImNvbG9yIixpbmxpbmU6ImlubGluZSIsc3ZnSWNvbjoic3ZnSWNvbiIsZm9udFNldDoiZm9udFNldCIsZm9udEljb246ImZvbnRJY29uIn0sZXhwb3J0QXM6WyJtYXRJY29uIl0sZmVhdHVyZXM6W1hlXSxuZ0NvbnRlbnRTZWxlY3RvcnM6aHhlLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZm4oKSxUdCgwKSl9LHN0eWxlczpbIi5tYXQtaWNvbnstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmlsbDpjdXJyZW50Q29sb3I7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweDtvdmVyZmxvdzpoaWRkZW59Lm1hdC1pY29uLm1hdC1pY29uLWlubGluZXtmb250LXNpemU6aW5oZXJpdDtoZWlnaHQ6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0O3dpZHRoOmluaGVyaXR9Lm1hdC1pY29uLm1hdC1saWdhdHVyZS1mb250W2ZvbnRJY29uXTo6YmVmb3Jle2NvbnRlbnQ6YXR0cihmb250SWNvbil9W2Rpcj1ydGxdIC5tYXQtaWNvbi1ydGwtbWlycm9ye3RyYW5zZm9ybTpzY2FsZSgtMSwgMSl9Lm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLC5tYXQtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5KSAubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbntkaXNwbGF5OmJsb2NrfS5tYXQtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5KSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uLC5tYXQtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5KSAubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29ue21hcmdpbjphdXRvfSJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLGFpPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltkbixkbl19KSxufSkoKSx3eGU9WyIqIixbWyJtYXQtdG9vbGJhci1yb3ciXV1dLFN4ZT1bIioiLCJtYXQtdG9vbGJhci1yb3ciXSxFeGU9S28oY2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5fZWxlbWVudFJlZj1ufX0pLFR4ZT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1sibWF0LXRvb2xiYXItcm93Il1dLGhvc3RBdHRyczpbMSwibWF0LXRvb2xiYXItcm93Il0sZXhwb3J0QXM6WyJtYXRUb29sYmFyUm93Il19KSxufSkoKSxqcT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgRXhle2NvbnN0cnVjdG9yKGUsaSxyKXtzdXBlcihlKSx0aGlzLl9wbGF0Zm9ybT1pLHRoaXMuX2RvY3VtZW50PXJ9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyJiYodGhpcy5fY2hlY2tUb29sYmFyTWl4ZWRNb2RlcygpLHRoaXMuX3Rvb2xiYXJSb3dzLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT50aGlzLl9jaGVja1Rvb2xiYXJNaXhlZE1vZGVzKCkpKX1fY2hlY2tUb29sYmFyTWl4ZWRNb2Rlcygpe319cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyh4ZSksQyhWbiksQyhOdCkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbIm1hdC10b29sYmFyIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGUsaSxyKXtpZigxJmUmJkJuKHIsVHhlLDUpLDImZSl7bGV0IG87YmUobz12ZSgpKSYmKGkuX3Rvb2xiYXJSb3dzPW8pfX0saG9zdEF0dHJzOlsxLCJtYXQtdG9vbGJhciJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MiZlJiZudCgibWF0LXRvb2xiYXItbXVsdGlwbGUtcm93cyIsaS5fdG9vbGJhclJvd3MubGVuZ3RoPjApKCJtYXQtdG9vbGJhci1zaW5nbGUtcm93IiwwPT09aS5fdG9vbGJhclJvd3MubGVuZ3RoKX0saW5wdXRzOntjb2xvcjoiY29sb3IifSxleHBvcnRBczpbIm1hdFRvb2xiYXIiXSxmZWF0dXJlczpbWGVdLG5nQ29udGVudFNlbGVjdG9yczpTeGUsZGVjbHM6Mix2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmbih3eGUpLFR0KDApLFR0KDEsMSkpfSxzdHlsZXM6WyIuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdG9vbGJhcntvdXRsaW5lOnNvbGlkIDFweH0ubWF0LXRvb2xiYXIgLm1hdC1tZGMtYnV0dG9uLWJhc2UubWF0LXVudGhlbWVkey0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6IGluaGVyaXQ7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6IGluaGVyaXR9Lm1hdC10b29sYmFyLXJvdywubWF0LXRvb2xiYXItc2luZ2xlLXJvd3tkaXNwbGF5OmZsZXg7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MCAxNnB4O3dpZHRoOjEwMCU7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXB9Lm1hdC10b29sYmFyLW11bHRpcGxlLXJvd3N7ZGlzcGxheTpmbGV4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6MTAwJX0iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxHcT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbZG4sZG5dfSksbn0pKCk7ZnVuY3Rpb24gWTIobil7cmV0dXJuIG4uc3RhdGUhPT1SZS5OT1RfTE9BREVEJiZuLnN0YXRlIT09UmUuTE9BRElOR312YXIgSXhlPWdyKGk3LHllKHgxLG49PlkyKG4pP3suLi5uLHNldHRpbmdzOnsuLi5uLnNldHRpbmdzLHJlbG9hZEVuYWJsZWQ6IW4uc2V0dGluZ3MucmVsb2FkRW5hYmxlZH19Om4pLHllKEMxLChuLHtwZXJpb2RJbk1zOnR9KT0+e2lmKCFZMihuKSlyZXR1cm4gbjtsZXQgZT10Pj0zZTQ/dDpuLnNldHRpbmdzLnJlbG9hZFBlcmlvZEluTXM7cmV0dXJuey4uLm4sc2V0dGluZ3M6ey4uLm4uc2V0dGluZ3MscmVsb2FkUGVyaW9kSW5NczplfX19KSx5ZShNMSwobix7c2l6ZTp0fSk9PntpZighWTIobikpcmV0dXJuIG47bGV0IGU9dD4wP3Q6bi5zZXR0aW5ncy5wYWdlU2l6ZTtyZXR1cm57Li4ubixzZXR0aW5nczp7Li4ubi5zZXR0aW5ncyxwYWdlU2l6ZTplfX19KSx5ZShocywobix7cGFydGlhbFNldHRpbmdzOnR9KT0+e2xldCBlPXt9O3JldHVybiBOdW1iZXIuaXNGaW5pdGUodC5wYWdlU2l6ZSkmJnQucGFnZVNpemU+MCYmKGUucGFnZVNpemU9TnVtYmVyKHQucGFnZVNpemUpKSwiYm9vbGVhbiI9PXR5cGVvZiB0LmF1dG9SZWxvYWQmJihlLnJlbG9hZEVuYWJsZWQ9dC5hdXRvUmVsb2FkKSxOdW1iZXIuaXNGaW5pdGUodC5hdXRvUmVsb2FkUGVyaW9kSW5NcykmJnQuYXV0b1JlbG9hZFBlcmlvZEluTXM+M2U0JiYoZS5yZWxvYWRQZXJpb2RJbk1zPU51bWJlcih0LmF1dG9SZWxvYWRQZXJpb2RJbk1zKSksey4uLm4sc2V0dGluZ3M6ey4uLm4uc2V0dGluZ3MsLi4uZX19fSkpO2Z1bmN0aW9uIFdxKG4sdCl7cmV0dXJuIEl4ZShuLHQpfXZhciBBeGU9WyJpbnB1dCJdLFJ4ZT1bImxhYmVsIl0sUHhlPVsiKiJdLFoyPW5ldyB0ZSgibWF0LWNoZWNrYm94LWRlZmF1bHQtb3B0aW9ucyIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm57Y29sb3I6ImFjY2VudCIsY2xpY2tBY3Rpb246ImNoZWNrLWluZGV0ZXJtaW5hdGUifX19KTt2YXIga3hlPXtwcm92aWRlOlhyLHVzZUV4aXN0aW5nOlduKCgpPT54cyksbXVsdGk6ITB9LE94ZT0wLHFxPXtjb2xvcjoiYWNjZW50IixjbGlja0FjdGlvbjoiY2hlY2staW5kZXRlcm1pbmF0ZSJ9LEZ4ZT1EYyhLbyhnbyhhbyhjbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLl9lbGVtZW50UmVmPW59fSkpKSksTnhlPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBGeGV7Z2V0IGlucHV0SWQoKXtyZXR1cm5gJHt0aGlzLmlkfHx0aGlzLl91bmlxdWVJZH0taW5wdXRgfWdldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLl9yZXF1aXJlZH1zZXQgcmVxdWlyZWQoZSl7dGhpcy5fcmVxdWlyZWQ9dnQoZSl9Y29uc3RydWN0b3IoZSxpLHIsbyxhLHMsbCl7c3VwZXIoaSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9cix0aGlzLl9uZ1pvbmU9byx0aGlzLl9hbmltYXRpb25Nb2RlPXMsdGhpcy5fb3B0aW9ucz1sLHRoaXMuYXJpYUxhYmVsPSIiLHRoaXMuYXJpYUxhYmVsbGVkYnk9bnVsbCx0aGlzLmxhYmVsUG9zaXRpb249ImFmdGVyIix0aGlzLm5hbWU9bnVsbCx0aGlzLmNoYW5nZT1uZXcgRix0aGlzLmluZGV0ZXJtaW5hdGVDaGFuZ2U9bmV3IEYsdGhpcy5fb25Ub3VjaGVkPSgpPT57fSx0aGlzLl9jdXJyZW50QW5pbWF0aW9uQ2xhc3M9IiIsdGhpcy5fY3VycmVudENoZWNrU3RhdGU9MCx0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuPSgpPT57fSx0aGlzLl9jaGVja2VkPSExLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuX2luZGV0ZXJtaW5hdGU9ITEsdGhpcy5fb3B0aW9ucz10aGlzLl9vcHRpb25zfHxxcSx0aGlzLmNvbG9yPXRoaXMuZGVmYXVsdENvbG9yPXRoaXMuX29wdGlvbnMuY29sb3J8fHFxLmNvbG9yLHRoaXMudGFiSW5kZXg9cGFyc2VJbnQoYSl8fDAsdGhpcy5pZD10aGlzLl91bmlxdWVJZD1gJHtlfSR7KytPeGV9YH1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9zeW5jSW5kZXRlcm1pbmF0ZSh0aGlzLl9pbmRldGVybWluYXRlKX1nZXQgY2hlY2tlZCgpe3JldHVybiB0aGlzLl9jaGVja2VkfXNldCBjaGVja2VkKGUpe2xldCBpPXZ0KGUpO2khPXRoaXMuY2hlY2tlZCYmKHRoaXMuX2NoZWNrZWQ9aSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkfXNldCBkaXNhYmxlZChlKXtsZXQgaT12dChlKTtpIT09dGhpcy5kaXNhYmxlZCYmKHRoaXMuX2Rpc2FibGVkPWksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfWdldCBpbmRldGVybWluYXRlKCl7cmV0dXJuIHRoaXMuX2luZGV0ZXJtaW5hdGV9c2V0IGluZGV0ZXJtaW5hdGUoZSl7bGV0IGk9ZSE9dGhpcy5faW5kZXRlcm1pbmF0ZTt0aGlzLl9pbmRldGVybWluYXRlPXZ0KGUpLGkmJih0aGlzLl90cmFuc2l0aW9uQ2hlY2tTdGF0ZSh0aGlzLl9pbmRldGVybWluYXRlPzM6dGhpcy5jaGVja2VkPzE6MiksdGhpcy5pbmRldGVybWluYXRlQ2hhbmdlLmVtaXQodGhpcy5faW5kZXRlcm1pbmF0ZSkpLHRoaXMuX3N5bmNJbmRldGVybWluYXRlKHRoaXMuX2luZGV0ZXJtaW5hdGUpfV9pc1JpcHBsZURpc2FibGVkKCl7cmV0dXJuIHRoaXMuZGlzYWJsZVJpcHBsZXx8dGhpcy5kaXNhYmxlZH1fb25MYWJlbFRleHRDaGFuZ2UoKXt0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCl9d3JpdGVWYWx1ZShlKXt0aGlzLmNoZWNrZWQ9ISFlfXJlZ2lzdGVyT25DaGFuZ2UoZSl7dGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbj1lfXJlZ2lzdGVyT25Ub3VjaGVkKGUpe3RoaXMuX29uVG91Y2hlZD1lfXNldERpc2FibGVkU3RhdGUoZSl7dGhpcy5kaXNhYmxlZD1lfV90cmFuc2l0aW9uQ2hlY2tTdGF0ZShlKXtsZXQgaT10aGlzLl9jdXJyZW50Q2hlY2tTdGF0ZSxyPXRoaXMuX2dldEFuaW1hdGlvblRhcmdldEVsZW1lbnQoKTtpZihpIT09ZSYmciYmKHRoaXMuX2N1cnJlbnRBbmltYXRpb25DbGFzcyYmci5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuX2N1cnJlbnRBbmltYXRpb25DbGFzcyksdGhpcy5fY3VycmVudEFuaW1hdGlvbkNsYXNzPXRoaXMuX2dldEFuaW1hdGlvbkNsYXNzRm9yQ2hlY2tTdGF0ZVRyYW5zaXRpb24oaSxlKSx0aGlzLl9jdXJyZW50Q2hlY2tTdGF0ZT1lLHRoaXMuX2N1cnJlbnRBbmltYXRpb25DbGFzcy5sZW5ndGg+MCkpe3IuY2xhc3NMaXN0LmFkZCh0aGlzLl9jdXJyZW50QW5pbWF0aW9uQ2xhc3MpO2xldCBvPXRoaXMuX2N1cnJlbnRBbmltYXRpb25DbGFzczt0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PntzZXRUaW1lb3V0KCgpPT57ci5jbGFzc0xpc3QucmVtb3ZlKG8pfSwxZTMpfSl9fV9lbWl0Q2hhbmdlRXZlbnQoKXt0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuKHRoaXMuY2hlY2tlZCksdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLl9jcmVhdGVDaGFuZ2VFdmVudCh0aGlzLmNoZWNrZWQpKSx0aGlzLl9pbnB1dEVsZW1lbnQmJih0aGlzLl9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5jaGVja2VkPXRoaXMuY2hlY2tlZCl9dG9nZ2xlKCl7dGhpcy5jaGVja2VkPSF0aGlzLmNoZWNrZWQsdGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbih0aGlzLmNoZWNrZWQpfV9oYW5kbGVJbnB1dENsaWNrKCl7bGV0IGU9dGhpcy5fb3B0aW9ucz8uY2xpY2tBY3Rpb247dGhpcy5kaXNhYmxlZHx8Im5vb3AiPT09ZT8hdGhpcy5kaXNhYmxlZCYmIm5vb3AiPT09ZSYmKHRoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmNoZWNrZWQ9dGhpcy5jaGVja2VkLHRoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmluZGV0ZXJtaW5hdGU9dGhpcy5pbmRldGVybWluYXRlKToodGhpcy5pbmRldGVybWluYXRlJiYiY2hlY2siIT09ZSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3RoaXMuX2luZGV0ZXJtaW5hdGU9ITEsdGhpcy5pbmRldGVybWluYXRlQ2hhbmdlLmVtaXQodGhpcy5faW5kZXRlcm1pbmF0ZSl9KSx0aGlzLl9jaGVja2VkPSF0aGlzLl9jaGVja2VkLHRoaXMuX3RyYW5zaXRpb25DaGVja1N0YXRlKHRoaXMuX2NoZWNrZWQ/MToyKSx0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoKSl9X29uSW50ZXJhY3Rpb25FdmVudChlKXtlLnN0b3BQcm9wYWdhdGlvbigpfV9vbkJsdXIoKXtQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57dGhpcy5fb25Ub3VjaGVkKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KX1fZ2V0QW5pbWF0aW9uQ2xhc3NGb3JDaGVja1N0YXRlVHJhbnNpdGlvbihlLGkpe2lmKCJOb29wQW5pbWF0aW9ucyI9PT10aGlzLl9hbmltYXRpb25Nb2RlKXJldHVybiIiO3N3aXRjaChlKXtjYXNlIDA6aWYoMT09PWkpcmV0dXJuIHRoaXMuX2FuaW1hdGlvbkNsYXNzZXMudW5jaGVja2VkVG9DaGVja2VkO2lmKDM9PWkpcmV0dXJuIHRoaXMuX2NoZWNrZWQ/dGhpcy5fYW5pbWF0aW9uQ2xhc3Nlcy5jaGVja2VkVG9JbmRldGVybWluYXRlOnRoaXMuX2FuaW1hdGlvbkNsYXNzZXMudW5jaGVja2VkVG9JbmRldGVybWluYXRlO2JyZWFrO2Nhc2UgMjpyZXR1cm4gMT09PWk/dGhpcy5fYW5pbWF0aW9uQ2xhc3Nlcy51bmNoZWNrZWRUb0NoZWNrZWQ6dGhpcy5fYW5pbWF0aW9uQ2xhc3Nlcy51bmNoZWNrZWRUb0luZGV0ZXJtaW5hdGU7Y2FzZSAxOnJldHVybiAyPT09aT90aGlzLl9hbmltYXRpb25DbGFzc2VzLmNoZWNrZWRUb1VuY2hlY2tlZDp0aGlzLl9hbmltYXRpb25DbGFzc2VzLmNoZWNrZWRUb0luZGV0ZXJtaW5hdGU7Y2FzZSAzOnJldHVybiAxPT09aT90aGlzLl9hbmltYXRpb25DbGFzc2VzLmluZGV0ZXJtaW5hdGVUb0NoZWNrZWQ6dGhpcy5fYW5pbWF0aW9uQ2xhc3Nlcy5pbmRldGVybWluYXRlVG9VbmNoZWNrZWR9cmV0dXJuIiJ9X3N5bmNJbmRldGVybWluYXRlKGUpe2xldCBpPXRoaXMuX2lucHV0RWxlbWVudDtpJiYoaS5uYXRpdmVFbGVtZW50LmluZGV0ZXJtaW5hdGU9ZSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtjcygpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHZpZXdRdWVyeTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmKFVlKEF4ZSw1KSxVZShSeGUsNSksVWUoS2ksNSkpLDImZSl7bGV0IHI7YmUocj12ZSgpKSYmKGkuX2lucHV0RWxlbWVudD1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS5fbGFiZWxFbGVtZW50PXIuZmlyc3QpLGJlKHI9dmUoKSkmJihpLnJpcHBsZT1yLmZpcnN0KX19LGlucHV0czp7YXJpYUxhYmVsOlsiYXJpYS1sYWJlbCIsImFyaWFMYWJlbCJdLGFyaWFMYWJlbGxlZGJ5OlsiYXJpYS1sYWJlbGxlZGJ5IiwiYXJpYUxhYmVsbGVkYnkiXSxhcmlhRGVzY3JpYmVkYnk6WyJhcmlhLWRlc2NyaWJlZGJ5IiwiYXJpYURlc2NyaWJlZGJ5Il0saWQ6ImlkIixyZXF1aXJlZDoicmVxdWlyZWQiLGxhYmVsUG9zaXRpb246ImxhYmVsUG9zaXRpb24iLG5hbWU6Im5hbWUiLHZhbHVlOiJ2YWx1ZSIsY2hlY2tlZDoiY2hlY2tlZCIsZGlzYWJsZWQ6ImRpc2FibGVkIixpbmRldGVybWluYXRlOiJpbmRldGVybWluYXRlIn0sb3V0cHV0czp7Y2hhbmdlOiJjaGFuZ2UiLGluZGV0ZXJtaW5hdGVDaGFuZ2U6ImluZGV0ZXJtaW5hdGVDaGFuZ2UifSxmZWF0dXJlczpbWGVdfSksbn0pKCkseHM9KCgpPT57Y2xhc3MgbiBleHRlbmRzIE54ZXtjb25zdHJ1Y3RvcihlLGkscixvLGEscyl7c3VwZXIoIm1hdC1tZGMtY2hlY2tib3gtIixlLGkscixvLGEscyksdGhpcy5fYW5pbWF0aW9uQ2xhc3Nlcz17dW5jaGVja2VkVG9DaGVja2VkOiJtZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWNoZWNrZWQiLHVuY2hlY2tlZFRvSW5kZXRlcm1pbmF0ZToibWRjLWNoZWNrYm94LS1hbmltLXVuY2hlY2tlZC1pbmRldGVybWluYXRlIixjaGVja2VkVG9VbmNoZWNrZWQ6Im1kYy1jaGVja2JveC0tYW5pbS1jaGVja2VkLXVuY2hlY2tlZCIsY2hlY2tlZFRvSW5kZXRlcm1pbmF0ZToibWRjLWNoZWNrYm94LS1hbmltLWNoZWNrZWQtaW5kZXRlcm1pbmF0ZSIsaW5kZXRlcm1pbmF0ZVRvQ2hlY2tlZDoibWRjLWNoZWNrYm94LS1hbmltLWluZGV0ZXJtaW5hdGUtY2hlY2tlZCIsaW5kZXRlcm1pbmF0ZVRvVW5jaGVja2VkOiJtZGMtY2hlY2tib3gtLWFuaW0taW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQifX1mb2N1cygpe3RoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCl9X2NyZWF0ZUNoYW5nZUV2ZW50KGUpe2xldCBpPW5ldyBjbGFzc3t9O3JldHVybiBpLnNvdXJjZT10aGlzLGkuY2hlY2tlZD1lLGl9X2dldEFuaW1hdGlvblRhcmdldEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5faW5wdXRFbGVtZW50Py5uYXRpdmVFbGVtZW50fV9vbklucHV0Q2xpY2soKXtzdXBlci5faGFuZGxlSW5wdXRDbGljaygpfV9vblRvdWNoVGFyZ2V0Q2xpY2soKXtzdXBlci5faGFuZGxlSW5wdXRDbGljaygpLHRoaXMuZGlzYWJsZWR8fHRoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCl9X3ByZXZlbnRCdWJibGluZ0Zyb21MYWJlbChlKXtlLnRhcmdldCYmdGhpcy5fbGFiZWxFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQpJiZlLnN0b3BQcm9wYWdhdGlvbigpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSxDKFF0KSxDKG90KSxNbygidGFiaW5kZXgiKSxDKHBpLDgpLEMoWjIsOCkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbIm1hdC1jaGVja2JveCJdXSxob3N0QXR0cnM6WzEsIm1hdC1tZGMtY2hlY2tib3giXSxob3N0VmFyczoxMixob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsyJmUmJih3bygiaWQiLGkuaWQpLEJlKCJ0YWJpbmRleCIsbnVsbCkoImFyaWEtbGFiZWwiLG51bGwpKCJhcmlhLWxhYmVsbGVkYnkiLG51bGwpLG50KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PWkuX2FuaW1hdGlvbk1vZGUpKCJtZGMtY2hlY2tib3gtLWRpc2FibGVkIixpLmRpc2FibGVkKSgibWF0LW1kYy1jaGVja2JveC1kaXNhYmxlZCIsaS5kaXNhYmxlZCkoIm1hdC1tZGMtY2hlY2tib3gtY2hlY2tlZCIsaS5jaGVja2VkKSl9LGlucHV0czp7ZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIsY29sb3I6ImNvbG9yIix0YWJJbmRleDoidGFiSW5kZXgifSxleHBvcnRBczpbIm1hdENoZWNrYm94Il0sZmVhdHVyZXM6W1Z0KFtreGVdKSxYZV0sbmdDb250ZW50U2VsZWN0b3JzOlB4ZSxkZWNsczoxNSx2YXJzOjE5LGNvbnN0czpbWzEsIm1kYy1mb3JtLWZpZWxkIiwzLCJjbGljayJdLFsxLCJtZGMtY2hlY2tib3giXSxbImNoZWNrYm94IiwiIl0sWzEsIm1hdC1tZGMtY2hlY2tib3gtdG91Y2gtdGFyZ2V0IiwzLCJjbGljayJdLFsidHlwZSIsImNoZWNrYm94IiwxLCJtZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sIiwzLCJjaGVja2VkIiwiaW5kZXRlcm1pbmF0ZSIsImRpc2FibGVkIiwiaWQiLCJyZXF1aXJlZCIsInRhYkluZGV4IiwiYmx1ciIsImNsaWNrIiwiY2hhbmdlIl0sWyJpbnB1dCIsIiJdLFsxLCJtZGMtY2hlY2tib3hfX3JpcHBsZSJdLFsxLCJtZGMtY2hlY2tib3hfX2JhY2tncm91bmQiXSxbImZvY3VzYWJsZSIsImZhbHNlIiwidmlld0JveCIsIjAgMCAyNCAyNCIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwibWRjLWNoZWNrYm94X19jaGVja21hcmsiXSxbImZpbGwiLCJub25lIiwiZCIsIk0xLjczLDEyLjkxIDguMSwxOS4yOCAyMi43OSw0LjU5IiwxLCJtZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoIl0sWzEsIm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIl0sWyJtYXQtcmlwcGxlIiwiIiwxLCJtYXQtbWRjLWNoZWNrYm94LXJpcHBsZSIsIm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yIiwzLCJtYXRSaXBwbGVUcmlnZ2VyIiwibWF0UmlwcGxlRGlzYWJsZWQiLCJtYXRSaXBwbGVDZW50ZXJlZCJdLFszLCJmb3IiXSxbImxhYmVsIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiYoZm4oKSxmKDAsImRpdiIsMCksQSgiY2xpY2siLGZ1bmN0aW9uKG8pe3JldHVybiBpLl9wcmV2ZW50QnViYmxpbmdGcm9tTGFiZWwobyl9KSxmKDEsImRpdiIsMSwyKSgzLCJkaXYiLDMpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpLl9vblRvdWNoVGFyZ2V0Q2xpY2soKX0pLGcoKSxmKDQsImlucHV0Iiw0LDUpLEEoImJsdXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGkuX29uQmx1cigpfSkoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpLl9vbklucHV0Q2xpY2soKX0pKCJjaGFuZ2UiLGZ1bmN0aW9uKG8pe3JldHVybiBpLl9vbkludGVyYWN0aW9uRXZlbnQobyl9KSxnKCksayg2LCJkaXYiLDYpLGYoNywiZGl2Iiw3KSxxbigpLGYoOCwic3ZnIiw4KSxrKDksInBhdGgiLDkpLGcoKSx1YSgpLGsoMTAsImRpdiIsMTApLGcoKSxrKDExLCJkaXYiLDExKSxnKCksZigxMiwibGFiZWwiLDEyLDEzKSxUdCgxNCksZygpKCkpLDImZSl7bGV0IHI9c3QoMik7bnQoIm1kYy1mb3JtLWZpZWxkLS1hbGlnbi1lbmQiLCJiZWZvcmUiPT1pLmxhYmVsUG9zaXRpb24pLHYoNCksbnQoIm1kYy1jaGVja2JveC0tc2VsZWN0ZWQiLGkuY2hlY2tlZCksYigiY2hlY2tlZCIsaS5jaGVja2VkKSgiaW5kZXRlcm1pbmF0ZSIsaS5pbmRldGVybWluYXRlKSgiZGlzYWJsZWQiLGkuZGlzYWJsZWQpKCJpZCIsaS5pbnB1dElkKSgicmVxdWlyZWQiLGkucmVxdWlyZWQpKCJ0YWJJbmRleCIsaS50YWJJbmRleCksQmUoImFyaWEtbGFiZWwiLGkuYXJpYUxhYmVsfHxudWxsKSgiYXJpYS1sYWJlbGxlZGJ5IixpLmFyaWFMYWJlbGxlZGJ5KSgiYXJpYS1kZXNjcmliZWRieSIsaS5hcmlhRGVzY3JpYmVkYnkpKCJuYW1lIixpLm5hbWUpKCJ2YWx1ZSIsaS52YWx1ZSksdig3KSxiKCJtYXRSaXBwbGVUcmlnZ2VyIixyKSgibWF0UmlwcGxlRGlzYWJsZWQiLGkuZGlzYWJsZVJpcHBsZXx8aS5kaXNhYmxlZCkoIm1hdFJpcHBsZUNlbnRlcmVkIiwhMCksdigxKSxiKCJmb3IiLGkuaW5wdXRJZCl9fSxkZXBlbmRlbmNpZXM6W0tpXSxzdHlsZXM6WycubWRjLXRvdWNoLXRhcmdldC13cmFwcGVye2Rpc3BsYXk6aW5saW5lfUBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LXVuY2hlY2tlZC1jaGVja2VkLWNoZWNrbWFyay1wYXRoezAlLDUwJXtzdHJva2UtZGFzaG9mZnNldDoyOS43ODMzMzg1fTUwJXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpfTEwMCV7c3Ryb2tlLWRhc2hvZmZzZXQ6MH19QGtleWZyYW1lcyBtZGMtY2hlY2tib3gtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrezAlLDY4LjIle3RyYW5zZm9ybTpzY2FsZVgoMCl9NjguMiV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwgMCwgMCwgMSl9MTAwJXt0cmFuc2Zvcm06c2NhbGVYKDEpfX1Aa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1jaGVja2VkLXVuY2hlY2tlZC1jaGVja21hcmstcGF0aHtmcm9te2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7b3BhY2l0eToxO3N0cm9rZS1kYXNob2Zmc2V0OjB9dG97b3BhY2l0eTowO3N0cm9rZS1kYXNob2Zmc2V0Oi0yOS43ODMzMzg1fX1Aa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtY2hlY2ttYXJre2Zyb217YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpO29wYWNpdHk6MX10b3t0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtvcGFjaXR5OjB9fUBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1jaGVja21hcmt7ZnJvbXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjE0LCAwLCAwLCAxKTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtvcGFjaXR5OjB9dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpO29wYWNpdHk6MX19QGtleWZyYW1lcyBtZGMtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFya3tmcm9te2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246bWRjLWFuaW1hdGlvbi1kZWNlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTtvcGFjaXR5OjB9dG97dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1taXhlZG1hcmt7ZnJvbXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjE0LCAwLCAwLCAxKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpO29wYWNpdHk6MX10b3t0cmFuc2Zvcm06cm90YXRlKDMxNWRlZyk7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLXVuY2hlY2tlZC1taXhlZG1hcmt7MCV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXI7dHJhbnNmb3JtOnNjYWxlWCgxKTtvcGFjaXR5OjF9MzIuOCUsMTAwJXt0cmFuc2Zvcm06c2NhbGVYKDApO29wYWNpdHk6MH19Lm1kYy1jaGVja2JveHtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjAgMCAxOHB4O2JveC1zaXppbmc6Y29udGVudC1ib3g7d2lkdGg6MThweDtoZWlnaHQ6MThweDtsaW5lLWhlaWdodDowO3doaXRlLXNwYWNlOm5vd3JhcDtjdXJzb3I6cG9pbnRlcjt2ZXJ0aWNhbC1hbGlnbjpib3R0b219Lm1kYy1jaGVja2JveFtoaWRkZW5de2Rpc3BsYXk6bm9uZX0ubWRjLWNoZWNrYm94Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCAubWRjLWNoZWNrYm94X19mb2N1cy1yaW5nLC5tZGMtY2hlY2tib3g6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1cyAubWRjLWNoZWNrYm94X19mb2N1cy1yaW5ne3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDAsMCwwLDApO2JvcmRlci1yYWRpdXM6NnB4O2JveC1zaXppbmc6Y29udGVudC1ib3g7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7Lm1kYy1jaGVja2JveC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQgLm1kYy1jaGVja2JveF9fZm9jdXMtcmluZywubWRjLWNoZWNrYm94Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXMgLm1kYy1jaGVja2JveF9fZm9jdXMtcmluZ3tib3JkZXItY29sb3I6Q2FudmFzVGV4dH19Lm1kYy1jaGVja2JveC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQgLm1kYy1jaGVja2JveF9fZm9jdXMtcmluZzo6YWZ0ZXIsLm1kYy1jaGVja2JveDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzIC5tZGMtY2hlY2tib3hfX2ZvY3VzLXJpbmc6OmFmdGVye2NvbnRlbnQ6IiI7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDAsMCwwLDApO2JvcmRlci1yYWRpdXM6OHB4O2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO2hlaWdodDpjYWxjKDEwMCUgKyA0cHgpO3dpZHRoOmNhbGMoMTAwJSArIDRweCl9QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7Lm1kYy1jaGVja2JveC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQgLm1kYy1jaGVja2JveF9fZm9jdXMtcmluZzo6YWZ0ZXIsLm1kYy1jaGVja2JveDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzIC5tZGMtY2hlY2tib3hfX2ZvY3VzLXJpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpDYW52YXNUZXh0fX1AbWVkaWEgYWxsIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpey5tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveF9fZm9jdXMtcmluZ3tkaXNwbGF5Om5vbmV9fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKXsubWRjLWNoZWNrYm94X19taXhlZG1hcmt7bWFyZ2luOjAgMXB4fX0ubWRjLWNoZWNrYm94LS1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdDtwb2ludGVyLWV2ZW50czpub25lfS5tZGMtY2hlY2tib3hfX2JhY2tncm91bmR7ZGlzcGxheTppbmxpbmUtZmxleDtwb3NpdGlvbjphYnNvbHV0ZTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MThweDtoZWlnaHQ6MThweDtib3JkZXI6MnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7cG9pbnRlci1ldmVudHM6bm9uZTt3aWxsLWNoYW5nZTpiYWNrZ3JvdW5kLWNvbG9yLGJvcmRlci1jb2xvcjt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgOTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSxib3JkZXItY29sb3IgOTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKX0ubWRjLWNoZWNrYm94X19jaGVja21hcmt7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7d2lkdGg6MTAwJTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDE4MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpfS5tZGMtY2hlY2tib3gtLXVwZ3JhZGVkIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFya3tvcGFjaXR5OjF9Lm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGh7dHJhbnNpdGlvbjpzdHJva2UtZGFzaG9mZnNldCAxODBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTtzdHJva2U6Y3VycmVudENvbG9yO3N0cm9rZS13aWR0aDozLjEycHg7c3Ryb2tlLWRhc2hvZmZzZXQ6MjkuNzgzMzM4NTtzdHJva2UtZGFzaGFycmF5OjI5Ljc4MzMzODV9Lm1kYy1jaGVja2JveF9fbWl4ZWRtYXJre3dpZHRoOjEwMCU7aGVpZ2h0OjA7dHJhbnNmb3JtOnNjYWxlWCgwKSByb3RhdGUoMGRlZyk7Ym9yZGVyLXdpZHRoOjFweDtib3JkZXItc3R5bGU6c29saWQ7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSA5MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpLHRyYW5zZm9ybSA5MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpfS5tZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWNoZWNrZWQgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCwubWRjLWNoZWNrYm94LS1hbmltLXVuY2hlY2tlZC1pbmRldGVybWluYXRlIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsLm1kYy1jaGVja2JveC0tYW5pbS1jaGVja2VkLXVuY2hlY2tlZCAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLC5tZGMtY2hlY2tib3gtLWFuaW0taW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZHthbmltYXRpb24tZHVyYXRpb246MTgwbXM7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXJ9Lm1kYy1jaGVja2JveC0tYW5pbS11bmNoZWNrZWQtY2hlY2tlZCAubWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aHthbmltYXRpb246bWRjLWNoZWNrYm94LXVuY2hlY2tlZC1jaGVja2VkLWNoZWNrbWFyay1wYXRoIDE4MG1zIGxpbmVhciAwczt0cmFuc2l0aW9uOm5vbmV9Lm1kYy1jaGVja2JveC0tYW5pbS11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWRjLWNoZWNrYm94X19taXhlZG1hcmt7YW5pbWF0aW9uOm1kYy1jaGVja2JveC11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmsgOTBtcyBsaW5lYXIgMHM7dHJhbnNpdGlvbjpub25lfS5tZGMtY2hlY2tib3gtLWFuaW0tY2hlY2tlZC11bmNoZWNrZWQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGh7YW5pbWF0aW9uOm1kYy1jaGVja2JveC1jaGVja2VkLXVuY2hlY2tlZC1jaGVja21hcmstcGF0aCA5MG1zIGxpbmVhciAwczt0cmFuc2l0aW9uOm5vbmV9Lm1kYy1jaGVja2JveC0tYW5pbS1jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJre2FuaW1hdGlvbjptZGMtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLWNoZWNrbWFyayA5MG1zIGxpbmVhciAwczt0cmFuc2l0aW9uOm5vbmV9Lm1kYy1jaGVja2JveC0tYW5pbS1jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJre2FuaW1hdGlvbjptZGMtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFyayA5MG1zIGxpbmVhciAwczt0cmFuc2l0aW9uOm5vbmV9Lm1kYy1jaGVja2JveC0tYW5pbS1pbmRldGVybWluYXRlLWNoZWNrZWQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJre2FuaW1hdGlvbjptZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLWNoZWNrbWFyayA1MDBtcyBsaW5lYXIgMHM7dHJhbnNpdGlvbjpub25lfS5tZGMtY2hlY2tib3gtLWFuaW0taW5kZXRlcm1pbmF0ZS1jaGVja2VkIC5tZGMtY2hlY2tib3hfX21peGVkbWFya3thbmltYXRpb246bWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1taXhlZG1hcmsgNTAwbXMgbGluZWFyIDBzO3RyYW5zaXRpb246bm9uZX0ubWRjLWNoZWNrYm94LS1hbmltLWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIC5tZGMtY2hlY2tib3hfX21peGVkbWFya3thbmltYXRpb246bWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkLW1peGVkbWFyayAzMDBtcyBsaW5lYXIgMHM7dHJhbnNpdGlvbjpub25lfS5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmNoZWNrZWR+Lm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCwubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDppbmRldGVybWluYXRlfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2xbZGF0YS1pbmRldGVybWluYXRlPXRydWVdfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmR7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgOTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksYmFja2dyb3VuZC1jb2xvciA5MG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKX0ubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpjaGVja2Vkfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgsLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6aW5kZXRlcm1pbmF0ZX4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoLC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sW2RhdGEtaW5kZXRlcm1pbmF0ZT10cnVlXX4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoe3N0cm9rZS1kYXNob2Zmc2V0OjB9Lm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2x7cG9zaXRpb246YWJzb2x1dGU7bWFyZ2luOjA7cGFkZGluZzowO29wYWNpdHk6MDtjdXJzb3I6aW5oZXJpdH0ubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpkaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdDtwb2ludGVyLWV2ZW50czpub25lfS5tZGMtY2hlY2tib3gtLXRvdWNoe21hcmdpbjpjYWxjKCh2YXIoLS1tZGMtY2hlY2tib3gtc3RhdGUtbGF5ZXItc2l6ZSwgNDhweCkgLSB2YXIoLS1tZGMtY2hlY2tib3gtc3RhdGUtbGF5ZXItc2l6ZSwgNDBweCkpIC8gMil9Lm1kYy1jaGVja2JveC0tdG91Y2ggLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2x7dG9wOmNhbGMoKHZhcigtLW1kYy1jaGVja2JveC1zdGF0ZS1sYXllci1zaXplLCA0MHB4KSAtIHZhcigtLW1kYy1jaGVja2JveC1zdGF0ZS1sYXllci1zaXplLCA0OHB4KSkgLyAyKTtyaWdodDpjYWxjKCh2YXIoLS1tZGMtY2hlY2tib3gtc3RhdGUtbGF5ZXItc2l6ZSwgNDBweCkgLSB2YXIoLS1tZGMtY2hlY2tib3gtc3RhdGUtbGF5ZXItc2l6ZSwgNDhweCkpIC8gMik7bGVmdDpjYWxjKCh2YXIoLS1tZGMtY2hlY2tib3gtc3RhdGUtbGF5ZXItc2l6ZSwgNDBweCkgLSB2YXIoLS1tZGMtY2hlY2tib3gtc3RhdGUtbGF5ZXItc2l6ZSwgNDhweCkpIC8gMik7d2lkdGg6dmFyKC0tbWRjLWNoZWNrYm94LXN0YXRlLWxheWVyLXNpemUsIDQ4cHgpO2hlaWdodDp2YXIoLS1tZGMtY2hlY2tib3gtc3RhdGUtbGF5ZXItc2l6ZSwgNDhweCl9Lm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZH4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFya3t0cmFuc2l0aW9uOm9wYWNpdHkgMTgwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLHRyYW5zZm9ybSAxODBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7b3BhY2l0eToxfS5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmNoZWNrZWR+Lm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCAubWRjLWNoZWNrYm94X19taXhlZG1hcmt7dHJhbnNmb3JtOnNjYWxlWCgxKSByb3RhdGUoLTQ1ZGVnKX0ubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDppbmRldGVybWluYXRlfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sW2RhdGEtaW5kZXRlcm1pbmF0ZT10cnVlXX4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFya3t0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDkwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSksdHJhbnNmb3JtIDkwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSl9Lm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6aW5kZXRlcm1pbmF0ZX4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIC5tZGMtY2hlY2tib3hfX21peGVkbWFyaywubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbFtkYXRhLWluZGV0ZXJtaW5hdGU9dHJ1ZV1+Lm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCAubWRjLWNoZWNrYm94X19taXhlZG1hcmt7dHJhbnNmb3JtOnNjYWxlWCgxKSByb3RhdGUoMGRlZyk7b3BhY2l0eToxfS5tZGMtY2hlY2tib3gubWRjLWNoZWNrYm94LS11cGdyYWRlZCAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLC5tZGMtY2hlY2tib3gubWRjLWNoZWNrYm94LS11cGdyYWRlZCAubWRjLWNoZWNrYm94X19jaGVja21hcmssLm1kYy1jaGVja2JveC5tZGMtY2hlY2tib3gtLXVwZ3JhZGVkIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoLC5tZGMtY2hlY2tib3gubWRjLWNoZWNrYm94LS11cGdyYWRlZCAubWRjLWNoZWNrYm94X19taXhlZG1hcmt7dHJhbnNpdGlvbjpub25lfS5tZGMtZm9ybS1maWVsZHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1kYy1mb3JtLWZpZWxkW2hpZGRlbl17ZGlzcGxheTpub25lfS5tZGMtZm9ybS1maWVsZD5sYWJlbHttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDphdXRvO3BhZGRpbmctbGVmdDo0cHg7cGFkZGluZy1yaWdodDowO29yZGVyOjB9W2Rpcj1ydGxdIC5tZGMtZm9ybS1maWVsZD5sYWJlbCwubWRjLWZvcm0tZmllbGQ+bGFiZWxbZGlyPXJ0bF17bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6MH1bZGlyPXJ0bF0gLm1kYy1mb3JtLWZpZWxkPmxhYmVsLC5tZGMtZm9ybS1maWVsZD5sYWJlbFtkaXI9cnRsXXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjRweH0ubWRjLWZvcm0tZmllbGQtLW5vd3JhcD5sYWJlbHt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXB9Lm1kYy1mb3JtLWZpZWxkLS1hbGlnbi1lbmQ+bGFiZWx7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjRweDtvcmRlcjotMX1bZGlyPXJ0bF0gLm1kYy1mb3JtLWZpZWxkLS1hbGlnbi1lbmQ+bGFiZWwsLm1kYy1mb3JtLWZpZWxkLS1hbGlnbi1lbmQ+bGFiZWxbZGlyPXJ0bF17bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6YXV0b31bZGlyPXJ0bF0gLm1kYy1mb3JtLWZpZWxkLS1hbGlnbi1lbmQ+bGFiZWwsLm1kYy1mb3JtLWZpZWxkLS1hbGlnbi1lbmQ+bGFiZWxbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjRweDtwYWRkaW5nLXJpZ2h0OjB9Lm1kYy1mb3JtLWZpZWxkLS1zcGFjZS1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5tZGMtZm9ybS1maWVsZC0tc3BhY2UtYmV0d2Vlbj5sYWJlbHttYXJnaW46MH1bZGlyPXJ0bF0gLm1kYy1mb3JtLWZpZWxkLS1zcGFjZS1iZXR3ZWVuPmxhYmVsLC5tZGMtZm9ybS1maWVsZC0tc3BhY2UtYmV0d2Vlbj5sYWJlbFtkaXI9cnRsXXttYXJnaW46MH0ubWF0LW1kYy1jaGVja2JveHtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKX0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94e3BhZGRpbmc6Y2FsYygodmFyKC0tbWRjLWNoZWNrYm94LXN0YXRlLWxheWVyLXNpemUsIDQwcHgpIC0gMThweCkgLyAyKTttYXJnaW46Y2FsYygodmFyKC0tbWRjLWNoZWNrYm94LXN0YXRlLWxheWVyLXNpemUsIDQwcHgpIC0gdmFyKC0tbWRjLWNoZWNrYm94LXN0YXRlLWxheWVyLXNpemUsIDQwcHgpKSAvIDIpfS5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2xbZGlzYWJsZWRdOm5vdCg6Y2hlY2tlZCk6bm90KDppbmRldGVybWluYXRlKTpub3QoW2RhdGEtaW5kZXRlcm1pbmF0ZT10cnVlXSl+Lm1kYy1jaGVja2JveF9fYmFja2dyb3VuZHtib3JkZXItY29sb3I6dmFyKC0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjM4KSk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sW2Rpc2FibGVkXTpjaGVja2Vkfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsLm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbFtkaXNhYmxlZF06aW5kZXRlcm1pbmF0ZX4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLC5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2xbZGF0YS1pbmRldGVybWluYXRlPXRydWVdW2Rpc2FibGVkXX4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5ke2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMzgpKX0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWR+Lm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCAubWRjLWNoZWNrYm94X19jaGVja21hcmt7Y29sb3I6dmFyKC0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvciwgI2ZmZil9Lm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJre2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtY2hlY2ttYXJrLWNvbG9yLCAjZmZmKX0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmRpc2FibGVkfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJre2NvbG9yOnZhcigtLW1kYy1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1jaGVja21hcmstY29sb3IsICNmZmYpfS5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZGlzYWJsZWR+Lm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCAubWRjLWNoZWNrYm94X19taXhlZG1hcmt7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1jaGVja21hcmstY29sb3IsICNmZmYpfS5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDpub3QoOmNoZWNrZWQpOm5vdCg6aW5kZXRlcm1pbmF0ZSk6bm90KFtkYXRhLWluZGV0ZXJtaW5hdGU9dHJ1ZV0pfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmR7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWljb24tY29sb3IsIHJnYmEoMCwgMCwgMCwgMC41NCkpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOmNoZWNrZWR+Lm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCwubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6aW5kZXRlcm1pbmF0ZX4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLC5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2xbZGF0YS1pbmRldGVybWluYXRlPXRydWVdOmVuYWJsZWR+Lm1kYy1jaGVja2JveF9fYmFja2dyb3VuZHtib3JkZXItY29sb3I6dmFyKC0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWljb24tY29sb3IsIHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1jaGVja2JveC1zZWxlY3RlZC1pY29uLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KSl9QGtleWZyYW1lcyBtZGMtY2hlY2tib3gtZmFkZS1pbi1iYWNrZ3JvdW5kLThBMDAwMDAwRkYwMTg3ODYwMDAwMDAwMEZGMDE4Nzg2ezAle2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1pY29uLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuNTQpKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fTUwJXtib3JkZXItY29sb3I6dmFyKC0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWljb24tY29sb3IsIHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1jaGVja2JveC1zZWxlY3RlZC1pY29uLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KSl9fUBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmQtOEEwMDAwMDBGRjAxODc4NjAwMDAwMDAwRkYwMTg3ODZ7MCUsODAle2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaWNvbi1jb2xvciwgdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4NikpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWljb24tY29sb3IsIHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpKX0xMDAle2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1pY29uLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuNTQpKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fX0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94Lm1kYy1jaGVja2JveC0tYW5pbS11bmNoZWNrZWQtY2hlY2tlZCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsLm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveC5tZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZH4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5ke2FuaW1hdGlvbi1uYW1lOm1kYy1jaGVja2JveC1mYWRlLWluLWJhY2tncm91bmQtOEEwMDAwMDBGRjAxODc4NjAwMDAwMDAwRkYwMTg3ODZ9Lm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveC5tZGMtY2hlY2tib3gtLWFuaW0tY2hlY2tlZC11bmNoZWNrZWQgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZH4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLC5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3gubWRjLWNoZWNrYm94LS1hbmltLWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWR+Lm1kYy1jaGVja2JveF9fYmFja2dyb3VuZHthbmltYXRpb24tbmFtZTptZGMtY2hlY2tib3gtZmFkZS1vdXQtYmFja2dyb3VuZC04QTAwMDAwMEZGMDE4Nzg2MDAwMDAwMDBGRjAxODc4Nn0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94OmhvdmVyIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6bm90KDpjaGVja2VkKTpub3QoOmluZGV0ZXJtaW5hdGUpOm5vdChbZGF0YS1pbmRldGVybWluYXRlPXRydWVdKX4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5ke2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KSk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94OmhvdmVyIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6Y2hlY2tlZH4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLC5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3g6aG92ZXIgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDppbmRldGVybWluYXRlfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsLm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveDpob3ZlciAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbFtkYXRhLWluZGV0ZXJtaW5hdGU9dHJ1ZV06ZW5hYmxlZH4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5ke2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvciwgdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4NikpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3IsIHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpKX1Aa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1mYWRlLWluLWJhY2tncm91bmQtRkYwMTg3ODZGRjAxODc4NjAwMDAwMDAwRkYwMTg3ODZ7MCV7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3IsIHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fTUwJXtib3JkZXItY29sb3I6dmFyKC0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3IsIHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1jaGVja2JveC1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KSl9fUBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmQtRkYwMTg3ODZGRjAxODc4NjAwMDAwMDAwRkYwMTg3ODZ7MCUsODAle2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvciwgdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4NikpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3IsIHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpKX0xMDAle2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KSk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH19Lm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveDpob3Zlci5tZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWNoZWNrZWQgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZH4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLC5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3g6aG92ZXIubWRjLWNoZWNrYm94LS1hbmltLXVuY2hlY2tlZC1pbmRldGVybWluYXRlIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWR+Lm1kYy1jaGVja2JveF9fYmFja2dyb3VuZHthbmltYXRpb24tbmFtZTptZGMtY2hlY2tib3gtZmFkZS1pbi1iYWNrZ3JvdW5kLUZGMDE4Nzg2RkYwMTg3ODYwMDAwMDAwMEZGMDE4Nzg2fS5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3g6aG92ZXIubWRjLWNoZWNrYm94LS1hbmltLWNoZWNrZWQtdW5jaGVja2VkIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWR+Lm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCwubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94OmhvdmVyLm1kYy1jaGVja2JveC0tYW5pbS1pbmRldGVybWluYXRlLXVuY2hlY2tlZCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmR7YW5pbWF0aW9uLW5hbWU6bWRjLWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmQtRkYwMTg3ODZGRjAxODc4NjAwMDAwMDAwRkYwMTg3ODZ9Lm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDpub3QoOmNoZWNrZWQpOm5vdCg6aW5kZXRlcm1pbmF0ZSk6bm90KFtkYXRhLWluZGV0ZXJtaW5hdGU9dHJ1ZV0pfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsLm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6bm90KDpjaGVja2VkKTpub3QoOmluZGV0ZXJtaW5hdGUpOm5vdChbZGF0YS1pbmRldGVybWluYXRlPXRydWVdKX4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5ke2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KSk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOmNoZWNrZWR+Lm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCwubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOmluZGV0ZXJtaW5hdGV+Lm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCwubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbFtkYXRhLWluZGV0ZXJtaW5hdGU9dHJ1ZV06ZW5hYmxlZH4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLC5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3g6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1cyAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOmNoZWNrZWR+Lm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCwubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXMgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDppbmRldGVybWluYXRlfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsLm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sW2RhdGEtaW5kZXRlcm1pbmF0ZT10cnVlXTplbmFibGVkfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmR7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvciwgdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4NikpfUBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZC1GRjAxODc4NkZGMDE4Nzg2MDAwMDAwMDBGRjAxODc4NnswJXtib3JkZXItY29sb3I6dmFyKC0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvciwgdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4NikpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9NTAle2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvciwgdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4NikpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3IsIHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpKX19QGtleWZyYW1lcyBtZGMtY2hlY2tib3gtZmFkZS1vdXQtYmFja2dyb3VuZC1GRjAxODc4NkZGMDE4Nzg2MDAwMDAwMDBGRjAxODc4NnswJSw4MCV7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvciwgdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4NikpfTEwMCV7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3IsIHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fX0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZC5tZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWNoZWNrZWQgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZH4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLC5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkLm1kYy1jaGVja2JveC0tYW5pbS11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsLm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzLm1kYy1jaGVja2JveC0tYW5pbS11bmNoZWNrZWQtY2hlY2tlZCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsLm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzLm1kYy1jaGVja2JveC0tYW5pbS11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmR7YW5pbWF0aW9uLW5hbWU6bWRjLWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZC1GRjAxODc4NkZGMDE4Nzg2MDAwMDAwMDBGRjAxODc4Nn0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZC5tZGMtY2hlY2tib3gtLWFuaW0tY2hlY2tlZC11bmNoZWNrZWQgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZH4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLC5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkLm1kYy1jaGVja2JveC0tYW5pbS1pbmRldGVybWluYXRlLXVuY2hlY2tlZCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsLm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzLm1kYy1jaGVja2JveC0tYW5pbS1jaGVja2VkLXVuY2hlY2tlZCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsLm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzLm1kYy1jaGVja2JveC0tYW5pbS1pbmRldGVybWluYXRlLXVuY2hlY2tlZCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmR7YW5pbWF0aW9uLW5hbWU6bWRjLWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmQtRkYwMTg3ODZGRjAxODc4NjAwMDAwMDAwRkYwMTg3ODZ9Lm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveDpub3QoOmRpc2FibGVkKTphY3RpdmUgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDpub3QoOmNoZWNrZWQpOm5vdCg6aW5kZXRlcm1pbmF0ZSk6bm90KFtkYXRhLWluZGV0ZXJtaW5hdGU9dHJ1ZV0pfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmR7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjU0KSk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94Om5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOmNoZWNrZWR+Lm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCwubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94Om5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOmluZGV0ZXJtaW5hdGV+Lm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCwubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94Om5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbFtkYXRhLWluZGV0ZXJtaW5hdGU9dHJ1ZV06ZW5hYmxlZH4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5ke2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KSl9QGtleWZyYW1lcyBtZGMtY2hlY2tib3gtZmFkZS1pbi1iYWNrZ3JvdW5kLThBMDAwMDAwRkYwMTg3ODYwMDAwMDAwMEZGMDE4Nzg2ezAle2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3IsIHJnYmEoMCwgMCwgMCwgMC41NCkpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9NTAle2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KSl9fUBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmQtOEEwMDAwMDBGRjAxODc4NjAwMDAwMDAwRkYwMTg3ODZ7MCUsODAle2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KSl9MTAwJXtib3JkZXItY29sb3I6dmFyKC0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuNTQpKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fX0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94Om5vdCg6ZGlzYWJsZWQpOmFjdGl2ZS5tZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWNoZWNrZWQgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZH4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLC5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3g6bm90KDpkaXNhYmxlZCk6YWN0aXZlLm1kYy1jaGVja2JveC0tYW5pbS11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmR7YW5pbWF0aW9uLW5hbWU6bWRjLWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZC04QTAwMDAwMEZGMDE4Nzg2MDAwMDAwMDBGRjAxODc4Nn0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94Om5vdCg6ZGlzYWJsZWQpOmFjdGl2ZS5tZGMtY2hlY2tib3gtLWFuaW0tY2hlY2tlZC11bmNoZWNrZWQgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZH4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLC5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3g6bm90KDpkaXNhYmxlZCk6YWN0aXZlLm1kYy1jaGVja2JveC0tYW5pbS1pbmRldGVybWluYXRlLXVuY2hlY2tlZCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkfi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmR7YW5pbWF0aW9uLW5hbWU6bWRjLWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmQtOEEwMDAwMDBGRjAxODc4NjAwMDAwMDAwRkYwMTg3ODZ9Lm1hdC1tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5ke3RvcDpjYWxjKCh2YXIoLS1tZGMtY2hlY2tib3gtc3RhdGUtbGF5ZXItc2l6ZSwgNDBweCkgLSAxOHB4KSAvIDIpO2xlZnQ6Y2FsYygodmFyKC0tbWRjLWNoZWNrYm94LXN0YXRlLWxheWVyLXNpemUsIDQwcHgpIC0gMThweCkgLyAyKX0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9se3RvcDpjYWxjKCh2YXIoLS1tZGMtY2hlY2tib3gtc3RhdGUtbGF5ZXItc2l6ZSwgNDBweCkgLSB2YXIoLS1tZGMtY2hlY2tib3gtc3RhdGUtbGF5ZXItc2l6ZSwgNDBweCkpIC8gMik7cmlnaHQ6Y2FsYygodmFyKC0tbWRjLWNoZWNrYm94LXN0YXRlLWxheWVyLXNpemUsIDQwcHgpIC0gdmFyKC0tbWRjLWNoZWNrYm94LXN0YXRlLWxheWVyLXNpemUsIDQwcHgpKSAvIDIpO2xlZnQ6Y2FsYygodmFyKC0tbWRjLWNoZWNrYm94LXN0YXRlLWxheWVyLXNpemUsIDQwcHgpIC0gdmFyKC0tbWRjLWNoZWNrYm94LXN0YXRlLWxheWVyLXNpemUsIDQwcHgpKSAvIDIpO3dpZHRoOnZhcigtLW1kYy1jaGVja2JveC1zdGF0ZS1sYXllci1zaXplLCA0MHB4KTtoZWlnaHQ6dmFyKC0tbWRjLWNoZWNrYm94LXN0YXRlLWxheWVyLXNpemUsIDQwcHgpfS5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3g6aG92ZXIgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6bm90KFtkaXNhYmxlZF0pfi5tZGMtY2hlY2tib3hfX3JpcHBsZXtvcGFjaXR5Oi4wNDt0cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNpdGlvbjpvcGFjaXR5IDgwbXMgMCBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSx0cmFuc2Zvcm0gODBtcyAwIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpfS5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6bm90KFtkaXNhYmxlZF0pOmZvY3Vzfi5tZGMtY2hlY2tib3hfX3JpcHBsZXtvcGFjaXR5Oi4xNn0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5key13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OmV4YWN0O2NvbG9yLWFkanVzdDpleGFjdH0ubWF0LW1kYy1jaGVja2JveC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAqLC5tYXQtbWRjLWNoZWNrYm94Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlICo6OmJlZm9yZXt0cmFuc2l0aW9uOm5vbmUgIWltcG9ydGFudDthbmltYXRpb246bm9uZSAhaW1wb3J0YW50fS5tYXQtbWRjLWNoZWNrYm94IGxhYmVse2N1cnNvcjpwb2ludGVyfS5tYXQtbWRjLWNoZWNrYm94Lm1hdC1tZGMtY2hlY2tib3gtZGlzYWJsZWQgbGFiZWx7Y3Vyc29yOmRlZmF1bHR9Lm1hdC1tZGMtY2hlY2tib3ggbGFiZWw6ZW1wdHl7ZGlzcGxheTpub25lfS5tYXQtbWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmZvY3VzOmVuYWJsZWQ6bm90KDpjaGVja2VkKTpub3QoOmluZGV0ZXJtaW5hdGUpOm5vdChbZGF0YS1pbmRldGVybWluYXRlPXRydWVdKX4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5ke2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yLCBibGFjayl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1kYy1jaGVja2JveC5tYXQtbWRjLWNoZWNrYm94LWRpc2FibGVke29wYWNpdHk6LjV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94X19jaGVja21hcmt7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtY2hlY2ttYXJrLWNvbG9yOiBDYW52YXNUZXh0Oy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjogQ2FudmFzVGV4dH0ubWF0LW1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94X19yaXBwbGV7b3BhY2l0eTowfS5tYXQtbWRjLWNoZWNrYm94LXJpcHBsZSwubWRjLWNoZWNrYm94X19yaXBwbGV7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZX0ubWF0LW1kYy1jaGVja2JveC1yaXBwbGU6bm90KDplbXB0eSksLm1kYy1jaGVja2JveF9fcmlwcGxlOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtbWRjLWNoZWNrYm94LXRvdWNoLXRhcmdldHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2hlaWdodDo0OHB4O2xlZnQ6NTAlO3dpZHRoOjQ4cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKX0ubWF0LW1kYy1jaGVja2JveC1yaXBwbGU6OmJlZm9yZXtib3JkZXItcmFkaXVzOjUwJX0ubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpmb2N1c34ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXtjb250ZW50OiIifSddLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLEx4ZT17cHJvdmlkZTpJbyx1c2VFeGlzdGluZzpXbigoKT0+QnhlKSxtdWx0aTohMH0sQnhlPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBxMnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybih0fHwodD1YbihuKSkpKGl8fG4pfX0oKSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyJtYXQtY2hlY2tib3giLCJyZXF1aXJlZCIsIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsibWF0LWNoZWNrYm94IiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbCIsIiJdLFsibWF0LWNoZWNrYm94IiwicmVxdWlyZWQiLCIiLCJuZ01vZGVsIiwiIl1dLGZlYXR1cmVzOltWdChbTHhlXSksWGVdfSksbn0pKCksWHE9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe30pLG59KSgpLGtjPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltkbixfYSxYcSxkbixYcV19KSxufSkoKSxRcT16YSh7cGFzc2l2ZTohMH0pLFpxPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpKXt0aGlzLl9wbGF0Zm9ybT1lLHRoaXMuX25nWm9uZT1pLHRoaXMuX21vbml0b3JlZEVsZW1lbnRzPW5ldyBNYXB9bW9uaXRvcihlKXtpZighdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKXJldHVybiBLcjtsZXQgaT1VYShlKSxyPXRoaXMuX21vbml0b3JlZEVsZW1lbnRzLmdldChpKTtpZihyKXJldHVybiByLnN1YmplY3Q7bGV0IG89bmV3IEVlLGE9ImNkay10ZXh0LWZpZWxkLWF1dG9maWxsZWQiLHM9bD0+eyJjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCIhPT1sLmFuaW1hdGlvbk5hbWV8fGkuY2xhc3NMaXN0LmNvbnRhaW5zKGEpPyJjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQiPT09bC5hbmltYXRpb25OYW1lJiZpLmNsYXNzTGlzdC5jb250YWlucyhhKSYmKGkuY2xhc3NMaXN0LnJlbW92ZShhKSx0aGlzLl9uZ1pvbmUucnVuKCgpPT5vLm5leHQoe3RhcmdldDpsLnRhcmdldCxpc0F1dG9maWxsZWQ6ITF9KSkpOihpLmNsYXNzTGlzdC5hZGQoYSksdGhpcy5fbmdab25lLnJ1bigoKT0+by5uZXh0KHt0YXJnZXQ6bC50YXJnZXQsaXNBdXRvZmlsbGVkOiEwfSkpKX07cmV0dXJuIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e2kuYWRkRXZlbnRMaXN0ZW5lcigiYW5pbWF0aW9uc3RhcnQiLHMsUXEpLGkuY2xhc3NMaXN0LmFkZCgiY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkIil9KSx0aGlzLl9tb25pdG9yZWRFbGVtZW50cy5zZXQoaSx7c3ViamVjdDpvLHVubGlzdGVuOigpPT57aS5yZW1vdmVFdmVudExpc3RlbmVyKCJhbmltYXRpb25zdGFydCIscyxRcSl9fSksb31zdG9wTW9uaXRvcmluZyhlKXtsZXQgaT1VYShlKSxyPXRoaXMuX21vbml0b3JlZEVsZW1lbnRzLmdldChpKTtyJiYoci51bmxpc3RlbigpLHIuc3ViamVjdC5jb21wbGV0ZSgpLGkuY2xhc3NMaXN0LnJlbW92ZSgiY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkIiksaS5jbGFzc0xpc3QucmVtb3ZlKCJjZGstdGV4dC1maWVsZC1hdXRvZmlsbGVkIiksdGhpcy5fbW9uaXRvcmVkRWxlbWVudHMuZGVsZXRlKGkpKX1uZ09uRGVzdHJveSgpe3RoaXMuX21vbml0b3JlZEVsZW1lbnRzLmZvckVhY2goKGUsaSk9PnRoaXMuc3RvcE1vbml0b3JpbmcoaSkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKFZuKSxPKG90KSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCksS3E9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe30pLG59KSgpLEh4ZT1uZXcgdGUoIk1BVF9JTlBVVF9WQUxVRV9BQ0NFU1NPUiIpLHp4ZT1bImJ1dHRvbiIsImNoZWNrYm94IiwiZmlsZSIsImhpZGRlbiIsImltYWdlIiwicmFkaW8iLCJyYW5nZSIsInJlc2V0Iiwic3VibWl0Il0sVXhlPTAsanhlPWhnKGNsYXNze2NvbnN0cnVjdG9yKG4sdCxlLGkpe3RoaXMuX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcj1uLHRoaXMuX3BhcmVudEZvcm09dCx0aGlzLl9wYXJlbnRGb3JtR3JvdXA9ZSx0aGlzLm5nQ29udHJvbD1pLHRoaXMuc3RhdGVDaGFuZ2VzPW5ldyBFZX19KSxxdT0oKCk9PntjbGFzcyBuIGV4dGVuZHMganhle2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQoZSl7dGhpcy5fZGlzYWJsZWQ9dnQoZSksdGhpcy5mb2N1c2VkJiYodGhpcy5mb2N1c2VkPSExLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKSl9Z2V0IGlkKCl7cmV0dXJuIHRoaXMuX2lkfXNldCBpZChlKXt0aGlzLl9pZD1lfHx0aGlzLl91aWR9Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuX3JlcXVpcmVkPz90aGlzLm5nQ29udHJvbD8uY29udHJvbD8uaGFzVmFsaWRhdG9yKGlsLnJlcXVpcmVkKT8/ITF9c2V0IHJlcXVpcmVkKGUpe3RoaXMuX3JlcXVpcmVkPXZ0KGUpfWdldCB0eXBlKCl7cmV0dXJuIHRoaXMuX3R5cGV9c2V0IHR5cGUoZSl7dGhpcy5fdHlwZT1lfHwidGV4dCIsdGhpcy5fdmFsaWRhdGVUeXBlKCksIXRoaXMuX2lzVGV4dGFyZWEmJnMyKCkuaGFzKHRoaXMuX3R5cGUpJiYodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnR5cGU9dGhpcy5fdHlwZSl9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuX2lucHV0VmFsdWVBY2Nlc3Nvci52YWx1ZX1zZXQgdmFsdWUoZSl7ZSE9PXRoaXMudmFsdWUmJih0aGlzLl9pbnB1dFZhbHVlQWNjZXNzb3IudmFsdWU9ZSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCkpfWdldCByZWFkb25seSgpe3JldHVybiB0aGlzLl9yZWFkb25seX1zZXQgcmVhZG9ubHkoZSl7dGhpcy5fcmVhZG9ubHk9dnQoZSl9Y29uc3RydWN0b3IoZSxpLHIsbyxhLHMsbCxjLGQsdSl7c3VwZXIocyxvLGEsciksdGhpcy5fZWxlbWVudFJlZj1lLHRoaXMuX3BsYXRmb3JtPWksdGhpcy5fYXV0b2ZpbGxNb25pdG9yPWMsdGhpcy5fZm9ybUZpZWxkPXUsdGhpcy5fdWlkPSJtYXQtaW5wdXQtIitVeGUrKyx0aGlzLmZvY3VzZWQ9ITEsdGhpcy5zdGF0ZUNoYW5nZXM9bmV3IEVlLHRoaXMuY29udHJvbFR5cGU9Im1hdC1pbnB1dCIsdGhpcy5hdXRvZmlsbGVkPSExLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuX3R5cGU9InRleHQiLHRoaXMuX3JlYWRvbmx5PSExLHRoaXMuX25ldmVyRW1wdHlJbnB1dFR5cGVzPVsiZGF0ZSIsImRhdGV0aW1lIiwiZGF0ZXRpbWUtbG9jYWwiLCJtb250aCIsInRpbWUiLCJ3ZWVrIl0uZmlsdGVyKG09PnMyKCkuaGFzKG0pKSx0aGlzLl9pT1NLZXl1cExpc3RlbmVyPW09PntsZXQgXz1tLnRhcmdldDshXy52YWx1ZSYmMD09PV8uc2VsZWN0aW9uU3RhcnQmJjA9PT1fLnNlbGVjdGlvbkVuZCYmKF8uc2V0U2VsZWN0aW9uUmFuZ2UoMSwxKSxfLnNldFNlbGVjdGlvblJhbmdlKDAsMCkpfTtsZXQgcD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsaD1wLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7dGhpcy5faW5wdXRWYWx1ZUFjY2Vzc29yPWx8fHAsdGhpcy5fcHJldmlvdXNOYXRpdmVWYWx1ZT10aGlzLnZhbHVlLHRoaXMuaWQ9dGhpcy5pZCxpLklPUyYmZC5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e2UubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5faU9TS2V5dXBMaXN0ZW5lcil9KSx0aGlzLl9pc1NlcnZlcj0hdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyLHRoaXMuX2lzTmF0aXZlU2VsZWN0PSJzZWxlY3QiPT09aCx0aGlzLl9pc1RleHRhcmVhPSJ0ZXh0YXJlYSI9PT1oLHRoaXMuX2lzSW5Gb3JtRmllbGQ9ISF1LHRoaXMuX2lzTmF0aXZlU2VsZWN0JiYodGhpcy5jb250cm9sVHlwZT1wLm11bHRpcGxlPyJtYXQtbmF0aXZlLXNlbGVjdC1tdWx0aXBsZSI6Im1hdC1uYXRpdmUtc2VsZWN0Iil9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyJiZ0aGlzLl9hdXRvZmlsbE1vbml0b3IubW9uaXRvcih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLnN1YnNjcmliZShlPT57dGhpcy5hdXRvZmlsbGVkPWUuaXNBdXRvZmlsbGVkLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX0pfW5nT25DaGFuZ2VzKCl7dGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfW5nT25EZXN0cm95KCl7dGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKSx0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJnRoaXMuX2F1dG9maWxsTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLHRoaXMuX3BsYXRmb3JtLklPUyYmdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLl9pT1NLZXl1cExpc3RlbmVyKX1uZ0RvQ2hlY2soKXt0aGlzLm5nQ29udHJvbCYmKHRoaXMudXBkYXRlRXJyb3JTdGF0ZSgpLG51bGwhPT10aGlzLm5nQ29udHJvbC5kaXNhYmxlZCYmdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQhPT10aGlzLmRpc2FibGVkJiYodGhpcy5kaXNhYmxlZD10aGlzLm5nQ29udHJvbC5kaXNhYmxlZCx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCkpKSx0aGlzLl9kaXJ0eUNoZWNrTmF0aXZlVmFsdWUoKSx0aGlzLl9kaXJ0eUNoZWNrUGxhY2Vob2xkZXIoKX1mb2N1cyhlKXt0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoZSl9X2ZvY3VzQ2hhbmdlZChlKXtlIT09dGhpcy5mb2N1c2VkJiYodGhpcy5mb2N1c2VkPWUsdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKX1fb25JbnB1dCgpe31fZGlydHlDaGVja05hdGl2ZVZhbHVlKCl7bGV0IGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlO3RoaXMuX3ByZXZpb3VzTmF0aXZlVmFsdWUhPT1lJiYodGhpcy5fcHJldmlvdXNOYXRpdmVWYWx1ZT1lLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKSl9X2RpcnR5Q2hlY2tQbGFjZWhvbGRlcigpe2xldCBlPXRoaXMuX2dldFBsYWNlaG9sZGVyKCk7aWYoZSE9PXRoaXMuX3ByZXZpb3VzUGxhY2Vob2xkZXIpe2xldCBpPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDt0aGlzLl9wcmV2aW91c1BsYWNlaG9sZGVyPWUsZT9pLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLGUpOmkucmVtb3ZlQXR0cmlidXRlKCJwbGFjZWhvbGRlciIpfX1fZ2V0UGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy5wbGFjZWhvbGRlcnx8bnVsbH1fdmFsaWRhdGVUeXBlKCl7enhlLmluZGV4T2YodGhpcy5fdHlwZSl9X2lzTmV2ZXJFbXB0eSgpe3JldHVybiB0aGlzLl9uZXZlckVtcHR5SW5wdXRUeXBlcy5pbmRleE9mKHRoaXMuX3R5cGUpPi0xfV9pc0JhZElucHV0KCl7bGV0IGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbGlkaXR5O3JldHVybiBlJiZlLmJhZElucHV0fWdldCBlbXB0eSgpe3JldHVybiEodGhpcy5faXNOZXZlckVtcHR5KCl8fHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZXx8dGhpcy5faXNCYWRJbnB1dCgpfHx0aGlzLmF1dG9maWxsZWQpfWdldCBzaG91bGRMYWJlbEZsb2F0KCl7aWYodGhpcy5faXNOYXRpdmVTZWxlY3Qpe2xldCBlPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxpPWUub3B0aW9uc1swXTtyZXR1cm4gdGhpcy5mb2N1c2VkfHxlLm11bHRpcGxlfHwhdGhpcy5lbXB0eXx8ISEoZS5zZWxlY3RlZEluZGV4Pi0xJiZpJiZpLmxhYmVsKX1yZXR1cm4gdGhpcy5mb2N1c2VkfHwhdGhpcy5lbXB0eX1zZXREZXNjcmliZWRCeUlkcyhlKXtlLmxlbmd0aD90aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWRlc2NyaWJlZGJ5IixlLmpvaW4oIiAiKSk6dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1kZXNjcmliZWRieSIpfW9uQ29udGFpbmVyQ2xpY2soKXt0aGlzLmZvY3VzZWR8fHRoaXMuZm9jdXMoKX1faXNJbmxpbmVTZWxlY3QoKXtsZXQgZT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7cmV0dXJuIHRoaXMuX2lzTmF0aXZlU2VsZWN0JiYoZS5tdWx0aXBsZXx8ZS5zaXplPjEpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSxDKFZuKSxDKHFhLDEwKSxDKENnLDgpLEMoTWcsOCksQyhFaCksQyhIeGUsMTApLEMoWnEpLEMob3QpLEMoUGgsOCkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyJpbnB1dCIsIm1hdElucHV0IiwiIl0sWyJ0ZXh0YXJlYSIsIm1hdElucHV0IiwiIl0sWyJzZWxlY3QiLCJtYXROYXRpdmVDb250cm9sIiwiIl0sWyJpbnB1dCIsIm1hdE5hdGl2ZUNvbnRyb2wiLCIiXSxbInRleHRhcmVhIiwibWF0TmF0aXZlQ29udHJvbCIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1tZGMtaW5wdXQtZWxlbWVudCJdLGhvc3RWYXJzOjE4LGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezEmZSYmQSgiZm9jdXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGkuX2ZvY3VzQ2hhbmdlZCghMCl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gaS5fZm9jdXNDaGFuZ2VkKCExKX0pKCJpbnB1dCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5fb25JbnB1dCgpfSksMiZlJiYod28oImlkIixpLmlkKSgiZGlzYWJsZWQiLGkuZGlzYWJsZWQpKCJyZXF1aXJlZCIsaS5yZXF1aXJlZCksQmUoIm5hbWUiLGkubmFtZXx8bnVsbCkoInJlYWRvbmx5IixpLnJlYWRvbmx5JiYhaS5faXNOYXRpdmVTZWxlY3R8fG51bGwpKCJhcmlhLWludmFsaWQiLGkuZW1wdHkmJmkucmVxdWlyZWQ/bnVsbDppLmVycm9yU3RhdGUpKCJhcmlhLXJlcXVpcmVkIixpLnJlcXVpcmVkKSgiaWQiLGkuaWQpLG50KCJtYXQtaW5wdXQtc2VydmVyIixpLl9pc1NlcnZlcikoIm1hdC1tZGMtZm9ybS1maWVsZC10ZXh0YXJlYS1jb250cm9sIixpLl9pc0luRm9ybUZpZWxkJiZpLl9pc1RleHRhcmVhKSgibWF0LW1kYy1mb3JtLWZpZWxkLWlucHV0LWNvbnRyb2wiLGkuX2lzSW5Gb3JtRmllbGQpKCJtZGMtdGV4dC1maWVsZF9faW5wdXQiLGkuX2lzSW5Gb3JtRmllbGQpKCJtYXQtbWRjLW5hdGl2ZS1zZWxlY3QtaW5saW5lIixpLl9pc0lubGluZVNlbGVjdCgpKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixpZDoiaWQiLHBsYWNlaG9sZGVyOiJwbGFjZWhvbGRlciIsbmFtZToibmFtZSIscmVxdWlyZWQ6InJlcXVpcmVkIix0eXBlOiJ0eXBlIixlcnJvclN0YXRlTWF0Y2hlcjoiZXJyb3JTdGF0ZU1hdGNoZXIiLHVzZXJBcmlhRGVzY3JpYmVkQnk6WyJhcmlhLWRlc2NyaWJlZGJ5IiwidXNlckFyaWFEZXNjcmliZWRCeSJdLHZhbHVlOiJ2YWx1ZSIscmVhZG9ubHk6InJlYWRvbmx5In0sZXhwb3J0QXM6WyJtYXRJbnB1dCJdLGZlYXR1cmVzOltWdChbe3Byb3ZpZGU6WXYsdXNlRXhpc3Rpbmc6bn1dKSxYZSxxdF19KSxufSkoKSxybD0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbZG4sUXYsUXYsS3EsZG5dfSksbn0pKCk7ZnVuY3Rpb24gR3hlKG4sdCl7aWYoMSZuJiYoZigwLCJtYXQtZXJyb3IiKSxUKDEpLGcoKSksMiZuKXtsZXQgZT13KCk7digxKSxWZSgiIFJlbG9hZCBwZXJpb2QgaGFzIHRvIGJlIG1pbmltdW0gb2YgIixlLk1JTl9SRUxPQURfUEVSSU9EX0lOX1MsIiBzZWNvbmRzLiAiKX19ZnVuY3Rpb24gV3hlKG4sdCl7MSZuJiYoZigwLCJtYXQtZXJyb3IiKSxUKDEsIiBQYWdlIHNpemUgaGFzIHRvIGJlIGEgcG9zaXRpdmUgaW50ZWdlci4gIiksZygpKX12YXIgSnE9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMucmVsb2FkVG9nZ2xlZD1uZXcgRix0aGlzLnJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkPW5ldyBGLHRoaXMucGFnZVNpemVDaGFuZ2VkPW5ldyBGLHRoaXMuTUlOX1JFTE9BRF9QRVJJT0RfSU5fUz0zMCx0aGlzLnJlbG9hZFBlcmlvZENvbnRyb2w9bmV3IG55KHRoaXMuTUlOX1JFTE9BRF9QRVJJT0RfSU5fUyxbaWwucmVxdWlyZWQsaWwubWluKHRoaXMuTUlOX1JFTE9BRF9QRVJJT0RfSU5fUyldKSx0aGlzLnBhZ2luYXRpb25Db250cm9sPW5ldyBueSgxLFtpbC5yZXF1aXJlZCxpbC5taW4oMSksbj0+e2xldCB0PU51bWJlcihuLnZhbHVlKTtyZXR1cm4gTWF0aC5yb3VuZCh0KT09PW4udmFsdWU/bnVsbDp7aW50ZWdlcjp7dmFsdWU6bi52YWx1ZX19fV0pLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgRWV9bmdPbkluaXQoKXt0aGlzLnJlbG9hZFBlcmlvZENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoaXQodGhpcy5uZ1Vuc3Vic2NyaWJlKSxDcig1MDApLE9lKCgpPT50aGlzLnJlbG9hZFBlcmlvZENvbnRyb2wudmFsaWQpKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLnJlbG9hZFBlcmlvZENvbnRyb2wudmFsaWQmJnRoaXMucmVsb2FkUGVyaW9kSW5Nc0NoYW5nZWQuZW1pdCgxZTMqdGhpcy5yZWxvYWRQZXJpb2RDb250cm9sLnZhbHVlKX0pLHRoaXMucGFnaW5hdGlvbkNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoaXQodGhpcy5uZ1Vuc3Vic2NyaWJlKSxDcig1MDApLE9lKCgpPT50aGlzLnBhZ2luYXRpb25Db250cm9sLnZhbGlkKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5wYWdlU2l6ZUNoYW5nZWQuZW1pdCh0aGlzLnBhZ2luYXRpb25Db250cm9sLnZhbHVlKX0pfW5nT25EZXN0cm95KCl7dGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKSx0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKX1uZ09uQ2hhbmdlcyhlKXtpZihlLnJlbG9hZFBlcmlvZEluTXMpe2xldCBpPWUucmVsb2FkUGVyaW9kSW5NcztpLnByZXZpb3VzVmFsdWUhPT1pLmN1cnJlbnRWYWx1ZSYmdGhpcy5yZWxvYWRQZXJpb2RDb250cm9sLnNldFZhbHVlKGkuY3VycmVudFZhbHVlLzFlMyl9aWYoZS5yZWxvYWRFbmFibGVkJiYoZS5yZWxvYWRFbmFibGVkLmN1cnJlbnRWYWx1ZT90aGlzLnJlbG9hZFBlcmlvZENvbnRyb2wuZW5hYmxlKCk6dGhpcy5yZWxvYWRQZXJpb2RDb250cm9sLmRpc2FibGUoKSksZS5wYWdlU2l6ZSl7bGV0IGk9ZS5wYWdlU2l6ZTtpLnByZXZpb3VzVmFsdWUhPT1pLmN1cnJlbnRWYWx1ZSYmdGhpcy5wYWdpbmF0aW9uQ29udHJvbC5zZXRWYWx1ZShpLmN1cnJlbnRWYWx1ZSl9fW9uUmVsb2FkVG9nZ2xlKCl7dGhpcy5yZWxvYWRUb2dnbGVkLmVtaXQoKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sic2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudCJdXSxpbnB1dHM6e3JlbG9hZEVuYWJsZWQ6InJlbG9hZEVuYWJsZWQiLHJlbG9hZFBlcmlvZEluTXM6InJlbG9hZFBlcmlvZEluTXMiLHBhZ2VTaXplOiJwYWdlU2l6ZSJ9LG91dHB1dHM6e3JlbG9hZFRvZ2dsZWQ6InJlbG9hZFRvZ2dsZWQiLHJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkOiJyZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZCIscGFnZVNpemVDaGFuZ2VkOiJwYWdlU2l6ZUNoYW5nZWQifSxmZWF0dXJlczpbcXRdLGRlY2xzOjE4LHZhcnM6NSxjb25zdHM6W1sxLCJyZWxvYWQtdG9nZ2xlIl0sWzMsImNoZWNrZWQiLCJjaGFuZ2UiXSxbIm1hdElucHV0IiwiIiwidHlwZSIsIm51bWJlciIsMSwicmVsb2FkLXBlcmlvZCIsMywiZm9ybUNvbnRyb2wiXSxbNCwibmdJZiJdLFsic3Vic2NyaXB0U2l6aW5nIiwiZHluYW1pYyJdLFsibWF0SW5wdXQiLCIiLCJ0eXBlIiwibnVtYmVyIiwxLCJwYWdlLXNpemUiLDMsImZvcm1Db250cm9sIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJoMyIpLFQoMSwiU2V0dGluZ3MiKSxnKCksZigyLCJkaXYiKSgzLCJkaXYiLDApKDQsIm1hdC1jaGVja2JveCIsMSksQSgiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBpLm9uUmVsb2FkVG9nZ2xlKCl9KSxUKDUsIlJlbG9hZCBkYXRhIiksZygpKCksZig2LCJkaXYiKSg3LCJtYXQtZm9ybS1maWVsZCIpKDgsIm1hdC1sYWJlbCIpLFQoOSwiUmVsb2FkIFBlcmlvZCAoc2Vjb25kcykiKSxnKCksaygxMCwiaW5wdXQiLDIpLGcoKSxTKDExLEd4ZSwyLDEsIm1hdC1lcnJvciIsMyksZygpKCksZigxMiwiZGl2IikoMTMsIm1hdC1mb3JtLWZpZWxkIiw0KSgxNCwibWF0LWxhYmVsIiksVCgxNSwiUGFnaW5hdGlvbiBMaW1pdCIpLGcoKSxrKDE2LCJpbnB1dCIsNSksZygpLFMoMTcsV3hlLDIsMCwibWF0LWVycm9yIiwzKSxnKCkpLDImZSYmKHYoNCksYigiY2hlY2tlZCIsaS5yZWxvYWRFbmFibGVkKSx2KDYpLGIoImZvcm1Db250cm9sIixpLnJlbG9hZFBlcmlvZENvbnRyb2wpLHYoMSksYigibmdJZiIsaS5yZWxvYWRQZXJpb2RDb250cm9sLmhhc0Vycm9yKCJtaW4iKXx8aS5yZWxvYWRQZXJpb2RDb250cm9sLmhhc0Vycm9yKCJyZXF1aXJlZCIpKSx2KDUpLGIoImZvcm1Db250cm9sIixpLnBhZ2luYXRpb25Db250cm9sKSx2KDEpLGIoIm5nSWYiLGkucGFnaW5hdGlvbkNvbnRyb2wuaW52YWxpZCkpfSxkZXBlbmRlbmNpZXM6W05lLFV1LGoyLHhnLFcyLHhzLHF1LFBjLG5sLGs5XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuXG5bX25naG9zdC0lQ09NUCVdICAgID4gZGl2W19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIG1hcmdpbjogMTZweCAwO1xufVxuXG5oM1tfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LXNpemU6IDIwcHg7XG4gIG1hcmdpbjogMDtcbn1cblxuLnJlbG9hZC10b2dnbGVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cblxubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVdIHtcbiAgd2lkdGg6IDEwMCU7XG59Il19KSxufSkoKSwkcT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmU9ZSx0aGlzLnJlbG9hZEVuYWJsZWQkPXRoaXMuc3RvcmUuc2VsZWN0KEF2KSx0aGlzLnJlbG9hZFBlcmlvZEluTXMkPXRoaXMuc3RvcmUuc2VsZWN0KFJ2KSx0aGlzLnBhZ2VTaXplJD10aGlzLnN0b3JlLnNlbGVjdChNaCl9b25SZWxvYWRUb2dnbGVkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaCh4MSgpKX1vblJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2goQzEoe3BlcmlvZEluTXM6ZX0pKX1vblBhZ2VTaXplQ2hhbmdlZChlKXt0aGlzLnN0b3JlLmRpc3BhdGNoKE0xKHtzaXplOmV9KSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJzZXR0aW5ncy1kaWFsb2ciXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywicmVsb2FkRW5hYmxlZCIsInJlbG9hZFBlcmlvZEluTXMiLCJwYWdlU2l6ZSIsInJlbG9hZFRvZ2dsZWQiLCJyZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZCIsInBhZ2VTaXplQ2hhbmdlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwic2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudCIsMCksQSgicmVsb2FkVG9nZ2xlZCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vblJlbG9hZFRvZ2dsZWQoKX0pKCJyZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZCIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25SZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZChvKX0pKCJwYWdlU2l6ZUNoYW5nZWQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uUGFnZVNpemVDaGFuZ2VkKG8pfSksVSgxLCJhc3luYyIpLFUoMiwiYXN5bmMiKSxVKDMsImFzeW5jIiksZygpKSwyJmUmJmIoInJlbG9hZEVuYWJsZWQiLEcoMSwzLGkucmVsb2FkRW5hYmxlZCQpKSgicmVsb2FkUGVyaW9kSW5NcyIsRygyLDUsaS5yZWxvYWRQZXJpb2RJbk1zJCkpKCJwYWdlU2l6ZSIsRygzLDcsaS5wYWdlU2l6ZSQpKX0sZGVwZW5kZW5jaWVzOltKcSxjdF0sZW5jYXBzdWxhdGlvbjoyfSksbn0pKCksZVg9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLmRpYWxvZz1lfWlzQnV0dG9uRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5zZXR0aW5nc0xvYWRTdGF0ZT09PVJlLk5PVF9MT0FERUR8fHRoaXMuc2V0dGluZ3NMb2FkU3RhdGU9PT1SZS5MT0FESU5HfW9wZW5EaWFsb2coKXt0aGlzLmRpYWxvZy5vcGVuKCRxLHt3aWR0aDoiNDAwcHgifSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeXMpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJzZXR0aW5ncy1idXR0b24tY29tcG9uZW50Il1dLGlucHV0czp7c2V0dGluZ3NMb2FkU3RhdGU6InNldHRpbmdzTG9hZFN0YXRlIn0sZGVjbHM6Mix2YXJzOjEsY29uc3RzOltbIm1hdC1pY29uLWJ1dHRvbiIsIiIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsic3ZnSWNvbiIsInNldHRpbmdzXzI0cHgiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImJ1dHRvbiIsMCksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGkub3BlbkRpYWxvZygpfSksaygxLCJtYXQtaWNvbiIsMSksZygpKSwyJmUmJmIoImRpc2FibGVkIixpLmlzQnV0dG9uRGlzYWJsZWQoKSl9LGRlcGVuZGVuY2llczpbRXIsYm5dLGVuY2Fwc3VsYXRpb246Mn0pLG59KSgpLHRYPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5zdG9yZT1lLHRoaXMuc2V0dGluZ3NMb2FkU3RhdGUkPXRoaXMuc3RvcmUuc2VsZWN0KGkyKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInNldHRpbmdzLWJ1dHRvbiJdXSxkZWNsczoyLHZhcnM6Myxjb25zdHM6W1szLCJzZXR0aW5nc0xvYWRTdGF0ZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGsoMCwic2V0dGluZ3MtYnV0dG9uLWNvbXBvbmVudCIsMCksVSgxLCJhc3luYyIpKSwyJmUmJmIoInNldHRpbmdzTG9hZFN0YXRlIixHKDEsMSxpLnNldHRpbmdzTG9hZFN0YXRlJCkpfSxkZXBlbmRlbmNpZXM6W2VYLGN0XSxlbmNhcHN1bGF0aW9uOjJ9KSxufSkoKSxaeGU9WyJtYXQtbWVudS1pdGVtIiwiIl07ZnVuY3Rpb24gS3hlKG4sdCl7MSZuJiYocW4oKSxmKDAsInN2ZyIsMyksaygxLCJwb2x5Z29uIiw0KSxnKCkpfXZhciBKeGU9W1tbIm1hdC1pY29uIl0sWyIiLCJtYXRNZW51SXRlbUljb24iLCIiXV0sIioiXSwkeGU9WyJtYXQtaWNvbiwgW21hdE1lbnVJdGVtSWNvbl0iLCIqIl07ZnVuY3Rpb24gZUNlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiZGl2IiwwKSxBKCJrZXlkb3duIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLl9oYW5kbGVLZXlkb3duKHIpKX0pKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gbmUoZSksaWUodygpLmNsb3NlZC5lbWl0KCJjbGljayIpKX0pKCJAdHJhbnNmb3JtTWVudS5zdGFydCIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoKS5fb25BbmltYXRpb25TdGFydChyKSl9KSgiQHRyYW5zZm9ybU1lbnUuZG9uZSIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoKS5fb25BbmltYXRpb25Eb25lKHIpKX0pLGYoMSwiZGl2IiwxKSxUdCgyKSxnKCkoKX1pZigyJm4pe2xldCBlPXcoKTtiKCJpZCIsZS5wYW5lbElkKSgibmdDbGFzcyIsZS5fY2xhc3NMaXN0KSgiQHRyYW5zZm9ybU1lbnUiLGUuX3BhbmVsQW5pbWF0aW9uU3RhdGUpLEJlKCJhcmlhLWxhYmVsIixlLmFyaWFMYWJlbHx8bnVsbCkoImFyaWEtbGFiZWxsZWRieSIsZS5hcmlhTGFiZWxsZWRieXx8bnVsbCkoImFyaWEtZGVzY3JpYmVkYnkiLGUuYXJpYURlc2NyaWJlZGJ5fHxudWxsKX19dmFyIHRDZT1bIioiXSxLMj1uZXcgdGUoIk1BVF9NRU5VX1BBTkVMIiksbkNlPWdvKGFvKGNsYXNze30pKSxFZD0oKCk9PntjbGFzcyBuIGV4dGVuZHMgbkNle2NvbnN0cnVjdG9yKGUsaSxyLG8sYSl7c3VwZXIoKSx0aGlzLl9lbGVtZW50UmVmPWUsdGhpcy5fZG9jdW1lbnQ9aSx0aGlzLl9mb2N1c01vbml0b3I9cix0aGlzLl9wYXJlbnRNZW51PW8sdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9YSx0aGlzLnJvbGU9Im1lbnVpdGVtIix0aGlzLl9ob3ZlcmVkPW5ldyBFZSx0aGlzLl9mb2N1c2VkPW5ldyBFZSx0aGlzLl9oaWdobGlnaHRlZD0hMSx0aGlzLl90cmlnZ2Vyc1N1Ym1lbnU9ITEsbz8uYWRkSXRlbT8uKHRoaXMpfWZvY3VzKGUsaSl7dGhpcy5fZm9jdXNNb25pdG9yJiZlP3RoaXMuX2ZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLl9nZXRIb3N0RWxlbWVudCgpLGUsaSk6dGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5mb2N1cyhpKSx0aGlzLl9mb2N1c2VkLm5leHQodGhpcyl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fZm9jdXNNb25pdG9yJiZ0aGlzLl9mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLl9lbGVtZW50UmVmLCExKX1uZ09uRGVzdHJveSgpe3RoaXMuX2ZvY3VzTW9uaXRvciYmdGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpLHRoaXMuX3BhcmVudE1lbnUmJnRoaXMuX3BhcmVudE1lbnUucmVtb3ZlSXRlbSYmdGhpcy5fcGFyZW50TWVudS5yZW1vdmVJdGVtKHRoaXMpLHRoaXMuX2hvdmVyZWQuY29tcGxldGUoKSx0aGlzLl9mb2N1c2VkLmNvbXBsZXRlKCl9X2dldFRhYkluZGV4KCl7cmV0dXJuIHRoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9X2dldEhvc3RFbGVtZW50KCl7cmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudH1fY2hlY2tEaXNhYmxlZChlKXt0aGlzLmRpc2FibGVkJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkpfV9oYW5kbGVNb3VzZUVudGVyKCl7dGhpcy5faG92ZXJlZC5uZXh0KHRoaXMpfWdldExhYmVsKCl7bGV0IGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsb25lTm9kZSghMCksaT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIm1hdC1pY29uLCAubWF0ZXJpYWwtaWNvbnMiKTtmb3IobGV0IHI9MDtyPGkubGVuZ3RoO3IrKylpW3JdLnJlbW92ZSgpO3JldHVybiBlLnRleHRDb250ZW50Py50cmltKCl8fCIifV9zZXRIaWdobGlnaHRlZChlKXt0aGlzLl9oaWdobGlnaHRlZD1lLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPy5tYXJrRm9yQ2hlY2soKX1fc2V0VHJpZ2dlcnNTdWJtZW51KGUpe3RoaXMuX3RyaWdnZXJzU3VibWVudT1lLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPy5tYXJrRm9yQ2hlY2soKX1faGFzRm9jdXMoKXtyZXR1cm4gdGhpcy5fZG9jdW1lbnQmJnRoaXMuX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT10aGlzLl9nZXRIb3N0RWxlbWVudCgpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSxDKE50KSxDKGZvKSxDKEsyLDgpLEMoUXQpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJtYXQtbWVudS1pdGVtIiwiIl1dLGhvc3RBdHRyczpbMSwibWF0LW1kYy1tZW51LWl0ZW0iLCJtYXQtbWRjLWZvY3VzLWluZGljYXRvciIsIm1kYy1saXN0LWl0ZW0iXSxob3N0VmFyczo4LGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezEmZSYmQSgiY2xpY2siLGZ1bmN0aW9uKG8pe3JldHVybiBpLl9jaGVja0Rpc2FibGVkKG8pfSkoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGkuX2hhbmRsZU1vdXNlRW50ZXIoKX0pLDImZSYmKEJlKCJyb2xlIixpLnJvbGUpKCJ0YWJpbmRleCIsaS5fZ2V0VGFiSW5kZXgoKSkoImFyaWEtZGlzYWJsZWQiLGkuZGlzYWJsZWQpKCJkaXNhYmxlZCIsaS5kaXNhYmxlZHx8bnVsbCksbnQoIm1hdC1tZGMtbWVudS1pdGVtLWhpZ2hsaWdodGVkIixpLl9oaWdobGlnaHRlZCkoIm1hdC1tZGMtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlciIsaS5fdHJpZ2dlcnNTdWJtZW51KSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIixyb2xlOiJyb2xlIn0sZXhwb3J0QXM6WyJtYXRNZW51SXRlbSJdLGZlYXR1cmVzOltYZV0sYXR0cnM6WnhlLG5nQ29udGVudFNlbGVjdG9yczokeGUsZGVjbHM6NSx2YXJzOjMsY29uc3RzOltbMSwibWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0Il0sWyJtYXRSaXBwbGUiLCIiLDEsIm1hdC1tZGMtbWVudS1yaXBwbGUiLDMsIm1hdFJpcHBsZURpc2FibGVkIiwibWF0UmlwcGxlVHJpZ2dlciJdLFsiY2xhc3MiLCJtYXQtbWRjLW1lbnUtc3VibWVudS1pY29uIiwidmlld0JveCIsIjAgMCA1IDEwIiwiZm9jdXNhYmxlIiwiZmFsc2UiLDQsIm5nSWYiXSxbInZpZXdCb3giLCIwIDAgNSAxMCIsImZvY3VzYWJsZSIsImZhbHNlIiwxLCJtYXQtbWRjLW1lbnUtc3VibWVudS1pY29uIl0sWyJwb2ludHMiLCIwLDAgNSw1IDAsMTAiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmbihKeGUpLFR0KDApLGYoMSwic3BhbiIsMCksVHQoMiwxKSxnKCksaygzLCJkaXYiLDEpLFMoNCxLeGUsMiwwLCJzdmciLDIpKSwyJmUmJih2KDMpLGIoIm1hdFJpcHBsZURpc2FibGVkIixpLmRpc2FibGVSaXBwbGV8fGkuZGlzYWJsZWQpKCJtYXRSaXBwbGVUcmlnZ2VyIixpLl9nZXRIb3N0RWxlbWVudCgpKSx2KDEpLGIoIm5nSWYiLGkuX3RyaWdnZXJzU3VibWVudSkpfSxkZXBlbmRlbmNpZXM6W05lLEtpXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxpQ2U9bmV3IHRlKCJNYXRNZW51Q29udGVudCIpLF9FPXt0cmFuc2Zvcm1NZW51OmZyKCJ0cmFuc2Zvcm1NZW51IixbU2koInZvaWQiLHJuKHtvcGFjaXR5OjAsdHJhbnNmb3JtOiJzY2FsZSgwLjgpIn0pKSxiaSgidm9pZCA9PiBlbnRlciIsTWkoIjEyMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpIixybih7b3BhY2l0eToxLHRyYW5zZm9ybToic2NhbGUoMSkifSkpKSxiaSgiKiA9PiB2b2lkIixNaSgiMTAwbXMgMjVtcyBsaW5lYXIiLHJuKHtvcGFjaXR5OjB9KSkpXSksZmFkZUluSXRlbXM6ZnIoImZhZGVJbkl0ZW1zIixbU2koInNob3dpbmciLHJuKHtvcGFjaXR5OjF9KSksYmkoInZvaWQgPT4gKiIsW3JuKHtvcGFjaXR5OjB9KSxNaSgiNDAwbXMgMTAwbXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMikiKV0pXSl9LHJDZT0wLGlYPW5ldyB0ZSgibWF0LW1lbnUtZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbigpe3JldHVybntvdmVybGFwVHJpZ2dlcjohMSx4UG9zaXRpb246ImFmdGVyIix5UG9zaXRpb246ImJlbG93IixiYWNrZHJvcENsYXNzOiJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCJ9fX0pLG95PSgoKT0+e2NsYXNzIG57Z2V0IHhQb3NpdGlvbigpe3JldHVybiB0aGlzLl94UG9zaXRpb259c2V0IHhQb3NpdGlvbihlKXt0aGlzLl94UG9zaXRpb249ZSx0aGlzLnNldFBvc2l0aW9uQ2xhc3NlcygpfWdldCB5UG9zaXRpb24oKXtyZXR1cm4gdGhpcy5feVBvc2l0aW9ufXNldCB5UG9zaXRpb24oZSl7dGhpcy5feVBvc2l0aW9uPWUsdGhpcy5zZXRQb3NpdGlvbkNsYXNzZXMoKX1nZXQgb3ZlcmxhcFRyaWdnZXIoKXtyZXR1cm4gdGhpcy5fb3ZlcmxhcFRyaWdnZXJ9c2V0IG92ZXJsYXBUcmlnZ2VyKGUpe3RoaXMuX292ZXJsYXBUcmlnZ2VyPXZ0KGUpfWdldCBoYXNCYWNrZHJvcCgpe3JldHVybiB0aGlzLl9oYXNCYWNrZHJvcH1zZXQgaGFzQmFja2Ryb3AoZSl7dGhpcy5faGFzQmFja2Ryb3A9dnQoZSl9c2V0IHBhbmVsQ2xhc3MoZSl7bGV0IGk9dGhpcy5fcHJldmlvdXNQYW5lbENsYXNzO2kmJmkubGVuZ3RoJiZpLnNwbGl0KCIgIikuZm9yRWFjaChyPT57dGhpcy5fY2xhc3NMaXN0W3JdPSExfSksdGhpcy5fcHJldmlvdXNQYW5lbENsYXNzPWUsZSYmZS5sZW5ndGgmJihlLnNwbGl0KCIgIikuZm9yRWFjaChyPT57dGhpcy5fY2xhc3NMaXN0W3JdPSEwfSksdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZT0iIil9Z2V0IGNsYXNzTGlzdCgpe3JldHVybiB0aGlzLnBhbmVsQ2xhc3N9c2V0IGNsYXNzTGlzdChlKXt0aGlzLnBhbmVsQ2xhc3M9ZX1jb25zdHJ1Y3RvcihlLGkscixvKXt0aGlzLl9lbGVtZW50UmVmPWUsdGhpcy5fbmdab25lPWksdGhpcy5fZGVmYXVsdE9wdGlvbnM9cix0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1vLHRoaXMuX3hQb3NpdGlvbj10aGlzLl9kZWZhdWx0T3B0aW9ucy54UG9zaXRpb24sdGhpcy5feVBvc2l0aW9uPXRoaXMuX2RlZmF1bHRPcHRpb25zLnlQb3NpdGlvbix0aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXM9bmV3IFBhLHRoaXMuX2NsYXNzTGlzdD17fSx0aGlzLl9wYW5lbEFuaW1hdGlvblN0YXRlPSJ2b2lkIix0aGlzLl9hbmltYXRpb25Eb25lPW5ldyBFZSx0aGlzLm92ZXJsYXlQYW5lbENsYXNzPXRoaXMuX2RlZmF1bHRPcHRpb25zLm92ZXJsYXlQYW5lbENsYXNzfHwiIix0aGlzLmJhY2tkcm9wQ2xhc3M9dGhpcy5fZGVmYXVsdE9wdGlvbnMuYmFja2Ryb3BDbGFzcyx0aGlzLl9vdmVybGFwVHJpZ2dlcj10aGlzLl9kZWZhdWx0T3B0aW9ucy5vdmVybGFwVHJpZ2dlcix0aGlzLl9oYXNCYWNrZHJvcD10aGlzLl9kZWZhdWx0T3B0aW9ucy5oYXNCYWNrZHJvcCx0aGlzLmNsb3NlZD1uZXcgRix0aGlzLmNsb3NlPXRoaXMuY2xvc2VkLHRoaXMucGFuZWxJZD0ibWF0LW1lbnUtcGFuZWwtIityQ2UrK31uZ09uSW5pdCgpe3RoaXMuc2V0UG9zaXRpb25DbGFzc2VzKCl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5fdXBkYXRlRGlyZWN0RGVzY2VuZGFudHMoKSx0aGlzLl9rZXlNYW5hZ2VyPW5ldyBrdSh0aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMpLndpdGhXcmFwKCkud2l0aFR5cGVBaGVhZCgpLndpdGhIb21lQW5kRW5kKCksdGhpcy5fa2V5TWFuYWdlci50YWJPdXQuc3Vic2NyaWJlKCgpPT50aGlzLmNsb3NlZC5lbWl0KCJ0YWIiKSksdGhpcy5fZGlyZWN0RGVzY2VuZGFudEl0ZW1zLmNoYW5nZXMucGlwZShrbih0aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMpLEpuKGU9PnRuKC4uLmUubWFwKGk9PmkuX2ZvY3VzZWQpKSkpLnN1YnNjcmliZShlPT50aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oZSkpLHRoaXMuX2RpcmVjdERlc2NlbmRhbnRJdGVtcy5jaGFuZ2VzLnN1YnNjcmliZShlPT57bGV0IGk9dGhpcy5fa2V5TWFuYWdlcjtpZigiZW50ZXIiPT09dGhpcy5fcGFuZWxBbmltYXRpb25TdGF0ZSYmaS5hY3RpdmVJdGVtPy5faGFzRm9jdXMoKSl7bGV0IHI9ZS50b0FycmF5KCksbz1NYXRoLm1heCgwLE1hdGgubWluKHIubGVuZ3RoLTEsaS5hY3RpdmVJdGVtSW5kZXh8fDApKTtyW29dJiYhcltvXS5kaXNhYmxlZD9pLnNldEFjdGl2ZUl0ZW0obyk6aS5zZXROZXh0SXRlbUFjdGl2ZSgpfX0pfW5nT25EZXN0cm95KCl7dGhpcy5fa2V5TWFuYWdlcj8uZGVzdHJveSgpLHRoaXMuX2RpcmVjdERlc2NlbmRhbnRJdGVtcy5kZXN0cm95KCksdGhpcy5jbG9zZWQuY29tcGxldGUoKSx0aGlzLl9maXJzdEl0ZW1Gb2N1c1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKX1faG92ZXJlZCgpe3JldHVybiB0aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMuY2hhbmdlcy5waXBlKGtuKHRoaXMuX2RpcmVjdERlc2NlbmRhbnRJdGVtcyksSm4oaT0+dG4oLi4uaS5tYXAocj0+ci5faG92ZXJlZCkpKSl9YWRkSXRlbShlKXt9cmVtb3ZlSXRlbShlKXt9X2hhbmRsZUtleWRvd24oZSl7bGV0IGk9ZS5rZXlDb2RlLHI9dGhpcy5fa2V5TWFuYWdlcjtzd2l0Y2goaSl7Y2FzZSAyNzpPcihlKXx8KGUucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlZC5lbWl0KCJrZXlkb3duIikpO2JyZWFrO2Nhc2UgMzc6dGhpcy5wYXJlbnRNZW51JiYibHRyIj09PXRoaXMuZGlyZWN0aW9uJiZ0aGlzLmNsb3NlZC5lbWl0KCJrZXlkb3duIik7YnJlYWs7Y2FzZSAzOTp0aGlzLnBhcmVudE1lbnUmJiJydGwiPT09dGhpcy5kaXJlY3Rpb24mJnRoaXMuY2xvc2VkLmVtaXQoImtleWRvd24iKTticmVhaztkZWZhdWx0OnJldHVybigzOD09PWl8fDQwPT09aSkmJnIuc2V0Rm9jdXNPcmlnaW4oImtleWJvYXJkIiksdm9pZCByLm9uS2V5ZG93bihlKX1lLnN0b3BQcm9wYWdhdGlvbigpfWZvY3VzRmlyc3RJdGVtKGU9InByb2dyYW0iKXt0aGlzLl9maXJzdEl0ZW1Gb2N1c1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKSx0aGlzLl9maXJzdEl0ZW1Gb2N1c1N1YnNjcmlwdGlvbj10aGlzLl9uZ1pvbmUub25TdGFibGUucGlwZShMdCgxKSkuc3Vic2NyaWJlKCgpPT57bGV0IGk9bnVsbDtpZih0aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMubGVuZ3RoJiYoaT10aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMuZmlyc3QuX2dldEhvc3RFbGVtZW50KCkuY2xvc2VzdCgnW3JvbGU9Im1lbnUiXScpKSwhaXx8IWkuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpe2xldCByPXRoaXMuX2tleU1hbmFnZXI7ci5zZXRGb2N1c09yaWdpbihlKS5zZXRGaXJzdEl0ZW1BY3RpdmUoKSwhci5hY3RpdmVJdGVtJiZpJiZpLmZvY3VzKCl9fSl9cmVzZXRBY3RpdmVJdGVtKCl7dGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKC0xKX1zZXRFbGV2YXRpb24oZSl7bGV0IGk9TWF0aC5taW4odGhpcy5fYmFzZUVsZXZhdGlvbitlLDI0KSxyPWAke3RoaXMuX2VsZXZhdGlvblByZWZpeH0ke2l9YCxvPU9iamVjdC5rZXlzKHRoaXMuX2NsYXNzTGlzdCkuZmluZChhPT5hLnN0YXJ0c1dpdGgodGhpcy5fZWxldmF0aW9uUHJlZml4KSk7KCFvfHxvPT09dGhpcy5fcHJldmlvdXNFbGV2YXRpb24pJiYodGhpcy5fcHJldmlvdXNFbGV2YXRpb24mJih0aGlzLl9jbGFzc0xpc3RbdGhpcy5fcHJldmlvdXNFbGV2YXRpb25dPSExKSx0aGlzLl9jbGFzc0xpc3Rbcl09ITAsdGhpcy5fcHJldmlvdXNFbGV2YXRpb249cil9c2V0UG9zaXRpb25DbGFzc2VzKGU9dGhpcy54UG9zaXRpb24saT10aGlzLnlQb3NpdGlvbil7bGV0IHI9dGhpcy5fY2xhc3NMaXN0O3JbIm1hdC1tZW51LWJlZm9yZSJdPSJiZWZvcmUiPT09ZSxyWyJtYXQtbWVudS1hZnRlciJdPSJhZnRlciI9PT1lLHJbIm1hdC1tZW51LWFib3ZlIl09ImFib3ZlIj09PWksclsibWF0LW1lbnUtYmVsb3ciXT0iYmVsb3ciPT09aSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj8ubWFya0ZvckNoZWNrKCl9X3N0YXJ0QW5pbWF0aW9uKCl7dGhpcy5fcGFuZWxBbmltYXRpb25TdGF0ZT0iZW50ZXIifV9yZXNldEFuaW1hdGlvbigpe3RoaXMuX3BhbmVsQW5pbWF0aW9uU3RhdGU9InZvaWQifV9vbkFuaW1hdGlvbkRvbmUoZSl7dGhpcy5fYW5pbWF0aW9uRG9uZS5uZXh0KGUpLHRoaXMuX2lzQW5pbWF0aW5nPSExfV9vbkFuaW1hdGlvblN0YXJ0KGUpe3RoaXMuX2lzQW5pbWF0aW5nPSEwLCJlbnRlciI9PT1lLnRvU3RhdGUmJjA9PT10aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleCYmKGUuZWxlbWVudC5zY3JvbGxUb3A9MCl9X3VwZGF0ZURpcmVjdERlc2NlbmRhbnRzKCl7dGhpcy5fYWxsSXRlbXMuY2hhbmdlcy5waXBlKGtuKHRoaXMuX2FsbEl0ZW1zKSkuc3Vic2NyaWJlKGU9Pnt0aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMucmVzZXQoZS5maWx0ZXIoaT0+aS5fcGFyZW50TWVudT09PXRoaXMpKSx0aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMubm90aWZ5T25DaGFuZ2VzKCl9KX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyh4ZSksQyhvdCksQyhpWCksQyhRdCkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGUsaSxyKXtpZigxJmUmJihCbihyLGlDZSw1KSxCbihyLEVkLDUpLEJuKHIsRWQsNCkpLDImZSl7bGV0IG87YmUobz12ZSgpKSYmKGkubGF6eUNvbnRlbnQ9by5maXJzdCksYmUobz12ZSgpKSYmKGkuX2FsbEl0ZW1zPW8pLGJlKG89dmUoKSkmJihpLml0ZW1zPW8pfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiZVZShvaSw1KSwyJmUpe2xldCByO2JlKHI9dmUoKSkmJihpLnRlbXBsYXRlUmVmPXIuZmlyc3QpfX0saW5wdXRzOntiYWNrZHJvcENsYXNzOiJiYWNrZHJvcENsYXNzIixhcmlhTGFiZWw6WyJhcmlhLWxhYmVsIiwiYXJpYUxhYmVsIl0sYXJpYUxhYmVsbGVkYnk6WyJhcmlhLWxhYmVsbGVkYnkiLCJhcmlhTGFiZWxsZWRieSJdLGFyaWFEZXNjcmliZWRieTpbImFyaWEtZGVzY3JpYmVkYnkiLCJhcmlhRGVzY3JpYmVkYnkiXSx4UG9zaXRpb246InhQb3NpdGlvbiIseVBvc2l0aW9uOiJ5UG9zaXRpb24iLG92ZXJsYXBUcmlnZ2VyOiJvdmVybGFwVHJpZ2dlciIsaGFzQmFja2Ryb3A6Imhhc0JhY2tkcm9wIixwYW5lbENsYXNzOlsiY2xhc3MiLCJwYW5lbENsYXNzIl0sY2xhc3NMaXN0OiJjbGFzc0xpc3QifSxvdXRwdXRzOntjbG9zZWQ6ImNsb3NlZCIsY2xvc2U6ImNsb3NlIn19KSxufSkoKSxYdT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgb3l7Y29uc3RydWN0b3IoZSxpLHIsbyl7c3VwZXIoZSxpLHIsbyksdGhpcy5fZWxldmF0aW9uUHJlZml4PSJtYXQtZWxldmF0aW9uLXoiLHRoaXMuX2Jhc2VFbGV2YXRpb249OH19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyh4ZSksQyhvdCksQyhpWCksQyhRdCkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbIm1hdC1tZW51Il1dLGhvc3RWYXJzOjMsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MiZlJiZCZSgiYXJpYS1sYWJlbCIsbnVsbCkoImFyaWEtbGFiZWxsZWRieSIsbnVsbCkoImFyaWEtZGVzY3JpYmVkYnkiLG51bGwpfSxleHBvcnRBczpbIm1hdE1lbnUiXSxmZWF0dXJlczpbVnQoW3twcm92aWRlOksyLHVzZUV4aXN0aW5nOm59XSksWGVdLG5nQ29udGVudFNlbGVjdG9yczp0Q2UsZGVjbHM6MSx2YXJzOjAsY29uc3RzOltbInRhYmluZGV4IiwiLTEiLCJyb2xlIiwibWVudSIsMSwibWF0LW1kYy1tZW51LXBhbmVsIiwibWRjLW1lbnUtc3VyZmFjZSIsIm1kYy1tZW51LXN1cmZhY2UtLW9wZW4iLCJtYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYyIsMywiaWQiLCJuZ0NsYXNzIiwia2V5ZG93biIsImNsaWNrIl0sWzEsIm1hdC1tZGMtbWVudS1jb250ZW50IiwibWRjLWxpc3QiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmbigpLFMoMCxlQ2UsMyw2LCJuZy10ZW1wbGF0ZSIpKX0sZGVwZW5kZW5jaWVzOlt3bl0sc3R5bGVzOlsnLm1kYy1tZW51LXN1cmZhY2V7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXgtd2lkdGg6dmFyKC0tbWRjLW1lbnUtbWF4LXdpZHRoLCBjYWxjKDEwMHZ3IC0gMzJweCkpO21heC1oZWlnaHQ6dmFyKC0tbWRjLW1lbnUtbWF4LWhlaWdodCwgY2FsYygxMDB2aCAtIDMycHgpKTttYXJnaW46MDtwYWRkaW5nOjA7dHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybS1vcmlnaW46dG9wIGxlZnQ7b3BhY2l0eTowO292ZXJmbG93OmF1dG87d2lsbC1jaGFuZ2U6dHJhbnNmb3JtLG9wYWNpdHk7ei1pbmRleDo4O2JvcmRlci1yYWRpdXM6dmFyKC0tbWRjLXNoYXBlLW1lZGl1bSwgNHB4KTt0cmFuc2Zvcm0tb3JpZ2luLWxlZnQ6dG9wIGxlZnQ7dHJhbnNmb3JtLW9yaWdpbi1yaWdodDp0b3AgcmlnaHR9Lm1kYy1tZW51LXN1cmZhY2U6Zm9jdXN7b3V0bGluZTpub25lfS5tZGMtbWVudS1zdXJmYWNlLS1hbmltYXRpbmctb3BlbntkaXNwbGF5OmlubGluZS1ibG9jazt0cmFuc2Zvcm06c2NhbGUoMC44KTtvcGFjaXR5OjB9Lm1kYy1tZW51LXN1cmZhY2UtLW9wZW57ZGlzcGxheTppbmxpbmUtYmxvY2s7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX0ubWRjLW1lbnUtc3VyZmFjZS0tYW5pbWF0aW5nLWNsb3NlZHtkaXNwbGF5OmlubGluZS1ibG9jaztvcGFjaXR5OjB9W2Rpcj1ydGxdIC5tZGMtbWVudS1zdXJmYWNlLC5tZGMtbWVudS1zdXJmYWNlW2Rpcj1ydGxde3RyYW5zZm9ybS1vcmlnaW4tbGVmdDp0b3AgcmlnaHQ7dHJhbnNmb3JtLW9yaWdpbi1yaWdodDp0b3AgbGVmdH0ubWRjLW1lbnUtc3VyZmFjZS0tYW5jaG9ye3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OnZpc2libGV9Lm1kYy1tZW51LXN1cmZhY2UtLWZpeGVke3Bvc2l0aW9uOmZpeGVkfS5tZGMtbWVudS1zdXJmYWNlLS1mdWxsd2lkdGh7d2lkdGg6MTAwJX1tYXQtbWVudXtkaXNwbGF5Om5vbmV9Lm1hdC1tZGMtbWVudS1jb250ZW50e21hcmdpbjowO3BhZGRpbmc6OHB4IDA7bGlzdC1zdHlsZS10eXBlOm5vbmV9Lm1hdC1tZGMtbWVudS1jb250ZW50OmZvY3Vze291dGxpbmU6bm9uZX0ubWF0LW1kYy1tZW51LXBhbmVsLm5nLWFuaW1hdGluZ3twb2ludGVyLWV2ZW50czpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZGMtbWVudS1wYW5lbHtvdXRsaW5lOnNvbGlkIDFweH0ubWF0LW1kYy1tZW51LXBhbmVsLm1hdC1tZGMtbWVudS1wYW5lbHttaW4td2lkdGg6MTEycHg7bWF4LXdpZHRoOjI4MHB4O292ZXJmbG93OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtbWVudS1pdGVte2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwYWRkaW5nLWxlZnQ6MTZweDtwYWRkaW5nLXJpZ2h0OjE2cHg7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTpub25lO2JvcmRlcjpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApO2N1cnNvcjpwb2ludGVyO3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpsZWZ0O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2JhY2tncm91bmQ6bm9uZTt0ZXh0LWRlY29yYXRpb246bm9uZTttYXJnaW46MDttaW4taGVpZ2h0OjQ4cHh9Lm1hdC1tZGMtbWVudS1pdGVtOmZvY3Vze291dGxpbmU6bm9uZX1bZGlyPXJ0bF0gLm1hdC1tZGMtbWVudS1pdGVtLC5tYXQtbWRjLW1lbnUtaXRlbVtkaXI9cnRsXXtwYWRkaW5nLWxlZnQ6MTZweDtwYWRkaW5nLXJpZ2h0OjE2cHh9Lm1hdC1tZGMtbWVudS1pdGVtOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5tYXQtbWRjLW1lbnUtaXRlbS5tZGMtbGlzdC1pdGVte2FsaWduLWl0ZW1zOmNlbnRlcn0ubWF0LW1kYy1tZW51LWl0ZW1bZGlzYWJsZWRde2N1cnNvcjpkZWZhdWx0O29wYWNpdHk6LjM4fS5tYXQtbWRjLW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVye2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjt0b3A6MDtsZWZ0OjA7Ym90dG9tOjA7cmlnaHQ6MH0ubWF0LW1kYy1tZW51LWl0ZW0gLm1hdC1pY29ue21hcmdpbi1yaWdodDoxNnB4fVtkaXI9cnRsXSAubWF0LW1kYy1tZW51LWl0ZW17dGV4dC1hbGlnbjpyaWdodH1bZGlyPXJ0bF0gLm1hdC1tZGMtbWVudS1pdGVtIC5tYXQtaWNvbnttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDoxNnB4fS5tYXQtbWRjLW1lbnUtaXRlbSAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0e3doaXRlLXNwYWNlOm5vcm1hbH0ubWF0LW1kYy1tZW51LWl0ZW0ubWF0LW1kYy1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2Vye3BhZGRpbmctcmlnaHQ6MzJweH1bZGlyPXJ0bF0gLm1hdC1tZGMtbWVudS1pdGVtLm1hdC1tZGMtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcntwYWRkaW5nLXJpZ2h0OjE2cHg7cGFkZGluZy1sZWZ0OjMycHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1kYy1tZW51LWl0ZW17bWFyZ2luLXRvcDoxcHh9Lm1hdC1tZGMtbWVudS1zdWJtZW51LWljb257cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxNnB4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3dpZHRoOjVweDtoZWlnaHQ6MTBweDtmaWxsOmN1cnJlbnRDb2xvcn1bZGlyPXJ0bF0gLm1hdC1tZGMtbWVudS1zdWJtZW51LWljb257cmlnaHQ6YXV0bztsZWZ0OjE2cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgc2NhbGVYKC0xKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWRjLW1lbnUtc3VibWVudS1pY29ue2ZpbGw6Q2FudmFzVGV4dH0ubWF0LW1kYy1tZW51LWl0ZW0gLm1hdC1tZGMtbWVudS1yaXBwbGV7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZX0nXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOltfRS50cmFuc2Zvcm1NZW51LF9FLmZhZGVJbkl0ZW1zXX0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxyWD1uZXcgdGUoIm1hdC1tZW51LXNjcm9sbC1zdHJhdGVneSIpLHNDZT17cHJvdmlkZTpyWCxkZXBzOltPaV0sdXNlRmFjdG9yeTpmdW5jdGlvbihuKXtyZXR1cm4oKT0+bi5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKX19LG5YPXphKHtwYXNzaXZlOiEwfSksbENlPSgoKT0+e2NsYXNzIG57Z2V0IF9kZXByZWNhdGVkTWF0TWVudVRyaWdnZXJGb3IoKXtyZXR1cm4gdGhpcy5tZW51fXNldCBfZGVwcmVjYXRlZE1hdE1lbnVUcmlnZ2VyRm9yKGUpe3RoaXMubWVudT1lfWdldCBtZW51KCl7cmV0dXJuIHRoaXMuX21lbnV9c2V0IG1lbnUoZSl7ZSE9PXRoaXMuX21lbnUmJih0aGlzLl9tZW51PWUsdGhpcy5fbWVudUNsb3NlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksZSYmKHRoaXMuX21lbnVDbG9zZVN1YnNjcmlwdGlvbj1lLmNsb3NlLnN1YnNjcmliZShpPT57dGhpcy5fZGVzdHJveU1lbnUoaSksKCJjbGljayI9PT1pfHwidGFiIj09PWkpJiZ0aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnUmJnRoaXMuX3BhcmVudE1hdGVyaWFsTWVudS5jbG9zZWQuZW1pdChpKX0pKSx0aGlzLl9tZW51SXRlbUluc3RhbmNlPy5fc2V0VHJpZ2dlcnNTdWJtZW51KHRoaXMudHJpZ2dlcnNTdWJtZW51KCkpKX1jb25zdHJ1Y3RvcihlLGkscixvLGEscyxsLGMsZCl7dGhpcy5fb3ZlcmxheT1lLHRoaXMuX2VsZW1lbnQ9aSx0aGlzLl92aWV3Q29udGFpbmVyUmVmPXIsdGhpcy5fbWVudUl0ZW1JbnN0YW5jZT1zLHRoaXMuX2Rpcj1sLHRoaXMuX2ZvY3VzTW9uaXRvcj1jLHRoaXMuX25nWm9uZT1kLHRoaXMuX292ZXJsYXlSZWY9bnVsbCx0aGlzLl9tZW51T3Blbj0hMSx0aGlzLl9jbG9zaW5nQWN0aW9uc1N1YnNjcmlwdGlvbj1Fbi5FTVBUWSx0aGlzLl9ob3ZlclN1YnNjcmlwdGlvbj1Fbi5FTVBUWSx0aGlzLl9tZW51Q2xvc2VTdWJzY3JpcHRpb249RW4uRU1QVFksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9JG4oUXQpLHRoaXMuX2hhbmRsZVRvdWNoU3RhcnQ9dT0+e1Z2KHUpfHwodGhpcy5fb3BlbmVkQnk9InRvdWNoIil9LHRoaXMuX29wZW5lZEJ5PXZvaWQgMCx0aGlzLnJlc3RvcmVGb2N1cz0hMCx0aGlzLm1lbnVPcGVuZWQ9bmV3IEYsdGhpcy5vbk1lbnVPcGVuPXRoaXMubWVudU9wZW5lZCx0aGlzLm1lbnVDbG9zZWQ9bmV3IEYsdGhpcy5vbk1lbnVDbG9zZT10aGlzLm1lbnVDbG9zZWQsdGhpcy5fc2Nyb2xsU3RyYXRlZ3k9byx0aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnU9YSBpbnN0YW5jZW9mIG95P2E6dm9pZCAwLGkubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLl9oYW5kbGVUb3VjaFN0YXJ0LG5YKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLl9oYW5kbGVIb3ZlcigpfW5nT25EZXN0cm95KCl7dGhpcy5fb3ZlcmxheVJlZiYmKHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpLHRoaXMuX292ZXJsYXlSZWY9bnVsbCksdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX2hhbmRsZVRvdWNoU3RhcnQsblgpLHRoaXMuX21lbnVDbG9zZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2Nsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5faG92ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1nZXQgbWVudU9wZW4oKXtyZXR1cm4gdGhpcy5fbWVudU9wZW59Z2V0IGRpcigpe3JldHVybiB0aGlzLl9kaXImJiJydGwiPT09dGhpcy5fZGlyLnZhbHVlPyJydGwiOiJsdHIifXRyaWdnZXJzU3VibWVudSgpe3JldHVybiEhKHRoaXMuX21lbnVJdGVtSW5zdGFuY2UmJnRoaXMuX3BhcmVudE1hdGVyaWFsTWVudSYmdGhpcy5tZW51KX10b2dnbGVNZW51KCl7cmV0dXJuIHRoaXMuX21lbnVPcGVuP3RoaXMuY2xvc2VNZW51KCk6dGhpcy5vcGVuTWVudSgpfW9wZW5NZW51KCl7bGV0IGU9dGhpcy5tZW51O2lmKHRoaXMuX21lbnVPcGVufHwhZSlyZXR1cm47bGV0IGk9dGhpcy5fY3JlYXRlT3ZlcmxheShlKSxyPWkuZ2V0Q29uZmlnKCksbz1yLnBvc2l0aW9uU3RyYXRlZ3k7dGhpcy5fc2V0UG9zaXRpb24oZSxvKSxyLmhhc0JhY2tkcm9wPW51bGw9PWUuaGFzQmFja2Ryb3A/IXRoaXMudHJpZ2dlcnNTdWJtZW51KCk6ZS5oYXNCYWNrZHJvcCxpLmF0dGFjaCh0aGlzLl9nZXRQb3J0YWwoZSkpLGUubGF6eUNvbnRlbnQmJmUubGF6eUNvbnRlbnQuYXR0YWNoKHRoaXMubWVudURhdGEpLHRoaXMuX2Nsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uPXRoaXMuX21lbnVDbG9zaW5nQWN0aW9ucygpLnN1YnNjcmliZSgoKT0+dGhpcy5jbG9zZU1lbnUoKSksdGhpcy5faW5pdE1lbnUoZSksZSBpbnN0YW5jZW9mIG95JiYoZS5fc3RhcnRBbmltYXRpb24oKSxlLl9kaXJlY3REZXNjZW5kYW50SXRlbXMuY2hhbmdlcy5waXBlKGl0KGUuY2xvc2UpKS5zdWJzY3JpYmUoKCk9PntvLndpdGhMb2NrZWRQb3NpdGlvbighMSkucmVhcHBseUxhc3RQb3NpdGlvbigpLG8ud2l0aExvY2tlZFBvc2l0aW9uKCEwKX0pKX1jbG9zZU1lbnUoKXt0aGlzLm1lbnU/LmNsb3NlLmVtaXQoKX1mb2N1cyhlLGkpe3RoaXMuX2ZvY3VzTW9uaXRvciYmZT90aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5fZWxlbWVudCxlLGkpOnRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cyhpKX11cGRhdGVQb3NpdGlvbigpe3RoaXMuX292ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uKCl9X2Rlc3Ryb3lNZW51KGUpe2lmKCF0aGlzLl9vdmVybGF5UmVmfHwhdGhpcy5tZW51T3BlbilyZXR1cm47bGV0IGk9dGhpcy5tZW51O3RoaXMuX2Nsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKSx0aGlzLnJlc3RvcmVGb2N1cyYmKCJrZXlkb3duIj09PWV8fCF0aGlzLl9vcGVuZWRCeXx8IXRoaXMudHJpZ2dlcnNTdWJtZW51KCkpJiZ0aGlzLmZvY3VzKHRoaXMuX29wZW5lZEJ5KSx0aGlzLl9vcGVuZWRCeT12b2lkIDAsaSBpbnN0YW5jZW9mIG95PyhpLl9yZXNldEFuaW1hdGlvbigpLGkubGF6eUNvbnRlbnQ/aS5fYW5pbWF0aW9uRG9uZS5waXBlKE9lKHI9PiJ2b2lkIj09PXIudG9TdGF0ZSksTHQoMSksaXQoaS5sYXp5Q29udGVudC5fYXR0YWNoZWQpKS5zdWJzY3JpYmUoe25leHQ6KCk9PmkubGF6eUNvbnRlbnQuZGV0YWNoKCksY29tcGxldGU6KCk9PnRoaXMuX3NldElzTWVudU9wZW4oITEpfSk6dGhpcy5fc2V0SXNNZW51T3BlbighMSkpOih0aGlzLl9zZXRJc01lbnVPcGVuKCExKSxpPy5sYXp5Q29udGVudD8uZGV0YWNoKCkpfV9pbml0TWVudShlKXtlLnBhcmVudE1lbnU9dGhpcy50cmlnZ2Vyc1N1Ym1lbnUoKT90aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnU6dm9pZCAwLGUuZGlyZWN0aW9uPXRoaXMuZGlyLHRoaXMuX3NldE1lbnVFbGV2YXRpb24oZSksZS5mb2N1c0ZpcnN0SXRlbSh0aGlzLl9vcGVuZWRCeXx8InByb2dyYW0iKSx0aGlzLl9zZXRJc01lbnVPcGVuKCEwKX1fc2V0TWVudUVsZXZhdGlvbihlKXtpZihlLnNldEVsZXZhdGlvbil7bGV0IGk9MCxyPWUucGFyZW50TWVudTtmb3IoO3I7KWkrKyxyPXIucGFyZW50TWVudTtlLnNldEVsZXZhdGlvbihpKX19X3NldElzTWVudU9wZW4oZSl7ZSE9PXRoaXMuX21lbnVPcGVuJiYodGhpcy5fbWVudU9wZW49ZSx0aGlzLl9tZW51T3Blbj90aGlzLm1lbnVPcGVuZWQuZW1pdCgpOnRoaXMubWVudUNsb3NlZC5lbWl0KCksdGhpcy50cmlnZ2Vyc1N1Ym1lbnUoKSYmdGhpcy5fbWVudUl0ZW1JbnN0YW5jZS5fc2V0SGlnaGxpZ2h0ZWQoZSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfV9jcmVhdGVPdmVybGF5KGUpe2lmKCF0aGlzLl9vdmVybGF5UmVmKXtsZXQgaT10aGlzLl9nZXRPdmVybGF5Q29uZmlnKGUpO3RoaXMuX3N1YnNjcmliZVRvUG9zaXRpb25zKGUsaS5wb3NpdGlvblN0cmF0ZWd5KSx0aGlzLl9vdmVybGF5UmVmPXRoaXMuX292ZXJsYXkuY3JlYXRlKGkpLHRoaXMuX292ZXJsYXlSZWYua2V5ZG93bkV2ZW50cygpLnN1YnNjcmliZSgpfXJldHVybiB0aGlzLl9vdmVybGF5UmVmfV9nZXRPdmVybGF5Q29uZmlnKGUpe3JldHVybiBuZXcgZWwoe3Bvc2l0aW9uU3RyYXRlZ3k6dGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5fZWxlbWVudCkud2l0aExvY2tlZFBvc2l0aW9uKCkud2l0aEdyb3dBZnRlck9wZW4oKS53aXRoVHJhbnNmb3JtT3JpZ2luT24oIi5tYXQtbWVudS1wYW5lbCwgLm1hdC1tZGMtbWVudS1wYW5lbCIpLGJhY2tkcm9wQ2xhc3M6ZS5iYWNrZHJvcENsYXNzfHwiY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AiLHBhbmVsQ2xhc3M6ZS5vdmVybGF5UGFuZWxDbGFzcyxzY3JvbGxTdHJhdGVneTp0aGlzLl9zY3JvbGxTdHJhdGVneSgpLGRpcmVjdGlvbjp0aGlzLl9kaXJ9KX1fc3Vic2NyaWJlVG9Qb3NpdGlvbnMoZSxpKXtlLnNldFBvc2l0aW9uQ2xhc3NlcyYmaS5wb3NpdGlvbkNoYW5nZXMuc3Vic2NyaWJlKHI9PntsZXQgbz0ic3RhcnQiPT09ci5jb25uZWN0aW9uUGFpci5vdmVybGF5WD8iYWZ0ZXIiOiJiZWZvcmUiLGE9InRvcCI9PT1yLmNvbm5lY3Rpb25QYWlyLm92ZXJsYXlZPyJiZWxvdyI6ImFib3ZlIjt0aGlzLl9uZ1pvbmU/dGhpcy5fbmdab25lLnJ1bigoKT0+ZS5zZXRQb3NpdGlvbkNsYXNzZXMobyxhKSk6ZS5zZXRQb3NpdGlvbkNsYXNzZXMobyxhKX0pfV9zZXRQb3NpdGlvbihlLGkpe2xldFtyLG9dPSJiZWZvcmUiPT09ZS54UG9zaXRpb24/WyJlbmQiLCJzdGFydCJdOlsic3RhcnQiLCJlbmQiXSxbYSxzXT0iYWJvdmUiPT09ZS55UG9zaXRpb24/WyJib3R0b20iLCJ0b3AiXTpbInRvcCIsImJvdHRvbSJdLFtsLGNdPVthLHNdLFtkLHVdPVtyLG9dLHA9MDtpZih0aGlzLnRyaWdnZXJzU3VibWVudSgpKXtpZih1PXI9ImJlZm9yZSI9PT1lLnhQb3NpdGlvbj8ic3RhcnQiOiJlbmQiLG89ZD0iZW5kIj09PXI/InN0YXJ0IjoiZW5kIix0aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnUpe2lmKG51bGw9PXRoaXMuX3BhcmVudElubmVyUGFkZGluZyl7bGV0IGg9dGhpcy5fcGFyZW50TWF0ZXJpYWxNZW51Lml0ZW1zLmZpcnN0O3RoaXMuX3BhcmVudElubmVyUGFkZGluZz1oP2guX2dldEhvc3RFbGVtZW50KCkub2Zmc2V0VG9wOjB9cD0iYm90dG9tIj09PWE/dGhpcy5fcGFyZW50SW5uZXJQYWRkaW5nOi10aGlzLl9wYXJlbnRJbm5lclBhZGRpbmd9fWVsc2UgZS5vdmVybGFwVHJpZ2dlcnx8KGw9InRvcCI9PT1hPyJib3R0b20iOiJ0b3AiLGM9InRvcCI9PT1zPyJib3R0b20iOiJ0b3AiKTtpLndpdGhQb3NpdGlvbnMoW3tvcmlnaW5YOnIsb3JpZ2luWTpsLG92ZXJsYXlYOmQsb3ZlcmxheVk6YSxvZmZzZXRZOnB9LHtvcmlnaW5YOm8sb3JpZ2luWTpsLG92ZXJsYXlYOnUsb3ZlcmxheVk6YSxvZmZzZXRZOnB9LHtvcmlnaW5YOnIsb3JpZ2luWTpjLG92ZXJsYXlYOmQsb3ZlcmxheVk6cyxvZmZzZXRZOi1wfSx7b3JpZ2luWDpvLG9yaWdpblk6YyxvdmVybGF5WDp1LG92ZXJsYXlZOnMsb2Zmc2V0WTotcH1dKX1fbWVudUNsb3NpbmdBY3Rpb25zKCl7bGV0IGU9dGhpcy5fb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCksaT10aGlzLl9vdmVybGF5UmVmLmRldGFjaG1lbnRzKCk7cmV0dXJuIHRuKGUsdGhpcy5fcGFyZW50TWF0ZXJpYWxNZW51P3RoaXMuX3BhcmVudE1hdGVyaWFsTWVudS5jbG9zZWQ6JHQoKSx0aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnU/dGhpcy5fcGFyZW50TWF0ZXJpYWxNZW51Ll9ob3ZlcmVkKCkucGlwZShPZShhPT5hIT09dGhpcy5fbWVudUl0ZW1JbnN0YW5jZSksT2UoKCk9PnRoaXMuX21lbnVPcGVuKSk6JHQoKSxpKX1faGFuZGxlTW91c2Vkb3duKGUpe0J2KGUpfHwodGhpcy5fb3BlbmVkQnk9MD09PWUuYnV0dG9uPyJtb3VzZSI6dm9pZCAwLHRoaXMudHJpZ2dlcnNTdWJtZW51KCkmJmUucHJldmVudERlZmF1bHQoKSl9X2hhbmRsZUtleWRvd24oZSl7bGV0IGk9ZS5rZXlDb2RlOygxMz09PWl8fDMyPT09aSkmJih0aGlzLl9vcGVuZWRCeT0ia2V5Ym9hcmQiKSx0aGlzLnRyaWdnZXJzU3VibWVudSgpJiYoMzk9PT1pJiYibHRyIj09PXRoaXMuZGlyfHwzNz09PWkmJiJydGwiPT09dGhpcy5kaXIpJiYodGhpcy5fb3BlbmVkQnk9ImtleWJvYXJkIix0aGlzLm9wZW5NZW51KCkpfV9oYW5kbGVDbGljayhlKXt0aGlzLnRyaWdnZXJzU3VibWVudSgpPyhlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3Blbk1lbnUoKSk6dGhpcy50b2dnbGVNZW51KCl9X2hhbmRsZUhvdmVyKCl7IXRoaXMudHJpZ2dlcnNTdWJtZW51KCl8fCF0aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnV8fCh0aGlzLl9ob3ZlclN1YnNjcmlwdGlvbj10aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnUuX2hvdmVyZWQoKS5waXBlKE9lKGU9PmU9PT10aGlzLl9tZW51SXRlbUluc3RhbmNlJiYhZS5kaXNhYmxlZCksUnMoMCxObSkpLnN1YnNjcmliZSgoKT0+e3RoaXMuX29wZW5lZEJ5PSJtb3VzZSIsdGhpcy5tZW51IGluc3RhbmNlb2Ygb3kmJnRoaXMubWVudS5faXNBbmltYXRpbmc/dGhpcy5tZW51Ll9hbmltYXRpb25Eb25lLnBpcGUoTHQoMSksUnMoMCxObSksaXQodGhpcy5fcGFyZW50TWF0ZXJpYWxNZW51Ll9ob3ZlcmVkKCkpKS5zdWJzY3JpYmUoKCk9PnRoaXMub3Blbk1lbnUoKSk6dGhpcy5vcGVuTWVudSgpfSkpfV9nZXRQb3J0YWwoZSl7cmV0dXJuKCF0aGlzLl9wb3J0YWx8fHRoaXMuX3BvcnRhbC50ZW1wbGF0ZVJlZiE9PWUudGVtcGxhdGVSZWYpJiYodGhpcy5fcG9ydGFsPW5ldyBUbyhlLnRlbXBsYXRlUmVmLHRoaXMuX3ZpZXdDb250YWluZXJSZWYpKSx0aGlzLl9wb3J0YWx9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoT2kpLEMoeGUpLEMoZWkpLEMoclgpLEMoSzIsOCksQyhFZCwxMCksQyh6aSw4KSxDKGZvKSxDKG90KSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4saG9zdFZhcnM6Myxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsxJmUmJkEoImNsaWNrIixmdW5jdGlvbihvKXtyZXR1cm4gaS5faGFuZGxlQ2xpY2sobyl9KSgibW91c2Vkb3duIixmdW5jdGlvbihvKXtyZXR1cm4gaS5faGFuZGxlTW91c2Vkb3duKG8pfSkoImtleWRvd24iLGZ1bmN0aW9uKG8pe3JldHVybiBpLl9oYW5kbGVLZXlkb3duKG8pfSksMiZlJiZCZSgiYXJpYS1oYXNwb3B1cCIsaS5tZW51PyJtZW51IjpudWxsKSgiYXJpYS1leHBhbmRlZCIsaS5tZW51T3BlbikoImFyaWEtY29udHJvbHMiLGkubWVudU9wZW4/aS5tZW51LnBhbmVsSWQ6bnVsbCl9LGlucHV0czp7X2RlcHJlY2F0ZWRNYXRNZW51VHJpZ2dlckZvcjpbIm1hdC1tZW51LXRyaWdnZXItZm9yIiwiX2RlcHJlY2F0ZWRNYXRNZW51VHJpZ2dlckZvciJdLG1lbnU6WyJtYXRNZW51VHJpZ2dlckZvciIsIm1lbnUiXSxtZW51RGF0YTpbIm1hdE1lbnVUcmlnZ2VyRGF0YSIsIm1lbnVEYXRhIl0scmVzdG9yZUZvY3VzOlsibWF0TWVudVRyaWdnZXJSZXN0b3JlRm9jdXMiLCJyZXN0b3JlRm9jdXMiXX0sb3V0cHV0czp7bWVudU9wZW5lZDoibWVudU9wZW5lZCIsb25NZW51T3Blbjoib25NZW51T3BlbiIsbWVudUNsb3NlZDoibWVudUNsb3NlZCIsb25NZW51Q2xvc2U6Im9uTWVudUNsb3NlIn19KSxufSkoKSxZdT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgbENle31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuKHR8fCh0PVhuKG4pKSkoaXx8bil9fSgpLG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsIm1hdC1tZW51LXRyaWdnZXItZm9yIiwiIl0sWyIiLCJtYXRNZW51VHJpZ2dlckZvciIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1tZGMtbWVudS10cmlnZ2VyIl0sZXhwb3J0QXM6WyJtYXRNZW51VHJpZ2dlciJdLGZlYXR1cmVzOltYZV19KSxufSkoKSxRdT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7cHJvdmlkZXJzOltzQ2VdLGltcG9ydHM6W0RlLF9hLGRuLERvLEljLGRuXX0pLG59KSgpO2Z1bmN0aW9uIGNDZShuLHQpezEmbiYmaygwLCJtYXQtaWNvbiIsOCl9ZnVuY3Rpb24gZENlKG4sdCl7MSZuJiZrKDAsIm1hdC1pY29uIiw5KX1mdW5jdGlvbiB1Q2Uobix0KXsxJm4mJmsoMCwibWF0LWljb24iLDEwKX12YXIgWWE9KCgpPT4oZnVuY3Rpb24obil7bltuLkRFRkFVTFQ9MF09IkRFRkFVTFQiLG5bbi5EQVJLX01PREVfT049MV09IkRBUktfTU9ERV9PTiIsbltuLkRBUktfTU9ERV9PRkY9Ml09IkRBUktfTU9ERV9PRkYifShZYXx8KFlhPXt9KSksWWEpKSgpLG9YPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLkRhcmtNb2RlT3ZlcnJpZGU9WWEsdGhpcy5vbk92ZXJyaWRlQ2hhbmdlZD1uZXcgRn1nZXRCdXR0b25UaXRsZSgpe2xldCBlO3N3aXRjaCh0aGlzLmRhcmtNb2RlT3ZlcnJpZGUpe2Nhc2UgWWEuREVGQVVMVDplPSJCcm93c2VyIGRlZmF1bHQiO2JyZWFrO2Nhc2UgWWEuREFSS19NT0RFX09OOmU9IkRhcmsgbW9kZSI7YnJlYWs7Y2FzZSBZYS5EQVJLX01PREVfT0ZGOmU9IkxpZ2h0IG1vZGUifXJldHVybmBDdXJyZW50IG1vZGU6IFske2V9XS4gU3dpdGNoIGJldHdlZW4gYnJvd3NlciBkZWZhdWx0LCBsaWdodCwgb3IgZGFyayB0aGVtZS5gfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJhcHAtaGVhZGVyLWRhcmstbW9kZS10b2dnbGUtY29tcG9uZW50Il1dLGlucHV0czp7ZGFya01vZGVPdmVycmlkZToiZGFya01vZGVPdmVycmlkZSJ9LG91dHB1dHM6e29uT3ZlcnJpZGVDaGFuZ2VkOiJvbk92ZXJyaWRlQ2hhbmdlZCJ9LGRlY2xzOjE1LHZhcnM6Nixjb25zdHM6W1sibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsIk1lbnUgZm9yIGNoYW5naW5nIGxpZ2h0IG9yIGRhcmsgdGhlbWUiLDMsIm1hdE1lbnVUcmlnZ2VyRm9yIiwibmdTd2l0Y2giLCJ0aXRsZSJdLFsic3ZnSWNvbiIsImJyaWdodG5lc3NfNl8yNHB4Iiw0LCJuZ1N3aXRjaENhc2UiXSxbInN2Z0ljb24iLCJsaWdodF9tb2RlXzI0cHgiLDQsIm5nU3dpdGNoQ2FzZSJdLFsic3ZnSWNvbiIsImRhcmtfbW9kZV8yNHB4Iiw0LCJuZ1N3aXRjaENhc2UiXSxbIm1lbnUiLCJtYXRNZW51Il0sWyJtYXQtbWVudS1pdGVtIiwiIiwidGl0bGUiLCJTZXQgdGhlIHRoZW1lIHRvIG1hdGNoIHRoZSBkZWZhdWx0IG1vZGUgaW4gdGhlIGJyb3dzZXIuIiwzLCJjbGljayJdLFsibWF0LW1lbnUtaXRlbSIsIiIsInRpdGxlIiwiRm9yY2UgbGlnaHQgVGVuc29yQm9hcmQgdGhlbWUuIiwzLCJjbGljayJdLFsibWF0LW1lbnUtaXRlbSIsIiIsInRpdGxlIiwiRm9yY2UgZGFyayBUZW5zb3JCb2FyZCB0aGVtZS4iLDMsImNsaWNrIl0sWyJzdmdJY29uIiwiYnJpZ2h0bmVzc182XzI0cHgiXSxbInN2Z0ljb24iLCJsaWdodF9tb2RlXzI0cHgiXSxbInN2Z0ljb24iLCJkYXJrX21vZGVfMjRweCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwiYnV0dG9uIiwwKSxTKDEsY0NlLDEsMCwibWF0LWljb24iLDEpLFMoMixkQ2UsMSwwLCJtYXQtaWNvbiIsMiksUygzLHVDZSwxLDAsIm1hdC1pY29uIiwzKSxnKCksZig0LCJtYXQtbWVudSIsbnVsbCw0KSg2LCJidXR0b24iLDUpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpLm9uT3ZlcnJpZGVDaGFuZ2VkLmVtaXQoaS5EYXJrTW9kZU92ZXJyaWRlLkRFRkFVTFQpfSksZig3LCJsYWJlbCIpLFQoOCwiQnJvd3NlciBkZWZhdWx0IiksZygpKCksZig5LCJidXR0b24iLDYpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpLm9uT3ZlcnJpZGVDaGFuZ2VkLmVtaXQoaS5EYXJrTW9kZU92ZXJyaWRlLkRBUktfTU9ERV9PRkYpfSksZigxMCwibGFiZWwiKSxUKDExLCJMaWdodCIpLGcoKSgpLGYoMTIsImJ1dHRvbiIsNyksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25PdmVycmlkZUNoYW5nZWQuZW1pdChpLkRhcmtNb2RlT3ZlcnJpZGUuREFSS19NT0RFX09OKX0pLGYoMTMsImxhYmVsIiksVCgxNCwiRGFyayIpLGcoKSgpKCkpLDImZSYmKGIoIm1hdE1lbnVUcmlnZ2VyRm9yIixzdCg1KSkoIm5nU3dpdGNoIixpLmRhcmtNb2RlT3ZlcnJpZGUpKCJ0aXRsZSIsaS5nZXRCdXR0b25UaXRsZSgpKSx2KDEpLGIoIm5nU3dpdGNoQ2FzZSIsaS5EYXJrTW9kZU92ZXJyaWRlLkRFRkFVTFQpLHYoMSksYigibmdTd2l0Y2hDYXNlIixpLkRhcmtNb2RlT3ZlcnJpZGUuREFSS19NT0RFX09GRiksdigxKSxiKCJuZ1N3aXRjaENhc2UiLGkuRGFya01vZGVPdmVycmlkZS5EQVJLX01PREVfT04pKX0sZGVwZW5kZW5jaWVzOltFcixibixYdSxFZCxZdSxtcixrcl0sZW5jYXBzdWxhdGlvbjoyfSksbn0pKCksYVg9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLnN0b3JlPWUsdGhpcy5kYXJrTW9kZU92ZXJyaWRlJD10aGlzLnN0b3JlLnNlbGVjdChjUykucGlwZShxKGk9Pm51bGw9PT1pP1lhLkRFRkFVTFQ6aT9ZYS5EQVJLX01PREVfT046WWEuREFSS19NT0RFX09GRikpfWNoYW5nZURhcmtNb2RlKGUpe2xldCBpPW51bGw7c3dpdGNoKGUpe2Nhc2UgWWEuREVGQVVMVDppPW51bGw7YnJlYWs7Y2FzZSBZYS5EQVJLX01PREVfT0ZGOmk9ITE7YnJlYWs7Y2FzZSBZYS5EQVJLX01PREVfT046aT0hMH10aGlzLnN0b3JlLmRpc3BhdGNoKFpTKHtlbmFibGVEYXJrTW9kZTppfSkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKEllKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1siYXBwLWhlYWRlci1kYXJrLW1vZGUtdG9nZ2xlIl1dLGRlY2xzOjIsdmFyczozLGNvbnN0czpbWzMsImRhcmtNb2RlT3ZlcnJpZGUiLCJvbk92ZXJyaWRlQ2hhbmdlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwiYXBwLWhlYWRlci1kYXJrLW1vZGUtdG9nZ2xlLWNvbXBvbmVudCIsMCksQSgib25PdmVycmlkZUNoYW5nZWQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLmNoYW5nZURhcmtNb2RlKG8pfSksVSgxLCJhc3luYyIpLGcoKSksMiZlJiZiKCJkYXJrTW9kZU92ZXJyaWRlIixHKDEsMSxpLmRhcmtNb2RlT3ZlcnJpZGUkKSl9LGRlcGVuZGVuY2llczpbb1gsY3RdLGVuY2Fwc3VsYXRpb246Mn0pLG59KSgpO2Z1bmN0aW9uIG1DZShuLHQpe312YXIgZkNlPWZ1bmN0aW9uKG4pe3JldHVybnthbmltYXRpb25EdXJhdGlvbjpufX0sZ0NlPWZ1bmN0aW9uKG4sdCl7cmV0dXJue3ZhbHVlOm4scGFyYW1zOnR9fTtmdW5jdGlvbiBfQ2Uobix0KXsxJm4mJlR0KDApfXZhciBjWD1bIioiXSxiQ2U9WyJ0YWJMaXN0Q29udGFpbmVyIl0sdkNlPVsidGFiTGlzdCJdLHlDZT1bInRhYkxpc3RJbm5lciJdLHhDZT1bIm5leHRQYWdpbmF0b3IiXSxDQ2U9WyJwcmV2aW91c1BhZ2luYXRvciJdLE1DZT1bInRhYkJvZHlXcmFwcGVyIl0sd0NlPVsidGFiSGVhZGVyIl07ZnVuY3Rpb24gU0NlKG4sdCl7fWZ1bmN0aW9uIEVDZShuLHQpezEmbiYmUygwLFNDZSwwLDAsIm5nLXRlbXBsYXRlIiwxNCksMiZuJiZiKCJjZGtQb3J0YWxPdXRsZXQiLHcoKS4kaW1wbGljaXQudGVtcGxhdGVMYWJlbCl9ZnVuY3Rpb24gVENlKG4sdCl7MSZuJiZUKDApLDImbiYma3QodygpLiRpbXBsaWNpdC50ZXh0TGFiZWwpfWZ1bmN0aW9uIERDZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImRpdiIsNiw3KSxBKCJjbGljayIsZnVuY3Rpb24oKXtsZXQgcj1uZShlKSxvPXIuJGltcGxpY2l0LGE9ci5pbmRleCxzPXcoKSxsPXN0KDEpO3JldHVybiBpZShzLl9oYW5kbGVDbGljayhvLGwsYSkpfSkoImNka0ZvY3VzQ2hhbmdlIixmdW5jdGlvbihyKXtsZXQgYT1uZShlKS5pbmRleDtyZXR1cm4gaWUodygpLl90YWJGb2N1c0NoYW5nZWQocixhKSl9KSxrKDIsInNwYW4iLDgpKDMsImRpdiIsOSksZig0LCJzcGFuIiwxMCkoNSwic3BhbiIsMTEpLFMoNixFQ2UsMSwxLCJuZy10ZW1wbGF0ZSIsMTIpLFMoNyxUQ2UsMSwxLCJuZy10ZW1wbGF0ZSIsbnVsbCwxMyxqdCksZygpKCkoKX1pZigyJm4pe2xldCBlPXQuJGltcGxpY2l0LGk9dC5pbmRleCxyPXN0KDEpLG89c3QoOCksYT13KCk7bnQoIm1kYy10YWItLWFjdGl2ZSIsYS5zZWxlY3RlZEluZGV4PT09aSksYigiaWQiLGEuX2dldFRhYkxhYmVsSWQoaSkpKCJuZ0NsYXNzIixlLmxhYmVsQ2xhc3MpKCJkaXNhYmxlZCIsZS5kaXNhYmxlZCkoImZpdElua0JhclRvQ29udGVudCIsYS5maXRJbmtCYXJUb0NvbnRlbnQpLEJlKCJ0YWJJbmRleCIsYS5fZ2V0VGFiSW5kZXgoaSkpKCJhcmlhLXBvc2luc2V0IixpKzEpKCJhcmlhLXNldHNpemUiLGEuX3RhYnMubGVuZ3RoKSgiYXJpYS1jb250cm9scyIsYS5fZ2V0VGFiQ29udGVudElkKGkpKSgiYXJpYS1zZWxlY3RlZCIsYS5zZWxlY3RlZEluZGV4PT09aSkoImFyaWEtbGFiZWwiLGUuYXJpYUxhYmVsfHxudWxsKSgiYXJpYS1sYWJlbGxlZGJ5IiwhZS5hcmlhTGFiZWwmJmUuYXJpYUxhYmVsbGVkYnk/ZS5hcmlhTGFiZWxsZWRieTpudWxsKSx2KDMpLGIoIm1hdFJpcHBsZVRyaWdnZXIiLHIpKCJtYXRSaXBwbGVEaXNhYmxlZCIsZS5kaXNhYmxlZHx8YS5kaXNhYmxlUmlwcGxlKSx2KDMpLGIoIm5nSWYiLGUudGVtcGxhdGVMYWJlbCkoIm5nSWZFbHNlIixvKX19ZnVuY3Rpb24gSUNlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwibWF0LXRhYi1ib2R5IiwxNSksQSgiX29uQ2VudGVyZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIG5lKGUpLGllKHcoKS5fcmVtb3ZlVGFiQm9keVdyYXBwZXJIZWlnaHQoKSl9KSgiX29uQ2VudGVyaW5nIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLl9zZXRUYWJCb2R5V3JhcHBlckhlaWdodChyKSl9KSxnKCl9aWYoMiZuKXtsZXQgZT10LiRpbXBsaWNpdCxpPXQuaW5kZXgscj13KCk7bnQoIm1hdC1tZGMtdGFiLWJvZHktYWN0aXZlIixyLnNlbGVjdGVkSW5kZXg9PT1pKSxiKCJpZCIsci5fZ2V0VGFiQ29udGVudElkKGkpKSgibmdDbGFzcyIsZS5ib2R5Q2xhc3MpKCJjb250ZW50IixlLmNvbnRlbnQpKCJwb3NpdGlvbiIsZS5wb3NpdGlvbikoIm9yaWdpbiIsZS5vcmlnaW4pKCJhbmltYXRpb25EdXJhdGlvbiIsci5hbmltYXRpb25EdXJhdGlvbikoInByZXNlcnZlQ29udGVudCIsci5wcmVzZXJ2ZUNvbnRlbnQpLEJlKCJ0YWJpbmRleCIsbnVsbCE9ci5jb250ZW50VGFiSW5kZXgmJnIuc2VsZWN0ZWRJbmRleD09PWk/ci5jb250ZW50VGFiSW5kZXg6bnVsbCkoImFyaWEtbGFiZWxsZWRieSIsci5fZ2V0VGFiTGFiZWxJZChpKSl9fXZhciBBQ2U9e3RyYW5zbGF0ZVRhYjpmcigidHJhbnNsYXRlVGFiIixbU2koImNlbnRlciwgdm9pZCwgbGVmdC1vcmlnaW4tY2VudGVyLCByaWdodC1vcmlnaW4tY2VudGVyIixybih7dHJhbnNmb3JtOiJub25lIn0pKSxTaSgibGVmdCIscm4oe3RyYW5zZm9ybToidHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIixtaW5IZWlnaHQ6IjFweCIsdmlzaWJpbGl0eToiaGlkZGVuIn0pKSxTaSgicmlnaHQiLHJuKHt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIixtaW5IZWlnaHQ6IjFweCIsdmlzaWJpbGl0eToiaGlkZGVuIn0pKSxiaSgiKiA9PiBsZWZ0LCAqID0+IHJpZ2h0LCBsZWZ0ID0+IGNlbnRlciwgcmlnaHQgPT4gY2VudGVyIixNaSgie3thbmltYXRpb25EdXJhdGlvbn19IGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKSIpKSxiaSgidm9pZCA9PiBsZWZ0LW9yaWdpbi1jZW50ZXIiLFtybih7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCkiLHZpc2liaWxpdHk6ImhpZGRlbiJ9KSxNaSgie3thbmltYXRpb25EdXJhdGlvbn19IGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKSIpXSksYmkoInZvaWQgPT4gcmlnaHQtb3JpZ2luLWNlbnRlciIsW3JuKHt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIix2aXNpYmlsaXR5OiJoaWRkZW4ifSksTWkoInt7YW5pbWF0aW9uRHVyYXRpb259fSBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSkiKV0pXSl9LFJDZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgYmF7Y29uc3RydWN0b3IoZSxpLHIsbyl7c3VwZXIoZSxpLG8pLHRoaXMuX2hvc3Q9cix0aGlzLl9jZW50ZXJpbmdTdWI9RW4uRU1QVFksdGhpcy5fbGVhdmluZ1N1Yj1Fbi5FTVBUWX1uZ09uSW5pdCgpe3N1cGVyLm5nT25Jbml0KCksdGhpcy5fY2VudGVyaW5nU3ViPXRoaXMuX2hvc3QuX2JlZm9yZUNlbnRlcmluZy5waXBlKGtuKHRoaXMuX2hvc3QuX2lzQ2VudGVyUG9zaXRpb24odGhpcy5faG9zdC5fcG9zaXRpb24pKSkuc3Vic2NyaWJlKGU9PntlJiYhdGhpcy5oYXNBdHRhY2hlZCgpJiZ0aGlzLmF0dGFjaCh0aGlzLl9ob3N0Ll9jb250ZW50KX0pLHRoaXMuX2xlYXZpbmdTdWI9dGhpcy5faG9zdC5fYWZ0ZXJMZWF2aW5nQ2VudGVyLnN1YnNjcmliZSgoKT0+e3RoaXMuX2hvc3QucHJlc2VydmVDb250ZW50fHx0aGlzLmRldGFjaCgpfSl9bmdPbkRlc3Ryb3koKXtzdXBlci5uZ09uRGVzdHJveSgpLHRoaXMuX2NlbnRlcmluZ1N1Yi51bnN1YnNjcmliZSgpLHRoaXMuX2xlYXZpbmdTdWIudW5zdWJzY3JpYmUoKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhobyksQyhlaSksQyhXbigoKT0+ZFgpKSxDKE50KSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsIm1hdFRhYkJvZHlIb3N0IiwiIl1dLGZlYXR1cmVzOltYZV19KSxufSkoKSxQQ2U9KCgpPT57Y2xhc3MgbntzZXQgcG9zaXRpb24oZSl7dGhpcy5fcG9zaXRpb25JbmRleD1lLHRoaXMuX2NvbXB1dGVQb3NpdGlvbkFuaW1hdGlvblN0YXRlKCl9Y29uc3RydWN0b3IoZSxpLHIpe3RoaXMuX2VsZW1lbnRSZWY9ZSx0aGlzLl9kaXI9aSx0aGlzLl9kaXJDaGFuZ2VTdWJzY3JpcHRpb249RW4uRU1QVFksdGhpcy5fdHJhbnNsYXRlVGFiQ29tcGxldGU9bmV3IEVlLHRoaXMuX29uQ2VudGVyaW5nPW5ldyBGLHRoaXMuX2JlZm9yZUNlbnRlcmluZz1uZXcgRix0aGlzLl9hZnRlckxlYXZpbmdDZW50ZXI9bmV3IEYsdGhpcy5fb25DZW50ZXJlZD1uZXcgRighMCksdGhpcy5hbmltYXRpb25EdXJhdGlvbj0iNTAwbXMiLHRoaXMucHJlc2VydmVDb250ZW50PSExLGkmJih0aGlzLl9kaXJDaGFuZ2VTdWJzY3JpcHRpb249aS5jaGFuZ2Uuc3Vic2NyaWJlKG89Pnt0aGlzLl9jb21wdXRlUG9zaXRpb25BbmltYXRpb25TdGF0ZShvKSxyLm1hcmtGb3JDaGVjaygpfSkpLHRoaXMuX3RyYW5zbGF0ZVRhYkNvbXBsZXRlLnBpcGUocmkoKG8sYSk9Pm8uZnJvbVN0YXRlPT09YS5mcm9tU3RhdGUmJm8udG9TdGF0ZT09PWEudG9TdGF0ZSkpLnN1YnNjcmliZShvPT57dGhpcy5faXNDZW50ZXJQb3NpdGlvbihvLnRvU3RhdGUpJiZ0aGlzLl9pc0NlbnRlclBvc2l0aW9uKHRoaXMuX3Bvc2l0aW9uKSYmdGhpcy5fb25DZW50ZXJlZC5lbWl0KCksdGhpcy5faXNDZW50ZXJQb3NpdGlvbihvLmZyb21TdGF0ZSkmJiF0aGlzLl9pc0NlbnRlclBvc2l0aW9uKHRoaXMuX3Bvc2l0aW9uKSYmdGhpcy5fYWZ0ZXJMZWF2aW5nQ2VudGVyLmVtaXQoKX0pfW5nT25Jbml0KCl7ImNlbnRlciI9PXRoaXMuX3Bvc2l0aW9uJiZudWxsIT10aGlzLm9yaWdpbiYmKHRoaXMuX3Bvc2l0aW9uPXRoaXMuX2NvbXB1dGVQb3NpdGlvbkZyb21PcmlnaW4odGhpcy5vcmlnaW4pKX1uZ09uRGVzdHJveSgpe3RoaXMuX2RpckNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3RyYW5zbGF0ZVRhYkNvbXBsZXRlLmNvbXBsZXRlKCl9X29uVHJhbnNsYXRlVGFiU3RhcnRlZChlKXtsZXQgaT10aGlzLl9pc0NlbnRlclBvc2l0aW9uKGUudG9TdGF0ZSk7dGhpcy5fYmVmb3JlQ2VudGVyaW5nLmVtaXQoaSksaSYmdGhpcy5fb25DZW50ZXJpbmcuZW1pdCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0KX1fZ2V0TGF5b3V0RGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuX2RpciYmInJ0bCI9PT10aGlzLl9kaXIudmFsdWU/InJ0bCI6Imx0ciJ9X2lzQ2VudGVyUG9zaXRpb24oZSl7cmV0dXJuImNlbnRlciI9PWV8fCJsZWZ0LW9yaWdpbi1jZW50ZXIiPT1lfHwicmlnaHQtb3JpZ2luLWNlbnRlciI9PWV9X2NvbXB1dGVQb3NpdGlvbkFuaW1hdGlvblN0YXRlKGU9dGhpcy5fZ2V0TGF5b3V0RGlyZWN0aW9uKCkpe3RoaXMuX3Bvc2l0aW9uPXRoaXMuX3Bvc2l0aW9uSW5kZXg8MD8ibHRyIj09ZT8ibGVmdCI6InJpZ2h0Ijp0aGlzLl9wb3NpdGlvbkluZGV4PjA/Imx0ciI9PWU/InJpZ2h0IjoibGVmdCI6ImNlbnRlciJ9X2NvbXB1dGVQb3NpdGlvbkZyb21PcmlnaW4oZSl7bGV0IGk9dGhpcy5fZ2V0TGF5b3V0RGlyZWN0aW9uKCk7cmV0dXJuImx0ciI9PWkmJmU8PTB8fCJydGwiPT1pJiZlPjA/ImxlZnQtb3JpZ2luLWNlbnRlciI6InJpZ2h0LW9yaWdpbi1jZW50ZXIifX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSxDKHppLDgpLEMoUXQpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixpbnB1dHM6e19jb250ZW50OlsiY29udGVudCIsIl9jb250ZW50Il0sb3JpZ2luOiJvcmlnaW4iLGFuaW1hdGlvbkR1cmF0aW9uOiJhbmltYXRpb25EdXJhdGlvbiIscHJlc2VydmVDb250ZW50OiJwcmVzZXJ2ZUNvbnRlbnQiLHBvc2l0aW9uOiJwb3NpdGlvbiJ9LG91dHB1dHM6e19vbkNlbnRlcmluZzoiX29uQ2VudGVyaW5nIixfYmVmb3JlQ2VudGVyaW5nOiJfYmVmb3JlQ2VudGVyaW5nIixfYWZ0ZXJMZWF2aW5nQ2VudGVyOiJfYWZ0ZXJMZWF2aW5nQ2VudGVyIixfb25DZW50ZXJlZDoiX29uQ2VudGVyZWQifX0pLG59KSgpLGRYPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBQQ2V7Y29uc3RydWN0b3IoZSxpLHIpe3N1cGVyKGUsaSxyKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyh4ZSksQyh6aSw4KSxDKFF0KSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sibWF0LXRhYi1ib2R5Il1dLHZpZXdRdWVyeTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmVWUoYmEsNSksMiZlKXtsZXQgcjtiZShyPXZlKCkpJiYoaS5fcG9ydGFsSG9zdD1yLmZpcnN0KX19LGhvc3RBdHRyczpbMSwibWF0LW1kYy10YWItYm9keSJdLGZlYXR1cmVzOltYZV0sZGVjbHM6Myx2YXJzOjYsY29uc3RzOltbImNka1Njcm9sbGFibGUiLCIiLDEsIm1hdC1tZGMtdGFiLWJvZHktY29udGVudCJdLFsiY29udGVudCIsIiJdLFsibWF0VGFiQm9keUhvc3QiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImRpdiIsMCwxKSxBKCJAdHJhbnNsYXRlVGFiLnN0YXJ0IixmdW5jdGlvbihvKXtyZXR1cm4gaS5fb25UcmFuc2xhdGVUYWJTdGFydGVkKG8pfSkoIkB0cmFuc2xhdGVUYWIuZG9uZSIsZnVuY3Rpb24obyl7cmV0dXJuIGkuX3RyYW5zbGF0ZVRhYkNvbXBsZXRlLm5leHQobyl9KSxTKDIsbUNlLDAsMCwibmctdGVtcGxhdGUiLDIpLGcoKSksMiZlJiZiKCJAdHJhbnNsYXRlVGFiIixTbygzLGdDZSxpLl9wb3NpdGlvbixVbigxLGZDZSxpLmFuaW1hdGlvbkR1cmF0aW9uKSkpfSxkZXBlbmRlbmNpZXM6W1JDZV0sc3R5bGVzOlsnLm1hdC1tZGMtdGFiLWJvZHl7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW47b3V0bGluZTowO2ZsZXgtYmFzaXM6MTAwJX0ubWF0LW1kYy10YWItYm9keS5tYXQtbWRjLXRhYi1ib2R5LWFjdGl2ZXtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87ei1pbmRleDoxO2ZsZXgtZ3JvdzoxfS5tYXQtbWRjLXRhYi1ncm91cC5tYXQtbWRjLXRhYi1ncm91cC1keW5hbWljLWhlaWdodCAubWF0LW1kYy10YWItYm9keS5tYXQtbWRjLXRhYi1ib2R5LWFjdGl2ZXtvdmVyZmxvdy15OmhpZGRlbn0ubWF0LW1kYy10YWItYm9keS1jb250ZW50e2hlaWdodDoxMDAlO292ZXJmbG93OmF1dG99Lm1hdC1tZGMtdGFiLWdyb3VwLWR5bmFtaWMtaGVpZ2h0IC5tYXQtbWRjLXRhYi1ib2R5LWNvbnRlbnR7b3ZlcmZsb3c6aGlkZGVufS5tYXQtbWRjLXRhYi1ib2R5LWNvbnRlbnRbc3R5bGUqPSJ2aXNpYmlsaXR5OiBoaWRkZW4iXXtkaXNwbGF5Om5vbmV9J10sZW5jYXBzdWxhdGlvbjoyLGRhdGE6e2FuaW1hdGlvbjpbQUNlLnRyYW5zbGF0ZVRhYl19fSksbn0pKCksa0NlPW5ldyB0ZSgiTWF0VGFiQ29udGVudCIpLE9DZT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMudGVtcGxhdGU9ZX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhvaSkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJtYXRUYWJDb250ZW50IiwiIl1dLGZlYXR1cmVzOltWdChbe3Byb3ZpZGU6a0NlLHVzZUV4aXN0aW5nOm59XSldfSksbn0pKCksRkNlPW5ldyB0ZSgiTWF0VGFiTGFiZWwiKSx1WD1uZXcgdGUoIk1BVF9UQUIiKSx0Tj0oKCk9PntjbGFzcyBuIGV4dGVuZHMgRzd7Y29uc3RydWN0b3IoZSxpLHIpe3N1cGVyKGUsaSksdGhpcy5fY2xvc2VzdFRhYj1yfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKG9pKSxDKGVpKSxDKHVYLDgpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siIiwibWF0LXRhYi1sYWJlbCIsIiJdLFsiIiwibWF0VGFiTGFiZWwiLCIiXV0sZmVhdHVyZXM6W1Z0KFt7cHJvdmlkZTpGQ2UsdXNlRXhpc3Rpbmc6bn1dKSxYZV19KSxufSkoKSxKMj0ibWRjLXRhYi1pbmRpY2F0b3ItLWFjdGl2ZSIsc1g9Im1kYy10YWItaW5kaWNhdG9yLS1uby10cmFuc2l0aW9uIjtmdW5jdGlvbiBwWChuKXtyZXR1cm4gY2xhc3MgZXh0ZW5kcyBue2NvbnN0cnVjdG9yKC4uLnQpe3N1cGVyKC4uLnQpLHRoaXMuX2ZpdFRvQ29udGVudD0hMX1nZXQgZml0SW5rQmFyVG9Db250ZW50KCl7cmV0dXJuIHRoaXMuX2ZpdFRvQ29udGVudH1zZXQgZml0SW5rQmFyVG9Db250ZW50KHQpe2xldCBlPXZ0KHQpO3RoaXMuX2ZpdFRvQ29udGVudCE9PWUmJih0aGlzLl9maXRUb0NvbnRlbnQ9ZSx0aGlzLl9pbmtCYXJFbGVtZW50JiZ0aGlzLl9hcHBlbmRJbmtCYXJFbGVtZW50KCkpfWFjdGl2YXRlSW5rQmFyKHQpe2xldCBlPXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O2lmKCF0fHwhZS5nZXRCb3VuZGluZ0NsaWVudFJlY3R8fCF0aGlzLl9pbmtCYXJDb250ZW50RWxlbWVudClyZXR1cm4gdm9pZCBlLmNsYXNzTGlzdC5hZGQoSjIpO2xldCBpPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj10LndpZHRoL2kud2lkdGgsbz10LmxlZnQtaS5sZWZ0O2UuY2xhc3NMaXN0LmFkZChzWCksdGhpcy5faW5rQmFyQ29udGVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoInRyYW5zZm9ybSIsYHRyYW5zbGF0ZVgoJHtvfXB4KSBzY2FsZVgoJHtyfSlgKSxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGUuY2xhc3NMaXN0LnJlbW92ZShzWCksZS5jbGFzc0xpc3QuYWRkKEoyKSx0aGlzLl9pbmtCYXJDb250ZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgidHJhbnNmb3JtIiwiIil9ZGVhY3RpdmF0ZUlua0Jhcigpe3RoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoSjIpfW5nT25Jbml0KCl7dGhpcy5fY3JlYXRlSW5rQmFyRWxlbWVudCgpfW5nT25EZXN0cm95KCl7dGhpcy5faW5rQmFyRWxlbWVudD8ucmVtb3ZlKCksdGhpcy5faW5rQmFyRWxlbWVudD10aGlzLl9pbmtCYXJDb250ZW50RWxlbWVudD1udWxsfV9jcmVhdGVJbmtCYXJFbGVtZW50KCl7bGV0IHQ9dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQ7dGhpcy5faW5rQmFyRWxlbWVudD10LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSx0aGlzLl9pbmtCYXJDb250ZW50RWxlbWVudD10LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSx0aGlzLl9pbmtCYXJFbGVtZW50LmNsYXNzTmFtZT0ibWRjLXRhYi1pbmRpY2F0b3IiLHRoaXMuX2lua0JhckNvbnRlbnRFbGVtZW50LmNsYXNzTmFtZT0ibWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQgbWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSIsdGhpcy5faW5rQmFyRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9pbmtCYXJDb250ZW50RWxlbWVudCksdGhpcy5fYXBwZW5kSW5rQmFyRWxlbWVudCgpfV9hcHBlbmRJbmtCYXJFbGVtZW50KCl7KHRoaXMuX2ZpdFRvQ29udGVudD90aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCIubWRjLXRhYl9fY29udGVudCIpOnRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5hcHBlbmRDaGlsZCh0aGlzLl9pbmtCYXJFbGVtZW50KX19fW5ldyB0ZSgiTWF0SW5rQmFyUG9zaXRpb25lciIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gdD0+KHtsZWZ0OnQ/KHQub2Zmc2V0TGVmdHx8MCkrInB4IjoiMCIsd2lkdGg6dD8odC5vZmZzZXRXaWR0aHx8MCkrInB4IjoiMCJ9KX19KTt2YXIgTENlPWFvKGNsYXNze30pLEJDZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgTENle2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5lbGVtZW50UmVmPWV9Zm9jdXMoKXt0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpfWdldE9mZnNldExlZnQoKXtyZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdH1nZXRPZmZzZXRXaWR0aCgpe3JldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aH19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyh4ZSkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLGZlYXR1cmVzOltYZV19KSxufSkoKSxWQ2U9cFgoQkNlKSxoWD0oKCk9PntjbGFzcyBuIGV4dGVuZHMgVkNle31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuKHR8fCh0PVhuKG4pKSkoaXx8bil9fSgpLG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsIm1hdFRhYkxhYmVsV3JhcHBlciIsIiJdXSxob3N0VmFyczozLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezImZSYmKEJlKCJhcmlhLWRpc2FibGVkIiwhIWkuZGlzYWJsZWQpLG50KCJtYXQtbWRjLXRhYi1kaXNhYmxlZCIsaS5kaXNhYmxlZCkpfSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCIsZml0SW5rQmFyVG9Db250ZW50OiJmaXRJbmtCYXJUb0NvbnRlbnQifSxmZWF0dXJlczpbWGVdfSksbn0pKCksSENlPWFvKGNsYXNze30pLG1YPW5ldyB0ZSgiTUFUX1RBQl9HUk9VUCIpLHpDZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgSENle2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuX2NvbnRlbnRQb3J0YWx9Y29uc3RydWN0b3IoZSxpKXtzdXBlcigpLHRoaXMuX3ZpZXdDb250YWluZXJSZWY9ZSx0aGlzLl9jbG9zZXN0VGFiR3JvdXA9aSx0aGlzLnRleHRMYWJlbD0iIix0aGlzLl9jb250ZW50UG9ydGFsPW51bGwsdGhpcy5fc3RhdGVDaGFuZ2VzPW5ldyBFZSx0aGlzLnBvc2l0aW9uPW51bGwsdGhpcy5vcmlnaW49bnVsbCx0aGlzLmlzQWN0aXZlPSExfW5nT25DaGFuZ2VzKGUpeyhlLmhhc093blByb3BlcnR5KCJ0ZXh0TGFiZWwiKXx8ZS5oYXNPd25Qcm9wZXJ0eSgiZGlzYWJsZWQiKSkmJnRoaXMuX3N0YXRlQ2hhbmdlcy5uZXh0KCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zdGF0ZUNoYW5nZXMuY29tcGxldGUoKX1uZ09uSW5pdCgpe3RoaXMuX2NvbnRlbnRQb3J0YWw9bmV3IFRvKHRoaXMuX2V4cGxpY2l0Q29udGVudHx8dGhpcy5faW1wbGljaXRDb250ZW50LHRoaXMuX3ZpZXdDb250YWluZXJSZWYpfV9zZXRUZW1wbGF0ZUxhYmVsSW5wdXQoZSl7ZSYmZS5fY2xvc2VzdFRhYj09PXRoaXMmJih0aGlzLl90ZW1wbGF0ZUxhYmVsPWUpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKGVpKSxDKG1YLDgpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bix2aWV3UXVlcnk6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJlVlKG9pLDcpLDImZSl7bGV0IHI7YmUocj12ZSgpKSYmKGkuX2ltcGxpY2l0Q29udGVudD1yLmZpcnN0KX19LGlucHV0czp7dGV4dExhYmVsOlsibGFiZWwiLCJ0ZXh0TGFiZWwiXSxhcmlhTGFiZWw6WyJhcmlhLWxhYmVsIiwiYXJpYUxhYmVsIl0sYXJpYUxhYmVsbGVkYnk6WyJhcmlhLWxhYmVsbGVkYnkiLCJhcmlhTGFiZWxsZWRieSJdLGxhYmVsQ2xhc3M6ImxhYmVsQ2xhc3MiLGJvZHlDbGFzczoiYm9keUNsYXNzIn0sZmVhdHVyZXM6W1hlLHF0XX0pLG59KSgpLGF5PSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyB6Q2V7Z2V0IHRlbXBsYXRlTGFiZWwoKXtyZXR1cm4gdGhpcy5fdGVtcGxhdGVMYWJlbH1zZXQgdGVtcGxhdGVMYWJlbChlKXt0aGlzLl9zZXRUZW1wbGF0ZUxhYmVsSW5wdXQoZSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4odHx8KHQ9WG4obikpKShpfHxuKX19KCksbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtYXQtdGFiIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGUsaSxyKXtpZigxJmUmJihCbihyLE9DZSw3LG9pKSxCbihyLHROLDUpKSwyJmUpe2xldCBvO2JlKG89dmUoKSkmJihpLl9leHBsaWNpdENvbnRlbnQ9by5maXJzdCksYmUobz12ZSgpKSYmKGkudGVtcGxhdGVMYWJlbD1vLmZpcnN0KX19LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIn0sZXhwb3J0QXM6WyJtYXRUYWIiXSxmZWF0dXJlczpbVnQoW3twcm92aWRlOnVYLHVzZUV4aXN0aW5nOm59XSksWGVdLG5nQ29udGVudFNlbGVjdG9yczpjWCxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGZuKCksUygwLF9DZSwxLDAsIm5nLXRlbXBsYXRlIikpfSxlbmNhcHN1bGF0aW9uOjJ9KSxufSkoKSxsWD16YSh7cGFzc2l2ZTohMH0pLGZYPSgoKT0+e2NsYXNzIG57Z2V0IGRpc2FibGVQYWdpbmF0aW9uKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVQYWdpbmF0aW9ufXNldCBkaXNhYmxlUGFnaW5hdGlvbihlKXt0aGlzLl9kaXNhYmxlUGFnaW5hdGlvbj12dChlKX1nZXQgc2VsZWN0ZWRJbmRleCgpe3JldHVybiB0aGlzLl9zZWxlY3RlZEluZGV4fXNldCBzZWxlY3RlZEluZGV4KGUpe2U9bWkoZSksdGhpcy5fc2VsZWN0ZWRJbmRleCE9ZSYmKHRoaXMuX3NlbGVjdGVkSW5kZXhDaGFuZ2VkPSEwLHRoaXMuX3NlbGVjdGVkSW5kZXg9ZSx0aGlzLl9rZXlNYW5hZ2VyJiZ0aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oZSkpfWNvbnN0cnVjdG9yKGUsaSxyLG8sYSxzLGwpe3RoaXMuX2VsZW1lbnRSZWY9ZSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1pLHRoaXMuX3ZpZXdwb3J0UnVsZXI9cix0aGlzLl9kaXI9byx0aGlzLl9uZ1pvbmU9YSx0aGlzLl9wbGF0Zm9ybT1zLHRoaXMuX2FuaW1hdGlvbk1vZGU9bCx0aGlzLl9zY3JvbGxEaXN0YW5jZT0wLHRoaXMuX3NlbGVjdGVkSW5kZXhDaGFuZ2VkPSExLHRoaXMuX2Rlc3Ryb3llZD1uZXcgRWUsdGhpcy5fc2hvd1BhZ2luYXRpb25Db250cm9scz0hMSx0aGlzLl9kaXNhYmxlU2Nyb2xsQWZ0ZXI9ITAsdGhpcy5fZGlzYWJsZVNjcm9sbEJlZm9yZT0hMCx0aGlzLl9zdG9wU2Nyb2xsaW5nPW5ldyBFZSx0aGlzLl9kaXNhYmxlUGFnaW5hdGlvbj0hMSx0aGlzLl9zZWxlY3RlZEluZGV4PTAsdGhpcy5zZWxlY3RGb2N1c2VkSW5kZXg9bmV3IEYsdGhpcy5pbmRleEZvY3VzZWQ9bmV3IEYsYS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e0VpKGUubmF0aXZlRWxlbWVudCwibW91c2VsZWF2ZSIpLnBpcGUoaXQodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5fc3RvcEludGVydmFsKCl9KX0pfW5nQWZ0ZXJWaWV3SW5pdCgpe0VpKHRoaXMuX3ByZXZpb3VzUGFnaW5hdG9yLm5hdGl2ZUVsZW1lbnQsInRvdWNoc3RhcnQiLGxYKS5waXBlKGl0KHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKT0+e3RoaXMuX2hhbmRsZVBhZ2luYXRvclByZXNzKCJiZWZvcmUiKX0pLEVpKHRoaXMuX25leHRQYWdpbmF0b3IubmF0aXZlRWxlbWVudCwidG91Y2hzdGFydCIsbFgpLnBpcGUoaXQodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5faGFuZGxlUGFnaW5hdG9yUHJlc3MoImFmdGVyIil9KX1uZ0FmdGVyQ29udGVudEluaXQoKXtsZXQgZT10aGlzLl9kaXI/dGhpcy5fZGlyLmNoYW5nZTokdCgibHRyIiksaT10aGlzLl92aWV3cG9ydFJ1bGVyLmNoYW5nZSgxNTApLHI9KCk9Pnt0aGlzLnVwZGF0ZVBhZ2luYXRpb24oKSx0aGlzLl9hbGlnbklua0JhclRvU2VsZWN0ZWRUYWIoKX07dGhpcy5fa2V5TWFuYWdlcj1uZXcga3UodGhpcy5faXRlbXMpLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5fZ2V0TGF5b3V0RGlyZWN0aW9uKCkpLndpdGhIb21lQW5kRW5kKCkud2l0aFdyYXAoKS5za2lwUHJlZGljYXRlKCgpPT4hMSksdGhpcy5fa2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKHRoaXMuX3NlbGVjdGVkSW5kZXgpLHRoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKEx0KDEpKS5zdWJzY3JpYmUociksdG4oZSxpLHRoaXMuX2l0ZW1zLmNoYW5nZXMsdGhpcy5faXRlbXNSZXNpemVkKCkpLnBpcGUoaXQodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5fbmdab25lLnJ1bigoKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pnt0aGlzLl9zY3JvbGxEaXN0YW5jZT1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuX2dldE1heFNjcm9sbERpc3RhbmNlKCksdGhpcy5fc2Nyb2xsRGlzdGFuY2UpKSxyKCl9KX0pLHRoaXMuX2tleU1hbmFnZXIud2l0aEhvcml6b250YWxPcmllbnRhdGlvbih0aGlzLl9nZXRMYXlvdXREaXJlY3Rpb24oKSl9KSx0aGlzLl9rZXlNYW5hZ2VyLmNoYW5nZS5zdWJzY3JpYmUobz0+e3RoaXMuaW5kZXhGb2N1c2VkLmVtaXQobyksdGhpcy5fc2V0VGFiRm9jdXMobyl9KX1faXRlbXNSZXNpemVkKCl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIFJlc2l6ZU9ic2VydmVyP0tyOnRoaXMuX2l0ZW1zLmNoYW5nZXMucGlwZShrbih0aGlzLl9pdGVtcyksSm4oZT0+bmV3IEt0KGk9PnRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e2xldCByPW5ldyBSZXNpemVPYnNlcnZlcihvPT5pLm5leHQobykpO3JldHVybiBlLmZvckVhY2gobz0+ci5vYnNlcnZlKG8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSksKCk9PntyLmRpc2Nvbm5lY3QoKX19KSkpLG9zKDEpLE9lKGU9PmUuc29tZShpPT5pLmNvbnRlbnRSZWN0LndpZHRoPjAmJmkuY29udGVudFJlY3QuaGVpZ2h0PjApKSl9bmdBZnRlckNvbnRlbnRDaGVja2VkKCl7dGhpcy5fdGFiTGFiZWxDb3VudCE9dGhpcy5faXRlbXMubGVuZ3RoJiYodGhpcy51cGRhdGVQYWdpbmF0aW9uKCksdGhpcy5fdGFiTGFiZWxDb3VudD10aGlzLl9pdGVtcy5sZW5ndGgsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpLHRoaXMuX3NlbGVjdGVkSW5kZXhDaGFuZ2VkJiYodGhpcy5fc2Nyb2xsVG9MYWJlbCh0aGlzLl9zZWxlY3RlZEluZGV4KSx0aGlzLl9jaGVja1Njcm9sbGluZ0NvbnRyb2xzKCksdGhpcy5fYWxpZ25JbmtCYXJUb1NlbGVjdGVkVGFiKCksdGhpcy5fc2VsZWN0ZWRJbmRleENoYW5nZWQ9ITEsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpLHRoaXMuX3Njcm9sbERpc3RhbmNlQ2hhbmdlZCYmKHRoaXMuX3VwZGF0ZVRhYlNjcm9sbFBvc2l0aW9uKCksdGhpcy5fc2Nyb2xsRGlzdGFuY2VDaGFuZ2VkPSExLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1uZ09uRGVzdHJveSgpe3RoaXMuX2tleU1hbmFnZXI/LmRlc3Ryb3koKSx0aGlzLl9kZXN0cm95ZWQubmV4dCgpLHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpLHRoaXMuX3N0b3BTY3JvbGxpbmcuY29tcGxldGUoKX1faGFuZGxlS2V5ZG93bihlKXtpZighT3IoZSkpc3dpdGNoKGUua2V5Q29kZSl7Y2FzZSAxMzpjYXNlIDMyOmlmKHRoaXMuZm9jdXNJbmRleCE9PXRoaXMuc2VsZWN0ZWRJbmRleCl7bGV0IGk9dGhpcy5faXRlbXMuZ2V0KHRoaXMuZm9jdXNJbmRleCk7aSYmIWkuZGlzYWJsZWQmJih0aGlzLnNlbGVjdEZvY3VzZWRJbmRleC5lbWl0KHRoaXMuZm9jdXNJbmRleCksdGhpcy5faXRlbVNlbGVjdGVkKGUpKX1icmVhaztkZWZhdWx0OnRoaXMuX2tleU1hbmFnZXIub25LZXlkb3duKGUpfX1fb25Db250ZW50Q2hhbmdlcygpe2xldCBlPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudDtlIT09dGhpcy5fY3VycmVudFRleHRDb250ZW50JiYodGhpcy5fY3VycmVudFRleHRDb250ZW50PWV8fCIiLHRoaXMuX25nWm9uZS5ydW4oKCk9Pnt0aGlzLnVwZGF0ZVBhZ2luYXRpb24oKSx0aGlzLl9hbGlnbklua0JhclRvU2VsZWN0ZWRUYWIoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX0pKX11cGRhdGVQYWdpbmF0aW9uKCl7dGhpcy5fY2hlY2tQYWdpbmF0aW9uRW5hYmxlZCgpLHRoaXMuX2NoZWNrU2Nyb2xsaW5nQ29udHJvbHMoKSx0aGlzLl91cGRhdGVUYWJTY3JvbGxQb3NpdGlvbigpfWdldCBmb2N1c0luZGV4KCl7cmV0dXJuIHRoaXMuX2tleU1hbmFnZXI/dGhpcy5fa2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXg6MH1zZXQgZm9jdXNJbmRleChlKXshdGhpcy5faXNWYWxpZEluZGV4KGUpfHx0aGlzLmZvY3VzSW5kZXg9PT1lfHwhdGhpcy5fa2V5TWFuYWdlcnx8dGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGUpfV9pc1ZhbGlkSW5kZXgoZSl7cmV0dXJuIXRoaXMuX2l0ZW1zfHwhIXRoaXMuX2l0ZW1zLnRvQXJyYXkoKVtlXX1fc2V0VGFiRm9jdXMoZSl7aWYodGhpcy5fc2hvd1BhZ2luYXRpb25Db250cm9scyYmdGhpcy5fc2Nyb2xsVG9MYWJlbChlKSx0aGlzLl9pdGVtcyYmdGhpcy5faXRlbXMubGVuZ3RoKXt0aGlzLl9pdGVtcy50b0FycmF5KClbZV0uZm9jdXMoKTtsZXQgaT10aGlzLl90YWJMaXN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7aS5zY3JvbGxMZWZ0PSJsdHIiPT10aGlzLl9nZXRMYXlvdXREaXJlY3Rpb24oKT8wOmkuc2Nyb2xsV2lkdGgtaS5vZmZzZXRXaWR0aH19X2dldExheW91dERpcmVjdGlvbigpe3JldHVybiB0aGlzLl9kaXImJiJydGwiPT09dGhpcy5fZGlyLnZhbHVlPyJydGwiOiJsdHIifV91cGRhdGVUYWJTY3JvbGxQb3NpdGlvbigpe2lmKHRoaXMuZGlzYWJsZVBhZ2luYXRpb24pcmV0dXJuO2xldCBlPXRoaXMuc2Nyb2xsRGlzdGFuY2UsaT0ibHRyIj09PXRoaXMuX2dldExheW91dERpcmVjdGlvbigpPy1lOmU7dGhpcy5fdGFiTGlzdC5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWCgke01hdGgucm91bmQoaSl9cHgpYCwodGhpcy5fcGxhdGZvcm0uVFJJREVOVHx8dGhpcy5fcGxhdGZvcm0uRURHRSkmJih0aGlzLl90YWJMaXN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdD0wKX1nZXQgc2Nyb2xsRGlzdGFuY2UoKXtyZXR1cm4gdGhpcy5fc2Nyb2xsRGlzdGFuY2V9c2V0IHNjcm9sbERpc3RhbmNlKGUpe3RoaXMuX3Njcm9sbFRvKGUpfV9zY3JvbGxIZWFkZXIoZSl7cmV0dXJuIHRoaXMuX3Njcm9sbFRvKHRoaXMuX3Njcm9sbERpc3RhbmNlKygiYmVmb3JlIj09ZT8tMToxKSp0aGlzLl90YWJMaXN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgvMyl9X2hhbmRsZVBhZ2luYXRvckNsaWNrKGUpe3RoaXMuX3N0b3BJbnRlcnZhbCgpLHRoaXMuX3Njcm9sbEhlYWRlcihlKX1fc2Nyb2xsVG9MYWJlbChlKXtpZih0aGlzLmRpc2FibGVQYWdpbmF0aW9uKXJldHVybjtsZXQgaT10aGlzLl9pdGVtcz90aGlzLl9pdGVtcy50b0FycmF5KClbZV06bnVsbDtpZighaSlyZXR1cm47bGV0IHMsbCxyPXRoaXMuX3RhYkxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCx7b2Zmc2V0TGVmdDpvLG9mZnNldFdpZHRoOmF9PWkuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50OyJsdHIiPT10aGlzLl9nZXRMYXlvdXREaXJlY3Rpb24oKT8ocz1vLGw9cythKToobD10aGlzLl90YWJMaXN0SW5uZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aC1vLHM9bC1hKTtsZXQgYz10aGlzLnNjcm9sbERpc3RhbmNlLGQ9dGhpcy5zY3JvbGxEaXN0YW5jZStyO3M8Yz90aGlzLnNjcm9sbERpc3RhbmNlLT1jLXM6bD5kJiYodGhpcy5zY3JvbGxEaXN0YW5jZSs9TWF0aC5taW4obC1kLHMtYykpfV9jaGVja1BhZ2luYXRpb25FbmFibGVkKCl7aWYodGhpcy5kaXNhYmxlUGFnaW5hdGlvbil0aGlzLl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzPSExO2Vsc2V7bGV0IGU9dGhpcy5fdGFiTGlzdElubmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGg+dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO2V8fCh0aGlzLnNjcm9sbERpc3RhbmNlPTApLGUhPT10aGlzLl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzJiZ0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSx0aGlzLl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzPWV9fV9jaGVja1Njcm9sbGluZ0NvbnRyb2xzKCl7dGhpcy5kaXNhYmxlUGFnaW5hdGlvbj90aGlzLl9kaXNhYmxlU2Nyb2xsQWZ0ZXI9dGhpcy5fZGlzYWJsZVNjcm9sbEJlZm9yZT0hMDoodGhpcy5fZGlzYWJsZVNjcm9sbEJlZm9yZT0wPT10aGlzLnNjcm9sbERpc3RhbmNlLHRoaXMuX2Rpc2FibGVTY3JvbGxBZnRlcj10aGlzLnNjcm9sbERpc3RhbmNlPT10aGlzLl9nZXRNYXhTY3JvbGxEaXN0YW5jZSgpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1fZ2V0TWF4U2Nyb2xsRGlzdGFuY2UoKXtyZXR1cm4gdGhpcy5fdGFiTGlzdElubmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGgtdGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRofHwwfV9hbGlnbklua0JhclRvU2VsZWN0ZWRUYWIoKXtsZXQgZT10aGlzLl9pdGVtcyYmdGhpcy5faXRlbXMubGVuZ3RoP3RoaXMuX2l0ZW1zLnRvQXJyYXkoKVt0aGlzLnNlbGVjdGVkSW5kZXhdOm51bGwsaT1lP2UuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Om51bGw7aT90aGlzLl9pbmtCYXIuYWxpZ25Ub0VsZW1lbnQoaSk6dGhpcy5faW5rQmFyLmhpZGUoKX1fc3RvcEludGVydmFsKCl7dGhpcy5fc3RvcFNjcm9sbGluZy5uZXh0KCl9X2hhbmRsZVBhZ2luYXRvclByZXNzKGUsaSl7aSYmbnVsbCE9aS5idXR0b24mJjAhPT1pLmJ1dHRvbnx8KHRoaXMuX3N0b3BJbnRlcnZhbCgpLHJzKDY1MCwxMDApLnBpcGUoaXQodG4odGhpcy5fc3RvcFNjcm9sbGluZyx0aGlzLl9kZXN0cm95ZWQpKSkuc3Vic2NyaWJlKCgpPT57bGV0e21heFNjcm9sbERpc3RhbmNlOnIsZGlzdGFuY2U6b309dGhpcy5fc2Nyb2xsSGVhZGVyKGUpOygwPT09b3x8bz49cikmJnRoaXMuX3N0b3BJbnRlcnZhbCgpfSkpfV9zY3JvbGxUbyhlKXtpZih0aGlzLmRpc2FibGVQYWdpbmF0aW9uKXJldHVybnttYXhTY3JvbGxEaXN0YW5jZTowLGRpc3RhbmNlOjB9O2xldCBpPXRoaXMuX2dldE1heFNjcm9sbERpc3RhbmNlKCk7cmV0dXJuIHRoaXMuX3Njcm9sbERpc3RhbmNlPU1hdGgubWF4KDAsTWF0aC5taW4oaSxlKSksdGhpcy5fc2Nyb2xsRGlzdGFuY2VDaGFuZ2VkPSEwLHRoaXMuX2NoZWNrU2Nyb2xsaW5nQ29udHJvbHMoKSx7bWF4U2Nyb2xsRGlzdGFuY2U6aSxkaXN0YW5jZTp0aGlzLl9zY3JvbGxEaXN0YW5jZX19fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMoUXQpLEMoV2EpLEMoemksOCksQyhvdCksQyhWbiksQyhwaSw4KSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4saW5wdXRzOntkaXNhYmxlUGFnaW5hdGlvbjoiZGlzYWJsZVBhZ2luYXRpb24ifX0pLG59KSgpLEdDZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgZlh7Z2V0IGRpc2FibGVSaXBwbGUoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZVJpcHBsZX1zZXQgZGlzYWJsZVJpcHBsZShlKXt0aGlzLl9kaXNhYmxlUmlwcGxlPXZ0KGUpfWNvbnN0cnVjdG9yKGUsaSxyLG8sYSxzLGwpe3N1cGVyKGUsaSxyLG8sYSxzLGwpLHRoaXMuX2Rpc2FibGVSaXBwbGU9ITF9X2l0ZW1TZWxlY3RlZChlKXtlLnByZXZlbnREZWZhdWx0KCl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMoUXQpLEMoV2EpLEMoemksOCksQyhvdCksQyhWbiksQyhwaSw4KSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4saW5wdXRzOntkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIn0sZmVhdHVyZXM6W1hlXX0pLG59KSgpLFdDZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgR0Nle2NvbnN0cnVjdG9yKGUsaSxyLG8sYSxzLGwpe3N1cGVyKGUsaSxyLG8sYSxzLGwpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2lua0Jhcj1uZXcgY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5faXRlbXM9dH1oaWRlKCl7dGhpcy5faXRlbXMuZm9yRWFjaCh0PT50LmRlYWN0aXZhdGVJbmtCYXIoKSl9YWxpZ25Ub0VsZW1lbnQodCl7bGV0IGU9dGhpcy5faXRlbXMuZmluZChyPT5yLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudD09PXQpLGk9dGhpcy5fY3VycmVudEl0ZW07aWYoaT8uZGVhY3RpdmF0ZUlua0JhcigpLGUpe2xldCByPWk/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3Q/LigpO2UuYWN0aXZhdGVJbmtCYXIociksdGhpcy5fY3VycmVudEl0ZW09ZX19fSh0aGlzLl9pdGVtcyksc3VwZXIubmdBZnRlckNvbnRlbnRJbml0KCl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMoUXQpLEMoV2EpLEMoemksOCksQyhvdCksQyhWbiksQyhwaSw4KSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sibWF0LXRhYi1oZWFkZXIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oZSxpLHIpe2lmKDEmZSYmQm4ocixoWCw0KSwyJmUpe2xldCBvO2JlKG89dmUoKSkmJihpLl9pdGVtcz1vKX19LHZpZXdRdWVyeTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmKFVlKGJDZSw3KSxVZSh2Q2UsNyksVWUoeUNlLDcpLFVlKHhDZSw1KSxVZShDQ2UsNSkpLDImZSl7bGV0IHI7YmUocj12ZSgpKSYmKGkuX3RhYkxpc3RDb250YWluZXI9ci5maXJzdCksYmUocj12ZSgpKSYmKGkuX3RhYkxpc3Q9ci5maXJzdCksYmUocj12ZSgpKSYmKGkuX3RhYkxpc3RJbm5lcj1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS5fbmV4dFBhZ2luYXRvcj1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS5fcHJldmlvdXNQYWdpbmF0b3I9ci5maXJzdCl9fSxob3N0QXR0cnM6WzEsIm1hdC1tZGMtdGFiLWhlYWRlciJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MiZlJiZudCgibWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb24tY29udHJvbHMtZW5hYmxlZCIsaS5fc2hvd1BhZ2luYXRpb25Db250cm9scykoIm1hdC1tZGMtdGFiLWhlYWRlci1ydGwiLCJydGwiPT1pLl9nZXRMYXlvdXREaXJlY3Rpb24oKSl9LGlucHV0czp7c2VsZWN0ZWRJbmRleDoic2VsZWN0ZWRJbmRleCJ9LG91dHB1dHM6e3NlbGVjdEZvY3VzZWRJbmRleDoic2VsZWN0Rm9jdXNlZEluZGV4IixpbmRleEZvY3VzZWQ6ImluZGV4Rm9jdXNlZCJ9LGZlYXR1cmVzOltYZV0sbmdDb250ZW50U2VsZWN0b3JzOmNYLGRlY2xzOjEzLHZhcnM6MTAsY29uc3RzOltbImFyaWEtaGlkZGVuIiwidHJ1ZSIsInR5cGUiLCJidXR0b24iLCJtYXQtcmlwcGxlIiwiIiwidGFiaW5kZXgiLCItMSIsMSwibWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb24iLCJtYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUiLDMsIm1hdFJpcHBsZURpc2FibGVkIiwiZGlzYWJsZWQiLCJjbGljayIsIm1vdXNlZG93biIsInRvdWNoZW5kIl0sWyJwcmV2aW91c1BhZ2luYXRvciIsIiJdLFsxLCJtYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIl0sWzEsIm1hdC1tZGMtdGFiLWxhYmVsLWNvbnRhaW5lciIsMywia2V5ZG93biJdLFsidGFiTGlzdENvbnRhaW5lciIsIiJdLFsicm9sZSIsInRhYmxpc3QiLDEsIm1hdC1tZGMtdGFiLWxpc3QiLDMsImNka09ic2VydmVDb250ZW50Il0sWyJ0YWJMaXN0IiwiIl0sWzEsIm1hdC1tZGMtdGFiLWxhYmVscyJdLFsidGFiTGlzdElubmVyIiwiIl0sWyJhcmlhLWhpZGRlbiIsInRydWUiLCJ0eXBlIiwiYnV0dG9uIiwibWF0LXJpcHBsZSIsIiIsInRhYmluZGV4IiwiLTEiLDEsIm1hdC1tZGMtdGFiLWhlYWRlci1wYWdpbmF0aW9uIiwibWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXIiLDMsIm1hdFJpcHBsZURpc2FibGVkIiwiZGlzYWJsZWQiLCJtb3VzZWRvd24iLCJjbGljayIsInRvdWNoZW5kIl0sWyJuZXh0UGFnaW5hdG9yIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZm4oKSxmKDAsImJ1dHRvbiIsMCwxKSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaS5faGFuZGxlUGFnaW5hdG9yQ2xpY2soImJlZm9yZSIpfSkoIm1vdXNlZG93biIsZnVuY3Rpb24obyl7cmV0dXJuIGkuX2hhbmRsZVBhZ2luYXRvclByZXNzKCJiZWZvcmUiLG8pfSkoInRvdWNoZW5kIixmdW5jdGlvbigpe3JldHVybiBpLl9zdG9wSW50ZXJ2YWwoKX0pLGsoMiwiZGl2IiwyKSxnKCksZigzLCJkaXYiLDMsNCksQSgia2V5ZG93biIsZnVuY3Rpb24obyl7cmV0dXJuIGkuX2hhbmRsZUtleWRvd24obyl9KSxmKDUsImRpdiIsNSw2KSxBKCJjZGtPYnNlcnZlQ29udGVudCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5fb25Db250ZW50Q2hhbmdlcygpfSksZig3LCJkaXYiLDcsOCksVHQoOSksZygpKCkoKSxmKDEwLCJidXR0b24iLDksMTApLEEoIm1vdXNlZG93biIsZnVuY3Rpb24obyl7cmV0dXJuIGkuX2hhbmRsZVBhZ2luYXRvclByZXNzKCJhZnRlciIsbyl9KSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGkuX2hhbmRsZVBhZ2luYXRvckNsaWNrKCJhZnRlciIpfSkoInRvdWNoZW5kIixmdW5jdGlvbigpe3JldHVybiBpLl9zdG9wSW50ZXJ2YWwoKX0pLGsoMTIsImRpdiIsMiksZygpKSwyJmUmJihudCgibWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQiLGkuX2Rpc2FibGVTY3JvbGxCZWZvcmUpLGIoIm1hdFJpcHBsZURpc2FibGVkIixpLl9kaXNhYmxlU2Nyb2xsQmVmb3JlfHxpLmRpc2FibGVSaXBwbGUpKCJkaXNhYmxlZCIsaS5fZGlzYWJsZVNjcm9sbEJlZm9yZXx8bnVsbCksdigzKSxudCgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLCJOb29wQW5pbWF0aW9ucyI9PT1pLl9hbmltYXRpb25Nb2RlKSx2KDcpLG50KCJtYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCIsaS5fZGlzYWJsZVNjcm9sbEFmdGVyKSxiKCJtYXRSaXBwbGVEaXNhYmxlZCIsaS5fZGlzYWJsZVNjcm9sbEFmdGVyfHxpLmRpc2FibGVSaXBwbGUpKCJkaXNhYmxlZCIsaS5fZGlzYWJsZVNjcm9sbEFmdGVyfHxudWxsKSl9LGRlcGVuZGVuY2llczpbS2ksTzFdLHN0eWxlczpbIi5tYXQtbWRjLXRhYi1oZWFkZXJ7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4LXNocmluazowfS5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbnstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Om5vbmU7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLXdpZHRoOjMycHg7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApO3RvdWNoLWFjdGlvbjpub25lO2JveC1zaXppbmc6Y29udGVudC1ib3g7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO291dGxpbmU6MDtwYWRkaW5nOjB9Lm1hdC1tZGMtdGFiLWhlYWRlci1wYWdpbmF0aW9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50e29wYWNpdHk6LjEyfS5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jb250cm9scy1lbmFibGVkIC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbntkaXNwbGF5OmZsZXh9Lm1hdC1tZGMtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSwubWF0LW1kYy10YWItaGVhZGVyLXJ0bCAubWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXJ7cGFkZGluZy1sZWZ0OjRweH0ubWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlIC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtbWRjLXRhYi1oZWFkZXItcnRsIC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlciAubWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpfS5tYXQtbWRjLXRhYi1oZWFkZXItcnRsIC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUsLm1hdC1tZGMtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVye3BhZGRpbmctcmlnaHQ6NHB4fS5tYXQtbWRjLXRhYi1oZWFkZXItcnRsIC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUgLm1hdC1tZGMtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC1tZGMtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVyIC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MnB4IDJweCAwIDA7aGVpZ2h0OjhweDt3aWR0aDo4cHh9Lm1hdC1tZGMtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVke2JveC1zaGFkb3c6bm9uZTtjdXJzb3I6ZGVmYXVsdDtwb2ludGVyLWV2ZW50czpub25lfS5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntvcGFjaXR5Oi40fS5tYXQtbWRjLXRhYi1saXN0e2ZsZXgtZ3JvdzoxO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246dHJhbnNmb3JtIDUwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1tZGMtdGFiLWxpc3R7dHJhbnNpdGlvbjpub25lfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSBzcGFuLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSBzcGFuLm1kYy10YWJfX3RleHQtbGFiZWx7dHJhbnNpdGlvbjpub25lfS5tYXQtbWRjLXRhYi1sYWJlbC1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZ3JvdzoxO292ZXJmbG93OmhpZGRlbjt6LWluZGV4OjF9Lm1hdC1tZGMtdGFiLWxhYmVsc3tkaXNwbGF5OmZsZXg7ZmxleDoxIDAgYXV0b31bbWF0LWFsaWduLXRhYnM9Y2VudGVyXT4ubWF0LW1kYy10YWItaGVhZGVyIC5tYXQtbWRjLXRhYi1sYWJlbHN7anVzdGlmeS1jb250ZW50OmNlbnRlcn1bbWF0LWFsaWduLXRhYnM9ZW5kXT4ubWF0LW1kYy10YWItaGVhZGVyIC5tYXQtbWRjLXRhYi1sYWJlbHN7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5tYXQtbWRjLXRhYjo6YmVmb3Jle21hcmdpbjo1cHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1kYy10YWJbYXJpYS1kaXNhYmxlZD10cnVlXXtjb2xvcjpHcmF5VGV4dH0iXSxlbmNhcHN1bGF0aW9uOjJ9KSxufSkoKSxnWD1uZXcgdGUoIk1BVF9UQUJTX0NPTkZJRyIpLHFDZT0wLFhDZT1LbyhnbyhjbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLl9lbGVtZW50UmVmPW59fSksInByaW1hcnkiKSxZQ2U9KCgpPT57Y2xhc3MgbiBleHRlbmRzIFhDZXtnZXQgZHluYW1pY0hlaWdodCgpe3JldHVybiB0aGlzLl9keW5hbWljSGVpZ2h0fXNldCBkeW5hbWljSGVpZ2h0KGUpe3RoaXMuX2R5bmFtaWNIZWlnaHQ9dnQoZSl9Z2V0IHNlbGVjdGVkSW5kZXgoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWRJbmRleH1zZXQgc2VsZWN0ZWRJbmRleChlKXt0aGlzLl9pbmRleFRvU2VsZWN0PW1pKGUsbnVsbCl9Z2V0IGFuaW1hdGlvbkR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuX2FuaW1hdGlvbkR1cmF0aW9ufXNldCBhbmltYXRpb25EdXJhdGlvbihlKXt0aGlzLl9hbmltYXRpb25EdXJhdGlvbj0vXlxkKyQvLnRlc3QoZSsiIik/ZSsibXMiOmV9Z2V0IGNvbnRlbnRUYWJJbmRleCgpe3JldHVybiB0aGlzLl9jb250ZW50VGFiSW5kZXh9c2V0IGNvbnRlbnRUYWJJbmRleChlKXt0aGlzLl9jb250ZW50VGFiSW5kZXg9bWkoZSxudWxsKX1nZXQgZGlzYWJsZVBhZ2luYXRpb24oKXtyZXR1cm4gdGhpcy5fZGlzYWJsZVBhZ2luYXRpb259c2V0IGRpc2FibGVQYWdpbmF0aW9uKGUpe3RoaXMuX2Rpc2FibGVQYWdpbmF0aW9uPXZ0KGUpfWdldCBwcmVzZXJ2ZUNvbnRlbnQoKXtyZXR1cm4gdGhpcy5fcHJlc2VydmVDb250ZW50fXNldCBwcmVzZXJ2ZUNvbnRlbnQoZSl7dGhpcy5fcHJlc2VydmVDb250ZW50PXZ0KGUpfWdldCBiYWNrZ3JvdW5kQ29sb3IoKXtyZXR1cm4gdGhpcy5fYmFja2dyb3VuZENvbG9yfXNldCBiYWNrZ3JvdW5kQ29sb3IoZSl7bGV0IGk9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdDtpLnJlbW92ZSgibWF0LXRhYnMtd2l0aC1iYWNrZ3JvdW5kIixgbWF0LWJhY2tncm91bmQtJHt0aGlzLmJhY2tncm91bmRDb2xvcn1gKSxlJiZpLmFkZCgibWF0LXRhYnMtd2l0aC1iYWNrZ3JvdW5kIixgbWF0LWJhY2tncm91bmQtJHtlfWApLHRoaXMuX2JhY2tncm91bmRDb2xvcj1lfWNvbnN0cnVjdG9yKGUsaSxyLG8pe3N1cGVyKGUpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWksdGhpcy5fYW5pbWF0aW9uTW9kZT1vLHRoaXMuX3RhYnM9bmV3IFBhLHRoaXMuX2luZGV4VG9TZWxlY3Q9MCx0aGlzLl9sYXN0Rm9jdXNlZFRhYkluZGV4PW51bGwsdGhpcy5fdGFiQm9keVdyYXBwZXJIZWlnaHQ9MCx0aGlzLl90YWJzU3Vic2NyaXB0aW9uPUVuLkVNUFRZLHRoaXMuX3RhYkxhYmVsU3Vic2NyaXB0aW9uPUVuLkVNUFRZLHRoaXMuX2R5bmFtaWNIZWlnaHQ9ITEsdGhpcy5fc2VsZWN0ZWRJbmRleD1udWxsLHRoaXMuaGVhZGVyUG9zaXRpb249ImFib3ZlIix0aGlzLl9kaXNhYmxlUGFnaW5hdGlvbj0hMSx0aGlzLl9wcmVzZXJ2ZUNvbnRlbnQ9ITEsdGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlPW5ldyBGLHRoaXMuZm9jdXNDaGFuZ2U9bmV3IEYsdGhpcy5hbmltYXRpb25Eb25lPW5ldyBGLHRoaXMuc2VsZWN0ZWRUYWJDaGFuZ2U9bmV3IEYoITApLHRoaXMuX2dyb3VwSWQ9cUNlKyssdGhpcy5hbmltYXRpb25EdXJhdGlvbj1yJiZyLmFuaW1hdGlvbkR1cmF0aW9uP3IuYW5pbWF0aW9uRHVyYXRpb246IjUwMG1zIix0aGlzLmRpc2FibGVQYWdpbmF0aW9uPSEoIXJ8fG51bGw9PXIuZGlzYWJsZVBhZ2luYXRpb24pJiZyLmRpc2FibGVQYWdpbmF0aW9uLHRoaXMuZHluYW1pY0hlaWdodD0hKCFyfHxudWxsPT1yLmR5bmFtaWNIZWlnaHQpJiZyLmR5bmFtaWNIZWlnaHQsdGhpcy5jb250ZW50VGFiSW5kZXg9cj8uY29udGVudFRhYkluZGV4Pz9udWxsLHRoaXMucHJlc2VydmVDb250ZW50PSEhcj8ucHJlc2VydmVDb250ZW50fW5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpe2xldCBlPXRoaXMuX2luZGV4VG9TZWxlY3Q9dGhpcy5fY2xhbXBUYWJJbmRleCh0aGlzLl9pbmRleFRvU2VsZWN0KTtpZih0aGlzLl9zZWxlY3RlZEluZGV4IT1lKXtsZXQgaT1udWxsPT10aGlzLl9zZWxlY3RlZEluZGV4O2lmKCFpKXt0aGlzLnNlbGVjdGVkVGFiQ2hhbmdlLmVtaXQodGhpcy5fY3JlYXRlQ2hhbmdlRXZlbnQoZSkpO2xldCByPXRoaXMuX3RhYkJvZHlXcmFwcGVyLm5hdGl2ZUVsZW1lbnQ7ci5zdHlsZS5taW5IZWlnaHQ9ci5jbGllbnRIZWlnaHQrInB4In1Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57dGhpcy5fdGFicy5mb3JFYWNoKChyLG8pPT5yLmlzQWN0aXZlPW89PT1lKSxpfHwodGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlLmVtaXQoZSksdGhpcy5fdGFiQm9keVdyYXBwZXIubmF0aXZlRWxlbWVudC5zdHlsZS5taW5IZWlnaHQ9IiIpfSl9dGhpcy5fdGFicy5mb3JFYWNoKChpLHIpPT57aS5wb3NpdGlvbj1yLWUsbnVsbCE9dGhpcy5fc2VsZWN0ZWRJbmRleCYmMD09aS5wb3NpdGlvbiYmIWkub3JpZ2luJiYoaS5vcmlnaW49ZS10aGlzLl9zZWxlY3RlZEluZGV4KX0pLHRoaXMuX3NlbGVjdGVkSW5kZXghPT1lJiYodGhpcy5fc2VsZWN0ZWRJbmRleD1lLHRoaXMuX2xhc3RGb2N1c2VkVGFiSW5kZXg9bnVsbCx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5fc3Vic2NyaWJlVG9BbGxUYWJDaGFuZ2VzKCksdGhpcy5fc3Vic2NyaWJlVG9UYWJMYWJlbHMoKSx0aGlzLl90YWJzU3Vic2NyaXB0aW9uPXRoaXMuX3RhYnMuY2hhbmdlcy5zdWJzY3JpYmUoKCk9PntsZXQgZT10aGlzLl9jbGFtcFRhYkluZGV4KHRoaXMuX2luZGV4VG9TZWxlY3QpO2lmKGU9PT10aGlzLl9zZWxlY3RlZEluZGV4KXtsZXQgcixpPXRoaXMuX3RhYnMudG9BcnJheSgpO2ZvcihsZXQgbz0wO288aS5sZW5ndGg7bysrKWlmKGlbb10uaXNBY3RpdmUpe3RoaXMuX2luZGV4VG9TZWxlY3Q9dGhpcy5fc2VsZWN0ZWRJbmRleD1vLHRoaXMuX2xhc3RGb2N1c2VkVGFiSW5kZXg9bnVsbCxyPWlbb107YnJlYWt9IXImJmlbZV0mJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntpW2VdLmlzQWN0aXZlPSEwLHRoaXMuc2VsZWN0ZWRUYWJDaGFuZ2UuZW1pdCh0aGlzLl9jcmVhdGVDaGFuZ2VFdmVudChlKSl9KX10aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX0pfV9zdWJzY3JpYmVUb0FsbFRhYkNoYW5nZXMoKXt0aGlzLl9hbGxUYWJzLmNoYW5nZXMucGlwZShrbih0aGlzLl9hbGxUYWJzKSkuc3Vic2NyaWJlKGU9Pnt0aGlzLl90YWJzLnJlc2V0KGUuZmlsdGVyKGk9PmkuX2Nsb3Nlc3RUYWJHcm91cD09PXRoaXN8fCFpLl9jbG9zZXN0VGFiR3JvdXApKSx0aGlzLl90YWJzLm5vdGlmeU9uQ2hhbmdlcygpfSl9bmdPbkRlc3Ryb3koKXt0aGlzLl90YWJzLmRlc3Ryb3koKSx0aGlzLl90YWJzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fdGFiTGFiZWxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1yZWFsaWduSW5rQmFyKCl7dGhpcy5fdGFiSGVhZGVyJiZ0aGlzLl90YWJIZWFkZXIuX2FsaWduSW5rQmFyVG9TZWxlY3RlZFRhYigpfXVwZGF0ZVBhZ2luYXRpb24oKXt0aGlzLl90YWJIZWFkZXImJnRoaXMuX3RhYkhlYWRlci51cGRhdGVQYWdpbmF0aW9uKCl9Zm9jdXNUYWIoZSl7bGV0IGk9dGhpcy5fdGFiSGVhZGVyO2kmJihpLmZvY3VzSW5kZXg9ZSl9X2ZvY3VzQ2hhbmdlZChlKXt0aGlzLl9sYXN0Rm9jdXNlZFRhYkluZGV4PWUsdGhpcy5mb2N1c0NoYW5nZS5lbWl0KHRoaXMuX2NyZWF0ZUNoYW5nZUV2ZW50KGUpKX1fY3JlYXRlQ2hhbmdlRXZlbnQoZSl7bGV0IGk9bmV3IGVOO3JldHVybiBpLmluZGV4PWUsdGhpcy5fdGFicyYmdGhpcy5fdGFicy5sZW5ndGgmJihpLnRhYj10aGlzLl90YWJzLnRvQXJyYXkoKVtlXSksaX1fc3Vic2NyaWJlVG9UYWJMYWJlbHMoKXt0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbiYmdGhpcy5fdGFiTGFiZWxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbj10biguLi50aGlzLl90YWJzLm1hcChlPT5lLl9zdGF0ZUNoYW5nZXMpKS5zdWJzY3JpYmUoKCk9PnRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1fY2xhbXBUYWJJbmRleChlKXtyZXR1cm4gTWF0aC5taW4odGhpcy5fdGFicy5sZW5ndGgtMSxNYXRoLm1heChlfHwwLDApKX1fZ2V0VGFiTGFiZWxJZChlKXtyZXR1cm5gbWF0LXRhYi1sYWJlbC0ke3RoaXMuX2dyb3VwSWR9LSR7ZX1gfV9nZXRUYWJDb250ZW50SWQoZSl7cmV0dXJuYG1hdC10YWItY29udGVudC0ke3RoaXMuX2dyb3VwSWR9LSR7ZX1gfV9zZXRUYWJCb2R5V3JhcHBlckhlaWdodChlKXtpZighdGhpcy5fZHluYW1pY0hlaWdodHx8IXRoaXMuX3RhYkJvZHlXcmFwcGVySGVpZ2h0KXJldHVybjtsZXQgaT10aGlzLl90YWJCb2R5V3JhcHBlci5uYXRpdmVFbGVtZW50O2kuc3R5bGUuaGVpZ2h0PXRoaXMuX3RhYkJvZHlXcmFwcGVySGVpZ2h0KyJweCIsdGhpcy5fdGFiQm9keVdyYXBwZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQmJihpLnN0eWxlLmhlaWdodD1lKyJweCIpfV9yZW1vdmVUYWJCb2R5V3JhcHBlckhlaWdodCgpe2xldCBlPXRoaXMuX3RhYkJvZHlXcmFwcGVyLm5hdGl2ZUVsZW1lbnQ7dGhpcy5fdGFiQm9keVdyYXBwZXJIZWlnaHQ9ZS5jbGllbnRIZWlnaHQsZS5zdHlsZS5oZWlnaHQ9IiIsdGhpcy5hbmltYXRpb25Eb25lLmVtaXQoKX1faGFuZGxlQ2xpY2soZSxpLHIpe2kuZm9jdXNJbmRleD1yLGUuZGlzYWJsZWR8fCh0aGlzLnNlbGVjdGVkSW5kZXg9cil9X2dldFRhYkluZGV4KGUpe3JldHVybiBlPT09KHRoaXMuX2xhc3RGb2N1c2VkVGFiSW5kZXg/P3RoaXMuc2VsZWN0ZWRJbmRleCk/MDotMX1fdGFiRm9jdXNDaGFuZ2VkKGUsaSl7ZSYmIm1vdXNlIiE9PWUmJiJ0b3VjaCIhPT1lJiYodGhpcy5fdGFiSGVhZGVyLmZvY3VzSW5kZXg9aSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMoUXQpLEMoZ1gsOCksQyhwaSw4KSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4saW5wdXRzOntkeW5hbWljSGVpZ2h0OiJkeW5hbWljSGVpZ2h0IixzZWxlY3RlZEluZGV4OiJzZWxlY3RlZEluZGV4IixoZWFkZXJQb3NpdGlvbjoiaGVhZGVyUG9zaXRpb24iLGFuaW1hdGlvbkR1cmF0aW9uOiJhbmltYXRpb25EdXJhdGlvbiIsY29udGVudFRhYkluZGV4OiJjb250ZW50VGFiSW5kZXgiLGRpc2FibGVQYWdpbmF0aW9uOiJkaXNhYmxlUGFnaW5hdGlvbiIscHJlc2VydmVDb250ZW50OiJwcmVzZXJ2ZUNvbnRlbnQiLGJhY2tncm91bmRDb2xvcjoiYmFja2dyb3VuZENvbG9yIn0sb3V0cHV0czp7c2VsZWN0ZWRJbmRleENoYW5nZToic2VsZWN0ZWRJbmRleENoYW5nZSIsZm9jdXNDaGFuZ2U6ImZvY3VzQ2hhbmdlIixhbmltYXRpb25Eb25lOiJhbmltYXRpb25Eb25lIixzZWxlY3RlZFRhYkNoYW5nZToic2VsZWN0ZWRUYWJDaGFuZ2UifSxmZWF0dXJlczpbWGVdfSksbn0pKCksdkU9KCgpPT57Y2xhc3MgbiBleHRlbmRzIFlDZXtnZXQgZml0SW5rQmFyVG9Db250ZW50KCl7cmV0dXJuIHRoaXMuX2ZpdElua0JhclRvQ29udGVudH1zZXQgZml0SW5rQmFyVG9Db250ZW50KGUpe3RoaXMuX2ZpdElua0JhclRvQ29udGVudD12dChlKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX1nZXQgc3RyZXRjaFRhYnMoKXtyZXR1cm4gdGhpcy5fc3RyZXRjaFRhYnN9c2V0IHN0cmV0Y2hUYWJzKGUpe3RoaXMuX3N0cmV0Y2hUYWJzPXZ0KGUpfWNvbnN0cnVjdG9yKGUsaSxyLG8pe3N1cGVyKGUsaSxyLG8pLHRoaXMuX2ZpdElua0JhclRvQ29udGVudD0hMSx0aGlzLl9zdHJldGNoVGFicz0hMCx0aGlzLmZpdElua0JhclRvQ29udGVudD0hKCFyfHxudWxsPT1yLmZpdElua0JhclRvQ29udGVudCkmJnIuZml0SW5rQmFyVG9Db250ZW50fX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSxDKFF0KSxDKGdYLDgpLEMocGksOCkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbIm1hdC10YWItZ3JvdXAiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oZSxpLHIpe2lmKDEmZSYmQm4ocixheSw1KSwyJmUpe2xldCBvO2JlKG89dmUoKSkmJihpLl9hbGxUYWJzPW8pfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiYoVWUoTUNlLDUpLFVlKHdDZSw1KSksMiZlKXtsZXQgcjtiZShyPXZlKCkpJiYoaS5fdGFiQm9keVdyYXBwZXI9ci5maXJzdCksYmUocj12ZSgpKSYmKGkuX3RhYkhlYWRlcj1yLmZpcnN0KX19LGhvc3RBdHRyczpbMSwibWF0LW1kYy10YWItZ3JvdXAiXSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezImZSYmbnQoIm1hdC1tZGMtdGFiLWdyb3VwLWR5bmFtaWMtaGVpZ2h0IixpLmR5bmFtaWNIZWlnaHQpKCJtYXQtbWRjLXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIiLCJiZWxvdyI9PT1pLmhlYWRlclBvc2l0aW9uKSgibWF0LW1kYy10YWItZ3JvdXAtc3RyZXRjaC10YWJzIixpLnN0cmV0Y2hUYWJzKX0saW5wdXRzOntjb2xvcjoiY29sb3IiLGRpc2FibGVSaXBwbGU6ImRpc2FibGVSaXBwbGUiLGZpdElua0JhclRvQ29udGVudDoiZml0SW5rQmFyVG9Db250ZW50IixzdHJldGNoVGFiczpbIm1hdC1zdHJldGNoLXRhYnMiLCJzdHJldGNoVGFicyJdfSxleHBvcnRBczpbIm1hdFRhYkdyb3VwIl0sZmVhdHVyZXM6W1Z0KFt7cHJvdmlkZTptWCx1c2VFeGlzdGluZzpufV0pLFhlXSxkZWNsczo2LHZhcnM6Nyxjb25zdHM6W1szLCJzZWxlY3RlZEluZGV4IiwiZGlzYWJsZVJpcHBsZSIsImRpc2FibGVQYWdpbmF0aW9uIiwiaW5kZXhGb2N1c2VkIiwic2VsZWN0Rm9jdXNlZEluZGV4Il0sWyJ0YWJIZWFkZXIiLCIiXSxbImNsYXNzIiwibWRjLXRhYiBtYXQtbWRjLXRhYiBtYXQtbWRjLWZvY3VzLWluZGljYXRvciIsInJvbGUiLCJ0YWIiLCJtYXRUYWJMYWJlbFdyYXBwZXIiLCIiLCJjZGtNb25pdG9yRWxlbWVudEZvY3VzIiwiIiwzLCJpZCIsIm1kYy10YWItLWFjdGl2ZSIsIm5nQ2xhc3MiLCJkaXNhYmxlZCIsImZpdElua0JhclRvQ29udGVudCIsImNsaWNrIiwiY2RrRm9jdXNDaGFuZ2UiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJtYXQtbWRjLXRhYi1ib2R5LXdyYXBwZXIiXSxbInRhYkJvZHlXcmFwcGVyIiwiIl0sWyJyb2xlIiwidGFicGFuZWwiLDMsImlkIiwibWF0LW1kYy10YWItYm9keS1hY3RpdmUiLCJuZ0NsYXNzIiwiY29udGVudCIsInBvc2l0aW9uIiwib3JpZ2luIiwiYW5pbWF0aW9uRHVyYXRpb24iLCJwcmVzZXJ2ZUNvbnRlbnQiLCJfb25DZW50ZXJlZCIsIl9vbkNlbnRlcmluZyIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJyb2xlIiwidGFiIiwibWF0VGFiTGFiZWxXcmFwcGVyIiwiIiwiY2RrTW9uaXRvckVsZW1lbnRGb2N1cyIsIiIsMSwibWRjLXRhYiIsIm1hdC1tZGMtdGFiIiwibWF0LW1kYy1mb2N1cy1pbmRpY2F0b3IiLDMsImlkIiwibmdDbGFzcyIsImRpc2FibGVkIiwiZml0SW5rQmFyVG9Db250ZW50IiwiY2xpY2siLCJjZGtGb2N1c0NoYW5nZSJdLFsidGFiTm9kZSIsIiJdLFsxLCJtZGMtdGFiX19yaXBwbGUiXSxbIm1hdC1yaXBwbGUiLCIiLDEsIm1hdC1tZGMtdGFiLXJpcHBsZSIsMywibWF0UmlwcGxlVHJpZ2dlciIsIm1hdFJpcHBsZURpc2FibGVkIl0sWzEsIm1kYy10YWJfX2NvbnRlbnQiXSxbMSwibWRjLXRhYl9fdGV4dC1sYWJlbCJdLFszLCJuZ0lmIiwibmdJZkVsc2UiXSxbInRhYlRleHRMYWJlbCIsIiJdLFszLCJjZGtQb3J0YWxPdXRsZXQiXSxbInJvbGUiLCJ0YWJwYW5lbCIsMywiaWQiLCJuZ0NsYXNzIiwiY29udGVudCIsInBvc2l0aW9uIiwib3JpZ2luIiwiYW5pbWF0aW9uRHVyYXRpb24iLCJwcmVzZXJ2ZUNvbnRlbnQiLCJfb25DZW50ZXJlZCIsIl9vbkNlbnRlcmluZyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwibWF0LXRhYi1oZWFkZXIiLDAsMSksQSgiaW5kZXhGb2N1c2VkIixmdW5jdGlvbihvKXtyZXR1cm4gaS5fZm9jdXNDaGFuZ2VkKG8pfSkoInNlbGVjdEZvY3VzZWRJbmRleCIsZnVuY3Rpb24obyl7cmV0dXJuIGkuc2VsZWN0ZWRJbmRleD1vfSksUygyLERDZSw5LDE3LCJkaXYiLDIpLGcoKSxmKDMsImRpdiIsMyw0KSxTKDUsSUNlLDEsMTEsIm1hdC10YWItYm9keSIsNSksZygpKSwyJmUmJihiKCJzZWxlY3RlZEluZGV4IixpLnNlbGVjdGVkSW5kZXh8fDApKCJkaXNhYmxlUmlwcGxlIixpLmRpc2FibGVSaXBwbGUpKCJkaXNhYmxlUGFnaW5hdGlvbiIsaS5kaXNhYmxlUGFnaW5hdGlvbiksdigyKSxiKCJuZ0Zvck9mIixpLl90YWJzKSx2KDEpLG50KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PWkuX2FuaW1hdGlvbk1vZGUpLHYoMiksYigibmdGb3JPZiIsaS5fdGFicykpfSxkZXBlbmRlbmNpZXM6W3duLG5uLE5lLGJhLEtpLEE3LGRYLGhYLFdDZV0sc3R5bGVzOlsnLm1kYy10YWJ7bWluLXdpZHRoOjkwcHg7cGFkZGluZy1yaWdodDoyNHB4O3BhZGRpbmctbGVmdDoyNHB4O2Rpc3BsYXk6ZmxleDtmbGV4OjEgMCBhdXRvO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO3BhZGRpbmctdG9wOjA7cGFkZGluZy1ib3R0b206MDtib3JkZXI6bm9uZTtvdXRsaW5lOm5vbmU7dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO2N1cnNvcjpwb2ludGVyOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO3otaW5kZXg6MX0ubWRjLXRhYjo6LW1vei1mb2N1cy1pbm5lcntwYWRkaW5nOjA7Ym9yZGVyOjB9Lm1kYy10YWJbaGlkZGVuXXtkaXNwbGF5Om5vbmV9Lm1kYy10YWItLW1pbi13aWR0aHtmbGV4OjAgMSBhdXRvfS5tZGMtdGFiX19jb250ZW50e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtoZWlnaHQ6aW5oZXJpdDtwb2ludGVyLWV2ZW50czpub25lfS5tZGMtdGFiX190ZXh0LWxhYmVse3RyYW5zaXRpb246MTUwbXMgY29sb3IgbGluZWFyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjE7ei1pbmRleDoyfS5tZGMtdGFiX19pY29ue3RyYW5zaXRpb246MTUwbXMgY29sb3IgbGluZWFyO3otaW5kZXg6Mn0ubWRjLXRhYi0tc3RhY2tlZCAubWRjLXRhYl9fY29udGVudHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lm1kYy10YWItLXN0YWNrZWQgLm1kYy10YWJfX3RleHQtbGFiZWx7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjRweH0ubWRjLXRhYi0tYWN0aXZlIC5tZGMtdGFiX190ZXh0LWxhYmVsLC5tZGMtdGFiLS1hY3RpdmUgLm1kYy10YWJfX2ljb257dHJhbnNpdGlvbi1kZWxheToxMDBtc30ubWRjLXRhYjpub3QoLm1kYy10YWItLXN0YWNrZWQpIC5tZGMtdGFiX19pY29uKy5tZGMtdGFiX190ZXh0LWxhYmVse3BhZGRpbmctbGVmdDo4cHg7cGFkZGluZy1yaWdodDowfVtkaXI9cnRsXSAubWRjLXRhYjpub3QoLm1kYy10YWItLXN0YWNrZWQpIC5tZGMtdGFiX19pY29uKy5tZGMtdGFiX190ZXh0LWxhYmVsLC5tZGMtdGFiOm5vdCgubWRjLXRhYi0tc3RhY2tlZCkgLm1kYy10YWJfX2ljb24rLm1kYy10YWJfX3RleHQtbGFiZWxbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDo4cHh9Lm1kYy10YWItaW5kaWNhdG9yIC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0tdW5kZXJsaW5le2JvcmRlci10b3Atd2lkdGg6MnB4fS5tZGMtdGFiLWluZGljYXRvciAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLWljb257aGVpZ2h0OjM0cHg7Zm9udC1zaXplOjM0cHh9Lm1kYy10YWItaW5kaWNhdG9ye2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoxfS5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudHt0cmFuc2Zvcm0tb3JpZ2luOmxlZnQ7b3BhY2l0eTowfS5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0tdW5kZXJsaW5le2FsaWduLXNlbGY6ZmxleC1lbmQ7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZH0ubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLWljb257YWxpZ24tc2VsZjpjZW50ZXI7bWFyZ2luOjAgYXV0b30ubWRjLXRhYi1pbmRpY2F0b3ItLWFjdGl2ZSAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnR7b3BhY2l0eToxfS5tZGMtdGFiLWluZGljYXRvciAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnR7dHJhbnNpdGlvbjoyNTBtcyB0cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKX0ubWRjLXRhYi1pbmRpY2F0b3ItLW5vLXRyYW5zaXRpb24gLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50e3RyYW5zaXRpb246bm9uZX0ubWRjLXRhYi1pbmRpY2F0b3ItLWZhZGUgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50e3RyYW5zaXRpb246MTUwbXMgb3BhY2l0eSBsaW5lYXJ9Lm1kYy10YWItaW5kaWNhdG9yLS1hY3RpdmUubWRjLXRhYi1pbmRpY2F0b3ItLWZhZGUgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50e3RyYW5zaXRpb24tZGVsYXk6MTAwbXN9Lm1hdC1tZGMtdGFiLXJpcHBsZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7Ym90dG9tOjA7cmlnaHQ6MDtwb2ludGVyLWV2ZW50czpub25lfS5tYXQtbWRjLXRhYnstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKX0ubWF0LW1kYy10YWIubWRjLXRhYntoZWlnaHQ6NDhweDtmbGV4LWdyb3c6MH0ubWF0LW1kYy10YWIgLm1kYy10YWJfX3JpcHBsZTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZX0ubWF0LW1kYy10YWIgLm1kYy10YWJfX3RleHQtbGFiZWx7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9Lm1hdC1tZGMtdGFiIC5tZGMtdGFiX19jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO3BvaW50ZXItZXZlbnRzOmF1dG99Lm1hdC1tZGMtdGFiOmhvdmVyIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZXtvcGFjaXR5Oi4wNH0ubWF0LW1kYy10YWIuY2RrLXByb2dyYW0tZm9jdXNlZCAubWRjLXRhYl9fcmlwcGxlOjpiZWZvcmUsLm1hdC1tZGMtdGFiLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZXtvcGFjaXR5Oi4xMn0ubWF0LW1kYy10YWIgLm1hdC1yaXBwbGUtZWxlbWVudHtvcGFjaXR5Oi4xMn0ubWF0LW1kYy10YWItZ3JvdXAubWF0LW1kYy10YWItZ3JvdXAtc3RyZXRjaC10YWJzPi5tYXQtbWRjLXRhYi1oZWFkZXIgLm1hdC1tZGMtdGFie2ZsZXgtZ3JvdzoxfS5tYXQtbWRjLXRhYi1kaXNhYmxlZHtvcGFjaXR5Oi40fS5tYXQtbWRjLXRhYi1ncm91cHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21heC13aWR0aDoxMDAlfS5tYXQtbWRjLXRhYi1ncm91cC5tYXQtdGFicy13aXRoLWJhY2tncm91bmQ+Lm1hdC1tZGMtdGFiLWhlYWRlciwubWF0LW1kYy10YWItZ3JvdXAubWF0LXRhYnMtd2l0aC1iYWNrZ3JvdW5kPi5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1hdC1tZGMtdGFiLWhlYWRlci13aXRoLWJhY2tncm91bmQtYmFja2dyb3VuZC1jb2xvciwgdHJhbnNwYXJlbnQpfS5tYXQtbWRjLXRhYi1ncm91cC5tYXQtdGFicy13aXRoLWJhY2tncm91bmQ+Lm1hdC1tZGMtdGFiLWhlYWRlciAubWF0LW1kYy10YWIgLm1kYy10YWJfX3RleHQtbGFiZWwsLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC10YWJzLXdpdGgtYmFja2dyb3VuZD4ubWF0LW1kYy10YWItaGVhZGVyIC5tYXQtbWRjLXRhYi1saW5rIC5tZGMtdGFiX190ZXh0LWxhYmVse2NvbG9yOnZhcigtLW1hdC1tZGMtdGFiLWhlYWRlci13aXRoLWJhY2tncm91bmQtZm9yZWdyb3VuZC1jb2xvciwgaW5oZXJpdCl9Lm1hdC1tZGMtdGFiLWdyb3VwLm1hdC10YWJzLXdpdGgtYmFja2dyb3VuZD4ubWF0LW1kYy10YWItaGVhZGVyIC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0tdW5kZXJsaW5lLC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtdGFicy13aXRoLWJhY2tncm91bmQ+Lm1hdC1tZGMtdGFiLWhlYWRlciAubWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LW1kYy10YWItZ3JvdXAubWF0LXRhYnMtd2l0aC1iYWNrZ3JvdW5kPi5tYXQtbWRjLXRhYi1oZWFkZXIgLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmV7Ym9yZGVyLWNvbG9yOnZhcigtLW1hdC1tZGMtdGFiLWhlYWRlci13aXRoLWJhY2tncm91bmQtZm9yZWdyb3VuZC1jb2xvciwgaW5oZXJpdCl9Lm1hdC1tZGMtdGFiLWdyb3VwLm1hdC10YWJzLXdpdGgtYmFja2dyb3VuZD4ubWF0LW1kYy10YWItaGVhZGVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1tZGMtdGFiLWdyb3VwLm1hdC10YWJzLXdpdGgtYmFja2dyb3VuZD4ubWF0LW1kYy10YWItaGVhZGVyIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSwubWF0LW1kYy10YWItZ3JvdXAubWF0LXRhYnMtd2l0aC1iYWNrZ3JvdW5kPi5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtdGFicy13aXRoLWJhY2tncm91bmQ+Lm1hdC1tZGMtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1hdC1tZGMtdGFiLWhlYWRlci13aXRoLWJhY2tncm91bmQtZm9yZWdyb3VuZC1jb2xvciwgaW5oZXJpdCl9Lm1hdC1tZGMtdGFiLWdyb3VwLm1hdC10YWJzLXdpdGgtYmFja2dyb3VuZD4ubWF0LW1kYy10YWItaGVhZGVyIC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtbWRjLXRhYi1ncm91cC5tYXQtdGFicy13aXRoLWJhY2tncm91bmQ+Lm1hdC1tZGMtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1jb2xvcjp2YXIoLS1tYXQtbWRjLXRhYi1oZWFkZXItd2l0aC1iYWNrZ3JvdW5kLWZvcmVncm91bmQtY29sb3IsIGluaGVyaXQpfS5tYXQtbWRjLXRhYi1ncm91cC5tYXQtbWRjLXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXJ7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2V9Lm1hdC1tZGMtdGFiLWdyb3VwLm1hdC1tZGMtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZXthbGlnbi1zZWxmOmZsZXgtc3RhcnR9Lm1hdC1tZGMtdGFiLWJvZHktd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpmbGV4O3RyYW5zaXRpb246aGVpZ2h0IDUwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKX0ubWF0LW1kYy10YWItYm9keS13cmFwcGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxle3RyYW5zaXRpb246bm9uZSAhaW1wb3J0YW50O2FuaW1hdGlvbjpub25lICFpbXBvcnRhbnR9J10sZW5jYXBzdWxhdGlvbjoyfSksbn0pKCksZU49Y2xhc3N7fSxRQ2U9MCxaQ2U9KCgpPT57Y2xhc3MgbiBleHRlbmRzIGZYe2dldCBiYWNrZ3JvdW5kQ29sb3IoKXtyZXR1cm4gdGhpcy5fYmFja2dyb3VuZENvbG9yfXNldCBiYWNrZ3JvdW5kQ29sb3IoZSl7bGV0IGk9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdDtpLnJlbW92ZSgibWF0LXRhYnMtd2l0aC1iYWNrZ3JvdW5kIixgbWF0LWJhY2tncm91bmQtJHt0aGlzLmJhY2tncm91bmRDb2xvcn1gKSxlJiZpLmFkZCgibWF0LXRhYnMtd2l0aC1iYWNrZ3JvdW5kIixgbWF0LWJhY2tncm91bmQtJHtlfWApLHRoaXMuX2JhY2tncm91bmRDb2xvcj1lfWdldCBkaXNhYmxlUmlwcGxlKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVSaXBwbGV9c2V0IGRpc2FibGVSaXBwbGUoZSl7dGhpcy5fZGlzYWJsZVJpcHBsZT12dChlKX1jb25zdHJ1Y3RvcihlLGkscixvLGEscyxsKXtzdXBlcihlLG8sYSxpLHIscyxsKSx0aGlzLl9kaXNhYmxlUmlwcGxlPSExLHRoaXMuY29sb3I9InByaW1hcnkifV9pdGVtU2VsZWN0ZWQoKXt9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5faXRlbXMuY2hhbmdlcy5waXBlKGtuKG51bGwpLGl0KHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKT0+e3RoaXMudXBkYXRlQWN0aXZlTGluaygpfSksc3VwZXIubmdBZnRlckNvbnRlbnRJbml0KCl9dXBkYXRlQWN0aXZlTGluaygpe2lmKCF0aGlzLl9pdGVtcylyZXR1cm47bGV0IGU9dGhpcy5faXRlbXMudG9BcnJheSgpO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSsrKWlmKGVbaV0uYWN0aXZlKXJldHVybiB0aGlzLnNlbGVjdGVkSW5kZXg9aSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSx2b2lkKHRoaXMudGFiUGFuZWwmJih0aGlzLnRhYlBhbmVsLl9hY3RpdmVUYWJJZD1lW2ldLmlkKSk7dGhpcy5zZWxlY3RlZEluZGV4PS0xLHRoaXMuX2lua0Jhci5oaWRlKCl9X2dldFJvbGUoKXtyZXR1cm4gdGhpcy50YWJQYW5lbD8idGFibGlzdCI6dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgicm9sZSIpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSxDKHppLDgpLEMob3QpLEMoUXQpLEMoV2EpLEMoVm4pLEMocGksOCkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLGlucHV0czp7YmFja2dyb3VuZENvbG9yOiJiYWNrZ3JvdW5kQ29sb3IiLGRpc2FibGVSaXBwbGU6ImRpc2FibGVSaXBwbGUiLGNvbG9yOiJjb2xvciIsdGFiUGFuZWw6InRhYlBhbmVsIn0sZmVhdHVyZXM6W1hlXX0pLG59KSgpLEtDZT1EYyhnbyhhbyhjbGFzc3t9KSkpLEpDZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgS0Nle2dldCBhY3RpdmUoKXtyZXR1cm4gdGhpcy5faXNBY3RpdmV9c2V0IGFjdGl2ZShlKXtsZXQgaT12dChlKTtpIT09dGhpcy5faXNBY3RpdmUmJih0aGlzLl9pc0FjdGl2ZT1pLHRoaXMuX3RhYk5hdkJhci51cGRhdGVBY3RpdmVMaW5rKCkpfWdldCByaXBwbGVEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVkfHx0aGlzLmRpc2FibGVSaXBwbGV8fHRoaXMuX3RhYk5hdkJhci5kaXNhYmxlUmlwcGxlfHwhIXRoaXMucmlwcGxlQ29uZmlnLmRpc2FibGVkfWNvbnN0cnVjdG9yKGUsaSxyLG8sYSxzKXtzdXBlcigpLHRoaXMuX3RhYk5hdkJhcj1lLHRoaXMuZWxlbWVudFJlZj1pLHRoaXMuX2ZvY3VzTW9uaXRvcj1hLHRoaXMuX2lzQWN0aXZlPSExLHRoaXMuaWQ9Im1hdC10YWItbGluay0iK1FDZSsrLHRoaXMucmlwcGxlQ29uZmlnPXJ8fHt9LHRoaXMudGFiSW5kZXg9cGFyc2VJbnQobyl8fDAsIk5vb3BBbmltYXRpb25zIj09PXMmJih0aGlzLnJpcHBsZUNvbmZpZy5hbmltYXRpb249e2VudGVyRHVyYXRpb246MCxleGl0RHVyYXRpb246MH0pfWZvY3VzKCl7dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLmVsZW1lbnRSZWYpfW5nT25EZXN0cm95KCl7dGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZil9X2hhbmRsZUZvY3VzKCl7dGhpcy5fdGFiTmF2QmFyLmZvY3VzSW5kZXg9dGhpcy5fdGFiTmF2QmFyLl9pdGVtcy50b0FycmF5KCkuaW5kZXhPZih0aGlzKX1faGFuZGxlS2V5ZG93bihlKXt0aGlzLl90YWJOYXZCYXIudGFiUGFuZWwmJjMyPT09ZS5rZXlDb2RlJiZ0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGljaygpfV9nZXRBcmlhQ29udHJvbHMoKXtyZXR1cm4gdGhpcy5fdGFiTmF2QmFyLnRhYlBhbmVsP3RoaXMuX3RhYk5hdkJhci50YWJQYW5lbD8uaWQ6dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJhcmlhLWNvbnRyb2xzIil9X2dldEFyaWFTZWxlY3RlZCgpe3JldHVybiB0aGlzLl90YWJOYXZCYXIudGFiUGFuZWw/dGhpcy5hY3RpdmU/InRydWUiOiJmYWxzZSI6dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIil9X2dldEFyaWFDdXJyZW50KCl7cmV0dXJuIHRoaXMuYWN0aXZlJiYhdGhpcy5fdGFiTmF2QmFyLnRhYlBhbmVsPyJwYWdlIjpudWxsfV9nZXRSb2xlKCl7cmV0dXJuIHRoaXMuX3RhYk5hdkJhci50YWJQYW5lbD8idGFiIjp0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoInJvbGUiKX1fZ2V0VGFiSW5kZXgoKXtyZXR1cm4gdGhpcy5fdGFiTmF2QmFyLnRhYlBhbmVsP3RoaXMuX2lzQWN0aXZlJiYhdGhpcy5kaXNhYmxlZD8wOi0xOnRoaXMudGFiSW5kZXh9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoWkNlKSxDKHhlKSxDKFRoLDgpLE1vKCJ0YWJpbmRleCIpLEMoZm8pLEMocGksOCkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLGlucHV0czp7YWN0aXZlOiJhY3RpdmUiLGlkOiJpZCJ9LGZlYXR1cmVzOltYZV19KSxufSkoKSx5RT0ocFgoSkNlKSwoKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGUsZG4sQmwsX2Esb2cscGcsZG5dfSksbn0pKCkpO2Z1bmN0aW9uICRDZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsInNwYW4iLDUpLEEoImNsaWNrIixmdW5jdGlvbihyKXtuZShlKTtsZXQgbz13KCkuJGltcGxpY2l0O3JldHVybiBpZSh3KCkub25BY3RpdmVQbHVnaW5TZWxlY3Rpb24ocixvLmlkKSl9KSxUKDEpLGcoKX1pZigyJm4pe2xldCBlPXcoKS4kaW1wbGljaXQ7QmUoImRhdGEtcGx1Z2luLWlkIixlLmlkKSx2KDEpLFZlKCIgIixlLnRhYl9uYW1lLCIgIil9fWZ1bmN0aW9uIGVNZShuLHQpezEmbiYmKGYoMCwibWF0LXRhYiIsMyksUygxLCRDZSwyLDIsIm5nLXRlbXBsYXRlIiw0KSxnKCkpLDImbiYmYigiZGlzYWJsZWQiLCF0LiRpbXBsaWNpdC5lbmFibGVkKX1mdW5jdGlvbiB0TWUobix0KXtpZigxJm4mJihmKDAsIm1hdC1vcHRpb24iLDkpLFQoMSksZygpKSwyJm4pe2xldCBlPXQuJGltcGxpY2l0O2IoInZhbHVlIixlLmlkKSxCZSgiZGF0YS1wbHVnaW4taWQiLGUuaWQpLHYoMSksVmUoIiAiLGUudGFiX25hbWUsIiAiKX19ZnVuY3Rpb24gbk1lKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwibWF0LWZvcm0tZmllbGQiLDYpKDEsIm1hdC1sYWJlbCIpLFQoMiwiSW5hY3RpdmUiKSxnKCksZigzLCJtYXQtc2VsZWN0Iiw3KSxBKCJzZWxlY3Rpb25DaGFuZ2UiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkub25EaXNhYmxlZFBsdWdpblNlbGVjdGlvbkNoYW5nZWQocikpfSksUyg0LHRNZSwyLDMsIm1hdC1vcHRpb24iLDgpLGcoKSgpfWlmKDImbil7bGV0IGU9dygpO3YoMyksYigidmFsdWUiLGUuc2VsZWN0ZWRQbHVnaW4pKCJoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yIiwhMCksdigxKSxiKCJuZ0Zvck9mIixlLmRpc2FibGVkUGx1Z2lucyl9fXZhciBiWD0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy5vblBsdWdpblNlbGVjdGlvbkNoYW5nZWQ9bmV3IEZ9Z2V0QWN0aXZlUGx1Z2luSW5kZXgoKXtyZXR1cm4gdGhpcy5hY3RpdmVQbHVnaW5zLmZpbmRJbmRleCgoe2lkOmV9KT0+ZT09PXRoaXMuc2VsZWN0ZWRQbHVnaW4pfW9uQWN0aXZlUGx1Z2luU2VsZWN0aW9uKGUsaSl7ZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLm9uUGx1Z2luU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KGkpfW9uRGlzYWJsZWRQbHVnaW5TZWxlY3Rpb25DaGFuZ2VkKGUpe3RoaXMub25QbHVnaW5TZWxlY3Rpb25DaGFuZ2VkLmVtaXQoZS52YWx1ZSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInBsdWdpbi1zZWxlY3Rvci1jb21wb25lbnQiXV0saW5wdXRzOnthY3RpdmVQbHVnaW5zOiJhY3RpdmVQbHVnaW5zIixkaXNhYmxlZFBsdWdpbnM6ImRpc2FibGVkUGx1Z2lucyIsc2VsZWN0ZWRQbHVnaW46InNlbGVjdGVkUGx1Z2luIn0sb3V0cHV0czp7b25QbHVnaW5TZWxlY3Rpb25DaGFuZ2VkOiJvblBsdWdpblNlbGVjdGlvbkNoYW5nZWQifSxkZWNsczozLHZhcnM6Myxjb25zdHM6W1sibWF0LXN0cmV0Y2gtdGFicyIsImZhbHNlIiwiYW5pbWF0aW9uRHVyYXRpb24iLCIxMDBtcyIsMSwiYWN0aXZlLXBsdWdpbi1saXN0IiwzLCJzZWxlY3RlZEluZGV4Il0sWzMsImRpc2FibGVkIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImZsb2F0TGFiZWwiLCJuZXZlciIsInN1YnNjcmlwdFNpemluZyIsImR5bmFtaWMiLDQsIm5nSWYiXSxbMywiZGlzYWJsZWQiXSxbIm1hdC10YWItbGFiZWwiLCIiXSxbMSwicGx1Z2luLW5hbWUiLDMsImNsaWNrIl0sWyJmbG9hdExhYmVsIiwibmV2ZXIiLCJzdWJzY3JpcHRTaXppbmciLCJkeW5hbWljIl0sWzMsInZhbHVlIiwiaGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvciIsInNlbGVjdGlvbkNoYW5nZSJdLFszLCJ2YWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsInZhbHVlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJtYXQtdGFiLWdyb3VwIiwwKSxTKDEsZU1lLDIsMSwibWF0LXRhYiIsMSksZygpLFMoMixuTWUsNSwzLCJtYXQtZm9ybS1maWVsZCIsMikpLDImZSYmKGIoInNlbGVjdGVkSW5kZXgiLGkuZ2V0QWN0aXZlUGx1Z2luSW5kZXgoKSksdigxKSxiKCJuZ0Zvck9mIixpLmFjdGl2ZVBsdWdpbnMpLHYoMSksYigibmdJZiIsaS5kaXNhYmxlZFBsdWdpbnMubGVuZ3RoPjApKX0sZGVwZW5kZW5jaWVzOlt0TixheSx2RSxQYyxubCxXdSxqYSxubixOZV0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIGF1dG87Zm9udC1zaXplOjE0cHg7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVufVtfbmdob3N0LSVDT01QJV0gICBtYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV0gICAge3dpZHRoOjE0NHB4fVtfbmdob3N0LSVDT01QJV0gICBtYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5tZGMtdGV4dC1maWVsZHtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDA7cGFkZGluZzowIDRweH1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBtYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5tZGMtdGV4dC1maWVsZHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9W19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgbGFiZWwubWRjLWZsb2F0aW5nLWxhYmVsLm1hdC1tZGMtZmxvYXRpbmctbGFiZWwsIFtfbmdob3N0LSVDT01QJV0gICBtYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5tYXQtbWRjLXNlbGVjdCwgW19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLm1hdC1tZGMtc2VsZWN0LXZhbHVlLCBbX25naG9zdC0lQ09NUCVdICAgbWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVdICAgICAubWF0LW1kYy1zZWxlY3QtYXJyb3d7Y29sb3I6aW5oZXJpdH1bX25naG9zdC0lQ09NUCVdICAgbWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVdICAgICAubWRjLXRleHQtZmllbGQtLWZpbGxlZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1saW5lLXJpcHBsZTo6YmVmb3Jle2JvcmRlci1jb2xvcjppbmhlcml0fW1hdC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIG1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVdLCBtYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5hY3RpdmUtcGx1Z2luLWxpc3RbX25nY29udGVudC0lQ09NUCVde2FsaWduLXNlbGY6c3RyZXRjaDtmbGV4OjEgMSBhdXRvO292ZXJmbG93OmhpZGRlbn0ucGx1Z2luLW5hbWVbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2hlaWdodDoxMDAlO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzowIDEycHg7d2lkdGg6MTAwJX1bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IC5tYXQtbWRjLXRhYjpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKSAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZXtib3JkZXItY29sb3I6Y3VycmVudENvbG9yfVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgLm1hdC1tZGMtdGFiOm5vdCgubWF0LW1kYy10YWItZGlzYWJsZWQpIC5tZGMtdGFiX190ZXh0LWxhYmVse2NvbG9yOmluaGVyaXQ7b3BhY2l0eTouN31bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IC5tYXQtbWRjLXRhYjpub3QoLm1hdC1tZGMtdGFiLWRpc2FibGVkKS5tZGMtdGFiLS1hY3RpdmUgLm1kYy10YWJfX3RleHQtbGFiZWx7Y29sb3I6aW5oZXJpdDtvcGFjaXR5OjF9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb257Y29sb3I6aW5oZXJpdH1bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IC5tYXQtbWRjLXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1jb2xvcjpjdXJyZW50Q29sb3J9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWR7dmlzaWJpbGl0eTpoaWRkZW59W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LW1kYy10YWItZGlzYWJsZWR7ZGlzcGxheTpub25lfVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgbWF0LW1kYy10YWItbGlzdCwgW19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LW1kYy10YWItaGVhZGVyLCBbX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IC5tYXQtbWRjLXRhYi1sYWJlbHMsIFtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgLm1hdC1tZGMtdGFiLWhlYWRlciAubWF0LW1kYy10YWIsIFtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgLm1kYy10YWJfX3RleHQtbGFiZWx7aGVpZ2h0OjEwMCV9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LW1kYy10YWJ7bGV0dGVyLXNwYWNpbmc6LjI1cHg7bWluLXdpZHRoOjQ4cHg7cGFkZGluZzowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX1bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IG1hdC10YWItaGVhZGVyIC5tYXQtbWRjLXRhYi1saXN0e3BhZGRpbmc6MCAzNnB4fVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgbWF0LXRhYi1oZWFkZXI+OmZpcnN0LWNoaWxkLCBbX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IG1hdC10YWItaGVhZGVyPi5tYXQtbWRjLXRhYi1sYWJlbC1jb250YWluZXIsIFtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgbWF0LXRhYi1oZWFkZXI+Omxhc3QtY2hpbGR7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjB9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCBtYXQtdGFiLWhlYWRlcj46Zmlyc3QtY2hpbGQsIFtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgbWF0LXRhYi1oZWFkZXI+Lm1hdC1tZGMtdGFiLWxhYmVsLWNvbnRhaW5lcntsZWZ0OjB9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCBtYXQtdGFiLWhlYWRlcj46bGFzdC1jaGlsZCwgW19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCBtYXQtdGFiLWhlYWRlcj4ubWF0LW1kYy10YWItbGFiZWwtY29udGFpbmVye3JpZ2h0OjB9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCBtYXQtdGFiLWhlYWRlcj4ubWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb257YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCBtYXQtdGFiLWhlYWRlcj4ubWF0LW1kYy10YWItaGVhZGVyLXBhZ2luYXRpb257YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfSJdfSksbn0pKCksdlg9VyhHZixuPT5PYmplY3Qua2V5cyhuKS5tYXAodD0+T2JqZWN0LmFzc2lnbih7fSx7aWQ6dH0sblt0XSkpKSxyTWU9Vyh2WCxuPT5uLmZpbHRlcih0PT4hdC5lbmFibGVkKSkseVg9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLnN0b3JlPWUsdGhpcy5hY3RpdmVQbHVnaW4kPXRoaXMuc3RvcmUucGlwZSh1bihabykpLHRoaXMucGx1Z2lucyQ9dGhpcy5zdG9yZS5waXBlKHVuKHZYKSksdGhpcy5kaXNhYmxlZFBsdWdpbnMkPXRoaXMuc3RvcmUucGlwZSh1bihyTWUpKX1vblBsdWdpblNlbGVjdGlvbkNoYW5nZShlKXt0aGlzLnN0b3JlLmRpc3BhdGNoKHljKHtwbHVnaW46ZX0pKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInBsdWdpbi1zZWxlY3RvciJdXSxkZWNsczo0LHZhcnM6OSxjb25zdHM6W1szLCJhY3RpdmVQbHVnaW5zIiwiZGlzYWJsZWRQbHVnaW5zIiwic2VsZWN0ZWRQbHVnaW4iLCJvblBsdWdpblNlbGVjdGlvbkNoYW5nZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsInBsdWdpbi1zZWxlY3Rvci1jb21wb25lbnQiLDApLEEoIm9uUGx1Z2luU2VsZWN0aW9uQ2hhbmdlZCIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25QbHVnaW5TZWxlY3Rpb25DaGFuZ2Uobyl9KSxVKDEsImFzeW5jIiksVSgyLCJhc3luYyIpLFUoMywiYXN5bmMiKSxnKCkpLDImZSYmYigiYWN0aXZlUGx1Z2lucyIsRygxLDMsaS5wbHVnaW5zJCkpKCJkaXNhYmxlZFBsdWdpbnMiLEcoMiw1LGkuZGlzYWJsZWRQbHVnaW5zJCkpKCJzZWxlY3RlZFBsdWdpbiIsRygzLDcsaS5hY3RpdmVQbHVnaW4kKSl9LGRlcGVuZGVuY2llczpbYlgsY3RdLGVuY2Fwc3VsYXRpb246Mn0pLG59KSgpLGFNZT1XKEdmLFpvLChuLHQpPT4hKCF0fHwhblt0XSkmJm5bdF0uZGlzYWJsZV9yZWxvYWQpLHhYPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5zdG9yZT1lLHRoaXMucmVsb2FkRGlzYWJsZWQkPXRoaXMuc3RvcmUuc2VsZWN0KGFNZSksdGhpcy5pc1JlbG9hZGluZyQ9dGhpcy5zdG9yZS5zZWxlY3QoTDYpLnBpcGUoVmkodGhpcy5yZWxvYWREaXNhYmxlZCQpLHEoKFtpLHJdKT0+IXImJmk9PT1SZS5MT0FESU5HKSksdGhpcy5sYXN0TG9hZGVkVGltZUluTXMkPXRoaXMuc3RvcmUuc2VsZWN0KGpmKX10cmlnZ2VyUmVsb2FkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChCYSgpKX1nZXRSZWxvYWRUaXRsZShlKXtyZXR1cm4gZT9gTGFzdCBVcGRhdGVkOiAke2V9YDoiTG9hZGluZy4uLiJ9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJhcHAtaGVhZGVyLXJlbG9hZCJdXSxkZWNsczo2LHZhcnM6MTMsY29uc3RzOltbIm1hdC1pY29uLWJ1dHRvbiIsIiIsMSwicmVsb2FkLWJ1dHRvbiIsMywidGl0bGUiLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJzdmdJY29uIiwicmVmcmVzaF8yNHB4IiwxLCJyZWZyZXNoLWljb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImJ1dHRvbiIsMCksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGkudHJpZ2dlclJlbG9hZCgpfSksVSgxLCJhc3luYyIpLFUoMiwiZGF0ZSIpLFUoMywiYXN5bmMiKSxVKDQsImFzeW5jIiksayg1LCJtYXQtaWNvbiIsMSksZygpKSwyJmUmJihudCgibG9hZGluZyIsRygxLDQsaS5pc1JlbG9hZGluZyQpKSxiKCJ0aXRsZSIsaS5nZXRSZWxvYWRUaXRsZShKcCgyLDYsRygzLDksaS5sYXN0TG9hZGVkVGltZUluTXMkKSwibWVkaXVtIikpKSgiZGlzYWJsZWQiLEcoNCwxMSxpLnJlbG9hZERpc2FibGVkJCkpKX0sZGVwZW5kZW5jaWVzOltFcixibixjdCx3Zl0sc3R5bGVzOlsiLnJlbG9hZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAucmVmcmVzaC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAucmVsb2FkLWJ1dHRvbi5sb2FkaW5nW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGFuaW1hdGlvbjogX25nY29udGVudC0lQ09NUCVfcm90YXRlIDJzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBfbmdjb250ZW50LSVDT01QJV9yb3RhdGUge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIH1cbiAgICAgICAgNTAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICB9XG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgIH1cbiAgICAgIH0iXX0pLG59KSgpLENYPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImFwcC1oZWFkZXIiXV0sZGVjbHM6OSx2YXJzOjAsY29uc3RzOltbMSwiYnJhbmQiXSxbMSwicGx1Z2lucyJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiaHJlZiIsImh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIsInJlbCIsIm5vb3BlbmVyIG5vcmVmZXJyZXIiLCJ0YXJnZXQiLCJfYmxhbmsiLCJhcmlhLWxhYmVsIiwiSGVscCIsMSwicmVhZG1lIl0sWyJzdmdJY29uIiwiaGVscF9vdXRsaW5lXzI0cHgiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsIm1hdC10b29sYmFyIikoMSwic3BhbiIsMCksVCgyLCJUZW5zb3JCb2FyZCIpLGcoKSxrKDMsInBsdWdpbi1zZWxlY3RvciIsMSkoNCwiYXBwLWhlYWRlci1kYXJrLW1vZGUtdG9nZ2xlIikoNSwiYXBwLWhlYWRlci1yZWxvYWQiKSg2LCJzZXR0aW5ncy1idXR0b24iKSxmKDcsImEiLDIpLGsoOCwibWF0LWljb24iLDMpLGcoKSgpKX0sZGVwZW5kZW5jaWVzOltqNyxibixqcSx0WCxhWCx5WCx4WF0sc3R5bGVzOlsibWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjojZmZmO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NjRweDtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MTAwJX0uYnJhbmRbX25nY29udGVudC0lQ09NUCVdLCAucmVhZG1lW19uZ2NvbnRlbnQtJUNPTVAlXSwgYXBwLWhlYWRlci1yZWxvYWRbX25nY29udGVudC0lQ09NUCVdLCBzZXR0aW5ncy1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZsZXg6MCAwIGF1dG99LmJyYW5kW19uZ2NvbnRlbnQtJUNPTVAlXXtsZXR0ZXItc3BhY2luZzotMC4wMjVlbTttYXJnaW4tbGVmdDoxMHB4O3RleHQtcmVuZGVyaW5nOm9wdGltaXplTGVnaWJpbGl0eX0ucGx1Z2luc1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO2ZvbnQtc2l6ZToxNHB4O2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0iXX0pLG59KSgpLGRNZV9zZXREb2N1bWVudFRpdGxlPWZ1bmN0aW9uKG4pe2RvY3VtZW50LnRpdGxlPW59LE1YPSgoKT0+e2NsYXNzIG57bmdPbkNoYW5nZXMoZSl7ZS50aXRsZSYmZE1lX3NldERvY3VtZW50VGl0bGUoZS50aXRsZS5jdXJyZW50VmFsdWUpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJwYWdlLXRpdGxlLWNvbXBvbmVudCJdXSxpbnB1dHM6e3RpdGxlOiJ0aXRsZSJ9LGZlYXR1cmVzOltxdF0sZGVjbHM6MCx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXt9LGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLHdYPSJUZW5zb3JCb2FyZCIsU1g9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkpe3RoaXMuc3RvcmU9ZSx0aGlzLmN1c3RvbUJyYW5kTmFtZT1pLHRoaXMuZ2V0RXhwZXJpbWVudElkJD10aGlzLnN0b3JlLnNlbGVjdChvcikucGlwZShxKHI9PnI/LlswXSkpLHRoaXMuZXhwZXJpbWVudE5hbWUkPXRoaXMuZ2V0RXhwZXJpbWVudElkJC5waXBlKE9lKEJvb2xlYW4pLHhuKHI9PnRoaXMuc3RvcmUuc2VsZWN0KFVTLHtleHBlcmltZW50SWQ6cn0pKSxxKHI9PnI/ci5uYW1lOm51bGwpKSx0aGlzLnRpdGxlJD10aGlzLnN0b3JlLnNlbGVjdChDUykucGlwZShWaSh0aGlzLnN0b3JlLnNlbGVjdChXcyksdGhpcy5leHBlcmltZW50TmFtZSQpLHEoKFtyLG8sYV0pPT57bGV0IHM9dGhpcy5jdXN0b21CcmFuZE5hbWV8fHdYO3JldHVybiByLndpbmRvd190aXRsZT9yLndpbmRvd190aXRsZTpvPT09Q24uRVhQRVJJTUVOVCYmYT9gJHthfSAtICR7c31gOnN9KSxrbih0aGlzLmN1c3RvbUJyYW5kTmFtZXx8d1gpLHJpKCkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKEllKSxDKEk2LDgpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJwYWdlLXRpdGxlIl1dLGRlY2xzOjIsdmFyczozLGNvbnN0czpbWzMsInRpdGxlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoaygwLCJwYWdlLXRpdGxlLWNvbXBvbmVudCIsMCksVSgxLCJhc3luYyIpKSwyJmUmJmIoInRpdGxlIixHKDEsMSxpLnRpdGxlJCkpfSxkZXBlbmRlbmNpZXM6W01YLGN0XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLEVYPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5zdG9yZT1lLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgRWUsdGhpcy5nZXRQYWdlU2l6ZSQ9dGhpcy5zdG9yZS5waXBlKHVuKE1oKSksdGhpcy5wYWdpbmF0ZWRWaWV3U3RvcmU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGYtcGFnaW5hdGVkLXZpZXctc3RvcmUiKS50Zl9wYWdpbmF0ZWRfdmlld31uZ09uSW5pdCgpe3RoaXMuZ2V0UGFnZVNpemUkLnBpcGUoaXQodGhpcy5uZ1Vuc3Vic2NyaWJlKSxyaSgpKS5zdWJzY3JpYmUoZT0+e3RoaXMucGFnaW5hdGVkVmlld1N0b3JlLnNldExpbWl0KGUpfSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKEllKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sic2V0dGluZ3MtcG9seW1lci1pbnRlcm9wIl1dLGRlY2xzOjAsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7fSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxUWD0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMudmNSZWY9ZX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhlaSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInRiLXdlYmFwcCJdXSxkZWNsczo5LHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGsoMCwiYXBwLWhlYWRlciIpLGYoMSwibWFpbiIpLGsoMiwicm91dGVyLW91dGxldCIpLGcoKSxrKDMsImFsZXJ0LXNuYWNrYmFyIikoNCwiaGFzaC1zdG9yYWdlIikoNSwicGFnZS10aXRsZSIpKDYsInNldHRpbmdzLXBvbHltZXItaW50ZXJvcCIpKDcsImRhcmstbW9kZS1zdXBwb3J0ZXIiKSg4LCJmZWF0dXJlLWZsYWctbW9kYWwtdHJpZ2dlciIpKX0sZGVwZW5kZW5jaWVzOltQcSxPcSxwOSxGcSxMcSxDWCxTWCxFWF0sc3R5bGVzOlsiaHRtbFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90byxzYW5zLXNlcmlmO2hlaWdodDoxMDAlO21hcmdpbjowO3BhZGRpbmc6MH1bX25naG9zdC0lQ09NUCVde2JhY2tncm91bmQ6I2Y1ZjVmNTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDAlfWFwcC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JveC1zaGFkb3c6MCAxcHggM3B4IDNweCByZ2JhKDAsMCwwLC4yNSk7ZmxleDowIDA7ei1pbmRleDoxfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIGFwcC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBhcHAtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3gtc2hhZG93OjAgMXB4IDNweCAzcHggcmdiYSgyNTUsMjU1LDI1NSwuMSl9bWFpbltfbmdjb250ZW50LSVDT01QJV17ZmxleC1ncm93OjE7b3ZlcmZsb3c6YXV0b30iXX0pLG59KSgpLERYPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltEZSxrZixQZixSbF19KSxufSkoKSxJWD0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7fSksbn0pKCksQVg9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe3Byb3ZpZGVyczpbe3Byb3ZpZGU6Z3UsdXNlQ2xhc3M6bjZ9XX0pLG59KSgpLFJYPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltEZSxBWF19KSxufSkoKSxQWD0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGVdfSksbn0pKCksa1g9e2lkOlF3LG5hbWU6IiIsc3RhcnRfdGltZTowfSxmTWU9Z3Ioe2V4cGVyaW1lbnRNYXA6e1trWC5pZF06a1h9fSk7ZnVuY3Rpb24gT1gobix0KXtyZXR1cm4gY2goe2RhdGE6Zk1lfSkobix0KX12YXIgRlg9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W3dyLmZvckZlYXR1cmUoelMsT1gpXX0pLG59KSgpLE5YPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltEZSxLbixYYV19KSxufSkoKSxMWD0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGUsTlhdfSksbn0pKCksQlg9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0RlLEd1LHVFLEtuLGtjLEh1LGFpLHJsXX0pLG59KSgpO2Z1bmN0aW9uIGdNZSgpe3JldHVybiBXKEF2LG49Pih7YXV0b1JlbG9hZDpufSkpfWZ1bmN0aW9uIF9NZSgpe3JldHVybiBXKFJ2LG49Pih7YXV0b1JlbG9hZFBlcmlvZEluTXM6bn0pKX1mdW5jdGlvbiBiTWUoKXtyZXR1cm4gVyhNaCxuPT4oe3BhZ2VTaXplOm59KSl9dmFyIHhFPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOlt3ci5mb3JGZWF0dXJlKHcxLFdxKSxSaS5kZWZpbmVHbG9iYWxTZXR0aW5nKGdNZSksUmkuZGVmaW5lR2xvYmFsU2V0dGluZyhfTWUpLFJpLmRlZmluZUdsb2JhbFNldHRpbmcoYk1lKSxCWF19KSxufSkoKSxWWD0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbS24sYWkseUUsR3EsWGEsUXUsRGUsUXMseEVdfSksbn0pKCksSFg9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkpe2xldCByPWUuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKCIuL2ljb25fYnVuZGxlLnN2ZyIpO2kuYWRkU3ZnSWNvblNldChyKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhuaCksTyhFZykpfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOlthaV19KSxufSkoKSxuTj1uZXcgdGUoIltwbHVnaW5zXSBQbHVnaW4gcmVnaXN0cnkgY29uZmlnIikselg9bmV3IE1hcCxPYz0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe2lmKCFlKXJldHVybjtsZXQgaT1uZXcgU2V0KGUubWFwKHI9PnIucGx1Z2luTmFtZSkpO2NvbnNvbGUuYXNzZXJ0KGkuc2l6ZT09PWUubGVuZ3RoLCJDYW5ub3QgcmVnaXN0ZXIgdGhlIHNhbWUgcGx1Z2luIG11bHRpcGxlIHRpbWVzLiIpO2ZvcihsZXQgciBvZiBlKXtsZXR7cGx1Z2luTmFtZTpvLGNvbXBvbmVudENsYXNzOmF9PXI7elguc2V0KG8sYSl9fXN0YXRpYyBmb3JQbHVnaW4oZSxpKXtyZXR1cm57bmdNb2R1bGU6bixwcm92aWRlcnM6W3twcm92aWRlOm5OLG11bHRpOiEwLHVzZVZhbHVlOntwbHVnaW5OYW1lOmUsY29tcG9uZW50Q2xhc3M6aX19XX19Z2V0Q29tcG9uZW50KGUpe3JldHVybiB6WC5nZXQoZSl8fG51bGx9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKE8obk4sOCkpfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHt9KSxufSkoKSxDRT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuaHR0cD1lLHRoaXMuaHR0cFBhdGhQcmVmaXg9ImRhdGEvcGx1Z2luL2RlYnVnZ2VyLXYyIn1mZXRjaFJ1bnMoKXtyZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmh0dHBQYXRoUHJlZml4KyIvcnVucyIpfWZldGNoRXhlY3V0aW9uRGlnZXN0cyhlLGkscil7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5odHRwUGF0aFByZWZpeCsiL2V4ZWN1dGlvbi9kaWdlc3RzIix7cGFyYW1zOntydW46ZSxiZWdpbjpTdHJpbmcoaSksZW5kOlN0cmluZyhyKX19KX1mZXRjaEV4ZWN1dGlvbkRhdGEoZSxpLHIpe3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuaHR0cFBhdGhQcmVmaXgrIi9leGVjdXRpb24vZGF0YSIse3BhcmFtczp7cnVuOmUsYmVnaW46U3RyaW5nKGkpLGVuZDpTdHJpbmcocil9fSl9ZmV0Y2hHcmFwaEV4ZWN1dGlvbkRpZ2VzdHMoZSxpLHIsbyl7aWYodm9pZCAwIT09byl0aHJvdyBuZXcgRXJyb3IoInRyYWNlX2lkIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3IgZmV0Y2hHcmFwaEV4ZWN1dGlvbkRpZ2VzdHMoKSB5ZXQiKTtyZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmh0dHBQYXRoUHJlZml4KyIvZ3JhcGhfZXhlY3V0aW9uL2RpZ2VzdHMiLHtwYXJhbXM6e3J1bjplLGJlZ2luOlN0cmluZyhpKSxlbmQ6U3RyaW5nKHIpfX0pfWZldGNoR3JhcGhFeGVjdXRpb25EYXRhKGUsaSxyLG8pe2lmKHZvaWQgMCE9PW8pdGhyb3cgbmV3IEVycm9yKCJ0cmFjZV9pZCBpcyBub3QgaW1wbGVtZW50ZWQgZm9yIGZldGNoR3JhcGhFeGVjdXRpb25EYXRhKCkgeWV0Iik7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5odHRwUGF0aFByZWZpeCsiL2dyYXBoX2V4ZWN1dGlvbi9kYXRhIix7cGFyYW1zOntydW46ZSxiZWdpbjpTdHJpbmcoaSksZW5kOlN0cmluZyhyKX19KX1mZXRjaEdyYXBoT3BJbmZvKGUsaSxyKXtyZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmh0dHBQYXRoUHJlZml4KyIvZ3JhcGhzL29wX2luZm8iLHtwYXJhbXM6e3J1bjplLGdyYXBoX2lkOmksb3BfbmFtZTpyfX0pfWZldGNoU291cmNlRmlsZUxpc3QoZSl7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5odHRwUGF0aFByZWZpeCsiL3NvdXJjZV9maWxlcy9saXN0Iix7cGFyYW1zOntydW46ZX19KX1mZXRjaFNvdXJjZUZpbGUoZSxpKXtyZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmh0dHBQYXRoUHJlZml4KyIvc291cmNlX2ZpbGVzL2ZpbGUiLHtwYXJhbXM6e3J1bjplLGluZGV4OlN0cmluZyhpKX19KX1mZXRjaFN0YWNrRnJhbWVzKGUsaSl7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5odHRwUGF0aFByZWZpeCsiL3N0YWNrX2ZyYW1lcy9zdGFja19mcmFtZXMiLHtwYXJhbXM6e3J1bjplLHN0YWNrX2ZyYW1lX2lkczppLmpvaW4oIiwiKX19KS5waXBlKHEocj0+KHtzdGFja19mcmFtZXM6ci5zdGFja19mcmFtZXMubWFwKG89PmZ1bmN0aW9uKG4pe3JldHVybntob3N0X25hbWU6blswXSxmaWxlX3BhdGg6blsxXSxsaW5lbm86blsyXSxmdW5jdGlvbl9uYW1lOm5bM119fShvKSl9KSkpfWZldGNoQWxlcnRzKGUsaSxyLG8pe2xldCBhPXtydW46ZSxiZWdpbjpTdHJpbmcoaSksZW5kOlN0cmluZyhyKX07cmV0dXJuIHZvaWQgMCE9PW8mJihhLmFsZXJ0X3R5cGU9byksdGhpcy5odHRwLmdldCh0aGlzLmh0dHBQYXRoUHJlZml4KyIvYWxlcnRzIix7cGFyYW1zOmF9KX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhYcykpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLFVYPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtwcm92aWRlcnM6W0NFXSxpbXBvcnRzOlt6Zl19KSxufSkoKSxNRT1mZSgiW0RlYnVnZ2VyXSBEZWJ1Z2dlciBMb2FkZWQiKSx3RT1mZSgiW0RlYnVnZ2VyXSBEZWJ1Z2dlciBVbmxvYWRlZCIpLHN5PWZlKCJbRGVidWdnZXJdIEEgTmV3IERlYnVnZ2VyIERhdGEgUG9sbGluZyBFdmVudCBCZWdpbnMiKSxTRT1mZSgiW0RlYnVnZ2VyXSBEZWJ1Z2dlciBSdW5zIFJlcXVlc3RlZCIpLEVFPWZlKCJbRGVidWdnZXJdIERlYnVnZ2VyIFJ1bnMgTG9hZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksalg9ZmUoIltEZWJ1Z2dlcl0gRGVidWdnZXIgUnVucyBSZXF1ZXN0IEZhaWxlZCIpLGx5PWZlKCJbRGVidWdnZXJdIE51bWJlciBhbmQgQnJlYWtkb3duIG9mIEFsZXJ0cyBSZXF1ZXN0ZWQiKSxURT1mZSgiW0RlYnVnZ2VyXSBOdW1iZXIgYW5kIEJyZWFrZG93biBvZiBBbGVydHMgTG9hZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksREU9ZmUoIltEZWJ1Z2dlcl0gQWxlcnRzIERhdGEgb2YgYW4gQWxlcnRUeXBlIElzIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLERnPWZlKCJbRGVidWdnZXJdIEFsZXJ0IFR5cGUgRm9jdXMgVG9nZ2xlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLElFPWZlKCJbRGVidWdnZXJdIE51bWJlciBvZiBUb3AtTGV2ZWwgRXhlY3V0aW9ucyBSZXF1ZXN0ZWQiKSxBRT1mZSgiW0RlYnVnZ2VyXSBOdW1iZXIgb2YgVG9wLUxldmVsIEV4ZWN1dGlvbnMgTG9hZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksUkU9ZmUoIltEZWJ1Z2dlcl0gRXhlY3V0aW9uRGlnZXN0cyBSZXF1ZXN0ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxQRT1mZSgiW0RlYnVnZ2VyXSBFeGVjdXRpb25EaWdlc3RzIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLElnPWZlKCJbRGVidWdnZXJdIFNjcm9sbCBMZWZ0d2FyZCBvbiB0aGUgRXhlY3V0aW9uIFRpbWVsaW5lIiksQWc9ZmUoIltEZWJ1Z2dlcl0gU2Nyb2xsIFJpZ2h0d2FyZCBvbiB0aGUgRXhlY3V0aW9uIFRpbWVsaW5lIiksUmc9ZmUoIltEZWJ1Z2dlcl0gU2Nyb2xsIHRoZSBFeGVjdXRpb24gVGltZWxpbmUgdG8gR2l2ZW4gSW5kZXgiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxQZz1mZSgiW0RlYnVnZ2VyXSBFeGVjdXRpb24gRGF0YSBPYmplY3RzIEJlaW5nIEZvY3VzZWQgT24iLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxrRT1mZSgiW0RlYnVnZ2VyXSBFeGVjdXRpb24gRGF0YSBPYmplY3RzIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLE9FPWZlKCJbRGVidWdnZXJdIE51bWJlciBvZiBJbnRyYS1HcmFwaCBFeGVjdXRpb25zIFJlcXVlc3RlZCIpLEZFPWZlKCJbRGVidWdnZXJdIE51bWJlciBvZiBJbnRyYS1HcmFwaCBFeGVjdXRpb25zIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLE5FPWZlKCJbRGVidWdnZXJdIEludHJhLUdyYXBoIEV4ZWN1dGlvbiBEYXRhIFJlcXVlc3RlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLExFPWZlKCJbRGVidWdnZXJdIEludHJhLUdyYXBoIEV4ZWN1dGlvbiBEYXRhIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGtnPWZlKCJbRGVidWdnZXJdIFNjcm9sbCBJbnRyYS1HcmFwaCBFeGVjdXRpb24gTGlzdCB0byBHaXZlbiBJbmRleCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLE9nPWZlKCJbRGVidWdnZXJdIEdyYXBoIEV4ZWN1dGlvbiBpcyBGb2N1c2VkIE9uIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksRmc9ZmUoIltEZWJ1Z2dlcl0gR3JhcGggT3AgSXMgRm9jdXNlZCBPbiIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEJFPWZlKCJbRGVidWdnZXJdIEdyYXBoIE9wIEluZm8gUmVxdWVzdGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksVkU9ZmUoIltEZWJ1Z2dlcl0gR3JhcGggT3AgSW5mbyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxIRT1mZSgiW0RlYnVnZ2VyXSBTb3VyY2UgRmlsZSBMaXN0IFJlcXVlc3RlZC4iKSx6RT1mZSgiW0RlYnVnZ2VyXSBTb3VyY2UgRmlsZSBMaXN0IExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLE5nPWZlKCJbRGVidWdnZXJdIFNvdXJjZSBGaWxlIExpbmUgSXMgRm9jdXNlZCBvbiIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFVFPWZlKCJbRGVidWdnZXJdIFNvdXJjZSBGaWxlIFJlcXVlc3RlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGpFPWZlKCJbRGVidWdnZXJdIFNvdXJjZSBGaWxlIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGN5PWZlKCJbRGVidWdnZXJdIEEgU2V0IG9mIFN0YWNrIEZyYW1lcyBIYXZlIEJlZW4gTG9hZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksZHk9ImRlYnVnZ2VyIixBbz0oKCk9PihmdW5jdGlvbihuKXtuW24uVU5TUEVDSUZJRUQ9MF09IlVOU1BFQ0lGSUVEIixuW24uTk9fVEVOU09SPTFdPSJOT19URU5TT1IiLG5bbi5DVVJUX0hFQUxUSD0yXT0iQ1VSVF9IRUFMVEgiLG5bbi5DT05DSVNFX0hFQUxUSD0zXT0iQ09OQ0lTRV9IRUFMVEgiLG5bbi5GVUxMX0hFQUxUSD00XT0iRlVMTF9IRUFMVEgiLG5bbi5TSEFQRT01XT0iU0hBUEUiLG5bbi5GVUxMX05VTUVSSUNTPTZdPSJGVUxMX05VTUVSSUNTIixuW24uRlVMTF9URU5TT1I9N109IkZVTExfVEVOU09SIixuW24uUkVEVUNFX0lORl9OQU5fVEhSRUVfU0xPVFM9OF09IlJFRFVDRV9JTkZfTkFOX1RIUkVFX1NMT1RTIn0oQW98fChBbz17fSkpLEFvKSkoKSxGYz0oKCk9PihmdW5jdGlvbihuKXtuLkZVTkNUSU9OX1JFQ09NUElMRV9BTEVSVD0iRnVuY3Rpb25SZWNvbXBpbGVzQWxlcnQiLG4uSU5GX05BTl9BTEVSVD0iSW5mTmFuQWxlcnQiLG4uVEVOU09SX1NIQVBFX0FMRVJUPSJUZW5zb3JTaGFwZUFsZXJ0In0oRmN8fChGYz17fSkpLEZjKSkoKSx6bz0oKCk9PihmdW5jdGlvbihuKXtuW24uRVhFQ1VUSU9OPTBdPSJFWEVDVVRJT04iLG5bbi5HUkFQSF9PUF9DUkVBVElPTj0xXT0iR1JBUEhfT1BfQ1JFQVRJT04ifSh6b3x8KHpvPXt9KSksem8pKSgpO2Z1bmN0aW9uIExnKG4pe2lmKG51bGw9PT1uLmNvZGVMb2NhdGlvbkZvY3VzVHlwZSlyZXR1cm4gbnVsbDtsZXQgdD1bXTtpZihuLmNvZGVMb2NhdGlvbkZvY3VzVHlwZT09PXpvLkVYRUNVVElPTil7bGV0e2ZvY3VzSW5kZXg6aSxleGVjdXRpb25EYXRhOnJ9PW4uZXhlY3V0aW9ucztpZihudWxsPT09aXx8dm9pZCAwPT09cltpXSlyZXR1cm4gbnVsbDt0PXJbaV0uc3RhY2tfZnJhbWVfaWRzfWVsc2V7aWYobnVsbD09PW4uZ3JhcGhzLmZvY3VzZWRPcClyZXR1cm4gbnVsbDtsZXR7Z3JhcGhJZDppLG9wTmFtZTpyfT1uLmdyYXBocy5mb2N1c2VkT3A7aWYodm9pZCAwPT09bi5ncmFwaHMub3BzW2ldfHwhbi5ncmFwaHMub3BzW2ldLmhhcyhyKSlyZXR1cm4gbnVsbDt0PW4uZ3JhcGhzLm9wc1tpXS5nZXQocikuc3RhY2tfZnJhbWVfaWRzfWxldCBlPVtdO2ZvcihsZXQgaSBvZiB0KXtpZihudWxsPT1uLnN0YWNrRnJhbWVzW2ldKXJldHVybiBudWxsO2UucHVzaChuLnN0YWNrRnJhbWVzW2ldKX1yZXR1cm4gZX1mdW5jdGlvbiB1eShuLHQpe3JldHVybiBuLmZpbmRJbmRleChlPT5lLmhvc3RfbmFtZT09PXQuaG9zdF9uYW1lJiZlLmZpbGVfcGF0aD09PXQuZmlsZV9wYXRoKX1mdW5jdGlvbiByTihuLHQsZSl7aWYodD49ZSl0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGJlZ2luIHRvIGJlIGxlc3MgdGhhbiBlbmQsIGJ1dCBnb3QgYmVnaW49JHt0fSwgZW5kPSR7ZX1gKTtyZXR1cm4gbi5maW5kSW5kZXgoaT0+aS5iZWdpbj09PXQmJmkuZW5kPT09ZSl9ZnVuY3Rpb24gR0Uobil7bGV0IHQ9bi5zb3VyY2VDb2RlLmZvY3VzTGluZVNwZWM7aWYoIW4uc3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGUpcmV0dXJuIHQ7bGV0IGU9TGcobik7aWYobnVsbD09PWUpcmV0dXJuIHQ7bGV0IGk9ZnVuY3Rpb24obix0KXtpZihudWxsPT09dClyZXR1cm4gbnVsbDtmb3IobGV0IGU9bi5sZW5ndGgtMTtlPj0wOy0tZSl7bGV0IGk9bltlXSx7aG9zdF9uYW1lOnIsZmlsZV9wYXRoOm99PWk7aWYocj09PXQuaG9zdF9uYW1lJiZvPT09dC5maWxlX3BhdGgpcmV0dXJuIGl9cmV0dXJuIG51bGx9KGUsdCk7cmV0dXJuIG51bGw9PT1pP3Q6aX12YXIgQU1lPWdyKHtydW5zOnt9LHJ1bnNMb2FkZWQ6e3N0YXRlOlJlLk5PVF9MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOm51bGx9LGFjdGl2ZVJ1bklkOm51bGwsbGFzdERhdGFQb2xsT25zZXRUaW1lTXM6LTEsbGFzdE5vbkVtcHR5UG9sbERhdGFUaW1lTXM6MSxhbGVydHM6e2FsZXJ0c0xvYWRlZDp7c3RhdGU6UmUuTk9UX0xPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6bnVsbH0sbnVtQWxlcnRzOjAsYWxlcnRzQnJlYWtkb3duOnt9LGFsZXJ0czp7fSxleGVjdXRpb25JbmRpY2VzOnt9LGdyYXBoRXhlY3V0aW9uSW5kaWNlczp7fSxmb2N1c1R5cGU6bnVsbH0sZXhlY3V0aW9uczp7bnVtRXhlY3V0aW9uc0xvYWRlZDp7c3RhdGU6UmUuTk9UX0xPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6bnVsbH0sZXhlY3V0aW9uRGlnZXN0c0xvYWRlZDp7bG9hZGluZ1JhbmdlczpbXSxudW1FeGVjdXRpb25zOjAscGFnZUxvYWRlZFNpemVzOnt9fSxkaXNwbGF5Q291bnQ6NTAscGFnZVNpemU6MTAwLHNjcm9sbEJlZ2luSW5kZXg6MCxmb2N1c0luZGV4Om51bGwsZXhlY3V0aW9uRGlnZXN0czp7fSxleGVjdXRpb25EYXRhOnt9fSxncmFwaEV4ZWN1dGlvbnM6e251bUV4ZWN1dGlvbnNMb2FkZWQ6e3N0YXRlOlJlLk5PVF9MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOm51bGx9LGV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQ6e2xvYWRpbmdSYW5nZXM6W10sbnVtRXhlY3V0aW9uczowLHBhZ2VMb2FkZWRTaXplczp7fX0sZGlzcGxheUNvdW50OjEwMCxwYWdlU2l6ZToyMDAsc2Nyb2xsQmVnaW5JbmRleDowLGZvY3VzSW5kZXg6bnVsbCxncmFwaEV4ZWN1dGlvbkRpZ2VzdHM6e30sZ3JhcGhFeGVjdXRpb25EYXRhTG9hZGluZ1BhZ2VzOltdLGdyYXBoRXhlY3V0aW9uRGF0YVBhZ2VMb2FkZWRTaXplczp7fSxncmFwaEV4ZWN1dGlvbkRhdGE6e319LGdyYXBoczp7b3BzOnt9LGxvYWRpbmdPcHM6e30sZm9jdXNlZE9wOm51bGx9LHN0YWNrRnJhbWVzOnt9LGNvZGVMb2NhdGlvbkZvY3VzVHlwZTpudWxsLHN0aWNrVG9Cb3R0b21tb3N0RnJhbWVJbkZvY3VzZWRGaWxlOiExLHNvdXJjZUNvZGU6e3NvdXJjZUZpbGVMaXN0TG9hZGVkOntzdGF0ZTpSZS5OT1RfTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpudWxsfSxzb3VyY2VGaWxlTGlzdDpbXSxmaWxlQ29udGVudHM6W10sZm9jdXNMaW5lU3BlYzpudWxsfX0seWUoU0Usbj0+KHsuLi5uLHJ1bnNMb2FkZWQ6ey4uLm4ucnVuc0xvYWRlZCxzdGF0ZTpSZS5MT0FESU5HfX0pKSx5ZShqWCxuPT4oey4uLm4scnVuc0xvYWRlZDp7Li4ubi5ydW5zTG9hZGVkLHN0YXRlOlJlLkZBSUxFRH19KSkseWUoRUUsKG4se3J1bnM6dH0pPT57bGV0IGU9T2JqZWN0LmtleXModCksaT1lLmxlbmd0aD4wJiZudWxsPT09bi5hY3RpdmVSdW5JZDtyZXR1cm57Li4ubixsYXN0Tm9uRW1wdHlQb2xsRGF0YVRpbWVNczppP0RhdGUubm93KCk6bi5sYXN0Tm9uRW1wdHlQb2xsRGF0YVRpbWVNcyxydW5zOnQscnVuc0xvYWRlZDp7c3RhdGU6UmUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpfSxhY3RpdmVSdW5JZDplLmxlbmd0aD4wP2VbMF06bnVsbH19KSx5ZShzeSxuPT4oey4uLm4sbGFzdERhdGFQb2xsT25zZXRUaW1lTXM6RGF0ZS5ub3coKX0pKSx5ZShseSxuPT5udWxsPT09bi5hY3RpdmVSdW5JZD9uOnsuLi5uLGFsZXJ0czp7Li4ubi5hbGVydHMsYWxlcnRzTG9hZGVkOnsuLi5uLmFsZXJ0cy5hbGVydHNMb2FkZWQsc3RhdGU6UmUuTE9BRElOR319fSkseWUoVEUsKG4se251bUFsZXJ0czp0LGFsZXJ0c0JyZWFrZG93bjplfSk9PntpZihudWxsPT09bi5hY3RpdmVSdW5JZClyZXR1cm4gbjtsZXQgcj10Pm4uYWxlcnRzLm51bUFsZXJ0cztyZXR1cm57Li4ubixsYXN0Tm9uRW1wdHlQb2xsRGF0YVRpbWVNczpyP0RhdGUubm93KCk6bi5sYXN0Tm9uRW1wdHlQb2xsRGF0YVRpbWVNcyxhbGVydHM6ey4uLm4uYWxlcnRzLGFsZXJ0c0xvYWRlZDp7Li4ubi5hbGVydHMuYWxlcnRzTG9hZGVkLHN0YXRlOlJlLkxPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6RGF0ZS5ub3coKX0sbnVtQWxlcnRzOnQsYWxlcnRzQnJlYWtkb3duOmV9fX0pLHllKERFLChuLHtudW1BbGVydHM6dCxhbGVydHNCcmVha2Rvd246ZSxhbGVydFR5cGU6aSxiZWdpbjpyLGFsZXJ0czpvfSk9PntpZihudWxsPT09bi5hY3RpdmVSdW5JZClyZXR1cm4gbjtsZXQgcz17fSxsPW4uYWxlcnRzLmV4ZWN1dGlvbkluZGljZXNbaV0/bi5hbGVydHMuZXhlY3V0aW9uSW5kaWNlc1tpXS5zbGljZSgpOltdLGM9bi5hbGVydHMuZ3JhcGhFeGVjdXRpb25JbmRpY2VzW2ldP24uYWxlcnRzLmdyYXBoRXhlY3V0aW9uSW5kaWNlc1tpXS5zbGljZSgpOltdO2ZvcihsZXQgcD0wO3A8by5sZW5ndGg7KytwKXtsZXQgaD1yK3AsbT1vW3BdO2lmKHNbaF09bSxtLmFsZXJ0X3R5cGU9PT1GYy5JTkZfTkFOX0FMRVJUKXtsZXQgXz1tO2xbaF09Xy5leGVjdXRpb25faW5kZXgsbnVsbCE9PV8uZ3JhcGhfZXhlY3V0aW9uX3RyYWNlX2luZGV4JiYoY1toXT1fLmdyYXBoX2V4ZWN1dGlvbl90cmFjZV9pbmRleCl9fXZvaWQgMCE9PW4uYWxlcnRzLmFsZXJ0c1tpXSYmT2JqZWN0LmFzc2lnbihzLG4uYWxlcnRzLmFsZXJ0c1tpXSk7bGV0IGQ9bi5leGVjdXRpb25zLnNjcm9sbEJlZ2luSW5kZXgsdT1uLmdyYXBoRXhlY3V0aW9ucy5mb2N1c0luZGV4O2lmKGk9PT1GYy5JTkZfTkFOX0FMRVJUJiYwPT09cil7bGV0IHA9b1swXTtkPU1hdGgubWF4KDAscC5leGVjdXRpb25faW5kZXgtTWF0aC5mbG9vcihuLmV4ZWN1dGlvbnMuZGlzcGxheUNvdW50LzIpKSxudWxsIT09cC5ncmFwaF9leGVjdXRpb25fdHJhY2VfaW5kZXgmJih1PXAuZ3JhcGhfZXhlY3V0aW9uX3RyYWNlX2luZGV4KX1yZXR1cm57Li4ubixleGVjdXRpb25zOnsuLi5uLmV4ZWN1dGlvbnMsc2Nyb2xsQmVnaW5JbmRleDpkfSxncmFwaEV4ZWN1dGlvbnM6ey4uLm4uZ3JhcGhFeGVjdXRpb25zLGZvY3VzSW5kZXg6dX0sYWxlcnRzOnsuLi5uLmFsZXJ0cyxhbGVydHNMb2FkZWQ6ey4uLm4uYWxlcnRzLmFsZXJ0c0xvYWRlZCxzdGF0ZTpSZS5MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOkRhdGUubm93KCl9LG51bUFsZXJ0czp0LGFsZXJ0c0JyZWFrZG93bjplLGFsZXJ0czp7Li4ubi5hbGVydHMuYWxlcnRzLFtpXTpzfSxleGVjdXRpb25JbmRpY2VzOnsuLi5uLmFsZXJ0cy5leGVjdXRpb25JbmRpY2VzLFtpXTpsfSxncmFwaEV4ZWN1dGlvbkluZGljZXM6ey4uLm4uYWxlcnRzLmdyYXBoRXhlY3V0aW9uSW5kaWNlcyxbaV06Y319fX0pLHllKERnLChuLHthbGVydFR5cGU6dH0pPT57bGV0IGU9ey4uLm4sYWxlcnRzOnsuLi5uLmFsZXJ0cyxmb2N1c1R5cGU6bi5hbGVydHMuZm9jdXNUeXBlPT09dD9udWxsOnR9fSxpPWUuYWxlcnRzLmZvY3VzVHlwZTtpZihudWxsIT09aSl7bGV0IHI9ZS5hbGVydHMuZXhlY3V0aW9uSW5kaWNlc1tpXXx8W107dm9pZCAwIT09clswXSYmKGUuZXhlY3V0aW9ucz17Li4uZS5leGVjdXRpb25zLHNjcm9sbEJlZ2luSW5kZXg6TWF0aC5tYXgoMCxOdW1iZXIoclswXSktTWF0aC5mbG9vcihlLmV4ZWN1dGlvbnMuZGlzcGxheUNvdW50LzIpKX0pfXJldHVybiBlfSkseWUoSUUsbj0+bnVsbD09PW4uYWN0aXZlUnVuSWQ/bjp7Li4ubixleGVjdXRpb25zOnsuLi5uLmV4ZWN1dGlvbnMsbnVtRXhlY3V0aW9uc0xvYWRlZDp7Li4ubi5leGVjdXRpb25zLm51bUV4ZWN1dGlvbnNMb2FkZWQsc3RhdGU6UmUuTE9BRElOR319fSkseWUoQUUsKG4se251bUV4ZWN1dGlvbnM6dH0pPT57aWYobnVsbD09PW4uYWN0aXZlUnVuSWQpcmV0dXJuIG47bGV0IGk9dD5uLmV4ZWN1dGlvbnMuZXhlY3V0aW9uRGlnZXN0c0xvYWRlZC5udW1FeGVjdXRpb25zLHI9ey4uLm4sbGFzdE5vbkVtcHR5UG9sbERhdGFUaW1lTXM6aT9EYXRlLm5vdygpOm4ubGFzdE5vbkVtcHR5UG9sbERhdGFUaW1lTXMsZXhlY3V0aW9uczp7Li4ubi5leGVjdXRpb25zLG51bUV4ZWN1dGlvbnNMb2FkZWQ6ey4uLm4uZXhlY3V0aW9ucy5udW1FeGVjdXRpb25zTG9hZGVkLHN0YXRlOlJlLkxPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6RGF0ZS5ub3coKX0sZXhlY3V0aW9uRGlnZXN0c0xvYWRlZDp7Li4ubi5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQsbnVtRXhlY3V0aW9uczp0fX19O3JldHVybiB0PjAmJm51bGw9PT1uLmV4ZWN1dGlvbnMuZm9jdXNJbmRleCYmKHIuZXhlY3V0aW9ucy5mb2N1c0luZGV4PTApLHJ9KSx5ZShSRSwobix0KT0+e2lmKG51bGw9PT1uLmFjdGl2ZVJ1bklkKXJldHVybiBuO2xldCBpPVsuLi5uLmV4ZWN1dGlvbnMuZXhlY3V0aW9uRGlnZXN0c0xvYWRlZC5sb2FkaW5nUmFuZ2VzXTtyZXR1cm4tMT09PXJOKGksdC5iZWdpbix0LmVuZCkmJmkucHVzaCh7YmVnaW46dC5iZWdpbixlbmQ6dC5lbmR9KSx7Li4ubixleGVjdXRpb25zOnsuLi5uLmV4ZWN1dGlvbnMsZXhlY3V0aW9uRGlnZXN0c0xvYWRlZDp7Li4ubi5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQsbG9hZGluZ1JhbmdlczppfX19fSkseWUoUEUsKG4sdCk9PntpZihudWxsPT09bi5hY3RpdmVSdW5JZClyZXR1cm4gbjtsZXQgaT1bLi4ubi5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQubG9hZGluZ1Jhbmdlc10scj1yTihpLHQuYmVnaW4sdC5lbmQpOy0xIT09ciYmaS5zcGxpY2UociwxKTtsZXQgbz17Li4ubixleGVjdXRpb25zOnsuLi5uLmV4ZWN1dGlvbnMsZXhlY3V0aW9uRGlnZXN0c0xvYWRlZDp7Li4ubi5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQsbnVtRXhlY3V0aW9uczp0Lm51bV9kaWdlc3RzLGxvYWRpbmdSYW5nZXM6aX0sZXhlY3V0aW9uRGlnZXN0czp7Li4ubi5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHN9fX07Zm9yKGxldCBhPXQuYmVnaW47YTx0LmVuZDsrK2Epby5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNbYV09dC5leGVjdXRpb25fZGlnZXN0c1thLXQuYmVnaW5dO3JldHVybiB0LmVuZD50LmJlZ2luJiYoby5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQucGFnZUxvYWRlZFNpemVzPXsuLi5vLmV4ZWN1dGlvbnMuZXhlY3V0aW9uRGlnZXN0c0xvYWRlZC5wYWdlTG9hZGVkU2l6ZXMsW3QuYmVnaW4vbi5leGVjdXRpb25zLnBhZ2VTaXplXTp0LmVuZC10LmJlZ2lufSksb30pLHllKElnLG49PntpZihudWxsPT09bi5hY3RpdmVSdW5JZClyZXR1cm4gbjtsZXQgZT1uLmV4ZWN1dGlvbnMuc2Nyb2xsQmVnaW5JbmRleDtyZXR1cm4gZT4wJiZlLS0sey4uLm4sZXhlY3V0aW9uczp7Li4ubi5leGVjdXRpb25zLHNjcm9sbEJlZ2luSW5kZXg6ZX19fSkseWUoQWcsbj0+e2lmKG51bGw9PT1uLmFjdGl2ZVJ1bklkKXJldHVybiBuO2xldCBlPW4uZXhlY3V0aW9ucy5zY3JvbGxCZWdpbkluZGV4O3JldHVybiBlK24uZXhlY3V0aW9ucy5kaXNwbGF5Q291bnQrMTw9bi5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQubnVtRXhlY3V0aW9ucyYmZSsrLHsuLi5uLGV4ZWN1dGlvbnM6ey4uLm4uZXhlY3V0aW9ucyxzY3JvbGxCZWdpbkluZGV4OmV9fX0pLHllKFJnLChuLHQpPT57aWYodC5pbmRleDwwfHwhTnVtYmVyLmlzSW50ZWdlcih0LmluZGV4KSl0aHJvdyBuZXcgRXJyb3IoYEF0dGVtcHQgdG8gc2Nyb2xsIHRvIG5lZ2F0aXZlIG9yIG5vbi1pbnRlZ2VyIGV4ZWN1dGlvbiBpbmRleCAoJHt0LmluZGV4fSlgKTtsZXR7ZGlzcGxheUNvdW50OmV9PW4uZXhlY3V0aW9ucyx7bnVtRXhlY3V0aW9uczppfT1uLmV4ZWN1dGlvbnMuZXhlY3V0aW9uRGlnZXN0c0xvYWRlZDtpZih0LmluZGV4Pk1hdGgubWF4KDAsaS1lKSl0aHJvdyBuZXcgRXJyb3IoYEF0dGVtcHQgdG8gc2Nyb2xsIHRvIGV4ZWN1dGlvbiBpbmRleCAoJHt0LmluZGV4fSksIHdoaWNoIGV4Y2VlZHMgbWF4aW11bSBhbGxvd2VkIGluZGV4IChudW1FeGVjdXRpb25zPSR7aX07IGRpc3BsYXlDb3VudD0ke2V9KWApO3JldHVybnsuLi5uLGV4ZWN1dGlvbnM6ey4uLm4uZXhlY3V0aW9ucyxzY3JvbGxCZWdpbkluZGV4OnQuaW5kZXh9fX0pLHllKFBnLChuLHQpPT57bGV0IGU9ey4uLm4sZXhlY3V0aW9uczp7Li4ubi5leGVjdXRpb25zLGZvY3VzSW5kZXg6bi5leGVjdXRpb25zLnNjcm9sbEJlZ2luSW5kZXgrdC5kaXNwbGF5SW5kZXh9LGNvZGVMb2NhdGlvbkZvY3VzVHlwZTp6by5FWEVDVVRJT04sc291cmNlQ29kZTp7Li4ubi5zb3VyY2VDb2RlfX07cmV0dXJuIGUuc291cmNlQ29kZS5mb2N1c0xpbmVTcGVjPUdFKGUpLGV9KSx5ZShrRSwobix0KT0+e2lmKG51bGw9PT1uLmFjdGl2ZVJ1bklkKXJldHVybiBuO2xldCBpPXsuLi5uLGV4ZWN1dGlvbnM6ey4uLm4uZXhlY3V0aW9ucyxleGVjdXRpb25EYXRhOnsuLi5uLmV4ZWN1dGlvbnMuZXhlY3V0aW9uRGF0YX19fTtmb3IobGV0IHI9dC5iZWdpbjtyPHQuZW5kOysrcilpLmV4ZWN1dGlvbnMuZXhlY3V0aW9uRGF0YVtyXT10LmV4ZWN1dGlvbnNbci10LmJlZ2luXTtyZXR1cm4gaX0pLHllKE9FLG49Pm51bGw9PT1uLmFjdGl2ZVJ1bklkP246ey4uLm4sZ3JhcGhFeGVjdXRpb25zOnsuLi5uLmdyYXBoRXhlY3V0aW9ucyxudW1FeGVjdXRpb25zTG9hZGVkOnsuLi5uLmdyYXBoRXhlY3V0aW9ucy5udW1FeGVjdXRpb25zTG9hZGVkLHN0YXRlOlJlLkxPQURJTkd9fX0pLHllKEZFLChuLHtudW1HcmFwaEV4ZWN1dGlvbnM6dH0pPT57aWYobnVsbD09PW4uYWN0aXZlUnVuSWQpcmV0dXJuIG47bGV0IGU9dD5uLmdyYXBoRXhlY3V0aW9ucy5leGVjdXRpb25EaWdlc3RzTG9hZGVkLm51bUV4ZWN1dGlvbnMsaT17Li4ubixsYXN0Tm9uRW1wdHlQb2xsRGF0YVRpbWVNczplP0RhdGUubm93KCk6bi5sYXN0Tm9uRW1wdHlQb2xsRGF0YVRpbWVNcyxncmFwaEV4ZWN1dGlvbnM6ey4uLm4uZ3JhcGhFeGVjdXRpb25zLG51bUV4ZWN1dGlvbnNMb2FkZWQ6ey4uLm4uZ3JhcGhFeGVjdXRpb25zLm51bUV4ZWN1dGlvbnNMb2FkZWQsc3RhdGU6UmUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpfSxleGVjdXRpb25EaWdlc3RzTG9hZGVkOnsuLi5uLmdyYXBoRXhlY3V0aW9ucy5leGVjdXRpb25EaWdlc3RzTG9hZGVkLG51bUV4ZWN1dGlvbnM6dH19fTtyZXR1cm4gdD4wJiZudWxsPT09bi5ncmFwaEV4ZWN1dGlvbnMuZm9jdXNJbmRleCYmKGkuZ3JhcGhFeGVjdXRpb25zLmZvY3VzSW5kZXg9MCksaX0pLHllKE5FLChuLHtwYWdlSW5kZXg6dH0pPT57aWYobnVsbD09PW4uYWN0aXZlUnVuSWQpcmV0dXJuIG47bGV0IGU9bi5ncmFwaEV4ZWN1dGlvbnMuZ3JhcGhFeGVjdXRpb25EYXRhTG9hZGluZ1BhZ2VzLnNsaWNlKCk7cmV0dXJuLTE9PT1lLmluZGV4T2YodCkmJmUucHVzaCh0KSx7Li4ubixncmFwaEV4ZWN1dGlvbnM6ey4uLm4uZ3JhcGhFeGVjdXRpb25zLGdyYXBoRXhlY3V0aW9uRGF0YUxvYWRpbmdQYWdlczplfX19KSx5ZShMRSwobix0KT0+e2lmKG51bGw9PT1uLmFjdGl2ZVJ1bklkKXJldHVybiBuO2xldHtwYWdlU2l6ZTplfT1uLmdyYXBoRXhlY3V0aW9ucyxpPW4uZ3JhcGhFeGVjdXRpb25zLmdyYXBoRXhlY3V0aW9uRGF0YUxvYWRpbmdQYWdlcy5zbGljZSgpLHI9ey4uLm4uZ3JhcGhFeGVjdXRpb25zLmdyYXBoRXhlY3V0aW9uRGF0YVBhZ2VMb2FkZWRTaXplc30sbz17Li4ubi5ncmFwaEV4ZWN1dGlvbnMuZ3JhcGhFeGVjdXRpb25EYXRhfTtmb3IobGV0IGE9dC5iZWdpbjthPHQuZW5kOysrYSl7bGV0IHM9TWF0aC5mbG9vcihhL2UpOy0xIT09aS5pbmRleE9mKHMpJiZpLnNwbGljZShpLmluZGV4T2YocyksMSksdm9pZCAwPT09cltzXSYmKHJbc109MCksdm9pZCAwPT09b1thXSYmcltzXSsrLG9bYV09dC5ncmFwaF9leGVjdXRpb25zW2EtdC5iZWdpbl19cmV0dXJuey4uLm4sZ3JhcGhFeGVjdXRpb25zOnsuLi5uLmdyYXBoRXhlY3V0aW9ucyxncmFwaEV4ZWN1dGlvbkRhdGFMb2FkaW5nUGFnZXM6aSxncmFwaEV4ZWN1dGlvbkRhdGFQYWdlTG9hZGVkU2l6ZXM6cixncmFwaEV4ZWN1dGlvbkRhdGE6b319fSkseWUoa2csKG4sdCk9PntpZih0LmluZGV4PDB8fCFOdW1iZXIuaXNJbnRlZ2VyKHQuaW5kZXgpKXRocm93IG5ldyBFcnJvcihgQXR0ZW1wdCB0byBzY3JvbGwgdG8gbmVnYXRpdmUgb3Igbm9uLWludGVnZXIgZ3JhcGgtZXhlY3V0aW9uIGluZGV4ICgke3QuaW5kZXh9KWApO3JldHVybnsuLi5uLGdyYXBoRXhlY3V0aW9uczp7Li4ubi5ncmFwaEV4ZWN1dGlvbnMsc2Nyb2xsQmVnaW5JbmRleDp0LmluZGV4fX19KSx5ZShPZywobix0KT0+cVgobix0LmdyYXBoX2lkLHQub3BfbmFtZSx0LmluZGV4KSkseWUoRmcsKG4sdCk9PnFYKG4sdC5ncmFwaF9pZCx0Lm9wX25hbWUpKSx5ZShCRSwobix0KT0+e2xldHtncmFwaF9pZDplLG9wX25hbWU6aX09dCxyPXsuLi5uLGdyYXBoczp7Li4ubi5ncmFwaHMsbG9hZGluZ09wczp7Li4ubi5ncmFwaHMubG9hZGluZ09wc319fTtyZXR1cm4gdm9pZCAwPT09ci5ncmFwaHMubG9hZGluZ09wc1tlXSYmKHIuZ3JhcGhzLmxvYWRpbmdPcHNbZV09bmV3IE1hcCksci5ncmFwaHMubG9hZGluZ09wc1tlXS5oYXMoaSl8fHIuZ3JhcGhzLmxvYWRpbmdPcHNbZV0uc2V0KGksUmUuTE9BRElORykscn0pLHllKFZFLChuLHQpPT57bGV0e2dyYXBoT3BJbmZvUmVzcG9uc2U6ZX09dCx7Z3JhcGhfaWRzOml9PWUscj1pW2kubGVuZ3RoLTFdLG89ey4uLm4sZ3JhcGhzOnsuLi5uLmdyYXBocyxvcHM6ey4uLm4uZ3JhcGhzLm9wcyxbcl06bmV3IE1hcChuLmdyYXBocy5vcHNbcl0pfSxsb2FkaW5nT3BzOnsuLi5uLmdyYXBocy5sb2FkaW5nT3BzLFtyXTpuZXcgTWFwKG4uZ3JhcGhzLmxvYWRpbmdPcHNbcl0pfX19O2ZvcihsZXQgYSBvZiBlLmlucHV0cykhYS5kYXRhfHxvLmdyYXBocy5vcHNbcl0uc2V0KGEub3BfbmFtZSxhLmRhdGEpO2ZvcihsZXQgYT0wO2E8ZS5jb25zdW1lcnMubGVuZ3RoOysrYSlmb3IobGV0IHMgb2YgZS5jb25zdW1lcnNbYV0pIXMuZGF0YXx8by5ncmFwaHMub3BzW3JdLnNldChzLm9wX25hbWUscy5kYXRhKTtyZXR1cm4gby5ncmFwaHMub3BzW3JdLnNldChlLm9wX25hbWUsey4uLmUsaW5wdXRzOmUuaW5wdXRzLm1hcChhPT4oe29wX25hbWU6YS5vcF9uYW1lLG91dHB1dF9zbG90OmEub3V0cHV0X3Nsb3R9KSksY29uc3VtZXJzOmUuY29uc3VtZXJzLm1hcChhPT5hLm1hcChzPT4oe29wX25hbWU6cy5vcF9uYW1lLGlucHV0X3Nsb3Q6cy5pbnB1dF9zbG90fSkpKX0pLG8uZ3JhcGhzLmxvYWRpbmdPcHNbcl0uc2V0KGUub3BfbmFtZSxSZS5MT0FERUQpLG99KSx5ZShIRSxuPT4oey4uLm4sc291cmNlQ29kZTp7Li4ubi5zb3VyY2VDb2RlLHNvdXJjZUZpbGVMaXN0TG9hZGVkOnsuLi5uLnNvdXJjZUNvZGUuc291cmNlRmlsZUxpc3RMb2FkZWQsc3RhdGU6UmUuTE9BRElOR319fSkpLHllKHpFLChuLHQpPT57bGV0IGU9ey4uLm4sc291cmNlQ29kZTp7Li4ubi5zb3VyY2VDb2RlLHNvdXJjZUZpbGVMaXN0TG9hZGVkOnsuLi5uLnNvdXJjZUNvZGUuc291cmNlRmlsZUxpc3RMb2FkZWQsc3RhdGU6UmUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpfSxzb3VyY2VGaWxlTGlzdDp0LnNvdXJjZUZpbGVzLGZpbGVDb250ZW50czpuLnNvdXJjZUNvZGUuZmlsZUNvbnRlbnRzLnNsaWNlKCl9fSxpPXQuc291cmNlRmlsZXMubGVuZ3RoLHtmaWxlQ29udGVudHM6cn09ZS5zb3VyY2VDb2RlO2ZvcihsZXQgbz0wO288aTsrK28pcltvXT1uLnNvdXJjZUNvZGUuZmlsZUNvbnRlbnRzW29dPz97bG9hZFN0YXRlOlJlLk5PVF9MT0FERUQsbGluZXM6bnVsbH07cmV0dXJuIGV9KSx5ZShOZywobix0KT0+e2xldCBlPUxnKG4pLGk9ey4uLm4sc291cmNlQ29kZTp7Li4ubi5zb3VyY2VDb2RlLGZvY3VzTGluZVNwZWM6dC5zdGFja0ZyYW1lfX07cmV0dXJuIG51bGwhPT1lJiYoaS5zdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZT1mdW5jdGlvbihuLHQpe2xldCBlPS0xLGk9LTE7aWYobi5mb3JFYWNoKCh7ZmlsZV9wYXRoOnIsbGluZW5vOm99LGEpPT57cj09PXQuZmlsZV9wYXRoJiYoaT1hLG89PT10LmxpbmVubyYmKGU9YSkpfSksLTE9PT1lKXRocm93IG5ldyBFcnJvcihgU3RhY2sgZnJhbWUgJHtKU09OLnN0cmluZ2lmeSh0KX0gaXMgbm90IGZvdW5kLmApO3JldHVybiBlPT09aX0oZSx0LnN0YWNrRnJhbWUpKSxpfSkseWUoVUUsKG4sdCk9PntsZXQgZT17Li4ubixzb3VyY2VDb2RlOnsuLi5uLnNvdXJjZUNvZGUsZmlsZUNvbnRlbnRzOm4uc291cmNlQ29kZS5maWxlQ29udGVudHMuc2xpY2UoKX19LGk9dXkoZS5zb3VyY2VDb2RlLnNvdXJjZUZpbGVMaXN0LHQpO2lmKCEoaT49MCkpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCB0aGUgZm9sbG93aW5nIGZpbGUgaW4gZmlsZSBsaXN0OiBob3N0X25hbWU9IiR7dC5ob3N0X25hbWV9IiwgZmlsZV9wYXRoPSIke3QuZmlsZV9wYXRofSJgKTtyZXR1cm4gZS5zb3VyY2VDb2RlLmZpbGVDb250ZW50cy5zcGxpY2UoaSwxLHsuLi5lLnNvdXJjZUNvZGUuZmlsZUNvbnRlbnRzW2ldLGxvYWRTdGF0ZTpSZS5MT0FESU5HfSksZX0pLHllKGpFLChuLHQpPT57bGV0IGU9ey4uLm4sc291cmNlQ29kZTp7Li4ubi5zb3VyY2VDb2RlLGZpbGVDb250ZW50czpuLnNvdXJjZUNvZGUuZmlsZUNvbnRlbnRzLnNsaWNlKCl9fSxpPXV5KGUuc291cmNlQ29kZS5zb3VyY2VGaWxlTGlzdCx0KTtpZighKGk+PTApKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgdGhlIGZvbGxvd2luZyBmaWxlIGluIGZpbGUgbGlzdDogaG9zdF9uYW1lPSIke3QuaG9zdF9uYW1lfSIsIGZpbGVfcGF0aD0iJHt0LmZpbGVfcGF0aH0iYCk7cmV0dXJuIGUuc291cmNlQ29kZS5maWxlQ29udGVudHMuc3BsaWNlKGksMSx7bG9hZFN0YXRlOlJlLkxPQURFRCxsaW5lczp0LmxpbmVzfSksZX0pLHllKGN5LChuLHQpPT57aWYobnVsbD09PW4uYWN0aXZlUnVuSWQpcmV0dXJuIG47bGV0IGk9ey4uLm4sc3RhY2tGcmFtZXM6ey4uLm4uc3RhY2tGcmFtZXMsLi4udC5zdGFja0ZyYW1lc30sc291cmNlQ29kZTp7Li4ubi5zb3VyY2VDb2RlfX07cmV0dXJuIGkuc291cmNlQ29kZS5mb2N1c0xpbmVTcGVjPUdFKGkpLGl9KSk7ZnVuY3Rpb24gcVgobix0LGUsaSl7bGV0IHI9ey4uLm4sZ3JhcGhzOnsuLi5uLmdyYXBocyxmb2N1c2VkT3A6e2dyYXBoSWQ6dCxvcE5hbWU6ZX19LGNvZGVMb2NhdGlvbkZvY3VzVHlwZTp6by5HUkFQSF9PUF9DUkVBVElPTixzb3VyY2VDb2RlOnsuLi5uLnNvdXJjZUNvZGV9fTtyZXR1cm4gci5zb3VyY2VDb2RlLmZvY3VzTGluZVNwZWM9R0Uociksdm9pZCAwIT09aSYmKHIuZ3JhcGhFeGVjdXRpb25zPXsuLi5uLmdyYXBoRXhlY3V0aW9ucyxmb2N1c0luZGV4Oml9KSxyfWZ1bmN0aW9uIFhYKG4sdCl7cmV0dXJuIEFNZShuLHQpfXZhciBSbz1NcihkeSksTmg9VyhSbyxuPT5uLnJ1bnMpLG9OPVcoUm8sbj0+bi5ydW5zTG9hZGVkKSwkbz1XKFJvLG49Pm4uYWN0aXZlUnVuSWQpLFlYPVcoUm8sbj0+bi5sYXN0RGF0YVBvbGxPbnNldFRpbWVNcy1uLmxhc3ROb25FbXB0eVBvbGxEYXRhVGltZU1zKSxCZz1XKFJvLG49Pm4uYWxlcnRzKSxhTj1XKEJnLG49Pm4uYWxlcnRzTG9hZGVkKSxRWD1XKEJnLG49Pm4ubnVtQWxlcnRzKSxXRT1XKEJnLG49Pm4uZm9jdXNUeXBlKSxaWD1XKEJnLG49Pm51bGw9PT1uLmZvY3VzVHlwZT8wOm4uYWxlcnRzQnJlYWtkb3duW24uZm9jdXNUeXBlXXx8MCksS1g9VyhCZyxuPT5udWxsPT09bi5mb2N1c1R5cGV8fHZvaWQgMD09PW4uYWxlcnRzW24uZm9jdXNUeXBlXT9udWxsOm4uYWxlcnRzW24uZm9jdXNUeXBlXSksSlg9VyhCZyxuPT5uLmFsZXJ0c0JyZWFrZG93biksTGg9VyhSbyxuPT5uLmV4ZWN1dGlvbnMpLHFFPVcoTGgsbj0+bi5udW1FeGVjdXRpb25zTG9hZGVkKSxweT1XKExoLG49Pm4uZXhlY3V0aW9uRGlnZXN0c0xvYWRlZCksWnU9VyhMaCxuPT5uLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQubnVtRXhlY3V0aW9ucyksaHk9VyhMaCxuPT5uLnNjcm9sbEJlZ2luSW5kZXgpLFZnPVcoTGgsbj0+bi5wYWdlU2l6ZSksSGc9VyhMaCxuPT5uLmRpc3BsYXlDb3VudCksJFg9VyhMaCxuPT57bGV0IHQ9W107Zm9yKGxldCBlPW4uc2Nyb2xsQmVnaW5JbmRleDtlPG4uc2Nyb2xsQmVnaW5JbmRleCtuLmRpc3BsYXlDb3VudDsrK2UpdC5wdXNoKGUgaW4gbi5leGVjdXRpb25EaWdlc3RzP24uZXhlY3V0aW9uRGlnZXN0c1tlXTpudWxsKTtyZXR1cm4gdH0pLEt1PVcoUm8sbj0+bi5ncmFwaEV4ZWN1dGlvbnMpLGVZPVcoS3Usbj0+bi5udW1FeGVjdXRpb25zTG9hZGVkKSxteT1XKFJvLG49Pm4uZ3JhcGhFeGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQubnVtRXhlY3V0aW9ucyksdFk9VyhLdSxuPT5uLnNjcm9sbEJlZ2luSW5kZXgpLG5ZPVcoS3Usbj0+bi5kaXNwbGF5Q291bnQpLGlZPVcoS3Usbj0+bi5wYWdlU2l6ZSksclk9VyhLdSxuPT5uLmdyYXBoRXhlY3V0aW9uRGF0YUxvYWRpbmdQYWdlcyksb1k9VyhLdSxuPT5uLmdyYXBoRXhlY3V0aW9uRGF0YVBhZ2VMb2FkZWRTaXplcyksc049VyhLdSxuPT5uLmdyYXBoRXhlY3V0aW9uRGF0YSksbE49VyhLdSxuPT5uLmZvY3VzSW5kZXgpLGNOPVcoUm8sbj0+bi5ncmFwaHMpLGROPVcoY04sbj0+e2xldHtmb2N1c2VkT3A6dCxvcHM6ZX09bjtyZXR1cm4gbnVsbD09PXR8fHZvaWQgMD09PWVbdC5ncmFwaElkXT9udWxsOmVbdC5ncmFwaElkXS5nZXQodC5vcE5hbWUpfHxudWxsfSksdU49VyhjTixuPT57bGV0e2ZvY3VzZWRPcDp0LG9wczplfT1uO2lmKG51bGw9PT10fHx2b2lkIDA9PT1lW3QuZ3JhcGhJZF18fCFlW3QuZ3JhcGhJZF0uaGFzKHQub3BOYW1lKSlyZXR1cm4gbnVsbDt7bGV0IGk9ZVt0LmdyYXBoSWRdLHtpbnB1dHM6cn09aS5nZXQodC5vcE5hbWUpO3JldHVybiByLm1hcChvPT57bGV0IGE9ey4uLm99O3JldHVybiBpLmhhcyhvLm9wX25hbWUpJiYoYS5kYXRhPWkuZ2V0KG8ub3BfbmFtZSkpLGF9KX19KSxhWT1XKGxOLHNOLHVOLChuLHQsZSk9PntpZihudWxsPT09bnx8bnVsbD09PWUpcmV0dXJuIG51bGw7bGV0IGk9ZS5tYXAocz0+ITEpLHI9W107aWYoMD09PWUubGVuZ3RoKXJldHVybiByO2xldCBvPXRbbl0uZ3JhcGhfaWQsYT1NYXRoLm1heCgwLG4tMjAwKTtmb3IobGV0IHM9bi0xO3M+PWE7LS1zKWlmKHZvaWQgMCE9PXRbc10pZm9yKGxldCBsPTA7bDxlLmxlbmd0aCYmKGlbbF18fHRbc10uZ3JhcGhfaWQhPT1vfHx0W3NdLm9wX25hbWUhPT1lW2xdLm9wX25hbWV8fHRbc10ub3V0cHV0X3Nsb3QhPT1lW2xdLm91dHB1dF9zbG90fHwoci5wdXNoKHMpLGlbbF09ITAsci5sZW5ndGghPT1lLmxlbmd0aCkpOysrbCk7cmV0dXJuIHJ9KSxzWT1XKGNOLG49PntsZXR7Zm9jdXNlZE9wOnQsb3BzOmV9PW47aWYobnVsbD09PXR8fHZvaWQgMD09PWVbdC5ncmFwaElkXXx8IWVbdC5ncmFwaElkXS5oYXModC5vcE5hbWUpKXJldHVybiBudWxsO3tsZXQgaT1lW3QuZ3JhcGhJZF0se2NvbnN1bWVyczpyfT1pLmdldCh0Lm9wTmFtZSk7cmV0dXJuIHIubWFwKG89Pm8ubWFwKGE9PntsZXQgcz17Li4uYX07cmV0dXJuIGkuaGFzKGEub3BfbmFtZSkmJihzLmRhdGE9aS5nZXQoYS5vcF9uYW1lKSksc30pKX19KSxsWT1XKFJvLG49PntsZXQgdD1uLmV4ZWN1dGlvbnMuc2Nyb2xsQmVnaW5JbmRleCxlPW4uZXhlY3V0aW9ucy5zY3JvbGxCZWdpbkluZGV4K24uZXhlY3V0aW9ucy5kaXNwbGF5Q291bnQsaT1uZXcgQXJyYXkoZS10KS5maWxsKG51bGwpLHI9bi5hbGVydHMuZm9jdXNUeXBlO2lmKG51bGw9PT1yKXJldHVybiBpO2xldCBvPW4uYWxlcnRzLmV4ZWN1dGlvbkluZGljZXNbcl07aWYodm9pZCAwPT09bylyZXR1cm4gaTtmb3IobGV0IGE9dDthPGU7KythKW8uaW5jbHVkZXMoYSkmJihpW2EtdF09bi5hbGVydHMuZm9jdXNUeXBlKTtyZXR1cm4gaX0pLFhFPVcoUm8sbj0+bi5leGVjdXRpb25zKSxwTj1XKFhFLG49Pm4uZm9jdXNJbmRleCksY1k9VyhYRSxuPT57aWYobnVsbD09PW4uZm9jdXNJbmRleClyZXR1cm4gbnVsbDtsZXR7Zm9jdXNJbmRleDp0LHNjcm9sbEJlZ2luSW5kZXg6ZSxkaXNwbGF5Q291bnQ6aX09bjtyZXR1cm4gdDxlfHx0Pj1lK2k/bnVsbDp0LWV9KSxoTj1XKFhFLG49Pm4uZXhlY3V0aW9uRGF0YSksZFk9VyhSbyxuPT5uLmdyYXBocy5sb2FkaW5nT3BzKSxtTj1XKFJvLG49Pm4uc3RhY2tGcmFtZXMpLEJoPVcoWEUsbj0+e2xldHtmb2N1c0luZGV4OnQsZXhlY3V0aW9uRGF0YTplfT1uO3JldHVybiBudWxsPT09dHx8dm9pZCAwPT09ZVt0XT9udWxsOmVbdF19KSxmeT1XKFJvLHBOLEJoLGROLChuLHQsZSxpKT0+e2xldHtjb2RlTG9jYXRpb25Gb2N1c1R5cGU6cn09bjtyZXR1cm4gbnVsbD09PXI/bnVsbDpyPT09em8uRVhFQ1VUSU9OP251bGw9PT10fHxudWxsPT09ZT9udWxsOntjb2RlTG9jYXRpb25UeXBlOnpvLkVYRUNVVElPTixvcFR5cGU6ZS5vcF90eXBlLGV4ZWN1dGlvbkluZGV4OnR9Om51bGw9PT1pP251bGw6e2NvZGVMb2NhdGlvblR5cGU6em8uR1JBUEhfT1BfQ1JFQVRJT04sb3BUeXBlOmkub3BfdHlwZSxvcE5hbWU6aS5vcF9uYW1lfX0pLHVZPVcoUm8sTGcpLFlFPVcoUm8sbj0+bi5zb3VyY2VDb2RlKSxwWT1XKFlFLG49Pm4uc291cmNlRmlsZUxpc3RMb2FkZWQpLGZOPShXKFlFLG49Pm4uc291cmNlRmlsZUxpc3QpLFcoWUUsbj0+e2xldHtzb3VyY2VGaWxlTGlzdDp0LGZvY3VzTGluZVNwZWM6ZX09bjtyZXR1cm4gbnVsbD09PWU/LTE6dXkodCxlKX0pKSxRRT1XKFlFLGZOLChuLHQpPT4tMT09PXQ/bnVsbDpuLmZpbGVDb250ZW50c1t0XXx8bnVsbCksWkU9VyhSbyxuPT5uLnNvdXJjZUNvZGUuZm9jdXNMaW5lU3BlYyksaFk9VyhSbyxuPT5uLnN0aWNrVG9Cb3R0b21tb3N0RnJhbWVJbkZvY3VzZWRGaWxlKSxtWT1mdW5jdGlvbihuKXtyZXR1cm5bbl19O2Z1bmN0aW9uIFBNZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImRpdiIsNyksQSgiY2xpY2siLGZ1bmN0aW9uKCl7bGV0IG89bmUoZSkuJGltcGxpY2l0O3JldHVybiBpZSh3KCkub25Ub2dnbGVGb2N1c1R5cGUuZW1pdChvLnR5cGUpKX0pLGYoMSwiZGl2Iiw4KSxUKDIpLGcoKSxmKDMsImRpdiIsOSksVCg0KSxnKCksayg1LCJkaXYiKSxnKCl9aWYoMiZuKXtsZXQgZT10LiRpbXBsaWNpdCxpPXcoKTtiKCJuZ0NsYXNzIixVbig0LG1ZLGUudHlwZT09PWkuZm9jdXNUeXBlPyJmb2N1cyI6IiIpKSx2KDIpLGt0KGUuZGlzcGxheU5hbWUpLHYoMiksbHUoIiAiLGUuZGlzcGxheVN5bWJvbCwiOiAiLGUuY291bnQsIiAiKX19dmFyIGZZPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLm51bUFsZXJ0cz0wLHRoaXMuYWxlcnRzQnJlYWtkb3duPVtdLHRoaXMuZm9jdXNUeXBlPW51bGwsdGhpcy5vblRvZ2dsZUZvY3VzVHlwZT1uZXcgRn19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1siYWxlcnRzLWNvbXBvbmVudCJdXSxpbnB1dHM6e251bUFsZXJ0czoibnVtQWxlcnRzIixhbGVydHNCcmVha2Rvd246ImFsZXJ0c0JyZWFrZG93biIsZm9jdXNUeXBlOiJmb2N1c1R5cGUifSxvdXRwdXRzOntvblRvZ2dsZUZvY3VzVHlwZToib25Ub2dnbGVGb2N1c1R5cGUifSxkZWNsczoxMCx2YXJzOjUsY29uc3RzOltbMSwiYWxlcnRzLWNvbnRhaW5lciJdLFsxLCJkZWJ1Z2dpbmctdGl0bGUiXSxbMSwibnVtLWFsZXJ0cy1jb250YWluZXIiXSxbMSwibnVtLWFsZXJ0cy1sYWJlbCJdLFsxLCJudW0tYWxlcnRzLXZhbHVlIiwzLCJuZ0NsYXNzIl0sWzEsImFsZXJ0cy1icmVha2Rvd24tY29udGFpbmVyIl0sWyJjbGFzcyIsImFsZXJ0cy1icmVha2Rvd24tdHlwZSIsMywibmdDbGFzcyIsImNsaWNrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiYWxlcnRzLWJyZWFrZG93bi10eXBlIiwzLCJuZ0NsYXNzIiwiY2xpY2siXSxbMSwiYWxlcnQtdHlwZS1uYW1lIl0sWzEsImFsZXJ0LXR5cGUtY291bnQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImRpdiIsMCkoMSwiZGl2IiwxKSxUKDIsIkRlYnVnZ2luZyIpLGcoKSxmKDMsImRpdiIsMikoNCwiZGl2IiwzKSxUKDUsIkFsZXJ0cyIpLGcoKSxmKDYsImRpdiIsNCksVCg3KSxnKCkoKSxmKDgsImRpdiIsNSksUyg5LFBNZSw2LDYsImRpdiIsNiksZygpKCkpLDImZSYmKHYoNiksYigibmdDbGFzcyIsVW4oMyxtWSxpLm51bUFsZXJ0cz4wPyJub24temVybyI6IiIpKSx2KDEpLFZlKCIgIixpLm51bUFsZXJ0cywiICIpLHYoMiksYigibmdGb3JPZiIsaS5hbGVydHNCcmVha2Rvd24pKX0sZGVwZW5kZW5jaWVzOlt3bixubl0sc3R5bGVzOlsiLmFsZXJ0cy1icmVha2Rvd24tY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgcGFkZGluZzogMTBweCAxMHB4IDEwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmFsZXJ0cy1icmVha2Rvd24tdHlwZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICBib3JkZXItcmFkaXVzOiAwIDEwcHggMTBweCAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDZweCAwIDZweCA1MHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYWxlcnRzLWJyZWFrZG93bi10eXBlLmZvY3VzW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmVlZTA7XG59XG5cbi5hbGVydHMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbn1cblxuLmFsZXJ0LXR5cGUtY291bnRbX25nY29udGVudC0lQ09NUCVdIHtcbiAgXG4gIGJhY2tncm91bmQtY29sb3I6ICNlNTI1OTI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgY29sb3I6ICNmZmY7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogM3B4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAyMHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYWxlcnQtdHlwZS1uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogM3B4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZGVidWdnaW5nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLm51bS1hbGVydHMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAxMHB4IDEwcHggMTBweCAzMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5udW0tYWxlcnRzLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4ubnVtLWFsZXJ0cy12YWx1ZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDI0cHg7XG59XG5cbi5udW0tYWxlcnRzLXZhbHVlLm5vbi16ZXJvW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmI3ODA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufSJdfSksbn0pKCksT01lPXtbRmMuRlVOQ1RJT05fUkVDT01QSUxFX0FMRVJUXTp7ZGlzcGxheU5hbWU6IkZ1bmN0aW9uIHJlY29tcGlsZXMiLGRpc3BsYXlTeW1ib2w6IkMifSxbRmMuSU5GX05BTl9BTEVSVF06e2Rpc3BsYXlOYW1lOiJOYU4vXHUyMjFlIixkaXNwbGF5U3ltYm9sOiJcdTIyMWUifSxbRmMuVEVOU09SX1NIQVBFX0FMRVJUXTp7ZGlzcGxheU5hbWU6IlRlbnNvciBzaGFwZSIsZGlzcGxheVN5bWJvbDoiXHUyNWEwIn19LGdZPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5zdG9yZT1lLHRoaXMubnVtQWxlcnRzJD10aGlzLnN0b3JlLnBpcGUodW4oUVgpKSx0aGlzLmFsZXJ0c0JyZWFrZG93biQ9dGhpcy5zdG9yZS5waXBlKHVuKFcoSlgsaT0+e2xldCByPU9iamVjdC5rZXlzKGkpO3JldHVybiByLnNvcnQoKSxyLm1hcChvPT4oe3R5cGU6bywuLi5PTWVbb10sY291bnQ6aVtvXX0pKX0pKSksdGhpcy5mb2N1c1R5cGUkPXRoaXMuc3RvcmUucGlwZSh1bihXRSkpfW9uVG9nZ2xlRm9jdXNUeXBlKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2goRGcoe2FsZXJ0VHlwZTplfSkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKEllKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sidGYtZGVidWdnZXItdjItYWxlcnRzIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsIm51bUFsZXJ0cyIsImFsZXJ0c0JyZWFrZG93biIsImZvY3VzVHlwZSIsIm9uVG9nZ2xlRm9jdXNUeXBlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJhbGVydHMtY29tcG9uZW50IiwwKSxBKCJvblRvZ2dsZUZvY3VzVHlwZSIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25Ub2dnbGVGb2N1c1R5cGUobyl9KSxVKDEsImFzeW5jIiksVSgyLCJhc3luYyIpLFUoMywiYXN5bmMiKSxnKCkpLDImZSYmYigibnVtQWxlcnRzIixHKDEsMyxpLm51bUFsZXJ0cyQpKSgiYWxlcnRzQnJlYWtkb3duIixHKDIsNSxpLmFsZXJ0c0JyZWFrZG93biQpKSgiZm9jdXNUeXBlIixHKDMsNyxpLmZvY3VzVHlwZSQpKX0sZGVwZW5kZW5jaWVzOltmWSxjdF0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksZ3k9ezE5OiJmbG9hdDE2IiwxOiJmbG9hdDMyIiwyOiJmbG9hdDY0IiwzOiJpbnQzMiIsNDoidWludDgiLDE3OiJ1aW50MTYiLDIyOiJ1aW50MzIiLDIzOiJ1aW50NjQiLDU6ImludDE2Iiw2OiJpbnQ4Iiw3OiJzdHJpbmciLDg6ImNvbXBsZXg2NCIsMTg6ImNvbXBsZXgxMjgiLDk6ImludDY0IiwxMDoiYm9vbCIsMTE6InFpbnQ4IiwxMjoicXVpbnQ4IiwxNToicWludDE2IiwxNjoicXVpbnQxNiIsMTM6InFpbnQzMiIsMTQ6ImJmbG9hdDE2IiwyMDoicmVzb3VyY2UiLDIxOiJ2YXJpYW50IiwxMTk6ImZsb2F0MTZfcmVmIiwxMDE6ImZsb2F0MzJfcmVmIiwxMDI6ImZsb2F0NjRfcmVmIiwxMDM6ImludDMyX3JlZiIsMTIyOiJ1aW50MzJfcmVmIiwxMDQ6InVpbnQ4X3JlZiIsMTE3OiJ1aW50MTZfcmVmIiwxMDU6ImludDE2X3JlZiIsMTA2OiJpbnQ4X3JlZiIsMTA3OiJzdHJpbmdfcmVmIiwxMDg6ImNvbXBsZXg2NF9yZWYiLDExODoiY29tcGxleDEyOF9yZWYiLDEwOToiaW50NjRfcmVmIiwxMjM6InVpbnQ2NF9yZWYiLDExMDoiYm9vbF9yZWYiLDExMToicWludDhfcmVmIiwxMTI6InF1aW50OF9yZWYiLDExNToicWludDE2X3JlZiIsMTE2OiJxdWludDE2X3JlZiIsMTEzOiJxaW50MzJfcmVmIiwxMTQ6ImJmbG9hdDE2X3JlZiIsMTIwOiJyZXNvdXJjZV9yZWYiLDEyMToidmFyaWFudF9yZWYifTtmdW5jdGlvbiBLRShuKXtsZXR7dGVuc29yRGVidWdNb2RlOnQsYXJyYXk6ZX09bjtzd2l0Y2godCl7Y2FzZSBBby5OT19URU5TT1I6aWYobnVsbCE9PWUpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkbHkgcmVjZWl2ZWQgbm9uLW51bGwgZGVidWctdGVuc29yLXZhbHVlIGFycmF5IHVuZGVyIE5PX1RFTlNPUiBtb2RlIik7cmV0dXJue307Y2FzZSBBby5DVVJUX0hFQUxUSDppZihudWxsPT09ZXx8MiE9PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgVW5kZXIgQ1VSVF9IRUFMVEggbW9kZSwgZXhwZWN0ZWQgZGVidWctdGVuc29yLXZhbHVlIGFycmF5IHRvIGhhdmUgbGVuZ3RoIDIsIGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeShlKX1gKTtyZXR1cm57aGFzSW5mT3JOYU46Qm9vbGVhbihlWzFdKX07Y2FzZSBBby5DT05DSVNFX0hFQUxUSDp7aWYobnVsbD09PWV8fDUhPT1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYFVuZGVyIENPTkNJU0VfSEVBTFRIIG1vZGUsIGV4cGVjdGVkIGRlYnVnLXRlbnNvci12YWx1ZSBhcnJheSB0byBoYXZlIGxlbmd0aCA1LCBidXQgZ290ICR7SlNPTi5zdHJpbmdpZnkoZSl9YCk7bGV0IGk9e3NpemU6ZVsxXX07cmV0dXJuIGVbMl0+MCYmKGkubnVtTmVnYXRpdmVJbmZzPWVbMl0pLGVbM10+MCYmKGkubnVtUG9zaXRpdmVJbmZzPWVbM10pLGVbNF0+MCYmKGkubnVtTmFOcz1lWzRdKSxpfWNhc2UgQW8uU0hBUEU6e2lmKG51bGw9PT1lfHwxMCE9PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgVW5kZXIgU0hBUEUgbW9kZSwgZXhwZWN0ZWQgZGVidWctdGVuc29yLXZhbHVlIGFycmF5IHRvIGhhdmUgbGVuZ3RoIDEwLCBidXQgZ290ICR7SlNPTi5zdHJpbmdpZnkoZSl9YCk7bGV0IGk9ZVsyXSxyPWUuc2xpY2UoNCxNYXRoLm1pbig0K2ksZS5sZW5ndGgpKTtyZXR1cm4gci5sZW5ndGg8aSYmKHI9bmV3IEFycmF5KGktci5sZW5ndGgpLmNvbmNhdChyKSkse2R0eXBlOmd5W2VbMV1dLHJhbms6aSxzaXplOmVbM10sc2hhcGU6cn19Y2FzZSBBby5GVUxMX0hFQUxUSDp7aWYobnVsbD09PWV8fDExIT09ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBVbmRlciBGVUxMX0hFQUxUSCBtb2RlLCBleHBlY3RlZCBkZWJ1Zy10ZW5zb3ItdmFsdWUgYXJyYXkgdG8gaGF2ZSBsZW5ndGggMTEsIGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeShlKX1gKTtsZXQgcj17ZHR5cGU6Z3lbZVsyXV0scmFuazplWzNdLHNpemU6ZVs0XX07cmV0dXJuIGVbNV0+MCYmKHIubnVtTmVnYXRpdmVJbmZzPWVbNV0pLGVbNl0+MCYmKHIubnVtUG9zaXRpdmVJbmZzPWVbNl0pLGVbN10+MCYmKHIubnVtTmFOcz1lWzddKSxlWzhdPjAmJihyLm51bU5lZ2F0aXZlRmluaXRlcz1lWzhdKSxlWzldPjAmJihyLm51bVplcm9zPWVbOV0pLGVbMTBdPjAmJihyLm51bVBvc2l0aXZlRmluaXRlcz1lWzEwXSkscn1jYXNlIEFvLkZVTExfVEVOU09SOmlmKG51bGwhPT1lKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZGx5IHJlY2VpdmVkIG5vbi1udWxsIGRlYnVnLXRlbnNvci12YWx1ZSBhcnJheSB1bmRlciBGVUxMX1RFTlNPUiBtb2RlIik7cmV0dXJue307ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCB0ZW5zb3JEZWJ1Z01vZGU6ICR7dH1gKX19dmFyIGdOPSJbX25naG9zdC0lQ09NUCVdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTNlNWU4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nLCBtb25vc3BhY2U7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbjogMCAycHg7XG4gICAgcGFkZGluZzogMXB4IDNweDtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIH0iO2Z1bmN0aW9uIE5NZShuLHQpezEmbiYmaygwLCJkaXYiLDQpfWZ1bmN0aW9uIExNZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2Iiw3KSgxLCJzcGFuIiw4KSxUKDIsIk5hTiIpLGcoKSxmKDMsInNwYW4iLDkpLFQoNCksZygpKCkpLDImbil7bGV0IGU9dygyKTt2KDQpLFZlKCJceGQ3IixlLm51bU5hTnMsIiIpfX1mdW5jdGlvbiBCTWUobix0KXtpZigxJm4mJihmKDAsImRpdiIsNykoMSwic3BhbiIsOCksVCgyLCItXHUyMjFlIiksZygpLGYoMywic3BhbiIsOSksVCg0KSxnKCkoKSksMiZuKXtsZXQgZT13KDIpO3YoNCksVmUoIlx4ZDciLGUubnVtTmVnYXRpdmVJbmZzLCIiKX19ZnVuY3Rpb24gVk1lKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiLDcpKDEsInNwYW4iLDgpLFQoMiwiK1x1MjIxZSIpLGcoKSxmKDMsInNwYW4iLDkpLFQoNCksZygpKCkpLDImbil7bGV0IGU9dygyKTt2KDQpLFZlKCJceGQ3IixlLm51bVBvc2l0aXZlSW5mcywiIil9fWZ1bmN0aW9uIEhNZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2Iiw3KSgxLCJzcGFuIiwxMCksVCgyLCItIiksZygpLGYoMywic3BhbiIsOSksVCg0KSxnKCkoKSksMiZuKXtsZXQgZT13KDIpO3YoNCksVmUoIlx4ZDciLGUubnVtTmVnYXRpdmVGaW5pdGVzLCIiKX19ZnVuY3Rpb24gek1lKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiLDcpKDEsInNwYW4iLDEwKSxUKDIsIjAiKSxnKCksZigzLCJzcGFuIiw5KSxUKDQpLGcoKSgpKSwyJm4pe2xldCBlPXcoMik7dig0KSxWZSgiXHhkNyIsZS5udW1aZXJvcywiIil9fWZ1bmN0aW9uIFVNZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2Iiw3KSgxLCJzcGFuIiwxMCksVCgyLCIrIiksZygpLGYoMywic3BhbiIsOSksVCg0KSxnKCkoKSksMiZuKXtsZXQgZT13KDIpO3YoNCksVmUoIlx4ZDciLGUubnVtUG9zaXRpdmVGaW5pdGVzLCIiKX19ZnVuY3Rpb24gak1lKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiLDUpLFMoMSxMTWUsNSwxLCJkaXYiLDYpLFMoMixCTWUsNSwxLCJkaXYiLDYpLFMoMyxWTWUsNSwxLCJkaXYiLDYpLFMoNCxITWUsNSwxLCJkaXYiLDYpLFMoNSx6TWUsNSwxLCJkaXYiLDYpLFMoNixVTWUsNSwxLCJkaXYiLDYpLGcoKSksMiZuKXtsZXQgZT13KCk7digxKSxiKCJuZ0lmIix2b2lkIDAhPT1lLm51bU5hTnMmJmUubnVtTmFOcz4wKSx2KDEpLGIoIm5nSWYiLHZvaWQgMCE9PWUubnVtTmVnYXRpdmVJbmZzJiZlLm51bU5lZ2F0aXZlSW5mcz4wKSx2KDEpLGIoIm5nSWYiLHZvaWQgMCE9PWUubnVtUG9zaXRpdmVJbmZzJiZlLm51bVBvc2l0aXZlSW5mcz4wKSx2KDEpLGIoIm5nSWYiLHZvaWQgMCE9PWUubnVtTmVnYXRpdmVGaW5pdGVzJiZlLm51bU5lZ2F0aXZlRmluaXRlcz4wKSx2KDEpLGIoIm5nSWYiLHZvaWQgMCE9PWUubnVtWmVyb3MmJmUubnVtWmVyb3M+MCksdigxKSxiKCJuZ0lmIix2b2lkIDAhPT1lLm51bVBvc2l0aXZlRmluaXRlcyYmZS5udW1Qb3NpdGl2ZUZpbml0ZXM+MCl9fXZhciBHTWU9ZnVuY3Rpb24obil7cmV0dXJuWyJjb250YWluZXIiLG5dfTtmdW5jdGlvbiBXTWUobix0KXsxJm4mJmsoMCwiZGVidWctdGVuc29yLWR0eXBlIiw1KSwyJm4mJmIoImR0eXBlIix3KCkuZGVidWdUZW5zb3JWYWx1ZS5kdHlwZSl9ZnVuY3Rpb24gcU1lKG4sdCl7MSZuJiZrKDAsImRlYnVnLXRlbnNvci1yYW5rIiw2KSwyJm4mJmIoInJhbmsiLHcoKS5kZWJ1Z1RlbnNvclZhbHVlLnJhbmspfWZ1bmN0aW9uIFhNZShuLHQpezEmbiYmaygwLCJkZWJ1Zy10ZW5zb3Itc2hhcGUiLDcpLDImbiYmYigic2hhcGUiLHcoKS5kZWJ1Z1RlbnNvclZhbHVlLnNoYXBlKX1mdW5jdGlvbiBZTWUobix0KXsxJm4mJmsoMCwiZGVidWctdGVuc29yLWhhcy1pbmYtb3ItbmFuIiw4KSwyJm4mJmIoImhhc0luZk9yTmFOIix3KCkuZGVidWdUZW5zb3JWYWx1ZS5oYXNJbmZPck5hTil9ZnVuY3Rpb24gUU1lKG4sdCl7aWYoMSZuJiZrKDAsImRlYnVnLXRlbnNvci1udW1lcmljLWJyZWFrZG93biIsOSksMiZuKXtsZXQgZT13KCk7WmkoInNpemUiLGUuZGVidWdUZW5zb3JWYWx1ZS5zaXplKSxiKCJudW1OZWdhdGl2ZUluZnMiLGUuZGVidWdUZW5zb3JWYWx1ZS5udW1OZWdhdGl2ZUluZnMpKCJudW1Qb3NpdGl2ZUluZnMiLGUuZGVidWdUZW5zb3JWYWx1ZS5udW1Qb3NpdGl2ZUluZnMpKCJudW1OYU5zIixlLmRlYnVnVGVuc29yVmFsdWUubnVtTmFOcykoIm51bU5lZ2F0aXZlRmluaXRlcyIsZS5kZWJ1Z1RlbnNvclZhbHVlLm51bU5lZ2F0aXZlRmluaXRlcykoIm51bVplcm9zIixlLmRlYnVnVGVuc29yVmFsdWUubnVtWmVyb3MpKCJudW1Qb3NpdGl2ZUZpbml0ZXMiLGUuZGVidWdUZW5zb3JWYWx1ZS5udW1Qb3NpdGl2ZUZpbml0ZXMpfX12YXIgWk1lPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImRlYnVnLXRlbnNvci1kdHlwZSJdXSxpbnB1dHM6e2R0eXBlOiJkdHlwZSJ9LGRlY2xzOjEsdmFyczoxLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiZUKDApLDImZSYmVmUoIiAiLGkuZHR5cGUsIiAiKX0sc3R5bGVzOltnTl19KSxufSkoKSxLTWU9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1siZGVidWctdGVuc29yLXJhbmsiXV0saW5wdXRzOntyYW5rOiJyYW5rIn0sZGVjbHM6MSx2YXJzOjEsdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJlQoMCksMiZlJiZWZSgiICIsaS5yYW5rLCJEICIpfSxzdHlsZXM6W2dOXX0pLG59KSgpLEpNZT0oKCk9PntjbGFzcyBue2dldCBzaGFwZVN0cmluZygpe3JldHVybiJbIit0aGlzLnNoYXBlLm1hcChlPT52b2lkIDA9PT1lPyI/IjpTdHJpbmcoZSkpLmpvaW4oIiwiKSsiXSJ9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImRlYnVnLXRlbnNvci1zaGFwZSJdXSxpbnB1dHM6e3NoYXBlOiJzaGFwZSJ9LGRlY2xzOjEsdmFyczoxLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiZUKDApLDImZSYmVmUoIiBzaGFwZToiLGkuc2hhcGVTdHJpbmcsIiAiKX0sc3R5bGVzOltnTl19KSxufSkoKSwkTWU9KCgpPT57Y2xhc3MgbntnZXQgYnJlYWtkb3duRXhpc3RzKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMubnVtTmFOc3x8dm9pZCAwIT09dGhpcy5udW1OZWdhdGl2ZUluZnN8fHZvaWQgMCE9PXRoaXMubnVtUG9zaXRpdmVJbmZzfHx2b2lkIDAhPT10aGlzLm51bU5lZ2F0aXZlRmluaXRlc3x8dm9pZCAwIT09dGhpcy5udW1aZXJvc3x8dm9pZCAwIT09dGhpcy5udW1Qb3NpdGl2ZUZpbml0ZXN9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImRlYnVnLXRlbnNvci1udW1lcmljLWJyZWFrZG93biJdXSxpbnB1dHM6e3NpemU6InNpemUiLG51bU5hTnM6Im51bU5hTnMiLG51bU5lZ2F0aXZlSW5mczoibnVtTmVnYXRpdmVJbmZzIixudW1Qb3NpdGl2ZUluZnM6Im51bVBvc2l0aXZlSW5mcyIsbnVtTmVnYXRpdmVGaW5pdGVzOiJudW1OZWdhdGl2ZUZpbml0ZXMiLG51bVplcm9zOiJudW1aZXJvcyIsbnVtUG9zaXRpdmVGaW5pdGVzOiJudW1Qb3NpdGl2ZUZpbml0ZXMifSxkZWNsczo3LHZhcnM6Myxjb25zdHM6W1sxLCJzaXplIl0sWzEsInNpemUtdmFsdWUiXSxbImNsYXNzIiwiYnJlYWsiLDQsIm5nSWYiXSxbImNsYXNzIiwiYnJlYWtkb3duIiw0LCJuZ0lmIl0sWzEsImJyZWFrIl0sWzEsImJyZWFrZG93biJdLFsiY2xhc3MiLCJjYXRlZ29yeSIsNCwibmdJZiJdLFsxLCJjYXRlZ29yeSJdLFsxLCJjYXRlZ29yeS10YWciLCJpbmZpbml0ZSJdLFsxLCJjYXRlZ29yeS1jb3VudCJdLFsxLCJjYXRlZ29yeS10YWciLCJmaW5pdGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImRpdiIsMCkoMSwic3BhbiIpLFQoMiwic2l6ZToiKSxnKCksZigzLCJzcGFuIiwxKSxUKDQpLGcoKSgpLFMoNSxOTWUsMSwwLCJkaXYiLDIpLFMoNixqTWUsNyw2LCJkaXYiLDMpKSwyJmUmJih2KDQpLGt0KGkuc2l6ZSksdigxKSxiKCJuZ0lmIixpLmJyZWFrZG93bkV4aXN0cyksdigxKSxiKCJuZ0lmIixpLmJyZWFrZG93bkV4aXN0cykpfSxkZXBlbmRlbmNpZXM6W05lXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UzZTVlODtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJywgbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIG1hcmdpbjogMCAycHg7XG4gICAgICAgIHBhZGRpbmc6IDFweDtcbiAgICAgIH1cbiAgICAgIC5icmVha1tfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgIH1cbiAgICAgIC5zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDExcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMXB4O1xuICAgICAgICBtYXJnaW46IDAgM3B4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgICAgLmJyZWFrZG93bltfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiAxMXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTFweDtcbiAgICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgICAgLmNhdGVnb3J5W19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICBoZWlndGg6IDEwMCU7XG4gICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgIH1cbiAgICAgIC5jYXRlZ29yeS10YWdbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBwYWRkaW5nOiAwIDJweDtcbiAgICAgIH1cbiAgICAgIC5maW5pdGVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2FhYTtcbiAgICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICB9XG4gICAgICAuaW5maW5pdGVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1MjU5MjtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9Il19KSxufSkoKSxld2U9KCgpPT57Y2xhc3MgbntnZXQgaW5mb1N0cmluZygpe3JldHVybiB0aGlzLmhhc0luZk9yTmFOPyJIYXMgXHUyMjFlL05hTiI6Ik5vIFx1MjIxZS9OYU4ifX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJkZWJ1Zy10ZW5zb3ItaGFzLWluZi1vci1uYW4iXV0saW5wdXRzOntoYXNJbmZPck5hTjoiaGFzSW5mT3JOYU4ifSxkZWNsczoyLHZhcnM6NCxjb25zdHM6W1szLCJuZ0NsYXNzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJkaXYiLDApLFQoMSksZygpKSwyJmUmJihiKCJuZ0NsYXNzIixVbigyLEdNZSxpLmhhc0luZk9yTmFOPyJoYXMtaW5mLW9yLW5hbiI6IiIpKSx2KDEpLFZlKCIgIixpLmluZm9TdHJpbmcsIiAiKSl9LGRlcGVuZGVuY2llczpbd25dLHN0eWxlczpbIi5jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UzZTVlODtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBjb2xvcjogIzY2NjY2NjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubycsIG1vbm9zcGFjZTtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgICAgcGFkZGluZzogMXB4IDNweDtcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgfVxuICAgICAgLmhhcy1pbmYtb3ItbmFuW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNTI1OTI7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfSJdfSksbn0pKCksSkU9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1siZGVidWctdGVuc29yLXZhbHVlIl1dLGlucHV0czp7ZGVidWdUZW5zb3JWYWx1ZToiZGVidWdUZW5zb3JWYWx1ZSJ9LGRlY2xzOjUsdmFyczo1LGNvbnN0czpbWzMsImR0eXBlIiw0LCJuZ0lmIl0sWzMsInJhbmsiLDQsIm5nSWYiXSxbMywic2hhcGUiLDQsIm5nSWYiXSxbMywiaGFzSW5mT3JOYU4iLDQsIm5nSWYiXSxbMywic2l6ZSIsIm51bU5lZ2F0aXZlSW5mcyIsIm51bVBvc2l0aXZlSW5mcyIsIm51bU5hTnMiLCJudW1OZWdhdGl2ZUZpbml0ZXMiLCJudW1aZXJvcyIsIm51bVBvc2l0aXZlRmluaXRlcyIsNCwibmdJZiJdLFszLCJkdHlwZSJdLFszLCJyYW5rIl0sWzMsInNoYXBlIl0sWzMsImhhc0luZk9yTmFOIl0sWzMsInNpemUiLCJudW1OZWdhdGl2ZUluZnMiLCJudW1Qb3NpdGl2ZUluZnMiLCJudW1OYU5zIiwibnVtTmVnYXRpdmVGaW5pdGVzIiwibnVtWmVyb3MiLCJudW1Qb3NpdGl2ZUZpbml0ZXMiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihTKDAsV01lLDEsMSwiZGVidWctdGVuc29yLWR0eXBlIiwwKSxTKDEscU1lLDEsMSwiZGVidWctdGVuc29yLXJhbmsiLDEpLFMoMixYTWUsMSwxLCJkZWJ1Zy10ZW5zb3Itc2hhcGUiLDIpLFMoMyxZTWUsMSwxLCJkZWJ1Zy10ZW5zb3ItaGFzLWluZi1vci1uYW4iLDMpLFMoNCxRTWUsMSw3LCJkZWJ1Zy10ZW5zb3ItbnVtZXJpYy1icmVha2Rvd24iLDQpKSwyJmUmJihiKCJuZ0lmIix2b2lkIDAhPT1pLmRlYnVnVGVuc29yVmFsdWUuZHR5cGUpLHYoMSksYigibmdJZiIsdm9pZCAwIT09aS5kZWJ1Z1RlbnNvclZhbHVlLnJhbmspLHYoMSksYigibmdJZiIsdm9pZCAwIT09aS5kZWJ1Z1RlbnNvclZhbHVlLnNoYXBlKSx2KDEpLGIoIm5nSWYiLHZvaWQgMCE9PWkuZGVidWdUZW5zb3JWYWx1ZS5oYXNJbmZPck5hTiksdigxKSxiKCJuZ0lmIix2b2lkIDAhPT1pLmRlYnVnVGVuc29yVmFsdWUuc2l6ZSkpfSxkZXBlbmRlbmNpZXM6W05lLFpNZSxld2UsJE1lLEtNZSxKTWVdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV0ge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICB9XG4gICAgICBkZWJ1Zy10ZW5zb3ItbnVtZXJpYy1icmVha2Rvd25bX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfSJdfSksbn0pKCk7ZnVuY3Rpb24gdHdlKG4sdCl7MSZuJiYoZigwLCJkaXYiLDEyKSxUKDEsIlx1MjViNiIpLGcoKSl9dmFyIG53ZT1mdW5jdGlvbihuLHQpe3JldHVybnt0ZW5zb3JEZWJ1Z01vZGU6bixhcnJheTp0fX07ZnVuY3Rpb24gaXdlKG4sdCl7aWYoMSZuJiZrKDAsImRlYnVnLXRlbnNvci12YWx1ZSIsMTcpLDImbil7bGV0IGU9dygyKS4kaW1wbGljaXQsaT13KDIpO2IoImRlYnVnVGVuc29yVmFsdWUiLGkucGFyc2VEZWJ1Z1RlbnNvclZhbHVlKFNvKDEsbndlLGkuZ3JhcGhFeGVjdXRpb25EYXRhW2VdLnRlbnNvcl9kZWJ1Z19tb2RlLGkuZ3JhcGhFeGVjdXRpb25EYXRhW2VdLmRlYnVnX3RlbnNvcl92YWx1ZSkpKX19ZnVuY3Rpb24gcndlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiZGl2IikoMSwiZGl2IiwxMykoMiwiYnV0dG9uIiwxNCksQSgiY2xpY2siLGZ1bmN0aW9uKCl7bmUoZSk7bGV0IHI9dygpLiRpbXBsaWNpdCxvPXcoMik7cmV0dXJuIGllKG8ub25UZW5zb3JOYW1lQ2xpY2suZW1pdCh7aW5kZXg6cixncmFwaF9pZDpvLmdyYXBoRXhlY3V0aW9uRGF0YVtyXS5ncmFwaF9pZCxvcF9uYW1lOm8uZ3JhcGhFeGVjdXRpb25EYXRhW3JdLm9wX25hbWV9KSl9KSxUKDMpLGcoKSxmKDQsImRpdiIsMTUpLFQoNSksZygpKCksUyg2LGl3ZSwxLDQsImRlYnVnLXRlbnNvci12YWx1ZSIsMTYpLGcoKX1pZigyJm4pe2xldCBlPXcoKS4kaW1wbGljaXQsaT13KDIpO3YoMiksWmkoInRpdGxlIixpLmdldFRlbnNvck5hbWUoZSkpLHYoMSksVmUoIiAiLGkuZ2V0VGVuc29yTmFtZShlKSwiICIpLHYoMiksa3QoaS5ncmFwaEV4ZWN1dGlvbkRhdGFbZV0ub3BfdHlwZSksdigxKSxiKCJuZ0lmIixudWxsIT09aS5ncmFwaEV4ZWN1dGlvbkRhdGFbZV0uZGVidWdfdGVuc29yX3ZhbHVlKX19ZnVuY3Rpb24gb3dlKG4sdCl7MSZuJiYoZigwLCJkaXYiLDE4KSxUKDEsIiBMb2FkaW5nLi4uICIpLGcoKSl9dmFyIGF3ZT1mdW5jdGlvbihuKXtyZXR1cm57ImlucHV0LW9mLWZvY3VzIjpufX07ZnVuY3Rpb24gc3dlKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiLDUpKDEsImRpdiIsNikoMiwiZGl2Iiw3KSxTKDMsdHdlLDIsMCwiZGl2Iiw4KSxUKDQpLGcoKSxTKDUscndlLDcsNCwiZGl2Iiw5KSxTKDYsb3dlLDIsMCwibmctdGVtcGxhdGUiLDEwLDExLGp0KSxnKCkoKSksMiZuKXtsZXQgZT10LiRpbXBsaWNpdCxpPXN0KDcpLHI9dygyKTt2KDEpLGIoIm5nQ2xhc3MiLFVuKDUsYXdlLHIuaXNJbnB1dE9mRm9jdXMoZSkpKSx2KDIpLGIoIm5nSWYiLGU9PT1yLmZvY3VzSW5kZXgpLHYoMSksVmUoIiAiLGUsIiAiKSx2KDEpLGIoIm5nSWYiLHIuZ3JhcGhFeGVjdXRpb25EYXRhW2VdKSgibmdJZkVsc2UiLGkpfX1mdW5jdGlvbiBsd2Uobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQiLDMpLEEoInNjcm9sbGVkSW5kZXhDaGFuZ2UiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkub25TY3JvbGxlZEluZGV4Q2hhbmdlLmVtaXQocikpfSksUygxLHN3ZSw4LDcsImRpdiIsNCksZygpfWlmKDImbil7bGV0IGU9dygpO3YoMSksYigiY2RrVmlydHVhbEZvck9mIixlLmdyYXBoRXhlY3V0aW9uSW5kaWNlcyl9fXZhciBiWT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy5vblNjcm9sbGVkSW5kZXhDaGFuZ2U9bmV3IEYsdGhpcy5vblRlbnNvck5hbWVDbGljaz1uZXcgRix0aGlzLnBhcnNlRGVidWdUZW5zb3JWYWx1ZT1LRSx0aGlzLlRFU1RfT05MWT17Z2V0Vmlld1BvcnQ6KCk9PnRoaXMudmlld1BvcnR9fW5nT25DaGFuZ2VzKGUpe2lmKHRoaXMudmlld1BvcnQmJmUuZm9jdXNJbmRleCYmbnVsbCE9PWUuZm9jdXNJbmRleC5jdXJyZW50VmFsdWUpe2xldCBpPXRoaXMudmlld1BvcnQuZ2V0UmVuZGVyZWRSYW5nZSgpLHI9ZS5mb2N1c0luZGV4LmN1cnJlbnRWYWx1ZSxvPU1hdGgucm91bmQoKGkuZW5kLWkuc3RhcnQpLzMpLGE9TWF0aC5tYXgoci1vLDApO3RoaXMudmlld1BvcnQuc2Nyb2xsVG9JbmRleChhLHI+PWkuc3RhcnQmJnI8aS5lbmQ/InNtb290aCI6dm9pZCAwKX19Z2V0VGVuc29yTmFtZShlKXtyZXR1cm5gJHt0aGlzLmdyYXBoRXhlY3V0aW9uRGF0YVtlXS5vcF9uYW1lfToke3RoaXMuZ3JhcGhFeGVjdXRpb25EYXRhW2VdLm91dHB1dF9zbG90fWB9aXNJbnB1dE9mRm9jdXMoZSl7cmV0dXJuIG51bGwhPT10aGlzLmZvY3VzSW5wdXRJbmRpY2VzJiZ0aGlzLmZvY3VzSW5wdXRJbmRpY2VzLmluY2x1ZGVzKGUpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJncmFwaC1leGVjdXRpb25zLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJlVlKGdnLDUpLDImZSl7bGV0IHI7YmUocj12ZSgpKSYmKGkudmlld1BvcnQ9ci5maXJzdCl9fSxpbnB1dHM6e251bUdyYXBoRXhlY3V0aW9uczoibnVtR3JhcGhFeGVjdXRpb25zIixncmFwaEV4ZWN1dGlvbkRhdGE6ImdyYXBoRXhlY3V0aW9uRGF0YSIsZ3JhcGhFeGVjdXRpb25JbmRpY2VzOiJncmFwaEV4ZWN1dGlvbkluZGljZXMiLGZvY3VzSW5kZXg6ImZvY3VzSW5kZXgiLGZvY3VzSW5wdXRJbmRpY2VzOiJmb2N1c0lucHV0SW5kaWNlcyJ9LG91dHB1dHM6e29uU2Nyb2xsZWRJbmRleENoYW5nZToib25TY3JvbGxlZEluZGV4Q2hhbmdlIixvblRlbnNvck5hbWVDbGljazoib25UZW5zb3JOYW1lQ2xpY2sifSxmZWF0dXJlczpbcXRdLGRlY2xzOjQsdmFyczoyLGNvbnN0czpbWzEsImdyYXBoLWV4ZWN1dGlvbnMtY29udGFpbmVyIl0sWzEsImdyYXBoLWV4ZWN1dGlvbnMtdGl0bGUiXSxbIml0ZW1TaXplIiwiMzgiLCJjbGFzcyIsImdyYXBoLWV4ZWN1dGlvbnMtdmlld3BvcnQiLDMsInNjcm9sbGVkSW5kZXhDaGFuZ2UiLDQsIm5nSWYiXSxbIml0ZW1TaXplIiwiMzgiLDEsImdyYXBoLWV4ZWN1dGlvbnMtdmlld3BvcnQiLDMsInNjcm9sbGVkSW5kZXhDaGFuZ2UiXSxbImNsYXNzIiwidGVuc29yLWNvbnRhaW5lciIsNCwiY2RrVmlydHVhbEZvciIsImNka1ZpcnR1YWxGb3JPZiJdLFsxLCJ0ZW5zb3ItY29udGFpbmVyIl0sWzEsInRlbnNvci1pdGVtIiwzLCJuZ0NsYXNzIl0sWzEsImdyYXBoLWV4ZWN1dGlvbi1pbmRleCJdLFsiY2xhc3MiLCJncmFwaC1leGVjdXRpb24tZm9jdXMiLDQsIm5nSWYiXSxbNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJjbGFzcyIsInRlbnNvci1pdGVtIl0sWyJkYXRhTG9hZGluZyIsIiJdLFsxLCJncmFwaC1leGVjdXRpb24tZm9jdXMiXSxbMSwidGVuc29yLW5hbWUtYW5kLW9wLXR5cGUiXSxbMSwidGVuc29yLW5hbWUiLDMsInRpdGxlIiwiY2xpY2siXSxbMSwib3AtdHlwZSJdLFszLCJkZWJ1Z1RlbnNvclZhbHVlIiw0LCJuZ0lmIl0sWzMsImRlYnVnVGVuc29yVmFsdWUiXSxbMSwibG9hZGluZy1zcGlubmVyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJkaXYiLDApKDEsImRpdiIsMSksVCgyKSxnKCksUygzLGx3ZSwyLDEsImNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCIsMiksZygpKSwyJmUmJih2KDIpLFZlKCIgR3JhcGggRXhlY3V0aW9ucyAoIixpLm51bUdyYXBoRXhlY3V0aW9ucywiKSAiKSx2KDEpLGIoIm5nSWYiLG51bGwhPT1pLm51bUdyYXBoRXhlY3V0aW9ucyYmaS5udW1HcmFwaEV4ZWN1dGlvbnM+MCkpfSxkZXBlbmRlbmNpZXM6W3duLE5lLEpFLFE3LFo3LGdnXSxzdHlsZXM6WycuZ3JhcGgtZXhlY3V0aW9ucy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCU7bWFyZ2luLWxlZnQ6OHB4O3BhZGRpbmctbGVmdDoxMHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ncmFwaC1leGVjdXRpb25zLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncmFwaC1leGVjdXRpb25zLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICM1NTV9LmdyYXBoLWV4ZWN1dGlvbi1mb2N1c1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2t9LmdyYXBoLWV4ZWN1dGlvbi1pbmRleFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLXJpZ2h0OjRweDt0ZXh0LWFsaWduOnJpZ2h0O3dpZHRoOjQwcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyYXBoLWV4ZWN1dGlvbi1pbmRleFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncmFwaC1leGVjdXRpb24taW5kZXhbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5ncmFwaC1leGVjdXRpb25zLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtib3gtc2hhZG93OjAgNXB4IDNweCAtM3B4ICNjY2M7cGFkZGluZy1ib3R0b206NXB4fS5ncmFwaC1leGVjdXRpb25zLXZpZXdwb3J0W19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4LWdyb3c6MTtmb250LXNpemU6MTJweDt3aWR0aDoxMDAlO292ZXJmbG93LXg6aGlkZGVufS5pbnB1dC1vZi1mb2N1c1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmMDk5fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5pbnB1dC1vZi1mb2N1c1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5pbnB1dC1vZi1mb2N1c1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZTY1MTAwfS5sb2FkaW5nLXNwaW5uZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNlY2VmZjE7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtZmFtaWx5OiJSb2JvdG8gTW9ubyIsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxMHB4O2hlaWdodDoxNHB4O2xpbmUtaGVpZ2h0OjE0cHg7cGFkZGluZzoxcHggM3B4O3dpZHRoOm1heC1jb250ZW50O2RpcmVjdGlvbjpydGw7ZGlzcGxheTpibG9ja31ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub3AtdHlwZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MXB4IHNvbGlkICM1NTV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAub3AtdHlwZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojNDU1YTY0fS50ZW5zb3ItY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS50ZW5zb3ItaXRlbVtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOm5vd3JhcDtoZWlnaHQ6MzhweDtsaW5lLWhlaWdodDozOHB4O3RleHQtYWxpZ246bGVmdDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6bm93cmFwO3dpZHRoOjEwMCV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnRlbnNvci1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnRlbnNvci1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fS50ZW5zb3ItbmFtZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlcjpub25lO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2N1cnNvcjpwb2ludGVyO2RpcmVjdGlvbjpydGw7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTZweDtsaW5lLWhlaWdodDoxNnB4O21hcmdpbjoycHggMCAxcHg7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDJweCk7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MCAycHg7dGV4dC1hbGlnbjpyaWdodDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS50ZW5zb3ItbmFtZVtfbmdjb250ZW50LSVDT01QJV06Zm9jdXN7b3V0bGluZToxcHggc29saWQgI2M2Y2FkMX0udGVuc29yLW5hbWUtYW5kLW9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2RpcmVjdGlvbjpydGw7ZGlzcGxheTppbmxpbmUtYmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmctcmlnaHQ6OHB4O3RleHQtYWxpZ246cmlnaHQ7d2lkdGg6MjQwcHh9ZGVidWctdGVuc29yLXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MnB4IDB9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSx2WT0oKCk9PntjbGFzcyBue29uU2Nyb2xsZWRJbmRleENoYW5nZShlKXt0aGlzLnN0b3JlLmRpc3BhdGNoKGtnKHtpbmRleDplfSkpfW9uVGVuc29yTmFtZUNsaWNrKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2goT2coZSkpfWNvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmU9ZSx0aGlzLm51bUdyYXBoRXhlY3V0aW9ucyQ9dGhpcy5zdG9yZS5waXBlKHVuKG15KSksdGhpcy5ncmFwaEV4ZWN1dGlvbkRhdGEkPXRoaXMuc3RvcmUucGlwZSh1bihzTikpLHRoaXMuZ3JhcGhFeGVjdXRpb25JbmRpY2VzJD10aGlzLnN0b3JlLnBpcGUodW4oVyhteSxpPT4wPT09aT9udWxsOkFycmF5LmZyb20oe2xlbmd0aDppfSkubWFwKChyLG8pPT5vKSkpKSx0aGlzLmZvY3VzSW5kZXgkPXRoaXMuc3RvcmUucGlwZSh1bihsTikpLHRoaXMuZm9jdXNJbnB1dEluZGljZXMkPXRoaXMuc3RvcmUucGlwZSh1bihhWSkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKEllKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sidGYtZGVidWdnZXItdjItZ3JhcGgtZXhlY3V0aW9ucyJdXSxkZWNsczo2LHZhcnM6MTUsY29uc3RzOltbMywibnVtR3JhcGhFeGVjdXRpb25zIiwiZ3JhcGhFeGVjdXRpb25EYXRhIiwiZ3JhcGhFeGVjdXRpb25JbmRpY2VzIiwiZm9jdXNJbmRleCIsImZvY3VzSW5wdXRJbmRpY2VzIiwib25TY3JvbGxlZEluZGV4Q2hhbmdlIiwib25UZW5zb3JOYW1lQ2xpY2siXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImdyYXBoLWV4ZWN1dGlvbnMtY29tcG9uZW50IiwwKSxBKCJvblNjcm9sbGVkSW5kZXhDaGFuZ2UiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uU2Nyb2xsZWRJbmRleENoYW5nZShvKX0pKCJvblRlbnNvck5hbWVDbGljayIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25UZW5zb3JOYW1lQ2xpY2sobyl9KSxVKDEsImFzeW5jIiksVSgyLCJhc3luYyIpLFUoMywiYXN5bmMiKSxVKDQsImFzeW5jIiksVSg1LCJhc3luYyIpLGcoKSksMiZlJiZiKCJudW1HcmFwaEV4ZWN1dGlvbnMiLEcoMSw1LGkubnVtR3JhcGhFeGVjdXRpb25zJCkpKCJncmFwaEV4ZWN1dGlvbkRhdGEiLEcoMiw3LGkuZ3JhcGhFeGVjdXRpb25EYXRhJCkpKCJncmFwaEV4ZWN1dGlvbkluZGljZXMiLEcoMyw5LGkuZ3JhcGhFeGVjdXRpb25JbmRpY2VzJCkpKCJmb2N1c0luZGV4IixHKDQsMTEsaS5mb2N1c0luZGV4JCkpKCJmb2N1c0lucHV0SW5kaWNlcyIsRyg1LDEzLGkuZm9jdXNJbnB1dEluZGljZXMkKSl9LGRlcGVuZGVuY2llczpbYlksY3RdLGVuY2Fwc3VsYXRpb246Mn0pLG59KSgpO2Z1bmN0aW9uIHV3ZShuLHQpezEmbiYmKGYoMCwic3BhbiIpLFQoMSwiIE91dHB1dCAiKSxnKCkpfWZ1bmN0aW9uIHB3ZShuLHQpezEmbiYmKGYoMCwic3BhbiIpLFQoMSwiIElucHV0ICIpLGcoKSl9ZnVuY3Rpb24gaHdlKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiLDYpKDEsInNwYW4iLDcpLFMoMix1d2UsMiwwLCJzcGFuIiw4KSxTKDMscHdlLDIsMCwic3BhbiIsOCksZygpLFQoNCksZygpKSwyJm4pe2xldCBlPXcoKTt2KDEpLGIoIm5nU3dpdGNoIixlLmtpbmQpLHYoMSksYigibmdTd2l0Y2hDYXNlIiwiaW5wdXQiKSx2KDEpLGIoIm5nU3dpdGNoQ2FzZSIsImNvbnN1bWVyIiksdigxKSxWZSgiIHNsb3Q6ICIsZS5zbG90LCIgIil9fWZ1bmN0aW9uIG13ZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2Iiw5KSxUKDEpLGcoKSksMiZuKXtsZXQgZT13KCk7digxKSxWZSgiICIsZS5vcERhdGEub3BfdHlwZSwiICIpfX1mdW5jdGlvbiBmd2Uobix0KXsxJm4mJihmKDAsInNwYW4iLDEwKSxUKDEsIiAoT3AgaW5mbyB1bmF2YWlsYWJsZS4pICIpLGcoKSl9dmFyIGd3ZT1mdW5jdGlvbihuKXtyZXR1cm5bbl19LHlZPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLm9uT3BOYW1lQ2xpY2s9bmV3IEZ9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImdyYXBoLW9wIl1dLGlucHV0czp7a2luZDoia2luZCIsb3BOYW1lOiJvcE5hbWUiLHNsb3Q6InNsb3QiLG9wRGF0YToib3BEYXRhIn0sb3V0cHV0czp7b25PcE5hbWVDbGljazoib25PcE5hbWVDbGljayJ9LGRlY2xzOjksdmFyczo3LGNvbnN0czpbWzEsIm9wLWNvbnRhaW5lciJdLFsxLCJpbnB1dC10ZW5zb3ItbmFtZSJdLFsxLCJvcC1uYW1lIiwzLCJuZ0NsYXNzIiwiY2xpY2siXSxbImNsYXNzIiwic2xvdCIsNCwibmdJZiJdLFsiY2xhc3MiLCJvcC10eXBlIiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbIm9wSW5mb01pc3NpbmciLCIiXSxbMSwic2xvdCJdLFszLCJuZ1N3aXRjaCJdLFs0LCJuZ1N3aXRjaENhc2UiXSxbMSwib3AtdHlwZSJdLFsxLCJvcC1pbmZvLW1pc3NpbmciXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJihmKDAsImJ1dHRvbiIsMCkoMSwiZGl2IiwxKSgyLCJidXR0b24iLDIpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpLm9uT3BOYW1lQ2xpY2suZW1pdCh7b3BfbmFtZTppLm9wTmFtZX0pfSksZigzLCJzcGFuIiksVCg0KSxnKCkoKSxTKDUsaHdlLDUsNCwiZGl2IiwzKSxnKCksUyg2LG13ZSwyLDEsImRpdiIsNCksUyg3LGZ3ZSwyLDAsIm5nLXRlbXBsYXRlIixudWxsLDUsanQpLGcoKSksMiZlKXtsZXQgcj1zdCg4KTt2KDIpLGIoIm5nQ2xhc3MiLFVuKDUsZ3dlLCJzZWxmIj09PWkua2luZD8ic2VsZi1vcC1uYW1lIjoiIikpLHYoMiksa3QoaS5vcE5hbWUpLHYoMSksYigibmdJZiIsInNlbGYiIT09aS5raW5kKSx2KDEpLGIoIm5nSWYiLHZvaWQgMCE9PWkub3BEYXRhKSgibmdJZkVsc2UiLHIpfX0sZGVwZW5kZW5jaWVzOlt3bixOZSxtcixrcl0sc3R5bGVzOlsnLm9wLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5vcC1uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjppbmhlcml0O2JhY2tncm91bmQtY29sb3I6aW5oZXJpdH0ub3AtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MnB4IHNvbGlkICNlYmViZWI7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNoYWRvdzoxcHggM3B4ICNlZWU7Y3Vyc29yOnBvaW50ZXI7bWFyZ2luOjAgNXB4IDAgMDtwYWRkaW5nOjJweCA2cHg7dGV4dC1hbGlnbjpyaWdodDt3aWR0aDoyMDBweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub3AtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9wLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjJweCBzb2xpZCAjNTU1fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAub3AtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3gtc2hhZG93OjFweCAzcHggIzc1NzU3NX0ub3AtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1c3tvdXRsaW5lOjB9Lm9wLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7Ym9yZGVyOjJweCBzb2xpZCAjZmZkM2IyfS5vcC1pbmZvLW1pc3NpbmdbX25nY29udGVudC0lQ09NUCVde2NvbG9yOmdyYXl9Lm9wLW5hbWVbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO292ZXJmbG93LXdyYXA6YW55d2hlcmU7cGFkZGluZzowO3RleHQtYWxpZ246cmlnaHQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0ub3AtbmFtZVtfbmdjb250ZW50LSVDT01QJV06Zm9jdXN7b3V0bGluZTowfS5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNlY2VmZjE7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtZmFtaWx5OiJSb2JvdG8gTW9ubyIsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxMHB4O2hlaWdodDoxNHB4O2xpbmUtaGVpZ2h0OjE0cHg7cGFkZGluZzoxcHggM3B4O3dpZHRoOm1heC1jb250ZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi10b3A6M3B4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoxcHggc29saWQgIzU1NX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub3AtdHlwZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiM0NTVhNjR9LnNlbGYtb3AtbmFtZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LWRlY29yYXRpb246bm9uZX0uc2xvdFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuc2xvdFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zbG90W19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0nXX0pLG59KSgpO2Z1bmN0aW9uIGJ3ZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImRpdiIsMTMpKDEsImRpdiIsMTQpLFQoMiksZygpLGYoMywiZ3JhcGgtb3AiLDE1KSxBKCJvbk9wTmFtZUNsaWNrIixmdW5jdGlvbihyKXtuZShlKTtsZXQgbz13KDMpO3JldHVybiBpZShvLm9uR3JhcGhPcE5hdmlnYXRlLmVtaXQoe29wX25hbWU6ci5vcF9uYW1lLGdyYXBoX2lkOm8uZ3JhcGhJZH0pKX0pLGcoKSgpfWlmKDImbil7bGV0IGU9dC4kaW1wbGljaXQsaT10LmluZGV4O3YoMiksVmUoIklucHV0IHNsb3QgIixpLCI6IiksdigxKSxiKCJraW5kIiwiaW5wdXQiKSgib3BOYW1lIixlLm9wX25hbWUpKCJzbG90IixlLm91dHB1dF9zbG90KSgib3BEYXRhIixlLmRhdGEpfX1mdW5jdGlvbiB2d2Uobix0KXtpZigxJm4mJihmKDAsImRpdiIsMTEpKDEsImRpdiIpLFMoMixid2UsNCw1LCJkaXYiLDEyKSxnKCkoKSksMiZuKXtsZXQgZT13KDIpO3YoMiksYigibmdGb3JPZiIsZS5pbnB1dE9wcyl9fWZ1bmN0aW9uIHl3ZShuLHQpezEmbiYmKGYoMCwiZGl2IiwxNiksVCgxLCIgKFRoaXMgb3AgaGFzIG5vIGlucHV0IHRlbnNvci4pICIpLGcoKSl9ZnVuY3Rpb24geHdlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiZGl2IiwyMykoMSwiZ3JhcGgtb3AiLDE1KSxBKCJvbk9wTmFtZUNsaWNrIixmdW5jdGlvbihyKXtuZShlKTtsZXQgbz13KDQpO3JldHVybiBpZShvLm9uR3JhcGhPcE5hdmlnYXRlLmVtaXQoe29wX25hbWU6ci5vcF9uYW1lLGdyYXBoX2lkOm8uZ3JhcGhJZH0pKX0pLGcoKSgpfWlmKDImbil7bGV0IGU9dC4kaW1wbGljaXQ7digxKSxiKCJraW5kIiwiY29uc3VtZXIiKSgib3BOYW1lIixlLm9wX25hbWUpKCJzbG90IixlLmlucHV0X3Nsb3QpKCJvcERhdGEiLGUuZGF0YSl9fWZ1bmN0aW9uIEN3ZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2IiwxOSkoMSwiZGl2IiwyMCksVCgyKSxmKDMsInNwYW4iKSxYTSg0LDIxKSxnKCksVCg1LCIpICIpLGcoKSxTKDYseHdlLDIsNCwiZGl2IiwyMiksZygpKSwyJm4pe2xldCBlPXQuJGltcGxpY2l0LGk9dC5pbmRleDt2KDIpLGx1KCIgT3V0cHV0IHNsb3QgIixpLCI6ICgiLGUubGVuZ3RoLCIgIiksdigyKSx2YihlLmxlbmd0aCksWU0oNCksdigyKSxiKCJuZ0Zvck9mIixlKX19ZnVuY3Rpb24gTXdlKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiLDE3KSgxLCJkaXYiKSxTKDIsQ3dlLDcsNCwiZGl2IiwxOCksZygpKCkpLDImbil7bGV0IGU9dygyKTt2KDIpLGIoIm5nRm9yT2YiLGUuY29uc3VtZXJPcHMpfX1mdW5jdGlvbiB3d2Uobix0KXtpZigxJm4mJihmKDAsImRpdiIsMjQpLFQoMSksZigyLCJzcGFuIiksWE0oMywyNSksZygpLFQoNCwiIGFuZCBubyBjb25zdW1lci4pICIpLGcoKSksMiZuKXtsZXQgZT13KDIpO3YoMSksVmUoIiAoVGhpcyBvcCBoYXMgIixlLm9wSW5mby5jb25zdW1lcnMubGVuZ3RoLCIgb3V0cHV0ICIpLHYoMiksdmIoZS5vcEluZm8uY29uc3VtZXJzLmxlbmd0aCksWU0oMyl9fWZ1bmN0aW9uIFN3ZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImRpdiIpLFMoMSx2d2UsMywxLCJkaXYiLDQpLFMoMix5d2UsMiwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw1LGp0KSxmKDQsImRpdiIsNikoNSwiZGl2Iiw3KSxUKDYsIk9wOiIpLGcoKSxmKDcsImdyYXBoLW9wIiw4KSxBKCJvbk9wTmFtZUNsaWNrIixmdW5jdGlvbihyKXtuZShlKTtsZXQgbz13KCk7cmV0dXJuIGllKG8ub25HcmFwaE9wTmF2aWdhdGUuZW1pdCh7b3BfbmFtZTpyLm9wX25hbWUsZ3JhcGhfaWQ6by5ncmFwaElkfSkpfSksZygpKCksUyg4LE13ZSwzLDEsImRpdiIsOSksUyg5LHd3ZSw1LDIsIm5nLXRlbXBsYXRlIixudWxsLDEwLGp0KSxnKCl9aWYoMiZuKXtsZXQgZT1zdCgzKSxpPXN0KDEwKSxyPXcoKTt2KDEpLGIoIm5nSWYiLHIuaW5wdXRPcHMubGVuZ3RoPjApKCJuZ0lmRWxzZSIsZSksdig2KSxiKCJraW5kIiwic2VsZiIpKCJvcE5hbWUiLHIub3BJbmZvLm9wX25hbWUpKCJvcERhdGEiLHIub3BJbmZvKSx2KDEpLGIoIm5nSWYiLHIudG90YWxOdW1Db25zdW1lcnM+MCkoIm5nSWZFbHNlIixpKX19ZnVuY3Rpb24gRXdlKG4sdCl7MSZuJiYoZigwLCJzcGFuIiwyNiksVCgxLCIgKE9wIGluZm8gdW5hdmFpbGFibGUuKSAiKSxnKCkpfWZ1bmN0aW9uIFR3ZShuLHQpezEmbiYmKGYoMCwiZGl2IiwyNyksVCgxLCIgTm8gZ3JhcGggb3Agc2VsZWN0ZWQuIENsaWNrIGEgdGVuc29yIG5hbWUgaW4gdGhlIEdyYXBoIEV4ZWN1dGlvbnMgdGFibGUgdG8gdmlldyB0aGUgbmVpZ2hib3Job29kIG9mIHRoZSB0ZW5zb3IncyBvcCBpbiBpdHMgZ3JhcGguICIpLGcoKSl9dmFyIHhZPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLm9uR3JhcGhPcE5hdmlnYXRlPW5ldyBGfWdldCBncmFwaElkKCl7cmV0dXJuIHRoaXMub3BJbmZvLmdyYXBoX2lkc1t0aGlzLm9wSW5mby5ncmFwaF9pZHMubGVuZ3RoLTFdfWdldCB0b3RhbE51bUNvbnN1bWVycygpe3JldHVybiB0aGlzLmNvbnN1bWVyT3BzLnJlZHVjZSgoZSxpKT0+ZStpLmxlbmd0aCwwKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1siZ3JhcGgtY29tcG9uZW50Il1dLGlucHV0czp7b3BJbmZvOiJvcEluZm8iLGlucHV0T3BzOiJpbnB1dE9wcyIsY29uc3VtZXJPcHM6ImNvbnN1bWVyT3BzIn0sb3V0cHV0czp7b25HcmFwaE9wTmF2aWdhdGU6Im9uR3JhcGhPcE5hdmlnYXRlIn0sZGVjbHM6OSx2YXJzOjIsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQsZSxpLHI7cmV0dXJuIHQ9JGxvY2FsaXplYDrikJ9mZTU1ZjliMTkzZWEyMGFhZTViNTYzNWU2OGQ5Mzg2NTAzODQ3NzQ24pCfNDk1NTEzMzc0MDg0MTI5OTg1MTp7VkFSX1BMVVJBTCwgcGx1cmFsLCA9MCB7Y29uc3VtZXJ9ID0xIHtjb25zdW1lcn0gb3RoZXIge2NvbnN1bWVyc319YCx0PVFNKHQse1ZBUl9QTFVSQUw6Ilx1ZmZmZDBcdWZmZmQifSksZT0kbG9jYWxpemVgOuKQn2JhYTQ2MGUyZjJiODU3ZTI2MjkyYjI0NmZjMThhZTBlYTliNWU1MzfikJ81NTU2MzQwMzQzODUwMTY1NTE2OiAke3R9OklDVTpgLGk9JGxvY2FsaXplYDrikJ82YWE3NWY2MjdlMGRjMTYxNTBlZjQ0ODQ2NGUwYzg1N2FhYTBkYzE44pCfNTE1NjcxMjkzNTE1MDU4Njg3ODp7VkFSX1BMVVJBTCwgcGx1cmFsLCA9MCB7dGVuc29yfSA9MSB7dGVuc29yfSBvdGhlciB7dGVuc29yc319YCxpPVFNKGkse1ZBUl9QTFVSQUw6Ilx1ZmZmZDBcdWZmZmQifSkscj0kbG9jYWxpemVgOuKQnzg5MzQ3NmMyYzQyMWNlZTQ3NjYzYzk3MzJmYTQxYTc1MGQzYTczZGbikJ8yNDYwNjcwNTM3MzUxNjI2MzQ6ICR7aX06SUNVOmAsW1sxLCJncmFwaC1zdHJ1Y3R1cmUtY29udGFpbmVyIl0sWzQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsib3BJbmZvTWlzc2luZyIsIiJdLFsibm9PcEZvY3VzZWQiLCIiXSxbImNsYXNzIiwiaW5wdXRzLWNvbnRhaW5lciIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJub0lucHV0cyIsIiJdLFsxLCJzZWxmLW9wLWNvbnRhaW5lciJdLFsxLCJzZWxmLW9wLWhlYWRlciJdLFszLCJraW5kIiwib3BOYW1lIiwib3BEYXRhIiwib25PcE5hbWVDbGljayJdLFsiY2xhc3MiLCJjb25zdW1lcnMtY29udGFpbmVyIiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbIm5vQ29uc3VtZXJzIiwiIl0sWzEsImlucHV0cy1jb250YWluZXIiXSxbImNsYXNzIiwiaW5wdXQtb3Atc2VjdGlvbiIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImlucHV0LW9wLXNlY3Rpb24iXSxbMSwiaW5wdXQtc2xvdC1oZWFkZXIiXSxbMywia2luZCIsIm9wTmFtZSIsInNsb3QiLCJvcERhdGEiLCJvbk9wTmFtZUNsaWNrIl0sWzEsImlucHV0cy1jb250YWluZXIiLCJuby1pbnB1dHMtaW5kaWNhdG9yIl0sWzEsImNvbnN1bWVycy1jb250YWluZXIiXSxbImNsYXNzIiwic2xvdC1jb25zdW1lcnMtY29udGFpbmVyIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwic2xvdC1jb25zdW1lcnMtY29udGFpbmVyIl0sWzEsInNsb3QtY29uc3VtZXJzLWhlYWRlciJdLGUsWyJjbGFzcyIsImNvbnN1bWVyLXNlY3Rpb24iLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJjb25zdW1lci1zZWN0aW9uIl0sWzEsIm9wLWNvbnN1bWVycy1jb250YWluZXIiXSxyLFsxLCJvcC1pbmZvLW1pc3NpbmciXSxbMSwibm8tb3AtZm9jdXNlZCJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJihmKDAsImRpdiIpKDEsImRpdiIpLFQoMiwiR3JhcGggU3RydWN0dXJlIiksZygpLGYoMywiZGl2IiwwKSxTKDQsU3dlLDExLDcsImRpdiIsMSksZygpLFMoNSxFd2UsMiwwLCJuZy10ZW1wbGF0ZSIsbnVsbCwyLGp0KSxTKDcsVHdlLDIsMCwibmctdGVtcGxhdGUiLG51bGwsMyxqdCksZygpKSwyJmUpe2xldCByPXN0KDgpO3YoNCksYigibmdJZiIsbnVsbCE9aS5vcEluZm8pKCJuZ0lmRWxzZSIscil9fSxkZXBlbmRlbmNpZXM6W25uLE5lLHlZXSxzdHlsZXM6WydbX25naG9zdC0lQ09NUCVde292ZXJmbG93LXk6YXV0b30uY29uc3VtZXJzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206NXB4O292ZXJmbG93LXg6YXV0bzt3aGl0ZS1zcGFjZTpub3dyYXB9LmNvbnN1bWVyLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjVweCAwfS5ncmFwaC1zdHJ1Y3R1cmUtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtvdmVyZmxvdy15OmF1dG87d2hpdGUtc3BhY2U6bm93cmFwfS5pbnB1dHMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMik7bWFyZ2luLXRvcDo1cHg7b3ZlcmZsb3cteDphdXRvO3BhZGRpbmctYm90dG9tOjA7d2hpdGUtc3BhY2U6bm93cmFwfS5pbnB1dC1vcC1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEyKTtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6NXB4O3BhZGRpbmctYm90dG9tOjVweH0uaW5wdXQtc2xvdC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmZjA5OTttYXJnaW4tYm90dG9tOjVweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuaW5wdXQtc2xvdC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuaW5wdXQtc2xvdC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2U2NTEwMH0uaW5wdXQtdGVuc29yLW5hbWVbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwfS5uby1vcC1mb2N1c2VkW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpncmF5O2ZvbnQtZmFtaWx5OiJSb2JvdG8iLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4O3doaXRlLXNwYWNlOm5vcm1hbH0uc2VsZi1vcC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OmJvbGQ7bWFyZ2luLWJvdHRvbTo1cHh9LnNlbGYtb3AtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMik7cGFkZGluZy1ib3R0b206NXB4fS5zbG90LWNvbnN1bWVycy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgwLDAsMCwuMTIpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDo1cHg7cGFkZGluZy10b3A6NXB4O3ZlcnRpY2FsLWFsaWduOnRvcH0uc2xvdC1jb25zdW1lcnMtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXB9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxDWT0oKCk9PntjbGFzcyBue29uR3JhcGhPcE5hdmlnYXRlKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2goRmcoZSkpfWNvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmU9ZSx0aGlzLm9wSW5mbyQ9dGhpcy5zdG9yZS5waXBlKHVuKGROKSksdGhpcy5pbnB1dE9wcyQ9dGhpcy5zdG9yZS5waXBlKHVuKHVOKSksdGhpcy5jb25zdW1lck9wcyQ9dGhpcy5zdG9yZS5waXBlKHVuKHNZKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJ0Zi1kZWJ1Z2dlci12Mi1ncmFwaCJdXSxkZWNsczo0LHZhcnM6OSxjb25zdHM6W1szLCJvcEluZm8iLCJpbnB1dE9wcyIsImNvbnN1bWVyT3BzIiwib25HcmFwaE9wTmF2aWdhdGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImdyYXBoLWNvbXBvbmVudCIsMCksQSgib25HcmFwaE9wTmF2aWdhdGUiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uR3JhcGhPcE5hdmlnYXRlKG8pfSksVSgxLCJhc3luYyIpLFUoMiwiYXN5bmMiKSxVKDMsImFzeW5jIiksZygpKSwyJmUmJmIoIm9wSW5mbyIsRygxLDMsaS5vcEluZm8kKSkoImlucHV0T3BzIixHKDIsNSxpLmlucHV0T3BzJCkpKCJjb25zdW1lck9wcyIsRygzLDcsaS5jb25zdW1lck9wcyQpKX0sZGVwZW5kZW5jaWVzOlt4WSxjdF0sZW5jYXBzdWxhdGlvbjoyfSksbn0pKCksTVk9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1siaW5hY3RpdmUtY29tcG9uZW50Il1dLGRlY2xzOjU0LHZhcnM6MCxjb25zdHM6W1sxLCJjb250YWluZXIiXSxbMSwidGl0bGUiXSxbMSwiY29kZSJdLFsxLCJhcmciXSxbMSwiZXhoaWJpdHMtY29udGFpbmVyIl0sWzEsImV4aGliaXQiXSxbMSwic2NyZWVuc2hvdCJdLFsic3JjIiwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFUWUFBQUUyQ0FZQUFBRHJ2TDZwQUFBb3lIcFVXSFJTWVhjZ2NISnZabWxzWlNCMGVYQmxJR1Y0YVdZQUFIamFyWnhwZGh5NWNvWC9ZeFZlQXVaaE9SZ0M1M2dIWHI2L2kySnJlbXFybisxV2k2U0t4VXdrRUhHSFFJRE8vdXMvci9zUC9odXRaWmRMNjNYVTZ2a3ZqenppNUl2dVAvK045ekg0L0Q2Ky8xTDkraXI4L0xyNzlvM0k1NlIzZnI3UjV1ZHptTHhldnYvQVgvY0k2K2ZYWGYvNlR1eGZGL3I2QmhmK2pFQjMxdGZueDBIeWV2eThIdkxYaFlaOXZxaWp0eCtIdXI0dXRML2UrSWJ5OVRkL0c5Ym5rLzd0Zm5xaE1VdW5jS01VbzZXUS9QdVlQeU5JbjcrVHYrMTlqTHd2OE5wTUtRWDMrZlIxTVNia3A4Zjc2N1AzUDA3UVQ1UDgxMWZ1MTluLzl0VXZreC9uMSt2cGw3bXNYM1BrNisrL0Vjb3ZyNmR2dDRrL2hjTzNFY1dmdjNGN3pQL3lPRjkvN3ozOVh2czgzY3lWR2ExZkVmVW0rNjhaMGhzWFU1N2VqMVgrTlA0V3ZtN3Z6K0JQOTlOdmx2ejQ3UmQvZGhnaHNpclhoUnhPbU9FR2U1OTMyQXd4UjR1Tnp6SHVtTjVyUGJVNDRrNWFwNncvNGNhV1JqcXBzMjQ3bW1QTmNvcmZ4aExlZmNlNzN3NmRPNS9BVzJQZ1lscnF2LzNqL3Fkdi9qdC8zTDFiVXhSOC96WlhqQ3NxcmhtR1ZrNGZlUmRMRU83WHVwVTN3WC85K1ZwKy8wUDhFS3FzWUhuVDNIbkE2ZGZuRXF1RTc3R1Yzam9uM2xmNC9Gbmo0TnI1dWdCVHhMMExnd21KRmZBMXBCSnE4QzNHRmdMejJGbWd5Y2hqeW5HeEFxR1VlQmhrekNuVjZGcnNVZmZtWjFwNDc0MGwxcWlYd1NZV29xUktiblZXYUxKWU9SZmlwK1ZPRE0yU1NpNmwxTkpLZDJXVVdWUE50ZFJhV3hYSXpaWmFicVhWMWxwdm84MmVldTZsMTk1Njc2UFBFVWNDQTh1b280MCt4cGd6dXNtTkp0ZWF2SC95eW9vcnJiektxcXV0dnNhYW0vRFplWmRkZDl0OWp6MVBQT2tBRTZlZWR2b1paMXB3QmxKWXRtTFZtblViTmkreGR0UE50OXg2MisxMzNQbHQxYjVXOVYvKy9CdXJGcjVXTGI2VjB2dmF0MVhqVmRmYVg1Y0lncE9pTldQRllnNnNlTk1LRU5CUmErWjd5RGxxNWJSbWZrU1Nva1FHV2JRMjdnU3RHRXVZTGNSeXc3ZTErNzV5LzJqZFhPbi9hTjNpbjFiT2FlbitQMWJPc1hUL3VtNi9XYlVqbnR0dnhUNVpxRG4xaWV5N1paeTQzSTV4MVRMbnRKbGFTMlh1RlhNTGFaZVFXejIxcm5xQms5dlBMdDNIeHJlNlo1WVBuTU1rSEw5eVBhSG9RcjJtZk9QeEUzaGZwZDAxMDJGcGs1NnlNNDY5VHI2NTMxVVlMWmNHLzg0OE83UmozTFNzdUZkWTV0bzBuaXVsZlhua2x2SStucVFzQndCZGZXOG1kZDhXb20rc1pPbzk1NTcrNG9Za0tMOWxualpqSnlENU9IVnptNld1V2M1Y1paZVRKeW52emZPNDJZYzZSbzhSclNHU1BubE1TMjNuY1FtMWZJL0N4YVVlVGkzd2Rkc2d3dHAzN2JwdXlNWGFZYkpydjFZQTd1WFRhY2JUNWREYTNLekRDbTB5ZjVVeE0zM2I1UWs5aEYxbjRhWjNTUlNFczI4ZnpXSTZWbWVJeVd4czQxcStyaDdXT0MwYVZ6RGl1Sy9HUEJFUXdTbUpDT24reEVSYVk5N00wRWJidmh6aXRuYXlvTEdFUE1Kc3UxcGlrUWZnTmN0bDZYc0kxdGZObGgxejNHOG9kcEtGd2NNaHV5NlA0bEVUUU9IdU00Mnk3QjdOU0NJT1Q3cDlYeVkvSE9YMlFpSzFmUlp6MUhZRU9YaVlma3JOK2FSbHUvaFZmUitSbUdSdHlUSTduWm1vaWNnNy91WnlEOEc5RHprNkVvTm9zYUdQYWd4NVpSS05jWVo4V3puN2lBdlA5YlBaS0dZa0p2Y05QTkQxblljK1BDUndQWTFReUhEdGF0WGM2clhDeEpkSmJaT1JNaGVWZExCK2EwdVJteElSaGNsazJPZTBib2N3N2l5RUorWnpWTUR5Z2YrZHhOMlllc3Jyci9YVHlOaTlXcG41OU0wMDNXT05CU1lWRXZkVjZCYXVIUFpLREROV0d4VllLYmU0V0VjU2NHdytFNkVreHNuSjBCTTl0QktZdDZBYlZ6MU9HZ3VnSWZmdkhFVDZKRm9MNHdRY3ptQ3lLOHpXU0tNYWh3Zkh5R0dHa3FZR0VOWUJUbk9Eak10Y1p4RlkyYllWY0FPUUkySWh0N3VOcFNSRjlrUkNkQ1lZUE9Uckd5QS9WcmN1WW1IY1hhK0ZuUmx5T1luWnRWRFMzandPb2RwdFNmQWt3VTh5Tnk2WjFYakFLYUJZdVord2hiVWtGQWhhQS9SSkZ2bytRUVZiQXpDdWJTY0ZveWRrSnBOL2JpSG1ISUhPdHd1aHRuZE9lMG1Fd1FmTEc4aFIwd2dsS3hSSjIySnhFMUNEZk40VGVyZGJ3RURHeVBWV2REc3RBR08yQzhMYjZDL21SZ1BMbUpoNGdLcld6eVNtZ2Y0RkZsZndqNWNKVUZEa0trd09rWFBuY1kxWkpnS1BFVmFnRzZuUW9KU0lka3N4ZDhWUU8xbXkrUzRrbVMyRnhCWUVWTll1bHlRa1k1RlEvaUVNYjZjUWp1T3NreEppbEZnRE1venc4S1lCR1ZFNlJoaXgxaEk5dDI5a1h5ZEtZanl6TGxZaEkydVl5cEdDZ2VNMUFYZmVHeUEwODlPa3FKdE1lbWYwaTF3SE1GNitmMjRrSk1oRmhFWFFpamdDSGJFTzVCdjh1Qy81SW1JbEJnT01DbW9DZzJQN1RhaUIzQUVBQlZ0Um1KTUZKaVN6cUdIQUthN3VBVU9QQnBwMEJtU1E0Z1VOSVJOZllQMUZWTnpjL0Q0QWQwR2VvbzByVXUwQ1lSQUJUeXFXdTJrNFVCVHR0WGhXSXdSTnJBc3hEakozcmQxWDdjSUtoV3VUS1NBU2VTQm1IMGlZeXRXTnNBYWhocm1qbFNXVldDTHoyekpFT3NZOUZRNnJ3dmJlYlY4aWtFdWtzbGx5TE5DTnN6YUE2S1lKM3kyTEFjeTJ1UmcweVpoV211aVV4aFVFQUxWWklsUVBjTVRWR3pSUHN2TG9teENjRnhBYXJXUkN3dGExQ0VtNlRQZ1F1eGkvamE2ditBQWVHc1FpcXcxOEl0cFlSMEplT0N3V0FVbExZdXIyS3NNSTBvNG5JTlhONVRTWStoeFo5WFA1RnBkY0NsZWdzRVBIWUdKaDRVajJVbFlnL05ybEduTXNKbU1qVkxoWllFWFRsbUlERlZtV3hKU2pvekFPeEJjcTJZUGxVVTQzTjVIVS9ZYUZ2Ly9zOUVVR3Rrc21hcm9BZE84TEJaRUVaeUlsZGtKUTlUQnJSUjhjVXJiSVhvTVBNazNNU2dPelpvRkY3QklYRnpGWUdxTlpyQng2eUxOZWdFc2luL3FHdUlLdWpoelBIVG15UkhDRUJybG1FalI4ZTlUbGtPZG5sYXRaUGF1bnd3ZmpuZHc4STFvV2RBYjdveU1rNDlCZXFYSFBHTWxsRW1PVVJzQU1ORXczNXFoQW53QnlPY2c4a0RPVG0ydjRZd1VoZ0tISUJLVUZwQ0RQQy9xeHRQNTZVR1JzWUw4RkNROGdMVG1JbnA4eEtaQXVkTUNJOHNPWGZBT29BTGs4RGcrVnpqYVdwMHBIbkFlUjZDbG01YVRaaTVYVEY5bS96MTdFSjFtTWNvbDVBeDFNSmVBT3djcTk0QjJSUFFnSlFoalVIdWdWcEJ5TWRBVzRBR1dVT0hQdGpnSTgvL0t5WG0zS0F3eHcyUU5RUWhxUU44RlNYL25vRWJHVzVXQTkwYTdNclhjTFcyVm9TaUl5Q2VrdnJIK1R4S29FemcxaTEwWlcyRHBHOGd6WWQzZDRJMjhtZ1hVaGNxUmRqME5paVhlUUJtUStTNW9CcTFTUUNQUEZ2TUlFekc1Rm9yU1IrSWhHNUJ3aU95dG1FN0NBcko4N09UaUlOWVJseEs5ejM1bVk5N29XSWdmb1prYWdNUzdNNElBSmNDNGRucG1CY291TDZZZEh0dGVrdUNCc3F1ZUFKT1EycXlueERIc3N6QURZVEhEQkJ3aG5IcFV2Q0ljTm1QWUo4MkVJZ2hJelNOd3ZoNjIvcUZzd2hhZVRrQ0kwWUN4U0hXeVgrcjlEVG1LQlRqMGI4RUE0cys0c0N4K2hjNStSYVh2RElvaGhZN3ExNUh4ajRKcEtZV2FHeVVFVXlEcXNSa3gxNjUzRnVNSVd4WFZGekVHWkNJMlRKWGhkUWh6QVc0Q3B1QUh5WlJSb05BWUwvUmdQMjVFUmdYa284R2ZlaW0rVVEwZkFMY0tTak9DQlFiTHQ5bjdnYXZDVHNmRGNualMxOUFaVmlIbk1Gb01mOHhSQkdxZzVHQkRmZytsNncwMUp3bTcwdTF0Z1dGV2dYQ1J6SnYyUk5RMkdKOVluaUxtdzUwUnJKa2lNeVFWcDBvSktrVFFxc3MwbkpvWW0zQlVGL0VDOTZNWUVTVU5HODB6eHpSREFqR3RvT0x1cWRWK0UyRWxkNm9INUtLclRsZkQxMllWZlh2ajFNODhCa1pzbkNsanl4bUl5VUZLM3l0b05MUThxc1UrRTFzQjRJRmcydWg4K1JCSWhEOGtlUkRodndTMHVGQVQyVSthcGlxOE5vMWdEVmdYcnBlVURNMkZJYzBDZXg5QzBwK1BCTDZJUlRhNE0rZDJyS3lkRXlueGdqUjBDYmtFYU1BZFZ5d3VKckx4ZHM0N3N4WHppVWdsbUZuNGx3Qms3QWRIamFKc1BiUzJ1d0dBTnhvQmUwYUdRRjdCR0hIa1VvaWN4VHdmUlZFRUJBSW9pdjRwRmlmRHRLdzRuNFMwR0U5d0pkVmdSYkR0bnM4QjRpYVRLUUhNWEpZSVc2dklzVEs3aGl1RENuUUZKSmd5OWg3Y0dTMEc1eEZ2SnZxYUVoM0ltU2JkSW1hcVVhTTF4MzRyY1FQZmlJOUNIdlVhRmp3M21zaEtBZ3hoSDVzSE9BRGswRUZQQXFSNVZoZGZYMHZKeFpnZU1FaTZicVNNZkVTOWR3N0ViNUNNbFI3a2Q3RFBJVjdJQkc3dEVDWmZ3R2cwRkhBY1RmZ2pBN2JBK3Q2Sk1JNHh0aytuRVRseS9JSTJEbDAxWk1yMFU0blVEblNqOVBVSDlLamtQOVZ3RUppNWhnRytPdDZBWUt2aUJiQ0RNTXRRbWRzemt1eW90ZCtFdnNYNVFNSW1QNmlYNFdaS085UWVsTzJBWjhUdTVPR3c1VUF5aCtRWlJqZ3VYYmlCTmRFbCtHdzZLQzQxRWttOWlPWkE4MWE5UjBaeTRMaWhBaFcxV0ZvSWtzUnZFK3lpMXdWa3pOMlJqQnQrd3RnU1NLZ3U2RzNHeUFlTzdoQ2xIVm9oYm9ZYWliSkJOUndBMjVvN2NSbGVTdTFjMmhjVmxaZ0ZnMXAweG1PUzJuWndOYWdHSVdCWFFFaVdGWTY3Z3NETFpUVEM4TlZWQnlIOXVMV0YzeUh3TWZWUmQxMGZJbERCREJhYVM1bEJRL2U3bXpqUTJ3TFpDMTc4WjJ6LytydnNmdm8zZ0haaTN5ZFJVS0xzMlNSQ01qT0ZFdkNwRHlNazRUd0R6ZW5UbzRIdDV0QlY1TnVnYVROOThaNG0yOFlmcENXSnNmODhrZlNqSTZnVCtJa1RDU0lBeXVyYnNCdGc1ZURObC9HVnR3V3ExRFpWMWdnK2RqaEN6d3p5cE5vTjBRYjUrZ0xYVXZ2UVYyZ1gyUlZrdGVVeUVWcG1xUW52Qko4K0dpY2QrNFR3YnVuUVQyd0Q1Qld0eVJBOE5WQnZQUXlEakk5QWFyOGFBUldBc2p0eHZDRVY0RUcvanNSRkhRa1FDRStlaDBWL0JLa2xEWEJYUU1PRlhVVnBnRm1TbllrWnZxbTc4YmtTQWRFU25JNlRKeGJoTlBuTGpwZzJzQkpjYk1tZzlNMDlpTnp5MjdjQkZIWFpVOGdSOXgzU3Jhc0VpQmxid3hTWDRKVzBYa0Nua2VJbUl4YkxGSCtURTVDbVpLV1ZGR3NjamozRXU0QWdESVlMUjJDVU9wQS9LREsyTFl1WTlleXF1cXkzNDRGNUxCOE9sUzd5UGNXTEk3aTFFZGdHMWZsVnJPS21Hak84cFFXbXYybmlJTnhneDQ3VFFRd3Z6WFB3d0g2SlFpb3M0M0IrNCtEN2dCUEJJNlhOUnJvQ0lHZktvcVJJY2hFZzRpUUJoL1lKbG5QVEtFQmxTQ0hZREtoeGtrb1RHajNoT3dXeVJTd2d6M204NVNCa2ZDRkFlaFZzMnBvbVhxa3o5UUVBMStBSUtCZnpOWGNnY2pUa2hNcThLQ240a2toaEFScFhyRFBDOHlCeTh4QUZNWkJiT1pKY3FmNGR3dzVpaEN0RWhKQzN4Q1FaUFJvdmI1MmFBT3ZmbjdmQkswVmNCalZGd1BKMm5JdzVzVjdRWERFSkFFRUVvdmdoeTRtbU5NYkpTNGFyWVNycXEvbnNtUzRYNWd4OExlbjZBSDd0TUJXYmdzZmRXOVJQa2hza05rTHc1WXRjQkpjeTJhcXdOVDBHdUhkWURwVFZ4bXN3ZkFGUUIrb2t4SVFMdzQ3VjI4Sk0xeERHZWNGRjNHZXJPeWNXQUJPTXVpR2dFRUtwcXlKbVFhd05LNlVPS0dtSWpFcmFQZUU5R3ZiaENYVGwzTXBKMU5JbmZpb2hBMnkxa1BLNFIrWUlNNDUxUVR1WGZDSE9WRVpKa1BKUFVXZElMTUdSQnJIeXI3QVY2SFU2NHJUcFpLbXd2VkhNU2JIZXhlZ3ViblVPdlNPbkV4ekVRWXl0NjhaTEhDU0FMaVcrQ0JBVk1qc1labnM2V2pidklBVU1XY0dNeXF3a0hrUWdlRWlxcXZmQ293UGlSZWNKVGRlVWJnZ0xpT29RSXlTM1RWRjNRczdBaXZqT2ZzOS9Tb20yNEMwc2FJWWVMb216blZVSEhFRGt6NXF4NitleDVBeGVxUS9oWmdaRnd0TmtoK2NnNlRHTnRUU1ZmOE55L0VoMm9nK2hEUGIrcUp2WW5RTXZHY3JFRVE3VjRMeWU5dGh1NGJweER3QTJnVlZCQlhwVm5Ndi9qSjFYckI4MkRaeUZJWGkvQmVCTHVCVFdIWXEvSWVpUVVvd0w4eGRqbnFKeUFkQXRGK1FGUXNrWmpTQ1ZEclVpM2hIS3pESUZnc2p6Q284cndrejNqcXRUSHVGM0RpV09FOGF4WUh1eW9TSUpVVkhYNTdyVkFRNjM5VUIxc1RPdm9TRGpHQms3KzY0dk50VTgwZ0kySEd1aEF4TnJWWnNFSjBtUE1JQkdLQ0d4eXBmZGdMUzdQdFVPZHFnaHB4OFpqb1ZSM04yVGhySzVDWStPQkNMbzF2eS8xUlNFeURja1crRGZqQis5SWpmakFsUzlCdWw0RW5ieGk1U0dZUXhlRzk3VytxQ3lXOXZhRWtyKzkrRTgvL2UxSEJidnU2NmRiVEtvK0JGUnhyZHR2WkJCOHB2SU1NWWs2UkdhR3ErMmRGanNxVG9WbnJJK3NYUmZWMTRpRkdCRnpxdDBlNmROS2x0aldyb0JDOEVyTkdRQnp1RHMwYjNEMDFnNUVPcFhwcXFyTjRMUXJWM2ZpQ29LaW8zdWdSa2dVMFRvQWM5SXJSQkZac2l6UGd6TVc4eFRWS3JBMmtJNThIc2E2RTVrV3Iwc0pzQWhycUJvQ3Ywa2hKSFNXYW9tL0cxbDRTdlBvVmNVSldYdUZKZ0VZR2ZCVXhNWmZraCtmbThZejBvaDRMQWhjb2tKSlBXbVRFUEN6MTI2cWFvM1pneWFFUUJ5d3pDSUVuZmEydDBwUjhBeWFQTDNTa1hReWNycVhteUtZbHlPd3dwZm9ZNzVHT2FKQW1ERVl2Z0ZkTHlTdXc5NUZXRUZWdGd5S3hhekJMUFQ4bG1iRTZTSHJTMGhlVlhTZ0hZbWVzUVlySWFqSjV2RllWc2JML1k2RVlacDR4dWFLZVJFbWFDWkJueWw4OEdha1l6RHVjODZJOFBDQVhCR1ZibmhtS2lnOXF4eXpuQm1BUEJIanFGa1Rtc0I1VnNpSjF5UXlaY1poT1NnVEVJQVd5SFFWZnhvd3drd0RXRUEwc3U0bXdJWFVUSFBDbW9DdHFyUmtrcmdLTERJNUdXQVR4c3RQaHFPWFZaQkM3VGlzUVlCK042a0VaUnRMS2hSRVJxTy9Gb01sZ1FFOG5wWHd3L3N4TmlnUTlxNHF5dXdsbUVZbVpubVJIc2w5TWtkQ1MrVVZ4TDMyRXU2K01DTDNiQ1FISVFqMVFhWDRoQTV1cEpMeFVFSGlGNGF1ekswMjZneEZ6aktEZzdXY2pETW40N1JaaHRzayt2RjNDUDJMNWdDcDRaMmxuUWswSGlGZk1URGNxNG9xWGNaMHF1d252UUk5Vk5nWGxrbGh5NkZjWkRPRyt3NmJweUQvc0xwSG13L1l5Q0NyMjdZMitIWlAreUxZSTBNSHVDZGloQXRnRXduWkNWNVd4QWhCS0tPWENwRmFZb0ZpWDNLUWl1US9PWUtlWlFXUVBPcEFXTng4NVl2YjN1bzVXTklUZzBGNm1aSXdpcW8xaFFnSlN4bU50MEpXRnRFdmNoVFdrclB5aTF3RDFIZThlbU5FUm5WdDIxN3BxNGtNWmg0WUVyb2ZoQnlsOTZaS1ZkY21NaElJNVEwcUk1ejh3V0E0ZVY2MEM3T1o0TW9yelVUS3pqdUp5NTJhc09ZRTdSd2lSclRGRkFMRUtKbGVWVXlPamNXZlJDWk1TdzZTTVFQZ0RGKzdjbUhQWDNjYy92elovYzAzWG1IU0U1dy9TTjJ2Y3VVdnI2cEhqQ2R5cWt5a2xMQ1djMnpzWGNLR0k3bmdRcEFEYTNFYUdOcVRnbEpJQXAvQXNRTk5VbVBUdHIreEZqdys4dmdRRlIxUWdOR3k3R1lDUWxSZ3kwd1NycCs4Z2VJSUREeXNvVHAyMkU4Y1cwZmpzYzRORUc1NGZUZmxXclZuSmpkVnREdGREN0pMR2FpRXZkNnlqSnNCN0ppaHNIYnZHZE9qS2hta3N5Q1RLTlUrSEhTdjRtUXd3R20rVFgreXRXRWpOaG1Kb29GeDFnczFmRkdUN3VIbmtOZkp3M0tkSUdWY21EMHVoTWJjSWloTWlCbldhOG1LU3FXTnl1T0JtVmZLSEIyRE5zWlR0eldJa1JyWDFQNEt1S3hTTGZlT3JrM3lHV21PMzFQeGtmalJOaHpENXo0Qkx3cG1JenUxVmNmUEFIMnFEUU5IUU5sUnV3eFFjM0tKSHFnRmNlR2xxdDJVM2hsd1dERkJmSGhHMUlnSzl5U2p0T3diQWdtT2gyTTJVTHNrTEZRSmlGL0ZPYmwybVZUVUlZemJ4dUV5VExOWHBxUEZWSkFQU3U1VzRPQmxxcEtSRmRyU2FkcEpDVWM0Z2lpNzNTbkFNTUNHeHNHTzUxSzg0YW9YRDhmejUzYXM3UEhJU0Z4WVZGQlNGV2hGbmh0R3haQm1NZ1c4ZCtpSmdVMEdCNEhhdXJGZkFBUE1wbklmUXMyUGlYc2FVQWJVckZLQXFjaFVieGwzZWhVM1ZBdzFkTHNqRU10WlNFVWlKK01TeHpiOE9qUFVDSVBKZEdPd3lwK0tsWHgyZjNyRCs1emJVMEUvRVZ6OCtWWDNlVG1yQ3dFMUxNd0hTR1MzZVZrODhzYzg0L01iRWRyMGRMNW9pZUFlaUpuYlNacFRtU0JBaUh5cFEvVW1WbzJsZWMwT3NvbWdjdVN4UVM0aXZpZ1VIU3EvQmsvVVJ1SVpBOENpd1FHbWJaRUloVm81b2x5dXQwbHNFQkJYU0pUV3lXMHJ0OFFjVGZTemJhZlMxbEZUeVdpVmNGUlJDVzdXUHVrY1FsR1lrclFQNUV3STZQa0JBSWoxNEdtR2hqeEFTRU91Q3pFS3dqNWZqUXJLaFFraTZrMGJoVHcvZEE2cFFKdkVnOTVUQ1Q2VU5NK0xXVXJ5SEtqL2hoUW5UUnpBak9KQ1pHUVlhNm1LZkRHSkFCTjZmV3RQRWZPOGt1MkNMa0U5TU9jZ1E1QnBTVlBrV0RFTHJZNnR6UU95NUx5WjU1SDl2NC9XbjgvdS80clduK2pRaFY2QUlONWVpQkQ3djRtbURmZWVFYkJ2MkJZK2EvRGFHcG96djY0ZWRLNTMwaGp3TjRZbUxNZ1dhWXBya08vcnVKVlUrdXpwWksrZXlibThkdW15OWhDS1pEbzZuaWtoNVRyNndxbkpETmdadUJUMVRYalY3R0FYZFdBWXd2dW8xWURBQXluNHVZbG5EYjFMM2xRVllWR0MvYUliTnhZQzJMUFgrWUF4UktQYVJlMGxoTGxLdjlNRFJoNlUyRVc5VW9BQXh1eXFrMkdzMGh1Mlo5WlNGcE5SMFVjc09KTVdzV1RBd2xqTVFGTjdCUkorcVdta3k2V2lBZmpPUGdUNHhBVm0rQm9JeG9iaDQ5Q1RDUHZ1d0JjR3B4M3FITHN1THEvWjFRZ0ptdFhOY3NGYURYdkthbkFYVlJYVTB6bTFTZEJVNXNYVEkwbVN3ektqaDAvdFhiMDZuVkRFdHZMb1VNWlJGWWhIcjFlbHZmREs0dkJ2VUwrTmpPd1psOGxFQTZwTHhtSEk3OXUyZXdWeCtiSmpyM3F2SFd2RUlhbEw4aUI5RzFCdnRjYnBWUWRmb0FKK0FmcjdDa0Qzdnc3bG55TllZdlEzSWZ4THhlMkhFUDRSNElnVE1MSWhYbXRSaTE2TytHUDhlQ3lMOWNaS1Y1UXZENDlWcTdhckhEaUMwQlBCWHFVY25FQkNBN0lBMEZtTVdBaHRsM09oczJ0bFBWdkhmS3BYRWdFYXVqb3NKcm9ZMHVFMlBWZVZabUJORUFqRVMwdVhaQVdYQ2hzcDVSclVNdHp4OUFvZG1DaE9ST1lHYUk4d1Y5eFZRR0IrSkRlcC9KaXZqRmhxVE1DRGZSekgzUklXTXoyQ0hLZ1lUUVc4aFRoT0ZRVzBzR1RvRHoreHlsME5mYUJjVWsrYi9pNFFEbjdVWmtkaE5SSFNZemdWR0Rmeit2YmEwVWZoVTZYRURCYis3OXB6ajNIWHJkUlZxVmNEa0xTZTRoNmlHckV3d0lEQVpNUFBVSHA3WlNwOFJZalNYZ0psOGxON250eWxvNUgwczRDOHVxbndmSmdXRmF0dHFQMk5WR3BnZG42ZFl2QXl3a3I5a3RxM1N5Sm5pQU9Sb0oyREE5MWpRZkVUSktSeVFyWTlZNzE0WGxENFlwM2RaTFZtdW42cGxRMmxzeFR6MVlNRzZyVWlzQzdTWHAxN3ZxdXZpMUVBYVVubVVBb0d4YzZUcy9MWmVRekszbFBjYnpxM0VDZm1GTy9lRmsvelF3cjhLY0xkUDAyQlAyV0ErNjY1SnpGQWtCYjFkQmdxR1hhQ3R2ZEQ5TFl3SE5BaUdNZUhvdWJWWDZEZC9RdTJBM1NZWmdUMHh1Z0ZtZTBBNmswWUwycm5IaVNESDhwU0dHc24vVldkbVdXbk1pZ3NnRGd2U2QyQ1c1b1dUUXhvRXZwRkVCZEdaT0g1MzJRRU1vRGZWSG9sSnF3a05WV24xWWREemtFcEV2LzFxcHplRVlKamFkZGhFcG5WdDZGT3kycTNSSVhjQVJtbjlvNkkyeUVzWjl5djU4Z1ZiUS9rR2xscGhuWXpTWktsdTVjaEdncjNLNFhuQVJ6NUJtRzZNdGsyY05Zd2lYWlF5QWk4T0NEZ3VBcEVQdFJPY05ET2ZUTFJST0JjK0xySURYaUNKSDBhZEhMZ3pqQ1phckMvZzhyMVhCZ3NaZ3hqUG01bjlmaU5PekxlRDhIRGk2OWZTNVZFeUdFOHo0cDFxUW5CMzlYd2VSUExJUUhQOGhYYjBKMTZOUndqVi9GdG1rcHBpSDFTS2wzMWNRSHZ4eWNtekFoNEZXYmc0bnlueWc3RStWQmhiRFFQd2krR2I4QUlwa2ZvcmpJRDZRMVdvYXlERGhQY1h0UkFoc0kyNld2dHA1ZFpBMDRWRmNlanFYOXBrQ3BxMDU3TlpkYnU5bGZ4dnIzSkRLc1hpSndwYWdHTTJpVkkya0pLNW9XUWg0ZjA4QTVvQmFXcENXUEM2QUNucXdoVFZvL3BobU1Cd1NVZHBkTTFVVHZjWGZYNkJvWXZoQ1NlQW9TZWMzejIzSHRWblhSMXRDcHI0bkQwbURVY0VFYTc0dFhCMWpUN3Q0MzRmL3paL2MwMy9uRUhRUGNSVlJFV1RLdWU4Q0hMa3JTQjFaQkJWYVVpZ0swQUtPUjQrb1doZ0RyZDhMRko3RXhmcUFOWm8yL3FjQW5DeXF1aUZyMmFraEhLUkhMeWFpbFI0MnBHamVGYU1IZG9LQndkWWw0ZEhPRkQ3VGd0Sis5Y0IrSGl0Vm1POThSMnQvcXFWTWdQTld6TzlieDhYZ2dSd2NMeE9EYkFDcDkva0NBNGNpSTU0aUN6Zi80WWVKcnFBdDdJNGw3VTF4WXlENnYrWDNnTGd0S21xVFFMa1NvMkpaRUo4UzY2emt3WjVsaW5uMWo4cmtNNE5ZbFFoN1lsVmluaSs1cTM2cDJLZnZTYVFmYmhxS3JZeUo1ZHkyY1hJZGZrdUVtQlVQdkNlTXZLWFczWXNCTFlmdVk5SUhhT091eWdBalhMUVpseG4wL0hGM0NHY2lkLzhUelp1Mnp3NUZveUorcmdYYzE0WjFRNXdSNnA2RmpLVklzaGRwODFTRExDWktHRnZYYnpReTF6K0V1Zm5IeWtSL2g5K3I5UldsbU44aWdPaTFQWlJxWjNiYXRVQmM0ZUxLaTZMMEUxa2tBZE85QVpDQnUzazlLTnpXdDdxNmszbDh4Z210V2xIZFF1aHVPNEFXUzhJbUlzanFtK0RrSGtyRnVnVEJlYTB6ZWJ6dmZYTFhLMGN1b05xLzlXWW56LzdQNXZpZkU5TDl5M3hBajRST1EvRGltRG1BaVRFVjRESWw2M3YrUkltREg1WmRPUk1lU1pybmVlMTlNL25JREFOcjREYVFMOXExdU1EQXRMNHFsK2RoamVQOFJyQm5JMlhDQ3oxaVFMcHRwTWtDREVmbk5lTGVzSXlzSnRPOXgyY1l4Uk85SE1jbzNxdGNjcTQzNGFjWVBnWW1JRFpCUUdMTUZkV1NodHYrQ0VBVFo3SGVuWUdwQmQ1MTlBYVJSOEt3akRZUXVGQWZibWdsR0c3NU8wcTA0OHFPOXlxWFlHR3Vzd3lYUlh4MFJJdTZCR1dmamJBcUY4Y01RV2tBVHE0OWV1ZG9aQnNUUGNQaHZ1TkpQVUdWKzd0V0hwcHpiK0hlN0U5NW5nT1NRRG8yd3I5NzUwS0lYb1FkZGxGVVJpYndmazNXQnBxcXFXb1Vrd01CTll6VUdsaU5JY3p3QnJBTXVnTXpsTnRBTFM2cEQxS3VZYTFOSktVSEo1Yk5aTjRENUtOdXl0WHNRYk1wT2cweCtZbW1pZWFiN3Z1Q1QycFRJejRHTUptRzNFNHRYMlBNdDVYdTh6Q1NpTmhzcjBPZ1QwTm52RkVVZ0E1c2hVcEIzcTBvd2E1NnZpcXZWbEY1M0NQRnNOU2lUTStuREhVQ0VyVkpSbkp3cXpDdXIrMVYyY0hldG9nLzE2Q1pva210cXIwaXovcUl6ei9iUDdUWDNuZDlXZEgxOTdwUjNNSmRhdTdwWFJhWUFKeTcrQlhpa1ZNbWZzakFpMVFmd1VzbVpvbjlsT1FIR29LRmkwcDNMUVlIVjRTZTNTMUJhcm5YZnN0QXZxd2tmL3FscXBYaS9rSWRaYXh1WU1zU2JYQng1bTBlR0tpVUFDSmtrVVFGejFRM0JPTFpPcS9qZ1NwV24vSE5xV0pBdmlBTFJVbFprWWFtUUYvZFdvUkZqaFBHVFIxTGFoUmxrTkhUV0Zaamp6SEFjVGxZNUdyVmpwUnBDQ20rUjRtN2U5MHc3Vkp4ekc5OUVrWlE5c0ZZL0NwTlNtUFdsWkJMZGhrS3J4b1AzOThBZGlxbm9XSzd5WllQSGFud3NKVk9ISGRCZjFJdllnWnd1blFhMkQvSzFIVUp2VTI1dkdheWwvYmJ4RFhiaDdhWWNReUZpWWtLRjJPZ0ZXclhKalRDTmNxNjNScXRhblR2UVdad3c4b3FEbTYrRFI5Z1N1NFNKOEhtVGhvZFlOUVdZb1BkakdDWllMQ0lKQW9ha3lUU1pLbTNxbmJVMFVkbVpBNnRBTjZqNWcrUkVRR1JOSEhNVStJQ3BtVDczdGlHcXp0cU8yTjlvcFVYS1BVSWFlZFg0dHFXVzlkWjlmNHgzcUtlcmZDWnlRNzBGZ0NDM1JtRnhDeDRWVy81eXAxbEZ3U1Voc0kvYldTU1lqbnRYcGkreWRiK1dtOW02VXpGV1ZWUndMTWhuUWp4ay9nSEpYR3l5cE91L0NIRUpJa3UvZGFZOExUWUdzMW9iSzdDM3F6SnR3ajF6Z3ZlMGxLNTRuZ1FVNm1ZY1c2dGxYblN3ZFBJZk9rTEZzSHU0L0Z6T29HckpPd09tSVUxRUw2NmhLNDZQakJkdFFRSFVQMU0zU3h1THJuK1NCbm9FSWtsVEFpc3NxSGswMVBZTVcwdU9NQ1FPcHBuVWdub2pCWUNObW9UM2VwZlhzQzdCY0c1Vm16Qjc0Q0FDR0Zwd0twZHlmaHdyYTJsSEpDOEdFNmxWanY0NVlScEQxblJscDBrb3czSXJxUWR3cU1QU2tZelh2b0k1TEJEcldnMkFHakRUUUZkV3NpWXdqdTNsc3hXc2lLRkYraGJRaGp6K3RuQmVWM2xFUTI3VHBoUlZkcWF0QndWVG9najJLOWlCMStvL2swNm15cmhhY1B4dzZlSi9kcnkvTTlMdWQyL0UzcjdPZXFKdUdsM09laHdHc1ZJWll0aEljcWJOaHBZeWtVd0ZFWEs1cUdBeXFkTUUzcGlOanFGQjd1L05xTURiWkJ2eGE4Tk5EMTd2TC9jazZNamoxT0VpQmJqVm9TK3NPblk5VXBJV0c2RDFGaUtCK1ZBbEV3cHAvZEtkOEpXWWovT0VKTGtsVG5lbkQwbGlvUjNaSnZXMUJGcStUL3dGS1U2cGxqQmp5QkJ0RTdzdnZ1bFdJYS9ScG04QU5ZVUZXdmdYZEVwa1o4RUM4SWdrbTRwVU1XOEd2cmpPTVlhc3JDQURRMFNBQUQzMkViaHpLcGw1UVFLQW5qMDBFR0dNeDlWdXk2T3Ixd0hsbEhXdTl3TjZWS3U5bElLWHFhK1VOd0pSalBkU1RyejZucmEwUzFVRUtRT1Y1WjUvb1JCRFFncDdneU5vaU9XV2xwb1MycFdoYkpZc09RanU4YnFoZGxuT2hYOHRXUjdqc3ZGdzdzNnp6NklTMkNGdzFBZWd2cVdhVFg2ZFJ3QktpME9mcmlZaFp2ZmxKaGpBeHYxcTJPc0xNVjgzbXI5T0NwQVFtY3RvZEpVVGViUjFuSkttNmpuUXd6NkJXeXViVWRyaW5BcWRtZ0hyeCtKTWxCWnNnVi9XQTRMcTNmUHhsRkNTY2VvSjdmM1FFWi9LZHFqT1hJenBDVTZrNm5ncHJhalNLa24yV2Rmb0wycGl2c3E1TmcyWmJBZ3ozUEpwa3ErcUZFYVFsNmRVUFNVNHY5VWxqL09QVjRReEYvbFRmb2piODBIdUd4b01UWm9TcEoyK3BZSGw4aldGTFRXYmM4YlVFT2ZKYkoxNkFFU09KbDFwSWNBWjNFMFhhMXpxZlFqNUNPd2VVS2dZcE05Y1hzNHhlclZERFZlRWVnbkxJNmxkcTBqR2Y1RitQT2dDS3dQQ0FUWHp0MThoS0tPa2RTbjBIVU9NZUNSZmVXTkt3SlpGTHhmZlB0SEdJVWU3MEMwT0hIZ0tGck9PSE9vWHhyaW0yQUxOUk9HcjNVUmRNZm0zN09nQlVNNGJQZlc3WnNEczZqRHQxSXJQS1BvMUlNbkQ1dzRyc3FlMHJJcDI1YjZvMnZPTy8rTTJyZmpFR2l2U0ErNitPaGJHc0N5dHdHZlJnRFVHSkZnT0dMUmw4QUhleTNNanR3OCtsRjFzNmp3bHA0NGFJYWxYUTNLMDZKc1BVa2lKODVKdUhSQU9Qang2b2l6TUJIeUcyT29TOVBBeVdzR3ZWcDg0bklhZ1FOYjQ2ajNNaytIQnJ5RTFDZmFwd3k5QkV0NHhZUFFWNGtJSk9QeXBRRkIwUDFXN1RodmtCWmxSOEVsY1dMb1I5a2xiRHFmMEJsbjlDWTM3aWc3dENYYkNZeUphdFZsbGhFNkZCSjRlWkV4M3pHMkFHeXorMFYySWVvRjBCa1UwdUJ6S0FuMkx3T3BhbWszaDRTdkRvNkt3bllZMmhWSU9LZ0UwS3RLbUFYVnRXNlRjRHNXU2Nqa3NPbmhwSm9VS2pqb1MrdmdmVVNISkVBaDU2WHZWbkQwQzM2VmlnTkl5S0ZzQXFybm9kblJiczZ0WEkxbHFHSjBhWHpIdE9Tc2VYUnlsdXZoTURLZW9hZ1ZVNjc4ak11a1huVUxZUkVzZ2l1Smo1eWZtZGs5Rk9USTA0eXFzeXM3cXh0UlBzSkpTaEFyVlNWMG1GaGVQV3I2MjU2dDdQcWhudlpFK2JBL3cxcWJ0S25TaWlKcEFjeU9rZ0l1SHRWRGNKUnljNU1zR1RtWVp5RkU5eEREV3VFUW9vdEtRNmRiaXZaZk1wYlZURzhUcllyK28xZEp5bVcrQ2xLdlBBSGdZMEpqa3E0TEV1ZFUyVHJvcjVPS3NpVmh5S2VyRFBmblpXUjR5QlJPS0N0OEhTMUZRKzlRc0lNaG44ZGo5VnFpUFJaMUNIdGFvWHFBVUpUOVB2cUNEUmdITldpNFRTcjJKSTZxRUVhaGtkV1ZSUDJhL3lBKzljRFdRTzdmSEx2cE80QkUvU01ic2RtZVdWdEJzY01KVUhZYTBUSS82QzJWT0hYL0Rzd09XNGI0Y0JPNG84TmtuUXE5TkdOcE5hM2wvZktObWdNMk1BMXdGOFZWS3hMQVJ0RmFiRmVDUEJDaytQTDBtSzN1NWYrWDZ0MTROQ1dIeTBCNlJxcVByeGRWOTEzTTJueG5YdnQ4SHk2KzNWNE1ZQWpyUXluSy9EakpMd0VSdFE2K2Y0cTlyaXdOSmZ5NGRwWktVWk1ZWDF0VDdHVWN5OFpWV2hhMG9KQnBBa0xjR2l1ZzY1REc4SSt0ME5ERXZLZituM1ZEUzEzNm9TRWdSTmJZWFArVDRjSGNnVDFkR2lYc0pRbEJmSTNYY20wZFRPTlB4K0hjVTZUbjNlaG9yWXB4Nk5pU1RmMnVrRE1Kdk9WbW9mVUlDdlg3WUJaVmJwVmNFT1VlNjFKNDRDdU15eG0xN3RPUGhzOUJiNkJBcDg5SU9LYVdyQzBXWlBsM2dGMThBNFJOZGE4QktvNjBkUEhTK042QUVsc3RPMlZ3T3pXYURYdVF0dlgyL0kwVVNHS05QaWlqb0JIMUdFb0tFZUdROEU4Ukh4YXFXYVJCakxrVndSUEwvcUJhNU5PeHc0Zi8wK0RaVjJlbEVsQVJhRUVvUE1VOXBQaE9GZHVWL2ZYN1VBMlQwQlczajlKaWhTTEUxQ0Y5dXVPcStsM3hRUTlCdCs1dGF2cGpBVTMyZzZFM3VmTDcwSFVia01TMFYweEs3K28vZFRyNTZvSTlmOEd4UmxUaEUrVFM1U3BlOGhRWXBxNE9uUnZWM1NRRDAvckVaUVh3eHhhZzd1bklvUUpDcGZxS1g2ODdzZmpuNnpDVzlhOEFzb2RaZHlHclFoOVhFZFcrY0tjbFRic2s0R0FhNk9XZlNNWXVoWDZhaHpYNHAxZkIwZ0lNYUFDSXVTblRtclpCckhmTXo3MlZmbFdkUnZ0SXduZFgzamlmRHFhbU5xS01BSVRPdHdJaUtWbU4rVy9ZNkNmR2d2YWc5NnBQU000SDZTRnl5RHdOVTA1L0NDQWREV1daQ3NMZHd1Y2FIZnpoV0NUcXFvazZRaE1WajhoYmhDK3Bhalh5S2hCaEIxV09nYjJMZ1ZuRndxNGs2VHFzNHRwbmF0WFpaK3BZYzY1L1Zkc2E1T0M2SmxtT2hjbFVncmFhY0NrR28rZVQyakF4SzMyczlYMExtTmRGak5nUk5ucHByeVE4ZHcxU3ljVkNNc1BESkprTFhGcVpOeE9qTHoxNi9NY2dpRTlmZVZJUndqNXRUOU45Q3V0aGpnNnQxNEFBQUJnMmxEUTFCSlEwTWdjSEp2Wm1sc1pRQUFlSng5a1QxSXcwQWN4VjlUcGFJVkJUdUlPR1NvVGhaRVJSeTFDa1dvRUdxRlZoMU1MdjJDSmcxSmlvdWo0RnB3OEdPeDZ1RGlyS3VEcXlBSWZvQTRPVG9wdWtpSi8wc0tMV0k4T083SHUzdVB1M2VBVUM4enplb1lCelRkTmxPSnVKakpyb3FoVjRRZ29CODlDTWpNTXVZa0tRbmY4WFdQQUYvdllqekwvOXlmbzFmTldRd0lpTVN6ekRCdDRnM2k2VTNiNEx4UEhHRkZXU1UrSng0ejZZTEVqMXhYUEg3alhIQlo0SmtSTTUyYUo0NFFpNFUyVnRxWUZVMk5lSW80cW1vNjVRc1pqMVhPVzV5MWNwVTE3OGxmR003cEs4dGNwem1NQkJheEJBa2lGRlJSUWhrMllyVHFwRmhJMFg3Y3h6L2sraVZ5S2VRcWdaRmpBUlZva0YwLytCLzg3dGJLVDA1NFNlRTQwUG5pT0I4alFHZ1hhTlFjNS92WWNSb25RUEFadU5KYi9rb2RtUGtrdmRiU29rZEEzelp3Y2QzU2xEM2djZ2NZZkRKa1UzYWxJRTBobndmZXoraWJzc0RBTGRDOTV2WFczTWZwQTVDbXJwSTN3TUVoTUZxZzdIV2ZkM2UxOS9idm1XWi9QOGE3Y21MdzBYeHZBQUFBQm1KTFIwUUEvd0QvQVArZ3ZhZVRBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUIzUkpUVVVINUFjQ0VCOGZCVnhIdEFBQUlBQkpSRUZVZU5yc25YbDhWT1c5LzkvUG1TMDdrSVd3aE1VRUFSRUVwQVcwSW1vUnBZcTFpRld3L2tURnVyU2lYY0M2ME5xQ1hiRDF1dHdxV21xeHJkRDJJcmRYc2JUSTlZcExDeWlpVXRrREVSSWdlektUV2MrYzgveittSE1tSjVNSml5SWs4THhmci9NS1pDWXprek5uUHZudVgvSDlyMTNBbXExVlJIMTlHVGJ4WnVaZCtBRzN6MXRGMFIycldEdHZHRkRMaWhuam1MZGhISXMrV003MFBLRDhHYTY0OUZIS0wxM005bWNuMDRxZkZiUEdNdS9OMFN6WXNKd2JpdXp2UnlsZnNZQ0hGci9DNWowQmZJVm5NZjdtZTdpbWJnRjMvQzdLekdVYldUaWVMa2s0SE9iQWdRUFUxTlJRVjFkSFkyTWpUVTFOQkFJQldscGFDQWFEaE1OaHd1RXcwV2lVYURSS0xCWWpGb3VoNnpxNnJoT1B4NU9IWVJqSnI0WmhZSnFtODkvQ05FMmNoNVRTL2lxa2xOZ0hJRksvQWtncGhmWFNrMTlUdmlkMjdkcFZYRkJRME52bjh4VzdYSzVpVGRPS05FMHJFRUxrQXoyQVBDRkVIcEFOWkFHWmdOYzZYSUJtUFo0SkdFRE1Pc0pBQ0FoS0tmMkFYMHJaSktWc2tGTFdHNFpScCt0NmRTUVNxVGw0OE9EQmtTTkgxbGlQSXgxSHUvOExJVkp2czc4SElJVVE3YjQ2RHFscEdrSUlORTFMUGFUTDVjTGxjcUZwR3ZhLzNXNTM4cXQ5ZUR3ZTNHNDNobUhRdlh0M2ZENGZQcCtQek14TU1qTXp5YzdPSmljbmg5emNYTHAzNzA2UEhqMG9MQ3lrWjgrZTlPblRoOHpNekdPNDZ2eXNtenVKbXpkUFpkWGErUXhEa1lwOTBiZWVzaFd6R0R2dlRVWXYyTUR5Vm1YNkhJaXliczVZYmw1VnhCMnIxakt2aTcwN3NWaU1Bd2NPY09qUUllcnE2bWhvYUtDcHFRbS8zNThVdEZBb1JDUVNJUktKSEZIUW5HTG1QRXpURkxiQXBZaFpHeUd6eGNrcFVxbUM1ZngvVFUzTjRKeWNuRUZ1dDd0TTA3UlNJY1JBSWNRQVlBQ1EwVWxPY3dUWUo2WDh4RFROQ3NNdzlzWmlzVDJOalkzbEF3WU0ySjBpY1BJd2d0ZE9BRzNoRTBLMEVUcE4wMlNxeUZuQ2xoUTU1K0VVTjVmTGhXRVk1T1hsNGZWNjhYcTkrSHcrTWpJeXlNaklJQ3NyS3lsd2VYbDVkTy9lbmZ6OGZBb0xDK25WcXhkOSt2VEI2L1VlVnRDMnJuaVJsOTVjeFlwVmxReGI4Q3JMYnloUktwWUdkeTNRYWxodFpmSHYxaFBqTEM0Y1gzVGNCR3pyTTNOWlZqS1ArVk5MOE5uZkxWL0I0blVCNkR1VlM3dVlxTzNmdjU5RGh3NVJXMXRMZlgwOWpZMk4rUDErQW9GQVV0REM0ZkJoQlUzWDlhUjFsaXBxNmNUTXRzcHNZYlAvS0tVUnNqYi8zN1ZyVjg4K2ZmcU04SGc4STF3dTE5bENpTE9Cc3lENVZuUm1Nb0RCUW9qQnRwQjR2VjV5Y25Jd1RUTUtiRE5OYzJzOEh0OGFEb2MvM3JsejU4Zmp4bzJyc3l4RktSTW5TdHIvZDRxY2xGSUtJZXo3SkFYT01JeWs5V1piYzlZaE9oSTVwN0NacG9tbWFYZzhIandlRDE2dmwzQTRqTS9uSXhRS0VRd0dhV2xwSVJBSTRQZjdhV3Bxb3JHeGtZYUdCbXByYStuVnF4ZjkrdlhyK0xPMDZnbCt0NzZJY1RjL3laTksxRHEyMklaY2NEMlRKdzZqaUZvMnIxdkRCMVZRZXZOU1ZzNGZUOTV4ZVlwS1ZzeWF4cnczL2ZRZE5aR0pvMHZBdjVYMXIyeGdUNnd2Vnk1ZXlaT1RpN3JFeWFxdXJtN25kalkzTnlmZFRxZWdSU0tSZG9KMkJDdE4yRzVuaXFDSkRxeXlkaGJadGRkZTYxcXlaTWtYTXpJeXZ1Qnl1Y1lJSWM0RkJwOW0xL1F1MHpUZjEzVjlzOS92Zi8vclgvLzYrK3ZXclRNZDRwWVVPU0dFbWM2aVMyZk5hWm9tMDFoeHVGeXVOaUlucFNRckt5dnBuam9GenV2MUpxMjN6TXhNc3JLeWt1NXB0MjdkMnJtbnhjWEZTcUUrcmJCOS82YXZzRzc5TnVySXBiQnNORk52bnNjOTA0Y2RKMUd6cVdYOWkwK3dlTms2TnBkWEVhQ1EwdkdUdWZtZWU3aGhkT2NYdGVibVpxcXFxcEpXV2pxM00xMGNUZGQxWXJGWTBrSkxFMGNUempoYUdzdE1wSW1YMlZhWitONzN2dWQ2K09HSEwvRDVmT2RwbW5hK0VPSThJRWRkMW0xb2tWS3VqOGZqNndPQndNYTc3cnByL1YvKzhwZDRHcUV6bmE2clErU2NjVG1aYXNtbHhOK2tsSktNakl4MnNUZXYxNXNVdUk3aWIwNzN0S2lvaUY2OWV0RzNiMSs2ZGV1bTNzWFBHbU5UdEtMck92djM3MjlqcFRVMU5TV3R0S09KbzZWTER0aUNsbUtkSmQxTWgwV0dVOGlrbEZwRFE4T3duSnljaTF3dTE0VkNpSW1BdXVxUDhlK1VhWnB2NmJyK2RuVjE5ZHNEQnc3Y2JvbGJPNnZPYWRIWjFwdnozM2FDd1NseVVrcDhQcDlNbDF4SXRkN1N4ZDlzNjYxNzkrNXRyTGQrL2ZyaDhYalV1NmVFN2JOeDZOQWhLaXNyMnlVSG5HNm5MV3EybFdaYmFFY3JhSVpoSk4xTTB6UTdGTE5RS0hTeDErdWRwR25hSkdDRWVuZU9LLytPeCtPdisvMytOd29MQzk4bWtjVTFVOFd1STVHemt3MjJ1d3JnOVhxVEZseEhBbWRiY0xiMVpvdWIwejFOVFM2VWxKVFFxMWN2OVk0cFlUdDJnc0VnKy9idDQ4Q0JBMVJYVjZkTkRoeXBmQ1BGN1JRcGlRR25kU1pTTExTa21JWEQ0U2xlcjNlS0VHSUswRmU5TXllRUtzTXcvaEVJQk5ibTUrZXZwYlZjSmEzSU9XTnl0cXNLNEhhN3BiTTh4QmE1STFsdnFlNXBibTR1ZVhsNTlPalJnNEtDQW9xTGkrblRwdy85Ky9jbk96dGJ2VnRLMkk2Ty9mdjNKNjAwWnl3dFhYSWdOWmFXeGtvN2txQ0oxSmhaTUJpOHhPZnpYU1dFdUZLSldhY1F1ZFZOVFUycmk0cUtiRXV1amNpbFduSDJ2eDN1YVR1QmM3dmRIUXFjMDNwTFRTNmt4dDVLU2tvT2t6MVZLR0VEQW9FQW4zenlDVlZWVlcyc3RPYm01alkxYVVkWlpDdHMxOU4yTnc5am5XbU5qWTNEYzNKeXZxWnAydFdnYWkwN0tkdGlzZGdyQnc0YytGdHBhZWxXaDhBWkRwRnp4dWJhV0hGMjl0UVdPVXZZWkRyM05OVjZjOWErMlpsVDIzcnIyN2N2QXdZTUlEYzNWNzFEU3RqYVcybDJnaUJkeHJPakVnNWIxTklKbXJOTHdDbG90cGl0V3JVcVk5S2tTZGU2M2U3cFFvakwxR1hZZFRCTmMwMG9GSHI1cWFlZWV1WEJCeDhNQS9HT1JDNmR3RGxyNE5JSm5DMXVIWldHcEdaTzdjU0NzdDZVc0FFUUNvWFl1M2R2dXdTQmJhVzF0TFFrWTJsSDZCdzRuS0FKcDl2WjFOUTBJanM3K3pwTjA2NEQxSlhZeGY4bTZyciswdjc5Ky84NmFOQ2diUTVYMVVoMVZSMENKNDhrY0IxbFR1M1lXMDVPVHRKNlMwMHNuSEhHR1dSbFphbDM1blFWdG9NSER5WmR6NXFhbWpZSmdpUFZwVGxFTGEyZ1dRVzFiZHpOVUNnMHhldjF6aEJDWEtzdXVWUFNpbHZaMU5UMFVtRmg0ZXRTeXJnUXdpbHdodE9DczRYT0dZZExGYmlPWW0vcDZ0NXMxN1JuejU1SjE3UjM3OTZuL1h2aVBwMStXY013S0M4dlo5KytmUnc4ZUREWkV0WGMzSXpmN3ljWURDWkZMUnFOcHUwZXNBWE5FVWRMSzJnMzNuaWphOG1TSlRlNjNlNGJnUXZVeC8vVVJkTzBhZm41K2ROaXNkZzdPM2Z1L1BNdHQ5enkwc2FORytPV20ycElLZHRsVmczRGtLWnBTazNUN0Zpc2RKWUV4ZU54NlN3WHNqMEVaeWpFL3FOci94RU9oVUxKZHEyeXNqSmNMcGNTdGxPZHBxWW05dXpaMHlicjZXeUpPbEt4YlJxM1V6aTZCSktDdG1uVHB0d1JJMGJNY3JsY042RnF6azR2OTBlSUwyVm5aMy9wWC8vNjF6Y2prY2p5WmN1Vy9lVzIyMjd6VzlaYnZDT0JrMUpLUjZHMlUrQmthZ3VlczlmNFNBSlhXbHBLOSs3ZGxTdDZxbEpaV1VsRlJRV1ZsWlZwYTlQU0Zkc2V4a3BMRzBQYnRtMWJqN0t5c2x0Y0x0Y3R3Q0QxTVQvOU1BeUR5c3BLQmd3WVlIK3JQQktKL09HVlYxNzU4M1hYWGRkb1czRDJZY1hnekhReE9HZmRtOU05VFMwTHNZdDYwOVc4bFpTVU1IRGdRRXBLU3BTd25VcElLZG01Y3llZmZQSkpzdUQyY0ZuUDFBNkNEdHhPTzh1cFNTbkZoeDkrbUhmV1dXZk5kcmxjczRFeTlmRld3dVlRTnBzOTRYRDQ5My82MDUrVzMzcnJyYzFIRURqVDBYU2YycmtnMDNVc2RKUTF0UXQ2Qnd3WXdPREJnN0c2SlpTd2RXVUNnUUM3ZCs5T3h0TnFhbXFTV1U5bndXMEhycWRJYllWS3NkSzArZlBudStiUG4vOU5sOHYxVFZUOTJRbDhZdzlCOVE1b3FJQndVK0lBeU95ZU9QSUhRdkVReU8zVm1ZVE4va083TFJRS3ZmRDFyMzk5MmVyVnEyT1d3TmtpWnpvRXpreTEzcHdDNS9GNFpFZjlwczVwSWZuNStmVHMyWlBldlh2VHYzOS9CZzBhZE5yVXZKMlN3bFpkWFUxNWVUbjc5Ky9uNE1HRDdVbzVVdU5wem9Cc09yZlRUZ3pZV2M1SUpISzl4K081RXhpbmxPWUUwVkFCdTljbHZoNE4rUU5oME1URTEwNGliQTZCMitqMys1ZDI3OTc5RlNHRW5pSnc3VnhVUndlRFRMWGVVbXZlVWd0NjdaS1EzcjE3MDY5ZlA4ckt5azZMY1VpblhQS2dvcUtpVFpMQW5wdldVVHpOYWFYWmdWbW4yK2xJREdpaFVPZ1NyOWQ3bDlYeXBEaFJiUGtyVkgxNDdFSzRzUUw2am9JUlgrMWMxb1FRWTd0MTZ6YldNSXdyYTJwcWx2YnUzZnVmVG9GTFRUTFlDUVpyV0lKTW1kOW4vLytva2d5UlNJUndPTXpBZ1FPVnNIV1ZlTnFPSFR2WXMyZFBzalhLSGpQVVVUeXRBOWV6bmR2WjBOQXdPQzh2NzF0Q2lEdVV5cHhBNGhIWThFTEMvZnkwVkgyUWNGZlB2UTdjR1ozcTE5TTA3U3U5ZXZYNlNpd1dXL0x4eHgvL2Z2VG8wZVVPZ2JQTFJBekFORTNUdFBkYjJObFR1MlhQS1c2cEltY253RkxGTFJLSk1HVElrRk0yN25aS0NGczRIR2JIamgxVVZGUzA2ZmUwNjlNNmlxZWxXbW1XcUNYZHpsbXpacm1lZSs2NXUxMHUxeHhBeldFKzBXeFlDb0hxNCtQR3Z2OW5HSHRUcC93MVBSN1A3RkdqUmswSkJvUFBUcGd3NGZlYk4yK09BYnBsdldtMml5cWxOTzF4NWxZQ1N6cUhLNlFLWExwU0VXZll4UmEzWTFza280VHRoTkRZMk1qT25UdXBxS2hJRG9SMFR1VklWNTltL1JWemlwclRTdE9rbENJVUNrMzIrWHozQWw5V0NuT1MzTS9qSVdwT2NkdnlQNTNPTFhYUU55c3I2eWZ2dnZ2dXhUVTFOVXQ2OSs3OWxoQWk1bkJQQmEwOXFUTEZnbk1LbkV5M0ZDaWRlMnBYQVF3ZVBKZ2VQWHFjWXNMbVg4R01VZlBZa0hzTnYvdndVU1oyb1JkZlhWM2RwcHpEYm1KUFYzVHJLT1VRdG5tZXhrclRLaXNyZXhVWEY5K3JhZHAzbExxY0pCb3FqajJtZHJSdWFkK1JKelNoOENuYzA0dDc5ZXAxY1RRYS9mWHJyNy8rdXlsVHBoeXkzRlBOS1hDSlhUVEM3TWg2YzdpcUhJMmJPbmp3NEZNcXFkQmxMYmI5Ky9lemE5Y3VQdm5razJRNWg3T1RJRjJTSU5WS013ekRhYVZwa1Voa3VzZmorUTR3UnFuTFNXVFhHNjMvMWcveDBJLy93YklHR0RmajZ5eWZrQWtZVkg2NGlZZGUzY3Y2eWdoa1pqTjY1QWptVFIvQ2FLc0hQTHAvTnd0V2JPR1Z2WDRDWkZBNnVEOTNUQi9MOU4zcllPekFUbjhLdkY3dnR5Njc3TEx6Nit2cm55MG9LRmd0aEhCWjdxbnVpTDBKWi93dGpjQjFHSHRMdGVCc2dldnlVMEw4NWF4N1pSbnVTYVBtc1FjZzhCSTNsNjVqNWtzYldWaTJsUmNYUE1UaU5WdXBpdnJvTzJ3aU44OWZ5QzJqOHpyRmF5OHZMMmYzN3QxSlViUExPVktiMkRzU05XZkdVMHFwVlZkWDl5c29LUGl1RU9JdXBTb25tY0FoYVB3aytkK3RyMjlrUlVQS3Rmdnh2NWp4YkRsVmVDZ2RXSXl2b1pZTjY5Y3pveDdXZm1jSUpjMTdtZlA0Tzd3V2hzTGlZb2JSeklhdE81bjNlSXk4SDdxWWZOYWhrMUxuZHF3SUlVYm41K2N2anNWaXYzbm5uWGVldi9qaWl5dUZFSnJEUFkxanRmTFprMFRzektsVDNKeGJ6NXpMZyt6WXNuTzRReXdXbzZ5c0s5YVpsN05pemh3V3JkbUczNWVMZStiTUMvbmRzamVwOHBaeTZRM1hjR21SbjNVUHpXTCtLajk5TDV6T0hTWGx2TEpzRlF0bitjbGJ1NVRwSjNtcDFQYnQyNU9GdDg2ZXo4TmtQb1d6MTlOUmw2WkpLVVVrRXBubThYaStCM3hCcVVwbmlDOXNiLzEzL1E0V3ZOcElMT1V1VzdmV0VzM0w1c0lyTG1mcGhCd0k3V2JXRDk3aHpiMzdXQjhhd3VTS2ZXejFaTkIzMkZoVzNub0dSYlR3L0tLWFdGaFJ4YXE5TUxtK29rc0ltNDNINDdsdDRzU0pZMnByYXhjWEZSV3RzV0p2bWlWcXR2Vkd3bkNUcWRhYlNJbkRrZXFpT2plbjJRSTNkT2pRTG5iaFJLSG9HdVl2bjhya3ZCVzRiNWwzSmE4dGU1TXEzMmhtenIrVGlaVHpUSGtkVU1yVWVmT1pOeXpLcFdjdFp0V2VYUEw4T0xZcm4xaWtsSHo4OGNmczNyMjd6Y0ppZTJ1VVBaa2pKVW1RS21ySmVOcjI3ZHU3bDVXVmZWL1R0SGxLVFRvUjlSWFdQMktzK2VzSGJLQUg0d2Eyc0tGQ1Q5NWwvTFZmWTJPNkFWQWVMM2tleUJzNWtiZEdwbnR3RjNrZVN6d0hqdTlTcDBVSWNXNWhZZUZ6a1Vqa2lULys4WSsvblQxN2RxTmx2ZW0wanNneWJFRnp4dDdzUWFkT2NVdGQrNWdRdVNoTkZlL3k1eWYyVWpqclAzbHM1dGxkcUJ4a0dOUG5EN09OdDNReHRqSW1Yam1LSjdaOXdPSXJ4N0ptMUhqR1gzb05NKytaekxDVDVJbnF1czdISDMrYzdDWklMYnhOTGVldzB0bXBXYzlrZ2lBWURGN284L25tQ2lFbUt5WHBaRmd0VXRHOW0xaXdLVUxmQ3laeWMzeGRHMkd6cWYxd0V3dmVhNloyYnhVYjRobGNlTzBvSmpzMzFCM2F6VU92VmxGWmY0ajFGUnA5eDR6bGpzRkFQTnBsVDQvUDU3dm41cHR2UG52U3BFblBEaHc0OEYwcjloYXpYRk1oaERBU2hscHIzTTNwbXFaTUVra0lXenhDM2Q0dHZMNS9Qd2Y4SnU2TVhreWR2SU1QUDR4ejl0bG5kOG0xZjJtVEI4UHVYTTdhMFN0WXR1dzExcTFmeDdKSFgyUFo3NjVrOGRvbm1YeUN4UzBTaWFRVk5idndOdDArQW9lbGx1cDZhckZZN0hhWHkzVWYwRWVwU0NjazBndzA4L3p5M1ZSbDl1T0pxM3VSdHlMOVhmMTc5N0Zxa3oveG43eHVEQ3RPcWNmeTE3Sm1Vd1YxQU81c2hwM1JMYkVJL0xNVS9IWUNORTJiTkdEQWdHRit2LzgvOC9MeS9neG9sbnVhdE54d0pCWnNqOGV5M29UbHNtS2FVUnFyeXFsdENxT2o0YzNyeWFCemh6UDIzSE00UzZ0ZzU4NkVxM3IyMldlVGtaSFJ0YzRSZ00veVVhTlJ3TCtlWitiTVpkRnJlY3g4Y2ltdmJsekxRNk9BdW5XczJueGlYMXd3R09Tamp6NDZiSjFhU2x4TnhHSXhZZmQ4V21hMlpwcW1WbFZWMVNjZWp6L21jcm1lVUtMV3VhbjkxMFlXVjhLNHE4Y3k5VENUcnN1dS9ocDdudjRHRys0OWk3TkMxU3grOWwrc0NUbnVNUGc4Tmo1OUU5c1dYTXcxQlVGZVcvRTZpL1lhcDhwcDZwT2JtL3ZUYURSNi82cFZxMHFrbEJuV1I5a0xlS1NVTGltbFpsLy9WZ3hOMk41TUpCSVI0V0F6MVEwaG9xWWdvK2dNUm80WXpCa0ZHZWpOTlJ3NGNJQ0tpZ3AyN3R6SlJ4OTlSREFZN0dJV202K0l2Rndnc0lZRjAyWlJ2bkFoZWJWcldMVnFIVnNyUDJCeVNTM3J5Z0Z2R2FOT1lMSWtFQWkwc2RTY0xWSzJvRG5IZDl1dXAxV2YxaWJyR1F3R0ovaDh2dnVFRUpjcTJlamtaQmlzK0w4REJJQU55MStpZEhuclRSdVcvNFVKKzcvQ3E1ZDVxZFZkNUJYa1VPUnhVVFI0R05lVWJHTmhSUzBicW1GaWZndVZZUU5mWGpkS3NzQlgwSitadzdKNXFUckk1cDB0Y003Z1UrWjBlYjNlMlZPbVRDbmR1M2Z2TTJlY2NjWjdWdHpOVGl3SUlZUmhtcVpwTDNodUczZHppVzdkTW1WTE1FSzRlamNiYXo4aHQ3QXZaV2NPWXFqRFhiV1BzODgrdTh0TUIzSGptOGc5ODY5azY0STE3Q2t2cHlwYXdwMVBMc1gvMEFKK3QrNTNMSTU1S1R6clV1Nll0NUJiVGxCVFVYTnpjMUxVN0diMit2cjZkdTduWVRLZnlYaGFOQnI5aHR2dHZoODEvTEZya05tVHNqUDdjS0VqNUZGYmVZaHRmcFBjNG1MR255RllzL3hsNW0yRmNUTyt4dklKT1JCcTRJTUdBQytGbVZDNS9uVXUvWjlHY3NkY3pGdTM5aWVQTU9YVllVQWpMOC9iNlhwR2o0TnJlc21BQVFNR05EUTBQSldmbi8rSzVacUtGTmNVWjl6TkZqbVBKMU4wTCt3bVBlZ0VBMzZhYXovaGc5b3FhdU9YY3FIVjJlRHNVVDM3N0xQcDFxMWIxNGl4bFUxL2tyWFRuZDhlejUzUHZzcWRKK0VGTlRVMWZXcFJjeVFKdEZ0dXVjVzFlUEhpSDJpYTlpQ24yVzZITGszQmNDWmZleW5Pck03NjMvK1ptZXNqREx0a0lvK2VsMG10cHkrRlcvZXpZZm5MVEhvdkgxOTFMZHY4a0h2bUVLYjJnaExQRU1hdFdjK0dUZXVZVkYxRW1kN01obW9UOHZveGMxZ21GQTg5NVU2YkVLS3NSNDhldnd5RlFuM0dqeCsvNUtPUFB0SWMxcHR1aVZreTdoYVB4OXRrVEtYWEszTUtlbFBZRzJMQklPNW9NNDJOeWJLUk5zZlpaNS9kNlVlT2Q2b1BmR05qNHhGRkxaMzdtWm9rT0hUb1VMK0Nnb0w3aFJDemxWSjBNWXFISnVhdUhZYWlMMHhrT1p0WXNHWXY2M2RWUTJZZTR5NFl3ZnlyQnlVbUZSUU00ZGw3WFN4YXNZVTFlNnZaUUFabkRUdUxPNmFQWVdvM29HRGdxWHIyM0ptWm1mUGVlKys5NHRkZmYvMDNsMTkrZWFWdHVWbldXOXkrWTdxa1F1S0xqOHpjQWpKbEM4M042WVhORnJmTzNGL2FhUVpOT2tYTnpuN2FvdWFNcWFXeDFPeldLTTAwVFJFSUJMNlFtWm41Z0pxWjFvWFpzTFJOOThGeHBjY0FHRGZyYzNub294MDBlU0l3REdQMXpwMDdGdzhiTm13TEVMV3lwanFRWEErb2Fab1VRcGpXZEY1cDdWU1F6cEhqOWtUZTd0MjdVMUJRUUs5ZXZaSURLenV6dUhVS2k4M3BmcWFLMnVIY1Q2dmZNK2wraHNQaHk3eGU3NE9veWJaZG16TXZnbzB2Zkg2UGZScmdjcm1tREIwNnRLQ3lzdkxwa3BLU3Q2eEVnbTI1SVlUQW1WU3dnMjZ0bGxzeUZzZmhqSi9odzRkM1NyZjBwQXViTTFIZ0ZMWEd4c2EwRXpwUzNNK2txRVdqMFJsdXQvdEI0RXlsREYyYy9JR0pLUnpIZThKSEo1L3M4VG5FM2NiMjZkTW52NjZ1N3FuQ3dzSy9TU21kU1FVZFIxTEJJV0RTY2wzYnFWazZnUk5DTUh6NDhFNlhVRGlwd3VZczZYREcxR3hSTzV6NzZSUzFXQ3gyaDh2bGVvaVQxdkNsT082TXVCcjhoNDdmVExZZUF4S1BlWm9oaEJoVVVGRHdVRk5UVTA3Mzd0My95Mkc1dFFsRjJlSVdqOGZUaWx0SG9tWWZJMGFNNkZTbElDZE4ySUxCWUllSmdqUjFhc0s1NDlNcGFycXV6OVUwN1NFZ1E2bkJLY2E0V2NkbmltNlBBVERtK3RQNVRCWjE2OVp0Zmt0TFMzWk9Uczd2blc2cFU3VFNpWnVkWEVnVnRGUmgwelNORVNOR2tKMmQzU2wrWWUxa1BLbXpUZW9vc3AvQ3VVSEtqcWs5L2ZUVEhsM1hmNmhwMmtJbGFxY283Z3o0MGgwSkYvS3p1Si9qWnAxeXRXdWZnb3pzN093SFFxSFE3VmRlZVdXMm8xUEJBN2l0VGdXWGFackNNQXpoNkZJZ0dvMEsrL01ZREFieCsvMDBOVFZSWDEvUG9VT0hxS3lzcEx5OG5JOC8vcGhJSk5JcGZsblh3dzgvZkVLZlVOZDEvdjN2ZjdjWlBlUzAxRkppYXNMZXlHNG5DcVNVNHQxMzM4MzV5bGUrOGlOTjAzNmdQdjJuQWNWREU3R3hVSlBWUzNxVVZ0bzVWNS9RS1I1U1N2eCtmNmV1OGZKNFBPZE5tellObDh1MWRkMjZkZkVPcG5mSU5Ja0RrZXFTT3ByczJ4eEZSVVc0WEs3VFI5aWtsR3pac3FXTnFLWGJKSlU2ZHNncGFqdDI3T2d4ZE9qUUgycWE5bDMxaVQrTnlPd09KYU1TSXVmTFNUaEtuZ3lJV1QyTXVjV1FYWmdRc2lHVG9QU0N4TStjUUxxQ3NBRzQzZTZ4NTU5L3ZpZ3VMdDcrdDcvOVRYZG1SanNTTjZjQU91dlpVZ1hPL2xwY1hIeFNSeDZkMEJoYlI3MmZUdmV6bzVJT0thVW9MeTh2Nk4rLy80TkNpTHZWSi8wMEpiZFg0bEFOY3A4Sm44OTMrMjIzM2FaNXZkNGx0OTkrZXkyMHhzNGNWcGxoR0lidGFiVkpLRGpqYTg0NG04dmx3dDVhUDN6NDhGTmYyT3pKdHgyTkhqcE04VzNTVWxPaXBsQWNWM0c3N2FhYmJpSWFqVDQzWjg2Y0JxZGxsazdjY0dSTE94SzJWSEU3V1pONFQ0Z3JXbDVlbnR3bWRmRGd3UTdIZWFjcjZiQmphcGI3T1VkZGpvck9TbGR4UlZQYzBqRWpSNDZVUW9oL3Yvbm1tNFpsamJWelMxUEVybDI4elhrT25PNnB5K1VpUHovLzFMUFk5dS9mZjlReHRYUjFhazgvL2JSbjVNaVJEMnFhZG8vNjZDZ1V4NStNakl6YkgzamdnZmltVFp1ZVhiMTZOZWtzTjlNMERXZ3RCYkhLUmVUaDNGR1h5NFhWcG5YQ3QxOTlyc0pXWFYyZFhKR1h1bmpsY0RFMVo1M2E3Tm16SDlRMDdmdnE4bE1vUGo4eU16Ty90V0xGaWxoMmR2WnZiVUZ6aUp2RVd0SnMrYWJKbUpzUVFqcmRVT2RodTZPMnVKM0l2YVdmbTdEWkc5cWQ3bWRINDd4VFkyb3B4YmNQcXN0T29majh5Y3JLK2s0Z0VJams1dWIra2JaWlVwbGF4R3QvWHlTUUhjWFpiS3ZORnJjVDFUVC91UWhiT0J4dUkycjI0cFhtNXViRHVwL1dLTzlrbTVUVlVhQlFLRTRRT1RrNTMybHNiQXoxNk5GanBXVzFTVkppYkphNE9TMDJJWVNRdHFnNUJjNjIyR3hoTytlY2M4ak16T3g2d2lhbFpNZU9IZTEyRktSYWF0WTJLZWNTWSt5Rks5Rm9kSWJWKzZrNkNoU0tFMHRHOSs3ZDUxUlhWd2VMaTR2L0xoUDlWMjArMy9aWGUyQ2xaYTIxc2R5Y0ZwdlRKZlg1Zkl3Y09mSnpyM0U3N3NMbUZMWFU3S2U5OTdPanliZW1hWXB3T0h5Wk5hVkROYlFyRkNlSG9xS2lvcnYyN3QzclArT01NLzZaWXJuWjhUYTc5QU9Ib0FsTjAyUkhjVFpiMkRJeU1qNzNNcERqS213VkZSWHMyYk9IcXFxcXBLV1c2bjQ2dWdwSUtldlFBb0hBRjZ4NWFtcjBrRUp4RWhGQ0RPcmZ2Ly90bXpkdmJobzlldlRIbHVXV25Oc21oR2hqdFpHU0lVMk5zN25kYnR4dU4xNnZGNi9YUzBaR0JnTUhEdXo4d2xaZFhaMFV0ZXJxNnFTbzJmMmZEdmV6VGF1VWM1eDNabWJtQTZnaGtRcEZwMERUdEMrT0dERmk5c3FWS3grZE5tMWFsVVBjcEdOMkc2WnBtbmFtTkozVlpzZmFuQmxTZTBMdjU1VXBQUzdDRmdnRWtwTTZxcXVyMnpTMU8yTnE2Y282cEpUaWxsdHVjVms3Q3RRNGI0V2lFK0Z5dVM2LzRvb3Jhb2NPSGZyWTl1M2J6UlJ4c3pPbjB0NHFiNHViTTVsZ1cyejJWNi9YbTNSSnM3S3lQcGM1YnA5WjJLU1U3VnFsbkpaYXVxYjIxQXpvNHNXTGY2QVdyeWdVblJPdjEzdmp1KysrVzVPYm0vdDdTOURNRkhHVHFabFNUZFBhV0c3cFNqOThQaCtabVptTUdqWHF1Q2NUUHJPdzdkeTVrMzM3OWlYTE9vNW1UVjVLQnZRYnFsWk5vZWpjNU9UazNGTmRYWDJvdUxqNDc0Q1p4aTF0RTNPenlqNlM0bmE0V0Z0V1ZoWkRoZ3pwUE1KV1dWblpybGF0ZzFZcDBtVkFnOEhnQkd1WnNkcjdxVkIwYnR4RlJVVjNiTjI2OWRDd1ljUGV0Nnd6MjBwcmx5bU54K095bzRMZGRMRzI3T3hzU2txTzMwYjJUeTBvVFUxTmFXdlZPaEExa2JLbFhUdHc0RUFmbjg5M0gyb0FqVUxSSlJCQ2xBMGVQUGlXRjE5ODhjQU5OOXh3d09HU0ppMjRsUHEycEV1YVR0aWM0cGFWbFVWT1RzNXhHeURnL2pUN0d3M1RaTSsvdDFLNWV3L1YrNnRvT0ZSRGMzMDlnYVptUXY0QWtXQ0lTQ2hFTkJKQmo4U0Vyc2VJNjNGaEdxYVFNaUZzUFQzaGVhSnAzNlhxY2xHY25FK3BCaTRQYUo3RXdFcHZ0am9uUjRITDVicDQyclJwRmNCVHRNYmJUTklrRTFMRnpabEljTHFremtUQ3lKRWpqOHYwM1U5bHNaWHYvWVRLcW9OVTE5VFIwTkJJczk5UFMwdVFVQ2hNT0JJaEVvMFNqY1hRWTdyUTQzSGljU014TmxoS0lTVmFySHIzN1VLSXU5UmxvamhwU0JQaVVTQUtzUllJTlVKR0xtVGsyZDZVb2dNeU1qSnVycSt2cnlnb0tQZ3JZSFNVVEJCQ1NEdmVsbXE1T2QxUnA3RGw1T1F3ZVBEZ0V5OXNCNnRyMkZkWnhhSHFXdW9iR21scTloTUl0QkFNaFFpRkkwUWlVYUxSR0hwTUp5RnFjUkl4TlNta2xDSll0ZTFDbDh0MW43bzhGSjFMNkF3SU40RWVocHllQ1l0TzBTSDUrZmwzYk4yNnRjS0t0NWtwaDVSU3lvUzJDZUx4ZURJN0dvMUc2VWpjTWpNemsrVWZ2WHYzUG5IQ0ZncUYrV1IvSlFjUDFWQmJYMDlqVXpNb01qSUJBQUFnQUVsRVFWVCtRQXN0U1ZHTEVJM0ZpT2t4OUhoYzZQRTRodEU2Z21qN2h2L3Q3dlA1NWdKOTFLV2g2SlRFbytBL21CQTNsK2R6ZjdwMTY5WjFtbC85b29zdU9wYTc5d1p1QXZhU2lMRzFFVFpBV2lWZHBtRVl4T054R1l2RlJEUWFsZmEycTVhV2x1UzJxK3JxYXFxcXFxaW9xR0RuenAyVWxaV1JrZkhwVzhXUFNkajI3dHRQMWNGcWF1dHNVUXZRRW5SWWFyRVlzWmlPcnNlRnJzY3hEQk5EV2k0b2lMSXpCbnhmd0dUMTZWRjBhc3c0aE9vVHV4Vk9BR1ZuZnJhK3lmSmQyd0h3OWYzaXAzNk1hTlc3QUZTZCtlU3gvTmdsWVRPMmJWRDU5MzlMWXF1OGdaMUlBQ2tRVWtncE1FMUpYRUxVZ0dCY2FDSW1OV0pvSW9KTGhIQ0pJRzZYSDdlckNZK25Eby8zRUFjWFpYSEdHV2R3NW0wZmZhcmY1Nmp0N2YxVkI2aXNPa2hOYlIzMWpVMDArd01FV29LRXdtRWk0VVJjTFJhTEVkTjFkRDFPM0RBd0RGTklNeEZYaXh6Y09VM1R0SG5xVTZQb01wYmIwYTc2TzQzSjFMemZlbmZnanllUW1NVGpBN3lXd2VTU1NKY0VUU0tGaVJRR2tqZ21PZ1l4NGtSbG5JalVDY3NvUVROS3dBelRhQVNwaS91cHJhMmxwcWJtVTcrdW94SzJRRXNMK3lzUGNLaW1sdnI2UnBxYi9RUmFXaExKQXFlb1dkWmFzbDdOeW9CVzczaXZuOGZqL3A2NkRCUmRpbkJ6SXNtZ09MeFA2dWsrNjltaVdiMDdFRGROZ21ZNnhFMlhwa2lLR3pvUnFST1NVVnJNQ0g0alRHTThtSFJQVzR4UHQ0RDVxRnpSVC9aVmNhQzZocnI2QmhxYkUzRzFZREJNeUpFQmpTV1NCYmFvWVpvU0thV1FTSzBndjhkM2dTK29TK0FVOHRhYVl3U2UyMEhrWDlVWVZhRXU4WnBkZmJQSk9LOG51ZDhjZ3RiTmV4US9JUk43UzMyNUorMDFmL0xYSjNtR2EvbjUxYjFQOXRuRDkvT2JLTGlpanNZeEx4T090ZDRpRUtNdnpSdnhkV3I1dGUyU1NqQ0VNNWtBMGtSS0F4TUJhTklRTGlHa1MycTRoWVpidXZDWVViekNqYzl3b3pVM2s1bVpTYVVlWWFqcjJFUHlSN1RZOWxjZHBPcmdJV3JyNm1td2tnV0pES2l6c1YxdjY0SmFHZENFQzdwcnVpcnRPUFh3UC9FeHdSVjd1NHlvQVJoVlFZSXI5dUovNHVPai95RTlyTjdzbzhDbmVXNStiK0JQSmpnc05pL2dBZHdTcVFHYUJHRkNXcGMwS25YQ1VyZGMwZ2grdjUrbXBpWU82VTBjMEJ1UHI4VVdESWFvUEhDUTZ0bzZHaHFha3ZWcXdaQXRhakdpbHFqRjQzRVJONndzcU9XQ1ZuNjh2cGZINC82T2V0dFBQU0wvcXVteXJ6MjZxZjdvN3h5UGRzbmZzZm9mai9EUzNtSUszSDVhR2dPNGgwMWtjR0FMZTVyOE5JZUxHZitObXppMzZQaG1mWHQ1dXQwRWZKek9hcE5JQ1VLYVNGTUFCbExHcFNrMFlVZzNjYUpvdUhFUmxpNjhwaHNSRE5MYzNFeXRIaVZIeTZDN0s0c3N6WGQ4TExaRXZWcE5zbDdORnJWRUVXNHNVWVNiR0JocHVhQW1walJ0RjFRVUZ4WGRDNHhSTW5CcUlRTTZaa08weTc1K296YU1HZENQOHBmdHVqRzJlT0dYK09yczczTHJ0eThuWStOYTZzKzlneHZ1ZUpDWlkvMjh2YTdpdUQrZlFJd0NwbHRXbXcvd1NpdldabW1OSUdHMVlWdHRjV21JR0FZeGFSQ1ZPaEVaSXlTamhFSWhXbHBhYUl3SHFZMzdxWW8xSEI5WDlGQjFMUWNPVlZOYjE1QW83V2hwb1NVWUlod0pFN1dLY0dOSmE4Mnd1d3ZzTEtnSUhkZ3hXZE9Fc3RaT1FVU3VwMnYvQW9aRTYrcS93eEh4a0oyYm0xZ2FrcGxQZGs0eC9mc2xmdWVjM0V6aWtjL054ZjdtSC8vNHgzUFR1S1IybGxTa1prbmpHT2pFaVVrclUycnFSQ0lSUXFFUVRVYUkrbmlBUTNvek5ici9zd21iSG85YkxtZzlEVlpweHlmdnJPS3ZmOS9BM3VZb2tWZzBVWVNyNjhTakFkSFU3Q2VzdDNZWHpKcHhqY3ZuOWQ2YjdyRTMvL1I2U3MrN2x4Y1BwTnhROXpJenpwdkdRKytsY1IzKzd5ZU12V2taNVVwVFRpT3l5UGoxTGZUWitUV3lDeDBYN0lUenlGOTlDNzEzM2szdmQ2Nm54emY3dDdtSWozUzc0dk9uVDU4K013ZUk3aGtPcTgxamhiMDBhY1hhWkVMWUV1TFdKa3NhSjBKQzJNTGhjS0lFSkI2aUxoN2dvTjVJWEJxZlh0aVNwUjBOalRUNS9iUUVnMFIwQTB3L0ZlWFZoR0s2blFVbGJpUk1kZGxhaUtzOTkvalA3d2ErM09HenhqNWswYTllcC9hb1htSUxhMVo5UU1uVVN5aFQxOHpwWXhWT21rQzNTMU1hMDB2SGtQLzBDRndiLzBuOVZYK2s3cGQxdU8rK25PNWZ5enE2MnhVbkJFM1RKcTQrNHdkVEhWYWJwMVhjcEl1a3VMVzZwRHBHNHBCeFlsSW5HbzBTaVVRSUdoSDhSb2pHZUl2bGtqWitPbUZyOWdjNGNLZzZVZHJSMUp6b0F3MkdpTVJOcEFEWmNwQ3F4b2pkQnlyaWhreTQxMUlLcEJRTjVSOE1kcmxjY3c3N3JEblo4TVovc3VpZkxVZCtoWFZ2ODlKN2c1aDVVUzkxeFp3dTVQWW43NEVCR0s5VllqcENlZTVKWitLcDNVbnpJOXVKYlc5RS8rODNhZG5nd2plcDcxSGRyamh4ZEhObDNmVEg0dHY3T2NXTnRyVnR3bG5iNXJUYVlzU0p4V0pFbzFGQ01rYUxHYUhaQ0ZFZmI2RTYza1RBQ0IrN3NGVWRTSFFYTkRRMk9WcW13c1RpSnJpN2taOGhDZGZYRWRUajF1REk1S1FTSVpGYVhwNzQxdVpsUHltWk5ua3lwV01tTS9hYWVTejZaOXZBbjNmZ1Zkd3pHVjc2NlhOc1BrSU11dmFOdjdQNUM1Y3p1ZkJ3NHJlUHpWdjI0VmZYVXljVHFCNTRKL1RGN1N3REczc1JSZS9kUU43WWprYlR1UERjUFlITXVrMDAvM2ZiVXBMNDB2L2kwT1Z2RVl1bC9JalBkVlMzZDBVR1hEM25VOVd3RlY4Mmoxc3Zzd2MzbnNtVmMrL21IR3RQc2Z1Y08vbnVOODQ1eGtjMGlQN2dlUTZNYUZ2RGRoajZucDh6K0dwU0V3bEN1S3hEUXhOSnE4MUlKQktJVzRrRVhkZUp4V0tFWll5UUdTVmdSR2lLQjZrN295L2gzMXhFejlkdlNoNUYvM0ZtdTNrc2JjbzlxbXZyT0ZSVFM1MDl0Y05xbVFwSG9zVGlFa3hCWmxFM1hBZWE4RGU3UkphM3RROFVpUWdmMkg1SjNhcjVkOHg2TnNZTlAxdkNzNE5oNi9LZk0rZit4emhyMVVLbUppL3dmQ1ovNzl0c3VPYm5QUFRjVmJ4NmQwZXpKZy94eWl2N0dEOXJMSG4ydHc2OHpZS2ZMbU56ckQvWDNQMXRKZ2VlWTg3U0ZzcDZ0N0Q1cVZFOCt0Uk1odm1VcHB4d3ZJVmsvZUppc2t2anhGZitrK1lOUlhUN3labXdKNHJyZ2JGRXZ2TXlMZHNOcU5wSDVOVW8rcDRPWWlWRHg5SjlHb1J1L1FDOWFGSktDTU5BT2dUUU5XRWNPZU9pUk83YmQzUzNueVljMkZmQkM4Lyt4eEh2TittS3IvSEY4eTg2cXNmMFhUU1FndWVtQWhCYXVZMm1INnc5OHM5b25wdmU2UGZBT3hmdC8ra21JRzRkaVg1U3BBbkNORUdBeEFCcElJV09JVjNFRVphd1JXU2NrQm5ESnlKa0dsNmFtM2JRd0Jlbzk0U1RHNjVpZGFPUTdPcFkyQTRjVEdSQm01cWFDYlFrQ25IRFlhc0kxNUJJYWFETERISjlRalJHd2tRMGo5Qk1LVWk4T00zcjlkNlZkOTYzV2JrOG43SStPUUJNbkhFNXc1WXQ0NE1LbURyQzhXU0ZsekQvN3BlWjlLdkhlUDZhcDdrbFhTSDQzdGQ1NmVBbzVwMmZrL3pXK3FYTDRQYkhXZGw3SzRzZXVJc1p1ZE41OXJtcktBUFcvL1JlWHRvNWsyRWpsTTZjOExqS3RQUEpxbjJUMnZ0aVpQemlNb3F1OStQLzFuOFQzZ1BpYTFkUmNFVVBXcmJYUWRVZUFqL2EwOEdqOUNEN0p5TVFyLzZkd0ljR1RPckFvbnZnZWdwbjVDTjhjZUlyLzBIejMwTEhjUHVwVDUvK0E3bi9rU2VPNjJORzM2amd3T0NuanZublNuMDlyd0grRGVpQUxxV01DN3ZPVGFLUjZFckFCT0tZVXBOQ3hJVWhSVHllc05wa25BaHVRbWJDSlcyb3JHSEhkUzhRenlobWVHYS9JN3VpKzZ0YVhkQm1mOElGVGZTQkprWVI2WVlFYVJDUHg4SG53eVVraGg3SHF2TFI3di9icnV1RkVGZjZDbk9vL2NkalRMdnlTb2FlTjVuU3kvNkREYkVZNlR6T2t1bmY1cDZCdTNuaXAzK25NczN0VzFmOUhmOUZWekhlWVlINXZGQzVZeDliZCs2bVBPb2xMN0NQeWdCQUMvNUE0bmJGaVVmNjQ0aWlIbmhIRmVQckMyYk1oNmN3OFdab2VTNWs0TWpaTE5mMUU4anQrd24rWCs1eldGN3RYU0w5dWI5UmUrMWZhUGpoTHVTa1NmUzRxY2N4M0s0NGtiaUVkdG1tZ1QrNXdPR1NlbHByMjVJZENaaE9sNVRFOUYxZDE1TmRDUkVaUzNRbEdHR2FqQ0IxZXVDd0hRbHVnSml1YzZpNnB0VUZEYlpPdzdYcjFlSm1RdGlNZUZ6RURZSEhKWVFSTjRWaENtMW9YcUZMYzdudkJDaGY5aEN6WHVyRndsLzlucWxEOHZFRi9zNk15YzkxOFBTRHVPV0JxM2hwMW5Nc2VtTjZxcXl4N0I4eEp2OXNGRTdQY3ZUZFArREs1NWJ4dTRwQjNQeXJKWXl1ZjVtNTM3Nkx4YlFRSFRpTEo0ZW9pK21rQ052ZjNzQmZkRDdaTStMRW5ucVY1bTA5eVB1UGFSVGx1WUJxQW5jZEladmxMU2I3bXdQUWlxREhQMHV0djJKdUJORHQvKzRrYStsL1VmdXJPaXVtMmtpOER1TGI2ekRQNmt2QnRLRzRYL2dYOFdUTTlRaTNLMDRvUFQzZHJoMmg5ZjdYRnZPZ2JsbHVUcGRVZ3BBU2FWcmlKdVBTRkNJZWx5NlhDeDB6VVFJaWRjSm1qQllqUXJNV3BzRm9vVVp2cHNpZGgwZTQwZ3ZiQWFzWHRMR3B5V3B3VDh4WWk5b043cnBPM0FDa2FZOGp3aFF1TkJFWHBwVENrOS92bThBNGFHSHpQM2VUTithYlRCK1NuM2lHUUF1SHl3LzRSc3hpL3BXdmMvTlR5OGlOZVpNbEhkSDNYbWFON3hLV3BycVZ2djVNdmZzSFRFMjZ0RmZ4NUF0WEVZMkNUOFhXVGlJaG9pK3NKZnFDL2Y4QS9odjNnZGNGc2FPb1BZclYwVEo3T1NHbnhUM3FmQXAva2tYdzFyV0U5L2p4UG5BOTNVdTMwVEQ3dzZSSXlTaUpuQnN1dkE5Y2U1amJGU2N0VElINDRySUJkMDhlc2ZlQlZVbVhGR3lYMUdxNVFpUk1wMFQ1aDVZWVRva3VUWFJjUk5FSnl4ZyswME9MRWJFS2QxczRwRGZSejF2US9qbkRrUWlIYWxwbnJMVUVnNG5Ca2RGV2EwM1hkZUpTSWpHRkVVOHVPaFpDQ0hGTldlKzhGaUcrbVhpNEhNb0c1bFAzcjJVOC84L2RiSDN2N3p4MC8xSStpRUcwUTNYTFllTGQzK1pTZ2dSYXIzTFd2YlNSb2lzdlo5aFJuandsYXAyVVZGSHJXMHJ1ejgvRFY5amV4VFQzMUJIZjdqanFvaENOSnI1ZkYwUGZXSWNZTjRhOGI1YmlMdTJCWjlKWThxN0lJdjdXbmtUMSttRnZWNXhNZXJpenI3MDc1OHU1cERUSUoxeFJxYVYySkJpR0lRekR3RmtDa21pVWp4RTBJd1NzOFVhMXVwK0kyYjQ5VG10WHM1WmNuZGNxYXJvZXg3Q0dqNWltYVMxbVFVaUVlR3p1Mk5sZVd2Vm45TzAvNUtFUmgzamllN2N4N1lFVitDK2J4Y3poT1VUckQxT3pWbmdKOCs4ZTJmcUhOZkEyTC8yekY5ZGMxbDlkRWFjYWZmdVRPYWtVWDk5akw4R1FhLytQK2gvdVFYeHRFa1YvL3dhRlB5NUZ2cnFXeGw5V0g5WHRpcE9IUUF5OXMrZWxsOUsyYUxkTkg2bGR0R3NtaEEzRFNKUi82Tkx1SlUySVc4aDJTWTBROVVZTDFYcFQrK2Y3NXo5ZVlsZDVSYnNGTGY0V3l5VnQzVHdsb3RIRUxvTzRZUWhwU20zcmh2L05IMXgyeGp0d25Kc0NEcnpOOC8vTVllcjBVUlNwYTZKVGNtRGN5MTM2OWZmWmNOVXhtQnNEanVwdWhtRlFXVm5KZ0FFRGp2cWh1L0RPZ3c1NTQ0MDMwdjloa25MUEgvN3doenVlZi83NU9pQUloSUN3RUNKbXVhaUdFTUswdGxsSmE5R0x0TGRZMmN0ZWNuSnk2TmF0Ry9uNStSUVhGMU5TVXNLZ1FZUGE3RWh3MTlXM3IxbXpWdWNsckRWcjAxUThibUJZMXBxVUNYVXRHempnbHVNdWFnQjlMdUNXNlVvOEZLYytFeWRPN0RTdnBYVXQ2T2RHNmFoUm95WTkvL3p6SysxWW14QkN4eXIvRUVLWVFvamttajduM2xGN1czeE9UZzU1ZVhuazUrZFRWRlJFNzk2OTZkKy9QNE1HRGFLc3JGV0tOSHNwU3pEb3FGbXpkeGZZb21iNXU2WnBDdE5xbmRyMGY2dHlYUzd0Rm5WcEtoU0tvNlZidDI3WHpKMDdOemZwamtycHNkelJwRXVhV05kcENtdTdsYkJMUHhMckJ4S3RWdmFtSzcvZlQyTmpJelUxTllSQ3JmV0ttajFuTFJRT3Q0NzV0dUpxdXA0VXRuYlcyb2hoUTJZQmc5UmJkWHJpNnBWMWVyeDJ6YVhlN09PSUVLTHN2dnZ1dTVqMlNRU1hsRkpMVE42V3dqUk5MR0ZMMXJUWjRtWTN5TnN6Mit3VmZvY09IV3A5MnhJZEJna1hOR0tOK1U2NG9EcHhvNjIxSmkxcjdjYXZYKzF5dVZ3M3FiZnA5TVUzcHFEcnZ2WXZGQjZEQ3FwYWtlTk5mbjcrVjB0TFM3MXByRGJOdHRvc2NXdG50ZG5pWm84MUNnYURCQUlCR2hzYnFhMnRKUkpKTEgvUm5OYWFNd3RxRDQ4MERBUFRNSzNsTEFscmJjbVRpMjRFVk9QU2FVemVQV2VUZFhWL1hIMnp1NDZsMWplTDdPbG5rRGRuMk5IL2tDZFR2ZG5IMzJvNysrMjMzNTV3TkZiYjRTdzNwOVhXM056Y3htcHpKL1lYUk5QRzFoSzFKQ2FHWmExWkZwdm1kcnR2VkcvUDZZM1d6VXYzKzBlZDRwOUFEYnc1NnMzK0hDZ3VMcjRDZU5NU3RwaVUwaTJFY0pOSUpHZ3lnYkRLUHFSaEdDSWVqOHZVV0Zza0VtbGp0ZFhWMVZGU1VvTGJLdVd3ZDRJbWxURnUxWkVZcG9FcEpWSktKSWpRd1IxVGdBdlVXNk00NWNuc0JrSjgvczlqR25Cb0s3VFVuRFpic1RRNGIrZXJpMGNOdnVLT2paYkY1a0ZLSFlGTFNnd1NoaFNtTkRHa2dTRjE0bWFVdUJFbUhnK2l4d1BFWWsxRW9nMkVJelcwaEEvUUhQeUUrcGJkSFBML095RnN5V0xjdUcydEdSaTJHMnBLcEpsWXpnSlNlRDJlR2VxS1Y1enl1SDNneS92OG55ZlVDSldiUVErZGRxZDRZTi9pU2NBSFNhc05QRUlTUjBnWENGTWloWlJnU2lrTnc4UXdUT0tHaVc0WTZMcEJUSThUMVhYQ2tTakJjSlJBTUV4VG9JVzZ4bWEwYUNUaGd1cHh2VzBXMUhKRHJhUUJVaUthOW00WklZUzRWbDMxaWxQYm5IQkJUczhUODF3dE5hZWxxQUY0M082ci92ZTNDL3NsTGJaRW5DMWxOd0tZVWdvakVXc1RjU01SKzllTk9IbzhUaXltRTQxWjRoWUsweHdJMGRBVVFIT1dkeVFMY1cwWDFEUVRibWpDV3RPeXM3T3VVMWU5NHBTMzFQSjZKK0pySjRMbUE2ZjE2UjQ3WXNpRnBHeXpRbG9aVW9rbXBSU21sSmlteExBVENiYTR4UTFpOFRqUm1FNGtHaU1ZaVJJSWhtZ01CTkdTVGU1T1VVdGFhM2JDQUxIcVQ3L0wwRFJOQ1p2aTFFUzR3SnNOdWIwUy96NVJuT2FiNW5PeU1xNllPV1ZDaG0yMVNWdmNFclBhQkltWlJpSmh0VWtNd3hRSmw5U2EvcUhIaWVseElwYlYxaEtPNEE4RTBld3NxRzY1b0hiU0lHbXRXU1Vla3k2NjRGcWduL29FS0U0TklkTVMxcGszQjdJTG9Yc0piZmI4blNpNjhFTG00MFRKbzNOdkhaZkdIWFZKMEtTMGhZMmsxUlkzVE9KeEU5MjIydlJXcXkwVWpoSUloWEhydUluanhzQkZYQW9NS1lRaEJZWWxhSlpxYXU3QzB1a25KRU9rVUNoT0szb1dkTDhFZU50aHRibUZ4SVdRV3VJdmtKUlNJZ3dwTVV3cERkTVFjY09RdHVXbXgxT3N0bEFFcmRVTmpTZEhoU1JhcDZSOWlNYkd4dUZDaU12VVc2QlFkRDJpYi82R29YZTh6TlpPK3ZyY0x0Y2xhNWNzU0UwaXVDeXJMVG5PU0pyU0t0ZzFMY3V0TmRabUp4SVNWbHNFZDdKdXpSSTJNOWtUbWhBMVFPVGs1SHhOWFI0S3hRbWs4ald1dVBNVnRyVisvTW50T1pESjA2Y3hmMG9KaHkxRWFkekZpLy9yWi96ME1TZHd5Zmd1SHJyeEtaYWxqa2J6bk12aWxiT1lmSVNmL3VMd3dlT0FUMUtzTmgyQmhpUlIraUdRcG1rbEVxelNEenQ4MWpiV0Ztc1Z0dGFrZ1RYRnd6UnROMVJvbW5hMXV0SVVpaE9NWnhBTGZqdUhHM29BNkZSdVdzMmNSNTlpYnZhUGVQYkN3elR5TjI3amQ4dXF5THQ4REdVbnRISEN6YVVQUHNhejQ0LzlKM096TXljQi8wM2JPSnNiWk55cWtoYW1GV3N6VEZNYWlUNVNtWWkzR2VoR2E2d3RISTJocGJxZzlvSFZpQm9NQmk4QmhxbXJUS0U0cVNwSHlaZ3AzRHhFWi9PV0dpci81MWR0M2N2cU41ZzI3UmY4OHIrZVlld0RiN0JIMzhYYzJROHpkNU4xdTE3TlM0Ly9pZ25UNWpEMCtvWE1XVnVkM0VVU3JkekVRL2Mvek1ocDMyWG9qYi9nOWhXN3FMVnVXLy80ZzR6OTBaK1plLzh2bUhUamZZeTg0eG1lMzM2TWRYZXhTcDZaODEydVdGcVplTTdHVGR4Ky9ZUGMvcWExNHJ6Nkl4WSs4TWpRUWYzNkRiVUVyZFVkbGJoTUtUWERsQ0p1bUNKcW1CaW14TlFqSEt6elV4K3p5ei9DN1A3dzM3eTVQOFR1RFcraDJhS1dMcjRHQ0ovUGQ1VzZxQlNLazQxTzdmWjNXTGJEdzdBaCtaUmNPSTdSTlIreHlsclJXdnYrUjJ3dE9aZXZYWHNuRzM5NkVhV2VNM2wweWNNOE9zYjY4Wm9xYW9kL2cxZFgvb3ExczR0WnYrUmwxclFBc1FvV0xmd0xXNGZjd05xVmovSGh6eWJoVzcyRU9hdnJrODljVnhubTBudnZZKzBmRnJKMFREMkxYbmcvS1h4SGhiZUVXKzY5Q1A3K1oxNnM5TFB1Tnl2WlBQd3FGbDZZQjdFS0Z2em9SVFlQdVk3WC8vcjRlYzQ0bTdReW80Q21DU0ZjQWpCTklvYkVNRUZDTXVhV0dLMEdwbUhTOCt4ekU2Nm93LzNFYm5hM0RrMEljYVc2cUJTS2s2Rmx1NW4vLytZd1B4bGo2OHZFNmJPWlB5a1BPSWRyaHF4azhadVZ6Q3ZOWjkzNktzb3V2SzdqbUZyZmM3bGpVakY1UU42WWN5aDcrZzFxZ3hEZDhUWXJnaU40ZHVhWmlUSDhKV09ZUC8wZEpxeCtuL0lwbHdKUU9PSkxUQzVPV0kyalI1VEErbW9xSWMzWS9qaXZQVEtIVXNkM0xyem41eXlkbElXdmRBcVBYcjZOR1F1ZkpDOVl3cndueDFFRVJMZTh3WXJnQ0o2Y2VTYjl2RndDTEUyMTJvUklkQ0lnaEttQlFFck1oUFVsVE1PVWlUaWJoaUhCdEZ4U2Q2cTFacnVoZ0FpSHcxT0F2dW9LVXloT2Rvd3RsVHdtZnZsTUZyeThqZkxwK2J5Mkk1OHJieXMrV3E4MjRZTHFFRzBNRUMwK2l4TEgyTG1pbnZuNEdxczd0TXA4bnlyRzVtSFlWeTlpOU1zdlV2N2w2NWh1L1U3UlJqK0JwZ3B1di81OWdENERCdlFmOGNrbis5NXJHMmREQndRU0lZUVFta0NhMWhSejB6U3RqZ1F3cFV3S201WXFhcGFsQmlDOFh1OFVkWFVwRkoyVG92RmpHVjN6UHN2K3ZvWE5KZU9ZV25Mc2orSHJrWW12dXByS1dPdjNhbXNhaVBZb1BzNkxsRUtzWDdhYXpTVUQ4TDIxbWhldHhXRytuRHh5ZTM2SjVTc2ZZL3ZLeDlpKzhqKyttR3F4U2RuYWlXQktpU0dsTUdXcUsyb21GcFNhaWRJUHpSSTBlNmlic01zOExEZFVDWnRDMFZuSk9ZdHJoamZ3NHJLUEtKa3dncVN1ZVRQeEVhS3k2Y2hCZnQrSWk1anVmWjlGeXlxb0JhTFZtMWl3b29yUlU4NDlycVVpMFMydk1QZXRmT1k5T0lkSHYreG4wZU52VXduNGhvOWxNaHRadEtJQ1A1Q2hOMTZVWXEwbFYvUkpwR1phb21hQ0VFaWlFVjNvUnB4d3dFOWRIS1NacUd0enB5WU5iRGMwRkFwZHJOeFFoYUl6azhYRVNZUHdiZkJ6NVhqSHFQYVNjN2o1M0hkNDZNNGZzKzNCaFR4NnVJZndEbVRlajcvT2dsOHZaZEkwUDlIc2ZDWitkVFpQVHZrMG85L2J4OWpnTEJhOU1Ja1BmcjJCb2huM2NVT3hCMlpNWS9JOUx6QjM5VmtzbnpLTWhUK2V4b0pmTDJYQ01qOVJiMTZmeTJaK2U4Zy9sdjNuaHlUN1JuRkptUmdaamhCQ0F5R2xrRjZYSUtwSE9WZ2Z3K1Z5NDlNa3BsWCtJWHIyN0VrMEdoV3hXSXg0UEM1TTA5U2tsQzVkMTMrbWFkcDMxTVdqVUJ3ZG4yYXZLQit2K215VzBLWS9NbWw1Q2N0L2VSRWxwOGg1RElZaVMzTEdYdnNpMEFJRWdLQ0FNSUtvUU9oQ1lHaENtRzZYSnIwZUZ6NnZSMmI2dkdUNmZHUmwrc2pPekVCTHpZYVNxRi9UTkUyYnBDNVZoYUx6RW0yczRQa1YyeWo1OHJtbmpLZ0JaR1g2emt2bmltTE5hY051czVKU0pEb1JUR3VGZ1pIc1JOQlNpbktSVW9xR2hvWmhxR1V0Q2tYblpjL0xYSEhyTTd6VTR5b1dUc2s3cFg0MUljVFpxNS81VWU4T3hFMUlpVUNDS2ExTXFMT0gxRHJjcVEzdkpIcERMMUpYamtMUmlTbTlpclVyVDkzYStURm5uemtNMkc4TG13U1hrR2dJMjJLVFFvS1VkdStvZGRoYnJaSlpVVnBIRkFtWHkzV2h1bklVQ3NYSm9udGV6aWpMU2t0TytrZ2NzbFdycE4wL0twT1ZIWVoxYUtrVzIvZSs5ejJYRUdLaU9yVUtoZUprNFhHN3podDVacitVaHZoa25LMTFsQkdXS3lyYnVxTmFpaHZLd3c4L2ZBSFFUWjFhaFVKeEV1bjIvQ1BmTFhWYWJUTFJGSi9ZRmkvQm1xNkx0RVF0T2RMSWFiRlpDSi9QZDU0NnB3cUY0bVJUV3RKclNIdFhGSzNWSFUwWVphWjFHTEkxRWFvNXl6eEl6RjQ3WDUxU2hVSnhzc25Kemp6SFliRzFLZnV3OVVwYVdWSnA3VDgyWkdLc2tXWmJhMUpLY2UyMTE3cUVFTXBpVXlnVUp4MjN5L1dGQWIzeVhTa1dtOHNTTkUxS0JGaHh0amJ1YUd1TVRRQml5WklsWHdSeTFDbFZLQlNkd1doYjl1aDkvWjJpSnExOW96aFc4eVhpYk02YU5vZkZCcENSa2ZFRmRTNFZDa1ZuNGN3QmZkc2tFR2diWnlNMXppYWxpU25OVnVValViODJScDFLaFVMUldlaVdteldFZHNtRHRuRTJISEUyMDB5MFdia2RZNHFFRU9KY2RTb1ZDa1Zud2VOMkQ2ZDlqQzNaTDRxem5pM3BqclphYk96YXRhc25NRmlkU29WQzBWa1FRZ3o2NWZkbTVYUWtiaVJVTFZuUFpydWxkb3hOOU9uVFJ6VzlLeFNLVHNlbDU1L2J4eEl5YStBa0doSmhUOVdWV0pVZFZoZUNsSTdzZ3NmalVjS21VQ2c2SFgyTEMvbzdyTFIydFd4WUk0eGF1eEFTd29hVVVyaGNyclBWS1ZRb0ZKMk5uS3pNTXh5aTFrYllyRGhid2lPVkNNc1ZGWnJkSXlxRVVNS21VQ2c2SFI2UGUxQ0txTGtjRmh1dDRwWklJTml1S05ZZHpsS25VS0ZRZERZMElZWTRyTFQySlI5cEVnZ2FJR3BxYWdaenVIV0JDb1ZDY1NTcU56RjN6b01NblhvZmM5YnJ4L09SZlNzZnY3L1FLV2pTbXNkR3N1VERUaUE0TExhY25KeEI2bDFSS0U1WC9MeDQveTlZVkFsVXY4RzA3NzlCNVRFL2hzNmFGLzdDdXA1WHNmYWxYL0RrZUUvYm03ZS94SVFibDdJbTl1bGU0ZERTZmtXa0xkSzFPeEFTZ3FickJ1RzRaYkc1M2U0eTllWXFGS2NwTGJ0NHMzRWdGNVpBN1padFJJY1AraFRMWWNMVU51cVVqQmpVWnF0OGt0S0xlSExlRk1aN1A5MUxMT3lSVjV6R0hSVnREeWtNMHhTNkFXNHBwZEEwclZTOXV3ckY2Y1pXNXQ3Nkl1dUNZZXBpSGpiZitCSFJZSUNvdDVJSk5kZXhkdDQ1YmVOVHNVcGVmUHJQTEY1ZlJTMlpERHQzQ2d2dnVvQmhPWlU4OC8xbmVHSkhuTmlPUll4ZFBaWm5GMS9EYU9mUDdsakw3WS9vUFBxbmJ6RCt6ZDh3Y2huY1VCcG0zWTVxYW1PWlRMenBOaDZkVkl5djhXMW0zUG9PZVJkbVVybTlnZG9tS1B2eU5CYmNPS1JQVzBzdEdWOFRKbEpvZ0c3YXhtTTA0WW9LSVFhcU4xbWhPTjBZeHFPL2ZZU1ZNL295YXVaMzJmaUhPZHhSTW9qNXp6ekNXNm1pUm9nMWp6L0RFNDFqZUhiSlkyeGZjaWZYQkZjejYvRk4xRkxDbmIrOGovbkQzWXk2YVI0YlUwVXRIVFVOTUdVV2EzLzdDRy9kTzVEMVMxNW1UVXVyYTh6d0cxaTUrR0UyUGpPTm92VXY4cE0zUTcwdHk2eTl1QUZTQ09GMmljUWQzTjdFRFVLSUFlcE5WaWhPUjNTMjdnaFFka1l4dEZUeVFhd3Z3M3FrYzFlM3NHeDlKdE52dW9oaE9VQk9DVGZjTm82ODk5OWhYZU9uZU5xZVozSE5pTVRhd0x6U015bUxOVkFidEc4czVzSXhCUWxoN1hFT2QweklaZU03TzBvNkVEVjdzUXNrQnhWSjNOWU5TdGdVaXRPTXl0WFBNR05aSmY2bU1HeDVrSFdFcVF0NjJIeHJCVGMvK0QzdWRBYW9tdnpVVWtCcFQ2YzQ5YVdFajlqVENQVDREQy9FeWpORWRTQk5ESzZvT0EvK0hlbVhZckVKQ1pwSW1hWnJ5NXUyYTlldVlpQkR2YzBLeGVsRnlaUTdlZXVaYVl6dit5V1cvdUVSWHAxNUptZGRkVGNiZjVzaWFnRGQ4eWlpbmowMWJkM0pXdklvN2ZINXZzN0t5Z2JJenMzNDJieGJjanEwMkZMUUNnb0tlcXUzV0tFNFRhbXBvSmt2QnFBQUFDQUFTVVJCVkx5NGhES2dmRTg5SmFYRjZlK1hNNEtaNDhPc2VPRnR0cllBTFpXOHVQUU5hcy85RWhPUHU3QlZzZXAvSy9BRDBjcTNlZUxOTU9Nbm5Na1hCNStSNXhDeTFucTJGS1JwNHZiNWZNWHEzVlVvVGsvOGxRMVFNb1k4L0pSWGVpaWI0dW5nbmxsTXZ2ZE9hcC8rTTdObXI4UWZ5NlJzL0JTZXZXc01SY2Y5VmVXU1Y3bWFhZGZ2b2pLV3grZ3BOL0RvcER5YWQvZkk2OEJhYTExR0pSQ0dhVWdSalVidjlIcTlUNnUzV0tINGJCaUdRV1ZsSlFNR0hFUEkrdU5WNnNRNWFYeWJHYmUrejVXL25jTU5LWlpnWlhYZGduNWZ2dmtkSUdBZkFrSUlJZ0lSRXdKREU4SjBhWnAwYTVwV3BNNm1RcUhvN0dSbCtQSWNibWdiUzgwNTVRTWttcVpwQmVxVUtSU0t6bzdYNDI0WFl5TmRqQTF3Q3lIeTFTbFRLQlNkZ2g0WHNIemxCV2x2Y3J2YkNGdjdReUpzbWRQNGJCVW9Db1ZDY1VKd2FWbzZWNVEyVnB0VnFLc0JlZXFVS1JTS3pvNm1pUnpTeGRaa0czRVRFdENFRUVyWUZBcEZwMGVJOXNLV2FyblpYVlVha0sxT21VS2g2UFRDbHRBcXAvdVpwdXRBSm9VdFM1MHloVUxSQlN5MnpCUlJjMmllYkNOd0dwQ3BUcGxDb2VnQ1pCekdEVzFqdFdtazdhZFhLQlNLVG9lM3ZYZWFUdFpRd3FaUUtJNkdFSnRYUE1PRTY3L0wwTysvUnZuSkU3WjJDWU4yQWlkYjU0Y3JGSXBUbFMxL1p0TENqNGlpczI3UlF1WnUraFFicENyZjRhRmxmaVkvdkpEdHY3eVU0N2NrcFo1MS8vTUdhNnFQNnM2dXcxaHMxa1o0TUdsdFMxQW9GS2NvV3pkVlVEUm1JRDZxZUcxUE1SY084Uno3Z3pRMlVKdmRsd3VISHU5Y1l3T3ZyVmpOYTBlM0ZrdnIwRXF6VExYRUpuZ1FVa3FwM25xRjRyUFQyYVo3bFAvUGs4eFlVWVcvU2NmWFBST2ZubGphVXBqZGs1dC8zSDZZWk8ybWw1bjdtM2RZWDZQajYza20wMmQ5bmZuakM0aXVYOHFFeHoraUxnaTUyWm1NbjMwZnowNXFXLzRhcmR6RWdsKy93aXM3L0VTemk1bjQxV2tzbkg0bVJjQzZSZmN4TjNzMkc3OTFadUxPNjMvRDBOL2tzL3pIZVN5NGZ5MWJtOEtRblV2WjViZng2bGNyMHk1emVmUzJjeWdCeFBDcDA0QWdpZWtlZnFBRkNBcUlTdENCT0NBMUVwYWJRcUU0eFNqNzZodzIvdlltcHZZOGgwZC8rd2h2M1hzT2ZTK2N6Y1kvcEptUVcva2FzeDc5aUpKWjgvaHc1UzlZZTFzKzZ4NWZ3cUk5NEJzL2k0MFBqcU93KzdrOCthZEgyb2thc1FvV0xmd0xXNGZjd05xVmovSGh6eWJoVzcyRU9hdnJELzhDU3k1bDVSOW1NNzE3SmxQblBzS3Jzd1phTjdSZjV2TFFXaitIMVNxUm1CT2VHTXFtb1FHR3VnUVVpbE9VbWlyS2V3NWltQmZLdDFkVE5yeHYycnR0WHYwT2xjT25NRzk4QVQ0OEZJMlp5cnpoRGF4WVhYSEVwNGh1ZVpzVndSSE1tNW13MEh3bFk1Zy92UytiVjcvL0taTU03WmU1ckg5ckcvNzJXdFcrVjlUQ0RjUklybE5RS0JTbkJsdDU2STYvc0tiSlQxMHNrMmszcms3c0RNMStoQW52VCtQVmVXUGFOSW5YTm9iSkt5NXdmQytMa3BKYy9KWDFSQm1Zc29vdlJkZ2FBMFNMejJxektMbW9aejYreG1wcWo4TnZrbGptRXNhZjBLcWpRdU1ZN3F4UUtMb0t3MWk0K0dHV2ZqbWZDKzk2a0kxL21NWFVuaU1TTG1tS3FBRVU5Y2pFWDEyUFAva2RuY3FhQUhrOUNnNHJhZ0MrSHBuNHFxdXBkQ2hKYlUwRDBSN0ZpYkhobjdHZ3pGcm1RbDU3clpJcFg5c0lXMWhkQkFyRnFVaUk4bW9vSzhtQ3htckt2Y1dVZFNBeW82ZDhpWkovcjJYUkpqOVJFb21FSjk3UFovcVVnVWQ4RnQrSWk1anVmWjlGeXlxb0JhTFZtMWl3b29yUlU4NmxEQ2dweWNlLzVTUFdOK3BFR3l0NGZuV0ZRNkU4K0x3NnRUWDFSSlBmUzcvTUpROGlSL1ZyeTRRckdsSVhnRUp4S3RMQUI1VUZuRlVDN0syaXR1ZWdqdXZQU2k1bDZkd3djMy96Q0NNZnNiS2k5ODVtWHVsUlBJMTNJUE4rL0hVVy9Ib3BrNmI1aVdibk0vR3JzM2x5U21JNGQ5bmwxM0hQbHFYYy92L1dFZTArZ0trajhzbE4vbkJmcnBreWtGbS9lWVJKZSs3a3JablEwVElYS1dVNGpYWG0rTDlBQ0lrcFRTbWtsQjhBSTlWRm9GQjhOdFF5bCtQQVlaYTVtRkp1Y1kyNDZvZTBsbnM0RjdwRUJVSVhncmdtaEtsSktmM3FiQ29VaXM2T2xMS2xZMnZObnAyYlFBT1VzQ2tVaWs2UGFjb1doNERKZElKbWVhUzRwWlJOUWdoMTFoUUt4Y25uTU10Y0RNTUlITVppYytvYW1wU3lRWjFOaFVMUjJZa2Joai9GWXBQcHhVMmdTU25yMVNsVEtCU2RuV2hNOTNmZ2Zrckh1Z01BTk1NdzZ0UXBVeWdVbloxUUpCcWdmV3hOdG5kRVFkTjF2VnFkTW9WQzBkbHA4Z2M3Y2tXVFltZG5DOXlSU0tRbUp5ZEhuVFdGb2hQeHlZRWFkUkpTK0dEN25rREhvaWF0RmFPSlFXenVnd2NQSGl3c0xGUm5UYUhvUkF6bzAxT2RoQlNxNnh2dGNnL1RGaldSOEQ2bDdZSUtJZEEwZ1RaeTVNZ2FqcllIUzZGUUtFNE9rYm0vV2hvNmpDdjYvOXQ3OC9pbzZudi8vL1U1Mit4TGxza2VFaEtXRUVSQUsrRHZpbGgvNk5XcWJTOVlXclM5U2x1K2FQdXIxRzhMMVFxOXRxQnRvY3RGYnl0V3IxaGJzRnFnVldwUlJCVFVGbGNVTlN5YVJDQVFRc2pDekdTWm1YUE81L2ZIbkhQeW1aTXpTYkJzd3VmMWVCd1RBbWFaTS9QTTY3MTkzdFRhQ1krK28zYjM4OGVOaTR2clRCV2w5SUFOWkRyajNESkVETEJSU3VrKy90QnhjWEdkcWRKMC9hQU5haGx1emR5WWJBU2thYkRwdXY0eGYraTR1TGpPVkNXVGFyT0RZM05zK1NBa3ZmT0FhcHJXeUI4NkxpNnVNMVh4N3A1bWh4QTBhK3VIbEtaaHNrRlIrTjVrTGk2dU0wRXBiRmo2QTh4L1RVMy9zV0FhZm43SFoxb3hoQndiSVNSZEdRVkFPem82NnZtRHljVjFaaW5SOUJZVzNYazN4bDkzRzJxKzlrc3MyTnpFbkRJN05FRFViWDRlYTNlZnJMTmtXN0JwN1N2WTNuR2lQNitNNnhiOUNydlcvUkx2TEJnSEJVQkQvYjQyQm1ZMjEyYU9VeEhydndJQVdsRlI4UkZ3bkk4WkZ4Zlh5VlB5UXl4WitpUjJWTTNBK3NkL2hzMEx6MGZUd3c5Z3dmYmpnVlFQZHJ5d0VXdjJuS3pULzF1d2JzMUwyTlp4Y2o2N1M1RVJUQWVTaVR1K3Y3ekQ3dFFJb0lOazlMU2xDd2drSFlxYTFtNFhnQW44R2NYRmRmb1YzZjRTTm1BU0hwMTdmdm80NzNGWFlPbjFiK09hcDk1RDY1VEppRGljTkx0cDZmL0Zrc0xiOFBMY1N1eDQ5T2VZOTJ3N29sMHFrbnVXWWZ6akFPUVJXSHpmWEZ5ZkEwUTNQNEJKYXlWY1Y5aU9IUTN0YUZWS2NmM2NHN0Y0U3ZvNDc4UzJoekIrVFNIV3IvdzhhZ0VBSDJMUjF4NUc5THMveDMwWHR1Q1JPKy9EaWtZVmlWUVB0djd3QjFnTndEWDhhanorMDh1eUh6K2VvVzVzWDdzYVM1N2FoZm91SUZnMkJuUG1maG0zamdzNi9GdTZ4d1kxSFlCT0FRb0tDcVMzdmhOaUxCYWxlanJIaG5SbHRFNFFCQTQyTHE0elFFME5MVURWWkFNcWFWV1Bya1R3cVE5Umo4bnA3VThEYU9MTlA4RHJOMGV4K3M2N3NXN0tRcXovUWw3L2Y5U3BZc0tpLzR2bFpUSmF0eitLR2YrOUdsVXJic09OaFlOOWQ0WDQray92d2RleEUvTm1QSTNxZXhjTmJUY0NHMmEvdFI2M1BRVXMvT25QY1gxWkNuVWJmNCtiNzFtUDZvZHZ4cFcyQ1U5ZDErdlJQN2VtQTlDSjJaUkxRVFZLSVlHQUNDSUVRZ2dGUUZWVnJlTlBKeTZ1TTBPSkxoVXVSY3BjZmVlVDRFcXBKeTVuVkRBQ1U4clNLNFVqVTY3R0RRVWY0Mi92bmFJRHRSVVpybFFQV2p1aWlNS0wycXUvaWMwUHpNSTBoN0YxWFV2dVEvLzhHaE9DRWlvUUFKUkNBMU04QUVCN2Vubys0RThuTHE0elF5NmZoRVRTQnJFdUZRbFpHblRQNXlkVEFHVTVRTFR6MUd6amRJMmJnY2UvT3dhNzFqeUE2Vis1QzlQL2F6MDJ0S2lPUDF1eU4zN1FCalFOOXBZUFFpaEpUOEpUUXZwR3F1amV2WHM1MkxpNHpoQlYxeFFDZXo1RVhVWjQyb1JvMlVnamh5VURTQ0Z4d3RhZHg5RFVBZ1REbmpSNEZCbXVWT3FrVlJRVExTMUlqTDRNOS8xMEVWNy8wMTI0YjJvUFZ0NjlHbXNkQ2hIUjlnTXRCc0EwQm1yR1pWUkVLUVVGSUJDU3ZremlUWjQ4K1NpQUQvbFRpb3ZyREhCc0YxeUI2K1hYc2VTaE90VEh1OUc2K3lVc1dOdU9LNzh3THAxZnl5bEZiY0ZCL08zbEprU1JRdXZ1NTdIcWZkWDJXVHdveTVGUi8vWXUxQ2VCUkR5S0tBdkNJenV4YVhjM2dCVHFOeitOVlVjcWNhMlp2QjllaWVxT1hmamJlOTBBdWxHMytTVnM2clIvbDBHVTViUmorOXROaUFLSWRuUVBHWVN0MjUvQU5YYytnVTB0S1FCZVJBb0RjQ1g3ZzdRM2dZK09IZDdaZzZ5dEh1bExwd0NJQUpta2l3aFc4UUNBcnV2NjI0SWdqT1JQS3k2dTB5eWxFZ3NYemNLUzN6eUphMmEzQStGU1hIbkRyVmcreFd2OGd6TE0vL1psbVBmZnY4S0UzOHNvUGU4Q1hIbGVBRTBabjBUR3RKdG00TXA3bnNZMU01OEV3aFdZZjlmM2NHdU44ZGMrTDNZOS9pdE1lcThkMFp4S1hML3d4cjdDUWVHL1llbE5IK0syZXhaaFZkS0RDWmRlZ0NtbDltK3lFcmZNbll4NXYva1ZKdndlQ0pUK0crNjdieWFtRGFIWHYrd0xOK1BCanZWWTl2MGY0TFl1d0ZWUWlldS9lNk5SNGUxcjBLV1VmdUFVaHBKMFZWU242ZVBYQUVLb0xLYmRHaUVFUkJSRldkZDFDWURjMDlOenE4dmwraGwvVm5GeEhiOCtUUXVUbzVzZndLU25SK0NaKzY0WVludkc2ZEhob3gyL0xMN3NQMTlGZWtseUhKbExrbnNCa2hJSVZFS0lMZ2tDVlNTQktvcWN6ckdabGRGb05QbzJmM3B5Y1hHZEtkcmRjR0NmemEyeE9UWktqSkVxb3pHWGtuU09qUXBzbkRwcjFxeTNEU3B5Y1hGeG5XN0Z2L2FENVMzSXJJUm1nTTI4Q0NHVWtMNFRkQ1ZDaUhGS09QU3RXN2ZxbE5MdGhKRHAvREhsNGpwN0ZaeCtLM2FmNGE5eVZkUGVhbXJ0N0FjMVk1U0tBc1J3YmVhTWFCcHFiQjhiakxlNnFxcmIrVzNuNHVJNjNZckd1OTkzQ0VQWmNKU21ZMUJZYm8yWTdSN0dINmlaWjR2RllxL3poNVNMaSt0MGErL0hCeHNHZ2hySk9EbVhRQ0JHSDVzZ0lDUEhCa0QvMXJlK3RSM0FNZjZ3Y25GeG5VWWQrOGFpWHpkbGdacERqZzJVQ0FTQ1FLZ2dHSTZORVgzeXlTZFZYZGRmNW84ckZ4ZVhreWc5K1Y4anBhcXYxVFVlWXNOUU5STnVmV2V3TWVFbkNCRWdFQ0ZkUENDRW1IMXVGSUNlU3FWZWNibGMxL0pieU1YRkJhUzdZUStuUERpU1VLQ0JJSjdRVHVyWGEydHIyNWt0REtYcEFnS2w1dFFCQ0ZLVUFGUUVxQWlxaTJtd0FWWXZtMDRwcFMwdExhOE1HemFNMzAwdUxpN29GTmdSQ3dLdUFQeDVRZmg4ZmhTZTVLLzU0VWQvcjNlQW1nWkFNMWxGQ0tGRUVDQUlBbVJaaHFLNDRISzU0SGE3MDhjV21ZVUQwN0ZWVmxidUJ2QSt2NlZjWEZ5SFUyN0FGVUJoVVFsOFB2OHBDSFZwM2R4dmZyM05Gb2FxQnRSc1J4YVpQV3lDa1Y5TGcwNFFCQUZNbnMyQ202cXFXL2d0NWVMaU9wSlE0QThFVDluWDYrcnFlZzNPdWJXK2ltamFrQmt0SGdJRWdjQ0NtaWhZN1I1bUtBcmpmOVNqMGVoTC9KWnljWjNib2hUUXFKRGRxYlZ0eDhydmZRV2Z1L3hpVEwvcVAvRER2emNEQUpxZi9DWXV2ZVJpNC9vbS90dzg5SzlaWC85UkhUTHphN2JDQVhUTGlCbVRCb0lnZ0JoUUV3VVJrdW5ZR0xoUlNxbWVuNS8vaXA3ZXZsektieThYMTdrcFFvQjRVc3VTVTR2aDVmc1c0MWw4Q3l1ZStnK01WR0tJSVFBQUtKNzFNTFo5SVlGRSs5K3g0TVpuanVkTEhycjJjMWZ0dDRXZ3htVVBReWswVllja3A2RW1zbzdOc0c5T1MwYzFUZE9lNDdlV2k0dkxXYzM0NE1Na2FxLytIRVlHQUxnQ0NMQkg0THBjY0IzbnV1S2VucDV0MmR3YUlkQ1FzWEtQVWwzWHFKNTJiRlFRUklpQ0NGSHY3Ty9ZekxsUkFIb3NGdHNjRG9lL3ptOGdGeGNYRTM5aTQ1My9pZnQzSkpHTUo0RmZYSXZQL1FLQU1nVjMvbmtKcHJxRzlqbGUrK015UFBqa2R1eVBLeWlhZUEzbWZmKzd5TzlzZk5jR05hdHdZTFI1NkFSSUE4MzRUTWw0SE8zeE9BUlBCRlZsUG9qRW5RYWJlZW02bmdHMzNOemN6VHdjNWVMaXlsUWVydjdwTTdnYWU3SHlocm5ZLy9XLzRkN3B4N2VKWWQrVFA4Q1AvMTZCT3gvY2hLbTVjYnkyOG5iOCtIdS9QZlRlMXA4MEdzWkt0WU1ObE9vZ2hJSVFLZ29pUktJaHFSSjR3aUVFalRZUFVSUWdlbklncEMyY2tERXZ5cFJVZFUzVE52SWJ5Y1hGZGVLMEZ4di8raUZxdi9wZFRDMTJBYTQ4VEw3bEc1aDQ5T21YNEpoYjZ6OUtSVWg2T3hVaEFESENVRUVVSVlvaVJFbUNJSXFpNWRqTWtCUjkrL3UwenM1T0RqWXVMcTRUcUhhMHQvdFJWQnpvKzVDckFnRnYyNDVzWWFnRnQ0dzJEd0FnU0VNdFhRMFZSUkdTS0tiQlpzS05nWnJWenhhSlJGNUJla3M4RnhjWDF3bFFMbkp6NHpqY0ZyTStRbnViOS96bWpRUDJhbWpLaEJySlBESFhPQ2szL2YreVVCTkZDWklXNjZ1S21tK1pZNHlzQWRSa01ybUIzd3d1THE1UHJJdzFnYU53OVJkSG91NlIzK0xsNWdTQU5yenkyd2RlUXY5Smc0ekNnWFd3cE1Fb1FSUkFvTk5Fa2tJVUNYUUtTSklJaWNZZ3NZNk55YlVScGpxcUhUcDA2TytWbFpVTCtkM2g0dUlhaXBxZi9DYStmRi9mcXVKM2Jyd1k5d09ZOU1OTitNWG5BcWlZOVhQOFY5c1MzRC92U3Z3NHJrQUxqWGpYd2EzWkczTXBUT01sQ0JCa0JYNnRHL0dPSTJqc0pKRDlaUmlYbXdNNU1CSmt4SWdSNk8zdFJXOXZMMGtrRWtpbFVrUlZWYUxydWtBcGxaRGV6T3BTVmZXUGdpQmN5VzhaRjVlelBrMWJxb1lxU29HM1kyRVVWcHk4clp5cXFyNDR2S0pzSllCZTlHMmpNcTl1UWtnQ1FJb1FvaEpDZEZFVXFTVEpWRkVVdU53dTZuYTc0WEY3NFBWNjRmUDdFUXdFSUVpU1pEcTJqT3FvUFJ6dDd1NSttajkxdWJqT0xSRUNTRVJIVjlmSjIvSFUzSHpvVlljUU5BVkFKWVJrYnFVeTJDUUlBa1JSb0ZadVRSSWhTUkprU1lLc0tIM0ZBM3NSd1ZZZDFlKy8vLzROQUE3d1c4M0ZkVzZwUUVtZ0szWnlEdFdtbERiOTE0OFc3MkxBbHJLRm9Uck1JNHJNblFiVzJGUWZ0eVJSU29OTmxxRW9TcDlqWS9Oc2dpQ0FvYU1PUUx2cnJydDZVcW5VT242YnViak9MUlVwQ2RCRUhFZWFtMDY0YzR2SDQ4ODl2K201bEpOYkE0Zzl2NWFHbXpFWGFvZWFKTXVRRlFVdWx3dVNKS1UvYVB3aktvb2kwVFNOQ29JQVRkTW80OXJVQXdjTy9MV3FxdXE3L0ZaemNaMWI0ZWdGZ1NpT0pMcHh1QzJPMkZFUlhja1RjNEx1SzYrODhuWVd0NllDMUJ4OFQzT0lHdEoxYUpwR05VMkZxcWFRU29sSUprVkl2U0o2WlFrOUxxVVBiRXl1alExSE0yWkhSNHdZc1V0VjFmV0NJTXpndDV1TDY5eUNXNkZiUmFFN0JrcUJ6RlVwbjB5SlpPcHZseTFhZE5UbTFGSUFVZ1JRUWN3d0ZGUWdvQ0lCWkJGUUpNQ3RFSGdVd09zQ3ZHNGc0QVZDZmlBM0NCVGtBSUlzeTdDNU50Z0g0NDFSS3czcFNRUWVqbkp4bmVPUU94SGEzWGpnVlFlM2x0SG1rYkZpenpoM1RSVFRvYWdraXBBa0ViSWtRcFlrS0lvTXQwdUIxK1B1QTVzb2l1WmJhb2FsekpIaFZuVTBQejkvQzZYMFZYNTd1Ymk0UHFrMFRkOCtZZWI4eGdIY210WjMvbHJhWEltRVVGRWdFQVdSU3FJSVVVekRUWllrS0xJRXR5TEQ0M2JCNzNWRFVCUUZzaXpEN3R4c0RidFdFUUdBMnRYVjlRUy9OVnhjWEo5VUJ3NjN2akNBVzFNTnQ2YVQ5SlozS2hCQUVJamgxQVJJa21BNE5SR0tMTUZsdVRVWEFsNVBIOWdjaWdqbWlGWEc3Q2dBYmZyMDZlc29wWHpaQ3hjWDEzRkxwN1J1NmxlLy8zNFd0MmJNaC9ZVkRkSmdNOXlhS0ZEVHFhWGJPMnh1emVOR01PQ0Q0SEs1a0FWdUdhNk5EVWRmZi8xMXRiZTM5M0YraTdpNHVJNVhSOW82bjIxcTdXU2hsalN1Tk5TSWVaSkh1bjlOTVBZYW1DMGViRzVOa2ZyY21zL3RRc0RuUlk0ZGJEYTRzYTdOUGhpdnJsbXo1a2tBOWZ3MmNYRnhEVldVMG9ZZjNmK0hIWU9Fb2RaSnVRUkEycTBKRU1WMGJrMlNSTWlpWkJVTVhJWmI4M2s5Q0FXOHlBMEhJSGc4SGpqQnpWWWhaVU5TRFlBMmQrN2NhRzl2N3gvNHJlTGk0aHFxV2p1aUd4NWE5M3pDeWEwUklHVVVEVFRBUEVneTdkaEVVVENLQlFKa1VZUXNHN2sxMllDYXg0V0F6NE53d0kvOG5GQWFiRzYzdTE4NG1xWDlJNlAxWThPR0RVOEFhT0MzaTR1TGF3aHVyWEhadzArK1pZTWE2OWo2V2p6U1JRTUloRUMwaWdacHQyYk9oQ3F5RExkTGhzZWx3Ty8xSUJUd0lTOGNRRkZlRGdTZnp3ZTMyMjI1Tmhadzl0WVBXNjVOL2ZLWHY5elIwOVB6R0w5bFhGeGNnN3ExOW1OUC8vS3hwM3R0SWFqcDFsU1F2aFY3cGxzVEJVTFRiaTBkaHFhQmxsa0o5WG5jQ1BnOHlBbW0zWm9raVJEOGZqKzhYbStHYXp1ZTFvOC8vZWxQajFOSytRbTdYRnhjQTdtMVBYZi81bzl2T2tETmRHME9MUjVHMFVBVWpSWVBlek91REsvYkJiL1BjR3VoQUlyeWN3QUFRaUFRZ00vbmd6MGtaZURtMVBwaFZVaS84WTF2SE92dTd2NDl2M1ZjWEZ6WjFOemEvdlFEVHo0M1dHNHRveUZYTU55YUpBcTBIOVFVR1I2WEs4T3RSWEpEY0J1TFRJVndPQXpXdFExUUpjM3EybWJObXJXR1V2bzZ2MzFjWEZ4MjZicis1dlJ2L0hDSEE5UUdjR3VBS0JCSWdqbGQwRGRoNEpKbHVKVjBNNjdmNTBFNDRFTmVPSWlpL0Z6cmF3bzVPVGtJQm9PV2EzUEt0Ykd1amRrYWIyMXIzcmh4WXpJYWpUN0tieUVYRjVkZERVMkhuOW5WZUVqRjRKVlFIU0JVU0I4a1NVVkJnQ1NKaGx0TFEwMlJtZllPanh0Qm54YzV3UUFLY3NQd2V2cDJtd3I1K2ZrSWg4TUlCQUx3ZXIwVzNFekhObFRYRmc2SE4raTYvbmQrRzdtNHVFeWxWUFg1a1orYnQ4dkJxUTN1MXNSTXR5WWJCUU9QMnhpZDhua1FEdnFRbnhORVVTUW40K3NLQlFVRnlNM05SVEFZaE4vdnQzSnREaE1KQTdrMmxSQ1NPbkxrQ0hkdFhGeGNsbmJzcXQrRXpHWmNDMnlHVzFPSDZ0WmNWbnVITVRybDl5STNGRUJCWGhnK2p6c1RiQ1VsSmNqUHowZE9UZzdNUXNKUWNtMW1NWUYxYmNYRnhmOUlwVklQODl2SnhjWFYxZE83WnZMczd4K3dRUzJSemEwSlJpWFV5YTBwc2dTWHkyenZjQ0hnOTFydEhTV1J2SDVmVy9CNFBDZ3FLa0plWGg1Q29WRFdRb0pUaGRUZTEwWUlTWDN3d1FlUEFUaklieXNYMTdrckNoejg2K1ovYm9OendZQjFheGw5YTFZbDFPN1dGS05nNEhhbjJ6djhYdVNGZ2lqS3o0SEhyZlFIR3dDVWxKUWdFb21BTFNSNHZWNjRYQzVrRzVMUGxtdWJPSEZpZlhkMzk0UDgxbkp4bmJzNmNyVGp5YS9lK2FzT20xUEw2dFpJaGxzVE04NVpjeWt5WElvQ3IxdUJ6MnNVREVJQlJISkRLQ25JYy96NkFnQW9pb0tpb2lKa0t5VFlxcVRVbkVxd3IrZ3pYZHZVcVZNZjAzWDlSWDU3dWJnR2tlSTc2MzRrVmROZS9zeVhibnRqQ0c1Tk05eWFiazRaU0ViZldyOHFxSEV5YnNDYmJ1L0lEd2RSRk1tRklrdlp3UVlBNWVYbE1Bc0paa2pxVkVoZ2grU1pHVktkZFcwN2R1eElIamx5aE9mYXVMZ0dVNmprclB1UmR1NXBmS2FwdGRNK1haQUFrQ0RNQmlyRHJlbkVPa1NTV0U1TnRvMU5lVHpwazNITjB6c0s4c0lvTDhyUCtqMEk3Qi9Na05SMGJRUDB0bG11alpsSVlKMWJxcmk0K09Wa012a2Ivc3psNGhwQWtaRm5sV3VMeHJzZnZYRFc3UjhiYm8yRld0L0FlLy96MXFoSUNFMFB1SXMwZlNxdW5PSFcwaE1HWG9TRGZrUnlzb2Vnam1BckxDek1HcEk2akZ0UlNaSXlDZ21zYXlPRUpMZHMyYktLVXJxRFAzdTV1TEtJQ0VEMXBVQk9CU0I3UHRVL2lxN1RkeC80MHpQMmdvR1ZXeU5BMGd4Qm1mUFdxR0NGb0dtb1paeUs2eFNDNXVlaU1DODg0UGZTTDBBdExTMUZlM3M3b3RFbzR2RTRlbnA2a0Vna2tFd21rVXdta1VxbG9Lb3FWRldGcG1uUU5BMjZyb05aMDZkUlNnVUE2dFZYWDMyNHJhM3R3ZHpjM0pYOEdjekZsYzFlaUVESnVFLzlqL0hobmozcjcvanZ4K0lPVUVzN05rTFNCUU5DTkNOOVJRVlJoQ2pMa0Z3dVNDNFhaSThIaXRjTGw5OFBkekFJYnpnTWYxNGVnb1dGeUIwMkRBVWpScUIwM0RnZ0ZCcTZZd09BVUNnRXA5NjJMSTI3R1NFcEhKcDI4L0x5TnFaU3FZZjRzNWVMNit4VlBCNWZYVk5UczRjSlFUT2dSZ2hoMStycEFOS051S0pJelZZeVdaYWhHSnZjM1c0M1BCNFBmRDRmQW9FQWNuSnlrSitmajVLU0VvUUdnWm9qMklCMEljSHNiV09INUxQTmt0cWFkblZDaU5WcFRBaEp2ZnJxcTQ5UVN0L210NStMNit5VHJ1dnZQUHJvb3kraWYxNk5oVnJLTURzYUlVUTNKcGlzdFo4bTFFeXdlVHdlZUwxZStQMStoTU5oNU9YbG9haW9DT1hsNVVNendVNGZsR1VaWldWbEtDd3M3RmNsZFRoeGQ2QkNnZ29nOWRuUGZyYXByYTJOaDZOY1hHZWg5dXpacy80NzMvbE9OR3NJMnRlM1pteDJKMW5kbXVuVVBCNFAvSDQvUXFFUWNuTnpVVmhZaUxLeU1zaXlQS1R2U2NyMkYwVkZSZWpvNkVBMEdrVlhWMWZXWEJ1Ylo5TjFuZXE2Ym02MTBpaWx4SEJ0UWlRUzJkVGIyN3ZDNVhMTjUwOEZMcTZ6UThlT0hYdTR0cloyN3dCdXpkbytaYmcxYW9MTmJQaG5uWnJwMXZ4K1A0TEJJSEp5Y2hDSlJGQlNVb0tpb3FJaGYxL1NRSDg1Yk5nd2RIWjJJaGFMb2J1N093TnVaZ0hCdUtpdTY4UldTS0FBZEVxcFZTWDk0eC8vK0w5ejVzd1pLd2pDZFA2VTRPSUM5dTNiOTZuOTNsVlZmZW1lZSs1NTJRYTFYcHRieThpckFhQ0VFT3R6R0NZSUFKREdSdnF0d1JIclk4ZjdXQTBJTnAvUGg3S3lNc3UxZFhkM1cyQkxwVkoyMTBZMVRTTzZybFBqRzlNTngyYm0yNFJ2ZnZPYkhkT25UMyt3b3FLaUZrQUpmMXB6bmV1cXFLajR0SDdyemErKyt1cUdWYXRXOVRpRW9MMndGUXlNdkpwdU9EVnFPRFJxNXRMTUlrRTRIRVp1Ymk0S0NncFFWbGFHcXFvcTFOYldEam0zTmlTd0FlbEN3ckZqeHl6WDF0dmJtd0UzdHZYRENFZEIwNExSMTBZb3BXb2F6a1Nvckt4OEl4cU4vazhnRUxpWFA2MjV1RDZkT25qdzRCOHZ1ZVNTSmdOcUxORHNJYWhxVGlZUlFxeThtcjFZNEhhN0xjQUZnMEhrNXVZaUVvbWd0TFQwdUtFR1pDa2VPUDFXWVZ0QTJFRjVXd3NJZFJpU1o4ZXRVb1NRWkRBWWZDS1pUUEtSS3k2dU0xUjFTNmFpcXVwbXJJMzIvN3Q0UEw2NnJLenNiV1MyZGxnaHFDMnZaa0hOVmdXbDJhREd0blo4VWtjN0pMQUZBb0dNRnBCUUtPUTRsV0NEbTFrbHpSaVNOeCtJNTU5Ly9tRmQxN2Z3cHhBWFYxclJ1clZZTXU4YVRCMWZnNnFxR295Zk5CMnpGenlDcmExbnp2ZW9xdXJXbFN0WGJvRnpCZFNBRzAxU1NsVktxYWJydXE1cG1xNXBPdFZodVRXcUtBcEV0UXZ0N1RFazVYUTRHZ2dFRUFxRk1sbzdBb0hBSi9vK3BhSCt3L0x5Y3NkcEJJZGNXN2FRRkViT1RTV0VKSys5OXRwRGpZMk5EMVJVVkZRUVFxcjUwNXJyWEZicjFnV1lQVzhkR29JVGNPMzE4M0ZES1JEYnRRMGJOaXpGbksydlljVXpEK0s2eU9uOUhpbWxEZHUzYjM5NndZSUZNWWNRdEJmcElmY2twV2JCZ0dpRXBFZW5LTlZwS3RHRGhNZUhnR0dDeEdnem1vOG9DTmVjbHdFMU03LzJTVUxRNHdZYkFBd2ZQdHl4UXVvd1prVjFYU2RtWlFNQTFYV2RiUUVoaEJCaCtQRGhiN2EzdDkrZms1UHppK1A5WHJpNHpoNnJ0aFhMRnF4RFEyUW1WcTFmam1rV3dHN0ZMVGNzd1l5WnE3QmsyVlpjdVh3YVhLZlJyRFUyTnE2Wk9uVnFrODJ0WllhZ2xLWUxCa1RRUk1IcVY0TWthT2p1U2FFM25xQkNYaEF1bHd1aUxJQVFFVzV2Wm10SGFXa3BoZzhmL2k5OXM4THgvR092MTR1S2lnb1VGeGRuSEV5WjVkUmRLc3R5djVEVU5wV1F5TTNOM2REVDAvTXIvdXptT25lNXRnWWJqaXE0ZFA1QzBTQXhzZ0FBSUFCSlJFRlVCbXBwQlNmZWdzVUxic0NWa1FSYWJmbXZaYXNYWU1iVUdsU05YNEN0YWQrSHJRL2NoaGxUeDZPbXFnbzFrNjdCelVzMm9TbkJmTUt0dDJGODFYUXNXcnNhaTJaUHgvaWFLdFNNbjRvWkM5YWl6aUdmbHFqZmdFV3pwMlBzaUlxSHFxdXIzMmVjV2k5N0VVSVNZQStRVEovY29adU51TExMQjc4a1VJSHFJSG83OW43d0FkNDdsQVFoY2J5LzZTOTQ1Sy92SXhXSm9QaklVNWd6YXc1dS8vMmZjTnMxazFCVE5SVkw2Z0JzbW9lYXFrbFlzRDN6Kzl1NllEeXFhdVpoRS92QnBxM0g3NUtLaTRzSGRHMW1PTXFHcEdZTGlCR2FzdmsyQVlBd1pjcVVoOTk4ODgxQ1daWnY0azl6cm5OTmRhL3RRQksxdUdLS1U2d1p3YlJibDJKYXY0OXZ3OHBsVmJqaSt2bFlWRldMYWtTeGRkRU16Rm1Ud09RYjVtUHBCQmRhWDF1SGxhdHV3ZXpvS216T2NIc05XTE5vRmE2ZFB4LzN6UThpdW0wVmxxMWNpTmxSRnpZL2VCMzZ2b3Z0V0haekhTbysrL2tuOXJmOGcrMVg2eGVDc2xBRG9GTUtTb3pGVCttOG1nSi9VU21LdlY3NFBCSnl4cFlCeHhyd3dXRTN4bDR4SFJlUEhvTnhSVVVZNWcxQmtSSjRmdmtLakxuMlJzeWZXWVdKRVFCTlEzZS9DMmJQK1dUaFgzVjFOZUx4ZU5iMkR3WnNHU0VwcFpUcXVtNXZBU0U3ZCs0VXRtelo4dEQwNmRNTFJGRzhtai9WdWM0ZEpkRGFHZ1dVQ0NJczE2S3RhR1dkRmx3SVJvSU1uRW94ODc3MVdENHRhUHo3VFZpeEhaaHd5NE40ZE9IRTlMKzcvanBFV2lkaDRhYS9ZZnZ5YVF3Y0ZVeGUvRGp1dTlINGdsT21vQ3d4SFROWHJjQ3F1dXV3c0xidmE0Ni84NG5ObnpteTRma044UjZuWGpWN0ZWUWxBdEdoVTUxU25hWlNLVkFJVUVRWnNpeFRhN2pkbHc0OUpia1p1NDU0VVRsdUlpNDV2d0xEeThwUWZTeTlScS9xbHNleGZtSHRjWWZlZFN1WFlOM0JxazhHTmxFVVVWVlYxUTlzN0RTQ2JjeUttSVVFSStmR0ZoTUlJVVM0NnFxcm11cnE2bGJXMU5Ua0VVSW04U2M4MTdrQ3RrUWlEUkVYOHlyZXZ1UWEzTER1YU44SEFqT3g2dDNsREp5cU1YbGlrSWxacjhUeXpWZmFQbmNRMVdVUllIc3JvZ21nanhJdVJNb2lHZENjT1BNNlZLMWFpZTA3V29GYTgrOG12Rld1N0gxNi92ejVVVnRPcmNlNGVtMzlhdWxHWElsUVVKMXF1azdWWkMrT3RTZG8zT1ZIVVhrSWVVWnJSeUFRZ0JTVklZb3VCUE1McldaYzhWMENJSURheWJXZklKOVlqNjFiRzRBeEN6NTV3ajRjRHFPeXN0S0NXN1lLS2V2Y1RMZ1pVd2tnaEpqRkJJRVFRbXByYTk5cmFtcjZiVWxKU1M0aFpBUi8wbk9kL1RLQlpnRE9lRFhYM25JZlZsMmJBQkRGdG1YenNXb29vVmkwRG10WHJNQ2FUZHRSZHpDR3BHWFFxdE5JR29nVVpWVW9BMURmMEFRZ0FrcFIzOVBUOXVkN1oxN1ZZb05hWHdXVXlhc1p1WE1ycnliTExpckxNbVJCcDJxaUYvR2VPSm9iUGdMMVRjYmtrclJqa3pzVVNKSUw0Y0lTVkZaV0lod08vNHVQWlNzYVdnRmxZdlcvVm9rc0t5dXpCdVJadUdYTHRSbFFNNGUvekxCVU14NGNBa0FvS3l0NytlalJvL2ZuNWVVdEFoRGhUM3l1c3gxc2tVZ1FTRGFocVJWQW1lRzFxcWRnV2pVQVJORzZTaGxDanFrT0Q4eWVnZVd0RXpGbjRYSXNyQzVEMEFYVXJid1pDemNOMVR0YU9ucWd2WHYxNGNPdk5DSnpzTDNYSWErV012TnE1akoxZHJyQTdYYkRrMStFU2lXRnByMzdjS1RoTURDaENqazVPVkRhWFpBa0QvTExLbEJXVm5aQ0g5Vi91Y1ZpMUtoUkdhNk5EVW50SjM5UVN0bDhtMjRPd3hyaEtTR0VFRW9weWMvUC8zdG5aNmMvRkFvdEJ1RG1UMzZ1czFtMWwwNUVZTTFXL0cxVEU3Nys5VS80QXQreEJtdDJBWmV1ZUJDTHIrc0xVUlBCSVFaMDllK2dDVUNrcXF6MzRNR0RxNjVlOFhZZCt0bzZ6UENUZFd2OVFsQkNxSzRtazBpSkxuaDlNaFJGc2ZKcTNrQWV5dk1Qb0xNdGlWUWdqUHo4ZkxpT3VxRW9QaFJWalJyU0x3QWdrVUhmL29xZ0tnSWttNXFPcjkzRFNZUVFqQmd4d3BwTXlNL1B0eVlUN0dOWFpndUliZkd5T1hKbHRvQWtBU1RDNGZDZnU3cTZlQnNJMTFtdjRMUmJjSDFwRXUrc1dJQkg2aEw5d3F2VzF1UVE3RllDVVFDSktQUC9KK3J3L0k1V3V4c0RFRU45WFQwYncyTFRxazA0aURHWU1nb1BHZU5TTE5SNkdiaGxuTEZtdm43TmZqV0JnRkk5aFNUcEt4WjR2Vjc0UENuRTRnU0NQdzlsaGZrb0tpcENSV0VJaXFJZ21TU0QvM3lSQ0NLSW9iNitLZVBuZTYwdXh2eWpha3liVmdYc1duTmltbUlEZ1FDcXE2djdGUkkwVGNzMklEOVlNWUZRU29uZjczK3N1N3ZiNC9GNGJ1ZFBmNjZ6TnhxZGlJVVBMa0xkN0tWWU9tTTZuci91U2x3NnBoUTQyb0RYTm0zQXRvWUFKdHd5RXhNSHRIM1g0c3I4ZFZpM1pEYm1OVnlKYXJSaXg2WU4ySEV3Q1NDS1JCUUFVMnZZdFh3MlpqUmNqMnNuNU9Qb2EydXcrbTlIRWI3MDlnZC9NS25nSHc2aFp3OHlqeU95T1RXekVWZWliaDhRNjByUytORVdKTHVEeUFtbjBCTnJ3NzcyTnJRblhhaWVQaFVYR0lkR2puU05RdWlKTFZpelpBbHd4YVc0N3NacEtCdm81eXRkaFZYTGJzYThnek14d1hVUTcyemFnT2NiQURDTDRHdHZXWXlaRythY3VHNy93c0pDeDF5YnFxcHNQMXRHV01vV0U0eFBvOW5EMGxtelpqMzg1ei8vV1hHNzNkL21yd0N1czVadHRWL0g0NXRyOGNpeUZWaXpkUzFXcklzaHFlU2pxbllhYmxrNUgvT3ZyQjY0U2hpY2hxV1BMNE5yMFFwc1dMMFNXMTFWbUhMOWZYaDh3dk5ZdExJSkI1bjhIUkRBRllzV28yemJDcXhjMG9Db3F4UWpyNzM3a2ZwWGY3a1YvYWNLckJDVUVDUW9OVmZvV1ZEcmE4S1ZaU2lLajVhR0tIcWljY1I3WTJnOUhNTlJRVUc0c0FwVHAxNk9hLzl0SkVwTFMxRlZWWVh5eSsvRTRqZWJzV3pES3F4b3pjZTBHNmNORFA5SGx5RzZZQVUyclZxT3JZRXFUTHh1TVpaTlhJR0ZHeklmaCtXUHJ3UmhEM0k3RWRxOWV6ZDI3OTZOeHNaR0hEcDBDRWVPSEVGN2UzdkcwVWNHQUFrRFFHTDB1d2tBUkVxcEJFQUc0S0tVdW4vMG94K0ZmL2pESDk3aWNybm04WmNBMTVrcVRkUFExTlIwWnAreHR2VTJqSit6RmROV3ZZdjdESTdFWXJIZmYvdmIzOTc4aHovOG9ZZHhaVDBBdW8yM1BZUVFxMkJBakcxVDdQbHF6TkhlMWhscjV2eW5lYjVhU1VrSmhnOGZqcHFhR3RUVTFKelVIL09FejJlT0hqM2FDa250N1I5WlhKdDU0aTZRV1NtMXd0S2YvT1FublpGSTVPRzVjK2NLTHBkckxuOEpjWEdkR01WaXNUOHNYcng0aXdHMUpBTzFIZ1pxL1U3RGRhcUFzc1VDbjgvbmVMeDNaV1VsUm84ZWZkSi9yaE1PTmtJSVJvOGViWUhOM3ZxaGFacDE1QytUYjh0V0tiVSs1M2UrODUwMlJWRWV2dW1tbThEaHhzVjFZcUMyZE9uU3pTdFdyT2hDWnFHQWJjRE5sbGZUQlVGZ04weFJjeEdML2NCSTA2MlpVR09QQnYvVWdBMEFQQjRQUm8wYTFhOXAxOWJQMXErWVlMZzAwN1d4Y0NPRUVESnYzcnpXUkNMeHU3bHo1K3B1dDV1SHBWeGNuMURKN3RqdkZ5OWV2R1VBcUxGT3JkL3FQT1BBU0dwM2F1Ykt2RkFvWkIwWVdWeGNqSXFLQ293YU5Rb2V6Nm5aZGkvZWZmZmRKK1VUbXdkUW1uQXpLNlFzM0d6WFlCaW5BTEJ4NDhZVUllVDlpeSsrV0pWbG1ZOWVjWjB4b3BRaUdvMmVnQTc2azZqS3EzSER6VGM4OHZTeS8yL0w3MzczdSs1c1RnME9rd1Zzb2NDRW1zdmxvdXdKdVBhVmVXYWhZTXlZTWNqUHp6OWxQK1pKUFFPdHNMQ3czelNDUTRVVVRKN05xcFFDZ0cxZ0hvUVFVRXF4ZE9sU3ZQWFdXdyt1WGJzMjZmVjZlU3NJRjljUTFkSFI4ZUFWVjF5eDlhMjMza3BtYzJxd0hVUEVWajh6SzZCOVRzM2MyczdtMUlxS2lsQlJVWUdSSTBlaXNMRHdsUDZjSi8xd3gvTHk4Z3pYeGs0ajJGMWIrcGNlSlFDb3Fxb20zRFEyTERYaHRuSGpSdmg4dnYrTnhXSzlmci8vZHZBSkJTNnVnZFRiMnRyNlVFRkJ3VC9RLy9UYmdhQ21FVUkwb2U4SW9xemhaekFZUkRpY25pb29LaXJDc0dIRHJPYjlVNjFUY21wdGRYVjExdVBEbVZOMlRUdHY1ZHBVVlRYL3poRnVBQkFJQlA3WTBkSFJIUTZIYndPZkxlWGljdExSZ3djUHJqSW1DdGpaeng1YitPa0lOV2JCY1FiVW5GYm5tVkFyTHkvSGlCRWpVRjE5ZWs3OVAyWEhjZGZVMUdUYmkrRG8zRXk0QWVuK29BSGdSbk55Y3RhM3RMUjBSU0tSYi9GVFFiaTR3QnFGK3ZyNit0VWpSNDZzRzhTcEpiSkJqYzJwWlFzL25hQjJzbnZWemdpd0FjRFlzV1A3d1MwTDJDeTRtUW0zYkhBei8xeFlXUGhzWTJOamROaXdZZk1FUWJpSVA2VzV6blZwbXZiV3UrKysrK2NMTDd5d0VmMW5Qd2RyNmJDZ05saE96WVJhWVdFaHlzdkxVVjFkamJGang1N1duLzJVZ28wUWdyRmp4MloxYlE2L2JWZ0g1d2czNC9OU1Npa2RQbno0UDNiczJORTVidHk0YjRxaWVCVi9hbk9kOFRyMnU1UHlhVk1wYmZPV2JidWV2bXJtL1MxTStHbWYvZXdoeHJxOFRLaFJqUkJLUllGUVVhQlVsblRJb2c2WHBNSXRxL0FxS2ZqZFNRUTlDWVM5UGNqemQ2RXdGRWQ1WGhUVmhaMFlXOTRHRW4zOTNBRWJBTWl5Yk1GdEVNZkc1dHV5d1kwYUg2ZG1hRHB4NHNRUDFxOWZ2L3lhYTY1cFZSVGxhL3lWdzNXdXFiczcrY1REajIxN2Z2NGRmNDRPQUxWZUFpUkFZS3QrUWlNRWFhaUpoTXF5QUVVVzRYSkoxTzJXNGZVbzhQbGNDUGpkQ0llOHlNdjFvNmd3aFBMU1hGUVBMOERZbWxMSWtuamFINFBUc3ZMTzdYWmo3Tml4am5rMjFxMnhJU2toQktsVUtuMFVTUHIvMC9yWWx1bmNac3lZY2JDbXB1WlhiN3p4eGhHLzN6OGZmTFVmMTdraHRhMDkvdEQ0Zi91dmx3ODJ4KzA3Q3RqejFFeW8yWndhZElHQUNnS2hrZ0UxV1JhUTZFelF6cUFMWTNMU1VBc0dHS2dWaEZCV21vdnE0UkdNSFZNQ3QxcytJeDZJMC9hQzkvbDhGdHpzWUxPSHBZUVFhdVRUN0swZzlna0Zhc0p0OSs3ZGVpQVFlS3lscGVWd0pCSzVoUzlsNWpwVHRmMmUrM0h6MGY4WDcvNjY5aFB2RGFXVU5qVHVPN3FtZXNLaTk1RzVUYXJmZVdvTTFOU0JvS1lvSW5VcElxaVFSRktSNGZlNUVUQ2hsdWRIVVVHd0QybzFwZkI1WGFoLzlwL1luajhPTjM3RzcvQmR4ckgxdm1ldzVPbjlhSXBKaUl3Ymg4VS9tWTRyUzg0aXNBSHBjOXpHamgzcjZOall2Qng3L3dhQkcyV2RHd0JhV0ZqNGJGMWQzZUZSbzBaOVhSVEZ6L0tYRWRkWlo5TlViZXYyTnhxZW5ucjFMNXlXR2R1UDgwNkE5QjNwM1FjMVFnVUJWSklFS2t2RWdKb010MXVBSmhLSUxoY0NBVGR5V0tkVzFnZTFRTUFOUUVYZGM2OWdaVW1WSTloYW4zMEd0ejB0WWVsanQrTzZrbDVzL2RFYXpMdmpEV3grN0NLVW5VMWdBNEJRS0dUQmJSQ285WU9ia1c5anozT3pnR2JBVFFlZzE5Yld2cjE2OWVwRE0yYk0rTmp0ZHMvaEx3V3VNMVdKWjlkaC9JUEFqYU1UMkxxekRhMUpGNmJkTmhQTFA1OEhGMXF3N0QvV1lQdm9LcmoydEtBcGxvQllOV2IxZVNQVkxiKzU1eTh4WkxaejJNTlBhKzZUVXFRRVFqUVE2Q2JVUkFGVVRlazBtZFFCUXFnZ0U1U1Z5dkI2UkdnUzBPMTJHVkR6UUR1MEgzOTZMb1pPM1l2eUM4ZmpoejhlanV1Qys3SGtQNTdDMmtNYVlsaURTWHN1d2VNUFg0UytNRW5GanVjT0lmanZzM0JkaVFUQWoybHp4cUg2S3g5aWUrd2lYSitvdzd5dmJFWGtaN2RpNldmT0FyQUI2WTFYQTVXSFRjQVJRc3lMRWtLSW1YTXpjMjI2cmxPMnY0MTFiamZlZU9NaEFQZTN0YlY5bkp1YmV3dUFZdjR5NGpvamRlZ1ljTmNzYlA2Wkg5RlhuOEgwTzE3Q3BzL094SFVCQUVpZ1ZSbUQ5WC81UW5QeTQvMS9MSnR3ejl0Yis1YXFKQm1Jc1VkNUp3aEJrbEtrUUtBS0lCb0lOSUdBRW9Ib29rQkFVeHJWaUlDY1BCZjFTeFR0clFtMGRJc29LM0JCbFFVbzNuVDQ2VG42TVZidkN1SzJIOC9Bdk10ejhmRmp6K0xtYjI5RzVDOVhZZkZmYnNXRTIzK05aU1UzNE9VRjloR3FYclRHVkVSS0dDZVg3MGNFdldnOUNtRDRNTnh5MTc4ak9PNHNjV3ltY25KeU11REdRS3dmMk96T0RRQmg1a3I3T1RjQXV1SGVhRjVlM2wvcjZ1bytIalZxMUUyaUtGN09YMFZjWjV4S3FqRFRDT1dDbzRlaE92a0dXbU1BQWdBZ29tWnl4VXQ3dDMrNDRaS3JmdEdFZ2Jlejk5cENUeFZJaDU2RVFCY0VRZ1dCUUpJSUpScEJVZ2NsZ2dpWDM0VVJ1VUVvWGkrQ0FRa3BSVURVNzBOeGdRdjFyM1doK2t1Zng3ekxoeUVuN0VYT2JaZmh1cWZYWWMwL3BtUEtZSW1lZnFzYlJBQXFZa2tBOEdQaVovMW5UeWhxaDl0NTU1M1hEMm9EUUk2U3RQcmwzQ3diMTljT1lvYW1XbTF0N2RzLys5blBHci96bmUvczhucTkvTWh4cmpOWFJqVWhZV3hqNlVscEQ3L3kyTnFYSDM1dVc0OHRuOVovN3llUXBFQ0tXRkNERHZSQlRSUUpsU1FDV1JLZ2VDWHE3a2toMnQ2TnpyWWVCQ0s1T0wvWWpaeXdncVJiUkdjb2lQSXlOeHBVTDJvdkhJR2NzTmRNSnFHcVJNWHpSM3N4NkxpMll2K0FCa0JDUURueEQ5c1oxd1lSRG9lSEJEZDdXR3ErYnh5TnBKdEFZNG9LT2lIRWRHNzZIWGZjb2Q5eHh4My9lK0RBZ2IybHBhVTNFMEltOGxjUjE1a3FxdE4zZHUwNXN2N3VWeHIzQW8ycVF6NHR3NlVSZ2lTb0JUU05FR2lnMEVGQUJaRlFTU0JVa3RMdEhJb2lVZ2tFdmtJL3l2MEtmTEtPNW8rTzR0Mm1mRXdZNFVmU0k2RXROd2NqcXZNUXJYZ2ZyMFoxNWp1TG8rR29oRWorWUdkUXVCSEpsOUI2S0E0Z2xQN1EwVGhhNFVQa0pKeG1KSnlKTnpFVUNtSGN1SEVZT1hJa2hnMGJodUxpWWtRaUVlVGs1R1JiN1VjVlJRR3oybzh5cS8wMDQ0ejJGSUFrSVNSQkNESFBjKzh1THkvZnVtN2R1aC8yOXZhdTRpOGZyak5ScXE2dGZ2R0pMZjlUTy9sL2RpTnp6NmYxUEdZdWEwVWVOWjJhY1paYStoYzgyODRoR0kyM0lsTEhlckMvVFlYc2RTT1U0MGUrWDRMaTg2RzRLSWg4bjRKQVFUN0dqYW5CRjJjUFI5MnFGN0Roa0FxZ0Z6c2UyWW9OR0lNYi9oOEpnQVNYUzBLaTdSaGFFLzA5MUpUTGhpSDYzSGFzYlZTQnhERnNXdlVPNnNlTndwUkFHcEE3WG14QWZlSXNkV3ltQW9FQXhvMGJCMEVRSEM5Q2lQMnQ1ZHhTcVpSWk1XV0xDcFFKVFUzM3BnSFF2dlNsTHpVQitFMVRVOVBPa3BLU213Z2hFL2pMaWV0MFM5ZnB1eC9XdDY5ZisrR2JlN0RzVFpVSlBaT09MbzJCR2FWOSt3bEl1ajlORnloRlN0ZHBUMUtFenl0Q1VTVHFka2x3dTJYa2oxQ2dISXpoblRmam9LS01nb3BobUgxVkdTckt2VWdFWERoWVdvSkF3STNBNTcrQUI0OCtneVgvK1dzc2lFbUlqQjZEeGIrWmppbEd5RHpsK25Fb3UrTXBUUDNQUy9ETUV4ZURiUjROWHZYdmVQRFFjMWcwOTlkWVpQU3gzZmVUaWVsV2o2UDdzZkpIVzFIMm0xdXgrUHgvL2JFNzRWdXFUclI2ZTN2eHdRY2ZvTDYrSGdjT0hNRGh3NGR4OU9oUmRIWjJJaHFOb3F1cnk5cDhsVWdrekYwTGhObCtCVjNYQ2FWVU1DOGpheWtCa0NtbGlwSEpjQUZ3clZxMUtqSnIxcXpydlY3di8rRXZMYTdqMFNmYVVwVmxWalFhNjNuMGdmOTljZHNkZHo4VlIxK0JnQjJQWXNQUWRPZ0pOdlFrT2tIL0lvRXNDWkJsa2JxVXRMdnl1R1Y0dmE2TWlZTDh2QUNLQ2tJb0w4dXh4cVRPbEltQ1Q3MWpzeUp6dHh2bm4zOCtSRkhzZDdIdXplYmdzaFVWS0pON000c0tPdEpWVXcyQU9tZk9IRzNPbkRrUDdkMjc5NjJxcXFvYlJGR2N4bCt5WEtjczdGVDFsM2UrZitDWkN5Kzc5Mk1EVW5hWHh1YlVrZ1JJWmt3Um9LOC96WEJxVkJTWUlvRWlVa1dSNEhiSmNCdFE4L3RjQ0FZOHlBbDVrWi9Iekg1V0ZXRHNtRE5qOXZPc0F4dVFIcHdmUDM0OEpFbnFCemI3V3daMlZCQUVJZ2dDVkZXbHpMNkY5TjYvdnREVXFCUVJ6UXhOQWFpalJvMTZmY1NJRVR0ZmYvMzE2M0p5Y200Q1VNcGZkbHduUzVUaTRKSFdZMDkrWnRwUDNtaEt6M215VUVzNFhFa0hsOVlYZXBxVEJHSmZrU0R0MUdTNDNSTGNiZ1UrYjNyMk14VHdJQnoySVdKQ3JTd1hJNFlYWXV5WVVweUNoVkxuTHRpQWRIdkhlZWVkQjBtU2pnZHcvU3FtaEJCcWhLWmduWnVaZDBONkc3MEdRUDNvbzQvVTNOemM5UnMzYm56anNzc3UrNkxiN2I2SnZ3UzVUcWhDL3dkZFhWMXIvdnJYdjI3NzZsZm5kUXppMGd5Z0VSTm9LZU1Yc1hWK0dyT2JBSklrT2U3OE5FKyt0ZS85WkkvelBwMkhSSjVUWUROVlUxTURXWmJOQ2lpTU5XQ09JYW9KTitNdFllQUdQUzNyU0NTemdkZkp2VjE5OWRXTkFINWJWMWYzNnNpUkkyZEtrdlR2L0JYSjlhOHFsVW85djJQSGprMlRKMDgrd0FBdEc5U1NETlJVOUEyd214R0h0V3pGT01iYmZKMVFSVkZnUHlEU2hGcHVibTdHaXJ6VGVaejNPUTAySUwxRHdXenZNQzhXY0U2aHFYSERyZENVcVpwYXJvMEpUVFhHdlZsUG90cmEycmNBdk4vVTFQUkNjWEh4bC9oSnZWeWZSTHF1djluUTBQRE15SkVqZDVtL1BHMUFTenE0dEpTRFM5T1ppeHEvMkxOQ3pldjF3dXYxSWhBSVdIcy9Dd29LTEtpTkhEbnl0Q3hlNFdCalZGNWVuZ0UzODJhYW9hcmR4Um1ncytDV1NxVW9JY1E4OE5KZVdOQVp3R1c0TndDcHNyS3lGeSs4OE1KL1B2dnNzMWZtNWVWOWlSQlN3MSt1WElQbjBlaWU1dWJtcDZkUG43NWoxNjVkS3BNZlkzTnA3TnVrRFdvcTgwdlhBcHE1RWs4VVJmYVhQWFc1WEJsUU01ZXVtSHMvSTVFSVNrcEtyR1hHcDNwRjNzblVTVnVZZkNwazJtbW5mSno1ZG9CeExIdGExSndyaFFFNEdIQ3pHbjFOMkFIUW01dWJ0ZVhMbHpla1Vxa1hMcmpnZ21hMzIxMUNDTW5oTDk5ekdseU9DNU1wcFkydHJhMlBMVnk0OEUrelo4L2VmL1RvVWJzcjYzZGtOOUxMVlhydCtUUm1jYkhUUm5Zb2lrSVZSZW1YUzJPQnhpNWRxYTZ1UHVYTGpMbGpHNEp5Y25Kdy92bm53L3p0eEV3Z1pPVGgyQ3VSU0RpR3BveDdNNGZyQlZ0NHFnRlFqZkEwQlNCMTc3MzNKdSs5OTk2L0xGMjY5SVZ2Zi92YjAwT2gwRXgrcUNXWEFiU0cxdGJXRGN1V0xYdnJsNy84WlMrVEczUEtwYkZoYUFycDQ0VlVRbUJHQ3hwQStrWUZBVXBBYVBxcFNrQkJRQ21vVGdGS0NYUUthRHFGcGdPcVJwSFNnSlFHSkZXS2hBb2tVa0J2aXFBblJiRDdvd01BRHB4VmovMm4yckdaa21VWmhZV0ZqcWVBREhIZTFHN2d6Qk43MlJOQzdOVlR5NzBCMExaczJaTDQrYzkvdnJlN3UvdjVDeTY0b01uajhlUVNRZ3I0eS92Y2MyekJZTEN1cGFYbEQ5LzczdmNlbnoxN2R1TS8vL25QWGdlSDFtK25weTJucGhKaWdkRElwNldmaTRRSUVBV1JpcElJU1RKeWFiSU1SVW4vY25lNTNYQzdQZkI2ZmZENS9BZ0VBd2lGd3NqSnlVVitwQURGeFNVb0h6WU1WZFVqSUVueVdYa3Z6dmpKZytQVnh4OS9qSWFHQmpRMU5WbFRDaDBkSFloR280akZZdWp1N2taM2R6ZDZlM3VSU0NTUVRDYk5UZldFWGVxczZ6b3hMK054TXFjVzJNa0ZpVklxQTVDUlBydkF1cXFxcXBSWFhubGxhbUZoNFRXQ0lGek1YL1pudjVMSjVQWTMzbmpqaGE5ODVTdnZOelUxbVNOTnJFT3pGd2d5SEpveDA4eU1RaEh6bHlobEs1NW1vWXd0RUdRckVwanRIR2I0V1ZaV2hxcXFLbFJXVnA3VjkrS3NXM0pTV1ZrSmo4ZGpEc2ViZVllaEZCaW9VVTBscXFwYTRhblo5MmE2TlNNODFRY0lUNU1BbElhR0JxV2twT1FGQU52Mjd0MDdvYkt5Y3Jvc3k1L25MLyt6VDRsRTRtKzdkKzkrZGNLRUNZME16Tml3TStrQU5SWjJxZ0UxcTlwcGdJMmF4UUhqdVVtWjU2NEZORE9ueGhZSi9INS9SazZ0dUxqWXlxbWRUVVdDY3dac0FGQllXQWl2MTJzQnp1MTJnMzBTMk9IVzI5dHJBUzZaVEdiTHZWRktLV0hQZURQUGQyT2VtQ25Ed1ZtQUE2Q01HalhxZFFEdnZQRENDMDlNbWpUcFVyL2ZmdzF3d285NTV6cTFZV2RUTEJaNzdzVVhYM3o3aTEvODR0RXNRSE9DbXVuT3JHRjFJNCttMjZ1ZEJ0UmdWanpONTZ1VFN6T2haaThVbU8wY1p1TnRJQkE0Sis3UFdSZUsybk1lZS9mdXhiNTkrM0RvMENHMHRMU2d2YjNkR3FDUHgrUFdBTDBabWhwRDlFZ21rMUJWMVhSdkdlR3BzWGhHb0pRU3c4R1o0YWw1c1NFcUc2cktBSlFiYnJqQnZYejU4c2tGQlFXWFM1TEVUL0g5RkVsVjFSY1BIRGp3NnUyMzM3N3JxYWVlU2cwUmFDazcwQUMyS0pBQk05MmNkMmJEVHRhbHliSU10cFhEUGtrUURvZVJtNXVMd3NMQ2pIWU84bW1kaitKZ2MxWlRVeE0rL3Zoak5EVTFvYVdsQlcxdGJRUG0zY3pjV3lxVmdubEtDQU00WXF3TUpPdzFBT0NrTElDVEFjaWJOMjh1ditpaWl5WUhBb0hwdkIvdWpQMEZ1YWV6cy9PbGJkdTJ2ZnZGTDM2eGpRR1NFOUJTV1lDbTJvRm1IbnhxaHB0Mmw4WUN6ZXhQTTEzYVFQbTB2THc4RkJZV29xeXNESldWbFNnck8vZUNnM01DYkFEUTJkbVpVVlJvYlcxRlIwY0hqaDA3aGxnc1poMS8xTnZiNjFSWWdBRTJZcm8zRm5CTWdZRUZIRnRrRUEwSFo0ZGN4dlhlZSsvVlZGZFhYK3p4ZUM0SFVNS1JjbHBoZHFpN3UvdWx1cnE2SFpNbVRkcVB2aXI0WUVDejU4NVlWMmNQT2FsNUlBT1Q0MlZkR2p2cjZSaDZzazIzN015bldTU3c5OVJ4c0oyRjBqUU45ZlgxMkw5L1A1cWJtOUhhMm9xMnRqWWNPM2JNT3R1dHE2dkxPdHV0dDdjM0EyNE83czBNVDgwejN3WUMzRkFnWjM1TTJyMTc5N2lLaW9xTDNHNzNaUnh5cHc1bVBUMDkyejc2NktOM3g0OGYzMmdMRjUyQXBnNFJadjJBQm1zUEJ5Z1JDQlJaN2hkMnNpN05MQkM0WEM1cjN0UG44eUVZRENJVUNpRXZMdytSU01US3AxVlhWME1VeFhQMlhwNVRZRFBWM055TWZmdjI0ZURCZ3poeTVFaEdhQnFQeHkyNHNZZFhzbkJqQWNjVUZ3WUNIREhBSmppRXFaSU5hckx0WTlMT25UdEhWMVZWVGZCNnZSY1RRc1p5QkowNDZicGUxOVhWOWRxZVBYdnFMcnJvSXRhWjZReVlCZ0theWdCTnBaU3FScVhjNm5FME42V3hRRE1ybmJxdVUwRVE0WGE3K2dITkhucDZQSjUrUSt4bTZGbFFVSURTMGxKVVZGU2d1Smh2bGp3bndRWUEzZDNkYUd4c3pPaDNhMjl2eDdGanh4Q1B4eEdQeHkyNE9ZV21XY0pUQzNBT09UakNPTGlNWEJ3RE9DZlFaZnpkeG8wYml5Kzg4TUxhY0RnOFFaYmxpMkZ0eHVBYW9vNmxVcW5YMnRyYWR2N3puLytzbnpGalJwc0JJSDBBZCtZRU5mYUVqWDdGQU1haFdia3pOb2RtRmdZMFRZY29pdkQ1dk96d2VyL1EwNFNhMysvdjE4cGhocDdEaHcrSDErdmxkL2hjQnB1cEF3Y080TUNCQXpoMDZCQmFXMXNIckpxeW9ha3Q5ellZNE1BV0dXeVFNNTJjR2FhS2RwZzVBUTZBT0g3OGVQbVJSeDZwcXFxcUd1MzMrOCtYSk9rekFQejhhWjJodUtxcWIwV2owZmYzN3QzYjhJMXZmS09wcnE2dTMrU0lMWFRNQmpRV1p1ei9vOXVBWmprMDQ0SWRhR2JZcWFvYUZTVUpBYjh2QTJoc2IxcTJxcWM1eEY1ZVhuN1duTXJCd1hZQ0ZZdkZyTkNVclpxYTdzMXByMElXOTVZQk9GM1g3VlZVWkFsVDdaQXpRMVVyTCtjQU5zbjJkMkpGUllXNFpzMmFZU05IanF3S2hVS2paVmsranhBeTRoekxrMzJVVENZLzZPam8rR2ozN3QzN3Z2YTFyN1UwTlRYcE5sZm01TTZ5dVRUcjc4eG1iTnZueUlDWnphR0JyWEtheDJteGhZRmtTb1VrU1FpSGdoa3V6UXc5N1EyM2JOWFRERDNQbGQ0MERyWi93YjJ4VlZQVHZjVmlzYXc5Ync2NU53dHdwbnN6SVdjUFV4bkFPWVdxOW5CVnRBSE82WDNSZnYzaUY3L3dYM0hGRlNXbHBhWEQvSDcvY0ZtV1J3aUNNQnJXS3Q1UHJSSzZydTlKSnBQMXNWaHMzLzc5K3c4Kzk5eHpMWGZkZFZlUENaaEJZSllOYWhudk04NHNJOHhrUTAzWTVvbVp3MDJJcFFpWEFBQUdHVWxFUVZRdG1ERXVqVEtOdGtna1U1QWtHWG01NGF5OWFZRkFJTU9sbWFFbmQya2NiRU5XVjFjWDl1L2ZielgwMm52ZXNoVVdzZ0ZPMDdUQkFHZDNjU2JnaUFQa0JBZklEZmErNk9BR2hmWHIxK2ZYMU5SRTh2UHpDLzErZjRrc3k4V2lLSllSUXNveDZFcnZVNlplU3VrQlRkTU9KcFBKNW5nODNuemt5SkhXdXJxNnRpOS8rY3NkWUE0bUdBUm0yUnlhNC92MjVEOExNL1F0QUtKc01jQjBad0FnU1ZJL29MRjlhV3h4b0tjM21UN0VvU0MvWDRIQXFUZXRwS1FFdzRZTmc4L240eTlXRHJiajErSERoL3NWRnV6dXpkN1VhMDRzT0xnM3EvZU5CWnltYVNiWXdQVEN3Y0hGMlNGbkFZcUIzR0NYWUh0ZnNMMXY1ZjkrL2V0Zis4ZU5HeGNzS2lvS2hrS2hvTmZyRFNxS0VwUWtLU2lLWWxBUUJEOGh4RThJOFJGQ1BBWUl6UU1Bek04SkJnelcyamhLYVErbHRJdFNHdGQxUGE1cFdreFYxV2dpa1loMmQzZkhPanM3bzgzTnpiR2RPM2ZHRnl4WTBNM0FpOXBBUmdlQW1XNXpXTnBnbC8yOHZXd3dZMEZtdWpObVN4b0ZBRVZSTEpqWldqZ3lpZ095TEtPN0p3bEZVVkJTWEdBMTI5cGRHbHNnS0NvcTRpOU9EclovVGFsVXlpb3NIRGx5eE5wbk90U20zcUVDenViaVdBYzNFT1FjWWNkTVB3Z0RRRTEwQUp2OVlyL09RQmNjM3RyZnowaURPYnpQdmgzb3NvUE1mbVZ6YWYzZU40OStkNExZWURBejM3ZnQxSUFvaXFDVXd1VnlaUVdhdmVJWjcrcUZ5K1ZDeGJEU2pHYmJjRGlNL1B4OEZCUVVXQVVDV1piNWk1S0Q3Y1RwMkxGak9IandZTC9jMjFENjNveVpVM3Q0bWhHbUd1N05ncHd4eldDRnFzeDlzdWZraUFPRXNzRk95QUl6Y1FoZ1l3RW5PRUJ0SU1BTkJEYzcwT0FBc1lFY21wN0ZyZGtUKzROQ2pDa0FVRnVZYWNMTUtnUXdGYzZNSFJ1aUtGSktLZHh1ZHdiUUpFbXlISnE5T0JDTmRjUHQ4V0RVaU9IOUtwNUZSVVVvTFMxRktNUTdlampZVHFKYVdsb3kzQnM3a2pWUWEwZzI5OGEyaDVqVlU1dUxBek4wYjdvM2UwNE9EbzV1VU9EWnFyRk9RQnNJYnNmajNJNEhiTWNUZGpvQ2pxbE9aZ1VZQXk4V25tQnpadWFmMlRDVFhRN0VBSTJ5dVRSS0tieGViMWFYWm0vaDZJeDJ3ZXYxNGZ6emFxeHowMHlYZGk0Y0w4VEJkZ2Jwd0lFRGxudHpLaTdZcTZkT3JTR3BWTXB5YmpiQVFkZDE0Z0E0MXNuQkZxcmEzWno5ejNZb1pYVmlEdUV1R1FSczJWeWJQU1NsQThCdElNRHBUbjltb0RTUXM3UC9QeGxmaS8yekxkU0UzWm5aZ0VadGxVN3JiRDlkMStIeitRWnN0R1ZuUE5zNllnZ0VncGd5YWFMbDBuaTFrNFB0dENtWlRPTFFvVVA5aWd0c2VEcFkvbTBBOXpZZzVNeGlBK1BrN0c0T1dSeWRIVVJPMTZET2pBMkhUMGFPemJaVWh3NFJlUFlMdGlQZFlRZVozWldaem96Sm4yV0ZtUjFxSnRnMFRVTXdHQnh3YUoxdHRHMDVlZ3poY0E2dXVQd1NsSlNVUUZFVS91TGlZRHY5NnVucDZSZWVzdFhUb2JTSDJPRm1tMkJ3bWtlMVE0NXRIWUZEWGc0MktNSEIyV0VBSnpiVWZKb1R6TEk1dHFFV0V1eUF3d0FBZ3gxYzlqd1preStETFc5bTMwT2JBVE8yZllOZDFHM1BwV21haG5BNG5IVyswNngybW1IbndjUHR5SThVNExKTCtJcmFFeW1KUHdUL21qd2VENnFycTFGVVZJVERodzluRE5XeitUY1RjSFlITjFEMTFBRndsTW5ERVJ2Z3FBMTA1a1ZOb0ZGS3pjTUcyVjlvZzRMS0NZWUR3R3lvcHhuU29VTE9ZUzBpYkNFbCsyOHozbWVjbVNQSUhJQkc3VXUzQndNYWUybWFocHljbkg1YjE5bWpoY3loOWFLaUlrQ3E1eThpRHJZelZ6NmZEOVhWMVNndUx1NlhmMlBiUSt5QXM4K2VabWtQY1FwUnFRazFUZE9zL0pzVDZFekFNYTdPaEYwLzE4NUFiREJvWlFQWUp3VmJWc0F4SjcvMjBiZ1BkckE1c2d5STJjTE1maUF6TjZqYlE4L0J3azU3RHMyOFZGVkZmbjYrZGF5UUhXaG1IbzBQcTNPd2Zhcms5WHBSVlZXRmtwSVNLLy9XMXRhVzBmL21WRUU5SGdkbkMwOHozQnliZzNOd2NIYlltWEJqMzJaQWovMjdVNUhDWUIyWDdXUDk0R1Y3NndneEI2Qmw1TkJZcU5uRHpzRWNtajJINW5hN2tVcWxVRkpTa3RHUGxwZVhaelhadXQxdS9pTGhZUHYweXUxMlc4Y3lzd1VHdG9MS0F1NTRjbkFPN3MycFRjUU91bjRGQjlQWjJRSEgvSmt5UlFuVzFmV2ptaFA4aHVMVW5NN2haei9HZ3N2bXh1enVMQU5tYkl0R2x2eVpZN2c1VklkbXo2R1pVd09wVkFxVmxaWEl5Y25KbUJxUUpQNVNPNVg2L3dIRjFGblo4ajFpeHdBQUFBQkpSVTVFcmtKZ2dnPT0iXSxbMSwiZGVzY3JpcHRpb24iXSxbInNyYyIsImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBVFlBQUFFMkNBWUFBQURydkw2cEFBQk1DM3BVV0hSU1lYY2djSEp2Wm1sc1pTQjBlWEJsSUdWNGFXWUFBSGphcmYxWnRpVzVsV1VML2tzcm9na2lxQVJvRGlvWjQvVWdtNTl6NGlpTlJ0STlJdnhsbWxJTDNudXVGTUF1MXRvVnJ2My8rWCsrNjMvOXIvLzF2S21rSytXM2xsYkt6WCtwcFJZNi82ajM3NzkyL256dWRQNDgvOFh5NTEvUHYzNzkrdXNiZ2Iram4veDk0KzIvdjUvTzEvTS9mK0FmOTNqR3YzNzlxbisrRStxZkMvMzVCaGYrUFlGMzl0L3I3dy9KMThQdjYwLzZjNkcyZi84b3JiNS9mOVR4NTBMenp3ZlBvL3o1bmY1NnJOOWYvdi9yWDc3d3Nrb3JjNk1Zd281UHZNK2Y2ZmNFOGZlNzgvczlmd1krOS9DMUhtTXNGMzg5OGYxek1SYmtYMTd2SDMvZjk5OFg2RjhXK1IvL3V2NTk5Zi82MTc4dGZ1aC92aDcvYlMzTG56VzZ5My85alNmLzI5ZmpYN2NKL3lJT2Z6MVIrTmR2M0NIRi8zaWRQNysvYjlYdjI3KzM2MGhoUytXUFJKM0ZmdjV4R1Q0NFdQSjRmcXp3NitWMzV0L3YrZFg0VmU5K1Q3WjgzZk1lL0pwUGV3Szc4bDFQZXRiVG4rL1o1Ky81VEI0eGhSMWUvZzVoaG5pK1Z1TWJXcGpSZlVyK2VyN3d4aFpYck96YkRQdGk2MUlNZnozTGMrN2J6djNtVTduemV2aG9lTGlZVy8zZi9ycitkOS84bi95NnZtKzZSTTlkLzFvcm5pc28xenlHTytlZmZJb05lYjQvKzViUEF2L2oxNS90di84bVA0Z3FPNWpQTWxkZXNOL2pkNG1SbjMvS1ZqejdIUGxjNXUrZkNqM1h1LzVjZ0NYaTNwbUhlU0k3Y0pjbjVxYzg5eHZDK3p5c1kyV0RPazhlWWdxREhYaHlEb3VIUkY1aUNkY2JhdkRlL016N25NK0dIRXJ3eTlnbU5pTEhnbTVWZHFpeldTbGw1T2RORlJucU9lYVVjeTc1emZYS0xmY1NTeXE1bFBJV2pWeC80NXZlL0piM2ZldmIzbDVqVFRYWFV0OWFhNnU5aFJheGdibVY5cmJhV3VzOVhKMGJkYTdWK1h6bkt5T01PTkxJbzR4MzFORkduNGpQVERQUE10OVpaNXQ5aFJVWFptS1Y5YTY2MnVyN3VUYVdZcWVkZDludnJydnQvaUZyWC96U2w3L3l2Vi85MnRmLzJyVS91L29mdi80SHUvYjgyYlZ3ZHNyUHZYL3RHbCs5M3ZjZmwzZzBKOWs5WThkQ2V0angxeDFBb0lON2R0Y25wZURPdVdkM0N5aEZEanhrZG0rdTliaGpiR0hhVDhqZjg5ZmUvWFBuL3EvMjdjcjEvMnJmd3Y5cDV5NjM3djhmTzNleGRmKzViLy9GcmkzOTNEdzc5dE5DMS9TT2FCK2Y2YUZlL0w1di92anJieDZwN3A3TDZIbjFrV2RlcWFNaTk3N2ZGNGZ5Y05tWlluOTN2MU5ZTzZVdmhwVGVLOWJRYThaTzVhK05zZDU3Yk5jOHNEWnYrdXBUOEZyUGRxbml6cFUxcm4yK2JZLzYxTDdqTzh2SGgzZHVWNG00eUJFd1pZVmxyMkZ6RTR4Zi83aG9TeXpCeU8vcWZjMzAzalB3MW53WGJ4dlkwZHhhL1lvK09vNzdZc08vT25tWitMNWZxV3pEMmhtZkhzWUl2ZXlNUndRSVBMeGxuYU90dE5OWUxmT2N1WVhNcG43SUV3SlVyNEVSWHBYbkNxbjFQVi9ldWViMWZtOHI5ZXUxalBZK1gwRW9JcSs1VzE4ZE85TXorL0h1WjNDaE4yMDh3WHM5N0I0dW92WXY1NDh2MVB5bDhkMW5UL0hnZGNlNjJVLzJycWVFb0k1VVN3aHJ0dmZGdzFSV1pCM2R1Y283bmwxNHpWbEhpanpOWUFrLzFBSWR3SDQ5cGFrTW4xTDU3ZnpsK1pYSm84Vm50N3oycXUrZUgxdGNVSkY1ZjMzdHdkNStNZFk3OXpCU3V0bWQ5NWwxemFVWFd0L2RlY2I4RGw1dmZVaFBXT05iKy9sbXJ5dTkrN3Q0aXF4NDdQY3A3M2R2Zk1ITHo4eFIybXhZeVBkOTRzYXZ6cEJ2OWd1ZEQzZkpkYVByRzZmMjdJbkVQU3RjSTAxZWtqOGl0K28rOWhmbmpaY2Izck9sWGRreWRpNnUrOXNqb1ZvOThZZzdzSU1ZbHpKQ3JTR3gvUk9SYUNuMHZWV251VDdXbGx1UCtiMG8zVTRGdVlqMzdyUGlkWGRnQzlDNXdjNjlMaDFYdy9ZZ0YvbkNQb1RreFNwcUZuZngvZHR1d2IvWE44Ly9mM3BoczU2blpUUzczVEUyZlhnWWIzaS8ySGRlSTYxckxGNG0zUFZMckdGaUR6c09LYmNSZS90UWNPQnVXMk5nbUNiYndmOHdWbXhUYi9FYm9XQ3BrS25VM3R3dmZOTkNNd2M3SFZKQnFnZUdCN0FBc3B2SUZ6WnViWVRqcmV2TEEyVVplL0tZTnkvbERTSnIyK1ptdDYrTlRqMXpGVXhiUTFiN3lsdmRmN0ZJOStCUkVLRzFRSXh6OHJFM0hEMHNXSStleGh6K2JxdjA5YUMwMmliYzU0NWVMY3pHTTkycnByS1JyNGF0aWJ4MWY3bkxnMHpzanFsYXE3UVdNRkFwbGRydnZMZ095TDlpeFBZY0R5WVpSTlhCVnhHYklpNWU2ZHRQL2xoV1ZndkpTYmtpTWEzeGtiWHFMT2w3RU5RWEZVMXhRaUUrM2pSclRCSFYrbUl3c0FYK0w4VEI1czQrWjhRZm9MeDNUaGdsOUJnbDM5dzlMcFQzZXdGNm9ROXNkcnZkWXZRVCtNWGI4KytZKzEyd3piSDN0OTVqWWhmaTNkbzNLNHZDVTkyNVlVMTRoVGxCL3JFc2x2dkN6TVhOanN4Y25wUjdUUmpxOEtRM0lJTWRMcUNIdXd1TGd5ZklnNDBhaGVjY3V3Rld4dXhsbFlTSEFFVFVtUEo0Y2tUVUoycFhzTzhUM0xyYmZOK3VNTEgzck9QRHNpRHN2UGx1R0EzVzBWM0VwN0VrL1VZdkxwYTVwTURMRDIxTDRzVlFJQzUyZi81NFhpeGZ3Z0VOUkdXLzJOK01TcUwwZks0MmJvNndoODBGOXRXNFk0dDVycmNPMUJ6bnNIQnl1REtFRHUvVjBmZlk1NTFLS00vSHYydjVVRjlNT1Q4eFA5eEYzRHZqeGFGWkc1dVhFNS9BQUtZK3NFNjhidVV2VEQ1ZUF1RjhlNnFqM0JPRkJtVUROakZ4ZVh3RmJVWWlNejdqd1dXdmhSdHBYaDlubTk3YWVtWlYwUWhXRnZISDZtS0dmZWZCTXlOaHI1THhmSU1uYS9WNDN2VzFXYTlIQ3lLdzV4blJGc3g1THdGQndJNjYvQTgrR3llUnRJak5WZVRiQmJEUFc3RFM3RmhUMGw0WnBGdU1VUU5LWUhranRwUlh5MWhSVmlhLzZEK0NXVnJHa0NNKytHRjByUXFudjdsYlNZRFJranZPWlZ6U2d3OUc4SVlSWnNVQXlWWEM5dUlkbVVKbGtKNVVQa0RLaGl2MGdZZ2pIMFhQOVdITWNZaExhMzA5cU9VUnBYWGp6OWFIMnJkditZSDdReEtoRUFVUWtHQ21MQ2J5eFk4aEE3bWlOQjhyelI4Mzl2WXQxMXNuRjBjSlZ3ZTg3YmV5SXdyZE14WXU4MWJlc041VHdJQXZqQnEycjJjODJBeDR4dzlSK2ZiKzhDSzhLK2dBNElJUndvaGo4WUJsajI2ZDdXdjdneDBORU05Q0tFRkJLQzZDOEcwV1A3SjZINzRCeDlBUmh1dkdDb1IzREZ6MEREemozV05SRlZrc1NBS1AycENEMllvY1dCUHpZY0FCT0R3Uzk4YVZZa2p3N1JIanYzalpqZEZKd0NWWUlUZGFlTzFqOU1lR1pQMzlKeHJLemJwLzc1R2ZrQXU3Z1laWERQZUY3ZVVpRFNneHBFVGxSVnRCRkc5OVhOVmJ4ZWRHUEN1N0VTYWVUMGNMYXZ4YWpncE94ZzFpMEY4QU95WVVCWHVmVVBBS2VBKzBsZ3NBeTlCWnhIaC9neFhMR0tEZW5uZXkrcWs4RDVnbmdUaDVJbFpRZzNhOUUvUExPcFpQVStsSzdhY0NIMFpsNjNzcmViVDBGcUFXMG9pZkhqankrUURZcGpHQ3FyaWkzVHdYUUd2UDl1RUFGZXdGNnNHbGNHSFVGQ2VQaVJNNWd0MndUMC9IRlVqOVVEcHNWUHR1dHZFRGZNT05ubkkxbkFZcWczSFpCYkRGNW9BZnNWcVpqWDNBT00xMzUyWVZnODQvOFgyUVhjd2wvakdPd2liamFSSEFkQ0h0U0ZsY1FVTU9tbi9UZ2lFQ1ZzUTRvVUFxY29CS2xJeGp1SlZ0ZEFpWlA4Z0ROQUV1TDJIZ2xhNWJtSU5vS1pNUXgzR1dIaGRYZ2FZbzlZT3ZCZ0srR0dOK1BKU1dsbnlTMXdzWmdjWC9JY1ozbmVtYUZUTzFWZThtd2NkRHgvdU4wRlhXVGNTUjBVekVIUy9PVm9OWGNwaHpBd3J4aVlITDNDdzdOcWlWSzdJSFdMZ0cvQU03STcxb09TdjF2Szd5ZzU2SGhnL0QrQVl3TmdRUHVQc2hlZUt0bXJrNXFwVWdUUHZxNkJRd0lSZWNXQUl6SUFnb1BxOEZPWVlhSllnSGQwSHlKMkNWSFovSUZaajF3M052dkFIZk9WeCtYVmlteDhqSkN5WDV4OWVQdnk1MVBUS0c5ZnNBRnVUdkg1bkhwdjN0SjYvLzl6LzZyejk1blIvZG8rUzdZZ3g3YXRpZUNKcWNZMkpPWVNtSTZJUFJoWmFDOUxEZkNHbkxFSUNYSFNxaWtkL2JYdk5JSzliaHhlMi84K0FBZExUK1l5ViszNEJGK0MyVjkwQVpUTkROemFLYXp5M25UaGNDT1BGeW9MK0FIbUZ0WGlBcjZvTzZIdVRIUGtKazhnc2QyRjJIa3pIdTdLQzRIVUJYL2ZQRE0xK0w3VUc3M3hVRWRnL01BTVVPTXM4Y3ZUV2taZURtY1c5NHV3K3ZKRTZMZ01RM2RqajBEUkFmUmpvdWNIREJHV09Cc1pzTmdjR0FoeGU0Q0tabUtiZ25kbTBBY2dHYlBHcE1jV2dURXFoMXBMdUJhaE55M09OMWJ5NEZxY0dQYlJabm9DMnNCT2FQandUSklLNCtSRndZVm9sSEdiQWpyTERSVDRoamIzdVB2ZGFvMzJYb0N1QXFvRkxQMFN6VURaNGNXQkFZTlp0YkVtYXZzLzBOR1owNHBwbWZNTVNuN0RQVUcyTjBmL21xY0d1QUpkQ2d2a3BKaWhuM0JQdjRLcDQ1RDV4K3J0eHpkaEZZU1ZLTWhDR2ErbTdzMG9JMkw2NTlUVFFTU2xqZklUcGlqWENXY1R6cEc5RC9QbGcxZVA2SHpNQ1N4MWZ4ZGpzSEhCWmkxV1NSRDI2K3JQRmcyTGp6Qit3QWplQkRJQWp2bTU5OEtBUitBbFNHQ1BYQ1l0MGkvVGRNOUw2OUFWNVFSU0p3NndSa1h4ZXFIZlJVQmJ1QnRIMWYrNFBIQU85eFk1amFFVmhnSWRZc3duZy9YTlA4OER2b2lCeXhBdFRaenl0ai9ScXdINnorcE1CdDVlTG5oMUdLRy96QTQrWEkzbU43ZUMzZW4zMW5sWjhNRm9wQThZNEZEZTBGc2JFZlFFMmVBMW9CMlVLcU5vUmlwd1I1WVVlQ3pBdVU4b0NjTUo2WXhBZzl3dG1odUN6WERlU1NvbHpGWGNmREFYUjFuQm1tSmJvM3BpZ3dMZWdmc0FHVXp1NDBPSUFzbXAvbEhiWXVhY0o5TVdQaHVYNzhyT0x0b0phN3Yyd1RvcEI1ZDVUMVpsVnVURHUyMVRBR0RCNnpDWmlMT01DaG4wMjhYa3FvN3J3NklCdEVoazRVYlMrT0NIalRXVXo4Q1k1QnpvVG9ZZWpoTXgxRUNCT0ZUa2kyMk00SGFBWGtmRFJzQ1Qzbzd4NHNQUnN5OEtxR0g5Q1dEUEREYzJFbkJNTTNrT2NiMkFCc1R4QW5lajBlTDJETVdiM3lYbVVqZTlzY0F6Q3MzK3hTeWU5QmgyL0d2N0ZFT05aVldSTGpiczhMVE9rYkc3THdkTE9BamhyRW1uVy9RTlpZaWlCWkt2bkJpUm8xQWFiQTJPK1dIM1h6aE1MRXZEall3ck8zRmNNcUFGeDRDZWp2WlEzdmNxM3FIbVNsY0hUTVJvWGlKTDRJQkkyU1l2QU5zRzNoallhU0F0eUlpZ1dpOU9vSDFRbnd6NDJLSENZUG1NSlU4U0JydlNCNmxCL2g0TDZiVmNLSlljNENDaTBaRzVXTkJjSE5XN1c5M3dFaGhHN3NDNElMOWtIVXdkZjUvTXVkZytPellwQ3FnSTFHWVBrU1dOZVE0dHd2T0JlYm5zRXVoaVJRWEFTOFg0Q1lnRi9BQzVhTlBPQ0t0VnRUbU1EeXVleW9UbDhHQ21Lb2J3NHFjcGUyc200TEVReVZGd1A2c1RnWURVUU10VVJjdVRleUVScU1ITXdHYWhDbFZHdzhIa3F2aXoxbHpaQ016VGJtZ1RIUmhPUGJyNU02QWFBdnNSV3dCbXo1SFNnZGNDRGYyM0h1ckNHNi9BRU9jSk9mNGZZWEhLa0NBWDQyY3VLL1RVSnBFTWJ4WjROYklmcFlmb0JXUUw1cXlPK0VMWFc4RGw0SUs0MmRsK2tCR1BrOEpBS1dpVks5ejVWZytUamF0dTdkcTZyQU5xSURyR0xJSWpqTWJybUJLd05ldDluSEpQMkdvZjdqU2Y3eElOZWZKMEVQK3JHS0JuMEUxWHlLM1VGSXY3eE9mSmUxaGcwWFNEUFlDOFZpZGVKZE5KNjNEdjNLTUZkTXJzNUFFdDFRYlg2ZzFJSkFZN1poYzRqQWc2YmZmY2xadnZMbjFuang5UDN6OXRmZjd4OC93SzFvQXlMS0FwMEY3U3ZqMGdHNkJsbWtRYzNvbU5FL0JiUEg1MnVZdE53dlRGcVNpaGJJZnhOQWc4RmJkREZsc0M4TURQbitqT2dtNmFDeElKZ2p0cFV0TmNSOUZuMjBjQ1U4VU9DeGZEZk1OcUFWL3dhaURzK0lRT0lBajFSbWNhYjVPU0x6WXNXaFZNT2M0Ti9DR3BkeGpkWWJuZ0hmY29SZ0hKQWxzUDBEdC81dGYvN3I3Ym4rMmg4dC93Q0I0Q3p5Zy8rRjMrQlpGNlFIR3dic3lMVmdPbEk0VWNVYnBMRG4wVThqNlNqTHRiQ1FhK2JLQzB6REJnSGxZZE1iMnNjMmJyeFVsRnNjb0w2bWlBdCtObkI3NkFBUHh4YURURmhZTE9TK0h5RDkwem92S00zTEUzczQwRXlNYk5ESHcwbDU2Z2VLNjE3aVk5L3pxby94OHIzN1QxbXV1NVE3N3FyRkV4Z3Z2UHRFR3lHMWtxNFRFNE9YeVJyWXV4T2RUbnVBT3o1c3pGNVY1bzhDbEhwTkhDSEtYVEx3cHdDVEVJUTN3bk5CcUJBVUtIZGZUM0J0QjE2TjYvTzlWUVd1ZkNMeVRPd3J1cmswSTRqeVBXREFLQlJtbUxYcEVTS01tMHdSVUlIbHVDVmFzbURlSHl1RTFRVWxTWUNlVmVIS0czZjBqQXVFTnd3YUdOMUhaaGRxSk5WOHgyZDhHQlFNYk9uUXdoaGlVZGtOV0EvajhLOUJsS1h4YjZ1RWRTSE5NR21EbkR3amtnMWRnS2FPYjJZYzdhTlo2Qld5Z0t4bEtNcWUwcUd5c1pQR3BrUFNuaUpWSTExR3pscG5sWDU3V3h0T1FBZ0hxbWhRZDdPcnJDRS96WmVrcHhoaFErbml1c0RGY1pUZ0svaktWUnNXMkRUMy9hcExvcnh2RjBYWVRBUk1zcU9DT0lxVjJzYndzek5BMDY1UzNGQmx2RHJQaW53WVFLaDRpbnJqYmlyVXFPbmtoaVFLUkkrM2lSTVVBN1A3TXN1Q2dZM3pCN3dnZVJHb2ttWUE4RU1vNmhWRVFoRHVsY0ZQKzJBMTRPdjNiaVFhVWl3STN6bmk4eUZuSDFxdzhibnZCNVRoSmgrV0hKTlQ4SmhUeEpiQkgrcnNQT3E0alMwWFZnMjhPU2UwYytBampBRkRRbkd2WUdONHhzZEZjZUdZekZacmlkRFFDMTc4THBkZDBhMDREZmdScTJpQWs0VlBPR1dlRncrd1loOXI1MldBdzQxUE9yT0dFSmlveHQ1ZjRKeHQzQ0UwYnJoa0wzbFUwRTB5QVlBVE8rSVhQbndzV25pWGI2UGFLVHpvZnRYbnpUZFdnTkthVjkyNGIxRFlsMnRDc2NETUNPOE44WDFnTml0eHU3cUJPeER1L0Q3Z0g1TW5jRFV3Mk0xdEFBdEQzV254TWpRMFpjY1E2b0N0d0R3bHRSaVNnR0QrSTNSZnNVMVBodGkrMEVoMGJqWEVSd2VRVm9zZ2pTZGZBUzF5WVRkZWVFaW05NnQxMjVpQ0RESytPN2dVZndydmkwYTBRTEliQzNoWGN6R0ZKZnArMFA3a1JaQmdvL09QSWUwbkphQXpBc1UrQmgweTBnM08zZEtDUnpkbDRuN005UUJKY1ZPL25CSkxuSzhoR0RMa2dSRnBpQnZhYmpEeFJJK0JKVkpZRUZZdkVwa1FVU0hlRDVIRnRjTXp0THBRWDZTcVh4aVVrUkFFVmdGL052UGhyMXRuQUxpSVFyV0ZIR0ozc1JjTDg4YnJ3OUlTdUFpZmVaczRlQmFVYUYrNlN6d0gyd1NIaG9hMnAwWUFQQ0p5ZzAveUVYYklMNnp3NDRGZlNDQWZRR0s1YjBidVFmNWdSUnpaQlhwY2J5cURiNDBKL3g3OFJqVzVoS0huQXFvRVJ4ai91TEd6d01jbkwrSDQvVnZpcHhxZ1d5dzQrS2lhdDllY2lYTU52MmgwcWtiSmJ3QnhudHVnMjkxMXlZYWwwSDVZMm01eFBYbEdKUUhsdU1TTVlLS04wVVJXT2hCcXBpK0ViblhOMXAxcnQrYVNHZ3lKQVBpVVpjTmhjUytNY1lqQmpFb0dSRlN3WlA4UDRSUG4vMjNkTUFoOE1HT3JJL0Fob29XWi85N1hlUGFkSjArSzhXOG1wZEN4SmRteXhDZWJKR1dmRFRGaEZmY0c2ME1QQkNiL2Zqc0U4c2NENDZVNHhuL2UvY0ZUWUNuck1JMmtTSnRyU3ljcUFqK0JkTVNUaEdMWGE4K3hSL04rcllmeFhwK0ZMYlZqUDFIUjI5ZzFST01GL0pmK3o5dWR1MDJEQUZ0NE91dUJFRHdRM25QaHV3QlBGOEpmRTNnZjRJUTV4OHNVQXdKNEQzd3FmdE4wWDZ5WWgxK3VEN01aa3M4d04vS0JRZ0JWeHREV1hQemJUNll2WWlpM0FmenZaQWw5MTdNZ2Z5MEgrSmdIaVRkd1BPQ0NzVzI0MWxaeDFYRGsrMktIeHozaHVyanpyYWlCTmJXdmtvMSt0aDQ4aGRsci80ZWJYUCs0U3o0U0FVam0zWUVHYUxVTEQ4WkQ0VENZdUxzT1Q4bm44Vi9BL010MkFBN215ZkxoZkM3Z2JSelk1NHh2ZWo0VUdvdnNtczZUamYzWEIvamJ0di9MZThZYVFQNHNEUndESXdGaXdvVmtUZkdKNldBeUc5dUNEVUhaUVpkR2ticWs1ZSs3aC9YQyt2U3hMMGc2V29sVXl0QU5PT0tYSTJZVk1aYnNqQ2RDNU5GRjdERzg1MzJCditBNUpLZFg1Qy9xdmt6eEtaRDRiellBSWlTTXpsV2FOcXVHemppQ0ZCRllCcm9xWDlFR2habnhSRGp3OXk5UVdpYVE4U3JDdWZFSG1xT1ZFNHFMUDhVbFE1QWIyZ1FWS0MrV2JVdi9icE9GejFHQ1ptSmtQOWhSZEhjKzE1QmNHTXFCd3R6eFh1am1NTThLMW9UTm1oekJoSlozYzlHOHp3YUFSVDR6dFpBaFAzMWpQTEFvbHo1dm1PbVkrSU45SWhEY2oyWEd4NmY2NFc0eGxTYkp3Q2FOWndRNXJjTHlzdUtzblFWbEdhVFI5MlhBY24wbWJrcnZYQVZuaElpTWVtZFpGVHVDNlo5bzBLL0taZkxxMjFnWVBqYXpRZFU4dmtZU3VyNFR4aVB3WGliUlgrT2Q0UFJwVGRrVFBqTlU4b3Jlc1pYYklCdjgzMmpaU1FVYTZDcnJhZXdQcUxZQjhoODBmeGc5ai8wQkVMR3pjbjFjU0dkakpxWmtqQ1BTVlVJaGlEQVN6Y3J2WU9ZNGhxOEh2RWc3OVlsd3UwTWxQcmpsaExzVlRHUUdwVVdyNmZnWlpDMHJLVlBKUjZad2E5eitTNWdTcnYyWXpsQTRUVFZIbHAxVmdTeGJodkNMYVlIN3U1VWozRHNOZ0I1NzJMRHlMOHhSUHdoZ0J0VUNMWjU5UmVBbFpDR0R4T1I0b3QyM0lYbEpaSWh2TFN2RHExcVk2UVNuMkV5QUMreUROVFMrWHZQSjVEMm02UnQwTEJYVEdjYW84UzFjVEV0dXZZTjBWU3lzK2NQSHJFT1ZZSU5nanZRa0JKMzc0MjJ4a2Rmem1IU29reDNBV0l4alc4UFArOEtqdU9NYjRJTUxoSUNJQUhCUmFNVHJ0V2dtZmdBekFBbnZIUGNGUnZCYnFKTnF3K3NoakxOM0pCOG9CbCt0ZUxadlFlR1dnWTc4R0xKUy8vKzY0N21meVV6OTB4RGlveVRvZGNUeDRMQWcvakhoYnNWaGlWMkRHQ0JIK0hTVGdQbkZVNk1Cajk4UHhrdStmalg4Tk41bkFuWGErNWo2QkNXQzhYQTJRcUJRakFMeExsQ1d1RkdrbHZCWEo5bGRBUStneVpHS01PcmlVWUJ3QTR1RER0NVlVOGdDTkdxREFTcllPK1g0WUxhUS8yY045cTBjSGdiS1FZbkI0UDY1RUppSlBmcGJqa0hjRDBCS3Q0bm9YOGJ2eHhVanlwekw0WXFZR2ZqUkIvUUI1SmdrUys4RHdTL1gxd2NZS2kxZUNTa0NJZ0xTcDdiek9Za0h4ZG02b0J1am13MHlnemt4ajNsakp3MnI4UHdZK3JvbmhpM2tvWjV1TVcweVY3dE11M2ZMT1VDQ1NHUVV0TGVsN1JSbkx3UDMzU0RoU1V6R1g4ciswdkZIak9VSHVNM2xwRFIrYlA3QnVlNEhCTWIzdjZhUityMk0wb3h3dkxvQk1UUmVBL3FPMGxhVUhOK2JJU25XdlNDa0JpN3hpVHgvUnl5eXRVeWdGL0JCcmdDaHVrNEJOVUNMcjREaDRhNUpOTkpNZWtSVUpQVlhUemVOemdGYVU0OXZ3aUlpZ1lZaGVTdVV2Y1JrckE1dlBZQkkwYkRjWXhZUlFueEY4NVBzVHJCS1JjcUtqVllOeGhpK2g3UkJyeEtMc1ZXY1NNWFpZbUN4TGppN2NxOWZES0NVQ3dzQ3JUZ0xGa28rUDRRUmdPZ0IvakMvckErQUE1dUJhT3dGOEFjQ0FxRW1HamF3SnBnUzdodEdYU0IvZktKSkFObE5SUlJXeDZFWk4rRGRiamxDTjRqQmJxSFhWb3B4endTK0VtNk12NzM0QlUrSEdGbU90d1l3NHNGT2ZNSGFGVGdqTW00bGp3Z0ptKzNXbTlFQXF5UWdHTzRZdUNoZWhLM2QyMHJmdUFBRnRSNUI0UGRTSDdINEgrZ1BBRzdxcThQbEEreHJqTTRpbGN6NldEdGk2VkcwWE1EODJnY3VoR3creGdBLzl1WEJxUFBLckdSc1EwV0NrcU5nd0xKeUZxMmU5UVBRbXpxZjNJUnJZUkxxMWFBUGtJTWJqVzh3OW5MU294OVdFWE9IOCtMM3hwNE1qSDk5VGZudkNtZmxmZ0tjMjBUVzhiNGpYdEVRMVhtWDhQNldNQnNWd0haQjNXNWo3b0F0a0NNb0JFU1VnaGxCU0JHY1c1L3lHdlora0o1OElaYTNGMExlWUR3c1VMb2JqOWpSN25iQ0VqbWZ0QmEwSXFCN1ZpeGlrdGtMc2FqSlV2UEZPTmV6MkpYTDVIZERpNGVsQVljVlFTQkFFYXdLeUc1dUVJcUFRYkxBWG1BTGNCNUlzTVZTWlJvOW1aZVJRWlpzK2Q3bzFScnNjRFF5dEF5ZTZUbTJtUWM0bzZWL29vLzdNMHN4QWF0ODBZb2pyL2RkTUlXZXJlRVNNb2RhY0lvMzFzMnlod1NBMlBHWWlSdG5BeFBjbHY0QkNudmREVThDV00wSUdFUnR0Z3NMYkVSR2VKaDdOUStGUHFMbkdMWjZTbTBBeXRXRU5JK1hZc1o2QS9CQWhWQ2o5VmhTY0dQdU1BaUFDSjhINkdEV0xacmJSd2JxUWhiQlQrVStKZGtac2oxdzJoYklZN0FOd0FEOGRVWWJGeTNneWVPYVdJZU5CLzhzbVFKVTEyckFRYjJNM0NJWGd6SGZJUkdzdGVsNjFqZFhvL2ltd1pEcVZKRzROaSt6ZjV0N2Y0REs5dlppNkdzK0lEdVhHQTZBSU56Qk1PWDlqZkdyM0w5M0hKWVZDc25OdjdKcUwwOFU3N1JQclNFZ2gwZXRwcmNNMlF3bFBPQ2RNS1VHaTNBY2liVjltcVVNeGdpM1ZlZ0FzWDVxUXkrc01wVEt6RTB5Q21scE9sREFTZ1l4aUxjSFltUkV6K29CNjNiQVFSMEVqczE3RTNJMXVuVVhEN3RXVVQwTU1EZk0yekl6WHUzUmpuMjhQakNoV1Nkb2NBMnYwTFJkWUwzQlRzT1ZsY05WZVhiQU43cTJ0NlVWSm9ZQVk3L2tQTVNlYS9vKzBMZERBNUJrTkJjL2hIRExCTEo1NzJKUU5vWVR1VjJza2ZnSWVRWW52QlZRUGpKRUpCakRmREFnd0xNK2g2V1RGZWpHNmtJRis0dUFGeFlaRXpiN0F5RHViN24yQ3hSRmJnQTJaclJhM05NMG1wVXZnQjNqSWQrMHdIRWFjRHY1MFJQYlQzNTVMR1F4SHdUMm9HdFRKNDFPN294dDRYZFNyalY4ZUtZRWU4Q1czTWdpV3hXTVZ0WXBTZWFLQWwzUTY3UWNOZ2ZySVEzTTVYSS9rQlpXaEV2aStwTk9hb2ZPdnJBWHQ0V2w3N0RLdzJ6dWxEdWVjSHMzakpoZUVPRmxOZVNmckVQVjFrYnJSZmppTDFlTDBUU0N6SmVnNWNteWFhdFcxQVI1aTZXZSswTUpjRHdnL3djRUJTL08yWXYxdG5HTU9NLzNSYStuNFJLVFpEd1FXQUFEMnd6anIyZ3hnTFZqU2lWTWpBVzgwdnJ2SHZiZm4xVlRiVER6VnlNUmJoWkM3d3dRWnovRFpaaExhVHgxbUtnOUdLQ25rS0IrMERRMEtXQ1pwZ3lsNTFPKzBHUkJWakpOWEFkbUJrSUZBNC9wQ213Q2dBaFE5ZWlxekJBYTFlYW52di9xcWY0OC9sL0pqVDh2TVBKbDBmdzYzd0lwSEJ1Rm1CUmM2WWtDaGNPdGN6c3gzbUNVRW9xYm1vRjFIT0QzRXpMandmbDYxWGQwUElySGtURUF5ZHg4U3NnS2xIdDEwMTJzZ3J5OTdNTU4xMXF2K0JXb0IvTUdCN01vc0tPcTJZUDhUNHZxQkNqVk5ISUMvbUp1OHNsZ0orU3ZZZXNBUUJhdkpQUHFrTk1NR0psWStHNGNCM2RrTzBENjZVYjRma3BRZmxWc3VrNkFuUlUxcjdzYVR6WGI4YXpiNmtFNExGK1lEU2RaOGdVQllOOWdSZXdZem1IakFubHpYSEVDeUdQWjUwd2duaE1SV3NhZUgyczVnUjFBVlpibXc3K3hhdmxiMTBrUFFGeHVxSFRiSnRPTWhVQXNzSCtQeFpMaEcySjhucTc4SXhuMTE2TWQwalJPVThtRmhFdHVUMno5czBKbEdRbG8vcmlQMEhvMHY2STFIdmhNc3ptNXppQVZVdmo1czA0ODR1cVhGdWpHd1Rhd3V1V2sxWUxsVlhoTmlBdDJCYzZFSHdaU2xwd05DY2tPQWk0aVcvQnozaEhPQkFhK0RBN01mK1RKWE9YeHk2RDljNVgvODJWK1VPYkZvWWxzb2tiNVFZNE8yOERFQTZCU01Nenl6dkhMVm9tL2hDbXdocEZaeFZCdXU4UUM2ODFhbkNSQ0F3RmpQdEUxeXg0RUlWQ2IrMWV2THVkRnN3TE1CaWNmc1J3d0NBQWxRQlA2QXZjTW1sYVdoMWREOUxGYXNvTXJLWFE0bkFkRWlJZ2lpakNBL1A1YWZWNURFYzFBOG5kYVpyQ1MydHdoZllieUIxQ3BUUHdHRjE1R09JTk8wNFFGYU41bWsvL3BxbzBPcC8xTE9OUDNXellZYkk1Mkp5VFEvWWlqYkxOa0pwZlN0SlFCUzJNZHZ1V3llUm9kS20xajhWenNtRzVnV01OQ3NrRHVQV2FTMnhzUEEzMFhpR3JHL1hJUi9BT1lvZ1BOK3VFVzFvVkQ3RUxnQmE5bjlPZW5ZY3RXakdLY2cvVVZyVTA0OXJPYS9udkhPMWN2TzBVUCtEYWNMNVFYc0huLzlIT2ZwSGcvSkZOam11SXY0RzJKMkhHMS9UVXpLVFYzRGZDTVpwUFk1YmJ1Q2VlMDFIeHVDQ082RnFyZFZjYk9jVUMySkpnM2UxbXdaWWtNb0IxRWpndXdqQm1raWdCYVlHWTA1ekhyZlVSVHYzRXBPWEhXMzE1ODNCVWVQTzJDWVQxK1g3UGtoRmRBaEk4WHhVamlRbmgzTmdMemlFTzIvbUZlRnI3eHFoWGtyNzQ5dU0wT29RUXZzVjdMTkVuWkE5cUNGYkVhY3oxbUhpeG1mTXkrVmVQdDdPb0RPWTQ2MFBFZnF3TXF2Myt5aEdGd0ViWDgrUUNXK0F2YXdhanYzNExaT0hCTjJ6VVJ1M3RMYVJBdlpCYk1oS213emNzYUk4akRqamdSQzE5N2ZXZjhRSS9zS3l4Q1h2dmxZbXo3K2xqeGFpMkx6U1JaUHB2eDBiZnRMaS9PQWUvMTl2c0VWWDJ1QjNLTjIydFltMTJ0QVVIRjBUc3dNSjYyd3czUlJWNThXYzlranVaVHBtSXBrQzRCU1lUZ1BuaWFpZG1MMkNqUUsxYmlCR2FteGQ1QUx4TjEyaXo4ZVFtZ0pNTktwbFR2YW0wQVVMc0FZNFZZdGh4Wm13SkkrN1IrNEt6dlQ1TGx0N3NYTHRRMG1aNG52UEJQbGhtYnoyWkkrQU1yS1Y2RFpySGhGdjFJMG9IS21QUW5Wd3RqN3RmaS96MnV6RGZiTm9BYzVnK1R2VWF4T2toWkpBQVRDTFlseFh4eVdmaVcra3pJckVWUUFmcmJqQjVhb0g4dGdBVWdJU0JkMWVSOVlYZG5MVHdGR1BTMjU4c1ZXSllKZ2pLTEpZbzRYdzBWVmhYQS9ocFZnM2RjcjkwWGNnSjBxaGlSaDhFK1dpcFRMak9DU05lb2R4c05pZGdiVzhscXY4WmlvNDBWcFdOU3hvUHNYdGs2Qkh6ZCsyQnlnbEhCK1N2QVFiYUJHNC8xM1VqVDlBWFpkNU1Jc0JtcmROa0hiSGhrYjhDYno5WE1WRzFveHltM2hzcytWbWpEQ2tCN29ITXdHclRpZm5uQnQ1My9pK3c4d0lmQzQ1Yjd5OCtvMkpRSllwdDJQVUJxam92RWZpRXE3Q25JTnZDRHZBYjhpMzEvQ2d3TWVtdjUwd09oZ3lzQXZuSkcwQU9ZTGQ2WGoyempqN2xNa05qSG0xZGJRbGxMa1YweERuNGJkaGtubW8ra3RtYmVGSWw1UG9zV1JDNlBEdkpURWM0MmNtZndENDdOcXNNdFI5U3N4WlBYdDBVTEZOakVmYk5hVU1JTDU5TWo4dXdLbzd1eXJYUUR5MS95Q0NnUzVpemZLUTFmQjBiQVEyYmM5Mk1zMHRvUk0xUnZ6NmUxQ2RNNWdGTFJ5cXI3bWloTkFxd0hpU0QyTk9PYTBpODNhbXJmNmtvMDU5bE55bVJlZnBaZmRWY0NjMzBMV3drbCt1VWdzVVUvYTFPczlVa25QV245WllUOTN5YzZGTi8vdk5qZjdubnVlRXd0eUJaSWFjRXZsb1ZkZUxIUm9ULzQrUmY4QmFLR3RSZ05CTXZJQ2JzQjk5Zm9pSW1SYjA2VU5WL3QvL0tPLzd3aCtBWVR2aXhEclNhODdjNUZhYTN3U1JIUGdEQjJ1R2NIZmV5bzg3cnhBeWNhOVZvaGdhblV1b1NUUFpBZ25TSUNFWU5lQ1FaWlFIbDlOYTZQLzdUN2cwYzIzUmxoc1JEZm9WdEtFZHh4ZWo4d1ViTllKSVdoUnljQmVCbGtiUkV0dmg5WXg3WGMvSUIxUTIzUlY5UU9tZFA2TnQ4RDBwK1IvMlU3RnArSHBFMTQ1RUpiOFpKY0c4Wnh3U1dUS2RoZks5UUdYcUhwRnYxbVNHRGhTc3NNTXBTWXgwQmhoMm5iVVhETEJYTXdaaDRHY1FVUnp6Qm5jV0JMc1hDbm1UcC8wVVU4Y0xhd0QzaUM4RDNSY3RiYkxQUnRuMk5QYUxpaFNqUVJxbFdRN0ZRYjc5dlNuWkd6ZDFsemNvdjNPaDlmRlVLYXR2VjVDUk5uTU14a3FzRUc2OWdDWHNVT1R2dlBycnNnSGJhK254d1AveTR6N08zREFXWFFRbjBwVzRiYy9PcVJwVTU0bDlQUkNyOHdBd2VudU5zVjBBdHJ1TktqSjc0UFRuNFZvYkVNQVVFdDhmNGJSSk9mSjcwV0w1ckF3eWhBS3V2ZHJabTViWGk1TE1NeDdXcjQ5SFBickh1WjNTNWxpTGl0b1dZZHovL2s4MzdCVWhha0lEWkFWbHQ4K0VFcUw3MGt6Z0dpalZOREhuK1VaWjJZQ3M5WHNsMDF0c1c4MlU2d2I5OEw2NDc4M2dhUVJvbW9WTml4QTlnbmJnbWlneGV2dkJ5R05kdkx0YXo3ZTVDOU83WUtsRjZHVFNmUzFLMXVaR3RoTXVpbVZYTzN6WkdYd0FBdE9HMDQzUzQ0V0lpMTRBYUF5K2hKVG1pamRiVU5WRnpIZm83R1N4YThHZ2FDUy9FeWtKcHFZVWUwVHRnUU5Xc0hlT2tkM3dxQnc0M1Y5ckpKQTNFMGhIb0hiUG04eFFzWnRycHZPU3p2azJhNlVLTXh1aktBWTBFaVlKQldCa1BqeksyY2VwS1ZMS0JCOEsxclFNcENNZFUvYkIvYi91Qm53OVlGdjNoYXRKbkZzb2tBeGMzQmVSZjNyOWJ1Um5mdGRzYWlQbmJkQlF0UmNvODhLTHgyUXBNdHRPRVJybG93WEphTDVmSXI0bHRXNENmNEt5c1FCRmJUd3ZWeCttNE5QMEFmWmhKM1JCL0pmb250RjY1cEVDeUNQQU03eVE2ZHZJVUpJZHVPcmRoV3VHOGJYbzQrZG9qSGlaMGxiREkwNlpVVEFDY2FpQzNiQ1lVa0E5Y0FDdk1HbC9KY0dLYkhRa1QrRnlIWkUyQ0xienNYaHVHaFNKOTFwc2tjQnVRZU1QcTl5NDZCdlplRkVUeHcwNkhqdkxCK0U3ZVF3cGtmZzNKR2F4WFN4RDg2b2NNbnFWQ2MrN0hMT2QwWFRIUHFSNUxKS3ZZSER4UDEweUNHWVlIektvYWc1QSsxWVFVZXA4ZGdUQjMrWWV2R043WEk3M2RmdGpsQTZjcUpNMEZVNjdCS3AzNXIxZXc2MWM4TXZzaDQvWUNCcU1sc0FDRGxFV0FBd3U0MDgxVjltMnc3bjk3MHMvZTEvQnJYNW02R2xScUxnSzJwNW93ZStNM2FVbE5KRkxTYTFZRGVHK3dHK1Z2R1k3N0gzbUEwa0tkNWdGVmZpdllNVHN1RU95SzFveTNoRlFPYWRmalcyZTNiSkI2b2R3UEpybUpWU21PRGI2WFJ2Y0JucmJDYm5aWHczVzdWa0JHSzdOd0k2N1FGb3RFMUs5QWRJT0xITmhWOC96VGlqRTE4YlBKSHlIbCs4RE9TWnZrYjNxVForWEJxdFlCR3B3LzhOWjdQMHhrSDJYay9MMWgzWHc2akVOTiswNTdKTm5Ra3hZZzZHQm5RQVk0M2EyZmErYjExeFVGMkRYWUFVTnA1M3BMVjkzZGYxdFdlZHQxaFc0RHhZNzROT3NNTklJd2Zibm5XaEJXUEJnUVFlQVBvRmRaUm1wanpUU2tPblNsVTFOZ3NQNUFBNjFndEs4YkhORWxyVnBlbC96QmhSbmRyMGg1OEFOcG5XWGwvOS9aS1hIalllS29WcnhXdElRaTFzQmVnWTZnN29vQU9nVGRmZE5PdU5pejlhY1E5bEIxVWJUdkxCekVBaDJDNVh5dlY1NzdhK0JXWkRtc1BkYnRteGdQbXRxQVo3WjhCajE5VjhtdDFDQW9nbzlzRjJyYm1hNlE1UDE0STBianowNENjdkcreXB2Z0J0WDhGRFdUNWdMNDFvR0dQci91WXFicXRTNzdOZWVkV09nN0lmUG4xL3FyeGg0TmM4RGxQSElZRHBvSG96M1FES3NKcXV0UmdqTWVJblZXdHBwUU5rdGhpbm5uNStWdzRCVHVSV0F1Y3JDSnF0Qk4xK1U1aEVtNGNCMkFQTE42bTNLZ0NxTDRxVTdjRjRTaUlVVUJ6bmxlMjZ2N3JqclZ3cHRPdklqdHV5Zmc3c1hqZ2VEQUd1RzNoNjdDanVPUmlOUU8wWXVzWjAzNzdoamRjV0NLTTFNUXM3UmE0Sy9jRmFDR2JncUtUR0xUVVliRkk5UWJGZmtpVjdQQ0pvQ05Fci9GSmZNS0tGNWFkbDBJSjJVdGNvRE5MT20rS2FpNXo2YWNGSFhzTjliZWJ4WGpNdE9NQzhjTDU3ZEh0OVdRM3dvVVRzY3BqV2VzSVcyUHZRT29MMDdWTWN0cG1qcEcwZkFUK0Q3UmZXZVV3aVlBWGVoeEswRktISnRjTGtObXFlU3F3OXYxQWxGNDd5UnF1eGtoTk40eGdlYndzT2VpWCtOZkRVcTVUcGV0YlBqWmozZVd5bGVrdFA2bEZnc0hIeGhMaTl4TzJCVW4vSnJMUEF3d2orcm9LcUI1dUdSZG1uaFIwaEgzbzk0VmYvTGFqdm5nQTF0ZTVObTlKZWlKTXQvbElhL1ZRL2ZiV2RUdU1CdkNWOU9XZ01FUXViOXRnKzhiVHNzdlJ4Z1F3OU9uL0tGekRmSDAyd2p6c3R1a25zNXFzWHhCazhYNzdBUG9Od1o0aWc0MUR2OUFmcTRyaVpsdGZFSEpJM0RqNWltWmpXRFNneFpOUEI4azdlVXdiNk41azgzRUM5SjdZSnRiaVRsYzF4TGJqRWNUWENvYnlMSE4ybXpWNU91VE9NbEo5WDV6MkdKUVQyNGhBQVdNa0NiTENEb0FadGlvQ0ptMDI0UUZ2bDJOcURJYUZVNHNNamdjb3dtWlY5M1V5Tkx4VXNEU2puL0E5Z05FZVJ6NXgvUjgrTWpWNGpoVndCRTIyOVFsNkhJVFB1UWdUbXZTZzdURXVsdU9Fa3VvbkFENVlIUC9RclY1emhBdkNiRHcrQVR4WjdpN0V3andDY0RBZWVsNW5OZlFPbDcyV05WdkxIblcyM2pqajU1UVNTRERtTnBpS3JLZTY2Z1IwYkxsQitPRXFCZ2g1SkpONkU5TUE2ZGF3TFdNeFdGY2dCc1k4M0ZhK04xdytaQWJiTkx1VzZiTkNMQzU4VmJaUXFqcUpCNWNIQWdLMmh3MWd0eVlrdWd2NXNacWtUOEVNT2owNlNBeWk0SmdOaTliZ1F4bmxBa25BTkJDTEcxQXY5dWpJR1JEeHV3TGkvcUh6eCtZMWFSMFBqKzB6UGxVbjJ3NmtRT29UcHZQREpKdFkwWDF0eXhmZ25jWENPRXp0Z0lzQUs5SDNmcXJSQzdvaGNSL1YrbjU4Yk1hQlFMK2VJRm5ZcDI4cmF3czZBR29McTQ4VkFvZGZXbHI5RXRMSFMxaDYrSjFGNWdidnY0aURkRERiQVM5elNIWXlzazdvQUJBSHJBQVZ4Yzl6OVJITks0TVZ5d3R3R01FVUIyNGZLM1NmeVVoL1hWTjZiekQyeDVYR0wwTEFDbHhuMkpKVmE1aGFzMHJyVjNSejZsMy83Y3ZHMEhMOWJ5NTUvZk9hLzc5ZDh2cXZIdlAvelNXdi8vMmJzN3lvSWlRMFlHNXZhK0tFMGlmNmtINExlVGNjbjNGSUp6OHNnK3ozK0kvTC9DeUhjeEIrdHNNc3BlMitNUGVnbnZmZjRJQlR1M3o5KzljTkh2MFhMMnVkSk9ZRk5kNklvNTFVdWYxbzE3TE05QXVYUTF1Z1pKZ2lmQ2RXME1MblBqK3dJaHdwaDJvOGhIV3daTzlURkcxbTFDVG9oMFFUdURXck5zdlYzbTBQS2Zid1hOKytLQnp4cks0Wm9HWlZzRFVlRDd1d3dwd092VUdaNEpITGtuajBSa2hzNk9iNmJPYjdySFVHVzVTQlpkaFdnelY3OURzZWF4c1UvT0l4M1ZaeWJJdGhiOXVCSFAwUnNEbWZJNVFzcTM3dCtmcXd6UmxzaUVORXhaSjlhdjE1TElRQURmTTFUTW9DaG1yUDdDZkFBbjZHbWRqRTZiU0QxQzhzYUlmRHRGUUNqTzBXamp0RDd4ak9ON3pMcmpITC9ZSnhOU2NnN1FEZ2R2ck01MncxNTA3QUNacGdGT1dIQ3NPdW9nMnJlT3pQOEg4NTFaclJCdXBrbWZWbmRhTGYxQ2RETzVGS3lJM0owdS9rdGk0V0M0TUo3dHF3U0NpQ3BzZHdkTEYweWRpNWZ2Zk9QcHd6WVpCQThRa0l5QzRsMnlBQ0hpR1lwNTFuOWxxM2xYN2NFa01weGJRcXhnZDdUcU9GSlhxdXowa2ZtZEdFQWR6MWNNckhtRHdzSE42UGl1VHU5cDlDV01UeHcyVkQ3U1BHWmp5dVpSVUdGeWlwMmF3MThBTUJwMUtCUjFCRXhmQ2JWaUE0NjBNT3RVd2FoVk9mRzV6ZnhnNG5vemFXNFM0bjdTUUxHdXhVaitBc2JQTnRSUXErckQzdzR5dmNnb3FTd1FhOFRjVHg1ejhWbzNzc2lkWnRZTU94cEgvOXpmTzZHOVhKZkFCcktPZDYrMms2WllzRktqZjdCdkMwVnVpek1zUWFWWUE4a0VhaTFFK3YveWZhM1dCT21PU0xUenk3Q0UvOGVEVVRkSW9qcU1ubTg0NG9nYzVpYmFCQjV5WHNhZjhGUGdYUUI1SnV4clRnQ3BLNzVMeU9qaDlhKzhyWW93bktmL0twMUVnV1B5Y3VFUjFqZ3hxbldFeXpCT2RDRFd2WWNVN2c5VHdoM1JVK0xGVjJUTmFGbENjMjY4dUhxWUlkZEYrREhaMitIOEFHakpZY3VtbUZEUjU4ZGhPaWZoVkQ0cmdaTkltZFhKZFJJaE1Rb0ppTlhIMnZwRG5lenI1NjRYNHFWMDhqQTZhZFdjVytyRlNjRktnRERZNVhtODQ4S3RtbzM5ZE9JOWQyTGcreURMOFFtMjJNVTFiOVQyMnRnNXpBM056bERtWFAwK0Eyc0ptUUtHdTg5cnAwcTlBak9PWkdKZXk3R01BZ2VKREJNckczUm9EWFdjNkYzZk9rdWs5eDJOclBtVGxrclJGWTVuTFNoZmt0THJEaGYxZ2lVS3c5cm80Y2FsaEc3TTh3Q2dRWVNoKzZEMjFoL2V4YkNmWUpZdGMvY3lBWGFCTC8wRTlTMXBDVkxzRmF0V0xPejVSRHdWYWNVWWY5T2ZXZElnNnpRUXNBcjdrcmdJUVN4M1ZpbkxGWUNkcnZWY285ZkczY3VITUU2c01YaWdHdFpBVkFmRDZRcnowczY3U1BhS2pHcjlRelhUYXJaWFlCTzhKdFJzQzJkMmZnMmExOFExYnRlVWdkQ1dkSjRWQ0FiWDhZMnhrbXJxWk4yUFkwVDJTL3lCbTdCdUY3RHg1Nk40c2tRODZpVk1TdTJLakZuL2RvTExKeE5pTm5wNk1wbjVTTWMwQ1FiSmhxc0xidmtON3FhS1QxYTgwRjlabllQSk01V2pWZG1pSGhuWjl2TWVQbndsTWJpTWJaY24yUHl3UWU3NGt2Tm5RNTJzbitPNTNRY1Z0WUFzY0VhcDRzY2oyenc2eHpjemlGMHhqT2F3L1JLZEFQOUo2anlwTlk1MlUzMVFqbFFjU3hUckVreTNwdTcyK0Y2UFBzV2pEOFRybDdMU1pydHhOMkhyanRkYWZqRDh3L3J6Mmp0VkhkeUhKMmhsOXV6bmNLUlVMZlQ1azlobmp4MmZ1eGJQaVpoZzZjNndWZC8vblhlaXFiSGNWaDRlZG4vd1g2b2JJSCsrYkxZNVB4ZDR2cEhYaDFoaWdhSHJWYzAwTENuaTlYSm1FTE0vdHViTExiTzNSM2pJOGluWjYra25PeTd1eGtwRmg0RzJBSkJpbzRkK3BHcTg2T0w5bVJQZFkyQ1pjUFVBcHN4cklqN05ES1lFa0dQaGRiYlZIck5Jcjl2cEZycHZZYWNzQ2xZQVpSWkJ6ZVpZa1FKcGRmeHRqdzZnZ1hwRFNiY0l4QUdrR1d5UU1jRTBiV0dVZExpZXQyTHlLL3FackRSL2l2SHQ5amQ0V0RlVnZDc2h5eWRoZW5GanFXWXRzRDhDQzJHYVk3N2FlUDBiR01GaWZhQVl4d3dIbjI5U1RGeWpJMlF6U3ZSYVpXdEZuWkNXTTRDVlViSHh6WE4vTU5JMzJ6Tlh4czFUNHpHL2pCYnVubWxjNHdQN3VUTGFGdzdobEw1NTdqM25TTWZBdERZZVVzaXo4L3k1OTU5T2VNVDBUUnEybEFURW00Rm82bkkxeWhPMi9xUFVtSjlTd3NtejJHVGtlQzdVd3NOczRqV3J5YUxVYVN6OENGN0RHY0pyWExkN0dwQWRFY2ZCaWNCU2JBZTdDcjkybUJnSkRnenN6a0RNellzbHJETWt6WUNpSnVsR3dZWWFqV0tGN1I4Wk52U2hOWVpETC9OeGN5c3FuNktBMGxwRnVkbmZaOG5nR2diM1JPU3Z1Z2F4ampNSHJBRmtKRjRXdTMwL3ZNaWdLZ0g2anFaMHNNMm13cjhHT3N6QzcxWVZMMnNmWXI1STdXMjVYaTRGb01mSi85c28vSG9XN1ErZktjV0FLMkhuZ0ZGSG82Y21yTFMzUmlEQWJ2VURVODhJdkJzc0RURUdlVlF1LzJYdjkrMTZjNWpMS092L2M4ZllibVkveVhqLzc2c3Y3NjhIdXQ5OWRXLzE5KzJvbzJtMlljczJFMjBYbTh1TTk5TzlSZ1JJeExleHpYWW5FRkZnOG5zajRocHlYYisxRU5ZQXNaZnlCQmZNZFV1dmxqT2t1dG1qVUJ5aUtteGNGZnI5V2FWZUwzM2RWcUpkQ1FQUHFIamVLZlJNRnBkQkhDRzdkYXphaHNNcUFFTkVoL21pbTY0Y2hwRWdvZHh1VTFoOG80dGd0YmF4Y01MbVZieEJyQVJzdmVkV2NVbVZkMDFJZHd6RWxzZ0ZmbldYd3ZiSmcxU2haeE9ub0RWY2R2TzVuRjJ1UUhZNWY0RjVRNGRJZTEyZ3puRklXN0NnMlJIVDZ6YktpM2N2ZTdPbTZreHRqZFZFd0ZObGFodG9SeFZreWlxZmZkSDVOaHdCVXd5MFFIVHZCNDJDMkJwOHIyWjJLUEJ0dUdHUnlPdElMeXg5TXlQSC9WTS91ekVGS0pGOUNlTnZQM2h5L3RNTWdzTzhzYXVwUGEvb3prK1gzaXovZWZ2eTdYLzM0NW5FTDkxN3Y1N2IvdWRmMXU5dThYKzNPelladjcrNEE1d1ZvNEdJQzVmdFlKZXV1MEFKblFRY0RibnRlZkJXbmx2N2pkLyszTE9YWHBNbWdKS21HbExUSEZCbWxmSVVhZlVvVlhoaFhDWDk3ejlkYUh4Y3REYWhsUC9ORlJEVGd0MC9TbmcrWTNYWFNWKzA5bEprOXdpc2tRMDFPeWpITTNEdjRDY0VjNlVUNEg1NW4zaHVGYUh4RlEycEZPMldoenVGSkNtVUIzVGx2cWpyTFU0UnpBUDdzNXFaTU1nUDArL1RQYlpyZXZkUnczOERwZXU2WHR1QkhzMkQ2cjArZFpmTnRLL3p6czcxRnQxWFBTYjlSbE9pOFFkL1JhWmZmWWZGMnVVdXVZWjN6VXZFK3pUTm9DTWowMlMvSHNyazU3eUFOb0JQeTVuYVdLQVlkQVJOMVcvY2ZjRTVEL2Z6NEpwTnNoS2RFWitkQnVhM3VMSWRvYzBYVm5ZQlEwSkZuM1pKM0taMDk1dThCTHZxd2VJcjRpSGk5b204bkVieVpUSjN6TU5pVjhXME5nN0VaWGRFYU16Wnozd05vS2pLNW9iTUZKbU5iK1ArQVNwNWMwcDAzTUZJVVdrL2ZvajYyMTFYRzRJUUdRTVRIeFZHbmcyNGU5ZldWY2o4UEVCdHBsRkJpb2FPVThmajloa25NRmE0ck55K2h5aGQxMmNaelNGQmtrRUI3b3RJNll1ZzIwbDYxVjNTWUNQbjFNMVkwbmV1eG00NGtpdmlmd29uRDEzY05ydFBnZENicmpxdDRPY1ZiNk1FdGZ2WXp6bnE2enh5cEhVS2oxbmVjZ0NleEtrSC9iMGRRQkdkWkpZZTE0VEkrWGVEQjNEODRYUjg0U0xWVEVkQUFPeUVqbHg0SURjYTNzYzl6RnNuK1RKY00zZFNIQ1ZnYTB6OHVTUUc3c1NJUi96Q2ZISFRta0NjQzVDanpld1lmZ0Y0VWtHdkEzYmVISWpmQTZ3aGg4VVIxdUJyMjBRTEkxZ0tVelgrMXJ0dTNNK2w3QW81MXJ4cjJYNFJDYm8xYVJrYlh4cTZSd3R4M2ZoQzFaanJic050MDZtclRaSmgwdXh4K0VoSDhGSUlJQ2I4ZTZHTWs0SllveE94a0hNSFViNHJScmFjdkdyQmg2UFdqRGduMFRERWo4aFlZWDZiTUpXck1ZQzNMMThHSnBESWNCWWJkL002RE9mSS9iUVZwT1lnTlFTSFlWN3dlWjMyMWRkYStUUm5la0twd2pPL2QxT0VZa3ZvNERkaGorR2NFMG5ydXl1R2MyRm9EU3NyRTc5WnFsV09XY3d2RHVuT1k0TXl1emcvR0Jhd3JpNDl6bU00aGtsRi9obm9iVW1JVXNId1BnekN6VFNoaUNCZEcvMEVoUUhOVFZ1VFpDbkxhUFZldjZ1WFE3WnY2TWVWKzJ6ZklTb2hkcllWdDNJSUtsYXJCS1FPakY3amRzZS9KSkgva3g5K25qY2R6Y3RvS0YxVGVTYndHVWxzaUFGQXI4bUNPYnBvWTd0QWNvRUM2UDRuQTZodVVNcDFSU1pBdTEvWlZNdkdjeTdlbnJkOWFWT2VubCtRL1FRaDd0cEhzNjNoWTVZZGZzM09lL1piTWlVbVNnV0M0RC9NdlJtamlIWDZEMzM0a3I2VkpNWHJaU0xGZ0sxaXNpczdrRGo0MDdPa3doT0JpdVFIdkN5ZU01b1VMc2FuSGFZZ3VkRnZCdDNRSjdLa1Z2VHRpUytGbDJzNjVkbTAwMXdSalA1SG1kdk11bDNwTWJnMEE1M1c3QU9EcUlZOW9MRWd6V0xIdmNzaks2TXpBQThibzhyV0dpWHNWaFBna0VibDB3R0lHZmV1MzlBK3RINTIxaURyNXA4Mk1wZ2hFYnBPMVNiYmFQYWdJdVBwSG5OS1hjblAvK0F2ZFpVWk9RMlE1OUZIYWgzRXUzN2J5UVZMY1EwSzRKR054Zlk2c1F5UGM0eFg4YlhTVTdOZ0I1QjhkUTJCekNsMTlYM2N3b1B0RUNCMTgrUVUyM1NaYjNRbDh3K3NXdUoyOW5IYXdUbUNzK29Ua1kzOTZaYW4rZWtSaGRxMTM5YXhneWZTM3lQMlZNZDdvdjBWWmwyNTI2WmdzTkVxOFl2NmZkYVRrM3h2T0Z3cS9CSHFZRTdGL1JtaFNuTzk5R2ZmY0puMXhvOXdlTitEeXlCV3pzM010enBzaVhubWlScVowazJSZHl0TjYvSklOdDRQbm45S3JySCtPclRLRENHVE5jWjdHNURpYzAvR1h6dE9jMUZDdjErTTYySmdaUHdRWjhUdFJ4SWpRT01iV3JCQXM2WU1QZlYvSzBZUTdTWjlRMXN6MFE0clUxM3BiT0lrL3dYU0VRSzJwckV0dUt5bXBFMGF6TG1jZW1pbTZNcUhQUVVTeFc4OFhyWWF1MU5kR091NTR6TW9CMnM4QXNWckhiR0d4Zy8vaEk0d00yWC96RWJnV0tkdWJ6V25JTC93dzRyWExHTDcvQXNBYVlGWnBobzhhdE1OWURaWEcyUmxFUVBsQkx1eHkxWlc4eVpIcGJYVnhRL1NCY3lwYS9zLytzaWkwc0UrVnpxSW5pc2s5U3pXQnhjMmc0T2o0MzBLOHR5K250R0p5Vzd6N091TFR6RmxLQ0pQZGpkckdZOGowRUZrcDRXOGdXN1MwdmRqVmE3dmFPSzVac2w1L2xsdVpiTFZwSHNPcHZzdUZ0ZEdIZ1l2Q2RHdmNablpkVG5JeVE2M0k5VHdKTllBaW4vWk82T3hsZDBVTlVNUjBhNHVrVlJ0cUdFd2FocW9nYnpnUUQ1S0R3NFd3eDRKS2pWRHdtNURLMC8xaXRDVE0xaHVmOFY0d0dyQVRxWUQ3RTZnTisycWtnSG42dzltNU5QMkRHSG5WUEl6akxPVjlHY3dWYXhjNHNYdWpNVml5Q1lYU1dsMS9PbTYxT2x3em1NVDNJWTJKdGJxNE1qaXBZYVJzN1c3eVNKY3dXZTNnU1Q3ZGR4cTZaendKQjU3ODcyRGVsejJLVTdxQm9XNVI5d0FZUThaQUpqYnJ6dkw3TDdwN0hNajlyL2UxWXpjNXRCa0x3QWpkd3hHNWU0S1RkY2ZmbkRCUjcyN05zMStra2dLbGxGdFNvSDVMb2RIZVlQVTQwT2VyNlhvN2Q0b0dxSTVRTTZ6bFZ4bFpPQUZXUWhqOXZxZzZqQXNLTUFaNUJDSzhjcTFXang4clpMZkl0cC9LaUFPT01kRHphbmZwNjBqVGdtQXFRb3pqVXlxYkZLRGNvNDRUanI3Z2ROWlJBanNhaDhDR2FOUnYzN1BXMzB2YWNLdUFFeVJLNVBlOGVIZ3ZQRFhPLzRiUjRubmtXRjBpTWErTmJ5NEIwejEydHJObTJuenNrSlpqK0IzSTV1OTZoUDlpTWRpWXVBOEdyVTBPQUFUcnFXZkJyNGNuRytmYzZSWCthZkZibHpBRndoRGw2NVVTbzhmb3N6YWxjMWVuSGo1MmNFL3ZuUnZDQ2tKclBTYUxkQ2IyMncvTUd3ZWdoN0JkVy9zeUZGWXFaSld2bDFydzZ0TjdERVNBYXFLYjlwSStUdHVPNFRrbGpQaU50ZVhVSEVSUzdrczRHOE1yOXpJWFVUTzlUeStHRXQySzMrUEs0QllCSWV2RnYwSVBMZXBkNTZ0aXNwa0FGc3hsMkczaVQ0Y1YweXAxQnlLYzFyaGViR0I5cjJFRytpQVl3cnQ1bmNQM0ZhdGc2Y3NUWmVxMGowRmJNbWlkcXYvVEpnNWYvalowK0VZcGRCeWJDM3B1LzZjQUZOTWhPcm5Bb085OFk5VUZwNTYrdCsrM2hzeDM4M3k1NTNNVy8vQlQ3ZnYxVHFKNzNEaFdjOFp0ZllyRnIvL2RMNXA5WC90dlA4UFFPeDU3ck9tMlQrMGFkc1J0U2F0REZ1ajFtQVNjZDIrbnpYOHRKMXJGZ1h1LzhwalBPNEhaR25iT2oyamh2ZVAxelhYN3ZLRVA5UGUvLzdQbXVmMzNBZnp4ZkJBeTFWUnltKzhBVCsydGFianZJeW1yaFExeXpoV1QzaEhnSGUrOHZKL2FsOTArYjE5RVdER2hvV0gva2UrVXpnandBZG9LUkduYjlISWp6ckMrZlNqcUxhQ05ROUprWFpxWkZCL3N1bzlWbk12ajQ0RWV4dnRub2ZMVWtzWjBPaWdlTnhGbkRSRHkyQjM2NmZLTDZGdU4vT01oelJvVXoxVnlhTk5nN1FPL2VUcDVqOWUxWHJMYWlud3BwaUVVRG5qOE5XanIwZmMxNENjdjNYYXZWWDV2MDkxdElDYTd6VURJd2R3dE9RQWdUa1FkL1lXcURYWnZZazljUkJtVTdSL2dJNmMwYW1XdDVERXp2NFRTendDcWlzdFliQnROL05vRU5jVVhWdndXbnJHRWZ2MzQ3Rk5RUmNKNDA4YTV3ZFk4Nit1eGY4QVhPbUZ2TFZuZncrSjN0Nno2T3ZITTJjWFYySlpZRVlMdWFDbmVPSDlpbkZpVmZscVBhVEh4T2ZMTjFJTmpDYndJRVBiZjBmdng2NStCMm1Dc3Nrb1hSeGVwUTQrMUd3OUtSSy92N3Y5dWhJeWZieXM5WkJXamZvcU1ackMyd1dUMmZVeWFIMVhWTy8vOHphdVdjSlpaeHBlMHQ4YklZeGtrNTNRbTVOaVRvelY0ak03Z0E4ZTlYODYveW9RQXFNcStEZXdMMEpQc0V1QU5jK25Hdzk4VUtlSmx0N1FFM1A0T3hzemQrazRlc3hONGhtQ0YzWXpyZG9zajhjWnZ4V0Z6dVhJYmp4NUQwcXp2R2N6OG5pS0h2clRibVpMUGliTXdaTW1xelRnZGFvblFCUnVubzNmNDZYZEp1bW5EbkNjVnRUcXQrelZESkhlTWFoanlCZGZhbU9FalFHQzhLZ1ZtKzI3YmNhbHFDT1U1ZUVEZmE4UlBHd2hjbytLcjF6SWFZUXFUbUNJTzJ4dU5KS2ZJS201UXhJdTFkSHRqbHFWRkcwSXkvQS9LY014VkNkZ3lFc1JHV1lZMWlBeXRLNDhRQTU0MmJDN1lMWU50SjZJbVl6ZFBXS2ppbUMxMGRpcmVzSzNEZTNrbkl3V25abU5kWXphdEJ4c0ZCR0IxOVpRZTNqWHpPRnNXRmhYUGdtQUhXUnpEa2xPcHEvNDVUQlY3SVNnY2U0emxYT3hyeVovU3VwMnZBZHhPQUVONElidUZDL09jY0RRZGNQTDJtYXVOcEhwWlFZUVhxUG5YK3NOZ3o2V2U5RGpUQnZMNE9FSmxRL1dXQjk3WkhQRG51MVFtbUE5S1A2UUFDZHRZRGFjSnByUWVwZ0VKZzlBS0lKVHNYWk04SE43bGdKVTllNkRZNHk1WStiTFRIVURSUFd6S0dISGpHeDNKcFFmWjJ3QmlrSmp0RWJuM096YmJIN0E3YjRKUFJGZFRXN3JsbHpacUp3NUZzdER2Yjk4RFpQQk93NVdqeTM5TlYyRFU3M0xlbnhsaHc0aUdzT3puekZ2QXlFQjNuek5nRGMzdWNYQy8vTWd2YndxWXkvdlRUcnIrWnM1ei8vcTEvL2M0Wm1tbmEwSUhZdytGNFM5U1F6bmxzRmpKVnFEa2d5NTQ5SjM0ajEvRWMxVk50UVJ1bnJnWWhUc254MEpiY0lBamIzckxWRnA3ZjhlekRhY1QxZ2owRDhuSjBJTVlwYmJKTDVUMFppUGtqZHVDay8rN3JHM1FLQ2FzOU5vY3BzSm81UUo2cWMyWmFzTUU2ejNONDBXdElOV0c3bmo0ZDYzcG1UTnMwZFFwSW14WC9BRzhlK1lrWEZzeXc4VFkxZmxzTjlqOThwbUtmZkJ3RG1yV09xMHExU3E4ZkVKZWVGeEtBWlE2dmhZeWZCOXZCQVpiNzFvS1ZBbDh6Y090SlRYWjVQRTRaeG9SWDZ5S0EwbTFEMFcweWQ2YlNpU0xYWDJUWXMyNE1Vbmk0bm1NaDQ1bFlncE4wcnZDSnUrVndyWVY3bVZib085b1I4Wml2NFlQcXFCY3dOOXQ0bmovLzZhLy9EUWEzbWVzYzkyVW02TWhMdkk2NEhHRmgxZjRwU1BIZnZpNTkzYnFxZkJEL2EwR0RWWXRXbXNBRWVyeUszU2dBOHdxNzNzWEkyRnFlQndCeUhBNy9kQ1l6Yk0wNWRuWWt4TnFDbmlPWStSZWRQNUtoQ0lXNE5kcnNXTElZZjhrMWszTmoyVi9EaWNNbXZBL1cwSTJLbkttcndWcm40ckZjRmxJNEllV2sxYS8vTnEvdW1YYjJZZXU0VVljemtBb0c0bFFVeVBQMEVLVUJXaFNNNDhQeUpmQytuVXhnQmJmUlFLZWdyZW44UzZPWmc4MTNxTGVWTHZzOWM2c3QwOUphYUUvRG05RjlRd1lYTUtNRFRDUVFjTEp1SUhLaGhQbXVUbFYvbkNOdUIySDluTC9FejBoTDBqbkF6a0hvQS81OWc0YmdJbXdoTzNYbkF1cG81bjAvUjE2Qk5ad1VOazBHZFNuZTY3d0xSSkExM0FacnNFaUdyejNpWUlBc2M0Y2M4M09tTC9zOVNtRzNwbWN1bkJwbTJMVklCYXZscVppSVBJNlNIZkhjU0tnK1RzeW1yVkdIdVlqbndvQUJjWXpkTE5TZ1RVdzhyZy9vK1M0TDhaN0h0dW5pM054c08rM25vQmdiN3l3WmJuZkJUQmVqcC9CK1RLYW5BVlRyaExOMUUvR2MzZ09ndkhmRmNIOUdIRUJpV0ZXTFdJWUQ0N2RETUxuMTY3bE5zRTdlQkYyenZCK0hldGNLQm5HMGVQODh4STduTkdjVG4yZFlaL2ZueUN1UHdvSFMvczdJYXJnb3crWGhISnlFcTdILyszTU10dWV3Tm1lMDRDN1JZS1JvZlJVYndTV2RVK1FZekhKeUxhOWh5QXpCQmUxNEVrT3VsM1BIVzdXWHdubHRyTzhIdGthZW5Za2xsUHR6R2lPZ0VRN3gwN3hQTE8zUWhuZWR6amxZNTBUN2I0UG1PeDZsZ2YvOWIzN1VvSFk5OFlUcUpKWGlhV2ZCVG5kVzFNQzRVKzZzbkpibWU5QWRndjc4QU5XTnRKbmdHOGxNQ1Z6ZG13SHRIQUV6emxHUnE2RFlvREduRERmNzB4TXdxWUtRbkRYN0hDTHR5Tks3ZmRYVE96MDU5Y3gzUWZycmNEeURkckxBTElEN0RsRDVLcnVteEp5SWlaVEhzMTg4WlEvazdhRzR3K0grd1NGTDhUN0JscG9kdmdlS1Y1NVBkdkJyVHFxelcweG80UFM2NGNSRkQwZXRRS0s2UENQUzhTeGRzdXlyOGs5QWhWVS96MzBhQVR5ZjA3cDRiRW52N1RxSkY5Q2xnMmFWaWVpaDVaQzlSK292QjdEQkFvZFE3SEFvL1ZRYTIwSmwxUThtMEhHSlNOMWJBS05ybnpNbm9HQkIvWnVPL0JvdmJCc0RhazJkWjUzWWxvdmlQQUdpMVAzQmRlYlZvak9ldzRiSmE1ZnAvanJLNDBRS1hNenpMRDNkRWdrSjJ1M2FUL1l6ZHJQbFlHZ3dGSi9KZjUxM1dyK1QrMitYZFlIM09kckhCSzVSVE11MXFvbmlZRHRMWVYyQU5wRElJMkovQkF4a3pGWWJjd2RsMmlDWUVjaFRzVzg5OGZBb3dIbEtabDZuSGpoUUUyVnppcDU5eVJDZGZXdXR2MmpGN2o2Tm5OT0JkWkN2am9Yc3Y0a2h5OUVQNlYrVndvZy9NQmJ6MjZvSG1vSmFXY0VEblcxNWxYMFg1eng3Q29NVGIwNngyWXV1QnlVVk0ydzB4Vk51WXJBRnJWcnA0Nmt0a0FmckdmLzJpa2VIamdaZDl6bENwdFdENklzVEtvS1ppdnZieFRrWWNYaGdBWVRVSHV2WDhkZTVlQTRaaHRVVSt0eFdpR0RCMzh1V0JDZHcyV3Q3NnYvekwwYkM0dFpRZjJYcDM1LzN6dmlQK0Rwa09HSWJZcm5sWmYxMEhxL0xnMlhRVkNmUVRINFl4RnFzVDQyL25oWWMxZnJmWGZya3JZS0QwNjhsK0xadEFSaU1PRnJkaGptWXg0OTUyTkE1NlE2L0ZmUlg1b3V0ekVQekRWeENBWVB0T2liQUwzMkNnU2VEalk2YkR4NFBnR0xDY3M3WndJN0FmRHpwR0xWNTAxaDJ1S2Zid2ZidjhhM2dXNmhXSEZjOTdXYW1kT1h5UlZ4Y3pTM29mN2NWRWNPaHdDYTFDNDdLazVBOVptTWJnQnFlVlhzTHVreXdPSElYTENuN2k2YmNQcWN0R3RNc1FVcDBUaWxxSjZkNW8zMm1JeDhuVjVhRDVoSCthSU56bVBQNnBTb0Zhc0gwdE5PZjAyRDlscU4zbmRFYjR6clRtYzJzdFRPWXpVRGY0NG1vemg3cEp5M3pvbXZqTnQxanFXSnhpcU9sTS95WTgxTXFLL1VBcFIybVdXK1B1d1JIRkR0Y0FCa3RnZmRlNXlLM1AvTnFlVWlZOE1uUXpOU2RDMlNlK0g0d0FMdWVTUEdNdThia01iN1pEQmVPdW5xZUZNelFNdDE0Q21HK0N3ZFdIK2NDdm1VMXNBOTQybjViejM1MXZNQTZZMXc4MGV4eExrLytkVk04Zjg3VndzQnRUNjRCZEYxV1ROdVE3L0dBckxPVC9mYzVIT1o4dEI2M1BKb25vSndJVHNDN3I0b3JpNTU2K3AxUnF4N01tT0Q5VnJGQVFKMFhqYmV5aUwvOFRTMDkvL3VGQk1mbWFRcE9kVFFFWnFPRFNmdVRFVHhEVUM5TWpHYlplUWZJeUcwRm5RT21ISGEwVHpxdDVOODVQdFpkRmFlczIwSDRuL3AvNlVLZG8vQ2R2UDNmSzgzZlp2QVdSSExhQlQzbDdVMzR4Vm9kVEZBODN2SnpPUG43NGcrM1ovbndvOXBLZUloZDNrNlVDdzU5eTBpUTI0MzhWS01yMDJOVnNIOG5UdlNlMDdXaENqMVlEY29ucm5ocVRaRGtVM25Ublo1NHN5TG93THpQSVFPajJXNkpFRThuS05wOGIzR3lJYmJ5T0RrWmhnRG9TSmNOTHRhUFdUbTJodlBoa3Nma2dhRWZoOE1ISjVhL25ncjYyZ3pkbk8ycEwzTDZxUldZbnJXQnZFSFgzOWZqdzhUeGovTjgrUm1uTytDSWRhWlc3Szdvc005dS9RNE8rd1oyTzNyOE9jVnllQUIyYURwTTREb2hGQUM1K0dVNjJnRmc1YkFnZzlQUlU4S0R4eEU1L016RFQ2eXRoT3g3OHQzeWFEbEloQUtTOFAwLzBvS2NOMU5pZ0daRDEyRTZyY2FKMnErTkRpbjg4dEgyYmlmVThQV2NLU3V0Y2VYSlF1ZFE3c3RjZFF3WjFtK2Vkeml1WXQzQ1FqdlJEZXViSzVJeHp4T1R3MzJXT1RBbG94OGswZXVJS0RPbzFyTVNrV1hkVElGSTJLbFJESm4rQ2l3MVRNNmUzdEZEZkszeDdSYUVidU1MMkdIa2RUdjBzVG5aNjg5azA3blBJWE1lMHBERmFHeHJHeWZWaEtrZjI5bG1FbWpQUzB5bWY4emovODQ3QXVyOVpySzhDMU9CZVMyZStQeHJnYlFtcEo0aG5rWEc2UUdOMVZuaUZpWmg0cTFtZm14MXhLZmJqSFE2V0tabnZ6emJ3Vk80alRlZWZCMnYzZTl3c3VhT25yUm96QlNWdzV6NVRBN0FodnIxZzlidkR5WER0WG0yV0phWXB0a1NBb3ptT3RIZkU2bE40UUdsenBGR05wUUE4eXdMSFI2MTNoMmkzSjVxczRIOVdNNnJsV0E4NXQzUnl4aDJRR01NbmoybUR4M1FVQjJjV3l5ZWx1WnRMSGd6Y2VFdU81RFdKQ09zdGwxbndpdzIyL08veStlNWd2YU5USmRsdEdNNWtjUG45STA2Q09KMkJvT0RZaFROWkZ2ck9Rc2xMWTl5YWlmNXgyNGFYYkh4cVduZVR2ck9aSnd6UnRYWTdXbkFWa3hnRXVIMS90amRqVkxqQTZ0REZKTUJicTkvaDJNaERwSFNYRUhlbHRuOW1NNVJXeDdBeEw3Wkc4dTcycmlocXpZY3ViSDJsOVVlcnpuemN6UzlER2VuTTdhcFdmTndDbGRXNXpYZjkzUjhZNUZ3bWRuR0c2T0FudnNUejdIZkYrVE5nalZMUzVyOEl1TzU3enc4ZENKajZSWmJZQ1ZGRWgwNitRMDNqWDNUSVhnditaQmRwOWF3dng3ZWlnMndFTWFLSnJ3NlQyWDBkRnAzK21YcllUOHVDTUhDdVpmbG9SM1l4OUlOWlQzdWdNblR5MDFZWjk3OTRNbnU1WkVZQ0lCelJvU2tGbStKb0xmRjNHZG0xaGxvN1JDd3VzOEIzMWE3bFBaZEFTL1o3TTBLVHR3ZDl6bnNPVm5UdER6QlFqVjl6Q3ViRW5TNFBQYWViMmVId2xiNzE3T25GZmUrTDl1akhUK0YzbVZQMytyT0J2RGNQL3RYd25NT1ZQTFFHQTl4cWliZzJGL0padmZJZWcrdHdhenBmNjV6TENySTVmci9BcFlUcUE4YUplcllBQUFCZzJsRFExQkpRME1nY0hKdlptbHNaUUFBZUp4OWtUMUl3MEFjeFY5VHBhSVZCVHVJT0dTb1RoWkVSUnkxQ2tXb0VHcUZWaDFNTHYyQ0pnMUppb3VqNEZwdzhHT3g2dURpckt1RHF5QUlmb0E0T1RvcHVraUovMHNLTFdJOE9PN0h1M3VQdTNlQVVDOHp6ZW9ZQnpUZE5sT0p1SmpKcm9xaFY0UWdvQjg5Q01qTU11WWtLUW5mOFhXUEFGL3ZZanpMLzl5Zm8xZk5XUXdJaU1TenpEQnQ0ZzNpNlUzYjRMeFBIR0ZGV1NVK0p4NHo2WUxFajF4WFBIN2pYSEJaNEprUk01MmFKNDRRaTRVMlZ0cVlGVTJOZUlvNHFtbzY1UXNaajFYT1c1eTFjcFUxNzhsZkdNN3BLOHRjcHptTUJCYXhCQWtpRkZSUlFoazJZclRxcEZoSTBYN2N4ei9rK2lWeUtlUXFnWkZqQVJWb2tGMC8rQi84N3RiS1QwNTRTZUU0MFBuaU9COGpRR2dYYU5RYzUvdlljUm9uUVBBWnVOSmIva29kbVBra3ZkYlNva2RBM3pad2NkM1NsRDNnY2djWWZESmtVM2FsSUUwaG53ZmV6K2lic3NEQUxkQzk1dlhXM01mcEE1Q21ycEkzd01FaE1GcWc3SFdmZDNlMTkvYnZtV1ovUDhhN2NtTHcwWHh2QUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUFCM1JKVFVVSDVBY0NFQ1FTUjEvVU1RQUFJQUJKUkVGVWVOcnNYV2Q0RkZYYnZzL00xblRTRXdKSnFFS29TcStDU0ZFc0tLSitvb0NnaUlyU3V3Z3Z2U2dkUVNrV1JIMUZSSW9GQy9LQ2dDQ0NRaUMwa0pDMnU4bHV5dmFkY3I0Zk96TnNHb1lTaXV4elhYTnRzanU3TTNQbW5IdWVlaitFVW9xN1ZmNzg4MCtNR0RFQ2YvLzlOOExEdzlHelowL0V4c2JpcTYrK3d0bXpad0VBR3pkdXhPelpzNUdibTR0SEgzMFVMTXNpSkNRRWE5YXNBUURzM2JzWEkwZU94T25UcDVHWW1JaEdqUnJodDk5K3c5aXhZMkd6MmJCNTgyWVVGaGJpMFVjZmhkdnRoc1Bod05HalIyRXltUUFBb2FHaFNFNU9oaWlLNEhrZWdpQW9yNElnUUJSRjM3K0pLSXJ3M1NpbDhpdWhsRUxlQUpDeXJ3QkFLU1hTNVN1dlpkNGo1ODZkaTRtSWlJalRhclV4TE12R01Bd1R4VEJNQkNFa0hFQU5BQ0dFa0JBQWdRQUNBT2dCYUtTTkJjQkl2eWNDRUFCNHBNMEp3QUhBVGlrdEFWQkNLUzJpbEZvb3BXWkJFQW80ampPNlhDNVRYbDVlWHZQbXpVM1M3MUNmcmR6L2hKQ3luOG52QVFBbGhKUjc5ZGtvd3pBZ2hJQmhtTEliWlZrV0xNdUNZUmpJZjZ0VUt1VlYzdFJxTmRScU5UUWFEVFFhRGJSYUxiUmFMZlI2UGZSNlBRSURBeEVVRklUZzRHQ0VoWVdoUm8wYWlJeU1SSFIwTk9MajQzSDQ4R0hVclg4UC9ISmpoTnpOd0hZOTR2RjRrSnViQzRQQmdJS0NBbGdzRmhRVkZhR2twQVEybXcxMnV4ME9od011bHdzdWx3dHV0eHNlandjZWp3Y2N4NEhqT1BBOFgycVRBY3gzRTBXUnlBQlhCc3hLQVpuOGZ4a0FLd1ZZdnY5djI3YXRnVjZ2cjhleWJGMkdZZW9BU0NLRUpBSklCS0M3VFliWkJlQVNwVFNUVXBvaGl1SkZqdVBTclZicmhRRURCcHlYd2MwSDJDb0R2SElBU0FpaDBuaFJFSEo1WUFncEJYeStJT2NMZW1YQnpoZjBmTUZPcDlkRHA5VWlORFFVTVRFeENzQ0ZoSVFnTEN3TTRlSGhpSXlNUkVaR0J0cTI3d1MxV3UxZlhINWd1M1laT1hJa1ZxNWNlVnVkVTNSMHRGZk5xUURNWksxTUJqYjUzc21hbWk5NCtmNi9iLy9CNkpqWTJLWnF0Ym9wd3pBcGhKQVVBSTBBYU8vd1crZ0djRm9VeFZPQ0lKeHl1WnlwNlJmU1V4L3AyNmRBMGhSOVFVMHNBNENnbENyL1gwR2pvNFJod0JBR0RFUEFNREtZTVpSaDJBcEJqVld4VUtuVVVLdFVVS25WMEtqVkVoZ1NxRFVhMUVwSVFFQkFBQUlEQXhFY0hJeVFrQkRVcUZFRE9UazVhTnFzSlFSQlFFeE1qQitaL01CMjg4Um9OQ0kzTnhjbWt3a0ZCUVVvTEN4RWNYRXhyRllyYkRZYkhBNEhuRTZub3FXVjFkRCtRVXNqc3RsWkJ0QjhOYk5TMmxoWlVIdTQ3eVBzNG5lV3ROYnBkSzBZaHJtUEVISXZnQVozMlcwNko0cmluN2s1V2NjMEd2V2ZZOGVNK1hQdjNyMmlEOWlKbFFDZVpNWVNTZ2dvUUVCSVpTREhnR0Vac0F3RGhtRnBLWUJUc1ZDeGw3VTJsV3lpcXRVUVJSSEJ3VUdJaUlpQVhxOUhRRUNBWXA0YWpVYlViM0FQYWtnYVhHeE1MQ0tqb3Z5THpnOXMxU2ZGeGNYSXljbUJ3V0JBZm41K2hXYW4wK21FMCttRTIrMVd6RTZPNCtEeGVNRHpmQ2xROC9HakVWOC9XZ1dhR2FuQVg2Wm9abVBIam1VZmUrenhUdUdSVWUyRGdvSTdFRUxhQXdqeTN6SEFicmZCV2xLTVZ2ZmRhNk9VSHVKNS9wRFZhajM4NnF1dkh2cmlpeTk0UWtoWm9CTXJNbTNMYUhHMGxGK09VY0FOTE11QVliMGdwMkpac0w3Z0pnRWN3ekJnaUZjekwrdC9NNXZOcUZVN0NhR2hvVjRUTlNJQzBkSFJpSXVMUTNCd2lQK0crb0h0eGduSGNjakt5aXFscFJVVkZTbGFXbFg4YUdXMU5Gazc4dzBPeUpxWmJHYjZhR1MrdmpKQ0tXVXNGa3Zqb0tDZysxbVc3UUtRcmtlT0hBbU5UNmp0djFrVlNHN09KYlJwM2JyY2MrclE3NGYzUlVYSDdpOG95Ti9mdm0zck5BblVLdExxeEVwQTdySW14ekNVSVQ0YUhNdUNsYlc0Y3RxYkNxSWdJakl5UWdrdzZIUTY2SFE2RkJVVklTNnVKZ0tEQWhFY0hJTFEwRkJGZTR1SmlVVndVQkN5c3pKaHQ5c3F2ZDdBd0NBa0pkZEZTR2pvTFJ2emt1SmlaRnk4Y012UFUzVzNUWFpLS1F3R0Ewd21FM2hCZ00xcXJYQS9pOFVDazhsVVNqdXoyKzJLZHVZTFpQOEFZaFZHTldXSHYyVC9nUGo0eDhxQ21jUGg2S2JSYUhvd0ROTURRRlBmODNRNkhYNEVxMFNjamdySEp0VHRjdmJWYXJWOWE5Wk13S1hzdkpNOHovOWlzOWwrYlpyU2FEOGhFSHlCamxKYVRxT1QvSE1BSVpTSUlrUkN3SWdNQk1KUWhoSEFzZ3hoR0JZc3oxS2U1YUZTU1JvY3A0SWc4TERadE5Cb05JcDI3M0s1VUZKU0FxMU9ENmZMcS9rN0hONjVack5hVVZKU2dpSkxBUUlEQXhFV0ZuWkZMVFhqNGdVMGEzSHZMUnZ6aStubjRYRFkvMUdicnU3elZOMXRvSGJzMkRHQU1BZ01Da1pnWUJCaVlrdnY0M0E0a0pPVERiZUhCOGVMNEFRUmdrZ2hVaWl2RktUMFJsRm1vNkFVRUNtRktGSWlLcEZMNzFiV3hLU1VFaXFabWNRYnJtT2NUbWNmalViVGh4RFNCMEROYTczbUgzZi9nSTBiMXNOa01pSStQaDRmYi9vTTU4NmR4ZEFoZzVSOUprMlpob2NlZXZodXhiOG1LcFdxU1ZoWTJCdFpPWGs1Z2lEOFlMZmJmMHBwMU9BbnlWd1ZLZ1U1U2lrRm9kNEFLd1VoSWtTUlFCQjhBSTVsd2ZNc1dCVlBWYndLb2lqQTRYQ0E0emlvMVdyRlhXRzMyNkVwTGxhQVRuWnRPQngyMk93MkZKaU1DQTBOaGMxbVEyUmtKSFE2WGFXZ2NTdmxuMER0WnAzblhRVnNCb01CSUF5aVkrSXFObDF5YzVHWG13dFR2Z2xtc3hsRmhZV0tIODNoc01NcG01MXVOenh1Tnp5Y0I1eEgwdFo0SHg4YUwwQVFlTW5jRkNHS3NzbEpDYVVpS0FVQktMbHNjbnIvLysyM0E5MFRFMnMvR2g4ZjMvZDZ3TXozZWhiTW40dVpzK2FnZGVzMktDa3BBUURVcTFjZlAvNzhLd0RncGFHRHEyMjhONnhmaDhjZTc0ZUlpSWh5NTdWc3lUczRjZUp2YURRYTlIaXdGMGE4K2hwWWxnVUFaR2RuWThXeUpUaHg4Z1MwV2kxNjl1eUZsNGVQVUQ2dkRwR09XZlBFeVJNdmFyWGFGNmRNblpZemROakwzOW50OXUrYU5XbTBYd0k0b1l6WldsYUxrNElQSWtTUmdTZ1N5Z2dDQklZRkt6QkVZSG1Jb2tpZFRtYzVZSE00SEZDck5WNVhoalMvM0c0M25FNFhIQTRuQ2kwRkV0QTVZTGZiRVJFUmdjaklTTDlhN2djMndHVEtSMkJRY0xuM2JUWWJzck96dkRscCtmbXdGRnBRWENUNzBTNUhPOTB1Rjl3ZU56eHVqeGZVT0E0OHg0RlRBSTBITHdjRUZGQVRKVENURTJpOUlDYWJtYWRPbjIwU0VCallqMkdZeCsxMlcrUDgvSHpFeDhmZmtPczlrM1lha1pHUjZOaXhFd0FvQzRFUUFxMVdxL3hkWGZMaHh2WG8zS1ZMT1dDYjhmWTBOR25TRlArWlBSZkZSVVVZTS9wTjFFeW9pWDc5bm9Rb2lwZzBZUnk2ZFg4QXMrYk1nOGxveExpeG94QVZGWTMrVHcyb2x2T3M1SmcxbzZLaWgvVi9hc0N3ckJ6RDZjNGQyKzM0eit5NTM3NHc4UDlPQVJBazdVMGd4S3VZWDlia0tLV1VVRUlFU2lraG9paFNRa1FJQWtOWjF1dU9jTGxjVUtsVVZBNHFxZFZxdUZ3dXFOUjJ5YVhoOWRPNlBSN0pYSFdodUtoUTBlWmNMaGNjRGdjY0RnZWlvcUtnMSt1djZicS8ydklsM2x1OUVqLzlzaGNBOE1yTHcyQ3hXRXE1WXlaTm5vSWVEL1lFQUp3K2ZRcTdkdTVBOCtZdDhHRFBYdFcrWGhmTW40dHZkKzFVNXVqckk5OUUvNmNHSUQwOUhVdmVYWXlTNGlJRWg0Umk0cVRKcUZYTDYyYytlT0EzckZteit1NENObDdnRVJnWVZFWjd5RUZ1VGk2TVJpUE1abThLaDFkTHMxNzJwOG5SVG8va1UvUEkvalF2cUFrOEQ1NzNEUWdJdm1rYXBIUkFBTXhISDMraTY5eWw2MU1zeS9ZbmhQVHlkYXJhU29xdSt6cVBIeitHR2RPbktackE0NDk2emN4K1QvVEhvTUZEcXZRYmh3NGV3TW9WeTJFdzVDRXhNUWxqeG81SFNwTW15dWQ3ZjkyRERSdldJZDlrUWt4c0xJWVBINEYyN1RzQUFFYSsvaXF5TG1VQ0FFYS8rUVpVS2hZSkNiV3djdlVhaUtLSXJsMjc0ZUcrZmFIVmFoRWRFNE5XclZ2ajdKa3p5bUtxRVI2TzV3WU9oRWFqUVVLdFd1allxVFBTMGs1WDI3eW93akViRVVJYXhjYkdUcmlVbmJmYjZYUnNuekg5clIyZmZiYlpDWUNYTkRjWjdCU1FrMzF4aEZCUTZqVlRLYVhVN1hhRDUza2lCUlVvei9Od3U5MWdXUlY0TlErT3YreXo1YVJnbExXa1JBbE1lVHllVWdBWEdSbFpvZlltaWlJWWhpbjNOd0RrNWVYaDIxMDdTKzIvNXYxMXl0OXVsd3REQnIrQWpwMDZBd0JXcjFxSjlQUUxjTmp0cUZldi90WForazJhS0luc1Z6ckhzdjliekdhOHQrWURORTVKS2ZXZFdmOTVHNk5HalVIekZpMnhhK2NPTEYrMkZJc1d2d3VYeTRtRkMrWmg1ZXExWU80bVlQTU5GRGlkVHB3NWN3Wm56NTdGeFl2cHlNN09RbDVlSHZMelRRckFGUmNYd3lxWm9qYTdIUTY3QTA2SDB5ZFh6UTIzMjAzY2JnL3hCaEU4NEhtT1NEbHBSQlJGUmhSRmhsTEtVa3JaMU5Obm0yZGN5cDdkcmZzREoxUXExUWUrb09hclBWNnZ0R2pSRXR1Mjc4S2JvOGFnWnMwRWJOdStDOXUyNzZveXFGMDRmeDV2VFp1Q0VhKzlqbDNmN2NaVEE1N0dtTkZ2d0dRMEFnQXlNek13ZTlaTVRKdzRCVHUvL1FHUFBQSVlwazZkRElma3JGK3hjalcyYmQ4RkFGaXliRG0yYmQrRmxhdTlKV2dNdytDNWdjOGpMS3lHMTlsOE1SMEhmdnNOYmR1MlU3VEtGU3RYUTZmVEt4UDkrTEZqYU5hc2ViWE5pNnM1SmlHa1owQkE0TW9GaTk3Wlg3OUJneWxyMzEvWGpGS3FoVGZoV1FOQURWQVZwVlFsMzNkNUhraHpnbkFjUnp5U051Wnl1WWpMNVNJeVdEbWRUamdkVGpqc0R0anNkdGhzTmxpbHdKWE5aa054Y1RFS0N3dGhOcHRoTXBtUWw1ZUhyS3dzWExwMENXNjNXem5QSTBjT1krcmtpZUE0RGhhTEJTOE5IVkpLRzF1MGNENUd2dkZtcFdQeTNYZmZvbFBuTG9vMk9PeWxsN0g0blNXb1U3ZnVWWTl2U0VnSU5CcE5oWit0WC9jK05uKzZDUUJ3NHNUZmVQT04xOHM5Y01yNnlSOTk3SEUwYjlFU0FIRFBQWTFnbGdBekx5OFBZV0UxVUxObXpic3ZLdW8xU1kzSXpzcVduaUw1S0N5MDRNS0ZDOWo5dy9mbzF1MEJ1RnhPT0YydXk2YW5wS1ZsWm1ZZ3JFWU5FRUlnOER6aGVhK0c1dkc0SVFnQ1lWVXE4QnhIWkpITnpkNjkrL1JaKzhINlovZjliKzlUSDI3Y0FJN2pVTGRlUFV5YVBFVlpUTGVUN055NUhWM3Y3NmFZc0wzN1BJVHZ2dHVGM2J0L3dNRG5YMEJFUkNRMmJQd1l0V3A3MWY5SEhuME1TNWU4ZzZ5c1MyallzR3IxanFrblQyTDBxSkZ3dVZ5NHYxdDNkT2w2ZjRYN3JYbHZGZlFCQVhqbzRiNDM3ZnFyY2t4Q1NLMkk4SWhSUWNIQm96S3pjcmVXbEJSLzFUU2wwUzhBNGFYSXFpQnBiWUt2QmdlQThqeFBHWWFSOHhlcGxOZElHSVlCTDZnb0wvZ21jWHY5dDA2SG8xUStwS3pSZVJSejFXdW1Sa2xKdmExYXRjYXZlMzdCekJuVGtaT1RqU2VmZkFyaEVraHMvMlliNnRhdGgwYU5VeW8xemJkKzlTVVdMbjVYZWE4eVlMcGVlZmIvQm1MMHFEZGdOaGRnMy8vK2gxbHo1aXFmbVMxbVRKODJCV2FMR1czYXRNWG9NZU9nMVdyUnI5K1R5ajVmZlA0WmV2YnVEUUNJalkyRHhXSkdlbnI2M2FXeGlhS0k5UFFMT0hQbWpLU2xYVUplWGg1TUpoUE9wS1dCNTNsY3lycWtWQkxJZVdwT2h4Tk9seE9VVW5qY0h1Snh1MHRwYUZMYUJxR2l5QkJDR0VvcDArK0pKMVVYTGw0YVBHNzhoQis3ZEwxL3E5bHNmbXJGOG1WNGQra3lmUExwWjFDcjFOajYxVmUzYlpBbExxNjBuNjkyN1NRWURIa0FnS0NnSUJ3OStnZUd2endVenozN05BYS9NRkFaMzZwS1NwTW0yUDNUSG56eDVWYms1ZVZody9wMTVmYjUrS01QOGZ2dmh6QjM3bnlvVkRmbkdWelZZMUpLWVNtMElDZ3dDQXpEUEJFV1Z1UFRTOWw1VzlMT25uKzJlZk1XZWtxcERwZUpBWHcxT0laU3lnaUN3UEE4VDNpZUp4ekhFWjduNWNBQmNidmN4T1Z5ZVZNL0hFNGxWMUlPSHZBOHIxUXNoSWFHUXEvWHcyUXlJVGMzRjFsWldVaFB2d0JLS1lZUEg0RS9qLzRCclVhcmdMVFJhTUNPN2Q5ZzJMQ1hLcjIyMy9idlExSnlIY1RHeGwzWFdQYnUzUnY5Ky9kSGZIdzhPblRvZ1A3OSs2Tng0OGFsOWdrS0NzSXJyN3lLTC8vN0JicDE3MTdxd1RoKy9FUzg4KzVTYlByMGM1ak5abnk5ZFV1cDcyNzU4cjhvTUJmZ3FhZWVCZ0RvOVhwTW5qSU44K2ZOdm5zMHRxS2lJcHcvZng2c1NndFR2aEVXc3pjL3pXcjFtcHBaV1pjUUd4ZUgzTndjeE1URUtFOUNRMTRlT0k0RElRU1VVc0p4SGdBRUhNY1JRZUNCMGpXYVpQTm5Yd1F2V2poLzhKS2x5d2NSUXBvZVBIZ0E4K1l2QkJWRnZERnF0R0tDTmJ6bkh1VGw1ZDZXWXhVVEV3TkRYbDZwOTNKeXN0R3lwVGZ2YU4vLzl1TFRUWjlneWRMbFNLaFZDd0RRcFZQN2lyU2FjbURuZHJudzNYZmZvaytmaDZEVjZSQVhGNGNlUFI3RS92Mzd5azNhSDNmL2dHVXJWdDIwaE5Pck9lYVJJNGVoVWF2Um9HRkQzK3Z0R0JnWTJISDd6bTlmZHJ2ZG4zMzk5VmYvblRCdWJBa2hSSkI4Y2JJV3AvamlCRUdnbEZJcWlpSTRqb01naUpSbFJRaWlRQVJCb0lKS2dDQjRRYzgzSjlKdXQwT2owVUNuMHlubFdiTC83Znk1OHlqSUw4Q2FOYXN3OFBsQk9Ic21EUXZtejhXa3lWT3hjOGNPV0cxV3ZETDhKWUI0eVJ5R0RIb2VhOVorQUsyVVF2TEY1NS9oNVZkR1hQZDRmdi85OXdDQURoMDZJQ01qQTdtNTVlZjdoUXNYTUgvZUhQeG4xaHhzM0xBT3RST1Q4UEREZlNFSUFscTB2RmN4aFh2MjdJWER2Lyt1Zk8vWFBiL2d4eDkvd0x0TGxwZUtscmRyM3dIdDJuZTRPelMyN094c25EeDVFbGxaV2NqS3VvUzgzRHlZVEplREJVYURBWUlnSWlnd0NFV0ZoWW9mclNBL0g0SWdJQ1FrbEdpMU9rSXBoU0FJaEJkNElnZzhZU1FCd0R6NVpQL3dpNW5aWXp0MTduSW9KaloyY2RycFUwMnpzaTRCQUpLU2toRVZIWTNPbmJzb2kzdkhqbS9RbzhlRHR5NlFJcGs2QUVBbHlpUVpoQjd1K3dqMjd0MkR3NGQvQjgveitPV1huNUY2OGdSNjl2SzZCTTFtTXdnQkdKWkZjWEdSNGlPaFl1a3Fscmo0ZUJ3NmVCQWN4eUZmb21uU2FMWDQ1T09QOFBubm04RnhISXFLQ3JGdjMvL1FyRm16eTZid2p1M1k5dlZXTEYyK1VqR2ZxdDM4cnVJeDNXNDNmajkwRVBQbnpjSHdWMTVGWUdCZ1JZRGVSS2ZUelhuMjJlZStQMzhoWThUcTk5WkdTUnFjbGxLcW9aU3FmVFU0eVEvTGVNa1BlTUx4SFBFR0RkekU3WFlUbDhzTkg1OWNLZTNOYnJmREtpWHh5cjYzckt4TE9IVG9BT3JVcVl0dTNSL0F0T2t6b05Gb1liRllNSFRZUy9qOGl5M1krTkVuV0xOMkhUUWFEVForOUlrQ2FxZFBuWUxiNDZsV242YXZIUDNqQ0NaTm5vcjd1M1hIdTB0WDRGVHFTVkJLVVZ4Y2pCY0cvcCtTb25UOCtERWtKU2NyZjMvMDRVYk1YN0Nvd3ZFSC91WHBIcFJTbkQxN0ZwbVptUXJGRUt0U282UzRCRmFiRlE2N0hRNm5FOWs1MlFnSTBFdk9WNExpNG1JUWhzRGxjaE8xV2dVUDU0RW9DZ0JBZk9pQkdBRGtoeDkvQ2JsMEtYUFlnZjM3aGpFTVV4Y0FPbmJzaklNSER5SXdNQkNkTzNjdFp3N1BtVE1MRHp6UW8xSWZSM1ZMMlFUZEJmUG5Zc0g4dVhpd1p5KzhOWDBHNnRkdmdMZG56c0o3cTFmQ2tKZUgyb21KV0xqNFhjUkkyY3g5SG5vWUowK2V3TkFoTDRCbFZYanM4WDZvWDc4QkxJV1dVc2NaTTJZY0ZpOWE2SDBTMTY2TmRScytna2Fqd1lLRmk3Rnl4VEo4OGZsblVLdlY2SHAvTnd3YS9DSUFRQkFFTEZyb05RT2ZmYnAvYVROeDArYnJObzhxa3FvZWMrUnJyNElRSURFeENXUEhUVkI4a0ZlUXVscWRia2JmUng1OW9jZURQVC8rWnR2WG40MGJPN3BZMXQ0ay81dWl4WGxUUTRoSUtBWDFWcWhRUVJRaGlnTGhlUjRzeTFLNWNxVWlpaXY1WVdVdzVLRkdqWEEwYU5BUVo4K2VnY1Bod0ppeDQ2cVUydlA1WjUvaXFSdWNWblBnd0lGS1B4dnc5RFBLM3hFUkVSZy9ZUklBSUR3OEhDOE9HNGJYWHgwT1NvSGtPblhRN3dtdmIyMyt2RGx3dTkwWTVSTm9tUHJXMjJqUW9DRUtDeTE0ZWRqUWYyK3RxTlZxeGZuejUzSHAwbVUvMmw5Ly9RV0dWY0Z1czhIdWs1dVdsbmI2c3ZaQ0tkUnFOZEhwZExCYXJUTHZGcEdJSUFuRE1JUlN5aVFsSmJGNzl1NS9tV1habDMvNjZjZkcrLyszRnpQK014c0FrSjZlam5selp5TW9NQkNEWHh5SzVzMWJLT2UxYk9tNzREZ080OFpQckRnaWVTNE5YYnQycmZKMTd0MjcxMDlRV0lsVU5wYTNjTXhPcDU0NC90SHk1Y3MzZi9mZGR4NEo0QlFURmQ3YVZQbVZ5c1gyRE1OUVFSQVUvamVWU2tWWmxvVmFyWVpLcFZMSUxXWFROQ201anNUM0pwRlp4c1NnWnMwRUpDY25sVXQzdXRGeThMZi9WWG5mOWgyN1ZOdDUvQ3MxTnFQUmlBc1hMaUFyeTV2QzRVc0V5YkFxcnpQVzZZVEw3WUxkYmdmUDg0aU9pUUhQY1hDNlhNUmh0NE5oV1JCQ2lDQUljaTZhRXVVOGZlYjhNeThNL0w4UlJxT3hiWHg4UFBMSytBN3ExS2tEdTgyR2dvSjhORzE2MmNUYS9Pa21tTTFtekpnNTY0WmRxMTRmNEVld3F4eWJXemhtaldyVUNKKy9jK2ZPSjBwS1NqNE1Dd3ZiUVFqaGZBRk8wdUtJVjRzRHBWU2dvbFNySi9uaklJb2lVYWxVMUpjVlJ0YmFBSUtpb2lMd0hLOGsrN3JkYnJoZExyaGNUaVFsSmxVckhWSkFRR0NWeXFvQ0FnS3JkYUQvZGNDV2taR0I5UFIwWkdkbkswbUJjdEt0MVdvRnc3QktLb2ZINDRIRmJJRktwWUxiNVNZOHo0TktCZXJldEEyR2lDSlBCRUVnQUpnMmJkcDJmMmZKMGxjREF3UDdUcG95RlZNblQwU044SENvVkN3Q3lpeVdqcDA2bzZTNFNFazJOQm9OV1BQZUtpUWsxTUtRUWQ0b0lzT3cyUGpSSjlkMXZTekx3bTYzVmZ1VCtFNFR1ODFhYVFrV2M0dkd6RzZ6Z2xXcFFBaHBFeG9hMmtZUWhMNG1rK25EdUxpNEE0UVFqbExLRTBKa2dCTkJJSUpDaENncUJKbWk2TTBha2FtdFJGRlV6Rk1BME9uMHNKYVVlRk5DZURrbGhMdGN5ZUJ5dytseW9aWVU5TG5Sa2x5bjNqOFd3Z2NFQkNLNVRyMXFIZXQvalNsS0tjV1pNMmVRbnA2T25Kd2NHSTFHaFdaSXJ2Zk15Y2tCWVJndkswZXBzaWllZU5rNGVGLzZJRmxMWTA2a3BqVUlEZzUralJEeXlxMHlueW9IOGt5WUxSYkV4TWI3MGN4WGF6ZmtJakl5QW9tMXkxTTZaV1Jtd215KytXTm1OT1FpSWlJQ1NZbWx6NG5qdUhXcHFha2Z0MnpaOGdJQURnQXZSVklWSDV6TUgrZkxDZWREY0VuTG1xVXlKWkljTVpWVFE4TER3eEVWRllXNHVEalVybDI3V2t2cWJxWDhLelEydVlvZ0l5TkRBVFd6Mll6aTRtS2ZJbllIM0c0M1JFcDl5NklJei9QZ0JSNmlRaXRFQ1FVbG9KVDBmMm9BdTNEUk95TlpsbjBEUU1MTnVKYWc0T0NyMmo4eHNUYnk4MDB3R25JUkZCeHkxMnR1ZHBzVk5wc1ZBczlYQ0dvQWtKU1lDSlBwNW8yWmZFNmlJSlFETlFCUXE5WERXclJvMGNkdXQ2L3QzTG56eDhlT0hmUElBQWR2a01xM0FGL2hocE5Cam1FWUl2bmZxRXhSN3R0Y1JnWTRYOVpldWVkQ3c0WU5yN25XOUhhV08xNWpLeXdzeE5telo1VThHVjhPdGJKa2tJV0ZoZkJXQy9EZ0t0ZlNHQURrM0lXTW5ocU5aaFNBQjI3bW9uUzduV2pXdE9sVmE2c1hNekpoc1pnaDhDSmNycnVUbzAydkR3RERzb2lNaUVSaVlxMS8xRVl5TXk4aHY2QUFBaTlVMjVqcDlRRmdWYW9LTmJXS1JCVEZQU2FUYVYxY1hOdytRb2h2Z0lHWE5EZEJBalJSRGk2d0xFdDl3SXlxMWVwU0pKYStQUmJrQmpKeWQ2eWtwQ1EwYU5BQU5XclU4QVBiYldOdUdJMmwwamxrMnU2S0dHN2RiamZzZGp0Y0xoY1JLWVVnRVVFcVdocWxCS0RNa2FQSFlxT2lva2NSUWtiZjdPc3hHZk1RRnh1RHVMZzQrT1h1Rm8vSHMrcVhYMzdaMktkUEg0TVVZSkExT01FbmNpcURHNVcxTlZsVFU2dlZWRzRCV0JiY2ZFM1MrUGg0SkNZbW9rR0RCditxSmpKM3JDbWFsWldGYytmT0lUTXpVMG5uOEcydUl0TzYrRExkQ29KQVBCNnVJdllOQmdCejRlS2wvaXFWYWpTQSsyN210VGpzTnRpc0pRQ29IOVQ4QWdEUWFEU3Y5ZXJWcTRQWmJGNGJFUkh4SFNHRWxjQ044OGwvSTE0bFR4UjlHdjVRSDZwNVdsbXVXMlYxcDlVVlZQQURXeFhrd29VTE9ILyt2QUpxY2pwSDJlWXFaZWk3Q2NkeEFLaDgwK1V1VDh5MmJkdHFoWVNFak1tOGVQN1ZtMzB0d2NIQlVLbFVpSStQUTJ4c3JIOUYrK1d5T1VWSXkvRHc4RFVlaitlRDMzNzdiVU8zYnQyeUNTR01iSnBTU25sY1psNFd2VjRKNmhzcEpiNVIwN0xwSVRKOXZTKzF2Y2ZqUWQxcllQRHdBOXQxU2xwYW1wSjRLM2VOS2l6RmRPc29DMnJFcHhlQjRrdURWRG5nZHJ1ZlVLdlZZd0cwOGk4bHY5eU9vbGFyWCtyYXRldDkrZm41YTZLaW9uWkx2amRHQWpWWmU1TlRRY3BxYitYU1FzcFdMdmgyVHBNQjdwNTc3dXlrYjVLUmtYRkhuS2hjSGlVSENYejlhV1cxTko5T1VjUmJXT3p0RENXbmNGQkt5YzgvL3h5V21KZzRqbUdZQ2Y2bDQ1Yzd5UGUyYk92V3Jlc25UWnBVQ01EamsrQXJ5UDQzdVdwQlNnbng5YjFSM3dvRnVmVmZVRkJRT2IrYkhGUzRVOU5CVkltSmliZjlTWEljaDlUVVZNVjNWbEdIcUFxNlF2bDJVL2NGTmNadXQzZlJhclhqQ1NFOS9VdkZMM2VZdkRsKy9QaVVaNTU1Wm0xU1V0SVJBQ3dBT1hwS1VKckpGNklvZ2hBaWwyUVJtZit0cklibVcyVHZjRGhndFZwUlZGU0VsSlFVcU5WcXZ5bDZvOFhsY2lFMU5WVXBrWktyQ1h4YjRpazlDU1RDUFZsVGswMVBDZGdZU2luajhYaUdzeXc3RVlBL285VXZkNlF3RE5Nak1UR3hjVWxKeWNxUWtKQXZBRENTZVNvbmxaY0tMTWdXRC9VS2thc1hmUHJZNGtyRjlTa3BLWlYyeGJwdFRkSGJPZDNEYnJlWEFyV3kxUVJsR3hiTC9qVEovSlRyUEJsUkZFbHVibTU4ZEhUMEJFTElxLzZsNFpmYjFkMWlNQmhnTkpvZ0NBSnNOdXMvZm9mbitYVkhqaHhaTjNueTVGeEpjNU1yRjVUaWVwKzhOMGlwSVhJU3I1THpKbmVtTDF1bEVCMGRqWm8xYXlJNU9mbTJBTGZnNEJDd0xJUG82T2dyWmhEY3RocWIxV3F0Rk5Sa2hsdTU5Nkp2a0VBR05aL0lKMk8zMnp0cnRkcUpoSkFIL2N2SEw3Y3JxQjA3ZGd3VVJLbUdxR0pXMmJENkRSdlg2ZHJ0Z2ZjNnRHdnpCd0FHM3NpcFRJRHFwVVh5L2tPbHZyZGVqWTFTTDBPUzFBZFgzdVFldW9KSXdRc1VIQy9DN1JHUW1KeUFvS0JiWDlsaXQ5dVFtMmRBYmw0ZTdydjMzanNIMklxTGl4VlFrNHZaeldaemhacGFKWkZQeFovbWRyc0hxbFNxeVFEcStaZVBYMjVYTVJnTW9DRFhWTC9LTUV6M1dyVnFKNTVNVFZ2UkpPV2VIYUNVb1lCdjN3MUJvZ3NSdmJFQUNza0NCYnpyaENvbXFSeFJsY3hVVWFRUXFSUk5wU0lhTm1pSTRKQ1FXenBXZ1lGQkNBd01nc21ZQjRQQlVHR2ExRzNGb1B2RER6K2dmZnYyaUltSlFkZXVYVEZod2dUczJiTkhZZWlvS0FMcVZ2b1BlSDFxMHNhSW9xaWFQMy8rbFBUMDlMWGZmLy85YlFOcVBNOWoxS2hSaUk2T1JtaG9LSVlQSDY1MGQvTEwzU3NtVXo2Q2dxOExNT3FHaG9VdFBuZis0dkNHOXpRS0FLQ1R1bWZKUFJkWVNzRlNLbmZMRWdqUGMvQnduSmVwMStXV2VpeDR1Mk5aclZZVUZ4WEJZakhEWkRRaEp5Y0hHUmN2SXUxTUdrcUtpMitMTVFzTUNvWlI2cHhXVnRnWk0yYmNGaWU1ZCs5ZTlPelpFeWtwS1hqZ2dRZVFsSlNFb3FJaUhENThXSTdzS0lCVzF2eVV0VFF2dGJMQXBLU2sxUHI4ODgvbmR1M2FkY3lBQVFPWWtKQVFkT25TNWJhNHpva1RKMkxidG0zNDlOTlA4ZXl6ejJMcDBxVTRkZW9VSG52c01mL3F2b3NsTnpjWE5jSWpydnA3cDArbFl0NVU3TWVIQUFBZ0FFbEVRVlNjMmVqVnV3OEFNQ3ExdXVPei8vZGNTS3ZXYlM1OHZmVXJCK0JWM1NvemZ5bEFjTG1SdDJTTzBzdWJwS2tWRk9UajBNR0RLQ3dzUkVSRUJJS0NncUhUNmZEMTExOWgvdHpaMkxadEt3b3RoV2dwbVliNStmbDRhOW9VYk42OENULy85Qk9hTkcySzBOQXdBTUJmZngzSHRDbVRzSFhyRmh3LzlpZGF0Mmw3VFYyd05Cb05yTlppeEZmZ2E3dHRUTkcxYTllaWFkT21lT2FaWjVDVmxRVkNDRnEyYkltQ2dnS2NPWE1HS1NrcGxTWGVsZ29TUFBqZ2c2MGFOV28wcFZ1M2JuM2xtM2U3aU4xdXg2cFZxN0JwMHlhRm11ajk5OTlIejU0OXNXREJnZ3FiM3ZybDdoQ3J0UVRSMTJDR05yeW5FZDZlK1o5Uzc2blY2a0ZkdW5TSi91WFgvNjNwZm4rWEU1UlNSa0kzeFRTVnNVMFVCSkdYZkcyQTk5VUxlQkt3Z2VKQytnVndIQWVXWVJFUkVZR01qQXhRQUlHQmdkaTZaUXZXZnJBZUdvMEdZOGU4aVNOSERxTjE2elpZdldvRnVuZC9BSDBmZVJSLy9IRUVDK2JOeGFyMzFvTG5lY3liTXd2ekZ5NUdVbEl5MW4zZzdTdjYwc3ZEcjJuY2ZIc0YzM2FtYUZGUkVleDJPM0p5Y25EaHdvVlNQclhFeEVRa0ppWXFLUjEydXgzNStmbWtzTEFRTnB1TnVGd3VJZ2dDSTRvaWs1U1UxUHZISDM5Y3NuejU4cjZFRUhUcDBnVkhqeDdGVzIrOWhYYnR2QTE1MjdWcmg5bXpaNk43OSs0SUNBaEF2WHIxOFAzMzMyUFpzbVZJU0VoQWFHZ29oZzBicGhEM1VVb3hiOTQ4MUs5Zkh4cU5CaEVSRVJnMGFCRHNkanM4SGcrYU5tMktCeCs4SEpQWXRHa1R0Rm90amg4L0RnRG8zNzgvV3JYeUZqVWNPM1lNVHFlekZOOWE1ODdlVHRzSER4NzByMjYvbEJPejJZeXhZMFpoMFBQL2g4R0RCdUwzUTk1NWtwMmRqUUg5bjhDVC9SN0ZxRGRHbHZyTzVJbmpNV1RRODMxbS8yZkcxSlNVbEM0QWRLRFV0NUVNSzRvaUs2OGJwWWtNeDZHa3BKZ1lESGxlUWtxbnQzRnpaR1FrR2pab0NJMVdnNUtTRXVUbTVpQXpJd083Zi9nQktVMmFJQ0RBUzdKYUk2d0cvcExtL1Y5L0hVZVhMdDU1SGhvYWlyUzAwL0I0UEREazVVR24xeU1weWR1WUpUdzhISDhkUDNiRHgrMldhMnh5b0tCZHUzYjQ5dHR2TVhmdVhNVEZ4U0VrSkFSNnZSNHkxN3VjMG1FMm13a0FxRlFxUWltVnU2NHpWcXYxV1kxR003VnYzNzcxR3pac2lFV0xGb0ZoR0xSdjN4NlBQUElJcGt5Wm9oeHovdno1MkxGakJ6cDE2b1JYWG5rRi9mcjF3K09QUDQ3VHAwL2oxS2xUNk5hdEd4NTY2Q0U4OGNRVFdMVnFGUll1WElqTm16ZWpjZVBHT0g3OE9BWU9ISWptelp0anpKZ3grUERERDlHdVhUdDg4c2tuNk42OU8wYU9ISW1aTTJlaVJZc1dDckFWRmhZQ0FISnljaFJ3OUhtNklpSWlBdG5aMmY1VjdKZHk4c1hubTlHc1dUTU1HdndpMHRQVHNYclZDclJ0MXg0SkNRbjQ3NWF0T0hmdUxPYk9MazAxUDIvQkltbHRGYlVaL3RMUThBOC8rbVRGNEVIUGZ5c3BNa1N5VGprS0NONEhPQkdsZkY0UVFxaEtwU0p1dDl1cnhBR2dvQ0NFZ2R2bGdzMW1RNzRwSHdCQlptWUdBZ0lDY1BGaU9sWXNXd3BCRkJBcytRbUxpNHVoMWVtd1kvczMrT21uM2RCb05MRFpiQ2dwS1lGV3E0WEg0OEhLRmN1UW01dUxvcUtpR3o1dXQxUmo4MDNwRUVVUkF3Y09STjI2ZFdFeW1YRHExQ2tjUFhvVXFhbXBLQ2twZ2R2dFJrbEpDWkhBUUluNE1BekRCQWNIdi9MbGwxOHUwbWcwOWVXR0Z6cWREaHFOQm9RUWhWbFVsbjc5K3FGYnQyNVFxOVY0NG9rbjRISzVNSGZ1WEFRSEI2TnQyN1pvMHFRSlVsTlRBUUJKU1VsWXYzNDkrdlRwZzhURVJEejIyR1BvMnJXcjh2bDk5OTJIU1pNbVlmejQ4Umd5WkFpYU5HbUNDUk11VjJrOTg4d3pHREhDMjZQUjRYQlVtQXVrMVdxbERsbCs4VXRwYWQybUxYNys2VWQ4OU9GR3VGMHVMSDVuU1pXK0o0b2laczU0R3cvM2ZiVGVBejBlbkhZcTdkd0FBRHBwMDFCSzFhQlVCWUFGS0tPa1J3R0VaVlhnT0EveHVEMCtyZjdzY0hzOGNEZ2NzQlJha0o5dlFsRlJFVTc4L1JmR2p4dUQ1NTUvQWQyNmxhWXVuRGRuRmpJeUxtTHhPMHVoMVdwTEtUTmpScitKeG8xVE1QS05ONnRsM0c0WnNQa20zOG9wSFM2WEMzWHExRUdyVnEzUXVIRmpSRVJFUUJBRUdJMUc0bmE3SlhZTzd4Tkh6bEhqT0c1OFNrcktndFRVMUNwM3FQQXRJNU1IUENFaG9aUlRVZ2Fhdm4zN29uYnQycGc1Y3lhZWUrNDV0R2pSQXQ5OTk1M1VPTU1yMDZkUFIwUkVCUGJzMllPUFAvNVk2WE5RVnZSNlBUd2VUN24zM1c1M3BmMFIvWEtYQTF2ck5saTVhZzFxSmlUZzQ0ODI0dTIzcGxicGUrdlh2UStkVG9lQno3OEFBRkhCd2NGdmZmM045c0VBOUJLNGFRa2hha0tJaWxMS0FtQjhBbkNFNDNoNE9BOVJJcVpPSnppUEYraEtpb3Roc1ZqZ2NidFJYRktDeHg5L0FnUUVKZFlTaElhRktlWm5oNDZkTVBLTlVWQ3IxZkI0UEFwemIwbHhNVWFQR1lmZWZSNkN5K1ZDbVBTZE94N1lmTXVrc3JPemtaT1RneTFidHVEaXhZdEtuaHJIY2REcjlRZ0pDU0dBbC83YkY5UldyMTZ0NWpodU9zTXdzMFZSMUpYdE9INUYrMXRWM2dLdnJOaDN5WklsNk5DaEF6SXpNOUdoUXdlc1hic1d2WHYzTHJXUDBXaEVUazRPS0tYNDlkZGZLejF1UWtJQ1hDNVhLZFdiNHppWXpXYlVyRm5UdjRyOVVrN216WjJOdzBjT28wZVBCekY1eWpRY09uUVEvelRYOSsvZmg3Mi8vb29wVTkveW5kZTZKazJhVHJuMzNudUhOMnZXUEJCU09naWxWQTBwSFFRQVMwV1I4RHhIQklFblBGYzZIWVRuZWJqZGJzV2tWR3MwY0RnY0tDakl4OFdMNmRqOXcvZG8xTGd4QUtCRmk1YktlZjU1OUNpU2twS2gwV2dRR3hlSDBMQXdhQ1VMYXYrK2ZXamVvc1dkNzJPVEM5cDlheitMaW9xUW41OFBoOE9CNU9SazMrUmJJbXM0Y3ZzN0FHVG56cDFCUFh2Mm5Nb3d6TGlpb2lLY09uVUtRNGNPcmZCNDE4dE9zR1RKRWt5ZVBCa3paODVVM3N2SXlDZ1Z3WHpwcFpmUW9rVUw5T3ZYRDZOSGowYlBuajByQktxV0xWdENyOWRqMzc1OWVPU1JSNlJKdUI4TXd5akJEYi80eFZjR0Rud0JpeGN2d09lYlA0VW9paGd6ZGp3WWhrRjJkamJHakhvREhPZEJjWEV4QnZSL0F2ZmVkeDhtVFo2S2xjdVh3dVZ5NGJVUkx5dS9zM0wxV2dRSEIyUEJvbmRHdjdOb29hYWdJSDlkYm02dS9JU1ZvNlc4dE5ZRWIyTXN3ZXRpay9iaGVZRjZPSzg1Q2dJRUJ3VWpMaTRlbjI3eWRwSy85OTc3RUJ3Y0RKN244ZXBySXpGLzNoeDgrZDh2b05mck1YSHlGRVdwbURMMUxjeWFOUU9jaDBPdFdyVXdZZEtVT3h2WUtLWGx5cVRrNkdkeWNqTE9ueitQMU5SVUJBUUVRQkFFdU4zZXB3UWhSQ2JUSXlrcEtUVm16NTQ5TlNJaTRrMjFXbzBwVTZZZ0pDUUVBd1pVM0wwNktDZ0lCdzhleEtGRGg2NEpQTUxEdzNIZ3dBSGs1dVpDRUFRc1hMZ1FwMDZkUWxPcEw4SDY5ZXV4Wjg4ZS9QMzMzNmhYcng0MmJkcUVsMTU2Q2Q5Kyt5MEE0UFBQUDBkaFlTRkdqQmlCd01CQURCMDZGSysvL2pxQ2c0T2gwV2d3ZlBod0RCa3lCT0hoNGY1VjdKZHlVcXQyYlN4YnZxcEM3ZisvVzdaVytKM1AvL3RWcGI5M3p6Mk44TUg2amErNTNXN1Y1azgzclp2KzFsU3p0TFo4bEFFR2xJcUNLREtsd0Mwb0tBZ2FyVWEybmtCQVVDTXNERWxKU1lpSWlFQk1UQ3d5TXpMQXNpd2FOMDZwMUIvWXRHa3pySDEvZmJXTzIwMDFSYTlVMEI0VUZJVFkyRmlJb2lpYm8wUUdOWlpsQ2FXVVhMaHdJZUw3Nzc5L0t5NHU3czBISG5nQVhicDBnVmFyeGY3OSt5dTEwMTk3N1RVY09IQUFnd2NQdnFaejNyQmhBMHBLU2xDM2JsMjBhOWNPTnBzTmt5Wk53cDkvL29tc3JDeU1HVE1HVTZkT1JZTUdEY0F3REQ3NDRBUDgrT09QMkxCaEF3Qmd5NVl0V0wvKzhrMWN2SGd4SG5yb0lUeisrT1BvMjdjdjdyLy9maXhidHN5L2d2MXlVMFdyMVE1L2J1REFsK2N0V0JRRlFDdFZLYWk5eW81U3BVQkUwWnQ1NEczQTdBMG91TjNlS2dXSHcrRTFTeVdmbThsa1FtNXVMakl5TW5EMnpKbGJlbjAzamQwakxTME5hV2xwU29zOHVadVVYQ2JseTN4Ykp2bVdVRXJKbVRObmF0U3BVK2N0UXNoSS83UXNMYUlvSWlQekVpd1dDd1JCZ010NWQ1Wm82ZlI2c0N5TDhCb1JTRXFxWFdrUVI3WWV2R05tQnM5WDM1anA5SHFvVkNwRWhFY2dLYWx5N3NPOWUvZWlidjJiejFycmNicy8yTFRway9mZm5qN05Bc0JGQ0hGRGFSeERCRUlnRU1Jb0RXUFVhaFhVR2czVmFxUytwUUVCQ0FvTVJMRFV6aThpSWhLeHNiR29YYnMyNnRhcmozcjFxcmVhc2JJK3ZEZkZGSlY3RkpUbFU1TTdTUjAvZnR5M1FvRDQydjNTRmxTdlhyMnBBUDdWb0dZd0dLNjZVNURiN2NGZmYvMEZWcVZDY0Vpb3Y2K28zWWJDb2tJVUhNMUhpK1l0b05Hb0t3UzFQLzQ0Q29abEVSUmMvV05tdDl0Z3RsaVFYNUNQMXEydXpFQ2ZjL1B6R1YvcTFxMjdlSEhJaTJzLzNMaEJXWWRlMDlSYllnV0lnaWhTVUc4eFBCVUVrUWk4UUpWdTh6NGtsVTZIQTNhN0RWWnJDWW9LaTJBdUtDaVZjWEFqcGVZVmZyZmFnUzBySzZ0VWo0S3kzZGtkRGdkcTE2NnRhR29lajZkVTdlZnExYXZWdzRZTm04b3d6SnZ3U3puSk0rU0JWYW44bmVBbGtaa2ZqSVpjNU9ibElxa0NodWlMR1psZ1dQYW1qWm52T1dWbVhrTGlGZnFMMWt4SXVCWERObnpxdE9sOFJrYkcybC8zL0ZLWmhpdGNCanVSVWlvU1NzdjNVZUFsWmw2UGg0UEw0ODJCSTRRZy9pWkgvYXNWMkl4R285SWlyMnpqbFFvNlNaR0t1TlFrVUJ2blg3SVZpN25BaktDUVVQOUFsSkdnNEJBVUZKZ3JCRGFMeFlMZ1d6Qm1RY0VoS0RBWFhCSFlicGtacjlPOTl2NEg2ejBONmlXdmw3VmFPYUJBdmRFRktwYktNeUVVSUFRZ2NsZDZFRUxBZU1rc3dUQXNXSmFGaWxWQjVUVmZFUlVWZGVjRG05eWhYVzZSbDUrZlh5bWRkMW1mbW0veUxjTXdVLzNMdERJL0VTQUl3bDF2ZmxhbUpSVVhXU3I4N0ZhTldXQmdFSW9MTGRmMDNaTGlZbVJjdkFDNzNYYkYzMDlLcm91UTBHc0RiYjFlUHpydDdBWFhQUTNxYnBMd1RKbHFQbU1uWG03ZngxR084eEFKK0VBWUFzSXdFckF4WUZrR0twWEMxZ3VOUm9QUTBOQTdGOWljVG1jcFVDdkxwMVlKU2FUY2ZJVkl2UWxlWVJobTJwVVg5dFZUS2Q5dVVsV3E0NHFFRU1EcDlITzVWVG9QSytHNXU1WEJsV3U5WHhmVHo4UGhzRjl4SDd2ZGhveUxGOUNzeGIzWEFiNkJvMCtlT3VObzByamhWaDlRbzJVME9CRUFGVVdSOER4UG5VNEhZVm1XTW9TQUVBWU1ReUNYTm5vM0ZWUnFOVFJxRFJvMWJueFRLTVp2T0xCUlNuSG16Qm1sVFo0Yy9TeXJxWldKZnNxTkpSaUo5ZlpabG1XbndWdjZVZWx4cnBGSytiYVRxbEFkWDZ2OHVQc0hiTnl3SGlhVEVmSHg4Zmg0MDJjNGQrNHNoZzRacE93emFjbzBQUFRRdzM0a3ZJM2xuMEROZHk1ZHIxVWFHaHI2eHJHL1R0cGJObS95dmErMlZnYmNBRUNrbEhwOWFweUhlSHNyWEFZMmhtWEJNaEt3eVZxYlZvUEdqVk9xdmEzZkRRYzJYMUFyMjh6WWJyZFhTT2Z0NjFkek9wMjlWQ3JWVkFCWE5NaXZoMHI1ZGpTYi9vbnErRm9rTnpjWEMrYlB4Y3haYzlDNmRSdVVsSlFBQU9yVnE0OGZmLzRWQVBEUzBNSFZkbDBiMXEvRFk0LzNLOFZtSXAvWHNpWHY0TVNKdjZIUmFORGp3VjRZOGVwcllGa1dnSmVTWjhXeUpUaHg4Z1MwV2kxNjl1eUZsNGVQVUQ2dkR2bW5ZM2JwMUI1cXRScUVNRWhLU3NLUW9jUFFzV09uZnl1T1JrVkVSTHk2Y3VYS2t0ZGZmLzFBR2MyTkVrS285RCtSbTJEeEhPZmxJbWNJSlF3QlF5US9tNlM1S2NDbTFrQ3IwYUplL2ZyVmVnRTNORUUzSXlNRDZlbnBsZWFweWRSRFVvczgrTExmVWtvWnE5WGFTcVBSVEFYd2oxZDlBNmlVYnorQXV3TFY4VFU5Wk5KT0l6SXlFaDA3ZG9KR28xSEt3QWdoU21laTZueHlmcmh4UFN3V2M3bjNaN3c5RFRVVEV2RDFOenZ4L2djYmNPamdBV3pmdmcyQU55ZHYwb1J4YU5Ed0htejdaaWRXckZpTnZiL3V3ZGRidjZxMjg2enFNVmV1WG9NZHU3N0RrS0hEc0hqaGZHejlhc3N0bVNlRUVOeDc3NzNvMmJNbmV2VG9nZmo0cTN1NEM0S0EzMzdiajhrVHh5TTdLNnV5WTlTTGlvb2F2bURCZ3NhUzVTVFRqS3VWdWxKSzVXNzBoT2Q1OEp3MzljTlRLdlhEanNLaVF2ejA0MjZzWGZNZTVzK2ZnLzM3OXlGTE9tN1dwVXNZK2ZxcmVQYVpwekJtMUJzb0tpcFV6dUdqRHpmaXVXZWZ4ak5QOThldW5UdHVqY1ptTkJvVlVETWFqUXFveWJscXZsM2FmVHEwSzZCbU1CaHE2Zlg2S1FEYVZ2WG0vTnVjNW9HQlFiQlpyNTlQL3ZqeFk1Z3hmUm84RXMzTTQ0OTZ6Y3grVC9USG9NRkRxdlFiaHc0ZXdNb1Z5MkV3NUNFeE1RbGp4bzVIU3BNbXl1ZDdmOTJERFJ2V0lkOWtRa3hzTElZUEg0RjI3VHNBQUVhKy9pcXlMbVVDQUVhLytRWlVLaFlKQ2JXd2N2VWFpS0tJcmwyNzRlRytmYUhWYWhFZEU0TldyVnNybWVvV2l3VTF3c1B4M01DQjBHZzBTS2hWQ3gwN2RVWmEydWxxRy9lck9hWmVyMGZIanAyZ25qSU5iMCtmaGw2OSs5eDBacGJrNUdTd0xJdmR1M2REcTlXaWUvZnV5TS9QaDhSK1V3cXc1U1JsMzcvZmZPTjExS3haRTZkUG40SWdDbGNDME5hSmlZbkR4bzRkdStpZGQ5N0prYlUySDUrYkhHQVFCVUVFSWJ5MzdwRXdsREFNQ0VQQXNBeHljM05CQ01FRFBYb0FsR0xEK25Xb1Y3OCs5RG9kbGk1NUI0ODkzZzg5ZWp5SUx6Ny9ETyt0WG9YSlU2Ymh4SW0vdlhOczQwZHd1OTBZUG53WVd0NTdYNVZCL0lab2JGYXJWV0hxOEszL2xEdTNYeW10ZzFKS1huenhSVFlpSW1JeUlhUnYxWTlaY2tNbmk5bHN4dVJKRS9EY3MwOWozdHpadHd6Y0txTTZ2aHBwMGFJbHRtM2ZoVGRIalVITm1nbll0bjBYdG0zZlZXVlF1M0QrUE42YU5nVWpYbnNkdTc3YmphY0dQSTB4bzkrQVNkSW1Nek16TUh2V1RFeWNPQVU3di8wQmp6enlHS1pPbmF3MHBWbXhjalcyYmQ4RkFGaXliRG0yYmQrRmxhdlhlQ2NjdytDNWdjOGpMS3lHMXlsK01SMEhmdnNOYmR0NjYzZ2pJeU94WXVWcTZIUjZaVUVlUDNZTXpabzFyN1l4djVaanRtN1RGaDZPdXlXbFE1R1JrY2pOelZWOFhhSW9va2FOR3FYMk9YTGtNS1pPbmdpTzQyQ3hXUERTMENHd1dMd1IyWGVYTE1Qa0tkT3FwQmd3RE5QN3Z2dnVHeHdURTZPWHREYWYwaXV3QUJodlJ6aVJ1Rnd1NG5LNXdIRWVZakdia1plYkM1ZlRoZUxpSWdRR0JxS2twQVFxdFJxQ0lDRDE1QWxrWkdZZ0xlMjBjdThmZXJndkR2OStDQUJ3L3R4WnRHalpFbHFkRGlHaG9XamZ2Z1ArT0hMNDVwbWlsTkp5VlFXK21wcHZCTlMzUTd0dkJIVE5taldUQ0NIRGJzUk4vMnJMbDNqdTJhZng3RE5QWWY2OE9YQzdYRlg2M3Z0cjM4TTk5elRDcDU5OWdiSGpMaE5GbW94RzdOeXgvYTV5Vk8vY3VSMWQ3KytHamgwN1FhdlZvbmVmaDNCUG8wYll2ZnNIQUVCRVJDUTJiUHdZalZOU3dEQU1Ibm4wTVhBZUQ3S3lMbFg1R0trblQ2Sm5qMjRZOVB4enVLZFJJM1RwZW4rRis2MTVieFgwQVFGNDZPRytOKzM2cTNKTVFnakNhNFREZHYzTytxc1dqVVlEUVJBUUVSR0JUcDA2UVJURlVrU09BTkNxVld1RVIwUmc1b3pwR0R2bVRmUjc0a21GYU9GcUc2ZW9WS3JuRnkxYU5CQmVMamRmazFRbFlRZ2pVa29ZaG9ISDR5RTJtdzB1bDRzRUJnYkM3WFpEcFZMQllNaUQxV3BGZG5ZMkNnc3R5TTNOUlc1T0RpSWpveUFuQlI4NmVBQldxM2M4NjlTdGg2Ti9IRkVva2xKVFQ4Sm1zOTA4WUR0Nzlpd3VYYnFrcEhWVXBmZG5tUWpvd0J1VnEzYml4Ti9Zc3VXL1dQdkJlbnk2K1Fzd0RJUDE2OWRWNmJ2bno1MURoNDRkeTkzNC9QeDg3Tmp4elYwRmJBYURBWEZ4cFZYKzJyV1RZRERrQWZDeVBCdzkrZ2VHdnp3VXp6MzdOQWEvTUZEUmRLb3FLVTJhWVBkUGUvREZsMXVSbDVlSERSWGNwNDgvK2hDLy8zNEljK2ZPcjVCRHJ6cWtxc2VrbE1KU2FFSFFMWEtISkNjbm8xR2pSdmp0dDkrVW9GQlo0QjArZkFUK1BQb0h0QnJ0ZFQwWTlIbzlCZzRjK0tiQllPaFpnYi9OcTdsNS9XME1JUVNDSUVDdDFrQVFCT0x4dUJFVUZBeGVFSEQ0OTBNNGZTb1ZETVBBNFhEQVpES2hWNi9lK09hYnJ6Rms4UE5JVFQySndFQnYvNFRtelZ1Z1o2OCtHUG42Q0V5Zk5nVUIrZ0RvQS9RM3g4ZVduWjFkTGxmTnQxVEtCOVJRVVFUVWJyZDNscG9aMzVCWmE3TmFFUlFVaklDQUFEQU1neGVIdm9TTEY5T2x4WnFIUlFzWElOOWtSR2hZRFl3YlB3R0ppVW40K2VlZjhOOHZQa05tWmlibXpwa0ZqVWFENTU1N0hsMjYzbytsUzk3QnNUK1B3bUF3WVBqTFhyNjN0ZSt2eDRiMTYvRG5uMGRoTkJpUTBxUUpMcVpmUUdSVU5ONTVkeWtvcFZpOWFpWCsrT013T0ErSDloMDY0clhYUjRKU2luRmpSdUgrYnQzeHlLT1A0Y1NKdnpGbjluK3didjJIdDBWM2JWK0ppWW1CSVMrdjFIczVPZGxvMmRLYmlyTHZmM3Z4NmFaUHNHVHBjaVRVcWdYQUd6V3NhSEdWQlR1M3k0WHZ2dnNXZmZvOEJLMU9oN2k0T1BUbzhTRDI3OTlYYXI4dFgvNFhQKzcrQWN0V3JMcm1oTk9ybGFzNTVwRWpoNkZScTlHZ1ljT2Jmbitrc2tQOCtlZWZBQUNXWmN0Unk5dHNOb3dmUHdZRG54K0VzMmZTc0dEK1hFeWFQUFdhZ2tWT3B4TmJ0bXhSQVhqbHI3LytNalJ2M3Z4UHlkY21TdjQySldKS0tTVU13OExqY1ZPbjA5dVVuakFNb3FLaUVCQVFBSjFPaDcvLytndWlJTUppTVVNYkY0L25YeGlNQmcwYTRtSjZPaTVsWmlySGZXN2c4M2h1NFBNQWdKZUd2WWk2ZGF0ZVVIL05HbHRSVVZHRnVXcVZnQm9wMDZXZHljM05qZGRxdFJOeEF6dTB0MjdURmpWcjFzVEx3MTdFMTF1M1FLZlRvWFhyTmdDQU9iTm5vV2ZQWHZoNDAyZDQvb1ZCbUM1UkxEL3dRQStzZlg4OWF0YU14N1MzWm1EdCsrc1ZzMmpVNkxHWU1IRUtrcEtUc2ZiOTlhVTRwTnEyYlljWk0yY2hNek1ESDMyeUdaY3lNMkd4V0dBMEdoQVlHSUFOR3ovR3g1czJJL1hrQ1J3L2ZneUVFRXlaTmgyZmJ2b1lhV21uTVhmT0xFeDc2KzFiQm1yUy9mQnFINktvYU5JQThIRGZSN0IzN3g0Y1B2dzdlSjdITDcvOGpOU1RKOUN6VnkvRkgwa0l3TEFzaW91THNQblRUZEx2bEdhS2lZdVB4NkdEQjhGeEhQSk5KcTgyck5YaWs0OC93dWVmYndiSGNTZ3FLc1MrZmY5RHMyYk5McHZDTzdaajI5ZGJzWFQ1eXB2R1UxZlZZN3JkYnZ4KzZDRG16NXVENGErOGVrc28zZlB6OHhXQTBtZzBDQXNMSzljUTVjS0Y4K2phdFJ2Kzc3bUJtRFo5QmpRYXJlSmp1dzZwVzc5Ky9SZEhqUm9WVzVHL2pWTEtNQXpEeUZSakhvOEhITThSenNQQjQzYkRZWGZnekpremlJcUtndDFoUjFGUkVRb0tDbUEwR1BESEgwZXdmTmtTUFBsVWFWNUZqdU93NlpPUFFZaVh4NjFhTlRaQkVKQ2VucTRFQzN3am9CV2tkWkF5YVIyRVVzcEVSMGRQSUlROGVDTnZ1RXFsd295WnMzRDZWQ3ErL2ZaYkRINWhJR2JObm9zNmRldmk3SmswOUZ6aEpleHIwNll0M25XNVlESWFFUjF6YldtOVdxMFdPcjFlTVZzREF2VGdPUTZ4c1hHSWpJekN4QWxqd1RJc0RFYXYzOUhybTRyQTZESGo4UHFycitENUZ3YWpTWk9tdHdUVXlpYm9McGcvRnd2bXo4V0RQWHZocmVrelVMOStBN3c5Y3hiZVc3MFNocnc4MUU1TXhNTEY3eUlteHB0ZjErZWhoM0h5NUFrTUhmSUNXRmFGeHg3dmgvcjFHOEJTcGx4b3pKaHhXTHhvSVRadVdJZmF0V3RqM1lhUG9ORm9zR0RoWXF4Y3NReGZmUDRaMUdvMXV0N2ZEWU1HdjZqTXJVVUx2V2JnczAvM0wyMG1idHFNMk5pNEd6NGVWVDNteU5kZUJTRkFZbUlTeG82YmNFUHoySUtEZzZ1OGIwWkdCc0xDd3RDalJ3OEF3UEhqeDh2MTBtamV2QVdhTjIraHJJdXg0OGJmSVAvcnptNnRXN2ZPQUxEQ1Iyc1RBVkJDaURkR1NrVXExNHZ5UEU4WndwQVNhd25sT1E2aG9XR0lqb21GM1c2SFdxV0dXcTNHcmwwN3dESXNubnI2YWJTWEl1dUFsK0o4K2RKMzBieDVTOHhmc0xoQ2JiT3ljYnNtWVBPTmdGYkdxVllHMUdRR0FMbGNhamdoNU5VYlBVRlBuejRGblU2SFJvMVQwS2h4Q3I3OXRqRSsrR0F0NXMxYm9KaEdpcG5FTUtDNDhWeDBmLzExSEx0MjdzRFNaU3VnMWVrd1kzcnBxakNId3dHMVdnMlh5MW50QU5hcmR4KzVRM2dwcVYrL0FmNjMvOHA5VER0MjdGVHB3dFZxdFpqMjF0dWwzcXVvNFcyYnR1MHFaSG10Vjc4K2xpNWZXZUZ2c3l5THZmc08zRlNncjhveC8ybThic1E1Mk8yMktrVXE1YXFiNjVWUFAvdmltcjZuVnF1SGJOaXdJZVBGRjEvY0JpL0Zya2dCS3JXU3AvQ21nWWlpS0ZLQkY4QVREb0VCQVVTcjFWR2RYZ2UzMndXbncxdU5vRktyMEsxYmQ4VEd4cUZXcmRySXlMaUlPblhxQWdBNmRlcU1UcDA2VjNvZWRwdTFVai9vVlp1aWVYbDVDZ1dSYjFwSEJSRlErSUNhb3EzWjdmWXVMTXRPckk3SmtYWHBFaGJPbndlNzNWdCtZaTRvUUdob0tMUTZIZW8zYUlnZnBhamVIMzhjZ1ZxbFFuVDBQMnRyb2FHaEtNZ3ZxTEM3VkVWaU5wdWgxK3VoMW1pUW41L3Z6WVdTaW9rTmhqeTh0M29sM3Y5Z0F3Ny8vanVPWEVYNHVuTEhiZ0Q4Y25WamN5dkhyTEpqUjBkSHczR0ZXdWVBZ0txWnZGWGQ3M3AvS3lnbzZKVjMzMzIzaFJKTWtKckN5Q2FwbkFJaWlnTGhlUUVjejRQalBQQjRaQVplRnh3T0IrdzJHMHFLUzd3TXZQbEdLYm0vYWtucWRwc1YwZEhSMXc5c0RvZWpGRnZIUHdRTHlpWGhwcVdsaFdtMTJ2RUFxcVVPcW1ldjN1amNwU3RlSHZZaW5uM21LYVNlUElIWFIzcHAzS1pPbTQ1dmQrM0U0RUVEc1hIOU9zejR6NXdxT1ZJVGF0VkMyM2J0OFBTQUovSEN3R2RoTkJxdXVIK25UcDJoMCt2eDFKUDlNSDNhRk5TdFZ4OTJ1eDA4ejJQbTI5UHgwc3V2b0ZidDJwajYxdHRZdkhEK2Rmczk1Q2U5WDhwUCtzcEtzSmhiTkdaMm14VnNKUnBHWEZ3Y0tCV1JiOHlyOE55UzY5VDdSOUFLQ0FoRWNwMGJ4MWo3RDhlTWk0K1BIL1RDQzROcXlPQkd5NE1iUXlrbG9pZ1FnZWZCY2J6a2IvUEE3WExCNVhUQzduREFhck9pdUxnSUZyTUZKcU1SMlZuWlNsK0Z5c2JSWk1nRkNDb3RQN3dxYXZEVTFGU2twYVVoTXpOVHFRWDFOVVY5S2d5SXJMVkp2alZHb2lHYXhURE1oQnN4NkxlS1NybTZwVEtxNDhyOUxaa3dXeXgrb3NreVlqVGtJakl5QW9tMXkzT2ZaV1Jtd215KytXTm1OT1FpSWlJQ1NWZmdZek9aVERBWURPQjVIbGJyN2M5VzQzSzVWdlh1M1hzOUFJZTB1UUI0Q0NFY0FKNFFJaEpDUklsYVhLWXZvbHF0bDFvOElDQUFnWUdCQ0E0T1JvMGFOUkFSRVlHNHVEalVybDBieWNuSjVUWEY0R0NvVlNyRXhzWldxcTFkbFk4dEt5c0wyZG5aTUpsTU1Kdk5GUVlMUEI1UHVkUU9PVmpnY3JtZXVGR2dkclhPMWp0SnJ2YTZFaE5ySXovZkJLTWhWMkU1dWRzMU5adk5Db0huS3dRMUFFaEtUSVRKZFBQR1RENG5VUkN1Q0dxeVNYcWxCWHNieW10WldWbG5hOVdxdFZmMnR4RkNsSUFDQUhoWlB3aGtjRk9wVk5Cb05OQnF0ZERyOVFxd2hZYUdJanc4SEZGUlVZaUxpME9kT25WUVMwb251bHFwRXJCWnJWYWxzcUFzcVBuV2dQcW1kdmlhb0VhanNaWmFyUjU3cTV5dGQ5S2l2TnBFVkVJSVdyVnFoWXNabWJCWXpDaXlXT0J5M1owY2JYcDlBQmlXUldSRUpCSVRyN3dnMnJSdWpjek1TOGd2S0tqV01kUHJBOENxVlArb3FkM0pVck5temNGZmZ2bmwyYWVlZWlvYmw2T2tNckJST1pMZ0phZmtLY013aEdWWnlySXNYQzVYS1NKS0dld0NBZ0lRSEp0ZzBOd0FBQ0FBU1VSQlZCeU1zTEN3YTFKaXFyU0taTlBUTndtM2dzb0NYMUNUcXdzSXBaU0ppSWdZQTZEVmpSek02T2hvR0F6R2Z4Mnd4Y2RmZlRvRElRUjFrcE5RSnpuSmI0TmVwYmFiK0M4Rm01c3BoSkNXZmZ2MkhRQmdGUUJCNm8vZ2paWktwSlR3RWxOU0NkekFjWndDYmlxVnFrSndDd3dNUkVoSUNKcjRrQzlVVmY0eGVKQ1ZsWVdjbkJ6Rm4xWVpxRjNCQk8xZkhha2RpclBWWklEakRuZWVPK3cycnpNVTlJWnhzZm5GTHpkVGREcmRrT3pzN002UXlxMG9wUnBJeWJ1K2dRUkJFSWdFYkFwdXlCMnVIQkxOVVVtSk4wcWFuNStQbkp3Y2hlTG9obWxzZHJ1OXdudzFYOEpJR2RoNG5pOW5nbVpuWjhlcTFlclIxVFdZOTk1N0w0eEdJNHdtRTZ3bHhYY2tOYmpzREUxSXFIbW4rVmI4NHBkU0VoOGZQMmpqeG8ycFE0WU1FU1IvbStCcmxwWTFTYVhxQk9wTFJHbTMyeFd0VFE0c2hJU0VJRHc4L0txcVBLNEliR1h6MWNwRVBuM3oxU295UVVsTVRNd29BUGRWNTJER3hNUmNkUzlPdi9qRkw5VmlrcllZTUdCQS95RkRobndBZ1BjeFNRWEpKQlhoWmQxVlRGS0dZWWhLcGFJeUM0aHZZS0dvcUtpVXI2MVJvMFpWQjdaTW42SlRYOG5QejhlWk0yZEtNWGVVOWErVkRSejRjcXlscGFYMXpNcktHdTIvM1g3eHkxMGxMKy9acytkb3QyN2REc3ZnQmlsU0toZkxTMDFnNUtwNWhWUHVjdmVyeTZacVdUTzFxaTM4VklsaFA1UjdrK01GNUYvTUFuRWFRTnhtRUU4eENHY0RJOWhCQkJjZ3VBREI0OTFFamxCUkFDZ2w4amI0LzlxdzlhUDNqUExmWTcvNDVlNlRoR2JpLzlWTHJ2SDMrWXVGUEFDQkFBSkFaYk9VZ1JmTkFDcUNpanlGNkNZUVhCU0NBeENzSUlJT2pHQUI0ZkpCUExrZzdrd1E1em5BbG9yNDVGcFFxLzY1OTBXRndZT3NiQXNNcG1LWUxUWVVGVHRoczduZ2NMcmhkSEp3dXpsNFBEdzhIQStPRjhEeklnU0JRaFFwUkVvSkJaajNsdzBlQ2VBQi95MzJpMSt1VFNpOWM4K2RaWm11aC9kTWZ3UnlJTUViUkpBRENTeVZpQ2xGa1VJUUtIaGVCTWNMOEhBOFBCNGViamNIcDVPRHcrbUd6ZVpDVWJFVFpvc05CbE14TG1WVnJWS25uSSt0dU1TSjNMd2lGQlJZVVZqa2dOWHFoTjNoQlRXWG00UGJ3OFBqRWNCeEFuaGVKTHhBSVFpVWlKUVNVQkRMeFhjYnNDenpobjlxK3NVdlZ5Y2lCUXlXU0pnS3d5Q0lMR3gzZGpyaW9BVUxGaHlaT0hIaVJhOUo2ZzBtZUUxU2lKSUZTa1JLd0F1RWNnSkRQRHhMM1p3S1RvOGFOcGNhSlU0dENtMDZGRmoxTUJZRkl0c2NCRU54Q1BKSzRsQW5nVU5jZUFFcXE0b3NCMnc1dVlVdzVaZkFVbWhIaWRVSm05ME5oOU1EbDhzamdSb1BqdVBCKzJwckZLQVVoQUpNU0lqK05RQUovbW5xRjc5Y0hhZ2RPMWNmWU1NUUZISm45OG1WcEdaQzdlVEhKMDZjdUJvQUQyK0VWSDRWUVFnRnZHMzhDQ0VnVXJObEl0RWRzU28xVkNvMVZHb04xQm90TkZvZHRMb0FpQ1FReFRZMThvb1NrR2NPdzczMXoxY0licVZNVVdOK0NRekdZaFJZYkNncWRzQnFjOEhoOE1EcDR1Qnl5NkFteUNZbzRiMG1LS0VpSlpTQ09QSldkQ2VFdlBKdm1uRGpwbTNCL1gzZnVXRy94L01DUmszK0F0SDF4aUcwOXBzWVBtb1RIQTZQZjJYZjVXSW9qQVRZTU1URXh2OXJrczYxV3UyZ1BiL3VhNDdMVk9JYVN1RkRKZTdObmhCRmtRaUNBRjdnQ2M5NUF3ZWM1Ly9aTysvd0tLbzJpdjltdG1WVElFMTZDVWhIYVZKRTBBQWZVa1JCQkNzbElBZ3FMWUxTbGQ2RDlONUVwU2dJaWlCS0VaQWVsQ0lJVWdVRUV0SjdzbVZtdmo5bWQ1Sk5JeUJOMmZNOCswQjJabmJ1M3AxNTUyMzNIQ3NXcXdXTFE4WlAxVDVJSkQ0dWp1U1VGSFE2QStnS2N6UGVMOWR6dXhpMkd4RUpSTWNtazVDZ0dyWFVOQXZwR2RiTXZKckRzTm50c21DM08wSlFHVUVCQVJDTlJzUDc3a3MwZnd3YnM1Rk5QL3pPdXM5NnNXbDFIM2J1K1pOK2c5ZTZKK1lSUjFSOG9mK2NUaTVBdWZMbE8yUXhiQVpRREdTcVc0bk8xakJKbGdYSkxtRzMyd1diM1paWkZiVm1Wa1ZUVWxKSVRFd2tMamFXeUp1UmVQdjQzdHF3L1gwOVRnMUI0MUpKVEVvakpkVkNlcHFWakF3YkZvdWpXSkRwclNGSk1yS3NPQXNjWWtiVXZEY0VnUmZkbDJqZVNFMjFNRy9wYnNMR2R5QzRjU1dDRzFkaThhek9yRnh6a0poWU4vWFFvd3BGQVVuUzM1R25kdWIwSHd3TXZmY3A3VE5uVGhNMmJZckdhZWpFeG8zZkVOTGxMVUs2ZG5JUjVJbU9qbWJnQndONHUzdlhsaTFhdG1wTUZpcHhSVkhVSW9LaWlBN21IeFJIcTRjazJiVjJEeWZGVVlhajVTTTFOWlhrNUNTTlVqd3hNUW03ck0rMTBDSUNXRzEyTlFTTlRTRWhLWTNrRkF0cGFSYlNuVWJOV1RDd1M5anRrbUNYWkNRWng3SXB4STgvYXEwejZIWHZQZWdMNU9ubWt3a2Q5aFhCYmNJSXFqR2NKeHFPNGZ1dEo3VHRkWnRNWlBqWWpWU3RQNHJpbFQvaTdQbElMQlliWXladnBuek5FWGdVN1VPOXBoUFpzZHRWS05kbWsrZ2QraVhlSmZ0VHZQSkhmRHB2ZStZUEdKUE1LNTBYNGxmMkE3eEw5dWVGVitkdzRWS1V0cjFqMTBYVWJUSVJnR08vLzAxNnVvM2dScFcwN2M4MlZFWHZENFpmZE4vaGp5Z0VBVkxTaERzNnRuS1Zxb3dhTS9hZWptLyt2TGtzVzdxRVN4Y3ZhaVN1QUZldlhtSEQrdlVzV0xTVVpjdFhjdUxFTVkwOGRmNjhPVFJyOWo5V2ZyNktkOTk3LzFVUEQ3T0hNeHpGVVNFVkJFRUhPSTJieXRzbVNVaU9WVXcybXcyckxZdXlmSG82cVNtcEpDYXFJV2wwVkJRSmlWS3VPVFk5d0kwYkNVVEhKQk9ma0VwU2tsb0ZUWE8wZGxpc2RxeWFweWJocUlJNnZEVTFEUDE0OEV1OUtLQ0MrNzNHZ21XL3NIVjlQNW85VjRYTlAvN09LMTBXY25qblVHclhVQmM3ejVpL2s1VUx1bUV5NnFsVW9TZzkrMzNCanp2L1lPR25iMUdwUWxHV2ZyNlBGMTZkdy9HOUk2bFdSZVhyT25ENEl1WEtCbkIwendpT25yaEtqMzZmVThqSFRNK3VqUWtkOWpVV3E0M3duNGNDMEcvd1Y0Uzg5eG43ZjFJWm1qcTJxME44Z2xyZXVoNlJnTkdvSjhBLzg4bHNNT2dJOFBmaTJvMEU5eDN1Umc3RXhzWXljY0k0WXFLakVFU1I5OTdyUTRPbkczTHQyalVHaHZiSFpyUGk2K3ZIaXBWZlpLWTdobnpFalJ2WEFWVjB5ZFBMaXpWcjF3RXFyZitjV1ROSVRFckUzOCtmd1VPSGFWb1dBT3UrL29vTkc5WnIrd1AwZktjWFJxT1JzR2xUWE1iMis0a1RQRlczTHA2ZW50anRkdng4L1RoeC9EajE2dFhueEluamZQQ0JTdWpqNit0YnIwU0o0aTB1WGJxMEdiQTVYbG9oUVZFVTJSR1NPbFlrU09oMGR1eDJHemFiSHF2TjBhaWJuazZhU1ExSkV4SVNpSW1Od1dUSXZhZE5uNTV1MVhyV0VwT3lWRUUxbytiSXF6bHlhNDRRMU9tdENTZjJmVnhJcHhON1BTd1h3bHNkNjlIc09aV0E4c1ZXTldqZXBDb0xsLy9Db3BtcTltV2JGay95V251VmFDUXVQcFhQVmg5ZzFaSWV2TlJhVmYyZU5xNGpoMzc5aXltemZtTGxBbFU1dlZqUlFpeWIweFdUeVVDbENrWDU3ZmdWNWl6ZVJjK3VqYmw4TlpiU0pmMG9XZHdQVDA4ankrZDI1ZHFOZUcwOGIzU29wLzAvTGQyS2g0YytseVNySG92VjdyNkwzY2lCcjlhdXBrYU5Hb1IwZTV0TGx5NHhmOTRjR2p6ZGtGS2xTdkgxK2cyY1AzK09pZVBIdVJ3emFjbzBBQklURStqOVRnOCtHUGdob01yMlRSdy9sdkVUSjFPOGVIRisrbkVyQytiUFkvU1l6T05yMXFxVmczazRMNEhseE1SRVBEdzhpSTZPWnRLRWNVaXloSThqVDVpWW1Jakp3NFB2TjMzSGpoM2I4UFQwZkxWSHozZjJMRnU2eE9vMGJJNVZDWklqMzZiSWlpSUlha2lxMkNXN1lMUHJGTDB6SkRXb0lXbDZlanFwcVNscVNCb2ZqMEV2a3A0dVl6YTdqbEc4RWFtR29QR0ptVDFyR2VtWkJRT2J6ZG16bHRWYkE5bmhyVld0WEx3blVPMWh1UkRxMUhTbG9hbGVwVGluenR6US9xNzRlT1pDOHpObkk1QmxoWWIxeXJzYzAvanBDdnh4SmxOWHMyN3RJRXdtZy9aMy9hZks4ZWU1U0dSWlpzaUFsbnovNCs4RVBqNlFOcS9ONGJzZlRsQzlTdTdNckdZUEExYXJsT045aThXT2w2ZlJmUmU3a1FQMTZqZGc1NDd0clB4c0JaYU1ETUttenlqUWNiSXNNMmIwS05xODJKYjY5ZFZnNnErL0xuSHQydDhNSHpxWTdpRmRXTDM2UzZKdXV1b0xWS3BVbVZjNmRDencrRTZmL29PUkk0YnlUdTkzYWRyVXRTZC8wb1J4WEw3OEYySFRaMkl5bWFwMDY5N2plVndLQ1k0S3Fab1NFMUM5Tm1SWlFySkxTSGE3UXl0QnJaSmFMUll5TEJta3A2VnJoWVRFeEVSdVJDYm05TmpVbnJVVWtoemVXcnJUVzdNNFFsQm56NW9rQzVKZDlkYWN6Ymhud3NmNDZYUml6NGZwUXBDemFWdG1XT3pvZEpuRjM2d0dKTHVWei9vWldZVitqZG5jWGIxZVJLOFhFVVdSdGkvVTVQcVpLWHkvOVhkKzNQa0h3OGQreS94bHV6bThZeGllMll4VnFSSitaR1RZU0VoTXc3ZXdwNWEvaTQxTHBXUnhYL2RkN0VaT3cxYXZQblBuTFNUOFNEaWZyMXlCMFdoa3pMZ0p0enh1MmRMRmVIaDQwTGxMMXl5NVlodkZpaFZ6Q1Z2L0NRb1hMa3hHUmdaaDAyZFNxRkFoVHB3NFRtRmZYMjNiTTQwYTA2SmxLODFiTEY2OCtLdTllcjI3Yy9IaWhkWXM0YWlkTEx4dExsNmJYUkowZHJ2aVVpVzFXRWpQU0NjMU5ZM2s1R1QwT29Hb2FKbGlSUXZoNVduSzlOaGlZcE5KU0V4WGU5YlNyVnJCd0taVlFlVk1iMDFXdlRWbmJ1M3hjbys5RFR6K01GMEk0VWN2dS94OTZNZ2xhdGZJblUyMVl2a2k2UFVpQjQ5Y2Nubi9RUGhGcWxUS3pEdWN2ZUQ2VkR0KzhtK3FWVllKSVllTTJzRDVpMUYwZWVOcFZpM3B3ZjZmUHVMVTZSc2NQNW1UUTZwMmpkS1l6UWIySGppdnZiZnYwQVZFVWVEcGJGNmpHMjRBVEpvNG52QWo0VFJ2L2p6RGhvL2swS0dETGcvZDNMQnYzMTcyN043TjhCRWZ1d2dXVmFoUWdhU2tKSDdaczF2THQzMi82VHVYWTgrZlA4ZkdqZDhVYUd4UDFxaUIxV3JGWkRJaFNSSUhEK3luWmkxVnk3UldyZHJhT0kvKzlodEJRZVV3bVV6bCsvVHQxNXhzUllUc1hwdnM5TnJVUWtKbWxkU21DaTliTWpKSVQxZHpiU2twS2NURUpoTjUwOVZyMDhjbnFDc01VaDNlbXNWaVU5ZHNPVU5RbThOYmsxeTl0ZC8yRFBmUjZjUzNIN3FjeElaZmVhYis0enpmdENvclZoM2c1T25yckZyU0k5ZDlmWHc4Nk5lckdZTkdyc2ZieTBTbENrVlovdVYrRG9aZll1cldEN1g5L2poemc0WEw5L0R1MjhFYy92VXY1aXpheGRJNVhSeEdMNUkrSDY1aFh0aWJCUGg3c1dMVkFieTlUWnBoWFB2TkVlSVQwbml2UnpCZVhpWjZkR2xNMzhGcjhmSHh3R2pRMHp2MFM3cDNlZ1ovUHkvM1hleEdEblR1M0pXd3NDbXNYYjBLV1pZWk9PZ2pSRkYwS1I0a0ppYnlXc2RYcVBQVVV3d2ROb0s1czJlU2taRkJuL2N5VTk5ejV5L0N4OGVIU1ZPbU1mUFQ2U3hhdUFCUFQwOEdaaE5TUG5iMEtCczJyS2Q5K3c2M0hGdlpza0cwYjkrQmQzdjFSRUhoMldlRHFWZXZQZ0R2OStuSDVFa1RXUGYxVjVqTlpvWU1HdzZBbjc5L2gvYXZkTmkrY2NNM05zRHFNRzUyVkdVcmxXMVhiZHAxNU5wVXJ5MXJsZFJpdFdxOWJUb1I0aE1rb3FLVEtWN1VWNHVTaEZtVFgrVkdSRHhSTWNuRXg2ZVNtS3d1ZWs5TnMycExxVElza21DMVN0anRpaURKaXFnb2lOYm8rZjEwT2pIc1lib0lubTQrbVNlcWx1RENYOUVjT25LSkd0VkxNWDE4UjU1OVJtMnBxTnRrSWkrM3FjbklqOXBveDFpdGRrYU8vNDR2dmpwRVFtSTZ0WjRzemZpUmJmbGZzTXI5OU9ISTladzVGNEdmcnljLy8zSVduVTVrYUdncityelRCRkRiUFFZTS9ZcnR1ODZRbkpKQm5acGxtRGEyQTQyZVZtWFFPblpkeE9XcnNmeTZlN2dqbjJZamROalhyUG5tQ0tJZzBMRmRIV1pQZVFNUEQ0UDdMbjZFc2VkNDVmK2s2bHB1aUkrUG4xamppYXJmQXlsQUtwQW1DSUlGVmQzSzdsQzFrblU2bldJd0dqRVpUWXFIaHdrUHN4bFBzeWRlM2w3NCtCVEN0N0F2b2dnTmEwbVVEM3FNYWxWS1VENUlwVFVTeG85OHlYVVpsY043UzAyemtwNWhKU1BESmxpc0VqYWJJa2lTTE1neVl1Zlg2K2svVzlEak1QRGt3MmJZV2pXdnp1aWhMejJ5TjRpaWdDQzR2L3ZETW1jRi9leEh5YkFwaXZKSG80WU4zdi83NzZzcER1T1dKZ2hDT21CQmxleVRSRkdVUlZGVURBYURvaEpQZWlnZUhoNllQYzE0ZW5yaDdlMU40VUtGRVFTRmVrL0tsQ25sVDZVS3hhajVSR2s4UEF6b1V4eTV0WXdNRzFaTDF0VUZXUmE1Wit0Yld6cW5XNWVIemFobGgrRGIrMS8zZzBlZW0wYlJJcmUvckVaUzlGeU9xa3g4a2g1SkZzbElmelJWcWp6TVpuU2lnbjhoTzBGRnppSUtlYmZReUFwY2lhbE1iSUlKU2RiZHN6bFR4eVFUV05oQzJjZk8zdExJWGI5MjdWSDRxYW92V0xqNDJSZmJ0TnJweUxYWkZFV3hnV0FYQkxXUUlNdXlBQ2cybXkzVElPSlk2U1NyS3hVOFRDYTF1VGxGSWpFcGs5b29xRXdnK3RRMGk0TzVJMXR1VFpLUkpGbVFKTVd4eWtCOW9TRHE5Ym91RC8xVElXSFJJM0V6cDl2OStQMUNLZlFHRDN3S3UzVkZVMU5UaUU5T0lpYWhLalVmdjRwSm41aXJVZnYxM0JQbzlPYjdNbWVwcVNuRUppY1JGZjhFOVNxZHl0ZTRsU3oxYUJEakZDOVJvZzN3aThPd1dRRzlJS0RIMGRlR3Ftd2xxTXZRQlFVRVFSUUVSUlRWYmdSUnA4Tml0U0tna0pvbWtaeWNRWHhDR2pFeHlaUXE0WWVZbm01VHZUV3JTeU11ZHJ1RUpNbHFKZFJCbnFTQWtIWnpibXVnOGNNNFdZZDJESDNrd3RESXVDTG9EUjcvS1ZhSWZ3SXZMMitLRml1QlR1OUJSRnp1aWwrWG82dWgwNXZ2MjV4bGpzbk1sWmpLdUFHaUtEYmNzL2RBTFRKSktBMktvdWhRSzZTcU5WTVVGRVZXSzZTeU00ck11cFpVbFNSSVQ3ZVJrcHBCWWxJYXNmR3BSRVlsSWFaclBHdHF6NXJOTG1HWEhFYk5HWUptTW5nSVJvUHVUZmZQOHZBZ050SDBuMlNGK0tmdzlpbEVUS0lwMTIxeGlmb0hNbWZlUG9XSVNUQzVmeHdIU3BjdW5iMzF3OG44b1hPeWZqaG9qWkFsdGYzRDdsZ2tiN2Zac0RwYVFOSXpyS1NtV1VsT3lTQWhJWTJZMkdUMEZrc21lYVRXczZibTFnUzFiMDF4V0U2RWhDc3pueFFFNGRYYkNna2Y0V1Qydlo0ZlNkWWh5VHEzcDVhSGw1UVlINHNzZ3lpNnp2ZURtak4xVEhGMzlKc25KU1p5K2ErTHBPYWpvZXZsNVUxUXVjY3BWTGp3WFJudnZUNm53V0JvdS9hcjlWKzk4WHJIQzJSU2grc0ZRYkE3d2xGWmxleFRCRW1TRlVtU0JNa3VLVTZ2elc2ekFRb1dpMHg2dXBYVVZBdUp5ZW5FeGFXaVYzTnJXWmROeVE1dlRWYUxCZ280K2RhOHZFeXZGMlRBL3pHSzQzdjdGUGNFblU2aWlHOUN2bFRIdVVFblNvOXNvYUFnU0U5UGR6RnFvQnFVQnpsbjZlbHBkL1FnKyt2U0JkTFNVdlBkSnpVMWhjdC9YYVJHclRwM1phejM0NXkxNjlSK0RyaWFKZGRtZFhodGtxS291VFpGa1JWVnhVcHlwVGF5MnhGUXNGZ2xNaXcyMVd0THppQStNUTE5RnYwQ05hOW16eXdheUE1WEVBVmg4MWQ5UEVSUmVMMGdSdTAvUm5GOHo1R2Fta0pFZ2wrK1ZNZDNpdTNiZm1MRjhtVkVSZDJrUklrU2ZQN2xHczZmUDBlUDdpSGFQa09IaitTRkY5cTRmNGlIR0xjeU1GbXZwWC9UT1QwOXZkcTBlN245K3UrKzNXakp6TFZoRXdSRVVCeTVOa0ZRRkJsSmtoVkpsZ1M3dWtnZXU5MkdBRml0TWhrV0crbnBWbEpTTTBoS1NrZWZuVURTbmlXM2xuWDVWUE9tMVY0RlN0OXFvRmtwanQwb2VJamk1ZVhOelVpWm0vRitGUE9Qdnl1ZmUrUEdEYVpNbnNpWWNST29WNjgrU1VsSkFGU29VSkh0TzNjRDhFNlBidmZzZXkxZnRwUjJMN2NuSUNBZ3g3aG16WmpPeVpPL1l6UWFhZjU4Uzk1N3Y0L0dLbkh0MmpYbXpKckJ5Vk1uTVpsTXRHalJrbDY5Mzh2Qk9uRTNjYXR6UHRlNElRYURBVUVRQ1FvS29udVBualJxMU5oOThmNXpsQnI1OGFnRzMzMjdjUmZhRWl0RkQwS21Qb0pLSWE1a3piV3BpK1FsUU1GcWs3Rlk3R1JZYktTbHE3azIwUm1DU3BLYzJlSWhaN1o0NEd6eDBPa0t0T1QvdjBweGZGL0MwbnlvanU4RVovODhRMkJnSUkwYU5jWm9OQklZR09nSXh3Uk1KaE1tazhsbExlSGR4bWNybGhFWEY1dmovZEdqUmxLeVZDazJmcmVaeFV1V2MramdBVFp0K2xiMStHV1pvWU0vcEZMbEtuejczV2JtekpuUG50MjcyTGpobTNzMnpvS2VjKzc4aFh5L1pTdmRlL1FrYk9wa05ueXovb0ZjSjRJZ1VLZE9IVnEwYUVIejVzMHBVZUwybkFoSmt0aS9meC9EaG56RXRiLy92aThwZ2JGalJ2SFdHNi9SdlZzWHpwdytyVzM3KytwVnhvOGIwNHdzMVZFYzYwZWRETHVTSkFtU0pBbUtJZ3VTYXR3RXA3Q3lKS2tScDlWcWQvSGFOTVBtMHQ0aE9TbS8xUmFQK0tzem5oQUVXdDdxQy93VGltTTNWTTh0TDZyajI4SHg0OGQ0dVcwYnBrMmRUR1JrSkMrM2JjUExiZHV3OHJNVkJmNk1Rd2NQMFBtdE4yamVMSmdlM1VQNDQ5UXBsKzE3ZHU4aXBHc25YbWoxUE4yN2RlSFF3UVBhdG41OTMrZmx0bXBvKzhHQS9yemN0ZzE5MzM5WE15TEJ3VTNwR3RJTms4bEVrYUpGcVZ1dkh1Zk9uZ1VnTGk0T1AzOS9Pblh1ak5Gb3BGVHAwalJxL0N4Ly9ubm1uczM3N1p6VGJEYlRxRkZqaGcwZnlaTEZDMTBZWmU4WHlwVXJoMDZuWTl1MmJlemR1NWVhTld0aU1CaHlOZGk1L1g5QS83NzhzbWMzWjg2Y1JwS2wyenAzNDhhTjBldjFlVDRnY3Z0NzNkZGY0ZW5weWVxMVh6TjQ4RkRHanh1RDRyaklaODZZenN2dFgybTJadTI2MG1UVEh3VjBnaUFJb2lnNjE0NGlhelVBU1hzNXFkV3NGanNaR1RiUzBxeUl6b0tCWFNzWU9MVU10S0tCNE8zbDBiNWdUNUk3cHpoMlEwVktxdkNQYzJ5MWF0WG0yMDFiR0JBNmtKSWxTL0h0cGkxOHUya0xJZDI2RitqNGl4Y3U4UEhJNGJ6WHB5OWJ0bTdqMWRkZVorQUgvVFh1cml0WExqTiszQmlHREJuTzVoOSs0cVdYMmpGaXhERFMwdFNrL0p5NTgvbDIweFlBWnN5YXpiZWJ0akIzL2tJQVJGR2tVK2N1K1BxcW51bGZmMTNpd1A3OU5HandOQUNCZ1lITW1Uc2ZEdyt6ZG5NY1AzYU1HalZxM3JNNXY1TnoxcXZmQUt2TnBobmsrNG5Bd0VCdTNMamhjQ1pVaWkwL1AxZFAvOGlSY0VZTUc0TE5aaU11TG81M2VuUW5MazRWRy81MHhpeUdEUjk1Unc1SVFFQkFubDcraHdORE9YN3NxR2JNRnN5ZjU3aWV6bXUvYjlWcTFURWFqVnk3cG5xSzU4K2ZvMEdEcDZsVnUxYURYTHcyRVJBVkJVRVFCTFh0UThsYVJIQzBnTml6ZW0xMjBqT3NpSFpKMXNSWm5HR29yR1N5ZUtBb2dpZ0tMLytUSDJMUXdGQmU2OWlla0M1djBiWHptMnpaL0wyVzEzaXQ0eXUwYi9jaTNVUHU3V0tHN2lGZHVIang5blFGdHYzMEk2OTFmSVVYV3JkZzlxeThDZjUyN05qTzZFOUcvbWVNNitiTm13aHUwcFJHalJwak1wbG8xZm9GcWxTdHlqYUhrRWRBUUNETFYzeE90ZXJWRVVXUmw5cTJ3MmExOHZmZlZ3dDhqajlPbmFKRjg2YUVkT2xFbGFwVmVTNjRTYTc3TFZ3d0Q3T25KeSswdVg4NlFRVTVweUFJK1B2NWs1SjYvMFY0akVZamtpUVJFQkJBNDhhTmtXVVprOG0xUDY1dTNYcjRCd1F3WnZRbkRCbzRnUGF2ZE1EZjMxODcvbDZnVDkvK1RKd3ducmx6WnJQMWh5MTA2YW9XcUI2dlVJRmY5dXhCbG1VdVhickV6WnVScENTcjgvYjQ0eFhZczNzWFhsN2V6Yk1aTlgybWNjdnNhVk5rUnpqcTFFZVFWTWRNVlpLWHNGaHRwR2ZZRUxNWU5hMWdJQ3VBbzJpUUdqRzNHWGVCSWZlakljTlkrY1ZxNXN4YndPY3JWM0RwMGlXTjNuaHEyS2NQNVEzZW9tVXJ2bDYvZ1c3ZDN1WlJRbVJrSk1XTHUrWnR5cFFKSWpKU1pSWDI5dmJtdDk5K3BYZXZIblI2ODNXNmRlMmNheWlTSDZvLzhRVGJkdXppcTNVYmlJaUljRkU0Y3VMemxaOXgrUEFoSms2Y25HZjRjN2RSMEhNcWlrSmNmQnplRHlqdFVxNWNPYXBXcmNyKy9mdTFvbEIydzl1Nzkzc2MvZTFYVEViVFAzb3dtTTFtT25ic1NNZU9IVEVZRExScjE0Nk9IVHZ5MkdPUHVlejNlSVVLNmozejFScDY5WDZYUW9YVVhQdXJyNzJCVHEramU3Y3VmUEg1WjNoN2UyUDJWTDNqUVI4TzV1ZWZkL0oyOTY1VnVvYUVWSEVZczZ4NU5wMmlLQ3BYbTNNMWdpd2pPVU5UV2RZNk9sU3ZUY0ppc2FHWHNxd3ljRFRrT3NOUUFNRmswcmU5bXo5STRjSytQUEZrRFM1ZU9FLzU4bm1US3lZbUpqQjU0Z1Npb3FLdzIyMTA2dHhWWStNOGMrWTBNMmRNSnowdGpTSkZpekYwMkFndE1iNTcxOCtzWHYwbGxvd01xai94SkI4TS9GRExQK3o2ZVNkalIzOU1lbm9HZmZ2MTE3eUViOWF2VTVQWGlrTFRaditqVy9jZXQvd2VSNDZFOCtuMGFZaUNTTWxTSmZFMGUycmI4aHREODJiQjlCL3dBVXVYTEVKUjRQc3RXeDg2dzFhMGFGRWlJeUpjM3J0Ky9ScTFhNnU5U250LzJjT3FMNzlneHN6WmxDcXRGc3FmYTl3dzE1c3J1N0d6WkdTd2Rlc1B0Rzc5QWlZUEQ0b1hMMDd6NXMremI5OWVsLzNXci91YTdkdCtZdGFjZVhldDRmUld1SjF6SGprU2p0RmdvRkxsKzc5RXltcTFZcmZiT1hwVURmdDBPaDBXaThVMXBaR1N3a2NmRGFSemx4RE9uZjJUS1pNbk1uVFlpRHNxRnFXbnA3Tit2Vm9vYWRldUhULzg4QU5aRjZkbmpYQjI3L3FaOFJNbU1UMXNHaE1tVGFaU3BjcVl6V2FHRGhzQlFGSlNFbSs4MW9FU0pVb0NVS3AwYVQ2ZE1jdHgzK3hxK1BuS2xYOWtOV3lDSURqQ1VVWElHbnFyS1RNSlJSR1FKQVc3WGZYYWJEWTdGb3RkRFVWVmIwMFdIRVVEVGFoRlVSUlJFSVM3R2dORVIwVng2dVR2VktsU05kLzl6cDA3eC8rYVA4K3lGU3VaTTNjQnMyYk93T3BZR3picTR4R0VoZzdrOHkvWDhNd3pqVml5YUlHV3IxbS9maDF6NXN4bjVSZXJBZmhoeTJidE0zMThmRmo1eFdwR2p4bkgvUGx6QVpWWWIvUG1UU3hjdEpRbHl6N2p0OTkrWTlmUE8vTWRtOFZpWWNLNE1Zd2FQWll2VjYrbFRPbXkyclpiamNGdXR4TVZGY1c2Yjc1bC9UY2JINWp4Y25adkF5aXlqTjF1MTR4UW14ZGZZcytlWFlTSEg4WnV0L1B6enp2NTQ5UkpXclJVNjBleHNiRUlBb2c2SFltSkNheGU5YVhqYzF5ckhzVkxsT0RRd1lQWWJEYWlvMVJKUXFQSnhCZWZyMlR0MnRYWWJEWVNFdUxadS9jWGF0U29rUmtLZjcrSmJ6ZHVZT2JzdVZyNGRNL0Q3d0tlMDJLeGNQalFRU1pQbWtEdmQ5L0h5K3YrRTRSR1IwZHJCc3BvTk9McjYwdENncXZLMmNXTEZ3Z09ic3BiblRvejhwUFJHSTBtTGNkMnIzRHk1RWsrblRHTDU0S2JNT0xqVC9qdDF5TXUyNU9Ta3BnMmRUSXZ2dFEyUnpqODk5OVhXYlowY2JNc0lhaFdSSEI0YktJZ0NDN0xyRlFhTmRsUkkzRE50ZW5WU3Fpc2VXdXl5bUVwQUVKNjVMeldRTW03OGFXbmgwM0Y3R0hHYURMU3AyOS9TcGNwaysvK05XdldZdm15Sld6YjlpTTZuUjZMSllQazVHUVM0dVB4OXZhaGFyWHFBTHpVdGgxTm16VUQ0UERoUTF6Nyt5cnY5bjVIZTdKNWUvdGs1aDBjN0o1VnExWFRFdUhoNFlkNC92bVdtTTJxYS96aWl5OFJIbjZZcHMzK2wrZllybDY5d21PUEZkR01jNVZxMWRqM3k1NENqUUdnYTBpM2U1Ym5LQWl5TitoT21UeVJLWk1uOG55TGxuejh5V2dxVnF6RXFESGpXREIvTHBFUkVaUXBXNWFwWVo5cU1tMnRYMmpEcVZNbjZkRzlLenFkbm5ZdnQ2ZGl4VXJFeGJ2ZU9BTUhma2pZdEttc1dMNlVNbVhLc0hUNVNveEdJMU9taGpGM3ppeStXcnNHZzhGQWNKT21oRGpDZlVtU21EWlZEUVBmZk4yMXcranpMMWRUckZqeHV6NGZCVDFudno3dkl3Z3FjK3lnRHdmZnRUNDJSUUZ2ejRLWHdpOWZ2b3l2cnkvTm16Y0g0UGp4NDFpdDFoejN3NjJBdVFBQUlBQkpSRUZVVDgyYUtrMjNYcTluVURhbTNEdkZkOTk5bDNjdVBjczVhdFdxVGExYXRiVy9GeTlhd081ZHUvaGY4K2R6RkxINjkzdWZsT1FVUXJxL1hXTDAyUEZQTm5tdTBhL1o4bXcyUWJYa3puQlVVWXNJTW9LZ2VteVNvMWJnekxYcEphZnlsSFA1bEpwYkF4Q01SbDNydTNYeERQcHdzRVliWEJDc1hiTUt1ODNPbEtuVEVRUkJheDl3aGpoT0dBd0cvUHpVSjZ6TmFpTzRTVk5OYml5L3hHL1dFQ21yZHk0SWdsYUt6aSsva2xlemFFSEdJR1pmNTNPUDBMSlZhMXEyeXZrVFZxeFlpVi8ySGN6MzJFYU5HdWQ1NDVwTUprWitQTXJsdlhkNjVlUy9xOS9nYWI1ZXZ5SEgreFVxVm1UbTdMbTVmclpPcDJQUDNnUDMxZEFYNUp5M21xOS9Ba0VBdmM1T2FtcEtnU3FWaXFKdzdOaXhmM3plVld1K3VtOXozS3YzZS9UcW5idW0rdXc1ODdPbUt1b0J4N09GbzdwczRhaWd5TElpU1haRVFVU1NCTWZpZ2t5dlRaU2RZYWlqR3FxU3VXbGhhR3NlRUtLalkvRDI4VVlRQkk0ZlAwWlNVaEtLb2xDNlRCbVNrNU01Zi80Y0FELzl1RlVUY3ExWHZ6NC83OXpKOWV1cVdPek9uVHM0ZWZMM2ZNOVR0MjU5dG0vYlJucDZPamFialIrMmJLYStvelNkRjhxV0RTSTZPbG9ydVVmY3lKVDN1NU14L0pNbnZUbExicytON0Vsdnp4dzlnUTk2em5JYkUwQVIzd1JTay9NV3pmYjBMRmpJVzlEOTd1Wm4zYzF6bWp3OG1tVHoxcHc5YmFMajVTRGxVQVJKa2hBRXV5QTdvODRzWHB0ZUMwTVZCU1ZMR0pvV01iZnAzUXBEODBKK2doU3Z2Zlk2WThlTTRvY3RXNmhjcFFvVktsWWtNU0dCd01CQXhvd2J6NmRoMDdCWUxBUStGc2lRb1dwaXNrcVZxdlRyUDRDaGd6L0VacmRSTHFnY2c0Y095M2NNVDlXdFM4dFdyWG0zbDFvd2VQYTVKalJ0Mmt4TGhpNWRzcGlVMUJSa1NXTGYzcjEwNlJyQ1MyM2JNWFQ0Q0VZTUc0S2Z2ejk2dlU0ckh0ekpHUDdKazE0VTVRSS82UjhscEtZa0k0cHlqcDVBZGM2a0J6Sm5xU25KNkVRcDF6N0ZZdjV4M0lqMUp5cFN3Y3ZITDhmWXlwV3ZjTXRGNlo2ZVhwUXJYK0d1amZkQm5CTW9zWDNIcnNyUE4yOTZnaXcwUms2anBobzJCRm1XSGU0YlNMS2dkWFk0SzZSQ2tVQXpGcXRkc0ZwbDdKSWl5S3BZaTg0V3MyQ1NLQW9mM082b0hpWHU5bnVCaStmL0pMaFd3WnMrTDBkVkpqYTVrSHR0YmpiY2pMeEJRS0VrZ2g3TE9aZVhveXNUbTNULzV5eS9NVG05eWFqNFFrVEdCMkNUaktRK29zUXQ2ZW5wUzF1M2JyMEtWUThoR1ZYd0pkMGgrR0lUQkNSUkZHU0RYbENNUmhHVFVhK1lQUXlZelFZOHpTYTh2RXpvbldHb2tvWEpRMUVVVVJTRjV2YzZDZXBHVG5oN0tyZkYxMVVtOER4UjhkVzVHWGtEYng4M05YaHFTaklwS2NuWWJSbVVDVGlYZXlvaDhDeFJjVS9ldHpsemprbXlwMU0yOEd5K0huaFIveVNLK2ljOTRxSThTa1BncXl6aHFNN0I5cUZXUnhFY0MrTkJsaFZGVnB0MkZVbFMxQXFwWFVLZnJTa1hCWVM0eXpPcWNRZGlMYmViQkhVajV3MmcxOWx2NjRJV1JabTZsYzV3T2JveWNZbFdFdUxpeU1oNE5CLzFack1ub2lnVFVOaEcyY2ZPSVFwS250ZHB2VW9udVJKVG1aZ0V5ejJkTTdQWkU1MG9FZUJyb1d6ZzJRTC90bzh5T2FzZ0NOVzNydTlidkhYSHVYOXB4azFCaCtESXNZRWdLS3JOa21YVWJnNUhaZFQ1MHF2VTM5bldobnA3TkxuVFFSWHhUU0FpSWNGdDJPNEFLU21KbFBTN2Zjb2lVYkJUdnNnZmxDL2lsdCs3SGNNUjlOaFpnaDU3T09UMzNIREZVN1dDcWdGL093MmJBam9oYXdGQnpiVXBpcU5OVFhLc1JuRDB0eUU2dkRVQmJXMG9nazRVbjd2VEFSWHpqME9SRW9pNmVZMjBCN0NPN3QrSXROUVVvaUt1Z3BSSVViOS94c1gyYUQvcEg3NDVjeHUxTzRPdnIyY3QxS0tCbnN3Q2dpcjBvdEdwS1lLc0lEaThOa0dXbFN3ZW01T2V5T0d4RGVyWFRDY0lCUCtUSC9LcFNwZTRHZS9EemZnQWtoT05wS1M2ZjZpODRPMEZCcDJWVW9GeEZQRk5jaytJRzI0QUJyMnVZYzNxeFF3bi9valVad2xIUlFSRUJVVUFRVkFVeHhJcnhiRzR3RUc3SnNreWdwZFpKOWpzaWlDcDFWQXgrZnJzcHA1bTQ0L3VxWFhERFRjZUpJNmV1TkxucWVDSnA4aFNIUlVFMGdHcklBZzJRVURXYWRWUkhSNG12ZUxoWWNCc05xSzNTMWtXdml1S2NETXFzZUg5Nm94M3d3MDMzTWpUYXpQb0tnTi9aZzFGRlFWUkVGQTdPQkNRWlFXN0JJSk5SaERzYXNnb2dPRGg0U0hhN1haQlVSUlJVUlNkM1c3ZkpBakM4KzVwZGNNTk54NGs3SGI3Ym9QQk1ER0x4NVlpQ0VJcVlCRUV3U29JZ2lRSWdxelg2eFdqMGFnNDZPNFZzOW1NNkZ3WHFTaUs4T3FycitvRVFXam9ubEkzM0hEalFVT3YxOWN0VzdaczFzS0JWa0J3T0dLdVZFWlpYb0xSYUJRbFNSSVZSZEVsSmlZMjlQYjIzdVdlVWpmY3VQOVFGSVhJeUVodTNveENraVJTVXBJZitUazVkZXBVNzc1OSs1NTFlbXlPVjdvZ0NGYkE3dlRhZERxZG90ZnJNUmdNaXNsa1FwK1Z5Y0xEdzZPdSsvSnl3NDBIWTlTT0hUdUdncUN0aG5EcjhZS3YvMlBsZ1F0a2FmdHdrRTlxalRTQ0lDQUlBcUtvUTYvWG85Y2JNaGVXQW9KT3AzdnEzL2psUTBORGFkV3FWWUgyVFVsSlFSQUVkdS9lZmNmbnExV3JGcE1uVDc3VHZBR2hvYUVVS1ZLRXdvVUwwN3QzYjAwRXhZMUhGNUdSa1NnSUZDMVd3dDNjbmdVK1BqNlZzNFdob3BONE1xdnRVaG1KWkxXZlRaSFZISnR6bmFnZ0NIWGNVM2x2TVd6WU1EWnQyc1M2ZGV2WXRHa1RPM2Z1cEYrL2Z1NkplY1FSRlJYdDF1UE5CUWFENFFseTV0aXlHVFVGbFc1TlFWRmtGRm5XZHVEOCtmTkZnRXJ1cWJ4M1NFMU5aZDY4ZVlTRmhSRWNIRXh3Y0RDTEZ5OW01Y3FWeE1URXVDZm9FWVlrU1hma3FaMDUvUWNEUS92ZjgvR2RPWE9hc0dsVDJPNVFLbk5pNDhadkNPbnlGaUZkTzdrSThrUkhSelB3Z3dHRWRPMUUzejd2Y2ZYcUZXM2JpUlBINmZsMk43cUZkR2IwSnlQejFXWVZCS0hDeUk5SGVlZGozQUFFSEFzTm5NMjZ6cXFvVUtKRWlTZi9LeGZKZDk5OVIvMzY5VEdielhoNWVkRzhlWFBPblhObGV2amxsMStvVnEwYUhoNGVOR3ZXakwvKytrdmJKc3N5WThlT3BYVHAwbmg3ZTlPb1VTUDI3OStmNjdtaW82TjU1WlZYOFBQenc5dmJteGRlZUlFTEZ5NW8yd01EQS9ud1E1Vk45OWl4WTZTbnB4TWNuTG13NDlsbm53WGc0TUdEN3J2N0VVWnk4cDJ0T3FsY3BTcWp4b3k5cDJPYlAyOHV5NVl1NGRMRml5NUc2T3JWSzJ4WXY1NEZpNWF5YlBsS1RwdzR4cEVqNFk1ajV0Q3MyZjlZK2ZrcXVuVi9teW1USm1xcG1Fa1R4akh5azFGOHR2SkxTcFV1bzJsbTVJVm5ud3N1NFRCa0xvU1RqckJVVzRHZ0tsaXBYcHZtMGhrTWh2K0VZZnY5OTk5NTVaVlg2Tnk1TTJmT25HSEhqaDNjdkhsVE15NU96Sm8xaTBtVEpuSDgrSEc4dmIxcDFxeVpwcnd6Y2VKRWxpeFp3cElsU3poNThpUWRPblNnZWZQbW5NMUZIRGMwTkJTTHhVSjRlRGpIamgxRGxtVkNRakwxQkFZTkdxUngwMSsvZmgyajBVaEFRRUJXVjV1QWdBQ3VYYnZtdnJ2ZHlJSFkyRmdHRFF3bHBNdGJkQXZwek9GRDZnUFFxY25ib1gxYlF2dTdwaktHRGZsSTlhSzZ2RVc3bDE3Z3pUZGUxYlpkdkhpUjBQNTk2ZDZ0QzRNK0dNRE5tNUV1eDY3NytpdVgvUUY2dnRPTHNPa3pLUC80NDY3MzJva1RQRlczTHA2ZUtzbXFuNjhmSjQ0ZjE3eXk1NTVUSCtDRkN4Zm16ei9QWUxWYWlZeUl3TU5zSmlpb0hBRCsvdjZjT0o0L3pYbnhZc1hLWkRGcWpqeGIxbkJVeVF4SjFUd2JlbEI3MkhRNlhmWC93b1dnS0FxZmZ2b3AvZnVyN25sUVVCQWhJU0VzV0xEQVpiOVBQdm1FZHUzYUFiQml4UXBLbFNyRjVzMmJlZW1sbDVnOGVUTExseS9YQ2hJREJ3NWsxNjVkekp3NU04Zm5YTDU4bWRLbFMxT3laRWs4UFQxWnZueTVpNUVhTml5VFBUY3RMUTBQRDQ4Y1l6YVpURG5rMDl4d0ErQ3J0YXVwVWFNR0lkM2U1dEtsUzh5Zk40Y0dUemZVTkhuUG56L0h4UEhqWEk2Wk5HVWFvRXBZOW42bmg2YS9ZYlZhbVRoK0xPTW5UcVo0OGVMODlPTldGc3lmeCtneG1jZlhyRlVyaDU1SFhzSkRpWW1KZUhoNEVCMGR6YVFKNDVCa0NSOUhuakF4TVJHVGh3ZmZiL3FPSFR1MllUUWFTVWxKSVNrcENaUEpoTlZxWmU2Y1dkeTRjU09Id2xaMmVIbDdsOHRpMUJ3R1RoRWRGQU9PWGphY3RRSkZVUlJCNzJ4eUV3VGhQMkhZYXRhc1NVQkFBTk9uVCtmTW1UT2NQWHVXWDMvOWxhSkZYWXZualJ0bkNwVUVCQVJRdm54NS92ampENTU4OGtsU1UxUHAxcTBiYjcrZEtaUnN0VnBkam5GaXlKQWh2UG5tbXdRR0J0SzBhVk5lZlBGRnVuYnRtdXZZekdaekRqVWhVQ1hkSG9TTW14c1BQK3JWYjhDY1dUTUFnZnIxR3hBMmZVYUJqcE5sbVRHalI5SG14YmJVcjk4QVVLVWhyMTM3bStGREI2djdLREplMmZRS0tsV3FUS1ZLQmRkS1BYMzZENDZOR0Vyb0I0TTQrK2VmWE15U2hwazBZUndCZ1lHRVRaL0pxeDFlZGpHSUF6OFl3SXN2dmtTSGpxOHlZdGpRZk05aE1CZ3FaTXV0NWN5eG9hQ0FWa0RRWjI2ZzZuL2hRamg0OENETm1qV2pTWk1tTkczYWxOZGVlNDN3OEhDV0xsMmE3MU5Jcjlkak5CbzFyYzAxYTlaUXZicXJyYy9OMjJyYnRpM1hyMS9uKysrLzU4Y2ZmMlQ0OE9ITW56K2Z3NGNQYXk2NkU2VktsU0lqSTRPRWhBUjhmWDBCc05sc3hNYkdVckprU2ZkZDdFWk93MWF2UG5QbkxTVDhTRGlmcjF5QjBXaGt6TGdKdHp4dTJkTEZlSGg0MExsTDVrUFdack5SckZneFZxejg0cTZNclhEaHdtUmtaQkEyZlNhRkNoWGl4SW5qRkhaYzE0VUxGK2FaUm8wMWtYTlZodEtiUW9VS2taU1l5SVNKVTNqODhjYzVlL1pQN1Y3SUM0SWdWTTZTVzh1YVo4dGVRRkNjQlFRUkVLS2lvaW9CcHYvQ2hiQmd3UUxxMTYvUDFxMWJHVHg0TUMxYXRPREdqUnM1SlBXeTVzdVNrNU81ZVBFaTFhdFhwM3o1OHBoTUppNWN1RUNGQ2hXMDE2SkZpOWl5WlV1dUh0djU4K2ZwMHFVTHExYXRZdi8rL1p3NmRZcmpqbHhEVnRTdVhSdXoyY3pldlptcTUvdjI3VU1VUlo1KyttbjNYZXhHRGt5YU9KN3dJK0UwYi80OHc0YVA1TkNoZ3k3U2tibGgzNzY5N05tOW0rRWpQbmFScXF4UW9RSkpTVW44c21lM2xtLzdmcE9yVHVqNTgrZll1UEdiQW8zdHlSbzFzRnF0bUV3bUpFbmk0SUg5MUt5bGFwbldxbFZiRytmUjMzNGpLS2djUnFPUllzV0xVOWpYRjVQRHNkaTNkNjkyVEQ0d0xWNjZQREFYZzZiMXNBRlpQRFpIanMzYjI3dkNmK1ZDOFBmM1orZk9uWnc4ZVpLU0pVdXlidDA2bGkxYmhwK2ZuOHQrNDhlUHAzSGp4dmo2K2hJYUdrckZpaFZwM2JvMW9pZ3ljT0JBeG80ZFM3Rml4V2pZc0NIcjE2OW54b3daYk4rK1BjZjV6cDQ5UzU4K2ZaZzNieDRCQVFHc1dMRUNiMjl2cWxSUkJXMG1UWnBFN2RxMWFkV3FGVjVlWHZUbzBZTytmZnZpNCtPRDBXaWtkKy9lZE8vZS9iNHBucnZ4NzBMbnpsMEpDNXZDMnRXcmtHV1pnWU0rUWhURmZCWGU1czZlU1VaR0JuM2U2NlY5enR6NWkvRHg4V0hTbEduTS9IUTZpeFl1d05QVGs0SFpoSlNQSFQzS2hnM3JhZCsrd3kzSFZyWnNFTzNiZCtEZFhqMVJVSGoyMldCTk8vajlQdjJZUEdrQzY3NytDclBaekpCaHc3WElhUGlJanhrM2JqUTJxNDNTcFVzemVPandXNTZyUW9XS2p3SFhjL2ZZSERvaEdyZWtnaUNLb29mRllobWcxK3NuLzF0Ly9ORFFVUDc4ODA5Ky9QRkhZbU5qNmRtekp6dDM3c1JnTVBEVVUwL3h4aHR2MExOblQ2NWV2WXF2cnk4K1BqNU1uVHFWbFN0WDh2ZmZmOU9vVVNNV0xseElHWWM2dmMxbVk4eVlNWHoyMldmRXhNUlF1WEpsUHZua0V6cDA2T0I0R3RYaWpUZmVZT2pRb1VSSFJ6Tmd3QUMyYjk5T2NuSXlkZXJVWWRxMGFUUnExQWhRMnoyNmRldEdXRmlZbGs4TERRMWx6Wm8xaUtKSXg0NGRtVDE3ZHE1aHJodVBEdmJzMmVOV2Q4c0hjYkd4WVRWclZOK091bWJVK1VvVEJDRURWU2xlRWtWUlhUTnFNQ2lDSUFobXU5MCtVeFRGWHU3cGM4TU50MkY3R0pHUm5yNjZZb1Z5WDJRemJLbFpESnRkRUVSWnB4TVZ2Y0dnNkIzSnVhQi82eGVlTjI4ZWZmdjIvVS84ZUpHUmtUbXF0d1dCTE10Y3ZuS1Z1TGc0SkVraUkvM1JYSHZxWVRhajArbnc5d3NnS0tnTStSR21Lb3JpbUxOWTdQWjdOMmNlWmpONnZaNEEvd0NDZ3NyZWN2L3I3bjdHWENGSlVuRWNUYmxaWDRxaXBoSFY3ZzRaV1FiSkxpRUlndUFweS9KUm9MSjcrdjU5c0Zpc25EaHhBcDFlNzlZVkJWSlRVMGhKVGtLUzdOU3FXUXVqMFpDclVmdjExOThRZGJyN295dnFHSk1zUzlTclc5ZnRzZDBCRkVVNVg2WlU4US9JSkoxMEVrODZxY0x0am5CVTBldjFpck82VU5ZOWRmOU9SRVJHb05QcjNhd1FEbmg1ZVZPMFdBbDBPajAzSW03a3VzOWZsNjhnNm5UM2JjNmNZeEpGSFZldVhIVmZ0SGNBUVJCS1ovUFlzdi9mcFZsWFBILytmRkhBbmJuK2x5STJKdGJOQ3BFTHZIMEtFUk1UbSt1MnVMaTRCekpuM2o2RmlJbDFreDNjYVZUL3llZ3gzdVRaOHVIVWJRRlEwQWNFQkJSM3o5bS8xVDIvYzFhSVI4RnpTMHlJeTNYYmc1b3pMeTl2RXVQajd1allwTVJFTHY5MWtkUjh0SHE5dkx3Skt2YzRoUW9YZm1EemZpL0hXYlZLdFVKQVRDN2Vtdk9Pd05uNm9UZVpURVh2L2czbnBqZ3VLSHg4Q3FIVGlSUXBVb1RpeFcvdkdTTUlrSjd1SnFuTUMrbDVFSGcreU9MS25mNWVmMTI2UUZwYS9nSzlxYWtwWFA3cklqVnFQVGhheFhzNXpzZUtGQ21VM1Z0ekZBOEUxM0JVVWZRNm5lNnVHalkzeGZIdEl6VTFoUnNSa2R5SWlPQ3BPbmYzb3R5KzdTZFdMRjlHVk5STlNwUW93ZWRmcnVIOCtYUDA2SjdKUURKMCtFaGVlS0dOKzRkNGlIRXJZNUgxV3ZxdmpyTlFvVUtGc2hnd1ozT3U0RmdNbnpXU0VmU2lLRDUyTjc5WVZvcGpOd29lb25oNWVSTjFNNExJeUVpS0ZTdDJWejczeG8wYlRKazhrVEhqSmxDdlhuMlNrbFRPcndvVktySjk1MjRBM3VuUjdaNTlyK1hMbHRMdTVmWXVORTNPY2MyYU1aMlRKMy9IYURUUy9QbVd2UGQrSDQxVjR0cTFhOHlaTllPVHAwNWlNcGxvMGFJbHZYcS9sNE4xNG03aVZ1ZDhybkZEREFZRGdpQVNGQlJFOXg0OWFkU29zZnZpdlk4d216MEt1UnExSEMvSDBra0ZVUlRGZ0x0NWNqZkY4VDh3Y040KzNMeDU4NjU5M3RrL3p4QVlHRWlqUm8weEdvMEVCZ1k2UWxnQmh3YWp5MXJDdTQzUFZpd2pMaTVuQW4vMHFKR1VMRldLamQ5dFp2R1M1Unc2ZUlCTm03NEYxSjY4b1lNL3BGTGxLbno3M1dibXpKblBudDI3MkxqaG0zczJ6b0tlYys3OGhYeS9aU3ZkZS9Ra2JPcGtObnl6L29GY0o0SWdVS2RPSFZxMGFFSHo1czBwVWVMMm5JaURCL1lUMHJVVHI3LzZDak0rRGRQV2ROcHNOc0ttVFNHa3kxdDBEK25Ddm4yWmE1cnpZOFM5ZDVGTUtwdSsrNWFoZzFYYUpZUEJtTjFqRTNFVURySkdqRmFyRlZFUWhMdTZTTkdkelA1bm5wdGRrdjd4NXh3L2ZveVgyN1poMnRUSlJFWkc4bkxiTnJ6Y3RnMHJQMXRSNE04NGRQQUFuZDk2ZytiTmd1blJQWVEvVHAxeTJiNW45eTVDdW5iaWhWYlAwNzFiRnc0ZFBLQnQ2OWYzZlY1dXE0YTJId3pvejh0dDI5RDMvWGMxSXhJYzNKU3VJZDB3bVV3VUtWcVV1dlhxY2M1QlNoQVhGNGVmdnorZE9uZkdhRFJTcW5ScEdqVitsai8vUEhQUDV2MTJ6bWsybTJuVXFESERobzlreWVLRitkSmEzeXVVSzFjT25VN0h0bTNiMkx0M0x6VnIxc1JnTU9ScXNMUC9QeU1qbmFsVEpqRngwbFJXcjExSFRFd00yMzc2RVlDdFAyd2hJeU9EbFYrc1p2cU1XY3llK2FubTVlZkZpRnNRUFBIRUU5cEROYjh4WnYwN0ppYUdkM3AwNThLRjg5cnZvTmZyQytYaHFXa3ZXWmJSNi9XSWdOL2RuUFE3cFRoMlEwVks4ajh2dE5TcVZadHZOMjFoUU9oQVNwWXN4YmVidHZEdHBpMkVkT3Rlb09NdlhyakF4eU9IODE2ZnZtelp1bzFYWDN1ZGdSLzBKOHJoVFY2NWNwbng0OFl3Wk1od052L3dFeSs5MUk0Ukk0WnBhbHR6NXM3bjIwMHFFOHFNV2JQNWR0TVc1czVmQ0lBb2luVHEzQVZmWC9XeSsrdXZTeHpZdjU4R0RWUjJrOERBUU9iTW5ZK0hoMW03MEk4Zk8wYU5Halh2Mlp6ZnlUbnIxVytBMVdiVERQTDlSR0JnSURkdTNOQThGRm1XYzVBOEhEa1N6b2hoUTdEWmJNVEZ4ZkZPais3RXhjVVJFUkdCcjY4ZkpVdVdSS2ZUMGFwVmF3NGZQZ1NvckxmUFB2dWM0M2NTTUJpTW5EdDNWdHVXR3lOdUFYTmplWkpWTGx1NldLTUdQM255ZHdiMFYxY1IrZnI2OHNXcU5ZUjB5K1JFMU9sMHVZV2l1SWFocWtjckF2YzhiaHcwTUpUWE9yWW5wTXRiZE8zOEpsczJmNi9sTlY3citBcnQyNzFJOTVBdTkzUU0zVU82Y1BIaXhkczZadHRQUC9KYXgxZDRvWFVMWnMvS20rQnZ4NDd0alA1azVIL0d1RzdldkluZ0prMXAxS2d4SnBPSlZxMWZvRXJWcW14ekNIa0VCQVN5Zk1YblZLdGVIVkVVZWFsdE8yeFdLMy8vWGZEbTB6OU9uYUpGODZhRWRPbEVsYXBWZVM2NFNhNzdMVnd3RDdPbkp5KzBlZkcrZmYrQ25GTVFCUHo5L0VsNUFNbDZvOUdJSkVrRUJBVFF1SEZqWkZuR1pISmxIYXRidHg3K0FRR01HZjBKZ3dZT29QMHJIZkQzOTZkWXNlTEV4Y1Z5NmRJbDdIWTc0ZUhocEtTbzM4SEppSHZxMUVtR0RQNFFvOGxJWW1LaXRzM0ppRHQzeml5TkVmZWY0czIzT3JOcjE4L01tVDJUY1dORzA3ZGZmNmQzbGlPbktnaUNkejY1TlJjanB4Y0U0YjRreEQ0YU1veDY5ZXFUbUpoQXI1NXZVN1dheW4yV0Y3M3h3NEFXTFZ2Um9tVXJ2djVxTFpHUkVZK00xeGdaR1VtRkNoVmQzaXRUSmtpYkEyOXZiM1pzMzhiNDhXTklTVTdKTTZ6SUQ5V2ZlSUp0TzNZUkVSSEJKeCtQWVBteXBmUjh4NVdINGZPVm4zSDQ4Q0htekptUFhxKy9MOSs5b09kVUZJVzQrRGk4SDFEYXhSbU83dCsvbjFxNThKa0pna0R2M3UveHh1c2RLVk9tckdha3pXWXp3NGFQWlBLazhZN2Z0U3llWnJOMjNQZmZieUk5UFoxSms2Y3hlK2FuTHArWkZ5TnVYbWpWcWhYZTN1cjhPUE9BcDArZjV2VHAwOW8rM3Q3ZXZQdnUrM3dRMm84MzMrcEU1Y3A1THlzVFJkRTduekJVTTJvMm13MDljRjg1cVFzWDl1V0pKMnR3OGNKNXlwY3ZuK2QraVlrSlRKNDRnYWlvS094Mkc1MDZkOVhZT00rY09jM01HZE5KVDB1alNORmlEQjAyUW92aGQrLzZtZFdydjhTU2tVSDFKNTdrZzRFZmF2bUhYVC92Wk96b2owbFB6NkJ2di82YWwvRE4rblZxOGxwUmFOcnNmM1RyM3VPVzMrUElrWEErblQ0TlVSQXBXYW9rbnVaTXR0ejh4dEM4V1REOUIzekEwaVdMVUJUNGZzdldoODZ3RlMxYWxNZ0lWME4rL2ZvMWF0ZFdXMUgyL3JLSFZWOSt3WXlac3lsVnVqU2dWZzF6dTdteUd6dExSZ1pidC81QTY5WXZZUEx3b0hqeDRqUnYvcnhMb2hwZy9icXYyYjd0SjJiTm1YZmZHazV2NTV4SGpvUmpOQmlvVlBuK0w3RzJXcTNZN1hhT0hqM3FETkZ5YUdha3BLVHcwVWNENmR3bGhITm4vMlRLNUlrTUhUWUNRUkI0dXVFelBOM3dHVWZ1Yks1R1MxKzRjR0hNWmpOangwMUFGRVVzRmd1RkhmT1FGeU51ZnZqeFJ6VjM5OHd6ejNENThtVXRmSFpKZTF5OHlPUkpFeGc3YmdJcmxpK2xUTmtnMnVUdEtYdGxNMkpaakpxUU5XUkZCRHp2NTQ4U0hSWEZxWk8vVTZWSy9rems1ODZkNDMvTm4yZlppcFhNbWJ1QVdUTm5ZTFZhc1ZxdGpQcDRCS0doQS9uOHl6VTg4MHdqbGl4YW9PVnIxcTlmeDV3NTgxbjV4V29BZnRpeVdmdE1IeDhmVm42eG10Rmp4akYvL2x4QUpkYmJ2SGtUQ3hjdFpjbXl6L2p0dDkvWTlmUE9mTWRtc1ZpWU1HNE1vMGFQNWN2VmF5bFRPbk9wN2EzR1lMZmJpWXFLWXQwMzM3TCttNDBQekhqWjdYYU5CbDJSWmV4MnUyYUUycno0RW52MjdDSTgvREIydTUyZmY5N0pINmRPMHFKbFMwQlZUaElFRUhVNkVoTVR0QnlKSXJ1eUZCY3ZVWUpEQnc5aXM5bUlqb3BTd3lpVGlTOCtYOG5hdGF1eDJXd2tKTVN6ZCs4djFLaFJJek1VL240VDMyN2N3TXpaYys4YkFXZEJ6Mm14V0RoODZDQ1RKMDJnOTd2dlB4Q3RpdWpvYUsyYWJUUWE4ZlgxelNHSWN2SGlCWUtEbS9KV3A4Nk0vR1EwUnFPSnVEalhWUStIRHgxa3g0NXRXZzlqclZxMXNkdnRpS0pJUWtJOEZ5OWVwRkxGU3RxMjNCaHgveWwrKy9VSVE0ZU5vRW5UWm53NmN3Nm4vemlWZyswNnk0UFNuTTJvWlgyR3VwVDM5WUQ1ZnZ3WTA4T21Zdll3WXpRWjZkTzNQNlVkcEk1NW9XYk5XaXhmdG9SdDIzNUVwOU5qc1dTUW5KeE1Rbnc4M3Q0K1ZLMm02aEc4MUxZZFRaczFVMytvdzRlNDl2ZFYzdTM5VHBhbmlrOW0zc0hCN2xtMVdqVXRFUjRlZm9qbm4yK0oyZUdPdi9qaVM0U0hINlpwcy8vbE9iYXJWNi93MkdORk5PTmNwVm8xOXYyeXAwQmpBT2dhMHUydVhCUjNpdXdOdWxNbVQyVEs1SWs4MzZJbEgzOHltb29WS3pGcXpEZ1d6SjlMWkVRRVpjcVdaV3JZcHhRdHF2Ylh0WDZoRGFkT25hUkg5NjdvZEhyYXZkeWVpaFVyRVpkdHVkREFnUjhTTm0ycStpUXVVNGFseTFkaU5CcVpNaldNdVhObThkWGFOUmdNQm9LYk5OV1N4SklrTVczcVpQUjZQVysrM3RFMVRQeHlOY1dLM2YwVmdBVTlaNzgrN3lNSUtuUHNvQThIMzlVK05oOGZud0x2ZS9ueVpYeDlmVFZaeCtQSGorZEk1TmVzV1l1YU5XdHArYXBCV1poeTQrUGo2Tld6QjZWTGwyYmlwQ2s4VnFTSTlydWVPM2RPeTNmM0d4Q3FlYTU1TWVJV0JBY09ITWh6MjJ1dnY2SDlQeUFnZ0k4RzV5dnM0cEZQR09xd2NDS1NKS0VIN3NzZE51akR3UnB0Y0VHd2RzMHE3RFk3VTZaT1J4QUVyWDNBYVo2ZE1CZ00rUG1wVDFpYjFVWndrNmFhM0ZoK2lkK3NJVkxXVmk1QkVQSjhZbVROcitUVkxGcVFNZVRIRTNZMzBiSlZhMXEyYXAzai9Zb1ZLL0hMdnZ3Rm1oczFhcHpualdzeW1SajU4U2lYOTk3cDFUdkhmdlViUE0zWDZ6ZmtlTDlDeFlyTW5EMDMxOC9XNlhUczJYdmd2aHI2Z3B6elZ2TjFOOGFRbXBwU29GWXA1K3FlTzRXZm56L3Jjb2tXc2h2QXJBZ01EQ3l3UXRiZFJFQkFnRlpoejhWV0NkbnRnU0NBVHFlMmV6dzQxeUZmZHpzR2J4OXZCRUhnK1BGakpDVWxvU2dLcGN1VUlUazVtZlBuVldYM24zN2NTdGkwS1FEVXExK2ZuM2Z1NVByMTZ3RHMzTG1Ea3lkL3ovYzhkZXZXWi91MmJhU25wMk96MmZoaHkyYnFOOGhmV0tWczJTQ2lvNk8xbkVGRWx0ekJuWXpobjhCczlzU04yNXViQnpsbmVaMjdTSkVpcE9XenB0clRzMkFoYjBIM3UxZTR4K00wNXVLcENVbzJyODBaaXVvZTFDVGtKMGp4Mm11dk0zYk1LSDdZc29YS1ZhcFFvV0pGRWhNU0NBd01aTXk0OFh3YU5nMkx4VUxnWTRFTUdUcENEUW1yVktWZi93RU1IZndoTnJ1TmNrSGxHRHgwV0w1amVLcHVYVnEyYXMyN3ZkU0N3YlBQTmFGcFV6VzAzZmJUanl4ZHNwaVUxQlJrU1dMZjNyMTA2UnJDUzIzYk1YVDRDRVlNRzRLZnZ6OTZ2VTRySHR6SkdPN1hrLzVSUW1wS2NwNWV0ZmlBNWl3MUpSbGRIcFhXNHNXTEV4RVJRZlROQ0R5OWZYS01yVno1Q3JkY1lPN3A2VVc1OGc5V2wra2VqMU9YbThlV1c5NU5VRzRWZDkwbWpoNDlTcEZpYm8zTU8wVlU1SFhxM01aQytNdVhyeEFiRitkZW01c05OeU52RUJnWVFObGNjcm1YcjF3aE52Yit6OW5OeUJzRUJBUVFWRGJ2L0hKVVZCU1JrWkhZN1hhU2s5MnNPTm5ScEVtVDlrQWFLb051RXBtaUxoWTA3UU5CdnV2TlFXNFA0cDg5MFcrM1g2dHMyVEpFUjBjam50cVBBQUFnQUVsRVFWUnhNL0tHbXhyY01ZY3BLY2xJZG51dVJnMGdxR3hab3FMdTM1dzV4eVJMVXI1R3pSbVNGbkVrODkzSUZkbkRUc0daWXhNRVFWMTFJSXFDb0NpS2hMcEU0YTRnSWlLQ3lNaWJQRmJVelY5NSs5N2FEVXFVS0g3YjdCNktvdkRYNVN2RXhjVWkyV1V5TWg1TmpqYXoyUk5ScHlNd0lKQ3laVXZmY29IL2xTdFhpWTZKUWJKTDkyek96R1pQZEhyOUxUMDFOd29FV1JDRWprQnFGbzh0UlJDRVZNQWlDSUpORUFTN0tJcUtvQ2lLRlREYzdYQlVFSFY0ZVhuajZmYmNib2swaDlnSEtMY1ZocnJoeGlNR215QUlyMmN4Yk1sQXNpQUlhVUJHVnNPbUIrNjZZYXRUcHc0M2I5N2tabFFVeVVtSmJnYmRmT0R0NDROQnI2ZFVxWkx1RU1RTk4vS0h0YUE3T2czYlhhOFJGeTFhOUk0ME10MXd3dzAzQ21qWWxHei9haENCZFBkOHVlR0dHLzhDWkJUWVk3dHk1WXBiRGNRTk45eDQ2S0VvU25vdTNwbWlPQlJkbkoxcmlxSW8rckpseTZhNnA4d05OOXg0MkNITGNtcVcwRk16Y05uYlBRUkJRRlFVeFUxNTY0WWJidndiUExic3pKWkt0djlyZit0UmUwSGNjTU9OQjMvanV2VjQ4NEhkYmsvSllzQ1VMS0dva2pVVWxXVVp2YUlvQ2ZkU3FjZ05OOXdvbUZGejYvSG1ENHZGa3B5YngrWnF2ekpEMGJoSGJZSktsU3BGdFdyVmNoV2o4UGIyNXJQUFBydVhUeDFDUTBNcFVxUUloUXNYcG5mdjNwb0lpaHVQTHJMcThicVhJK1o1N3lSbDg5Z1VjbW4xQU5Xd3hUNktrM1RtekJrbVRacDAzODg3Yk5nd05tM2F4THAxNjlpMGFSTTdkKzZrWDc5KzdxdjJFWWRiai9mV3NGcXRTVms4dFZ6eWE0TEtyU2lBS0VsU3pLTTRTZVhLbFdQaXhJbWNPWFBtdnAwek5UV1ZlZlBtRVJZV1JuQndNTUhCd1N4ZXZKaVZLMWNTRXhQanZuSWZZZHlwSHUrWjAzOHdNTFQvZlhBRVRoTTJiUXJiSFVwbFRtemMrQTBoWGQ0aXBHc25saTlicXIyZm44RHlpUlBINmZsMk43cUZkR2IwSnlNTHJNMmFucDZXakd0VGJyYnFxTk5mQTlGbXM5MThGQytrM3IxN1U3MTZkZDU1NTUxOEdYUFhyMS9QazA4K2lkbHNwbnIxNml4ZHV0UmwrODgvLzB5ZE9uVXdtODNVcTFlUHNMQXdGM0hZd01CQVB2eFFaZE05ZHV3WTZlbnBCQWNIYTl1ZmZmWlpBQTRlUE9pK3V4OWgzS2tlYitVcVZSazFadXc5SGR2OGVYTlp0blFKbHk1ZWRERkNWNjllWWNQNjlTeFl0SlJseTFkeTRzUXhqaHdKZHh5VHU4Q3kzVzVuMG9SeGpQeGtGSit0L0pKU3BjdG9taG0zUWxKaVVsNmhhSTRWQ1BxTWpJeW9XNm5OL0JlaDArbFlzbVFKRFJvMFlOR2lSYno3N3JzNTl0bTdkeStkT25WaTl1elp0R3JWaXFOSGo5SzdkMjkwT2gzZHUzZm40c1dMdEduVGhyNTkrN0ptelJwKytlVVgrdmZ2N3lMd01XalFJR3JYcmczQTlldlhNUnFOQkFRRWFOc05CZ01CQVFGY3UzYk5mWGU3a1FPeHNiRk1uRENPbU9nb0JGSGt2ZmY2ME9EcGhpNGtyYjYrZnF4WStVVm11bVBJUjl5NG9USTRKeVFrNE9ubHhacTE2d0JWRldyT3JCa2tKaVhpNytmUDRLSEROQzBMZ0hWZmY4V0dEZXUxL1FGNnZ0TUxvOUdvTVZVNzhmdUpFenhWdHk2ZW5wN1k3WGI4ZlAwNGNmdzQ5ZXJWNThTSjQzend3U0RBVldBNTZ1Wk5QTXhtZ29MS0FlRHY3OC9QTzNjVWFDNXVSdDFNTG9CUlV3RDBFUkVSRVhuSnovL1g4ZFJUVHhFYUdzcVFJVU5vMjdhdHBuM294SVFKRStqUm93ZTllNnQ4L21YTGx1WFNwVXRNblRxVjd0MjdzM0RoUXFwVXFjSzBhZFBVcDJmbHlwdzhlWkxWcTFlNzVOU2NTRXRMdzhQREk4YzRUQ1pURHZrME45d0ErR3J0YW1yVXFFRkl0N2U1ZE9rUzgrZk5vY0hURFNsVnFsU2VtcnlUcHFqWFkySmlBcjNmNmFIcGIxaXRWaWFPSDh2NGlaTXBYcnc0UC8yNGxRWHo1ekY2VE9ieE5XdlZ5c0U4bkpmd2tGTmdPVG82bWtrVHhpSEpFajZPUEdGV2dlVWRPN1pwQXN0SlNVbVlUQ2FzVml0ejU4eml4bzBiT1JTMjhnNjdUenZiUGVTOFBEVm5NQ3JXckZreml0dFlnL1ZmdzlpeFl3a0lDS0J2Mzc0NXRwMDZkWXBseTViaDdlMnR2VWFPSE1tRkN4ZVFKSW5qeDQ5VHY3NnJRRTJqUm8zeVBKZlpiTTYxRW11eFdCNklqSnNiRHovcTFXL0F6aDNiV2ZuWkNpd1pHUVVXVkpGbG1UR2pSOUhteGJiVXI5OEFVS1VocjEzN20rRkRCOU05cEF1clYzK3BxYlU1VWFsU1pWN3AwTEhBNHp0OStnOUdqaGpLTzczZnBXbFRWMlczU1JQR2NmbnlYNFJObittaVZKK1ltTWpBRHdaUXJWcDErdlVmVU5CVFpVd1lQell0bjFCVU0zU0NvRGJvQWx3RktqMktGNDZucHljTEZ5NmtaY3VXYk56b3F0eGp0OXNaTkdnUWI3LzlkbzdqUkZGRXI5Zm5FQVRPTDE5WHFsUXBNakl5U0VoSXdOZlhGMUJWcTJOall5bFowazJuN2tZdWhxMWVmZWJPVzBqNGtYQStYN2tDbzlISW1IRVRibm5jc3FXTDhmRHdvSE9YcnRwN05wdU5Zc1dLdVlTdC93U0ZDeGNtSXlPRHNPa3pLVlNvRUNkT0hLZXc0N3JPUzJDNVVLRkNKQ1VtTW1IaUZCNS8vSEhPbnYxVHV4ZnlnNklvZjJjellISVd6eTNuL2FrZW8xeDVsQytlRmkxYTBMbHpaL3IyN2F1SkNBTlVxMWFOa3lkUFVxRkNCZTExNE1BQlpzMmFoU0FJUFBua2t4dzVjc1RsczdML25SVzFhOWZHYkRhemQyK202dm0rZmZzUVJaR25uMzdhZlJlN2tRT1RKbzRuL0VnNHpacy96N0RoSXpsMDZHQ09oMmwyN051M2x6Mjdkek44eE1jdXphc1ZLbFFnS1NtSlgvYnMxdkp0MzIvNnp1WFk4K2ZQc1hIak53VWEyNU0xYW1DMVdqR1pURWlTeE1FRCs2bFpTOVV5elV0Z3VWang0aFQyOWNYa0NHLzM3ZDJySFpNZkpFbTZuczJvNWVHdHFmMGVla0NSWmZseVhvbytqd3BtekpoQjFhcFZYWEpkUTRZTW9WV3JWb3dlUFpwT25UcHgrdlJwK3Zmdno4Q0JBd0hvMjdjdnMyZlBadWpRb2J6OTl0c2NPblNJQlFzV3VJU1ZreVpOb25idDJyUnExUW92THk5NjlPaEIzNzU5OGZIeHdXZzAwcnQzYjdwMzczN2ZGTS9kK0hlaGMrZXVoSVZOWWUzcVZjaXl6TUJCSHlHS1lyNEtiM05uenlRakk0TSs3L1hTUG1mdS9FWDQrUGd3YWNvMFpuNDZuVVVMRitEcDZjbkFiRHFpeDQ0ZVpjT0c5YlJ2MytHV1l5dGJOb2oyN1R2d2JxK2VLQ2c4KzJ5d3BoMmNsOEN5WHE5bitJaVBHVGR1TkRhcmpkS2xTek40NkszRmwyMDJXMFF1SHB1aXF1KzVlbTJDZ0NJSWd1Q2RrWkhSejJnMFRueFVMcFpTcFVvUkdocXF0V0U0OGNVWFg5QzFhMWRXckZoQnQyN2RBRmkxYWhVVEowN2t3b1VMRkN0V2pKNDllekp5NUVqdFNmalRUejh4Y09CQUxseTRRTzNhdFduUW9BSHIxNi9YZEVVREF3UHAxcTBiWVdGaFdqNHRORFNVTld2V0lJb2lIVHQyWlBiczJia1dGZHg0ZExCbnp4NGVyMWpGUFJGNUlDWW01dFBhTlovNEJWZGE4QlFuTFRncWJiZ2tpcUtzMCtsVnc1YVVsTlRHMjl0N3JYdjZiZzhuVDU0a0xTMk5CZzBhYU8rTkhqMmFIMzc0Z2ZEdzhQczJEbG1XdVh6bEtuRnhjVWlTUkViNm83bEV5OE5zUnFmVDRlOFhRRkJRR1VSUnpDOW40NWl6V096MmV6ZG5IbVl6ZXIyZUFQOEFnb0xLdWczYkhlTHNuMzhPYS82L0pxZkpLZVNTRGppazkwUkpGRVZacjljcGVrQ0pqNCsvK0NqMHNrbVNkTnZ5ZHZuZEdCY3VYS0JMbHk2c1dyV0tXclZxY2ZMa1NlYk5tOGZ3NGNQSmpQY0xqc2pJeU51bVU3ZFlySnc0Y1FLZFhvOVBvY0p1K2IzVUZPSVQ0b241TFpwYU5XdGhOQnB5L2UxKy9mVTNSSjBPYjU5N1AyZXBxU25FeHNVUkhSTk52YnAxODkzM3VydWZNVmNjT25nZ2xzeUNnVlk0Y0RCN09FSlJCUVVGV1pZUkJFSHdCSXovWisrNzQ1dW8vLytmZDVkY2R2ZW1wWVcyREZHZ1NBRS9GQkYvYkJ6Z0YwVUZSQ3hZa0NFZ0loUVVGR1FyUWdzaVU1Q2xJR0paQXJKa3lpcFlobXlRMHFicGJ0T1JjWGUvUDI0MFNkTlNvR1htOVhoRWFkWmQzbmYzdk5kOFBsbVcxUU5RdUpidzdtenExS2xZdkhneDB0TFNFQndjakxpNE9Jd2VQYnBTYjZFNjdXR0ovejdxeG9zVGV5RXN0THlYZE8zNkRlVG01ajRVd1dRZmIyK0VPcEhoYzNsc2xkKy9RMm9GOUFFdlkyQjBDRVZMQUpnRm9XU0dKRWxPSnBOeEpNcVNjUmRjNjNmM0ZoOGZqK3ZYcjhOa011SHExYXNZTTJiTUF3TTFBTWpPeW5ZTlR6c3hyYzROV1ZuTytSMXljbklleXBwcGRXN0l5bmJOQk45RHF1VWk3RnM4YkZzOTdJc0hJb091NkoyekxIdmV0WVNQbDNIY3ZROVBQK21tMFdqQnNreUZLWW1Ic1dZYWpSYU1sWEVkbkxzMGk4VnlGZVg3MXh6NzJIaDJEd0hjWkFSQmNCekhjVmFyOVh4Rm94TXVlelNOSUlDU0VoZVhXMFZXVWdIUDNjTXNydHpyOFNySXo4ZU42MWRSVkdTc0ZEakQ2b1REemQzOW9mMittdGhQbzdId3BoTkFLK2V4RVVTWjdvRk1mS0drcE9TY0M5Z3E4NDU0Mm1hRHdRQXJ3OEJZV0QyMHpWcXREaks1REg2K3ZnZ01ES3oyL2Q2MWN3ZVdMMXNLZ3lFRFFVRkJXTGxxTFM1ZnZvVFkvdjJrOTR5Tm40Q3VYYnU1RHZJamJOZXZYVUZ4Y2VYMFBrVkZSdHk0ZmhXTm16WjdvdmJ6OXUyMDJ3NkF4Z0JnaGFKQnVZY0liQURBWGJwMDZWeDBkTFRyREtvQTFKS1Rrd0dDaEVhcjQybWJBNnJ2KzR1S2pFalhaeUE5UFIzTm1sWGZTWm1XbG9ZWjA2Zml5OGxmSXpxNkJRb0tlR3FjaUloSTdOcTlEd0F3TVBiOUdsdTNaVXVYNFBYdVBlellUTVQ5bWp2bkc2U2svQU9hcHRHK1F5Y00vbWlJTkh5ZG1wcUtoTGx6a0hJMkJRcUZBaDA3ZHNLSGNZTlJrMDNrZDlybWl6RXZRQzZYZ3lCSWhJV0ZvWC9zQUxSdUhmUEF6c0U3Z1lYdHVmUXdyU2IyYy8rK3ZSa0NhREVpcU5sN2JieVhCbHVWS2hIbFdyWnNtUVhnc2d2R3lwdGVyd2NJRW43K2dUV1NtOUZvdFBEekR3UkFJRDA5dmRxKzkrSy9GK0RqNDRQV3JXTkEwN1RFRTBjUUJCUUtCUlFLQldwUzcrTEg1VXVSazFNK2dUOXA0Z1RVQ2c3R2I3OXZ3YUxGeTNEMHlHRWtKVzBDd1Bma2pSMHpHdlhxTjhDbTM3Y2dJV0VCOXUvYmk5ODIvbHBqKzFuVmJTWXVXSWpOVzdlamYrd0F6SjQ1SFJ0LzNlQzZPR3JlcWJneWM4YTBrc3JDVUlJUVFsSFloNklRM3NDeUxIdUtKTWxJMTNMYW04R1FDWTFXVitQYjBlamNZREFZN2pza1BYMDZHWk8rbUFDejJZemk0bUowZjQwUE0zdTgwUlA5M3U5ZnBlODRldVF3RWhQbVFhOVBSMmhvR0VaOThpa2FQZnVzN1YwVXk1WXRRYWJCQVArQUFNVEZEVWFyRi80SEFCZzI5Q1BjRWhoVFIzNDhIRElaaGVEZ0VDUXVXQWlXWmRHMmJUdDBlK1VWS0JRSytQbjdvM2wwTkM1ZHZBaUFyMWg2ZW5taGQ1OCtvR2thd1NFaGFCM1RCdi8rVzNORis3dlpwa3FsUXV2V01aREhUOERFTHlhZ1UrY3VqeDB6QzhNd09IcjBDTFlrL1k0aFE0Y2pPQ1FFQUQ4a1AvZTdiNUh5enhtUUpJWFlnUjhpSm9ZblFzM016TVMwcVZPUW5aMEZuYzROWXo0Ymk5cTFReXZkRGtFUWlJcUtnbytQRDFpV3hmbno1NUdXbGxibC9Weng0M0w4c1gzYk9XZGhLQUNXNHppMkxMOUdjQ0FJdmtHOW9FQXFIZ0FBWjdGWWtoVUtSUzhYbE5tYmxiRStrQ3FhUnFPRnNTRHZ2cituYWRNb2JFcmFpaDEvYk1mS0ZUOWk5ZHFmNytyelY2OWN3ZWNUNGpIcHF5bG8zandhZS9mc3hxaVJ3L0hUcXJYdzgvZkh6WnMzTUdYeWw1ZzdiejRhTkd5SVRiOXR4UGp4NDdCNXkzYW8xV29rSkM2UXdyYzVjK2NoTXJLTU9JWWtTZlR1MDdjc0ozUDlHZzRmT29TUGh2QzBVVDQrUHRMblJXL3FkSEl5WHUvZW84YlcvVjYyR2QyaUpjd1dDeTVkdklpb1pzMGV5Zk9XWlZtcDljajIzeDhQSDRwYXRXcmh3b1h6WUd3cXg5dTNiVVZwYVNsVy9MUUdPVGs1R1BSaExCbzNiZ0kzTnplSkVmZVZWMS9EaVJQSE1XUGFWTXovL29kS3QxK25UaDFRRklXZE8zZENvVkRnNVpkZlJtWm1KaXdXaTlOOXRQMDdKZVVmN04rM0Y3Tm1mM3ZsaFZiUmptR29iWTROSW9BUkFqaHJ0VnErM1VOTXdoVVVGSnh5d1ZoNXE2NUNRWlcyWlRRKzlOKzdaVXNTMnI3VURxMWJ4MENoVUtCemw2NW8wTEFoZGdwODk5N2VQbGkyZkNXZWFkUUlKRW5pMWRkZWg4VnN4cTFiLzFWNUcrZk9ua1hIOXUzUXIyOXZOR2pZRUMrMmZjbnAreForUHg4cXRScGR1NzN5d0g1L1ZiWkpFQVM4UEwxZ0xESStrdWZzOGVQSE1IN2NaN0JZTE1qSnljSEEyUDdJeWVFRjZiNmRNeGZqNGllVXUxbWZPWE1hYmRxOEtOeUFDTWpsTkM1ZHVpaTk5dUtMUEtXOUxTUHVuVzRZb29mR2NmeEVnS2VucDkxN2xpNVpKRkdEcDZUOGc0K0g4emU0SzVjdm9XbFVGRzd4cnIrdHQ4WTRDVWZCY1p3RWNISTViZGVneTczMTFsdW53SGYydXF3U08zUG1ORHAxZUJsNWVibVNoOU92Nzd0UFZFNHhNTkMrSzc5MjdURG85WHorVDZ2VjR1VEpFNGo3TUJhOTMrbUY5OS9ySTkxdHEycU5ubjBXTy8vY2k1L1hiMFI2ZXJxZEVJaG9LMWY4aUwvL1BvcXBVNmRYMnlqY25heXEyK1E0RGptNU9kQStvajJFelp0SHc4dmJHMTlPK2dLZmpQb1lQZDc0UDRsQjVrNk11R2ZQcHVDek1hTkJLMmprNStkTHI0bU11SWtKY3lWRzNNcU1wbWt3REFOdmIyL0V4TVNBWlZrN3dra0FlT2ZkUHRpN2R3OFM1bjJIeVY5T3d0Qmh2REJOM2ZBSW5EeHgzRGgweUVjWkRpR29IYkFKWUZaTzFJVVVrc2NjQUhiLy92MHN4M0ZIWGRCMVp5c3BLY0dhMWF1ZnlOL203KzhQdlVNUjQvYnRWSWtiLzhCZis3RjYxVS80L1BOSldMMzI1d3BEWFlJZ3lvR2RxYlFVbTM3YkNGTXBUOW9jR0JpSTl1MDc0TXlaMDNidjI3RCtGK3phdVFOenZrdDRZSDFaZDdQTjQ4ZVBnWmJMVWE5Ky9ZZHlmRHAyN0NnOUhGbWN4YldQaXh1TVV5ZFBRRUVycXV6eGJ0NmNoT1hMbG1MYTlGa0lkY2loVmNTSWU2ZHd0R0hEaGpoMDZKQlVsYmMxclZhTFFZTSt3dnBmZmthN2wxOUcvZnI4V0ZtVEprM1J2a09ua3daRFJtV2d4cGJOaVlyQktLL3pRTUtlTjV5MVdxMHVZS3ZpQWR1N1o3ZmszdHZhdnIxNzhPSEFEOUN2Nzd1WU9XT2FsRk5JUzB2RG9BOEhvUGM3dlRCcjVuUXBxZjlROG9aV3EwU3F5YkVzckZhckJFTGRYbmtWKy9mdnhiRmpmOE5xdFdMUG50MDRkellGSFR0MUFzQUxqQkFFUUZJVTh2UHpwRkNDWSszSlRBT0RnbkQweUJGWUxCWmtHZ3o4WFZ5aHdFOHJWMkRkdWpXd1dDekl5OHZGZ1FOL29YSGp4bVdoOE9Za2JQcHRJNzZibC9qQWVPcXF1azJUeVlTL2p4N0I5R2xmSTI3UVJ3K2xjSkNSa1lHZE8zZEtEMmRNTWthakVaOStPZ3A5K3ZaRFFFQUFaa3lmV2ltN3N4aGllbmg0WU5ic2IrSGw1UVdUeVFSM0FlQkZSdHhodzBkQUxwZExqTGlWbWRsc2hzbGt3c0dEQjJFeW1VQlJWRGx0ajZ0WHIyTDZ0Sy94MWVTdmNmVElZV3pkdWtWNjdkVlhYenZySkF4bGJITnNvbU5HRUlTVXEzTnpkNGRNS0k5eW9sdFhXRmg0ekVWNmVHZFRxelhvMktrTFZxOWFpUzVkeWdEcSt2VnIyTEJoUFJJU0ZrQ2hWR0xtakduWXRuVUxYdS9lQTNQbmZJUDJIVHFpNTV0djRkamZSM0hvNElHSHN1K09EYm96cGsvRmpPbFQwYUZqSjN6K3hTUkVSdGJEeEM4bjQvc0ZpZENucDZOMmFDaG16djVXOHRpNmRPMkdzMmRURU52L1BWQ1VESzkzNzRISXlIckl5YlVIK1ZHalJtUDJySmxZdm13SmF0ZXVqU1hMVm9DbWFjeVlPUnVKQ1hQeDg3cTFrTXZsYVB0U08vUjduNmRmWnhnR3MyYnlZZUE3dmV5NTkxZXVXb09BZ09wdllxN3FOb2NOK1FnRXdSTXNmako2ekFQdFk3dGJ1M3IxQ3RxMmJZZDNlL2VCMVdyRjNPL21JQ2NucDF4UG9hMDFiUnFGYytmT2dpUko1T1hsNHVyVnE2Z25GSDRxWXNTdHpESXpNKzNDWHc4UGozTENMU2RQSE1mWWNlUHhmUFBtZUs1eEV5eGJ1aGhkdTNZRFFSQzRkdjNhdFlwQURRNVRCeVJKUVNhallEWURGRW1WVFI2SUh0dEhIMzEwZE4yNmRma0EzRjN3VmJtOThYODkwYTl2YjRrMUZBRCsvdnNvVW0vOWgwRnhBNlc3bGxab0ZVbEorUWNUQlVXZzhJaWE3NnJwMUxrTE9uWHVVdTc1eU1oNitPdGc1VHFtclZ2SFZIamhLaFFLVFBoOG90MXpBeitNSy9lK0ZpMWI0WmNORzhzOUh4RVppZS9tSlRyOWJvcWlzUC9BNFFkNkhLdXl6VHV0MS8yYVRsZTk3VVJObWpSRmt5WTg1YlpNSnNNbkRreTV6cXhMMTI2NGRPa1MrdmZqcTliRFBoNGhoZVFWTWVKV1pqZHUzSUNIaHdmYXQyOFBBRGg5K25TNWdzTmJ2ZDZXL3UzdDdZMVB4NHlWVW41eEEyTlRuWUlhUWJEZ09KWVRqQ1JKamlRSmppQklhTFZhTGpjM2gvZlliSE9pdi96eWkzWE5talVIU0pKOHhRVmRGUnRCRUZDcFZIaWpaMCtzV2xVbWptRXhXOUQycFhhUzVKbGp3cmttRzJKZDl2Z2FSVkVvS2pJKzBPRjh4OXhvWlFEbzQrTlRaWVVzMi9NOU9UbjVudmJOWXJIOHJkZnJiY05RcXdodUJBOXVuRFJsUUpJZ0NCSWtTWUJXS09EdTdzRVhEeHhtcmxpTHhYTFFkYXJkR2RnQW9FZjNOM0E3OVpiMGZIU0xGdGl6ZTdkRURiNTc5NTlJU2ZsSGN1ZTNiOXZLaDROQ0dmMStUYVZTdXc3R1hhN053MXl6aXJidDUrZUhZbU5ocGFtUHFxWklIbmFLcGpyZWw1dWIrMDhsWWFoREtDcU1VcEVrU0lJRVNaSlNWUlJDSW80RndHVmtaTGlBcllxbVVDclJwMjladnFwQmc0WVlOdnhqakIwekdtLzM2b2svZCs1QWNIQXdBR0Q0aUZIWXVlTVA5SDZuRjdadDJ3cXlHbVlmeFR1OXkreXR5RmhZNFd3cCtaRFdyTWhZQ0txQ0ZwTEF3RUJ3SEl2TWpIU24rMWFuYnNRZHdVQ3QxcUJPM1lpSHV1N1Z0WituVHA2NDZnVFV4RWVabUF0QjhJVXNraWdETlpJRW9WS3BDS3ZWU3JBc1MzSWNSM0VjSndlZ1lGbDJINEJuWFpjSWNQTFVLZmdIM0wvdTU0VUw1MUdyVmpEYzNOeXdaODl1Yk4rMkZiTm1mMnYzbmd6OWJUeC9GNTNzTjI3Y1JIYU9pMEhYMFRMMGFmRHg4VVpvN2ZKc3RRK0xkWmhuOWZWR21CTUdYZEVNQmdQMGVqMnNWaXNLSDJCaitLTmtITWVkYjlldTNTVHdJaTIyNGkxRkFJb0pnaEEwRGdpR0lBaVdKRW1Pb2lqUU5NM1JOQTJGUWdFWkg1OUtlUjhwSExWYXJYdGtNcGtMMkFESXFpbi9VVnBTaWpHalIvSEs3MW90UGhzN3J0d2RYUzZYMzlWM2hvYldSbWFtQVJuNk5HaDFiaTdOQTJNaGpNWkNNRmFyVTFBRGdMRFFVQmdNRDI3TnhIMWlHYVpTVUJORFVqOC92NmY2R0JZV0Z2NE5KN2sxQUl3WVZZcXRIaFJGUVM2WGc2WnBLSlZLS0pWS3FGUXFFRnF0bHJCWUxBVERNQVRMc2hUSGNSUUFPaXNyNjJVdkw2K05MbGdEMHRQVGthN1BFQmc0YXM0TUdla0lEUEMvNnlGNGp1TncvY1pONU9Sa2c3R3lLQzE5T3NrblZTbzFTSXFDajdjUFFrTkQ3bGlvdVhuelAyUm1aWUd4TWpXMlppcVZHcFJNZGtkUHpXVmxkdUxFaVUram82T3ZBaWhHbWNhQmtTQ0lJc0dMTXd2NkJneEZVWnhjTHVjVUNnV1VTaVduVkNxaFZxdEJ1TG01RVdheldRUTIyM0JVeWJKc01vQmFycVVHVHAxS0JrRVEwR2gxVUZmekhiNjR5QWhqWVFFQXJscjUyRnptc3Njd0RFMGpTWEtrVFJocUMyd2xBRW9KZ3JEUkVLVTRtcVlsWUZPcFZGQ3IxWHdvU3BJa3h6Q01iU2pLQVdBWWh0bEJVZFFIcnVVR21qV0xRbnA2T2d5R1RCUVc1Rlhic0xwT3A0Tk1Ka05RVUNBQ0FnSmNDKzJ5cDlwS1NrcitnbjAxMUM0VWRjQW9vWWVOeHpDU0pFRlJGQ2lLS3N1eGlXMGZ3bEFwQzRBdExDejgwOFBEd3dWc2dnVUdCdFlJZmJmTFhPWXkzcTVjdVhMR0FkU3NBS3dFUWRpMWVoQU9mV3dpb0luL0pzWHlxRGhuWmRQVHhucDVlZjBKNExacnVWM21NcGM5aURDMFNaTW0xd1h3c2pvOEdGdFFBd0JiN0xJRk40cWlJR05abHVNNHJveHQwc1pqQThCZXUzWnRPMFZSQTF6TDdqS1h1YXlHdzlCOWpwNmFBNmlKekxtY0dGMEtQRzhjd3pCZ0dBWldxeFVXaXdVeWhVSWhrclJKMC84QzJMRUFHSGQzOSszZTN0NHVZSE9aeTF4V28zYjgrUEhrU3NKUWlkRkQ5TkJrTWhua2NqbUV3Z0hFd29GV3F3VnBHNXZhY0xOSjRhaXZyKzlCdUZUaVhlWXlsOVZzR0hxeFJZc1cvem1BbWdVVk1IbzQ1dGFrRUZRbTR4ODJGUVdDSkVtT1pWbENpR0ZGc1FUR2JEWnZwbW02b1d2NVhlYXlHcjI0b2RmcmtaRmhBTU13TUJxZm5zbUR3c0xDZmJCdnlwVWVITWVKamJraXdTUllsdVVzRmd0c2RBL0FjWndVanNwc1BUYkJhK09JTW9VWEZnQ1RscGEyTFN3c2JJenIxSE9aeTJvTzFKS1RrOEdCa0tZaC9KK2kzNzl6eHg5bm5IaHJWdkRUQm5iRWtpUkpjcFJNQmxwT1E2R2dvVkFxb1ZLcW9GS3JvRkZyb05QcHlrSlJXM0J6REVmcjFxMTdubVhablUvYVlpWW1Ka0twVkQ3UWJWcXRWb3dZTVFKK2ZuNXdkM2RIWEZ3Y2lvdUxYVmYyVTI1NnZSNGNDUGdIQkQxMVkzRldxM1Z2N0Fmdlo5c0FtOFhCYXlzZmhvb0Q3N1poS0NXRFRDNkhYQzRIS1pQSlJGRGpiRHcyem9idGd3WEFGQmNYSjdsT3YvdTNjZVBHSVNrcENldlhyMGRTVWhKMjc5Nk5ZY09HdVJibUtUZURJUk5hbmR0VCtkdlQwOU1PT1FsQkxhaTRmMDFveGlVNWloU0FUY2JuMStReUdlUTBYUmFLT2hZUkNJS3dhLzFJU0VqWVBHN2N1TThBaExoT3czdXpvcUlpeko4L0g2dFdyVUxidHJ5VTJhSkZpOUN4WTBmTW1ERkRVbXAzMmRObkRNUGNrNmQyNGZ3NUxGNzBBNzc5Ymw2Tjd0K0ZDK2V4ZGN0bU5HblNGQjA2ZHBLZS8rMjNYN0ZwNDY4QVFhQnQyM2I0SUpadm9LaE1ZUG5NbWROSW1Qc2RySXdWWWFGaHFkZXVYNy9nNEsxSllhaUlQNDROdVNSRmdpUWR2RFdoU2tyVGRKbkhaaHVLaXVHb2pkZkdqQjgvdnNSaXNmejZ0SjF3YTlldVJaTW1UYUJTcVZDM2JsM01tMmQvQXUzWnN3Zk5taldEU3FWQ2RIUTBacytlYlFkUVBYdjJSUFBtelFFQXljbkpLQ2twa1VBTkFOcTA0Wlcyanh3NTRycTZuMklyTEN5NHA4L1ZiOUFRRTcvOHFrYjNiY0g4UkN4ZHNoalhybDVGVVZHUjlQeC8vOTNFeGcwYjhQMFBTN0IwMlFxY09aT000OGVQQ1ovaEJaWlhyRnlOOS90L2dCblRwa3FwbUdsZlQ4YUVMeWJpeHhXcjRPUHJ0MlB2bnQwV1o5NGFRTmhYUkVWd0kwbFF0dU5UQXFqSjVITElSZG9pc1R3cXZJbWpLSXBnR0lZalNSSU13MGg1TmdEV1c3ZHViYXBidCs2SXArVmsrK21ubnhBYkc0dHZ2dmtHblR0M3hsOS8vWVhodzRkRHJWWmp3SUFCdUhyMUtycDE2NGFoUTRkaTdkcTEwdXUyeWtVOWUvWkViaTZ2UDNyNzltM1FORzBucUNHWHkrSHQ3WTNVMUZUWDFlMnljcGFkblkycFgwOUdWcVlCQkVsaThPQWhhTm5xQmFTbXBtTFVpT0d3V016dzhQREU4aFZsOVBUalB2c1VhV244d0ZCZVhoN1VHZzNXcmxzUGdGZUZTcGc3Qi9rRitmRHk5TUtZc2VNa2tSNEFXUC9MejlpNGNZUDBmZ0FZTVBCRDBEU04yYk5tMk8zYlAyZk80UG5temFGV3EyRzFXdUhwNFlrenAwOGpPcm9GenB3NWpaRWpQd0ZnTDdCc3lNaUFVcVZDV0ZnZDBiTTdWWUczWmlVSU1iOUdjQURCRVFCSGtDUkhrU1JJa3VLa1NGTU1Rd1Z2VGFGUWxnR2JUYTdOTmh5MW14Mk5pSWk0WUxWYU41SWsrY2JUY0ZKOTg4MDMrT0NERDZRY1dHUmtKRzdjdUlISmt5ZGp3SUFCV0xod0lSbzBhSUJaczJieGQ4LzY5WkdTa29JMWE5WkkzL0gyMjJWaUZjWEZ4VTZMRlFxRm9wd3NtY3RjQmdBL3IxdUR4bzBibzkvN0grRGF0V3RZTUQ4QkxWdTlnT0RnWVB5eVlTTXVYNzZFcVZNbTIzMW0yZ3orZk16UHowUGN3RmhKZjhOc05tUHFsSzh3WmVwMEJBWUdZc2NmMi9IOWd2bVk5UGpPN3JRQUFDQUFTVVJCVkdYWjU1czBiVnFPZWZoT0FzdVptWm1ZOXZWa01Dd0RuWkFudEJWWS92UFBuWkxBY2tGQkFSUUtCY3htTStaKzkrMldaVXNYWnpsNGFyYmdKb1NoNFBpSFdEU3dTWi9KeXJ3MVdtaldWYW1VSU9WeU9SeThOamdPeGd1OUlnd0FKaTh2NzZrSlI4K2ZQNDhYWG5qQjdybVltQmo4OTk5L01CcU5PSDM2ZERteDJ0YXRXMWY0ZlNxVnFweEtEOEJyVlQ0TWZVcVhQZm9XM2FJbGR2KzVDeXQrWEE1VGFXbVZCVlZZbHNXWGt5YWkyeXV2b1VXTGxnQjRhY2pVMUZ1SUh6c0cvZnYxeFpvMXEyREl5TEQ3WEwxNjlmSEcvL1c4aTJ2a0hDYU1INHVCY1lQUXJ0My9zd2ZZQ2dTVzgvUHpNV3JreC9Cdzl6amt4RnV6TFJwSWJCNjJ1VFdLc2dsRFpSUmtNcm1OdDZhQVNxV0dUQVEyc1d0WERFY3BpdUlFSFVIYjJWSEd4OGRuRDhNd2h3aUNhUDJrbjFRcWxjcnBDU1ArWHlhVGxWTTZyMHlVTmpnNEdLV2xwY2pMeTRPSGh3Y0F3R0t4SURzN0c3VnF1V2p2WE9ZRTJLSmJJSEgrUWh3N2Znd3JWeXdIVGRQNGN2TFhkL3pjMGlXTG9GUXEwYWZ2ZTlKekZvc0ZBUUVCZG1Ici9aaTd1enRLUzBzeCs1dnY0T2JtaGpOblRzTmRPSzlGZ2VXT25UcEwzcUpXcTRXYm14c0s4dk14ZWNxMG95Ky8xT1o2SmQ2YTJMdkdsblZwQ0dFb2oxR1NReWFYeVVETDVhQVZDaWlWS3FnMWFwQTBUVU11OUg1VUVKTGFGUkVBV0l1S2luNStHazZxaGcwYmxrdnFIejU4R0lHQmdYQnpjOE56enoySDQ4ZVAyNzN1K0xldFJVVkZRYVZTNGNDQk1xSGtnd2NQZ2lSSnRHclZ5blVWdTZ5Y1RaczZCY2VPSDBQNzloMHdMbjRDamg0OVV1NW02bWdIRHg3QS9uMzdFRC8rY3pzVzRZaUlDQlFVRk9Ddi9mdWtmTnZtcE4vdFBudjU4aVg4OWx2VmdyTG5HamVHMld5R1FxRUF3ekE0Y3ZnUW1qVGx0VXdyRWxnT0NBeUV1NGNIOG5KemQxZmtyUUdFSFpzSFFOaDRiR1Y1TmNyT1cxTkFxVkJDclZaQnE5RkNKZ0piUlVVRW03WVBhUktoZmZ2MnZ4NDVjdVJEZ2lBZWUwMEVsbVh4eHg5L2xIdStiZHUyaUkrUFI4K2VQZkhzczgraWMrZk9PSGp3SU9iTW1ZT0pFM214NEtGRGgyTGV2SGtZTzNZc1B2amdBeHc5ZWhUZmYvKzlYVmk1YnQwNjVPYm1ZdkRnd2RCb05JaU5qY1hRb1VPaDArbEEwelRpNHVMUXYzOS9TVEhiWlM2enRUNTkzc1BzMlRPd2JzMXFzQ3lMVVo5OENwSWs3WW9IK2ZuNWVLdm5HMmoyL1BNWU8yNDhFdWQ5aDlMU1Vnd1ovS0gwUFlrTGZvQk9wOE8wR2JQdzNiZmY0SWVGMzBPdFZtT1VnNDVvOHFsVDJMaHhBM3IwK0w4NzdsdG9hQmg2OVBnL0RQcHdBRGh3YU5PbXJTUWVYcEhBc2t3bXc3ajRDZWRmZTZYcjJRcThOUXRCaUtBbUZBMEk4TjRhUllJaUtVNG1WVUxsVXQ4YXJhQ2hWQ21oRmlZUGlKNDlleUkvUHgrRmhZVW9LaXBDY1hFeFNrcEtZREtaQ0pQSkJCczlCSkxqT0JrQU9RQmxVVkhSQUpWSzlmWGpmTklrSmlaVzJCeDcvZnAxaElXRllkbXlaWmd4WXdadTNMaUJzTEF3REI4K0hFT0dESkhldDJQSERvd2FOUXBYcmx4QlZGUVVXclpzaVEwYk5raTZvajE3OXNTTkd6ZHc0c1FKS1o4MllzUUlyRjI3RmlSSm9tZlBucGczYjk0RG40QncyYU5sKy9mdlIzaGtnNmZpdHhvTWhtK2ZqMnA4QkR6OXQ2aHJZQVJQQlY1Q0VFUXBEM0NFbFZlaG9qaVpUQ1lxVUhHMlRCNGFyUlk2blE2ZW5wN3c4ZkZGVUZBUXdzTENRUFR1M1J0NWVYa29LQ2hBVVZFUmlvcUtVRkpTZ3RMU1VwaE1Kc0pzTnNOcXRaSXN5eEkyZWdqMDRzV0x2V0pqWS84QUVQNjBub3dwS1Nrb0xpNUd5NVl0cGVjbVRacUViZHUyNGRpeFl3L1U2N3h4OHovazVPU0FZUmlVbGp5ZEkxcEtsUW9VUmNITDB4dGhZYlVsOGxSbnhuR2NzR2Jac0ZwcmJzMlVLaFZrTWhtOHZid1JGaGI2MUFNYngzSFhQaHN6ZXVMYU5hdUxBSlNnVE5mQUNGNWFyd1NBV1FBMlJwRFdZNFZ3azFNb0ZmeGNxRW9GdFVZRG5WWUxOM2QzZUhsNXc5L2ZEOEhCSVFpUGlJQk1wVktocEtRRU5FM0RiRFpETHBmRFlyRTRWa2h0UTFJR0FETnc0TUNDM3IxNy82UlVLaWM5amdzOGJOZ3dKQ1ltM3M4QndwVXJWOUMzYjErc1hyMGFUWnMyUlVwS0N1YlBuNC80ZU43dHZwTktrcVBwOVhyNCs5L2Q2TFBKWk1hWk0yZEF5V1RRdWJtNzVQZUtqTWpOeTBYV3lVdzBiZElVTkMxM2V1eE9uRGdKa3FLZzFkWDhtaFVWR1pHZGs0UE1yRXhFQzgzYUZkbnRKN3lmTVRjM2QvUGFOYXROTmlHb1dRUXlBQllPWUFnSGJRUHhQeHpIZ1dNNXNDd0xsbVY1SmcrQnpjTnF0Y0Jpc2NCaU5zTnNNdlBBcGxRcVVWSlNZcGRyazhsa3NGcXRvQ2dLRE1PQTR6aUpOcHpqT0FZQXMzbno1cC9mZlBQTjl3RFVmZHdXT0NFaEFRa0pDZmYxSFQxNjlFQjhmRHhHakJpQnRMUTBCQWNINDlOUFA4WEhIMzhzWFVBMWJlbjZkRkF5bVVzd1dUQ05SZ3VOUm9zTWZSclMwdE1RRmxyZVM3cCs0eVpJaW5wZ2EyYTdUemR2L29mUVNtVDRhZ1VIUDhuZTJ2V2xTNWVjZEFBMW05eGFXWXRIR2FFa0JibE0xQTNscTU2aXQ2YlZhdUh1N2c1UFR5LzQrZmtoT0RnWWRjUEQwYWpSc3lBMUdnMlVTaVVVQ2dWb21vWnRNVUVvSW9DaUtNNm1uMDFzL2JEMjZ0VXJ0NlNrWk9YVGZDSEZ4OGZqK3ZYck1KbE11SHIxS3NhTUdWTnBDRlRkbHAyVi9kUU9UMWRtV3AwYnNyS3luYjZXazVQelVOWk1xM05EVm5iV1UzdE1zck96a3hZdldsZ0srNEtCQ0c0U2s0ZHRpd2NmaXBLZ1pCUkhVUTdOdU1LVWdWcXRra0RPMjhzYk1wa01wRmFyaFZxdGhsS3B4TDIwZnF4YnQyNHR4M0V1aHQySGNnZTg5K0hwcDhGelkxbkc2V3NQYTgwMEdpMFlLL09VbnF2Y3hXOW16enJoQk5URWZGbzV3UlplNloxMG1BZmxSNmZrQXFpcFZFcG9OQnE0dWJuQnc5TVR2bjYrQUFDWlRxZVRLcUpDd2NBdTF5YVR5VGlyMVVvd0RPTzBZVGMyTmpiL3JiZmVXcUhSYUtZLzRRY0dlcjBlQm9NQlZvYUJzYkI2MkUyMVdoMWtjaG44Zkgzdld0cVBJSUNTRWhlWFcwVldVZ0hQM2NNc3J0enI4U0tTTTBITVR3YXU1TjNiaGlNOHdBMkpBaGZsV3kyL295QS9IemV1WDBWUmtiRlNJQStyRXc0M2QzZGtaR1FrcmZwcFJZVzVOVGhweUNWSmt1UDcxbVNjVEVieG9DYVRnNmJMZEE1NGpRTWQ3NjE1KzBDaDRMc0xaQjRlSGlnb0tJRFJhSlNxb1dheldRSTNxOVVLbVV3R2htSEVwSjNVMHliazJxeHZ2ZlhXbWkxYnRyeEJFRVNMSnhYVWtwT1RBWUtFUnF2ajJVMnJVZHU0cU1pSWRIMEcwdFBUcTEwSmZ0Zk9IVmkrYkNrTWhnd0VCUVZoNWFxMXVIejVFbUw3OTVQZU16WitBcnAyN2VaQ3drZlpFcE9CcTNuMy92a3JlU0RtSjROYjByRmFkdWY2dFNzb0xpNjY0M2w5NC9wVlBOdTQ2WWwzZXIyWjdBVFVuSHBya0poeWJZZmM1WkRMNUpEVGZET3VRcUdBVXFXQ1JzTlBNM2g2OFhrMjBXU2VucDdJeTh0RFlXR2hiUThiYUpybXF3d09YcHNONjRlazFyeDkrM1p6UVVIQmorN3U3azhrc09uMWVvQWc0ZWRmTTJMSlluTFpvRTlEZW5wNnRZa3lwNldsWWNiMHFmaHk4dGVJam02QmdnS2VHaWNpSWhLN2R1OERBQXlNZmIvRzFtM1owaVY0dlhzUE96WVRjYi9tenZrR0tTbi9nS1pwdE8vUUNZTS9HaUlOWDZlbXBpSmg3aHlrbkUyQlFxRkF4NDZkOEdIYzRITEQyZFZwZDlybWl6RXZRQzZYZ3lCSWhJV0ZvWC9zQUxSdUhmUEF6a0hpZmtETkJ0eXF5KzRFYXJiZzl0L05tMXV2WExsc3ZZTzN4cFRQclZHUVVSUW5qVTdKNVR3ZE9FMlhlV3M2TGR3OVBPRHQ3V00zQWtuNitQakF3OE1ET3AwT2FyVWFLcFVLQ29WQ3lyVTV5N2M1eTdWNWVIaHNabGwyMjVNSWJBWkRKalJhWGMzbllIUnVNQmdNMWZaOUYvKzlBQjhmSDdSdUhRT2FwaVdlT0lJZ29GRHdkNzI3YlVtNUcvdHgrVkxrNUpSUDRFK2FPQUcxZ29QeDIrOWJzR2p4TWh3OWNoaEpTWnNBOEQxNVk4ZU1ScjM2RGJEcDl5MUlTRmlBL2Z2MjRyZU5OY2U5VU5WdEppNVlpTTFidDZOLzdBRE1uamtkRzMvZDRQSWs3MkJXcTNWWG01Z1hMamp4MUNyMDFrZzdiNjBNMU9UQ1BLaENxWVJLeGN2c3VidTV3OHZUQy80MjNob0FrSDUrZnZEeThvS2JteHUwV2kzRTlnK3hTbW9EYkp3TmhiamRpQlg0YVh5THdXRDQ4WWs4T0l6MWdTU2JOUm90ckZicmZYL1A2ZFBKNlA1YU44eWFPUjE2dlI3ZFgrdUc3cTkxdzRvZmwxZjVPNDRlT1l3Kzc3Nk45aSszUld6L2ZqaDM5cXpkNi92MzdVVy85M3FqYStjTzZQOStYeHc5Y2xoNmJkalFqOUQ5TlQ2MEhmbnhjSFIvclJ1R2ZqUklBcEcyYmR2aHZYN3ZRNkZRd00vZkg4MmpvM0hwNGtVQWZNWFMwOHNMdmZ2MEFVM1RDQTRKUWV1WU52ajMzNXFyVDkzTk5sVXFGVnEzanNHNCtBbFl2R2loSGZIaWsyQkZSVVZJK24wVHhvNFpYVDBoNi9Yck8yRS9FMm9IYkJ6SFdUbU9ZemlPWTFtVzVRaEE4dFpLU29xNVRJTUJxYmR1b2FDZ29JeTlRNm1DUnFPR1FxSEFndm1KT0hqd0w2alVhbnRnQ3dvS2dvK1BEenc5UGFIVDZlRFkvbEZKbGJTYzF4WVlHSGpZWXJFc2VkS0FyYm9LQlZYYWx0RjQzOS9SdEdrVU5pVnR4Y2NqUnFGV3JXQnNTdHFLVFVsYjBlLzkvbFg2L05VclYvRDVoSGdNSGpJVVc3ZnZ4SnR2OWNLb2tjTWxpcHViTjI5Z3l1UXY4ZGxuOGRpeWJRZGVmZlYxakI4L1RoS2xTVWhjZ0UxSld3RUFjK2JPdzZha3JVaGNzSkEvNFVnU3ZmdjBoWWVIcDNEaVg4UGhRNGZRc2lWUEF1RGo0NE9FeEFWUUtsVVNFSjVPVGtianhrMXFiTTN2Wlp2UkxWckNiTEZJZ1B3NG1lTVF2ZmgzVmxZV0JzYjJ4NVVybDZ2bFJsSmFXcnBtL1BqeHR4eEF6ZVRvcmZGalV6eWVNQXdEa3FUQXNnd3NGZ3MvU1JBZWpzeXNUTEFjQjZWQ0NaWFEzbkhzMkZFb2xVcTR1Ym1YMnphcFVxa1FFQkFBYjI5dnVMdTd3N2I5b3pLdnpWbGZHMEVRbG5QbnpxMEVjTnZsaEQrK3RtVkxFdHErMUE2dFc4ZEFvVkNnYzVldWFOQ3dJWGJ1M0FFQThQYjJ3YkxsSy9GTW8wWWdTUkt2dnZZNkxHWXpidDM2cjhyYk9IZjJMRHEyYjRkK2ZYdWpRY09HZUxIdFMwN2Z0L0Q3K1ZDcDFlamE3WlVIOXZ1cnNrMkNJT0RsNlFWamtmSFJPWEFFb1AwZ0NtNmovd2RDS1lQcXRmcHdHOWNHaEp2QzdtMmpSNDNBNmVSVEFIakczTzhYekFjQWVIaDQ0S2ZWYTlIdi9RK3FZMjl1SHp0MjdLOEtQRFhiM2pVVzRITnJGRVZ4SE1keEZFV0JaVmxPb1ZBSXcrMHFlSHQ1d1dnc2hFb29HT1RsNWNGc011SEZGMStFWEY1K3VvUUVnS0NnSVBqNitzTFQweE51Ym03UWFEUlFxOVZTSHNZWkEwaEZ1YmFvcUtpcnhjWEZQenpwRjMvWHpoMVFXUGhrQ3RycTlYb0VCdHAzNWRldUhRYTlQaDBBb05WcWNmTGtDY1I5R0l2ZTcvVEMrKy8xY2VvSlZHYU5ubjBXTy8vY2k1L1hiMFI2ZWpxV0xTM3Y2SzljOFNQKy92c29wazZkRHBsTTlrQitlMVczeVhFY2NuSnpvSDJFZWdpVkhTTkFxT1JnYzByZ3ZmUTFxTjlvaU5JL3I4TDlVM3ZxeENGRGgyUHExMU9RbURBUDI3ZHRSZC8zK0FxNWVHMVhoK1hsNWYyU21KaVk2K0NwbVp6bjFqaXVUTW9Za01rb0tKUkttTTFtVUNTUE5jWEZ4U0FJUW5DNkZEaDg2QkFHRElpRHpzMTVvN1VNNEtsL0F3SUNrSk9UVTJIcmg4VmlFV2F5ckp6QTlzR3hMQXVDSUZpTzR3amJYRnViTm0xV0hqOSt2QjFKa3UxYy9zL2paLzcrL3RDbnA5dmZmbStuSWlxS2IwVTU4TmQrckY3MUUrWjhOdy9CSWJ4bzJZc3hMemoxYWh6QnpsUmFpdTNidDZGTGw2NVFLSlVJREF4RSsvWWRjUERnQWJ2M2JWai9DM2J0M0lHNUNmUGg1dTcrUUg3MzNXenorUEZqb09WeTFLdGYvNEVmSDBYckVMakh2eWo5YmZrM0U3bWY3SVM4bmpkS3RsMkc5WG91ZE1OYkluZmtEcGlQcDBIN2dYMExVWGhFQkRwMjZveVZLNVpqNXF4djRPWjI3MU1ZY3JrYzdkclpYK1k3ZHV3NE1IcjA2T05WOE5ZWUFUOVlxOVhLQ1pFZ0tKbU1VeXFVSUFrQ04yNWNsNFlIZURZUERVNmZUc1pMN1Y1R3ZRWU44Ty9GQ3hVREd3Q0VoSVFnS3l2TGFldUhDR3dpdURFTUl6MkVHVklXQUNIMnRTVW5KNXNOQnNPU2dJQ0FweExZZnQyd25xL3ljUnphdmZ6LzhINy9XQUI4bThOWGs3NUFZV0VobWtaRjRkREJBMUl1NmtHYmJaR0NZMWxZclZacHdxVGJLNjlpeU9BNGRPalVDYzJhUFkrLy90cVBjMmRUOE5uWWNRQjRnUkdDQUVpS1FuNStIclp1MlNKOGovMXNiR0JRRUk0ZU9ZSzZkY09SbDVzTFh6OC8wQW9GZmxxNUF2bjVlWGkzZDE4VUZSbHg0TUJmYU5La0xKKzFaWE1TTnYyMkVYTVQ1ajh3bnJxcWJ0TmtNdUYwOGluTW1ERU5jWU0rZWlpVTdxWkR0MkRvdHJyOE1iMmVDN3FKUCtUUCtjRjZNdytxVit2QmNqa2JjRGd1TzNmOGdYMTc5MkRLMTlQd3pleForSHJhZE5TcmQyOEFiYkZZc0hPbnZaYjZ0V3ZYdGhZVUZEaE9GNGdlV3ptR1hJcWlRRklVd0hGUzM2eGNMa2RBWUNBMEdnMTBXaDMrK2VjTS9QMERRTk1LWEwxeUJZVUZoYmo0N3dYazVHU0RKRW5JNVhMMGV2dWQ4c0FtaHFTNXVibkl6OCtIMFdoRWNYRXhUQ2FUSGJqWmVtME13M0FjeDBGNFNOTUlBQ3lCZ1lFSFRDYlRmSnFtaHp4Tm9KWjg2aFMyYkVuQ3doK1dnS0lvZkRKcUJFSkR3OUR1NWYrSHVYTytRZnNPSGRIenpiZHc3TytqT09UZ3BUd29jMnpRblRGOUttWk1uNG9PSFR2aDh5OG1JVEt5SGlaK09SbmZMMGlFUGowZHRVTkRNWFAydDVLYVVaZXUzWEQyYkFwaSs3OEhpcExoOWU0OUVCbFpEem01T1hiYkdUVnFOR2JQbW9ubHk1YWdkdTNhV0xKc0JXaWF4b3laczVHWU1CYy9yMXNMdVZ5T3RpKzFrL0k2RE1OZzFrdytESHlubHozMy9zcFZheEFRVVAyOWhGWGQ1ckFoSDRFZ2VJTEZUMGFQZWFCOWJGV3hrdTJYNGZiSi8wRDVxSkhWZXlNMGJ6NEQ5ODlpa0Qvam9OMzdVbEpTOE8yY3VmRHo5NGVidXp0T25qaCt6OEJXYmg5S1NuNGNOMjdjRFFHOHpJNEZBMVF3WlFDQXMxZ3MwR2kxbk54R3cwQXVwNUdXbmdhWlRJWTZkZXJDejg4UDAyZk9Sb1A2RGVEajY0dUYzOCtIVnF1ekE3Vnl3T2J2NzQvczdHems1ZVZKd0NhT1dZa2VtNDNYNWhpUzJrMGpFQVJoM3JObnovSk9uVHI5anlDSXFLY0YySTRkTzRvT0hUcEp6WUt2dlBJcWpoMzdHKzFlL245SVNma0hFd1ZGb1BDSXlCcmZsMDZkdTZCVDV5N2xubytNckllL0RsYXVZOXE2ZFV5RkY2NUNvY0NFenlmYVBUZnd3N2h5NzJ2UnNoVisyYkN4M1BNUmtaSDRicDV6eWlpS29yRC93T0VIZXN5cXNzMDdyZGY5bWs1WERYMlNESWVDbVlla1A0M0xUd1BMVDVkNzJ5YzJyTGxObTBhaGFkUHF1VHc1amp2enh4OS9PQllNYkhOclppbTNSaENzUVBuTldhMVdEZ0NVU2lXbjArbWtXZENpb21KY3VuZ1IvdjRCNk5DeEU4L2tJVXdZK1BoV1BocFdManRhcTFhdGNyazIwV056OE5xa2NKUmxXVnZWZUliak9CS0F0VXVYTHZyczdPd2Z2THk4Rmo1TlhwdHR6NnZBWXljbG5HdXlJZFpsajY5UkZJV2lJdU1qUVdqZzdlMTlUeW1TdExTMGpXdlhyalU2QVRXVEhhanhuR3NzUVlBalNaS245cGJ6UFdyaTJKU0NwdUh0NVlYNjllc0x0RVMrOFBEd2dJK1BqOTFrenFEQnpnUENjdnc2N3U3dWNOYmJWa0hqTGlmU0cxWFV0T3Z0N2IzZFlyRXNmbHBPME9iTlcyRFh6cDBvS1NtQnhXTEJ0cTFiMEVMbzBXcmFOQXJidC9FbnpPVkwxZFAvcEZLcFhhaHdsMnZ6TU5lc29tMzcrZm1oMkZoeGxaMEw5N2gvajZvYXZrTTB0ZG8rdDFoYVdycDY1TWlSRjIxQ1VKT0R0MlpYTUNBSWdpT0VabjhacnpqRnllVXlZUmFVbG1aQitTRjNnU1hYMnh2Ky9nR1NkdWxkZVd3QVgwZ1F2VFpicW5CSHI4MjJpQ0I2YlN4ZkJtT0VTaWxKRUFSMTZOQ2haVzNidG4yZUlJaG1UOUtGTStDRGZpQUU3alZmWHo4a0pDN0E4ODJibzFQbkxoajBJVjh3YVBQaVMyalg3bVVBd1BBUm8vRGx4TS94NjRiMUNJK0k0Qk9tVDlDZC9sR3lJbU5oaGEwTDVFTmFzeUpqSWFnS1drZ0NBd09SbnA2T3pJeDBxQVdpQlRzYkdnVXVNZm1lWjBhNWNBOWdhUFZsaE9yVWpaQUc0VG1PTzcxbno1NjlUdkpxdHUwZGprVURmblJLSEp1U3l5Q1hDNTRiTFk1TmxRMjVlM2w2d2MvWHI4b3lsVTVYV1M2WEl6ZzQySzZJWUV0cEpJYWlqdTBmVGdvSlZnQ1dkdTNhcFdabVppNzA4ZkZaOURoZUpGb24rWTl0Zit5cThQMjkzbjZuWERJVEFQTHljakZ6OXJkd2MzUERuajI3VVZKU1VxVnQzU2xzeU03SmNRR2JneG1OaGZEeDlYSDZtbytQTjdLekgveWFHWTJGNVFnQmJLMVpzMll3R0F6UTYvVW9Lc3kzNzVQVUFoaGJHMER0KzlpRGJPQnlkdlZkRjFvTnRGb05idDY4dWZISEgzOHNxQ2dFaFlPeU81K1ZFWlR2T0E0Y3kzSWN5NEpsR1RDTWxYOVlMYkJhekxDWVMyRXhsOEpVV2d4VGFSRnVYcjl5NzhBR0FBRUJBY2pOemJYejJwemwybXc5Tm9kQ2d1aTFXUWlDSUgxOWZYZVdscGJPVlNnVUh6OXVGNG1zbXU3d3BTV2xHRE42RksvOHJ0Vks3Uk8yZDNSblhkU1ZXV2hvYldSbUdwQ2hUNE5XNStiU1BEQVd3bWdzQkdPMUlyUzJjeEFJQ3cyRndmRGcxa3pjSjVaaEVCWmFPVEQ1K2ZuWjBlODg2cGFmbjcva3BaZGV1bFNSdDBZUWhBaHNERUVRak1qY0lhcE8wVFFObFVvbGVHZGxkTjllWGw3dzlTMVRuV3JRb0FFYU5teFk5V3Uyc2hkcjE2NWRZVitibzlmR3NpemhVRWdvVnlWZHRXclYwdjc5K3pjaVNiTDk0M1N4K1BuNUlWMmZjZDhYUUZTelpsaTRxT0pSMnFJaUl3SUQ3azdNaFNBSU5HL2VITmR2M0VST1RqYnljbkpRV3ZwMGtrK3FWR3FRRkFVZmJ4K0Vob1pVK3Q0VzBkRzRlZk0vWkdabDFlaWFxVlJxVURJWnZMMjk3d2hxajV0WnJkWjlFeWRPUE9BQWFxVWlzQW1nWnA5WEU3UU1SQ1YzdVZ6T3llVmx4SkcyQU9maDRRRnZiMjhFQkFTZ2R1MjdXenZpVG9JanQyN2R3dm56NTNIdDJqV2twcWJDWURBZ0p5ZEhBanhITFZJQjlBaVdaUW1XWlNtTzR5andXcVEweDNIS0d6ZHV0QW9ORFowTDRMRlNIemwxS2hrRVFVQ2oxVUZkelhmNDRpSWpqSVVGQUxocUo1cDBtY3RxeU5JUEhUbzBPeVltNXBZQVpDWGdOVUtMWUs4UGFpdWx4OWg2YXdxRmdwUDBRVFc4MExHSGh3ZTh2R3pFV2VyV3hUUFBQSU9Ra0pDN2k3THU5SWFRa0JCSlVOa3gxK2JZK2lIS1luRzgyVTRrV0hubmdpRER3c0tPRnhRVUpPcDB1cW1QMDFGczFpd0s2ZW5wTUJneVVWaVFWeTBzSEFEZnZ5U1R5UkFVRklpQWdBRFg1ZUt5eDhKdTM3NjlLaVltSmxVSU04WFFzOVJKQ0dvVnZEVnAwRjBpalJSQ1VWdWFiMUcvUUF4RmE5V3FkZGVnVmlWZzQvTTRvVTV6YlU1NjJzUkNnbU52bXpodVpTRUlnbkp6Yy92WlpETFZwV2w2d09OME1BTURBNnVOM2RabExudGN6V2cwcmc0T0RqNEYrOVlPeHhEVVloT0NzczVDMElwQWpWZDE5MEZRVUJCQ1EwUHZhUitycEJPbjAra1FFaEppUjI5a3k3Z3JEcWtLL1cxMnZXMkMxeWIxdG9rTHNXdlhyaVVzeSs1eG5TWXVjOWxqbFZmYnYzRGh3ajF3WGdHVlBEWTR6SU1LNUpHY0xhalJBc1czR0k3cWRLSW9DNTlYQ3drSnVlZUpETm5ObXplcmpvSThWWkhUN25ueE9mRjE0U0VtOEZpaEE1OFF3ZTJWVjE1Sk8zRGd3UGNoSVNHaEFNSmRwNHpMWFBab0c4ZHgxMDZjT0pIMDZhZWZGam9KUWN1Qm1pQ0FiQ2VuWjRzZkZlRUlMK1JDZ21WWjNBMCsyUUhiM2JoNnZyNitUaWNSYkFTV1lVTWZUcGhNSmhBRUFVRzZUMm9CSWZoZlJMWnAwK1pFVGs1T2dxZW41K3lxaHNVdWM1bkxIbzZ6ZHUzYXRUVnZ2dmxtcW9PMzVpd0V0ZHEyZG9qaHA4RHZLQlVNdEZxdFhlZ3BWajhqSXlQUnVIRmpxTlgzUGlGeVYyQ2lWcXNSR2hwYWJvYTBndmxSam1WWlFpd2tjQnpIQ2dVRjI2a0Uwc3ZMYTNOeGNYR1FTcVVhNHpwM1hPYXlSOU95czdNWGg0ZUhuN1h4MUVwdEh3UkJtR3hCelRFRUZTUUd5dVhWYk1ITlY5RFdEUTBOdlM5UXUydGdBL2dFZWtWOGJjN0dyTVRHWFFIY09HRXFRY3kza1FESVZxMWFMVGx4NG9TL1hDN3Y1enFGWFBZVWgzclE2L1hJeURDQVlSZ1lqWThHUTNOcGFlblA3Nzc3cm0yL1dya1FsT000Q2RRNGptTUZSbHlPWlZtT1lSZzd2ajh4c2hNZllwVlVvVkJBclZaRExwZmowcVZMRHhiWUFDQThQTnpwcUpXVGFRUk82R2NUUjYzRVdWTGJGaERpbjMvK0lmZnMyYk80ZmZ2MmZoUkZkWEdkNGk1N0drRXRPVGtaSEFocEdzTC9FZGd2aThYeTUwOHJWK3pLeWNteE9BRTEyd2tEZm15S0lGZ0NZUGwwRksvZUxqQjNjRW9sTDhTaTBXajVualYzRDNoNWU4SGZQd0MxZ29NUlhqZGMwdEc0WDd1bmI2QW9DblhyMWtWd2NERDgvZjNoNWVWbFZ5bFZLcFcyK1RkT1pBS3hWYllTM0ZVcitCWVFjK2ZPblZNdlhicTBrT080WTQvekNicHAweVlvbGNxS0V4VldLMGFNR0FFL1B6KzR1N3NqTGk1T1VuZHkyZE5yZXIwZUhBajRCd1E5TW1OeExNdWVQSFR3WU5MRUx5WVVPT1RVU29SSHFSMm9TWFJFSkZlK0NscCt1a0RucG9PSGg2ZEVSVlE3TkxSYVFPMmVnUTNnRlczQ3dzSVFGQlFFUjIxU0p5cFhvcHF6WFF1SUE3aVpubm5tbVpTMHRMUUZITWRkZVZKUDRISGp4aUVwS1FucjE2OUhVbElTZHUvZWpXSERocm11N0tmY0RJWk1hSFZ1ajh6K2NCeDM5ZHk1Yyt2Nzlua253d0hVYkN1Z0pqdFFFM3JXU0ZLYUI0VmNKdWZrdENoMHJJQktaVDlsNE9QakEvK0FBSVNFMUw0djdZVnFBellBQ0E0T1JtaG9LQUlEQXlYK3RrckFEYmI5YlFKL20wUWxManhNd2NIQkIzSnljaElBWkQ1cEoyOVJVUkhtejUrUDJiTm5vMjNidG1qYnRpMFdMVnFFRlN0V0lDc3J5M1YxUDhYR01NdzllV29YenAvRHFCSERxM3Qzc203ZXZMbTZhK2NPMTJFLzJHNEhiQVJCV0RpT3M0aUN4eHpIQ1J4ckZFZVFKSXFLak1qTnpVR213UUFDdk5pMFJxMkcyV1RDZ2IvK3dwWXRtL0hucnAzdzl2YXU5c2IzKy9iNzZ0V3JoOXExYTB2ZzV1SGhZU2ZoWndOdVlrZ3E5c094emtKU0FDWWZINTl0K2ZuNTN3a0xXS1BXcWxVclRKa3lCUysvL0RMVWFqVWlJaUx3eHg5L1lPN2N1UWdPRG9hN3V6c0dEQmdncVMyTkdERUNuVHQzdHZ1Tzd0MjdZOUNnUVU2L3YyZlBubWpldkRrQUlEazVHU1VsSldqYnRxMzBlcHMyYlFBQVI0NGNjVjNkVDdFVkZoYmMwK2ZxTjJpSWlWOStWWjI3VXFyWHB5OXYwN3JWZVpTMWRaVGFoSjY4dDJiWDJrRXlKRW14SE1leDREaklaQlRNSmhOVUtqVVhFbEliL2dFQlNFOVBoMXF0Z1ZxalFVcktQM2psMVZjeGV2UVlSRVJFNHZDaFE5VytudmZkTzBZUUJDSWlJcHdxV2ptcmpvb3RJQUFJQUU2TENSekhrUjRlSHV1TlJxTkdvOUhFMS9SSk5YMzZkR3pldkJreE1URVlOR2dRZXZUb2dlN2R1K1BDaFFzNGYvNDgyclZyaDY1ZHUrS05OOTY0NisvdTJiTW5jbk56QVFDM2I5OEdUZE4ybkZ4eXVSemUzdDVJVFUxMVhkMHVLMmZaMmRtWSt2VmtaR1VhUUpBa0JnOGVncGF0WGtCcWFpcEdqUmdPaThVTUR3OVBMRi94VTFtNjQ3TlBrWmJHYTVibjVlVkJyZEZnN2JyMUFJQ3JWNjhpWWU0YzVCZmt3OHZUQzJQR2pwTkVlZ0JnK2JLbGk3LzRmUHdwQjFBcnRRRTN2bGdBV0lScmxpVUlzQVJKY0FSSGdPTTRUaWFUZ1dWWnp0M0RIUXFGQWdSQlFKK2VEclZLRFlxaW9GYXJVYjlCUXdUVnFvV2lJaU1PSFR6NE1ybkV3QUFBSUFCSlJFRlU2QUVid0k5Y2hZZUhseU9qRk11OFRnYmtiZnZiSUlTazRtU0NDRzZFVnF0ZFdWeGNyRktwVkNOcjh1VHAwYU9IcEkzNHhodHZZTm15WlpnNmRTcDBPaDFhdG15Slo1OTlGdWZPbmJzbllIdjc3YmVsZnhjWEZ6c3RMQ2dVQ3BoTUp0ZFY3TEp5OXZPNk5XamN1REg2dmY4QnJsMjdoZ1h6RTlDeTFRc0lEZzdHTHhzMjR2TGxTNWc2WmJMZFo2Yk5tQVVBeU0vUFE5ekFXSXdjTlJvQVlEYWJNWFhLVjVneWRUb0NBd094NDQvdCtIN0JmRXdTQklieTgvTisrT0x6OFllZGhKNGxkOGlyY1N6RGlGUmxrTXRwVVp3RlJVVkZNQXBzeGtvVkg3MXB0RnI0K3ZwaSs3YXR5TS9QUjE1ZTNxTUpiQUN2Y0dWTElXN2J0R3Zqc2RuMnRVbmd4cGFwNmpJQzBFbmc5dFpiYnkxWnYzNDlyVlFxYTB6R3ozYjZRcUZRU1BsRDBXaWFyaGJnVWFsVU1Kdk41WjQzbVV3UFJaL1NaWSsrUmJkb2lZUzVjd0FRYU5HaUpXWi9NNmRLbjJOWkZsOU9tb2h1cjd5R0ZpMWFBZ0N1WDcrRzFOUmJpQi9MOThLekhBdU5vRjFRV0ZpNDdKMWViKzFIK2FrQyt4RFVSa0pQRkR0bUdJYVR5K1VjNzV5QW8ybWVMRFhUWUlCR28wVjBkQXY4L2ZkUnVMdDdRS1ZVZ21WWnJQaHhPWHIxZWhzTm4za0c0OGVOZlhTQkRRREN3c0xzdEJFY3B4RnNpQ2hoNDYxeEF2aUprd2tRbXYxQUVBU3haY3NXWXRxMGFVdmk0K05sQ29VaXJpWk9IcGtUSHZxSzFLU2NQVyt4V0txMG5lRGdZSlNXbGlJdkx3OGVIaDdTWjdPenM2dk01ZTZ5cHd6WW9sc2djZjVDSER0K0RDdFhMQWROMC9oeTh0ZDMvTnpTSll1Z1ZDclJwKzk3ZHVkcFFFQ0FYZGdLQUVhamNjV0UrSEY3VTFMK2NleFRjd1ExT3paY29kbWVveFVLanBiTFliWllRSkVrYUlVQ0ZFWEIxOWNYZGVyVWhidTdCd2lDUUdCUUlIUmFIUmlyRlJNK240anc4SEJjdlBpdmRDMDhzc0FHQVBYcjF5K25SZW9ZampwNGJTSzlFV3h5Ym95UWd5TUlnaUMrK3VxclBGOWYzeVVEQnc0a0ZRckZ3SWQ1b3RFMFhjNTF2blRwVXBVNG82S2lvcUJTcVhEZ3dBRzgrdXFyQUlDREJ3K0NKRW0wYXRYS2RSVzdySnhObXpvRjBTMWFvbjM3RG1nUjNRSnY5dXdCbG1VcjdmYzZlUEFBOXUvYmg0V0xsdGpkaUNNaUlsQlFVSUMvOXUvRGkyMWZ3dFdyVjNIcTVJbWZ6cDQ5dTJmanhnMGxOcDVhaWNQRFJCQ0VXY2lwMmJIaE1pekx5U2daWkRJNVNrcEtPSGN2YnlpVlN1aDBibEFvK1ArWG1rcjVKdHhhd1FnTERVTkFZQ0FVTk0zdjY0RURhTkswNmFNUGJBUkJvSDc5K2hLd09YcHNETVBZZW15MjRBWmhGQU5DdnMzdU80Y05HNVpOMC9TU2Z2MzY0V0dDVzh1V0xURjc5bXdzVzdZTXpaczN4NkpGaTVDZW5sN2grOWV0VzRmYzNGd01IandZR28wR3NiR3hHRHAwS0hRNkhXaWFSbHhjSFByMzd3OHZMeS9YVmV5eWN0YW56M3VZUFhzRzFxMVpEWlpsTWVxVFQwR1NwRjN4SUQ4L0gyLzFmQVBObm44ZVk4ZU5SK0s4NzFCYVdvb2hneitVdmlkeHdRL1E2WFNZTm1NV3Z2djJHL3l3OEh2UU5QMlRoNmZubnh2Vy8xSUUrMEtCYlFPdXlYRU9WT3BYb3lnUURJT1NrbUtVbHBad2FyVWFubDVlVUtsVXFGZS9QbTdldUlHalJ3OURwOU9oMTl2dklpUTRCUFhxMTBmOCtNOHhlZklrV013V2hJU0VZTXpZK0VjZjJNUmNVcjE2OWV3cXBMYTVOaUd2VnE2WUFQdEtxUzI0RVFSQkVIRnhjWmttazJuUndJRURXYVZTR2Zjd1RyVFhYMzhkSTBlT3hPalJvOEd5TFByMTY0Y0JBd2FndE5SNVo4cUdEUnR3NDhZTkRCNDhHQUF3ZS9ac1dLMVdkTy9lSFNSSm9tZlBucGc3ZDY3ckNuYVpVd3VwWFJ0ejU4MTNtdGI0WmNORzV6ZlRYMzZ0OFBzYU5HaUloWXVXd0dnMHJwZzFjOGFlWlVzWFZ3UnFrcWNtZ2hwSmtneFFSaG9wb3loT3JsU0NwaFVjMzN3cmlMS29OWEJ6ZDBka1pDVDgvUHdRRkZRTFlYWHFvRzU0T0pSS0paNTdyakYrV0xTMFJ0ZnRqcG9IOTJNWkdSazRkKzRjcmx5NWd0VFVWT2oxZW1Sblo1ZlRTeEJDVjBJQVFFSmc0U1U0amlOdE5CUGtITWNwQUNnblRKamdIaDhmSDZ0U3FZYTRUbjArVVh6ajVuL0l5Y2tCd3pBb0xYazZSN1NVS2hVb2lvS1hwemZDd21wWEdxNXhIQ2VzV1RhczFwcGJNNlZLQlpsTUJtOHZiNFNGVlV3UnRuLy9mb1JITm5nZzYxUllXTGhzUXZ5NHZUYmhwek5RczJYc3NJaU1IV0p6UFVYSk9JSGVtd2MxcGIyNHNhZG5tY3BVYUZnWTZ0ZHZBRjlmM3dkMkx0UW9CNXEvdjMrNTRYZ25GVkxZNU5ta1NxbHd3ZHIydUltRkJVeVpNZ1VuVDU3OFljT0dEV2ExV24zUHJTQWRPblRBbjMvKytjaGNtSHE5SHY3K2R6ZjZiREtaY2ViTUdWQXlHWFJ1N2k3NXZTSWpjdk55a1hVeUUwMmJOSVZZb1hNRXRSTW5Ub0trS0doMU5iOW1SVVZHWk9ma0lETXJFOUZDczNaRmRydUcreGtMQ2dwK0dEcGs4UDVMbHk2YUt3TTFsRlZBSlQxUWdUaFdVSm9pSUl4T1Nhd2RKQ1ZRZjFNVTVESVp4UGxRdFZJRnM4bFU0Ny90Z1FFYndJdkJpT0JXV1hWVXJKQUt2V3ljMVdvVndZMnhEVXRGY051K2ZUczBHczNTd3NMQ1VxMVdPeEtBOG03M2JkZXVYWS85aFp5dVR3Y2xrOEUvSUFndUF6UWFMVFFhTFRMMGFVaExUME9ZRXlMVjZ6ZHVncVNvQjdabXR2dDA4K1ovQ0sxRWhxK1dUWnRSTlZ0cGRuYjI0bFl0bXg5R2VmYmJpancxS3dpQ0lRQ0dFRHcxR1VWeE1wbmdxWWxEN1dvMXRCb05kSGFra1lHb1hUc1VrWkdSQ0EwTGUrRG53UU5oclEwUEQ2OUlZRmtDT0p1N3FaUnJzMXF0NG10T3dRMEFkRHJkcXR6YzNHSVBENC9oQUh5ZnRnczVPeXNiV2pkM0Y2STVtRmJuaHF5c2JLZkFscE9UQTkxRFdET3R6ZzFaMlZtVkFsc05XWlplbjc0OCt2bW9VN0NmL1hUMDB1eEJEUUtvRVNSSEVpUkhrUUpiQjIxREdDbk1mMm9GdlFJK0JQVkRyVnA4WHUxaGdOb0RBelkrYWRuQUtiQTVlbTJpNXlhQ0c4QVBDRmNDYnB5bnArZkdqSXlNSWw5ZjM0OElnb2g0V2k1ZWpydjM0ZW1ud1hQTHo4dHgrdHJEV2pPTlJvdjgzSng3K2l5Um5BbGlmakp3NWU2NjlEbHdWMithc2xhMy9tL3krVHQ0YXFaeW9FWUlvRVlTQWd1dURISTV6U2xva2FsREFEV0pCZGNMYmpvZExPWlM1T1ZtSXpORGc4eU1OS2ZyRUZZbkhHN3U3bzgvc0FGQW8wYU55b0ZiQmNBbWdadVljS3NJM01TLy9mMzkvN2grL1hwQjdkcTE0MGlTaks1K0VPSFpUUTBHQTZ3TUEyTmg5YkNiYXJVNnlPUXkrQW0weUhkMXNoTkFTWW1MeTYwaUs2bUE1KzVoRmxmdStYZ2xKZ05YN3c3VVdIQW56NVhjV3Q4NWRmWjFsSi85dEcvcHNNdXBsUWMxbVFCcXRJTDMxQnlMQmFMSXNkVmlnb2VIUjZYSzdVVkZSdHk0ZmhXTm16WjdNb0NOSUFnMGF0U29RcS9OR1pqWWVIQk93VTM0WG83ak9LNU9uVHFIazVPVDg1NTc3cmtCRkVWMXJrNVFTMDVPQmdnU0dxMk9aemV0Um0zam9pSWowdlVaU0U5UHIzWWwrRjA3ZDJENXNxVXdHRElRRkJTRWxhdlc0dkxsUzRqdFg4YkNQalorQXJwMjdlWkN3a2ZZaUxzRU5RdkgvSG13OEdKU240eUZHVGJocCtQc1o0a0FhdVp5T1RVN1VKT0RGZ1NPbFFwQkxrL2pXQUgxUTJCUUVJd0ZlWldDbXUwNS8wU0VvcUxKNVhJSjNPN2dzZG5tMnlvQ04zSHdsaE5EMDZpb3FITWJOMjZjMWExYnQweWFwdnRXeHo3cjlYcUFJT0huWHpOaXlXSnkyYUJQUTNwNmVyVnhVNldscFdIRzlLbjRjdkxYaUk1dWdZSUNuaG9uSWlJU3UzYnZBd0FNakgyL3hvNzFzcVZMOEhyM0huWnNKdUorelozekRWSlMvZ0ZOMDJqZm9STUdmelFFRkVVQkFGSlRVNUV3ZHc1U3pxWkFvVkNnWThkTytEQnVzUFI2VGRpZHR2bGl6QXVReStVZ0NCSmhZV0hvSHpzQXJWdkhQSnFlS212K2VVMzJvVjFmNVAxV1VBbW9sZlBVQkFMWUNrQ043MVZUcWtRUkZsMFpxUG54YlIxaG9XSEl6OHV1MGVOVVZTTWZ4a2FWU2lVYU5XcUU4UEJ3QkFjSFMwTE10bHh1WXJPZlFxR1F4RlZsTWhsbkk4VE0ySEs1Q1RtQ1VnQWxiN3p4eHUwbVRacDhhelFhdnhGZXZ5OHpHREtoMGVwcWZGMDBPamNZRElacSs3NkwvMTZBajQ4UFdyZU9BVTNUOFBIeGtUeG5RUXF0d3BuWTZyQWZseTlGVGs1MnVlY25UWnlBV3NIQitPMzNMVmkwZUJtT0hqbU1wS1JOZlBqRXNoZzdaalRxMVcrQVRiOXZRVUxDQXV6ZnR4ZS9iZnkxeHZhenF0dE1YTEFRbTdkdVIvL1lBWmc5Y3pvMi9ycmhvVnkwM2o5Mmg5dm8vMGwvZXlWMGhiSlRCQUJZYzYxRjM3ZStOdkgzTC9KK3kzZklwUlVMajdMcXB5Mm9nV0JnVS8ya0tGazVVQU1IWkdabW9yaTRXTXFwK2ZyNklpZ3dDS0doWWFoWHZ6NW9ZVlJLUE0rYU5XdUdqaDA3b24zNzlnZ0t1cnNxOUlvZmw2UDNPNzN3ZHErZTJMcGxjNWszYXJGZzlxd1o2TmYzWGZUdjF4Y0hEeDU0K0I1Ym1aZWlRYU5Halp3TnhaY0xTMFd4VmRoVVM0VVQwbkZDZ1JQRDBuLy8vWmZWNlhRck16SXk5TDYrdm9NSWdyaG5VV1lyWTMwZ3lXYU5SZ3Rqd2YxVHVKdytuWXhKWDB5QTJXeEdjWEV4dXIvR2g1azkzdWlKZnUvM3I5SjNIRDF5R0lrSjg2RFhweU0wTkF5alB2a1VqWjU5Vm5wOS83NjlXTFpzQ1RJTkJ2Z0hCQ0F1YmpCYXZjQmZiTU9HZm9SYi8vRkN0eU0vSGc2WmpFSndjQWdTRnl3RXk3Sm8yN1lkdXIzeUNoUUtCZno4L2RFOE9ocVhMbDRFd0Zjc1BiMjgwTHRQSDlBMGplQ1FFTFNPYVlOLy83MVFZK3QrTjl0VXFWUm8zVG9HOHZnSm1QakZCSFRxM09XaE1MTm8ralNHY1ZreTJKd1NJWnpocnYxbnpscnp3czJ2enNKZVRjb1puNW9RZmhKV2dCTkJqZVVkQnRLbVVDRG5hS0ZRa0orZkQwWlFtcUpwR2w1ZVpaNWFhQmdQYW82U2VYWHExQUZGVWRpNWN5Y1VDZ1ZlZnZsbFpHWm0ycEZHT002OWluK25wUHpEbjJQTFY4QmtNaUV1YmdDaW1qMlBvS0FnYk4rMkZhV2xwVmp4MHhyazVPUmcwSWV4YU55NGlVUXRucDZlL25BOE50RjBPcDFUejgzVDB4TTZuYzRaeGJpZE1JeW9uK0RndVprRno2MFVRTEcvdi84Zi8vNzc3eVNHWWZiZTYzNVdWNkdnU3RzeTNuL3VvV25US0d4SzJvcVBSNHhDclZyQjJKUzBGWnVTdGxZWjFLNWV1WUxQSjhSajhKQ2gyTHA5Sjk1OHF4ZEdqUndPUTBZR0FPRG16UnVZTXZsTGZQWlpQTFpzMjRGWFgzMGQ0OGVQazBScEVoSVhZRlBTVmdEQW5MbnpzQ2xwS3hJWExPUkRCSkpFN3o1OTRlSGhDWUNuMGpsODZCQmF0dVJKQUh4OGZKQ1F1QUJLcFVvNjBVOG5KNk54NHlZMXR1YjNzczNvRmkxaHRsZ2tRSDdRWmpscmdQYkQ1L2tiTDJ2ZC8vZnRjL05mdVBsVkN1d1piNHNkSHFVRS96QURoQVVFeWtDTnoreHdWcXVGazhsNUN2Kzh2SHpJNURLb1ZDclVDYXVEcUdiUHc4dmJHMXF0RnI2K2ZyeW5GaGFHK3ZYcVE2dlZPbDNYdExRMHlWbGhXUmFlbnA1MjcxbTZaQkhXckY0RkFFaEorUWNmRHg4S0FMaHkrUkthUmtWQm9WVEN6ZDBkTDd6d1A1dzR6dXM4blRsekdtM2F2Q2ljVHdUa2NocVhMcFVkaDFrenB6OWNZQU1BZDNkM0NkeENRa0xzd08wT0ZPTzJZU2tyaEtiaW5Vb0V0eElBeGM4ODg4eXBuMy8rZVVwcGFlbHlWeHI2enJabFN4TGF2dFFPclZ2SFFLRlFvSE9Ycm1qUXNDRjI3dHpCaDBMZVBsaTJmS1VrbGZicWE2L0RZamJqMXEzL3FyeU5jMmZQb21QN2R1alh0emNhTkd5SUY5dSs1UFI5QzcrZkQ1VmFqYTdkWG5sZ3Y3OHEyeVFJQWw2ZVhqRFdjQks4d2h2Z3lqTlFkWTVBaVNlMU91SFg1U3U3L1RibWxnT29PUUpiQ1FHVUFvU1pmOEJLQ0twU0pNQ1JJRGlhcGptU0pGRlNYTXdWRkJUQTNjTWRPcTJPbi8xMGM0Tzd1enRVS2hYYzNOejRuSm9BYXJvS1JGaG9tZ2JETVBEMjlrWk1UQXhZbHBYNERrVjc1OTArMkx0M0R4TG1mWWZKWDA3QzBHRzhma1BkOEFpY1BIRWNScU1SQlFVRk9IZnVySFRUejgvUGgxS3B4Tm16S2Zoc3pHalFDaHI1K2ZrQWdLVGZOeUU4UE9MaGhhSzI1dUhoZ1VhTkdsVjZFb24vRng0Y1FSQ0V4V0xoYk9zTUxNdHl0djF0WWxnS2dPdmR1M2NhZ0lUczdPd2JYbDVlZ3dEY2M0Yit3b1h6aUJzWWkyWExWeUlpTWhKTGx5ekc1cVJOa3BkU2tYMDM1eHNjUG5RSU9UazVtRGpwUzdSNXNlMGpDV3g2dlI0UkVaRjJ6OVd1SFFhOW5tY3gwV3ExK0hQWFRreVo4aVdNaFVhN01LS3ExdWpaWjdIeno3MUlUMC9IRjUrUHg3S2xTekJnNElkMjcxbTU0a2Y4L2ZkUkpDUXNjTXFaVnhOVzFXMXlISWVjM0J4b0gxSVBJVmRrU2I4OGYvZXFoc2VHbk1JeGlmeFJCRFpUQmFHbkJlQkVwWGFHQU1FSndBWUtCQ2VYeTZGVXFyaTh2RnhRbEF3Qi9nRkM5Vk1ITnpjM2VIbDVRYS9Yd05QTFN3Zy9HOXl4RjAwTVJ3OGRPb1NtVHVpSnRGb3RCZzM2Q0NOSERNTTc3L1pHL2ZyOHZHeVRKazNSc1ZNWERCczZHTzV1N2xDcjFGQ3BWZExuTm05T1FrbEpDYVpObjRWNTMzMExBTWpJMEdOejB1OUluUC85b3dGc0FPRHA2V2tIYmpZZ1ZnN1l4R09Mc2laZXdtYXVWQVE2YWE0TkFDdVM0bmw3ZTI4NmYvNzhqWHIxNnZXaktPcmxlOTFmdVZ5T3YvN2FqNGpJU0J3K1ZEWE85aEVqUDhHSWtaOWduTUJnK3FpYXY3OC85QTVVVExkdnB5SXFpbTlGT2ZEWGZxeGU5UlBtZkRjUHdRSVAzWXN4THppOUlUbUNuYW0wRk51M2IwT1hMbDJoVUNvUkdCaUk5dTA3bEVzQWIxai9DM2J0M0lHNUNmTnJ0Skh6WHJkNS9QZ3gwSEk1NnRXdi84Q1BqNVd4N3Z0YmYzNXp0eC9qVTFHSk9ydDlnWUNRZXRRQWdpVUpnaVZBY0NUSGdnTEp5VUJDSnBOeitmbDVjSE4zQjJPMXdtREl3TFBQTlM2YktQRHpoVnZxTGZqNitxRisvZi9mM3BuSFIxWGUrLy96bkdYMnliNE15WVNFa0lSY3R1Q2x3clZpWFM0dVZGc3B1SytYcXEwLy9mVzZJbGE5cmJWMUJaY3F5cTE2UmF1MWV1VVZiZFVmOWQ2NndyMGdvbEdKQ1lRa0pDUWtJU0dRWlNhWm1iTTh2ei9PZVU2ZU9abEpRQUZKelBONkhlWmtNcE1aenB4NW44OTNMMGZxS01lSU5adjk3TFBQQUJqemlPMmRxQnNhR3ZEQS9mZmludC9laTdYUFBZdkpoVVU0MjFUS2wxNTJPUzY5ekVoc3VPYnFuMkxxMUJMTHluTzczYmpudC9kQ0VBUkVvMUdrcHFiaXJUZmZSSCtvSDlmKy9KcHYzeFMxdzIzbXpKa29LU2xCUVVGQjNGaS8xTlJVeStmbWRydVphVXJaM0ZLYldjcjhib3JOTkIxZ3B1bXFWYXZ1SGhnWWVQTHJ2dGQvbUQ0REgzKzhDWFYxT3hEZzBqTSszcndKSzViZll2Mzg2Q09ydnJYbzJZaGZEck83TVFCUVhiZmFTZ0hBMmVmOENCOSsrRDYyYlBrWXFxcml2ZmZleFZmVjIzREdtV2NDTUFhTUVBSUlvb2plM2g3TFIwTDErS0RQcEx3OGJONjBDWXFpb011TTlqcWNUcno0eHhmd3lpc3ZRMUVVOVBRY3dJWU5IMkgyN05sRHB2Q2JmOFVicjFmaXNjZFhIN1UrZFFmN210Rm9GQjl2M29RSDdyOFhQNy8ydXFNZU9PalRCcCs5L2ZIZnJUMzdiM2VNWm5vT0FJaVkwNlJpQUJSQ3pJSEdGTG9naVZRa0FwVWdVQmtDSEVTa2hBQitmd3J5ODRPWVZ2NFBjTG5jY0x2Y3lNaklSRTVPRHZMejhwR2VsbzY4dkx4Um9RWVlFVlFtUkJ3T0I5TFMwb1kxYWYxMDZ5ZTQvWmQzNHBSVFQ4TWpqejJCbXErcTQ0S0hpcUxncFJmL0NFS0FXYk5tV3o1azFReGs5UFFjUUVOREE4cEt5M0RWMWRmZ2xWZlhZZTBMTHg0N2lvMDNTMmZPbkRsTXNZMndVV0lzRUVLc051T21rcU5jZ3EvT2VyUUQwRysvL1hiOTl0dHYvNCtXbHBhNi9QejhmeUdFSEhjbzc5TWh5L0I2UEhqeGp5OWd3VWtuNGF2cWJXUEdoMlpQMEgzd2dmdnc0QVAzNGZRenpzUy8vZXB1bEphVzRkZS8rUzNXUExVYUhlM3RtRnhZaUlkV1BXSk5NMXIwdzdOUlhiME5WeTI3QXFJbzRkekZQMEZwYVJuMjI4cUZicjc1VnF4YStaQnhKWjQ4R2M4Kzl3SWNEZ2NlZkdnVlZqL3hlN3o2eXA4aHl6Sk9QdVZVWFBrdlB3Vmc1Q211Zk9nQlNKS0VpeTg4TDk1TWZPbGxCQUtIUDVmd1lGL3pGOWRmQjBLQXdzSWkzSExyYlVjMWowMEgvYndoc3JmeWxKYjc2dEE0bE9Ka1UycldMY0ZRSHpVQVJpVUJpQTVRS2dCVXBJUktnZ0JSQTJRaVVpY2tPTlBTaDJvL2ZUNFVGQlFNNWFtWmdZSWRPN1lQaTM0bVcwMU5UVWhMUzhQQ2hRc0JBSjkvL3Ztd21SOFhYRGcwN0Nnek14UExieHVhZjdCeDR3WTgvdGdqcUtnNERnODh1TXFDNUtJZm5vMjZ1am9zdTlKUWM3KzQ0Y1poQ2xzNkZyOTRxYW1wbURWcmx0VU9oUkJpM2ZMNzNIMFczQUJRcnFwQjUzeHdpVXhUcmFDZzRNUFhYbnV0N3B4enpybkE1WEl0TzlqM3FLZ3FUdnZuaGZqOVk0L2doaHR2eGgvV1BIWE1IY2N6ejFxRU04OWFOT3orMHRJeWZMUng1RG1tSjU2NElPa1gxK2wwNHE1LyszWGNmZGY4YkhqZnozbnoveWxoTThTUzBsSTg5dmpxaEg5YkZFVjh1T0YvaitweE9walhITzE0ZmRQbDl5ZlBreHdJaC8vMDJyNFAzNy9yUUdVZlozckdFZ0hOOUtjcEFEV2dSZzJnRVFxZGdGSUNRa1VRS2lvYUpBQXlrUXlvUVliYjR6R1NiLzFEUHJYczdCd2pwY1BNVS92ZTl3NitXdEdxMlBtYWE4R0NrN0Jnd1VuRDdwY2tDYmZjdW56RTV4NlRZR01mTkE4Mys1WUFjQmJjRkVXaFpvVUNIMVNnWEtVQ1UyOGFBTzM4ODg5dkJmQmthMnZybDNsNWVWY1NRa1p0d3E1ckdyNS80Z0kwTlRYRlJYb0VVWVIrQkp0M1Rxenh1VVJSUkRnY2lzdVgxSFg5aTEyN2RsV2U4b01UZDRCTFp4b0JhakV5cE5KWWR3NmRBR2FRZ0VBRW9SSUV5QkFzcUxrZ3crWDB3T1B6d2VmeldUNjFuQnlqVEtxb01IR2VXcUxsOFhneE1CQStxTWNkeVNVZHl4KzIxK3ZGN05teklZcWl0WTBDT21vcU9CWXh0UWNWbUcycTIwMVRBRm93R1B4ZzdkcTFYMTF3d1FYbmVUeWVuNDMyL2pJeU12Qi9mL0d2Nk9meTNQTHpnOWpkM0lSWUxBYXE2Nml0clVGaFlkRVJPMFp1dDJlQ0NvZDRiTDdOWTVic3RYTnljdERSc2RjQ1d5alUvL3dmWDNqK28vdnZ1emRrVTJsODVKUGZlS2laWmlkMEUyalVpSHdLVkFLQlRFVHFnQWdIWkxpSURMZkRBMDlKRG54bVNnZURHdC85MXA2bWtXeE5LUzdCcnNiNkVlSG04WGd4cGJqa3V3czJ3Q2kvc3NQTkRya0VKaXBUYi9ZcUJjcjUzcGhwcXB1bXFRWkFYYlpzbWJaczJiSm42dXJxUGkwdUxyNUVGTVZEeXNuSXk4dkRxYWY5TXk2LzlDS2twS1JhWlV4QWZMckhWOVhiOE1UanY4ZjlEenlFcVNWZi8wTk9kS1dmV0VEWUhOS2JhQW5mMGpFTGgvb2hKa2tobVRScEV0cmIyOUhSMXJwaGQwdnIyMHVYTEc1S290SjRueG9Mak1XR1ZKb3hSY3E0Y0JzMW40SWdVa2tTSVVsbWh3NkhEQWRyRW1uT0tHRDkxQ3p6TXovZnlGT2JWbjVJcVRZcHFhbW9PRzd1dC83NUg5R1pCNGR6VVVxdCtRa3RMUzNvNk9oQVYxY1hlbnA2ME52YmkzQTRqSEE0akVna3dvLy9JOXpnWnFMck9wdWxRQUN3ZVFxaUNYaVpVdW9BNEFEZ0JPQXNLU2x4YmRteTVVZU51M1pkbVJzNE9vTS85M2Jzd2R4RDZQRFIxTlNNN3YzN0p6cm9EanVPYmNqS3lrUmhnazRUVGMzTjZPNCsrc2RzYjBjYk1qTXpVWlNnMFNTbGRFOW5aK2QvenBrejU1T09qZzdGQnJWb0lvVUdLOXBKVkJpTklUVFRFcUZzTXl0MElFa1NKTW1hVXdBbkJ6YVB4d08vMzQrMHREUmtaR1FnTnpjWCtmbjVtREpseWhHdEpmNU9LemFMd0lSZzVzeVo3QU1hcHR6c3QrWTJMR0pLQ0tFbTNNQXJOMmFhd3BoR3J3RlE2K3ZyMVl5TWpNb25uM3p5a3dVL09HVnhSa2JtbFVmNmlpN0w4aUU5cDdCd01ycTZPckczb3cwK2Y4ckV6SU5RUDBLaGZtaXFtaEJxQUZCVVdJak96cU4zek5oNzBqVXRJZFRDNGZETGI3enh4a2VYWFhiWmdWRlVXcFJUYU5aRWRsT2xhU2JNZEE1bVJzZGIyZGJLMjgzMVVqUGJlV2RuWnlNUUNHRHk1TWtvS1NsQmVYbjVtRDRQeG94aTQxZERRd1BxNit2UjNOeU05dloyN051M0QvdjM3MGRmWHg5Q29SREM0VEFHQndjdDVXYk9YQ0RjR0VCZXZRbW1laE5NMEVzQUpFNjlXUXJ1L1E4MlZFd3BMbDRxaXVLWlIrTC8xYm0zSFpNQ3VZZmN0b2hTaWwxTnpkaS92eHVhcWlNUytXNDJuM1M3UFJCRUVWbVpXU2dzTEJoVmJUUTM3MGJYdm4zUVZPMklIVE8zMndOUmtoSXFOVVZSL3J1cXF1cS81cytmMzhJQkxSblVFcG1kNnBEWmFRSE5tRTFnQXMwb1pJOVhhRjZ2MTRKYVJrWUdzckt5TUduU0pCUVdGcUtrcEFSVHAwNGQ4K2ZDbUFRYkFMUzB0R0RuenAwVzNEbzdPM0hnd0FIMDl2YWl2NzhmQXdNRC9HaS9ZWERUTkkyWXc1dlptRDhHTjJhZXNwRi9NZzgzQU01UFBxMWFrSk9UZS83aDZ0UTdFQTRoMU44SGdCNzJScE1UNjloYnVxNXZiV3hzZkx1MHRMVFdWRngybFJaTG9OS1VCQ3BONXpacVdqQkpvZVl4MHpuODFueUNkQ1B5YVVLdHRMUVVCV1lseVZoZjBsaDk0d1VGQlRDckRtQVd4VnUzaWN4VjAwU2xnaUFRUVJDZ0tBb2xoTENHbC9iQWdoVXBKWVF3MDlRNkFZK2ZlOXo3SlNVbG14NSsrT0V6VWxKU3ppZUVmRzNkN3ZmN0lVa1M4dkltSVJBSVRIenJ4L0dpbE81b2IyLy82OEtGQzZ0cWEyc1p6T3krdEpqTmg4WkR6Ulljc0lZWFUxRVVxU2lLMXZkQmxtWEtldTR4cUhtOVhndHFScERBYkR0VVdJaXlzckpESHYwNEFiWWp0SEp6YzhHYVVQS0FTd1ExenZmR1ppRVNSVkZBQ0dFSnZaUU9EVFhWYldraEdnRFZuRytxbVA0MzVkeHp6MzNyamp2dStQRFdXMjg5UFMwdDdYeENTUEhFMTNkaUpRRGFycTZ1cnIvZWZmZmRXOWVzV1JQbFRNbFlBdE9UM1NwMnM1T2RpOHlYeGlheTIxV2FMTXNXME94UVl3RUNsczVSVkZTRXNyS3lZZTJFeHJ3cDJ0VFVOT2IvRTVGSUJJMk5qVmEwZE4rK2ZWYTBOQlFLWVdCZ0FJT0RnNGhHbzVaWmFoYm9FbFl6eWN4U0xtcEtiS2FwU0NtVm1JbksrZDhjQUp5MzNISkx5aFZYWExFd0pTVmw2VGRwYWpteHhoWFFHdmZ2My8vbW1qVnJQbjMyMldjakhLQ1VKRUNMY2JDelJ6dVpVck9pbmN6ODVLd1VxOXMwVTJ0OG9DQTFOUlZwYVdubTNNOEFDZ29LVUZ4Y0RKZkxOZTZPL1pqMXNTVTRpYkJqeHc0ME5qWml6NTQ5Mkx0M3J3VTRGbFJnZ09QOWJzejN4Z0dPbUYxOUNmTy9JVDQxUklRUlhFZ0VPTWZ5NWN2OUsxYXNPRFVqSStOY1FzaU1pYS8zZDlLSFZ0UFoyZm0zWC8zcVYxWFBQUE5NZEFTZzJUZkZORHRWRG1ZYWIzYmFWWnFwMU9LQWxpanl5WURHVWptS2k0c3hiZHEwTVp2TzhaMEJHMXROVFUxb2JHeEVhMnVycGQ0T0hEaUF2cjYrcEVHRkJJR0Z1TWdwVTI4TWNoaktmVXNLdU9MaVlzZkdqUnRQeXMzTlBWc1FoQk1tdnU3amYybWF0cm1scGVYZGswNDZxYnExdFpYQmlRZWFjaEJBWTgrekFnTUFLQi94WkNxTkR4QWtDeEtreEUxbkR5QVlES0s0dUJoRjM5SWc0d2tmMjlkY1JVVkZmRnVqT0IvY0tBRUdkaVZrNm8xcW1tYmx2Y0hNZFRQVlcxeHd3ZVovaXdGd05EWTJPdkx5OHQ0RjhGRmRYZDJjb3FLaWhiSXMvM2ppNnovK1ZqUWFmV3Y3OXUzL00yZk9uRjBjekhpVkZrc0FOU1VKMFBqZ1FGeVNMYS9TZUxQVDRYQU04NmN4MDVOUDV5Z29LTURVcVZQSFZaRGdPd00yd0FncThIM2JYQzRYK0pQQURyZElKR0lCTGhhTFdaRlRCamN1dUVENGtYK3NRd2lNZkNJVmdHSXFPQXR3QUJ4bFpXVmJBSHorN3J2dnZqcHYzcndmK0h5K3N3RUVKNUF3cGwwZnJmMzkvZSs4Ly83N255MWV2SGhmRXFBbGdwb3lra0l6TDVoOGxCNHNwc1d0a0pUeUFBQVRUa2xFUVZUbUJ1aTZUblZkaDZacFZsOHlSVkdzQkhXbTZCd09COExoTU54dU4vcjcrOUhiMjR2dDI3ZGorL2J0aCtVWStQMHBFRVhCU2htWk1FV1BvdCt0cnE0T3pjM05hR3Rydzk2OWU3Ri8vLzRSL1c1bUtWYkM0QUtYMUF2VE5HV2xXWEZCQnB1SnlwdXFNZ0RISlpkYzRscTVjdVg4bkp5YzB5UkpPbTBDRTJObnFhcjZma3RMeS8vY2ROTk50WC81eTErVWd3U2FrZ0JvOXFBQWc1bE9pQUNqeGxPZ2dpaENFa1dJckNSS2tpRTdaRGhrQjR5cDdLWlNjN3ZoOFhyaDkvbVJrbXFNeHN2S3lrSnVJSUJnMEFnU0hBbC9XcGpMd1p4N0RPVmdqaXV3WFhUUlJYajExVmR4L2ZYWFkvWHFvWDVmcmEydGFHcHF3ZzAzM0lEUFB2c001NTU3TGdvS0NwTDYzYmlFWHBoK3Q1R0NDMlFVd0VsSkFDY0RrQmN0V2xTd2R1M2ErVGs1T1F1L1NUN2N4RHFpRjhnZFBUMDlIM3owMFVkZkxGNjh1SnVEVWlLZ0tVbUFwaVlEbXRramtESmZHaEVFaUtZdlRSUU5vRW15V1JvbE95QTdISENhVUhPN1hIREg1YWdaNlJ4WjJkbW0rVG41cUtpcHpyM3R5SnNVT0daeU1jZWRLU3JMTXQ1NDR3MDg4Y1FUMWhVcUdBeENFQVJVVjFjRE1EcDFCZ0tCWVQ0NGV5NWNMQmFES0lwUUZJVmxkWk5FNXFuTkI4YzZoUWltaVNweEpxcGtudkFXMk5hdlgxOGZDQVNhQWJ5K2JkdTI4cWxUcDU3Z2RydFBBekJSMWY3dHdxeHRZR0RnZzVxYW1xcDU4K2J0Wmo3Vmd3QWF2Nm1tUXRNU21ad01hSUlnVUVxcG1WOXBKTnFLa2doSlpMV2VFbVRaWVNnMUZpUndHcEZQdHhuNTlQdU55R2RHWmdaeXNuT1JsNWVIeVlXRjFxek5JNzI4UGovMjd0MDdBYllqdFJZc1dJQU5HelpneTVZdG1EOS92blgveG8wYk1XZk9IR3pkdXRVcTlqVW56Y2NCTGh3T1cwR0dTQ1JpQWM1VWI5UWVYTkIxblE4d0pBb3lhQUJFODRvdFVVb1oyT3hLVHA0MWE5Ym5BTDRDOFB6MjdkdG5GUllXSHU5eXVVNlpnTnpSZzluZzRPQkg5ZlgxWDFSVVZPemkxVlVTb0trSENiT0VRT01EQTdxdVUxbVdNVXlseFptZVRyajRkQTZ2RjdGb0ZGcy8rUVFYWDNJSk1qT3prR09tY3hRVlRZa2JSUHhOVjIxdERkNSs2MDFVVk16QjZXY01MNVgyZW4wSTlmY2VNNS9sdUFOYlJrWUdUajMxVkZSV1ZzYUJiZDI2ZGJqZ2dndnc2YWVmSWhnTW9yUzBGQjZQQnpVMU5haXNyRVJQVHcvY2JqZkt5OHVSbjUrUHdjRkJTSktFblR0M1l0KytmZGFnRTBtU2FHWm1Ka1JSSktGUUNKRkloSXFpQ05heEZ3QVJSZEVDbks3cmdtbDJpR2JrVkRSUGZHYW1TZ2xBSjVXWGwyOEY4RG1BdFY5KytlVzA0dUxpT1I2UDU0U0ozTGpEdTNSZHJ3bUh3eC92MkxHajV2ampqK2VWbWM2QmFTU2dxUnpRN09ZbWk1elRaRUJqNlJ1cXFzTGhjRUJrSFRrazA0SmdLczNoaE5NMTNQVDBwNlJnem5ISElSaWNiS1J6RkFTUmszTjRvNTVQUGJrYWpZME5HQWlIaDQxbDVOZlJIQ3orblFNYkFDeGR1aFFQUC93d0huendRUURBNE9BZzFxOWZqNVVyVjJMRmloVklUMC9IN05telVWZFhoK2VmZng2WFhISUpDZ29LVUZ0Yml6ZmZmQk95TENNWURHTDM3dDNvNnVwQ2FXa3BaRmxHVDA4UDl1elpnNEdCQWFTbXB0SllMSVpJSkVKMFhZZlg2NldhcGlFU2lVRFhkU3BKRXVHaXFNUzhXZ3MyTTVXdmFPQTNIblRTN05tenZ6Q1YzS3ZyMTYrZk5IZnUzT2xwYVdselpGaytBVURxQko0T2FmVXFpdkp4ZDNmM2w1czJiV3BZc21SSk40WWlrY25VV1NLbzhSMDJWTnR6ZFU2aFViNC9Ha3V3RlN3Zm1oSEJGQVNCT3AwdVBqOE5zc01CZ1JEczNyMGJtcXBDbENUTW5qVWIrY0VnS0FYKzM5dHZRUkFFcEtkbjRKSEhIcmVza0YrdVdJNjJ0ajBBZ0o2ZUhuaThYdno1bGRjQUdKMXhudmo5bytqdDYwVkdlZ1p1dS8yWDFwQWVBSGp0UDE5RlplVTY2L0VBY1BVMVA0UEQ0Y0NxbFErT21ROTVYSUp0OGVMRnVPNjY2MUJkWFkyWk0yZGkvZnIxbUQ1OU9nb0xDNjNIZUR3ZXZQenl5N2o0NG90eDdiWFhvcTJ0RGNGZ0VLRlFDSnMyYlVKRlJRVnljM1BoOS91UmxaV0ZTQ1FDbjgrSGZmdjJRZE0wdU4xdVJDSVJBS0RwNmVrUUJNRXlVVlZWaFNpS2JOWUNpNklTMHpRVnpQc1k0RVR6aXlLWnFrNjBRWTRIbmJSbzBhSmRBRm9BL0wyaW9rSis3cm5uaW91TGk2ZjVmTDdaa2lSOUQ4QkVLMTJia0ZCVjlkTyt2cjdxdXJxNnhxdXV1cXExcHFaR3R5a3p6V1k2SmdNYUR6UCtPYnJOM0xRVW1ya2hHZEJZenpSQ0NGd3UxekNWdHFkdEQzS3ljekI5eGd5b3FvcnR0YldZLzA4bklEMDlIZC8vL29tSXhhSjQ5WlUvWXhvMzMvVCtCMWNhQk8vdHdjK3Z1UW8zM1h3ckFHUE81MzIvdXdlL3UrOEJUSm8wQ2UvOGJUM1dQUFVrN3Y3TmI2M25Wc3laTTZ6enNNUGhHSE1mK3JqTlkxdXdZQUZlZi8xMXpKdzVFK3ZXcmNONTU1MDM3SEhWMWRYbzZ1cENaV1VsdU1sVzBIVWQyZG5aY0xsY2FHeHN4TTZkTzYwMEVVVlJrSktTQXEvWGk0RUJvNGVYMysrSHBtbFVWVlVNRGc0U1ZWVWh5N0tWYTJSR1VWaytFalhIYVExVGNLYVphbFUyY0pCTEJEdnBpeSsra09iT25Wc05ZRHVBdHdvTEM4V1hYMzU1Y21scGFYRnFhdW8wV1pabkVrSkt2a3NVbzVUV3gyS3hydzRjT0ZDL2ZmdjI1c3N2djN4dmEydXJibE5saWRSWk1wVm0vWTRsWTl2K0J1ODNpek0zZWFCeENlQnhRR01LalJBQ3Q4YzlsTVpobXA3QllBRjIxdTFBVzFzYlNrcEtjTWxsbHlFajNZaDZCZ0lCUktOUnVOM3VSQ1kyZm5QM3IzSDJPVC9HdkhtR1MyYlhya2EwdHJiZ0RuTmd0MDUxZUcxRFZjcktwcUdzYk5xWVB3K2s4WHFDTDEyNkZHdlhyc1Z0dDkyR3Q5OStHL2ZlZSsrd3g2aXFpbHR1dVFVLy9ha3gwN0s5dmQxcU9TNktJdDU0NHcyODg4NDdLQzR1eHVUSmt6Rmp4Z3hVVlZWQmtpVDRmRDVyaUl2WDY3VlNRMlJacHRGb0ZFNm5rNWpSVTJxTG9ES3dXVlBzS2FXNmVSK0RuQUFqUllBdndCZHRnQnUyMzl6Y0xKNTQ0b2s3QU5RRGVCZUF1R3JWS3QvcHA1K2VsNStmUDlubjgwMlJaYmxFRUlScE1IckxqZVVWMVhWOVJ5d1dhK2p2NzIvZXZYdjNubmZlZVdmdm5YZmVPUWd1SjJ3RW1DV0RXdHcrcDh6aXpFeWJPcU0yb0ZHK2t3emZZY1lPTkxZQmdOZmpqUThRZUR6SXk4dkhqT25UY2FDbkJ6dnJkcUM5clEwMzNuUUxKdVhsSVM4dkR6dDMxaVU4T1AveDdOTnd1Vnk0N1BJcnJQc1VSVUVnRU1EYUYxNGM5eGU0Y1F1MkpVdVc0TVliYjhUVFR6K05zckl5VEpreVpkaGpwaytmam0zYnRxSEVIS1pTVWxLQ1o1NTVCaHMzYnNSVlYxMkZUWnMyWWVIQ2hWaXdZSUdWODdaNTgyYTQzVzc0L1g1cnFyWFg2N1VpcHc2SGc1a1ZsRzlvcVdrYUJFR2dxcXFDVWdwUkZDbWxsSmhCQjhLcE9GWjRUempJQ1Nia2hBU1FHM0gvMWx0dkhRVFFEYUNHTTMyRnlzcktyUEx5OHV5c3JLeGNuOCtYSjh2eUpGRVVnNFNRQWdESFNydUhDS1cwUmRPMFBiRllyRDBVQ3JWM2RuWjIxZFRVZEY5NDRZVUhNSlNkcjQ4Q3MyUUtMZUUrQnpQZERqTU1EUUNpeWRSWklxRFppdGF0alVYakFjRG45OGVWUnZsOFBtemQrZ21tVFN2SHFhZWVCcmZialh0L2R3K21sWmZENTB2dWNkaTRjUU0rL09BRC9QdlR6OFlsNVphVWxLQ3ZydzhmZmZnQmZuRHlLV2hvYUVETlY5WDQwWS9QdFI2emMyY2RxcXUzNFNjL1dUb0J0bU54QllOQnpKczNEM2ZkZFJmdXZQUE9oSTlac1dJRnpqcnJMTng5OTkyNDlOSkxVVk5UZytYTGwrUG1tMi9HakJremtKV1ZoWTZPRHZqOWZpaUtndmZlZXcrUlNBU3lMQ005UFIzNzl4dVR6MzArbjFXeHdFNVN0OXNOVlZXeGYvOStxaWdLZkQ0ZkpFa2lnNE9EMERTTk1qOEdTeGNSQklFVjI0TUJiZ1RJV1lDeWRSMFphZU9UaDRVbFM1WU1BTmpEL1YzMkd1VFJSeC8xelpvMUt5VVFDS1NrcHFhbWVEeWVGSWZEa1NKSlVvb29paW1DSVBnSUlUNUNpSmNRNGpaQnlCb0FzTmNDQndacmJCeWxkSkJTR3FhVWhuUmREMm1hMXErcWFsODBHdTBiR0JqbzcrbnA2V3R2YisvLzhzc3ZROHVYTHgvZzRFVnRJS01qd0V5M0tTeHR0STExMFVnQXNqaVk4U0FEUzZnMXA2VHg1aWFEbWEydFVCelFXTjgwcDlNSlNpbFNVMU50cmJ0VGNkWlpQOFM3Ny80M0dodnE0WFE2Y2VkZHY0TFA1ME5yYXl0dXZ2RmZvU2d4OVBiMjRvTHpsdUFmNTg3RjdiKzhFNnNmZnd5UlNBVFgvNStoQ1pLcm4vb0QvSDQvN245d0pSNTc1R0g4NGQvWHdPUHg0R2JiNE9HcXp6NURaZVc2TVErMmNWZDVvS29xMXExYkJ3Qll1WElsYnJ2dE5qUTBOS0M0Mk9nQktVa1NYbnJwSlZ4MDBVVUFnRC85NlUrNDc3NzdVRjlmajBBZ2dLdXZ2aHAzM1hVWENDSFlzbVVMcnI3NmF0VFcxc0xqOGFDODNKaXZXRlZWaFdYTGxxRzJ0aFovLy92ZnNYanhZcXRxWWRldVhXaHVia1pGUlFVVVJjSE9uVHVocWlxQ3dTQ2Jsb1h1N202bTFDQUlBanV4Q2VlTHN5REg5aE5BTGc1Mm5Kb1RFb0Vzd1Q1L20yampYMmVrRFFsdTdmdHhickFFKy96dFNKc2RaUFl0bVVvYnRzOEc5eVNDMkdnd1kvdTJ4cVVIQlRSZXBmSE5JSHQ2ZWpCcFVqNjhQaS84Zm5PK3AxbkFucHNiUUg1Ky9pR053ZnMyVnNQTzdUajU1Sk1ud0RaV1ZtOXZML2JzMldQNTMrejFwbXg0akwyWkpWZHpDbTRNb0ZXOHpNeFVQc2pBeXJXNHNpMytjeUkyME1WQmpsSVFnQTZEM1NIK25BaHNQT0NFQkZBYkNYQWp3YzBPTkNTQTJFZ0tUVStpMXV5Ty9WRWhabnM5M20vR1lHYmRjcWFuZlhBM3RYZHRaakJ6dWR4SVNmRVBhd0xKRkZwM2R6Y0tKaGRaelNBek1qT3Q0bksvUDJWTWZFK09KYkNORzFQMGhCTk93T2JObThkY0VJKy95S1NtcGpMemxISmRIQWpYM1lFUVF1SlVISXh4Z2NUdzAwRUFDRWtFSlVvaDJLQkhSZ0hhU0hBN0ZPVjJLR0E3RkxNekdlQ29EV2dqQVV5M0F3d2dsQkJRZ0lBUUMyUUd6QVFCQWpFaEpnb1ErUklvdGhtbFVFTnFUWlloQ0FRQ0lWQTFEZG1wcWNNYVFmcjlmaEJDRUF3R29Xa2FmRDQvVWxOUzRmVjQwZGZiaDc3ZXZtUCtSTTRQSGx2TmFzWU4yRFp0Mm5UVVhvc2YyTnpkM1IzWHlESWNEby9VcWRkU2JvcWlXTXJOVkc5OERTcmhGQnpsbEJ5N3BUWlRsY0ZFNTlVZHI3SUlBVWtFUFE2U280Rk1HQVZveWFCR0VrQjhOTFZHa3lpM1pLQmpjTkpIZWc1ejlyT1pzcHp6UDVFcXM4R01RQkRZN0ZxQkNzTHdtUnFTSkJsZ2syVElKdFFjWnFLdDArR0FydXVRSkJtWm1abFc1UUJyQkNtS0lvcUxweUxibkVVd3NTYkFkdFJYUVVFQmNuTnowZGJXWm5YcFRXU2VzbzRoSXdHTzN4allSb01jQnpob21rWUpreGhEUUl1RGpVM2h4VUdQU3owWkJqRFR0QjBKWkVmU3gyYjdtU21wcE1DamlaN1BkYzdBc0gyRDlnYlFDQUVCQVJFSUZRaEJuRG96RkJvVkJRR0NLRUswUTAyU0lFbk1wMlpBVFhZNDRKQmxPRXl6MDZncUVDR0tBZ0tCZ05XdW16V0NsR1VaMDJmTU9PU0IyUk5yQW15SGRUa2NEaFFWRlZtQTYrenN0TnFROS9UMG9MKy9mMFQvV3pMQWNmNDNxNE1JRHprdWlkaUNuR21lSW42NFBhL2NDRXhBWVFoMklPdzduZ3hZTnBVM3FqK05zbjA2aW1JajFzM0JRRzRVNFBFL0crWWovM2RzVG44QW9McE9JUWdDREo0UmF2WS9BN0dVbWNBRkJrVFQ3RFJ2ZVlVbU1vWEdBYzFVYVBIQkFUYzhIc09YcGlvS0prK2ViTFhyWnRPaW90SG9pRkFqVlYwZ1QxWUI5VDJILzJRdVNRTzkvampRNDdJbndEWWVGNlVVSFIwZDZPenNoS3BwaDFUVUc0bEUwTi9mYjVtamJFdld5Skp0bEFJNnBaQWtDVTZuY3lUQVFkTTB2cHJCZ3B3Z2lLQlVwN3BPVGNEcG9CU2dvS3o5S2dCQ1RQQ1ozM2VZSUJ3T0tpNmdSRWE1amR1M2VIVncvUXpwSVNxNStEZWY0SGRjemhabCtjK2lLRnJQWWVhbHBta1FSV2tZekFpZmcyYjR6eXlvamVaSGswMnowK0Z3d3VGMHhBSE40eG1hdkQ0UTdrZHBhU2x5Y25JUUNBVGc5WG9QN2dSYlhRVTA5QnlaRTcrK0IrVEpLdEJuejVnQTIzaUVXbFZWRlVBRWVIMStlTDArNUg2TjFsS0RnNFBvN094RWQvYys5SmlUNmZ2Nit4QU9oUkFPRDJCd2NBQ1J3UWdpMFFoaXBub2JHQnhFSkRJSVZWR01xM3BpOHpSdVk0cE5WVlZJa2dSZHAwU25PcWl1d3dDY01ScVZSV1ZOQUJEWjRZQnVtcnFNUnl5Nk44UW5BazdOSVlsNXlZTVNCMkdDamdJMkFrS1NBaTRPV1BHUDQzNG1oSmVhb0pSYWRaanMvMGdJTVNwRUhBN21PNk1NYWhiTUREL2FjTE56UktDeHRrSXV1Tnd1dU4wZWVMMGVlSDArcEpqcEcybnA2UWozOTZLaW9nSWVqK2VReml0eXBLREd3VzNDRkIySHE2T2pBeUFDY25LL1diZFJ0OXVOd3NKQ0JBSzU2T3JzUXZkK003alEyMnVacHdNRFlRd01HRENMUnFOd2V6eUl4V0xvNyt1RkpFbHd1OTBqbXFoTXRXbWFCa1ZSSUVueVVKQmhDRzVFVlkyLzRYUTZ6Y2VZL2poUmhLNGIxbHMwR2pXVWlpaGl5SlpGSE5nU3BBUXhmbUFvZGtFVFhpeVN0YU5tYmFEaTFaVDFQR3IvdlpuUXpJUE5BbGdDcHo4SUlkQTBEUTZId3dJYU15OEJ3T2x3eHFkcWlJTDFHVkZLNFRMck5GMXVGMFJSd2hlZlYxbC8xK1B4b0tTMEZIbVptWEhwRzNhRjV2ZjdrWkthaXZUMGRHUm1aQ0k3Snh1dHU1c09HV29UYXdKc1gzdDFkbmJCNi9NZnRyL25kTG9RTENoQVlOSWtNL2V0MjFKdy9mMzlDSVZER0RBVjNPQmdCTkZvQkE1Wnh1RGdBSHcrMzRnK09INkx4V0tRWlVkY0FiOEpPS3FHRkJCQzRQZjdUUlZIQ2FVNmRNcE1WbW9NcnlFQ1pFbmkvWFNjdjI3SUZjWUJ6L3FIRE8wTmd4OGJOR0tERzFWVjFZSVZwWUNtcVNDRVFoQ01hZ3hGVVVBRUFaSm92Q2RWVmFEcmxCckY0a01xelhMNjJ6YUJHQ2FtcHFuVTVYSU55emRqNE9LaEZncUZFQXFGVUZ3OEZTNjNHM3M3T3REV3RnZXpaczBHVTMzZk8zNGUwdExTME5mWGgrcHRYOExwY0dMR3pGbHdtd3JONC9YQTUvV1pMYm9OaFphUmtZbnM3T3pEbWx5YitmeGlLTldkNkZ2MXZ3Q0FqQ2QraUlHMzZoQjVwejdwYy96WEhRL25LVVhZZDRIUmpzaDcrV3hJVTlMUmU4K0hCLzI2b3pXYlBKYlcvd2NhTHRid3VPTFRxd0FBQUFCSlJVNUVya0pnZ2c9PSJdLFsic3JjIiwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFUWUFBQUUyQ0FZQUFBRHJ2TDZwQUFCS29ucFVXSFJTWVhjZ2NISnZabWxzWlNCMGVYQmxJR1Y0YVdZQUFIamFyWjF0bHVXNHJXWC9heFJ2Q0JLL09SenhRMnYxREhyNHZUY2pzMXhWdGwvN3JXNlhxeUl6NHNhOUVna2NuQU1DMExYLzkvLzZydi82ci85NlNtdmhTcm0yMGt1NStWL3FxWWVYUDdUNzUzLzkvUGU1MC9uditWOHN2LzcwL1BYNzF4OC9DSHlOdnZMbkIvWDkrZnE4ZkQvLzR4ZCtmOFl6L3ZyOXEvMzZTV2kvM3VqWEQzampueXZ3ay8zeit2TkY4djN3OC8wbi9YcWp2bi8rVUhxcmY3N1U4ZXVONXE4WG5rdjU5Vy82NDdKK3Z2ajM2eS9mcUt6U3lueFFER0hISjk3bnYrbm5DdUxQdnkvLzF2UGZ3T3VlR1BuekU5dDF2dnkrSlJia0w3ZjMrK3Q5LzNtQi9yTEl2LzkwL1gzMS8valQzeFkvdkwrK0gvKzJsdVhYR3QzbFgvL2d5WC83ZnZ6alk4SmZ6T0dQS3dwLy9jRVk2Wjl2NTllLzM3ZmE5KzJmdTN0VFlVWExMNHM2aS8zOGZodGVPRmp5ZUg2dDhFL2wzOHlmNi9tbjgwKzczM3V5NWV1ZTkrQ2YrZlFuc0N2ZjlhUm5QZS96UGZ0OG5jL2tFbFBZb2ZJMWhCbmkrVjZMTmZRd28vdVUvT2Y1UW8wOXJ0all5eG4yeGZhbEdQNjRsdWQ4YmorZk41L0dKNitIbDRhSE4zdjRsWC83ei9YZi9mQi84cy8xZmRNbGV1NzJ4MXB4WFVHNzVqTGNPZi9McTlpRDUvdTFiL2tzOE85L2ZtMy8vU2Y3d1ZUWndYeVd1WEdEN3oxKzNtTGs1eCsyRmM4K1IxNlgrZnF6eWM5VjE2ODNZSW40N016RlBKRWR1TXNUODFPZXU0WlFuNGQxYkd6UXk1V0htTUpnQjU2Y3crSWlRNHF4aEt1R0Z2eHNmcWMrNTdVaGh4TDhOdGpFUnVSWThLM0dEcjFzVmtvWis2bXBZVU52ampubG5FdXV1VjI1NTdmRWtrb3VwZFFpeUwwMTFsUnpMYlhXVm50OVcyeXA1VlphYmEzMTl2YlFJeGlZZSttMXQ5NzcrNGJyNVlOZTN1dmw5Uy9mR1dIRWtVWWVaZFRSUmgvdnhIeG1tbm1XV1dlYmZiNHJyTGlBaVZWV1hXMzE5ZTduMmlERlRqdnZzdXR1dSsvM3c5YSsrS1V2ZitXclgvdjY5LzZ4YTc5MjlaLysrUi9zMnZOcjE4TFpLVjlYLzlnMXZudlYrdnN0SHVFa3UyZnNXRWdQTzE3ZEFRdzZ1R2QzZTFJSzdweDdkdmVBVStUQVJXYjM1bHFQTzhZV3B2MkUvRDEvN04wL2R1NC8ycmNydC85bzM4TC9iZWN1dCs3L3g4NWRiTjAvNzl1LzJMVmxuSnRueDM2ODBEVzlJOTdIYTk3QUZYMWpmZnkxeEMrLzhhdmoyN051WWRJZi8rYy92Vjd2WjcvMTRWN0x1K3BUYzBpbHZXeHVISjNMR0hQaVYybEVMMlcvaVplTUhkTFhXbnk1ZzluV00rODlyakJuSEx1MkorODZkc3hmZTRHNmIreTFWNTRKZTlxVHoxcTEzMnZ0OFhBZk0rOTNqVFZDR256dUUvb01xVjVQNDYwbTY0WDEzWHZYbVFZMnNMK1k3LzU4TmUzNjhMT1k1NzNtSHAzdEhQVWVUOHBqczJPQS84c3VZbFRYVEtMVnMrYXFMOFFreDAxNGZkZkxPblF1TWVUQm5sYldKNHpTQWZZM3ovcU5WTi93TFN4cmZpWE9YRWU2SURWMTNpeEdiUW1EN2tTWjNzdjNzTUZmM1N6R0hQeHh4YS9OTDl4Y252NHpvQ0YxOHE2eHpvQnp6cTlkYmVXUzBtS2RacjVIdVZzUDdQc2NRSDdmcTRVMVMxeGhyUHRMK1ZzWTBGejRRWTk1cnhwcTN5V3dFU21YcTdTSFBmbHE1dWFNTit1NzJZek82OXpZZjdQNXo4eXJjVEhBUVN6OXUwY3ExekRneGJ1VXRRYXd3cTJGdVBFakRCT3pqV3NVdGpseUtYUEUvUElKQmNkL0I1Kzg0NmhjeW9NaDhHdlhHTWVxL2p1TCt4Yy9tNldNV1BhWThjT3A5MnpmRmRZcUhmZU9pYkRPUFdNYktVeFhwc2MyVi9iVzFqNjMrWHd2WVAvSFcyTXRJYkFoUlByMmZCZWgvUUY5Rm1DQ0tmVzV1Y2YreGxBeDRtZVh3WEtYOFJVK3ZSUjg4eVBDWXlmdFRmZWJXbnQ1VDh4OXJuVzE4dVVKaUgzSG5NcUxEWDcvN2dxK2Z2UGlyNlZ2eC9weFFUR05zSHRib09QMXNvUDh0WHdSQU1LN3VVcFFETjhIRlVibmZuTUFTY1NzMk9WKzc3TmViQ0FhQlJmLzVvOVg3NjllVWg0dXZ0ZnZpZC9aL2YwMVhlRmxpMnJCV3A1Wmd1YXk4NFFtTGp4azgvNnNJZXlHVDMyMGxUQmh0WVNUeElja1BReDMvUGFqNXc1c2FvUm52UFZqSzdqK1k1Y2RNSzZ3QlJjdTFkYmZML0xoa1hlNE5sRzZsOGFPRHVnU0sxUlQrYkJqWGpsSEw5dDdYdnloRlpha2g2Zm5HMnNMS1FmdWI3L1M3N3JHODE2cGpGV2VkL0lwZ0d0dkJBS3dHT04vOGx2elIrQnZOVTd3bEwvT0F6NHpweGIzeUN6TWZqVEhjV05VMThNOVZaejBUYk0yN2g1SGU5ZFJFSm05bEk3SkxsTEExMEpnSmYrZHlWNy91VDAvWHZIS0d3NFhKamZOQlJjaVQrY2VwRFUzeGplQlZUeGFPbHBEd1RLSnJ2VXRHeU5zN3k3bEc0REFncERsY3ZmUmltdkVSWTlLR0oxVlRIb0hWOVF6VkRFQnBwT1FwcmtXUHJUenlnMXV3bm40Ly9leWlyRU5ZSktWNHA3NTB6RDJBVHZzeVZwUHY4clRkTFdPTlFKUWZPSnU4ZEN1elhzOWhDOENZa3hFeE1kUEdSdThpZ1JWSW1rcHNkMEU4L1JpR3Z0YS9VNDVnbytkbmNlblM4WlFIbHlyUHgxOFlKOW01QmNxY2NaUFdxVytYd3Q3RWpJbi9zUnZiYUlBY1kzN3dGclo1a0JFWHVuZXhNLytlTnN2aUFPeURkQjExNEpvV2tEREEwWmhNYy9nZDBkcS9UN3NHKys1UU9Ga1ZEV0NEWUpjMjFYa3hlaStBdEJrUWhQb2NFK0MvaUQrczdKMVBqdmk5eDNHVXg5RHpxNDVYV1BpN3ZFUkVNRFl4a0p5K2J6bG5BVCtHcm1pTWNxenVNM2IwQVFSZ09oOEhTd0IvaU4rR1NBcmZPOUs4U1U4Y2h2OHpTVWhxbUM2NWRrcEc4YkFKVlovODR0bjhUR0xsZ0ZySXhXL2p6a2xzQUV5RWErUkZvc09RSTZheFNob0ZQenEvbmFBT3NDMjlvZFlMUU5DUmRRalhvekFIY0FpcW1qYTBpSWNmNU4xdXpaT0NJWkZTRWVxd0Q2VVkwbENwdFlEakVTUXNTOGlUU0c0VmpDc05MNnV2WjhKZk1TVmhiRXZ2VmRKYTk4Z3dkNzNPd2kza1dDZVh1dzhBeThmNy9IdFlwQzVVMkVsWjl2SWNiQUsvME9Mc1Z2WVBwenRKa0MraE9RYnVwZDBwenV2dFVJbTNMN2JDd1VFU3N6NVdibEJIT3VIUzNQUm1NS1FKUkxTWURFZnNCSFlOUnkrbHd4Mjlsc3RCYnppUVJ2Q3h3ZGpmZEFVR0NBeHpVV0Z4TFZhQ09GakE5RGd4UWZkWkhNSkpSZTZ6SENDelJQZUlVaDRONWZQNHNQMVFIWjQzczBOc1U0cERhSW1kbkFMQmpLbi92NWNGamVXNHhVeVJHaStIWExZQy82Q3hBS1ZjQ1A4amhzaHFPWm52d1Rtc0RiMm5FRFZpVE1RWmUvYWlYN1lLSmF2OEl2UXhnNW05NEY1WUV6M0I5b0FHNG1MNzhBdzlLamczVVIwZGg0RVozWGVuTmhaM3BkYnhXVDczbnRkUzM1Qk5Bb1lkNHNEejNnN0x2cEpBL0FhS0JadmdCTVgxbjI5V01tY0hkYlJjeUNZSlNWVzVYZDZ2ZlNlUlBnSThCdEM5YXVkd0NnbXVBNmxJLzdjQi9XUUJrQU1aQksrV041UUZ3cWg1QUZZMWM2UEJtL1VlUGxzM25YaVZyRU1wQ0Iwbm8xRFgxZU1JeHZuZW9OSmdnRUxyYzZhYWt1YlZYbFlsNFZsQlFJa2JNck5UYzBkUmNla0dnaG9xSWMyYyt0NTRva1RNd0F1UUFiZWUyRTFpMUQ2UU1ZQzBnQ3FTZVJZRjh5dW1TS0FqcVVxSGlCSWNBNTVHVkV3c1pSUXBEay9zRyt4SVlTckNVMEJSM1p1V2dwc1ljTDUyRFhBdkd2S1BVYWlBd0lLbHdXcFdIUHpQZndXVkJOa2p0QXdUQ09XYjc1Z25vdCtRaFd2d0tucnZuckNtOVlMMnpUeVBUVUF6SVFMNERKa2RBV1hEZ3FoUGtDWVoyM2VIUndCYU54cTJHcnFPQWc3ZW9QWmdBaDREdUpxaHZkVGpUTnFzQmNKWFREQ1JIUjkyTURwWndnT04yRTd3OHBCYXdJekRsb0Q0SG9CNUhDTFVESjQ5UWJXQ3hUaUFvbit5QURzNWUyd2kvS0NuRVFYakhiMzV4NHZDeHpCVW9JSVc4cldvVVdncjBRYi9IT05wQldqLzFpeFR1QmhZKytwejU1MEd5c0VSdHh3NXA0aklUZE9JaGlVQUVKOEEvSVFyU2VWaFlZSlFqczc3SDIrY0NRdUdYOGtIQkM4T3ppRkhHMGhKY0lzWVZNZ0x0Z3ZVcVVTUDlVTUYwUXBqdTh1SHg2c1dnbnpZekhuVThIa3IrY0t4emRTQVR5VERZSWtUcmJ1Z1RBQ1BCV1RmckdyaEc5ZUw5SEtQNkpNK1JOR1VKUCs2eTkxYmlYQnM3aXFnSjRDMUFITGhRUkNWZ1NrVEpROVlrZTRMTlFQdklrZEpvQ09pbEk1Q2RHQWs5VVhoSTRFS1p4OCs4R0dPdDhYcXBiQ3k5b0RVNUNLeXBLMVdjZUZmVXdZd3JjQ29oWDkzUk1zRUg3b1RzQUUwYm04QVFnd0NNUHBVYlJCMEkzRkw2UUVuSWEwc010M3ZkQWszME5jaEtHeXBIRGFKalhldDFJYlUrcVRpOWs5WkpnZjlQZzFqSGtGRXpLR0c2S0Y3N0loMXduaFI2ajFwaURqalNVT29OSU5GQnByQnlHTy8rQlplc3o3NWM1MUZSVGxCb2xiSU9KbC9CcEp4MVplRWN2K2pJMTNsNCtDd29FWTlMSzJSRVZleUowdlROMFBZVk1KRngyVGF3Z3hnak9ZaXhIdFBJQ2tDN2NZSCs4UDRuMUxUZjY5TjA2dmpnVG1VbWhnQzR1SHc0RW8yQ1RPQWdFRDZpQlZud3VHUlkvOHRnczBqSHNoQkZBRkRmY05tRXIyY3hDNGkrQnVLcXl6NmdNbjdxQVF3Wk5vam5jMTFTdm1HSEM4dUhFUlhna01ic3hHNU1pR1lRSlFma3Q2QU5lMzRWSE5uV2NORGlEMWsxWkU0MzV2T3pGcDRqQUQ0Y2ZIc2hNSndoSmc1VEFGRnVmODFnQThNQ2VEVWRzR0lseTVKeE9hSXhMcDJEc3dDc2tNbnNCOEx2Z0FmSng5TndvTXdQcmVJTjNOdlJDN01lTVhPNGJFVHBZZlB2NkNnMXdGaThWMTF3VHJlZ3NiMlVhNFpITWdCYW9laVdzdUZhTkpYTE04cEJOcDl0RW9tTWVJQ2VEN3lyR3psNlZsS1RFL1NEWkxQNUVRZ0F2aytOWGpsMlpHNEFkbG9CTzRTQ1ZTd2ZpSUlaVi92LzVFTXpSSWlVZVhKbXBPQmQ0SVk4enJUUmc4a1FXK3pXOVhXR0UwUlRKQ3g0ZUpFZ0FnZHdIeWZGTjVYekVTMVA0OXNGem8zM29FUVpZbFh5MFo3REdMNzNPN0lqSWNUY2w2dlFDSXYwNFVia1pvZmlXUEQxSStFeVNCZUFQSGJmenBYUWlKSFM1MFlNNjl3MnZML2d5NkJQUEtWdnhhRGhjakVZaFFpYjJiZ0lBQ3N6aFBUVGRScWJHMXlBUVd0SmxoZi9nNzN4WEhTNUFCYktRczFvNmpDT3lBVWlvemViQXdFVFZmUmczNlNZZzNLRzNKTit2Tkc3WHdCTmpkNEhLSStNQVBjYWtpNUhCdEREZWorOWd6akdLWU1NVEppQUFnMjUzNFhGa04vQ0dHaGNWZEUwdmVDazZrNWJjaUsvMXpRZHlFbHlUcUhhNzI1VUdZUURIenVaRy9vbnBCNVlyU2ZSQ1RmVU5HWWRZM25IUElaQUp5RC82Y1h6d0tCb25QY1NQQUZaclBlNFpWd2pqR3FNWHdTaVI4TlBET3hTQ3pxdkQ1cjVhVmdJaVlSSk1VUkQ1ZThiNHFQdmk3RjVNQzcwY29ieGdwa3BBcllpK2hLWXFMcGQ4azRpTjMrbUhwa0txZ1pzbTVoSFBrbFhsditJcVp0STQ3OFQyRTIyOWJ2LzdwUWhBZUtQQnpKZ0ZTWVk2c0NPeHRDM2gzQUtJRDJpamVSbGxXKzhHTEhpUlJ1dmhsNlR1Y0srSlZoSVlNT1VJT1FEVUtaUDhMTE1obWxYQnN5REFoeWp3bWw3Lyt0anZYOTN0emNORWNEanZtRGJpaG5ST09qL2FSZmtjMkN5WjFDR0Ria0RGd0Z4U3FLNXZVSzE5WkYvcm1JUndUN0x4VGoyWk1GV2YyRmliL25aTTVLQndvUUhqZDNCWnM5Zzl6L2NkRnNVYmJLNjhaSy9sdTFFOHd6TytoNjBLOHdHejhEVm5SZUs4bHIwVmF4TmRNTDZSdTkzR2I2VVdXaG5qQmZGT3Jwc3JVWlZrVWhYR0VvZjM5cTA4bVpraTFUWCtpTFlBYStYSjl1S0o5bTl0bUhXQ0ZIYnF5WmlEV29MaUFmQ3pIQ0FkWVlxY212QkZRRDMrRHQyYnNHVjRIcVFhbjBLa1E5ZzRUTzRtbnR5SkNTL3czVjhJSzZMR3h3amhZckZBTmY4cCtJQlV5ZVJHdUN0RVRNWVZBOEpSMm0wTUM4OStCL1g1MXcrYWdLT3dPa2ZkTzV1S1d5bWlnQkF2cUxHZ0s0TTUxbjh2NC91eW9mNzZRanowRzlwQ3hqU2hDN01ZUHdSKzJGT1dOci9EK2NQVFNHOENHVm1nTkpYdC9CVllHKzBQQmh5R2hCTnc3SVRQQkFHV3FSUC94cW8wZ2FaZ1k0UDdlQURpa0FUVnk3ZWVGdHU2dDlvSk9RYzRGRlJnNnZQckYxTUdlWFQvRStnUHFwZzlXaHRTRmdBTytDSWVaM0lzS3hGN1FRZUwxY3p3am0zc3NDTWlDZXF2VG81UzRoemtuMlExdm5EbzZIVm9raHFzTHdUVEMyQU1EMlJlaG5zV0FNM1NvMndmdGh5WkFHRDUzNVhuNVZhUWx3bXVtd20wUU5NQ0ZDRDNDTmN2dTdETWVEVXlPWmo3N2h4N2g1TmdIVXRJczJEc1ZpSWJLYkNvYVZwMENNYWg1akFQM2ZURkxlQlVFbGlnSFArU1NML1V1bGt6UTNyZkhISkFPVUN4NnF0eTBjeWtBZXJzWGt5VVRHQnovR2dhdmhHUStad1BsSEZpblEvL1FPL0RCVi9rSGNHV2NBZG5VNEc0Z2F6REI0UTd5bGpCYnJqZHIvM2cvUDJMMWtXOW1zQkFTWTZGWVJNMTM0WktZRGZzaUFRRXZDU2Q4Q2pzUGkzaWYyMFRJUkdzOHhPenJnLzNpaHFCUFdEQ0xZV29NQU52YjdCYkxTcHlHMVNDUVFGNUFHQ2RwR3lmL3pMbWlUSi8yRmMrdUlGcS9Udm1Gck1kZk9Cbnh5V1ZMVzdEdmlWRWlrZUR4QTFXRm0wWHNoSFVCNXpCck5NR0UxbTZQTXdoUllFMHp3NW5RSGV6YURWamVJQk52akE3NTdwOFU3NFJqTFBPazNQZDRidStmVUJSWit2VEdjdmtsdjhvOUluQlA2QStwSkp2aGtWaEJJeGRUaEJEZWd4QlFOcUprSUFpR2ovLzRuVHRqOE4rK1ZMcmZDYlh3NTRWQkJST2lHd0dBNWJObHZDMXZUT0FKQ2l6VGNZWjBvZ0lCN21ObFpRNHZ0ZzhlZ1lWUVFTNCtlS2JOZGlEY0Nhc0RCelJONUJGOU4rV0pWdW1IUFJWK0JNaThUL21NZnFsNTFDMGJlZmRFV3crd3Jua3dBeTBFNHdsaER4d1RpMERUV0g0dzNFdm9Zei9aSFJWMkI3d3plSTJ3TitucllrVFByNVE5aXBYRi96S01pbmovSWdNQlhXeHB0aVp2NzNqam8vR0NhV3lmS1FLMmMwRVRMNndOSWJvbnV4WERBSm1PM0drUmh0RnVkcmlhYWtWSjg1WTM4U1NaUk1kQXVGeklVM3h1WG0rZVoxNG1hajBCd3lhQS9jd09zc3FtR0VCU0xuMWdHYmVIbWhOR1VRTUJDVWJLeTdpVTBSVmpOY0NTQW5nRWFya3NtZFhBSVZqM0NuU2pESkkveGN5QlRHUXpPNkk4QjUyUjFkeTRhR2d1SzNkQUdrQm8vV0xWb2tlcXNzOXNEdTR4VnlBUFVHVyt6OFIrc2ZSMWtzRXBuM091QUZBMHo0VjBqcW1TZStLQkVhaS8wb1YxWUZmTEIrZURQWU1XdzZRRndRZDJqSXdiZ05zMzRGcUxIWU1JUllUdnM4ZGtqK0hSMTRLTk5jMmRUOUNiSDh3bzlDOTQ2TldNLytJc3NjbnJKS0JETHdMWE5GNW9ubWVCaElaQm5Pckp6T2lSemdNNlJoRGszOWlKYzBob0V4MTNySEM4V2FiV3ZXK2NCVGg3TWlUWi9EcnhJUkhLc0RkQ2RvTlk4UlZIS0FEejlxelFROGU1SUFOUS9PK2NsajRCR1lCOFJJNDhBUlRuZ3JFbjNCeUZqUkRiclBpRnErVVlBV2hDVFpsZG93d3Y4Y2pNMkY0M2wyQysrYjZKdDgxY1hzOW5mWWdvQTBZSVBnTHNRTnAzZWZ6dFNUQkcwSENiNmFIV0xKNXd1a2k3UnMrOEFiU0hUNFdEWlVUcGpTY1hlWWZwWFQ0Y1dDeGdOcHUxYzRRVkVzQzVhNnlkcFJ2Nmdqb3dQbXE4a25FSk5BRGc0bm5CQjFPUXFkMEluSURZQXNtL3E1OGpNTmcwUGdqSHdPODhxbmpqUyt3SlVCOHdDZzdYSUpWUUhVRFFPTGwybmgwSG5hemZuSHhhN2RaRStLWGlaTUVjandvYzN2NmtLa1g2Q0JBTEZoMU1zV1d1QWxUOTlvdnA0QWJmSXBSZzIxZ1g2SHZsMG5OSnJZc0JIL3grbVVnejVueG9Ib2dWTEdzUzN5c3doZ3hoZFNxTEZFNTBja3NzQllCQTErZmlNL09UUUNUSURQakpkWHNZaUQyOXRiMWNVb1Fid3VYUGdjT1F5NkFGY3l0bWc3Y251UjlXaDZ5THZCRzhDUmFiTXBIOVBXd0hPNWRRQjVUOUY1STZLbU1ka3hnL0NadVlIYXZKSHNONzBMWVlvNnhtc212Zm5jMDhZS0ZwSEFUNElMRXNGUi9WTnZFUHMvOWtoNndLT3JPaFB6UFc0V0ZEZldEeGVEbnNrOFZPN2dYNkV3YVNZV2ErY1VsUjhYdHpTV0FxWEE0WEdjcmV3ZDNrN25FUTc3bVEwTzkza3Qrcy9jVkdKcE9ra2Y4MDFoYVZRY1NJcmlFT3pKNWl4Q3c4ekdNY2RjN21CdlZTdk5FTGo5aU5DL01wMk5FRFM5a2ZZUUxXMElFbU5JZXFIbDRVaktUYnN5YlF0TjE0V0l0WUszOERxVEliV0dja0ptUXpPSmM2ZW5xNGJWMVR6UExpRGpSWDdOd0VUVW9KTzBMYWNobUlmRm5Ga3FGR2t3T3RzeHozU29VUHZnamRjQXNVeWtsRHdUQXdOeTdWRTArV01KNkRHK0pzZ3cxemY2c1F1c2ZOOWQrZm1zTGp6R3pLZmx6S1FjQi9ReTlnSjdEM2llYTJrcVlBY3VGUUFoejN5NllvUDA5Y2YzMGwzRGVMVDI3WXlndDN2b0pPblkzOWhJNVVncDhGeXVRUDZzNzd3aUx4QjRIK2VWam9nby9pYjN3MWlKdVBCTE9KVjFoMjhJdjVXeUk3c2FpdVRyQStCUml5dm1heGdXeVdXSWJRUmdnaHpsNXA1VmdRbW1YVUFzc2hpVmZQcHBvdFp5anozbWI1WkdLeWdRUS9BaE1BWDBTZS9zNXRURUlIRVdjck5XR1BPVzAwSDBIckM5Zkh2V1lpREJidk1YRDd6Vmx1UzQ5K2NSWXM4SkFXdi82bUxZaDUvSXpsLzM0WTBPVjVFSmRyalV6R1ZxMkF5SXFRTG5GcVA1VVI2QnplMytOcGZBVTQrL1dEWDk5bU8vakJaZFZxT25VR2VFbzNrZmV3eWNTallLa1N6ckpZMFlEZEFPbHc1S1ZUK3hQam5adzZRUXVRM09rQ1FhTFJrOWptQWNOTTJYSWx3allVdHYyY1NTU0RBekg4c1c0bCtkb0pubnZ1RnN0NFQ2Vkp3dGVnVFNWc1hxMmNZeThOUmR3ZkYyL1FRZ2RtZUFndW1NMzhSZWpKaEtWSFZ3bDcrOVFwaUFiemtJc1lJT2hFTS90YUV1b0dTTUU5Vk9zZXA3TE5nNDBJckFYaFhtNEZrckhxbnF4dERCejlCQjZoOUVIQzRBbklVajE5b1NWakd3b0N2R2lldGQwVnJ1akI3Q3MzMEUvZWZGc1RnVDVDVDhZeFBZTHVVR2JjNGdWeUkrb3YvTmI2Wml3Slo0TVlXY3c0eFdhVklqd2huK053WkNmaWwwamJRWFlvOTdwWWZnZ2s1QW5VSnVLQkRvVllBSHNZYWdyZXNIbCtEaXlXNXNjQmVGaHdTYWpURzNPRkU4d1AwdmF1YTkxY0VpSWRjSzRwdnFhTU1ZTENCc0NYMlAzakpBREwxMFhtQU1nUkNEY1Jnc3VIZlNXSjJnSXVMZ3Q3SUtlM0NKQ2UxM3dqdmpiVUNwNGFxaExaeWpwWkpqWWVRTk1ldTBrRXp3cTRkeloxTGV3STRaVmJnb1JZVlFiUDNkQ1c1ZjJnUVJjWGt6eUlBd2R4Vi9RTTFNbFVUQWduU25iUGt2QnNERHhjeElsdUx1Z0cva0NOZUpManJ5SS9JQnBadlZjam1NM2dna3lUSTRWek52bXliY0NGcktTeUlOZlJkNmcxQkZFcVQwcVl4NENkbTNqMXZCeXVaQ0dKbEhhdER3R1JjRkhyYktaVlhOR2pRZXlKdjE4ZUZNN2lnZlhMQ3l1WWc1NTgyRndRRnZrTHVUV0JnMElwYVhKL2NJdDh2eDYwYmowekc5TzdTZGZydVNYamFFOU03KzNxY0dUOW5udENMS3pWWWc4Q2J4UHVVYWZsWTAwckdwaUFGUmdFQlRnZ2FpN0FqNVRDVmlYMjUyWTlEU1hFN0laeTVCZmhKNTR4RW0ySTFORTFoN0VIYXdMd2pBSXArRjd2QnY1YUxqYVB4U2RBaDZjdnJNTGp1Vjg2ejJScFJldDhlZzhNRFBhOENIQ3NBUmpTSUE0eG50U2haU1B6TXRld1BsUUNXRGd0bFVpc01rNlZ3Wk5RTEMrQnVSUEE4cHM4SXdDTlIzcmkxdWc5bzBKeWUyeWQrMlhWbWpVNzBDUElRbUZoa1hneHdtMWFMTzdJUE9WUnJEdThGREs0Z3JDMDViNzhnNlMyL3FMMTcxSVpubXo2dEtwa2VrcUhDc0Vpc1BiYU1pQ0Q3eEtUOFdvWTBJaEdHU0wrWXpVUlRJUlZnNHZ3MjlmRGo2QXMwTkVHdTErbzlLUDlQenlZeTN5UWMzMTd3S1dkTmVRVHNvZElJaU1SMTNGL2xDb1d2Szh5ZHJ2TmFZRUdYUENHMHpaUFg5NkFwMllyMW1CbVdCcDB5bE1tZ2ladWlzUUdLd1ozK3AxalBtd2NxSVdBRkNCbjREU1NLMUhaUElXbmFRK2g0VVB5V1U3U01QL2swV2dsZE9IdU94ZFVCM3QvZDBqQXZFNDJCL2ZTNE1EWkx4RDRKbHB5ZTdLTjhXWWdrNGlBbXYzd0tJZ3I4ZHdDQ2ZZaVc1MTFFem9lTk5wRjhKNFBTSkhRMEY1a3hLUGpCODVqREFuUkF1TjU5Y0pEWTE1UGdYQjloTXM4NVlIRUdlQkMyTGhxaGZtRCtPejdTcXd2aEpUMWpFK2MzNzA4V3VlOUVhZFZzNEpoR2RDK1UxaDFrdHk5S094MTlDdENNVlhFcFp0aXlkWTJBNGdtMXZzQTdWb2F0L2syNGV6VHhodkczaXhYd2k4SlpNTnlPMjRuWEVRZjFMNUhMK1lmZVZ0OEluRE5DT2ZRQnV1WlZTamQwK2lad2s4ZDJ3eEF5TU8yejRnZkhaSGJNRWhDQ3R6SFlnRllURnZOMG1OQzFTTDJWaVVPdUxJSGpOcmlrdzFmU3daaVl0MEgwQ293dVlIQXJSR3dZQkVCc252eWxlYU11WnpIY2w5V2VscUlTeHl0dzB6SG5ybi84SlprYVlGSElPTTdvc2pEVEhENVpFUlkwZk1WRHYyTk1ISUEyWWlNaDIxOFlENXM2MlJuV01uenRjSjM0SzJRNUdEUkhlcm81dzJhcXZwd0VXSUZIQ1Q4L09EUDM0WlhFd3dlWkRpMExDTkZFMnc3QWVnM1dFYUFCUElJKytpWEI5Q0t5WU5LWE55VFNjaUp1UlRFWnhqd05ZdlppWlpFYmlCWm8way9uQ216MzU5NVNGUFhWdUFUWXFFREVNZ1c4UTh6dzVEL3VBaVk0Wlg1VmlnVGRtb1JUOEFpcGIyZ0t5NDRadWFLQ0hNQTZpdWZIMGI3WXZFT1llOUZ6MkdjZ01IT2xpbndUbENBNWQ0UWM5TlgzbDA5K1FWRENRRHhhckNvaGs1QTd2S0dqM21LbHcvSGVPRGxuazkrZmdweTV6MFYzSEM5WWdVTXVCV2hMVmtqQkJnR2VJUU5WOUFEVVdQSmlRNUgrTXhRMFVXYy96d25oUGRnSGNYY1JSRUNpVEZyWVhnRXFSdUhSdlBpeGxjTm5qS2hCSWd6c21JUUdKd3djNWdzdkh6aGlNUDFnTHY0WlozOEJUYzM5L1pJNXlSSGFsd1c2R1pNSE9Xd01uYURHT0p0bGZ5WUpoNkk1NGxybm05a3MxYzFIY2s3WDE1aUVhSEozTDRURjM2eG15eGt5M0I3QUpXd1Y0Q1FETSt6Qm84UW9GS0tDQ0lQOHI5ZHoyazZvaWhaTW90VmdGR3ZSUm56UXA2NDc1bXdsamFNb2lnblBkdjR1dktkTFFIS1N1Y2pVcmYyMHZxU0d5M0FsUUhqQTVwa3p1Wk5PRzMwSFYrUGVqZXVUM1R5eUo3dzAwTUZvMkFjalUxbS8va0tBcHYzQmRTOUtTdFZMSmYwaUNCZitTbFdWdUxWWmhDeDUzbURxQVUvZ1lkYlFXN2VmcHRPV05YYU02djJUZjRzK1NyVUNtcVFpSUR6Z3BXV2JYRVpzU3lLRHAyVkczd0dZVDZaaks5ZjVkVmRoV050d2NaTTBTS29ibmh2REI0QXdwRkR2TjVILzRHZUkrekZTVTkwWFdnZ1RTcEhlQWtoNUJ0MDVoMWRvbXFsRnR3VWlFUDNZYUhxalZRdjB5TEZucFV2ZW9acndoaHYrMURCOE93TXNDNTdpeERxMzJ1bGRpdDRiSkZvS1RGbXk4U0lPVTJ5ZU9wY0xSeEoxb3lxV1pEVnFrWlc2MzNNb2lyZGNPQnMwY0Jqd2tPclQ1L3REbnlHOVNvUWpYaEphVisyV2U4Q21GczN0WEJiVjJkeGhwV1BlTEY1U25NWTFWREhkcU5Nc2FGOUo2UUpFaGVYYk5qUlNiaG1PTnRVN3JKNXNEcmk0L1FrWlhsWWhmaEE1UUg5dzN3Vm92U3pGU0Y4Q3ZscVFvZFhqTXM2bFRaT3E0OHgxQ28vVU02S0dxVHd1Yi9ObFhPRHkyYWdSQmh2NWkzUi9qYU5RRmJPcjVkMkhVanIxc1QwOS9FTS94UlhuYVFqTVJEKzFRamdYSEFMbnUvQnNPUnR1QkRyVjZ5bXp5Y2ZjcGRML3lERzRaVkpiYy9WRUNwOU8yNDJaUUZnNUlkZHNSNk1PSWVFWVlrdzZCaXlyb1F2aEpNcnVqeXd4Z0MyeDZaRmFaVXM5a1YrY3VHYldCSGI5eWJQdW9xOFc4ZTc3WlJCRWNKRVZPb0NBSmQwM2Q5SjlBS0VIbHdQUDFWRkNLUytaZ0poYVVITHQzajRzVzF2MndCUm9KSFlQNHVCdVhtKy9xekxFMWwzaWswQnZEcG8xMHpOUURSdjZ5Y2FQTmFUd0dMaEhnU1lTTWEvQ0RObzJYclZjWVgzZ25kZERaNVBJTVNJWHV2aGV6NUgwdWhucUhDc3l6d3ZKdndOM3JQZXdTS2YyMVJFVmtmZWtINkMvM29BdXdzejJnVkNZUzhFaXdycVlBTFpKUE80dDFrMmNCTTFpSHdIWVMxWDl6VDEyMUJZMW1ZL0hrU3RGeWUrYm16aHRscDJ2ZVZXYjRiMmVVTHdKUXRROW9zVWpCOWVDR1VLY0FDYkg5Z1FjNGFuSU1uY2FKU2xYQXQyK0x6UUdtRXlXdkVIa1BZT1Z5RVNZNDlKTmZ4cEJ6QVc1VEI2aEx2Q1VWOEVuR2tzcEdTRFJKeTRENzlGQkpVNVVlSXN0dm1iRXVBZWpiMnZwdXBOTWxxVFhDMTN4enFnVTRRRmx2UUoxZE9TdVMvTEpJbkZtRVVsRElBVWNIdlRXM1Z3ejduM1dsZ3NrTmdpRDZJZkVleTlUeFV6cXF0WTN5WXZoQVpjaU4rZmJrd3JlVEVuOFFFd2VIc3dvM01iZ0xjRm1obWlUZ1JBc1lCbkExNWs5QUZmWEdud1pWbFdiVWtaOGZ0VTh5SzRDV2tLcVNldFUzZUFJSUhRc2pBVDFRMko4S2dqRGZSTWg1Mjc1Mnd5Q0FqUFB0WDBsaVRlTnhvZGFkVjN0dGloRG8zTkl1bTBqREs1U25lRkpWdTgydDh5VGRkL25tcjZ0NWttSURLbkMrUElwNHArM2g3WVdjNWEybzAvUDJodXYvSGFqL3gvLzNyOUp5L0VRTCttdEE2N2JvczNRZHg0OWhlc2N1Tm1leS91RDZXUENsRDBnUkk1cXE0SlpjR013ZWtIR3F2VW8xWlBxUnBFUStoM2oxSHZ0cWZzNTBOQ3dKeXpaOStReldsNS9wUTAyK0ZRb1JrVi9QTXdiczNYdWtFTE9PcDlpaHlOMTdDUTVGbnVhOGZXWlNtZWFGdHRBU2xUa1lZclJRODFLc0lodnhXcUFTRUFnMUJkSGdpaWtwRFd1R0REWHdsaGZydW5pL2hiOXlsUXRHVFdnN255VTFhUjBLd1pOZzByVHMwMm12c2hVQkRGVE81YThFKzRHcWo1dE8yN2FWZmYyZ29zdDdIcFM0SzFRWjZBNXh4Ymg4cENQc3gvVkdMUFQwWjVla2h5anJiNVVKUW1TaWMvVndhbHJMdDZyRklEQVA1aFBOalVML09CbW1sQWZ0V0FOSi84VndIeHBPdmZDQWg4YjJIZjRBdUlaR0ZFQmxEdWN6eHVreUErckVKOGdrU21UVWpSeFk1aTV4NTkyN2tRWkNXdGV5alhJRVVHem1yWUd6Wi9lZkIrRTJxSXcvM2U3R3UwSCtXenlhTGUxNFp6eGVHaDJwdWg1emdzNGQzREQ1czdvaDFnRmphMUlpR0Mwc0w0dGdiSVVzSVVJVmlKdXdkdzdjeTB6aERtbUt4bEp3eG9SZWpWSXhJTVR5L2tpSVY4dm1MOEFrNmdWd2FGZEgrSVpoRHI1L1NYWGN2YURzRExpb0k3OW9GSEdadFpIeXR4Tmh3RWpJSkM4dGJiVnVPMUxIMzhpb01LQ09McE5hViszZWQwK2c3NFFyVE85QVVvdVdVVEdQYUNUSXROaThlR3E0R0gyS2JjRlBIb1llaExrTERKRzFWYUw4dTh4dnNoblR6NU5tY2EzM2RhUzVUTmlzcmdwODFMck1PdzJDMTZWNFFMbkRkNS90ZW5EUmxwWGo4VjU2bG15N3JZN2gxZ0NjTk9FSDRYLzRRVVBmT3dKYThNOXZqYUhPUlpTTlZPN1pQTy9IaGQvSWR0dktzbm51RldBVmI3djRMbnRESmNYQm13OXVoVkNSYzhyYmZYZ01BeThlVU1zRnVxa1BNRnRWWHpBckNzZDdFMEl3UjcxQklYeE1valFTZS94dHZpNHpETDU2MFFpSTVyTnUwaHhnOTl3RWFOcTJjQ3VjSzVuNDZCL21wQW8yV1BLbTdkS1U1NzVsRkJINFQvRlZjMkZ1MHBlYndKb3FlV0ZacEQ3RWV0UUJyU1k0M3g2ZitJbUNDS0ZwNXZUWTBvNVhrWHZMb3BxZ0R6ejJwS1lqTXFTMVVIMk11UGhMcHZuUHdvdDlId29wb3dEdUxhT1oxNEJTQzJGS0tCYXl4Z0RTNE1IOE0rSldGUW9LZEI1dUJIWlo1eVNtSjhabU04WG1MRllMeHNPcG9qdFBIZWZNY1FEa0xjTGc5QWNYdW1JbVNvMmM1WFN6Mm5hWUZsVVNNQkJhT1RRV2VyMEVHSzBXWG5xWCtiKzk1b3d6c0U5YmtsSkRNYWg4eGM0eWJYU2dSbDdnM2ViRGthWmxUYTV3NVB1MDdaT0tUNmQ1dndYYWFOTUQzQ09ZcmZQalUrUGRTZnZGSHhYTVFTR3NucHRsTEhYTTJyWG40dG5FUjZvR21lNm5FeEd0T2FZRFNOeFZidnVvblhZTndnU0FJeTEyTjVWTFJhUHhOMVlHeFFMU3dydktiNFBRYzF0STE0VHFmazcyQUdMbTlESDI2Q3FWaVk1cG5DbGMvRndzcHYwMGVCTlVmY04vanpZK0R4WEpMYlFtVFk5eFRQZWRmY2tHbnJUdEdaWUR4MHoya0NsNm1kblE2UE1OdGRUNEtubU9GNWY1MU0vU1hEODUzV1FmSDVCNTBQTmpzTDVQcFRmdWNIdFgveU96L1puWlBic1RUbmorek83eHdPUWVlUDFJN2lENmVWZXVJVWl4VjViWm4vVUxqSTdaMGxxRjhMbG1FWmlkTnRaK1l0c3drU1NNVzdad0xFUEpIaFF1aDdCSUEydHdTQW5Rc213M01GeW0wa2lXelRHc0JHUE4zRk1sMzdraXJ4TFJNSThiVGFQVzBjRjVRTFhxWFlSekIrdHAvY010RDUzdFk2dlRhdklwSlpQeFFvUW9ZcmdDbDdPcFdHNGlLQXJhMEM4ZGQwWlU5OWlGMDR0NW9VcndoV0x0aHNBRFlRRW9xZExRMlpjMC96UlZ0VFdxemE4T0FwWUxvUWRoUXVKTmFnZ2d5R280U0lpSjZqSFdtQlVQUFVzeVRCUkNRaFpFRzFWOFJEOGZyY1Q4Ky9mVEwxZ3NtaVl2QzNrK01paW1XUGRqMElGVkN0OWEwYjMzOExnc1B1cldIUkhDclZFKy9iT0hBVGlyOFhjZHhOVHJLaXFJYUFaeGU0OWxkcUJwRzVlSmoxTW45SXJHdXY5U1BkY29BMnJmQ3lSV1VvWGI2Ukc2TEdQbExQODBhQjZWdERsaXd2K09idE1ScSt2T1JDYU9GVEl6bTlaWDZLck1kYW9LRTIxQkdoUXI3UXJVUmlPRGhMRWs5dUdDUVlkN1lSRkNUQllma1FDL1E5czdNU2lBVjk4VmE0R0xhRVVXemJxRXU5MkdIb1U3Y1lIQ0grSnFqRUFxcUVacHlZejVBcysybndlalBhYjNES1FpSllSejB4UHVWVWJyRnJYN2FkRFNuV0xVZkZOWWoycGRzbEFKc3dock1SSG1zMGVjeUsvTEQ1U1MzOTJwRG5sWFJGdDM5aGs4bVNIbVNNS1FNN1pLMW9iVGJwM2dkSjgvM0hWNno2QnAwaEwvamVIWjVvRGNHOEwzWWNpOXozOTR5MUlUNXJRN0Z3dGlPQ1dVeVRKSldMK0N5TmVINFQ0bUNiU0R0MGVLYXY4V2FvSS9qM3AwREtKc2pNWlNRNGhiMittQ3BBc0N3ejZtOVZaMjVEVkp2V1hac1ZyZUV6Yk1VUExuRFoxNzM2R0NZSWhxek5YbVlZTDN6Wnl0TGtvWUt0RlhxU0xjM0VDQURIbWx4cmtqQzN1TGxKRnJ1c1pVOUxMQmtWdW9zRkI3alN5VzZDamZaemRvaFZ3ZS90Qk9yN0h0YXdveEllSzdaQ0xtWVBpTzRYcTJNdTFLUks5amlHVGNQQ2gwbWZhb2JaVG5YTDE2RU54ZlE5L0FvRFlYZmhOWGcwRy9WWThkaXUwL3FTMlR2N3A5RXFXQkMzWlhkVnVBZkV4V0t0R043cStaTHVhOWViZFMrSWJNaWtXY3FrcG9XTjdPVXBhRFNoUzR6N3FmZ2IwTk9EMktQR08zUXA0Mk4zcG9ZOTJkRnBDalFDc01tWlM4RCt3UHQvdWlUWnUwNjBZQzlZZVZ1SDRQTysydEJEbEFQV1E3ZW5vRU8zaGlYN0c1NXJkRkgxRTFiN1pRVWMzZ1d1NG9nZjhOWHR0UW4yQ09HbllJY2phOWdSWlB1dzlSVjd3RkFrbGllS3o5Y0dlUmloM2F2SWFIUzA0YWhDTWhiYU4zMGVTOGNCVlRwNUxIdk9pQmdJTFdMR3dCcHFxL0NjaVk5d2taOFdmOW1YaDdNRGI4cUxoQm9IWmp4VnREMFpBbmpiQm8wQ1p4c0F4bUU1Q2xTSEJidWYrL1RvUkdNNGxwMWh1QnFOODBGS3R1RUFEZFIrOG8rTHFJcW9RRm5jbGt4M3hWNTJSc3JDUHRpalU2WnNVZTVUOW1VaFpUUnhpeW5YRSt5MzhyejIwK0tFVzBOajJWakNZdlk4c3YzNUw4TmhXWitDYTZYTEdra0xEZ1BCMUp6ZWJTVjBoUnR2RHpHc0ViVHZQaWVQRmsvTjR1blJ0KzNKVXNzeHd5NDIrMEJHb2NvdnNZOG9CTENkcy9JYnptRW55TkwydUVlVzA4a2hoVlUzRWZ0dUFBVC90a2V2eXVFUXdkMHl4dUhCSXZZUjd0d3FCTUNUK2Zna0czcnM1Zy84UHhGWUhQMHdqVmVZU3pMcDlVWEFBdWpqOTNEeUM1ck9qOXdBU0ZQN3dDOWlSTUk0dCtWWEhYTzM4T0o5N2pRVml2S3djK0NETFRsT0FXTTB5OUhXaFNMSEpnbnBucHQ5TnQyMkV1N1hJMmcvMktKcDJ4VWdKWGFxQ3FTUFI3cDJPQ2RvS1ZLamdhWGh1ZXlHeDVreG51ZXJnN2ozdmQrcG93MFRVYkI0anlTQkpPU2paWitiQUx2TVBVSG9nS0o1aXZQeDc0YndlL055SGxoN2ZpWjVnS3JBNllBd25UYWRhcFUydjRWZlB4anVSSlRBMyswcE90MjM3TnhwNEJyajhpSWRKV0VkUW42SVlnNG13Ujc1dElEV0E2N2krb3pjSU54STdDSlhJQW0wc3ZCVW9UbThBS082VGxVUUgvQzZTdDMwcGJOaUdpeURoWlgvZWxaaEpUR0x4NElFNXg2d1U1NVc1UnY1WittYUp5S1hmVEFCTE90V2NNR1MwWjNvUGtTZ3hSaXdUbFEzRERFNjFhTU45Nmg2aEFQZ2oyZHBRRFkxUWRqQ0ZadU5ZOGw0NWtnbkdhQ0RKclRjUndWYVQ2NFI0OGNrclN6NzgxL2szR0F6cHZMV0N3STlaUnRRWkR6Z0JrQWdyN1lYWTZOV3dVdm1NenBHMXArVDFRL05BN0hIUm9EYVJKTEduZ1dIMy9GRGEzdUpIc1JLTFRCQ241TmRzczhQM3F6Ym5neUw0SUlWQVlYd0xzT3hwd21lT2cwYy9iditqSTVRU0dUSnpiSk1BMnF5TkFEdTlKMGdsODVRZzV1dHVnVzJmV2FBQ0ZXdlJ3SDlVaFI4QVdGekdyLzZHZ1JkQzltaVozMllkU0s4WVVESVUzUEZKcFd3UWJ1QlRuRXhmdFEyVG1CZjlzT3FPQnJrQ01NL3JhT0pSclBHT0pwRjFnKzAzZUplR0ZTeHpoSXo4S3dldjZ4SGtUbEtKVWxrVWZWbko0ZDUzZ2t6dDE3SEF6eEVzSDJReFY1Y2F3cTNLTkllUjhsNG9BSkZBK2dmTUx1K1o0b0k0R0xIYkxScDFyaVlQVkc2azQ1c2lmK2ZjYkh4NDJYenI0SE5RbVRzOGJzaVVKbXNsK0g2b1lqZGRQU1JjcFlkM3dMblBvVGNabEpMbTkzL1pZVnJxbnpPeTFYYVliYmpoYkRHK3NZbmdPcEpubityaXRmM1RCTXJzSTNIRG5tRVlCcW5aVWlDTjVFaGo3S253S0I3aG1wZXJLQXpaajdMV3VBY3g1QmVtMG1zajBBV2xRcFcyMkdUbWtJeVRadGxUcEUwRE51S1htdFBVM05rSVd5Z3lWTjFvM3FhMDdJQ2dLdHNaNTRPUUlFa0tGYnJtS3QwbGswd2pKNHBRaEZvdFQyK1hpekcrT3hiclF0VVlEWHNyVm13aG1EYk85dTFnYVZxalNuZlhCR0dVeDNZMHJGUjhHODVFTVZWVFJDdGFTcnlqT3F4aE9OTUFicWpmY29mOUwzWlJiT2t5WTFMZy9UQnFXN0xmeDlsMXluWXU2ME9PcnRtOVNxYW5IdTFkclZWbTJLUlhvbnZJVHRtYjZjZkZKYlNOckdJcTNqWFQ2NndudUVocHBEdWRZSHdkN1lCOWtXOXRwb0pPOXU1UXNQWGVMNnVCSUk5SUlvZWpOeWhBTXNVRU93YkZzSFczdmRKWmVFaVA2TVZ1R3RVaUFYTWR6SW5BbWRwNDRkYXg3L1hQL3lyOG9mcmYxei9BSDVhT0dRWk8zYk54UklkSDV1WG5SQVRQVWk5WlRYYmltcnpEY3NUZC9UZEFoSnFzbEVYTS9Ga0RuY2hkanZLeHNrNVlaNUUwLzFjNS9UYU9zenVTSkxRR3NRN0d5LzUzRzNsYW5Ed1RiV0hBbGNmaXU5UkZwYlppNTB0M1NpQldBNVhzRWxhaVpRL0hMeWFFaWNRSS9CT1NNYlZiNDlSa3RWUU5zZWNtVDVJWk0rSmFtK1lKeUxXWk5pRmdXQml1MzRkNDdKY25UQVNUZDNPQlZYRFZ6eENocEpWaHcwc1BxTm5DOG5QSUZEOStINXNuck43RlNUMllvWlZPdGd6cjNKWXh5MGxkQnBCOThEWlFUaEh2WVAxRVYzTGRSTVorS2tkeWRtRVNMbUtzelhnbnVneGpEb0hsRitIZUVHUXVoTXVjTHNWei9URDEwV3FUN0pQTUh1QXdHdXM1andkaVMrV2pVcXI0eUhhRlBTRDFSQjI0WHkxSWdrc2NKcTJYenU4SUp5WStrMC8xY2wvMHA2UmNlUTYyQVZMendGK3k3eUpjbndpVzlCdFdQeVFET3ErQUNFeXRXMzkxalFMalptQXZpeGlrbDlOVzdac0gwQ3VWOGQvbmVGVUwxaitUUnU5Mk53UDdvMDltUjA3ZGJiM1o0dDJSQlNqTTR2VlpjK1pSUURsUmZ6TmNkbVJCYld4bGZPMFFyV2Z3WE5JV2Q0Z3Z1eGNFakcrM0VVOUpKMUMydXpwdEhKS1FoU1ZDTTNoZDZETnVLWFhadWZBQVZzdUFCVGUzeDVPSWduc2RscXhseHpnWUYxQjFiV0p4T2FWSWJVMkFGMWw4T2xjbTJVYUpYSjlkYlAvN0g3QzBMdXBDOU1OVDdjc2hOV3A5czg5Rmc0b0tyL0tmZ0NvaFBpckVYbWJMZDRtdXJWaUd5ZWRhVG85UmJKUGZmd2E3bUg3RFBBTVM3RkVYckUwenNnUjFOTTRNMWxneXJlalJDcDRSNmd3R1dIVnh2VDh1aExXcWkySDZCdEgzamlKWWxybmlac2NvcGd5d1lLWU02LzM3cnphZ1FoT2F1R3VzUGVxOHM5bXcrNjFTaVVvMVFRZHQzdmVuR01oeUdLVTRaRW1oQWZrKzNLNGJrdmRMSWpaMGFiSzk1eUx6Mjd3TllzTCsvUFlEa0ZET1BPMDhsU2dja2ZWUllkNVJ1dmRVS1NYYzRsUWxJdUFnM2lBTjV4Q2NTcytYK2dBU2hqTDZsNEpLQXBmZjVUWHdZS2pLbTN5M0Y5aE5lUEZPOE83N0d4MHlvVkROTXZIaFVBQThQWEZ4OEVucDJPQXludFM4Q3dpYTJkRnJ5UHZITlhHMzFBVDRORlc0a0R6bDd5T0VEWFVrK2FrQXU1ejZoRTlNTnNxeVkyNnN5aTF2OTBqVi96YjdoZEUyazNzUCsydU5kbXoyMjR6NU9LTUtRR1A2aTBRS2tRNE8wS1NzOEtTVXl6RForSEVNemRFMWFwUy9lVmFlem12QUNPSHdyeVpDMjRRRUhBQTExMlc2ZUpka0hBN1dlUDRHWGxrU1h5dzZyYmFBRXVZUXpzTC9rNEpHU3RzeHpRZ3ZteFBzRnQ2MldCdTNTNTBWY2lxR3lyd2dXYk4yWDZ3Z2Q0dGNXQlg0QmI3Sm1RRHNEZHg4U3hzczE0ZFUvQ3VNRnVZbkszZWp2Y3N6Wll2UUxOemc0N1VPM1VoK2h3cUU3ZURaNzluZHFtZC9iQXZxK214SEpRWC9vL0xvcG83bjJGbmZKbElzMWpPWExQSVd3NTJObStoMHBsZWwxUGdMSWgrb1lKd0F4VHgrSWdjTHdwMU9hdkZnR0Z5eGhQbVlwUjRpM1hKYWFObHg1azBaNEZYeXBjK21leGFhU2RYeDM1VXMzWmFwNk15VzlXaGxtbktkVVlJV3REN2hNK0lZU1A0OHRBYzVRSFB0bjhtQmllRGZCNjZubzZNV3c2SnFGM09uSDNzeGMyNERCNXAzUXlNWnpZSFhrQTlVd0lSN1ovdEY5cTJtNTRtYW4rQ2xucTJPbXZtbE01MEJ3UWtTd05OUlc1SFhqb0V4Z2hKUkxKUkhSby9sYVE0TFNReGVycFI3SkRFZSs2R2ZIcUpLOEVhV09rM04zUjdLWjk5UnFma3ZwamZ4RGJRNU55OFF6K3VGdS90ZEpkS0dGek83SkNrVFlmdWVZUnAyOGMwTFh5Zll0eUsyT0dOcS9PTW5LNFFQVDY0dHpIZ3NnRVNJWnN3WXRUZ2E2LzVzN21aeW5JMFMvVWRIUXNZc0JIVHVUU2RLQlJNdnp3cURYQ1VpT0kwcEd0R3UwWXRPQjIzZzhMRUhZZFJzTVVPUWFtOHUvbEtMT3pHZ1pGS0VLQm9DZ2tLbUtFaGVxSG9jRms4YkwrVWZnTkxtOXRHTWtkTHdSNnhrOTZ6aGNOZVI3ZnUweDQ1WnhqbEpEc0J1MFIrczJqWC8xTkx6b1ppejFmemNoSno5QURqek9PREhTRUQwaU12eldNNUdjQjJRUGd1MjRjbTZoa2JDZWRJZWRsbGswOCt0U2NrclhPMFZoTkJiWDk3MFU3Slp2OXpXbzhhdkpYTkJhQUNYOTdYWWlTcmRvMVZ0c1ZBZFhyTlorb0FMa0pJY203SGVySXQ3Y1haUWV4TmkrdXp3UkFQRm1XeWxBNWNsOWVac0xBU2V3RGZnSms3YlRmRXRWbjFPdDVvK2xJeXR2ZGpVZjNLWUlCMTVSQ0ZibmNMaEtmcDJVb0VpNW5TaXpWbHQ2Sngvd0ZnSzlCbmk5ajRPN0hLbysvSFV2VjZjcTNCb2NyMmN4UzBQSWppNEJhdTZKd3FvQUdpdWRPN204cXpocDBkZHc0ZURNeEJZM2c4a1krWTFxM09NanRuL3FmSGMyRmVSRE45Ny9ESU1UTWgwUGw0dGZicmNmSUk4cXplVmdEY1FQSEo4NWc1S0k0RGFmOWhNY3YxK3c5OE5HNzJSYVVPWEJEVDd5OWFoOHZiclBlWWFIUEhCNVV6VlRPWTMzUWpVQy93eE05QkFhZGUvdTRPaFNWc09oSHI2VTY3TytkVzJBb0IxU1BISXlTeXd3Q3lyamYvaWkwSjVtL2JDUVJpbnZHb2U2eHBldEtxZVpUV1o4dXY5QVhGRGxOQUhIWTFpRDNzOXB1QUNmbE01UVh4NnVYczhlZE1NWUNQRFlKUnNlKzFubEUzZHMxdWFGNkFraVRuTmNCaWJpZHh2YTcvR2JOaWxzZngxKzFDTjRUVEFXRG5VYlE5Yy92QlhneGJvNzBOSjErelNPOHc3V0x4Ykhld1hpZXVudW9hWEJmLzFmdTN2WWdPb2Iybms0c2M2ZlhaeEl3OWdPZEZlRU14REtDc09SanFNMUxiL1AwUjl3aDZqcjd6ZUxXajhzcXBLdDcyb2lDV25MbGNGWU5nVm1nZVRGaGF0TTZBcmhid3ArYnNRMnVLQUlEUEN2eisxTXZvOGpxSHBYb1YxcUlVRC8xd05jY2RqWGJLeTJFT0NZV3hQZk1tSmlBcnBzV05udlRmWjd6M0d5Nm8yRCtoVVJwSzBMOXF5aGN6UTc2SjBLemhHVzdXWFlvSk8zM3g1c3VGY3dUVjQvZ2pPMm1LUXlUM0dWbnQvRG5JdlBVelV1Wmh2YVBkT1pLL2diZE9xLzhRUlE1eVFXVVRsOTJrWmU4RWEybkNEUzk4QVhMSDJFWFZwUzEwNFRRdlRST2JNQ01IK1U1RnAzbDRxMmF1dHdISkFXdElEclJHRmhhYlJBaDZ6bG90SGx0dWh3RTR3b2FWY3pqMjd6cVZ3OFhCRGxQckJXQkRkQTFGYVBTUXlmcVFHUnlNTFE1WHVOMVlEakV1am9TZGlkZHQxcFBkVzZaeFA1RFc1M2FZNXI2Y0UxeWNoK2MwUk16WjA1cHdMMkFTb3MvbHBETXZkWUdmNlJ5UjhnYzQrVElOem1kbVM3a0o3YzlqeWJDZWFIY3JLMnFnc3JrUGljajJlTnY4QkpvQkJ3bm05and1Y0pabzZkR1JIaXdnbE1Vc3VJOEZXWmFuZUk1NjBydVpiemcxQkRxMENyUnRXcGp3T3BqTi9DNFhIZHdTSU9XeE5HUTY0OEdwVit1S0VESWZyWUcyUXBCT094Mm1KVHZOVVlMV3U2TzN5K2VQY01DaXVMMmQrQ0FrTCtpQ3JVTUVESmgvK2Rna0R4Q2N6U0JiM1BsUnZGc0RBWDBPOVpTaU9zbjY3YmNucXRueFZCMnVQWkpqbTBHYlpZM3hoZHMvczJRa3E3TVdJY1QzR2VOYlljaDViL21QTzJXMWxtZVBWZzdkRGhNSjAyRWJjOHA2SVJibHVUdzJpMDdBNHo0cmZOUkJqa0dWSDUwemI5WWdyUTd2TVZVTXQwSkVKOGhGNmlDYjlTS0lUV2hiU2VtYUxwMUhkcEFLenppcWgrakJJOHh6eWJ4TlVnNDdUTTJUZFd4RVBoeU12ZzdaY2RablhKQzlpd1hNR1g3MGRzZnRvVDZSTXVoYWg3bzVFK0FJNHRjeVdCYURuNW1KUEtWMURucTVYeXNFaXIwRm5TdUtaNzRIUkxQWXJVMGc5c2hYZCtPMys0eUN3N0lrSndjZjQyRXEwdEwwUFRFL2JPSEIyZVoreTNWc2J1TzBoekh4NGEzWnJ1eGdPRXpiVG0zcjVtK1ZkYktzMytJbDV6VENWSTdzYU03Tm5ublp3Zko1RWpSTzlpS0FRd1RaRFdLeFdsOTN3dUZnLzRhZDVjRmF4RE80N01PT2loVnd6c2c4UisvenFpM3JqemJOZ2RYUm1tUkVhWTJuNlB1RlNqZ25TZllRem9tT2ZlUVlCS0xNcnZrendjN084Wnd2eCs2ZjRmWVBCRW5jZUNWS3o2bFdUYVlybTIycGNUUkxFZEE5MnF2MU1jNVV1Q0hhMi83MkJSc0JMQjEyQUs2SUhwUEx4clBmNUJ4Y0IwYlplQmZ0RkxHVXpFY0I1RmRldFUzMkVCZkwzUnhmaWJxNkFQSVVyYjYwMlQ2ZktkS1F2QUF2WTQzdDVxMDJ5Y1Y1WU9xZ1hQdXNERFdyOVZxTjhKWDk2L2tpMklUVlVEN1VZVm9Yb1BUbnNqMy9idHlDamNZaitScWN5enFOeHk0YmVlWGptTW5iVTJXZzR4cUtyL3NkVVgyS1FLMDJyc2V5cDd4M0VKK1JDQzlmUUt2bDVCK1JmRzNIbmRzUmxBYTNRd0FJbVYxTEp2ZWU0dWhsUWtSRzc3d0pLWmZzQ0szek9RZlVaeXFtd3pCdFYwcUVOTFlXdUZ5bWRxcWpWc0Rzd2ozc0V1d3RObG5vdENLei9VNmZIVXNtRE9kZUdvZnpzM2VkNXM2bmRhcjdER1FNVzBsZWlMUStnY05SMkZ4b0hSMEFlK0NJUUw2SFNjVjREeCtZRTJaZWtha1lGcklLc2ljTGJBWmdHN1R0Ukw3T0k0R3NCSHBRMFE2aTlqRVJuVWg0U21sTjljVmZxZng3UXVlUURpOTRWUW5FRG9vTVR0WGFsU0RER3RuUENvSVEwVmxzQTdXSC8yODlZNXdzNGZscjZIWWljMnRTQUtEd1RIekdBOUFzMXludXRDb3ArY3dJVC9CUmJhdWUyUlpPSW5KOHFWeFBtbnRPV0p4SmppSmJCVlZ4anVDUVpxaUN5N1pyWjArWVBZbE9SQXlFWVBTaUZMdDEvZ1ZjeHpsM3NUWGtPWk80bk0xb2wvUVpMc1JyUE0rL3duUXVISURDSWpwdWJsdUp2ejVCeko3NmhCNjNOTktaWE84cjZ4dmRZNEprZDVCSnErSzBicnQ4dG1NL1NuV29zTU9ETURFMDRISmkzRjJEeDRYUDhyRXY1dThkd3VOUUx0TVAzVDYrbkt4YkNjTitoaXZEYi9PWmlldUFHUWRPWlAySUc5NW8xZmM4cE1xU3B0UGJyZkpUZ0FZZktHTnZrdk9SdDA4Ym1SZjIwVzF0c0xUeVMrRXA0M2FjNG5PNi9aMUl2dTB3UjdYRTZ1eGkvTm1TYWY2KzdRSjg3R2lTNVRpdUdKYmtkVXJIaXBPMlRqc2hQdHV6dFUxV1BFVmt4bXNqa0djc0h0YTR6SzlqcEdBeFhEa2haVjlXaExQUVkwaENRZlpZbkM5dm5zbEdEMGVuVG84TkxTczJlTENndGlFTEZrUVBNQnEvUWszRWRLRVNCOXgzT0dHL09xemJjK1U3Ty9RTUVtcDlvek01WVhWTzdRa2UzVGtzSVU0Zkl3TTlaSU5abXpIcVpSZGV0MzRaV1VVMEhRU2F4MElBRUIxT2pIa1I4ZkZDM09YbitWVXpOYk93VG5NMmdlVEk3R1hkbk5QUFZ0V2o5KzFKOG5tRVRzc2UxVFRzT1ltaXFaekp6dDFDVWpiRWtsbElnaEpybm1kYkZRZExYZU04bUNHK0NDczczVnM4UFU1OW50SDBIaXdGaiszbnVUMHJONjJFaHFjaXFPZXBzYkZYUVdSQ2l3eXUzY2RWQ0lQZ3pIU0tsOVVWaEEvN2pYeWFGVngzbnlGeHp1Y2JFdUZEYWdlQ0VmUnB4cktMR01jRzFlYzh4b1ZGQzVaTXJzLzJVZ0xIWjhOZFBzT2Fzc1kvSE9BU3BKeTlyUWNkaGMvc2N4aDVXUlQ5QWxrZWpCSUMyRnJIcmZMU1JjQ1A4dVVXd21rblRFNk9WMkRZNEZPckpnNmRyYWRIOEN2WHF4Yy9uZ3dBek0yblhaU05wR3Z5aEdhQ2dxQktXSjR3bEJNVVhyTWFQbGZETTkwNUxibmtYVXU1SEJ5MWJ0NGhvSW1jUS9RWW1qeHJINUFkYnNXWnlDVTVCczRIakhtVU84L01obXpydU1oa3crQUxod1RtcEpycmcxVHBIMTgxVExOeU1TQWZJWVRyTm4rRUpZUjBDb285d2ZLd2E1eG5SdGd3TkNxUkZucmkwSG1IUFVyaGN2MmlVMW9jZzIvZUh2Tm4rM0JjWnpLa2RVb3hYZ0xrWmhjTWxPcTRNMHo3NGsxWk0wY3FQN2FHbXZaWGdIbTRwRU54MDMwNVRlRmsrZTR6c3ZSOWJTZ2JVL1ZPakVkc0Z3d3kzemEybjJlWmZPWVo0SnV3NW1CdkcwN3hSTWY3UTJ4WVJDZGVXcHdSZzhmanp1RDBFU0xUbThNanJ3b3RkRWhsUStaRGYxNVBVNkVoelluaDMybUVkY0tNRmQzYmlnVW5wOFg3MU5GL3RqbExNMWdPcENqVWFKdUhSSFIvWjA0M0dHQzN5TGY5bjhuUW5SRU1IaTZmS3Y3OXlVQkF0TVVGMzFhNHFicUxiSVMxVTd0dkhNWGlWK2RPT3RMRDZoTllLaUUvenVESk9EK05Nalo3UHM5UDE4L0lIMndFc0wrY1lnU1h4dGlqRThFc05Ud3R6cThBL2QyMnh6LzJDSFQyeE9ZV0pDT09DMkVHWCs0L3FzYUovUTdiUVFCWm9ZY0d1bFd1MWVvdnJORTVydHNwUjU4WWJNVUw3S0E2by9oOTY1bHJ1VEJNMU5ZR044OEFuRHRnQThGaG1Rak42U0RvQmVaREJMT1BCYkRqSEVMd1ZkNWNmWW1PdHBVQ1RRSTMybWRJMGhmU1pXMXZQNC9WSWFwRHhsNms5bnZMQUJPb0tmS3VNN05DUExDanZ5SzFST3FlYmM5NDdBaFN0OS9YdU8yVUtJK2pNbndDRGpRdTIrNEVQS2xXTk50bjJ2SXl2RWt2ZHFURXBRNE5qdDA3ei8wZzROakNNQjIrRG5URG1CRDBUc2YzSVZCemdOdlE2L1l6aGxOYXJycFNsVUdmdStmRnpRSEY4OFVnNDhldG9XQThnQi93TXp2TWF6blYvQTd3dHFycTdzNlVlbjEyaEYxUXZOZHRJVnBZQk1rSjA2c0ZUTVJSTDdPNGxoVTJzOENCMkhZR2FFcXdUL1hmYVlIeWNNaXgrWDM0a01KTUpCME9uTGM0MHJacktmZ0hyWEZXZzZqTisvdTRITVQ2NGMvYktHZVdEUUpqZ1l4ajc1MDZoaWdrREZuRkE0S21lVnQ1REZlOFFCWVk5TGQ2SU01ajhIYlR6UEVOMDYwZDh3VW9QWEVrZmkwUFBRaWtRUDd5MlFqczJtekIvRlZLbG52WUh4NThPQTlzM1B5U1RVZnVSOEYxTEE4M0NWaTRNd2RMMzI5d1lwV3gzajYrbi9Lb2F1TXByTmJ1c242ZThUTU9oWFhXUFFyOWNRZDlMQkRzMFVrblpwbnQwNEE5cUt6WTRvbmE4YXpUcWRkNVhzNHc3YWF6UUl3a0ZDRHBBQkFnd3JtY3IrYzBzcFhaekl0bXVCc1JvRG9VR2cyZjVEYW5ZZEU1RWRGSUxtcWRndkJtZHREeGRNTlgxV29OdlE5dUVRaWJkYURKUERYckxVTGIvRERIZVNiYWV3MWp3dU5rZnZqaXlhdGJ0R2RCdVBYRHlOSDdWNW5jNThEKzRQUzFCd0w1Rm9qaDZaRTVVN1F4eU41Zkg1UG5VOGhZVFo4UVVjeXJCeUtvVGRZQkgrNFB3WW5JNXFNZXN6T3liU2ExTnNwc01TQ1RuTWQrZlVLeVUzNThJcFVQRXdpT2tyV2IvTlRoWTFDRk5WYmsyRlBzT0IzRXJKVnFiL0k1S3BhUHlLekxOWjFBYzBvZG80OXV5RUZReHE4UUNmZVp4RHpFVFo5VDFxV3pEblRjSHFDOWZGcjBqTTBuNk93RnJRbE9EU3YyZlNWclZzcnBoTVZKVU5kbnlDQ1kwSUZNSTk2UTJKdzgzajdQbDR5T1dLOFJlZkxCSVovd3RYeFNIamFVbStvWjc3UXJKV1B4WEU1eFVDd0sxQWVzYktPU1RmR09mUG02UlBuTWdjVjZ6TlVTd3kyc0hpWGFPMHY0U0lNWE9lUVNORHhKMHRQNGZhYmFxZkZoL3N0YUpBSUN2L1k0Ynp0OVZ4WXBKRlVPMFhZdVR6cTUvbmtvdS9IQTFPeEpMSHYydkoyMEI3TnA1clBHTXZCeFh5eEZndm90RHc2WEIrakZicys1K2xpTzNMZlFHZWRJcCtyZXNyRzU3dWpjM1kzZE9zWWZZKy9ldm9PMTc4dkJFbmV5QkFNaTVFQVI5YlFkTHVPMGN5bTl6elJWck1zRFRzTmdSbTU2Ry9iUW1DWTdRWVBGdnNFVzNwd0xKRlo5VGthV0lqaHp4RWZ2UVdLY0F1LzRjWGpWTmdmcFdTRnJYV2RCcXZ1QWg0b2RYd2c2Zm9YUDVQcXdHK3hvQm56NnRJUmJ0TThpT2FTcE9mZlVzYm1Pa25qT3VJenB1ZkFjeXJmdzVzc1JyeXlKRlBQWHM5TXd5R2tUdU04NmVURStZTmI1ejQ0cjhmekVkb1RQeUF2NFBVNVhtVjEyNE9nQ3EzZHVNTG5JYkN0bys4Z0ZBRm1rMURxem8zem9uT3lMQmVSbXBhTWVSY0ZKelQ2WlB2dWVpNDFuUzU3WEd1M2d1WS9UV1FCVEtIZUZWNjl0VFprSCt5b21pMnpPYzl1ZUhjYm5ReC8wRngrTzFhLzNUQ2kxMU1oT1lHSUhyTEg3YkNlcnN0bERKOGRWSitoNnpPZkRQUndsa3AwNVdud0tUUEl1VGQxY0k3cFh6elB5VDVsZU5sdzYzZ0pHOXFBQ2xIQ1BMZnRRaXM4Q2hqUFB6dzQ1NjFFY1ZwbGZSL1plMklsUG5ZT2F4QXduODNnWmNJZ29DL1Q2eVZxRGJQWThuS2RkeldvditzTktCNFBSOC9qNEZ5NXMrckE3YTNGOG9wWjFteW1jWkZ4MDNOdXB0L1l4ZFAwdFVINjg5UjFuV3BXSE51d0tNdVdSMFFNSE02N3J1MC81S2Z2emhWVk9WdC9TTjVEVUo4UTVVTWFIUFZocU5NeVVtT3FMeEIrV21ZLzNzWWNJZTdhMlhZNlhkaWlpYlc0NDY4OU1aR3dheHZ1NUp5T2N4empzYmYvVFkxN2ZNanViQ3lDYnptbTRtd2ViNHpxUk8vbFlZZWh3OHJHUHk5UXc2SDZ5c2RzSDErSzI1N0EyMmhaamgyVXhreE45aEE4TUVaZUUrRHByYk5rc2thTVA4KzArb2M3UlRFZndMaXZHaUlSZUNuYmg4WUhzdnBzeWNKdzZFSXNmNVZQU2M1bFdVTGY2WUx2bkhHRFllSzBjUko3QVR4N2lCY3lMM2ZSSkl3NC94UE05S1gwajdscnN1emxubGxkRHl2aUloZWMyTFkyNWZQRk1Cdy9MVHI1Z2ZZUlRod2cyeEFlMjJ0a0U2T3poVStIV2N2NjRvK1MwbzIxZm9NbWplNXhIZTVid0ZKK3JNUUZseDFoOUJITWYrdVJqSEdCUitkZW9xZnYwejVpWVBYNE1IamtTeC9OcVdHVWoyRzJIRERyZ0t4TnBZWEhkWnBYaVE1a0x1T0Njc21id1JRSWFYeXl6OERQZmVvbTg2VmMvSTRycXRhd2ZOZXEwVWoyQTNiSTR4MGMzMmJuc1ExN3NRRDFQdWJLcEdOc3c3enoyUmJTWVJoV0hucHF0NHJjdG15WjhFb0FteEJiNVpycWJrQjNuTXg1YmFYd2l4T2NqSGgzRGlUcHNGdWdDbHMydU1xdHd5N2JTQkRuM3NEaDhFZ0JQd1BoVFR5UEI1UG5kblY3RkV2di9lWjh4aDdOOTdDS01TQ0dmQUZzSlJoNmJuVEdyWXpxNVBYdXNXWjJDR0lmUGQ0SUYvcjNoa2RXNHRrZDRQbjdya1lHYnFITGVFTzhDNnpCWUUybkVUWk9nVGpxUlFUc0lDWGVLMmVlY2RzYzZ4TGF1VTFXckJaaXRPZ1BiYTIxT0YvU1F6dkczVmt4Z3VYdEdCNVdkcHlDZFZ2N3VXQ1lUVXlMc2VDNEhXRnJ0WU10S2RBb1Fpc1FKNitOek5Ddlk4WnlSS3c0OHhRQ2hhOGdjT0tOWlZDdUtnazhwZlh6Q1FGWEtydkE1RTk4TzJlempCNnI5dmlqZjVUTi9HK0sxT1B5Nk84b1NVbkk3R3I5RGU3RjhJK0Rzbm1XajlUMmZ4eWlMSElvRmdJKzY4SjU3NFN4TzNhN0w1OFA0YkowQS9yM3FwU1JCL0V6eGVScVJmUUlUeGhpQVZwakZtRDdjYkp1MjlSamZrdjB6WHUwN0J4K081eEMrZlc1V1B1bW9lY29ZRVY4QWNydjJQTE5Na0dmd1JWWktVTVNKc3lVaUhqSEcxOW1IcVR1KzN4NlRIczZ6U2FCZXdJZkQrb29QZEE3MkhIK1Z1eHpXSjltcEJ1dDNqSHkyclF6RjNDcm9hbUlmbUx1ZE1NQ05RZFJzci9BNWo1czN3MkJadmV2TUFTay9sY1NPTER6UEo0V09MK05Hc1JseXFEemZYajIxRHo0Mk9QdG9pY2ZrY2JTbWZKMnoyNHVsSG83RTVpcVFpaGFrVHgrVEdwRGVNejFDMlVmNHpCMzE1Zk5VTFBXNTIrTmpxWjk3KzF5bllCSFU0eU5UblRSenBqZWljMzBHZWZsNXh0Z3BIL0xKQXNRWTQ3d2RhV0NWQTRKV2NUVHBNTjN0d1RUL3NtdTdWOCsrK0M3ckFEa0U5eDdIQ1ZodzhucGc3SU9wSFhYbzh4cDlxT09wL3ZGaHlMNFlrMzdVMDlGQmt6YkgzYWdEQnh1d1d0MjRPa2ExTldBbGowSVJGRDZ6YVpZR2VYcmlPY0MzV0ovbHJjdVd1Kzg4N2F5ZnJ2N2hnYVhqOHB5K1Z5Sm1kNXFISWMyV3Jqak13R01nS0JmVTJObzh5K1VyMHZpK2NWdWo4K1Y0ZzIwQmswK3N3NFk5aHVYQ2lVR09UWGZxR3BUWkp5RjUrajVmbjdzbWY5djI0enF4L3dUNHV1cFZQSElnTkhnVzVJRnVQN005dm9STGZkVkhEOEdJQWZmc0FjUjlHdmVURDBBYkJkbUhBM3lQZWVFWExkS0dtNHI3b1o3UFhFZjhCQ0p2blJxdjl4bU5WdDFHSHc1OWhwMWpIOFJ0SzFVc2kyRmxmWWJ0REQ2cHduejd6aEhFYzV6enJxZFFEQmFtaFN6cDU1bnpaYXNadm9FNUxnbms0WlRKczF2bGZFblRjWHp6MUpkRUg1eG1raUR5QnE5RDhyRmpiSWNGbC9MT3hmV2JnN1FteWhIV0R3U0J6NzQvYnFmN25HT3M2dlUwd1FmTkFSbk9yTHR0NWFocTYvYzh4V1BlT1RuY3MwV1RmRllyM1I0cHB6T2dUenpCUnk2cm5BQ0U4OHkwSncyV01xbW5pK045YmFheGU4Q0dmb21Dd3dMcy9mZzhlellWUEJ4a3JpdGFnV0NUZ2djelBUdkUzNGR1SnAraW1CMndkU3IxWDJ2WkFFRmo2RGVBeldLYXhJZHdQekEzdTNraW91TTZEMUpLWDVxZWZNdEt1ZEpsaHB0bzJIMU13WnVkdHdYRXF1ZWM4d3Vhc1dPQXJHTys2N1FqaStXK1BoOS8rNHFURmlXMERpQjZTTktHMC9odHowVzR3cGkyUmw4M3U1RVM4Z1BkeWZaNFBvaVJHYnZpWmJtbE5ZYVdmRm9saUxCWXBqU2ZkM1lGNE91RUZMdVgxdkRKdTJ2WTh1MkQ2dC8yWldRSWR1NVVtM3dWQzlXNmMrUnQ4YlBaR21kanlaM1l4QnJiTVh0Yjd2bjZDSEVjdy9QNTZwQVZiS2xaT2tDNDVJclM5VmtNZGR1VVo4TkVzTjNrdGtOM3diYmw3R0JwUXdDMm5nMCtub280OGppYXI4ZGo3TFVBWnY4UFBQZnZFYTZPMFU0QUFBR0RhVU5EVUVsRFF5QndjbTltYVd4bEFBQjRuSDJSUFVqRFFCekZYMU9sb2hVRk80ZzRaS2hPRmtSRkhMVUtSYWdRYW9WV0hVd3UvWUltRFVtS2k2UGdXbkR3WTdIcTRPS3NxNE9ySUFoK2dEZzVPaW02U0luL1N3b3RZanc0N3NlN2U0KzdkNEJRTHpQTjZoZ0hOTjAyVTRtNG1NbXVpcUZYaENDZ0h6MEl5TXd5NWlRcENkL3hkWThBWCs5aVBNdi8zSitqVjgxWkRBaUl4TFBNTUczaURlTHBUZHZndkU4Y1lVVlpKVDRuSGpQcGdzU1BYRmM4ZnVOY2NGbmdtUkV6blpvbmpoQ0xoVFpXMnBnVlRZMTRpamlxYWpybEN4bVBWYzVibkxWeWxUWHZ5VjhZenVrcnkxeW5PWXdFRnJFRUNTSVVWRkZDR1RaaXRPcWtXRWpSZnR6SFArVDZKWElwNUNxQmtXTUJGV2lRWFQvNEgvenUxc3BQVG5oSjRUalErZUk0SHlOQWFCZG8xQnpuKzloeEdpZEE4Qm00MGx2K1NoMlkrU1M5MXRLaVIwRGZObkJ4M2RLVVBlQnlCeGg4TW1SVGRxVWdUU0dmQjk3UDZKdXl3TUF0MEwzbTlkYmN4K2tEa0thdWtqZkF3U0V3V3FEc2RaOTNkN1gzOXUrWlpuOC94cnR5WXZEUmZHOEFBQUFHWWt0SFJBRC9BUDhBLzZDOXA1TUFBQUFKY0VoWmN3QUFDeE1BQUFzVEFRQ2FuQmdBQUFBSGRFbE5SUWZrQndJUkVnK3NoME9xQUFBZ0FFbEVRVlI0MnV4ZGQzZ1UxZDUrejJ6THB2ZUVrSVJpQ0MwUWFnaGRPcUdJTkJGRVVjRUdJb0lGcFBoaHVWN0FjbTNYM3BBcktnb2lJQ0FpdllsMEVrcENTTzlsZTV2Wm1mUDlzVHZEN0daRFVVVFUvVDNQUEp2ZHpjeWVPWFBtbmZmWENhVVVmdm50WXJQWlVGNWVqdXJxYXRUVzFrS24wMEd2MThOa01zRnNOc05pc2NCbXM4Rm1zOEhoY01EaGNJQmxXYkFzQzQ3andIRWNuRTZudFBFOEw3M3lQQTlCRU9SL0UwRVFJTjhvcGVJcm9aUkMzQUFRNzFjQW9KUVM5OUNsVjYvUFNGNWVYbHhVVkZRVGpVWVRwMUFvNGhpR2lXRVlKb29RRWdrZ0FrQW9JU1FVUUJDQVFBQmFBR3IzcGdEQXVJOG5BT0FCc083TkJzQUt3RUlwTlFJd1VrcjFsTko2U21rZHovTzFITWRWMmUzMjZvcUtpb3IwOVBScTkzR29iR3Z3bmhEaS9aMzRHUUJRUWtpRFY5bEdHWVlCSVFRTXcwQVFCS2pWYWpBTUE0WmhxRUtoZ0VLaEFNTXdFUDlXS3BYU3E3aXBWQ3FvVkNxbzFXcW8xV3BvTkJwb05CcG90VnBvdFZvRUJRVWhPRGdZSVNFaENBOFBSMFJFQktLam94RWJHNHVFaEFSb3RWci96WFFkaGZpQjdiY0p5N0lvTHk5SFpXVWxhbXRyVVY5ZkQ3MWVENlBSS0FHYTFXcUYzVzZIM1c2L0lxREp3VXkrQ1lKQVJJRHpBak1QSUJQQlNRNVMzb0FsZjE5ZFhaMGFIQnljb2xRcWIyRVlwaVVocERraHBCbUFaZ0FDYnBKcHRnTW9wcFFXQ1lKUXlQTjhBY3V5RjNVNlhYNnpaczB1ZUFFY3ZRemdOUUJBRWZnSUlSNUFSeW1sU3FWU0JEWUowT1FnSjkvazROWVl3QVVFQkNBZ0lBQ0JnWUVTd0lXR2hpSThQQnlSa1pHSWpvNUdmSHc4RWhJU29GYXIvVGVYSDlqK0hDa3BLVUZsWlNWcWFtcFFWMWNIblU0SG85RUlrOGtrQVpyTlpyc3NvSEVjSjdFemIxRHpCV1lpS3hPQlRieDJQb0RNNDMxZVhsNXNRa0pDQjVWSzFVR2hVTFFuaExRSDBCYUE1cTk4RFhpZWQ1U1dscDVOU2tvNjQzUTZ6OWhzdHB6YzNOeWNIajE2MUxxWm9oelVCRGRUODJCMjNrQW5BcHNJYUNLYnV4TElpYUNtVUNpZ1Vxa3VDM0JhclZZQ3VKQ1FFSVNHaGlJaUlnSlJVVkdJaVlsQmZIdzhrcEtTL0RlWkg5aHVuRlJWVlRWUU93MEdnNlIyeWdITmJyYzNBTFFyc0RRaXFwMWVnRVlhWVdVTkdObkVpUk1WSDMzMFVmZUFnSUJ1Q29XaUt5R2tDNERVditPMTRIa2VwYVdsYU5hc21mZFhlWUlnSE9NNDdyalJhRHgyeHgxM0hOdTllN2NnQXpzSjlBZ2hnamVqY3dOYkF6YkhNQXoxQVhCUUtCVDBTdXhORG5BaWV4TUJUbFJQdzhMQ0dxaW5jWEZ4L3B2T0QyeC9uQmdNQnBTVmxVa3N6WmZhNmN1T3huRWNXSmFWR0pvUE94cVIyOUY4TURQaXcxNG1zakx5eEJOUEtKWXVYZHBIbzlIMFpCaW1GeUdrSjREZ2Y4STF1UXl3ZVl1WlVuckk2WFFlTXBsTWgyZk9uSGxvelpvMVRoOUFKNGpBNWdZMDZzTXVSNzJabkpmOWpYcmIzMFFHcDFhckpZQnJ6UDRtVjA5Rjl0YTBhVk9FaFlYNWIwSS9zRjAvNFRnT0pTVWxIaXhOcjlkTExPMXE3R2krbkFNaW9IbXhNMG5ObERFeXlJR01Vc3JVMTllM0N3NE92bFdoVVBRamhQUUg4STljOWRjQWJBMmVVNElnN09VNGJsOVZWZFcrNXMyYm4zT0RXd05XSjJkMEludVQveTA2R09RZ0p3SmNZODZGSzluZlJQWVdIaDd1d2Q2U2twS2dVcW44TjZVZjJINmZWRlpXb3JTMHRJRnpRSzUyaXFBbXNqU1JvVjB0b1BFOEw2bVpnaUEwQ21aV3EzV0FXcTBlekRETVlBQWQvRmZuZHdHYnQyUTduYzRkUnFOeFYzUjA5RDY0dkxpQ045ZzFCbklNdzBqcXFrS2hvRmNMY0NLREU5bWJDRzV5OWRUYnVaQ1ltSWo0K0hqL3hmY0QyN1dMeFdKQmNYRXh5c3ZMVVZWVjVkTTVjS1h3RFMrMWszZzVCdVRzakhneE5Bbk1iRFpibGxxdHppS0VaQUZvNnI4eU4wVEtlSjcvMFdReWJZK01qTnlPUytFcVBrRk9wcTU2cUtvaWkvUHlvTklyc1RkdjlkVGJ1UkFYRjRlRWhBUWtKeWNqS0NqSWY3WDh3SFoxVWxKU0lyRTB1UzNObDNQQTI1Ym1nNlZkQ2RDSXQ4M01ZckVNMUdnMHR4RkNSdm5CN0tZQXVTMTZ2WDVMVEV5TXlPUThRTTZieGNsQXJsR0FVeXFWalFLY25MMTVPeGU4YlcrSmlZbCs3NmtmMkM0dkpwTUpSVVZGS0NzcjgyQnBCb1BCSXlidEtvTnNpYWg2aXVybVpkZ1pvOVBwMG9LRGc4Y3lESE03Z0hiK0pYbFR5bG1XWlRlV2w1ZHZidG15NVJrWndQRXlrS095MXdZc1RxNm11b0dOWGsxd3J6ejJUZlNjaXV5dGFkT21hTmFzR1VKQ1F2eFh5QTlzRFZtYTZDRHc1ZkZzTElSREJEVmZnQ2JQRXBBRG1naG1telp0Q2hnOGVQQkVwVkk1Z1JBeXpMOE0vem9pQ01JMnE5VzY0YTIzM3RxNGFORWlHd0NuSE9Sa0xFNFEyWnUzbXVvVkh1SUJjQ0s0TlJZYTR1MDVGUjBMZnZibUJ6WUFnTlZxUlVGQlFRTUhnY2pTekdhelpFdTdRdWJBNVFDTnlOVk92VjdmSVNnb2FCTERNSk1BK0ZmaVgveVp5SEhjMnBLU2t2VXBLU2xuWmFvcTc2MnF5Z0NPWGduZ0xoZllxOVZxRVJ3Y0xMRTNiOGRDaXhZdEVCZ1k2TDh5LzFSZ3E2aW9rRlRQNnVwcUR3ZkJsZUxTWktEbUU5RGNBYlVlNnFiVmFzMVNxOVdUQ1NFVC9VdnViOG5pMXVuMStyWFIwZEU3M0F4T0RuQzhMelZWRmliU0FPQWFzNzM1aW5zVFZkUFkyRmhKTlczU3BNay8vcG9vLzBrbnkvTTg4dlB6VVZ4Y2pJcUtDaWtseW1Bd3dHZzB3bUt4U0tEbWNEaDhaZytJZ0Nhem8va0V0THZ2dmx2eDBVY2YzYTFVS3U4RzBNZC8rLzk5aFdHWWNaR1JrZU40bnQ5dnNWaStIang0OE5yRGh3ODdSWkNqbERid3JQSThUd1ZCb0dMaVBjL3pWQjRTNUhRNnFUeGNTTlFRNUtZUThhRXJQb1N0Vml2TVpqTk1KaE51dWVVV0tCU0tmeTVqS3l3cy9FZWNxTkZvOUFsb29zZFRyblplem83bVMrV1VzVE95YWRPbWtOYXRXOStyVUNpbXdSOXo5bzhVU21tMncrSDRjdjM2OVdzV0xGaGdKSVR3TWliWFFFMlZzVGh2Qm5kWis1dGNQUlVEZThXYzB5Wk5taUE1T1JtaG9hSC9UR0RqT081dmY1SmxaV1VvTEN5VXZKNWlCb0czNnRsWUdJZVgya2xrYVU4U3FHVm5aMGUwYk5ueWZvVkNjVCtBRlAvdDdSY0ErWGE3ZmRXbVRadStuakpsaXM1TFRlWGQ0Q2FwcU81Z1h5clBRZlZXVDMyRmhYaW5aRVZIUjB0ZTArYk5tNk5wMDM5ZTVORGYyc1pHS1VWdWJpNktpb3FrZ052TGVUMjlNd2dhVVR0Rkx5ZERLU1VuVDU0TWJkdTI3UXlGUWpFRHdDMytlOWt2UHVTaXpXYjcvS3V2dnZweSt2VHBoc3NCSENGRWtDWGRlMmN1VUY4WkM0MTVUY1dBM21iTm1pRTFOUlh1YkFrL3NQMlZ4V1F5NGNLRkM1TDZXVjFkTFhrOTVRRzNqZVI1RXU5VUtDOVBKN05reVJMRmtpVkxIbFFvRkEvQ0gzL21sNnQ3MEo2MVdxMHI3N2pqanRWYnRteGgzUUFucWFneWdCUGtIbFR2MUN5VlNrVWJ5emVWcTZXUmtaR0lqWTJWMU5LVWxKUi9UTXpiM3hMWXFxcXFrSitmajVLU0VsUlVWRFFJNWZCT1hwZmIxTHhZbW9kalFQUnkydTMyTzFVcTFTTUFldmh2VjcvOEJvQTdiRFFhUHdzUEQ5OUlDT0c4QU02YndWRlpCZ1AxWm0vZU1XL2VBYjFpU0VpVEprMlFsSlNFVzI2NTVSOVJEdWx2NXhVdExDekV4WXNYUGVMVDVMbWUzc25yY3BZbU9ncmthcWZNanNaWXJkYUJhclY2cGp2bHlTOSsrVzFzZ3BDTXNMQ3dESjduUjFWWFYzL1dwRW1UQTNLQTgvYWk4anhQM1FKQkVLaFgvVDd4UFh4NVVVV3ppdWhGdGR2dHNObHNhTjY4dVIvWS9pcjJ0UFBueitQaXhZdU5PZ2t1VTltMkFVdVRxNTMxOWZXcG9hR2hzd2doRC90dlM3OWNMMkVZWmtSOGZQd0lsbVUveXNuSitieHo1ODc1TW9BVHcwUjRBSUlnQ0lMWTM4SzlVVEZsVHc1dTNpQW5Pc0M4d2MxdXQ2TjE2OVovVzd2YjN3TFliRFlienA4LzcrSDVsTWVuTldaUDgyWnBibENUMU01Nzc3MVg4Y0VISDh4V0tCU1BBVWowMzRwKytTTkVwVkxONk5TcFU1YkZZbm0vYjkrK254OC9mcHdGd0xuWkd5T3FxSlJTcVJpbTI0RkY1Y1VWdkFIT3UxcXpIT0JZbHBYQTdlL1lTT1l2RDJ3Nm5RNjV1YmtvTEN5VUNrTEtxM0w0S2dicGZvckpRVTNPMGhoS0tiRmFyVU0xR3MzakFBYjViejIvM0FCcEdoZ1krUHl2di80Nm9McTYrcU1tVFpyc0pZU3dNdldVNEZKT0t2VmljSEtBbzc2YUF2bFNUOFVvZ05UVVZFUkVSUGlCN1dhUnFxb3FqM0FPTVluZFY0VmJXU2dIRWVtNUQ1YkdsSmFXeHNmRnhUM09NTXhjLzczbWx6OUJQUjBRSHg4L3dPRncvSGZIamgyZlptVmxWYnJWVTBZT2NLNEs1a1JvakwzSlZGVmNqWnFhbXByNnQzSXEvR1dCcmFTa0JIbDVlU2dxS3BMQ09lVE5WWHc1Q2J4WkdzL3pjcGJHMk8zMkNTcVZhbTdwdWVOZHl4M0J5RWh2ZFZPZGMzMTlQV3ByYTVHYW11cEhnTCtBNlBWNmJOcTBDUTZIQTRNR0Rib21nNzFhclo0MWJOaXdYblYxZGU5SFJVVnRJWVFvM09vcEo3TzlFYm45VFE1d0xNc1NsbVVidGIxNU16aU80MUJUVXdPejJRd0FpSWlJUU92V3JYODM4U2dvS0FBQXhNZkhYOVg1VjFSVXdPRncvRzduQnRQb042d2VueXg3RW9QN1p5SWpzejhlV2ZncXlrek9tMkxCNU9mbjQ4eVpNeDV4YXBmWW1nN0ZGODdnMkpGZmtaMmRnOExpTWxoc2RqZ2NEaUlDbkRzMWlnaUN3QWlDb0tpc3JFeDJPcDJ2cVZTcS93SG91dm8vODNEUHduZHVpbk05ZlBndzNuenpUUURBa1NOSDhOcHJyLzJwWS9nOXduRWNCZzBhQklQQjhLZU40WHJMMmJOblliZmJHM3p1ZERveFljSUVGQlVWSVRBd0VGYXI5WnFQVFFqcEhCa1orUjdMc290MzdOalJqRklhUUNuVndOV1lXa1VwVlZCS0ZZSWdLQVJCWUhpZUowNm5rN0FzQzVQSkJLUFJTRVF2cUR5UDFHQXdTRldpS3lvcVVGeGNqQXNYTHVEUW9VUDQrT09QOGZiYmIvL21kZmJTU3kvaHpKa3pBSUNDZ2dLc1c3Y09LMWFzd0twVnE2NXFQV3pac3NYbi8xN3JlbWdVMkxaOThDeGUvSFEzUms1L0J2KzM0RDdrL2ZnZUhubjI0ejk5SVowN2R3NW56NTVGZm42K1I3VmJrYTFWRmVjaHY2UWF5c0JRaEFRSGdITllTSDI5bm9pTXpjM1VpQ0FJSWtzYkZ4MGQvUlVoWk9iTitOVC84c3N2a1pHUjhiY1lnMHFsd3Z2dnYvK2J1aTdkRFBQZ1MrYk1tWU9Ta3BJR24rZmw1WUVRZ2tXTEZtSHk1TWxvMTY3ZDc1bTNCL3IzNy8vZkV5ZE9aQUhRd3RVVFZnUTNwUnZnR0JIYzNMMDBDTS96Y0RnY3hHNjNFeEhjTEJZTFRDWVRUcDQ4aVlLQ0F0VFUxRWo5UFZpV3haZ3hZekJ3NE1EZk5FNlR5WVRkdTNlalRaczJBSURNekV5c1dMRUN0OTEyMncxZkQ0MENXMUZSRVVoRWMweVpOQVlqYjc4WEx5OS9FY082Sk1FSlFGOTRGSFB2bjRDTWpFemNOdmtoN0Q1WEJRQTR1djVORE0rNkYzazJBSERpeFlkRzR1RmxYN3A1K1VsTXlocU9kNy9ZaURsVGIwZG1SaVkrMjEzb1ltQ0h2c2M5NDRZaUk2TVhwajc2SFBKckhTSnR4TlpQbG1QMGdMN0k3RHNZRHk1NEJhZlBuVU5CUVlIVURzKzdKMEZGZVRYQXFCQWFGQUNWV2t2VVNnV280SFNCbXROSk9JNWxuRTRuMDJQQWlQQnY5cDE1UWFWU2ZRbWcyNEZ2MzhUdy9yMHc4TFo3Y0xqUUpLZXVIbU5ZOHVZYU9HN1FUV00wR25IMjdGbjA2SEVwRHRocXRXTGV2SG5vMzc4L0hudnNNVGdjcnRHWXpXWTg5ZFJUR0RwMEtDWk5tb1JUcDA0QkFMNzQ0Z3M4K3VpakdEQmdBQll2WG95c3JDek1tVE5IYkxxTXRXdlhZdVRJa2NqS3l2TDVwUFExaGw5KytRWGp4NC9INE1HRHNXVEpFdGhzTmdCQWJXMHRacytlamF5c0xJd2ZQeDYvL1BLTHRNOWRkOTJGa1NOSFlzNmNPWks2SThxbm4zNks0Y09IWThpUUlYanR0ZGZnSFRUdVBZYnZ2LzhlNzczM252VDk2ZE9uc1dEQkFva3BMVnUyREVPSERzWFlzV09sTVpqTlpreWZQaDJ2di80Nmhnd1pnb2tUSjZLb3FBZ0E4TUlMTDJELy92M1M4VmF2WG8zVnExZGY5dHJzMmJNSEV5ZE9SR2xwS2ViT25ZdUpFeWRpNTg2ZEFJQ25uMzRhVHp6eEJDb3FLakJ4NGtSTW5EZ1JMTXRlOW5qcjE2L0g2NisvamhrelpxQmZ2MzVZdW5TcE5BL0xseS9IcUZHanVpeGN1UENEWGJ0MnpmM3d3dytqS2FVQkFEU1VVaFdsVkNrSWdwTG5lVWJjM01CR0RBWURhbXRyVVZ0YlMydzJHM1E2SFU2ZlBnMmowWWpzN0d4czI3WU5SNDhlUldWbEpjckt5bEJRVUlEaTRtTFUxZFZKdjUrWGw0ZDc3cmtIZ2lCSTQ1MDllemFPSGozcWNRNGJOMjdFcUZHandERE1GZGYyNWRiRHVYUG5NR0hDQkF3WU1BQ2ZmdnJwRmRma2hRc1hNSFBtVER6d3dBUG8zNzgvRmk1Y0NNaDBjNCt0OHNRRzlHamZFcDE2amNEU1Y5N0I2UkxYaVZMZWdGa2pPcUg3c0duNGJ0TjZ6SnB3SzFyM21JQVNPOFd1aitlalJZcytPR21tb0pUREk0TlNNR3oyVzY3OXF2ZWhTNHNXYU5tNkUyYk1tNDlGODUvRTNud3orTG9UR05DK0pVWS8rQ3cyckYrTjBUM2JZdFRqcm4xT3JGdUdsaTNhWXY3cksvSEswamxJaW9sQzFyUW5NSC8rZkV5ZlBoM2p4bzNENE1HRGtabVppWTRkT3lJMU5SVWFCUUZSYWhBWkdVbENRa0tJVnFzbGFyV2FVU3FWQ3VLeUthcFhyZmwyOE9JSFIvL1lzbTBmZXF5YW80N1NQYlJyU2dzNjlxR2xkUDNhbFhSWXQxVGFlc1RqbEZKS1Q2eGJSbHUyYUV1ZmVldC9kTzJuSzJpbmxKWjAyYm9UOUViSXFsV3I2TnR2dnkyOS8vSEhIMm4vL3YxcFdWa1pkVGdjOU00Nzc2UnIxNjZsbEZLNllNRUMrcTkvL1lzS2drQVBIejVNZS9Ub1FhMVdLMzM5OWRmcGYvN3pIM3JreUJFNmRPaFF5bkVjN2RXckY2MnRyYVVIRHg2a0kwZU9wSHE5bnVyMWVqcGt5QkI2OHVUSnk0NUJwOVBSN3QyNzA3Tm56MUtlNStuQ2hRdnBHMis4UVNtbDlQMzMzNmVmZi80NXBaVFNRNGNPMFg3OStrbjdtVXdtYWpRYWFYcDZPalVZRE5MbjU4K2ZwLzM2OWFNV2k0VmFMQlk2WmNvVStzc3Z2MXgyRERVMU5iUjM3OTZVNHpoS0thVkxsaXloYTlhc29aUlMrdnJycjlPbm4zNmFPcDFPZXZic1dacVptVW50ZGpzMUdBdzBKU1dGSGpod2dGSks2WW9WSytqOCtmT2xlWjA1YzZaMC9HSERodEhDd3NLcnVrWkRoZ3lodWJtNURUNC9jZUlFSFRObXpGVmY2NDgvL3BqZWR0dHRWS2ZUVWJQWlRBY09IRWgvL2ZWWFNpbWxOcHVOR28xR09tUEdEUHJqano5U251ZC9LaXdzbkFDZ0dZQW1BS0lJSVdFQWdnQUVNQXlqSm9Rb0NTRUt0VnJOQkFRRUVBQWtMQ3lNeE1mSEl6azVHUUVCQVdqZXZEa3lNek14ZVBCZ2pCczNEdE9uVDhmOCtmUHgwRU1QWWVEQWdUaCsvRGhZbGdXbEZHUEdqTUhPblR0QktjVzVjK2ZRdDI5Zk9KMU9EOHdZTjI0Y3lzcktHbURKcDU5K2l1ZWZmOTdqTTdlcWpQVDBkQmdNQnVuemp6LytHR1BIam9YWmJFWlZWUlV5TXpPUm5aM3RzZStxVmF2dzl0dHZTKzlQbno2TnJsMjdvcXlzREZhckZSTW5UbXljc2NXbGo4YldyZC9qdnF3TzJQL05leGd6ZUFnKytma2NoT0lEMkhIV2dJa1BQbzNiUjQ3Qm9zZnVCbHQ5Rkx0UDFsOFZDeG4xNkhKOCtPb3l2TGpzWmZScEdZU0NnN3RSYUdVd2ZkNGlqQjR6R1crOCt3Rm1qdXZ0ZWdKOHZ3RTBMQUY4eFJua0ZCa1FvSERpOVBHalVweWFkMGlIeldZRFR5a2c4QjZxcDh2cktUQVVVTXgrWTlQRFV5ZU9YN2xrL3N5aEduc1p0dTNPUmY2dmgxRFBCK0RCcDUvQm1ISDNZR0NYaEV0UG9lODNBQkZKU0ZBWVVXVUxSR0lFZzEyNzl0MFF4cloyN1ZxTUd6Zk80N00yYmRvZ0lTRUJhclVhM2JwMVEwVkZCUURncDU5K3dvd1pNMEFJUWZmdTNaR2NuSXdUSjA0QWdGUjFOU1FrQkVxbEVrRkJRV0JaRnBzM2IwYVRKazJ3ZHUxYXJGMjdGakV4TVRoMDZOQmx4M0Q0OEdGMDZOQUJiZHEwQWNNd1dMQmdBY2FQSHc4QW1ERmpCaElTRXZEMjIyOWo1ODZkcUttcGtmWVRmOTg3SURRdUxnNHFsUXJ2dlBNT1RwOCtqWlVyVnpaUU1iekhFQjBkalM1ZHVtRDM3dDFnV1JhN2QrL0dxRkd1WkpBZmZ2Z0JJU0VoV0xseUpRNGNPQUNHWVhEKy9IbHBERDE3OWdRQVpHUmtvS3JLcFdrTUhEZ1FPVGs1ME9sME9IbnlKT0xpNHE1SFc3OXJsdTdkdXlNOFBCeEJRVUZvMzc0OUtpc3JBUUFCQVFFSUNRbVI2cXN4RERPNFdiTm1iM3p6elRkVDNLcHBnS2lhQWhCVlV3VUFSc3llSVlRUXR5T04yTzEyOER3UHU5MHVxYVo2dlI1MWRYVlNZTHZSYUVSdWJpNU9uVG9GdTkyT0dUTm00UFBQUHdjQWZQWFZWN2pubm5zODZyM2w1dVlpSkNRRUNRa0pWM1d1amEwSEFPamN1VE9DZ29JUUd4dUxZY09HZVREL3h1NkxoSVFFSkNRa1FLdlY0cTY3N21vTTJGaHNXL01aOWhjeWVHenhNbXpic3hlM2QxRGhsZGZlZDNsUUFHZzBydWF0S3ZjcngvTHVmUVhJR0dzRENmZUtsMkU1QndBRk5CcVhnN1pGZWg5azllM3NvcHdtQ3ppYkhoZk9uMGRoWVJIQ2sxSVJHNks4WFBjb1FrRUlwWUpVTzgzcDVCaWU1NW5pdk8wSnZWcTJlQzFBcTMwRFFJSlNvNFlDQU1lejRKdzhBQVdVbW9aT1lydk5EaVhEbzZheUVwV1YxZWlTTlFWWnZkcmVFRnRpZUhqNFphdWhNZ3dqcVFzY3gwR2owVWpmYWJYYUs2by9OcHNOb2FHaDBqWjI3RmowNmRQbnNtUGdPQTVxdFZwNkh4SVNJcFhGZWUyMTE3QisvWHIwNk5FREkwYU11S3J6REFzTHc4YU5HNUdhbW9wdnZ2a0d3NFlOUTFsWjJSWG5ZZXJVcWZqMjIyK3hmZnQyREJvMFNBb3l0ZGxzaUl5TWxNNXA3dHk1UHVkUVBuZEtwUkxqeDQvSDk5OS9qM1hyMXVHdXUrNzYwMjEzaEJCY0lZODdRYTFXdnpSejVzeG5ObTNhbENpcXBqS0FFNEdOY2R1VElRZ0NjUWZuRWtFUWlNUGg4SEFxNlBWNjZkNnlXQ3dvTEN5VXdLMXYzNzdJejgvSHVYUG5zRzNiTmt5YU5NbGpNR3ZXck1HRUNST3UrenlvMVdySVM2dGR6WDJoMFdnYUF6WWxqdis0RWs4dGVCWjdUK2FqdExRUWVyUHJ4bEUwNjRaTzBTcjhzTzUvS0N3dHhhb3ZOd0NCTGRHdFl3emlZK0lBMU9HWGc5bklQN2tMRjZyNUt3NjhaWmNNUkNoWWJQcG1IY3BLOC9EWXVFejB2dWRGbUV3bU5FbStCWmJhS2dpaDhiaWxaVE1vQlJZQmFrV0RPRFYzeFZ2Q3Npd1VoQUJVSUN6TEVaN25HVUdnek5DSFgrM1hwSG5taDVudHcyYnUycmdHNTRwTDhlMnFOYkNRRUdSMGFZMWJPblJFSUN4WXYyb2RDczhmeGNtOE9tbDhmWHIzQktmWElTRWpDdzgvT0ExdDRzT1FrZEhsRDEvWWE5YXN3UjEzM0hGTlQvc3RXN1pJYnZiczdHeDA3Tmp4aXZ0VVZWVmh6Smd4bURCaEFscTNidTJ4WUh5Tm9YUG56amg2OUNqMGVyMzBQeDk4OElIa3RSMDNiaHk2ZCs4dXFRbFhrbDI3ZHVIbGwxL0diYmZkaGxkZWVRVnQyN2JGd1lNSHJ6Z1AzYnQzUjJscEtWYXVYSWtwVTZaSW4yZGtaSUJsV1V5WU1BRVRKa3hBUWtMQ1ZRV2ZUcG8wQ2V2WHI4Zmh3NGV2eVhpdTFXcFJWMWYzcDRCZmVubzZqaDQ5T3FOWHIxNHZGUlFVOVBEbFdBQ2dFQVNCRWRtYjZEV2xsTUtYVTBITTFySFpiRklKL2J5OFBKdzlleGFUSmszQ280OCtpcUZEaDNwVUNlRTREcnQyN2NMUW9VT3Z5M2tWRmhhQ1VncUh3NEhkdTNlalE0Y09WMXdQT3AxT3NqZi85Tk5QamNXeE1YanNwZitpZXY1Q3pCZzNCQndGb2x0Mndjc3Z6NEZTM1FUTFh2OFhaczU3SGdQN3JZSTZyQ21lZWVWdHBJVUNHSHduUnFWOWcrVVAzNFpQVy9kRGk2WmgwRjNoSkRUSi9mSEswZ2Z4MUw4WG9lKzdIS0thZDhWekM2Zmc5T25UaU80NEJKbXRMK0RuYno0RDYrU2gwSWFnWllvR0FYQjZ4NmhKOFdsUUtBZ1JCQ0lJUEFIQURKNzR5TlRYLysvaFp3alJwaXg0K1hVVVBUSVBJMjd0QjBWQUJPNWIraHFHdHRJQ0dJb2xEdzdCc3g4K2pSOVh4Nko5d3FXcW84TWZmaDZQbHo2Qk54NmZndVU4RU4ycUsxN3FQeGxBK0IrMllGbVd4WjQ5ZXlTRCtOWEkwcVZMTVhQbVRHemF0QWtWRlJWWXVuVHBGVy9vOGVQSDQvVHAwOGpLeWtKTVRBd1VDb1hrNW05c0RBa0pDWmc3ZHk0bVRKaUFtSmdZQUpEYzdqTm16TURDaFFzUkd4dUwyTmhZQ0lJQWc4R0FzTEF3akJzM0R2WDE5VENaVEJnMWFoU0Nnb0t3WmNzV1pHWm1ZdlhxMVJnelpvenJ3YWxRU0RmSTVlYUJFSUtKRXlkaXk1WXRTRW01Vk5kejRjS0ZlUFRSUnpGMjdGaFFTdEd1WGJ1cjhxYUtQUU5hdFdvRnBmTHF3enVuVHAyS09YUG1vSG56NWhnOWVqU21UcDE2M2RmRDg4OC9qeDA3ZHFDMnRoYkhqaDNEU3krOWhQZmZmeCt0VzdmRzFLbFRNV3JVcUlGeGNYSE5CZzBhOU5iUFAvKzgwWjJHSmEvc3pBTUFwVlJ3eDI1Q29WQlFrUkNvMVdvYUh4OFBzOW1NVTZkT1NXenhzODgrUS92MjdURnk1RWdJZ29BMmJkcWd1TGdZOTk1N3I4ZjRmdjc1Wi9UdDI5ZUR5UVBBaGcwYjhOcHJyOEZrTXNIcGRPTG5uMy9HSTQ4OGdrbVRKalc2SGtTUUdqdDJMUFI2UFhyMDZDR1pEeTYzSGh3T0IrNjk5MTRwOU9hS1pZdFlod2xXQjRQd1VLL08wNElUOVhvOWdrT2pvZlpZQndMMDlYb0VSMFplVS9TdndEcWdOOXNBQmppYmsrTVJ6bEZkWFlYYWVoMGNObHVEYkFJNXFNbXlDSmhwZDA5VkxQL1BmeGRFaHdjdGdrY2dzbXQ4MnVCd2FOU2VoTlZtMFFQS1lHaDlxS1Nzd3dLampVZDArQjlmYXZuczJiTTRjdVFJN3I3NzdtdmV0NjZ1RHFHaG9WQ3BWRmU5ajgxbUE4ZHhIbVdrcnpRR2xtVmhOcHNSR1JuWllJSFpiRGFFaDE4YjhKdE1KaEJDRUJ3Y2ZGM213V0F3UUsxVy8rNDh5Q2xUcGpTSXU5dTRjYU9INTAvc2tYR2xjeTR1THNZamp6emk4Vm43OXUyeFlzV0szenkrbXBvYWFMVmFNQXlEZi8zclg4N0V4TVRYM252dnZZOU9uVHBsZDZka2NlN042YTd6SmhCQ0JIa2hTNDFHQTdWYVRjWGFibUxwSTdGb1pWUlVGT0xqNDJFMEdwR1RrNE5WcTFaNW5PdW5uMzZLUG4zNm9GV3I2eGZRTGlicnkwTkJHbHNQMmRuWldMaHdJYjc3N2p2bzlYcEVSa2JlWFBYWWREb2RjcnhBVFhRU2lNMVc1TjJqWktBbXI1dkdWRlpXSmtWRlJUMURDSmtCdi9qbGJ5cUNJT0R1dSs5RzA2Wk53Zk04VHAwNmhhKy8vaG9oSVNFcmQrelk4ZUh3NGNOTENTRU9MM0RqdmNCTktqMHVncHU4RzVZSWJxV2xwU2dvS01Dc1diUFFwMDhmdEcvZi9xYkpMeFdCYmNPR0RaY1kvYzBDYkhKUUt5a3A4UUExZWNNVkgweE5USTFpQkVFZ0pwT3BtMWFyWGVpdm1lYVhmd3E0WldkbncyNjNJejA5WFhJZzhUeS9KVGMzOTcxMjdkcWRCdUNRc1RlbnU3a003KzZ4SUlpTlkrVGdKcFljRjcyWFlnMjNsSlFVcVdEbHpRSnVWcXNWaFlXRkhrSFFOd1d3NmZWNlpHZG4rd1Exa2FuNVVqOWxXUVNFVXNyWWJMWmhhclY2RWZ5VmJmM2lGMUJLRDVlWGw3K1RtSmk0MXd2Y09EZTRTY3pOWFg2OEFiZzFwcGFLNEphV2xuYk5ab2NiSVg5NkVyekJZUERKMUhRNm5jOEtIVjdxcHdScURvZGpzbEtwWEFTZ2xYOUorOFV2cmtxOUNRa0prYlcxdFc5RlIwZHZwcFF5eEJVNFJpaWxITnhPQmNHZFV1QW1PUlF1eHdQMUFaUytmZ05wYVdtL0tTM3Fid3RzSnBQSnAwMU5CTFhMcVo5eVVHTlo5bUdGUXJFWVFJeC9PZnZGTHg3QWt4SVZGYlZZcjljSGg0ZUhmK011ZDBTOE5UWVIzSnhPcDA5d2F3elV4SzFEaHc0M1ZhTVk1cy82WVl2RjBxaWp3RWNUWTlJWXFIRWM5NVJDb1ZqdUI3WEc3US8zM1hmZlRUV213c0pDL05VYWRiLzg4c3ZvM2JzM2hnNGRLcVVhVFo0OEdaTW5UOGIwNmRPdisrL3QzNzhmMTdIbmIweFlXTmdTczlsOEx3Q3RMSmhYbnFrZ1pTazRuVTdpcmxwSlI3UUFBQ0FBU1VSQlZOTW1KZERiYkRhUFFONjZ1am9wZVQ0L1B4ODVPVG13V0N3NGUvYXNsTkhoTGZQbXpaTXlaUnFUelpzM1N4a09memxnczl2dDErTDlKUElPVXFKTjdaMTMzbEZ4SFBjc3d6QXZ3cFZTNGhjZnd2TThqaHc1Y2xPTjZjVVhYNFRGWXBIZUc0MUd6SjQ5KzZhZHc1TW5UMkxMbGkzNDZhZWZzRzNiTm5UcTFBa3FsUXF2dlBJS25udnV1ZXMrdnpVMU5WaStmUGsxaGV6NGtvc1hMK0s1NTU0VDN3WUVCUVV0ckt5c2ZFaWowUVExQW00S1FSQ0l2UHlSdTlLdUJHNFdpd1ZHbzdGUmNIdmlpU2M4VXEza2N1clVLYWxnUW1OU1dWa3BGU2Y0UzZtaUhNZGQxdnZwWlZNVGN6NGhMOGZ5NjYrL0JxZW5weTlpR09iSnZ5TVlIVGh3QU0yYk44ZisvZnNSRnhlSHZuMzdTamwxWnJNWjI3ZHZCd0QwNmRNSDBkSFIwbjdsNWVYWXQyOGZJaU1qTVhEZ1FKOVZGazZkT2dXTlJpTVZFYXl0cmNYT25Uc1JHQmlJZnYzNmVhZ1RSNDhlUlY1ZUh2cjE2NGZjM0Z6Y2V1dXRrbHF5Yjk4K2xKZVhvM2Z2M2toTXZOUU9vcXlzRFB2MjdVTm9hQ2dHRGh6b2tlWUZ1TElpYW1wcTBMNTlld0JBVGs0T3pwNDlpOTI3ZDJQYnRtMEFnTDU5KzByeFo4WEZ4VGh3NEFDU2s1UFJxMWN2Q1FndlhMaUFtSmdZN04rL0g2bXBxZWpTcGNzVngwQXB4ZDY5ZTFGUlVZR2VQWHNpT1RsWjJpY25Kd2RSVVZFb0xTMUZibTR1K3ZYcmg4VEVST3pjdVJPSERoMUNSRVFFOXUzYkI3VmFMYzFEMDZaTllUS1pHbVdsaHc0ZFFsSlNFbnIxNmdWQ0NJNGRPNGJVMUZSb3RWcWNQbjBhblRwMXdvVUxGeEFZR09pUlk3bHUzVHFNSFR2Mml1dmgrUEhqaUk2T1JsSlNFZ0JJZWJPREJnM0NzV1BIY1BUb1VlemF0VXNLY0IwNmRDaTBXdTNjMXExYnE0Y05HL2JSeXkrL3JIZXJsS0xkemVsV1MzbDNxWHhSTFlYRDRTQ0NJRkNqMFFpMVdvM0V4RVFQVlpRUWdwS1NFZ1FFQkhqWTI4VHI1NnRzMDlHalI1R2JtNHR1M2JwNXhNQUpnb0FkTzNhZ3ZyNGVRNFlNa1k3M3l5Ky9vRTJiTmdnTEN3UExzamh3NElCMExleDJPN1p0MndhbFVvbDI3ZHJkV01aR0tmVUFOWGt5dTNmVEZWbHZBZzlRTzMvK2ZFUjZldnJTdnl1b0FhNHlPazgrK1NUMGVqMldMVnNtWlFQb2REcmNkdHR0S0MwdFJXRmhJVWFQSG8zYTJsb0F3TEZqeHpCcDBpVG85WHBzM3J3WkR6endRSVBqYnRteUJmUG56NWZBOE9MRmk1ZzRjYUtVL0QxbXpCZ3BMV1gxNnRWNCt1bW5ZVFFhc1dqUklqejk5Tk1lS3NYWFgzOE5vOUdJS1ZPbUlEczdHd0J3L1BoeDNIMzMzVEFhamRpNWN5Y21UNTdjd0RhemJ0MDZqd1RtdXJvNmxKYVdRaEFFRkJVVm9haW9TTFR6WU9mT25YamdnUWRnc1ZqdzdydnZTb0dzcGFXbG1EVnJGdDU0NHczb2REck1talVMdTNidHV1SVk1czJiaHkrKytBSW1rd2xUcDA3MUtGVzBhdFVxVEo4K0hlKysreTV5Y25KUVgrOHE2bEJTVW9LYW1oclliRFlVRlJXaHRMVDBpdGR2NTg2ZHVPKysrMkN4V1BEUlJ4OUprZkliTjI3RWtTTkhjUGJzV1R6eHhCTUFnUGZmZjk5RFBhT1U0dnZ2djhmdHQ5OSt4ZlZ3L3Z4NVBQLzg4OUwvYmQyNkZaOS8vamtZaGtGMWRUVXFLeXZCc3F3MHI2S3dMRHZMNFhBOFBISGl4R2dBWXZGS0ZRQ2xJQWdLQUFwS0tXRlpWbEpMVFNZVHFxcXFZTEZZVUYxZGpaeWNIQS9tVmxWVmhhMWJ0NkpkdTNiSXlja0JwUlJuenB6QitQSGpVVjFkamM4Ly85eGo3bDU5OVZXOC92cnJzRnF0ZU9TUlI3Qmp4dzdwdXcwYk51RG8wYU00ZmZvMHhvd1pJN0g3NWN1WFN5WU1vOUdJSjU5OFVnTENxVk9uWXZ2MjdjalB6M2RsZnpSV3R1aVAyRTZmUG8xdnYvMFdyN3p5Q3ViTm00ZXBVNmRpNU1pUjZOT25EenAxNm9UVTFGUWtKU1VoTmpZVzRlSGhKQ2dvaUdnMEdrYXBWQ29VQ29XeXNMQXdUaENFTituZlhJWVBIMDZ6czdNcHBaU1dscGJTRGgwNlVLZlRTV3RyYStteFk4Y29wWlN5TEV0bnpKaEJ0MnpaUWltbDlQNzc3NmViTm0yaTd0TFFkTUdDQlZTbjAxR2owVWpUMHRMbzFxMWI2WkFoUTJoVlZaWDBPNldscGZUTW1UUFM4Ykt5c3VqcDA2Y3BwWlQyNzk5ZkdrTjVlVG50M3IwN3BaVFM0OGVQMHhFalJsQlhOV3BLdi9ubUcvclVVMDlSU2luOTlOTlA2ZXpaczZuVDZaUytzOWxzMHU4SmdrQ3pzcktvVHFmek9OK2FtaHJhdFd2WEJ2TXdlUEJnYVF3V2k0VjI3dHlaT2h3T21wT1RRd2NOR2lTTjRZTVBQcURQUGZmY1pjZHc1c3daZXV1dHQxS3hSK2V1WGJ2bytQSGpwZCthUDM4K2ZmNzU1MzFlajAyYk50RlpzMmI1L001b05OS09IVHQ2ZkRacTFDaDYrUEJoU2ltbEhNZlJuajE3MHZ6OGZQcmRkOS9SZDk1NWgzNzQ0WWQwNE1DQnRMS3lrbzRkTzlaampvNGNPZExndHhwYkQzYTduV1prWk5EaTRtSktLYVYzM25rbjNiRmp4MlZMSnhrTUJwcVdsa1k1anFOMnUvMkQyYk5uWndCb0FTQUJRQlNBVUVKSUlNTXdHZ0JLaG1FVUdvMkdJWVNRd01CQUVoc2JpNFNFQkRBTWcwNmRPcUZQbno0WU9YSWtKaytlakNaTm1tREZpaFg0OXR0dnBScDVIMy84c1hULzkrdlhEL241K2Fpc3JFUkdSZ2JzZGpzb3BUaDQ4Q0NtVEpraWxTMWF0R2lSdE0vMDZkT3hmdjE2VUVveGR1eFluRGh4QXBSUzFOVFVvR3ZYcnFDVTRwZGZmc0dJRVNNZ3NzeTMzbnJyeHFtaTU4NmR3NFVMRnlUMVU5N3pVN1NwTlJKOEt6RzE1T1RrUllTUTJmZ0hpSml2MkxScFV6QU1BNlBSaUpDUUVLeGV2Um9yVnF4QWFHZ29jbkp5cENkN1lXR2hwRjRTUXZEdmYvOGJnTXZ6YkxmYk1YLytmUFRzMlZQSzd3UmNwV09lZi81NVdDd1dCQWNIbzZLaUFqelBTNnhJUEo3YzFwT2JtNHZ5OG5LTUhEbFNzdUcxYmV1cWRqSjU4bVFVRlJWaDJMQmhTRTFOeGJScDB4QVFjTW44ZWVUSUVhU2twRnhWM0JQUDg4alB6OGRUVHozbE1WNHgrVjZyMVVycWVYQndzRlRKcExFeEZCUVVvRzNidHBKNm5wYVdKdFhqRitWNnBRUmR2SGhSVXIyVVNpWGF0R21Ed3NKQ3BLZW5ZK2ZPblhBNEhKZzZkU29PSGp3SXBWTHBNVWVOSlhuN1dnOFJFUkdZT25VcVZxMWFoY21USjZPbXBnYjkrL2UvcXJYbDNoNFlOMjRjOXU3ZCs4R0pFeWZxdmJVcmQ4NG9MK2FYOGp4UFdaWVYrLy9CWnJOSmFtaDVlVGxpWTJOUlhWME5sVW9GaFVLQjA2ZFBTK1drNU9zb1B6OGZGb3RGVXJjRlFmQllFM0x6UldwcXFrZTFGMTlTVmxibTBTTlZwVkxkR0dETHo4LzNDV28rS25RMENPa1FiV290V3JUNHg0Q2FYSXhHSTFpV1JYQndNTFpzMlFLajBZZ3Z2M1JWSlg3MDBVZWwvNHVPamtaRlJZV1VFTDVueng1MDc5N2Q1U0ZpR0d6ZXZCbno1czNEZSsrOUorVXJybDY5R29tSmlWaXlaQWtBZUtnL1VWRlJxS3lzOUxDZmlaKzNiZHZXWjRYWnZMdzhQUHp3dzNqMjJXZHg3Tmd4UFBqZ2c5aTJiUnVpb3FJdWU5TVNRanlxc3dLQVFxRkFlSGc0UHZ6d1E2a3NraWlpK3UxTEdodERURXlNeHcxU1ZsYm1BZkxYVThUZkVwdnVpTC9WdkhselZGWldJakF3RUlNR0RjTGl4WXM5R3FaWUxCWWNQMzVjZWloZGFUMEFyaVQ4RVNOR2dHVlpUSnMyemNPdTZtdGV2VVd0VmovUXBrMGJZZFNvVWUrLytPS0xhQXpjUkFEaU9FNEtCUkVkQVlRUVhMeDRFZDI2ZFVOdGJTMFVDb1hrUURoKy9EaDY5KzR0SFU5Y1E5SFIwZGkwYVpOUE83Qjh6T1hsNWNqTXpCVEhLajNBNUNhT3FLaW9CdXI4SHc1c0pTVWxVdE1WYjZibWJWUHpGZEx4emp2dnFOeU9nam4vSkVCNzc3MzNNR1hLRkt4YXRRb2pSb3lBU3FWQ2JHeXNWQStydUxnWXUzYnRra3JzVEpzMlRmS2s1ZWJtNHF1dnZzS0dEUnZnZERxaFZxdVJrSkNBdDk1NkM3ZmZmanZhdFd1SC92MzdJeVltQmx1M2JzV09IVHR3NHNRSm5EbHpSckt4VFpvMENRc1hMc1NERHo3b2tZUFh0MjlmdlBMS0szajExVmZSdjM5LzdOaXhBMGxKU1pnOGVUS09IRG1DYmR1MlljNmNPYWlwcVlGYXJaYWV2bUxsaU9YTGx6YzQxL0R3Y0NnVUNuejExVmRvMHFRSjJyVnJoNWlZR0R6d3dBT1lNMmNPNXMyYmg3cTZPbXpac2dYLy9lOS9MenR2alkyaGE5ZXVJSVRnN2JmZlJrWkdCcFl0VzlhZ1NzVzFlcHMzYk5nQXU5ME9qdVB3M1hmZklUUTBGSU1HRGNMOTk5K1BKVXVXNE1rbm44VGV2WHNSRmhhR3RMUTBFRUlRR0JpSXRtM2JJams1R1VWRlJSNzlBRFp2M296aHc0Zjd2Tmw5clFmQTFVMXE4T0RCMkxCaEEvYnQ4eXlBbXBTVWhPTGlZdnp3d3c4SUNBaVFBTUpiRkFyRlF3c1hMblR1M0xuei9mMzc5emV3aTdyZjg0SWdTSEZ1bEZMaWNEZ29JUVR5cHVONnZWNEN0dFRVVkx6NzdydUlqSXlFeldaRGNYRXhBS0IxNjlabzNydzVGaTFhaFBIangrUFlzV093V0N5WU8zZXVOQTlkdTNhRnlXVEMvdjM3c1hqeFlnQkExNjVkOGZubm44UGhjT0NISDM2UXhwZVptWW4vKzcvL3czdnZ2WWRXclZwaHpabzFVQ3hkdXZRUHV6bXJxcXB3enQyalFON00yR0F3ZUJTSTlFNlRrc2VwclYrL2ZnbkRNQXYrU2FEMnhSZGZZTlNvVVRoNDhDQmF0R2lCdVhQblFxVlNJVEV4RVltSmlkaTNieC9pNCtNeFljSUVSRVZGSVRFeEVhMWF0VUpTVXBLckZwVlNpUmRlZUVIeUxDb1VDblR2M2gxQlFVSG8wYU1IenB3NWcvVDBkTFJyMXc0cWxRcUhEaDFDV2xvYWhnNGRpb1NFQk1URXhDQWpJd05XcXhWSGpoeEJ0MjdkY09qUUlVeWZQaDBLaFFLMzNYWWJjbk56Y2ZUb1ViUnAwd1lUSmt3QXd6QklUMDlIVUZBUWR1N2NDWXZGZ3NXTEYwdTlLdGV0VzRjbVRacElIanE1TUF5RFhyMTZZZCsrZmFpb3FFQmFXaHBDUTBPbGlyS2kralpyMWl5SnFRUUdCbnJVNllxTGkwT0xGaTBhSFFNaEJDTkhqa1IyZGphT0h6K09pUk1uTm1neTBySmxTOFRHeHZxOEpsRlJVUTA4ZDl1M2I0ZkZZa0czYnQxZ01CamdkRHFSbnA2TzlQUjBoSVdGWWZ2MjdZaUtpc0t6eno0cmxmU0ppSWhBdDI3ZEVCMGRqZWpvYUdSbVprcWU2T2VlZXc2UFAvNTRneWoreHRhRG5EdzBiOTRjQXdZTThOaFBxOVdpWThlTzJMTm5EM1E2SFRwMTZvU0FnQUFvRkFwMDY5Wk4rcit3c0RCMDdOZ3g0ODQ3NzdTLzlOSkxwMldNVDBRNEtxcWNjaWFuVkNxSjZOUUtDUW54cUtSQ0tVVmtaQ1NhTld1R0V5ZE9JQ2twQ1ZsWldVaExTNE5XcTBWV1ZoYXFxNnR4OE9CQnhNYkc0dDU3NzVYVTdkNjlleU12THc5bFpXVjQ5dGxuSmU5MXQyN2RVRnBhaXB5Y0hFeWFOQW14c2JIbzJyV3JWT3JxOE9IRHFLcXFRbng4L0IrWEs2clQ2WkNkbmUzQjFyeXpDcnpET3VSeGFtTHdyVHRPelM5Kzhjc05FTFBaL08rUWtKRC9BYkM1SzRNNEFMQ1FWUVlSYzB1VlNpVjFNMklxNXBXS1NmTVJFUkZTWG1seWNqSlNVbEtRbHBaMnc1TG0veEJWMUdhelNSM2FLeW9xVUZ0Yks3WEh1NXo2eWZNODVHbFNETU1zOWk4MXYvamx4a2x3Y1BCY25VNW5qWWlJV09kbVpoVHVXRGF2OUN2cUluWEVsYU5GQ0dVWUJnekRnQkFDOFcrbFVnbVZTZ1YzY2owNmR1ejR1MnZrL1NuQVJpbkYrZlBuVVZoWTZLRit5cXQwaUI1UWVaRkl0NnVXRVJQYTNibWYvb3dDdi9qbHhrcEFlSGo0WTFWVlZaYTR1TGl0MUpWYzZtMXZnN3VIZ3VCME9rWFBxQWh5SUlSSWRqWnhFd0ZPbzlFZ1BUM2RaeE9YbXhyWTVLQW1OaklXSFFVV2krV3lsVzhGUVNBMm0yMll1MHFIUC9mVEwzNzVjeVFtSmlabVprRkJnYkZGaXhZSHZKZ2JCVUFGUVJDOW81QUJHaEdMVjRxYkhOUkVZQXNJQ0pDYUt2OGxnSzJ3c0JBWEwxNUVXVm1aVDBlQjNXNXZrRlVnQyt0Z1RDWlROM2M5TlgvcEliLzQ1VThVUWtoS2NuTHlROGVQSDlkMzd0dzV4ODNjUkpXVWluMFJSTllHbVlOQlZFVzlHWnRTcVlSYXJZWmFyWmI2bXY1UmN0MjhvbFZWVlpKZHJieTgzS2RkclRFUHFGak9PelEwOUNWQ3lFRC9zdktMWDI0S2NHc2FFeE1UMnFsVHA5TmZmLzIxelExZWtxY1VQbXEydVZWUzhXLzU1NUIvTG9hK3lIdGNYRmZHZGoxYWg1bk5acHc1YzBaaWEySU9xSGViUElmRDRlRUJGZFhQdSs2NlN3SGdtZnI2ZW44NWI3LzQ1ZWFTNFptWm1UVXBLU212WGJod1FaQXhOMWY2Z2ZzUDl5dmNXUW5FblVJSCtlWjBPcVhOWFRVRTdkcTErMFBBVGZsN2F6NVJTcEdYbDRmaTRtSlVWRlEwc0tzMVZ0TGI3U3dnQUpobHk1WXRjRHFkTjZUeGl0aFQwYnZxeEpYRVlyRWdNRkFMUWhqL1V2ZkxQNDI1M2IxMTY5YnFsSlNVejkwNEpzakJqUkFSeHdUSzh6emhPSTY2YVJzVnZhUnlGZFhiWTlxK2ZmdnI3a3hRQmdVRi9xNEQ1T1hsb2JhMkJucTlEbWF6Q1ZhckJYYTdwSExLS25RNGlSaWRMUGVBMXRiV1RIVTdDMjZJOEx3VFRpZVBhejF2blU2SHlNaUlhK281YVRBWUVSSVM3RE9TM0M5KytTdEpVRkRnblB6OEM1VzMzSkt5RllBM2M1UCtUeEFFZ2VkNU9KMU9LQlFNNFRpT0twVktpYUhaN1RaWXJSYVl6U2JvOVRyVTF0YWdvcUw4dXJidUF3RGx0ZHlvM2xKV1ZvYXlzbkpVVjllZ3ZsNEhnOEVJczdsQmp3STN1RW1nUnR4VWxkVFcxdlFOQ0FoNEJqZXdMcHpyYVNIZ3Q1eTNhQUM5V2pHWlRBZ0xDOFh2bVdPLytPVW1FV1Y4ZlB6RHg0OGZxK3pjdWNzeFg4ek4vVW9FUVFEUDg1VGpuR0FZeml2a1F3bVZTZzIxV2dPTkpnQmFiU0NDZ29JUkdocmFJQ2Y0ZHcyMnNXcVhWNUxTOGpJY1Azc0JPbmRHZ2NGd0thbmRiTGJBYkxXQnZRUnNJbHNqdkNBUUtsQ21xS2d3SVNnb2FENkFsQnRMcXhrcHp1WmFWVzU1Y3U4ZnRjOGZJZnBqZTZCb2xvR1FxQnNURmtnNU82dzE5VkJHUkVPalZRTndvbUxySnRoc2dLcHBHeVJsdFBsYjNPbS9aVjV0aFRtd09LTVJuUkxYeUgvWVViWGpNQ0p2N1FlVm0rZzdpazZqN0ZnK0FJTFlRYU1SSE1wY3g3RkVJRG9sNFdwM3VhVjE2OWIzcjF5NXNuemF0R25sQU1SQVhmR1ZpcDVTbnVmaER0cVZRa0F1ZVVjdDd0QVB0YnNUbGhiQndVRUlDd3U3cHFZd2p0SmNHSXhheExaTGFuQk95bXRXazZnVml6N1lnUDFGNVNCMVpTaXZxVWZYdUZBb0xTWllMR2FVbEpXaHNONE13dGtnQ0VDSUVzVHBkTUxKY2NUQk9RbmdzcXU5azJ0KytybjQrQ0hrVDFpUWxPS2ExVU14UCs1YTl2c3QrL3dSVXZMWmNnUk4vZ3hodlFQLzhOK3EyL1laRHIveUpiVE5Xc0JSVm9CbTg5OUZtLzVKVUFVRXduSnVOODRkcUVLenpIWi9DMkQ3TGZOcU9MQUdoZnBNeEthT2JJem5JLys5enhEWTkxWm8zRVNmVVdxZzFnYmc0dHN2UUoxK0cwTERHNjZueXU4L1JzRHRhUWlMOFJ4THdmdExvZXoxR0pJNlJEYll4M3ppUjVRWU9pTTJOZkZhTko0QjQ4YU5LNXcyYmRwYk10WW15RmdiNElwemcxc2xwUXpERUlXQ29RNkhBa3FsYXhNekVkVHFTMjMrZ29PRDBiRmp4NnNtQXBiam0zSDJWQkxpMDVvMU9LZHJCemFvMFQrdERYbzJEVUZob1JxNzlwWmk3emtkdWtjb1lOYlg0V0tkRlluaGdlRHRRRVYxSFRFcmxWQUlUbkN1Q0dWQ0FNWlNtLy9ReURmMnpNekpURVhIRzV4YklEZGkvalkxbHZuRDl3RUVVREJ3NnF2QTBTQUVSbmg2alNnRUVEQ3dWNVZEMElRak1QelNZclpYbFlKWGhpSW9LdlRTRHF3ZG9BVE91bW9JbWpBRWhIcW10RGlOZGJBWkhRaU1pNGRDOWR0Qm1DL2RqLzJMVjZMSDJvMW8waXdVRUd5dzFuTmdHQTNpQjQ5QU1GT08vQUtMai9rUTRLaXBCc2NwRUpRUUE4K0hIUTliZVFVRVZUQUNZOEk5dnFNT0s4eFZ0ZERFeEVHdDFkeGs4K3I3bkFqUGdUb0ZVS3NCTmdzUUhCZmhPVDVuRFBwKyt4bUliSTYwemRxaGViTjJxUHhvQ1lDR2E1YzZuV2ovM0NvUVpjUFB6YWNPUU5scU9vZ1FEaWlWMGppbzRFVDg3Zk1RTC92czBqQTRXTXNyd0VUR0lTQlEwMkN0OEViSGZWVVZWWVZ4VGVMV0ErQjlxYVNDSUFpRUVPcDBPc0V3QkE0YkpZUXcxS1hCS0tGVXV0T3NWR29FYU5SUU9PelFLTFVJRFExMTI5c0UyQ3JMUVFNaVBhNERBSEM2S25Ba0JFVGdRSjI4TkIveWMxSmVxemVpb3FJZWFrNlBrcXBLMU5YVmd6aFoyTXdtV05RcTFPb01JQW9DY0M2N21vSlFjQ3dMRUVxb3E2WTZzVmhNL1pUT3V2a2NvMFN3a29DUUd3MXNsd0R1dHpDMmE5bnZ0K3dEQU9lZm1ZaUx1U293U2lXRXlvc0l2bjBoK3M0ZDdmclNlQXJyK3orRHBHRXhxRHlsQTh3NmRQamtKelJMTXVMUWZWTlJaNDJFeWxJR2tqWVJ0NzQ2R3lvR29FNE9oVy9OUjdGS0FYdkJHY1RQWG9IdWQ3a0tFaGIrNTFHYzNGU0NpT1lSTUY2b1E4WjNHeEVyUGR3ZE9QbmtUS2dHelVLN3JDNVhYaHMvckllcSt3UWtOSGVyRTRwQUJNbnlSd2dWUUhuQmF6NnFzWFB3ZUxBeExhR0NBU1pkS1BxdStoQ1JNUnBRVXpIMlRMa0g5dENXVUFzNjJCTUdJdXRWVjBrKy9lN1BzV2ZSSndodG13SjcyVVVrUC9rSjJnMXNmcFBNYStQbkJJR0g4ZWVWMkg3Z0t6Q1dNcUQxblJqNHhpd29BVlN1K3k5T2Zia0QrbU4xR0h4bUx5SzlzWnJqQUhpdUovYnN6OWo5L0Vld25QNFZyZC9laTdhM05uR3BaTWMyWWQvTFg4Q1NVd0pTOERqS1A5RWkrclpIMEdWeVB3QmxPSEQzazlBVm5rZkk3WXZSLytsTHBkcnR1WHV3ZTlZaU1FMWFnUzNNUTl4REw2SGJYWDE5clpXSDl4eklMdXpYSysyWVN4V2xBa0FFVVMxMXUwa0p6N0p3MnUxVVNRanNPaDM0NkhnM2ExT0M2TXRROVF1TFdwVWRRZXBnWEZUK2lJQjNYa0NndlF4NXp6d0hOclFaVUg4UlFVUG5vdmNUNDBBZzRPSnJzM0Z5WXlIQ1lqWGdXQWRJbTJUM2ZIaWUwelVCbTlWcWxjSTZhbXZyb0srdnh2SENTc1FGaDdyYWM5bnNJTHdBbzlFR284TkpGRlFBRlNpaERBaER3SXhic2lMOGtUVTduNnF2MHlkTUd6OFlLZW8vUXhIOWJjRDJlL2E3WmhEbG5YQkc5c0tvajU0Q01lWGhoOHp4cUpneUFnbnhTaGV2cURrRlJlWm1qRjdlRVFBTEo2dEUxZW8zVWFYcWg5SGZMNGJDYWNDdUlabkkyek1PN1Fja0Fyd1R5clFzREg1dUNwemxlN0Yrd0JLMEdyY0xFWUhWT1BmaFhtVHNPb1dFT0FCT0Zqd2pmOWdJTUp3NkFrMTczVldkZytYQ0JRUW45Mno4ZjZrQXdla05iQkhvczM0NzFDRXU2cDczd2hTYytXb1grajQySE9ZRFA2QStiRERHZmVFcWhNbXpyTFJ2NGVjZm9OblRuNkhUR05mVG5XZUZLNDd4eHMxcjQrY0VnWWNWeVJqNzdadFFDd2JzSE5RRCtZZnVRSnVlc1dneWZnNmFqQitMSDlwTWRBT1kxL2lkSEVBOWdVM1RiakNHZmpVWVIrN3FCdEJMYXkydzYyZ00vV28wanQvZkc2bzczMExhMEdUWmtSTFI1OHV2VVBMK1k3aFFUMlhIcytMSVkzT1FzT0JyZEJ6Y0dvTHBQRGIzbTRINk1Yc1JGZEpnclRSaHFXTGFzbVgvTGxpdzRCbUJVZ2lFUUlETVkwb3BCUVVFeWlpZzBBWlFGWnpFWEZ0RHRhR0JVQ2pzSUN3TGMxMDE0b2VQUkd5TEpvaUxqa1p0UlFWMi91ZFZKSTE4R2NObkRRR2NPdXdZT0FDbDQwYWlxZm9Ram41eUFVTVBiMFY0a0lEajl3OUdsZlNnOUR5bmEzTFhGUlFVb0t6TW5RTmFYNHVESjg3QW9RcENzc0lKczlrT2ptVWhjQUtjMUVuQVM0bnRFQVFRUWFERWtkenB5Ym45MncydEx6bVBWN2Nmd2FqVUVZaFR3UzgrSkxaUEwxZW5uWkJXaUdrRDFKOHFSMEs4ZTNGcVVuSEw2STZTYVVDcEJuUW5UeUt1NzVOUUFJQXlERTE2dDBmMTZkUEFBSmY5Sks2bnE0cXBNcUU3b3FJdW9qN2Zqb2dPa1lqdkdZa2pEMHhEOHBCK2lCODREUEh0NWZhV1FQVC82ZFFmZktZTXFqZStnOXp2ZHNObXRvT3RMa0tJdTV5ME5xMHJtRk1QWU5jY0IrSjZkRVh5eUpFSVVydm5wMmN2SFBqWExEalBqa0JVajM1SUh0RGxKcHBYWmFQbkJBQlJtWmxRTXdDWU1NUjNiNFg2N0d5ZzUwMlFjR1BLUlhXMkRZcTkzK0RZUVpkcVRwMmwwQldZRWRYUjUxb1pPSHYyN0xNTEZqenpzVnNsNWIzc2JkU04wSlRuZVRBcUJnTGxpYzNPVXFWQ0FjSnljQVpHUUNBc2pFWWpOQm9OQW1zS1VIK3NDSHowZWh5ci93VVVBT3Qwb0Q2bkJCR3FNMkRTTWhBZXhBQmdFTiszSjZyT05MYXFydFpRV2xLQzB0SlNWRmRYb2E2dUZrZE9uRUtKUTRIV29Vclk3YTVxSFZRUUlIQWNHTUpBelFDOFFBbEFDYVdVbWZiOGY4Wk5IZHJuNlo3TjR6R3lieCswNXdxeHJkRGlSN0JHNmNWbHZ0TUc0ZmRGa0JEM2xWZWk4MGZiMEh2eGRLaTVNdXdmUHhSNXgycCs4MUdEV2phSHNhRDRtdmF4N0YrSmd4K2ZSSmQzL29lUlc3YWc2LzFEM2RvTW9FenNnZEg3ZmtMS2tFNHc3VnFGSDI1L0RLeDd2NllQdkl3Ulg2NUFlSHdBemkrNUI0ZmUzM0hUek92bHpzbm5Yb3ppSmxsMEFxQ0tSUHpJTENSbVpTRXBheVI2ZkxvV1RXOEpiSFN0QkFZR3ppb3BLZTRMVnlVZURhVlVEVmY0bG9KU3FxQUFReWwxOXlybHdRUGdPQllzNjRDRDQ4QkJnTlZxaGNsa2hzRmdRRjJkRGpxT0FkdXFMVWlYTGtqS3lrS1hOLytIbEY3WEZncHlWY0JtTXBrOGVvQWVQM1VLWjR3VUhhSTBZTzAyMk8wT3NLd0RDZ0NVdFJPSEsyYU5VRUVnQkdDcXFrcVRRZ1BWVHhUVkdselRaemVneEVJUUhPQ1A3MnBNcXZjZWNCa3JUSG1vT1FkRWRyeThTejRpdlFPcTl1NEZEd0JPQXlyMjV5QlNWbUcyNnVCZWwvRzMvRmZVNlZvaHFrVUFBQmFzUlVCVVJqKzBtL2NzVXZyRndwZ3Y3K0xOSXVmLzV1RDg5cXRqYlFtang0SGR0eHBsQlFiM2ZXS0ZwZHB3eWUwVUdRbTJyQVJPdVhtanJBd0JyZElSSGhNRUNCYVUvYlQza3FIYVpBTEM0cEE0YWdLNnY3WVV5cEp6c0xwM1prMG1CTjNTQ1NuM1BveE9EOTRHL2JtOG0yWmVMM2RPQUZDM2J4OVl3WFc4eWwvekVOa2g3ZXJjZHBIaHNGeWhzWW0zS0RVYXNIWDFWL2ZQSVcwUTI5b0dxeWtjc2QyNklyWmJWNFMzYUFaVkVIUFp0ZEswYWRON3YvbG1UUk1SM0FCSTRBYUFvUUxQdU94dFRzSVRRSEJ5aEdVNU9EZ25XTjRKbTgwVnRPc0NOdzYwYVNES0NxdGdpd2lIdG5VcW9scTNoRG9rRUVHZE9vQm1INGJlSWdCd29uTHZ3Y2JQKzJyTzE1WFk3aTRZV1ZPS0EzbVZzTEYyN0NtM1FXRHRnQUFrQkNuaHBDQXF4dFc5QnRSVmg0NEJtS2lvdUhtUGp1emQ3WUZ2TitMb2tSam9hMnVSMExFblJpUnAvQWpXaUNocUQrTEhjWGVBcjc2STBBZGVjTnVCR3BmNE94OUgzQTkzNG9jUko2Q3lsWUdrUFlSVy9TK3BsZHpKTGRnNmNTdnNCV2ZRZk1sYmNEbWFxckZyMkZqd0NhbFFveDVHOHkwWU9GUWVpc0doY3RNM1VNY09SK3ZCSGE5OEV5WDNSNzkvVDhIKzIvc2pvRVVMT0VxTGtmTFNhblFZNm5JbWFMcU1SS3VXWDJGOXQ5N1FkQm1CMFI4c1F0U2dTVkMvZFJlMlREd0t4bGFQZ09oTERnRHp3Zi9oNThWZklxSk5DOWdLemlCNjVnS0V1YWZoN0lJN1VIUlJpNUFZTlhTNTFlajZ3ZU0zemJ3S2x6a25BTkFxeXZIVDdlUEFXTXJBZEhvTXQyUkVBZERoNEQzM1FGZnZnTkZRZ1FQalJrT3BiWUUrYTkrRTJNSzY5ZHo1MlBuWU9PUXZEVWI3bDc5RXE1NEp5RnZ4S1BMMkZNR2FXdzFTY2k4S1g5TWliZm4va056ZXRWZnlQUTlqMXhPUG9PeVRFTVRkK1RReXBnOUc3ZFozY1BqdExXQXJMOExCL1lyTisxZWl5WDBMMFhsOFQzUjc4M1hzZm5BcVN0NUxnWktyaGRtU2dDRS9mWXpneTZ3VlFram5VYU5HM1FIZ3Z6S1ZsSGZUVklGU1NnV25rd29BVlNyVmNEcWQ0RGlPRUo2bm5FQmh0OXZkd2J1dXloOVJQUWVnYXZ0S2JEeitFM0lpQXhCbERVUGZEZDhqSnI0dnVqN1FFajhQRzQ3UVdDMTRxbkUxREFRYW5CT2hHbW5RZ1FBQUlBQkpSRUZVVkxpaUNpb211SmVXaXVXSTZxRFhHM3gxbVhJbnVIT0U1d1ZDS1ZYWTdiYUpLcFhxZnk3ckw0ZHlnd1VhYlJDaXRIK09jYTI2dWhvc3l5RXg4ZHFvYlhaMkRsSlRXMG0xNi8rb2ZRRGc3Rk9qWWVtNkZCMkhKWUlUZ2hFVUZYVFYrN3JDRWtJUUZOVXcwTkZSVXdraElCVGFrRUFQOWNOV1dRa25WQWlPajhIMWNPZFExZ3B6ZVRWVU1mRUlDTHFLZUI2QmhhbTRFdXJZQkdnQ2xWNWZXV0dwcklVcUloWUJJWjdIWWcwMWNCZ2NDRXhJaEVKNWs4M3JaYzRKQUhoTEhXeG14aXZjNDJZUkFkYnlVbEJOQklLaVFxNTZyWlNWbGMxTlRFemFCY0FDVjJseE82V1VKWVJ3N3JMaXZIZEpjYTFXaThEQVFBUUZCU0VrSkFUaDRXR0lqSXhDYkd3czRrSUQwYXhaSzNUdW5ZbmtwRXRCdUd4ZEZaeE1NQUlqZ240Ylk3TllMQ2d0TFVWVmxieTJtZ2tXaTlXZEQzb3BiY3JwbEhKQmlTQzRnbkJMUzB2aVZTclYzRXVQU3hVU0lzUGhsNnNUZFVRYzFOZTRUMEJjNDhHV21waDRuOVlJYlh6Q2RSMDNVUWNpNUZwcWJURnFoRFJQYnVTclFJUWsrLzVPSFJZRGRkaE5PcStYT1NjQVVBUkZJVGpvWmwxNURBSVRrcTk1clNRa0pFejc5Tk5QY3U2NzczNGVBQTlRaWJYaFVvRktNWmVVS2hRS3dySXNkV1VrS0tCU0tXR3hxS1RPWW9HQldoaFlPOHBLU3hFVkdZbWdJTmVFcWFPdWZQMHVhMk83MUlURjFUSlBCRFZYYVc4SEhBNFdIT2VSTWlWNlFnbWxsTVRGeFQwT29Lc2ZvcTVORW1mOEgxSnVUZkZQaEg5ZS8xSkNDT2wweHgxM1RIRGIyVFNVUXU1SVlFUmNrR1VsZ09NNHduRXNIQTRXZHJzRE5wc05Gb3ZWblNTdlIxMWRMU29ySzZYV2ZWZHRXMnpzaThyS1NxL3kzaWFZelJiWWJGWVBwc2F5bkZSalNSQjRLY0hkYXJVTVpSaG1ydjl5WDd1RXRPN21ud1QvdlA0bEpUQXc4TUhjM1BOSFUxTmJId2JnZERHM1M3WTJTSW55VXJvVldKYURRc0ZLU2ZJMm13cG1zOXFkSks5RFVGQVFRa05ERVJFUmdmajQrS3ZrbkQ2RTR6Z3ZGZFJWVzgxbXM4Sm1zN3U5b0t4VTJsdXVnbEpLeWIzM1RsTm9OSnJIL1pmWkwzNzU1MG5MbGkybnBLU2t5RDJrS2plSll1QU8veEFFTVFURUNhZlRTVGlPQTh1S3JNME9tODBLczlrTWc4R0krdnA2VkZWVm83UzBGRmRiUDlJbnNMbENPNnJjS3FoQnFyTm1zOG1aR3V2UkFkcGRKWk5RU3BrUFB2aGdOb0JCL2t0ODdWSmRYWTNTMGpML1JQamxMeXNLaGFMLzRjTy9qQmFCalZLcUVzR05VcXFnbERMdTZ0bHlsVlRDRllmREJXNlg2cllaM0NwcEZVcEtTbjRic0JrTUJuZlBnaHJvZEhxWVRLNjJlV0xMUEhtTk5hZVRJL0l1VXdCSWZYMWRxa0toZU14L2VmM2lsMyt1UkVSRVROdXlaWE9TRjdoSnNXMEFpQ0FJTXRiR1Nhek5WWkRTN3JhM1dXQXlHYUhUNlZGYlc0UHk4bklZRElackJ6WjVoeWxYZVc4THJGWlBVRE9hektnMW1LQTNXV0ZqT2JuRGdCRTQ2NnhYTnV4TVhMQnVML2FXbVM0ZDJHbkhON3NQNGNtdnR1SGYyMCtneWtIOVYvOTZpOU9DMnRQblhjR2t2MU1xVnIrQWcrOXZ1KzVENUN0L3hZN1p5ejNHYURpMkhjZVd6TWUrMlhOeDVydTlFSDdYTHdqUW45aVA4eCsrZ3hOdnJvVEQ2N3VxclN0eGNQWmpPUExLaDdCYVpiL2tyTU8rKzJmQzVFK0d1VjdTOU5aYmI3M2REV3dlUWJzaWEvTjBKSGd5TnhIY3JGWWJ6R1lMakVhWFNscGRYWTJ5cXdoUzlnQzJxcW9xVkZaV3VoTGMzWEZxTGhYVUpyT3IyV0d3Mk1FUVZ5RVB3Y2tScHl0bWpWZ05GUU5uZjdUNVlTNHFFU05iL2o5NzV4MGZSWjMvLytmTWx1eG0wM3MyZ1NRa2hCWWdHQ0RTSVFLQ29LQUNJdllHbk9XOHM1ZXZEVTg1ejNMcXozWXFsa05SRWJGZ3BCY0ZSS1FIQ00yUWhQUmVOOXRuZm4vc0p0a1VVaENVMDNrOXpBT3ptNW41ek9mem1mZTg2K3R0NEtIM3Z1RkF2V3NMZjVUK0hVdHpiTXdkTVlqZzJqeHVYdkh6cjl6QUN0ckFkSlF0MXo3YVZIYjBxMlJrWFJtV3l0cXpQc1RqTHoxTDhNVXo4U3dpeXZsaUpYN0RKeEUzWXhUWmo5OU01b2JjWDNHRktqSmZlSVhxekQxa3Z2cHhpN21vM3Z3MlAvemphNkxuWG9lMmFDT2I3bnUxdWNKS0hVek1FQzBIM3QrZzdLT3pCSjFPZDBObTV1SEJIbHJiNmFLa0xiUzJsdjYyeHFvRWwwbGFYbDVCY1hFeEpTVWxYUmRzaFlXdVppelYxVlV0VEZDcjFZTE4xaWpZSlB5OXRZSldGQkFGQk5GVnhpOEFZdUhKN051UCtNVnkvNmplakVtK2dMa0pBaXYyRndCV05od3U0ZFpKSXhrYUU4SDhTMGRnUDNhVWcyWmw4YzhXaXI1ZXd2NlhsdUtvTzhuaHhZdlp2L2g1cWlxa1JpbEYxcHZQcy8yT085bjc4aElhVEYxN3BjaDFoUnhhL0FqYjczMkVnb3g4VDZsSDlqc3ZzZjJPTzluOTBwS1dtaytIZ3ZjSXg5YWFpSnZjcDhYSGc1OTVnNFJMSnhJMWNSYVJLU0dZQ290L3hVd0VNL0tqNWFUZWZ3MnRLekN6UDF4SzdNS0g2VEZxR0lNV1BZTDl1LzlTNW1IVlJNMituT0wvdm9kRmVlT2VOZlR1M2Z0S1dnWVJOQjdtYUtQVzFsUkw2aGxJc05tc1dLMHRUZExxNmlyS3lzb29MQ3pxbW1ETHkzTVZ1TGVPZ3JwTVVGZGFoMGVUNCthQWdTdUNLMW9zNXJuSHk2dW5KMFNFNEd5bzUxU2RsY1NJRUk2WFZnRk9ISktNU3VXK25LaENKZGR6c3RLdXJQeFpnay8vWVlTTkdZS29DU0k0TFkyd3RMSG85YTc1UHZIMEFvN3VxU0grdGx2UjVHOWt3OTB2ZGtsYkxscnhHZW9oMDRpZEVNZFAxOHlqdk1JQk9NaTRldzYvWkRwSldEQWZIL01lTnY3MTMxMDZYOTNQUDJCUEhJN2ZhYklyaTVjdElqdTNGLzB1SDNZT1pzaEM5ZEU4L1BzblVuL3lHRGF2UkFJaXlxbkphbmFYaUJFcEJJbDdLYzZ5S1J2cUxFR3RWbCtjbjU4M21xYmN0bVpmVzJOREp6ZWRlSXRBZ2t1NDJkMzViVzJqcEtXbEplVGw1WGNzMkd3Mkc4WEZybHJRNnVwcXR3bmE0QkVGUFUxNmg5TXB5TElzM3ZIUVl5cU5Sdk1YczgyR3QxYkZwMnZXY3MyS245RnIxTlRhSFlBM0krS0RXUEZqQm1YMURhemR1bzljV2NCc2RTZ3JmNWJnMjNzUXhtRkppTG9BSWxKVE1hYW1vdk1HS0NONzVTNlNIbjJjaU9Sa0JpNTZGT2U2NVZUVWQzNU8vNmxYMDNmS0tLS20zMGI4TUNjNUd6S1FTM2R5YktPVG9ZdnVJaWd4a2ZpNzcwWGNzWUtxaHM3UFYzdnlKSWJvbUhhL2E5aS9nbTJ2N1NOdCtSTDhmTThGbGJvSm14bFVtbUsyVEJ4TFpub3VhajA0Nmp6TkJoOThZblRVWlJVckcrb3NJakl5Y25aS1Nvck9yYlcxQ1NRMG1xWHRwWCs0dExiR0tHbUQyeVN0cHJ5OG5PTGlJbXkyOWw5Q2FwY0pXdGlpSDZpci9yT3haS3BaVzJ0TXhIVTZuYTQyZHBJa0NJSWd2UEwwWS9PQlZMMVdTNFBKeWRYVEwrRVNwNXE5T3pmanAzSFZoTjQyWXdyV3RUdTVmV2tXQS92MFpYelFDYndWZG85ekQwYzFEZFgrZUllNTFTVHZVUFMrMVZncWdVNzYxQm84a2lIMXhraktLOHR4bE5aaXRSU3k2OVlibTlSOXI2UWtzQUtkVVAvTE9PQTBOT2tWTzdZUmNQRnNBa1BQRlZlOEFhMGVuUFlJSnY2MEQwMUlFRDhzQnJXdnZ1MmZTazVsMzV4RmlLSTRiTTJhMVpORFE4TytCZXp1SHdkdVduRmN5YnVDdXk5cGs1engxTnEwV2xjZ1FhZHpCUktxcWhwTjBrSmkyeW5mVTV2TjVpWTZJbGN0cUdlVDQ1YjVhZzZIUTNBTE5jSHVjQW0xakFQNy9WUXExWHlBUHFHQi9ISzBITkZyTUtIQThlSnlFbnU0T2hKcHZRTzQ1L0tMM1M2YVFpWnM4K1grVUlWbDh1enVJQUZCY3Jha0hGTUg0QjFRUTBPcERlSzBZQ3JEWEJlQUxxZ0xPbzZIcjh0Y1dJUitzQkYxbUFFdlF6eWpQdjRVUXpmZlMzNlJjWmczdEorSEZEVHhXcEpzb2UwYmtTWDU0QjJJenZmWEZGZnFDT2pmZzVyTTQrZ3VHQWFtREtwTHd4Z1E3OXZDWEcwb01CRVNGOW51R0p4YWZ3eUJ2c28rT3hQUFozRHc3RWNlZWZqN1o1OWRiQVBzc2l3NzNBd2dUcmZXMXFKMW45c3lsSnVqcERaM2xMVFJKSzJob3NJVlNBZ1BEMGV2Yi9tQ0Vwdm9pS29hMitjMWVEUTh0amJXZ3VKd05QcldITmhzRGdBQldSYjIxRGh1WGJiL1ZIK0EyTDU5NlZlYncvUGJUN0JsLzE0K3paS1psZXdxSGk0NmxjdEhlMDZ3NmVBeC9yNTBFNE11SEVxY0l0Zk9zbElTZzYvNkJKbnZmVUhldWcwMG1BQkNpYjFpR0llZStRZkZHZnM1K01SaVZKUG5FT3pUK2VscTFuN00wVFhiS2ZqMkhiTDJhT2c1c1Q5Q1dDcDl4dHI0OGY3bktkNmZRZEhtTmV4KzRaMHVwWmo0alJpSmtMa0hVenNlaU1wTkt6bStlbmU3eCsyNWRnemJYMTdWNVdrbyt2WWpqbnkrQWFlOW5Ld1BQaVI3K3lFQWVsMTNQVGx2UEVQdTl6czU4UGl6YUtaY1M2aEhFYjFjY1lCeTB5QWkrclRWR2cvY01ZWHZuMTJ1N0xFemhDQUlmZSs3Nzc1SnRLMUc4RXo5YUpHMDYzQTArdldiVFZLTHhWVkxXbGRYNTg1dEsyODNrS0NhTy9jcWo5eTFLbXByYTlwcGVtekZabk9GWXAwT1J4Tjd4eVB2ZlJhazl2WjUzU3BxZzRaSEI0SEtpN1IrVVJ3NGxrVkdwWk03THgzSE1IZWZRNmZOd3BiTWJQYVgxREl3YVRBUGpJbm45K0FOTlpsTU9KMFNmbjUrM1RxdXRMU000T0RnYnZVSVBaTmp6blI4cnQzampYSFNoWmlPSHFRaHZ3akR3QXZSZXdzRWo1bU1xdXd3ZWF1M0lNYU9aUGlqZjBIYmhYNFR3ZU1tWXp1d2xwTE1XZ1krL1UvQ1kvd0FrZkFwTTFDVkhpUXZmUU8xaGJVRWp4eExVRnhrNTVSSCtranNHVXVwOFI1RFdLK1dMQytTdFFGMVdDeEJjYTFxQWFWaUR2L3piWXgzUEVaWWJOZVlZYXArMmtSRHJaYXc0UU1SR2t5SWZqMEo3bTFFRjNjQklWRjJUcVd2UllnZXpmQkhGcURWTkkrNjZKUFhhT2cxbmNReDdmYzk5UnN3ak9ENFNFVktuYW5Pck5NWk5Sck4razJiTmx0eDE0ODJVb2tMZ3REWVdkNnprNXdnaWdLaXFITC9pTzRPVnlwM2x5czFXcTBXbmM2TG9LQ2dGdlJnd2pmZmZPM1J5NkJSdU5XNm1Ud2FrM1BOV0N5TlhHc093ZWwwaXJJc2l6YWI5VjZWU3ZYcy85TGtudTk4YkdjNnZ2OFYyTEkyc1BIcEg1bjh3ZU5kZXJIWk1yNWcxU00vTStQYjV6aW5IbGxIQlZ1dStBdURQdnlVb0VCUmtVTG5DTlhWMWY4S0RBeGFpWXV6elNRSVFnTXVENjFORUFTSElBaVNTcVdTR2puYmREb3ZXYWZUNCsydHgyQXc0T1BqaTUrZkgwRkJnWVNHaGhFVlpTUXVMbzcrL2ZzVEh4L2ZiSXA2Qmd6Y1pKR05HaHAydThPdEVqb0ZkM3BIVStuVW5qMjdmVlVxMWMzS1Vpbm9EclR4RTVuYVJhRUdvRTJhd2VWZkxlYWNoNW5Vd1l6L1pya2kxTTR4L1AzOXI3ei8vdnQ4RzgxUmQ0UlVSYXRTSzNkdUd3NkhLMUpxdHp1dzJld2VVVkpYYmx0aklLRzB0SlNHaHViUXZPZ3FjcTl2WlhxMnpGbHJqMnR0NE1DQk53SUt1WldDY3d0UmphaFdoTTBmeU5jVy8rQ0REMDV3QzdaMmZXMnRPZHZhNXJaWld3UVNYRVh5cmtCQzA3WnBXZVRlbUsvV05oTHFadTRRQU9HNjY2NVZxVlNxRzVSbFVxQkFRWGNSRkJRMG8xZXZYdHAydERheFVXdnpxRWhveXAxdERpUjRrbEkyRnNtNzBqOHNGb3RMc0xtME5WZVJlenRDelpPU3FFbGJlL2ZkZDY4REJpcExkUGJoSXRWVFVnb1UvS0cxdGdIYnRtMGQweFd0clgzTnJWRzROUmJKdDB6L0FCQmJwbmZZV3ZqV25FNm5PMit0bVJrWEVOVnE5WFhLOHB4THdlYW5USVNDUHpUQ3c4T251UVZhbzlhbXBoVVpaV00xUXFNTWF1bHJzNTAyL2NQaGNLQnVyQWR0MU5ZYTg5V2FLd3lhZkd1NEtiK25BcU9yYTJ1cHNZdEVCZnJRcmd2RUtZT3FkUUtBazZLcU9nemV2dmg1cVpUVlBRMksxM3hLVmJFVk1hUVhmYWFQNmRJeHR2d2psQlNLOUJqZXA4dlhzUmNmSVd2Tno4aEErTVFyQ0lvK1Y1cWloT1JvVzAwcXFOVm5wU3RXaXl0VjVaS3p0NHhlRjNXREJyd3VuMk5mYkVRQ0FsTXZKcUpmMStpbks3YXZSdFY3SEFGaDNsMitWTVhXZEVxenloRjA0Y1RQbmNMWlN1V1VHaW9vM0xJTnEwbkVlT21sNkhXLzNYNDFuZGhOclRXVXlLU1lMaDhqaXVLSTQ4ZVBKYnNweEJ1TDQrMXVyYzNwTmtlYk5EYW4wNG5EWnNGVVg0OVRxNFhRU0x5OHZGclZrVFpxYlNXSXJuclE1Z29ERDIydFRjQUFFTFJxMjlWMy9mc0RwcjMxTFgvLzZFdEd2N1NDSGFXTjlYWldudnZvQzBZKzlSOFNGaTNIczBUVllhcGcvaXNmc2VDenpWejY0bEkrUEZLbVNMRFRRT1ZsUUZOemhEMnZmTjdsWXhyMmZjdStEOVoyenlRUXRXZ01Cb28vZVpIQ3pLcHpkaituM25tWWxTbERXWm1TekNmR2FENGZNcFNWS1VQWitNUkh2K3E4K1I4dDVzaUdJeTFmblFXNytQbUYvM2J2UktJYWpjRkE1ZG9QeWY3eGVKY1B5MzdqTVlvT1ZYZnZVbDU2dEdJNSs1OTZuYk5YYXU5ZzkwMlg4TXVtUTVoTHk1SE9JVHZKd1lkdW9yaXc1UVVxTnkwajg4dGQzVDVYYkd6c1JFOXp0RldFVkdnZFNIQTZuVGhsR1d0MU9mV1ZkVTBWQ1dhenBVbHJjOVdSbGlFMlVoSjVDalYzaFlGbjBBQlpsb1hxNnFxQmdrbzdlOEdzbVd4L1lCNHI3NzZPQi9wN3NXakR3Y1pIa3NrakwyVFZnb3RvL2U1ZjlmMlAxUFVjekRjTEwyZmxOVU41K2F2dFZDajBNTzBpZE1LbDlKcWNlbnJ0cktLRTJsT0ZPTnVaUDJkREhYWDVwYlNoOFpSc21FN2xZREZabWo1U2g4VVRQM3NXZ1ZHK3AzMWdHdkpQVVY5U3hhK2hCZTE1MjNQTU9yQ2ZXUWRXNGVjZHlLaTErNWwxWUQ4VG43cTJlWGlTUzdNejVlZGdxYk4wcnFFNEhKaU9IYURtVkRtU3cwR2I5cmlTamJxY2ZPeTJMbXd5UXdTOVpzOGlOUEUwcmVVY05rejVwekJWdE0vY2FpMHR4RnpUME01YTFGQ2JrOTlpblFLSHB4RS80eUpPRitpVkxDWnFjM0t3TmxpNk9Mc1NraU9mc24waVNZc2VwUDlmYnNEZ29VQTZUUlhVbmNwdmQ2L0lBQTRMZFRrNVhab255ZUdnZXVjV1REVTIxNXkzdS9lSzJ6Szl1SzloYldoWmNxTFJhQzdidUhGRER3K05yY2tjYmZLMXVWc091SVFhZ3VqdERSb1ZEbWRqTGFrSHRWRmREYVU1MlJSazU2SDJUTzlvTHB0eTRuUktTRkt6eGdhSUJvUGhLaEJKOHVqZzNqUElIMHRKSS8yUW1pRzlvcUFtcDgwVTdzZ3FaTUpGWXdFSWp1bEZQOGRXZHBZNXVTUmNNVW03WTlMdHZHb01aZVpJdkgwbHFyTWJTSDMvRTZMNnVKcnUyZzZ2WnMyc3pXaW93cXdmeHVSUG5rZXZCZk94TFd5ZS95QXFZeUxXN09ORTNQNHZobDgvcnNNcnlYVzViSms5RDR0dkw3UnlKWmFvU1V4N3Biay9qKzNZSnJZdVdrN3lHMjhSN1A4cjcrcklsM3l5NEhNU2V0VlJWaVJocjNJd2V2MWFMSi9ldy9IU2tWejAyQ3pBd3BhUi9ZajlPSnNZelE3Vy9lMUZMQ2NPWWpjOFJmVjNBUmhHem1ITVBYUGM1bWdXVzY2Ymk2MnVudXBTUHlhdlgwSEFHVnJaOWhQcldIWE4wL2oyN29WVWZoSXBiam9YdmZFZ1dyZGd5bjcxWG5MVktpelptVVRlL1JLcDE0OEhKRTY5OHdpN2wveUVmM3dRdGZsMlJuNjRqUERZamdkUnZmbDlOai80THY3OUU3QVVaQkh6NEZJR1RJenI4Smk4OS83QjRXOTJVbHRUeEUvejVxSldCekRzL1hjSjlvV0M5eDdocHplMkVSQVhTSFd1alpHZmZVcGtuR3V4Q3BmY3o0R2RFbUwyTHB3YWI2eit5Y3o4NUorbmRRMlVyL3NQdTk5ZVExMjJtWXA3cnVhRVFVWFArVS9SZi9JQUFNejd2bWI5dGN1UktuNUI2bk1OVTkrK0Z4VlF2V001UDl6OVBQbytmVEVkKzRYRWY3emJkQXpBOE9HcFk0RlRicTNOQnJJTkJCV3k3SlJsV1pSQWxweE9XUkJFMUdxWDVpWkxNb0xrYkpIKzBWQnlncjBydmlReTJraUoxSUM2dFcrdDBWSG4wdGFhVGRCdnYvMVdKNHJpVlMxWDNjUjdPN09ZTStteVRyYUhsYkk2QnlQOFJGNzRiQTNKbzBjUjdnTmx0V1lJOTFIa1ZkY05HWWE4dXdhdHIrc0JLZnJnRWZhL3M1S29GMjV4elhLMWxxbHJ2OFNnczdIN3FsRmtmcjJmbE5tSjdQN3IzNGgrN0RNR1RleURWSGVNNzhiZVNzWGxXd251NERtcjM1NU9WZkFVcnZqNE1kZmJ1QlU5akxPdWxJcjloN0NkSlh0S1ByR0h3QmMya3pyY0NBNExUcUR3ZENaMDlBaW1yRmpCOFNmbVVoWDNkMUp2YktuZFNxVW1CcTc5bW1CL2tkMVhEU2YzK3l3Q3BzZWZtVnNnYWdTWC9yZ1ZqUnJBd3JZcFE4bmRQWi9ldzEwdkUrM2dTNW40MUR3Y2hWdjVhc0pqSk03YWdpRjdOVHYvYzR5TE4yL0N6MWVrL0l0bitPbjU5NW4rZXNldFFMS1h2a3Zjb3grUVBLTTNJT0hzZ2hiVjQrYkg2WEh6S1ZZbFhNM0lGU3NJYXN4a3Jzdmc1Myt1Wi9TMnJZU0g2Y2gvL1c1MlBmYytsNzNWL0hLcTJubVVTemF0SXlCWWg5Tmk2ZERmR1RKNUFWTW1MMkRyaERpaVh2MmNYcjFicGt5YkhVWXUvK1k1MUpZYzBnZk5wS3ppWGlKOEM5bDUrejlJV3JxUlhrbWgyUE8zOFBYTXA0aWJ1QnczVlNBK1BvWnA4K2JOVzdGczJUS3J5eHhGSXlEYlpSQUZ3ZldmNENLenhlbDB5azZuVTVBbFdSYWNUbmN0cWJzQmpDR0E2Tm16aUl3TXAyZlBDTlNOVVZDWEdlcjBTUEZvNlYrYk9ISGliS0M1ejd4azUvVXZWdU5JU0dWQi8rQ3VlblV3NkRSb1JFR1JVV2VJbXUwcnlmdzRIVk5GSFk3cUVxUyt6ZThhUThwb0REb0FMU0dqaDNIOHdDR1lBcVdIektpMmZzN2VIU0FqSVR2eXFjcXVKM2pRNlY4cStxUVV4SXpiMkhLM2xmRFVGSHBPbTRiQm96Sk1QM1F1Y3c3UFBYczNGbk1odllhN1RVRzE3bGZWRWF2aWt3ajJkejE0aHVoSTZxcXJ6L2hjZ21qaHhQT0x5ZDk1QUx0VndweFRTMEJsRGVBU2JPRWpScm1HYkJ4R2NQQkpLck1zbUhkdkEyL0lldmxaVnd2MHloUFVIUFRDNlhZZW5RNWhJMGJ5NHpOMzREaHlDY0dwWStrNTRZSXpIcmZsV0FibXFHR0VoYm1pQ0JGangxQzdOTDNGR0FJbXppVEFYY3V0MHYyNmFFTmd5aEJYZFlndUFrTklEWlphY0pidm9yekdpNkF2LzBQVmw0QmtScXpNcEtZSzlNMGlJL3I1NS8rVnVtelpzczJONXFqc01rY2RJRHRsR2NubGI1TmtTWEsyMHRnOG9xUmFNOFUvYmFHaXBwNENqUmZxUmhQVTZXeWQ0dEdja0F1SWFyVnFsc2Y3bWs5WHJXYXJHTWY3VS92VGVWNjRGNkcrYXNwcW5meGx4a1ZBQS8rcGgxQS92U0twT3JZOFc3b3FUcTVqeTZQTEdmZkZmd21MRGFicTZ4Zlo4cld0SXdYUGRSSk5FQkhUcHVMalhxZ2VVNmZqRysvZDRiWFUwYWxjdW0wOVJWdTNVdmpOVXRMZldjdk16VytoUFVlM0t1b05wOWxIVXRPL2NoZDVTUVZQQjFZM2loYmFlOTFtdi9vUSthVXBqRjIyQ0oyM210M1hEVU9XNU5PZndYMDlyNWpCUkUyZDZ2NThLajF2RG1neGxQYXVGWFhiODF5U3RwK2lyVDl4N0xIcktienVWVVl0U0R0bjIwdnJjL2FlUDBFOFRkR2JmelJSVTZjMmxjVDFtRGE3alZzZ0xDd3NEZGpXeXRmbW1iQXJ1MUkvWEpSR3Nvd2dPSjJ5UzJhNTNHaFZtWWRCTmpKZ1NoclJQWXlJemNtNHp2YlNPNUJsV2FpcXFrd1NCT0hpUm45Wit2cjFmRllYd2p0WHBqU3BsSjF0bVpHSlJqWWZ5d2FnTFBja3g5U1JwSVlxL3JYVHpsaHdDT3J5WEV3ZWNzdGVWSVFjMlpmZzJHREFRZDY2bG8xSFRIdTJVVzhCc0ZHK2JSZWhBd2VCYjEvQytwaHBxQXNnYkdnS1lVTlRDSWlMUVdOb1hqaHRTQWgxQlMwYnFEanE2c0Evbk9qcHN4ajIwcE9vODQ3aTZmdTFaVzFsKzEwUFUxbDM3dWJBS3lDQUJqZjlzN1A0QUpWRkxjbVIxSG9EbHNyeXMvZWdod1JoT3RXU2JycWhvSUNBSWNQUWVhdHhWaHlpYUdkTFBybVNIVnRkODFXNGk0cXEzZ1RINlFnWlBocHIxaUgwL1lZMHpibWZNYWhabUJtQzBEcUtNVlcxbE5TMnVqb004Y2trM0xpUTVQbVhVWDMweEJuZmk2N1BJSFFGdXlndGRRVWhpbi9ZaWwveTRGL05xS1AyMVdNcjcxb0VYUlUzakJCeXNScGltK2NoTGdwTnE3ZWpXcTFPMjdCaGZZOTJCSnVxMFdKc2xFZVNKQ0VMNExEWlduUzJzcGdhRVB6OWNUaXQxSmRubzI0VWFtMnJESnFDQm9LUGo4L2x6Y1owQ1lzM1pWR3I4eUx0V1Zlb1hSdmFpKzBMSndEdzVOc2ZrRjVzbzg3bVlNYWlKU1FOSHNhSE13WXhmY3dvdm50bkZaZTllWkthcWxyK2V2azBncFVTd05NTHRyQVJESjRad3VvTFI2QTJwbkR4dDYraEh6WVZJMit6ZXVaY3RHSWR1cUNRbG9JZ1NPS0hXWmVqcGdxTDcwUW16eGdFd05CWFgrYjcrZGVTOTFZQ2FuczU5U1lqazlZdmFTTFE3WFhMUFd5NitUNitmRjlIM045ZkpQbktvZFR2K0lpTi8vY0pnWDNqTUdkbkVuTDdRL2g3dkpTZDVTZkovdXdyWWg1YlROQTVTbjhMbVhnRnFuL09JWDNtVDZqOUl0R0Z0TlJ6akpkZno5RmJIK0tiMWEvZ04vNTZ4ajk2N2ErNlh2VGNCWnlZTjUrVkk5OGs0cHFIR0huSE5HS3V1WlgxQ3haUXQzRWdsaHJRSjdSa1hiRWZXTTJhMld1d1pHY1MrOWovSThBYkdEQ1YxSnUyczM3Q09Qejd4V0krbFkzZnBROHk5cDVMM1U5eVR3YmZkeEZiMDBhZzhvdGhUUG9LZ24zZ3lFTnp5RDJweHpkVVM5WHhVbExlL3R1WjM0enZJRklmdXBqdDB5ZmpIeDlNZGJhTmtaOHMrdFZya25EVFFyYmZQWk5mL0EzRTNQMFNBNmNuZGZDbU1KTDYya05zdldrS0orTDdJbGVWWWdsS1pmcEhpOW9JMkdIRGhxVUN1WjdDVFpabHUrQ0trRXF5SUxqTlVRbVZsdzdKVkU5VnRnbGJZRGphV0M5MDRVWnFNMzhpcS93a0pZSU9ZZkRnd2U3K0JtWXNGb3RndFZxeDIrMkN3K0VRM0NGWGxkUHAyQVAwUHh1MlZVbFZQWHFEQVQvdDc2T3RuZSswUlozRGdTay9IMVZnQkRwRFc3K0lzNkdPaGxvTFBoR2hyY3dkaVliQ2ZHU3ZRQXpCWFpORWtxMEJVM0U1bXNBd2RMNjYzMlc5Wkp1Sit0STZ2S01qK0wzMGUyZERIUTJsTlhqM2pFYlZ6c3ZZV2xhTXBQTkQ3OXZTdkpjc0preWxGWGlGUmFEVmRXMFAyR3JLc05aWThUWkdvem9MbENaT1V3ME5GU2E4bzQzdGp2MjNjYW5ZTU9VWEkvcUhvUGR2UDVsWmx1V2pvcWk2QTZnSDZuQlJHcGtCaTRCZ0YwVEJLUWlDcEZhclpZMUdJM3Q1ZWFIVDZXUzlYbyszdDdlTDBzaGJqNDlXVDFqUEhpNk5yZGtFYmRiWWNDZkltVXoxYVdkSHFMa2NIdUdCU3JuUXJ6UUdNRVRIbmw3OTkvYkYxOXUzM2JuM052YnMzbXBwdmZIdDJmTjN2VnRCYThBMzJ2Qzdqa0hsN1l0dkI2a2FYcUh0VnlxSU9nTytQYnMzZHExL0tGci9zemgyZ3orK0J2L2ZkOHVLV2d5ZDdDTkJFUG9lUEpqUmQrREFRZnZibUtQSVRtUWtRUkFFU1hKcGJZMkJCTTg2VW9ja0kyblYyR3dXeE1iR0xNMjVhODMrTlVEdzh2SzZUQkVtQ2hRb09OZUlqNDhmMGNvVWJjMzRRWE9abFlTbjdQSXNrTGRhYllnZXZqWEI3VnNUUEJ4Mm9pQUkwNVVwVjZCQXdibUdYcTlQbzduNm9OMFdmYTRmcVpINVEyaWhzVFYxdHJJMWFteVNSK0RBcGFrQmd0bmNNQldJVXFaY2dRSUZ2d0dNUjQ4ZUdVakw4cXBHeG8vRzFETkJranlMNDVzMXQyYjJqeWJCMW9aenplWGUwR3FuS25QOTI2SzB0SlQ4L0FKbEloVDhLUkVURXpQTVUyTnptNk9xVnVab0M2NDJONFY0QzYxTmRBY01tbFM3eGdQZFpxZ2kyQlFvVVBDYlFhZlRqVytscmJWbmpyYVFXYTBEQ1hhN0hkSFRERzNVMUFDaG9jRTBvWDB6MU1uT2pNTXNXcm1CZTVkdjR2MTl1UjcwS3pKWmVYbDh1bTB2cjI0OFNLM0hVUTVyQTlzUEhlZXRqVHRabmxtaXJPQnZpRVAzWGNHSkhjWG53VWdrZnI1NlBBV24vamh6YXl2TnBicXc0Z3lQcm1QYlpaZFMycVhEYlZSbEhNSitGaGh4YWpjdFljTVRTOC9xUE1nTkZaUWV5VzN6K2MvWGpDVXZwM3ZtYUViR2dUNGVXbHNMamEzeHB5VlhtOVFtUWlxMk1rUHhNRU1udHI4MzYvaHFieUY5WW1QRXpSS1VBQUFnQUVsRVFWUzR0SDhVbTdkczRQRWZHa2R1NXIzMWV6aFNYTUpiUDJTMkVHeWxlVG04c3plYi9iK2M1SXRqaW1EN0xXRXRLOEJ1dHAwSEl4R0pucmNRdjhBL2tPdGcxU3ZzV2JMK2pBVzlwU0FQUjFlNlRWUE9qcXR2cE5wOEZsNHZwa29heXM0dS81NlUrd01iL3ZwaW04OHRlVG5ZN2QwN1Y2OWV2Wkk5TmJiVG1LTjRtcVBOV3B0THNLbWJvNkdOVEI0dU0xUVV4ZllGbXhqQTRoc25OZjBhMkZER1gvYm53dGhZd0p0bmJwNEpOVGw4YzNCblN6R2MwSjhQRXZxemVzTmFQcWhUaE0yNVFQWE9kSTR2WDQ4ZERRRWpwOUgveXZGTlNicTI0cVBzZSt4MXpGWmZFdjkyTnlGR1g4QkMzcklQS2RwN0ZMdGRUZkNrV2ZTWm5vb0FWUCtjVG1XbG5vWTlHNmlwRkltNzZYYU1TZTRpZFVjZDJlKy9RK0grazNqRkQ2SC93cHZ3OXU0NCs5TjA2QWRPck5vT29oYnYwYTBFYjg1K01wZDhncW5haWlGK0NIMFgzdEE1QSt4cHhsQ3pkdzFGQmY3MHZYUUVBSldiVjFJbEpSSi9VUkpsNno2aVFXMmtjbk02Rm1jd0NmUHZJRFRXMy8yd2wzTDhuWGVveUNyQmtEU08vcmRjaVZiZHFJMlVjZUs5OXlnN1VvQlh6MFFTYnI2VkFQOXFNbDkrbjRvOUdkVFZsYkYvY1RaQ1pES0RiM1I1Ynh3VldSeDk5ME9xVDlVU01QWXkrbDJWNWs0d3RwSDMwVnVjMm5tU2dMVEpkRVVCcS94K0JhZCszSS9aVk1PSkZ4WlRvQldKbkxPUThIaC8xL21XdlV2ZWpxT29qUWtrenAvZlZOamVzUUpZemJHWG42VTh1NHJJV1RmVGEweS9KczB3Ly9QM3lQdmhFS3FJUkJJWGRuNiszQTllb3ZMZ0FlVGlYUFl0WG95Z0NxVDMzeFkya1NhWVQreGs5NUpQc1h0Rk0rQ2V1L0Z6bDdCWThqTTQ5czdIMUZVN0NKMTZOWWxUaGlJQTN0N2VJNERQV3B1aWplWW9zaVE1SlVuQTZVUWxxbVZKSXdsT3UwMDIxZFJna3lRc1h0NklqVkxQblpTTExDTlVWbGIwcDR2TldvNlVscE5vREZHa3l1OE11V1FuRytZL1Qrak1hK2x6M1JVSTVwb1dSSUFubDM5RjZDV3pDZEJscy9YQjE1cE1vWnBDTzFHenI2UDN2R2tVdlhJN0I5Y2NBNkJtVnpvNy92WTRtcFJweEU3b3dZNnJyNldpUmdJY1pOdzloMTh5blNRc21JK1BlUThiLy9ydlRoOVFUWGdzWVdtaktmbjhWVnFTYlRTdzg2YnJjZmE1bUg3emI4US9RTUxhNlJ2KzlHUHc2enVJd2xmdjQ4VHVRbXhaVy9uaDRmOFFNQ2pScGZPcy80d2REN3hJNE9TNUdCTWRiTG4yVHN3T2x4V3k4NW9abEptTUpONTJJeHo5akIrZVc5NWtvZncwN3pJS0NuMUp1RzArNGIyOHFNMnRCTFV2d2VQUzhFOE1ReHZkbDdDME5NS0hKcnB2S1o4dE0rZlFFSkJDbjl1dW92N2JaOW45d1hZQVNqNTlsbDJmSGlMdXBoc1I5cTJrckxEenluNWQzRURDMGxKUmE3MElISk5HV05wNGZJSmNuSWlGU3g1ajE2Y1p4TjUwTXdHYWs2eWZkMStYbUhucjFuMUtRK1NGeE04Y3lhRTdyeUwzbUl0RU0rdTV2N0IvVlRheE44MG5OS3lVemRjOTFPbjUvSWVPSVdSWUV2aEdFSjZXUnRpNEM5MDBUeTZ0TkdkRk9zWloxNkF0M2NKUHp5OXpPYlJLOTdOdTVpMklneWJSWjk1bEZMNThCNGMzWlFHdVppK3JWMzhYMlo2ZkRWa1daQVJCRUFRUWFIS2pPZTFXbktqUkJJZWlEZENoYmwzd2pxczJkSHhYSHFaVDJZZDU4N0NUZCs3c3AwaVczOXQ3MVZDSnc2RkhiNHdtSkQ2Q2tPU1czOGRkZHlmUkkvb2pSMTFOeHVVZllBTzBoRExncnpkUnNYOC81bW9iL29QaUtOOTFFS2E0K2lZRVhId05mYWFNQWtZUnQrSTljamNkSTJoVUpjYzJPcG00Nnk1OE5CQjA5NzFrcFY1TFZjTzlCSGRBL2E4TjdZa3gxTWd2YlRRN0s1WnFLNEZoWVFRTVNDSjRZSExuUXJ4MFp3ZGpNREx5dGFkWmM4dHQ1QmhxNmZ2aVJ3U0hOcGN6UmM1YlNPeVlZVEJtTUxrZkRpQi9ieFV4NnZYa2x2ZG41cjFYb3dMODc3MkRyMmU4anVYUk9ZZ1pxOGtwVHVES3IyNTNNWnNrTjlkR2hxZW1ZajhVUVprMkhtTnFNeWRjMWZybDFCaW5NZjZHaTVHQlFYZmR5S3BGWHpIOHhsSGtybGhKNzc5K2pmR0NPSXo5NytmRWgxZDJlci9lUGZ2ZzNkTVhqVVpIU0dvcW9ZWm1vWkc5NGl2NlB2UTl4Z3NpSVBrSmNwWmVRTUdKbDRqcjNYRUpsK2FDUzBtK0tnMEI2RGZ6TTNMVGZ5QW1makJIbHV3aWVkT1BoSWFva2Z2ZlQrN1NFUlJsT1lpSlAzMTlWMERTTUh4VitRaUd2QmJ6MElqZUMvK09jV2dnZ2ZaWnJIck9WVjllOFBuN2FNYmZTdjlwbzVHQWdRdXVZTWZ5ZEpMU1hKeDFLU2twL1lFOFQzTlVFSVNtWkYwRVFVQVVaVUhFcFpocHZORDVhbkE2ck5nRkw1ZGdhK3p1M3ZpalVxbkdkamJaRlVVNUxQajhBSXR1bUVtaVFhbG0vNzJoaXB2RXlIc3lPSERuSEg0b3RHSzg1dStNZUdCdVUzMmxWNkNyNUYzUWFSRWNEaVRBV1pISitoazM0VDF5S2dFUi9qUVUxeVA1TkZOU2UwZUVOdjIvUGpTTTZzb1NIS1hsV0MyRjdMcjF4aVlhSHEra0pMQUMzbWN5OGtDR3Zmb00rMTk5bUMvK25rZkFpTXNZOGNxVCtIYXdweHlsUlIyT1FkZG5QREdKaXpoZU1KanhvMW8yR05HSE5kSi9hL0UyK3ROUVhrMkRzeGlwTW9OdE45ellQS29COFVpQXRiQVlUVXg4dCtpYTZvdnpjUnpkdzVZYm12c25CUGNlN2pwZmFSMUJZV0Z1VlN3Q1E4Q3ZLUWcxWXlrMW8ydTBtTVJBREdGZ3E2d0RPdVpJMUlWRk5ia3BkTVl3R3JJcW9hWUlzOW5Nb1h0djVXalRtK0FDVk5qYzh1WE0vS3JxUUpkVFZhVlJJVnV0cnBFWEZXRDY4UWliYjlqY3JQa05hUzV5Q2dnSVNBWTJlR2hycmg4QkFWa1dKS2RUa0oyU0lJb3FKRW1TSGVaYW9hYlVLaHQ4ZkJGMHRyWWEyNzMzM3FzU0JLRkQzdWk2aWdKdStXZ2JkODZkd2JnSWIwV3FuQmRRMC9PV0IrbDV5NFBZU2pOWU4yNDJSZGZPSmRyWWdlOW00d29jUTI1ZzdMOXVCK0Q0RTd2d0RGZzJGRGMzM0RHWGxlSjFZVGpxTUExZWhuaEdmZndwQnZYWkdYbmdtRmxNR0RNTDJWTEZqbm1UT2Y3ZEhGSm1uNTQxUWgwVzJlRVl5cjk1a2R6cUljVDMrb1dmWDkvQXFEdWEzY1htNGtJZ0JiRFJVRmhEWkVnQTN1b0lWSkdwVFBqc3RUYUY5alpqQlBiY25kZ2ttdWpBUFNFSUFuS3I3aWsrRWRGNHBZUXk4YjJIMndxVWNIL01wYVZBSEZpS01WVTd1aXdnQkZGcTFkdEJqeTVNajZXd0hIcEhnRlNGcVJTTVhhQmJzWlFXSUxzMUdVdGhLZDRSUWVBZmp0N2d6NUMzbGhFZWVBYktTamU2eU9nampmaGZOSk9KVDdmUHlLTFJhRVlNSGp4SWMrQkFScXRFWFVGMDZXdUNnQ3podE51Uk5HcnNaZ3NhbjJCMFlmN292SFdvVzVtaFBQbmtFNk9CMDFmTjJ1dTRjMGs2dXVnK1ZCWmtzN1FBVlBvQTVpVzdpbHkzSHpqRXlZcHlyRTR6WDI3UElDRThrcWtKb1VnTjFTdzdjSXJEcDZvcHRVa3MzUUdwQS9xUjZLZFJaTkpaZ0Mxck8wYzJGUkNaT2dCSC9rNnMyaGg4QWpveGNhSjYwTEFubllLZlIwUHhMbzU5dXcvOTlFdWFneEZyUCtib21rSDRPZzZSdmMvQStGZjZJUGhMOUJscjQ4ZjduMmZnRFJjalZ4VlNzQ2VQSWZmZDFpSDdSdFgrN1pocXJKaE5UaXAzYmtGOXlvdVExQkhvZEtVYy9OY0tnc2FOUkVzbDlhVjJnbVBDT3h5M0VKWjYyakU0czdhejdSOXJHZlhOTjRUNGxyRit5aHhPcFBhbjkxQ1hoQy82NUMxeVVpTVFzbGRUWXIrUVlSY0VvaFduMHRQM1JiWS9zNFErbDZiaUtEeEdTYmJFQlgrWmpYYlFWR0lqL3MzMi8zdUQvblBIWXN2ZGd4dzVpWjd1OC9uSDk2WHFnNjg0T1RRSWJXZ00wY1A3RVRocERqNHZYTTdQYi9ZbWJrd2k1cXhEVkp2Q0dEUnZJakZ6cm1UYnE0c0pDYm1kcXEvZW9MNnJjbzBRQW1JY25IaHpLZGJrU0FKU1J1TWJyQ051MWt4K2V2RkpBbndYVXIvcEEyb2lwaEhWdTNQOTByNDNuWDJmWFl3eG9vWWozeHhseUtmalFlMUx2NXNHc3Z1dWgwbis2eldvN2VVVWJkcFB3bVAzMEJtQnZ5bzZIbjNCTXh6NmZCWCtnVUdFangvVkZIeHBEMUd6YitUQUpYOGhvMzhJeGdGRzZvN3V4T3FUVE45TGhqVXBjTys5OTM2dmxKU1VRelEzVTFZSklDSUlJckxzUkVaQUZHUlpscEZGQWJ1NUZsdURCcm02RkpWYXJSYmNpYmtDSUQ3MTFKTlhpNko0ZWgrYlpLZktwaUxjb01GaWQyQ3hPN0NLV29aSEJ3RndMUGNVZVZZMVEyTkR3ZUZBcmZjbEtjd1gyVnJQRDlsbCtQZ0gwaS9JRzR2ZFFWUjRCQkg2MzVhTXhtUXk0WFJLM1c1S1hGcGFSbkJ3TUNxVjZwd2VjNmJqUTNCU3RXczdSWnMyVTFzcU1IRFIwNFFhbTdlamI3OFVESUh1NkpZbWdMQmgvZEgxSEV4Z1VBMDVYNjdCakpHazIyWmo2SkZBWUZ3NE5idlNjY1JjaEw1c0Q2WEhUUXg4K3ArRTkvQUZSTUtuekVCVmVwQzg5QTNVRnRZU1BISXNRWEdSSFhMbWw2MWJTZFh4Zkh5VFVoRnJDekVYbE9CelFTbzZMekJuSGFCbzB5YktEdWNRZmN1akpJNU42RlI3T2QwWXlyZHZKblQyWHpEMmpVRFFCaEE1b2k4Vmh3c0pHUmhQeGZwUDBJMmRpK1BnSnFyS2ZFaDU3Z244QTNRZ2VCRjEyVXhzUjdlVHYrNEhURlYyd3NhT3d6OHFCQVF2b2krYmdUMTdKL2xyZjhEcUNNQTRZUVE2YjlkVHE0MGRURWlVUVBYaDQxak1Xc0lIOXdhTkh6MW5US0x1NTgwVWJOeUsxYW9sWXV4NGZNTjhNUXdZZ2ErWVQrNDNtOUdObVUxTVNpK0NoZzdGcTFOWkpCSStNUTFiMWlIcTgvTFJ4U1ZqQ05MaGU4RTRmT1FDVHExYWo4MFF6L0JuSDhiZzNia3FiUmllaGxmQnorVC9uRVhDL2M4U2srd1MxRUdqTDhGSEtDSXYvVHVxc29yeHUyQTBZZjFpT2ljaTlnb25hbXcvYWpJT1lTNnN4bjk0Q28zTVpBSEpJOUM3RFR2Qk41eXdRUW1JaGtoaUx4bEJ4WlkxRkc3N0NZY1lUT1RZMFhnSE5GdUFlcjArNjdubm5qdUJxOStvSFhBSTRBQ2NnQ1FJb2l5cVJGa1FCTlJlT2xTU0U2bkJndG9RaUtEVDZVUlA3aldIdy82TklBaVQvcWlhemZuT3gzYW00enZieUgzOWRySk5reGovd09WL21MVS9jditsbUZLZVpPamNGRVhGL3grQXcrSFlvdEZvbjZXWm82MWVFQVFUWUJVRXdTWUl6Unh0V3EyTG84M0x5OFhSSnJvVGNwRmxXWmc5ZTVaS0VJUVJ5cFFxOEFxTHd5Y2k2QTkxVDdxWVJMeERGSi93LzR6WFdLMGVHaE1UMHh3NGFObE1XV3gwbjdtU2RSdC9YS2xyYXM4MGozZmZmWGNZb1BURFUwREU3UHVKK0lQZFU5eWRMeW9MKzc4Rm4yWExQdTQ1YXRUb1l6VDNRQkRkYVIrTnBWV0NMTXV5TERmbjQwcVMxS3l4QWVoMHVxSEtYQ3BRb09COFFlL2V2WHU1aFpwbjJrZWpZS09seHVicTFTSkpVc3ZDVXBWS3BUZ2Z6aUxDd2tLN0ZUZ0FNQmdNK1BuNUtwT25RQUhnNysvZnA1VVpLbnI4Q0swME55VEpSV21rOXFBcEVnUkJ1RUNaeXJNcDJNSzZmWXpCWUZBbVRvRUNOelFhVFJKdGZXeU54ZkJOVEIrZVJmR2VHaHNuVGh3UEF4Szdlc0hxMmxweUsrcHhuQzRuejltMnFhelZiQ2EzckJxelExWldUSUVDQloxQ0VJU0VGMTU0M3FlbFlKTmJtNk5DY3o2dVIvQUFFSXhHWTVlSzNwSHF1ZXVWRmV5MWF3bjNjbEpvMS9QdjY2Y3hJa3dQV0hudW8yLzVPcXVjVWltQUxVOWRSYlQ3c1BkWHJ1U056RHA2QkhpUlYyVmh3UldYY091QU1HWGxGQ2hRMENFbVRacGtCQ3BvSXB4RUZBUUVEODBOYVBhMXliS0V1dEZHMVdpMFhSTnNvb1lGczJhUzFNT1Yxcjd5dTFVczJuQ1ExZk9HQXlvbWo3eVFXeWVhbWZqbW5oYUhqVWdkeFRVenc5R0trSDkwRDVOWGJPUHlBVmQwVXRHbVFJR0NQenVpb3FKNkFwbHVRZGFpY3hWdG9xTXU0U2E2SloyZ1Vva0R1bllacnlhaEJ0QXp5QjlMRTgrTW1pRzlvZ2pXdDgxODdoc1YzbFJyRnhia2graXdZNVdVUlZPZ1FFSEg4UEh4aWZNUWFxMWI4alhsc3JrN1dDRkprdENVNUNZSXdvQnVYOUZ1NHIyZFdjeEo3ZHVOZzJRKzJYcVFZY09UTUNxa0lBb1VLT2dFR28wbW9aVlFhK0ZqYTUyb0s4dHlVd21ZQUhTUFZFMnk4L29YcTNFa3BMS2dmOWNOeWgwL2IrWGpjajllbURSQVdURUZDaFIwQ2xFVSszaG9hVzZoSm51YW85QWlnT0FTYkVKcGFVa2k0TlgxU3puNWROVnF0b3B4dkRLMVAxMVZ2QTVtN09LeG4ycDU1N28wZ2hWU0R3VUtGSFFOWGl0WGZoSGlJZHhFV2FZRmg2Um5BRUdXWGVrZStQajRKSFQ5R2pMcDY5ZnpXVjBJNzF5WmdyNkxVdTNFOFFQOGZWTUJiOXcwaFJodnhRWlZvRUJCMTlHM2I5OVFUcCtrNnlIVVhPYW9HaERVYW5WOGw2OWdMbUh4cGl4cWRWNmtQZXVpK2RXRzltTDd3Z2tBUFBuMkI2UVgyNml6T1ppeGFBbEpnNGZ4NFl4Qi9HZjFEZ29yUmE1NStVUDNpZlM4ZDk4OEJ1cVZSVk9nUUVISENBa0pEVzlyanJiVTJqek1VVmtRQkVIdmNOaGZGa1Z4L3A5aGduNUwyaUlGQ2hTY0haak41bVhlM29hbHVPaUw2b0E2TjRXUkJiQUxndUFRUlZGU3E5V3lScU9SUlFCQkVHS1ZxVk9nUU1INUNvMUdFK25XeXNUVG1LS2VhUit1THdSQmlGR21Ub0VDQmVjclZDcFY5R21FbXVBaDNBQVprSnUrVkFTYkFnVUt6bHNJZ3RDamxjWW15SEtMbEE5MzlRSElNb2duVGh3UEIzVEsxQ2xRb09BOGh1N2YvMzdKcDNPTnpXV09pc0hCd1pIS25DbFFvT0I4eDhDQkEvMDhCRm1iZEk5R29TYkxNcUtYbDFmNG1WemtUR2lMek9ZR2NzdXFNZG4vUExSRnN1UkFrcFNpV0FVS2ZpMGlJaUw4VHFPdHRmNUJyVktwdWlmWXpwQzI2S092VnZMbVVSUGh2bG9LSzAzY09HTXFDd2Y5d1pYRndrMHNUNzRlVlk4SVpKc0ZyN2dVaHIvNEVoRzlPeTlCTSszK21nUGJIWXk4KzBwbFJ5dFFBUGo3KzdmVzJFNW5pZ3FpS0lxaDNUcTdtN1pvK3dQeldIbjNkVHpRMzR0Rkd3NjZ2M1RSRnExYWNCR3R5YTJ2bkRxZDdROWR4OG83cmlMOTJxRzgrczFQVlB3WlZzTXJrVWw3ZGpQNzRINzZEbkd3L2YvK1g0dXZIVFZsMU9ZWEk3WFE4aVRzeGRtVUh2d0Z5ZEU5alU4R2NGaW95OG5CYnBQYzUzTjlaNnNxbzc2MHBzMHg5cG95YWsvbDQ3QXBtcVdDOHhmZTN0NStweEZxVGRUZ2phVlZhbEVVdTBtSjVrVlNqK2F5MHA1Qi9saEtXdElXVVpQVDVpaTlSMGRZQ1ZDcnhBNGI3UDd4b0Nac2VBcVd6VWR4QWlvc0hIdjZMZzV2eU1NL1ZFTnRiUkFUUGx0Q1FHQWRPK2ZmUnNXSkhCcktKTmJOM1FVQlNVeDQ5MG04S0NTOTcrVU0zN09UVUFOVWZybVliZXNOWFBiR1gxMEs0cEw3T2JCVFFzemVoVlBqamRVL21abWYvSk85TjZWU0lReEJObFhUY0RTRGlMKy94WWlieHdLUS9jSkM5bjJUUzJCc0VMVy9sSFBocXJXRU4rMElDL3YvdmdEMVJYZVJORjNwODZQZzk0VldxKzNVeCtiVzJGQUxnbkRtelNNYmFZc21YZGFsUC85cHp5NWUzWlhOeVFvci81aDNLVUYvaHRXUTZpamV0SWxxU3cwblgvdUN1R3VlUWdWVWIzaVBqQjBhTHR1NEJpODE1THc4bjMxdnJXTEN3NWR6NGJzcnFQbnVWVFovWldYSzIvZDM2M0pWTzQ5eXlhWjFCQVRyY0Zvc1RhdXU2VGVWQ1EvT3dMSjdHVi9ldTR6aE40OUZSU2xIbC96SWhWc3lNSVlERGh2T0ZtVzhFaldIOXVFMXNGcDVxaFQ4L3FxQld1MUh4NzQxb1ZtTmdNQXplMkM3VDFzMHNHOC9uakxHc0czdkhsN2R1SitMYmgzUEg3NTFpVlJMOGFwdkVZcVBVYU1meXVRYkpnSlF0bjA3R2tReUYvOERDYkRuVmxCbFBRVDh1czdyQVJObkVoRHN5dDVSNlpxemVNS0dEQVpBRngyTldGMk5IVkFSUk1TSUlIYmZkZ005SjQwbEl1MWlJZ1pFZXlyL2pGdWZvVHhSQ3M0THFGU3Fka3hSR1JDRTFnNFpFZkRyL2lYT2pMYklZUENoZDJRWU4wMGRqVi8rTVg2cytCTkVSOVZSSlAvN0pjWitzb3Bla2NmWTlWcDYwK1Fia2xLSm1qcVZIbE9uMG12aEk0eDkvSmF1U01ybTVXc25KSzMxYVo5VlFGQzdWMGxzYVI0UGVYY2RvLzd2RnJUMkFyWmZPWmtUZTh1VUowakJlUWxSRkgxbzQxdHJXVkxsL2d4UkVJUnVDcll6b1MyU0tLb3hOZjFXV1ZwTW5rTkxvTzdQNUdVVDZYZi9BNVFzZVo3S0dvblFVU09welR5QmYzSUtZVU5UQ0JzNkdFTlFzLzZxOWpWZ0w2K2twZWp5eGN1bmxvYkNCcGZXdDIvUHJ4eVREWnRKSW5qNFdQcmY4emdKWThPb3pTcHA4ZjNoSis3bTJBWkZhMVB3KzBNUUJKOU9UTkFtWGpZMWROTWFQQ1Bhb3I2OHN2UXp0cHQxaE9wRmNpdE16SmwrRVVQL1pDMDBOYkZwOUIzL0xBZi9rODY0QjI0bGFjZmRwSStiVEVDdmNPcHpmeUhxanBkSXVXcUVTN3RObVVva04vTE51SWxvSWxLNDZMUG4wT0ZMNytzbnNYUFd4UnhMQ0VkckVNSG4xNHlvbEMwWFg0N1RtSWlXU21ycjQwbWIzTi9qZXp2RjMzNk9ObXdLZlNZT1VwNHNCYiszWURQUXN1aTlUYW9IelJKT0tnQ012OFhBVEEwbUtpd09nbjE5TVdoK0g3TEo4NDIyeUdtcW9hR3FEbjJZRWJXMmEzTmlMU3RFMGdXZzkvVStDeU9RTUJjWDQwQ0RUMFRvbnl4U3JlQi9ERVdDSUM0RVRMaW9pMnFCZWtFUXpJQlZFQVM3SUFoT2xVb2xxWUhmak9yUjRHM0E0SzJzamlkVUJuOThEZjdkT3NZcjlHeStoMFQwRVVabElSVDhMMERYZ1JucUFWZndRR0ZPVktCQXdmOENXc3VxZGcwTVdVWVJiQW9VS1BpZkVteHRBZ2J0Q2JoRy9uQUZDaFFvT04raDZrQmpheUhnR3NzU0ZKd0RIRHAwR0p2TnBreUVBZ1ZuQjJKSFdscDdmNmhBZ1FJRi93c1FPdmtkUUJDQmJsSTZPTm1aY1poRkt6ZHc3L0pOdkw4dmwyYWRSQ1lyTDQ5UHQrM2wxWTBIcVczdmNJZUo5emYreEpiOEdtV0pPb0t0bU14L1BVZmUvdHpmNWZLL3ZIUXY2WmRNWXZub0cyZzRoOWN4WjZTVFB2MVNWZzRmd3RIdjgzL1hLYS9QT29TcFJ0R3d6Mk4wV1ZhSmdMTjdwNjdqcTcyRjlJbU40ZEwrVVd6ZXNvSEhmOGhwM0thOHQzNFBSNHBMZU91SHpIWUYyK290MjNqanh3eTJGTlFxeTlUUlE3YmphdzU5c0pUOS8vbnlkN2wrd2owdk11MlQ1eEdyS2ptWGhXLzZRZE9ZOXUwcWVpVjU0N0QrdnJSSko1NVpRUGJPWW1Yem5iOXdua1piYTZPMXFRRWJvT202bFJ2QTRoc25OZjBhMkZER1gvYm53dGhZd0p0bmJwNEpOVGw4YzNCbm0wTnJpN05aV3VqRDdEanZjNm9GL0JHUXQzb052ZTU5aVB5WFA2Ylc5amY4dWhDN3J0Nlp6dkhsNjdHaklXRGtOUHBmT2I1cHhVMUh0bk5zMlRlWWF5WDhMN3lZZmxkUFJJV0Z2R1VmVXJUM0tIYTdtdUJKcytnelBiWFRKTjJLN2F2SVhmMGpEVlVtZkFlTm9lOU5zMmxrcGFyYnU0N1NtaUM4U240aWQrdFJmTVpjd2VDNWFXZjhnaTc1YmluWmEzZUJYeFR4dHl3a05OYkYyU0EzbEhMczdYY29QMUdFbHpHR1hqY3NKRGpheFFKb09yeVZJeCt1eEdvVjhSazBsdjYzek9od2cxdXpkbkZrK1FaS2pwWWpybmdUeHg0Ly9FWmVTcTl4U1Uzbk83YjBLOHhXTFZGemJ5UTJ0UThBaFYrOGcyd2NST2wzS3pGYmZVbjgyOTJFR0YxanNPYnNKM1BKSjVpcXJSamloOUIzNFEzb2RSM2ZFNWc0OGZwU2dxZGNTTTZTcFZnY3Z2VDUyLzBFR3czS0ErRzJZN3Fqc2YwcTNmdElhVG1KeHBBdTdGRWJ6MzM3TXd1bkRzTkxTVy92Wks2cXlGK1hUZVRVT1VRbWxwRGZCUzFDTHRuSmh2blBFenJ6V3ZwY2R3V0N1YVpKMDdJY1djT2FlUStnRzNveGZXNmFnMURXNkQ2b282YlFUdFRzNitnOWJ4cEZyOXpPd1RYSE9yMVdYVll1Z1duVDZiZmdlcVRNei9qaG1ZK2F2OXUzbnIzMy9ZMVQyVjdFekpxSjJsRjN4aHBmOVliWCtPSFpkS0xtM2t4a25KTXRWOTVFcmZ1TmVQeloyOGt2REtUdjdRdUpITklEUzZXN0Z0bVd6L2Z6N3NJN2JRNTliNW1MSGhPT1RxNmpEb29pTEMwTjd4QURQb011SkN3dERmKzQ4T2E1dS81UmZOSm1rbkRGT0k3ZWV6M1pCNnNBS1BybVhYWSs5eUdobDh3bVFKZk4xZ2RmYzUreGdaMDNYWSt6ejhYMG0zOGovZ0VTVm52bjl3UW1zbDU3a1IvLzd6WDhSMTVNOUtnRUxPVjF5dk53ZXNFbXQvcTNoY1ptNWd5cGkwNWxIK2JOdzA3ZXViTmZwMy83ODg0ZFZQZElabXlvbG4zS0FuVUlhOFpHS254U0NUZHFrZExHY0dUdE92cVB1YjVqV2RoUWljT2hSMitNSmlRK2dwRGs1dTl5bHI1TjZIV1AwbitHUzNNS1NSN20vaWFVQVgrOWlZcjkrekZYMi9BZkZFZjVyb013cFUrSDE0cTkvblpxait5bnBxQWMvNlQrSEZ1eEc3aTIrVzJaa01hSWgyOURBS0oveFR6a0xsOUIzTzB2MFdQRUJUQmlFSVVyQjVIM1V6NEQwcUt4VmxhaWlRckJMNzR2SVFPU1BMWitOVmFUQ2wxWUJJR0Q0Z2dlTkt6VDY2Z0NqUmhUalpTRTZORWtEc0dZMnJONTd0Ny9EMkUzUEVTdnNjT1FnYjZ6aDVHZHZvbTRnUzdLOXJqcjdpUjZSSC9rcUt2SnVQd0RiSUFXSzVacUs0RmhZUVFNU0NKNFlIS1g3c24xaUpycGMrOXp4QThOVmg2RXRyQjBSMk03STZ1d29paUhCWjhmWU5FTlUwazBkQkpjdFZYd2o0M1pEQTNYc1A3d1NVN1cyTWtyTE9aUWhVbFpxblpRdUc0dEdyMkZvNisvUVVWZVBXVnIxMkx0N09HTW04VEllOFp6NE00NUxCK2N5clovZmRya2tEQVhGT0FiRjlmV1lWR1J5ZHEwTkRKWHJLZnEwR0VhaXV1UkhKM3RIUk83cjcrWUg1LzlMNVg3RDFPWFhZUmtzN1Y0WmZvbUpwNlZtbE5MWlNYZUlXRk43MkI5V0NDVzBuSUEranp3QWw1NVgvUHRpS0Y4ZmNtMUZKNXdFODM3SkRIeXBkczQrZVFDdmhpUXpLWUhYc2JxT1BNeG1Fb0tLZnZ5VGJiY2NDUGYzM0Fqdi94WWprOXdzMm5vRmVoaUlSQjBXZ1NIdyszZERtVFlxODlRL3M3RGZERXdtWFczUGs2ZFNlcjBubHdMR1lKdnZDTFUyclZLWk5uY2puYldua0VncTNFVmxIWUxkUlVGM1BMUk51NmNPNE54RVYwby9wUlZqQjBZUzI3dUtYS0I3SG83OXRKU1RsVEVraFNzK0E5YXY1VHkxMjhsZk1LOXFBeGFWSDFIRXBEK1R3b09tdWcxc0tPNVV0UHpsZ2ZwZWN1RDJFb3pXRGR1TmtYWHppWGFDUG9lVVpSa1p3TXROZXZLalN0d0RMbUJzZis2M1dYZVBiR0xVeTJrcFJyUjRXaXhjK1Q4SFp3NEhNR1ZlMTVHQzlSdWVJM0RPekpkZEgrTmI4c3pTQ0lTMUNxa1Judk5EVjFRRUEzbHBVQlB3SUc1dEFxL01KZmJ3eXYyQWk1ODYyUEFRZGJpQmV4L2F3WEdGeGNBRUg3WlFzSXZXNGl6SnA4dDB5YVFzL2NHK2d6dm9sSFNxcitFSWR4STVPaDdHSEhibUc3ZFQrQ1lXVXdZTXd2WlVzV09lWk01L3QwY1VtWW5kWGhQZERKL3RvcGliQTR2Zk1JRC82eUN6ZVFoekRyMGNLaGxXYTRWaEc2OFgrMTEzTGtrSFYxMEh5b0xzbGxhQUNwOUFQT1NYZXI3OWdPSE9GbFJqdFZwNXN2dEdTU0VSekkxSVpUN1pveHZPc1VySCtkVGxUQ0l5eE5ERlRuV1dvdksvNUhDM0o1TXZlKzJwb0NCZlBBcjhqZCtUNitCbDV4ZUtjN2F6cEZOQlVTbURzQ1J2eE9yTmdhZkFMZnBlTTE4RHM5N2lzeDRIV0Z4dnBSK24wSGNYYmZnSGRXRGhqM3BGUHc4R29wM2NlemJmZWluZTF6RHB4ZWhzVVZrdlBBaEVYMGlNVTZkakM0d0NtL3pRYkxXN1NEWVlPTHdxeDhEUTM3MWZZZW1qbURYZjEvQklFM0NmOUNGaE1TRjBuUE9MRFk4K1MvQzR4NUN5bHBOZmxFaUYxL29NdG15UDNnVm9lY3dmRU0xVkp6SXd5ZjVLcmNwY1lnRHkvWVFQaVlGb1NhTEJwTXZ2bDEwdnZ2MVR1RFk4bmZ4RmNmaUhUZUkwTjRSeE42d2dNTTNQTWJSeUNjSjZlbEg5ZDRmRUh2UG9OZW91QTdPVk1yQmY2MGdhTnhJdEZSU1gyb25PTWJscyt2b25qckRMMDllVDJicFNHWjk5dVNmVmJEVmQ2Q3R0UkIycWllZWVPSktRUkFTdSs3WXRsTmxVeEZ1MEdDeE83RFlIVmhGTGNPalhSME1qdVdlSXMrcVptaHNLRGdjcVBXK0pJWDV0amxOZEhnNHNYNi9mYmNPc2l3QUFDQUFTVVJCVkFONms4bUUweW5oNTljOWZzM1MwaktDZzROUnFWVG45QmhyUVNIcXZzUG9rUnpmOUpsM2xCR0hYVU5vLzlnT1ZCNG5WYnUyVTdScE03V2xBZ01YUFUybzBXVW1xVU1UaUJrM2dKSzE2UlQvZkFoOTcxVENCOGJpMVhNd2dVRTE1SHk1QmpOR2ttNmJqYUZIQW9GeGpSMFpOUmd2dmdqenNRd3NKU1lDaHFhZzlRN0ZtQnBMd2NvdnFjcXRwOTlkdCtNZEhrVjRjclA1NlJVWjczR09yc0UzZVF3K1lpVzFXYm1vSXhQeGp3eEEzMnNZb1VZYnA3NUt4MVFmeEpCL0xpSW8xRVZHNDZqTXBXalRaa3ArM0ljaGRTN0p0MTZDU2dSRWdkcU1IUlJ0MlVUbEwxVWtQdmcwMGYzQ3VxWmxEUnVQMmx4TTNTODU0QmRGWUd3WTZyQUVZc2IwcG5oTk9zVS9IVUR3amNVNGJqZzZneXZPNnRzdkJVT2dleDlyQWdnYjVtS1VObWNkb0dqVEpzb081eEI5eTZNa2prMEE2UENlWE5BU05Hd29Xblg3WXpUMEhrem9nTmcvNTB2ZjZUejY5TlAvK0JsWEVNSGErSzhnQ0hiQUtRaUNKQWlDTEFpQ0xEaWRqbzlFVWJ6bXp6STV2eVVmMjduaWNGT2c0RS9wcExGWVZ1cjEzditsTFI5YkF5MzQyRVJKbEdXNVVwa3lCUW9Vbk85d09CeTFIaWFuZkhwZm00QW95M0tGTW1VS0ZDZzQzMkcxV2h2TGxWb0x0RFlDVG5RNm5lWEtsQ2xRb09COFIwTkRReDB0azNKUEd4MFY3WFo3aVRKbDV3WmhZYUhkQ2h3b1VLRGc5S2l1cmo2ZEtkb2s3Qm96UEVTTHhWS3FUTm01RW14aGltQlRvT0Fzb2Fpb3FLNjFRQk9FTm1WVnNpQ0FXRlJVWEhSRzByTzJsdHlLZWh5bkkyUnd0dElRSlJtSFUycjZrYVEvejRMSTdueDB1UjNXbGRNVnV6VjlMaWtiV29FQ2dJeU1nL1h1UjBOcUZtNUNPNCtQZ0hydzRNR2xrdVMwNE9vQTB6bWtldTU2WlFWNzdWckN2WndVMnZYOCsvcHBqQWpUQTFhZSsraGJ2czRxcDFRS1lNdFRWelhWQ242MWJqV1A3Q2pBejUyZ00vckNVYnh3VWVJZmZ6VnE5dkRGcEg4ejQrY25TQjl3RDVNT3IycHE1SnEvNUI1TzFreWduL0VBQjQ0a01QR3B1VTJIYlp1UVJPeUhoeWk4SjVuUXAzZlRxNTlhMmRrSy9zeXczSC8vL1EwZG1LSXQvRzJOVDhzcG9HdFNSdFN3WU5aTWtucTQwdHBYZnJlS1JSc09zbnJlY0VERjVKRVhjdXRFTXhQZmJOdWxmT3FFQ2J3NFBrRlpJZ1VLRkhUUDZwSGx2RllDVFBMUTNGcnFhNEtBNkRwRzdnWk5xMWVUVUFQb0dlU1BwYW5HVDgyUVhsRUU2OXZYTHFxcnE5aHlKSWZzR3N1ZmFFa0VWRjVlZ0loS3IyOVJIQzZxdkJDMUlvSktoZGdxMVZ6VTYwRUUwVXZ2NGpsV29PQlBES2ZUV2RCS3FMWHl0UW15SUFnMEJnL1VnQ3hKVXM0Wk9ibnRKdDdibWNXY1NaZDErcWNhTHgzMmtuSlc3UzloNi9KMVRKOHloY2M5NkdIK3NQQy9nTXUzTGdIZzB0M0xXM3hsdkhFeHJsYkYwMmhOeFRqcXUxMEE5UGg0aDdLckZmenBZYlBaaXRyUjJOcE4rUkFFUVZZRHN0UHB6TzYyWUpQc3ZQN0ZhaHdKcVN6bzN6bk55clFKYVV4ei8zOVo3bUVtdkxlZDZ5L29TYXhHV1RRRkNoUjBqUHI2K3FKMlRORFQrdGxFdHpRODJVM0ZrRTlYcldhckdNY3JVL3QzdTlWVmFIUWtVWTU2VGluODRBb1VLT2dDU2t0THkraUNqNjNSSEJVQnVhcXFLcXZybDVCSlg3K2V6K3BDZU9mS0ZQUmkxNDZwckRjMy9aWjE3Q1FGK21ENitDZ0xwa0NCZ3M2Um1abFo0U0hNcEU1TVVRUkJFTHdCclNRNWl3R3ZUcTlnTG1iMG9pK28xWG5oSmJvY2RkclFYbXhmT0FHQUo5LytnUFJpRzFWbUIvNTZMNUlHRCtQREdRTzQ3NVgzMk9Qd3dWOGprVmNyY2Uvc3FjenJFL0tiVDlCdnllNmhRSUdDc3dLcklJalg0bXBqVUkrTDJhTk9FSVI2OTJjMlFSQWNvaWc2VlNwUjFtZzBzaUFJZ3Q0dDJMWUF5ZWR1YkJKbDFmV1luUUxoQWI1NC9VNEorWXBnVTZEZ2Z3dVNKR1dvVk9wRnVOb1llQW8yazRkZ2M3b0VtMHJXYURSeVk0NkJMRWxTcGlpSzUxQ3dpWVFHK0NtcnBFQ0JnbTdCWnJObDBkYTMxdHJISm51WW9ZaUNJTWlBN0hBNE1wVXBWS0JBd2ZtR3VycTYzSFlFV3BPUHJYVU9XMVB3QUpETlp2TmhaUW9WS0ZCd3Z1SFVxVk1GclFTYWs5T2tmRFFLdWNhWXBuejgrQWxGc0NsUW9PQzh3OXExNjByY2dzdnBJZFRhcEhzMG1hR2k0S284QU9UVTFOUnlTWEtlQUhyL3BxTis1OUsybjExd05hVE1VMVpVZ1lJL09XUlovdVhSUng4MXR6WkQzWFJGbnBxYWgzQVRtNHJnWlVDU0pHbXZLSXE5LzhnVDVWV1RpNm93RTZxNzE1VFc3OVFwUk1jSlVDc3NHd29VL0ZhdzJleUgyelZEWlNRRVdRSkJScFpCbG1SQmxoR2NJRGprcHVBQmdHeTMyL2QxZmlrbk96TU9zMmpsQnU1ZHZvbjM5K1ZpYTVhdlpPWGw4ZW0ydmJ5NjhTQzFyVzNsL0J5ZStYSWo5NjNZekVlWmhYKzZSU3JmdDVteFQzN1I0ck9UMjc1bCtyOVd0L3YzUDY1WndlalpkNUU4NjFIMjFuaDg0YWhsMFpQL1lOQVZkM1BKNHE5LzI1dHdGSFB0VFE4eTlJcUZYUHZHRDEwKzdJVW5IK0cvZTZ1NmRhbGwvM21OMGRmK25lZ1p6M0EyMlZDL1c3bjYvN04zN25GUjFmbi9mNTR6RjRaaEdFWVlZRVJFUkZKRFJFTXlKRFV6YzgzTXpGeHp5OHkxc2pJejEzVmJhMTF6L2ZVMXQyMjdtR3RtZGpNejE4ek1UTTFZTkRQWHlzeklDNWtSSVJJaUlnekRNTXpsZkg1L3pJVVp3R3ZxVnM3NzhUZ1BaYzdsOHpubjh6bXY4NzYrUHB6UjdITTNzS3VvbEJNdEtML21qWmZKR1RXWm5tUC9TY1Y1ZS9BdTl1MHJ4dGFNbjIvNWkwOHo1LzF2eitoS0JhdGZwKys0NmFSZCt3ZDIyODVoRnhVYlU2YlA0NEQ5M0pFSUhyZmFEclppaGdiNzJQQ1RUVXBJeUZKVDhBQi9aTlJxdGU0NmRlZnJXTE9ybkM2cEhiZ2hveDJidCtRemEydUpiMmNETDMvNEJmc3JqckJvNjc0UVlEdFdkb0RmdmJxTnVMYkpETDAwR2RubHZ1aUF6ZTJvcC9Sb2JjaHZzUjB5dU92cUxxMGNYY2ZzZjc3SHpQbFBzbnZWLzVFZDA3U24vTE9QZUxrOGdaMnJuMlg5d3pkZTJKdFFXMWoyeXQrWk55cUxHcnZyOUVIOWFDVld1K2VNbXJyMW5zbHNXemdKZGEyVmMvR3E1Rzk0ajRJRHh6aXc1eHVxN2NlWi8vSmFxazVuR3RwTEdYNy9pN1M2T0lpOW1Ca3ZGckpzNmJQc1h2WkhMT2Z0d2RjeWNkSmNpcG9SNDFpcnE2bXVkNTNSbFFhT3ZKMXRTLzlDa3F2dXhFU3haeUdGbTlheXIwMFduZlhuam82bXFQalFEODIwdFdBZm01RDg0T1lET0YrcWgxQUgyNm1qUjkreWEvUG1BaHR3NG1JbjJjVGo0NjhOL05uR2ZwVDdkdjhBL1ZNQlBmODNZUVRVbHJEMjYwOURUbHV4YlJmWERSckl2YmxKRnhXWU9ZNGY1c21YMTFKY3IyVm91aTdrQzd6c3RiY29zaXBZTHMwT09XZm50dit3NXN0dktheDJzM3JsVzJ4VFJUTHh6cHRKaWJTeitNVjMyTFgzYXh4Vkd1WTh0NHpZanBsTUc5YnpaM0d2YmxzVmkxZm1zL3Y3Q2hTZGtkRTMzY0RnalBnbWNDdjlob2ZtdklsTm44Q1UzNCtnYTV5MzBNVisvREFMM3RqSW5uSWJtYmw5bVRxOEY2ZEtnMVlhanJObzJYdnMrUDRZc1ltSmpCczlndXkyK3BPLzBBT3VZdG5LdGJ6OFNTRmJsRFU4TlA0bXpLZndMR3o1WUIzNVh4ZGpyVC9NRTg4dFE0L01yV1BIa05GR0p2Lzl0V3paOHkxbGpnYVd2UFFtZWwwYzArNitEdE1KcjliSTB0YzNVZU9xNXFBOWdhR2RuS3o4L0JqVDc3K2RqRGdOdXovL2hCVUZleWl2YlNEdDBoNU1IWE0xSmczcy91OW1WdTA4U0ltOW5rV0xsbUhSU0F5OTRVYnlVZzArQmI2S0p4Y3NaczlSR0QvMnR3eTRwTTFQR0VRN3k5OVl3Nlp2am1EcGVBbFRieHVLeFFkVVpVVzdlV0xGUnlodGtobWVGWThqdGhQRGU3UUxXSEtML2wzQXJWT2ZEckh1Vml4L0IyTnFlOVovOENtNnhJNU0vLzMxV0h4MW1EVWwrMW0yMzBtTzlrZVdGQlNSME9reVprNjRDajB1MXE5ZXg2b3ZmckM5c1dIcmtXWmFtZ2RRaE5jYzlWT0RDMGxDS0lxQ3JjR0RyZEdGN0hPNkNVRDU2S09QRkNIRWpqTjVEdnNycStpY2RLclNLQmQ3UzJ1SkVjZTVjL0ZiM1ByeUJqNzRvZVppOEJBd2ZkcHNEdXE3TUdsWU5zdmV5US9hcHlJN3B5ZGR0VWRabEIrYVFwamNJWjBodWQwd1NSSGs1V1l6Sks4N1JnMkFodDY5THlPdmN5SUdjeUpEcnN5bS82VnRUOW9ENjZFRHpGbjRKck9iYlp1S3p2M2laTTdxQ3FxMUNZeS9aVGhqKzdWbjZvTi9ZWHRWazVhMjVKMHREQm8yaE55b0h4bnloeGV4QXpRY1pkU0VSNm1NNmN5VVc2K2haTlByVFAvMzE2ZHNhOG44cDFoL0pKcHBkOXpJME80SlZCMXZPT1U1eFFmMnMrT0hPcExqNDBuUU9kajB5ZDRXcGwxelNldDhLVU42WDRKT1k2VC9sZGtNdWJJbkNUcnZpNW5lOVZLRzVLU2oweGtZZUdVMmd5L3ZjZ29hNmthV3Z2SW1jcWZlbEgrOG5NVjd0ZVJHVmZERXUxOEJjTENrZ3B3cjg1ZzJkZ2djS0dETXM1c0FTRXJweEpBck00alZhT2pkTzVzaFYxNUdTcHNtNkYrOTdqK2s5ZXJMc0k2QzBYOTVpWi9DTGZIcU0vOWdmbUU5RTI4ZFJ1eVBYekQ0cnl1ODZsRnRNVU1uelNjbDl5cEc5ekl5YmZaOFZuOFpaTkRiZm1EVGdTajZkb3NPQWJaVmI3N0JqTmMvWi9TbzY0aXQzTW5JdVUydWs1b2ZpcGo5NUhQTS8yOE5JNisvaWxTZEN3ZFFzSHdKVTk3OWp0dCtlOTBYVHBkYmFjVUU5WnVoaWlLRWtQRHFiWTF1QlkxR1RZeGVHNGlLQnNETjdYYnYwR2cwZzA3bklaUit2NWZuOTNwNGNmS2xwL29NWUhPNVdiL3ZDTStQR1lhdC9Cc212TGFSamcrTjRkZE1EcTVVN0dYRjkzSHNlV2tnRmhsbTN0NmZVUi80SDdkTVJyY001TU83NGZ2UTh5enRPMkJwcjhPZ2lTQ25Wd2FaQWExQ1E4OGVHYWpMZDJNb2o2UnZkc2FwTFVlTmxnUnpTeDNDb0RuM05XMzZsRXltRDYvaHMyKyt3eVpNWkNRNCtHeGZOWG45dlZyYm1OdCt5K0RzUzZEbkhiejgxbjFzT1R5SjFEMEY3RXZzdzZyUlZ5QURjKzRjU3NiVFc1bC9TL2VUdGxWOTNJcStiUXhwcVIzbzJTWHR0UG9uR3l6TWUrUStYcDc3REVObTNBZEYzeU9md21wSzZkaUpsRGczV20wMHVka1pJYVptYXFkTFNJMnBSeGNSVFY1MnhrazB0ZUR2V1J5RCtsMks4ME16U3EvTEdPQ3BaOVVYM28vTXFOL2VSUEczQnluNnNaYk1ycW5NWDFjRURDYWhYUW9KN2ZRWU5WcXlzelBJYWFhWURoeDJIU1A3Wk1EbDBjeGVPSThTSjJTY1ZlVmZEVXZYNzJmbXE0K1FsNklocjlNNGx2U2Z5Mjc3cmNnZmY0SXpheERUaDNpdGd3bFhmMGhoOEVmdHh6TEtZeEpJYVVVRHZ2Zk8yK25mUFliK0tXTlkrSnRGRkQ5NkUybSs0K3lHTkJiUEhPTTFFZk1BRkphLy96RlRKai9IWlIyMWUxb3hRejJBUjVLODRDWUVJQ0g4YTdxbzFTb2lJeUpRKzNJL2hQY2dJZXJxNmo2TGpZMDk1U000OW1NSjk3ejFGWFB1R0VIbnFGUFoxR3IwYWhqVyt6SlNqWkZnektKUDFIWStLN2YvcW9ITldWT0xyVTBjWnQvanNjVEdBeGQyVVRBNVFvZkYzTkkwTWVwUEhkMWR0dUJKWnE3ZEQ4Zzg4ZHg4Um5lSlBQbUhibGMrZzJhK3k1QkJ1U1JFcWFteWUzQzRtL3cveVdiZnZKS05XR0pjVk5ZMElsZFdZajM0RFNNZlBCUTRybmZIUzFIZ3BIUlk5OTUvUDQ4c1dFSDJzTmZSSlhaay92K2J5c0NPSnkvWlMrdlVBWUFoTjE5UEVtRHMydkhDVHdwWmpWb0dXYVZDMWtob1pSWDJSZ0UwTUhQS0kyd1JxUXpxWm9IalZUaGNweGVCTnh0OTk2MVdvVmE1VWNSWit4S29yRFZnTWZ0SUVpTk5KRVRaS0Q4TzZ0b2FMT1ltV3YrRTJKalFqemlneUZJckY5V1FsT0E3TmlhV0JNbEtwUjNTZkYxTzdwamN6Ty9WU0VWVkkwTXNKZzZVZkZ2Y0dxZ0YrOWVFZDBPU1piUW8xRGM0c05rZGhQallBR1hTcFB0M3JGanhaaTBRYzZMN3J6dDJtRHVYYldQeW1CdTV5cUkvalNlbW9XT2lBWmZiSFhnTUxvK0VSdjUxTDAybmpUVmhQSDZNS2dVc01sUlVIYjN3UHI3cW82ei82UE1XenZjaHBsUXkyMGFmOU55eGs2Y3pkdklKN2syanh1RUtEUWFzZW1jREl5ZE9aZDZJVG9DTDRpM3ZoT3d2cTZvQ3pLQllxYWpWa1JRYlFYSkNBZ2xaYmRqNDFOZ1RhRGdxWkxlblJVVFMxTDR6Qy84K0MvQ3diUDQvbVBuYUZyYlBIbjVhejZScnR6UE1hSklsWk1WenhnRU1tN1dXS3JzZzFYSWF1dHlQZTFuNFRSeWxIenlJQVNqWitqWlBmRkVTZElBRTBwbXY3dWEwMnlnLzNraHl1emlha2MralZTazRnb2RRYlNBaHhrWkZsUXRTTkdDdm9iTGVRRkliMEpuaktkM1dGUE10cXpnS1FkOFJYV0k4Q2NjcktWY2dUUTUxUTVVZnFZRVVFOVJXVXltTW1JTWdRMjRCaGhGWXpCR1VWOVRVUHZyNE0yVW5BTFdRa2lyWlYzRVFxZFBTUnFzUkdoVmVqUzFJeE1xVks5M0xsNy94c1N6THcxcDNsOVV4K2FYMzBTVjNvZnJ3OTd4K0dGU1JKbTd0NmFYNS91U3JQUlFmcTZMUjA4QTdueFNTbnRpVzY5TGp1YkhYcFV3bytDODlqVG5VSHo3STU0cUZ2N2FMK0ZVRG01eVF3YTNweDVqeHdtWW1YMkhpc1RjK2hvUytYc0NwUGNxMmZZY3BQZkFqOXFOcTh2KzdHMU5DTWptZHppMlZrNmxUZHhiL3JmczV2N2VzN3Qwb2V1a2RGbWZwU1UxdXorQWVIVWhwbDhDS3JWdlkyVlZpMzhjZnNQNEhKVVFqWC9uRzJ3eE9HVTNscCs5VDJxRWZmZHZLNkUwRFNWdjBDTk5lYThldFY2UlFXVkxNSG5zYkhocVo0ejBwcWgwRDJoOWp6dk1iR056SnpNQ0JseE9yaGxYL1hnWHR1dExackdibjk1V2taMTV6L2daU24waFhkUmtMVm54RVh0c29jaTdQNFhTKzV4dmZYTXlZZFI1czc4MDQ5Ukp3TWZFa09iNWoyVWQ3eU5FN2VPS2xEd25ObFRlUjBkN0RvcVVicWV4bUppTXJpN1EycDdZM0N6ZTl6ZVZ6ZC9IdFo4OFN1b3hTRFAxN1JQSFVvcmNwNzJVaEw2OFB5UVlUNDRaZXltUFBMaVgyenY1c1cvVW11djVYMDFNUGNyOStKRDg5ayttdnBaQVRXY1dybng0aE4zaHdqZWtNN2xqTDlxSUcwakpDTmZ0Rkx5OGpNL0kzYkYrMWt1UnJCNUIrVWtWVTV0YnIrM0hQOHk5OWV2RDc4bUF6MUIwQ2JzSy9NcVd2UmxRbzFEc0VraVNqdUQybzFHcTFKSVJBQ0NINXRILzU0WWNmVGxDcjFhMzcyUlFYeDUwcUVxTTBPRnh1SEM0M2piS1czc2xlTStPYkgwbzUxS2dtSnpVZTNHN1VrZEZrSmtSalRreWltNzZSRFYvL3dJOUtKQStQNkVjbmd4cDJ2ZG15amJiZElhbjdlWm1qamRYbEtIVkgwZXYxWjNSZWJXMHQwZEhSeVBLWmhMSlZET2lYdzRHZE8valAvcVBjY2Nzd09xVWtrZHU1TGJhS1VsWit2SWRhS1pvZVNWR1VWbFJoMTVySTdoZ01iRnA2WlhjbXFoVU5QeW91Z1p5TzhmOHowTmFaVXhqYzFjZ1hSVDlRcjRtaGQzb2lHZDJ6RU9VSGVQdWpRcUl1N2N1OTEzU2tVM3BuVXRwNFAyRFhYM1U1LzhuZnpBOVNJZ3YrZkN1SmtTclFSSEh6YjNMNDlzc3ZXZmZKVjFRNnRRenNjeGtkNHZRQk44WTFBM0w0OGJ0aVNxb2E2TkdqQzlGcXNOZFVzT21UWGVSL2ZvQ1U3RUhNdmpXWGlQTzE2STJrNHpmOXUxRjhzSmppOG1Pa1hacEJmR1RRb0dnTTlPbVJTbXZ2YTN4U0NsZDFUd2t5cTFYMDZKRk9KSkRjc1JQSk1WcDBKak9YWFpMRzRPeTJyRnUvbGMvTEduaGd3azIwaXpmVHIxdjd3QXQvVmI5ZVZKVjh6N2VIajVLWWtrNTdrOVlYWE9oSWVrSlVZTTdrWkhjaDJEc1ViYll3b05jbE5IY2s5TDN5Q3VvclN2anV4K09rZGUxR2dsNmlaKy9lNkt1L1orWG1MOUVrWjdMZ3dadUkxa2lnTVhMVG9Dd09mRjFFamI0OS9SSWFPR3JxeWczZExZSDdTaEJWTE5oVnoyMTlPZ2FDQnl2ZmZJOGJ4bzVpZS80V0dpMFpMSGpnQnFJMFRjOU9aekxUT3owMFNhWmo5NTdFV2crOTg4NzJ2WWNBSjlBSU9Iei9PZ0dYSCtCVXNxeW9KQW0xU2taUkJFNjNCNmNpSWVsME90bnRka3RDQ0ZrSW9SSkNhRXRLdnUrZWtwS3k3WUs4SVJlNHBLcjIyODl4bCs4akx1N01LZzlLUzB0SlNrcENIYTQ4Q010RktrWGZmRWRxcDA2b25jZTU5ZmQvWk9qTXB4bmZQY2hqNWFwaDFMMVBNZWZaMldRWVpNREpxQnZHTVhiUkNrYWNHZjBoNytSdnYyL2tIK2I5U0NnSG0wMkNlaVFhSlNTbkpPR1JKRWxSeTdMUXFtVVJvZFVRRWFFUi91Q0JrQ1FKNFkwdkNFQkpUZTFZcENpZVBVQm1lRGpERXBhd0FHejljQTNqWnBlaFNKRU1IVFdKY2QyYnVlRTFKbGE5TkNmRUw1amV0Uk94WjdoZ2t5TEV2cEYvbUhlc21SbnFwbVc2aDVCOE9XeitJS2hLa2xISkVtcFpsZ255c3dYQXplMTJGNmpWNmw4ZHNMa2pZbkRIcGtGQzRwbVpzTFVTSWo0Vk5PRmx0Y0p5Y2NyRU9TOHc4UXpQbWZmYVcyZmNUcjJ0L3RNVCtOWThTSklYMUNRRWtvUWt5OTRJczFxTFNxTkYxa1lnUitnQzZSNUlrdVJUMnJ5SWFMVmF0OFRHeGs3NXRRMk9SMmZDSlVkQndwbnB4bzJWTGtUOEpSQ21CZzlMV002cmZGTzZjeCtoYVI1dXdDTkpVcERHSmlGSnNwQmtGWkpLZzZ6UkltdDF5Rm9kcWdoOWs4YldMSjlOTVp2anR5bUs1ekRRN3J6ZVJmYnZXdjdXdG50NGRNTVNsb3RRaEJEbGwxL2V1N1NaQ2VyZmZKUkZVZ2hycml6TGdVMmxVcUZTeVY1Z2syVlplRHllWUZOVUFCNlB4L09CU3FXYWNGN3ZKTXk3RnBhd2hNVW5EUTBOVzF2VDFvSzJFQjQyV1phRkg4Tzh3T1lGTjdrMWpjMlBqSFYxdHZ3VGRhREdhdVdIWTdZVHN3TjRRdE9mRlVYQjdRbmRmdldpVkxOaThTSVdMVnJFK3UxRnY3cmJxeWt2WXZXSzVTeGZkeUVDNkU0S1ZxK20wbkVSdk4yT0t0Ym5mM2JDM2Z1MmI2U3dOTFRXZXZlV05SUlZ0RjRsV2xtOGs1WExsN05teSs1bTg5UEpad1ZyV2I1c0dYdEttN2g0UGl0WVQ1WHpmM1ByQnc5KzkxVXpVSE1EN2xBemxCWWFXeE9ncVZDcDFGNWc4MjhRNERZU2dCSWJHNXNQSEE1OUdEWWVlUHBWcmwrMGpqOHNlNGUrVDYzaXY1WCtBdVJHL3I3c2JmTCs5Z0xwYzFaU0Zqakp4VVAvZW8yKzgzemI0eTl6NmN3bGZGUWpmdVV6Vk1aZ01GQzY0eTBXcnQ3eGkrdTl1MlFMbzZjODFmcE82eDRHNVYzUDlxSlNLaXByT1ArZktUdFBUSHVRd291QU8ySGRNMzlpL2I0VEU2V3RYL3d3cTdlWGhmeTI4ZFcvcysyQXRTVkdsbXdpZCtDZDdDa3RvN0k2OU9HdG5mZDc3bjNpYmNyS0s3RGFtMm83Ykh2V01IMyt4ditKR2RxalI0L3ZmZURWM0F4dEtxWHlGWVlHWTVjWDBKbzJ0VStGazVyU1BpUWhTU2hDQ0FWUVBCN1BCcFZLZFZmVHU2cmhubEVqeUd6dkxSTlp2ZjQ5NXVSL3pZWmJld01xQnVmbGN0ZWdCZ1k5LzBWUWx6VTgrY0R2QTMrVkYzM0p5TTNINldPU2Z1VzRabUxZcldQUlZYOUNZY2tKdEo3S01tcmNPbEtiTTZRb1RzcEt5NUFOWnBMTW9UV1FEbHMxNVpWV3pFbkpHSFhuS2E5T1VYRFVsTEZwKzFlNDNXNlFaZFQrNUdSRndWcTBrMUxMUU9iTm5PNmRXS2QxVFVBR2UwMFZsVFpJVFc2Nlo2ZTlocklLSzBtcEtlaUNMK1oyVUZKV2lTWGxESmR1Vkp5VWxaYWpqN1VRYTlTRmRLS3lyQlMzM2t4U3JPSDBBTjVocGNvR2xsZ3RaZVUxSkNWYm11N1hOMDQ2Y3hKbVEyZzcxUlhsV0oxcVVsSXNJYzlIQVJTN2xiSXFHOGtwU2FHSnZjNVM1aTNaeWNMZHI3UjRlQldscGVqTUxXbS9GTGViNlVzK1FhMldXMWhKeFR0MllPaDdDN09tVDBPVzFTSG5iTisrZzNGVE5qTjVjR2grNXNEeGs1aWEvUUNsVTRhUWNnRmpaWGE3ZmNzSmZHdWVJUCthQWdFZlc4QU05V3RzYXJVS3RWcU4ybWVQRW15UytzS2pDdUNwcWFuWkVCY1gxd1JzUkpEWnZxa1VLaVUyQnNjUmY2R3ptc3ZTMmtGdHlVbHY0SzJkZXhtV2ZUVVhkWHhSc1RGMy9BMjhXdWdtUlY5RGxiRXZHOWM4ajBVSDlySWREQjUwRzdyMG5zaldNbUw3MzgrS3g4WUJzT1hWdjNEWDNQVmtaYVpRZXVBQU01Wi96cWdzd3pudjNoT1RoN04rNXcvWURsUXhhTWgxcU9WRUZxNWRSbWNkUERaeENKdDJINmJtWUExRGhseUhuSG9WRzVmTVBDVzRqZS9kQm4zL0NXek4zNEplZGpCZ3lnczhNU0dQdGZNZlpPcUNyV1IwTmxOVTJzaXJhOWJUTjgySXJYUTdnd2I5RGwxNkZnNkhpNW9nanFFeG1aR01XdFhBcUs1UXMyTUpYYWQrU3NXT0Z3RTRzRzBwbzhjL1Ntem5MSnhWSlF5YTlpS3p4L1RHWHI2TDBTTnVvOHFZQmxVSFNCM3hLTXRuanoxcHY4Zm50cVhFbkV2cHJzL29tdHNIYS9GWDlKejRBZ3NtRGFSeTN5WkdqcmtmYlhJR05RZjNNWEQ2OHp3NWNSQlF3Y2lzZmxRbWRDYVdHZzVVbTFpNS9tMnlMRG8yUG5NM2o2dzlRaXlOMkt1S2NHYmN5ZllWc3dMdlFrbkJLaW82LzRhUUlYVldNV25FTld5clNjQ0VBN2V0bXNGRGZJcHo0VHBHVG51V29sM2JtTDc4VzZZT1NmYWRWTVdVa2I5ajU4RURGRmZLREJteUdVdnVMU3g3N0M1S3R5NWp3cHpYS05wVmpxSDhOdFk5cFdQY3JKY1kxOTliRm9teEo0TTdsN09xb0lScFExSXYyQ3V4YjkvK0wwOWloZ1pwYktGQmd5WVQxR3VHcXRWcVNFNXVoOWxzbHFLam82V0lpQWhaclZhclpGbldTSklVS1VtU1VaS2tCQ0dVZlVJb29zWG1yQlAzUGZPU1dMajNhT2p2TmNXaTU2dzN4YUZXem5IVkhSSjVzNWVLL1EydFhPOENiRWVPVkloRGh3NmQ4WGxmZi8yMWFHeDBuRldiSHo1M2o3aitqeStIL1BiREIwK0t4RjYzaUZxUElvUndpRDlmZjZsNDhJV3RRZ2hGL09lNWU4WFY5eTBNSEJ2Yzd1Mlh4WWhYUHJmNi9uYUt4a2IzU2R2KzhhUEZvbTFpb2toc3RqMzZ4bWVuN0hmRDE4dEZUSzg3V3QxMy9QT1hSZUtWOTV6UmM3aWpWNVM0NXI1bmhNdC8vUWE3cVAxcWxVanNlSlg0dnRaN0gxKzhNVVAwdW4ydUVFSVJ6OTdkUi96dThUWGU5cjVhSVdLa1JQSGhqOTV6YitrV0lkN2E3K3ZMZnhlTHhDdnU5TGJqS2hOWHQ0OFhyM3hTNW12WExZNGRyeEZDS09MUm03dUwrNTdOOXgxWEpXN3MxazY4KzYzOTVIMitJbEc4dGQ4cFh2dno5ZUwyZjZ3Unh6NVpJcnI5ZG80UXdpWitmM2s3OGZmMzl3Z2hGT0dwM1NONnRiOVVmRkhySGMvYTJxYnJ2dmJuNjhUdHZ2dlk4UFNkb2wyL2UwVzlVSVJvT0NoNnRXa25QajdhMU41YmY3dEYzUGp3MHBBK2ZQSEdJNkxqdGRORW8xQ0VhQ2dWVjdYVGlFZmZMQXc1NXMvWGR4QlBieWh0T1cvZm5DVjYzUEZFcS9mMngrczdpT2MrTEc5MTMrc1AzeWh1K2R2S0MvWmVLb3FuQ0JnTkRBY0dBYmxBTnlCVmtxUUVIeFpGeXJLc1VhdlZxb2lJQ0RrNk9sb3ltODFTY25JNzB0UFR5Y3JLb2srZlBseDc3YldvWlZubGp5aElzaXdMUlZFa1h4REJiNDU2bkU3bmUxcXROcFIwVFhIeHI3YzM0RTYvZ25zeVRyODhhZHZPL2NSZjJwV3VPaTVxMmJYclMzcjJ2UWFqREtCbHdPQThIdHU1R3liMkpiTjNmdzdNL1RQajVSTDY1dlZsNU1paCtJbWtCZ3pzeTV5N2J1VEF5T3ZvTzJnb1EvTk96c2xtNlg4WDVSVjMvV3g4am1QR2pnMllYanFkamgzYkNsRDBzR2p1WDd6VHFxcUlQYnQwS01DdW5Yc1lPTUZMR21ES0drQlA4NmtOWHZlQmJYd205Mlp0WGxLZ3pWaVRFYWhreTlZRHhKby9ZTWFNRDcwNmpkdEI0ZTRTaHFkM1Bja1Y5UmdNYWpBYU1CbGlNUmp0T093MnNPNWp5MjQ3Y3NIcnpOanFOUldkN2xMMkhMU1JuYTFqeDZvbldiamlReXF0RG1vcWlra2RkWFBnaWoxemU2TUgwQ1dSbWxCRFZRM2dzOHFycTZzd0pZZXlnUlR1L3BLOEFYZDZ0VHBkTWdQejBzKzdUOU1ZYTZLcTdNSTVOR3RxYXJiUXN0SWd4QlNWSkVrSnJCc2FFZzBOOHEycDFXZzBHcThwMnN3Y0ZWSlR0cTRDZU1yTHk5ZW5wcVkrRkJUeVpNVjdHL2hZN3NncjEyVncyclhIU2lNcnNTT2dwQUFBSUFCSlJFRlVkeFl6Y3NSRmx1Snhoc1haQ2IzSHNHOTNMZ1g1QmF4ZStqZWVYTEdkZld2bklnTVRubnlYL3J1MlViQmxDek5HOVdQM3dvOTRaTVNKQzBRcWQ2eGc4TDEvYi9IN3VObXZNVzFFMW9VUHBoaGJrZzlZMG5veFlvUi83WVliR1RVNTlwU1B6T3ZWOHpydEZFVnBldEZQZXFLZUFVTnZvbmVDOTY4UkkyNGtKVDNsOUFaUDlqRkVlT0VUVUZDMFpnYVB2SkVVMlgrOW0wbnJyS2Q4eTBJbUxQaUMvSTN2MFRYQndQb243MlIrUlJNVXFlVVQrMFdOSmhOV3E3V1ZQc2dYZEtSc1Zpc21rK0dDdGJkMTY4ZGZOUU0xMTBuTVVCR2F0eGJrVy9NQm0reFBhR3NDdHdCVmVDQTZtcGJXYVoraUtKdDhzUXZlLy9CRC9sMW41c1diZXhGNUJzLzc2QS9mOEltbkxjUFREQmNWcmxsaTIxSmNYQkx5bGMzT3ZvemQyLzZEVlFGd3NtWGpkbkp5ZWdZbWxTRWhsUkczVG1EeE13OVRzVzgvRHA4RDJXcTFrNTdkbjRuVFp2SFErTDdzMlhmZ3BHMmJzNGV6ZnQxN3JHdTIzVFc0NnluN3JkWHBVS3FyZkgwOGZWbjJ4QlRtTHMwL3JXT3ordzZrNnNCWEpHWDJKamMzbDl6Y1hOSjhRWVhzM0o0VWJQR21rdFFVYm1GWFZWTkhZczFHU2t1OGtjRWQyM1lFbnEwNnZTKzlsYzlZR1lnYUt0VFVXSUVFQnZSUDVtQ0ZNOUJPZGtiblZvSDI5RlNhVEFabTJDbTF4Z2F1bDVtZWh0RWdVMUZhU2tMWFhuUk5NSUJpWSsyNmd0TytiRTUyTC9idENhV0t6ODYrak8xYnRubFhnM09Va2IvOTRQbjNkKzNaUTA1MnpnVjVQOXh1OStZUkkwWWNDd0kyRnkwVGM0TnkxNlNRWk54ZzM1cEdvMGFyMWFKV3E5VitVUE5GUjJVaFNRck56Vkc3dldHdHdSQTFtSVlqUEY3d0hWWmRCQVBuN3ZlK0FQRnBmSEx2MVFETVh2d3E3MWM0cVhPNnVYSE9TMlQydUp6WGJ2UnFCbTkvdnA5K3ZYcGhraThxWENOeitBVHlYcjZKdEs1dmtUWDBQdFkrTlptVVFST1pzdng5Y25LdUlrVm5wY3JZbjQzanZHYlhaeXRtTS9HWmo4bnNta0p4NFc0bVBmS1MxM1RCelVQRGU3QkxTU2ZKNktTd3hNM3k5WU5Qcm05bzlTUWxuOTNMSzZjUFpHcnZaOG5KdWd5aklaVmxCZS9ROVRRdXRXUFRXK3hPNzh3ajQwN05NRy9NR3NIaVNSOHhzR2QzdW1hbVUxVnlrSzZqL3Nhck0wZHgxeU4vWitYZzN6Rmc2NHM0M1lMa0lGTjAzTVM3R1RxK0g1dXlPbU14UnlEalcvdEJuY1NpNWY5Z3pMaXJXTlkxRTZXcWpFRlRuMmZtbU40OE5QOFZ4bzY4blp6bHlWaTBEZzZXQ1padDNVck9XVkhnNlpuMzZrdU1Ibk1EYTUvcWlzNVpTYW10SGZrN1Y1RTFkRHptSjY0bmIvQ242T3hWV0JMU1R2dXE2WU5HWXBoMkd3Y2RqK0ZmK3lkcjFCU0dMYjJHbkx4cmlaVmRLT1ltbXArWFo5L0J5L25GRk8rclFGZHlFNnNlMHpOajRYc015ektlL1lTMUgyRGpMaVBMbDZWZmtQZmowS0d5VDFveFFWMG5NRU9GSk1sQjBkQW1UYzJ2cldtMVdxUnUzYnJSME5CQVEwTURqWTBPcWJIUmljdmxraFJGa1JWRmtZVVFha0Q3Zi8vM21QSGhoeC9lQnJUL0pZTk1aV1VsVHFlTDVPUXpxeFRiczJjdm5UdGZndlljMTRyV1ZKVmpkV3RKc1lTK1hVNjdsZkxLYWt3SlNaajAyaGJuVk50bFVwSXRxSDhsSHdtM3cwWjVSUld4bGlRTU9tM3dEc3JLcWtoSVNVYmI3RjV0VmVYWU1HSXh0MklCS0U3S1M4dlJtUzNFR2tJZHV0VVZwVGpRWTdHWXo0R0JwMUJSVmdxNldDekJhVG1LazlLU2NveVdaRXo2TTB2SldUN3JKbmFuUGN3VDQzdUh0Rk5aWG9iT2xIUmF0TzQvUmJZdm1jYVRwVG1zbm5QK1hVWkNpTEtiYmhyNTUzZmZmZGRPRTBXUkRiQkprbVRIeThQbWxDVEpMY3V5SXN1eW90Rm9SRVNFbG9nSW5ZaU1qQ1F5TXBLb3FDZ01CZ05HbzVIWTJEWklQWHIwd0c2MzA5RFFnTVBoa0JvYkczRzVYRkl6ampZTm9HdHNkRHlpMFdpbWhvRXRMR0U1ZjZKWWkxbTZxWVR4b3diK1Q5b3ZXUFVxNlVQR2tXSTQvMTlOcTlYNlVreU02UU9nZ1ZEdXRYcEpraG9BaHlSSkxrbVN2TnhyYXJYd0Fsc0VPcDBYMlBSNlBWRlJVVVJIUnhNVEUwTmNYSnpYRlBXYm95cVZTcWhVS3NuajhRaFpsdkI0UkhDSmxmdlFvVU5yMHRMU3BvYW5YbGgrUFZMRDhvWExxRzdGajJqSjdNdW9BUmQrelZiWm1NYjRVV24vc3ljeWNOVDRDOWJXNXMxYmRqWHpyWjNRdnliTGt2Q2JuejZzQ2pKQjFXaTFHaUlpSW9pTTFQbUJUVVdRcjgwWEhaWHh4a1lEMFZFbFBmMlMvVzYzYTdVc3l5UERMMFJZZmgxaTR0WkprOE9QNFg4Z2pZMk42MGFNR0ZGRnFGL05CYmdrU1Fxd2VSQ29EUTFsOFFqR0xyOXZUYWVMSURKU2o2elJhQUlIQktkK0JCZkcrd0lKSHJ5VkNHK0hoeVFzWVFuTFQ1V2lvcUpQV3RIV2dvTUdudFlvaXBxbmVHZzBHalFhTFZwdEJEcWREcjArQUd5YVFMalVyK0twVkxKb3p2WUJlTXptK0FJaHhDZmhZUWxMV01KeXR1THhlSGIwN0huWjl5ZlIxbHF3ZWFoVVRXYW9GNnZVcU5XYUZ0cWF3UkNGV3F2Vm9ORjRiVlNYeTR1QWJyY2JiMFdDZ3FJb0FYQVRRbmdBZDMxOS9iL2RpbkpsclV1bVhSdEQ2NUU1andCVnN5SjNqNHZ5NHpZaW9nekVSWVlwdG4vT3NydGdOVHNPVklJdWlYSGpoNk1QUDVLd25FTTVkS2pzUHlmUjF2eU11VXBvc2JzcXhBVDE0NWJmdDZiVGVRTUowZEhScUxWYUxScU5GclhhMlVvUXdkMWlvUmZBazlJbDgrMUxINXc3TVRIQ2sxbnVpdVRwY2RmVEp5RVNMMjNST3Q3OXJvcEt4Y1NXdjkyQ3Z5VDN5S0Z2R2I5c0czR1dlSTVYSHFWenJ6eitPYWdMY25pTVc1WHlIVEJuQ3l5YThiOXBYNnZUWTVBcm1mclFHNHdJQTF0WXpxRW9pckt2WDcrK2UxclgxcHFXMXNPL1lJc2tDVm1XV2drYStFMVF2N1lXaWNFUWhkRVlneHdSRVlGWGEvT2FwRTNnSnZ1ME5qbVFyT3NIdHVQbGg5ejVEOXowNXVvSGIrZWhqQWptNUgvdDY3S1h0dWk5ZTY2aCtScmpiMno5bE81NVY3UHM5OE40ZDlLMWZMcDVPMTgxWENRRDZmdlhXZ1ZsRmFINzdEVlFYRXJJU3VlS0FyWnkyTG9MM0c3T2FQVnZCZTlVS1NrR3V6TzBBN2JxbHUyZlNETHloakIyOUZCT0ZQRjNPNndVRjVkZ2Q3YnNYRTFsR1NXbDViVFlwVGdwS3ltbXZNb2FmcnN2WXFtc3JOeFlWblk0R05TY0JOWUxEU21oVWtLMXRlQ2dnZDhFYmRMV29xSzgybHFiTmlia2lBZ2RXbTJFendIWGxNR3JVcW1GdnlJaEtJamdhd3ozOHVYTFZ3TGZwY1RHNEdnTXBTMktpMnlaUUdqUWFsSDVsN09YQUxVV2crcmlHTWorRnBqMkVPUU5ndUdEWUlHdk9HM3hET2paSDZaTWdLemVVRlR0L2YyaE1UQnVOcFJzZ1NGRFlQQVk4TzBpMXd5N2ZSeUVlMVpBejdGTjdlUXZnQUZqWUhBdWpCa0wyU084djg4WUNVTkd3c2d4TUNnYkppLzhpV2JxMm1mbzNMa1hVNmJjUTlmT1BWaTVvOVMzeDhtVEU2K2g3OUE3bURyNTkvVE1IbzUvajcxc0IzMHpMbVg4NUQ4eGZ1UzFqSm01TlB5R1g0UWloQ2llTmV2UkwwOWhocllvZVBlVlRZbmc5QTR2c0VVUUVhSHpKZWthaUltSklUWTJGblZrcEk2R0JxODY1M1JxZkw0MmRmTUlhYkJKNmdFOGQ5ODkwWHJiNkJHdnYvenBkN05IWHp2OGxEZDB4M1hYOE1Ecm14aGZ2SmZxWXpYY09mcGFMcmxZY2wzZEV0V3hnajArWm1hSEE0clh3Mk5ib1hBWG1OU3dkaTQ4OUJTc2ZReWVYQWtIMThDSUZaQy80c3lhMnJrTmR1NkdETE8zbmNDSEpSTld6WUdhSFpBNkVaNlpCR2VWdjY1VU1tM1MvK094dGQ5d2E3YVpmYXRtTTJEYVk0ell2aGh0elc0V3JMS3lwZXB6VW1WUW5NNkF0cnBqelZLMEEvOUUvc0o3dlJEb2RJYmY4b3RRamg0OSt0NkxMNzdZMkpxMkprbVMzd3oxMEVUL0xVSWpvY0dncGlVaVFrdGtwQzZnclpsTUpzem1lT1RJU0QwNm5ZNG1YNXVHWmttN3dla2ZJYWtmazJiKzM3L2Q2VmNVbnc1dDBaYlB2cUJTWitHZXE3SzU1L0oydkpHL2t3QS81YTlkWk1HdFFacVZUZ2ZidG9BZW1EY1Rac3lBamJ0aFQrRlBiNnJuVUMrbytkdnhTNTZ2T3NlVUFycHFiM3IzMlRuL0NpbTBaekFnMjl0SXhzQkJxQXMvcDFRQmpPbjBUNjlrekxEYm1mdk1JbmFYMVFUQU03TjNmdzZzZVp6eGsyZXdaUGs2YklvNi9KWmZmTnJhOTA4ODhjUVh6VUF0V0dOcmtlTFJITlJhK3RaMHZraW9JVkIxWUxFa0lrZEY2ZEhwSXZINjJyVDRvNlNocVI4cUVRUnFDdDRJcWZ1VitjOGMvL3VBamt0UEhRQm9aT1duMzNMYnRWZlNKOVhDOWYzNjBzMVZ3cWFTK29zRTJNQm9hT2tMUytrSkkwWjR0M0hUWU5VVForYXpVOXd0OXhsUFVQc2NZTW81bjlFYU9aYWwyL2N5Zi9vdHlCVzdHTno3Y3JhV2VUVXpMeFhUUjR6STY4eldwWDhqYi9STWxQQzdmckZwYTJ2LytjK25ITTFNVUwrMjF1b1NlOEVZRkZ4aDROWFdXdnJXekdZemFyVWEyV0F3b05kSGhtaHRUVW03NnRhNDJuemdKbmtrU1hLdldibmlUU0hFL3BQZmtncERoSW9mcW1xOUw2U2psa1AxRWdiZHhmdlY3ajhBRGhSQzF4ekl6ZlZ1S1VGMThIb2pXQ3REZ3dvQUNVWW85VEh5YlB2c1BIZlNZTWJzTHFla09xZ1hTWmxrNmZleFpWY1ZBUHNLOG5GblhlN2xKSFBhc0xyMTlCNDRqQm56RmpJaTNVRlJpVmMzUERFVlUxZ3VFbTN0bTltelorOXNCZFNjUWY2MVZsSThaRUpMcDBLMU5iMCtzcG0yNW1VK1VVZEhHNm1ycTZPKzNvN0QwVUJqWXlOT3B4YU54b1hMNVVLdFZndTMyeTE1UEI2aGVNTnpRZ2dVRUlvUWVDWk11TFAyaFRyTGF6dW1YRGNQVGt4Yk5QbjZLN2w3MVh0OHNUT2VtcW9xa3JMNk1EUm83WVNMVGRLR3dzeXRrSk1GbWVuZUtPYlFoMkR1T0I5KzVIcjVrYk95d0pBRUd6ZENMREJoSXR3MUNCWjJCYk1CT0ovVWR1cFVaczhheXEwOXU2QTNwYkZpKzRka0dpdzh0ZUN2akJyWmgrV1phZXpaVjg2QzVlOTcyVjFyQ3VtZmV6dm1qQ3prbWhKcUVzWXdMOWZML1h0aUtxYXdYQXp5NDQ4L3JuMysrVVduOHEyRkpPUUcwUktKbHFBV0VXRDFpSTQyMHFaTkcrTGo0OUg1L0MvU2E2KzlTbWxwS1JVVlJ6aDJySXFhbWxycTZxelliUFdueS9xaHZlNjZJZnAxNjlhdGtpU3A5MG52enVPaXZMYWVpTWlvLzFtQzdzK04zY05oZzRwcXNGaEFkNXFYcnE0RVJRZG00Lzl1b3JvZE5zb3Fxa2hJVGtFZm5LR3RPS21vS01ldE5wR2NFRXB4ZlRJcXByRDhla1ZSbEoyWm1kMmYycjkvdndNdmkwZTliN01CZGgrTGgvTjBXRHdNQmkrUW1Vd3h4TVdac1ZnU1NVbEo0WkpMTHFGSGp4N285ZDdQcGJwTm16YlUxTlJRVjJmRGJxK25vY0ZCWTJNRVdxMFRsOHNiSVZXclZjTHQ5ck4reUhnOG5rQ3lMdURac0dHajAycTF2aG9URTNOeVlGTnBTSW8xaFVjNlNIUUdTRDFEclNzMjRYL2ZiN1hPUUdwckhaZTFXSkpTV3oxSHF6ZVNtbW9NRC9wRkpzWEZ4ZS92MzcvZnpha2pvUXBOcTd2N3RMWG12clVJSDRPSFYxc3pHcjNhV2tKQ1FnRFVBR1N6Mll6SlpDSTYyb0JlSDBWa3BJNklpQWlmcjYxMWYxdFExQ0t3K0lMSjFPWTlSVkhXaDRjeExHRUppMTljTHRlSGwxelNlWDh6UUR1bGI2MDF2NXBHb3czUUV1bjFVVVJIRzN6cEhlYUFieTBBYkFrSmljVEd4bUkweG1Bd1JPRk4vNGlncVNKQjdVc0JVWWtnQ3ZHUUVpdThpeTY0S2lzclh3MFBaVmpDRWhhL2ZQbmxsNXNJVGNZTkFKdFBXM09mWEZ2VE5Lc0hiU3AwTnhxOXliZ0pDWWxFUlVXRkFsdFNVbHZNWmpOdDJwaUlqbzRtTlAwaklraHIwelNQa3JiUTJ0cTJUZHJ1Y3JtV2hJY3pMR0VKUzMxOS9mSXJyc2c5MUF6VUdrK2tyZm1YMUd0ZU51V25KRHBSZWtkU1V0dVdIcEhJeUVnc0ZndHhjWEhFeE1UZ1RmL3dKdTFHUkdoOUtTQUJjelM0ekVvMHF5RjFTNUxrMnJ0MzcxTGc4Szl0a0RJenU0VnB3Y01TbHRNVUljVGhOV3ZXYkcxTlUydW1yWVhrcmJVV0NmVlhHUGk1MXBxbmQwUkdScllFTm9Da3BDVGk0K05wMDZZTlJxT1JxS2dvOVBwSUlpTDg0S1k1YlYvYlpaZGxmMmUzMjE4SUQyMVl3bkx4U21WbDVjcXhZMjgvM2t4VE82RzJkaUxmbXRjRTFSSVI0YzFaQ3c0WXhNZkhrNVNVMUdyNzNuWEl0Vm9zRnE5SjZnMGtSS1BYNndPQkJLMDJJbGh6RTRvUU9OMGU0ZllvUWhGTnJCOStkTzdhSTN2cHMvbUZtME00SE53TzN2cG9COU5YYk9MeC9OMGNhUlRoMFE5TFdINkY0bmE3UDg3SnlmbjhOTFMxa0tYMS9OVUZ2bFFQWHlWVVJGREFJTGdlMUl6RjB2YUVWbFFnQWFsOSsyVDhnWVNZR0NNR2d3Ri9IV213MXFiUnlEamRvTlpvVUtsVUlBVEMxemsvdUIwNmVNQzVZTU4vbHdRRDI3TDMxL042aVpNeGZiS0lzeDVpd3FyUHdpVTFZUW5McjFBS0N3dmZMeXM3M0x5Nm9CRm9EQVkxSDZBcHdUV2hUVkhRSm0wdHRCN1VHQWdZdEcrZmZNSStoRlFPSmlXMUpUNCtIcE9wRGRIUlhwTTBNdEpya2pacGJUck1iYUtGSVRLQ0NLMUdxRlN5OEdKYndGYjJTQkt1ZzAvZDk3SEw2ZnlYOThxTjVPODl3bDNYNXBIVHdjTEVHL3JnK3FhSXJ4dkNreUFzWWZrMWlkVnFmYlZYcjV3U0gzZ0ZnMXB3d1h0enZqV2Z0cVpxUlZ2VGhWUVltRXgrRTdUdFNmc1JBbXlKaVlsWUxCYk01amhNcGhpZlNlb0ZONTJ1eVJ6MVJVbUZXcTFHQk5HTE5HbHRraHR3Ymlzb2VFVUk4U1Y0Y0NzQ2xjclhuS3hDSld3VVY3dkNNeUVzWWZtVmlLSW9YejMvL0tMbUFZT0FiMDJTSkNldCs5WjhKcWhHTkdsclRXVlQzcHkxYUV5bUdNeG1iOEFnTVRIeDlJRU5vRjI3ZGlRa0pQaHkyNHdZREZHQkluay9BNGcva0FBS2lwQlFhOVFCSWtwSkNqQmd1c2RkTjdUaStQSGpMNENlUHAxaVdiVzlrS00yT3g5OC9DVS9DSW1HUm5kNE5vUWxMTDhTK2ZiYmIxZlBtREhEMWdxbytUVTJQNmdGcDNpMFdIR3FpYm5EWCtRZTVWdmhQWmFFaEFUYXRUdDFPV1FMWUl1SmlTRXBLUW16T2Q2WDI5WmtrZ2FEbXl4Qm5jTWpkSG85R3BXcTFhUmRKTWtWRjJmZTRISzVYcno3eGlGMDV3aVRYdC9BcDBvaUEySlY2SFZoVHE2d2hPWFhJRGFiN1kydVhTLzlKc2dFYld5bXJiV2FqTnNVTU5DSTVxQVdXdVR1SlpCTVNrb2lKaWJtbFAxcEZWbmF0MjlQZFhVMVZxdVYrdnA2WHlGOEkwNm5FNmZUaWFPaG5pTzJSb3dtRTJxUGs4WkdCVVZSRUVJSVJWRVVFQjRoa0NTUWtTVFZKNTk4OHZKVlYxM1ZhOXBOdjhrR2NOZVZjL1cyYVA0VUgxNnBLaXhoK1JXWW9MdGZmZlcxemEzNDFZSkJ6WVUzMTlValNaTFNQQm0zeWE4V1dqWmxNRVNIRkx5M2I5Lyt0UHJVS3JCcE5CcVNrNU9wcmEzRlpxdkRicmZqY0RpOGxFYU9CcjQrVm9jcU1ncEp1R2h3SzhJdEpFbXRVZ2toRkR3ZThOSWFTWW9BTndMWDFWY1BMTnZ6NWE1RlgzcWlGaWRwRmQ3NStIT3ljbnZUTVl4cllRbkxMMTYrK2VhYjFRODg4SUQxSkNab2kyUmMzNnBUTGRJN3ZINjFsbEhReE1RRWtwT1QwV2hPRHpST3lLZHFzVmlhSmU1RysycEpJNG1QaThPa2p3Q1ZDa21sUXBLOXFDdkxLaUZKQ0NSSlNKS3ZZbC9DSlVtU00vT3k3RTJsSlNYUHJpODZUTS9lZlhsNmNPZndqQWhMV0g3aFVsdGJ1eVFqbzl1QmsyaHJmbUR6KzlaOEFZTUFxSVV3NG5xam9QNWEwT2lRUk56bWhlNW5yTEg1SlNVbEpZalN5TzZqTkdva1BWbnhjYmJacUsrMzA5RFFJQm9iR3lXUHg0TmFyY2JqOFFpZkJCWlpsaVRKbVZoVCt0S00zLysrbXl6TGc4SlRJaXhoK1dXTDIrM2U4dWlqc3o5dUJtb09tbkxXVGhRRkRUWkJoWmUxSTVnOFV1OHpRVTArRTlSQ1NrcktHZlh0cEF6NFVWRlJKQ2NuazVpWTRFdmNqY0ZnQ0M2VWJ3b20rR3U3Vkw1QWduK3BQb0lxRXU2NjYrN2podzRkZWdFb0QwK0xzSVRsRnkwL2Z2cnBwKzg5Kyt5ekRhMllvSTVtSm1pZ3dpQTBZS0FXd1pxYXY4RGRZSWdPTEtQbk4wR2JzM2Y4SkkwTnZJR0UydHJhZ05ZVzhMVTV2ZFRoYnJjYnQ5dU54K05CVVpxQ0NFSUlmT0FtQ1NIY2dDUkprcHlhMnZGenE3VjJRWFIwOU56dzNBaExXSDZaY3ZqdzRXVjkrL1lyODRGWE1LQTFOMEhkUVJVR29tbFJsdEJnZ2IvQVBTcks0RXZ0YUVOOHZEZTE0M1FEQm1jRWJBQWRPblR3UlVodE5EUTAwTmpvd09sMDRuSTVnNEROamNmakVSNlBSd29HT0ovV0p2bE1VcGNrU1Nxak1lYmZqWTJPTksxV2UxZDRpb1FsTEw4c3NkbHNieVFudDk5RmFHcEhjeFBVUldqWlZBc1R0SWxqTGJqQVBaU09xRU9IRG1mVng5TmFqQzA2T3ByMjdkc0gwUnNGTSs3NnF4TDh4SlNhVTVta1RxRHh3dy96bHlpS1VoQ2VKbUVKeXk5SDNHNzNSNHNXTFNxZzlRaG9RR003bVFucUJ6V3ROcUpaZFlHQm1CaFRnSTZvZmZ2MlJFZEhuMVUvVHp0RHRuMzc5bGl0M2tWZVFyVTJ2MG5xd2VQeDRQRW9KekpKRVVKSVB0WFVPV3pZc1BMdnZ5OSt2a09IMUE2U1JLZndsQWxMV0g3ZUlvUW8zckZqeDlvLy9lbWh1bFpNVUFjdEF3YWVFNXVnWGsxTnA0djBzWGI0T2RhOEJlN0p5Y2xuWllLZWtjYm1sNDRkTzlLdW5UY0ZKRkt2QjAwaytxaW9JR0xLQ0xRYURaSXNDMW5sWDBrK2hHMDNFRWlRSk1uWnNXUGF6cHFhNDgvUmN2bk1pMGFzcFh0WXYyM1B1Ym5POW4wWHBNL2IxcStnelBwemY2NndmdHVGYXMxT3dmb3RPSDhoYzZXNWZMWnBOUWVyVC9rS3VvdS8vdS95ZnYzNmx6WFQxbG96UWYySnVMN3FBcThKcXRINHRiVlF2NXEvWktwTm0xamk0K05wMXk2SmpoMDcvcVI3T2lOZzArdjFkR2h2NXExUENubjk2ekkrS1NsbjAzZVZOS2k5TnJJa1BKUlUxM0hNN3NScWR3aTdTMEZXcVlVc1MwS1NVQlRoWFl0VUNPRVdBcGNrU1kyeHNYSHZOVFEwUFBWTEFhSW5KbzlrVzltNUkxeXFMTXpubVpWYmZ2SjF5ajlieFNNTDExNlFlMXJ3ME8vWjhUT1BhMWNXd2pNclczbE9PK0RlZWVlMnJkMHI1L0Zrd1VHMHY1QzUwbHhlbm5NLzI0cHRKejNtMkxIcUY5Tjc5TjBUcEtrNWdqZEpraHFEUWEzSkJKV0VTcVVXWGxEVGloUFZnWHJ6MWN5MGJadEVodzRkUWxhY091L0FCdEMyWFhzbS9tNE04MzgvZ2dkdUdFUy85a2IyMXppSmlvckNFQjNEcFIzYWtaNlVRTHVFTmtoQ3dZV01MS3VFSW9RQVNjaXl2MUJlK0JrQUduTnpjNWU0WEs3WGZnSCtCUXEzZlVoWmpUZG9FaXJlQ2F3NGJCUVhsK0lNbXMvMm1pcUtpMHV3dTBNbnVhSW9wQTZaek1iNWsxdTlsc05XUlVsWjFabjEwVzZscExTaUJkZWR3MVpEU1hFeE5vZjdETzdKdTM1b2NVa3BkbWZMRjdTbXNveUs2cFl2aEsycXZOVitLMDQ3SmNYRlZGbnQ1M1djRkFWU2g4REcrUzEvdDVYRDFsM2dkbnYvRHRudmdKSVNzTGVpZWlsNDdZcVM0dWI3N1R6NXhCdE1talQybHpWWEZDZGxKU1hZV2huWDV1Tmt0OXYvM2FOSGorQjh0UlltS0MxVE8zeHJHS2hFTU1kYTgyQ0Jueml5S1YrdFBXM2J0djNKYytBc3F0QWp1SzV2VDc3NlNzWnVieURGa3NDbnRkVVlEQkc0WEc0a1djYUdnc2ZqUWExUkM2RlNTMm9aSEkxT1pGa1NFaUtRQWlLOEtTQlNZZUhYY2tGQndZdURCZzFLVUtsVTEvMGNRYTF3M1ROTWUrWmRDZy9hMlgzWGRTd3hxQmsyOVo5TUhaWUZ3S3ZUYjJSMVRVY3FQOXNNZWgzcXpKdlp0bVFHVDl3N2lHVzdQYVFsNk5penI1elpyNzdOMkw3cGdJTlo0NGFUWC9nTnRxejcyTE5zUnFDdFJWTi93NG9EY2FqZHg2azZXRWpLNk1kWk8yLzhLZnRZWGJpR0FZTStRRWMxRmZvOEN0WS9UNElXVnM0Wnk2elYzOU01MWN6QndpTEdQL0VHRDQzS09lVTlyVnZ3SUZPZTJrUkdWbWZLRHhRemQrMFhERW4zNmlYTFpvOW5zZlVJKzNidVl1ckwvMkg2c0V4d1Z6TnIvTTJzTEZKSTBkdXBOdlJtM2VwL1lkRkJ4ZTQxREI3MUoxSXlzN0JWSGlSNy9OTThOWEhnZVJtcldlTWd2eEJzV2JCbldkUHZENDJCYlVWUVVnRkRoZ0N4c0hJbHhBSTdWc0w0R1pDZUNRZUtZTzV5R0pYalBTOS9BY3paQnJxRFlOVkNqUW1LZkF0Tk9vcldVMkRQWVVtYTdoY3pWNVNhZzR3Yy9Cc3FERjJSN1EwNEtwM2srdlkxSDZlZXQvOGpQODMxelllSER4OXVMVmV0TlJOVUNhNEY5YThKcXRGb1JkTXFVNUdCT3RDWUdCT3hzWEVrSmlhU25OeWVUcDNPa2J0ZENPV3N0dVBIcS9sNDh3ZjB2MlU4MTkzL1orNjc3ejVHai80dDExNTdMVmRjY1FXZEwwbEROc1FSYjJsTGJHd2JTVktwSkpWV0swdXlySkprV1FOU0JKSVVKVW1TU1pLa1JLRER2bjE3aHl1SzUxTnZ3Y0w1Mlk0Y3FSQ0hEaDA2Ni9OdjZ4RWwzdHJ2YlBIN0szKzhYc1QzR2lWK3JIY0xJUlRSMEdnWFFpaWl0clltY016M0c1NFFIYTZkR25MZS9yZG1pVzYzelEzNTdma0hyeEdYM3paWGVJUWlYSWNMUkx1NEs4UVBucFAzYS85YnM0U21YVDl4cUVFUlFqakVIMy9UVWZ6cDljOWE5S0Z1L3lvUjMrVm1VWCtLZTZyOWFwV0lhM2VGMkgvTTRmMnRzVVljci9QZTJ5M2RWT0tQTDI0WFFpaGk3NzluaWs0M3pCQkNLR0x6YzVORWo1c2ZFWTFDRVVLNHhkTjNYeW4rOE9JMjMvTzVUdHp4ajdXQjZ6YzJPazcrckJ2M2lUNXRFMFZpWXVoMjlmM3pUMnVjOXIrbGlHNjN0Zno5MjNjVTBlMlcwTjg4UnhYUktWRVJueHoyL3Yzang0cG8zMDhSTHQvK0Q1OVRSR1E3UmV3OTZ2MjdvYUhwM0M5ZW15RzYvKzZ4WDlSY2VmZnhzYUxmZmQ3bjJIaGtoK2dVcVJLdmZGN2RZcHpjYnRmTzk5NWIrd0R3VzJBNE1Cam9DMlFEWFlFT2tpUWwrdDdoS0ZtV0kxUXFsVWF0VnFzaUlpSmtnOEVneGNiR1NtM2J0aVV0clNPWm1kMjQ0b29ydVBiYWF4azkrcmZjZDk5OS9PMXZmK09WVjE3bTQ0KzNjdng0OVZualVmUHRySG1EVE1Zb3R1d3RKckpiSDRiRmV5Z3ZLL05GU04wME50Unp5T3JDa2hpSHh0MklRM2lFSk1tU0pLdUUxL3lXRkNGNWtMeHFxd1RJa2lSSkdSbmR2aTRyTzdRd0tTa3BWcEtrOUY5YUlHRHd5RnV4NkwzV3ZVN3IvWUpYRkc1aThqT3ZjS0NzR3NWUlJhV2NkMXJYNnAyWGl3eklTY21ZbmRWWW5ZRHU1T2VrNVY1TnNnNUFTLytCZVN6Y3VSdkc1bUFyM2NtTWVmOWk5OEVLRkxlTm1tb2pWdUJrWG94ZE93cElIWFF6WFdOOW5pT3RFWk8yU2RIdm5lZFZaNUpTVXJCVmZRN0ExcTJiMGRwem1EWGpZUUJLUyt4VTZBcUJQTEw3OW1QRzVEOXhiOFZuNVBYdHo2aGhnempwbWwvYXJtd3YvL0dDakZ2SmRpaFh3NXI1c05acnBXSGQ0eTJQOFJmeTlCd0tHV2J2LzNWQjQxQlpmUlNqTWZrWE5WZDI3ZnljL2lPbmV4OXpRZzU5TTR5QmZVM2o5T2wzU1cyVDNucDArdjFIbWdVS2dpT2dKL0NyeWFKcEJYZC9zS0FwQW1vd0dIeHJnclloSWNGYkI1cWFtb3JKWkRwblkzcVd3T1poeFhzYjJCT2Z3eFBYR1BqK215S2NQbG9qaDcyT1Q0N1cwUzQ1bVdqRlFYMjkxejhncTFSSXNwb0lMY0xqY2VOVUVFaVNnaTl4MXc5d3ljbnRQNjZxT3ZwY1hGemNUQ0QrbHdSc09xT2htYk9wa0ZHai9zcGo2ejlnV0hZSzlsMUxzVXo0OFBRR1JnNGFHdm5NSGRDSzM0T3FWREZoK0cwTVcvUWg4d2Rub3E3Y2dpWHpyejg1REMwSDk4L25yRktBck54ckdUSFk5MDBhY1NQR2hGUUFza2JNWUYvT2NQSTNGYkIwM24wczNmSkg4cCs1OThRTk9BOHlJdSszbERUcmFOZGhEN0Rpc1FubmZPeU15VEJ5Uk5QZkk4ZEFRdkIrWSt2bm1ZM1IyT3pXWDlaY2tlWFczSFRCNDFTMTdQVi92L0hnOVB1L0o3U3czZEdLWHkxQTlSMjAyTEh3cnduYU1nSnE4QVVMdlB4cWJkdDZrM0NUazVQUDZYaWVCYkFKM3Yvd1EvNWRaMmJwNzNwaGtBV2VoZ1ljRGdjT1d3M3JkaHdqT1MyZFJCeFlyYlY0ekZOaUFBQWdBRWxFUVZTQlVxdW95QWhSNXhTU1RxMUc4YmdCU1pFbENRRjRDeFM4L2pZaGhHUTJ4Nit2cVRsdWlJbUorZXVwOVpRTEt3YWpucXJLYXVpYWNPcURxOHNvVmFmUXQyY0tNckIremJ1NDBaKzN2aFh2MkV5Wll6YkpPaWZiQ3JhVE0vWVA0SzZrdE5wSS83eE0xTUNPOWV1cFZFNTlUOW01QXltWjh3K0txcWQ0dFRhM2xScUhBWlBoeFBHbUFmMnY1cUZ0eFdUUEd1dlZ4aFE3VlRYZXhxeFdLN0hKR1l5ZWtFRnVrcHU4SjR0T2ZqUGFWQmF2ZlkvbXZtMnQ0YWQ5MWZWR3NGWjZ2ZHoreVorYUI0WlNrRk9odDQ5QW9xcnE5Q1plMTU0NWxEK3pBU2UwMEVCL3JuT2xkMDR2NW0zYkNyZG00YXpjeWJZaUt3TjgrNnhXcTZOQmlubmx3VWYrM3o2YTBqb2NRRU1JcUxWTTdmQnJhOEg4YXFLMXlnTC9LbE50MjFwSVNlbEE1ODdubnVubnpJR3Q0UWlQRjN5SFZSZkJ3TG43QVZCRlczaXFkd3FGaFY5eVNOR2lQbktNYit4MXVCdnN0TkZIWXRicGlEWEZVSC9rbUtodjlFakNJNFJLclpaay9NU1VJZldra2hCQ05wbmF2R1d6MVVWRlJVVTk4bk1DdGdtVC9zRDRDVmV4MkdSZ3pDTXY4dERJbmljK09HVUFVL0llcFcvdU5hUVpGTXdwOFlFSFhyRmpCYU9tL3d0N1ZRa2xWVEo5Kzc1UDVyQUhXVFJqMUZuM3pXTDJNSGJRMWFpcHB0STRsSUxSMmFCVm1ENmhNOE56KzlBeldZK2MxQjZMZk9wN01tYU40TlVaSHpFMHB3Y1pXWjJwTEMzbHNaV2ZNamo5eEFia2dJbHpHUHJaYjhuc2VTVVpLU1lPSGlobThvTDN1WGVRZ2JWUGpPZXg5VWZKU0kxbFgyRVJqeXg4KzVSVE15SHB6TC9pRlR0ZzFIU3dWMEZKRmZUdEM1bkRZSkhQMzU2VUM0T0FyQ3d3Sk1IR2pSQnJodVh6WVZ5ZU4zaGdMUWR0RHVRdk9vMFBYYytoNUxrZlpXdVprMEhKMmwvRVhCbHk3eXhlSG5ROXVRTS9RTzEwWWJRMHFhUExIdjNkaS9jL3MyRlhNMUJ6QklHYnR4YTBsV0NCZjZGalh3UlV0QllCallreEJkWXRhTjgraGZUMFRraVNkTTdmVTBtSWM1Tm5jK1RJRWZidTNjdDMzMzNIb1VObEhEbFN3YkZqeHpoK3ZJYTZ1anJxNjcxRjlQWDFEVGhkVHNudExhQ1hQQjZQSklTUWZac2EwQUJhSVlRT2lMVGI2KytKakl6OHc3bTY0Y3JLU3B4T0Y4bko3UzRZR0ZhVmxlRFdtN0hFR3M1N1cyNjdsZklhQjhsSkNTRzVQRFdWWmRnd2tKeHdaaHFQMjJHanZMSWFzeVVadmZiMHNvUHNOWlZVV2QxWWtwTFFCbjA2SGJZcXlxdHNXSkpTVHZ0YUYxSVVONVNWZ2RFTXBqTVlxbTFMcGpLL05JK1ZjMGIvZ3VhS20vTFNja3hCNDNyOCtQRVhZbVBqdGpRelBSc0F1KzlmcjlZbVNVN0ptMlFmQURaZlpZRS9UMDAwQVpxQjZHaHYvV2RjWEJ5SmlSYmF0MCttVTZkT2RPdlc3WlNMc3B5dHFHYlBmdlRjbUdnR0E1SWswZGpvTFk1M3VmeUY4UXFLNHZHWFdQbERzVDVRRlUyL0JkdTZYczBOZ0srKyttclB5SkVqVWF2VnZjOUZQK3ZyNi9GNEZJd25jcHFjQjlFYlRSZ2l0UmVrTFZrVFFVeDBGTTIvZ2Jvb0k4YW9NN2ZxWmJXV21KZ1lOS3JULzZwcWRGSEV4RVNqYW9aZGFxMmVOaWJUR1YzclFvb2tRNHdKZEdjNFZDbFp2V2s4WEViWEhsMVIvV0xtaWt4MDBMalcxdGErUEdqUXRadC8vUEZIVnl2QTVrM0M5Zm5WSkVseU5UTS9BNkRtTnovOUN4ejdBd1Z0MnJUeHJWblFObUIrbm11LzJqa0lIclF1cWFtcE9Cd09uRTR2clpIYjdRcFFHbms4aWcva3ZHRFdCR3BDZUpNbEZjVlhWNG9Rd3VWM3VxMWI5NzcwK09Qemxqenl5TVBxaUlpSWU3aG9wWWJsQzVkUjNZcUNiY25zeTZnQlBRbkwvMGpVc1l3ZE4rSVhPMWZxNnVwZWUrQ0JCelovOGNVWHpmUFVta0ROR3dIMWEyb2VmTXdkL2dobzh3UmNid1RVbjZzV3VzSlVXbHBIVWxOVHorK1FuT3NMZHVuU3hjZlo1Z3lrZi9nTDVQMmFtMjhUUWdpZjFrWkFsVk1VNFdjQ2tmdyt0emx6NXRURXg1dVgzSDMzM1hKRVJNVGRGK2ZiWStMV1NaUERJQktXY3pwWDZ1cnFYdi9yWDJjVnZQNzZzb1lnVGEwaGVQT0RHa0dWQmJJc3RSWUJEZmpWdklTUmhxQWEwSVJBV2tlWExsM08vN2Ztbkt2emtrU1hMbDFvYkd6MDhiVzUvRnh0QWMydEtaRk9CSUdiUUFpaCtJaEFRa3hVU1pKNDRJRXB4N1JhN1pJNzdyaURpeGZjd2hLV2N5ZDFkWFd2UC9iWVkvblBQdnRzUGFHQmdvQS96UWRxSWZscVhoTlViaEVCOVMvRTBwd3cwcHVyMXBiVTFBNTA2ZExsdkFRTHpqdXdBVVJHUnRLNWMrY2dXaU92MXRia2EvT2FwRDZ6MUE5dXdxZWwrU09sd2VBbVNSTFNQZmZjZTdTeHNYSHgzWGZmcmVoMHVudkNVek1zWVRsclVIdnRyMytkVlhBU1VHdVFwTkJWcG9LWHpndU9nRFpwYWswSnVERXh4b0JmelorcjFybHpaeUlqSXkvSS9aMno0RUZyNEtiVDZRTGc1dkg0d1MzQTFlYlgydnliRDhiRmlYUkJBYkJodzBhWEpFbDcrdlRKZFdzMG1qTU9LUHd2Z2dkaENjdlBTV3ByYTErZVBIbHl3ZUxGTDlwUHBLblJTbVZCRTZqSndyL0FjV2dFTktyRmVnVituOXFsbDE2SzJXeStZUGQ0RmpGM0Q1OFc3bVhPNm56K3VMS0FWNzc4SWNCRDFWaGZ3L0tQUG1YR3Z6ZnhsM2UzVTZ4RWNja2xsOUNoUXdvSjVqZ2FGSW5EOVkzVUNLMXZkWGw5OE9yeVFxUFJvRktwaFQrRDJSOTFvWW5EclJGd1BQYllZN1UzM3p6cUJidmQvdlNGbmhRSDkreWsybkd1cnVaazM2N2QyRTQ3NDZhY2tUbS80Y0JaRUg5Wks0b3BPZ1AyaDIydlBzSzlUNjc1MmIra0kzT2dxSlhuc1c4WFovQmNUMGZjekx0ck5GdEs3RC9wdVo1S0trdUxLS2s4UzdJNzl3R0daTjlNMlVrT09YNzgrQXZYWERNb1A4aW4xa0pUb3lVTlVYQmh1NCtHS05TbkZobXA5eVhnZXFzSzR1UE5XQ3h0NmRBaGhVc3V1ZVM4cFhXY08yQlQ2bGl6cTV3dXFSMjRJYU1kbTdma00ydHJDUUEvRkpmd2RiM00xZDA3a3gwcmVPQ0ZWUncydENVOVBaMW9uWWI5RFJMMUhzRVJSWVBSYU1SZ2FFWlM2UU0zdGRvUGJsNXl5bVlFbFkyQVk4T0dEZlZSVVlhWGJEYmI0NzZCdVNBeWUrelZGSlNjSzE3TVNpWU92WWtpKytrRFlXbEpNYzZ6ZUdFL1cvVTQweGVzTyszamJUVkhxYWl5L2V5QmJmeFVTR2hsRms4Y3loazgxOU1ZcVIxTFdWR1JSdjlVL1U5NnJxZVN0ZlAvd0x6VmhXZjlvU3dwTGoxUnVaemo2TkdqejhYR3htMEppbjZlRHFoNUpFbnkrSU1GTGMzUFVMSklmMVdCbjRJb1BUMzlKekhoWGpnZm0yemk4ZkhYQnY1c1l6L0tmYnQvZ1A2cGRPN2VrOGU3Ky9la3NtdnZmclorWDgxRDJaMXd1UVlTazlDTzl6ZXVwNkRjZ2NraytjelNRTm9IUHI5YXdOZm1kdU1ySmNVVDdIUHpwWVFBRUIxdFhIYjhlTFhkWkRKTjRUeldscGJ1WE1maU5aOVNXT0hFL3N5ajdEYkw1STY0bTJFNTNqTHBmVnRYczJUNSsxamxOb3k1ZHlxRHNydzVPb3E5Z2tYUHpHZEgwV0Zpa3pzeTd0NXBaS2NZMloyL2pGVmJ2cURFVnNPaU9YL0ZvcFVaT3U0UDVIVStkUUx0N3Z5bHpGKzFtWVNNcTVnK2JUd21OYml0WlN4ZTlESzdpNzVIMGNjeGVzSVVCbWVuZ0xPY3ArWSt6ODRkdXpoZ3JXVG16Ty9RSmZkaTVyMGpBaTlEL3NyRnJOcjRCUmphTW1yQ0pBYjE5UFhkV2MyU3VZK3c3ZUF4aGszNEk2UDYra3BmM0ZaV0xKelBwcDNma3RENWNxWk9teFFvNk42M2JUV0xscjZQRFMwWkEyNWkycTJET1IrcHVQdTJ3dkpOM2huY08rVFp3S290VUdLRFJYUEFvb1doNHlEUDEvWHQ2MkRaR25BYllPSTB5UEZYdVR2Z21RVXdaREFzWGdCMkEweWZCZW0rNFhoMThRc01IL3RDMDcyYzRybmFxdzZ3WVA0aTlwVFVram5vdDB3ZE55UlFjclZqM1dKZVhmMWZuRm9qZWNOdjQ2Nmh2VkdxOWpIbi83ZDM3dUZSbEhmNy84enNJWnZOWnJNc0lRa2hpVEZnaUNIRWlCZ1JJeUlpSWxKRVJLU0lpSlFpV3FyV29yVktLUzh2UHp6VUlxVVVyVkk4SVo0UUVSRXBJcVVVRVJBUk1VYU1NY1FRWWdnaGhHV3oyZXpPenZQN1kvWXd1em1BZUtLK1B0YzExNTVuWm1lZXVlZitudTd2d2hmWXRiV0N1cksvTTZ2bW42UVZYc2FNY1lOUHdOSmNMRi80Q0J0THYyTEkySXVqa2F5aGdvVUxGMU5XZmF3aFBqbjlxU2NlZldBMzBiV2ZMVEhtWjd1Z3BtdHdIQVZxa1VCQkFvbUowYUNtVlJYMCt2WmtpTDV6WUlzWm45WTNrSnQrVnRzUC9NZXBPS0l5S1RVSmdMeThQQlJGb1Z0S04rSmJXa2hPUnVkckN5MWg4QXFERzBBZzBDbTRpUzVkbktzT0hhcHI3dGF0MjIzZmxTcUlQU09QNGNOdGJIL3hFWXBLTG1OSXRwbTBETTFQVjc1aEVTUHVmSTBGaS82WFpGOGxNOFpjeGRKdDcxT2NZbWJwZlRleXpuY0Y4MmFPbzc1eUR3ME5ic2l5azk2ckg4TXRGdFlzZVpIaUlWZVFiNE9zNUpOSW9GV3FXUFp5T1EvZS9rdFd6TCtEeVhNc3JKNDNIbDk5SlkyV2JDYmZOZ3BmL1c1dUczMFpTM2QreXNBVU80T0dYb0hzMmsxbGJSK0dENzhDMlJhcFhYeHg5ZzNNMjJabndaeGJzWHBxS04xWEhnYTJMUzgveDhnbER6RWhleHNUeHQ1TWNmVzdaSmtWSHB4eUJadk5WekQ3empzb1hma29JeVkzc3V2bDJWQzNsUkhqLzRjRnovNmRiTHVQYlhzMHdjdk9nRzNicXNmWnNQZFF6TTJ6SzdmZE40T1VUbVpuU2pZTUh3cFRSOFBZZXlFdCtOMzBYakRjQW11V1FQRVFnc2MxYUY0dmc2bFB3TUpIZ0ZvWVB3dzI3WUVzU3hEWTVzRzY3VEIxTXRBSWpTN0FBZERBK3ZXVjNEZXZVSGZsZEhKY1BkV01IWHdGK1ZNZjR2WlJhU3liK3h0bWVpd3NtajZZeHQwckdEM3pGWll2ZXdpSDJzRHVhczJNbGEwcERCMStCZDd5RGNoWkZ6QjhlQkhXNUJNM0NWNDU3eGNzM0p2Qm92dCt5YnBGOTFLaG8ydHpwdjZNK25ObmZYSDk5YmJuUjQ2OEpsVDdHWnVuRmxwYU93SzFVRlZCWithbkJtcGRTVXRMSlRNemsxNjllcEtYbC9lRE1mbHZCR3pWK3ovaHNVOENQRG5qN0ZoN2xXZldiQ1R1N0FGYzJTTXUvRzZmUG4xSVQwOG5vYm1aMUZRNkNpSUV2eTBFaEtPbEhZSWJhSUNZbXBxMmZ2LysvYTZzck14YlpGaysvOXMrVUk2MFhwU2s5U0xOWmlTLy95Qks4aUtIYnVuQ3Z6QngxcXVNS01rRCtqTjE2Rk9zV0x1TDRpa0RhV3hvd0pxVlFrNXVBVVdGUmJvTE01K1ViRHQyczRWK0pTWDBQOWtLR3RuS3pMbHpLTTQyVWpqM3Q2U01lZzdYdlBIWWV3MWk1cVE4ZHU3WmpWdE5JVC9kemM3ZHRRd2NrVVgva2hLYTlxU1RiTTZscEtSRUI1TFZMRnk4bFFWN3ZtUllsaGtvUnZjcEJTTnZaTnFvSVVBeEEyZjltYjIxa0dYWnlzSjFDcHNyN3lYYkRQM3Urd05QOVBvWnBaN1o1THNiYUZLc3BHUmswUzgzblg3OVQveDNMQTRuYVdsdGJpTVlUMER6a3JPZ0pBdHN4cmFBbDVJTmRqUDBLeUhxdUM1NkJPNTZBZ1lIOTJ2MDA3QjZLOXcrTlBnRkQ5eTdDSWFreDJ5c3FaSktWd2JaK2lKYjJkYmhjUzFiK3l4bEdkZXdjdm9vWkdEdXZiZVNmOCtMTEpvK0dHOURJNnJGUmxwR05nVlovUWdmSW1zeUpTVWw3RnZ0cEtsWFVmUjU2dGhod1BJVkc1bTU2aUFEQzZ3VXo3MkhKYXYvRVBHbkhXcjhvTFhWL2NySWtUZnVwMjN0cDY1RWlsYUpqa0hOWURBSWs4bUkyV3pTZ1Zwc1VYdW9YQ296WEM3MVE0NVRCcllqWDFWeHl5c2ZNZmVtMGVRbTZHZWhZTU9tamJ4NlBKbmxOeFpHM2EwbFNTSTdPNXZFNHk0eU05Q1pvbXFVT1JwYWo4YmdvRFBtQmhJYWVSUGl6RFBQM1BiaGg3dWIrdmJ0TzlWZ01Bei92ZzVpZFhVdFpZdC94NjVuUS8vV3d0Q2gydlBwYy8vT2ZiUCtsMzY1OTJQSktHTFJzcWNZa3ZjTm9rTnlDdWxCZW1KSnk4RGFWRThqMExUMWFZWk9mcFRoWTY0bXhXNm13YTNnOVowZ3l1Q3VwVVpOSXllci9SS2VaSWN6UEUzTVpnVkZBVzlkRFkzZUd1NGNkMDNrZTBYbm9IckIyR3Nrejg3YXpheEpWMUJlNDJYNDFQdDVmTTdrVG5YWGJJNFUwdEppdmlIYnY1TThwT3BhV0RvTFZ1bUljVC85aGh5UW05NnVZeGxGL2pyYitSSlg2WGJHalA0MC9GNXgza1dvUVByUXlUdzRwb0twSXkrazJpVXorZDVIbVQvOVZLZHFFM1gxRmpLU05iK2ZNUzBOWjNBLy9YNy94b3NuM3I3bXhobTNIdEtabjNwUUN4ZTFTN1JSNm9nQk5STW1VM3NOV0VLeTNtMUI3ZnZJVmZ2V2dlMzRrWVA4WXZsV1pveS9ta3ZTb3AycDc3NzNILzd5dWN6VE4xK012WjNDT1lQUmdDT3JKejNQRktocUlJYXRoWUFzNUc4TG02UWRnVnNJRFVYSU5EMzMzSDZmckZyMTZwK3V1dXFxdzJheitjWnZQZG9peTZneFl2bFpXUmtVVGY4Yjk0NXFhd1U3Y29wWnN1SU5RR0g1cko4emE4Rnl0ajF4WnlSMkk2dHR0UGM3RDk3VVUxT3JVSlJqeEZ0WGc4ZVpRVEx3eExMSEdEUHJLUjZjM0Evd1Vibm16N0U3M21hL3NhV1RJZGRSV2UyalY5YkoxU2VhMHpKdzJuSjVldTFiWWZOUFA1MUd6WmpMcUJsemNkWHRabkRoNVd5ZU9wbGhuWlFFVnU3Wnd0cHRCMkpXazByeGlDSFl2NGx6VG03YjB5QXJIY1lzaHZFRlh6T1U1c2dteDFKSFRRUDBTdUdFeHpVci9ReFNCcVN5ZnVXOGRyWmhZOHJzaFV5WnZaRDYwbFVVRGZ3OVU2WU9wNWRSUDc5T05qamxJRDNGUzAyREI5S3NLSFYxTktyUTR2Rzg5TmpTZjd4OXh4MS9jSFVDYWw2ZFdhcVBmcllCdFVoaGU3eE9xY091NjFXUUdpeHN6NkZQbno2WVRLWWZQS2owOVlITmY1d1ovM2dUUzBadkdnL3U1N21EWUloM01LRW9pLzNsZTdqMXJjKzU0ZEwrclA5QWkreWNkY2FaREVoUFJQVTBzZUtqYWo2cGJ1S0lUMlZ2TnlmMnREUElVS045YkRwUUN6MFhJYXZUNzlkeTJiUkVYd0lSYkFzelFpR0VFR1BHWEhzd0x5OXZ3ZnZ2NzZ5MzJXeDM4QzBtSXVmbjkyTDVvZ1ZZUmhiUXEzQWcrVmxPcHQ3NUs0YmY5VXR5elA5RHJsTm01NmIxNUl5Nmg2SDVkbFkrL2lCa0R5UTN6Y3l1ZlZYMDZuK1QzbkFpUDBmaDhRVlBVTjgvZy93QlE4ZzVrWjlOOWJKZ3ppeFNiaC9GaXZsL1p0akUzMkVEc3JLemVYSHQ4K3dxa2lsYjl3VHJ5aFgwS2xlNXVYM1l2ZVFsWGh5UWpDTXRoK0VEQzhDWXhaMHpTcmhyeXEwc21QTXJyTjRhOWpYYW1EcXU0MTRFY2xvSmR3NzFNWG42SEdaTkh3V05OYXpkWHNYYzJiZmpLOS9Nb3ZYVkRDa3B3bE85bFFaekR0bk96di9POENtekdYNEt1cEc3dDBLakYxdysyTDRKR3F3d2NIQkVGVGcvQng1ZkFQWDlJWDhBNUNURDdUTmg2alN3emRlQ0Nsdld3K0Rib2Q4SkNYUWF3NGFtc0cxN09ZTkhSV3VIdFhkYzgwZE9JbWZ1cGR5MUlJOEpRL0twTDk5RHFUdU5lNmFNb0dycmFsYVYreGpjTDVmYTNidVFzN0pKMXMzT3ZGNW44K0NLZjdBcXcwMXlSaDZEK25YbU1yWXhjZUp3NXMrK242ejdmczZhUlk4b3h4WGx5VXR6ZS8vblVOc2VCWHBBODBxUzFDcUVhQ2Y1Vmg4b01JYVltb2lQRDVtZk5oMVQwMEF0MUt1Z1Q1OCtXQ3luaDN6aTEwL1FWZjBjOVJsSVRURGg5U3Q0L1FxdHNwbmlEQ2ZIbTF1dzJteVlSQ0Q4V1ZJWEp6bEpGa1NybXkzN0QyTkw2c0xaVGl0K0laR1htNHZUS0ZBVUJWV05sRnVwcWdpYm9qcXlSb2k5Q2RIaDNnbEprZ1FnR2hvYTFBY2VlS0RzdHR0dXJiSmFyVDBsU1hMQ04wL1FMUjV5RlVyZFBqNnRxQ0srUng5eTA1UG8ybk1BVnhZNVdmUHFxMngrdnd4clpsK0dYbndlaVhFeW5vWktOcXovSnhzMzd5U3JaREp6ZmoyYU9EbENFUzRaY1NVTjVYdjRmSDgxcWIzNms5bjFCQk5EVG1YVXNETjQvcG1WT00vOU9RL2RNNTQ0R2ZJdnVCUlJ0WU5YMy9nWENmM0dNWDEwRVQzN0ZKT1ZyR1Y2SitXY3g0QXNpZDBmZlVxZHg4ekY1Mm1PM1lKTFI1TnJxZU8xVjEvbjQyb1hGdys5Z3V4VTdkZzRNM3BUa0pNYTN0Yyt4UmVUSEM5VE1tb2Nscm9QV2JWcUhaOGVPRWEvUzRaeVRxOGVHQ1NGRDdmOWl3M3IvMG5aVnhKL1dQQW81L1ZJL0U0bTd0c3Z3MGNWMFBkQ2NCK0U2aG80ZDFBRTJDNFpBUTNsOFBsK1NPMEZtVjBoNjF3WTBCMVd2UW83UG9LMFBqRDRmTEFZSXJmNUFRTWhycDN0WlhmeE0rZnBYVXdiZTBuVSsrMGVWMU1TMTQ2N2lzL2ZYYy9hdHpaUjN4ckhrS0hET0NQVmpveVg3WnZmNXEzMTcvQmxTemNlL3NzRG5Ka1VPZWVaNTVad1Z0d3hQaXdyeDIxMGNuNStkcWZINGV5TGhtRS85QUV2clh1M01tZncxWSt0WC9uWSs4M0hqM2VrMEtGUDUvQUZBUzBxK1RZMitobHF2aElmcjVtZmlZbjJvQVNSSmhTcEJRcDZVVkJRZ00xbTQzUVozNW9lMjZtT1k4ZU9VVnBhU2tYRkZ4dzRjSUM2dWpxT0hHbUkwWEZyQ1JiV3QrTHorU1IvVU10TlZWVkpWZFdRbnBzQk1LRHB1Wm1FRUhGb2M5UlNWdlpKVVc1dTdoU0R3WERwRDZISDl0UDRNUXdQZDQ2K2tsRUwzMkpJdHZXMDJqTkZVZjY5ZmZ2Mk5SMDBNKzZnVDRId0MwRkFsdVdBUHZtMi9UeTFXRjIxVUVxSEZ2MHNLQ2dnS1NucHREb214aDk2QjVLU2t1alRwNC9POU5TYmxsRkVUVS9mSk5CNkoyaW1hZGpKSVVKK3Q2QlpxZ0pxZm42ZjNjOC8vM3p0bURIWFZBRTNuODZYVC9tdVRleXRhbXpuRXp2RHhnN2pwMEt3SDJwWVdiajYzOS83Vm4wTkZhelp2S2ZkejNLTGg1TGpORDcvK09PUGI3cjc3bnVPRTUzT0VXdCs2dHZrK1NWSkRrZ1NxcjVNcXIyS2dsQ2VXcXo1cVJlTFBOMUE3YlFBTmdDSHcwR2ZQdms2VUpOMGoxSVk0Q1JKQ2kxQ2tpUko4N2twUVVCVFVWVWg5UGx0SVo4YklHNjQ0WVphNEsrZmZiYXZ5bXBObUE1MFB4MHZuNHk4SXV3WjdVUXpaU08ybjlEbC85d3cyak1ZVkdLakhidnFLN2ZIdFR3eE1Uc2s0NjFQNTlDYm9PMzEvZ3dBQWEyeVIxYmJMMmpYZkdvaDh6TVUvZFNZV2dqVThyL1Z6bEkvT21BRDZOS2xTekQzSlFKbUdvaUZtSnNVZmgzTDNBQkpWU1VWVkNrRWFucm1CcWhCOWlaNjk4NWJ2V25UcHFydTNkTnVNaGdNUTA2M0UySzFPYkgraEdBL2pkRDl6R3doSlNiUlQxR1V6VHQyN0hpanBPVGlHanJ2enE2dkpHaXY4VXFvcVhHYmlvSkk4bTFIZ1lKOHVuVHBjdG9ldCs5TTNlTlVSbng4UEhhN1BhemZGZ29raExJNk9nZ2FkSll3RTdadFF3QUhpR2VlZWVhdzFXcmQwYTlmUDgrcEtJVDhOSDRhUDlRNGR1elkwdnZ1dS8vMVcyNjU1WWpPOUR4UnpXZFVNYnRPZWlnbW5jT2k2OUllS3oyazk2bjFPYTFCRFU2RDRFRUhKNDlQUGluaml5KytvS2JtQUhWMWh6aHk1QWhOVFUyNFhDNmFtNXZ4ZUR6dEJCVDhLRW9nRkZDSURTb1kwWUlLWm9KQkJTRHV3SUhxaTN2MDZERlprcVJ6Zjdwc2ZocW42MUJWZGM5bm4zMjJLaisvVDNtUXBjWDYwL1FtYUpUcGlTYmpIV0pxSXRMUTJFVEhQalc5K1JuTjFFNUhuOXEzeHRpYVhDNE91ZjNZTEdaa1BXY0tLTlEySHNNakROak0wUm02clMwdEhHeHFKaTR1RHBQY01kR3lXQ3c0SEk1d1Q5TG82Z1RDdnJpWTVHYXBJL0lXU2dIUm02YWgxNDgrK3VqQmdvS0NuVGs1T1g2ajBmaTlnNXVydXBSM1BxN25yS3lVay8rUnQ1NVZhM2JROCt3enYzSHprTk5wVk8zZHl2cDN0bERYWWlHblI5ZnZmd2RPOGJodVhmc2ljbG9COXJqdlpyZmNidmZ6VHo2NTlPV1JJMGNlcFAxNlQzMHFoMWZxdU9lbnJ1N1RIR1pxUXZGaHRqbXcyeEpJVEl3MFh3bEpENFZVT2dvS0NrNllKclYzeXpvQ1hYdVNhSlpBYmVURko1OWg2L3U3cVBmWk9DdnorOU5qKy9vK050WE5yLyt5a3QxK002bHhBV3I5OFR3NjZTb3VUSW1uNXZPUHVlN0ZIVGdkZGp5dTQzVHYxWmUvWDFkTW9neFByVnJGa3JMalpEcmlPSERVeXkxalJqQzFUOGNYYzJKaUluMzc5a1dXWldUWkVIeU1MSktrZjR3RUZDUkp3dS8zaTJDRmdoQkNvS3BxVkNBaHFQR21DazA2SkhEZGRlTnFnTC9WMUJ6WW01NmVmcE1rU2Q5cVo1VDFTMmRSa1Q2ZUdTUGFwcnpYNzkzSXdnMUdScFFVblB3S1BWWE1mM0FwZzhjTXdmbGZCRng3MWl4a1ZXTUJjeWNQYmZOWjNiWW5HRFRsT2FaUC9obHlpdWM3MjRmYTdTOHpkN1BDNC9kTytKYU9xOHFLQlg5a1ZNRjRNcjdsa0xXcXFoOTkvdm5ucS9MeXp2NU14OUppTzdOM3hOSVVTWklDUXFpcUVBalphRklOQmdPUkVxbElubHJkb2E4d2RjMGlNVEV4cXFBOVVpYWxWUlFrSkNSMGZsK28zc3prV1Mrd1pjdUlrSWNRbTgzRzNnMVBzYmJDd29pQmVhY3hzTWttYmhrN21vSk1MUnF5YXQwYnpOMzRNVzlOS01icVRPZlYzOTVFdXRXRTZuTXphY0Z6dkZTZXg5UThPeGRlY0JFM2pFN0ZMRVBOdmc4WXRuSXIxL1FaUTJmMzVZU0VCQW9MQzlGT2lJekIwQjdJU1VGZ2t3bUtVNkpGVFAzQm9FSzRJVE5ocE5NWW15cEpVaWlvb0FLQmpJek16VTg5dGV5VGNlUEdqYlZhcmRQYXZYczIxVlB2VXNuS1NvczZlQ3JnZFRYUTRKYkpTbzljRnFxaVVGMzJBYVcrSVNpS2dpd2JrZVh3eENWNytBeldqelMydVZqY2pmWDR6RTdzc29jNnQweEdpajM4bVdMdng4N3R5OXRVQUNsS2RDbU9iRFJHdnFQNnFLbXV3WktjVHJMTkVyczVrRlhxcXFzd090Skp0bi83MmVPcXFsQlg5UW03YSt6dEhBZUZuZHZlbzkvWVc3aG41bmhrNDhsTlM4WHJvcnEya2JTTW1ENmxLcWlLbStyYUp0S3pNOEsxcXFxcTRxNnRZTXR1YjNBZnREbDB3dVBxZGRIZ2hqU25tWnJhSnRJejBzTGZVUlNWUlJzL2JWTzByeXBLVkNSVC8zOEJtdXFxY2N2Mk5uMWVRMm9vQi9lWFAvMjNmNnpZOHNEL20rc21FaURRbDBmcHpkRDJURTlWa2lSVlZUWHJSS2dpdXBteDJZd3N5OFJackpoa2lFK3c0WEE0dE1WdXcyS09JeTA5Zzl6Y3M0SVZCV1p0RHRVMmtwNlJSa05OTmJhMExLeTZVL1hzd2djWU12bC9JdEY3MmNISUNST3hOTDdMM3FvTzd0Rk45ZFM1RkxLeTBxT3VKOFhycHFhMkhrZEtPbzdZK1JvOFNvMjExZmdzenFnZXJLclBRM1Z0dzZsRVJlTW95SXh3N2l4bkV0NURmZ0NjWFNNd0pac1R5TEFiYWZGcEYxdGVqNGlDWm9yVGpxejRhVDJScGszUUxJMkFteUVHNUNLc0xjTGdwQkRBU1pJa2lkREZIZ1E0Z1M1aTJnNTdVMjYrZVVyZzVwdW5QRmxlL3RrSE9UazVFd3dHd3lXaGcvbjBmVDluenVwSzh0TmtLdHpwckY3M0V2bkpabFkvY2lPelZoN0FialFnZTZveEY5M0N1bVV6TVZkdllmaVUvNlZtMzI2YWJIZFRzY3BKOXVBYldUcHJFdUJsOXFSUmJOejdHZTdDV3lsZEhteFY3dDVEYnRiUEtDakpZL3ZlUmdiMFMyUGY3cjNNVy8weFk0b2NySHg0Qm8rdjJjRzJLaWZWTlc4VEp2YzFXeGcrL3Y2ZzRxYVAwcDI3V2JUOUtKUDYyYWd2MjhDWThiL0NuSkZQVTBVWlEyWSt4aVBUTk5ha2xMNklZL3h6VE1rOXh0WWFnYWRSWWNXdUhmVDdOcVA0M25JbWpmb1ZaZFdsVkxtM01YejNDMWh5TDJmdGtudkFWY3I0c2IraHZMeVVHblVYdzdjL1E5SG9PM2hreHNnVHNyOHhNLzVHZm1FT2UwdHJlZVRGTnhrM0lJdW03VXZKbWZBWVJTbFdMRmFGZmU1ME5teDhoVjcySnU0WmZ6MWI5MVZRVmFjeWZQaDc0RHlIbDE5K0JDZDBlRnduRCtoT1ZmSUFxbmZ2SkcvQWhiZ3FQNkpvMnQ5WmZOc1F5amNzNWJhSG4yZnY5dTBzMmRQQzJIRDFrNHU3eHYyTVhmVWF0Rlh2MjgzUVdhK3c3TTRScUs1S3BvMjlqdDBlSnc1ZlBSVDhuTFhMN2cxV1ROUnhjV3IvLzV3eHJPak5GNWF2cStxQXBlbk5VRjhRMEh4NmxoYTZhVXRhdUUzRW1ReWlWVkVKOWYwMEcrR3Iyb09vQmhQeVY0ZVFWTEFtSnRHMXE1TkRuL3lIMXlzOVpHZWs4UHd6eTdubDBaYzU3endMeSsrOWh2bWJtckc3UDhXWWNSNDI1U3ZxazY5azk4dHpncGRIUFMrK1hNYnNlMDgyRnVmbGlhY3h2RGdBQUNBQVNVUkJWSHR2NHBGMVZlU21tS2wwSmJOcS9TdmtPWTFzZmZvK0pqLzhOZ1c1NlZTWGxUTHd0cit3K003Z2ZHamFSWGJlcll3ZG5jcUdYVWRRWEkzTVcvTVIrYVdQTVB6aExSUTVCRTFOdGVnNlJwM0M0anZPclF2L3daSlBEcmY1ckhaL0tSZk9mNFVEM3RqZkJYaDY1VW9tdi9ueDE5cVdxZ2I0K09POXZQYmFheXhhOUJmdXUrLzMvUEtYditTNjY4WXliTmd3THJwb0lFVkZSZVRsOVNZN081dnUzYnVUbkp3c0pTVWxTUWtKVmlrdUxrNDJtVXdHZzhGZ2xHWFpKTXR5bkNSSlZrbVNFaVZKNmlKSlVncVFBZVFBWndORnZYcjFHdERZZU9UL0NhSFdOSCs2U25UdGZxSFkzNndJSVZUeHQxOWRLbjUyLzdOQ0NGVzg5cWNiUkxjTEpvdmpBVlVJZjRPNCt1eXU0cWtkRFVJSVZRaWhpaWQvZTRXNDViRXQ0ZGY2NWROWFpvcytOOHlQdkhkOHR6aXJ4Nlhpc0ZERXplY2xpWCs4M3loZWUrQUc4YXZITmtXK2MzaUw2TkhqTW5HNG5mVUpvWXAzSHZ1MU9QZnFlN1Q5RVc1eDgvazl4RU52bGdvaFZCRTRWaXJPeXp4YmZIQk0rNjcvNHhYQ1lPZ2lubnEzV3Z1OTN5TmEvTzJ2VndoVnZQLzhiSkdhbWhxemRCZFAvcnUydzkrRWxyZi8rZ3R4MWUrV3RmdlpHMys2U1Z6N3h4VW5YSWNRcWhDQk9uRnBqeTdpK1EvcWhSQ3ErT1NWMmFMYmhWTkZxMURGMGZlZUVJYjRzOFNPdzE0aGhDcisvTXVMeEUwUHJRMy85dlBYNW9zKzE4OXVmNzN0SE5lYkxrZ1ZyM3pxRTgvODdpcHg0NTlXaXlQdkxoVjlycHVyKzUxUFhOOG5RYnp5ZWZ2Nyt0V0hLMFh2M2lYaTQrRCtQSFgzVmVMSzN5NFRBYUVLSVR6aWpzdk9Fbjk1cDFxb2FxQ21ydTZqQlRMOEhCZ0xqQWF1QWk0SEJnRVhBRVhCdVprRFpFaVNsQktjdTRtU0pGbGxXWTZUWmRsa01CaU1KcFBKWUpRbEdja2dKZGtUSkFra1oycDNzck96U1hQRVliS25jdEZGQTdsODhQbVlKQ2k1ZWhMMzNmZDdIbnJvSVY1NzdUVSsvbmd2cnJLVmRPdDlMYzFDNWJuZlhjMnZIOXZNbDI4OFRPWlZkeUlDNVp4NzVpVWNDbDZmZ2YzcjZOTDlNZzYzYysyKy9kZGJ1T3EzeTZMZSsrTE5oOG04OEFhTytyWFhyLysvNi9uWi9Tc1FRdVg0c1NZQ29mVWUzVTdQcnVmeVJmQjc0dWhPempDWitNTUx1NExyOHRMU3F2RHBLM09KUC9NS0RyV3FDT0g2Qm5sc3FwKy92Zm9XU3E4THVDVS8ycUJzYnZ5S1cxLytnUHR2dUlhTUdJZnFlenYvdy9NTmRsNlk4dlgwbWlSSm9xQ2dBS1BSaU5Gb3dHQXdoaG1jTE9zZm8zeHhZYitiSkNraDlpWlVWUTByaHVqWVc2aS9RaURFM2lvcUtoU25zK3VxdDk1YTkzN1hROXRIT3dkY2VsTjJVQ2wyNkpETG1QL0VibUFpQU1XREJtR1RBZG5KNElFNTdOcGR5dVRpUWFkMGFHV2JIUnN5ZG9jZHU4Mk96V2JEN1RrNW1lN3FyYzh5ZlVrNTY3YThvZTJQcTR6TmV6ekltNTdqM2kwYTgvUXAxWlJXdU9uWFQ2UHc1cHhCakI4WWxPQXdXdWpNRU8wL1lRNTFFK2I4c002NjJyM3M5ZVF6T0ZpOW5qOWtLTWJKdjZaYWhXVEFuaitRL3NtYUFUcGswTVVzVzdzTEdIR0tHN05pc3huQmJzTmhjMkt6ZS9DZTVMbndOWlF5YnZ6OXpIL3hYeFFFOTJmVHhpMzRjck81Nzk3UEFDaDNxeHg1Zi91S0ZWKzFicGs0OGNhakoyQnBvUnBQbnlSSm9UU09nQzdxS2ZUNWFUN0ZMNHh4OFpqajRqRWJQS0xWRDlhdThiZ1ArZW5hb3p0MmV4SjJleUtaOXQwa2RVMmhSNDhNRWtRakx5NWRUSFdEQjFWeDA5Um9KOVNCd1c2elkzWFljZG84SU51dzRpYmtEZlUyTmVDeE96aFpvcjkxODcreEl2UGdyTjlySExleW5sTHZIbUE4YWxNRjk5NzFKM2FXVmVGVmZkUzdHMmh3UTA1bzVaWjhKbzN0RjN4aHhoTDBOV1QzdjRBVU00RHRWSUV0d0l0dnZNVi81RE41NnNyOEtHdXkxZDNBcmM5dTVOcXJyK0txck9oTTA0LzN2czhmdHJ2NHg5UVJkRDFGWlpPOHZEeEN6aytqMFlqQkVBSzZpSm1xK2VIQ3ZqZ1JmSlNDRVZHZGJ6WUs0RlFkd0lYQUxRQW9WMTQ1WWord0pQT3lYNzZyS01xMVJxUHhpcE54S24veklVZHM5Wk5ZbmFkMk4rT24vSm5GcS85Rkw0Y3h2QitxT1psaFk2NG1LN2lxMGFPdkpTYzNVdThvVzIyY3JGZHQ3K29GVEpyelhKdjM3MzM4bjR3ZmtNS1BiOGpoaDhqWk9BbFpJYVdKMjhmZlFNbnNweGhUbEJhMXZnRkRyMlprZ1ExRlVkNCs2NnhlRzZaT0hYZGdlUVRRT2dJMXZZOU4wWm1lWVg5eHFFK0lMQnVFMFNEd2VrSDF1a1ZEYXpNSWdiL0ZTMEtDalRpempNbHFvMHVYTGppZERxeEdpYTZwUGVoNVpsZm0vZklQWEw5c005T0hGV0NzMzB4YXdSOWkvbTM3YzlKaXQyUDJ1SEJCMjhDTDNON1ZvWkpWZERHalI0ZHUvbGN6MVpFQktOdzM2V29zazU1bnd4T0RNRk5OY2ZKRjBkUGZhc1BTRG5MSnN2RWJCQThRdlBuMjI3eDBQSmxuZjM0ZThicWRWanhOM1BIVWVnWU9HY2FOdmFQLzN1ZmxIL0diVFFkWjhvdVJuR0g5WmlyNFBYdjJ4R3cyQndIT2lNa1VEWER0TUxjZ3dFbFNSSG84VXFFUVltMjZ3RUpBeDk3Q2srakFPMDkrWURJOVdWcFRjK0NkdDkvWmVGMi8vbFBDU3IwN3QyekJyVTdHcGpheWVWc2xvNlpHWktSdFZodU5EZlhmN2ZYbnEyZjZ1QnNZK2VBTERNdlhIWHQ3QVVQeVBWUzduSXdicmtudXVCc2FNTnBPN1J6a0RadksydjdqMnN4Y1o4cUpRL2xXYXlJTkRWKzNvNU9QaFRPbll4MHlnMmtqZ25mcDlBSUtyV1ZzM3QzQWhIN0psRzNhaUZKNFBsa3llQUJYMlZaMk5mZ29UamF6YWN0LzZOL3Y5NUY5c050dzFkZWc4RjJXM2Fnc3ZlZEdhZ3AvelpJSkE2SStHVEowSUs5K1hyTnIwdUNTTjN1ZmxmdHA2T1laQTJqdGdKcmtseVFOK0lRUUFRRUJPWnh3aXhvSXFBTEpnTmxvRWthakVlRnJCdGtrenNoTTF3UWlaUzhmZi9ZVlJsc2k2YWxkK2R6dG9WdTNiaml0WGc0MkJSaWVjU2I1dVFrY2NYZGwwTUFDak1EMmRldW9QOG43czV6ZGowTGZQc29hb1NRRzJkS2MzYW5jV0JVbEV6OW84Q1hNbWY4WmVmM3ZRYnNISzVwc1BoNnFxejFNTFNuR0xFUFZwalhzUFlXbVhWLy8zTFljNG9GTlgrQ3l4REZrdnFZUWF1Nld3N3ZUTDJYSGh4K3lzZTQ0SDd5K2xuKzhIbVFIbHcvai9nR1ovUDJ0OTZodGxMbGg0VFBCRmNXemJPWUUrcDVpLzlUTXpFd2R1Sm5Ra2cyTllWTTFtc1dGZ1U0SUlhUmdQYW1RcEVBb1Z5NGNXTkN4dHhEQVJiRTN3SitSa2ZrdjJSai8zcjgvZVg2WUVPSTZJQytGU29ZTnVneWpwd1p6eWUrWk1DQnlkb2VOdjRWRjQzNUYwZW9IeUJ0MkN5L09uMHJkOWhjWk8vTnZlQnFxcUdxUUtTbDVrNEtSZC9ENGpFNzB0N3o3R0Rmc2w5UjZYZFRYVnpPeTVHTE1HUmV6OGNYNTFHOTZrZVc3NmlpY2V6TXZ6OVZPN2J3Vi8yWmt2cFVIbi80SDQ4Yi9qRFVMOHJENDZxbDI5MkRqcnBWa25NSnhOMXZ0WkZoUExhK2gvOGhKT0I2L2dZS2lGM0FXWGNPV3AyZWRGTEJ0WFBrY2pyUlJFV0NUMDFpdytBK01IWE1oS3dweUtDMnJaZkdLTnpHakFaczl6YzY5SXkvRmFsVXBkMmV3N3BHSVFtMzZnTkVNNVJvS0M4L0RsbjRCNjljdndkbkpjZTFzeko5MkJldkszT3lyOUxCMzNFVXN0RHBZc09wTml1MTdlWERSZXNpcm9WL1IzN1RyWU9aZitlTU5GMzAyOUJlejF2eXE3NkFQZXo4Y1VIUlJUTDBpaHkrV29VbmdGNW9haHhLY2gyb0UxQ1FoeXdoRkVVSklNbWF6ZGowY2IzWUpjMEp5dUF1YzFlckVZVHlBcXpXTzR1S0xhRmozVDE1K3pVVzgwWVN6YXp3WlBmUEk3Tm1MbVZOeUdUWGdRb295ck1qcG1hU2Q3UDFQem1EYzZDeldiOWhEeWZqb2JLbUNVVk1ZdU93YWN2SmVvWERFcmF4Wk1JT2NFYmN6YTh2TjlDODhuNEplNlZSVjdtUEVQVTh5ZjlJZ2JydHpBbE9IWDhDeWdqUzgxdTcwT29XY3B0T3k4dURyaktOSGoxSmVYazVWMVpmVTF0WlNYMTlQWStNUm1wcU9CV1dQUWxVS0xYaTlyWGc4SG53K0gwS29rdGFoWGlFUUNFakIvZ3VoYWdVcFdMRWdCOEhmQ0JpRFZRc210TW9GTXhCMzMzMi9UenpiVW5INTZzQTExeTIvYTJoT2cxY21JK1YwekM1VHFhdXBCb3VUdE9RZmgwYUk0blZUVTlkQVNrWVcxbUMrUmRQMnBlVE4vSURhVFgraXBzNUZla3dhd1E4eGhCRDdEeDgrdkdiT25EbTdIbnZzOFZhZEtlbHJ4L1FNUGZxREVVOUZ0Nmg2WDFxd2lvQmcwbTNRZWpHSEdobGpzVVM2czJ1cXQ0azRIRWs0blYxSlNlbEt2Tm5DMmVlY1IyR2YzbEVsVWszMU5iaXh0VWxGT2RGd2xhMmhaTVlHZG01YWZOS3VEYSs3aWJwR0YybHBHVmgwS1R2dXhub2FQREpaR2NtbjFPWE0rTjgrdWJ0MDZVSmhZU0Z4Y1hIRXhabkRkeXc5ZzlNek55SFVVSWNySWN0K1NaWmxGRVVSZ1VBVWV3c1YxOHN4NW1rQVVJTG1xUi93ejUvL2dBOTRyZmNnOFk3M3p1RkRlM1JMdWhib2Vmb2RLWm0wak93ZmxmZkxhTEdSbmQyK1lvQnN0cEdWWmZ1aEFhM3k4T0hEYnp6ODhNTWYvUG5QQzd3NmdQSjNBR2l4Z1FGRkh4d0lBcHNJbFVVRjVidlJRRTNMVHd0V0UwU0JtczJtcWQ0bUpZWDZFMmdkMnJPenMrbmR1emZ4OGRGbWt5TWxnMVBKOXJIbmoyTGhqRVpxWFNvNUo2bnJickU1eUxhMTNack5tWUx0Ry9DRC8zckdwcHRFZlBiWloxUlc3dWZnd1JvT0hUcEVRME9rdnRUdGR1UHhlSEM1anRIUzRrVUlnYy9udytmejRmZjdKVVZwbDcxSlFnZzVDSENobWxORGtMMlpndXpOckYvdXZudG00dTkrOTd0TG5VN24xWklrOWVHbjhmMnl1S1lhdHV4ek1XUkEvZy9IalZXMXJMNitmdjNzMlgvODhNa25uMnp0Qk5CaUYzOFExTm9ETkQyb2hWbGFFTlJFTUVjTnZlUlFCTlQwMVFTcDlPaVJRVTdPbWZUdTNmc0hiN3J5WFkwZkRiQ0ZSbFZWRlpXVmxkVFUxRkJYVjBkRGc2Ykc2M0lkNC9oeE4wZVBIc1hqOFNDRUNCYlF0K0x6K2ZINy9TRmwzaUJ6QzBpcUtxUmc1RFJrb29aQ1FnYWRlZG91d09YazVKaTNidjNQeGFtcHFWZkpzbnpoVDVEejR4K0JRR0Q3Z1FNMTcxeDhjVWxwVGMxQkpTWXcwQm1vNlFFdDdFY0xWUThBUWgveGJNdlNUSmpOY2VnVmI2MVdmZDFucEpGeFJrWUdPVGs1Wkdkbi82alBoZkhIOW9leXM3T0pqNC9IWW9rbkxpNE9zemt1SEdRd0drMEVBZ0ZrV1VZSW9UTlRXekVZREtFN1lZaTlpVUFnZ0NSSm9ieTNrRWtxeHdZWFlzeFRIMkN1ckt3MHA2ZjNlQWZZVWw3K1dWRjJkdlpRazhrMDZxZkwvOGMzV2x0YjErN2J0Ky9kb3FKejkrdkFUTS9TZk8yQW1yOERRQXZvVWpqQ1ptY3NTek1halVHV3BvR2F4V0xSeVhnbllMTWxrcFNVaE5PcGx4M0tvbWZQSEZKVFUzLzA1OFQ0WS94VHFhbXBXSzNXSU1CWnNGZ2lBQmNJS0JnTUJsUlZEVWRRdlY1akNOencrWHhDbHVYMmZHOGlhSnJHUms4REJKdGlvSVhpVFhxQUE4eTV1YjEzQW52ZWVXZmpTOFhGRnd5eTJSS3VnbE1LU3Y0MFRoL1hSODN4NDhmLythOS9iZDQ5ZXZUb2hnNEFyVDFRODNmRzBEb3lPME1zclgzVFUrOVAwNElFU1VrT25FNG5LU25kNk42OU8xbFpaOUNyVjA4U0V4UC9UNXlmVXpaRm0xd3VqdmxsZW5TeFJSY0FCeFJxang3SEVKOUFha0owcjhxV0ZnLzFiaC9KamlRU1ROTDNNZmtvTHkvbnl5KzFpT21oUS9VY09GRE4wYU5OcUdvQXQxdUxtTGEwUkpyRnRMYTI0dmY3OFBtMGhqRTYzeHVoNWpGcVFLQUtJUWZibVlaTTFJNThjSHBUMVFTWUoweVlZUG5Ubng2K0lDVWxaWWpSYU94UXhYZlA1dFZZOG9hUmwzYnl6VU5xeTZCQ2dVR0ZQNjZKV3JGck0ycEdNYm5oWTZHaUtGRmw1aGlERS9GRUpjaXFxdXFLMzZNK29iNm1HcC9aMFNZaTJOUlFRNk1iMHRMVC9uWG9ZTTI3di9uTmJ6NTkvZlhYL1NjSmFQNTJBQzNRQVVOVFEvWE93UUFCMFN3dDByeTRyVDh0b3FQbWRHcEJndlQwZE00NDR3eHljM08vVTM5YTlkNnR1SjJGNUdlY0hoSDM3MDIyYVBucVZUeTJyNW5VUkRPMWpjMU12dnBLcGhkK3QyMEhKRW1pZCsvZUpDUWtCUE41NHZINy9SZ01SbFExRUpYa0c1azhCbHBialJnTVB2eCt2OUMrTDB1S0VrQlJGS0g0QXZoVkZVa1NLdHBOTmF3V0VzeDNNd1FuYTRqQkdZT0E1Z3NCMjRvVksxcFhyRmp4TDJEcnhvMXZQM1grK2VkZmtKaVlPRlNTcENoZGwvVlBQMFR5bEFGZkM5ajJiWU1WalQ4dVlGTmQ1VXlaK3Y5WXNmM3Q4SHNyNTkzQXhBZlhrK3l3aGFmeUkycytZbnkvUm9wdDV6SnYzMUdHdDhlSlBXVVVwQlZnSC9jdzI1Zk9qQUJYeFZiR2pidUpXbU1HZHFVZXVmQm10ajU5RDNqcnVXUEMxWit0L3NTM09jblEvTkhIbjVZZjBZRlNlNERtN3dEUWxCTUFtbWcvT0dEQWFEVHBwWWFJaXpNVEYyZHB4NSttS2Q1MjdacE1hbW9xR1JrOTJQMzZZdHpYTGFMM2R4d2tzQ2sxakptK2xtMXJIOFI4R3N5WlUyQnNyWlFlYUltU0xYcXlLWlczSmhUVGVPUUkzbmg3bEd6UjRORTNNRFhQVGt1cmovZzQ3UzhmMmIrWGk1Ly9ndi9NdW9idlMwNndxYW1KeXNyOWxKYVdVbHRiU3lBUTRPalJSbzRkMDRJS3NmbHVRV1hlVU5RVVJWSHcrLzFTOC9FQWZqVkFuRGtTUGRVRkdDUWhrS0ZOa01FUVpIREdHQllYdFh6ODhkNjhuajE3WGhnZkh6OUVWWlIwVmNkQ1Rnb0FWRzJSalRHTUpVaGgzSTNRNUlPTXRLOEpMRjZvcW9XTWJBaWxHbm1hb0s0UjByS0lrcTRKMWI1VVYwRnlCbGgxczF6eFFuVWRaR1czdmFPcXdjOVMwcU4vQTdCeDBUU1dOQTVoMVp6eE9tRDdPUXRyTG1IcjQ5TmoxbFJGLzA2QXJYTHRnNHhkc2d0MzJXRTJWL3liZENPQW0wbjllMktmOWhLTHB3MEdvTFMwclBiTU04L1kvTkpEMHo3OHhmKytVQjN5cVo0RW9Pa1hKY2pRQXUyWm5BU0ZUNE0xelRGbXB3R0R3UlJzV215aUk5TXpJU0dCUkpzVkNZa3VLZW4wek00SUJna3l5YzdLNHBGcEEzRk1mcE83Um1SSHkxZ0I3b1phR3J4bXNqT1MyOHlWeHJwcUZHc3lLZmJvbTZxbnFaNjZKaTlwNlJuUlVsSDRtRDZvRDRNWHZzLzRmajk4ZzVmdlRiWW9CR3FoWTJjMHlIeWZnV2FIdzhFNTV4VFMydXJGWkRLaEtIN2k0eTNFeFZtQ1FRYk5FZHZjYk1Kb2JNRmtNdUwxYWl6TzUvUGhiL1Z6cE1FZ1ZGV1JCQXF0cllxUTVBQm1rNHFFSkh4K0RkeENRUVpaRGdjWkFrSmdBQ2xZeFNOQ3pLME55UFh0VzdnSCtBUjQrb0lMTHVoNzRMTVB6Ny83aFlyQmR3N1BTRCtaL3podE9PeXFnT3dKc0hwZTVQMTd4OEFlR1ZRM1ZKZkMwRm13K0xZVHIrL3BtYkNxQ2VwM0FsWXdGc0RXcGZEd2RGaStCM0pTb0xRTTVqd05FMHZBdlFjeXhzSElYR2h3d1o0NjJMSUxjdTFRdHhzR2o0YU1RdTJmNzlzTVc1c2dHOWorTWt5K0Yzb1ZRUGsrbUw4Q3h2WVB3eUVyVnJ6TzZFVVBmeXZ6WU0zcU54ZzY0Vkc4UzY5bDdmWUdwcFVrNDkyM250VVZXZXlaZkVtdHgrUFpVbEh4eFVmbm5IUE9majI3NmdEUTJnTzIwSHVob0ZJZ0RHaXlyRXBDcUdxb0l6Z0lKRWtZVFNZTXNpUzhMUzNJNWdTNldPUEEzeXdhanJySXpNN0dhdEZBeldLSkl5NHUxSkhkU2tLQ2pYakp6ZXN2djRFMTdRemkxR1pTaXNmeDVKekIyQnAyTTI3OFBaVHZxY0ZZZVJNYkZsa1pNUDV1NWswZEJrb2pzeWRmeTh2N1ZMS3NIaHB0eGF4ZDlUZlNMREJ6UkNiYlBIMHhtZzNVVis1bDlPem5lSEN5VnMvNTR0d2JtUFZ5SllXOWtxbllWODhUVzNjd0lJeUpaa2FOdW9nbEw2OWxmTCtKVWNmY1ZiYWVDZmM4eTd6bEt5aHluTGJBcGh2K1pwYnQrSUp4bDdjTjluMVY5U2xiampsNVdWY3p1djJEOTFuMC9uNHFqN1F5YjhMUHZuZjFWNFBCUU0rZVBZbUxzK0R6dFdLMUpnUzdYTWNDbkptV0ZpMksydHJhcW9HYjBjY1oyVWFPMXZtRksrQ25TNklXUFEwRUFxTEZGd0JKeFd4U2hhcXFrcUlnQ1JDU0ZJNmlCZ0NESktHQVpBaE9mR1BRVERXMkEzVEdIVHQyN0FMMi9PYktyS2N1Mi90Ujc1eWNuQ0tyMVhwaFo3bHhTemZBMm9Xd3RKMXlURnNCckp3TFRkc2hleG9zdk8za1R2NzJQYkIzTzZSWndSdnNDamo5WWJnbjZFcXBXZytENThMRURjRTdlaDNjc3hNS0hYRFBjRmk1RWU0YkF3L2ZDMk1maEhrVG9Hb0Q5Tm9Zdk1rMXdNVGI0ZG5kTURBZDZyWkM4VjB3ZWt0dy8zd1Y3Q3kxYzN0QjJ5dWlkTTFmR0ZyeHFqYVIweTVnOWZKNW5XZThxM1dzWGxmRjdIbjk4ZFJleXVOcjF6RjE0TVN5OGcvMzdmQjBjWlQxakRQb21abXFZMW1kQVpxaVkyZUtIc3drQ1RYWWxGaG9pZ3VTa0dSSkdNT1JUb2xXYjZ0UWhZRjRzNG40T0JPTlRjZEZnSGlPSFdzaExhc25TYmI0c0Q4dDBqM0tpczJtcWQwZStiU1VoTDRqZWZpdWNmVG9rVTU2ZWpwWldWbVFtOHZHamVPWk5mWnNISk9mWitiSTdQQmgyUHo0Yk5aNEwyTHZybm1ZVVZrNDdSSWVYcjZOQlZNSGFpUmd3RGpXUFR3WlQvVkdldlcvbTJuamQ1QmpxV1BKNHMwczIzdVFRV21BNHNNWFkwd1VGaGF4NjhHZGhCUnZ3cmNtVngyN2RuMkUyL2ZmRUJVOUJkbWl2bmxuOHovcFo3QjE5d2NzZW1jUGwwMGRUTUlQUUZOVFVsSndPcnVRbUppSXpaWVFGVUhWSnRGeDNHNHpack9IbGhhTjRZVk0wMmF6RDhsdnhHTHhpMkJnUWZLNEZReW1nREFhdFI0TkFVVVZJQ1JaRGtkUkpRM2toQnk4VU9UZ2hXQUltcW5oc3ExMmdNNVlXSGpPUjBFbTk5SmJiNjNyZnQ1NTUrVTdISTRpazhsMElYQlNuVFVHQnZYL0hGbGdhUVEzbkZSMitiQXhHcWdCWVhtWXVyMHdZeUdVMTJnbVpMMXVndHR5TlZBRHlNcUNVTy9uWGJ0aDl0UGE4K3lCa0JHY2VWWGJvTllJcXhmQkdrRDFnYXNVYW9Fc0FGY0RqVVlIam5iY2pEbURybVB4bktERXQ5RjJRdDlPNC9hMWxLWmRkdXo4cm9FZDlVWEZlOStaOU5jdkRBOU5QaEx5a1hiQ3p0b0ROYjNDUnJUdkRGU0JwR3FQUW9SN2JzaXlNTWdJN1lhb0NKQzAzcEVHSXhhTFJSaU5SdEtOY1BCd0EvYlViTHAzdGVzQ0JCcW8yV3pScVJ6WkNlZnorcUtWUExzeWdXSERScEJiZEdLaHh5MWIvb1haMDUvWjkvNCs2RGJ3VUdmWkMyakFObVNRWm81YnN3WlNiQzlsZDVWQ1RsNHlRd1lsYzl1NGF4ZzM4aklHRHgvRm9NS3NxUFhhblE1YzlVZmFiTTg1WURKMWRaTlBkMU1VVGxXMktDSEJ4bGtKTnM2NnNvUTM1cTVnMjVGTHVMenJENVA1YkxWYTZkT25EM2E3bmNURVJCSVNiRml0VnF6V2VKcWFOQWJuZHNkaE5qZGpOcHZ3ZWsxNHZhMGNOeHN4NENjK1B1eDdFN0xrQjJOQU1wczFCdWRyMVJpY0xHc3BJb0dBUUpLRmhBZ0g3S1RnWFYzV21KemsxL25pRERFZ3B3YzZZMUJDNlFDdzhaeHpDazNMbGoyVms1TnpabStielZab05CcjdRL3Q5bGNPS0xsK3o4TTRTRytSeXc5aXhNRzhkak93SG50MlFOcVdkN2NSc1N6YUNUNG40SXZTZVhYc0dqQmtkZVQxbVBJUUZrT3dPN0lvTGx4ZGk2WmpWa1U1ZTNnbDE5TjJLb256Z2NybEtGejcrVk9XUkQ3ZlgyTTNMMVJobUZvanhnM1VFYUhvdzAvOUcxZnZQZ28waVZVbENJQkN5TEtNR0FrS1dEYWhLcXhESUpOb1RNWnVNSEd0c0VBYVRCbDRta3dtUDV3aXlMT0h6SzlnU2JjVEh0TVFMOWZsME9wMTA2NVpDZXZxRmJMdm1Kajc3OUZOV1Bmc2dmMzN0QThyV3pPODhLZ3dVRHJpYzBjT0NnZ3VqcjhhZWtuMUNxSmp6OHZ1TTNyNkZMWnMyTUhISStUeTQ3bU1tRkVla3F0eE5MbXpPMDZPRDFmY2tXNlR5MWJFV3VpZHAvS3l4dm80RGlwa3VsaCsrbkNNek14T0h3eEVFT0ZzWTRPTGpqMkt4YU9DbUJSWmFNSmxhT0JabndvQ1BoQVJqcUdLQmhEZ2pMc1V2TEhZRGlpOGd1WVdDeVJ3UUpsa2xFQWpnOTZ0SWtpRFlUeWJVNkZsdnBzckJDOFFnU1ZJNDZLQUR1ZmJBenZqUlIzdU41NTEzWGltd0QxaDd4aGxuR0c0YjlYeFdxK0dzSEo4dnFiZkpaQ3FRSktuWHQzckFHcUhhQ0NWRjJrNnZXMzFTNm1RTUdnanIxOENJR2JCM1BkUW9FZlptcXdZNUc0cURRWTJHQmgyR21YTXB6bTJrdE54RFllR0pvOE5DaUFwVmlFK09IcTZyMkZ5eDc4c2JiNXgwcUthbVJvMWhaZTJ4czQ1WVd2aXpvTktMRXJNT1ZRaWhUOVVRV2d0Y1NjZ3lCRlNFd1dCQThmdUZ3V1JDVlZveG1PS3h4c2NKZ3hSQVVTRStUbXQ3Sjd4TmZIVk0wSys0bU9xOUgxRGp5dWI4TkljdTRWWWY5ZFRxUGJ0MjZVSnFqeDZjZmU2RkRPL25JRzNrYzNnMWw2akdvQzBXNmhzYTBMeVoyaGc4NkZMdTJWcEp2OWtUTlphcmVtaG9pdHhxTm0zWnhNeVJVL0JVYjJPbnE0QUYyVWJBaDh1dFVqUndLRVVEaDlKVStrL0t5bXRCQjJ4bFphVVU5Vy9MR04zbG01Z3hmeFgzTEZwTXZ2MTBCYlpUa2kxSzVTL1B2Y1M3TFJhNnhjdDhlYVNaY1NNdm8zL0NhUUh1SkNZbVVsQlFRRkpTa2c3Z0VyQmFHMmxxaXNkaWNSRVgxMHhjbkpuR09ETW00Y1ZtTTlIYXFrVk4weko5dUN0TTFCLzJJMVJGeUdZRmU0SWlCWk43aGRjYlFEYXFRaGFxRkVyMDFRVWFRaUFYWm5IQnZEZy8wYmx4aGhpQWEvUDh5eSsvTlB6dXJ5V2ZBUlZ4QzNrSE1Eenl5SjlzaDVvdVQwOTA5Y2hxYmJXZGFSS21YaUQzUmxNbytmb2pDMjRmQ0NVRElNY0d5VmtuTjRudWVoaEdqNEg4cFpEYkg3S0NkcU9jRENzV3dhU0JXdkRBVlF2bS9yRHg4WWhUZXV5NEsxaTVmaU1UQ2tkRmgrZUYrTXpyOVg1eC9QanhMNnVycXcvKzg1OGJEdDEvLy8wdGdEcWhYN280QVpoMUJHcXh6OE5MOFB4RUpkSUcyd01KaUtScklFbENRc0pva0lSZjBkS0tmSzFlVE9ZNExDWlZIR2x5YzdqQkMwTENhSkF3eDhWak5jUGVmWFhrOVJ0SWFsYzdHWU12NHUyTk8vSGs5eWE3VzNKUWxjTkp0Mjdkd3FWUm1abVpiSHJpTGk1ZStCOEs4cktvM0x1SDIrNzdCM3I0SHp2dE40eWRkZ01iRjlzWlBQbC9XREJqQklPbnpXWEV6dXNvS0xxSS9Dd0hGZVdWekZqOEp0T0hhbVMvYWZ2TERCcjZHazJWcFV4NitCbHlMQUIxakMrK0ZIZEdQbllhcUhUbnNtWmtZUlI1V2J2bTM0eWRPNi9OdWZmV2wvUE1NeTh4OGNIdkQ5aSsxMXJSWms4elI3d0tYUk1UU1RESlB3aUkxZGZYNC9QNXljam8wZjQrTmpkVFhWMGRUdWc5Y2lSVWErb0t5eUMxdEdpK3Q5WldieERjdEhwVGo5dUhJaFNFcXFXSGhJcnFROVVMd1JwVWdqV29vVUo3UWtDbmU1U0RnQ2ZybHBDTWtpR21DZlNKbmh0aWZ3L0lxMWE5bXB5WGw5Y3RPYmxicXMyV2tHNHltYm9iRElZTVNaSXkyeHA5YlVkRERTaFdTUHVhRVNCRkFXb2hheWlVbDBmc1psV0JtaHF3SjRNallreDdoUkFIV2cvdk9qaHcrQisvV3JIMjZhK1V4dnJEWldWbFI2Ni9mdnhSSWhwNjRmU0pEc0NzSTRiVzRmTlE4Ym51OS9vVWpYQ3FSdWd4MkIwdHFOWXNpWkJjdlc2SmxFTVpaQVFTMWdRYmxyaFFuYWM1R1BFTUJRZ1N3dTN3dW5SeGhGbGFLRGlnYjRYbjg3aW9yVy9VT2pwWlR6Nkx6Tk5VVDROTElTMDlIWFB3N2pSemVDYlpNOTluWXFHQ1luR1NISlh1b2RKUVc0c2JNMW5wS2RHcEkvdldNbkQ2T3JadlhvTDFOQ0FyUDdvaStHOEtiS0ZSVjFjWExLUS9SRVBEWVJvYkc0TWFieEdsRUkrbi9Zb0Z2OThmem4zVFZ5NEVBb29VQ0toaGdBc0UxQ0N3cWFocUdOVFFNYnFPUUM0TVVER3FJNTB0Y3N4ek9lWjVhQnZTbzQ4dXNQWHQyOWVlbHBabVQwcEtzbHV0VnJ2WmJMWWJqVWE3d1dDd3k3SnNreVRKSmtsU2dpUko4VUVnREFrQUdIVGV0UkF3K0dxMzRwdjVMTjV6ZTR1V2JhK0o1dlFKd3Izd2w2bzdFQWdjVnhURjFkcmE2dko0UE1lYm1wcGNYMzMxMWZHOWV6OTIzMzMzM1I0ZGVJa1lJQk9kYisvMDRnQUFDOHhKUkVGVWdKa2V5RHBpYWxGTEowQVdCV1o2SUFPRUxFdEM2NUltWVRESU9rQ1RNUmlNc1pVRFJCSnQyMVlRYU1tMm1pSkhZcUk5ek5LU2s3c0Z1N0ZyT1dyZjVRZ0IyNHloWDI4Nys3YXRwY0ZSVEVuKzZTRVAveE93ZFpiTjR2ZHo0TUNCc0lDbEpvTjBsR1BIWE8yS1dFYXJoZmlDQUtlMEEzQVJGcWQxdWxkRDVWckVNTGpPUUs1ZHNOT1ZkOG1kZ0pxaEhXQ0xYZlRiNld5aG5jZlk1OUZPMnJiUDlZK2RMYkZBRnJ0MHhOTGFQQTlKdjdjSFlpY0NzOUR6bUo0YVVleXNMYUNGUUMxU3VONlJHR1JTa2gySG93dkp5VjF4eUc3KzgyRWxEbWNYREliby92VDloNDFuUU82MzIxMTkzODdOV0hzTkpNdHAvcSsrem44Q3RwTVl4NDRkNCtEQmc5VFYxWEg0Y0lpOVJYVGVtcHM5T3ZNMFVyVVFxVG1OQnJoQUlCQmxwcXFxR2dWeVFxaVNxb3F3cVVxNDRiT1FoRUFQZEZJN0lCUURVTUtnVlVPMHk5STZBemVwQTRDVDJ3RzF6Z0N1TTNDTEJUVGFBYkhPR0pyYUFWdUxlcTJsMmtpZGdsalFaNmJyTnh2Mm00WEFMR2hxU2toU05KanBRRTJFRkdQMGdHWTBSaGhhcUhxZ2JWNmFUVmZuR2ZHbDllalJnNlNrSkg0YTMzbFU5UC9lU0VwS0lpa3BpYTVkdTFKYit4WDE5WWVDT205SGd5Vlp4NE1GOWMzaGducXZWMStTcFdkdklSTTFFS1Vlb2dsY0JnZ0VWRlJWRlVHUUU2cXFTcUYrTTFxL0JxSllYUEFDam1WME9nQ1NaRW1LQlR3aEJ3R3lNMERyRE55K0RuUDdPc0QyZGN6T2RnRXVDRWlkQWhqUnpiTERvS3IzbVlWZUJ3RXRpcGxwUUNhSDJqNktFRk9MMUhZYXd3ck9FWllXcVI2d1JLVndoRmhhRWwyNmRDRTVPWm1VbEZUUzA3di9uNUFYK2duWWZ1QlJXdm9KdWJsbmtacWF5b0VETmRUVmZjWGh3NGM1Y3VSSWxKQmx5RHpWSzRib2EwNDEzNXNHY29GQUdPQUlCQUo2aVNSSngrQkVoTW1KMEtPSU1WWFJSMWNqYkZ4STdZTlNGTmhGZmFjZGMxYzZBYkIxeE5waVRWTFJDYmgxQm5CcWU2OTFvTlFaczR2OVRkUzI5SzlqVEUxa1dkWUZBL1NBWmlDa3VoRUxhQVpEaEtIcGk5YmJVN2JWek02SUVHVFhybDJETEswN21aay9LVnI5Qkd3L3dNak16Q0ExTllYYTJ0cXdTbTliODdRNUdGd0lBWnd2eHYvV2hyMkZBZ3hCa0ZNN0JEa2R3QkhONXFSWW9JdDYzczVuYlpaZ0hsMG56RXhMMHZvdWZXeEIxbld5VEs2akJiMXBHZk9hOWxoWmlKbnAvR2Z0Z0ZuSTdEUjJ3dEwwZmpSelVCTXdYaWNDR1cxMmh0UnQwOVBUTVp2TlAxMWdQd3l3QmRpeGR4Ly9yUGlLWTRwTXdWazl1ZUhjTXpBRHJjMU52THJyTS9iV0hjTmdzVEd5dUpBTHU4Y2t3aXZOUFBYdmp6bXo5OWtNenZqdjlSMll6V2F5czdOSlRVMXRZNTdxbzZmUi9qYzlnK3M0ZXFvb0NvcS9sWlpXQ1l0WmlnSTVYYkNoUFpBajBpWVZLZlpSVlZVa1dRNEoyTVF5T3pwaFlyclhVa2pXNjJUQnJDUEdGdldlQ05uWkoyWnlkQUpna2Q4TElWUlZZRERJVVV4TTV5OURuNklSQzJhaHdJQytDYmVlb1hVVzdZejQwU3h0L0dpaGFHZXMyUm5iVUtXOVViWWJzb3FnM1phdzdpb21USG1ZeFN1VzROUmQxYlhsZTVCVDhrbHpmRHVBNlNsZHhlQzV1OWo1OHZ4dnZKNGhjM2V4L1JUV2N6TC82UlQwMkk2emVuY3RSWVhacEpwVmxyMjlrYytPWDhhRGc3TDVzcktLajV0bEx1MmJpL3ZJUVg3OTk1VXN2bU1pQTdwRU52UFc1cTBzZWU5THJyTDErSzhHdHRDSWo0K25aODhjMHRKU3FhdXJvNzYrUG1pZTZ2MXZJWUJyYVNPTDFGSDB0TG5oQ0ljYkErUmtwZWpUUTRUT0Q2Y0hPWVJRaFJad1VBa0dIc0pBRjd6T0pTRUVraXdqUmNDT2syRmRNY0IzSWpBNzJYS1NOcWFwaVB3NENxUkM3S29qdHFjSHhQRHo0UDh6R0F6aDkyTUNBRVFlWThGTTFqWGQxZ09hSWRpWXU2Tm9aN1NzVUVpRlF3TzBpQit0YTlldXBLU2trSmFXRnBXUGRxSXhiUVFzcklEKzdSVE5yVnN5Qjh1QThWR2dCckRrdnAvam1QeFdWQkg4TjdxaHB4VncrNlJ2bnRLaGVsMVVWUjgrcGQrZXpILzYrc0FtTzNoZzh1WGhsMTA4aDdsMXo1Y3dLSnZjdmtVODBEZjBTVGE3UC9tVUxmc2JHZEJGT3hDdXV2MDhWMnZqdWpPdGVINWsxRGNoSVlHZVBYdlN2WHYzY1BUMFNPMW5QUC9DZS9RdEtjSGVjaHpYb1VvMmZWSkxuNzY1SkxTMkJBTU1zUXpPeTRFdnZxRHBXRE5DRVJ3NWNnUlZNcEdTNG9SQWdJRGk1ZkRoWTFpdFJuSE01VUpGeHA3a1FCWit5ZVZ5b3dTMFdJSXB6aUpNUmdraEJBRy9EMThnSUFCSmxnMUloTUJPUlZGVUxTQ2hxcUN4bHBNRnJUWUFwa1hZcFRDbEM2YmtJN2N2Y2lqQzN3bUJyUGI5WUY0WVlZQUs3bTJRMVdtQUpJUXFoTkIrTDBreVJxTWhCSEFFRkQ4Q0NVbldvcFFoVUF2NFcxRXhvclMyRWhCZ3RkbXh4cG5DUU5aTzJnWnRmV250TXpTdDcwQVEwSXp4N1BuRVN1NFpOblpzUzZSYlRoSTNUM1NRM2szem94MnRTT052ejFoeHlUQitPZ3d0QkR5d2NCR012eFBTTE9DcmgwZWVoUmwzUWVVbVdMa1pxdHp3K0Z4SU04T0lTVEF3TjRRU2pTeCs0bC9jdFdWcCtPQTJsVzlqd2JOdnNibTBIc3Z5UDlPMDNVSGU0R3VaT0ZSclpseTVjeTFibTVKSnFkM0NpNXMrSVhmSXo3bHY4bkFxZDIzZzZaZmZvcnF1a2ZUYzg1bHgrM1RTN1JwTXJIdjZZYlpWSE1lYWRYN1VpYXpZdm9idGpYYThlemF3dGVJSUk2ZjhsckVsdVNkeDFmaFl2V1FlYTNaK1NiK1JOM0hiMkJKa29MNThPMHVmWFVWNTlTR2NHYjJaZHZ1ZDVLVlpUL2lmVkU4OXl4WXZabXZwQWI1eCt2K245UTNrcHJlVFMrTS9Uc1VSbFQ2cFFWYW0rbmhvN1U2bVgzaytjVC9PamwrQVZseWZrNVBET2VlY1EvNjVnempIMGNDTEc4dkl5a3BqeC9vMW1EUHl5VXhMcFZ1M0ZKS1R1K0owT25FNHVvVEx1ZXgyTzZrOU1raDFKaUtaRTBoTFN5TTFwU3NKVm8wQnhNY1pjTHVQYytSb00zYUhFN3ZOZ3RFY1I1eFJGcklwVHRpVGtvUXR3U3g4TGMxZ0RHYTBXelE1SnMwMk13bVR5U1NNUnFNd0dpUVJCQWhoTUJxRTFzUkJVZzBHZ3lyTGNudExJTGlFR3ZkR0w1cjJuQ0pKa3FaNG9kVlZobC9ITEFGSmtnS3lKQVZrV1E0bXlXcnJsbVVwdkIyQlVJV0d1bXB3dTZyQllGQWx0STVOSnBOUlNLaENDYWpDYURRS2s4a2tUQ2F6TUVpSWdDcDBpck54aUlCQ2EydXJzQ1FrQ3B0WkZtN1hjUkVYci9tL0lvNzk0SEdPajhkcXRYQzhzWjVEaHc1UlYxZEhiVzB0Qnc4ZTVLc2pidXgyTzBsSlNUZ2NYWUorc3E1MDY1WkNhbW9xNmNuZGVXOUxCbVVOWjNEOTlUazA3c3hsVzEwKzU1eHpEa3BGRHRmZWFhVmtMRXdhQ1hlTmdaMzFnQld5ZkREcEhrMHNkTllVY0tXQlhZYjBYakI4T0RqTlVEeEVlNTZsdStSODVadllLZmRuUUhxRXAxaVNzeGcyL0FxeVUyejA2bmN4dzRkZlFiOWVFVm0veXAxdmN0KzBYN0Nxd3NMNGlkZGpWVndBVkZXVTAydkFsZHgrMXgxa3VkOWoySlI1WWNHQ3ZINkRLY2tLOE1peU4yS0E3UTFtVExzYnRXQW9FNFptTW4zc3pWU2ZoRVJSMCs1VmJIRDFZdnFVYTFrOSt6b1diNmdFb0theUFtZCtDWGZlZFFjbEtZY1lOdUlXM0NmNlQ2cUxHU011WmwyTm5XbTMzL0hOZ2dmVit6L2hzVThDUERuajdGaWl5VE5yTmhKMzlnQ3U3S0dWSk83YzhSNU5tVVVNNm1ibXcvOER6a3VMeFVKMmRqWjNMWDZCVHkrL21NY2YvNERHekpITXZ1NFMzQzU5aW9pblRZbVcxWnFJVGJpbzlQakp5TWlJOXNFWnRSbVRjVlp2RWcxQ1o2WmFNTWY3YVBZMG8wanh5SEtMVURFUUYyZEdtTTNFV1ZRYVdyMlMwUnhIbkNGb3NpcUNGcTlmeE5zU2tJV2d0YVVaUllEUmFDUml3WXFRT1JvbVdrRWlGa1craE5EaXBxby9BTEtNakNvRkFtQXdHSkdsamsxUWpXUkorSDArSklNUm94eDVEMEFFQWdRa0NZc2xMc3FrTkp0TkJCU0ZnQ293R21SOEFVRmNuQmxKa3BFc0ZwUVdGNjVXU1Znc2NXRnpzL1c0aENrdWlXU25BMWxLNEhobExYSmNQUEZHZmJXQVBqQWcwMnBMSkk1b2M5U2MyQVduczB1VUQwM2ZTTVZPRWlhamc5LyswVW0vMUc1MFA1N0txelZHTEJaWXVoQW16b0lSSmRyL256b1VWcXlGNGlrd1poWnNIZ0ZqeGtCVENtd015cHFsWkd1TDNRejlTdHFhb3JYbFZWaHlNcU5rWFN6T0RFcEtNbGlmWXNXUlgweEpTVnV6elpoM0JZL1B1eDBaR0I1OGI4ajRHZFJXN0dWdmVRMFpoZWRTOSt4Yk5BTEpRRTVoTVNtK011UmxiVTNJZ3BFM01tM1VFS0NZZ2JQK3pONWFUU201MDVFK2lQbjNqc2NCekpweERmZTh1SXJiaDgyazMvQ0paRmZ2WTA5WkplWmU1MkNwZklBS054UjE4cDljdTFlenZEYVBtczB6c1FQL0gzaXhnSm1RTzV3dUFBQUFBRWxGVGtTdVFtQ0MiXSxbMSwiZGV0YWlscy1jb250YWluZXIiXSxbMSwiZGV0YWlscyJdLFsiaHJlZiIsImh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2FwaV9kb2NzL3B5dGhvbi90Zi9kZWJ1Z2dpbmcvZXhwZXJpbWVudGFsL2VuYWJsZV9kdW1wX2RlYnVnX2luZm8iLCJ0YXJnZXQiLCJibGFuayIsInJlbCIsIm5vcmVmZXJyZXIgbm9vcGVuZXIiXSxbImhyZWYiLCJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9hcGlfZG9jcy9weXRob24vdGYvZGVidWdnaW5nIiwidGFyZ2V0IiwiYmxhbmsiLCJyZWwiLCJub3JlZmVycmVyIG5vb3BlbmVyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJkaXYiLDApKDEsImRpdiIsMSksVCgyLCJEZWJ1Z2dlciBWMiBpcyBpbmFjdGl2ZSBiZWNhdXNlIG5vIGRhdGEgaXMgYXZhaWxhYmxlLiIpLGcoKSxmKDMsImRpdiIpLFQoNCwiVG8gdXNlIHRoZSBkZWJ1Z2dlciwiKSxnKCksZig1LCJkaXYiKSg2LCJvbCIpKDcsImxpIiksVCg4LCIgQWRkIHRoZSBmb2xsb3dpbmcgbGluZSB0byB0aGUgYmVnaW5uaW5nIG9mIHlvdXIgcHJvZ3JhbTogIiksZig5LCJkaXYiLDIpKDEwLCJzcGFuIiksVCgxMSwidGYuZGVidWdnaW5nLmV4cGVyaW1lbnRhbC5lbmFibGVfZHVtcF9kZWJ1Z19pbmZvKCIpLGcoKSxmKDEyLCJzcGFuIiwzKSxUKDEzLCJsb2dkaXIiKSxnKCksVCgxNCwiLCAiKSxmKDE1LCJzcGFuIiwzKSxUKDE2LCd0ZW5zb3JfZGVidWdfbW9kZT0iRlVMTF9IRUFMVEgiJyksZygpLFQoMTcsIiwgIiksZigxOCwic3BhbiIsMyksVCgxOSwiY2lyY3VsYXJfYnVmZmVyX3NpemU9LTEiKSxnKCksZigyMCwic3BhbiIpLFQoMjEsIikiKSxnKCkoKSgpLGYoMjIsImxpIiksVCgyMywiUmUtcnVuIHRoZSBwcm9ncmFtLiIpLGcoKSgpKCksZigyNCwiZGl2Iiw0KSgyNSwiZGl2Iiw1KSgyNiwiZGl2Iiw2KSxrKDI3LCJpbWciLDcpLGcoKSxmKDI4LCJkaXYiLDgpLFQoMjksIkF1dG8tYWxlcnRzIGZvciBwcm9ibGVtcyBmb3VuZCIpLGcoKSgpLGYoMzAsImRpdiIsNSkoMzEsImRpdiIsNiksaygzMiwiaW1nIiw5KSxnKCksZigzMywiZGl2Iiw4KSxUKDM0LCIgSW50ZWdyYXRlZCBkZWJ1Z2dpbmcgdG8gdHJhY2UgcHJvYmxlbXMgdG8gdGhlaXIgY2F1c2VzICIpLGcoKSgpLGYoMzUsImRpdiIsNSkoMzYsImRpdiIsNiksaygzNywiaW1nIiwxMCksZygpLGYoMzgsImRpdiIsOCksVCgzOSwiTGluayBsb2cgdG8gY29kZSIpLGcoKSgpKCksZig0MCwiZGl2IiwxMSkoNDEsImRpdiIsMTIpLFQoNDIsIiBUaGUgbG9nIGRpcmVjdG9yeSBtdXN0IGNvbnRhaW4gVGVuc29yRmxvdyBEZWJ1Z2dlciAoVjIpIGRhdGEuIHRmLmRlYnVnZ2luZy5leHBlcmltZW50YWwuZW5hYmxlX2R1bXBfZGVidWdfaW5mbygpIHdpbGwgY29sbGVjdCB0ZW5zb3IgZGF0YSwgZ3JhcGggc3RydWN0dXJlcywgdGhlIGFzc29jaWF0ZWQgc3RhY2sgdHJhY2VzLCBhbmQgc291cmNlIGNvZGUgdG8gdGhlIHNwZWNpZmljZWQgZGlyZWN0b3J5IGxvZ2RpciBhcyB0aGUgaW5zdHJ1bWVudGVkIFRlbnNvckZsb3cgcHJvZ3JhbSBleGVjdXRlcy4gIiksZygpLGYoNDMsImRpdiIsMTIpKDQ0LCJkaXYiKSxUKDQ1LCIgU2VlICIpLGYoNDYsImEiLDEzKSxUKDQ3LCIgZG9jdW1lbnRhdGlvbiAiKSxnKCksVCg0OCwiIG9mIHRoZSBQeXRob24gQVBJIG9mIERlYnVnZ2VyIFYyLiAiKSxnKCksZig0OSwiZGl2IiksVCg1MCwiIFNlZSAiKSxmKDUxLCJhIiwxNCksVCg1MiwiIGhlcmUgIiksZygpLFQoNTMsIiBmb3Igb3RoZXIgVGVuc29yRmxvdyBkZWJ1Z2dpbmcgQVBJcy4gIiksZygpKCkoKSgpKX0sc3R5bGVzOlsiLmFyZ1tfbmdjb250ZW50LSVDT01QJV0ge1xuICBjb2xvcjogbGlnaHRibHVlO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIG1hcmdpbjogMnB4O1xufVxuXG4uY29kZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJywgbW9ub3NwYWNlO1xuICBtYXJnaW46IDEwcHg7XG59XG5cbi5jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LWZhbWlseTogUm9ib3RvO1xuICBmb250LXNpemU6IDE1cHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IDUwcHg7XG59XG5cbi5kZXRhaWxzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5kZXRhaWxzW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAxMHB4IDYwcHg7XG4gIHdpZHRoOiA1MCU7XG59XG5cbi5leGhpYml0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmV4aGliaXRbX25nY29udGVudC0lQ09NUCVdIHtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMTBweCA2MHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB3aWR0aDogMzEwcHg7XG59XG5cbi5leGhpYml0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kZXNjcmlwdGlvbltfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMzEwcHg7XG59XG5cbi5leGhpYml0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zY3JlZW5zaG90W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNhbnZhc1tfbmdjb250ZW50LSVDT01QJV0ge1xuICBoZWlnaHQ6IDIwMHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGZvbnQtc2l6ZTogMTM1JTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG59Il19KSxufSkoKSx3WT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmU9ZX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInRmLWRlYnVnZ2VyLXYyLWluYWN0aXZlIl1dLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiZrKDAsImluYWN0aXZlLWNvbXBvbmVudCIpfSxkZXBlbmRlbmNpZXM6W01ZXSxlbmNhcHN1bGF0aW9uOjJ9KSxufSkoKSxFWT17Z2V0V2luZG93OmZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvd319O2Z1bmN0aW9uIFNZKG4pe2xldCB0PUVZLmdldFdpbmRvdygpLnJlcXVpcmU7cmV0dXJuIG5ldyBQcm9taXNlKGU9Pnt0KG4sZSl9KX12YXIgYk5fbG9hZE1vbmFjbz1hc3luYyBmdW5jdGlvbigpe2xldCBuPUVZLmdldFdpbmRvdygpO2lmKHZvaWQgMD09PW4ubW9uYWNvKXtpZighbi5yZXF1aXJlKXRocm93IG5ldyBFcnJvcigibG9hZE1vbmFjbygpIGZhaWxlZCBiZWNhdXNlIGZ1bmN0aW9uIHJlcXVpcmUoKSBpcyB1bmF2YWlsYWJsZSIpO24ucmVxdWlyZS5jb25maWcoe3BhdGhzOnt2czoiL3RmLWltcG9ydHMvdnMifX0pLGF3YWl0IFNZKFsidnMvZWRpdG9yL2VkaXRvci5tYWluIl0pLGF3YWl0IFNZKFsidnMvcHl0aG9uL3B5dGhvbi5jb250cmlidXRpb24iXSl9fTtmdW5jdGlvbiAkRShuKXtyZXR1cm4gbj8idnMtZGFyayI6InZzIn12YXIgVmg9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLnJlc2l6ZUV2ZW50RGVib3VuY2VQZXJpb2RJbk1zPTEwMCx0aGlzLm9uUmVzaXplPW5ldyBGLHRoaXMubmdVbnN1YnNjcmliZSQ9bmV3IEVlLHRoaXMub25SZXNpemUkPW5ldyBFZTtsZXQgaT1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLm9uUmVzaXplJC5uZXh0KCl9KTtpLm9ic2VydmUoZS5uYXRpdmVFbGVtZW50KSx0aGlzLm5nVW5zdWJzY3JpYmUkLnN1YnNjcmliZSgoKT0+e2kudW5vYnNlcnZlKGUubmF0aXZlRWxlbWVudCl9KX1uZ09uSW5pdCgpe3RoaXMub25SZXNpemUkLnBpcGUob3MoMSksQ3IodGhpcy5yZXNpemVFdmVudERlYm91bmNlUGVyaW9kSW5NcyksaXQodGhpcy5uZ1Vuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoKT0+e3RoaXMub25SZXNpemUuZW1pdCgpfSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUkLm5leHQoKSx0aGlzLm5nVW5zdWJzY3JpYmUkLmNvbXBsZXRlKCl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siIiwiZGV0ZWN0UmVzaXplIiwiIl1dLGlucHV0czp7cmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXM6InJlc2l6ZUV2ZW50RGVib3VuY2VQZXJpb2RJbk1zIn0sb3V0cHV0czp7b25SZXNpemU6Im9uUmVzaXplIn19KSxufSkoKSxGd2U9WyJjb2RlVmlld2VyQ29udGFpbmVyIl0sQVk9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMubGluZXM9bnVsbCx0aGlzLmZvY3VzZWRMaW5lbm89bnVsbCx0aGlzLm1vbmFjbz1udWxsLHRoaXMuZWRpdG9yPW51bGwsdGhpcy5kZWNvcmF0aW9ucz1bXSx0aGlzLlJFU0laRV9ERUJPVU5DRV9JTlRFUlZBTF9NUz01MH1vblJlc2l6ZSgpe3RoaXMuZWRpdG9yJiZ0aGlzLmVkaXRvci5sYXlvdXQoKX1uZ09uQ2hhbmdlcyhlKXtpZihudWxsPT09dGhpcy5tb25hY28pcmV0dXJuO2xldCBpPWUubW9uYWNvJiZudWxsPT09dGhpcy5lZGl0b3I7bnVsbD09PXRoaXMuZWRpdG9yJiYodGhpcy5lZGl0b3I9dGhpcy5tb25hY28uZWRpdG9yLmNyZWF0ZSh0aGlzLmNvZGVWaWV3ZXJDb250YWluZXIubmF0aXZlRWxlbWVudCx7dmFsdWU6KHRoaXMubGluZXM/P1tdKS5qb2luKCJcbiIpLGxhbmd1YWdlOiJweXRob24iLHJlYWRPbmx5OiEwLGZvbnRTaXplOjEwLG1pbmltYXA6e2VuYWJsZWQ6ITB9LHRoZW1lOiRFKHRoaXMudXNlRGFya01vZGUpfSkpLGUubGluZXMmJnRoaXMubGluZXMmJnRoaXMuZWRpdG9yLnNldFZhbHVlKHRoaXMubGluZXMuam9pbigiXG4iKSk7bGV0IHI9aXx8ZS5mb2N1c2VkTGluZW5vP3RoaXMuZm9jdXNlZExpbmVubzpudWxsO2lmKHImJnRoaXMubGluZXMpe3RoaXMuZWRpdG9yLnJldmVhbExpbmVJbkNlbnRlcihyLHRoaXMubW9uYWNvLmVkaXRvci5TY3JvbGxUeXBlLlNtb290aCk7bGV0IG89dGhpcy5saW5lc1tyLTFdLmxlbmd0aDt0aGlzLmRlY29yYXRpb25zPXRoaXMuZWRpdG9yLmRlbHRhRGVjb3JhdGlvbnModGhpcy5kZWNvcmF0aW9ucyxbe3JhbmdlOm5ldyB0aGlzLm1vbmFjby5SYW5nZShyLDEsciwxKSxvcHRpb25zOntpc1dob2xlTGluZTohMCxsaW5lc0RlY29yYXRpb25zQ2xhc3NOYW1lOiJoaWdobGlnaHQtZ3V0dGVyIn19LHtyYW5nZTpuZXcgdGhpcy5tb25hY28uUmFuZ2UociwxLHIsbysxKSxvcHRpb25zOntpbmxpbmVDbGFzc05hbWU6ImhpZ2hsaWdodC1saW5lIn19XSl9ZS51c2VEYXJrTW9kZSYmdGhpcy5tb25hY28uZWRpdG9yLnNldFRoZW1lKCRFKHRoaXMudXNlRGFya01vZGUpKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sic291cmNlLWNvZGUtY29tcG9uZW50Il1dLHZpZXdRdWVyeTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmVWUoRndlLDcseGUpLDImZSl7bGV0IHI7YmUocj12ZSgpKSYmKGkuY29kZVZpZXdlckNvbnRhaW5lcj1yLmZpcnN0KX19LGlucHV0czp7bGluZXM6ImxpbmVzIixmb2N1c2VkTGluZW5vOiJmb2N1c2VkTGluZW5vIixtb25hY286Im1vbmFjbyIsdXNlRGFya01vZGU6InVzZURhcmtNb2RlIn0sZmVhdHVyZXM6W3F0XSxkZWNsczoyLHZhcnM6MSxjb25zdHM6W1siZGV0ZWN0UmVzaXplIiwiIiwxLCJjb2RlLXZpZXdlci1jb250YWluZXIiLDMsInJlc2l6ZUV2ZW50RGVib3VuY2VQZXJpb2RJbk1zIiwib25SZXNpemUiXSxbImNvZGVWaWV3ZXJDb250YWluZXIiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImRpdiIsMCwxKSxBKCJvblJlc2l6ZSIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vblJlc2l6ZSgpfSksZygpKSwyJmUmJmIoInJlc2l6ZUV2ZW50RGVib3VuY2VQZXJpb2RJbk1zIixpLlJFU0laRV9ERUJPVU5DRV9JTlRFUlZBTF9NUyl9LGRlcGVuZGVuY2llczpbVmhdLHN0eWxlczpbIi5jb2RlLXZpZXdlci1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5bX25naG9zdC0lQ09NUCVdICAgICAuaGlnaGxpZ2h0LWd1dHRlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxMTEsIDAsIDAuNyk7XG4gIHdpZHRoOiA1cHggIWltcG9ydGFudDtcbn1cblxuW19uZ2hvc3QtJUNPTVAlXSAgICAgLmhpZ2hsaWdodC1saW5lIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDExMSwgMCwgMC4zKTtcbn0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLFJZPSgoKT0+e2NsYXNzIG57bmdPbkluaXQoKXt0aGlzLm1vbmFjbyQ9SnIoYk5fbG9hZE1vbmFjbygpKS5waXBlKHEoKCk9PndpbmRvdy5tb25hY28pKX1jb25zdHJ1Y3Rvcigpe3RoaXMubGluZXM9bnVsbCx0aGlzLmZvY3VzZWRMaW5lbm89bnVsbCx0aGlzLnVzZURhcmtNb2RlPSExLHRoaXMubW9uYWNvJD1udWxsfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJzb3VyY2UtY29kZSJdXSxpbnB1dHM6e2xpbmVzOiJsaW5lcyIsZm9jdXNlZExpbmVubzoiZm9jdXNlZExpbmVubyIsdXNlRGFya01vZGU6InVzZURhcmtNb2RlIn0sZGVjbHM6Mix2YXJzOjYsY29uc3RzOltbMywibGluZXMiLCJmb2N1c2VkTGluZW5vIiwibW9uYWNvIiwidXNlRGFya01vZGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihrKDAsInNvdXJjZS1jb2RlLWNvbXBvbmVudCIsMCksVSgxLCJhc3luYyIpKSwyJmUmJmIoImxpbmVzIixpLmxpbmVzKSgiZm9jdXNlZExpbmVubyIsaS5mb2N1c2VkTGluZW5vKSgibW9uYWNvIixHKDEsNCxpLm1vbmFjbyQpKSgidXNlRGFya01vZGUiLGkudXNlRGFya01vZGUpfSxkZXBlbmRlbmNpZXM6W0FZLGN0XSxlbmNhcHN1bGF0aW9uOjJ9KSxufSkoKTtmdW5jdGlvbiBCd2Uobix0KXtpZigxJm4mJihmKDAsImRpdiIsNiksVCgxKSxnKCkpLDImbil7bGV0IGU9dygpO3YoMSksVmUoIiAiLGUuZm9jdXNlZFNvdXJjZUxpbmVTcGVjLmZpbGVfcGF0aCwiICIpfX1mdW5jdGlvbiBWd2Uobix0KXsxJm4mJihmKDAsImRpdiIsNyksVCgxLCIgTm8gZmlsZSBzZWxlY3RlZC4gQ2xpY2sgYSBsaW5lIG51bWJlciBpbiB0aGUgU3RhY2sgVHJhY2Ugc2VjdGlvbiB0byBzaG93IHRoZSBzb3VyY2UgY29kZS4gIiksZygpKX1mdW5jdGlvbiBId2Uobix0KXtpZigxJm4mJmsoMCwic291cmNlLWNvZGUiLDgpLDImbil7bGV0IGU9dygpO2IoImxpbmVzIixlLmZvY3VzZWRTb3VyY2VGaWxlQ29udGVudC5saW5lcykoImZvY3VzZWRMaW5lbm8iLGUuZm9jdXNlZFNvdXJjZUxpbmVTcGVjLmxpbmVubykoInVzZURhcmtNb2RlIixlLnVzZURhcmtNb2RlKX19dmFyIFBZPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLmZvY3VzZWRTb3VyY2VGaWxlQ29udGVudD1udWxsLHRoaXMuZm9jdXNlZFNvdXJjZUxpbmVTcGVjPW51bGx9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInNvdXJjZS1maWxlcy1jb21wb25lbnQiXV0saW5wdXRzOntmb2N1c2VkU291cmNlRmlsZUNvbnRlbnQ6ImZvY3VzZWRTb3VyY2VGaWxlQ29udGVudCIsZm9jdXNlZFNvdXJjZUxpbmVTcGVjOiJmb2N1c2VkU291cmNlTGluZVNwZWMiLHVzZURhcmtNb2RlOiJ1c2VEYXJrTW9kZSJ9LGRlY2xzOjgsdmFyczozLGNvbnN0czpbWzEsInNvdXJjZS1maWxlcy1jb250YWluZXIiXSxbMSwiaGVhZGVyLXNlY3Rpb24iXSxbMSwidGl0bGUtdGFnIl0sWyJjbGFzcyIsImZpbGUtbGFiZWwiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsibm9GaWxlU2VsZWN0ZWQiLCIiXSxbMywibGluZXMiLCJmb2N1c2VkTGluZW5vIiwidXNlRGFya01vZGUiLDQsIm5nSWYiXSxbMSwiZmlsZS1sYWJlbCJdLFsxLCJuby1maWxlLXNlbGVjdGVkIl0sWzMsImxpbmVzIiwiZm9jdXNlZExpbmVubyIsInVzZURhcmtNb2RlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiYoZigwLCJkaXYiLDApKDEsImRpdiIsMSkoMiwiZGl2IiwyKSxUKDMsIlNvdXJjZSBDb2RlIiksZygpLFMoNCxCd2UsMiwxLCJkaXYiLDMpLFMoNSxWd2UsMiwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw0LGp0KSxnKCksUyg3LEh3ZSwxLDMsInNvdXJjZS1jb2RlIiw1KSxnKCkpLDImZSl7bGV0IHI9c3QoNik7dig0KSxiKCJuZ0lmIixudWxsIT09aS5mb2N1c2VkU291cmNlTGluZVNwZWMpKCJuZ0lmRWxzZSIsciksdigzKSxiKCJuZ0lmIixudWxsIT09aS5mb2N1c2VkU291cmNlRmlsZUNvbnRlbnQmJm51bGwhPT1pLmZvY3VzZWRTb3VyY2VMaW5lU3BlYyYmbnVsbCE9PWkuZm9jdXNlZFNvdXJjZUZpbGVDb250ZW50LmxpbmVzKX19LGRlcGVuZGVuY2llczpbTmUsUlldLHN0eWxlczpbJy5oZWFkZXItc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjI0cHg7cGFkZGluZy1ib3R0b206NnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6MTAwJX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuaGVhZGVyLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuaGVhZGVyLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9LmZpbGUtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtd2VpZ2h0Om5vcm1hbDt3aGl0ZS1zcGFjZTpub3JtYWw7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTtvdmVyZmxvdy15OmF1dG87cGFkZGluZzowIDIwcHh9Lm5vLWZpbGUtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbG9yOiM2NjY7cGFkZGluZzowIDIwcHg7d2hpdGUtc3BhY2U6bm9ybWFsfS5zb3VyY2UtZmlsZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZvbnQtZmFtaWx5OiJSb2JvdG8gTW9ubyIsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxMHB4O2hlaWdodDoxMDAlfS50aXRsZS10YWdbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtd2VpZ2h0OmJvbGQ7aGVpZ2h0OjEwMCU7cGFkZGluZy1sZWZ0OjZweDt2ZXJ0aWNhbC1hbGlnbjp0b3B9c291cmNlLWNvZGVbX25nY29udGVudC0lQ09NUCVde2ZsZXgtZ3JvdzoxO3dpZHRoOjEwMCV9J119KSxufSkoKSxrWT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmU9ZSx0aGlzLmZvY3VzZWRTb3VyY2VGaWxlQ29udGVudCQ9dGhpcy5zdG9yZS5zZWxlY3QoUUUpLHRoaXMuZm9jdXNlZFNvdXJjZUxpbmVTcGVjJD10aGlzLnN0b3JlLnNlbGVjdChaRSksdGhpcy51c2VEYXJrTW9kZSQ9dGhpcy5zdG9yZS5zZWxlY3QoUGwpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKEllKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sidGYtZGVidWdnZXItdjItc291cmNlLWZpbGVzIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsImZvY3VzZWRTb3VyY2VGaWxlQ29udGVudCIsImZvY3VzZWRTb3VyY2VMaW5lU3BlYyIsInVzZURhcmtNb2RlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoaygwLCJzb3VyY2UtZmlsZXMtY29tcG9uZW50IiwwKSxVKDEsImFzeW5jIiksVSgyLCJhc3luYyIpLFUoMywiYXN5bmMiKSksMiZlJiZiKCJmb2N1c2VkU291cmNlRmlsZUNvbnRlbnQiLEcoMSwzLGkuZm9jdXNlZFNvdXJjZUZpbGVDb250ZW50JCkpKCJmb2N1c2VkU291cmNlTGluZVNwZWMiLEcoMiw1LGkuZm9jdXNlZFNvdXJjZUxpbmVTcGVjJCkpKCJ1c2VEYXJrTW9kZSIsRygzLDcsaS51c2VEYXJrTW9kZSQpKX0sZGVwZW5kZW5jaWVzOltQWSxjdF0sZW5jYXBzdWxhdGlvbjoyfSksbn0pKCksandlPVsic3RhY2tGcmFtZUFycmF5Il07ZnVuY3Rpb24gR3dlKG4sdCl7aWYoMSZuJiYoZigwLCJzcGFuIiwxMyksVCgxKSxnKCkpLDImbil7bGV0IGU9dygzKTt2KDEpLFZlKCIgIyIsZS5leGVjdXRpb25JbmRleCwiOiAiKX19ZnVuY3Rpb24gV3dlKG4sdCl7aWYoMSZuJiYoZigwLCJzcGFuIiwxNCksVCgxKSxnKCkpLDImbil7bGV0IGU9dygzKTt2KDEpLFZlKCIgIixlLm9wVHlwZSwiICIpfX1mdW5jdGlvbiBxd2Uobix0KXtpZigxJm4mJihmKDAsImRpdiIpLFQoMSwiIEVhZ2VyIGV4ZWN1dGlvbiAiKSxTKDIsR3dlLDIsMSwic3BhbiIsMTEpLFMoMyxXd2UsMiwxLCJzcGFuIiwxMiksZygpKSwyJm4pe2xldCBlPXcoMik7digyKSxiKCJuZ0lmIixudWxsIT09ZS5vcFR5cGUpLHYoMSksYigibmdJZiIsbnVsbCE9PWUub3BUeXBlKX19ZnVuY3Rpb24gWHdlKG4sdCl7aWYoMSZuJiYoZigwLCJzcGFuIiwxNiksVCgxKSxnKCkpLDImbil7bGV0IGU9dygzKTt2KDEpLFZlKCcgIicsZS5vcE5hbWUsJyIgJyl9fWZ1bmN0aW9uIFl3ZShuLHQpe2lmKDEmbiYmKGYoMCwic3BhbiIsMTQpLFQoMSksZygpKSwyJm4pe2xldCBlPXcoMyk7digxKSxWZSgiICIsZS5vcFR5cGUsIiAiKX19ZnVuY3Rpb24gUXdlKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiKSxUKDEsIiBDcmVhdGlvbiBvZiBncmFwaCBvcCAiKSxTKDIsWHdlLDIsMSwic3BhbiIsMTUpLFMoMyxZd2UsMiwxLCJzcGFuIiwxMiksZygpKSwyJm4pe2xldCBlPXcoMik7digyKSxiKCJuZ0lmIixudWxsIT09ZS5vcE5hbWUpLHYoMSksYigibmdJZiIsbnVsbCE9PWUub3BUeXBlKX19ZnVuY3Rpb24gWndlKG4sdCl7aWYoMSZuJiYoZigwLCJzcGFuIiwxNyksVCgxKSxnKCkpLDImbil7bGV0IGU9dygyKTt2KDEpLFZlKCIgKEhvc3QgbmFtZTogIixlLnN0YWNrRnJhbWVzRm9yRGlzcGxheVswXS5ob3N0X25hbWUsIikgIil9fWZ1bmN0aW9uIEt3ZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2Iiw3KSgxLCJzcGFuIikoMiwic3BhbiIsOCksUygzLHF3ZSw0LDIsImRpdiIsOSksUyg0LFF3ZSw0LDIsImRpdiIsOSksZygpKCksZig1LCJkaXYiKSxTKDYsWndlLDIsMSwic3BhbiIsMTApLGcoKSgpKSwyJm4pe2xldCBlPXcoKTt2KDIpLGIoIm5nU3dpdGNoIixlLmNvZGVMb2NhdGlvblR5cGUpLHYoMSksYigibmdTd2l0Y2hDYXNlIixlLkNvZGVMb2NhdGlvblR5cGUuRVhFQ1VUSU9OKSx2KDEpLGIoIm5nU3dpdGNoQ2FzZSIsZS5Db2RlTG9jYXRpb25UeXBlLkdSQVBIX09QX0NSRUFUSU9OKSx2KDIpLGIoIm5nSWYiLG51bGwhPT1lLnN0YWNrRnJhbWVzRm9yRGlzcGxheSYmZS5zdGFja0ZyYW1lc0ZvckRpc3BsYXkubGVuZ3RoPjApfX1mdW5jdGlvbiBKd2Uobix0KXsxJm4mJihmKDAsImRpdiIsMTgpLFQoMSwiIENsaWNrIGFuIGVhZ2VyIGV4ZWN1dGlvbiBvciBncmFwaCBvcCB0byBzaG93IGl0cyBvcmlnaW5hbCBzdGFjayB0cmFjZS4gIiksZygpKX1mdW5jdGlvbiAkd2Uobix0KXsxJm4mJihmKDAsImRpdiIsMjgpLFQoMSwiIFx1MjkxMyAiKSxnKCkpfXZhciBlU2U9ZnVuY3Rpb24obix0KXtyZXR1cm5bbix0XX07ZnVuY3Rpb24gdFNlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiZGl2IiwyMikoMSwiZGl2IiwyMyksVCgyKSxnKCksZigzLCJkaXYiLDI0KSxTKDQsJHdlLDIsMCwiZGl2IiwyNSksZig1LCJkaXYiLDI2KSxBKCJjbGljayIsZnVuY3Rpb24oKXtsZXQgbz1uZShlKS4kaW1wbGljaXQ7cmV0dXJuIGllKHcoMikub25Tb3VyY2VMaW5lQ2xpY2tlZC5lbWl0KG8pKX0pLFQoNiksZygpLGYoNywiZGl2IiwyNyksVCg4KSxnKCkoKSgpfWlmKDImbil7bGV0IGU9dC4kaW1wbGljaXQsaT13KDIpO2IoIm5nQ2xhc3MiLFNvKDYsZVNlLGUuYmVsb25nc1RvRm9jdXNlZEZpbGU/ImZvY3VzZWQtZmlsZSI6IiIsZS5mb2N1c2VkPyJmb2N1c2VkLXN0YWNrLWZyYW1lIjoiIikpLHYoMSksWmkoInRpdGxlIixlLmZpbGVfcGF0aCksdigxKSxWZSgiICIsZS5jb25jaXNlX2ZpbGVfcGF0aCwiICIpLHYoMiksYigibmdJZiIsaS5zdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZSYmZS5mb2N1c2VkKSx2KDIpLFZlKCIgTGluZSAiLGUubGluZW5vLCIgIiksdigyKSxWZSgiICIsZS5mdW5jdGlvbl9uYW1lLCIgIil9fWZ1bmN0aW9uIG5TZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2IiwxOSwyMCksUygyLHRTZSw5LDksImRpdiIsMjEpLGcoKSksMiZuKXtsZXQgZT13KCk7digyKSxiKCJuZ0Zvck9mIixlLnN0YWNrRnJhbWVzRm9yRGlzcGxheSl9fWZ1bmN0aW9uIGlTZShuLHQpe312YXIgT1k9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMuc3RhY2tGcmFtZXNGb3JEaXNwbGF5PW51bGwsdGhpcy5vblNvdXJjZUxpbmVDbGlja2VkPW5ldyBGLHRoaXMuQ29kZUxvY2F0aW9uVHlwZT16b31uZ0FmdGVyVmlld0NoZWNrZWQoKXtpZih2b2lkIDA9PT10aGlzLnN0YWNrRnJhbWVBcnJheSlyZXR1cm47bGV0IGU9dGhpcy5zdGFja0ZyYW1lQXJyYXkubmF0aXZlRWxlbWVudCxpPWUucXVlcnlTZWxlY3RvcigiLmZvY3VzZWQtc3RhY2stZnJhbWUiKTtpZihudWxsIT09aSlyZXR1cm4gdm9pZCB0aGlzLnNjcm9sbFRvRWxlbWVudChlLGkpO2xldCByPWUucXVlcnlTZWxlY3RvcigiLnN0YWNrLWZyYW1lLWNvbnRhaW5lcjpsYXN0LWNoaWxkIik7bnVsbCE9PXImJnRoaXMuc2Nyb2xsVG9FbGVtZW50KGUscil9c2Nyb2xsVG9FbGVtZW50KGUsaSl7ZS5zY3JvbGxUb3A9aS5vZmZzZXRUb3B9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInN0YWNrLXRyYWNlLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJlVlKGp3ZSw1KSwyJmUpe2xldCByO2JlKHI9dmUoKSkmJihpLnN0YWNrRnJhbWVBcnJheT1yLmZpcnN0KX19LGlucHV0czp7Y29kZUxvY2F0aW9uVHlwZToiY29kZUxvY2F0aW9uVHlwZSIsb3BUeXBlOiJvcFR5cGUiLG9wTmFtZToib3BOYW1lIixleGVjdXRpb25JbmRleDoiZXhlY3V0aW9uSW5kZXgiLHN0aWNrVG9Cb3R0b21tb3N0RnJhbWVJbkZvY3VzZWRGaWxlOiJzdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZSIsc3RhY2tGcmFtZXNGb3JEaXNwbGF5OiJzdGFja0ZyYW1lc0ZvckRpc3BsYXkifSxvdXRwdXRzOntvblNvdXJjZUxpbmVDbGlja2VkOiJvblNvdXJjZUxpbmVDbGlja2VkIn0sZGVjbHM6MTAsdmFyczo0LGNvbnN0czpbWzEsInN0YWNrLXRyYWNlLWNvbnRhaW5lciJdLFsxLCJzdGFjay10cmFjZS1oZWFkZXIiXSxbMSwic3RhY2stdHJhY2UtdGl0bGUiXSxbImNsYXNzIiwic3RhY2stdHJhY2UtYXV4LWluZm8iLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsibm9TdGFja1RyYWNlIiwiIl0sWyJjbGFzcyIsInN0YWNrLWZyYW1lLWFycmF5Iiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImxvYWRpbmdTZWN0aW9uIiwiIl0sWzEsInN0YWNrLXRyYWNlLWF1eC1pbmZvIl0sWzEsImNvZGUtbG9jYXRpb24tb3JpZ2luIiwzLCJuZ1N3aXRjaCJdLFs0LCJuZ1N3aXRjaENhc2UiXSxbImNsYXNzIiwic3RhY2stdHJhY2UtaG9zdC1uYW1lIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImVhZ2VyLWV4ZWN1dGlvbi1pbmRleCIsNCwibmdJZiJdLFsiY2xhc3MiLCJvcC10eXBlIiw0LCJuZ0lmIl0sWzEsImVhZ2VyLWV4ZWN1dGlvbi1pbmRleCJdLFsxLCJvcC10eXBlIl0sWyJjbGFzcyIsIm9wLW5hbWUiLDQsIm5nSWYiXSxbMSwib3AtbmFtZSJdLFsxLCJzdGFjay10cmFjZS1ob3N0LW5hbWUiXSxbMSwic3RhY2stdHJhY2UtYXV4LWluZm8iLCJuby1zdGFjay10cmFjZSJdLFsxLCJzdGFjay1mcmFtZS1hcnJheSJdLFsic3RhY2tGcmFtZUFycmF5IiwiIl0sWyJjbGFzcyIsInN0YWNrLWZyYW1lLWNvbnRhaW5lciIsMywibmdDbGFzcyIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsInN0YWNrLWZyYW1lLWNvbnRhaW5lciIsMywibmdDbGFzcyJdLFsxLCJzdGFjay1mcmFtZS1maWxlLXBhdGgiLDMsInRpdGxlIl0sWzEsInN0YWNrLWZyYW1lLWxpbmVuby1mdW5jdGlvbiJdLFsiY2xhc3MiLCJzdGljay10by1ib3R0b21tb3N0LWluZGljYXRvciIsInRpdGxlIiwiU3RpY2tpbmcgdG8gdGhlIGJvdHRvbW1vc3QgZnJhbWUgaW4gdGhlIGN1cnJlbnQgc291cmNlIGZpbGUgd2hlbiBuYXZpZ2F0aW5nIGV4ZWN1dGlvbnMgYW5kIGdyYXBoIG9wcy4gVG8gcmVtb3ZlIHRoaXMgc3RpY2tpbmcsIGNsaWNrIGFueSBub24tYm90dG9tbW9zdCBzdGFjayBmcmFtZS4iLDQsIm5nSWYiXSxbMSwic3RhY2stZnJhbWUtbGluZW5vIiwzLCJjbGljayJdLFsxLCJzdGFjay1mcmFtZS1mdW5jdGlvbiJdLFsidGl0bGUiLCJTdGlja2luZyB0byB0aGUgYm90dG9tbW9zdCBmcmFtZSBpbiB0aGUgY3VycmVudCBzb3VyY2UgZmlsZSB3aGVuIG5hdmlnYXRpbmcgZXhlY3V0aW9ucyBhbmQgZ3JhcGggb3BzLiBUbyByZW1vdmUgdGhpcyBzdGlja2luZywgY2xpY2sgYW55IG5vbi1ib3R0b21tb3N0IHN0YWNrIGZyYW1lLiIsMSwic3RpY2stdG8tYm90dG9tbW9zdC1pbmRpY2F0b3IiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJihmKDAsImRpdiIsMCkoMSwiZGl2IiwxKSgyLCJzcGFuIiwyKSxUKDMsIiBTdGFjayBUcmFjZSAiKSxnKCksUyg0LEt3ZSw3LDQsImRpdiIsMyksUyg1LEp3ZSwyLDAsIm5nLXRlbXBsYXRlIixudWxsLDQsanQpLGcoKSxTKDcsblNlLDMsMSwiZGl2Iiw1KSxTKDgsaVNlLDAsMCwibmctdGVtcGxhdGUiLG51bGwsNixqdCksZygpKSwyJmUpe2xldCByPXN0KDYpLG89c3QoOSk7dig0KSxiKCJuZ0lmIixudWxsIT09aS5jb2RlTG9jYXRpb25UeXBlKSgibmdJZkVsc2UiLHIpLHYoMyksYigibmdJZiIsbnVsbCE9PWkuc3RhY2tGcmFtZXNGb3JEaXNwbGF5KSgibmdJZkVsc2UiLG8pfX0sZGVwZW5kZW5jaWVzOlt3bixubixOZSxtcixrcl0sc3R5bGVzOlsnLmZvY3VzZWQtZmlsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6Ym9sZH0uZm9jdXNlZC1zdGFjay1mcmFtZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxMTEsMCwuMyl9Lm5vLXN0YWNrLXRyYWNlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpncmF5fS5vcC1uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXXt3b3JkLXdyYXA6YW55d2hlcmV9Lm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2VjZWZmMTtib3JkZXI6MXB4IHNvbGlkICNlYmViZWI7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1mYW1pbHk6IlJvYm90byBNb25vIixtb25vc3BhY2U7Zm9udC1zaXplOjEwcHg7aGVpZ2h0OjE0cHg7bGluZS1oZWlnaHQ6MTRweDtwYWRkaW5nOjFweCAzcHg7d2lkdGg6bWF4LWNvbnRlbnR9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAub3AtdHlwZVtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjNTU1fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzQ1NWE2NH0uc3RhY2stZnJhbWUtYXJyYXlbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0bzt3aWR0aDpjYWxjKDEwMCUgLSA4cHgpfS5zdGFjay1mcmFtZS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNhMGEwYTB9LnN0YWNrLWZyYW1lLWZpbGUtcGF0aFtfbmdjb250ZW50LSVDT01QJV17bWF4LXdpZHRoOjE4MHB4O3dpZHRoOjE4MHB4fS5zdGFjay1mcmFtZS1saW5lbm8tZnVuY3Rpb25bX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246cmlnaHQ7d2hpdGUtc3BhY2U6bm93cmFwfS5zdGFjay1mcmFtZS1mdW5jdGlvbltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7bWF4LXdpZHRoOjIwMHB4O3BhZGRpbmctbGVmdDoxMHB4O3RleHQtYWxpZ246bGVmdDt3aGl0ZS1zcGFjZTpub3JtYWw7d2lkdGg6MjAwcHg7d29yZC13cmFwOmFueXdoZXJlfS5zdGFjay1mcmFtZS1saW5lbm9bX25nY29udGVudC0lQ09NUCVde2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDo4MHB4O3RleHQtYWxpZ246bGVmdDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3dpZHRoOjgwcHh9LnN0YWNrLXRyYWNlLWF1eC1pbmZvW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjE1cHg7cGFkZGluZy1sZWZ0OjI0cHh9LnN0YWNrLXRyYWNlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNlYmViZWI7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6Y29sdW1uO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtZmFtaWx5OiJSb2JvdG8gTW9ubyIsbW9ub3NwYWNlO2hlaWdodDoxMDAlO21hcmdpbi1sZWZ0OjhweDttYXgtaGVpZ2h0OjM2MHB4O292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6aGlkZGVuO3BhZGRpbmctbGVmdDo4cHg7d2lkdGg6MTAwJX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuc3RhY2stdHJhY2UtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnN0YWNrLXRyYWNlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICM1NTV9LnN0YWNrLXRyYWNlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Ym94LXNoYWRvdzowIDVweCAzcHggLTNweCAjY2NjO3BhZGRpbmctYm90dG9tOjNweH0uc3RhY2stdHJhY2UtaG9zdC1uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpncmF5fS5zdGFjay10cmFjZS10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6Ym9sZH0uc3RpY2stdG8tYm90dG9tbW9zdC1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjEycHg7cGFkZGluZy1yaWdodDozcHh9J119KSxufSkoKSxGWT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmU9ZSx0aGlzLmNvZGVMb2NhdGlvblR5cGUkPXRoaXMuc3RvcmUucGlwZSh1bihXKGZ5LGk9Pm51bGw9PT1pP251bGw6aS5jb2RlTG9jYXRpb25UeXBlKSkpLHRoaXMub3BUeXBlJD10aGlzLnN0b3JlLnBpcGUodW4oVyhmeSxpPT5udWxsPT09aT9udWxsOmkub3BUeXBlKSkpLHRoaXMub3BOYW1lJD10aGlzLnN0b3JlLnBpcGUodW4oVyhmeSxpPT5udWxsPT09aXx8aS5jb2RlTG9jYXRpb25UeXBlIT09em8uR1JBUEhfT1BfQ1JFQVRJT04/bnVsbDppLm9wTmFtZSkpKSx0aGlzLmV4ZWN1dGlvbkluZGV4JD10aGlzLnN0b3JlLnBpcGUodW4oVyhmeSxpPT5udWxsPT09aXx8aS5jb2RlTG9jYXRpb25UeXBlIT09em8uRVhFQ1VUSU9OP251bGw6aS5leGVjdXRpb25JbmRleCkpKSx0aGlzLnN0aWNrVG9Cb3R0b21tb3N0RnJhbWVJbkZvY3VzZWRGaWxlJD10aGlzLnN0b3JlLnBpcGUodW4oaFkpKSx0aGlzLnN0YWNrRnJhbWVzRm9yRGlzcGxheSQ9dGhpcy5zdG9yZS5waXBlKHVuKFcodVksWkUsKGkscik9PntpZihudWxsPT09aSlyZXR1cm4gbnVsbDtsZXQgbz1bXTtmb3IobGV0IGEgb2YgaSl7bGV0e2hvc3RfbmFtZTpzLGZpbGVfcGF0aDpsLGxpbmVubzpjLGZ1bmN0aW9uX25hbWU6ZH09YSx1PWwuc3BsaXQoIi8iKSxoPW51bGwhPT1yJiZzPT09ci5ob3N0X25hbWUmJmw9PT1yLmZpbGVfcGF0aDtvLnB1c2goe2hvc3RfbmFtZTpzLGZpbGVfcGF0aDpsLGNvbmNpc2VfZmlsZV9wYXRoOnVbdS5sZW5ndGgtMV0sbGluZW5vOmMsZnVuY3Rpb25fbmFtZTpkLGJlbG9uZ3NUb0ZvY3VzZWRGaWxlOmgsZm9jdXNlZDpoJiZjPT09ci5saW5lbm99KX1yZXR1cm4gb30pKSl9b25Tb3VyY2VMaW5lQ2xpY2tlZChlKXtsZXR7aG9zdF9uYW1lOmksZmlsZV9wYXRoOnIsbGluZW5vOm8sZnVuY3Rpb25fbmFtZTphfT1lO3RoaXMuc3RvcmUuZGlzcGF0Y2goTmcoe3N0YWNrRnJhbWU6e2hvc3RfbmFtZTppLGZpbGVfcGF0aDpyLGxpbmVubzpvLGZ1bmN0aW9uX25hbWU6YX19KSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJ0Zi1kZWJ1Z2dlci12Mi1zdGFjay10cmFjZSJdXSxkZWNsczo3LHZhcnM6MTgsY29uc3RzOltbMywiY29kZUxvY2F0aW9uVHlwZSIsIm9wVHlwZSIsIm9wTmFtZSIsImV4ZWN1dGlvbkluZGV4Iiwic3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGUiLCJzdGFja0ZyYW1lc0ZvckRpc3BsYXkiLCJvblNvdXJjZUxpbmVDbGlja2VkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJzdGFjay10cmFjZS1jb21wb25lbnQiLDApLEEoIm9uU291cmNlTGluZUNsaWNrZWQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uU291cmNlTGluZUNsaWNrZWQobyl9KSxVKDEsImFzeW5jIiksVSgyLCJhc3luYyIpLFUoMywiYXN5bmMiKSxVKDQsImFzeW5jIiksVSg1LCJhc3luYyIpLFUoNiwiYXN5bmMiKSxnKCkpLDImZSYmYigiY29kZUxvY2F0aW9uVHlwZSIsRygxLDYsaS5jb2RlTG9jYXRpb25UeXBlJCkpKCJvcFR5cGUiLEcoMiw4LGkub3BUeXBlJCkpKCJvcE5hbWUiLEcoMywxMCxpLm9wTmFtZSQpKSgiZXhlY3V0aW9uSW5kZXgiLEcoNCwxMixpLmV4ZWN1dGlvbkluZGV4JCkpKCJzdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZSIsRyg1LDE0LGkuc3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGUkKSkoInN0YWNrRnJhbWVzRm9yRGlzcGxheSIsRyg2LDE2LGkuc3RhY2tGcmFtZXNGb3JEaXNwbGF5JCkpfSxkZXBlbmRlbmNpZXM6W09ZLGN0XSxlbmNhcHN1bGF0aW9uOjJ9KSxufSkoKSxhU2U9ZnVuY3Rpb24obix0KXtyZXR1cm57dGVuc29yRGVidWdNb2RlOm4sYXJyYXk6dH19O2Z1bmN0aW9uIHNTZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2IiwxMikoMSwiZGl2IiwxMyksVCgyKSxnKCksZigzLCJkaXYiLDE0KSxrKDQsImRlYnVnLXRlbnNvci12YWx1ZSIsMTUpLGcoKSgpKSwyJm4pe2xldCBlPXQuJGltcGxpY2l0LGk9dC5pbmRleCxyPXcoMyk7digyKSxWZSgiT3V0cHV0IHNsb3QgIixpLCI6IiksdigyKSxiKCJkZWJ1Z1RlbnNvclZhbHVlIixyLnBhcnNlRGVidWdUZW5zb3JWYWx1ZShTbygyLGFTZSxyLnRlbnNvckRlYnVnTW9kZSxlKSkpfX1mdW5jdGlvbiBsU2Uobix0KXtpZigxJm4mJihmKDAsImRpdiIsMTApLFMoMSxzU2UsNSw1LCJkaXYiLDExKSxnKCkpLDImbil7bGV0IGU9dygyKTt2KDEpLGIoIm5nRm9yT2YiLGUuZGVidWdUZW5zb3JWYWx1ZXMpfX1mdW5jdGlvbiBjU2Uobix0KXtpZigxJm4mJihmKDAsImRpdiIpKDEsImRpdiIpKDIsImRpdiIsMykoMywic3BhbiIsNCksVCg0LCIgT3A6ICIpLGcoKSxmKDUsInNwYW4iLDUpLFQoNiksZygpKCksZig3LCJkaXYiLDMpKDgsInNwYW4iLDQpLFQoOSwiICMgb2YgaW5wdXQgdGVuc29yczogIiksZygpLGYoMTAsInNwYW4iLDYpLFQoMTEpLGcoKSgpLGYoMTIsImRpdiIsMykoMTMsInNwYW4iLDQpLFQoMTQsIiAjIG9mIG91dHB1dCB0ZW5zb3JzOiAiKSxnKCksZigxNSwic3BhbiIsNyksVCgxNiksZygpLGYoMTcsInNwYW4iLDgpLFQoMTgpLGcoKSgpLFMoMTksbFNlLDIsMSwiZGl2Iiw5KSxnKCkoKSksMiZuKXtsZXQgZT13KCk7dig2KSxWZSgiICIsZS5mb2N1c2VkRXhlY3V0aW9uRGF0YS5vcF90eXBlLCIgIiksdig1KSxWZSgiICIsbnVsbD09ZS5mb2N1c2VkRXhlY3V0aW9uRGF0YS5pbnB1dF90ZW5zb3JfaWRzPzA6ZS5mb2N1c2VkRXhlY3V0aW9uRGF0YS5pbnB1dF90ZW5zb3JfaWRzLmxlbmd0aCwiICIpLHYoNSksVmUoIiAiLG51bGw9PWUuZm9jdXNlZEV4ZWN1dGlvbkRhdGEub3V0cHV0X3RlbnNvcl9pZHM/MDplLmZvY3VzZWRFeGVjdXRpb25EYXRhLm91dHB1dF90ZW5zb3JfaWRzLmxlbmd0aCwiICIpLHYoMiksVmUoIiAoZGVidWcgbW9kZTogIixlLlRlbnNvckRlYnVnTW9kZVtlLnRlbnNvckRlYnVnTW9kZV0sIikgIiksdigxKSxiKCJuZ0lmIixlLmhhc0RlYnVnVGVuc29yVmFsdWVzKX19ZnVuY3Rpb24gZFNlKG4sdCl7fXZhciBOWT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy50ZW5zb3JEZWJ1Z01vZGU9QW8uVU5TUEVDSUZJRUQsdGhpcy5oYXNEZWJ1Z1RlbnNvclZhbHVlcz0hMSx0aGlzLmRlYnVnVGVuc29yVmFsdWVzPW51bGwsdGhpcy5kZWJ1Z1RlbnNvckR0eXBlcz1udWxsLHRoaXMuVGVuc29yRGVidWdNb2RlPUFvLHRoaXMucGFyc2VEZWJ1Z1RlbnNvclZhbHVlPUtFfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJleGVjdXRpb24tZGF0YS1jb21wb25lbnQiXV0saW5wdXRzOntmb2N1c2VkRXhlY3V0aW9uSW5kZXg6ImZvY3VzZWRFeGVjdXRpb25JbmRleCIsZm9jdXNlZEV4ZWN1dGlvbkRhdGE6ImZvY3VzZWRFeGVjdXRpb25EYXRhIix0ZW5zb3JEZWJ1Z01vZGU6InRlbnNvckRlYnVnTW9kZSIsaGFzRGVidWdUZW5zb3JWYWx1ZXM6Imhhc0RlYnVnVGVuc29yVmFsdWVzIixkZWJ1Z1RlbnNvclZhbHVlczoiZGVidWdUZW5zb3JWYWx1ZXMiLGRlYnVnVGVuc29yRHR5cGVzOiJkZWJ1Z1RlbnNvckR0eXBlcyJ9LGRlY2xzOjcsdmFyczozLGNvbnN0czpbWzEsImZvY3VzLWV4ZWN1dGlvbi1jb250YWluZXIiXSxbNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJsb2FkaW5nX3NlY3Rpb24iLCIiXSxbMSwiZXhlY3V0aW9uLWRhdGEtZmllbGQiXSxbMSwiZXhlY3V0aW9uLWRhdGEta2V5Il0sWzEsImV4ZWN1dGlvbi1kYXRhLXZhbHVlIiwib3AtdHlwZSJdLFsxLCJleGVjdXRpb24tZGF0YS12YWx1ZSIsImlucHV0LXRlbnNvcnMiXSxbMSwiZXhlY3V0aW9uLWRhdGEtdmFsdWUiLCJvdXRwdXQtdGVuc29ycyJdLFsxLCJleGVjdXRpb24tZGF0YS12YWx1ZSJdLFsiY2xhc3MiLCJvdXRwdXQtc2xvdHMiLDQsIm5nSWYiXSxbMSwib3V0cHV0LXNsb3RzIl0sWyJjbGFzcyIsIm91dHB1dC1zbG90LWNvbnRhaW5lciIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsIm91dHB1dC1zbG90LWNvbnRhaW5lciJdLFsxLCJvdXRwdXQtc2xvdC1udW1iZXIiXSxbMSwib3V0cHV0LXNsb3QtZGVidWctdGVuc29yLXZhbHVlIl0sWzMsImRlYnVnVGVuc29yVmFsdWUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJihmKDAsImRpdiIsMCkoMSwiZGl2IikoMiwic3BhbiIpLFQoMyksZygpKCksUyg0LGNTZSwyMCw1LCJkaXYiLDEpLFMoNSxkU2UsMCwwLCJuZy10ZW1wbGF0ZSIsbnVsbCwyLGp0KSxnKCkpLDImZSl7bGV0IHI9c3QoNik7digzKSxWZSgiIFB5dGhvbiBFeGVjdXRpb24gIyIsaS5mb2N1c2VkRXhlY3V0aW9uSW5kZXgsIiAiKSx2KDEpLGIoIm5nSWYiLG51bGwhPT1pLmZvY3VzZWRFeGVjdXRpb25EYXRhKSgibmdJZkVsc2UiLHIpfX0sZGVwZW5kZW5jaWVzOltubixOZSxKRV0sc3R5bGVzOlsnLmRlYnVnLXRlbnNvci12YWx1ZXMtdGFibGVbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LmRlYnVnLXRlbnNvci12YWx1ZXMtdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgdGRbX25nY29udGVudC0lQ09NUCVde2JvcmRlci10b3A6MXB4IHNvbGlkICMwMDA7dGV4dC1hbGlnbjpsZWZ0fS5kZWJ1Zy10ZW5zb3ItdmFsdWVzLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWFsaWduOmxlZnR9LmV4ZWN1dGlvbi1kYXRhLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXB9LmV4ZWN1dGlvbi1kYXRhLWtleVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7bWF4LXdpZHRoOjEyMHB4O3RleHQtYWxpZ246cmlnaHQ7d2lkdGg6MTIwcHh9LmV4ZWN1dGlvbi1kYXRhLXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tbGVmdDoxMHB4fS5mb2N1cy1leGVjdXRpb24tY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmNjODA7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1zaXplOjEycHg7aGVpZ2h0OjEyMHB4O3BhZGRpbmc6NXB4O3dpZHRoOjM2MHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5mb2N1cy1leGVjdXRpb24tY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmZvY3VzLWV4ZWN1dGlvbi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2U2NTEwMH0ub3V0cHV0LXNsb3RzW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6NjBweDtvdmVyZmxvdy14OmF1dG87b3ZlcmZsb3cteTphdXRvfS5vdXRwdXQtc2xvdC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci10b3A6MXB4IHNvbGlkICNlYmViZWI7bWFyZ2luLXRvcDo1cHg7cGFkZGluZzoycHggMDt2ZXJ0aWNhbC1hbGlnbjp0b3B9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm91dHB1dC1zbG90LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5vdXRwdXQtc2xvdC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci10b3A6MXB4IHNvbGlkICM1NTV9Lm91dHB1dC1zbG90LW51bWJlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpibG9jaztmb250LWZhbWlseToiUm9ib3RvIE1vbm8iLG1vbm9zcGFjZX0ub3V0cHV0LXNsb3QtZGVidWctdGVuc29yLXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmJsb2NrO21hcmdpbjozcHggMCAzcHggMzBweH0ub3V0cHV0LXRlbnNvcnNbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6NXB4fSddfSksbn0pKCksTFk9IlVua25vd24gZHR5cGUiLEJZPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5zdG9yZT1lLHRoaXMuZm9jdXNlZEV4ZWN1dGlvbkRhdGEkPXRoaXMuc3RvcmUucGlwZSh1bihCaCkpLHRoaXMudGVuc29yRGVidWdNb2RlJD10aGlzLnN0b3JlLnBpcGUodW4oVyhCaCxpPT5udWxsPT09aT9Bby5VTlNQRUNJRklFRDppLnRlbnNvcl9kZWJ1Z19tb2RlKSkpLHRoaXMuaGFzRGVidWdUZW5zb3JWYWx1ZXMkPXRoaXMuc3RvcmUucGlwZSh1bihXKEJoLGk9PntpZihudWxsPT09aXx8bnVsbD09PWkuZGVidWdfdGVuc29yX3ZhbHVlcylyZXR1cm4hMTtmb3IobGV0IHIgb2YgaS5kZWJ1Z190ZW5zb3JfdmFsdWVzKWlmKG51bGwhPT1yJiZyLmxlbmd0aD4wKXJldHVybiEwO3JldHVybiExfSkpKSx0aGlzLmRlYnVnVGVuc29yVmFsdWVzJD10aGlzLnN0b3JlLnBpcGUodW4oVyhCaCxpPT5udWxsPT09aT9udWxsOmkuZGVidWdfdGVuc29yX3ZhbHVlcykpKSx0aGlzLmRlYnVnVGVuc29yRHR5cGVzJD10aGlzLnN0b3JlLnBpcGUodW4oVyhCaCxpPT57aWYobnVsbD09PWl8fG51bGw9PT1pLmRlYnVnX3RlbnNvcl92YWx1ZXN8fGkudGVuc29yX2RlYnVnX21vZGUhPT1Bby5GVUxMX0hFQUxUSCYmaS50ZW5zb3JfZGVidWdfbW9kZSE9PUFvLlNIQVBFKXJldHVybiBudWxsO2xldCByPVtdO2ZvcihsZXQgbyBvZiBpLmRlYnVnX3RlbnNvcl92YWx1ZXMpaWYobnVsbD09PW8pci5wdXNoKExZKTtlbHNle2xldCBhPVN0cmluZyhpLnRlbnNvcl9kZWJ1Z19tb2RlPT09QW8uRlVMTF9IRUFMVEg/b1syXTpvWzFdKTtyLnB1c2goZ3lbYV18fExZKX1yZXR1cm4gcn0pKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJ0Zi1kZWJ1Z2dlci12Mi1leGVjdXRpb24tZGF0YSJdXSxpbnB1dHM6e2ZvY3VzZWRFeGVjdXRpb25JbmRleDoiZm9jdXNlZEV4ZWN1dGlvbkluZGV4In0sZGVjbHM6Nix2YXJzOjE2LGNvbnN0czpbWzMsImZvY3VzZWRFeGVjdXRpb25JbmRleCIsImZvY3VzZWRFeGVjdXRpb25EYXRhIiwidGVuc29yRGVidWdNb2RlIiwiaGFzRGVidWdUZW5zb3JWYWx1ZXMiLCJkZWJ1Z1RlbnNvclZhbHVlcyIsImRlYnVnVGVuc29yRHR5cGVzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoaygwLCJleGVjdXRpb24tZGF0YS1jb21wb25lbnQiLDApLFUoMSwiYXN5bmMiKSxVKDIsImFzeW5jIiksVSgzLCJhc3luYyIpLFUoNCwiYXN5bmMiKSxVKDUsImFzeW5jIikpLDImZSYmYigiZm9jdXNlZEV4ZWN1dGlvbkluZGV4IixpLmZvY3VzZWRFeGVjdXRpb25JbmRleCkoImZvY3VzZWRFeGVjdXRpb25EYXRhIixHKDEsNixpLmZvY3VzZWRFeGVjdXRpb25EYXRhJCkpKCJ0ZW5zb3JEZWJ1Z01vZGUiLEcoMiw4LGkudGVuc29yRGVidWdNb2RlJCkpKCJoYXNEZWJ1Z1RlbnNvclZhbHVlcyIsRygzLDEwLGkuaGFzRGVidWdUZW5zb3JWYWx1ZXMkKSkoImRlYnVnVGVuc29yVmFsdWVzIixHKDQsMTIsaS5kZWJ1Z1RlbnNvclZhbHVlcyQpKSgiZGVidWdUZW5zb3JEdHlwZXMiLEcoNSwxNCxpLmRlYnVnVGVuc29yRHR5cGVzJCkpfSxkZXBlbmRlbmNpZXM6W05ZLGN0XSxlbmNhcHN1bGF0aW9uOjJ9KSxufSkoKSxoU2U9WyJrbm9iIl0sbVNlPVsidmFsdWVJbmRpY2F0b3JDb250YWluZXIiXTtmdW5jdGlvbiBmU2Uobix0KXtpZigxJm4mJihmKDAsImRpdiIsNCw1KSgyLCJkaXYiLDYpKDMsInNwYW4iLDcpLFQoNCksZygpKCkoKSksMiZuKXtsZXQgZT13KCk7dig0KSxrdChlLnZhbHVlSW5kaWNhdG9yVGV4dCl9fXZhciBnU2U9WyJ0cmFja0FjdGl2ZSJdO2Z1bmN0aW9uIF9TZShuLHQpe2lmKDEmbiYmaygwLCJkaXYiKSwyJm4pe2xldCBlPXQuJGltcGxpY2l0LGk9dC5pbmRleCxyPXcoMyk7WG8oMD09PWU/Im1kYy1zbGlkZXJfX3RpY2stbWFyay0tYWN0aXZlIjoibWRjLXNsaWRlcl9fdGljay1tYXJrLS1pbmFjdGl2ZSIpLEJ0KCJ0cmFuc2Zvcm0iLHIuX2NhbGNUaWNrTWFya1RyYW5zZm9ybShpKSl9fWZ1bmN0aW9uIGJTZShuLHQpe2lmKDEmbiYmKEd0KDApLFMoMSxfU2UsMSw0LCJkaXYiLDExKSxXdCgpKSwyJm4pe2xldCBlPXcoMik7digxKSxiKCJuZ0Zvck9mIixlLl90aWNrTWFya3MpfX1mdW5jdGlvbiB2U2Uobix0KXtpZigxJm4mJihmKDAsImRpdiIsOCw5KSxTKDIsYlNlLDIsMSwibmctY29udGFpbmVyIiwxMCksZygpKSwyJm4pe2xldCBlPXcoKTt2KDIpLGIoIm5nSWYiLGUuX2NhY2hlZFdpZHRoKX19ZnVuY3Rpb24geVNlKG4sdCl7aWYoMSZuJiZrKDAsIm1hdC1zbGlkZXItdmlzdWFsLXRodW1iIiw3KSwyJm4pe2xldCBlPXcoKTtiKCJkaXNjcmV0ZSIsZS5kaXNjcmV0ZSkoInRodW1iUG9zaXRpb24iLDEpKCJ2YWx1ZUluZGljYXRvclRleHQiLGUuc3RhcnRWYWx1ZUluZGljYXRvclRleHQpfX12YXIgeFNlPVsiKiJdLHRUPW5ldyB0ZSgiX01hdFNsaWRlciIpLFZZPW5ldyB0ZSgiX01hdFNsaWRlclRodW1iIiksSFk9bmV3IHRlKCJfTWF0U2xpZGVyUmFuZ2VUaHVtYiIpLHpZPW5ldyB0ZSgiX01hdFNsaWRlclZpc3VhbFRodW1iIiksQ1NlPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIsbyl7dGhpcy5fY2RyPWUsdGhpcy5fbmdab25lPWksdGhpcy5fc2xpZGVyPW8sdGhpcy5faXNIb3ZlcmVkPSExLHRoaXMuX2lzQWN0aXZlPSExLHRoaXMuX2lzVmFsdWVJbmRpY2F0b3JWaXNpYmxlPSExLHRoaXMuX29uUG9pbnRlck1vdmU9YT0+e2lmKHRoaXMuX3NsaWRlcklucHV0Ll9pc0ZvY3VzZWQpcmV0dXJuO2xldCBzPXRoaXMuX2hvc3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGw9dGhpcy5faXNTbGlkZXJUaHVtYkhvdmVyZWQoYSxzKTt0aGlzLl9pc0hvdmVyZWQ9bCxsP3RoaXMuX3Nob3dIb3ZlclJpcHBsZSgpOnRoaXMuX2hpZGVSaXBwbGUodGhpcy5faG92ZXJSaXBwbGVSZWYpfSx0aGlzLl9vbk1vdXNlTGVhdmU9KCk9Pnt0aGlzLl9pc0hvdmVyZWQ9ITEsdGhpcy5faGlkZVJpcHBsZSh0aGlzLl9ob3ZlclJpcHBsZVJlZil9LHRoaXMuX29uRm9jdXM9KCk9Pnt0aGlzLl9oaWRlUmlwcGxlKHRoaXMuX2hvdmVyUmlwcGxlUmVmKSx0aGlzLl9zaG93Rm9jdXNSaXBwbGUoKSx0aGlzLl9ob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJtZGMtc2xpZGVyX190aHVtYi0tZm9jdXNlZCIpfSx0aGlzLl9vbkJsdXI9KCk9Pnt0aGlzLl9pc0FjdGl2ZXx8dGhpcy5faGlkZVJpcHBsZSh0aGlzLl9mb2N1c1JpcHBsZVJlZiksdGhpcy5faXNIb3ZlcmVkJiZ0aGlzLl9zaG93SG92ZXJSaXBwbGUoKSx0aGlzLl9ob3N0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJtZGMtc2xpZGVyX190aHVtYi0tZm9jdXNlZCIpfSx0aGlzLl9vbkRyYWdTdGFydD0oKT0+e3RoaXMuX2lzQWN0aXZlPSEwLHRoaXMuX3Nob3dBY3RpdmVSaXBwbGUoKX0sdGhpcy5fb25EcmFnRW5kPSgpPT57dGhpcy5faXNBY3RpdmU9ITEsdGhpcy5faGlkZVJpcHBsZSh0aGlzLl9hY3RpdmVSaXBwbGVSZWYpLHRoaXMuX3NsaWRlcklucHV0Ll9pc0ZvY3VzZWR8fHRoaXMuX2hpZGVSaXBwbGUodGhpcy5fZm9jdXNSaXBwbGVSZWYpfSx0aGlzLl9ob3N0RWxlbWVudD1yLm5hdGl2ZUVsZW1lbnR9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fcmlwcGxlLnJhZGl1cz0yNCx0aGlzLl9zbGlkZXJJbnB1dD10aGlzLl9zbGlkZXIuX2dldElucHV0KHRoaXMudGh1bWJQb3NpdGlvbiksdGhpcy5fc2xpZGVySW5wdXRFbD10aGlzLl9zbGlkZXJJbnB1dC5faG9zdEVsZW1lbnQ7bGV0IGU9dGhpcy5fc2xpZGVySW5wdXRFbDt0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PntlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLl9vblBvaW50ZXJNb3ZlKSxlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLl9vbkRyYWdTdGFydCksZS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuX29uRHJhZ0VuZCksZS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybGVhdmUiLHRoaXMuX29uTW91c2VMZWF2ZSksZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5fb25Gb2N1cyksZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9vbkJsdXIpfSl9bmdPbkRlc3Ryb3koKXtsZXQgZT10aGlzLl9zbGlkZXJJbnB1dEVsO2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuX29uUG9pbnRlck1vdmUpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHRoaXMuX29uRHJhZ1N0YXJ0KSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5fb25EcmFnRW5kKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJsZWF2ZSIsdGhpcy5fb25Nb3VzZUxlYXZlKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9vbkZvY3VzKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX29uQmx1cil9X3Nob3dIb3ZlclJpcHBsZSgpe3RoaXMuX2lzU2hvd2luZ1JpcHBsZSh0aGlzLl9ob3ZlclJpcHBsZVJlZil8fCh0aGlzLl9ob3ZlclJpcHBsZVJlZj10aGlzLl9zaG93UmlwcGxlKHtlbnRlckR1cmF0aW9uOjAsZXhpdER1cmF0aW9uOjB9KSx0aGlzLl9ob3ZlclJpcHBsZVJlZj8uZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJtYXQtbWRjLXNsaWRlci1ob3Zlci1yaXBwbGUiKSl9X3Nob3dGb2N1c1JpcHBsZSgpe3RoaXMuX2lzU2hvd2luZ1JpcHBsZSh0aGlzLl9mb2N1c1JpcHBsZVJlZil8fCh0aGlzLl9mb2N1c1JpcHBsZVJlZj10aGlzLl9zaG93UmlwcGxlKHtlbnRlckR1cmF0aW9uOjAsZXhpdER1cmF0aW9uOjB9LCEwKSx0aGlzLl9mb2N1c1JpcHBsZVJlZj8uZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJtYXQtbWRjLXNsaWRlci1mb2N1cy1yaXBwbGUiKSl9X3Nob3dBY3RpdmVSaXBwbGUoKXt0aGlzLl9pc1Nob3dpbmdSaXBwbGUodGhpcy5fYWN0aXZlUmlwcGxlUmVmKXx8KHRoaXMuX2FjdGl2ZVJpcHBsZVJlZj10aGlzLl9zaG93UmlwcGxlKHtlbnRlckR1cmF0aW9uOjIyNSxleGl0RHVyYXRpb246NDAwfSksdGhpcy5fYWN0aXZlUmlwcGxlUmVmPy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoIm1hdC1tZGMtc2xpZGVyLWFjdGl2ZS1yaXBwbGUiKSl9X2lzU2hvd2luZ1JpcHBsZShlKXtyZXR1cm4gMD09PWU/LnN0YXRlfHwxPT09ZT8uc3RhdGV9X3Nob3dSaXBwbGUoZSxpKXtpZighdGhpcy5fc2xpZGVyLmRpc2FibGVkJiYodGhpcy5fc2hvd1ZhbHVlSW5kaWNhdG9yKCksdGhpcy5fc2xpZGVyLl9pc1JhbmdlJiZ0aGlzLl9zbGlkZXIuX2dldFRodW1iKDE9PT10aGlzLnRodW1iUG9zaXRpb24/MjoxKS5fc2hvd1ZhbHVlSW5kaWNhdG9yKCksIXRoaXMuX3NsaWRlci5fZ2xvYmFsUmlwcGxlT3B0aW9ucz8uZGlzYWJsZWR8fGkpKXJldHVybiB0aGlzLl9yaXBwbGUubGF1bmNoKHthbmltYXRpb246dGhpcy5fc2xpZGVyLl9ub29wQW5pbWF0aW9ucz97ZW50ZXJEdXJhdGlvbjowLGV4aXREdXJhdGlvbjowfTplLGNlbnRlcmVkOiEwLHBlcnNpc3RlbnQ6ITB9KX1faGlkZVJpcHBsZShlKXtpZihlPy5mYWRlT3V0KCksdGhpcy5faXNTaG93aW5nQW55UmlwcGxlKCkpcmV0dXJuO3RoaXMuX3NsaWRlci5faXNSYW5nZXx8dGhpcy5faGlkZVZhbHVlSW5kaWNhdG9yKCk7bGV0IGk9dGhpcy5fZ2V0U2libGluZygpO2kuX2lzU2hvd2luZ0FueVJpcHBsZSgpfHwodGhpcy5faGlkZVZhbHVlSW5kaWNhdG9yKCksaS5faGlkZVZhbHVlSW5kaWNhdG9yKCkpfV9zaG93VmFsdWVJbmRpY2F0b3IoKXt0aGlzLl9ob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJtZGMtc2xpZGVyX190aHVtYi0td2l0aC1pbmRpY2F0b3IiKX1faGlkZVZhbHVlSW5kaWNhdG9yKCl7dGhpcy5faG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgibWRjLXNsaWRlcl9fdGh1bWItLXdpdGgtaW5kaWNhdG9yIil9X2dldFNpYmxpbmcoKXtyZXR1cm4gdGhpcy5fc2xpZGVyLl9nZXRUaHVtYigxPT09dGhpcy50aHVtYlBvc2l0aW9uPzI6MSl9X2dldFZhbHVlSW5kaWNhdG9yQ29udGFpbmVyKCl7cmV0dXJuIHRoaXMuX3ZhbHVlSW5kaWNhdG9yQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50fV9nZXRLbm9iKCl7cmV0dXJuIHRoaXMuX2tub2IubmF0aXZlRWxlbWVudH1faXNTaG93aW5nQW55UmlwcGxlKCl7cmV0dXJuIHRoaXMuX2lzU2hvd2luZ1JpcHBsZSh0aGlzLl9ob3ZlclJpcHBsZVJlZil8fHRoaXMuX2lzU2hvd2luZ1JpcHBsZSh0aGlzLl9mb2N1c1JpcHBsZVJlZil8fHRoaXMuX2lzU2hvd2luZ1JpcHBsZSh0aGlzLl9hY3RpdmVSaXBwbGVSZWYpfV9pc1NsaWRlclRodW1iSG92ZXJlZChlLGkpe2xldCByPWkud2lkdGgvMixsPWUuY2xpZW50WS0oaS55K3IpO3JldHVybiBNYXRoLnBvdyhlLmNsaWVudFgtKGkueCtyKSwyKStNYXRoLnBvdyhsLDIpPE1hdGgucG93KHIsMil9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoUXQpLEMob3QpLEMoeGUpLEModFQpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtYXQtc2xpZGVyLXZpc3VhbC10aHVtYiJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJihVZShLaSw1KSxVZShoU2UsNSksVWUobVNlLDUpKSwyJmUpe2xldCByO2JlKHI9dmUoKSkmJihpLl9yaXBwbGU9ci5maXJzdCksYmUocj12ZSgpKSYmKGkuX2tub2I9ci5maXJzdCksYmUocj12ZSgpKSYmKGkuX3ZhbHVlSW5kaWNhdG9yQ29udGFpbmVyPXIuZmlyc3QpfX0saG9zdEF0dHJzOlsxLCJtZGMtc2xpZGVyX190aHVtYiIsIm1hdC1tZGMtc2xpZGVyLXZpc3VhbC10aHVtYiJdLGlucHV0czp7ZGlzY3JldGU6ImRpc2NyZXRlIix0aHVtYlBvc2l0aW9uOiJ0aHVtYlBvc2l0aW9uIix2YWx1ZUluZGljYXRvclRleHQ6InZhbHVlSW5kaWNhdG9yVGV4dCJ9LGZlYXR1cmVzOltWdChbe3Byb3ZpZGU6elksdXNlRXhpc3Rpbmc6bn1dKV0sZGVjbHM6NCx2YXJzOjIsY29uc3RzOltbImNsYXNzIiwibWRjLXNsaWRlcl9fdmFsdWUtaW5kaWNhdG9yLWNvbnRhaW5lciIsNCwibmdJZiJdLFsxLCJtZGMtc2xpZGVyX190aHVtYi1rbm9iIl0sWyJrbm9iIiwiIl0sWyJtYXRSaXBwbGUiLCIiLDEsIm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yIiwzLCJtYXRSaXBwbGVEaXNhYmxlZCJdLFsxLCJtZGMtc2xpZGVyX192YWx1ZS1pbmRpY2F0b3ItY29udGFpbmVyIl0sWyJ2YWx1ZUluZGljYXRvckNvbnRhaW5lciIsIiJdLFsxLCJtZGMtc2xpZGVyX192YWx1ZS1pbmRpY2F0b3IiXSxbMSwibWRjLXNsaWRlcl9fdmFsdWUtaW5kaWNhdG9yLXRleHQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihTKDAsZlNlLDUsMSwiZGl2IiwwKSxrKDEsImRpdiIsMSwyKSgzLCJkaXYiLDMpKSwyJmUmJihiKCJuZ0lmIixpLmRpc2NyZXRlKSx2KDMpLGIoIm1hdFJpcHBsZURpc2FibGVkIiwhMCkpfSxkZXBlbmRlbmNpZXM6W05lLEtpXSxzdHlsZXM6WyIubWF0LW1kYy1zbGlkZXItdmlzdWFsLXRodW1iIC5tYXQtcmlwcGxle2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9Lm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aWNrLW1hcmtze2p1c3RpZnktY29udGVudDpzdGFydH0ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RpY2stbWFya3MgLm1kYy1zbGlkZXJfX3RpY2stbWFyay0tYWN0aXZlLC5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGljay1tYXJrcyAubWRjLXNsaWRlcl9fdGljay1tYXJrLS1pbmFjdGl2ZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjJweH0iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxNU2U9S28oZ28oY2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5fZWxlbWVudFJlZj1ufX0pLCJwcmltYXJ5IiksSnU9KCgpPT57Y2xhc3MgbiBleHRlbmRzIE1TZXtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZWR9c2V0IGRpc2FibGVkKGUpe3RoaXMuX2Rpc2FibGVkPXZ0KGUpO2xldCBpPXRoaXMuX2dldElucHV0KDIpLHI9dGhpcy5fZ2V0SW5wdXQoMSk7aSYmKGkuZGlzYWJsZWQ9dGhpcy5fZGlzYWJsZWQpLHImJihyLmRpc2FibGVkPXRoaXMuX2Rpc2FibGVkKX1nZXQgZGlzY3JldGUoKXtyZXR1cm4gdGhpcy5fZGlzY3JldGV9c2V0IGRpc2NyZXRlKGUpe3RoaXMuX2Rpc2NyZXRlPXZ0KGUpLHRoaXMuX3VwZGF0ZVZhbHVlSW5kaWNhdG9yVUlzKCl9Z2V0IHNob3dUaWNrTWFya3MoKXtyZXR1cm4gdGhpcy5fc2hvd1RpY2tNYXJrc31zZXQgc2hvd1RpY2tNYXJrcyhlKXt0aGlzLl9zaG93VGlja01hcmtzPXZ0KGUpfWdldCBtaW4oKXtyZXR1cm4gdGhpcy5fbWlufXNldCBtaW4oZSl7bGV0IGk9bWkoZSx0aGlzLl9taW4pO3RoaXMuX21pbiE9PWkmJnRoaXMuX3VwZGF0ZU1pbihpKX1fdXBkYXRlTWluKGUpe2xldCBpPXRoaXMuX21pbjt0aGlzLl9taW49ZSx0aGlzLl9pc1JhbmdlP3RoaXMuX3VwZGF0ZU1pblJhbmdlKHtvbGQ6aSxuZXc6ZX0pOnRoaXMuX3VwZGF0ZU1pbk5vblJhbmdlKGUpLHRoaXMuX29uTWluTWF4T3JTdGVwQ2hhbmdlKCl9X3VwZGF0ZU1pblJhbmdlKGUpe2xldCBpPXRoaXMuX2dldElucHV0KDIpLHI9dGhpcy5fZ2V0SW5wdXQoMSksbz1pLnZhbHVlLGE9ci52YWx1ZTtyLm1pbj1lLm5ldyxpLm1pbj1NYXRoLm1heChlLm5ldyxyLnZhbHVlKSxyLm1heD1NYXRoLm1pbihpLm1heCxpLnZhbHVlKSxyLl91cGRhdGVXaWR0aEluYWN0aXZlKCksaS5fdXBkYXRlV2lkdGhJbmFjdGl2ZSgpLGUubmV3PGUub2xkP3RoaXMuX29uVHJhbnNsYXRlWENoYW5nZUJ5U2lkZUVmZmVjdChpLHIpOnRoaXMuX29uVHJhbnNsYXRlWENoYW5nZUJ5U2lkZUVmZmVjdChyLGkpLG8hPT1pLnZhbHVlJiZ0aGlzLl9vblZhbHVlQ2hhbmdlKGkpLGEhPT1yLnZhbHVlJiZ0aGlzLl9vblZhbHVlQ2hhbmdlKHIpfV91cGRhdGVNaW5Ob25SYW5nZShlKXtsZXQgaT10aGlzLl9nZXRJbnB1dCgyKTtpZihpKXtsZXQgcj1pLnZhbHVlO2kubWluPWUsaS5fdXBkYXRlVGh1bWJVSUJ5VmFsdWUoKSx0aGlzLl91cGRhdGVUcmFja1VJKGkpLHIhPT1pLnZhbHVlJiZ0aGlzLl9vblZhbHVlQ2hhbmdlKGkpfX1nZXQgbWF4KCl7cmV0dXJuIHRoaXMuX21heH1zZXQgbWF4KGUpe2xldCBpPW1pKGUsdGhpcy5fbWF4KTt0aGlzLl9tYXghPT1pJiZ0aGlzLl91cGRhdGVNYXgoaSl9X3VwZGF0ZU1heChlKXtsZXQgaT10aGlzLl9tYXg7dGhpcy5fbWF4PWUsdGhpcy5faXNSYW5nZT90aGlzLl91cGRhdGVNYXhSYW5nZSh7b2xkOmksbmV3OmV9KTp0aGlzLl91cGRhdGVNYXhOb25SYW5nZShlKSx0aGlzLl9vbk1pbk1heE9yU3RlcENoYW5nZSgpfV91cGRhdGVNYXhSYW5nZShlKXtsZXQgaT10aGlzLl9nZXRJbnB1dCgyKSxyPXRoaXMuX2dldElucHV0KDEpLG89aS52YWx1ZSxhPXIudmFsdWU7aS5tYXg9ZS5uZXcsci5tYXg9TWF0aC5taW4oZS5uZXcsaS52YWx1ZSksaS5taW49ci52YWx1ZSxpLl91cGRhdGVXaWR0aEluYWN0aXZlKCksci5fdXBkYXRlV2lkdGhJbmFjdGl2ZSgpLGUubmV3PmUub2xkP3RoaXMuX29uVHJhbnNsYXRlWENoYW5nZUJ5U2lkZUVmZmVjdChyLGkpOnRoaXMuX29uVHJhbnNsYXRlWENoYW5nZUJ5U2lkZUVmZmVjdChpLHIpLG8hPT1pLnZhbHVlJiZ0aGlzLl9vblZhbHVlQ2hhbmdlKGkpLGEhPT1yLnZhbHVlJiZ0aGlzLl9vblZhbHVlQ2hhbmdlKHIpfV91cGRhdGVNYXhOb25SYW5nZShlKXtsZXQgaT10aGlzLl9nZXRJbnB1dCgyKTtpZihpKXtsZXQgcj1pLnZhbHVlO2kubWF4PWUsaS5fdXBkYXRlVGh1bWJVSUJ5VmFsdWUoKSx0aGlzLl91cGRhdGVUcmFja1VJKGkpLHIhPT1pLnZhbHVlJiZ0aGlzLl9vblZhbHVlQ2hhbmdlKGkpfX1nZXQgc3RlcCgpe3JldHVybiB0aGlzLl9zdGVwfXNldCBzdGVwKGUpe2xldCBpPW1pKGUsdGhpcy5fc3RlcCk7dGhpcy5fc3RlcCE9PWkmJnRoaXMuX3VwZGF0ZVN0ZXAoaSl9X3VwZGF0ZVN0ZXAoZSl7dGhpcy5fc3RlcD1lLHRoaXMuX2lzUmFuZ2U/dGhpcy5fdXBkYXRlU3RlcFJhbmdlKCk6dGhpcy5fdXBkYXRlU3RlcE5vblJhbmdlKCksdGhpcy5fb25NaW5NYXhPclN0ZXBDaGFuZ2UoKX1fdXBkYXRlU3RlcFJhbmdlKCl7bGV0IGU9dGhpcy5fZ2V0SW5wdXQoMiksaT10aGlzLl9nZXRJbnB1dCgxKSxyPWUudmFsdWUsbz1pLnZhbHVlLGE9aS52YWx1ZTtlLm1pbj10aGlzLl9taW4saS5tYXg9dGhpcy5fbWF4LGUuc3RlcD10aGlzLl9zdGVwLGkuc3RlcD10aGlzLl9zdGVwLHRoaXMuX3BsYXRmb3JtLlNBRkFSSSYmKGUudmFsdWU9ZS52YWx1ZSxpLnZhbHVlPWkudmFsdWUpLGUubWluPU1hdGgubWF4KHRoaXMuX21pbixpLnZhbHVlKSxpLm1heD1NYXRoLm1pbih0aGlzLl9tYXgsZS52YWx1ZSksaS5fdXBkYXRlV2lkdGhJbmFjdGl2ZSgpLGUuX3VwZGF0ZVdpZHRoSW5hY3RpdmUoKSxlLnZhbHVlPGE/dGhpcy5fb25UcmFuc2xhdGVYQ2hhbmdlQnlTaWRlRWZmZWN0KGksZSk6dGhpcy5fb25UcmFuc2xhdGVYQ2hhbmdlQnlTaWRlRWZmZWN0KGUsaSksciE9PWUudmFsdWUmJnRoaXMuX29uVmFsdWVDaGFuZ2UoZSksbyE9PWkudmFsdWUmJnRoaXMuX29uVmFsdWVDaGFuZ2UoaSl9X3VwZGF0ZVN0ZXBOb25SYW5nZSgpe2xldCBlPXRoaXMuX2dldElucHV0KDIpO2lmKGUpe2xldCBpPWUudmFsdWU7ZS5zdGVwPXRoaXMuX3N0ZXAsdGhpcy5fcGxhdGZvcm0uU0FGQVJJJiYoZS52YWx1ZT1lLnZhbHVlKSxlLl91cGRhdGVUaHVtYlVJQnlWYWx1ZSgpLGkhPT1lLnZhbHVlJiZ0aGlzLl9vblZhbHVlQ2hhbmdlKGUpfX1jb25zdHJ1Y3RvcihlLGkscixvLGEscyxsKXtzdXBlcihvKSx0aGlzLl9uZ1pvbmU9ZSx0aGlzLl9jZHI9aSx0aGlzLl9wbGF0Zm9ybT1yLHRoaXMuX2Rpcj1hLHRoaXMuX2dsb2JhbFJpcHBsZU9wdGlvbnM9cyx0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLl9kaXNjcmV0ZT0hMSx0aGlzLl9zaG93VGlja01hcmtzPSExLHRoaXMuX21pbj0wLHRoaXMuX21heD0xMDAsdGhpcy5fc3RlcD0wLHRoaXMuZGlzcGxheVdpdGg9Yz0+YCR7Y31gLHRoaXMuX3JpcHBsZVJhZGl1cz0yNCx0aGlzLnN0YXJ0VmFsdWVJbmRpY2F0b3JUZXh0PSIiLHRoaXMuZW5kVmFsdWVJbmRpY2F0b3JUZXh0PSIiLHRoaXMuX2lzUmFuZ2U9ITEsdGhpcy5faXNSdGw9ITEsdGhpcy5faGFzVmlld0luaXRpYWxpemVkPSExLHRoaXMuX3RpY2tNYXJrVHJhY2tXaWR0aD0wLHRoaXMuX2hhc0FuaW1hdGlvbj0hMSx0aGlzLl9yZXNpemVUaW1lcj1udWxsLHRoaXMuX2tub2JSYWRpdXM9OCx0aGlzLl90aHVtYnNPdmVybGFwPSExLHRoaXMuX25vb3BBbmltYXRpb25zPSJOb29wQW5pbWF0aW9ucyI9PT1sLHRoaXMuX2RpckNoYW5nZVN1YnNjcmlwdGlvbj10aGlzLl9kaXIuY2hhbmdlLnN1YnNjcmliZSgoKT0+dGhpcy5fb25EaXJDaGFuZ2UoKSksdGhpcy5faXNSdGw9InJ0bCI9PT10aGlzLl9kaXIudmFsdWV9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyJiZ0aGlzLl91cGRhdGVEaW1lbnNpb25zKCk7bGV0IGU9dGhpcy5fZ2V0SW5wdXQoMiksaT10aGlzLl9nZXRJbnB1dCgxKTt0aGlzLl9pc1JhbmdlPSEhZSYmISFpLHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7bGV0IHI9dGhpcy5fZ2V0VGh1bWIoMik7dGhpcy5fcmlwcGxlUmFkaXVzPXIuX3JpcHBsZS5yYWRpdXMsdGhpcy5faW5wdXRQYWRkaW5nPXRoaXMuX3JpcHBsZVJhZGl1cy10aGlzLl9rbm9iUmFkaXVzLHRoaXMuX2lucHV0T2Zmc2V0PXRoaXMuX2tub2JSYWRpdXMsdGhpcy5faXNSYW5nZT90aGlzLl9pbml0VUlSYW5nZShlLGkpOnRoaXMuX2luaXRVSU5vblJhbmdlKGUpLHRoaXMuX3VwZGF0ZVRyYWNrVUkoZSksdGhpcy5fdXBkYXRlVGlja01hcmtVSSgpLHRoaXMuX3VwZGF0ZVRpY2tNYXJrVHJhY2tVSSgpLHRoaXMuX29ic2VydmVIb3N0UmVzaXplKCksdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKX1faW5pdFVJTm9uUmFuZ2UoZSl7ZS5pbml0UHJvcHMoKSxlLmluaXRVSSgpLHRoaXMuX3VwZGF0ZVZhbHVlSW5kaWNhdG9yVUkoZSksdGhpcy5faGFzVmlld0luaXRpYWxpemVkPSEwLGUuX3VwZGF0ZVRodW1iVUlCeVZhbHVlKCl9X2luaXRVSVJhbmdlKGUsaSl7ZS5pbml0UHJvcHMoKSxlLmluaXRVSSgpLGkuaW5pdFByb3BzKCksaS5pbml0VUkoKSxlLl91cGRhdGVNaW5NYXgoKSxpLl91cGRhdGVNaW5NYXgoKSxlLl91cGRhdGVTdGF0aWNTdHlsZXMoKSxpLl91cGRhdGVTdGF0aWNTdHlsZXMoKSx0aGlzLl91cGRhdGVWYWx1ZUluZGljYXRvclVJcygpLHRoaXMuX2hhc1ZpZXdJbml0aWFsaXplZD0hMCxlLl91cGRhdGVUaHVtYlVJQnlWYWx1ZSgpLGkuX3VwZGF0ZVRodW1iVUlCeVZhbHVlKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9kaXJDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMuX3Jlc2l6ZU9ic2VydmVyPW51bGx9X29uRGlyQ2hhbmdlKCl7dGhpcy5faXNSdGw9InJ0bCI9PT10aGlzLl9kaXIudmFsdWUsdGhpcy5faXNSYW5nZT90aGlzLl9vbkRpckNoYW5nZVJhbmdlKCk6dGhpcy5fb25EaXJDaGFuZ2VOb25SYW5nZSgpLHRoaXMuX3VwZGF0ZVRpY2tNYXJrVUkoKX1fb25EaXJDaGFuZ2VSYW5nZSgpe2xldCBlPXRoaXMuX2dldElucHV0KDIpLGk9dGhpcy5fZ2V0SW5wdXQoMSk7ZS5fc2V0SXNMZWZ0VGh1bWIoKSxpLl9zZXRJc0xlZnRUaHVtYigpLGUudHJhbnNsYXRlWD1lLl9jYWxjVHJhbnNsYXRlWEJ5VmFsdWUoKSxpLnRyYW5zbGF0ZVg9aS5fY2FsY1RyYW5zbGF0ZVhCeVZhbHVlKCksZS5fdXBkYXRlU3RhdGljU3R5bGVzKCksaS5fdXBkYXRlU3RhdGljU3R5bGVzKCksZS5fdXBkYXRlV2lkdGhJbmFjdGl2ZSgpLGkuX3VwZGF0ZVdpZHRoSW5hY3RpdmUoKSxlLl91cGRhdGVUaHVtYlVJQnlWYWx1ZSgpLGkuX3VwZGF0ZVRodW1iVUlCeVZhbHVlKCl9X29uRGlyQ2hhbmdlTm9uUmFuZ2UoKXt0aGlzLl9nZXRJbnB1dCgyKS5fdXBkYXRlVGh1bWJVSUJ5VmFsdWUoKX1fb2JzZXJ2ZUhvc3RSZXNpemUoKXt0eXBlb2YgUmVzaXplT2JzZXJ2ZXI+InUifHwhUmVzaXplT2JzZXJ2ZXJ8fHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuX3Jlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMuX2lzQWN0aXZlKCl8fCh0aGlzLl9yZXNpemVUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZVRpbWVyKSx0aGlzLl9vblJlc2l6ZSgpKX0pLHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KX0pfV9pc0FjdGl2ZSgpe3JldHVybiB0aGlzLl9nZXRUaHVtYigxKS5faXNBY3RpdmV8fHRoaXMuX2dldFRodW1iKDIpLl9pc0FjdGl2ZX1fZ2V0VmFsdWUoZT0yKXtsZXQgaT10aGlzLl9nZXRJbnB1dChlKTtyZXR1cm4gaT9pLnZhbHVlOnRoaXMubWlufV9za2lwVXBkYXRlKCl7cmV0dXJuISghdGhpcy5fZ2V0SW5wdXQoMSk/Ll9za2lwVUlVcGRhdGUmJiF0aGlzLl9nZXRJbnB1dCgyKT8uX3NraXBVSVVwZGF0ZSl9X3VwZGF0ZURpbWVuc2lvbnMoKXt0aGlzLl9jYWNoZWRXaWR0aD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgsdGhpcy5fY2FjaGVkTGVmdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdH1fc2V0VHJhY2tBY3RpdmVTdHlsZXMoZSl7bGV0IGk9dGhpcy5fdHJhY2tBY3RpdmUubmF0aXZlRWxlbWVudC5zdHlsZSxyPWUubGVmdCE9PWkubGVmdCYmZS5yaWdodCE9PWkucmlnaHQ7aS5sZWZ0PWUubGVmdCxpLnJpZ2h0PWUucmlnaHQsaS50cmFuc2Zvcm1PcmlnaW49ZS50cmFuc2Zvcm1PcmlnaW4scj8odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoIm1hdC1tZGMtc2xpZGVyLWRpc2FibGUtdHJhY2stYW5pbWF0aW9uIiksdGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUoTHQoMSkpLnN1YnNjcmliZSgoKT0+e3RoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJtYXQtbWRjLXNsaWRlci1kaXNhYmxlLXRyYWNrLWFuaW1hdGlvbiIpLGkudHJhbnNmb3JtPWUudHJhbnNmb3JtfSkpOmkudHJhbnNmb3JtPWUudHJhbnNmb3JtfV9jYWxjVGlja01hcmtUcmFuc2Zvcm0oZSl7cmV0dXJuYHRyYW5zbGF0ZVgoJHtlKih0aGlzLl90aWNrTWFya1RyYWNrV2lkdGgvKHRoaXMuX3RpY2tNYXJrcy5sZW5ndGgtMSkpfXB4YH1fb25UcmFuc2xhdGVYQ2hhbmdlKGUpeyF0aGlzLl9oYXNWaWV3SW5pdGlhbGl6ZWR8fCh0aGlzLl91cGRhdGVUaHVtYlVJKGUpLHRoaXMuX3VwZGF0ZVRyYWNrVUkoZSksdGhpcy5fdXBkYXRlT3ZlcmxhcHBpbmdUaHVtYlVJKGUpKX1fb25UcmFuc2xhdGVYQ2hhbmdlQnlTaWRlRWZmZWN0KGUsaSl7IXRoaXMuX2hhc1ZpZXdJbml0aWFsaXplZHx8KGUuX3VwZGF0ZVRodW1iVUlCeVZhbHVlKCksaS5fdXBkYXRlVGh1bWJVSUJ5VmFsdWUoKSl9X29uVmFsdWVDaGFuZ2UoZSl7IXRoaXMuX2hhc1ZpZXdJbml0aWFsaXplZHx8KHRoaXMuX3VwZGF0ZVZhbHVlSW5kaWNhdG9yVUkoZSksdGhpcy5fdXBkYXRlVGlja01hcmtVSSgpLHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCkpfV9vbk1pbk1heE9yU3RlcENoYW5nZSgpeyF0aGlzLl9oYXNWaWV3SW5pdGlhbGl6ZWR8fCh0aGlzLl91cGRhdGVUaWNrTWFya1VJKCksdGhpcy5fdXBkYXRlVGlja01hcmtUcmFja1VJKCksdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpKX1fb25SZXNpemUoKXtpZih0aGlzLl9oYXNWaWV3SW5pdGlhbGl6ZWQpe2lmKHRoaXMuX3VwZGF0ZURpbWVuc2lvbnMoKSx0aGlzLl9pc1JhbmdlKXtsZXQgZT10aGlzLl9nZXRJbnB1dCgyKSxpPXRoaXMuX2dldElucHV0KDEpO2UuX3VwZGF0ZVRodW1iVUlCeVZhbHVlKCksaS5fdXBkYXRlVGh1bWJVSUJ5VmFsdWUoKSxlLl91cGRhdGVTdGF0aWNTdHlsZXMoKSxpLl91cGRhdGVTdGF0aWNTdHlsZXMoKSxlLl91cGRhdGVNaW5NYXgoKSxpLl91cGRhdGVNaW5NYXgoKSxlLl91cGRhdGVXaWR0aEluYWN0aXZlKCksaS5fdXBkYXRlV2lkdGhJbmFjdGl2ZSgpfWVsc2V7bGV0IGU9dGhpcy5fZ2V0SW5wdXQoMik7ZSYmZS5fdXBkYXRlVGh1bWJVSUJ5VmFsdWUoKX10aGlzLl91cGRhdGVUaWNrTWFya1VJKCksdGhpcy5fdXBkYXRlVGlja01hcmtUcmFja1VJKCksdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKX19X2FyZVRodW1ic092ZXJsYXBwaW5nKCl7bGV0IGU9dGhpcy5fZ2V0SW5wdXQoMSksaT10aGlzLl9nZXRJbnB1dCgyKTtyZXR1cm4hKCFlfHwhaSkmJmkudHJhbnNsYXRlWC1lLnRyYW5zbGF0ZVg8MjB9X3VwZGF0ZU92ZXJsYXBwaW5nVGh1bWJDbGFzc05hbWVzKGUpe2xldCBpPWUuZ2V0U2libGluZygpLHI9dGhpcy5fZ2V0VGh1bWIoZS50aHVtYlBvc2l0aW9uKTt0aGlzLl9nZXRUaHVtYihpLnRodW1iUG9zaXRpb24pLl9ob3N0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJtZGMtc2xpZGVyX190aHVtYi0tdG9wIiksci5faG9zdEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgibWRjLXNsaWRlcl9fdGh1bWItLXRvcCIsdGhpcy5fdGh1bWJzT3ZlcmxhcCl9X3VwZGF0ZU92ZXJsYXBwaW5nVGh1bWJVSShlKXshdGhpcy5faXNSYW5nZXx8dGhpcy5fc2tpcFVwZGF0ZSgpfHx0aGlzLl90aHVtYnNPdmVybGFwIT09dGhpcy5fYXJlVGh1bWJzT3ZlcmxhcHBpbmcoKSYmKHRoaXMuX3RodW1ic092ZXJsYXA9IXRoaXMuX3RodW1ic092ZXJsYXAsdGhpcy5fdXBkYXRlT3ZlcmxhcHBpbmdUaHVtYkNsYXNzTmFtZXMoZSkpfV91cGRhdGVUaHVtYlVJKGUpe3RoaXMuX3NraXBVcGRhdGUoKXx8KHRoaXMuX2dldFRodW1iKDI9PT1lLnRodW1iUG9zaXRpb24/MjoxKS5faG9zdEVsZW1lbnQuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGVYKCR7ZS50cmFuc2xhdGVYfXB4KWApfV91cGRhdGVWYWx1ZUluZGljYXRvclVJKGUpe2lmKHRoaXMuX3NraXBVcGRhdGUoKSlyZXR1cm47bGV0IGk9dGhpcy5kaXNwbGF5V2l0aChlLnZhbHVlKTtpZih0aGlzLl9oYXNWaWV3SW5pdGlhbGl6ZWQ/ZS5fdmFsdWV0ZXh0PWk6ZS5faG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLXZhbHVldGV4dCIsaSksdGhpcy5kaXNjcmV0ZSl7MT09PWUudGh1bWJQb3NpdGlvbj90aGlzLnN0YXJ0VmFsdWVJbmRpY2F0b3JUZXh0PWk6dGhpcy5lbmRWYWx1ZUluZGljYXRvclRleHQ9aTtsZXQgcj10aGlzLl9nZXRUaHVtYihlLnRodW1iUG9zaXRpb24pO2kubGVuZ3RoPDM/ci5faG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibWRjLXNsaWRlcl9fdGh1bWItLXNob3J0LXZhbHVlIik6ci5faG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgibWRjLXNsaWRlcl9fdGh1bWItLXNob3J0LXZhbHVlIil9fV91cGRhdGVWYWx1ZUluZGljYXRvclVJcygpe2xldCBlPXRoaXMuX2dldElucHV0KDIpLGk9dGhpcy5fZ2V0SW5wdXQoMSk7ZSYmdGhpcy5fdXBkYXRlVmFsdWVJbmRpY2F0b3JVSShlKSxpJiZ0aGlzLl91cGRhdGVWYWx1ZUluZGljYXRvclVJKGkpfV91cGRhdGVUaWNrTWFya1RyYWNrVUkoKXtpZighdGhpcy5zaG93VGlja01hcmtzfHx0aGlzLl9za2lwVXBkYXRlKCkpcmV0dXJuO2xldCBlPXRoaXMuX3N0ZXAmJnRoaXMuX3N0ZXA+MD90aGlzLl9zdGVwOjEscj0oTWF0aC5mbG9vcih0aGlzLm1heC9lKSplLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pO3RoaXMuX3RpY2tNYXJrVHJhY2tXaWR0aD10aGlzLl9jYWNoZWRXaWR0aCpyLTZ9X3VwZGF0ZVRyYWNrVUkoZSl7dGhpcy5fc2tpcFVwZGF0ZSgpfHwodGhpcy5faXNSYW5nZT90aGlzLl91cGRhdGVUcmFja1VJUmFuZ2UoZSk6dGhpcy5fdXBkYXRlVHJhY2tVSU5vblJhbmdlKGUpKX1fdXBkYXRlVHJhY2tVSVJhbmdlKGUpe2xldCBpPWUuZ2V0U2libGluZygpO2lmKCFpfHwhdGhpcy5fY2FjaGVkV2lkdGgpcmV0dXJuO2xldCByPU1hdGguYWJzKGkudHJhbnNsYXRlWC1lLnRyYW5zbGF0ZVgpL3RoaXMuX2NhY2hlZFdpZHRoO3RoaXMuX3NldFRyYWNrQWN0aXZlU3R5bGVzKGUuX2lzTGVmdFRodW1iJiZ0aGlzLl9jYWNoZWRXaWR0aD97bGVmdDoiYXV0byIscmlnaHQ6dGhpcy5fY2FjaGVkV2lkdGgtaS50cmFuc2xhdGVYKyJweCIsdHJhbnNmb3JtT3JpZ2luOiJyaWdodCIsdHJhbnNmb3JtOmBzY2FsZVgoJHtyfSlgfTp7bGVmdDpgJHtpLnRyYW5zbGF0ZVh9cHhgLHJpZ2h0OiJhdXRvIix0cmFuc2Zvcm1PcmlnaW46ImxlZnQiLHRyYW5zZm9ybTpgc2NhbGVYKCR7cn0pYH0pfV91cGRhdGVUcmFja1VJTm9uUmFuZ2UoZSl7dGhpcy5fc2V0VHJhY2tBY3RpdmVTdHlsZXModGhpcy5faXNSdGw/e2xlZnQ6ImF1dG8iLHJpZ2h0OiIwcHgiLHRyYW5zZm9ybU9yaWdpbjoicmlnaHQiLHRyYW5zZm9ybTpgc2NhbGVYKCR7MS1lLmZpbGxQZXJjZW50YWdlfSlgfTp7bGVmdDoiMHB4IixyaWdodDoiYXV0byIsdHJhbnNmb3JtT3JpZ2luOiJsZWZ0Iix0cmFuc2Zvcm06YHNjYWxlWCgke2UuZmlsbFBlcmNlbnRhZ2V9KWB9KX1fdXBkYXRlVGlja01hcmtVSSgpe2lmKCF0aGlzLnNob3dUaWNrTWFya3N8fHZvaWQgMD09PXRoaXMuc3RlcHx8dm9pZCAwPT09dGhpcy5taW58fHZvaWQgMD09PXRoaXMubWF4KXJldHVybjtsZXQgZT10aGlzLnN0ZXA+MD90aGlzLnN0ZXA6MTt0aGlzLl9pc1JhbmdlP3RoaXMuX3VwZGF0ZVRpY2tNYXJrVUlSYW5nZShlKTp0aGlzLl91cGRhdGVUaWNrTWFya1VJTm9uUmFuZ2UoZSksdGhpcy5faXNSdGwmJnRoaXMuX3RpY2tNYXJrcy5yZXZlcnNlKCl9X3VwZGF0ZVRpY2tNYXJrVUlOb25SYW5nZShlKXtsZXQgaT10aGlzLl9nZXRWYWx1ZSgpLHI9TWF0aC5tYXgoTWF0aC5yb3VuZCgoaS10aGlzLm1pbikvZSksMCksbz1NYXRoLm1heChNYXRoLnJvdW5kKCh0aGlzLm1heC1pKS9lKSwwKTt0aGlzLl9pc1J0bD9yKys6bysrLHRoaXMuX3RpY2tNYXJrcz1BcnJheShyKS5maWxsKDApLmNvbmNhdChBcnJheShvKS5maWxsKDEpKX1fdXBkYXRlVGlja01hcmtVSVJhbmdlKGUpe2xldCBpPXRoaXMuX2dldFZhbHVlKCkscj10aGlzLl9nZXRWYWx1ZSgxKSxvPU1hdGgubWF4KE1hdGguZmxvb3IoKHItdGhpcy5taW4pL2UpLDApLGE9TWF0aC5tYXgoTWF0aC5mbG9vcigoaS1yKS9lKSsxLDApLHM9TWF0aC5tYXgoTWF0aC5mbG9vcigodGhpcy5tYXgtaSkvZSksMCk7dGhpcy5fdGlja01hcmtzPUFycmF5KG8pLmZpbGwoMSkuY29uY2F0KEFycmF5KGEpLmZpbGwoMCksQXJyYXkocykuZmlsbCgxKSl9X2dldElucHV0KGUpe3JldHVybiAyPT09ZSYmdGhpcy5faW5wdXQ/dGhpcy5faW5wdXQ6dGhpcy5faW5wdXRzPy5sZW5ndGg/MT09PWU/dGhpcy5faW5wdXRzLmZpcnN0OnRoaXMuX2lucHV0cy5sYXN0OnZvaWQgMH1fZ2V0VGh1bWIoZSl7cmV0dXJuIDI9PT1lP3RoaXMuX3RodW1icz8ubGFzdDp0aGlzLl90aHVtYnM/LmZpcnN0fV9zZXRUcmFuc2l0aW9uKGUpe3RoaXMuX2hhc0FuaW1hdGlvbj1lJiYhdGhpcy5fbm9vcEFuaW1hdGlvbnMsdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoIm1hdC1tZGMtc2xpZGVyLXdpdGgtYW5pbWF0aW9uIix0aGlzLl9oYXNBbmltYXRpb24pfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKG90KSxDKFF0KSxDKFZuKSxDKHhlKSxDKHppLDgpLEMoVGgsOCksQyhwaSw4KSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sibWF0LXNsaWRlciJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihlLGkscil7aWYoMSZlJiYoQm4ocixWWSw1KSxCbihyLEhZLDQpKSwyJmUpe2xldCBvO2JlKG89dmUoKSkmJihpLl9pbnB1dD1vLmZpcnN0KSxiZShvPXZlKCkpJiYoaS5faW5wdXRzPW8pfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiYoVWUoZ1NlLDUpLFVlKHpZLDUpKSwyJmUpe2xldCByO2JlKHI9dmUoKSkmJihpLl90cmFja0FjdGl2ZT1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS5fdGh1bWJzPXIpfX0saG9zdEF0dHJzOlsxLCJtYXQtbWRjLXNsaWRlciIsIm1kYy1zbGlkZXIiXSxob3N0VmFyczoxMCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsyJmUmJm50KCJtZGMtc2xpZGVyLS1yYW5nZSIsaS5faXNSYW5nZSkoIm1kYy1zbGlkZXItLWRpc2FibGVkIixpLmRpc2FibGVkKSgibWRjLXNsaWRlci0tZGlzY3JldGUiLGkuZGlzY3JldGUpKCJtZGMtc2xpZGVyLS10aWNrLW1hcmtzIixpLnNob3dUaWNrTWFya3MpKCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsaS5fbm9vcEFuaW1hdGlvbnMpfSxpbnB1dHM6e2NvbG9yOiJjb2xvciIsZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIsZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNjcmV0ZToiZGlzY3JldGUiLHNob3dUaWNrTWFya3M6InNob3dUaWNrTWFya3MiLG1pbjoibWluIixtYXg6Im1heCIsc3RlcDoic3RlcCIsZGlzcGxheVdpdGg6ImRpc3BsYXlXaXRoIn0sZXhwb3J0QXM6WyJtYXRTbGlkZXIiXSxmZWF0dXJlczpbVnQoW3twcm92aWRlOnRULHVzZUV4aXN0aW5nOm59XSksWGVdLG5nQ29udGVudFNlbGVjdG9yczp4U2UsZGVjbHM6OSx2YXJzOjUsY29uc3RzOltbMSwibWRjLXNsaWRlcl9fdHJhY2siXSxbMSwibWRjLXNsaWRlcl9fdHJhY2stLWluYWN0aXZlIl0sWzEsIm1kYy1zbGlkZXJfX3RyYWNrLS1hY3RpdmUiXSxbMSwibWRjLXNsaWRlcl9fdHJhY2stLWFjdGl2ZV9maWxsIl0sWyJ0cmFja0FjdGl2ZSIsIiJdLFsiY2xhc3MiLCJtZGMtc2xpZGVyX190aWNrLW1hcmtzIiw0LCJuZ0lmIl0sWzMsImRpc2NyZXRlIiwidGh1bWJQb3NpdGlvbiIsInZhbHVlSW5kaWNhdG9yVGV4dCIsNCwibmdJZiJdLFszLCJkaXNjcmV0ZSIsInRodW1iUG9zaXRpb24iLCJ2YWx1ZUluZGljYXRvclRleHQiXSxbMSwibWRjLXNsaWRlcl9fdGljay1tYXJrcyJdLFsidGlja01hcmtDb250YWluZXIiLCIiXSxbNCwibmdJZiJdLFszLCJjbGFzcyIsInRyYW5zZm9ybSIsNCwibmdGb3IiLCJuZ0Zvck9mIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZm4oKSxUdCgwKSxmKDEsImRpdiIsMCksaygyLCJkaXYiLDEpLGYoMywiZGl2IiwyKSxrKDQsImRpdiIsMyw0KSxnKCksUyg2LHZTZSwzLDEsImRpdiIsNSksZygpLFMoNyx5U2UsMSwzLCJtYXQtc2xpZGVyLXZpc3VhbC10aHVtYiIsNiksayg4LCJtYXQtc2xpZGVyLXZpc3VhbC10aHVtYiIsNykpLDImZSYmKHYoNiksYigibmdJZiIsaS5zaG93VGlja01hcmtzKSx2KDEpLGIoIm5nSWYiLGkuX2lzUmFuZ2UpLHYoMSksYigiZGlzY3JldGUiLGkuZGlzY3JldGUpKCJ0aHVtYlBvc2l0aW9uIiwyKSgidmFsdWVJbmRpY2F0b3JUZXh0IixpLmVuZFZhbHVlSW5kaWNhdG9yVGV4dCkpfSxkZXBlbmRlbmNpZXM6W25uLE5lLENTZV0sc3R5bGVzOlsnLm1kYy1zbGlkZXJ7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjQ4cHg7bWFyZ2luOjAgMjRweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3VjaC1hY3Rpb246cGFuLXl9Lm1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RyYWNre3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7d2lkdGg6MTAwJX0ubWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdHJhY2stLWFjdGl2ZSwubWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdHJhY2stLWluYWN0aXZle2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlfS5tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190cmFjay0tYWN0aXZle292ZXJmbG93OmhpZGRlbn0ubWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdHJhY2stLWFjdGl2ZV9maWxse2JvcmRlci10b3Atc3R5bGU6c29saWQ7Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmxlZnQ7dHJhbnNmb3JtLW9yaWdpbjpsZWZ0fVtkaXI9cnRsXSAubWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdHJhY2stLWFjdGl2ZV9maWxsLC5tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190cmFjay0tYWN0aXZlX2ZpbGxbZGlyPXJ0bF17LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0O3RyYW5zZm9ybS1vcmlnaW46cmlnaHR9Lm1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RyYWNrLS1pbmFjdGl2ZXtsZWZ0OjA7dG9wOjB9Lm1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RyYWNrLS1pbmFjdGl2ZTo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMCk7Ym9yZGVyLXJhZGl1czppbmhlcml0O2NvbnRlbnQ6IiI7cG9pbnRlci1ldmVudHM6bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsubWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdHJhY2stLWluYWN0aXZlOjpiZWZvcmV7Ym9yZGVyLWNvbG9yOkNhbnZhc1RleHR9fS5tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX192YWx1ZS1pbmRpY2F0b3ItY29udGFpbmVye2JvdHRvbTo0NHB4O2xlZnQ6dmFyKC0tc2xpZGVyLXZhbHVlLWluZGljYXRvci1jb250YWluZXItbGVmdCwgNTAlKTtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OnZhcigtLXNsaWRlci12YWx1ZS1pbmRpY2F0b3ItY29udGFpbmVyLXJpZ2h0KTt0cmFuc2Zvcm06dmFyKC0tc2xpZGVyLXZhbHVlLWluZGljYXRvci1jb250YWluZXItdHJhbnNmb3JtLCB0cmFuc2xhdGVYKC01MCUpKX0ubWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdmFsdWUtaW5kaWNhdG9ye3RyYW5zaXRpb246dHJhbnNmb3JtIDEwMG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLXJhZGl1czo0cHg7ZGlzcGxheTpmbGV4O2hlaWdodDozMnB4O3BhZGRpbmc6MCAxMnB4O3RyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm0tb3JpZ2luOmJvdHRvbX0ubWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdmFsdWUtaW5kaWNhdG9yOjpiZWZvcmV7Ym9yZGVyLWxlZnQ6NnB4IHNvbGlkIHJnYmEoMCwwLDAsMCk7Ym9yZGVyLXJpZ2h0OjZweCBzb2xpZCByZ2JhKDAsMCwwLDApO2JvcmRlci10b3A6NnB4IHNvbGlkO2JvdHRvbTotNXB4O2NvbnRlbnQ6IiI7aGVpZ2h0OjA7bGVmdDp2YXIoLS1zbGlkZXItdmFsdWUtaW5kaWNhdG9yLWNhcmV0LWxlZnQsIDUwJSk7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6dmFyKC0tc2xpZGVyLXZhbHVlLWluZGljYXRvci1jYXJldC1yaWdodCk7dHJhbnNmb3JtOnZhcigtLXNsaWRlci12YWx1ZS1pbmRpY2F0b3ItY2FyZXQtdHJhbnNmb3JtLCB0cmFuc2xhdGVYKC01MCUpKTt3aWR0aDowfS5tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX192YWx1ZS1pbmRpY2F0b3I6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMCk7Ym9yZGVyLXJhZGl1czppbmhlcml0O2NvbnRlbnQ6IiI7cG9pbnRlci1ldmVudHM6bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsubWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdmFsdWUtaW5kaWNhdG9yOjphZnRlcntib3JkZXItY29sb3I6Q2FudmFzVGV4dH19Lm1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RodW1iLS13aXRoLWluZGljYXRvciAubWRjLXNsaWRlcl9fdmFsdWUtaW5kaWNhdG9yLWNvbnRhaW5lcntwb2ludGVyLWV2ZW50czphdXRvfS5tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aHVtYi0td2l0aC1pbmRpY2F0b3IgLm1kYy1zbGlkZXJfX3ZhbHVlLWluZGljYXRvcnt0cmFuc2l0aW9uOnRyYW5zZm9ybSAxMDBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDEpfUBtZWRpYShwcmVmZXJzLXJlZHVjZWQtbW90aW9uKXsubWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdmFsdWUtaW5kaWNhdG9yLC5tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aHVtYi0td2l0aC1pbmRpY2F0b3IgLm1kYy1zbGlkZXJfX3ZhbHVlLWluZGljYXRvcnt0cmFuc2l0aW9uOm5vbmV9fS5tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aHVtYntkaXNwbGF5OmZsZXg7bGVmdDotMjRweDtvdXRsaW5lOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dXNlci1zZWxlY3Q6bm9uZTtoZWlnaHQ6NDhweDt3aWR0aDo0OHB4fS5tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aHVtYi0tdG9we3otaW5kZXg6MX0ubWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGh1bWItLXRvcCAubWRjLXNsaWRlcl9fdGh1bWIta25vYiwubWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGh1bWItLXRvcC5tZGMtc2xpZGVyX190aHVtYjpob3ZlciAubWRjLXNsaWRlcl9fdGh1bWIta25vYiwubWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGh1bWItLXRvcC5tZGMtc2xpZGVyX190aHVtYi0tZm9jdXNlZCAubWRjLXNsaWRlcl9fdGh1bWIta25vYntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjFweDtib3gtc2l6aW5nOmNvbnRlbnQtYm94fS5tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aHVtYi1rbm9ie2JveC1zaXppbmc6Ym9yZGVyLWJveDtsZWZ0OjUwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSl9Lm1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RpY2stbWFya3N7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzowIDFweDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlfS5tZGMtc2xpZGVyLS1kaXNjcmV0ZSAubWRjLXNsaWRlcl9fdGh1bWIsLm1kYy1zbGlkZXItLWRpc2NyZXRlIC5tZGMtc2xpZGVyX190cmFjay0tYWN0aXZlX2ZpbGx7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gODBtcyBlYXNlfUBtZWRpYShwcmVmZXJzLXJlZHVjZWQtbW90aW9uKXsubWRjLXNsaWRlci0tZGlzY3JldGUgLm1kYy1zbGlkZXJfX3RodW1iLC5tZGMtc2xpZGVyLS1kaXNjcmV0ZSAubWRjLXNsaWRlcl9fdHJhY2stLWFjdGl2ZV9maWxse3RyYW5zaXRpb246bm9uZX19Lm1kYy1zbGlkZXItLWRpc2FibGVke2N1cnNvcjphdXRvfS5tZGMtc2xpZGVyLS1kaXNhYmxlZCAubWRjLXNsaWRlcl9fdGh1bWJ7cG9pbnRlci1ldmVudHM6bm9uZX0ubWRjLXNsaWRlcl9faW5wdXR7Y3Vyc29yOnBvaW50ZXI7bGVmdDowO21hcmdpbjowO2hlaWdodDoxMDAlO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCV9Lm1hdC1tZGMtc2xpZGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdXRsaW5lOm5vbmU7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6OHB4O3dpZHRoOmF1dG87bWluLXdpZHRoOjExMnB4Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApfS5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGh1bWIta25vYntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1zbGlkZXItaGFuZGxlLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSkpO2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtc2xpZGVyLWhhbmRsZS1jb2xvciwgdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpKX0ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RodW1iLS10b3AgLm1kYy1zbGlkZXJfX3RodW1iLWtub2IsLm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aHVtYi0tdG9wLm1kYy1zbGlkZXJfX3RodW1iOmhvdmVyIC5tZGMtc2xpZGVyX190aHVtYi1rbm9iLC5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGh1bWItLXRvcC5tZGMtc2xpZGVyX190aHVtYi0tZm9jdXNlZCAubWRjLXNsaWRlcl9fdGh1bWIta25vYntib3JkZXItY29sb3I6I2ZmZn0ubWF0LW1kYy1zbGlkZXIubWRjLXNsaWRlci0tZGlzYWJsZWQgLm1kYy1zbGlkZXJfX3RodW1iLWtub2J7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtc2xpZGVyLWRpc2FibGVkLWhhbmRsZS1jb2xvciwgdmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApKTtib3JkZXItY29sb3I6dmFyKC0tbWRjLXNsaWRlci1kaXNhYmxlZC1oYW5kbGUtY29sb3IsIHZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKSl9Lm1hdC1tZGMtc2xpZGVyLm1kYy1zbGlkZXItLWRpc2FibGVkIC5tZGMtc2xpZGVyX190aHVtYi0tdG9wIC5tZGMtc2xpZGVyX190aHVtYi1rbm9iLC5tYXQtbWRjLXNsaWRlci5tZGMtc2xpZGVyLS1kaXNhYmxlZCAubWRjLXNsaWRlcl9fdGh1bWItLXRvcC5tZGMtc2xpZGVyX190aHVtYjpob3ZlciAubWRjLXNsaWRlcl9fdGh1bWIta25vYiwubWF0LW1kYy1zbGlkZXIubWRjLXNsaWRlci0tZGlzYWJsZWQgLm1kYy1zbGlkZXJfX3RodW1iLS10b3AubWRjLXNsaWRlcl9fdGh1bWItLWZvY3VzZWQgLm1kYy1zbGlkZXJfX3RodW1iLWtub2J7Ym9yZGVyLWNvbG9yOiNmZmZ9Lm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aHVtYjo6YmVmb3JlLC5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGh1bWI6OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLXNsaWRlci1oYW5kbGUtY29sb3IsIHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKSl9Lm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aHVtYjpob3Zlcjo6YmVmb3JlLC5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGh1bWIubWRjLXJpcHBsZS1zdXJmYWNlLS1ob3Zlcjo6YmVmb3Jle29wYWNpdHk6dmFyKC0tbWRjLXJpcHBsZS1ob3Zlci1vcGFjaXR5LCAwLjA0KX0ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RodW1iLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlLC5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGh1bWI6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3Jle3RyYW5zaXRpb24tZHVyYXRpb246NzVtcztvcGFjaXR5OnZhcigtLW1kYy1yaXBwbGUtZm9jdXMtb3BhY2l0eSwgMC4xMil9Lm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aHVtYjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlcnt0cmFuc2l0aW9uOm9wYWNpdHkgMTUwbXMgbGluZWFyfS5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGh1bWI6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVye3RyYW5zaXRpb24tZHVyYXRpb246NzVtcztvcGFjaXR5OnZhcigtLW1kYy1yaXBwbGUtcHJlc3Mtb3BhY2l0eSwgMC4xMil9Lm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aHVtYi5tZGMtcmlwcGxlLXVwZ3JhZGVkey0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OnZhcigtLW1kYy1yaXBwbGUtcHJlc3Mtb3BhY2l0eSwgMC4xMil9Lm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190cmFjay0tYWN0aXZlX2ZpbGx7Ym9yZGVyLWNvbG9yOnZhcigtLW1kYy1zbGlkZXItYWN0aXZlLXRyYWNrLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSkpfS5tYXQtbWRjLXNsaWRlci5tZGMtc2xpZGVyLS1kaXNhYmxlZCAubWRjLXNsaWRlcl9fdHJhY2stLWFjdGl2ZV9maWxse2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtc2xpZGVyLWRpc2FibGVkLWFjdGl2ZS10cmFjay1jb2xvciwgdmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApKX0ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RyYWNrLS1pbmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1zbGlkZXItaW5hY3RpdmUtdHJhY2stY29sb3IsIHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKSk7b3BhY2l0eTouMjR9Lm1hdC1tZGMtc2xpZGVyLm1kYy1zbGlkZXItLWRpc2FibGVkIC5tZGMtc2xpZGVyX190cmFjay0taW5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtc2xpZGVyLWRpc2FibGVkLWluYWN0aXZlLXRyYWNrLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCkpO29wYWNpdHk6LjI0fS5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGljay1tYXJrLS1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1hY3RpdmUtY29udGFpbmVyLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtb24tcHJpbWFyeSwgI2ZmZikpO29wYWNpdHk6dmFyKC0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtYWN0aXZlLWNvbnRhaW5lci1vcGFjaXR5LCAwLjYpfS5tYXQtbWRjLXNsaWRlci5tZGMtc2xpZGVyLS1kaXNhYmxlZCAubWRjLXNsaWRlcl9fdGljay1tYXJrLS1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1hY3RpdmUtY29udGFpbmVyLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtb24tcHJpbWFyeSwgI2ZmZikpO29wYWNpdHk6dmFyKC0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtYWN0aXZlLWNvbnRhaW5lci1vcGFjaXR5LCAwLjYpfS5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGljay1tYXJrLS1pbmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1zbGlkZXItd2l0aC10aWNrLW1hcmtzLWluYWN0aXZlLWNvbnRhaW5lci1jb2xvciwgdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpKTtvcGFjaXR5OnZhcigtLW1kYy1zbGlkZXItd2l0aC10aWNrLW1hcmtzLWluYWN0aXZlLWNvbnRhaW5lci1vcGFjaXR5LCAwLjYpfS5tYXQtbWRjLXNsaWRlci5tZGMtc2xpZGVyLS1kaXNhYmxlZCAubWRjLXNsaWRlcl9fdGljay1tYXJrLS1pbmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1zbGlkZXItd2l0aC10aWNrLW1hcmtzLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvciwgdmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApKTtvcGFjaXR5OnZhcigtLW1kYy1zbGlkZXItd2l0aC10aWNrLW1hcmtzLWluYWN0aXZlLWNvbnRhaW5lci1vcGFjaXR5LCAwLjYpfS5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdmFsdWUtaW5kaWNhdG9ye2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLXNsaWRlci1sYWJlbC1jb250YWluZXItY29sb3IsICM2NjY2NjYpO29wYWNpdHk6MX0ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3ZhbHVlLWluZGljYXRvcjo6YmVmb3Jle2JvcmRlci10b3AtY29sb3I6dmFyKC0tbWRjLXNsaWRlci1sYWJlbC1jb250YWluZXItY29sb3IsICM2NjY2NjYpfS5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdmFsdWUtaW5kaWNhdG9ye2NvbG9yOnZhcigtLW1kYy1zbGlkZXItbGFiZWwtbGFiZWwtdGV4dC1jb2xvciwgdmFyKC0tbWRjLXRoZW1lLW9uLXByaW1hcnksICNmZmYpKX0ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RyYWNre2hlaWdodDp2YXIoLS1tZGMtc2xpZGVyLWluYWN0aXZlLXRyYWNrLWhlaWdodCwgNHB4KX0ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RyYWNrLS1hY3RpdmV7aGVpZ2h0OnZhcigtLW1kYy1zbGlkZXItYWN0aXZlLXRyYWNrLWhlaWdodCwgNnB4KTt0b3A6Y2FsYygodmFyKC0tbWRjLXNsaWRlci1pbmFjdGl2ZS10cmFjay1oZWlnaHQsIDRweCkgLSB2YXIoLS1tZGMtc2xpZGVyLWFjdGl2ZS10cmFjay1oZWlnaHQsIDZweCkpIC8gMil9Lm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190cmFjay0tYWN0aXZlX2ZpbGx7Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1tZGMtc2xpZGVyLWFjdGl2ZS10cmFjay1oZWlnaHQsIDZweCl9Lm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190cmFjay0taW5hY3RpdmV7aGVpZ2h0OnZhcigtLW1kYy1zbGlkZXItaW5hY3RpdmUtdHJhY2staGVpZ2h0LCA0cHgpfS5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGljay1tYXJrLS1hY3RpdmUsLm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aWNrLW1hcmstLWluYWN0aXZle2hlaWdodDp2YXIoLS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1jb250YWluZXItc2l6ZSwgMnB4KTt3aWR0aDp2YXIoLS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1jb250YWluZXItc2l6ZSwgMnB4KX0ubWF0LW1kYy1zbGlkZXIubWRjLXNsaWRlci0tZGlzYWJsZWR7b3BhY2l0eTowLjM4fS5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdmFsdWUtaW5kaWNhdG9yLXRleHR7bGV0dGVyLXNwYWNpbmc6dmFyKC0tbWRjLXNsaWRlci1sYWJlbC1sYWJlbC10ZXh0LXRyYWNraW5nLCAwLjAwNzE0Mjg1NzFlbSk7Zm9udC1zaXplOnZhcigtLW1kYy1zbGlkZXItbGFiZWwtbGFiZWwtdGV4dC1zaXplLCAwLjg3NXJlbSk7Zm9udC1mYW1pbHk6dmFyKC0tbWRjLXNsaWRlci1sYWJlbC1sYWJlbC10ZXh0LWZvbnQsIFJvYm90bywgc2Fucy1zZXJpZik7Zm9udC13ZWlnaHQ6dmFyKC0tbWRjLXNsaWRlci1sYWJlbC1sYWJlbC10ZXh0LXdlaWdodCwgNTAwKTtsaW5lLWhlaWdodDp2YXIoLS1tZGMtc2xpZGVyLWxhYmVsLWxhYmVsLXRleHQtbGluZS1oZWlnaHQsIDEuMzc1cmVtKX0ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RyYWNrLS1hY3RpdmV7Ym9yZGVyLXJhZGl1czp2YXIoLS1tZGMtc2xpZGVyLWFjdGl2ZS10cmFjay1zaGFwZSwgOTk5OXB4KX0ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RyYWNrLS1pbmFjdGl2ZXtib3JkZXItcmFkaXVzOnZhcigtLW1kYy1zbGlkZXItaW5hY3RpdmUtdHJhY2stc2hhcGUsIDk5OTlweCl9Lm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aHVtYi1rbm9ie2JvcmRlci1yYWRpdXM6dmFyKC0tbWRjLXNsaWRlci1oYW5kbGUtc2hhcGUsIDUwJSk7d2lkdGg6dmFyKC0tbWRjLXNsaWRlci1oYW5kbGUtd2lkdGgsIDIwcHgpO2hlaWdodDp2YXIoLS1tZGMtc2xpZGVyLWhhbmRsZS1oZWlnaHQsIDIwcHgpO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6Y2FsYyh2YXIoLS1tZGMtc2xpZGVyLWhhbmRsZS1oZWlnaHQsIDIwcHgpIC8gMikgY2FsYyh2YXIoLS1tZGMtc2xpZGVyLWhhbmRsZS13aWR0aCwgMjBweCkgLyAyKX0ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RpY2stbWFyay0tYWN0aXZlLC5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGljay1tYXJrLS1pbmFjdGl2ZXtib3JkZXItcmFkaXVzOnZhcigtLW1kYy1zbGlkZXItd2l0aC10aWNrLW1hcmtzLWNvbnRhaW5lci1zaGFwZSwgNTAlKX0ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RodW1iLWtub2J7Ym94LXNoYWRvdzp2YXIoLS1tZGMtc2xpZGVyLWhhbmRsZS1lbGV2YXRpb24sIDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMikpfS5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGh1bWI6aG92ZXIgLm1kYy1zbGlkZXJfX3RodW1iLWtub2J7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtc2xpZGVyLWhvdmVyLWhhbmRsZS1jb2xvciwgdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpKTtib3JkZXItY29sb3I6dmFyKC0tbWRjLXNsaWRlci1ob3Zlci1oYW5kbGUtY29sb3IsIHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKSl9Lm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aHVtYjpob3ZlciAubWRjLXNsaWRlcl9fdGh1bWItLXRvcCAubWRjLXNsaWRlcl9fdGh1bWIta25vYiwubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RodW1iOmhvdmVyIC5tZGMtc2xpZGVyX190aHVtYi0tdG9wLm1kYy1zbGlkZXJfX3RodW1iOmhvdmVyIC5tZGMtc2xpZGVyX190aHVtYi1rbm9iLC5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGh1bWI6aG92ZXIgLm1kYy1zbGlkZXJfX3RodW1iLS10b3AubWRjLXNsaWRlcl9fdGh1bWItLWZvY3VzZWQgLm1kYy1zbGlkZXJfX3RodW1iLWtub2J7Ym9yZGVyLWNvbG9yOiNmZmZ9Lm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aHVtYi0tZm9jdXNlZCAubWRjLXNsaWRlcl9fdGh1bWIta25vYntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1zbGlkZXItZm9jdXMtaGFuZGxlLWNvbG9yLCB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSkpO2JvcmRlci1jb2xvcjp2YXIoLS1tZGMtc2xpZGVyLWZvY3VzLWhhbmRsZS1jb2xvciwgdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpKX0ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RodW1iLS1mb2N1c2VkIC5tZGMtc2xpZGVyX190aHVtYi0tdG9wIC5tZGMtc2xpZGVyX190aHVtYi1rbm9iLC5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGh1bWItLWZvY3VzZWQgLm1kYy1zbGlkZXJfX3RodW1iLS10b3AubWRjLXNsaWRlcl9fdGh1bWI6aG92ZXIgLm1kYy1zbGlkZXJfX3RodW1iLWtub2IsLm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aHVtYi0tZm9jdXNlZCAubWRjLXNsaWRlcl9fdGh1bWItLXRvcC5tZGMtc2xpZGVyX190aHVtYi0tZm9jdXNlZCAubWRjLXNsaWRlcl9fdGh1bWIta25vYntib3JkZXItY29sb3I6I2ZmZn0ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RodW1iOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSAubWRjLXNsaWRlcl9fdGh1bWItLXRvcCAubWRjLXNsaWRlcl9fdGh1bWIta25vYiwubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RodW1iOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSAubWRjLXNsaWRlcl9fdGh1bWItLXRvcC5tZGMtc2xpZGVyX190aHVtYjpob3ZlciAubWRjLXNsaWRlcl9fdGh1bWIta25vYiwubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RodW1iOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSAubWRjLXNsaWRlcl9fdGh1bWItLXRvcC5tZGMtc2xpZGVyX190aHVtYi0tZm9jdXNlZCAubWRjLXNsaWRlcl9fdGh1bWIta25vYntib3JkZXItY29sb3I6I2ZmZn0ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RodW1iLS10b3AgLm1kYy1zbGlkZXJfX3RodW1iLWtub2IsLm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190aHVtYi0tdG9wLm1kYy1zbGlkZXJfX3RodW1iOmhvdmVyIC5tZGMtc2xpZGVyX190aHVtYi1rbm9iLC5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdGh1bWItLXRvcC5tZGMtc2xpZGVyX190aHVtYi0tZm9jdXNlZCAubWRjLXNsaWRlcl9fdGh1bWIta25vYntib3JkZXItY29sb3I6dmFyKC0tbWRjLXNsaWRlci13aXRoLW92ZXJsYXAtaGFuZGxlLW91dGxpbmUtY29sb3IsICNmZmYpO2JvcmRlci13aWR0aDp2YXIoLS1tZGMtc2xpZGVyLXdpdGgtb3ZlcmxhcC1oYW5kbGUtb3V0bGluZS13aWR0aCwgMXB4KX0ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX2lucHV0e2JveC1zaXppbmc6Y29udGVudC1ib3g7cG9pbnRlci1ldmVudHM6YXV0b30ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX2lucHV0Lm1hdC1tZGMtc2xpZGVyLWlucHV0LW5vLXBvaW50ZXItZXZlbnRze3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX19pbnB1dC5tYXQtc2xpZGVyX19yaWdodC1pbnB1dHtsZWZ0OmF1dG87cmlnaHQ6MH0ubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RodW1iLC5tYXQtbWRjLXNsaWRlciAubWRjLXNsaWRlcl9fdHJhY2stLWFjdGl2ZV9maWxse3RyYW5zaXRpb24tZHVyYXRpb246MG1zfS5tYXQtbWRjLXNsaWRlci5tYXQtbWRjLXNsaWRlci13aXRoLWFuaW1hdGlvbiAubWRjLXNsaWRlcl9fdGh1bWIsLm1hdC1tZGMtc2xpZGVyLm1hdC1tZGMtc2xpZGVyLXdpdGgtYW5pbWF0aW9uIC5tZGMtc2xpZGVyX190cmFjay0tYWN0aXZlX2ZpbGx7dHJhbnNpdGlvbi1kdXJhdGlvbjo4MG1zfS5tYXQtbWRjLXNsaWRlci5tYXQtbWRjLXNsaWRlci13aXRoLWFuaW1hdGlvbi5tYXQtbWRjLXNsaWRlci1kaXNhYmxlLXRyYWNrLWFuaW1hdGlvbiAubWRjLXNsaWRlcl9fdHJhY2stLWFjdGl2ZV9maWxse3RyYW5zaXRpb24tZHVyYXRpb246MG1zfS5tYXQtbWRjLXNsaWRlci5tZGMtc2xpZGVyLS1kaXNjcmV0ZSAubWRjLXNsaWRlcl9fdGh1bWIsLm1hdC1tZGMtc2xpZGVyLm1kYy1zbGlkZXItLWRpc2NyZXRlIC5tZGMtc2xpZGVyX190cmFjay0tYWN0aXZlX2ZpbGx7dHJhbnNpdGlvbi1kdXJhdGlvbjowbXN9Lm1hdC1tZGMtc2xpZGVyLm1hdC1tZGMtc2xpZGVyLXdpdGgtYW5pbWF0aW9uIC5tZGMtc2xpZGVyX190aHVtYiwubWF0LW1kYy1zbGlkZXIubWF0LW1kYy1zbGlkZXItd2l0aC1hbmltYXRpb24gLm1kYy1zbGlkZXJfX3RyYWNrLS1hY3RpdmVfZmlsbHt0cmFuc2l0aW9uLWR1cmF0aW9uOjgwbXN9Lm1hdC1tZGMtc2xpZGVyLm1hdC1tZGMtc2xpZGVyLXdpdGgtYW5pbWF0aW9uLm1hdC1tZGMtc2xpZGVyLWRpc2FibGUtdHJhY2stYW5pbWF0aW9uIC5tZGMtc2xpZGVyX190cmFjay0tYWN0aXZlX2ZpbGx7dHJhbnNpdGlvbi1kdXJhdGlvbjowbXN9Lm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190cmFjaywubWF0LW1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RodW1ie3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1hdC1tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX192YWx1ZS1pbmRpY2F0b3J7b3BhY2l0eTp2YXIoLS1tYXQtbWRjLXNsaWRlci12YWx1ZS1pbmRpY2F0b3Itb3BhY2l0eSwgMSl9Lm1hdC1tZGMtc2xpZGVyIC5tYXQtcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tYXQtbWRjLXNsaWRlci1yaXBwbGUtY29sb3IsIHRyYW5zcGFyZW50KX0ubWF0LW1kYy1zbGlkZXIgLm1hdC1yaXBwbGUgLm1hdC1tZGMtc2xpZGVyLWhvdmVyLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1hdC1tZGMtc2xpZGVyLWhvdmVyLXJpcHBsZS1jb2xvciwgdHJhbnNwYXJlbnQpfS5tYXQtbWRjLXNsaWRlciAubWF0LXJpcHBsZSAubWF0LW1kYy1zbGlkZXItZm9jdXMtcmlwcGxlLC5tYXQtbWRjLXNsaWRlciAubWF0LXJpcHBsZSAubWF0LW1kYy1zbGlkZXItYWN0aXZlLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1hdC1tZGMtc2xpZGVyLWZvY3VzLXJpcHBsZS1jb2xvciwgdHJhbnNwYXJlbnQpfS5tYXQtbWRjLXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tZGMtc2xpZGVyLS1kaXNjcmV0ZSAubWRjLXNsaWRlcl9fdGh1bWIsLm1hdC1tZGMtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1kYy1zbGlkZXItLWRpc2NyZXRlIC5tZGMtc2xpZGVyX190cmFjay0tYWN0aXZlX2ZpbGwsLm1hdC1tZGMtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tZGMtc2xpZGVyX192YWx1ZS1pbmRpY2F0b3J7dHJhbnNpdGlvbjpub25lfS5tYXQtbWRjLXNsaWRlciAubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXtib3JkZXItcmFkaXVzOjUwJX0ubWRjLXNsaWRlcl9fdGh1bWItLWZvY3VzZWQgLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmV7Y29udGVudDoiIn0nXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSx3U2U9e3Byb3ZpZGU6WHIsdXNlRXhpc3Rpbmc6V24oKCk9PiR1KSxtdWx0aTohMH0sU1NlPXtwcm92aWRlOlhyLHVzZUV4aXN0aW5nOlduKCgpPT52TiksbXVsdGk6ITB9LCR1PSgoKT0+e2NsYXNzIG57Z2V0IHZhbHVlKCl7cmV0dXJuIG1pKHRoaXMuX2hvc3RFbGVtZW50LnZhbHVlKX1zZXQgdmFsdWUoZSl7bGV0IGk9bWkoZSkudG9TdHJpbmcoKTt0aGlzLl9oYXNTZXRJbml0aWFsVmFsdWU/dGhpcy5faXNBY3RpdmV8fCh0aGlzLl9ob3N0RWxlbWVudC52YWx1ZT1pLHRoaXMuX3VwZGF0ZVRodW1iVUlCeVZhbHVlKCksdGhpcy5fc2xpZGVyLl9vblZhbHVlQ2hhbmdlKHRoaXMpLHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCkpOnRoaXMuX2luaXRpYWxWYWx1ZT1pfWdldCB0cmFuc2xhdGVYKCl7cmV0dXJuIHRoaXMuX3NsaWRlci5taW4+PXRoaXMuX3NsaWRlci5tYXg/KHRoaXMuX3RyYW5zbGF0ZVg9MCx0aGlzLl90cmFuc2xhdGVYKToodm9pZCAwPT09dGhpcy5fdHJhbnNsYXRlWCYmKHRoaXMuX3RyYW5zbGF0ZVg9dGhpcy5fY2FsY1RyYW5zbGF0ZVhCeVZhbHVlKCkpLHRoaXMuX3RyYW5zbGF0ZVgpfXNldCB0cmFuc2xhdGVYKGUpe3RoaXMuX3RyYW5zbGF0ZVg9ZX1nZXQgbWluKCl7cmV0dXJuIG1pKHRoaXMuX2hvc3RFbGVtZW50Lm1pbil9c2V0IG1pbihlKXt0aGlzLl9ob3N0RWxlbWVudC5taW49bWkoZSkudG9TdHJpbmcoKSx0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpfWdldCBtYXgoKXtyZXR1cm4gbWkodGhpcy5faG9zdEVsZW1lbnQubWF4KX1zZXQgbWF4KGUpe3RoaXMuX2hvc3RFbGVtZW50Lm1heD1taShlKS50b1N0cmluZygpLHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCl9Z2V0IHN0ZXAoKXtyZXR1cm4gbWkodGhpcy5faG9zdEVsZW1lbnQuc3RlcCl9c2V0IHN0ZXAoZSl7dGhpcy5faG9zdEVsZW1lbnQuc3RlcD1taShlKS50b1N0cmluZygpLHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCl9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHZ0KHRoaXMuX2hvc3RFbGVtZW50LmRpc2FibGVkKX1zZXQgZGlzYWJsZWQoZSl7dGhpcy5faG9zdEVsZW1lbnQuZGlzYWJsZWQ9dnQoZSksdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKSx0aGlzLl9zbGlkZXIuZGlzYWJsZWQhPT10aGlzLmRpc2FibGVkJiYodGhpcy5fc2xpZGVyLmRpc2FibGVkPXRoaXMuZGlzYWJsZWQpfWdldCBwZXJjZW50YWdlKCl7cmV0dXJuIHRoaXMuX3NsaWRlci5taW4+PXRoaXMuX3NsaWRlci5tYXg/dGhpcy5fc2xpZGVyLl9pc1J0bD8xOjA6KHRoaXMudmFsdWUtdGhpcy5fc2xpZGVyLm1pbikvKHRoaXMuX3NsaWRlci5tYXgtdGhpcy5fc2xpZGVyLm1pbil9Z2V0IGZpbGxQZXJjZW50YWdlKCl7cmV0dXJuIHRoaXMuX3NsaWRlci5fY2FjaGVkV2lkdGg/MD09PXRoaXMuX3RyYW5zbGF0ZVg/MDp0aGlzLnRyYW5zbGF0ZVgvdGhpcy5fc2xpZGVyLl9jYWNoZWRXaWR0aDp0aGlzLl9zbGlkZXIuX2lzUnRsPzE6MH1fc2V0SXNGb2N1c2VkKGUpe3RoaXMuX2lzRm9jdXNlZD1lfWNvbnN0cnVjdG9yKGUsaSxyLG8pe3RoaXMuX25nWm9uZT1lLHRoaXMuX2VsZW1lbnRSZWY9aSx0aGlzLl9jZHI9cix0aGlzLl9zbGlkZXI9byx0aGlzLnZhbHVlQ2hhbmdlPW5ldyBGLHRoaXMuZHJhZ1N0YXJ0PW5ldyBGLHRoaXMuZHJhZ0VuZD1uZXcgRix0aGlzLnRodW1iUG9zaXRpb249Mix0aGlzLl9rbm9iUmFkaXVzPTgsdGhpcy5faXNBY3RpdmU9ITEsdGhpcy5faXNGb2N1c2VkPSExLHRoaXMuX2hhc1NldEluaXRpYWxWYWx1ZT0hMSx0aGlzLl9kZXN0cm95ZWQ9bmV3IEVlLHRoaXMuX3NraXBVSVVwZGF0ZT0hMSx0aGlzLl9vbkNoYW5nZUZuPSgpPT57fSx0aGlzLl9vblRvdWNoZWRGbj0oKT0+e30sdGhpcy5faG9zdEVsZW1lbnQ9aS5uYXRpdmVFbGVtZW50LHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuX2hvc3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLl9vblBvaW50ZXJEb3duLmJpbmQodGhpcykpLHRoaXMuX2hvc3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLl9vblBvaW50ZXJNb3ZlLmJpbmQodGhpcykpLHRoaXMuX2hvc3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5fb25Qb2ludGVyVXAuYmluZCh0aGlzKSl9KX1uZ09uRGVzdHJveSgpe3RoaXMuX2hvc3RFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLl9vblBvaW50ZXJEb3duKSx0aGlzLl9ob3N0RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5fb25Qb2ludGVyTW92ZSksdGhpcy5faG9zdEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLl9vblBvaW50ZXJVcCksdGhpcy5fZGVzdHJveWVkLm5leHQoKSx0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKSx0aGlzLmRyYWdTdGFydC5jb21wbGV0ZSgpLHRoaXMuZHJhZ0VuZC5jb21wbGV0ZSgpfWluaXRQcm9wcygpe3RoaXMuX3VwZGF0ZVdpZHRoSW5hY3RpdmUoKSx0aGlzLmRpc2FibGVkIT09dGhpcy5fc2xpZGVyLmRpc2FibGVkJiYodGhpcy5fc2xpZGVyLmRpc2FibGVkPSEwKSx0aGlzLnN0ZXA9dGhpcy5fc2xpZGVyLnN0ZXAsdGhpcy5taW49dGhpcy5fc2xpZGVyLm1pbix0aGlzLm1heD10aGlzLl9zbGlkZXIubWF4LHRoaXMuX2luaXRWYWx1ZSgpfWluaXRVSSgpe3RoaXMuX3VwZGF0ZVRodW1iVUlCeVZhbHVlKCl9X2luaXRWYWx1ZSgpe3RoaXMuX2hhc1NldEluaXRpYWxWYWx1ZT0hMCx2b2lkIDA9PT10aGlzLl9pbml0aWFsVmFsdWU/dGhpcy52YWx1ZT10aGlzLl9nZXREZWZhdWx0VmFsdWUoKToodGhpcy5faG9zdEVsZW1lbnQudmFsdWU9dGhpcy5faW5pdGlhbFZhbHVlLHRoaXMuX3VwZGF0ZVRodW1iVUlCeVZhbHVlKCksdGhpcy5fc2xpZGVyLl9vblZhbHVlQ2hhbmdlKHRoaXMpLHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCkpfV9nZXREZWZhdWx0VmFsdWUoKXtyZXR1cm4gdGhpcy5taW59X29uQmx1cigpe3RoaXMuX3NldElzRm9jdXNlZCghMSksdGhpcy5fb25Ub3VjaGVkRm4oKX1fb25Gb2N1cygpe3RoaXMuX3NldElzRm9jdXNlZCghMCl9X29uQ2hhbmdlKCl7dGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpLHRoaXMuX2lzQWN0aXZlJiZ0aGlzLl91cGRhdGVUaHVtYlVJQnlWYWx1ZSh7d2l0aEFuaW1hdGlvbjohMH0pfV9vbklucHV0KCl7dGhpcy5fb25DaGFuZ2VGbih0aGlzLnZhbHVlKSwodGhpcy5fc2xpZGVyLnN0ZXB8fCF0aGlzLl9pc0FjdGl2ZSkmJnRoaXMuX3VwZGF0ZVRodW1iVUlCeVZhbHVlKHt3aXRoQW5pbWF0aW9uOiEwfSksdGhpcy5fc2xpZGVyLl9vblZhbHVlQ2hhbmdlKHRoaXMpfV9vbk5nQ29udHJvbFZhbHVlQ2hhbmdlKCl7KCF0aGlzLl9pc0FjdGl2ZXx8IXRoaXMuX2lzRm9jdXNlZCkmJih0aGlzLl9zbGlkZXIuX29uVmFsdWVDaGFuZ2UodGhpcyksdGhpcy5fdXBkYXRlVGh1bWJVSUJ5VmFsdWUoKSksdGhpcy5fc2xpZGVyLmRpc2FibGVkPXRoaXMuX2Zvcm1Db250cm9sLmRpc2FibGVkfV9vblBvaW50ZXJEb3duKGUpe3RoaXMuZGlzYWJsZWR8fDAhPT1lLmJ1dHRvbnx8KHRoaXMuX2lzQWN0aXZlPSEwLHRoaXMuX3NldElzRm9jdXNlZCghMCksdGhpcy5fdXBkYXRlV2lkdGhBY3RpdmUoKSx0aGlzLl9zbGlkZXIuX3VwZGF0ZURpbWVuc2lvbnMoKSx0aGlzLl9zbGlkZXIuc3RlcHx8dGhpcy5fdXBkYXRlVGh1bWJVSUJ5UG9pbnRlckV2ZW50KGUse3dpdGhBbmltYXRpb246ITB9KSx0aGlzLmRpc2FibGVkfHwodGhpcy5faGFuZGxlVmFsdWVDb3JyZWN0aW9uKGUpLHRoaXMuZHJhZ1N0YXJ0LmVtaXQoe3NvdXJjZTp0aGlzLHBhcmVudDp0aGlzLl9zbGlkZXIsdmFsdWU6dGhpcy52YWx1ZX0pKSl9X2hhbmRsZVZhbHVlQ29ycmVjdGlvbihlKXt0aGlzLl9za2lwVUlVcGRhdGU9ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuX3NraXBVSVVwZGF0ZT0hMSx0aGlzLl9maXhWYWx1ZShlKX0sMCl9X2ZpeFZhbHVlKGUpe2xldCBpPWUuY2xpZW50WC10aGlzLl9zbGlkZXIuX2NhY2hlZExlZnQscj10aGlzLl9zbGlkZXIuX2NhY2hlZFdpZHRoLG89MD09PXRoaXMuX3NsaWRlci5zdGVwPzE6dGhpcy5fc2xpZGVyLnN0ZXAsYT1NYXRoLmZsb29yKCh0aGlzLl9zbGlkZXIubWF4LXRoaXMuX3NsaWRlci5taW4pL28pLGM9TWF0aC5yb3VuZCgodGhpcy5fc2xpZGVyLl9pc1J0bD8xLWkvcjppL3IpKmEpL2EqKHRoaXMuX3NsaWRlci5tYXgtdGhpcy5fc2xpZGVyLm1pbikrdGhpcy5fc2xpZGVyLm1pbixkPU1hdGgucm91bmQoYy9vKSpvO2lmKGQ9PT10aGlzLnZhbHVlKXJldHVybiB0aGlzLl9zbGlkZXIuX29uVmFsdWVDaGFuZ2UodGhpcyksdm9pZCh0aGlzLl9zbGlkZXIuc3RlcD4wP3RoaXMuX3VwZGF0ZVRodW1iVUlCeVZhbHVlKCk6dGhpcy5fdXBkYXRlVGh1bWJVSUJ5UG9pbnRlckV2ZW50KGUse3dpdGhBbmltYXRpb246dGhpcy5fc2xpZGVyLl9oYXNBbmltYXRpb259KSk7dGhpcy52YWx1ZT1kLHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKSx0aGlzLl9vbkNoYW5nZUZuKHRoaXMudmFsdWUpLHRoaXMuX3NsaWRlci5fb25WYWx1ZUNoYW5nZSh0aGlzKSx0aGlzLl9zbGlkZXIuc3RlcD4wP3RoaXMuX3VwZGF0ZVRodW1iVUlCeVZhbHVlKCk6dGhpcy5fdXBkYXRlVGh1bWJVSUJ5UG9pbnRlckV2ZW50KGUse3dpdGhBbmltYXRpb246dGhpcy5fc2xpZGVyLl9oYXNBbmltYXRpb259KX1fb25Qb2ludGVyTW92ZShlKXshdGhpcy5fc2xpZGVyLnN0ZXAmJnRoaXMuX2lzQWN0aXZlJiZ0aGlzLl91cGRhdGVUaHVtYlVJQnlQb2ludGVyRXZlbnQoZSl9X29uUG9pbnRlclVwKCl7dGhpcy5faXNBY3RpdmUmJih0aGlzLl9pc0FjdGl2ZT0hMSx0aGlzLmRyYWdFbmQuZW1pdCh7c291cmNlOnRoaXMscGFyZW50OnRoaXMuX3NsaWRlcix2YWx1ZTp0aGlzLnZhbHVlfSksc2V0VGltZW91dCgoKT0+dGhpcy5fdXBkYXRlV2lkdGhJbmFjdGl2ZSgpKSl9X2NsYW1wKGUpe3JldHVybiBNYXRoLm1heChNYXRoLm1pbihlLHRoaXMuX3NsaWRlci5fY2FjaGVkV2lkdGgpLDApfV9jYWxjVHJhbnNsYXRlWEJ5VmFsdWUoKXtyZXR1cm4gdGhpcy5fc2xpZGVyLl9pc1J0bD8oMS10aGlzLnBlcmNlbnRhZ2UpKnRoaXMuX3NsaWRlci5fY2FjaGVkV2lkdGg6dGhpcy5wZXJjZW50YWdlKnRoaXMuX3NsaWRlci5fY2FjaGVkV2lkdGh9X2NhbGNUcmFuc2xhdGVYQnlQb2ludGVyRXZlbnQoZSl7cmV0dXJuIGUuY2xpZW50WC10aGlzLl9zbGlkZXIuX2NhY2hlZExlZnR9X3VwZGF0ZVdpZHRoQWN0aXZlKCl7dGhpcy5faG9zdEVsZW1lbnQuc3R5bGUucGFkZGluZz1gMCAke3RoaXMuX3NsaWRlci5faW5wdXRQYWRkaW5nfXB4YCx0aGlzLl9ob3N0RWxlbWVudC5zdHlsZS53aWR0aD1gY2FsYygxMDAlICsgJHt0aGlzLl9zbGlkZXIuX2lucHV0UGFkZGluZ31weClgfV91cGRhdGVXaWR0aEluYWN0aXZlKCl7dGhpcy5faG9zdEVsZW1lbnQuc3R5bGUucGFkZGluZz0iMHB4Iix0aGlzLl9ob3N0RWxlbWVudC5zdHlsZS53aWR0aD0iY2FsYygxMDAlICsgNDhweCkiLHRoaXMuX2hvc3RFbGVtZW50LnN0eWxlLmxlZnQ9Ii0yNHB4In1fdXBkYXRlVGh1bWJVSUJ5VmFsdWUoZSl7dGhpcy50cmFuc2xhdGVYPXRoaXMuX2NsYW1wKHRoaXMuX2NhbGNUcmFuc2xhdGVYQnlWYWx1ZSgpKSx0aGlzLl91cGRhdGVUaHVtYlVJKGUpfV91cGRhdGVUaHVtYlVJQnlQb2ludGVyRXZlbnQoZSxpKXt0aGlzLnRyYW5zbGF0ZVg9dGhpcy5fY2xhbXAodGhpcy5fY2FsY1RyYW5zbGF0ZVhCeVBvaW50ZXJFdmVudChlKSksdGhpcy5fdXBkYXRlVGh1bWJVSShpKX1fdXBkYXRlVGh1bWJVSShlKXt0aGlzLl9zbGlkZXIuX3NldFRyYW5zaXRpb24oISFlPy53aXRoQW5pbWF0aW9uKSx0aGlzLl9zbGlkZXIuX29uVHJhbnNsYXRlWENoYW5nZSh0aGlzKX13cml0ZVZhbHVlKGUpe3RoaXMudmFsdWU9ZX1yZWdpc3Rlck9uQ2hhbmdlKGUpe3RoaXMuX29uQ2hhbmdlRm49ZX1yZWdpc3Rlck9uVG91Y2hlZChlKXt0aGlzLl9vblRvdWNoZWRGbj1lfXNldERpc2FibGVkU3RhdGUoZSl7dGhpcy5kaXNhYmxlZD1lfWZvY3VzKCl7dGhpcy5faG9zdEVsZW1lbnQuZm9jdXMoKX1ibHVyKCl7dGhpcy5faG9zdEVsZW1lbnQuYmx1cigpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKG90KSxDKHhlKSxDKFF0KSxDKHRUKSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbImlucHV0IiwibWF0U2xpZGVyVGh1bWIiLCIiXV0saG9zdEF0dHJzOlsidHlwZSIsInJhbmdlIiwxLCJtZGMtc2xpZGVyX19pbnB1dCJdLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MSZlJiZBKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIGkuX29uQ2hhbmdlKCl9KSgiaW5wdXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGkuX29uSW5wdXQoKX0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiBpLl9vbkJsdXIoKX0pKCJmb2N1cyIsZnVuY3Rpb24oKXtyZXR1cm4gaS5fb25Gb2N1cygpfSksMiZlJiZCZSgiYXJpYS12YWx1ZXRleHQiLGkuX3ZhbHVldGV4dCl9LGlucHV0czp7dmFsdWU6InZhbHVlIn0sb3V0cHV0czp7dmFsdWVDaGFuZ2U6InZhbHVlQ2hhbmdlIixkcmFnU3RhcnQ6ImRyYWdTdGFydCIsZHJhZ0VuZDoiZHJhZ0VuZCJ9LGV4cG9ydEFzOlsibWF0U2xpZGVyVGh1bWIiXSxmZWF0dXJlczpbVnQoW3dTZSx7cHJvdmlkZTpWWSx1c2VFeGlzdGluZzpufV0pXX0pLG59KSgpLHZOPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyAkdXtnZXRTaWJsaW5nKCl7cmV0dXJuIHRoaXMuX3NpYmxpbmd8fCh0aGlzLl9zaWJsaW5nPXRoaXMuX3NsaWRlci5fZ2V0SW5wdXQodGhpcy5faXNFbmRUaHVtYj8xOjIpKSx0aGlzLl9zaWJsaW5nfWdldE1pblBvcygpe2xldCBlPXRoaXMuZ2V0U2libGluZygpO3JldHVybiF0aGlzLl9pc0xlZnRUaHVtYiYmZT9lLnRyYW5zbGF0ZVg6MH1nZXRNYXhQb3MoKXtsZXQgZT10aGlzLmdldFNpYmxpbmcoKTtyZXR1cm4gdGhpcy5faXNMZWZ0VGh1bWImJmU/ZS50cmFuc2xhdGVYOnRoaXMuX3NsaWRlci5fY2FjaGVkV2lkdGh9X3NldElzTGVmdFRodW1iKCl7dGhpcy5faXNMZWZ0VGh1bWI9dGhpcy5faXNFbmRUaHVtYiYmdGhpcy5fc2xpZGVyLl9pc1J0bHx8IXRoaXMuX2lzRW5kVGh1bWImJiF0aGlzLl9zbGlkZXIuX2lzUnRsfWNvbnN0cnVjdG9yKGUsaSxyLG8pe3N1cGVyKGUscixvLGkpLHRoaXMuX2Nkcj1vLHRoaXMuX2lzRW5kVGh1bWI9dGhpcy5faG9zdEVsZW1lbnQuaGFzQXR0cmlidXRlKCJtYXRTbGlkZXJFbmRUaHVtYiIpLHRoaXMuX3NldElzTGVmdFRodW1iKCksdGhpcy50aHVtYlBvc2l0aW9uPXRoaXMuX2lzRW5kVGh1bWI/MjoxfV9nZXREZWZhdWx0VmFsdWUoKXtyZXR1cm4gdGhpcy5faXNFbmRUaHVtYiYmdGhpcy5fc2xpZGVyLl9pc1JhbmdlP3RoaXMubWF4OnRoaXMubWlufV9vbklucHV0KCl7c3VwZXIuX29uSW5wdXQoKSx0aGlzLl91cGRhdGVTaWJsaW5nKCksdGhpcy5faXNBY3RpdmV8fHRoaXMuX3VwZGF0ZVdpZHRoSW5hY3RpdmUoKX1fb25OZ0NvbnRyb2xWYWx1ZUNoYW5nZSgpe3N1cGVyLl9vbk5nQ29udHJvbFZhbHVlQ2hhbmdlKCksdGhpcy5nZXRTaWJsaW5nKCk/Ll91cGRhdGVNaW5NYXgoKX1fb25Qb2ludGVyRG93bihlKXt0aGlzLmRpc2FibGVkfHwodGhpcy5fc2libGluZyYmKHRoaXMuX3NpYmxpbmcuX3VwZGF0ZVdpZHRoQWN0aXZlKCksdGhpcy5fc2libGluZy5faG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibWF0LW1kYy1zbGlkZXItaW5wdXQtbm8tcG9pbnRlci1ldmVudHMiKSksc3VwZXIuX29uUG9pbnRlckRvd24oZSkpfV9vblBvaW50ZXJVcCgpe3N1cGVyLl9vblBvaW50ZXJVcCgpLHRoaXMuX3NpYmxpbmcmJnNldFRpbWVvdXQoKCk9Pnt0aGlzLl9zaWJsaW5nLl91cGRhdGVXaWR0aEluYWN0aXZlKCksdGhpcy5fc2libGluZy5faG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgibWF0LW1kYy1zbGlkZXItaW5wdXQtbm8tcG9pbnRlci1ldmVudHMiKX0pfV9vblBvaW50ZXJNb3ZlKGUpe3N1cGVyLl9vblBvaW50ZXJNb3ZlKGUpLCF0aGlzLl9zbGlkZXIuc3RlcCYmdGhpcy5faXNBY3RpdmUmJnRoaXMuX3VwZGF0ZVNpYmxpbmcoKX1fZml4VmFsdWUoZSl7c3VwZXIuX2ZpeFZhbHVlKGUpLHRoaXMuX3NpYmxpbmc/Ll91cGRhdGVNaW5NYXgoKX1fY2xhbXAoZSl7cmV0dXJuIE1hdGgubWF4KE1hdGgubWluKGUsdGhpcy5nZXRNYXhQb3MoKSksdGhpcy5nZXRNaW5Qb3MoKSl9X3VwZGF0ZU1pbk1heCgpe2xldCBlPXRoaXMuZ2V0U2libGluZygpOyFlfHwodGhpcy5faXNFbmRUaHVtYj8odGhpcy5taW49TWF0aC5tYXgodGhpcy5fc2xpZGVyLm1pbixlLnZhbHVlKSx0aGlzLm1heD10aGlzLl9zbGlkZXIubWF4KToodGhpcy5taW49dGhpcy5fc2xpZGVyLm1pbix0aGlzLm1heD1NYXRoLm1pbih0aGlzLl9zbGlkZXIubWF4LGUudmFsdWUpKSl9X3VwZGF0ZVdpZHRoQWN0aXZlKCl7bGV0IGU9Mip0aGlzLl9zbGlkZXIuX3JpcHBsZVJhZGl1cy0yKnRoaXMuX3NsaWRlci5faW5wdXRQYWRkaW5nO3RoaXMuX2hvc3RFbGVtZW50LnN0eWxlLndpZHRoPWAkeyh0aGlzLl9zbGlkZXIuX2NhY2hlZFdpZHRoK3RoaXMuX3NsaWRlci5faW5wdXRQYWRkaW5nLWUpKih0aGlzLl9zbGlkZXIubWluPHRoaXMuX3NsaWRlci5tYXg/KHRoaXMubWF4LXRoaXMubWluKS8odGhpcy5fc2xpZGVyLm1heC10aGlzLl9zbGlkZXIubWluKToxKStlfXB4YCx0aGlzLl9ob3N0RWxlbWVudC5zdHlsZS5wYWRkaW5nPWAwICR7dGhpcy5fc2xpZGVyLl9pbnB1dFBhZGRpbmd9cHhgfV91cGRhdGVXaWR0aEluYWN0aXZlKCl7bGV0IGU9dGhpcy5nZXRTaWJsaW5nKCk7aWYoIWUpcmV0dXJuO2xldCByPXRoaXMuX2lzRW5kVGh1bWI/dGhpcy52YWx1ZS0odGhpcy52YWx1ZS1lLnZhbHVlKS8yOnRoaXMudmFsdWUrKGUudmFsdWUtdGhpcy52YWx1ZSkvMjt0aGlzLl9ob3N0RWxlbWVudC5zdHlsZS53aWR0aD10aGlzLl9zbGlkZXIuX2NhY2hlZFdpZHRoKih0aGlzLl9zbGlkZXIubWluPHRoaXMuX3NsaWRlci5tYXg/dGhpcy5faXNFbmRUaHVtYj8odGhpcy5tYXgtcikvKHRoaXMuX3NsaWRlci5tYXgtdGhpcy5fc2xpZGVyLm1pbik6KHItdGhpcy5taW4pLyh0aGlzLl9zbGlkZXIubWF4LXRoaXMuX3NsaWRlci5taW4pOjEpKzI0KyJweCIsdGhpcy5faG9zdEVsZW1lbnQuc3R5bGUucGFkZGluZz0iMHB4Iix0aGlzLl9pc0xlZnRUaHVtYj8odGhpcy5faG9zdEVsZW1lbnQuc3R5bGUubGVmdD0iLTI0cHgiLHRoaXMuX2hvc3RFbGVtZW50LnN0eWxlLnJpZ2h0PSJhdXRvIik6KHRoaXMuX2hvc3RFbGVtZW50LnN0eWxlLmxlZnQ9ImF1dG8iLHRoaXMuX2hvc3RFbGVtZW50LnN0eWxlLnJpZ2h0PSItMjRweCIpfV91cGRhdGVTdGF0aWNTdHlsZXMoKXt0aGlzLl9ob3N0RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJtYXQtc2xpZGVyX19yaWdodC1pbnB1dCIsIXRoaXMuX2lzTGVmdFRodW1iKX1fdXBkYXRlU2libGluZygpe2xldCBlPXRoaXMuZ2V0U2libGluZygpOyFlfHwoZS5fdXBkYXRlTWluTWF4KCksdGhpcy5faXNBY3RpdmU/ZS5fdXBkYXRlV2lkdGhBY3RpdmUoKTplLl91cGRhdGVXaWR0aEluYWN0aXZlKCkpfXdyaXRlVmFsdWUoZSl7dGhpcy52YWx1ZT1lLHRoaXMuX3VwZGF0ZVdpZHRoSW5hY3RpdmUoKSx0aGlzLl91cGRhdGVTaWJsaW5nKCl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMob3QpLEModFQpLEMoeGUpLEMoUXQpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siaW5wdXQiLCJtYXRTbGlkZXJTdGFydFRodW1iIiwiIl0sWyJpbnB1dCIsIm1hdFNsaWRlckVuZFRodW1iIiwiIl1dLGV4cG9ydEFzOlsibWF0U2xpZGVyUmFuZ2VUaHVtYiJdLGZlYXR1cmVzOltWdChbU1NlLHtwcm92aWRlOkhZLHVzZUV4aXN0aW5nOm59XSksWGVdfSksbn0pKCksZXA9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W2RuLERlLF9hXX0pLG59KSgpO2Z1bmN0aW9uIEVTZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsIm1hdC1zbGlkZXIiLDExKSgxLCJpbnB1dCIsMTIpLEEoInZhbHVlQ2hhbmdlIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygyKS5vblNsaWRlckNoYW5nZS5lbWl0KHIpKX0pLGcoKSgpfWlmKDImbil7bGV0IGU9dygyKTtiKCJtaW4iLDApKCJtYXgiLGUuc2Nyb2xsQmVnaW5JbmRleFVwcGVyTGltaXQpLHYoMSksYigidmFsdWUiLGUuc2Nyb2xsQmVnaW5JbmRleCl9fWZ1bmN0aW9uIFRTZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImRpdiIsNikoMSwiYnV0dG9uIiw3KSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gbmUoZSksaWUodygpLm9uTmF2aWdhdGVMZWZ0LmVtaXQoKSl9KSxUKDIsIiA8ICIpLGcoKSxmKDMsImRpdiIsOCksVCg0KSxnKCksZig1LCJidXR0b24iLDkpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBuZShlKSxpZSh3KCkub25OYXZpZ2F0ZVJpZ2h0LmVtaXQoKSl9KSxUKDYsIiA+ICIpLGcoKSxTKDcsRVNlLDIsMywibWF0LXNsaWRlciIsMTApLGcoKX1pZigyJm4pe2xldCBlPXcoKTt2KDQpLEdNKCIgIixlLnNjcm9sbEJlZ2luSW5kZXgsIiB+ICIsZS5zY3JvbGxCZWdpbkluZGV4K2UuZGlzcGxheUNvdW50LTEsIiBvZiAiLGUubnVtRXhlY3V0aW9ucywiICIpLHYoMyksYigibmdJZiIsZS5zY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdD4wKX19dmFyIERTZT1mdW5jdGlvbihuLHQsZSl7cmV0dXJuW24sdCxlXX07ZnVuY3Rpb24gSVNlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiZGl2IiwxNSksQSgiY2xpY2siLGZ1bmN0aW9uKCl7bGV0IG89bmUoZSkuaW5kZXg7cmV0dXJuIGllKHcoMikub25FeGVjdXRpb25EaWdlc3RDbGlja2VkLmVtaXQobykpfSksZigxLCJkaXYiLDE2KSxUKDIpLGcoKSgpfWlmKDImbil7bGV0IGU9dC4kaW1wbGljaXQsaT10LmluZGV4LHI9dygyKTt2KDEpLFppKCJ0aXRsZSIsZS5vcF90eXBlKSxiKCJuZ0NsYXNzIix5YigzLERTZSxlLmlzX2dyYXBoPyJmdW5jLWdyYXBoLWV4ZWN1dGlvbiI6IiIsaT09PXIuZm9jdXNlZEV4ZWN1dGlvbkRpc3BsYXlJbmRleD8iZm9jdXNlZCI6IiIsci5kaXNwbGF5Rm9jdXNlZEFsZXJ0VHlwZXNbaV18fCIiKSksdigxKSxWZSgiICIsZS5zaG9ydF9vcF90eXBlLCIgIil9fWZ1bmN0aW9uIEFTZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2IiwxMyksUygxLElTZSwzLDcsImRpdiIsMTQpLGcoKSksMiZuKXtsZXQgZT13KCk7digxKSxiKCJuZ0Zvck9mIixlLmRpc3BsYXlFeGVjdXRpb25EaWdlc3RzKX19ZnVuY3Rpb24gUlNlKG4sdCl7aWYoMSZuJiYoR3QoMCksaygxLCJ0Zi1kZWJ1Z2dlci12Mi1leGVjdXRpb24tZGF0YSIsMTcpLFd0KCkpLDImbil7bGV0IGU9dygpO3YoMSksYigiZm9jdXNlZEV4ZWN1dGlvbkluZGV4IixlLmZvY3VzZWRFeGVjdXRpb25JbmRleCl9fXZhciBVWT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy5hY3RpdmVSdW5JZD1udWxsLHRoaXMubG9hZGluZ051bUV4ZWN1dGlvbnM9ITEsdGhpcy5udW1FeGVjdXRpb25zPTAsdGhpcy5zY3JvbGxCZWdpbkluZGV4PTAsdGhpcy5zY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdD0wLHRoaXMucGFnZVNpemU9MCx0aGlzLmRpc3BsYXlDb3VudD0wLHRoaXMuZGlzcGxheUV4ZWN1dGlvbkRpZ2VzdHM9W10sdGhpcy5kaXNwbGF5Rm9jdXNlZEFsZXJ0VHlwZXM9W10sdGhpcy5mb2N1c2VkRXhlY3V0aW9uSW5kZXg9bnVsbCx0aGlzLmZvY3VzZWRFeGVjdXRpb25EaXNwbGF5SW5kZXg9bnVsbCx0aGlzLmZvY3VzZWRFeGVjdXRpb25EYXRhPW51bGwsdGhpcy5vbk5hdmlnYXRlTGVmdD1uZXcgRix0aGlzLm9uTmF2aWdhdGVSaWdodD1uZXcgRix0aGlzLm9uRXhlY3V0aW9uRGlnZXN0Q2xpY2tlZD1uZXcgRix0aGlzLm9uU2xpZGVyQ2hhbmdlPW5ldyBGfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJ0aW1lbGluZS1jb21wb25lbnQiXV0saW5wdXRzOnthY3RpdmVSdW5JZDoiYWN0aXZlUnVuSWQiLGxvYWRpbmdOdW1FeGVjdXRpb25zOiJsb2FkaW5nTnVtRXhlY3V0aW9ucyIsbnVtRXhlY3V0aW9uczoibnVtRXhlY3V0aW9ucyIsc2Nyb2xsQmVnaW5JbmRleDoic2Nyb2xsQmVnaW5JbmRleCIsc2Nyb2xsQmVnaW5JbmRleFVwcGVyTGltaXQ6InNjcm9sbEJlZ2luSW5kZXhVcHBlckxpbWl0IixwYWdlU2l6ZToicGFnZVNpemUiLGRpc3BsYXlDb3VudDoiZGlzcGxheUNvdW50IixkaXNwbGF5RXhlY3V0aW9uRGlnZXN0czoiZGlzcGxheUV4ZWN1dGlvbkRpZ2VzdHMiLGRpc3BsYXlGb2N1c2VkQWxlcnRUeXBlczoiZGlzcGxheUZvY3VzZWRBbGVydFR5cGVzIixmb2N1c2VkRXhlY3V0aW9uSW5kZXg6ImZvY3VzZWRFeGVjdXRpb25JbmRleCIsZm9jdXNlZEV4ZWN1dGlvbkRpc3BsYXlJbmRleDoiZm9jdXNlZEV4ZWN1dGlvbkRpc3BsYXlJbmRleCIsZm9jdXNlZEV4ZWN1dGlvbkRhdGE6ImZvY3VzZWRFeGVjdXRpb25EYXRhIn0sb3V0cHV0czp7b25OYXZpZ2F0ZUxlZnQ6Im9uTmF2aWdhdGVMZWZ0Iixvbk5hdmlnYXRlUmlnaHQ6Im9uTmF2aWdhdGVSaWdodCIsb25FeGVjdXRpb25EaWdlc3RDbGlja2VkOiJvbkV4ZWN1dGlvbkRpZ2VzdENsaWNrZWQiLG9uU2xpZGVyQ2hhbmdlOiJvblNsaWRlckNoYW5nZSJ9LGRlY2xzOjksdmFyczo0LGNvbnN0czpbWzEsInRpbWVsaW5lLXRpdGxlIl0sWzEsImV4ZWN1dGlvbi1jb3VudCJdLFsxLCJ0b3AtbGV2ZWwtZXhlY3V0aW9ucyJdLFsiY2xhc3MiLCJuYXZpZ2F0aW9uLXNlY3Rpb24iLDQsIm5nSWYiXSxbImNsYXNzIiwiZXhlY3V0aW9uLXRpbWVsaW5lIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMSwibmF2aWdhdGlvbi1zZWN0aW9uIl0sWyJtYXQtYnV0dG9uIiwiIiwxLCJuYXZpZ2F0aW9uLWJ1dHRvbi1sZWZ0IiwzLCJjbGljayJdLFsxLCJuYXZpZ2F0aW9uLXBvc2l0aW9uLWluZm8iXSxbIm1hdC1idXR0b24iLCIiLDEsIm5hdmlnYXRpb24tYnV0dG9uLXJpZ2h0IiwzLCJjbGljayJdLFsiY2xhc3MiLCJ0aW1lbGluZS1zbGlkZXIiLCJzdGVwIiwiMSIsMywibWluIiwibWF4Iiw0LCJuZ0lmIl0sWyJzdGVwIiwiMSIsMSwidGltZWxpbmUtc2xpZGVyIiwzLCJtaW4iLCJtYXgiXSxbIm1hdFNsaWRlclRodW1iIiwiIiwzLCJ2YWx1ZSIsInZhbHVlQ2hhbmdlIl0sWzEsImV4ZWN1dGlvbi10aW1lbGluZSJdLFszLCJjbGljayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsImNsaWNrIl0sWzEsImV4ZWN1dGlvbi1kaWdlc3QiLDMsIm5nQ2xhc3MiLCJ0aXRsZSJdLFszLCJmb2N1c2VkRXhlY3V0aW9uSW5kZXgiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImRpdiIpKDEsImRpdiIsMCksVCgyLCIgUHl0aG9uIEV4ZWN1dGlvbiBUaW1lbGluZSAiKSxmKDMsInNwYW4iLDEpLFQoNCksZygpKCksZig1LCJkaXYiLDIpLFMoNixUU2UsOCw0LCJkaXYiLDMpLFMoNyxBU2UsMiwxLCJkaXYiLDQpLFMoOCxSU2UsMiwxLCJuZy1jb250YWluZXIiLDUpLGcoKSgpKSwyJmUmJih2KDQpLFZlKCIgKCIsaS5udW1FeGVjdXRpb25zLCIpICIpLHYoMiksYigibmdJZiIsaS5udW1FeGVjdXRpb25zKSx2KDEpLGIoIm5nSWYiLGkubnVtRXhlY3V0aW9ucyksdigxKSxiKCJuZ0lmIixudWxsIT09aS5hY3RpdmVSdW5JZCYmbnVsbCE9PWkuZm9jdXNlZEV4ZWN1dGlvbkluZGV4KSl9LGRlcGVuZGVuY2llczpbd24sbm4sTmUsQlksa2ksSnUsJHVdLHN0eWxlczpbIi5leGVjdXRpb24tZGlnZXN0W19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlM2U1ZTg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIGNvbG9yOiAjNDI1MDY2O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBwYWRkaW5nOiAxcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDEycHg7XG59XG5cbi5leGVjdXRpb24tZGlnZXN0LmZ1bmMtZ3JhcGgtZXhlY3V0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjN2RiZjU7XG4gIGNvbG9yOiAjNGU1NjY0O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmV4ZWN1dGlvbi1kaWdlc3QuZm9jdXNlZFtfbmdjb250ZW50LSVDT01QJV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNGIzO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmV4ZWN1dGlvbi1kaWdlc3QuSW5mTmFuQWxlcnRbX25nY29udGVudC0lQ09NUCVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1MjU5MjtcbiAgY29sb3I6ICNmZmY7XG59XG5cblxuLmV4ZWN1dGlvbi1kaWdlc3RbX25nY29udGVudC0lQ09NUCVdOmhvdmVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5leGVjdXRpb24tdGltZWxpbmVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi50aW1lbGluZS1zbGlkZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGxlZnQ6IDM0MHB4OyBcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNDBweDtcbiAgLS1tZGMtc2xpZGVyLWhhbmRsZS13aWR0aDogODBweDtcbiAgLS1tZGMtc2xpZGVyLWhhbmRsZS1oZWlnaHQ6IDE2cHg7XG4gIC0tbWRjLXNsaWRlci1oYW5kbGUtc2hhcGU6IDVweDtcbn1cblxuICAubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3Ige1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubmF2aWdhdGlvbi1wb3NpdGlvbi1pbmZvW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG1heC13aWR0aDogMjAwcHg7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubmF2aWdhdGlvbi1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGhlaWdodDogNDhweDtcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDEwMCU7XG59Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxrU2U9WyJfX2ZvcndhcmRfIiwiX19iYWNrd2FyZF8iLCJfX2luZmVyZW5jZV8iXSxqWT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmU9ZSx0aGlzLmFjdGl2ZVJ1bklkJD10aGlzLnN0b3JlLnBpcGUodW4oJG8pKSx0aGlzLmxvYWRpbmdOdW1FeGVjdXRpb25zJD10aGlzLnN0b3JlLnBpcGUodW4oVyhxRSxpPT5pLnN0YXRlPT1SZS5MT0FESU5HKSkpLHRoaXMuc2Nyb2xsQmVnaW5JbmRleCQ9dGhpcy5zdG9yZS5waXBlKHVuKGh5KSksdGhpcy5zY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdCQ9dGhpcy5zdG9yZS5waXBlKHVuKFcoWnUsSGcsKGkscik9Pk1hdGgubWF4KDAsaS1yKSkpKSx0aGlzLnBhZ2VTaXplJD10aGlzLnN0b3JlLnBpcGUodW4oVmcpKSx0aGlzLmRpc3BsYXlDb3VudCQ9dGhpcy5zdG9yZS5waXBlKHVuKEhnKSksdGhpcy5kaXNwbGF5RXhlY3V0aW9uRGlnZXN0cyQ9dGhpcy5zdG9yZS5waXBlKHVuKFcoJFgsaT0+aS5tYXAocj0+ZnVuY3Rpb24obix0PTEpe2lmKCFuKXJldHVybntvcF90eXBlOiIoTi9BKSIsc2hvcnRfb3BfdHlwZToiLi4iLGlzX2dyYXBoOiExfTtsZXQgZT1rU2UuZmlsdGVyKGk9Pm4ub3BfdHlwZS5zdGFydHNXaXRoKGkpKTtpZihlLmxlbmd0aCl7bGV0IGk9bi5vcF90eXBlLnNsaWNlKGVbMF0ubGVuZ3RoKTtyZXR1cm57b3BfdHlwZTpuLm9wX3R5cGUsc2hvcnRfb3BfdHlwZTppLnNsaWNlKDAsdCksaXNfZ3JhcGg6ITB9fXJldHVybntvcF90eXBlOm4ub3BfdHlwZSxzaG9ydF9vcF90eXBlOm4ub3BfdHlwZS5zbGljZSgwLHQpLGlzX2dyYXBoOiExfX0ocikpKSkpLHRoaXMuZGlzcGxheUZvY3VzZWRBbGVydFR5cGVzJD10aGlzLnN0b3JlLnBpcGUodW4obFkpKSx0aGlzLmZvY3VzZWRFeGVjdXRpb25JbmRleCQ9dGhpcy5zdG9yZS5waXBlKHVuKHBOKSksdGhpcy5mb2N1c2VkRXhlY3V0aW9uRGlzcGxheUluZGV4JD10aGlzLnN0b3JlLnBpcGUodW4oY1kpKSx0aGlzLm51bUV4ZWN1dGlvbnMkPXRoaXMuc3RvcmUucGlwZSh1bihadSkpfW9uTmF2aWdhdGVMZWZ0KCl7dGhpcy5zdG9yZS5kaXNwYXRjaChJZygpKX1vbk5hdmlnYXRlUmlnaHQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKEFnKCkpfW9uRXhlY3V0aW9uRGlnZXN0Q2xpY2tlZChlKXt0aGlzLnN0b3JlLmRpc3BhdGNoKFBnKHtkaXNwbGF5SW5kZXg6ZX0pKX1vblNsaWRlckNoYW5nZShlKXt0aGlzLnN0b3JlLmRpc3BhdGNoKFJnKHtpbmRleDplfSkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKEllKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sidGYtZGVidWdnZXItdjItdGltZWxpbmUiXV0sZGVjbHM6MTIsdmFyczozMyxjb25zdHM6W1szLCJhY3RpdmVSdW5JZCIsImxvYWRpbmdOdW1FeGVjdXRpb25zIiwibnVtRXhlY3V0aW9ucyIsInNjcm9sbEJlZ2luSW5kZXgiLCJzY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdCIsInBhZ2VTaXplIiwiZGlzcGxheUNvdW50IiwiZGlzcGxheUV4ZWN1dGlvbkRpZ2VzdHMiLCJkaXNwbGF5Rm9jdXNlZEFsZXJ0VHlwZXMiLCJmb2N1c2VkRXhlY3V0aW9uSW5kZXgiLCJmb2N1c2VkRXhlY3V0aW9uRGlzcGxheUluZGV4Iiwib25OYXZpZ2F0ZUxlZnQiLCJvbk5hdmlnYXRlUmlnaHQiLCJvbkV4ZWN1dGlvbkRpZ2VzdENsaWNrZWQiLCJvblNsaWRlckNoYW5nZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwidGltZWxpbmUtY29tcG9uZW50IiwwKSxBKCJvbk5hdmlnYXRlTGVmdCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vbk5hdmlnYXRlTGVmdCgpfSkoIm9uTmF2aWdhdGVSaWdodCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vbk5hdmlnYXRlUmlnaHQoKX0pKCJvbkV4ZWN1dGlvbkRpZ2VzdENsaWNrZWQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uRXhlY3V0aW9uRGlnZXN0Q2xpY2tlZChvKX0pKCJvblNsaWRlckNoYW5nZSIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25TbGlkZXJDaGFuZ2Uobyl9KSxVKDEsImFzeW5jIiksVSgyLCJhc3luYyIpLFUoMywiYXN5bmMiKSxVKDQsImFzeW5jIiksVSg1LCJhc3luYyIpLFUoNiwiYXN5bmMiKSxVKDcsImFzeW5jIiksVSg4LCJhc3luYyIpLFUoOSwiYXN5bmMiKSxVKDEwLCJhc3luYyIpLFUoMTEsImFzeW5jIiksZygpKSwyJmUmJmIoImFjdGl2ZVJ1bklkIixHKDEsMTEsaS5hY3RpdmVSdW5JZCQpKSgibG9hZGluZ051bUV4ZWN1dGlvbnMiLEcoMiwxMyxpLmxvYWRpbmdOdW1FeGVjdXRpb25zJCkpKCJudW1FeGVjdXRpb25zIixHKDMsMTUsaS5udW1FeGVjdXRpb25zJCkpKCJzY3JvbGxCZWdpbkluZGV4IixHKDQsMTcsaS5zY3JvbGxCZWdpbkluZGV4JCkpKCJzY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdCIsRyg1LDE5LGkuc2Nyb2xsQmVnaW5JbmRleFVwcGVyTGltaXQkKSkoInBhZ2VTaXplIixHKDYsMjEsaS5wYWdlU2l6ZSQpKSgiZGlzcGxheUNvdW50IixHKDcsMjMsaS5kaXNwbGF5Q291bnQkKSkoImRpc3BsYXlFeGVjdXRpb25EaWdlc3RzIixHKDgsMjUsaS5kaXNwbGF5RXhlY3V0aW9uRGlnZXN0cyQpKSgiZGlzcGxheUZvY3VzZWRBbGVydFR5cGVzIixHKDksMjcsaS5kaXNwbGF5Rm9jdXNlZEFsZXJ0VHlwZXMkKSkoImZvY3VzZWRFeGVjdXRpb25JbmRleCIsRygxMCwyOSxpLmZvY3VzZWRFeGVjdXRpb25JbmRleCQpKSgiZm9jdXNlZEV4ZWN1dGlvbkRpc3BsYXlJbmRleCIsRygxMSwzMSxpLmZvY3VzZWRFeGVjdXRpb25EaXNwbGF5SW5kZXgkKSl9LGRlcGVuZGVuY2llczpbVVksY3RdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpO2Z1bmN0aW9uIE5TZShuLHQpezEmbiYmaygwLCJ0Zi1kZWJ1Z2dlci12Mi1pbmFjdGl2ZSIpfWZ1bmN0aW9uIExTZShuLHQpezEmbiYmKGYoMCwiZGl2IiwzKSxrKDEsInRmLWRlYnVnZ2VyLXYyLWFsZXJ0cyIpLGYoMiwiZGl2Iiw0KSxrKDMsInRmLWRlYnVnZ2VyLXYyLXRpbWVsaW5lIikoNCwidGYtZGVidWdnZXItdjItZ3JhcGgiKSxnKCksayg1LCJ0Zi1kZWJ1Z2dlci12Mi1ncmFwaC1leGVjdXRpb25zIiksZygpLGYoNiwiZGl2Iiw1KSxrKDcsInRmLWRlYnVnZ2VyLXYyLXNvdXJjZS1maWxlcyIpKDgsInRmLWRlYnVnZ2VyLXYyLXN0YWNrLXRyYWNlIiksZygpKX12YXIgR1k9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMucnVucz17fSx0aGlzLnJ1bklkcz1bXSx0aGlzLmFjdGl2ZVJ1bklkPW51bGx9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImRlYnVnZ2VyLWNvbXBvbmVudCJdXSxpbnB1dHM6e3J1bnM6InJ1bnMiLHJ1bklkczoicnVuSWRzIixhY3RpdmVSdW5JZDoiYWN0aXZlUnVuSWQifSxkZWNsczo0LHZhcnM6Mixjb25zdHM6W1sxLCJkZWJ1Z2dlci1jb250YWluZXIiXSxbNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJkYXRhQXZhaWxhYmxlIiwiIl0sWzEsInRvcC1zZWN0aW9uIl0sWzEsInRvcC1jZW50ZXItc2VjdGlvbiJdLFsxLCJib3R0b20tc2VjdGlvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmKGYoMCwiZGl2IiwwKSxTKDEsTlNlLDEsMCwidGYtZGVidWdnZXItdjItaW5hY3RpdmUiLDEpLFMoMixMU2UsOSwwLCJuZy10ZW1wbGF0ZSIsbnVsbCwyLGp0KSxnKCkpLDImZSl7bGV0IHI9c3QoMyk7digxKSxiKCJuZ0lmIiwwPT09aS5ydW5JZHMubGVuZ3RoKSgibmdJZkVsc2UiLHIpfX0sZGVwZW5kZW5jaWVzOltnWSxOZSx2WSxDWSx3WSxrWSxGWSxqWV0sc3R5bGVzOlsiLmJvdHRvbS1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXRvcDoxcHggc29saWQgI2ViZWJlYjtkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7aGVpZ2h0OjM0JTtwYWRkaW5nLXRvcDo2cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmJvdHRvbS1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmJvdHRvbS1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCAjNTU1fS5kZWJ1Z2dlci1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW59LnRvcC1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2ZsZXgtZ3JvdzoxO2hlaWdodDo2NiU7cGFkZGluZzo2cHggMH10Zi1kZWJ1Z2dlci12Mi1hbGVydHNbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yaWdodDoxcHggc29saWQgI2ViZWJlYjtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6MTBweDttaW4td2lkdGg6MTYwcHg7d2lkdGg6Y2FsYygxNSUgLSAxMXB4KX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICB0Zi1kZWJ1Z2dlci12Mi1hbGVydHNbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICB0Zi1kZWJ1Z2dlci12Mi1hbGVydHNbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yaWdodDoxcHggc29saWQgIzU1NX10Zi1kZWJ1Z2dlci12Mi1ncmFwaC1leGVjdXRpb25zW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jaztmbGV4LWdyb3c6MTttaW4td2lkdGg6NTQwcHg7d2lkdGg6NTQwcHh9dGYtZGVidWdnZXItdjItc291cmNlLWZpbGVzW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MTAwJTt3aWR0aDo3MCV9dGYtZGVidWdnZXItdjItc3RhY2stdHJhY2VbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXgtZ3JvdzoxO2hlaWdodDoxMDAlO21pbi13aWR0aDo1NDBweDt3aWR0aDo1NDBweH0udG9wLWNlbnRlci1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jaztvdmVyZmxvdzphdXRvO3dpZHRoOjU1JX10Zi1kZWJ1Z2dlci12Mi10aW1lbGluZVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpibG9ja310Zi1kZWJ1Z2dlci12Mi1ncmFwaFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgI2ViZWJlYjtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6NXB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIHRmLWRlYnVnZ2VyLXYyLWdyYXBoW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgdGYtZGVidWdnZXItdjItZ3JhcGhbX25nY29udGVudC0lQ09NUCVde2JvcmRlci10b3A6MXB4IHNvbGlkICM1NTV9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxXWT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmU9ZSx0aGlzLnJ1bnMkPXRoaXMuc3RvcmUucGlwZSh1bihOaCkpLHRoaXMucnVuc0lkcyQ9dGhpcy5zdG9yZS5waXBlKHVuKFcoTmgsaT0+T2JqZWN0LmtleXMoaSkpKSksdGhpcy5hY3RpdmVSdW5JZCQ9dGhpcy5zdG9yZS5waXBlKHVuKCRvKSl9bmdPbkluaXQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKE1FKCkpfW5nT25EZXN0cm95KCl7dGhpcy5zdG9yZS5kaXNwYXRjaCh3RSgpKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInRmLWRlYnVnZ2VyLXYyIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsInJ1bnMiLCJydW5JZHMiLCJhY3RpdmVSdW5JZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGsoMCwiZGVidWdnZXItY29tcG9uZW50IiwwKSxVKDEsImFzeW5jIiksVSgyLCJhc3luYyIpLFUoMywiYXN5bmMiKSksMiZlJiZiKCJydW5zIixHKDEsMyxpLnJ1bnMkKSkoInJ1bklkcyIsRygyLDUsaS5ydW5zSWRzJCkpKCJhY3RpdmVSdW5JZCIsRygzLDcsaS5hY3RpdmVSdW5JZCQpKX0sZGVwZW5kZW5jaWVzOltHWSxjdF0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9Il19KSxufSkoKSxpVD0iZGVidWdnZXItdjIiO2Z1bmN0aW9uIHlOKG4sdCxlLGkscil7aWYoZTw9MHx8IU51bWJlci5pc0ludGVnZXIoZSkpdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBhZ2VTaXplOiAke2V9YCk7aWYodD5pKXRocm93IG5ldyBFcnJvcihgZW5kIGluZGV4ICgke3R9KSBleGNlZWRzIHRvdGFsIG51bWJlciBvZiBpdGVtcyAoJHtpfSlgKTtpZih0LW4+ZSl0aHJvdyBuZXcgRXJyb3IoImJlZ2luLWVuZCBzcGFuIGV4Y2VlZHMgcGFnZSBzaXplLCB3aGljaCBpcyBub3QgYWxsb3dlZCIpO2xldCBvPVtdLGE9TWF0aC5mbG9vcihuL2UpOyghKGEgaW4gcil8fHJbYV08ZSYmYSplK3JbYV08aSkmJm8ucHVzaChhKTtsZXQgcz1NYXRoLmZsb29yKCh0LTEpL2UpO3JldHVybiBzIT09YSYmKCEocyBpbiByKXx8cyplK3Jbc108dCYmdDxpKSYmby5wdXNoKHMpLG99dmFyIFlZPSgoKT0+e2NsYXNzIG57b25EZWJ1Z2dlckRhdGFQb2xsKCl7cmV0dXJuIHRoaXMuYWN0aW9ucyQucGlwZShabihNRSksSm4oZT0+ZnVuY3Rpb24obix0LGUpe3JldHVybiBuLnBpcGUoZnVuY3Rpb24obil7cmV0dXJuIFl0KCh0LGUpPT57bGV0IGksbyxyPSExLGE9ITEscz0hMSxsPSgpPT5zJiZhJiYoZS5jb21wbGV0ZSgpLCEwKSxkPSgpPT57cz0hMSxpPXQuc3Vic2NyaWJlKEh0KGUsdm9pZCAwLCgpPT57cz0hMCwhbCgpJiYob3x8KG89bmV3IEVlLG4obykuc3Vic2NyaWJlKEh0KGUsKCk9PntpP2QoKTpyPSEwfSwoKT0+e2E9ITAsbCgpfSkpKSxvKS5uZXh0KCl9KSksciYmKGkudW5zdWJzY3JpYmUoKSxpPW51bGwscj0hMSxkKCkpfTtkKCl9KX0oaT0+aS5waXBlKEl0KHQpLEhtKChbLHJdKT0+cnMocikpKSksaXQoZSkscSgoKT0+e30pKX0oJHQoZSksdGhpcy5zdG9yZS5zZWxlY3QoWVgpLnBpcGUocShpPT5mdW5jdGlvbihuKXtyZXR1cm4gbj42ZTQ/NmU0Om4+NGUzP246MmUzfShpKSkpLHRoaXMuYWN0aW9ucyQucGlwZShabih3RSkpKSksRHQoKCk9PnRoaXMuc3RvcmUuZGlzcGF0Y2goc3koKSkpLHEoKCk9Pnt9KSl9b25Db3JlUmVsb2FkKCl7cmV0dXJuIHRuKHRoaXMuYWN0aW9ucyQucGlwZShabihCYSxtYSkpLHRoaXMuYWN0aW9ucyQucGlwZShabih5YykpLnBpcGUoSXQodGhpcy5zdG9yZS5zZWxlY3Qob04pKSxPZSgoWyxlXSk9PmUuc3RhdGU9PT1SZS5OT1RfTE9BREVEfHxlLnN0YXRlPT09UmUuRkFJTEVEJiZudWxsPT09ZS5sYXN0TG9hZGVkVGltZUluTXMpKSkucGlwZShJdCh0aGlzLnN0b3JlLnNlbGVjdChabykpLE9lKChbLGVdKT0+ZT09PWlUKSxEdCgoKT0+dGhpcy5zdG9yZS5kaXNwYXRjaChzeSgpKSkscSgoKT0+e30pKX1sb2FkRGVidWdnZXJSdW5zKGUpe3JldHVybiBlLnBpcGUoSXQodGhpcy5zdG9yZS5zZWxlY3Qob04pKSxPZSgoWyx7c3RhdGU6aX1dKT0+aSE9PVJlLkxPQURJTkcpLER0KCgpPT50aGlzLnN0b3JlLmRpc3BhdGNoKFNFKCkpKSx4bigoKT0+dGhpcy5kYXRhU291cmNlLmZldGNoUnVucygpLnBpcGUoRHQoaT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goRUUoe3J1bnM6aX0pKX0pLHEoKCk9Pnt9KSkpKX1jcmVhdGVOdW1FeGVjdXRpb25Mb2FkZXIoZSl7cmV0dXJuIGUucGlwZShJdCh0aGlzLnN0b3JlLnNlbGVjdChOaCksdGhpcy5zdG9yZS5zZWxlY3QocUUpKSxPZSgoWyxpLHJdKT0+T2JqZWN0LmtleXMoaSkubGVuZ3RoPjAmJnIuc3RhdGUhPT1SZS5MT0FESU5HKSxEdCgoKT0+dGhpcy5zdG9yZS5kaXNwYXRjaChJRSgpKSkseG4oKFssaV0pPT57bGV0IHI9T2JqZWN0LmtleXMoaSlbMF07cmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5mZXRjaEV4ZWN1dGlvbkRpZ2VzdHMociwwLDApLnBpcGUoRHQocz0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goQUUoe251bUV4ZWN1dGlvbnM6cy5udW1fZGlnZXN0c30pKX0pLHEoKCk9Pnt9KSl9KSl9Y3JlYXRlTnVtR3JhcGhFeGVjdXRpb25Mb2FkZXIoZSl7cmV0dXJuIGUucGlwZShJdCh0aGlzLnN0b3JlLnNlbGVjdChOaCksdGhpcy5zdG9yZS5zZWxlY3QoZVkpKSxPZSgoWyxpLHJdKT0+T2JqZWN0LmtleXMoaSkubGVuZ3RoPjAmJnIuc3RhdGUhPT1SZS5MT0FESU5HKSxEdCgoKT0+dGhpcy5zdG9yZS5kaXNwYXRjaChPRSgpKSkseG4oKFssaV0pPT57bGV0IHI9T2JqZWN0LmtleXMoaSlbMF07cmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5mZXRjaEdyYXBoRXhlY3V0aW9uRGlnZXN0cyhyLDAsMCkucGlwZShEdChzPT57dGhpcy5zdG9yZS5kaXNwYXRjaChGRSh7bnVtR3JhcGhFeGVjdXRpb25zOnMubnVtX2RpZ2VzdHN9KSl9KSxxKCgpPT57fSkpfSkpfWNyZWF0ZU51bUFsZXJ0c0FuZEJyZWFrZG93bkxvYWRlcihlKXtyZXR1cm4gZS5waXBlKEl0KHRoaXMuc3RvcmUuc2VsZWN0KE5oKSx0aGlzLnN0b3JlLnNlbGVjdChhTikpLE9lKChbLGkscl0pPT5PYmplY3Qua2V5cyhpKS5sZW5ndGg+MCYmci5zdGF0ZSE9PVJlLkxPQURJTkcpLER0KCgpPT50aGlzLnN0b3JlLmRpc3BhdGNoKGx5KCkpKSx4bigoWyxpXSk9PntsZXQgcj1PYmplY3Qua2V5cyhpKVswXTtyZXR1cm4gdGhpcy5kYXRhU291cmNlLmZldGNoQWxlcnRzKHIsMCwwKS5waXBlKER0KHM9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKFRFKHtudW1BbGVydHM6cy5udW1fYWxlcnRzLGFsZXJ0c0JyZWFrZG93bjpzLmFsZXJ0c19icmVha2Rvd259KSl9KSxxKCgpPT57fSkpfSkpfWNyZWF0ZUluaXRpYWxFeGVjdXRpb25EZXRlY3RvcihlKXtyZXR1cm4gZS5waXBlKEl0KHRoaXMuc3RvcmUuc2VsZWN0KFp1KSx0aGlzLnN0b3JlLnNlbGVjdChweSkpLE9lKChbLGkscl0pPT5pPjAmJjA9PT1PYmplY3Qua2V5cyhyLnBhZ2VMb2FkZWRTaXplcykubGVuZ3RoKSxxKCgpPT57fSkpfWNyZWF0ZUluaXRpYWxFeGVjdXRpb25EaWdlc3QoZSl7cmV0dXJuIGUucGlwZShJdCh0aGlzLnN0b3JlLnNlbGVjdChadSksdGhpcy5zdG9yZS5zZWxlY3QoJG8pLHRoaXMuc3RvcmUuc2VsZWN0KFZnKSksT2UoKFssLGldKT0+bnVsbCE9PWkpLHEoKFssaSxyLG9dKT0+KHtiZWdpbjowLGVuZDpNYXRoLm1pbihpLG8pLHJ1bklkOnJ9KSkpfW9uRXhlY3V0aW9uU2Nyb2xsKCl7cmV0dXJuIHRoaXMuYWN0aW9ucyQucGlwZShabihJZyxBZyxSZyksSXQodGhpcy5zdG9yZS5zZWxlY3QoJG8pLHRoaXMuc3RvcmUuc2VsZWN0KGh5KSx0aGlzLnN0b3JlLnNlbGVjdChadSksdGhpcy5zdG9yZS5zZWxlY3QoSGcpLHRoaXMuc3RvcmUuc2VsZWN0KFZnKSksT2UoKFtlXSk9Pm51bGwhPT1lKSxxKChbLGUsaSxyLG8sYV0pPT4oe3J1bklkOmUsYmVnaW46aSxlbmQ6TWF0aC5taW4ocixpK28pLHBhZ2VTaXplOmF9KSksSXQodGhpcy5zdG9yZS5zZWxlY3QocHkpKSxxKChbZSxpXSk9Pih7cHJvcHM6ZSxsb2FkZWQ6aSxtaXNzaW5nUGFnZXM6eU4oZS5iZWdpbixlLmVuZCxlLnBhZ2VTaXplLGkubnVtRXhlY3V0aW9ucyxpLnBhZ2VMb2FkZWRTaXplcyl9KSksT2UoKHttaXNzaW5nUGFnZXM6ZX0pPT5lLmxlbmd0aD4wKSxxKCh7cHJvcHM6ZSxsb2FkZWQ6aSxtaXNzaW5nUGFnZXM6cn0pPT57bGV0e3J1bklkOm8scGFnZVNpemU6YX09ZTtyZXR1cm57YmVnaW46clswXSphLGVuZDpNYXRoLm1pbihpLm51bUV4ZWN1dGlvbnMsKHJbci5sZW5ndGgtMV0rMSkqYSkscnVuSWQ6b319KSl9Y3JlYXRlRXhlY3V0aW9uRGlnZXN0TG9hZGVyKGUpe3JldHVybiBlLnBpcGUoSXQodGhpcy5zdG9yZS5zZWxlY3QocHkpKSxPZSgoW3tiZWdpbjppLGVuZDpyfSxvXSk9PnI+aSYmIWZ1bmN0aW9uKG4sdCxlKXtpZih0Pj1lKXRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYmVnaW4gdG8gYmUgbGVzcyB0aGFuIGVuZCwgYnV0IGdvdCBiZWdpbj0ke3R9LCBlbmQ9JHtlfWApO3JldHVybi0xIT09bi5maW5kSW5kZXgoaT0+aS5iZWdpbj49dCYmaS5lbmQ8PWUpfShvLmxvYWRpbmdSYW5nZXMsaSxyKSksRHQoKFt7YmVnaW46aSxlbmQ6cn1dKT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goUkUoe2JlZ2luOmksZW5kOnJ9KSl9KSx4bigoW3tydW5JZDppLGJlZ2luOnIsZW5kOm99XSk9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaEV4ZWN1dGlvbkRpZ2VzdHMoaSxyLG8pLnBpcGUoRHQoYT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goUEUoYSkpfSkscSgoKT0+e30pKSkpfW9uRXhlY3V0aW9uRGlnZXN0Rm9jdXNlZCgpe3JldHVybiB0aGlzLmFjdGlvbnMkLnBpcGUoWm4oUGcpLEl0KHRoaXMuc3RvcmUuc2VsZWN0KCRvKSx0aGlzLnN0b3JlLnNlbGVjdChoTiksdGhpcy5zdG9yZS5zZWxlY3QoaHkpKSxxKChbZSxpLHIsb10pPT4oe2FjdGl2ZVJ1bklkOmksbG9hZGVkRXhlY3V0aW9uRGF0YTpyLGZvY3VzSW5kZXg6bytlLmRpc3BsYXlJbmRleH0pKSl9Y3JlYXRlRXhlY3V0aW9uRGF0YUFuZFN0YWNrRnJhbWVzTG9hZGVyKGUpe3JldHVybiBlLnBpcGUoT2UoKHthY3RpdmVSdW5JZDppLGxvYWRlZEV4ZWN1dGlvbkRhdGE6cixmb2N1c0luZGV4Om99KT0+bnVsbCE9PWkmJm51bGwhPT1vJiZ2b2lkIDA9PT1yW29dKSx4bigoe2FjdGl2ZVJ1bklkOmksZm9jdXNJbmRleDpyfSk9PntsZXQgbz1yLGE9bysxO3JldHVybiB0aGlzLmRhdGFTb3VyY2UuZmV0Y2hFeGVjdXRpb25EYXRhKGksbyxhKS5waXBlKER0KHM9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKGtFKHMpKX0pLHEocz0+KHtleGVjdXRpb25EYXRhOnMsYmVnaW46byxlbmQ6YX0pKSl9KSxxKCh7ZXhlY3V0aW9uRGF0YTppfSk9PmkuZXhlY3V0aW9uc1swXSksSXQodGhpcy5zdG9yZS5zZWxlY3QoJG8pLHRoaXMuc3RvcmUuc2VsZWN0KG1OKSksT2UoKFtpLHIsb10pPT57aWYobnVsbD09PXIpcmV0dXJuITE7Zm9yKGxldCBhIG9mIGkuc3RhY2tfZnJhbWVfaWRzKWlmKHZvaWQgMD09PW9bYV0pcmV0dXJuITA7cmV0dXJuITF9KSx4bigoW2kscl0pPT57bGV0IG89aS5zdGFja19mcmFtZV9pZHM7cmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5mZXRjaFN0YWNrRnJhbWVzKHIsbykucGlwZShEdChhPT57bGV0IHM9e307Zm9yKGxldCBsPTA7bDxvLmxlbmd0aDsrK2wpc1tvW2xdXT1hLnN0YWNrX2ZyYW1lc1tsXTt0aGlzLnN0b3JlLmRpc3BhdGNoKGN5KHtzdGFja0ZyYW1lczpzfSkpfSkscSgoKT0+e30pKX0pKX1vbkdyYXBoRXhlY3V0aW9uU2Nyb2xsKCl7cmV0dXJuIHRoaXMuYWN0aW9ucyQucGlwZShabihrZyksQ3IoMTAwKSxJdCh0aGlzLnN0b3JlLnNlbGVjdCgkbyksdGhpcy5zdG9yZS5zZWxlY3QobXkpLHRoaXMuc3RvcmUuc2VsZWN0KHRZKSksT2UoKFssZSxpXSk9Pm51bGwhPT1lJiZpPjApLHEoKFssZSxpLHJdKT0+KHtydW5JZDplLG51bUdyYXBoRXhlY3V0aW9uczppLHNjcm9sbEJlZ2luSW5kZXg6cn0pKSxJdCh0aGlzLnN0b3JlLnNlbGVjdChpWSksdGhpcy5zdG9yZS5zZWxlY3QoblkpLHRoaXMuc3RvcmUuc2VsZWN0KHJZKSx0aGlzLnN0b3JlLnNlbGVjdChvWSkpLHEoKFt7cnVuSWQ6ZSxudW1HcmFwaEV4ZWN1dGlvbnM6aSxzY3JvbGxCZWdpbkluZGV4OnJ9LG8sYSxzLGxdKT0+e2xldCBjPXlOKHIsTWF0aC5taW4ocithLGkpLG8saSxsKTtyZXR1cm4gYz1jLmZpbHRlcihkPT4tMT09PXMuaW5kZXhPZihkKSkse3J1bklkOmUsbWlzc2luZ1BhZ2VzOmMscGFnZVNpemU6byxudW1HcmFwaEV4ZWN1dGlvbnM6aX19KSl9bG9hZEdyYXBoRXhlY3V0aW9uUGFnZXMoZSl7cmV0dXJuIGUucGlwZShPZSgoe21pc3NpbmdQYWdlczppfSk9PmkubGVuZ3RoPjApLER0KCh7bWlzc2luZ1BhZ2VzOml9KT0+e2kuZm9yRWFjaChyPT57dGhpcy5zdG9yZS5kaXNwYXRjaChORSh7cGFnZUluZGV4OnJ9KSl9KX0pLHhuKCh7cnVuSWQ6aSxtaXNzaW5nUGFnZXM6cixwYWdlU2l6ZTpvLG51bUdyYXBoRXhlY3V0aW9uczphfSk9PntsZXQgcz1yWzBdKm8sbD1NYXRoLm1pbigocltyLmxlbmd0aC0xXSsxKSpvLGEpO3JldHVybiB0aGlzLmRhdGFTb3VyY2UuZmV0Y2hHcmFwaEV4ZWN1dGlvbkRhdGEoaSxzLGwpLnBpcGUoRHQoYz0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goTEUoYykpfSkscSgoKT0+e30pKX0pKX1sb2FkR3JhcGhPcEluZm8oKXtyZXR1cm4gdGhpcy5hY3Rpb25zJC5waXBlKFpuKEZnLE9nKSxJdCh0aGlzLnN0b3JlLnNlbGVjdCgkbyksdGhpcy5zdG9yZS5zZWxlY3QoZFkpKSxPZSgoW2UsaSxyXSk9PntsZXR7Z3JhcGhfaWQ6byxvcF9uYW1lOmF9PWU7cmV0dXJuIShudWxsPT09aXx8dm9pZCAwIT09cltvXSYmcltvXS5oYXMoYSkmJihyW29dLmdldChhKT09PVJlLkxPQURJTkd8fHJbb10uZ2V0KGEpPT09UmUuTE9BREVEKSl9KSxEdCgoW3tncmFwaF9pZDplLG9wX25hbWU6aX1dKT0+dGhpcy5zdG9yZS5kaXNwYXRjaChCRSh7Z3JhcGhfaWQ6ZSxvcF9uYW1lOml9KSkpLHhuKChbZSxpXSk9PntsZXR7Z3JhcGhfaWQ6cixvcF9uYW1lOm99PWU7cmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5mZXRjaEdyYXBoT3BJbmZvKGkscixvKS5waXBlKER0KGE9PnRoaXMuc3RvcmUuZGlzcGF0Y2goVkUoe2dyYXBoT3BJbmZvUmVzcG9uc2U6YX0pKSkscShhPT4oe3J1bklkOmksc3RhY2tGcmFtZUlkczphLnN0YWNrX2ZyYW1lX2lkc30pKSl9KSl9bG9hZEdyYXBoT3BTdGFja0ZyYW1lcyhlKXtyZXR1cm4gZS5waXBlKEl0KHRoaXMuc3RvcmUuc2VsZWN0KG1OKSkscSgoW3tydW5JZDppLHN0YWNrRnJhbWVJZHM6cn0sb10pPT4oe3J1bklkOmksbWlzc2luZ1N0YWNrRnJhbWVJZHM6ci5maWx0ZXIocz0+dm9pZCAwPT09b1tzXSl9KSksT2UoKHtydW5JZDppLG1pc3NpbmdTdGFja0ZyYW1lSWRzOnJ9KT0+bnVsbCE9PWkmJnIubGVuZ3RoPjApLHhuKCh7cnVuSWQ6aSxtaXNzaW5nU3RhY2tGcmFtZUlkczpyfSk9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaFN0YWNrRnJhbWVzKGkscikucGlwZShEdChvPT57bGV0IGE9e307Zm9yKGxldCBzPTA7czxyLmxlbmd0aDsrK3MpYVtyW3NdXT1vLnN0YWNrX2ZyYW1lc1tzXTt0aGlzLnN0b3JlLmRpc3BhdGNoKGN5KHtzdGFja0ZyYW1lczphfSkpfSkscSgoKT0+e30pKSkpfW9uQWxlcnRUeXBlRm9jdXNlZCgpe3JldHVybiB0aGlzLmFjdGlvbnMkLnBpcGUoWm4oRGcpLEl0KHRoaXMuc3RvcmUuc2VsZWN0KCRvKSx0aGlzLnN0b3JlLnNlbGVjdChXRSksdGhpcy5zdG9yZS5zZWxlY3QoWlgpLHRoaXMuc3RvcmUuc2VsZWN0KEtYKSx0aGlzLnN0b3JlLnNlbGVjdChhTikpLE9lKChbLGUsaSxyLG8sYV0pPT5udWxsIT09ZSYmbnVsbCE9PWkmJnI+MCYmKG51bGw9PT1vfHxPYmplY3Qua2V5cyhvKS5sZW5ndGg8cikmJmEuc3RhdGUhPT1SZS5MT0FESU5HKSxEdCgoKT0+dGhpcy5zdG9yZS5kaXNwYXRjaChseSgpKSkseG4oKFssZSxpXSk9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaEFsZXJ0cyhlLDAsLTEsaSkpLER0KCh7bnVtX2FsZXJ0czplLGFsZXJ0c19icmVha2Rvd246aSxhbGVydF90eXBlOnIsYmVnaW46byxlbmQ6YSxhbGVydHM6c30pPT57dGhpcy5zdG9yZS5kaXNwYXRjaChERSh7bnVtQWxlcnRzOmUsYWxlcnRzQnJlYWtkb3duOmksYWxlcnRUeXBlOnIsYmVnaW46byxlbmQ6YSxhbGVydHM6c30pKX0pKX1mZXRjaEV4ZWN1dGlvbkRpZ2VzdHNGb3JBbGVydFR5cGVGb2N1cyhlKXtyZXR1cm4gZS5waXBlKEl0KHRoaXMuc3RvcmUuc2VsZWN0KFZnKSx0aGlzLnN0b3JlLnNlbGVjdChIZyksdGhpcy5zdG9yZS5zZWxlY3QoWnUpLHRoaXMuc3RvcmUuc2VsZWN0KHB5KSx0aGlzLnN0b3JlLnNlbGVjdCgkbykpLHEoKFtpLHIsbyxhLHMsbF0pPT57bGV0IGQ9aS5hbGVydHNbMF0uZXhlY3V0aW9uX2luZGV4LHU9eU4oTWF0aC5tYXgoMCxkLU1hdGguZmxvb3Ioby8yKSksTWF0aC5taW4oZCtNYXRoLmZsb29yKG8vMiksYSkscixhLHMucGFnZUxvYWRlZFNpemVzKTtyZXR1cm4gMD09PXUubGVuZ3RoP3tydW5JZDpsLGJlZ2luOjAsZW5kOjB9OntydW5JZDpsLGJlZ2luOnVbMF0qcixlbmQ6TWF0aC5taW4ocy5udW1FeGVjdXRpb25zLCh1W3UubGVuZ3RoLTFdKzEpKnIpfX0pKX1sb2FkU291cmNlRmlsZUxpc3QoZSl7cmV0dXJuIGUucGlwZShJdCh0aGlzLnN0b3JlLnNlbGVjdCgkbyksdGhpcy5zdG9yZS5zZWxlY3QocFkpKSxPZSgoWyxpLHJdKT0+bnVsbCE9PWkmJnIuc3RhdGUhPT1SZS5MT0FESU5HKSxEdCgoKT0+dGhpcy5zdG9yZS5kaXNwYXRjaChIRSgpKSkseG4oKFssaV0pPT50aGlzLmRhdGFTb3VyY2UuZmV0Y2hTb3VyY2VGaWxlTGlzdChpKS5waXBlKER0KHI9PntsZXQgbz1bXTtyLmZvckVhY2goKFthLHNdKT0+e28ucHVzaCh7aG9zdF9uYW1lOmEsZmlsZV9wYXRoOnN9KX0pLHRoaXMuc3RvcmUuZGlzcGF0Y2goekUoe3NvdXJjZUZpbGVzOm99KSl9KSxxKCgpPT57fSkpKSl9b25Tb3VyY2VGaWxlRm9jdXNlZCgpe3JldHVybiB0aGlzLmFjdGlvbnMkLnBpcGUoWm4oTmcpLEl0KHRoaXMuc3RvcmUuc2VsZWN0KCRvKSx0aGlzLnN0b3JlLnNlbGVjdChmTiksdGhpcy5zdG9yZS5zZWxlY3QoUUUpKSxxKChbZSxpLHIsb10pPT4oe3J1bklkOmksc3RhY2tGcmFtZTplLnN0YWNrRnJhbWUsZmlsZUluZGV4OnIsZmlsZUNvbnRlbnQ6b30pKSxPZSgoe3J1bklkOmUsZmlsZUNvbnRlbnQ6aX0pPT5udWxsIT09ZSYmbnVsbCE9PWkmJmkubG9hZFN0YXRlPT09UmUuTk9UX0xPQURFRCksRHQoKHtzdGFja0ZyYW1lOmV9KT0+dGhpcy5zdG9yZS5kaXNwYXRjaChVRSh7aG9zdF9uYW1lOmUuaG9zdF9uYW1lLGZpbGVfcGF0aDplLmZpbGVfcGF0aH0pKSkseG4oKHtmaWxlSW5kZXg6ZSxydW5JZDppfSk9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaFNvdXJjZUZpbGUoaSxlKS5waXBlKER0KHI9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKGpFKHIpKX0pLHEoKCk9Pnt9KSkpKX1jb25zdHJ1Y3RvcihlLGkscil7dGhpcy5hY3Rpb25zJD1lLHRoaXMuc3RvcmU9aSx0aGlzLmRhdGFTb3VyY2U9cix0aGlzLmxvYWREYXRhJD1fcigoKT0+e2xldCBvPXRoaXMubG9hZERlYnVnZ2VyUnVucyh0bih0aGlzLm9uRGVidWdnZXJEYXRhUG9sbCgpLHRoaXMub25Db3JlUmVsb2FkKCkpKS5waXBlKFRhKCkpLGE9dGhpcy5sb2FkU291cmNlRmlsZUxpc3Qobykscz10aGlzLmNyZWF0ZU51bUV4ZWN1dGlvbkxvYWRlcihvKSxsPXRoaXMuY3JlYXRlTnVtQWxlcnRzQW5kQnJlYWtkb3duTG9hZGVyKG8pLGM9dGhpcy5vbkFsZXJ0VHlwZUZvY3VzZWQoKSxkPXRoaXMuZmV0Y2hFeGVjdXRpb25EaWdlc3RzRm9yQWxlcnRUeXBlRm9jdXMoYyksdT10aGlzLmNyZWF0ZUluaXRpYWxFeGVjdXRpb25EZXRlY3RvcihzKS5waXBlKFRhKCkpLHA9dGhpcy5jcmVhdGVFeGVjdXRpb25EaWdlc3RMb2FkZXIodG4odGhpcy5vbkV4ZWN1dGlvblNjcm9sbCgpLHRoaXMuY3JlYXRlSW5pdGlhbEV4ZWN1dGlvbkRpZ2VzdCh1KSxkKSksaD10aGlzLmNyZWF0ZUV4ZWN1dGlvbkRhdGFBbmRTdGFja0ZyYW1lc0xvYWRlcih0bih0aGlzLm9uRXhlY3V0aW9uRGlnZXN0Rm9jdXNlZCgpLHUucGlwZShJdCh0aGlzLnN0b3JlLnNlbGVjdCgkbyksdGhpcy5zdG9yZS5zZWxlY3QoaE4pKSxxKChbLHgsUl0pPT4oe2FjdGl2ZVJ1bklkOngsbG9hZGVkRXhlY3V0aW9uRGF0YTpSLGZvY3VzSW5kZXg6MH0pKSkpKTtyZXR1cm4gdG4obCxwLGgsdGhpcy5jcmVhdGVOdW1HcmFwaEV4ZWN1dGlvbkxvYWRlcihvKSxhLHRoaXMub25Tb3VyY2VGaWxlRm9jdXNlZCgpLHRoaXMubG9hZEdyYXBoRXhlY3V0aW9uUGFnZXModGhpcy5vbkdyYXBoRXhlY3V0aW9uU2Nyb2xsKCkpLHRoaXMubG9hZEdyYXBoT3BTdGFja0ZyYW1lcyh0aGlzLmxvYWRHcmFwaE9wSW5mbygpKSkucGlwZShxKCgpPT4oe30pKSl9LHtkaXNwYXRjaDohMX0pfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShPKEVvKSxPKEllKSxPKENFKSl9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjfSksbn0pKCksUVk9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0RlXX0pLG59KSgpLFpZPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltEZV19KSxufSkoKSxyVD0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGVdfSksbn0pKCksS1k9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0RlLHJULENkXX0pLG59KSgpLEpZPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHt9KSxufSkoKSx0cD0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7fSksbn0pKCksb1Q9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0RlLHRwXX0pLG59KSgpLCRZPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltEZSxvVF19KSxufSkoKSxlUT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGUsb1RdfSksbn0pKCksdFE9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0RlLHJUXX0pLG59KSgpLG5RPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltEZSx0USxLbixlcF19KSxufSkoKSxpUT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbUVksRGUsUXMsS1ksWlksSlksJFksZVEsVVgsblEsd3IuZm9yRmVhdHVyZShkeSxYWCksdG8uZm9yRmVhdHVyZShbWVldKSxPYy5mb3JQbHVnaW4oaVQsV1kpXX0pLG59KSgpLGFUPWZlKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5ncyBQYW5lIENsb3NlZCIpLHNUPWZlKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5ncyBQYW5lIFRvZ2dsZWQiKSxsVD1mZSgiW01ldHJpY3NdIFNsaWRlIG91dCBzZXR0aW5ncyBtZW51IHRvZ2dsZWQiKSxjVD1mZSgiW01ldHJpY3NdIFVzZXIgcmVxdWVzdGVkIHRvIG9wZW4gdGhlIHNsaWRlIG91dCBtZW51Iix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksZFQ9ZmUoIltNZXRyaWNzXSBVc2VyIGNoYW5nZWQgdGhlIHRhYiBpbiB0aGUgdGFibGUgZWRpdG9yIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksdVQ9ZmUoIltNZXRyaWNzXSBTbGlkZSBvdXQgc2V0dGluZ3MgbWVudSBjbG9zZWQiKSxwVD1mZSgiW01ldHJpY3NdIE1ldHJpY3MgVGFnIE1ldGFkYXRhIFJlcXVlc3RlZCIpLGhUPWZlKCJbTWV0cmljc10gTWV0cmljcyBUYWcgTWV0YWRhdGEgTG9hZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksbVQ9ZmUoIltNZXRyaWNzXSBNZXRyaWNzIFRhZyBNZXRhZGF0YSBGYWlsZWQiKSxmVD1mZSgiW01ldHJpY3NdIE1ldHJpY3MgQ2FyZCBTdGF0ZSBVcGRhdGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksemc9ZmUoIltNZXRyaWNzXSBNZXRyaWNzIENhcmQgRnVsbCBTaXplIFRvZ2dsZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxnVD1mZSgiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZ3MgQ2hhbmdlIFRvb2x0aXAiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxfVD0oZmUoIltNZXRyaWNzXSBNZXRyaWNzIFNldHRpbmdzIFRvZ2dsZSBTaG93IERhdGEgRG93bmxvYWQiKSxmZSgiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZyBUb2dnbGUgSWdub3JlIE91dGxpZXIiKSksYlQ9ZmUoIltNZXRyaWNzXSBNZXRyaWNzIFNldHRpbmcgQ2hhbmdlIFggQXhpcyBUeXBlIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksdlQ9ZmUoIltNZXRyaWNzXSBNZXRyaWNzIFNldHRpbmcgQ2hhbmdlIENhcmQgV2lkdGgiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSx5VD1mZSgiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZyBSZXNldCBDYXJkIFdpZHRoIikseFQ9ZmUoIltNZXRyaWNzXSBNZXRyaWNzIFNldHRpbmcgQ2hhbmdlIFNjYWxhciBTbW9vdGhpbmciLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxDVD1mZSgiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZyBQYXJ0aXRpb24gTm9uIE1vbm90b25pYyBYIFRvZ2dsZWQiKSxNVD1mZSgiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZyBDaGFuZ2UgSW1hZ2UgQnJpZ2h0bmVzcyIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHdUPWZlKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5nIENoYW5nZSBJbWFnZSBDb250cmFzdCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFNUPWZlKCJbTWV0cmljc10gSW1hZ2UgQnJpZ2h0bmVzcyBTZXR0aW5nIFJlc2V0IiksRVQ9ZmUoIltNZXRyaWNzXSBJbWFnZSBDb250cmFzdCBTZXR0aW5nIFJlc2V0IiksVFQ9ZmUoIltNZXRyaWNzXSBNZXRyaWNzIFNldHRpbmcgVG9nZ2xlIEltYWdlIFNob3cgQWN0dWFsIFNpemUiKSxEVD1mZSgiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZyBDaGFuZ2UgSGlzdG9ncmFtIE1vZGUiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxJVD1mZSgiW01ldHJpY3NdIE11bHRpcGxlIFRpbWUgU2VyaWVzIFJlcXVlc3RlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEFUPWZlKCJbTWV0cmljc10gRmV0Y2ggVGltZSBTZXJpZXMgUmVxdWVzdCBGYWlsZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxSVD1mZSgiW01ldHJpY3NdIEZldGNoIFRpbWUgU2VyaWVzIFJlc3BvbnNlIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFVnPWZlKCJbTWV0cmljc10gQ2FyZCBWaXNpYmlsaXR5IENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxQVD1mZSgiW01ldHJpY3NdIENhcmQgU3RlcCBTbGlkZXIgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGtUPWZlKCJbTWV0cmljc10gVGFnIEZpbHRlciBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksT1Q9ZmUoIltNZXRyaWNzXSBNZXRyaWNzIFRhZyBHcm91cCBFeHBhbnNpb24gQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLG5wPWZlKCJbTWV0cmljc10gQ2FyZCBQaW4gU3RhdGUgVG9nZ2xlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEZUPWZlKCJbTWV0cmljc10gVG9nZ2xlIFZpc2libGUgUGx1Z2luIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksTlQ9ZmUoIltNZXRyaWNzXSBUb2dnbGUgU2hvdyBBbGwgUGx1Z2lucyIpLEhoPWZlKCJbTWV0cmljc10gVGltZSBTZWxlY3Rpb24gQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLF95PWZlKCJbTWV0cmljc10gQ2FyZCBVc2VyIFZpZXcgQm94IENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxMVD1mZSgiW01ldHJpY3NdIExpbmtlZCBUaW1lIEVuYWJsZSBUb2dnbGUiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxyUT1mZSgiW01ldHJpY3NdIFNvcnRpbmcgRGF0YSBUYWJsZSBCeSBIZWFkZXIiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxqZz1mZSgiW01ldHJpY3NdIERhdGEgdGFibGUgY29sdW1ucyBvcmRlciBjaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksR2c9ZmUoIltNZXRyaWNzXSBEYXRhIHRhYmxlIGNvbHVtbiB0b2dnbGVkIGluIGVkaXQgbWVudSBvciBkZWxldGUgYnV0dG9uIGNsaWNrZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxUZD1mZSgiW01ldHJpY3NdIFRpbWUgU2VsZWN0b3IgRW5hYmxlIFRvZ2dsZSIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEJUPWZlKCJbTWV0cmljc10gUmFuZ2UgU2VsZWN0aW9uIFRvZ2dsZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxvUT1mZSgiW01ldHJpY3NdIEhpZGUgRW1wdHkgQ2FyZHMgQ2hhbmdlZCIpLFZUPWZlKCJbTWV0cmljc10gVW5yZXNvbHZlZCBQaW5uZWQgQ2FyZHMgRnJvbSBMb2NhbCBTdG9yYWdlIEFkZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksV2c9ZmUoIltNZXRyaWNzXSBDbGVhciBhbGwgcGlubmVkIGNhcmRzIiksemg9ZmUoIltNZXRyaWNzXSBFbmFibGUgU2F2aW5nIFBpbnMgVG9nZ2xlZCIpO2Z1bmN0aW9uIGJ5KG4sdCl7bGV0IGU9e307Zm9yKGxldCBpIG9mIE9iamVjdC5rZXlzKG4pKWVbaV09dChuW2ldLGkpO3JldHVybiBlfXZhciBRYT0oKCk9PihmdW5jdGlvbihuKXtuLk5PTkU9Im5vIGFmZm9yZGFuY2UiLG4uRVhURU5ERURfTElORT0iZXh0ZW5kZWRMaW5lIixuLkZPQj0iZm9iIixuLkZPQl9SRU1PVkVEPSJmb2JSZW1vdmVkIixuLkZPQl9URVhUPSJmb2JUZXh0IixuLkhJU1RPR1JBTV9DTElDS19UT19SQU5HRT0iaGlzdG9ncmFtQ2xpY2tUb1JhbmdlIixuLkZPQl9BRERFRD0iZm9iQWRkZWQifShRYXx8KFFhPXt9KSksUWEpKSgpLFphPSgoKT0+KGZ1bmN0aW9uKG4pe24uTk9ORT0ibm8gdG9nZ2xlIGFmZm9yZGFuY2UiLG4uRk9CX0RFU0VMRUNUPSJmb2JEZXNlbGVjdCIsbi5DSEVDS19CT1g9ImNoZWNrQm94In0oWmF8fChaYT17fSkpLFphKSkoKSx2YT0oKCk9PihmdW5jdGlvbihuKXtuW24uSE9SSVpPTlRBTD0wXT0iSE9SSVpPTlRBTCIsbltuLlZFUlRJQ0FMPTFdPSJWRVJUSUNBTCJ9KHZhfHwodmE9e30pKSx2YSkpKCk7ZnVuY3Rpb24gSFQobil7bGV0IHQ9bmV3IE1hcCxlPW4uc2xpY2UoKS5zb3J0KChpLHIpPT52eShpLnRhZyxyLnRhZykpO2ZvcihsZXQgaSBvZiBlKXtsZXQgcj1qU2UoaS50YWcpO3QuaGFzKHIpfHx0LnNldChyLHtncm91cE5hbWU6cixpdGVtczpbXX0pLHQuZ2V0KHIpLml0ZW1zLnB1c2goaSl9cmV0dXJuWy4uLnQudmFsdWVzKCldfWZ1bmN0aW9uIGpTZShuKXtyZXR1cm4gbi5zcGxpdCgiLyIsMSlbMF19ZnVuY3Rpb24gdnkobix0KXtsZXQgZT0wLGk9MDtmb3IoOzspe2lmKGU9PT1uLmxlbmd0aClyZXR1cm4gaT09PXQubGVuZ3RoPzA6LTE7aWYoaT09PXQubGVuZ3RoKXJldHVybiAxO2lmKFVoKG5bZV0pJiZVaCh0W2ldKSl7bGV0IHI9ZSxvPWk7ZT1hUShuLGUrMSksaT1hUSh0LGkrMSk7bGV0IGE9TnVtYmVyKG4uc2xpY2UocixlKSkscz1OdW1iZXIodC5zbGljZShvLGkpKTtpZihhPHMpcmV0dXJuLTE7aWYoYT5zKXJldHVybiAxfWVsc2V7aWYoeE4obltlXSkpe2lmKCF4Tih0W2ldKSlyZXR1cm4tMX1lbHNle2lmKHhOKHRbaV0pKXJldHVybiAxO2lmKG5bZV08dFtpXSlyZXR1cm4tMTtpZihuW2VdPnRbaV0pcmV0dXJuIDF9ZSsrLGkrK319fWZ1bmN0aW9uIGFRKG4sdCl7bGV0IGU7dmFyIG87KG89ZXx8KGU9e30pKVtvLk5BVFVSQUw9MF09Ik5BVFVSQUwiLG9bby5SRUFMPTFdPSJSRUFMIixvW28uRVhQT05FTlRfU0lHTj0yXT0iRVhQT05FTlRfU0lHTiIsb1tvLkVYUE9ORU5UPTNdPSJFWFBPTkVOVCI7bGV0IGk9ZS5OQVRVUkFMLHI9dDtmb3IoO3I8bi5sZW5ndGg7cisrKWlmKGk9PT1lLk5BVFVSQUwpe2lmKCIuIj09PW5bcl0paT1lLlJFQUw7ZWxzZSBpZigiZSI9PT1uW3JdfHwiRSI9PT1uW3JdKWk9ZS5FWFBPTkVOVF9TSUdOO2Vsc2UgaWYoIVVoKG5bcl0pKWJyZWFrfWVsc2UgaWYoaT09PWUuUkVBTCl7aWYoImUiPT09bltyXXx8IkUiPT09bltyXSlpPWUuRVhQT05FTlRfU0lHTjtlbHNlIGlmKCFVaChuW3JdKSlicmVha31lbHNlIGlmKGk9PT1lLkVYUE9ORU5UX1NJR04pe2lmKCFVaChuW3JdKSYmIisiIT09bltyXSYmIi0iIT09bltyXSlicmVhaztpPWUuRVhQT05FTlR9ZWxzZSBpZihpPT09ZS5FWFBPTkVOVCYmIVVoKG5bcl0pKWJyZWFrO3JldHVybiByfWZ1bmN0aW9uIFVoKG4pe3JldHVybiIwIjw9biYmbjw9IjkifWZ1bmN0aW9uIHhOKG4pe3JldHVybiIvIj09PW58fFVoKG4pfWZ1bmN0aW9uIENOKG4sdCxlKXtsZXR7cGx1Z2luOmksdGFnOnIscnVuSWQ6byxzYW1wbGU6YX09dFtuXSxzPWZkKGUsaSxyLGEpO2lmKHMpe2lmKG51bGwhPT1vJiZzLnJ1blRvU2VyaWVzLmhhc093blByb3BlcnR5KG8pKXtsZXQgYz1zLnJ1blRvU2VyaWVzW29dLmxlbmd0aDtyZXR1cm4gYz4wP2MtMTpudWxsfWxldCBsPU9iamVjdC52YWx1ZXMocy5ydW5Ub1NlcmllcykubWFwKGM9PmMubGVuZ3RoKTtpZihsLmxlbmd0aClyZXR1cm4gTWF0aC5tYXgoLi4ubCktMX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBXU2Uobix0LGUsaSl7bGV0IHI9ey4uLnR9O2ZvcihsZXQgbyBpbiBuKXtpZighbi5oYXNPd25Qcm9wZXJ0eShvKSljb250aW51ZTtsZXQgYT1DTihvLG4sZSk7aWYobnVsbD09PWEpY29udGludWU7bGV0IHM9dC5oYXNPd25Qcm9wZXJ0eShvKT90W29dLmluZGV4Om51bGwsbD1DTihvLG4saSk7KG51bGwhPT1zJiZzPmF8fG51bGw9PT1zfHxudWxsIT09cyYmcz09PWwpJiYocltvXT17aW5kZXg6YSxpc0Nsb3Nlc3Q6ITF9KX1yZXR1cm4gcn1mdW5jdGlvbiBzUShuKXtsZXQgdD1ieShuLnJ1blRvTG9hZFN0YXRlLGU9PmU9PT1SZS5MT0FESU5HP1JlLkxPQURJTkc6UmUuTk9UX0xPQURFRCk7cmV0dXJuey4uLm4scnVuVG9Mb2FkU3RhdGU6dH19ZnVuY3Rpb24gbFEobix0LGUsaSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KFtuLHQsZXx8IiIsaV0pfXZhcntpbml0aWFsU3RhdGU6ZFEscmVkdWNlcnM6cVNlfT1faCh7dGFnTWV0YWRhdGFMb2FkU3RhdGU6e3N0YXRlOlJlLk5PVF9MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOm51bGx9LHRhZ01ldGFkYXRhOntzY2FsYXJzOnt0YWdEZXNjcmlwdGlvbnM6e30sdGFnVG9SdW5zOnt9fSxoaXN0b2dyYW1zOnt0YWdEZXNjcmlwdGlvbnM6e30sdGFnVG9SdW5zOnt9fSxpbWFnZXM6e3RhZ0Rlc2NyaXB0aW9uczp7fSx0YWdSdW5TYW1wbGVkSW5mbzp7fX19LGNhcmRMaXN0OltdLGNhcmRUb1Bpbm5lZENvcHk6bmV3IE1hcCxjYXJkVG9QaW5uZWRDb3B5Q2FjaGU6bmV3IE1hcCxwaW5uZWRDYXJkVG9PcmlnaW5hbDpuZXcgTWFwLHVucmVzb2x2ZWRJbXBvcnRlZFBpbm5lZENhcmRzOltdLGNhcmRNZXRhZGF0YU1hcDp7fSxjYXJkU3RhdGVNYXA6e30sY2FyZFN0ZXBJbmRleDp7fSx0YWdGaWx0ZXI6IiIsdGFnR3JvdXBFeHBhbmRlZDpuZXcgTWFwLGxpbmtlZFRpbWVTZWxlY3Rpb246bnVsbCxsaW5rZWRUaW1lRW5hYmxlZDohMSxzdGVwU2VsZWN0b3JFbmFibGVkOiEwLHJhbmdlU2VsZWN0aW9uRW5hYmxlZDohMSxzaW5nbGVTZWxlY3Rpb25IZWFkZXJzOlt7dHlwZTpndC5SVU4sbmFtZToicnVuIixkaXNwbGF5TmFtZToiUnVuIixlbmFibGVkOiEwLHJlbW92YWJsZTohMSxzb3J0YWJsZTohMCxtb3ZhYmxlOiExfSx7dHlwZTpndC5TTU9PVEhFRCxuYW1lOiJzbW9vdGhlZCIsZGlzcGxheU5hbWU6IlNtb290aGVkIixlbmFibGVkOiEwLHJlbW92YWJsZTohMCxzb3J0YWJsZTohMCxtb3ZhYmxlOiEwfSx7dHlwZTpndC5WQUxVRSxuYW1lOiJ2YWx1ZSIsZGlzcGxheU5hbWU6IlZhbHVlIixlbmFibGVkOiEwLHJlbW92YWJsZTohMCxzb3J0YWJsZTohMCxtb3ZhYmxlOiEwfSx7dHlwZTpndC5TVEVQLG5hbWU6InN0ZXAiLGRpc3BsYXlOYW1lOiJTdGVwIixlbmFibGVkOiEwLHJlbW92YWJsZTohMCxzb3J0YWJsZTohMCxtb3ZhYmxlOiEwfSx7dHlwZTpndC5SRUxBVElWRV9USU1FLG5hbWU6InJlbGF0aXZlIixkaXNwbGF5TmFtZToiUmVsYXRpdmUiLGVuYWJsZWQ6ITAscmVtb3ZhYmxlOiEwLHNvcnRhYmxlOiEwLG1vdmFibGU6ITB9XSxyYW5nZVNlbGVjdGlvbkhlYWRlcnM6W3t0eXBlOmd0LlJVTixuYW1lOiJydW4iLGRpc3BsYXlOYW1lOiJSdW4iLGVuYWJsZWQ6ITAscmVtb3ZhYmxlOiExLHNvcnRhYmxlOiEwLG1vdmFibGU6ITB9LHt0eXBlOmd0Lk1JTl9WQUxVRSxuYW1lOiJtaW4iLGRpc3BsYXlOYW1lOiJNaW4iLGVuYWJsZWQ6ITAscmVtb3ZhYmxlOiEwLHNvcnRhYmxlOiEwLG1vdmFibGU6ITB9LHt0eXBlOmd0Lk1BWF9WQUxVRSxuYW1lOiJtYXgiLGRpc3BsYXlOYW1lOiJNYXgiLGVuYWJsZWQ6ITAscmVtb3ZhYmxlOiEwLHNvcnRhYmxlOiEwLG1vdmFibGU6ITB9LHt0eXBlOmd0LlNUQVJUX1ZBTFVFLG5hbWU6InN0YXJ0IixkaXNwbGF5TmFtZToiU3RhcnQgVmFsdWUiLGVuYWJsZWQ6ITAscmVtb3ZhYmxlOiEwLHNvcnRhYmxlOiEwLG1vdmFibGU6ITB9LHt0eXBlOmd0LkVORF9WQUxVRSxuYW1lOiJlbmQiLGRpc3BsYXlOYW1lOiJFbmQgVmFsdWUiLGVuYWJsZWQ6ITAscmVtb3ZhYmxlOiEwLHNvcnRhYmxlOiEwLG1vdmFibGU6ITB9LHt0eXBlOmd0LlZBTFVFX0NIQU5HRSxuYW1lOiJ2YWx1ZUNoYW5nZSIsZGlzcGxheU5hbWU6IlZhbHVlIixlbmFibGVkOiEwLHJlbW92YWJsZTohMCxzb3J0YWJsZTohMCxtb3ZhYmxlOiEwfSx7dHlwZTpndC5QRVJDRU5UQUdFX0NIQU5HRSxuYW1lOiJwZXJjZW50YWdlQ2hhbmdlIixkaXNwbGF5TmFtZToiJSIsZW5hYmxlZDohMCxyZW1vdmFibGU6ITAsc29ydGFibGU6ITAsbW92YWJsZTohMH0se3R5cGU6Z3QuU1RBUlRfU1RFUCxuYW1lOiJzdGFydFN0ZXAiLGRpc3BsYXlOYW1lOiJTdGFydCBTdGVwIixlbmFibGVkOiEwLHJlbW92YWJsZTohMCxzb3J0YWJsZTohMCxtb3ZhYmxlOiEwfSx7dHlwZTpndC5FTkRfU1RFUCxuYW1lOiJlbmRTdGVwIixkaXNwbGF5TmFtZToiRW5kIFN0ZXAiLGVuYWJsZWQ6ITAscmVtb3ZhYmxlOiEwLHNvcnRhYmxlOiEwLG1vdmFibGU6ITB9LHt0eXBlOmd0LlNURVBfQVRfTUFYLG5hbWU6InN0ZXBBdE1heCIsZGlzcGxheU5hbWU6IlN0ZXAgQXQgTWF4IixlbmFibGVkOiExLHJlbW92YWJsZTohMCxzb3J0YWJsZTohMCxtb3ZhYmxlOiEwfSx7dHlwZTpndC5TVEVQX0FUX01JTixuYW1lOiJzdGVwQXRNaW4iLGRpc3BsYXlOYW1lOiJTdGVwIEF0IE1pbiIsZW5hYmxlZDohMSxyZW1vdmFibGU6ITAsc29ydGFibGU6ITAsbW92YWJsZTohMH0se3R5cGU6Z3QuTUVBTixuYW1lOiJtZWFuIixkaXNwbGF5TmFtZToiTWVhbiIsZW5hYmxlZDohMSxyZW1vdmFibGU6ITAsc29ydGFibGU6ITAsbW92YWJsZTohMH0se3R5cGU6Z3QuUkFXX0NIQU5HRSxuYW1lOiJyYXdDaGFuZ2UiLGRpc3BsYXlOYW1lOiJSYXciLGVuYWJsZWQ6ITEscmVtb3ZhYmxlOiEwLHNvcnRhYmxlOiEwLG1vdmFibGU6ITB9XSxmaWx0ZXJlZFBsdWdpblR5cGVzOm5ldyBTZXQsc3RlcE1pbk1heDp7bWluOjEvMCxtYXg6LTEvMH19LHtpc1NldHRpbmdzUGFuZU9wZW46ITAsaXNTbGlkZW91dE1lbnVPcGVuOiExLGxhc3RQaW5uZWRDYXJkVGltZTowLHRhYmxlRWRpdG9yU2VsZWN0ZWRUYWI6V3IuU0lOR0xFLHRpbWVTZXJpZXNEYXRhOntzY2FsYXJzOnt9LGhpc3RvZ3JhbXM6e30saW1hZ2VzOnt9fSxzZXR0aW5nczokUyxzZXR0aW5nT3ZlcnJpZGVzOnt9LHZpc2libGVDYXJkTWFwOm5ldyBNYXAscHJldmlvdXNDYXJkSW50ZXJhY3Rpb25zOnt0YWdGaWx0ZXJzOltdLHBpbnM6W10sY2xpY2tzOltdfSxuZXdDYXJkSW50ZXJhY3Rpb25zOnt0YWdGaWx0ZXJzOltdLHBpbnM6W10sY2xpY2tzOltdfX0sKG4sdCxlKT0+Vm8odCxlKT9uOnsuLi5uLHRhZ01ldGFkYXRhTG9hZFN0YXRlOntzdGF0ZTpSZS5OT1RfTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpudWxsfSx0YWdNZXRhZGF0YTp7c2NhbGFyczp7dGFnRGVzY3JpcHRpb25zOnt9LHRhZ1RvUnVuczp7fX0saGlzdG9ncmFtczp7dGFnRGVzY3JpcHRpb25zOnt9LHRhZ1RvUnVuczp7fX0saW1hZ2VzOnt0YWdEZXNjcmlwdGlvbnM6e30sdGFnUnVuU2FtcGxlZEluZm86e319fSxjYXJkTGlzdDpbXSxjYXJkTWV0YWRhdGFNYXA6e30sdmlzaWJsZUNhcmRNYXA6bmV3IE1hcH0pLE1OPWRRLFhTZT1ncihkUSx5ZShmdSwobix7cm91dGVLaW5kOnQscGFydGlhbFN0YXRlOmV9KT0+e2lmKHQhPT1Dbi5FWFBFUklNRU5UJiZ0IT09Q24uQ09NUEFSRV9FWFBFUklNRU5UKXJldHVybiBuO2xldCBpPW5ldyBTZXQ7Zm9yKGxldCBkIG9mIG4ucGlubmVkQ2FyZFRvT3JpZ2luYWwua2V5cygpKXtsZXR7cGx1Z2luOnUsdGFnOnAscnVuSWQ6aCxzYW1wbGU6bX09bi5jYXJkTWV0YWRhdGFNYXBbZF07aS5hZGQobFEodSxwLGgsbSkpfWxldCByPWUsbz1bXTtmb3IobGV0IGQgb2ZbLi4ubi51bnJlc29sdmVkSW1wb3J0ZWRQaW5uZWRDYXJkcywuLi5yLm1ldHJpY3MucGlubmVkQ2FyZHNdKXtsZXQgdT1sUShkLnBsdWdpbixkLnRhZyxkLnJ1bklkLGQuc2FtcGxlKTtpLmhhcyh1KXx8KGkuYWRkKHUpLG8ucHVzaChkKSl9bGV0IGE9R0YobyxuLmNhcmRMaXN0LG4uY2FyZE1ldGFkYXRhTWFwLG4uY2FyZFRvUGlubmVkQ29weSxuLmNhcmRUb1Bpbm5lZENvcHlDYWNoZSxuLnBpbm5lZENhcmRUb09yaWdpbmFsLG4uY2FyZFN0ZXBJbmRleCxuLmNhcmRTdGF0ZU1hcCkscz1yLm1ldHJpY3Muc21vb3RoaW5nLGw9bi5zZXR0aW5nT3ZlcnJpZGVzO2lmKE51bWJlci5pc0Zpbml0ZShzKSYmbnVsbCE9PXMpe2xldCBkPU1hdGgubWF4KDAsTWF0aC5taW4oLjk5OSxOdW1iZXIocy50b1ByZWNpc2lvbigzKSkpKTtsPXsuLi5uLnNldHRpbmdPdmVycmlkZXMsc2NhbGFyU21vb3RoaW5nOmR9fWxldCBjPXsuLi5uLC4uLmEsc2V0dGluZ092ZXJyaWRlczpsfTtyZXR1cm4gbnVsbCE9PXIubWV0cmljcy50YWdGaWx0ZXImJihjLnRhZ0ZpbHRlcj1yLm1ldHJpY3MudGFnRmlsdGVyKSxjfSkseWUoaHMsKG4se3BhcnRpYWxTZXR0aW5nczp0fSk9PntsZXQgZT17fTt0LnRvb2x0aXBTb3J0JiZPYmplY3QudmFsdWVzKG9vKS5pbmNsdWRlcyh0LnRvb2x0aXBTb3J0KSYmKGUudG9vbHRpcFNvcnQ9dC50b29sdGlwU29ydCksIm51bWJlciI9PXR5cGVvZiB0LnRpbWVTZXJpZXNDYXJkTWluV2lkdGgmJihlLmNhcmRNaW5XaWR0aD10LnRpbWVTZXJpZXNDYXJkTWluV2lkdGgpLCJib29sZWFuIj09dHlwZW9mIHQuaWdub3JlT3V0bGllcnMmJihlLmlnbm9yZU91dGxpZXJzPXQuaWdub3JlT3V0bGllcnMpLCJudW1iZXIiPT10eXBlb2YgdC5zY2FsYXJTbW9vdGhpbmcmJihlLnNjYWxhclNtb290aGluZz10LnNjYWxhclNtb290aGluZyksImJvb2xlYW4iPT10eXBlb2YgdC5zYXZpbmdQaW5zRW5hYmxlZCYmKGUuc2F2aW5nUGluc0VuYWJsZWQ9dC5zYXZpbmdQaW5zRW5hYmxlZCk7bGV0IGk9dC50aW1lU2VyaWVzU2V0dGluZ3NQYW5lT3BlbmVkPz9uLmlzU2V0dGluZ3NQYW5lT3BlbixyPXQuc3RlcFNlbGVjdG9yRW5hYmxlZD8/bi5zdGVwU2VsZWN0b3JFbmFibGVkLG89dC5yYW5nZVNlbGVjdGlvbkVuYWJsZWQ/P24ucmFuZ2VTZWxlY3Rpb25FbmFibGVkLGE9dC5saW5rZWRUaW1lRW5hYmxlZD8/bi5saW5rZWRUaW1lRW5hYmxlZCxzPXQuc2luZ2xlU2VsZWN0aW9uSGVhZGVycz8/bi5zaW5nbGVTZWxlY3Rpb25IZWFkZXJzLGw9dC5yYW5nZVNlbGVjdGlvbkhlYWRlcnM/P24ucmFuZ2VTZWxlY3Rpb25IZWFkZXJzO3JldHVybnsuLi5uLGlzU2V0dGluZ3NQYW5lT3BlbjppLHN0ZXBTZWxlY3RvckVuYWJsZWQ6cixyYW5nZVNlbGVjdGlvbkVuYWJsZWQ6byxsaW5rZWRUaW1lRW5hYmxlZDphLHNpbmdsZVNlbGVjdGlvbkhlYWRlcnM6cyxyYW5nZVNlbGVjdGlvbkhlYWRlcnM6bCxzZXR0aW5nczp7Li4ubi5zZXR0aW5ncywuLi5lfX19KSx5ZShtYSxCYSxuPT57bGV0IHQ9bi50YWdNZXRhZGF0YUxvYWRTdGF0ZS5zdGF0ZT09PVJlLkxPQURJTkc/UmUuTE9BRElORzpSZS5OT1RfTE9BREVELGU9Ynkobi50aW1lU2VyaWVzRGF0YSwoaSxyKT0+YnkoaSxvPT5mcyhyKT9ieShvLGE9PnNRKGEpKTpzUShvKSkpO3JldHVybnsuLi5uLHRhZ01ldGFkYXRhTG9hZFN0YXRlOnsuLi5uLnRhZ01ldGFkYXRhTG9hZFN0YXRlLHN0YXRlOnR9LHRpbWVTZXJpZXNEYXRhOmV9fSkseWUocFQsbj0+KHsuLi5uLHRhZ01ldGFkYXRhTG9hZFN0YXRlOnsuLi5uLnRhZ01ldGFkYXRhTG9hZFN0YXRlLHN0YXRlOlJlLkxPQURJTkd9fSkpLHllKG1ULG49Pih7Li4ubix0YWdNZXRhZGF0YUxvYWRTdGF0ZTp7Li4ubi50YWdNZXRhZGF0YUxvYWRTdGF0ZSxzdGF0ZTpSZS5GQUlMRUR9fSkpLHllKGhULChuLHt0YWdNZXRhZGF0YTp0fSk9PntsZXQgZT17c2NhbGFyczpjUSh0LEFuLlNDQUxBUlMpLGhpc3RvZ3JhbXM6Y1EodCxBbi5ISVNUT0dSQU1TKSxpbWFnZXM6dFtBbi5JTUFHRVNdfSxpPXt9LHI9ZnVuY3Rpb24obil7bGV0IHQ9W107Zm9yKGxldCBlIG9mIE9iamVjdC5rZXlzKG4pKXtsZXQgcixpPWU7aWYoZnMoaSkpe2lmKCFncyhpKSl0aHJvdyBuZXcgRXJyb3IoIk11bHRpLXJ1biwgc2FtcGxlZCBwbHVnaW4gc3VwcG9ydCBub3QgeWV0IGltcGxlbWVudGVkIik7e2xldCBvPW5baV0udGFnUnVuU2FtcGxlZEluZm87Zm9yKGxldCBhIG9mIE9iamVjdC5rZXlzKG8pKWZvcihsZXQgcyBvZiBPYmplY3Qua2V5cyhvW2FdKSl7bGV0e21heFNhbXBsZXNQZXJTdGVwOmx9PW9bYV1bc107Zm9yKGxldCBjPTA7YzxsO2MrKyl0LnB1c2goe3BsdWdpbjppLHRhZzphLHJ1bklkOnMsc2FtcGxlOmMsbnVtU2FtcGxlOmx9KX19fWVsc2UgaWYoZ3MoaSkpe3I9bltpXS50YWdUb1J1bnM7Zm9yKGxldCBvIG9mIE9iamVjdC5rZXlzKHIpKWZvcihsZXQgYSBvZiByW29dKXQucHVzaCh7cGx1Z2luOmksdGFnOm8scnVuSWQ6YX0pfWVsc2V7cj1uW2ldLnRhZ1RvUnVucztmb3IobGV0IG8gb2YgT2JqZWN0LmtleXMocikpdC5wdXNoKHtwbHVnaW46aSx0YWc6byxydW5JZDpudWxsfSl9fXJldHVybiB0fShlKSxvPVtdO2ZvcihsZXQgaCBvZiByKXtsZXQgbT1qRihoKTtpW21dPWgsby5wdXNoKG0pfWxldCBhPW4udGFnR3JvdXBFeHBhbmRlZDtpZigwPT09bi50YWdHcm91cEV4cGFuZGVkLnNpemUpe2xldCBtPUhUKG8ubWFwKF89Pih7Li4uaVtfXSxjYXJkSWQ6X30pKS5maWx0ZXIoQm9vbGVhbikpO2E9bmV3IE1hcChuLnRhZ0dyb3VwRXhwYW5kZWQpO2ZvcihsZXQgXyBvZiBtLnNsaWNlKDAsMikpYS5zZXQoXy5ncm91cE5hbWUsITApfWxldHtuZXh0Q2FyZFRvUGlubmVkQ29weTpzLG5leHRQaW5uZWRDYXJkVG9PcmlnaW5hbDpsLHBpbm5lZENhcmRNZXRhZGF0YU1hcDpjfT1mdW5jdGlvbihuLHQsZSl7bGV0IGk9bmV3IE1hcCxyPW5ldyBNYXAsbz17fTtyZXR1cm4gbi5mb3JFYWNoKChhLHMpPT57LTEhPT1lLmluZGV4T2YocykmJihpLnNldChzLGEpLHIuc2V0KGEscyksb1thXT10W3NdKX0pLHtuZXh0Q2FyZFRvUGlubmVkQ29weTppLG5leHRQaW5uZWRDYXJkVG9PcmlnaW5hbDpyLHBpbm5lZENhcmRNZXRhZGF0YU1hcDpvfX0obi5jYXJkVG9QaW5uZWRDb3B5Q2FjaGUsaSxvKSxkPXsuLi5pLC4uLmN9LHU9ZnVuY3Rpb24obix0KXtsZXQgZT17fTtyZXR1cm4gT2JqZWN0LmVudHJpZXMobikuZm9yRWFjaCgoW2kscl0pPT57dFtpXSYmKGVbaV09cil9KSxlfShuLmNhcmRTdGVwSW5kZXgsZCkscD1HRihuLnVucmVzb2x2ZWRJbXBvcnRlZFBpbm5lZENhcmRzLG8sZCxzLG4uY2FyZFRvUGlubmVkQ29weUNhY2hlLGwsdSxuLmNhcmRTdGF0ZU1hcCk7cmV0dXJuey4uLm4sLi4ucCx0YWdHcm91cEV4cGFuZGVkOmEsdGFnTWV0YWRhdGFMb2FkU3RhdGU6e3N0YXRlOlJlLkxPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6RGF0ZS5ub3coKX0sdGFnTWV0YWRhdGE6ZSxjYXJkTGlzdDpvfX0pLHllKGZULChuLHtjYXJkSWQ6dCxzZXR0aW5nczplfSk9PntsZXQgaT17Li4ubi5jYXJkU3RhdGVNYXB9O3JldHVybiBpW3RdPXsuLi5pW3RdLC4uLmV9LHsuLi5uLGNhcmRTdGF0ZU1hcDppfX0pLHllKHpnLChuLHtjYXJkSWQ6dH0pPT57bGV0IGU9ey4uLm4uY2FyZFN0YXRlTWFwfTtyZXR1cm4gZVt0XT17Li4uZVt0XSxmdWxsV2lkdGg6IWVbdF0/LmZ1bGxXaWR0aCx0YWJsZUV4cGFuZGVkOiFlW3RdPy5mdWxsV2lkdGh9LHsuLi5uLGNhcmRTdGF0ZU1hcDplfX0pLHllKGtULChuLHt0YWdGaWx0ZXI6dH0pPT4oey4uLm4sdGFnRmlsdGVyOnR9KSkseWUoZ1QsKG4se3NvcnQ6dH0pPT4oey4uLm4sc2V0dGluZ092ZXJyaWRlczp7Li4ubi5zZXR0aW5nT3ZlcnJpZGVzLHRvb2x0aXBTb3J0OnR9fSkpLHllKF9ULG49PntsZXQgdD0hKG4uc2V0dGluZ092ZXJyaWRlcy5pZ25vcmVPdXRsaWVycz8/bi5zZXR0aW5ncy5pZ25vcmVPdXRsaWVycyk7cmV0dXJuey4uLm4sc2V0dGluZ092ZXJyaWRlczp7Li4ubi5zZXR0aW5nT3ZlcnJpZGVzLGlnbm9yZU91dGxpZXJzOnR9fX0pLHllKGJULChuLHt4QXhpc1R5cGU6dH0pPT4oey4uLm4sc2V0dGluZ092ZXJyaWRlczp7Li4ubi5zZXR0aW5nT3ZlcnJpZGVzLHhBeGlzVHlwZTp0fX0pKSx5ZSh4VCwobix7c21vb3RoaW5nOnR9KT0+KHsuLi5uLHNldHRpbmdPdmVycmlkZXM6ey4uLm4uc2V0dGluZ092ZXJyaWRlcyxzY2FsYXJTbW9vdGhpbmc6dH19KSkseWUoQ1Qsbj0+e2xldCB0PSEobi5zZXR0aW5nT3ZlcnJpZGVzLnNjYWxhclBhcnRpdGlvbk5vbk1vbm90b25pY1g/P24uc2V0dGluZ3Muc2NhbGFyUGFydGl0aW9uTm9uTW9ub3RvbmljWCk7cmV0dXJuey4uLm4sc2V0dGluZ092ZXJyaWRlczp7Li4ubi5zZXR0aW5nT3ZlcnJpZGVzLHNjYWxhclBhcnRpdGlvbk5vbk1vbm90b25pY1g6dH19fSkseWUoTVQsKG4se2JyaWdodG5lc3NJbk1pbGxpOnR9KT0+KHsuLi5uLHNldHRpbmdPdmVycmlkZXM6ey4uLm4uc2V0dGluZ092ZXJyaWRlcyxpbWFnZUJyaWdodG5lc3NJbk1pbGxpOnR9fSkpLHllKHdULChuLHtjb250cmFzdEluTWlsbGk6dH0pPT4oey4uLm4sc2V0dGluZ092ZXJyaWRlczp7Li4ubi5zZXR0aW5nT3ZlcnJpZGVzLGltYWdlQ29udHJhc3RJbk1pbGxpOnR9fSkpLHllKFNULG49PntsZXR7aW1hZ2VCcmlnaHRuZXNzSW5NaWxsaTp0LC4uLmV9PW4uc2V0dGluZ092ZXJyaWRlcztyZXR1cm57Li4ubixzZXR0aW5nT3ZlcnJpZGVzOmV9fSkseWUoRVQsbj0+e2xldHtpbWFnZUNvbnRyYXN0SW5NaWxsaTp0LC4uLmV9PW4uc2V0dGluZ092ZXJyaWRlcztyZXR1cm57Li4ubixzZXR0aW5nT3ZlcnJpZGVzOmV9fSkseWUoVFQsbj0+e2xldCB0PSEobi5zZXR0aW5nT3ZlcnJpZGVzLmltYWdlU2hvd0FjdHVhbFNpemU/P24uc2V0dGluZ3MuaW1hZ2VTaG93QWN0dWFsU2l6ZSk7cmV0dXJuey4uLm4sc2V0dGluZ092ZXJyaWRlczp7Li4ubi5zZXR0aW5nT3ZlcnJpZGVzLGltYWdlU2hvd0FjdHVhbFNpemU6dH19fSkseWUoRFQsKG4se2hpc3RvZ3JhbU1vZGU6dH0pPT4oey4uLm4sc2V0dGluZ092ZXJyaWRlczp7Li4ubi5zZXR0aW5nT3ZlcnJpZGVzLGhpc3RvZ3JhbU1vZGU6dH19KSkseWUodlQsKG4se2NhcmRNaW5XaWR0aDp0fSk9Pih7Li4ubixzZXR0aW5nT3ZlcnJpZGVzOnsuLi5uLnNldHRpbmdPdmVycmlkZXMsY2FyZE1pbldpZHRoOnR9fSkpLHllKHlULG49Pih7Li4ubixzZXR0aW5nT3ZlcnJpZGVzOnsuLi5uLnNldHRpbmdPdmVycmlkZXMsY2FyZE1pbldpZHRoOm51bGx9fSkpLHllKG9RLG49Pih7Li4ubixzZXR0aW5nT3ZlcnJpZGVzOnsuLi5uLnNldHRpbmdPdmVycmlkZXMsaGlkZUVtcHR5Q2FyZHM6IW4uc2V0dGluZ092ZXJyaWRlcy5oaWRlRW1wdHlDYXJkc319KSkseWUoemgsbj0+e2xldCB0PSEobi5zZXR0aW5nT3ZlcnJpZGVzLnNhdmluZ1BpbnNFbmFibGVkPz9uLnNldHRpbmdzLnNhdmluZ1BpbnNFbmFibGVkKTtyZXR1cm57Li4ubixzZXR0aW5nT3ZlcnJpZGVzOnsuLi5uLnNldHRpbmdPdmVycmlkZXMsc2F2aW5nUGluc0VuYWJsZWQ6dH19fSkseWUoSVQsKG4se3JlcXVlc3RzOnR9KT0+e2lmKCF0Lmxlbmd0aClyZXR1cm4gbjtsZXQgZT17Li4ubi50aW1lU2VyaWVzRGF0YX07Zm9yKGxldCBpIG9mIHQpe2xldHtwbHVnaW46cix0YWc6byxzYW1wbGU6YX09aTtlW3JdPWUxKGUscixvLGEpO2xldCBzPWZkKGUscixvLGEpLGw9TkYoaSk/W2kucnVuSWRdOlpmKG4udGFnTWV0YWRhdGEscixvLGEpO3MucnVuVG9Mb2FkU3RhdGU9dDEoUmUuTE9BRElORyxsLHMucnVuVG9Mb2FkU3RhdGUpfXJldHVybnsuLi5uLHRpbWVTZXJpZXNEYXRhOmV9fSkseWUoQVQsKG4se3JlcXVlc3Q6dH0pPT57bGV0IGU9ey4uLm4udGltZVNlcmllc0RhdGF9LHtwbHVnaW46aSx0YWc6cixzYW1wbGU6b309dDtlW2ldPWUxKGUsaSxyLG8pO2xldCBhPWZkKGUsaSxyLG8pLHM9TkYodCk/W3QucnVuSWRdOlpmKG4udGFnTWV0YWRhdGEsaSxyLG8pO3JldHVybiBhLnJ1blRvTG9hZFN0YXRlPXQxKFJlLkZBSUxFRCxzLGEucnVuVG9Mb2FkU3RhdGUpLHsuLi5uLHRpbWVTZXJpZXNEYXRhOmV9fSkseWUoUlQsKG4se3Jlc3BvbnNlOnR9KT0+e2xldCBlPXsuLi5uLnN0ZXBNaW5NYXh9LGk9ey4uLm4uY2FyZFN0YXRlTWFwfSxyPXsuLi5uLnRpbWVTZXJpZXNEYXRhfSx7cGx1Z2luOm8sdGFnOmEscnVuSWQ6cyxzYW1wbGU6bH09dDtyW29dPWUxKHIsbyxhLGwpO2xldCBjPWZkKHIsbyxhLGwpO2lmKHFTKHQpKXtsZXQgdT1zP1tzXTpaZihuLnRhZ01ldGFkYXRhLG8sYSxsKTtjLnJ1blRvTG9hZFN0YXRlPXQxKFJlLkZBSUxFRCx1LGMucnVuVG9Mb2FkU3RhdGUpfWVsc2V7bGV0IHU9dC5ydW5Ub1NlcmllcztjLnJ1blRvU2VyaWVzPXsuLi5jLnJ1blRvU2VyaWVzfSxjLnJ1blRvTG9hZFN0YXRlPXsuLi5jLnJ1blRvTG9hZFN0YXRlfTtmb3IobGV0IHAgaW4gdSlpZih1Lmhhc093blByb3BlcnR5KHApKXtjLnJ1blRvU2VyaWVzW3BdPXVbcF0sYy5ydW5Ub0xvYWRTdGF0ZVtwXT1SZS5MT0FERUQ7Zm9yKGxldCBoIG9mIHVbcF0pZS5taW49TWF0aC5taW4oZS5taW4saC5zdGVwKSxlLm1heD1NYXRoLm1heChlLm1heCxoLnN0ZXApfX1pZih0LnJ1blRvU2VyaWVzJiZ0LnBsdWdpbj09PUFuLlNDQUxBUlMpe2xldCB1PWpGKHtwbHVnaW46byx0YWc6YSxydW5JZDpudWxsfSkscD1mdW5jdGlvbihuKXtsZXQgdD0xLzAsZT0tMS8wO3JldHVybiBPYmplY3QudmFsdWVzKG4pLmZsYXQoKS5mb3JFYWNoKGk9Pnt0PU1hdGgubWluKHQsaS5zdGVwKSxlPU1hdGgubWF4KGUsaS5zdGVwKX0pLHttaW5TdGVwOnQsbWF4U3RlcDplfX0oYy5ydW5Ub1Nlcmllcyk7aVt1XT17Li4uaVt1XSxkYXRhTWluTWF4OnB9O2xldCBoPW4uY2FyZFRvUGlubmVkQ29weS5nZXQodSk7aCYmKGlbaF09ey4uLmlbaF0sZGF0YU1pbk1heDpwfSl9cmV0dXJuey4uLm4sdGltZVNlcmllc0RhdGE6cixjYXJkU3RlcEluZGV4OldTZShuLmNhcmRNZXRhZGF0YU1hcCxuLmNhcmRTdGVwSW5kZXgscixuLnRpbWVTZXJpZXNEYXRhKSxzdGVwTWluTWF4OmUsY2FyZFN0YXRlTWFwOml9fSkseWUoUFQsKG4se2NhcmRJZDp0LHN0ZXBJbmRleDplfSk9PntsZXQgaT1DTih0LG4uY2FyZE1ldGFkYXRhTWFwLG4udGltZVNlcmllc0RhdGEpLHI9ZTtyZXR1cm4gbnVsbD09PWk/cj1udWxsOmU+aSYmKHI9aSksey4uLm4sY2FyZFN0ZXBJbmRleDp7Li4ubi5jYXJkU3RlcEluZGV4LFt0XTp7aW5kZXg6cixpc0Nsb3Nlc3Q6ITF9fX19KSx5ZShPVCwobix7dGFnR3JvdXA6dH0pPT57bGV0IGU9bmV3IE1hcChuLnRhZ0dyb3VwRXhwYW5kZWQpO3JldHVybiBlLnNldCh0LCFlLmdldCh0KSksey4uLm4sdGFnR3JvdXBFeHBhbmRlZDplfX0pLHllKFVnLChuLHtlbnRlcmVkQ2FyZHM6dCxleGl0ZWRDYXJkczplfSk9PntpZighdC5sZW5ndGgmJiFlLmxlbmd0aClyZXR1cm4gbjtsZXQgaT1uZXcgTWFwKG4udmlzaWJsZUNhcmRNYXApO3JldHVybiB0LmZvckVhY2goKHtlbGVtZW50SWQ6cixjYXJkSWQ6b30pPT57bGV0IGE9aS5nZXQocik/P251bGw7aWYobnVsbCE9PWEmJmEhPT1vKXRocm93IG5ldyBFcnJvcigiQSBET00gZWxlbWVudCBjYW5ub3QgYmUgcmV1c2VkIGZvciBtb3JlIHRoYW4gMSB1bmlxdWUgY2FyZCBtZXRhZGF0YSIpO2kuc2V0KHIsbyl9KSxlLmZvckVhY2goKHtlbGVtZW50SWQ6cn0pPT57aS5kZWxldGUocil9KSx7Li4ubix2aXNpYmxlQ2FyZE1hcDppfX0pLHllKG5wLChuLHtjYXJkSWQ6dH0pPT57bGV0IGU9bi5waW5uZWRDYXJkVG9PcmlnaW5hbC5oYXModCksaT0hZSYmIW4uY2FyZFRvUGlubmVkQ29weS5oYXModCk7aWYoaSYmIW4xKG4pKXJldHVybiBuO2xldCByPW5ldyBNYXAobi5jYXJkVG9QaW5uZWRDb3B5KSxvPW5ldyBNYXAobi5jYXJkVG9QaW5uZWRDb3B5Q2FjaGUpLGE9bmV3IE1hcChuLnBpbm5lZENhcmRUb09yaWdpbmFsKSxzPXsuLi5uLmNhcmRNZXRhZGF0YU1hcH0sbD17Li4ubi5jYXJkU3RlcEluZGV4fSxjPXsuLi5uLmNhcmRTdGF0ZU1hcH0sZD1uLmxhc3RQaW5uZWRDYXJkVGltZTtpZihlKXtsZXQgdT1uLnBpbm5lZENhcmRUb09yaWdpbmFsLmdldCh0KTtyLmRlbGV0ZSh1KSxvLmRlbGV0ZSh1KSxhLmRlbGV0ZSh0KSxkZWxldGUgc1t0XSxkZWxldGUgbFt0XSxkZWxldGUgY1t0XX1lbHNlIGlmKGkpe2xldCB1PVdGKHQscixvLGEsbCxzLGMpO3I9dS5jYXJkVG9QaW5uZWRDb3B5LG89dS5jYXJkVG9QaW5uZWRDb3B5Q2FjaGUsYT11LnBpbm5lZENhcmRUb09yaWdpbmFsLHM9dS5jYXJkTWV0YWRhdGFNYXAsbD11LmNhcmRTdGVwSW5kZXgsYz11LmNhcmRTdGF0ZU1hcCxkPURhdGUubm93KCl9ZWxzZXtsZXQgdT1uLmNhcmRUb1Bpbm5lZENvcHkuZ2V0KHQpO3IuZGVsZXRlKHQpLG8uZGVsZXRlKHQpLGEuZGVsZXRlKHUpLGRlbGV0ZSBzW3VdLGRlbGV0ZSBsW3VdLGRlbGV0ZSBjW3RdfXJldHVybnsuLi5uLGNhcmRNZXRhZGF0YU1hcDpzLGNhcmRTdGF0ZU1hcDpjLGNhcmRTdGVwSW5kZXg6bCxjYXJkVG9QaW5uZWRDb3B5OnIsY2FyZFRvUGlubmVkQ29weUNhY2hlOm8scGlubmVkQ2FyZFRvT3JpZ2luYWw6YSxsYXN0UGlubmVkQ2FyZFRpbWU6ZH19KSx5ZShMVCxuPT57bGV0IHQ9IW4ubGlua2VkVGltZUVuYWJsZWQsZT17Li4ubi5jYXJkU3RlcEluZGV4fSxpPW4ubGlua2VkVGltZVNlbGVjdGlvbixyPW4uc3RlcFNlbGVjdG9yRW5hYmxlZCxvPW4ucmFuZ2VTZWxlY3Rpb25FbmFibGVkO2lmKHQpe2xldHttYXg6YX09bi5zdGVwTWluTWF4O2k9bi5saW5rZWRUaW1lU2VsZWN0aW9uPz97c3RhcnQ6e3N0ZXA6YT09PS0xLzA/MDphfSxlbmQ6bnVsbH0sZT1xRihuLmNhcmRTdGVwSW5kZXgsbi5jYXJkTWV0YWRhdGFNYXAsbi50aW1lU2VyaWVzRGF0YSxpKSxyPXQsbz1Cb29sZWFuKGkuZW5kKX1yZXR1cm57Li4ubixjYXJkU3RlcEluZGV4OmUsbGlua2VkVGltZUVuYWJsZWQ6dCxsaW5rZWRUaW1lU2VsZWN0aW9uOmksc3RlcFNlbGVjdG9yRW5hYmxlZDpyLHJhbmdlU2VsZWN0aW9uRW5hYmxlZDpvfX0pLHllKEJULG49PntsZXQgdD0hbi5yYW5nZVNlbGVjdGlvbkVuYWJsZWQsZT1uLnN0ZXBTZWxlY3RvckVuYWJsZWQsaT1uLmxpbmtlZFRpbWVTZWxlY3Rpb24scj1PYmplY3QuZW50cmllcyhuLmNhcmRTdGF0ZU1hcCkucmVkdWNlKChvLFthLHNdKT0+KG9bYV09ey4uLnMsc3RlcFNlbGVjdGlvbk92ZXJyaWRlOlZhLk5PTkUscmFuZ2VTZWxlY3Rpb25PdmVycmlkZTpWYS5OT05FfSxvKSx7fSk7cmV0dXJuIHQ/KGU9dCxpfHwoaT17c3RhcnQ6e3N0ZXA6bi5zdGVwTWluTWF4Lm1pbn0sZW5kOntzdGVwOm4uc3RlcE1pbk1heC5tYXh9fSksaS5lbmR8fChpPXtzdGFydDp7c3RlcDpuLnN0ZXBNaW5NYXgubWlufSxlbmQ6aS5zdGFydH0pKTppJiYoaT17c3RhcnQ6aS5lbmQ/P2kuc3RhcnQsZW5kOm51bGx9KSx7Li4ubixzdGVwU2VsZWN0b3JFbmFibGVkOmUscmFuZ2VTZWxlY3Rpb25FbmFibGVkOnQsbGlua2VkVGltZVNlbGVjdGlvbjppLGNhcmRTdGF0ZU1hcDpyfX0pLHllKEhoLChuLHQpPT57bGV0e2NhcmRJZDplLHRpbWVTZWxlY3Rpb246aX09dCxyPWkuc3RhcnQuc3RlcCxvPWkuZW5kPy5zdGVwLHM9bi5yYW5nZVNlbGVjdGlvbkVuYWJsZWQ7bi5saW5rZWRUaW1lRW5hYmxlZCYmKHM9dm9pZCAwIT09byk7bGV0IGw9e3N0YXJ0OntzdGVwOnJ9LGVuZDp2b2lkIDA9PT1vP251bGw6e3N0ZXA6cj5vP3I6b319LGM9cUYobi5jYXJkU3RlcEluZGV4LG4uY2FyZE1ldGFkYXRhTWFwLG4udGltZVNlcmllc0RhdGEsbCksZD17Li4ubi5jYXJkU3RhdGVNYXB9O3JldHVybiBlJiYoZFtlXT17Li4uZFtlXSx0aW1lU2VsZWN0aW9uOmwsc3RlcFNlbGVjdGlvbk92ZXJyaWRlOlZhLk9WRVJSSURFX0FTX0VOQUJMRUQscmFuZ2VTZWxlY3Rpb25PdmVycmlkZTp2b2lkIDA9PT1sLmVuZD8uc3RlcD9WYS5PVkVSUklERV9BU19ESVNBQkxFRDpWYS5PVkVSUklERV9BU19FTkFCTEVEfSksey4uLm4sbGlua2VkVGltZVNlbGVjdGlvbjpsLGNhcmRTdGVwSW5kZXg6YyxjYXJkU3RhdGVNYXA6ZCxyYW5nZVNlbGVjdGlvbkVuYWJsZWQ6c319KSx5ZShfeSwobix7Y2FyZElkOnQsdXNlclZpZXdCb3g6ZX0pPT57bGV0IGk9ey4uLm4uY2FyZFN0YXRlTWFwfTtyZXR1cm4gaVt0XT17Li4uaVt0XSx1c2VyVmlld0JveDplfSx7Li4ubixjYXJkU3RhdGVNYXA6aX19KSx5ZShUZCwobix7YWZmb3JkYW5jZTp0LGNhcmRJZDplfSk9PntsZXQgaT17Li4ubi5jYXJkU3RhdGVNYXB9O2lmKGUpe2xldHt0aW1lU2VsZWN0aW9uOnMsLi4ubH09aVtlXXx8e307aVtlXT17Li4ubCxzdGVwU2VsZWN0aW9uT3ZlcnJpZGU6VmEuT1ZFUlJJREVfQVNfRElTQUJMRUR9fWVsc2UgT2JqZWN0LmtleXMoaSkuZm9yRWFjaChzPT57aVtzXT17Li4uaVtzXSxzdGVwU2VsZWN0aW9uT3ZlcnJpZGU6VmEuTk9ORX19KTtpZighbi5saW5rZWRUaW1lRW5hYmxlZCYmdCE9PVphLkNIRUNLX0JPWClyZXR1cm57Li4ubixjYXJkU3RhdGVNYXA6aX07bGV0IHI9IW4uc3RlcFNlbGVjdG9yRW5hYmxlZCxvPXImJm4ubGlua2VkVGltZUVuYWJsZWQsYT1yJiZuLnJhbmdlU2VsZWN0aW9uRW5hYmxlZDtyZXR1cm57Li4ubixsaW5rZWRUaW1lRW5hYmxlZDpvLHN0ZXBTZWxlY3RvckVuYWJsZWQ6cixyYW5nZVNlbGVjdGlvbkVuYWJsZWQ6YSxjYXJkU3RhdGVNYXA6aX19KSx5ZShkVCwobix7dGFiOnR9KT0+KHsuLi5uLHRhYmxlRWRpdG9yU2VsZWN0ZWRUYWI6dH0pKSx5ZShqZywobix7c291cmNlOnQsZGVzdGluYXRpb246ZSxzaWRlOmksZGF0YVRhYmxlTW9kZTpyfSk9PntsZXQgbz1yPT09V3IuUkFOR0U/Wy4uLm4ucmFuZ2VTZWxlY3Rpb25IZWFkZXJzXTpbLi4ubi5zaW5nbGVTZWxlY3Rpb25IZWFkZXJzXTtyZXR1cm4gbz1rbC5tb3ZlQ29sdW1uKG8sdCxlLGkpLHI9PT1Xci5SQU5HRT97Li4ubixyYW5nZVNlbGVjdGlvbkhlYWRlcnM6b306ey4uLm4sc2luZ2xlU2VsZWN0aW9uSGVhZGVyczpvfX0pLHllKEdnLChuLHtkYXRhVGFibGVNb2RlOnQsaGVhZGVyOmUsY2FyZElkOml9KT0+e2xldHtjYXJkU3RhdGVNYXA6cixyYW5nZVNlbGVjdGlvbkVuYWJsZWQ6byxsaW5rZWRUaW1lRW5hYmxlZDphfT1uLHM9aT9yMShyLG8sYSxpKTp0PT09V3IuUkFOR0UsYz0ocz9uLnJhbmdlU2VsZWN0aW9uSGVhZGVyczpuLnNpbmdsZVNlbGVjdGlvbkhlYWRlcnMpLm1hcChkPT57bGV0IHU9ey4uLmR9O3JldHVybiBkLm5hbWU9PT1lLm5hbWUmJih1LmVuYWJsZWQ9IXUuZW5hYmxlZCksdX0pO3JldHVybiBzP3suLi5uLHJhbmdlU2VsZWN0aW9uSGVhZGVyczpjfTp7Li4ubixzaW5nbGVTZWxlY3Rpb25IZWFkZXJzOmN9fSkseWUoRlQsKG4se3BsdWdpbjp0fSk9PntsZXQgZT1uZXcgU2V0KG4uZmlsdGVyZWRQbHVnaW5UeXBlcyk7cmV0dXJuIGUuaGFzKHQpP2UuZGVsZXRlKHQpOmUuYWRkKHQpLE9iamVjdC52YWx1ZXMoQW4pLmV2ZXJ5KGk9PmUuaGFzKGkpKSYmKGU9bmV3IFNldCksey4uLm4sZmlsdGVyZWRQbHVnaW5UeXBlczplfX0pLHllKE5ULG49Pih7Li4ubixmaWx0ZXJlZFBsdWdpblR5cGVzOm5ldyBTZXR9KSkseWUoc1Qsbj0+KHsuLi5uLGlzU2V0dGluZ3NQYW5lT3Blbjohbi5pc1NldHRpbmdzUGFuZU9wZW59KSkseWUoYVQsbj0+KHsuLi5uLGlzU2V0dGluZ3NQYW5lT3BlbjohMX0pKSx5ZShsVCxuPT4oey4uLm4saXNTbGlkZW91dE1lbnVPcGVuOiFuLmlzU2xpZGVvdXRNZW51T3Blbn0pKSx5ZShjVCwobix7bW9kZTp0fSk9Pih7Li4ubixpc1NsaWRlb3V0TWVudU9wZW46ITAsaXNTZXR0aW5nc1BhbmVPcGVuOiEwLHRhYmxlRWRpdG9yU2VsZWN0ZWRUYWI6dH0pKSx5ZSh1VCxuPT4oey4uLm4saXNTbGlkZW91dE1lbnVPcGVuOiExfSkpLHllKFZULChuLHtjYXJkczp0fSk9Pih7Li4ubix1bnJlc29sdmVkSW1wb3J0ZWRQaW5uZWRDYXJkczpbLi4ubi51bnJlc29sdmVkSW1wb3J0ZWRQaW5uZWRDYXJkcywuLi50XX0pKSx5ZShXZyxuPT57bGV0IHQ9ey4uLm4uY2FyZE1ldGFkYXRhTWFwfSxlPXsuLi5uLmNhcmRTdGVwSW5kZXh9LGk9ey4uLm4uY2FyZFN0YXRlTWFwfTtmb3IobGV0IHIgb2Ygbi5waW5uZWRDYXJkVG9PcmlnaW5hbC5rZXlzKCkpZGVsZXRlIHRbcl0sZGVsZXRlIGVbcl0sZGVsZXRlIGlbcl07cmV0dXJuey4uLm4sY2FyZE1ldGFkYXRhTWFwOnQsY2FyZFN0YXRlTWFwOmksY2FyZFN0ZXBJbmRleDplLGNhcmRUb1Bpbm5lZENvcHk6bmV3IE1hcCxjYXJkVG9QaW5uZWRDb3B5Q2FjaGU6bmV3IE1hcCxwaW5uZWRDYXJkVG9PcmlnaW5hbDpuZXcgTWFwfX0pKTtmdW5jdGlvbiB1UShuLHQpe3JldHVybiBiaChYU2UscVNlKShuLHQpfWZ1bmN0aW9uIGNRKG4sdCl7cmV0dXJue3RhZ0Rlc2NyaXB0aW9uczpuW3RdLnRhZ0Rlc2NyaXB0aW9ucyx0YWdUb1J1bnM6WVNlKG5bdF0ucnVuVGFnSW5mbyl9fWZ1bmN0aW9uIFlTZShuKXtsZXQgdD17fTtmb3IobGV0IGUgaW4gbilmb3IobGV0IGkgb2YgbltlXSl0W2ldPVsuLi50W2ldfHxbXSxlXTtyZXR1cm4gdH12YXIgUVNlPVcoZ2QsS3MsKG4sdCxlKT0+dD97Li4udCxsb2FkU3RhdGU6bixpZDplfTpudWxsKSx3Tj1mZSgiW01ldHJpY3MgRWZmZWN0c10gSW5pdCIpLHBRPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIsbyl7dGhpcy5hY3Rpb25zJD1lLHRoaXMuc3RvcmU9aSx0aGlzLm1ldHJpY3NEYXRhU291cmNlPXIsdGhpcy5zYXZlZFBpbnNEYXRhU291cmNlPW8sdGhpcy5kYXNoYm9hcmRTaG93bldpdGhvdXREYXRhJD10aGlzLmFjdGlvbnMkLnBpcGUoWm4od04seWMsZ2gsTmEpLEl0KHRoaXMuc3RvcmUuc2VsZWN0KFpvKSx0aGlzLnN0b3JlLnNlbGVjdCh4dikpLE9lKChbLGEsc10pPT5hPT09X3YmJnMuc3RhdGU9PT1SZS5OT1RfTE9BREVEKSksdGhpcy5yZWxvYWRSZXF1ZXN0ZWRXaGlsZVNob3duJD10aGlzLmFjdGlvbnMkLnBpcGUoWm4obWEsQmEpLEl0KHRoaXMuc3RvcmUuc2VsZWN0KFpvKSksT2UoKFssYV0pPT5hPT09X3YpKSx0aGlzLmxvYWRUYWdNZXRhZGF0YSQ9dG4odGhpcy5kYXNoYm9hcmRTaG93bldpdGhvdXREYXRhJCx0aGlzLnJlbG9hZFJlcXVlc3RlZFdoaWxlU2hvd24kKS5waXBlKEl0KHRoaXMuc3RvcmUuc2VsZWN0KHh2KSx0aGlzLnN0b3JlLnNlbGVjdChvcikpLE9lKChbLGEsc10pPT5hLnN0YXRlIT09UmUuTE9BRElORyYmbnVsbCE9PXMpLGljKDEwKSxEdCgoKT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2gocFQoKSl9KSxKbigoWywsYV0pPT50aGlzLm1ldHJpY3NEYXRhU291cmNlLmZldGNoVGFnTWV0YWRhdGEoYSkucGlwZShEdChzPT57dGhpcy5zdG9yZS5kaXNwYXRjaChoVCh7dGFnTWV0YWRhdGE6c30pKX0pLGNvKCgpPT4odGhpcy5zdG9yZS5kaXNwYXRjaChtVCgpKSwkdChudWxsKSkpKSkpLHRoaXMudmlzaWJsZUNhcmRzV2l0aG91dERhdGFDaGFuZ2VkJD10aGlzLmFjdGlvbnMkLnBpcGUoWm4oVWcpLEl0KHRoaXMuZ2V0VmlzaWJsZUNhcmRGZXRjaEluZm9zKCkpLHEoKFssYV0pPT5hLmZpbHRlcihzPT5zLmxvYWRTdGF0ZT09PVJlLk5PVF9MT0FERUQpKSksdGhpcy52aXNpYmxlQ2FyZHNSZWxvYWRlZCQ9dGhpcy5yZWxvYWRSZXF1ZXN0ZWRXaGlsZVNob3duJC5waXBlKEl0KHRoaXMuZ2V0VmlzaWJsZUNhcmRGZXRjaEluZm9zKCkpLHEoKFssYV0pPT5hLmZpbHRlcihzPT5zLmxvYWRTdGF0ZSE9PVJlLkxPQURJTkcpKSksdGhpcy5sb2FkVGltZVNlcmllcyQ9dG4odGhpcy52aXNpYmxlQ2FyZHNXaXRob3V0RGF0YUNoYW5nZWQkLHRoaXMudmlzaWJsZUNhcmRzUmVsb2FkZWQkKS5waXBlKE9lKGE9PmEubGVuZ3RoPjApLEl0KHRoaXMuc3RvcmUuc2VsZWN0KG9yKS5waXBlKE9lKGE9Pm51bGwhPT1hKSkpLHhuKChbYSxzXSk9PnRoaXMuZmV0Y2hUaW1lU2VyaWVzRm9yQ2FyZHMoYSxzKSkpLHRoaXMuYWRkT3JSZW1vdmVQaW4kPXRoaXMuYWN0aW9ucyQucGlwZShabihucCksSXQodGhpcy5nZXRWaXNpYmxlQ2FyZEZldGNoSW5mb3MoKSx0aGlzLnN0b3JlLnNlbGVjdChwZCksdGhpcy5zdG9yZS5zZWxlY3QocGgpLHRoaXMuc3RvcmUuc2VsZWN0KGJkKSksT2UoKFssLGEscyxsXSk9PmEmJnMmJmwpLER0KChbe2NhcmRJZDphLGNhbkNyZWF0ZU5ld1BpbnM6cyx3YXNQaW5uZWQ6bH0sY10pPT57bGV0IGQ9Yy5maW5kKHU9PnUuaWQ9PT1hKTshZHx8ZC5wbHVnaW4hPT1Bbi5TQ0FMQVJTfHwobD90aGlzLnNhdmVkUGluc0RhdGFTb3VyY2UucmVtb3ZlU2NhbGFyUGluKGQudGFnKTpzJiZ0aGlzLnNhdmVkUGluc0RhdGFTb3VyY2Uuc2F2ZVNjYWxhclBpbihkLnRhZykpfSkpLHRoaXMubG9hZFNhdmVkUGlucyQ9dGhpcy5hY3Rpb25zJC5waXBlKFpuKHdOKSxJdCh0aGlzLnN0b3JlLnNlbGVjdChwZCksdGhpcy5zdG9yZS5zZWxlY3QocGgpLHRoaXMuc3RvcmUuc2VsZWN0KGJkKSksT2UoKFssYSxzLGxdKT0+YSYmcyYmbCksRHQoKCk9PntsZXQgYT10aGlzLnNhdmVkUGluc0RhdGFTb3VyY2UuZ2V0U2F2ZWRTY2FsYXJQaW5zKCk7aWYoIWF8fDA9PT1hLmxlbmd0aClyZXR1cm47bGV0IHM9YS5tYXAobD0+KHtwbHVnaW46QW4uU0NBTEFSUyx0YWc6bH0pKTt0aGlzLnN0b3JlLmRpc3BhdGNoKFZUKHtjYXJkczpzfSkpfSkpLHRoaXMucmVtb3ZlQWxsUGlucyQ9dGhpcy5hY3Rpb25zJC5waXBlKFpuKFdnKSxJdCh0aGlzLnN0b3JlLnNlbGVjdChwZCksdGhpcy5zdG9yZS5zZWxlY3QocGgpLHRoaXMuc3RvcmUuc2VsZWN0KGJkKSksT2UoKFssYSxzLGxdKT0+YSYmcyYmbCksRHQoKCk9Pnt0aGlzLnNhdmVkUGluc0RhdGFTb3VyY2UucmVtb3ZlQWxsU2NhbGFyUGlucygpfSkpLHRoaXMuYWRkT3JSZW1vdmVQaW5zT25Ub2dnbGUkPXRoaXMuYWN0aW9ucyQucGlwZShabih6aCksSXQodGhpcy5zdG9yZS5zZWxlY3QoS2YpLHRoaXMuc3RvcmUuc2VsZWN0KHBkKSx0aGlzLnN0b3JlLnNlbGVjdChwaCksdGhpcy5zdG9yZS5zZWxlY3QoYmQpKSxPZSgoWywsYSxzXSk9PmEmJnMpLER0KChbLGEsLCxzXSk9PntpZihzKXtsZXQgbD1hLm1hcChjPT5jLnBsdWdpbj09PUFuLlNDQUxBUlM/Yy50YWc6bnVsbCkuZmlsdGVyKGM9Pm51bGwhPT1jKTt0aGlzLnNhdmVkUGluc0RhdGFTb3VyY2Uuc2F2ZVNjYWxhclBpbnMobCl9ZWxzZSB0aGlzLnNhdmVkUGluc0RhdGFTb3VyY2UucmVtb3ZlQWxsU2NhbGFyUGlucygpfSkpLHRoaXMuZGF0YUVmZmVjdHMkPV9yKCgpPT50bih0aGlzLmxvYWRUYWdNZXRhZGF0YSQsdGhpcy5sb2FkVGltZVNlcmllcyQsdGhpcy5hZGRPclJlbW92ZVBpbiQsdGhpcy5sb2FkU2F2ZWRQaW5zJCx0aGlzLnJlbW92ZUFsbFBpbnMkLHRoaXMuYWRkT3JSZW1vdmVQaW5zT25Ub2dnbGUkKSx7ZGlzcGF0Y2g6ITF9KX1uZ3J4T25Jbml0RWZmZWN0cygpe3JldHVybiB3TigpfWdldFZpc2libGVDYXJkRmV0Y2hJbmZvcygpe3JldHVybiB0aGlzLnN0b3JlLnNlbGVjdChJVykucGlwZShKbihpPT5pLnNpemU/Q28oWy4uLmldLm1hcChvPT50aGlzLnN0b3JlLnNlbGVjdChRU2UsbykucGlwZShMdCgxKSkpKTokdChbXSkpLHEoaT0+aS5maWx0ZXIoQm9vbGVhbikpKX1mZXRjaFRpbWVTZXJpZXMoZSl7cmV0dXJuIHRoaXMubWV0cmljc0RhdGFTb3VyY2UuZmV0Y2hUaW1lU2VyaWVzKFtlXSkucGlwZShEdChpPT57bGV0IHI9aS5maWx0ZXIocVMpO3IubGVuZ3RoJiZjb25zb2xlLmVycm9yKCJUaW1lIHNlcmllcyByZXNwb25zZSBjb250YWluZWQgZXJyb3JzOiIsciksdGhpcy5zdG9yZS5kaXNwYXRjaChSVCh7cmVzcG9uc2U6aVswXX0pKX0pLGNvKCgpPT4odGhpcy5zdG9yZS5kaXNwYXRjaChBVCh7cmVxdWVzdDplfSkpLCR0KG51bGwpKSkpfWZldGNoVGltZVNlcmllc0ZvckNhcmRzKGUsaSl7cmV0dXJuICR0KGUubWFwKG89PntsZXR7cGx1Z2luOmEsdGFnOnMscnVuSWQ6bCxzYW1wbGU6Y309byxkPWdzKGEpP3twbHVnaW46YSx0YWc6cyxydW5JZDpsfTp7cGx1Z2luOmEsdGFnOnMsZXhwZXJpbWVudElkczppfTtyZXR1cm4gdm9pZCAwIT09YyYmKGQuc2FtcGxlPWMpLGR9KSkucGlwZShEdChvPT57dGhpcy5zdG9yZS5kaXNwYXRjaChJVCh7cmVxdWVzdHM6b30pKX0pLHhuKG89PnRuKC4uLm8ubWFwKHM9PnRoaXMuZmV0Y2hUaW1lU2VyaWVzKHMpKSkpKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhFbyksTyhJZSksTyh3YyksTyhYUykpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLFNOPW5ldyB0ZSgiTWV0cmljcyBTdG9yZSBDb25maWciKSxFTj1uZXcgdGUoIk1ldHJpY3MgSW5pdGlhbCBTZXR0aW5ncyBDb25maWciKTtmdW5jdGlvbiBoUShuKXtyZXR1cm4gbj97aW5pdGlhbFN0YXRlOnsuLi5NTixzZXR0aW5nczpufX06e2luaXRpYWxTdGF0ZTpNTn19dmFyIENzPSgoKT0+KGZ1bmN0aW9uKG4pe25bbi5MRUZUPTFdPSJMRUZUIixuW24uUklHSFQ9Ml09IlJJR0hUIixuW24uTUlERExFPTRdPSJNSURETEUiLG5bbi5GT1VSVEg9OF09IkZPVVJUSCIsbltuLkZJRlRIPTMyXT0iRklGVEgifShDc3x8KENzPXt9KSksQ3MpKSgpLG1RPTA7ZnVuY3Rpb24gWlNlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiYnV0dG9uIiwzKSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gbmUoZSksaWUodygpLmV4cGFuZFNpZGViYXIoKSl9KSxrKDEsIm1hdC1pY29uIiw0KSxnKCl9fXZhciBLU2U9ZnVuY3Rpb24obil7cmV0dXJueyJmdWxsLXNjcmVlbiI6bn19O2Z1bmN0aW9uIEpTZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsIm5hdiIsNSksVSgxLCJhc3luYyIpLFUoMiwiYXN5bmMiKSxUdCgzLDEpLGYoNCwiZGl2Iiw2KSxVKDUsImFzeW5jIiksZig2LCJidXR0b24iLDcpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBuZShlKSxpZSh3KCkudG9nZ2xlRnVsbFNjcmVlbigpKX0pLFUoNywiYXN5bmMiKSxrKDgsIm1hdC1pY29uIiw4KSxVKDksImFzeW5jIiksZygpKCkoKX1pZigyJm4pe2xldCBlPXcoKTtCdCgid2lkdGgiLEcoMSw5LGUud2lkdGgkKSwiJSIpKCJtaW4td2lkdGgiLGUuTUlOSU1VTV9TSURFQkFSX1dJRFRIX0lOX1BYLCJweCIpKCJtYXgtd2lkdGgiLEcoMiwxMSxlLnJ1bnNUYWJsZUZ1bGxTY3JlZW4kKT8xMDA6IiIsIiUiKSx2KDQpLGIoIm5nQ2xhc3MiLFVuKDE5LEtTZSxHKDUsMTMsZS5ydW5zVGFibGVGdWxsU2NyZWVuJCkpKSx2KDIpLGIoIm5nQ2xhc3MiLEcoNywxNSxlLnJ1bnNUYWJsZUZ1bGxTY3JlZW4kKT8iY29sbGFwc2UiOiJleHBhbmQiKSx2KDIpLGIoInN2Z0ljb24iLEcoOSwxNyxlLnJ1bnNUYWJsZUZ1bGxTY3JlZW4kKT8iYXJyb3dfYmFja18yNHB4IjoiYXJyb3dfZm9yd2FyZF8yNHB4Iil9fWZ1bmN0aW9uICRTZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImRpdiIsOSksQSgibW91c2Vkb3duIixmdW5jdGlvbigpe3JldHVybiBuZShlKSxpZSh3KCkucmVzaXplR3JhYmJlZCgpKX0pLGcoKX19dmFyIGUxZT1bW1siIiwibWFpbiIsIiJdXSxbWyIiLCJzaWRlYmFyIiwiIl1dXSx0MWU9WyJbbWFpbl0iLCJbc2lkZWJhcl0iXSxfUT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSl7dGhpcy5zdG9yZT1lLHRoaXMucnVuc1RhYmxlRnVsbFNjcmVlbiQ9dGhpcy5zdG9yZS5zZWxlY3Qod1MpLHRoaXMud2lkdGgkPXRoaXMuc3RvcmUuc2VsZWN0KE1TKS5waXBlKFZpKHRoaXMucnVuc1RhYmxlRnVsbFNjcmVlbiQpLHEoKFtyLG9dKT0+bz8xMDA6cikpLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgRWUsdGhpcy5yZXNpemluZz0hMSx0aGlzLk1JTklNVU1fU0lERUJBUl9XSURUSF9JTl9QWD03NSxFaShpLm5hdGl2ZUVsZW1lbnQsIm1vdXNlbW92ZSIpLnBpcGUoaXQodGhpcy5uZ1Vuc3Vic2NyaWJlKSxPZSgoKT0+dGhpcy5yZXNpemluZykpLnN1YnNjcmliZShyPT57aWYoKHIuYnV0dG9ucyZDcy5MRUZUKSE9PUNzLkxFRlQpcmV0dXJuIHZvaWQodGhpcy5yZXNpemluZz0hMSk7ci5wcmV2ZW50RGVmYXVsdCgpO2xldHt3aWR0aDpvfT1pLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5zdG9yZS5kaXNwYXRjaChVZih7d2lkdGhJblBlcmNlbnQ6ci5jbGllbnRYPD10aGlzLk1JTklNVU1fU0lERUJBUl9XSURUSF9JTl9QWD8wOnIuY2xpZW50WC9vKjEwMH0pKX0pLEVpKGkubmF0aXZlRWxlbWVudCwibW91c2V1cCIse3Bhc3NpdmU6ITB9KS5waXBlKGl0KHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKT0+e3RoaXMucmVzaXppbmc9ITF9KX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9cmVzaXplR3JhYmJlZCgpe3RoaXMucmVzaXppbmc9ITB9ZXhwYW5kU2lkZWJhcigpe3RoaXMuc3RvcmUuZGlzcGF0Y2goVWYoe3dpZHRoSW5QZXJjZW50OjIwfSkpfXRvZ2dsZUZ1bGxTY3JlZW4oKXt0aGlzLnN0b3JlLmRpc3BhdGNoKHZTKCkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKEllKSxDKHhlKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sidGItZGFzaGJvYXJkLWxheW91dCJdXSxuZ0NvbnRlbnRTZWxlY3RvcnM6dDFlLGRlY2xzOjcsdmFyczo5LGNvbnN0czpbWyJjbGFzcyIsImV4cGFuZC1jb2xsYXBzZWQtc2lkZWJhciIsMywiY2xpY2siLDQsIm5nSWYiXSxbImNsYXNzIiwic2lkZWJhciIsMywid2lkdGgiLCJtaW5XaWR0aCIsIm1heFdpZHRoIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInJlc2l6ZXIiLDMsIm1vdXNlZG93biIsNCwibmdJZiJdLFsxLCJleHBhbmQtY29sbGFwc2VkLXNpZGViYXIiLDMsImNsaWNrIl0sWyJzdmdJY29uIiwiZXhwYW5kX21vcmVfMjRweCJdLFsxLCJzaWRlYmFyIl0sWzEsImZ1bGwtc2NyZWVuLXRvZ2dsZSIsMywibmdDbGFzcyJdLFsibWF0LWJ1dHRvbiIsIiIsMSwiZnVsbC1zY3JlZW4tYnRuIiwzLCJuZ0NsYXNzIiwiY2xpY2siXSxbMSwiZXhwYW5kLWNvbGxhcHNlLWljb24iLDMsInN2Z0ljb24iXSxbMSwicmVzaXplciIsMywibW91c2Vkb3duIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZm4oZTFlKSxTKDAsWlNlLDIsMCwiYnV0dG9uIiwwKSxVKDEsImFzeW5jIiksUygyLEpTZSwxMCwyMSwibmF2IiwxKSxVKDMsImFzeW5jIiksUyg0LCRTZSwxLDAsImRpdiIsMiksVSg1LCJhc3luYyIpLFR0KDYpKSwyJmUmJihiKCJuZ0lmIiwwPT09RygxLDMsaS53aWR0aCQpKSx2KDIpLGIoIm5nSWYiLEcoMyw1LGkud2lkdGgkKT4wKSx2KDIpLGIoIm5nSWYiLEcoNSw3LGkud2lkdGgkKT4wKSl9LGRlcGVuZGVuY2llczpbd24sTmUsYm4sa2ksY3RdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlfS5zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXgtd2lkdGg6ODB2dztwb3NpdGlvbjpyZWxhdGl2ZX0ucmVzaXplcltfbmdjb250ZW50LSVDT01QJV0sIC5leHBhbmQtY29sbGFwc2VkLXNpZGViYXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1jb2xvcjojZWJlYmViO2JveC1zaXppbmc6Ym9yZGVyLWJveDtmbGV4OjAgMDtqdXN0aWZ5LXNlbGY6c3RyZXRjaH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAucmVzaXplcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5yZXNpemVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItY29sb3I6IzU1NX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZXhwYW5kLWNvbGxhcHNlZC1zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmV4cGFuZC1jb2xsYXBzZWQtc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWNvbG9yOiM1NTV9LmV4cGFuZC1jb2xsYXBzZWQtc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MjBweDthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDApO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MCAxcHggMCAwO2NvbG9yOmluaGVyaXQ7Y29udGFpbjpjb250ZW50O2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LXNlbGY6c3RyZXRjaDtwYWRkaW5nOjB9LmV4cGFuZC1jb2xsYXBzZWQtc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV0gICBtYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyfS5yZXNpemVyW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowIDJweDtjdXJzb3I6ZXctcmVzaXplO2NvbnRhaW46c3RyaWN0O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LXNlbGY6c3RyZXRjaH0ucmVzaXplcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LnJlc2l6ZXJbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2JvcmRlci1jb2xvcjojY2NjO291dGxpbmU6M3B4IHNvbGlkICNjY2M7ei1pbmRleDoxfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5yZXNpemVyW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlciwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnJlc2l6ZXJbX25nY29udGVudC0lQ09NUCVdOmhvdmVye291dGxpbmUtY29sb3I6Izc3Nztib3JkZXItY29sb3I6Izc3N30uZnVsbC1zY3JlZW4tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjA7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7bGVmdDpjYWxjKDEwMCUgKyAycHgpO3RvcDowO3otaW5kZXg6MTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5mdWxsLXNjcmVlbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVdOmhvdmVye29wYWNpdHk6Ljh9LmZ1bGwtc2NyZWVuLXRvZ2dsZS5mdWxsLXNjcmVlbltfbmdjb250ZW50LSVDT01QJV17bGVmdDp1bnNldDtyaWdodDowfS5mdWxsLXNjcmVlbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVdICAgLmZ1bGwtc2NyZWVuLWJ0bltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjpncmF5O3BhZGRpbmc6MDttaW4td2lkdGg6MjBweDt3aWR0aDoyMHB4fS5mdWxsLXNjcmVlbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVdICAgLmZ1bGwtc2NyZWVuLWJ0bi5leHBhbmRbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yYWRpdXM6MCAyMHB4IDIwcHggMH0uZnVsbC1zY3JlZW4tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5mdWxsLXNjcmVlbi1idG4uY29sbGFwc2VbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yYWRpdXM6MjBweCAwIDAgMjBweH0uZnVsbC1zY3JlZW4tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5mdWxsLXNjcmVlbi1idG5bX25nY29udGVudC0lQ09NUCVdICAgLmV4cGFuZC1jb2xsYXBzZS1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweDttYXJnaW4tcmlnaHQ6MH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLFROPW5ldyBXZWFrTWFwLHl5PWNsYXNze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5yb290PXQsdGhpcy5idWZmZXI9ZSx0aGlzLmRlc3Ryb3llZFRhcmdldHM9bmV3IFdlYWtTZXR9aW5pdGlhbGl6ZSh0KXtpZih0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyKXJldHVybjt0aGlzLmludGVyc2VjdGlvbkNhbGxiYWNrPXQ7bGV0IGU9e3RocmVzaG9sZDowLHJvb3Q6dGhpcy5yb290Pz9udWxsfTt0aGlzLmJ1ZmZlciYmKGUucm9vdE1hcmdpbj10aGlzLmJ1ZmZlciksdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIodGhpcy5vbkNhcmRJbnRlcnNlY3Rpb24uYmluZCh0aGlzKSxlKX1hZGQodCl7dGhpcy5lbnN1cmVJbml0aWFsaXplZCgpJiZ0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodCl9d2lsbERlc3Ryb3kodCl7dGhpcy5lbnN1cmVJbml0aWFsaXplZCgpJiZ0aGlzLmRlc3Ryb3llZFRhcmdldHMuYWRkKHQpfWVuc3VyZUluaXRpYWxpemVkKCl7aWYoIXRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIpdGhyb3cgbmV3IEVycm9yKCJDYXJkT2JzZXJ2ZXIgbXVzdCBiZSBpbml0aWFsaXplZCBiZWZvcmUgdXNlIik7cmV0dXJuITB9b25DYXJkSW50ZXJzZWN0aW9uKHQpe3Quc29ydCgocixvKT0+ci50aW1lLW8udGltZSk7bGV0IGU9bmV3IFNldCxpPW5ldyBTZXQ7Zm9yKGxldHtpc0ludGVyc2VjdGluZzpyLHRhcmdldDpvfW9mIHQpcj8oZS5hZGQobyksaS5kZWxldGUobykpOihlLmRlbGV0ZShvKSxpLmFkZChvKSksdGhpcy5kZXN0cm95ZWRUYXJnZXRzLmhhcyhvKSYmIXImJih0aGlzLmRlc3Ryb3llZFRhcmdldHMuZGVsZXRlKG8pLHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIudW5vYnNlcnZlKG8pKTt0aGlzLmludGVyc2VjdGlvbkNhbGxiYWNrKGUsaSl9b25DYXJkSW50ZXJzZWN0aW9uRm9yVGVzdCh0KXt0aGlzLm9uQ2FyZEludGVyc2VjdGlvbih0KX19LGJRPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpKXt0aGlzLmhvc3Q9ZSx0aGlzLnN0b3JlPWl9b25DYXJkSW50ZXJzZWN0aW9uKGUsaSl7bGV0IHI9Wy4uLmVdLm1hcChhPT57bGV0IHM9VE4uZ2V0KGEpO2lmKCFzKXRocm93IG5ldyBFcnJvcigiQSBDYXJkT2JzZXJ2ZXIgZWxlbWVudCBtdXN0IGhhdmUgYW4gYXNzb2NpYXRlZCBlbGVtZW50IGlkIGFuZCBjYXJkIGlkLiIpO3JldHVybntlbGVtZW50SWQ6cy5lbGVtZW50SWQsY2FyZElkOnMuY2FyZElkfX0pLG89Wy4uLmldLm1hcChhPT57bGV0IHM9VE4uZ2V0KGEpO2lmKCFzKXRocm93IG5ldyBFcnJvcigiQSBDYXJkT2JzZXJ2ZXIgZWxlbWVudCBtdXN0IGhhdmUgYW4gYXNzb2NpYXRlZCBlbGVtZW50IGlkIGFuZCBjYXJkIGlkLiIpO3JldHVybntlbGVtZW50SWQ6cy5lbGVtZW50SWQsY2FyZElkOnMuY2FyZElkfX0pO3RoaXMuc3RvcmUuZGlzcGF0Y2goVWcoe2VudGVyZWRDYXJkczpyLGV4aXRlZENhcmRzOm99KSl9bmdPbkluaXQoKXtsZXQgZT10aGlzLmhvc3QubmF0aXZlRWxlbWVudDtUTi5zZXQoZSx7ZWxlbWVudElkOihtUSsrLFN5bWJvbChtUSkpLGNhcmRJZDp0aGlzLmNhcmRJZH0pLHRoaXMuY2FyZE9ic2VydmVyfHwodGhpcy5jYXJkT2JzZXJ2ZXI9bmV3IHl5KSx0aGlzLmNhcmRPYnNlcnZlci5pbml0aWFsaXplKHRoaXMub25DYXJkSW50ZXJzZWN0aW9uLmJpbmQodGhpcykpLHRoaXMuY2FyZE9ic2VydmVyLmFkZChlKX1uZ09uRGVzdHJveSgpe3RoaXMuY2FyZE9ic2VydmVyJiZ0aGlzLmNhcmRPYnNlcnZlci53aWxsRGVzdHJveSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCl9aG9zdEZvclRlc3QoKXtyZXR1cm4gdGhpcy5ob3N0fX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSxDKEllKSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsImNhcmRMYXp5TG9hZGVyIiwiIl1dLGlucHV0czp7Y2FyZElkOlsiY2FyZExhenlMb2FkZXIiLCJjYXJkSWQiXSxjYXJkT2JzZXJ2ZXI6ImNhcmRPYnNlcnZlciJ9fSksbn0pKCk7ZnVuY3Rpb24gcjFlKG4sdCl7MSZuJiYoR3QoMCksVHQoMSksV3QoKSl9dmFyIG8xZT1bIioiXSx2UT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSl7dGhpcy52aWV3Q29udGFpbmVyUmVmPWUsdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9aX1uZ09uSW5pdCgpe2lmKHRoaXMuY3VzdG9taXphYmxlQ29tcG9uZW50KXtsZXQgZT10aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLmN1c3RvbWl6YWJsZUNvbXBvbmVudC5jb25zdHJ1Y3Rvcik7dGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChlKX19fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoZWkpLEMoaG8pKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJ0Yi1jdXN0b21pemF0aW9uIl1dLGlucHV0czp7Y3VzdG9taXphYmxlQ29tcG9uZW50OiJjdXN0b21pemFibGVDb21wb25lbnQifSxuZ0NvbnRlbnRTZWxlY3RvcnM6bzFlLGRlY2xzOjEsdmFyczoxLGNvbnN0czpbWzQsIm5nSWYiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmbigpLFMoMCxyMWUsMiwwLCJuZy1jb250YWluZXIiLDApKSwyJmUmJmIoIm5nSWYiLCFpLmN1c3RvbWl6YWJsZUNvbXBvbmVudCl9LGRlcGVuZGVuY2llczpbTmVdLGVuY2Fwc3VsYXRpb246Mn0pLG59KSgpLHMxZT1bImJ1dHRvbiJdLGwxZT1bIioiXSx5UT1uZXcgdGUoIk1BVF9CVVRUT05fVE9HR0xFX0RFRkFVTFRfT1BUSU9OUyIpLHhRPW5ldyB0ZSgiTWF0QnV0dG9uVG9nZ2xlR3JvdXAiKSxjMWU9e3Byb3ZpZGU6WHIsdXNlRXhpc3Rpbmc6V24oKCk9PkROKSxtdWx0aTohMH0sQ1E9MCx6VD1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuc291cmNlPXQsdGhpcy52YWx1ZT1lfX0sRE49KCgpPT57Y2xhc3MgbntnZXQgbmFtZSgpe3JldHVybiB0aGlzLl9uYW1lfXNldCBuYW1lKGUpe3RoaXMuX25hbWU9ZSx0aGlzLl9tYXJrQnV0dG9uc0ZvckNoZWNrKCl9Z2V0IHZlcnRpY2FsKCl7cmV0dXJuIHRoaXMuX3ZlcnRpY2FsfXNldCB2ZXJ0aWNhbChlKXt0aGlzLl92ZXJ0aWNhbD12dChlKX1nZXQgdmFsdWUoKXtsZXQgZT10aGlzLl9zZWxlY3Rpb25Nb2RlbD90aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZDpbXTtyZXR1cm4gdGhpcy5tdWx0aXBsZT9lLm1hcChpPT5pLnZhbHVlKTplWzBdP2VbMF0udmFsdWU6dm9pZCAwfXNldCB2YWx1ZShlKXt0aGlzLl9zZXRTZWxlY3Rpb25CeVZhbHVlKGUpLHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKX1nZXQgc2VsZWN0ZWQoKXtsZXQgZT10aGlzLl9zZWxlY3Rpb25Nb2RlbD90aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZDpbXTtyZXR1cm4gdGhpcy5tdWx0aXBsZT9lOmVbMF18fG51bGx9Z2V0IG11bHRpcGxlKCl7cmV0dXJuIHRoaXMuX211bHRpcGxlfXNldCBtdWx0aXBsZShlKXt0aGlzLl9tdWx0aXBsZT12dChlKSx0aGlzLl9tYXJrQnV0dG9uc0ZvckNoZWNrKCl9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkfXNldCBkaXNhYmxlZChlKXt0aGlzLl9kaXNhYmxlZD12dChlKSx0aGlzLl9tYXJrQnV0dG9uc0ZvckNoZWNrKCl9Y29uc3RydWN0b3IoZSxpKXt0aGlzLl9jaGFuZ2VEZXRlY3Rvcj1lLHRoaXMuX3ZlcnRpY2FsPSExLHRoaXMuX211bHRpcGxlPSExLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm49KCk9Pnt9LHRoaXMuX29uVG91Y2hlZD0oKT0+e30sdGhpcy5fbmFtZT0ibWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtIitDUSsrLHRoaXMudmFsdWVDaGFuZ2U9bmV3IEYsdGhpcy5jaGFuZ2U9bmV3IEYsdGhpcy5hcHBlYXJhbmNlPWkmJmkuYXBwZWFyYW5jZT9pLmFwcGVhcmFuY2U6InN0YW5kYXJkIn1uZ09uSW5pdCgpe3RoaXMuX3NlbGVjdGlvbk1vZGVsPW5ldyBmZyh0aGlzLm11bHRpcGxlLHZvaWQgMCwhMSl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0KC4uLnRoaXMuX2J1dHRvblRvZ2dsZXMuZmlsdGVyKGU9PmUuY2hlY2tlZCkpfXdyaXRlVmFsdWUoZSl7dGhpcy52YWx1ZT1lLHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpfXJlZ2lzdGVyT25DaGFuZ2UoZSl7dGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbj1lfXJlZ2lzdGVyT25Ub3VjaGVkKGUpe3RoaXMuX29uVG91Y2hlZD1lfXNldERpc2FibGVkU3RhdGUoZSl7dGhpcy5kaXNhYmxlZD1lfV9lbWl0Q2hhbmdlRXZlbnQoZSl7bGV0IGk9bmV3IHpUKGUsdGhpcy52YWx1ZSk7dGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbihpLnZhbHVlKSx0aGlzLmNoYW5nZS5lbWl0KGkpfV9zeW5jQnV0dG9uVG9nZ2xlKGUsaSxyPSExLG89ITEpeyF0aGlzLm11bHRpcGxlJiZ0aGlzLnNlbGVjdGVkJiYhZS5jaGVja2VkJiYodGhpcy5zZWxlY3RlZC5jaGVja2VkPSExKSx0aGlzLl9zZWxlY3Rpb25Nb2RlbD9pP3RoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdChlKTp0aGlzLl9zZWxlY3Rpb25Nb2RlbC5kZXNlbGVjdChlKTpvPSEwLG8/UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dGhpcy5fdXBkYXRlTW9kZWxWYWx1ZShlLHIpKTp0aGlzLl91cGRhdGVNb2RlbFZhbHVlKGUscil9X2lzU2VsZWN0ZWQoZSl7cmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGVsJiZ0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKGUpfV9pc1ByZWNoZWNrZWQoZSl7cmV0dXJuISh0eXBlb2YgdGhpcy5fcmF3VmFsdWU+InUiKSYmKHRoaXMubXVsdGlwbGUmJkFycmF5LmlzQXJyYXkodGhpcy5fcmF3VmFsdWUpP3RoaXMuX3Jhd1ZhbHVlLnNvbWUoaT0+bnVsbCE9ZS52YWx1ZSYmaT09PWUudmFsdWUpOmUudmFsdWU9PT10aGlzLl9yYXdWYWx1ZSl9X3NldFNlbGVjdGlvbkJ5VmFsdWUoZSl7dGhpcy5fcmF3VmFsdWU9ZSx0aGlzLl9idXR0b25Ub2dnbGVzJiYodGhpcy5tdWx0aXBsZSYmZT8oQXJyYXkuaXNBcnJheShlKSx0aGlzLl9jbGVhclNlbGVjdGlvbigpLGUuZm9yRWFjaChpPT50aGlzLl9zZWxlY3RWYWx1ZShpKSkpOih0aGlzLl9jbGVhclNlbGVjdGlvbigpLHRoaXMuX3NlbGVjdFZhbHVlKGUpKSl9X2NsZWFyU2VsZWN0aW9uKCl7dGhpcy5fc2VsZWN0aW9uTW9kZWwuY2xlYXIoKSx0aGlzLl9idXR0b25Ub2dnbGVzLmZvckVhY2goZT0+ZS5jaGVja2VkPSExKX1fc2VsZWN0VmFsdWUoZSl7bGV0IGk9dGhpcy5fYnV0dG9uVG9nZ2xlcy5maW5kKHI9Pm51bGwhPXIudmFsdWUmJnIudmFsdWU9PT1lKTtpJiYoaS5jaGVja2VkPSEwLHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdChpKSl9X3VwZGF0ZU1vZGVsVmFsdWUoZSxpKXtpJiZ0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoZSksdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpfV9tYXJrQnV0dG9uc0ZvckNoZWNrKCl7dGhpcy5fYnV0dG9uVG9nZ2xlcz8uZm9yRWFjaChlPT5lLl9tYXJrRm9yQ2hlY2soKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoUXQpLEMoeVEsOCkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyJtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihlLGkscil7aWYoMSZlJiZCbihyLHUxZSw1KSwyJmUpe2xldCBvO2JlKG89dmUoKSkmJihpLl9idXR0b25Ub2dnbGVzPW8pfX0saG9zdEF0dHJzOlsicm9sZSIsImdyb3VwIiwxLCJtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCJdLGhvc3RWYXJzOjUsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MiZlJiYoQmUoImFyaWEtZGlzYWJsZWQiLGkuZGlzYWJsZWQpLG50KCJtYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbCIsaS52ZXJ0aWNhbCkoIm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQiLCJzdGFuZGFyZCI9PT1pLmFwcGVhcmFuY2UpKX0saW5wdXRzOnthcHBlYXJhbmNlOiJhcHBlYXJhbmNlIixuYW1lOiJuYW1lIix2ZXJ0aWNhbDoidmVydGljYWwiLHZhbHVlOiJ2YWx1ZSIsbXVsdGlwbGU6Im11bHRpcGxlIixkaXNhYmxlZDoiZGlzYWJsZWQifSxvdXRwdXRzOnt2YWx1ZUNoYW5nZToidmFsdWVDaGFuZ2UiLGNoYW5nZToiY2hhbmdlIn0sZXhwb3J0QXM6WyJtYXRCdXR0b25Ub2dnbGVHcm91cCJdLGZlYXR1cmVzOltWdChbYzFlLHtwcm92aWRlOnhRLHVzZUV4aXN0aW5nOm59XSldfSksbn0pKCksZDFlPWdvKGNsYXNze30pLHUxZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgZDFle2dldCBidXR0b25JZCgpe3JldHVybmAke3RoaXMuaWR9LWJ1dHRvbmB9Z2V0IGFwcGVhcmFuY2UoKXtyZXR1cm4gdGhpcy5idXR0b25Ub2dnbGVHcm91cD90aGlzLmJ1dHRvblRvZ2dsZUdyb3VwLmFwcGVhcmFuY2U6dGhpcy5fYXBwZWFyYW5jZX1zZXQgYXBwZWFyYW5jZShlKXt0aGlzLl9hcHBlYXJhbmNlPWV9Z2V0IGNoZWNrZWQoKXtyZXR1cm4gdGhpcy5idXR0b25Ub2dnbGVHcm91cD90aGlzLmJ1dHRvblRvZ2dsZUdyb3VwLl9pc1NlbGVjdGVkKHRoaXMpOnRoaXMuX2NoZWNrZWR9c2V0IGNoZWNrZWQoZSl7bGV0IGk9dnQoZSk7aSE9PXRoaXMuX2NoZWNrZWQmJih0aGlzLl9jaGVja2VkPWksdGhpcy5idXR0b25Ub2dnbGVHcm91cCYmdGhpcy5idXR0b25Ub2dnbGVHcm91cC5fc3luY0J1dHRvblRvZ2dsZSh0aGlzLHRoaXMuX2NoZWNrZWQpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZWR8fHRoaXMuYnV0dG9uVG9nZ2xlR3JvdXAmJnRoaXMuYnV0dG9uVG9nZ2xlR3JvdXAuZGlzYWJsZWR9c2V0IGRpc2FibGVkKGUpe3RoaXMuX2Rpc2FibGVkPXZ0KGUpfWNvbnN0cnVjdG9yKGUsaSxyLG8sYSxzKXtzdXBlcigpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWksdGhpcy5fZWxlbWVudFJlZj1yLHRoaXMuX2ZvY3VzTW9uaXRvcj1vLHRoaXMuX2NoZWNrZWQ9ITEsdGhpcy5hcmlhTGFiZWxsZWRieT1udWxsLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuY2hhbmdlPW5ldyBGO2xldCBsPU51bWJlcihhKTt0aGlzLnRhYkluZGV4PWx8fDA9PT1sP2w6bnVsbCx0aGlzLmJ1dHRvblRvZ2dsZUdyb3VwPWUsdGhpcy5hcHBlYXJhbmNlPXMmJnMuYXBwZWFyYW5jZT9zLmFwcGVhcmFuY2U6InN0YW5kYXJkIn1uZ09uSW5pdCgpe2xldCBlPXRoaXMuYnV0dG9uVG9nZ2xlR3JvdXA7dGhpcy5pZD10aGlzLmlkfHwibWF0LWJ1dHRvbi10b2dnbGUtIitDUSsrLGUmJihlLl9pc1ByZWNoZWNrZWQodGhpcyk/dGhpcy5jaGVja2VkPSEwOmUuX2lzU2VsZWN0ZWQodGhpcykhPT10aGlzLl9jaGVja2VkJiZlLl9zeW5jQnV0dG9uVG9nZ2xlKHRoaXMsdGhpcy5fY2hlY2tlZCkpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsITApfW5nT25EZXN0cm95KCl7bGV0IGU9dGhpcy5idXR0b25Ub2dnbGVHcm91cDt0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZiksZSYmZS5faXNTZWxlY3RlZCh0aGlzKSYmZS5fc3luY0J1dHRvblRvZ2dsZSh0aGlzLCExLCExLCEwKX1mb2N1cyhlKXt0aGlzLl9idXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoZSl9X29uQnV0dG9uQ2xpY2soKXtsZXQgZT0hIXRoaXMuX2lzU2luZ2xlU2VsZWN0b3IoKXx8IXRoaXMuX2NoZWNrZWQ7ZSE9PXRoaXMuX2NoZWNrZWQmJih0aGlzLl9jaGVja2VkPWUsdGhpcy5idXR0b25Ub2dnbGVHcm91cCYmKHRoaXMuYnV0dG9uVG9nZ2xlR3JvdXAuX3N5bmNCdXR0b25Ub2dnbGUodGhpcyx0aGlzLl9jaGVja2VkLCEwKSx0aGlzLmJ1dHRvblRvZ2dsZUdyb3VwLl9vblRvdWNoZWQoKSkpLHRoaXMuY2hhbmdlLmVtaXQobmV3IHpUKHRoaXMsdGhpcy52YWx1ZSkpfV9tYXJrRm9yQ2hlY2soKXt0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX1fZ2V0QnV0dG9uTmFtZSgpe3JldHVybiB0aGlzLl9pc1NpbmdsZVNlbGVjdG9yKCk/dGhpcy5idXR0b25Ub2dnbGVHcm91cC5uYW1lOnRoaXMubmFtZXx8bnVsbH1faXNTaW5nbGVTZWxlY3Rvcigpe3JldHVybiB0aGlzLmJ1dHRvblRvZ2dsZUdyb3VwJiYhdGhpcy5idXR0b25Ub2dnbGVHcm91cC5tdWx0aXBsZX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyh4USw4KSxDKFF0KSxDKHhlKSxDKGZvKSxNbygidGFiaW5kZXgiKSxDKHlRLDgpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtYXQtYnV0dG9uLXRvZ2dsZSJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJlVlKHMxZSw1KSwyJmUpe2xldCByO2JlKHI9dmUoKSkmJihpLl9idXR0b25FbGVtZW50PXIuZmlyc3QpfX0saG9zdEF0dHJzOlsicm9sZSIsInByZXNlbnRhdGlvbiIsMSwibWF0LWJ1dHRvbi10b2dnbGUiXSxob3N0VmFyczoxMixob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsxJmUmJkEoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBpLmZvY3VzKCl9KSwyJmUmJihCZSgiYXJpYS1sYWJlbCIsbnVsbCkoImFyaWEtbGFiZWxsZWRieSIsbnVsbCkoImlkIixpLmlkKSgibmFtZSIsbnVsbCksbnQoIm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUiLCFpLmJ1dHRvblRvZ2dsZUdyb3VwKSgibWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCIsaS5jaGVja2VkKSgibWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQiLGkuZGlzYWJsZWQpKCJtYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIiwic3RhbmRhcmQiPT09aS5hcHBlYXJhbmNlKSl9LGlucHV0czp7ZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIsYXJpYUxhYmVsOlsiYXJpYS1sYWJlbCIsImFyaWFMYWJlbCJdLGFyaWFMYWJlbGxlZGJ5OlsiYXJpYS1sYWJlbGxlZGJ5IiwiYXJpYUxhYmVsbGVkYnkiXSxpZDoiaWQiLG5hbWU6Im5hbWUiLHZhbHVlOiJ2YWx1ZSIsdGFiSW5kZXg6InRhYkluZGV4IixhcHBlYXJhbmNlOiJhcHBlYXJhbmNlIixjaGVja2VkOiJjaGVja2VkIixkaXNhYmxlZDoiZGlzYWJsZWQifSxvdXRwdXRzOntjaGFuZ2U6ImNoYW5nZSJ9LGV4cG9ydEFzOlsibWF0QnV0dG9uVG9nZ2xlIl0sZmVhdHVyZXM6W1hlXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bDFlLGRlY2xzOjYsdmFyczo5LGNvbnN0czpbWyJ0eXBlIiwiYnV0dG9uIiwxLCJtYXQtYnV0dG9uLXRvZ2dsZS1idXR0b24iLCJtYXQtZm9jdXMtaW5kaWNhdG9yIiwzLCJpZCIsImRpc2FibGVkIiwiY2xpY2siXSxbImJ1dHRvbiIsIiJdLFsxLCJtYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50Il0sWzEsIm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkiXSxbIm1hdFJpcHBsZSIsIiIsMSwibWF0LWJ1dHRvbi10b2dnbGUtcmlwcGxlIiwzLCJtYXRSaXBwbGVUcmlnZ2VyIiwibWF0UmlwcGxlRGlzYWJsZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJihmbigpLGYoMCwiYnV0dG9uIiwwLDEpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpLl9vbkJ1dHRvbkNsaWNrKCl9KSxmKDIsInNwYW4iLDIpLFR0KDMpLGcoKSgpLGsoNCwic3BhbiIsMykoNSwic3BhbiIsNCkpLDImZSl7bGV0IHI9c3QoMSk7YigiaWQiLGkuYnV0dG9uSWQpKCJkaXNhYmxlZCIsaS5kaXNhYmxlZHx8bnVsbCksQmUoInRhYmluZGV4IixpLmRpc2FibGVkPy0xOmkudGFiSW5kZXgpKCJhcmlhLXByZXNzZWQiLGkuY2hlY2tlZCkoIm5hbWUiLGkuX2dldEJ1dHRvbk5hbWUoKSkoImFyaWEtbGFiZWwiLGkuYXJpYUxhYmVsKSgiYXJpYS1sYWJlbGxlZGJ5IixpLmFyaWFMYWJlbGxlZGJ5KSx2KDUpLGIoIm1hdFJpcHBsZVRyaWdnZXIiLHIpKCJtYXRSaXBwbGVEaXNhYmxlZCIsaS5kaXNhYmxlUmlwcGxlfHxpLmRpc2FibGVkKX19LGRlcGVuZGVuY2llczpbS2ldLHN0eWxlczpbIi5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6MnB4Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXB7b3V0bGluZTpzb2xpZCAxcHh9Lm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCwubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZHtib3JkZXItcmFkaXVzOjRweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZHtvdXRsaW5lOjB9Lm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2Fse2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0ubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnR7ZGlzcGxheTpibG9ja30ubWF0LWJ1dHRvbi10b2dnbGV7d2hpdGUtc3BhY2U6bm93cmFwO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtYnV0dG9uLXRvZ2dsZSAubWF0LWljb24gc3Zne3ZlcnRpY2FsLWFsaWduOnRvcH0ubWF0LWJ1dHRvbi10b2dnbGUuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7b3BhY2l0eToxfS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkOm5vdCgubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQpOmhvdmVyIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjA0fS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQpIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfUBtZWRpYShob3Zlcjogbm9uZSl7Lm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQ6bm90KC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCk6aG92ZXIgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7ZGlzcGxheTpub25lfX0ubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudHstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtkaXNwbGF5OmlubGluZS1ibG9jaztsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50e3BhZGRpbmc6MCAxMnB4fS5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50Pip7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e2JvcmRlci1ib3R0b206c29saWQgMzZweDtvcGFjaXR5Oi41O2hlaWdodDowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQ6aG92ZXIgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouNn0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7Ym9yZGVyLWJvdHRvbTpzb2xpZCA1MDBweH0ubWF0LWJ1dHRvbi10b2dnbGUgLm1hdC1idXR0b24tdG9nZ2xlLXJpcHBsZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lfS5tYXQtYnV0dG9uLXRvZ2dsZS1idXR0b257Ym9yZGVyOjA7YmFja2dyb3VuZDpub25lO2NvbG9yOmluaGVyaXQ7cGFkZGluZzowO21hcmdpbjowO2ZvbnQ6aW5oZXJpdDtvdXRsaW5lOm5vbmU7d2lkdGg6MTAwJTtjdXJzb3I6cG9pbnRlcn0ubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQgLm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbntjdXJzb3I6ZGVmYXVsdH0ubWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfSJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLFVUPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltkbixfYSxkbl19KSxufSkoKSxoMWU9WyJkZXRlcm1pbmF0ZVNwaW5uZXIiXTtmdW5jdGlvbiBtMWUobix0KXtpZigxJm4mJihxbigpLGYoMCwic3ZnIiwxMSksaygxLCJjaXJjbGUiLDEyKSxnKCkpLDImbil7bGV0IGU9dygpO0JlKCJ2aWV3Qm94IixlLl92aWV3Qm94KCkpLHYoMSksQnQoInN0cm9rZS1kYXNoYXJyYXkiLGUuX3N0cm9rZUNpcmN1bWZlcmVuY2UoKSwicHgiKSgic3Ryb2tlLWRhc2hvZmZzZXQiLGUuX3N0cm9rZUNpcmN1bWZlcmVuY2UoKS8yLCJweCIpKCJzdHJva2Utd2lkdGgiLGUuX2NpcmNsZVN0cm9rZVdpZHRoKCksIiUiKSxCZSgiciIsZS5fY2lyY2xlUmFkaXVzKCkpfX12YXIgZjFlPUtvKGNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuX2VsZW1lbnRSZWY9bn19LCJwcmltYXJ5IiksZzFlPW5ldyB0ZSgibWF0LXByb2dyZXNzLXNwaW5uZXItZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbigpe3JldHVybntkaWFtZXRlcjpNUX19fSksTVE9MTAwLE5jPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBmMWV7Y29uc3RydWN0b3IoZSxpLHIpe3N1cGVyKGUpLHRoaXMubW9kZT0ibWF0LXNwaW5uZXIiPT09dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk/ImluZGV0ZXJtaW5hdGUiOiJkZXRlcm1pbmF0ZSIsdGhpcy5fdmFsdWU9MCx0aGlzLl9kaWFtZXRlcj1NUSx0aGlzLl9ub29wQW5pbWF0aW9ucz0iTm9vcEFuaW1hdGlvbnMiPT09aSYmISFyJiYhci5fZm9yY2VBbmltYXRpb25zLHImJihyLmNvbG9yJiYodGhpcy5jb2xvcj10aGlzLmRlZmF1bHRDb2xvcj1yLmNvbG9yKSxyLmRpYW1ldGVyJiYodGhpcy5kaWFtZXRlcj1yLmRpYW1ldGVyKSxyLnN0cm9rZVdpZHRoJiYodGhpcy5zdHJva2VXaWR0aD1yLnN0cm9rZVdpZHRoKSl9Z2V0IHZhbHVlKCl7cmV0dXJuImRldGVybWluYXRlIj09PXRoaXMubW9kZT90aGlzLl92YWx1ZTowfXNldCB2YWx1ZShlKXt0aGlzLl92YWx1ZT1NYXRoLm1heCgwLE1hdGgubWluKDEwMCxtaShlKSkpfWdldCBkaWFtZXRlcigpe3JldHVybiB0aGlzLl9kaWFtZXRlcn1zZXQgZGlhbWV0ZXIoZSl7dGhpcy5fZGlhbWV0ZXI9bWkoZSl9Z2V0IHN0cm9rZVdpZHRoKCl7cmV0dXJuIHRoaXMuX3N0cm9rZVdpZHRoPz90aGlzLmRpYW1ldGVyLzEwfXNldCBzdHJva2VXaWR0aChlKXt0aGlzLl9zdHJva2VXaWR0aD1taShlKX1fY2lyY2xlUmFkaXVzKCl7cmV0dXJuKHRoaXMuZGlhbWV0ZXItMTApLzJ9X3ZpZXdCb3goKXtsZXQgZT0yKnRoaXMuX2NpcmNsZVJhZGl1cygpK3RoaXMuc3Ryb2tlV2lkdGg7cmV0dXJuYDAgMCAke2V9ICR7ZX1gfV9zdHJva2VDaXJjdW1mZXJlbmNlKCl7cmV0dXJuIDIqTWF0aC5QSSp0aGlzLl9jaXJjbGVSYWRpdXMoKX1fc3Ryb2tlRGFzaE9mZnNldCgpe3JldHVybiJkZXRlcm1pbmF0ZSI9PT10aGlzLm1vZGU/dGhpcy5fc3Ryb2tlQ2lyY3VtZmVyZW5jZSgpKigxMDAtdGhpcy5fdmFsdWUpLzEwMDpudWxsfV9jaXJjbGVTdHJva2VXaWR0aCgpe3JldHVybiB0aGlzLnN0cm9rZVdpZHRoL3RoaXMuZGlhbWV0ZXIqMTAwfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSxDKHBpLDgpLEMoZzFlKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sibWF0LXByb2dyZXNzLXNwaW5uZXIiXSxbIm1hdC1zcGlubmVyIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmVWUoaDFlLDUpLDImZSl7bGV0IHI7YmUocj12ZSgpKSYmKGkuX2RldGVybWluYXRlQ2lyY2xlPXIuZmlyc3QpfX0saG9zdEF0dHJzOlsicm9sZSIsInByb2dyZXNzYmFyIiwidGFiaW5kZXgiLCItMSIsMSwibWF0LW1kYy1wcm9ncmVzcy1zcGlubmVyIiwibWRjLWNpcmN1bGFyLXByb2dyZXNzIl0saG9zdFZhcnM6MTIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MiZlJiYoQmUoImFyaWEtdmFsdWVtaW4iLDApKCJhcmlhLXZhbHVlbWF4IiwxMDApKCJhcmlhLXZhbHVlbm93IiwiZGV0ZXJtaW5hdGUiPT09aS5tb2RlP2kudmFsdWU6bnVsbCkoIm1vZGUiLGkubW9kZSksQnQoIndpZHRoIixpLmRpYW1ldGVyLCJweCIpKCJoZWlnaHQiLGkuZGlhbWV0ZXIsInB4IiksbnQoIl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIixpLl9ub29wQW5pbWF0aW9ucykoIm1kYy1jaXJjdWxhci1wcm9ncmVzcy0taW5kZXRlcm1pbmF0ZSIsImluZGV0ZXJtaW5hdGUiPT09aS5tb2RlKSl9LGlucHV0czp7Y29sb3I6ImNvbG9yIixtb2RlOiJtb2RlIix2YWx1ZToidmFsdWUiLGRpYW1ldGVyOiJkaWFtZXRlciIsc3Ryb2tlV2lkdGg6InN0cm9rZVdpZHRoIn0sZXhwb3J0QXM6WyJtYXRQcm9ncmVzc1NwaW5uZXIiXSxmZWF0dXJlczpbWGVdLGRlY2xzOjE0LHZhcnM6MTEsY29uc3RzOltbImNpcmNsZSIsIiJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJtZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX2RldGVybWluYXRlLWNvbnRhaW5lciJdLFsiZGV0ZXJtaW5hdGVTcGlubmVyIiwiIl0sWyJ4bWxucyIsImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZm9jdXNhYmxlIiwiZmFsc2UiLDEsIm1kYy1jaXJjdWxhci1wcm9ncmVzc19fZGV0ZXJtaW5hdGUtY2lyY2xlLWdyYXBoaWMiXSxbImN4IiwiNTAlIiwiY3kiLCI1MCUiLDEsIm1kYy1jaXJjdWxhci1wcm9ncmVzc19fZGV0ZXJtaW5hdGUtY2lyY2xlIl0sWyJhcmlhLWhpZGRlbiIsInRydWUiLDEsIm1kYy1jaXJjdWxhci1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZS1jb250YWluZXIiXSxbMSwibWRjLWNpcmN1bGFyLXByb2dyZXNzX19zcGlubmVyLWxheWVyIl0sWzEsIm1kYy1jaXJjdWxhci1wcm9ncmVzc19fY2lyY2xlLWNsaXBwZXIiLCJtZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX2NpcmNsZS1sZWZ0Il0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiXSxbMSwibWRjLWNpcmN1bGFyLXByb2dyZXNzX19nYXAtcGF0Y2giXSxbMSwibWRjLWNpcmN1bGFyLXByb2dyZXNzX19jaXJjbGUtY2xpcHBlciIsIm1kYy1jaXJjdWxhci1wcm9ncmVzc19fY2lyY2xlLXJpZ2h0Il0sWyJ4bWxucyIsImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZm9jdXNhYmxlIiwiZmFsc2UiLDEsIm1kYy1jaXJjdWxhci1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZS1jaXJjbGUtZ3JhcGhpYyJdLFsiY3giLCI1MCUiLCJjeSIsIjUwJSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmKFMoMCxtMWUsMiw4LCJuZy10ZW1wbGF0ZSIsbnVsbCwwLGp0KSxmKDIsImRpdiIsMSwyKSxxbigpLGYoNCwic3ZnIiwzKSxrKDUsImNpcmNsZSIsNCksZygpKCksdWEoKSxmKDYsImRpdiIsNSkoNywiZGl2Iiw2KSg4LCJkaXYiLDcpLGhpKDksOCksZygpLGYoMTAsImRpdiIsOSksaGkoMTEsOCksZygpLGYoMTIsImRpdiIsMTApLGhpKDEzLDgpLGcoKSgpKCkpLDImZSl7bGV0IHI9c3QoMSk7dig0KSxCZSgidmlld0JveCIsaS5fdmlld0JveCgpKSx2KDEpLEJ0KCJzdHJva2UtZGFzaGFycmF5IixpLl9zdHJva2VDaXJjdW1mZXJlbmNlKCksInB4IikoInN0cm9rZS1kYXNob2Zmc2V0IixpLl9zdHJva2VEYXNoT2Zmc2V0KCksInB4IikoInN0cm9rZS13aWR0aCIsaS5fY2lyY2xlU3Ryb2tlV2lkdGgoKSwiJSIpLEJlKCJyIixpLl9jaXJjbGVSYWRpdXMoKSksdig0KSxiKCJuZ1RlbXBsYXRlT3V0bGV0IixyKSx2KDIpLGIoIm5nVGVtcGxhdGVPdXRsZXQiLHIpLHYoMiksYigibmdUZW1wbGF0ZU91dGxldCIscil9fSxkZXBlbmRlbmNpZXM6W2VvXSxzdHlsZXM6WyJAa2V5ZnJhbWVzIG1kYy1jaXJjdWxhci1wcm9ncmVzcy1jb250YWluZXItcm90YXRle3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBtZGMtY2lyY3VsYXItcHJvZ3Jlc3Mtc3Bpbm5lci1sYXllci1yb3RhdGV7MTIuNSV7dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpfTI1JXt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9MzcuNSV7dHJhbnNmb3JtOnJvdGF0ZSg0MDVkZWcpfTUwJXt0cmFuc2Zvcm06cm90YXRlKDU0MGRlZyl9NjIuNSV7dHJhbnNmb3JtOnJvdGF0ZSg2NzVkZWcpfTc1JXt0cmFuc2Zvcm06cm90YXRlKDgxMGRlZyl9ODcuNSV7dHJhbnNmb3JtOnJvdGF0ZSg5NDVkZWcpfTEwMCV7dHJhbnNmb3JtOnJvdGF0ZSgxMDgwZGVnKX19QGtleWZyYW1lcyBtZGMtY2lyY3VsYXItcHJvZ3Jlc3MtY29sb3ItMS1mYWRlLWluLW91dHtmcm9te29wYWNpdHk6Ljk5fTI1JXtvcGFjaXR5Oi45OX0yNiV7b3BhY2l0eTowfTg5JXtvcGFjaXR5OjB9OTAle29wYWNpdHk6Ljk5fXRve29wYWNpdHk6Ljk5fX1Aa2V5ZnJhbWVzIG1kYy1jaXJjdWxhci1wcm9ncmVzcy1jb2xvci0yLWZhZGUtaW4tb3V0e2Zyb217b3BhY2l0eTowfTE1JXtvcGFjaXR5OjB9MjUle29wYWNpdHk6Ljk5fTUwJXtvcGFjaXR5Oi45OX01MSV7b3BhY2l0eTowfXRve29wYWNpdHk6MH19QGtleWZyYW1lcyBtZGMtY2lyY3VsYXItcHJvZ3Jlc3MtY29sb3ItMy1mYWRlLWluLW91dHtmcm9te29wYWNpdHk6MH00MCV7b3BhY2l0eTowfTUwJXtvcGFjaXR5Oi45OX03NSV7b3BhY2l0eTouOTl9NzYle29wYWNpdHk6MH10b3tvcGFjaXR5OjB9fUBrZXlmcmFtZXMgbWRjLWNpcmN1bGFyLXByb2dyZXNzLWNvbG9yLTQtZmFkZS1pbi1vdXR7ZnJvbXtvcGFjaXR5OjB9NjUle29wYWNpdHk6MH03NSV7b3BhY2l0eTouOTl9OTAle29wYWNpdHk6Ljk5fXRve29wYWNpdHk6MH19QGtleWZyYW1lcyBtZGMtY2lyY3VsYXItcHJvZ3Jlc3MtbGVmdC1zcGlue2Zyb217dHJhbnNmb3JtOnJvdGF0ZSgyNjVkZWcpfTUwJXt0cmFuc2Zvcm06cm90YXRlKDEzMGRlZyl9dG97dHJhbnNmb3JtOnJvdGF0ZSgyNjVkZWcpfX1Aa2V5ZnJhbWVzIG1kYy1jaXJjdWxhci1wcm9ncmVzcy1yaWdodC1zcGlue2Zyb217dHJhbnNmb3JtOnJvdGF0ZSgtMjY1ZGVnKX01MCV7dHJhbnNmb3JtOnJvdGF0ZSgtMTMwZGVnKX10b3t0cmFuc2Zvcm06cm90YXRlKC0yNjVkZWcpfX0ubWRjLWNpcmN1bGFyLXByb2dyZXNze2Rpc3BsYXk6aW5saW5lLWZsZXg7cG9zaXRpb246cmVsYXRpdmU7ZGlyZWN0aW9uOmx0cjtsaW5lLWhlaWdodDowO3RyYW5zaXRpb246b3BhY2l0eSAyNTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKX0ubWRjLWNpcmN1bGFyLXByb2dyZXNzX19kZXRlcm1pbmF0ZS1jb250YWluZXIsLm1kYy1jaXJjdWxhci1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZS1jaXJjbGUtZ3JhcGhpYywubWRjLWNpcmN1bGFyLXByb2dyZXNzX19pbmRldGVybWluYXRlLWNvbnRhaW5lciwubWRjLWNpcmN1bGFyLXByb2dyZXNzX19zcGlubmVyLWxheWVye3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Lm1kYy1jaXJjdWxhci1wcm9ncmVzc19fZGV0ZXJtaW5hdGUtY29udGFpbmVye3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKX0ubWRjLWNpcmN1bGFyLXByb2dyZXNzX19pbmRldGVybWluYXRlLWNvbnRhaW5lcntmb250LXNpemU6MDtsZXR0ZXItc3BhY2luZzowO3doaXRlLXNwYWNlOm5vd3JhcDtvcGFjaXR5OjB9Lm1kYy1jaXJjdWxhci1wcm9ncmVzc19fZGV0ZXJtaW5hdGUtY2lyY2xlLWdyYXBoaWMsLm1kYy1jaXJjdWxhci1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZS1jaXJjbGUtZ3JhcGhpY3tmaWxsOnJnYmEoMCwwLDAsMCl9Lm1kYy1jaXJjdWxhci1wcm9ncmVzc19fZGV0ZXJtaW5hdGUtY2lyY2xle3RyYW5zaXRpb246c3Ryb2tlLWRhc2hvZmZzZXQgNTAwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpfS5tZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX2dhcC1wYXRjaHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjQ3LjUlO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDo1JTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW59Lm1kYy1jaXJjdWxhci1wcm9ncmVzc19fZ2FwLXBhdGNoIC5tZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUtY2lyY2xlLWdyYXBoaWN7bGVmdDotOTAwJTt3aWR0aDoyMDAwJTt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9Lm1kYy1jaXJjdWxhci1wcm9ncmVzc19fY2lyY2xlLWNsaXBwZXJ7ZGlzcGxheTppbmxpbmUtZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDo1MCU7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVufS5tZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX2NpcmNsZS1jbGlwcGVyIC5tZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUtY2lyY2xlLWdyYXBoaWN7d2lkdGg6MjAwJX0ubWRjLWNpcmN1bGFyLXByb2dyZXNzX19jaXJjbGUtcmlnaHQgLm1kYy1jaXJjdWxhci1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZS1jaXJjbGUtZ3JhcGhpY3tsZWZ0Oi0xMDAlfS5tZGMtY2lyY3VsYXItcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUgLm1kYy1jaXJjdWxhci1wcm9ncmVzc19fZGV0ZXJtaW5hdGUtY29udGFpbmVye29wYWNpdHk6MH0ubWRjLWNpcmN1bGFyLXByb2dyZXNzLS1pbmRldGVybWluYXRlIC5tZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUtY29udGFpbmVye29wYWNpdHk6MX0ubWRjLWNpcmN1bGFyLXByb2dyZXNzLS1pbmRldGVybWluYXRlIC5tZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUtY29udGFpbmVye2FuaW1hdGlvbjptZGMtY2lyY3VsYXItcHJvZ3Jlc3MtY29udGFpbmVyLXJvdGF0ZSAxNTY4LjIzNTI5NDExNzZtcyBsaW5lYXIgaW5maW5pdGV9Lm1kYy1jaXJjdWxhci1wcm9ncmVzcy0taW5kZXRlcm1pbmF0ZSAubWRjLWNpcmN1bGFyLXByb2dyZXNzX19zcGlubmVyLWxheWVye2FuaW1hdGlvbjptZGMtY2lyY3VsYXItcHJvZ3Jlc3Mtc3Bpbm5lci1sYXllci1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aH0ubWRjLWNpcmN1bGFyLXByb2dyZXNzLS1pbmRldGVybWluYXRlIC5tZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX2NvbG9yLTF7YW5pbWF0aW9uOm1kYy1jaXJjdWxhci1wcm9ncmVzcy1zcGlubmVyLWxheWVyLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLG1kYy1jaXJjdWxhci1wcm9ncmVzcy1jb2xvci0xLWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGh9Lm1kYy1jaXJjdWxhci1wcm9ncmVzcy0taW5kZXRlcm1pbmF0ZSAubWRjLWNpcmN1bGFyLXByb2dyZXNzX19jb2xvci0ye2FuaW1hdGlvbjptZGMtY2lyY3VsYXItcHJvZ3Jlc3Mtc3Bpbm5lci1sYXllci1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCxtZGMtY2lyY3VsYXItcHJvZ3Jlc3MtY29sb3ItMi1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RofS5tZGMtY2lyY3VsYXItcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUgLm1kYy1jaXJjdWxhci1wcm9ncmVzc19fY29sb3ItM3thbmltYXRpb246bWRjLWNpcmN1bGFyLXByb2dyZXNzLXNwaW5uZXItbGF5ZXItcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsbWRjLWNpcmN1bGFyLXByb2dyZXNzLWNvbG9yLTMtZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aH0ubWRjLWNpcmN1bGFyLXByb2dyZXNzLS1pbmRldGVybWluYXRlIC5tZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX2NvbG9yLTR7YW5pbWF0aW9uOm1kYy1jaXJjdWxhci1wcm9ncmVzcy1zcGlubmVyLWxheWVyLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLG1kYy1jaXJjdWxhci1wcm9ncmVzcy1jb2xvci00LWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGh9Lm1kYy1jaXJjdWxhci1wcm9ncmVzcy0taW5kZXRlcm1pbmF0ZSAubWRjLWNpcmN1bGFyLXByb2dyZXNzX19jaXJjbGUtbGVmdCAubWRjLWNpcmN1bGFyLXByb2dyZXNzX19pbmRldGVybWluYXRlLWNpcmNsZS1ncmFwaGlje2FuaW1hdGlvbjptZGMtY2lyY3VsYXItcHJvZ3Jlc3MtbGVmdC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGh9Lm1kYy1jaXJjdWxhci1wcm9ncmVzcy0taW5kZXRlcm1pbmF0ZSAubWRjLWNpcmN1bGFyLXByb2dyZXNzX19jaXJjbGUtcmlnaHQgLm1kYy1jaXJjdWxhci1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZS1jaXJjbGUtZ3JhcGhpY3thbmltYXRpb246bWRjLWNpcmN1bGFyLXByb2dyZXNzLXJpZ2h0LXNwaW4gMTMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aH0ubWRjLWNpcmN1bGFyLXByb2dyZXNzLS1jbG9zZWR7b3BhY2l0eTowfS5tYXQtbWRjLXByb2dyZXNzLXNwaW5uZXJ7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW47bGluZS1oZWlnaHQ6MH0ubWF0LW1kYy1wcm9ncmVzcy1zcGlubmVyIC5tZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX2RldGVybWluYXRlLWNpcmNsZSwubWF0LW1kYy1wcm9ncmVzcy1zcGlubmVyIC5tZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUtY2lyY2xlLWdyYXBoaWN7c3Ryb2tlOnZhcigtLW1kYy1jaXJjdWxhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yLCB0cmFuc3BhcmVudCl9QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpey5tYXQtbWRjLXByb2dyZXNzLXNwaW5uZXIgLm1kYy1jaXJjdWxhci1wcm9ncmVzc19fZGV0ZXJtaW5hdGUtY2lyY2xlLC5tYXQtbWRjLXByb2dyZXNzLXNwaW5uZXIgLm1kYy1jaXJjdWxhci1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZS1jaXJjbGUtZ3JhcGhpY3tzdHJva2U6Q2FudmFzVGV4dH19QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpey5tYXQtbWRjLXByb2dyZXNzLXNwaW5uZXIgLm1kYy1jaXJjdWxhci1wcm9ncmVzcy0tZm91ci1jb2xvciAubWRjLWNpcmN1bGFyLXByb2dyZXNzX19jb2xvci0xIC5tZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUtY2lyY2xlLWdyYXBoaWN7c3Ryb2tlOkNhbnZhc1RleHR9fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKXsubWF0LW1kYy1wcm9ncmVzcy1zcGlubmVyIC5tZGMtY2lyY3VsYXItcHJvZ3Jlc3MtLWZvdXItY29sb3IgLm1kYy1jaXJjdWxhci1wcm9ncmVzc19fY29sb3ItMiAubWRjLWNpcmN1bGFyLXByb2dyZXNzX19pbmRldGVybWluYXRlLWNpcmNsZS1ncmFwaGlje3N0cm9rZTpDYW52YXNUZXh0fX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSwoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSl7Lm1hdC1tZGMtcHJvZ3Jlc3Mtc3Bpbm5lciAubWRjLWNpcmN1bGFyLXByb2dyZXNzLS1mb3VyLWNvbG9yIC5tZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX2NvbG9yLTMgLm1kYy1jaXJjdWxhci1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZS1jaXJjbGUtZ3JhcGhpY3tzdHJva2U6Q2FudmFzVGV4dH19QG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpey5tYXQtbWRjLXByb2dyZXNzLXNwaW5uZXIgLm1kYy1jaXJjdWxhci1wcm9ncmVzcy0tZm91ci1jb2xvciAubWRjLWNpcmN1bGFyLXByb2dyZXNzX19jb2xvci00IC5tZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUtY2lyY2xlLWdyYXBoaWN7c3Ryb2tlOkNhbnZhc1RleHR9fS5tYXQtbWRjLXByb2dyZXNzLXNwaW5uZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUsLm1hdC1tZGMtcHJvZ3Jlc3Mtc3Bpbm5lci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWRjLWNpcmN1bGFyLXByb2dyZXNzX19kZXRlcm1pbmF0ZS1jaXJjbGV7dHJhbnNpdGlvbjpub25lfS5tYXQtbWRjLXByb2dyZXNzLXNwaW5uZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1kYy1jaXJjdWxhci1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZS1jaXJjbGUtZ3JhcGhpYywubWF0LW1kYy1wcm9ncmVzcy1zcGlubmVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX3NwaW5uZXItbGF5ZXIsLm1hdC1tZGMtcHJvZ3Jlc3Mtc3Bpbm5lci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWRjLWNpcmN1bGFyLXByb2dyZXNzX19pbmRldGVybWluYXRlLWNvbnRhaW5lcnthbmltYXRpb246bm9uZX0ubWF0LW1kYy1wcm9ncmVzcy1zcGlubmVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tZGMtY2lyY3VsYXItcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUtY29udGFpbmVyIGNpcmNsZXtzdHJva2UtZGFzaGFycmF5OjAgIWltcG9ydGFudH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWRjLXByb2dyZXNzLXNwaW5uZXIgLm1kYy1jaXJjdWxhci1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZS1jaXJjbGUtZ3JhcGhpYywuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWRjLXByb2dyZXNzLXNwaW5uZXIgLm1kYy1jaXJjdWxhci1wcm9ncmVzc19fZGV0ZXJtaW5hdGUtY2lyY2xle3N0cm9rZTpjdXJyZW50Q29sb3I7c3Ryb2tlOkNhbnZhc1RleHR9Il0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksb2w9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0RlLGRuXX0pLG59KSgpLHdRPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5kaWFsb2dSZWY9ZX1jbG9zZVdpdGhvdXREaXNhYmxpbmcoKXt0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7c2hvdWxkRGlzYWJsZTohMX0pfWNsb3NlQW5kRGlzYWJsZSgpe3RoaXMuZGlhbG9nUmVmLmNsb3NlKHtzaG91bGREaXNhYmxlOiEwfSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoVmwpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJzYXZpbmctcGlucy1kaWFsb2ciXV0sZGVjbHM6MTEsdmFyczowLGNvbnN0czpbWzEsInRpdGxlIl0sWzEsImJvdHRvbS1idXR0b25zIl0sWyJtYXQtZmxhdC1idXR0b24iLCIiLDEsImNhbmNlbC1idXR0b24iLDMsImNsaWNrIl0sWyJtYXQtZmxhdC1idXR0b24iLCIiLDEsImRpc2FibGUtYnV0dG9uIiwzLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwiaDMiLDApLFQoMSwiRGlzYWJsZSBTYXZpbmcgUGlucz8iKSxnKCksZigyLCJwIiksVCgzLCIgRGlzYWJsaW5nIHNhdmluZyBwaW5zIHdpbGwgcmVtb3ZlIGxvY2FsbHkgc3RvcmVkIHBpbm5lZCBjYXJkIGRhdGEgYW5kIG5vIGxvbmdlciBhbGxvdyBwaW5uZWQgY2FyZHMgdG8gYmUgc2hhcmVkIGFjcm9zcyBtdWx0aXBsZSBleHBlcmltZW50cy4iKSxrKDQsImJyIiksVCg1LCJZb3UgY2FuIHJlLWVuYWJsZSB0aGUgZmVhdHVyZSBhbmQgcmUtcGluIGNhcmRzIGF0IGFueSB0aW1lLlxuIiksZygpLGYoNiwiZGl2IiwxKSg3LCJidXR0b24iLDIpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpLmNsb3NlV2l0aG91dERpc2FibGluZygpfSksVCg4LCIgQ2FuY2VsICIpLGcoKSxmKDksImJ1dHRvbiIsMyksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGkuY2xvc2VBbmREaXNhYmxlKCl9KSxUKDEwLCIgRGlzYWJsZSAiKSxnKCkoKSl9LGRlcGVuZGVuY2llczpba2ldLHN0eWxlczpbIi50aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE5cHg7Zm9udC13ZWlnaHQ6NTAwO21hcmdpbjowfS5ib3R0b20tYnV0dG9uc1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDttYXJnaW4tdG9wOjEwcHg7Z2FwOjEwcHh9LmJvdHRvbS1idXR0b25zW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfSJdLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCk7ZnVuY3Rpb24gdjFlKG4sdCl7aWYoMSZuJiYoZigwLCJiIiksVCgxKSxnKCkpLDImbil7bGV0IGU9dygpLiRpbXBsaWNpdDt2KDEpLFZlKCIiLGUuZGlzcGxheUFsaWFzLCI6Iil9fWZ1bmN0aW9uIHkxZShuLHQpe2lmKDEmbiYmKGYoMCwibWF0LW9wdGlvbiIsMikoMSwic3BhbiIsMyksUygyLHYxZSwyLDEsImIiLDQpLFQoMyksZygpKCkpLDImbil7bGV0IGU9dC4kaW1wbGljaXQ7YigidmFsdWUiLGUudmFsdWUpKCJkaXNhYmxlZCIsZS5kaXNhYmxlZCksdigxKSxqTSgidGl0bGUiLCIiLGUuZGlzcGxheUFsaWFzLCI6ICIsZS5kaXNwbGF5VGV4dCwiIiksdigxKSxiKCJuZ0lmIixlLmRpc3BsYXlBbGlhcyksdigxKSxWZSgiICIsZS5kaXNwbGF5VGV4dCwiICIpfX12YXIgU1E9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMudmFsdWU9IiIsdGhpcy5vcHRpb25zPVtdLHRoaXMuc2VsZWN0aW9uQ2hhbmdlPW5ldyBGfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJ0Yi1kcm9wZG93biJdXSxpbnB1dHM6e3ZhbHVlOiJ2YWx1ZSIsb3B0aW9uczoib3B0aW9ucyJ9LG91dHB1dHM6e3NlbGVjdGlvbkNoYW5nZToic2VsZWN0aW9uQ2hhbmdlIn0sZGVjbHM6Mix2YXJzOjMsY29uc3RzOltbMywidmFsdWUiLCJoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yIiwic2VsZWN0aW9uQ2hhbmdlIl0sWzMsInZhbHVlIiwiZGlzYWJsZWQiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJ2YWx1ZSIsImRpc2FibGVkIl0sWzEsIm9wdGlvbi1jb250ZW50IiwzLCJ0aXRsZSJdLFs0LCJuZ0lmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJtYXQtc2VsZWN0IiwwKSxBKCJzZWxlY3Rpb25DaGFuZ2UiLGZ1bmN0aW9uKG8pe3JldHVybiBpLnNlbGVjdGlvbkNoYW5nZS5lbWl0KG8udmFsdWUpfSksUygxLHkxZSw0LDYsIm1hdC1vcHRpb24iLDEpLGcoKSksMiZlJiYoYigidmFsdWUiLGkudmFsdWUpKCJoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yIiwhMCksdigxKSxiKCJuZ0Zvck9mIixpLm9wdGlvbnMpKX0sZGVwZW5kZW5jaWVzOltubixOZSxXdSxqYV0sc3R5bGVzOlsibWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjOGU5OGEzO2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjZweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDpub3JtYWx9bWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5tYXQtbWRjLXNlbGVjdC1hcnJvdy13cmFwcGVye2hlaWdodDoxMnB4fW1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVdOmZvY3Vze291dGxpbmUtY29sb3I6LXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO291dGxpbmUtc3R5bGU6YXV0b30gIC5tYXQtbWRjLXNlbGVjdC1wYW5lbHttYXgtd2lkdGg6NzB2d30gIG1hdC1vcHRpb24ubWF0LW1kYy1vcHRpb257bWluLWhlaWdodDozMnB4O2ZvbnQtc2l6ZToxMnB4fSJdfSksbn0pKCksRVE9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMub25DaGVja2JveFRvZ2dsZWQ9bmV3IEZ9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInNhdmluZy1waW5zLWNoZWNrYm94Il1dLGlucHV0czp7aXNDaGVja2VkOiJpc0NoZWNrZWQifSxvdXRwdXRzOntvbkNoZWNrYm94VG9nZ2xlZDoib25DaGVja2JveFRvZ2dsZWQifSxmZWF0dXJlczpbVnQoW3twcm92aWRlOloyLHVzZVZhbHVlOntjbGlja0FjdGlvbjoibm9vcCJ9fV0pXSxkZWNsczo0LHZhcnM6MSxjb25zdHM6W1sxLCJzYXZpbmctcGlucy1jaGVja2JveCJdLFsiY29sb3IiLCJwcmltYXJ5IiwzLCJjaGVja2VkIiwiY2xpY2siXSxbInN2Z0ljb24iLCJoZWxwX291dGxpbmVfMjRweCIsInRpdGxlIiwiV2hlbiBzYXZpbmcgcGlucyBhcmUgZW5hYmxlZCwgcGlubmVkIGNhcmRzIHdpbGwgYmUgdmlzaWJsZSBhY3Jvc3MgbXVsdGlwbGUgZXhwZXJpbWVudHMuIiwxLCJpbmZvIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJkaXYiLDApKDEsIm1hdC1jaGVja2JveCIsMSksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25DaGVja2JveFRvZ2dsZWQuZW1pdCgpfSksVCgyLCJFbmFibGUgc2F2aW5nIHBpbnMgKFNjYWxhcnMgb25seSkiKSxnKCksaygzLCJtYXQtaWNvbiIsMiksZygpKSwyJmUmJih2KDEpLGIoImNoZWNrZWQiLGkuaXNDaGVja2VkKSl9LGRlcGVuZGVuY2llczpbeHMsYm5dLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17Y29sb3I6IzYxNjE2MTtmb250LXNpemU6MTJweH1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9bWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tbGVmdDotMTFweH1tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVdICAgICBsYWJlbHtjb2xvcjojNjE2MTYxO2ZvbnQtc2l6ZToxMnB4O2xldHRlci1zcGFjaW5nOm5vcm1hbDtwYWRkaW5nLWxlZnQ6MHB4O3doaXRlLXNwYWNlOm5vd3JhcH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBtYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVdICAgICBsYWJlbCwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgbWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgbGFiZWx7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9LnNhdmluZy1waW5zLWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS5zYXZpbmctcGlucy1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV0gICAuaW5mb1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjE1cHg7bWFyZ2luLWxlZnQ6NXB4O3dpZHRoOjE1cHg7bWluLXdpZHRoOjE1cHh9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxNMWU9ZnVuY3Rpb24obil7cmV0dXJueyJjb2x1bW4tZWRpdC1tZW51LXRvZ2dsZSI6ITAsInRvZ2dsZS1vcGVuZWQiOm59fTtmdW5jdGlvbiB3MWUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJidXR0b24iLDMzKSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gbmUoZSksaWUodygpLm9uU2xpZGVPdXRUb2dnbGVkLmVtaXQoKSl9KSxrKDEsIm1hdC1pY29uIiwzNCksVCgyLCIgRWRpdCBUYWJsZSBDb2x1bW5zICIpLGcoKX1pZigyJm4pe2xldCBlPXcoKTtiKCJuZ0NsYXNzIixVbigxLE0xZSxlLmlzU2xpZGVPdXRNZW51T3BlbikpfX1mdW5jdGlvbiBTMWUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJkaXYiLDM1KSgxLCJzYXZpbmctcGlucy1jaGVja2JveCIsMzYpLEEoIm9uQ2hlY2tib3hUb2dnbGVkIixmdW5jdGlvbigpe25lKGUpO2xldCByPXcoKTtyZXR1cm4gaWUoci5vbkVuYWJsZVNhdmluZ1BpbnNUb2dnbGVkLmVtaXQoci5pc1NhdmluZ1BpbnNFbmFibGVkKSl9KSxnKCkoKX1pZigyJm4pe2xldCBlPXcoKTt2KDEpLGIoImlzQ2hlY2tlZCIsZS5pc1NhdmluZ1BpbnNFbmFibGVkKX19ZnVuY3Rpb24gRTFlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwic2VjdGlvbiIsMzcpKDEsImgzIiwxKSxUKDIsIkltYWdlcyIpLGcoKSxmKDMsImRpdiIsMzgpKDQsImRpdiIsMzkpLFQoNSwiQnJpZ2h0bmVzcyIpLGcoKSxmKDYsImRpdiIsMTMpKDcsIm1hdC1zbGlkZXIiLDQwKSg4LCJpbnB1dCIsMTUpLEEoInZhbHVlQ2hhbmdlIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLmltYWdlQnJpZ2h0bmVzc1NsaWRlckNoYW5nZWQkLmVtaXQocikpfSksZygpKCksZig5LCJidXR0b24iLDQxKSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gbmUoZSksaWUodygpLmltYWdlQnJpZ2h0bmVzc1Jlc2V0LmVtaXQoKSl9KSxrKDEwLCJtYXQtaWNvbiIsMTcpLGcoKSgpKCksZigxMSwiZGl2Iiw0MikoMTIsImRpdiIsNDMpLFQoMTMsIkNvbnRyYXN0IiksZygpLGYoMTQsImRpdiIsMTMpKDE1LCJtYXQtc2xpZGVyIiw0NCkoMTYsImlucHV0IiwxNSksQSgidmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkuaW1hZ2VDb250cmFzdFNsaWRlckNoYW5nZWQkLmVtaXQocikpfSksZygpKCksZigxNywiYnV0dG9uIiw0NSksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIG5lKGUpLGllKHcoKS5pbWFnZUNvbnRyYXN0UmVzZXQuZW1pdCgpKX0pLGsoMTgsIm1hdC1pY29uIiwxNyksZygpKCkoKSxmKDE5LCJkaXYiLDQ2KSgyMCwibWF0LWNoZWNrYm94IiwyNyksQSgiY2hhbmdlIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLmltYWdlU2hvd0FjdHVhbFNpemVDaGFuZ2VkLmVtaXQoci5jaGVja2VkKSl9KSxUKDIxLCJTaG93IGFjdHVhbCBpbWFnZSBzaXplIiksZygpKCkoKX1pZigyJm4pe2xldCBlPXcoKTt2KDcpLGIoIm1heCIsMmUzKSgibWluIiwwKSgic3RlcCIsMTApKCJkaXNwbGF5V2l0aCIsZS5mb3JtYXRNaWxsaVRvWmVyb3RoKSx2KDEpLGIoInZhbHVlIixlLmltYWdlQnJpZ2h0bmVzc0luTWlsbGkpLHYoNyksYigibWF4Iiw1ZTMpKCJtaW4iLDApKCJzdGVwIiwxMCkoImRpc3BsYXlXaXRoIixlLmZvcm1hdE1pbGxpVG9aZXJvdGgpLHYoMSksYigidmFsdWUiLGUuaW1hZ2VDb250cmFzdEluTWlsbGkpLHYoNCksYigiY2hlY2tlZCIsZS5pbWFnZVNob3dBY3R1YWxTaXplKX19dmFyIERRPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5sb2NhbGU9ZSx0aGlzLmdsb2JhbFBpbnNGZWF0dXJlRW5hYmxlZD0hMSx0aGlzLmxpbmtlZFRpbWVUb2dnbGVkPW5ldyBGLHRoaXMuc3RlcFNlbGVjdG9yVG9nZ2xlZD1uZXcgRix0aGlzLnJhbmdlU2VsZWN0aW9uVG9nZ2xlZD1uZXcgRix0aGlzLm9uU2xpZGVPdXRUb2dnbGVkPW5ldyBGLHRoaXMub25FbmFibGVTYXZpbmdQaW5zVG9nZ2xlZD1uZXcgRix0aGlzLlRvb2x0aXBTb3J0RHJvcGRvd25PcHRpb25zPVt7dmFsdWU6b28uQUxQSEFCRVRJQ0FMLGRpc3BsYXlUZXh0OiJBbHBoYWJldGljYWwifSx7dmFsdWU6b28uQVNDRU5ESU5HLGRpc3BsYXlUZXh0OiJBc2NlbmRpbmcifSx7dmFsdWU6b28uREVTQ0VORElORyxkaXNwbGF5VGV4dDoiRGVzY2VuZGluZyJ9LHt2YWx1ZTpvby5ORUFSRVNULGRpc3BsYXlUZXh0OiJOZWFyZXN0IFBpeGVsIn0se3ZhbHVlOm9vLk5FQVJFU1RfWSxkaXNwbGF5VGV4dDoiTmVhcmVzdCBZIn1dLHRoaXMudG9vbHRpcFNvcnRDaGFuZ2VkPW5ldyBGLHRoaXMuaWdub3JlT3V0bGllcnNDaGFuZ2VkPW5ldyBGLHRoaXMuWEF4aXNUeXBlPVBpLHRoaXMuWEF4aXNUeXBlRHJvcGRvd25PcHRpb25zPVt7dmFsdWU6UGkuU1RFUCxkaXNwbGF5VGV4dDoiU3RlcCJ9LHt2YWx1ZTpQaS5SRUxBVElWRSxkaXNwbGF5VGV4dDoiUmVsYXRpdmUifSx7dmFsdWU6UGkuV0FMTF9USU1FLGRpc3BsYXlUZXh0OiJXYWxsIn1dLHRoaXMueEF4aXNUeXBlQ2hhbmdlZD1uZXcgRix0aGlzLk1BWF9DQVJEX1dJRFRIX1NMSURFUl9WQUxVRT03MzUsdGhpcy5NSU5fQ0FSRF9XSURUSF9TTElERVJfVkFMVUU9MzM1LHRoaXMuY2FyZFdpZHRoU2xpZGVyQ2hhbmdlZCQ9bmV3IEYsdGhpcy5jYXJkV2lkdGhDaGFuZ2VkPXRoaXMuY2FyZFdpZHRoU2xpZGVyQ2hhbmdlZCQucGlwZShuYygyNTApKSx0aGlzLmNhcmRXaWR0aFJlc2V0PW5ldyBGLHRoaXMuSGlzdG9ncmFtTW9kZURyb3Bkb3duT3B0aW9ucz1be3ZhbHVlOlNyLk9GRlNFVCxkaXNwbGF5VGV4dDoiT2Zmc2V0In0se3ZhbHVlOlNyLk9WRVJMQVksZGlzcGxheVRleHQ6Ik92ZXJsYXkifV0sdGhpcy5oaXN0b2dyYW1Nb2RlQ2hhbmdlZD1uZXcgRix0aGlzLk1BWF9TTU9PVEhJTkdfVkFMVUU9Ljk5OSx0aGlzLk1BWF9TTU9PVEhJTkdfU0xJREVSX1ZBTFVFPS45OSx0aGlzLnNjYWxhclNtb290aGluZ0NvbnRyb2xDaGFuZ2VkJD1uZXcgRix0aGlzLnNjYWxhclNtb290aGluZz0xMCx0aGlzLnNjYWxhclNtb290aGluZ0NoYW5nZWQ9dGhpcy5zY2FsYXJTbW9vdGhpbmdDb250cm9sQ2hhbmdlZCQucGlwZShuYygyNTApKSx0aGlzLnNjYWxhclBhcnRpdGlvblhUb2dnbGVkPW5ldyBGLHRoaXMuaW1hZ2VCcmlnaHRuZXNzU2xpZGVyQ2hhbmdlZCQ9bmV3IEYsdGhpcy5pbWFnZUJyaWdodG5lc3NJbk1pbGxpQ2hhbmdlZD10aGlzLmltYWdlQnJpZ2h0bmVzc1NsaWRlckNoYW5nZWQkLnBpcGUobmMoMjUwKSksdGhpcy5pbWFnZUJyaWdodG5lc3NSZXNldD1uZXcgRix0aGlzLmltYWdlQ29udHJhc3RTbGlkZXJDaGFuZ2VkJD1uZXcgRix0aGlzLmltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZD10aGlzLmltYWdlQ29udHJhc3RTbGlkZXJDaGFuZ2VkJC5waXBlKG5jKDI1MCkpLHRoaXMuaW1hZ2VDb250cmFzdFJlc2V0PW5ldyBGLHRoaXMuaW1hZ2VTaG93QWN0dWFsU2l6ZUNoYW5nZWQ9bmV3IEZ9b25TY2FsYXJTbW9vdGhpbmdJbnB1dChlKXtsZXQgaT1lLnRhcmdldDtpZighaS52YWx1ZSlyZXR1cm47bGV0IHI9TWF0aC5taW4oTWF0aC5tYXgoMCxwYXJzZUZsb2F0KGkudmFsdWUpKSwuOTk5KTtyIT09cGFyc2VGbG9hdChpLnZhbHVlKSYmKGkudmFsdWU9U3RyaW5nKHIpKSx0aGlzLnNjYWxhclNtb290aGluZ0NvbnRyb2xDaGFuZ2VkJC5lbWl0KHIpfWZvcm1hdE1pbGxpVG9aZXJvdGgoZSl7cmV0dXJuIGVPKGUvMWUzLHRoaXMubG9jYWxlfHwiZW4tVVMiLCIxLjAtMiIpfWdldExpbmtlZFRpbWVTZWxlY3Rpb25TdGFydFN0ZXAoKXtyZXR1cm4gdGhpcy5pc0xpbmtlZFRpbWVFbmFibGVkfHxudWxsPT09dGhpcy5saW5rZWRUaW1lU2VsZWN0aW9ufHxudWxsIT09dGhpcy5saW5rZWRUaW1lU2VsZWN0aW9uLmVuZD8iIjp0aGlzLmxpbmtlZFRpbWVTZWxlY3Rpb24uc3RhcnQuc3RlcH1pc0F4aXNUeXBlU3RlcCgpe3JldHVybiB0aGlzLnhBeGlzVHlwZT09PVBpLlNURVB9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoYWQpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtZXRyaWNzLWRhc2hib2FyZC1zZXR0aW5ncy1jb21wb25lbnQiXV0saW5wdXRzOntpc0xpbmtlZFRpbWVFbmFibGVkOiJpc0xpbmtlZFRpbWVFbmFibGVkIixpc1NjYWxhclN0ZXBTZWxlY3RvckVuYWJsZWQ6ImlzU2NhbGFyU3RlcFNlbGVjdG9yRW5hYmxlZCIsaXNTY2FsYXJTdGVwU2VsZWN0b3JSYW5nZUVuYWJsZWQ6ImlzU2NhbGFyU3RlcFNlbGVjdG9yUmFuZ2VFbmFibGVkIixpc1NjYWxhckNvbHVtbkN1c3RvbWl6YXRpb25FbmFibGVkOiJpc1NjYWxhckNvbHVtbkN1c3RvbWl6YXRpb25FbmFibGVkIixsaW5rZWRUaW1lU2VsZWN0aW9uOiJsaW5rZWRUaW1lU2VsZWN0aW9uIixzdGVwTWluTWF4OiJzdGVwTWluTWF4Iixpc1NsaWRlT3V0TWVudU9wZW46ImlzU2xpZGVPdXRNZW51T3BlbiIsaXNTYXZpbmdQaW5zRW5hYmxlZDoiaXNTYXZpbmdQaW5zRW5hYmxlZCIsZ2xvYmFsUGluc0ZlYXR1cmVFbmFibGVkOiJnbG9iYWxQaW5zRmVhdHVyZUVuYWJsZWQiLGlzSW1hZ2VTdXBwb3J0RW5hYmxlZDoiaXNJbWFnZVN1cHBvcnRFbmFibGVkIix0b29sdGlwU29ydDoidG9vbHRpcFNvcnQiLGlnbm9yZU91dGxpZXJzOiJpZ25vcmVPdXRsaWVycyIseEF4aXNUeXBlOiJ4QXhpc1R5cGUiLGNhcmRNaW5XaWR0aDoiY2FyZE1pbldpZHRoIixoaXN0b2dyYW1Nb2RlOiJoaXN0b2dyYW1Nb2RlIixzY2FsYXJTbW9vdGhpbmc6InNjYWxhclNtb290aGluZyIsc2NhbGFyUGFydGl0aW9uWDoic2NhbGFyUGFydGl0aW9uWCIsaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaToiaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaSIsaW1hZ2VDb250cmFzdEluTWlsbGk6ImltYWdlQ29udHJhc3RJbk1pbGxpIixpbWFnZVNob3dBY3R1YWxTaXplOiJpbWFnZVNob3dBY3R1YWxTaXplIn0sb3V0cHV0czp7bGlua2VkVGltZVRvZ2dsZWQ6ImxpbmtlZFRpbWVUb2dnbGVkIixzdGVwU2VsZWN0b3JUb2dnbGVkOiJzdGVwU2VsZWN0b3JUb2dnbGVkIixyYW5nZVNlbGVjdGlvblRvZ2dsZWQ6InJhbmdlU2VsZWN0aW9uVG9nZ2xlZCIsb25TbGlkZU91dFRvZ2dsZWQ6Im9uU2xpZGVPdXRUb2dnbGVkIixvbkVuYWJsZVNhdmluZ1BpbnNUb2dnbGVkOiJvbkVuYWJsZVNhdmluZ1BpbnNUb2dnbGVkIix0b29sdGlwU29ydENoYW5nZWQ6InRvb2x0aXBTb3J0Q2hhbmdlZCIsaWdub3JlT3V0bGllcnNDaGFuZ2VkOiJpZ25vcmVPdXRsaWVyc0NoYW5nZWQiLHhBeGlzVHlwZUNoYW5nZWQ6InhBeGlzVHlwZUNoYW5nZWQiLGNhcmRXaWR0aENoYW5nZWQ6ImNhcmRXaWR0aENoYW5nZWQiLGNhcmRXaWR0aFJlc2V0OiJjYXJkV2lkdGhSZXNldCIsaGlzdG9ncmFtTW9kZUNoYW5nZWQ6Imhpc3RvZ3JhbU1vZGVDaGFuZ2VkIixzY2FsYXJTbW9vdGhpbmdDaGFuZ2VkOiJzY2FsYXJTbW9vdGhpbmdDaGFuZ2VkIixzY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZDoic2NhbGFyUGFydGl0aW9uWFRvZ2dsZWQiLGltYWdlQnJpZ2h0bmVzc0luTWlsbGlDaGFuZ2VkOiJpbWFnZUJyaWdodG5lc3NJbk1pbGxpQ2hhbmdlZCIsaW1hZ2VCcmlnaHRuZXNzUmVzZXQ6ImltYWdlQnJpZ2h0bmVzc1Jlc2V0IixpbWFnZUNvbnRyYXN0SW5NaWxsaUNoYW5nZWQ6ImltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZCIsaW1hZ2VDb250cmFzdFJlc2V0OiJpbWFnZUNvbnRyYXN0UmVzZXQiLGltYWdlU2hvd0FjdHVhbFNpemVDaGFuZ2VkOiJpbWFnZVNob3dBY3R1YWxTaXplQ2hhbmdlZCJ9LGRlY2xzOjU3LHZhcnM6MjksY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQsZSxpO3JldHVybiB0PSRsb2NhbGl6ZWA6QSBidXR0b24gdG8gcmVzZXQgdGhlIGNhcmQgd2lkdGggc2V0dGluZ+KQn2NjZGM5NmIwMDNmYmJhOTBkYjdhNjk1OWI1YjI2ZTNjYzU4ZjdkODDikJ81MjIzMTExMDQ3OTY4MTAyNDY2OlJlc2V0IGNhcmQgd2lkdGhgLGU9JGxvY2FsaXplYDpBIGJ1dHRvbiB0byByZXNldCB0aGUgaW1hZ2UgYnJpZ2h0bmVzcyBzZXR0aW5n4pCfYzQ4MmIzYTQ3ZWEwOTc1ZmE4YmUwMWFmYjNmYmVjOWI3NjYyOGJkN+KQnzExODkxNjE4NTcyNDAzNzgzOTU6UmVzZXQgYnJpZ2h0bmVzc2AsaT0kbG9jYWxpemVgOkEgYnV0dG9uIHRvIHJlc2V0IHRoZSBpbWFnZSBjb250cmFzdCBzZXR0aW5n4pCfZWQ3MTJhOGI5MjcwNDFiZTE1MjUyYjI5ZWI1MjFlYmIxMzc0YmFkOOKQnzUzNzA3MDMzNDI5MjM2MTE5NTU6UmVzZXQgY29udHJhc3RgLFtbMSwiZ2VuZXJhbCJdLFsxLCJzZWN0aW9uLXRpdGxlIl0sWzEsImNvbnRyb2wtcm93IiwieC1heGlzLXR5cGUiXSxbImlkIiwieC1heGlzLXR5cGUtbGFiZWwiLDEsImNvbnRyb2wtbmFtZSJdLFszLCJ2YWx1ZSIsIm9wdGlvbnMiLCJzZWxlY3Rpb25DaGFuZ2UiXSxbMSwiY29udHJvbC1yb3ciLCJzY2FsYXJzLXN0ZXAtc2VsZWN0b3IiLDMsInRpdGxlIl0sWzMsImNoZWNrZWQiLCJkaXNhYmxlZCIsImNoYW5nZSJdLFsxLCJpbmRlbnQiXSxbMSwiaW5kZW50IiwicmFuZ2Utc2VsZWN0aW9uIl0sWzEsImNvbnRyb2wtcm93IiwibGlua2VkLXRpbWUiLCJpbmRlbnQiXSxbIm1hdC1idXR0b24iLCIiLDMsIm5nQ2xhc3MiLCJjbGljayIsNCwibmdJZiJdLFsxLCJjb250cm9sLXJvdyIsImNhcmQtd2lkdGgiXSxbImlkIiwiY2FyZC13aWR0aC1sYWJlbCIsMSwiY29udHJvbC1uYW1lIl0sWzEsInNsaWRlci1yb3ciXSxbImFyaWEtbGFiZWxsZWRieSIsImNhcmQtd2lkdGgtbGFiZWwiLCJjb2xvciIsInByaW1hcnkiLDMsIm1heCIsIm1pbiIsInN0ZXAiXSxbIm1hdFNsaWRlclRodW1iIiwiIiwzLCJ2YWx1ZSIsInZhbHVlQ2hhbmdlIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIix0LCJ0aXRsZSIsIlJlc2V0IGNhcmQgd2lkdGgiLDEsInJlc2V0LWJ1dHRvbiIsMywiY2xpY2siXSxbInN2Z0ljb24iLCJzZXR0aW5nc19iYWNrdXBfcmVzdG9yZV8yNHB4Il0sWyJjbGFzcyIsImNvbnRyb2wtcm93IHNhdmluZy1waW5zIiw0LCJuZ0lmIl0sWzEsInNjYWxhcnMiXSxbMSwiY29udHJvbC1yb3ciLCJzY2FsYXJzLXNtb290aGluZyJdLFsiaWQiLCJzY2FsYXJzLXNtb290aGluZy1sYWJlbCIsMSwiY29udHJvbC1uYW1lIl0sWyJhcmlhLWxhYmVsbGVkYnkiLCJzY2FsYXJzLXNtb290aGluZy1sYWJlbCIsImNvbG9yIiwicHJpbWFyeSIsImRpc2NyZXRlIiwiIiwzLCJtYXgiLCJtaW4iLCJzdGVwIl0sWyJhcmlhLWxhYmVsbGVkYnkiLCJzY2FsYXJzLXNtb290aGluZy1sYWJlbCIsInR5cGUiLCJudW1iZXIiLCJtaW4iLCIwIiwic3RlcCIsIjAuMDAxIiwxLCJzbGlkZXItaW5wdXQiLDMsIm1heCIsInZhbHVlIiwiaW5wdXQiXSxbMSwiY29udHJvbC1yb3ciLCJ0b29sdGlwLXNvcnQiXSxbMSwiY29udHJvbC1uYW1lIl0sWzEsImNvbnRyb2wtcm93Iiwic2NhbGFycy1pZ25vcmUtb3V0bGllcnMiXSxbMywiY2hlY2tlZCIsImNoYW5nZSJdLFsxLCJjb250cm9sLXJvdyIsInNjYWxhcnMtcGFydGl0aW9uLXgiXSxbInN2Z0ljb24iLCJoZWxwX291dGxpbmVfMjRweCIsInRpdGxlIiwiTm9uLW1vbm90b25pYyBzdGVwcyBjYW4gb2NjdXIgd2hlbiByZXVzaW5nIGEgbG9nZGlyIHdpdGggbXVsdGlwbGUgc3VtbWFyeSB3cml0ZXJzIGFuZCBvdmVybGFwcGluZyBzdGVwcy4gTGluZSBjaGFydHMsIHdpdGhvdXQgdGhpcyBvcHRpb24gZW5hYmxlZCwgY2FuIGFwcGVhciB6aWcgemFnZ2VkLiBUaGlzIGlzIGNvbW1vbiB3aGVuIHJlc3RhcnRpbmcgZnJvbSBhIGNoZWNrcG9pbnQuXG5cbldoZW4gZW5hYmxlZCwgYSBub24tbW9ub3RvbmljIHRpbWUgc2VyaWVzIGNvbXBvc2VkIG9mIE4gbW9ub3RvbmljIHBpZWNlcyB3aWxsIGJlIHNob3duIGFzIE4gbW9ub3RvbmljIGxpbmVzLiIsMSwiaW5mbyJdLFsxLCJIaXN0b2dyYW1zIl0sWzEsImNvbnRyb2wtcm93IiwiaGlzdG9ncmFtLW1vZGUiXSxbImNsYXNzIiwiaW1hZ2UiLDQsIm5nSWYiXSxbIm1hdC1idXR0b24iLCIiLDMsIm5nQ2xhc3MiLCJjbGljayJdLFsic3ZnSWNvbiIsImVkaXRfMjRweCJdLFsxLCJjb250cm9sLXJvdyIsInNhdmluZy1waW5zIl0sWzMsImlzQ2hlY2tlZCIsIm9uQ2hlY2tib3hUb2dnbGVkIl0sWzEsImltYWdlIl0sWzEsImNvbnRyb2wtcm93IiwiaW1hZ2UtYnJpZ2h0bmVzcyJdLFsiaWQiLCJpbWFnZS1icmlnaHRuZXNzLWxhYmVsIiwxLCJjb250cm9sLW5hbWUiXSxbImFyaWEtbGFiZWxsZWRieSIsImltYWdlLWJyaWdodG5lc3MtbGFiZWwiLCJjb2xvciIsInByaW1hcnkiLCJkaXNjcmV0ZSIsIiIsMywibWF4IiwibWluIiwic3RlcCIsImRpc3BsYXlXaXRoIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIixlLCJ0aXRsZSIsIlJlc2V0IGJyaWdodG5lc3MiLDEsInJlc2V0LWJ1dHRvbiIsMywiY2xpY2siXSxbMSwiY29udHJvbC1yb3ciLCJpbWFnZS1jb250cmFzdCJdLFsiaWQiLCJpbWFnZS1jb25zdHJhc3QtbGFiZWwiLDEsImNvbnRyb2wtbmFtZSJdLFsiYXJpYS1sYWJlbGxlZGJ5IiwiaW1hZ2UtY29uc3RyYXN0LWxhYmVsIiwiY29sb3IiLCJwcmltYXJ5IiwiZGlzY3JldGUiLCIiLDMsIm1heCIsIm1pbiIsInN0ZXAiLCJkaXNwbGF5V2l0aCJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsaSwidGl0bGUiLCJSZXNldCBjb250cmFzdCIsMSwicmVzZXQtYnV0dG9uIiwzLCJjbGljayJdLFsxLCJjb250cm9sLXJvdyIsImltYWdlLXNob3ctYWN0dWFsLXNpemUiXV19LHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJzZWN0aW9uIiwwKSgxLCJoMyIsMSksVCgyLCJHZW5lcmFsIiksZygpLGYoMywiZGl2IiwyKSg0LCJkaXYiLDMpLFQoNSwiSG9yaXpvbnRhbCBBeGlzIiksZygpLGYoNiwidGItZHJvcGRvd24iLDQpLEEoInNlbGVjdGlvbkNoYW5nZSIsZnVuY3Rpb24obyl7cmV0dXJuIGkueEF4aXNUeXBlQ2hhbmdlZC5lbWl0KG8pfSksZygpKCksZig3LCJkaXYiLDUpKDgsIm1hdC1jaGVja2JveCIsNiksQSgiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBpLnN0ZXBTZWxlY3RvclRvZ2dsZWQuZW1pdCgpfSksVCg5LCJFbmFibGUgc3RlcCBzZWxlY3Rpb24gYW5kIGRhdGEgdGFibGUgIiksZygpLGYoMTAsInNwYW4iLDcpLFQoMTEsIihTY2FsYXJzIG9ubHkpIiksZygpLGYoMTIsImRpdiIsOCkoMTMsIm1hdC1jaGVja2JveCIsNiksQSgiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBpLnJhbmdlU2VsZWN0aW9uVG9nZ2xlZC5lbWl0KCl9KSxUKDE0LCJFbmFibGUgUmFuZ2UgU2VsZWN0aW9uICIpLGcoKSgpLGYoMTUsImRpdiIsOSkoMTYsIm1hdC1jaGVja2JveCIsNiksQSgiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBpLmxpbmtlZFRpbWVUb2dnbGVkLmVtaXQoKX0pLFQoMTcpLGcoKSgpLFMoMTgsdzFlLDMsMywiYnV0dG9uIiwxMCksZygpLGYoMTksImRpdiIsMTEpKDIwLCJkaXYiLDEyKSxUKDIxLCJDYXJkIFdpZHRoIiksZygpLGYoMjIsImRpdiIsMTMpKDIzLCJtYXQtc2xpZGVyIiwxNCkoMjQsImlucHV0IiwxNSksQSgidmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKG8pe3JldHVybiBpLmNhcmRXaWR0aFNsaWRlckNoYW5nZWQkLmVtaXQobyl9KSxnKCkoKSxmKDI1LCJidXR0b24iLDE2KSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaS5jYXJkV2lkdGhSZXNldC5lbWl0KCl9KSxrKDI2LCJtYXQtaWNvbiIsMTcpLGcoKSgpKCksUygyNyxTMWUsMiwxLCJkaXYiLDE4KSxnKCksZigyOCwic2VjdGlvbiIsMTkpKDI5LCJoMyIsMSksVCgzMCwiU2NhbGFycyIpLGcoKSxmKDMxLCJkaXYiLDIwKSgzMiwiZGl2IiwyMSksVCgzMywiU21vb3RoaW5nIiksZygpLGYoMzQsImRpdiIsMTMpKDM1LCJtYXQtc2xpZGVyIiwyMikoMzYsImlucHV0IiwxNSksQSgidmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKG8pe3JldHVybiBpLnNjYWxhclNtb290aGluZ0NvbnRyb2xDaGFuZ2VkJC5lbWl0KG8pfSksZygpKCksZigzNywiaW5wdXQiLDIzKSxBKCJpbnB1dCIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25TY2FsYXJTbW9vdGhpbmdJbnB1dChvKX0pLGcoKSgpKCksZigzOCwiZGl2IiwyNCkoMzksImRpdiIsMjUpLFQoNDAsIlRvb2x0aXAgc29ydGluZyBtZXRob2QiKSxnKCksZig0MSwidGItZHJvcGRvd24iLDQpLEEoInNlbGVjdGlvbkNoYW5nZSIsZnVuY3Rpb24obyl7cmV0dXJuIGkudG9vbHRpcFNvcnRDaGFuZ2VkLmVtaXQobyl9KSxnKCkoKSxmKDQyLCJkaXYiLDI2KSg0MywibWF0LWNoZWNrYm94IiwyNyksQSgiY2hhbmdlIixmdW5jdGlvbihvKXtyZXR1cm4gaS5pZ25vcmVPdXRsaWVyc0NoYW5nZWQuZW1pdChvLmNoZWNrZWQpfSksVCg0NCwiSWdub3JlIG91dGxpZXJzIGluIGNoYXJ0IHNjYWxpbmciKSxnKCkoKSxmKDQ1LCJkaXYiLDI4KSg0NiwibWF0LWNoZWNrYm94IiwyNyksQSgiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBpLnNjYWxhclBhcnRpdGlvblhUb2dnbGVkLmVtaXQoKX0pLFQoNDcsIlBhcnRpdGlvbiBub24tbW9ub3RvbmljIFggYXhpcyIpLGcoKSxrKDQ4LCJtYXQtaWNvbiIsMjkpLGcoKSgpLGYoNDksInNlY3Rpb24iLDMwKSg1MCwiaDMiLDEpLFQoNTEsIkhpc3RvZ3JhbXMiKSxnKCksZig1MiwiZGl2IiwzMSkoNTMsImRpdiIsMjUpLFQoNTQsIk1vZGUiKSxnKCksZig1NSwidGItZHJvcGRvd24iLDQpLEEoInNlbGVjdGlvbkNoYW5nZSIsZnVuY3Rpb24obyl7cmV0dXJuIGkuaGlzdG9ncmFtTW9kZUNoYW5nZWQuZW1pdChvKX0pLGcoKSgpKCksUyg1NixFMWUsMjIsMTEsInNlY3Rpb24iLDMyKSksMiZlJiYodig2KSxiKCJ2YWx1ZSIsaS54QXhpc1R5cGUpKCJvcHRpb25zIixpLlhBeGlzVHlwZURyb3Bkb3duT3B0aW9ucyksdigxKSxiKCJ0aXRsZSIsaS5pc0F4aXNUeXBlU3RlcCgpPyIiOiJPbmx5IGF2YWlsYWJsZSB3aGVuIEhvcml6b250YWwgQXhpcyBpcyBzZXQgdG8gc3RlcCIpLHYoMSksYigiY2hlY2tlZCIsaS5pc1NjYWxhclN0ZXBTZWxlY3RvckVuYWJsZWQpKCJkaXNhYmxlZCIsIWkuaXNBeGlzVHlwZVN0ZXAoKSksdig1KSxiKCJjaGVja2VkIixpLmlzU2NhbGFyU3RlcFNlbGVjdG9yUmFuZ2VFbmFibGVkKSgiZGlzYWJsZWQiLCFpLmlzQXhpc1R5cGVTdGVwKCkpLHYoMyksYigiY2hlY2tlZCIsaS5pc0xpbmtlZFRpbWVFbmFibGVkKSgiZGlzYWJsZWQiLCFpLmlzQXhpc1R5cGVTdGVwKCkpLHYoMSksVmUoIkxpbmsgYnkgc3RlcCAiLGkuZ2V0TGlua2VkVGltZVNlbGVjdGlvblN0YXJ0U3RlcCgpLCIgIiksdigxKSxiKCJuZ0lmIixpLmlzU2NhbGFyQ29sdW1uQ3VzdG9taXphdGlvbkVuYWJsZWQpLHYoNSksYigibWF4IixpLk1BWF9DQVJEX1dJRFRIX1NMSURFUl9WQUxVRSkoIm1pbiIsaS5NSU5fQ0FSRF9XSURUSF9TTElERVJfVkFMVUUpKCJzdGVwIiw1MCksdigxKSxiKCJ2YWx1ZSIsaS5jYXJkTWluV2lkdGgpLHYoMyksYigibmdJZiIsaS5nbG9iYWxQaW5zRmVhdHVyZUVuYWJsZWQpLHYoOCksYigibWF4IixpLk1BWF9TTU9PVEhJTkdfU0xJREVSX1ZBTFVFKSgibWluIiwwKSgic3RlcCIsLjAxKSx2KDEpLGIoInZhbHVlIixpLnNjYWxhclNtb290aGluZyksdigxKSxiKCJtYXgiLGkuTUFYX1NNT09USElOR19WQUxVRSkoInZhbHVlIixpLnNjYWxhclNtb290aGluZyksdig0KSxiKCJ2YWx1ZSIsaS50b29sdGlwU29ydCkoIm9wdGlvbnMiLGkuVG9vbHRpcFNvcnREcm9wZG93bk9wdGlvbnMpLHYoMiksYigiY2hlY2tlZCIsaS5pZ25vcmVPdXRsaWVycyksdigzKSxiKCJjaGVja2VkIixpLnNjYWxhclBhcnRpdGlvblgpLHYoOSksYigidmFsdWUiLGkuaGlzdG9ncmFtTW9kZSkoIm9wdGlvbnMiLGkuSGlzdG9ncmFtTW9kZURyb3Bkb3duT3B0aW9ucyksdigxKSxiKCJuZ0lmIixpLmlzSW1hZ2VTdXBwb3J0RW5hYmxlZCkpfSxkZXBlbmRlbmNpZXM6W3duLE5lLFNRLGtpLEVyLHhzLGJuLEp1LCR1LEVRXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7Zm9udC1zaXplOjEycHh9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7cGFkZGluZzoxNnB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIHNlY3Rpb25bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBzZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fS5zZWN0aW9uLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojMjEyMTIxO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6bm9ybWFsO21hcmdpbjowIDAgMTJweCAwfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zZWN0aW9uLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnNlY3Rpb24tdGl0bGVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmZmZ9c2VjdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAuY29udHJvbC1yb3dbX25nY29udGVudC0lQ09NUCVdOm5vdCg6aGFzKCArIC5jb250cm9sLXJvd1tfbmdjb250ZW50LSVDT01QJV0gPiBtYXQtY2hlY2tib3gpKVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjEycHh9LmNvbnRyb2wtbmFtZVtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLWJvdHRvbTo4cHh9LnNsaWRlci1yb3dbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjI4cHh9LnNsaWRlci1yb3dbX25nY29udGVudC0lQ09NUCVdICAgLnJlc2V0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLWxlZnQ6NnB4fS5zbGlkZXItcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zbGlkZXItaW5wdXRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6aW5oZXJpdDtib3JkZXI6MXB4IHNvbGlkICM4ZTk4YTM7Ym9yZGVyLXJhZGl1czoycHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOmluaGVyaXQ7aGVpZ2h0OjEwMCU7bWFyZ2luLWxlZnQ6MTJweDtwYWRkaW5nOjAgNHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zbGlkZXItcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zbGlkZXItaW5wdXRbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuc2xpZGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV0gICAuc2xpZGVyLWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItY29sb3I6IzQyNTA2Nn0uc2NhbGFycy1zbW9vdGhpbmdbX25nY29udGVudC0lQ09NUCVdICAgLnNsaWRlci1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17ZmxleDpub25lO3dpZHRoOjVlbX0uc2NhbGFycy1wYXJ0aXRpb24teFtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0uc2NhbGFycy1wYXJ0aXRpb24teFtfbmdjb250ZW50LSVDT01QJV0gICAuaW5mb1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjE1cHg7bWFyZ2luLWxlZnQ6NXB4O3dpZHRoOjE1cHg7bWluLXdpZHRoOjE1cHh9bWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tbGVmdDotMTFweH1tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVdICAgICBsYWJlbHtjb2xvcjojNjE2MTYxO2ZvbnQtc2l6ZToxMnB4O2xldHRlci1zcGFjaW5nOm5vcm1hbDtwYWRkaW5nLWxlZnQ6MHB4O3doaXRlLXNwYWNlOm5vd3JhcH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBtYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVdICAgICBsYWJlbCwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgbWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgbGFiZWx7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9bWF0LXNsaWRlcltfbmdjb250ZW50LSVDT01QJV17ZmxleDoxO21hcmdpbi1sZWZ0OjBweDttYXJnaW4tcmlnaHQ6MHB4fS5jb2x1bW4tZWRpdC1tZW51LXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6aW5oZXJpdDtoZWlnaHQ6MjhweDtwYWRkaW5nLWxlZnQ6NXB4O3BhZGRpbmctcmlnaHQ6MTJweH0uY29sdW1uLWVkaXQtbWVudS10b2dnbGUubWF0LWJ1dHRvbi13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uY29sdW1uLWVkaXQtbWVudS10b2dnbGUudG9nZ2xlLW9wZW5lZFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZWVlfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5jb2x1bW4tZWRpdC1tZW51LXRvZ2dsZS50b2dnbGUtb3BlbmVkW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmNvbHVtbi1lZGl0LW1lbnUtdG9nZ2xlLnRvZ2dsZS1vcGVuZWRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mn0uY29sdW1uLWVkaXQtbWVudS10b2dnbGVbX25nY29udGVudC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVde21hcmdpbi1yaWdodDo2cHh9dGItZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9LmNvbnRyb2wtcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5pbmRlbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi1sZWZ0OjI4cHh9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxJUT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSl7dGhpcy5zdG9yZT1lLHRoaXMuZGlhbG9nPWksdGhpcy5pc1NjYWxhclN0ZXBTZWxlY3RvckVuYWJsZWQkPXRoaXMuc3RvcmUuc2VsZWN0KEN2KSx0aGlzLmlzU2NhbGFyU3RlcFNlbGVjdG9yUmFuZ2VFbmFibGVkJD10aGlzLnN0b3JlLnNlbGVjdChUdSksdGhpcy5pc0xpbmtlZFRpbWVFbmFibGVkJD10aGlzLnN0b3JlLnNlbGVjdChFdSksdGhpcy5pc1NjYWxhckNvbHVtbkN1c3RvbWl6YXRpb25FbmFibGVkJD10aGlzLnN0b3JlLnNlbGVjdCh1UyksdGhpcy5saW5rZWRUaW1lU2VsZWN0aW9uJD10aGlzLnN0b3JlLnNlbGVjdChKRiksdGhpcy5zdGVwTWluTWF4JD10aGlzLnN0b3JlLnNlbGVjdChLRiksdGhpcy5pc1NsaWRlT3V0TWVudU9wZW4kPXRoaXMuc3RvcmUuc2VsZWN0KGgxKSx0aGlzLmlzSW1hZ2VTdXBwb3J0RW5hYmxlZCQ9dGhpcy5zdG9yZS5zZWxlY3QoYnUpLnBpcGUoT2UoQm9vbGVhbiksTHQoMSksSXQodGhpcy5zdG9yZS5zZWxlY3QoZFMpKSxxKChbLHJdKT0+cikpLHRoaXMudG9vbHRpcFNvcnQkPXRoaXMuc3RvcmUuc2VsZWN0KHhoKSx0aGlzLmlnbm9yZU91dGxpZXJzJD10aGlzLnN0b3JlLnNlbGVjdChDaCksdGhpcy54QXhpc1R5cGUkPXRoaXMuc3RvcmUuc2VsZWN0KE9sKSx0aGlzLmNhcmRNaW5XaWR0aCQ9dGhpcy5zdG9yZS5zZWxlY3QoSmYpLHRoaXMuaGlzdG9ncmFtTW9kZSQ9dGhpcy5zdG9yZS5zZWxlY3QoYTEpLHRoaXMuc2NhbGFyU21vb3RoaW5nJD10aGlzLnN0b3JlLnNlbGVjdChfZCksdGhpcy5zY2FsYXJQYXJ0aXRpb25YJD10aGlzLnN0b3JlLnNlbGVjdChzMSksdGhpcy5pbWFnZUJyaWdodG5lc3NJbk1pbGxpJD10aGlzLnN0b3JlLnNlbGVjdChsMSksdGhpcy5pbWFnZUNvbnRyYXN0SW5NaWxsaSQ9dGhpcy5zdG9yZS5zZWxlY3QoYzEpLHRoaXMuaW1hZ2VTaG93QWN0dWFsU2l6ZSQ9dGhpcy5zdG9yZS5zZWxlY3QoZDEpLHRoaXMuaXNTYXZpbmdQaW5zRW5hYmxlZCQ9dGhpcy5zdG9yZS5zZWxlY3QoYmQpLHRoaXMuZ2xvYmFsUGluc0ZlYXR1cmVFbmFibGVkJD10aGlzLnN0b3JlLnNlbGVjdChwZCl9b25Ub29sdGlwU29ydENoYW5nZWQoZSl7dGhpcy5zdG9yZS5kaXNwYXRjaChnVCh7c29ydDplfSkpfW9uSWdub3JlT3V0bGllcnNDaGFuZ2VkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChfVCgpKX1vblhBeGlzVHlwZUNoYW5nZWQoZSl7dGhpcy5zdG9yZS5kaXNwYXRjaChiVCh7eEF4aXNUeXBlOmV9KSl9b25DYXJkV2lkdGhDaGFuZ2VkKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2godlQoe2NhcmRNaW5XaWR0aDplfSkpfW9uQ2FyZFdpZHRoUmVzZXQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKHlUKCkpfW9uSGlzdG9ncmFtTW9kZUNoYW5nZWQoZSl7dGhpcy5zdG9yZS5kaXNwYXRjaChEVCh7aGlzdG9ncmFtTW9kZTplfSkpfW9uU2NhbGFyU21vb3RoaW5nQ2hhbmdlZChlKXt0aGlzLnN0b3JlLmRpc3BhdGNoKHhUKHtzbW9vdGhpbmc6ZX0pKX1vblNjYWxhclBhcnRpdGlvblhUb2dnbGVkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChDVCgpKX1vbkltYWdlQnJpZ2h0bmVzc0luTWlsbGlDaGFuZ2VkKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2goTVQoe2JyaWdodG5lc3NJbk1pbGxpOmV9KSl9b25JbWFnZUJyaWdodG5lc3NSZXNldCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goU1QoKSl9b25JbWFnZUNvbnRyYXN0UmVzZXQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKEVUKCkpfW9uSW1hZ2VDb250cmFzdEluTWlsbGlDaGFuZ2VkKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2god1Qoe2NvbnRyYXN0SW5NaWxsaTplfSkpfW9uSW1hZ2VTaG93QWN0dWFsU2l6ZUNoYW5nZWQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKFRUKCkpfW9uTGlua2VkVGltZVRvZ2dsZWQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKExUKHthZmZvcmRhbmNlOlphLkNIRUNLX0JPWH0pKX1vblN0ZXBTZWxlY3RvclRvZ2dsZWQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKFRkKHthZmZvcmRhbmNlOlphLkNIRUNLX0JPWH0pKX1vblJhbmdlU2VsZWN0aW9uVG9nZ2xlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goQlQoe2FmZm9yZGFuY2U6WmEuQ0hFQ0tfQk9YfSkpfW9uU2xpZGVPdXRUb2dnbGVkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChsVCgpKX1vbkVuYWJsZVNhdmluZ1BpbnNUb2dnbGVkKGUpe2U/dGhpcy5kaWFsb2cub3Blbih3USkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocj0+e3I/LnNob3VsZERpc2FibGUmJnRoaXMuc3RvcmUuZGlzcGF0Y2goemgoKSl9KTp0aGlzLnN0b3JlLmRpc3BhdGNoKHpoKCkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKEllKSxDKHlzKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sibWV0cmljcy1kYXNoYm9hcmQtc2V0dGluZ3MiXV0sZGVjbHM6MjEsdmFyczo2MCxjb25zdHM6W1szLCJpc0ltYWdlU3VwcG9ydEVuYWJsZWQiLCJ0b29sdGlwU29ydCIsImlnbm9yZU91dGxpZXJzIiwieEF4aXNUeXBlIiwiY2FyZE1pbldpZHRoIiwiaGlzdG9ncmFtTW9kZSIsInNjYWxhclNtb290aGluZyIsInNjYWxhclBhcnRpdGlvblgiLCJpbWFnZUJyaWdodG5lc3NJbk1pbGxpIiwiaW1hZ2VDb250cmFzdEluTWlsbGkiLCJpbWFnZVNob3dBY3R1YWxTaXplIiwiaXNTY2FsYXJTdGVwU2VsZWN0b3JFbmFibGVkIiwiaXNTY2FsYXJTdGVwU2VsZWN0b3JSYW5nZUVuYWJsZWQiLCJpc0xpbmtlZFRpbWVFbmFibGVkIiwiaXNTY2FsYXJDb2x1bW5DdXN0b21pemF0aW9uRW5hYmxlZCIsImxpbmtlZFRpbWVTZWxlY3Rpb24iLCJzdGVwTWluTWF4IiwiaXNTbGlkZU91dE1lbnVPcGVuIiwiaXNTYXZpbmdQaW5zRW5hYmxlZCIsImdsb2JhbFBpbnNGZWF0dXJlRW5hYmxlZCIsInRvb2x0aXBTb3J0Q2hhbmdlZCIsImlnbm9yZU91dGxpZXJzQ2hhbmdlZCIsInhBeGlzVHlwZUNoYW5nZWQiLCJjYXJkV2lkdGhDaGFuZ2VkIiwiY2FyZFdpZHRoUmVzZXQiLCJoaXN0b2dyYW1Nb2RlQ2hhbmdlZCIsInNjYWxhclNtb290aGluZ0NoYW5nZWQiLCJzY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZCIsImltYWdlQnJpZ2h0bmVzc0luTWlsbGlDaGFuZ2VkIiwiaW1hZ2VCcmlnaHRuZXNzUmVzZXQiLCJpbWFnZUNvbnRyYXN0SW5NaWxsaUNoYW5nZWQiLCJpbWFnZUNvbnRyYXN0UmVzZXQiLCJpbWFnZVNob3dBY3R1YWxTaXplQ2hhbmdlZCIsImxpbmtlZFRpbWVUb2dnbGVkIiwic3RlcFNlbGVjdG9yVG9nZ2xlZCIsInJhbmdlU2VsZWN0aW9uVG9nZ2xlZCIsIm9uU2xpZGVPdXRUb2dnbGVkIiwib25FbmFibGVTYXZpbmdQaW5zVG9nZ2xlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwibWV0cmljcy1kYXNoYm9hcmQtc2V0dGluZ3MtY29tcG9uZW50IiwwKSxBKCJ0b29sdGlwU29ydENoYW5nZWQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uVG9vbHRpcFNvcnRDaGFuZ2VkKG8pfSkoImlnbm9yZU91dGxpZXJzQ2hhbmdlZCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vbklnbm9yZU91dGxpZXJzQ2hhbmdlZCgpfSkoInhBeGlzVHlwZUNoYW5nZWQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uWEF4aXNUeXBlQ2hhbmdlZChvKX0pKCJjYXJkV2lkdGhDaGFuZ2VkIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkNhcmRXaWR0aENoYW5nZWQobyl9KSgiY2FyZFdpZHRoUmVzZXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25DYXJkV2lkdGhSZXNldCgpfSkoImhpc3RvZ3JhbU1vZGVDaGFuZ2VkIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkhpc3RvZ3JhbU1vZGVDaGFuZ2VkKG8pfSkoInNjYWxhclNtb290aGluZ0NoYW5nZWQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uU2NhbGFyU21vb3RoaW5nQ2hhbmdlZChvKX0pKCJzY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vblNjYWxhclBhcnRpdGlvblhUb2dnbGVkKCl9KSgiaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaUNoYW5nZWQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uSW1hZ2VCcmlnaHRuZXNzSW5NaWxsaUNoYW5nZWQobyl9KSgiaW1hZ2VCcmlnaHRuZXNzUmVzZXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25JbWFnZUJyaWdodG5lc3NSZXNldCgpfSkoImltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZCIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25JbWFnZUNvbnRyYXN0SW5NaWxsaUNoYW5nZWQobyl9KSgiaW1hZ2VDb250cmFzdFJlc2V0IixmdW5jdGlvbigpe3JldHVybiBpLm9uSW1hZ2VDb250cmFzdFJlc2V0KCl9KSgiaW1hZ2VTaG93QWN0dWFsU2l6ZUNoYW5nZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25JbWFnZVNob3dBY3R1YWxTaXplQ2hhbmdlZCgpfSkoImxpbmtlZFRpbWVUb2dnbGVkIixmdW5jdGlvbigpe3JldHVybiBpLm9uTGlua2VkVGltZVRvZ2dsZWQoKX0pKCJzdGVwU2VsZWN0b3JUb2dnbGVkIixmdW5jdGlvbigpe3JldHVybiBpLm9uU3RlcFNlbGVjdG9yVG9nZ2xlZCgpfSkoInJhbmdlU2VsZWN0aW9uVG9nZ2xlZCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vblJhbmdlU2VsZWN0aW9uVG9nZ2xlZCgpfSkoIm9uU2xpZGVPdXRUb2dnbGVkIixmdW5jdGlvbigpe3JldHVybiBpLm9uU2xpZGVPdXRUb2dnbGVkKCl9KSgib25FbmFibGVTYXZpbmdQaW5zVG9nZ2xlZCIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25FbmFibGVTYXZpbmdQaW5zVG9nZ2xlZChvKX0pLFUoMSwiYXN5bmMiKSxVKDIsImFzeW5jIiksVSgzLCJhc3luYyIpLFUoNCwiYXN5bmMiKSxVKDUsImFzeW5jIiksVSg2LCJhc3luYyIpLFUoNywiYXN5bmMiKSxVKDgsImFzeW5jIiksVSg5LCJhc3luYyIpLFUoMTAsImFzeW5jIiksVSgxMSwiYXN5bmMiKSxVKDEyLCJhc3luYyIpLFUoMTMsImFzeW5jIiksVSgxNCwiYXN5bmMiKSxVKDE1LCJhc3luYyIpLFUoMTYsImFzeW5jIiksVSgxNywiYXN5bmMiKSxVKDE4LCJhc3luYyIpLFUoMTksImFzeW5jIiksVSgyMCwiYXN5bmMiKSxnKCkpLDImZSYmYigiaXNJbWFnZVN1cHBvcnRFbmFibGVkIixHKDEsMjAsaS5pc0ltYWdlU3VwcG9ydEVuYWJsZWQkKSkoInRvb2x0aXBTb3J0IixHKDIsMjIsaS50b29sdGlwU29ydCQpKSgiaWdub3JlT3V0bGllcnMiLEcoMywyNCxpLmlnbm9yZU91dGxpZXJzJCkpKCJ4QXhpc1R5cGUiLEcoNCwyNixpLnhBeGlzVHlwZSQpKSgiY2FyZE1pbldpZHRoIixHKDUsMjgsaS5jYXJkTWluV2lkdGgkKSkoImhpc3RvZ3JhbU1vZGUiLEcoNiwzMCxpLmhpc3RvZ3JhbU1vZGUkKSkoInNjYWxhclNtb290aGluZyIsRyg3LDMyLGkuc2NhbGFyU21vb3RoaW5nJCkpKCJzY2FsYXJQYXJ0aXRpb25YIixHKDgsMzQsaS5zY2FsYXJQYXJ0aXRpb25YJCkpKCJpbWFnZUJyaWdodG5lc3NJbk1pbGxpIixHKDksMzYsaS5pbWFnZUJyaWdodG5lc3NJbk1pbGxpJCkpKCJpbWFnZUNvbnRyYXN0SW5NaWxsaSIsRygxMCwzOCxpLmltYWdlQ29udHJhc3RJbk1pbGxpJCkpKCJpbWFnZVNob3dBY3R1YWxTaXplIixHKDExLDQwLGkuaW1hZ2VTaG93QWN0dWFsU2l6ZSQpKSgiaXNTY2FsYXJTdGVwU2VsZWN0b3JFbmFibGVkIixHKDEyLDQyLGkuaXNTY2FsYXJTdGVwU2VsZWN0b3JFbmFibGVkJCkpKCJpc1NjYWxhclN0ZXBTZWxlY3RvclJhbmdlRW5hYmxlZCIsRygxMyw0NCxpLmlzU2NhbGFyU3RlcFNlbGVjdG9yUmFuZ2VFbmFibGVkJCkpKCJpc0xpbmtlZFRpbWVFbmFibGVkIixHKDE0LDQ2LGkuaXNMaW5rZWRUaW1lRW5hYmxlZCQpKSgiaXNTY2FsYXJDb2x1bW5DdXN0b21pemF0aW9uRW5hYmxlZCIsRygxNSw0OCxpLmlzU2NhbGFyQ29sdW1uQ3VzdG9taXphdGlvbkVuYWJsZWQkKSkoImxpbmtlZFRpbWVTZWxlY3Rpb24iLEcoMTYsNTAsaS5saW5rZWRUaW1lU2VsZWN0aW9uJCkpKCJzdGVwTWluTWF4IixHKDE3LDUyLGkuc3RlcE1pbk1heCQpKSgiaXNTbGlkZU91dE1lbnVPcGVuIixHKDE4LDU0LGkuaXNTbGlkZU91dE1lbnVPcGVuJCkpKCJpc1NhdmluZ1BpbnNFbmFibGVkIixHKDE5LDU2LGkuaXNTYXZpbmdQaW5zRW5hYmxlZCQpKSgiZ2xvYmFsUGluc0ZlYXR1cmVFbmFibGVkIixHKDIwLDU4LGkuZ2xvYmFsUGluc0ZlYXR1cmVFbmFibGVkJCkpfSxkZXBlbmRlbmNpZXM6W0RRLGN0XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxBUT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtZXRyaWNzLWRhc2hib2FyZC1yaWdodC1wYW5lIl1dLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiZrKDAsIm1ldHJpY3MtZGFzaGJvYXJkLXNldHRpbmdzIil9LGRlcGVuZGVuY2llczpbSVFdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLGsxZT1bInRvb2x0aXAiXSxrUT1uZXcgdGUoIm1hdC10b29sdGlwLXNjcm9sbC1zdHJhdGVneSIpLE4xZT17cHJvdmlkZTprUSxkZXBzOltPaV0sdXNlRmFjdG9yeTpmdW5jdGlvbihuKXtyZXR1cm4oKT0+bi5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oe3Njcm9sbFRocm90dGxlOjIwfSl9fSxCMWU9bmV3IHRlKCJtYXQtdG9vbHRpcC1kZWZhdWx0LW9wdGlvbnMiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJue3Nob3dEZWxheTowLGhpZGVEZWxheTowLHRvdWNoZW5kSGlkZURlbGF5OjE1MDB9fX0pLFJRPSJ0b29sdGlwLXBhbmVsIixQUT16YSh7cGFzc2l2ZTohMH0pLEcxZT0oKCk9PntjbGFzcyBue2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLl9wb3NpdGlvbn1zZXQgcG9zaXRpb24oZSl7ZSE9PXRoaXMuX3Bvc2l0aW9uJiYodGhpcy5fcG9zaXRpb249ZSx0aGlzLl9vdmVybGF5UmVmJiYodGhpcy5fdXBkYXRlUG9zaXRpb24odGhpcy5fb3ZlcmxheVJlZiksdGhpcy5fdG9vbHRpcEluc3RhbmNlPy5zaG93KDApLHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKSkpfWdldCBwb3NpdGlvbkF0T3JpZ2luKCl7cmV0dXJuIHRoaXMuX3Bvc2l0aW9uQXRPcmlnaW59c2V0IHBvc2l0aW9uQXRPcmlnaW4oZSl7dGhpcy5fcG9zaXRpb25BdE9yaWdpbj12dChlKSx0aGlzLl9kZXRhY2goKSx0aGlzLl9vdmVybGF5UmVmPW51bGx9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkfXNldCBkaXNhYmxlZChlKXt0aGlzLl9kaXNhYmxlZD12dChlKSx0aGlzLl9kaXNhYmxlZD90aGlzLmhpZGUoMCk6dGhpcy5fc2V0dXBQb2ludGVyRW50ZXJFdmVudHNJZk5lZWRlZCgpfWdldCBzaG93RGVsYXkoKXtyZXR1cm4gdGhpcy5fc2hvd0RlbGF5fXNldCBzaG93RGVsYXkoZSl7dGhpcy5fc2hvd0RlbGF5PW1pKGUpfWdldCBoaWRlRGVsYXkoKXtyZXR1cm4gdGhpcy5faGlkZURlbGF5fXNldCBoaWRlRGVsYXkoZSl7dGhpcy5faGlkZURlbGF5PW1pKGUpLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZSYmKHRoaXMuX3Rvb2x0aXBJbnN0YW5jZS5fbW91c2VMZWF2ZUhpZGVEZWxheT10aGlzLl9oaWRlRGVsYXkpfWdldCBtZXNzYWdlKCl7cmV0dXJuIHRoaXMuX21lc3NhZ2V9c2V0IG1lc3NhZ2UoZSl7dGhpcy5fYXJpYURlc2NyaWJlci5yZW1vdmVEZXNjcmlwdGlvbih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsdGhpcy5fbWVzc2FnZSwidG9vbHRpcCIpLHRoaXMuX21lc3NhZ2U9bnVsbCE9ZT9TdHJpbmcoZSkudHJpbSgpOiIiLCF0aGlzLl9tZXNzYWdlJiZ0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKCk/dGhpcy5oaWRlKDApOih0aGlzLl9zZXR1cFBvaW50ZXJFbnRlckV2ZW50c0lmTmVlZGVkKCksdGhpcy5fdXBkYXRlVG9vbHRpcE1lc3NhZ2UoKSx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57dGhpcy5fYXJpYURlc2NyaWJlci5kZXNjcmliZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsdGhpcy5tZXNzYWdlLCJ0b29sdGlwIil9KX0pKX1nZXQgdG9vbHRpcENsYXNzKCl7cmV0dXJuIHRoaXMuX3Rvb2x0aXBDbGFzc31zZXQgdG9vbHRpcENsYXNzKGUpe3RoaXMuX3Rvb2x0aXBDbGFzcz1lLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZSYmdGhpcy5fc2V0VG9vbHRpcENsYXNzKHRoaXMuX3Rvb2x0aXBDbGFzcyl9Y29uc3RydWN0b3IoZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgpe3RoaXMuX292ZXJsYXk9ZSx0aGlzLl9lbGVtZW50UmVmPWksdGhpcy5fc2Nyb2xsRGlzcGF0Y2hlcj1yLHRoaXMuX3ZpZXdDb250YWluZXJSZWY9byx0aGlzLl9uZ1pvbmU9YSx0aGlzLl9wbGF0Zm9ybT1zLHRoaXMuX2FyaWFEZXNjcmliZXI9bCx0aGlzLl9mb2N1c01vbml0b3I9Yyx0aGlzLl9kaXI9dSx0aGlzLl9kZWZhdWx0T3B0aW9ucz1wLHRoaXMuX3Bvc2l0aW9uPSJiZWxvdyIsdGhpcy5fcG9zaXRpb25BdE9yaWdpbj0hMSx0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLl92aWV3SW5pdGlhbGl6ZWQ9ITEsdGhpcy5fcG9pbnRlckV4aXRFdmVudHNJbml0aWFsaXplZD0hMSx0aGlzLl92aWV3cG9ydE1hcmdpbj04LHRoaXMuX2Nzc0NsYXNzUHJlZml4PSJtYXQiLHRoaXMuX3Nob3dEZWxheT10aGlzLl9kZWZhdWx0T3B0aW9ucy5zaG93RGVsYXksdGhpcy5faGlkZURlbGF5PXRoaXMuX2RlZmF1bHRPcHRpb25zLmhpZGVEZWxheSx0aGlzLnRvdWNoR2VzdHVyZXM9ImF1dG8iLHRoaXMuX21lc3NhZ2U9IiIsdGhpcy5fcGFzc2l2ZUxpc3RlbmVycz1bXSx0aGlzLl9kZXN0cm95ZWQ9bmV3IEVlLHRoaXMuX3Njcm9sbFN0cmF0ZWd5PWQsdGhpcy5fZG9jdW1lbnQ9aCxwJiYocC5wb3NpdGlvbiYmKHRoaXMucG9zaXRpb249cC5wb3NpdGlvbikscC5wb3NpdGlvbkF0T3JpZ2luJiYodGhpcy5wb3NpdGlvbkF0T3JpZ2luPXAucG9zaXRpb25BdE9yaWdpbikscC50b3VjaEdlc3R1cmVzJiYodGhpcy50b3VjaEdlc3R1cmVzPXAudG91Y2hHZXN0dXJlcykpLHUuY2hhbmdlLnBpcGUoaXQodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5fb3ZlcmxheVJlZiYmdGhpcy5fdXBkYXRlUG9zaXRpb24odGhpcy5fb3ZlcmxheVJlZil9KX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl92aWV3SW5pdGlhbGl6ZWQ9ITAsdGhpcy5fc2V0dXBQb2ludGVyRW50ZXJFdmVudHNJZk5lZWRlZCgpLHRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYpLnBpcGUoaXQodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKGU9PntlPyJrZXlib2FyZCI9PT1lJiZ0aGlzLl9uZ1pvbmUucnVuKCgpPT50aGlzLnNob3coKSk6dGhpcy5fbmdab25lLnJ1bigoKT0+dGhpcy5oaWRlKDApKX0pfW5nT25EZXN0cm95KCl7bGV0IGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O2NsZWFyVGltZW91dCh0aGlzLl90b3VjaHN0YXJ0VGltZW91dCksdGhpcy5fb3ZlcmxheVJlZiYmKHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZT1udWxsKSx0aGlzLl9wYXNzaXZlTGlzdGVuZXJzLmZvckVhY2goKFtpLHJdKT0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihpLHIsUFEpfSksdGhpcy5fcGFzc2l2ZUxpc3RlbmVycy5sZW5ndGg9MCx0aGlzLl9kZXN0cm95ZWQubmV4dCgpLHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpLHRoaXMuX2FyaWFEZXNjcmliZXIucmVtb3ZlRGVzY3JpcHRpb24oZSx0aGlzLm1lc3NhZ2UsInRvb2x0aXAiKSx0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcoZSl9c2hvdyhlPXRoaXMuc2hvd0RlbGF5LGkpe2lmKHRoaXMuZGlzYWJsZWR8fCF0aGlzLm1lc3NhZ2V8fHRoaXMuX2lzVG9vbHRpcFZpc2libGUoKSlyZXR1cm4gdm9pZCB0aGlzLl90b29sdGlwSW5zdGFuY2U/Ll9jYW5jZWxQZW5kaW5nQW5pbWF0aW9ucygpO2xldCByPXRoaXMuX2NyZWF0ZU92ZXJsYXkoaSk7dGhpcy5fZGV0YWNoKCksdGhpcy5fcG9ydGFsPXRoaXMuX3BvcnRhbHx8bmV3IExsKHRoaXMuX3Rvb2x0aXBDb21wb25lbnQsdGhpcy5fdmlld0NvbnRhaW5lclJlZik7bGV0IG89dGhpcy5fdG9vbHRpcEluc3RhbmNlPXIuYXR0YWNoKHRoaXMuX3BvcnRhbCkuaW5zdGFuY2U7by5fdHJpZ2dlckVsZW1lbnQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LG8uX21vdXNlTGVhdmVIaWRlRGVsYXk9dGhpcy5faGlkZURlbGF5LG8uYWZ0ZXJIaWRkZW4oKS5waXBlKGl0KHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKT0+dGhpcy5fZGV0YWNoKCkpLHRoaXMuX3NldFRvb2x0aXBDbGFzcyh0aGlzLl90b29sdGlwQ2xhc3MpLHRoaXMuX3VwZGF0ZVRvb2x0aXBNZXNzYWdlKCksby5zaG93KGUpfWhpZGUoZT10aGlzLmhpZGVEZWxheSl7bGV0IGk9dGhpcy5fdG9vbHRpcEluc3RhbmNlO2kmJihpLmlzVmlzaWJsZSgpP2kuaGlkZShlKTooaS5fY2FuY2VsUGVuZGluZ0FuaW1hdGlvbnMoKSx0aGlzLl9kZXRhY2goKSkpfXRvZ2dsZShlKXt0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKCk/dGhpcy5oaWRlKCk6dGhpcy5zaG93KHZvaWQgMCxlKX1faXNUb29sdGlwVmlzaWJsZSgpe3JldHVybiEhdGhpcy5fdG9vbHRpcEluc3RhbmNlJiZ0aGlzLl90b29sdGlwSW5zdGFuY2UuaXNWaXNpYmxlKCl9X2NyZWF0ZU92ZXJsYXkoZSl7aWYodGhpcy5fb3ZlcmxheVJlZil7bGV0IG89dGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKS5wb3NpdGlvblN0cmF0ZWd5O2lmKCghdGhpcy5wb3NpdGlvbkF0T3JpZ2lufHwhZSkmJm8uX29yaWdpbiBpbnN0YW5jZW9mIHhlKXJldHVybiB0aGlzLl9vdmVybGF5UmVmO3RoaXMuX2RldGFjaCgpfWxldCBpPXRoaXMuX3Njcm9sbERpc3BhdGNoZXIuZ2V0QW5jZXN0b3JTY3JvbGxDb250YWluZXJzKHRoaXMuX2VsZW1lbnRSZWYpLHI9dGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5wb3NpdGlvbkF0T3JpZ2luJiZlfHx0aGlzLl9lbGVtZW50UmVmKS53aXRoVHJhbnNmb3JtT3JpZ2luT24oYC4ke3RoaXMuX2Nzc0NsYXNzUHJlZml4fS10b29sdGlwYCkud2l0aEZsZXhpYmxlRGltZW5zaW9ucyghMSkud2l0aFZpZXdwb3J0TWFyZ2luKHRoaXMuX3ZpZXdwb3J0TWFyZ2luKS53aXRoU2Nyb2xsYWJsZUNvbnRhaW5lcnMoaSk7cmV0dXJuIHIucG9zaXRpb25DaGFuZ2VzLnBpcGUoaXQodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKG89Pnt0aGlzLl91cGRhdGVDdXJyZW50UG9zaXRpb25DbGFzcyhvLmNvbm5lY3Rpb25QYWlyKSx0aGlzLl90b29sdGlwSW5zdGFuY2UmJm8uc2Nyb2xsYWJsZVZpZXdQcm9wZXJ0aWVzLmlzT3ZlcmxheUNsaXBwZWQmJnRoaXMuX3Rvb2x0aXBJbnN0YW5jZS5pc1Zpc2libGUoKSYmdGhpcy5fbmdab25lLnJ1bigoKT0+dGhpcy5oaWRlKDApKX0pLHRoaXMuX292ZXJsYXlSZWY9dGhpcy5fb3ZlcmxheS5jcmVhdGUoe2RpcmVjdGlvbjp0aGlzLl9kaXIscG9zaXRpb25TdHJhdGVneTpyLHBhbmVsQ2xhc3M6YCR7dGhpcy5fY3NzQ2xhc3NQcmVmaXh9LSR7UlF9YCxzY3JvbGxTdHJhdGVneTp0aGlzLl9zY3JvbGxTdHJhdGVneSgpfSksdGhpcy5fdXBkYXRlUG9zaXRpb24odGhpcy5fb3ZlcmxheVJlZiksdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2htZW50cygpLnBpcGUoaXQodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpPT50aGlzLl9kZXRhY2goKSksdGhpcy5fb3ZlcmxheVJlZi5vdXRzaWRlUG9pbnRlckV2ZW50cygpLnBpcGUoaXQodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpPT50aGlzLl90b29sdGlwSW5zdGFuY2U/Ll9oYW5kbGVCb2R5SW50ZXJhY3Rpb24oKSksdGhpcy5fb3ZlcmxheVJlZi5rZXlkb3duRXZlbnRzKCkucGlwZShpdCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUobz0+e3RoaXMuX2lzVG9vbHRpcFZpc2libGUoKSYmMjc9PT1vLmtleUNvZGUmJiFPcihvKSYmKG8ucHJldmVudERlZmF1bHQoKSxvLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX25nWm9uZS5ydW4oKCk9PnRoaXMuaGlkZSgwKSkpfSksdGhpcy5fZGVmYXVsdE9wdGlvbnM/LmRpc2FibGVUb29sdGlwSW50ZXJhY3Rpdml0eSYmdGhpcy5fb3ZlcmxheVJlZi5hZGRQYW5lbENsYXNzKGAke3RoaXMuX2Nzc0NsYXNzUHJlZml4fS10b29sdGlwLXBhbmVsLW5vbi1pbnRlcmFjdGl2ZWApLHRoaXMuX292ZXJsYXlSZWZ9X2RldGFjaCgpe3RoaXMuX292ZXJsYXlSZWYmJnRoaXMuX292ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSYmdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKSx0aGlzLl90b29sdGlwSW5zdGFuY2U9bnVsbH1fdXBkYXRlUG9zaXRpb24oZSl7bGV0IGk9ZS5nZXRDb25maWcoKS5wb3NpdGlvblN0cmF0ZWd5LHI9dGhpcy5fZ2V0T3JpZ2luKCksbz10aGlzLl9nZXRPdmVybGF5UG9zaXRpb24oKTtpLndpdGhQb3NpdGlvbnMoW3RoaXMuX2FkZE9mZnNldCh7Li4uci5tYWluLC4uLm8ubWFpbn0pLHRoaXMuX2FkZE9mZnNldCh7Li4uci5mYWxsYmFjaywuLi5vLmZhbGxiYWNrfSldKX1fYWRkT2Zmc2V0KGUpe3JldHVybiBlfV9nZXRPcmlnaW4oKXtsZXQgcixlPSF0aGlzLl9kaXJ8fCJsdHIiPT10aGlzLl9kaXIudmFsdWUsaT10aGlzLnBvc2l0aW9uOyJhYm92ZSI9PWl8fCJiZWxvdyI9PWk/cj17b3JpZ2luWDoiY2VudGVyIixvcmlnaW5ZOiJhYm92ZSI9PWk/InRvcCI6ImJvdHRvbSJ9OiJiZWZvcmUiPT1pfHwibGVmdCI9PWkmJmV8fCJyaWdodCI9PWkmJiFlP3I9e29yaWdpblg6InN0YXJ0IixvcmlnaW5ZOiJjZW50ZXIifTooImFmdGVyIj09aXx8InJpZ2h0Ij09aSYmZXx8ImxlZnQiPT1pJiYhZSkmJihyPXtvcmlnaW5YOiJlbmQiLG9yaWdpblk6ImNlbnRlciJ9KTtsZXR7eDpvLHk6YX09dGhpcy5faW52ZXJ0UG9zaXRpb24oci5vcmlnaW5YLHIub3JpZ2luWSk7cmV0dXJue21haW46cixmYWxsYmFjazp7b3JpZ2luWDpvLG9yaWdpblk6YX19fV9nZXRPdmVybGF5UG9zaXRpb24oKXtsZXQgcixlPSF0aGlzLl9kaXJ8fCJsdHIiPT10aGlzLl9kaXIudmFsdWUsaT10aGlzLnBvc2l0aW9uOyJhYm92ZSI9PWk/cj17b3ZlcmxheVg6ImNlbnRlciIsb3ZlcmxheVk6ImJvdHRvbSJ9OiJiZWxvdyI9PWk/cj17b3ZlcmxheVg6ImNlbnRlciIsb3ZlcmxheVk6InRvcCJ9OiJiZWZvcmUiPT1pfHwibGVmdCI9PWkmJmV8fCJyaWdodCI9PWkmJiFlP3I9e292ZXJsYXlYOiJlbmQiLG92ZXJsYXlZOiJjZW50ZXIifTooImFmdGVyIj09aXx8InJpZ2h0Ij09aSYmZXx8ImxlZnQiPT1pJiYhZSkmJihyPXtvdmVybGF5WDoic3RhcnQiLG92ZXJsYXlZOiJjZW50ZXIifSk7bGV0e3g6byx5OmF9PXRoaXMuX2ludmVydFBvc2l0aW9uKHIub3ZlcmxheVgsci5vdmVybGF5WSk7cmV0dXJue21haW46cixmYWxsYmFjazp7b3ZlcmxheVg6byxvdmVybGF5WTphfX19X3VwZGF0ZVRvb2x0aXBNZXNzYWdlKCl7dGhpcy5fdG9vbHRpcEluc3RhbmNlJiYodGhpcy5fdG9vbHRpcEluc3RhbmNlLm1lc3NhZ2U9dGhpcy5tZXNzYWdlLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZS5fbWFya0ZvckNoZWNrKCksdGhpcy5fbmdab25lLm9uTWljcm90YXNrRW1wdHkucGlwZShMdCgxKSxpdCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLl90b29sdGlwSW5zdGFuY2UmJnRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKX0pKX1fc2V0VG9vbHRpcENsYXNzKGUpe3RoaXMuX3Rvb2x0aXBJbnN0YW5jZSYmKHRoaXMuX3Rvb2x0aXBJbnN0YW5jZS50b29sdGlwQ2xhc3M9ZSx0aGlzLl90b29sdGlwSW5zdGFuY2UuX21hcmtGb3JDaGVjaygpKX1faW52ZXJ0UG9zaXRpb24oZSxpKXtyZXR1cm4iYWJvdmUiPT09dGhpcy5wb3NpdGlvbnx8ImJlbG93Ij09PXRoaXMucG9zaXRpb24/InRvcCI9PT1pP2k9ImJvdHRvbSI6ImJvdHRvbSI9PT1pJiYoaT0idG9wIik6ImVuZCI9PT1lP2U9InN0YXJ0Ijoic3RhcnQiPT09ZSYmKGU9ImVuZCIpLHt4OmUseTppfX1fdXBkYXRlQ3VycmVudFBvc2l0aW9uQ2xhc3MoZSl7bGV0IGEse292ZXJsYXlZOmksb3JpZ2luWDpyLG9yaWdpblk6b309ZTtpZihhPSJjZW50ZXIiPT09aT90aGlzLl9kaXImJiJydGwiPT09dGhpcy5fZGlyLnZhbHVlPyJlbmQiPT09cj8ibGVmdCI6InJpZ2h0Ijoic3RhcnQiPT09cj8ibGVmdCI6InJpZ2h0IjoiYm90dG9tIj09PWkmJiJ0b3AiPT09bz8iYWJvdmUiOiJiZWxvdyIsYSE9PXRoaXMuX2N1cnJlbnRQb3NpdGlvbil7bGV0IHM9dGhpcy5fb3ZlcmxheVJlZjtpZihzKXtsZXQgbD1gJHt0aGlzLl9jc3NDbGFzc1ByZWZpeH0tJHtSUX0tYDtzLnJlbW92ZVBhbmVsQ2xhc3MobCt0aGlzLl9jdXJyZW50UG9zaXRpb24pLHMuYWRkUGFuZWxDbGFzcyhsK2EpfXRoaXMuX2N1cnJlbnRQb3NpdGlvbj1hfX1fc2V0dXBQb2ludGVyRW50ZXJFdmVudHNJZk5lZWRlZCgpe3RoaXMuX2Rpc2FibGVkfHwhdGhpcy5tZXNzYWdlfHwhdGhpcy5fdmlld0luaXRpYWxpemVkfHx0aGlzLl9wYXNzaXZlTGlzdGVuZXJzLmxlbmd0aHx8KHRoaXMuX3BsYXRmb3JtU3VwcG9ydHNNb3VzZUV2ZW50cygpP3RoaXMuX3Bhc3NpdmVMaXN0ZW5lcnMucHVzaChbIm1vdXNlZW50ZXIiLGU9PntsZXQgaTt0aGlzLl9zZXR1cFBvaW50ZXJFeGl0RXZlbnRzSWZOZWVkZWQoKSx2b2lkIDAhPT1lLngmJnZvaWQgMCE9PWUueSYmKGk9ZSksdGhpcy5zaG93KHZvaWQgMCxpKX1dKToib2ZmIiE9PXRoaXMudG91Y2hHZXN0dXJlcyYmKHRoaXMuX2Rpc2FibGVOYXRpdmVHZXN0dXJlc0lmTmVjZXNzYXJ5KCksdGhpcy5fcGFzc2l2ZUxpc3RlbmVycy5wdXNoKFsidG91Y2hzdGFydCIsZT0+e2xldCBpPWUudGFyZ2V0VG91Y2hlcz8uWzBdLHI9aT97eDppLmNsaWVudFgseTppLmNsaWVudFl9OnZvaWQgMDt0aGlzLl9zZXR1cFBvaW50ZXJFeGl0RXZlbnRzSWZOZWVkZWQoKSxjbGVhclRpbWVvdXQodGhpcy5fdG91Y2hzdGFydFRpbWVvdXQpLHRoaXMuX3RvdWNoc3RhcnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9PnRoaXMuc2hvdyh2b2lkIDAsciksNTAwKX1dKSksdGhpcy5fYWRkTGlzdGVuZXJzKHRoaXMuX3Bhc3NpdmVMaXN0ZW5lcnMpKX1fc2V0dXBQb2ludGVyRXhpdEV2ZW50c0lmTmVlZGVkKCl7aWYodGhpcy5fcG9pbnRlckV4aXRFdmVudHNJbml0aWFsaXplZClyZXR1cm47dGhpcy5fcG9pbnRlckV4aXRFdmVudHNJbml0aWFsaXplZD0hMDtsZXQgZT1bXTtpZih0aGlzLl9wbGF0Zm9ybVN1cHBvcnRzTW91c2VFdmVudHMoKSllLnB1c2goWyJtb3VzZWxlYXZlIixpPT57bGV0IHI9aS5yZWxhdGVkVGFyZ2V0Oyghcnx8IXRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50LmNvbnRhaW5zKHIpKSYmdGhpcy5oaWRlKCl9XSxbIndoZWVsIixpPT50aGlzLl93aGVlbExpc3RlbmVyKGkpXSk7ZWxzZSBpZigib2ZmIiE9PXRoaXMudG91Y2hHZXN0dXJlcyl7dGhpcy5fZGlzYWJsZU5hdGl2ZUdlc3R1cmVzSWZOZWNlc3NhcnkoKTtsZXQgaT0oKT0+e2NsZWFyVGltZW91dCh0aGlzLl90b3VjaHN0YXJ0VGltZW91dCksdGhpcy5oaWRlKHRoaXMuX2RlZmF1bHRPcHRpb25zLnRvdWNoZW5kSGlkZURlbGF5KX07ZS5wdXNoKFsidG91Y2hlbmQiLGldLFsidG91Y2hjYW5jZWwiLGldKX10aGlzLl9hZGRMaXN0ZW5lcnMoZSksdGhpcy5fcGFzc2l2ZUxpc3RlbmVycy5wdXNoKC4uLmUpfV9hZGRMaXN0ZW5lcnMoZSl7ZS5mb3JFYWNoKChbaSxyXSk9Pnt0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihpLHIsUFEpfSl9X3BsYXRmb3JtU3VwcG9ydHNNb3VzZUV2ZW50cygpe3JldHVybiF0aGlzLl9wbGF0Zm9ybS5JT1MmJiF0aGlzLl9wbGF0Zm9ybS5BTkRST0lEfV93aGVlbExpc3RlbmVyKGUpe2lmKHRoaXMuX2lzVG9vbHRpcFZpc2libGUoKSl7bGV0IGk9dGhpcy5fZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChlLmNsaWVudFgsZS5jbGllbnRZKSxyPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtpIT09ciYmIXIuY29udGFpbnMoaSkmJnRoaXMuaGlkZSgpfX1fZGlzYWJsZU5hdGl2ZUdlc3R1cmVzSWZOZWNlc3NhcnkoKXtsZXQgZT10aGlzLnRvdWNoR2VzdHVyZXM7aWYoIm9mZiIhPT1lKXtsZXQgaT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQscj1pLnN0eWxlOygib24iPT09ZXx8IklOUFVUIiE9PWkubm9kZU5hbWUmJiJURVhUQVJFQSIhPT1pLm5vZGVOYW1lKSYmKHIudXNlclNlbGVjdD1yLm1zVXNlclNlbGVjdD1yLndlYmtpdFVzZXJTZWxlY3Q9ci5Nb3pVc2VyU2VsZWN0PSJub25lIiksKCJvbiI9PT1lfHwhaS5kcmFnZ2FibGUpJiYoci53ZWJraXRVc2VyRHJhZz0ibm9uZSIpLHIudG91Y2hBY3Rpb249Im5vbmUiLHIud2Via2l0VGFwSGlnaGxpZ2h0Q29sb3I9InRyYW5zcGFyZW50In19fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtjcygpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLGlucHV0czp7cG9zaXRpb246WyJtYXRUb29sdGlwUG9zaXRpb24iLCJwb3NpdGlvbiJdLHBvc2l0aW9uQXRPcmlnaW46WyJtYXRUb29sdGlwUG9zaXRpb25BdE9yaWdpbiIsInBvc2l0aW9uQXRPcmlnaW4iXSxkaXNhYmxlZDpbIm1hdFRvb2x0aXBEaXNhYmxlZCIsImRpc2FibGVkIl0sc2hvd0RlbGF5OlsibWF0VG9vbHRpcFNob3dEZWxheSIsInNob3dEZWxheSJdLGhpZGVEZWxheTpbIm1hdFRvb2x0aXBIaWRlRGVsYXkiLCJoaWRlRGVsYXkiXSx0b3VjaEdlc3R1cmVzOlsibWF0VG9vbHRpcFRvdWNoR2VzdHVyZXMiLCJ0b3VjaEdlc3R1cmVzIl0sbWVzc2FnZTpbIm1hdFRvb2x0aXAiLCJtZXNzYWdlIl0sdG9vbHRpcENsYXNzOlsibWF0VG9vbHRpcENsYXNzIiwidG9vbHRpcENsYXNzIl19fSksbn0pKCksR1Q9KCgpPT57Y2xhc3MgbiBleHRlbmRzIEcxZXtjb25zdHJ1Y3RvcihlLGkscixvLGEscyxsLGMsZCx1LHAsaCl7c3VwZXIoZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgpLHRoaXMuX3Rvb2x0aXBDb21wb25lbnQ9cTFlLHRoaXMuX2Nzc0NsYXNzUHJlZml4PSJtYXQtbWRjIix0aGlzLl92aWV3cG9ydE1hcmdpbj04fV9hZGRPZmZzZXQoZSl7bGV0IHI9IXRoaXMuX2Rpcnx8Imx0ciI9PXRoaXMuX2Rpci52YWx1ZTtyZXR1cm4idG9wIj09PWUub3JpZ2luWT9lLm9mZnNldFk9LTg6ImJvdHRvbSI9PT1lLm9yaWdpblk/ZS5vZmZzZXRZPTg6InN0YXJ0Ij09PWUub3JpZ2luWD9lLm9mZnNldFg9cj8tODo4OiJlbmQiPT09ZS5vcmlnaW5YJiYoZS5vZmZzZXRYPXI/ODotOCksZX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhPaSksQyh4ZSksQyhMdSksQyhlaSksQyhvdCksQyhWbiksQyhUNyksQyhmbyksQyhrUSksQyh6aSw4KSxDKEIxZSw4KSxDKE50KSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsIm1hdFRvb2x0aXAiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtbWRjLXRvb2x0aXAtdHJpZ2dlciJdLGV4cG9ydEFzOlsibWF0VG9vbHRpcCJdLGZlYXR1cmVzOltYZV19KSxufSkoKSxXMWU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkpe3RoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fY2xvc2VPbkludGVyYWN0aW9uPSExLHRoaXMuX2lzVmlzaWJsZT0hMSx0aGlzLl9vbkhpZGU9bmV3IEVlLHRoaXMuX2FuaW1hdGlvbnNEaXNhYmxlZD0iTm9vcEFuaW1hdGlvbnMiPT09aX1zaG93KGUpe2NsZWFyVGltZW91dCh0aGlzLl9oaWRlVGltZW91dElkKSx0aGlzLl9zaG93VGltZW91dElkPXNldFRpbWVvdXQoKCk9Pnt0aGlzLl90b2dnbGVWaXNpYmlsaXR5KCEwKSx0aGlzLl9zaG93VGltZW91dElkPXZvaWQgMH0sZSl9aGlkZShlKXtjbGVhclRpbWVvdXQodGhpcy5fc2hvd1RpbWVvdXRJZCksdGhpcy5faGlkZVRpbWVvdXRJZD1zZXRUaW1lb3V0KCgpPT57dGhpcy5fdG9nZ2xlVmlzaWJpbGl0eSghMSksdGhpcy5faGlkZVRpbWVvdXRJZD12b2lkIDB9LGUpfWFmdGVySGlkZGVuKCl7cmV0dXJuIHRoaXMuX29uSGlkZX1pc1Zpc2libGUoKXtyZXR1cm4gdGhpcy5faXNWaXNpYmxlfW5nT25EZXN0cm95KCl7dGhpcy5fY2FuY2VsUGVuZGluZ0FuaW1hdGlvbnMoKSx0aGlzLl9vbkhpZGUuY29tcGxldGUoKSx0aGlzLl90cmlnZ2VyRWxlbWVudD1udWxsfV9oYW5kbGVCb2R5SW50ZXJhY3Rpb24oKXt0aGlzLl9jbG9zZU9uSW50ZXJhY3Rpb24mJnRoaXMuaGlkZSgwKX1fbWFya0ZvckNoZWNrKCl7dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9X2hhbmRsZU1vdXNlTGVhdmUoe3JlbGF0ZWRUYXJnZXQ6ZX0peyghZXx8IXRoaXMuX3RyaWdnZXJFbGVtZW50LmNvbnRhaW5zKGUpKSYmKHRoaXMuaXNWaXNpYmxlKCk/dGhpcy5oaWRlKHRoaXMuX21vdXNlTGVhdmVIaWRlRGVsYXkpOnRoaXMuX2ZpbmFsaXplQW5pbWF0aW9uKCExKSl9X29uU2hvdygpe31faGFuZGxlQW5pbWF0aW9uRW5kKHthbmltYXRpb25OYW1lOmV9KXsoZT09PXRoaXMuX3Nob3dBbmltYXRpb258fGU9PT10aGlzLl9oaWRlQW5pbWF0aW9uKSYmdGhpcy5fZmluYWxpemVBbmltYXRpb24oZT09PXRoaXMuX3Nob3dBbmltYXRpb24pfV9jYW5jZWxQZW5kaW5nQW5pbWF0aW9ucygpe2NsZWFyVGltZW91dCh0aGlzLl9zaG93VGltZW91dElkKSxjbGVhclRpbWVvdXQodGhpcy5faGlkZVRpbWVvdXRJZCksdGhpcy5fc2hvd1RpbWVvdXRJZD10aGlzLl9oaWRlVGltZW91dElkPXZvaWQgMH1fZmluYWxpemVBbmltYXRpb24oZSl7ZT90aGlzLl9jbG9zZU9uSW50ZXJhY3Rpb249ITA6dGhpcy5pc1Zpc2libGUoKXx8dGhpcy5fb25IaWRlLm5leHQoKX1fdG9nZ2xlVmlzaWJpbGl0eShlKXtsZXQgaT10aGlzLl90b29sdGlwLm5hdGl2ZUVsZW1lbnQscj10aGlzLl9zaG93QW5pbWF0aW9uLG89dGhpcy5faGlkZUFuaW1hdGlvbjtpZihpLmNsYXNzTGlzdC5yZW1vdmUoZT9vOnIpLGkuY2xhc3NMaXN0LmFkZChlP3I6byksdGhpcy5faXNWaXNpYmxlPWUsZSYmIXRoaXMuX2FuaW1hdGlvbnNEaXNhYmxlZCYmImZ1bmN0aW9uIj09dHlwZW9mIGdldENvbXB1dGVkU3R5bGUpe2xldCBhPWdldENvbXB1dGVkU3R5bGUoaSk7KCIwcyI9PT1hLmdldFByb3BlcnR5VmFsdWUoImFuaW1hdGlvbi1kdXJhdGlvbiIpfHwibm9uZSI9PT1hLmdldFByb3BlcnR5VmFsdWUoImFuaW1hdGlvbi1uYW1lIikpJiYodGhpcy5fYW5pbWF0aW9uc0Rpc2FibGVkPSEwKX1lJiZ0aGlzLl9vblNob3coKSx0aGlzLl9hbmltYXRpb25zRGlzYWJsZWQmJihpLmNsYXNzTGlzdC5hZGQoIl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIiksdGhpcy5fZmluYWxpemVBbmltYXRpb24oZSkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKFF0KSxDKHBpLDgpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bn0pLG59KSgpLHExZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgVzFle2NvbnN0cnVjdG9yKGUsaSxyKXtzdXBlcihlLHIpLHRoaXMuX2VsZW1lbnRSZWY9aSx0aGlzLl9pc011bHRpbGluZT0hMSx0aGlzLl9zaG93QW5pbWF0aW9uPSJtYXQtbWRjLXRvb2x0aXAtc2hvdyIsdGhpcy5faGlkZUFuaW1hdGlvbj0ibWF0LW1kYy10b29sdGlwLWhpZGUifV9vblNob3coKXt0aGlzLl9pc011bHRpbGluZT10aGlzLl9pc1Rvb2x0aXBNdWx0aWxpbmUoKSx0aGlzLl9tYXJrRm9yQ2hlY2soKX1faXNUb29sdGlwTXVsdGlsaW5lKCl7bGV0IGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBlLmhlaWdodD4yNCYmZS53aWR0aD49MjAwfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKFF0KSxDKHhlKSxDKHBpLDgpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtYXQtdG9vbHRpcC1jb21wb25lbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiZVZShrMWUsNyksMiZlKXtsZXQgcjtiZShyPXZlKCkpJiYoaS5fdG9vbHRpcD1yLmZpcnN0KX19LGhvc3RBdHRyczpbImFyaWEtaGlkZGVuIiwidHJ1ZSJdLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MSZlJiZBKCJtb3VzZWxlYXZlIixmdW5jdGlvbihvKXtyZXR1cm4gaS5faGFuZGxlTW91c2VMZWF2ZShvKX0pLDImZSYmQnQoInpvb20iLGkuaXNWaXNpYmxlKCk/MTpudWxsKX0sZmVhdHVyZXM6W1hlXSxkZWNsczo0LHZhcnM6NCxjb25zdHM6W1sxLCJtZGMtdG9vbHRpcCIsIm1kYy10b29sdGlwLS1zaG93biIsIm1hdC1tZGMtdG9vbHRpcCIsMywibmdDbGFzcyIsImFuaW1hdGlvbmVuZCJdLFsidG9vbHRpcCIsIiJdLFsxLCJtZGMtdG9vbHRpcF9fc3VyZmFjZSIsIm1kYy10b29sdGlwX19zdXJmYWNlLWFuaW1hdGlvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwiZGl2IiwwLDEpLEEoImFuaW1hdGlvbmVuZCIsZnVuY3Rpb24obyl7cmV0dXJuIGkuX2hhbmRsZUFuaW1hdGlvbkVuZChvKX0pLGYoMiwiZGl2IiwyKSxUKDMpLGcoKSgpKSwyJmUmJihudCgibWRjLXRvb2x0aXAtLW11bHRpbGluZSIsaS5faXNNdWx0aWxpbmUpLGIoIm5nQ2xhc3MiLGkudG9vbHRpcENsYXNzKSx2KDMpLGt0KGkubWVzc2FnZSkpfSxkZXBlbmRlbmNpZXM6W3duXSxzdHlsZXM6WycubWRjLXRvb2x0aXBfX3N1cmZhY2V7d29yZC1icmVhazp2YXIoLS1tZGMtdG9vbHRpcC13b3JkLWJyZWFrLCBub3JtYWwpO292ZXJmbG93LXdyYXA6YW55d2hlcmV9Lm1kYy10b29sdGlwe3Bvc2l0aW9uOmZpeGVkO2Rpc3BsYXk6bm9uZTt6LWluZGV4Ojl9Lm1kYy10b29sdGlwLXdyYXBwZXItLXJpY2h7cG9zaXRpb246cmVsYXRpdmV9Lm1kYy10b29sdGlwLS1zaG93biwubWRjLXRvb2x0aXAtLXNob3dpbmcsLm1kYy10b29sdGlwLS1oaWRle2Rpc3BsYXk6aW5saW5lLWZsZXh9Lm1kYy10b29sdGlwLS1zaG93bi5tZGMtdG9vbHRpcC0tcmljaCwubWRjLXRvb2x0aXAtLXNob3dpbmcubWRjLXRvb2x0aXAtLXJpY2gsLm1kYy10b29sdGlwLS1oaWRlLm1kYy10b29sdGlwLS1yaWNoe2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xlZnQ6LTMyMHB4O3Bvc2l0aW9uOmFic29sdXRlfS5tZGMtdG9vbHRpcF9fc3VyZmFjZXtsaW5lLWhlaWdodDoxNnB4O3BhZGRpbmc6NHB4IDhweDttaW4td2lkdGg6NDBweDttYXgtd2lkdGg6MjAwcHg7bWluLWhlaWdodDoyNHB4O21heC1oZWlnaHQ6NDB2aDtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246Y2VudGVyfS5tZGMtdG9vbHRpcF9fc3VyZmFjZTo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMCk7Ym9yZGVyLXJhZGl1czppbmhlcml0O2NvbnRlbnQ6IiI7cG9pbnRlci1ldmVudHM6bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsubWRjLXRvb2x0aXBfX3N1cmZhY2U6OmJlZm9yZXtib3JkZXItY29sb3I6Q2FudmFzVGV4dH19Lm1kYy10b29sdGlwLS1yaWNoIC5tZGMtdG9vbHRpcF9fc3VyZmFjZXthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLWhlaWdodDoyNHB4O21pbi13aWR0aDo0MHB4O21heC13aWR0aDozMjBweDtwb3NpdGlvbjpyZWxhdGl2ZX0ubWRjLXRvb2x0aXAtLW11bHRpbGluZSAubWRjLXRvb2x0aXBfX3N1cmZhY2V7dGV4dC1hbGlnbjpsZWZ0fVtkaXI9cnRsXSAubWRjLXRvb2x0aXAtLW11bHRpbGluZSAubWRjLXRvb2x0aXBfX3N1cmZhY2UsLm1kYy10b29sdGlwLS1tdWx0aWxpbmUgLm1kYy10b29sdGlwX19zdXJmYWNlW2Rpcj1ydGxde3RleHQtYWxpZ246cmlnaHR9Lm1kYy10b29sdGlwX19zdXJmYWNlIC5tZGMtdG9vbHRpcF9fdGl0bGV7bWFyZ2luOjAgOHB4fS5tZGMtdG9vbHRpcF9fc3VyZmFjZSAubWRjLXRvb2x0aXBfX2NvbnRlbnR7bWF4LXdpZHRoOmNhbGMoMjAwcHggLSAoMiAqIDhweCkpO21hcmdpbjo4cHg7dGV4dC1hbGlnbjpsZWZ0fVtkaXI9cnRsXSAubWRjLXRvb2x0aXBfX3N1cmZhY2UgLm1kYy10b29sdGlwX19jb250ZW50LC5tZGMtdG9vbHRpcF9fc3VyZmFjZSAubWRjLXRvb2x0aXBfX2NvbnRlbnRbZGlyPXJ0bF17dGV4dC1hbGlnbjpyaWdodH0ubWRjLXRvb2x0aXAtLXJpY2ggLm1kYy10b29sdGlwX19zdXJmYWNlIC5tZGMtdG9vbHRpcF9fY29udGVudHttYXgtd2lkdGg6Y2FsYygzMjBweCAtICgyICogOHB4KSk7YWxpZ24tc2VsZjpzdHJldGNofS5tZGMtdG9vbHRpcF9fc3VyZmFjZSAubWRjLXRvb2x0aXBfX2NvbnRlbnQtbGlua3t0ZXh0LWRlY29yYXRpb246bm9uZX0ubWRjLXRvb2x0aXAtLXJpY2gtYWN0aW9ucywubWRjLXRvb2x0aXBfX2NvbnRlbnQsLm1kYy10b29sdGlwX190aXRsZXt6LWluZGV4OjF9Lm1kYy10b29sdGlwX19zdXJmYWNlLWFuaW1hdGlvbntvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKDAuOCk7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtLG9wYWNpdHl9Lm1kYy10b29sdGlwLS1zaG93biAubWRjLXRvb2x0aXBfX3N1cmZhY2UtYW5pbWF0aW9ue3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9Lm1kYy10b29sdGlwLS1oaWRlIC5tZGMtdG9vbHRpcF9fc3VyZmFjZS1hbmltYXRpb257dHJhbnNmb3JtOnNjYWxlKDEpfS5tZGMtdG9vbHRpcF9fY2FyZXQtc3VyZmFjZS10b3AsLm1kYy10b29sdGlwX19jYXJldC1zdXJmYWNlLWJvdHRvbXtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MjRweDt3aWR0aDoyNHB4O3RyYW5zZm9ybTpyb3RhdGUoMzVkZWcpIHNrZXdZKDIwZGVnKSBzY2FsZVgoMC45Mzk2OTI2MjA4KX0ubWRjLXRvb2x0aXBfX2NhcmV0LXN1cmZhY2UtdG9wIC5tZGMtZWxldmF0aW9uLW92ZXJsYXksLm1kYy10b29sdGlwX19jYXJldC1zdXJmYWNlLWJvdHRvbSAubWRjLWVsZXZhdGlvbi1vdmVybGF5e3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG9wOjA7bGVmdDowfS5tZGMtdG9vbHRpcF9fY2FyZXQtc3VyZmFjZS1ib3R0b217b3V0bGluZToxcHggc29saWQgcmdiYSgwLDAsMCwwKTt6LWluZGV4Oi0xfUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5tZGMtdG9vbHRpcF9fY2FyZXQtc3VyZmFjZS1ib3R0b217b3V0bGluZS1jb2xvcjpDYW52YXNUZXh0fX0ubWRjLXRvb2x0aXBfX3N1cmZhY2V7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtcGxhaW4tdG9vbHRpcC1jb250YWluZXItY29sb3IsICNmZmYpfS5tZGMtdG9vbHRpcF9fc3VyZmFjZXtib3JkZXItcmFkaXVzOnZhcigtLW1kYy1wbGFpbi10b29sdGlwLWNvbnRhaW5lci1zaGFwZSwgdmFyKC0tbWRjLXNoYXBlLXNtYWxsLCA0cHgpKX0ubWRjLXRvb2x0aXBfX2NhcmV0LXN1cmZhY2UtdG9wLC5tZGMtdG9vbHRpcF9fY2FyZXQtc3VyZmFjZS1ib3R0b217Ym9yZGVyLXJhZGl1czp2YXIoLS1tZGMtcGxhaW4tdG9vbHRpcC1jb250YWluZXItc2hhcGUsIHZhcigtLW1kYy1zaGFwZS1zbWFsbCwgNHB4KSl9Lm1kYy10b29sdGlwX19zdXJmYWNle2NvbG9yOnZhcigtLW1kYy1wbGFpbi10b29sdGlwLXN1cHBvcnRpbmctdGV4dC1jb2xvciwgIzAwMCl9Lm1kYy10b29sdGlwX19zdXJmYWNle2ZvbnQtZmFtaWx5OnZhcigtLW1kYy1wbGFpbi10b29sdGlwLXN1cHBvcnRpbmctdGV4dC1mb250LCBpbmhlcml0KTtmb250LXNpemU6dmFyKC0tbWRjLXBsYWluLXRvb2x0aXAtc3VwcG9ydGluZy10ZXh0LXNpemUsIGluaGVyaXQpO2ZvbnQtd2VpZ2h0OnZhcigtLW1kYy1wbGFpbi10b29sdGlwLXN1cHBvcnRpbmctdGV4dC13ZWlnaHQsIGluaGVyaXQpO2xldHRlci1zcGFjaW5nOnZhcigtLW1kYy1wbGFpbi10b29sdGlwLXN1cHBvcnRpbmctdGV4dC10cmFja2luZywgaW5oZXJpdCl9Lm1hdC1tZGMtdG9vbHRpcHtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2Zvcm06c2NhbGUoMCl9Lm1hdC1tZGMtdG9vbHRpcDo6YmVmb3Jle2NvbnRlbnQ6IiI7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7ei1pbmRleDotMTtwb3NpdGlvbjphYnNvbHV0ZX0ubWF0LW1kYy10b29sdGlwLXBhbmVsLWJlbG93IC5tYXQtbWRjLXRvb2x0aXA6OmJlZm9yZXt0b3A6LThweH0ubWF0LW1kYy10b29sdGlwLXBhbmVsLWFib3ZlIC5tYXQtbWRjLXRvb2x0aXA6OmJlZm9yZXtib3R0b206LThweH0ubWF0LW1kYy10b29sdGlwLXBhbmVsLXJpZ2h0IC5tYXQtbWRjLXRvb2x0aXA6OmJlZm9yZXtsZWZ0Oi04cHh9Lm1hdC1tZGMtdG9vbHRpcC1wYW5lbC1sZWZ0IC5tYXQtbWRjLXRvb2x0aXA6OmJlZm9yZXtyaWdodDotOHB4fS5tYXQtbWRjLXRvb2x0aXAuX21hdC1hbmltYXRpb24tbm9vcGFibGV7YW5pbWF0aW9uOm5vbmU7dHJhbnNmb3JtOnNjYWxlKDEpfS5tYXQtbWRjLXRvb2x0aXAtcGFuZWwtbm9uLWludGVyYWN0aXZle3BvaW50ZXItZXZlbnRzOm5vbmV9QGtleWZyYW1lcyBtYXQtbWRjLXRvb2x0aXAtc2hvd3swJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKDAuOCl9MTAwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpfX1Aa2V5ZnJhbWVzIG1hdC1tZGMtdG9vbHRpcC1oaWRlezAle29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMSl9MTAwJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKDAuOCl9fS5tYXQtbWRjLXRvb2x0aXAtc2hvd3thbmltYXRpb246bWF0LW1kYy10b29sdGlwLXNob3cgMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkgZm9yd2FyZHN9Lm1hdC1tZGMtdG9vbHRpcC1oaWRle2FuaW1hdGlvbjptYXQtbWRjLXRvb2x0aXAtaGlkZSA3NW1zIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpIGZvcndhcmRzfSddLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLFhnPShmcigic3RhdGUiLFtTaSgiaW5pdGlhbCwgdm9pZCwgaGlkZGVuIixybih7b3BhY2l0eTowLHRyYW5zZm9ybToic2NhbGUoMC44KSJ9KSksU2koInZpc2libGUiLHJuKHt0cmFuc2Zvcm06InNjYWxlKDEpIn0pKSxiaSgiKiA9PiB2aXNpYmxlIixNaSgiMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkiKSksYmkoIiogPT4gaGlkZGVuIixNaSgiNzVtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKSIpKV0pLCgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtwcm92aWRlcnM6W04xZV0saW1wb3J0czpbcGcsRGUsRG8sZG4sZG4sSWNdfSksbn0pKCkpO2Z1bmN0aW9uIFgxZShuLHQpezEmbiYmaygwLCJtYXQtaWNvbiIsNCl9ZnVuY3Rpb24gWTFlKG4sdCl7MSZuJiZrKDAsIm1hdC1pY29uIiw0KX1mdW5jdGlvbiBRMWUobix0KXsxJm4mJmsoMCwibWF0LWljb24iLDQpfWZ1bmN0aW9uIFoxZShuLHQpezEmbiYmaygwLCJkaXYiLDUpfXZhciBLMWU9ZnVuY3Rpb24oKXtyZXR1cm57c2Vuc2l0aXZpdHk6ImFjY2VudCJ9fSxXVD0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy5Db2x1bW5IZWFkZXJUeXBlPWd0fWdldFNwZWNpYWxUeXBlQ2xhc3NlcyhlKXtzd2l0Y2goZSl7Y2FzZSBndC5TVEVQX0FUX01JTjpyZXR1cm4ic3RlcC1hdC1taW4iO2Nhc2UgZ3QuU1RFUF9BVF9NQVg6cmV0dXJuInN0ZXAtYXQtbWF4IjtkZWZhdWx0OnJldHVybiIifX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sidGItZGF0YS10YWJsZS1oZWFkZXIiXV0saW5wdXRzOntoZWFkZXI6ImhlYWRlciJ9LGRlY2xzOjcsdmFyczo5LGNvbnN0czpbWzEsImhlYWRlci1jb250YWluZXIiLDMsIm5nU3dpdGNoIl0sWyJzdmdJY29uIiwiY2hhbmdlX2hpc3RvcnlfMjRweCIsNCwibmdTd2l0Y2hDYXNlIl0sWyJjbGFzcyIsImV4dHJhLXJpZ2h0LXBhZGRpbmciLDQsIm5nU3dpdGNoRGVmYXVsdCJdLFszLCJuZ0NsYXNzIiwibWF0VG9vbHRpcCIsIm1hdFRvb2x0aXBEaXNhYmxlZCJdLFsic3ZnSWNvbiIsImNoYW5nZV9oaXN0b3J5XzI0cHgiXSxbMSwiZXh0cmEtcmlnaHQtcGFkZGluZyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwiZGl2IiwwKSxTKDEsWDFlLDEsMCwibWF0LWljb24iLDEpLFMoMixZMWUsMSwwLCJtYXQtaWNvbiIsMSksUygzLFExZSwxLDAsIm1hdC1pY29uIiwxKSxTKDQsWjFlLDEsMCwiZGl2IiwyKSxmKDUsInNwYW4iLDMpLFQoNiksZygpKCkpLDImZSYmKGIoIm5nU3dpdGNoIixpLmhlYWRlci50eXBlKSx2KDEpLGIoIm5nU3dpdGNoQ2FzZSIsaS5Db2x1bW5IZWFkZXJUeXBlLlZBTFVFX0NIQU5HRSksdigxKSxiKCJuZ1N3aXRjaENhc2UiLGkuQ29sdW1uSGVhZGVyVHlwZS5QRVJDRU5UQUdFX0NIQU5HRSksdigxKSxiKCJuZ1N3aXRjaENhc2UiLGkuQ29sdW1uSGVhZGVyVHlwZS5SQVdfQ0hBTkdFKSx2KDIpLGIoIm5nQ2xhc3MiLGkuZ2V0U3BlY2lhbFR5cGVDbGFzc2VzKGkuaGVhZGVyLnR5cGUpKSgibWF0VG9vbHRpcCIsaS5oZWFkZXIubmFtZSkoIm1hdFRvb2x0aXBEaXNhYmxlZCIsMD09PWkuaGVhZGVyLm5hbWUubG9jYWxlQ29tcGFyZShpLmhlYWRlci5kaXNwbGF5TmFtZSx2b2lkIDAsbWMoOCxLMWUpKSksdigxKSxrdChpLmhlYWRlci5kaXNwbGF5TmFtZSkpfSxkZXBlbmRlbmNpZXM6W3duLG1yLGtyLGR1LGJuLEdUXSxzdHlsZXM6WyIuaGVhZGVyLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0uZXh0cmEtcmlnaHQtcGFkZGluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1yaWdodDoxcHh9bWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMnB4O3dpZHRoOjEycHg7bWluLXdpZHRoOjEycHg7bGluZS1oZWlnaHQ6MTJweH0uc3RlcC1hdC1taW5bX25nY29udGVudC0lQ09NUCVde21pbi13aWR0aDozN3B4fS5zdGVwLWF0LW1heFtfbmdjb250ZW50LSVDT01QJV17bWluLXdpZHRoOjQwcHh9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKTtmdW5jdGlvbiBKMWUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJkaXYiLDgpLEEoImRyYWdzdGFydCIsZnVuY3Rpb24oKXtsZXQgbz1uZShlKS4kaW1wbGljaXQ7cmV0dXJuIGllKHcoMikuZHJhZ1N0YXJ0KG8pKX0pKCJkcmFnZW5kIixmdW5jdGlvbigpe25lKGUpO2xldCByPXcoKS5kYXRhVGFibGVNb2RlO3JldHVybiBpZSh3KCkuZHJhZ0VuZChyKSl9KSgiZHJhZ2VudGVyIixmdW5jdGlvbigpe2xldCBvPW5lKGUpLiRpbXBsaWNpdCxhPXcoKS5kYXRhVGFibGVNb2RlO3JldHVybiBpZSh3KCkuZHJhZ0VudGVyKG8sYSkpfSksZigxLCJtYXQtY2hlY2tib3giLDkpLEEoImNoYW5nZSIsZnVuY3Rpb24oKXtsZXQgbz1uZShlKS4kaW1wbGljaXQsYT13KCkuZGF0YVRhYmxlTW9kZTtyZXR1cm4gaWUodygpLnRvZ2dsZUhlYWRlcihvLGEpKX0pLGsoMiwidGItZGF0YS10YWJsZS1oZWFkZXIiLDEwKSxnKCkoKX1pZigyJm4pe2xldCBlPXQuJGltcGxpY2l0O2IoIm5nQ2xhc3MiLHcoMikuZ2V0SGlnaGxpZ2h0Q2xhc3NlcyhlKSksdigxKSxiKCJjaGVja2VkIixlLmVuYWJsZWQpLHYoMSksYigiaGVhZGVyIixlKX19ZnVuY3Rpb24gJDFlKG4sdCl7MSZuJiZTKDAsSjFlLDMsMywiZGl2Iiw3KSwyJm4mJmIoIm5nRm9yT2YiLHQuaGVhZGVycyl9dmFyIE5RPWZ1bmN0aW9uKG4sdCl7cmV0dXJue2hlYWRlcnM6bixkYXRhVGFibGVNb2RlOnR9fSxJTj1uPT57bi5wcmV2ZW50RGVmYXVsdCgpfSxMUT0obix0KT0+dC5maW5kSW5kZXgoZT0+ZS5uYW1lPT09bi5uYW1lKSxEZD0oKCk9PihmdW5jdGlvbihuKXtuW24uVE9QPTBdPSJUT1AiLG5bbi5CT1RUT009MV09IkJPVFRPTSJ9KERkfHwoRGQ9e30pKSxEZCkpKCksQlE9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLmhvc3RFbGVtZW50PWUsdGhpcy5EYXRhVGFibGVNb2RlPVdyLHRoaXMuaGlnaGxpZ2h0RWRnZT1EZC5UT1AsdGhpcy5vblNjYWxhclRhYmxlQ29sdW1uRWRpdD1uZXcgRix0aGlzLm9uU2NhbGFyVGFibGVDb2x1bW5Ub2dnbGVkPW5ldyBGLHRoaXMub25TY2FsYXJUYWJsZUNvbHVtbkVkaXRvckNsb3NlZD1uZXcgRix0aGlzLm9uVGFiQ2hhbmdlPW5ldyBGfW5nT25EZXN0cm95KCl7dGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixJTil9dGFiQ2hhbmdlKGUpe3RoaXMub25UYWJDaGFuZ2UuZW1pdCgwPT09ZS5pbmRleD9Xci5TSU5HTEU6V3IuUkFOR0UpfWRyYWdTdGFydChlKXt0aGlzLmRyYWdnaW5nSGVhZGVyPWUsdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixJTil9ZHJhZ0VuZChlKXtpZighdGhpcy5kcmFnZ2luZ0hlYWRlcnx8IXRoaXMuaGlnaGxpZ2h0ZWRIZWFkZXIpcmV0dXJuO3RoaXMuZ2V0SGVhZGVyc0Zvck1vZGUoZSk7bGV0IHI9ey4uLnRoaXMuZHJhZ2dpbmdIZWFkZXJ9LG89ey4uLnRoaXMuaGlnaGxpZ2h0ZWRIZWFkZXJ9O3ImJm8mJnIubmFtZSE9PW8ubmFtZSYmdGhpcy5vblNjYWxhclRhYmxlQ29sdW1uRWRpdC5lbWl0KHtzb3VyY2U6cixkZXN0aW5hdGlvbjpvLHNpZGU6dGhpcy5oaWdobGlnaHRFZGdlPT09RGQuVE9QP21vLkxFRlQ6bW8uUklHSFQsZGF0YVRhYmxlTW9kZTplfSksdGhpcy5kcmFnZ2luZ0hlYWRlcj12b2lkIDAsdGhpcy5oaWdobGlnaHRlZEhlYWRlcj12b2lkIDAsdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixJTil9ZHJhZ0VudGVyKGUsaSl7aWYoIXRoaXMuZHJhZ2dpbmdIZWFkZXIpcmV0dXJuO2xldCByPXRoaXMuZ2V0SGVhZGVyc0Zvck1vZGUoaSk7dGhpcy5oaWdobGlnaHRFZGdlPUxRKGUscik8TFEodGhpcy5kcmFnZ2luZ0hlYWRlcixyKT9EZC5UT1A6RGQuQk9UVE9NLHRoaXMuaGlnaGxpZ2h0ZWRIZWFkZXI9ZX10b2dnbGVIZWFkZXIoZSxpKXt0aGlzLm9uU2NhbGFyVGFibGVDb2x1bW5Ub2dnbGVkLmVtaXQoe2RhdGFUYWJsZU1vZGU6aSxoZWFkZXI6ZX0pfWdldEhpZ2hsaWdodENsYXNzZXMoZSl7cmV0dXJuIGUubmFtZSE9PXRoaXMuaGlnaGxpZ2h0ZWRIZWFkZXI/Lm5hbWU/e306e2hpZ2hsaWdodGVkOiEwLCJoaWdobGlnaHQtdG9wIjp0aGlzLmhpZ2hsaWdodEVkZ2U9PT1EZC5UT1AsImhpZ2hsaWdodC1ib3R0b20iOnRoaXMuaGlnaGxpZ2h0RWRnZT09PURkLkJPVFRPTX19Z2V0U2VsZWN0ZWRUYWJJbmRleCgpe3JldHVybiB0aGlzLnNlbGVjdGVkVGFiPT09V3IuU0lOR0xFPzA6MX1nZXRIZWFkZXJzRm9yTW9kZShlKXtyZXR1cm4gZT09PVdyLlNJTkdMRT90aGlzLnNpbmdsZUhlYWRlcnM6dGhpcy5yYW5nZUhlYWRlcnN9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtZXRyaWNzLXNjYWxhci1jb2x1bW4tZWRpdG9yLWNvbXBvbmVudCJdXSxpbnB1dHM6e3JhbmdlSGVhZGVyczoicmFuZ2VIZWFkZXJzIixzaW5nbGVIZWFkZXJzOiJzaW5nbGVIZWFkZXJzIixzZWxlY3RlZFRhYjoic2VsZWN0ZWRUYWIifSxvdXRwdXRzOntvblNjYWxhclRhYmxlQ29sdW1uRWRpdDoib25TY2FsYXJUYWJsZUNvbHVtbkVkaXQiLG9uU2NhbGFyVGFibGVDb2x1bW5Ub2dnbGVkOiJvblNjYWxhclRhYmxlQ29sdW1uVG9nZ2xlZCIsb25TY2FsYXJUYWJsZUNvbHVtbkVkaXRvckNsb3NlZDoib25TY2FsYXJUYWJsZUNvbHVtbkVkaXRvckNsb3NlZCIsb25UYWJDaGFuZ2U6Im9uVGFiQ2hhbmdlIn0sZGVjbHM6MTEsdmFyczoxMyxjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gdD0kbG9jYWxpemVgOkxhYmVsIG9uIGEgYnV0dG9uIHRvIGNsb3NlIHRoZSBjb2x1bW4gZWRpdG9yLuKQn2NiNjE2Y2U5YjQzMjdiNDFlNmJkYjkzNDQ2NjliYTdjNzJlMmM3MGXikJ83MjA1NjM1NzY0NzEzMDM0ODQyOkNsb3NlIGNvbHVtbiBlZGl0b3JgLFtbMSwiZWRpdG9yLWNvbnRyb2xzIl0sWzEsInRhYi1ncm91cCIsMywic2VsZWN0ZWRJbmRleCIsInNlbGVjdGVkVGFiQ2hhbmdlIl0sWzMsImxhYmVsIl0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiLCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCJdLFsxLCJmb290ZXIiXSxbIm1hdC1idXR0b24iLCIiLCJhcmlhLWxhYmVsIix0LDEsImNsb3NlLWJ1dHRvbiIsMywiY2xpY2siXSxbImhlYWRlckxpc3QiLCIiXSxbImNsYXNzIiwiaGVhZGVyLWxpc3QtaXRlbSIsImRyYWdnYWJsZSIsInRydWUiLDMsIm5nQ2xhc3MiLCJkcmFnc3RhcnQiLCJkcmFnZW5kIiwiZHJhZ2VudGVyIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImRyYWdnYWJsZSIsInRydWUiLDEsImhlYWRlci1saXN0LWl0ZW0iLDMsIm5nQ2xhc3MiLCJkcmFnc3RhcnQiLCJkcmFnZW5kIiwiZHJhZ2VudGVyIl0sWzMsImNoZWNrZWQiLCJjaGFuZ2UiXSxbMywiaGVhZGVyIl1dfSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmKGYoMCwiZGl2IiwwKSgxLCJtYXQtdGFiLWdyb3VwIiwxKSxBKCJzZWxlY3RlZFRhYkNoYW5nZSIsZnVuY3Rpb24obyl7cmV0dXJuIGkudGFiQ2hhbmdlKG8pfSksZigyLCJtYXQtdGFiIiwyKSxoaSgzLDMpLGcoKSxmKDQsIm1hdC10YWIiLDIpLGhpKDUsMyksZygpKCkoKSxmKDYsImRpdiIsNCkoNywiYnV0dG9uIiw1KSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vblNjYWxhclRhYmxlQ29sdW1uRWRpdG9yQ2xvc2VkLmVtaXQoKX0pLFQoOCwiIENsb3NlICIpLGcoKSgpLFMoOSwkMWUsMSwxLCJuZy10ZW1wbGF0ZSIsbnVsbCw2LGp0KSksMiZlKXtsZXQgcj1zdCgxMCk7digxKSxiKCJzZWxlY3RlZEluZGV4IixpLmdldFNlbGVjdGVkVGFiSW5kZXgoKSksdigxKSxiKCJsYWJlbCIsIlNpbmdsZSIpLHYoMSksYigibmdUZW1wbGF0ZU91dGxldCIscikoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixTbyg3LE5RLGkuc2luZ2xlSGVhZGVycyxpLkRhdGFUYWJsZU1vZGUuU0lOR0xFKSksdigxKSxiKCJsYWJlbCIsIlJhbmdlIiksdigxKSxiKCJuZ1RlbXBsYXRlT3V0bGV0IixyKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLFNvKDEwLE5RLGkucmFuZ2VIZWFkZXJzLGkuRGF0YVRhYmxlTW9kZS5SQU5HRSkpfX0sZGVwZW5kZW5jaWVzOlt3bixubixlbyxXVCx4cyxheSx2RSxraV0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSAgICAgLm1hdC10YWItbGFiZWx7bWluLXdpZHRoOjA7cGFkZGluZzowIDMwcHh9LmVkaXRvci1jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OmNhbGMoMTAwJSAtIDQ1cHgpfS50YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MDtoZWlnaHQ6MTAwJX0uaGVhZGVyLWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzozcHg7aGVpZ2h0OjI0cHh9LmhpZ2hsaWdodGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9LmhpZ2hsaWdodC1ib3R0b21bX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNmZjk4MDB9LmhpZ2hsaWdodC10b3BbX25nY29udGVudC0lQ09NUCVde2JvcmRlci10b3A6MnB4IHNvbGlkICNmZjk4MDB9LmZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3R0b206MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3BhZGRpbmc6NHB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNlYmViZWJ9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5mb290ZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1jb2xvcjojNTU1fS5jbG9zZS1idXR0b25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7d2lkdGg6ODRweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuY2xvc2UtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmNsb3NlLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9ICAubWF0LW1kYy10YWItYm9keS13cmFwcGVye2ZsZXg6MX0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpO2Z1bmN0aW9uIFZRKG4pe3JldHVybiBuLmZpbHRlcih0PT4iUlVOIiE9PXQudHlwZSl9dmFyIEhRPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5zdG9yZT1lLHRoaXMuc2luZ2xlSGVhZGVycyQ9dGhpcy5zdG9yZS5zZWxlY3QoTXYpLnBpcGUocShWUSkpLHRoaXMucmFuZ2VIZWFkZXJzJD10aGlzLnN0b3JlLnNlbGVjdCh3dikucGlwZShxKFZRKSksdGhpcy5zZWxlY3RlZFRhYiQ9dGhpcy5zdG9yZS5zZWxlY3QoTFcpfW9uU2NhbGFyVGFibGVDb2x1bW5Ub2dnbGVkKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2goR2coZSkpfW9uU2NhbGFyVGFibGVDb2x1bW5FZGl0KGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2goamcoZSkpfW9uU2NhbGFyVGFibGVDb2x1bW5FZGl0b3JDbG9zZWQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKHVUKCkpfW9uVGFiQ2hhbmdlKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2goZFQoe3RhYjplfSkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKEllKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sibWV0cmljcy1zY2FsYXItY29sdW1uLWVkaXRvciJdXSxkZWNsczo0LHZhcnM6OSxjb25zdHM6W1szLCJzaW5nbGVIZWFkZXJzIiwicmFuZ2VIZWFkZXJzIiwic2VsZWN0ZWRUYWIiLCJvblNjYWxhclRhYmxlQ29sdW1uVG9nZ2xlZCIsIm9uU2NhbGFyVGFibGVDb2x1bW5FZGl0Iiwib25TY2FsYXJUYWJsZUNvbHVtbkVkaXRvckNsb3NlZCIsIm9uVGFiQ2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJtZXRyaWNzLXNjYWxhci1jb2x1bW4tZWRpdG9yLWNvbXBvbmVudCIsMCksQSgib25TY2FsYXJUYWJsZUNvbHVtblRvZ2dsZWQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uU2NhbGFyVGFibGVDb2x1bW5Ub2dnbGVkKG8pfSkoIm9uU2NhbGFyVGFibGVDb2x1bW5FZGl0IixmdW5jdGlvbihvKXtyZXR1cm4gaS5vblNjYWxhclRhYmxlQ29sdW1uRWRpdChvKX0pKCJvblNjYWxhclRhYmxlQ29sdW1uRWRpdG9yQ2xvc2VkIixmdW5jdGlvbigpe3JldHVybiBpLm9uU2NhbGFyVGFibGVDb2x1bW5FZGl0b3JDbG9zZWQoKX0pKCJvblRhYkNoYW5nZSIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25UYWJDaGFuZ2Uobyl9KSxVKDEsImFzeW5jIiksVSgyLCJhc3luYyIpLFUoMywiYXN5bmMiKSxnKCkpLDImZSYmYigic2luZ2xlSGVhZGVycyIsRygxLDMsaS5zaW5nbGVIZWFkZXJzJCkpKCJyYW5nZUhlYWRlcnMiLEcoMiw1LGkucmFuZ2VIZWFkZXJzJCkpKCJzZWxlY3RlZFRhYiIsRygzLDcsaS5zZWxlY3RlZFRhYiQpKX0sZGVwZW5kZW5jaWVzOltCUSxjdF0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksWWc9KCgpPT4oZnVuY3Rpb24obil7bltuLk9SSUdJTkFMPTBdPSJPUklHSU5BTCIsbltuLkRFUklWRUQ9MV09IkRFUklWRUQifShZZ3x8KFlnPXt9KSksWWcpKSgpLG5FZT1XKERXLFJ1LChuLHQpPT5uZXcgU2V0KE9iamVjdC5lbnRyaWVzKG4uc2NhbGFycy50YWdUb1J1bnMpLmZpbHRlcigoWyxlXSk9PiF0fHwhdC5zaXplfHxlLnNvbWUoaT0+dD8uZ2V0KGkpKSkubWFwKChbZV0pPT5lKSkpLGlFZT1XKG8xLFJ1LE5XLG5FZSwobix0LGUsaSk9PntsZXQgcj1BcnJheS5mcm9tKHQ/LnZhbHVlcygpfHxbXSkuc29tZShCb29sZWFuKTtyZXR1cm4gbi5maWx0ZXIobz0+Z3Moby5wbHVnaW4pP0Jvb2xlYW4odCYmdC5nZXQoby5ydW5JZCkpOiFlfHwhcnx8by5wbHVnaW4hPT1Bbi5TQ0FMQVJTfHxpLmhhcyhvLnRhZykpfSksamg9VyhpRWUsbj0+bi5zb3J0KCh0LGUpPT52eSh0LnRhZyxlLnRhZykpKSxxVD17ZmlsdGVyUnVuSXRlbXNCeVJlZ2V4OihuLHQsZSk9PnQ/bi5maWx0ZXIoaT0+UzEoe3J1bk5hbWU6aS5ydW4ubmFtZSxleHBlcmltZW50QWxpYXM6aS5leHBlcmltZW50QWxpYXN9LHQsZSkpOm4sbWF0Y2hGaWx0ZXI6KG4sdCk9PnZvaWQgMD09PXQ/bi5pbmNsdWRlVW5kZWZpbmVkOm4udHlwZT09PWlvLkRJU0NSRVRFP24uZmlsdGVyVmFsdWVzLmluY2x1ZGVzKHQpOm4udHlwZT09PWlvLklOVEVSVkFMJiYibnVtYmVyIj09dHlwZW9mIHQmJm4uZmlsdGVyTG93ZXJWYWx1ZTw9dCYmdDw9bi5maWx0ZXJVcHBlclZhbHVlLGZpbHRlclJ1bkl0ZW1zQnlIcGFyYW1BbmRNZXRyaWNGaWx0ZXI6KG4sdCxlKT0+bi5maWx0ZXIoKHtocGFyYW1zOmksbWV0cmljczpyfSk9PntsZXQgbz1bLi4udC5lbnRyaWVzKCldLmV2ZXJ5KChbcyxsXSk9PntsZXQgYz1pLmdldChzKTtyZXR1cm4gcVQubWF0Y2hGaWx0ZXIobCxjKX0pLGE9Wy4uLmUuZW50cmllcygpXS5ldmVyeSgoW3MsbF0pPT57bGV0IGM9ci5nZXQocyk7cmV0dXJuIHFULm1hdGNoRmlsdGVyKGwsYyl9KTtyZXR1cm4gbyYmYX0pfSxYVD1XKFJGLElTLEFTLChuLHQsZSk9Pm5ldyBNYXAoWy4uLm4sLi4udCwuLi5lXSkpLHJFZT1XKHYxLHl1LFJ1LFB1LHFzLChuLHQsZSxpLHIpPT5uLm1hcChvPT57bGV0IGE9bmV3IE1hcDsoby5ocGFyYW1zfHxbXSkuZm9yRWFjaChsPT57YS5zZXQobC5uYW1lLGwudmFsdWUpfSk7bGV0IHM9bmV3IE1hcDtyZXR1cm4oby5tZXRyaWNzfHxbXSkuZm9yRWFjaChsPT57cy5zZXQobC50YWcsbC52YWx1ZSl9KSx7cnVuOm8sZXhwZXJpbWVudE5hbWU6dFtvLmV4cGVyaW1lbnRJZF18fCIiLGV4cGVyaW1lbnRBbGlhczpyW28uZXhwZXJpbWVudElkXSxzZWxlY3RlZDpCb29sZWFuKGUmJmUuZ2V0KG8uaWQpKSxydW5Db2xvcjppW28uaWRdLGhwYXJhbXM6YSxtZXRyaWNzOnN9fSkpLEFOPVcoQXUsckVlLElTLEFTLFdzLChuLHQsZSxpLHIpPT57bGV0IG89cVQuZmlsdGVyUnVuSXRlbXNCeVJlZ2V4KHQsbixyPT09Q24uQ09NUEFSRV9FWFBFUklNRU5UKTtyZXR1cm4gcVQuZmlsdGVyUnVuSXRlbXNCeUhwYXJhbUFuZE1ldHJpY0ZpbHRlcihvLGUsaSl9KSx6UT1XKEFOLG49Pm5ldyBTZXQobi5tYXAoKHtydW46e2lkOnR9fSk9PnQpKSksVVE9VyhEUyxvciwobix0KT0+dD9uLm1hcChlPT4oe3R5cGU6Z3QuSFBBUkFNLG5hbWU6ZS5uYW1lLGRpc3BsYXlOYW1lOmUuZGlzcGxheU5hbWV8fGUubmFtZSxlbmFibGVkOiExLHRhZ3M6ZS5kaWZmZXJzP1siZGlmZmVycyJdOltdLHJlbW92YWJsZTohMCxzb3J0YWJsZTohMCxtb3ZhYmxlOiEwLGZpbHRlcmFibGU6ITB9KSk6W10pLFlUPVcoVVEsbWQsKG4sdCk9PntsZXQgZT1uZXcgU2V0KHQubWFwKCh7bmFtZTppfSk9PmkpKTtyZXR1cm4gbi5maWx0ZXIoaT0+IWUuaGFzKGkubmFtZSkpfSksUWc9KF9zKG49PlcoZTIobiksVVEsKHQsZSk9PlsuLi50LC4uLmVdKSksKCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkpe3RoaXMucmVmPWUsdGhpcy5jZGtTY3JvbGxhYmxlPWksdGhpcy5vblZpc2liaWxpdHlDaGFuZ2U9bmV3IEYsdGhpcy5uZ1Vuc3Vic2NyaWJlJD1uZXcgRWUsdGhpcy5vbkV2ZW50JD1uZXcgRWV9bmdPbkluaXQoKXtsZXQgZT17cm9vdDp0aGlzLmNka1Njcm9sbGFibGU/dGhpcy5jZGtTY3JvbGxhYmxlLmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50Om51bGx9O3RoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXJNYXJnaW4mJihlLnJvb3RNYXJnaW49dGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlck1hcmdpbik7bGV0IGk9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKHI9Pnt0aGlzLm9uRXZlbnQkLm5leHQocil9LGUpO2kub2JzZXJ2ZSh0aGlzLnJlZi5uYXRpdmVFbGVtZW50KSx0aGlzLm5nVW5zdWJzY3JpYmUkLnN1YnNjcmliZSgoKT0+e2kudW5vYnNlcnZlKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQpfSksdGhpcy5vbkV2ZW50JC5waXBlKGl0KHRoaXMubmdVbnN1YnNjcmliZSQpKS5zdWJzY3JpYmUocj0+e2xldCBvPXIuc2xpY2UoLTEpWzBdO3RoaXMub25WaXNpYmlsaXR5Q2hhbmdlLmVtaXQoe3Zpc2libGU6by5pc0ludGVyc2VjdGluZ30pfSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUkLm5leHQoKSx0aGlzLm5nVW5zdWJzY3JpYmUkLmNvbXBsZXRlKCl9d2FpdEZvckV2ZW50Rm9yVGVzdE9ubHkoKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+dGhpcy5vbkV2ZW50JC5waXBlKEx0KDEpKS5zdWJzY3JpYmUoKCk9PntlKCl9KSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMoeGQsOCkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLHNlbGVjdG9yczpbWyIiLCJvYnNlcnZlSW50ZXJzZWN0aW9uIiwiIl1dLGlucHV0czp7aW50ZXJzZWN0aW9uT2JzZXJ2ZXJNYXJnaW46ImludGVyc2VjdGlvbk9ic2VydmVyTWFyZ2luIn0sb3V0cHV0czp7b25WaXNpYmlsaXR5Q2hhbmdlOiJvblZpc2liaWxpdHlDaGFuZ2UifX0pLG59KSgpKSxqUT0iL3NjYWxhcl9zdW1tYXJ5IjtmdW5jdGlvbiBaZyhuLHQpe2xldCBlPW47cmV0dXJuIHQmJm4uc3RhcnRzV2l0aCh0KyIvIikmJihlPW4uc2xpY2UodC5sZW5ndGgrMSkpLGUuZW5kc1dpdGgoalEpJiYoZT1lLnNsaWNlKDAsLWpRLmxlbmd0aCkpLGV8fG59dmFyIFFUPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpKXt0aGlzLnN0b3JlPWUsdGhpcy5jaGFuZ2VEZXRlY3RvclJlZj1pLHRoaXMuaHJlZkF0dHI9dm9pZCAwLHRoaXMuc3JjQXR0cj12b2lkIDAsdGhpcy5pbmNsdWRlRmVhdHVyZUZsYWdzPSEwfWdldFVybFdpdGhGZWF0dXJlRmxhZ3MoZSl7cmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KEhmKS5waXBlKHEoaT0+e2lmKE9iamVjdC5rZXlzKGkpLmxlbmd0aD4wKXtsZXQgcj1uZXcgVVJMU2VhcmNoUGFyYW1zKFtbInRlbnNvckJvYXJkRmVhdHVyZUZsYWdzIixKU09OLnN0cmluZ2lmeShpKV1dKSxvPWUuaW5jbHVkZXMoIj8iKT8iJiI6Ij8iO3JldHVybiBlK28rU3RyaW5nKHIpfXJldHVybiBlfSkpfXNldCBocmVmKGUpe2UmJkFDKHRoaXMuZ2V0VXJsV2l0aEZlYXR1cmVGbGFncyhlKSkudGhlbihpPT57dGhpcy5ocmVmQXR0cj1pLHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpfSl9c2V0IHNyYyhlKXtlJiZBQyh0aGlzLmdldFVybFdpdGhGZWF0dXJlRmxhZ3MoZSkpLnRoZW4oaT0+e3RoaXMuc3JjQXR0cj1pLHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpfSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpLEMoUXQpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siYSIsImluY2x1ZGVGZWF0dXJlRmxhZ3MiLCIiXSxbImltZyIsImluY2x1ZGVGZWF0dXJlRmxhZ3MiLCIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsyJmUmJkJlKCJocmVmIixpLmhyZWZBdHRyLFZzKSgic3JjIixpLnNyY0F0dHIsVnMpfSxpbnB1dHM6e2luY2x1ZGVGZWF0dXJlRmxhZ3M6ImluY2x1ZGVGZWF0dXJlRmxhZ3MiLGhyZWY6ImhyZWYiLHNyYzoic3JjIn19KSxufSkoKSxvRWU9WyJtZWFzdXJlciJdLGFFZT1bImlucHV0Il0sV1E9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLmNoYW5nZURldGVjdG9yPWUsdGhpcy5wbGFjZWhvbGRlcj0iIix0aGlzLnN0eWxlPSJkZWZhdWx0Iix0aGlzLnBhdHRlcm5SZWdleD1uZXcgUmVnRXhwKCIuKiIpLHRoaXMuaXNWYWxpZD0hMCx0aGlzLm9uVmFsdWVDaGFuZ2U9bmV3IEYsdGhpcy5ibHVyPW5ldyBGLHRoaXMuZm9jdXM9bmV3IEYsdGhpcy5rZXlkb3duPW5ldyBGLHRoaXMua2V5dXA9bmV3IEYsdGhpcy5pbnRlcm5hbFZhbHVlPSIiLHRoaXMuZm9udENoYW5nZUxpc3RlbmVyPXRoaXMudXBkYXRlSW5wdXRXaWR0aC5iaW5kKHRoaXMpfW5nT25Jbml0KCl7ZG9jdW1lbnQuZm9udHMmJmRvY3VtZW50LmZvbnRzLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRpbmdkb25lIix0aGlzLmZvbnRDaGFuZ2VMaXN0ZW5lcil9bmdPbkRlc3Ryb3koKXtkb2N1bWVudC5mb250cyYmZG9jdW1lbnQuZm9udHMucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZGluZ2RvbmUiLHRoaXMuZm9udENoYW5nZUxpc3RlbmVyKX1uZ09uQ2hhbmdlcyhlKXtlLnBhdHRlcm4mJih0aGlzLnBhdHRlcm5SZWdleD1uZXcgUmVnRXhwKHRoaXMucGF0dGVybj8/IiIpKSxlLnZhbHVlJiYodGhpcy5pbnRlcm5hbFZhbHVlPXRoaXMudmFsdWUpLHRoaXMuaXNWYWxpZD10aGlzLnBhdHRlcm5SZWdleC50ZXN0KHRoaXMuaW50ZXJuYWxWYWx1ZSl9bmdBZnRlclZpZXdDaGVja2VkKCl7dGhpcy51cGRhdGVJbnB1dFdpZHRoKCl9b25JbnB1dChlKXtsZXQgaT10aGlzLmludGVybmFsVmFsdWU7dGhpcy5pbnRlcm5hbFZhbHVlPXRoaXMuaW5wdXRFbFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlLHRoaXMuaW50ZXJuYWxWYWx1ZSE9PWkmJih0aGlzLmlzVmFsaWQ9dGhpcy5wYXR0ZXJuUmVnZXgudGVzdCh0aGlzLmludGVybmFsVmFsdWUpLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCkpLHRoaXMub25WYWx1ZUNoYW5nZS5lbWl0KHt2YWx1ZTp0aGlzLmludGVybmFsVmFsdWV9KX11cGRhdGVJbnB1dFdpZHRoKCl7bGV0e3dpZHRoOmV9PXRoaXMubWVhc3VyZXJFbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuaW5wdXRFbFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoPWAke2V9cHhgfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKFF0KSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1siY29udGVudC13cmFwcGluZy1pbnB1dCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJihVZShvRWUsNyx4ZSksVWUoYUVlLDcseGUpKSwyJmUpe2xldCByO2JlKHI9dmUoKSkmJihpLm1lYXN1cmVyRWxSZWY9ci5maXJzdCksYmUocj12ZSgpKSYmKGkuaW5wdXRFbFJlZj1yLmZpcnN0KX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MiZlJiZYbyhpLnN0eWxlKX0saW5wdXRzOnt2YWx1ZToidmFsdWUiLHBsYWNlaG9sZGVyOiJwbGFjZWhvbGRlciIsc3R5bGU6InN0eWxlIixwYXR0ZXJuOiJwYXR0ZXJuIn0sb3V0cHV0czp7b25WYWx1ZUNoYW5nZToib25WYWx1ZUNoYW5nZSIsYmx1cjoiYmx1ciIsZm9jdXM6ImZvY3VzIixrZXlkb3duOiJrZXlkb3duIixrZXl1cDoia2V5dXAifSxmZWF0dXJlczpbcXRdLGRlY2xzOjYsdmFyczo3LGNvbnN0czpbWyJhcmlhLWhpZGRlbiIsInRydWUiLDEsIm1lYXN1cmVyIl0sWyJtZWFzdXJlciIsIiJdLFsiYXV0b2NvbXBsZXRlIiwib2ZmIiwic3BlbGxjaGVjayIsImZhbHNlIiwidHlwZSIsInRleHQiLDMsInZhbHVlIiwicGxhY2Vob2xkZXIiLCJibHVyIiwiZm9jdXMiLCJpbnB1dCIsImtleWRvd24iLCJrZXl1cCJdLFsiaW5wdXQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsInNwYW4iKSgxLCJzcGFuIiwwLDEpLFQoMyksZygpLGYoNCwiaW5wdXQiLDIsMyksQSgiYmx1ciIsZnVuY3Rpb24obyl7cmV0dXJuIGkuYmx1ci5lbWl0KG8pfSkoImZvY3VzIixmdW5jdGlvbihvKXtyZXR1cm4gaS5mb2N1cy5lbWl0KG8pfSkoImlucHV0IixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbklucHV0KG8pfSkoImtleWRvd24iLGZ1bmN0aW9uKG8pe3JldHVybiBpLmtleWRvd24uZW1pdChvKX0pKCJrZXl1cCIsZnVuY3Rpb24obyl7cmV0dXJuIGkua2V5dXAuZW1pdChvKX0pLGcoKSgpKSwyJmUmJihudCgiY29udGFpbmVyIiwhMCkoImlzLXZhbGlkIixpLmlzVmFsaWQpLHYoMyksa3QoaS5pbnRlcm5hbFZhbHVlfHxpLnBsYWNlaG9sZGVyKSx2KDEpLGIoInZhbHVlIixpLnZhbHVlKSgicGxhY2Vob2xkZXIiLGkucGxhY2Vob2xkZXIpKX0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1mbGV4O3dpZHRoOm1heC1jb250ZW50fVtfbmdob3N0LSVDT01QJV06Zm9jdXMtd2l0aGluICAgLmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWNvbG9yOiNmNTdjMDB9LmRlZmF1bHRbX25naG9zdC0lQ09NUCVdOmhvdmVyICAgLmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWNvbG9yOiNlYmViZWJ9LmVycm9yW19uZ2hvc3QtJUNPTVAlXSAgIC5jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCBbX25naG9zdC0lQ09NUCVdICAgLmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06bm90KC5pcy12YWxpZCl7Ym9yZGVyLWNvbG9yOiNlZjlhOWF9LmVycm9yW19uZ2hvc3QtJUNPTVAlXSAgIC5jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmhvdmVyLCAuZXJyb3JbX25naG9zdC0lQ09NUCVdICAgLmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMtd2l0aGluLCBbX25naG9zdC0lQ09NUCVdICAgLmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06bm90KC5pcy12YWxpZCk6aG92ZXIsIFtfbmdob3N0LSVDT01QJV0gICAuY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoLmlzLXZhbGlkKTpmb2N1cy13aXRoaW57Ym9yZGVyLWNvbG9yOiNlZjlhOWF9LmhpZ2gtY29udHJhc3RbX25naG9zdC0lQ09NUCVdICAgLmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWNvbG9yOiNiZGJkYmR9LmhpZ2gtY29udHJhc3RbX25naG9zdC0lQ09NUCVdICAgLmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7Ym9yZGVyLWNvbG9yOiM3NTc1NzV9LmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDAsMCwwLDApO3BhZGRpbmc6MXB4IDJweDtwb3NpdGlvbjpyZWxhdGl2ZX0ubWVhc3VyZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW59Lm1lYXN1cmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgaW5wdXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7bGluZS1oZWlnaHQ6MS40O3BhZGRpbmc6MDt3aGl0ZS1zcGFjZTpwcmV9Lm1lYXN1cmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eSwgaW5wdXRbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e3dpZHRoOjJjaH1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtY29sb3I6aW5oZXJpdDtib3JkZXI6MDtjb2xvcjppbmhlcml0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OmluaGVyaXQ7b3V0bGluZTowfWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1c3twYWRkaW5nLXJpZ2h0OjFjaH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpO2Z1bmN0aW9uIGxFZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImNvbnRlbnQtd3JhcHBpbmctaW5wdXQiLDMpLEEoIm9uVmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkuYWxpYXNDaGFuZ2VkLmVtaXQocikpfSksZygpfWlmKDImbil7bGV0IGU9dygpO0hzKGUuaXNBbGlhc05hbWVMZWdhbD8iaGlnaC1jb250cmFzdCI6ImVycm9yIiksYigidmFsdWUiLGUuYWxpYXMuYWxpYXNUZXh0KX19ZnVuY3Rpb24gY0VlKG4sdCl7aWYoMSZuJiYoZigwLCJzcGFuIiw0KSxUKDEpLGcoKSksMiZuKXtsZXQgZT13KCk7bnQoImlsbGVnYWwiLCFlLmlzQWxpYXNOYW1lTGVnYWwpLGIoInRpdGxlIixlLnRpdGxlKSx2KDEpLGt0KGUuYWxpYXMuYWxpYXNUZXh0KX19dmFyIEtnPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLmlzQWxpYXNOYW1lTGVnYWw9ITAsdGhpcy5hbGlhc0NoYW5nZWQ9bmV3IEZ9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInRiLWV4cGVyaW1lbnQtYWxpYXMiXV0saW5wdXRzOnthbGlhczoiYWxpYXMiLGFsaWFzRWRpdGFibGU6ImFsaWFzRWRpdGFibGUiLHRpdGxlOiJ0aXRsZSIsaXNBbGlhc05hbWVMZWdhbDoiaXNBbGlhc05hbWVMZWdhbCJ9LG91dHB1dHM6e2FsaWFzQ2hhbmdlZDoiYWxpYXNDaGFuZ2VkIn0sZGVjbHM6NSx2YXJzOjMsY29uc3RzOltbMSwiYWxpYXMtbnVtYmVyIl0sWyJwbGFjZWhvbGRlciIsIkFsaWFzIGZvciBleHBlcmltZW50IiwzLCJzdHlsZSIsInZhbHVlIiwib25WYWx1ZUNoYW5nZSIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJub0VkaXRBbGlhc05hbWUiLCIiXSxbInBsYWNlaG9sZGVyIiwiQWxpYXMgZm9yIGV4cGVyaW1lbnQiLDMsInZhbHVlIiwib25WYWx1ZUNoYW5nZSJdLFszLCJ0aXRsZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmKGYoMCwic3BhbiIsMCksVCgxKSxnKCksUygyLGxFZSwxLDMsImNvbnRlbnQtd3JhcHBpbmctaW5wdXQiLDEpLFMoMyxjRWUsMiw0LCJuZy10ZW1wbGF0ZSIsbnVsbCwyLGp0KSksMiZlKXtsZXQgcj1zdCg0KTt2KDEpLGt0KGkuYWxpYXMuYWxpYXNOdW1iZXIpLHYoMSksYigibmdJZiIsaS5hbGlhc0VkaXRhYmxlKSgibmdJZkVsc2UiLHIpfX0sZGVwZW5kZW5jaWVzOltOZSxXUV0sc3R5bGVzOlsiLmFsaWFzLW51bWJlcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZTBlMGUwO2JvcmRlcjoxcHggc29saWQgI2ViZWJlYjtjb2xvcjojMjEyMTIxO2JvcmRlci1yYWRpdXM6MnB4O21hcmdpbi1yaWdodDoycHg7cGFkZGluZzowIDJweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuYWxpYXMtbnVtYmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmFsaWFzLW51bWJlcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5hbGlhcy1udW1iZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuYWxpYXMtbnVtYmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MXB4IHNvbGlkICM1NTV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmFsaWFzLW51bWJlcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5hbGlhcy1udW1iZXJbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmZmZ9W19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmJhc2VsaW5lfSJdfSksbn0pKCk7ZnVuY3Rpb24gZEVlKG4sdCl7MSZuJiZrKDAsInRiLWV4cGVyaW1lbnQtYWxpYXMiLDIpLDImbiYmYigiYWxpYXMiLHcoKS5leHBlcmltZW50QWxpYXMpfWZ1bmN0aW9uIHVFZShuLHQpezEmbiYmKGYoMCwic3BhbiIpLFQoMSwiLyIpLGcoKSl9dmFyIHFRPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImNhcmQtcnVuLW5hbWUtY29tcG9uZW50Il1dLGlucHV0czp7bmFtZToibmFtZSIsZXhwZXJpbWVudEFsaWFzOiJleHBlcmltZW50QWxpYXMifSxkZWNsczo0LHZhcnM6Myxjb25zdHM6W1szLCJhbGlhcyIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWzMsImFsaWFzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoUygwLGRFZSwxLDEsInRiLWV4cGVyaW1lbnQtYWxpYXMiLDApLFMoMSx1RWUsMiwwLCJzcGFuIiwxKSxmKDIsInNwYW4iKSxUKDMpLGcoKSksMiZlJiYoYigibmdJZiIsbnVsbCE9aS5leHBlcmltZW50QWxpYXMpLHYoMSksYigibmdJZiIsbnVsbCE9aS5leHBlcmltZW50QWxpYXMpLHYoMiksa3QoaS5uYW1lKSl9LGRlcGVuZGVuY2llczpbTmUsS2ddLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxaVD0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmU9ZX1uZ09uSW5pdCgpe3RoaXMubmFtZSQ9SW4oW3RoaXMuc3RvcmUuc2VsZWN0KGIxLHtydW5JZDp0aGlzLnJ1bklkfSldKS5waXBlKHEoKFtlXSk9PmZ1bmN0aW9uKG4sdCxlKXtpZighdClyZXR1cm4gbjtsZXQgaT10Py5uYW1lPz8iLi4uIjtyZXR1cm4gaX0odGhpcy5ydW5JZCxlKSkpLHRoaXMuZXhwZXJpbWVudEFsaWFzJD1JbihbdGhpcy5zdG9yZS5zZWxlY3QoXzEse3J1bklkOnRoaXMucnVuSWR9KSx0aGlzLnN0b3JlLnNlbGVjdChxcyldKS5waXBlKHEoKFtlLGldKT0+ZT9pW2VdOm51bGwpKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImNhcmQtcnVuLW5hbWUiXV0saW5wdXRzOntydW5JZDoicnVuSWQifSxkZWNsczo0LHZhcnM6OSxjb25zdHM6W1szLCJuYW1lIiwiZXhwZXJpbWVudEFsaWFzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoaygwLCJjYXJkLXJ1bi1uYW1lLWNvbXBvbmVudCIsMCksVSgxLCJhc3luYyIpLFUoMiwiYXN5bmMiKSxVKDMsImFzeW5jIikpLDImZSYmKGIoIm5hbWUiLEcoMSwzLGkubmFtZSQpKSgiZXhwZXJpbWVudEFsaWFzIixHKDMsNyxpLmV4cGVyaW1lbnRBbGlhcyQpKSxCZSgidGl0bGUiLEcoMiw1LGkubmFtZSQpKSl9LGRlcGVuZGVuY2llczpbcVEsY3RdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpO2Z1bmN0aW9uIGhFZShuLHQpe2lmKDEmbiYmKGYoMCwic3BhbiIsMiksVCgxKSxnKCkpLDImbil7bGV0IGU9dygpO3YoMSksa3QoZS5maXJzdFRleHRQYXJ0KCkpfX12YXIgSmc9KCgpPT57Y2xhc3MgbntwYXJzZVZhbHVlKCl7bGV0IGU9dGhpcy52YWx1ZS5sYXN0SW5kZXhPZigiLyIpO3JldHVybi0xPT09ZT97Zmlyc3Q6IiIsc2Vjb25kOnRoaXMudmFsdWV9OntmaXJzdDp0aGlzLnZhbHVlLnNsaWNlKDAsZSksc2Vjb25kOnRoaXMudmFsdWUuc2xpY2UoZSl9fWZpcnN0VGV4dFBhcnQoKXtyZXR1cm4gdGhpcy5wYXJzZVZhbHVlKCkuZmlyc3R9c2Vjb25kVGV4dFBhcnQoKXtyZXR1cm4gdGhpcy5wYXJzZVZhbHVlKCkuc2Vjb25kfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJ0Yi10cnVuY2F0ZWQtcGF0aCJdXSxpbnB1dHM6e3ZhbHVlOiJ2YWx1ZSJ9LGRlY2xzOjMsdmFyczoyLGNvbnN0czpbWyJjbGFzcyIsImZpcnN0LXRleHQtcGFydCIsNCwibmdJZiJdLFsxLCJzZWNvbmQtdGV4dC1wYXJ0Il0sWzEsImZpcnN0LXRleHQtcGFydCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKFMoMCxoRWUsMiwxLCJzcGFuIiwwKSxmKDEsInNwYW4iLDEpLFQoMiksZygpKSwyJmUmJihiKCJuZ0lmIixpLmZpcnN0VGV4dFBhcnQoKS5sZW5ndGg+MCksdigyKSxrdChpLnNlY29uZFRleHRQYXJ0KCkpKX0sZGVwZW5kZW5jaWVzOltOZV0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1mbGV4O3doaXRlLXNwYWNlOm5vd3JhcH0uZmlyc3QtdGV4dC1wYXJ0W19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4OjEgMSA0Y2g7bWF4LXdpZHRoOm1heC1jb250ZW50fS5maXJzdC10ZXh0LXBhcnRbX25nY29udGVudC0lQ09NUCVdLCAuc2Vjb25kLXRleHQtcGFydFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Il19KSxufSkoKTtmdW5jdGlvbiBtRWUobix0KXsxJm4mJmsoMCwibWF0LWljb24iLDIpfWZ1bmN0aW9uIGZFZShuLHQpezEmbiYmaygwLCJtYXQtaWNvbiIsMyl9dmFyICRnPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLmlzQ2xpcHBlZD0hMSx0aGlzLmlzQ2xvc2VzdFN0ZXBIaWdobGlnaHRlZD0hMX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sidmlzLWxpbmtlZC10aW1lLXNlbGVjdGlvbi13YXJuaW5nIl1dLGlucHV0czp7aXNDbGlwcGVkOiJpc0NsaXBwZWQiLGlzQ2xvc2VzdFN0ZXBIaWdobGlnaHRlZDoiaXNDbG9zZXN0U3RlcEhpZ2hsaWdodGVkIn0sZGVjbHM6Mix2YXJzOjIsY29uc3RzOltbImRhdGEtdmFsdWUiLCJjbGlwcGVkIiwic3ZnSWNvbiIsImluZm9fb3V0bGluZV8yNHB4IiwidGl0bGUiLCJMaW5rZWQgc3RlcCBpcyBub3QgZm91bmQgaW4gdGhpcyB2aXN1YWxpemF0aW9uLiBXZSBoaWdobGlnaHRlZCB0aGUgY2xvc2VzdCBzdGVwIGZvciB5b3UuIiw0LCJuZ0lmIl0sWyJkYXRhLXZhbHVlIiwiY2xvc2VzdFN0ZXBIaWdobGlnaHRlZCIsInN2Z0ljb24iLCJpbmZvX291dGxpbmVfMjRweCIsInRpdGxlIiwiRGF0YSBpcyBub3QgZm91bmQgb24gc2VsZWN0ZWQgc3RlcC4gV2UgaGlnaGxpZ2h0ZWQgdGhlIGNsb3Nlc3Qgc3RlcCBmb3IgeW91LiIsNCwibmdJZiJdLFsiZGF0YS12YWx1ZSIsImNsaXBwZWQiLCJzdmdJY29uIiwiaW5mb19vdXRsaW5lXzI0cHgiLCJ0aXRsZSIsIkxpbmtlZCBzdGVwIGlzIG5vdCBmb3VuZCBpbiB0aGlzIHZpc3VhbGl6YXRpb24uIFdlIGhpZ2hsaWdodGVkIHRoZSBjbG9zZXN0IHN0ZXAgZm9yIHlvdS4iXSxbImRhdGEtdmFsdWUiLCJjbG9zZXN0U3RlcEhpZ2hsaWdodGVkIiwic3ZnSWNvbiIsImluZm9fb3V0bGluZV8yNHB4IiwidGl0bGUiLCJEYXRhIGlzIG5vdCBmb3VuZCBvbiBzZWxlY3RlZCBzdGVwLiBXZSBoaWdobGlnaHRlZCB0aGUgY2xvc2VzdCBzdGVwIGZvciB5b3UuIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoUygwLG1FZSwxLDAsIm1hdC1pY29uIiwwKSxTKDEsZkVlLDEsMCwibWF0LWljb24iLDEpKSwyJmUmJihiKCJuZ0lmIixpLmlzQ2xpcHBlZCksdigxKSxiKCJuZ0lmIixpLmlzQ2xvc2VzdFN0ZXBIaWdobGlnaHRlZCkpfSxkZXBlbmRlbmNpZXM6W05lLGJuXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2NvbG9yOiNkMzJmMmY7aGVpZ2h0OjFlbTtsaW5lLWhlaWdodDowO2Rpc3BsYXk6aW5saW5lLWZsZXh9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVde2NvbG9yOiNkMzJmMmZ9W19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfSJdLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCk7ZnVuY3Rpb24gZ0VlKG4sdCl7aWYoMSZuJiYoZigwLCJzcGFuIiwxOSksVCgxKSxVKDIsIm51bWJlciIpLGcoKSksMiZuKXtsZXQgZT13KCk7digxKSxWZSgiU3RlcCAiLEcoMiwxLGUuc3RlcHNbZS5zdGVwSW5kZXhdKSwiIil9fWZ1bmN0aW9uIF9FZShuLHQpe2lmKDEmbiYmKGYoMCwic3BhbiIsMjApLFQoMSksVSgyLCJudW1iZXIiKSxVKDMsIm51bWJlciIpLGcoKSksMiZuKXtsZXQgZT13KCk7digxKSxsdSgiU2FtcGxlICIsRygyLDIsZS5zYW1wbGUrMSksIi8iLEcoMyw0LGUubnVtU2FtcGxlKSwiIil9fWZ1bmN0aW9uIGJFZShuLHQpezEmbiYmaygwLCJtYXQtc3Bpbm5lciIsMjEpfWZ1bmN0aW9uIHZFZShuLHQpe2lmKDEmbiYmaygwLCJkaXYiLDMwKSwyJm4pe2xldCBlPXQuJGltcGxpY2l0LGk9dygzKTtCdCgibGVmdCIsaS5nZXRMaW5rZWRUaW1lVGlja0xlZnRTdHlsZShlKSkoIm1hcmdpbi1sZWZ0IixpLmdldExpbmtlZFRpbWVUaWNrTWFyZ2luTGVmdFN0eWxlKGUpKX19ZnVuY3Rpb24geUVlKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiLDI4KSxTKDEsdkVlLDEsNCwiZGl2IiwyOSksZygpKSwyJm4pe2xldCBlPXcoMik7digxKSxiKCJuZ0Zvck9mIixlLnNlbGVjdGVkU3RlcHMpfX12YXIgeEVlPWZ1bmN0aW9uKG4pe3JldHVybntmaWx0ZXI6bn19O2Z1bmN0aW9uIENFZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtHdCgwKSxmKDEsImRpdiIsMjIpKDIsIm1hdC1zbGlkZXIiLDIzKSgzLCJpbnB1dCIsMjQpLEEoInZhbHVlQ2hhbmdlIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9uU2xpZGVySW5wdXQocikpfSksZygpKCksUyg0LHlFZSwyLDEsImRpdiIsMjUpLGcoKSxmKDUsImRpdiIsMjYpLGsoNiwiaW1nIiwyNyksZygpLFd0KCl9aWYoMiZuKXtsZXQgZT13KCk7digyKSxiKCJkaXNhYmxlZCIsZS5zdGVwcy5sZW5ndGg8PTEpKCJtaW4iLDApKCJtYXgiLGUuc3RlcHMubGVuZ3RoLTEpKCJzdGVwIiwxKSx2KDEpLGIoInZhbHVlIixlLnN0ZXBJbmRleCksdigxKSxiKCJuZ0lmIixlLmxpbmtlZFRpbWVTZWxlY3Rpb24pLHYoMiksX2IoImFsdCIsIkltYWdlIGF0IHN0ZXAgIixlLnN0ZXBzW2Uuc3RlcEluZGV4XSwiIiksWmkoInNyYyIsZS5pbWFnZVVybCxWcyksYigibmdTdHlsZSIsVW4oOSx4RWUsZS5jc3NGaWx0ZXIoKSkpfX1mdW5jdGlvbiBNRWUobix0KXsxJm4mJihmKDAsImRpdiIsMzIpLFQoMSwiIERhdGEgZmFpbGVkIHRvIGxvYWQuICIpLGcoKSl9ZnVuY3Rpb24gd0VlKG4sdCl7aWYoMSZuJiZTKDAsTUVlLDIsMCwiZGl2IiwzMSksMiZuKXtsZXQgZT13KCk7YigibmdJZiIsZS5sb2FkU3RhdGU9PT1lLkRhdGFMb2FkU3RhdGUuRkFJTEVEKX19dmFyIFNFZT1mdW5jdGlvbihuKXtyZXR1cm57YmFja2dyb3VuZENvbG9yOm59fSxZUT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy5EYXRhTG9hZFN0YXRlPVJlLHRoaXMuc2xpZGVyU3RhcnRQb3NpdGlvbj0iIix0aGlzLnNsaWRlclRyYWNrV2lkdGg9IiIsdGhpcy5saW5rZWRUaW1lU2VsZWN0aW9uPW51bGwsdGhpcy5pc0Nsb3Nlc3RTdGVwSGlnaGxpZ2h0ZWQ9ITEsdGhpcy5vbkFjdHVhbFNpemVUb2dnbGU9bmV3IEYsdGhpcy5zdGVwSW5kZXhDaGFuZ2U9bmV3IEYsdGhpcy5vblBpbkNsaWNrZWQ9bmV3IEZ9Y3NzRmlsdGVyKCl7cmV0dXJuYGNvbnRyYXN0KCR7dGhpcy5jb250cmFzdEluTWlsbGkvMTB9JSkgYnJpZ2h0bmVzcygke3RoaXMuYnJpZ2h0bmVzc0luTWlsbGkvMWUzfSlgfW9uU2xpZGVySW5wdXQoZSl7dGhpcy5zdGVwSW5kZXhDaGFuZ2UuZW1pdChlKX1jaGFuZ2VEaXN0aW5jdChlKXtyZXR1cm4gZS5jdXJyZW50VmFsdWUhPT1lLnByZXZpb3VzVmFsdWV9bmdPbkNoYW5nZXMoZSl7KGUuc2VsZWN0ZWRTdGVwcyYmdGhpcy5jaGFuZ2VEaXN0aW5jdChlLnNlbGVjdGVkU3RlcHMpfHxlLmxpbmtlZFRpbWVTZWxlY3Rpb24mJnRoaXMuY2hhbmdlRGlzdGluY3QoZS5saW5rZWRUaW1lU2VsZWN0aW9uKSkmJnRoaXMucmVuZGVyUmFuZ2VTbGlkZXIoKX1yZW5kZXJSYW5nZVNsaWRlcigpe2lmKCF0aGlzLmxpbmtlZFRpbWVTZWxlY3Rpb258fCF0aGlzLmxpbmtlZFRpbWVTZWxlY3Rpb24uZW5kU3RlcClyZXR1cm47bGV0IGU9dGhpcy5zdGVwcy5sZW5ndGgtMSxpPXRoaXMubGlua2VkVGltZVNlbGVjdGlvbi5zdGFydFN0ZXA8dGhpcy5zdGVwc1swXT90aGlzLnN0ZXBzWzBdOnRoaXMubGlua2VkVGltZVNlbGVjdGlvbi5zdGFydFN0ZXAscj10aGlzLmxpbmtlZFRpbWVTZWxlY3Rpb24uZW5kU3RlcD50aGlzLnN0ZXBzW2VdP3RoaXMuc3RlcHNbZV06dGhpcy5saW5rZWRUaW1lU2VsZWN0aW9uLmVuZFN0ZXAse3N0YXJ0UG9zaXRpb246byx3aWR0aDphfT10aGlzLmdldFRyYWNrU3RhcnRQb3NpdGlvbkFuZFdpZHRoKGkscixlKTt0aGlzLnNsaWRlclN0YXJ0UG9zaXRpb249MTAwKm8rIiUiLHRoaXMuc2xpZGVyVHJhY2tXaWR0aD0xMDAqYSsiJSJ9Z2V0VHJhY2tTdGFydFBvc2l0aW9uQW5kV2lkdGgoZSxpLHIpe2xldCBvPTEvcixhPTAscz0wLGw9MDtmb3IoO2w8dGhpcy5zdGVwcy5sZW5ndGgtMTtsKyspe2xldCBjPXRoaXMuc3RlcHNbbF0sZD10aGlzLnN0ZXBzW2wrMV07aWYoYzw9ZSYmZTw9ZCl7YSs9KGUtYykvKGQtYyk7YnJlYWt9fWZvcihhPShhK2wpKm87bDx0aGlzLnN0ZXBzLmxlbmd0aC0xO2wrKyl7bGV0IGM9dGhpcy5zdGVwc1tsXSxkPXRoaXMuc3RlcHNbbCsxXTtpZihlPj1jJiZpPD1kKXtzPShpLWUpLyhkLWMpO2JyZWFrfWlmKGU+PWMmJmk+PWQpcys9KGQtZSkvKGQtYyk7ZWxzZXtpZighKGk+PWQpKXtzKz0oaS1jKS8oZC1jKTticmVha31zKz0xfX1yZXR1cm4gcyo9bywoYT4xfHxhPDApJiYoYT0wKSx7c3RhcnRQb3NpdGlvbjphLHdpZHRoOnN9fWdldExpbmtlZFRpbWVUaWNrTGVmdFN0eWxlKGUpe2lmKC0xPT10aGlzLnN0ZXBzLmluZGV4T2YoZSkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHN0ZXBJbmRleDogc3RlcEluZGV4IHZhbHVlIGlzIG5vdCBpbmNsdWRlZCBpbiBzdGVwcyIpO3JldHVybiB0aGlzLnN0ZXBzLmluZGV4T2YoZSkvKHRoaXMuc3RlcHMubGVuZ3RoLTEpKjEwMCsiJSJ9Z2V0TGlua2VkVGltZVRpY2tNYXJnaW5MZWZ0U3R5bGUoZSl7aWYoLTE9PXRoaXMuc3RlcHMuaW5kZXhPZihlKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RlcEluZGV4OiBzdGVwSW5kZXggdmFsdWUgaXMgbm90IGluY2x1ZGVkIGluIHN0ZXBzIik7cmV0dXJuYC0ke3RoaXMuc3RlcHMuaW5kZXhPZihlKS8odGhpcy5zdGVwcy5sZW5ndGgtMSkqMTJ9cHhgfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJpbWFnZS1jYXJkLWNvbXBvbmVudCJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezImZSYmbnQoImFjdHVhbC1zaXplIixpLnNob3dBY3R1YWxTaXplKX0saW5wdXRzOntsb2FkU3RhdGU6ImxvYWRTdGF0ZSIsdGl0bGU6InRpdGxlIix0YWc6InRhZyIscnVuSWQ6InJ1bklkIixzYW1wbGU6InNhbXBsZSIsbnVtU2FtcGxlOiJudW1TYW1wbGUiLGltYWdlVXJsOiJpbWFnZVVybCIsc3RlcEluZGV4OiJzdGVwSW5kZXgiLHN0ZXBzOiJzdGVwcyIsYnJpZ2h0bmVzc0luTWlsbGk6ImJyaWdodG5lc3NJbk1pbGxpIixjb250cmFzdEluTWlsbGk6ImNvbnRyYXN0SW5NaWxsaSIsc2hvd0FjdHVhbFNpemU6InNob3dBY3R1YWxTaXplIixydW5Db2xvclNjYWxlOiJydW5Db2xvclNjYWxlIixhbGxvd1RvZ2dsZUFjdHVhbFNpemU6ImFsbG93VG9nZ2xlQWN0dWFsU2l6ZSIsaXNQaW5uZWQ6ImlzUGlubmVkIixzZWxlY3RlZFN0ZXBzOiJzZWxlY3RlZFN0ZXBzIixsaW5rZWRUaW1lU2VsZWN0aW9uOiJsaW5rZWRUaW1lU2VsZWN0aW9uIixpc0Nsb3Nlc3RTdGVwSGlnaGxpZ2h0ZWQ6ImlzQ2xvc2VzdFN0ZXBIaWdobGlnaHRlZCJ9LG91dHB1dHM6e29uQWN0dWFsU2l6ZVRvZ2dsZToib25BY3R1YWxTaXplVG9nZ2xlIixzdGVwSW5kZXhDaGFuZ2U6InN0ZXBJbmRleENoYW5nZSIsb25QaW5DbGlja2VkOiJvblBpbkNsaWNrZWQifSxmZWF0dXJlczpbcXRdLGRlY2xzOjIxLHZhcnM6MTYsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQsZTtyZXR1cm4gdD0kbG9jYWxpemVgOkEgYnV0dG9uIHRvIHBpbiBhIGNhcmQu4pCfZTY2NWRjNzEyYmQ1ZjE4ZDRkZmEzYTI5ZTEyNWQ1NjVjYzUxZTJmNuKQnzcyODQ2MDY0MjYyMzQzNzUzNDQ6UGluIGNhcmRgLGU9JGxvY2FsaXplYDpBIGJ1dHRvbiBvbiBhbiBpbWFnZSBjYXJkIHRoYXQgdG9nZ2xlcyBhY3R1YWwgaW1hZ2Ugc2l6ZS7ikJ8zY2EwNWVmM2E2ZTNhMzcwNjVmNWUwZjY5YzVkNWEyMTc4ZDkwNzkx4pCfNzYzNTEwMTkzNjY2NDc4OTE0MDpUb2dnbGUgYWN0dWFsIGltYWdlIHNpemVgLFtbMSwiaGVhZGluZyJdLFsxLCJsaW5lIl0sWzEsInRhZyJdLFsxLCJ0YWctcGF0aCIsMywidGl0bGUiLCJ2YWx1ZSJdLFszLCJpc0NsaXBwZWQiLCJpc0Nsb3Nlc3RTdGVwSGlnaGxpZ2h0ZWQiXSxbMSwiY29udHJvbHMiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMywiY2xpY2siXSxbMywic3ZnSWNvbiJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsZSwidGl0bGUiLCJUb2dnbGUgYWN0dWFsIGltYWdlIHNpemUiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInN2Z0ljb24iLCJpbWFnZV9zZWFyY2hfMjRweCJdLFsxLCJydW4iXSxbMSwiZG90IiwzLCJuZ1N0eWxlIl0sWzEsInJ1bi10ZXh0IiwzLCJydW5JZCJdLFsxLCJtZXRhZGF0YSJdLFsiY2xhc3MiLCJzdGVwIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInNhbXBsZSIsNCwibmdJZiJdLFsiY2xhc3MiLCJsb2FkaW5nIiwiZGlhbWV0ZXIiLCIxOCIsNCwibmdJZiJdLFs0LCJuZ0lmIiwibmdJZkVsc2UiXSxbIm5vSW1hZ2VEYXRhIiwiIl0sWzEsInN0ZXAiXSxbMSwic2FtcGxlIl0sWyJkaWFtZXRlciIsIjE4IiwxLCJsb2FkaW5nIl0sWzEsInNsaWRlci1yb3ciXSxbImNvbG9yIiwicHJpbWFyeSIsMSwic3RlcC1zbGlkZXIiLDMsImRpc2FibGVkIiwibWluIiwibWF4Iiwic3RlcCJdLFsibWF0U2xpZGVyVGh1bWIiLCIiLDMsInZhbHVlIiwidmFsdWVDaGFuZ2UiXSxbImNsYXNzIiwibGlua2VkLXRpbWUtd3JhcHBlciIsNCwibmdJZiJdLFsxLCJpbWctY29udGFpbmVyIl0sWzMsImFsdCIsInNyYyIsIm5nU3R5bGUiLCJpbmNsdWRlRmVhdHVyZUZsYWdzIl0sWzEsImxpbmtlZC10aW1lLXdyYXBwZXIiXSxbImNsYXNzIiwibGlua2VkLXRpbWUtdGljayIsMywibGVmdCIsIm1hcmdpbi1sZWZ0Iiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwibGlua2VkLXRpbWUtdGljayJdLFsiY2xhc3MiLCJlbXB0eS1tZXNzYWdlIiw0LCJuZ0lmIl0sWzEsImVtcHR5LW1lc3NhZ2UiXV19LHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiYoZigwLCJkaXYiLDApKDEsImRpdiIsMSkoMiwic3BhbiIsMiksaygzLCJ0Yi10cnVuY2F0ZWQtcGF0aCIsMykoNCwidmlzLWxpbmtlZC10aW1lLXNlbGVjdGlvbi13YXJuaW5nIiw0KSxnKCksZig1LCJzcGFuIiw1KSg2LCJidXR0b24iLDYpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpLm9uUGluQ2xpY2tlZC5lbWl0KCFpLmlzUGlubmVkKX0pLGsoNywibWF0LWljb24iLDcpLGcoKSxmKDgsImJ1dHRvbiIsOCksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25BY3R1YWxTaXplVG9nZ2xlLmVtaXQoKX0pLGsoOSwibWF0LWljb24iLDkpLGcoKSgpKCksZigxMCwiZGl2IiwxKSgxMSwic3BhbiIsMTApLGsoMTIsInNwYW4iLDExKSgxMywiY2FyZC1ydW4tbmFtZSIsMTIpLGcoKSxmKDE0LCJkaXYiLDEzKSxTKDE1LGdFZSwzLDMsInNwYW4iLDE0KSxTKDE2LF9FZSw0LDYsInNwYW4iLDE1KSxTKDE3LGJFZSwxLDAsIm1hdC1zcGlubmVyIiwxNiksZygpKCkoKSxTKDE4LENFZSw3LDExLCJuZy1jb250YWluZXIiLDE3KSxTKDE5LHdFZSwxLDEsIm5nLXRlbXBsYXRlIixudWxsLDE4LGp0KSksMiZlKXtsZXQgcj1zdCgyMCk7digzKSxaaSgidGl0bGUiLGkudGFnKSxaaSgidmFsdWUiLGkudGl0bGUpLHYoMSksYigiaXNDbGlwcGVkIixpLmxpbmtlZFRpbWVTZWxlY3Rpb24mJmkubGlua2VkVGltZVNlbGVjdGlvbi5jbGlwcGVkKSgiaXNDbG9zZXN0U3RlcEhpZ2hsaWdodGVkIixpLmlzQ2xvc2VzdFN0ZXBIaWdobGlnaHRlZCksdigyKSxCZSgidGl0bGUiLGkuaXNQaW5uZWQ/IlVucGluIGNhcmQiOiJQaW4gY2FyZCIpLHYoMSksYigic3ZnSWNvbiIsaS5pc1Bpbm5lZD8ia2VlcF8yNHB4Ijoia2VlcF9vdXRsaW5lXzI0cHgiKSx2KDEpLGIoImRpc2FibGVkIiwhaS5hbGxvd1RvZ2dsZUFjdHVhbFNpemUpLHYoNCksYigibmdTdHlsZSIsVW4oMTQsU0VlLGkucnVuQ29sb3JTY2FsZShpLnJ1bklkKSkpLHYoMSksYigicnVuSWQiLGkucnVuSWQpLHYoMiksYigibmdJZiIsbnVsbCE9PWkuc3RlcEluZGV4JiZpLnN0ZXBJbmRleDxpLnN0ZXBzLmxlbmd0aCksdigxKSxiKCJuZ0lmIixpLm51bVNhbXBsZT4xKSx2KDEpLGIoIm5nSWYiLGkubG9hZFN0YXRlPT09aS5EYXRhTG9hZFN0YXRlLkxPQURJTkcpLHYoMSksYigibmdJZiIsbnVsbCE9PWkuc3RlcEluZGV4JiZpLnN0ZXBJbmRleDxpLnN0ZXBzLmxlbmd0aCkoIm5nSWZFbHNlIixyKX19LGRlcGVuZGVuY2llczpbbm4sTmUsTWYsUVQsRXIsYm4sTmMsSnUsJHUsWlQsSmcsJGcsVXNdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6ZmxleDtmbGV4LWJhc2lzOjMxOHB4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWdyb3c6MTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzphdXRvO3BhZGRpbmc6MTZweDtwYWRkaW5nLXRvcDo0cHh9LmFjdHVhbC1zaXplW19uZ2hvc3QtJUNPTVAlXXtoZWlnaHQ6YXV0b30uaGVhZGluZ1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZToxNHB4O21hcmdpbi1ib3R0b206NHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgbWF4LWNvbnRlbnR9LnRhZ1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtnYXA6NXB4fS5tZXRhZGF0YVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo1cHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO21heC13aWR0aDoxNzVweDt0ZXh0LWFsaWduOmVuZH0udGFnLXBhdGhbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbn0ucnVuW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1zZWxmOmJhc2VsaW5lO2Rpc3BsYXk6ZmxleDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwfS5ydW5bX25nY29udGVudC0lQ09NUCVdICAgLmRvdFtfbmdjb250ZW50LSVDT01QJV17ZmxleDpub25lO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEzcHg7aGVpZ2h0OjEzcHg7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXJpZ2h0OjRweH0ucnVuW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5ydW4tdGV4dFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7bWF4LXdpZHRoOjEyMHB4fS5ydW5bX25nY29udGVudC0lQ09NUCVdLCAuc2FtcGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnN0ZXBbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7Zm9udC1zaXplOjEzcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnJ1bltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ydW5bX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zYW1wbGVbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuc2FtcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuc3RlcFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zdGVwW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uY29udHJvbHNbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7d2hpdGUtc3BhY2U6bm93cmFwO2p1c3RpZnktc2VsZjpmbGV4LWVuZDtmbGV4LXNocmluazowO21hcmdpbi1yaWdodDotMTJweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuY29udHJvbHNbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuY29udHJvbHNbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5pbWctY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4LWdyb3c6MTtvdmVyZmxvdy15OmF1dG87cG9zaXRpb246cmVsYXRpdmV9LmltZy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgaW1nW19uZ2NvbnRlbnQtJUNPTVAlXXtpbWFnZS1yZW5kZXJpbmc6LW1vei1jcmlzcC1lZGdlcztpbWFnZS1yZW5kZXJpbmc6cGl4ZWxhdGVkfS5hY3R1YWwtc2l6ZVtfbmdob3N0LSVDT01QJV0gICAuaW1nLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6YXV0bztmbGV4Om5vbmV9W19uZ2hvc3QtJUNPTVAlXTpub3QoLmFjdHVhbC1zaXplKSAgIGltZ1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7bWF4LWhlaWdodDoxMDAlO21heC13aWR0aDoxMDAlO3dpZHRoOmF1dG87aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb250YWlufS5zbGlkZXItcm93W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDoyNHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5zbGlkZXItcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1hdC1zbGlkZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi1sZWZ0OjZweH0uc3RlcC1zbGlkZXJbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MX1bX25naG9zdC0lQ09NUCVdICAgICAubWF0LXNsaWRlci1taW4tdmFsdWUgLm1hdC1zbGlkZXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfVtfbmdob3N0LSVDT01QJV0gICAgIC5oaWRlLXNsaWRlci5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdHJhY2std3JhcHBlcntoZWlnaHQ6MH0uZW1wdHktbWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDoxZW07Zm9udC1zaXplOjEzcHh9LmxpbmtlZC10aW1lLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1cHg7d2lkdGg6MTAwJX0ubGlua2VkLXRpbWUtdGlja1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZTBlMGUwO2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDoxMnB4O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEycHg7ei1pbmRleDotMX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAubGlua2VkLXRpbWUtdGlja1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5saW5rZWQtdGltZS10aWNrW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiMyMTIxMjF9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxRUT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSl7dGhpcy5zdG9yZT1lLHRoaXMuZGF0YVNvdXJjZT1pLHRoaXMuZnVsbFdpZHRoQ2hhbmdlZD1uZXcgRix0aGlzLnBpblN0YXRlQ2hhbmdlZD1uZXcgRix0aGlzLmJyaWdodG5lc3NJbk1pbGxpJD10aGlzLnN0b3JlLnNlbGVjdChsMSksdGhpcy5jb250cmFzdEluTWlsbGkkPXRoaXMuc3RvcmUuc2VsZWN0KGMxKSx0aGlzLmFjdHVhbFNpemVHbG9iYWxTZXR0aW5nJD10aGlzLnN0b3JlLnNlbGVjdChkMSksdGhpcy5zaG93QWN0dWFsU2l6ZT0hMSx0aGlzLmFjdHVhbFNpemVVaVRvZ2dsZWQ9ITEsdGhpcy5hY3R1YWxTaXplVWlUb2dnbGVTdWJqZWN0PW5ldyB4cih0aGlzLmFjdHVhbFNpemVVaVRvZ2dsZWQpLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgRWV9b25TdGVwSW5kZXhDaGFuZ2VkKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2goUFQoe2NhcmRJZDp0aGlzLmNhcmRJZCxzdGVwSW5kZXg6ZX0pKX1pc0ltYWdlQ2FyZE1ldGFkYXRhKGUpe2xldHtwbHVnaW46aX09ZTtyZXR1cm4gaT09PUFuLklNQUdFU31vbkFjdHVhbFNpemVUb2dnbGUoKXt0aGlzLmFjdHVhbFNpemVVaVRvZ2dsZWQ9IXRoaXMuYWN0dWFsU2l6ZVVpVG9nZ2xlZCx0aGlzLmFjdHVhbFNpemVVaVRvZ2dsZVN1YmplY3QubmV4dCh0aGlzLmFjdHVhbFNpemVVaVRvZ2dsZWQpfW5nT25Jbml0KCl7SW4oW3RoaXMuYWN0dWFsU2l6ZUdsb2JhbFNldHRpbmckLHRoaXMuYWN0dWFsU2l6ZVVpVG9nZ2xlU3ViamVjdF0pLnBpcGUoaXQodGhpcy5uZ1Vuc3Vic2NyaWJlKSxEdCgoW2wsY10pPT57dGhpcy5zaG93QWN0dWFsU2l6ZT1sfHxjLHRoaXMuZnVsbFdpZHRoQ2hhbmdlZC5lbWl0KHRoaXMuc2hvd0FjdHVhbFNpemUpfSkpLnN1YnNjcmliZSgoKT0+e30pO2xldCBpPXRoaXMuc3RvcmUuc2VsZWN0KEtzLHRoaXMuY2FyZElkKS5waXBlKGl0KHRoaXMubmdVbnN1YnNjcmliZSksT2UobD0+ISFsJiZ0aGlzLmlzSW1hZ2VDYXJkTWV0YWRhdGEobCkpLHEobD0+bCksRGEoMSkpLG89SW4oW2ksdGhpcy5zdG9yZS5zZWxlY3Qod3UsdGhpcy5jYXJkSWQpXSkucGlwZShpdCh0aGlzLm5nVW5zdWJzY3JpYmUpLHEoKFtsLGNdKT0+e2xldCBkPWwucnVuSWQ7cmV0dXJuIGMmJmMuaGFzT3duUHJvcGVydHkoZCk/Y1tkXTpbXX0pLHJpKChsLGMpPT5sLmxlbmd0aD09PWMubGVuZ3RoJiYwPT09bC5sZW5ndGh8fGw9PT1jKSxEYSgxKSk7dGhpcy5zdGVwSW5kZXgkPXRoaXMuc3RvcmUuc2VsZWN0KFpGLHRoaXMuY2FyZElkKS5waXBlKHEobD0+bD9sLmluZGV4Om51bGwpKSx0aGlzLmlzQ2xvc2VzdFN0ZXBIaWdobGlnaHRlZCQ9dGhpcy5zdG9yZS5zZWxlY3QoWkYsdGhpcy5jYXJkSWQpLnBpcGUocShsPT4hIWwmJmwuaXNDbG9zZXN0KSksdGhpcy5sb2FkU3RhdGUkPXRoaXMuc3RvcmUuc2VsZWN0KGdkLHRoaXMuY2FyZElkKSx0aGlzLnRhZyQ9aS5waXBlKHEobD0+bC50YWcpKSx0aGlzLnRpdGxlJD10aGlzLnRhZyQucGlwZShxKGw9PlpnKGwsdGhpcy5ncm91cE5hbWUpKSksdGhpcy5ydW5JZCQ9aS5waXBlKHEobD0+bC5ydW5JZCkpLHRoaXMuc2FtcGxlJD1pLnBpcGUocShsPT5sLnNhbXBsZSkpLHRoaXMubnVtU2FtcGxlJD1pLnBpcGUocShsPT5sLm51bVNhbXBsZSkpLHRoaXMuc3RlcHMkPXRoaXMuc3RvcmUuc2VsZWN0KEFXLHRoaXMuY2FyZElkKSx0aGlzLmlzUGlubmVkJD10aGlzLnN0b3JlLnNlbGVjdChTdSx0aGlzLmNhcmRJZCksdGhpcy5saW5rZWRUaW1lU2VsZWN0aW9uJD10aGlzLnN0b3JlLnNlbGVjdChEdSkucGlwZShWaSh0aGlzLnN0ZXBzJCkscSgoW2wsY10pPT5sP1lmKGwsTWF0aC5taW4oLi4uYyksTWF0aC5tYXgoLi4uYykpOm51bGwpKSx0aGlzLnNlbGVjdGVkU3RlcHMkPXRoaXMubGlua2VkVGltZVNlbGVjdGlvbiQucGlwZShWaSh0aGlzLnN0ZXBzJCkscSgoW2wsY10pPT5sP251bGw9PT1sLmVuZFN0ZXA/LTEhPT1jLmluZGV4T2YobC5zdGFydFN0ZXApP1tsLnN0YXJ0U3RlcF06W106Yy5maWx0ZXIoZD0+ZD49bC5zdGFydFN0ZXAmJmQ8PWwuZW5kU3RlcCk6W10pKTtsZXQgcz1Jbihbbyx0aGlzLnN0ZXBJbmRleCRdKS5waXBlKHEoKFtsLGNdKT0+bnVsbCE9PWMmJmxbY10/bFtjXTpudWxsKSk7dGhpcy5pbWFnZVVybCQ9cy5waXBlKHEobD0+bD90aGlzLmRhdGFTb3VyY2UuaW1hZ2VVcmwobC5pbWFnZUlkKTpudWxsKSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKEllKSxDKHdjKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1siaW1hZ2UtY2FyZCJdXSxpbnB1dHM6e2NhcmRJZDoiY2FyZElkIixncm91cE5hbWU6Imdyb3VwTmFtZSIscnVuQ29sb3JTY2FsZToicnVuQ29sb3JTY2FsZSJ9LG91dHB1dHM6e2Z1bGxXaWR0aENoYW5nZWQ6ImZ1bGxXaWR0aENoYW5nZWQiLHBpblN0YXRlQ2hhbmdlZDoicGluU3RhdGVDaGFuZ2VkIn0sZGVjbHM6MTcsdmFyczo1MCxjb25zdHM6W1szLCJsb2FkU3RhdGUiLCJ0aXRsZSIsInRhZyIsInJ1bklkIiwic2FtcGxlIiwibnVtU2FtcGxlIiwiaW1hZ2VVcmwiLCJzdGVwSW5kZXgiLCJzdGVwcyIsImlzQ2xvc2VzdFN0ZXBIaWdobGlnaHRlZCIsImJyaWdodG5lc3NJbk1pbGxpIiwiY29udHJhc3RJbk1pbGxpIiwicnVuQ29sb3JTY2FsZSIsInNob3dBY3R1YWxTaXplIiwiYWxsb3dUb2dnbGVBY3R1YWxTaXplIiwiaXNQaW5uZWQiLCJsaW5rZWRUaW1lU2VsZWN0aW9uIiwic2VsZWN0ZWRTdGVwcyIsInN0ZXBJbmRleENoYW5nZSIsIm9uQWN0dWFsU2l6ZVRvZ2dsZSIsIm9uUGluQ2xpY2tlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwiaW1hZ2UtY2FyZC1jb21wb25lbnQiLDApLEEoInN0ZXBJbmRleENoYW5nZSIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25TdGVwSW5kZXhDaGFuZ2VkKG8pfSkoIm9uQWN0dWFsU2l6ZVRvZ2dsZSIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vbkFjdHVhbFNpemVUb2dnbGUoKX0pKCJvblBpbkNsaWNrZWQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLnBpblN0YXRlQ2hhbmdlZC5lbWl0KG8pfSksVSgxLCJhc3luYyIpLFUoMiwiYXN5bmMiKSxVKDMsImFzeW5jIiksVSg0LCJhc3luYyIpLFUoNSwiYXN5bmMiKSxVKDYsImFzeW5jIiksVSg3LCJhc3luYyIpLFUoOCwiYXN5bmMiKSxVKDksImFzeW5jIiksVSgxMCwiYXN5bmMiKSxVKDExLCJhc3luYyIpLFUoMTIsImFzeW5jIiksVSgxMywiYXN5bmMiKSxVKDE0LCJhc3luYyIpLFUoMTUsImFzeW5jIiksVSgxNiwiYXN5bmMiKSxnKCkpLDImZSYmYigibG9hZFN0YXRlIixHKDEsMTgsaS5sb2FkU3RhdGUkKSkoInRpdGxlIixHKDIsMjAsaS50aXRsZSQpKSgidGFnIixHKDMsMjIsaS50YWckKSkoInJ1bklkIixHKDQsMjQsaS5ydW5JZCQpKSgic2FtcGxlIixHKDUsMjYsaS5zYW1wbGUkKSkoIm51bVNhbXBsZSIsRyg2LDI4LGkubnVtU2FtcGxlJCkpKCJpbWFnZVVybCIsRyg3LDMwLGkuaW1hZ2VVcmwkKSkoInN0ZXBJbmRleCIsRyg4LDMyLGkuc3RlcEluZGV4JCkpKCJzdGVwcyIsRyg5LDM0LGkuc3RlcHMkKSkoImlzQ2xvc2VzdFN0ZXBIaWdobGlnaHRlZCIsRygxMCwzNixpLmlzQ2xvc2VzdFN0ZXBIaWdobGlnaHRlZCQpKSgiYnJpZ2h0bmVzc0luTWlsbGkiLEcoMTEsMzgsaS5icmlnaHRuZXNzSW5NaWxsaSQpKSgiY29udHJhc3RJbk1pbGxpIixHKDEyLDQwLGkuY29udHJhc3RJbk1pbGxpJCkpKCJydW5Db2xvclNjYWxlIixpLnJ1bkNvbG9yU2NhbGUpKCJzaG93QWN0dWFsU2l6ZSIsaS5zaG93QWN0dWFsU2l6ZSkoImFsbG93VG9nZ2xlQWN0dWFsU2l6ZSIsITE9PT1HKDEzLDQyLGkuYWN0dWFsU2l6ZUdsb2JhbFNldHRpbmckKSkoImlzUGlubmVkIixHKDE0LDQ0LGkuaXNQaW5uZWQkKSkoImxpbmtlZFRpbWVTZWxlY3Rpb24iLEcoMTUsNDYsaS5saW5rZWRUaW1lU2VsZWN0aW9uJCkpKCJzZWxlY3RlZFN0ZXBzIixHKDE2LDQ4LGkuc2VsZWN0ZWRTdGVwcyQpKX0sZGVwZW5kZW5jaWVzOltZUSxjdF0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLFlpPSgoKT0+KGZ1bmN0aW9uKG4pe25bbi5TVkc9MF09IlNWRyIsbltuLldFQkdMPTFdPSJXRUJHTCJ9KFlpfHwoWWk9e30pKSxZaSkpKCksdHI9KCgpPT4oZnVuY3Rpb24obil7bltuLkxJTkVBUj0wXT0iTElORUFSIixuW24uTE9HMTA9MV09IkxPRzEwIixuW24uVElNRT0yXT0iVElNRSJ9KHRyfHwodHI9e30pKSx0cikpKCksVHI9KCgpPT4oZnVuY3Rpb24obil7bi5OT05FPSJOT05FIixuLkRSQUdfWk9PTUlORz0iRFJBR19aT09NSU5HIixuLlNDUk9MTF9aT09NSU5HPSJTQ1JPTExfWk9PTUlORyIsbi5QQU5OSU5HPSJQQU5OSU5HIn0oVHJ8fChUcj17fSkpLFRyKSkoKTtmdW5jdGlvbiBJRWUobix0KXsxJm4mJihmKDAsInNwYW4iKSxUKDEsInNjYWxhciIpLGcoKSl9ZnVuY3Rpb24gQUVlKG4sdCl7MSZuJiYoZigwLCJzcGFuIiksVCgxLCJoaXN0b2dyYW0iKSxnKCkpfWZ1bmN0aW9uIFJFZShuLHQpezEmbiYmKGYoMCwic3BhbiIpLFQoMSwidW5rbm93biIpLGcoKSl9ZnVuY3Rpb24gUEVlKG4sdCl7aWYoMSZuJiYoR3QoMCwxMyksUygxLElFZSwyLDAsInNwYW4iLDE0KSxTKDIsQUVlLDIsMCwic3BhbiIsMTQpLFMoMyxSRWUsMiwwLCJzcGFuIiwxNSksV3QoKSksMiZuKXtsZXQgZT13KDIpO2IoIm5nU3dpdGNoIixlLmNhcmRNZXRhZGF0YS5wbHVnaW4pLHYoMSksYigibmdTd2l0Y2hDYXNlIixlLlBsdWdpblR5cGUuU0NBTEFSUyksdigxKSxiKCJuZ1N3aXRjaENhc2UiLGUuUGx1Z2luVHlwZS5ISVNUT0dSQU1TKX19ZnVuY3Rpb24ga0VlKG4sdCl7MSZuJiZoaSgwKX1mdW5jdGlvbiBPRWUobix0KXtpZigxJm4mJihmKDAsIm9wdGlvbiIsMTYpLFQoMSksZygpKSwyJm4pe2xldCBlPXQuJGltcGxpY2l0O2IoInZhbHVlIixlLmlkKSx2KDEpLGt0KGUubmFtZSl9fWZ1bmN0aW9uIEZFZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtHdCgwKSxmKDEsImgyIiksUygyLFBFZSw0LDMsIm5nLXRlbXBsYXRlIixudWxsLDIsanQpLGYoNCwic3BhbiIpLFQoNSwiRG93bmxvYWRceGEwIiksZygpLFMoNixrRWUsMSwwLCJuZy1jb250YWluZXIiLDMpLGYoNywic3BhbiIpLFQoOCwiXHhhMGRhdGEgZm9yXHhhMCIpLGcoKSxmKDksImNvZGUiLDQpLFQoMTApLGcoKSgpLGYoMTEsIm1hdC1kaWFsb2ctY29udGVudCIpKDEyLCJtYXQtZm9ybS1maWVsZCIsNSkoMTMsIm1hdC1sYWJlbCIpLFQoMTQsIlNlbGVjdCBhIHJ1biB0byBkb3dubG9hZCBhIGRhdGEgZm9yIGEgc2VyaWVzIiksZygpLGYoMTUsInNlbGVjdCIsNiksQSgiY2hhbmdlIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLnJ1blNlbGVjdGVkLmVtaXQoci50YXJnZXQudmFsdWUpKX0pLGYoMTYsIm9wdGlvbiIsNyksVCgxNywiLSIpLGcoKSxTKDE4LE9FZSwyLDIsIm9wdGlvbiIsOCksZygpKCksZigxOSwiZGl2Iiw5KSgyMCwic3BhbiIpLFQoMjEsIkRvd25sb2FkIGFzXHUyMDI2IiksZygpLFQoMjIsIlx4YTAiKSxmKDIzLCJhIiwxMCksVCgyNCwiSlNPTiIpLGcoKSxmKDI1LCJhIiwxMCksVCgyNiwiQ1NWIiksZygpKCkoKSxmKDI3LCJtYXQtZGlhbG9nLWFjdGlvbnMiLDExKSgyOCwiYnV0dG9uIiwxMiksVCgyOSwiQ2xvc2UiKSxnKCkoKSxXdCgpfWlmKDImbil7bGV0IGU9c3QoMyksaT13KCk7dig2KSxiKCJuZ1RlbXBsYXRlT3V0bGV0IixlKSx2KDMpLGIoInRpdGxlIixpLmNhcmRNZXRhZGF0YS50YWcpLHYoMSksa3QoaS5jYXJkTWV0YWRhdGEudGFnKSx2KDUpLGIoInZhbHVlIixpLnNlbGVjdGVkUnVuSWR8fCIiKSx2KDEpLGIoInZhbHVlIiwiIiksdigyKSxiKCJuZ0Zvck9mIixpLnJ1bnMpLHYoNSksYigiZGlzYWJsZWQiLCFpLmRvd25sb2FkVXJsSnNvbikoImRvd25sb2FkIixpLmdldERvd25sb2FkTmFtZSgianNvbiIpKSgiaHJlZiIsaS5kb3dubG9hZFVybEpzb24sVnMpLHYoMiksYigiZGlzYWJsZWQiLCFpLmRvd25sb2FkVXJsQ3N2KSgiZG93bmxvYWQiLGkuZ2V0RG93bmxvYWROYW1lKCJjc3YiKSkoImhyZWYiLGkuZG93bmxvYWRVcmxDc3YsVnMpfX1mdW5jdGlvbiBORWUobix0KXsxJm4mJlQoMCwiTG9hZGluZy4uLiIpfXZhciBLUT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy5ydW5TZWxlY3RlZD1uZXcgRix0aGlzLlBsdWdpblR5cGU9QW59Z2V0RG93bmxvYWROYW1lKGUpe2xldCBpPXRoaXMucnVucy5maW5kKHI9PnIuaWQ9PT10aGlzLnNlbGVjdGVkUnVuSWQpO3JldHVybiBpP2Ake2kubmFtZX0uJHtlfWA6IiJ9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImRhdGFfZG93bmxvYWRfZGlhbG9nX2NvbXBvbmVudCJdXSxpbnB1dHM6e2NhcmRNZXRhZGF0YToiY2FyZE1ldGFkYXRhIixydW5zOiJydW5zIixzZWxlY3RlZFJ1bklkOiJzZWxlY3RlZFJ1bklkIixkb3dubG9hZFVybENzdjoiZG93bmxvYWRVcmxDc3YiLGRvd25sb2FkVXJsSnNvbjoiZG93bmxvYWRVcmxKc29uIn0sb3V0cHV0czp7cnVuU2VsZWN0ZWQ6InJ1blNlbGVjdGVkIn0sZGVjbHM6Myx2YXJzOjIsY29uc3RzOltbNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJub0NhcmRNZXRhZGF0YSIsIiJdLFsiZGF0YU5hbWUiLCIiXSxbNCwibmdUZW1wbGF0ZU91dGxldCJdLFsxLCJ0YWctbmFtZSIsMywidGl0bGUiXSxbImFwcGVhcmFuY2UiLCJmaWxsIiwxLCJydW4tc2VsZWN0b3IiXSxbIm1hdE5hdGl2ZUNvbnRyb2wiLCIiLCJuYW1lIiwicnVuIiwiY2RrRm9jdXNJbml0aWFsIiwiIiwicmVxdWlyZWQiLCIiLDMsInZhbHVlIiwiY2hhbmdlIl0sWyJzZWxlY3RlZCIsIiIsMywidmFsdWUiXSxbMywidmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJkb3dubG9hZC1jb250cm9scyJdLFsibWF0LXN0cm9rZWQtYnV0dG9uIiwiIiwzLCJkaXNhYmxlZCIsImRvd25sb2FkIiwiaHJlZiIsImluY2x1ZGVGZWF0dXJlRmxhZ3MiXSxbImFsaWduIiwiZW5kIl0sWyJtYXQtYnV0dG9uIiwiIiwibWF0LWRpYWxvZy1jbG9zZSIsIiJdLFszLCJuZ1N3aXRjaCJdLFs0LCJuZ1N3aXRjaENhc2UiXSxbNCwiTmdTd2l0Y2hEZWZhdWx0Il0sWzMsInZhbHVlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiYoUygwLEZFZSwzMCwxMiwibmctY29udGFpbmVyIiwwKSxTKDEsTkVlLDEsMCwibmctdGVtcGxhdGUiLG51bGwsMSxqdCkpLDImZSl7bGV0IHI9c3QoMik7YigibmdJZiIsaS5jYXJkTWV0YWRhdGEpKCJuZ0lmRWxzZSIscil9fSxkZXBlbmRlbmNpZXM6W25uLE5lLGVvLG1yLGtyLFFULHhxLE1xLHo3LGtpLFoxLEsxLEoxLHF1LFBjLG5sXSxzdHlsZXM6WyJoMltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEuMjVlbTtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9LnJ1bi1zZWxlY3Rvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOi45ZW07d2lkdGg6MTAwJX0uZG93bmxvYWQtY29udHJvbHNbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTouOWVtfS5kb3dubG9hZC1jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV0gICBhW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46M3B4IDEwcHggM3B4IDB9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxKUT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSxyKXt0aGlzLnNlbGVjdGVkUnVuSWQkPW5ldyB4cihudWxsKSx0aGlzLmNhcmRNZXRhZGF0YSQ9ZS5zZWxlY3QoS3Msci5jYXJkSWQpLnBpcGUoT2Uobz0+Qm9vbGVhbihvKSkpLHRoaXMuZG93bmxvYWRVcmxDc3YkPUluKFtlLnNlbGVjdChLcyxyLmNhcmRJZCksdGhpcy5zZWxlY3RlZFJ1bklkJF0pLnBpcGUocSgoW28sYV0pPT5vJiZhP2kuZG93bmxvYWRVcmwoby5wbHVnaW4sby50YWcsYSwiY3N2Iik6bnVsbCksa24obnVsbCkpLHRoaXMuZG93bmxvYWRVcmxKc29uJD1JbihbZS5zZWxlY3QoS3Msci5jYXJkSWQpLHRoaXMuc2VsZWN0ZWRSdW5JZCRdKS5waXBlKHEoKFtvLGFdKT0+byYmYT9pLmRvd25sb2FkVXJsKG8ucGx1Z2luLG8udGFnLGEsImpzb24iKTpudWxsKSxrbihudWxsKSksdGhpcy5ydW5zJD1JbihbZS5zZWxlY3QoUVcpLGUuc2VsZWN0KHd1LHIuY2FyZElkKV0pLnBpcGUocSgoW28sYV0pPT5hP09iamVjdC5rZXlzKGEpLm1hcChzPT5vLmdldChzKSkuZmlsdGVyKEJvb2xlYW4pOltdKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpLEMod2MpLEMoWHYpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJkYXRhX2Rvd25sb2FkX2RpYWxvZyJdXSxkZWNsczo2LHZhcnM6MTUsY29uc3RzOltbMywiY2FyZE1ldGFkYXRhIiwicnVucyIsInNlbGVjdGVkUnVuSWQiLCJkb3dubG9hZFVybENzdiIsImRvd25sb2FkVXJsSnNvbiIsInJ1blNlbGVjdGVkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJkYXRhX2Rvd25sb2FkX2RpYWxvZ19jb21wb25lbnQiLDApLEEoInJ1blNlbGVjdGVkIixmdW5jdGlvbihvKXtyZXR1cm4gaS5zZWxlY3RlZFJ1bklkJC5uZXh0KG8pfSksVSgxLCJhc3luYyIpLFUoMiwiYXN5bmMiKSxVKDMsImFzeW5jIiksVSg0LCJhc3luYyIpLFUoNSwiYXN5bmMiKSxnKCkpLDImZSYmYigiY2FyZE1ldGFkYXRhIixHKDEsNSxpLmNhcmRNZXRhZGF0YSQpKSgicnVucyIsRygyLDcsaS5ydW5zJCkpKCJzZWxlY3RlZFJ1bklkIixHKDMsOSxpLnNlbGVjdGVkUnVuSWQkKSkoImRvd25sb2FkVXJsQ3N2IixHKDQsMTEsaS5kb3dubG9hZFVybENzdiQpKSgiZG93bmxvYWRVcmxKc29uIixHKDUsMTMsaS5kb3dubG9hZFVybEpzb24kKSl9LGRlcGVuZGVuY2llczpbS1EsY3RdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpO2Z1bmN0aW9uIGFsKG4sdCl7cmV0dXJuIG48dD8tMTpuPnQ/MTpuPj10PzA6TmFOfWZ1bmN0aW9uIEN5KG4pe3JldHVybiAxPT09bi5sZW5ndGgmJihuPWZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbih0LGUpe3JldHVybiBhbChuKHQpLGUpfX0obikpLHtsZWZ0OmZ1bmN0aW9uKHQsZSxpLHIpe2ZvcihudWxsPT1pJiYoaT0wKSxudWxsPT1yJiYocj10Lmxlbmd0aCk7aTxyOyl7dmFyIG89aStyPj4+MTtuKHRbb10sZSk8MD9pPW8rMTpyPW99cmV0dXJuIGl9LHJpZ2h0OmZ1bmN0aW9uKHQsZSxpLHIpe2ZvcihudWxsPT1pJiYoaT0wKSxudWxsPT1yJiYocj10Lmxlbmd0aCk7aTxyOyl7dmFyIG89aStyPj4+MTtuKHRbb10sZSk+MD9yPW86aT1vKzF9cmV0dXJuIGl9fX12YXIgTGM9Q3koYWwpLnJpZ2h0LEZOPU1hdGguc3FydCg1MCksTk49TWF0aC5zcXJ0KDEwKSxMTj1NYXRoLnNxcnQoMik7ZnVuY3Rpb24gTXkobix0LGUpe3ZhciBpLG8sYSxzLHI9LTE7aWYoZT0rZSwobj0rbik9PSh0PSt0KSYmZT4wKXJldHVybltuXTtpZigoaT10PG4pJiYobz1uLG49dCx0PW8pLDA9PT0ocz1lMChuLHQsZSkpfHwhaXNGaW5pdGUocykpcmV0dXJuW107aWYocz4wKWZvcihuPU1hdGguY2VpbChuL3MpLHQ9TWF0aC5mbG9vcih0L3MpLGE9bmV3IEFycmF5KG89TWF0aC5jZWlsKHQtbisxKSk7KytyPG87KWFbcl09KG4rcikqcztlbHNlIGZvcihuPU1hdGguZmxvb3IobipzKSx0PU1hdGguY2VpbCh0KnMpLGE9bmV3IEFycmF5KG89TWF0aC5jZWlsKG4tdCsxKSk7KytyPG87KWFbcl09KG4tcikvcztyZXR1cm4gaSYmYS5yZXZlcnNlKCksYX1mdW5jdGlvbiBlMChuLHQsZSl7dmFyIGk9KHQtbikvTWF0aC5tYXgoMCxlKSxyPU1hdGguZmxvb3IoTWF0aC5sb2coaSkvTWF0aC5MTjEwKSxvPWkvTWF0aC5wb3coMTAscik7cmV0dXJuIHI+PTA/KG8+PUZOPzEwOm8+PU5OPzU6bz49TE4/MjoxKSpNYXRoLnBvdygxMCxyKTotTWF0aC5wb3coMTAsLXIpLyhvPj1GTj8xMDpvPj1OTj81Om8+PUxOPzI6MSl9ZnVuY3Rpb24gSWQobix0LGUpe3ZhciBpPU1hdGguYWJzKHQtbikvTWF0aC5tYXgoMCxlKSxyPU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2coaSkvTWF0aC5MTjEwKSksbz1pL3I7cmV0dXJuIG8+PUZOP3IqPTEwOm8+PU5OP3IqPTU6bz49TE4mJihyKj0yKSx0PG4/LXI6cn12YXIgSlQ9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIHJaKG4pe3JldHVybiBufXZhciBWTj0xLGVEPTIsSE49MywkVD00LG9aPTFlLTY7ZnVuY3Rpb24gWEVlKG4pe3JldHVybiJ0cmFuc2xhdGUoIisobisuNSkrIiwwKSJ9ZnVuY3Rpb24gWUVlKG4pe3JldHVybiJ0cmFuc2xhdGUoMCwiKyhuKy41KSsiKSJ9ZnVuY3Rpb24gUUVlKG4pe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4rbih0KX19ZnVuY3Rpb24gWkVlKG4pe3ZhciB0PU1hdGgubWF4KDAsbi5iYW5kd2lkdGgoKS0xKS8yO3JldHVybiBuLnJvdW5kKCkmJih0PU1hdGgucm91bmQodCkpLGZ1bmN0aW9uKGUpe3JldHVybituKGUpK3R9fWZ1bmN0aW9uIEtFZSgpe3JldHVybiF0aGlzLl9fYXhpc31mdW5jdGlvbiBhWihuLHQpe3ZhciBlPVtdLGk9bnVsbCxyPW51bGwsbz02LGE9NixzPTMsbD1uPT09Vk58fG49PT0kVD8tMToxLGM9bj09PSRUfHxuPT09ZUQ/IngiOiJ5IixkPW49PT1WTnx8bj09PUhOP1hFZTpZRWU7ZnVuY3Rpb24gdShwKXt2YXIgaD1pPz8odC50aWNrcz90LnRpY2tzLmFwcGx5KHQsZSk6dC5kb21haW4oKSksbT1yPz8odC50aWNrRm9ybWF0P3QudGlja0Zvcm1hdC5hcHBseSh0LGUpOnJaKSxfPU1hdGgubWF4KG8sMCkrcyxNPXQucmFuZ2UoKSx5PStNWzBdKy41LHg9K01bTS5sZW5ndGgtMV0rLjUsUj0odC5iYW5kd2lkdGg/WkVlOlFFZSkodC5jb3B5KCkpLEk9cC5zZWxlY3Rpb24/cC5zZWxlY3Rpb24oKTpwLEI9SS5zZWxlY3RBbGwoIi5kb21haW4iKS5kYXRhKFtudWxsXSksZWU9SS5zZWxlY3RBbGwoIi50aWNrIikuZGF0YShoLHQpLm9yZGVyKCksUT1lZS5leGl0KCksd2U9ZWUuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsInRpY2siKSxRZT1lZS5zZWxlY3QoImxpbmUiKSxBZT1lZS5zZWxlY3QoInRleHQiKTtCPUIubWVyZ2UoQi5lbnRlcigpLmluc2VydCgicGF0aCIsIi50aWNrIikuYXR0cigiY2xhc3MiLCJkb21haW4iKS5hdHRyKCJzdHJva2UiLCJjdXJyZW50Q29sb3IiKSksZWU9ZWUubWVyZ2Uod2UpLFFlPVFlLm1lcmdlKHdlLmFwcGVuZCgibGluZSIpLmF0dHIoInN0cm9rZSIsImN1cnJlbnRDb2xvciIpLmF0dHIoYysiMiIsbCpvKSksQWU9QWUubWVyZ2Uod2UuYXBwZW5kKCJ0ZXh0IikuYXR0cigiZmlsbCIsImN1cnJlbnRDb2xvciIpLmF0dHIoYyxsKl8pLmF0dHIoImR5IixuPT09Vk4/IjBlbSI6bj09PUhOPyIwLjcxZW0iOiIwLjMyZW0iKSkscCE9PUkmJihCPUIudHJhbnNpdGlvbihwKSxlZT1lZS50cmFuc2l0aW9uKHApLFFlPVFlLnRyYW5zaXRpb24ocCksQWU9QWUudHJhbnNpdGlvbihwKSxRPVEudHJhbnNpdGlvbihwKS5hdHRyKCJvcGFjaXR5IixvWikuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbihEKXtyZXR1cm4gaXNGaW5pdGUoRD1SKEQpKT9kKEQpOnRoaXMuZ2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iKX0pLHdlLmF0dHIoIm9wYWNpdHkiLG9aKS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKEQpe3ZhciByZT10aGlzLnBhcmVudE5vZGUuX19heGlzO3JldHVybiBkKHJlJiZpc0Zpbml0ZShyZT1yZShEKSk/cmU6UihEKSl9KSksUS5yZW1vdmUoKSxCLmF0dHIoImQiLG49PT0kVHx8bj09ZUQ/YT8iTSIrbCphKyIsIit5KyJIMC41ViIreCsiSCIrbCphOiJNMC41LCIreSsiViIreDphPyJNIit5KyIsIitsKmErIlYwLjVIIit4KyJWIitsKmE6Ik0iK3krIiwwLjVIIit4KSxlZS5hdHRyKCJvcGFjaXR5IiwxKS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKEQpe3JldHVybiBkKFIoRCkpfSksUWUuYXR0cihjKyIyIixsKm8pLEFlLmF0dHIoYyxsKl8pLnRleHQobSksSS5maWx0ZXIoS0VlKS5hdHRyKCJmaWxsIiwibm9uZSIpLmF0dHIoImZvbnQtc2l6ZSIsMTApLmF0dHIoImZvbnQtZmFtaWx5Iiwic2Fucy1zZXJpZiIpLmF0dHIoInRleHQtYW5jaG9yIixuPT09ZUQ/InN0YXJ0IjpuPT09JFQ/ImVuZCI6Im1pZGRsZSIpLEkuZWFjaChmdW5jdGlvbigpe3RoaXMuX19heGlzPVJ9KX1yZXR1cm4gdS5zY2FsZT1mdW5jdGlvbihwKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1wLHUpOnR9LHUudGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gZT1KVC5jYWxsKGFyZ3VtZW50cyksdX0sdS50aWNrQXJndW1lbnRzPWZ1bmN0aW9uKHApe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW51bGw9PXA/W106SlQuY2FsbChwKSx1KTplLnNsaWNlKCl9LHUudGlja1ZhbHVlcz1mdW5jdGlvbihwKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1udWxsPT1wP251bGw6SlQuY2FsbChwKSx1KTppJiZpLnNsaWNlKCl9LHUudGlja0Zvcm1hdD1mdW5jdGlvbihwKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1wLHUpOnJ9LHUudGlja1NpemU9ZnVuY3Rpb24ocCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89YT0rcCx1KTpvfSx1LnRpY2tTaXplSW5uZXI9ZnVuY3Rpb24ocCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K3AsdSk6b30sdS50aWNrU2l6ZU91dGVyPWZ1bmN0aW9uKHApe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPStwLHUpOmF9LHUudGlja1BhZGRpbmc9ZnVuY3Rpb24ocCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9K3AsdSk6c30sdX12YXIgSkVlPXt2YWx1ZTpmdW5jdGlvbigpe319O2Z1bmN0aW9uIGxaKCl7Zm9yKHZhciBpLG49MCx0PWFyZ3VtZW50cy5sZW5ndGgsZT17fTtuPHQ7KytuKXtpZighKGk9YXJndW1lbnRzW25dKyIiKXx8aSBpbiBlfHwvW1xzLl0vLnRlc3QoaSkpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIHR5cGU6ICIraSk7ZVtpXT1bXX1yZXR1cm4gbmV3IHREKGUpfWZ1bmN0aW9uIHREKG4pe3RoaXMuXz1ufWZ1bmN0aW9uIGVUZShuLHQpe2Zvcih2YXIgcixlPTAsaT1uLmxlbmd0aDtlPGk7KytlKWlmKChyPW5bZV0pLm5hbWU9PT10KXJldHVybiByLnZhbHVlfWZ1bmN0aW9uIHNaKG4sdCxlKXtmb3IodmFyIGk9MCxyPW4ubGVuZ3RoO2k8cjsrK2kpaWYobltpXS5uYW1lPT09dCl7bltpXT1KRWUsbj1uLnNsaWNlKDAsaSkuY29uY2F0KG4uc2xpY2UoaSsxKSk7YnJlYWt9cmV0dXJuIG51bGwhPWUmJm4ucHVzaCh7bmFtZTp0LHZhbHVlOmV9KSxufXRELnByb3RvdHlwZT1sWi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnRELG9uOmZ1bmN0aW9uKG4sdCl7dmFyIHIsZT10aGlzLl8saT1mdW5jdGlvbihuLHQpe3JldHVybiBuLnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoZnVuY3Rpb24oZSl7dmFyIGk9IiIscj1lLmluZGV4T2YoIi4iKTtpZihyPj0wJiYoaT1lLnNsaWNlKHIrMSksZT1lLnNsaWNlKDAscikpLGUmJiF0Lmhhc093blByb3BlcnR5KGUpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK2UpO3JldHVybnt0eXBlOmUsbmFtZTppfX0pfShuKyIiLGUpLG89LTEsYT1pLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2lmKG51bGwhPXQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjazogIit0KTtmb3IoOysrbzxhOylpZihyPShuPWlbb10pLnR5cGUpZVtyXT1zWihlW3JdLG4ubmFtZSx0KTtlbHNlIGlmKG51bGw9PXQpZm9yKHIgaW4gZSllW3JdPXNaKGVbcl0sbi5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytvPGE7KWlmKChyPShuPWlbb10pLnR5cGUpJiYocj1lVGUoZVtyXSxuLm5hbWUpKSlyZXR1cm4gcn0sY29weTpmdW5jdGlvbigpe3ZhciBuPXt9LHQ9dGhpcy5fO2Zvcih2YXIgZSBpbiB0KW5bZV09dFtlXS5zbGljZSgpO3JldHVybiBuZXcgdEQobil9LGNhbGw6ZnVuY3Rpb24obix0KXtpZigocj1hcmd1bWVudHMubGVuZ3RoLTIpPjApZm9yKHZhciByLG8sZT1uZXcgQXJyYXkociksaT0wO2k8cjsrK2kpZVtpXT1hcmd1bWVudHNbaSsyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KG4pKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK24pO2ZvcihpPTAscj0obz10aGlzLl9bbl0pLmxlbmd0aDtpPHI7KytpKW9baV0udmFsdWUuYXBwbHkodCxlKX0sYXBwbHk6ZnVuY3Rpb24obix0LGUpe2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkobikpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrbik7Zm9yKHZhciBpPXRoaXMuX1tuXSxyPTAsbz1pLmxlbmd0aDtyPG87KytyKWlbcl0udmFsdWUuYXBwbHkodCxlKX19O3ZhciBqTj1sWixuRD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsR049e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhodG1sOm5ELHhsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIix4bWw6Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIn07ZnVuY3Rpb24gQWQobil7dmFyIHQ9bis9IiIsZT10LmluZGV4T2YoIjoiKTtyZXR1cm4gZT49MCYmInhtbG5zIiE9PSh0PW4uc2xpY2UoMCxlKSkmJihuPW4uc2xpY2UoZSsxKSksR04uaGFzT3duUHJvcGVydHkodCk/e3NwYWNlOkdOW3RdLGxvY2FsOm59Om59ZnVuY3Rpb24gdFRlKG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMub3duZXJEb2N1bWVudCxlPXRoaXMubmFtZXNwYWNlVVJJO3JldHVybiBlPT09bkQmJnQuZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PW5EP3QuY3JlYXRlRWxlbWVudChuKTp0LmNyZWF0ZUVsZW1lbnROUyhlLG4pfX1mdW5jdGlvbiBuVGUobil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobi5zcGFjZSxuLmxvY2FsKX19ZnVuY3Rpb24gaUQobil7dmFyIHQ9QWQobik7cmV0dXJuKHQubG9jYWw/blRlOnRUZSkodCl9ZnVuY3Rpb24gaVRlKCl7fWZ1bmN0aW9uIEdoKG4pe3JldHVybiBudWxsPT1uP2lUZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3Iobil9fWZ1bmN0aW9uIHJUZSgpe3JldHVybltdfWZ1bmN0aW9uIFN5KG4pe3JldHVybiBudWxsPT1uP3JUZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwobil9fWZ1bmN0aW9uIEV5KG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdGNoZXMobil9fWZ1bmN0aW9uIHJEKG4pe3JldHVybiBuZXcgQXJyYXkobi5sZW5ndGgpfWZ1bmN0aW9uIFR5KG4sdCl7dGhpcy5vd25lckRvY3VtZW50PW4ub3duZXJEb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSST1uLm5hbWVzcGFjZVVSSSx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcGFyZW50PW4sdGhpcy5fX2RhdGFfXz10fVR5LnByb3RvdHlwZT17Y29uc3RydWN0b3I6VHksYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUobix0aGlzLl9uZXh0KX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUobix0KX0scXVlcnlTZWxlY3RvcjpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3Iobil9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKG4pfX07dmFyIG1aPSIkIjtmdW5jdGlvbiBvVGUobix0LGUsaSxyLG8pe2Zvcih2YXIgcyxhPTAsbD10Lmxlbmd0aCxjPW8ubGVuZ3RoO2E8YzsrK2EpKHM9dFthXSk/KHMuX19kYXRhX189b1thXSxpW2FdPXMpOmVbYV09bmV3IFR5KG4sb1thXSk7Zm9yKDthPGw7KythKShzPXRbYV0pJiYoclthXT1zKX1mdW5jdGlvbiBhVGUobix0LGUsaSxyLG8sYSl7dmFyIHMsbCxoLGM9e30sZD10Lmxlbmd0aCx1PW8ubGVuZ3RoLHA9bmV3IEFycmF5KGQpO2ZvcihzPTA7czxkOysrcykobD10W3NdKSYmKHBbc109aD1tWithLmNhbGwobCxsLl9fZGF0YV9fLHMsdCksaCBpbiBjP3Jbc109bDpjW2hdPWwpO2ZvcihzPTA7czx1OysrcykobD1jW2g9bVorYS5jYWxsKG4sb1tzXSxzLG8pXSk/KGlbc109bCxsLl9fZGF0YV9fPW9bc10sY1toXT1udWxsKTplW3NdPW5ldyBUeShuLG9bc10pO2ZvcihzPTA7czxkOysrcykobD10W3NdKSYmY1twW3NdXT09PWwmJihyW3NdPWwpfWZ1bmN0aW9uIHNUZShuLHQpe3JldHVybiBuPHQ/LTE6bj50PzE6bj49dD8wOk5hTn1mdW5jdGlvbiBsVGUobil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUobil9fWZ1bmN0aW9uIGNUZShuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKG4uc3BhY2Usbi5sb2NhbCl9fWZ1bmN0aW9uIGRUZShuLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKG4sdCl9fWZ1bmN0aW9uIHVUZShuLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsLHQpfX1mdW5jdGlvbiBwVGUobix0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1lP3RoaXMucmVtb3ZlQXR0cmlidXRlKG4pOnRoaXMuc2V0QXR0cmlidXRlKG4sZSl9fWZ1bmN0aW9uIGhUZShuLHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWU/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhuLnNwYWNlLG4ubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsLGUpfX1mdW5jdGlvbiBvRChuKXtyZXR1cm4gbi5vd25lckRvY3VtZW50JiZuLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fG4uZG9jdW1lbnQmJm58fG4uZGVmYXVsdFZpZXd9ZnVuY3Rpb24gbVRlKG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkobil9fWZ1bmN0aW9uIGZUZShuLHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eShuLHQsZSl9fWZ1bmN0aW9uIGdUZShuLHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09aT90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KG4pOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkobixpLGUpfX1mdW5jdGlvbiBpcChuLHQpe3JldHVybiBuLnN0eWxlLmdldFByb3BlcnR5VmFsdWUodCl8fG9EKG4pLmdldENvbXB1dGVkU3R5bGUobixudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHQpfWZ1bmN0aW9uIF9UZShuKXtyZXR1cm4gZnVuY3Rpb24oKXtkZWxldGUgdGhpc1tuXX19ZnVuY3Rpb24gYlRlKG4sdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpc1tuXT10fX1mdW5jdGlvbiB2VGUobix0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1lP2RlbGV0ZSB0aGlzW25dOnRoaXNbbl09ZX19ZnVuY3Rpb24gQVoobil7cmV0dXJuIG4udHJpbSgpLnNwbGl0KC9efFxzKy8pfWZ1bmN0aW9uIFdOKG4pe3JldHVybiBuLmNsYXNzTGlzdHx8bmV3IFJaKG4pfWZ1bmN0aW9uIFJaKG4pe3RoaXMuX25vZGU9bix0aGlzLl9uYW1lcz1BWihuLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfWZ1bmN0aW9uIFBaKG4sdCl7Zm9yKHZhciBlPVdOKG4pLGk9LTEscj10Lmxlbmd0aDsrK2k8cjspZS5hZGQodFtpXSl9ZnVuY3Rpb24ga1oobix0KXtmb3IodmFyIGU9V04obiksaT0tMSxyPXQubGVuZ3RoOysraTxyOyllLnJlbW92ZSh0W2ldKX1mdW5jdGlvbiB5VGUobil7cmV0dXJuIGZ1bmN0aW9uKCl7UFoodGhpcyxuKX19ZnVuY3Rpb24geFRlKG4pe3JldHVybiBmdW5jdGlvbigpe2taKHRoaXMsbil9fWZ1bmN0aW9uIENUZShuLHQpe3JldHVybiBmdW5jdGlvbigpeyh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKT9QWjprWikodGhpcyxuKX19ZnVuY3Rpb24gTVRlKCl7dGhpcy50ZXh0Q29udGVudD0iIn1mdW5jdGlvbiB3VGUobil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD1ufX1mdW5jdGlvbiBTVGUobil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50ZXh0Q29udGVudD10Pz8iIn19ZnVuY3Rpb24gRVRlKCl7dGhpcy5pbm5lckhUTUw9IiJ9ZnVuY3Rpb24gVFRlKG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPW59fWZ1bmN0aW9uIERUZShuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLmlubmVySFRNTD10Pz8iIn19ZnVuY3Rpb24gSVRlKCl7dGhpcy5uZXh0U2libGluZyYmdGhpcy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMpfWZ1bmN0aW9uIEFUZSgpe3RoaXMucHJldmlvdXNTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsdGhpcy5wYXJlbnROb2RlLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIFJUZSgpe3JldHVybiBudWxsfWZ1bmN0aW9uIFBUZSgpe3ZhciBuPXRoaXMucGFyZW50Tm9kZTtuJiZuLnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIGtUZSgpe3ZhciBuPXRoaXMuY2xvbmVOb2RlKCExKSx0PXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gdD90Lmluc2VydEJlZm9yZShuLHRoaXMubmV4dFNpYmxpbmcpOm59ZnVuY3Rpb24gT1RlKCl7dmFyIG49dGhpcy5jbG9uZU5vZGUoITApLHQ9dGhpcy5wYXJlbnROb2RlO3JldHVybiB0P3QuaW5zZXJ0QmVmb3JlKG4sdGhpcy5uZXh0U2libGluZyk6bn1SWi5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbihuKXt0aGlzLl9uYW1lcy5pbmRleE9mKG4pPDAmJih0aGlzLl9uYW1lcy5wdXNoKG4pLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LHJlbW92ZTpmdW5jdGlvbihuKXt2YXIgdD10aGlzLl9uYW1lcy5pbmRleE9mKG4pO3Q+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UodCwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxjb250YWluczpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZihuKT49MH19O3ZhciBXWj17fSxxTj1udWxsO2Z1bmN0aW9uIEZUZShuLHQsZSl7cmV0dXJuIG49cVoobix0LGUpLGZ1bmN0aW9uKGkpe3ZhciByPWkucmVsYXRlZFRhcmdldDsoIXJ8fHIhPT10aGlzJiYhKDgmci5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSkpJiZuLmNhbGwodGhpcyxpKX19ZnVuY3Rpb24gcVoobix0LGUpe3JldHVybiBmdW5jdGlvbihpKXt2YXIgcj1xTjtxTj1pO3RyeXtuLmNhbGwodGhpcyx0aGlzLl9fZGF0YV9fLHQsZSl9ZmluYWxseXtxTj1yfX19ZnVuY3Rpb24gTFRlKG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMuX19vbjtpZih0KXtmb3IodmFyIG8sZT0wLGk9LTEscj10Lmxlbmd0aDtlPHI7KytlKW89dFtlXSxuLnR5cGUmJm8udHlwZSE9PW4udHlwZXx8by5uYW1lIT09bi5uYW1lP3RbKytpXT1vOnRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihvLnR5cGUsby5saXN0ZW5lcixvLmNhcHR1cmUpOysraT90Lmxlbmd0aD1pOmRlbGV0ZSB0aGlzLl9fb259fX1mdW5jdGlvbiBCVGUobix0LGUpe3ZhciBpPVdaLmhhc093blByb3BlcnR5KG4udHlwZSk/RlRlOnFaO3JldHVybiBmdW5jdGlvbihyLG8sYSl7dmFyIGwscz10aGlzLl9fb24sYz1pKHQsbyxhKTtpZihzKWZvcih2YXIgZD0wLHU9cy5sZW5ndGg7ZDx1OysrZClpZigobD1zW2RdKS50eXBlPT09bi50eXBlJiZsLm5hbWU9PT1uLm5hbWUpcmV0dXJuIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihsLnR5cGUsbC5saXN0ZW5lcixsLmNhcHR1cmUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihsLnR5cGUsbC5saXN0ZW5lcj1jLGwuY2FwdHVyZT1lKSx2b2lkKGwudmFsdWU9dCk7dGhpcy5hZGRFdmVudExpc3RlbmVyKG4udHlwZSxjLGUpLGw9e3R5cGU6bi50eXBlLG5hbWU6bi5uYW1lLHZhbHVlOnQsbGlzdGVuZXI6YyxjYXB0dXJlOmV9LHM/cy5wdXNoKGwpOnRoaXMuX19vbj1bbF19fWZ1bmN0aW9uIFlaKG4sdCxlKXt2YXIgaT1vRChuKSxyPWkuQ3VzdG9tRXZlbnQ7ImZ1bmN0aW9uIj09dHlwZW9mIHI/cj1uZXcgcih0LGUpOihyPWkuZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50IiksZT8oci5pbml0RXZlbnQodCxlLmJ1YmJsZXMsZS5jYW5jZWxhYmxlKSxyLmRldGFpbD1lLmRldGFpbCk6ci5pbml0RXZlbnQodCwhMSwhMSkpLG4uZGlzcGF0Y2hFdmVudChyKX1mdW5jdGlvbiBWVGUobix0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gWVoodGhpcyxuLHQpfX1mdW5jdGlvbiBIVGUobix0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gWVoodGhpcyxuLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19dHlwZW9mIGRvY3VtZW50PCJ1IiYmKCJvbm1vdXNlZW50ZXIiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHwoV1o9e21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSkpO3ZhciBYTj1bbnVsbF07ZnVuY3Rpb24gQnIobix0KXt0aGlzLl9ncm91cHM9bix0aGlzLl9wYXJlbnRzPXR9ZnVuY3Rpb24gWlooKXtyZXR1cm4gbmV3IEJyKFtbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XV0sWE4pfUJyLnByb3RvdHlwZT1aWi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkJyLHNlbGVjdDpmdW5jdGlvbihuKXsiZnVuY3Rpb24iIT10eXBlb2YgbiYmKG49R2gobikpO2Zvcih2YXIgdD10aGlzLl9ncm91cHMsZT10Lmxlbmd0aCxpPW5ldyBBcnJheShlKSxyPTA7cjxlOysrcilmb3IodmFyIGwsYyxvPXRbcl0sYT1vLmxlbmd0aCxzPWlbcl09bmV3IEFycmF5KGEpLGQ9MDtkPGE7KytkKShsPW9bZF0pJiYoYz1uLmNhbGwobCxsLl9fZGF0YV9fLGQsbykpJiYoIl9fZGF0YV9fImluIGwmJihjLl9fZGF0YV9fPWwuX19kYXRhX18pLHNbZF09Yyk7cmV0dXJuIG5ldyBCcihpLHRoaXMuX3BhcmVudHMpfSxzZWxlY3RBbGw6ZnVuY3Rpb24obil7ImZ1bmN0aW9uIiE9dHlwZW9mIG4mJihuPVN5KG4pKTtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9dC5sZW5ndGgsaT1bXSxyPVtdLG89MDtvPGU7KytvKWZvcih2YXIgbCxhPXRbb10scz1hLmxlbmd0aCxjPTA7YzxzOysrYykobD1hW2NdKSYmKGkucHVzaChuLmNhbGwobCxsLl9fZGF0YV9fLGMsYSkpLHIucHVzaChsKSk7cmV0dXJuIG5ldyBCcihpLHIpfSxmaWx0ZXI6ZnVuY3Rpb24obil7ImZ1bmN0aW9uIiE9dHlwZW9mIG4mJihuPUV5KG4pKTtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9dC5sZW5ndGgsaT1uZXcgQXJyYXkoZSkscj0wO3I8ZTsrK3IpZm9yKHZhciBsLG89dFtyXSxhPW8ubGVuZ3RoLHM9aVtyXT1bXSxjPTA7YzxhOysrYykobD1vW2NdKSYmbi5jYWxsKGwsbC5fX2RhdGFfXyxjLG8pJiZzLnB1c2gobCk7cmV0dXJuIG5ldyBCcihpLHRoaXMuX3BhcmVudHMpfSxkYXRhOmZ1bmN0aW9uKG4sdCl7aWYoIW4pcmV0dXJuIGg9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxjPS0xLHRoaXMuZWFjaChmdW5jdGlvbihlZSl7aFsrK2NdPWVlfSksaDt2YXIgZT10P2FUZTpvVGUsaT10aGlzLl9wYXJlbnRzLHI9dGhpcy5fZ3JvdXBzOyJmdW5jdGlvbiIhPXR5cGVvZiBuJiYobj1mdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbn19KG4pKTtmb3IodmFyIG89ci5sZW5ndGgsYT1uZXcgQXJyYXkobykscz1uZXcgQXJyYXkobyksbD1uZXcgQXJyYXkobyksYz0wO2M8bzsrK2Mpe3ZhciBkPWlbY10sdT1yW2NdLHA9dS5sZW5ndGgsaD1uLmNhbGwoZCxkJiZkLl9fZGF0YV9fLGMsaSksbT1oLmxlbmd0aCxfPXNbY109bmV3IEFycmF5KG0pLE09YVtjXT1uZXcgQXJyYXkobSk7ZShkLHUsXyxNLGxbY109bmV3IEFycmF5KHApLGgsdCk7Zm9yKHZhciBJLEIseD0wLFI9MDt4PG07Kyt4KWlmKEk9X1t4XSl7Zm9yKHg+PVImJihSPXgrMSk7IShCPU1bUl0pJiYrK1I8bTspO0kuX25leHQ9Qnx8bnVsbH19cmV0dXJuKGE9bmV3IEJyKGEsaSkpLl9lbnRlcj1zLGEuX2V4aXQ9bCxhfSxlbnRlcjpmdW5jdGlvbigpe3JldHVybiBuZXcgQnIodGhpcy5fZW50ZXJ8fHRoaXMuX2dyb3Vwcy5tYXAockQpLHRoaXMuX3BhcmVudHMpfSxleGl0OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBCcih0aGlzLl9leGl0fHx0aGlzLl9ncm91cHMubWFwKHJEKSx0aGlzLl9wYXJlbnRzKX0sam9pbjpmdW5jdGlvbihuLHQsZSl7dmFyIGk9dGhpcy5lbnRlcigpLHI9dGhpcyxvPXRoaXMuZXhpdCgpO3JldHVybiBpPSJmdW5jdGlvbiI9PXR5cGVvZiBuP24oaSk6aS5hcHBlbmQobisiIiksbnVsbCE9dCYmKHI9dChyKSksbnVsbD09ZT9vLnJlbW92ZSgpOmUobyksaSYmcj9pLm1lcmdlKHIpLm9yZGVyKCk6cn0sbWVyZ2U6ZnVuY3Rpb24obil7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPW4uX2dyb3VwcyxpPXQubGVuZ3RoLG89TWF0aC5taW4oaSxlLmxlbmd0aCksYT1uZXcgQXJyYXkoaSkscz0wO3M8bzsrK3MpZm9yKHZhciBwLGw9dFtzXSxjPWVbc10sZD1sLmxlbmd0aCx1PWFbc109bmV3IEFycmF5KGQpLGg9MDtoPGQ7KytoKShwPWxbaF18fGNbaF0pJiYodVtoXT1wKTtmb3IoO3M8aTsrK3MpYVtzXT10W3NdO3JldHVybiBuZXcgQnIoYSx0aGlzLl9wYXJlbnRzKX0sb3JkZXI6ZnVuY3Rpb24oKXtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLHQ9LTEsZT1uLmxlbmd0aDsrK3Q8ZTspZm9yKHZhciBhLGk9blt0XSxyPWkubGVuZ3RoLTEsbz1pW3JdOy0tcj49MDspKGE9aVtyXSkmJihvJiY0XmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24obykmJm8ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxvKSxvPWEpO3JldHVybiB0aGlzfSxzb3J0OmZ1bmN0aW9uKG4pe2Z1bmN0aW9uIHQodSxwKXtyZXR1cm4gdSYmcD9uKHUuX19kYXRhX18scC5fX2RhdGFfXyk6IXUtIXB9bnx8KG49c1RlKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLGk9ZS5sZW5ndGgscj1uZXcgQXJyYXkoaSksbz0wO288aTsrK28pe2Zvcih2YXIgYyxhPWVbb10scz1hLmxlbmd0aCxsPXJbb109bmV3IEFycmF5KHMpLGQ9MDtkPHM7KytkKShjPWFbZF0pJiYobFtkXT1jKTtsLnNvcnQodCl9cmV0dXJuIG5ldyBCcihyLHRoaXMuX3BhcmVudHMpLm9yZGVyKCl9LGNhbGw6ZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHNbMF07cmV0dXJuIGFyZ3VtZW50c1swXT10aGlzLG4uYXBwbHkobnVsbCxhcmd1bWVudHMpLHRoaXN9LG5vZGVzOmZ1bmN0aW9uKCl7dmFyIG49bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSx0PS0xO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtuWysrdF09dGhpc30pLG59LG5vZGU6ZnVuY3Rpb24oKXtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLHQ9MCxlPW4ubGVuZ3RoO3Q8ZTsrK3QpZm9yKHZhciBpPW5bdF0scj0wLG89aS5sZW5ndGg7cjxvOysrcil7dmFyIGE9aVtyXTtpZihhKXJldHVybiBhfXJldHVybiBudWxsfSxzaXplOmZ1bmN0aW9uKCl7dmFyIG49MDtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7KytufSksbn0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5ub2RlKCl9LGVhY2g6ZnVuY3Rpb24obil7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPTAsaT10Lmxlbmd0aDtlPGk7KytlKWZvcih2YXIgcyxyPXRbZV0sbz0wLGE9ci5sZW5ndGg7bzxhOysrbykocz1yW29dKSYmbi5jYWxsKHMscy5fX2RhdGFfXyxvLHIpO3JldHVybiB0aGlzfSxhdHRyOmZ1bmN0aW9uKG4sdCl7dmFyIGU9QWQobik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgaT10aGlzLm5vZGUoKTtyZXR1cm4gZS5sb2NhbD9pLmdldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCk6aS5nZXRBdHRyaWJ1dGUoZSl9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09dD9lLmxvY2FsP2NUZTpsVGU6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/ZS5sb2NhbD9oVGU6cFRlOmUubG9jYWw/dVRlOmRUZSkoZSx0KSl9LHN0eWxlOmZ1bmN0aW9uKG4sdCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09dD9tVGU6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/Z1RlOmZUZSkobix0LGU/PyIiKSk6aXAodGhpcy5ub2RlKCksbil9LHByb3BlcnR5OmZ1bmN0aW9uKG4sdCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PXQ/X1RlOiJmdW5jdGlvbiI9PXR5cGVvZiB0P3ZUZTpiVGUpKG4sdCkpOnRoaXMubm9kZSgpW25dfSxjbGFzc2VkOmZ1bmN0aW9uKG4sdCl7dmFyIGU9QVoobisiIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodmFyIGk9V04odGhpcy5ub2RlKCkpLHI9LTEsbz1lLmxlbmd0aDsrK3I8bzspaWYoIWkuY29udGFpbnMoZVtyXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIHQ/Q1RlOnQ/eVRlOnhUZSkoZSx0KSl9LHRleHQ6ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PW4/TVRlOigiZnVuY3Rpb24iPT10eXBlb2Ygbj9TVGU6d1RlKShuKSk6dGhpcy5ub2RlKCkudGV4dENvbnRlbnR9LGh0bWw6ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PW4/RVRlOigiZnVuY3Rpb24iPT10eXBlb2Ygbj9EVGU6VFRlKShuKSk6dGhpcy5ub2RlKCkuaW5uZXJIVE1MfSxyYWlzZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goSVRlKX0sbG93ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKEFUZSl9LGFwcGVuZDpmdW5jdGlvbihuKXt2YXIgdD0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOmlEKG4pO3JldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpe3JldHVybiB0aGlzLmFwcGVuZENoaWxkKHQuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pfSxpbnNlcnQ6ZnVuY3Rpb24obix0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOmlEKG4pLGk9bnVsbD09dD9SVGU6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpHaCh0KTtyZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUoZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSl9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goUFRlKX0sY2xvbmU6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuc2VsZWN0KG4/T1RlOmtUZSl9LGRhdHVtOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoIl9fZGF0YV9fIixuKTp0aGlzLm5vZGUoKS5fX2RhdGFfX30sb246ZnVuY3Rpb24obix0LGUpe3ZhciByLGEsaT1mdW5jdGlvbihuKXtyZXR1cm4gbi50cmltKCkuc3BsaXQoL158XHMrLykubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPSIiLGk9dC5pbmRleE9mKCIuIik7cmV0dXJuIGk+PTAmJihlPXQuc2xpY2UoaSsxKSx0PXQuc2xpY2UoMCxpKSkse3R5cGU6dCxuYW1lOmV9fSl9KG4rIiIpLG89aS5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtmb3Iocz10P0JUZTpMVGUsbnVsbD09ZSYmKGU9ITEpLHI9MDtyPG87KytyKXRoaXMuZWFjaChzKGlbcl0sdCxlKSk7cmV0dXJuIHRoaXN9dmFyIHM9dGhpcy5ub2RlKCkuX19vbjtpZihzKWZvcih2YXIgZCxsPTAsYz1zLmxlbmd0aDtsPGM7KytsKWZvcihyPTAsZD1zW2xdO3I8bzsrK3IpaWYoKGE9aVtyXSkudHlwZT09PWQudHlwZSYmYS5uYW1lPT09ZC5uYW1lKXJldHVybiBkLnZhbHVlfSxkaXNwYXRjaDpmdW5jdGlvbihuLHQpe3JldHVybiB0aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiB0P0hUZTpWVGUpKG4sdCkpfX07dmFyIFJkPVpaO2Z1bmN0aW9uIGFEKG4pe3JldHVybiJzdHJpbmciPT10eXBlb2Ygbj9uZXcgQnIoW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKG4pXV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyBCcihbW25dXSxYTil9ZnVuY3Rpb24gV2gobix0LGUpe24ucHJvdG90eXBlPXQucHJvdG90eXBlPWUsZS5jb25zdHJ1Y3Rvcj1ufWZ1bmN0aW9uIHQwKG4sdCl7dmFyIGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSk7Zm9yKHZhciBpIGluIHQpZVtpXT10W2ldO3JldHVybiBlfWZ1bmN0aW9uIHJwKCl7fXZhciBsRD0xLy43LG4wPSJcXHMqKFsrLV0/XFxkKylcXHMqIixJeT0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPylcXHMqIixWYz0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPyklXFxzKiIselRlPS9eIyhbMC05YS1mXXszLDh9KSQvLFVUZT1uZXcgUmVnRXhwKCJecmdiXFwoIitbbjAsbjAsbjBdKyJcXCkkIiksalRlPW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1tWYyxWYyxWY10rIlxcKSQiKSxHVGU9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tuMCxuMCxuMCxJeV0rIlxcKSQiKSxXVGU9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tWYyxWYyxWYyxJeV0rIlxcKSQiKSxxVGU9bmV3IFJlZ0V4cCgiXmhzbFxcKCIrW0l5LFZjLFZjXSsiXFwpJCIpLFhUZT1uZXcgUmVnRXhwKCJeaHNsYVxcKCIrW0l5LFZjLFZjLEl5XSsiXFwpJCIpLEtaPXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9O2Z1bmN0aW9uIEpaKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4KCl9ZnVuY3Rpb24gJFooKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRSZ2IoKX1mdW5jdGlvbiBIbChuKXt2YXIgdCxlO3JldHVybiBuPShuKyIiKS50cmltKCkudG9Mb3dlckNhc2UoKSwodD16VGUuZXhlYyhuKSk/KGU9dFsxXS5sZW5ndGgsdD1wYXJzZUludCh0WzFdLDE2KSw2PT09ZT9lSyh0KTozPT09ZT9uZXcgZWEodD4+OCYxNXx0Pj40JjI0MCx0Pj40JjE1fDI0MCZ0LCgxNSZ0KTw8NHwxNSZ0LDEpOjg9PT1lP3NEKHQ+PjI0JjI1NSx0Pj4xNiYyNTUsdD4+OCYyNTUsKDI1NSZ0KS8yNTUpOjQ9PT1lP3NEKHQ+PjEyJjE1fHQ+PjgmMjQwLHQ+PjgmMTV8dD4+NCYyNDAsdD4+NCYxNXwyNDAmdCwoKDE1JnQpPDw0fDE1JnQpLzI1NSk6bnVsbCk6KHQ9VVRlLmV4ZWMobikpP25ldyBlYSh0WzFdLHRbMl0sdFszXSwxKToodD1qVGUuZXhlYyhuKSk/bmV3IGVhKDI1NSp0WzFdLzEwMCwyNTUqdFsyXS8xMDAsMjU1KnRbM10vMTAwLDEpOih0PUdUZS5leGVjKG4pKT9zRCh0WzFdLHRbMl0sdFszXSx0WzRdKToodD1XVGUuZXhlYyhuKSk/c0QoMjU1KnRbMV0vMTAwLDI1NSp0WzJdLzEwMCwyNTUqdFszXS8xMDAsdFs0XSk6KHQ9cVRlLmV4ZWMobikpP2lLKHRbMV0sdFsyXS8xMDAsdFszXS8xMDAsMSk6KHQ9WFRlLmV4ZWMobikpP2lLKHRbMV0sdFsyXS8xMDAsdFszXS8xMDAsdFs0XSk6S1ouaGFzT3duUHJvcGVydHkobik/ZUsoS1pbbl0pOiJ0cmFuc3BhcmVudCI9PT1uP25ldyBlYShOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIGVLKG4pe3JldHVybiBuZXcgZWEobj4+MTYmMjU1LG4+PjgmMjU1LDI1NSZuLDEpfWZ1bmN0aW9uIHNEKG4sdCxlLGkpe3JldHVybiBpPD0wJiYobj10PWU9TmFOKSxuZXcgZWEobix0LGUsaSl9ZnVuY3Rpb24gWk4obil7cmV0dXJuIG4gaW5zdGFuY2VvZiBycHx8KG49SGwobikpLG4/bmV3IGVhKChuPW4ucmdiKCkpLnIsbi5nLG4uYixuLm9wYWNpdHkpOm5ldyBlYX1mdW5jdGlvbiBpMChuLHQsZSxpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/Wk4obik6bmV3IGVhKG4sdCxlLGk/PzEpfWZ1bmN0aW9uIGVhKG4sdCxlLGkpe3RoaXMucj0rbix0aGlzLmc9K3QsdGhpcy5iPStlLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiB0Sygpe3JldHVybiIjIitZTih0aGlzLnIpK1lOKHRoaXMuZykrWU4odGhpcy5iKX1mdW5jdGlvbiBuSygpe3ZhciBuPXRoaXMub3BhY2l0eTtyZXR1cm4oMT09PShuPWlzTmFOKG4pPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4pKSk/InJnYigiOiJyZ2JhKCIpK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5yKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmcpfHwwKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuYil8fDApKSsoMT09PW4/IikiOiIsICIrbisiKSIpfWZ1bmN0aW9uIFlOKG4pe3JldHVybigobj1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKG4pfHwwKSkpPDE2PyIwIjoiIikrbi50b1N0cmluZygxNil9ZnVuY3Rpb24gaUsobix0LGUsaSl7cmV0dXJuIGk8PTA/bj10PWU9TmFOOmU8PTB8fGU+PTE/bj10PU5hTjp0PD0wJiYobj1OYU4pLG5ldyBCYyhuLHQsZSxpKX1mdW5jdGlvbiBySyhuKXtpZihuIGluc3RhbmNlb2YgQmMpcmV0dXJuIG5ldyBCYyhuLmgsbi5zLG4ubCxuLm9wYWNpdHkpO2lmKG4gaW5zdGFuY2VvZiBycHx8KG49SGwobikpLCFuKXJldHVybiBuZXcgQmM7aWYobiBpbnN0YW5jZW9mIEJjKXJldHVybiBuO3ZhciB0PShuPW4ucmdiKCkpLnIvMjU1LGU9bi5nLzI1NSxpPW4uYi8yNTUscj1NYXRoLm1pbih0LGUsaSksbz1NYXRoLm1heCh0LGUsaSksYT1OYU4scz1vLXIsbD0obytyKS8yO3JldHVybiBzPyhhPXQ9PT1vPyhlLWkpL3MrNiooZTxpKTplPT09bz8oaS10KS9zKzI6KHQtZSkvcys0LHMvPWw8LjU/bytyOjItby1yLGEqPTYwKTpzPWw+MCYmbDwxPzA6YSxuZXcgQmMoYSxzLGwsbi5vcGFjaXR5KX1mdW5jdGlvbiBxaChuLHQsZSxpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/cksobik6bmV3IEJjKG4sdCxlLGk/PzEpfWZ1bmN0aW9uIEJjKG4sdCxlLGkpe3RoaXMuaD0rbix0aGlzLnM9K3QsdGhpcy5sPStlLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBRTihuLHQsZSl7cmV0dXJuIDI1NSoobjw2MD90KyhlLXQpKm4vNjA6bjwxODA/ZTpuPDI0MD90KyhlLXQpKigyNDAtbikvNjA6dCl9V2gocnAsSGwse2NvcHk6ZnVuY3Rpb24obil7cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IHRoaXMuY29uc3RydWN0b3IsdGhpcyxuKX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKS5kaXNwbGF5YWJsZSgpfSxoZXg6SlosZm9ybWF0SGV4OkpaLGZvcm1hdEhzbDpmdW5jdGlvbigpe3JldHVybiBySyh0aGlzKS5mb3JtYXRIc2woKX0sZm9ybWF0UmdiOiRaLHRvU3RyaW5nOiRafSksV2goZWEsaTAsdDAocnAse2JyaWdodGVyOmZ1bmN0aW9uKG4pe3JldHVybiBuPW51bGw9PW4/bEQ6TWF0aC5wb3cobEQsbiksbmV3IGVhKHRoaXMucipuLHRoaXMuZypuLHRoaXMuYipuLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihuKXtyZXR1cm4gbj1udWxsPT1uPy43Ok1hdGgucG93KC43LG4pLG5ldyBlYSh0aGlzLnIqbix0aGlzLmcqbix0aGlzLmIqbix0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4tLjU8PXRoaXMuciYmdGhpcy5yPDI1NS41JiYtLjU8PXRoaXMuZyYmdGhpcy5nPDI1NS41JiYtLjU8PXRoaXMuYiYmdGhpcy5iPDI1NS41JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0saGV4OnRLLGZvcm1hdEhleDp0Syxmb3JtYXRSZ2I6bkssdG9TdHJpbmc6bkt9KSksV2goQmMscWgsdDAocnAse2JyaWdodGVyOmZ1bmN0aW9uKG4pe3JldHVybiBuPW51bGw9PW4/bEQ6TWF0aC5wb3cobEQsbiksbmV3IEJjKHRoaXMuaCx0aGlzLnMsdGhpcy5sKm4sdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKG4pe3JldHVybiBuPW51bGw9PW4/Ljc6TWF0aC5wb3coLjcsbiksbmV3IEJjKHRoaXMuaCx0aGlzLnMsdGhpcy5sKm4sdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIG49dGhpcy5oJTM2MCszNjAqKHRoaXMuaDwwKSx0PWlzTmFOKG4pfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLGU9dGhpcy5sLGk9ZSsoZTwuNT9lOjEtZSkqdCxyPTIqZS1pO3JldHVybiBuZXcgZWEoUU4obj49MjQwP24tMjQwOm4rMTIwLHIsaSksUU4obixyLGkpLFFOKG48MTIwP24rMjQwOm4tMTIwLHIsaSksdGhpcy5vcGFjaXR5KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGZvcm1hdEhzbDpmdW5jdGlvbigpe3ZhciBuPXRoaXMub3BhY2l0eTtyZXR1cm4oMT09PShuPWlzTmFOKG4pPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4pKSk/ImhzbCgiOiJoc2xhKCIpKyh0aGlzLmh8fDApKyIsICIrMTAwKih0aGlzLnN8fDApKyIlLCAiKzEwMCoodGhpcy5sfHwwKSsiJSIrKDE9PT1uPyIpIjoiLCAiK24rIikiKX19KSk7dmFyIG9LPU1hdGguUEkvMTgwLGFLPTE4MC9NYXRoLlBJLHNLPS45NjQyMixsSz0xLGNLPS44MjUyMSxkSz00LzI5LHIwPTYvMjksdUs9MypyMCpyMCxRVGU9cjAqcjAqcjA7ZnVuY3Rpb24gcEsobil7aWYobiBpbnN0YW5jZW9mIEhjKXJldHVybiBuZXcgSGMobi5sLG4uYSxuLmIsbi5vcGFjaXR5KTtpZihuIGluc3RhbmNlb2YgUGQpcmV0dXJuIGhLKG4pO24gaW5zdGFuY2VvZiBlYXx8KG49Wk4obikpO3ZhciBvLGEsdD1lTChuLnIpLGU9ZUwobi5nKSxpPWVMKG4uYikscj1LTigoLjIyMjUwNDUqdCsuNzE2ODc4NiplKy4wNjA2MTY5KmkpL2xLKTtyZXR1cm4gdD09PWUmJmU9PT1pP289YT1yOihvPUtOKCguNDM2MDc0Nyp0Ky4zODUwNjQ5KmUrLjE0MzA4MDQqaSkvc0spLGE9S04oKC4wMTM5MzIyKnQrLjA5NzEwNDUqZSsuNzE0MTczMyppKS9jSykpLG5ldyBIYygxMTYqci0xNiw1MDAqKG8tciksMjAwKihyLWEpLG4ub3BhY2l0eSl9ZnVuY3Rpb24gSGMobix0LGUsaSl7dGhpcy5sPStuLHRoaXMuYT0rdCx0aGlzLmI9K2UsdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIEtOKG4pe3JldHVybiBuPlFUZT9NYXRoLnBvdyhuLDEvMyk6bi91SytkS31mdW5jdGlvbiBKTihuKXtyZXR1cm4gbj5yMD9uKm4qbjp1Syoobi1kSyl9ZnVuY3Rpb24gJE4obil7cmV0dXJuIDI1NSoobjw9LjAwMzEzMDg/MTIuOTIqbjoxLjA1NSpNYXRoLnBvdyhuLDEvMi40KS0uMDU1KX1mdW5jdGlvbiBlTChuKXtyZXR1cm4obi89MjU1KTw9LjA0MDQ1P24vMTIuOTI6TWF0aC5wb3coKG4rLjA1NSkvMS4wNTUsMi40KX1mdW5jdGlvbiBYaChuLHQsZSxpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/ZnVuY3Rpb24obil7aWYobiBpbnN0YW5jZW9mIFBkKXJldHVybiBuZXcgUGQobi5oLG4uYyxuLmwsbi5vcGFjaXR5KTtpZihuIGluc3RhbmNlb2YgSGN8fChuPXBLKG4pKSwwPT09bi5hJiYwPT09bi5iKXJldHVybiBuZXcgUGQoTmFOLDA8bi5sJiZuLmw8MTAwPzA6TmFOLG4ubCxuLm9wYWNpdHkpO3ZhciB0PU1hdGguYXRhbjIobi5iLG4uYSkqYUs7cmV0dXJuIG5ldyBQZCh0PDA/dCszNjA6dCxNYXRoLnNxcnQobi5hKm4uYStuLmIqbi5iKSxuLmwsbi5vcGFjaXR5KX0obik6bmV3IFBkKG4sdCxlLGk/PzEpfWZ1bmN0aW9uIFBkKG4sdCxlLGkpe3RoaXMuaD0rbix0aGlzLmM9K3QsdGhpcy5sPStlLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBoSyhuKXtpZihpc05hTihuLmgpKXJldHVybiBuZXcgSGMobi5sLDAsMCxuLm9wYWNpdHkpO3ZhciB0PW4uaCpvSztyZXR1cm4gbmV3IEhjKG4ubCxNYXRoLmNvcyh0KSpuLmMsTWF0aC5zaW4odCkqbi5jLG4ub3BhY2l0eSl9ZnVuY3Rpb24gbkwobix0LGUsaSxyKXt2YXIgbz1uKm4sYT1vKm47cmV0dXJuKCgxLTMqbiszKm8tYSkqdCsoNC02Km8rMyphKSplKygxKzMqbiszKm8tMyphKSppK2EqcikvNn1mdW5jdGlvbiBvMChuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbn19ZnVuY3Rpb24gZ0sobix0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIG4rZSp0fX1mdW5jdGlvbiBkRChuLHQpe3ZhciBlPXQtbjtyZXR1cm4gZT9nSyhuLGU+MTgwfHxlPC0xODA/ZS0zNjAqTWF0aC5yb3VuZChlLzM2MCk6ZSk6bzAoaXNOYU4obik/dDpuKX1mdW5jdGlvbiBLYShuLHQpe3ZhciBlPXQtbjtyZXR1cm4gZT9nSyhuLGUpOm8wKGlzTmFOKG4pP3Q6bil9V2goSGMsZnVuY3Rpb24obix0LGUsaSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3BLKG4pOm5ldyBIYyhuLHQsZSxpPz8xKX0sdDAocnAse2JyaWdodGVyOmZ1bmN0aW9uKG4pe3JldHVybiBuZXcgSGModGhpcy5sKzE4KihuPz8xKSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihuKXtyZXR1cm4gbmV3IEhjKHRoaXMubC0xOCoobj8/MSksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgbj0odGhpcy5sKzE2KS8xMTYsdD1pc05hTih0aGlzLmEpP246bit0aGlzLmEvNTAwLGU9aXNOYU4odGhpcy5iKT9uOm4tdGhpcy5iLzIwMDtyZXR1cm4gbmV3IGVhKCROKDMuMTMzODU2MSoodD1zSypKTih0KSktMS42MTY4NjY3KihuPWxLKkpOKG4pKS0uNDkwNjE0NiooZT1jSypKTihlKSkpLCROKC0uOTc4NzY4NCp0KzEuOTE2MTQxNSpuKy4wMzM0NTQqZSksJE4oLjA3MTk0NTMqdC0uMjI4OTkxNCpuKzEuNDA1MjQyNyplKSx0aGlzLm9wYWNpdHkpfX0pKSxXaChQZCxYaCx0MChycCx7YnJpZ2h0ZXI6ZnVuY3Rpb24obil7cmV0dXJuIG5ldyBQZCh0aGlzLmgsdGhpcy5jLHRoaXMubCsxOCoobj8/MSksdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKG4pe3JldHVybiBuZXcgUGQodGhpcy5oLHRoaXMuYyx0aGlzLmwtMTgqKG4/PzEpLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiBoSyh0aGlzKS5yZ2IoKX19KSk7dmFyIFloPWZ1bmN0aW9uIG4odCl7dmFyIGU9ZnVuY3Rpb24obil7cmV0dXJuIDE9PShuPStuKT9LYTpmdW5jdGlvbih0LGUpe3JldHVybiBlLXQ/ZnVuY3Rpb24obix0LGUpe3JldHVybiBuPU1hdGgucG93KG4sZSksdD1NYXRoLnBvdyh0LGUpLW4sZT0xL2UsZnVuY3Rpb24oaSl7cmV0dXJuIE1hdGgucG93KG4raSp0LGUpfX0odCxlLG4pOm8wKGlzTmFOKHQpP2U6dCl9fSh0KTtmdW5jdGlvbiBpKHIsbyl7dmFyIGE9ZSgocj1pMChyKSkuciwobz1pMChvKSkucikscz1lKHIuZyxvLmcpLGw9ZShyLmIsby5iKSxjPUthKHIub3BhY2l0eSxvLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbihkKXtyZXR1cm4gci5yPWEoZCksci5nPXMoZCksci5iPWwoZCksci5vcGFjaXR5PWMoZCkscisiIn19cmV0dXJuIGkuZ2FtbWE9bixpfSgxKTtmdW5jdGlvbiBiSyhuKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGEscyxlPXQubGVuZ3RoLGk9bmV3IEFycmF5KGUpLHI9bmV3IEFycmF5KGUpLG89bmV3IEFycmF5KGUpO2ZvcihhPTA7YTxlOysrYSlzPWkwKHRbYV0pLGlbYV09cy5yfHwwLHJbYV09cy5nfHwwLG9bYV09cy5ifHwwO3JldHVybiBpPW4oaSkscj1uKHIpLG89bihvKSxzLm9wYWNpdHk9MSxmdW5jdGlvbihsKXtyZXR1cm4gcy5yPWkobCkscy5nPXIobCkscy5iPW8obCkscysiIn19fWZ1bmN0aW9uIHZLKG4sdCl7dHx8KHQ9W10pO3ZhciByLGU9bj9NYXRoLm1pbih0Lmxlbmd0aCxuLmxlbmd0aCk6MCxpPXQuc2xpY2UoKTtyZXR1cm4gZnVuY3Rpb24obyl7Zm9yKHI9MDtyPGU7KytyKWlbcl09bltyXSooMS1vKSt0W3JdKm87cmV0dXJuIGl9fWZ1bmN0aW9uIHhLKG4sdCl7dmFyIGEsZT10P3QubGVuZ3RoOjAsaT1uP01hdGgubWluKGUsbi5sZW5ndGgpOjAscj1uZXcgQXJyYXkoaSksbz1uZXcgQXJyYXkoZSk7Zm9yKGE9MDthPGk7KythKXJbYV09UWgoblthXSx0W2FdKTtmb3IoO2E8ZTsrK2Epb1thXT10W2FdO3JldHVybiBmdW5jdGlvbihzKXtmb3IoYT0wO2E8aTsrK2Epb1thXT1yW2FdKHMpO3JldHVybiBvfX1mdW5jdGlvbiBDSyhuLHQpe3ZhciBlPW5ldyBEYXRlO3JldHVybiBuPStuLHQ9K3QsZnVuY3Rpb24oaSl7cmV0dXJuIGUuc2V0VGltZShuKigxLWkpK3QqaSksZX19ZnVuY3Rpb24gVW8obix0KXtyZXR1cm4gbj0rbix0PSt0LGZ1bmN0aW9uKGUpe3JldHVybiBuKigxLWUpK3QqZX19ZnVuY3Rpb24gTUsobix0KXt2YXIgcixlPXt9LGk9e307Zm9yKHIgaW4obnVsbD09PW58fCJvYmplY3QiIT10eXBlb2YgbikmJihuPXt9KSwobnVsbD09PXR8fCJvYmplY3QiIT10eXBlb2YgdCkmJih0PXt9KSx0KXIgaW4gbj9lW3JdPVFoKG5bcl0sdFtyXSk6aVtyXT10W3JdO3JldHVybiBmdW5jdGlvbihvKXtmb3IociBpbiBlKWlbcl09ZVtyXShvKTtyZXR1cm4gaX19YksoZnVuY3Rpb24obil7dmFyIHQ9bi5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGk9ZTw9MD9lPTA6ZT49MT8oZT0xLHQtMSk6TWF0aC5mbG9vcihlKnQpLHI9bltpXSxvPW5baSsxXTtyZXR1cm4gbkwoKGUtaS90KSp0LGk+MD9uW2ktMV06MipyLW8scixvLGk8dC0xP25baSsyXToyKm8tcil9fSksYksoZnVuY3Rpb24obil7dmFyIHQ9bi5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBpPU1hdGguZmxvb3IoKChlJT0xKTwwPysrZTplKSp0KTtyZXR1cm4gbkwoKGUtaS90KSp0LG5bKGkrdC0xKSV0XSxuW2kldF0sblsoaSsxKSV0XSxuWyhpKzIpJXRdKX19KTt2YXIgckw9L1stK10/KD86XGQrXC4/XGQqfFwuP1xkKykoPzpbZUVdWy0rXT9cZCspPy9nLGlMPW5ldyBSZWdFeHAockwuc291cmNlLCJnIik7ZnVuY3Rpb24gQXkobix0KXt2YXIgaSxyLG8sZT1yTC5sYXN0SW5kZXg9aUwubGFzdEluZGV4PTAsYT0tMSxzPVtdLGw9W107Zm9yKG4rPSIiLHQrPSIiOyhpPXJMLmV4ZWMobikpJiYocj1pTC5leGVjKHQpKTspKG89ci5pbmRleCk+ZSYmKG89dC5zbGljZShlLG8pLHNbYV0/c1thXSs9bzpzWysrYV09byksKGk9aVswXSk9PT0ocj1yWzBdKT9zW2FdP3NbYV0rPXI6c1srK2FdPXI6KHNbKythXT1udWxsLGwucHVzaCh7aTphLHg6VW8oaSxyKX0pKSxlPWlMLmxhc3RJbmRleDtyZXR1cm4gZTx0Lmxlbmd0aCYmKG89dC5zbGljZShlKSxzW2FdP3NbYV0rPW86c1srK2FdPW8pLHMubGVuZ3RoPDI/bFswXT9mdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG4odCkrIiJ9fShsWzBdLngpOmZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBufX0odCk6KHQ9bC5sZW5ndGgsZnVuY3Rpb24oYyl7Zm9yKHZhciB1LGQ9MDtkPHQ7KytkKXNbKHU9bFtkXSkuaV09dS54KGMpO3JldHVybiBzLmpvaW4oIiIpfSl9ZnVuY3Rpb24gUWgobix0KXt2YXIgaSxlPXR5cGVvZiB0O3JldHVybiBudWxsPT10fHwiYm9vbGVhbiI9PT1lP28wKHQpOigibnVtYmVyIj09PWU/VW86InN0cmluZyI9PT1lPyhpPUhsKHQpKT8odD1pLFloKTpBeTp0IGluc3RhbmNlb2YgSGw/WWg6dCBpbnN0YW5jZW9mIERhdGU/Q0s6ZnVuY3Rpb24obil7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyhuKSYmIShuIGluc3RhbmNlb2YgRGF0YVZpZXcpfSh0KT92SzpBcnJheS5pc0FycmF5KHQpP3hLOiJmdW5jdGlvbiIhPXR5cGVvZiB0LnZhbHVlT2YmJiJmdW5jdGlvbiIhPXR5cGVvZiB0LnRvU3RyaW5nfHxpc05hTih0KT9NSzpVbykobix0KX1mdW5jdGlvbiBvTChuLHQpe3JldHVybiBuPStuLHQ9K3QsZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucm91bmQobiooMS1lKSt0KmUpfX12YXIgUnksc0wsU0sscEQsd0s9MTgwL01hdGguUEksdUQ9e3RyYW5zbGF0ZVg6MCx0cmFuc2xhdGVZOjAscm90YXRlOjAsc2tld1g6MCxzY2FsZVg6MSxzY2FsZVk6MX07ZnVuY3Rpb24gYUwobix0LGUsaSxyLG8pe3ZhciBhLHMsbDtyZXR1cm4oYT1NYXRoLnNxcnQobipuK3QqdCkpJiYobi89YSx0Lz1hKSwobD1uKmUrdCppKSYmKGUtPW4qbCxpLT10KmwpLChzPU1hdGguc3FydChlKmUraSppKSkmJihlLz1zLGkvPXMsbC89cyksbippPHQqZSYmKG49LW4sdD0tdCxsPS1sLGE9LWEpLHt0cmFuc2xhdGVYOnIsdHJhbnNsYXRlWTpvLHJvdGF0ZTpNYXRoLmF0YW4yKHQsbikqd0ssc2tld1g6TWF0aC5hdGFuKGwpKndLLHNjYWxlWDphLHNjYWxlWTpzfX1mdW5jdGlvbiBESyhuLHQsZSxpKXtmdW5jdGlvbiByKGMpe3JldHVybiBjLmxlbmd0aD9jLnBvcCgpKyIgIjoiIn1yZXR1cm4gZnVuY3Rpb24oYyxkKXt2YXIgdT1bXSxwPVtdO3JldHVybiBjPW4oYyksZD1uKGQpLGZ1bmN0aW9uKGMsZCx1LHAsaCxtKXtpZihjIT09dXx8ZCE9PXApe3ZhciBfPWgucHVzaCgidHJhbnNsYXRlKCIsbnVsbCx0LG51bGwsZSk7bS5wdXNoKHtpOl8tNCx4OlVvKGMsdSl9LHtpOl8tMix4OlVvKGQscCl9KX1lbHNlKHV8fHApJiZoLnB1c2goInRyYW5zbGF0ZSgiK3UrdCtwK2UpfShjLnRyYW5zbGF0ZVgsYy50cmFuc2xhdGVZLGQudHJhbnNsYXRlWCxkLnRyYW5zbGF0ZVksdSxwKSxmdW5jdGlvbihjLGQsdSxwKXtjIT09ZD8oYy1kPjE4MD9kKz0zNjA6ZC1jPjE4MCYmKGMrPTM2MCkscC5wdXNoKHtpOnUucHVzaChyKHUpKyJyb3RhdGUoIixudWxsLGkpLTIseDpVbyhjLGQpfSkpOmQmJnUucHVzaChyKHUpKyJyb3RhdGUoIitkK2kpfShjLnJvdGF0ZSxkLnJvdGF0ZSx1LHApLGZ1bmN0aW9uKGMsZCx1LHApe2MhPT1kP3AucHVzaCh7aTp1LnB1c2gocih1KSsic2tld1goIixudWxsLGkpLTIseDpVbyhjLGQpfSk6ZCYmdS5wdXNoKHIodSkrInNrZXdYKCIrZCtpKX0oYy5za2V3WCxkLnNrZXdYLHUscCksZnVuY3Rpb24oYyxkLHUscCxoLG0pe2lmKGMhPT11fHxkIT09cCl7dmFyIF89aC5wdXNoKHIoaCkrInNjYWxlKCIsbnVsbCwiLCIsbnVsbCwiKSIpO20ucHVzaCh7aTpfLTQseDpVbyhjLHUpfSx7aTpfLTIseDpVbyhkLHApfSl9ZWxzZSgxIT09dXx8MSE9PXApJiZoLnB1c2gocihoKSsic2NhbGUoIit1KyIsIitwKyIpIil9KGMuc2NhbGVYLGMuc2NhbGVZLGQuc2NhbGVYLGQuc2NhbGVZLHUscCksYz1kPW51bGwsZnVuY3Rpb24oaCl7Zm9yKHZhciBNLG09LTEsXz1wLmxlbmd0aDsrK208XzspdVsoTT1wW21dKS5pXT1NLngoaCk7cmV0dXJuIHUuam9pbigiIil9fX12YXIgbEw9REsoZnVuY3Rpb24obil7cmV0dXJuIm5vbmUiPT09bj91RDooUnl8fChSeT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKSxzTD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsU0s9ZG9jdW1lbnQuZGVmYXVsdFZpZXcpLFJ5LnN0eWxlLnRyYW5zZm9ybT1uLG49U0suZ2V0Q29tcHV0ZWRTdHlsZShzTC5hcHBlbmRDaGlsZChSeSksbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgidHJhbnNmb3JtIiksc0wucmVtb3ZlQ2hpbGQoUnkpLGFMKCsobj1uLnNsaWNlKDcsLTEpLnNwbGl0KCIsIikpWzBdLCtuWzFdLCtuWzJdLCtuWzNdLCtuWzRdLCtuWzVdKSl9LCJweCwgIiwicHgpIiwiZGVnKSIpLGNMPURLKGZ1bmN0aW9uKG4pe3JldHVybiBudWxsPT1uP3VEOihwRHx8KHBEPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJnIikpLHBELnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIixuKSwobj1wRC50cmFuc2Zvcm0uYmFzZVZhbC5jb25zb2xpZGF0ZSgpKT9hTCgobj1uLm1hdHJpeCkuYSxuLmIsbi5jLG4uZCxuLmUsbi5mKTp1RCl9LCIsICIsIikiLCIpIik7ZnVuY3Rpb24gSUsobil7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIGk9bigodD1xaCh0KSkuaCwoZT1xaChlKSkuaCkscj1LYSh0LnMsZS5zKSxvPUthKHQubCxlLmwpLGE9S2EodC5vcGFjaXR5LGUub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHMpe3JldHVybiB0Lmg9aShzKSx0LnM9cihzKSx0Lmw9byhzKSx0Lm9wYWNpdHk9YShzKSx0KyIifX19dmFyIGRMPUlLKGREKTtmdW5jdGlvbiBBSyhuKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgaT1uKCh0PVhoKHQpKS5oLChlPVhoKGUpKS5oKSxyPUthKHQuYyxlLmMpLG89S2EodC5sLGUubCksYT1LYSh0Lm9wYWNpdHksZS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIHQuaD1pKHMpLHQuYz1yKHMpLHQubD1vKHMpLHQub3BhY2l0eT1hKHMpLHQrIiJ9fX1JSyhLYSk7dmFyIGhELE95LHVMPUFLKGREKSxhMD0oQUsoS2EpLDApLGt5PTAsUHk9MCxQSz0xZTMsbUQ9MCxaaD0wLGZEPTAsRnk9Im9iamVjdCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlOkRhdGUsa0s9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6ZnVuY3Rpb24obil7c2V0VGltZW91dChuLDE3KX07ZnVuY3Rpb24gczAoKXtyZXR1cm4gWmh8fChrSyhyRGUpLFpoPUZ5Lm5vdygpK2ZEKX1mdW5jdGlvbiByRGUoKXtaaD0wfWZ1bmN0aW9uIE55KCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiBnRChuLHQsZSl7dmFyIGk9bmV3IE55O3JldHVybiBpLnJlc3RhcnQobix0LGUpLGl9ZnVuY3Rpb24gUksoKXtaaD0obUQ9Rnkubm93KCkpK2ZELGEwPWt5PTA7dHJ5eyFmdW5jdGlvbigpe3MwKCksKythMDtmb3IodmFyIHQsbj1oRDtuOykodD1aaC1uLl90aW1lKT49MCYmbi5fY2FsbC5jYWxsKG51bGwsdCksbj1uLl9uZXh0Oy0tYTB9KCl9ZmluYWxseXthMD0wLGZ1bmN0aW9uKCl7Zm9yKHZhciBuLGUsdD1oRCxpPTEvMDt0Oyl0Ll9jYWxsPyhpPnQuX3RpbWUmJihpPXQuX3RpbWUpLG49dCx0PXQuX25leHQpOihlPXQuX25leHQsdC5fbmV4dD1udWxsLHQ9bj9uLl9uZXh0PWU6aEQ9ZSk7T3k9bixwTChpKX0oKSxaaD0wfX1mdW5jdGlvbiBvRGUoKXt2YXIgbj1GeS5ub3coKSx0PW4tbUQ7dD5QSyYmKGZELT10LG1EPW4pfWZ1bmN0aW9uIHBMKG4pe2EwfHwoa3kmJihreT1jbGVhclRpbWVvdXQoa3kpKSxuLVpoPjI0PyhuPDEvMCYmKGt5PXNldFRpbWVvdXQoUkssbi1GeS5ub3coKS1mRCkpLFB5JiYoUHk9Y2xlYXJJbnRlcnZhbChQeSkpKTooUHl8fChtRD1GeS5ub3coKSxQeT1zZXRJbnRlcnZhbChvRGUsUEspKSxhMD0xLGtLKFJLKSkpfWZ1bmN0aW9uIF9EKG4sdCxlKXt2YXIgaT1uZXcgTnk7cmV0dXJuIGkucmVzdGFydChmdW5jdGlvbihyKXtpLnN0b3AoKSxuKHIrdCl9LHQ9bnVsbD09dD8wOit0LGUpLGl9TnkucHJvdG90eXBlPWdELnByb3RvdHlwZT17Y29uc3RydWN0b3I6TnkscmVzdGFydDpmdW5jdGlvbihuLHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb24iKTtlPShudWxsPT1lP3MwKCk6K2UpKyhudWxsPT10PzA6K3QpLCF0aGlzLl9uZXh0JiZPeSE9PXRoaXMmJihPeT9PeS5fbmV4dD10aGlzOmhEPXRoaXMsT3k9dGhpcyksdGhpcy5fY2FsbD1uLHRoaXMuX3RpbWU9ZSxwTCgpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5fY2FsbCYmKHRoaXMuX2NhbGw9bnVsbCx0aGlzLl90aW1lPTEvMCxwTCgpKX19O3ZhciBzRGU9ak4oInN0YXJ0IiwiZW5kIiwiY2FuY2VsIiwiaW50ZXJydXB0IiksbERlPVtdLE5LPTAsaEw9MSx2RD0yLGJEPTMsRks9NCx5RD01LEx5PTY7ZnVuY3Rpb24gb3Aobix0LGUsaSxyLG8pe3ZhciBhPW4uX190cmFuc2l0aW9uO2lmKGEpe2lmKGUgaW4gYSlyZXR1cm59ZWxzZSBuLl9fdHJhbnNpdGlvbj17fTshZnVuY3Rpb24obix0LGUpe3ZhciByLGk9bi5fX3RyYW5zaXRpb247ZnVuY3Rpb24gYShjKXt2YXIgZCx1LHAsaDtpZihlLnN0YXRlIT09aEwpcmV0dXJuIGwoKTtmb3IoZCBpbiBpKWlmKChoPWlbZF0pLm5hbWU9PT1lLm5hbWUpe2lmKGguc3RhdGU9PT1iRClyZXR1cm4gX0QoYSk7aC5zdGF0ZT09PUZLPyhoLnN0YXRlPUx5LGgudGltZXIuc3RvcCgpLGgub24uY2FsbCgiaW50ZXJydXB0IixuLG4uX19kYXRhX18saC5pbmRleCxoLmdyb3VwKSxkZWxldGUgaVtkXSk6K2Q8dCYmKGguc3RhdGU9THksaC50aW1lci5zdG9wKCksaC5vbi5jYWxsKCJjYW5jZWwiLG4sbi5fX2RhdGFfXyxoLmluZGV4LGguZ3JvdXApLGRlbGV0ZSBpW2RdKX1pZihfRChmdW5jdGlvbigpe2Uuc3RhdGU9PT1iRCYmKGUuc3RhdGU9RkssZS50aW1lci5yZXN0YXJ0KHMsZS5kZWxheSxlLnRpbWUpLHMoYykpfSksZS5zdGF0ZT12RCxlLm9uLmNhbGwoInN0YXJ0IixuLG4uX19kYXRhX18sZS5pbmRleCxlLmdyb3VwKSxlLnN0YXRlPT09dkQpe2ZvcihlLnN0YXRlPWJELHI9bmV3IEFycmF5KHA9ZS50d2Vlbi5sZW5ndGgpLGQ9MCx1PS0xO2Q8cDsrK2QpKGg9ZS50d2VlbltkXS52YWx1ZS5jYWxsKG4sbi5fX2RhdGFfXyxlLmluZGV4LGUuZ3JvdXApKSYmKHJbKyt1XT1oKTtyLmxlbmd0aD11KzF9fWZ1bmN0aW9uIHMoYyl7Zm9yKHZhciBkPWM8ZS5kdXJhdGlvbj9lLmVhc2UuY2FsbChudWxsLGMvZS5kdXJhdGlvbik6KGUudGltZXIucmVzdGFydChsKSxlLnN0YXRlPXlELDEpLHU9LTEscD1yLmxlbmd0aDsrK3U8cDspclt1XS5jYWxsKG4sZCk7ZS5zdGF0ZT09PXlEJiYoZS5vbi5jYWxsKCJlbmQiLG4sbi5fX2RhdGFfXyxlLmluZGV4LGUuZ3JvdXApLGwoKSl9ZnVuY3Rpb24gbCgpe2Zvcih2YXIgYyBpbiBlLnN0YXRlPUx5LGUudGltZXIuc3RvcCgpLGRlbGV0ZSBpW3RdLGkpcmV0dXJuO2RlbGV0ZSBuLl9fdHJhbnNpdGlvbn1pW3RdPWUsZS50aW1lcj1nRChmdW5jdGlvbihjKXtlLnN0YXRlPWhMLGUudGltZXIucmVzdGFydChhLGUuZGVsYXksZS50aW1lKSxlLmRlbGF5PD1jJiZhKGMtZS5kZWxheSl9LDAsZS50aW1lKX0obixlLHtuYW1lOnQsaW5kZXg6aSxncm91cDpyLG9uOnNEZSx0d2VlbjpsRGUsdGltZTpvLnRpbWUsZGVsYXk6by5kZWxheSxkdXJhdGlvbjpvLmR1cmF0aW9uLGVhc2U6by5lYXNlLHRpbWVyOm51bGwsc3RhdGU6Tkt9KX1mdW5jdGlvbiBCeShuLHQpe3ZhciBlPV9vKG4sdCk7aWYoZS5zdGF0ZT5OSyl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZCIpO3JldHVybiBlfWZ1bmN0aW9uIHlhKG4sdCl7dmFyIGU9X28obix0KTtpZihlLnN0YXRlPmJEKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgcnVubmluZyIpO3JldHVybiBlfWZ1bmN0aW9uIF9vKG4sdCl7dmFyIGU9bi5fX3RyYW5zaXRpb247aWYoIWV8fCEoZT1lW3RdKSl0aHJvdyBuZXcgRXJyb3IoInRyYW5zaXRpb24gbm90IGZvdW5kIik7cmV0dXJuIGV9ZnVuY3Rpb24gZERlKG4sdCl7dmFyIGUsaTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj15YSh0aGlzLG4pLG89ci50d2VlbjtpZihvIT09ZSlmb3IodmFyIGE9MCxzPShpPWU9bykubGVuZ3RoO2E8czsrK2EpaWYoaVthXS5uYW1lPT09dCl7KGk9aS5zbGljZSgpKS5zcGxpY2UoYSwxKTticmVha31yLnR3ZWVuPWl9fWZ1bmN0aW9uIHVEZShuLHQsZSl7dmFyIGkscjtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89eWEodGhpcyxuKSxhPW8udHdlZW47aWYoYSE9PWkpe3I9KGk9YSkuc2xpY2UoKTtmb3IodmFyIHM9e25hbWU6dCx2YWx1ZTplfSxsPTAsYz1yLmxlbmd0aDtsPGM7KytsKWlmKHJbbF0ubmFtZT09PXQpe3JbbF09czticmVha31sPT09YyYmci5wdXNoKHMpfW8udHdlZW49cn19ZnVuY3Rpb24gbDAobix0LGUpe3ZhciBpPW4uX2lkO3JldHVybiBuLmVhY2goZnVuY3Rpb24oKXt2YXIgcj15YSh0aGlzLGkpOyhyLnZhbHVlfHwoci52YWx1ZT17fSkpW3RdPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksZnVuY3Rpb24ocil7cmV0dXJuIF9vKHIsaSkudmFsdWVbdF19fWZ1bmN0aW9uIHhEKG4sdCl7dmFyIGU7cmV0dXJuKCJudW1iZXIiPT10eXBlb2YgdD9Vbzp0IGluc3RhbmNlb2YgSGw/WWg6KGU9SGwodCkpPyh0PWUsWWgpOkF5KShuLHQpfWZ1bmN0aW9uIHBEZShuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZShuKX19ZnVuY3Rpb24gaERlKG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKX19ZnVuY3Rpb24gbURlKG4sdCxlKXt2YXIgaSxvLHI9ZSsiIjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT10aGlzLmdldEF0dHJpYnV0ZShuKTtyZXR1cm4gYT09PXI/bnVsbDphPT09aT9vOm89dChpPWEsZSl9fWZ1bmN0aW9uIGZEZShuLHQsZSl7dmFyIGksbyxyPWUrIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nZXRBdHRyaWJ1dGVOUyhuLnNwYWNlLG4ubG9jYWwpO3JldHVybiBhPT09cj9udWxsOmE9PT1pP286bz10KGk9YSxlKX19ZnVuY3Rpb24gZ0RlKG4sdCxlKXt2YXIgaSxyLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGEsbCxzPWUodGhpcyk7cmV0dXJuIG51bGw9PXM/dm9pZCB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuKTooYT10aGlzLmdldEF0dHJpYnV0ZShuKSk9PT0obD1zKyIiKT9udWxsOmE9PT1pJiZsPT09cj9vOihyPWwsbz10KGk9YSxzKSl9fWZ1bmN0aW9uIF9EZShuLHQsZSl7dmFyIGkscixvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhLGwscz1lKHRoaXMpO3JldHVybiBudWxsPT1zP3ZvaWQgdGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhuLnNwYWNlLG4ubG9jYWwpOihhPXRoaXMuZ2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKSk9PT0obD1zKyIiKT9udWxsOmE9PT1pJiZsPT09cj9vOihyPWwsbz10KGk9YSxzKSl9fWZ1bmN0aW9uIHlEZShuLHQpe3ZhciBlLGk7ZnVuY3Rpb24gcigpe3ZhciBvPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBvIT09aSYmKGU9KGk9bykmJmZ1bmN0aW9uKG4sdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3RoaXMuc2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsLHQuY2FsbCh0aGlzLGUpKX19KG4sbykpLGV9cmV0dXJuIHIuX3ZhbHVlPXQscn1mdW5jdGlvbiB4RGUobix0KXt2YXIgZSxpO2Z1bmN0aW9uIHIoKXt2YXIgbz10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gbyE9PWkmJihlPShpPW8pJiZmdW5jdGlvbihuLHQpe3JldHVybiBmdW5jdGlvbihlKXt0aGlzLnNldEF0dHJpYnV0ZShuLHQuY2FsbCh0aGlzLGUpKX19KG4sbykpLGV9cmV0dXJuIHIuX3ZhbHVlPXQscn1mdW5jdGlvbiBDRGUobix0KXtyZXR1cm4gZnVuY3Rpb24oKXtCeSh0aGlzLG4pLmRlbGF5PSt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gTURlKG4sdCl7cmV0dXJuIHQ9K3QsZnVuY3Rpb24oKXtCeSh0aGlzLG4pLmRlbGF5PXR9fWZ1bmN0aW9uIHdEZShuLHQpe3JldHVybiBmdW5jdGlvbigpe3lhKHRoaXMsbikuZHVyYXRpb249K3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBTRGUobix0KXtyZXR1cm4gdD0rdCxmdW5jdGlvbigpe3lhKHRoaXMsbikuZHVyYXRpb249dH19dmFyIEFEZT1SZC5wcm90b3R5cGUuY29uc3RydWN0b3I7ZnVuY3Rpb24gS0sobil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShuKX19dmFyIHpEZT0wO2Z1bmN0aW9uIHRhKG4sdCxlLGkpe3RoaXMuX2dyb3Vwcz1uLHRoaXMuX3BhcmVudHM9dCx0aGlzLl9uYW1lPWUsdGhpcy5faWQ9aX1mdW5jdGlvbiBDRCgpe3JldHVybisrekRlfXZhciBjMD1SZC5wcm90b3R5cGU7dGEucHJvdG90eXBlPWZ1bmN0aW9uKG4pe3JldHVybiBSZCgpLnRyYW5zaXRpb24obil9LnByb3RvdHlwZT17Y29uc3RydWN0b3I6dGEsc2VsZWN0OmZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMuX25hbWUsZT10aGlzLl9pZDsiZnVuY3Rpb24iIT10eXBlb2YgbiYmKG49R2gobikpO2Zvcih2YXIgaT10aGlzLl9ncm91cHMscj1pLmxlbmd0aCxvPW5ldyBBcnJheShyKSxhPTA7YTxyOysrYSlmb3IodmFyIGQsdSxzPWlbYV0sbD1zLmxlbmd0aCxjPW9bYV09bmV3IEFycmF5KGwpLHA9MDtwPGw7KytwKShkPXNbcF0pJiYodT1uLmNhbGwoZCxkLl9fZGF0YV9fLHAscykpJiYoIl9fZGF0YV9fImluIGQmJih1Ll9fZGF0YV9fPWQuX19kYXRhX18pLGNbcF09dSxvcChjW3BdLHQsZSxwLGMsX28oZCxlKSkpO3JldHVybiBuZXcgdGEobyx0aGlzLl9wYXJlbnRzLHQsZSl9LHNlbGVjdEFsbDpmdW5jdGlvbihuKXt2YXIgdD10aGlzLl9uYW1lLGU9dGhpcy5faWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIG4mJihuPVN5KG4pKTtmb3IodmFyIGk9dGhpcy5fZ3JvdXBzLHI9aS5sZW5ndGgsbz1bXSxhPVtdLHM9MDtzPHI7KytzKWZvcih2YXIgZCxsPWlbc10sYz1sLmxlbmd0aCx1PTA7dTxjOysrdSlpZihkPWxbdV0pe2Zvcih2YXIgaCxwPW4uY2FsbChkLGQuX19kYXRhX18sdSxsKSxtPV9vKGQsZSksXz0wLE09cC5sZW5ndGg7XzxNOysrXykoaD1wW19dKSYmb3AoaCx0LGUsXyxwLG0pO28ucHVzaChwKSxhLnB1c2goZCl9cmV0dXJuIG5ldyB0YShvLGEsdCxlKX0sZmlsdGVyOmZ1bmN0aW9uKG4peyJmdW5jdGlvbiIhPXR5cGVvZiBuJiYobj1FeShuKSk7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPXQubGVuZ3RoLGk9bmV3IEFycmF5KGUpLHI9MDtyPGU7KytyKWZvcih2YXIgbCxvPXRbcl0sYT1vLmxlbmd0aCxzPWlbcl09W10sYz0wO2M8YTsrK2MpKGw9b1tjXSkmJm4uY2FsbChsLGwuX19kYXRhX18sYyxvKSYmcy5wdXNoKGwpO3JldHVybiBuZXcgdGEoaSx0aGlzLl9wYXJlbnRzLHRoaXMuX25hbWUsdGhpcy5faWQpfSxtZXJnZTpmdW5jdGlvbihuKXtpZihuLl9pZCE9PXRoaXMuX2lkKXRocm93IG5ldyBFcnJvcjtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9bi5fZ3JvdXBzLGk9dC5sZW5ndGgsbz1NYXRoLm1pbihpLGUubGVuZ3RoKSxhPW5ldyBBcnJheShpKSxzPTA7czxvOysrcylmb3IodmFyIHAsbD10W3NdLGM9ZVtzXSxkPWwubGVuZ3RoLHU9YVtzXT1uZXcgQXJyYXkoZCksaD0wO2g8ZDsrK2gpKHA9bFtoXXx8Y1toXSkmJih1W2hdPXApO2Zvcig7czxpOysrcylhW3NdPXRbc107cmV0dXJuIG5ldyB0YShhLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LHNlbGVjdGlvbjpmdW5jdGlvbigpe3JldHVybiBuZXcgQURlKHRoaXMuX2dyb3Vwcyx0aGlzLl9wYXJlbnRzKX0sdHJhbnNpdGlvbjpmdW5jdGlvbigpe2Zvcih2YXIgbj10aGlzLl9uYW1lLHQ9dGhpcy5faWQsZT1DRCgpLGk9dGhpcy5fZ3JvdXBzLHI9aS5sZW5ndGgsbz0wO288cjsrK28pZm9yKHZhciBsLGE9aVtvXSxzPWEubGVuZ3RoLGM9MDtjPHM7KytjKWlmKGw9YVtjXSl7dmFyIGQ9X28obCx0KTtvcChsLG4sZSxjLGEse3RpbWU6ZC50aW1lK2QuZGVsYXkrZC5kdXJhdGlvbixkZWxheTowLGR1cmF0aW9uOmQuZHVyYXRpb24sZWFzZTpkLmVhc2V9KX1yZXR1cm4gbmV3IHRhKGksdGhpcy5fcGFyZW50cyxuLGUpfSxjYWxsOmMwLmNhbGwsbm9kZXM6YzAubm9kZXMsbm9kZTpjMC5ub2RlLHNpemU6YzAuc2l6ZSxlbXB0eTpjMC5lbXB0eSxlYWNoOmMwLmVhY2gsb246ZnVuY3Rpb24obix0KXt2YXIgZT10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP19vKHRoaXMubm9kZSgpLGUpLm9uLm9uKG4pOnRoaXMuZWFjaChmdW5jdGlvbihuLHQsZSl7dmFyIGkscixvPWZ1bmN0aW9uKG4pe3JldHVybihuKyIiKS50cmltKCkuc3BsaXQoL158XHMrLykuZXZlcnkoZnVuY3Rpb24odCl7dmFyIGU9dC5pbmRleE9mKCIuIik7cmV0dXJuIGU+PTAmJih0PXQuc2xpY2UoMCxlKSksIXR8fCJzdGFydCI9PT10fSl9KHQpP0J5OnlhO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPW8odGhpcyxuKSxzPWEub247cyE9PWkmJihyPShpPXMpLmNvcHkoKSkub24odCxlKSxhLm9uPXJ9fShlLG4sdCkpfSxhdHRyOmZ1bmN0aW9uKG4sdCl7dmFyIGU9QWQobiksaT0idHJhbnNmb3JtIj09PWU/Y0w6eEQ7cmV0dXJuIHRoaXMuYXR0clR3ZWVuKG4sImZ1bmN0aW9uIj09dHlwZW9mIHQ/KGUubG9jYWw/X0RlOmdEZSkoZSxpLGwwKHRoaXMsImF0dHIuIituLHQpKTpudWxsPT10PyhlLmxvY2FsP2hEZTpwRGUpKGUpOihlLmxvY2FsP2ZEZTptRGUpKGUsaSx0KSl9LGF0dHJUd2VlbjpmdW5jdGlvbihuLHQpe3ZhciBlPSJhdHRyLiIrbjtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKGU9dGhpcy50d2VlbihlKSkmJmUuX3ZhbHVlO2lmKG51bGw9PXQpcmV0dXJuIHRoaXMudHdlZW4oZSxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7dmFyIGk9QWQobik7cmV0dXJuIHRoaXMudHdlZW4oZSwoaS5sb2NhbD95RGU6eERlKShpLHQpKX0sc3R5bGU6ZnVuY3Rpb24obix0LGUpe3ZhciBpPSJ0cmFuc2Zvcm0iPT0obis9IiIpP2xMOnhEO3JldHVybiBudWxsPT10P3RoaXMuc3R5bGVUd2VlbihuLGZ1bmN0aW9uKG4sdCl7dmFyIGUsaSxyO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPWlwKHRoaXMsbiksYT0odGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShuKSxpcCh0aGlzLG4pKTtyZXR1cm4gbz09PWE/bnVsbDpvPT09ZSYmYT09PWk/cjpyPXQoZT1vLGk9YSl9fShuLGkpKS5vbigiZW5kLnN0eWxlLiIrbixLSyhuKSk6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dGhpcy5zdHlsZVR3ZWVuKG4sZnVuY3Rpb24obix0LGUpe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1pcCh0aGlzLG4pLHM9ZSh0aGlzKSxsPXMrIiI7cmV0dXJuIG51bGw9PXMmJih0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KG4pLGw9cz1pcCh0aGlzLG4pKSxhPT09bD9udWxsOmE9PT1pJiZsPT09cj9vOihyPWwsbz10KGk9YSxzKSl9fShuLGksbDAodGhpcywic3R5bGUuIituLHQpKSkuZWFjaChmdW5jdGlvbihuLHQpe3ZhciBlLGkscixzLG89InN0eWxlLiIrdCxhPSJlbmQuIitvO3JldHVybiBmdW5jdGlvbigpe3ZhciBsPXlhKHRoaXMsbiksYz1sLm9uLGQ9bnVsbD09bC52YWx1ZVtvXT9zfHwocz1LSyh0KSk6dm9pZCAwOyhjIT09ZXx8ciE9PWQpJiYoaT0oZT1jKS5jb3B5KCkpLm9uKGEscj1kKSxsLm9uPWl9fSh0aGlzLl9pZCxuKSk6dGhpcy5zdHlsZVR3ZWVuKG4sZnVuY3Rpb24obix0LGUpe3ZhciBpLG8scj1lKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPWlwKHRoaXMsbik7cmV0dXJuIGE9PT1yP251bGw6YT09PWk/bzpvPXQoaT1hLGUpfX0obixpLHQpLGUpLm9uKCJlbmQuc3R5bGUuIituLG51bGwpfSxzdHlsZVR3ZWVuOmZ1bmN0aW9uKG4sdCxlKXt2YXIgaT0ic3R5bGUuIisobis9IiIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4oaT10aGlzLnR3ZWVuKGkpKSYmaS5fdmFsdWU7aWYobnVsbD09dClyZXR1cm4gdGhpcy50d2VlbihpLG51bGwpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcjtyZXR1cm4gdGhpcy50d2VlbihpLGZ1bmN0aW9uKG4sdCxlKXt2YXIgaSxyO2Z1bmN0aW9uIG8oKXt2YXIgYT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gYSE9PXImJihpPShyPWEpJiZmdW5jdGlvbihuLHQsZSl7cmV0dXJuIGZ1bmN0aW9uKGkpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkobix0LmNhbGwodGhpcyxpKSxlKX19KG4sYSxlKSksaX1yZXR1cm4gby5fdmFsdWU9dCxvfShuLHQsZT8/IiIpKX0sdGV4dDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy50d2VlbigidGV4dCIsImZ1bmN0aW9uIj09dHlwZW9mIG4/ZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9bih0aGlzKTt0aGlzLnRleHRDb250ZW50PXQ/PyIifX0obDAodGhpcywidGV4dCIsbikpOmZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9bn19KG51bGw9PW4/IiI6bisiIikpfSx0ZXh0VHdlZW46ZnVuY3Rpb24obil7dmFyIHQ9InRleHQiO2lmKGFyZ3VtZW50cy5sZW5ndGg8MSlyZXR1cm4odD10aGlzLnR3ZWVuKHQpKSYmdC5fdmFsdWU7aWYobnVsbD09bilyZXR1cm4gdGhpcy50d2Vlbih0LG51bGwpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gdGhpcy50d2Vlbih0LGZ1bmN0aW9uKG4pe3ZhciB0LGU7ZnVuY3Rpb24gaSgpe3ZhciByPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiByIT09ZSYmKHQ9KGU9cikmJmZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbih0KXt0aGlzLnRleHRDb250ZW50PW4uY2FsbCh0aGlzLHQpfX0ocikpLHR9cmV0dXJuIGkuX3ZhbHVlPW4saX0obikpfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vbigiZW5kLnJlbW92ZSIsZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wYXJlbnROb2RlO2Zvcih2YXIgZSBpbiB0aGlzLl9fdHJhbnNpdGlvbilpZigrZSE9PW4pcmV0dXJuO3QmJnQucmVtb3ZlQ2hpbGQodGhpcyl9fSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbihuLHQpe3ZhciBlPXRoaXMuX2lkO2lmKG4rPSIiLGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBhLGk9X28odGhpcy5ub2RlKCksZSkudHdlZW4scj0wLG89aS5sZW5ndGg7cjxvOysrcilpZigoYT1pW3JdKS5uYW1lPT09bilyZXR1cm4gYS52YWx1ZTtyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT10P2REZTp1RGUpKGUsbix0KSl9LGRlbGF5OmZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIG4/Q0RlOk1EZSkodCxuKSk6X28odGhpcy5ub2RlKCksdCkuZGVsYXl9LGR1cmF0aW9uOmZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIG4/d0RlOlNEZSkodCxuKSk6X28odGhpcy5ub2RlKCksdCkuZHVyYXRpb259LGVhc2U6ZnVuY3Rpb24obil7dmFyIHQ9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKGZ1bmN0aW9uKG4sdCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe3lhKHRoaXMsbikuZWFzZT10fX0odCxuKSk6X28odGhpcy5ub2RlKCksdCkuZWFzZX0sZW5kOmZ1bmN0aW9uKCl7dmFyIG4sdCxlPXRoaXMsaT1lLl9pZCxyPWUuc2l6ZSgpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihvLGEpe3ZhciBzPXt2YWx1ZTphfSxsPXt2YWx1ZTpmdW5jdGlvbigpezA9PS0tciYmbygpfX07ZS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9eWEodGhpcyxpKSxkPWMub247ZCE9PW4mJigodD0obj1kKS5jb3B5KCkpLl8uY2FuY2VsLnB1c2gocyksdC5fLmludGVycnVwdC5wdXNoKHMpLHQuXy5lbmQucHVzaChsKSksYy5vbj10fSl9KX19O3ZhciBmTD17dGltZTpudWxsLGRlbGF5OjAsZHVyYXRpb246MjUwLGVhc2U6ZnVuY3Rpb24obil7cmV0dXJuKChuKj0yKTw9MT9uKm4qbjoobi09MikqbipuKzIpLzJ9fTtmdW5jdGlvbiBVRGUobix0KXtmb3IodmFyIGU7IShlPW4uX190cmFuc2l0aW9uKXx8IShlPWVbdF0pOylpZighKG49bi5wYXJlbnROb2RlKSlyZXR1cm4gZkwudGltZT1zMCgpLGZMO3JldHVybiBlfWZ1bmN0aW9uIGdMKG4pe3JldHVybnt0eXBlOm59fVJkLnByb3RvdHlwZS5pbnRlcnJ1cHQ9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpeyFmdW5jdGlvbihuLHQpe3ZhciBpLHIsYSxlPW4uX190cmFuc2l0aW9uLG89ITA7aWYoZSl7Zm9yKGEgaW4gdD1udWxsPT10P251bGw6dCsiIixlKShpPWVbYV0pLm5hbWU9PT10PyhyPWkuc3RhdGU+dkQmJmkuc3RhdGU8eUQsaS5zdGF0ZT1MeSxpLnRpbWVyLnN0b3AoKSxpLm9uLmNhbGwocj8iaW50ZXJydXB0IjoiY2FuY2VsIixuLG4uX19kYXRhX18saS5pbmRleCxpLmdyb3VwKSxkZWxldGUgZVthXSk6bz0hMTtvJiZkZWxldGUgbi5fX3RyYW5zaXRpb259fSh0aGlzLG4pfSl9LFJkLnByb3RvdHlwZS50cmFuc2l0aW9uPWZ1bmN0aW9uKG4pe3ZhciB0LGU7biBpbnN0YW5jZW9mIHRhPyh0PW4uX2lkLG49bi5fbmFtZSk6KHQ9Q0QoKSwoZT1mTCkudGltZT1zMCgpLG49bnVsbD09bj9udWxsOm4rIiIpO2Zvcih2YXIgaT10aGlzLl9ncm91cHMscj1pLmxlbmd0aCxvPTA7bzxyOysrbylmb3IodmFyIGwsYT1pW29dLHM9YS5sZW5ndGgsYz0wO2M8czsrK2MpKGw9YVtjXSkmJm9wKGwsbix0LGMsYSxlfHxVRGUobCx0KSk7cmV0dXJuIG5ldyB0YShpLHRoaXMuX3BhcmVudHMsbix0KX0sWyJ3IiwiZSJdLm1hcChnTCksWyJuIiwicyJdLm1hcChnTCksWyJuIiwidyIsImUiLCJzIiwibnciLCJuZSIsInN3Iiwic2UiXS5tYXAoZ0wpLE1hdGg7dmFyIE1zPSIkIjtmdW5jdGlvbiB3RCgpe31mdW5jdGlvbiBzSihuLHQpe3ZhciBlPW5ldyB3RDtpZihuIGluc3RhbmNlb2Ygd0Qpbi5lYWNoKGZ1bmN0aW9uKHMsbCl7ZS5zZXQobCxzKX0pO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShuKSl7dmFyIG8saT0tMSxyPW4ubGVuZ3RoO2lmKG51bGw9PXQpZm9yKDsrK2k8cjspZS5zZXQoaSxuW2ldKTtlbHNlIGZvcig7KytpPHI7KWUuc2V0KHQobz1uW2ldLGksbiksbyl9ZWxzZSBpZihuKWZvcih2YXIgYSBpbiBuKWUuc2V0KGEsblthXSk7cmV0dXJuIGV9ZnVuY3Rpb24gU0QoKXt9d0QucHJvdG90eXBlPXNKLnByb3RvdHlwZT17Y29uc3RydWN0b3I6d0QsaGFzOmZ1bmN0aW9uKG4pe3JldHVybiBNcytuIGluIHRoaXN9LGdldDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpc1tNcytuXX0sc2V0OmZ1bmN0aW9uKG4sdCl7cmV0dXJuIHRoaXNbTXMrbl09dCx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24obil7dmFyIHQ9TXMrbjtyZXR1cm4gdCBpbiB0aGlzJiZkZWxldGUgdGhpc1t0XX0sY2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIG4gaW4gdGhpcyluWzBdPT09TXMmJmRlbGV0ZSB0aGlzW25dfSxrZXlzOmZ1bmN0aW9uKCl7dmFyIG49W107Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PU1zJiZuLnB1c2godC5zbGljZSgxKSk7cmV0dXJuIG59LHZhbHVlczpmdW5jdGlvbigpe3ZhciBuPVtdO2Zvcih2YXIgdCBpbiB0aGlzKXRbMF09PT1NcyYmbi5wdXNoKHRoaXNbdF0pO3JldHVybiBufSxlbnRyaWVzOmZ1bmN0aW9uKCl7dmFyIG49W107Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PU1zJiZuLnB1c2goe2tleTp0LnNsaWNlKDEpLHZhbHVlOnRoaXNbdF19KTtyZXR1cm4gbn0sc2l6ZTpmdW5jdGlvbigpe3ZhciBuPTA7Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PU1zJiYrK247cmV0dXJuIG59LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBuIGluIHRoaXMpaWYoblswXT09PU1zKXJldHVybiExO3JldHVybiEwfSxlYWNoOmZ1bmN0aW9uKG4pe2Zvcih2YXIgdCBpbiB0aGlzKXRbMF09PT1NcyYmbih0aGlzW3RdLHQuc2xpY2UoMSksdGhpcyl9fTt2YXIgSmg9c0oucHJvdG90eXBlO2Z1bmN0aW9uICRoKG4sdCl7aWYoKGU9KG49dD9uLnRvRXhwb25lbnRpYWwodC0xKTpuLnRvRXhwb25lbnRpYWwoKSkuaW5kZXhPZigiZSIpKTwwKXJldHVybiBudWxsO3ZhciBlLGk9bi5zbGljZSgwLGUpO3JldHVybltpLmxlbmd0aD4xP2lbMF0raS5zbGljZSgyKTppLCtuLnNsaWNlKGUrMSldfWZ1bmN0aW9uIHpjKG4pe3JldHVybihuPSRoKE1hdGguYWJzKG4pKSk/blsxXTpOYU59U0QucHJvdG90eXBlPWZ1bmN0aW9uKG4sdCl7dmFyIGU9bmV3IFNEO2lmKG4gaW5zdGFuY2VvZiBTRCluLmVhY2goZnVuY3Rpb24obyl7ZS5hZGQobyl9KTtlbHNlIGlmKG4pe3ZhciBpPS0xLHI9bi5sZW5ndGg7aWYobnVsbD09dClmb3IoOysraTxyOyllLmFkZChuW2ldKTtlbHNlIGZvcig7KytpPHI7KWUuYWRkKHQobltpXSxpLG4pKX1yZXR1cm4gZX0ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpTRCxoYXM6SmguaGFzLGFkZDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpc1tNcysobis9IiIpXT1uLHRoaXN9LHJlbW92ZTpKaC5yZW1vdmUsY2xlYXI6SmguY2xlYXIsdmFsdWVzOkpoLmtleXMsc2l6ZTpKaC5zaXplLGVtcHR5OkpoLmVtcHR5LGVhY2g6SmguZWFjaH0sTWF0aCxNYXRoLnNxcnQoNSk7dmFyIF9MLEtEZT0vXig/OiguKT8oWzw+PV5dKSk/KFsrXC0oIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KH4pPyhbYS16JV0pPyQvaTtmdW5jdGlvbiBhcChuKXtpZighKHQ9S0RlLmV4ZWMobikpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmb3JtYXQ6ICIrbik7dmFyIHQ7cmV0dXJuIG5ldyBFRCh7ZmlsbDp0WzFdLGFsaWduOnRbMl0sc2lnbjp0WzNdLHN5bWJvbDp0WzRdLHplcm86dFs1XSx3aWR0aDp0WzZdLGNvbW1hOnRbN10scHJlY2lzaW9uOnRbOF0mJnRbOF0uc2xpY2UoMSksdHJpbTp0WzldLHR5cGU6dFsxMF19KX1mdW5jdGlvbiBFRChuKXt0aGlzLmZpbGw9dm9pZCAwPT09bi5maWxsPyIgIjpuLmZpbGwrIiIsdGhpcy5hbGlnbj12b2lkIDA9PT1uLmFsaWduPyI+IjpuLmFsaWduKyIiLHRoaXMuc2lnbj12b2lkIDA9PT1uLnNpZ24/Ii0iOm4uc2lnbisiIix0aGlzLnN5bWJvbD12b2lkIDA9PT1uLnN5bWJvbD8iIjpuLnN5bWJvbCsiIix0aGlzLnplcm89ISFuLnplcm8sdGhpcy53aWR0aD12b2lkIDA9PT1uLndpZHRoP3ZvaWQgMDorbi53aWR0aCx0aGlzLmNvbW1hPSEhbi5jb21tYSx0aGlzLnByZWNpc2lvbj12b2lkIDA9PT1uLnByZWNpc2lvbj92b2lkIDA6K24ucHJlY2lzaW9uLHRoaXMudHJpbT0hIW4udHJpbSx0aGlzLnR5cGU9dm9pZCAwPT09bi50eXBlPyIiOm4udHlwZSsiIn1mdW5jdGlvbiBiTChuLHQpe3ZhciBlPSRoKG4sdCk7aWYoIWUpcmV0dXJuIG4rIiI7dmFyIGk9ZVswXSxyPWVbMV07cmV0dXJuIHI8MD8iMC4iK25ldyBBcnJheSgtcikuam9pbigiMCIpK2k6aS5sZW5ndGg+cisxP2kuc2xpY2UoMCxyKzEpKyIuIitpLnNsaWNlKHIrMSk6aStuZXcgQXJyYXkoci1pLmxlbmd0aCsyKS5qb2luKCIwIil9YXAucHJvdG90eXBlPUVELnByb3RvdHlwZSxFRC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsK3RoaXMuYWxpZ24rdGhpcy5zaWduK3RoaXMuc3ltYm9sKyh0aGlzLnplcm8/IjAiOiIiKSsodm9pZCAwPT09dGhpcy53aWR0aD8iIjpNYXRoLm1heCgxLDB8dGhpcy53aWR0aCkpKyh0aGlzLmNvbW1hPyIsIjoiIikrKHZvaWQgMD09PXRoaXMucHJlY2lzaW9uPyIiOiIuIitNYXRoLm1heCgwLDB8dGhpcy5wcmVjaXNpb24pKSsodGhpcy50cmltPyJ+IjoiIikrdGhpcy50eXBlfTt2YXIgdkw9eyIlIjpmdW5jdGlvbihuLHQpe3JldHVybigxMDAqbikudG9GaXhlZCh0KX0sYjpmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5yb3VuZChuKS50b1N0cmluZygyKX0sYzpmdW5jdGlvbihuKXtyZXR1cm4gbisiIn0sZDpmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5hYnMobj1NYXRoLnJvdW5kKG4pKT49MWUyMT9uLnRvTG9jYWxlU3RyaW5nKCJlbiIpLnJlcGxhY2UoLywvZywiIik6bi50b1N0cmluZygxMCl9LGU6ZnVuY3Rpb24obix0KXtyZXR1cm4gbi50b0V4cG9uZW50aWFsKHQpfSxmOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4udG9GaXhlZCh0KX0sZzpmdW5jdGlvbihuLHQpe3JldHVybiBuLnRvUHJlY2lzaW9uKHQpfSxvOmZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnJvdW5kKG4pLnRvU3RyaW5nKDgpfSxwOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIGJMKDEwMCpuLHQpfSxyOmJMLHM6ZnVuY3Rpb24obix0KXt2YXIgZT0kaChuLHQpO2lmKCFlKXJldHVybiBuKyIiO3ZhciBpPWVbMF0scj1lWzFdLG89ci0oX0w9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3Ioci8zKSkpKSsxLGE9aS5sZW5ndGg7cmV0dXJuIG89PT1hP2k6bz5hP2krbmV3IEFycmF5KG8tYSsxKS5qb2luKCIwIik6bz4wP2kuc2xpY2UoMCxvKSsiLiIraS5zbGljZShvKToiMC4iK25ldyBBcnJheSgxLW8pLmpvaW4oIjAiKSskaChuLE1hdGgubWF4KDAsdCtvLTEpKVswXX0sWDpmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5yb3VuZChuKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX0seDpmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5yb3VuZChuKS50b1N0cmluZygxNil9fTtmdW5jdGlvbiB5TChuKXtyZXR1cm4gbn12YXIgVEQsWXIsREQsZko9QXJyYXkucHJvdG90eXBlLm1hcCxnSj1bInkiLCJ6IiwiYSIsImYiLCJwIiwibiIsIlx4YjUiLCJtIiwiIiwiayIsIk0iLCJHIiwiVCIsIlAiLCJFIiwiWiIsIlkiXTtmdW5jdGlvbiBzbCgpe3JldHVybiBNYXRoLnJhbmRvbSgpfVREPWZ1bmN0aW9uKG4pe3ZhciB0PXZvaWQgMD09PW4uZ3JvdXBpbmd8fHZvaWQgMD09PW4udGhvdXNhbmRzP3lMOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIGZ1bmN0aW9uKGUsaSl7Zm9yKHZhciByPWUubGVuZ3RoLG89W10sYT0wLHM9blswXSxsPTA7cj4wJiZzPjAmJihsK3MrMT5pJiYocz1NYXRoLm1heCgxLGktbCkpLG8ucHVzaChlLnN1YnN0cmluZyhyLT1zLHIrcykpLCEoKGwrPXMrMSk+aSkpOylzPW5bYT0oYSsxKSVuLmxlbmd0aF07cmV0dXJuIG8ucmV2ZXJzZSgpLmpvaW4odCl9fShmSi5jYWxsKG4uZ3JvdXBpbmcsTnVtYmVyKSxuLnRob3VzYW5kcysiIiksZT12b2lkIDA9PT1uLmN1cnJlbmN5PyIiOm4uY3VycmVuY3lbMF0rIiIsaT12b2lkIDA9PT1uLmN1cnJlbmN5PyIiOm4uY3VycmVuY3lbMV0rIiIscj12b2lkIDA9PT1uLmRlY2ltYWw/Ii4iOm4uZGVjaW1hbCsiIixvPXZvaWQgMD09PW4ubnVtZXJhbHM/eUw6ZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoL1swLTldL2csZnVuY3Rpb24oZSl7cmV0dXJuIG5bK2VdfSl9fShmSi5jYWxsKG4ubnVtZXJhbHMsU3RyaW5nKSksYT12b2lkIDA9PT1uLnBlcmNlbnQ/IiUiOm4ucGVyY2VudCsiIixzPXZvaWQgMD09PW4ubWludXM/Ii0iOm4ubWludXMrIiIsbD12b2lkIDA9PT1uLm5hbj8iTmFOIjpuLm5hbisiIjtmdW5jdGlvbiBjKHUpe3ZhciBwPSh1PWFwKHUpKS5maWxsLGg9dS5hbGlnbixtPXUuc2lnbixfPXUuc3ltYm9sLE09dS56ZXJvLHk9dS53aWR0aCx4PXUuY29tbWEsUj11LnByZWNpc2lvbixJPXUudHJpbSxCPXUudHlwZTsibiI9PT1CPyh4PSEwLEI9ImciKTp2TFtCXXx8KHZvaWQgMD09PVImJihSPTEyKSxJPSEwLEI9ImciKSwoTXx8IjAiPT09cCYmIj0iPT09aCkmJihNPSEwLHA9IjAiLGg9Ij0iKTt2YXIgZWU9IiQiPT09Xz9lOiIjIj09PV8mJi9bYm94WF0vLnRlc3QoQik/IjAiK0IudG9Mb3dlckNhc2UoKToiIixRPSIkIj09PV8/aTovWyVwXS8udGVzdChCKT9hOiIiLHdlPXZMW0JdLFFlPS9bZGVmZ3BycyVdLy50ZXN0KEIpO2Z1bmN0aW9uIEFlKEQpe3ZhciBoZSxfZSwkLHJlPWVlLGNlPVE7aWYoImMiPT09QiljZT13ZShEKStjZSxEPSIiO2Vsc2V7dmFyIGRlPShEPStEKTwwfHwxL0Q8MDtpZihEPWlzTmFOKEQpP2w6d2UoTWF0aC5hYnMoRCksUiksSSYmKEQ9ZnVuY3Rpb24obil7ZTpmb3IodmFyIHIsdD1uLmxlbmd0aCxlPTEsaT0tMTtlPHQ7KytlKXN3aXRjaChuW2VdKXtjYXNlIi4iOmk9cj1lO2JyZWFrO2Nhc2UiMCI6MD09PWkmJihpPWUpLHI9ZTticmVhaztkZWZhdWx0OmlmKCErbltlXSlicmVhayBlO2k+MCYmKGk9MCl9cmV0dXJuIGk+MD9uLnNsaWNlKDAsaSkrbi5zbGljZShyKzEpOm59KEQpKSxkZSYmMD09K0QmJiIrIiE9PW0mJihkZT0hMSkscmU9KGRlPyIoIj09PW0/bTpzOiItIj09PW18fCIoIj09PW0/IiI6bSkrcmUsY2U9KCJzIj09PUI/Z0pbOCtfTC8zXToiIikrY2UrKGRlJiYiKCI9PT1tPyIpIjoiIiksUWUpZm9yKGhlPS0xLF9lPUQubGVuZ3RoOysraGU8X2U7KWlmKDQ4PigkPUQuY2hhckNvZGVBdChoZSkpfHwkPjU3KXtjZT0oNDY9PT0kP3IrRC5zbGljZShoZSsxKTpELnNsaWNlKGhlKSkrY2UsRD1ELnNsaWNlKDAsaGUpO2JyZWFrfX14JiYhTSYmKEQ9dChELDEvMCkpO3ZhciBwZT1yZS5sZW5ndGgrRC5sZW5ndGgrY2UubGVuZ3RoLEdlPXBlPHk/bmV3IEFycmF5KHktcGUrMSkuam9pbihwKToiIjtzd2l0Y2goeCYmTSYmKEQ9dChHZStELEdlLmxlbmd0aD95LWNlLmxlbmd0aDoxLzApLEdlPSIiKSxoKXtjYXNlIjwiOkQ9cmUrRCtjZStHZTticmVhaztjYXNlIj0iOkQ9cmUrR2UrRCtjZTticmVhaztjYXNlIl4iOkQ9R2Uuc2xpY2UoMCxwZT1HZS5sZW5ndGg+PjEpK3JlK0QrY2UrR2Uuc2xpY2UocGUpO2JyZWFrO2RlZmF1bHQ6RD1HZStyZStEK2NlfXJldHVybiBvKEQpfXJldHVybiBSPXZvaWQgMD09PVI/NjovW2dwcnNdLy50ZXN0KEIpP01hdGgubWF4KDEsTWF0aC5taW4oMjEsUikpOk1hdGgubWF4KDAsTWF0aC5taW4oMjAsUikpLEFlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHUrIiJ9LEFlfXJldHVybntmb3JtYXQ6Yyxmb3JtYXRQcmVmaXg6ZnVuY3Rpb24odSxwKXt2YXIgaD1jKCgodT1hcCh1KSkudHlwZT0iZiIsdSkpLG09MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoemMocCkvMykpKSxfPU1hdGgucG93KDEwLC1tKSxNPWdKWzgrbS8zXTtyZXR1cm4gZnVuY3Rpb24oeSl7cmV0dXJuIGgoXyp5KStNfX19fSh7ZGVjaW1hbDoiLiIsdGhvdXNhbmRzOiIsIixncm91cGluZzpbM10sY3VycmVuY3k6WyIkIiwiIl0sbWludXM6Ii0ifSksWXI9VEQuZm9ybWF0LEREPVRELmZvcm1hdFByZWZpeCxmdW5jdGlvbiBuKHQpe2Z1bmN0aW9uIGUoaSxyKXtyZXR1cm4gaT1udWxsPT1pPzA6K2kscj1udWxsPT1yPzE6K3IsMT09PWFyZ3VtZW50cy5sZW5ndGg/KHI9aSxpPTApOnItPWksZnVuY3Rpb24oKXtyZXR1cm4gdCgpKnIraX19cmV0dXJuIGUuc291cmNlPW4sZX0oc2wpO3ZhciBTTD1mdW5jdGlvbiBuKHQpe2Z1bmN0aW9uIGUoaSxyKXt2YXIgbyxhO3JldHVybiBpPW51bGw9PWk/MDoraSxyPW51bGw9PXI/MTorcixmdW5jdGlvbigpe3ZhciBzO2lmKG51bGwhPW8pcz1vLG89bnVsbDtlbHNlIGRve289Mip0KCktMSxzPTIqdCgpLTEsYT1vKm8rcypzfXdoaWxlKCFhfHxhPjEpO3JldHVybiBpK3IqcypNYXRoLnNxcnQoLTIqTWF0aC5sb2coYSkvYSl9fXJldHVybiBlLnNvdXJjZT1uLGV9KHNsKSxFTD0oZnVuY3Rpb24gbih0KXtmdW5jdGlvbiBlKCl7dmFyIGk9U0wuc291cmNlKHQpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5leHAoaSgpKX19cmV0dXJuIGUuc291cmNlPW4sZX0oc2wpLGZ1bmN0aW9uIG4odCl7ZnVuY3Rpb24gZShpKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHI9MCxvPTA7bzxpOysrbylyKz10KCk7cmV0dXJuIHJ9fXJldHVybiBlLnNvdXJjZT1uLGV9KHNsKSk7ZnVuY3Rpb24gSmEobix0KXtzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAwOmJyZWFrO2Nhc2UgMTp0aGlzLnJhbmdlKG4pO2JyZWFrO2RlZmF1bHQ6dGhpcy5yYW5nZSh0KS5kb21haW4obil9cmV0dXJuIHRoaXN9KGZ1bmN0aW9uIG4odCl7ZnVuY3Rpb24gZShpKXt2YXIgcj1FTC5zb3VyY2UodCkoaSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIoKS9pfX1yZXR1cm4gZS5zb3VyY2U9bixlfSkoc2wpLGZ1bmN0aW9uIG4odCl7ZnVuY3Rpb24gZShpKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4tTWF0aC5sb2coMS10KCkpL2l9fXJldHVybiBlLnNvdXJjZT1uLGV9KHNsKTt2YXIgYko9QXJyYXkucHJvdG90eXBlLHp5PWJKLm1hcCxlbT1iSi5zbGljZTtmdW5jdGlvbiBUTChuKXtyZXR1cm4rbn12YXIgeUo9WzAsMV07ZnVuY3Rpb24gJGEobil7cmV0dXJuIG59ZnVuY3Rpb24gREwobix0KXtyZXR1cm4odC09bj0rbik/ZnVuY3Rpb24oZSl7cmV0dXJuKGUtbikvdH06ZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG59fShpc05hTih0KT9OYU46LjUpfWZ1bmN0aW9uIHhKKG4pe3ZhciBpLHQ9blswXSxlPW5bbi5sZW5ndGgtMV07cmV0dXJuIHQ+ZSYmKGk9dCx0PWUsZT1pKSxmdW5jdGlvbihyKXtyZXR1cm4gTWF0aC5tYXgodCxNYXRoLm1pbihlLHIpKX19ZnVuY3Rpb24gaUllKG4sdCxlKXt2YXIgaT1uWzBdLHI9blsxXSxvPXRbMF0sYT10WzFdO3JldHVybiByPGk/KGk9REwocixpKSxvPWUoYSxvKSk6KGk9REwoaSxyKSxvPWUobyxhKSksZnVuY3Rpb24ocyl7cmV0dXJuIG8oaShzKSl9fWZ1bmN0aW9uIHJJZShuLHQsZSl7dmFyIGk9TWF0aC5taW4obi5sZW5ndGgsdC5sZW5ndGgpLTEscj1uZXcgQXJyYXkoaSksbz1uZXcgQXJyYXkoaSksYT0tMTtmb3IobltpXTxuWzBdJiYobj1uLnNsaWNlKCkucmV2ZXJzZSgpLHQ9dC5zbGljZSgpLnJldmVyc2UoKSk7KythPGk7KXJbYV09REwoblthXSxuW2ErMV0pLG9bYV09ZSh0W2FdLHRbYSsxXSk7cmV0dXJuIGZ1bmN0aW9uKHMpe3ZhciBsPUxjKG4scywxLGkpLTE7cmV0dXJuIG9bbF0ocltsXShzKSl9fWZ1bmN0aW9uIHNwKG4sdCl7cmV0dXJuIHQuZG9tYWluKG4uZG9tYWluKCkpLnJhbmdlKG4ucmFuZ2UoKSkuaW50ZXJwb2xhdGUobi5pbnRlcnBvbGF0ZSgpKS5jbGFtcChuLmNsYW1wKCkpLnVua25vd24obi51bmtub3duKCkpfWZ1bmN0aW9uIFV5KCl7dmFyIGkscixvLHMsbCxjLG49eUosdD15SixlPVFoLGE9JGE7ZnVuY3Rpb24gZCgpe3JldHVybiBzPU1hdGgubWluKG4ubGVuZ3RoLHQubGVuZ3RoKT4yP3JJZTppSWUsbD1jPW51bGwsdX1mdW5jdGlvbiB1KHApe3JldHVybiBpc05hTihwPStwKT9vOihsfHwobD1zKG4ubWFwKGkpLHQsZSkpKShpKGEocCkpKX1yZXR1cm4gdS5pbnZlcnQ9ZnVuY3Rpb24ocCl7cmV0dXJuIGEocigoY3x8KGM9cyh0LG4ubWFwKGkpLFVvKSkpKHApKSl9LHUuZG9tYWluPWZ1bmN0aW9uKHApe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXp5LmNhbGwocCxUTCksYT09PSRhfHwoYT14SihuKSksZCgpKTpuLnNsaWNlKCl9LHUucmFuZ2U9ZnVuY3Rpb24ocCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZW0uY2FsbChwKSxkKCkpOnQuc2xpY2UoKX0sdS5yYW5nZVJvdW5kPWZ1bmN0aW9uKHApe3JldHVybiB0PWVtLmNhbGwocCksZT1vTCxkKCl9LHUuY2xhbXA9ZnVuY3Rpb24ocCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9cD94SihuKTokYSx1KTphIT09JGF9LHUuaW50ZXJwb2xhdGU9ZnVuY3Rpb24ocCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9cCxkKCkpOmV9LHUudW5rbm93bj1mdW5jdGlvbihwKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1wLHUpOm99LGZ1bmN0aW9uKHAsaCl7cmV0dXJuIGk9cCxyPWgsZCgpfX1mdW5jdGlvbiBqeShuLHQpe3JldHVybiBVeSgpKG4sdCl9ZnVuY3Rpb24gemwoKXt2YXIgbj1qeSgkYSwkYSk7cmV0dXJuIG4uY29weT1mdW5jdGlvbigpe3JldHVybiBzcChuLHpsKCkpfSxKYS5hcHBseShuLGFyZ3VtZW50cyksZnVuY3Rpb24obil7dmFyIHQ9bi5kb21haW47cmV0dXJuIG4udGlja3M9ZnVuY3Rpb24oZSl7dmFyIGk9dCgpO3JldHVybiBNeShpWzBdLGlbaS5sZW5ndGgtMV0sZT8/MTApfSxuLnRpY2tGb3JtYXQ9ZnVuY3Rpb24oZSxpKXt2YXIgcj10KCk7cmV0dXJuIGZ1bmN0aW9uKG4sdCxlLGkpe3ZhciBvLHI9SWQobix0LGUpO3N3aXRjaCgoaT1hcChpPz8iLGYiKSkudHlwZSl7Y2FzZSJzIjp2YXIgYT1NYXRoLm1heChNYXRoLmFicyhuKSxNYXRoLmFicyh0KSk7cmV0dXJuIG51bGw9PWkucHJlY2lzaW9uJiYhaXNOYU4obz1mdW5jdGlvbihuLHQpe3JldHVybiBNYXRoLm1heCgwLDMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKHpjKHQpLzMpKSktemMoTWF0aC5hYnMobikpKX0ocixhKSkmJihpLnByZWNpc2lvbj1vKSxERChpLGEpO2Nhc2UiIjpjYXNlImUiOmNhc2UiZyI6Y2FzZSJwIjpjYXNlInIiOm51bGw9PWkucHJlY2lzaW9uJiYhaXNOYU4obz1mdW5jdGlvbihuLHQpe3JldHVybiBuPU1hdGguYWJzKG4pLHQ9TWF0aC5hYnModCktbixNYXRoLm1heCgwLHpjKHQpLXpjKG4pKSsxfShyLE1hdGgubWF4KE1hdGguYWJzKG4pLE1hdGguYWJzKHQpKSkpJiYoaS5wcmVjaXNpb249by0oImUiPT09aS50eXBlKSk7YnJlYWs7Y2FzZSJmIjpjYXNlIiUiOm51bGw9PWkucHJlY2lzaW9uJiYhaXNOYU4obz1mdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5tYXgoMCwtemMoTWF0aC5hYnMobikpKX0ocikpJiYoaS5wcmVjaXNpb249by0yKigiJSI9PT1pLnR5cGUpKX1yZXR1cm4gWXIoaSl9KHJbMF0scltyLmxlbmd0aC0xXSxlPz8xMCxpKX0sbi5uaWNlPWZ1bmN0aW9uKGUpe251bGw9PWUmJihlPTEwKTt2YXIgbCxpPXQoKSxyPTAsbz1pLmxlbmd0aC0xLGE9aVtyXSxzPWlbb107cmV0dXJuIHM8YSYmKGw9YSxhPXMscz1sLGw9cixyPW8sbz1sKSwobD1lMChhLHMsZSkpPjA/bD1lMChhPU1hdGguZmxvb3IoYS9sKSpsLHM9TWF0aC5jZWlsKHMvbCkqbCxlKTpsPDAmJihsPWUwKGE9TWF0aC5jZWlsKGEqbCkvbCxzPU1hdGguZmxvb3IocypsKS9sLGUpKSxsPjA/KGlbcl09TWF0aC5mbG9vcihhL2wpKmwsaVtvXT1NYXRoLmNlaWwocy9sKSpsLHQoaSkpOmw8MCYmKGlbcl09TWF0aC5jZWlsKGEqbCkvbCxpW29dPU1hdGguZmxvb3IocypsKS9sLHQoaSkpLG59LG59KG4pfWZ1bmN0aW9uIElEKG4sdCl7dmFyIGEsZT0wLGk9KG49bi5zbGljZSgpKS5sZW5ndGgtMSxyPW5bZV0sbz1uW2ldO3JldHVybiBvPHImJihhPWUsZT1pLGk9YSxhPXIscj1vLG89YSksbltlXT10LmZsb29yKHIpLG5baV09dC5jZWlsKG8pLG59ZnVuY3Rpb24gQ0oobil7cmV0dXJuIE1hdGgubG9nKG4pfWZ1bmN0aW9uIE1KKG4pe3JldHVybiBNYXRoLmV4cChuKX1mdW5jdGlvbiBvSWUobil7cmV0dXJuLU1hdGgubG9nKC1uKX1mdW5jdGlvbiBhSWUobil7cmV0dXJuLU1hdGguZXhwKC1uKX1mdW5jdGlvbiBzSWUobil7cmV0dXJuIGlzRmluaXRlKG4pPysoIjFlIituKTpuPDA/MDpufWZ1bmN0aW9uIHdKKG4pe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4tbigtdCl9fWZ1bmN0aW9uIEd5KCl7dmFyIG49ZnVuY3Rpb24obil7dmFyIHIsbyx0PW4oQ0osTUopLGU9dC5kb21haW4saT0xMDtmdW5jdGlvbiBhKCl7cmV0dXJuIHI9ZnVuY3Rpb24obil7cmV0dXJuIG49PT1NYXRoLkU/TWF0aC5sb2c6MTA9PT1uJiZNYXRoLmxvZzEwfHwyPT09biYmTWF0aC5sb2cyfHwobj1NYXRoLmxvZyhuKSxmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5sb2codCkvbn0pfShpKSxvPWZ1bmN0aW9uKG4pe3JldHVybiAxMD09PW4/c0llOm49PT1NYXRoLkU/TWF0aC5leHA6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucG93KG4sdCl9fShpKSxlKClbMF08MD8ocj13SihyKSxvPXdKKG8pLG4ob0llLGFJZSkpOm4oQ0osTUopLHR9cmV0dXJuIHQuYmFzZT1mdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rcyxhKCkpOml9LHQuZG9tYWluPWZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlKHMpLGEoKSk6ZSgpfSx0LnRpY2tzPWZ1bmN0aW9uKHMpe3ZhciB1LGw9ZSgpLGM9bFswXSxkPWxbbC5sZW5ndGgtMV07KHU9ZDxjKSYmKHA9YyxjPWQsZD1wKTt2YXIgbSxfLE0scD1yKGMpLGg9cihkKSx5PW51bGw9PXM/MTA6K3MseD1bXTtpZighKGklMSkmJmgtcDx5KXtpZihwPU1hdGgucm91bmQocCktMSxoPU1hdGgucm91bmQoaCkrMSxjPjApe2Zvcig7cDxoOysrcClmb3IoXz0xLG09byhwKTtfPGk7KytfKWlmKCEoKE09bSpfKTxjKSl7aWYoTT5kKWJyZWFrO3gucHVzaChNKX19ZWxzZSBmb3IoO3A8aDsrK3ApZm9yKF89aS0xLG09byhwKTtfPj0xOy0tXylpZighKChNPW0qXyk8Yykpe2lmKE0+ZClicmVhazt4LnB1c2goTSl9fWVsc2UgeD1NeShwLGgsTWF0aC5taW4oaC1wLHkpKS5tYXAobyk7cmV0dXJuIHU/eC5yZXZlcnNlKCk6eH0sdC50aWNrRm9ybWF0PWZ1bmN0aW9uKHMsbCl7aWYobnVsbD09bCYmKGw9MTA9PT1pPyIuMGUiOiIsIiksImZ1bmN0aW9uIiE9dHlwZW9mIGwmJihsPVlyKGwpKSxzPT09MS8wKXJldHVybiBsO251bGw9PXMmJihzPTEwKTt2YXIgYz1NYXRoLm1heCgxLGkqcy90LnRpY2tzKCkubGVuZ3RoKTtyZXR1cm4gZnVuY3Rpb24oZCl7dmFyIHU9ZC9vKE1hdGgucm91bmQocihkKSkpO3JldHVybiB1Kmk8aS0uNSYmKHUqPWkpLHU8PWM/bChkKToiIn19LHQubmljZT1mdW5jdGlvbigpe3JldHVybiBlKElEKGUoKSx7Zmxvb3I6ZnVuY3Rpb24ocyl7cmV0dXJuIG8oTWF0aC5mbG9vcihyKHMpKSl9LGNlaWw6ZnVuY3Rpb24ocyl7cmV0dXJuIG8oTWF0aC5jZWlsKHIocykpKX19KSl9LHR9KFV5KCkpLmRvbWFpbihbMSwxMF0pO3JldHVybiBuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gc3AobixHeSgpKS5iYXNlKG4uYmFzZSgpKX0sSmEuYXBwbHkobixhcmd1bWVudHMpLG59dmFyIFJMPW5ldyBEYXRlLFBMPW5ldyBEYXRlO2Z1bmN0aW9uIG5yKG4sdCxlLGkpe2Z1bmN0aW9uIHIobyl7cmV0dXJuIG4obz0wPT09YXJndW1lbnRzLmxlbmd0aD9uZXcgRGF0ZTpuZXcgRGF0ZSgrbykpLG99cmV0dXJuIHIuZmxvb3I9ZnVuY3Rpb24obyl7cmV0dXJuIG4obz1uZXcgRGF0ZSgrbykpLG99LHIuY2VpbD1mdW5jdGlvbihvKXtyZXR1cm4gbihvPW5ldyBEYXRlKG8tMSkpLHQobywxKSxuKG8pLG99LHIucm91bmQ9ZnVuY3Rpb24obyl7dmFyIGE9cihvKSxzPXIuY2VpbChvKTtyZXR1cm4gby1hPHMtbz9hOnN9LHIub2Zmc2V0PWZ1bmN0aW9uKG8sYSl7cmV0dXJuIHQobz1uZXcgRGF0ZSgrbyksbnVsbD09YT8xOk1hdGguZmxvb3IoYSkpLG99LHIucmFuZ2U9ZnVuY3Rpb24obyxhLHMpe3ZhciBjLGw9W107aWYobz1yLmNlaWwobykscz1udWxsPT1zPzE6TWF0aC5mbG9vcihzKSwhKG88YSYmcz4wKSlyZXR1cm4gbDtkb3tsLnB1c2goYz1uZXcgRGF0ZSgrbykpLHQobyxzKSxuKG8pfXdoaWxlKGM8byYmbzxhKTtyZXR1cm4gbH0sci5maWx0ZXI9ZnVuY3Rpb24obyl7cmV0dXJuIG5yKGZ1bmN0aW9uKGEpe2lmKGE+PWEpZm9yKDtuKGEpLCFvKGEpOylhLnNldFRpbWUoYS0xKX0sZnVuY3Rpb24oYSxzKXtpZihhPj1hKWlmKHM8MClmb3IoOysrczw9MDspZm9yKDt0KGEsLTEpLCFvKGEpOyk7ZWxzZSBmb3IoOy0tcz49MDspZm9yKDt0KGEsMSksIW8oYSk7KTt9KX0sZSYmKHIuY291bnQ9ZnVuY3Rpb24obyxhKXtyZXR1cm4gUkwuc2V0VGltZSgrbyksUEwuc2V0VGltZSgrYSksbihSTCksbihQTCksTWF0aC5mbG9vcihlKFJMLFBMKSl9LHIuZXZlcnk9ZnVuY3Rpb24obyl7cmV0dXJuIG89TWF0aC5mbG9vcihvKSxpc0Zpbml0ZShvKSYmbz4wP28+MT9yLmZpbHRlcihpP2Z1bmN0aW9uKGEpe3JldHVybiBpKGEpJW89PTB9OmZ1bmN0aW9uKGEpe3JldHVybiByLmNvdW50KDAsYSklbz09MH0pOnI6bnVsbH0pLHJ9dmFyIEFEPW5yKGZ1bmN0aW9uKCl7fSxmdW5jdGlvbihuLHQpe24uc2V0VGltZSgrbit0KX0sZnVuY3Rpb24obix0KXtyZXR1cm4gdC1ufSk7QUQuZXZlcnk9ZnVuY3Rpb24obil7cmV0dXJuIG49TWF0aC5mbG9vcihuKSxpc0Zpbml0ZShuKSYmbj4wP24+MT9ucihmdW5jdGlvbih0KXt0LnNldFRpbWUoTWF0aC5mbG9vcih0L24pKm4pfSxmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKm4pfSxmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL259KTpBRDpudWxsfTt2YXIgUkQ9QUQsa2Q9NmU0LGtEPTYwNDhlNSxFSj1ucihmdW5jdGlvbihuKXtuLnNldFRpbWUobi1uLmdldE1pbGxpc2Vjb25kcygpKX0sZnVuY3Rpb24obix0KXtuLnNldFRpbWUoK24rMWUzKnQpfSxmdW5jdGlvbihuLHQpe3JldHVybih0LW4pLzFlM30sZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0VVRDU2Vjb25kcygpfSksT0Q9RUosREo9bnIoZnVuY3Rpb24obil7bi5zZXRUaW1lKG4tbi5nZXRNaWxsaXNlY29uZHMoKS0xZTMqbi5nZXRTZWNvbmRzKCkpfSxmdW5jdGlvbihuLHQpe24uc2V0VGltZSgrbit0KmtkKX0sZnVuY3Rpb24obix0KXtyZXR1cm4odC1uKS9rZH0sZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0TWludXRlcygpfSksT0w9REosSUo9bnIoZnVuY3Rpb24obil7bi5zZXRUaW1lKG4tbi5nZXRNaWxsaXNlY29uZHMoKS0xZTMqbi5nZXRTZWNvbmRzKCktbi5nZXRNaW51dGVzKCkqa2QpfSxmdW5jdGlvbihuLHQpe24uc2V0VGltZSgrbiszNmU1KnQpfSxmdW5jdGlvbihuLHQpe3JldHVybih0LW4pLzM2ZTV9LGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldEhvdXJzKCl9KSxGTD1JSixBSj1ucihmdW5jdGlvbihuKXtuLnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbihuLHQpe24uc2V0RGF0ZShuLmdldERhdGUoKSt0KX0sZnVuY3Rpb24obix0KXtyZXR1cm4odC1uLSh0LmdldFRpbWV6b25lT2Zmc2V0KCktbi5nZXRUaW1lem9uZU9mZnNldCgpKSprZCkvODY0ZTV9LGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldERhdGUoKS0xfSksZDA9QUo7ZnVuY3Rpb24gaW0obil7cmV0dXJuIG5yKGZ1bmN0aW9uKHQpe3Quc2V0RGF0ZSh0LmdldERhdGUoKS0odC5nZXREYXkoKSs3LW4pJTcpLHQuc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsZSl7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpKzcqZSl9LGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdC0oZS5nZXRUaW1lem9uZU9mZnNldCgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSkqa2QpL2tEfSl9dmFyIHJtPWltKDApLHUwPWltKDEpLGxwPShpbSgyKSxpbSgzKSxpbSg0KSksTko9KGltKDUpLGltKDYpLG5yKGZ1bmN0aW9uKG4pe24uc2V0RGF0ZSgxKSxuLnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbihuLHQpe24uc2V0TW9udGgobi5nZXRNb250aCgpK3QpfSxmdW5jdGlvbihuLHQpe3JldHVybiB0LmdldE1vbnRoKCktbi5nZXRNb250aCgpKzEyKih0LmdldEZ1bGxZZWFyKCktbi5nZXRGdWxsWWVhcigpKX0sZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0TW9udGgoKX0pKSxOTD1OSixMTD1ucihmdW5jdGlvbihuKXtuLnNldE1vbnRoKDAsMSksbi5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24obix0KXtuLnNldEZ1bGxZZWFyKG4uZ2V0RnVsbFllYXIoKSt0KX0sZnVuY3Rpb24obix0KXtyZXR1cm4gdC5nZXRGdWxsWWVhcigpLW4uZ2V0RnVsbFllYXIoKX0sZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0RnVsbFllYXIoKX0pO0xMLmV2ZXJ5PWZ1bmN0aW9uKG4pe3JldHVybiBpc0Zpbml0ZShuPU1hdGguZmxvb3IobikpJiZuPjA/bnIoZnVuY3Rpb24odCl7dC5zZXRGdWxsWWVhcihNYXRoLmZsb29yKHQuZ2V0RnVsbFllYXIoKS9uKSpuKSx0LnNldE1vbnRoKDAsMSksdC5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxlKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStlKm4pfSk6bnVsbH07dmFyIE9kPUxMLExKPW5yKGZ1bmN0aW9uKG4pe24uc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKG4sdCl7bi5zZXRVVENEYXRlKG4uZ2V0VVRDRGF0ZSgpK3QpfSxmdW5jdGlvbihuLHQpe3JldHVybih0LW4pLzg2NGU1fSxmdW5jdGlvbihuKXtyZXR1cm4gbi5nZXRVVENEYXRlKCktMX0pLEZEPUxKO2Z1bmN0aW9uIG9tKG4pe3JldHVybiBucihmdW5jdGlvbih0KXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCktKHQuZ2V0VVRDRGF5KCkrNy1uKSU3KSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LGUpe3Quc2V0VVRDRGF0ZSh0LmdldFVUQ0RhdGUoKSs3KmUpfSxmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL2tEfSl9dmFyIFd5PW9tKDApLHAwPW9tKDEpLGNwPShvbSgyKSxvbSgzKSxvbSg0KSksQkw9KG9tKDUpLG9tKDYpLG5yKGZ1bmN0aW9uKG4pe24uc2V0VVRDTW9udGgoMCwxKSxuLnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbihuLHQpe24uc2V0VVRDRnVsbFllYXIobi5nZXRVVENGdWxsWWVhcigpK3QpfSxmdW5jdGlvbihuLHQpe3JldHVybiB0LmdldFVUQ0Z1bGxZZWFyKCktbi5nZXRVVENGdWxsWWVhcigpfSxmdW5jdGlvbihuKXtyZXR1cm4gbi5nZXRVVENGdWxsWWVhcigpfSkpO0JMLmV2ZXJ5PWZ1bmN0aW9uKG4pe3JldHVybiBpc0Zpbml0ZShuPU1hdGguZmxvb3IobikpJiZuPjA/bnIoZnVuY3Rpb24odCl7dC5zZXRVVENGdWxsWWVhcihNYXRoLmZsb29yKHQuZ2V0VVRDRnVsbFllYXIoKS9uKSpuKSx0LnNldFVUQ01vbnRoKDAsMSksdC5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxlKXt0LnNldFVUQ0Z1bGxZZWFyKHQuZ2V0VVRDRnVsbFllYXIoKStlKm4pfSk6bnVsbH07dmFyIGFtPUJMO2Z1bmN0aW9uIFZMKG4pe2lmKDA8PW4ueSYmbi55PDEwMCl7dmFyIHQ9bmV3IERhdGUoLTEsbi5tLG4uZCxuLkgsbi5NLG4uUyxuLkwpO3JldHVybiB0LnNldEZ1bGxZZWFyKG4ueSksdH1yZXR1cm4gbmV3IERhdGUobi55LG4ubSxuLmQsbi5ILG4uTSxuLlMsbi5MKX1mdW5jdGlvbiBITChuKXtpZigwPD1uLnkmJm4ueTwxMDApe3ZhciB0PW5ldyBEYXRlKERhdGUuVVRDKC0xLG4ubSxuLmQsbi5ILG4uTSxuLlMsbi5MKSk7cmV0dXJuIHQuc2V0VVRDRnVsbFllYXIobi55KSx0fXJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyhuLnksbi5tLG4uZCxuLkgsbi5NLG4uUyxuLkwpKX1mdW5jdGlvbiBxeShuLHQsZSl7cmV0dXJue3k6bixtOnQsZDplLEg6MCxNOjAsUzowLEw6MH19dmFyIGgwLG0wLGpKPXsiLSI6IiIsXzoiICIsMDoiMCJ9LFBvPS9eXHMqXGQrLyxJSWU9L14lLyxBSWU9L1tcXF4kKis/fFtcXSgpLnt9XS9nO2Z1bmN0aW9uIEZpKG4sdCxlKXt2YXIgaT1uPDA/Ii0iOiIiLHI9KGk/LW46bikrIiIsbz1yLmxlbmd0aDtyZXR1cm4gaSsobzxlP25ldyBBcnJheShlLW8rMSkuam9pbih0KStyOnIpfWZ1bmN0aW9uIFJJZShuKXtyZXR1cm4gbi5yZXBsYWNlKEFJZSwiXFwkJiIpfWZ1bmN0aW9uIFh5KG4pe3JldHVybiBuZXcgUmVnRXhwKCJeKD86IituLm1hcChSSWUpLmpvaW4oInwiKSsiKSIsImkiKX1mdW5jdGlvbiBZeShuKXtmb3IodmFyIHQ9e30sZT0tMSxpPW4ubGVuZ3RoOysrZTxpOyl0W25bZV0udG9Mb3dlckNhc2UoKV09ZTtyZXR1cm4gdH1mdW5jdGlvbiBQSWUobix0LGUpe3ZhciBpPVBvLmV4ZWModC5zbGljZShlLGUrMSkpO3JldHVybiBpPyhuLnc9K2lbMF0sZStpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24ga0llKG4sdCxlKXt2YXIgaT1Qby5leGVjKHQuc2xpY2UoZSxlKzEpKTtyZXR1cm4gaT8obi51PStpWzBdLGUraVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIE9JZShuLHQsZSl7dmFyIGk9UG8uZXhlYyh0LnNsaWNlKGUsZSsyKSk7cmV0dXJuIGk/KG4uVT0raVswXSxlK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBGSWUobix0LGUpe3ZhciBpPVBvLmV4ZWModC5zbGljZShlLGUrMikpO3JldHVybiBpPyhuLlY9K2lbMF0sZStpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gTkllKG4sdCxlKXt2YXIgaT1Qby5leGVjKHQuc2xpY2UoZSxlKzIpKTtyZXR1cm4gaT8obi5XPStpWzBdLGUraVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEdKKG4sdCxlKXt2YXIgaT1Qby5leGVjKHQuc2xpY2UoZSxlKzQpKTtyZXR1cm4gaT8obi55PStpWzBdLGUraVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFdKKG4sdCxlKXt2YXIgaT1Qby5leGVjKHQuc2xpY2UoZSxlKzIpKTtyZXR1cm4gaT8obi55PStpWzBdKygraVswXT42OD8xOTAwOjJlMyksZStpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gTEllKG4sdCxlKXt2YXIgaT0vXihaKXwoWystXVxkXGQpKD86Oj8oXGRcZCkpPy8uZXhlYyh0LnNsaWNlKGUsZSs2KSk7cmV0dXJuIGk/KG4uWj1pWzFdPzA6LShpWzJdKyhpWzNdfHwiMDAiKSksZStpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQkllKG4sdCxlKXt2YXIgaT1Qby5leGVjKHQuc2xpY2UoZSxlKzEpKTtyZXR1cm4gaT8obi5xPTMqaVswXS0zLGUraVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFZJZShuLHQsZSl7dmFyIGk9UG8uZXhlYyh0LnNsaWNlKGUsZSsyKSk7cmV0dXJuIGk/KG4ubT1pWzBdLTEsZStpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gcUoobix0LGUpe3ZhciBpPVBvLmV4ZWModC5zbGljZShlLGUrMikpO3JldHVybiBpPyhuLmQ9K2lbMF0sZStpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gSEllKG4sdCxlKXt2YXIgaT1Qby5leGVjKHQuc2xpY2UoZSxlKzMpKTtyZXR1cm4gaT8obi5tPTAsbi5kPStpWzBdLGUraVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFhKKG4sdCxlKXt2YXIgaT1Qby5leGVjKHQuc2xpY2UoZSxlKzIpKTtyZXR1cm4gaT8obi5IPStpWzBdLGUraVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHpJZShuLHQsZSl7dmFyIGk9UG8uZXhlYyh0LnNsaWNlKGUsZSsyKSk7cmV0dXJuIGk/KG4uTT0raVswXSxlK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBVSWUobix0LGUpe3ZhciBpPVBvLmV4ZWModC5zbGljZShlLGUrMikpO3JldHVybiBpPyhuLlM9K2lbMF0sZStpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gakllKG4sdCxlKXt2YXIgaT1Qby5leGVjKHQuc2xpY2UoZSxlKzMpKTtyZXR1cm4gaT8obi5MPStpWzBdLGUraVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEdJZShuLHQsZSl7dmFyIGk9UG8uZXhlYyh0LnNsaWNlKGUsZSs2KSk7cmV0dXJuIGk/KG4uTD1NYXRoLmZsb29yKGlbMF0vMWUzKSxlK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBXSWUobix0LGUpe3ZhciBpPUlJZS5leGVjKHQuc2xpY2UoZSxlKzEpKTtyZXR1cm4gaT9lK2lbMF0ubGVuZ3RoOi0xfWZ1bmN0aW9uIHFJZShuLHQsZSl7dmFyIGk9UG8uZXhlYyh0LnNsaWNlKGUpKTtyZXR1cm4gaT8obi5RPStpWzBdLGUraVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFhJZShuLHQsZSl7dmFyIGk9UG8uZXhlYyh0LnNsaWNlKGUpKTtyZXR1cm4gaT8obi5zPStpWzBdLGUraVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFlKKG4sdCl7cmV0dXJuIEZpKG4uZ2V0RGF0ZSgpLHQsMil9ZnVuY3Rpb24gWUllKG4sdCl7cmV0dXJuIEZpKG4uZ2V0SG91cnMoKSx0LDIpfWZ1bmN0aW9uIFFJZShuLHQpe3JldHVybiBGaShuLmdldEhvdXJzKCklMTJ8fDEyLHQsMil9ZnVuY3Rpb24gWkllKG4sdCl7cmV0dXJuIEZpKDErZDAuY291bnQoT2QobiksbiksdCwzKX1mdW5jdGlvbiAkSihuLHQpe3JldHVybiBGaShuLmdldE1pbGxpc2Vjb25kcygpLHQsMyl9ZnVuY3Rpb24gS0llKG4sdCl7cmV0dXJuICRKKG4sdCkrIjAwMCJ9ZnVuY3Rpb24gSkllKG4sdCl7cmV0dXJuIEZpKG4uZ2V0TW9udGgoKSsxLHQsMil9ZnVuY3Rpb24gJEllKG4sdCl7cmV0dXJuIEZpKG4uZ2V0TWludXRlcygpLHQsMil9ZnVuY3Rpb24gZUFlKG4sdCl7cmV0dXJuIEZpKG4uZ2V0U2Vjb25kcygpLHQsMil9ZnVuY3Rpb24gdEFlKG4pe3ZhciB0PW4uZ2V0RGF5KCk7cmV0dXJuIDA9PT10Pzc6dH1mdW5jdGlvbiBuQWUobix0KXtyZXR1cm4gRmkocm0uY291bnQoT2QobiktMSxuKSx0LDIpfWZ1bmN0aW9uIGUkKG4pe3ZhciB0PW4uZ2V0RGF5KCk7cmV0dXJuIHQ+PTR8fDA9PT10P2xwKG4pOmxwLmNlaWwobil9ZnVuY3Rpb24gaUFlKG4sdCl7cmV0dXJuIG49ZSQobiksRmkobHAuY291bnQoT2QobiksbikrKDQ9PT1PZChuKS5nZXREYXkoKSksdCwyKX1mdW5jdGlvbiByQWUobil7cmV0dXJuIG4uZ2V0RGF5KCl9ZnVuY3Rpb24gb0FlKG4sdCl7cmV0dXJuIEZpKHUwLmNvdW50KE9kKG4pLTEsbiksdCwyKX1mdW5jdGlvbiBhQWUobix0KXtyZXR1cm4gRmkobi5nZXRGdWxsWWVhcigpJTEwMCx0LDIpfWZ1bmN0aW9uIHNBZShuLHQpe3JldHVybiBGaSgobj1lJChuKSkuZ2V0RnVsbFllYXIoKSUxMDAsdCwyKX1mdW5jdGlvbiBsQWUobix0KXtyZXR1cm4gRmkobi5nZXRGdWxsWWVhcigpJTFlNCx0LDQpfWZ1bmN0aW9uIGNBZShuLHQpe3ZhciBlPW4uZ2V0RGF5KCk7cmV0dXJuIEZpKChuPWU+PTR8fDA9PT1lP2xwKG4pOmxwLmNlaWwobikpLmdldEZ1bGxZZWFyKCklMWU0LHQsNCl9ZnVuY3Rpb24gZEFlKG4pe3ZhciB0PW4uZ2V0VGltZXpvbmVPZmZzZXQoKTtyZXR1cm4odD4wPyItIjoodCo9LTEsIisiKSkrRmkodC82MHwwLCIwIiwyKStGaSh0JTYwLCIwIiwyKX1mdW5jdGlvbiBRSihuLHQpe3JldHVybiBGaShuLmdldFVUQ0RhdGUoKSx0LDIpfWZ1bmN0aW9uIHVBZShuLHQpe3JldHVybiBGaShuLmdldFVUQ0hvdXJzKCksdCwyKX1mdW5jdGlvbiBwQWUobix0KXtyZXR1cm4gRmkobi5nZXRVVENIb3VycygpJTEyfHwxMix0LDIpfWZ1bmN0aW9uIGhBZShuLHQpe3JldHVybiBGaSgxK0ZELmNvdW50KGFtKG4pLG4pLHQsMyl9ZnVuY3Rpb24gdCQobix0KXtyZXR1cm4gRmkobi5nZXRVVENNaWxsaXNlY29uZHMoKSx0LDMpfWZ1bmN0aW9uIG1BZShuLHQpe3JldHVybiB0JChuLHQpKyIwMDAifWZ1bmN0aW9uIGZBZShuLHQpe3JldHVybiBGaShuLmdldFVUQ01vbnRoKCkrMSx0LDIpfWZ1bmN0aW9uIGdBZShuLHQpe3JldHVybiBGaShuLmdldFVUQ01pbnV0ZXMoKSx0LDIpfWZ1bmN0aW9uIF9BZShuLHQpe3JldHVybiBGaShuLmdldFVUQ1NlY29uZHMoKSx0LDIpfWZ1bmN0aW9uIGJBZShuKXt2YXIgdD1uLmdldFVUQ0RheSgpO3JldHVybiAwPT09dD83OnR9ZnVuY3Rpb24gdkFlKG4sdCl7cmV0dXJuIEZpKFd5LmNvdW50KGFtKG4pLTEsbiksdCwyKX1mdW5jdGlvbiBuJChuKXt2YXIgdD1uLmdldFVUQ0RheSgpO3JldHVybiB0Pj00fHwwPT09dD9jcChuKTpjcC5jZWlsKG4pfWZ1bmN0aW9uIHlBZShuLHQpe3JldHVybiBuPW4kKG4pLEZpKGNwLmNvdW50KGFtKG4pLG4pKyg0PT09YW0obikuZ2V0VVRDRGF5KCkpLHQsMil9ZnVuY3Rpb24geEFlKG4pe3JldHVybiBuLmdldFVUQ0RheSgpfWZ1bmN0aW9uIENBZShuLHQpe3JldHVybiBGaShwMC5jb3VudChhbShuKS0xLG4pLHQsMil9ZnVuY3Rpb24gTUFlKG4sdCl7cmV0dXJuIEZpKG4uZ2V0VVRDRnVsbFllYXIoKSUxMDAsdCwyKX1mdW5jdGlvbiB3QWUobix0KXtyZXR1cm4gRmkoKG49biQobikpLmdldFVUQ0Z1bGxZZWFyKCklMTAwLHQsMil9ZnVuY3Rpb24gU0FlKG4sdCl7cmV0dXJuIEZpKG4uZ2V0VVRDRnVsbFllYXIoKSUxZTQsdCw0KX1mdW5jdGlvbiBFQWUobix0KXt2YXIgZT1uLmdldFVUQ0RheSgpO3JldHVybiBGaSgobj1lPj00fHwwPT09ZT9jcChuKTpjcC5jZWlsKG4pKS5nZXRVVENGdWxsWWVhcigpJTFlNCx0LDQpfWZ1bmN0aW9uIFRBZSgpe3JldHVybiIrMDAwMCJ9ZnVuY3Rpb24gWkooKXtyZXR1cm4iJSJ9ZnVuY3Rpb24gS0oobil7cmV0dXJuK259ZnVuY3Rpb24gSkoobil7cmV0dXJuIE1hdGguZmxvb3IoK24vMWUzKX1oMD1mdW5jdGlvbihuKXt2YXIgdD1uLmRhdGVUaW1lLGU9bi5kYXRlLGk9bi50aW1lLHI9bi5wZXJpb2RzLG89bi5kYXlzLGE9bi5zaG9ydERheXMscz1uLm1vbnRocyxsPW4uc2hvcnRNb250aHMsYz1YeShyKSxkPVl5KHIpLHU9WHkobykscD1ZeShvKSxoPVh5KGEpLG09WXkoYSksXz1YeShzKSxNPVl5KHMpLHk9WHkobCkseD1ZeShsKSxSPXthOmZ1bmN0aW9uKENlKXtyZXR1cm4gYVtDZS5nZXREYXkoKV19LEE6ZnVuY3Rpb24oQ2Upe3JldHVybiBvW0NlLmdldERheSgpXX0sYjpmdW5jdGlvbihDZSl7cmV0dXJuIGxbQ2UuZ2V0TW9udGgoKV19LEI6ZnVuY3Rpb24oQ2Upe3JldHVybiBzW0NlLmdldE1vbnRoKCldfSxjOm51bGwsZDpZSixlOllKLGY6S0llLGc6c0FlLEc6Y0FlLEg6WUllLEk6UUllLGo6WkllLEw6JEosbTpKSWUsTTokSWUscDpmdW5jdGlvbihDZSl7cmV0dXJuIHJbKyhDZS5nZXRIb3VycygpPj0xMildfSxxOmZ1bmN0aW9uKENlKXtyZXR1cm4gMSt+fihDZS5nZXRNb250aCgpLzMpfSxROktKLHM6SkosUzplQWUsdTp0QWUsVTpuQWUsVjppQWUsdzpyQWUsVzpvQWUseDpudWxsLFg6bnVsbCx5OmFBZSxZOmxBZSxaOmRBZSwiJSI6Wkp9LEk9e2E6ZnVuY3Rpb24oQ2Upe3JldHVybiBhW0NlLmdldFVUQ0RheSgpXX0sQTpmdW5jdGlvbihDZSl7cmV0dXJuIG9bQ2UuZ2V0VVRDRGF5KCldfSxiOmZ1bmN0aW9uKENlKXtyZXR1cm4gbFtDZS5nZXRVVENNb250aCgpXX0sQjpmdW5jdGlvbihDZSl7cmV0dXJuIHNbQ2UuZ2V0VVRDTW9udGgoKV19LGM6bnVsbCxkOlFKLGU6UUosZjptQWUsZzp3QWUsRzpFQWUsSDp1QWUsSTpwQWUsajpoQWUsTDp0JCxtOmZBZSxNOmdBZSxwOmZ1bmN0aW9uKENlKXtyZXR1cm4gclsrKENlLmdldFVUQ0hvdXJzKCk+PTEyKV19LHE6ZnVuY3Rpb24oQ2Upe3JldHVybiAxK35+KENlLmdldFVUQ01vbnRoKCkvMyl9LFE6S0osczpKSixTOl9BZSx1OmJBZSxVOnZBZSxWOnlBZSx3OnhBZSxXOkNBZSx4Om51bGwsWDpudWxsLHk6TUFlLFk6U0FlLFo6VEFlLCIlIjpaSn0sQj17YTpmdW5jdGlvbihDZSxtdCxodCl7dmFyIG9lPWguZXhlYyhtdC5zbGljZShodCkpO3JldHVybiBvZT8oQ2Uudz1tW29lWzBdLnRvTG93ZXJDYXNlKCldLGh0K29lWzBdLmxlbmd0aCk6LTF9LEE6ZnVuY3Rpb24oQ2UsbXQsaHQpe3ZhciBvZT11LmV4ZWMobXQuc2xpY2UoaHQpKTtyZXR1cm4gb2U/KENlLnc9cFtvZVswXS50b0xvd2VyQ2FzZSgpXSxodCtvZVswXS5sZW5ndGgpOi0xfSxiOmZ1bmN0aW9uKENlLG10LGh0KXt2YXIgb2U9eS5leGVjKG10LnNsaWNlKGh0KSk7cmV0dXJuIG9lPyhDZS5tPXhbb2VbMF0udG9Mb3dlckNhc2UoKV0saHQrb2VbMF0ubGVuZ3RoKTotMX0sQjpmdW5jdGlvbihDZSxtdCxodCl7dmFyIG9lPV8uZXhlYyhtdC5zbGljZShodCkpO3JldHVybiBvZT8oQ2UubT1NW29lWzBdLnRvTG93ZXJDYXNlKCldLGh0K29lWzBdLmxlbmd0aCk6LTF9LGM6ZnVuY3Rpb24oQ2UsbXQsaHQpe3JldHVybiB3ZShDZSx0LG10LGh0KX0sZDpxSixlOnFKLGY6R0llLGc6V0osRzpHSixIOlhKLEk6WEosajpISWUsTDpqSWUsbTpWSWUsTTp6SWUscDpmdW5jdGlvbihDZSxtdCxodCl7dmFyIG9lPWMuZXhlYyhtdC5zbGljZShodCkpO3JldHVybiBvZT8oQ2UucD1kW29lWzBdLnRvTG93ZXJDYXNlKCldLGh0K29lWzBdLmxlbmd0aCk6LTF9LHE6QkllLFE6cUllLHM6WEllLFM6VUllLHU6a0llLFU6T0llLFY6RkllLHc6UEllLFc6TkllLHg6ZnVuY3Rpb24oQ2UsbXQsaHQpe3JldHVybiB3ZShDZSxlLG10LGh0KX0sWDpmdW5jdGlvbihDZSxtdCxodCl7cmV0dXJuIHdlKENlLGksbXQsaHQpfSx5OldKLFk6R0osWjpMSWUsIiUiOldJZX07ZnVuY3Rpb24gZWUoQ2UsbXQpe3JldHVybiBmdW5jdGlvbihodCl7dmFyIHV0LGFuLHluLG9lPVtdLGF0PS0xLFllPTAsX3Q9Q2UubGVuZ3RoO2ZvcihodCBpbnN0YW5jZW9mIERhdGV8fChodD1uZXcgRGF0ZSgraHQpKTsrK2F0PF90OykzNz09PUNlLmNoYXJDb2RlQXQoYXQpJiYob2UucHVzaChDZS5zbGljZShZZSxhdCkpLG51bGwhPShhbj1qSlt1dD1DZS5jaGFyQXQoKythdCldKT91dD1DZS5jaGFyQXQoKythdCk6YW49ImUiPT09dXQ/IiAiOiIwIiwoeW49bXRbdXRdKSYmKHV0PXluKGh0LGFuKSksb2UucHVzaCh1dCksWWU9YXQrMSk7cmV0dXJuIG9lLnB1c2goQ2Uuc2xpY2UoWWUsYXQpKSxvZS5qb2luKCIiKX19ZnVuY3Rpb24gUShDZSxtdCl7cmV0dXJuIGZ1bmN0aW9uKGh0KXt2YXIgWWUsX3Qsb2U9cXkoMTkwMCx2b2lkIDAsMSk7aWYod2Uob2UsQ2UsaHQrPSIiLDApIT1odC5sZW5ndGgpcmV0dXJuIG51bGw7aWYoIlEiaW4gb2UpcmV0dXJuIG5ldyBEYXRlKG9lLlEpO2lmKCJzImluIG9lKXJldHVybiBuZXcgRGF0ZSgxZTMqb2UucysoIkwiaW4gb2U/b2UuTDowKSk7aWYobXQmJiEoIloiaW4gb2UpJiYob2UuWj0wKSwicCJpbiBvZSYmKG9lLkg9b2UuSCUxMisxMipvZS5wKSx2b2lkIDA9PT1vZS5tJiYob2UubT0icSJpbiBvZT9vZS5xOjApLCJWImluIG9lKXtpZihvZS5WPDF8fG9lLlY+NTMpcmV0dXJuIG51bGw7InciaW4gb2V8fChvZS53PTEpLCJaImluIG9lPyhfdD0oWWU9SEwocXkob2UueSwwLDEpKSkuZ2V0VVRDRGF5KCksWWU9X3Q+NHx8MD09PV90P3AwLmNlaWwoWWUpOnAwKFllKSxZZT1GRC5vZmZzZXQoWWUsNyoob2UuVi0xKSksb2UueT1ZZS5nZXRVVENGdWxsWWVhcigpLG9lLm09WWUuZ2V0VVRDTW9udGgoKSxvZS5kPVllLmdldFVUQ0RhdGUoKSsob2Uudys2KSU3KTooX3Q9KFllPVZMKHF5KG9lLnksMCwxKSkpLmdldERheSgpLFllPV90PjR8fDA9PT1fdD91MC5jZWlsKFllKTp1MChZZSksWWU9ZDAub2Zmc2V0KFllLDcqKG9lLlYtMSkpLG9lLnk9WWUuZ2V0RnVsbFllYXIoKSxvZS5tPVllLmdldE1vbnRoKCksb2UuZD1ZZS5nZXREYXRlKCkrKG9lLncrNiklNyl9ZWxzZSgiVyJpbiBvZXx8IlUiaW4gb2UpJiYoInciaW4gb2V8fChvZS53PSJ1ImluIG9lP29lLnUlNzoiVyJpbiBvZT8xOjApLF90PSJaImluIG9lP0hMKHF5KG9lLnksMCwxKSkuZ2V0VVRDRGF5KCk6VkwocXkob2UueSwwLDEpKS5nZXREYXkoKSxvZS5tPTAsb2UuZD0iVyJpbiBvZT8ob2Uudys2KSU3Kzcqb2UuVy0oX3QrNSklNzpvZS53Kzcqb2UuVS0oX3QrNiklNyk7cmV0dXJuIloiaW4gb2U/KG9lLkgrPW9lLlovMTAwfDAsb2UuTSs9b2UuWiUxMDAsSEwob2UpKTpWTChvZSl9fWZ1bmN0aW9uIHdlKENlLG10LGh0LG9lKXtmb3IodmFyIHV0LGFuLGF0PTAsWWU9bXQubGVuZ3RoLF90PWh0Lmxlbmd0aDthdDxZZTspe2lmKG9lPj1fdClyZXR1cm4tMTtpZigzNz09PSh1dD1tdC5jaGFyQ29kZUF0KGF0KyspKSl7aWYodXQ9bXQuY2hhckF0KGF0KyspLCEoYW49Qlt1dCBpbiBqSj9tdC5jaGFyQXQoYXQrKyk6dXRdKXx8KG9lPWFuKENlLGh0LG9lKSk8MClyZXR1cm4tMX1lbHNlIGlmKHV0IT1odC5jaGFyQ29kZUF0KG9lKyspKXJldHVybi0xfXJldHVybiBvZX1yZXR1cm4gUi54PWVlKGUsUiksUi5YPWVlKGksUiksUi5jPWVlKHQsUiksSS54PWVlKGUsSSksSS5YPWVlKGksSSksSS5jPWVlKHQsSSkse2Zvcm1hdDpmdW5jdGlvbihDZSl7dmFyIG10PWVlKENlKz0iIixSKTtyZXR1cm4gbXQudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gQ2V9LG10fSxwYXJzZTpmdW5jdGlvbihDZSl7dmFyIG10PVEoQ2UrPSIiLCExKTtyZXR1cm4gbXQudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gQ2V9LG10fSx1dGNGb3JtYXQ6ZnVuY3Rpb24oQ2Upe3ZhciBtdD1lZShDZSs9IiIsSSk7cmV0dXJuIG10LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIENlfSxtdH0sdXRjUGFyc2U6ZnVuY3Rpb24oQ2Upe3ZhciBtdD1RKENlKz0iIiwhMCk7cmV0dXJuIG10LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIENlfSxtdH19fSh7ZGF0ZVRpbWU6IiV4LCAlWCIsZGF0ZToiJS1tLyUtZC8lWSIsdGltZToiJS1JOiVNOiVTICVwIixwZXJpb2RzOlsiQU0iLCJQTSJdLGRheXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLHNob3J0RGF5czpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLG1vbnRoczpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sc2hvcnRNb250aHM6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXX0pLG0wPWgwLmZvcm1hdDt2YXIgUXk9MWUzLFp5PTYwKlF5LEt5PTYwKlp5LEp5PTI0Kkt5LERBZT03Kkp5LGEkPTMwKkp5LGpMPTM2NSpKeTtmdW5jdGlvbiBJQWUobil7cmV0dXJuIG5ldyBEYXRlKG4pfWZ1bmN0aW9uIEFBZShuKXtyZXR1cm4gbiBpbnN0YW5jZW9mIERhdGU/K246K25ldyBEYXRlKCtuKX1mdW5jdGlvbiBHTChuLHQsZSxpLHIsbyxhLHMsbCl7dmFyIGM9ankoJGEsJGEpLGQ9Yy5pbnZlcnQsdT1jLmRvbWFpbixwPWwoIi4lTCIpLGg9bCgiOiVTIiksbT1sKCIlSTolTSIpLF89bCgiJUkgJXAiKSxNPWwoIiVhICVkIikseT1sKCIlYiAlZCIpLHg9bCgiJUIiKSxSPWwoIiVZIiksST1bW2EsMSxReV0sW2EsNSw1KlF5XSxbYSwxNSwxNSpReV0sW2EsMzAsMzAqUXldLFtvLDEsWnldLFtvLDUsNSpaeV0sW28sMTUsMTUqWnldLFtvLDMwLDMwKlp5XSxbciwxLEt5XSxbciwzLDMqS3ldLFtyLDYsNipLeV0sW3IsMTIsMTIqS3ldLFtpLDEsSnldLFtpLDIsMipKeV0sW2UsMSxEQWVdLFt0LDEsYSRdLFt0LDMsMyphJF0sW24sMSxqTF1dO2Z1bmN0aW9uIEIoUSl7cmV0dXJuKGEoUSk8UT9wOm8oUSk8UT9oOnIoUSk8UT9tOmkoUSk8UT9fOnQoUSk8UT9lKFEpPFE/TTp5Om4oUSk8UT94OlIpKFEpfWZ1bmN0aW9uIGVlKFEsd2UsUWUsQWUpe2lmKG51bGw9PVEmJihRPTEwKSwibnVtYmVyIj09dHlwZW9mIFEpe3ZhciBEPU1hdGguYWJzKFFlLXdlKS9RLHJlPUN5KGZ1bmN0aW9uKGNlKXtyZXR1cm4gY2VbMl19KS5yaWdodChJLEQpO3JlPT09SS5sZW5ndGg/KEFlPUlkKHdlL2pMLFFlL2pMLFEpLFE9bik6cmU/KEFlPShyZT1JW0QvSVtyZS0xXVsyXTxJW3JlXVsyXS9EP3JlLTE6cmVdKVsxXSxRPXJlWzBdKTooQWU9TWF0aC5tYXgoSWQod2UsUWUsUSksMSksUT1zKX1yZXR1cm4gbnVsbD09QWU/UTpRLmV2ZXJ5KEFlKX1yZXR1cm4gYy5pbnZlcnQ9ZnVuY3Rpb24oUSl7cmV0dXJuIG5ldyBEYXRlKGQoUSkpfSxjLmRvbWFpbj1mdW5jdGlvbihRKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD91KHp5LmNhbGwoUSxBQWUpKTp1KCkubWFwKElBZSl9LGMudGlja3M9ZnVuY3Rpb24oUSx3ZSl7dmFyIGNlLFFlPXUoKSxBZT1RZVswXSxEPVFlW1FlLmxlbmd0aC0xXSxyZT1EPEFlO3JldHVybiByZSYmKGNlPUFlLEFlPUQsRD1jZSksY2U9KGNlPWVlKFEsQWUsRCx3ZSkpP2NlLnJhbmdlKEFlLEQrMSk6W10scmU/Y2UucmV2ZXJzZSgpOmNlfSxjLnRpY2tGb3JtYXQ9ZnVuY3Rpb24oUSx3ZSl7cmV0dXJuIG51bGw9PXdlP0I6bCh3ZSl9LGMubmljZT1mdW5jdGlvbihRLHdlKXt2YXIgUWU9dSgpO3JldHVybihRPWVlKFEsUWVbMF0sUWVbUWUubGVuZ3RoLTFdLHdlKSk/dShJRChRZSxRKSk6Y30sYy5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHNwKGMsR0wobix0LGUsaSxyLG8sYSxzLGwpKX0sY31mdW5jdGlvbiBzbSgpe3JldHVybiBKYS5hcHBseShHTChPZCxOTCxybSxkMCxGTCxPTCxPRCxSRCxtMCkuZG9tYWluKFtuZXcgRGF0ZSgyZTMsMCwxKSxuZXcgRGF0ZSgyZTMsMCwyKV0pLGFyZ3VtZW50cyl9ZnVuY3Rpb24gV0woKXt0aGlzLl89bnVsbH1mdW5jdGlvbiBmMChuKXtuLlU9bi5DPW4uTD1uLlI9bi5QPW4uTj1udWxsfWZ1bmN0aW9uICR5KG4sdCl7dmFyIGU9dCxpPXQuUixyPWUuVTtyP3IuTD09PWU/ci5MPWk6ci5SPWk6bi5fPWksaS5VPXIsZS5VPWksZS5SPWkuTCxlLlImJihlLlIuVT1lKSxpLkw9ZX1mdW5jdGlvbiBleChuLHQpe3ZhciBlPXQsaT10Lkwscj1lLlU7cj9yLkw9PT1lP3IuTD1pOnIuUj1pOm4uXz1pLGkuVT1yLGUuVT1pLGUuTD1pLlIsZS5MJiYoZS5MLlU9ZSksaS5SPWV9ZnVuY3Rpb24gbCQobil7Zm9yKDtuLkw7KW49bi5MO3JldHVybiBufVdMLnByb3RvdHlwZT17Y29uc3RydWN0b3I6V0wsaW5zZXJ0OmZ1bmN0aW9uKG4sdCl7dmFyIGUsaSxyO2lmKG4pe2lmKHQuUD1uLHQuTj1uLk4sbi5OJiYobi5OLlA9dCksbi5OPXQsbi5SKXtmb3Iobj1uLlI7bi5MOyluPW4uTDtuLkw9dH1lbHNlIG4uUj10O2U9bn1lbHNlIHRoaXMuXz8obj1sJCh0aGlzLl8pLHQuUD1udWxsLHQuTj1uLG4uUD1uLkw9dCxlPW4pOih0LlA9dC5OPW51bGwsdGhpcy5fPXQsZT1udWxsKTtmb3IodC5MPXQuUj1udWxsLHQuVT1lLHQuQz0hMCxuPXQ7ZSYmZS5DOyllPT09KGk9ZS5VKS5MPyhyPWkuUikmJnIuQz8oZS5DPXIuQz0hMSxpLkM9ITAsbj1pKToobj09PWUuUiYmKCR5KHRoaXMsZSksZT0obj1lKS5VKSxlLkM9ITEsaS5DPSEwLGV4KHRoaXMsaSkpOihyPWkuTCkmJnIuQz8oZS5DPXIuQz0hMSxpLkM9ITAsbj1pKToobj09PWUuTCYmKGV4KHRoaXMsZSksZT0obj1lKS5VKSxlLkM9ITEsaS5DPSEwLCR5KHRoaXMsaSkpLGU9bi5VO3RoaXMuXy5DPSExfSxyZW1vdmU6ZnVuY3Rpb24obil7bi5OJiYobi5OLlA9bi5QKSxuLlAmJihuLlAuTj1uLk4pLG4uTj1uLlA9bnVsbDt2YXIgZSxvLGEsdD1uLlUsaT1uLkwscj1uLlI7aWYobz1pP3I/bCQocik6aTpyLHQ/dC5MPT09bj90Lkw9bzp0LlI9bzp0aGlzLl89byxpJiZyPyhhPW8uQyxvLkM9bi5DLG8uTD1pLGkuVT1vLG8hPT1yPyh0PW8uVSxvLlU9bi5VLHQuTD1uPW8uUixvLlI9cixyLlU9byk6KG8uVT10LHQ9byxuPW8uUikpOihhPW4uQyxuPW8pLG4mJihuLlU9dCksIWEpe2lmKG4mJm4uQylyZXR1cm4gdm9pZChuLkM9ITEpO2Rve2lmKG49PT10aGlzLl8pYnJlYWs7aWYobj09PXQuTCl7aWYoKGU9dC5SKS5DJiYoZS5DPSExLHQuQz0hMCwkeSh0aGlzLHQpLGU9dC5SKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXsoIWUuUnx8IWUuUi5DKSYmKGUuTC5DPSExLGUuQz0hMCxleCh0aGlzLGUpLGU9dC5SKSxlLkM9dC5DLHQuQz1lLlIuQz0hMSwkeSh0aGlzLHQpLG49dGhpcy5fO2JyZWFrfX1lbHNlIGlmKChlPXQuTCkuQyYmKGUuQz0hMSx0LkM9ITAsZXgodGhpcyx0KSxlPXQuTCksZS5MJiZlLkwuQ3x8ZS5SJiZlLlIuQyl7KCFlLkx8fCFlLkwuQykmJihlLlIuQz0hMSxlLkM9ITAsJHkodGhpcyxlKSxlPXQuTCksZS5DPXQuQyx0LkM9ZS5MLkM9ITEsZXgodGhpcyx0KSxuPXRoaXMuXzticmVha31lLkM9ITAsbj10LHQ9dC5VfXdoaWxlKCFuLkMpO24mJihuLkM9ITEpfX19O3ZhciBxTD1XTDtmdW5jdGlvbiBnMChuLHQsZSxpKXt2YXIgcj1bbnVsbCxudWxsXSxvPWtvLnB1c2gociktMTtyZXR1cm4gci5sZWZ0PW4sci5yaWdodD10LGUmJnR4KHIsbix0LGUpLGkmJnR4KHIsdCxuLGkpLHhhW24uaW5kZXhdLmhhbGZlZGdlcy5wdXNoKG8pLHhhW3QuaW5kZXhdLmhhbGZlZGdlcy5wdXNoKG8pLHJ9ZnVuY3Rpb24gXzAobix0LGUpe3ZhciBpPVt0LGVdO3JldHVybiBpLmxlZnQ9bixpfWZ1bmN0aW9uIHR4KG4sdCxlLGkpe25bMF18fG5bMV0/bi5sZWZ0PT09ZT9uWzFdPWk6blswXT1pOihuWzBdPWksbi5sZWZ0PXQsbi5yaWdodD1lKX1mdW5jdGlvbiBrQWUobix0LGUsaSxyKXt2YXIgXyxvPW5bMF0sYT1uWzFdLHM9b1swXSxsPW9bMV0sdT0wLHA9MSxoPWFbMF0tcyxtPWFbMV0tbDtpZihfPXQtcyxofHwhKF8+MCkpe2lmKF8vPWgsaDwwKXtpZihfPHUpcmV0dXJuO188cCYmKHA9Xyl9ZWxzZSBpZihoPjApe2lmKF8+cClyZXR1cm47Xz51JiYodT1fKX1pZihfPWktcyxofHwhKF88MCkpe2lmKF8vPWgsaDwwKXtpZihfPnApcmV0dXJuO18+dSYmKHU9Xyl9ZWxzZSBpZihoPjApe2lmKF88dSlyZXR1cm47XzxwJiYocD1fKX1pZihfPWUtbCxtfHwhKF8+MCkpe2lmKF8vPW0sbTwwKXtpZihfPHUpcmV0dXJuO188cCYmKHA9Xyl9ZWxzZSBpZihtPjApe2lmKF8+cClyZXR1cm47Xz51JiYodT1fKX1pZihfPXItbCxtfHwhKF88MCkpe2lmKF8vPW0sbTwwKXtpZihfPnApcmV0dXJuO18+dSYmKHU9Xyl9ZWxzZSBpZihtPjApe2lmKF88dSlyZXR1cm47XzxwJiYocD1fKX1yZXR1cm4hKHU+MCkmJiEocDwxKXx8KHU+MCYmKG5bMF09W3MrdSpoLGwrdSptXSkscDwxJiYoblsxXT1bcytwKmgsbCtwKm1dKSksITB9fX19fWZ1bmN0aW9uIE9BZShuLHQsZSxpLHIpe3ZhciBvPW5bMV07aWYobylyZXR1cm4hMDt2YXIgXyxNLGE9blswXSxzPW4ubGVmdCxsPW4ucmlnaHQsYz1zWzBdLGQ9c1sxXSx1PWxbMF0scD1sWzFdLGg9KGMrdSkvMjtpZihwPT09ZCl7aWYoaDx0fHxoPj1pKXJldHVybjtpZihjPnUpe2lmKGEpe2lmKGFbMV0+PXIpcmV0dXJufWVsc2UgYT1baCxlXTtvPVtoLHJdfWVsc2V7aWYoYSl7aWYoYVsxXTxlKXJldHVybn1lbHNlIGE9W2gscl07bz1baCxlXX19ZWxzZSBpZihNPShkK3ApLzItKF89KGMtdSkvKHAtZCkpKmgsXzwtMXx8Xz4xKWlmKGM+dSl7aWYoYSl7aWYoYVsxXT49cilyZXR1cm59ZWxzZSBhPVsoZS1NKS9fLGVdO289WyhyLU0pL18scl19ZWxzZXtpZihhKXtpZihhWzFdPGUpcmV0dXJufWVsc2UgYT1bKHItTSkvXyxyXTtvPVsoZS1NKS9fLGVdfWVsc2UgaWYoZDxwKXtpZihhKXtpZihhWzBdPj1pKXJldHVybn1lbHNlIGE9W3QsXyp0K01dO289W2ksXyppK01dfWVsc2V7aWYoYSl7aWYoYVswXTx0KXJldHVybn1lbHNlIGE9W2ksXyppK01dO289W3QsXyp0K01dfXJldHVybiBuWzBdPWEsblsxXT1vLCEwfWZ1bmN0aW9uIEZBZShuLHQpe3ZhciBlPW4uc2l0ZSxpPXQubGVmdCxyPXQucmlnaHQ7cmV0dXJuIGU9PT1yJiYocj1pLGk9ZSkscj9NYXRoLmF0YW4yKHJbMV0taVsxXSxyWzBdLWlbMF0pOihlPT09aT8oaT10WzFdLHI9dFswXSk6KGk9dFswXSxyPXRbMV0pLE1hdGguYXRhbjIoaVswXS1yWzBdLHJbMV0taVsxXSkpfWZ1bmN0aW9uIFhMKG4sdCl7cmV0dXJuIHRbKyh0LmxlZnQhPT1uLnNpdGUpXX1mdW5jdGlvbiBOQWUobix0KXtyZXR1cm4gdFsrKHQubGVmdD09PW4uc2l0ZSldfXZhciBORCxoJD1bXTtmdW5jdGlvbiBMQWUoKXtmMCh0aGlzKSx0aGlzLng9dGhpcy55PXRoaXMuYXJjPXRoaXMuc2l0ZT10aGlzLmN5PW51bGx9ZnVuY3Rpb24gbG0obil7dmFyIHQ9bi5QLGU9bi5OO2lmKHQmJmUpe3ZhciBpPXQuc2l0ZSxyPW4uc2l0ZSxvPWUuc2l0ZTtpZihpIT09byl7dmFyIGE9clswXSxzPXJbMV0sbD1pWzBdLWEsYz1pWzFdLXMsZD1vWzBdLWEsdT1vWzFdLXMscD0yKihsKnUtYypkKTtpZighKHA+PS1tJCkpe3ZhciBoPWwqbCtjKmMsbT1kKmQrdSp1LF89KHUqaC1jKm0pL3AsTT0obCptLWQqaCkvcCx5PWgkLnBvcCgpfHxuZXcgTEFlO3kuYXJjPW4seS5zaXRlPXIseS54PV8rYSx5Lnk9KHkuY3k9TStzKStNYXRoLnNxcnQoXypfK00qTSksbi5jaXJjbGU9eTtmb3IodmFyIHg9bnVsbCxSPWIwLl87UjspaWYoeS55PFIueXx8eS55PT09Ui55JiZ5Lng8PVIueCl7aWYoIVIuTCl7eD1SLlA7YnJlYWt9Uj1SLkx9ZWxzZXtpZighUi5SKXt4PVI7YnJlYWt9Uj1SLlJ9YjAuaW5zZXJ0KHgseSkseHx8KE5EPXkpfX19fWZ1bmN0aW9uIGNtKG4pe3ZhciB0PW4uY2lyY2xlO3QmJih0LlB8fChORD10Lk4pLGIwLnJlbW92ZSh0KSxoJC5wdXNoKHQpLGYwKHQpLG4uY2lyY2xlPW51bGwpfXZhciBnJD1bXTtmdW5jdGlvbiBCQWUoKXtmMCh0aGlzKSx0aGlzLmVkZ2U9dGhpcy5zaXRlPXRoaXMuY2lyY2xlPW51bGx9ZnVuY3Rpb24gZiQobil7dmFyIHQ9ZyQucG9wKCl8fG5ldyBCQWU7cmV0dXJuIHQuc2l0ZT1uLHR9ZnVuY3Rpb24gWUwobil7Y20obiksZG0ucmVtb3ZlKG4pLGckLnB1c2gobiksZjAobil9ZnVuY3Rpb24gXyQobil7dmFyIHQ9bi5jaXJjbGUsZT10LngsaT10LmN5LHI9W2UsaV0sbz1uLlAsYT1uLk4scz1bbl07WUwobik7Zm9yKHZhciBsPW87bC5jaXJjbGUmJk1hdGguYWJzKGUtbC5jaXJjbGUueCk8SmkmJk1hdGguYWJzKGktbC5jaXJjbGUuY3kpPEppOylvPWwuUCxzLnVuc2hpZnQobCksWUwobCksbD1vO3MudW5zaGlmdChsKSxjbShsKTtmb3IodmFyIGM9YTtjLmNpcmNsZSYmTWF0aC5hYnMoZS1jLmNpcmNsZS54KTxKaSYmTWF0aC5hYnMoaS1jLmNpcmNsZS5jeSk8Smk7KWE9Yy5OLHMucHVzaChjKSxZTChjKSxjPWE7cy5wdXNoKGMpLGNtKGMpO3ZhciB1LGQ9cy5sZW5ndGg7Zm9yKHU9MTt1PGQ7Kyt1KXR4KChjPXNbdV0pLmVkZ2UsKGw9c1t1LTFdKS5zaXRlLGMuc2l0ZSxyKTsoYz1zW2QtMV0pLmVkZ2U9ZzAoKGw9c1swXSkuc2l0ZSxjLnNpdGUsbnVsbCxyKSxsbShsKSxsbShjKX1mdW5jdGlvbiBiJChuKXtmb3IodmFyIGkscixvLGEsdD1uWzBdLGU9blsxXSxzPWRtLl87czspaWYoKG89diQocyxlKS10KT5KaSlzPXMuTDtlbHNle2lmKCEoKGE9dC1WQWUocyxlKSk+SmkpKXtvPi1KaT8oaT1zLlAscj1zKTphPi1KaT8oaT1zLHI9cy5OKTppPXI9czticmVha31pZighcy5SKXtpPXM7YnJlYWt9cz1zLlJ9IWZ1bmN0aW9uKG4pe3hhW24uaW5kZXhdPXtzaXRlOm4saGFsZmVkZ2VzOltdfX0obik7dmFyIGw9ZiQobik7aWYoZG0uaW5zZXJ0KGksbCksaXx8cil7aWYoaT09PXIpcmV0dXJuIGNtKGkpLHI9ZiQoaS5zaXRlKSxkbS5pbnNlcnQobCxyKSxsLmVkZ2U9ci5lZGdlPWcwKGkuc2l0ZSxsLnNpdGUpLGxtKGkpLHZvaWQgbG0ocik7aWYoIXIpcmV0dXJuIHZvaWQobC5lZGdlPWcwKGkuc2l0ZSxsLnNpdGUpKTtjbShpKSxjbShyKTt2YXIgYz1pLnNpdGUsZD1jWzBdLHU9Y1sxXSxwPW5bMF0tZCxoPW5bMV0tdSxtPXIuc2l0ZSxfPW1bMF0tZCxNPW1bMV0tdSx5PTIqKHAqTS1oKl8pLHg9cCpwK2gqaCxSPV8qXytNKk0sST1bKE0qeC1oKlIpL3krZCwocCpSLV8qeCkveSt1XTt0eChyLmVkZ2UsYyxtLEkpLGwuZWRnZT1nMChjLG4sbnVsbCxJKSxyLmVkZ2U9ZzAobixtLG51bGwsSSksbG0oaSksbG0ocil9fWZ1bmN0aW9uIHYkKG4sdCl7dmFyIGU9bi5zaXRlLGk9ZVswXSxyPWVbMV0sbz1yLXQ7aWYoIW8pcmV0dXJuIGk7dmFyIGE9bi5QO2lmKCFhKXJldHVybi0xLzA7dmFyIHM9KGU9YS5zaXRlKVswXSxsPWVbMV0sYz1sLXQ7aWYoIWMpcmV0dXJuIHM7dmFyIGQ9cy1pLHU9MS9vLTEvYyxwPWQvYztyZXR1cm4gdT8oLXArTWF0aC5zcXJ0KHAqcC0yKnUqKGQqZC8oLTIqYyktbCtjLzIrci1vLzIpKSkvdStpOihpK3MpLzJ9ZnVuY3Rpb24gVkFlKG4sdCl7dmFyIGU9bi5OO2lmKGUpcmV0dXJuIHYkKGUsdCk7dmFyIGk9bi5zaXRlO3JldHVybiBpWzFdPT09dD9pWzBdOjEvMH12YXIgZG0seGEsYjAsa28sSmk9MWUtNixtJD0xZS0xMjtmdW5jdGlvbiBIQWUobix0LGUpe3JldHVybihuWzBdLWVbMF0pKih0WzFdLW5bMV0pLShuWzBdLXRbMF0pKihlWzFdLW5bMV0pfWZ1bmN0aW9uIHpBZShuLHQpe3JldHVybiB0WzFdLW5bMV18fHRbMF0tblswXX1mdW5jdGlvbiBMRChuLHQpe3ZhciBpLHIsbyxlPW4uc29ydCh6QWUpLnBvcCgpO2Zvcihrbz1bXSx4YT1uZXcgQXJyYXkobi5sZW5ndGgpLGRtPW5ldyBxTCxiMD1uZXcgcUw7OylpZihvPU5ELGUmJighb3x8ZVsxXTxvLnl8fGVbMV09PT1vLnkmJmVbMF08by54KSkoZVswXSE9PWl8fGVbMV0hPT1yKSYmKGIkKGUpLGk9ZVswXSxyPWVbMV0pLGU9bi5wb3AoKTtlbHNle2lmKCFvKWJyZWFrO18kKG8uYXJjKX1pZihmdW5jdGlvbigpe2Zvcih2YXIgZSxpLHIsbyxuPTAsdD14YS5sZW5ndGg7bjx0OysrbilpZigoZT14YVtuXSkmJihvPShpPWUuaGFsZmVkZ2VzKS5sZW5ndGgpKXt2YXIgYT1uZXcgQXJyYXkobykscz1uZXcgQXJyYXkobyk7Zm9yKHI9MDtyPG87KytyKWFbcl09cixzW3JdPUZBZShlLGtvW2lbcl1dKTtmb3IoYS5zb3J0KGZ1bmN0aW9uKGwsYyl7cmV0dXJuIHNbY10tc1tsXX0pLHI9MDtyPG87KytyKXNbcl09aVthW3JdXTtmb3Iocj0wO3I8bzsrK3IpaVtyXT1zW3JdfX0oKSx0KXt2YXIgYT0rdFswXVswXSxzPSt0WzBdWzFdLGw9K3RbMV1bMF0sYz0rdFsxXVsxXTsoZnVuY3Rpb24obix0LGUsaSl7Zm9yKHZhciBvLHI9a28ubGVuZ3RoO3ItLTspT0FlKG89a29bcl0sbix0LGUsaSkmJmtBZShvLG4sdCxlLGkpJiYoTWF0aC5hYnMob1swXVswXS1vWzFdWzBdKT5KaXx8TWF0aC5hYnMob1swXVsxXS1vWzFdWzFdKT5KaSl8fGRlbGV0ZSBrb1tyXX0pKGEscyxsLGMpLGZ1bmN0aW9uKG4sdCxlLGkpe3ZhciBvLGEscyxsLGMsZCx1LHAsaCxtLF8sTSxyPXhhLmxlbmd0aCx5PSEwO2ZvcihvPTA7bzxyOysrbylpZihhPXhhW29dKXtmb3Iocz1hLnNpdGUsbD0oYz1hLmhhbGZlZGdlcykubGVuZ3RoO2wtLTspa29bY1tsXV18fGMuc3BsaWNlKGwsMSk7Zm9yKGw9MCxkPWMubGVuZ3RoO2w8ZDspXz0obT1OQWUoYSxrb1tjW2xdXSkpWzBdLE09bVsxXSxwPSh1PVhMKGEsa29bY1srK2wlZF1dKSlbMF0saD11WzFdLChNYXRoLmFicyhfLXApPkppfHxNYXRoLmFicyhNLWgpPkppKSYmKGMuc3BsaWNlKGwsMCxrby5wdXNoKF8wKHMsbSxNYXRoLmFicyhfLW4pPEppJiZpLU0+Smk/W24sTWF0aC5hYnMocC1uKTxKaT9oOmldOk1hdGguYWJzKE0taSk8SmkmJmUtXz5KaT9bTWF0aC5hYnMoaC1pKTxKaT9wOmUsaV06TWF0aC5hYnMoXy1lKTxKaSYmTS10PkppP1tlLE1hdGguYWJzKHAtZSk8Smk/aDp0XTpNYXRoLmFicyhNLXQpPEppJiZfLW4+Smk/W01hdGguYWJzKGgtdCk8Smk/cDpuLHRdOm51bGwpKS0xKSwrK2QpO2QmJih5PSExKX1pZih5KXt2YXIgeCxSLEksQj0xLzA7Zm9yKG89MCx5PW51bGw7bzxyOysrbykoYT14YVtvXSkmJihJPSh4PShzPWEuc2l0ZSlbMF0tbikqeCsoUj1zWzFdLXQpKlIpPEImJihCPUkseT1hKTtpZih5KXt2YXIgZWU9W24sdF0sUT1bbixpXSx3ZT1bZSxpXSxRZT1bZSx0XTt5LmhhbGZlZGdlcy5wdXNoKGtvLnB1c2goXzAocz15LnNpdGUsZWUsUSkpLTEsa28ucHVzaChfMChzLFEsd2UpKS0xLGtvLnB1c2goXzAocyx3ZSxRZSkpLTEsa28ucHVzaChfMChzLFFlLGVlKSktMSl9fWZvcihvPTA7bzxyOysrbykoYT14YVtvXSkmJihhLmhhbGZlZGdlcy5sZW5ndGh8fGRlbGV0ZSB4YVtvXSl9KGEscyxsLGMpfXRoaXMuZWRnZXM9a28sdGhpcy5jZWxscz14YSxkbT1iMD1rbz14YT1udWxsfWZ1bmN0aW9uIHVtKG4sdCxlKXt0aGlzLms9bix0aGlzLng9dCx0aGlzLnk9ZX1MRC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkxELHBvbHlnb25zOmZ1bmN0aW9uKCl7dmFyIG49dGhpcy5lZGdlcztyZXR1cm4gdGhpcy5jZWxscy5tYXAoZnVuY3Rpb24odCl7dmFyIGU9dC5oYWxmZWRnZXMubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBYTCh0LG5baV0pfSk7cmV0dXJuIGUuZGF0YT10LnNpdGUuZGF0YSxlfSl9LHRyaWFuZ2xlczpmdW5jdGlvbigpe3ZhciBuPVtdLHQ9dGhpcy5lZGdlcztyZXR1cm4gdGhpcy5jZWxscy5mb3JFYWNoKGZ1bmN0aW9uKGUsaSl7aWYocz0obz1lLmhhbGZlZGdlcykubGVuZ3RoKWZvcih2YXIgbyxzLGwscj1lLnNpdGUsYT0tMSxjPXRbb1tzLTFdXSxkPWMubGVmdD09PXI/Yy5yaWdodDpjLmxlZnQ7KythPHM7KWw9ZCxkPShjPXRbb1thXV0pLmxlZnQ9PT1yP2MucmlnaHQ6Yy5sZWZ0LGwmJmQmJmk8bC5pbmRleCYmaTxkLmluZGV4JiZIQWUocixsLGQpPDAmJm4ucHVzaChbci5kYXRhLGwuZGF0YSxkLmRhdGFdKX0pLG59LGxpbmtzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRnZXMuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBuLnJpZ2h0fSkubWFwKGZ1bmN0aW9uKG4pe3JldHVybntzb3VyY2U6bi5sZWZ0LmRhdGEsdGFyZ2V0Om4ucmlnaHQuZGF0YX19KX0sZmluZDpmdW5jdGlvbihuLHQsZSl7Zm9yKHZhciByLHMsaT10aGlzLG89aS5fZm91bmR8fDAsYT1pLmNlbGxzLmxlbmd0aDshKHM9aS5jZWxsc1tvXSk7KWlmKCsrbz49YSlyZXR1cm4gbnVsbDt2YXIgbD1uLXMuc2l0ZVswXSxjPXQtcy5zaXRlWzFdLGQ9bCpsK2MqYztkb3tzPWkuY2VsbHNbcj1vXSxvPW51bGwscy5oYWxmZWRnZXMuZm9yRWFjaChmdW5jdGlvbih1KXt2YXIgcD1pLmVkZ2VzW3VdLGg9cC5sZWZ0O2lmKGghPT1zLnNpdGUmJmh8fChoPXAucmlnaHQpKXt2YXIgbT1uLWhbMF0sXz10LWhbMV0sTT1tKm0rXypfO008ZCYmKGQ9TSxvPWguaW5kZXgpfX0pfXdoaWxlKG51bGwhPT1vKTtyZXR1cm4gaS5fZm91bmQ9cixudWxsPT1lfHxkPD1lKmU/cy5zaXRlOm51bGx9fSx1bS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnVtLHNjYWxlOmZ1bmN0aW9uKG4pe3JldHVybiAxPT09bj90aGlzOm5ldyB1bSh0aGlzLmsqbix0aGlzLngsdGhpcy55KX0sdHJhbnNsYXRlOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIDA9PT1uJjA9PT10P3RoaXM6bmV3IHVtKHRoaXMuayx0aGlzLngrdGhpcy5rKm4sdGhpcy55K3RoaXMuayp0KX0sYXBwbHk6ZnVuY3Rpb24obil7cmV0dXJuW25bMF0qdGhpcy5rK3RoaXMueCxuWzFdKnRoaXMuayt0aGlzLnldfSxhcHBseVg6ZnVuY3Rpb24obil7cmV0dXJuIG4qdGhpcy5rK3RoaXMueH0sYXBwbHlZOmZ1bmN0aW9uKG4pe3JldHVybiBuKnRoaXMuayt0aGlzLnl9LGludmVydDpmdW5jdGlvbihuKXtyZXR1cm5bKG5bMF0tdGhpcy54KS90aGlzLmssKG5bMV0tdGhpcy55KS90aGlzLmtdfSxpbnZlcnRYOmZ1bmN0aW9uKG4pe3JldHVybihuLXRoaXMueCkvdGhpcy5rfSxpbnZlcnRZOmZ1bmN0aW9uKG4pe3JldHVybihuLXRoaXMueSkvdGhpcy5rfSxyZXNjYWxlWDpmdW5jdGlvbihuKXtyZXR1cm4gbi5jb3B5KCkuZG9tYWluKG4ucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRYLHRoaXMpLm1hcChuLmludmVydCxuKSl9LHJlc2NhbGVZOmZ1bmN0aW9uKG4pe3JldHVybiBuLmNvcHkoKS5kb21haW4obi5yYW5nZSgpLm1hcCh0aGlzLmludmVydFksdGhpcykubWFwKG4uaW52ZXJ0LG4pKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNsYXRlKCIrdGhpcy54KyIsIit0aGlzLnkrIikgc2NhbGUoIit0aGlzLmsrIikifX0sbmV3IHVtKDEsMCwwKTt2YXIgaTM9MWU0LHIzPS4wMDEsTSQ9WXIoIi4yfmUiKSxVQWU9WXIoIi40fnIiKSx5JD1ZcigiLH4iKTtmdW5jdGlvbiB4JChuKXtpZigwPT09bilyZXR1cm4iMCI7bGV0IHQ9TWF0aC5hYnMobik7cmV0dXJuIHQ+PWkzfHx0PHIzP00kKG4pOlVBZShuKX12YXIgZHA9e2Zvcm1hdFRpY2s6eCQsZm9ybWF0U2hvcnQ6eCQsZm9ybWF0UmVhZGFibGUobil7bGV0IHQ9TWF0aC5hYnMobik7cmV0dXJuIHQ+PWkzfHx0PHIzP00kKG4pOnkkKG4pfSxmb3JtYXRMb25nOnkkfSxqQWU9bmV3IEludGwuTnVtYmVyRm9ybWF0KHZvaWQgMCx7bWF4aW11bUZyYWN0aW9uRGlnaXRzOjR9KTtmdW5jdGlvbiBCRChuKXtyZXR1cm4gakFlLmZvcm1hdChuKX12YXIgeTA9e2Zvcm1hdFRpY2s6QkQsZm9ybWF0U2hvcnQ6QkQsZm9ybWF0UmVhZGFibGU6QkQsZm9ybWF0TG9uZzpCRH0sR0FlPVlyKCIwLjN+cyIpLFdBZT1ZcigiLC4zfmYiKTtmdW5jdGlvbiBWRChuKXtsZXQgdD1NYXRoLmFicyhuKTtyZXR1cm4gdD49aTN8fHQ8cjM/R0FlKG4pOldBZShuKX12YXIgbzM9e2Zvcm1hdFRpY2s6VkQsZm9ybWF0U2hvcnQ6VkQsZm9ybWF0UmVhZGFibGU6VkQsZm9ybWF0TG9uZzpWRH0sJEw9MWUzLGUzPTYwKiRMLHQzPTYwKmUzLG4zPTI0KnQzLEMkPTM2NSpuMyx2MD1ZcigiLjR+Iik7ZnVuY3Rpb24gSEQobil7aWYoMD09PW4pcmV0dXJuIjAiO2xldCB0PU1hdGguc2lnbihuKT4wPyIiOiItIixlPU1hdGguYWJzKG4pO3JldHVybiB0Kz1lPCRMP2Ake3YwKGUpfSBtc2A6ZTxlMz9gJHt2MChlLyRMKX0gc2VjYDplPHQzP2Ake3YwKGUvZTMpfSBtaW5gOmU8bjM/YCR7djAoZS90Myl9IGhyYDplPEMkP2Ake3YwKGUvbjMpfSBkYXlgOmAke3YwKGUvQyQpfSB5cmAsdH12YXIgSkwseDA9e2Zvcm1hdFRpY2s6SEQsZm9ybWF0U2hvcnQ6SEQsZm9ybWF0UmVhZGFibGU6SEQsZm9ybWF0TG9uZzpIRH0scUFlPXNtKCkudGlja0Zvcm1hdCgpLHckPXtmb3JtYXRUaWNrOm49PnFBZShuZXcgRGF0ZShuKSksZm9ybWF0U2hvcnQ6bj0+bmV3IERhdGUobikudG9Mb2NhbGVTdHJpbmcoSkwse3llYXI6Im51bWVyaWMiLG1vbnRoOiJzaG9ydCIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyJ9KSxmb3JtYXRSZWFkYWJsZTpuPT5uZXcgRGF0ZShuKS50b0xvY2FsZVN0cmluZyhKTCx7eWVhcjoibnVtZXJpYyIsbW9udGg6InNob3J0IixkYXk6Im51bWVyaWMiLGhvdXI6Im51bWVyaWMiLG1pbnV0ZToibnVtZXJpYyIsc2Vjb25kOiJudW1lcmljIix0aW1lWm9uZU5hbWU6InNob3J0In0pLGZvcm1hdExvbmc6bj0+bmV3IERhdGUobikudG9Mb2NhbGVTdHJpbmcoSkwse3llYXI6Im51bWVyaWMiLG1vbnRoOiJsb25nIixkYXk6Im51bWVyaWMiLGhvdXI6Im51bWVyaWMiLG1pbnV0ZToibnVtZXJpYyIsc2Vjb25kOiJudW1lcmljIix0aW1lWm9uZU5hbWU6InNob3J0IixmcmFjdGlvbmFsU2Vjb25kRGlnaXRzOjN9KX07ZnVuY3Rpb24gVWwobil7c3dpdGNoKG4pe2Nhc2UgdHIuTElORUFSOnJldHVybiBuZXcgbng7Y2FzZSB0ci5MT0cxMDpyZXR1cm4gbmV3IGEzO2Nhc2UgdHIuVElNRTpyZXR1cm4gbmV3IGl4O2RlZmF1bHQ6dGhyb3cgbmV3IFJhbmdlRXJyb3IoYFNjYWxlVHlwZSAke259IG5vdCBzdXBwb3J0ZWQuYCl9fXZhciBueD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZGVmYXVsdEZvcm1hdHRlcj1kcH10cmFuc2Zvcm0odCxlLGkpe2xldFtyLG9dPXQsYT1vLXIsW3MsbF09ZTtyZXR1cm4gMD09PWE/czoobC1zKS9hKihpLXIpK3N9Zm9yd2FyZCh0LGUsaSl7cmV0dXJuIHRoaXMudHJhbnNmb3JtKHQsZSxpKX1yZXZlcnNlKHQsZSxpKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0oZSx0LGkpfW5pY2VEb21haW4odCl7bGV0W2UsaV09dDtpZihpPGUpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGlucHV0OiBtaW4gaXMgbGFyZ2VyIHRoYW4gbWF4Iik7aWYoaT09PWUpcmV0dXJuIDA9PT1lP1stMSwxXTplPDA/WzIqZSwwXTpbMCwyKmVdO2xldCByPXpsKCksbz0uMDUqKGktZStOdW1iZXIuRVBTSUxPTiksW2Esc109ci5kb21haW4oW2UtbyxpK29dKS5uaWNlKCkuZG9tYWluKCk7cmV0dXJuW2Esc119dGlja3ModCxlKXtyZXR1cm4gemwoKS5kb21haW4odCkudGlja3MoZSl9aXNTYWZlTnVtYmVyKHQpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUodCl9fSxhMz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZGVmYXVsdEZvcm1hdHRlcj1kcH10cmFuc2Zvcm0odCl7cmV0dXJuIE1hdGgubG9nMTAodD4wP3Q6TnVtYmVyLk1JTl9WQUxVRSl9dW50cmFuc2Zvcm0odCl7cmV0dXJuIE1hdGguZXhwKHQvTWF0aC5MT0cxMEUpfWZvcndhcmQodCxlLGkpe2lmKGk8PTApcmV0dXJuIGVbMF07bGV0W3Isb109dCxbYSxzXT1lLGw9dGhpcy50cmFuc2Zvcm0ociksZD10aGlzLnRyYW5zZm9ybShvKS1sLHU9cy1hO3JldHVybiBpPXRoaXMudHJhbnNmb3JtKGkpLHUvKGQrTnVtYmVyLkVQU0lMT04pKihpLWwpK2F9cmV2ZXJzZSh0LGUsaSl7bGV0W3Isb109dCxbYSxzXT1lLGw9dGhpcy50cmFuc2Zvcm0ociksZD10aGlzLnRyYW5zZm9ybShvKS1sO3JldHVybiB0aGlzLnVudHJhbnNmb3JtKGQvKHMtYStOdW1iZXIuRVBTSUxPTikqKGktYSkrbCl9bmljZURvbWFpbih0KXtsZXRbZSxpXT10O2lmKGU+aSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgaW5wdXQ6IG1pbiBpcyBsYXJnZXIgdGhhbiBtYXgiKTtsZXQgcj1NYXRoLm1heChlLE51bWJlci5NSU5fVkFMVUUpLG89TWF0aC5tYXgoaSxOdW1iZXIuTUlOX1ZBTFVFKTtyZXR1cm4gaTw9MD9bTnVtYmVyLk1JTl9WQUxVRSwxXTpbTWF0aC5tYXgoTnVtYmVyLk1JTl9WQUxVRSwuNSpyKSwyKm9dfXRpY2tzKHQsZSl7bGV0IGk9dFswXTw9MD9OdW1iZXIuTUlOX1ZBTFVFOnRbMF0scj10WzFdPD0wP051bWJlci5NSU5fVkFMVUU6dFsxXSxvPUd5KCkuZG9tYWluKFtpLHJdKS50aWNrcyhlKTtyZXR1cm4gby5sZW5ndGg/bzp0fWlzU2FmZU51bWJlcih0KXtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHQpJiZ0PjB9fSxpeD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc2NhbGU9c20oKSx0aGlzLmRlZmF1bHRGb3JtYXR0ZXI9dyR9Zm9yd2FyZCh0LGUsaSl7cmV0dXJuIHRoaXMuc2NhbGUuZG9tYWluKHQpLnJhbmdlKGUpKGkpfXJldmVyc2UodCxlLGkpe3JldHVybiB0aGlzLnNjYWxlLmRvbWFpbih0KS5yYW5nZShlKS5pbnZlcnQoaSkuZ2V0VGltZSgpfW5pY2VEb21haW4odCl7bGV0W2UsaV09dGhpcy5zY2FsZS5kb21haW4odCkubmljZSgpLmRvbWFpbigpO3JldHVybltlLmdldFRpbWUoKSxpLmdldFRpbWUoKV19dGlja3ModCxlKXtyZXR1cm4gdGhpcy5zY2FsZS5kb21haW4odCkudGlja3MoZSkubWFwKGk9PmkuZ2V0VGltZSgpKX1pc1NhZmVOdW1iZXIodCl7cmV0dXJuIE51bWJlci5pc0Zpbml0ZSh0KX19LHMzPSExO2lmKHNlbGYuaGFzT3duUHJvcGVydHkoIldlYkdMMlJlbmRlcmluZ0NvbnRleHQiKSYmc2VsZi5oYXNPd25Qcm9wZXJ0eSgiZG9jdW1lbnQiKSl7bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7bi5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRjcmVhdGlvbmVycm9yIiwoKT0+e3MzPSExfSk7bGV0IHQ9bi5nZXRDb250ZXh0KCJ3ZWJnbDIiKTtzMz1Cb29sZWFuKHQpfXZhciBqbF9jb252ZXJ0UmVjdFRvRXh0ZW50PWZ1bmN0aW9uKG4pe3JldHVybnt4OltuLngsbi54K24ud2lkdGhdLHk6W24ueSxuLnkrbi5oZWlnaHRdfX0samxfaXNXZWJHbDJTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gczN9LGpsX2lzV2ViR2wyT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7aWYoIXNlbGYuaGFzT3duUHJvcGVydHkoIk9mZnNjcmVlbkNhbnZhcyIpKXJldHVybiExO2xldCBuPW5ldyBPZmZzY3JlZW5DYW52YXMoMCwwKS5nZXRDb250ZXh0KCJ3ZWJnbDIiKTtyZXR1cm4gQm9vbGVhbihuKX0samxfYXJlUG9seWxpbmVzRXF1YWw9ZnVuY3Rpb24obix0KXtpZihuLmxlbmd0aCE9PXQubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgZT0wO2U8bi5sZW5ndGg7ZSsrKWlmKG5bZV0hPT10W2VdKXJldHVybiExO3JldHVybiEwfSxDMD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMueFNjYWxlPVVsKHRyLkxJTkVBUiksdGhpcy55U2NhbGU9VWwodHIuTElORUFSKSx0aGlzLmRvbUNvbnRhaW5lclJlY3Q9e3g6MCx3aWR0aDoxLHk6MCxoZWlnaHQ6MX0sdGhpcy5sYXN0VXBkYXRlZD0wLHRoaXMuY3VycmVudFZpZXdCb3hSZWN0PXt4OjAsd2lkdGg6MSx5OjAsaGVpZ2h0OjF9fWdldFVwZGF0ZUlkZW50aWZpZXIoKXtyZXR1cm4gdGhpcy5sYXN0VXBkYXRlZH11cGRhdGVJZGVudGlmaWVyKCl7dGhpcy5sYXN0VXBkYXRlZCsrfWlzWUF4aXNQb2ludGVkRG93bigpe3JldHVybiEwfXNldFhTY2FsZSh0KXt0aGlzLnhTY2FsZT10LHRoaXMudXBkYXRlSWRlbnRpZmllcigpfXNldFlTY2FsZSh0KXt0aGlzLnlTY2FsZT10LHRoaXMudXBkYXRlSWRlbnRpZmllcigpfWdldEN1cnJlbnRWaWV3Qm94UmVjdCgpe3JldHVybiB0aGlzLmN1cnJlbnRWaWV3Qm94UmVjdH1zZXRWaWV3Qm94UmVjdCh0KXt0aGlzLmN1cnJlbnRWaWV3Qm94UmVjdD10LHRoaXMudXBkYXRlSWRlbnRpZmllcigpfXNldERvbUNvbnRhaW5lclJlY3QodCl7dGhpcy5kb21Db250YWluZXJSZWN0PXQsdGhpcy51cGRhdGVJZGVudGlmaWVyKCl9dHJhbnNmb3JtRGF0YVRvVWlDb29yZCh0LGUpe2xldCBpPXQscj1qbF9jb252ZXJ0UmVjdFRvRXh0ZW50KHRoaXMuY3VycmVudFZpZXdCb3hSZWN0KTtyZXR1cm5bdGhpcy54U2NhbGUuZm9yd2FyZChyLngsW2kueCxpLngraS53aWR0aF0sZVswXSksdGhpcy55U2NhbGUuZm9yd2FyZChyLnksdGhpcy5pc1lBeGlzUG9pbnRlZERvd24oKT9baS55K2kuaGVpZ2h0LGkueV06W2kueSxpLnkraS5oZWlnaHRdLGVbMV0pXX19O2Z1bmN0aW9uIHpEKG4sdCxlLGkpe2xldHtjb2xvcjpyLHZpc2libGU6byxvcGFjaXR5OmF9PWkscz1uO3JldHVybiBzfHxvPyhzPXM/P3QoKSxzPWUocykscy5zdHlsZS5kaXNwbGF5PW8/IiI6Im5vbmUiLHMuc3R5bGUuc3Ryb2tlPXIscy5zdHlsZS5vcGFjaXR5PVN0cmluZyhhPz8xKSxzKTpudWxsfXZhciBzVj0iMTM3IiwkQWU9MCxTJD0xLGVSZT0yLHN0ZT0xLHRSZT0yLG14PTMseXg9MCxibz0xLFowPTIsdnA9MCxneD0xLEUkPTIsVCQ9MyxEJD00LG5SZT01LFUwPTEwMCxpUmU9MTAxLHJSZT0xMDIsSSQ9MTAzLEEkPTEwNCxvUmU9MjAwLGFSZT0yMDEsc1JlPTIwMixsUmU9MjAzLGN0ZT0yMDQsZHRlPTIwNSxjUmU9MjA2LGRSZT0yMDcsdVJlPTIwOCxwUmU9MjA5LGhSZT0yMTAsbVJlPTAsZlJlPTEsZ1JlPTIsWDM9MyxfUmU9NCxiUmU9NSx2UmU9Nix5UmU9NyxLST0wLHhSZT0xLENSZT0yLHlwPTAsTVJlPTEsd1JlPTIsU1JlPTMsRVJlPTQsVFJlPTUsV3g9MzAxLHF4PTMwMixZMz0zMDMsUTM9MzA0LEpJPTMwNixsVj0zMDcsWjM9MWUzLEVzPTEwMDEsSzM9MTAwMix2bz0xMDAzLFIkPTEwMDQsUCQ9MTAwNSxpYT0xMDA2LERSZT0xMDA3LCRJPTEwMDgseHA9MTAwOSxJUmU9MTAxMCxBUmU9MTAxMSx4eD0xMDEyLFJSZT0xMDEzLHhJPTEwMTQsZ209MTAxNSxxMD0xMDE2LFBSZT0xMDE3LGtSZT0xMDE4LFgwPTEwMjAsT1JlPTEwMjEsQ2E9MTAyMyxGUmU9MTAyNCxOUmU9MTAyNSxibT0xMDI2LEswPTEwMjcsTFJlPTEwMjgsQlJlPTEwMjksVlJlPTEwMzAsSFJlPTEwMzEselJlPTEwMzMsbDM9MzM3NzYsYzM9MzM3NzcsZDM9MzM3NzgsdTM9MzM3NzksayQ9MzU4NDAsTyQ9MzU4NDEsRiQ9MzU4NDIsTiQ9MzU4NDMsVVJlPTM2MTk2LEwkPTM3NDkyLEIkPTM3NDk2LFYkPTM3ODA4LEgkPTM3ODA5LHokPTM3ODEwLFUkPTM3ODExLGokPTM3ODEyLEckPTM3ODEzLFckPTM3ODE0LHEkPTM3ODE1LFgkPTM3ODE2LFkkPTM3ODE3LFEkPTM3ODE4LFokPTM3ODE5LEskPTM3ODIwLEokPTM3ODIxLCQkPTM2NDkyLGowPTI0MDAsRzA9MjQwMSx3cD0zZTMsRHI9MzAwMSxZUmU9MzIwMSxjXz0wLFFSZT0xLEN4PTM1MDQ0LFNJPTM1MDQ4LGVlZT0iMzAwIGVzIixKMz0xMDM1LHpkPWNsYXNze2FkZEV2ZW50TGlzdGVuZXIodCxlKXt2b2lkIDA9PT10aGlzLl9saXN0ZW5lcnMmJih0aGlzLl9saXN0ZW5lcnM9e30pO2xldCBpPXRoaXMuX2xpc3RlbmVyczt2b2lkIDA9PT1pW3RdJiYoaVt0XT1bXSksLTE9PT1pW3RdLmluZGV4T2YoZSkmJmlbdF0ucHVzaChlKX1oYXNFdmVudExpc3RlbmVyKHQsZSl7aWYodm9pZCAwPT09dGhpcy5fbGlzdGVuZXJzKXJldHVybiExO2xldCBpPXRoaXMuX2xpc3RlbmVycztyZXR1cm4gdm9pZCAwIT09aVt0XSYmLTEhPT1pW3RdLmluZGV4T2YoZSl9cmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGUpe2lmKHZvaWQgMD09PXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IHI9dGhpcy5fbGlzdGVuZXJzW3RdO2lmKHZvaWQgMCE9PXIpe2xldCBvPXIuaW5kZXhPZihlKTstMSE9PW8mJnIuc3BsaWNlKG8sMSl9fWRpc3BhdGNoRXZlbnQodCl7aWYodm9pZCAwPT09dGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgaT10aGlzLl9saXN0ZW5lcnNbdC50eXBlXTtpZih2b2lkIDAhPT1pKXt0LnRhcmdldD10aGlzO2xldCByPWkuc2xpY2UoMCk7Zm9yKGxldCBvPTAsYT1yLmxlbmd0aDtvPGE7bysrKXJbb10uY2FsbCh0aGlzLHQpO3QudGFyZ2V0PW51bGx9fX0sam89W107Zm9yKGxldCBuPTA7bjwyNTY7bisrKWpvW25dPShuPDE2PyIwIjoiIikrbi50b1N0cmluZygxNik7dmFyIG0zPU1hdGguUEkvMTgwLCQzPTE4MC9NYXRoLlBJO2Z1bmN0aW9uIFlsKCl7bGV0IG49NDI5NDk2NzI5NSpNYXRoLnJhbmRvbSgpfDAsdD00Mjk0OTY3Mjk1Kk1hdGgucmFuZG9tKCl8MCxlPTQyOTQ5NjcyOTUqTWF0aC5yYW5kb20oKXwwLGk9NDI5NDk2NzI5NSpNYXRoLnJhbmRvbSgpfDA7cmV0dXJuKGpvWzI1NSZuXStqb1tuPj44JjI1NV0ram9bbj4+MTYmMjU1XStqb1tuPj4yNCYyNTVdKyItIitqb1syNTUmdF0ram9bdD4+OCYyNTVdKyItIitqb1t0Pj4xNiYxNXw2NF0ram9bdD4+MjQmMjU1XSsiLSIram9bNjMmZXwxMjhdK2pvW2U+PjgmMjU1XSsiLSIram9bZT4+MTYmMjU1XStqb1tlPj4yNCYyNTVdK2pvWzI1NSZpXStqb1tpPj44JjI1NV0ram9baT4+MTYmMjU1XStqb1tpPj4yNCYyNTVdKS50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIGVzKG4sdCxlKXtyZXR1cm4gTWF0aC5tYXgodCxNYXRoLm1pbihlLG4pKX1mdW5jdGlvbiBmMyhuLHQsZSl7cmV0dXJuKDEtZSkqbitlKnR9ZnVuY3Rpb24gdGVlKG4pe3JldHVybiAwPT0obiZuLTEpJiYwIT09bn1mdW5jdGlvbiBKUmUobil7cmV0dXJuIE1hdGgucG93KDIsTWF0aC5mbG9vcihNYXRoLmxvZyhuKS9NYXRoLkxOMikpfXZhciAkZT1jbGFzc3tjb25zdHJ1Y3Rvcih0PTAsZT0wKXt0aGlzLng9dCx0aGlzLnk9ZX1nZXQgd2lkdGgoKXtyZXR1cm4gdGhpcy54fXNldCB3aWR0aCh0KXt0aGlzLng9dH1nZXQgaGVpZ2h0KCl7cmV0dXJuIHRoaXMueX1zZXQgaGVpZ2h0KHQpe3RoaXMueT10fXNldCh0LGUpe3JldHVybiB0aGlzLng9dCx0aGlzLnk9ZSx0aGlzfXNldFNjYWxhcih0KXtyZXR1cm4gdGhpcy54PXQsdGhpcy55PXQsdGhpc31zZXRYKHQpe3JldHVybiB0aGlzLng9dCx0aGlzfXNldFkodCl7cmV0dXJuIHRoaXMueT10LHRoaXN9c2V0Q29tcG9uZW50KHQsZSl7c3dpdGNoKHQpe2Nhc2UgMDp0aGlzLng9ZTticmVhaztjYXNlIDE6dGhpcy55PWU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX1yZXR1cm4gdGhpc31nZXRDb21wb25lbnQodCl7c3dpdGNoKHQpe2Nhc2UgMDpyZXR1cm4gdGhpcy54O2Nhc2UgMTpyZXR1cm4gdGhpcy55O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9fWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMueCx0aGlzLnkpfWNvcHkodCl7cmV0dXJuIHRoaXMueD10LngsdGhpcy55PXQueSx0aGlzfWFkZCh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5hZGQoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5hZGRWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLmFkZFZlY3RvcnModCxlKSk6KHRoaXMueCs9dC54LHRoaXMueSs9dC55LHRoaXMpfWFkZFNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kz10LHRoaXMueSs9dCx0aGlzfWFkZFZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueCtlLngsdGhpcy55PXQueStlLnksdGhpc31hZGRTY2FsZWRWZWN0b3IodCxlKXtyZXR1cm4gdGhpcy54Kz10LngqZSx0aGlzLnkrPXQueSplLHRoaXN9c3ViKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogLnN1YigpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLnN1YlZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuc3ViVmVjdG9ycyh0LGUpKToodGhpcy54LT10LngsdGhpcy55LT10LnksdGhpcyl9c3ViU2NhbGFyKHQpe3JldHVybiB0aGlzLngtPXQsdGhpcy55LT10LHRoaXN9c3ViVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54LWUueCx0aGlzLnk9dC55LWUueSx0aGlzfW11bHRpcGx5KHQpe3JldHVybiB0aGlzLngqPXQueCx0aGlzLnkqPXQueSx0aGlzfW11bHRpcGx5U2NhbGFyKHQpe3JldHVybiB0aGlzLngqPXQsdGhpcy55Kj10LHRoaXN9ZGl2aWRlKHQpe3JldHVybiB0aGlzLngvPXQueCx0aGlzLnkvPXQueSx0aGlzfWRpdmlkZVNjYWxhcih0KXtyZXR1cm4gdGhpcy5tdWx0aXBseVNjYWxhcigxL3QpfWFwcGx5TWF0cml4Myh0KXtsZXQgZT10aGlzLngsaT10aGlzLnkscj10LmVsZW1lbnRzO3JldHVybiB0aGlzLng9clswXSplK3JbM10qaStyWzZdLHRoaXMueT1yWzFdKmUrcls0XSppK3JbN10sdGhpc31taW4odCl7cmV0dXJuIHRoaXMueD1NYXRoLm1pbih0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5taW4odGhpcy55LHQueSksdGhpc31tYXgodCl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5tYXgodGhpcy55LHQueSksdGhpc31jbGFtcCh0LGUpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodC54LE1hdGgubWluKGUueCx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodC55LE1hdGgubWluKGUueSx0aGlzLnkpKSx0aGlzfWNsYW1wU2NhbGFyKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLnkpKSx0aGlzfWNsYW1wTGVuZ3RoKHQsZSl7bGV0IGk9dGhpcy5sZW5ndGgoKTtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIoaXx8MSkubXVsdGlwbHlTY2FsYXIoTWF0aC5tYXgodCxNYXRoLm1pbihlLGkpKSl9Zmxvb3IoKXtyZXR1cm4gdGhpcy54PU1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpLHRoaXN9Y2VpbCgpe3JldHVybiB0aGlzLng9TWF0aC5jZWlsKHRoaXMueCksdGhpcy55PU1hdGguY2VpbCh0aGlzLnkpLHRoaXN9cm91bmQoKXtyZXR1cm4gdGhpcy54PU1hdGgucm91bmQodGhpcy54KSx0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpLHRoaXN9cm91bmRUb1plcm8oKXtyZXR1cm4gdGhpcy54PXRoaXMueDwwP01hdGguY2VpbCh0aGlzLngpOk1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9dGhpcy55PDA/TWF0aC5jZWlsKHRoaXMueSk6TWF0aC5mbG9vcih0aGlzLnkpLHRoaXN9bmVnYXRlKCl7cmV0dXJuIHRoaXMueD0tdGhpcy54LHRoaXMueT0tdGhpcy55LHRoaXN9ZG90KHQpe3JldHVybiB0aGlzLngqdC54K3RoaXMueSp0Lnl9Y3Jvc3ModCl7cmV0dXJuIHRoaXMueCp0LnktdGhpcy55KnQueH1sZW5ndGhTcSgpe3JldHVybiB0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnl9bGVuZ3RoKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkpfW1hbmhhdHRhbkxlbmd0aCgpe3JldHVybiBNYXRoLmFicyh0aGlzLngpK01hdGguYWJzKHRoaXMueSl9bm9ybWFsaXplKCl7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKHRoaXMubGVuZ3RoKCl8fDEpfWFuZ2xlKCl7cmV0dXJuIE1hdGguYXRhbjIoLXRoaXMueSwtdGhpcy54KStNYXRoLlBJfWRpc3RhbmNlVG8odCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLmRpc3RhbmNlVG9TcXVhcmVkKHQpKX1kaXN0YW5jZVRvU3F1YXJlZCh0KXtsZXQgZT10aGlzLngtdC54LGk9dGhpcy55LXQueTtyZXR1cm4gZSplK2kqaX1tYW5oYXR0YW5EaXN0YW5jZVRvKHQpe3JldHVybiBNYXRoLmFicyh0aGlzLngtdC54KStNYXRoLmFicyh0aGlzLnktdC55KX1zZXRMZW5ndGgodCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIodCl9bGVycCh0LGUpe3JldHVybiB0aGlzLngrPSh0LngtdGhpcy54KSplLHRoaXMueSs9KHQueS10aGlzLnkpKmUsdGhpc31sZXJwVmVjdG9ycyh0LGUsaSl7cmV0dXJuIHRoaXMueD10LngrKGUueC10LngpKmksdGhpcy55PXQueSsoZS55LXQueSkqaSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC54PT09dGhpcy54JiZ0Lnk9PT10aGlzLnl9ZnJvbUFycmF5KHQsZT0wKXtyZXR1cm4gdGhpcy54PXRbZV0sdGhpcy55PXRbZSsxXSx0aGlzfXRvQXJyYXkodD1bXSxlPTApe3JldHVybiB0W2VdPXRoaXMueCx0W2UrMV09dGhpcy55LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsaSl7cmV0dXJuIHZvaWQgMCE9PWkmJmNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogb2Zmc2V0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMueD10LmdldFgoZSksdGhpcy55PXQuZ2V0WShlKSx0aGlzfXJvdGF0ZUFyb3VuZCh0LGUpe2xldCBpPU1hdGguY29zKGUpLHI9TWF0aC5zaW4oZSksbz10aGlzLngtdC54LGE9dGhpcy55LXQueTtyZXR1cm4gdGhpcy54PW8qaS1hKnIrdC54LHRoaXMueT1vKnIrYSppK3QueSx0aGlzfXJhbmRvbSgpe3JldHVybiB0aGlzLng9TWF0aC5yYW5kb20oKSx0aGlzLnk9TWF0aC5yYW5kb20oKSx0aGlzfSpbU3ltYm9sLml0ZXJhdG9yXSgpe3lpZWxkIHRoaXMueCx5aWVsZCB0aGlzLnl9fTskZS5wcm90b3R5cGUuaXNWZWN0b3IyPSEwO3ZhciB5bz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZWxlbWVudHM9WzEsMCwwLDAsMSwwLDAsMCwxXSxhcmd1bWVudHMubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDM6IHRoZSBjb25zdHJ1Y3RvciBubyBsb25nZXIgcmVhZHMgYXJndW1lbnRzLiB1c2UgLnNldCgpIGluc3RlYWQuIil9c2V0KHQsZSxpLHIsbyxhLHMsbCxjKXtsZXQgZD10aGlzLmVsZW1lbnRzO3JldHVybiBkWzBdPXQsZFsxXT1yLGRbMl09cyxkWzNdPWUsZFs0XT1vLGRbNV09bCxkWzZdPWksZFs3XT1hLGRbOF09Yyx0aGlzfWlkZW50aXR5KCl7cmV0dXJuIHRoaXMuc2V0KDEsMCwwLDAsMSwwLDAsMCwxKSx0aGlzfWNvcHkodCl7bGV0IGU9dGhpcy5lbGVtZW50cyxpPXQuZWxlbWVudHM7cmV0dXJuIGVbMF09aVswXSxlWzFdPWlbMV0sZVsyXT1pWzJdLGVbM109aVszXSxlWzRdPWlbNF0sZVs1XT1pWzVdLGVbNl09aVs2XSxlWzddPWlbN10sZVs4XT1pWzhdLHRoaXN9ZXh0cmFjdEJhc2lzKHQsZSxpKXtyZXR1cm4gdC5zZXRGcm9tTWF0cml4M0NvbHVtbih0aGlzLDApLGUuc2V0RnJvbU1hdHJpeDNDb2x1bW4odGhpcywxKSxpLnNldEZyb21NYXRyaXgzQ29sdW1uKHRoaXMsMiksdGhpc31zZXRGcm9tTWF0cml4NCh0KXtsZXQgZT10LmVsZW1lbnRzO3JldHVybiB0aGlzLnNldChlWzBdLGVbNF0sZVs4XSxlWzFdLGVbNV0sZVs5XSxlWzJdLGVbNl0sZVsxMF0pLHRoaXN9bXVsdGlwbHkodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlNYXRyaWNlcyh0aGlzLHQpfXByZW11bHRpcGx5KHQpe3JldHVybiB0aGlzLm11bHRpcGx5TWF0cmljZXModCx0aGlzKX1tdWx0aXBseU1hdHJpY2VzKHQsZSl7bGV0IGk9dC5lbGVtZW50cyxyPWUuZWxlbWVudHMsbz10aGlzLmVsZW1lbnRzLGE9aVswXSxzPWlbM10sbD1pWzZdLGM9aVsxXSxkPWlbNF0sdT1pWzddLHA9aVsyXSxoPWlbNV0sbT1pWzhdLF89clswXSxNPXJbM10seT1yWzZdLHg9clsxXSxSPXJbNF0sST1yWzddLEI9clsyXSxlZT1yWzVdLFE9cls4XTtyZXR1cm4gb1swXT1hKl8rcyp4K2wqQixvWzNdPWEqTStzKlIrbCplZSxvWzZdPWEqeStzKkkrbCpRLG9bMV09YypfK2QqeCt1KkIsb1s0XT1jKk0rZCpSK3UqZWUsb1s3XT1jKnkrZCpJK3UqUSxvWzJdPXAqXytoKngrbSpCLG9bNV09cCpNK2gqUittKmVlLG9bOF09cCp5K2gqSSttKlEsdGhpc31tdWx0aXBseVNjYWxhcih0KXtsZXQgZT10aGlzLmVsZW1lbnRzO3JldHVybiBlWzBdKj10LGVbM10qPXQsZVs2XSo9dCxlWzFdKj10LGVbNF0qPXQsZVs3XSo9dCxlWzJdKj10LGVbNV0qPXQsZVs4XSo9dCx0aGlzfWRldGVybWluYW50KCl7bGV0IHQ9dGhpcy5lbGVtZW50cyxlPXRbMF0saT10WzFdLHI9dFsyXSxvPXRbM10sYT10WzRdLHM9dFs1XSxsPXRbNl0sYz10WzddLGQ9dFs4XTtyZXR1cm4gZSphKmQtZSpzKmMtaSpvKmQraSpzKmwrcipvKmMtciphKmx9aW52ZXJ0KCl7bGV0IHQ9dGhpcy5lbGVtZW50cyxlPXRbMF0saT10WzFdLHI9dFsyXSxvPXRbM10sYT10WzRdLHM9dFs1XSxsPXRbNl0sYz10WzddLGQ9dFs4XSx1PWQqYS1zKmMscD1zKmwtZCpvLGg9YypvLWEqbCxtPWUqdStpKnArcipoO2lmKDA9PT1tKXJldHVybiB0aGlzLnNldCgwLDAsMCwwLDAsMCwwLDAsMCk7bGV0IF89MS9tO3JldHVybiB0WzBdPXUqXyx0WzFdPShyKmMtZCppKSpfLHRbMl09KHMqaS1yKmEpKl8sdFszXT1wKl8sdFs0XT0oZCplLXIqbCkqXyx0WzVdPShyKm8tcyplKSpfLHRbNl09aCpfLHRbN109KGkqbC1jKmUpKl8sdFs4XT0oYSplLWkqbykqXyx0aGlzfXRyYW5zcG9zZSgpe2xldCB0LGU9dGhpcy5lbGVtZW50cztyZXR1cm4gdD1lWzFdLGVbMV09ZVszXSxlWzNdPXQsdD1lWzJdLGVbMl09ZVs2XSxlWzZdPXQsdD1lWzVdLGVbNV09ZVs3XSxlWzddPXQsdGhpc31nZXROb3JtYWxNYXRyaXgodCl7cmV0dXJuIHRoaXMuc2V0RnJvbU1hdHJpeDQodCkuaW52ZXJ0KCkudHJhbnNwb3NlKCl9dHJhbnNwb3NlSW50b0FycmF5KHQpe2xldCBlPXRoaXMuZWxlbWVudHM7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbM10sdFsyXT1lWzZdLHRbM109ZVsxXSx0WzRdPWVbNF0sdFs1XT1lWzddLHRbNl09ZVsyXSx0WzddPWVbNV0sdFs4XT1lWzhdLHRoaXN9c2V0VXZUcmFuc2Zvcm0odCxlLGkscixvLGEscyl7bGV0IGw9TWF0aC5jb3MobyksYz1NYXRoLnNpbihvKTtyZXR1cm4gdGhpcy5zZXQoaSpsLGkqYywtaSoobCphK2MqcykrYSt0LC1yKmMscipsLC1yKigtYyphK2wqcykrcytlLDAsMCwxKSx0aGlzfXNjYWxlKHQsZSl7bGV0IGk9dGhpcy5lbGVtZW50cztyZXR1cm4gaVswXSo9dCxpWzNdKj10LGlbNl0qPXQsaVsxXSo9ZSxpWzRdKj1lLGlbN10qPWUsdGhpc31yb3RhdGUodCl7bGV0IGU9TWF0aC5jb3ModCksaT1NYXRoLnNpbih0KSxyPXRoaXMuZWxlbWVudHMsbz1yWzBdLGE9clszXSxzPXJbNl0sbD1yWzFdLGM9cls0XSxkPXJbN107cmV0dXJuIHJbMF09ZSpvK2kqbCxyWzNdPWUqYStpKmMscls2XT1lKnMraSpkLHJbMV09LWkqbytlKmwscls0XT0taSphK2UqYyxyWzddPS1pKnMrZSpkLHRoaXN9dHJhbnNsYXRlKHQsZSl7bGV0IGk9dGhpcy5lbGVtZW50cztyZXR1cm4gaVswXSs9dCppWzJdLGlbM10rPXQqaVs1XSxpWzZdKz10KmlbOF0saVsxXSs9ZSppWzJdLGlbNF0rPWUqaVs1XSxpWzddKz1lKmlbOF0sdGhpc31lcXVhbHModCl7bGV0IGU9dGhpcy5lbGVtZW50cyxpPXQuZWxlbWVudHM7Zm9yKGxldCByPTA7cjw5O3IrKylpZihlW3JdIT09aVtyXSlyZXR1cm4hMTtyZXR1cm4hMH1mcm9tQXJyYXkodCxlPTApe2ZvcihsZXQgaT0wO2k8OTtpKyspdGhpcy5lbGVtZW50c1tpXT10W2krZV07cmV0dXJuIHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7bGV0IGk9dGhpcy5lbGVtZW50cztyZXR1cm4gdFtlXT1pWzBdLHRbZSsxXT1pWzFdLHRbZSsyXT1pWzJdLHRbZSszXT1pWzNdLHRbZSs0XT1pWzRdLHRbZSs1XT1pWzVdLHRbZSs2XT1pWzZdLHRbZSs3XT1pWzddLHRbZSs4XT1pWzhdLHR9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmZyb21BcnJheSh0aGlzLmVsZW1lbnRzKX19O2Z1bmN0aW9uIGh0ZShuKXtmb3IobGV0IHQ9bi5sZW5ndGgtMTt0Pj0wOy0tdClpZihuW3RdPjY1NTM1KXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIE14KG4pe3JldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLG4pfXlvLnByb3RvdHlwZS5pc01hdHJpeDM9ITA7dmFyIG5lZT17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fSxHbD17aDowLHM6MCxsOjB9LFVEPXtoOjAsczowLGw6MH07ZnVuY3Rpb24gZzMobix0LGUpe3JldHVybiBlPDAmJihlKz0xKSxlPjEmJihlLT0xKSxlPDEvNj9uKzYqKHQtbikqZTplPC41P3Q6ZTwyLzM/bis2Kih0LW4pKigyLzMtZSk6bn1mdW5jdGlvbiBZMChuKXtyZXR1cm4gbjwuMDQwNDU/LjA3NzM5OTM4MDgqbjpNYXRoLnBvdyguOTQ3ODY3Mjk4NipuKy4wNTIxMzI3MDE0LDIuNCl9ZnVuY3Rpb24gXzMobil7cmV0dXJuIG48LjAwMzEzMDg/MTIuOTIqbjoxLjA1NSpNYXRoLnBvdyhuLC40MTY2NiktLjA1NX12YXIgc249KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscil7cmV0dXJuIHZvaWQgMD09PWkmJnZvaWQgMD09PXI/dGhpcy5zZXQoZSk6dGhpcy5zZXRSR0IoZSxpLHIpfXNldChlKXtyZXR1cm4gZSYmZS5pc0NvbG9yP3RoaXMuY29weShlKToibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5zZXRIZXgoZSk6InN0cmluZyI9PXR5cGVvZiBlJiZ0aGlzLnNldFN0eWxlKGUpLHRoaXN9c2V0U2NhbGFyKGUpe3JldHVybiB0aGlzLnI9ZSx0aGlzLmc9ZSx0aGlzLmI9ZSx0aGlzfXNldEhleChlKXtyZXR1cm4gZT1NYXRoLmZsb29yKGUpLHRoaXMucj0oZT4+MTYmMjU1KS8yNTUsdGhpcy5nPShlPj44JjI1NSkvMjU1LHRoaXMuYj0oMjU1JmUpLzI1NSx0aGlzfXNldFJHQihlLGkscil7cmV0dXJuIHRoaXMucj1lLHRoaXMuZz1pLHRoaXMuYj1yLHRoaXN9c2V0SFNMKGUsaSxyKXtpZihlPWZ1bmN0aW9uKG4sdCl7cmV0dXJuKG4lMSsxKSUxfShlKSxpPWVzKGksMCwxKSxyPWVzKHIsMCwxKSwwPT09aSl0aGlzLnI9dGhpcy5nPXRoaXMuYj1yO2Vsc2V7bGV0IG89cjw9LjU/ciooMStpKTpyK2ktcippLGE9MipyLW87dGhpcy5yPWczKGEsbyxlKzEvMyksdGhpcy5nPWczKGEsbyxlKSx0aGlzLmI9ZzMoYSxvLGUtMS8zKX1yZXR1cm4gdGhpc31zZXRTdHlsZShlKXtmdW5jdGlvbiBpKG8pe3ZvaWQgMCE9PW8mJnBhcnNlRmxvYXQobyk8MSYmY29uc29sZS53YXJuKCJUSFJFRS5Db2xvcjogQWxwaGEgY29tcG9uZW50IG9mICIrZSsiIHdpbGwgYmUgaWdub3JlZC4iKX1sZXQgcjtpZihyPS9eKCg/OnJnYnxoc2wpYT8pXCgoW15cKV0qKVwpLy5leGVjKGUpKXtsZXQgbyxzPXJbMl07c3dpdGNoKHJbMV0pe2Nhc2UicmdiIjpjYXNlInJnYmEiOmlmKG89L15ccyooXGQrKVxzKixccyooXGQrKVxzKixccyooXGQrKVxzKig/OixccyooXGQqXC4/XGQrKVxzKik/JC8uZXhlYyhzKSlyZXR1cm4gdGhpcy5yPU1hdGgubWluKDI1NSxwYXJzZUludChvWzFdLDEwKSkvMjU1LHRoaXMuZz1NYXRoLm1pbigyNTUscGFyc2VJbnQob1syXSwxMCkpLzI1NSx0aGlzLmI9TWF0aC5taW4oMjU1LHBhcnNlSW50KG9bM10sMTApKS8yNTUsaShvWzRdKSx0aGlzO2lmKG89L15ccyooXGQrKVwlXHMqLFxzKihcZCspXCVccyosXHMqKFxkKylcJVxzKig/OixccyooXGQqXC4/XGQrKVxzKik/JC8uZXhlYyhzKSlyZXR1cm4gdGhpcy5yPU1hdGgubWluKDEwMCxwYXJzZUludChvWzFdLDEwKSkvMTAwLHRoaXMuZz1NYXRoLm1pbigxMDAscGFyc2VJbnQob1syXSwxMCkpLzEwMCx0aGlzLmI9TWF0aC5taW4oMTAwLHBhcnNlSW50KG9bM10sMTApKS8xMDAsaShvWzRdKSx0aGlzO2JyZWFrO2Nhc2UiaHNsIjpjYXNlImhzbGEiOmlmKG89L15ccyooXGQqXC4/XGQrKVxzKixccyooXGQrKVwlXHMqLFxzKihcZCspXCVccyooPzosXHMqKFxkKlwuP1xkKylccyopPyQvLmV4ZWMocykpe2xldCBsPXBhcnNlRmxvYXQob1sxXSkvMzYwLGM9cGFyc2VJbnQob1syXSwxMCkvMTAwLGQ9cGFyc2VJbnQob1szXSwxMCkvMTAwO3JldHVybiBpKG9bNF0pLHRoaXMuc2V0SFNMKGwsYyxkKX19fWVsc2UgaWYocj0vXlwjKFtBLUZhLWZcZF0rKSQvLmV4ZWMoZSkpe2xldCBvPXJbMV0sYT1vLmxlbmd0aDtpZigzPT09YSlyZXR1cm4gdGhpcy5yPXBhcnNlSW50KG8uY2hhckF0KDApK28uY2hhckF0KDApLDE2KS8yNTUsdGhpcy5nPXBhcnNlSW50KG8uY2hhckF0KDEpK28uY2hhckF0KDEpLDE2KS8yNTUsdGhpcy5iPXBhcnNlSW50KG8uY2hhckF0KDIpK28uY2hhckF0KDIpLDE2KS8yNTUsdGhpcztpZig2PT09YSlyZXR1cm4gdGhpcy5yPXBhcnNlSW50KG8uY2hhckF0KDApK28uY2hhckF0KDEpLDE2KS8yNTUsdGhpcy5nPXBhcnNlSW50KG8uY2hhckF0KDIpK28uY2hhckF0KDMpLDE2KS8yNTUsdGhpcy5iPXBhcnNlSW50KG8uY2hhckF0KDQpK28uY2hhckF0KDUpLDE2KS8yNTUsdGhpc31yZXR1cm4gZSYmZS5sZW5ndGg+MD90aGlzLnNldENvbG9yTmFtZShlKTp0aGlzfXNldENvbG9yTmFtZShlKXtsZXQgaT1uZWVbZS50b0xvd2VyQ2FzZSgpXTtyZXR1cm4gdm9pZCAwIT09aT90aGlzLnNldEhleChpKTpjb25zb2xlLndhcm4oIlRIUkVFLkNvbG9yOiBVbmtub3duIGNvbG9yICIrZSksdGhpc31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLnIsdGhpcy5nLHRoaXMuYil9Y29weShlKXtyZXR1cm4gdGhpcy5yPWUucix0aGlzLmc9ZS5nLHRoaXMuYj1lLmIsdGhpc31jb3B5U1JHQlRvTGluZWFyKGUpe3JldHVybiB0aGlzLnI9WTAoZS5yKSx0aGlzLmc9WTAoZS5nKSx0aGlzLmI9WTAoZS5iKSx0aGlzfWNvcHlMaW5lYXJUb1NSR0IoZSl7cmV0dXJuIHRoaXMucj1fMyhlLnIpLHRoaXMuZz1fMyhlLmcpLHRoaXMuYj1fMyhlLmIpLHRoaXN9Y29udmVydFNSR0JUb0xpbmVhcigpe3JldHVybiB0aGlzLmNvcHlTUkdCVG9MaW5lYXIodGhpcyksdGhpc31jb252ZXJ0TGluZWFyVG9TUkdCKCl7cmV0dXJuIHRoaXMuY29weUxpbmVhclRvU1JHQih0aGlzKSx0aGlzfWdldEhleCgpe3JldHVybiAyNTUqdGhpcy5yPDwxNl4yNTUqdGhpcy5nPDw4XjI1NSp0aGlzLmI8PDB9Z2V0SGV4U3RyaW5nKCl7cmV0dXJuKCIwMDAwMDAiK3RoaXMuZ2V0SGV4KCkudG9TdHJpbmcoMTYpKS5zbGljZSgtNil9Z2V0SFNMKGUpe2xldCBsLGMsaT10aGlzLnIscj10aGlzLmcsbz10aGlzLmIsYT1NYXRoLm1heChpLHIsbykscz1NYXRoLm1pbihpLHIsbyksZD0ocythKS8yO2lmKHM9PT1hKWw9MCxjPTA7ZWxzZXtsZXQgdT1hLXM7c3dpdGNoKGM9ZDw9LjU/dS8oYStzKTp1LygyLWEtcyksYSl7Y2FzZSBpOmw9KHItbykvdSsocjxvPzY6MCk7YnJlYWs7Y2FzZSByOmw9KG8taSkvdSsyO2JyZWFrO2Nhc2UgbzpsPShpLXIpL3UrNH1sLz02fXJldHVybiBlLmg9bCxlLnM9YyxlLmw9ZCxlfWdldFN0eWxlKCl7cmV0dXJuInJnYigiKygyNTUqdGhpcy5yfDApKyIsIisoMjU1KnRoaXMuZ3wwKSsiLCIrKDI1NSp0aGlzLmJ8MCkrIikifW9mZnNldEhTTChlLGkscil7cmV0dXJuIHRoaXMuZ2V0SFNMKEdsKSxHbC5oKz1lLEdsLnMrPWksR2wubCs9cix0aGlzLnNldEhTTChHbC5oLEdsLnMsR2wubCksdGhpc31hZGQoZSl7cmV0dXJuIHRoaXMucis9ZS5yLHRoaXMuZys9ZS5nLHRoaXMuYis9ZS5iLHRoaXN9YWRkQ29sb3JzKGUsaSl7cmV0dXJuIHRoaXMucj1lLnIraS5yLHRoaXMuZz1lLmcraS5nLHRoaXMuYj1lLmIraS5iLHRoaXN9YWRkU2NhbGFyKGUpe3JldHVybiB0aGlzLnIrPWUsdGhpcy5nKz1lLHRoaXMuYis9ZSx0aGlzfXN1YihlKXtyZXR1cm4gdGhpcy5yPU1hdGgubWF4KDAsdGhpcy5yLWUuciksdGhpcy5nPU1hdGgubWF4KDAsdGhpcy5nLWUuZyksdGhpcy5iPU1hdGgubWF4KDAsdGhpcy5iLWUuYiksdGhpc31tdWx0aXBseShlKXtyZXR1cm4gdGhpcy5yKj1lLnIsdGhpcy5nKj1lLmcsdGhpcy5iKj1lLmIsdGhpc31tdWx0aXBseVNjYWxhcihlKXtyZXR1cm4gdGhpcy5yKj1lLHRoaXMuZyo9ZSx0aGlzLmIqPWUsdGhpc31sZXJwKGUsaSl7cmV0dXJuIHRoaXMucis9KGUuci10aGlzLnIpKmksdGhpcy5nKz0oZS5nLXRoaXMuZykqaSx0aGlzLmIrPShlLmItdGhpcy5iKSppLHRoaXN9bGVycENvbG9ycyhlLGkscil7cmV0dXJuIHRoaXMucj1lLnIrKGkuci1lLnIpKnIsdGhpcy5nPWUuZysoaS5nLWUuZykqcix0aGlzLmI9ZS5iKyhpLmItZS5iKSpyLHRoaXN9bGVycEhTTChlLGkpe3RoaXMuZ2V0SFNMKEdsKSxlLmdldEhTTChVRCk7bGV0IHI9ZjMoR2wuaCxVRC5oLGkpLG89ZjMoR2wucyxVRC5zLGkpLGE9ZjMoR2wubCxVRC5sLGkpO3JldHVybiB0aGlzLnNldEhTTChyLG8sYSksdGhpc31lcXVhbHMoZSl7cmV0dXJuIGUucj09PXRoaXMuciYmZS5nPT09dGhpcy5nJiZlLmI9PT10aGlzLmJ9ZnJvbUFycmF5KGUsaT0wKXtyZXR1cm4gdGhpcy5yPWVbaV0sdGhpcy5nPWVbaSsxXSx0aGlzLmI9ZVtpKzJdLHRoaXN9dG9BcnJheShlPVtdLGk9MCl7cmV0dXJuIGVbaV09dGhpcy5yLGVbaSsxXT10aGlzLmcsZVtpKzJdPXRoaXMuYixlfWZyb21CdWZmZXJBdHRyaWJ1dGUoZSxpKXtyZXR1cm4gdGhpcy5yPWUuZ2V0WChpKSx0aGlzLmc9ZS5nZXRZKGkpLHRoaXMuYj1lLmdldFooaSksITA9PT1lLm5vcm1hbGl6ZWQmJih0aGlzLnIvPTI1NSx0aGlzLmcvPTI1NSx0aGlzLmIvPTI1NSksdGhpc310b0pTT04oKXtyZXR1cm4gdGhpcy5nZXRIZXgoKX19cmV0dXJuIG4uTkFNRVM9bmVlLG59KSgpO3NuLnByb3RvdHlwZS5pc0NvbG9yPSEwLHNuLnByb3RvdHlwZS5yPTEsc24ucHJvdG90eXBlLmc9MSxzbi5wcm90b3R5cGUuYj0xO3ZhciBNMCxVZD1jbGFzc3tzdGF0aWMgZ2V0RGF0YVVSTCh0KXtpZigvXmRhdGE6L2kudGVzdCh0LnNyYyl8fHR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudD4idSIpcmV0dXJuIHQuc3JjO2xldCBlO2lmKHQgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudCllPXQ7ZWxzZXt2b2lkIDA9PT1NMCYmKE0wPU14KCJjYW52YXMiKSksTTAud2lkdGg9dC53aWR0aCxNMC5oZWlnaHQ9dC5oZWlnaHQ7bGV0IGk9TTAuZ2V0Q29udGV4dCgiMmQiKTt0IGluc3RhbmNlb2YgSW1hZ2VEYXRhP2kucHV0SW1hZ2VEYXRhKHQsMCwwKTppLmRyYXdJbWFnZSh0LDAsMCx0LndpZHRoLHQuaGVpZ2h0KSxlPU0wfXJldHVybiBlLndpZHRoPjIwNDh8fGUuaGVpZ2h0PjIwNDg/KGNvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VVdGlscy5nZXREYXRhVVJMOiBJbWFnZSBjb252ZXJ0ZWQgdG8ganBnIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIix0KSxlLnRvRGF0YVVSTCgiaW1hZ2UvanBlZyIsLjYpKTplLnRvRGF0YVVSTCgiaW1hZ2UvcG5nIil9c3RhdGljIHNSR0JUb0xpbmVhcih0KXtpZih0eXBlb2YgSFRNTEltYWdlRWxlbWVudDwidSImJnQgaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50fHx0eXBlb2YgSFRNTENhbnZhc0VsZW1lbnQ8InUiJiZ0IGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnR8fHR5cGVvZiBJbWFnZUJpdG1hcDwidSImJnQgaW5zdGFuY2VvZiBJbWFnZUJpdG1hcCl7bGV0IGU9TXgoImNhbnZhcyIpO2Uud2lkdGg9dC53aWR0aCxlLmhlaWdodD10LmhlaWdodDtsZXQgaT1lLmdldENvbnRleHQoIjJkIik7aS5kcmF3SW1hZ2UodCwwLDAsdC53aWR0aCx0LmhlaWdodCk7bGV0IHI9aS5nZXRJbWFnZURhdGEoMCwwLHQud2lkdGgsdC5oZWlnaHQpLG89ci5kYXRhO2ZvcihsZXQgYT0wO2E8by5sZW5ndGg7YSsrKW9bYV09MjU1KlkwKG9bYV0vMjU1KTtyZXR1cm4gaS5wdXRJbWFnZURhdGEociwwLDApLGV9aWYodC5kYXRhKXtsZXQgZT10LmRhdGEuc2xpY2UoMCk7Zm9yKGxldCBpPTA7aTxlLmxlbmd0aDtpKyspZVtpXT1lIGluc3RhbmNlb2YgVWludDhBcnJheXx8ZSBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5P01hdGguZmxvb3IoMjU1KlkwKGVbaV0vMjU1KSk6WTAoZVtpXSk7cmV0dXJue2RhdGE6ZSx3aWR0aDp0LndpZHRoLGhlaWdodDp0LmhlaWdodH19cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VVdGlscy5zUkdCVG9MaW5lYXIoKTogVW5zdXBwb3J0ZWQgaW1hZ2UgdHlwZS4gTm8gY29sb3Igc3BhY2UgY29udmVyc2lvbiBhcHBsaWVkLiIpLHR9fSwkUmU9MCxsbz1jbGFzcyBleHRlbmRzIHpke2NvbnN0cnVjdG9yKHQ9bG8uREVGQVVMVF9JTUFHRSxlPWxvLkRFRkFVTFRfTUFQUElORyxpPUVzLHI9RXMsbz1pYSxhPSRJLHM9Q2EsbD14cCxjPTEsZD13cCl7c3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiaWQiLHt2YWx1ZTokUmUrK30pLHRoaXMudXVpZD1ZbCgpLHRoaXMubmFtZT0iIix0aGlzLmltYWdlPXQsdGhpcy5taXBtYXBzPVtdLHRoaXMubWFwcGluZz1lLHRoaXMud3JhcFM9aSx0aGlzLndyYXBUPXIsdGhpcy5tYWdGaWx0ZXI9byx0aGlzLm1pbkZpbHRlcj1hLHRoaXMuYW5pc290cm9weT1jLHRoaXMuZm9ybWF0PXMsdGhpcy5pbnRlcm5hbEZvcm1hdD1udWxsLHRoaXMudHlwZT1sLHRoaXMub2Zmc2V0PW5ldyAkZSgwLDApLHRoaXMucmVwZWF0PW5ldyAkZSgxLDEpLHRoaXMuY2VudGVyPW5ldyAkZSgwLDApLHRoaXMucm90YXRpb249MCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9ITAsdGhpcy5tYXRyaXg9bmV3IHlvLHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSEwLHRoaXMucHJlbXVsdGlwbHlBbHBoYT0hMSx0aGlzLmZsaXBZPSEwLHRoaXMudW5wYWNrQWxpZ25tZW50PTQsdGhpcy5lbmNvZGluZz1kLHRoaXMudXNlckRhdGE9e30sdGhpcy52ZXJzaW9uPTAsdGhpcy5vblVwZGF0ZT1udWxsLHRoaXMuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPSExLHRoaXMubmVlZHNQTVJFTVVwZGF0ZT0hMX11cGRhdGVNYXRyaXgoKXt0aGlzLm1hdHJpeC5zZXRVdlRyYW5zZm9ybSh0aGlzLm9mZnNldC54LHRoaXMub2Zmc2V0LnksdGhpcy5yZXBlYXQueCx0aGlzLnJlcGVhdC55LHRoaXMucm90YXRpb24sdGhpcy5jZW50ZXIueCx0aGlzLmNlbnRlci55KX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLm5hbWU9dC5uYW1lLHRoaXMuaW1hZ2U9dC5pbWFnZSx0aGlzLm1pcG1hcHM9dC5taXBtYXBzLnNsaWNlKDApLHRoaXMubWFwcGluZz10Lm1hcHBpbmcsdGhpcy53cmFwUz10LndyYXBTLHRoaXMud3JhcFQ9dC53cmFwVCx0aGlzLm1hZ0ZpbHRlcj10Lm1hZ0ZpbHRlcix0aGlzLm1pbkZpbHRlcj10Lm1pbkZpbHRlcix0aGlzLmFuaXNvdHJvcHk9dC5hbmlzb3Ryb3B5LHRoaXMuZm9ybWF0PXQuZm9ybWF0LHRoaXMuaW50ZXJuYWxGb3JtYXQ9dC5pbnRlcm5hbEZvcm1hdCx0aGlzLnR5cGU9dC50eXBlLHRoaXMub2Zmc2V0LmNvcHkodC5vZmZzZXQpLHRoaXMucmVwZWF0LmNvcHkodC5yZXBlYXQpLHRoaXMuY2VudGVyLmNvcHkodC5jZW50ZXIpLHRoaXMucm90YXRpb249dC5yb3RhdGlvbix0aGlzLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlLHRoaXMubWF0cml4LmNvcHkodC5tYXRyaXgpLHRoaXMuZ2VuZXJhdGVNaXBtYXBzPXQuZ2VuZXJhdGVNaXBtYXBzLHRoaXMucHJlbXVsdGlwbHlBbHBoYT10LnByZW11bHRpcGx5QWxwaGEsdGhpcy5mbGlwWT10LmZsaXBZLHRoaXMudW5wYWNrQWxpZ25tZW50PXQudW5wYWNrQWxpZ25tZW50LHRoaXMuZW5jb2Rpbmc9dC5lbmNvZGluZyx0aGlzLnVzZXJEYXRhPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodC51c2VyRGF0YSkpLHRoaXN9dG9KU09OKHQpe2xldCBlPXZvaWQgMD09PXR8fCJzdHJpbmciPT10eXBlb2YgdDtpZighZSYmdm9pZCAwIT09dC50ZXh0dXJlc1t0aGlzLnV1aWRdKXJldHVybiB0LnRleHR1cmVzW3RoaXMudXVpZF07bGV0IGk9e21ldGFkYXRhOnt2ZXJzaW9uOjQuNSx0eXBlOiJUZXh0dXJlIixnZW5lcmF0b3I6IlRleHR1cmUudG9KU09OIn0sdXVpZDp0aGlzLnV1aWQsbmFtZTp0aGlzLm5hbWUsbWFwcGluZzp0aGlzLm1hcHBpbmcscmVwZWF0Olt0aGlzLnJlcGVhdC54LHRoaXMucmVwZWF0LnldLG9mZnNldDpbdGhpcy5vZmZzZXQueCx0aGlzLm9mZnNldC55XSxjZW50ZXI6W3RoaXMuY2VudGVyLngsdGhpcy5jZW50ZXIueV0scm90YXRpb246dGhpcy5yb3RhdGlvbix3cmFwOlt0aGlzLndyYXBTLHRoaXMud3JhcFRdLGZvcm1hdDp0aGlzLmZvcm1hdCx0eXBlOnRoaXMudHlwZSxlbmNvZGluZzp0aGlzLmVuY29kaW5nLG1pbkZpbHRlcjp0aGlzLm1pbkZpbHRlcixtYWdGaWx0ZXI6dGhpcy5tYWdGaWx0ZXIsYW5pc290cm9weTp0aGlzLmFuaXNvdHJvcHksZmxpcFk6dGhpcy5mbGlwWSxwcmVtdWx0aXBseUFscGhhOnRoaXMucHJlbXVsdGlwbHlBbHBoYSx1bnBhY2tBbGlnbm1lbnQ6dGhpcy51bnBhY2tBbGlnbm1lbnR9O2lmKHZvaWQgMCE9PXRoaXMuaW1hZ2Upe2xldCByPXRoaXMuaW1hZ2U7aWYodm9pZCAwPT09ci51dWlkJiYoci51dWlkPVlsKCkpLCFlJiZ2b2lkIDA9PT10LmltYWdlc1tyLnV1aWRdKXtsZXQgbztpZihBcnJheS5pc0FycmF5KHIpKXtvPVtdO2ZvcihsZXQgYT0wLHM9ci5sZW5ndGg7YTxzO2ErKylvLnB1c2goYjMoclthXS5pc0RhdGFUZXh0dXJlP3JbYV0uaW1hZ2U6clthXSkpfWVsc2Ugbz1iMyhyKTt0LmltYWdlc1tyLnV1aWRdPXt1dWlkOnIudXVpZCx1cmw6b319aS5pbWFnZT1yLnV1aWR9cmV0dXJuInt9IiE9PUpTT04uc3RyaW5naWZ5KHRoaXMudXNlckRhdGEpJiYoaS51c2VyRGF0YT10aGlzLnVzZXJEYXRhKSxlfHwodC50ZXh0dXJlc1t0aGlzLnV1aWRdPWkpLGl9ZGlzcG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzcG9zZSJ9KX10cmFuc2Zvcm1Vdih0KXtpZigzMDAhPT10aGlzLm1hcHBpbmcpcmV0dXJuIHQ7aWYodC5hcHBseU1hdHJpeDModGhpcy5tYXRyaXgpLHQueDwwfHx0Lng+MSlzd2l0Y2godGhpcy53cmFwUyl7Y2FzZSBaMzp0Lng9dC54LU1hdGguZmxvb3IodC54KTticmVhaztjYXNlIEVzOnQueD10Lng8MD8wOjE7YnJlYWs7Y2FzZSBLMzp0Lng9MT09PU1hdGguYWJzKE1hdGguZmxvb3IodC54KSUyKT9NYXRoLmNlaWwodC54KS10Lng6dC54LU1hdGguZmxvb3IodC54KX1pZih0Lnk8MHx8dC55PjEpc3dpdGNoKHRoaXMud3JhcFQpe2Nhc2UgWjM6dC55PXQueS1NYXRoLmZsb29yKHQueSk7YnJlYWs7Y2FzZSBFczp0Lnk9dC55PDA/MDoxO2JyZWFrO2Nhc2UgSzM6dC55PTE9PT1NYXRoLmFicyhNYXRoLmZsb29yKHQueSklMik/TWF0aC5jZWlsKHQueSktdC55OnQueS1NYXRoLmZsb29yKHQueSl9cmV0dXJuIHRoaXMuZmxpcFkmJih0Lnk9MS10LnkpLHR9c2V0IG5lZWRzVXBkYXRlKHQpeyEwPT09dCYmdGhpcy52ZXJzaW9uKyt9fTtmdW5jdGlvbiBiMyhuKXtyZXR1cm4gdHlwZW9mIEhUTUxJbWFnZUVsZW1lbnQ8InUiJiZuIGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudHx8dHlwZW9mIEhUTUxDYW52YXNFbGVtZW50PCJ1IiYmbiBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50fHx0eXBlb2YgSW1hZ2VCaXRtYXA8InUiJiZuIGluc3RhbmNlb2YgSW1hZ2VCaXRtYXA/VWQuZ2V0RGF0YVVSTChuKTpuLmRhdGE/e2RhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobi5kYXRhKSx3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodCx0eXBlOm4uZGF0YS5jb25zdHJ1Y3Rvci5uYW1lfTooY29uc29sZS53YXJuKCJUSFJFRS5UZXh0dXJlOiBVbmFibGUgdG8gc2VyaWFsaXplIFRleHR1cmUuIikse30pfWxvLkRFRkFVTFRfSU1BR0U9dm9pZCAwLGxvLkRFRkFVTFRfTUFQUElORz0zMDAsbG8ucHJvdG90eXBlLmlzVGV4dHVyZT0hMDt2YXIgUWk9Y2xhc3N7Y29uc3RydWN0b3IodD0wLGU9MCxpPTAscj0xKXt0aGlzLng9dCx0aGlzLnk9ZSx0aGlzLno9aSx0aGlzLnc9cn1nZXQgd2lkdGgoKXtyZXR1cm4gdGhpcy56fXNldCB3aWR0aCh0KXt0aGlzLno9dH1nZXQgaGVpZ2h0KCl7cmV0dXJuIHRoaXMud31zZXQgaGVpZ2h0KHQpe3RoaXMudz10fXNldCh0LGUsaSxyKXtyZXR1cm4gdGhpcy54PXQsdGhpcy55PWUsdGhpcy56PWksdGhpcy53PXIsdGhpc31zZXRTY2FsYXIodCl7cmV0dXJuIHRoaXMueD10LHRoaXMueT10LHRoaXMuej10LHRoaXMudz10LHRoaXN9c2V0WCh0KXtyZXR1cm4gdGhpcy54PXQsdGhpc31zZXRZKHQpe3JldHVybiB0aGlzLnk9dCx0aGlzfXNldFoodCl7cmV0dXJuIHRoaXMuej10LHRoaXN9c2V0Vyh0KXtyZXR1cm4gdGhpcy53PXQsdGhpc31zZXRDb21wb25lbnQodCxlKXtzd2l0Y2godCl7Y2FzZSAwOnRoaXMueD1lO2JyZWFrO2Nhc2UgMTp0aGlzLnk9ZTticmVhaztjYXNlIDI6dGhpcy56PWU7YnJlYWs7Y2FzZSAzOnRoaXMudz1lO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9cmV0dXJuIHRoaXN9Z2V0Q29tcG9uZW50KHQpe3N3aXRjaCh0KXtjYXNlIDA6cmV0dXJuIHRoaXMueDtjYXNlIDE6cmV0dXJuIHRoaXMueTtjYXNlIDI6cmV0dXJuIHRoaXMuejtjYXNlIDM6cmV0dXJuIHRoaXMudztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAiK3QpfX1jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLngsdGhpcy55LHRoaXMueix0aGlzLncpfWNvcHkodCl7cmV0dXJuIHRoaXMueD10LngsdGhpcy55PXQueSx0aGlzLno9dC56LHRoaXMudz12b2lkIDAhPT10Lnc/dC53OjEsdGhpc31hZGQodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3I0OiAuYWRkKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuYWRkVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5hZGRWZWN0b3JzKHQsZSkpOih0aGlzLngrPXQueCx0aGlzLnkrPXQueSx0aGlzLnorPXQueix0aGlzLncrPXQudyx0aGlzKX1hZGRTY2FsYXIodCl7cmV0dXJuIHRoaXMueCs9dCx0aGlzLnkrPXQsdGhpcy56Kz10LHRoaXMudys9dCx0aGlzfWFkZFZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueCtlLngsdGhpcy55PXQueStlLnksdGhpcy56PXQueitlLnosdGhpcy53PXQudytlLncsdGhpc31hZGRTY2FsZWRWZWN0b3IodCxlKXtyZXR1cm4gdGhpcy54Kz10LngqZSx0aGlzLnkrPXQueSplLHRoaXMueis9dC56KmUsdGhpcy53Kz10LncqZSx0aGlzfXN1Yih0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IC5zdWIoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5zdWJWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLnN1YlZlY3RvcnModCxlKSk6KHRoaXMueC09dC54LHRoaXMueS09dC55LHRoaXMuei09dC56LHRoaXMudy09dC53LHRoaXMpfXN1YlNjYWxhcih0KXtyZXR1cm4gdGhpcy54LT10LHRoaXMueS09dCx0aGlzLnotPXQsdGhpcy53LT10LHRoaXN9c3ViVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54LWUueCx0aGlzLnk9dC55LWUueSx0aGlzLno9dC56LWUueix0aGlzLnc9dC53LWUudyx0aGlzfW11bHRpcGx5KHQpe3JldHVybiB0aGlzLngqPXQueCx0aGlzLnkqPXQueSx0aGlzLnoqPXQueix0aGlzLncqPXQudyx0aGlzfW11bHRpcGx5U2NhbGFyKHQpe3JldHVybiB0aGlzLngqPXQsdGhpcy55Kj10LHRoaXMueio9dCx0aGlzLncqPXQsdGhpc31hcHBseU1hdHJpeDQodCl7bGV0IGU9dGhpcy54LGk9dGhpcy55LHI9dGhpcy56LG89dGhpcy53LGE9dC5lbGVtZW50cztyZXR1cm4gdGhpcy54PWFbMF0qZSthWzRdKmkrYVs4XSpyK2FbMTJdKm8sdGhpcy55PWFbMV0qZSthWzVdKmkrYVs5XSpyK2FbMTNdKm8sdGhpcy56PWFbMl0qZSthWzZdKmkrYVsxMF0qcithWzE0XSpvLHRoaXMudz1hWzNdKmUrYVs3XSppK2FbMTFdKnIrYVsxNV0qbyx0aGlzfWRpdmlkZVNjYWxhcih0KXtyZXR1cm4gdGhpcy5tdWx0aXBseVNjYWxhcigxL3QpfXNldEF4aXNBbmdsZUZyb21RdWF0ZXJuaW9uKHQpe3RoaXMudz0yKk1hdGguYWNvcyh0LncpO2xldCBlPU1hdGguc3FydCgxLXQudyp0LncpO3JldHVybiBlPDFlLTQ/KHRoaXMueD0xLHRoaXMueT0wLHRoaXMuej0wKToodGhpcy54PXQueC9lLHRoaXMueT10LnkvZSx0aGlzLno9dC56L2UpLHRoaXN9c2V0QXhpc0FuZ2xlRnJvbVJvdGF0aW9uTWF0cml4KHQpe2xldCBlLGkscixvLGw9dC5lbGVtZW50cyxjPWxbMF0sZD1sWzRdLHU9bFs4XSxwPWxbMV0saD1sWzVdLG09bFs5XSxfPWxbMl0sTT1sWzZdLHk9bFsxMF07aWYoTWF0aC5hYnMoZC1wKTwuMDEmJk1hdGguYWJzKHUtXyk8LjAxJiZNYXRoLmFicyhtLU0pPC4wMSl7aWYoTWF0aC5hYnMoZCtwKTwuMSYmTWF0aC5hYnModStfKTwuMSYmTWF0aC5hYnMobStNKTwuMSYmTWF0aC5hYnMoYytoK3ktMyk8LjEpcmV0dXJuIHRoaXMuc2V0KDEsMCwwLDApLHRoaXM7ZT1NYXRoLlBJO2xldCBSPShjKzEpLzIsST0oaCsxKS8yLEI9KHkrMSkvMixlZT0oZCtwKS80LFE9KHUrXykvNCx3ZT0obStNKS80O3JldHVybiBSPkkmJlI+Qj9SPC4wMT8oaT0wLHI9LjcwNzEwNjc4MSxvPS43MDcxMDY3ODEpOihpPU1hdGguc3FydChSKSxyPWVlL2ksbz1RL2kpOkk+Qj9JPC4wMT8oaT0uNzA3MTA2NzgxLHI9MCxvPS43MDcxMDY3ODEpOihyPU1hdGguc3FydChJKSxpPWVlL3Isbz13ZS9yKTpCPC4wMT8oaT0uNzA3MTA2NzgxLHI9LjcwNzEwNjc4MSxvPTApOihvPU1hdGguc3FydChCKSxpPVEvbyxyPXdlL28pLHRoaXMuc2V0KGkscixvLGUpLHRoaXN9bGV0IHg9TWF0aC5zcXJ0KChNLW0pKihNLW0pKyh1LV8pKih1LV8pKyhwLWQpKihwLWQpKTtyZXR1cm4gTWF0aC5hYnMoeCk8LjAwMSYmKHg9MSksdGhpcy54PShNLW0pL3gsdGhpcy55PSh1LV8pL3gsdGhpcy56PShwLWQpL3gsdGhpcy53PU1hdGguYWNvcygoYytoK3ktMSkvMiksdGhpc31taW4odCl7cmV0dXJuIHRoaXMueD1NYXRoLm1pbih0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5taW4odGhpcy55LHQueSksdGhpcy56PU1hdGgubWluKHRoaXMueix0LnopLHRoaXMudz1NYXRoLm1pbih0aGlzLncsdC53KSx0aGlzfW1heCh0KXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHRoaXMueCx0LngpLHRoaXMueT1NYXRoLm1heCh0aGlzLnksdC55KSx0aGlzLno9TWF0aC5tYXgodGhpcy56LHQueiksdGhpcy53PU1hdGgubWF4KHRoaXMudyx0LncpLHRoaXN9Y2xhbXAodCxlKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQueCxNYXRoLm1pbihlLngsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQueSxNYXRoLm1pbihlLnksdGhpcy55KSksdGhpcy56PU1hdGgubWF4KHQueixNYXRoLm1pbihlLnosdGhpcy56KSksdGhpcy53PU1hdGgubWF4KHQudyxNYXRoLm1pbihlLncsdGhpcy53KSksdGhpc31jbGFtcFNjYWxhcih0LGUpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy55KSksdGhpcy56PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLnopKSx0aGlzLnc9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMudykpLHRoaXN9Y2xhbXBMZW5ndGgodCxlKXtsZXQgaT10aGlzLmxlbmd0aCgpO3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcihpfHwxKS5tdWx0aXBseVNjYWxhcihNYXRoLm1heCh0LE1hdGgubWluKGUsaSkpKX1mbG9vcigpe3JldHVybiB0aGlzLng9TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT1NYXRoLmZsb29yKHRoaXMueSksdGhpcy56PU1hdGguZmxvb3IodGhpcy56KSx0aGlzLnc9TWF0aC5mbG9vcih0aGlzLncpLHRoaXN9Y2VpbCgpe3JldHVybiB0aGlzLng9TWF0aC5jZWlsKHRoaXMueCksdGhpcy55PU1hdGguY2VpbCh0aGlzLnkpLHRoaXMuej1NYXRoLmNlaWwodGhpcy56KSx0aGlzLnc9TWF0aC5jZWlsKHRoaXMudyksdGhpc31yb3VuZCgpe3JldHVybiB0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpLHRoaXMueT1NYXRoLnJvdW5kKHRoaXMueSksdGhpcy56PU1hdGgucm91bmQodGhpcy56KSx0aGlzLnc9TWF0aC5yb3VuZCh0aGlzLncpLHRoaXN9cm91bmRUb1plcm8oKXtyZXR1cm4gdGhpcy54PXRoaXMueDwwP01hdGguY2VpbCh0aGlzLngpOk1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9dGhpcy55PDA/TWF0aC5jZWlsKHRoaXMueSk6TWF0aC5mbG9vcih0aGlzLnkpLHRoaXMuej10aGlzLno8MD9NYXRoLmNlaWwodGhpcy56KTpNYXRoLmZsb29yKHRoaXMueiksdGhpcy53PXRoaXMudzwwP01hdGguY2VpbCh0aGlzLncpOk1hdGguZmxvb3IodGhpcy53KSx0aGlzfW5lZ2F0ZSgpe3JldHVybiB0aGlzLng9LXRoaXMueCx0aGlzLnk9LXRoaXMueSx0aGlzLno9LXRoaXMueix0aGlzLnc9LXRoaXMudyx0aGlzfWRvdCh0KXtyZXR1cm4gdGhpcy54KnQueCt0aGlzLnkqdC55K3RoaXMueip0LnordGhpcy53KnQud31sZW5ndGhTcSgpe3JldHVybiB0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkrdGhpcy56KnRoaXMueit0aGlzLncqdGhpcy53fWxlbmd0aCgpe3JldHVybiBNYXRoLnNxcnQodGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55K3RoaXMueip0aGlzLnordGhpcy53KnRoaXMudyl9bWFuaGF0dGFuTGVuZ3RoKCl7cmV0dXJuIE1hdGguYWJzKHRoaXMueCkrTWF0aC5hYnModGhpcy55KStNYXRoLmFicyh0aGlzLnopK01hdGguYWJzKHRoaXMudyl9bm9ybWFsaXplKCl7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKHRoaXMubGVuZ3RoKCl8fDEpfXNldExlbmd0aCh0KXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcih0KX1sZXJwKHQsZSl7cmV0dXJuIHRoaXMueCs9KHQueC10aGlzLngpKmUsdGhpcy55Kz0odC55LXRoaXMueSkqZSx0aGlzLnorPSh0LnotdGhpcy56KSplLHRoaXMudys9KHQudy10aGlzLncpKmUsdGhpc31sZXJwVmVjdG9ycyh0LGUsaSl7cmV0dXJuIHRoaXMueD10LngrKGUueC10LngpKmksdGhpcy55PXQueSsoZS55LXQueSkqaSx0aGlzLno9dC56KyhlLnotdC56KSppLHRoaXMudz10LncrKGUudy10LncpKmksdGhpc31lcXVhbHModCl7cmV0dXJuIHQueD09PXRoaXMueCYmdC55PT09dGhpcy55JiZ0Lno9PT10aGlzLnomJnQudz09PXRoaXMud31mcm9tQXJyYXkodCxlPTApe3JldHVybiB0aGlzLng9dFtlXSx0aGlzLnk9dFtlKzFdLHRoaXMuej10W2UrMl0sdGhpcy53PXRbZSszXSx0aGlzfXRvQXJyYXkodD1bXSxlPTApe3JldHVybiB0W2VdPXRoaXMueCx0W2UrMV09dGhpcy55LHRbZSsyXT10aGlzLnosdFtlKzNdPXRoaXMudyx0fWZyb21CdWZmZXJBdHRyaWJ1dGUodCxlLGkpe3JldHVybiB2b2lkIDAhPT1pJiZjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IG9mZnNldCBoYXMgYmVlbiByZW1vdmVkIGZyb20gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4iKSx0aGlzLng9dC5nZXRYKGUpLHRoaXMueT10LmdldFkoZSksdGhpcy56PXQuZ2V0WihlKSx0aGlzLnc9dC5nZXRXKGUpLHRoaXN9cmFuZG9tKCl7cmV0dXJuIHRoaXMueD1NYXRoLnJhbmRvbSgpLHRoaXMueT1NYXRoLnJhbmRvbSgpLHRoaXMuej1NYXRoLnJhbmRvbSgpLHRoaXMudz1NYXRoLnJhbmRvbSgpLHRoaXN9KltTeW1ib2wuaXRlcmF0b3JdKCl7eWllbGQgdGhpcy54LHlpZWxkIHRoaXMueSx5aWVsZCB0aGlzLnoseWllbGQgdGhpcy53fX07UWkucHJvdG90eXBlLmlzVmVjdG9yND0hMDt2YXIgdHM9Y2xhc3MgZXh0ZW5kcyB6ZHtjb25zdHJ1Y3Rvcih0LGUsaT17fSl7c3VwZXIoKSx0aGlzLndpZHRoPXQsdGhpcy5oZWlnaHQ9ZSx0aGlzLmRlcHRoPTEsdGhpcy5zY2lzc29yPW5ldyBRaSgwLDAsdCxlKSx0aGlzLnNjaXNzb3JUZXN0PSExLHRoaXMudmlld3BvcnQ9bmV3IFFpKDAsMCx0LGUpLHRoaXMudGV4dHVyZT1uZXcgbG8odm9pZCAwLGkubWFwcGluZyxpLndyYXBTLGkud3JhcFQsaS5tYWdGaWx0ZXIsaS5taW5GaWx0ZXIsaS5mb3JtYXQsaS50eXBlLGkuYW5pc290cm9weSxpLmVuY29kaW5nKSx0aGlzLnRleHR1cmUuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPSEwLHRoaXMudGV4dHVyZS5pbWFnZT17d2lkdGg6dCxoZWlnaHQ6ZSxkZXB0aDoxfSx0aGlzLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzPXZvaWQgMCE9PWkuZ2VuZXJhdGVNaXBtYXBzJiZpLmdlbmVyYXRlTWlwbWFwcyx0aGlzLnRleHR1cmUuaW50ZXJuYWxGb3JtYXQ9dm9pZCAwIT09aS5pbnRlcm5hbEZvcm1hdD9pLmludGVybmFsRm9ybWF0Om51bGwsdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj12b2lkIDAhPT1pLm1pbkZpbHRlcj9pLm1pbkZpbHRlcjppYSx0aGlzLmRlcHRoQnVmZmVyPXZvaWQgMD09PWkuZGVwdGhCdWZmZXJ8fGkuZGVwdGhCdWZmZXIsdGhpcy5zdGVuY2lsQnVmZmVyPXZvaWQgMCE9PWkuc3RlbmNpbEJ1ZmZlciYmaS5zdGVuY2lsQnVmZmVyLHRoaXMuZGVwdGhUZXh0dXJlPXZvaWQgMCE9PWkuZGVwdGhUZXh0dXJlP2kuZGVwdGhUZXh0dXJlOm51bGx9c2V0VGV4dHVyZSh0KXt0LmltYWdlPXt3aWR0aDp0aGlzLndpZHRoLGhlaWdodDp0aGlzLmhlaWdodCxkZXB0aDp0aGlzLmRlcHRofSx0aGlzLnRleHR1cmU9dH1zZXRTaXplKHQsZSxpPTEpeyh0aGlzLndpZHRoIT09dHx8dGhpcy5oZWlnaHQhPT1lfHx0aGlzLmRlcHRoIT09aSkmJih0aGlzLndpZHRoPXQsdGhpcy5oZWlnaHQ9ZSx0aGlzLmRlcHRoPWksdGhpcy50ZXh0dXJlLmltYWdlLndpZHRoPXQsdGhpcy50ZXh0dXJlLmltYWdlLmhlaWdodD1lLHRoaXMudGV4dHVyZS5pbWFnZS5kZXB0aD1pLHRoaXMuZGlzcG9zZSgpKSx0aGlzLnZpZXdwb3J0LnNldCgwLDAsdCxlKSx0aGlzLnNjaXNzb3Iuc2V0KDAsMCx0LGUpfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWNvcHkodCl7cmV0dXJuIHRoaXMud2lkdGg9dC53aWR0aCx0aGlzLmhlaWdodD10LmhlaWdodCx0aGlzLmRlcHRoPXQuZGVwdGgsdGhpcy52aWV3cG9ydC5jb3B5KHQudmlld3BvcnQpLHRoaXMudGV4dHVyZT10LnRleHR1cmUuY2xvbmUoKSx0aGlzLnRleHR1cmUuaW1hZ2U9T2JqZWN0LmFzc2lnbih7fSx0LnRleHR1cmUuaW1hZ2UpLHRoaXMuZGVwdGhCdWZmZXI9dC5kZXB0aEJ1ZmZlcix0aGlzLnN0ZW5jaWxCdWZmZXI9dC5zdGVuY2lsQnVmZmVyLHRoaXMuZGVwdGhUZXh0dXJlPXQuZGVwdGhUZXh0dXJlLHRoaXN9ZGlzcG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzcG9zZSJ9KX19O3RzLnByb3RvdHlwZS5pc1dlYkdMUmVuZGVyVGFyZ2V0PSEwLGNsYXNzIGV4dGVuZHMgdHN7Y29uc3RydWN0b3IodCxlLGkpe3N1cGVyKHQsZSk7bGV0IHI9dGhpcy50ZXh0dXJlO3RoaXMudGV4dHVyZT1bXTtmb3IobGV0IG89MDtvPGk7bysrKXRoaXMudGV4dHVyZVtvXT1yLmNsb25lKCl9c2V0U2l6ZSh0LGUsaT0xKXtpZih0aGlzLndpZHRoIT09dHx8dGhpcy5oZWlnaHQhPT1lfHx0aGlzLmRlcHRoIT09aSl7dGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PWUsdGhpcy5kZXB0aD1pO2ZvcihsZXQgcj0wLG89dGhpcy50ZXh0dXJlLmxlbmd0aDtyPG87cisrKXRoaXMudGV4dHVyZVtyXS5pbWFnZS53aWR0aD10LHRoaXMudGV4dHVyZVtyXS5pbWFnZS5oZWlnaHQ9ZSx0aGlzLnRleHR1cmVbcl0uaW1hZ2UuZGVwdGg9aTt0aGlzLmRpc3Bvc2UoKX1yZXR1cm4gdGhpcy52aWV3cG9ydC5zZXQoMCwwLHQsZSksdGhpcy5zY2lzc29yLnNldCgwLDAsdCxlKSx0aGlzfWNvcHkodCl7dGhpcy5kaXNwb3NlKCksdGhpcy53aWR0aD10LndpZHRoLHRoaXMuaGVpZ2h0PXQuaGVpZ2h0LHRoaXMuZGVwdGg9dC5kZXB0aCx0aGlzLnZpZXdwb3J0LnNldCgwLDAsdGhpcy53aWR0aCx0aGlzLmhlaWdodCksdGhpcy5zY2lzc29yLnNldCgwLDAsdGhpcy53aWR0aCx0aGlzLmhlaWdodCksdGhpcy5kZXB0aEJ1ZmZlcj10LmRlcHRoQnVmZmVyLHRoaXMuc3RlbmNpbEJ1ZmZlcj10LnN0ZW5jaWxCdWZmZXIsdGhpcy5kZXB0aFRleHR1cmU9dC5kZXB0aFRleHR1cmUsdGhpcy50ZXh0dXJlLmxlbmd0aD0wO2ZvcihsZXQgZT0wLGk9dC50ZXh0dXJlLmxlbmd0aDtlPGk7ZSsrKXRoaXMudGV4dHVyZVtlXT10LnRleHR1cmVbZV0uY2xvbmUoKTtyZXR1cm4gdGhpc319LnByb3RvdHlwZS5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzPSEwO3ZhciB3eD1jbGFzcyBleHRlbmRzIHRze2NvbnN0cnVjdG9yKHQsZSxpPXt9KXtzdXBlcih0LGUsaSksdGhpcy5zYW1wbGVzPTQsdGhpcy5pZ25vcmVEZXB0aEZvck11bHRpc2FtcGxlQ29weT12b2lkIDA9PT1pLmlnbm9yZURlcHRofHxpLmlnbm9yZURlcHRoLHRoaXMudXNlUmVuZGVyVG9UZXh0dXJlPXZvaWQgMCE9PWkudXNlUmVuZGVyVG9UZXh0dXJlJiZpLnVzZVJlbmRlclRvVGV4dHVyZSx0aGlzLnVzZVJlbmRlcmJ1ZmZlcj0hMT09PXRoaXMudXNlUmVuZGVyVG9UZXh0dXJlfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkuY2FsbCh0aGlzLHQpLHRoaXMuc2FtcGxlcz10LnNhbXBsZXMsdGhpcy51c2VSZW5kZXJUb1RleHR1cmU9dC51c2VSZW5kZXJUb1RleHR1cmUsdGhpcy51c2VSZW5kZXJidWZmZXI9dC51c2VSZW5kZXJidWZmZXIsdGhpc319O3d4LnByb3RvdHlwZS5pc1dlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQ9ITA7dmFyIG9hPWNsYXNze2NvbnN0cnVjdG9yKHQ9MCxlPTAsaT0wLHI9MSl7dGhpcy5feD10LHRoaXMuX3k9ZSx0aGlzLl96PWksdGhpcy5fdz1yfXN0YXRpYyBzbGVycCh0LGUsaSxyKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5RdWF0ZXJuaW9uOiBTdGF0aWMgLnNsZXJwKCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIHFtLnNsZXJwUXVhdGVybmlvbnMoIHFhLCBxYiwgdCApIGluc3RlYWQuIiksaS5zbGVycFF1YXRlcm5pb25zKHQsZSxyKX1zdGF0aWMgc2xlcnBGbGF0KHQsZSxpLHIsbyxhLHMpe2xldCBsPWlbciswXSxjPWlbcisxXSxkPWlbcisyXSx1PWlbciszXSxwPW9bYSswXSxoPW9bYSsxXSxtPW9bYSsyXSxfPW9bYSszXTtpZigwPT09cylyZXR1cm4gdFtlKzBdPWwsdFtlKzFdPWMsdFtlKzJdPWQsdm9pZCh0W2UrM109dSk7aWYoMT09PXMpcmV0dXJuIHRbZSswXT1wLHRbZSsxXT1oLHRbZSsyXT1tLHZvaWQodFtlKzNdPV8pO2lmKHUhPT1ffHxsIT09cHx8YyE9PWh8fGQhPT1tKXtsZXQgTT0xLXMseT1sKnArYypoK2QqbSt1Kl8seD15Pj0wPzE6LTEsUj0xLXkqeTtpZihSPk51bWJlci5FUFNJTE9OKXtsZXQgQj1NYXRoLnNxcnQoUiksZWU9TWF0aC5hdGFuMihCLHkqeCk7TT1NYXRoLnNpbihNKmVlKS9CLHM9TWF0aC5zaW4ocyplZSkvQn1sZXQgST1zKng7aWYobD1sKk0rcCpJLGM9YypNK2gqSSxkPWQqTSttKkksdT11Kk0rXypJLE09PT0xLXMpe2xldCBCPTEvTWF0aC5zcXJ0KGwqbCtjKmMrZCpkK3UqdSk7bCo9QixjKj1CLGQqPUIsdSo9Qn19dFtlXT1sLHRbZSsxXT1jLHRbZSsyXT1kLHRbZSszXT11fXN0YXRpYyBtdWx0aXBseVF1YXRlcm5pb25zRmxhdCh0LGUsaSxyLG8sYSl7bGV0IHM9aVtyXSxsPWlbcisxXSxjPWlbcisyXSxkPWlbciszXSx1PW9bYV0scD1vW2ErMV0saD1vW2ErMl0sbT1vW2ErM107cmV0dXJuIHRbZV09cyptK2QqdStsKmgtYypwLHRbZSsxXT1sKm0rZCpwK2MqdS1zKmgsdFtlKzJdPWMqbStkKmgrcypwLWwqdSx0W2UrM109ZCptLXMqdS1sKnAtYypoLHR9Z2V0IHgoKXtyZXR1cm4gdGhpcy5feH1zZXQgeCh0KXt0aGlzLl94PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCB5KCl7cmV0dXJuIHRoaXMuX3l9c2V0IHkodCl7dGhpcy5feT10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgeigpe3JldHVybiB0aGlzLl96fXNldCB6KHQpe3RoaXMuX3o9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IHcoKXtyZXR1cm4gdGhpcy5fd31zZXQgdyh0KXt0aGlzLl93PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfXNldCh0LGUsaSxyKXtyZXR1cm4gdGhpcy5feD10LHRoaXMuX3k9ZSx0aGlzLl96PWksdGhpcy5fdz1yLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMuX3gsdGhpcy5feSx0aGlzLl96LHRoaXMuX3cpfWNvcHkodCl7cmV0dXJuIHRoaXMuX3g9dC54LHRoaXMuX3k9dC55LHRoaXMuX3o9dC56LHRoaXMuX3c9dC53LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21FdWxlcih0LGUpe2lmKCF0fHwhdC5pc0V1bGVyKXRocm93IG5ldyBFcnJvcigiVEhSRUUuUXVhdGVybmlvbjogLnNldEZyb21FdWxlcigpIG5vdyBleHBlY3RzIGFuIEV1bGVyIHJvdGF0aW9uIHJhdGhlciB0aGFuIGEgVmVjdG9yMyBhbmQgb3JkZXIuIik7bGV0IGk9dC5feCxyPXQuX3ksbz10Ll96LGE9dC5fb3JkZXIscz1NYXRoLmNvcyxsPU1hdGguc2luLGM9cyhpLzIpLGQ9cyhyLzIpLHU9cyhvLzIpLHA9bChpLzIpLGg9bChyLzIpLG09bChvLzIpO3N3aXRjaChhKXtjYXNlIlhZWiI6dGhpcy5feD1wKmQqdStjKmgqbSx0aGlzLl95PWMqaCp1LXAqZCptLHRoaXMuX3o9YypkKm0rcCpoKnUsdGhpcy5fdz1jKmQqdS1wKmgqbTticmVhaztjYXNlIllYWiI6dGhpcy5feD1wKmQqdStjKmgqbSx0aGlzLl95PWMqaCp1LXAqZCptLHRoaXMuX3o9YypkKm0tcCpoKnUsdGhpcy5fdz1jKmQqdStwKmgqbTticmVhaztjYXNlIlpYWSI6dGhpcy5feD1wKmQqdS1jKmgqbSx0aGlzLl95PWMqaCp1K3AqZCptLHRoaXMuX3o9YypkKm0rcCpoKnUsdGhpcy5fdz1jKmQqdS1wKmgqbTticmVhaztjYXNlIlpZWCI6dGhpcy5feD1wKmQqdS1jKmgqbSx0aGlzLl95PWMqaCp1K3AqZCptLHRoaXMuX3o9YypkKm0tcCpoKnUsdGhpcy5fdz1jKmQqdStwKmgqbTticmVhaztjYXNlIllaWCI6dGhpcy5feD1wKmQqdStjKmgqbSx0aGlzLl95PWMqaCp1K3AqZCptLHRoaXMuX3o9YypkKm0tcCpoKnUsdGhpcy5fdz1jKmQqdS1wKmgqbTticmVhaztjYXNlIlhaWSI6dGhpcy5feD1wKmQqdS1jKmgqbSx0aGlzLl95PWMqaCp1LXAqZCptLHRoaXMuX3o9YypkKm0rcCpoKnUsdGhpcy5fdz1jKmQqdStwKmgqbTticmVhaztkZWZhdWx0OmNvbnNvbGUud2FybigiVEhSRUUuUXVhdGVybmlvbjogLnNldEZyb21FdWxlcigpIGVuY291bnRlcmVkIGFuIHVua25vd24gb3JkZXI6ICIrYSl9cmV0dXJuITEhPT1lJiZ0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tQXhpc0FuZ2xlKHQsZSl7bGV0IGk9ZS8yLHI9TWF0aC5zaW4oaSk7cmV0dXJuIHRoaXMuX3g9dC54KnIsdGhpcy5feT10Lnkqcix0aGlzLl96PXQueipyLHRoaXMuX3c9TWF0aC5jb3MoaSksdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9c2V0RnJvbVJvdGF0aW9uTWF0cml4KHQpe2xldCBlPXQuZWxlbWVudHMsaT1lWzBdLHI9ZVs0XSxvPWVbOF0sYT1lWzFdLHM9ZVs1XSxsPWVbOV0sYz1lWzJdLGQ9ZVs2XSx1PWVbMTBdLHA9aStzK3U7aWYocD4wKXtsZXQgaD0uNS9NYXRoLnNxcnQocCsxKTt0aGlzLl93PS4yNS9oLHRoaXMuX3g9KGQtbCkqaCx0aGlzLl95PShvLWMpKmgsdGhpcy5fej0oYS1yKSpofWVsc2UgaWYoaT5zJiZpPnUpe2xldCBoPTIqTWF0aC5zcXJ0KDEraS1zLXUpO3RoaXMuX3c9KGQtbCkvaCx0aGlzLl94PS4yNSpoLHRoaXMuX3k9KHIrYSkvaCx0aGlzLl96PShvK2MpL2h9ZWxzZSBpZihzPnUpe2xldCBoPTIqTWF0aC5zcXJ0KDErcy1pLXUpO3RoaXMuX3c9KG8tYykvaCx0aGlzLl94PShyK2EpL2gsdGhpcy5feT0uMjUqaCx0aGlzLl96PShsK2QpL2h9ZWxzZXtsZXQgaD0yKk1hdGguc3FydCgxK3UtaS1zKTt0aGlzLl93PShhLXIpL2gsdGhpcy5feD0obytjKS9oLHRoaXMuX3k9KGwrZCkvaCx0aGlzLl96PS4yNSpofXJldHVybiB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tVW5pdFZlY3RvcnModCxlKXtsZXQgaT10LmRvdChlKSsxO3JldHVybiBpPE51bWJlci5FUFNJTE9OPyhpPTAsTWF0aC5hYnModC54KT5NYXRoLmFicyh0LnopPyh0aGlzLl94PS10LnksdGhpcy5feT10LngsdGhpcy5fej0wLHRoaXMuX3c9aSk6KHRoaXMuX3g9MCx0aGlzLl95PS10LnosdGhpcy5fej10LnksdGhpcy5fdz1pKSk6KHRoaXMuX3g9dC55KmUuei10LnoqZS55LHRoaXMuX3k9dC56KmUueC10LngqZS56LHRoaXMuX3o9dC54KmUueS10LnkqZS54LHRoaXMuX3c9aSksdGhpcy5ub3JtYWxpemUoKX1hbmdsZVRvKHQpe3JldHVybiAyKk1hdGguYWNvcyhNYXRoLmFicyhlcyh0aGlzLmRvdCh0KSwtMSwxKSkpfXJvdGF0ZVRvd2FyZHModCxlKXtsZXQgaT10aGlzLmFuZ2xlVG8odCk7aWYoMD09PWkpcmV0dXJuIHRoaXM7bGV0IHI9TWF0aC5taW4oMSxlL2kpO3JldHVybiB0aGlzLnNsZXJwKHQsciksdGhpc31pZGVudGl0eSgpe3JldHVybiB0aGlzLnNldCgwLDAsMCwxKX1pbnZlcnQoKXtyZXR1cm4gdGhpcy5jb25qdWdhdGUoKX1jb25qdWdhdGUoKXtyZXR1cm4gdGhpcy5feCo9LTEsdGhpcy5feSo9LTEsdGhpcy5feio9LTEsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9ZG90KHQpe3JldHVybiB0aGlzLl94KnQuX3grdGhpcy5feSp0Ll95K3RoaXMuX3oqdC5feit0aGlzLl93KnQuX3d9bGVuZ3RoU3EoKXtyZXR1cm4gdGhpcy5feCp0aGlzLl94K3RoaXMuX3kqdGhpcy5feSt0aGlzLl96KnRoaXMuX3ordGhpcy5fdyp0aGlzLl93fWxlbmd0aCgpe3JldHVybiBNYXRoLnNxcnQodGhpcy5feCp0aGlzLl94K3RoaXMuX3kqdGhpcy5feSt0aGlzLl96KnRoaXMuX3ordGhpcy5fdyp0aGlzLl93KX1ub3JtYWxpemUoKXtsZXQgdD10aGlzLmxlbmd0aCgpO3JldHVybiAwPT09dD8odGhpcy5feD0wLHRoaXMuX3k9MCx0aGlzLl96PTAsdGhpcy5fdz0xKToodD0xL3QsdGhpcy5feD10aGlzLl94KnQsdGhpcy5feT10aGlzLl95KnQsdGhpcy5fej10aGlzLl96KnQsdGhpcy5fdz10aGlzLl93KnQpLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfW11bHRpcGx5KHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuUXVhdGVybmlvbjogLm11bHRpcGx5KCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAubXVsdGlwbHlRdWF0ZXJuaW9ucyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5tdWx0aXBseVF1YXRlcm5pb25zKHQsZSkpOnRoaXMubXVsdGlwbHlRdWF0ZXJuaW9ucyh0aGlzLHQpfXByZW11bHRpcGx5KHQpe3JldHVybiB0aGlzLm11bHRpcGx5UXVhdGVybmlvbnModCx0aGlzKX1tdWx0aXBseVF1YXRlcm5pb25zKHQsZSl7bGV0IGk9dC5feCxyPXQuX3ksbz10Ll96LGE9dC5fdyxzPWUuX3gsbD1lLl95LGM9ZS5feixkPWUuX3c7cmV0dXJuIHRoaXMuX3g9aSpkK2EqcytyKmMtbypsLHRoaXMuX3k9cipkK2EqbCtvKnMtaSpjLHRoaXMuX3o9bypkK2EqYytpKmwtcipzLHRoaXMuX3c9YSpkLWkqcy1yKmwtbypjLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNsZXJwKHQsZSl7aWYoMD09PWUpcmV0dXJuIHRoaXM7aWYoMT09PWUpcmV0dXJuIHRoaXMuY29weSh0KTtsZXQgaT10aGlzLl94LHI9dGhpcy5feSxvPXRoaXMuX3osYT10aGlzLl93LHM9YSp0Ll93K2kqdC5feCtyKnQuX3krbyp0Ll96O2lmKHM8MD8odGhpcy5fdz0tdC5fdyx0aGlzLl94PS10Ll94LHRoaXMuX3k9LXQuX3ksdGhpcy5fej0tdC5feixzPS1zKTp0aGlzLmNvcHkodCkscz49MSlyZXR1cm4gdGhpcy5fdz1hLHRoaXMuX3g9aSx0aGlzLl95PXIsdGhpcy5fej1vLHRoaXM7bGV0IGw9MS1zKnM7aWYobDw9TnVtYmVyLkVQU0lMT04pe2xldCBoPTEtZTtyZXR1cm4gdGhpcy5fdz1oKmErZSp0aGlzLl93LHRoaXMuX3g9aCppK2UqdGhpcy5feCx0aGlzLl95PWgqcitlKnRoaXMuX3ksdGhpcy5fej1oKm8rZSp0aGlzLl96LHRoaXMubm9ybWFsaXplKCksdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9bGV0IGM9TWF0aC5zcXJ0KGwpLGQ9TWF0aC5hdGFuMihjLHMpLHU9TWF0aC5zaW4oKDEtZSkqZCkvYyxwPU1hdGguc2luKGUqZCkvYztyZXR1cm4gdGhpcy5fdz1hKnUrdGhpcy5fdypwLHRoaXMuX3g9aSp1K3RoaXMuX3gqcCx0aGlzLl95PXIqdSt0aGlzLl95KnAsdGhpcy5fej1vKnUrdGhpcy5feipwLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNsZXJwUXVhdGVybmlvbnModCxlLGkpe3JldHVybiB0aGlzLmNvcHkodCkuc2xlcnAoZSxpKX1yYW5kb20oKXtsZXQgdD1NYXRoLnJhbmRvbSgpLGU9TWF0aC5zcXJ0KDEtdCksaT1NYXRoLnNxcnQodCkscj0yKk1hdGguUEkqTWF0aC5yYW5kb20oKSxvPTIqTWF0aC5QSSpNYXRoLnJhbmRvbSgpO3JldHVybiB0aGlzLnNldChlKk1hdGguY29zKHIpLGkqTWF0aC5zaW4obyksaSpNYXRoLmNvcyhvKSxlKk1hdGguc2luKHIpKX1lcXVhbHModCl7cmV0dXJuIHQuX3g9PT10aGlzLl94JiZ0Ll95PT09dGhpcy5feSYmdC5fej09PXRoaXMuX3omJnQuX3c9PT10aGlzLl93fWZyb21BcnJheSh0LGU9MCl7cmV0dXJuIHRoaXMuX3g9dFtlXSx0aGlzLl95PXRbZSsxXSx0aGlzLl96PXRbZSsyXSx0aGlzLl93PXRbZSszXSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLl94LHRbZSsxXT10aGlzLl95LHRbZSsyXT10aGlzLl96LHRbZSszXT10aGlzLl93LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUpe3JldHVybiB0aGlzLl94PXQuZ2V0WChlKSx0aGlzLl95PXQuZ2V0WShlKSx0aGlzLl96PXQuZ2V0WihlKSx0aGlzLl93PXQuZ2V0VyhlKSx0aGlzfV9vbkNoYW5nZSh0KXtyZXR1cm4gdGhpcy5fb25DaGFuZ2VDYWxsYmFjaz10LHRoaXN9X29uQ2hhbmdlQ2FsbGJhY2soKXt9fTtvYS5wcm90b3R5cGUuaXNRdWF0ZXJuaW9uPSEwO3ZhciBLPWNsYXNze2NvbnN0cnVjdG9yKHQ9MCxlPTAsaT0wKXt0aGlzLng9dCx0aGlzLnk9ZSx0aGlzLno9aX1zZXQodCxlLGkpe3JldHVybiB2b2lkIDA9PT1pJiYoaT10aGlzLnopLHRoaXMueD10LHRoaXMueT1lLHRoaXMuej1pLHRoaXN9c2V0U2NhbGFyKHQpe3JldHVybiB0aGlzLng9dCx0aGlzLnk9dCx0aGlzLno9dCx0aGlzfXNldFgodCl7cmV0dXJuIHRoaXMueD10LHRoaXN9c2V0WSh0KXtyZXR1cm4gdGhpcy55PXQsdGhpc31zZXRaKHQpe3JldHVybiB0aGlzLno9dCx0aGlzfXNldENvbXBvbmVudCh0LGUpe3N3aXRjaCh0KXtjYXNlIDA6dGhpcy54PWU7YnJlYWs7Y2FzZSAxOnRoaXMueT1lO2JyZWFrO2Nhc2UgMjp0aGlzLno9ZTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAiK3QpfXJldHVybiB0aGlzfWdldENvbXBvbmVudCh0KXtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiB0aGlzLng7Y2FzZSAxOnJldHVybiB0aGlzLnk7Y2FzZSAyOnJldHVybiB0aGlzLno7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX19Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy54LHRoaXMueSx0aGlzLnopfWNvcHkodCl7cmV0dXJuIHRoaXMueD10LngsdGhpcy55PXQueSx0aGlzLno9dC56LHRoaXN9YWRkKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmFkZCgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLmFkZFZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuYWRkVmVjdG9ycyh0LGUpKToodGhpcy54Kz10LngsdGhpcy55Kz10LnksdGhpcy56Kz10LnosdGhpcyl9YWRkU2NhbGFyKHQpe3JldHVybiB0aGlzLngrPXQsdGhpcy55Kz10LHRoaXMueis9dCx0aGlzfWFkZFZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueCtlLngsdGhpcy55PXQueStlLnksdGhpcy56PXQueitlLnosdGhpc31hZGRTY2FsZWRWZWN0b3IodCxlKXtyZXR1cm4gdGhpcy54Kz10LngqZSx0aGlzLnkrPXQueSplLHRoaXMueis9dC56KmUsdGhpc31zdWIodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuc3ViKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuc3ViVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5zdWJWZWN0b3JzKHQsZSkpOih0aGlzLngtPXQueCx0aGlzLnktPXQueSx0aGlzLnotPXQueix0aGlzKX1zdWJTY2FsYXIodCl7cmV0dXJuIHRoaXMueC09dCx0aGlzLnktPXQsdGhpcy56LT10LHRoaXN9c3ViVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54LWUueCx0aGlzLnk9dC55LWUueSx0aGlzLno9dC56LWUueix0aGlzfW11bHRpcGx5KHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLm11bHRpcGx5KCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAubXVsdGlwbHlWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLm11bHRpcGx5VmVjdG9ycyh0LGUpKToodGhpcy54Kj10LngsdGhpcy55Kj10LnksdGhpcy56Kj10LnosdGhpcyl9bXVsdGlwbHlTY2FsYXIodCl7cmV0dXJuIHRoaXMueCo9dCx0aGlzLnkqPXQsdGhpcy56Kj10LHRoaXN9bXVsdGlwbHlWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngqZS54LHRoaXMueT10LnkqZS55LHRoaXMuej10LnoqZS56LHRoaXN9YXBwbHlFdWxlcih0KXtyZXR1cm4gdCYmdC5pc0V1bGVyfHxjb25zb2xlLmVycm9yKCJUSFJFRS5WZWN0b3IzOiAuYXBwbHlFdWxlcigpIG5vdyBleHBlY3RzIGFuIEV1bGVyIHJvdGF0aW9uIHJhdGhlciB0aGFuIGEgVmVjdG9yMyBhbmQgb3JkZXIuIiksdGhpcy5hcHBseVF1YXRlcm5pb24oaWVlLnNldEZyb21FdWxlcih0KSl9YXBwbHlBeGlzQW5nbGUodCxlKXtyZXR1cm4gdGhpcy5hcHBseVF1YXRlcm5pb24oaWVlLnNldEZyb21BeGlzQW5nbGUodCxlKSl9YXBwbHlNYXRyaXgzKHQpe2xldCBlPXRoaXMueCxpPXRoaXMueSxyPXRoaXMueixvPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMueD1vWzBdKmUrb1szXSppK29bNl0qcix0aGlzLnk9b1sxXSplK29bNF0qaStvWzddKnIsdGhpcy56PW9bMl0qZStvWzVdKmkrb1s4XSpyLHRoaXN9YXBwbHlOb3JtYWxNYXRyaXgodCl7cmV0dXJuIHRoaXMuYXBwbHlNYXRyaXgzKHQpLm5vcm1hbGl6ZSgpfWFwcGx5TWF0cml4NCh0KXtsZXQgZT10aGlzLngsaT10aGlzLnkscj10aGlzLnosbz10LmVsZW1lbnRzLGE9MS8ob1szXSplK29bN10qaStvWzExXSpyK29bMTVdKTtyZXR1cm4gdGhpcy54PShvWzBdKmUrb1s0XSppK29bOF0qcitvWzEyXSkqYSx0aGlzLnk9KG9bMV0qZStvWzVdKmkrb1s5XSpyK29bMTNdKSphLHRoaXMuej0ob1syXSplK29bNl0qaStvWzEwXSpyK29bMTRdKSphLHRoaXN9YXBwbHlRdWF0ZXJuaW9uKHQpe2xldCBlPXRoaXMueCxpPXRoaXMueSxyPXRoaXMueixvPXQueCxhPXQueSxzPXQueixsPXQudyxjPWwqZSthKnItcyppLGQ9bCppK3MqZS1vKnIsdT1sKnIrbyppLWEqZSxwPS1vKmUtYSppLXMqcjtyZXR1cm4gdGhpcy54PWMqbCtwKi1vK2QqLXMtdSotYSx0aGlzLnk9ZCpsK3AqLWErdSotby1jKi1zLHRoaXMuej11KmwrcCotcytjKi1hLWQqLW8sdGhpc31wcm9qZWN0KHQpe3JldHVybiB0aGlzLmFwcGx5TWF0cml4NCh0Lm1hdHJpeFdvcmxkSW52ZXJzZSkuYXBwbHlNYXRyaXg0KHQucHJvamVjdGlvbk1hdHJpeCl9dW5wcm9qZWN0KHQpe3JldHVybiB0aGlzLmFwcGx5TWF0cml4NCh0LnByb2plY3Rpb25NYXRyaXhJbnZlcnNlKS5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCl9dHJhbnNmb3JtRGlyZWN0aW9uKHQpe2xldCBlPXRoaXMueCxpPXRoaXMueSxyPXRoaXMueixvPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMueD1vWzBdKmUrb1s0XSppK29bOF0qcix0aGlzLnk9b1sxXSplK29bNV0qaStvWzldKnIsdGhpcy56PW9bMl0qZStvWzZdKmkrb1sxMF0qcix0aGlzLm5vcm1hbGl6ZSgpfWRpdmlkZSh0KXtyZXR1cm4gdGhpcy54Lz10LngsdGhpcy55Lz10LnksdGhpcy56Lz10LnosdGhpc31kaXZpZGVTY2FsYXIodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlTY2FsYXIoMS90KX1taW4odCl7cmV0dXJuIHRoaXMueD1NYXRoLm1pbih0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5taW4odGhpcy55LHQueSksdGhpcy56PU1hdGgubWluKHRoaXMueix0LnopLHRoaXN9bWF4KHQpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodGhpcy54LHQueCksdGhpcy55PU1hdGgubWF4KHRoaXMueSx0LnkpLHRoaXMuej1NYXRoLm1heCh0aGlzLnosdC56KSx0aGlzfWNsYW1wKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LngsTWF0aC5taW4oZS54LHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LnksTWF0aC5taW4oZS55LHRoaXMueSkpLHRoaXMuej1NYXRoLm1heCh0LnosTWF0aC5taW4oZS56LHRoaXMueikpLHRoaXN9Y2xhbXBTY2FsYXIodCxlKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueSkpLHRoaXMuej1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy56KSksdGhpc31jbGFtcExlbmd0aCh0LGUpe2xldCBpPXRoaXMubGVuZ3RoKCk7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKGl8fDEpLm11bHRpcGx5U2NhbGFyKE1hdGgubWF4KHQsTWF0aC5taW4oZSxpKSkpfWZsb29yKCl7cmV0dXJuIHRoaXMueD1NYXRoLmZsb29yKHRoaXMueCksdGhpcy55PU1hdGguZmxvb3IodGhpcy55KSx0aGlzLno9TWF0aC5mbG9vcih0aGlzLnopLHRoaXN9Y2VpbCgpe3JldHVybiB0aGlzLng9TWF0aC5jZWlsKHRoaXMueCksdGhpcy55PU1hdGguY2VpbCh0aGlzLnkpLHRoaXMuej1NYXRoLmNlaWwodGhpcy56KSx0aGlzfXJvdW5kKCl7cmV0dXJuIHRoaXMueD1NYXRoLnJvdW5kKHRoaXMueCksdGhpcy55PU1hdGgucm91bmQodGhpcy55KSx0aGlzLno9TWF0aC5yb3VuZCh0aGlzLnopLHRoaXN9cm91bmRUb1plcm8oKXtyZXR1cm4gdGhpcy54PXRoaXMueDwwP01hdGguY2VpbCh0aGlzLngpOk1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9dGhpcy55PDA/TWF0aC5jZWlsKHRoaXMueSk6TWF0aC5mbG9vcih0aGlzLnkpLHRoaXMuej10aGlzLno8MD9NYXRoLmNlaWwodGhpcy56KTpNYXRoLmZsb29yKHRoaXMueiksdGhpc31uZWdhdGUoKXtyZXR1cm4gdGhpcy54PS10aGlzLngsdGhpcy55PS10aGlzLnksdGhpcy56PS10aGlzLnosdGhpc31kb3QodCl7cmV0dXJuIHRoaXMueCp0LngrdGhpcy55KnQueSt0aGlzLnoqdC56fWxlbmd0aFNxKCl7cmV0dXJuIHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueSt0aGlzLnoqdGhpcy56fWxlbmd0aCgpe3JldHVybiBNYXRoLnNxcnQodGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55K3RoaXMueip0aGlzLnopfW1hbmhhdHRhbkxlbmd0aCgpe3JldHVybiBNYXRoLmFicyh0aGlzLngpK01hdGguYWJzKHRoaXMueSkrTWF0aC5hYnModGhpcy56KX1ub3JtYWxpemUoKXtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIodGhpcy5sZW5ndGgoKXx8MSl9c2V0TGVuZ3RoKHQpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLm11bHRpcGx5U2NhbGFyKHQpfWxlcnAodCxlKXtyZXR1cm4gdGhpcy54Kz0odC54LXRoaXMueCkqZSx0aGlzLnkrPSh0LnktdGhpcy55KSplLHRoaXMueis9KHQuei10aGlzLnopKmUsdGhpc31sZXJwVmVjdG9ycyh0LGUsaSl7cmV0dXJuIHRoaXMueD10LngrKGUueC10LngpKmksdGhpcy55PXQueSsoZS55LXQueSkqaSx0aGlzLno9dC56KyhlLnotdC56KSppLHRoaXN9Y3Jvc3ModCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuY3Jvc3MoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5jcm9zc1ZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuY3Jvc3NWZWN0b3JzKHQsZSkpOnRoaXMuY3Jvc3NWZWN0b3JzKHRoaXMsdCl9Y3Jvc3NWZWN0b3JzKHQsZSl7bGV0IGk9dC54LHI9dC55LG89dC56LGE9ZS54LHM9ZS55LGw9ZS56O3JldHVybiB0aGlzLng9cipsLW8qcyx0aGlzLnk9byphLWkqbCx0aGlzLno9aSpzLXIqYSx0aGlzfXByb2plY3RPblZlY3Rvcih0KXtsZXQgZT10Lmxlbmd0aFNxKCk7aWYoMD09PWUpcmV0dXJuIHRoaXMuc2V0KDAsMCwwKTtsZXQgaT10LmRvdCh0aGlzKS9lO3JldHVybiB0aGlzLmNvcHkodCkubXVsdGlwbHlTY2FsYXIoaSl9cHJvamVjdE9uUGxhbmUodCl7cmV0dXJuIHYzLmNvcHkodGhpcykucHJvamVjdE9uVmVjdG9yKHQpLHRoaXMuc3ViKHYzKX1yZWZsZWN0KHQpe3JldHVybiB0aGlzLnN1Yih2My5jb3B5KHQpLm11bHRpcGx5U2NhbGFyKDIqdGhpcy5kb3QodCkpKX1hbmdsZVRvKHQpe2xldCBlPU1hdGguc3FydCh0aGlzLmxlbmd0aFNxKCkqdC5sZW5ndGhTcSgpKTtpZigwPT09ZSlyZXR1cm4gTWF0aC5QSS8yO2xldCBpPXRoaXMuZG90KHQpL2U7cmV0dXJuIE1hdGguYWNvcyhlcyhpLC0xLDEpKX1kaXN0YW5jZVRvKHQpe3JldHVybiBNYXRoLnNxcnQodGhpcy5kaXN0YW5jZVRvU3F1YXJlZCh0KSl9ZGlzdGFuY2VUb1NxdWFyZWQodCl7bGV0IGU9dGhpcy54LXQueCxpPXRoaXMueS10Lnkscj10aGlzLnotdC56O3JldHVybiBlKmUraSppK3Iqcn1tYW5oYXR0YW5EaXN0YW5jZVRvKHQpe3JldHVybiBNYXRoLmFicyh0aGlzLngtdC54KStNYXRoLmFicyh0aGlzLnktdC55KStNYXRoLmFicyh0aGlzLnotdC56KX1zZXRGcm9tU3BoZXJpY2FsKHQpe3JldHVybiB0aGlzLnNldEZyb21TcGhlcmljYWxDb29yZHModC5yYWRpdXMsdC5waGksdC50aGV0YSl9c2V0RnJvbVNwaGVyaWNhbENvb3Jkcyh0LGUsaSl7bGV0IHI9TWF0aC5zaW4oZSkqdDtyZXR1cm4gdGhpcy54PXIqTWF0aC5zaW4oaSksdGhpcy55PU1hdGguY29zKGUpKnQsdGhpcy56PXIqTWF0aC5jb3MoaSksdGhpc31zZXRGcm9tQ3lsaW5kcmljYWwodCl7cmV0dXJuIHRoaXMuc2V0RnJvbUN5bGluZHJpY2FsQ29vcmRzKHQucmFkaXVzLHQudGhldGEsdC55KX1zZXRGcm9tQ3lsaW5kcmljYWxDb29yZHModCxlLGkpe3JldHVybiB0aGlzLng9dCpNYXRoLnNpbihlKSx0aGlzLnk9aSx0aGlzLno9dCpNYXRoLmNvcyhlKSx0aGlzfXNldEZyb21NYXRyaXhQb3NpdGlvbih0KXtsZXQgZT10LmVsZW1lbnRzO3JldHVybiB0aGlzLng9ZVsxMl0sdGhpcy55PWVbMTNdLHRoaXMuej1lWzE0XSx0aGlzfXNldEZyb21NYXRyaXhTY2FsZSh0KXtsZXQgZT10aGlzLnNldEZyb21NYXRyaXhDb2x1bW4odCwwKS5sZW5ndGgoKSxpPXRoaXMuc2V0RnJvbU1hdHJpeENvbHVtbih0LDEpLmxlbmd0aCgpLHI9dGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKHQsMikubGVuZ3RoKCk7cmV0dXJuIHRoaXMueD1lLHRoaXMueT1pLHRoaXMuej1yLHRoaXN9c2V0RnJvbU1hdHJpeENvbHVtbih0LGUpe3JldHVybiB0aGlzLmZyb21BcnJheSh0LmVsZW1lbnRzLDQqZSl9c2V0RnJvbU1hdHJpeDNDb2x1bW4odCxlKXtyZXR1cm4gdGhpcy5mcm9tQXJyYXkodC5lbGVtZW50cywzKmUpfWVxdWFscyh0KXtyZXR1cm4gdC54PT09dGhpcy54JiZ0Lnk9PT10aGlzLnkmJnQuej09PXRoaXMuen1mcm9tQXJyYXkodCxlPTApe3JldHVybiB0aGlzLng9dFtlXSx0aGlzLnk9dFtlKzFdLHRoaXMuej10W2UrMl0sdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLngsdFtlKzFdPXRoaXMueSx0W2UrMl09dGhpcy56LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsaSl7cmV0dXJuIHZvaWQgMCE9PWkmJmNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogb2Zmc2V0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMueD10LmdldFgoZSksdGhpcy55PXQuZ2V0WShlKSx0aGlzLno9dC5nZXRaKGUpLHRoaXN9cmFuZG9tKCl7cmV0dXJuIHRoaXMueD1NYXRoLnJhbmRvbSgpLHRoaXMueT1NYXRoLnJhbmRvbSgpLHRoaXMuej1NYXRoLnJhbmRvbSgpLHRoaXN9cmFuZG9tRGlyZWN0aW9uKCl7bGV0IHQ9MiooTWF0aC5yYW5kb20oKS0uNSksZT1NYXRoLnJhbmRvbSgpKk1hdGguUEkqMixpPU1hdGguc3FydCgxLXQqKjIpO3JldHVybiB0aGlzLng9aSpNYXRoLmNvcyhlKSx0aGlzLnk9aSpNYXRoLnNpbihlKSx0aGlzLno9dCx0aGlzfSpbU3ltYm9sLml0ZXJhdG9yXSgpe3lpZWxkIHRoaXMueCx5aWVsZCB0aGlzLnkseWllbGQgdGhpcy56fX07Sy5wcm90b3R5cGUuaXNWZWN0b3IzPSEwO3ZhciB2Mz1uZXcgSyxpZWU9bmV3IG9hLFRzPWNsYXNze2NvbnN0cnVjdG9yKHQ9bmV3IEsoMS8wLDEvMCwxLzApLGU9bmV3IEsoLTEvMCwtMS8wLC0xLzApKXt0aGlzLm1pbj10LHRoaXMubWF4PWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMubWluLmNvcHkodCksdGhpcy5tYXguY29weShlKSx0aGlzfXNldEZyb21BcnJheSh0KXtsZXQgZT0xLzAsaT0xLzAscj0xLzAsbz0tMS8wLGE9LTEvMCxzPS0xLzA7Zm9yKGxldCBsPTAsYz10Lmxlbmd0aDtsPGM7bCs9Myl7bGV0IGQ9dFtsXSx1PXRbbCsxXSxwPXRbbCsyXTtkPGUmJihlPWQpLHU8aSYmKGk9dSkscDxyJiYocj1wKSxkPm8mJihvPWQpLHU+YSYmKGE9dSkscD5zJiYocz1wKX1yZXR1cm4gdGhpcy5taW4uc2V0KGUsaSxyKSx0aGlzLm1heC5zZXQobyxhLHMpLHRoaXN9c2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZSh0KXtsZXQgZT0xLzAsaT0xLzAscj0xLzAsbz0tMS8wLGE9LTEvMCxzPS0xLzA7Zm9yKGxldCBsPTAsYz10LmNvdW50O2w8YztsKyspe2xldCBkPXQuZ2V0WChsKSx1PXQuZ2V0WShsKSxwPXQuZ2V0WihsKTtkPGUmJihlPWQpLHU8aSYmKGk9dSkscDxyJiYocj1wKSxkPm8mJihvPWQpLHU+YSYmKGE9dSkscD5zJiYocz1wKX1yZXR1cm4gdGhpcy5taW4uc2V0KGUsaSxyKSx0aGlzLm1heC5zZXQobyxhLHMpLHRoaXN9c2V0RnJvbVBvaW50cyh0KXt0aGlzLm1ha2VFbXB0eSgpO2ZvcihsZXQgZT0wLGk9dC5sZW5ndGg7ZTxpO2UrKyl0aGlzLmV4cGFuZEJ5UG9pbnQodFtlXSk7cmV0dXJuIHRoaXN9c2V0RnJvbUNlbnRlckFuZFNpemUodCxlKXtsZXQgaT1wbS5jb3B5KGUpLm11bHRpcGx5U2NhbGFyKC41KTtyZXR1cm4gdGhpcy5taW4uY29weSh0KS5zdWIoaSksdGhpcy5tYXguY29weSh0KS5hZGQoaSksdGhpc31zZXRGcm9tT2JqZWN0KHQsZT0hMSl7cmV0dXJuIHRoaXMubWFrZUVtcHR5KCksdGhpcy5leHBhbmRCeU9iamVjdCh0LGUpfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWNvcHkodCl7cmV0dXJuIHRoaXMubWluLmNvcHkodC5taW4pLHRoaXMubWF4LmNvcHkodC5tYXgpLHRoaXN9bWFrZUVtcHR5KCl7cmV0dXJuIHRoaXMubWluLng9dGhpcy5taW4ueT10aGlzLm1pbi56PTEvMCx0aGlzLm1heC54PXRoaXMubWF4Lnk9dGhpcy5tYXguej0tMS8wLHRoaXN9aXNFbXB0eSgpe3JldHVybiB0aGlzLm1heC54PHRoaXMubWluLnh8fHRoaXMubWF4Lnk8dGhpcy5taW4ueXx8dGhpcy5tYXguejx0aGlzLm1pbi56fWdldENlbnRlcih0KXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/dC5zZXQoMCwwLDApOnQuYWRkVmVjdG9ycyh0aGlzLm1pbix0aGlzLm1heCkubXVsdGlwbHlTY2FsYXIoLjUpfWdldFNpemUodCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpP3Quc2V0KDAsMCwwKTp0LnN1YlZlY3RvcnModGhpcy5tYXgsdGhpcy5taW4pfWV4cGFuZEJ5UG9pbnQodCl7cmV0dXJuIHRoaXMubWluLm1pbih0KSx0aGlzLm1heC5tYXgodCksdGhpc31leHBhbmRCeVZlY3Rvcih0KXtyZXR1cm4gdGhpcy5taW4uc3ViKHQpLHRoaXMubWF4LmFkZCh0KSx0aGlzfWV4cGFuZEJ5U2NhbGFyKHQpe3JldHVybiB0aGlzLm1pbi5hZGRTY2FsYXIoLXQpLHRoaXMubWF4LmFkZFNjYWxhcih0KSx0aGlzfWV4cGFuZEJ5T2JqZWN0KHQsZT0hMSl7dC51cGRhdGVXb3JsZE1hdHJpeCghMSwhMSk7bGV0IGk9dC5nZW9tZXRyeTtpZih2b2lkIDAhPT1pKWlmKGUmJm51bGwhPWkuYXR0cmlidXRlcyYmdm9pZCAwIT09aS5hdHRyaWJ1dGVzLnBvc2l0aW9uKXtsZXQgbz1pLmF0dHJpYnV0ZXMucG9zaXRpb247Zm9yKGxldCBhPTAscz1vLmNvdW50O2E8czthKyspcG0uZnJvbUJ1ZmZlckF0dHJpYnV0ZShvLGEpLmFwcGx5TWF0cml4NCh0Lm1hdHJpeFdvcmxkKSx0aGlzLmV4cGFuZEJ5UG9pbnQocG0pfWVsc2UgbnVsbD09PWkuYm91bmRpbmdCb3gmJmkuY29tcHV0ZUJvdW5kaW5nQm94KCkseTMuY29weShpLmJvdW5kaW5nQm94KSx5My5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCksdGhpcy51bmlvbih5Myk7bGV0IHI9dC5jaGlsZHJlbjtmb3IobGV0IG89MCxhPXIubGVuZ3RoO288YTtvKyspdGhpcy5leHBhbmRCeU9iamVjdChyW29dLGUpO3JldHVybiB0aGlzfWNvbnRhaW5zUG9pbnQodCl7cmV0dXJuISh0Lng8dGhpcy5taW4ueHx8dC54PnRoaXMubWF4Lnh8fHQueTx0aGlzLm1pbi55fHx0Lnk+dGhpcy5tYXgueXx8dC56PHRoaXMubWluLnp8fHQuej50aGlzLm1heC56KX1jb250YWluc0JveCh0KXtyZXR1cm4gdGhpcy5taW4ueDw9dC5taW4ueCYmdC5tYXgueDw9dGhpcy5tYXgueCYmdGhpcy5taW4ueTw9dC5taW4ueSYmdC5tYXgueTw9dGhpcy5tYXgueSYmdGhpcy5taW4uejw9dC5taW4ueiYmdC5tYXguejw9dGhpcy5tYXguen1nZXRQYXJhbWV0ZXIodCxlKXtyZXR1cm4gZS5zZXQoKHQueC10aGlzLm1pbi54KS8odGhpcy5tYXgueC10aGlzLm1pbi54KSwodC55LXRoaXMubWluLnkpLyh0aGlzLm1heC55LXRoaXMubWluLnkpLCh0LnotdGhpcy5taW4ueikvKHRoaXMubWF4LnotdGhpcy5taW4ueikpfWludGVyc2VjdHNCb3godCl7cmV0dXJuISh0Lm1heC54PHRoaXMubWluLnh8fHQubWluLng+dGhpcy5tYXgueHx8dC5tYXgueTx0aGlzLm1pbi55fHx0Lm1pbi55PnRoaXMubWF4Lnl8fHQubWF4Lno8dGhpcy5taW4uenx8dC5taW4uej50aGlzLm1heC56KX1pbnRlcnNlY3RzU3BoZXJlKHQpe3JldHVybiB0aGlzLmNsYW1wUG9pbnQodC5jZW50ZXIscG0pLHBtLmRpc3RhbmNlVG9TcXVhcmVkKHQuY2VudGVyKTw9dC5yYWRpdXMqdC5yYWRpdXN9aW50ZXJzZWN0c1BsYW5lKHQpe2xldCBlLGk7cmV0dXJuIHQubm9ybWFsLng+MD8oZT10Lm5vcm1hbC54KnRoaXMubWluLngsaT10Lm5vcm1hbC54KnRoaXMubWF4LngpOihlPXQubm9ybWFsLngqdGhpcy5tYXgueCxpPXQubm9ybWFsLngqdGhpcy5taW4ueCksdC5ub3JtYWwueT4wPyhlKz10Lm5vcm1hbC55KnRoaXMubWluLnksaSs9dC5ub3JtYWwueSp0aGlzLm1heC55KTooZSs9dC5ub3JtYWwueSp0aGlzLm1heC55LGkrPXQubm9ybWFsLnkqdGhpcy5taW4ueSksdC5ub3JtYWwuej4wPyhlKz10Lm5vcm1hbC56KnRoaXMubWluLnosaSs9dC5ub3JtYWwueip0aGlzLm1heC56KTooZSs9dC5ub3JtYWwueip0aGlzLm1heC56LGkrPXQubm9ybWFsLnoqdGhpcy5taW4ueiksZTw9LXQuY29uc3RhbnQmJmk+PS10LmNvbnN0YW50fWludGVyc2VjdHNUcmlhbmdsZSh0KXtpZih0aGlzLmlzRW1wdHkoKSlyZXR1cm4hMTt0aGlzLmdldENlbnRlcihveCksakQuc3ViVmVjdG9ycyh0aGlzLm1heCxveCksdzAuc3ViVmVjdG9ycyh0LmEsb3gpLFMwLnN1YlZlY3RvcnModC5iLG94KSxFMC5zdWJWZWN0b3JzKHQuYyxveCksdXAuc3ViVmVjdG9ycyhTMCx3MCkscHAuc3ViVmVjdG9ycyhFMCxTMCksaG0uc3ViVmVjdG9ycyh3MCxFMCk7bGV0IGU9WzAsLXVwLnosdXAueSwwLC1wcC56LHBwLnksMCwtaG0ueixobS55LHVwLnosMCwtdXAueCxwcC56LDAsLXBwLngsaG0ueiwwLC1obS54LC11cC55LHVwLngsMCwtcHAueSxwcC54LDAsLWhtLnksaG0ueCwwXTtyZXR1cm4hKCF4MyhlLHcwLFMwLEUwLGpEKXx8KGU9WzEsMCwwLDAsMSwwLDAsMCwxXSwheDMoZSx3MCxTMCxFMCxqRCkpKSYmKEdELmNyb3NzVmVjdG9ycyh1cCxwcCksZT1bR0QueCxHRC55LEdELnpdLHgzKGUsdzAsUzAsRTAsakQpKX1jbGFtcFBvaW50KHQsZSl7cmV0dXJuIGUuY29weSh0KS5jbGFtcCh0aGlzLm1pbix0aGlzLm1heCl9ZGlzdGFuY2VUb1BvaW50KHQpe3JldHVybiBwbS5jb3B5KHQpLmNsYW1wKHRoaXMubWluLHRoaXMubWF4KS5zdWIodCkubGVuZ3RoKCl9Z2V0Qm91bmRpbmdTcGhlcmUodCl7cmV0dXJuIHRoaXMuZ2V0Q2VudGVyKHQuY2VudGVyKSx0LnJhZGl1cz0uNSp0aGlzLmdldFNpemUocG0pLmxlbmd0aCgpLHR9aW50ZXJzZWN0KHQpe3JldHVybiB0aGlzLm1pbi5tYXgodC5taW4pLHRoaXMubWF4Lm1pbih0Lm1heCksdGhpcy5pc0VtcHR5KCkmJnRoaXMubWFrZUVtcHR5KCksdGhpc311bmlvbih0KXtyZXR1cm4gdGhpcy5taW4ubWluKHQubWluKSx0aGlzLm1heC5tYXgodC5tYXgpLHRoaXN9YXBwbHlNYXRyaXg0KHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKXx8KEZkWzBdLnNldCh0aGlzLm1pbi54LHRoaXMubWluLnksdGhpcy5taW4ueikuYXBwbHlNYXRyaXg0KHQpLEZkWzFdLnNldCh0aGlzLm1pbi54LHRoaXMubWluLnksdGhpcy5tYXgueikuYXBwbHlNYXRyaXg0KHQpLEZkWzJdLnNldCh0aGlzLm1pbi54LHRoaXMubWF4LnksdGhpcy5taW4ueikuYXBwbHlNYXRyaXg0KHQpLEZkWzNdLnNldCh0aGlzLm1pbi54LHRoaXMubWF4LnksdGhpcy5tYXgueikuYXBwbHlNYXRyaXg0KHQpLEZkWzRdLnNldCh0aGlzLm1heC54LHRoaXMubWluLnksdGhpcy5taW4ueikuYXBwbHlNYXRyaXg0KHQpLEZkWzVdLnNldCh0aGlzLm1heC54LHRoaXMubWluLnksdGhpcy5tYXgueikuYXBwbHlNYXRyaXg0KHQpLEZkWzZdLnNldCh0aGlzLm1heC54LHRoaXMubWF4LnksdGhpcy5taW4ueikuYXBwbHlNYXRyaXg0KHQpLEZkWzddLnNldCh0aGlzLm1heC54LHRoaXMubWF4LnksdGhpcy5tYXgueikuYXBwbHlNYXRyaXg0KHQpLHRoaXMuc2V0RnJvbVBvaW50cyhGZCkpLHRoaXN9dHJhbnNsYXRlKHQpe3JldHVybiB0aGlzLm1pbi5hZGQodCksdGhpcy5tYXguYWRkKHQpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lm1pbi5lcXVhbHModGhpcy5taW4pJiZ0Lm1heC5lcXVhbHModGhpcy5tYXgpfX07VHMucHJvdG90eXBlLmlzQm94Mz0hMDt2YXIgRmQ9W25ldyBLLG5ldyBLLG5ldyBLLG5ldyBLLG5ldyBLLG5ldyBLLG5ldyBLLG5ldyBLXSxwbT1uZXcgSyx5Mz1uZXcgVHMsdzA9bmV3IEssUzA9bmV3IEssRTA9bmV3IEssdXA9bmV3IEsscHA9bmV3IEssaG09bmV3IEssb3g9bmV3IEssakQ9bmV3IEssR0Q9bmV3IEssbW09bmV3IEs7ZnVuY3Rpb24geDMobix0LGUsaSxyKXtmb3IobGV0IG89MCxhPW4ubGVuZ3RoLTM7bzw9YTtvKz0zKXttbS5mcm9tQXJyYXkobixvKTtsZXQgcz1yLngqTWF0aC5hYnMobW0ueCkrci55Kk1hdGguYWJzKG1tLnkpK3IueipNYXRoLmFicyhtbS56KSxsPXQuZG90KG1tKSxjPWUuZG90KG1tKSxkPWkuZG90KG1tKTtpZihNYXRoLm1heCgtTWF0aC5tYXgobCxjLGQpLE1hdGgubWluKGwsYyxkKSk+cylyZXR1cm4hMX1yZXR1cm4hMH12YXIgZVBlPW5ldyBUcyxyZWU9bmV3IEssV0Q9bmV3IEssQzM9bmV3IEssU3A9Y2xhc3N7Y29uc3RydWN0b3IodD1uZXcgSyxlPS0xKXt0aGlzLmNlbnRlcj10LHRoaXMucmFkaXVzPWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMuY2VudGVyLmNvcHkodCksdGhpcy5yYWRpdXM9ZSx0aGlzfXNldEZyb21Qb2ludHModCxlKXtsZXQgaT10aGlzLmNlbnRlcjt2b2lkIDAhPT1lP2kuY29weShlKTplUGUuc2V0RnJvbVBvaW50cyh0KS5nZXRDZW50ZXIoaSk7bGV0IHI9MDtmb3IobGV0IG89MCxhPXQubGVuZ3RoO288YTtvKyspcj1NYXRoLm1heChyLGkuZGlzdGFuY2VUb1NxdWFyZWQodFtvXSkpO3JldHVybiB0aGlzLnJhZGl1cz1NYXRoLnNxcnQociksdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLmNlbnRlci5jb3B5KHQuY2VudGVyKSx0aGlzLnJhZGl1cz10LnJhZGl1cyx0aGlzfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5yYWRpdXM8MH1tYWtlRW1wdHkoKXtyZXR1cm4gdGhpcy5jZW50ZXIuc2V0KDAsMCwwKSx0aGlzLnJhZGl1cz0tMSx0aGlzfWNvbnRhaW5zUG9pbnQodCl7cmV0dXJuIHQuZGlzdGFuY2VUb1NxdWFyZWQodGhpcy5jZW50ZXIpPD10aGlzLnJhZGl1cyp0aGlzLnJhZGl1c31kaXN0YW5jZVRvUG9pbnQodCl7cmV0dXJuIHQuZGlzdGFuY2VUbyh0aGlzLmNlbnRlciktdGhpcy5yYWRpdXN9aW50ZXJzZWN0c1NwaGVyZSh0KXtsZXQgZT10aGlzLnJhZGl1cyt0LnJhZGl1cztyZXR1cm4gdC5jZW50ZXIuZGlzdGFuY2VUb1NxdWFyZWQodGhpcy5jZW50ZXIpPD1lKmV9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzU3BoZXJlKHRoaXMpfWludGVyc2VjdHNQbGFuZSh0KXtyZXR1cm4gTWF0aC5hYnModC5kaXN0YW5jZVRvUG9pbnQodGhpcy5jZW50ZXIpKTw9dGhpcy5yYWRpdXN9Y2xhbXBQb2ludCh0LGUpe2xldCBpPXRoaXMuY2VudGVyLmRpc3RhbmNlVG9TcXVhcmVkKHQpO3JldHVybiBlLmNvcHkodCksaT50aGlzLnJhZGl1cyp0aGlzLnJhZGl1cyYmKGUuc3ViKHRoaXMuY2VudGVyKS5ub3JtYWxpemUoKSxlLm11bHRpcGx5U2NhbGFyKHRoaXMucmFkaXVzKS5hZGQodGhpcy5jZW50ZXIpKSxlfWdldEJvdW5kaW5nQm94KHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKT8odC5tYWtlRW1wdHkoKSx0KToodC5zZXQodGhpcy5jZW50ZXIsdGhpcy5jZW50ZXIpLHQuZXhwYW5kQnlTY2FsYXIodGhpcy5yYWRpdXMpLHQpfWFwcGx5TWF0cml4NCh0KXtyZXR1cm4gdGhpcy5jZW50ZXIuYXBwbHlNYXRyaXg0KHQpLHRoaXMucmFkaXVzPXRoaXMucmFkaXVzKnQuZ2V0TWF4U2NhbGVPbkF4aXMoKSx0aGlzfXRyYW5zbGF0ZSh0KXtyZXR1cm4gdGhpcy5jZW50ZXIuYWRkKHQpLHRoaXN9ZXhwYW5kQnlQb2ludCh0KXtDMy5zdWJWZWN0b3JzKHQsdGhpcy5jZW50ZXIpO2xldCBlPUMzLmxlbmd0aFNxKCk7aWYoZT50aGlzLnJhZGl1cyp0aGlzLnJhZGl1cyl7bGV0IGk9TWF0aC5zcXJ0KGUpLHI9LjUqKGktdGhpcy5yYWRpdXMpO3RoaXMuY2VudGVyLmFkZChDMy5tdWx0aXBseVNjYWxhcihyL2kpKSx0aGlzLnJhZGl1cys9cn1yZXR1cm4gdGhpc311bmlvbih0KXtyZXR1cm4hMD09PXRoaXMuY2VudGVyLmVxdWFscyh0LmNlbnRlcik/V0Quc2V0KDAsMCwxKS5tdWx0aXBseVNjYWxhcih0LnJhZGl1cyk6V0Quc3ViVmVjdG9ycyh0LmNlbnRlcix0aGlzLmNlbnRlcikubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIodC5yYWRpdXMpLHRoaXMuZXhwYW5kQnlQb2ludChyZWUuY29weSh0LmNlbnRlcikuYWRkKFdEKSksdGhpcy5leHBhbmRCeVBvaW50KHJlZS5jb3B5KHQuY2VudGVyKS5zdWIoV0QpKSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5jZW50ZXIuZXF1YWxzKHRoaXMuY2VudGVyKSYmdC5yYWRpdXM9PT10aGlzLnJhZGl1c31jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX19LE5kPW5ldyBLLE0zPW5ldyBLLHFEPW5ldyBLLGhwPW5ldyBLLHczPW5ldyBLLFhEPW5ldyBLLFMzPW5ldyBLLEVwPWNsYXNze2NvbnN0cnVjdG9yKHQ9bmV3IEssZT1uZXcgSygwLDAsLTEpKXt0aGlzLm9yaWdpbj10LHRoaXMuZGlyZWN0aW9uPWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMub3JpZ2luLmNvcHkodCksdGhpcy5kaXJlY3Rpb24uY29weShlKSx0aGlzfWNvcHkodCl7cmV0dXJuIHRoaXMub3JpZ2luLmNvcHkodC5vcmlnaW4pLHRoaXMuZGlyZWN0aW9uLmNvcHkodC5kaXJlY3Rpb24pLHRoaXN9YXQodCxlKXtyZXR1cm4gZS5jb3B5KHRoaXMuZGlyZWN0aW9uKS5tdWx0aXBseVNjYWxhcih0KS5hZGQodGhpcy5vcmlnaW4pfWxvb2tBdCh0KXtyZXR1cm4gdGhpcy5kaXJlY3Rpb24uY29weSh0KS5zdWIodGhpcy5vcmlnaW4pLm5vcm1hbGl6ZSgpLHRoaXN9cmVjYXN0KHQpe3JldHVybiB0aGlzLm9yaWdpbi5jb3B5KHRoaXMuYXQodCxOZCkpLHRoaXN9Y2xvc2VzdFBvaW50VG9Qb2ludCh0LGUpe2Uuc3ViVmVjdG9ycyh0LHRoaXMub3JpZ2luKTtsZXQgaT1lLmRvdCh0aGlzLmRpcmVjdGlvbik7cmV0dXJuIGk8MD9lLmNvcHkodGhpcy5vcmlnaW4pOmUuY29weSh0aGlzLmRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIoaSkuYWRkKHRoaXMub3JpZ2luKX1kaXN0YW5jZVRvUG9pbnQodCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLmRpc3RhbmNlU3FUb1BvaW50KHQpKX1kaXN0YW5jZVNxVG9Qb2ludCh0KXtsZXQgZT1OZC5zdWJWZWN0b3JzKHQsdGhpcy5vcmlnaW4pLmRvdCh0aGlzLmRpcmVjdGlvbik7cmV0dXJuIGU8MD90aGlzLm9yaWdpbi5kaXN0YW5jZVRvU3F1YXJlZCh0KTooTmQuY29weSh0aGlzLmRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIoZSkuYWRkKHRoaXMub3JpZ2luKSxOZC5kaXN0YW5jZVRvU3F1YXJlZCh0KSl9ZGlzdGFuY2VTcVRvU2VnbWVudCh0LGUsaSxyKXtNMy5jb3B5KHQpLmFkZChlKS5tdWx0aXBseVNjYWxhciguNSkscUQuY29weShlKS5zdWIodCkubm9ybWFsaXplKCksaHAuY29weSh0aGlzLm9yaWdpbikuc3ViKE0zKTtsZXQgdSxwLGgsbSxvPS41KnQuZGlzdGFuY2VUbyhlKSxhPS10aGlzLmRpcmVjdGlvbi5kb3QocUQpLHM9aHAuZG90KHRoaXMuZGlyZWN0aW9uKSxsPS1ocC5kb3QocUQpLGM9aHAubGVuZ3RoU3EoKSxkPU1hdGguYWJzKDEtYSphKTtpZihkPjApaWYodT1hKmwtcyxwPWEqcy1sLG09bypkLHU+PTApaWYocD49LW0paWYocDw9bSl7bGV0IF89MS9kO3UqPV8scCo9XyxoPXUqKHUrYSpwKzIqcykrcCooYSp1K3ArMipsKStjfWVsc2UgcD1vLHU9TWF0aC5tYXgoMCwtKGEqcCtzKSksaD0tdSp1K3AqKHArMipsKStjO2Vsc2UgcD0tbyx1PU1hdGgubWF4KDAsLShhKnArcykpLGg9LXUqdStwKihwKzIqbCkrYztlbHNlIHA8PS1tPyh1PU1hdGgubWF4KDAsLSgtYSpvK3MpKSxwPXU+MD8tbzpNYXRoLm1pbihNYXRoLm1heCgtbywtbCksbyksaD0tdSp1K3AqKHArMipsKStjKTpwPD1tPyh1PTAscD1NYXRoLm1pbihNYXRoLm1heCgtbywtbCksbyksaD1wKihwKzIqbCkrYyk6KHU9TWF0aC5tYXgoMCwtKGEqbytzKSkscD11PjA/bzpNYXRoLm1pbihNYXRoLm1heCgtbywtbCksbyksaD0tdSp1K3AqKHArMipsKStjKTtlbHNlIHA9YT4wPy1vOm8sdT1NYXRoLm1heCgwLC0oYSpwK3MpKSxoPS11KnUrcCoocCsyKmwpK2M7cmV0dXJuIGkmJmkuY29weSh0aGlzLmRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIodSkuYWRkKHRoaXMub3JpZ2luKSxyJiZyLmNvcHkocUQpLm11bHRpcGx5U2NhbGFyKHApLmFkZChNMyksaH1pbnRlcnNlY3RTcGhlcmUodCxlKXtOZC5zdWJWZWN0b3JzKHQuY2VudGVyLHRoaXMub3JpZ2luKTtsZXQgaT1OZC5kb3QodGhpcy5kaXJlY3Rpb24pLHI9TmQuZG90KE5kKS1pKmksbz10LnJhZGl1cyp0LnJhZGl1cztpZihyPm8pcmV0dXJuIG51bGw7bGV0IGE9TWF0aC5zcXJ0KG8tcikscz1pLWEsbD1pK2E7cmV0dXJuIHM8MCYmbDwwP251bGw6dGhpcy5hdChzPDA/bDpzLGUpfWludGVyc2VjdHNTcGhlcmUodCl7cmV0dXJuIHRoaXMuZGlzdGFuY2VTcVRvUG9pbnQodC5jZW50ZXIpPD10LnJhZGl1cyp0LnJhZGl1c31kaXN0YW5jZVRvUGxhbmUodCl7bGV0IGU9dC5ub3JtYWwuZG90KHRoaXMuZGlyZWN0aW9uKTtpZigwPT09ZSlyZXR1cm4gMD09PXQuZGlzdGFuY2VUb1BvaW50KHRoaXMub3JpZ2luKT8wOm51bGw7bGV0IGk9LSh0aGlzLm9yaWdpbi5kb3QodC5ub3JtYWwpK3QuY29uc3RhbnQpL2U7cmV0dXJuIGk+PTA/aTpudWxsfWludGVyc2VjdFBsYW5lKHQsZSl7bGV0IGk9dGhpcy5kaXN0YW5jZVRvUGxhbmUodCk7cmV0dXJuIG51bGw9PT1pP251bGw6dGhpcy5hdChpLGUpfWludGVyc2VjdHNQbGFuZSh0KXtsZXQgZT10LmRpc3RhbmNlVG9Qb2ludCh0aGlzLm9yaWdpbik7cmV0dXJuIDA9PT1lfHx0Lm5vcm1hbC5kb3QodGhpcy5kaXJlY3Rpb24pKmU8MH1pbnRlcnNlY3RCb3godCxlKXtsZXQgaSxyLG8sYSxzLGwsYz0xL3RoaXMuZGlyZWN0aW9uLngsZD0xL3RoaXMuZGlyZWN0aW9uLnksdT0xL3RoaXMuZGlyZWN0aW9uLnoscD10aGlzLm9yaWdpbjtyZXR1cm4gYz49MD8oaT0odC5taW4ueC1wLngpKmMscj0odC5tYXgueC1wLngpKmMpOihpPSh0Lm1heC54LXAueCkqYyxyPSh0Lm1pbi54LXAueCkqYyksZD49MD8obz0odC5taW4ueS1wLnkpKmQsYT0odC5tYXgueS1wLnkpKmQpOihvPSh0Lm1heC55LXAueSkqZCxhPSh0Lm1pbi55LXAueSkqZCksaT5hfHxvPnJ8fCgobz5pfHxpIT1pKSYmKGk9byksKGE8cnx8ciE9cikmJihyPWEpLHU+PTA/KHM9KHQubWluLnotcC56KSp1LGw9KHQubWF4LnotcC56KSp1KToocz0odC5tYXguei1wLnopKnUsbD0odC5taW4uei1wLnopKnUpLGk+bHx8cz5yKXx8KChzPml8fGkhPWkpJiYoaT1zKSwobDxyfHxyIT1yKSYmKHI9bCkscjwwKT9udWxsOnRoaXMuYXQoaT49MD9pOnIsZSl9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4gbnVsbCE9PXRoaXMuaW50ZXJzZWN0Qm94KHQsTmQpfWludGVyc2VjdFRyaWFuZ2xlKHQsZSxpLHIsbyl7dzMuc3ViVmVjdG9ycyhlLHQpLFhELnN1YlZlY3RvcnMoaSx0KSxTMy5jcm9zc1ZlY3RvcnModzMsWEQpO2xldCBzLGE9dGhpcy5kaXJlY3Rpb24uZG90KFMzKTtpZihhPjApe2lmKHIpcmV0dXJuIG51bGw7cz0xfWVsc2V7aWYoIShhPDApKXJldHVybiBudWxsO3M9LTEsYT0tYX1ocC5zdWJWZWN0b3JzKHRoaXMub3JpZ2luLHQpO2xldCBsPXMqdGhpcy5kaXJlY3Rpb24uZG90KFhELmNyb3NzVmVjdG9ycyhocCxYRCkpO2lmKGw8MClyZXR1cm4gbnVsbDtsZXQgYz1zKnRoaXMuZGlyZWN0aW9uLmRvdCh3My5jcm9zcyhocCkpO2lmKGM8MHx8bCtjPmEpcmV0dXJuIG51bGw7bGV0IGQ9LXMqaHAuZG90KFMzKTtyZXR1cm4gZDwwP251bGw6dGhpcy5hdChkL2Esbyl9YXBwbHlNYXRyaXg0KHQpe3JldHVybiB0aGlzLm9yaWdpbi5hcHBseU1hdHJpeDQodCksdGhpcy5kaXJlY3Rpb24udHJhbnNmb3JtRGlyZWN0aW9uKHQpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lm9yaWdpbi5lcXVhbHModGhpcy5vcmlnaW4pJiZ0LmRpcmVjdGlvbi5lcXVhbHModGhpcy5kaXJlY3Rpb24pfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX0sdm49Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmVsZW1lbnRzPVsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXSxhcmd1bWVudHMubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IHRoZSBjb25zdHJ1Y3RvciBubyBsb25nZXIgcmVhZHMgYXJndW1lbnRzLiB1c2UgLnNldCgpIGluc3RlYWQuIil9c2V0KHQsZSxpLHIsbyxhLHMsbCxjLGQsdSxwLGgsbSxfLE0pe2xldCB5PXRoaXMuZWxlbWVudHM7cmV0dXJuIHlbMF09dCx5WzRdPWUseVs4XT1pLHlbMTJdPXIseVsxXT1vLHlbNV09YSx5WzldPXMseVsxM109bCx5WzJdPWMseVs2XT1kLHlbMTBdPXUseVsxNF09cCx5WzNdPWgseVs3XT1tLHlbMTFdPV8seVsxNV09TSx0aGlzfWlkZW50aXR5KCl7cmV0dXJuIHRoaXMuc2V0KDEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDEpLHRoaXN9Y2xvbmUoKXtyZXR1cm4obmV3IHZuKS5mcm9tQXJyYXkodGhpcy5lbGVtZW50cyl9Y29weSh0KXtsZXQgZT10aGlzLmVsZW1lbnRzLGk9dC5lbGVtZW50cztyZXR1cm4gZVswXT1pWzBdLGVbMV09aVsxXSxlWzJdPWlbMl0sZVszXT1pWzNdLGVbNF09aVs0XSxlWzVdPWlbNV0sZVs2XT1pWzZdLGVbN109aVs3XSxlWzhdPWlbOF0sZVs5XT1pWzldLGVbMTBdPWlbMTBdLGVbMTFdPWlbMTFdLGVbMTJdPWlbMTJdLGVbMTNdPWlbMTNdLGVbMTRdPWlbMTRdLGVbMTVdPWlbMTVdLHRoaXN9Y29weVBvc2l0aW9uKHQpe2xldCBlPXRoaXMuZWxlbWVudHMsaT10LmVsZW1lbnRzO3JldHVybiBlWzEyXT1pWzEyXSxlWzEzXT1pWzEzXSxlWzE0XT1pWzE0XSx0aGlzfXNldEZyb21NYXRyaXgzKHQpe2xldCBlPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMuc2V0KGVbMF0sZVszXSxlWzZdLDAsZVsxXSxlWzRdLGVbN10sMCxlWzJdLGVbNV0sZVs4XSwwLDAsMCwwLDEpLHRoaXN9ZXh0cmFjdEJhc2lzKHQsZSxpKXtyZXR1cm4gdC5zZXRGcm9tTWF0cml4Q29sdW1uKHRoaXMsMCksZS5zZXRGcm9tTWF0cml4Q29sdW1uKHRoaXMsMSksaS5zZXRGcm9tTWF0cml4Q29sdW1uKHRoaXMsMiksdGhpc31tYWtlQmFzaXModCxlLGkpe3JldHVybiB0aGlzLnNldCh0LngsZS54LGkueCwwLHQueSxlLnksaS55LDAsdC56LGUueixpLnosMCwwLDAsMCwxKSx0aGlzfWV4dHJhY3RSb3RhdGlvbih0KXtsZXQgZT10aGlzLmVsZW1lbnRzLGk9dC5lbGVtZW50cyxyPTEvVDAuc2V0RnJvbU1hdHJpeENvbHVtbih0LDApLmxlbmd0aCgpLG89MS9UMC5zZXRGcm9tTWF0cml4Q29sdW1uKHQsMSkubGVuZ3RoKCksYT0xL1QwLnNldEZyb21NYXRyaXhDb2x1bW4odCwyKS5sZW5ndGgoKTtyZXR1cm4gZVswXT1pWzBdKnIsZVsxXT1pWzFdKnIsZVsyXT1pWzJdKnIsZVszXT0wLGVbNF09aVs0XSpvLGVbNV09aVs1XSpvLGVbNl09aVs2XSpvLGVbN109MCxlWzhdPWlbOF0qYSxlWzldPWlbOV0qYSxlWzEwXT1pWzEwXSphLGVbMTFdPTAsZVsxMl09MCxlWzEzXT0wLGVbMTRdPTAsZVsxNV09MSx0aGlzfW1ha2VSb3RhdGlvbkZyb21FdWxlcih0KXt0JiZ0LmlzRXVsZXJ8fGNvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5tYWtlUm90YXRpb25Gcm9tRXVsZXIoKSBub3cgZXhwZWN0cyBhIEV1bGVyIHJvdGF0aW9uIHJhdGhlciB0aGFuIGEgVmVjdG9yMyBhbmQgb3JkZXIuIik7bGV0IGU9dGhpcy5lbGVtZW50cyxpPXQueCxyPXQueSxvPXQueixhPU1hdGguY29zKGkpLHM9TWF0aC5zaW4oaSksbD1NYXRoLmNvcyhyKSxjPU1hdGguc2luKHIpLGQ9TWF0aC5jb3MobyksdT1NYXRoLnNpbihvKTtpZigiWFlaIj09PXQub3JkZXIpe2xldCBwPWEqZCxoPWEqdSxtPXMqZCxfPXMqdTtlWzBdPWwqZCxlWzRdPS1sKnUsZVs4XT1jLGVbMV09aCttKmMsZVs1XT1wLV8qYyxlWzldPS1zKmwsZVsyXT1fLXAqYyxlWzZdPW0raCpjLGVbMTBdPWEqbH1lbHNlIGlmKCJZWFoiPT09dC5vcmRlcil7bGV0IHA9bCpkLGg9bCp1LG09YypkLF89Yyp1O2VbMF09cCtfKnMsZVs0XT1tKnMtaCxlWzhdPWEqYyxlWzFdPWEqdSxlWzVdPWEqZCxlWzldPS1zLGVbMl09aCpzLW0sZVs2XT1fK3AqcyxlWzEwXT1hKmx9ZWxzZSBpZigiWlhZIj09PXQub3JkZXIpe2xldCBwPWwqZCxoPWwqdSxtPWMqZCxfPWMqdTtlWzBdPXAtXypzLGVbNF09LWEqdSxlWzhdPW0raCpzLGVbMV09aCttKnMsZVs1XT1hKmQsZVs5XT1fLXAqcyxlWzJdPS1hKmMsZVs2XT1zLGVbMTBdPWEqbH1lbHNlIGlmKCJaWVgiPT09dC5vcmRlcil7bGV0IHA9YSpkLGg9YSp1LG09cypkLF89cyp1O2VbMF09bCpkLGVbNF09bSpjLWgsZVs4XT1wKmMrXyxlWzFdPWwqdSxlWzVdPV8qYytwLGVbOV09aCpjLW0sZVsyXT0tYyxlWzZdPXMqbCxlWzEwXT1hKmx9ZWxzZSBpZigiWVpYIj09PXQub3JkZXIpe2xldCBwPWEqbCxoPWEqYyxtPXMqbCxfPXMqYztlWzBdPWwqZCxlWzRdPV8tcCp1LGVbOF09bSp1K2gsZVsxXT11LGVbNV09YSpkLGVbOV09LXMqZCxlWzJdPS1jKmQsZVs2XT1oKnUrbSxlWzEwXT1wLV8qdX1lbHNlIGlmKCJYWlkiPT09dC5vcmRlcil7bGV0IHA9YSpsLGg9YSpjLG09cypsLF89cypjO2VbMF09bCpkLGVbNF09LXUsZVs4XT1jKmQsZVsxXT1wKnUrXyxlWzVdPWEqZCxlWzldPWgqdS1tLGVbMl09bSp1LWgsZVs2XT1zKmQsZVsxMF09Xyp1K3B9cmV0dXJuIGVbM109MCxlWzddPTAsZVsxMV09MCxlWzEyXT0wLGVbMTNdPTAsZVsxNF09MCxlWzE1XT0xLHRoaXN9bWFrZVJvdGF0aW9uRnJvbVF1YXRlcm5pb24odCl7cmV0dXJuIHRoaXMuY29tcG9zZSh0UGUsdCxuUGUpfWxvb2tBdCh0LGUsaSl7bGV0IHI9dGhpcy5lbGVtZW50cztyZXR1cm4gd3Muc3ViVmVjdG9ycyh0LGUpLDA9PT13cy5sZW5ndGhTcSgpJiYod3Muej0xKSx3cy5ub3JtYWxpemUoKSxtcC5jcm9zc1ZlY3RvcnMoaSx3cyksMD09PW1wLmxlbmd0aFNxKCkmJigxPT09TWF0aC5hYnMoaS56KT93cy54Kz0xZS00OndzLnorPTFlLTQsd3Mubm9ybWFsaXplKCksbXAuY3Jvc3NWZWN0b3JzKGksd3MpKSxtcC5ub3JtYWxpemUoKSxZRC5jcm9zc1ZlY3RvcnMod3MsbXApLHJbMF09bXAueCxyWzRdPVlELngscls4XT13cy54LHJbMV09bXAueSxyWzVdPVlELnkscls5XT13cy55LHJbMl09bXAueixyWzZdPVlELnosclsxMF09d3Mueix0aGlzfW11bHRpcGx5KHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm11bHRpcGx5KCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAubXVsdGlwbHlNYXRyaWNlcyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5tdWx0aXBseU1hdHJpY2VzKHQsZSkpOnRoaXMubXVsdGlwbHlNYXRyaWNlcyh0aGlzLHQpfXByZW11bHRpcGx5KHQpe3JldHVybiB0aGlzLm11bHRpcGx5TWF0cmljZXModCx0aGlzKX1tdWx0aXBseU1hdHJpY2VzKHQsZSl7bGV0IGk9dC5lbGVtZW50cyxyPWUuZWxlbWVudHMsbz10aGlzLmVsZW1lbnRzLGE9aVswXSxzPWlbNF0sbD1pWzhdLGM9aVsxMl0sZD1pWzFdLHU9aVs1XSxwPWlbOV0saD1pWzEzXSxtPWlbMl0sXz1pWzZdLE09aVsxMF0seT1pWzE0XSx4PWlbM10sUj1pWzddLEk9aVsxMV0sQj1pWzE1XSxlZT1yWzBdLFE9cls0XSx3ZT1yWzhdLFFlPXJbMTJdLEFlPXJbMV0sRD1yWzVdLHJlPXJbOV0sY2U9clsxM10saGU9clsyXSxfZT1yWzZdLCQ9clsxMF0sZGU9clsxNF0scGU9clszXSxHZT1yWzddLFNlPXJbMTFdLEZlPXJbMTVdO3JldHVybiBvWzBdPWEqZWUrcypBZStsKmhlK2MqcGUsb1s0XT1hKlErcypEK2wqX2UrYypHZSxvWzhdPWEqd2UrcypyZStsKiQrYypTZSxvWzEyXT1hKlFlK3MqY2UrbCpkZStjKkZlLG9bMV09ZCplZSt1KkFlK3AqaGUraCpwZSxvWzVdPWQqUSt1KkQrcCpfZStoKkdlLG9bOV09ZCp3ZSt1KnJlK3AqJCtoKlNlLG9bMTNdPWQqUWUrdSpjZStwKmRlK2gqRmUsb1syXT1tKmVlK18qQWUrTSpoZSt5KnBlLG9bNl09bSpRK18qRCtNKl9lK3kqR2Usb1sxMF09bSp3ZStfKnJlK00qJCt5KlNlLG9bMTRdPW0qUWUrXypjZStNKmRlK3kqRmUsb1szXT14KmVlK1IqQWUrSSpoZStCKnBlLG9bN109eCpRK1IqRCtJKl9lK0IqR2Usb1sxMV09eCp3ZStSKnJlK0kqJCtCKlNlLG9bMTVdPXgqUWUrUipjZStJKmRlK0IqRmUsdGhpc31tdWx0aXBseVNjYWxhcih0KXtsZXQgZT10aGlzLmVsZW1lbnRzO3JldHVybiBlWzBdKj10LGVbNF0qPXQsZVs4XSo9dCxlWzEyXSo9dCxlWzFdKj10LGVbNV0qPXQsZVs5XSo9dCxlWzEzXSo9dCxlWzJdKj10LGVbNl0qPXQsZVsxMF0qPXQsZVsxNF0qPXQsZVszXSo9dCxlWzddKj10LGVbMTFdKj10LGVbMTVdKj10LHRoaXN9ZGV0ZXJtaW5hbnQoKXtsZXQgdD10aGlzLmVsZW1lbnRzLGU9dFswXSxpPXRbNF0scj10WzhdLG89dFsxMl0sYT10WzFdLHM9dFs1XSxsPXRbOV0sYz10WzEzXSxkPXRbMl0sdT10WzZdLHA9dFsxMF0saD10WzE0XTtyZXR1cm4gdFszXSooK28qbCp1LXIqYyp1LW8qcypwK2kqYypwK3IqcypoLWkqbCpoKSt0WzddKigrZSpsKmgtZSpjKnArbyphKnAtciphKmgrcipjKmQtbypsKmQpK3RbMTFdKigrZSpjKnUtZSpzKmgtbyphKnUraSphKmgrbypzKmQtaSpjKmQpK3RbMTVdKigtcipzKmQtZSpsKnUrZSpzKnArciphKnUtaSphKnAraSpsKmQpfXRyYW5zcG9zZSgpe2xldCBlLHQ9dGhpcy5lbGVtZW50cztyZXR1cm4gZT10WzFdLHRbMV09dFs0XSx0WzRdPWUsZT10WzJdLHRbMl09dFs4XSx0WzhdPWUsZT10WzZdLHRbNl09dFs5XSx0WzldPWUsZT10WzNdLHRbM109dFsxMl0sdFsxMl09ZSxlPXRbN10sdFs3XT10WzEzXSx0WzEzXT1lLGU9dFsxMV0sdFsxMV09dFsxNF0sdFsxNF09ZSx0aGlzfXNldFBvc2l0aW9uKHQsZSxpKXtsZXQgcj10aGlzLmVsZW1lbnRzO3JldHVybiB0LmlzVmVjdG9yMz8oclsxMl09dC54LHJbMTNdPXQueSxyWzE0XT10LnopOihyWzEyXT10LHJbMTNdPWUsclsxNF09aSksdGhpc31pbnZlcnQoKXtsZXQgdD10aGlzLmVsZW1lbnRzLGU9dFswXSxpPXRbMV0scj10WzJdLG89dFszXSxhPXRbNF0scz10WzVdLGw9dFs2XSxjPXRbN10sZD10WzhdLHU9dFs5XSxwPXRbMTBdLGg9dFsxMV0sbT10WzEyXSxfPXRbMTNdLE09dFsxNF0seT10WzE1XSx4PXUqTSpjLV8qcCpjK18qbCpoLXMqTSpoLXUqbCp5K3MqcCp5LFI9bSpwKmMtZCpNKmMtbSpsKmgrYSpNKmgrZCpsKnktYSpwKnksST1kKl8qYy1tKnUqYyttKnMqaC1hKl8qaC1kKnMqeSthKnUqeSxCPW0qdSpsLWQqXypsLW0qcypwK2EqXypwK2QqcypNLWEqdSpNLGVlPWUqeCtpKlIrcipJK28qQjtpZigwPT09ZWUpcmV0dXJuIHRoaXMuc2V0KDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDApO2xldCBRPTEvZWU7cmV0dXJuIHRbMF09eCpRLHRbMV09KF8qcCpvLXUqTSpvLV8qcipoK2kqTSpoK3Uqcip5LWkqcCp5KSpRLHRbMl09KHMqTSpvLV8qbCpvK18qcipjLWkqTSpjLXMqcip5K2kqbCp5KSpRLHRbM109KHUqbCpvLXMqcCpvLXUqcipjK2kqcCpjK3MqcipoLWkqbCpoKSpRLHRbNF09UipRLHRbNV09KGQqTSpvLW0qcCpvK20qcipoLWUqTSpoLWQqcip5K2UqcCp5KSpRLHRbNl09KG0qbCpvLWEqTSpvLW0qcipjK2UqTSpjK2Eqcip5LWUqbCp5KSpRLHRbN109KGEqcCpvLWQqbCpvK2QqcipjLWUqcCpjLWEqcipoK2UqbCpoKSpRLHRbOF09SSpRLHRbOV09KG0qdSpvLWQqXypvLW0qaSpoK2UqXypoK2QqaSp5LWUqdSp5KSpRLHRbMTBdPShhKl8qby1tKnMqbyttKmkqYy1lKl8qYy1hKmkqeStlKnMqeSkqUSx0WzExXT0oZCpzKm8tYSp1Km8tZCppKmMrZSp1KmMrYSppKmgtZSpzKmgpKlEsdFsxMl09QipRLHRbMTNdPShkKl8qci1tKnUqcittKmkqcC1lKl8qcC1kKmkqTStlKnUqTSkqUSx0WzE0XT0obSpzKnItYSpfKnItbSppKmwrZSpfKmwrYSppKk0tZSpzKk0pKlEsdFsxNV09KGEqdSpyLWQqcypyK2QqaSpsLWUqdSpsLWEqaSpwK2UqcypwKSpRLHRoaXN9c2NhbGUodCl7bGV0IGU9dGhpcy5lbGVtZW50cyxpPXQueCxyPXQueSxvPXQuejtyZXR1cm4gZVswXSo9aSxlWzRdKj1yLGVbOF0qPW8sZVsxXSo9aSxlWzVdKj1yLGVbOV0qPW8sZVsyXSo9aSxlWzZdKj1yLGVbMTBdKj1vLGVbM10qPWksZVs3XSo9cixlWzExXSo9byx0aGlzfWdldE1heFNjYWxlT25BeGlzKCl7bGV0IHQ9dGhpcy5lbGVtZW50cztyZXR1cm4gTWF0aC5zcXJ0KE1hdGgubWF4KHRbMF0qdFswXSt0WzFdKnRbMV0rdFsyXSp0WzJdLHRbNF0qdFs0XSt0WzVdKnRbNV0rdFs2XSp0WzZdLHRbOF0qdFs4XSt0WzldKnRbOV0rdFsxMF0qdFsxMF0pKX1tYWtlVHJhbnNsYXRpb24odCxlLGkpe3JldHVybiB0aGlzLnNldCgxLDAsMCx0LDAsMSwwLGUsMCwwLDEsaSwwLDAsMCwxKSx0aGlzfW1ha2VSb3RhdGlvblgodCl7bGV0IGU9TWF0aC5jb3ModCksaT1NYXRoLnNpbih0KTtyZXR1cm4gdGhpcy5zZXQoMSwwLDAsMCwwLGUsLWksMCwwLGksZSwwLDAsMCwwLDEpLHRoaXN9bWFrZVJvdGF0aW9uWSh0KXtsZXQgZT1NYXRoLmNvcyh0KSxpPU1hdGguc2luKHQpO3JldHVybiB0aGlzLnNldChlLDAsaSwwLDAsMSwwLDAsLWksMCxlLDAsMCwwLDAsMSksdGhpc31tYWtlUm90YXRpb25aKHQpe2xldCBlPU1hdGguY29zKHQpLGk9TWF0aC5zaW4odCk7cmV0dXJuIHRoaXMuc2V0KGUsLWksMCwwLGksZSwwLDAsMCwwLDEsMCwwLDAsMCwxKSx0aGlzfW1ha2VSb3RhdGlvbkF4aXModCxlKXtsZXQgaT1NYXRoLmNvcyhlKSxyPU1hdGguc2luKGUpLG89MS1pLGE9dC54LHM9dC55LGw9dC56LGM9byphLGQ9bypzO3JldHVybiB0aGlzLnNldChjKmEraSxjKnMtcipsLGMqbCtyKnMsMCxjKnMrcipsLGQqcytpLGQqbC1yKmEsMCxjKmwtcipzLGQqbCtyKmEsbypsKmwraSwwLDAsMCwwLDEpLHRoaXN9bWFrZVNjYWxlKHQsZSxpKXtyZXR1cm4gdGhpcy5zZXQodCwwLDAsMCwwLGUsMCwwLDAsMCxpLDAsMCwwLDAsMSksdGhpc31tYWtlU2hlYXIodCxlLGkscixvLGEpe3JldHVybiB0aGlzLnNldCgxLGksbywwLHQsMSxhLDAsZSxyLDEsMCwwLDAsMCwxKSx0aGlzfWNvbXBvc2UodCxlLGkpe2xldCByPXRoaXMuZWxlbWVudHMsbz1lLl94LGE9ZS5feSxzPWUuX3osbD1lLl93LGM9bytvLGQ9YSthLHU9cytzLHA9bypjLGg9bypkLG09byp1LF89YSpkLE09YSp1LHk9cyp1LHg9bCpjLFI9bCpkLEk9bCp1LEI9aS54LGVlPWkueSxRPWkuejtyZXR1cm4gclswXT0oMS0oXyt5KSkqQixyWzFdPShoK0kpKkIsclsyXT0obS1SKSpCLHJbM109MCxyWzRdPShoLUkpKmVlLHJbNV09KDEtKHAreSkpKmVlLHJbNl09KE0reCkqZWUscls3XT0wLHJbOF09KG0rUikqUSxyWzldPShNLXgpKlEsclsxMF09KDEtKHArXykpKlEsclsxMV09MCxyWzEyXT10LngsclsxM109dC55LHJbMTRdPXQueixyWzE1XT0xLHRoaXN9ZGVjb21wb3NlKHQsZSxpKXtsZXQgcj10aGlzLmVsZW1lbnRzLG89VDAuc2V0KHJbMF0sclsxXSxyWzJdKS5sZW5ndGgoKSxhPVQwLnNldChyWzRdLHJbNV0scls2XSkubGVuZ3RoKCkscz1UMC5zZXQocls4XSxyWzldLHJbMTBdKS5sZW5ndGgoKTt0aGlzLmRldGVybWluYW50KCk8MCYmKG89LW8pLHQueD1yWzEyXSx0Lnk9clsxM10sdC56PXJbMTRdLFdsLmNvcHkodGhpcyk7bGV0IGM9MS9vLGQ9MS9hLHU9MS9zO3JldHVybiBXbC5lbGVtZW50c1swXSo9YyxXbC5lbGVtZW50c1sxXSo9YyxXbC5lbGVtZW50c1syXSo9YyxXbC5lbGVtZW50c1s0XSo9ZCxXbC5lbGVtZW50c1s1XSo9ZCxXbC5lbGVtZW50c1s2XSo9ZCxXbC5lbGVtZW50c1s4XSo9dSxXbC5lbGVtZW50c1s5XSo9dSxXbC5lbGVtZW50c1sxMF0qPXUsZS5zZXRGcm9tUm90YXRpb25NYXRyaXgoV2wpLGkueD1vLGkueT1hLGkuej1zLHRoaXN9bWFrZVBlcnNwZWN0aXZlKHQsZSxpLHIsbyxhKXt2b2lkIDA9PT1hJiZjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5tYWtlUGVyc3BlY3RpdmUoKSBoYXMgYmVlbiByZWRlZmluZWQgYW5kIGhhcyBhIG5ldyBzaWduYXR1cmUuIFBsZWFzZSBjaGVjayB0aGUgZG9jcy4iKTtsZXQgcz10aGlzLmVsZW1lbnRzLGM9MipvLyhpLXIpLGQ9KGUrdCkvKGUtdCksdT0oaStyKS8oaS1yKSxwPS0oYStvKS8oYS1vKSxoPS0yKmEqby8oYS1vKTtyZXR1cm4gc1swXT0yKm8vKGUtdCksc1s0XT0wLHNbOF09ZCxzWzEyXT0wLHNbMV09MCxzWzVdPWMsc1s5XT11LHNbMTNdPTAsc1syXT0wLHNbNl09MCxzWzEwXT1wLHNbMTRdPWgsc1szXT0wLHNbN109MCxzWzExXT0tMSxzWzE1XT0wLHRoaXN9bWFrZU9ydGhvZ3JhcGhpYyh0LGUsaSxyLG8sYSl7bGV0IHM9dGhpcy5lbGVtZW50cyxsPTEvKGUtdCksYz0xLyhpLXIpLGQ9MS8oYS1vKSx1PShlK3QpKmwscD0oaStyKSpjLGg9KGErbykqZDtyZXR1cm4gc1swXT0yKmwsc1s0XT0wLHNbOF09MCxzWzEyXT0tdSxzWzFdPTAsc1s1XT0yKmMsc1s5XT0wLHNbMTNdPS1wLHNbMl09MCxzWzZdPTAsc1sxMF09LTIqZCxzWzE0XT0taCxzWzNdPTAsc1s3XT0wLHNbMTFdPTAsc1sxNV09MSx0aGlzfWVxdWFscyh0KXtsZXQgZT10aGlzLmVsZW1lbnRzLGk9dC5lbGVtZW50cztmb3IobGV0IHI9MDtyPDE2O3IrKylpZihlW3JdIT09aVtyXSlyZXR1cm4hMTtyZXR1cm4hMH1mcm9tQXJyYXkodCxlPTApe2ZvcihsZXQgaT0wO2k8MTY7aSsrKXRoaXMuZWxlbWVudHNbaV09dFtpK2VdO3JldHVybiB0aGlzfXRvQXJyYXkodD1bXSxlPTApe2xldCBpPXRoaXMuZWxlbWVudHM7cmV0dXJuIHRbZV09aVswXSx0W2UrMV09aVsxXSx0W2UrMl09aVsyXSx0W2UrM109aVszXSx0W2UrNF09aVs0XSx0W2UrNV09aVs1XSx0W2UrNl09aVs2XSx0W2UrN109aVs3XSx0W2UrOF09aVs4XSx0W2UrOV09aVs5XSx0W2UrMTBdPWlbMTBdLHRbZSsxMV09aVsxMV0sdFtlKzEyXT1pWzEyXSx0W2UrMTNdPWlbMTNdLHRbZSsxNF09aVsxNF0sdFtlKzE1XT1pWzE1XSx0fX07dm4ucHJvdG90eXBlLmlzTWF0cml4ND0hMDt2YXIgVDA9bmV3IEssV2w9bmV3IHZuLHRQZT1uZXcgSygwLDAsMCksblBlPW5ldyBLKDEsMSwxKSxtcD1uZXcgSyxZRD1uZXcgSyx3cz1uZXcgSyxvZWU9bmV3IHZuLGFlZT1uZXcgb2EsVHA9Y2xhc3N7Y29uc3RydWN0b3IodD0wLGU9MCxpPTAscj1UcC5EZWZhdWx0T3JkZXIpe3RoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5fej1pLHRoaXMuX29yZGVyPXJ9Z2V0IHgoKXtyZXR1cm4gdGhpcy5feH1zZXQgeCh0KXt0aGlzLl94PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCB5KCl7cmV0dXJuIHRoaXMuX3l9c2V0IHkodCl7dGhpcy5feT10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgeigpe3JldHVybiB0aGlzLl96fXNldCB6KHQpe3RoaXMuX3o9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IG9yZGVyKCl7cmV0dXJuIHRoaXMuX29yZGVyfXNldCBvcmRlcih0KXt0aGlzLl9vcmRlcj10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1zZXQodCxlLGkscj10aGlzLl9vcmRlcil7cmV0dXJuIHRoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5fej1pLHRoaXMuX29yZGVyPXIsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5feCx0aGlzLl95LHRoaXMuX3osdGhpcy5fb3JkZXIpfWNvcHkodCl7cmV0dXJuIHRoaXMuX3g9dC5feCx0aGlzLl95PXQuX3ksdGhpcy5fej10Ll96LHRoaXMuX29yZGVyPXQuX29yZGVyLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21Sb3RhdGlvbk1hdHJpeCh0LGU9dGhpcy5fb3JkZXIsaT0hMCl7bGV0IHI9dC5lbGVtZW50cyxvPXJbMF0sYT1yWzRdLHM9cls4XSxsPXJbMV0sYz1yWzVdLGQ9cls5XSx1PXJbMl0scD1yWzZdLGg9clsxMF07c3dpdGNoKGUpe2Nhc2UiWFlaIjp0aGlzLl95PU1hdGguYXNpbihlcyhzLC0xLDEpKSxNYXRoLmFicyhzKTwuOTk5OTk5OT8odGhpcy5feD1NYXRoLmF0YW4yKC1kLGgpLHRoaXMuX3o9TWF0aC5hdGFuMigtYSxvKSk6KHRoaXMuX3g9TWF0aC5hdGFuMihwLGMpLHRoaXMuX3o9MCk7YnJlYWs7Y2FzZSJZWFoiOnRoaXMuX3g9TWF0aC5hc2luKC1lcyhkLC0xLDEpKSxNYXRoLmFicyhkKTwuOTk5OTk5OT8odGhpcy5feT1NYXRoLmF0YW4yKHMsaCksdGhpcy5fej1NYXRoLmF0YW4yKGwsYykpOih0aGlzLl95PU1hdGguYXRhbjIoLXUsbyksdGhpcy5fej0wKTticmVhaztjYXNlIlpYWSI6dGhpcy5feD1NYXRoLmFzaW4oZXMocCwtMSwxKSksTWF0aC5hYnMocCk8Ljk5OTk5OTk/KHRoaXMuX3k9TWF0aC5hdGFuMigtdSxoKSx0aGlzLl96PU1hdGguYXRhbjIoLWEsYykpOih0aGlzLl95PTAsdGhpcy5fej1NYXRoLmF0YW4yKGwsbykpO2JyZWFrO2Nhc2UiWllYIjp0aGlzLl95PU1hdGguYXNpbigtZXModSwtMSwxKSksTWF0aC5hYnModSk8Ljk5OTk5OTk/KHRoaXMuX3g9TWF0aC5hdGFuMihwLGgpLHRoaXMuX3o9TWF0aC5hdGFuMihsLG8pKToodGhpcy5feD0wLHRoaXMuX3o9TWF0aC5hdGFuMigtYSxjKSk7YnJlYWs7Y2FzZSJZWlgiOnRoaXMuX3o9TWF0aC5hc2luKGVzKGwsLTEsMSkpLE1hdGguYWJzKGwpPC45OTk5OTk5Pyh0aGlzLl94PU1hdGguYXRhbjIoLWQsYyksdGhpcy5feT1NYXRoLmF0YW4yKC11LG8pKToodGhpcy5feD0wLHRoaXMuX3k9TWF0aC5hdGFuMihzLGgpKTticmVhaztjYXNlIlhaWSI6dGhpcy5fej1NYXRoLmFzaW4oLWVzKGEsLTEsMSkpLE1hdGguYWJzKGEpPC45OTk5OTk5Pyh0aGlzLl94PU1hdGguYXRhbjIocCxjKSx0aGlzLl95PU1hdGguYXRhbjIocyxvKSk6KHRoaXMuX3g9TWF0aC5hdGFuMigtZCxoKSx0aGlzLl95PTApO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKCJUSFJFRS5FdWxlcjogLnNldEZyb21Sb3RhdGlvbk1hdHJpeCgpIGVuY291bnRlcmVkIGFuIHVua25vd24gb3JkZXI6ICIrZSl9cmV0dXJuIHRoaXMuX29yZGVyPWUsITA9PT1pJiZ0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tUXVhdGVybmlvbih0LGUsaSl7cmV0dXJuIG9lZS5tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbih0KSx0aGlzLnNldEZyb21Sb3RhdGlvbk1hdHJpeChvZWUsZSxpKX1zZXRGcm9tVmVjdG9yMyh0LGU9dGhpcy5fb3JkZXIpe3JldHVybiB0aGlzLnNldCh0LngsdC55LHQueixlKX1yZW9yZGVyKHQpe3JldHVybiBhZWUuc2V0RnJvbUV1bGVyKHRoaXMpLHRoaXMuc2V0RnJvbVF1YXRlcm5pb24oYWVlLHQpfWVxdWFscyh0KXtyZXR1cm4gdC5feD09PXRoaXMuX3gmJnQuX3k9PT10aGlzLl95JiZ0Ll96PT09dGhpcy5feiYmdC5fb3JkZXI9PT10aGlzLl9vcmRlcn1mcm9tQXJyYXkodCl7cmV0dXJuIHRoaXMuX3g9dFswXSx0aGlzLl95PXRbMV0sdGhpcy5fej10WzJdLHZvaWQgMCE9PXRbM10mJih0aGlzLl9vcmRlcj10WzNdKSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLl94LHRbZSsxXT10aGlzLl95LHRbZSsyXT10aGlzLl96LHRbZSszXT10aGlzLl9vcmRlcix0fXRvVmVjdG9yMyh0KXtyZXR1cm4gdD90LnNldCh0aGlzLl94LHRoaXMuX3ksdGhpcy5feik6bmV3IEsodGhpcy5feCx0aGlzLl95LHRoaXMuX3opfV9vbkNoYW5nZSh0KXtyZXR1cm4gdGhpcy5fb25DaGFuZ2VDYWxsYmFjaz10LHRoaXN9X29uQ2hhbmdlQ2FsbGJhY2soKXt9fTtUcC5wcm90b3R5cGUuaXNFdWxlcj0hMCxUcC5EZWZhdWx0T3JkZXI9IlhZWiIsVHAuUm90YXRpb25PcmRlcnM9WyJYWVoiLCJZWlgiLCJaWFkiLCJYWlkiLCJZWFoiLCJaWVgiXTt2YXIgRUk9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm1hc2s9MX1zZXQodCl7dGhpcy5tYXNrPSgxPDx0fDApPj4+MH1lbmFibGUodCl7dGhpcy5tYXNrfD0xPDx0fDB9ZW5hYmxlQWxsKCl7dGhpcy5tYXNrPS0xfXRvZ2dsZSh0KXt0aGlzLm1hc2tePTE8PHR8MH1kaXNhYmxlKHQpe3RoaXMubWFzayY9figxPDx0fDApfWRpc2FibGVBbGwoKXt0aGlzLm1hc2s9MH10ZXN0KHQpe3JldHVybiAwIT0odGhpcy5tYXNrJnQubWFzayl9aXNFbmFibGVkKHQpe3JldHVybiAwIT0odGhpcy5tYXNrJigxPDx0fDApKX19LGlQZT0wLHNlZT1uZXcgSyxEMD1uZXcgb2EsTGQ9bmV3IHZuLFFEPW5ldyBLLGF4PW5ldyBLLHJQZT1uZXcgSyxvUGU9bmV3IG9hLGxlZT1uZXcgSygxLDAsMCksY2VlPW5ldyBLKDAsMSwwKSxkZWU9bmV3IEsoMCwwLDEpLGFQZT17dHlwZToiYWRkZWQifSx1ZWU9e3R5cGU6InJlbW92ZWQifSxVaT1jbGFzcyBleHRlbmRzIHpke2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiaWQiLHt2YWx1ZTppUGUrK30pLHRoaXMudXVpZD1ZbCgpLHRoaXMubmFtZT0iIix0aGlzLnR5cGU9Ik9iamVjdDNEIix0aGlzLnBhcmVudD1udWxsLHRoaXMuY2hpbGRyZW49W10sdGhpcy51cD1VaS5EZWZhdWx0VXAuY2xvbmUoKTtsZXQgdD1uZXcgSyxlPW5ldyBUcCxpPW5ldyBvYSxyPW5ldyBLKDEsMSwxKTtlLl9vbkNoYW5nZShmdW5jdGlvbigpe2kuc2V0RnJvbUV1bGVyKGUsITEpfSksaS5fb25DaGFuZ2UoZnVuY3Rpb24oKXtlLnNldEZyb21RdWF0ZXJuaW9uKGksdm9pZCAwLCExKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMse3Bvc2l0aW9uOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTp0fSxyb3RhdGlvbjp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6ZX0scXVhdGVybmlvbjp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6aX0sc2NhbGU6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOnJ9LG1vZGVsVmlld01hdHJpeDp7dmFsdWU6bmV3IHZufSxub3JtYWxNYXRyaXg6e3ZhbHVlOm5ldyB5b319KSx0aGlzLm1hdHJpeD1uZXcgdm4sdGhpcy5tYXRyaXhXb3JsZD1uZXcgdm4sdGhpcy5tYXRyaXhBdXRvVXBkYXRlPVVpLkRlZmF1bHRNYXRyaXhBdXRvVXBkYXRlLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMSx0aGlzLmxheWVycz1uZXcgRUksdGhpcy52aXNpYmxlPSEwLHRoaXMuY2FzdFNoYWRvdz0hMSx0aGlzLnJlY2VpdmVTaGFkb3c9ITEsdGhpcy5mcnVzdHVtQ3VsbGVkPSEwLHRoaXMucmVuZGVyT3JkZXI9MCx0aGlzLmFuaW1hdGlvbnM9W10sdGhpcy51c2VyRGF0YT17fX1vbkJlZm9yZVJlbmRlcigpe31vbkFmdGVyUmVuZGVyKCl7fWFwcGx5TWF0cml4NCh0KXt0aGlzLm1hdHJpeEF1dG9VcGRhdGUmJnRoaXMudXBkYXRlTWF0cml4KCksdGhpcy5tYXRyaXgucHJlbXVsdGlwbHkodCksdGhpcy5tYXRyaXguZGVjb21wb3NlKHRoaXMucG9zaXRpb24sdGhpcy5xdWF0ZXJuaW9uLHRoaXMuc2NhbGUpfWFwcGx5UXVhdGVybmlvbih0KXtyZXR1cm4gdGhpcy5xdWF0ZXJuaW9uLnByZW11bHRpcGx5KHQpLHRoaXN9c2V0Um90YXRpb25Gcm9tQXhpc0FuZ2xlKHQsZSl7dGhpcy5xdWF0ZXJuaW9uLnNldEZyb21BeGlzQW5nbGUodCxlKX1zZXRSb3RhdGlvbkZyb21FdWxlcih0KXt0aGlzLnF1YXRlcm5pb24uc2V0RnJvbUV1bGVyKHQsITApfXNldFJvdGF0aW9uRnJvbU1hdHJpeCh0KXt0aGlzLnF1YXRlcm5pb24uc2V0RnJvbVJvdGF0aW9uTWF0cml4KHQpfXNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24odCl7dGhpcy5xdWF0ZXJuaW9uLmNvcHkodCl9cm90YXRlT25BeGlzKHQsZSl7cmV0dXJuIEQwLnNldEZyb21BeGlzQW5nbGUodCxlKSx0aGlzLnF1YXRlcm5pb24ubXVsdGlwbHkoRDApLHRoaXN9cm90YXRlT25Xb3JsZEF4aXModCxlKXtyZXR1cm4gRDAuc2V0RnJvbUF4aXNBbmdsZSh0LGUpLHRoaXMucXVhdGVybmlvbi5wcmVtdWx0aXBseShEMCksdGhpc31yb3RhdGVYKHQpe3JldHVybiB0aGlzLnJvdGF0ZU9uQXhpcyhsZWUsdCl9cm90YXRlWSh0KXtyZXR1cm4gdGhpcy5yb3RhdGVPbkF4aXMoY2VlLHQpfXJvdGF0ZVoodCl7cmV0dXJuIHRoaXMucm90YXRlT25BeGlzKGRlZSx0KX10cmFuc2xhdGVPbkF4aXModCxlKXtyZXR1cm4gc2VlLmNvcHkodCkuYXBwbHlRdWF0ZXJuaW9uKHRoaXMucXVhdGVybmlvbiksdGhpcy5wb3NpdGlvbi5hZGQoc2VlLm11bHRpcGx5U2NhbGFyKGUpKSx0aGlzfXRyYW5zbGF0ZVgodCl7cmV0dXJuIHRoaXMudHJhbnNsYXRlT25BeGlzKGxlZSx0KX10cmFuc2xhdGVZKHQpe3JldHVybiB0aGlzLnRyYW5zbGF0ZU9uQXhpcyhjZWUsdCl9dHJhbnNsYXRlWih0KXtyZXR1cm4gdGhpcy50cmFuc2xhdGVPbkF4aXMoZGVlLHQpfWxvY2FsVG9Xb3JsZCh0KXtyZXR1cm4gdC5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCl9d29ybGRUb0xvY2FsKHQpe3JldHVybiB0LmFwcGx5TWF0cml4NChMZC5jb3B5KHRoaXMubWF0cml4V29ybGQpLmludmVydCgpKX1sb29rQXQodCxlLGkpe3QuaXNWZWN0b3IzP1FELmNvcHkodCk6UUQuc2V0KHQsZSxpKTtsZXQgcj10aGlzLnBhcmVudDt0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSxheC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tYXRyaXhXb3JsZCksdGhpcy5pc0NhbWVyYXx8dGhpcy5pc0xpZ2h0P0xkLmxvb2tBdChheCxRRCx0aGlzLnVwKTpMZC5sb29rQXQoUUQsYXgsdGhpcy51cCksdGhpcy5xdWF0ZXJuaW9uLnNldEZyb21Sb3RhdGlvbk1hdHJpeChMZCksciYmKExkLmV4dHJhY3RSb3RhdGlvbihyLm1hdHJpeFdvcmxkKSxEMC5zZXRGcm9tUm90YXRpb25NYXRyaXgoTGQpLHRoaXMucXVhdGVybmlvbi5wcmVtdWx0aXBseShEMC5pbnZlcnQoKSkpfWFkZCh0KXtpZihhcmd1bWVudHMubGVuZ3RoPjEpe2ZvcihsZXQgZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdGhpcy5hZGQoYXJndW1lbnRzW2VdKTtyZXR1cm4gdGhpc31yZXR1cm4gdD09PXRoaXM/KGNvbnNvbGUuZXJyb3IoIlRIUkVFLk9iamVjdDNELmFkZDogb2JqZWN0IGNhbid0IGJlIGFkZGVkIGFzIGEgY2hpbGQgb2YgaXRzZWxmLiIsdCksdGhpcyk6KHQmJnQuaXNPYmplY3QzRD8obnVsbCE9PXQucGFyZW50JiZ0LnBhcmVudC5yZW1vdmUodCksdC5wYXJlbnQ9dGhpcyx0aGlzLmNoaWxkcmVuLnB1c2godCksdC5kaXNwYXRjaEV2ZW50KGFQZSkpOmNvbnNvbGUuZXJyb3IoIlRIUkVFLk9iamVjdDNELmFkZDogb2JqZWN0IG5vdCBhbiBpbnN0YW5jZSBvZiBUSFJFRS5PYmplY3QzRC4iLHQpLHRoaXMpfXJlbW92ZSh0KXtpZihhcmd1bWVudHMubGVuZ3RoPjEpe2ZvcihsZXQgaT0wO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspdGhpcy5yZW1vdmUoYXJndW1lbnRzW2ldKTtyZXR1cm4gdGhpc31sZXQgZT10aGlzLmNoaWxkcmVuLmluZGV4T2YodCk7cmV0dXJuLTEhPT1lJiYodC5wYXJlbnQ9bnVsbCx0aGlzLmNoaWxkcmVuLnNwbGljZShlLDEpLHQuZGlzcGF0Y2hFdmVudCh1ZWUpKSx0aGlzfXJlbW92ZUZyb21QYXJlbnQoKXtsZXQgdD10aGlzLnBhcmVudDtyZXR1cm4gbnVsbCE9PXQmJnQucmVtb3ZlKHRoaXMpLHRoaXN9Y2xlYXIoKXtmb3IobGV0IHQ9MDt0PHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3QrKyl7bGV0IGU9dGhpcy5jaGlsZHJlblt0XTtlLnBhcmVudD1udWxsLGUuZGlzcGF0Y2hFdmVudCh1ZWUpfXJldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aD0wLHRoaXN9YXR0YWNoKHQpe3JldHVybiB0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSxMZC5jb3B5KHRoaXMubWF0cml4V29ybGQpLmludmVydCgpLG51bGwhPT10LnBhcmVudCYmKHQucGFyZW50LnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSxMZC5tdWx0aXBseSh0LnBhcmVudC5tYXRyaXhXb3JsZCkpLHQuYXBwbHlNYXRyaXg0KExkKSx0aGlzLmFkZCh0KSx0LnVwZGF0ZVdvcmxkTWF0cml4KCExLCEwKSx0aGlzfWdldE9iamVjdEJ5SWQodCl7cmV0dXJuIHRoaXMuZ2V0T2JqZWN0QnlQcm9wZXJ0eSgiaWQiLHQpfWdldE9iamVjdEJ5TmFtZSh0KXtyZXR1cm4gdGhpcy5nZXRPYmplY3RCeVByb3BlcnR5KCJuYW1lIix0KX1nZXRPYmplY3RCeVByb3BlcnR5KHQsZSl7aWYodGhpc1t0XT09PWUpcmV0dXJuIHRoaXM7Zm9yKGxldCBpPTAscj10aGlzLmNoaWxkcmVuLmxlbmd0aDtpPHI7aSsrKXtsZXQgYT10aGlzLmNoaWxkcmVuW2ldLmdldE9iamVjdEJ5UHJvcGVydHkodCxlKTtpZih2b2lkIDAhPT1hKXJldHVybiBhfX1nZXRXb3JsZFBvc2l0aW9uKHQpe3JldHVybiB0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx0LnNldEZyb21NYXRyaXhQb3NpdGlvbih0aGlzLm1hdHJpeFdvcmxkKX1nZXRXb3JsZFF1YXRlcm5pb24odCl7cmV0dXJuIHRoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHRoaXMubWF0cml4V29ybGQuZGVjb21wb3NlKGF4LHQsclBlKSx0fWdldFdvcmxkU2NhbGUodCl7cmV0dXJuIHRoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHRoaXMubWF0cml4V29ybGQuZGVjb21wb3NlKGF4LG9QZSx0KSx0fWdldFdvcmxkRGlyZWN0aW9uKHQpe3RoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpO2xldCBlPXRoaXMubWF0cml4V29ybGQuZWxlbWVudHM7cmV0dXJuIHQuc2V0KGVbOF0sZVs5XSxlWzEwXSkubm9ybWFsaXplKCl9cmF5Y2FzdCgpe310cmF2ZXJzZSh0KXt0KHRoaXMpO2xldCBlPXRoaXMuY2hpbGRyZW47Zm9yKGxldCBpPTAscj1lLmxlbmd0aDtpPHI7aSsrKWVbaV0udHJhdmVyc2UodCl9dHJhdmVyc2VWaXNpYmxlKHQpe2lmKCExPT09dGhpcy52aXNpYmxlKXJldHVybjt0KHRoaXMpO2xldCBlPXRoaXMuY2hpbGRyZW47Zm9yKGxldCBpPTAscj1lLmxlbmd0aDtpPHI7aSsrKWVbaV0udHJhdmVyc2VWaXNpYmxlKHQpfXRyYXZlcnNlQW5jZXN0b3JzKHQpe2xldCBlPXRoaXMucGFyZW50O251bGwhPT1lJiYodChlKSxlLnRyYXZlcnNlQW5jZXN0b3JzKHQpKX11cGRhdGVNYXRyaXgoKXt0aGlzLm1hdHJpeC5jb21wb3NlKHRoaXMucG9zaXRpb24sdGhpcy5xdWF0ZXJuaW9uLHRoaXMuc2NhbGUpLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMH11cGRhdGVNYXRyaXhXb3JsZCh0KXt0aGlzLm1hdHJpeEF1dG9VcGRhdGUmJnRoaXMudXBkYXRlTWF0cml4KCksKHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZXx8dCkmJihudWxsPT09dGhpcy5wYXJlbnQ/dGhpcy5tYXRyaXhXb3JsZC5jb3B5KHRoaXMubWF0cml4KTp0aGlzLm1hdHJpeFdvcmxkLm11bHRpcGx5TWF0cmljZXModGhpcy5wYXJlbnQubWF0cml4V29ybGQsdGhpcy5tYXRyaXgpLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMSx0PSEwKTtsZXQgZT10aGlzLmNoaWxkcmVuO2ZvcihsZXQgaT0wLHI9ZS5sZW5ndGg7aTxyO2krKyllW2ldLnVwZGF0ZU1hdHJpeFdvcmxkKHQpfXVwZGF0ZVdvcmxkTWF0cml4KHQsZSl7bGV0IGk9dGhpcy5wYXJlbnQ7aWYoITA9PT10JiZudWxsIT09aSYmaS51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksdGhpcy5tYXRyaXhBdXRvVXBkYXRlJiZ0aGlzLnVwZGF0ZU1hdHJpeCgpLG51bGw9PT10aGlzLnBhcmVudD90aGlzLm1hdHJpeFdvcmxkLmNvcHkodGhpcy5tYXRyaXgpOnRoaXMubWF0cml4V29ybGQubXVsdGlwbHlNYXRyaWNlcyh0aGlzLnBhcmVudC5tYXRyaXhXb3JsZCx0aGlzLm1hdHJpeCksITA9PT1lKXtsZXQgcj10aGlzLmNoaWxkcmVuO2ZvcihsZXQgbz0wLGE9ci5sZW5ndGg7bzxhO28rKylyW29dLnVwZGF0ZVdvcmxkTWF0cml4KCExLCEwKX19dG9KU09OKHQpe2xldCBlPXZvaWQgMD09PXR8fCJzdHJpbmciPT10eXBlb2YgdCxpPXt9O2UmJih0PXtnZW9tZXRyaWVzOnt9LG1hdGVyaWFsczp7fSx0ZXh0dXJlczp7fSxpbWFnZXM6e30sc2hhcGVzOnt9LHNrZWxldG9uczp7fSxhbmltYXRpb25zOnt9fSxpLm1ldGFkYXRhPXt2ZXJzaW9uOjQuNSx0eXBlOiJPYmplY3QiLGdlbmVyYXRvcjoiT2JqZWN0M0QudG9KU09OIn0pO2xldCByPXt9O2Z1bmN0aW9uIG8ocyxsKXtyZXR1cm4gdm9pZCAwPT09c1tsLnV1aWRdJiYoc1tsLnV1aWRdPWwudG9KU09OKHQpKSxsLnV1aWR9aWYoci51dWlkPXRoaXMudXVpZCxyLnR5cGU9dGhpcy50eXBlLCIiIT09dGhpcy5uYW1lJiYoci5uYW1lPXRoaXMubmFtZSksITA9PT10aGlzLmNhc3RTaGFkb3cmJihyLmNhc3RTaGFkb3c9ITApLCEwPT09dGhpcy5yZWNlaXZlU2hhZG93JiYoci5yZWNlaXZlU2hhZG93PSEwKSwhMT09PXRoaXMudmlzaWJsZSYmKHIudmlzaWJsZT0hMSksITE9PT10aGlzLmZydXN0dW1DdWxsZWQmJihyLmZydXN0dW1DdWxsZWQ9ITEpLDAhPT10aGlzLnJlbmRlck9yZGVyJiYoci5yZW5kZXJPcmRlcj10aGlzLnJlbmRlck9yZGVyKSwie30iIT09SlNPTi5zdHJpbmdpZnkodGhpcy51c2VyRGF0YSkmJihyLnVzZXJEYXRhPXRoaXMudXNlckRhdGEpLHIubGF5ZXJzPXRoaXMubGF5ZXJzLm1hc2ssci5tYXRyaXg9dGhpcy5tYXRyaXgudG9BcnJheSgpLCExPT09dGhpcy5tYXRyaXhBdXRvVXBkYXRlJiYoci5tYXRyaXhBdXRvVXBkYXRlPSExKSx0aGlzLmlzSW5zdGFuY2VkTWVzaCYmKHIudHlwZT0iSW5zdGFuY2VkTWVzaCIsci5jb3VudD10aGlzLmNvdW50LHIuaW5zdGFuY2VNYXRyaXg9dGhpcy5pbnN0YW5jZU1hdHJpeC50b0pTT04oKSxudWxsIT09dGhpcy5pbnN0YW5jZUNvbG9yJiYoci5pbnN0YW5jZUNvbG9yPXRoaXMuaW5zdGFuY2VDb2xvci50b0pTT04oKSkpLHRoaXMuaXNTY2VuZSl0aGlzLmJhY2tncm91bmQmJih0aGlzLmJhY2tncm91bmQuaXNDb2xvcj9yLmJhY2tncm91bmQ9dGhpcy5iYWNrZ3JvdW5kLnRvSlNPTigpOnRoaXMuYmFja2dyb3VuZC5pc1RleHR1cmUmJihyLmJhY2tncm91bmQ9dGhpcy5iYWNrZ3JvdW5kLnRvSlNPTih0KS51dWlkKSksdGhpcy5lbnZpcm9ubWVudCYmdGhpcy5lbnZpcm9ubWVudC5pc1RleHR1cmUmJihyLmVudmlyb25tZW50PXRoaXMuZW52aXJvbm1lbnQudG9KU09OKHQpLnV1aWQpO2Vsc2UgaWYodGhpcy5pc01lc2h8fHRoaXMuaXNMaW5lfHx0aGlzLmlzUG9pbnRzKXtyLmdlb21ldHJ5PW8odC5nZW9tZXRyaWVzLHRoaXMuZ2VvbWV0cnkpO2xldCBzPXRoaXMuZ2VvbWV0cnkucGFyYW1ldGVycztpZih2b2lkIDAhPT1zJiZ2b2lkIDAhPT1zLnNoYXBlcyl7bGV0IGw9cy5zaGFwZXM7aWYoQXJyYXkuaXNBcnJheShsKSlmb3IobGV0IGM9MCxkPWwubGVuZ3RoO2M8ZDtjKyspbyh0LnNoYXBlcyxsW2NdKTtlbHNlIG8odC5zaGFwZXMsbCl9fWlmKHRoaXMuaXNTa2lubmVkTWVzaCYmKHIuYmluZE1vZGU9dGhpcy5iaW5kTW9kZSxyLmJpbmRNYXRyaXg9dGhpcy5iaW5kTWF0cml4LnRvQXJyYXkoKSx2b2lkIDAhPT10aGlzLnNrZWxldG9uJiYobyh0LnNrZWxldG9ucyx0aGlzLnNrZWxldG9uKSxyLnNrZWxldG9uPXRoaXMuc2tlbGV0b24udXVpZCkpLHZvaWQgMCE9PXRoaXMubWF0ZXJpYWwpaWYoQXJyYXkuaXNBcnJheSh0aGlzLm1hdGVyaWFsKSl7bGV0IHM9W107Zm9yKGxldCBsPTAsYz10aGlzLm1hdGVyaWFsLmxlbmd0aDtsPGM7bCsrKXMucHVzaChvKHQubWF0ZXJpYWxzLHRoaXMubWF0ZXJpYWxbbF0pKTtyLm1hdGVyaWFsPXN9ZWxzZSByLm1hdGVyaWFsPW8odC5tYXRlcmlhbHMsdGhpcy5tYXRlcmlhbCk7aWYodGhpcy5jaGlsZHJlbi5sZW5ndGg+MCl7ci5jaGlsZHJlbj1bXTtmb3IobGV0IHM9MDtzPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3MrKylyLmNoaWxkcmVuLnB1c2godGhpcy5jaGlsZHJlbltzXS50b0pTT04odCkub2JqZWN0KX1pZih0aGlzLmFuaW1hdGlvbnMubGVuZ3RoPjApe3IuYW5pbWF0aW9ucz1bXTtmb3IobGV0IHM9MDtzPHRoaXMuYW5pbWF0aW9ucy5sZW5ndGg7cysrKXIuYW5pbWF0aW9ucy5wdXNoKG8odC5hbmltYXRpb25zLHRoaXMuYW5pbWF0aW9uc1tzXSkpfWlmKGUpe2xldCBzPWEodC5nZW9tZXRyaWVzKSxsPWEodC5tYXRlcmlhbHMpLGM9YSh0LnRleHR1cmVzKSxkPWEodC5pbWFnZXMpLHU9YSh0LnNoYXBlcykscD1hKHQuc2tlbGV0b25zKSxoPWEodC5hbmltYXRpb25zKTtzLmxlbmd0aD4wJiYoaS5nZW9tZXRyaWVzPXMpLGwubGVuZ3RoPjAmJihpLm1hdGVyaWFscz1sKSxjLmxlbmd0aD4wJiYoaS50ZXh0dXJlcz1jKSxkLmxlbmd0aD4wJiYoaS5pbWFnZXM9ZCksdS5sZW5ndGg+MCYmKGkuc2hhcGVzPXUpLHAubGVuZ3RoPjAmJihpLnNrZWxldG9ucz1wKSxoLmxlbmd0aD4wJiYoaS5hbmltYXRpb25zPWgpfXJldHVybiBpLm9iamVjdD1yLGk7ZnVuY3Rpb24gYShzKXtsZXQgbD1bXTtmb3IobGV0IGMgaW4gcyl7bGV0IGQ9c1tjXTtkZWxldGUgZC5tZXRhZGF0YSxsLnB1c2goZCl9cmV0dXJuIGx9fWNsb25lKHQpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzLHQpfWNvcHkodCxlPSEwKXtpZih0aGlzLm5hbWU9dC5uYW1lLHRoaXMudXAuY29weSh0LnVwKSx0aGlzLnBvc2l0aW9uLmNvcHkodC5wb3NpdGlvbiksdGhpcy5yb3RhdGlvbi5vcmRlcj10LnJvdGF0aW9uLm9yZGVyLHRoaXMucXVhdGVybmlvbi5jb3B5KHQucXVhdGVybmlvbiksdGhpcy5zY2FsZS5jb3B5KHQuc2NhbGUpLHRoaXMubWF0cml4LmNvcHkodC5tYXRyaXgpLHRoaXMubWF0cml4V29ybGQuY29weSh0Lm1hdHJpeFdvcmxkKSx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT10Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGUsdGhpcy5sYXllcnMubWFzaz10LmxheWVycy5tYXNrLHRoaXMudmlzaWJsZT10LnZpc2libGUsdGhpcy5jYXN0U2hhZG93PXQuY2FzdFNoYWRvdyx0aGlzLnJlY2VpdmVTaGFkb3c9dC5yZWNlaXZlU2hhZG93LHRoaXMuZnJ1c3R1bUN1bGxlZD10LmZydXN0dW1DdWxsZWQsdGhpcy5yZW5kZXJPcmRlcj10LnJlbmRlck9yZGVyLHRoaXMudXNlckRhdGE9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0LnVzZXJEYXRhKSksITA9PT1lKWZvcihsZXQgaT0wO2k8dC5jaGlsZHJlbi5sZW5ndGg7aSsrKXRoaXMuYWRkKHQuY2hpbGRyZW5baV0uY2xvbmUoKSk7cmV0dXJuIHRoaXN9fTtVaS5EZWZhdWx0VXA9bmV3IEsoMCwxLDApLFVpLkRlZmF1bHRNYXRyaXhBdXRvVXBkYXRlPSEwLFVpLnByb3RvdHlwZS5pc09iamVjdDNEPSEwO3ZhciBxbD1uZXcgSyxCZD1uZXcgSyxFMz1uZXcgSyxWZD1uZXcgSyxJMD1uZXcgSyxBMD1uZXcgSyxwZWU9bmV3IEssVDM9bmV3IEssRDM9bmV3IEssSTM9bmV3IEssVnI9Y2xhc3N7Y29uc3RydWN0b3IodD1uZXcgSyxlPW5ldyBLLGk9bmV3IEspe3RoaXMuYT10LHRoaXMuYj1lLHRoaXMuYz1pfXN0YXRpYyBnZXROb3JtYWwodCxlLGkscil7ci5zdWJWZWN0b3JzKGksZSkscWwuc3ViVmVjdG9ycyh0LGUpLHIuY3Jvc3MocWwpO2xldCBvPXIubGVuZ3RoU3EoKTtyZXR1cm4gbz4wP3IubXVsdGlwbHlTY2FsYXIoMS9NYXRoLnNxcnQobykpOnIuc2V0KDAsMCwwKX1zdGF0aWMgZ2V0QmFyeWNvb3JkKHQsZSxpLHIsbyl7cWwuc3ViVmVjdG9ycyhyLGUpLEJkLnN1YlZlY3RvcnMoaSxlKSxFMy5zdWJWZWN0b3JzKHQsZSk7bGV0IGE9cWwuZG90KHFsKSxzPXFsLmRvdChCZCksbD1xbC5kb3QoRTMpLGM9QmQuZG90KEJkKSxkPUJkLmRvdChFMyksdT1hKmMtcypzO2lmKDA9PT11KXJldHVybiBvLnNldCgtMiwtMSwtMSk7bGV0IHA9MS91LGg9KGMqbC1zKmQpKnAsbT0oYSpkLXMqbCkqcDtyZXR1cm4gby5zZXQoMS1oLW0sbSxoKX1zdGF0aWMgY29udGFpbnNQb2ludCh0LGUsaSxyKXtyZXR1cm4gdGhpcy5nZXRCYXJ5Y29vcmQodCxlLGkscixWZCksVmQueD49MCYmVmQueT49MCYmVmQueCtWZC55PD0xfXN0YXRpYyBnZXRVVih0LGUsaSxyLG8sYSxzLGwpe3JldHVybiB0aGlzLmdldEJhcnljb29yZCh0LGUsaSxyLFZkKSxsLnNldCgwLDApLGwuYWRkU2NhbGVkVmVjdG9yKG8sVmQueCksbC5hZGRTY2FsZWRWZWN0b3IoYSxWZC55KSxsLmFkZFNjYWxlZFZlY3RvcihzLFZkLnopLGx9c3RhdGljIGlzRnJvbnRGYWNpbmcodCxlLGkscil7cmV0dXJuIHFsLnN1YlZlY3RvcnMoaSxlKSxCZC5zdWJWZWN0b3JzKHQsZSkscWwuY3Jvc3MoQmQpLmRvdChyKTwwfXNldCh0LGUsaSl7cmV0dXJuIHRoaXMuYS5jb3B5KHQpLHRoaXMuYi5jb3B5KGUpLHRoaXMuYy5jb3B5KGkpLHRoaXN9c2V0RnJvbVBvaW50c0FuZEluZGljZXModCxlLGkscil7cmV0dXJuIHRoaXMuYS5jb3B5KHRbZV0pLHRoaXMuYi5jb3B5KHRbaV0pLHRoaXMuYy5jb3B5KHRbcl0pLHRoaXN9c2V0RnJvbUF0dHJpYnV0ZUFuZEluZGljZXModCxlLGkscil7cmV0dXJuIHRoaXMuYS5mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSksdGhpcy5iLmZyb21CdWZmZXJBdHRyaWJ1dGUodCxpKSx0aGlzLmMuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LHIpLHRoaXN9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9Y29weSh0KXtyZXR1cm4gdGhpcy5hLmNvcHkodC5hKSx0aGlzLmIuY29weSh0LmIpLHRoaXMuYy5jb3B5KHQuYyksdGhpc31nZXRBcmVhKCl7cmV0dXJuIHFsLnN1YlZlY3RvcnModGhpcy5jLHRoaXMuYiksQmQuc3ViVmVjdG9ycyh0aGlzLmEsdGhpcy5iKSwuNSpxbC5jcm9zcyhCZCkubGVuZ3RoKCl9Z2V0TWlkcG9pbnQodCl7cmV0dXJuIHQuYWRkVmVjdG9ycyh0aGlzLmEsdGhpcy5iKS5hZGQodGhpcy5jKS5tdWx0aXBseVNjYWxhcigxLzMpfWdldE5vcm1hbCh0KXtyZXR1cm4gVnIuZ2V0Tm9ybWFsKHRoaXMuYSx0aGlzLmIsdGhpcy5jLHQpfWdldFBsYW5lKHQpe3JldHVybiB0LnNldEZyb21Db3BsYW5hclBvaW50cyh0aGlzLmEsdGhpcy5iLHRoaXMuYyl9Z2V0QmFyeWNvb3JkKHQsZSl7cmV0dXJuIFZyLmdldEJhcnljb29yZCh0LHRoaXMuYSx0aGlzLmIsdGhpcy5jLGUpfWdldFVWKHQsZSxpLHIsbyl7cmV0dXJuIFZyLmdldFVWKHQsdGhpcy5hLHRoaXMuYix0aGlzLmMsZSxpLHIsbyl9Y29udGFpbnNQb2ludCh0KXtyZXR1cm4gVnIuY29udGFpbnNQb2ludCh0LHRoaXMuYSx0aGlzLmIsdGhpcy5jKX1pc0Zyb250RmFjaW5nKHQpe3JldHVybiBWci5pc0Zyb250RmFjaW5nKHRoaXMuYSx0aGlzLmIsdGhpcy5jLHQpfWludGVyc2VjdHNCb3godCl7cmV0dXJuIHQuaW50ZXJzZWN0c1RyaWFuZ2xlKHRoaXMpfWNsb3Nlc3RQb2ludFRvUG9pbnQodCxlKXtsZXQgYSxzLGk9dGhpcy5hLHI9dGhpcy5iLG89dGhpcy5jO0kwLnN1YlZlY3RvcnMocixpKSxBMC5zdWJWZWN0b3JzKG8saSksVDMuc3ViVmVjdG9ycyh0LGkpO2xldCBsPUkwLmRvdChUMyksYz1BMC5kb3QoVDMpO2lmKGw8PTAmJmM8PTApcmV0dXJuIGUuY29weShpKTtEMy5zdWJWZWN0b3JzKHQscik7bGV0IGQ9STAuZG90KEQzKSx1PUEwLmRvdChEMyk7aWYoZD49MCYmdTw9ZClyZXR1cm4gZS5jb3B5KHIpO2xldCBwPWwqdS1kKmM7aWYocDw9MCYmbD49MCYmZDw9MClyZXR1cm4gYT1sLyhsLWQpLGUuY29weShpKS5hZGRTY2FsZWRWZWN0b3IoSTAsYSk7STMuc3ViVmVjdG9ycyh0LG8pO2xldCBoPUkwLmRvdChJMyksbT1BMC5kb3QoSTMpO2lmKG0+PTAmJmg8PW0pcmV0dXJuIGUuY29weShvKTtsZXQgXz1oKmMtbCptO2lmKF88PTAmJmM+PTAmJm08PTApcmV0dXJuIHM9Yy8oYy1tKSxlLmNvcHkoaSkuYWRkU2NhbGVkVmVjdG9yKEEwLHMpO2xldCBNPWQqbS1oKnU7aWYoTTw9MCYmdS1kPj0wJiZoLW0+PTApcmV0dXJuIHBlZS5zdWJWZWN0b3JzKG8scikscz0odS1kKS8odS1kKyhoLW0pKSxlLmNvcHkocikuYWRkU2NhbGVkVmVjdG9yKHBlZSxzKTtsZXQgeT0xLyhNK18rcCk7cmV0dXJuIGE9Xyp5LHM9cCp5LGUuY29weShpKS5hZGRTY2FsZWRWZWN0b3IoSTAsYSkuYWRkU2NhbGVkVmVjdG9yKEEwLHMpfWVxdWFscyh0KXtyZXR1cm4gdC5hLmVxdWFscyh0aGlzLmEpJiZ0LmIuZXF1YWxzKHRoaXMuYikmJnQuYy5lcXVhbHModGhpcy5jKX19LHNQZT0wLEZvPWNsYXNzIGV4dGVuZHMgemR7Y29uc3RydWN0b3IoKXtzdXBlcigpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJpZCIse3ZhbHVlOnNQZSsrfSksdGhpcy51dWlkPVlsKCksdGhpcy5uYW1lPSIiLHRoaXMudHlwZT0iTWF0ZXJpYWwiLHRoaXMuZm9nPSEwLHRoaXMuYmxlbmRpbmc9Z3gsdGhpcy5zaWRlPXl4LHRoaXMudmVydGV4Q29sb3JzPSExLHRoaXMub3BhY2l0eT0xLHRoaXMudHJhbnNwYXJlbnQ9ITEsdGhpcy5ibGVuZFNyYz1jdGUsdGhpcy5ibGVuZERzdD1kdGUsdGhpcy5ibGVuZEVxdWF0aW9uPVUwLHRoaXMuYmxlbmRTcmNBbHBoYT1udWxsLHRoaXMuYmxlbmREc3RBbHBoYT1udWxsLHRoaXMuYmxlbmRFcXVhdGlvbkFscGhhPW51bGwsdGhpcy5kZXB0aEZ1bmM9WDMsdGhpcy5kZXB0aFRlc3Q9ITAsdGhpcy5kZXB0aFdyaXRlPSEwLHRoaXMuc3RlbmNpbFdyaXRlTWFzaz0yNTUsdGhpcy5zdGVuY2lsRnVuYz01MTksdGhpcy5zdGVuY2lsUmVmPTAsdGhpcy5zdGVuY2lsRnVuY01hc2s9MjU1LHRoaXMuc3RlbmNpbEZhaWw9NzY4MCx0aGlzLnN0ZW5jaWxaRmFpbD03NjgwLHRoaXMuc3RlbmNpbFpQYXNzPTc2ODAsdGhpcy5zdGVuY2lsV3JpdGU9ITEsdGhpcy5jbGlwcGluZ1BsYW5lcz1udWxsLHRoaXMuY2xpcEludGVyc2VjdGlvbj0hMSx0aGlzLmNsaXBTaGFkb3dzPSExLHRoaXMuc2hhZG93U2lkZT1udWxsLHRoaXMuY29sb3JXcml0ZT0hMCx0aGlzLmFscGhhV3JpdGU9ITAsdGhpcy5wcmVjaXNpb249bnVsbCx0aGlzLnBvbHlnb25PZmZzZXQ9ITEsdGhpcy5wb2x5Z29uT2Zmc2V0RmFjdG9yPTAsdGhpcy5wb2x5Z29uT2Zmc2V0VW5pdHM9MCx0aGlzLmRpdGhlcmluZz0hMSx0aGlzLmFscGhhVG9Db3ZlcmFnZT0hMSx0aGlzLnByZW11bHRpcGxpZWRBbHBoYT0hMSx0aGlzLnZpc2libGU9ITAsdGhpcy50b25lTWFwcGVkPSEwLHRoaXMudXNlckRhdGE9e30sdGhpcy52ZXJzaW9uPTAsdGhpcy5fYWxwaGFUZXN0PTB9Z2V0IGFscGhhVGVzdCgpe3JldHVybiB0aGlzLl9hbHBoYVRlc3R9c2V0IGFscGhhVGVzdCh0KXt0aGlzLl9hbHBoYVRlc3Q+MCE9dD4wJiZ0aGlzLnZlcnNpb24rKyx0aGlzLl9hbHBoYVRlc3Q9dH1vbkJ1aWxkKCl7fW9uQmVmb3JlUmVuZGVyKCl7fW9uQmVmb3JlQ29tcGlsZSgpe31jdXN0b21Qcm9ncmFtQ2FjaGVLZXkoKXtyZXR1cm4gdGhpcy5vbkJlZm9yZUNvbXBpbGUudG9TdHJpbmcoKX1zZXRWYWx1ZXModCl7aWYodm9pZCAwIT09dClmb3IobGV0IGUgaW4gdCl7bGV0IGk9dFtlXTtpZih2b2lkIDA9PT1pKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAnIitlKyInIHBhcmFtZXRlciBpcyB1bmRlZmluZWQuIik7Y29udGludWV9aWYoInNoYWRpbmciPT09ZSl7Y29uc29sZS53YXJuKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc2hhZGluZyBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdGhlIGJvb2xlYW4gLmZsYXRTaGFkaW5nIGluc3RlYWQuIiksdGhpcy5mbGF0U2hhZGluZz0xPT09aTtjb250aW51ZX1sZXQgcj10aGlzW2VdO3ZvaWQgMCE9PXI/ciYmci5pc0NvbG9yP3Iuc2V0KGkpOnImJnIuaXNWZWN0b3IzJiZpJiZpLmlzVmVjdG9yMz9yLmNvcHkoaSk6dGhpc1tlXT1pOmNvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogJyIrZSsiJyBpcyBub3QgYSBwcm9wZXJ0eSBvZiB0aGlzIG1hdGVyaWFsLiIpfX10b0pTT04odCl7bGV0IGU9dm9pZCAwPT09dHx8InN0cmluZyI9PXR5cGVvZiB0O2UmJih0PXt0ZXh0dXJlczp7fSxpbWFnZXM6e319KTtsZXQgaT17bWV0YWRhdGE6e3ZlcnNpb246NC41LHR5cGU6Ik1hdGVyaWFsIixnZW5lcmF0b3I6Ik1hdGVyaWFsLnRvSlNPTiJ9fTtmdW5jdGlvbiByKG8pe2xldCBhPVtdO2ZvcihsZXQgcyBpbiBvKXtsZXQgbD1vW3NdO2RlbGV0ZSBsLm1ldGFkYXRhLGEucHVzaChsKX1yZXR1cm4gYX1pZihpLnV1aWQ9dGhpcy51dWlkLGkudHlwZT10aGlzLnR5cGUsIiIhPT10aGlzLm5hbWUmJihpLm5hbWU9dGhpcy5uYW1lKSx0aGlzLmNvbG9yJiZ0aGlzLmNvbG9yLmlzQ29sb3ImJihpLmNvbG9yPXRoaXMuY29sb3IuZ2V0SGV4KCkpLHZvaWQgMCE9PXRoaXMucm91Z2huZXNzJiYoaS5yb3VnaG5lc3M9dGhpcy5yb3VnaG5lc3MpLHZvaWQgMCE9PXRoaXMubWV0YWxuZXNzJiYoaS5tZXRhbG5lc3M9dGhpcy5tZXRhbG5lc3MpLHZvaWQgMCE9PXRoaXMuc2hlZW4mJihpLnNoZWVuPXRoaXMuc2hlZW4pLHRoaXMuc2hlZW5Db2xvciYmdGhpcy5zaGVlbkNvbG9yLmlzQ29sb3ImJihpLnNoZWVuQ29sb3I9dGhpcy5zaGVlbkNvbG9yLmdldEhleCgpKSx2b2lkIDAhPT10aGlzLnNoZWVuUm91Z2huZXNzJiYoaS5zaGVlblJvdWdobmVzcz10aGlzLnNoZWVuUm91Z2huZXNzKSx0aGlzLmVtaXNzaXZlJiZ0aGlzLmVtaXNzaXZlLmlzQ29sb3ImJihpLmVtaXNzaXZlPXRoaXMuZW1pc3NpdmUuZ2V0SGV4KCkpLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHkmJjEhPT10aGlzLmVtaXNzaXZlSW50ZW5zaXR5JiYoaS5lbWlzc2l2ZUludGVuc2l0eT10aGlzLmVtaXNzaXZlSW50ZW5zaXR5KSx0aGlzLnNwZWN1bGFyJiZ0aGlzLnNwZWN1bGFyLmlzQ29sb3ImJihpLnNwZWN1bGFyPXRoaXMuc3BlY3VsYXIuZ2V0SGV4KCkpLHZvaWQgMCE9PXRoaXMuc3BlY3VsYXJJbnRlbnNpdHkmJihpLnNwZWN1bGFySW50ZW5zaXR5PXRoaXMuc3BlY3VsYXJJbnRlbnNpdHkpLHRoaXMuc3BlY3VsYXJDb2xvciYmdGhpcy5zcGVjdWxhckNvbG9yLmlzQ29sb3ImJihpLnNwZWN1bGFyQ29sb3I9dGhpcy5zcGVjdWxhckNvbG9yLmdldEhleCgpKSx2b2lkIDAhPT10aGlzLnNoaW5pbmVzcyYmKGkuc2hpbmluZXNzPXRoaXMuc2hpbmluZXNzKSx2b2lkIDAhPT10aGlzLmNsZWFyY29hdCYmKGkuY2xlYXJjb2F0PXRoaXMuY2xlYXJjb2F0KSx2b2lkIDAhPT10aGlzLmNsZWFyY29hdFJvdWdobmVzcyYmKGkuY2xlYXJjb2F0Um91Z2huZXNzPXRoaXMuY2xlYXJjb2F0Um91Z2huZXNzKSx0aGlzLmNsZWFyY29hdE1hcCYmdGhpcy5jbGVhcmNvYXRNYXAuaXNUZXh0dXJlJiYoaS5jbGVhcmNvYXRNYXA9dGhpcy5jbGVhcmNvYXRNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuY2xlYXJjb2F0Um91Z2huZXNzTWFwJiZ0aGlzLmNsZWFyY29hdFJvdWdobmVzc01hcC5pc1RleHR1cmUmJihpLmNsZWFyY29hdFJvdWdobmVzc01hcD10aGlzLmNsZWFyY29hdFJvdWdobmVzc01hcC50b0pTT04odCkudXVpZCksdGhpcy5jbGVhcmNvYXROb3JtYWxNYXAmJnRoaXMuY2xlYXJjb2F0Tm9ybWFsTWFwLmlzVGV4dHVyZSYmKGkuY2xlYXJjb2F0Tm9ybWFsTWFwPXRoaXMuY2xlYXJjb2F0Tm9ybWFsTWFwLnRvSlNPTih0KS51dWlkLGkuY2xlYXJjb2F0Tm9ybWFsU2NhbGU9dGhpcy5jbGVhcmNvYXROb3JtYWxTY2FsZS50b0FycmF5KCkpLHRoaXMubWFwJiZ0aGlzLm1hcC5pc1RleHR1cmUmJihpLm1hcD10aGlzLm1hcC50b0pTT04odCkudXVpZCksdGhpcy5tYXRjYXAmJnRoaXMubWF0Y2FwLmlzVGV4dHVyZSYmKGkubWF0Y2FwPXRoaXMubWF0Y2FwLnRvSlNPTih0KS51dWlkKSx0aGlzLmFscGhhTWFwJiZ0aGlzLmFscGhhTWFwLmlzVGV4dHVyZSYmKGkuYWxwaGFNYXA9dGhpcy5hbHBoYU1hcC50b0pTT04odCkudXVpZCksdGhpcy5saWdodE1hcCYmdGhpcy5saWdodE1hcC5pc1RleHR1cmUmJihpLmxpZ2h0TWFwPXRoaXMubGlnaHRNYXAudG9KU09OKHQpLnV1aWQsaS5saWdodE1hcEludGVuc2l0eT10aGlzLmxpZ2h0TWFwSW50ZW5zaXR5KSx0aGlzLmFvTWFwJiZ0aGlzLmFvTWFwLmlzVGV4dHVyZSYmKGkuYW9NYXA9dGhpcy5hb01hcC50b0pTT04odCkudXVpZCxpLmFvTWFwSW50ZW5zaXR5PXRoaXMuYW9NYXBJbnRlbnNpdHkpLHRoaXMuYnVtcE1hcCYmdGhpcy5idW1wTWFwLmlzVGV4dHVyZSYmKGkuYnVtcE1hcD10aGlzLmJ1bXBNYXAudG9KU09OKHQpLnV1aWQsaS5idW1wU2NhbGU9dGhpcy5idW1wU2NhbGUpLHRoaXMubm9ybWFsTWFwJiZ0aGlzLm5vcm1hbE1hcC5pc1RleHR1cmUmJihpLm5vcm1hbE1hcD10aGlzLm5vcm1hbE1hcC50b0pTT04odCkudXVpZCxpLm5vcm1hbE1hcFR5cGU9dGhpcy5ub3JtYWxNYXBUeXBlLGkubm9ybWFsU2NhbGU9dGhpcy5ub3JtYWxTY2FsZS50b0FycmF5KCkpLHRoaXMuZGlzcGxhY2VtZW50TWFwJiZ0aGlzLmRpc3BsYWNlbWVudE1hcC5pc1RleHR1cmUmJihpLmRpc3BsYWNlbWVudE1hcD10aGlzLmRpc3BsYWNlbWVudE1hcC50b0pTT04odCkudXVpZCxpLmRpc3BsYWNlbWVudFNjYWxlPXRoaXMuZGlzcGxhY2VtZW50U2NhbGUsaS5kaXNwbGFjZW1lbnRCaWFzPXRoaXMuZGlzcGxhY2VtZW50QmlhcyksdGhpcy5yb3VnaG5lc3NNYXAmJnRoaXMucm91Z2huZXNzTWFwLmlzVGV4dHVyZSYmKGkucm91Z2huZXNzTWFwPXRoaXMucm91Z2huZXNzTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLm1ldGFsbmVzc01hcCYmdGhpcy5tZXRhbG5lc3NNYXAuaXNUZXh0dXJlJiYoaS5tZXRhbG5lc3NNYXA9dGhpcy5tZXRhbG5lc3NNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuZW1pc3NpdmVNYXAmJnRoaXMuZW1pc3NpdmVNYXAuaXNUZXh0dXJlJiYoaS5lbWlzc2l2ZU1hcD10aGlzLmVtaXNzaXZlTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLnNwZWN1bGFyTWFwJiZ0aGlzLnNwZWN1bGFyTWFwLmlzVGV4dHVyZSYmKGkuc3BlY3VsYXJNYXA9dGhpcy5zcGVjdWxhck1hcC50b0pTT04odCkudXVpZCksdGhpcy5zcGVjdWxhckludGVuc2l0eU1hcCYmdGhpcy5zcGVjdWxhckludGVuc2l0eU1hcC5pc1RleHR1cmUmJihpLnNwZWN1bGFySW50ZW5zaXR5TWFwPXRoaXMuc3BlY3VsYXJJbnRlbnNpdHlNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuc3BlY3VsYXJDb2xvck1hcCYmdGhpcy5zcGVjdWxhckNvbG9yTWFwLmlzVGV4dHVyZSYmKGkuc3BlY3VsYXJDb2xvck1hcD10aGlzLnNwZWN1bGFyQ29sb3JNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuZW52TWFwJiZ0aGlzLmVudk1hcC5pc1RleHR1cmUmJihpLmVudk1hcD10aGlzLmVudk1hcC50b0pTT04odCkudXVpZCx2b2lkIDAhPT10aGlzLmNvbWJpbmUmJihpLmNvbWJpbmU9dGhpcy5jb21iaW5lKSksdm9pZCAwIT09dGhpcy5lbnZNYXBJbnRlbnNpdHkmJihpLmVudk1hcEludGVuc2l0eT10aGlzLmVudk1hcEludGVuc2l0eSksdm9pZCAwIT09dGhpcy5yZWZsZWN0aXZpdHkmJihpLnJlZmxlY3Rpdml0eT10aGlzLnJlZmxlY3Rpdml0eSksdm9pZCAwIT09dGhpcy5yZWZyYWN0aW9uUmF0aW8mJihpLnJlZnJhY3Rpb25SYXRpbz10aGlzLnJlZnJhY3Rpb25SYXRpbyksdGhpcy5ncmFkaWVudE1hcCYmdGhpcy5ncmFkaWVudE1hcC5pc1RleHR1cmUmJihpLmdyYWRpZW50TWFwPXRoaXMuZ3JhZGllbnRNYXAudG9KU09OKHQpLnV1aWQpLHZvaWQgMCE9PXRoaXMudHJhbnNtaXNzaW9uJiYoaS50cmFuc21pc3Npb249dGhpcy50cmFuc21pc3Npb24pLHRoaXMudHJhbnNtaXNzaW9uTWFwJiZ0aGlzLnRyYW5zbWlzc2lvbk1hcC5pc1RleHR1cmUmJihpLnRyYW5zbWlzc2lvbk1hcD10aGlzLnRyYW5zbWlzc2lvbk1hcC50b0pTT04odCkudXVpZCksdm9pZCAwIT09dGhpcy50aGlja25lc3MmJihpLnRoaWNrbmVzcz10aGlzLnRoaWNrbmVzcyksdGhpcy50aGlja25lc3NNYXAmJnRoaXMudGhpY2tuZXNzTWFwLmlzVGV4dHVyZSYmKGkudGhpY2tuZXNzTWFwPXRoaXMudGhpY2tuZXNzTWFwLnRvSlNPTih0KS51dWlkKSx2b2lkIDAhPT10aGlzLmF0dGVudWF0aW9uRGlzdGFuY2UmJihpLmF0dGVudWF0aW9uRGlzdGFuY2U9dGhpcy5hdHRlbnVhdGlvbkRpc3RhbmNlKSx2b2lkIDAhPT10aGlzLmF0dGVudWF0aW9uQ29sb3ImJihpLmF0dGVudWF0aW9uQ29sb3I9dGhpcy5hdHRlbnVhdGlvbkNvbG9yLmdldEhleCgpKSx2b2lkIDAhPT10aGlzLnNpemUmJihpLnNpemU9dGhpcy5zaXplKSxudWxsIT09dGhpcy5zaGFkb3dTaWRlJiYoaS5zaGFkb3dTaWRlPXRoaXMuc2hhZG93U2lkZSksdm9pZCAwIT09dGhpcy5zaXplQXR0ZW51YXRpb24mJihpLnNpemVBdHRlbnVhdGlvbj10aGlzLnNpemVBdHRlbnVhdGlvbiksdGhpcy5ibGVuZGluZyE9PWd4JiYoaS5ibGVuZGluZz10aGlzLmJsZW5kaW5nKSx0aGlzLnNpZGUhPT15eCYmKGkuc2lkZT10aGlzLnNpZGUpLHRoaXMudmVydGV4Q29sb3JzJiYoaS52ZXJ0ZXhDb2xvcnM9ITApLHRoaXMub3BhY2l0eTwxJiYoaS5vcGFjaXR5PXRoaXMub3BhY2l0eSksITA9PT10aGlzLnRyYW5zcGFyZW50JiYoaS50cmFuc3BhcmVudD10aGlzLnRyYW5zcGFyZW50KSxpLmRlcHRoRnVuYz10aGlzLmRlcHRoRnVuYyxpLmRlcHRoVGVzdD10aGlzLmRlcHRoVGVzdCxpLmRlcHRoV3JpdGU9dGhpcy5kZXB0aFdyaXRlLGkuY29sb3JXcml0ZT10aGlzLmNvbG9yV3JpdGUsaS5hbHBoYVdyaXRlPXRoaXMuYWxwaGFXcml0ZSxpLnN0ZW5jaWxXcml0ZT10aGlzLnN0ZW5jaWxXcml0ZSxpLnN0ZW5jaWxXcml0ZU1hc2s9dGhpcy5zdGVuY2lsV3JpdGVNYXNrLGkuc3RlbmNpbEZ1bmM9dGhpcy5zdGVuY2lsRnVuYyxpLnN0ZW5jaWxSZWY9dGhpcy5zdGVuY2lsUmVmLGkuc3RlbmNpbEZ1bmNNYXNrPXRoaXMuc3RlbmNpbEZ1bmNNYXNrLGkuc3RlbmNpbEZhaWw9dGhpcy5zdGVuY2lsRmFpbCxpLnN0ZW5jaWxaRmFpbD10aGlzLnN0ZW5jaWxaRmFpbCxpLnN0ZW5jaWxaUGFzcz10aGlzLnN0ZW5jaWxaUGFzcyx0aGlzLnJvdGF0aW9uJiYwIT09dGhpcy5yb3RhdGlvbiYmKGkucm90YXRpb249dGhpcy5yb3RhdGlvbiksITA9PT10aGlzLnBvbHlnb25PZmZzZXQmJihpLnBvbHlnb25PZmZzZXQ9ITApLDAhPT10aGlzLnBvbHlnb25PZmZzZXRGYWN0b3ImJihpLnBvbHlnb25PZmZzZXRGYWN0b3I9dGhpcy5wb2x5Z29uT2Zmc2V0RmFjdG9yKSwwIT09dGhpcy5wb2x5Z29uT2Zmc2V0VW5pdHMmJihpLnBvbHlnb25PZmZzZXRVbml0cz10aGlzLnBvbHlnb25PZmZzZXRVbml0cyksdGhpcy5saW5ld2lkdGgmJjEhPT10aGlzLmxpbmV3aWR0aCYmKGkubGluZXdpZHRoPXRoaXMubGluZXdpZHRoKSx2b2lkIDAhPT10aGlzLmRhc2hTaXplJiYoaS5kYXNoU2l6ZT10aGlzLmRhc2hTaXplKSx2b2lkIDAhPT10aGlzLmdhcFNpemUmJihpLmdhcFNpemU9dGhpcy5nYXBTaXplKSx2b2lkIDAhPT10aGlzLnNjYWxlJiYoaS5zY2FsZT10aGlzLnNjYWxlKSwhMD09PXRoaXMuZGl0aGVyaW5nJiYoaS5kaXRoZXJpbmc9ITApLHRoaXMuYWxwaGFUZXN0PjAmJihpLmFscGhhVGVzdD10aGlzLmFscGhhVGVzdCksITA9PT10aGlzLmFscGhhVG9Db3ZlcmFnZSYmKGkuYWxwaGFUb0NvdmVyYWdlPXRoaXMuYWxwaGFUb0NvdmVyYWdlKSwhMD09PXRoaXMucHJlbXVsdGlwbGllZEFscGhhJiYoaS5wcmVtdWx0aXBsaWVkQWxwaGE9dGhpcy5wcmVtdWx0aXBsaWVkQWxwaGEpLCEwPT09dGhpcy53aXJlZnJhbWUmJihpLndpcmVmcmFtZT10aGlzLndpcmVmcmFtZSksdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg+MSYmKGkud2lyZWZyYW1lTGluZXdpZHRoPXRoaXMud2lyZWZyYW1lTGluZXdpZHRoKSwicm91bmQiIT09dGhpcy53aXJlZnJhbWVMaW5lY2FwJiYoaS53aXJlZnJhbWVMaW5lY2FwPXRoaXMud2lyZWZyYW1lTGluZWNhcCksInJvdW5kIiE9PXRoaXMud2lyZWZyYW1lTGluZWpvaW4mJihpLndpcmVmcmFtZUxpbmVqb2luPXRoaXMud2lyZWZyYW1lTGluZWpvaW4pLCEwPT09dGhpcy5mbGF0U2hhZGluZyYmKGkuZmxhdFNoYWRpbmc9dGhpcy5mbGF0U2hhZGluZyksITE9PT10aGlzLnZpc2libGUmJihpLnZpc2libGU9ITEpLCExPT09dGhpcy50b25lTWFwcGVkJiYoaS50b25lTWFwcGVkPSExKSwie30iIT09SlNPTi5zdHJpbmdpZnkodGhpcy51c2VyRGF0YSkmJihpLnVzZXJEYXRhPXRoaXMudXNlckRhdGEpLGUpe2xldCBvPXIodC50ZXh0dXJlcyksYT1yKHQuaW1hZ2VzKTtvLmxlbmd0aD4wJiYoaS50ZXh0dXJlcz1vKSxhLmxlbmd0aD4wJiYoaS5pbWFnZXM9YSl9cmV0dXJuIGl9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9Y29weSh0KXt0aGlzLm5hbWU9dC5uYW1lLHRoaXMuZm9nPXQuZm9nLHRoaXMuYmxlbmRpbmc9dC5ibGVuZGluZyx0aGlzLnNpZGU9dC5zaWRlLHRoaXMudmVydGV4Q29sb3JzPXQudmVydGV4Q29sb3JzLHRoaXMub3BhY2l0eT10Lm9wYWNpdHksdGhpcy50cmFuc3BhcmVudD10LnRyYW5zcGFyZW50LHRoaXMuYmxlbmRTcmM9dC5ibGVuZFNyYyx0aGlzLmJsZW5kRHN0PXQuYmxlbmREc3QsdGhpcy5ibGVuZEVxdWF0aW9uPXQuYmxlbmRFcXVhdGlvbix0aGlzLmJsZW5kU3JjQWxwaGE9dC5ibGVuZFNyY0FscGhhLHRoaXMuYmxlbmREc3RBbHBoYT10LmJsZW5kRHN0QWxwaGEsdGhpcy5ibGVuZEVxdWF0aW9uQWxwaGE9dC5ibGVuZEVxdWF0aW9uQWxwaGEsdGhpcy5kZXB0aEZ1bmM9dC5kZXB0aEZ1bmMsdGhpcy5kZXB0aFRlc3Q9dC5kZXB0aFRlc3QsdGhpcy5kZXB0aFdyaXRlPXQuZGVwdGhXcml0ZSx0aGlzLnN0ZW5jaWxXcml0ZU1hc2s9dC5zdGVuY2lsV3JpdGVNYXNrLHRoaXMuc3RlbmNpbEZ1bmM9dC5zdGVuY2lsRnVuYyx0aGlzLnN0ZW5jaWxSZWY9dC5zdGVuY2lsUmVmLHRoaXMuc3RlbmNpbEZ1bmNNYXNrPXQuc3RlbmNpbEZ1bmNNYXNrLHRoaXMuc3RlbmNpbEZhaWw9dC5zdGVuY2lsRmFpbCx0aGlzLnN0ZW5jaWxaRmFpbD10LnN0ZW5jaWxaRmFpbCx0aGlzLnN0ZW5jaWxaUGFzcz10LnN0ZW5jaWxaUGFzcyx0aGlzLnN0ZW5jaWxXcml0ZT10LnN0ZW5jaWxXcml0ZTtsZXQgZT10LmNsaXBwaW5nUGxhbmVzLGk9bnVsbDtpZihudWxsIT09ZSl7bGV0IHI9ZS5sZW5ndGg7aT1uZXcgQXJyYXkocik7Zm9yKGxldCBvPTA7byE9PXI7KytvKWlbb109ZVtvXS5jbG9uZSgpfXJldHVybiB0aGlzLmNsaXBwaW5nUGxhbmVzPWksdGhpcy5jbGlwSW50ZXJzZWN0aW9uPXQuY2xpcEludGVyc2VjdGlvbix0aGlzLmNsaXBTaGFkb3dzPXQuY2xpcFNoYWRvd3MsdGhpcy5zaGFkb3dTaWRlPXQuc2hhZG93U2lkZSx0aGlzLmNvbG9yV3JpdGU9dC5jb2xvcldyaXRlLHRoaXMuYWxwaGFXcml0ZT10LmFscGhhV3JpdGUsdGhpcy5wcmVjaXNpb249dC5wcmVjaXNpb24sdGhpcy5wb2x5Z29uT2Zmc2V0PXQucG9seWdvbk9mZnNldCx0aGlzLnBvbHlnb25PZmZzZXRGYWN0b3I9dC5wb2x5Z29uT2Zmc2V0RmFjdG9yLHRoaXMucG9seWdvbk9mZnNldFVuaXRzPXQucG9seWdvbk9mZnNldFVuaXRzLHRoaXMuZGl0aGVyaW5nPXQuZGl0aGVyaW5nLHRoaXMuYWxwaGFUZXN0PXQuYWxwaGFUZXN0LHRoaXMuYWxwaGFUb0NvdmVyYWdlPXQuYWxwaGFUb0NvdmVyYWdlLHRoaXMucHJlbXVsdGlwbGllZEFscGhhPXQucHJlbXVsdGlwbGllZEFscGhhLHRoaXMudmlzaWJsZT10LnZpc2libGUsdGhpcy50b25lTWFwcGVkPXQudG9uZU1hcHBlZCx0aGlzLnVzZXJEYXRhPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodC51c2VyRGF0YSkpLHRoaXN9ZGlzcG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzcG9zZSJ9KX1zZXQgbmVlZHNVcGRhdGUodCl7ITA9PT10JiZ0aGlzLnZlcnNpb24rK319O0ZvLnByb3RvdHlwZS5pc01hdGVyaWFsPSEwO3ZhciB2bT1jbGFzcyBleHRlbmRzIEZve2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoQmFzaWNNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgc24oMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5saWdodE1hcD1udWxsLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9MSx0aGlzLmFvTWFwPW51bGwsdGhpcy5hb01hcEludGVuc2l0eT0xLHRoaXMuc3BlY3VsYXJNYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5lbnZNYXA9bnVsbCx0aGlzLmNvbWJpbmU9S0ksdGhpcy5yZWZsZWN0aXZpdHk9MSx0aGlzLnJlZnJhY3Rpb25SYXRpbz0uOTgsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXA9dC5tYXAsdGhpcy5saWdodE1hcD10LmxpZ2h0TWFwLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9dC5saWdodE1hcEludGVuc2l0eSx0aGlzLmFvTWFwPXQuYW9NYXAsdGhpcy5hb01hcEludGVuc2l0eT10LmFvTWFwSW50ZW5zaXR5LHRoaXMuc3BlY3VsYXJNYXA9dC5zcGVjdWxhck1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5lbnZNYXA9dC5lbnZNYXAsdGhpcy5jb21iaW5lPXQuY29tYmluZSx0aGlzLnJlZmxlY3Rpdml0eT10LnJlZmxlY3Rpdml0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzfX07dm0ucHJvdG90eXBlLmlzTWVzaEJhc2ljTWF0ZXJpYWw9ITA7dmFyIHNyPW5ldyBLLFpEPW5ldyAkZSxBcj1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSl7aWYoQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IGFycmF5IHNob3VsZCBiZSBhIFR5cGVkIEFycmF5LiIpO3RoaXMubmFtZT0iIix0aGlzLmFycmF5PXQsdGhpcy5pdGVtU2l6ZT1lLHRoaXMuY291bnQ9dm9pZCAwIT09dD90Lmxlbmd0aC9lOjAsdGhpcy5ub3JtYWxpemVkPSEwPT09aSx0aGlzLnVzYWdlPUN4LHRoaXMudXBkYXRlUmFuZ2U9e29mZnNldDowLGNvdW50Oi0xfSx0aGlzLnZlcnNpb249MH1vblVwbG9hZENhbGxiYWNrKCl7fXNldCBuZWVkc1VwZGF0ZSh0KXshMD09PXQmJnRoaXMudmVyc2lvbisrfXNldFVzYWdlKHQpe3JldHVybiB0aGlzLnVzYWdlPXQsdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLm5hbWU9dC5uYW1lLHRoaXMuYXJyYXk9bmV3IHQuYXJyYXkuY29uc3RydWN0b3IodC5hcnJheSksdGhpcy5pdGVtU2l6ZT10Lml0ZW1TaXplLHRoaXMuY291bnQ9dC5jb3VudCx0aGlzLm5vcm1hbGl6ZWQ9dC5ub3JtYWxpemVkLHRoaXMudXNhZ2U9dC51c2FnZSx0aGlzfWNvcHlBdCh0LGUsaSl7dCo9dGhpcy5pdGVtU2l6ZSxpKj1lLml0ZW1TaXplO2ZvcihsZXQgcj0wLG89dGhpcy5pdGVtU2l6ZTtyPG87cisrKXRoaXMuYXJyYXlbdCtyXT1lLmFycmF5W2krcl07cmV0dXJuIHRoaXN9Y29weUFycmF5KHQpe3JldHVybiB0aGlzLmFycmF5LnNldCh0KSx0aGlzfWNvcHlDb2xvcnNBcnJheSh0KXtsZXQgZT10aGlzLmFycmF5LGk9MDtmb3IobGV0IHI9MCxvPXQubGVuZ3RoO3I8bztyKyspe2xldCBhPXRbcl07dm9pZCAwPT09YSYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlDb2xvcnNBcnJheSgpOiBjb2xvciBpcyB1bmRlZmluZWQiLHIpLGE9bmV3IHNuKSxlW2krK109YS5yLGVbaSsrXT1hLmcsZVtpKytdPWEuYn1yZXR1cm4gdGhpc31jb3B5VmVjdG9yMnNBcnJheSh0KXtsZXQgZT10aGlzLmFycmF5LGk9MDtmb3IobGV0IHI9MCxvPXQubGVuZ3RoO3I8bztyKyspe2xldCBhPXRbcl07dm9pZCAwPT09YSYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlWZWN0b3Iyc0FycmF5KCk6IHZlY3RvciBpcyB1bmRlZmluZWQiLHIpLGE9bmV3ICRlKSxlW2krK109YS54LGVbaSsrXT1hLnl9cmV0dXJuIHRoaXN9Y29weVZlY3RvcjNzQXJyYXkodCl7bGV0IGU9dGhpcy5hcnJheSxpPTA7Zm9yKGxldCByPTAsbz10Lmxlbmd0aDtyPG87cisrKXtsZXQgYT10W3JdO3ZvaWQgMD09PWEmJihjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZS5jb3B5VmVjdG9yM3NBcnJheSgpOiB2ZWN0b3IgaXMgdW5kZWZpbmVkIixyKSxhPW5ldyBLKSxlW2krK109YS54LGVbaSsrXT1hLnksZVtpKytdPWEuen1yZXR1cm4gdGhpc31jb3B5VmVjdG9yNHNBcnJheSh0KXtsZXQgZT10aGlzLmFycmF5LGk9MDtmb3IobGV0IHI9MCxvPXQubGVuZ3RoO3I8bztyKyspe2xldCBhPXRbcl07dm9pZCAwPT09YSYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlWZWN0b3I0c0FycmF5KCk6IHZlY3RvciBpcyB1bmRlZmluZWQiLHIpLGE9bmV3IFFpKSxlW2krK109YS54LGVbaSsrXT1hLnksZVtpKytdPWEueixlW2krK109YS53fXJldHVybiB0aGlzfWFwcGx5TWF0cml4Myh0KXtpZigyPT09dGhpcy5pdGVtU2l6ZSlmb3IobGV0IGU9MCxpPXRoaXMuY291bnQ7ZTxpO2UrKylaRC5mcm9tQnVmZmVyQXR0cmlidXRlKHRoaXMsZSksWkQuYXBwbHlNYXRyaXgzKHQpLHRoaXMuc2V0WFkoZSxaRC54LFpELnkpO2Vsc2UgaWYoMz09PXRoaXMuaXRlbVNpemUpZm9yKGxldCBlPTAsaT10aGlzLmNvdW50O2U8aTtlKyspc3IuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0aGlzLGUpLHNyLmFwcGx5TWF0cml4Myh0KSx0aGlzLnNldFhZWihlLHNyLngsc3IueSxzci56KTtyZXR1cm4gdGhpc31hcHBseU1hdHJpeDQodCl7Zm9yKGxldCBlPTAsaT10aGlzLmNvdW50O2U8aTtlKyspc3IueD10aGlzLmdldFgoZSksc3IueT10aGlzLmdldFkoZSksc3Iuej10aGlzLmdldFooZSksc3IuYXBwbHlNYXRyaXg0KHQpLHRoaXMuc2V0WFlaKGUsc3IueCxzci55LHNyLnopO3JldHVybiB0aGlzfWFwcGx5Tm9ybWFsTWF0cml4KHQpe2ZvcihsZXQgZT0wLGk9dGhpcy5jb3VudDtlPGk7ZSsrKXNyLng9dGhpcy5nZXRYKGUpLHNyLnk9dGhpcy5nZXRZKGUpLHNyLno9dGhpcy5nZXRaKGUpLHNyLmFwcGx5Tm9ybWFsTWF0cml4KHQpLHRoaXMuc2V0WFlaKGUsc3IueCxzci55LHNyLnopO3JldHVybiB0aGlzfXRyYW5zZm9ybURpcmVjdGlvbih0KXtmb3IobGV0IGU9MCxpPXRoaXMuY291bnQ7ZTxpO2UrKylzci54PXRoaXMuZ2V0WChlKSxzci55PXRoaXMuZ2V0WShlKSxzci56PXRoaXMuZ2V0WihlKSxzci50cmFuc2Zvcm1EaXJlY3Rpb24odCksdGhpcy5zZXRYWVooZSxzci54LHNyLnksc3Iueik7cmV0dXJuIHRoaXN9c2V0KHQsZT0wKXtyZXR1cm4gdGhpcy5hcnJheS5zZXQodCxlKSx0aGlzfWdldFgodCl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplXX1zZXRYKHQsZSl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplXT1lLHRoaXN9Z2V0WSh0KXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemUrMV19c2V0WSh0LGUpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSsxXT1lLHRoaXN9Z2V0Wih0KXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemUrMl19c2V0Wih0LGUpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSsyXT1lLHRoaXN9Z2V0Vyh0KXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemUrM119c2V0Vyh0LGUpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSszXT1lLHRoaXN9c2V0WFkodCxlLGkpe3JldHVybiB0aGlzLmFycmF5WzArKHQqPXRoaXMuaXRlbVNpemUpXT1lLHRoaXMuYXJyYXlbdCsxXT1pLHRoaXN9c2V0WFlaKHQsZSxpLHIpe3JldHVybiB0aGlzLmFycmF5WzArKHQqPXRoaXMuaXRlbVNpemUpXT1lLHRoaXMuYXJyYXlbdCsxXT1pLHRoaXMuYXJyYXlbdCsyXT1yLHRoaXN9c2V0WFlaVyh0LGUsaSxyLG8pe3JldHVybiB0aGlzLmFycmF5WzArKHQqPXRoaXMuaXRlbVNpemUpXT1lLHRoaXMuYXJyYXlbdCsxXT1pLHRoaXMuYXJyYXlbdCsyXT1yLHRoaXMuYXJyYXlbdCszXT1vLHRoaXN9b25VcGxvYWQodCl7cmV0dXJuIHRoaXMub25VcGxvYWRDYWxsYmFjaz10LHRoaXN9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5hcnJheSx0aGlzLml0ZW1TaXplKS5jb3B5KHRoaXMpfXRvSlNPTigpe2xldCB0PXtpdGVtU2l6ZTp0aGlzLml0ZW1TaXplLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLGFycmF5OkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuYXJyYXkpLG5vcm1hbGl6ZWQ6dGhpcy5ub3JtYWxpemVkfTtyZXR1cm4iIiE9PXRoaXMubmFtZSYmKHQubmFtZT10aGlzLm5hbWUpLHRoaXMudXNhZ2UhPT1DeCYmKHQudXNhZ2U9dGhpcy51c2FnZSksKDAhPT10aGlzLnVwZGF0ZVJhbmdlLm9mZnNldHx8LTEhPT10aGlzLnVwZGF0ZVJhbmdlLmNvdW50KSYmKHQudXBkYXRlUmFuZ2U9dGhpcy51cGRhdGVSYW5nZSksdH19O0FyLnByb3RvdHlwZS5pc0J1ZmZlckF0dHJpYnV0ZT0hMDt2YXIgVEk9Y2xhc3MgZXh0ZW5kcyBBcntjb25zdHJ1Y3Rvcih0LGUsaSl7c3VwZXIobmV3IFVpbnQxNkFycmF5KHQpLGUsaSl9fSxEST1jbGFzcyBleHRlbmRzIEFye2NvbnN0cnVjdG9yKHQsZSxpKXtzdXBlcihuZXcgVWludDMyQXJyYXkodCksZSxpKX19OyhjbGFzcyBleHRlbmRzIEFye2NvbnN0cnVjdG9yKHQsZSxpKXtzdXBlcihuZXcgVWludDE2QXJyYXkodCksZSxpKX19KS5wcm90b3R5cGUuaXNGbG9hdDE2QnVmZmVyQXR0cmlidXRlPSEwO3ZhciBOcj1jbGFzcyBleHRlbmRzIEFye2NvbnN0cnVjdG9yKHQsZSxpKXtzdXBlcihuZXcgRmxvYXQzMkFycmF5KHQpLGUsaSl9fSxsUGU9MCxsbD1uZXcgdm4sQTM9bmV3IFVpLFIwPW5ldyBLLFNzPW5ldyBUcyxzeD1uZXcgVHMsT289bmV3IEssR2k9Y2xhc3MgZXh0ZW5kcyB6ZHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlkIix7dmFsdWU6bFBlKyt9KSx0aGlzLnV1aWQ9WWwoKSx0aGlzLm5hbWU9IiIsdGhpcy50eXBlPSJCdWZmZXJHZW9tZXRyeSIsdGhpcy5pbmRleD1udWxsLHRoaXMuYXR0cmlidXRlcz17fSx0aGlzLm1vcnBoQXR0cmlidXRlcz17fSx0aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPSExLHRoaXMuZ3JvdXBzPVtdLHRoaXMuYm91bmRpbmdCb3g9bnVsbCx0aGlzLmJvdW5kaW5nU3BoZXJlPW51bGwsdGhpcy5kcmF3UmFuZ2U9e3N0YXJ0OjAsY291bnQ6MS8wfSx0aGlzLnVzZXJEYXRhPXt9fWdldEluZGV4KCl7cmV0dXJuIHRoaXMuaW5kZXh9c2V0SW5kZXgodCl7cmV0dXJuIHRoaXMuaW5kZXg9QXJyYXkuaXNBcnJheSh0KT9uZXcoaHRlKHQpP0RJOlRJKSh0LDEpOnQsdGhpc31nZXRBdHRyaWJ1dGUodCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlc1t0XX1zZXRBdHRyaWJ1dGUodCxlKXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzW3RdPWUsdGhpc31kZWxldGVBdHRyaWJ1dGUodCl7cmV0dXJuIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbdF0sdGhpc31oYXNBdHRyaWJ1dGUodCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuYXR0cmlidXRlc1t0XX1hZGRHcm91cCh0LGUsaT0wKXt0aGlzLmdyb3Vwcy5wdXNoKHtzdGFydDp0LGNvdW50OmUsbWF0ZXJpYWxJbmRleDppfSl9Y2xlYXJHcm91cHMoKXt0aGlzLmdyb3Vwcz1bXX1zZXREcmF3UmFuZ2UodCxlKXt0aGlzLmRyYXdSYW5nZS5zdGFydD10LHRoaXMuZHJhd1JhbmdlLmNvdW50PWV9YXBwbHlNYXRyaXg0KHQpe2xldCBlPXRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbjt2b2lkIDAhPT1lJiYoZS5hcHBseU1hdHJpeDQodCksZS5uZWVkc1VwZGF0ZT0hMCk7bGV0IGk9dGhpcy5hdHRyaWJ1dGVzLm5vcm1hbDtpZih2b2lkIDAhPT1pKXtsZXQgbz0obmV3IHlvKS5nZXROb3JtYWxNYXRyaXgodCk7aS5hcHBseU5vcm1hbE1hdHJpeChvKSxpLm5lZWRzVXBkYXRlPSEwfWxldCByPXRoaXMuYXR0cmlidXRlcy50YW5nZW50O3JldHVybiB2b2lkIDAhPT1yJiYoci50cmFuc2Zvcm1EaXJlY3Rpb24odCksci5uZWVkc1VwZGF0ZT0hMCksbnVsbCE9PXRoaXMuYm91bmRpbmdCb3gmJnRoaXMuY29tcHV0ZUJvdW5kaW5nQm94KCksbnVsbCE9PXRoaXMuYm91bmRpbmdTcGhlcmUmJnRoaXMuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCksdGhpc31hcHBseVF1YXRlcm5pb24odCl7cmV0dXJuIGxsLm1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHQpLHRoaXMuYXBwbHlNYXRyaXg0KGxsKSx0aGlzfXJvdGF0ZVgodCl7cmV0dXJuIGxsLm1ha2VSb3RhdGlvblgodCksdGhpcy5hcHBseU1hdHJpeDQobGwpLHRoaXN9cm90YXRlWSh0KXtyZXR1cm4gbGwubWFrZVJvdGF0aW9uWSh0KSx0aGlzLmFwcGx5TWF0cml4NChsbCksdGhpc31yb3RhdGVaKHQpe3JldHVybiBsbC5tYWtlUm90YXRpb25aKHQpLHRoaXMuYXBwbHlNYXRyaXg0KGxsKSx0aGlzfXRyYW5zbGF0ZSh0LGUsaSl7cmV0dXJuIGxsLm1ha2VUcmFuc2xhdGlvbih0LGUsaSksdGhpcy5hcHBseU1hdHJpeDQobGwpLHRoaXN9c2NhbGUodCxlLGkpe3JldHVybiBsbC5tYWtlU2NhbGUodCxlLGkpLHRoaXMuYXBwbHlNYXRyaXg0KGxsKSx0aGlzfWxvb2tBdCh0KXtyZXR1cm4gQTMubG9va0F0KHQpLEEzLnVwZGF0ZU1hdHJpeCgpLHRoaXMuYXBwbHlNYXRyaXg0KEEzLm1hdHJpeCksdGhpc31jZW50ZXIoKXtyZXR1cm4gdGhpcy5jb21wdXRlQm91bmRpbmdCb3goKSx0aGlzLmJvdW5kaW5nQm94LmdldENlbnRlcihSMCkubmVnYXRlKCksdGhpcy50cmFuc2xhdGUoUjAueCxSMC55LFIwLnopLHRoaXN9c2V0RnJvbVBvaW50cyh0KXtsZXQgZT1bXTtmb3IobGV0IGk9MCxyPXQubGVuZ3RoO2k8cjtpKyspe2xldCBvPXRbaV07ZS5wdXNoKG8ueCxvLnksby56fHwwKX1yZXR1cm4gdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgTnIoZSwzKSksdGhpc31jb21wdXRlQm91bmRpbmdCb3goKXtudWxsPT09dGhpcy5ib3VuZGluZ0JveCYmKHRoaXMuYm91bmRpbmdCb3g9bmV3IFRzKTtsZXQgdD10aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24sZT10aGlzLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbjtpZih0JiZ0LmlzR0xCdWZmZXJBdHRyaWJ1dGUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpOiBHTEJ1ZmZlckF0dHJpYnV0ZSByZXF1aXJlcyBhIG1hbnVhbCBib3VuZGluZyBib3guIEFsdGVybmF0aXZlbHkgc2V0ICJtZXNoLmZydXN0dW1DdWxsZWQiIHRvICJmYWxzZSIuJyx0aGlzKSx2b2lkIHRoaXMuYm91bmRpbmdCb3guc2V0KG5ldyBLKC0xLzAsLTEvMCwtMS8wKSxuZXcgSygxLzAsMS8wLDEvMCkpO2lmKHZvaWQgMCE9PXQpe2lmKHRoaXMuYm91bmRpbmdCb3guc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZSh0KSxlKWZvcihsZXQgaT0wLHI9ZS5sZW5ndGg7aTxyO2krKylTcy5zZXRGcm9tQnVmZmVyQXR0cmlidXRlKGVbaV0pLHRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU/KE9vLmFkZFZlY3RvcnModGhpcy5ib3VuZGluZ0JveC5taW4sU3MubWluKSx0aGlzLmJvdW5kaW5nQm94LmV4cGFuZEJ5UG9pbnQoT28pLE9vLmFkZFZlY3RvcnModGhpcy5ib3VuZGluZ0JveC5tYXgsU3MubWF4KSx0aGlzLmJvdW5kaW5nQm94LmV4cGFuZEJ5UG9pbnQoT28pKToodGhpcy5ib3VuZGluZ0JveC5leHBhbmRCeVBvaW50KFNzLm1pbiksdGhpcy5ib3VuZGluZ0JveC5leHBhbmRCeVBvaW50KFNzLm1heCkpfWVsc2UgdGhpcy5ib3VuZGluZ0JveC5tYWtlRW1wdHkoKTsoaXNOYU4odGhpcy5ib3VuZGluZ0JveC5taW4ueCl8fGlzTmFOKHRoaXMuYm91bmRpbmdCb3gubWluLnkpfHxpc05hTih0aGlzLmJvdW5kaW5nQm94Lm1pbi56KSkmJmNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpOiBDb21wdXRlZCBtaW4vbWF4IGhhdmUgTmFOIHZhbHVlcy4gVGhlICJwb3NpdGlvbiIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJyx0aGlzKX1jb21wdXRlQm91bmRpbmdTcGhlcmUoKXtudWxsPT09dGhpcy5ib3VuZGluZ1NwaGVyZSYmKHRoaXMuYm91bmRpbmdTcGhlcmU9bmV3IFNwKTtsZXQgdD10aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24sZT10aGlzLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbjtpZih0JiZ0LmlzR0xCdWZmZXJBdHRyaWJ1dGUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpOiBHTEJ1ZmZlckF0dHJpYnV0ZSByZXF1aXJlcyBhIG1hbnVhbCBib3VuZGluZyBzcGhlcmUuIEFsdGVybmF0aXZlbHkgc2V0ICJtZXNoLmZydXN0dW1DdWxsZWQiIHRvICJmYWxzZSIuJyx0aGlzKSx2b2lkIHRoaXMuYm91bmRpbmdTcGhlcmUuc2V0KG5ldyBLLDEvMCk7aWYodCl7bGV0IGk9dGhpcy5ib3VuZGluZ1NwaGVyZS5jZW50ZXI7aWYoU3Muc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZSh0KSxlKWZvcihsZXQgbz0wLGE9ZS5sZW5ndGg7bzxhO28rKylzeC5zZXRGcm9tQnVmZmVyQXR0cmlidXRlKGVbb10pLHRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU/KE9vLmFkZFZlY3RvcnMoU3MubWluLHN4Lm1pbiksU3MuZXhwYW5kQnlQb2ludChPbyksT28uYWRkVmVjdG9ycyhTcy5tYXgsc3gubWF4KSxTcy5leHBhbmRCeVBvaW50KE9vKSk6KFNzLmV4cGFuZEJ5UG9pbnQoc3gubWluKSxTcy5leHBhbmRCeVBvaW50KHN4Lm1heCkpO1NzLmdldENlbnRlcihpKTtsZXQgcj0wO2ZvcihsZXQgbz0wLGE9dC5jb3VudDtvPGE7bysrKU9vLmZyb21CdWZmZXJBdHRyaWJ1dGUodCxvKSxyPU1hdGgubWF4KHIsaS5kaXN0YW5jZVRvU3F1YXJlZChPbykpO2lmKGUpZm9yKGxldCBvPTAsYT1lLmxlbmd0aDtvPGE7bysrKXtsZXQgcz1lW29dLGw9dGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZTtmb3IobGV0IGM9MCxkPXMuY291bnQ7YzxkO2MrKylPby5mcm9tQnVmZmVyQXR0cmlidXRlKHMsYyksbCYmKFIwLmZyb21CdWZmZXJBdHRyaWJ1dGUodCxjKSxPby5hZGQoUjApKSxyPU1hdGgubWF4KHIsaS5kaXN0YW5jZVRvU3F1YXJlZChPbykpfXRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzPU1hdGguc3FydChyKSxpc05hTih0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cykmJmNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpOiBDb21wdXRlZCByYWRpdXMgaXMgTmFOLiBUaGUgInBvc2l0aW9uIiBhdHRyaWJ1dGUgaXMgbGlrZWx5IHRvIGhhdmUgTmFOIHZhbHVlcy4nLHRoaXMpfX1jb21wdXRlVGFuZ2VudHMoKXtsZXQgdD10aGlzLmluZGV4LGU9dGhpcy5hdHRyaWJ1dGVzO2lmKG51bGw9PT10fHx2b2lkIDA9PT1lLnBvc2l0aW9ufHx2b2lkIDA9PT1lLm5vcm1hbHx8dm9pZCAwPT09ZS51dilyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmNvbXB1dGVUYW5nZW50cygpIGZhaWxlZC4gTWlzc2luZyByZXF1aXJlZCBhdHRyaWJ1dGVzIChpbmRleCwgcG9zaXRpb24sIG5vcm1hbCBvciB1dikiKTtsZXQgaT10LmFycmF5LHI9ZS5wb3NpdGlvbi5hcnJheSxvPWUubm9ybWFsLmFycmF5LGE9ZS51di5hcnJheSxzPXIubGVuZ3RoLzM7dm9pZCAwPT09ZS50YW5nZW50JiZ0aGlzLnNldEF0dHJpYnV0ZSgidGFuZ2VudCIsbmV3IEFyKG5ldyBGbG9hdDMyQXJyYXkoNCpzKSw0KSk7bGV0IGw9ZS50YW5nZW50LmFycmF5LGM9W10sZD1bXTtmb3IobGV0IEFlPTA7QWU8cztBZSsrKWNbQWVdPW5ldyBLLGRbQWVdPW5ldyBLO2xldCB1PW5ldyBLLHA9bmV3IEssaD1uZXcgSyxtPW5ldyAkZSxfPW5ldyAkZSxNPW5ldyAkZSx5PW5ldyBLLHg9bmV3IEs7ZnVuY3Rpb24gUihBZSxELHJlKXt1LmZyb21BcnJheShyLDMqQWUpLHAuZnJvbUFycmF5KHIsMypEKSxoLmZyb21BcnJheShyLDMqcmUpLG0uZnJvbUFycmF5KGEsMipBZSksXy5mcm9tQXJyYXkoYSwyKkQpLE0uZnJvbUFycmF5KGEsMipyZSkscC5zdWIodSksaC5zdWIodSksXy5zdWIobSksTS5zdWIobSk7bGV0IGNlPTEvKF8ueCpNLnktTS54Kl8ueSk7IWlzRmluaXRlKGNlKXx8KHkuY29weShwKS5tdWx0aXBseVNjYWxhcihNLnkpLmFkZFNjYWxlZFZlY3RvcihoLC1fLnkpLm11bHRpcGx5U2NhbGFyKGNlKSx4LmNvcHkoaCkubXVsdGlwbHlTY2FsYXIoXy54KS5hZGRTY2FsZWRWZWN0b3IocCwtTS54KS5tdWx0aXBseVNjYWxhcihjZSksY1tBZV0uYWRkKHkpLGNbRF0uYWRkKHkpLGNbcmVdLmFkZCh5KSxkW0FlXS5hZGQoeCksZFtEXS5hZGQoeCksZFtyZV0uYWRkKHgpKX1sZXQgST10aGlzLmdyb3VwczswPT09SS5sZW5ndGgmJihJPVt7c3RhcnQ6MCxjb3VudDppLmxlbmd0aH1dKTtmb3IobGV0IEFlPTAsRD1JLmxlbmd0aDtBZTxEOysrQWUpe2xldCByZT1JW0FlXSxjZT1yZS5zdGFydDtmb3IobGV0IF9lPWNlLCQ9Y2UrcmUuY291bnQ7X2U8JDtfZSs9MylSKGlbX2UrMF0saVtfZSsxXSxpW19lKzJdKX1sZXQgQj1uZXcgSyxlZT1uZXcgSyxRPW5ldyBLLHdlPW5ldyBLO2Z1bmN0aW9uIFFlKEFlKXtRLmZyb21BcnJheShvLDMqQWUpLHdlLmNvcHkoUSk7bGV0IEQ9Y1tBZV07Qi5jb3B5KEQpLEIuc3ViKFEubXVsdGlwbHlTY2FsYXIoUS5kb3QoRCkpKS5ub3JtYWxpemUoKSxlZS5jcm9zc1ZlY3RvcnMod2UsRCk7bGV0IGNlPWVlLmRvdChkW0FlXSk8MD8tMToxO2xbNCpBZV09Qi54LGxbNCpBZSsxXT1CLnksbFs0KkFlKzJdPUIueixsWzQqQWUrM109Y2V9Zm9yKGxldCBBZT0wLEQ9SS5sZW5ndGg7QWU8RDsrK0FlKXtsZXQgcmU9SVtBZV0sY2U9cmUuc3RhcnQ7Zm9yKGxldCBfZT1jZSwkPWNlK3JlLmNvdW50O19lPCQ7X2UrPTMpUWUoaVtfZSswXSksUWUoaVtfZSsxXSksUWUoaVtfZSsyXSl9fWNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCl7bGV0IHQ9dGhpcy5pbmRleCxlPXRoaXMuZ2V0QXR0cmlidXRlKCJwb3NpdGlvbiIpO2lmKHZvaWQgMCE9PWUpe2xldCBpPXRoaXMuZ2V0QXR0cmlidXRlKCJub3JtYWwiKTtpZih2b2lkIDA9PT1pKWk9bmV3IEFyKG5ldyBGbG9hdDMyQXJyYXkoMyplLmNvdW50KSwzKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixpKTtlbHNlIGZvcihsZXQgcD0wLGg9aS5jb3VudDtwPGg7cCsrKWkuc2V0WFlaKHAsMCwwLDApO2xldCByPW5ldyBLLG89bmV3IEssYT1uZXcgSyxzPW5ldyBLLGw9bmV3IEssYz1uZXcgSyxkPW5ldyBLLHU9bmV3IEs7aWYodClmb3IobGV0IHA9MCxoPXQuY291bnQ7cDxoO3ArPTMpe2xldCBtPXQuZ2V0WChwKzApLF89dC5nZXRYKHArMSksTT10LmdldFgocCsyKTtyLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSxtKSxvLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSxfKSxhLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSxNKSxkLnN1YlZlY3RvcnMoYSxvKSx1LnN1YlZlY3RvcnMocixvKSxkLmNyb3NzKHUpLHMuZnJvbUJ1ZmZlckF0dHJpYnV0ZShpLG0pLGwuZnJvbUJ1ZmZlckF0dHJpYnV0ZShpLF8pLGMuZnJvbUJ1ZmZlckF0dHJpYnV0ZShpLE0pLHMuYWRkKGQpLGwuYWRkKGQpLGMuYWRkKGQpLGkuc2V0WFlaKG0scy54LHMueSxzLnopLGkuc2V0WFlaKF8sbC54LGwueSxsLnopLGkuc2V0WFlaKE0sYy54LGMueSxjLnopfWVsc2UgZm9yKGxldCBwPTAsaD1lLmNvdW50O3A8aDtwKz0zKXIuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHArMCksby5mcm9tQnVmZmVyQXR0cmlidXRlKGUscCsxKSxhLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSxwKzIpLGQuc3ViVmVjdG9ycyhhLG8pLHUuc3ViVmVjdG9ycyhyLG8pLGQuY3Jvc3ModSksaS5zZXRYWVoocCswLGQueCxkLnksZC56KSxpLnNldFhZWihwKzEsZC54LGQueSxkLnopLGkuc2V0WFlaKHArMixkLngsZC55LGQueik7dGhpcy5ub3JtYWxpemVOb3JtYWxzKCksaS5uZWVkc1VwZGF0ZT0hMH19bWVyZ2UodCxlKXtpZighdHx8IXQuaXNCdWZmZXJHZW9tZXRyeSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5CdWZmZXJHZW9tZXRyeS5tZXJnZSgpOiBnZW9tZXRyeSBub3QgYW4gaW5zdGFuY2Ugb2YgVEhSRUUuQnVmZmVyR2VvbWV0cnkuIix0KTt2b2lkIDA9PT1lJiYoZT0wLGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnkubWVyZ2UoKTogT3ZlcndyaXRpbmcgb3JpZ2luYWwgZ2VvbWV0cnksIHN0YXJ0aW5nIGF0IG9mZnNldD0wLiBVc2UgQnVmZmVyR2VvbWV0cnlVdGlscy5tZXJnZUJ1ZmZlckdlb21ldHJpZXMoKSBmb3IgbG9zc2xlc3MgbWVyZ2UuIikpO2xldCBpPXRoaXMuYXR0cmlidXRlcztmb3IobGV0IHIgaW4gaSl7aWYodm9pZCAwPT09dC5hdHRyaWJ1dGVzW3JdKWNvbnRpbnVlO2xldCBhPWlbcl0uYXJyYXkscz10LmF0dHJpYnV0ZXNbcl0sbD1zLmFycmF5LGM9cy5pdGVtU2l6ZSplLGQ9TWF0aC5taW4obC5sZW5ndGgsYS5sZW5ndGgtYyk7Zm9yKGxldCB1PTAscD1jO3U8ZDt1KysscCsrKWFbcF09bFt1XX1yZXR1cm4gdGhpc31ub3JtYWxpemVOb3JtYWxzKCl7bGV0IHQ9dGhpcy5hdHRyaWJ1dGVzLm5vcm1hbDtmb3IobGV0IGU9MCxpPXQuY291bnQ7ZTxpO2UrKylPby5mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSksT28ubm9ybWFsaXplKCksdC5zZXRYWVooZSxPby54LE9vLnksT28ueil9dG9Ob25JbmRleGVkKCl7ZnVuY3Rpb24gdChzLGwpe2xldCBjPXMuYXJyYXksZD1zLml0ZW1TaXplLHU9cy5ub3JtYWxpemVkLHA9bmV3IGMuY29uc3RydWN0b3IobC5sZW5ndGgqZCksaD0wLG09MDtmb3IobGV0IF89MCxNPWwubGVuZ3RoO188TTtfKyspe2g9cy5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlP2xbX10qcy5kYXRhLnN0cmlkZStzLm9mZnNldDpsW19dKmQ7Zm9yKGxldCB5PTA7eTxkO3krKylwW20rK109Y1toKytdfXJldHVybiBuZXcgQXIocCxkLHUpfWlmKG51bGw9PT10aGlzLmluZGV4KXJldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5LnRvTm9uSW5kZXhlZCgpOiBCdWZmZXJHZW9tZXRyeSBpcyBhbHJlYWR5IG5vbi1pbmRleGVkLiIpLHRoaXM7bGV0IGU9bmV3IEdpLGk9dGhpcy5pbmRleC5hcnJheSxyPXRoaXMuYXR0cmlidXRlcztmb3IobGV0IHMgaW4gcil7bGV0IGM9dChyW3NdLGkpO2Uuc2V0QXR0cmlidXRlKHMsYyl9bGV0IG89dGhpcy5tb3JwaEF0dHJpYnV0ZXM7Zm9yKGxldCBzIGluIG8pe2xldCBsPVtdLGM9b1tzXTtmb3IobGV0IGQ9MCx1PWMubGVuZ3RoO2Q8dTtkKyspe2xldCBoPXQoY1tkXSxpKTtsLnB1c2goaCl9ZS5tb3JwaEF0dHJpYnV0ZXNbc109bH1lLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPXRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU7bGV0IGE9dGhpcy5ncm91cHM7Zm9yKGxldCBzPTAsbD1hLmxlbmd0aDtzPGw7cysrKXtsZXQgYz1hW3NdO2UuYWRkR3JvdXAoYy5zdGFydCxjLmNvdW50LGMubWF0ZXJpYWxJbmRleCl9cmV0dXJuIGV9dG9KU09OKCl7bGV0IHQ9e21ldGFkYXRhOnt2ZXJzaW9uOjQuNSx0eXBlOiJCdWZmZXJHZW9tZXRyeSIsZ2VuZXJhdG9yOiJCdWZmZXJHZW9tZXRyeS50b0pTT04ifX07aWYodC51dWlkPXRoaXMudXVpZCx0LnR5cGU9dGhpcy50eXBlLCIiIT09dGhpcy5uYW1lJiYodC5uYW1lPXRoaXMubmFtZSksT2JqZWN0LmtleXModGhpcy51c2VyRGF0YSkubGVuZ3RoPjAmJih0LnVzZXJEYXRhPXRoaXMudXNlckRhdGEpLHZvaWQgMCE9PXRoaXMucGFyYW1ldGVycyl7bGV0IGw9dGhpcy5wYXJhbWV0ZXJzO2ZvcihsZXQgYyBpbiBsKXZvaWQgMCE9PWxbY10mJih0W2NdPWxbY10pO3JldHVybiB0fXQuZGF0YT17YXR0cmlidXRlczp7fX07bGV0IGU9dGhpcy5pbmRleDtudWxsIT09ZSYmKHQuZGF0YS5pbmRleD17dHlwZTplLmFycmF5LmNvbnN0cnVjdG9yLm5hbWUsYXJyYXk6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZS5hcnJheSl9KTtsZXQgaT10aGlzLmF0dHJpYnV0ZXM7Zm9yKGxldCBsIGluIGkpdC5kYXRhLmF0dHJpYnV0ZXNbbF09aVtsXS50b0pTT04odC5kYXRhKTtsZXQgcj17fSxvPSExO2ZvcihsZXQgbCBpbiB0aGlzLm1vcnBoQXR0cmlidXRlcyl7bGV0IGM9dGhpcy5tb3JwaEF0dHJpYnV0ZXNbbF0sZD1bXTtmb3IobGV0IHU9MCxwPWMubGVuZ3RoO3U8cDt1KyspZC5wdXNoKGNbdV0udG9KU09OKHQuZGF0YSkpO2QubGVuZ3RoPjAmJihyW2xdPWQsbz0hMCl9byYmKHQuZGF0YS5tb3JwaEF0dHJpYnV0ZXM9cix0LmRhdGEubW9ycGhUYXJnZXRzUmVsYXRpdmU9dGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZSk7bGV0IGE9dGhpcy5ncm91cHM7YS5sZW5ndGg+MCYmKHQuZGF0YS5ncm91cHM9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhKSkpO2xldCBzPXRoaXMuYm91bmRpbmdTcGhlcmU7cmV0dXJuIG51bGwhPT1zJiYodC5kYXRhLmJvdW5kaW5nU3BoZXJlPXtjZW50ZXI6cy5jZW50ZXIudG9BcnJheSgpLHJhZGl1czpzLnJhZGl1c30pLHR9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9Y29weSh0KXt0aGlzLmluZGV4PW51bGwsdGhpcy5hdHRyaWJ1dGVzPXt9LHRoaXMubW9ycGhBdHRyaWJ1dGVzPXt9LHRoaXMuZ3JvdXBzPVtdLHRoaXMuYm91bmRpbmdCb3g9bnVsbCx0aGlzLmJvdW5kaW5nU3BoZXJlPW51bGw7bGV0IGU9e307dGhpcy5uYW1lPXQubmFtZTtsZXQgaT10LmluZGV4O251bGwhPT1pJiZ0aGlzLnNldEluZGV4KGkuY2xvbmUoZSkpO2xldCByPXQuYXR0cmlidXRlcztmb3IobGV0IGMgaW4gcil0aGlzLnNldEF0dHJpYnV0ZShjLHJbY10uY2xvbmUoZSkpO2xldCBvPXQubW9ycGhBdHRyaWJ1dGVzO2ZvcihsZXQgYyBpbiBvKXtsZXQgZD1bXSx1PW9bY107Zm9yKGxldCBwPTAsaD11Lmxlbmd0aDtwPGg7cCsrKWQucHVzaCh1W3BdLmNsb25lKGUpKTt0aGlzLm1vcnBoQXR0cmlidXRlc1tjXT1kfXRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU9dC5tb3JwaFRhcmdldHNSZWxhdGl2ZTtsZXQgYT10Lmdyb3Vwcztmb3IobGV0IGM9MCxkPWEubGVuZ3RoO2M8ZDtjKyspe2xldCB1PWFbY107dGhpcy5hZGRHcm91cCh1LnN0YXJ0LHUuY291bnQsdS5tYXRlcmlhbEluZGV4KX1sZXQgcz10LmJvdW5kaW5nQm94O251bGwhPT1zJiYodGhpcy5ib3VuZGluZ0JveD1zLmNsb25lKCkpO2xldCBsPXQuYm91bmRpbmdTcGhlcmU7cmV0dXJuIG51bGwhPT1sJiYodGhpcy5ib3VuZGluZ1NwaGVyZT1sLmNsb25lKCkpLHRoaXMuZHJhd1JhbmdlLnN0YXJ0PXQuZHJhd1JhbmdlLnN0YXJ0LHRoaXMuZHJhd1JhbmdlLmNvdW50PXQuZHJhd1JhbmdlLmNvdW50LHRoaXMudXNlckRhdGE9dC51c2VyRGF0YSx2b2lkIDAhPT10LnBhcmFtZXRlcnMmJih0aGlzLnBhcmFtZXRlcnM9T2JqZWN0LmFzc2lnbih7fSx0LnBhcmFtZXRlcnMpKSx0aGlzfWRpc3Bvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc3Bvc2UifSl9fTtHaS5wcm90b3R5cGUuaXNCdWZmZXJHZW9tZXRyeT0hMDt2YXIgaGVlPW5ldyB2bixQMD1uZXcgRXAsUjM9bmV3IFNwLGZwPW5ldyBLLGdwPW5ldyBLLF9wPW5ldyBLLFAzPW5ldyBLLGszPW5ldyBLLE8zPW5ldyBLLEtEPW5ldyBLLEpEPW5ldyBLLCREPW5ldyBLLGVJPW5ldyAkZSx0ST1uZXcgJGUsbkk9bmV3ICRlLEYzPW5ldyBLLGlJPW5ldyBLLHNvPWNsYXNzIGV4dGVuZHMgVWl7Y29uc3RydWN0b3IodD1uZXcgR2ksZT1uZXcgdm0pe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoIix0aGlzLmdlb21ldHJ5PXQsdGhpcy5tYXRlcmlhbD1lLHRoaXMudXBkYXRlTW9ycGhUYXJnZXRzKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx2b2lkIDAhPT10Lm1vcnBoVGFyZ2V0SW5mbHVlbmNlcyYmKHRoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzPXQubW9ycGhUYXJnZXRJbmZsdWVuY2VzLnNsaWNlKCkpLHZvaWQgMCE9PXQubW9ycGhUYXJnZXREaWN0aW9uYXJ5JiYodGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnk9T2JqZWN0LmFzc2lnbih7fSx0Lm1vcnBoVGFyZ2V0RGljdGlvbmFyeSkpLHRoaXMubWF0ZXJpYWw9dC5tYXRlcmlhbCx0aGlzLmdlb21ldHJ5PXQuZ2VvbWV0cnksdGhpc311cGRhdGVNb3JwaFRhcmdldHMoKXtsZXQgdD10aGlzLmdlb21ldHJ5O2lmKHQuaXNCdWZmZXJHZW9tZXRyeSl7bGV0IGU9dC5tb3JwaEF0dHJpYnV0ZXMsaT1PYmplY3Qua2V5cyhlKTtpZihpLmxlbmd0aD4wKXtsZXQgcj1lW2lbMF1dO2lmKHZvaWQgMCE9PXIpe3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzPVtdLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5PXt9O2ZvcihsZXQgbz0wLGE9ci5sZW5ndGg7bzxhO28rKyl7bGV0IHM9cltvXS5uYW1lfHxTdHJpbmcobyk7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXMucHVzaCgwKSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeVtzXT1vfX19fWVsc2V7bGV0IGU9dC5tb3JwaFRhcmdldHM7dm9pZCAwIT09ZSYmZS5sZW5ndGg+MCYmY29uc29sZS5lcnJvcigiVEhSRUUuTWVzaC51cGRhdGVNb3JwaFRhcmdldHMoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfX1yYXljYXN0KHQsZSl7bGV0IGEsaT10aGlzLmdlb21ldHJ5LHI9dGhpcy5tYXRlcmlhbCxvPXRoaXMubWF0cml4V29ybGQ7aWYodm9pZCAwIT09ciYmKG51bGw9PT1pLmJvdW5kaW5nU3BoZXJlJiZpLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLFIzLmNvcHkoaS5ib3VuZGluZ1NwaGVyZSksUjMuYXBwbHlNYXRyaXg0KG8pLCExIT09dC5yYXkuaW50ZXJzZWN0c1NwaGVyZShSMykpJiYoaGVlLmNvcHkobykuaW52ZXJ0KCksUDAuY29weSh0LnJheSkuYXBwbHlNYXRyaXg0KGhlZSksbnVsbD09PWkuYm91bmRpbmdCb3h8fCExIT09UDAuaW50ZXJzZWN0c0JveChpLmJvdW5kaW5nQm94KSkpaWYoaS5pc0J1ZmZlckdlb21ldHJ5KXtsZXQgcz1pLmluZGV4LGw9aS5hdHRyaWJ1dGVzLnBvc2l0aW9uLGM9aS5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24sZD1pLm1vcnBoVGFyZ2V0c1JlbGF0aXZlLHU9aS5hdHRyaWJ1dGVzLnV2LHA9aS5hdHRyaWJ1dGVzLnV2MixoPWkuZ3JvdXBzLG09aS5kcmF3UmFuZ2U7aWYobnVsbCE9PXMpaWYoQXJyYXkuaXNBcnJheShyKSlmb3IobGV0IF89MCxNPWgubGVuZ3RoO188TTtfKyspe2xldCB5PWhbX10seD1yW3kubWF0ZXJpYWxJbmRleF07Zm9yKGxldCBCPU1hdGgubWF4KHkuc3RhcnQsbS5zdGFydCksZWU9TWF0aC5taW4ocy5jb3VudCxNYXRoLm1pbih5LnN0YXJ0K3kuY291bnQsbS5zdGFydCttLmNvdW50KSk7QjxlZTtCKz0zKXtsZXQgUT1zLmdldFgoQiksd2U9cy5nZXRYKEIrMSksUWU9cy5nZXRYKEIrMik7YT1ySSh0aGlzLHgsdCxQMCxsLGMsZCx1LHAsUSx3ZSxRZSksYSYmKGEuZmFjZUluZGV4PU1hdGguZmxvb3IoQi8zKSxhLmZhY2UubWF0ZXJpYWxJbmRleD15Lm1hdGVyaWFsSW5kZXgsZS5wdXNoKGEpKX19ZWxzZSBmb3IobGV0IHk9TWF0aC5tYXgoMCxtLnN0YXJ0KSx4PU1hdGgubWluKHMuY291bnQsbS5zdGFydCttLmNvdW50KTt5PHg7eSs9Myl7bGV0IFI9cy5nZXRYKHkpLEk9cy5nZXRYKHkrMSksQj1zLmdldFgoeSsyKTthPXJJKHRoaXMscix0LFAwLGwsYyxkLHUscCxSLEksQiksYSYmKGEuZmFjZUluZGV4PU1hdGguZmxvb3IoeS8zKSxlLnB1c2goYSkpfWVsc2UgaWYodm9pZCAwIT09bClpZihBcnJheS5pc0FycmF5KHIpKWZvcihsZXQgXz0wLE09aC5sZW5ndGg7XzxNO18rKyl7bGV0IHk9aFtfXSx4PXJbeS5tYXRlcmlhbEluZGV4XTtmb3IobGV0IEI9TWF0aC5tYXgoeS5zdGFydCxtLnN0YXJ0KSxlZT1NYXRoLm1pbihsLmNvdW50LE1hdGgubWluKHkuc3RhcnQreS5jb3VudCxtLnN0YXJ0K20uY291bnQpKTtCPGVlO0IrPTMpYT1ySSh0aGlzLHgsdCxQMCxsLGMsZCx1LHAsQixCKzEsQisyKSxhJiYoYS5mYWNlSW5kZXg9TWF0aC5mbG9vcihCLzMpLGEuZmFjZS5tYXRlcmlhbEluZGV4PXkubWF0ZXJpYWxJbmRleCxlLnB1c2goYSkpfWVsc2UgZm9yKGxldCB5PU1hdGgubWF4KDAsbS5zdGFydCkseD1NYXRoLm1pbihsLmNvdW50LG0uc3RhcnQrbS5jb3VudCk7eTx4O3krPTMpYT1ySSh0aGlzLHIsdCxQMCxsLGMsZCx1LHAseSx5KzEseSsyKSxhJiYoYS5mYWNlSW5kZXg9TWF0aC5mbG9vcih5LzMpLGUucHVzaChhKSl9ZWxzZSBpLmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLk1lc2gucmF5Y2FzdCgpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9fTtmdW5jdGlvbiBySShuLHQsZSxpLHIsbyxhLHMsbCxjLGQsdSl7ZnAuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLGMpLGdwLmZyb21CdWZmZXJBdHRyaWJ1dGUocixkKSxfcC5mcm9tQnVmZmVyQXR0cmlidXRlKHIsdSk7bGV0IHA9bi5tb3JwaFRhcmdldEluZmx1ZW5jZXM7aWYobyYmcCl7S0Quc2V0KDAsMCwwKSxKRC5zZXQoMCwwLDApLCRELnNldCgwLDAsMCk7Zm9yKGxldCBtPTAsXz1vLmxlbmd0aDttPF87bSsrKXtsZXQgTT1wW21dLHk9b1ttXTswIT09TSYmKFAzLmZyb21CdWZmZXJBdHRyaWJ1dGUoeSxjKSxrMy5mcm9tQnVmZmVyQXR0cmlidXRlKHksZCksTzMuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh5LHUpLGE/KEtELmFkZFNjYWxlZFZlY3RvcihQMyxNKSxKRC5hZGRTY2FsZWRWZWN0b3IoazMsTSksJEQuYWRkU2NhbGVkVmVjdG9yKE8zLE0pKTooS0QuYWRkU2NhbGVkVmVjdG9yKFAzLnN1YihmcCksTSksSkQuYWRkU2NhbGVkVmVjdG9yKGszLnN1YihncCksTSksJEQuYWRkU2NhbGVkVmVjdG9yKE8zLnN1YihfcCksTSkpKX1mcC5hZGQoS0QpLGdwLmFkZChKRCksX3AuYWRkKCREKX1uLmlzU2tpbm5lZE1lc2gmJihuLmJvbmVUcmFuc2Zvcm0oYyxmcCksbi5ib25lVHJhbnNmb3JtKGQsZ3ApLG4uYm9uZVRyYW5zZm9ybSh1LF9wKSk7bGV0IGg9ZnVuY3Rpb24obix0LGUsaSxyLG8sYSxzKXtsZXQgbDtpZihsPXQuc2lkZT09PWJvP2kuaW50ZXJzZWN0VHJpYW5nbGUoYSxvLHIsITAscyk6aS5pbnRlcnNlY3RUcmlhbmdsZShyLG8sYSx0LnNpZGUhPT1aMCxzKSxudWxsPT09bClyZXR1cm4gbnVsbDtpSS5jb3B5KHMpLGlJLmFwcGx5TWF0cml4NChuLm1hdHJpeFdvcmxkKTtsZXQgYz1lLnJheS5vcmlnaW4uZGlzdGFuY2VUbyhpSSk7cmV0dXJuIGM8ZS5uZWFyfHxjPmUuZmFyP251bGw6e2Rpc3RhbmNlOmMscG9pbnQ6aUkuY2xvbmUoKSxvYmplY3Q6bn19KG4sdCxlLGksZnAsZ3AsX3AsRjMpO2lmKGgpe3MmJihlSS5mcm9tQnVmZmVyQXR0cmlidXRlKHMsYyksdEkuZnJvbUJ1ZmZlckF0dHJpYnV0ZShzLGQpLG5JLmZyb21CdWZmZXJBdHRyaWJ1dGUocyx1KSxoLnV2PVZyLmdldFVWKEYzLGZwLGdwLF9wLGVJLHRJLG5JLG5ldyAkZSkpLGwmJihlSS5mcm9tQnVmZmVyQXR0cmlidXRlKGwsYyksdEkuZnJvbUJ1ZmZlckF0dHJpYnV0ZShsLGQpLG5JLmZyb21CdWZmZXJBdHRyaWJ1dGUobCx1KSxoLnV2Mj1Wci5nZXRVVihGMyxmcCxncCxfcCxlSSx0SSxuSSxuZXcgJGUpKTtsZXQgbT17YTpjLGI6ZCxjOnUsbm9ybWFsOm5ldyBLLG1hdGVyaWFsSW5kZXg6MH07VnIuZ2V0Tm9ybWFsKGZwLGdwLF9wLG0ubm9ybWFsKSxoLmZhY2U9bX1yZXR1cm4gaH1zby5wcm90b3R5cGUuaXNNZXNoPSEwO3ZhciB5bT1jbGFzcyBleHRlbmRzIEdpe2NvbnN0cnVjdG9yKHQ9MSxlPTEsaT0xLHI9MSxvPTEsYT0xKXtzdXBlcigpLHRoaXMudHlwZT0iQm94R2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17d2lkdGg6dCxoZWlnaHQ6ZSxkZXB0aDppLHdpZHRoU2VnbWVudHM6cixoZWlnaHRTZWdtZW50czpvLGRlcHRoU2VnbWVudHM6YX07bGV0IHM9dGhpcztyPU1hdGguZmxvb3Iociksbz1NYXRoLmZsb29yKG8pLGE9TWF0aC5mbG9vcihhKTtsZXQgbD1bXSxjPVtdLGQ9W10sdT1bXSxwPTAsaD0wO2Z1bmN0aW9uIG0oXyxNLHkseCxSLEksQixlZSxRLHdlLFFlKXtsZXQgQWU9SS9RLEQ9Qi93ZSxyZT1JLzIsY2U9Qi8yLGhlPWVlLzIsX2U9USsxLCQ9d2UrMSxkZT0wLHBlPTAsR2U9bmV3IEs7Zm9yKGxldCBTZT0wO1NlPCQ7U2UrKyl7bGV0IEZlPVNlKkQtY2U7Zm9yKGxldCBsdD0wO2x0PF9lO2x0KyspR2VbX109KGx0KkFlLXJlKSp4LEdlW01dPUZlKlIsR2VbeV09aGUsYy5wdXNoKEdlLngsR2UueSxHZS56KSxHZVtfXT0wLEdlW01dPTAsR2VbeV09ZWU+MD8xOi0xLGQucHVzaChHZS54LEdlLnksR2UueiksdS5wdXNoKGx0L1EpLHUucHVzaCgxLVNlL3dlKSxkZSs9MX1mb3IobGV0IFNlPTA7U2U8d2U7U2UrKylmb3IobGV0IEZlPTA7RmU8UTtGZSsrKXtsZXQgTXQ9cCtGZStfZSooU2UrMSkscHQ9cCsoRmUrMSkrX2UqKFNlKzEpLGtlPXArKEZlKzEpK19lKlNlO2wucHVzaChwK0ZlK19lKlNlLE10LGtlKSxsLnB1c2goTXQscHQsa2UpLHBlKz02fXMuYWRkR3JvdXAoaCxwZSxRZSksaCs9cGUscCs9ZGV9bSgieiIsInkiLCJ4IiwtMSwtMSxpLGUsdCxhLG8sMCksbSgieiIsInkiLCJ4IiwxLC0xLGksZSwtdCxhLG8sMSksbSgieCIsInoiLCJ5IiwxLDEsdCxpLGUscixhLDIpLG0oIngiLCJ6IiwieSIsMSwtMSx0LGksLWUscixhLDMpLG0oIngiLCJ5IiwieiIsMSwtMSx0LGUsaSxyLG8sNCksbSgieCIsInkiLCJ6IiwtMSwtMSx0LGUsLWkscixvLDUpLHRoaXMuc2V0SW5kZXgobCksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgTnIoYywzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IE5yKGQsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IE5yKHUsMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IHltKHQud2lkdGgsdC5oZWlnaHQsdC5kZXB0aCx0LndpZHRoU2VnbWVudHMsdC5oZWlnaHRTZWdtZW50cyx0LmRlcHRoU2VnbWVudHMpfX07ZnVuY3Rpb24gSjAobil7bGV0IHQ9e307Zm9yKGxldCBlIGluIG4pe3RbZV09e307Zm9yKGxldCBpIGluIG5bZV0pe2xldCByPW5bZV1baV07dFtlXVtpXT1yJiYoci5pc0NvbG9yfHxyLmlzTWF0cml4M3x8ci5pc01hdHJpeDR8fHIuaXNWZWN0b3IyfHxyLmlzVmVjdG9yM3x8ci5pc1ZlY3RvcjR8fHIuaXNUZXh0dXJlfHxyLmlzUXVhdGVybmlvbik/ci5jbG9uZSgpOkFycmF5LmlzQXJyYXkocik/ci5zbGljZSgpOnJ9fXJldHVybiB0fWZ1bmN0aW9uIG5hKG4pe2xldCB0PXt9O2ZvcihsZXQgZT0wO2U8bi5sZW5ndGg7ZSsrKXtsZXQgaT1KMChuW2VdKTtmb3IobGV0IHIgaW4gaSl0W3JdPWlbcl19cmV0dXJuIHR9dmFyIGRQZT17Y2xvbmU6SjAsbWVyZ2U6bmF9LGpkPWNsYXNzIGV4dGVuZHMgRm97Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNoYWRlck1hdGVyaWFsIix0aGlzLmRlZmluZXM9e30sdGhpcy51bmlmb3Jtcz17fSx0aGlzLnZlcnRleFNoYWRlcj0idm9pZCBtYWluKCkge1xuXHRnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KCBwb3NpdGlvbiwgMS4wICk7XG59Iix0aGlzLmZyYWdtZW50U2hhZGVyPSJ2b2lkIG1haW4oKSB7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIDEuMCwgMC4wLCAwLjAsIDEuMCApO1xufSIsdGhpcy5saW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMuZm9nPSExLHRoaXMubGlnaHRzPSExLHRoaXMuY2xpcHBpbmc9ITEsdGhpcy5leHRlbnNpb25zPXtkZXJpdmF0aXZlczohMSxmcmFnRGVwdGg6ITEsZHJhd0J1ZmZlcnM6ITEsc2hhZGVyVGV4dHVyZUxPRDohMX0sdGhpcy5kZWZhdWx0QXR0cmlidXRlVmFsdWVzPXtjb2xvcjpbMSwxLDFdLHV2OlswLDBdLHV2MjpbMCwwXX0sdGhpcy5pbmRleDBBdHRyaWJ1dGVOYW1lPXZvaWQgMCx0aGlzLnVuaWZvcm1zTmVlZFVwZGF0ZT0hMSx0aGlzLmdsc2xWZXJzaW9uPW51bGwsdm9pZCAwIT09dCYmKHZvaWQgMCE9PXQuYXR0cmlidXRlcyYmY29uc29sZS5lcnJvcigiVEhSRUUuU2hhZGVyTWF0ZXJpYWw6IGF0dHJpYnV0ZXMgc2hvdWxkIG5vdyBiZSBkZWZpbmVkIGluIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIiksdGhpcy5zZXRWYWx1ZXModCkpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5mcmFnbWVudFNoYWRlcj10LmZyYWdtZW50U2hhZGVyLHRoaXMudmVydGV4U2hhZGVyPXQudmVydGV4U2hhZGVyLHRoaXMudW5pZm9ybXM9SjAodC51bmlmb3JtcyksdGhpcy5kZWZpbmVzPU9iamVjdC5hc3NpZ24oe30sdC5kZWZpbmVzKSx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLmxpZ2h0cz10LmxpZ2h0cyx0aGlzLmNsaXBwaW5nPXQuY2xpcHBpbmcsdGhpcy5leHRlbnNpb25zPU9iamVjdC5hc3NpZ24oe30sdC5leHRlbnNpb25zKSx0aGlzLmdsc2xWZXJzaW9uPXQuZ2xzbFZlcnNpb24sdGhpc310b0pTT04odCl7bGV0IGU9c3VwZXIudG9KU09OKHQpO2UuZ2xzbFZlcnNpb249dGhpcy5nbHNsVmVyc2lvbixlLnVuaWZvcm1zPXt9O2ZvcihsZXQgciBpbiB0aGlzLnVuaWZvcm1zKXtsZXQgYT10aGlzLnVuaWZvcm1zW3JdLnZhbHVlO2UudW5pZm9ybXNbcl09YSYmYS5pc1RleHR1cmU/e3R5cGU6InQiLHZhbHVlOmEudG9KU09OKHQpLnV1aWR9OmEmJmEuaXNDb2xvcj97dHlwZToiYyIsdmFsdWU6YS5nZXRIZXgoKX06YSYmYS5pc1ZlY3RvcjI/e3R5cGU6InYyIix2YWx1ZTphLnRvQXJyYXkoKX06YSYmYS5pc1ZlY3RvcjM/e3R5cGU6InYzIix2YWx1ZTphLnRvQXJyYXkoKX06YSYmYS5pc1ZlY3RvcjQ/e3R5cGU6InY0Iix2YWx1ZTphLnRvQXJyYXkoKX06YSYmYS5pc01hdHJpeDM/e3R5cGU6Im0zIix2YWx1ZTphLnRvQXJyYXkoKX06YSYmYS5pc01hdHJpeDQ/e3R5cGU6Im00Iix2YWx1ZTphLnRvQXJyYXkoKX06e3ZhbHVlOmF9fU9iamVjdC5rZXlzKHRoaXMuZGVmaW5lcykubGVuZ3RoPjAmJihlLmRlZmluZXM9dGhpcy5kZWZpbmVzKSxlLnZlcnRleFNoYWRlcj10aGlzLnZlcnRleFNoYWRlcixlLmZyYWdtZW50U2hhZGVyPXRoaXMuZnJhZ21lbnRTaGFkZXI7bGV0IGk9e307Zm9yKGxldCByIGluIHRoaXMuZXh0ZW5zaW9ucykhMD09PXRoaXMuZXh0ZW5zaW9uc1tyXSYmKGlbcl09ITApO3JldHVybiBPYmplY3Qua2V5cyhpKS5sZW5ndGg+MCYmKGUuZXh0ZW5zaW9ucz1pKSxlfX07amQucHJvdG90eXBlLmlzU2hhZGVyTWF0ZXJpYWw9ITA7dmFyIFN4PWNsYXNzIGV4dGVuZHMgVWl7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iQ2FtZXJhIix0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZT1uZXcgdm4sdGhpcy5wcm9qZWN0aW9uTWF0cml4PW5ldyB2bix0aGlzLnByb2plY3Rpb25NYXRyaXhJbnZlcnNlPW5ldyB2bn1jb3B5KHQsZSl7cmV0dXJuIHN1cGVyLmNvcHkodCxlKSx0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHQubWF0cml4V29ybGRJbnZlcnNlKSx0aGlzLnByb2plY3Rpb25NYXRyaXguY29weSh0LnByb2plY3Rpb25NYXRyaXgpLHRoaXMucHJvamVjdGlvbk1hdHJpeEludmVyc2UuY29weSh0LnByb2plY3Rpb25NYXRyaXhJbnZlcnNlKSx0aGlzfWdldFdvcmxkRGlyZWN0aW9uKHQpe3RoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpO2xldCBlPXRoaXMubWF0cml4V29ybGQuZWxlbWVudHM7cmV0dXJuIHQuc2V0KC1lWzhdLC1lWzldLC1lWzEwXSkubm9ybWFsaXplKCl9dXBkYXRlTWF0cml4V29ybGQodCl7c3VwZXIudXBkYXRlTWF0cml4V29ybGQodCksdGhpcy5tYXRyaXhXb3JsZEludmVyc2UuY29weSh0aGlzLm1hdHJpeFdvcmxkKS5pbnZlcnQoKX11cGRhdGVXb3JsZE1hdHJpeCh0LGUpe3N1cGVyLnVwZGF0ZVdvcmxkTWF0cml4KHQsZSksdGhpcy5tYXRyaXhXb3JsZEludmVyc2UuY29weSh0aGlzLm1hdHJpeFdvcmxkKS5pbnZlcnQoKX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX19O1N4LnByb3RvdHlwZS5pc0NhbWVyYT0hMDt2YXIgcmE9Y2xhc3MgZXh0ZW5kcyBTeHtjb25zdHJ1Y3Rvcih0PTUwLGU9MSxpPS4xLHI9MmUzKXtzdXBlcigpLHRoaXMudHlwZT0iUGVyc3BlY3RpdmVDYW1lcmEiLHRoaXMuZm92PXQsdGhpcy56b29tPTEsdGhpcy5uZWFyPWksdGhpcy5mYXI9cix0aGlzLmZvY3VzPTEwLHRoaXMuYXNwZWN0PWUsdGhpcy52aWV3PW51bGwsdGhpcy5maWxtR2F1Z2U9MzUsdGhpcy5maWxtT2Zmc2V0PTAsdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksdGhpcy5mb3Y9dC5mb3YsdGhpcy56b29tPXQuem9vbSx0aGlzLm5lYXI9dC5uZWFyLHRoaXMuZmFyPXQuZmFyLHRoaXMuZm9jdXM9dC5mb2N1cyx0aGlzLmFzcGVjdD10LmFzcGVjdCx0aGlzLnZpZXc9bnVsbD09PXQudmlldz9udWxsOk9iamVjdC5hc3NpZ24oe30sdC52aWV3KSx0aGlzLmZpbG1HYXVnZT10LmZpbG1HYXVnZSx0aGlzLmZpbG1PZmZzZXQ9dC5maWxtT2Zmc2V0LHRoaXN9c2V0Rm9jYWxMZW5ndGgodCl7bGV0IGU9LjUqdGhpcy5nZXRGaWxtSGVpZ2h0KCkvdDt0aGlzLmZvdj0yKiQzKk1hdGguYXRhbihlKSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1nZXRGb2NhbExlbmd0aCgpe2xldCB0PU1hdGgudGFuKC41Km0zKnRoaXMuZm92KTtyZXR1cm4uNSp0aGlzLmdldEZpbG1IZWlnaHQoKS90fWdldEVmZmVjdGl2ZUZPVigpe3JldHVybiAyKiQzKk1hdGguYXRhbihNYXRoLnRhbiguNSptMyp0aGlzLmZvdikvdGhpcy56b29tKX1nZXRGaWxtV2lkdGgoKXtyZXR1cm4gdGhpcy5maWxtR2F1Z2UqTWF0aC5taW4odGhpcy5hc3BlY3QsMSl9Z2V0RmlsbUhlaWdodCgpe3JldHVybiB0aGlzLmZpbG1HYXVnZS9NYXRoLm1heCh0aGlzLmFzcGVjdCwxKX1zZXRWaWV3T2Zmc2V0KHQsZSxpLHIsbyxhKXt0aGlzLmFzcGVjdD10L2UsbnVsbD09PXRoaXMudmlldyYmKHRoaXMudmlldz17ZW5hYmxlZDohMCxmdWxsV2lkdGg6MSxmdWxsSGVpZ2h0OjEsb2Zmc2V0WDowLG9mZnNldFk6MCx3aWR0aDoxLGhlaWdodDoxfSksdGhpcy52aWV3LmVuYWJsZWQ9ITAsdGhpcy52aWV3LmZ1bGxXaWR0aD10LHRoaXMudmlldy5mdWxsSGVpZ2h0PWUsdGhpcy52aWV3Lm9mZnNldFg9aSx0aGlzLnZpZXcub2Zmc2V0WT1yLHRoaXMudmlldy53aWR0aD1vLHRoaXMudmlldy5oZWlnaHQ9YSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1jbGVhclZpZXdPZmZzZXQoKXtudWxsIT09dGhpcy52aWV3JiYodGhpcy52aWV3LmVuYWJsZWQ9ITEpLHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfXVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKXtsZXQgdD10aGlzLm5lYXIsZT10Kk1hdGgudGFuKC41Km0zKnRoaXMuZm92KS90aGlzLnpvb20saT0yKmUscj10aGlzLmFzcGVjdCppLG89LS41KnIsYT10aGlzLnZpZXc7aWYobnVsbCE9PXRoaXMudmlldyYmdGhpcy52aWV3LmVuYWJsZWQpe2xldCBsPWEuZnVsbFdpZHRoLGM9YS5mdWxsSGVpZ2h0O28rPWEub2Zmc2V0WCpyL2wsZS09YS5vZmZzZXRZKmkvYyxyKj1hLndpZHRoL2wsaSo9YS5oZWlnaHQvY31sZXQgcz10aGlzLmZpbG1PZmZzZXQ7MCE9PXMmJihvKz10KnMvdGhpcy5nZXRGaWxtV2lkdGgoKSksdGhpcy5wcm9qZWN0aW9uTWF0cml4Lm1ha2VQZXJzcGVjdGl2ZShvLG8rcixlLGUtaSx0LHRoaXMuZmFyKSx0aGlzLnByb2plY3Rpb25NYXRyaXhJbnZlcnNlLmNvcHkodGhpcy5wcm9qZWN0aW9uTWF0cml4KS5pbnZlcnQoKX10b0pTT04odCl7bGV0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBlLm9iamVjdC5mb3Y9dGhpcy5mb3YsZS5vYmplY3Quem9vbT10aGlzLnpvb20sZS5vYmplY3QubmVhcj10aGlzLm5lYXIsZS5vYmplY3QuZmFyPXRoaXMuZmFyLGUub2JqZWN0LmZvY3VzPXRoaXMuZm9jdXMsZS5vYmplY3QuYXNwZWN0PXRoaXMuYXNwZWN0LG51bGwhPT10aGlzLnZpZXcmJihlLm9iamVjdC52aWV3PU9iamVjdC5hc3NpZ24oe30sdGhpcy52aWV3KSksZS5vYmplY3QuZmlsbUdhdWdlPXRoaXMuZmlsbUdhdWdlLGUub2JqZWN0LmZpbG1PZmZzZXQ9dGhpcy5maWxtT2Zmc2V0LGV9fTtyYS5wcm90b3R5cGUuaXNQZXJzcGVjdGl2ZUNhbWVyYT0hMDt2YXIgRXg9Y2xhc3MgZXh0ZW5kcyBVaXtjb25zdHJ1Y3Rvcih0LGUsaSl7aWYoc3VwZXIoKSx0aGlzLnR5cGU9IkN1YmVDYW1lcmEiLCEwIT09aS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5DdWJlQ2FtZXJhOiBUaGUgY29uc3RydWN0b3Igbm93IGV4cGVjdHMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xDdWJlUmVuZGVyVGFyZ2V0IGFzIHRoaXJkIHBhcmFtZXRlci4iKTt0aGlzLnJlbmRlclRhcmdldD1pO2xldCByPW5ldyByYSg5MCwxLHQsZSk7ci5sYXllcnM9dGhpcy5sYXllcnMsci51cC5zZXQoMCwtMSwwKSxyLmxvb2tBdChuZXcgSygxLDAsMCkpLHRoaXMuYWRkKHIpO2xldCBvPW5ldyByYSg5MCwxLHQsZSk7by5sYXllcnM9dGhpcy5sYXllcnMsby51cC5zZXQoMCwtMSwwKSxvLmxvb2tBdChuZXcgSygtMSwwLDApKSx0aGlzLmFkZChvKTtsZXQgYT1uZXcgcmEoOTAsMSx0LGUpO2EubGF5ZXJzPXRoaXMubGF5ZXJzLGEudXAuc2V0KDAsMCwxKSxhLmxvb2tBdChuZXcgSygwLDEsMCkpLHRoaXMuYWRkKGEpO2xldCBzPW5ldyByYSg5MCwxLHQsZSk7cy5sYXllcnM9dGhpcy5sYXllcnMscy51cC5zZXQoMCwwLC0xKSxzLmxvb2tBdChuZXcgSygwLC0xLDApKSx0aGlzLmFkZChzKTtsZXQgbD1uZXcgcmEoOTAsMSx0LGUpO2wubGF5ZXJzPXRoaXMubGF5ZXJzLGwudXAuc2V0KDAsLTEsMCksbC5sb29rQXQobmV3IEsoMCwwLDEpKSx0aGlzLmFkZChsKTtsZXQgYz1uZXcgcmEoOTAsMSx0LGUpO2MubGF5ZXJzPXRoaXMubGF5ZXJzLGMudXAuc2V0KDAsLTEsMCksYy5sb29rQXQobmV3IEsoMCwwLC0xKSksdGhpcy5hZGQoYyl9dXBkYXRlKHQsZSl7bnVsbD09PXRoaXMucGFyZW50JiZ0aGlzLnVwZGF0ZU1hdHJpeFdvcmxkKCk7bGV0IGk9dGhpcy5yZW5kZXJUYXJnZXQsW3IsbyxhLHMsbCxjXT10aGlzLmNoaWxkcmVuLGQ9dC54ci5lbmFibGVkLHU9dC5nZXRSZW5kZXJUYXJnZXQoKTt0LnhyLmVuYWJsZWQ9ITE7bGV0IHA9aS50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcztpLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzPSExLHQuc2V0UmVuZGVyVGFyZ2V0KGksMCksdC5yZW5kZXIoZSxyKSx0LnNldFJlbmRlclRhcmdldChpLDEpLHQucmVuZGVyKGUsbyksdC5zZXRSZW5kZXJUYXJnZXQoaSwyKSx0LnJlbmRlcihlLGEpLHQuc2V0UmVuZGVyVGFyZ2V0KGksMyksdC5yZW5kZXIoZSxzKSx0LnNldFJlbmRlclRhcmdldChpLDQpLHQucmVuZGVyKGUsbCksaS50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz1wLHQuc2V0UmVuZGVyVGFyZ2V0KGksNSksdC5yZW5kZXIoZSxjKSx0LnNldFJlbmRlclRhcmdldCh1KSx0LnhyLmVuYWJsZWQ9ZCxpLnRleHR1cmUubmVlZHNQTVJFTVVwZGF0ZT0hMH19LCQwPWNsYXNzIGV4dGVuZHMgbG97Y29uc3RydWN0b3IodCxlLGkscixvLGEscyxsLGMsZCl7c3VwZXIodD12b2lkIDAhPT10P3Q6W10sZT12b2lkIDAhPT1lP2U6V3gsaSxyLG8sYSxzLGwsYyxkKSx0aGlzLmZsaXBZPSExfWdldCBpbWFnZXMoKXtyZXR1cm4gdGhpcy5pbWFnZX1zZXQgaW1hZ2VzKHQpe3RoaXMuaW1hZ2U9dH19OyQwLnByb3RvdHlwZS5pc0N1YmVUZXh0dXJlPSEwO3ZhciBJST1jbGFzcyBleHRlbmRzIHRze2NvbnN0cnVjdG9yKHQsZSxpKXtOdW1iZXIuaXNJbnRlZ2VyKGUpJiYoY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTEN1YmVSZW5kZXJUYXJnZXQ6IGNvbnN0cnVjdG9yIHNpZ25hdHVyZSBpcyBub3cgV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KCBzaXplLCBvcHRpb25zICkiKSxlPWkpLHN1cGVyKHQsdCxlKSx0aGlzLnRleHR1cmU9bmV3ICQwKHZvaWQgMCwoZT1lfHx7fSkubWFwcGluZyxlLndyYXBTLGUud3JhcFQsZS5tYWdGaWx0ZXIsZS5taW5GaWx0ZXIsZS5mb3JtYXQsZS50eXBlLGUuYW5pc290cm9weSxlLmVuY29kaW5nKSx0aGlzLnRleHR1cmUuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPSEwLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9dm9pZCAwIT09ZS5nZW5lcmF0ZU1pcG1hcHMmJmUuZ2VuZXJhdGVNaXBtYXBzLHRoaXMudGV4dHVyZS5taW5GaWx0ZXI9dm9pZCAwIT09ZS5taW5GaWx0ZXI/ZS5taW5GaWx0ZXI6aWF9ZnJvbUVxdWlyZWN0YW5ndWxhclRleHR1cmUodCxlKXt0aGlzLnRleHR1cmUudHlwZT1lLnR5cGUsdGhpcy50ZXh0dXJlLmZvcm1hdD1DYSx0aGlzLnRleHR1cmUuZW5jb2Rpbmc9ZS5lbmNvZGluZyx0aGlzLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzPWUuZ2VuZXJhdGVNaXBtYXBzLHRoaXMudGV4dHVyZS5taW5GaWx0ZXI9ZS5taW5GaWx0ZXIsdGhpcy50ZXh0dXJlLm1hZ0ZpbHRlcj1lLm1hZ0ZpbHRlcjtsZXQgaV91bmlmb3Jtcz17dEVxdWlyZWN0Ont2YWx1ZTpudWxsfX0saV92ZXJ0ZXhTaGFkZXI9IlxuXG5cdFx0XHRcdHZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247XG5cblx0XHRcdFx0dmVjMyB0cmFuc2Zvcm1EaXJlY3Rpb24oIGluIHZlYzMgZGlyLCBpbiBtYXQ0IG1hdHJpeCApIHtcblxuXHRcdFx0XHRcdHJldHVybiBub3JtYWxpemUoICggbWF0cml4ICogdmVjNCggZGlyLCAwLjAgKSApLnh5eiApO1xuXG5cdFx0XHRcdH1cblxuXHRcdFx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdFx0XHR2V29ybGREaXJlY3Rpb24gPSB0cmFuc2Zvcm1EaXJlY3Rpb24oIHBvc2l0aW9uLCBtb2RlbE1hdHJpeCApO1xuXG5cdFx0XHRcdFx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0XHRcdFx0XHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cblx0XHRcdFx0fVxuXHRcdFx0IixpX2ZyYWdtZW50U2hhZGVyPSJcblxuXHRcdFx0XHR1bmlmb3JtIHNhbXBsZXIyRCB0RXF1aXJlY3Q7XG5cblx0XHRcdFx0dmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcblxuXHRcdFx0XHQjaW5jbHVkZSA8Y29tbW9uPlxuXG5cdFx0XHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0XHRcdHZlYzMgZGlyZWN0aW9uID0gbm9ybWFsaXplKCB2V29ybGREaXJlY3Rpb24gKTtcblxuXHRcdFx0XHRcdHZlYzIgc2FtcGxlVVYgPSBlcXVpcmVjdFV2KCBkaXJlY3Rpb24gKTtcblxuXHRcdFx0XHRcdGdsX0ZyYWdDb2xvciA9IHRleHR1cmUyRCggdEVxdWlyZWN0LCBzYW1wbGVVViApO1xuXG5cdFx0XHRcdH1cblx0XHRcdCIscj1uZXcgeW0oNSw1LDUpLG89bmV3IGpkKHtuYW1lOiJDdWJlbWFwRnJvbUVxdWlyZWN0Iix1bmlmb3JtczpKMChpX3VuaWZvcm1zKSx2ZXJ0ZXhTaGFkZXI6aV92ZXJ0ZXhTaGFkZXIsZnJhZ21lbnRTaGFkZXI6aV9mcmFnbWVudFNoYWRlcixzaWRlOmJvLGJsZW5kaW5nOnZwfSk7by51bmlmb3Jtcy50RXF1aXJlY3QudmFsdWU9ZTtsZXQgYT1uZXcgc28ocixvKSxzPWUubWluRmlsdGVyO3JldHVybiBlLm1pbkZpbHRlcj09PSRJJiYoZS5taW5GaWx0ZXI9aWEpLG5ldyBFeCgxLDEwLHRoaXMpLnVwZGF0ZSh0LGEpLGUubWluRmlsdGVyPXMsYS5nZW9tZXRyeS5kaXNwb3NlKCksYS5tYXRlcmlhbC5kaXNwb3NlKCksdGhpc31jbGVhcih0LGUsaSxyKXtsZXQgbz10LmdldFJlbmRlclRhcmdldCgpO2ZvcihsZXQgYT0wO2E8NjthKyspdC5zZXRSZW5kZXJUYXJnZXQodGhpcyxhKSx0LmNsZWFyKGUsaSxyKTt0LnNldFJlbmRlclRhcmdldChvKX19O0lJLnByb3RvdHlwZS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldD0hMDt2YXIgTjM9bmV3IEssaFBlPW5ldyBLLG1QZT1uZXcgeW8sWGw9Y2xhc3N7Y29uc3RydWN0b3IodD1uZXcgSygxLDAsMCksZT0wKXt0aGlzLm5vcm1hbD10LHRoaXMuY29uc3RhbnQ9ZX1zZXQodCxlKXtyZXR1cm4gdGhpcy5ub3JtYWwuY29weSh0KSx0aGlzLmNvbnN0YW50PWUsdGhpc31zZXRDb21wb25lbnRzKHQsZSxpLHIpe3JldHVybiB0aGlzLm5vcm1hbC5zZXQodCxlLGkpLHRoaXMuY29uc3RhbnQ9cix0aGlzfXNldEZyb21Ob3JtYWxBbmRDb3BsYW5hclBvaW50KHQsZSl7cmV0dXJuIHRoaXMubm9ybWFsLmNvcHkodCksdGhpcy5jb25zdGFudD0tZS5kb3QodGhpcy5ub3JtYWwpLHRoaXN9c2V0RnJvbUNvcGxhbmFyUG9pbnRzKHQsZSxpKXtsZXQgcj1OMy5zdWJWZWN0b3JzKGksZSkuY3Jvc3MoaFBlLnN1YlZlY3RvcnModCxlKSkubm9ybWFsaXplKCk7cmV0dXJuIHRoaXMuc2V0RnJvbU5vcm1hbEFuZENvcGxhbmFyUG9pbnQocix0KSx0aGlzfWNvcHkodCl7cmV0dXJuIHRoaXMubm9ybWFsLmNvcHkodC5ub3JtYWwpLHRoaXMuY29uc3RhbnQ9dC5jb25zdGFudCx0aGlzfW5vcm1hbGl6ZSgpe2xldCB0PTEvdGhpcy5ub3JtYWwubGVuZ3RoKCk7cmV0dXJuIHRoaXMubm9ybWFsLm11bHRpcGx5U2NhbGFyKHQpLHRoaXMuY29uc3RhbnQqPXQsdGhpc31uZWdhdGUoKXtyZXR1cm4gdGhpcy5jb25zdGFudCo9LTEsdGhpcy5ub3JtYWwubmVnYXRlKCksdGhpc31kaXN0YW5jZVRvUG9pbnQodCl7cmV0dXJuIHRoaXMubm9ybWFsLmRvdCh0KSt0aGlzLmNvbnN0YW50fWRpc3RhbmNlVG9TcGhlcmUodCl7cmV0dXJuIHRoaXMuZGlzdGFuY2VUb1BvaW50KHQuY2VudGVyKS10LnJhZGl1c31wcm9qZWN0UG9pbnQodCxlKXtyZXR1cm4gZS5jb3B5KHRoaXMubm9ybWFsKS5tdWx0aXBseVNjYWxhcigtdGhpcy5kaXN0YW5jZVRvUG9pbnQodCkpLmFkZCh0KX1pbnRlcnNlY3RMaW5lKHQsZSl7bGV0IGk9dC5kZWx0YShOMykscj10aGlzLm5vcm1hbC5kb3QoaSk7aWYoMD09PXIpcmV0dXJuIDA9PT10aGlzLmRpc3RhbmNlVG9Qb2ludCh0LnN0YXJ0KT9lLmNvcHkodC5zdGFydCk6bnVsbDtsZXQgbz0tKHQuc3RhcnQuZG90KHRoaXMubm9ybWFsKSt0aGlzLmNvbnN0YW50KS9yO3JldHVybiBvPDB8fG8+MT9udWxsOmUuY29weShpKS5tdWx0aXBseVNjYWxhcihvKS5hZGQodC5zdGFydCl9aW50ZXJzZWN0c0xpbmUodCl7bGV0IGU9dGhpcy5kaXN0YW5jZVRvUG9pbnQodC5zdGFydCksaT10aGlzLmRpc3RhbmNlVG9Qb2ludCh0LmVuZCk7cmV0dXJuIGU8MCYmaT4wfHxpPDAmJmU+MH1pbnRlcnNlY3RzQm94KHQpe3JldHVybiB0LmludGVyc2VjdHNQbGFuZSh0aGlzKX1pbnRlcnNlY3RzU3BoZXJlKHQpe3JldHVybiB0LmludGVyc2VjdHNQbGFuZSh0aGlzKX1jb3BsYW5hclBvaW50KHQpe3JldHVybiB0LmNvcHkodGhpcy5ub3JtYWwpLm11bHRpcGx5U2NhbGFyKC10aGlzLmNvbnN0YW50KX1hcHBseU1hdHJpeDQodCxlKXtsZXQgaT1lfHxtUGUuZ2V0Tm9ybWFsTWF0cml4KHQpLHI9dGhpcy5jb3BsYW5hclBvaW50KE4zKS5hcHBseU1hdHJpeDQodCksbz10aGlzLm5vcm1hbC5hcHBseU1hdHJpeDMoaSkubm9ybWFsaXplKCk7cmV0dXJuIHRoaXMuY29uc3RhbnQ9LXIuZG90KG8pLHRoaXN9dHJhbnNsYXRlKHQpe3JldHVybiB0aGlzLmNvbnN0YW50LT10LmRvdCh0aGlzLm5vcm1hbCksdGhpc31lcXVhbHModCl7cmV0dXJuIHQubm9ybWFsLmVxdWFscyh0aGlzLm5vcm1hbCkmJnQuY29uc3RhbnQ9PT10aGlzLmNvbnN0YW50fWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX07WGwucHJvdG90eXBlLmlzUGxhbmU9ITA7dmFyIEYwPW5ldyBTcCxvST1uZXcgSyxlXz1jbGFzc3tjb25zdHJ1Y3Rvcih0PW5ldyBYbCxlPW5ldyBYbCxpPW5ldyBYbCxyPW5ldyBYbCxvPW5ldyBYbCxhPW5ldyBYbCl7dGhpcy5wbGFuZXM9W3QsZSxpLHIsbyxhXX1zZXQodCxlLGkscixvLGEpe2xldCBzPXRoaXMucGxhbmVzO3JldHVybiBzWzBdLmNvcHkodCksc1sxXS5jb3B5KGUpLHNbMl0uY29weShpKSxzWzNdLmNvcHkociksc1s0XS5jb3B5KG8pLHNbNV0uY29weShhKSx0aGlzfWNvcHkodCl7bGV0IGU9dGhpcy5wbGFuZXM7Zm9yKGxldCBpPTA7aTw2O2krKyllW2ldLmNvcHkodC5wbGFuZXNbaV0pO3JldHVybiB0aGlzfXNldEZyb21Qcm9qZWN0aW9uTWF0cml4KHQpe2xldCBlPXRoaXMucGxhbmVzLGk9dC5lbGVtZW50cyxyPWlbMF0sbz1pWzFdLGE9aVsyXSxzPWlbM10sbD1pWzRdLGM9aVs1XSxkPWlbNl0sdT1pWzddLHA9aVs4XSxoPWlbOV0sbT1pWzEwXSxfPWlbMTFdLE09aVsxMl0seT1pWzEzXSx4PWlbMTRdLFI9aVsxNV07cmV0dXJuIGVbMF0uc2V0Q29tcG9uZW50cyhzLXIsdS1sLF8tcCxSLU0pLm5vcm1hbGl6ZSgpLGVbMV0uc2V0Q29tcG9uZW50cyhzK3IsdStsLF8rcCxSK00pLm5vcm1hbGl6ZSgpLGVbMl0uc2V0Q29tcG9uZW50cyhzK28sdStjLF8raCxSK3kpLm5vcm1hbGl6ZSgpLGVbM10uc2V0Q29tcG9uZW50cyhzLW8sdS1jLF8taCxSLXkpLm5vcm1hbGl6ZSgpLGVbNF0uc2V0Q29tcG9uZW50cyhzLWEsdS1kLF8tbSxSLXgpLm5vcm1hbGl6ZSgpLGVbNV0uc2V0Q29tcG9uZW50cyhzK2EsdStkLF8rbSxSK3gpLm5vcm1hbGl6ZSgpLHRoaXN9aW50ZXJzZWN0c09iamVjdCh0KXtsZXQgZT10Lmdlb21ldHJ5O3JldHVybiBudWxsPT09ZS5ib3VuZGluZ1NwaGVyZSYmZS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxGMC5jb3B5KGUuYm91bmRpbmdTcGhlcmUpLmFwcGx5TWF0cml4NCh0Lm1hdHJpeFdvcmxkKSx0aGlzLmludGVyc2VjdHNTcGhlcmUoRjApfWludGVyc2VjdHNTcHJpdGUodCl7cmV0dXJuIEYwLmNlbnRlci5zZXQoMCwwLDApLEYwLnJhZGl1cz0uNzA3MTA2NzgxMTg2NTQ3NixGMC5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCksdGhpcy5pbnRlcnNlY3RzU3BoZXJlKEYwKX1pbnRlcnNlY3RzU3BoZXJlKHQpe2xldCBlPXRoaXMucGxhbmVzLGk9dC5jZW50ZXIscj0tdC5yYWRpdXM7Zm9yKGxldCBvPTA7bzw2O28rKylpZihlW29dLmRpc3RhbmNlVG9Qb2ludChpKTxyKXJldHVybiExO3JldHVybiEwfWludGVyc2VjdHNCb3godCl7bGV0IGU9dGhpcy5wbGFuZXM7Zm9yKGxldCBpPTA7aTw2O2krKyl7bGV0IHI9ZVtpXTtpZihvSS54PXIubm9ybWFsLng+MD90Lm1heC54OnQubWluLngsb0kueT1yLm5vcm1hbC55PjA/dC5tYXgueTp0Lm1pbi55LG9JLno9ci5ub3JtYWwuej4wP3QubWF4Lno6dC5taW4ueixyLmRpc3RhbmNlVG9Qb2ludChvSSk8MClyZXR1cm4hMX1yZXR1cm4hMH1jb250YWluc1BvaW50KHQpe2xldCBlPXRoaXMucGxhbmVzO2ZvcihsZXQgaT0wO2k8NjtpKyspaWYoZVtpXS5kaXN0YW5jZVRvUG9pbnQodCk8MClyZXR1cm4hMTtyZXR1cm4hMH1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX19O2Z1bmN0aW9uIG10ZSgpe2xldCBuPW51bGwsdD0hMSxlPW51bGwsaT1udWxsO2Z1bmN0aW9uIHIobyxhKXtlKG8sYSksaT1uLnJlcXVlc3RBbmltYXRpb25GcmFtZShyKX1yZXR1cm57c3RhcnQ6ZnVuY3Rpb24oKXshMCE9PXQmJm51bGwhPT1lJiYoaT1uLnJlcXVlc3RBbmltYXRpb25GcmFtZShyKSx0PSEwKX0sc3RvcDpmdW5jdGlvbigpe24uY2FuY2VsQW5pbWF0aW9uRnJhbWUoaSksdD0hMX0sc2V0QW5pbWF0aW9uTG9vcDpmdW5jdGlvbihvKXtlPW99LHNldENvbnRleHQ6ZnVuY3Rpb24obyl7bj1vfX19ZnVuY3Rpb24gZlBlKG4sdCl7bGV0IGU9dC5pc1dlYkdMMixpPW5ldyBXZWFrTWFwO3JldHVybntnZXQ6ZnVuY3Rpb24oYyl7cmV0dXJuIGMuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSYmKGM9Yy5kYXRhKSxpLmdldChjKX0scmVtb3ZlOmZ1bmN0aW9uKGMpe2MuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSYmKGM9Yy5kYXRhKTtsZXQgZD1pLmdldChjKTtkJiYobi5kZWxldGVCdWZmZXIoZC5idWZmZXIpLGkuZGVsZXRlKGMpKX0sdXBkYXRlOmZ1bmN0aW9uKGMsZCl7aWYoYy5pc0dMQnVmZmVyQXR0cmlidXRlKXtsZXQgcD1pLmdldChjKTtyZXR1cm4gdm9pZCgoIXB8fHAudmVyc2lvbjxjLnZlcnNpb24pJiZpLnNldChjLHtidWZmZXI6Yy5idWZmZXIsdHlwZTpjLnR5cGUsYnl0ZXNQZXJFbGVtZW50OmMuZWxlbWVudFNpemUsdmVyc2lvbjpjLnZlcnNpb259KSl9Yy5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlJiYoYz1jLmRhdGEpO2xldCB1PWkuZ2V0KGMpO3ZvaWQgMD09PXU/aS5zZXQoYyxmdW5jdGlvbihjLGQpe2xldCB1PWMuYXJyYXkscD1jLnVzYWdlLGg9bi5jcmVhdGVCdWZmZXIoKTtuLmJpbmRCdWZmZXIoZCxoKSxuLmJ1ZmZlckRhdGEoZCx1LHApLGMub25VcGxvYWRDYWxsYmFjaygpO2xldCBtPTUxMjY7cmV0dXJuIHUgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXk/bT01MTI2OnUgaW5zdGFuY2VvZiBGbG9hdDY0QXJyYXk/Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTEF0dHJpYnV0ZXM6IFVuc3VwcG9ydGVkIGRhdGEgYnVmZmVyIGZvcm1hdDogRmxvYXQ2NEFycmF5LiIpOnUgaW5zdGFuY2VvZiBVaW50MTZBcnJheT9jLmlzRmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZT9lP209NTEzMTpjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMQXR0cmlidXRlczogVXNhZ2Ugb2YgRmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZSByZXF1aXJlcyBXZWJHTDIuIik6bT01MTIzOnUgaW5zdGFuY2VvZiBJbnQxNkFycmF5P209NTEyMjp1IGluc3RhbmNlb2YgVWludDMyQXJyYXk/bT01MTI1OnUgaW5zdGFuY2VvZiBJbnQzMkFycmF5P209NTEyNDp1IGluc3RhbmNlb2YgSW50OEFycmF5P209NTEyMDoodSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fHUgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheSkmJihtPTUxMjEpLHtidWZmZXI6aCx0eXBlOm0sYnl0ZXNQZXJFbGVtZW50OnUuQllURVNfUEVSX0VMRU1FTlQsdmVyc2lvbjpjLnZlcnNpb259fShjLGQpKTp1LnZlcnNpb248Yy52ZXJzaW9uJiYoZnVuY3Rpb24oYyxkLHUpe2xldCBwPWQuYXJyYXksaD1kLnVwZGF0ZVJhbmdlO24uYmluZEJ1ZmZlcih1LGMpLC0xPT09aC5jb3VudD9uLmJ1ZmZlclN1YkRhdGEodSwwLHApOihlP24uYnVmZmVyU3ViRGF0YSh1LGgub2Zmc2V0KnAuQllURVNfUEVSX0VMRU1FTlQscCxoLm9mZnNldCxoLmNvdW50KTpuLmJ1ZmZlclN1YkRhdGEodSxoLm9mZnNldCpwLkJZVEVTX1BFUl9FTEVNRU5ULHAuc3ViYXJyYXkoaC5vZmZzZXQsaC5vZmZzZXQraC5jb3VudCkpLGguY291bnQ9LTEpfSh1LmJ1ZmZlcixjLGQpLHUudmVyc2lvbj1jLnZlcnNpb24pfX19dmFyIFR4PWNsYXNzIGV4dGVuZHMgR2l7Y29uc3RydWN0b3IodD0xLGU9MSxpPTEscj0xKXtzdXBlcigpLHRoaXMudHlwZT0iUGxhbmVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXt3aWR0aDp0LGhlaWdodDplLHdpZHRoU2VnbWVudHM6aSxoZWlnaHRTZWdtZW50czpyfTtsZXQgbz10LzIsYT1lLzIscz1NYXRoLmZsb29yKGkpLGw9TWF0aC5mbG9vcihyKSxjPXMrMSxkPWwrMSx1PXQvcyxwPWUvbCxoPVtdLG09W10sXz1bXSxNPVtdO2ZvcihsZXQgeT0wO3k8ZDt5Kyspe2xldCB4PXkqcC1hO2ZvcihsZXQgUj0wO1I8YztSKyspbS5wdXNoKFIqdS1vLC14LDApLF8ucHVzaCgwLDAsMSksTS5wdXNoKFIvcyksTS5wdXNoKDEteS9sKX1mb3IobGV0IHk9MDt5PGw7eSsrKWZvcihsZXQgeD0wO3g8czt4Kyspe2xldCBJPXgrYyooeSsxKSxCPXgrMStjKih5KzEpLGVlPXgrMStjKnk7aC5wdXNoKHgrYyp5LEksZWUpLGgucHVzaChJLEIsZWUpfXRoaXMuc2V0SW5kZXgoaCksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgTnIobSwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IE5yKF8sMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IE5yKE0sMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IFR4KHQud2lkdGgsdC5oZWlnaHQsdC53aWR0aFNlZ21lbnRzLHQuaGVpZ2h0U2VnbWVudHMpfX0sdmk9e2FscGhhbWFwX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0FMUEhBTUFQXG5cdGRpZmZ1c2VDb2xvci5hICo9IHRleHR1cmUyRCggYWxwaGFNYXAsIHZVdiApLmc7XG4jZW5kaWYiLGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfQUxQSEFNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgYWxwaGFNYXA7XG4jZW5kaWYiLGFscGhhdGVzdF9mcmFnbWVudDoiI2lmZGVmIFVTRV9BTFBIQVRFU1Rcblx0aWYgKCBkaWZmdXNlQ29sb3IuYSA8IGFscGhhVGVzdCApIGRpc2NhcmQ7XG4jZW5kaWYiLGFscGhhdGVzdF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0FMUEhBVEVTVFxuXHR1bmlmb3JtIGZsb2F0IGFscGhhVGVzdDtcbiNlbmRpZiIsYW9tYXBfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfQU9NQVBcblx0ZmxvYXQgYW1iaWVudE9jY2x1c2lvbiA9ICggdGV4dHVyZTJEKCBhb01hcCwgdlV2MiApLnIgLSAxLjAgKSAqIGFvTWFwSW50ZW5zaXR5ICsgMS4wO1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKj0gYW1iaWVudE9jY2x1c2lvbjtcblx0I2lmIGRlZmluZWQoIFVTRV9FTlZNQVAgKSAmJiBkZWZpbmVkKCBTVEFOREFSRCApXG5cdFx0ZmxvYXQgZG90TlYgPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5ub3JtYWwsIGdlb21ldHJ5LnZpZXdEaXIgKSApO1xuXHRcdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXIgKj0gY29tcHV0ZVNwZWN1bGFyT2NjbHVzaW9uKCBkb3ROViwgYW1iaWVudE9jY2x1c2lvbiwgbWF0ZXJpYWwucm91Z2huZXNzICk7XG5cdCNlbmRpZlxuI2VuZGlmIixhb21hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0FPTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGFvTWFwO1xuXHR1bmlmb3JtIGZsb2F0IGFvTWFwSW50ZW5zaXR5O1xuI2VuZGlmIixiZWdpbl92ZXJ0ZXg6InZlYzMgdHJhbnNmb3JtZWQgPSB2ZWMzKCBwb3NpdGlvbiApOyIsYmVnaW5ub3JtYWxfdmVydGV4OiJ2ZWMzIG9iamVjdE5vcm1hbCA9IHZlYzMoIG5vcm1hbCApO1xuI2lmZGVmIFVTRV9UQU5HRU5UXG5cdHZlYzMgb2JqZWN0VGFuZ2VudCA9IHZlYzMoIHRhbmdlbnQueHl6ICk7XG4jZW5kaWYiLGJzZGZzOiJ2ZWMzIEJSREZfTGFtYmVydCggY29uc3QgaW4gdmVjMyBkaWZmdXNlQ29sb3IgKSB7XG5cdHJldHVybiBSRUNJUFJPQ0FMX1BJICogZGlmZnVzZUNvbG9yO1xufVxudmVjMyBGX1NjaGxpY2soIGNvbnN0IGluIHZlYzMgZjAsIGNvbnN0IGluIGZsb2F0IGY5MCwgY29uc3QgaW4gZmxvYXQgZG90VkggKSB7XG5cdGZsb2F0IGZyZXNuZWwgPSBleHAyKCAoIC0gNS41NTQ3MyAqIGRvdFZIIC0gNi45ODMxNiApICogZG90VkggKTtcblx0cmV0dXJuIGYwICogKCAxLjAgLSBmcmVzbmVsICkgKyAoIGY5MCAqIGZyZXNuZWwgKTtcbn1cbmZsb2F0IFZfR0dYX1NtaXRoQ29ycmVsYXRlZCggY29uc3QgaW4gZmxvYXQgYWxwaGEsIGNvbnN0IGluIGZsb2F0IGRvdE5MLCBjb25zdCBpbiBmbG9hdCBkb3ROViApIHtcblx0ZmxvYXQgYTIgPSBwb3cyKCBhbHBoYSApO1xuXHRmbG9hdCBndiA9IGRvdE5MICogc3FydCggYTIgKyAoIDEuMCAtIGEyICkgKiBwb3cyKCBkb3ROViApICk7XG5cdGZsb2F0IGdsID0gZG90TlYgKiBzcXJ0KCBhMiArICggMS4wIC0gYTIgKSAqIHBvdzIoIGRvdE5MICkgKTtcblx0cmV0dXJuIDAuNSAvIG1heCggZ3YgKyBnbCwgRVBTSUxPTiApO1xufVxuZmxvYXQgRF9HR1goIGNvbnN0IGluIGZsb2F0IGFscGhhLCBjb25zdCBpbiBmbG9hdCBkb3ROSCApIHtcblx0ZmxvYXQgYTIgPSBwb3cyKCBhbHBoYSApO1xuXHRmbG9hdCBkZW5vbSA9IHBvdzIoIGRvdE5IICkgKiAoIGEyIC0gMS4wICkgKyAxLjA7XG5cdHJldHVybiBSRUNJUFJPQ0FMX1BJICogYTIgLyBwb3cyKCBkZW5vbSApO1xufVxudmVjMyBCUkRGX0dHWCggY29uc3QgaW4gdmVjMyBsaWdodERpciwgY29uc3QgaW4gdmVjMyB2aWV3RGlyLCBjb25zdCBpbiB2ZWMzIG5vcm1hbCwgY29uc3QgaW4gdmVjMyBmMCwgY29uc3QgaW4gZmxvYXQgZjkwLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdGZsb2F0IGFscGhhID0gcG93Miggcm91Z2huZXNzICk7XG5cdHZlYzMgaGFsZkRpciA9IG5vcm1hbGl6ZSggbGlnaHREaXIgKyB2aWV3RGlyICk7XG5cdGZsb2F0IGRvdE5MID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCBsaWdodERpciApICk7XG5cdGZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCB2aWV3RGlyICkgKTtcblx0ZmxvYXQgZG90TkggPSBzYXR1cmF0ZSggZG90KCBub3JtYWwsIGhhbGZEaXIgKSApO1xuXHRmbG9hdCBkb3RWSCA9IHNhdHVyYXRlKCBkb3QoIHZpZXdEaXIsIGhhbGZEaXIgKSApO1xuXHR2ZWMzIEYgPSBGX1NjaGxpY2soIGYwLCBmOTAsIGRvdFZIICk7XG5cdGZsb2F0IFYgPSBWX0dHWF9TbWl0aENvcnJlbGF0ZWQoIGFscGhhLCBkb3ROTCwgZG90TlYgKTtcblx0ZmxvYXQgRCA9IERfR0dYKCBhbHBoYSwgZG90TkggKTtcblx0cmV0dXJuIEYgKiAoIFYgKiBEICk7XG59XG52ZWMyIExUQ19VdiggY29uc3QgaW4gdmVjMyBOLCBjb25zdCBpbiB2ZWMzIFYsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHtcblx0Y29uc3QgZmxvYXQgTFVUX1NJWkUgPSA2NC4wO1xuXHRjb25zdCBmbG9hdCBMVVRfU0NBTEUgPSAoIExVVF9TSVpFIC0gMS4wICkgLyBMVVRfU0laRTtcblx0Y29uc3QgZmxvYXQgTFVUX0JJQVMgPSAwLjUgLyBMVVRfU0laRTtcblx0ZmxvYXQgZG90TlYgPSBzYXR1cmF0ZSggZG90KCBOLCBWICkgKTtcblx0dmVjMiB1diA9IHZlYzIoIHJvdWdobmVzcywgc3FydCggMS4wIC0gZG90TlYgKSApO1xuXHR1diA9IHV2ICogTFVUX1NDQUxFICsgTFVUX0JJQVM7XG5cdHJldHVybiB1djtcbn1cbmZsb2F0IExUQ19DbGlwcGVkU3BoZXJlRm9ybUZhY3RvciggY29uc3QgaW4gdmVjMyBmICkge1xuXHRmbG9hdCBsID0gbGVuZ3RoKCBmICk7XG5cdHJldHVybiBtYXgoICggbCAqIGwgKyBmLnogKSAvICggbCArIDEuMCApLCAwLjAgKTtcbn1cbnZlYzMgTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb25zdCBpbiB2ZWMzIHYxLCBjb25zdCBpbiB2ZWMzIHYyICkge1xuXHRmbG9hdCB4ID0gZG90KCB2MSwgdjIgKTtcblx0ZmxvYXQgeSA9IGFicyggeCApO1xuXHRmbG9hdCBhID0gMC44NTQzOTg1ICsgKCAwLjQ5NjUxNTUgKyAwLjAxNDUyMDYgKiB5ICkgKiB5O1xuXHRmbG9hdCBiID0gMy40MTc1OTQwICsgKCA0LjE2MTY3MjQgKyB5ICkgKiB5O1xuXHRmbG9hdCB2ID0gYSAvIGI7XG5cdGZsb2F0IHRoZXRhX3NpbnRoZXRhID0gKCB4ID4gMC4wICkgPyB2IDogMC41ICogaW52ZXJzZXNxcnQoIG1heCggMS4wIC0geCAqIHgsIDFlLTcgKSApIC0gdjtcblx0cmV0dXJuIGNyb3NzKCB2MSwgdjIgKSAqIHRoZXRhX3NpbnRoZXRhO1xufVxudmVjMyBMVENfRXZhbHVhdGUoIGNvbnN0IGluIHZlYzMgTiwgY29uc3QgaW4gdmVjMyBWLCBjb25zdCBpbiB2ZWMzIFAsIGNvbnN0IGluIG1hdDMgbUludiwgY29uc3QgaW4gdmVjMyByZWN0Q29vcmRzWyA0IF0gKSB7XG5cdHZlYzMgdjEgPSByZWN0Q29vcmRzWyAxIF0gLSByZWN0Q29vcmRzWyAwIF07XG5cdHZlYzMgdjIgPSByZWN0Q29vcmRzWyAzIF0gLSByZWN0Q29vcmRzWyAwIF07XG5cdHZlYzMgbGlnaHROb3JtYWwgPSBjcm9zcyggdjEsIHYyICk7XG5cdGlmKCBkb3QoIGxpZ2h0Tm9ybWFsLCBQIC0gcmVjdENvb3Jkc1sgMCBdICkgPCAwLjAgKSByZXR1cm4gdmVjMyggMC4wICk7XG5cdHZlYzMgVDEsIFQyO1xuXHRUMSA9IG5vcm1hbGl6ZSggViAtIE4gKiBkb3QoIFYsIE4gKSApO1xuXHRUMiA9IC0gY3Jvc3MoIE4sIFQxICk7XG5cdG1hdDMgbWF0ID0gbUludiAqIHRyYW5zcG9zZU1hdDMoIG1hdDMoIFQxLCBUMiwgTiApICk7XG5cdHZlYzMgY29vcmRzWyA0IF07XG5cdGNvb3Jkc1sgMCBdID0gbWF0ICogKCByZWN0Q29vcmRzWyAwIF0gLSBQICk7XG5cdGNvb3Jkc1sgMSBdID0gbWF0ICogKCByZWN0Q29vcmRzWyAxIF0gLSBQICk7XG5cdGNvb3Jkc1sgMiBdID0gbWF0ICogKCByZWN0Q29vcmRzWyAyIF0gLSBQICk7XG5cdGNvb3Jkc1sgMyBdID0gbWF0ICogKCByZWN0Q29vcmRzWyAzIF0gLSBQICk7XG5cdGNvb3Jkc1sgMCBdID0gbm9ybWFsaXplKCBjb29yZHNbIDAgXSApO1xuXHRjb29yZHNbIDEgXSA9IG5vcm1hbGl6ZSggY29vcmRzWyAxIF0gKTtcblx0Y29vcmRzWyAyIF0gPSBub3JtYWxpemUoIGNvb3Jkc1sgMiBdICk7XG5cdGNvb3Jkc1sgMyBdID0gbm9ybWFsaXplKCBjb29yZHNbIDMgXSApO1xuXHR2ZWMzIHZlY3RvckZvcm1GYWN0b3IgPSB2ZWMzKCAwLjAgKTtcblx0dmVjdG9yRm9ybUZhY3RvciArPSBMVENfRWRnZVZlY3RvckZvcm1GYWN0b3IoIGNvb3Jkc1sgMCBdLCBjb29yZHNbIDEgXSApO1xuXHR2ZWN0b3JGb3JtRmFjdG9yICs9IExUQ19FZGdlVmVjdG9yRm9ybUZhY3RvciggY29vcmRzWyAxIF0sIGNvb3Jkc1sgMiBdICk7XG5cdHZlY3RvckZvcm1GYWN0b3IgKz0gTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb29yZHNbIDIgXSwgY29vcmRzWyAzIF0gKTtcblx0dmVjdG9yRm9ybUZhY3RvciArPSBMVENfRWRnZVZlY3RvckZvcm1GYWN0b3IoIGNvb3Jkc1sgMyBdLCBjb29yZHNbIDAgXSApO1xuXHRmbG9hdCByZXN1bHQgPSBMVENfQ2xpcHBlZFNwaGVyZUZvcm1GYWN0b3IoIHZlY3RvckZvcm1GYWN0b3IgKTtcblx0cmV0dXJuIHZlYzMoIHJlc3VsdCApO1xufVxuZmxvYXQgR19CbGlublBob25nX0ltcGxpY2l0KCApIHtcblx0cmV0dXJuIDAuMjU7XG59XG5mbG9hdCBEX0JsaW5uUGhvbmcoIGNvbnN0IGluIGZsb2F0IHNoaW5pbmVzcywgY29uc3QgaW4gZmxvYXQgZG90TkggKSB7XG5cdHJldHVybiBSRUNJUFJPQ0FMX1BJICogKCBzaGluaW5lc3MgKiAwLjUgKyAxLjAgKSAqIHBvdyggZG90TkgsIHNoaW5pbmVzcyApO1xufVxudmVjMyBCUkRGX0JsaW5uUGhvbmcoIGNvbnN0IGluIHZlYzMgbGlnaHREaXIsIGNvbnN0IGluIHZlYzMgdmlld0RpciwgY29uc3QgaW4gdmVjMyBub3JtYWwsIGNvbnN0IGluIHZlYzMgc3BlY3VsYXJDb2xvciwgY29uc3QgaW4gZmxvYXQgc2hpbmluZXNzICkge1xuXHR2ZWMzIGhhbGZEaXIgPSBub3JtYWxpemUoIGxpZ2h0RGlyICsgdmlld0RpciApO1xuXHRmbG9hdCBkb3ROSCA9IHNhdHVyYXRlKCBkb3QoIG5vcm1hbCwgaGFsZkRpciApICk7XG5cdGZsb2F0IGRvdFZIID0gc2F0dXJhdGUoIGRvdCggdmlld0RpciwgaGFsZkRpciApICk7XG5cdHZlYzMgRiA9IEZfU2NobGljayggc3BlY3VsYXJDb2xvciwgMS4wLCBkb3RWSCApO1xuXHRmbG9hdCBHID0gR19CbGlublBob25nX0ltcGxpY2l0KCApO1xuXHRmbG9hdCBEID0gRF9CbGlublBob25nKCBzaGluaW5lc3MsIGRvdE5IICk7XG5cdHJldHVybiBGICogKCBHICogRCApO1xufVxuI2lmIGRlZmluZWQoIFVTRV9TSEVFTiApXG5mbG9hdCBEX0NoYXJsaWUoIGZsb2F0IHJvdWdobmVzcywgZmxvYXQgZG90TkggKSB7XG5cdGZsb2F0IGFscGhhID0gcG93Miggcm91Z2huZXNzICk7XG5cdGZsb2F0IGludkFscGhhID0gMS4wIC8gYWxwaGE7XG5cdGZsb2F0IGNvczJoID0gZG90TkggKiBkb3ROSDtcblx0ZmxvYXQgc2luMmggPSBtYXgoIDEuMCAtIGNvczJoLCAwLjAwNzgxMjUgKTtcblx0cmV0dXJuICggMi4wICsgaW52QWxwaGEgKSAqIHBvdyggc2luMmgsIGludkFscGhhICogMC41ICkgLyAoIDIuMCAqIFBJICk7XG59XG5mbG9hdCBWX05ldWJlbHQoIGZsb2F0IGRvdE5WLCBmbG9hdCBkb3ROTCApIHtcblx0cmV0dXJuIHNhdHVyYXRlKCAxLjAgLyAoIDQuMCAqICggZG90TkwgKyBkb3ROViAtIGRvdE5MICogZG90TlYgKSApICk7XG59XG52ZWMzIEJSREZfU2hlZW4oIGNvbnN0IGluIHZlYzMgbGlnaHREaXIsIGNvbnN0IGluIHZlYzMgdmlld0RpciwgY29uc3QgaW4gdmVjMyBub3JtYWwsIHZlYzMgc2hlZW5Db2xvciwgY29uc3QgaW4gZmxvYXQgc2hlZW5Sb3VnaG5lc3MgKSB7XG5cdHZlYzMgaGFsZkRpciA9IG5vcm1hbGl6ZSggbGlnaHREaXIgKyB2aWV3RGlyICk7XG5cdGZsb2F0IGRvdE5MID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCBsaWdodERpciApICk7XG5cdGZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCB2aWV3RGlyICkgKTtcblx0ZmxvYXQgZG90TkggPSBzYXR1cmF0ZSggZG90KCBub3JtYWwsIGhhbGZEaXIgKSApO1xuXHRmbG9hdCBEID0gRF9DaGFybGllKCBzaGVlblJvdWdobmVzcywgZG90TkggKTtcblx0ZmxvYXQgViA9IFZfTmV1YmVsdCggZG90TlYsIGRvdE5MICk7XG5cdHJldHVybiBzaGVlbkNvbG9yICogKCBEICogViApO1xufVxuI2VuZGlmIixidW1wbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfQlVNUE1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBidW1wTWFwO1xuXHR1bmlmb3JtIGZsb2F0IGJ1bXBTY2FsZTtcblx0dmVjMiBkSGR4eV9md2QoKSB7XG5cdFx0dmVjMiBkU1RkeCA9IGRGZHgoIHZVdiApO1xuXHRcdHZlYzIgZFNUZHkgPSBkRmR5KCB2VXYgKTtcblx0XHRmbG9hdCBIbGwgPSBidW1wU2NhbGUgKiB0ZXh0dXJlMkQoIGJ1bXBNYXAsIHZVdiApLng7XG5cdFx0ZmxvYXQgZEJ4ID0gYnVtcFNjYWxlICogdGV4dHVyZTJEKCBidW1wTWFwLCB2VXYgKyBkU1RkeCApLnggLSBIbGw7XG5cdFx0ZmxvYXQgZEJ5ID0gYnVtcFNjYWxlICogdGV4dHVyZTJEKCBidW1wTWFwLCB2VXYgKyBkU1RkeSApLnggLSBIbGw7XG5cdFx0cmV0dXJuIHZlYzIoIGRCeCwgZEJ5ICk7XG5cdH1cblx0dmVjMyBwZXJ0dXJiTm9ybWFsQXJiKCB2ZWMzIHN1cmZfcG9zLCB2ZWMzIHN1cmZfbm9ybSwgdmVjMiBkSGR4eSwgZmxvYXQgZmFjZURpcmVjdGlvbiApIHtcblx0XHR2ZWMzIHZTaWdtYVggPSB2ZWMzKCBkRmR4KCBzdXJmX3Bvcy54ICksIGRGZHgoIHN1cmZfcG9zLnkgKSwgZEZkeCggc3VyZl9wb3MueiApICk7XG5cdFx0dmVjMyB2U2lnbWFZID0gdmVjMyggZEZkeSggc3VyZl9wb3MueCApLCBkRmR5KCBzdXJmX3Bvcy55ICksIGRGZHkoIHN1cmZfcG9zLnogKSApO1xuXHRcdHZlYzMgdk4gPSBzdXJmX25vcm07XG5cdFx0dmVjMyBSMSA9IGNyb3NzKCB2U2lnbWFZLCB2TiApO1xuXHRcdHZlYzMgUjIgPSBjcm9zcyggdk4sIHZTaWdtYVggKTtcblx0XHRmbG9hdCBmRGV0ID0gZG90KCB2U2lnbWFYLCBSMSApICogZmFjZURpcmVjdGlvbjtcblx0XHR2ZWMzIHZHcmFkID0gc2lnbiggZkRldCApICogKCBkSGR4eS54ICogUjEgKyBkSGR4eS55ICogUjIgKTtcblx0XHRyZXR1cm4gbm9ybWFsaXplKCBhYnMoIGZEZXQgKSAqIHN1cmZfbm9ybSAtIHZHcmFkICk7XG5cdH1cbiNlbmRpZiIsY2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50OiIjaWYgTlVNX0NMSVBQSU5HX1BMQU5FUyA+IDBcblx0dmVjNCBwbGFuZTtcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBVTklPTl9DTElQUElOR19QTEFORVM7IGkgKysgKSB7XG5cdFx0cGxhbmUgPSBjbGlwcGluZ1BsYW5lc1sgaSBdO1xuXHRcdGlmICggZG90KCB2Q2xpcFBvc2l0aW9uLCBwbGFuZS54eXogKSA+IHBsYW5lLncgKSBkaXNjYXJkO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNpZiBVTklPTl9DTElQUElOR19QTEFORVMgPCBOVU1fQ0xJUFBJTkdfUExBTkVTXG5cdFx0Ym9vbCBjbGlwcGVkID0gdHJ1ZTtcblx0XHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdFx0Zm9yICggaW50IGkgPSBVTklPTl9DTElQUElOR19QTEFORVM7IGkgPCBOVU1fQ0xJUFBJTkdfUExBTkVTOyBpICsrICkge1xuXHRcdFx0cGxhbmUgPSBjbGlwcGluZ1BsYW5lc1sgaSBdO1xuXHRcdFx0Y2xpcHBlZCA9ICggZG90KCB2Q2xpcFBvc2l0aW9uLCBwbGFuZS54eXogKSA+IHBsYW5lLncgKSAmJiBjbGlwcGVkO1xuXHRcdH1cblx0XHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHRcdGlmICggY2xpcHBlZCApIGRpc2NhcmQ7XG5cdCNlbmRpZlxuI2VuZGlmIixjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudDoiI2lmIE5VTV9DTElQUElOR19QTEFORVMgPiAwXG5cdHZhcnlpbmcgdmVjMyB2Q2xpcFBvc2l0aW9uO1xuXHR1bmlmb3JtIHZlYzQgY2xpcHBpbmdQbGFuZXNbIE5VTV9DTElQUElOR19QTEFORVMgXTtcbiNlbmRpZiIsY2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4OiIjaWYgTlVNX0NMSVBQSU5HX1BMQU5FUyA+IDBcblx0dmFyeWluZyB2ZWMzIHZDbGlwUG9zaXRpb247XG4jZW5kaWYiLGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg6IiNpZiBOVU1fQ0xJUFBJTkdfUExBTkVTID4gMFxuXHR2Q2xpcFBvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcbiNlbmRpZiIsY29sb3JfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKVxuXHRkaWZmdXNlQ29sb3IgKj0gdkNvbG9yO1xuI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SIClcblx0ZGlmZnVzZUNvbG9yLnJnYiAqPSB2Q29sb3I7XG4jZW5kaWYiLGNvbG9yX3BhcnNfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKVxuXHR2YXJ5aW5nIHZlYzQgdkNvbG9yO1xuI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SIClcblx0dmFyeWluZyB2ZWMzIHZDb2xvcjtcbiNlbmRpZiIsY29sb3JfcGFyc192ZXJ0ZXg6IiNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKVxuXHR2YXJ5aW5nIHZlYzQgdkNvbG9yO1xuI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SICkgfHwgZGVmaW5lZCggVVNFX0lOU1RBTkNJTkdfQ09MT1IgKVxuXHR2YXJ5aW5nIHZlYzMgdkNvbG9yO1xuI2VuZGlmIixjb2xvcl92ZXJ0ZXg6IiNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKVxuXHR2Q29sb3IgPSB2ZWM0KCAxLjAgKTtcbiNlbGlmIGRlZmluZWQoIFVTRV9DT0xPUiApIHx8IGRlZmluZWQoIFVTRV9JTlNUQU5DSU5HX0NPTE9SIClcblx0dkNvbG9yID0gdmVjMyggMS4wICk7XG4jZW5kaWZcbiNpZmRlZiBVU0VfQ09MT1Jcblx0dkNvbG9yICo9IGNvbG9yO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0lOU1RBTkNJTkdfQ09MT1Jcblx0dkNvbG9yLnh5eiAqPSBpbnN0YW5jZUNvbG9yLnh5ejtcbiNlbmRpZiIsY29tbW9uOiIjZGVmaW5lIFBJIDMuMTQxNTkyNjUzNTg5NzkzXG4jZGVmaW5lIFBJMiA2LjI4MzE4NTMwNzE3OTU4NlxuI2RlZmluZSBQSV9IQUxGIDEuNTcwNzk2MzI2Nzk0ODk2NlxuI2RlZmluZSBSRUNJUFJPQ0FMX1BJIDAuMzE4MzA5ODg2MTgzNzkwN1xuI2RlZmluZSBSRUNJUFJPQ0FMX1BJMiAwLjE1OTE1NDk0MzA5MTg5NTM1XG4jZGVmaW5lIEVQU0lMT04gMWUtNlxuI2lmbmRlZiBzYXR1cmF0ZVxuI2RlZmluZSBzYXR1cmF0ZSggYSApIGNsYW1wKCBhLCAwLjAsIDEuMCApXG4jZW5kaWZcbiNkZWZpbmUgd2hpdGVDb21wbGVtZW50KCBhICkgKCAxLjAgLSBzYXR1cmF0ZSggYSApIClcbmZsb2F0IHBvdzIoIGNvbnN0IGluIGZsb2F0IHggKSB7IHJldHVybiB4Kng7IH1cbmZsb2F0IHBvdzMoIGNvbnN0IGluIGZsb2F0IHggKSB7IHJldHVybiB4KngqeDsgfVxuZmxvYXQgcG93NCggY29uc3QgaW4gZmxvYXQgeCApIHsgZmxvYXQgeDIgPSB4Kng7IHJldHVybiB4Mip4MjsgfVxuZmxvYXQgbWF4MyggY29uc3QgaW4gdmVjMyB2ICkgeyByZXR1cm4gbWF4KCBtYXgoIHYueCwgdi55ICksIHYueiApOyB9XG5mbG9hdCBhdmVyYWdlKCBjb25zdCBpbiB2ZWMzIGNvbG9yICkgeyByZXR1cm4gZG90KCBjb2xvciwgdmVjMyggMC4zMzMzICkgKTsgfVxuaGlnaHAgZmxvYXQgcmFuZCggY29uc3QgaW4gdmVjMiB1diApIHtcblx0Y29uc3QgaGlnaHAgZmxvYXQgYSA9IDEyLjk4OTgsIGIgPSA3OC4yMzMsIGMgPSA0Mzc1OC41NDUzO1xuXHRoaWdocCBmbG9hdCBkdCA9IGRvdCggdXYueHksIHZlYzIoIGEsYiApICksIHNuID0gbW9kKCBkdCwgUEkgKTtcblx0cmV0dXJuIGZyYWN0KCBzaW4oIHNuICkgKiBjICk7XG59XG4jaWZkZWYgSElHSF9QUkVDSVNJT05cblx0ZmxvYXQgcHJlY2lzaW9uU2FmZUxlbmd0aCggdmVjMyB2ICkgeyByZXR1cm4gbGVuZ3RoKCB2ICk7IH1cbiNlbHNlXG5cdGZsb2F0IHByZWNpc2lvblNhZmVMZW5ndGgoIHZlYzMgdiApIHtcblx0XHRmbG9hdCBtYXhDb21wb25lbnQgPSBtYXgzKCBhYnMoIHYgKSApO1xuXHRcdHJldHVybiBsZW5ndGgoIHYgLyBtYXhDb21wb25lbnQgKSAqIG1heENvbXBvbmVudDtcblx0fVxuI2VuZGlmXG5zdHJ1Y3QgSW5jaWRlbnRMaWdodCB7XG5cdHZlYzMgY29sb3I7XG5cdHZlYzMgZGlyZWN0aW9uO1xuXHRib29sIHZpc2libGU7XG59O1xuc3RydWN0IFJlZmxlY3RlZExpZ2h0IHtcblx0dmVjMyBkaXJlY3REaWZmdXNlO1xuXHR2ZWMzIGRpcmVjdFNwZWN1bGFyO1xuXHR2ZWMzIGluZGlyZWN0RGlmZnVzZTtcblx0dmVjMyBpbmRpcmVjdFNwZWN1bGFyO1xufTtcbnN0cnVjdCBHZW9tZXRyaWNDb250ZXh0IHtcblx0dmVjMyBwb3NpdGlvbjtcblx0dmVjMyBub3JtYWw7XG5cdHZlYzMgdmlld0RpcjtcbiNpZmRlZiBVU0VfQ0xFQVJDT0FUXG5cdHZlYzMgY2xlYXJjb2F0Tm9ybWFsO1xuI2VuZGlmXG59O1xudmVjMyB0cmFuc2Zvcm1EaXJlY3Rpb24oIGluIHZlYzMgZGlyLCBpbiBtYXQ0IG1hdHJpeCApIHtcblx0cmV0dXJuIG5vcm1hbGl6ZSggKCBtYXRyaXggKiB2ZWM0KCBkaXIsIDAuMCApICkueHl6ICk7XG59XG52ZWMzIGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIGluIHZlYzMgZGlyLCBpbiBtYXQ0IG1hdHJpeCApIHtcblx0cmV0dXJuIG5vcm1hbGl6ZSggKCB2ZWM0KCBkaXIsIDAuMCApICogbWF0cml4ICkueHl6ICk7XG59XG5tYXQzIHRyYW5zcG9zZU1hdDMoIGNvbnN0IGluIG1hdDMgbSApIHtcblx0bWF0MyB0bXA7XG5cdHRtcFsgMCBdID0gdmVjMyggbVsgMCBdLngsIG1bIDEgXS54LCBtWyAyIF0ueCApO1xuXHR0bXBbIDEgXSA9IHZlYzMoIG1bIDAgXS55LCBtWyAxIF0ueSwgbVsgMiBdLnkgKTtcblx0dG1wWyAyIF0gPSB2ZWMzKCBtWyAwIF0ueiwgbVsgMSBdLnosIG1bIDIgXS56ICk7XG5cdHJldHVybiB0bXA7XG59XG5mbG9hdCBsaW5lYXJUb1JlbGF0aXZlTHVtaW5hbmNlKCBjb25zdCBpbiB2ZWMzIGNvbG9yICkge1xuXHR2ZWMzIHdlaWdodHMgPSB2ZWMzKCAwLjIxMjYsIDAuNzE1MiwgMC4wNzIyICk7XG5cdHJldHVybiBkb3QoIHdlaWdodHMsIGNvbG9yLnJnYiApO1xufVxuYm9vbCBpc1BlcnNwZWN0aXZlTWF0cml4KCBtYXQ0IG0gKSB7XG5cdHJldHVybiBtWyAyIF1bIDMgXSA9PSAtIDEuMDtcbn1cbnZlYzIgZXF1aXJlY3RVdiggaW4gdmVjMyBkaXIgKSB7XG5cdGZsb2F0IHUgPSBhdGFuKCBkaXIueiwgZGlyLnggKSAqIFJFQ0lQUk9DQUxfUEkyICsgMC41O1xuXHRmbG9hdCB2ID0gYXNpbiggY2xhbXAoIGRpci55LCAtIDEuMCwgMS4wICkgKSAqIFJFQ0lQUk9DQUxfUEkgKyAwLjU7XG5cdHJldHVybiB2ZWMyKCB1LCB2ICk7XG59IixjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ6IiNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFX1VWXG5cdCNkZWZpbmUgY3ViZVVWX21heE1pcExldmVsIDguMFxuXHQjZGVmaW5lIGN1YmVVVl9taW5NaXBMZXZlbCA0LjBcblx0I2RlZmluZSBjdWJlVVZfbWF4VGlsZVNpemUgMjU2LjBcblx0I2RlZmluZSBjdWJlVVZfbWluVGlsZVNpemUgMTYuMFxuXHRmbG9hdCBnZXRGYWNlKCB2ZWMzIGRpcmVjdGlvbiApIHtcblx0XHR2ZWMzIGFic0RpcmVjdGlvbiA9IGFicyggZGlyZWN0aW9uICk7XG5cdFx0ZmxvYXQgZmFjZSA9IC0gMS4wO1xuXHRcdGlmICggYWJzRGlyZWN0aW9uLnggPiBhYnNEaXJlY3Rpb24ueiApIHtcblx0XHRcdGlmICggYWJzRGlyZWN0aW9uLnggPiBhYnNEaXJlY3Rpb24ueSApXG5cdFx0XHRcdGZhY2UgPSBkaXJlY3Rpb24ueCA+IDAuMCA/IDAuMCA6IDMuMDtcblx0XHRcdGVsc2Vcblx0XHRcdFx0ZmFjZSA9IGRpcmVjdGlvbi55ID4gMC4wID8gMS4wIDogNC4wO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoIGFic0RpcmVjdGlvbi56ID4gYWJzRGlyZWN0aW9uLnkgKVxuXHRcdFx0XHRmYWNlID0gZGlyZWN0aW9uLnogPiAwLjAgPyAyLjAgOiA1LjA7XG5cdFx0XHRlbHNlXG5cdFx0XHRcdGZhY2UgPSBkaXJlY3Rpb24ueSA+IDAuMCA/IDEuMCA6IDQuMDtcblx0XHR9XG5cdFx0cmV0dXJuIGZhY2U7XG5cdH1cblx0dmVjMiBnZXRVViggdmVjMyBkaXJlY3Rpb24sIGZsb2F0IGZhY2UgKSB7XG5cdFx0dmVjMiB1djtcblx0XHRpZiAoIGZhY2UgPT0gMC4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCBkaXJlY3Rpb24ueiwgZGlyZWN0aW9uLnkgKSAvIGFicyggZGlyZWN0aW9uLnggKTtcblx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDEuMCApIHtcblx0XHRcdHV2ID0gdmVjMiggLSBkaXJlY3Rpb24ueCwgLSBkaXJlY3Rpb24ueiApIC8gYWJzKCBkaXJlY3Rpb24ueSApO1xuXHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMi4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCAtIGRpcmVjdGlvbi54LCBkaXJlY3Rpb24ueSApIC8gYWJzKCBkaXJlY3Rpb24ueiApO1xuXHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMy4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCAtIGRpcmVjdGlvbi56LCBkaXJlY3Rpb24ueSApIC8gYWJzKCBkaXJlY3Rpb24ueCApO1xuXHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNC4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCAtIGRpcmVjdGlvbi54LCBkaXJlY3Rpb24ueiApIC8gYWJzKCBkaXJlY3Rpb24ueSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR1diA9IHZlYzIoIGRpcmVjdGlvbi54LCBkaXJlY3Rpb24ueSApIC8gYWJzKCBkaXJlY3Rpb24ueiApO1xuXHRcdH1cblx0XHRyZXR1cm4gMC41ICogKCB1diArIDEuMCApO1xuXHR9XG5cdHZlYzMgYmlsaW5lYXJDdWJlVVYoIHNhbXBsZXIyRCBlbnZNYXAsIHZlYzMgZGlyZWN0aW9uLCBmbG9hdCBtaXBJbnQgKSB7XG5cdFx0ZmxvYXQgZmFjZSA9IGdldEZhY2UoIGRpcmVjdGlvbiApO1xuXHRcdGZsb2F0IGZpbHRlckludCA9IG1heCggY3ViZVVWX21pbk1pcExldmVsIC0gbWlwSW50LCAwLjAgKTtcblx0XHRtaXBJbnQgPSBtYXgoIG1pcEludCwgY3ViZVVWX21pbk1pcExldmVsICk7XG5cdFx0ZmxvYXQgZmFjZVNpemUgPSBleHAyKCBtaXBJbnQgKTtcblx0XHRmbG9hdCB0ZXhlbFNpemUgPSAxLjAgLyAoIDMuMCAqIGN1YmVVVl9tYXhUaWxlU2l6ZSApO1xuXHRcdHZlYzIgdXYgPSBnZXRVViggZGlyZWN0aW9uLCBmYWNlICkgKiAoIGZhY2VTaXplIC0gMS4wICkgKyAwLjU7XG5cdFx0aWYgKCBmYWNlID4gMi4wICkge1xuXHRcdFx0dXYueSArPSBmYWNlU2l6ZTtcblx0XHRcdGZhY2UgLT0gMy4wO1xuXHRcdH1cblx0XHR1di54ICs9IGZhY2UgKiBmYWNlU2l6ZTtcblx0XHRpZiAoIG1pcEludCA8IGN1YmVVVl9tYXhNaXBMZXZlbCApIHtcblx0XHRcdHV2LnkgKz0gMi4wICogY3ViZVVWX21heFRpbGVTaXplO1xuXHRcdH1cblx0XHR1di55ICs9IGZpbHRlckludCAqIDIuMCAqIGN1YmVVVl9taW5UaWxlU2l6ZTtcblx0XHR1di54ICs9IDMuMCAqIG1heCggMC4wLCBjdWJlVVZfbWF4VGlsZVNpemUgLSAyLjAgKiBmYWNlU2l6ZSApO1xuXHRcdHV2ICo9IHRleGVsU2l6ZTtcblx0XHRyZXR1cm4gdGV4dHVyZTJEKCBlbnZNYXAsIHV2ICkucmdiO1xuXHR9XG5cdCNkZWZpbmUgcjAgMS4wXG5cdCNkZWZpbmUgdjAgMC4zMzlcblx0I2RlZmluZSBtMCAtIDIuMFxuXHQjZGVmaW5lIHIxIDAuOFxuXHQjZGVmaW5lIHYxIDAuMjc2XG5cdCNkZWZpbmUgbTEgLSAxLjBcblx0I2RlZmluZSByNCAwLjRcblx0I2RlZmluZSB2NCAwLjA0NlxuXHQjZGVmaW5lIG00IDIuMFxuXHQjZGVmaW5lIHI1IDAuMzA1XG5cdCNkZWZpbmUgdjUgMC4wMTZcblx0I2RlZmluZSBtNSAzLjBcblx0I2RlZmluZSByNiAwLjIxXG5cdCNkZWZpbmUgdjYgMC4wMDM4XG5cdCNkZWZpbmUgbTYgNC4wXG5cdGZsb2F0IHJvdWdobmVzc1RvTWlwKCBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdFx0ZmxvYXQgbWlwID0gMC4wO1xuXHRcdGlmICggcm91Z2huZXNzID49IHIxICkge1xuXHRcdFx0bWlwID0gKCByMCAtIHJvdWdobmVzcyApICogKCBtMSAtIG0wICkgLyAoIHIwIC0gcjEgKSArIG0wO1xuXHRcdH0gZWxzZSBpZiAoIHJvdWdobmVzcyA+PSByNCApIHtcblx0XHRcdG1pcCA9ICggcjEgLSByb3VnaG5lc3MgKSAqICggbTQgLSBtMSApIC8gKCByMSAtIHI0ICkgKyBtMTtcblx0XHR9IGVsc2UgaWYgKCByb3VnaG5lc3MgPj0gcjUgKSB7XG5cdFx0XHRtaXAgPSAoIHI0IC0gcm91Z2huZXNzICkgKiAoIG01IC0gbTQgKSAvICggcjQgLSByNSApICsgbTQ7XG5cdFx0fSBlbHNlIGlmICggcm91Z2huZXNzID49IHI2ICkge1xuXHRcdFx0bWlwID0gKCByNSAtIHJvdWdobmVzcyApICogKCBtNiAtIG01ICkgLyAoIHI1IC0gcjYgKSArIG01O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRtaXAgPSAtIDIuMCAqIGxvZzIoIDEuMTYgKiByb3VnaG5lc3MgKTtcdFx0fVxuXHRcdHJldHVybiBtaXA7XG5cdH1cblx0dmVjNCB0ZXh0dXJlQ3ViZVVWKCBzYW1wbGVyMkQgZW52TWFwLCB2ZWMzIHNhbXBsZURpciwgZmxvYXQgcm91Z2huZXNzICkge1xuXHRcdGZsb2F0IG1pcCA9IGNsYW1wKCByb3VnaG5lc3NUb01pcCggcm91Z2huZXNzICksIG0wLCBjdWJlVVZfbWF4TWlwTGV2ZWwgKTtcblx0XHRmbG9hdCBtaXBGID0gZnJhY3QoIG1pcCApO1xuXHRcdGZsb2F0IG1pcEludCA9IGZsb29yKCBtaXAgKTtcblx0XHR2ZWMzIGNvbG9yMCA9IGJpbGluZWFyQ3ViZVVWKCBlbnZNYXAsIHNhbXBsZURpciwgbWlwSW50ICk7XG5cdFx0aWYgKCBtaXBGID09IDAuMCApIHtcblx0XHRcdHJldHVybiB2ZWM0KCBjb2xvcjAsIDEuMCApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR2ZWMzIGNvbG9yMSA9IGJpbGluZWFyQ3ViZVVWKCBlbnZNYXAsIHNhbXBsZURpciwgbWlwSW50ICsgMS4wICk7XG5cdFx0XHRyZXR1cm4gdmVjNCggbWl4KCBjb2xvcjAsIGNvbG9yMSwgbWlwRiApLCAxLjAgKTtcblx0XHR9XG5cdH1cbiNlbmRpZiIsZGVmYXVsdG5vcm1hbF92ZXJ0ZXg6InZlYzMgdHJhbnNmb3JtZWROb3JtYWwgPSBvYmplY3ROb3JtYWw7XG4jaWZkZWYgVVNFX0lOU1RBTkNJTkdcblx0bWF0MyBtID0gbWF0MyggaW5zdGFuY2VNYXRyaXggKTtcblx0dHJhbnNmb3JtZWROb3JtYWwgLz0gdmVjMyggZG90KCBtWyAwIF0sIG1bIDAgXSApLCBkb3QoIG1bIDEgXSwgbVsgMSBdICksIGRvdCggbVsgMiBdLCBtWyAyIF0gKSApO1xuXHR0cmFuc2Zvcm1lZE5vcm1hbCA9IG0gKiB0cmFuc2Zvcm1lZE5vcm1hbDtcbiNlbmRpZlxudHJhbnNmb3JtZWROb3JtYWwgPSBub3JtYWxNYXRyaXggKiB0cmFuc2Zvcm1lZE5vcm1hbDtcbiNpZmRlZiBGTElQX1NJREVEXG5cdHRyYW5zZm9ybWVkTm9ybWFsID0gLSB0cmFuc2Zvcm1lZE5vcm1hbDtcbiNlbmRpZlxuI2lmZGVmIFVTRV9UQU5HRU5UXG5cdHZlYzMgdHJhbnNmb3JtZWRUYW5nZW50ID0gKCBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KCBvYmplY3RUYW5nZW50LCAwLjAgKSApLnh5ejtcblx0I2lmZGVmIEZMSVBfU0lERURcblx0XHR0cmFuc2Zvcm1lZFRhbmdlbnQgPSAtIHRyYW5zZm9ybWVkVGFuZ2VudDtcblx0I2VuZGlmXG4jZW5kaWYiLGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9ESVNQTEFDRU1FTlRNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgZGlzcGxhY2VtZW50TWFwO1xuXHR1bmlmb3JtIGZsb2F0IGRpc3BsYWNlbWVudFNjYWxlO1xuXHR1bmlmb3JtIGZsb2F0IGRpc3BsYWNlbWVudEJpYXM7XG4jZW5kaWYiLGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg6IiNpZmRlZiBVU0VfRElTUExBQ0VNRU5UTUFQXG5cdHRyYW5zZm9ybWVkICs9IG5vcm1hbGl6ZSggb2JqZWN0Tm9ybWFsICkgKiAoIHRleHR1cmUyRCggZGlzcGxhY2VtZW50TWFwLCB2VXYgKS54ICogZGlzcGxhY2VtZW50U2NhbGUgKyBkaXNwbGFjZW1lbnRCaWFzICk7XG4jZW5kaWYiLGVtaXNzaXZlbWFwX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0VNSVNTSVZFTUFQXG5cdHZlYzQgZW1pc3NpdmVDb2xvciA9IHRleHR1cmUyRCggZW1pc3NpdmVNYXAsIHZVdiApO1xuXHR0b3RhbEVtaXNzaXZlUmFkaWFuY2UgKj0gZW1pc3NpdmVDb2xvci5yZ2I7XG4jZW5kaWYiLGVtaXNzaXZlbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfRU1JU1NJVkVNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgZW1pc3NpdmVNYXA7XG4jZW5kaWYiLGVuY29kaW5nc19mcmFnbWVudDoiZ2xfRnJhZ0NvbG9yID0gbGluZWFyVG9PdXRwdXRUZXhlbCggZ2xfRnJhZ0NvbG9yICk7IixlbmNvZGluZ3NfcGFyc19mcmFnbWVudDoidmVjNCBMaW5lYXJUb0xpbmVhciggaW4gdmVjNCB2YWx1ZSApIHtcblx0cmV0dXJuIHZhbHVlO1xufVxudmVjNCBMaW5lYXJUb3NSR0IoIGluIHZlYzQgdmFsdWUgKSB7XG5cdHJldHVybiB2ZWM0KCBtaXgoIHBvdyggdmFsdWUucmdiLCB2ZWMzKCAwLjQxNjY2ICkgKSAqIDEuMDU1IC0gdmVjMyggMC4wNTUgKSwgdmFsdWUucmdiICogMTIuOTIsIHZlYzMoIGxlc3NUaGFuRXF1YWwoIHZhbHVlLnJnYiwgdmVjMyggMC4wMDMxMzA4ICkgKSApICksIHZhbHVlLmEgKTtcbn0iLGVudm1hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9FTlZNQVBcblx0I2lmZGVmIEVOVl9XT1JMRFBPU1xuXHRcdHZlYzMgY2FtZXJhVG9GcmFnO1xuXHRcdGlmICggaXNPcnRob2dyYXBoaWMgKSB7XG5cdFx0XHRjYW1lcmFUb0ZyYWcgPSBub3JtYWxpemUoIHZlYzMoIC0gdmlld01hdHJpeFsgMCBdWyAyIF0sIC0gdmlld01hdHJpeFsgMSBdWyAyIF0sIC0gdmlld01hdHJpeFsgMiBdWyAyIF0gKSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjYW1lcmFUb0ZyYWcgPSBub3JtYWxpemUoIHZXb3JsZFBvc2l0aW9uIC0gY2FtZXJhUG9zaXRpb24gKTtcblx0XHR9XG5cdFx0dmVjMyB3b3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIG5vcm1hbCwgdmlld01hdHJpeCApO1xuXHRcdCNpZmRlZiBFTlZNQVBfTU9ERV9SRUZMRUNUSU9OXG5cdFx0XHR2ZWMzIHJlZmxlY3RWZWMgPSByZWZsZWN0KCBjYW1lcmFUb0ZyYWcsIHdvcmxkTm9ybWFsICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHZlYzMgcmVmbGVjdFZlYyA9IHJlZnJhY3QoIGNhbWVyYVRvRnJhZywgd29ybGROb3JtYWwsIHJlZnJhY3Rpb25SYXRpbyApO1xuXHRcdCNlbmRpZlxuXHQjZWxzZVxuXHRcdHZlYzMgcmVmbGVjdFZlYyA9IHZSZWZsZWN0O1xuXHQjZW5kaWZcblx0I2lmZGVmIEVOVk1BUF9UWVBFX0NVQkVcblx0XHR2ZWM0IGVudkNvbG9yID0gdGV4dHVyZUN1YmUoIGVudk1hcCwgdmVjMyggZmxpcEVudk1hcCAqIHJlZmxlY3RWZWMueCwgcmVmbGVjdFZlYy55eiApICk7XG5cdCNlbGlmIGRlZmluZWQoIEVOVk1BUF9UWVBFX0NVQkVfVVYgKVxuXHRcdHZlYzQgZW52Q29sb3IgPSB0ZXh0dXJlQ3ViZVVWKCBlbnZNYXAsIHJlZmxlY3RWZWMsIDAuMCApO1xuXHQjZWxzZVxuXHRcdHZlYzQgZW52Q29sb3IgPSB2ZWM0KCAwLjAgKTtcblx0I2VuZGlmXG5cdCNpZmRlZiBFTlZNQVBfQkxFTkRJTkdfTVVMVElQTFlcblx0XHRvdXRnb2luZ0xpZ2h0ID0gbWl4KCBvdXRnb2luZ0xpZ2h0LCBvdXRnb2luZ0xpZ2h0ICogZW52Q29sb3IueHl6LCBzcGVjdWxhclN0cmVuZ3RoICogcmVmbGVjdGl2aXR5ICk7XG5cdCNlbGlmIGRlZmluZWQoIEVOVk1BUF9CTEVORElOR19NSVggKVxuXHRcdG91dGdvaW5nTGlnaHQgPSBtaXgoIG91dGdvaW5nTGlnaHQsIGVudkNvbG9yLnh5eiwgc3BlY3VsYXJTdHJlbmd0aCAqIHJlZmxlY3Rpdml0eSApO1xuXHQjZWxpZiBkZWZpbmVkKCBFTlZNQVBfQkxFTkRJTkdfQUREIClcblx0XHRvdXRnb2luZ0xpZ2h0ICs9IGVudkNvbG9yLnh5eiAqIHNwZWN1bGFyU3RyZW5ndGggKiByZWZsZWN0aXZpdHk7XG5cdCNlbmRpZlxuI2VuZGlmIixlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfRU5WTUFQXG5cdHVuaWZvcm0gZmxvYXQgZW52TWFwSW50ZW5zaXR5O1xuXHR1bmlmb3JtIGZsb2F0IGZsaXBFbnZNYXA7XG5cdCNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFXG5cdFx0dW5pZm9ybSBzYW1wbGVyQ3ViZSBlbnZNYXA7XG5cdCNlbHNlXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgZW52TWFwO1xuXHQjZW5kaWZcblx0XG4jZW5kaWYiLGVudm1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0VOVk1BUFxuXHR1bmlmb3JtIGZsb2F0IHJlZmxlY3Rpdml0eTtcblx0I2lmIGRlZmluZWQoIFVTRV9CVU1QTUFQICkgfHwgZGVmaW5lZCggVVNFX05PUk1BTE1BUCApIHx8IGRlZmluZWQoIFBIT05HIClcblx0XHQjZGVmaW5lIEVOVl9XT1JMRFBPU1xuXHQjZW5kaWZcblx0I2lmZGVmIEVOVl9XT1JMRFBPU1xuXHRcdHZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjtcblx0XHR1bmlmb3JtIGZsb2F0IHJlZnJhY3Rpb25SYXRpbztcblx0I2Vsc2Vcblx0XHR2YXJ5aW5nIHZlYzMgdlJlZmxlY3Q7XG5cdCNlbmRpZlxuI2VuZGlmIixlbnZtYXBfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfRU5WTUFQXG5cdCNpZiBkZWZpbmVkKCBVU0VfQlVNUE1BUCApIHx8IGRlZmluZWQoIFVTRV9OT1JNQUxNQVAgKSB8fGRlZmluZWQoIFBIT05HIClcblx0XHQjZGVmaW5lIEVOVl9XT1JMRFBPU1xuXHQjZW5kaWZcblx0I2lmZGVmIEVOVl9XT1JMRFBPU1xuXHRcdFxuXHRcdHZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjtcblx0I2Vsc2Vcblx0XHR2YXJ5aW5nIHZlYzMgdlJlZmxlY3Q7XG5cdFx0dW5pZm9ybSBmbG9hdCByZWZyYWN0aW9uUmF0aW87XG5cdCNlbmRpZlxuI2VuZGlmIixlbnZtYXBfcGh5c2ljYWxfcGFyc19mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9FTlZNQVAgKVxuXHQjaWZkZWYgRU5WTUFQX01PREVfUkVGUkFDVElPTlxuXHRcdHVuaWZvcm0gZmxvYXQgcmVmcmFjdGlvblJhdGlvO1xuXHQjZW5kaWZcblx0dmVjMyBnZXRJQkxJcnJhZGlhbmNlKCBjb25zdCBpbiB2ZWMzIG5vcm1hbCApIHtcblx0XHQjaWYgZGVmaW5lZCggRU5WTUFQX1RZUEVfQ1VCRV9VViApXG5cdFx0XHR2ZWMzIHdvcmxkTm9ybWFsID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggbm9ybWFsLCB2aWV3TWF0cml4ICk7XG5cdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdGV4dHVyZUN1YmVVViggZW52TWFwLCB3b3JsZE5vcm1hbCwgMS4wICk7XG5cdFx0XHRyZXR1cm4gUEkgKiBlbnZNYXBDb2xvci5yZ2IgKiBlbnZNYXBJbnRlbnNpdHk7XG5cdFx0I2Vsc2Vcblx0XHRcdHJldHVybiB2ZWMzKCAwLjAgKTtcblx0XHQjZW5kaWZcblx0fVxuXHR2ZWMzIGdldElCTFJhZGlhbmNlKCBjb25zdCBpbiB2ZWMzIHZpZXdEaXIsIGNvbnN0IGluIHZlYzMgbm9ybWFsLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdFx0I2lmIGRlZmluZWQoIEVOVk1BUF9UWVBFX0NVQkVfVVYgKVxuXHRcdFx0dmVjMyByZWZsZWN0VmVjO1xuXHRcdFx0I2lmZGVmIEVOVk1BUF9NT0RFX1JFRkxFQ1RJT05cblx0XHRcdFx0cmVmbGVjdFZlYyA9IHJlZmxlY3QoIC0gdmlld0Rpciwgbm9ybWFsICk7XG5cdFx0XHRcdHJlZmxlY3RWZWMgPSBub3JtYWxpemUoIG1peCggcmVmbGVjdFZlYywgbm9ybWFsLCByb3VnaG5lc3MgKiByb3VnaG5lc3MpICk7XG5cdFx0XHQjZWxzZVxuXHRcdFx0XHRyZWZsZWN0VmVjID0gcmVmcmFjdCggLSB2aWV3RGlyLCBub3JtYWwsIHJlZnJhY3Rpb25SYXRpbyApO1xuXHRcdFx0I2VuZGlmXG5cdFx0XHRyZWZsZWN0VmVjID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggcmVmbGVjdFZlYywgdmlld01hdHJpeCApO1xuXHRcdFx0dmVjNCBlbnZNYXBDb2xvciA9IHRleHR1cmVDdWJlVVYoIGVudk1hcCwgcmVmbGVjdFZlYywgcm91Z2huZXNzICk7XG5cdFx0XHRyZXR1cm4gZW52TWFwQ29sb3IucmdiICogZW52TWFwSW50ZW5zaXR5O1xuXHRcdCNlbHNlXG5cdFx0XHRyZXR1cm4gdmVjMyggMC4wICk7XG5cdFx0I2VuZGlmXG5cdH1cbiNlbmRpZiIsZW52bWFwX3ZlcnRleDoiI2lmZGVmIFVTRV9FTlZNQVBcblx0I2lmZGVmIEVOVl9XT1JMRFBPU1xuXHRcdHZXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbi54eXo7XG5cdCNlbHNlXG5cdFx0dmVjMyBjYW1lcmFUb1ZlcnRleDtcblx0XHRpZiAoIGlzT3J0aG9ncmFwaGljICkge1xuXHRcdFx0Y2FtZXJhVG9WZXJ0ZXggPSBub3JtYWxpemUoIHZlYzMoIC0gdmlld01hdHJpeFsgMCBdWyAyIF0sIC0gdmlld01hdHJpeFsgMSBdWyAyIF0sIC0gdmlld01hdHJpeFsgMiBdWyAyIF0gKSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjYW1lcmFUb1ZlcnRleCA9IG5vcm1hbGl6ZSggd29ybGRQb3NpdGlvbi54eXogLSBjYW1lcmFQb3NpdGlvbiApO1xuXHRcdH1cblx0XHR2ZWMzIHdvcmxkTm9ybWFsID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggdHJhbnNmb3JtZWROb3JtYWwsIHZpZXdNYXRyaXggKTtcblx0XHQjaWZkZWYgRU5WTUFQX01PREVfUkVGTEVDVElPTlxuXHRcdFx0dlJlZmxlY3QgPSByZWZsZWN0KCBjYW1lcmFUb1ZlcnRleCwgd29ybGROb3JtYWwgKTtcblx0XHQjZWxzZVxuXHRcdFx0dlJlZmxlY3QgPSByZWZyYWN0KCBjYW1lcmFUb1ZlcnRleCwgd29ybGROb3JtYWwsIHJlZnJhY3Rpb25SYXRpbyApO1xuXHRcdCNlbmRpZlxuXHQjZW5kaWZcbiNlbmRpZiIsZm9nX3ZlcnRleDoiI2lmZGVmIFVTRV9GT0dcblx0dkZvZ0RlcHRoID0gLSBtdlBvc2l0aW9uLno7XG4jZW5kaWYiLGZvZ19wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9GT0dcblx0dmFyeWluZyBmbG9hdCB2Rm9nRGVwdGg7XG4jZW5kaWYiLGZvZ19mcmFnbWVudDoiI2lmZGVmIFVTRV9GT0dcblx0I2lmZGVmIEZPR19FWFAyXG5cdFx0ZmxvYXQgZm9nRmFjdG9yID0gMS4wIC0gZXhwKCAtIGZvZ0RlbnNpdHkgKiBmb2dEZW5zaXR5ICogdkZvZ0RlcHRoICogdkZvZ0RlcHRoICk7XG5cdCNlbHNlXG5cdFx0ZmxvYXQgZm9nRmFjdG9yID0gc21vb3Roc3RlcCggZm9nTmVhciwgZm9nRmFyLCB2Rm9nRGVwdGggKTtcblx0I2VuZGlmXG5cdGdsX0ZyYWdDb2xvci5yZ2IgPSBtaXgoIGdsX0ZyYWdDb2xvci5yZ2IsIGZvZ0NvbG9yLCBmb2dGYWN0b3IgKTtcbiNlbmRpZiIsZm9nX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfRk9HXG5cdHVuaWZvcm0gdmVjMyBmb2dDb2xvcjtcblx0dmFyeWluZyBmbG9hdCB2Rm9nRGVwdGg7XG5cdCNpZmRlZiBGT0dfRVhQMlxuXHRcdHVuaWZvcm0gZmxvYXQgZm9nRGVuc2l0eTtcblx0I2Vsc2Vcblx0XHR1bmlmb3JtIGZsb2F0IGZvZ05lYXI7XG5cdFx0dW5pZm9ybSBmbG9hdCBmb2dGYXI7XG5cdCNlbmRpZlxuI2VuZGlmIixncmFkaWVudG1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0dSQURJRU5UTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGdyYWRpZW50TWFwO1xuI2VuZGlmXG52ZWMzIGdldEdyYWRpZW50SXJyYWRpYW5jZSggdmVjMyBub3JtYWwsIHZlYzMgbGlnaHREaXJlY3Rpb24gKSB7XG5cdGZsb2F0IGRvdE5MID0gZG90KCBub3JtYWwsIGxpZ2h0RGlyZWN0aW9uICk7XG5cdHZlYzIgY29vcmQgPSB2ZWMyKCBkb3ROTCAqIDAuNSArIDAuNSwgMC4wICk7XG5cdCNpZmRlZiBVU0VfR1JBRElFTlRNQVBcblx0XHRyZXR1cm4gdmVjMyggdGV4dHVyZTJEKCBncmFkaWVudE1hcCwgY29vcmQgKS5yICk7XG5cdCNlbHNlXG5cdFx0cmV0dXJuICggY29vcmQueCA8IDAuNyApID8gdmVjMyggMC43ICkgOiB2ZWMzKCAxLjAgKTtcblx0I2VuZGlmXG59IixsaWdodG1hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9MSUdIVE1BUFxuXHR2ZWM0IGxpZ2h0TWFwVGV4ZWwgPSB0ZXh0dXJlMkQoIGxpZ2h0TWFwLCB2VXYyICk7XG5cdHZlYzMgbGlnaHRNYXBJcnJhZGlhbmNlID0gbGlnaHRNYXBUZXhlbC5yZ2IgKiBsaWdodE1hcEludGVuc2l0eTtcblx0I2lmbmRlZiBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTXG5cdFx0bGlnaHRNYXBJcnJhZGlhbmNlICo9IFBJO1xuXHQjZW5kaWZcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGxpZ2h0TWFwSXJyYWRpYW5jZTtcbiNlbmRpZiIsbGlnaHRtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9MSUdIVE1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBsaWdodE1hcDtcblx0dW5pZm9ybSBmbG9hdCBsaWdodE1hcEludGVuc2l0eTtcbiNlbmRpZiIsbGlnaHRzX2xhbWJlcnRfdmVydGV4OiJ2ZWMzIGRpZmZ1c2UgPSB2ZWMzKCAxLjAgKTtcbkdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnk7XG5nZW9tZXRyeS5wb3NpdGlvbiA9IG12UG9zaXRpb24ueHl6O1xuZ2VvbWV0cnkubm9ybWFsID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZE5vcm1hbCApO1xuZ2VvbWV0cnkudmlld0RpciA9ICggaXNPcnRob2dyYXBoaWMgKSA/IHZlYzMoIDAsIDAsIDEgKSA6IG5vcm1hbGl6ZSggLW12UG9zaXRpb24ueHl6ICk7XG5HZW9tZXRyaWNDb250ZXh0IGJhY2tHZW9tZXRyeTtcbmJhY2tHZW9tZXRyeS5wb3NpdGlvbiA9IGdlb21ldHJ5LnBvc2l0aW9uO1xuYmFja0dlb21ldHJ5Lm5vcm1hbCA9IC1nZW9tZXRyeS5ub3JtYWw7XG5iYWNrR2VvbWV0cnkudmlld0RpciA9IGdlb21ldHJ5LnZpZXdEaXI7XG52TGlnaHRGcm9udCA9IHZlYzMoIDAuMCApO1xudkluZGlyZWN0RnJvbnQgPSB2ZWMzKCAwLjAgKTtcbiNpZmRlZiBET1VCTEVfU0lERURcblx0dkxpZ2h0QmFjayA9IHZlYzMoIDAuMCApO1xuXHR2SW5kaXJlY3RCYWNrID0gdmVjMyggMC4wICk7XG4jZW5kaWZcbkluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQ7XG5mbG9hdCBkb3ROTDtcbnZlYzMgZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xudkluZGlyZWN0RnJvbnQgKz0gZ2V0QW1iaWVudExpZ2h0SXJyYWRpYW5jZSggYW1iaWVudExpZ2h0Q29sb3IgKTtcbnZJbmRpcmVjdEZyb250ICs9IGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBsaWdodFByb2JlLCBnZW9tZXRyeS5ub3JtYWwgKTtcbiNpZmRlZiBET1VCTEVfU0lERURcblx0dkluZGlyZWN0QmFjayArPSBnZXRBbWJpZW50TGlnaHRJcnJhZGlhbmNlKCBhbWJpZW50TGlnaHRDb2xvciApO1xuXHR2SW5kaXJlY3RCYWNrICs9IGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBsaWdodFByb2JlLCBiYWNrR2VvbWV0cnkubm9ybWFsICk7XG4jZW5kaWZcbiNpZiBOVU1fUE9JTlRfTElHSFRTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9QT0lOVF9MSUdIVFM7IGkgKysgKSB7XG5cdFx0Z2V0UG9pbnRMaWdodEluZm8oIHBvaW50TGlnaHRzWyBpIF0sIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xuXHRcdGRvdE5MID0gZG90KCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApO1xuXHRcdGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZSA9IGRpcmVjdExpZ2h0LmNvbG9yO1xuXHRcdHZMaWdodEZyb250ICs9IHNhdHVyYXRlKCBkb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xuXHRcdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRcdHZMaWdodEJhY2sgKz0gc2F0dXJhdGUoIC0gZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcblx0XHQjZW5kaWZcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgTlVNX1NQT1RfTElHSFRTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9TUE9UX0xJR0hUUzsgaSArKyApIHtcblx0XHRnZXRTcG90TGlnaHRJbmZvKCBzcG90TGlnaHRzWyBpIF0sIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xuXHRcdGRvdE5MID0gZG90KCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApO1xuXHRcdGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZSA9IGRpcmVjdExpZ2h0LmNvbG9yO1xuXHRcdHZMaWdodEZyb250ICs9IHNhdHVyYXRlKCBkb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xuXHRcdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRcdHZMaWdodEJhY2sgKz0gc2F0dXJhdGUoIC0gZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcblx0XHQjZW5kaWZcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgTlVNX0RJUl9MSUdIVFMgPiAwXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0RJUl9MSUdIVFM7IGkgKysgKSB7XG5cdFx0Z2V0RGlyZWN0aW9uYWxMaWdodEluZm8oIGRpcmVjdGlvbmFsTGlnaHRzWyBpIF0sIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xuXHRcdGRvdE5MID0gZG90KCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApO1xuXHRcdGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZSA9IGRpcmVjdExpZ2h0LmNvbG9yO1xuXHRcdHZMaWdodEZyb250ICs9IHNhdHVyYXRlKCBkb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xuXHRcdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRcdHZMaWdodEJhY2sgKz0gc2F0dXJhdGUoIC0gZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcblx0XHQjZW5kaWZcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgTlVNX0hFTUlfTElHSFRTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9IRU1JX0xJR0hUUzsgaSArKyApIHtcblx0XHR2SW5kaXJlY3RGcm9udCArPSBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBoZW1pc3BoZXJlTGlnaHRzWyBpIF0sIGdlb21ldHJ5Lm5vcm1hbCApO1xuXHRcdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRcdHZJbmRpcmVjdEJhY2sgKz0gZ2V0SGVtaXNwaGVyZUxpZ2h0SXJyYWRpYW5jZSggaGVtaXNwaGVyZUxpZ2h0c1sgaSBdLCBiYWNrR2VvbWV0cnkubm9ybWFsICk7XG5cdFx0I2VuZGlmXG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZiIsbGlnaHRzX3BhcnNfYmVnaW46InVuaWZvcm0gYm9vbCByZWNlaXZlU2hhZG93O1xudW5pZm9ybSB2ZWMzIGFtYmllbnRMaWdodENvbG9yO1xudW5pZm9ybSB2ZWMzIGxpZ2h0UHJvYmVbIDkgXTtcbnZlYzMgc2hHZXRJcnJhZGlhbmNlQXQoIGluIHZlYzMgbm9ybWFsLCBpbiB2ZWMzIHNoQ29lZmZpY2llbnRzWyA5IF0gKSB7XG5cdGZsb2F0IHggPSBub3JtYWwueCwgeSA9IG5vcm1hbC55LCB6ID0gbm9ybWFsLno7XG5cdHZlYzMgcmVzdWx0ID0gc2hDb2VmZmljaWVudHNbIDAgXSAqIDAuODg2MjI3O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDEgXSAqIDIuMCAqIDAuNTExNjY0ICogeTtcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyAyIF0gKiAyLjAgKiAwLjUxMTY2NCAqIHo7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgMyBdICogMi4wICogMC41MTE2NjQgKiB4O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDQgXSAqIDIuMCAqIDAuNDI5MDQzICogeCAqIHk7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgNSBdICogMi4wICogMC40MjkwNDMgKiB5ICogejtcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA2IF0gKiAoIDAuNzQzMTI1ICogeiAqIHogLSAwLjI0NzcwOCApO1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDcgXSAqIDIuMCAqIDAuNDI5MDQzICogeCAqIHo7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgOCBdICogMC40MjkwNDMgKiAoIHggKiB4IC0geSAqIHkgKTtcblx0cmV0dXJuIHJlc3VsdDtcbn1cbnZlYzMgZ2V0TGlnaHRQcm9iZUlycmFkaWFuY2UoIGNvbnN0IGluIHZlYzMgbGlnaHRQcm9iZVsgOSBdLCBjb25zdCBpbiB2ZWMzIG5vcm1hbCApIHtcblx0dmVjMyB3b3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIG5vcm1hbCwgdmlld01hdHJpeCApO1xuXHR2ZWMzIGlycmFkaWFuY2UgPSBzaEdldElycmFkaWFuY2VBdCggd29ybGROb3JtYWwsIGxpZ2h0UHJvYmUgKTtcblx0cmV0dXJuIGlycmFkaWFuY2U7XG59XG52ZWMzIGdldEFtYmllbnRMaWdodElycmFkaWFuY2UoIGNvbnN0IGluIHZlYzMgYW1iaWVudExpZ2h0Q29sb3IgKSB7XG5cdHZlYzMgaXJyYWRpYW5jZSA9IGFtYmllbnRMaWdodENvbG9yO1xuXHRyZXR1cm4gaXJyYWRpYW5jZTtcbn1cbmZsb2F0IGdldERpc3RhbmNlQXR0ZW51YXRpb24oIGNvbnN0IGluIGZsb2F0IGxpZ2h0RGlzdGFuY2UsIGNvbnN0IGluIGZsb2F0IGN1dG9mZkRpc3RhbmNlLCBjb25zdCBpbiBmbG9hdCBkZWNheUV4cG9uZW50ICkge1xuXHQjaWYgZGVmaW5lZCAoIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFMgKVxuXHRcdGZsb2F0IGRpc3RhbmNlRmFsbG9mZiA9IDEuMCAvIG1heCggcG93KCBsaWdodERpc3RhbmNlLCBkZWNheUV4cG9uZW50ICksIDAuMDEgKTtcblx0XHRpZiAoIGN1dG9mZkRpc3RhbmNlID4gMC4wICkge1xuXHRcdFx0ZGlzdGFuY2VGYWxsb2ZmICo9IHBvdzIoIHNhdHVyYXRlKCAxLjAgLSBwb3c0KCBsaWdodERpc3RhbmNlIC8gY3V0b2ZmRGlzdGFuY2UgKSApICk7XG5cdFx0fVxuXHRcdHJldHVybiBkaXN0YW5jZUZhbGxvZmY7XG5cdCNlbHNlXG5cdFx0aWYgKCBjdXRvZmZEaXN0YW5jZSA+IDAuMCAmJiBkZWNheUV4cG9uZW50ID4gMC4wICkge1xuXHRcdFx0cmV0dXJuIHBvdyggc2F0dXJhdGUoIC0gbGlnaHREaXN0YW5jZSAvIGN1dG9mZkRpc3RhbmNlICsgMS4wICksIGRlY2F5RXhwb25lbnQgKTtcblx0XHR9XG5cdFx0cmV0dXJuIDEuMDtcblx0I2VuZGlmXG59XG5mbG9hdCBnZXRTcG90QXR0ZW51YXRpb24oIGNvbnN0IGluIGZsb2F0IGNvbmVDb3NpbmUsIGNvbnN0IGluIGZsb2F0IHBlbnVtYnJhQ29zaW5lLCBjb25zdCBpbiBmbG9hdCBhbmdsZUNvc2luZSApIHtcblx0cmV0dXJuIHNtb290aHN0ZXAoIGNvbmVDb3NpbmUsIHBlbnVtYnJhQ29zaW5lLCBhbmdsZUNvc2luZSApO1xufVxuI2lmIE5VTV9ESVJfTElHSFRTID4gMFxuXHRzdHJ1Y3QgRGlyZWN0aW9uYWxMaWdodCB7XG5cdFx0dmVjMyBkaXJlY3Rpb247XG5cdFx0dmVjMyBjb2xvcjtcblx0fTtcblx0dW5pZm9ybSBEaXJlY3Rpb25hbExpZ2h0IGRpcmVjdGlvbmFsTGlnaHRzWyBOVU1fRElSX0xJR0hUUyBdO1xuXHR2b2lkIGdldERpcmVjdGlvbmFsTGlnaHRJbmZvKCBjb25zdCBpbiBEaXJlY3Rpb25hbExpZ2h0IGRpcmVjdGlvbmFsTGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIG91dCBJbmNpZGVudExpZ2h0IGxpZ2h0ICkge1xuXHRcdGxpZ2h0LmNvbG9yID0gZGlyZWN0aW9uYWxMaWdodC5jb2xvcjtcblx0XHRsaWdodC5kaXJlY3Rpb24gPSBkaXJlY3Rpb25hbExpZ2h0LmRpcmVjdGlvbjtcblx0XHRsaWdodC52aXNpYmxlID0gdHJ1ZTtcblx0fVxuI2VuZGlmXG4jaWYgTlVNX1BPSU5UX0xJR0hUUyA+IDBcblx0c3RydWN0IFBvaW50TGlnaHQge1xuXHRcdHZlYzMgcG9zaXRpb247XG5cdFx0dmVjMyBjb2xvcjtcblx0XHRmbG9hdCBkaXN0YW5jZTtcblx0XHRmbG9hdCBkZWNheTtcblx0fTtcblx0dW5pZm9ybSBQb2ludExpZ2h0IHBvaW50TGlnaHRzWyBOVU1fUE9JTlRfTElHSFRTIF07XG5cdHZvaWQgZ2V0UG9pbnRMaWdodEluZm8oIGNvbnN0IGluIFBvaW50TGlnaHQgcG9pbnRMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgb3V0IEluY2lkZW50TGlnaHQgbGlnaHQgKSB7XG5cdFx0dmVjMyBsVmVjdG9yID0gcG9pbnRMaWdodC5wb3NpdGlvbiAtIGdlb21ldHJ5LnBvc2l0aW9uO1xuXHRcdGxpZ2h0LmRpcmVjdGlvbiA9IG5vcm1hbGl6ZSggbFZlY3RvciApO1xuXHRcdGZsb2F0IGxpZ2h0RGlzdGFuY2UgPSBsZW5ndGgoIGxWZWN0b3IgKTtcblx0XHRsaWdodC5jb2xvciA9IHBvaW50TGlnaHQuY29sb3I7XG5cdFx0bGlnaHQuY29sb3IgKj0gZ2V0RGlzdGFuY2VBdHRlbnVhdGlvbiggbGlnaHREaXN0YW5jZSwgcG9pbnRMaWdodC5kaXN0YW5jZSwgcG9pbnRMaWdodC5kZWNheSApO1xuXHRcdGxpZ2h0LnZpc2libGUgPSAoIGxpZ2h0LmNvbG9yICE9IHZlYzMoIDAuMCApICk7XG5cdH1cbiNlbmRpZlxuI2lmIE5VTV9TUE9UX0xJR0hUUyA+IDBcblx0c3RydWN0IFNwb3RMaWdodCB7XG5cdFx0dmVjMyBwb3NpdGlvbjtcblx0XHR2ZWMzIGRpcmVjdGlvbjtcblx0XHR2ZWMzIGNvbG9yO1xuXHRcdGZsb2F0IGRpc3RhbmNlO1xuXHRcdGZsb2F0IGRlY2F5O1xuXHRcdGZsb2F0IGNvbmVDb3M7XG5cdFx0ZmxvYXQgcGVudW1icmFDb3M7XG5cdH07XG5cdHVuaWZvcm0gU3BvdExpZ2h0IHNwb3RMaWdodHNbIE5VTV9TUE9UX0xJR0hUUyBdO1xuXHR2b2lkIGdldFNwb3RMaWdodEluZm8oIGNvbnN0IGluIFNwb3RMaWdodCBzcG90TGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIG91dCBJbmNpZGVudExpZ2h0IGxpZ2h0ICkge1xuXHRcdHZlYzMgbFZlY3RvciA9IHNwb3RMaWdodC5wb3NpdGlvbiAtIGdlb21ldHJ5LnBvc2l0aW9uO1xuXHRcdGxpZ2h0LmRpcmVjdGlvbiA9IG5vcm1hbGl6ZSggbFZlY3RvciApO1xuXHRcdGZsb2F0IGFuZ2xlQ29zID0gZG90KCBsaWdodC5kaXJlY3Rpb24sIHNwb3RMaWdodC5kaXJlY3Rpb24gKTtcblx0XHRmbG9hdCBzcG90QXR0ZW51YXRpb24gPSBnZXRTcG90QXR0ZW51YXRpb24oIHNwb3RMaWdodC5jb25lQ29zLCBzcG90TGlnaHQucGVudW1icmFDb3MsIGFuZ2xlQ29zICk7XG5cdFx0aWYgKCBzcG90QXR0ZW51YXRpb24gPiAwLjAgKSB7XG5cdFx0XHRmbG9hdCBsaWdodERpc3RhbmNlID0gbGVuZ3RoKCBsVmVjdG9yICk7XG5cdFx0XHRsaWdodC5jb2xvciA9IHNwb3RMaWdodC5jb2xvciAqIHNwb3RBdHRlbnVhdGlvbjtcblx0XHRcdGxpZ2h0LmNvbG9yICo9IGdldERpc3RhbmNlQXR0ZW51YXRpb24oIGxpZ2h0RGlzdGFuY2UsIHNwb3RMaWdodC5kaXN0YW5jZSwgc3BvdExpZ2h0LmRlY2F5ICk7XG5cdFx0XHRsaWdodC52aXNpYmxlID0gKCBsaWdodC5jb2xvciAhPSB2ZWMzKCAwLjAgKSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRsaWdodC5jb2xvciA9IHZlYzMoIDAuMCApO1xuXHRcdFx0bGlnaHQudmlzaWJsZSA9IGZhbHNlO1xuXHRcdH1cblx0fVxuI2VuZGlmXG4jaWYgTlVNX1JFQ1RfQVJFQV9MSUdIVFMgPiAwXG5cdHN0cnVjdCBSZWN0QXJlYUxpZ2h0IHtcblx0XHR2ZWMzIGNvbG9yO1xuXHRcdHZlYzMgcG9zaXRpb247XG5cdFx0dmVjMyBoYWxmV2lkdGg7XG5cdFx0dmVjMyBoYWxmSGVpZ2h0O1xuXHR9O1xuXHR1bmlmb3JtIHNhbXBsZXIyRCBsdGNfMTtcdHVuaWZvcm0gc2FtcGxlcjJEIGx0Y18yO1xuXHR1bmlmb3JtIFJlY3RBcmVhTGlnaHQgcmVjdEFyZWFMaWdodHNbIE5VTV9SRUNUX0FSRUFfTElHSFRTIF07XG4jZW5kaWZcbiNpZiBOVU1fSEVNSV9MSUdIVFMgPiAwXG5cdHN0cnVjdCBIZW1pc3BoZXJlTGlnaHQge1xuXHRcdHZlYzMgZGlyZWN0aW9uO1xuXHRcdHZlYzMgc2t5Q29sb3I7XG5cdFx0dmVjMyBncm91bmRDb2xvcjtcblx0fTtcblx0dW5pZm9ybSBIZW1pc3BoZXJlTGlnaHQgaGVtaXNwaGVyZUxpZ2h0c1sgTlVNX0hFTUlfTElHSFRTIF07XG5cdHZlYzMgZ2V0SGVtaXNwaGVyZUxpZ2h0SXJyYWRpYW5jZSggY29uc3QgaW4gSGVtaXNwaGVyZUxpZ2h0IGhlbWlMaWdodCwgY29uc3QgaW4gdmVjMyBub3JtYWwgKSB7XG5cdFx0ZmxvYXQgZG90TkwgPSBkb3QoIG5vcm1hbCwgaGVtaUxpZ2h0LmRpcmVjdGlvbiApO1xuXHRcdGZsb2F0IGhlbWlEaWZmdXNlV2VpZ2h0ID0gMC41ICogZG90TkwgKyAwLjU7XG5cdFx0dmVjMyBpcnJhZGlhbmNlID0gbWl4KCBoZW1pTGlnaHQuZ3JvdW5kQ29sb3IsIGhlbWlMaWdodC5za3lDb2xvciwgaGVtaURpZmZ1c2VXZWlnaHQgKTtcblx0XHRyZXR1cm4gaXJyYWRpYW5jZTtcblx0fVxuI2VuZGlmIixsaWdodHNfdG9vbl9mcmFnbWVudDoiVG9vbk1hdGVyaWFsIG1hdGVyaWFsO1xubWF0ZXJpYWwuZGlmZnVzZUNvbG9yID0gZGlmZnVzZUNvbG9yLnJnYjsiLGxpZ2h0c190b29uX3BhcnNfZnJhZ21lbnQ6InZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuc3RydWN0IFRvb25NYXRlcmlhbCB7XG5cdHZlYzMgZGlmZnVzZUNvbG9yO1xufTtcbnZvaWQgUkVfRGlyZWN0X1Rvb24oIGNvbnN0IGluIEluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIFRvb25NYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XG5cdHZlYzMgaXJyYWRpYW5jZSA9IGdldEdyYWRpZW50SXJyYWRpYW5jZSggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKSAqIGRpcmVjdExpZ2h0LmNvbG9yO1xuXHRyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApO1xufVxudm9pZCBSRV9JbmRpcmVjdERpZmZ1c2VfVG9vbiggY29uc3QgaW4gdmVjMyBpcnJhZGlhbmNlLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBUb29uTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7XG59XG4jZGVmaW5lIFJFX0RpcmVjdFx0XHRcdFx0UkVfRGlyZWN0X1Rvb25cbiNkZWZpbmUgUkVfSW5kaXJlY3REaWZmdXNlXHRcdFJFX0luZGlyZWN0RGlmZnVzZV9Ub29uXG4jZGVmaW5lIE1hdGVyaWFsX0xpZ2h0UHJvYmVMT0QoIG1hdGVyaWFsIClcdCgwKSIsbGlnaHRzX3Bob25nX2ZyYWdtZW50OiJCbGlublBob25nTWF0ZXJpYWwgbWF0ZXJpYWw7XG5tYXRlcmlhbC5kaWZmdXNlQ29sb3IgPSBkaWZmdXNlQ29sb3IucmdiO1xubWF0ZXJpYWwuc3BlY3VsYXJDb2xvciA9IHNwZWN1bGFyO1xubWF0ZXJpYWwuc3BlY3VsYXJTaGluaW5lc3MgPSBzaGluaW5lc3M7XG5tYXRlcmlhbC5zcGVjdWxhclN0cmVuZ3RoID0gc3BlY3VsYXJTdHJlbmd0aDsiLGxpZ2h0c19waG9uZ19wYXJzX2ZyYWdtZW50OiJ2YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbnN0cnVjdCBCbGlublBob25nTWF0ZXJpYWwge1xuXHR2ZWMzIGRpZmZ1c2VDb2xvcjtcblx0dmVjMyBzcGVjdWxhckNvbG9yO1xuXHRmbG9hdCBzcGVjdWxhclNoaW5pbmVzcztcblx0ZmxvYXQgc3BlY3VsYXJTdHJlbmd0aDtcbn07XG52b2lkIFJFX0RpcmVjdF9CbGlublBob25nKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBCbGlublBob25nTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHRmbG9hdCBkb3ROTCA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICkgKTtcblx0dmVjMyBpcnJhZGlhbmNlID0gZG90TkwgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArPSBpcnJhZGlhbmNlICogQlJERl9MYW1iZXJ0KCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKTtcblx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKz0gaXJyYWRpYW5jZSAqIEJSREZfQmxpbm5QaG9uZyggZGlyZWN0TGlnaHQuZGlyZWN0aW9uLCBnZW9tZXRyeS52aWV3RGlyLCBnZW9tZXRyeS5ub3JtYWwsIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IsIG1hdGVyaWFsLnNwZWN1bGFyU2hpbmluZXNzICkgKiBtYXRlcmlhbC5zcGVjdWxhclN0cmVuZ3RoO1xufVxudm9pZCBSRV9JbmRpcmVjdERpZmZ1c2VfQmxpbm5QaG9uZyggY29uc3QgaW4gdmVjMyBpcnJhZGlhbmNlLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBCbGlublBob25nTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7XG59XG4jZGVmaW5lIFJFX0RpcmVjdFx0XHRcdFx0UkVfRGlyZWN0X0JsaW5uUGhvbmdcbiNkZWZpbmUgUkVfSW5kaXJlY3REaWZmdXNlXHRcdFJFX0luZGlyZWN0RGlmZnVzZV9CbGlublBob25nXG4jZGVmaW5lIE1hdGVyaWFsX0xpZ2h0UHJvYmVMT0QoIG1hdGVyaWFsIClcdCgwKSIsbGlnaHRzX3BoeXNpY2FsX2ZyYWdtZW50OiJQaHlzaWNhbE1hdGVyaWFsIG1hdGVyaWFsO1xubWF0ZXJpYWwuZGlmZnVzZUNvbG9yID0gZGlmZnVzZUNvbG9yLnJnYiAqICggMS4wIC0gbWV0YWxuZXNzRmFjdG9yICk7XG52ZWMzIGR4eSA9IG1heCggYWJzKCBkRmR4KCBnZW9tZXRyeU5vcm1hbCApICksIGFicyggZEZkeSggZ2VvbWV0cnlOb3JtYWwgKSApICk7XG5mbG9hdCBnZW9tZXRyeVJvdWdobmVzcyA9IG1heCggbWF4KCBkeHkueCwgZHh5LnkgKSwgZHh5LnogKTtcbm1hdGVyaWFsLnJvdWdobmVzcyA9IG1heCggcm91Z2huZXNzRmFjdG9yLCAwLjA1MjUgKTttYXRlcmlhbC5yb3VnaG5lc3MgKz0gZ2VvbWV0cnlSb3VnaG5lc3M7XG5tYXRlcmlhbC5yb3VnaG5lc3MgPSBtaW4oIG1hdGVyaWFsLnJvdWdobmVzcywgMS4wICk7XG4jaWZkZWYgSU9SXG5cdCNpZmRlZiBTUEVDVUxBUlxuXHRcdGZsb2F0IHNwZWN1bGFySW50ZW5zaXR5RmFjdG9yID0gc3BlY3VsYXJJbnRlbnNpdHk7XG5cdFx0dmVjMyBzcGVjdWxhckNvbG9yRmFjdG9yID0gc3BlY3VsYXJDb2xvcjtcblx0XHQjaWZkZWYgVVNFX1NQRUNVTEFSSU5URU5TSVRZTUFQXG5cdFx0XHRzcGVjdWxhckludGVuc2l0eUZhY3RvciAqPSB0ZXh0dXJlMkQoIHNwZWN1bGFySW50ZW5zaXR5TWFwLCB2VXYgKS5hO1xuXHRcdCNlbmRpZlxuXHRcdCNpZmRlZiBVU0VfU1BFQ1VMQVJDT0xPUk1BUFxuXHRcdFx0c3BlY3VsYXJDb2xvckZhY3RvciAqPSB0ZXh0dXJlMkQoIHNwZWN1bGFyQ29sb3JNYXAsIHZVdiApLnJnYjtcblx0XHQjZW5kaWZcblx0XHRtYXRlcmlhbC5zcGVjdWxhckY5MCA9IG1peCggc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IsIDEuMCwgbWV0YWxuZXNzRmFjdG9yICk7XG5cdCNlbHNlXG5cdFx0ZmxvYXQgc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IgPSAxLjA7XG5cdFx0dmVjMyBzcGVjdWxhckNvbG9yRmFjdG9yID0gdmVjMyggMS4wICk7XG5cdFx0bWF0ZXJpYWwuc3BlY3VsYXJGOTAgPSAxLjA7XG5cdCNlbmRpZlxuXHRtYXRlcmlhbC5zcGVjdWxhckNvbG9yID0gbWl4KCBtaW4oIHBvdzIoICggaW9yIC0gMS4wICkgLyAoIGlvciArIDEuMCApICkgKiBzcGVjdWxhckNvbG9yRmFjdG9yLCB2ZWMzKCAxLjAgKSApICogc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IsIGRpZmZ1c2VDb2xvci5yZ2IsIG1ldGFsbmVzc0ZhY3RvciApO1xuI2Vsc2Vcblx0bWF0ZXJpYWwuc3BlY3VsYXJDb2xvciA9IG1peCggdmVjMyggMC4wNCApLCBkaWZmdXNlQ29sb3IucmdiLCBtZXRhbG5lc3NGYWN0b3IgKTtcblx0bWF0ZXJpYWwuc3BlY3VsYXJGOTAgPSAxLjA7XG4jZW5kaWZcbiNpZmRlZiBVU0VfQ0xFQVJDT0FUXG5cdG1hdGVyaWFsLmNsZWFyY29hdCA9IGNsZWFyY29hdDtcblx0bWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzID0gY2xlYXJjb2F0Um91Z2huZXNzO1xuXHRtYXRlcmlhbC5jbGVhcmNvYXRGMCA9IHZlYzMoIDAuMDQgKTtcblx0bWF0ZXJpYWwuY2xlYXJjb2F0RjkwID0gMS4wO1xuXHQjaWZkZWYgVVNFX0NMRUFSQ09BVE1BUFxuXHRcdG1hdGVyaWFsLmNsZWFyY29hdCAqPSB0ZXh0dXJlMkQoIGNsZWFyY29hdE1hcCwgdlV2ICkueDtcblx0I2VuZGlmXG5cdCNpZmRlZiBVU0VfQ0xFQVJDT0FUX1JPVUdITkVTU01BUFxuXHRcdG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyAqPSB0ZXh0dXJlMkQoIGNsZWFyY29hdFJvdWdobmVzc01hcCwgdlV2ICkueTtcblx0I2VuZGlmXG5cdG1hdGVyaWFsLmNsZWFyY29hdCA9IHNhdHVyYXRlKCBtYXRlcmlhbC5jbGVhcmNvYXQgKTtcdG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyA9IG1heCggbWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzLCAwLjA1MjUgKTtcblx0bWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzICs9IGdlb21ldHJ5Um91Z2huZXNzO1xuXHRtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgPSBtaW4oIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcywgMS4wICk7XG4jZW5kaWZcbiNpZmRlZiBVU0VfU0hFRU5cblx0bWF0ZXJpYWwuc2hlZW5Db2xvciA9IHNoZWVuQ29sb3I7XG5cdCNpZmRlZiBVU0VfU0hFRU5DT0xPUk1BUFxuXHRcdG1hdGVyaWFsLnNoZWVuQ29sb3IgKj0gdGV4dHVyZTJEKCBzaGVlbkNvbG9yTWFwLCB2VXYgKS5yZ2I7XG5cdCNlbmRpZlxuXHRtYXRlcmlhbC5zaGVlblJvdWdobmVzcyA9IGNsYW1wKCBzaGVlblJvdWdobmVzcywgMC4wNywgMS4wICk7XG5cdCNpZmRlZiBVU0VfU0hFRU5ST1VHSE5FU1NNQVBcblx0XHRtYXRlcmlhbC5zaGVlblJvdWdobmVzcyAqPSB0ZXh0dXJlMkQoIHNoZWVuUm91Z2huZXNzTWFwLCB2VXYgKS5hO1xuXHQjZW5kaWZcbiNlbmRpZiIsbGlnaHRzX3BoeXNpY2FsX3BhcnNfZnJhZ21lbnQ6InN0cnVjdCBQaHlzaWNhbE1hdGVyaWFsIHtcblx0dmVjMyBkaWZmdXNlQ29sb3I7XG5cdGZsb2F0IHJvdWdobmVzcztcblx0dmVjMyBzcGVjdWxhckNvbG9yO1xuXHRmbG9hdCBzcGVjdWxhckY5MDtcblx0I2lmZGVmIFVTRV9DTEVBUkNPQVRcblx0XHRmbG9hdCBjbGVhcmNvYXQ7XG5cdFx0ZmxvYXQgY2xlYXJjb2F0Um91Z2huZXNzO1xuXHRcdHZlYzMgY2xlYXJjb2F0RjA7XG5cdFx0ZmxvYXQgY2xlYXJjb2F0RjkwO1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9TSEVFTlxuXHRcdHZlYzMgc2hlZW5Db2xvcjtcblx0XHRmbG9hdCBzaGVlblJvdWdobmVzcztcblx0I2VuZGlmXG59O1xudmVjMyBjbGVhcmNvYXRTcGVjdWxhciA9IHZlYzMoIDAuMCApO1xudmVjMyBzaGVlblNwZWN1bGFyID0gdmVjMyggMC4wICk7XG5mbG9hdCBJQkxTaGVlbkJSREYoIGNvbnN0IGluIHZlYzMgbm9ybWFsLCBjb25zdCBpbiB2ZWMzIHZpZXdEaXIsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcykge1xuXHRmbG9hdCBkb3ROViA9IHNhdHVyYXRlKCBkb3QoIG5vcm1hbCwgdmlld0RpciApICk7XG5cdGZsb2F0IHIyID0gcm91Z2huZXNzICogcm91Z2huZXNzO1xuXHRmbG9hdCBhID0gcm91Z2huZXNzIDwgMC4yNSA/IC0zMzkuMiAqIHIyICsgMTYxLjQgKiByb3VnaG5lc3MgLSAyNS45IDogLTguNDggKiByMiArIDE0LjMgKiByb3VnaG5lc3MgLSA5Ljk1O1xuXHRmbG9hdCBiID0gcm91Z2huZXNzIDwgMC4yNSA/IDQ0LjAgKiByMiAtIDIzLjcgKiByb3VnaG5lc3MgKyAzLjI2IDogMS45NyAqIHIyIC0gMy4yNyAqIHJvdWdobmVzcyArIDAuNzI7XG5cdGZsb2F0IERHID0gZXhwKCBhICogZG90TlYgKyBiICkgKyAoIHJvdWdobmVzcyA8IDAuMjUgPyAwLjAgOiAwLjEgKiAoIHJvdWdobmVzcyAtIDAuMjUgKSApO1xuXHRyZXR1cm4gc2F0dXJhdGUoIERHICogUkVDSVBST0NBTF9QSSApO1xufVxudmVjMiBERkdBcHByb3goIGNvbnN0IGluIHZlYzMgbm9ybWFsLCBjb25zdCBpbiB2ZWMzIHZpZXdEaXIsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHtcblx0ZmxvYXQgZG90TlYgPSBzYXR1cmF0ZSggZG90KCBub3JtYWwsIHZpZXdEaXIgKSApO1xuXHRjb25zdCB2ZWM0IGMwID0gdmVjNCggLSAxLCAtIDAuMDI3NSwgLSAwLjU3MiwgMC4wMjIgKTtcblx0Y29uc3QgdmVjNCBjMSA9IHZlYzQoIDEsIDAuMDQyNSwgMS4wNCwgLSAwLjA0ICk7XG5cdHZlYzQgciA9IHJvdWdobmVzcyAqIGMwICsgYzE7XG5cdGZsb2F0IGEwMDQgPSBtaW4oIHIueCAqIHIueCwgZXhwMiggLSA5LjI4ICogZG90TlYgKSApICogci54ICsgci55O1xuXHR2ZWMyIGZhYiA9IHZlYzIoIC0gMS4wNCwgMS4wNCApICogYTAwNCArIHIuenc7XG5cdHJldHVybiBmYWI7XG59XG52ZWMzIEVudmlyb25tZW50QlJERiggY29uc3QgaW4gdmVjMyBub3JtYWwsIGNvbnN0IGluIHZlYzMgdmlld0RpciwgY29uc3QgaW4gdmVjMyBzcGVjdWxhckNvbG9yLCBjb25zdCBpbiBmbG9hdCBzcGVjdWxhckY5MCwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzICkge1xuXHR2ZWMyIGZhYiA9IERGR0FwcHJveCggbm9ybWFsLCB2aWV3RGlyLCByb3VnaG5lc3MgKTtcblx0cmV0dXJuIHNwZWN1bGFyQ29sb3IgKiBmYWIueCArIHNwZWN1bGFyRjkwICogZmFiLnk7XG59XG52b2lkIGNvbXB1dGVNdWx0aXNjYXR0ZXJpbmcoIGNvbnN0IGluIHZlYzMgbm9ybWFsLCBjb25zdCBpbiB2ZWMzIHZpZXdEaXIsIGNvbnN0IGluIHZlYzMgc3BlY3VsYXJDb2xvciwgY29uc3QgaW4gZmxvYXQgc3BlY3VsYXJGOTAsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcywgaW5vdXQgdmVjMyBzaW5nbGVTY2F0dGVyLCBpbm91dCB2ZWMzIG11bHRpU2NhdHRlciApIHtcblx0dmVjMiBmYWIgPSBERkdBcHByb3goIG5vcm1hbCwgdmlld0Rpciwgcm91Z2huZXNzICk7XG5cdHZlYzMgRnNzRXNzID0gc3BlY3VsYXJDb2xvciAqIGZhYi54ICsgc3BlY3VsYXJGOTAgKiBmYWIueTtcblx0ZmxvYXQgRXNzID0gZmFiLnggKyBmYWIueTtcblx0ZmxvYXQgRW1zID0gMS4wIC0gRXNzO1xuXHR2ZWMzIEZhdmcgPSBzcGVjdWxhckNvbG9yICsgKCAxLjAgLSBzcGVjdWxhckNvbG9yICkgKiAwLjA0NzYxOTtcdHZlYzMgRm1zID0gRnNzRXNzICogRmF2ZyAvICggMS4wIC0gRW1zICogRmF2ZyApO1xuXHRzaW5nbGVTY2F0dGVyICs9IEZzc0Vzcztcblx0bXVsdGlTY2F0dGVyICs9IEZtcyAqIEVtcztcbn1cbiNpZiBOVU1fUkVDVF9BUkVBX0xJR0hUUyA+IDBcblx0dm9pZCBSRV9EaXJlY3RfUmVjdEFyZWFfUGh5c2ljYWwoIGNvbnN0IGluIFJlY3RBcmVhTGlnaHQgcmVjdEFyZWFMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XG5cdFx0dmVjMyBub3JtYWwgPSBnZW9tZXRyeS5ub3JtYWw7XG5cdFx0dmVjMyB2aWV3RGlyID0gZ2VvbWV0cnkudmlld0Rpcjtcblx0XHR2ZWMzIHBvc2l0aW9uID0gZ2VvbWV0cnkucG9zaXRpb247XG5cdFx0dmVjMyBsaWdodFBvcyA9IHJlY3RBcmVhTGlnaHQucG9zaXRpb247XG5cdFx0dmVjMyBoYWxmV2lkdGggPSByZWN0QXJlYUxpZ2h0LmhhbGZXaWR0aDtcblx0XHR2ZWMzIGhhbGZIZWlnaHQgPSByZWN0QXJlYUxpZ2h0LmhhbGZIZWlnaHQ7XG5cdFx0dmVjMyBsaWdodENvbG9yID0gcmVjdEFyZWFMaWdodC5jb2xvcjtcblx0XHRmbG9hdCByb3VnaG5lc3MgPSBtYXRlcmlhbC5yb3VnaG5lc3M7XG5cdFx0dmVjMyByZWN0Q29vcmRzWyA0IF07XG5cdFx0cmVjdENvb3Jkc1sgMCBdID0gbGlnaHRQb3MgKyBoYWxmV2lkdGggLSBoYWxmSGVpZ2h0O1x0XHRyZWN0Q29vcmRzWyAxIF0gPSBsaWdodFBvcyAtIGhhbGZXaWR0aCAtIGhhbGZIZWlnaHQ7XG5cdFx0cmVjdENvb3Jkc1sgMiBdID0gbGlnaHRQb3MgLSBoYWxmV2lkdGggKyBoYWxmSGVpZ2h0O1xuXHRcdHJlY3RDb29yZHNbIDMgXSA9IGxpZ2h0UG9zICsgaGFsZldpZHRoICsgaGFsZkhlaWdodDtcblx0XHR2ZWMyIHV2ID0gTFRDX1V2KCBub3JtYWwsIHZpZXdEaXIsIHJvdWdobmVzcyApO1xuXHRcdHZlYzQgdDEgPSB0ZXh0dXJlMkQoIGx0Y18xLCB1diApO1xuXHRcdHZlYzQgdDIgPSB0ZXh0dXJlMkQoIGx0Y18yLCB1diApO1xuXHRcdG1hdDMgbUludiA9IG1hdDMoXG5cdFx0XHR2ZWMzKCB0MS54LCAwLCB0MS55ICksXG5cdFx0XHR2ZWMzKCAgICAwLCAxLCAgICAwICksXG5cdFx0XHR2ZWMzKCB0MS56LCAwLCB0MS53IClcblx0XHQpO1xuXHRcdHZlYzMgZnJlc25lbCA9ICggbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciAqIHQyLnggKyAoIHZlYzMoIDEuMCApIC0gbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciApICogdDIueSApO1xuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICs9IGxpZ2h0Q29sb3IgKiBmcmVzbmVsICogTFRDX0V2YWx1YXRlKCBub3JtYWwsIHZpZXdEaXIsIHBvc2l0aW9uLCBtSW52LCByZWN0Q29vcmRzICk7XG5cdFx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArPSBsaWdodENvbG9yICogbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICogTFRDX0V2YWx1YXRlKCBub3JtYWwsIHZpZXdEaXIsIHBvc2l0aW9uLCBtYXQzKCAxLjAgKSwgcmVjdENvb3JkcyApO1xuXHR9XG4jZW5kaWZcbnZvaWQgUkVfRGlyZWN0X1BoeXNpY2FsKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBQaHlzaWNhbE1hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHtcblx0ZmxvYXQgZG90TkwgPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApICk7XG5cdHZlYzMgaXJyYWRpYW5jZSA9IGRvdE5MICogZGlyZWN0TGlnaHQuY29sb3I7XG5cdCNpZmRlZiBVU0VfQ0xFQVJDT0FUXG5cdFx0ZmxvYXQgZG90TkxjYyA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICkgKTtcblx0XHR2ZWMzIGNjSXJyYWRpYW5jZSA9IGRvdE5MY2MgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0XHRjbGVhcmNvYXRTcGVjdWxhciArPSBjY0lycmFkaWFuY2UgKiBCUkRGX0dHWCggZGlyZWN0TGlnaHQuZGlyZWN0aW9uLCBnZW9tZXRyeS52aWV3RGlyLCBnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwsIG1hdGVyaWFsLmNsZWFyY29hdEYwLCBtYXRlcmlhbC5jbGVhcmNvYXRGOTAsIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyApO1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9TSEVFTlxuXHRcdHNoZWVuU3BlY3VsYXIgKz0gaXJyYWRpYW5jZSAqIEJSREZfU2hlZW4oIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiwgZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkubm9ybWFsLCBtYXRlcmlhbC5zaGVlbkNvbG9yLCBtYXRlcmlhbC5zaGVlblJvdWdobmVzcyApO1xuXHQjZW5kaWZcblx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKz0gaXJyYWRpYW5jZSAqIEJSREZfR0dYKCBkaXJlY3RMaWdodC5kaXJlY3Rpb24sIGdlb21ldHJ5LnZpZXdEaXIsIGdlb21ldHJ5Lm5vcm1hbCwgbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJGOTAsIG1hdGVyaWFsLnJvdWdobmVzcyApO1xuXHRyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApO1xufVxudm9pZCBSRV9JbmRpcmVjdERpZmZ1c2VfUGh5c2ljYWwoIGNvbnN0IGluIHZlYzMgaXJyYWRpYW5jZSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSBpcnJhZGlhbmNlICogQlJERl9MYW1iZXJ0KCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKTtcbn1cbnZvaWQgUkVfSW5kaXJlY3RTcGVjdWxhcl9QaHlzaWNhbCggY29uc3QgaW4gdmVjMyByYWRpYW5jZSwgY29uc3QgaW4gdmVjMyBpcnJhZGlhbmNlLCBjb25zdCBpbiB2ZWMzIGNsZWFyY29hdFJhZGlhbmNlLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBQaHlzaWNhbE1hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCkge1xuXHQjaWZkZWYgVVNFX0NMRUFSQ09BVFxuXHRcdGNsZWFyY29hdFNwZWN1bGFyICs9IGNsZWFyY29hdFJhZGlhbmNlICogRW52aXJvbm1lbnRCUkRGKCBnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwsIGdlb21ldHJ5LnZpZXdEaXIsIG1hdGVyaWFsLmNsZWFyY29hdEYwLCBtYXRlcmlhbC5jbGVhcmNvYXRGOTAsIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyApO1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9TSEVFTlxuXHRcdHNoZWVuU3BlY3VsYXIgKz0gaXJyYWRpYW5jZSAqIG1hdGVyaWFsLnNoZWVuQ29sb3IgKiBJQkxTaGVlbkJSREYoIGdlb21ldHJ5Lm5vcm1hbCwgZ2VvbWV0cnkudmlld0RpciwgbWF0ZXJpYWwuc2hlZW5Sb3VnaG5lc3MgKTtcblx0I2VuZGlmXG5cdHZlYzMgc2luZ2xlU2NhdHRlcmluZyA9IHZlYzMoIDAuMCApO1xuXHR2ZWMzIG11bHRpU2NhdHRlcmluZyA9IHZlYzMoIDAuMCApO1xuXHR2ZWMzIGNvc2luZVdlaWdodGVkSXJyYWRpYW5jZSA9IGlycmFkaWFuY2UgKiBSRUNJUFJPQ0FMX1BJO1xuXHRjb21wdXRlTXVsdGlzY2F0dGVyaW5nKCBnZW9tZXRyeS5ub3JtYWwsIGdlb21ldHJ5LnZpZXdEaXIsIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IsIG1hdGVyaWFsLnNwZWN1bGFyRjkwLCBtYXRlcmlhbC5yb3VnaG5lc3MsIHNpbmdsZVNjYXR0ZXJpbmcsIG11bHRpU2NhdHRlcmluZyApO1xuXHR2ZWMzIGRpZmZ1c2UgPSBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKiAoIDEuMCAtICggc2luZ2xlU2NhdHRlcmluZyArIG11bHRpU2NhdHRlcmluZyApICk7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXIgKz0gcmFkaWFuY2UgKiBzaW5nbGVTY2F0dGVyaW5nO1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICs9IG11bHRpU2NhdHRlcmluZyAqIGNvc2luZVdlaWdodGVkSXJyYWRpYW5jZTtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGRpZmZ1c2UgKiBjb3NpbmVXZWlnaHRlZElycmFkaWFuY2U7XG59XG4jZGVmaW5lIFJFX0RpcmVjdFx0XHRcdFx0UkVfRGlyZWN0X1BoeXNpY2FsXG4jZGVmaW5lIFJFX0RpcmVjdF9SZWN0QXJlYVx0XHRSRV9EaXJlY3RfUmVjdEFyZWFfUGh5c2ljYWxcbiNkZWZpbmUgUkVfSW5kaXJlY3REaWZmdXNlXHRcdFJFX0luZGlyZWN0RGlmZnVzZV9QaHlzaWNhbFxuI2RlZmluZSBSRV9JbmRpcmVjdFNwZWN1bGFyXHRcdFJFX0luZGlyZWN0U3BlY3VsYXJfUGh5c2ljYWxcbmZsb2F0IGNvbXB1dGVTcGVjdWxhck9jY2x1c2lvbiggY29uc3QgaW4gZmxvYXQgZG90TlYsIGNvbnN0IGluIGZsb2F0IGFtYmllbnRPY2NsdXNpb24sIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHtcblx0cmV0dXJuIHNhdHVyYXRlKCBwb3coIGRvdE5WICsgYW1iaWVudE9jY2x1c2lvbiwgZXhwMiggLSAxNi4wICogcm91Z2huZXNzIC0gMS4wICkgKSAtIDEuMCArIGFtYmllbnRPY2NsdXNpb24gKTtcbn0iLGxpZ2h0c19mcmFnbWVudF9iZWdpbjoiXG5HZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5O1xuZ2VvbWV0cnkucG9zaXRpb24gPSAtIHZWaWV3UG9zaXRpb247XG5nZW9tZXRyeS5ub3JtYWwgPSBub3JtYWw7XG5nZW9tZXRyeS52aWV3RGlyID0gKCBpc09ydGhvZ3JhcGhpYyApID8gdmVjMyggMCwgMCwgMSApIDogbm9ybWFsaXplKCB2Vmlld1Bvc2l0aW9uICk7XG4jaWZkZWYgVVNFX0NMRUFSQ09BVFxuXHRnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwgPSBjbGVhcmNvYXROb3JtYWw7XG4jZW5kaWZcbkluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQ7XG4jaWYgKCBOVU1fUE9JTlRfTElHSFRTID4gMCApICYmIGRlZmluZWQoIFJFX0RpcmVjdCApXG5cdFBvaW50TGlnaHQgcG9pbnRMaWdodDtcblx0I2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDBcblx0UG9pbnRMaWdodFNoYWRvdyBwb2ludExpZ2h0U2hhZG93O1xuXHQjZW5kaWZcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fUE9JTlRfTElHSFRTOyBpICsrICkge1xuXHRcdHBvaW50TGlnaHQgPSBwb2ludExpZ2h0c1sgaSBdO1xuXHRcdGdldFBvaW50TGlnaHRJbmZvKCBwb2ludExpZ2h0LCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTtcblx0XHQjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmICggVU5ST0xMRURfTE9PUF9JTkRFWCA8IE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIClcblx0XHRwb2ludExpZ2h0U2hhZG93ID0gcG9pbnRMaWdodFNoYWRvd3NbIGkgXTtcblx0XHRkaXJlY3RMaWdodC5jb2xvciAqPSBhbGwoIGJ2ZWMyKCBkaXJlY3RMaWdodC52aXNpYmxlLCByZWNlaXZlU2hhZG93ICkgKSA/IGdldFBvaW50U2hhZG93KCBwb2ludFNoYWRvd01hcFsgaSBdLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd01hcFNpemUsIHBvaW50TGlnaHRTaGFkb3cuc2hhZG93QmlhcywgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dSYWRpdXMsIHZQb2ludFNoYWRvd0Nvb3JkWyBpIF0sIHBvaW50TGlnaHRTaGFkb3cuc2hhZG93Q2FtZXJhTmVhciwgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dDYW1lcmFGYXIgKSA6IDEuMDtcblx0XHQjZW5kaWZcblx0XHRSRV9EaXJlY3QoIGRpcmVjdExpZ2h0LCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZlxuI2lmICggTlVNX1NQT1RfTElHSFRTID4gMCApICYmIGRlZmluZWQoIFJFX0RpcmVjdCApXG5cdFNwb3RMaWdodCBzcG90TGlnaHQ7XG5cdCNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDBcblx0U3BvdExpZ2h0U2hhZG93IHNwb3RMaWdodFNoYWRvdztcblx0I2VuZGlmXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1NQT1RfTElHSFRTOyBpICsrICkge1xuXHRcdHNwb3RMaWdodCA9IHNwb3RMaWdodHNbIGkgXTtcblx0XHRnZXRTcG90TGlnaHRJbmZvKCBzcG90TGlnaHQsIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xuXHRcdCNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgKCBVTlJPTExFRF9MT09QX0lOREVYIDwgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyApXG5cdFx0c3BvdExpZ2h0U2hhZG93ID0gc3BvdExpZ2h0U2hhZG93c1sgaSBdO1xuXHRcdGRpcmVjdExpZ2h0LmNvbG9yICo9IGFsbCggYnZlYzIoIGRpcmVjdExpZ2h0LnZpc2libGUsIHJlY2VpdmVTaGFkb3cgKSApID8gZ2V0U2hhZG93KCBzcG90U2hhZG93TWFwWyBpIF0sIHNwb3RMaWdodFNoYWRvdy5zaGFkb3dNYXBTaXplLCBzcG90TGlnaHRTaGFkb3cuc2hhZG93Qmlhcywgc3BvdExpZ2h0U2hhZG93LnNoYWRvd1JhZGl1cywgdlNwb3RTaGFkb3dDb29yZFsgaSBdICkgOiAxLjA7XG5cdFx0I2VuZGlmXG5cdFx0UkVfRGlyZWN0KCBkaXJlY3RMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLCByZWZsZWN0ZWRMaWdodCApO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWZcbiNpZiAoIE5VTV9ESVJfTElHSFRTID4gMCApICYmIGRlZmluZWQoIFJFX0RpcmVjdCApXG5cdERpcmVjdGlvbmFsTGlnaHQgZGlyZWN0aW9uYWxMaWdodDtcblx0I2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiBOVU1fRElSX0xJR0hUX1NIQURPV1MgPiAwXG5cdERpcmVjdGlvbmFsTGlnaHRTaGFkb3cgZGlyZWN0aW9uYWxMaWdodFNoYWRvdztcblx0I2VuZGlmXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0RJUl9MSUdIVFM7IGkgKysgKSB7XG5cdFx0ZGlyZWN0aW9uYWxMaWdodCA9IGRpcmVjdGlvbmFsTGlnaHRzWyBpIF07XG5cdFx0Z2V0RGlyZWN0aW9uYWxMaWdodEluZm8oIGRpcmVjdGlvbmFsTGlnaHQsIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xuXHRcdCNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgKCBVTlJPTExFRF9MT09QX0lOREVYIDwgTlVNX0RJUl9MSUdIVF9TSEFET1dTIClcblx0XHRkaXJlY3Rpb25hbExpZ2h0U2hhZG93ID0gZGlyZWN0aW9uYWxMaWdodFNoYWRvd3NbIGkgXTtcblx0XHRkaXJlY3RMaWdodC5jb2xvciAqPSBhbGwoIGJ2ZWMyKCBkaXJlY3RMaWdodC52aXNpYmxlLCByZWNlaXZlU2hhZG93ICkgKSA/IGdldFNoYWRvdyggZGlyZWN0aW9uYWxTaGFkb3dNYXBbIGkgXSwgZGlyZWN0aW9uYWxMaWdodFNoYWRvdy5zaGFkb3dNYXBTaXplLCBkaXJlY3Rpb25hbExpZ2h0U2hhZG93LnNoYWRvd0JpYXMsIGRpcmVjdGlvbmFsTGlnaHRTaGFkb3cuc2hhZG93UmFkaXVzLCB2RGlyZWN0aW9uYWxTaGFkb3dDb29yZFsgaSBdICkgOiAxLjA7XG5cdFx0I2VuZGlmXG5cdFx0UkVfRGlyZWN0KCBkaXJlY3RMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLCByZWZsZWN0ZWRMaWdodCApO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWZcbiNpZiAoIE5VTV9SRUNUX0FSRUFfTElHSFRTID4gMCApICYmIGRlZmluZWQoIFJFX0RpcmVjdF9SZWN0QXJlYSApXG5cdFJlY3RBcmVhTGlnaHQgcmVjdEFyZWFMaWdodDtcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fUkVDVF9BUkVBX0xJR0hUUzsgaSArKyApIHtcblx0XHRyZWN0QXJlYUxpZ2h0ID0gcmVjdEFyZWFMaWdodHNbIGkgXTtcblx0XHRSRV9EaXJlY3RfUmVjdEFyZWEoIHJlY3RBcmVhTGlnaHQsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgZGVmaW5lZCggUkVfSW5kaXJlY3REaWZmdXNlIClcblx0dmVjMyBpYmxJcnJhZGlhbmNlID0gdmVjMyggMC4wICk7XG5cdHZlYzMgaXJyYWRpYW5jZSA9IGdldEFtYmllbnRMaWdodElycmFkaWFuY2UoIGFtYmllbnRMaWdodENvbG9yICk7XG5cdGlycmFkaWFuY2UgKz0gZ2V0TGlnaHRQcm9iZUlycmFkaWFuY2UoIGxpZ2h0UHJvYmUsIGdlb21ldHJ5Lm5vcm1hbCApO1xuXHQjaWYgKCBOVU1fSEVNSV9MSUdIVFMgPiAwIClcblx0XHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdFx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0hFTUlfTElHSFRTOyBpICsrICkge1xuXHRcdFx0aXJyYWRpYW5jZSArPSBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBoZW1pc3BoZXJlTGlnaHRzWyBpIF0sIGdlb21ldHJ5Lm5vcm1hbCApO1xuXHRcdH1cblx0XHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjZW5kaWZcbiNlbmRpZlxuI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0U3BlY3VsYXIgKVxuXHR2ZWMzIHJhZGlhbmNlID0gdmVjMyggMC4wICk7XG5cdHZlYzMgY2xlYXJjb2F0UmFkaWFuY2UgPSB2ZWMzKCAwLjAgKTtcbiNlbmRpZiIsbGlnaHRzX2ZyYWdtZW50X21hcHM6IiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdERpZmZ1c2UgKVxuXHQjaWZkZWYgVVNFX0xJR0hUTUFQXG5cdFx0dmVjNCBsaWdodE1hcFRleGVsID0gdGV4dHVyZTJEKCBsaWdodE1hcCwgdlV2MiApO1xuXHRcdHZlYzMgbGlnaHRNYXBJcnJhZGlhbmNlID0gbGlnaHRNYXBUZXhlbC5yZ2IgKiBsaWdodE1hcEludGVuc2l0eTtcblx0XHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRcdGxpZ2h0TWFwSXJyYWRpYW5jZSAqPSBQSTtcblx0XHQjZW5kaWZcblx0XHRpcnJhZGlhbmNlICs9IGxpZ2h0TWFwSXJyYWRpYW5jZTtcblx0I2VuZGlmXG5cdCNpZiBkZWZpbmVkKCBVU0VfRU5WTUFQICkgJiYgZGVmaW5lZCggU1RBTkRBUkQgKSAmJiBkZWZpbmVkKCBFTlZNQVBfVFlQRV9DVUJFX1VWIClcblx0XHRpYmxJcnJhZGlhbmNlICs9IGdldElCTElycmFkaWFuY2UoIGdlb21ldHJ5Lm5vcm1hbCApO1xuXHQjZW5kaWZcbiNlbmRpZlxuI2lmIGRlZmluZWQoIFVTRV9FTlZNQVAgKSAmJiBkZWZpbmVkKCBSRV9JbmRpcmVjdFNwZWN1bGFyIClcblx0cmFkaWFuY2UgKz0gZ2V0SUJMUmFkaWFuY2UoIGdlb21ldHJ5LnZpZXdEaXIsIGdlb21ldHJ5Lm5vcm1hbCwgbWF0ZXJpYWwucm91Z2huZXNzICk7XG5cdCNpZmRlZiBVU0VfQ0xFQVJDT0FUXG5cdFx0Y2xlYXJjb2F0UmFkaWFuY2UgKz0gZ2V0SUJMUmFkaWFuY2UoIGdlb21ldHJ5LnZpZXdEaXIsIGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCwgbWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzICk7XG5cdCNlbmRpZlxuI2VuZGlmIixsaWdodHNfZnJhZ21lbnRfZW5kOiIjaWYgZGVmaW5lZCggUkVfSW5kaXJlY3REaWZmdXNlIClcblx0UkVfSW5kaXJlY3REaWZmdXNlKCBpcnJhZGlhbmNlLCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG4jZW5kaWZcbiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdFNwZWN1bGFyIClcblx0UkVfSW5kaXJlY3RTcGVjdWxhciggcmFkaWFuY2UsIGlibElycmFkaWFuY2UsIGNsZWFyY29hdFJhZGlhbmNlLCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG4jZW5kaWYiLGxvZ2RlcHRoYnVmX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX0xPR0RFUFRIQlVGICkgJiYgZGVmaW5lZCggVVNFX0xPR0RFUFRIQlVGX0VYVCApXG5cdGdsX0ZyYWdEZXB0aEVYVCA9IHZJc1BlcnNwZWN0aXZlID09IDAuMCA/IGdsX0ZyYWdDb29yZC56IDogbG9nMiggdkZyYWdEZXB0aCApICogbG9nRGVwdGhCdWZGQyAqIDAuNTtcbiNlbmRpZiIsbG9nZGVwdGhidWZfcGFyc19mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9MT0dERVBUSEJVRiApICYmIGRlZmluZWQoIFVTRV9MT0dERVBUSEJVRl9FWFQgKVxuXHR1bmlmb3JtIGZsb2F0IGxvZ0RlcHRoQnVmRkM7XG5cdHZhcnlpbmcgZmxvYXQgdkZyYWdEZXB0aDtcblx0dmFyeWluZyBmbG9hdCB2SXNQZXJzcGVjdGl2ZTtcbiNlbmRpZiIsbG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfTE9HREVQVEhCVUZcblx0I2lmZGVmIFVTRV9MT0dERVBUSEJVRl9FWFRcblx0XHR2YXJ5aW5nIGZsb2F0IHZGcmFnRGVwdGg7XG5cdFx0dmFyeWluZyBmbG9hdCB2SXNQZXJzcGVjdGl2ZTtcblx0I2Vsc2Vcblx0XHR1bmlmb3JtIGZsb2F0IGxvZ0RlcHRoQnVmRkM7XG5cdCNlbmRpZlxuI2VuZGlmIixsb2dkZXB0aGJ1Zl92ZXJ0ZXg6IiNpZmRlZiBVU0VfTE9HREVQVEhCVUZcblx0I2lmZGVmIFVTRV9MT0dERVBUSEJVRl9FWFRcblx0XHR2RnJhZ0RlcHRoID0gMS4wICsgZ2xfUG9zaXRpb24udztcblx0XHR2SXNQZXJzcGVjdGl2ZSA9IGZsb2F0KCBpc1BlcnNwZWN0aXZlTWF0cml4KCBwcm9qZWN0aW9uTWF0cml4ICkgKTtcblx0I2Vsc2Vcblx0XHRpZiAoIGlzUGVyc3BlY3RpdmVNYXRyaXgoIHByb2plY3Rpb25NYXRyaXggKSApIHtcblx0XHRcdGdsX1Bvc2l0aW9uLnogPSBsb2cyKCBtYXgoIEVQU0lMT04sIGdsX1Bvc2l0aW9uLncgKyAxLjAgKSApICogbG9nRGVwdGhCdWZGQyAtIDEuMDtcblx0XHRcdGdsX1Bvc2l0aW9uLnogKj0gZ2xfUG9zaXRpb24udztcblx0XHR9XG5cdCNlbmRpZlxuI2VuZGlmIixtYXBfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTUFQXG5cdHZlYzQgc2FtcGxlZERpZmZ1c2VDb2xvciA9IHRleHR1cmUyRCggbWFwLCB2VXYgKTtcblx0I2lmZGVmIERFQ09ERV9WSURFT19URVhUVVJFXG5cdFx0c2FtcGxlZERpZmZ1c2VDb2xvciA9IHZlYzQoIG1peCggcG93KCBzYW1wbGVkRGlmZnVzZUNvbG9yLnJnYiAqIDAuOTQ3ODY3Mjk4NiArIHZlYzMoIDAuMDUyMTMyNzAxNCApLCB2ZWMzKCAyLjQgKSApLCBzYW1wbGVkRGlmZnVzZUNvbG9yLnJnYiAqIDAuMDc3Mzk5MzgwOCwgdmVjMyggbGVzc1RoYW5FcXVhbCggc2FtcGxlZERpZmZ1c2VDb2xvci5yZ2IsIHZlYzMoIDAuMDQwNDUgKSApICkgKSwgc2FtcGxlZERpZmZ1c2VDb2xvci53ICk7XG5cdCNlbmRpZlxuXHRkaWZmdXNlQ29sb3IgKj0gc2FtcGxlZERpZmZ1c2VDb2xvcjtcbiNlbmRpZiIsbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIG1hcDtcbiNlbmRpZiIsbWFwX3BhcnRpY2xlX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX01BUCApIHx8IGRlZmluZWQoIFVTRV9BTFBIQU1BUCApXG5cdHZlYzIgdXYgPSAoIHV2VHJhbnNmb3JtICogdmVjMyggZ2xfUG9pbnRDb29yZC54LCAxLjAgLSBnbF9Qb2ludENvb3JkLnksIDEgKSApLnh5O1xuI2VuZGlmXG4jaWZkZWYgVVNFX01BUFxuXHRkaWZmdXNlQ29sb3IgKj0gdGV4dHVyZTJEKCBtYXAsIHV2ICk7XG4jZW5kaWZcbiNpZmRlZiBVU0VfQUxQSEFNQVBcblx0ZGlmZnVzZUNvbG9yLmEgKj0gdGV4dHVyZTJEKCBhbHBoYU1hcCwgdXYgKS5nO1xuI2VuZGlmIixtYXBfcGFydGljbGVfcGFyc19mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9NQVAgKSB8fCBkZWZpbmVkKCBVU0VfQUxQSEFNQVAgKVxuXHR1bmlmb3JtIG1hdDMgdXZUcmFuc2Zvcm07XG4jZW5kaWZcbiNpZmRlZiBVU0VfTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIG1hcDtcbiNlbmRpZlxuI2lmZGVmIFVTRV9BTFBIQU1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBhbHBoYU1hcDtcbiNlbmRpZiIsbWV0YWxuZXNzbWFwX2ZyYWdtZW50OiJmbG9hdCBtZXRhbG5lc3NGYWN0b3IgPSBtZXRhbG5lc3M7XG4jaWZkZWYgVVNFX01FVEFMTkVTU01BUFxuXHR2ZWM0IHRleGVsTWV0YWxuZXNzID0gdGV4dHVyZTJEKCBtZXRhbG5lc3NNYXAsIHZVdiApO1xuXHRtZXRhbG5lc3NGYWN0b3IgKj0gdGV4ZWxNZXRhbG5lc3MuYjtcbiNlbmRpZiIsbWV0YWxuZXNzbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTUVUQUxORVNTTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIG1ldGFsbmVzc01hcDtcbiNlbmRpZiIsbW9ycGhub3JtYWxfdmVydGV4OiIjaWZkZWYgVVNFX01PUlBITk9STUFMU1xuXHRvYmplY3ROb3JtYWwgKj0gbW9ycGhUYXJnZXRCYXNlSW5mbHVlbmNlO1xuXHQjaWZkZWYgTU9SUEhUQVJHRVRTX1RFWFRVUkVcblx0XHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBNT1JQSFRBUkdFVFNfQ09VTlQ7IGkgKysgKSB7XG5cdFx0XHRpZiAoIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgaSBdICE9IDAuMCApIG9iamVjdE5vcm1hbCArPSBnZXRNb3JwaCggZ2xfVmVydGV4SUQsIGksIDEsIDIgKSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgaSBdO1xuXHRcdH1cblx0I2Vsc2Vcblx0XHRvYmplY3ROb3JtYWwgKz0gbW9ycGhOb3JtYWwwICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAwIF07XG5cdFx0b2JqZWN0Tm9ybWFsICs9IG1vcnBoTm9ybWFsMSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMSBdO1xuXHRcdG9iamVjdE5vcm1hbCArPSBtb3JwaE5vcm1hbDIgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDIgXTtcblx0XHRvYmplY3ROb3JtYWwgKz0gbW9ycGhOb3JtYWwzICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAzIF07XG5cdCNlbmRpZlxuI2VuZGlmIixtb3JwaHRhcmdldF9wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9NT1JQSFRBUkdFVFNcblx0dW5pZm9ybSBmbG9hdCBtb3JwaFRhcmdldEJhc2VJbmZsdWVuY2U7XG5cdCNpZmRlZiBNT1JQSFRBUkdFVFNfVEVYVFVSRVxuXHRcdHVuaWZvcm0gZmxvYXQgbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyBNT1JQSFRBUkdFVFNfQ09VTlQgXTtcblx0XHR1bmlmb3JtIHNhbXBsZXIyREFycmF5IG1vcnBoVGFyZ2V0c1RleHR1cmU7XG5cdFx0dW5pZm9ybSB2ZWMyIG1vcnBoVGFyZ2V0c1RleHR1cmVTaXplO1xuXHRcdHZlYzMgZ2V0TW9ycGgoIGNvbnN0IGluIGludCB2ZXJ0ZXhJbmRleCwgY29uc3QgaW4gaW50IG1vcnBoVGFyZ2V0SW5kZXgsIGNvbnN0IGluIGludCBvZmZzZXQsIGNvbnN0IGluIGludCBzdHJpZGUgKSB7XG5cdFx0XHRmbG9hdCB0ZXhlbEluZGV4ID0gZmxvYXQoIHZlcnRleEluZGV4ICogc3RyaWRlICsgb2Zmc2V0ICk7XG5cdFx0XHRmbG9hdCB5ID0gZmxvb3IoIHRleGVsSW5kZXggLyBtb3JwaFRhcmdldHNUZXh0dXJlU2l6ZS54ICk7XG5cdFx0XHRmbG9hdCB4ID0gdGV4ZWxJbmRleCAtIHkgKiBtb3JwaFRhcmdldHNUZXh0dXJlU2l6ZS54O1xuXHRcdFx0dmVjMyBtb3JwaFVWID0gdmVjMyggKCB4ICsgMC41ICkgLyBtb3JwaFRhcmdldHNUZXh0dXJlU2l6ZS54LCB5IC8gbW9ycGhUYXJnZXRzVGV4dHVyZVNpemUueSwgbW9ycGhUYXJnZXRJbmRleCApO1xuXHRcdFx0cmV0dXJuIHRleHR1cmUoIG1vcnBoVGFyZ2V0c1RleHR1cmUsIG1vcnBoVVYgKS54eXo7XG5cdFx0fVxuXHQjZWxzZVxuXHRcdCNpZm5kZWYgVVNFX01PUlBITk9STUFMU1xuXHRcdFx0dW5pZm9ybSBmbG9hdCBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDggXTtcblx0XHQjZWxzZVxuXHRcdFx0dW5pZm9ybSBmbG9hdCBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDQgXTtcblx0XHQjZW5kaWZcblx0I2VuZGlmXG4jZW5kaWYiLG1vcnBodGFyZ2V0X3ZlcnRleDoiI2lmZGVmIFVTRV9NT1JQSFRBUkdFVFNcblx0dHJhbnNmb3JtZWQgKj0gbW9ycGhUYXJnZXRCYXNlSW5mbHVlbmNlO1xuXHQjaWZkZWYgTU9SUEhUQVJHRVRTX1RFWFRVUkVcblx0XHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBNT1JQSFRBUkdFVFNfQ09VTlQ7IGkgKysgKSB7XG5cdFx0XHQjaWZuZGVmIFVTRV9NT1JQSE5PUk1BTFNcblx0XHRcdFx0aWYgKCBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIGkgXSAhPSAwLjAgKSB0cmFuc2Zvcm1lZCArPSBnZXRNb3JwaCggZ2xfVmVydGV4SUQsIGksIDAsIDEgKSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgaSBdO1xuXHRcdFx0I2Vsc2Vcblx0XHRcdFx0aWYgKCBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIGkgXSAhPSAwLjAgKSB0cmFuc2Zvcm1lZCArPSBnZXRNb3JwaCggZ2xfVmVydGV4SUQsIGksIDAsIDIgKSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgaSBdO1xuXHRcdFx0I2VuZGlmXG5cdFx0fVxuXHQjZWxzZVxuXHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0MCAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMCBdO1xuXHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0MSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMSBdO1xuXHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0MiAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMiBdO1xuXHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0MyAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMyBdO1xuXHRcdCNpZm5kZWYgVVNFX01PUlBITk9STUFMU1xuXHRcdFx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQ0ICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA0IF07XG5cdFx0XHR0cmFuc2Zvcm1lZCArPSBtb3JwaFRhcmdldDUgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDUgXTtcblx0XHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0NiAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNiBdO1xuXHRcdFx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQ3ICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA3IF07XG5cdFx0I2VuZGlmXG5cdCNlbmRpZlxuI2VuZGlmIixub3JtYWxfZnJhZ21lbnRfYmVnaW46ImZsb2F0IGZhY2VEaXJlY3Rpb24gPSBnbF9Gcm9udEZhY2luZyA/IDEuMCA6IC0gMS4wO1xuI2lmZGVmIEZMQVRfU0hBREVEXG5cdHZlYzMgZmR4ID0gdmVjMyggZEZkeCggdlZpZXdQb3NpdGlvbi54ICksIGRGZHgoIHZWaWV3UG9zaXRpb24ueSApLCBkRmR4KCB2Vmlld1Bvc2l0aW9uLnogKSApO1xuXHR2ZWMzIGZkeSA9IHZlYzMoIGRGZHkoIHZWaWV3UG9zaXRpb24ueCApLCBkRmR5KCB2Vmlld1Bvc2l0aW9uLnkgKSwgZEZkeSggdlZpZXdQb3NpdGlvbi56ICkgKTtcblx0dmVjMyBub3JtYWwgPSBub3JtYWxpemUoIGNyb3NzKCBmZHgsIGZkeSApICk7XG4jZWxzZVxuXHR2ZWMzIG5vcm1hbCA9IG5vcm1hbGl6ZSggdk5vcm1hbCApO1xuXHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0bm9ybWFsID0gbm9ybWFsICogZmFjZURpcmVjdGlvbjtcblx0I2VuZGlmXG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZlYzMgdGFuZ2VudCA9IG5vcm1hbGl6ZSggdlRhbmdlbnQgKTtcblx0XHR2ZWMzIGJpdGFuZ2VudCA9IG5vcm1hbGl6ZSggdkJpdGFuZ2VudCApO1xuXHRcdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRcdHRhbmdlbnQgPSB0YW5nZW50ICogZmFjZURpcmVjdGlvbjtcblx0XHRcdGJpdGFuZ2VudCA9IGJpdGFuZ2VudCAqIGZhY2VEaXJlY3Rpb247XG5cdFx0I2VuZGlmXG5cdFx0I2lmIGRlZmluZWQoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKSB8fCBkZWZpbmVkKCBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUCApXG5cdFx0XHRtYXQzIHZUQk4gPSBtYXQzKCB0YW5nZW50LCBiaXRhbmdlbnQsIG5vcm1hbCApO1xuXHRcdCNlbmRpZlxuXHQjZW5kaWZcbiNlbmRpZlxudmVjMyBnZW9tZXRyeU5vcm1hbCA9IG5vcm1hbDsiLG5vcm1hbF9mcmFnbWVudF9tYXBzOiIjaWZkZWYgT0JKRUNUU1BBQ0VfTk9STUFMTUFQXG5cdG5vcm1hbCA9IHRleHR1cmUyRCggbm9ybWFsTWFwLCB2VXYgKS54eXogKiAyLjAgLSAxLjA7XG5cdCNpZmRlZiBGTElQX1NJREVEXG5cdFx0bm9ybWFsID0gLSBub3JtYWw7XG5cdCNlbmRpZlxuXHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0bm9ybWFsID0gbm9ybWFsICogZmFjZURpcmVjdGlvbjtcblx0I2VuZGlmXG5cdG5vcm1hbCA9IG5vcm1hbGl6ZSggbm9ybWFsTWF0cml4ICogbm9ybWFsICk7XG4jZWxpZiBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQIClcblx0dmVjMyBtYXBOID0gdGV4dHVyZTJEKCBub3JtYWxNYXAsIHZVdiApLnh5eiAqIDIuMCAtIDEuMDtcblx0bWFwTi54eSAqPSBub3JtYWxTY2FsZTtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0bm9ybWFsID0gbm9ybWFsaXplKCB2VEJOICogbWFwTiApO1xuXHQjZWxzZVxuXHRcdG5vcm1hbCA9IHBlcnR1cmJOb3JtYWwyQXJiKCAtIHZWaWV3UG9zaXRpb24sIG5vcm1hbCwgbWFwTiwgZmFjZURpcmVjdGlvbiApO1xuXHQjZW5kaWZcbiNlbGlmIGRlZmluZWQoIFVTRV9CVU1QTUFQIClcblx0bm9ybWFsID0gcGVydHVyYk5vcm1hbEFyYiggLSB2Vmlld1Bvc2l0aW9uLCBub3JtYWwsIGRIZHh5X2Z3ZCgpLCBmYWNlRGlyZWN0aW9uICk7XG4jZW5kaWYiLG5vcm1hbF9wYXJzX2ZyYWdtZW50OiIjaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2YXJ5aW5nIHZlYzMgdlRhbmdlbnQ7XG5cdFx0dmFyeWluZyB2ZWMzIHZCaXRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmIixub3JtYWxfcGFyc192ZXJ0ZXg6IiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZhcnlpbmcgdmVjMyB2VGFuZ2VudDtcblx0XHR2YXJ5aW5nIHZlYzMgdkJpdGFuZ2VudDtcblx0I2VuZGlmXG4jZW5kaWYiLG5vcm1hbF92ZXJ0ZXg6IiNpZm5kZWYgRkxBVF9TSEFERURcblx0dk5vcm1hbCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWROb3JtYWwgKTtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dlRhbmdlbnQgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkVGFuZ2VudCApO1xuXHRcdHZCaXRhbmdlbnQgPSBub3JtYWxpemUoIGNyb3NzKCB2Tm9ybWFsLCB2VGFuZ2VudCApICogdGFuZ2VudC53ICk7XG5cdCNlbmRpZlxuI2VuZGlmIixub3JtYWxtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9OT1JNQUxNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgbm9ybWFsTWFwO1xuXHR1bmlmb3JtIHZlYzIgbm9ybWFsU2NhbGU7XG4jZW5kaWZcbiNpZmRlZiBPQkpFQ1RTUEFDRV9OT1JNQUxNQVBcblx0dW5pZm9ybSBtYXQzIG5vcm1hbE1hdHJpeDtcbiNlbmRpZlxuI2lmICEgZGVmaW5lZCAoIFVTRV9UQU5HRU5UICkgJiYgKCBkZWZpbmVkICggVEFOR0VOVFNQQUNFX05PUk1BTE1BUCApIHx8IGRlZmluZWQgKCBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUCApIClcblx0dmVjMyBwZXJ0dXJiTm9ybWFsMkFyYiggdmVjMyBleWVfcG9zLCB2ZWMzIHN1cmZfbm9ybSwgdmVjMyBtYXBOLCBmbG9hdCBmYWNlRGlyZWN0aW9uICkge1xuXHRcdHZlYzMgcTAgPSB2ZWMzKCBkRmR4KCBleWVfcG9zLnggKSwgZEZkeCggZXllX3Bvcy55ICksIGRGZHgoIGV5ZV9wb3MueiApICk7XG5cdFx0dmVjMyBxMSA9IHZlYzMoIGRGZHkoIGV5ZV9wb3MueCApLCBkRmR5KCBleWVfcG9zLnkgKSwgZEZkeSggZXllX3Bvcy56ICkgKTtcblx0XHR2ZWMyIHN0MCA9IGRGZHgoIHZVdi5zdCApO1xuXHRcdHZlYzIgc3QxID0gZEZkeSggdlV2LnN0ICk7XG5cdFx0dmVjMyBOID0gc3VyZl9ub3JtO1xuXHRcdHZlYzMgcTFwZXJwID0gY3Jvc3MoIHExLCBOICk7XG5cdFx0dmVjMyBxMHBlcnAgPSBjcm9zcyggTiwgcTAgKTtcblx0XHR2ZWMzIFQgPSBxMXBlcnAgKiBzdDAueCArIHEwcGVycCAqIHN0MS54O1xuXHRcdHZlYzMgQiA9IHExcGVycCAqIHN0MC55ICsgcTBwZXJwICogc3QxLnk7XG5cdFx0ZmxvYXQgZGV0ID0gbWF4KCBkb3QoIFQsIFQgKSwgZG90KCBCLCBCICkgKTtcblx0XHRmbG9hdCBzY2FsZSA9ICggZGV0ID09IDAuMCApID8gMC4wIDogZmFjZURpcmVjdGlvbiAqIGludmVyc2VzcXJ0KCBkZXQgKTtcblx0XHRyZXR1cm4gbm9ybWFsaXplKCBUICogKCBtYXBOLnggKiBzY2FsZSApICsgQiAqICggbWFwTi55ICogc2NhbGUgKSArIE4gKiBtYXBOLnogKTtcblx0fVxuI2VuZGlmIixjbGVhcmNvYXRfbm9ybWFsX2ZyYWdtZW50X2JlZ2luOiIjaWZkZWYgVVNFX0NMRUFSQ09BVFxuXHR2ZWMzIGNsZWFyY29hdE5vcm1hbCA9IGdlb21ldHJ5Tm9ybWFsO1xuI2VuZGlmIixjbGVhcmNvYXRfbm9ybWFsX2ZyYWdtZW50X21hcHM6IiNpZmRlZiBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUFxuXHR2ZWMzIGNsZWFyY29hdE1hcE4gPSB0ZXh0dXJlMkQoIGNsZWFyY29hdE5vcm1hbE1hcCwgdlV2ICkueHl6ICogMi4wIC0gMS4wO1xuXHRjbGVhcmNvYXRNYXBOLnh5ICo9IGNsZWFyY29hdE5vcm1hbFNjYWxlO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHRjbGVhcmNvYXROb3JtYWwgPSBub3JtYWxpemUoIHZUQk4gKiBjbGVhcmNvYXRNYXBOICk7XG5cdCNlbHNlXG5cdFx0Y2xlYXJjb2F0Tm9ybWFsID0gcGVydHVyYk5vcm1hbDJBcmIoIC0gdlZpZXdQb3NpdGlvbiwgY2xlYXJjb2F0Tm9ybWFsLCBjbGVhcmNvYXRNYXBOLCBmYWNlRGlyZWN0aW9uICk7XG5cdCNlbmRpZlxuI2VuZGlmIixjbGVhcmNvYXRfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9DTEVBUkNPQVRNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgY2xlYXJjb2F0TWFwO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0NMRUFSQ09BVF9ST1VHSE5FU1NNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgY2xlYXJjb2F0Um91Z2huZXNzTWFwO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgY2xlYXJjb2F0Tm9ybWFsTWFwO1xuXHR1bmlmb3JtIHZlYzIgY2xlYXJjb2F0Tm9ybWFsU2NhbGU7XG4jZW5kaWYiLG91dHB1dF9mcmFnbWVudDoiI2lmZGVmIE9QQVFVRVxuZGlmZnVzZUNvbG9yLmEgPSAxLjA7XG4jZW5kaWZcbiNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OXG5kaWZmdXNlQ29sb3IuYSAqPSB0cmFuc21pc3Npb25BbHBoYSArIDAuMTtcbiNlbmRpZlxuZ2xfRnJhZ0NvbG9yID0gdmVjNCggb3V0Z29pbmdMaWdodCwgZGlmZnVzZUNvbG9yLmEgKTsiLHBhY2tpbmc6InZlYzMgcGFja05vcm1hbFRvUkdCKCBjb25zdCBpbiB2ZWMzIG5vcm1hbCApIHtcblx0cmV0dXJuIG5vcm1hbGl6ZSggbm9ybWFsICkgKiAwLjUgKyAwLjU7XG59XG52ZWMzIHVucGFja1JHQlRvTm9ybWFsKCBjb25zdCBpbiB2ZWMzIHJnYiApIHtcblx0cmV0dXJuIDIuMCAqIHJnYi54eXogLSAxLjA7XG59XG5jb25zdCBmbG9hdCBQYWNrVXBzY2FsZSA9IDI1Ni4gLyAyNTUuO2NvbnN0IGZsb2F0IFVucGFja0Rvd25zY2FsZSA9IDI1NS4gLyAyNTYuO1xuY29uc3QgdmVjMyBQYWNrRmFjdG9ycyA9IHZlYzMoIDI1Ni4gKiAyNTYuICogMjU2LiwgMjU2LiAqIDI1Ni4sIDI1Ni4gKTtcbmNvbnN0IHZlYzQgVW5wYWNrRmFjdG9ycyA9IFVucGFja0Rvd25zY2FsZSAvIHZlYzQoIFBhY2tGYWN0b3JzLCAxLiApO1xuY29uc3QgZmxvYXQgU2hpZnRSaWdodDggPSAxLiAvIDI1Ni47XG52ZWM0IHBhY2tEZXB0aFRvUkdCQSggY29uc3QgaW4gZmxvYXQgdiApIHtcblx0dmVjNCByID0gdmVjNCggZnJhY3QoIHYgKiBQYWNrRmFjdG9ycyApLCB2ICk7XG5cdHIueXp3IC09IHIueHl6ICogU2hpZnRSaWdodDg7XHRyZXR1cm4gciAqIFBhY2tVcHNjYWxlO1xufVxuZmxvYXQgdW5wYWNrUkdCQVRvRGVwdGgoIGNvbnN0IGluIHZlYzQgdiApIHtcblx0cmV0dXJuIGRvdCggdiwgVW5wYWNrRmFjdG9ycyApO1xufVxudmVjNCBwYWNrMkhhbGZUb1JHQkEoIHZlYzIgdiApIHtcblx0dmVjNCByID0gdmVjNCggdi54LCBmcmFjdCggdi54ICogMjU1LjAgKSwgdi55LCBmcmFjdCggdi55ICogMjU1LjAgKSApO1xuXHRyZXR1cm4gdmVjNCggci54IC0gci55IC8gMjU1LjAsIHIueSwgci56IC0gci53IC8gMjU1LjAsIHIudyApO1xufVxudmVjMiB1bnBhY2tSR0JBVG8ySGFsZiggdmVjNCB2ICkge1xuXHRyZXR1cm4gdmVjMiggdi54ICsgKCB2LnkgLyAyNTUuMCApLCB2LnogKyAoIHYudyAvIDI1NS4wICkgKTtcbn1cbmZsb2F0IHZpZXdaVG9PcnRob2dyYXBoaWNEZXB0aCggY29uc3QgaW4gZmxvYXQgdmlld1osIGNvbnN0IGluIGZsb2F0IG5lYXIsIGNvbnN0IGluIGZsb2F0IGZhciApIHtcblx0cmV0dXJuICggdmlld1ogKyBuZWFyICkgLyAoIG5lYXIgLSBmYXIgKTtcbn1cbmZsb2F0IG9ydGhvZ3JhcGhpY0RlcHRoVG9WaWV3WiggY29uc3QgaW4gZmxvYXQgbGluZWFyQ2xpcFosIGNvbnN0IGluIGZsb2F0IG5lYXIsIGNvbnN0IGluIGZsb2F0IGZhciApIHtcblx0cmV0dXJuIGxpbmVhckNsaXBaICogKCBuZWFyIC0gZmFyICkgLSBuZWFyO1xufVxuZmxvYXQgdmlld1pUb1BlcnNwZWN0aXZlRGVwdGgoIGNvbnN0IGluIGZsb2F0IHZpZXdaLCBjb25zdCBpbiBmbG9hdCBuZWFyLCBjb25zdCBpbiBmbG9hdCBmYXIgKSB7XG5cdHJldHVybiAoICggbmVhciArIHZpZXdaICkgKiBmYXIgKSAvICggKCBmYXIgLSBuZWFyICkgKiB2aWV3WiApO1xufVxuZmxvYXQgcGVyc3BlY3RpdmVEZXB0aFRvVmlld1ooIGNvbnN0IGluIGZsb2F0IGludkNsaXBaLCBjb25zdCBpbiBmbG9hdCBuZWFyLCBjb25zdCBpbiBmbG9hdCBmYXIgKSB7XG5cdHJldHVybiAoIG5lYXIgKiBmYXIgKSAvICggKCBmYXIgLSBuZWFyICkgKiBpbnZDbGlwWiAtIGZhciApO1xufSIscHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudDoiI2lmZGVmIFBSRU1VTFRJUExJRURfQUxQSEFcblx0Z2xfRnJhZ0NvbG9yLnJnYiAqPSBnbF9GcmFnQ29sb3IuYTtcbiNlbmRpZiIscHJvamVjdF92ZXJ0ZXg6InZlYzQgbXZQb3NpdGlvbiA9IHZlYzQoIHRyYW5zZm9ybWVkLCAxLjAgKTtcbiNpZmRlZiBVU0VfSU5TVEFOQ0lOR1xuXHRtdlBvc2l0aW9uID0gaW5zdGFuY2VNYXRyaXggKiBtdlBvc2l0aW9uO1xuI2VuZGlmXG5tdlBvc2l0aW9uID0gbW9kZWxWaWV3TWF0cml4ICogbXZQb3NpdGlvbjtcbmdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG12UG9zaXRpb247IixkaXRoZXJpbmdfZnJhZ21lbnQ6IiNpZmRlZiBESVRIRVJJTkdcblx0Z2xfRnJhZ0NvbG9yLnJnYiA9IGRpdGhlcmluZyggZ2xfRnJhZ0NvbG9yLnJnYiApO1xuI2VuZGlmIixkaXRoZXJpbmdfcGFyc19mcmFnbWVudDoiI2lmZGVmIERJVEhFUklOR1xuXHR2ZWMzIGRpdGhlcmluZyggdmVjMyBjb2xvciApIHtcblx0XHRmbG9hdCBncmlkX3Bvc2l0aW9uID0gcmFuZCggZ2xfRnJhZ0Nvb3JkLnh5ICk7XG5cdFx0dmVjMyBkaXRoZXJfc2hpZnRfUkdCID0gdmVjMyggMC4yNSAvIDI1NS4wLCAtMC4yNSAvIDI1NS4wLCAwLjI1IC8gMjU1LjAgKTtcblx0XHRkaXRoZXJfc2hpZnRfUkdCID0gbWl4KCAyLjAgKiBkaXRoZXJfc2hpZnRfUkdCLCAtMi4wICogZGl0aGVyX3NoaWZ0X1JHQiwgZ3JpZF9wb3NpdGlvbiApO1xuXHRcdHJldHVybiBjb2xvciArIGRpdGhlcl9zaGlmdF9SR0I7XG5cdH1cbiNlbmRpZiIscm91Z2huZXNzbWFwX2ZyYWdtZW50OiJmbG9hdCByb3VnaG5lc3NGYWN0b3IgPSByb3VnaG5lc3M7XG4jaWZkZWYgVVNFX1JPVUdITkVTU01BUFxuXHR2ZWM0IHRleGVsUm91Z2huZXNzID0gdGV4dHVyZTJEKCByb3VnaG5lc3NNYXAsIHZVdiApO1xuXHRyb3VnaG5lc3NGYWN0b3IgKj0gdGV4ZWxSb3VnaG5lc3MuZztcbiNlbmRpZiIscm91Z2huZXNzbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfUk9VR0hORVNTTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIHJvdWdobmVzc01hcDtcbiNlbmRpZiIsc2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfU0hBRE9XTUFQXG5cdCNpZiBOVU1fRElSX0xJR0hUX1NIQURPV1MgPiAwXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgZGlyZWN0aW9uYWxTaGFkb3dNYXBbIE5VTV9ESVJfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHZhcnlpbmcgdmVjNCB2RGlyZWN0aW9uYWxTaGFkb3dDb29yZFsgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07XG5cdFx0c3RydWN0IERpcmVjdGlvbmFsTGlnaHRTaGFkb3cge1xuXHRcdFx0ZmxvYXQgc2hhZG93Qmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd05vcm1hbEJpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dSYWRpdXM7XG5cdFx0XHR2ZWMyIHNoYWRvd01hcFNpemU7XG5cdFx0fTtcblx0XHR1bmlmb3JtIERpcmVjdGlvbmFsTGlnaHRTaGFkb3cgZGlyZWN0aW9uYWxMaWdodFNoYWRvd3NbIE5VTV9ESVJfTElHSFRfU0hBRE9XUyBdO1xuXHQjZW5kaWZcblx0I2lmIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgc3BvdFNoYWRvd01hcFsgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHZhcnlpbmcgdmVjNCB2U3BvdFNoYWRvd0Nvb3JkWyBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0c3RydWN0IFNwb3RMaWdodFNoYWRvdyB7XG5cdFx0XHRmbG9hdCBzaGFkb3dCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93Tm9ybWFsQmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd1JhZGl1cztcblx0XHRcdHZlYzIgc2hhZG93TWFwU2l6ZTtcblx0XHR9O1xuXHRcdHVuaWZvcm0gU3BvdExpZ2h0U2hhZG93IHNwb3RMaWdodFNoYWRvd3NbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTtcblx0I2VuZGlmXG5cdCNpZiBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCBwb2ludFNoYWRvd01hcFsgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTtcblx0XHR2YXJ5aW5nIHZlYzQgdlBvaW50U2hhZG93Q29vcmRbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0c3RydWN0IFBvaW50TGlnaHRTaGFkb3cge1xuXHRcdFx0ZmxvYXQgc2hhZG93Qmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd05vcm1hbEJpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dSYWRpdXM7XG5cdFx0XHR2ZWMyIHNoYWRvd01hcFNpemU7XG5cdFx0XHRmbG9hdCBzaGFkb3dDYW1lcmFOZWFyO1xuXHRcdFx0ZmxvYXQgc2hhZG93Q2FtZXJhRmFyO1xuXHRcdH07XG5cdFx0dW5pZm9ybSBQb2ludExpZ2h0U2hhZG93IHBvaW50TGlnaHRTaGFkb3dzWyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdO1xuXHQjZW5kaWZcblx0ZmxvYXQgdGV4dHVyZTJEQ29tcGFyZSggc2FtcGxlcjJEIGRlcHRocywgdmVjMiB1diwgZmxvYXQgY29tcGFyZSApIHtcblx0XHRyZXR1cm4gc3RlcCggY29tcGFyZSwgdW5wYWNrUkdCQVRvRGVwdGgoIHRleHR1cmUyRCggZGVwdGhzLCB1diApICkgKTtcblx0fVxuXHR2ZWMyIHRleHR1cmUyRERpc3RyaWJ1dGlvbiggc2FtcGxlcjJEIHNoYWRvdywgdmVjMiB1diApIHtcblx0XHRyZXR1cm4gdW5wYWNrUkdCQVRvMkhhbGYoIHRleHR1cmUyRCggc2hhZG93LCB1diApICk7XG5cdH1cblx0ZmxvYXQgVlNNU2hhZG93IChzYW1wbGVyMkQgc2hhZG93LCB2ZWMyIHV2LCBmbG9hdCBjb21wYXJlICl7XG5cdFx0ZmxvYXQgb2NjbHVzaW9uID0gMS4wO1xuXHRcdHZlYzIgZGlzdHJpYnV0aW9uID0gdGV4dHVyZTJERGlzdHJpYnV0aW9uKCBzaGFkb3csIHV2ICk7XG5cdFx0ZmxvYXQgaGFyZF9zaGFkb3cgPSBzdGVwKCBjb21wYXJlICwgZGlzdHJpYnV0aW9uLnggKTtcblx0XHRpZiAoaGFyZF9zaGFkb3cgIT0gMS4wICkge1xuXHRcdFx0ZmxvYXQgZGlzdGFuY2UgPSBjb21wYXJlIC0gZGlzdHJpYnV0aW9uLnggO1xuXHRcdFx0ZmxvYXQgdmFyaWFuY2UgPSBtYXgoIDAuMDAwMDAsIGRpc3RyaWJ1dGlvbi55ICogZGlzdHJpYnV0aW9uLnkgKTtcblx0XHRcdGZsb2F0IHNvZnRuZXNzX3Byb2JhYmlsaXR5ID0gdmFyaWFuY2UgLyAodmFyaWFuY2UgKyBkaXN0YW5jZSAqIGRpc3RhbmNlICk7XHRcdFx0c29mdG5lc3NfcHJvYmFiaWxpdHkgPSBjbGFtcCggKCBzb2Z0bmVzc19wcm9iYWJpbGl0eSAtIDAuMyApIC8gKCAwLjk1IC0gMC4zICksIDAuMCwgMS4wICk7XHRcdFx0b2NjbHVzaW9uID0gY2xhbXAoIG1heCggaGFyZF9zaGFkb3csIHNvZnRuZXNzX3Byb2JhYmlsaXR5ICksIDAuMCwgMS4wICk7XG5cdFx0fVxuXHRcdHJldHVybiBvY2NsdXNpb247XG5cdH1cblx0ZmxvYXQgZ2V0U2hhZG93KCBzYW1wbGVyMkQgc2hhZG93TWFwLCB2ZWMyIHNoYWRvd01hcFNpemUsIGZsb2F0IHNoYWRvd0JpYXMsIGZsb2F0IHNoYWRvd1JhZGl1cywgdmVjNCBzaGFkb3dDb29yZCApIHtcblx0XHRmbG9hdCBzaGFkb3cgPSAxLjA7XG5cdFx0c2hhZG93Q29vcmQueHl6IC89IHNoYWRvd0Nvb3JkLnc7XG5cdFx0c2hhZG93Q29vcmQueiArPSBzaGFkb3dCaWFzO1xuXHRcdGJ2ZWM0IGluRnJ1c3R1bVZlYyA9IGJ2ZWM0ICggc2hhZG93Q29vcmQueCA+PSAwLjAsIHNoYWRvd0Nvb3JkLnggPD0gMS4wLCBzaGFkb3dDb29yZC55ID49IDAuMCwgc2hhZG93Q29vcmQueSA8PSAxLjAgKTtcblx0XHRib29sIGluRnJ1c3R1bSA9IGFsbCggaW5GcnVzdHVtVmVjICk7XG5cdFx0YnZlYzIgZnJ1c3R1bVRlc3RWZWMgPSBidmVjMiggaW5GcnVzdHVtLCBzaGFkb3dDb29yZC56IDw9IDEuMCApO1xuXHRcdGJvb2wgZnJ1c3R1bVRlc3QgPSBhbGwoIGZydXN0dW1UZXN0VmVjICk7XG5cdFx0aWYgKCBmcnVzdHVtVGVzdCApIHtcblx0XHQjaWYgZGVmaW5lZCggU0hBRE9XTUFQX1RZUEVfUENGIClcblx0XHRcdHZlYzIgdGV4ZWxTaXplID0gdmVjMiggMS4wICkgLyBzaGFkb3dNYXBTaXplO1xuXHRcdFx0ZmxvYXQgZHgwID0gLSB0ZXhlbFNpemUueCAqIHNoYWRvd1JhZGl1cztcblx0XHRcdGZsb2F0IGR5MCA9IC0gdGV4ZWxTaXplLnkgKiBzaGFkb3dSYWRpdXM7XG5cdFx0XHRmbG9hdCBkeDEgPSArIHRleGVsU2l6ZS54ICogc2hhZG93UmFkaXVzO1xuXHRcdFx0ZmxvYXQgZHkxID0gKyB0ZXhlbFNpemUueSAqIHNoYWRvd1JhZGl1cztcblx0XHRcdGZsb2F0IGR4MiA9IGR4MCAvIDIuMDtcblx0XHRcdGZsb2F0IGR5MiA9IGR5MCAvIDIuMDtcblx0XHRcdGZsb2F0IGR4MyA9IGR4MSAvIDIuMDtcblx0XHRcdGZsb2F0IGR5MyA9IGR5MSAvIDIuMDtcblx0XHRcdHNoYWRvdyA9IChcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MCwgZHkwICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCAwLjAsIGR5MCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgxLCBkeTAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MiwgZHkyICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCAwLjAsIGR5MiApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgzLCBkeTIgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MCwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDIsIDAuMCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5LCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgzLCAwLjAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MSwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDIsIGR5MyApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggMC4wLCBkeTMgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MywgZHkzICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDAsIGR5MSApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggMC4wLCBkeTEgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MSwgZHkxICksIHNoYWRvd0Nvb3JkLnogKVxuXHRcdFx0KSAqICggMS4wIC8gMTcuMCApO1xuXHRcdCNlbGlmIGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1BDRl9TT0ZUIClcblx0XHRcdHZlYzIgdGV4ZWxTaXplID0gdmVjMiggMS4wICkgLyBzaGFkb3dNYXBTaXplO1xuXHRcdFx0ZmxvYXQgZHggPSB0ZXhlbFNpemUueDtcblx0XHRcdGZsb2F0IGR5ID0gdGV4ZWxTaXplLnk7XG5cdFx0XHR2ZWMyIHV2ID0gc2hhZG93Q29vcmQueHk7XG5cdFx0XHR2ZWMyIGYgPSBmcmFjdCggdXYgKiBzaGFkb3dNYXBTaXplICsgMC41ICk7XG5cdFx0XHR1diAtPSBmICogdGV4ZWxTaXplO1xuXHRcdFx0c2hhZG93ID0gKFxuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2LCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggZHgsIDAuMCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMC4wLCBkeSApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdGV4ZWxTaXplLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHRtaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAtZHgsIDAuMCApLCBzaGFkb3dDb29yZC56ICksIFxuXHRcdFx0XHRcdCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMi4wICogZHgsIDAuMCApLCBzaGFkb3dDb29yZC56ICksXG5cdFx0XHRcdFx0IGYueCApICtcblx0XHRcdFx0bWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggLWR4LCBkeSApLCBzaGFkb3dDb29yZC56ICksIFxuXHRcdFx0XHRcdCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMi4wICogZHgsIGR5ICksIHNoYWRvd0Nvb3JkLnogKSxcblx0XHRcdFx0XHQgZi54ICkgK1xuXHRcdFx0XHRtaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAwLjAsIC1keSApLCBzaGFkb3dDb29yZC56ICksIFxuXHRcdFx0XHRcdCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMC4wLCAyLjAgKiBkeSApLCBzaGFkb3dDb29yZC56ICksXG5cdFx0XHRcdFx0IGYueSApICtcblx0XHRcdFx0bWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggZHgsIC1keSApLCBzaGFkb3dDb29yZC56ICksIFxuXHRcdFx0XHRcdCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggZHgsIDIuMCAqIGR5ICksIHNoYWRvd0Nvb3JkLnogKSxcblx0XHRcdFx0XHQgZi55ICkgK1xuXHRcdFx0XHRtaXgoIG1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIC1keCwgLWR5ICksIHNoYWRvd0Nvb3JkLnogKSwgXG5cdFx0XHRcdFx0XHQgIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAyLjAgKiBkeCwgLWR5ICksIHNoYWRvd0Nvb3JkLnogKSxcblx0XHRcdFx0XHRcdCAgZi54ICksXG5cdFx0XHRcdFx0IG1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIC1keCwgMi4wICogZHkgKSwgc2hhZG93Q29vcmQueiApLCBcblx0XHRcdFx0XHRcdCAgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDIuMCAqIGR4LCAyLjAgKiBkeSApLCBzaGFkb3dDb29yZC56ICksXG5cdFx0XHRcdFx0XHQgIGYueCApLFxuXHRcdFx0XHRcdCBmLnkgKVxuXHRcdFx0KSAqICggMS4wIC8gOS4wICk7XG5cdFx0I2VsaWYgZGVmaW5lZCggU0hBRE9XTUFQX1RZUEVfVlNNIClcblx0XHRcdHNoYWRvdyA9IFZTTVNoYWRvdyggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSwgc2hhZG93Q29vcmQueiApO1xuXHRcdCNlbHNlXG5cdFx0XHRzaGFkb3cgPSB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5LCBzaGFkb3dDb29yZC56ICk7XG5cdFx0I2VuZGlmXG5cdFx0fVxuXHRcdHJldHVybiBzaGFkb3c7XG5cdH1cblx0dmVjMiBjdWJlVG9VViggdmVjMyB2LCBmbG9hdCB0ZXhlbFNpemVZICkge1xuXHRcdHZlYzMgYWJzViA9IGFicyggdiApO1xuXHRcdGZsb2F0IHNjYWxlVG9DdWJlID0gMS4wIC8gbWF4KCBhYnNWLngsIG1heCggYWJzVi55LCBhYnNWLnogKSApO1xuXHRcdGFic1YgKj0gc2NhbGVUb0N1YmU7XG5cdFx0diAqPSBzY2FsZVRvQ3ViZSAqICggMS4wIC0gMi4wICogdGV4ZWxTaXplWSApO1xuXHRcdHZlYzIgcGxhbmFyID0gdi54eTtcblx0XHRmbG9hdCBhbG1vc3RBVGV4ZWwgPSAxLjUgKiB0ZXhlbFNpemVZO1xuXHRcdGZsb2F0IGFsbW9zdE9uZSA9IDEuMCAtIGFsbW9zdEFUZXhlbDtcblx0XHRpZiAoIGFic1YueiA+PSBhbG1vc3RPbmUgKSB7XG5cdFx0XHRpZiAoIHYueiA+IDAuMCApXG5cdFx0XHRcdHBsYW5hci54ID0gNC4wIC0gdi54O1xuXHRcdH0gZWxzZSBpZiAoIGFic1YueCA+PSBhbG1vc3RPbmUgKSB7XG5cdFx0XHRmbG9hdCBzaWduWCA9IHNpZ24oIHYueCApO1xuXHRcdFx0cGxhbmFyLnggPSB2LnogKiBzaWduWCArIDIuMCAqIHNpZ25YO1xuXHRcdH0gZWxzZSBpZiAoIGFic1YueSA+PSBhbG1vc3RPbmUgKSB7XG5cdFx0XHRmbG9hdCBzaWduWSA9IHNpZ24oIHYueSApO1xuXHRcdFx0cGxhbmFyLnggPSB2LnggKyAyLjAgKiBzaWduWSArIDIuMDtcblx0XHRcdHBsYW5hci55ID0gdi56ICogc2lnblkgLSAyLjA7XG5cdFx0fVxuXHRcdHJldHVybiB2ZWMyKCAwLjEyNSwgMC4yNSApICogcGxhbmFyICsgdmVjMiggMC4zNzUsIDAuNzUgKTtcblx0fVxuXHRmbG9hdCBnZXRQb2ludFNoYWRvdyggc2FtcGxlcjJEIHNoYWRvd01hcCwgdmVjMiBzaGFkb3dNYXBTaXplLCBmbG9hdCBzaGFkb3dCaWFzLCBmbG9hdCBzaGFkb3dSYWRpdXMsIHZlYzQgc2hhZG93Q29vcmQsIGZsb2F0IHNoYWRvd0NhbWVyYU5lYXIsIGZsb2F0IHNoYWRvd0NhbWVyYUZhciApIHtcblx0XHR2ZWMyIHRleGVsU2l6ZSA9IHZlYzIoIDEuMCApIC8gKCBzaGFkb3dNYXBTaXplICogdmVjMiggNC4wLCAyLjAgKSApO1xuXHRcdHZlYzMgbGlnaHRUb1Bvc2l0aW9uID0gc2hhZG93Q29vcmQueHl6O1xuXHRcdGZsb2F0IGRwID0gKCBsZW5ndGgoIGxpZ2h0VG9Qb3NpdGlvbiApIC0gc2hhZG93Q2FtZXJhTmVhciApIC8gKCBzaGFkb3dDYW1lcmFGYXIgLSBzaGFkb3dDYW1lcmFOZWFyICk7XHRcdGRwICs9IHNoYWRvd0JpYXM7XG5cdFx0dmVjMyBiZDNEID0gbm9ybWFsaXplKCBsaWdodFRvUG9zaXRpb24gKTtcblx0XHQjaWYgZGVmaW5lZCggU0hBRE9XTUFQX1RZUEVfUENGICkgfHwgZGVmaW5lZCggU0hBRE9XTUFQX1RZUEVfUENGX1NPRlQgKSB8fCBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9WU00gKVxuXHRcdFx0dmVjMiBvZmZzZXQgPSB2ZWMyKCAtIDEsIDEgKSAqIHNoYWRvd1JhZGl1cyAqIHRleGVsU2l6ZS55O1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC54eXksIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnl5eSwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueHl4LCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC55eXgsIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNELCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC54eHksIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnl4eSwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueHh4LCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC55eHgsIHRleGVsU2l6ZS55ICksIGRwIClcblx0XHRcdCkgKiAoIDEuMCAvIDkuMCApO1xuXHRcdCNlbHNlXG5cdFx0XHRyZXR1cm4gdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCwgdGV4ZWxTaXplLnkgKSwgZHAgKTtcblx0XHQjZW5kaWZcblx0fVxuI2VuZGlmIixzaGFkb3dtYXBfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfU0hBRE9XTUFQXG5cdCNpZiBOVU1fRElSX0xJR0hUX1NIQURPV1MgPiAwXG5cdFx0dW5pZm9ybSBtYXQ0IGRpcmVjdGlvbmFsU2hhZG93TWF0cml4WyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTtcblx0XHR2YXJ5aW5nIHZlYzQgdkRpcmVjdGlvbmFsU2hhZG93Q29vcmRbIE5VTV9ESVJfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHN0cnVjdCBEaXJlY3Rpb25hbExpZ2h0U2hhZG93IHtcblx0XHRcdGZsb2F0IHNoYWRvd0JpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dOb3JtYWxCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93UmFkaXVzO1xuXHRcdFx0dmVjMiBzaGFkb3dNYXBTaXplO1xuXHRcdH07XG5cdFx0dW5pZm9ybSBEaXJlY3Rpb25hbExpZ2h0U2hhZG93IGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTtcblx0I2VuZGlmXG5cdCNpZiBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMFxuXHRcdHVuaWZvcm0gbWF0NCBzcG90U2hhZG93TWF0cml4WyBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0dmFyeWluZyB2ZWM0IHZTcG90U2hhZG93Q29vcmRbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTtcblx0XHRzdHJ1Y3QgU3BvdExpZ2h0U2hhZG93IHtcblx0XHRcdGZsb2F0IHNoYWRvd0JpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dOb3JtYWxCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93UmFkaXVzO1xuXHRcdFx0dmVjMiBzaGFkb3dNYXBTaXplO1xuXHRcdH07XG5cdFx0dW5pZm9ybSBTcG90TGlnaHRTaGFkb3cgc3BvdExpZ2h0U2hhZG93c1sgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdO1xuXHQjZW5kaWZcblx0I2lmIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMFxuXHRcdHVuaWZvcm0gbWF0NCBwb2ludFNoYWRvd01hdHJpeFsgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTtcblx0XHR2YXJ5aW5nIHZlYzQgdlBvaW50U2hhZG93Q29vcmRbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0c3RydWN0IFBvaW50TGlnaHRTaGFkb3cge1xuXHRcdFx0ZmxvYXQgc2hhZG93Qmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd05vcm1hbEJpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dSYWRpdXM7XG5cdFx0XHR2ZWMyIHNoYWRvd01hcFNpemU7XG5cdFx0XHRmbG9hdCBzaGFkb3dDYW1lcmFOZWFyO1xuXHRcdFx0ZmxvYXQgc2hhZG93Q2FtZXJhRmFyO1xuXHRcdH07XG5cdFx0dW5pZm9ybSBQb2ludExpZ2h0U2hhZG93IHBvaW50TGlnaHRTaGFkb3dzWyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdO1xuXHQjZW5kaWZcbiNlbmRpZiIsc2hhZG93bWFwX3ZlcnRleDoiI2lmZGVmIFVTRV9TSEFET1dNQVBcblx0I2lmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDAgfHwgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDAgfHwgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFx0dmVjMyBzaGFkb3dXb3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIHRyYW5zZm9ybWVkTm9ybWFsLCB2aWV3TWF0cml4ICk7XG5cdFx0dmVjNCBzaGFkb3dXb3JsZFBvc2l0aW9uO1xuXHQjZW5kaWZcblx0I2lmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDBcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fRElSX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7XG5cdFx0c2hhZG93V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb24gKyB2ZWM0KCBzaGFkb3dXb3JsZE5vcm1hbCAqIGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzWyBpIF0uc2hhZG93Tm9ybWFsQmlhcywgMCApO1xuXHRcdHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBpIF0gPSBkaXJlY3Rpb25hbFNoYWRvd01hdHJpeFsgaSBdICogc2hhZG93V29ybGRQb3NpdGlvbjtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjZW5kaWZcblx0I2lmIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1NQT1RfTElHSFRfU0hBRE9XUzsgaSArKyApIHtcblx0XHRzaGFkb3dXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbiArIHZlYzQoIHNoYWRvd1dvcmxkTm9ybWFsICogc3BvdExpZ2h0U2hhZG93c1sgaSBdLnNoYWRvd05vcm1hbEJpYXMsIDAgKTtcblx0XHR2U3BvdFNoYWRvd0Nvb3JkWyBpIF0gPSBzcG90U2hhZG93TWF0cml4WyBpIF0gKiBzaGFkb3dXb3JsZFBvc2l0aW9uO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuXHQjaWYgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7XG5cdFx0c2hhZG93V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb24gKyB2ZWM0KCBzaGFkb3dXb3JsZE5vcm1hbCAqIHBvaW50TGlnaHRTaGFkb3dzWyBpIF0uc2hhZG93Tm9ybWFsQmlhcywgMCApO1xuXHRcdHZQb2ludFNoYWRvd0Nvb3JkWyBpIF0gPSBwb2ludFNoYWRvd01hdHJpeFsgaSBdICogc2hhZG93V29ybGRQb3NpdGlvbjtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjZW5kaWZcbiNlbmRpZiIsc2hhZG93bWFza19wYXJzX2ZyYWdtZW50OiJmbG9hdCBnZXRTaGFkb3dNYXNrKCkge1xuXHRmbG9hdCBzaGFkb3cgPSAxLjA7XG5cdCNpZmRlZiBVU0VfU0hBRE9XTUFQXG5cdCNpZiBOVU1fRElSX0xJR0hUX1NIQURPV1MgPiAwXG5cdERpcmVjdGlvbmFsTGlnaHRTaGFkb3cgZGlyZWN0aW9uYWxMaWdodDtcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fRElSX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7XG5cdFx0ZGlyZWN0aW9uYWxMaWdodCA9IGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzWyBpIF07XG5cdFx0c2hhZG93ICo9IHJlY2VpdmVTaGFkb3cgPyBnZXRTaGFkb3coIGRpcmVjdGlvbmFsU2hhZG93TWFwWyBpIF0sIGRpcmVjdGlvbmFsTGlnaHQuc2hhZG93TWFwU2l6ZSwgZGlyZWN0aW9uYWxMaWdodC5zaGFkb3dCaWFzLCBkaXJlY3Rpb25hbExpZ2h0LnNoYWRvd1JhZGl1cywgdkRpcmVjdGlvbmFsU2hhZG93Q29vcmRbIGkgXSApIDogMS4wO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuXHQjaWYgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDBcblx0U3BvdExpZ2h0U2hhZG93IHNwb3RMaWdodDtcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fU1BPVF9MSUdIVF9TSEFET1dTOyBpICsrICkge1xuXHRcdHNwb3RMaWdodCA9IHNwb3RMaWdodFNoYWRvd3NbIGkgXTtcblx0XHRzaGFkb3cgKj0gcmVjZWl2ZVNoYWRvdyA/IGdldFNoYWRvdyggc3BvdFNoYWRvd01hcFsgaSBdLCBzcG90TGlnaHQuc2hhZG93TWFwU2l6ZSwgc3BvdExpZ2h0LnNoYWRvd0JpYXMsIHNwb3RMaWdodC5zaGFkb3dSYWRpdXMsIHZTcG90U2hhZG93Q29vcmRbIGkgXSApIDogMS4wO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuXHQjaWYgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFBvaW50TGlnaHRTaGFkb3cgcG9pbnRMaWdodDtcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUzsgaSArKyApIHtcblx0XHRwb2ludExpZ2h0ID0gcG9pbnRMaWdodFNoYWRvd3NbIGkgXTtcblx0XHRzaGFkb3cgKj0gcmVjZWl2ZVNoYWRvdyA/IGdldFBvaW50U2hhZG93KCBwb2ludFNoYWRvd01hcFsgaSBdLCBwb2ludExpZ2h0LnNoYWRvd01hcFNpemUsIHBvaW50TGlnaHQuc2hhZG93QmlhcywgcG9pbnRMaWdodC5zaGFkb3dSYWRpdXMsIHZQb2ludFNoYWRvd0Nvb3JkWyBpIF0sIHBvaW50TGlnaHQuc2hhZG93Q2FtZXJhTmVhciwgcG9pbnRMaWdodC5zaGFkb3dDYW1lcmFGYXIgKSA6IDEuMDtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjZW5kaWZcblx0I2VuZGlmXG5cdHJldHVybiBzaGFkb3c7XG59Iixza2luYmFzZV92ZXJ0ZXg6IiNpZmRlZiBVU0VfU0tJTk5JTkdcblx0bWF0NCBib25lTWF0WCA9IGdldEJvbmVNYXRyaXgoIHNraW5JbmRleC54ICk7XG5cdG1hdDQgYm9uZU1hdFkgPSBnZXRCb25lTWF0cml4KCBza2luSW5kZXgueSApO1xuXHRtYXQ0IGJvbmVNYXRaID0gZ2V0Qm9uZU1hdHJpeCggc2tpbkluZGV4LnogKTtcblx0bWF0NCBib25lTWF0VyA9IGdldEJvbmVNYXRyaXgoIHNraW5JbmRleC53ICk7XG4jZW5kaWYiLHNraW5uaW5nX3BhcnNfdmVydGV4OiIjaWZkZWYgVVNFX1NLSU5OSU5HXG5cdHVuaWZvcm0gbWF0NCBiaW5kTWF0cml4O1xuXHR1bmlmb3JtIG1hdDQgYmluZE1hdHJpeEludmVyc2U7XG5cdCNpZmRlZiBCT05FX1RFWFRVUkVcblx0XHR1bmlmb3JtIGhpZ2hwIHNhbXBsZXIyRCBib25lVGV4dHVyZTtcblx0XHR1bmlmb3JtIGludCBib25lVGV4dHVyZVNpemU7XG5cdFx0bWF0NCBnZXRCb25lTWF0cml4KCBjb25zdCBpbiBmbG9hdCBpICkge1xuXHRcdFx0ZmxvYXQgaiA9IGkgKiA0LjA7XG5cdFx0XHRmbG9hdCB4ID0gbW9kKCBqLCBmbG9hdCggYm9uZVRleHR1cmVTaXplICkgKTtcblx0XHRcdGZsb2F0IHkgPSBmbG9vciggaiAvIGZsb2F0KCBib25lVGV4dHVyZVNpemUgKSApO1xuXHRcdFx0ZmxvYXQgZHggPSAxLjAgLyBmbG9hdCggYm9uZVRleHR1cmVTaXplICk7XG5cdFx0XHRmbG9hdCBkeSA9IDEuMCAvIGZsb2F0KCBib25lVGV4dHVyZVNpemUgKTtcblx0XHRcdHkgPSBkeSAqICggeSArIDAuNSApO1xuXHRcdFx0dmVjNCB2MSA9IHRleHR1cmUyRCggYm9uZVRleHR1cmUsIHZlYzIoIGR4ICogKCB4ICsgMC41ICksIHkgKSApO1xuXHRcdFx0dmVjNCB2MiA9IHRleHR1cmUyRCggYm9uZVRleHR1cmUsIHZlYzIoIGR4ICogKCB4ICsgMS41ICksIHkgKSApO1xuXHRcdFx0dmVjNCB2MyA9IHRleHR1cmUyRCggYm9uZVRleHR1cmUsIHZlYzIoIGR4ICogKCB4ICsgMi41ICksIHkgKSApO1xuXHRcdFx0dmVjNCB2NCA9IHRleHR1cmUyRCggYm9uZVRleHR1cmUsIHZlYzIoIGR4ICogKCB4ICsgMy41ICksIHkgKSApO1xuXHRcdFx0bWF0NCBib25lID0gbWF0NCggdjEsIHYyLCB2MywgdjQgKTtcblx0XHRcdHJldHVybiBib25lO1xuXHRcdH1cblx0I2Vsc2Vcblx0XHR1bmlmb3JtIG1hdDQgYm9uZU1hdHJpY2VzWyBNQVhfQk9ORVMgXTtcblx0XHRtYXQ0IGdldEJvbmVNYXRyaXgoIGNvbnN0IGluIGZsb2F0IGkgKSB7XG5cdFx0XHRtYXQ0IGJvbmUgPSBib25lTWF0cmljZXNbIGludChpKSBdO1xuXHRcdFx0cmV0dXJuIGJvbmU7XG5cdFx0fVxuXHQjZW5kaWZcbiNlbmRpZiIsc2tpbm5pbmdfdmVydGV4OiIjaWZkZWYgVVNFX1NLSU5OSU5HXG5cdHZlYzQgc2tpblZlcnRleCA9IGJpbmRNYXRyaXggKiB2ZWM0KCB0cmFuc2Zvcm1lZCwgMS4wICk7XG5cdHZlYzQgc2tpbm5lZCA9IHZlYzQoIDAuMCApO1xuXHRza2lubmVkICs9IGJvbmVNYXRYICogc2tpblZlcnRleCAqIHNraW5XZWlnaHQueDtcblx0c2tpbm5lZCArPSBib25lTWF0WSAqIHNraW5WZXJ0ZXggKiBza2luV2VpZ2h0Lnk7XG5cdHNraW5uZWQgKz0gYm9uZU1hdFogKiBza2luVmVydGV4ICogc2tpbldlaWdodC56O1xuXHRza2lubmVkICs9IGJvbmVNYXRXICogc2tpblZlcnRleCAqIHNraW5XZWlnaHQudztcblx0dHJhbnNmb3JtZWQgPSAoIGJpbmRNYXRyaXhJbnZlcnNlICogc2tpbm5lZCApLnh5ejtcbiNlbmRpZiIsc2tpbm5vcm1hbF92ZXJ0ZXg6IiNpZmRlZiBVU0VfU0tJTk5JTkdcblx0bWF0NCBza2luTWF0cml4ID0gbWF0NCggMC4wICk7XG5cdHNraW5NYXRyaXggKz0gc2tpbldlaWdodC54ICogYm9uZU1hdFg7XG5cdHNraW5NYXRyaXggKz0gc2tpbldlaWdodC55ICogYm9uZU1hdFk7XG5cdHNraW5NYXRyaXggKz0gc2tpbldlaWdodC56ICogYm9uZU1hdFo7XG5cdHNraW5NYXRyaXggKz0gc2tpbldlaWdodC53ICogYm9uZU1hdFc7XG5cdHNraW5NYXRyaXggPSBiaW5kTWF0cml4SW52ZXJzZSAqIHNraW5NYXRyaXggKiBiaW5kTWF0cml4O1xuXHRvYmplY3ROb3JtYWwgPSB2ZWM0KCBza2luTWF0cml4ICogdmVjNCggb2JqZWN0Tm9ybWFsLCAwLjAgKSApLnh5ejtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0b2JqZWN0VGFuZ2VudCA9IHZlYzQoIHNraW5NYXRyaXggKiB2ZWM0KCBvYmplY3RUYW5nZW50LCAwLjAgKSApLnh5ejtcblx0I2VuZGlmXG4jZW5kaWYiLHNwZWN1bGFybWFwX2ZyYWdtZW50OiJmbG9hdCBzcGVjdWxhclN0cmVuZ3RoO1xuI2lmZGVmIFVTRV9TUEVDVUxBUk1BUFxuXHR2ZWM0IHRleGVsU3BlY3VsYXIgPSB0ZXh0dXJlMkQoIHNwZWN1bGFyTWFwLCB2VXYgKTtcblx0c3BlY3VsYXJTdHJlbmd0aCA9IHRleGVsU3BlY3VsYXIucjtcbiNlbHNlXG5cdHNwZWN1bGFyU3RyZW5ndGggPSAxLjA7XG4jZW5kaWYiLHNwZWN1bGFybWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfU1BFQ1VMQVJNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgc3BlY3VsYXJNYXA7XG4jZW5kaWYiLHRvbmVtYXBwaW5nX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVE9ORV9NQVBQSU5HIClcblx0Z2xfRnJhZ0NvbG9yLnJnYiA9IHRvbmVNYXBwaW5nKCBnbF9GcmFnQ29sb3IucmdiICk7XG4jZW5kaWYiLHRvbmVtYXBwaW5nX3BhcnNfZnJhZ21lbnQ6IiNpZm5kZWYgc2F0dXJhdGVcbiNkZWZpbmUgc2F0dXJhdGUoIGEgKSBjbGFtcCggYSwgMC4wLCAxLjAgKVxuI2VuZGlmXG51bmlmb3JtIGZsb2F0IHRvbmVNYXBwaW5nRXhwb3N1cmU7XG52ZWMzIExpbmVhclRvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkge1xuXHRyZXR1cm4gdG9uZU1hcHBpbmdFeHBvc3VyZSAqIGNvbG9yO1xufVxudmVjMyBSZWluaGFyZFRvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkge1xuXHRjb2xvciAqPSB0b25lTWFwcGluZ0V4cG9zdXJlO1xuXHRyZXR1cm4gc2F0dXJhdGUoIGNvbG9yIC8gKCB2ZWMzKCAxLjAgKSArIGNvbG9yICkgKTtcbn1cbnZlYzMgT3B0aW1pemVkQ2luZW9uVG9uZU1hcHBpbmcoIHZlYzMgY29sb3IgKSB7XG5cdGNvbG9yICo9IHRvbmVNYXBwaW5nRXhwb3N1cmU7XG5cdGNvbG9yID0gbWF4KCB2ZWMzKCAwLjAgKSwgY29sb3IgLSAwLjAwNCApO1xuXHRyZXR1cm4gcG93KCAoIGNvbG9yICogKCA2LjIgKiBjb2xvciArIDAuNSApICkgLyAoIGNvbG9yICogKCA2LjIgKiBjb2xvciArIDEuNyApICsgMC4wNiApLCB2ZWMzKCAyLjIgKSApO1xufVxudmVjMyBSUlRBbmRPRFRGaXQoIHZlYzMgdiApIHtcblx0dmVjMyBhID0gdiAqICggdiArIDAuMDI0NTc4NiApIC0gMC4wMDAwOTA1Mzc7XG5cdHZlYzMgYiA9IHYgKiAoIDAuOTgzNzI5ICogdiArIDAuNDMyOTUxMCApICsgMC4yMzgwODE7XG5cdHJldHVybiBhIC8gYjtcbn1cbnZlYzMgQUNFU0ZpbG1pY1RvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkge1xuXHRjb25zdCBtYXQzIEFDRVNJbnB1dE1hdCA9IG1hdDMoXG5cdFx0dmVjMyggMC41OTcxOSwgMC4wNzYwMCwgMC4wMjg0MCApLFx0XHR2ZWMzKCAwLjM1NDU4LCAwLjkwODM0LCAwLjEzMzgzICksXG5cdFx0dmVjMyggMC4wNDgyMywgMC4wMTU2NiwgMC44Mzc3NyApXG5cdCk7XG5cdGNvbnN0IG1hdDMgQUNFU091dHB1dE1hdCA9IG1hdDMoXG5cdFx0dmVjMyggIDEuNjA0NzUsIC0wLjEwMjA4LCAtMC4wMDMyNyApLFx0XHR2ZWMzKCAtMC41MzEwOCwgIDEuMTA4MTMsIC0wLjA3Mjc2ICksXG5cdFx0dmVjMyggLTAuMDczNjcsIC0wLjAwNjA1LCAgMS4wNzYwMiApXG5cdCk7XG5cdGNvbG9yICo9IHRvbmVNYXBwaW5nRXhwb3N1cmUgLyAwLjY7XG5cdGNvbG9yID0gQUNFU0lucHV0TWF0ICogY29sb3I7XG5cdGNvbG9yID0gUlJUQW5kT0RURml0KCBjb2xvciApO1xuXHRjb2xvciA9IEFDRVNPdXRwdXRNYXQgKiBjb2xvcjtcblx0cmV0dXJuIHNhdHVyYXRlKCBjb2xvciApO1xufVxudmVjMyBDdXN0b21Ub25lTWFwcGluZyggdmVjMyBjb2xvciApIHsgcmV0dXJuIGNvbG9yOyB9Iix0cmFuc21pc3Npb25fZnJhZ21lbnQ6IiNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OXG5cdGZsb2F0IHRyYW5zbWlzc2lvbkFscGhhID0gMS4wO1xuXHRmbG9hdCB0cmFuc21pc3Npb25GYWN0b3IgPSB0cmFuc21pc3Npb247XG5cdGZsb2F0IHRoaWNrbmVzc0ZhY3RvciA9IHRoaWNrbmVzcztcblx0I2lmZGVmIFVTRV9UUkFOU01JU1NJT05NQVBcblx0XHR0cmFuc21pc3Npb25GYWN0b3IgKj0gdGV4dHVyZTJEKCB0cmFuc21pc3Npb25NYXAsIHZVdiApLnI7XG5cdCNlbmRpZlxuXHQjaWZkZWYgVVNFX1RISUNLTkVTU01BUFxuXHRcdHRoaWNrbmVzc0ZhY3RvciAqPSB0ZXh0dXJlMkQoIHRoaWNrbmVzc01hcCwgdlV2ICkuZztcblx0I2VuZGlmXG5cdHZlYzMgcG9zID0gdldvcmxkUG9zaXRpb247XG5cdHZlYzMgdiA9IG5vcm1hbGl6ZSggY2FtZXJhUG9zaXRpb24gLSBwb3MgKTtcblx0dmVjMyBuID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggbm9ybWFsLCB2aWV3TWF0cml4ICk7XG5cdHZlYzQgdHJhbnNtaXNzaW9uID0gZ2V0SUJMVm9sdW1lUmVmcmFjdGlvbihcblx0XHRuLCB2LCByb3VnaG5lc3NGYWN0b3IsIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJGOTAsXG5cdFx0cG9zLCBtb2RlbE1hdHJpeCwgdmlld01hdHJpeCwgcHJvamVjdGlvbk1hdHJpeCwgaW9yLCB0aGlja25lc3NGYWN0b3IsXG5cdFx0YXR0ZW51YXRpb25Db2xvciwgYXR0ZW51YXRpb25EaXN0YW5jZSApO1xuXHR0b3RhbERpZmZ1c2UgPSBtaXgoIHRvdGFsRGlmZnVzZSwgdHJhbnNtaXNzaW9uLnJnYiwgdHJhbnNtaXNzaW9uRmFjdG9yICk7XG5cdHRyYW5zbWlzc2lvbkFscGhhID0gbWl4KCB0cmFuc21pc3Npb25BbHBoYSwgdHJhbnNtaXNzaW9uLmEsIHRyYW5zbWlzc2lvbkZhY3RvciApO1xuI2VuZGlmIix0cmFuc21pc3Npb25fcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9UUkFOU01JU1NJT05cblx0dW5pZm9ybSBmbG9hdCB0cmFuc21pc3Npb247XG5cdHVuaWZvcm0gZmxvYXQgdGhpY2tuZXNzO1xuXHR1bmlmb3JtIGZsb2F0IGF0dGVudWF0aW9uRGlzdGFuY2U7XG5cdHVuaWZvcm0gdmVjMyBhdHRlbnVhdGlvbkNvbG9yO1xuXHQjaWZkZWYgVVNFX1RSQU5TTUlTU0lPTk1BUFxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIHRyYW5zbWlzc2lvbk1hcDtcblx0I2VuZGlmXG5cdCNpZmRlZiBVU0VfVEhJQ0tORVNTTUFQXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgdGhpY2tuZXNzTWFwO1xuXHQjZW5kaWZcblx0dW5pZm9ybSB2ZWMyIHRyYW5zbWlzc2lvblNhbXBsZXJTaXplO1xuXHR1bmlmb3JtIHNhbXBsZXIyRCB0cmFuc21pc3Npb25TYW1wbGVyTWFwO1xuXHR1bmlmb3JtIG1hdDQgbW9kZWxNYXRyaXg7XG5cdHVuaWZvcm0gbWF0NCBwcm9qZWN0aW9uTWF0cml4O1xuXHR2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG5cdHZlYzMgZ2V0Vm9sdW1lVHJhbnNtaXNzaW9uUmF5KCBjb25zdCBpbiB2ZWMzIG4sIGNvbnN0IGluIHZlYzMgdiwgY29uc3QgaW4gZmxvYXQgdGhpY2tuZXNzLCBjb25zdCBpbiBmbG9hdCBpb3IsIGNvbnN0IGluIG1hdDQgbW9kZWxNYXRyaXggKSB7XG5cdFx0dmVjMyByZWZyYWN0aW9uVmVjdG9yID0gcmVmcmFjdCggLSB2LCBub3JtYWxpemUoIG4gKSwgMS4wIC8gaW9yICk7XG5cdFx0dmVjMyBtb2RlbFNjYWxlO1xuXHRcdG1vZGVsU2NhbGUueCA9IGxlbmd0aCggdmVjMyggbW9kZWxNYXRyaXhbIDAgXS54eXogKSApO1xuXHRcdG1vZGVsU2NhbGUueSA9IGxlbmd0aCggdmVjMyggbW9kZWxNYXRyaXhbIDEgXS54eXogKSApO1xuXHRcdG1vZGVsU2NhbGUueiA9IGxlbmd0aCggdmVjMyggbW9kZWxNYXRyaXhbIDIgXS54eXogKSApO1xuXHRcdHJldHVybiBub3JtYWxpemUoIHJlZnJhY3Rpb25WZWN0b3IgKSAqIHRoaWNrbmVzcyAqIG1vZGVsU2NhbGU7XG5cdH1cblx0ZmxvYXQgYXBwbHlJb3JUb1JvdWdobmVzcyggY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBjb25zdCBpbiBmbG9hdCBpb3IgKSB7XG5cdFx0cmV0dXJuIHJvdWdobmVzcyAqIGNsYW1wKCBpb3IgKiAyLjAgLSAyLjAsIDAuMCwgMS4wICk7XG5cdH1cblx0dmVjNCBnZXRUcmFuc21pc3Npb25TYW1wbGUoIGNvbnN0IGluIHZlYzIgZnJhZ0Nvb3JkLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGNvbnN0IGluIGZsb2F0IGlvciApIHtcblx0XHRmbG9hdCBmcmFtZWJ1ZmZlckxvZCA9IGxvZzIoIHRyYW5zbWlzc2lvblNhbXBsZXJTaXplLnggKSAqIGFwcGx5SW9yVG9Sb3VnaG5lc3MoIHJvdWdobmVzcywgaW9yICk7XG5cdFx0I2lmZGVmIFRFWFRVUkVfTE9EX0VYVFxuXHRcdFx0cmV0dXJuIHRleHR1cmUyRExvZEVYVCggdHJhbnNtaXNzaW9uU2FtcGxlck1hcCwgZnJhZ0Nvb3JkLnh5LCBmcmFtZWJ1ZmZlckxvZCApO1xuXHRcdCNlbHNlXG5cdFx0XHRyZXR1cm4gdGV4dHVyZTJEKCB0cmFuc21pc3Npb25TYW1wbGVyTWFwLCBmcmFnQ29vcmQueHksIGZyYW1lYnVmZmVyTG9kICk7XG5cdFx0I2VuZGlmXG5cdH1cblx0dmVjMyBhcHBseVZvbHVtZUF0dGVudWF0aW9uKCBjb25zdCBpbiB2ZWMzIHJhZGlhbmNlLCBjb25zdCBpbiBmbG9hdCB0cmFuc21pc3Npb25EaXN0YW5jZSwgY29uc3QgaW4gdmVjMyBhdHRlbnVhdGlvbkNvbG9yLCBjb25zdCBpbiBmbG9hdCBhdHRlbnVhdGlvbkRpc3RhbmNlICkge1xuXHRcdGlmICggYXR0ZW51YXRpb25EaXN0YW5jZSA9PSAwLjAgKSB7XG5cdFx0XHRyZXR1cm4gcmFkaWFuY2U7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHZlYzMgYXR0ZW51YXRpb25Db2VmZmljaWVudCA9IC1sb2coIGF0dGVudWF0aW9uQ29sb3IgKSAvIGF0dGVudWF0aW9uRGlzdGFuY2U7XG5cdFx0XHR2ZWMzIHRyYW5zbWl0dGFuY2UgPSBleHAoIC0gYXR0ZW51YXRpb25Db2VmZmljaWVudCAqIHRyYW5zbWlzc2lvbkRpc3RhbmNlICk7XHRcdFx0cmV0dXJuIHRyYW5zbWl0dGFuY2UgKiByYWRpYW5jZTtcblx0XHR9XG5cdH1cblx0dmVjNCBnZXRJQkxWb2x1bWVSZWZyYWN0aW9uKCBjb25zdCBpbiB2ZWMzIG4sIGNvbnN0IGluIHZlYzMgdiwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBjb25zdCBpbiB2ZWMzIGRpZmZ1c2VDb2xvcixcblx0XHRjb25zdCBpbiB2ZWMzIHNwZWN1bGFyQ29sb3IsIGNvbnN0IGluIGZsb2F0IHNwZWN1bGFyRjkwLCBjb25zdCBpbiB2ZWMzIHBvc2l0aW9uLCBjb25zdCBpbiBtYXQ0IG1vZGVsTWF0cml4LFxuXHRcdGNvbnN0IGluIG1hdDQgdmlld01hdHJpeCwgY29uc3QgaW4gbWF0NCBwcm9qTWF0cml4LCBjb25zdCBpbiBmbG9hdCBpb3IsIGNvbnN0IGluIGZsb2F0IHRoaWNrbmVzcyxcblx0XHRjb25zdCBpbiB2ZWMzIGF0dGVudWF0aW9uQ29sb3IsIGNvbnN0IGluIGZsb2F0IGF0dGVudWF0aW9uRGlzdGFuY2UgKSB7XG5cdFx0dmVjMyB0cmFuc21pc3Npb25SYXkgPSBnZXRWb2x1bWVUcmFuc21pc3Npb25SYXkoIG4sIHYsIHRoaWNrbmVzcywgaW9yLCBtb2RlbE1hdHJpeCApO1xuXHRcdHZlYzMgcmVmcmFjdGVkUmF5RXhpdCA9IHBvc2l0aW9uICsgdHJhbnNtaXNzaW9uUmF5O1xuXHRcdHZlYzQgbmRjUG9zID0gcHJvak1hdHJpeCAqIHZpZXdNYXRyaXggKiB2ZWM0KCByZWZyYWN0ZWRSYXlFeGl0LCAxLjAgKTtcblx0XHR2ZWMyIHJlZnJhY3Rpb25Db29yZHMgPSBuZGNQb3MueHkgLyBuZGNQb3Mudztcblx0XHRyZWZyYWN0aW9uQ29vcmRzICs9IDEuMDtcblx0XHRyZWZyYWN0aW9uQ29vcmRzIC89IDIuMDtcblx0XHR2ZWM0IHRyYW5zbWl0dGVkTGlnaHQgPSBnZXRUcmFuc21pc3Npb25TYW1wbGUoIHJlZnJhY3Rpb25Db29yZHMsIHJvdWdobmVzcywgaW9yICk7XG5cdFx0dmVjMyBhdHRlbnVhdGVkQ29sb3IgPSBhcHBseVZvbHVtZUF0dGVudWF0aW9uKCB0cmFuc21pdHRlZExpZ2h0LnJnYiwgbGVuZ3RoKCB0cmFuc21pc3Npb25SYXkgKSwgYXR0ZW51YXRpb25Db2xvciwgYXR0ZW51YXRpb25EaXN0YW5jZSApO1xuXHRcdHZlYzMgRiA9IEVudmlyb25tZW50QlJERiggbiwgdiwgc3BlY3VsYXJDb2xvciwgc3BlY3VsYXJGOTAsIHJvdWdobmVzcyApO1xuXHRcdHJldHVybiB2ZWM0KCAoIDEuMCAtIEYgKSAqIGF0dGVudWF0ZWRDb2xvciAqIGRpZmZ1c2VDb2xvciwgdHJhbnNtaXR0ZWRMaWdodC5hICk7XG5cdH1cbiNlbmRpZiIsdXZfcGFyc19mcmFnbWVudDoiI2lmICggZGVmaW5lZCggVVNFX1VWICkgJiYgISBkZWZpbmVkKCBVVlNfVkVSVEVYX09OTFkgKSApXG5cdHZhcnlpbmcgdmVjMiB2VXY7XG4jZW5kaWYiLHV2X3BhcnNfdmVydGV4OiIjaWZkZWYgVVNFX1VWXG5cdCNpZmRlZiBVVlNfVkVSVEVYX09OTFlcblx0XHR2ZWMyIHZVdjtcblx0I2Vsc2Vcblx0XHR2YXJ5aW5nIHZlYzIgdlV2O1xuXHQjZW5kaWZcblx0dW5pZm9ybSBtYXQzIHV2VHJhbnNmb3JtO1xuI2VuZGlmIix1dl92ZXJ0ZXg6IiNpZmRlZiBVU0VfVVZcblx0dlV2ID0gKCB1dlRyYW5zZm9ybSAqIHZlYzMoIHV2LCAxICkgKS54eTtcbiNlbmRpZiIsdXYyX3BhcnNfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfTElHSFRNQVAgKSB8fCBkZWZpbmVkKCBVU0VfQU9NQVAgKVxuXHR2YXJ5aW5nIHZlYzIgdlV2MjtcbiNlbmRpZiIsdXYyX3BhcnNfdmVydGV4OiIjaWYgZGVmaW5lZCggVVNFX0xJR0hUTUFQICkgfHwgZGVmaW5lZCggVVNFX0FPTUFQIClcblx0YXR0cmlidXRlIHZlYzIgdXYyO1xuXHR2YXJ5aW5nIHZlYzIgdlV2Mjtcblx0dW5pZm9ybSBtYXQzIHV2MlRyYW5zZm9ybTtcbiNlbmRpZiIsdXYyX3ZlcnRleDoiI2lmIGRlZmluZWQoIFVTRV9MSUdIVE1BUCApIHx8IGRlZmluZWQoIFVTRV9BT01BUCApXG5cdHZVdjIgPSAoIHV2MlRyYW5zZm9ybSAqIHZlYzMoIHV2MiwgMSApICkueHk7XG4jZW5kaWYiLHdvcmxkcG9zX3ZlcnRleDoiI2lmIGRlZmluZWQoIFVTRV9FTlZNQVAgKSB8fCBkZWZpbmVkKCBESVNUQU5DRSApIHx8IGRlZmluZWQgKCBVU0VfU0hBRE9XTUFQICkgfHwgZGVmaW5lZCAoIFVTRV9UUkFOU01JU1NJT04gKVxuXHR2ZWM0IHdvcmxkUG9zaXRpb24gPSB2ZWM0KCB0cmFuc2Zvcm1lZCwgMS4wICk7XG5cdCNpZmRlZiBVU0VfSU5TVEFOQ0lOR1xuXHRcdHdvcmxkUG9zaXRpb24gPSBpbnN0YW5jZU1hdHJpeCAqIHdvcmxkUG9zaXRpb247XG5cdCNlbmRpZlxuXHR3b3JsZFBvc2l0aW9uID0gbW9kZWxNYXRyaXggKiB3b3JsZFBvc2l0aW9uO1xuI2VuZGlmIixiYWNrZ3JvdW5kX3ZlcnQ6InZhcnlpbmcgdmVjMiB2VXY7XG51bmlmb3JtIG1hdDMgdXZUcmFuc2Zvcm07XG52b2lkIG1haW4oKSB7XG5cdHZVdiA9ICggdXZUcmFuc2Zvcm0gKiB2ZWMzKCB1diwgMSApICkueHk7XG5cdGdsX1Bvc2l0aW9uID0gdmVjNCggcG9zaXRpb24ueHksIDEuMCwgMS4wICk7XG59IixiYWNrZ3JvdW5kX2ZyYWc6InVuaWZvcm0gc2FtcGxlcjJEIHQyRDtcbnZhcnlpbmcgdmVjMiB2VXY7XG52b2lkIG1haW4oKSB7XG5cdGdsX0ZyYWdDb2xvciA9IHRleHR1cmUyRCggdDJELCB2VXYgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxufSIsY3ViZV92ZXJ0OiJ2YXJ5aW5nIHZlYzMgdldvcmxkRGlyZWN0aW9uO1xuI2luY2x1ZGUgPGNvbW1vbj5cbnZvaWQgbWFpbigpIHtcblx0dldvcmxkRGlyZWN0aW9uID0gdHJhbnNmb3JtRGlyZWN0aW9uKCBwb3NpdGlvbiwgbW9kZWxNYXRyaXggKTtcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHRnbF9Qb3NpdGlvbi56ID0gZ2xfUG9zaXRpb24udztcbn0iLGN1YmVfZnJhZzoiI2luY2x1ZGUgPGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudD5cbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbnZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247XG4jaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHR2ZWMzIHZSZWZsZWN0ID0gdldvcmxkRGlyZWN0aW9uO1xuXHQjaW5jbHVkZSA8ZW52bWFwX2ZyYWdtZW50PlxuXHRnbF9GcmFnQ29sb3IgPSBlbnZDb2xvcjtcblx0Z2xfRnJhZ0NvbG9yLmEgKj0gb3BhY2l0eTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxufSIsZGVwdGhfdmVydDoiI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4PlxudmFyeWluZyB2ZWMyIHZIaWdoUHJlY2lzaW9uWlc7XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpZmRlZiBVU0VfRElTUExBQ0VNRU5UTUFQXG5cdFx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHR2SGlnaFByZWNpc2lvblpXID0gZ2xfUG9zaXRpb24uenc7XG59IixkZXB0aF9mcmFnOiIjaWYgREVQVEhfUEFDS0lORyA9PSAzMjAwXG5cdHVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxwYWNraW5nPlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYXRlc3RfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50PlxudmFyeWluZyB2ZWMyIHZIaWdoUHJlY2lzaW9uWlc7XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggMS4wICk7XG5cdCNpZiBERVBUSF9QQUNLSU5HID09IDMyMDBcblx0XHRkaWZmdXNlQ29sb3IuYSA9IG9wYWNpdHk7XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0ZmxvYXQgZnJhZ0Nvb3JkWiA9IDAuNSAqIHZIaWdoUHJlY2lzaW9uWldbMF0gLyB2SGlnaFByZWNpc2lvblpXWzFdICsgMC41O1xuXHQjaWYgREVQVEhfUEFDS0lORyA9PSAzMjAwXG5cdFx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggdmVjMyggMS4wIC0gZnJhZ0Nvb3JkWiApLCBvcGFjaXR5ICk7XG5cdCNlbGlmIERFUFRIX1BBQ0tJTkcgPT0gMzIwMVxuXHRcdGdsX0ZyYWdDb2xvciA9IHBhY2tEZXB0aFRvUkdCQSggZnJhZ0Nvb3JkWiApO1xuXHQjZW5kaWZcbn0iLGRpc3RhbmNlUkdCQV92ZXJ0OiIjZGVmaW5lIERJU1RBTkNFXG52YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpZmRlZiBVU0VfRElTUExBQ0VNRU5UTUFQXG5cdFx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHR2V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb24ueHl6O1xufSIsZGlzdGFuY2VSR0JBX2ZyYWc6IiNkZWZpbmUgRElTVEFOQ0VcbnVuaWZvcm0gdmVjMyByZWZlcmVuY2VQb3NpdGlvbjtcbnVuaWZvcm0gZmxvYXQgbmVhckRpc3RhbmNlO1xudW5pZm9ybSBmbG9hdCBmYXJEaXN0YW5jZTtcbnZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGF0ZXN0X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4gKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIDEuMCApO1xuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdGZsb2F0IGRpc3QgPSBsZW5ndGgoIHZXb3JsZFBvc2l0aW9uIC0gcmVmZXJlbmNlUG9zaXRpb24gKTtcblx0ZGlzdCA9ICggZGlzdCAtIG5lYXJEaXN0YW5jZSApIC8gKCBmYXJEaXN0YW5jZSAtIG5lYXJEaXN0YW5jZSApO1xuXHRkaXN0ID0gc2F0dXJhdGUoIGRpc3QgKTtcblx0Z2xfRnJhZ0NvbG9yID0gcGFja0RlcHRoVG9SR0JBKCBkaXN0ICk7XG59IixlcXVpcmVjdF92ZXJ0OiJ2YXJ5aW5nIHZlYzMgdldvcmxkRGlyZWN0aW9uO1xuI2luY2x1ZGUgPGNvbW1vbj5cbnZvaWQgbWFpbigpIHtcblx0dldvcmxkRGlyZWN0aW9uID0gdHJhbnNmb3JtRGlyZWN0aW9uKCBwb3NpdGlvbiwgbW9kZWxNYXRyaXggKTtcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxufSIsZXF1aXJlY3RfZnJhZzoidW5pZm9ybSBzYW1wbGVyMkQgdEVxdWlyZWN0O1xudmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcbiNpbmNsdWRlIDxjb21tb24+XG52b2lkIG1haW4oKSB7XG5cdHZlYzMgZGlyZWN0aW9uID0gbm9ybWFsaXplKCB2V29ybGREaXJlY3Rpb24gKTtcblx0dmVjMiBzYW1wbGVVViA9IGVxdWlyZWN0VXYoIGRpcmVjdGlvbiApO1xuXHRnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkQoIHRFcXVpcmVjdCwgc2FtcGxlVVYgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxufSIsbGluZWRhc2hlZF92ZXJ0OiJ1bmlmb3JtIGZsb2F0IHNjYWxlO1xuYXR0cmlidXRlIGZsb2F0IGxpbmVEaXN0YW5jZTtcbnZhcnlpbmcgZmxvYXQgdkxpbmVEaXN0YW5jZTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0dkxpbmVEaXN0YW5jZSA9IHNjYWxlICogbGluZURpc3RhbmNlO1xuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLGxpbmVkYXNoZWRfZnJhZzoidW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG51bmlmb3JtIGZsb2F0IGRhc2hTaXplO1xudW5pZm9ybSBmbG9hdCB0b3RhbFNpemU7XG52YXJ5aW5nIGZsb2F0IHZMaW5lRGlzdGFuY2U7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0aWYgKCBtb2QoIHZMaW5lRGlzdGFuY2UsIHRvdGFsU2l6ZSApID4gZGFzaFNpemUgKSB7XG5cdFx0ZGlzY2FyZDtcblx0fVxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSB2ZWMzKCAwLjAgKTtcblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHRvdXRnb2luZ0xpZ2h0ID0gZGlmZnVzZUNvbG9yLnJnYjtcblx0I2luY2x1ZGUgPG91dHB1dF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD5cbn0iLG1lc2hiYXNpY192ZXJ0OiIjaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxlbnZtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHV2Ml92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpZiBkZWZpbmVkICggVVNFX0VOVk1BUCApIHx8IGRlZmluZWQgKCBVU0VfU0tJTk5JTkcgKVxuXHRcdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZW52bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59IixtZXNoYmFzaWNfZnJhZzoidW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1djJfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhdGVzdF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFvbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bGlnaHRtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNwZWN1bGFybWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxzcGVjdWxhcm1hcF9mcmFnbWVudD5cblx0UmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTtcblx0I2lmZGVmIFVTRV9MSUdIVE1BUFxuXHRcdHZlYzQgbGlnaHRNYXBUZXhlbD0gdGV4dHVyZTJEKCBsaWdodE1hcCwgdlV2MiApO1xuXHRcdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSBsaWdodE1hcFRleGVsLnJnYiAqIGxpZ2h0TWFwSW50ZW5zaXR5O1xuXHQjZWxzZVxuXHRcdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSB2ZWMzKCAxLjAgKTtcblx0I2VuZGlmXG5cdCNpbmNsdWRlIDxhb21hcF9mcmFnbWVudD5cblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICo9IGRpZmZ1c2VDb2xvci5yZ2I7XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZTtcblx0I2luY2x1ZGUgPGVudm1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG91dHB1dF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGRpdGhlcmluZ19mcmFnbWVudD5cbn0iLG1lc2hsYW1iZXJ0X3ZlcnQ6IiNkZWZpbmUgTEFNQkVSVFxudmFyeWluZyB2ZWMzIHZMaWdodEZyb250O1xudmFyeWluZyB2ZWMzIHZJbmRpcmVjdEZyb250O1xuI2lmZGVmIERPVUJMRV9TSURFRFxuXHR2YXJ5aW5nIHZlYzMgdkxpZ2h0QmFjaztcblx0dmFyeWluZyB2ZWMzIHZJbmRpcmVjdEJhY2s7XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGVudm1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxic2Rmcz5cbiNpbmNsdWRlIDxsaWdodHNfcGFyc19iZWdpbj5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHV2Ml92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZW52bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPGxpZ2h0c19sYW1iZXJ0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsbWVzaGxhbWJlcnRfZnJhZzoidW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIHZlYzMgZW1pc3NpdmU7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG52YXJ5aW5nIHZlYzMgdkxpZ2h0RnJvbnQ7XG52YXJ5aW5nIHZlYzMgdkluZGlyZWN0RnJvbnQ7XG4jaWZkZWYgRE9VQkxFX1NJREVEXG5cdHZhcnlpbmcgdmVjMyB2TGlnaHRCYWNrO1xuXHR2YXJ5aW5nIHZlYzMgdkluZGlyZWN0QmFjaztcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxwYWNraW5nPlxuI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1djJfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhdGVzdF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFvbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bGlnaHRtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnNkZnM+XG4jaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c2hhZG93bWFza19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNwZWN1bGFybWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ID0gUmVmbGVjdGVkTGlnaHQoIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApICk7XG5cdHZlYzMgdG90YWxFbWlzc2l2ZVJhZGlhbmNlID0gZW1pc3NpdmU7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxzcGVjdWxhcm1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVtaXNzaXZlbWFwX2ZyYWdtZW50PlxuXHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9ICggZ2xfRnJvbnRGYWNpbmcgKSA/IHZJbmRpcmVjdEZyb250IDogdkluZGlyZWN0QmFjaztcblx0I2Vsc2Vcblx0XHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gdkluZGlyZWN0RnJvbnQ7XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8bGlnaHRtYXBfZnJhZ21lbnQ+XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSAqPSBCUkRGX0xhbWJlcnQoIGRpZmZ1c2VDb2xvci5yZ2IgKTtcblx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgPSAoIGdsX0Zyb250RmFjaW5nICkgPyB2TGlnaHRGcm9udCA6IHZMaWdodEJhY2s7XG5cdCNlbHNlXG5cdFx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSA9IHZMaWdodEZyb250O1xuXHQjZW5kaWZcblx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSAqPSBCUkRGX0xhbWJlcnQoIGRpZmZ1c2VDb2xvci5yZ2IgKSAqIGdldFNoYWRvd01hc2soKTtcblx0I2luY2x1ZGUgPGFvbWFwX2ZyYWdtZW50PlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICsgdG90YWxFbWlzc2l2ZVJhZGlhbmNlO1xuXHQjaW5jbHVkZSA8ZW52bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8b3V0cHV0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaG1hdGNhcF92ZXJ0OiIjZGVmaW5lIE1BVENBUFxudmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bm9ybWFsX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG5cdHZWaWV3UG9zaXRpb24gPSAtIG12UG9zaXRpb24ueHl6O1xufSIsbWVzaG1hdGNhcF9mcmFnOiIjZGVmaW5lIE1BVENBUFxudW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG51bmlmb3JtIHNhbXBsZXIyRCBtYXRjYXA7XG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGF0ZXN0X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bm9ybWFsX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnVtcG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG5vcm1hbG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+XG5cdHZlYzMgdmlld0RpciA9IG5vcm1hbGl6ZSggdlZpZXdQb3NpdGlvbiApO1xuXHR2ZWMzIHggPSBub3JtYWxpemUoIHZlYzMoIHZpZXdEaXIueiwgMC4wLCAtIHZpZXdEaXIueCApICk7XG5cdHZlYzMgeSA9IGNyb3NzKCB2aWV3RGlyLCB4ICk7XG5cdHZlYzIgdXYgPSB2ZWMyKCBkb3QoIHgsIG5vcm1hbCApLCBkb3QoIHksIG5vcm1hbCApICkgKiAwLjQ5NSArIDAuNTtcblx0I2lmZGVmIFVTRV9NQVRDQVBcblx0XHR2ZWM0IG1hdGNhcENvbG9yID0gdGV4dHVyZTJEKCBtYXRjYXAsIHV2ICk7XG5cdCNlbHNlXG5cdFx0dmVjNCBtYXRjYXBDb2xvciA9IHZlYzQoIHZlYzMoIG1peCggMC4yLCAwLjgsIHV2LnkgKSApLCAxLjAgKTtcblx0I2VuZGlmXG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IGRpZmZ1c2VDb2xvci5yZ2IgKiBtYXRjYXBDb2xvci5yZ2I7XG5cdCNpbmNsdWRlIDxvdXRwdXRfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+XG59IixtZXNobm9ybWFsX3ZlcnQ6IiNkZWZpbmUgTk9STUFMXG4jaWYgZGVmaW5lZCggRkxBVF9TSEFERUQgKSB8fCBkZWZpbmVkKCBVU0VfQlVNUE1BUCApIHx8IGRlZmluZWQoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKVxuXHR2YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bm9ybWFsX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cbiNpZiBkZWZpbmVkKCBGTEFUX1NIQURFRCApIHx8IGRlZmluZWQoIFVTRV9CVU1QTUFQICkgfHwgZGVmaW5lZCggVEFOR0VOVFNQQUNFX05PUk1BTE1BUCApXG5cdHZWaWV3UG9zaXRpb24gPSAtIG12UG9zaXRpb24ueHl6O1xuI2VuZGlmXG59IixtZXNobm9ybWFsX2ZyYWc6IiNkZWZpbmUgTk9STUFMXG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaWYgZGVmaW5lZCggRkxBVF9TSEFERUQgKSB8fCBkZWZpbmVkKCBVU0VfQlVNUE1BUCApIHx8IGRlZmluZWQoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKVxuXHR2YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNlbmRpZlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxub3JtYWxfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxidW1wbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIHBhY2tOb3JtYWxUb1JHQiggbm9ybWFsICksIG9wYWNpdHkgKTtcbn0iLG1lc2hwaG9uZ192ZXJ0OiIjZGVmaW5lIFBIT05HXG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxlbnZtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG5vcm1hbF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8dXYyX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0dlZpZXdQb3NpdGlvbiA9IC0gbXZQb3NpdGlvbi54eXo7XG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxlbnZtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2hhZG93bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59IixtZXNocGhvbmdfZnJhZzoiI2RlZmluZSBQSE9OR1xudW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIHZlYzMgZW1pc3NpdmU7XG51bmlmb3JtIHZlYzMgc3BlY3VsYXI7XG51bmlmb3JtIGZsb2F0IHNoaW5pbmVzcztcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXYyX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYXRlc3RfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJzZGZzPlxuI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPlxuI2luY2x1ZGUgPG5vcm1hbF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0c19waG9uZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxzcGVjdWxhcm1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHRSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApO1xuXHR2ZWMzIHRvdGFsRW1pc3NpdmVSYWRpYW5jZSA9IGVtaXNzaXZlO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8c3BlY3VsYXJtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfYmVnaW4+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfbWFwcz5cblx0I2luY2x1ZGUgPGVtaXNzaXZlbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bGlnaHRzX3Bob25nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfZW5kPlxuXHQjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKyByZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArIHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXIgKyB0b3RhbEVtaXNzaXZlUmFkaWFuY2U7XG5cdCNpbmNsdWRlIDxlbnZtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxvdXRwdXRfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+XG59IixtZXNocGh5c2ljYWxfdmVydDoiI2RlZmluZSBTVEFOREFSRFxudmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jaWZkZWYgVVNFX1RSQU5TTUlTU0lPTlxuXHR2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bm9ybWFsX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx1djJfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHR2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxuI2lmZGVmIFVTRV9UUkFOU01JU1NJT05cblx0dldvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uLnh5ejtcbiNlbmRpZlxufSIsbWVzaHBoeXNpY2FsX2ZyYWc6IiNkZWZpbmUgU1RBTkRBUkRcbiNpZmRlZiBQSFlTSUNBTFxuXHQjZGVmaW5lIElPUlxuXHQjZGVmaW5lIFNQRUNVTEFSXG4jZW5kaWZcbnVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSB2ZWMzIGVtaXNzaXZlO1xudW5pZm9ybSBmbG9hdCByb3VnaG5lc3M7XG51bmlmb3JtIGZsb2F0IG1ldGFsbmVzcztcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpZmRlZiBJT1Jcblx0dW5pZm9ybSBmbG9hdCBpb3I7XG4jZW5kaWZcbiNpZmRlZiBTUEVDVUxBUlxuXHR1bmlmb3JtIGZsb2F0IHNwZWN1bGFySW50ZW5zaXR5O1xuXHR1bmlmb3JtIHZlYzMgc3BlY3VsYXJDb2xvcjtcblx0I2lmZGVmIFVTRV9TUEVDVUxBUklOVEVOU0lUWU1BUFxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIHNwZWN1bGFySW50ZW5zaXR5TWFwO1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9TUEVDVUxBUkNPTE9STUFQXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgc3BlY3VsYXJDb2xvck1hcDtcblx0I2VuZGlmXG4jZW5kaWZcbiNpZmRlZiBVU0VfQ0xFQVJDT0FUXG5cdHVuaWZvcm0gZmxvYXQgY2xlYXJjb2F0O1xuXHR1bmlmb3JtIGZsb2F0IGNsZWFyY29hdFJvdWdobmVzcztcbiNlbmRpZlxuI2lmZGVmIFVTRV9TSEVFTlxuXHR1bmlmb3JtIHZlYzMgc2hlZW5Db2xvcjtcblx0dW5pZm9ybSBmbG9hdCBzaGVlblJvdWdobmVzcztcblx0I2lmZGVmIFVTRV9TSEVFTkNPTE9STUFQXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgc2hlZW5Db2xvck1hcDtcblx0I2VuZGlmXG5cdCNpZmRlZiBVU0VfU0hFRU5ST1VHSE5FU1NNQVBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCBzaGVlblJvdWdobmVzc01hcDtcblx0I2VuZGlmXG4jZW5kaWZcbnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxwYWNraW5nPlxuI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1djJfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhdGVzdF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFvbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bGlnaHRtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJzZGZzPlxuI2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX3BoeXNpY2FsX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+XG4jaW5jbHVkZSA8bm9ybWFsX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bGlnaHRzX3BoeXNpY2FsX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dHJhbnNtaXNzaW9uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnVtcG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG5vcm1hbG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsZWFyY29hdF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHJvdWdobmVzc21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1ldGFsbmVzc21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHRSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApO1xuXHR2ZWMzIHRvdGFsRW1pc3NpdmVSYWRpYW5jZSA9IGVtaXNzaXZlO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cm91Z2huZXNzbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWV0YWxuZXNzbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxjbGVhcmNvYXRfbm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8Y2xlYXJjb2F0X25vcm1hbF9mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8ZW1pc3NpdmVtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsaWdodHNfcGh5c2ljYWxfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfYmVnaW4+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfbWFwcz5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9lbmQ+XG5cdCNpbmNsdWRlIDxhb21hcF9mcmFnbWVudD5cblx0dmVjMyB0b3RhbERpZmZ1c2UgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlO1xuXHR2ZWMzIHRvdGFsU3BlY3VsYXIgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArIHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXI7XG5cdCNpbmNsdWRlIDx0cmFuc21pc3Npb25fZnJhZ21lbnQ+XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHRvdGFsRGlmZnVzZSArIHRvdGFsU3BlY3VsYXIgKyB0b3RhbEVtaXNzaXZlUmFkaWFuY2U7XG5cdCNpZmRlZiBVU0VfU0hFRU5cblx0XHRmbG9hdCBzaGVlbkVuZXJneUNvbXAgPSAxLjAgLSAwLjE1NyAqIG1heDMoIG1hdGVyaWFsLnNoZWVuQ29sb3IgKTtcblx0XHRvdXRnb2luZ0xpZ2h0ID0gb3V0Z29pbmdMaWdodCAqIHNoZWVuRW5lcmd5Q29tcCArIHNoZWVuU3BlY3VsYXI7XG5cdCNlbmRpZlxuXHQjaWZkZWYgVVNFX0NMRUFSQ09BVFxuXHRcdGZsb2F0IGRvdE5WY2MgPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwsIGdlb21ldHJ5LnZpZXdEaXIgKSApO1xuXHRcdHZlYzMgRmNjID0gRl9TY2hsaWNrKCBtYXRlcmlhbC5jbGVhcmNvYXRGMCwgbWF0ZXJpYWwuY2xlYXJjb2F0RjkwLCBkb3ROVmNjICk7XG5cdFx0b3V0Z29pbmdMaWdodCA9IG91dGdvaW5nTGlnaHQgKiAoIDEuMCAtIG1hdGVyaWFsLmNsZWFyY29hdCAqIEZjYyApICsgY2xlYXJjb2F0U3BlY3VsYXIgKiBtYXRlcmlhbC5jbGVhcmNvYXQ7XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8b3V0cHV0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaHRvb25fdmVydDoiI2RlZmluZSBUT09OXG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bm9ybWFsX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx1djJfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHR2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsbWVzaHRvb25fZnJhZzoiI2RlZmluZSBUT09OXG51bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gdmVjMyBlbWlzc2l2ZTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXYyX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYXRlc3RfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxncmFkaWVudG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJzZGZzPlxuI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPlxuI2luY2x1ZGUgPG5vcm1hbF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0c190b29uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnVtcG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG5vcm1hbG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHRSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApO1xuXHR2ZWMzIHRvdGFsRW1pc3NpdmVSYWRpYW5jZSA9IGVtaXNzaXZlO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxpZ2h0c190b29uX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfZW5kPlxuXHQjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKyB0b3RhbEVtaXNzaXZlUmFkaWFuY2U7XG5cdCNpbmNsdWRlIDxvdXRwdXRfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+XG59Iixwb2ludHNfdmVydDoidW5pZm9ybSBmbG9hdCBzaXplO1xudW5pZm9ybSBmbG9hdCBzY2FsZTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHRnbF9Qb2ludFNpemUgPSBzaXplO1xuXHQjaWZkZWYgVVNFX1NJWkVBVFRFTlVBVElPTlxuXHRcdGJvb2wgaXNQZXJzcGVjdGl2ZSA9IGlzUGVyc3BlY3RpdmVNYXRyaXgoIHByb2plY3Rpb25NYXRyaXggKTtcblx0XHRpZiAoIGlzUGVyc3BlY3RpdmUgKSBnbF9Qb2ludFNpemUgKj0gKCBzY2FsZSAvIC0gbXZQb3NpdGlvbi56ICk7XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59Iixwb2ludHNfZnJhZzoidW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnRpY2xlX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGF0ZXN0X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjMyBvdXRnb2luZ0xpZ2h0ID0gdmVjMyggMC4wICk7XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfcGFydGljbGVfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0b3V0Z29pbmdMaWdodCA9IGRpZmZ1c2VDb2xvci5yZ2I7XG5cdCNpbmNsdWRlIDxvdXRwdXRfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG59IixzaGFkb3dfdmVydDoiI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2hhZG93bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59IixzaGFkb3dfZnJhZzoidW5pZm9ybSB2ZWMzIGNvbG9yO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxwYWNraW5nPlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJzZGZzPlxuI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hc2tfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggY29sb3IsIG9wYWNpdHkgKiAoIDEuMCAtIGdldFNoYWRvd01hc2soKSApICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cbn0iLHNwcml0ZV92ZXJ0OiJ1bmlmb3JtIGZsb2F0IHJvdGF0aW9uO1xudW5pZm9ybSB2ZWMyIGNlbnRlcjtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0dmVjNCBtdlBvc2l0aW9uID0gbW9kZWxWaWV3TWF0cml4ICogdmVjNCggMC4wLCAwLjAsIDAuMCwgMS4wICk7XG5cdHZlYzIgc2NhbGU7XG5cdHNjYWxlLnggPSBsZW5ndGgoIHZlYzMoIG1vZGVsTWF0cml4WyAwIF0ueCwgbW9kZWxNYXRyaXhbIDAgXS55LCBtb2RlbE1hdHJpeFsgMCBdLnogKSApO1xuXHRzY2FsZS55ID0gbGVuZ3RoKCB2ZWMzKCBtb2RlbE1hdHJpeFsgMSBdLngsIG1vZGVsTWF0cml4WyAxIF0ueSwgbW9kZWxNYXRyaXhbIDEgXS56ICkgKTtcblx0I2lmbmRlZiBVU0VfU0laRUFUVEVOVUFUSU9OXG5cdFx0Ym9vbCBpc1BlcnNwZWN0aXZlID0gaXNQZXJzcGVjdGl2ZU1hdHJpeCggcHJvamVjdGlvbk1hdHJpeCApO1xuXHRcdGlmICggaXNQZXJzcGVjdGl2ZSApIHNjYWxlICo9IC0gbXZQb3NpdGlvbi56O1xuXHQjZW5kaWZcblx0dmVjMiBhbGlnbmVkUG9zaXRpb24gPSAoIHBvc2l0aW9uLnh5IC0gKCBjZW50ZXIgLSB2ZWMyKCAwLjUgKSApICkgKiBzY2FsZTtcblx0dmVjMiByb3RhdGVkUG9zaXRpb247XG5cdHJvdGF0ZWRQb3NpdGlvbi54ID0gY29zKCByb3RhdGlvbiApICogYWxpZ25lZFBvc2l0aW9uLnggLSBzaW4oIHJvdGF0aW9uICkgKiBhbGlnbmVkUG9zaXRpb24ueTtcblx0cm90YXRlZFBvc2l0aW9uLnkgPSBzaW4oIHJvdGF0aW9uICkgKiBhbGlnbmVkUG9zaXRpb24ueCArIGNvcyggcm90YXRpb24gKSAqIGFsaWduZWRQb3NpdGlvbi55O1xuXHRtdlBvc2l0aW9uLnh5ICs9IHJvdGF0ZWRQb3NpdGlvbjtcblx0Z2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbXZQb3NpdGlvbjtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsc3ByaXRlX2ZyYWc6InVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGF0ZXN0X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjMyBvdXRnb2luZ0xpZ2h0ID0gdmVjMyggMC4wICk7XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0b3V0Z29pbmdMaWdodCA9IGRpZmZ1c2VDb2xvci5yZ2I7XG5cdCNpbmNsdWRlIDxvdXRwdXRfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cbn0ifSxSdD17Y29tbW9uOntkaWZmdXNlOnt2YWx1ZTpuZXcgc24oMTY3NzcyMTUpfSxvcGFjaXR5Ont2YWx1ZToxfSxtYXA6e3ZhbHVlOm51bGx9LHV2VHJhbnNmb3JtOnt2YWx1ZTpuZXcgeW99LHV2MlRyYW5zZm9ybTp7dmFsdWU6bmV3IHlvfSxhbHBoYU1hcDp7dmFsdWU6bnVsbH0sYWxwaGFUZXN0Ont2YWx1ZTowfX0sc3BlY3VsYXJtYXA6e3NwZWN1bGFyTWFwOnt2YWx1ZTpudWxsfX0sZW52bWFwOntlbnZNYXA6e3ZhbHVlOm51bGx9LGZsaXBFbnZNYXA6e3ZhbHVlOi0xfSxyZWZsZWN0aXZpdHk6e3ZhbHVlOjF9LGlvcjp7dmFsdWU6MS41fSxyZWZyYWN0aW9uUmF0aW86e3ZhbHVlOi45OH19LGFvbWFwOnthb01hcDp7dmFsdWU6bnVsbH0sYW9NYXBJbnRlbnNpdHk6e3ZhbHVlOjF9fSxsaWdodG1hcDp7bGlnaHRNYXA6e3ZhbHVlOm51bGx9LGxpZ2h0TWFwSW50ZW5zaXR5Ont2YWx1ZToxfX0sZW1pc3NpdmVtYXA6e2VtaXNzaXZlTWFwOnt2YWx1ZTpudWxsfX0sYnVtcG1hcDp7YnVtcE1hcDp7dmFsdWU6bnVsbH0sYnVtcFNjYWxlOnt2YWx1ZToxfX0sbm9ybWFsbWFwOntub3JtYWxNYXA6e3ZhbHVlOm51bGx9LG5vcm1hbFNjYWxlOnt2YWx1ZTpuZXcgJGUoMSwxKX19LGRpc3BsYWNlbWVudG1hcDp7ZGlzcGxhY2VtZW50TWFwOnt2YWx1ZTpudWxsfSxkaXNwbGFjZW1lbnRTY2FsZTp7dmFsdWU6MX0sZGlzcGxhY2VtZW50Qmlhczp7dmFsdWU6MH19LHJvdWdobmVzc21hcDp7cm91Z2huZXNzTWFwOnt2YWx1ZTpudWxsfX0sbWV0YWxuZXNzbWFwOnttZXRhbG5lc3NNYXA6e3ZhbHVlOm51bGx9fSxncmFkaWVudG1hcDp7Z3JhZGllbnRNYXA6e3ZhbHVlOm51bGx9fSxmb2c6e2ZvZ0RlbnNpdHk6e3ZhbHVlOjI1ZS01fSxmb2dOZWFyOnt2YWx1ZToxfSxmb2dGYXI6e3ZhbHVlOjJlM30sZm9nQ29sb3I6e3ZhbHVlOm5ldyBzbigxNjc3NzIxNSl9fSxsaWdodHM6e2FtYmllbnRMaWdodENvbG9yOnt2YWx1ZTpbXX0sbGlnaHRQcm9iZTp7dmFsdWU6W119LGRpcmVjdGlvbmFsTGlnaHRzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntkaXJlY3Rpb246e30sY29sb3I6e319fSxkaXJlY3Rpb25hbExpZ2h0U2hhZG93czp7dmFsdWU6W10scHJvcGVydGllczp7c2hhZG93Qmlhczp7fSxzaGFkb3dOb3JtYWxCaWFzOnt9LHNoYWRvd1JhZGl1czp7fSxzaGFkb3dNYXBTaXplOnt9fX0sZGlyZWN0aW9uYWxTaGFkb3dNYXA6e3ZhbHVlOltdfSxkaXJlY3Rpb25hbFNoYWRvd01hdHJpeDp7dmFsdWU6W119LHNwb3RMaWdodHM6e3ZhbHVlOltdLHByb3BlcnRpZXM6e2NvbG9yOnt9LHBvc2l0aW9uOnt9LGRpcmVjdGlvbjp7fSxkaXN0YW5jZTp7fSxjb25lQ29zOnt9LHBlbnVtYnJhQ29zOnt9LGRlY2F5Ont9fX0sc3BvdExpZ2h0U2hhZG93czp7dmFsdWU6W10scHJvcGVydGllczp7c2hhZG93Qmlhczp7fSxzaGFkb3dOb3JtYWxCaWFzOnt9LHNoYWRvd1JhZGl1czp7fSxzaGFkb3dNYXBTaXplOnt9fX0sc3BvdFNoYWRvd01hcDp7dmFsdWU6W119LHNwb3RTaGFkb3dNYXRyaXg6e3ZhbHVlOltdfSxwb2ludExpZ2h0czp7dmFsdWU6W10scHJvcGVydGllczp7Y29sb3I6e30scG9zaXRpb246e30sZGVjYXk6e30sZGlzdGFuY2U6e319fSxwb2ludExpZ2h0U2hhZG93czp7dmFsdWU6W10scHJvcGVydGllczp7c2hhZG93Qmlhczp7fSxzaGFkb3dOb3JtYWxCaWFzOnt9LHNoYWRvd1JhZGl1czp7fSxzaGFkb3dNYXBTaXplOnt9LHNoYWRvd0NhbWVyYU5lYXI6e30sc2hhZG93Q2FtZXJhRmFyOnt9fX0scG9pbnRTaGFkb3dNYXA6e3ZhbHVlOltdfSxwb2ludFNoYWRvd01hdHJpeDp7dmFsdWU6W119LGhlbWlzcGhlcmVMaWdodHM6e3ZhbHVlOltdLHByb3BlcnRpZXM6e2RpcmVjdGlvbjp7fSxza3lDb2xvcjp7fSxncm91bmRDb2xvcjp7fX19LHJlY3RBcmVhTGlnaHRzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntjb2xvcjp7fSxwb3NpdGlvbjp7fSx3aWR0aDp7fSxoZWlnaHQ6e319fSxsdGNfMTp7dmFsdWU6bnVsbH0sbHRjXzI6e3ZhbHVlOm51bGx9fSxwb2ludHM6e2RpZmZ1c2U6e3ZhbHVlOm5ldyBzbigxNjc3NzIxNSl9LG9wYWNpdHk6e3ZhbHVlOjF9LHNpemU6e3ZhbHVlOjF9LHNjYWxlOnt2YWx1ZToxfSxtYXA6e3ZhbHVlOm51bGx9LGFscGhhTWFwOnt2YWx1ZTpudWxsfSxhbHBoYVRlc3Q6e3ZhbHVlOjB9LHV2VHJhbnNmb3JtOnt2YWx1ZTpuZXcgeW99fSxzcHJpdGU6e2RpZmZ1c2U6e3ZhbHVlOm5ldyBzbigxNjc3NzIxNSl9LG9wYWNpdHk6e3ZhbHVlOjF9LGNlbnRlcjp7dmFsdWU6bmV3ICRlKC41LC41KX0scm90YXRpb246e3ZhbHVlOjB9LG1hcDp7dmFsdWU6bnVsbH0sYWxwaGFNYXA6e3ZhbHVlOm51bGx9LGFscGhhVGVzdDp7dmFsdWU6MH0sdXZUcmFuc2Zvcm06e3ZhbHVlOm5ldyB5b319fSxqYz17YmFzaWM6e3VuaWZvcm1zOm5hKFtSdC5jb21tb24sUnQuc3BlY3VsYXJtYXAsUnQuZW52bWFwLFJ0LmFvbWFwLFJ0LmxpZ2h0bWFwLFJ0LmZvZ10pLHZlcnRleFNoYWRlcjp2aS5tZXNoYmFzaWNfdmVydCxmcmFnbWVudFNoYWRlcjp2aS5tZXNoYmFzaWNfZnJhZ30sbGFtYmVydDp7dW5pZm9ybXM6bmEoW1J0LmNvbW1vbixSdC5zcGVjdWxhcm1hcCxSdC5lbnZtYXAsUnQuYW9tYXAsUnQubGlnaHRtYXAsUnQuZW1pc3NpdmVtYXAsUnQuZm9nLFJ0LmxpZ2h0cyx7ZW1pc3NpdmU6e3ZhbHVlOm5ldyBzbigwKX19XSksdmVydGV4U2hhZGVyOnZpLm1lc2hsYW1iZXJ0X3ZlcnQsZnJhZ21lbnRTaGFkZXI6dmkubWVzaGxhbWJlcnRfZnJhZ30scGhvbmc6e3VuaWZvcm1zOm5hKFtSdC5jb21tb24sUnQuc3BlY3VsYXJtYXAsUnQuZW52bWFwLFJ0LmFvbWFwLFJ0LmxpZ2h0bWFwLFJ0LmVtaXNzaXZlbWFwLFJ0LmJ1bXBtYXAsUnQubm9ybWFsbWFwLFJ0LmRpc3BsYWNlbWVudG1hcCxSdC5mb2csUnQubGlnaHRzLHtlbWlzc2l2ZTp7dmFsdWU6bmV3IHNuKDApfSxzcGVjdWxhcjp7dmFsdWU6bmV3IHNuKDExMTg0ODEpfSxzaGluaW5lc3M6e3ZhbHVlOjMwfX1dKSx2ZXJ0ZXhTaGFkZXI6dmkubWVzaHBob25nX3ZlcnQsZnJhZ21lbnRTaGFkZXI6dmkubWVzaHBob25nX2ZyYWd9LHN0YW5kYXJkOnt1bmlmb3JtczpuYShbUnQuY29tbW9uLFJ0LmVudm1hcCxSdC5hb21hcCxSdC5saWdodG1hcCxSdC5lbWlzc2l2ZW1hcCxSdC5idW1wbWFwLFJ0Lm5vcm1hbG1hcCxSdC5kaXNwbGFjZW1lbnRtYXAsUnQucm91Z2huZXNzbWFwLFJ0Lm1ldGFsbmVzc21hcCxSdC5mb2csUnQubGlnaHRzLHtlbWlzc2l2ZTp7dmFsdWU6bmV3IHNuKDApfSxyb3VnaG5lc3M6e3ZhbHVlOjF9LG1ldGFsbmVzczp7dmFsdWU6MH0sZW52TWFwSW50ZW5zaXR5Ont2YWx1ZToxfX1dKSx2ZXJ0ZXhTaGFkZXI6dmkubWVzaHBoeXNpY2FsX3ZlcnQsZnJhZ21lbnRTaGFkZXI6dmkubWVzaHBoeXNpY2FsX2ZyYWd9LHRvb246e3VuaWZvcm1zOm5hKFtSdC5jb21tb24sUnQuYW9tYXAsUnQubGlnaHRtYXAsUnQuZW1pc3NpdmVtYXAsUnQuYnVtcG1hcCxSdC5ub3JtYWxtYXAsUnQuZGlzcGxhY2VtZW50bWFwLFJ0LmdyYWRpZW50bWFwLFJ0LmZvZyxSdC5saWdodHMse2VtaXNzaXZlOnt2YWx1ZTpuZXcgc24oMCl9fV0pLHZlcnRleFNoYWRlcjp2aS5tZXNodG9vbl92ZXJ0LGZyYWdtZW50U2hhZGVyOnZpLm1lc2h0b29uX2ZyYWd9LG1hdGNhcDp7dW5pZm9ybXM6bmEoW1J0LmNvbW1vbixSdC5idW1wbWFwLFJ0Lm5vcm1hbG1hcCxSdC5kaXNwbGFjZW1lbnRtYXAsUnQuZm9nLHttYXRjYXA6e3ZhbHVlOm51bGx9fV0pLHZlcnRleFNoYWRlcjp2aS5tZXNobWF0Y2FwX3ZlcnQsZnJhZ21lbnRTaGFkZXI6dmkubWVzaG1hdGNhcF9mcmFnfSxwb2ludHM6e3VuaWZvcm1zOm5hKFtSdC5wb2ludHMsUnQuZm9nXSksdmVydGV4U2hhZGVyOnZpLnBvaW50c192ZXJ0LGZyYWdtZW50U2hhZGVyOnZpLnBvaW50c19mcmFnfSxkYXNoZWQ6e3VuaWZvcm1zOm5hKFtSdC5jb21tb24sUnQuZm9nLHtzY2FsZTp7dmFsdWU6MX0sZGFzaFNpemU6e3ZhbHVlOjF9LHRvdGFsU2l6ZTp7dmFsdWU6Mn19XSksdmVydGV4U2hhZGVyOnZpLmxpbmVkYXNoZWRfdmVydCxmcmFnbWVudFNoYWRlcjp2aS5saW5lZGFzaGVkX2ZyYWd9LGRlcHRoOnt1bmlmb3JtczpuYShbUnQuY29tbW9uLFJ0LmRpc3BsYWNlbWVudG1hcF0pLHZlcnRleFNoYWRlcjp2aS5kZXB0aF92ZXJ0LGZyYWdtZW50U2hhZGVyOnZpLmRlcHRoX2ZyYWd9LG5vcm1hbDp7dW5pZm9ybXM6bmEoW1J0LmNvbW1vbixSdC5idW1wbWFwLFJ0Lm5vcm1hbG1hcCxSdC5kaXNwbGFjZW1lbnRtYXAse29wYWNpdHk6e3ZhbHVlOjF9fV0pLHZlcnRleFNoYWRlcjp2aS5tZXNobm9ybWFsX3ZlcnQsZnJhZ21lbnRTaGFkZXI6dmkubWVzaG5vcm1hbF9mcmFnfSxzcHJpdGU6e3VuaWZvcm1zOm5hKFtSdC5zcHJpdGUsUnQuZm9nXSksdmVydGV4U2hhZGVyOnZpLnNwcml0ZV92ZXJ0LGZyYWdtZW50U2hhZGVyOnZpLnNwcml0ZV9mcmFnfSxiYWNrZ3JvdW5kOnt1bmlmb3Jtczp7dXZUcmFuc2Zvcm06e3ZhbHVlOm5ldyB5b30sdDJEOnt2YWx1ZTpudWxsfX0sdmVydGV4U2hhZGVyOnZpLmJhY2tncm91bmRfdmVydCxmcmFnbWVudFNoYWRlcjp2aS5iYWNrZ3JvdW5kX2ZyYWd9LGN1YmU6e3VuaWZvcm1zOm5hKFtSdC5lbnZtYXAse29wYWNpdHk6e3ZhbHVlOjF9fV0pLHZlcnRleFNoYWRlcjp2aS5jdWJlX3ZlcnQsZnJhZ21lbnRTaGFkZXI6dmkuY3ViZV9mcmFnfSxlcXVpcmVjdDp7dW5pZm9ybXM6e3RFcXVpcmVjdDp7dmFsdWU6bnVsbH19LHZlcnRleFNoYWRlcjp2aS5lcXVpcmVjdF92ZXJ0LGZyYWdtZW50U2hhZGVyOnZpLmVxdWlyZWN0X2ZyYWd9LGRpc3RhbmNlUkdCQTp7dW5pZm9ybXM6bmEoW1J0LmNvbW1vbixSdC5kaXNwbGFjZW1lbnRtYXAse3JlZmVyZW5jZVBvc2l0aW9uOnt2YWx1ZTpuZXcgS30sbmVhckRpc3RhbmNlOnt2YWx1ZToxfSxmYXJEaXN0YW5jZTp7dmFsdWU6MWUzfX1dKSx2ZXJ0ZXhTaGFkZXI6dmkuZGlzdGFuY2VSR0JBX3ZlcnQsZnJhZ21lbnRTaGFkZXI6dmkuZGlzdGFuY2VSR0JBX2ZyYWd9LHNoYWRvdzp7dW5pZm9ybXM6bmEoW1J0LmxpZ2h0cyxSdC5mb2cse2NvbG9yOnt2YWx1ZTpuZXcgc24oMCl9LG9wYWNpdHk6e3ZhbHVlOjF9fV0pLHZlcnRleFNoYWRlcjp2aS5zaGFkb3dfdmVydCxmcmFnbWVudFNoYWRlcjp2aS5zaGFkb3dfZnJhZ319O2Z1bmN0aW9uIFVPZShuLHQsZSxpLHIsbyl7bGV0IGwsYyxhPW5ldyBzbigwKSxzPSEwPT09cj8wOjEsZD1udWxsLHU9MCxwPW51bGw7ZnVuY3Rpb24gbShfLE0pe2UuYnVmZmVycy5jb2xvci5zZXRDbGVhcihfLnIsXy5nLF8uYixNLG8pfXJldHVybntnZXRDbGVhckNvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LHNldENsZWFyQ29sb3I6ZnVuY3Rpb24oXyxNPTEpe2Euc2V0KF8pLHM9TSxtKGEscyl9LGdldENsZWFyQWxwaGE6ZnVuY3Rpb24oKXtyZXR1cm4gc30sc2V0Q2xlYXJBbHBoYTpmdW5jdGlvbihfKXtzPV8sbShhLHMpfSxyZW5kZXI6ZnVuY3Rpb24oXyxNKXtsZXQgeT0hMSx4PSEwPT09TS5pc1NjZW5lP00uYmFja2dyb3VuZDpudWxsO3gmJnguaXNUZXh0dXJlJiYoeD10LmdldCh4KSk7bGV0IFI9bi54cixJPVIuZ2V0U2Vzc2lvbiYmUi5nZXRTZXNzaW9uKCk7SSYmImFkZGl0aXZlIj09PUkuZW52aXJvbm1lbnRCbGVuZE1vZGUmJih4PW51bGwpLG51bGw9PT14P20oYSxzKTp4JiZ4LmlzQ29sb3ImJihtKHgsMSkseT0hMCksKG4uYXV0b0NsZWFyfHx5KSYmbi5jbGVhcihuLmF1dG9DbGVhckNvbG9yLG4uYXV0b0NsZWFyRGVwdGgsbi5hdXRvQ2xlYXJTdGVuY2lsKSx4JiYoeC5pc0N1YmVUZXh0dXJlfHx4Lm1hcHBpbmc9PT1KSSk/KHZvaWQgMD09PWMmJihjPW5ldyBzbyhuZXcgeW0oMSwxLDEpLG5ldyBqZCh7bmFtZToiQmFja2dyb3VuZEN1YmVNYXRlcmlhbCIsdW5pZm9ybXM6SjAoamMuY3ViZS51bmlmb3JtcyksdmVydGV4U2hhZGVyOmpjLmN1YmUudmVydGV4U2hhZGVyLGZyYWdtZW50U2hhZGVyOmpjLmN1YmUuZnJhZ21lbnRTaGFkZXIsc2lkZTpibyxkZXB0aFRlc3Q6ITEsZGVwdGhXcml0ZTohMSxmb2c6ITF9KSksYy5nZW9tZXRyeS5kZWxldGVBdHRyaWJ1dGUoIm5vcm1hbCIpLGMuZ2VvbWV0cnkuZGVsZXRlQXR0cmlidXRlKCJ1diIpLGMub25CZWZvcmVSZW5kZXI9ZnVuY3Rpb24oQixlZSxRKXt0aGlzLm1hdHJpeFdvcmxkLmNvcHlQb3NpdGlvbihRLm1hdHJpeFdvcmxkKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGMubWF0ZXJpYWwsImVudk1hcCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVuaWZvcm1zLmVudk1hcC52YWx1ZX19KSxpLnVwZGF0ZShjKSksYy5tYXRlcmlhbC51bmlmb3Jtcy5lbnZNYXAudmFsdWU9eCxjLm1hdGVyaWFsLnVuaWZvcm1zLmZsaXBFbnZNYXAudmFsdWU9eC5pc0N1YmVUZXh0dXJlJiYhMT09PXguaXNSZW5kZXJUYXJnZXRUZXh0dXJlPy0xOjEsKGQhPT14fHx1IT09eC52ZXJzaW9ufHxwIT09bi50b25lTWFwcGluZykmJihjLm1hdGVyaWFsLm5lZWRzVXBkYXRlPSEwLGQ9eCx1PXgudmVyc2lvbixwPW4udG9uZU1hcHBpbmcpLF8udW5zaGlmdChjLGMuZ2VvbWV0cnksYy5tYXRlcmlhbCwwLDAsbnVsbCkpOngmJnguaXNUZXh0dXJlJiYodm9pZCAwPT09bCYmKGw9bmV3IHNvKG5ldyBUeCgyLDIpLG5ldyBqZCh7bmFtZToiQmFja2dyb3VuZE1hdGVyaWFsIix1bmlmb3JtczpKMChqYy5iYWNrZ3JvdW5kLnVuaWZvcm1zKSx2ZXJ0ZXhTaGFkZXI6amMuYmFja2dyb3VuZC52ZXJ0ZXhTaGFkZXIsZnJhZ21lbnRTaGFkZXI6amMuYmFja2dyb3VuZC5mcmFnbWVudFNoYWRlcixzaWRlOnl4LGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExLGZvZzohMX0pKSxsLmdlb21ldHJ5LmRlbGV0ZUF0dHJpYnV0ZSgibm9ybWFsIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwubWF0ZXJpYWwsIm1hcCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVuaWZvcm1zLnQyRC52YWx1ZX19KSxpLnVwZGF0ZShsKSksbC5tYXRlcmlhbC51bmlmb3Jtcy50MkQudmFsdWU9eCwhMD09PXgubWF0cml4QXV0b1VwZGF0ZSYmeC51cGRhdGVNYXRyaXgoKSxsLm1hdGVyaWFsLnVuaWZvcm1zLnV2VHJhbnNmb3JtLnZhbHVlLmNvcHkoeC5tYXRyaXgpLChkIT09eHx8dSE9PXgudmVyc2lvbnx8cCE9PW4udG9uZU1hcHBpbmcpJiYobC5tYXRlcmlhbC5uZWVkc1VwZGF0ZT0hMCxkPXgsdT14LnZlcnNpb24scD1uLnRvbmVNYXBwaW5nKSxfLnVuc2hpZnQobCxsLmdlb21ldHJ5LGwubWF0ZXJpYWwsMCwwLG51bGwpKX19fWZ1bmN0aW9uIGpPZShuLHQsZSxpKXtsZXQgcj1uLmdldFBhcmFtZXRlcigzNDkyMSksbz1pLmlzV2ViR0wyP251bGw6dC5nZXQoIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IiksYT1pLmlzV2ViR0wyfHxudWxsIT09byxzPXt9LGw9XyhudWxsKSxjPWw7ZnVuY3Rpb24gcChjZSl7cmV0dXJuIGkuaXNXZWJHTDI/bi5iaW5kVmVydGV4QXJyYXkoY2UpOm8uYmluZFZlcnRleEFycmF5T0VTKGNlKX1mdW5jdGlvbiBoKGNlKXtyZXR1cm4gaS5pc1dlYkdMMj9uLmRlbGV0ZVZlcnRleEFycmF5KGNlKTpvLmRlbGV0ZVZlcnRleEFycmF5T0VTKGNlKX1mdW5jdGlvbiBfKGNlKXtsZXQgaGU9W10sX2U9W10sJD1bXTtmb3IobGV0IGRlPTA7ZGU8cjtkZSsrKWhlW2RlXT0wLF9lW2RlXT0wLCRbZGVdPTA7cmV0dXJue2dlb21ldHJ5Om51bGwscHJvZ3JhbTpudWxsLHdpcmVmcmFtZTohMSxuZXdBdHRyaWJ1dGVzOmhlLGVuYWJsZWRBdHRyaWJ1dGVzOl9lLGF0dHJpYnV0ZURpdmlzb3JzOiQsb2JqZWN0OmNlLGF0dHJpYnV0ZXM6e30saW5kZXg6bnVsbH19ZnVuY3Rpb24geCgpe2xldCBjZT1jLm5ld0F0dHJpYnV0ZXM7Zm9yKGxldCBoZT0wLF9lPWNlLmxlbmd0aDtoZTxfZTtoZSsrKWNlW2hlXT0wfWZ1bmN0aW9uIFIoY2Upe0koY2UsMCl9ZnVuY3Rpb24gSShjZSxoZSl7bGV0ICQ9Yy5lbmFibGVkQXR0cmlidXRlcyxkZT1jLmF0dHJpYnV0ZURpdmlzb3JzO2MubmV3QXR0cmlidXRlc1tjZV09MSwwPT09JFtjZV0mJihuLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KGNlKSwkW2NlXT0xKSxkZVtjZV0hPT1oZSYmKChpLmlzV2ViR0wyP246dC5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSlbaS5pc1dlYkdMMj8idmVydGV4QXR0cmliRGl2aXNvciI6InZlcnRleEF0dHJpYkRpdmlzb3JBTkdMRSJdKGNlLGhlKSxkZVtjZV09aGUpfWZ1bmN0aW9uIEIoKXtsZXQgY2U9Yy5uZXdBdHRyaWJ1dGVzLGhlPWMuZW5hYmxlZEF0dHJpYnV0ZXM7Zm9yKGxldCBfZT0wLCQ9aGUubGVuZ3RoO19lPCQ7X2UrKyloZVtfZV0hPT1jZVtfZV0mJihuLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShfZSksaGVbX2VdPTApfWZ1bmN0aW9uIGVlKGNlLGhlLF9lLCQsZGUscGUpeyEwIT09aS5pc1dlYkdMMnx8NTEyNCE9PV9lJiY1MTI1IT09X2U/bi52ZXJ0ZXhBdHRyaWJQb2ludGVyKGNlLGhlLF9lLCQsZGUscGUpOm4udmVydGV4QXR0cmliSVBvaW50ZXIoY2UsaGUsX2UsZGUscGUpfWZ1bmN0aW9uIEQoKXtyZSgpLGMhPT1sJiYoYz1sLHAoYy5vYmplY3QpKX1mdW5jdGlvbiByZSgpe2wuZ2VvbWV0cnk9bnVsbCxsLnByb2dyYW09bnVsbCxsLndpcmVmcmFtZT0hMX1yZXR1cm57c2V0dXA6ZnVuY3Rpb24oY2UsaGUsX2UsJCxkZSl7bGV0IHBlPSExO2lmKGEpe2xldCBHZT1mdW5jdGlvbihjZSxoZSxfZSl7bGV0ICQ9ITA9PT1fZS53aXJlZnJhbWUsZGU9c1tjZS5pZF07dm9pZCAwPT09ZGUmJihkZT17fSxzW2NlLmlkXT1kZSk7bGV0IHBlPWRlW2hlLmlkXTt2b2lkIDA9PT1wZSYmKHBlPXt9LGRlW2hlLmlkXT1wZSk7bGV0IEdlPXBlWyRdO3JldHVybiB2b2lkIDA9PT1HZSYmKEdlPV8oaS5pc1dlYkdMMj9uLmNyZWF0ZVZlcnRleEFycmF5KCk6by5jcmVhdGVWZXJ0ZXhBcnJheU9FUygpKSxwZVskXT1HZSksR2V9KCQsX2UsaGUpO2MhPT1HZSYmKGM9R2UscChjLm9iamVjdCkpLHBlPWZ1bmN0aW9uKGNlLGhlKXtsZXQgX2U9Yy5hdHRyaWJ1dGVzLCQ9Y2UuYXR0cmlidXRlcyxkZT0wO2ZvcihsZXQgcGUgaW4gJCl7bGV0IEdlPV9lW3BlXSxTZT0kW3BlXTtpZih2b2lkIDA9PT1HZXx8R2UuYXR0cmlidXRlIT09U2V8fEdlLmRhdGEhPT1TZS5kYXRhKXJldHVybiEwO2RlKyt9cmV0dXJuIGMuYXR0cmlidXRlc051bSE9PWRlfHxjLmluZGV4IT09aGV9KCQsZGUpLHBlJiZmdW5jdGlvbihjZSxoZSl7bGV0IF9lPXt9LCQ9Y2UuYXR0cmlidXRlcyxkZT0wO2ZvcihsZXQgcGUgaW4gJCl7bGV0IEdlPSRbcGVdLFNlPXt9O1NlLmF0dHJpYnV0ZT1HZSxHZS5kYXRhJiYoU2UuZGF0YT1HZS5kYXRhKSxfZVtwZV09U2UsZGUrK31jLmF0dHJpYnV0ZXM9X2UsYy5hdHRyaWJ1dGVzTnVtPWRlLGMuaW5kZXg9aGV9KCQsZGUpfWVsc2V7bGV0IEdlPSEwPT09aGUud2lyZWZyYW1lOyhjLmdlb21ldHJ5IT09JC5pZHx8Yy5wcm9ncmFtIT09X2UuaWR8fGMud2lyZWZyYW1lIT09R2UpJiYoYy5nZW9tZXRyeT0kLmlkLGMucHJvZ3JhbT1fZS5pZCxjLndpcmVmcmFtZT1HZSxwZT0hMCl9ITA9PT1jZS5pc0luc3RhbmNlZE1lc2gmJihwZT0hMCksbnVsbCE9PWRlJiZlLnVwZGF0ZShkZSwzNDk2MykscGUmJihmdW5jdGlvbihjZSxoZSxfZSwkKXtpZighMT09PWkuaXNXZWJHTDImJihjZS5pc0luc3RhbmNlZE1lc2h8fCQuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSkmJm51bGw9PT10LmdldCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpKXJldHVybjt4KCk7bGV0IGRlPSQuYXR0cmlidXRlcyxwZT1fZS5nZXRBdHRyaWJ1dGVzKCksR2U9aGUuZGVmYXVsdEF0dHJpYnV0ZVZhbHVlcztmb3IobGV0IFNlIGluIHBlKXtsZXQgRmU9cGVbU2VdO2lmKEZlLmxvY2F0aW9uPj0wKXtsZXQgbHQ9ZGVbU2VdO2lmKHZvaWQgMD09PWx0JiYoImluc3RhbmNlTWF0cml4Ij09PVNlJiZjZS5pbnN0YW5jZU1hdHJpeCYmKGx0PWNlLmluc3RhbmNlTWF0cml4KSwiaW5zdGFuY2VDb2xvciI9PT1TZSYmY2UuaW5zdGFuY2VDb2xvciYmKGx0PWNlLmluc3RhbmNlQ29sb3IpKSx2b2lkIDAhPT1sdCl7bGV0IE10PWx0Lm5vcm1hbGl6ZWQscHQ9bHQuaXRlbVNpemUsa2U9ZS5nZXQobHQpO2lmKHZvaWQgMD09PWtlKWNvbnRpbnVlO2xldCBUbj1rZS5idWZmZXIsd3Q9a2UudHlwZSxvbj1rZS5ieXRlc1BlckVsZW1lbnQ7aWYobHQuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSl7bGV0IENlPWx0LmRhdGEsbXQ9Q2Uuc3RyaWRlLGh0PWx0Lm9mZnNldDtpZihDZSYmQ2UuaXNJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcil7Zm9yKGxldCBvZT0wO29lPEZlLmxvY2F0aW9uU2l6ZTtvZSsrKUkoRmUubG9jYXRpb24rb2UsQ2UubWVzaFBlckF0dHJpYnV0ZSk7ITAhPT1jZS5pc0luc3RhbmNlZE1lc2gmJnZvaWQgMD09PSQuX21heEluc3RhbmNlQ291bnQmJigkLl9tYXhJbnN0YW5jZUNvdW50PUNlLm1lc2hQZXJBdHRyaWJ1dGUqQ2UuY291bnQpfWVsc2UgZm9yKGxldCBvZT0wO29lPEZlLmxvY2F0aW9uU2l6ZTtvZSsrKVIoRmUubG9jYXRpb24rb2UpO24uYmluZEJ1ZmZlcigzNDk2MixUbik7Zm9yKGxldCBvZT0wO29lPEZlLmxvY2F0aW9uU2l6ZTtvZSsrKWVlKEZlLmxvY2F0aW9uK29lLHB0L0ZlLmxvY2F0aW9uU2l6ZSx3dCxNdCxtdCpvbiwoaHQrcHQvRmUubG9jYXRpb25TaXplKm9lKSpvbil9ZWxzZXtpZihsdC5pc0luc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZSl7Zm9yKGxldCBDZT0wO0NlPEZlLmxvY2F0aW9uU2l6ZTtDZSsrKUkoRmUubG9jYXRpb24rQ2UsbHQubWVzaFBlckF0dHJpYnV0ZSk7ITAhPT1jZS5pc0luc3RhbmNlZE1lc2gmJnZvaWQgMD09PSQuX21heEluc3RhbmNlQ291bnQmJigkLl9tYXhJbnN0YW5jZUNvdW50PWx0Lm1lc2hQZXJBdHRyaWJ1dGUqbHQuY291bnQpfWVsc2UgZm9yKGxldCBDZT0wO0NlPEZlLmxvY2F0aW9uU2l6ZTtDZSsrKVIoRmUubG9jYXRpb24rQ2UpO24uYmluZEJ1ZmZlcigzNDk2MixUbik7Zm9yKGxldCBDZT0wO0NlPEZlLmxvY2F0aW9uU2l6ZTtDZSsrKWVlKEZlLmxvY2F0aW9uK0NlLHB0L0ZlLmxvY2F0aW9uU2l6ZSx3dCxNdCxwdCpvbixwdC9GZS5sb2NhdGlvblNpemUqQ2Uqb24pfX1lbHNlIGlmKHZvaWQgMCE9PUdlKXtsZXQgTXQ9R2VbU2VdO2lmKHZvaWQgMCE9PU10KXN3aXRjaChNdC5sZW5ndGgpe2Nhc2UgMjpuLnZlcnRleEF0dHJpYjJmdihGZS5sb2NhdGlvbixNdCk7YnJlYWs7Y2FzZSAzOm4udmVydGV4QXR0cmliM2Z2KEZlLmxvY2F0aW9uLE10KTticmVhaztjYXNlIDQ6bi52ZXJ0ZXhBdHRyaWI0ZnYoRmUubG9jYXRpb24sTXQpO2JyZWFrO2RlZmF1bHQ6bi52ZXJ0ZXhBdHRyaWIxZnYoRmUubG9jYXRpb24sTXQpfX19fUIoKX0oY2UsaGUsX2UsJCksbnVsbCE9PWRlJiZuLmJpbmRCdWZmZXIoMzQ5NjMsZS5nZXQoZGUpLmJ1ZmZlcikpfSxyZXNldDpELHJlc2V0RGVmYXVsdFN0YXRlOnJlLGRpc3Bvc2U6ZnVuY3Rpb24oKXtEKCk7Zm9yKGxldCBjZSBpbiBzKXtsZXQgaGU9c1tjZV07Zm9yKGxldCBfZSBpbiBoZSl7bGV0ICQ9aGVbX2VdO2ZvcihsZXQgZGUgaW4gJCloKCRbZGVdLm9iamVjdCksZGVsZXRlICRbZGVdO2RlbGV0ZSBoZVtfZV19ZGVsZXRlIHNbY2VdfX0scmVsZWFzZVN0YXRlc09mR2VvbWV0cnk6ZnVuY3Rpb24oY2Upe2lmKHZvaWQgMD09PXNbY2UuaWRdKXJldHVybjtsZXQgaGU9c1tjZS5pZF07Zm9yKGxldCBfZSBpbiBoZSl7bGV0ICQ9aGVbX2VdO2ZvcihsZXQgZGUgaW4gJCloKCRbZGVdLm9iamVjdCksZGVsZXRlICRbZGVdO2RlbGV0ZSBoZVtfZV19ZGVsZXRlIHNbY2UuaWRdfSxyZWxlYXNlU3RhdGVzT2ZQcm9ncmFtOmZ1bmN0aW9uKGNlKXtmb3IobGV0IGhlIGluIHMpe2xldCBfZT1zW2hlXTtpZih2b2lkIDA9PT1fZVtjZS5pZF0pY29udGludWU7bGV0ICQ9X2VbY2UuaWRdO2ZvcihsZXQgZGUgaW4gJCloKCRbZGVdLm9iamVjdCksZGVsZXRlICRbZGVdO2RlbGV0ZSBfZVtjZS5pZF19fSxpbml0QXR0cmlidXRlczp4LGVuYWJsZUF0dHJpYnV0ZTpSLGRpc2FibGVVbnVzZWRBdHRyaWJ1dGVzOkJ9fWZ1bmN0aW9uIEdPZShuLHQsZSxpKXtsZXQgbyxyPWkuaXNXZWJHTDI7dGhpcy5zZXRNb2RlPWZ1bmN0aW9uKGMpe289Y30sdGhpcy5yZW5kZXI9ZnVuY3Rpb24oYyxkKXtuLmRyYXdBcnJheXMobyxjLGQpLGUudXBkYXRlKGQsbywxKX0sdGhpcy5yZW5kZXJJbnN0YW5jZXM9ZnVuY3Rpb24oYyxkLHUpe2lmKDA9PT11KXJldHVybjtsZXQgcCxoO2lmKHIpcD1uLGg9ImRyYXdBcnJheXNJbnN0YW5jZWQiO2Vsc2UgaWYocD10LmdldCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpLGg9ImRyYXdBcnJheXNJbnN0YW5jZWRBTkdMRSIsbnVsbD09PXApcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xCdWZmZXJSZW5kZXJlcjogdXNpbmcgVEhSRUUuSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkgYnV0IGhhcmR3YXJlIGRvZXMgbm90IHN1cHBvcnQgZXh0ZW5zaW9uIEFOR0xFX2luc3RhbmNlZF9hcnJheXMuIik7cFtoXShvLGMsZCx1KSxlLnVwZGF0ZShkLG8sdSl9fWZ1bmN0aW9uIFdPZShuLHQsZSl7bGV0IGk7ZnVuY3Rpb24gbyhRKXtpZigiaGlnaHAiPT09USl7aWYobi5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoMzU2MzMsMzYzMzgpLnByZWNpc2lvbj4wJiZuLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgzNTYzMiwzNjMzOCkucHJlY2lzaW9uPjApcmV0dXJuImhpZ2hwIjtRPSJtZWRpdW1wIn1yZXR1cm4ibWVkaXVtcCI9PT1RJiZuLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgzNTYzMywzNjMzNykucHJlY2lzaW9uPjAmJm4uZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KDM1NjMyLDM2MzM3KS5wcmVjaXNpb24+MD8ibWVkaXVtcCI6Imxvd3AifWxldCBhPXR5cGVvZiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0PCJ1IiYmbiBpbnN0YW5jZW9mIFdlYkdMMlJlbmRlcmluZ0NvbnRleHR8fHR5cGVvZiBXZWJHTDJDb21wdXRlUmVuZGVyaW5nQ29udGV4dDwidSImJm4gaW5zdGFuY2VvZiBXZWJHTDJDb21wdXRlUmVuZGVyaW5nQ29udGV4dCxzPXZvaWQgMCE9PWUucHJlY2lzaW9uP2UucHJlY2lzaW9uOiJoaWdocCIsbD1vKHMpO2whPT1zJiYoY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiIscywibm90IHN1cHBvcnRlZCwgdXNpbmciLGwsImluc3RlYWQuIikscz1sKTtsZXQgYz1hfHx0LmhhcygiV0VCR0xfZHJhd19idWZmZXJzIiksZD0hMD09PWUubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcix1PW4uZ2V0UGFyYW1ldGVyKDM0OTMwKSxwPW4uZ2V0UGFyYW1ldGVyKDM1NjYwKSxoPW4uZ2V0UGFyYW1ldGVyKDMzNzkpLG09bi5nZXRQYXJhbWV0ZXIoMzQwNzYpLF89bi5nZXRQYXJhbWV0ZXIoMzQ5MjEpLE09bi5nZXRQYXJhbWV0ZXIoMzYzNDcpLHk9bi5nZXRQYXJhbWV0ZXIoMzYzNDgpLHg9bi5nZXRQYXJhbWV0ZXIoMzYzNDkpLFI9cD4wLEk9YXx8dC5oYXMoIk9FU190ZXh0dXJlX2Zsb2F0Iik7cmV0dXJue2lzV2ViR0wyOmEsZHJhd0J1ZmZlcnM6YyxnZXRNYXhBbmlzb3Ryb3B5OmZ1bmN0aW9uKCl7aWYodm9pZCAwIT09aSlyZXR1cm4gaTtpZighMD09PXQuaGFzKCJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSl7bGV0IFE9dC5nZXQoIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpO2k9bi5nZXRQYXJhbWV0ZXIoUS5NQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQpfWVsc2UgaT0wO3JldHVybiBpfSxnZXRNYXhQcmVjaXNpb246byxwcmVjaXNpb246cyxsb2dhcml0aG1pY0RlcHRoQnVmZmVyOmQsbWF4VGV4dHVyZXM6dSxtYXhWZXJ0ZXhUZXh0dXJlczpwLG1heFRleHR1cmVTaXplOmgsbWF4Q3ViZW1hcFNpemU6bSxtYXhBdHRyaWJ1dGVzOl8sbWF4VmVydGV4VW5pZm9ybXM6TSxtYXhWYXJ5aW5nczp5LG1heEZyYWdtZW50VW5pZm9ybXM6eCx2ZXJ0ZXhUZXh0dXJlczpSLGZsb2F0RnJhZ21lbnRUZXh0dXJlczpJLGZsb2F0VmVydGV4VGV4dHVyZXM6UiYmSSxtYXhTYW1wbGVzOmE/bi5nZXRQYXJhbWV0ZXIoMzYxODMpOjB9fWZ1bmN0aW9uIHFPZShuKXtsZXQgdD10aGlzLGU9bnVsbCxpPTAscj0hMSxvPSExLGE9bmV3IFhsLHM9bmV3IHlvLGw9e3ZhbHVlOm51bGwsbmVlZHNVcGRhdGU6ITF9O2Z1bmN0aW9uIGMoKXtsLnZhbHVlIT09ZSYmKGwudmFsdWU9ZSxsLm5lZWRzVXBkYXRlPWk+MCksdC5udW1QbGFuZXM9aSx0Lm51bUludGVyc2VjdGlvbj0wfWZ1bmN0aW9uIGQodSxwLGgsbSl7bGV0IF89bnVsbCE9PXU/dS5sZW5ndGg6MCxNPW51bGw7aWYoMCE9PV8pe2lmKE09bC52YWx1ZSwhMCE9PW18fG51bGw9PT1NKXtsZXQgeT1oKzQqXyx4PXAubWF0cml4V29ybGRJbnZlcnNlO3MuZ2V0Tm9ybWFsTWF0cml4KHgpLChudWxsPT09TXx8TS5sZW5ndGg8eSkmJihNPW5ldyBGbG9hdDMyQXJyYXkoeSkpO2ZvcihsZXQgUj0wLEk9aDtSIT09XzsrK1IsSSs9NClhLmNvcHkodVtSXSkuYXBwbHlNYXRyaXg0KHgscyksYS5ub3JtYWwudG9BcnJheShNLEkpLE1bSSszXT1hLmNvbnN0YW50fWwudmFsdWU9TSxsLm5lZWRzVXBkYXRlPSEwfXJldHVybiB0Lm51bVBsYW5lcz1fLHQubnVtSW50ZXJzZWN0aW9uPTAsTX10aGlzLnVuaWZvcm09bCx0aGlzLm51bVBsYW5lcz0wLHRoaXMubnVtSW50ZXJzZWN0aW9uPTAsdGhpcy5pbml0PWZ1bmN0aW9uKHUscCxoKXtsZXQgbT0wIT09dS5sZW5ndGh8fHB8fDAhPT1pfHxyO3JldHVybiByPXAsZT1kKHUsaCwwKSxpPXUubGVuZ3RoLG19LHRoaXMuYmVnaW5TaGFkb3dzPWZ1bmN0aW9uKCl7bz0hMCxkKG51bGwpfSx0aGlzLmVuZFNoYWRvd3M9ZnVuY3Rpb24oKXtvPSExLGMoKX0sdGhpcy5zZXRTdGF0ZT1mdW5jdGlvbih1LHAsaCl7bGV0IG09dS5jbGlwcGluZ1BsYW5lcyxfPXUuY2xpcEludGVyc2VjdGlvbixNPXUuY2xpcFNoYWRvd3MseT1uLmdldCh1KTtpZighcnx8bnVsbD09PW18fDA9PT1tLmxlbmd0aHx8byYmIU0pbz9kKG51bGwpOmMoKTtlbHNle2xldCB4PW8/MDppLFI9NCp4LEk9eS5jbGlwcGluZ1N0YXRlfHxudWxsO2wudmFsdWU9SSxJPWQobSxwLFIsaCk7Zm9yKGxldCBCPTA7QiE9PVI7KytCKUlbQl09ZVtCXTt5LmNsaXBwaW5nU3RhdGU9SSx0aGlzLm51bUludGVyc2VjdGlvbj1fP3RoaXMubnVtUGxhbmVzOjAsdGhpcy5udW1QbGFuZXMrPXh9fX1mdW5jdGlvbiBYT2Uobil7bGV0IHQ9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gZShhLHMpe3JldHVybiBzPT09WTM/YS5tYXBwaW5nPVd4OnM9PT1RMyYmKGEubWFwcGluZz1xeCksYX1mdW5jdGlvbiByKGEpe2xldCBzPWEudGFyZ2V0O3MucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIscik7bGV0IGw9dC5nZXQocyk7dm9pZCAwIT09bCYmKHQuZGVsZXRlKHMpLGwuZGlzcG9zZSgpKX1yZXR1cm57Z2V0OmZ1bmN0aW9uKGEpe2lmKGEmJmEuaXNUZXh0dXJlJiYhMT09PWEuaXNSZW5kZXJUYXJnZXRUZXh0dXJlKXtsZXQgcz1hLm1hcHBpbmc7aWYocz09PVkzfHxzPT09UTMpe2lmKHQuaGFzKGEpKXJldHVybiBlKHQuZ2V0KGEpLnRleHR1cmUsYS5tYXBwaW5nKTt7bGV0IGw9YS5pbWFnZTtpZihsJiZsLmhlaWdodD4wKXtsZXQgYz1uZXcgSUkobC5oZWlnaHQvMik7cmV0dXJuIGMuZnJvbUVxdWlyZWN0YW5ndWxhclRleHR1cmUobixhKSx0LnNldChhLGMpLGEuYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsciksZShjLnRleHR1cmUsYS5tYXBwaW5nKX1yZXR1cm4gbnVsbH19fXJldHVybiBhfSxkaXNwb3NlOmZ1bmN0aW9uKCl7dD1uZXcgV2Vha01hcH19fWpjLnBoeXNpY2FsPXt1bmlmb3JtczpuYShbamMuc3RhbmRhcmQudW5pZm9ybXMse2NsZWFyY29hdDp7dmFsdWU6MH0sY2xlYXJjb2F0TWFwOnt2YWx1ZTpudWxsfSxjbGVhcmNvYXRSb3VnaG5lc3M6e3ZhbHVlOjB9LGNsZWFyY29hdFJvdWdobmVzc01hcDp7dmFsdWU6bnVsbH0sY2xlYXJjb2F0Tm9ybWFsU2NhbGU6e3ZhbHVlOm5ldyAkZSgxLDEpfSxjbGVhcmNvYXROb3JtYWxNYXA6e3ZhbHVlOm51bGx9LHNoZWVuOnt2YWx1ZTowfSxzaGVlbkNvbG9yOnt2YWx1ZTpuZXcgc24oMCl9LHNoZWVuQ29sb3JNYXA6e3ZhbHVlOm51bGx9LHNoZWVuUm91Z2huZXNzOnt2YWx1ZToxfSxzaGVlblJvdWdobmVzc01hcDp7dmFsdWU6bnVsbH0sdHJhbnNtaXNzaW9uOnt2YWx1ZTowfSx0cmFuc21pc3Npb25NYXA6e3ZhbHVlOm51bGx9LHRyYW5zbWlzc2lvblNhbXBsZXJTaXplOnt2YWx1ZTpuZXcgJGV9LHRyYW5zbWlzc2lvblNhbXBsZXJNYXA6e3ZhbHVlOm51bGx9LHRoaWNrbmVzczp7dmFsdWU6MH0sdGhpY2tuZXNzTWFwOnt2YWx1ZTpudWxsfSxhdHRlbnVhdGlvbkRpc3RhbmNlOnt2YWx1ZTowfSxhdHRlbnVhdGlvbkNvbG9yOnt2YWx1ZTpuZXcgc24oMCl9LHNwZWN1bGFySW50ZW5zaXR5Ont2YWx1ZToxfSxzcGVjdWxhckludGVuc2l0eU1hcDp7dmFsdWU6bnVsbH0sc3BlY3VsYXJDb2xvcjp7dmFsdWU6bmV3IHNuKDEsMSwxKX0sc3BlY3VsYXJDb2xvck1hcDp7dmFsdWU6bnVsbH19XSksdmVydGV4U2hhZGVyOnZpLm1lc2hwaHlzaWNhbF92ZXJ0LGZyYWdtZW50U2hhZGVyOnZpLm1lc2hwaHlzaWNhbF9mcmFnfTt2YXIgeG09Y2xhc3MgZXh0ZW5kcyBTeHtjb25zdHJ1Y3Rvcih0PS0xLGU9MSxpPTEscj0tMSxvPS4xLGE9MmUzKXtzdXBlcigpLHRoaXMudHlwZT0iT3J0aG9ncmFwaGljQ2FtZXJhIix0aGlzLnpvb209MSx0aGlzLnZpZXc9bnVsbCx0aGlzLmxlZnQ9dCx0aGlzLnJpZ2h0PWUsdGhpcy50b3A9aSx0aGlzLmJvdHRvbT1yLHRoaXMubmVhcj1vLHRoaXMuZmFyPWEsdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksdGhpcy5sZWZ0PXQubGVmdCx0aGlzLnJpZ2h0PXQucmlnaHQsdGhpcy50b3A9dC50b3AsdGhpcy5ib3R0b209dC5ib3R0b20sdGhpcy5uZWFyPXQubmVhcix0aGlzLmZhcj10LmZhcix0aGlzLnpvb209dC56b29tLHRoaXMudmlldz1udWxsPT09dC52aWV3P251bGw6T2JqZWN0LmFzc2lnbih7fSx0LnZpZXcpLHRoaXN9c2V0Vmlld09mZnNldCh0LGUsaSxyLG8sYSl7bnVsbD09PXRoaXMudmlldyYmKHRoaXMudmlldz17ZW5hYmxlZDohMCxmdWxsV2lkdGg6MSxmdWxsSGVpZ2h0OjEsb2Zmc2V0WDowLG9mZnNldFk6MCx3aWR0aDoxLGhlaWdodDoxfSksdGhpcy52aWV3LmVuYWJsZWQ9ITAsdGhpcy52aWV3LmZ1bGxXaWR0aD10LHRoaXMudmlldy5mdWxsSGVpZ2h0PWUsdGhpcy52aWV3Lm9mZnNldFg9aSx0aGlzLnZpZXcub2Zmc2V0WT1yLHRoaXMudmlldy53aWR0aD1vLHRoaXMudmlldy5oZWlnaHQ9YSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1jbGVhclZpZXdPZmZzZXQoKXtudWxsIT09dGhpcy52aWV3JiYodGhpcy52aWV3LmVuYWJsZWQ9ITEpLHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfXVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKXtsZXQgdD0odGhpcy5yaWdodC10aGlzLmxlZnQpLygyKnRoaXMuem9vbSksZT0odGhpcy50b3AtdGhpcy5ib3R0b20pLygyKnRoaXMuem9vbSksaT0odGhpcy5yaWdodCt0aGlzLmxlZnQpLzIscj0odGhpcy50b3ArdGhpcy5ib3R0b20pLzIsbz1pLXQsYT1pK3Qscz1yK2UsbD1yLWU7aWYobnVsbCE9PXRoaXMudmlldyYmdGhpcy52aWV3LmVuYWJsZWQpe2xldCBjPSh0aGlzLnJpZ2h0LXRoaXMubGVmdCkvdGhpcy52aWV3LmZ1bGxXaWR0aC90aGlzLnpvb20sZD0odGhpcy50b3AtdGhpcy5ib3R0b20pL3RoaXMudmlldy5mdWxsSGVpZ2h0L3RoaXMuem9vbTtvKz1jKnRoaXMudmlldy5vZmZzZXRYLGE9bytjKnRoaXMudmlldy53aWR0aCxzLT1kKnRoaXMudmlldy5vZmZzZXRZLGw9cy1kKnRoaXMudmlldy5oZWlnaHR9dGhpcy5wcm9qZWN0aW9uTWF0cml4Lm1ha2VPcnRob2dyYXBoaWMobyxhLHMsbCx0aGlzLm5lYXIsdGhpcy5mYXIpLHRoaXMucHJvamVjdGlvbk1hdHJpeEludmVyc2UuY29weSh0aGlzLnByb2plY3Rpb25NYXRyaXgpLmludmVydCgpfXRvSlNPTih0KXtsZXQgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0Lnpvb209dGhpcy56b29tLGUub2JqZWN0LmxlZnQ9dGhpcy5sZWZ0LGUub2JqZWN0LnJpZ2h0PXRoaXMucmlnaHQsZS5vYmplY3QudG9wPXRoaXMudG9wLGUub2JqZWN0LmJvdHRvbT10aGlzLmJvdHRvbSxlLm9iamVjdC5uZWFyPXRoaXMubmVhcixlLm9iamVjdC5mYXI9dGhpcy5mYXIsbnVsbCE9PXRoaXMudmlldyYmKGUub2JqZWN0LnZpZXc9T2JqZWN0LmFzc2lnbih7fSx0aGlzLnZpZXcpKSxlfX07eG0ucHJvdG90eXBlLmlzT3J0aG9ncmFwaGljQ2FtZXJhPSEwO3ZhciB0Xz1jbGFzcyBleHRlbmRzIGpke2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMudHlwZT0iUmF3U2hhZGVyTWF0ZXJpYWwifX07dF8ucHJvdG90eXBlLmlzUmF3U2hhZGVyTWF0ZXJpYWw9ITA7dmFyIFEwPTQsQ3A9OCxVYz1NYXRoLnBvdygyLENwKSxmdGU9Wy4xMjUsLjIxNSwuMzUsLjQ0NiwuNTI2LC41ODJdLGd0ZT1DcC1RMCsxK2Z0ZS5sZW5ndGgsTDM9bmV3IHhtLHtfbG9kUGxhbmVzOmx4LF9zaXplTG9kczptZWUsX3NpZ21hczphSX09WU9lKCksZmVlPW5ldyBzbixCMz1udWxsLGZtPSgxK01hdGguc3FydCg1KSkvMixMMD0xL2ZtLGdlZT1bbmV3IEsoMSwxLDEpLG5ldyBLKC0xLDEsMSksbmV3IEsoMSwxLC0xKSxuZXcgSygtMSwxLC0xKSxuZXcgSygwLGZtLEwwKSxuZXcgSygwLGZtLC1MMCksbmV3IEsoTDAsMCxmbSksbmV3IEsoLUwwLDAsZm0pLG5ldyBLKGZtLEwwLDApLG5ldyBLKC1mbSxMMCwwKV0sQUk9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5fcmVuZGVyZXI9dCx0aGlzLl9waW5nUG9uZ1JlbmRlclRhcmdldD1udWxsLHRoaXMuX2JsdXJNYXRlcmlhbD1mdW5jdGlvbihuKXtsZXQgdD1uZXcgRmxvYXQzMkFycmF5KDIwKSxlPW5ldyBLKDAsMSwwKTtyZXR1cm4gbmV3IHRfKHtuYW1lOiJTcGhlcmljYWxHYXVzc2lhbkJsdXIiLGRlZmluZXM6e246MjB9LHVuaWZvcm1zOntlbnZNYXA6e3ZhbHVlOm51bGx9LHNhbXBsZXM6e3ZhbHVlOjF9LHdlaWdodHM6e3ZhbHVlOnR9LGxhdGl0dWRpbmFsOnt2YWx1ZTohMX0sZFRoZXRhOnt2YWx1ZTowfSxtaXBJbnQ6e3ZhbHVlOjB9LHBvbGVBeGlzOnt2YWx1ZTplfX0sdmVydGV4U2hhZGVyOiJcblxuXHRcdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXHRcdHByZWNpc2lvbiBtZWRpdW1wIGludDtcblxuXHRcdGF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuXHRcdGF0dHJpYnV0ZSB2ZWMyIHV2O1xuXHRcdGF0dHJpYnV0ZSBmbG9hdCBmYWNlSW5kZXg7XG5cblx0XHR2YXJ5aW5nIHZlYzMgdk91dHB1dERpcmVjdGlvbjtcblxuXHRcdC8vIFJIIGNvb3JkaW5hdGUgc3lzdGVtOyBQTVJFTSBmYWNlLWluZGV4aW5nIGNvbnZlbnRpb25cblx0XHR2ZWMzIGdldERpcmVjdGlvbiggdmVjMiB1diwgZmxvYXQgZmFjZSApIHtcblxuXHRcdFx0dXYgPSAyLjAgKiB1diAtIDEuMDtcblxuXHRcdFx0dmVjMyBkaXJlY3Rpb24gPSB2ZWMzKCB1diwgMS4wICk7XG5cblx0XHRcdGlmICggZmFjZSA9PSAwLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnp5eDsgLy8gKCAxLCB2LCB1ICkgcG9zIHhcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAxLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnh6eTtcblx0XHRcdFx0ZGlyZWN0aW9uLnh6ICo9IC0xLjA7IC8vICggLXUsIDEsIC12ICkgcG9zIHlcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAyLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uLnggKj0gLTEuMDsgLy8gKCAtdSwgdiwgMSApIHBvcyB6XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMy4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi56eXg7XG5cdFx0XHRcdGRpcmVjdGlvbi54eiAqPSAtMS4wOyAvLyAoIC0xLCB2LCAtdSApIG5lZyB4XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNC4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7XG5cdFx0XHRcdGRpcmVjdGlvbi54eSAqPSAtMS4wOyAvLyAoIC11LCAtMSwgdiApIG5lZyB5XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNS4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbi56ICo9IC0xLjA7IC8vICggdSwgdiwgLTEgKSBuZWcgelxuXG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBkaXJlY3Rpb247XG5cblx0XHR9XG5cblx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdHZPdXRwdXREaXJlY3Rpb24gPSBnZXREaXJlY3Rpb24oIHV2LCBmYWNlSW5kZXggKTtcblx0XHRcdGdsX1Bvc2l0aW9uID0gdmVjNCggcG9zaXRpb24sIDEuMCApO1xuXG5cdFx0fVxuXHQiLGZyYWdtZW50U2hhZGVyOiJcblxuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG5cdFx0XHRwcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5cblx0XHRcdHZhcnlpbmcgdmVjMyB2T3V0cHV0RGlyZWN0aW9uO1xuXG5cdFx0XHR1bmlmb3JtIHNhbXBsZXIyRCBlbnZNYXA7XG5cdFx0XHR1bmlmb3JtIGludCBzYW1wbGVzO1xuXHRcdFx0dW5pZm9ybSBmbG9hdCB3ZWlnaHRzWyBuIF07XG5cdFx0XHR1bmlmb3JtIGJvb2wgbGF0aXR1ZGluYWw7XG5cdFx0XHR1bmlmb3JtIGZsb2F0IGRUaGV0YTtcblx0XHRcdHVuaWZvcm0gZmxvYXQgbWlwSW50O1xuXHRcdFx0dW5pZm9ybSB2ZWMzIHBvbGVBeGlzO1xuXG5cdFx0XHQjZGVmaW5lIEVOVk1BUF9UWVBFX0NVQkVfVVZcblx0XHRcdCNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+XG5cblx0XHRcdHZlYzMgZ2V0U2FtcGxlKCBmbG9hdCB0aGV0YSwgdmVjMyBheGlzICkge1xuXG5cdFx0XHRcdGZsb2F0IGNvc1RoZXRhID0gY29zKCB0aGV0YSApO1xuXHRcdFx0XHQvLyBSb2RyaWd1ZXMnIGF4aXMtYW5nbGUgcm90YXRpb25cblx0XHRcdFx0dmVjMyBzYW1wbGVEaXJlY3Rpb24gPSB2T3V0cHV0RGlyZWN0aW9uICogY29zVGhldGFcblx0XHRcdFx0XHQrIGNyb3NzKCBheGlzLCB2T3V0cHV0RGlyZWN0aW9uICkgKiBzaW4oIHRoZXRhIClcblx0XHRcdFx0XHQrIGF4aXMgKiBkb3QoIGF4aXMsIHZPdXRwdXREaXJlY3Rpb24gKSAqICggMS4wIC0gY29zVGhldGEgKTtcblxuXHRcdFx0XHRyZXR1cm4gYmlsaW5lYXJDdWJlVVYoIGVudk1hcCwgc2FtcGxlRGlyZWN0aW9uLCBtaXBJbnQgKTtcblxuXHRcdFx0fVxuXG5cdFx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdFx0dmVjMyBheGlzID0gbGF0aXR1ZGluYWwgPyBwb2xlQXhpcyA6IGNyb3NzKCBwb2xlQXhpcywgdk91dHB1dERpcmVjdGlvbiApO1xuXG5cdFx0XHRcdGlmICggYWxsKCBlcXVhbCggYXhpcywgdmVjMyggMC4wICkgKSApICkge1xuXG5cdFx0XHRcdFx0YXhpcyA9IHZlYzMoIHZPdXRwdXREaXJlY3Rpb24ueiwgMC4wLCAtIHZPdXRwdXREaXJlY3Rpb24ueCApO1xuXG5cdFx0XHRcdH1cblxuXHRcdFx0XHRheGlzID0gbm9ybWFsaXplKCBheGlzICk7XG5cblx0XHRcdFx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggMC4wLCAwLjAsIDAuMCwgMS4wICk7XG5cdFx0XHRcdGdsX0ZyYWdDb2xvci5yZ2IgKz0gd2VpZ2h0c1sgMCBdICogZ2V0U2FtcGxlKCAwLjAsIGF4aXMgKTtcblxuXHRcdFx0XHRmb3IgKCBpbnQgaSA9IDE7IGkgPCBuOyBpKysgKSB7XG5cblx0XHRcdFx0XHRpZiAoIGkgPj0gc2FtcGxlcyApIHtcblxuXHRcdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRmbG9hdCB0aGV0YSA9IGRUaGV0YSAqIGZsb2F0KCBpICk7XG5cdFx0XHRcdFx0Z2xfRnJhZ0NvbG9yLnJnYiArPSB3ZWlnaHRzWyBpIF0gKiBnZXRTYW1wbGUoIC0xLjAgKiB0aGV0YSwgYXhpcyApO1xuXHRcdFx0XHRcdGdsX0ZyYWdDb2xvci5yZ2IgKz0gd2VpZ2h0c1sgaSBdICogZ2V0U2FtcGxlKCB0aGV0YSwgYXhpcyApO1xuXG5cdFx0XHRcdH1cblxuXHRcdFx0fVxuXHRcdCIsYmxlbmRpbmc6dnAsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITF9KX0oKSx0aGlzLl9lcXVpcmVjdFNoYWRlcj1udWxsLHRoaXMuX2N1YmVtYXBTaGFkZXI9bnVsbCx0aGlzLl9jb21waWxlTWF0ZXJpYWwodGhpcy5fYmx1ck1hdGVyaWFsKX1mcm9tU2NlbmUodCxlPTAsaT0uMSxyPTEwMCl7QjM9dGhpcy5fcmVuZGVyZXIuZ2V0UmVuZGVyVGFyZ2V0KCk7bGV0IG89dGhpcy5fYWxsb2NhdGVUYXJnZXRzKCk7cmV0dXJuIHRoaXMuX3NjZW5lVG9DdWJlVVYodCxpLHIsbyksZT4wJiZ0aGlzLl9ibHVyKG8sMCwwLGUpLHRoaXMuX2FwcGx5UE1SRU0obyksdGhpcy5fY2xlYW51cChvKSxvfWZyb21FcXVpcmVjdGFuZ3VsYXIodCxlPW51bGwpe3JldHVybiB0aGlzLl9mcm9tVGV4dHVyZSh0LGUpfWZyb21DdWJlbWFwKHQsZT1udWxsKXtyZXR1cm4gdGhpcy5fZnJvbVRleHR1cmUodCxlKX1jb21waWxlQ3ViZW1hcFNoYWRlcigpe251bGw9PT10aGlzLl9jdWJlbWFwU2hhZGVyJiYodGhpcy5fY3ViZW1hcFNoYWRlcj12ZWUoKSx0aGlzLl9jb21waWxlTWF0ZXJpYWwodGhpcy5fY3ViZW1hcFNoYWRlcikpfWNvbXBpbGVFcXVpcmVjdGFuZ3VsYXJTaGFkZXIoKXtudWxsPT09dGhpcy5fZXF1aXJlY3RTaGFkZXImJih0aGlzLl9lcXVpcmVjdFNoYWRlcj1iZWUoKSx0aGlzLl9jb21waWxlTWF0ZXJpYWwodGhpcy5fZXF1aXJlY3RTaGFkZXIpKX1kaXNwb3NlKCl7dGhpcy5fYmx1ck1hdGVyaWFsLmRpc3Bvc2UoKSxudWxsIT09dGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQmJnRoaXMuX3BpbmdQb25nUmVuZGVyVGFyZ2V0LmRpc3Bvc2UoKSxudWxsIT09dGhpcy5fY3ViZW1hcFNoYWRlciYmdGhpcy5fY3ViZW1hcFNoYWRlci5kaXNwb3NlKCksbnVsbCE9PXRoaXMuX2VxdWlyZWN0U2hhZGVyJiZ0aGlzLl9lcXVpcmVjdFNoYWRlci5kaXNwb3NlKCk7Zm9yKGxldCB0PTA7dDxseC5sZW5ndGg7dCsrKWx4W3RdLmRpc3Bvc2UoKX1fY2xlYW51cCh0KXt0aGlzLl9yZW5kZXJlci5zZXRSZW5kZXJUYXJnZXQoQjMpLHQuc2Npc3NvclRlc3Q9ITEsc0kodCwwLDAsdC53aWR0aCx0LmhlaWdodCl9X2Zyb21UZXh0dXJlKHQsZSl7QjM9dGhpcy5fcmVuZGVyZXIuZ2V0UmVuZGVyVGFyZ2V0KCk7bGV0IGk9ZXx8dGhpcy5fYWxsb2NhdGVUYXJnZXRzKHQpO3JldHVybiB0aGlzLl90ZXh0dXJlVG9DdWJlVVYodCxpKSx0aGlzLl9hcHBseVBNUkVNKGkpLHRoaXMuX2NsZWFudXAoaSksaX1fYWxsb2NhdGVUYXJnZXRzKHQpe2xldCBlPXttYWdGaWx0ZXI6aWEsbWluRmlsdGVyOmlhLGdlbmVyYXRlTWlwbWFwczohMSx0eXBlOnEwLGZvcm1hdDpDYSxlbmNvZGluZzp3cCxkZXB0aEJ1ZmZlcjohMX0saT1fZWUoZSk7cmV0dXJuIGkuZGVwdGhCdWZmZXI9IXQsbnVsbD09PXRoaXMuX3BpbmdQb25nUmVuZGVyVGFyZ2V0JiYodGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQ9X2VlKGUpKSxpfV9jb21waWxlTWF0ZXJpYWwodCl7bGV0IGU9bmV3IHNvKGx4WzBdLHQpO3RoaXMuX3JlbmRlcmVyLmNvbXBpbGUoZSxMMyl9X3NjZW5lVG9DdWJlVVYodCxlLGkscil7bGV0IHM9bmV3IHJhKDkwLDEsZSxpKSxsPVsxLC0xLDEsMSwxLDFdLGM9WzEsMSwxLC0xLC0xLC0xXSxkPXRoaXMuX3JlbmRlcmVyLHU9ZC5hdXRvQ2xlYXIscD1kLnRvbmVNYXBwaW5nO2QuZ2V0Q2xlYXJDb2xvcihmZWUpLGQudG9uZU1hcHBpbmc9eXAsZC5hdXRvQ2xlYXI9ITE7bGV0IGg9bmV3IHZtKHtuYW1lOiJQTVJFTS5CYWNrZ3JvdW5kIixzaWRlOmJvLGRlcHRoV3JpdGU6ITEsZGVwdGhUZXN0OiExfSksbT1uZXcgc28obmV3IHltLGgpLF89ITEsTT10LmJhY2tncm91bmQ7TT9NLmlzQ29sb3ImJihoLmNvbG9yLmNvcHkoTSksdC5iYWNrZ3JvdW5kPW51bGwsXz0hMCk6KGguY29sb3IuY29weShmZWUpLF89ITApO2ZvcihsZXQgeT0wO3k8Njt5Kyspe2xldCB4PXklMzswPT09eD8ocy51cC5zZXQoMCxsW3ldLDApLHMubG9va0F0KGNbeV0sMCwwKSk6MT09PXg/KHMudXAuc2V0KDAsMCxsW3ldKSxzLmxvb2tBdCgwLGNbeV0sMCkpOihzLnVwLnNldCgwLGxbeV0sMCkscy5sb29rQXQoMCwwLGNbeV0pKSxzSShyLHgqVWMseT4yP1VjOjAsVWMsVWMpLGQuc2V0UmVuZGVyVGFyZ2V0KHIpLF8mJmQucmVuZGVyKG0scyksZC5yZW5kZXIodCxzKX1tLmdlb21ldHJ5LmRpc3Bvc2UoKSxtLm1hdGVyaWFsLmRpc3Bvc2UoKSxkLnRvbmVNYXBwaW5nPXAsZC5hdXRvQ2xlYXI9dSx0LmJhY2tncm91bmQ9TX1fdGV4dHVyZVRvQ3ViZVVWKHQsZSl7bGV0IGk9dGhpcy5fcmVuZGVyZXIscj10Lm1hcHBpbmc9PT1XeHx8dC5tYXBwaW5nPT09cXg7cj8obnVsbD09PXRoaXMuX2N1YmVtYXBTaGFkZXImJih0aGlzLl9jdWJlbWFwU2hhZGVyPXZlZSgpKSx0aGlzLl9jdWJlbWFwU2hhZGVyLnVuaWZvcm1zLmZsaXBFbnZNYXAudmFsdWU9ITE9PT10LmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT8tMToxKTpudWxsPT09dGhpcy5fZXF1aXJlY3RTaGFkZXImJih0aGlzLl9lcXVpcmVjdFNoYWRlcj1iZWUoKSk7bGV0IG89cj90aGlzLl9jdWJlbWFwU2hhZGVyOnRoaXMuX2VxdWlyZWN0U2hhZGVyLGE9bmV3IHNvKGx4WzBdLG8pLHM9by51bmlmb3JtcztzLmVudk1hcC52YWx1ZT10LHJ8fHMudGV4ZWxTaXplLnZhbHVlLnNldCgxL3QuaW1hZ2Uud2lkdGgsMS90LmltYWdlLmhlaWdodCksc0koZSwwLDAsMypVYywyKlVjKSxpLnNldFJlbmRlclRhcmdldChlKSxpLnJlbmRlcihhLEwzKX1fYXBwbHlQTVJFTSh0KXtsZXQgZT10aGlzLl9yZW5kZXJlcixpPWUuYXV0b0NsZWFyO2UuYXV0b0NsZWFyPSExO2ZvcihsZXQgcj0xO3I8Z3RlO3IrKyl7bGV0IG89TWF0aC5zcXJ0KGFJW3JdKmFJW3JdLWFJW3ItMV0qYUlbci0xXSk7dGhpcy5fYmx1cih0LHItMSxyLG8sZ2VlWyhyLTEpJWdlZS5sZW5ndGhdKX1lLmF1dG9DbGVhcj1pfV9ibHVyKHQsZSxpLHIsbyl7bGV0IGE9dGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQ7dGhpcy5faGFsZkJsdXIodCxhLGUsaSxyLCJsYXRpdHVkaW5hbCIsbyksdGhpcy5faGFsZkJsdXIoYSx0LGksaSxyLCJsb25naXR1ZGluYWwiLG8pfV9oYWxmQmx1cih0LGUsaSxyLG8sYSxzKXtsZXQgbD10aGlzLl9yZW5kZXJlcixjPXRoaXMuX2JsdXJNYXRlcmlhbDsibGF0aXR1ZGluYWwiIT09YSYmImxvbmdpdHVkaW5hbCIhPT1hJiZjb25zb2xlLmVycm9yKCJibHVyIGRpcmVjdGlvbiBtdXN0IGJlIGVpdGhlciBsYXRpdHVkaW5hbCBvciBsb25naXR1ZGluYWwhIik7bGV0IHU9bmV3IHNvKGx4W3JdLGMpLHA9Yy51bmlmb3JtcyxoPW1lZVtpXS0xLG09aXNGaW5pdGUobyk/TWF0aC5QSS8oMipoKToyKk1hdGguUEkvMzksXz1vL20sTT1pc0Zpbml0ZShvKT8xK01hdGguZmxvb3IoMypfKToyMDtNPjIwJiZjb25zb2xlLndhcm4oYHNpZ21hUmFkaWFucywgJHtvfSwgaXMgdG9vIGxhcmdlIGFuZCB3aWxsIGNsaXAsIGFzIGl0IHJlcXVlc3RlZCAke019IHNhbXBsZXMgd2hlbiB0aGUgbWF4aW11bSBpcyBzZXQgdG8gMjBgKTtsZXQgeT1bXSx4PTA7Zm9yKGxldCBlZT0wO2VlPDIwOysrZWUpe2xldCBRPWVlL18sd2U9TWF0aC5leHAoLVEqUS8yKTt5LnB1c2god2UpLDA9PT1lZT94Kz13ZTplZTxNJiYoeCs9Mip3ZSl9Zm9yKGxldCBlZT0wO2VlPHkubGVuZ3RoO2VlKyspeVtlZV09eVtlZV0veDtwLmVudk1hcC52YWx1ZT10LnRleHR1cmUscC5zYW1wbGVzLnZhbHVlPU0scC53ZWlnaHRzLnZhbHVlPXkscC5sYXRpdHVkaW5hbC52YWx1ZT0ibGF0aXR1ZGluYWwiPT09YSxzJiYocC5wb2xlQXhpcy52YWx1ZT1zKSxwLmRUaGV0YS52YWx1ZT1tLHAubWlwSW50LnZhbHVlPUNwLWk7bGV0IFI9bWVlW3JdO3NJKGUsMypNYXRoLm1heCgwLFVjLTIqUiksKDA9PT1yPzA6MipVYykrMipSKihyPkNwLVEwP3ItQ3ArUTA6MCksMypSLDIqUiksbC5zZXRSZW5kZXJUYXJnZXQoZSksbC5yZW5kZXIodSxMMyl9fTtmdW5jdGlvbiBZT2UoKXtsZXQgbj1bXSx0PVtdLGU9W10saT1DcDtmb3IobGV0IHI9MDtyPGd0ZTtyKyspe2xldCBvPU1hdGgucG93KDIsaSk7dC5wdXNoKG8pO2xldCBhPTEvbztyPkNwLVEwP2E9ZnRlW3ItQ3ArUTAtMV06MD09PXImJihhPTApLGUucHVzaChhKTtsZXQgcz0xLyhvLTEpLGw9LXMvMixjPTErcy8yLGQ9W2wsbCxjLGwsYyxjLGwsbCxjLGMsbCxjXSx1PTYscD02LGg9MyxtPTIsXz0xLE09bmV3IEZsb2F0MzJBcnJheShoKnAqdSkseT1uZXcgRmxvYXQzMkFycmF5KG0qcCp1KSx4PW5ldyBGbG9hdDMyQXJyYXkoXypwKnUpO2ZvcihsZXQgST0wO0k8dTtJKyspe2xldCBCPUklMyoyLzMtMSxlZT1JPjI/MDotMTtNLnNldChbQixlZSwwLEIrMi8zLGVlLDAsQisyLzMsZWUrMSwwLEIsZWUsMCxCKzIvMyxlZSsxLDAsQixlZSsxLDBdLGgqcCpJKSx5LnNldChkLG0qcCpJKSx4LnNldChbSSxJLEksSSxJLEldLF8qcCpJKX1sZXQgUj1uZXcgR2k7Ui5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgQXIoTSxoKSksUi5zZXRBdHRyaWJ1dGUoInV2IixuZXcgQXIoeSxtKSksUi5zZXRBdHRyaWJ1dGUoImZhY2VJbmRleCIsbmV3IEFyKHgsXykpLG4ucHVzaChSKSxpPlEwJiZpLS19cmV0dXJue19sb2RQbGFuZXM6bixfc2l6ZUxvZHM6dCxfc2lnbWFzOmV9fWZ1bmN0aW9uIF9lZShuKXtsZXQgdD1uZXcgdHMoMypVYywzKlVjLG4pO3JldHVybiB0LnRleHR1cmUubWFwcGluZz1KSSx0LnRleHR1cmUubmFtZT0iUE1SRU0uY3ViZVV2Iix0LnNjaXNzb3JUZXN0PSEwLHR9ZnVuY3Rpb24gc0kobix0LGUsaSxyKXtuLnZpZXdwb3J0LnNldCh0LGUsaSxyKSxuLnNjaXNzb3Iuc2V0KHQsZSxpLHIpfWZ1bmN0aW9uIGJlZSgpe2xldCBuPW5ldyAkZSgxLDEpO3JldHVybiBuZXcgdF8oe25hbWU6IkVxdWlyZWN0YW5ndWxhclRvQ3ViZVVWIix1bmlmb3Jtczp7ZW52TWFwOnt2YWx1ZTpudWxsfSx0ZXhlbFNpemU6e3ZhbHVlOm59fSx2ZXJ0ZXhTaGFkZXI6IlxuXG5cdFx0cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG5cdFx0cHJlY2lzaW9uIG1lZGl1bXAgaW50O1xuXG5cdFx0YXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5cdFx0YXR0cmlidXRlIHZlYzIgdXY7XG5cdFx0YXR0cmlidXRlIGZsb2F0IGZhY2VJbmRleDtcblxuXHRcdHZhcnlpbmcgdmVjMyB2T3V0cHV0RGlyZWN0aW9uO1xuXG5cdFx0Ly8gUkggY29vcmRpbmF0ZSBzeXN0ZW07IFBNUkVNIGZhY2UtaW5kZXhpbmcgY29udmVudGlvblxuXHRcdHZlYzMgZ2V0RGlyZWN0aW9uKCB2ZWMyIHV2LCBmbG9hdCBmYWNlICkge1xuXG5cdFx0XHR1diA9IDIuMCAqIHV2IC0gMS4wO1xuXG5cdFx0XHR2ZWMzIGRpcmVjdGlvbiA9IHZlYzMoIHV2LCAxLjAgKTtcblxuXHRcdFx0aWYgKCBmYWNlID09IDAuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24uenl4OyAvLyAoIDEsIHYsIHUgKSBwb3MgeFxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDEuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24ueHp5O1xuXHRcdFx0XHRkaXJlY3Rpb24ueHogKj0gLTEuMDsgLy8gKCAtdSwgMSwgLXYgKSBwb3MgeVxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDIuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24ueCAqPSAtMS4wOyAvLyAoIC11LCB2LCAxICkgcG9zIHpcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAzLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnp5eDtcblx0XHRcdFx0ZGlyZWN0aW9uLnh6ICo9IC0xLjA7IC8vICggLTEsIHYsIC11ICkgbmVnIHhcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSA0LjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnh6eTtcblx0XHRcdFx0ZGlyZWN0aW9uLnh5ICo9IC0xLjA7IC8vICggLXUsIC0xLCB2ICkgbmVnIHlcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSA1LjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uLnogKj0gLTEuMDsgLy8gKCB1LCB2LCAtMSApIG5lZyB6XG5cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGRpcmVjdGlvbjtcblxuXHRcdH1cblxuXHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0dk91dHB1dERpcmVjdGlvbiA9IGdldERpcmVjdGlvbiggdXYsIGZhY2VJbmRleCApO1xuXHRcdFx0Z2xfUG9zaXRpb24gPSB2ZWM0KCBwb3NpdGlvbiwgMS4wICk7XG5cblx0XHR9XG5cdCIsZnJhZ21lbnRTaGFkZXI6IlxuXG5cdFx0XHRwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcblx0XHRcdHByZWNpc2lvbiBtZWRpdW1wIGludDtcblxuXHRcdFx0dmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247XG5cblx0XHRcdHVuaWZvcm0gc2FtcGxlcjJEIGVudk1hcDtcblx0XHRcdHVuaWZvcm0gdmVjMiB0ZXhlbFNpemU7XG5cblx0XHRcdCNpbmNsdWRlIDxjb21tb24+XG5cblx0XHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0XHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCAwLjAsIDAuMCwgMC4wLCAxLjAgKTtcblxuXHRcdFx0XHR2ZWMzIG91dHB1dERpcmVjdGlvbiA9IG5vcm1hbGl6ZSggdk91dHB1dERpcmVjdGlvbiApO1xuXHRcdFx0XHR2ZWMyIHV2ID0gZXF1aXJlY3RVdiggb3V0cHV0RGlyZWN0aW9uICk7XG5cblx0XHRcdFx0dmVjMiBmID0gZnJhY3QoIHV2IC8gdGV4ZWxTaXplIC0gMC41ICk7XG5cdFx0XHRcdHV2IC09IGYgKiB0ZXhlbFNpemU7XG5cdFx0XHRcdHZlYzMgdGwgPSB0ZXh0dXJlMkQgKCBlbnZNYXAsIHV2ICkucmdiO1xuXHRcdFx0XHR1di54ICs9IHRleGVsU2l6ZS54O1xuXHRcdFx0XHR2ZWMzIHRyID0gdGV4dHVyZTJEICggZW52TWFwLCB1diApLnJnYjtcblx0XHRcdFx0dXYueSArPSB0ZXhlbFNpemUueTtcblx0XHRcdFx0dmVjMyBiciA9IHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKS5yZ2I7XG5cdFx0XHRcdHV2LnggLT0gdGV4ZWxTaXplLng7XG5cdFx0XHRcdHZlYzMgYmwgPSB0ZXh0dXJlMkQgKCBlbnZNYXAsIHV2ICkucmdiO1xuXG5cdFx0XHRcdHZlYzMgdG0gPSBtaXgoIHRsLCB0ciwgZi54ICk7XG5cdFx0XHRcdHZlYzMgYm0gPSBtaXgoIGJsLCBiciwgZi54ICk7XG5cdFx0XHRcdGdsX0ZyYWdDb2xvci5yZ2IgPSBtaXgoIHRtLCBibSwgZi55ICk7XG5cblx0XHRcdH1cblx0XHQiLGJsZW5kaW5nOnZwLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExfSl9ZnVuY3Rpb24gdmVlKCl7cmV0dXJuIG5ldyB0Xyh7bmFtZToiQ3ViZW1hcFRvQ3ViZVVWIix1bmlmb3Jtczp7ZW52TWFwOnt2YWx1ZTpudWxsfSxmbGlwRW52TWFwOnt2YWx1ZTotMX19LHZlcnRleFNoYWRlcjoiXG5cblx0XHRwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcblx0XHRwcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5cblx0XHRhdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcblx0XHRhdHRyaWJ1dGUgdmVjMiB1djtcblx0XHRhdHRyaWJ1dGUgZmxvYXQgZmFjZUluZGV4O1xuXG5cdFx0dmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247XG5cblx0XHQvLyBSSCBjb29yZGluYXRlIHN5c3RlbTsgUE1SRU0gZmFjZS1pbmRleGluZyBjb252ZW50aW9uXG5cdFx0dmVjMyBnZXREaXJlY3Rpb24oIHZlYzIgdXYsIGZsb2F0IGZhY2UgKSB7XG5cblx0XHRcdHV2ID0gMi4wICogdXYgLSAxLjA7XG5cblx0XHRcdHZlYzMgZGlyZWN0aW9uID0gdmVjMyggdXYsIDEuMCApO1xuXG5cdFx0XHRpZiAoIGZhY2UgPT0gMC4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi56eXg7IC8vICggMSwgdiwgdSApIHBvcyB4XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMS4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7XG5cdFx0XHRcdGRpcmVjdGlvbi54eiAqPSAtMS4wOyAvLyAoIC11LCAxLCAtdiApIHBvcyB5XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMi4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbi54ICo9IC0xLjA7IC8vICggLXUsIHYsIDEgKSBwb3MgelxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDMuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24uenl4O1xuXHRcdFx0XHRkaXJlY3Rpb24ueHogKj0gLTEuMDsgLy8gKCAtMSwgdiwgLXUgKSBuZWcgeFxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDQuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24ueHp5O1xuXHRcdFx0XHRkaXJlY3Rpb24ueHkgKj0gLTEuMDsgLy8gKCAtdSwgLTEsIHYgKSBuZWcgeVxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDUuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24ueiAqPSAtMS4wOyAvLyAoIHUsIHYsIC0xICkgbmVnIHpcblxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZGlyZWN0aW9uO1xuXG5cdFx0fVxuXG5cdFx0dm9pZCBtYWluKCkge1xuXG5cdFx0XHR2T3V0cHV0RGlyZWN0aW9uID0gZ2V0RGlyZWN0aW9uKCB1diwgZmFjZUluZGV4ICk7XG5cdFx0XHRnbF9Qb3NpdGlvbiA9IHZlYzQoIHBvc2l0aW9uLCAxLjAgKTtcblxuXHRcdH1cblx0IixmcmFnbWVudFNoYWRlcjoiXG5cblx0XHRcdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgaW50O1xuXG5cdFx0XHR1bmlmb3JtIGZsb2F0IGZsaXBFbnZNYXA7XG5cblx0XHRcdHZhcnlpbmcgdmVjMyB2T3V0cHV0RGlyZWN0aW9uO1xuXG5cdFx0XHR1bmlmb3JtIHNhbXBsZXJDdWJlIGVudk1hcDtcblxuXHRcdFx0dm9pZCBtYWluKCkge1xuXG5cdFx0XHRcdGdsX0ZyYWdDb2xvciA9IHRleHR1cmVDdWJlKCBlbnZNYXAsIHZlYzMoIGZsaXBFbnZNYXAgKiB2T3V0cHV0RGlyZWN0aW9uLngsIHZPdXRwdXREaXJlY3Rpb24ueXogKSApO1xuXG5cdFx0XHR9XG5cdFx0IixibGVuZGluZzp2cCxkZXB0aFRlc3Q6ITEsZGVwdGhXcml0ZTohMX0pfWZ1bmN0aW9uIFpPZShuKXtsZXQgdD1uZXcgV2Vha01hcCxlPW51bGw7ZnVuY3Rpb24gbyhzKXtsZXQgbD1zLnRhcmdldDtsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLG8pO2xldCBjPXQuZ2V0KGwpO3ZvaWQgMCE9PWMmJih0LmRlbGV0ZShsKSxjLmRpc3Bvc2UoKSl9cmV0dXJue2dldDpmdW5jdGlvbihzKXtpZihzJiZzLmlzVGV4dHVyZSl7bGV0IGw9cy5tYXBwaW5nLGM9bD09PVkzfHxsPT09UTMsZD1sPT09V3h8fGw9PT1xeDtpZihjfHxkKXtpZihzLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZSYmITA9PT1zLm5lZWRzUE1SRU1VcGRhdGUpe3MubmVlZHNQTVJFTVVwZGF0ZT0hMTtsZXQgdT10LmdldChzKTtyZXR1cm4gbnVsbD09PWUmJihlPW5ldyBBSShuKSksdT1jP2UuZnJvbUVxdWlyZWN0YW5ndWxhcihzLHUpOmUuZnJvbUN1YmVtYXAocyx1KSx0LnNldChzLHUpLHUudGV4dHVyZX1pZih0LmhhcyhzKSlyZXR1cm4gdC5nZXQocykudGV4dHVyZTt7bGV0IHU9cy5pbWFnZTtpZihjJiZ1JiZ1LmhlaWdodD4wfHxkJiZ1JiZmdW5jdGlvbihzKXtsZXQgbD0wO2ZvcihsZXQgZD0wO2Q8NjtkKyspdm9pZCAwIT09c1tkXSYmbCsrO3JldHVybiA2PT09bH0odSkpe251bGw9PT1lJiYoZT1uZXcgQUkobikpO2xldCBwPWM/ZS5mcm9tRXF1aXJlY3Rhbmd1bGFyKHMpOmUuZnJvbUN1YmVtYXAocyk7cmV0dXJuIHQuc2V0KHMscCkscy5hZGRFdmVudExpc3RlbmVyKCJkaXNwb3NlIixvKSxwLnRleHR1cmV9cmV0dXJuIG51bGx9fX1yZXR1cm4gc30sZGlzcG9zZTpmdW5jdGlvbigpe3Q9bmV3IFdlYWtNYXAsbnVsbCE9PWUmJihlLmRpc3Bvc2UoKSxlPW51bGwpfX19ZnVuY3Rpb24gS09lKG4pe2xldCB0PXt9O2Z1bmN0aW9uIGUoaSl7aWYodm9pZCAwIT09dFtpXSlyZXR1cm4gdFtpXTtsZXQgcjtzd2l0Y2goaSl7Y2FzZSJXRUJHTF9kZXB0aF90ZXh0dXJlIjpyPW4uZ2V0RXh0ZW5zaW9uKCJXRUJHTF9kZXB0aF90ZXh0dXJlIil8fG4uZ2V0RXh0ZW5zaW9uKCJNT1pfV0VCR0xfZGVwdGhfdGV4dHVyZSIpfHxuLmdldEV4dGVuc2lvbigiV0VCS0lUX1dFQkdMX2RlcHRoX3RleHR1cmUiKTticmVhaztjYXNlIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyI6cj1uLmdldEV4dGVuc2lvbigiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIil8fG4uZ2V0RXh0ZW5zaW9uKCJNT1pfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIil8fG4uZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7YnJlYWs7Y2FzZSJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyI6cj1uLmdldEV4dGVuc2lvbigiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKXx8bi5nZXRFeHRlbnNpb24oIk1PWl9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpfHxuLmdldEV4dGVuc2lvbigiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7YnJlYWs7Y2FzZSJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiOnI9bi5nZXRFeHRlbnNpb24oIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpfHxuLmdldEV4dGVuc2lvbigiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpO2JyZWFrO2RlZmF1bHQ6cj1uLmdldEV4dGVuc2lvbihpKX1yZXR1cm4gdFtpXT1yLHJ9cmV0dXJue2hhczpmdW5jdGlvbihpKXtyZXR1cm4gbnVsbCE9PWUoaSl9LGluaXQ6ZnVuY3Rpb24oaSl7aS5pc1dlYkdMMj9lKCJFWFRfY29sb3JfYnVmZmVyX2Zsb2F0Iik6KGUoIldFQkdMX2RlcHRoX3RleHR1cmUiKSxlKCJPRVNfdGV4dHVyZV9mbG9hdCIpLGUoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSxlKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpLGUoIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpLGUoIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKSxlKCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpLGUoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSksZSgiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiksZSgiRVhUX2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0IiksZSgiV0VCR0xfbXVsdGlzYW1wbGVkX3JlbmRlcl90b190ZXh0dXJlIil9LGdldDpmdW5jdGlvbihpKXtsZXQgcj1lKGkpO3JldHVybiBudWxsPT09ciYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAiK2krIiBleHRlbnNpb24gbm90IHN1cHBvcnRlZC4iKSxyfX19ZnVuY3Rpb24gSk9lKG4sdCxlLGkpe2xldCByPXt9LG89bmV3IFdlYWtNYXA7ZnVuY3Rpb24gYSh1KXtsZXQgcD11LnRhcmdldDtudWxsIT09cC5pbmRleCYmdC5yZW1vdmUocC5pbmRleCk7Zm9yKGxldCBtIGluIHAuYXR0cmlidXRlcyl0LnJlbW92ZShwLmF0dHJpYnV0ZXNbbV0pO3AucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsYSksZGVsZXRlIHJbcC5pZF07bGV0IGg9by5nZXQocCk7aCYmKHQucmVtb3ZlKGgpLG8uZGVsZXRlKHApKSxpLnJlbGVhc2VTdGF0ZXNPZkdlb21ldHJ5KHApLCEwPT09cC5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5JiZkZWxldGUgcC5fbWF4SW5zdGFuY2VDb3VudCxlLm1lbW9yeS5nZW9tZXRyaWVzLS19ZnVuY3Rpb24gYyh1KXtsZXQgcD1bXSxoPXUuaW5kZXgsbT11LmF0dHJpYnV0ZXMucG9zaXRpb24sXz0wO2lmKG51bGwhPT1oKXtsZXQgeD1oLmFycmF5O189aC52ZXJzaW9uO2ZvcihsZXQgUj0wLEk9eC5sZW5ndGg7UjxJO1IrPTMpe2xldCBCPXhbUiswXSxlZT14W1IrMV0sUT14W1IrMl07cC5wdXNoKEIsZWUsZWUsUSxRLEIpfX1lbHNle189bS52ZXJzaW9uO2ZvcihsZXQgUj0wLEk9bS5hcnJheS5sZW5ndGgvMy0xO1I8STtSKz0zKXtsZXQgQj1SKzAsZWU9UisxLFE9UisyO3AucHVzaChCLGVlLGVlLFEsUSxCKX19bGV0IE09bmV3KGh0ZShwKT9ESTpUSSkocCwxKTtNLnZlcnNpb249XztsZXQgeT1vLmdldCh1KTt5JiZ0LnJlbW92ZSh5KSxvLnNldCh1LE0pfXJldHVybntnZXQ6ZnVuY3Rpb24odSxwKXtyZXR1cm4hMD09PXJbcC5pZF18fChwLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLGEpLHJbcC5pZF09ITAsZS5tZW1vcnkuZ2VvbWV0cmllcysrKSxwfSx1cGRhdGU6ZnVuY3Rpb24odSl7bGV0IHA9dS5hdHRyaWJ1dGVzO2ZvcihsZXQgbSBpbiBwKXQudXBkYXRlKHBbbV0sMzQ5NjIpO2xldCBoPXUubW9ycGhBdHRyaWJ1dGVzO2ZvcihsZXQgbSBpbiBoKXtsZXQgXz1oW21dO2ZvcihsZXQgTT0wLHk9Xy5sZW5ndGg7TTx5O00rKyl0LnVwZGF0ZShfW01dLDM0OTYyKX19LGdldFdpcmVmcmFtZUF0dHJpYnV0ZTpmdW5jdGlvbih1KXtsZXQgcD1vLmdldCh1KTtpZihwKXtsZXQgaD11LmluZGV4O251bGwhPT1oJiZwLnZlcnNpb248aC52ZXJzaW9uJiZjKHUpfWVsc2UgYyh1KTtyZXR1cm4gby5nZXQodSl9fX1mdW5jdGlvbiAkT2Uobix0LGUsaSl7bGV0IG8scyxsLHI9aS5pc1dlYkdMMjt0aGlzLnNldE1vZGU9ZnVuY3Rpb24ocCl7bz1wfSx0aGlzLnNldEluZGV4PWZ1bmN0aW9uKHApe3M9cC50eXBlLGw9cC5ieXRlc1BlckVsZW1lbnR9LHRoaXMucmVuZGVyPWZ1bmN0aW9uKHAsaCl7bi5kcmF3RWxlbWVudHMobyxoLHMscCpsKSxlLnVwZGF0ZShoLG8sMSl9LHRoaXMucmVuZGVySW5zdGFuY2VzPWZ1bmN0aW9uKHAsaCxtKXtpZigwPT09bSlyZXR1cm47bGV0IF8sTTtpZihyKV89bixNPSJkcmF3RWxlbWVudHNJbnN0YW5jZWQiO2Vsc2UgaWYoXz10LmdldCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpLE09ImRyYXdFbGVtZW50c0luc3RhbmNlZEFOR0xFIixudWxsPT09XylyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTEluZGV4ZWRCdWZmZXJSZW5kZXJlcjogdXNpbmcgVEhSRUUuSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkgYnV0IGhhcmR3YXJlIGRvZXMgbm90IHN1cHBvcnQgZXh0ZW5zaW9uIEFOR0xFX2luc3RhbmNlZF9hcnJheXMuIik7X1tNXShvLGgscyxwKmwsbSksZS51cGRhdGUoaCxvLG0pfX1mdW5jdGlvbiBlRmUobil7bGV0IGU9e2ZyYW1lOjAsY2FsbHM6MCx0cmlhbmdsZXM6MCxwb2ludHM6MCxsaW5lczowfTtyZXR1cm57bWVtb3J5OntnZW9tZXRyaWVzOjAsdGV4dHVyZXM6MH0scmVuZGVyOmUscHJvZ3JhbXM6bnVsbCxhdXRvUmVzZXQ6ITAscmVzZXQ6ZnVuY3Rpb24oKXtlLmZyYW1lKyssZS5jYWxscz0wLGUudHJpYW5nbGVzPTAsZS5wb2ludHM9MCxlLmxpbmVzPTB9LHVwZGF0ZTpmdW5jdGlvbihvLGEscyl7c3dpdGNoKGUuY2FsbHMrKyxhKXtjYXNlIDQ6ZS50cmlhbmdsZXMrPXMqKG8vMyk7YnJlYWs7Y2FzZSAxOmUubGluZXMrPXMqKG8vMik7YnJlYWs7Y2FzZSAzOmUubGluZXMrPXMqKG8tMSk7YnJlYWs7Y2FzZSAyOmUubGluZXMrPXMqbzticmVhaztjYXNlIDA6ZS5wb2ludHMrPXMqbzticmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMSW5mbzogVW5rbm93biBkcmF3IG1vZGU6IixhKX19fX12YXIgRHg9Y2xhc3MgZXh0ZW5kcyBsb3tjb25zdHJ1Y3Rvcih0PW51bGwsZT0xLGk9MSxyPTEpe3N1cGVyKG51bGwpLHRoaXMuaW1hZ2U9e2RhdGE6dCx3aWR0aDplLGhlaWdodDppLGRlcHRoOnJ9LHRoaXMubWFnRmlsdGVyPXZvLHRoaXMubWluRmlsdGVyPXZvLHRoaXMud3JhcFI9RXMsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITEsdGhpcy5mbGlwWT0hMSx0aGlzLnVucGFja0FsaWdubWVudD0xfX07ZnVuY3Rpb24gdEZlKG4sdCl7cmV0dXJuIG5bMF0tdFswXX1mdW5jdGlvbiBuRmUobix0KXtyZXR1cm4gTWF0aC5hYnModFsxXSktTWF0aC5hYnMoblsxXSl9ZnVuY3Rpb24geWVlKG4sdCl7bGV0IGU9MSxpPXQuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZT90LmRhdGEuYXJyYXk6dC5hcnJheTtpIGluc3RhbmNlb2YgSW50OEFycmF5P2U9MTI3OmkgaW5zdGFuY2VvZiBJbnQxNkFycmF5P2U9MzI3Njc6aSBpbnN0YW5jZW9mIEludDMyQXJyYXk/ZT0yMTQ3NDgzNjQ3OmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMTW9ycGh0YXJnZXRzOiBVbnN1cHBvcnRlZCBtb3JwaCBhdHRyaWJ1dGUgZGF0YSB0eXBlOiAiLGkpLG4uZGl2aWRlU2NhbGFyKGUpfWZ1bmN0aW9uIGlGZShuLHQsZSl7bGV0IGk9e30scj1uZXcgRmxvYXQzMkFycmF5KDgpLG89bmV3IFdlYWtNYXAsYT1uZXcgSyxzPVtdO2ZvcihsZXQgYz0wO2M8ODtjKyspc1tjXT1bYywwXTtyZXR1cm57dXBkYXRlOmZ1bmN0aW9uKGMsZCx1LHApe2xldCBoPWMubW9ycGhUYXJnZXRJbmZsdWVuY2VzO2lmKCEwPT09dC5pc1dlYkdMMil7bGV0IG09ZC5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24ubGVuZ3RoLF89by5nZXQoZCk7aWYodm9pZCAwPT09X3x8Xy5jb3VudCE9PW0pe2xldCByZT1mdW5jdGlvbigpe0FlLmRpc3Bvc2UoKSxvLmRlbGV0ZShkKSxkLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHJlKX07dm9pZCAwIT09XyYmXy50ZXh0dXJlLmRpc3Bvc2UoKTtsZXQgeD12b2lkIDAhPT1kLm1vcnBoQXR0cmlidXRlcy5ub3JtYWwsUj1kLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbixJPWQubW9ycGhBdHRyaWJ1dGVzLm5vcm1hbHx8W10sZWU9ITA9PT14PzI6MSxRPWQuYXR0cmlidXRlcy5wb3NpdGlvbi5jb3VudCplZSx3ZT0xO1E+dC5tYXhUZXh0dXJlU2l6ZSYmKHdlPU1hdGguY2VpbChRL3QubWF4VGV4dHVyZVNpemUpLFE9dC5tYXhUZXh0dXJlU2l6ZSk7bGV0IFFlPW5ldyBGbG9hdDMyQXJyYXkoUSp3ZSo0Km0pLEFlPW5ldyBEeChRZSxRLHdlLG0pO0FlLmZvcm1hdD1DYSxBZS50eXBlPWdtLEFlLm5lZWRzVXBkYXRlPSEwO2xldCBEPTQqZWU7Zm9yKGxldCBjZT0wO2NlPG07Y2UrKyl7bGV0IGhlPVJbY2VdLF9lPUlbY2VdLCQ9USp3ZSo0KmNlO2ZvcihsZXQgZGU9MDtkZTxoZS5jb3VudDtkZSsrKXthLmZyb21CdWZmZXJBdHRyaWJ1dGUoaGUsZGUpLCEwPT09aGUubm9ybWFsaXplZCYmeWVlKGEsaGUpO2xldCBwZT1kZSpEO1FlWyQrcGUrMF09YS54LFFlWyQrcGUrMV09YS55LFFlWyQrcGUrMl09YS56LFFlWyQrcGUrM109MCwhMD09PXgmJihhLmZyb21CdWZmZXJBdHRyaWJ1dGUoX2UsZGUpLCEwPT09X2Uubm9ybWFsaXplZCYmeWVlKGEsX2UpLFFlWyQrcGUrNF09YS54LFFlWyQrcGUrNV09YS55LFFlWyQrcGUrNl09YS56LFFlWyQrcGUrN109MCl9fV89e2NvdW50Om0sdGV4dHVyZTpBZSxzaXplOm5ldyAkZShRLHdlKX0sby5zZXQoZCxfKSxkLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHJlKX1sZXQgTT0wO2ZvcihsZXQgeD0wO3g8aC5sZW5ndGg7eCsrKU0rPWhbeF07bGV0IHk9ZC5tb3JwaFRhcmdldHNSZWxhdGl2ZT8xOjEtTTtwLmdldFVuaWZvcm1zKCkuc2V0VmFsdWUobiwibW9ycGhUYXJnZXRCYXNlSW5mbHVlbmNlIix5KSxwLmdldFVuaWZvcm1zKCkuc2V0VmFsdWUobiwibW9ycGhUYXJnZXRJbmZsdWVuY2VzIixoKSxwLmdldFVuaWZvcm1zKCkuc2V0VmFsdWUobiwibW9ycGhUYXJnZXRzVGV4dHVyZSIsXy50ZXh0dXJlLGUpLHAuZ2V0VW5pZm9ybXMoKS5zZXRWYWx1ZShuLCJtb3JwaFRhcmdldHNUZXh0dXJlU2l6ZSIsXy5zaXplKX1lbHNle2xldCBtPXZvaWQgMD09PWg/MDpoLmxlbmd0aCxfPWlbZC5pZF07aWYodm9pZCAwPT09X3x8Xy5sZW5ndGghPT1tKXtfPVtdO2ZvcihsZXQgST0wO0k8bTtJKyspX1tJXT1bSSwwXTtpW2QuaWRdPV99Zm9yKGxldCBJPTA7STxtO0krKyl7bGV0IEI9X1tJXTtCWzBdPUksQlsxXT1oW0ldfV8uc29ydChuRmUpO2ZvcihsZXQgST0wO0k8ODtJKyspSTxtJiZfW0ldWzFdPyhzW0ldWzBdPV9bSV1bMF0sc1tJXVsxXT1fW0ldWzFdKTooc1tJXVswXT1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUixzW0ldWzFdPTApO3Muc29ydCh0RmUpO2xldCBNPWQubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uLHk9ZC5tb3JwaEF0dHJpYnV0ZXMubm9ybWFsLHg9MDtmb3IobGV0IEk9MDtJPDg7SSsrKXtsZXQgQj1zW0ldLGVlPUJbMF0sUT1CWzFdO2VlIT09TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVImJlE/KE0mJmQuZ2V0QXR0cmlidXRlKCJtb3JwaFRhcmdldCIrSSkhPT1NW2VlXSYmZC5zZXRBdHRyaWJ1dGUoIm1vcnBoVGFyZ2V0IitJLE1bZWVdKSx5JiZkLmdldEF0dHJpYnV0ZSgibW9ycGhOb3JtYWwiK0kpIT09eVtlZV0mJmQuc2V0QXR0cmlidXRlKCJtb3JwaE5vcm1hbCIrSSx5W2VlXSkscltJXT1RLHgrPVEpOihNJiYhMD09PWQuaGFzQXR0cmlidXRlKCJtb3JwaFRhcmdldCIrSSkmJmQuZGVsZXRlQXR0cmlidXRlKCJtb3JwaFRhcmdldCIrSSkseSYmITA9PT1kLmhhc0F0dHJpYnV0ZSgibW9ycGhOb3JtYWwiK0kpJiZkLmRlbGV0ZUF0dHJpYnV0ZSgibW9ycGhOb3JtYWwiK0kpLHJbSV09MCl9bGV0IFI9ZC5tb3JwaFRhcmdldHNSZWxhdGl2ZT8xOjEteDtwLmdldFVuaWZvcm1zKCkuc2V0VmFsdWUobiwibW9ycGhUYXJnZXRCYXNlSW5mbHVlbmNlIixSKSxwLmdldFVuaWZvcm1zKCkuc2V0VmFsdWUobiwibW9ycGhUYXJnZXRJbmZsdWVuY2VzIixyKX19fX1mdW5jdGlvbiByRmUobix0LGUsaSl7bGV0IHI9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gcyhsKXtsZXQgYz1sLnRhcmdldDtjLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHMpLGUucmVtb3ZlKGMuaW5zdGFuY2VNYXRyaXgpLG51bGwhPT1jLmluc3RhbmNlQ29sb3ImJmUucmVtb3ZlKGMuaW5zdGFuY2VDb2xvcil9cmV0dXJue3VwZGF0ZTpmdW5jdGlvbihsKXtsZXQgYz1pLnJlbmRlci5mcmFtZSx1PXQuZ2V0KGwsbC5nZW9tZXRyeSk7cmV0dXJuIHIuZ2V0KHUpIT09YyYmKHQudXBkYXRlKHUpLHIuc2V0KHUsYykpLGwuaXNJbnN0YW5jZWRNZXNoJiYoITE9PT1sLmhhc0V2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHMpJiZsLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHMpLGUudXBkYXRlKGwuaW5zdGFuY2VNYXRyaXgsMzQ5NjIpLG51bGwhPT1sLmluc3RhbmNlQ29sb3ImJmUudXBkYXRlKGwuaW5zdGFuY2VDb2xvciwzNDk2MikpLHV9LGRpc3Bvc2U6ZnVuY3Rpb24oKXtyPW5ldyBXZWFrTWFwfX19RHgucHJvdG90eXBlLmlzRGF0YVRleHR1cmUyREFycmF5PSEwO3ZhciBSST1jbGFzcyBleHRlbmRzIGxve2NvbnN0cnVjdG9yKHQ9bnVsbCxlPTEsaT0xLHI9MSl7c3VwZXIobnVsbCksdGhpcy5pbWFnZT17ZGF0YTp0LHdpZHRoOmUsaGVpZ2h0OmksZGVwdGg6cn0sdGhpcy5tYWdGaWx0ZXI9dm8sdGhpcy5taW5GaWx0ZXI9dm8sdGhpcy53cmFwUj1Fcyx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMSx0aGlzLmZsaXBZPSExLHRoaXMudW5wYWNrQWxpZ25tZW50PTF9fTtSSS5wcm90b3R5cGUuaXNEYXRhVGV4dHVyZTNEPSEwO3ZhciBfdGU9bmV3IGxvLGJ0ZT1uZXcgRHgsdnRlPW5ldyBSSSx5dGU9bmV3ICQwLHhlZT1bXSxDZWU9W10sTWVlPW5ldyBGbG9hdDMyQXJyYXkoMTYpLHdlZT1uZXcgRmxvYXQzMkFycmF5KDkpLFNlZT1uZXcgRmxvYXQzMkFycmF5KDQpO2Z1bmN0aW9uIGRfKG4sdCxlKXtsZXQgaT1uWzBdO2lmKGk8PTB8fGk+MClyZXR1cm4gbjtsZXQgcj10KmUsbz14ZWVbcl07aWYodm9pZCAwPT09byYmKG89bmV3IEZsb2F0MzJBcnJheShyKSx4ZWVbcl09byksMCE9PXQpe2kudG9BcnJheShvLDApO2ZvcihsZXQgYT0xLHM9MDthIT09dDsrK2Epcys9ZSxuW2FdLnRvQXJyYXkobyxzKX1yZXR1cm4gb31mdW5jdGlvbiBNYShuLHQpe2lmKG4ubGVuZ3RoIT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBlPTAsaT1uLmxlbmd0aDtlPGk7ZSsrKWlmKG5bZV0hPT10W2VdKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGFhKG4sdCl7Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSsrKW5bZV09dFtlXX1mdW5jdGlvbiBlQShuLHQpe2xldCBlPUNlZVt0XTt2b2lkIDA9PT1lJiYoZT1uZXcgSW50MzJBcnJheSh0KSxDZWVbdF09ZSk7Zm9yKGxldCBpPTA7aSE9PXQ7KytpKWVbaV09bi5hbGxvY2F0ZVRleHR1cmVVbml0KCk7cmV0dXJuIGV9ZnVuY3Rpb24gb0ZlKG4sdCl7bGV0IGU9dGhpcy5jYWNoZTtlWzBdIT09dCYmKG4udW5pZm9ybTFmKHRoaXMuYWRkcix0KSxlWzBdPXQpfWZ1bmN0aW9uIGFGZShuLHQpe2xldCBlPXRoaXMuY2FjaGU7aWYodm9pZCAwIT09dC54KShlWzBdIT09dC54fHxlWzFdIT09dC55KSYmKG4udW5pZm9ybTJmKHRoaXMuYWRkcix0LngsdC55KSxlWzBdPXQueCxlWzFdPXQueSk7ZWxzZXtpZihNYShlLHQpKXJldHVybjtuLnVuaWZvcm0yZnYodGhpcy5hZGRyLHQpLGFhKGUsdCl9fWZ1bmN0aW9uIHNGZShuLHQpe2xldCBlPXRoaXMuY2FjaGU7aWYodm9pZCAwIT09dC54KShlWzBdIT09dC54fHxlWzFdIT09dC55fHxlWzJdIT09dC56KSYmKG4udW5pZm9ybTNmKHRoaXMuYWRkcix0LngsdC55LHQueiksZVswXT10LngsZVsxXT10LnksZVsyXT10LnopO2Vsc2UgaWYodm9pZCAwIT09dC5yKShlWzBdIT09dC5yfHxlWzFdIT09dC5nfHxlWzJdIT09dC5iKSYmKG4udW5pZm9ybTNmKHRoaXMuYWRkcix0LnIsdC5nLHQuYiksZVswXT10LnIsZVsxXT10LmcsZVsyXT10LmIpO2Vsc2V7aWYoTWEoZSx0KSlyZXR1cm47bi51bmlmb3JtM2Z2KHRoaXMuYWRkcix0KSxhYShlLHQpfX1mdW5jdGlvbiBsRmUobix0KXtsZXQgZT10aGlzLmNhY2hlO2lmKHZvaWQgMCE9PXQueCkoZVswXSE9PXQueHx8ZVsxXSE9PXQueXx8ZVsyXSE9PXQuenx8ZVszXSE9PXQudykmJihuLnVuaWZvcm00Zih0aGlzLmFkZHIsdC54LHQueSx0LnosdC53KSxlWzBdPXQueCxlWzFdPXQueSxlWzJdPXQueixlWzNdPXQudyk7ZWxzZXtpZihNYShlLHQpKXJldHVybjtuLnVuaWZvcm00ZnYodGhpcy5hZGRyLHQpLGFhKGUsdCl9fWZ1bmN0aW9uIGNGZShuLHQpe2xldCBlPXRoaXMuY2FjaGUsaT10LmVsZW1lbnRzO2lmKHZvaWQgMD09PWkpe2lmKE1hKGUsdCkpcmV0dXJuO24udW5pZm9ybU1hdHJpeDJmdih0aGlzLmFkZHIsITEsdCksYWEoZSx0KX1lbHNle2lmKE1hKGUsaSkpcmV0dXJuO1NlZS5zZXQoaSksbi51bmlmb3JtTWF0cml4MmZ2KHRoaXMuYWRkciwhMSxTZWUpLGFhKGUsaSl9fWZ1bmN0aW9uIGRGZShuLHQpe2xldCBlPXRoaXMuY2FjaGUsaT10LmVsZW1lbnRzO2lmKHZvaWQgMD09PWkpe2lmKE1hKGUsdCkpcmV0dXJuO24udW5pZm9ybU1hdHJpeDNmdih0aGlzLmFkZHIsITEsdCksYWEoZSx0KX1lbHNle2lmKE1hKGUsaSkpcmV0dXJuO3dlZS5zZXQoaSksbi51bmlmb3JtTWF0cml4M2Z2KHRoaXMuYWRkciwhMSx3ZWUpLGFhKGUsaSl9fWZ1bmN0aW9uIHVGZShuLHQpe2xldCBlPXRoaXMuY2FjaGUsaT10LmVsZW1lbnRzO2lmKHZvaWQgMD09PWkpe2lmKE1hKGUsdCkpcmV0dXJuO24udW5pZm9ybU1hdHJpeDRmdih0aGlzLmFkZHIsITEsdCksYWEoZSx0KX1lbHNle2lmKE1hKGUsaSkpcmV0dXJuO01lZS5zZXQoaSksbi51bmlmb3JtTWF0cml4NGZ2KHRoaXMuYWRkciwhMSxNZWUpLGFhKGUsaSl9fWZ1bmN0aW9uIHBGZShuLHQpe2xldCBlPXRoaXMuY2FjaGU7ZVswXSE9PXQmJihuLnVuaWZvcm0xaSh0aGlzLmFkZHIsdCksZVswXT10KX1mdW5jdGlvbiBoRmUobix0KXtsZXQgZT10aGlzLmNhY2hlO01hKGUsdCl8fChuLnVuaWZvcm0yaXYodGhpcy5hZGRyLHQpLGFhKGUsdCkpfWZ1bmN0aW9uIG1GZShuLHQpe2xldCBlPXRoaXMuY2FjaGU7TWEoZSx0KXx8KG4udW5pZm9ybTNpdih0aGlzLmFkZHIsdCksYWEoZSx0KSl9ZnVuY3Rpb24gZkZlKG4sdCl7bGV0IGU9dGhpcy5jYWNoZTtNYShlLHQpfHwobi51bmlmb3JtNGl2KHRoaXMuYWRkcix0KSxhYShlLHQpKX1mdW5jdGlvbiBnRmUobix0KXtsZXQgZT10aGlzLmNhY2hlO2VbMF0hPT10JiYobi51bmlmb3JtMXVpKHRoaXMuYWRkcix0KSxlWzBdPXQpfWZ1bmN0aW9uIF9GZShuLHQpe2xldCBlPXRoaXMuY2FjaGU7TWEoZSx0KXx8KG4udW5pZm9ybTJ1aXYodGhpcy5hZGRyLHQpLGFhKGUsdCkpfWZ1bmN0aW9uIGJGZShuLHQpe2xldCBlPXRoaXMuY2FjaGU7TWEoZSx0KXx8KG4udW5pZm9ybTN1aXYodGhpcy5hZGRyLHQpLGFhKGUsdCkpfWZ1bmN0aW9uIHZGZShuLHQpe2xldCBlPXRoaXMuY2FjaGU7TWEoZSx0KXx8KG4udW5pZm9ybTR1aXYodGhpcy5hZGRyLHQpLGFhKGUsdCkpfWZ1bmN0aW9uIHlGZShuLHQsZSl7bGV0IGk9dGhpcy5jYWNoZSxyPWUuYWxsb2NhdGVUZXh0dXJlVW5pdCgpO2lbMF0hPT1yJiYobi51bmlmb3JtMWkodGhpcy5hZGRyLHIpLGlbMF09ciksZS5zYWZlU2V0VGV4dHVyZTJEKHR8fF90ZSxyKX1mdW5jdGlvbiB4RmUobix0LGUpe2xldCBpPXRoaXMuY2FjaGUscj1lLmFsbG9jYXRlVGV4dHVyZVVuaXQoKTtpWzBdIT09ciYmKG4udW5pZm9ybTFpKHRoaXMuYWRkcixyKSxpWzBdPXIpLGUuc2V0VGV4dHVyZTNEKHR8fHZ0ZSxyKX1mdW5jdGlvbiBDRmUobix0LGUpe2xldCBpPXRoaXMuY2FjaGUscj1lLmFsbG9jYXRlVGV4dHVyZVVuaXQoKTtpWzBdIT09ciYmKG4udW5pZm9ybTFpKHRoaXMuYWRkcixyKSxpWzBdPXIpLGUuc2FmZVNldFRleHR1cmVDdWJlKHR8fHl0ZSxyKX1mdW5jdGlvbiBNRmUobix0LGUpe2xldCBpPXRoaXMuY2FjaGUscj1lLmFsbG9jYXRlVGV4dHVyZVVuaXQoKTtpWzBdIT09ciYmKG4udW5pZm9ybTFpKHRoaXMuYWRkcixyKSxpWzBdPXIpLGUuc2V0VGV4dHVyZTJEQXJyYXkodHx8YnRlLHIpfWZ1bmN0aW9uIFNGZShuLHQpe24udW5pZm9ybTFmdih0aGlzLmFkZHIsdCl9ZnVuY3Rpb24gRUZlKG4sdCl7bGV0IGU9ZF8odCx0aGlzLnNpemUsMik7bi51bmlmb3JtMmZ2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBURmUobix0KXtsZXQgZT1kXyh0LHRoaXMuc2l6ZSwzKTtuLnVuaWZvcm0zZnYodGhpcy5hZGRyLGUpfWZ1bmN0aW9uIERGZShuLHQpe2xldCBlPWRfKHQsdGhpcy5zaXplLDQpO24udW5pZm9ybTRmdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gSUZlKG4sdCl7bGV0IGU9ZF8odCx0aGlzLnNpemUsNCk7bi51bmlmb3JtTWF0cml4MmZ2KHRoaXMuYWRkciwhMSxlKX1mdW5jdGlvbiBBRmUobix0KXtsZXQgZT1kXyh0LHRoaXMuc2l6ZSw5KTtuLnVuaWZvcm1NYXRyaXgzZnYodGhpcy5hZGRyLCExLGUpfWZ1bmN0aW9uIFJGZShuLHQpe2xldCBlPWRfKHQsdGhpcy5zaXplLDE2KTtuLnVuaWZvcm1NYXRyaXg0ZnYodGhpcy5hZGRyLCExLGUpfWZ1bmN0aW9uIFBGZShuLHQpe24udW5pZm9ybTFpdih0aGlzLmFkZHIsdCl9ZnVuY3Rpb24ga0ZlKG4sdCl7bi51bmlmb3JtMml2KHRoaXMuYWRkcix0KX1mdW5jdGlvbiBPRmUobix0KXtuLnVuaWZvcm0zaXYodGhpcy5hZGRyLHQpfWZ1bmN0aW9uIEZGZShuLHQpe24udW5pZm9ybTRpdih0aGlzLmFkZHIsdCl9ZnVuY3Rpb24gTkZlKG4sdCl7bi51bmlmb3JtMXVpdih0aGlzLmFkZHIsdCl9ZnVuY3Rpb24gTEZlKG4sdCl7bi51bmlmb3JtMnVpdih0aGlzLmFkZHIsdCl9ZnVuY3Rpb24gQkZlKG4sdCl7bi51bmlmb3JtM3Vpdih0aGlzLmFkZHIsdCl9ZnVuY3Rpb24gVkZlKG4sdCl7bi51bmlmb3JtNHVpdih0aGlzLmFkZHIsdCl9ZnVuY3Rpb24gSEZlKG4sdCxlKXtsZXQgaT10Lmxlbmd0aCxyPWVBKGUsaSk7bi51bmlmb3JtMWl2KHRoaXMuYWRkcixyKTtmb3IobGV0IG89MDtvIT09aTsrK28pZS5zYWZlU2V0VGV4dHVyZTJEKHRbb118fF90ZSxyW29dKX1mdW5jdGlvbiB6RmUobix0LGUpe2xldCBpPXQubGVuZ3RoLHI9ZUEoZSxpKTtuLnVuaWZvcm0xaXYodGhpcy5hZGRyLHIpO2ZvcihsZXQgbz0wO28hPT1pOysrbyllLnNldFRleHR1cmUzRCh0W29dfHx2dGUscltvXSl9ZnVuY3Rpb24gVUZlKG4sdCxlKXtsZXQgaT10Lmxlbmd0aCxyPWVBKGUsaSk7bi51bmlmb3JtMWl2KHRoaXMuYWRkcixyKTtmb3IobGV0IG89MDtvIT09aTsrK28pZS5zYWZlU2V0VGV4dHVyZUN1YmUodFtvXXx8eXRlLHJbb10pfWZ1bmN0aW9uIGpGZShuLHQsZSl7bGV0IGk9dC5sZW5ndGgscj1lQShlLGkpO24udW5pZm9ybTFpdih0aGlzLmFkZHIscik7Zm9yKGxldCBvPTA7byE9PWk7KytvKWUuc2V0VGV4dHVyZTJEQXJyYXkodFtvXXx8YnRlLHJbb10pfWZ1bmN0aW9uIFdGZShuLHQsZSl7dGhpcy5pZD1uLHRoaXMuYWRkcj1lLHRoaXMuY2FjaGU9W10sdGhpcy5zZXRWYWx1ZT1mdW5jdGlvbihuKXtzd2l0Y2gobil7Y2FzZSA1MTI2OnJldHVybiBvRmU7Y2FzZSAzNTY2NDpyZXR1cm4gYUZlO2Nhc2UgMzU2NjU6cmV0dXJuIHNGZTtjYXNlIDM1NjY2OnJldHVybiBsRmU7Y2FzZSAzNTY3NDpyZXR1cm4gY0ZlO2Nhc2UgMzU2NzU6cmV0dXJuIGRGZTtjYXNlIDM1Njc2OnJldHVybiB1RmU7Y2FzZSA1MTI0OmNhc2UgMzU2NzA6cmV0dXJuIHBGZTtjYXNlIDM1NjY3OmNhc2UgMzU2NzE6cmV0dXJuIGhGZTtjYXNlIDM1NjY4OmNhc2UgMzU2NzI6cmV0dXJuIG1GZTtjYXNlIDM1NjY5OmNhc2UgMzU2NzM6cmV0dXJuIGZGZTtjYXNlIDUxMjU6cmV0dXJuIGdGZTtjYXNlIDM2Mjk0OnJldHVybiBfRmU7Y2FzZSAzNjI5NTpyZXR1cm4gYkZlO2Nhc2UgMzYyOTY6cmV0dXJuIHZGZTtjYXNlIDM1Njc4OmNhc2UgMzYxOTg6Y2FzZSAzNjI5ODpjYXNlIDM2MzA2OmNhc2UgMzU2ODI6cmV0dXJuIHlGZTtjYXNlIDM1Njc5OmNhc2UgMzYyOTk6Y2FzZSAzNjMwNzpyZXR1cm4geEZlO2Nhc2UgMzU2ODA6Y2FzZSAzNjMwMDpjYXNlIDM2MzA4OmNhc2UgMzYyOTM6cmV0dXJuIENGZTtjYXNlIDM2Mjg5OmNhc2UgMzYzMDM6Y2FzZSAzNjMxMTpjYXNlIDM2MjkyOnJldHVybiBNRmV9fSh0LnR5cGUpfWZ1bmN0aW9uIHh0ZShuLHQsZSl7dGhpcy5pZD1uLHRoaXMuYWRkcj1lLHRoaXMuY2FjaGU9W10sdGhpcy5zaXplPXQuc2l6ZSx0aGlzLnNldFZhbHVlPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlIDUxMjY6cmV0dXJuIFNGZTtjYXNlIDM1NjY0OnJldHVybiBFRmU7Y2FzZSAzNTY2NTpyZXR1cm4gVEZlO2Nhc2UgMzU2NjY6cmV0dXJuIERGZTtjYXNlIDM1Njc0OnJldHVybiBJRmU7Y2FzZSAzNTY3NTpyZXR1cm4gQUZlO2Nhc2UgMzU2NzY6cmV0dXJuIFJGZTtjYXNlIDUxMjQ6Y2FzZSAzNTY3MDpyZXR1cm4gUEZlO2Nhc2UgMzU2Njc6Y2FzZSAzNTY3MTpyZXR1cm4ga0ZlO2Nhc2UgMzU2Njg6Y2FzZSAzNTY3MjpyZXR1cm4gT0ZlO2Nhc2UgMzU2Njk6Y2FzZSAzNTY3MzpyZXR1cm4gRkZlO2Nhc2UgNTEyNTpyZXR1cm4gTkZlO2Nhc2UgMzYyOTQ6cmV0dXJuIExGZTtjYXNlIDM2Mjk1OnJldHVybiBCRmU7Y2FzZSAzNjI5NjpyZXR1cm4gVkZlO2Nhc2UgMzU2Nzg6Y2FzZSAzNjE5ODpjYXNlIDM2Mjk4OmNhc2UgMzYzMDY6Y2FzZSAzNTY4MjpyZXR1cm4gSEZlO2Nhc2UgMzU2Nzk6Y2FzZSAzNjI5OTpjYXNlIDM2MzA3OnJldHVybiB6RmU7Y2FzZSAzNTY4MDpjYXNlIDM2MzAwOmNhc2UgMzYzMDg6Y2FzZSAzNjI5MzpyZXR1cm4gVUZlO2Nhc2UgMzYyODk6Y2FzZSAzNjMwMzpjYXNlIDM2MzExOmNhc2UgMzYyOTI6cmV0dXJuIGpGZX19KHQudHlwZSl9ZnVuY3Rpb24gQ3RlKG4pe3RoaXMuaWQ9bix0aGlzLnNlcT1bXSx0aGlzLm1hcD17fX14dGUucHJvdG90eXBlLnVwZGF0ZUNhY2hlPWZ1bmN0aW9uKG4pe2xldCB0PXRoaXMuY2FjaGU7biBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSYmdC5sZW5ndGghPT1uLmxlbmd0aCYmKHRoaXMuY2FjaGU9bmV3IEZsb2F0MzJBcnJheShuLmxlbmd0aCkpLGFhKHQsbil9LEN0ZS5wcm90b3R5cGUuc2V0VmFsdWU9ZnVuY3Rpb24obix0LGUpe2xldCBpPXRoaXMuc2VxO2ZvcihsZXQgcj0wLG89aS5sZW5ndGg7ciE9PW87KytyKXtsZXQgYT1pW3JdO2Euc2V0VmFsdWUobix0W2EuaWRdLGUpfX07dmFyIFYzPS8oXHcrKShcXSk/KFxbfFwuKT8vZztmdW5jdGlvbiBFZWUobix0KXtuLnNlcS5wdXNoKHQpLG4ubWFwW3QuaWRdPXR9ZnVuY3Rpb24gcUZlKG4sdCxlKXtsZXQgaT1uLm5hbWUscj1pLmxlbmd0aDtmb3IoVjMubGFzdEluZGV4PTA7Oyl7bGV0IG89VjMuZXhlYyhpKSxzPW9bMV0sYz1vWzNdO2lmKCJdIj09PW9bMl0mJihzfD0wKSx2b2lkIDA9PT1jfHwiWyI9PT1jJiZWMy5sYXN0SW5kZXgrMj09PXIpe0VlZShlLHZvaWQgMD09PWM/bmV3IFdGZShzLG4sdCk6bmV3IHh0ZShzLG4sdCkpO2JyZWFrfXtsZXQgdT1lLm1hcFtzXTt2b2lkIDA9PT11JiYodT1uZXcgQ3RlKHMpLEVlZShlLHUpKSxlPXV9fX1mdW5jdGlvbiBNcChuLHQpe3RoaXMuc2VxPVtdLHRoaXMubWFwPXt9O2xldCBlPW4uZ2V0UHJvZ3JhbVBhcmFtZXRlcih0LDM1NzE4KTtmb3IobGV0IGk9MDtpPGU7KytpKXtsZXQgcj1uLmdldEFjdGl2ZVVuaWZvcm0odCxpKTtxRmUocixuLmdldFVuaWZvcm1Mb2NhdGlvbih0LHIubmFtZSksdGhpcyl9fWZ1bmN0aW9uIFRlZShuLHQsZSl7bGV0IGk9bi5jcmVhdGVTaGFkZXIodCk7cmV0dXJuIG4uc2hhZGVyU291cmNlKGksZSksbi5jb21waWxlU2hhZGVyKGkpLGl9TXAucHJvdG90eXBlLnNldFZhbHVlPWZ1bmN0aW9uKG4sdCxlLGkpe2xldCByPXRoaXMubWFwW3RdO3ZvaWQgMCE9PXImJnIuc2V0VmFsdWUobixlLGkpfSxNcC5wcm90b3R5cGUuc2V0T3B0aW9uYWw9ZnVuY3Rpb24obix0LGUpe2xldCBpPXRbZV07dm9pZCAwIT09aSYmdGhpcy5zZXRWYWx1ZShuLGUsaSl9LE1wLnVwbG9hZD1mdW5jdGlvbihuLHQsZSxpKXtmb3IobGV0IHI9MCxvPXQubGVuZ3RoO3IhPT1vOysrcil7bGV0IGE9dFtyXSxzPWVbYS5pZF07ITEhPT1zLm5lZWRzVXBkYXRlJiZhLnNldFZhbHVlKG4scy52YWx1ZSxpKX19LE1wLnNlcVdpdGhWYWx1ZT1mdW5jdGlvbihuLHQpe2xldCBlPVtdO2ZvcihsZXQgaT0wLHI9bi5sZW5ndGg7aSE9PXI7KytpKXtsZXQgbz1uW2ldO28uaWQgaW4gdCYmZS5wdXNoKG8pfXJldHVybiBlfTt2YXIgWEZlPTA7ZnVuY3Rpb24gRGVlKG4sdCxlKXtsZXQgaT1uLmdldFNoYWRlclBhcmFtZXRlcih0LDM1NzEzKSxyPW4uZ2V0U2hhZGVySW5mb0xvZyh0KS50cmltKCk7cmV0dXJuIGkmJiIiPT09cj8iIjplLnRvVXBwZXJDYXNlKCkrIlxuXG4iK3IrIlxuXG4iK2Z1bmN0aW9uKG4pe2xldCB0PW4uc3BsaXQoIlxuIik7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspdFtlXT1lKzErIjogIit0W2VdO3JldHVybiB0LmpvaW4oIlxuIil9KG4uZ2V0U2hhZGVyU291cmNlKHQpKX1mdW5jdGlvbiBaRmUobix0KXtsZXQgZT1mdW5jdGlvbihuKXtzd2l0Y2gobil7Y2FzZSB3cDpyZXR1cm5bIkxpbmVhciIsIiggdmFsdWUgKSJdO2Nhc2UgRHI6cmV0dXJuWyJzUkdCIiwiKCB2YWx1ZSApIl07ZGVmYXVsdDpyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW06IFVuc3VwcG9ydGVkIGVuY29kaW5nOiIsbiksWyJMaW5lYXIiLCIoIHZhbHVlICkiXX19KHQpO3JldHVybiJ2ZWM0ICIrbisiKCB2ZWM0IHZhbHVlICkgeyByZXR1cm4gTGluZWFyVG8iK2VbMF0rZVsxXSsiOyB9In1mdW5jdGlvbiBLRmUobix0KXtsZXQgZTtzd2l0Y2godCl7Y2FzZSBNUmU6ZT0iTGluZWFyIjticmVhaztjYXNlIHdSZTplPSJSZWluaGFyZCI7YnJlYWs7Y2FzZSBTUmU6ZT0iT3B0aW1pemVkQ2luZW9uIjticmVhaztjYXNlIEVSZTplPSJBQ0VTRmlsbWljIjticmVhaztjYXNlIFRSZTplPSJDdXN0b20iO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW06IFVuc3VwcG9ydGVkIHRvbmVNYXBwaW5nOiIsdCksZT0iTGluZWFyIn1yZXR1cm4idmVjMyAiK24rIiggdmVjMyBjb2xvciApIHsgcmV0dXJuICIrZSsiVG9uZU1hcHBpbmcoIGNvbG9yICk7IH0ifWZ1bmN0aW9uIGZ4KG4pe3JldHVybiIiIT09bn1mdW5jdGlvbiBJZWUobix0KXtyZXR1cm4gbi5yZXBsYWNlKC9OVU1fRElSX0xJR0hUUy9nLHQubnVtRGlyTGlnaHRzKS5yZXBsYWNlKC9OVU1fU1BPVF9MSUdIVFMvZyx0Lm51bVNwb3RMaWdodHMpLnJlcGxhY2UoL05VTV9SRUNUX0FSRUFfTElHSFRTL2csdC5udW1SZWN0QXJlYUxpZ2h0cykucmVwbGFjZSgvTlVNX1BPSU5UX0xJR0hUUy9nLHQubnVtUG9pbnRMaWdodHMpLnJlcGxhY2UoL05VTV9IRU1JX0xJR0hUUy9nLHQubnVtSGVtaUxpZ2h0cykucmVwbGFjZSgvTlVNX0RJUl9MSUdIVF9TSEFET1dTL2csdC5udW1EaXJMaWdodFNoYWRvd3MpLnJlcGxhY2UoL05VTV9TUE9UX0xJR0hUX1NIQURPV1MvZyx0Lm51bVNwb3RMaWdodFNoYWRvd3MpLnJlcGxhY2UoL05VTV9QT0lOVF9MSUdIVF9TSEFET1dTL2csdC5udW1Qb2ludExpZ2h0U2hhZG93cyl9ZnVuY3Rpb24gQWVlKG4sdCl7cmV0dXJuIG4ucmVwbGFjZSgvTlVNX0NMSVBQSU5HX1BMQU5FUy9nLHQubnVtQ2xpcHBpbmdQbGFuZXMpLnJlcGxhY2UoL1VOSU9OX0NMSVBQSU5HX1BMQU5FUy9nLHQubnVtQ2xpcHBpbmdQbGFuZXMtdC5udW1DbGlwSW50ZXJzZWN0aW9uKX12YXIgdDJlPS9eWyBcdF0qI2luY2x1ZGUgKzwoW1x3XGQuL10rKT4vZ207ZnVuY3Rpb24gbkIobil7cmV0dXJuIG4ucmVwbGFjZSh0MmUsbjJlKX1mdW5jdGlvbiBuMmUobix0KXtsZXQgZT12aVt0XTtpZih2b2lkIDA9PT1lKXRocm93IG5ldyBFcnJvcigiQ2FuIG5vdCByZXNvbHZlICNpbmNsdWRlIDwiK3QrIj4iKTtyZXR1cm4gbkIoZSl9dmFyIGkyZT0vI3ByYWdtYSB1bnJvbGxfbG9vcFtcc10rP2ZvciBcKCBpbnQgaSBcPSAoXGQrKVw7IGkgPCAoXGQrKVw7IGkgXCtcKyBcKSBceyhbXHNcU10rPykoPz1cfSlcfS9nLHIyZT0vI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxzK2ZvclxzKlwoXHMqaW50XHMraVxzKj1ccyooXGQrKVxzKjtccyppXHMqPFxzKihcZCspXHMqO1xzKmlccypcK1wrXHMqXClccyp7KFtcc1xTXSs/KX1ccysjcHJhZ21hIHVucm9sbF9sb29wX2VuZC9nO2Z1bmN0aW9uIFJlZShuKXtyZXR1cm4gbi5yZXBsYWNlKHIyZSxNdGUpLnJlcGxhY2UoaTJlLG8yZSl9ZnVuY3Rpb24gbzJlKG4sdCxlLGkpe3JldHVybiBjb25zb2xlLndhcm4oIldlYkdMUHJvZ3JhbTogI3ByYWdtYSB1bnJvbGxfbG9vcCBzaGFkZXIgc3ludGF4IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydCBzeW50YXggaW5zdGVhZC4iKSxNdGUoMCx0LGUsaSl9ZnVuY3Rpb24gTXRlKG4sdCxlLGkpe2xldCByPSIiO2ZvcihsZXQgbz1wYXJzZUludCh0KTtvPHBhcnNlSW50KGUpO28rKylyKz1pLnJlcGxhY2UoL1xbXHMqaVxzKlxdL2csIlsgIitvKyIgXSIpLnJlcGxhY2UoL1VOUk9MTEVEX0xPT1BfSU5ERVgvZyxvKTtyZXR1cm4gcn1mdW5jdGlvbiBQZWUobil7bGV0IHQ9InByZWNpc2lvbiAiK24ucHJlY2lzaW9uKyIgZmxvYXQ7XG5wcmVjaXNpb24gIituLnByZWNpc2lvbisiIGludDsiO3JldHVybiJoaWdocCI9PT1uLnByZWNpc2lvbj90Kz0iXG4jZGVmaW5lIEhJR0hfUFJFQ0lTSU9OIjoibWVkaXVtcCI9PT1uLnByZWNpc2lvbj90Kz0iXG4jZGVmaW5lIE1FRElVTV9QUkVDSVNJT04iOiJsb3dwIj09PW4ucHJlY2lzaW9uJiYodCs9IlxuI2RlZmluZSBMT1dfUFJFQ0lTSU9OIiksdH1mdW5jdGlvbiBkMmUobix0LGUsaSl7bGV0IF8sTSxyPW4uZ2V0Q29udGV4dCgpLG89ZS5kZWZpbmVzLGE9ZS52ZXJ0ZXhTaGFkZXIscz1lLmZyYWdtZW50U2hhZGVyLGw9ZnVuY3Rpb24obil7bGV0IHQ9IlNIQURPV01BUF9UWVBFX0JBU0lDIjtyZXR1cm4gbi5zaGFkb3dNYXBUeXBlPT09c3RlP3Q9IlNIQURPV01BUF9UWVBFX1BDRiI6bi5zaGFkb3dNYXBUeXBlPT09dFJlP3Q9IlNIQURPV01BUF9UWVBFX1BDRl9TT0ZUIjpuLnNoYWRvd01hcFR5cGU9PT1teCYmKHQ9IlNIQURPV01BUF9UWVBFX1ZTTSIpLHR9KGUpLGM9ZnVuY3Rpb24obil7bGV0IHQ9IkVOVk1BUF9UWVBFX0NVQkUiO2lmKG4uZW52TWFwKXN3aXRjaChuLmVudk1hcE1vZGUpe2Nhc2UgV3g6Y2FzZSBxeDp0PSJFTlZNQVBfVFlQRV9DVUJFIjticmVhaztjYXNlIEpJOmNhc2UgbFY6dD0iRU5WTUFQX1RZUEVfQ1VCRV9VViJ9cmV0dXJuIHR9KGUpLGQ9ZnVuY3Rpb24obil7bGV0IHQ9IkVOVk1BUF9NT0RFX1JFRkxFQ1RJT04iO2lmKG4uZW52TWFwKXN3aXRjaChuLmVudk1hcE1vZGUpe2Nhc2UgcXg6Y2FzZSBsVjp0PSJFTlZNQVBfTU9ERV9SRUZSQUNUSU9OIn1yZXR1cm4gdH0oZSksdT1mdW5jdGlvbihuKXtsZXQgdD0iRU5WTUFQX0JMRU5ESU5HX05PTkUiO2lmKG4uZW52TWFwKXN3aXRjaChuLmNvbWJpbmUpe2Nhc2UgS0k6dD0iRU5WTUFQX0JMRU5ESU5HX01VTFRJUExZIjticmVhaztjYXNlIHhSZTp0PSJFTlZNQVBfQkxFTkRJTkdfTUlYIjticmVhaztjYXNlIENSZTp0PSJFTlZNQVBfQkxFTkRJTkdfQUREIn1yZXR1cm4gdH0oZSkscD1lLmlzV2ViR0wyPyIiOmZ1bmN0aW9uKG4pe3JldHVybltuLmV4dGVuc2lvbkRlcml2YXRpdmVzfHxuLmVudk1hcEN1YmVVVnx8bi5idW1wTWFwfHxuLnRhbmdlbnRTcGFjZU5vcm1hbE1hcHx8bi5jbGVhcmNvYXROb3JtYWxNYXB8fG4uZmxhdFNoYWRpbmd8fCJwaHlzaWNhbCI9PT1uLnNoYWRlcklEPyIjZXh0ZW5zaW9uIEdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyA6IGVuYWJsZSI6IiIsKG4uZXh0ZW5zaW9uRnJhZ0RlcHRofHxuLmxvZ2FyaXRobWljRGVwdGhCdWZmZXIpJiZuLnJlbmRlcmVyRXh0ZW5zaW9uRnJhZ0RlcHRoPyIjZXh0ZW5zaW9uIEdMX0VYVF9mcmFnX2RlcHRoIDogZW5hYmxlIjoiIixuLmV4dGVuc2lvbkRyYXdCdWZmZXJzJiZuLnJlbmRlcmVyRXh0ZW5zaW9uRHJhd0J1ZmZlcnM/IiNleHRlbnNpb24gR0xfRVhUX2RyYXdfYnVmZmVycyA6IHJlcXVpcmUiOiIiLChuLmV4dGVuc2lvblNoYWRlclRleHR1cmVMT0R8fG4uZW52TWFwfHxuLnRyYW5zbWlzc2lvbikmJm4ucmVuZGVyZXJFeHRlbnNpb25TaGFkZXJUZXh0dXJlTG9kPyIjZXh0ZW5zaW9uIEdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2QgOiBlbmFibGUiOiIiXS5maWx0ZXIoZngpLmpvaW4oIlxuIil9KGUpLGg9ZnVuY3Rpb24obil7bGV0IHQ9W107Zm9yKGxldCBlIGluIG4pe2xldCBpPW5bZV07ITEhPT1pJiZ0LnB1c2goIiNkZWZpbmUgIitlKyIgIitpKX1yZXR1cm4gdC5qb2luKCJcbiIpfShvKSxtPXIuY3JlYXRlUHJvZ3JhbSgpLHk9ZS5nbHNsVmVyc2lvbj8iI3ZlcnNpb24gIitlLmdsc2xWZXJzaW9uKyJcbiI6IiI7ZS5pc1Jhd1NoYWRlck1hdGVyaWFsPyhfPVtoXS5maWx0ZXIoZngpLmpvaW4oIlxuIiksXy5sZW5ndGg+MCYmKF8rPSJcbiIpLE09W3AsaF0uZmlsdGVyKGZ4KS5qb2luKCJcbiIpLE0ubGVuZ3RoPjAmJihNKz0iXG4iKSk6KF89W1BlZShlKSwiI2RlZmluZSBTSEFERVJfTkFNRSAiK2Uuc2hhZGVyTmFtZSxoLGUuaW5zdGFuY2luZz8iI2RlZmluZSBVU0VfSU5TVEFOQ0lORyI6IiIsZS5pbnN0YW5jaW5nQ29sb3I/IiNkZWZpbmUgVVNFX0lOU1RBTkNJTkdfQ09MT1IiOiIiLGUuc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlcz8iI2RlZmluZSBWRVJURVhfVEVYVFVSRVMiOiIiLCIjZGVmaW5lIE1BWF9CT05FUyAiK2UubWF4Qm9uZXMsZS51c2VGb2cmJmUuZm9nPyIjZGVmaW5lIFVTRV9GT0ciOiIiLGUudXNlRm9nJiZlLmZvZ0V4cDI/IiNkZWZpbmUgRk9HX0VYUDIiOiIiLGUubWFwPyIjZGVmaW5lIFVTRV9NQVAiOiIiLGUuZW52TWFwPyIjZGVmaW5lIFVTRV9FTlZNQVAiOiIiLGUuZW52TWFwPyIjZGVmaW5lICIrZDoiIixlLmxpZ2h0TWFwPyIjZGVmaW5lIFVTRV9MSUdIVE1BUCI6IiIsZS5hb01hcD8iI2RlZmluZSBVU0VfQU9NQVAiOiIiLGUuZW1pc3NpdmVNYXA/IiNkZWZpbmUgVVNFX0VNSVNTSVZFTUFQIjoiIixlLmJ1bXBNYXA/IiNkZWZpbmUgVVNFX0JVTVBNQVAiOiIiLGUubm9ybWFsTWFwPyIjZGVmaW5lIFVTRV9OT1JNQUxNQVAiOiIiLGUubm9ybWFsTWFwJiZlLm9iamVjdFNwYWNlTm9ybWFsTWFwPyIjZGVmaW5lIE9CSkVDVFNQQUNFX05PUk1BTE1BUCI6IiIsZS5ub3JtYWxNYXAmJmUudGFuZ2VudFNwYWNlTm9ybWFsTWFwPyIjZGVmaW5lIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAiOiIiLGUuY2xlYXJjb2F0TWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRNQVAiOiIiLGUuY2xlYXJjb2F0Um91Z2huZXNzTWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRfUk9VR0hORVNTTUFQIjoiIixlLmNsZWFyY29hdE5vcm1hbE1hcD8iI2RlZmluZSBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUCI6IiIsZS5kaXNwbGFjZW1lbnRNYXAmJmUuc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlcz8iI2RlZmluZSBVU0VfRElTUExBQ0VNRU5UTUFQIjoiIixlLnNwZWN1bGFyTWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUk1BUCI6IiIsZS5zcGVjdWxhckludGVuc2l0eU1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJJTlRFTlNJVFlNQVAiOiIiLGUuc3BlY3VsYXJDb2xvck1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJDT0xPUk1BUCI6IiIsZS5yb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX1JPVUdITkVTU01BUCI6IiIsZS5tZXRhbG5lc3NNYXA/IiNkZWZpbmUgVVNFX01FVEFMTkVTU01BUCI6IiIsZS5hbHBoYU1hcD8iI2RlZmluZSBVU0VfQUxQSEFNQVAiOiIiLGUudHJhbnNtaXNzaW9uPyIjZGVmaW5lIFVTRV9UUkFOU01JU1NJT04iOiIiLGUudHJhbnNtaXNzaW9uTWFwPyIjZGVmaW5lIFVTRV9UUkFOU01JU1NJT05NQVAiOiIiLGUudGhpY2tuZXNzTWFwPyIjZGVmaW5lIFVTRV9USElDS05FU1NNQVAiOiIiLGUuc2hlZW5Db2xvck1hcD8iI2RlZmluZSBVU0VfU0hFRU5DT0xPUk1BUCI6IiIsZS5zaGVlblJvdWdobmVzc01hcD8iI2RlZmluZSBVU0VfU0hFRU5ST1VHSE5FU1NNQVAiOiIiLGUudmVydGV4VGFuZ2VudHM/IiNkZWZpbmUgVVNFX1RBTkdFTlQiOiIiLGUudmVydGV4Q29sb3JzPyIjZGVmaW5lIFVTRV9DT0xPUiI6IiIsZS52ZXJ0ZXhBbHBoYXM/IiNkZWZpbmUgVVNFX0NPTE9SX0FMUEhBIjoiIixlLnZlcnRleFV2cz8iI2RlZmluZSBVU0VfVVYiOiIiLGUudXZzVmVydGV4T25seT8iI2RlZmluZSBVVlNfVkVSVEVYX09OTFkiOiIiLGUuZmxhdFNoYWRpbmc/IiNkZWZpbmUgRkxBVF9TSEFERUQiOiIiLGUuc2tpbm5pbmc/IiNkZWZpbmUgVVNFX1NLSU5OSU5HIjoiIixlLnVzZVZlcnRleFRleHR1cmU/IiNkZWZpbmUgQk9ORV9URVhUVVJFIjoiIixlLm1vcnBoVGFyZ2V0cz8iI2RlZmluZSBVU0VfTU9SUEhUQVJHRVRTIjoiIixlLm1vcnBoTm9ybWFscyYmITE9PT1lLmZsYXRTaGFkaW5nPyIjZGVmaW5lIFVTRV9NT1JQSE5PUk1BTFMiOiIiLGUubW9ycGhUYXJnZXRzJiZlLmlzV2ViR0wyPyIjZGVmaW5lIE1PUlBIVEFSR0VUU19URVhUVVJFIjoiIixlLm1vcnBoVGFyZ2V0cyYmZS5pc1dlYkdMMj8iI2RlZmluZSBNT1JQSFRBUkdFVFNfQ09VTlQgIitlLm1vcnBoVGFyZ2V0c0NvdW50OiIiLGUuZG91YmxlU2lkZWQ/IiNkZWZpbmUgRE9VQkxFX1NJREVEIjoiIixlLmZsaXBTaWRlZD8iI2RlZmluZSBGTElQX1NJREVEIjoiIixlLnNoYWRvd01hcEVuYWJsZWQ/IiNkZWZpbmUgVVNFX1NIQURPV01BUCI6IiIsZS5zaGFkb3dNYXBFbmFibGVkPyIjZGVmaW5lICIrbDoiIixlLnNpemVBdHRlbnVhdGlvbj8iI2RlZmluZSBVU0VfU0laRUFUVEVOVUFUSU9OIjoiIixlLmxvZ2FyaXRobWljRGVwdGhCdWZmZXI/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGIjoiIixlLmxvZ2FyaXRobWljRGVwdGhCdWZmZXImJmUucmVuZGVyZXJFeHRlbnNpb25GcmFnRGVwdGg/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGX0VYVCI6IiIsInVuaWZvcm0gbWF0NCBtb2RlbE1hdHJpeDsiLCJ1bmlmb3JtIG1hdDQgbW9kZWxWaWV3TWF0cml4OyIsInVuaWZvcm0gbWF0NCBwcm9qZWN0aW9uTWF0cml4OyIsInVuaWZvcm0gbWF0NCB2aWV3TWF0cml4OyIsInVuaWZvcm0gbWF0MyBub3JtYWxNYXRyaXg7IiwidW5pZm9ybSB2ZWMzIGNhbWVyYVBvc2l0aW9uOyIsInVuaWZvcm0gYm9vbCBpc09ydGhvZ3JhcGhpYzsiLCIjaWZkZWYgVVNFX0lOU1RBTkNJTkciLCJcdGF0dHJpYnV0ZSBtYXQ0IGluc3RhbmNlTWF0cml4OyIsIiNlbmRpZiIsIiNpZmRlZiBVU0VfSU5TVEFOQ0lOR19DT0xPUiIsIlx0YXR0cmlidXRlIHZlYzMgaW5zdGFuY2VDb2xvcjsiLCIjZW5kaWYiLCJhdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjsiLCJhdHRyaWJ1dGUgdmVjMyBub3JtYWw7IiwiYXR0cmlidXRlIHZlYzIgdXY7IiwiI2lmZGVmIFVTRV9UQU5HRU5UIiwiXHRhdHRyaWJ1dGUgdmVjNCB0YW5nZW50OyIsIiNlbmRpZiIsIiNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKSIsIlx0YXR0cmlidXRlIHZlYzQgY29sb3I7IiwiI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SICkiLCJcdGF0dHJpYnV0ZSB2ZWMzIGNvbG9yOyIsIiNlbmRpZiIsIiNpZiAoIGRlZmluZWQoIFVTRV9NT1JQSFRBUkdFVFMgKSAmJiAhIGRlZmluZWQoIE1PUlBIVEFSR0VUU19URVhUVVJFICkgKSIsIlx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQwOyIsIlx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQxOyIsIlx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQyOyIsIlx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQzOyIsIlx0I2lmZGVmIFVTRV9NT1JQSE5PUk1BTFMiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhOb3JtYWwwOyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaE5vcm1hbDE7IiwiXHRcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoTm9ybWFsMjsiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhOb3JtYWwzOyIsIlx0I2Vsc2UiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQ0OyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDU7IiwiXHRcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0NjsiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQ3OyIsIlx0I2VuZGlmIiwiI2VuZGlmIiwiI2lmZGVmIFVTRV9TS0lOTklORyIsIlx0YXR0cmlidXRlIHZlYzQgc2tpbkluZGV4OyIsIlx0YXR0cmlidXRlIHZlYzQgc2tpbldlaWdodDsiLCIjZW5kaWYiLCJcbiJdLmZpbHRlcihmeCkuam9pbigiXG4iKSxNPVtwLFBlZShlKSwiI2RlZmluZSBTSEFERVJfTkFNRSAiK2Uuc2hhZGVyTmFtZSxoLGUudXNlRm9nJiZlLmZvZz8iI2RlZmluZSBVU0VfRk9HIjoiIixlLnVzZUZvZyYmZS5mb2dFeHAyPyIjZGVmaW5lIEZPR19FWFAyIjoiIixlLm1hcD8iI2RlZmluZSBVU0VfTUFQIjoiIixlLm1hdGNhcD8iI2RlZmluZSBVU0VfTUFUQ0FQIjoiIixlLmVudk1hcD8iI2RlZmluZSBVU0VfRU5WTUFQIjoiIixlLmVudk1hcD8iI2RlZmluZSAiK2M6IiIsZS5lbnZNYXA/IiNkZWZpbmUgIitkOiIiLGUuZW52TWFwPyIjZGVmaW5lICIrdToiIixlLmxpZ2h0TWFwPyIjZGVmaW5lIFVTRV9MSUdIVE1BUCI6IiIsZS5hb01hcD8iI2RlZmluZSBVU0VfQU9NQVAiOiIiLGUuZW1pc3NpdmVNYXA/IiNkZWZpbmUgVVNFX0VNSVNTSVZFTUFQIjoiIixlLmJ1bXBNYXA/IiNkZWZpbmUgVVNFX0JVTVBNQVAiOiIiLGUubm9ybWFsTWFwPyIjZGVmaW5lIFVTRV9OT1JNQUxNQVAiOiIiLGUubm9ybWFsTWFwJiZlLm9iamVjdFNwYWNlTm9ybWFsTWFwPyIjZGVmaW5lIE9CSkVDVFNQQUNFX05PUk1BTE1BUCI6IiIsZS5ub3JtYWxNYXAmJmUudGFuZ2VudFNwYWNlTm9ybWFsTWFwPyIjZGVmaW5lIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAiOiIiLGUuY2xlYXJjb2F0PyIjZGVmaW5lIFVTRV9DTEVBUkNPQVQiOiIiLGUuY2xlYXJjb2F0TWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRNQVAiOiIiLGUuY2xlYXJjb2F0Um91Z2huZXNzTWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRfUk9VR0hORVNTTUFQIjoiIixlLmNsZWFyY29hdE5vcm1hbE1hcD8iI2RlZmluZSBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUCI6IiIsZS5zcGVjdWxhck1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJNQVAiOiIiLGUuc3BlY3VsYXJJbnRlbnNpdHlNYXA/IiNkZWZpbmUgVVNFX1NQRUNVTEFSSU5URU5TSVRZTUFQIjoiIixlLnNwZWN1bGFyQ29sb3JNYXA/IiNkZWZpbmUgVVNFX1NQRUNVTEFSQ09MT1JNQVAiOiIiLGUucm91Z2huZXNzTWFwPyIjZGVmaW5lIFVTRV9ST1VHSE5FU1NNQVAiOiIiLGUubWV0YWxuZXNzTWFwPyIjZGVmaW5lIFVTRV9NRVRBTE5FU1NNQVAiOiIiLGUuYWxwaGFNYXA/IiNkZWZpbmUgVVNFX0FMUEhBTUFQIjoiIixlLmFscGhhVGVzdD8iI2RlZmluZSBVU0VfQUxQSEFURVNUIjoiIixlLnNoZWVuPyIjZGVmaW5lIFVTRV9TSEVFTiI6IiIsZS5zaGVlbkNvbG9yTWFwPyIjZGVmaW5lIFVTRV9TSEVFTkNPTE9STUFQIjoiIixlLnNoZWVuUm91Z2huZXNzTWFwPyIjZGVmaW5lIFVTRV9TSEVFTlJPVUdITkVTU01BUCI6IiIsZS50cmFuc21pc3Npb24/IiNkZWZpbmUgVVNFX1RSQU5TTUlTU0lPTiI6IiIsZS50cmFuc21pc3Npb25NYXA/IiNkZWZpbmUgVVNFX1RSQU5TTUlTU0lPTk1BUCI6IiIsZS50aGlja25lc3NNYXA/IiNkZWZpbmUgVVNFX1RISUNLTkVTU01BUCI6IiIsZS5kZWNvZGVWaWRlb1RleHR1cmU/IiNkZWZpbmUgREVDT0RFX1ZJREVPX1RFWFRVUkUiOiIiLGUudmVydGV4VGFuZ2VudHM/IiNkZWZpbmUgVVNFX1RBTkdFTlQiOiIiLGUudmVydGV4Q29sb3JzfHxlLmluc3RhbmNpbmdDb2xvcj8iI2RlZmluZSBVU0VfQ09MT1IiOiIiLGUudmVydGV4QWxwaGFzPyIjZGVmaW5lIFVTRV9DT0xPUl9BTFBIQSI6IiIsZS52ZXJ0ZXhVdnM/IiNkZWZpbmUgVVNFX1VWIjoiIixlLnV2c1ZlcnRleE9ubHk/IiNkZWZpbmUgVVZTX1ZFUlRFWF9PTkxZIjoiIixlLmdyYWRpZW50TWFwPyIjZGVmaW5lIFVTRV9HUkFESUVOVE1BUCI6IiIsZS5mbGF0U2hhZGluZz8iI2RlZmluZSBGTEFUX1NIQURFRCI6IiIsZS5kb3VibGVTaWRlZD8iI2RlZmluZSBET1VCTEVfU0lERUQiOiIiLGUuZmxpcFNpZGVkPyIjZGVmaW5lIEZMSVBfU0lERUQiOiIiLGUuc2hhZG93TWFwRW5hYmxlZD8iI2RlZmluZSBVU0VfU0hBRE9XTUFQIjoiIixlLnNoYWRvd01hcEVuYWJsZWQ/IiNkZWZpbmUgIitsOiIiLGUucHJlbXVsdGlwbGllZEFscGhhPyIjZGVmaW5lIFBSRU1VTFRJUExJRURfQUxQSEEiOiIiLGUucGh5c2ljYWxseUNvcnJlY3RMaWdodHM/IiNkZWZpbmUgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUUyI6IiIsZS5sb2dhcml0aG1pY0RlcHRoQnVmZmVyPyIjZGVmaW5lIFVTRV9MT0dERVBUSEJVRiI6IiIsZS5sb2dhcml0aG1pY0RlcHRoQnVmZmVyJiZlLnJlbmRlcmVyRXh0ZW5zaW9uRnJhZ0RlcHRoPyIjZGVmaW5lIFVTRV9MT0dERVBUSEJVRl9FWFQiOiIiLChlLmV4dGVuc2lvblNoYWRlclRleHR1cmVMT0R8fGUuZW52TWFwKSYmZS5yZW5kZXJlckV4dGVuc2lvblNoYWRlclRleHR1cmVMb2Q/IiNkZWZpbmUgVEVYVFVSRV9MT0RfRVhUIjoiIiwidW5pZm9ybSBtYXQ0IHZpZXdNYXRyaXg7IiwidW5pZm9ybSB2ZWMzIGNhbWVyYVBvc2l0aW9uOyIsInVuaWZvcm0gYm9vbCBpc09ydGhvZ3JhcGhpYzsiLGUudG9uZU1hcHBpbmchPT15cD8iI2RlZmluZSBUT05FX01BUFBJTkciOiIiLGUudG9uZU1hcHBpbmchPT15cD92aS50b25lbWFwcGluZ19wYXJzX2ZyYWdtZW50OiIiLGUudG9uZU1hcHBpbmchPT15cD9LRmUoInRvbmVNYXBwaW5nIixlLnRvbmVNYXBwaW5nKToiIixlLmRpdGhlcmluZz8iI2RlZmluZSBESVRIRVJJTkciOiIiLGUuYWxwaGFXcml0ZT8iIjoiI2RlZmluZSBPUEFRVUUiLHZpLmVuY29kaW5nc19wYXJzX2ZyYWdtZW50LFpGZSgibGluZWFyVG9PdXRwdXRUZXhlbCIsZS5vdXRwdXRFbmNvZGluZyksZS5kZXB0aFBhY2tpbmc/IiNkZWZpbmUgREVQVEhfUEFDS0lORyAiK2UuZGVwdGhQYWNraW5nOiIiLCJcbiJdLmZpbHRlcihmeCkuam9pbigiXG4iKSksYT1uQihhKSxhPUllZShhLGUpLGE9QWVlKGEsZSkscz1uQihzKSxzPUllZShzLGUpLHM9QWVlKHMsZSksYT1SZWUoYSkscz1SZWUocyksZS5pc1dlYkdMMiYmITAhPT1lLmlzUmF3U2hhZGVyTWF0ZXJpYWwmJih5PSIjdmVyc2lvbiAzMDAgZXNcbiIsXz1bInByZWNpc2lvbiBtZWRpdW1wIHNhbXBsZXIyREFycmF5OyIsIiNkZWZpbmUgYXR0cmlidXRlIGluIiwiI2RlZmluZSB2YXJ5aW5nIG91dCIsIiNkZWZpbmUgdGV4dHVyZTJEIHRleHR1cmUiXS5qb2luKCJcbiIpKyJcbiIrXyxNPVsiI2RlZmluZSB2YXJ5aW5nIGluIixlLmdsc2xWZXJzaW9uPT09ZWVlPyIiOiJsYXlvdXQobG9jYXRpb24gPSAwKSBvdXQgaGlnaHAgdmVjNCBwY19mcmFnQ29sb3I7IixlLmdsc2xWZXJzaW9uPT09ZWVlPyIiOiIjZGVmaW5lIGdsX0ZyYWdDb2xvciBwY19mcmFnQ29sb3IiLCIjZGVmaW5lIGdsX0ZyYWdEZXB0aEVYVCBnbF9GcmFnRGVwdGgiLCIjZGVmaW5lIHRleHR1cmUyRCB0ZXh0dXJlIiwiI2RlZmluZSB0ZXh0dXJlQ3ViZSB0ZXh0dXJlIiwiI2RlZmluZSB0ZXh0dXJlMkRQcm9qIHRleHR1cmVQcm9qIiwiI2RlZmluZSB0ZXh0dXJlMkRMb2RFWFQgdGV4dHVyZUxvZCIsIiNkZWZpbmUgdGV4dHVyZTJEUHJvakxvZEVYVCB0ZXh0dXJlUHJvakxvZCIsIiNkZWZpbmUgdGV4dHVyZUN1YmVMb2RFWFQgdGV4dHVyZUxvZCIsIiNkZWZpbmUgdGV4dHVyZTJER3JhZEVYVCB0ZXh0dXJlR3JhZCIsIiNkZWZpbmUgdGV4dHVyZTJEUHJvakdyYWRFWFQgdGV4dHVyZVByb2pHcmFkIiwiI2RlZmluZSB0ZXh0dXJlQ3ViZUdyYWRFWFQgdGV4dHVyZUdyYWQiXS5qb2luKCJcbiIpKyJcbiIrTSk7bGV0IGVlLFEsUj15K00rcyxJPVRlZShyLDM1NjMzLHkrXythKSxCPVRlZShyLDM1NjMyLFIpO2lmKHIuYXR0YWNoU2hhZGVyKG0sSSksci5hdHRhY2hTaGFkZXIobSxCKSx2b2lkIDAhPT1lLmluZGV4MEF0dHJpYnV0ZU5hbWU/ci5iaW5kQXR0cmliTG9jYXRpb24obSwwLGUuaW5kZXgwQXR0cmlidXRlTmFtZSk6ITA9PT1lLm1vcnBoVGFyZ2V0cyYmci5iaW5kQXR0cmliTG9jYXRpb24obSwwLCJwb3NpdGlvbiIpLHIubGlua1Byb2dyYW0obSksbi5kZWJ1Zy5jaGVja1NoYWRlckVycm9ycyl7bGV0IHdlPXIuZ2V0UHJvZ3JhbUluZm9Mb2cobSkudHJpbSgpLFFlPXIuZ2V0U2hhZGVySW5mb0xvZyhJKS50cmltKCksQWU9ci5nZXRTaGFkZXJJbmZvTG9nKEIpLnRyaW0oKSxEPSEwLHJlPSEwO2lmKCExPT09ci5nZXRQcm9ncmFtUGFyYW1ldGVyKG0sMzU3MTQpKXtEPSExO2xldCBjZT1EZWUocixJLCJ2ZXJ0ZXgiKSxoZT1EZWUocixCLCJmcmFnbWVudCIpO2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUHJvZ3JhbTogU2hhZGVyIEVycm9yICIrci5nZXRFcnJvcigpKyIgLSBWQUxJREFURV9TVEFUVVMgIityLmdldFByb2dyYW1QYXJhbWV0ZXIobSwzNTcxNSkrIlxuXG5Qcm9ncmFtIEluZm8gTG9nOiAiK3dlKyJcbiIrY2UrIlxuIitoZSl9ZWxzZSIiIT09d2U/Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW06IFByb2dyYW0gSW5mbyBMb2c6Iix3ZSk6KCIiPT09UWV8fCIiPT09QWUpJiYocmU9ITEpO3JlJiYodGhpcy5kaWFnbm9zdGljcz17cnVubmFibGU6RCxwcm9ncmFtTG9nOndlLHZlcnRleFNoYWRlcjp7bG9nOlFlLHByZWZpeDpffSxmcmFnbWVudFNoYWRlcjp7bG9nOkFlLHByZWZpeDpNfX0pfXJldHVybiByLmRlbGV0ZVNoYWRlcihJKSxyLmRlbGV0ZVNoYWRlcihCKSx0aGlzLmdldFVuaWZvcm1zPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PWVlJiYoZWU9bmV3IE1wKHIsbSkpLGVlfSx0aGlzLmdldEF0dHJpYnV0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09USYmKFE9ZnVuY3Rpb24obix0KXtsZXQgZT17fSxpPW4uZ2V0UHJvZ3JhbVBhcmFtZXRlcih0LDM1NzIxKTtmb3IobGV0IHI9MDtyPGk7cisrKXtsZXQgbz1uLmdldEFjdGl2ZUF0dHJpYih0LHIpLGE9by5uYW1lLHM9MTszNTY3ND09PW8udHlwZSYmKHM9MiksMzU2NzU9PT1vLnR5cGUmJihzPTMpLDM1Njc2PT09by50eXBlJiYocz00KSxlW2FdPXt0eXBlOm8udHlwZSxsb2NhdGlvbjpuLmdldEF0dHJpYkxvY2F0aW9uKHQsYSksbG9jYXRpb25TaXplOnN9fXJldHVybiBlfShyLG0pKSxRfSx0aGlzLmRlc3Ryb3k9ZnVuY3Rpb24oKXtpLnJlbGVhc2VTdGF0ZXNPZlByb2dyYW0odGhpcyksci5kZWxldGVQcm9ncmFtKG0pLHRoaXMucHJvZ3JhbT12b2lkIDB9LHRoaXMubmFtZT1lLnNoYWRlck5hbWUsdGhpcy5pZD1YRmUrKyx0aGlzLmNhY2hlS2V5PXQsdGhpcy51c2VkVGltZXM9MSx0aGlzLnByb2dyYW09bSx0aGlzLnZlcnRleFNoYWRlcj1JLHRoaXMuZnJhZ21lbnRTaGFkZXI9Qix0aGlzfXZhciB1MmU9MCxpQj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc2hhZGVyQ2FjaGU9bmV3IE1hcCx0aGlzLm1hdGVyaWFsQ2FjaGU9bmV3IE1hcH11cGRhdGUodCl7bGV0IGk9dC5mcmFnbWVudFNoYWRlcixyPXRoaXMuX2dldFNoYWRlclN0YWdlKHQudmVydGV4U2hhZGVyKSxvPXRoaXMuX2dldFNoYWRlclN0YWdlKGkpLGE9dGhpcy5fZ2V0U2hhZGVyQ2FjaGVGb3JNYXRlcmlhbCh0KTtyZXR1cm4hMT09PWEuaGFzKHIpJiYoYS5hZGQociksci51c2VkVGltZXMrKyksITE9PT1hLmhhcyhvKSYmKGEuYWRkKG8pLG8udXNlZFRpbWVzKyspLHRoaXN9cmVtb3ZlKHQpe2xldCBlPXRoaXMubWF0ZXJpYWxDYWNoZS5nZXQodCk7Zm9yKGxldCBpIG9mIGUpaS51c2VkVGltZXMtLSwwPT09aS51c2VkVGltZXMmJnRoaXMuc2hhZGVyQ2FjaGUuZGVsZXRlKGkpO3JldHVybiB0aGlzLm1hdGVyaWFsQ2FjaGUuZGVsZXRlKHQpLHRoaXN9Z2V0VmVydGV4U2hhZGVySUQodCl7cmV0dXJuIHRoaXMuX2dldFNoYWRlclN0YWdlKHQudmVydGV4U2hhZGVyKS5pZH1nZXRGcmFnbWVudFNoYWRlcklEKHQpe3JldHVybiB0aGlzLl9nZXRTaGFkZXJTdGFnZSh0LmZyYWdtZW50U2hhZGVyKS5pZH1kaXNwb3NlKCl7dGhpcy5zaGFkZXJDYWNoZS5jbGVhcigpLHRoaXMubWF0ZXJpYWxDYWNoZS5jbGVhcigpfV9nZXRTaGFkZXJDYWNoZUZvck1hdGVyaWFsKHQpe2xldCBlPXRoaXMubWF0ZXJpYWxDYWNoZTtyZXR1cm4hMT09PWUuaGFzKHQpJiZlLnNldCh0LG5ldyBTZXQpLGUuZ2V0KHQpfV9nZXRTaGFkZXJTdGFnZSh0KXtsZXQgZT10aGlzLnNoYWRlckNhY2hlO2lmKCExPT09ZS5oYXModCkpe2xldCBpPW5ldyByQjtlLnNldCh0LGkpfXJldHVybiBlLmdldCh0KX19LHJCPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5pZD11MmUrKyx0aGlzLnVzZWRUaW1lcz0wfX07ZnVuY3Rpb24gcDJlKG4sdCxlLGkscixvLGEpe2xldCBzPW5ldyBFSSxsPW5ldyBpQixjPVtdLGQ9ci5pc1dlYkdMMix1PXIubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcixwPXIuZmxvYXRWZXJ0ZXhUZXh0dXJlcyxoPXIubWF4VmVydGV4VW5pZm9ybXMsbT1yLnZlcnRleFRleHR1cmVzLF89ci5wcmVjaXNpb24sTT17TWVzaERlcHRoTWF0ZXJpYWw6ImRlcHRoIixNZXNoRGlzdGFuY2VNYXRlcmlhbDoiZGlzdGFuY2VSR0JBIixNZXNoTm9ybWFsTWF0ZXJpYWw6Im5vcm1hbCIsTWVzaEJhc2ljTWF0ZXJpYWw6ImJhc2ljIixNZXNoTGFtYmVydE1hdGVyaWFsOiJsYW1iZXJ0IixNZXNoUGhvbmdNYXRlcmlhbDoicGhvbmciLE1lc2hUb29uTWF0ZXJpYWw6InRvb24iLE1lc2hTdGFuZGFyZE1hdGVyaWFsOiJwaHlzaWNhbCIsTWVzaFBoeXNpY2FsTWF0ZXJpYWw6InBoeXNpY2FsIixNZXNoTWF0Y2FwTWF0ZXJpYWw6Im1hdGNhcCIsTGluZUJhc2ljTWF0ZXJpYWw6ImJhc2ljIixMaW5lRGFzaGVkTWF0ZXJpYWw6ImRhc2hlZCIsUG9pbnRzTWF0ZXJpYWw6InBvaW50cyIsU2hhZG93TWF0ZXJpYWw6InNoYWRvdyIsU3ByaXRlTWF0ZXJpYWw6InNwcml0ZSJ9O3JldHVybntnZXRQYXJhbWV0ZXJzOmZ1bmN0aW9uKEQscmUsY2UsaGUsX2Upe2xldCBGZSxsdCxNdCxwdCwkPWhlLmZvZyxwZT0oRC5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP2U6dCkuZ2V0KEQuZW52TWFwfHwoRC5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP2hlLmVudmlyb25tZW50Om51bGwpKSxHZT1NW0QudHlwZV0sU2U9X2UuaXNTa2lubmVkTWVzaD9mdW5jdGlvbihEKXtsZXQgY2U9RC5za2VsZXRvbi5ib25lcztpZihwKXJldHVybiAxMDI0O3tsZXQgX2U9TWF0aC5mbG9vcigoaC0yMCkvNCksJD1NYXRoLm1pbihfZSxjZS5sZW5ndGgpO3JldHVybiAkPGNlLmxlbmd0aD8oY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBTa2VsZXRvbiBoYXMgIitjZS5sZW5ndGgrIiBib25lcy4gVGhpcyBHUFUgc3VwcG9ydHMgIiskKyIuIiksMCk6JH19KF9lKTowO2lmKG51bGwhPT1ELnByZWNpc2lvbiYmKF89ci5nZXRNYXhQcmVjaXNpb24oRC5wcmVjaXNpb24pLF8hPT1ELnByZWNpc2lvbiYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW0uZ2V0UGFyYW1ldGVyczoiLEQucHJlY2lzaW9uLCJub3Qgc3VwcG9ydGVkLCB1c2luZyIsXywiaW5zdGVhZC4iKSksR2Upe2xldCBDZT1qY1tHZV07RmU9Q2UudmVydGV4U2hhZGVyLGx0PUNlLmZyYWdtZW50U2hhZGVyfWVsc2UgRmU9RC52ZXJ0ZXhTaGFkZXIsbHQ9RC5mcmFnbWVudFNoYWRlcixsLnVwZGF0ZShEKSxNdD1sLmdldFZlcnRleFNoYWRlcklEKEQpLHB0PWwuZ2V0RnJhZ21lbnRTaGFkZXJJRChEKTtsZXQga2U9bi5nZXRSZW5kZXJUYXJnZXQoKSx3dD1ELmNsZWFyY29hdD4wO3JldHVybntpc1dlYkdMMjpkLHNoYWRlcklEOkdlLHNoYWRlck5hbWU6RC50eXBlLHZlcnRleFNoYWRlcjpGZSxmcmFnbWVudFNoYWRlcjpsdCxkZWZpbmVzOkQuZGVmaW5lcyxjdXN0b21WZXJ0ZXhTaGFkZXJJRDpNdCxjdXN0b21GcmFnbWVudFNoYWRlcklEOnB0LGlzUmF3U2hhZGVyTWF0ZXJpYWw6ITA9PT1ELmlzUmF3U2hhZGVyTWF0ZXJpYWwsZ2xzbFZlcnNpb246RC5nbHNsVmVyc2lvbixwcmVjaXNpb246XyxpbnN0YW5jaW5nOiEwPT09X2UuaXNJbnN0YW5jZWRNZXNoLGluc3RhbmNpbmdDb2xvcjohMD09PV9lLmlzSW5zdGFuY2VkTWVzaCYmbnVsbCE9PV9lLmluc3RhbmNlQ29sb3Isc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlczptLG91dHB1dEVuY29kaW5nOm51bGw9PT1rZT9uLm91dHB1dEVuY29kaW5nOiEwPT09a2UuaXNYUlJlbmRlclRhcmdldD9rZS50ZXh0dXJlLmVuY29kaW5nOndwLG1hcDohIUQubWFwLG1hdGNhcDohIUQubWF0Y2FwLGVudk1hcDohIXBlLGVudk1hcE1vZGU6cGUmJnBlLm1hcHBpbmcsZW52TWFwQ3ViZVVWOiEhcGUmJihwZS5tYXBwaW5nPT09Skl8fHBlLm1hcHBpbmc9PT1sViksbGlnaHRNYXA6ISFELmxpZ2h0TWFwLGFvTWFwOiEhRC5hb01hcCxlbWlzc2l2ZU1hcDohIUQuZW1pc3NpdmVNYXAsYnVtcE1hcDohIUQuYnVtcE1hcCxub3JtYWxNYXA6ISFELm5vcm1hbE1hcCxvYmplY3RTcGFjZU5vcm1hbE1hcDpELm5vcm1hbE1hcFR5cGU9PT1RUmUsdGFuZ2VudFNwYWNlTm9ybWFsTWFwOkQubm9ybWFsTWFwVHlwZT09PWNfLGRlY29kZVZpZGVvVGV4dHVyZTohIUQubWFwJiYhMD09PUQubWFwLmlzVmlkZW9UZXh0dXJlJiZELm1hcC5lbmNvZGluZz09PURyLGNsZWFyY29hdDp3dCxjbGVhcmNvYXRNYXA6d3QmJiEhRC5jbGVhcmNvYXRNYXAsY2xlYXJjb2F0Um91Z2huZXNzTWFwOnd0JiYhIUQuY2xlYXJjb2F0Um91Z2huZXNzTWFwLGNsZWFyY29hdE5vcm1hbE1hcDp3dCYmISFELmNsZWFyY29hdE5vcm1hbE1hcCxkaXNwbGFjZW1lbnRNYXA6ISFELmRpc3BsYWNlbWVudE1hcCxyb3VnaG5lc3NNYXA6ISFELnJvdWdobmVzc01hcCxtZXRhbG5lc3NNYXA6ISFELm1ldGFsbmVzc01hcCxzcGVjdWxhck1hcDohIUQuc3BlY3VsYXJNYXAsc3BlY3VsYXJJbnRlbnNpdHlNYXA6ISFELnNwZWN1bGFySW50ZW5zaXR5TWFwLHNwZWN1bGFyQ29sb3JNYXA6ISFELnNwZWN1bGFyQ29sb3JNYXAsYWxwaGFNYXA6ISFELmFscGhhTWFwLGFscGhhVGVzdDpELmFscGhhVGVzdD4wLGFscGhhV3JpdGU6RC5hbHBoYVdyaXRlfHxELnRyYW5zcGFyZW50LGdyYWRpZW50TWFwOiEhRC5ncmFkaWVudE1hcCxzaGVlbjpELnNoZWVuPjAsc2hlZW5Db2xvck1hcDohIUQuc2hlZW5Db2xvck1hcCxzaGVlblJvdWdobmVzc01hcDohIUQuc2hlZW5Sb3VnaG5lc3NNYXAsdHJhbnNtaXNzaW9uOkQudHJhbnNtaXNzaW9uPjAsdHJhbnNtaXNzaW9uTWFwOiEhRC50cmFuc21pc3Npb25NYXAsdGhpY2tuZXNzTWFwOiEhRC50aGlja25lc3NNYXAsY29tYmluZTpELmNvbWJpbmUsdmVydGV4VGFuZ2VudHM6ISFELm5vcm1hbE1hcCYmISFfZS5nZW9tZXRyeSYmISFfZS5nZW9tZXRyeS5hdHRyaWJ1dGVzLnRhbmdlbnQsdmVydGV4Q29sb3JzOkQudmVydGV4Q29sb3JzLHZlcnRleEFscGhhczohMD09PUQudmVydGV4Q29sb3JzJiYhIV9lLmdlb21ldHJ5JiYhIV9lLmdlb21ldHJ5LmF0dHJpYnV0ZXMuY29sb3ImJjQ9PT1fZS5nZW9tZXRyeS5hdHRyaWJ1dGVzLmNvbG9yLml0ZW1TaXplLHZlcnRleFV2czohIShELm1hcHx8RC5idW1wTWFwfHxELm5vcm1hbE1hcHx8RC5zcGVjdWxhck1hcHx8RC5hbHBoYU1hcHx8RC5lbWlzc2l2ZU1hcHx8RC5yb3VnaG5lc3NNYXB8fEQubWV0YWxuZXNzTWFwfHxELmNsZWFyY29hdE1hcHx8RC5jbGVhcmNvYXRSb3VnaG5lc3NNYXB8fEQuY2xlYXJjb2F0Tm9ybWFsTWFwfHxELmRpc3BsYWNlbWVudE1hcHx8RC50cmFuc21pc3Npb25NYXB8fEQudGhpY2tuZXNzTWFwfHxELnNwZWN1bGFySW50ZW5zaXR5TWFwfHxELnNwZWN1bGFyQ29sb3JNYXB8fEQuc2hlZW5Db2xvck1hcHx8RC5zaGVlblJvdWdobmVzc01hcCksdXZzVmVydGV4T25seTohKEQubWFwfHxELmJ1bXBNYXB8fEQubm9ybWFsTWFwfHxELnNwZWN1bGFyTWFwfHxELmFscGhhTWFwfHxELmVtaXNzaXZlTWFwfHxELnJvdWdobmVzc01hcHx8RC5tZXRhbG5lc3NNYXB8fEQuY2xlYXJjb2F0Tm9ybWFsTWFwfHxELnRyYW5zbWlzc2lvbj4wfHxELnRyYW5zbWlzc2lvbk1hcHx8RC50aGlja25lc3NNYXB8fEQuc3BlY3VsYXJJbnRlbnNpdHlNYXB8fEQuc3BlY3VsYXJDb2xvck1hcHx8RC5zaGVlbj4wfHxELnNoZWVuQ29sb3JNYXB8fEQuc2hlZW5Sb3VnaG5lc3NNYXB8fCFELmRpc3BsYWNlbWVudE1hcCksZm9nOiEhJCx1c2VGb2c6RC5mb2csZm9nRXhwMjokJiYkLmlzRm9nRXhwMixmbGF0U2hhZGluZzohIUQuZmxhdFNoYWRpbmcsc2l6ZUF0dGVudWF0aW9uOkQuc2l6ZUF0dGVudWF0aW9uLGxvZ2FyaXRobWljRGVwdGhCdWZmZXI6dSxza2lubmluZzohMD09PV9lLmlzU2tpbm5lZE1lc2gmJlNlPjAsbWF4Qm9uZXM6U2UsdXNlVmVydGV4VGV4dHVyZTpwLG1vcnBoVGFyZ2V0czohIV9lLmdlb21ldHJ5JiYhIV9lLmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbixtb3JwaE5vcm1hbHM6ISFfZS5nZW9tZXRyeSYmISFfZS5nZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMubm9ybWFsLG1vcnBoVGFyZ2V0c0NvdW50Ol9lLmdlb21ldHJ5JiZfZS5nZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24/X2UuZ2VvbWV0cnkubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uLmxlbmd0aDowLG51bURpckxpZ2h0czpyZS5kaXJlY3Rpb25hbC5sZW5ndGgsbnVtUG9pbnRMaWdodHM6cmUucG9pbnQubGVuZ3RoLG51bVNwb3RMaWdodHM6cmUuc3BvdC5sZW5ndGgsbnVtUmVjdEFyZWFMaWdodHM6cmUucmVjdEFyZWEubGVuZ3RoLG51bUhlbWlMaWdodHM6cmUuaGVtaS5sZW5ndGgsbnVtRGlyTGlnaHRTaGFkb3dzOnJlLmRpcmVjdGlvbmFsU2hhZG93TWFwLmxlbmd0aCxudW1Qb2ludExpZ2h0U2hhZG93czpyZS5wb2ludFNoYWRvd01hcC5sZW5ndGgsbnVtU3BvdExpZ2h0U2hhZG93czpyZS5zcG90U2hhZG93TWFwLmxlbmd0aCxudW1DbGlwcGluZ1BsYW5lczphLm51bVBsYW5lcyxudW1DbGlwSW50ZXJzZWN0aW9uOmEubnVtSW50ZXJzZWN0aW9uLGRpdGhlcmluZzpELmRpdGhlcmluZyxzaGFkb3dNYXBFbmFibGVkOm4uc2hhZG93TWFwLmVuYWJsZWQmJmNlLmxlbmd0aD4wLHNoYWRvd01hcFR5cGU6bi5zaGFkb3dNYXAudHlwZSx0b25lTWFwcGluZzpELnRvbmVNYXBwZWQ/bi50b25lTWFwcGluZzp5cCxwaHlzaWNhbGx5Q29ycmVjdExpZ2h0czpuLnBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzLHByZW11bHRpcGxpZWRBbHBoYTpELnByZW11bHRpcGxpZWRBbHBoYSxkb3VibGVTaWRlZDpELnNpZGU9PT1aMCxmbGlwU2lkZWQ6RC5zaWRlPT09Ym8sZGVwdGhQYWNraW5nOnZvaWQgMCE9PUQuZGVwdGhQYWNraW5nJiZELmRlcHRoUGFja2luZyxpbmRleDBBdHRyaWJ1dGVOYW1lOkQuaW5kZXgwQXR0cmlidXRlTmFtZSxleHRlbnNpb25EZXJpdmF0aXZlczpELmV4dGVuc2lvbnMmJkQuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlcyxleHRlbnNpb25GcmFnRGVwdGg6RC5leHRlbnNpb25zJiZELmV4dGVuc2lvbnMuZnJhZ0RlcHRoLGV4dGVuc2lvbkRyYXdCdWZmZXJzOkQuZXh0ZW5zaW9ucyYmRC5leHRlbnNpb25zLmRyYXdCdWZmZXJzLGV4dGVuc2lvblNoYWRlclRleHR1cmVMT0Q6RC5leHRlbnNpb25zJiZELmV4dGVuc2lvbnMuc2hhZGVyVGV4dHVyZUxPRCxyZW5kZXJlckV4dGVuc2lvbkZyYWdEZXB0aDpkfHxpLmhhcygiRVhUX2ZyYWdfZGVwdGgiKSxyZW5kZXJlckV4dGVuc2lvbkRyYXdCdWZmZXJzOmR8fGkuaGFzKCJXRUJHTF9kcmF3X2J1ZmZlcnMiKSxyZW5kZXJlckV4dGVuc2lvblNoYWRlclRleHR1cmVMb2Q6ZHx8aS5oYXMoIkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKSxjdXN0b21Qcm9ncmFtQ2FjaGVLZXk6RC5jdXN0b21Qcm9ncmFtQ2FjaGVLZXkoKX19LGdldFByb2dyYW1DYWNoZUtleTpmdW5jdGlvbihEKXtsZXQgcmU9W107aWYoRC5zaGFkZXJJRD9yZS5wdXNoKEQuc2hhZGVySUQpOihyZS5wdXNoKEQuY3VzdG9tVmVydGV4U2hhZGVySUQpLHJlLnB1c2goRC5jdXN0b21GcmFnbWVudFNoYWRlcklEKSksdm9pZCAwIT09RC5kZWZpbmVzKWZvcihsZXQgY2UgaW4gRC5kZWZpbmVzKXJlLnB1c2goY2UpLHJlLnB1c2goRC5kZWZpbmVzW2NlXSk7cmV0dXJuITE9PT1ELmlzUmF3U2hhZGVyTWF0ZXJpYWwmJihmdW5jdGlvbihELHJlKXtELnB1c2gocmUucHJlY2lzaW9uKSxELnB1c2gocmUub3V0cHV0RW5jb2RpbmcpLEQucHVzaChyZS5lbnZNYXBNb2RlKSxELnB1c2gocmUuY29tYmluZSksRC5wdXNoKHJlLnZlcnRleFV2cyksRC5wdXNoKHJlLmZvZ0V4cDIpLEQucHVzaChyZS5zaXplQXR0ZW51YXRpb24pLEQucHVzaChyZS5tYXhCb25lcyksRC5wdXNoKHJlLm1vcnBoVGFyZ2V0c0NvdW50KSxELnB1c2gocmUubnVtRGlyTGlnaHRzKSxELnB1c2gocmUubnVtUG9pbnRMaWdodHMpLEQucHVzaChyZS5udW1TcG90TGlnaHRzKSxELnB1c2gocmUubnVtSGVtaUxpZ2h0cyksRC5wdXNoKHJlLm51bVJlY3RBcmVhTGlnaHRzKSxELnB1c2gocmUubnVtRGlyTGlnaHRTaGFkb3dzKSxELnB1c2gocmUubnVtUG9pbnRMaWdodFNoYWRvd3MpLEQucHVzaChyZS5udW1TcG90TGlnaHRTaGFkb3dzKSxELnB1c2gocmUuc2hhZG93TWFwVHlwZSksRC5wdXNoKHJlLnRvbmVNYXBwaW5nKSxELnB1c2gocmUubnVtQ2xpcHBpbmdQbGFuZXMpLEQucHVzaChyZS5udW1DbGlwSW50ZXJzZWN0aW9uKSxELnB1c2gocmUuYWxwaGFXcml0ZSl9KHJlLEQpLGZ1bmN0aW9uKEQscmUpe3MuZGlzYWJsZUFsbCgpLHJlLmlzV2ViR0wyJiZzLmVuYWJsZSgwKSxyZS5zdXBwb3J0c1ZlcnRleFRleHR1cmVzJiZzLmVuYWJsZSgxKSxyZS5pbnN0YW5jaW5nJiZzLmVuYWJsZSgyKSxyZS5pbnN0YW5jaW5nQ29sb3ImJnMuZW5hYmxlKDMpLHJlLm1hcCYmcy5lbmFibGUoNCkscmUubWF0Y2FwJiZzLmVuYWJsZSg1KSxyZS5lbnZNYXAmJnMuZW5hYmxlKDYpLHJlLmVudk1hcEN1YmVVViYmcy5lbmFibGUoNykscmUubGlnaHRNYXAmJnMuZW5hYmxlKDgpLHJlLmFvTWFwJiZzLmVuYWJsZSg5KSxyZS5lbWlzc2l2ZU1hcCYmcy5lbmFibGUoMTApLHJlLmJ1bXBNYXAmJnMuZW5hYmxlKDExKSxyZS5ub3JtYWxNYXAmJnMuZW5hYmxlKDEyKSxyZS5vYmplY3RTcGFjZU5vcm1hbE1hcCYmcy5lbmFibGUoMTMpLHJlLnRhbmdlbnRTcGFjZU5vcm1hbE1hcCYmcy5lbmFibGUoMTQpLHJlLmNsZWFyY29hdCYmcy5lbmFibGUoMTUpLHJlLmNsZWFyY29hdE1hcCYmcy5lbmFibGUoMTYpLHJlLmNsZWFyY29hdFJvdWdobmVzc01hcCYmcy5lbmFibGUoMTcpLHJlLmNsZWFyY29hdE5vcm1hbE1hcCYmcy5lbmFibGUoMTgpLHJlLmRpc3BsYWNlbWVudE1hcCYmcy5lbmFibGUoMTkpLHJlLnNwZWN1bGFyTWFwJiZzLmVuYWJsZSgyMCkscmUucm91Z2huZXNzTWFwJiZzLmVuYWJsZSgyMSkscmUubWV0YWxuZXNzTWFwJiZzLmVuYWJsZSgyMikscmUuZ3JhZGllbnRNYXAmJnMuZW5hYmxlKDIzKSxyZS5hbHBoYU1hcCYmcy5lbmFibGUoMjQpLHJlLmFscGhhVGVzdCYmcy5lbmFibGUoMjUpLHJlLnZlcnRleENvbG9ycyYmcy5lbmFibGUoMjYpLHJlLnZlcnRleEFscGhhcyYmcy5lbmFibGUoMjcpLHJlLnZlcnRleFV2cyYmcy5lbmFibGUoMjgpLHJlLnZlcnRleFRhbmdlbnRzJiZzLmVuYWJsZSgyOSkscmUudXZzVmVydGV4T25seSYmcy5lbmFibGUoMzApLHJlLmZvZyYmcy5lbmFibGUoMzEpLEQucHVzaChzLm1hc2spLHMuZGlzYWJsZUFsbCgpLHJlLnVzZUZvZyYmcy5lbmFibGUoMCkscmUuZmxhdFNoYWRpbmcmJnMuZW5hYmxlKDEpLHJlLmxvZ2FyaXRobWljRGVwdGhCdWZmZXImJnMuZW5hYmxlKDIpLHJlLnNraW5uaW5nJiZzLmVuYWJsZSgzKSxyZS51c2VWZXJ0ZXhUZXh0dXJlJiZzLmVuYWJsZSg0KSxyZS5tb3JwaFRhcmdldHMmJnMuZW5hYmxlKDUpLHJlLm1vcnBoTm9ybWFscyYmcy5lbmFibGUoNikscmUucHJlbXVsdGlwbGllZEFscGhhJiZzLmVuYWJsZSg3KSxyZS5zaGFkb3dNYXBFbmFibGVkJiZzLmVuYWJsZSg4KSxyZS5waHlzaWNhbGx5Q29ycmVjdExpZ2h0cyYmcy5lbmFibGUoOSkscmUuZG91YmxlU2lkZWQmJnMuZW5hYmxlKDEwKSxyZS5mbGlwU2lkZWQmJnMuZW5hYmxlKDExKSxyZS5kZXB0aFBhY2tpbmcmJnMuZW5hYmxlKDEyKSxyZS5kaXRoZXJpbmcmJnMuZW5hYmxlKDEzKSxyZS5zcGVjdWxhckludGVuc2l0eU1hcCYmcy5lbmFibGUoMTQpLHJlLnNwZWN1bGFyQ29sb3JNYXAmJnMuZW5hYmxlKDE1KSxyZS50cmFuc21pc3Npb24mJnMuZW5hYmxlKDE2KSxyZS50cmFuc21pc3Npb25NYXAmJnMuZW5hYmxlKDE3KSxyZS50aGlja25lc3NNYXAmJnMuZW5hYmxlKDE4KSxyZS5zaGVlbiYmcy5lbmFibGUoMTkpLHJlLnNoZWVuQ29sb3JNYXAmJnMuZW5hYmxlKDIwKSxyZS5zaGVlblJvdWdobmVzc01hcCYmcy5lbmFibGUoMjEpLHJlLmRlY29kZVZpZGVvVGV4dHVyZSYmcy5lbmFibGUoMjIpLEQucHVzaChzLm1hc2spfShyZSxEKSxyZS5wdXNoKG4ub3V0cHV0RW5jb2RpbmcpKSxyZS5wdXNoKEQuY3VzdG9tUHJvZ3JhbUNhY2hlS2V5KSxyZS5qb2luKCl9LGdldFVuaWZvcm1zOmZ1bmN0aW9uKEQpe2xldCBjZSxyZT1NW0QudHlwZV07cmV0dXJuIGNlPXJlP2RQZS5jbG9uZShqY1tyZV0udW5pZm9ybXMpOkQudW5pZm9ybXMsY2V9LGFjcXVpcmVQcm9ncmFtOmZ1bmN0aW9uKEQscmUpe2xldCBjZTtmb3IobGV0IGhlPTAsX2U9Yy5sZW5ndGg7aGU8X2U7aGUrKyl7bGV0ICQ9Y1toZV07aWYoJC5jYWNoZUtleT09PXJlKXtjZT0kLCsrY2UudXNlZFRpbWVzO2JyZWFrfX1yZXR1cm4gdm9pZCAwPT09Y2UmJihjZT1uZXcgZDJlKG4scmUsRCxvKSxjLnB1c2goY2UpKSxjZX0scmVsZWFzZVByb2dyYW06ZnVuY3Rpb24oRCl7aWYoMD09LS1ELnVzZWRUaW1lcyl7bGV0IHJlPWMuaW5kZXhPZihEKTtjW3JlXT1jW2MubGVuZ3RoLTFdLGMucG9wKCksRC5kZXN0cm95KCl9fSxyZWxlYXNlU2hhZGVyQ2FjaGU6ZnVuY3Rpb24oRCl7bC5yZW1vdmUoRCl9LHByb2dyYW1zOmMsZGlzcG9zZTpmdW5jdGlvbigpe2wuZGlzcG9zZSgpfX19ZnVuY3Rpb24gaDJlKCl7bGV0IG49bmV3IFdlYWtNYXA7cmV0dXJue2dldDpmdW5jdGlvbihvKXtsZXQgYT1uLmdldChvKTtyZXR1cm4gdm9pZCAwPT09YSYmKGE9e30sbi5zZXQobyxhKSksYX0scmVtb3ZlOmZ1bmN0aW9uKG8pe24uZGVsZXRlKG8pfSx1cGRhdGU6ZnVuY3Rpb24obyxhLHMpe24uZ2V0KG8pW2FdPXN9LGRpc3Bvc2U6ZnVuY3Rpb24oKXtuPW5ldyBXZWFrTWFwfX19ZnVuY3Rpb24gbTJlKG4sdCl7cmV0dXJuIG4uZ3JvdXBPcmRlciE9PXQuZ3JvdXBPcmRlcj9uLmdyb3VwT3JkZXItdC5ncm91cE9yZGVyOm4ucmVuZGVyT3JkZXIhPT10LnJlbmRlck9yZGVyP24ucmVuZGVyT3JkZXItdC5yZW5kZXJPcmRlcjpuLm1hdGVyaWFsLmlkIT09dC5tYXRlcmlhbC5pZD9uLm1hdGVyaWFsLmlkLXQubWF0ZXJpYWwuaWQ6bi56IT09dC56P24uei10Lno6bi5pZC10LmlkfWZ1bmN0aW9uIGtlZShuLHQpe3JldHVybiBuLmdyb3VwT3JkZXIhPT10Lmdyb3VwT3JkZXI/bi5ncm91cE9yZGVyLXQuZ3JvdXBPcmRlcjpuLnJlbmRlck9yZGVyIT09dC5yZW5kZXJPcmRlcj9uLnJlbmRlck9yZGVyLXQucmVuZGVyT3JkZXI6bi56IT09dC56P3Quei1uLno6bi5pZC10LmlkfWZ1bmN0aW9uIE9lZSgpe2xldCBuPVtdLHQ9MCxlPVtdLGk9W10scj1bXTtmdW5jdGlvbiBhKHUscCxoLG0sXyxNKXtsZXQgeT1uW3RdO3JldHVybiB2b2lkIDA9PT15Pyh5PXtpZDp1LmlkLG9iamVjdDp1LGdlb21ldHJ5OnAsbWF0ZXJpYWw6aCxncm91cE9yZGVyOm0scmVuZGVyT3JkZXI6dS5yZW5kZXJPcmRlcix6Ol8sZ3JvdXA6TX0sblt0XT15KTooeS5pZD11LmlkLHkub2JqZWN0PXUseS5nZW9tZXRyeT1wLHkubWF0ZXJpYWw9aCx5Lmdyb3VwT3JkZXI9bSx5LnJlbmRlck9yZGVyPXUucmVuZGVyT3JkZXIseS56PV8seS5ncm91cD1NKSx0KysseX1yZXR1cm57b3BhcXVlOmUsdHJhbnNtaXNzaXZlOmksdHJhbnNwYXJlbnQ6cixpbml0OmZ1bmN0aW9uKCl7dD0wLGUubGVuZ3RoPTAsaS5sZW5ndGg9MCxyLmxlbmd0aD0wfSxwdXNoOmZ1bmN0aW9uKHUscCxoLG0sXyxNKXtsZXQgeT1hKHUscCxoLG0sXyxNKTtoLnRyYW5zbWlzc2lvbj4wP2kucHVzaCh5KTohMD09PWgudHJhbnNwYXJlbnQ/ci5wdXNoKHkpOmUucHVzaCh5KX0sdW5zaGlmdDpmdW5jdGlvbih1LHAsaCxtLF8sTSl7bGV0IHk9YSh1LHAsaCxtLF8sTSk7aC50cmFuc21pc3Npb24+MD9pLnVuc2hpZnQoeSk6ITA9PT1oLnRyYW5zcGFyZW50P3IudW5zaGlmdCh5KTplLnVuc2hpZnQoeSl9LGZpbmlzaDpmdW5jdGlvbigpe2ZvcihsZXQgdT10LHA9bi5sZW5ndGg7dTxwO3UrKyl7bGV0IGg9blt1XTtpZihudWxsPT09aC5pZClicmVhaztoLmlkPW51bGwsaC5vYmplY3Q9bnVsbCxoLmdlb21ldHJ5PW51bGwsaC5tYXRlcmlhbD1udWxsLGguZ3JvdXA9bnVsbH19LHNvcnQ6ZnVuY3Rpb24odSxwKXtlLmxlbmd0aD4xJiZlLnNvcnQodXx8bTJlKSxpLmxlbmd0aD4xJiZpLnNvcnQocHx8a2VlKSxyLmxlbmd0aD4xJiZyLnNvcnQocHx8a2VlKX19fWZ1bmN0aW9uIGYyZSgpe2xldCBuPW5ldyBXZWFrTWFwO3JldHVybntnZXQ6ZnVuY3Rpb24oaSxyKXtsZXQgbztyZXR1cm4hMT09PW4uaGFzKGkpPyhvPW5ldyBPZWUsbi5zZXQoaSxbb10pKTpyPj1uLmdldChpKS5sZW5ndGg/KG89bmV3IE9lZSxuLmdldChpKS5wdXNoKG8pKTpvPW4uZ2V0KGkpW3JdLG99LGRpc3Bvc2U6ZnVuY3Rpb24oKXtuPW5ldyBXZWFrTWFwfX19ZnVuY3Rpb24gZzJlKCl7bGV0IG49e307cmV0dXJue2dldDpmdW5jdGlvbih0KXtpZih2b2lkIDAhPT1uW3QuaWRdKXJldHVybiBuW3QuaWRdO2xldCBlO3N3aXRjaCh0LnR5cGUpe2Nhc2UiRGlyZWN0aW9uYWxMaWdodCI6ZT17ZGlyZWN0aW9uOm5ldyBLLGNvbG9yOm5ldyBzbn07YnJlYWs7Y2FzZSJTcG90TGlnaHQiOmU9e3Bvc2l0aW9uOm5ldyBLLGRpcmVjdGlvbjpuZXcgSyxjb2xvcjpuZXcgc24sZGlzdGFuY2U6MCxjb25lQ29zOjAscGVudW1icmFDb3M6MCxkZWNheTowfTticmVhaztjYXNlIlBvaW50TGlnaHQiOmU9e3Bvc2l0aW9uOm5ldyBLLGNvbG9yOm5ldyBzbixkaXN0YW5jZTowLGRlY2F5OjB9O2JyZWFrO2Nhc2UiSGVtaXNwaGVyZUxpZ2h0IjplPXtkaXJlY3Rpb246bmV3IEssc2t5Q29sb3I6bmV3IHNuLGdyb3VuZENvbG9yOm5ldyBzbn07YnJlYWs7Y2FzZSJSZWN0QXJlYUxpZ2h0IjplPXtjb2xvcjpuZXcgc24scG9zaXRpb246bmV3IEssaGFsZldpZHRoOm5ldyBLLGhhbGZIZWlnaHQ6bmV3IEt9fXJldHVybiBuW3QuaWRdPWUsZX19fXZhciBiMmU9MDtmdW5jdGlvbiB2MmUobix0KXtyZXR1cm4odC5jYXN0U2hhZG93PzE6MCktKG4uY2FzdFNoYWRvdz8xOjApfWZ1bmN0aW9uIHkyZShuLHQpe2xldCBlPW5ldyBnMmUsaT1mdW5jdGlvbigpe2xldCBuPXt9O3JldHVybntnZXQ6ZnVuY3Rpb24odCl7aWYodm9pZCAwIT09blt0LmlkXSlyZXR1cm4gblt0LmlkXTtsZXQgZTtzd2l0Y2godC50eXBlKXtjYXNlIkRpcmVjdGlvbmFsTGlnaHQiOmNhc2UiU3BvdExpZ2h0IjplPXtzaGFkb3dCaWFzOjAsc2hhZG93Tm9ybWFsQmlhczowLHNoYWRvd1JhZGl1czoxLHNoYWRvd01hcFNpemU6bmV3ICRlfTticmVhaztjYXNlIlBvaW50TGlnaHQiOmU9e3NoYWRvd0JpYXM6MCxzaGFkb3dOb3JtYWxCaWFzOjAsc2hhZG93UmFkaXVzOjEsc2hhZG93TWFwU2l6ZTpuZXcgJGUsc2hhZG93Q2FtZXJhTmVhcjoxLHNoYWRvd0NhbWVyYUZhcjoxZTN9fXJldHVybiBuW3QuaWRdPWUsZX19fSgpLHI9e3ZlcnNpb246MCxoYXNoOntkaXJlY3Rpb25hbExlbmd0aDotMSxwb2ludExlbmd0aDotMSxzcG90TGVuZ3RoOi0xLHJlY3RBcmVhTGVuZ3RoOi0xLGhlbWlMZW5ndGg6LTEsbnVtRGlyZWN0aW9uYWxTaGFkb3dzOi0xLG51bVBvaW50U2hhZG93czotMSxudW1TcG90U2hhZG93czotMX0sYW1iaWVudDpbMCwwLDBdLHByb2JlOltdLGRpcmVjdGlvbmFsOltdLGRpcmVjdGlvbmFsU2hhZG93OltdLGRpcmVjdGlvbmFsU2hhZG93TWFwOltdLGRpcmVjdGlvbmFsU2hhZG93TWF0cml4OltdLHNwb3Q6W10sc3BvdFNoYWRvdzpbXSxzcG90U2hhZG93TWFwOltdLHNwb3RTaGFkb3dNYXRyaXg6W10scmVjdEFyZWE6W10scmVjdEFyZWFMVEMxOm51bGwscmVjdEFyZWFMVEMyOm51bGwscG9pbnQ6W10scG9pbnRTaGFkb3c6W10scG9pbnRTaGFkb3dNYXA6W10scG9pbnRTaGFkb3dNYXRyaXg6W10saGVtaTpbXX07Zm9yKGxldCBkPTA7ZDw5O2QrKylyLnByb2JlLnB1c2gobmV3IEspO2xldCBvPW5ldyBLLGE9bmV3IHZuLHM9bmV3IHZuO3JldHVybntzZXR1cDpmdW5jdGlvbihkLHUpe2xldCBwPTAsaD0wLG09MDtmb3IobGV0IFFlPTA7UWU8OTtRZSsrKXIucHJvYmVbUWVdLnNldCgwLDAsMCk7bGV0IF89MCxNPTAseT0wLHg9MCxSPTAsST0wLEI9MCxlZT0wO2Quc29ydCh2MmUpO2xldCBRPSEwIT09dT9NYXRoLlBJOjE7Zm9yKGxldCBRZT0wLEFlPWQubGVuZ3RoO1FlPEFlO1FlKyspe2xldCBEPWRbUWVdLHJlPUQuY29sb3IsY2U9RC5pbnRlbnNpdHksaGU9RC5kaXN0YW5jZSxfZT1ELnNoYWRvdyYmRC5zaGFkb3cubWFwP0Quc2hhZG93Lm1hcC50ZXh0dXJlOm51bGw7aWYoRC5pc0FtYmllbnRMaWdodClwKz1yZS5yKmNlKlEsaCs9cmUuZypjZSpRLG0rPXJlLmIqY2UqUTtlbHNlIGlmKEQuaXNMaWdodFByb2JlKWZvcihsZXQgJD0wOyQ8OTskKyspci5wcm9iZVskXS5hZGRTY2FsZWRWZWN0b3IoRC5zaC5jb2VmZmljaWVudHNbJF0sY2UpO2Vsc2UgaWYoRC5pc0RpcmVjdGlvbmFsTGlnaHQpe2xldCAkPWUuZ2V0KEQpO2lmKCQuY29sb3IuY29weShELmNvbG9yKS5tdWx0aXBseVNjYWxhcihELmludGVuc2l0eSpRKSxELmNhc3RTaGFkb3cpe2xldCBkZT1ELnNoYWRvdyxwZT1pLmdldChEKTtwZS5zaGFkb3dCaWFzPWRlLmJpYXMscGUuc2hhZG93Tm9ybWFsQmlhcz1kZS5ub3JtYWxCaWFzLHBlLnNoYWRvd1JhZGl1cz1kZS5yYWRpdXMscGUuc2hhZG93TWFwU2l6ZT1kZS5tYXBTaXplLHIuZGlyZWN0aW9uYWxTaGFkb3dbX109cGUsci5kaXJlY3Rpb25hbFNoYWRvd01hcFtfXT1fZSxyLmRpcmVjdGlvbmFsU2hhZG93TWF0cml4W19dPUQuc2hhZG93Lm1hdHJpeCxJKyt9ci5kaXJlY3Rpb25hbFtfXT0kLF8rK31lbHNlIGlmKEQuaXNTcG90TGlnaHQpe2xldCAkPWUuZ2V0KEQpO2lmKCQucG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKEQubWF0cml4V29ybGQpLCQuY29sb3IuY29weShyZSkubXVsdGlwbHlTY2FsYXIoY2UqUSksJC5kaXN0YW5jZT1oZSwkLmNvbmVDb3M9TWF0aC5jb3MoRC5hbmdsZSksJC5wZW51bWJyYUNvcz1NYXRoLmNvcyhELmFuZ2xlKigxLUQucGVudW1icmEpKSwkLmRlY2F5PUQuZGVjYXksRC5jYXN0U2hhZG93KXtsZXQgZGU9RC5zaGFkb3cscGU9aS5nZXQoRCk7cGUuc2hhZG93Qmlhcz1kZS5iaWFzLHBlLnNoYWRvd05vcm1hbEJpYXM9ZGUubm9ybWFsQmlhcyxwZS5zaGFkb3dSYWRpdXM9ZGUucmFkaXVzLHBlLnNoYWRvd01hcFNpemU9ZGUubWFwU2l6ZSxyLnNwb3RTaGFkb3dbeV09cGUsci5zcG90U2hhZG93TWFwW3ldPV9lLHIuc3BvdFNoYWRvd01hdHJpeFt5XT1ELnNoYWRvdy5tYXRyaXgsZWUrK31yLnNwb3RbeV09JCx5Kyt9ZWxzZSBpZihELmlzUmVjdEFyZWFMaWdodCl7bGV0ICQ9ZS5nZXQoRCk7JC5jb2xvci5jb3B5KHJlKS5tdWx0aXBseVNjYWxhcihjZSksJC5oYWxmV2lkdGguc2V0KC41KkQud2lkdGgsMCwwKSwkLmhhbGZIZWlnaHQuc2V0KDAsLjUqRC5oZWlnaHQsMCksci5yZWN0QXJlYVt4XT0kLHgrK31lbHNlIGlmKEQuaXNQb2ludExpZ2h0KXtsZXQgJD1lLmdldChEKTtpZigkLmNvbG9yLmNvcHkoRC5jb2xvcikubXVsdGlwbHlTY2FsYXIoRC5pbnRlbnNpdHkqUSksJC5kaXN0YW5jZT1ELmRpc3RhbmNlLCQuZGVjYXk9RC5kZWNheSxELmNhc3RTaGFkb3cpe2xldCBkZT1ELnNoYWRvdyxwZT1pLmdldChEKTtwZS5zaGFkb3dCaWFzPWRlLmJpYXMscGUuc2hhZG93Tm9ybWFsQmlhcz1kZS5ub3JtYWxCaWFzLHBlLnNoYWRvd1JhZGl1cz1kZS5yYWRpdXMscGUuc2hhZG93TWFwU2l6ZT1kZS5tYXBTaXplLHBlLnNoYWRvd0NhbWVyYU5lYXI9ZGUuY2FtZXJhLm5lYXIscGUuc2hhZG93Q2FtZXJhRmFyPWRlLmNhbWVyYS5mYXIsci5wb2ludFNoYWRvd1tNXT1wZSxyLnBvaW50U2hhZG93TWFwW01dPV9lLHIucG9pbnRTaGFkb3dNYXRyaXhbTV09RC5zaGFkb3cubWF0cml4LEIrK31yLnBvaW50W01dPSQsTSsrfWVsc2UgaWYoRC5pc0hlbWlzcGhlcmVMaWdodCl7bGV0ICQ9ZS5nZXQoRCk7JC5za3lDb2xvci5jb3B5KEQuY29sb3IpLm11bHRpcGx5U2NhbGFyKGNlKlEpLCQuZ3JvdW5kQ29sb3IuY29weShELmdyb3VuZENvbG9yKS5tdWx0aXBseVNjYWxhcihjZSpRKSxyLmhlbWlbUl09JCxSKyt9fXg+MCYmKHQuaXNXZWJHTDJ8fCEwPT09bi5oYXMoIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpPyhyLnJlY3RBcmVhTFRDMT1SdC5MVENfRkxPQVRfMSxyLnJlY3RBcmVhTFRDMj1SdC5MVENfRkxPQVRfMik6ITA9PT1uLmhhcygiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKT8oci5yZWN0QXJlYUxUQzE9UnQuTFRDX0hBTEZfMSxyLnJlY3RBcmVhTFRDMj1SdC5MVENfSEFMRl8yKTpjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBVbmFibGUgdG8gdXNlIFJlY3RBcmVhTGlnaHQuIE1pc3NpbmcgV2ViR0wgZXh0ZW5zaW9ucy4iKSksci5hbWJpZW50WzBdPXAsci5hbWJpZW50WzFdPWgsci5hbWJpZW50WzJdPW07bGV0IHdlPXIuaGFzaDsod2UuZGlyZWN0aW9uYWxMZW5ndGghPT1ffHx3ZS5wb2ludExlbmd0aCE9PU18fHdlLnNwb3RMZW5ndGghPT15fHx3ZS5yZWN0QXJlYUxlbmd0aCE9PXh8fHdlLmhlbWlMZW5ndGghPT1SfHx3ZS5udW1EaXJlY3Rpb25hbFNoYWRvd3MhPT1JfHx3ZS5udW1Qb2ludFNoYWRvd3MhPT1CfHx3ZS5udW1TcG90U2hhZG93cyE9PWVlKSYmKHIuZGlyZWN0aW9uYWwubGVuZ3RoPV8sci5zcG90Lmxlbmd0aD15LHIucmVjdEFyZWEubGVuZ3RoPXgsci5wb2ludC5sZW5ndGg9TSxyLmhlbWkubGVuZ3RoPVIsci5kaXJlY3Rpb25hbFNoYWRvdy5sZW5ndGg9SSxyLmRpcmVjdGlvbmFsU2hhZG93TWFwLmxlbmd0aD1JLHIucG9pbnRTaGFkb3cubGVuZ3RoPUIsci5wb2ludFNoYWRvd01hcC5sZW5ndGg9QixyLnNwb3RTaGFkb3cubGVuZ3RoPWVlLHIuc3BvdFNoYWRvd01hcC5sZW5ndGg9ZWUsci5kaXJlY3Rpb25hbFNoYWRvd01hdHJpeC5sZW5ndGg9SSxyLnBvaW50U2hhZG93TWF0cml4Lmxlbmd0aD1CLHIuc3BvdFNoYWRvd01hdHJpeC5sZW5ndGg9ZWUsd2UuZGlyZWN0aW9uYWxMZW5ndGg9Xyx3ZS5wb2ludExlbmd0aD1NLHdlLnNwb3RMZW5ndGg9eSx3ZS5yZWN0QXJlYUxlbmd0aD14LHdlLmhlbWlMZW5ndGg9Uix3ZS5udW1EaXJlY3Rpb25hbFNoYWRvd3M9SSx3ZS5udW1Qb2ludFNoYWRvd3M9Qix3ZS5udW1TcG90U2hhZG93cz1lZSxyLnZlcnNpb249YjJlKyspfSxzZXR1cFZpZXc6ZnVuY3Rpb24oZCx1KXtsZXQgcD0wLGg9MCxtPTAsXz0wLE09MCx5PXUubWF0cml4V29ybGRJbnZlcnNlO2ZvcihsZXQgeD0wLFI9ZC5sZW5ndGg7eDxSO3grKyl7bGV0IEk9ZFt4XTtpZihJLmlzRGlyZWN0aW9uYWxMaWdodCl7bGV0IEI9ci5kaXJlY3Rpb25hbFtwXTtCLmRpcmVjdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oSS5tYXRyaXhXb3JsZCksby5zZXRGcm9tTWF0cml4UG9zaXRpb24oSS50YXJnZXQubWF0cml4V29ybGQpLEIuZGlyZWN0aW9uLnN1YihvKSxCLmRpcmVjdGlvbi50cmFuc2Zvcm1EaXJlY3Rpb24oeSkscCsrfWVsc2UgaWYoSS5pc1Nwb3RMaWdodCl7bGV0IEI9ci5zcG90W21dO0IucG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKEkubWF0cml4V29ybGQpLEIucG9zaXRpb24uYXBwbHlNYXRyaXg0KHkpLEIuZGlyZWN0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihJLm1hdHJpeFdvcmxkKSxvLnNldEZyb21NYXRyaXhQb3NpdGlvbihJLnRhcmdldC5tYXRyaXhXb3JsZCksQi5kaXJlY3Rpb24uc3ViKG8pLEIuZGlyZWN0aW9uLnRyYW5zZm9ybURpcmVjdGlvbih5KSxtKyt9ZWxzZSBpZihJLmlzUmVjdEFyZWFMaWdodCl7bGV0IEI9ci5yZWN0QXJlYVtfXTtCLnBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihJLm1hdHJpeFdvcmxkKSxCLnBvc2l0aW9uLmFwcGx5TWF0cml4NCh5KSxzLmlkZW50aXR5KCksYS5jb3B5KEkubWF0cml4V29ybGQpLGEucHJlbXVsdGlwbHkoeSkscy5leHRyYWN0Um90YXRpb24oYSksQi5oYWxmV2lkdGguc2V0KC41Kkkud2lkdGgsMCwwKSxCLmhhbGZIZWlnaHQuc2V0KDAsLjUqSS5oZWlnaHQsMCksQi5oYWxmV2lkdGguYXBwbHlNYXRyaXg0KHMpLEIuaGFsZkhlaWdodC5hcHBseU1hdHJpeDQocyksXysrfWVsc2UgaWYoSS5pc1BvaW50TGlnaHQpe2xldCBCPXIucG9pbnRbaF07Qi5wb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oSS5tYXRyaXhXb3JsZCksQi5wb3NpdGlvbi5hcHBseU1hdHJpeDQoeSksaCsrfWVsc2UgaWYoSS5pc0hlbWlzcGhlcmVMaWdodCl7bGV0IEI9ci5oZW1pW01dO0IuZGlyZWN0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihJLm1hdHJpeFdvcmxkKSxCLmRpcmVjdGlvbi50cmFuc2Zvcm1EaXJlY3Rpb24oeSksQi5kaXJlY3Rpb24ubm9ybWFsaXplKCksTSsrfX19LHN0YXRlOnJ9fWZ1bmN0aW9uIEZlZShuLHQpe2xldCBlPW5ldyB5MmUobix0KSxpPVtdLHI9W107cmV0dXJue2luaXQ6ZnVuY3Rpb24oKXtpLmxlbmd0aD0wLHIubGVuZ3RoPTB9LHN0YXRlOntsaWdodHNBcnJheTppLHNoYWRvd3NBcnJheTpyLGxpZ2h0czplfSxzZXR1cExpZ2h0czpmdW5jdGlvbih1KXtlLnNldHVwKGksdSl9LHNldHVwTGlnaHRzVmlldzpmdW5jdGlvbih1KXtlLnNldHVwVmlldyhpLHUpfSxwdXNoTGlnaHQ6ZnVuY3Rpb24odSl7aS5wdXNoKHUpfSxwdXNoU2hhZG93OmZ1bmN0aW9uKHUpe3IucHVzaCh1KX19fWZ1bmN0aW9uIHgyZShuLHQpe2xldCBlPW5ldyBXZWFrTWFwO3JldHVybntnZXQ6ZnVuY3Rpb24obyxhPTApe2xldCBzO3JldHVybiExPT09ZS5oYXMobyk/KHM9bmV3IEZlZShuLHQpLGUuc2V0KG8sW3NdKSk6YT49ZS5nZXQobykubGVuZ3RoPyhzPW5ldyBGZWUobix0KSxlLmdldChvKS5wdXNoKHMpKTpzPWUuZ2V0KG8pW2FdLHN9LGRpc3Bvc2U6ZnVuY3Rpb24oKXtlPW5ldyBXZWFrTWFwfX19dmFyIFBJPWNsYXNzIGV4dGVuZHMgRm97Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2hEZXB0aE1hdGVyaWFsIix0aGlzLmRlcHRoUGFja2luZz0zMjAwLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy5mb2c9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRlcHRoUGFja2luZz10LmRlcHRoUGFja2luZyx0aGlzLm1hcD10Lm1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5kaXNwbGFjZW1lbnRNYXA9dC5kaXNwbGFjZW1lbnRNYXAsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT10LmRpc3BsYWNlbWVudFNjYWxlLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMsdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpc319O1BJLnByb3RvdHlwZS5pc01lc2hEZXB0aE1hdGVyaWFsPSEwO3ZhciBrST1jbGFzcyBleHRlbmRzIEZve2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoRGlzdGFuY2VNYXRlcmlhbCIsdGhpcy5yZWZlcmVuY2VQb3NpdGlvbj1uZXcgSyx0aGlzLm5lYXJEaXN0YW5jZT0xLHRoaXMuZmFyRGlzdGFuY2U9MWUzLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMuZm9nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5yZWZlcmVuY2VQb3NpdGlvbi5jb3B5KHQucmVmZXJlbmNlUG9zaXRpb24pLHRoaXMubmVhckRpc3RhbmNlPXQubmVhckRpc3RhbmNlLHRoaXMuZmFyRGlzdGFuY2U9dC5mYXJEaXN0YW5jZSx0aGlzLm1hcD10Lm1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5kaXNwbGFjZW1lbnRNYXA9dC5kaXNwbGFjZW1lbnRNYXAsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT10LmRpc3BsYWNlbWVudFNjYWxlLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMsdGhpc319O2tJLnByb3RvdHlwZS5pc01lc2hEaXN0YW5jZU1hdGVyaWFsPSEwO3ZhciBDMmU9InZvaWQgbWFpbigpIHtcblx0Z2xfUG9zaXRpb24gPSB2ZWM0KCBwb3NpdGlvbiwgMS4wICk7XG59IixNMmU9InVuaWZvcm0gc2FtcGxlcjJEIHNoYWRvd19wYXNzO1xudW5pZm9ybSB2ZWMyIHJlc29sdXRpb247XG51bmlmb3JtIGZsb2F0IHJhZGl1cztcbiNpbmNsdWRlIDxwYWNraW5nPlxudm9pZCBtYWluKCkge1xuXHRjb25zdCBmbG9hdCBzYW1wbGVzID0gZmxvYXQoIFZTTV9TQU1QTEVTICk7XG5cdGZsb2F0IG1lYW4gPSAwLjA7XG5cdGZsb2F0IHNxdWFyZWRfbWVhbiA9IDAuMDtcblx0ZmxvYXQgdXZTdHJpZGUgPSBzYW1wbGVzIDw9IDEuMCA/IDAuMCA6IDIuMCAvICggc2FtcGxlcyAtIDEuMCApO1xuXHRmbG9hdCB1dlN0YXJ0ID0gc2FtcGxlcyA8PSAxLjAgPyAwLjAgOiAtIDEuMDtcblx0Zm9yICggZmxvYXQgaSA9IDAuMDsgaSA8IHNhbXBsZXM7IGkgKysgKSB7XG5cdFx0ZmxvYXQgdXZPZmZzZXQgPSB1dlN0YXJ0ICsgaSAqIHV2U3RyaWRlO1xuXHRcdCNpZmRlZiBIT1JJWk9OVEFMX1BBU1Ncblx0XHRcdHZlYzIgZGlzdHJpYnV0aW9uID0gdW5wYWNrUkdCQVRvMkhhbGYoIHRleHR1cmUyRCggc2hhZG93X3Bhc3MsICggZ2xfRnJhZ0Nvb3JkLnh5ICsgdmVjMiggdXZPZmZzZXQsIDAuMCApICogcmFkaXVzICkgLyByZXNvbHV0aW9uICkgKTtcblx0XHRcdG1lYW4gKz0gZGlzdHJpYnV0aW9uLng7XG5cdFx0XHRzcXVhcmVkX21lYW4gKz0gZGlzdHJpYnV0aW9uLnkgKiBkaXN0cmlidXRpb24ueSArIGRpc3RyaWJ1dGlvbi54ICogZGlzdHJpYnV0aW9uLng7XG5cdFx0I2Vsc2Vcblx0XHRcdGZsb2F0IGRlcHRoID0gdW5wYWNrUkdCQVRvRGVwdGgoIHRleHR1cmUyRCggc2hhZG93X3Bhc3MsICggZ2xfRnJhZ0Nvb3JkLnh5ICsgdmVjMiggMC4wLCB1dk9mZnNldCApICogcmFkaXVzICkgLyByZXNvbHV0aW9uICkgKTtcblx0XHRcdG1lYW4gKz0gZGVwdGg7XG5cdFx0XHRzcXVhcmVkX21lYW4gKz0gZGVwdGggKiBkZXB0aDtcblx0XHQjZW5kaWZcblx0fVxuXHRtZWFuID0gbWVhbiAvIHNhbXBsZXM7XG5cdHNxdWFyZWRfbWVhbiA9IHNxdWFyZWRfbWVhbiAvIHNhbXBsZXM7XG5cdGZsb2F0IHN0ZF9kZXYgPSBzcXJ0KCBzcXVhcmVkX21lYW4gLSBtZWFuICogbWVhbiApO1xuXHRnbF9GcmFnQ29sb3IgPSBwYWNrMkhhbGZUb1JHQkEoIHZlYzIoIG1lYW4sIHN0ZF9kZXYgKSApO1xufSI7ZnVuY3Rpb24gd3RlKG4sdCxlKXtsZXQgaT1uZXcgZV8scj1uZXcgJGUsbz1uZXcgJGUsYT1uZXcgUWkscz1uZXcgUEkoe2RlcHRoUGFja2luZzpZUmV9KSxsPW5ldyBrSSxjPXt9LGQ9ZS5tYXhUZXh0dXJlU2l6ZSx1PXswOmJvLDE6eXgsMjpaMH0scD1uZXcgamQoe2RlZmluZXM6e1ZTTV9TQU1QTEVTOjh9LHVuaWZvcm1zOntzaGFkb3dfcGFzczp7dmFsdWU6bnVsbH0scmVzb2x1dGlvbjp7dmFsdWU6bmV3ICRlfSxyYWRpdXM6e3ZhbHVlOjR9fSx2ZXJ0ZXhTaGFkZXI6QzJlLGZyYWdtZW50U2hhZGVyOk0yZX0pLGg9cC5jbG9uZSgpO2guZGVmaW5lcy5IT1JJWk9OVEFMX1BBU1M9MTtsZXQgbT1uZXcgR2k7bS5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgQXIobmV3IEZsb2F0MzJBcnJheShbLTEsLTEsLjUsMywtMSwuNSwtMSwzLC41XSksMykpO2xldCBfPW5ldyBzbyhtLHApLE09dGhpcztmdW5jdGlvbiB5KEksQil7bGV0IGVlPXQudXBkYXRlKF8pO3AuZGVmaW5lcy5WU01fU0FNUExFUyE9PUkuYmx1clNhbXBsZXMmJihwLmRlZmluZXMuVlNNX1NBTVBMRVM9SS5ibHVyU2FtcGxlcyxoLmRlZmluZXMuVlNNX1NBTVBMRVM9SS5ibHVyU2FtcGxlcyxwLm5lZWRzVXBkYXRlPSEwLGgubmVlZHNVcGRhdGU9ITApLHAudW5pZm9ybXMuc2hhZG93X3Bhc3MudmFsdWU9SS5tYXAudGV4dHVyZSxwLnVuaWZvcm1zLnJlc29sdXRpb24udmFsdWU9SS5tYXBTaXplLHAudW5pZm9ybXMucmFkaXVzLnZhbHVlPUkucmFkaXVzLG4uc2V0UmVuZGVyVGFyZ2V0KEkubWFwUGFzcyksbi5jbGVhcigpLG4ucmVuZGVyQnVmZmVyRGlyZWN0KEIsbnVsbCxlZSxwLF8sbnVsbCksaC51bmlmb3Jtcy5zaGFkb3dfcGFzcy52YWx1ZT1JLm1hcFBhc3MudGV4dHVyZSxoLnVuaWZvcm1zLnJlc29sdXRpb24udmFsdWU9SS5tYXBTaXplLGgudW5pZm9ybXMucmFkaXVzLnZhbHVlPUkucmFkaXVzLG4uc2V0UmVuZGVyVGFyZ2V0KEkubWFwKSxuLmNsZWFyKCksbi5yZW5kZXJCdWZmZXJEaXJlY3QoQixudWxsLGVlLGgsXyxudWxsKX1mdW5jdGlvbiB4KEksQixlZSxRLHdlLFFlLEFlKXtsZXQgRD1udWxsLHJlPSEwPT09US5pc1BvaW50TGlnaHQ/SS5jdXN0b21EaXN0YW5jZU1hdGVyaWFsOkkuY3VzdG9tRGVwdGhNYXRlcmlhbDtpZihEPXZvaWQgMCE9PXJlP3JlOiEwPT09US5pc1BvaW50TGlnaHQ/bDpzLG4ubG9jYWxDbGlwcGluZ0VuYWJsZWQmJiEwPT09ZWUuY2xpcFNoYWRvd3MmJjAhPT1lZS5jbGlwcGluZ1BsYW5lcy5sZW5ndGh8fGVlLmRpc3BsYWNlbWVudE1hcCYmMCE9PWVlLmRpc3BsYWNlbWVudFNjYWxlfHxlZS5hbHBoYU1hcCYmZWUuYWxwaGFUZXN0PjApe2xldCBjZT1ELnV1aWQsaGU9ZWUudXVpZCxfZT1jW2NlXTt2b2lkIDA9PT1fZSYmKF9lPXt9LGNbY2VdPV9lKTtsZXQgJD1fZVtoZV07dm9pZCAwPT09JCYmKCQ9RC5jbG9uZSgpLF9lW2hlXT0kKSxEPSR9cmV0dXJuIEQudmlzaWJsZT1lZS52aXNpYmxlLEQud2lyZWZyYW1lPWVlLndpcmVmcmFtZSxELnNpZGU9QWU9PT1teD9udWxsIT09ZWUuc2hhZG93U2lkZT9lZS5zaGFkb3dTaWRlOmVlLnNpZGU6bnVsbCE9PWVlLnNoYWRvd1NpZGU/ZWUuc2hhZG93U2lkZTp1W2VlLnNpZGVdLEQuYWxwaGFNYXA9ZWUuYWxwaGFNYXAsRC5hbHBoYVRlc3Q9ZWUuYWxwaGFUZXN0LEQuY2xpcFNoYWRvd3M9ZWUuY2xpcFNoYWRvd3MsRC5jbGlwcGluZ1BsYW5lcz1lZS5jbGlwcGluZ1BsYW5lcyxELmNsaXBJbnRlcnNlY3Rpb249ZWUuY2xpcEludGVyc2VjdGlvbixELmRpc3BsYWNlbWVudE1hcD1lZS5kaXNwbGFjZW1lbnRNYXAsRC5kaXNwbGFjZW1lbnRTY2FsZT1lZS5kaXNwbGFjZW1lbnRTY2FsZSxELmRpc3BsYWNlbWVudEJpYXM9ZWUuZGlzcGxhY2VtZW50QmlhcyxELndpcmVmcmFtZUxpbmV3aWR0aD1lZS53aXJlZnJhbWVMaW5ld2lkdGgsRC5saW5ld2lkdGg9ZWUubGluZXdpZHRoLCEwPT09US5pc1BvaW50TGlnaHQmJiEwPT09RC5pc01lc2hEaXN0YW5jZU1hdGVyaWFsJiYoRC5yZWZlcmVuY2VQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oUS5tYXRyaXhXb3JsZCksRC5uZWFyRGlzdGFuY2U9d2UsRC5mYXJEaXN0YW5jZT1RZSksRH1mdW5jdGlvbiBSKEksQixlZSxRLHdlKXtpZighMT09PUkudmlzaWJsZSlyZXR1cm47aWYoSS5sYXllcnMudGVzdChCLmxheWVycykmJihJLmlzTWVzaHx8SS5pc0xpbmV8fEkuaXNQb2ludHMpJiYoSS5jYXN0U2hhZG93fHxJLnJlY2VpdmVTaGFkb3cmJndlPT09bXgpJiYoIUkuZnJ1c3R1bUN1bGxlZHx8aS5pbnRlcnNlY3RzT2JqZWN0KEkpKSl7SS5tb2RlbFZpZXdNYXRyaXgubXVsdGlwbHlNYXRyaWNlcyhlZS5tYXRyaXhXb3JsZEludmVyc2UsSS5tYXRyaXhXb3JsZCk7bGV0IEQ9dC51cGRhdGUoSSkscmU9SS5tYXRlcmlhbDtpZihBcnJheS5pc0FycmF5KHJlKSl7bGV0IGNlPUQuZ3JvdXBzO2ZvcihsZXQgaGU9MCxfZT1jZS5sZW5ndGg7aGU8X2U7aGUrKyl7bGV0ICQ9Y2VbaGVdLGRlPXJlWyQubWF0ZXJpYWxJbmRleF07aWYoZGUmJmRlLnZpc2libGUpe2xldCBwZT14KEksMCxkZSxRLGVlLm5lYXIsZWUuZmFyLHdlKTtuLnJlbmRlckJ1ZmZlckRpcmVjdChlZSxudWxsLEQscGUsSSwkKX19fWVsc2UgaWYocmUudmlzaWJsZSl7bGV0IGNlPXgoSSwwLHJlLFEsZWUubmVhcixlZS5mYXIsd2UpO24ucmVuZGVyQnVmZmVyRGlyZWN0KGVlLG51bGwsRCxjZSxJLG51bGwpfX1sZXQgQWU9SS5jaGlsZHJlbjtmb3IobGV0IEQ9MCxyZT1BZS5sZW5ndGg7RDxyZTtEKyspUihBZVtEXSxCLGVlLFEsd2UpfXRoaXMuZW5hYmxlZD0hMSx0aGlzLmF1dG9VcGRhdGU9ITAsdGhpcy5uZWVkc1VwZGF0ZT0hMSx0aGlzLnR5cGU9c3RlLHRoaXMucmVuZGVyPWZ1bmN0aW9uKEksQixlZSl7aWYoITE9PT1NLmVuYWJsZWR8fCExPT09TS5hdXRvVXBkYXRlJiYhMT09PU0ubmVlZHNVcGRhdGV8fDA9PT1JLmxlbmd0aClyZXR1cm47bGV0IFE9bi5nZXRSZW5kZXJUYXJnZXQoKSx3ZT1uLmdldEFjdGl2ZUN1YmVGYWNlKCksUWU9bi5nZXRBY3RpdmVNaXBtYXBMZXZlbCgpLEFlPW4uc3RhdGU7QWUuc2V0QmxlbmRpbmcodnApLEFlLmJ1ZmZlcnMuY29sb3Iuc2V0Q2xlYXIoMSwxLDEsMSksQWUuYnVmZmVycy5kZXB0aC5zZXRUZXN0KCEwKSxBZS5zZXRTY2lzc29yVGVzdCghMSk7Zm9yKGxldCBEPTAscmU9SS5sZW5ndGg7RDxyZTtEKyspe2xldCBjZT1JW0RdLGhlPWNlLnNoYWRvdztpZih2b2lkIDA9PT1oZSl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFNoYWRvd01hcDoiLGNlLCJoYXMgbm8gc2hhZG93LiIpO2NvbnRpbnVlfWlmKCExPT09aGUuYXV0b1VwZGF0ZSYmITE9PT1oZS5uZWVkc1VwZGF0ZSljb250aW51ZTtyLmNvcHkoaGUubWFwU2l6ZSk7bGV0IF9lPWhlLmdldEZyYW1lRXh0ZW50cygpO2lmKHIubXVsdGlwbHkoX2UpLG8uY29weShoZS5tYXBTaXplKSwoci54PmR8fHIueT5kKSYmKHIueD5kJiYoby54PU1hdGguZmxvb3IoZC9fZS54KSxyLng9by54Kl9lLngsaGUubWFwU2l6ZS54PW8ueCksci55PmQmJihvLnk9TWF0aC5mbG9vcihkL19lLnkpLHIueT1vLnkqX2UueSxoZS5tYXBTaXplLnk9by55KSksbnVsbD09PWhlLm1hcCYmIWhlLmlzUG9pbnRMaWdodFNoYWRvdyYmdGhpcy50eXBlPT09bXgpe2xldCBkZT17bWluRmlsdGVyOmlhLG1hZ0ZpbHRlcjppYSxmb3JtYXQ6Q2F9O2hlLm1hcD1uZXcgdHMoci54LHIueSxkZSksaGUubWFwLnRleHR1cmUubmFtZT1jZS5uYW1lKyIuc2hhZG93TWFwIixoZS5tYXBQYXNzPW5ldyB0cyhyLngsci55LGRlKSxoZS5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfW51bGw9PT1oZS5tYXAmJihoZS5tYXA9bmV3IHRzKHIueCxyLnkse21pbkZpbHRlcjp2byxtYWdGaWx0ZXI6dm8sZm9ybWF0OkNhfSksaGUubWFwLnRleHR1cmUubmFtZT1jZS5uYW1lKyIuc2hhZG93TWFwIixoZS5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpKSxuLnNldFJlbmRlclRhcmdldChoZS5tYXApLG4uY2xlYXIoKTtsZXQgJD1oZS5nZXRWaWV3cG9ydENvdW50KCk7Zm9yKGxldCBkZT0wO2RlPCQ7ZGUrKyl7bGV0IHBlPWhlLmdldFZpZXdwb3J0KGRlKTthLnNldChvLngqcGUueCxvLnkqcGUueSxvLngqcGUueixvLnkqcGUudyksQWUudmlld3BvcnQoYSksaGUudXBkYXRlTWF0cmljZXMoY2UsZGUpLGk9aGUuZ2V0RnJ1c3R1bSgpLFIoQixlZSxoZS5jYW1lcmEsY2UsdGhpcy50eXBlKX0haGUuaXNQb2ludExpZ2h0U2hhZG93JiZ0aGlzLnR5cGU9PT1teCYmeShoZSxlZSksaGUubmVlZHNVcGRhdGU9ITF9TS5uZWVkc1VwZGF0ZT0hMSxuLnNldFJlbmRlclRhcmdldChRLHdlLFFlKX19ZnVuY3Rpb24gdzJlKG4sdCxlKXtsZXQgaT1lLmlzV2ViR0wyLHM9bmV3IGZ1bmN0aW9uKCl7bGV0IHNlPSExLEp0PW5ldyBRaSxVdD1udWxsLFNuPW5ldyBRaSgwLDAsMCwwKTtyZXR1cm57c2V0TWFzazpmdW5jdGlvbihXZSl7VXQhPT1XZSYmIXNlJiYobi5jb2xvck1hc2soV2UsV2UsV2UsV2UpLFV0PVdlKX0sc2V0TG9ja2VkOmZ1bmN0aW9uKFdlKXtzZT1XZX0sc2V0Q2xlYXI6ZnVuY3Rpb24oV2UsZ24sZmksbHIsV28peyEwPT09V28mJihXZSo9bHIsZ24qPWxyLGZpKj1sciksSnQuc2V0KFdlLGduLGZpLGxyKSwhMT09PVNuLmVxdWFscyhKdCkmJihuLmNsZWFyQ29sb3IoV2UsZ24sZmksbHIpLFNuLmNvcHkoSnQpKX0scmVzZXQ6ZnVuY3Rpb24oKXtzZT0hMSxVdD1udWxsLFNuLnNldCgtMSwwLDAsMCl9fX0sbD1uZXcgZnVuY3Rpb24oKXtsZXQgc2U9ITEsSnQ9bnVsbCxVdD1udWxsLFNuPW51bGw7cmV0dXJue3NldFRlc3Q6ZnVuY3Rpb24oV2Upe1dlP2tlKDI5MjkpOlRuKDI5MjkpfSxzZXRNYXNrOmZ1bmN0aW9uKFdlKXtKdCE9PVdlJiYhc2UmJihuLmRlcHRoTWFzayhXZSksSnQ9V2UpfSxzZXRGdW5jOmZ1bmN0aW9uKFdlKXtpZihVdCE9PVdlKXtpZihXZSlzd2l0Y2goV2Upe2Nhc2UgbVJlOm4uZGVwdGhGdW5jKDUxMik7YnJlYWs7Y2FzZSBmUmU6bi5kZXB0aEZ1bmMoNTE5KTticmVhaztjYXNlIGdSZTpuLmRlcHRoRnVuYyg1MTMpO2JyZWFrO2Nhc2UgWDM6bi5kZXB0aEZ1bmMoNTE1KTticmVhaztjYXNlIF9SZTpuLmRlcHRoRnVuYyg1MTQpO2JyZWFrO2Nhc2UgYlJlOm4uZGVwdGhGdW5jKDUxOCk7YnJlYWs7Y2FzZSB2UmU6bi5kZXB0aEZ1bmMoNTE2KTticmVhaztjYXNlIHlSZTpuLmRlcHRoRnVuYyg1MTcpO2JyZWFrO2RlZmF1bHQ6bi5kZXB0aEZ1bmMoNTE1KX1lbHNlIG4uZGVwdGhGdW5jKDUxNSk7VXQ9V2V9fSxzZXRMb2NrZWQ6ZnVuY3Rpb24oV2Upe3NlPVdlfSxzZXRDbGVhcjpmdW5jdGlvbihXZSl7U24hPT1XZSYmKG4uY2xlYXJEZXB0aChXZSksU249V2UpfSxyZXNldDpmdW5jdGlvbigpe3NlPSExLEp0PW51bGwsVXQ9bnVsbCxTbj1udWxsfX19LGM9bmV3IGZ1bmN0aW9uKCl7bGV0IHNlPSExLEp0PW51bGwsVXQ9bnVsbCxTbj1udWxsLFdlPW51bGwsZ249bnVsbCxmaT1udWxsLGxyPW51bGwsV289bnVsbDtyZXR1cm57c2V0VGVzdDpmdW5jdGlvbih2cil7c2V8fCh2cj9rZSgyOTYwKTpUbigyOTYwKSl9LHNldE1hc2s6ZnVuY3Rpb24odnIpe0p0IT09dnImJiFzZSYmKG4uc3RlbmNpbE1hc2sodnIpLEp0PXZyKX0sc2V0RnVuYzpmdW5jdGlvbih2cixJcyx3YSl7KFV0IT09dnJ8fFNuIT09SXN8fFdlIT09d2EpJiYobi5zdGVuY2lsRnVuYyh2cixJcyx3YSksVXQ9dnIsU249SXMsV2U9d2EpfSxzZXRPcDpmdW5jdGlvbih2cixJcyx3YSl7KGduIT09dnJ8fGZpIT09SXN8fGxyIT09d2EpJiYobi5zdGVuY2lsT3AodnIsSXMsd2EpLGduPXZyLGZpPUlzLGxyPXdhKX0sc2V0TG9ja2VkOmZ1bmN0aW9uKHZyKXtzZT12cn0sc2V0Q2xlYXI6ZnVuY3Rpb24odnIpe1dvIT09dnImJihuLmNsZWFyU3RlbmNpbCh2ciksV289dnIpfSxyZXNldDpmdW5jdGlvbigpe3NlPSExLEp0PW51bGwsVXQ9bnVsbCxTbj1udWxsLFdlPW51bGwsZ249bnVsbCxmaT1udWxsLGxyPW51bGwsV289bnVsbH19fSxkPXt9LHU9e30scD1uZXcgV2Vha01hcCxoPVtdLG09bnVsbCxfPSExLE09bnVsbCx5PW51bGwseD1udWxsLFI9bnVsbCxJPW51bGwsQj1udWxsLGVlPW51bGwsUT0hMSx3ZT1udWxsLFFlPW51bGwsQWU9bnVsbCxEPW51bGwscmU9bnVsbCxjZT1uLmdldFBhcmFtZXRlcigzNTY2MSksaGU9ITEsX2U9MCwkPW4uZ2V0UGFyYW1ldGVyKDc5MzgpOy0xIT09JC5pbmRleE9mKCJXZWJHTCIpPyhfZT1wYXJzZUZsb2F0KC9eV2ViR0wgKFxkKS8uZXhlYygkKVsxXSksaGU9X2U+PTEpOi0xIT09JC5pbmRleE9mKCJPcGVuR0wgRVMiKSYmKF9lPXBhcnNlRmxvYXQoL15PcGVuR0wgRVMgKFxkKS8uZXhlYygkKVsxXSksaGU9X2U+PTIpO2xldCBkZT1udWxsLHBlPXt9LEdlPW4uZ2V0UGFyYW1ldGVyKDMwODgpLFNlPW4uZ2V0UGFyYW1ldGVyKDI5NzgpLEZlPShuZXcgUWkpLmZyb21BcnJheShHZSksbHQ9KG5ldyBRaSkuZnJvbUFycmF5KFNlKTtmdW5jdGlvbiBNdChzZSxKdCxVdCl7bGV0IFNuPW5ldyBVaW50OEFycmF5KDQpLFdlPW4uY3JlYXRlVGV4dHVyZSgpO24uYmluZFRleHR1cmUoc2UsV2UpLG4udGV4UGFyYW1ldGVyaShzZSwxMDI0MSw5NzI4KSxuLnRleFBhcmFtZXRlcmkoc2UsMTAyNDAsOTcyOCk7Zm9yKGxldCBnbj0wO2duPFV0O2duKyspbi50ZXhJbWFnZTJEKEp0K2duLDAsNjQwOCwxLDEsMCw2NDA4LDUxMjEsU24pO3JldHVybiBXZX1sZXQgcHQ9e307ZnVuY3Rpb24ga2Uoc2UpeyEwIT09ZFtzZV0mJihuLmVuYWJsZShzZSksZFtzZV09ITApfWZ1bmN0aW9uIFRuKHNlKXshMSE9PWRbc2VdJiYobi5kaXNhYmxlKHNlKSxkW3NlXT0hMSl9cHRbMzU1M109TXQoMzU1MywzNTUzLDEpLHB0WzM0MDY3XT1NdCgzNDA2NywzNDA2OSw2KSxzLnNldENsZWFyKDAsMCwwLDEpLGwuc2V0Q2xlYXIoMSksYy5zZXRDbGVhcigwKSxrZSgyOTI5KSxsLnNldEZ1bmMoWDMpLFllKCExKSxfdChTJCksa2UoMjg4NCksb2UodnApO2xldCBtdD17W1UwXTozMjc3NCxbaVJlXTozMjc3OCxbclJlXTozMjc3OX07aWYoaSltdFtJJF09MzI3NzUsbXRbQSRdPTMyNzc2O2Vsc2V7bGV0IHNlPXQuZ2V0KCJFWFRfYmxlbmRfbWlubWF4Iik7bnVsbCE9PXNlJiYobXRbSSRdPXNlLk1JTl9FWFQsbXRbQSRdPXNlLk1BWF9FWFQpfWxldCBodD17W29SZV06MCxbYVJlXToxLFtzUmVdOjc2OCxbY3RlXTo3NzAsW2hSZV06Nzc2LFt1UmVdOjc3NCxbY1JlXTo3NzIsW2xSZV06NzY5LFtkdGVdOjc3MSxbcFJlXTo3NzUsW2RSZV06NzczfTtmdW5jdGlvbiBvZShzZSxKdCxVdCxTbixXZSxnbixmaSxscil7aWYoc2UhPT12cCl7aWYoITE9PT1fJiYoa2UoMzA0MiksXz0hMCksc2U9PT1uUmUpV2U9V2V8fEp0LGduPWdufHxVdCxmaT1maXx8U24sKEp0IT09eXx8V2UhPT1JKSYmKG4uYmxlbmRFcXVhdGlvblNlcGFyYXRlKG10W0p0XSxtdFtXZV0pLHk9SnQsST1XZSksKFV0IT09eHx8U24hPT1SfHxnbiE9PUJ8fGZpIT09ZWUpJiYobi5ibGVuZEZ1bmNTZXBhcmF0ZShodFtVdF0saHRbU25dLGh0W2duXSxodFtmaV0pLHg9VXQsUj1TbixCPWduLGVlPWZpKSxNPXNlLFE9bnVsbDtlbHNlIGlmKHNlIT09TXx8bHIhPT1RKXtpZigoeSE9PVUwfHxJIT09VTApJiYobi5ibGVuZEVxdWF0aW9uKDMyNzc0KSx5PVUwLEk9VTApLGxyKXN3aXRjaChzZSl7Y2FzZSBneDpuLmJsZW5kRnVuY1NlcGFyYXRlKDEsNzcxLDEsNzcxKTticmVhaztjYXNlIEUkOm4uYmxlbmRGdW5jKDEsMSk7YnJlYWs7Y2FzZSBUJDpuLmJsZW5kRnVuY1NlcGFyYXRlKDAsNzY5LDAsMSk7YnJlYWs7Y2FzZSBEJDpuLmJsZW5kRnVuY1NlcGFyYXRlKDAsNzY4LDAsNzcwKTticmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IEludmFsaWQgYmxlbmRpbmc6ICIsc2UpfWVsc2Ugc3dpdGNoKHNlKXtjYXNlIGd4Om4uYmxlbmRGdW5jU2VwYXJhdGUoNzcwLDc3MSwxLDc3MSk7YnJlYWs7Y2FzZSBFJDpuLmJsZW5kRnVuYyg3NzAsMSk7YnJlYWs7Y2FzZSBUJDpuLmJsZW5kRnVuY1NlcGFyYXRlKDAsNzY5LDAsMSk7YnJlYWs7Y2FzZSBEJDpuLmJsZW5kRnVuYygwLDc2OCk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiBJbnZhbGlkIGJsZW5kaW5nOiAiLHNlKX14PW51bGwsUj1udWxsLEI9bnVsbCxlZT1udWxsLE09c2UsUT1scn19ZWxzZSEwPT09XyYmKFRuKDMwNDIpLF89ITEpfWZ1bmN0aW9uIFllKHNlKXt3ZSE9PXNlJiYobi5mcm9udEZhY2Uoc2U/MjMwNDoyMzA1KSx3ZT1zZSl9ZnVuY3Rpb24gX3Qoc2Upe3NlIT09JEFlPyhrZSgyODg0KSxzZSE9PVFlJiZuLmN1bGxGYWNlKHNlPT09UyQ/MTAyOTpzZT09PWVSZT8xMDI4OjEwMzIpKTpUbigyODg0KSxRZT1zZX1mdW5jdGlvbiBhbihzZSxKdCxVdCl7c2U/KGtlKDMyODIzKSwoRCE9PUp0fHxyZSE9PVV0KSYmKG4ucG9seWdvbk9mZnNldChKdCxVdCksRD1KdCxyZT1VdCkpOlRuKDMyODIzKX1mdW5jdGlvbiBzaShzZSl7dm9pZCAwPT09c2UmJihzZT0zMzk4NCtjZS0xKSxkZSE9PXNlJiYobi5hY3RpdmVUZXh0dXJlKHNlKSxkZT1zZSl9cmV0dXJue2J1ZmZlcnM6e2NvbG9yOnMsZGVwdGg6bCxzdGVuY2lsOmN9LGVuYWJsZTprZSxkaXNhYmxlOlRuLGJpbmRGcmFtZWJ1ZmZlcjpmdW5jdGlvbihzZSxKdCl7cmV0dXJuIHVbc2VdIT09SnQmJihuLmJpbmRGcmFtZWJ1ZmZlcihzZSxKdCksdVtzZV09SnQsaSYmKDM2MDA5PT09c2UmJih1WzM2MTYwXT1KdCksMzYxNjA9PT1zZSYmKHVbMzYwMDldPUp0KSksITApfSxkcmF3QnVmZmVyczpmdW5jdGlvbihzZSxKdCl7bGV0IFV0PWgsU249ITE7aWYoc2UpaWYoVXQ9cC5nZXQoSnQpLHZvaWQgMD09PVV0JiYoVXQ9W10scC5zZXQoSnQsVXQpKSxzZS5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzKXtsZXQgV2U9c2UudGV4dHVyZTtpZihVdC5sZW5ndGghPT1XZS5sZW5ndGh8fDM2MDY0IT09VXRbMF0pe2ZvcihsZXQgZ249MCxmaT1XZS5sZW5ndGg7Z248Zmk7Z24rKylVdFtnbl09MzYwNjQrZ247VXQubGVuZ3RoPVdlLmxlbmd0aCxTbj0hMH19ZWxzZSAzNjA2NCE9PVV0WzBdJiYoVXRbMF09MzYwNjQsU249ITApO2Vsc2UgMTAyOSE9PVV0WzBdJiYoVXRbMF09MTAyOSxTbj0hMCk7U24mJihlLmlzV2ViR0wyP24uZHJhd0J1ZmZlcnMoVXQpOnQuZ2V0KCJXRUJHTF9kcmF3X2J1ZmZlcnMiKS5kcmF3QnVmZmVyc1dFQkdMKFV0KSl9LHVzZVByb2dyYW06ZnVuY3Rpb24oc2Upe3JldHVybiBtIT09c2UmJihuLnVzZVByb2dyYW0oc2UpLG09c2UsITApfSxzZXRCbGVuZGluZzpvZSxzZXRNYXRlcmlhbDpmdW5jdGlvbihzZSxKdCl7c2Uuc2lkZT09PVowP1RuKDI4ODQpOmtlKDI4ODQpO2xldCBVdD1zZS5zaWRlPT09Ym87SnQmJihVdD0hVXQpLFllKFV0KSxzZS5ibGVuZGluZz09PWd4JiYhMT09PXNlLnRyYW5zcGFyZW50P29lKHZwKTpvZShzZS5ibGVuZGluZyxzZS5ibGVuZEVxdWF0aW9uLHNlLmJsZW5kU3JjLHNlLmJsZW5kRHN0LHNlLmJsZW5kRXF1YXRpb25BbHBoYSxzZS5ibGVuZFNyY0FscGhhLHNlLmJsZW5kRHN0QWxwaGEsc2UucHJlbXVsdGlwbGllZEFscGhhKSxsLnNldEZ1bmMoc2UuZGVwdGhGdW5jKSxsLnNldFRlc3Qoc2UuZGVwdGhUZXN0KSxsLnNldE1hc2soc2UuZGVwdGhXcml0ZSkscy5zZXRNYXNrKHNlLmNvbG9yV3JpdGUpO2xldCBTbj1zZS5zdGVuY2lsV3JpdGU7Yy5zZXRUZXN0KFNuKSxTbiYmKGMuc2V0TWFzayhzZS5zdGVuY2lsV3JpdGVNYXNrKSxjLnNldEZ1bmMoc2Uuc3RlbmNpbEZ1bmMsc2Uuc3RlbmNpbFJlZixzZS5zdGVuY2lsRnVuY01hc2spLGMuc2V0T3Aoc2Uuc3RlbmNpbEZhaWwsc2Uuc3RlbmNpbFpGYWlsLHNlLnN0ZW5jaWxaUGFzcykpLGFuKHNlLnBvbHlnb25PZmZzZXQsc2UucG9seWdvbk9mZnNldEZhY3RvcixzZS5wb2x5Z29uT2Zmc2V0VW5pdHMpLCEwPT09c2UuYWxwaGFUb0NvdmVyYWdlP2tlKDMyOTI2KTpUbigzMjkyNil9LHNldEZsaXBTaWRlZDpZZSxzZXRDdWxsRmFjZTpfdCxzZXRMaW5lV2lkdGg6ZnVuY3Rpb24oc2Upe3NlIT09QWUmJihoZSYmbi5saW5lV2lkdGgoc2UpLEFlPXNlKX0sc2V0UG9seWdvbk9mZnNldDphbixzZXRTY2lzc29yVGVzdDpmdW5jdGlvbihzZSl7c2U/a2UoMzA4OSk6VG4oMzA4OSl9LGFjdGl2ZVRleHR1cmU6c2ksYmluZFRleHR1cmU6ZnVuY3Rpb24oc2UsSnQpe251bGw9PT1kZSYmc2koKTtsZXQgVXQ9cGVbZGVdO3ZvaWQgMD09PVV0JiYoVXQ9e3R5cGU6dm9pZCAwLHRleHR1cmU6dm9pZCAwfSxwZVtkZV09VXQpLChVdC50eXBlIT09c2V8fFV0LnRleHR1cmUhPT1KdCkmJihuLmJpbmRUZXh0dXJlKHNlLEp0fHxwdFtzZV0pLFV0LnR5cGU9c2UsVXQudGV4dHVyZT1KdCl9LHVuYmluZFRleHR1cmU6ZnVuY3Rpb24oKXtsZXQgc2U9cGVbZGVdO3ZvaWQgMCE9PXNlJiZ2b2lkIDAhPT1zZS50eXBlJiYobi5iaW5kVGV4dHVyZShzZS50eXBlLG51bGwpLHNlLnR5cGU9dm9pZCAwLHNlLnRleHR1cmU9dm9pZCAwKX0sY29tcHJlc3NlZFRleEltYWdlMkQ6ZnVuY3Rpb24oKXt0cnl7bi5jb21wcmVzc2VkVGV4SW1hZ2UyRC5hcHBseShuLGFyZ3VtZW50cyl9Y2F0Y2goc2Upe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IixzZSl9fSx0ZXhJbWFnZTJEOmZ1bmN0aW9uKCl7dHJ5e24udGV4SW1hZ2UyRC5hcHBseShuLGFyZ3VtZW50cyl9Y2F0Y2goc2Upe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IixzZSl9fSx0ZXhJbWFnZTNEOmZ1bmN0aW9uKCl7dHJ5e24udGV4SW1hZ2UzRC5hcHBseShuLGFyZ3VtZW50cyl9Y2F0Y2goc2Upe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IixzZSl9fSx0ZXhTdG9yYWdlMkQ6ZnVuY3Rpb24oKXt0cnl7bi50ZXhTdG9yYWdlMkQuYXBwbHkobixhcmd1bWVudHMpfWNhdGNoKHNlKXtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiIsc2UpfX0sdGV4U3RvcmFnZTNEOmZ1bmN0aW9uKCl7dHJ5e24udGV4U3RvcmFnZTNELmFwcGx5KG4sYXJndW1lbnRzKX1jYXRjaChzZSl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xTdGF0ZToiLHNlKX19LHRleFN1YkltYWdlMkQ6ZnVuY3Rpb24oKXt0cnl7bi50ZXhTdWJJbWFnZTJELmFwcGx5KG4sYXJndW1lbnRzKX1jYXRjaChzZSl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xTdGF0ZToiLHNlKX19LHRleFN1YkltYWdlM0Q6ZnVuY3Rpb24oKXt0cnl7bi50ZXhTdWJJbWFnZTNELmFwcGx5KG4sYXJndW1lbnRzKX1jYXRjaChzZSl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xTdGF0ZToiLHNlKX19LGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEOmZ1bmN0aW9uKCl7dHJ5e24uY29tcHJlc3NlZFRleFN1YkltYWdlMkQuYXBwbHkobixhcmd1bWVudHMpfWNhdGNoKHNlKXtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiIsc2UpfX0sc2Npc3NvcjpmdW5jdGlvbihzZSl7ITE9PT1GZS5lcXVhbHMoc2UpJiYobi5zY2lzc29yKHNlLngsc2UueSxzZS56LHNlLncpLEZlLmNvcHkoc2UpKX0sdmlld3BvcnQ6ZnVuY3Rpb24oc2UpeyExPT09bHQuZXF1YWxzKHNlKSYmKG4udmlld3BvcnQoc2UueCxzZS55LHNlLnosc2UudyksbHQuY29weShzZSkpfSxyZXNldDpmdW5jdGlvbigpe24uZGlzYWJsZSgzMDQyKSxuLmRpc2FibGUoMjg4NCksbi5kaXNhYmxlKDI5MjkpLG4uZGlzYWJsZSgzMjgyMyksbi5kaXNhYmxlKDMwODkpLG4uZGlzYWJsZSgyOTYwKSxuLmRpc2FibGUoMzI5MjYpLG4uYmxlbmRFcXVhdGlvbigzMjc3NCksbi5ibGVuZEZ1bmMoMSwwKSxuLmJsZW5kRnVuY1NlcGFyYXRlKDEsMCwxLDApLG4uY29sb3JNYXNrKCEwLCEwLCEwLCEwKSxuLmNsZWFyQ29sb3IoMCwwLDAsMCksbi5kZXB0aE1hc2soITApLG4uZGVwdGhGdW5jKDUxMyksbi5jbGVhckRlcHRoKDEpLG4uc3RlbmNpbE1hc2soNDI5NDk2NzI5NSksbi5zdGVuY2lsRnVuYyg1MTksMCw0Mjk0OTY3Mjk1KSxuLnN0ZW5jaWxPcCg3NjgwLDc2ODAsNzY4MCksbi5jbGVhclN0ZW5jaWwoMCksbi5jdWxsRmFjZSgxMDI5KSxuLmZyb250RmFjZSgyMzA1KSxuLnBvbHlnb25PZmZzZXQoMCwwKSxuLmFjdGl2ZVRleHR1cmUoMzM5ODQpLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpLCEwPT09aSYmKG4uYmluZEZyYW1lYnVmZmVyKDM2MDA5LG51bGwpLG4uYmluZEZyYW1lYnVmZmVyKDM2MDA4LG51bGwpKSxuLnVzZVByb2dyYW0obnVsbCksbi5saW5lV2lkdGgoMSksbi5zY2lzc29yKDAsMCxuLmNhbnZhcy53aWR0aCxuLmNhbnZhcy5oZWlnaHQpLG4udmlld3BvcnQoMCwwLG4uY2FudmFzLndpZHRoLG4uY2FudmFzLmhlaWdodCksZD17fSxkZT1udWxsLHBlPXt9LHU9e30scD1uZXcgV2Vha01hcCxoPVtdLG09bnVsbCxfPSExLE09bnVsbCx5PW51bGwseD1udWxsLFI9bnVsbCxJPW51bGwsQj1udWxsLGVlPW51bGwsUT0hMSx3ZT1udWxsLFFlPW51bGwsQWU9bnVsbCxEPW51bGwscmU9bnVsbCxGZS5zZXQoMCwwLG4uY2FudmFzLndpZHRoLG4uY2FudmFzLmhlaWdodCksbHQuc2V0KDAsMCxuLmNhbnZhcy53aWR0aCxuLmNhbnZhcy5oZWlnaHQpLHMucmVzZXQoKSxsLnJlc2V0KCksYy5yZXNldCgpfX19ZnVuY3Rpb24gUzJlKG4sdCxlLGkscixvLGEpe2xldCBfLHM9ci5pc1dlYkdMMixsPXIubWF4VGV4dHVyZXMsYz1yLm1heEN1YmVtYXBTaXplLGQ9ci5tYXhUZXh0dXJlU2l6ZSx1PXIubWF4U2FtcGxlcyxoPXQuaGFzKCJXRUJHTF9tdWx0aXNhbXBsZWRfcmVuZGVyX3RvX3RleHR1cmUiKT90LmdldCgiV0VCR0xfbXVsdGlzYW1wbGVkX3JlbmRlcl90b190ZXh0dXJlIik6dm9pZCAwLG09bmV3IFdlYWtNYXAsTT0hMTt0cnl7TT10eXBlb2YgT2Zmc2NyZWVuQ2FudmFzPCJ1IiYmbnVsbCE9PW5ldyBPZmZzY3JlZW5DYW52YXMoMSwxKS5nZXRDb250ZXh0KCIyZCIpfWNhdGNoe31mdW5jdGlvbiB5KFksTCl7cmV0dXJuIE0/bmV3IE9mZnNjcmVlbkNhbnZhcyhZLEwpOk14KCJjYW52YXMiKX1mdW5jdGlvbiB4KFksTCxIZSx5dCl7bGV0IGVuPTE7aWYoKFkud2lkdGg+eXR8fFkuaGVpZ2h0Pnl0KSYmKGVuPXl0L01hdGgubWF4KFkud2lkdGgsWS5oZWlnaHQpKSxlbjwxfHwhMD09PUwpe2lmKHR5cGVvZiBIVE1MSW1hZ2VFbGVtZW50PCJ1IiYmWSBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnR8fHR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudDwidSImJlkgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudHx8dHlwZW9mIEltYWdlQml0bWFwPCJ1IiYmWSBpbnN0YW5jZW9mIEltYWdlQml0bWFwKXtsZXQgTGU9TD9KUmU6TWF0aC5mbG9vcixobj1MZShlbipZLndpZHRoKSxsbj1MZShlbipZLmhlaWdodCk7dm9pZCAwPT09XyYmKF89eShobixsbikpO2xldCBGdD1IZT95KGhuLGxuKTpfO3JldHVybiBGdC53aWR0aD1obixGdC5oZWlnaHQ9bG4sRnQuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoWSwwLDAsaG4sbG4pLGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVGV4dHVyZSBoYXMgYmVlbiByZXNpemVkIGZyb20gKCIrWS53aWR0aCsieCIrWS5oZWlnaHQrIikgdG8gKCIraG4rIngiK2xuKyIpLiIpLEZ0fXJldHVybiJkYXRhImluIFkmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogSW1hZ2UgaW4gRGF0YVRleHR1cmUgaXMgdG9vIGJpZyAoIitZLndpZHRoKyJ4IitZLmhlaWdodCsiKS4iKSxZfXJldHVybiBZfWZ1bmN0aW9uIFIoWSl7cmV0dXJuIHRlZShZLndpZHRoKSYmdGVlKFkuaGVpZ2h0KX1mdW5jdGlvbiBCKFksTCl7cmV0dXJuIFkuZ2VuZXJhdGVNaXBtYXBzJiZMJiZZLm1pbkZpbHRlciE9PXZvJiZZLm1pbkZpbHRlciE9PWlhfWZ1bmN0aW9uIGVlKFkpe24uZ2VuZXJhdGVNaXBtYXAoWSl9ZnVuY3Rpb24gUShZLEwsSGUseXQsZW49ITEpe2lmKCExPT09cylyZXR1cm4gTDtpZihudWxsIT09WSl7aWYodm9pZCAwIT09bltZXSlyZXR1cm4gbltZXTtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEF0dGVtcHQgdG8gdXNlIG5vbi1leGlzdGluZyBXZWJHTCBpbnRlcm5hbCBmb3JtYXQgJyIrWSsiJyIpfWxldCBMZT1MO3JldHVybiA2NDAzPT09TCYmKDUxMjY9PT1IZSYmKExlPTMzMzI2KSw1MTMxPT09SGUmJihMZT0zMzMyNSksNTEyMT09PUhlJiYoTGU9MzMzMjEpKSwzMzMxOT09PUwmJig1MTI2PT09SGUmJihMZT0zMzMyOCksNTEzMT09PUhlJiYoTGU9MzMzMjcpLDUxMjE9PT1IZSYmKExlPTMzMzIzKSksNjQwOD09PUwmJig1MTI2PT09SGUmJihMZT0zNDgzNiksNTEzMT09PUhlJiYoTGU9MzQ4NDIpLDUxMjE9PT1IZSYmKExlPXl0PT09RHImJiExPT09ZW4/MzU5MDc6MzI4NTYpLDMyODE5PT09SGUmJihMZT0zMjg1NCksMzI4MjA9PT1IZSYmKExlPTMyODU1KSksKDMzMzI1PT09TGV8fDMzMzI2PT09TGV8fDMzMzI3PT09TGV8fDMzMzI4PT09TGV8fDM0ODQyPT09TGV8fDM0ODM2PT09TGUpJiZ0LmdldCgiRVhUX2NvbG9yX2J1ZmZlcl9mbG9hdCIpLExlfWZ1bmN0aW9uIHdlKFksTCxIZSl7cmV0dXJuITA9PT1CKFksSGUpfHxZLmlzRnJhbWVidWZmZXJUZXh0dXJlJiZZLm1pbkZpbHRlciE9PXZvJiZZLm1pbkZpbHRlciE9PWlhP01hdGgubG9nMihNYXRoLm1heChMLndpZHRoLEwuaGVpZ2h0KSkrMTp2b2lkIDAhPT1ZLm1pcG1hcHMmJlkubWlwbWFwcy5sZW5ndGg+MD9ZLm1pcG1hcHMubGVuZ3RoOlkuaXNDb21wcmVzc2VkVGV4dHVyZSYmQXJyYXkuaXNBcnJheShZLmltYWdlKT9MLm1pcG1hcHMubGVuZ3RoOjF9ZnVuY3Rpb24gUWUoWSl7cmV0dXJuIFk9PT12b3x8WT09PVIkfHxZPT09UCQ/OTcyODo5NzI5fWZ1bmN0aW9uIEFlKFkpe2xldCBMPVkudGFyZ2V0O0wucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsQWUpLGZ1bmN0aW9uKFkpe2xldCBMPWkuZ2V0KFkpO3ZvaWQgMCE9PUwuX193ZWJnbEluaXQmJihuLmRlbGV0ZVRleHR1cmUoTC5fX3dlYmdsVGV4dHVyZSksaS5yZW1vdmUoWSkpfShMKSxMLmlzVmlkZW9UZXh0dXJlJiZtLmRlbGV0ZShMKSxhLm1lbW9yeS50ZXh0dXJlcy0tfWZ1bmN0aW9uIEQoWSl7bGV0IEw9WS50YXJnZXQ7TC5yZW1vdmVFdmVudExpc3RlbmVyKCJkaXNwb3NlIixEKSxmdW5jdGlvbihZKXtsZXQgTD1ZLnRleHR1cmUsSGU9aS5nZXQoWSkseXQ9aS5nZXQoTCk7aWYoWSl7aWYodm9pZCAwIT09eXQuX193ZWJnbFRleHR1cmUmJihuLmRlbGV0ZVRleHR1cmUoeXQuX193ZWJnbFRleHR1cmUpLGEubWVtb3J5LnRleHR1cmVzLS0pLFkuZGVwdGhUZXh0dXJlJiZZLmRlcHRoVGV4dHVyZS5kaXNwb3NlKCksWS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldClmb3IobGV0IGVuPTA7ZW48NjtlbisrKW4uZGVsZXRlRnJhbWVidWZmZXIoSGUuX193ZWJnbEZyYW1lYnVmZmVyW2VuXSksSGUuX193ZWJnbERlcHRoYnVmZmVyJiZuLmRlbGV0ZVJlbmRlcmJ1ZmZlcihIZS5fX3dlYmdsRGVwdGhidWZmZXJbZW5dKTtlbHNlIG4uZGVsZXRlRnJhbWVidWZmZXIoSGUuX193ZWJnbEZyYW1lYnVmZmVyKSxIZS5fX3dlYmdsRGVwdGhidWZmZXImJm4uZGVsZXRlUmVuZGVyYnVmZmVyKEhlLl9fd2ViZ2xEZXB0aGJ1ZmZlciksSGUuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyJiZuLmRlbGV0ZUZyYW1lYnVmZmVyKEhlLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlciksSGUuX193ZWJnbENvbG9yUmVuZGVyYnVmZmVyJiZuLmRlbGV0ZVJlbmRlcmJ1ZmZlcihIZS5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXIpLEhlLl9fd2ViZ2xEZXB0aFJlbmRlcmJ1ZmZlciYmbi5kZWxldGVSZW5kZXJidWZmZXIoSGUuX193ZWJnbERlcHRoUmVuZGVyYnVmZmVyKTtpZihZLmlzV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHMpZm9yKGxldCBlbj0wLExlPUwubGVuZ3RoO2VuPExlO2VuKyspe2xldCBobj1pLmdldChMW2VuXSk7aG4uX193ZWJnbFRleHR1cmUmJihuLmRlbGV0ZVRleHR1cmUoaG4uX193ZWJnbFRleHR1cmUpLGEubWVtb3J5LnRleHR1cmVzLS0pLGkucmVtb3ZlKExbZW5dKX1pLnJlbW92ZShMKSxpLnJlbW92ZShZKX19KEwpfWxldCBoZT0wO2Z1bmN0aW9uIGRlKFksTCl7bGV0IEhlPWkuZ2V0KFkpO2lmKFkuaXNWaWRlb1RleHR1cmUmJmZ1bmN0aW9uKFkpe2xldCBMPWEucmVuZGVyLmZyYW1lO20uZ2V0KFkpIT09TCYmKG0uc2V0KFksTCksWS51cGRhdGUoKSl9KFkpLFkudmVyc2lvbj4wJiZIZS5fX3ZlcnNpb24hPT1ZLnZlcnNpb24pe2xldCB5dD1ZLmltYWdlO2lmKHZvaWQgMD09PXl0KWNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVGV4dHVyZSBtYXJrZWQgZm9yIHVwZGF0ZSBidXQgaW1hZ2UgaXMgdW5kZWZpbmVkIik7ZWxzZXtpZighMSE9PXl0LmNvbXBsZXRlKXJldHVybiB2b2lkIGtlKEhlLFksTCk7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBUZXh0dXJlIG1hcmtlZCBmb3IgdXBkYXRlIGJ1dCBpbWFnZSBpcyBpbmNvbXBsZXRlIil9fWUuYWN0aXZlVGV4dHVyZSgzMzk4NCtMKSxlLmJpbmRUZXh0dXJlKDM1NTMsSGUuX193ZWJnbFRleHR1cmUpfWZ1bmN0aW9uIFNlKFksTCl7bGV0IEhlPWkuZ2V0KFkpO1kudmVyc2lvbj4wJiZIZS5fX3ZlcnNpb24hPT1ZLnZlcnNpb24/ZnVuY3Rpb24oWSxMLEhlKXtpZig2IT09TC5pbWFnZS5sZW5ndGgpcmV0dXJuO3B0KFksTCksZS5hY3RpdmVUZXh0dXJlKDMzOTg0K0hlKSxlLmJpbmRUZXh0dXJlKDM0MDY3LFkuX193ZWJnbFRleHR1cmUpLG4ucGl4ZWxTdG9yZWkoMzc0NDAsTC5mbGlwWSksbi5waXhlbFN0b3JlaSgzNzQ0MSxMLnByZW11bHRpcGx5QWxwaGEpLG4ucGl4ZWxTdG9yZWkoMzMxNyxMLnVucGFja0FsaWdubWVudCksbi5waXhlbFN0b3JlaSgzNzQ0MywwKTtsZXQgeXQ9TCYmKEwuaXNDb21wcmVzc2VkVGV4dHVyZXx8TC5pbWFnZVswXS5pc0NvbXByZXNzZWRUZXh0dXJlKSxlbj1MLmltYWdlWzBdJiZMLmltYWdlWzBdLmlzRGF0YVRleHR1cmUsTGU9W107Zm9yKGxldCBXZT0wO1dlPDY7V2UrKylMZVtXZV09eXR8fGVuP2VuP0wuaW1hZ2VbV2VdLmltYWdlOkwuaW1hZ2VbV2VdOngoTC5pbWFnZVtXZV0sITEsITAsYyksTGVbV2VdPWFuKEwsTGVbV2VdKTtsZXQgU24saG49TGVbMF0sbG49Uihobil8fHMsRnQ9by5jb252ZXJ0KEwuZm9ybWF0LEwuZW5jb2RpbmcpLE90PW8uY29udmVydChMLnR5cGUpLE5uPVEoTC5pbnRlcm5hbEZvcm1hdCxGdCxPdCxMLmVuY29kaW5nKSxzZT1zJiYhMCE9PUwuaXNWaWRlb1RleHR1cmUsSnQ9dm9pZCAwPT09WS5fX3ZlcnNpb24sVXQ9d2UoTCxobixsbik7aWYoTXQoMzQwNjcsTCxsbikseXQpe3NlJiZKdCYmZS50ZXhTdG9yYWdlMkQoMzQwNjcsVXQsTm4saG4ud2lkdGgsaG4uaGVpZ2h0KTtmb3IobGV0IFdlPTA7V2U8NjtXZSsrKXtTbj1MZVtXZV0ubWlwbWFwcztmb3IobGV0IGduPTA7Z248U24ubGVuZ3RoO2duKyspe2xldCBmaT1Tbltnbl07TC5mb3JtYXQhPT1DYT9udWxsIT09RnQ/c2U/ZS5jb21wcmVzc2VkVGV4U3ViSW1hZ2UyRCgzNDA2OStXZSxnbiwwLDAsZmkud2lkdGgsZmkuaGVpZ2h0LEZ0LGZpLmRhdGEpOmUuY29tcHJlc3NlZFRleEltYWdlMkQoMzQwNjkrV2UsZ24sTm4sZmkud2lkdGgsZmkuaGVpZ2h0LDAsZmkuZGF0YSk6Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBBdHRlbXB0IHRvIGxvYWQgdW5zdXBwb3J0ZWQgY29tcHJlc3NlZCB0ZXh0dXJlIGZvcm1hdCBpbiAuc2V0VGV4dHVyZUN1YmUoKSIpOnNlP2UudGV4U3ViSW1hZ2UyRCgzNDA2OStXZSxnbiwwLDAsZmkud2lkdGgsZmkuaGVpZ2h0LEZ0LE90LGZpLmRhdGEpOmUudGV4SW1hZ2UyRCgzNDA2OStXZSxnbixObixmaS53aWR0aCxmaS5oZWlnaHQsMCxGdCxPdCxmaS5kYXRhKX19fWVsc2V7U249TC5taXBtYXBzLHNlJiZKdCYmKFNuLmxlbmd0aD4wJiZVdCsrLGUudGV4U3RvcmFnZTJEKDM0MDY3LFV0LE5uLExlWzBdLndpZHRoLExlWzBdLmhlaWdodCkpO2ZvcihsZXQgV2U9MDtXZTw2O1dlKyspaWYoZW4pe3NlP2UudGV4U3ViSW1hZ2UyRCgzNDA2OStXZSwwLDAsMCxMZVtXZV0ud2lkdGgsTGVbV2VdLmhlaWdodCxGdCxPdCxMZVtXZV0uZGF0YSk6ZS50ZXhJbWFnZTJEKDM0MDY5K1dlLDAsTm4sTGVbV2VdLndpZHRoLExlW1dlXS5oZWlnaHQsMCxGdCxPdCxMZVtXZV0uZGF0YSk7Zm9yKGxldCBnbj0wO2duPFNuLmxlbmd0aDtnbisrKXtsZXQgbHI9U25bZ25dLmltYWdlW1dlXS5pbWFnZTtzZT9lLnRleFN1YkltYWdlMkQoMzQwNjkrV2UsZ24rMSwwLDAsbHIud2lkdGgsbHIuaGVpZ2h0LEZ0LE90LGxyLmRhdGEpOmUudGV4SW1hZ2UyRCgzNDA2OStXZSxnbisxLE5uLGxyLndpZHRoLGxyLmhlaWdodCwwLEZ0LE90LGxyLmRhdGEpfX1lbHNle3NlP2UudGV4U3ViSW1hZ2UyRCgzNDA2OStXZSwwLDAsMCxGdCxPdCxMZVtXZV0pOmUudGV4SW1hZ2UyRCgzNDA2OStXZSwwLE5uLEZ0LE90LExlW1dlXSk7Zm9yKGxldCBnbj0wO2duPFNuLmxlbmd0aDtnbisrKXtsZXQgZmk9U25bZ25dO3NlP2UudGV4U3ViSW1hZ2UyRCgzNDA2OStXZSxnbisxLDAsMCxGdCxPdCxmaS5pbWFnZVtXZV0pOmUudGV4SW1hZ2UyRCgzNDA2OStXZSxnbisxLE5uLEZ0LE90LGZpLmltYWdlW1dlXSl9fX1CKEwsbG4pJiZlZSgzNDA2NyksWS5fX3ZlcnNpb249TC52ZXJzaW9uLEwub25VcGRhdGUmJkwub25VcGRhdGUoTCl9KEhlLFksTCk6KGUuYWN0aXZlVGV4dHVyZSgzMzk4NCtMKSxlLmJpbmRUZXh0dXJlKDM0MDY3LEhlLl9fd2ViZ2xUZXh0dXJlKSl9bGV0IEZlPXtbWjNdOjEwNDk3LFtFc106MzMwNzEsW0szXTozMzY0OH0sbHQ9e1t2b106OTcyOCxbUiRdOjk5ODQsW1AkXTo5OTg2LFtpYV06OTcyOSxbRFJlXTo5OTg1LFskSV06OTk4N307ZnVuY3Rpb24gTXQoWSxMLEhlKXtpZihIZT8obi50ZXhQYXJhbWV0ZXJpKFksMTAyNDIsRmVbTC53cmFwU10pLG4udGV4UGFyYW1ldGVyaShZLDEwMjQzLEZlW0wud3JhcFRdKSwoMzI4Nzk9PT1ZfHwzNTg2Nj09PVkpJiZuLnRleFBhcmFtZXRlcmkoWSwzMjg4MixGZVtMLndyYXBSXSksbi50ZXhQYXJhbWV0ZXJpKFksMTAyNDAsbHRbTC5tYWdGaWx0ZXJdKSxuLnRleFBhcmFtZXRlcmkoWSwxMDI0MSxsdFtMLm1pbkZpbHRlcl0pKToobi50ZXhQYXJhbWV0ZXJpKFksMTAyNDIsMzMwNzEpLG4udGV4UGFyYW1ldGVyaShZLDEwMjQzLDMzMDcxKSwoMzI4Nzk9PT1ZfHwzNTg2Nj09PVkpJiZuLnRleFBhcmFtZXRlcmkoWSwzMjg4MiwzMzA3MSksKEwud3JhcFMhPT1Fc3x8TC53cmFwVCE9PUVzKSYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBUZXh0dXJlIGlzIG5vdCBwb3dlciBvZiB0d28uIFRleHR1cmUud3JhcFMgYW5kIFRleHR1cmUud3JhcFQgc2hvdWxkIGJlIHNldCB0byBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nLiIpLG4udGV4UGFyYW1ldGVyaShZLDEwMjQwLFFlKEwubWFnRmlsdGVyKSksbi50ZXhQYXJhbWV0ZXJpKFksMTAyNDEsUWUoTC5taW5GaWx0ZXIpKSxMLm1pbkZpbHRlciE9PXZvJiZMLm1pbkZpbHRlciE9PWlhJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgaXMgbm90IHBvd2VyIG9mIHR3by4gVGV4dHVyZS5taW5GaWx0ZXIgc2hvdWxkIGJlIHNldCB0byBUSFJFRS5OZWFyZXN0RmlsdGVyIG9yIFRIUkVFLkxpbmVhckZpbHRlci4iKSksITA9PT10LmhhcygiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpe2xldCB5dD10LmdldCgiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7aWYoTC50eXBlPT09Z20mJiExPT09dC5oYXMoIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpfHwhMT09PXMmJkwudHlwZT09PXEwJiYhMT09PXQuaGFzKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKXJldHVybjsoTC5hbmlzb3Ryb3B5PjF8fGkuZ2V0KEwpLl9fY3VycmVudEFuaXNvdHJvcHkpJiYobi50ZXhQYXJhbWV0ZXJmKFkseXQuVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQsTWF0aC5taW4oTC5hbmlzb3Ryb3B5LHIuZ2V0TWF4QW5pc290cm9weSgpKSksaS5nZXQoTCkuX19jdXJyZW50QW5pc290cm9weT1MLmFuaXNvdHJvcHkpfX1mdW5jdGlvbiBwdChZLEwpe3ZvaWQgMD09PVkuX193ZWJnbEluaXQmJihZLl9fd2ViZ2xJbml0PSEwLEwuYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsQWUpLFkuX193ZWJnbFRleHR1cmU9bi5jcmVhdGVUZXh0dXJlKCksYS5tZW1vcnkudGV4dHVyZXMrKyl9ZnVuY3Rpb24ga2UoWSxMLEhlKXtsZXQgeXQ9MzU1MztMLmlzRGF0YVRleHR1cmUyREFycmF5JiYoeXQ9MzU4NjYpLEwuaXNEYXRhVGV4dHVyZTNEJiYoeXQ9MzI4NzkpLHB0KFksTCksZS5hY3RpdmVUZXh0dXJlKDMzOTg0K0hlKSxlLmJpbmRUZXh0dXJlKHl0LFkuX193ZWJnbFRleHR1cmUpLG4ucGl4ZWxTdG9yZWkoMzc0NDAsTC5mbGlwWSksbi5waXhlbFN0b3JlaSgzNzQ0MSxMLnByZW11bHRpcGx5QWxwaGEpLG4ucGl4ZWxTdG9yZWkoMzMxNyxMLnVucGFja0FsaWdubWVudCksbi5waXhlbFN0b3JlaSgzNzQ0MywwKTtsZXQgZW49ZnVuY3Rpb24oWSl7cmV0dXJuIXMmJihZLndyYXBTIT09RXN8fFkud3JhcFQhPT1Fc3x8WS5taW5GaWx0ZXIhPT12byYmWS5taW5GaWx0ZXIhPT1pYSl9KEwpJiYhMT09PVIoTC5pbWFnZSksTGU9eChMLmltYWdlLGVuLCExLGQpO0xlPWFuKEwsTGUpO2xldCBobj1SKExlKXx8cyxsbj1vLmNvbnZlcnQoTC5mb3JtYXQsTC5lbmNvZGluZyksRnQ9by5jb252ZXJ0KEwudHlwZSksT3Q9UShMLmludGVybmFsRm9ybWF0LGxuLEZ0LEwuZW5jb2RpbmcsTC5pc1ZpZGVvVGV4dHVyZSk7TXQoeXQsTCxobik7bGV0IE5uLHNlPUwubWlwbWFwcyxKdD1zJiYhMCE9PUwuaXNWaWRlb1RleHR1cmUsVXQ9dm9pZCAwPT09WS5fX3ZlcnNpb24sU249d2UoTCxMZSxobik7aWYoTC5pc0RlcHRoVGV4dHVyZSlPdD02NDAyLHM/T3Q9TC50eXBlPT09Z20/MzYwMTI6TC50eXBlPT09eEk/MzMxOTA6TC50eXBlPT09WDA/MzUwNTY6MzMxODk6TC50eXBlPT09Z20mJmNvbnNvbGUuZXJyb3IoIldlYkdMUmVuZGVyZXI6IEZsb2F0aW5nIHBvaW50IGRlcHRoIHRleHR1cmUgcmVxdWlyZXMgV2ViR0wyLiIpLEwuZm9ybWF0PT09Ym0mJjY0MDI9PT1PdCYmTC50eXBlIT09eHgmJkwudHlwZSE9PXhJJiYoY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBVc2UgVW5zaWduZWRTaG9ydFR5cGUgb3IgVW5zaWduZWRJbnRUeXBlIGZvciBEZXB0aEZvcm1hdCBEZXB0aFRleHR1cmUuIiksTC50eXBlPXh4LEZ0PW8uY29udmVydChMLnR5cGUpKSxMLmZvcm1hdD09PUswJiY2NDAyPT09T3QmJihPdD0zNDA0MSxMLnR5cGUhPT1YMCYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVXNlIFVuc2lnbmVkSW50MjQ4VHlwZSBmb3IgRGVwdGhTdGVuY2lsRm9ybWF0IERlcHRoVGV4dHVyZS4iKSxMLnR5cGU9WDAsRnQ9by5jb252ZXJ0KEwudHlwZSkpKSxKdCYmVXQ/ZS50ZXhTdG9yYWdlMkQoMzU1MywxLE90LExlLndpZHRoLExlLmhlaWdodCk6ZS50ZXhJbWFnZTJEKDM1NTMsMCxPdCxMZS53aWR0aCxMZS5oZWlnaHQsMCxsbixGdCxudWxsKTtlbHNlIGlmKEwuaXNEYXRhVGV4dHVyZSlpZihzZS5sZW5ndGg+MCYmaG4pe0p0JiZVdCYmZS50ZXhTdG9yYWdlMkQoMzU1MyxTbixPdCxzZVswXS53aWR0aCxzZVswXS5oZWlnaHQpO2ZvcihsZXQgV2U9MCxnbj1zZS5sZW5ndGg7V2U8Z247V2UrKylObj1zZVtXZV0sSnQ/ZS50ZXhTdWJJbWFnZTJEKDM1NTMsMCwwLDAsTm4ud2lkdGgsTm4uaGVpZ2h0LGxuLEZ0LE5uLmRhdGEpOmUudGV4SW1hZ2UyRCgzNTUzLFdlLE90LE5uLndpZHRoLE5uLmhlaWdodCwwLGxuLEZ0LE5uLmRhdGEpO0wuZ2VuZXJhdGVNaXBtYXBzPSExfWVsc2UgSnQ/KFV0JiZlLnRleFN0b3JhZ2UyRCgzNTUzLFNuLE90LExlLndpZHRoLExlLmhlaWdodCksZS50ZXhTdWJJbWFnZTJEKDM1NTMsMCwwLDAsTGUud2lkdGgsTGUuaGVpZ2h0LGxuLEZ0LExlLmRhdGEpKTplLnRleEltYWdlMkQoMzU1MywwLE90LExlLndpZHRoLExlLmhlaWdodCwwLGxuLEZ0LExlLmRhdGEpO2Vsc2UgaWYoTC5pc0NvbXByZXNzZWRUZXh0dXJlKXtKdCYmVXQmJmUudGV4U3RvcmFnZTJEKDM1NTMsU24sT3Qsc2VbMF0ud2lkdGgsc2VbMF0uaGVpZ2h0KTtmb3IobGV0IFdlPTAsZ249c2UubGVuZ3RoO1dlPGduO1dlKyspTm49c2VbV2VdLEwuZm9ybWF0IT09Q2E/bnVsbCE9PWxuP0p0P2UuY29tcHJlc3NlZFRleFN1YkltYWdlMkQoMzU1MyxXZSwwLDAsTm4ud2lkdGgsTm4uaGVpZ2h0LGxuLE5uLmRhdGEpOmUuY29tcHJlc3NlZFRleEltYWdlMkQoMzU1MyxXZSxPdCxObi53aWR0aCxObi5oZWlnaHQsMCxObi5kYXRhKTpjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEF0dGVtcHQgdG8gbG9hZCB1bnN1cHBvcnRlZCBjb21wcmVzc2VkIHRleHR1cmUgZm9ybWF0IGluIC51cGxvYWRUZXh0dXJlKCkiKTpKdD9lLnRleFN1YkltYWdlMkQoMzU1MyxXZSwwLDAsTm4ud2lkdGgsTm4uaGVpZ2h0LGxuLEZ0LE5uLmRhdGEpOmUudGV4SW1hZ2UyRCgzNTUzLFdlLE90LE5uLndpZHRoLE5uLmhlaWdodCwwLGxuLEZ0LE5uLmRhdGEpfWVsc2UgaWYoTC5pc0RhdGFUZXh0dXJlMkRBcnJheSlKdD8oVXQmJmUudGV4U3RvcmFnZTNEKDM1ODY2LFNuLE90LExlLndpZHRoLExlLmhlaWdodCxMZS5kZXB0aCksZS50ZXhTdWJJbWFnZTNEKDM1ODY2LDAsMCwwLDAsTGUud2lkdGgsTGUuaGVpZ2h0LExlLmRlcHRoLGxuLEZ0LExlLmRhdGEpKTplLnRleEltYWdlM0QoMzU4NjYsMCxPdCxMZS53aWR0aCxMZS5oZWlnaHQsTGUuZGVwdGgsMCxsbixGdCxMZS5kYXRhKTtlbHNlIGlmKEwuaXNEYXRhVGV4dHVyZTNEKUp0PyhVdCYmZS50ZXhTdG9yYWdlM0QoMzI4NzksU24sT3QsTGUud2lkdGgsTGUuaGVpZ2h0LExlLmRlcHRoKSxlLnRleFN1YkltYWdlM0QoMzI4NzksMCwwLDAsMCxMZS53aWR0aCxMZS5oZWlnaHQsTGUuZGVwdGgsbG4sRnQsTGUuZGF0YSkpOmUudGV4SW1hZ2UzRCgzMjg3OSwwLE90LExlLndpZHRoLExlLmhlaWdodCxMZS5kZXB0aCwwLGxuLEZ0LExlLmRhdGEpO2Vsc2UgaWYoTC5pc0ZyYW1lYnVmZmVyVGV4dHVyZSlKdCYmVXQ/ZS50ZXhTdG9yYWdlMkQoMzU1MyxTbixPdCxMZS53aWR0aCxMZS5oZWlnaHQpOmUudGV4SW1hZ2UyRCgzNTUzLDAsT3QsTGUud2lkdGgsTGUuaGVpZ2h0LDAsbG4sRnQsbnVsbCk7ZWxzZSBpZihzZS5sZW5ndGg+MCYmaG4pe0p0JiZVdCYmZS50ZXhTdG9yYWdlMkQoMzU1MyxTbixPdCxzZVswXS53aWR0aCxzZVswXS5oZWlnaHQpO2ZvcihsZXQgV2U9MCxnbj1zZS5sZW5ndGg7V2U8Z247V2UrKylObj1zZVtXZV0sSnQ/ZS50ZXhTdWJJbWFnZTJEKDM1NTMsV2UsMCwwLGxuLEZ0LE5uKTplLnRleEltYWdlMkQoMzU1MyxXZSxPdCxsbixGdCxObik7TC5nZW5lcmF0ZU1pcG1hcHM9ITF9ZWxzZSBKdD8oVXQmJmUudGV4U3RvcmFnZTJEKDM1NTMsU24sT3QsTGUud2lkdGgsTGUuaGVpZ2h0KSxlLnRleFN1YkltYWdlMkQoMzU1MywwLDAsMCxsbixGdCxMZSkpOmUudGV4SW1hZ2UyRCgzNTUzLDAsT3QsbG4sRnQsTGUpO0IoTCxobikmJmVlKHl0KSxZLl9fdmVyc2lvbj1MLnZlcnNpb24sTC5vblVwZGF0ZSYmTC5vblVwZGF0ZShMKX1mdW5jdGlvbiB3dChZLEwsSGUseXQsZW4pe2xldCBMZT1vLmNvbnZlcnQoSGUuZm9ybWF0LEhlLmVuY29kaW5nKSxobj1vLmNvbnZlcnQoSGUudHlwZSksbG49UShIZS5pbnRlcm5hbEZvcm1hdCxMZSxobixIZS5lbmNvZGluZyk7aS5nZXQoTCkuX19oYXNFeHRlcm5hbFRleHR1cmVzfHwoMzI4Nzk9PT1lbnx8MzU4NjY9PT1lbj9lLnRleEltYWdlM0QoZW4sMCxsbixMLndpZHRoLEwuaGVpZ2h0LEwuZGVwdGgsMCxMZSxobixudWxsKTplLnRleEltYWdlMkQoZW4sMCxsbixMLndpZHRoLEwuaGVpZ2h0LDAsTGUsaG4sbnVsbCkpLGUuYmluZEZyYW1lYnVmZmVyKDM2MTYwLFkpLEwudXNlUmVuZGVyVG9UZXh0dXJlP2guZnJhbWVidWZmZXJUZXh0dXJlMkRNdWx0aXNhbXBsZUVYVCgzNjE2MCx5dCxlbixpLmdldChIZSkuX193ZWJnbFRleHR1cmUsMCxfdChMKSk6bi5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCx5dCxlbixpLmdldChIZSkuX193ZWJnbFRleHR1cmUsMCksZS5iaW5kRnJhbWVidWZmZXIoMzYxNjAsbnVsbCl9ZnVuY3Rpb24gb24oWSxMLEhlKXtpZihuLmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsWSksTC5kZXB0aEJ1ZmZlciYmIUwuc3RlbmNpbEJ1ZmZlcil7bGV0IHl0PTMzMTg5O2lmKEhlfHxMLnVzZVJlbmRlclRvVGV4dHVyZSl7bGV0IGVuPUwuZGVwdGhUZXh0dXJlO2VuJiZlbi5pc0RlcHRoVGV4dHVyZSYmKGVuLnR5cGU9PT1nbT95dD0zNjAxMjplbi50eXBlPT09eEkmJih5dD0zMzE5MCkpO2xldCBMZT1fdChMKTtMLnVzZVJlbmRlclRvVGV4dHVyZT9oLnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZUVYVCgzNjE2MSxMZSx5dCxMLndpZHRoLEwuaGVpZ2h0KTpuLnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSgzNjE2MSxMZSx5dCxMLndpZHRoLEwuaGVpZ2h0KX1lbHNlIG4ucmVuZGVyYnVmZmVyU3RvcmFnZSgzNjE2MSx5dCxMLndpZHRoLEwuaGVpZ2h0KTtuLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKDM2MTYwLDM2MDk2LDM2MTYxLFkpfWVsc2UgaWYoTC5kZXB0aEJ1ZmZlciYmTC5zdGVuY2lsQnVmZmVyKXtsZXQgeXQ9X3QoTCk7SGUmJkwudXNlUmVuZGVyYnVmZmVyP24ucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKDM2MTYxLHl0LDM1MDU2LEwud2lkdGgsTC5oZWlnaHQpOkwudXNlUmVuZGVyVG9UZXh0dXJlP2gucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlRVhUKDM2MTYxLHl0LDM1MDU2LEwud2lkdGgsTC5oZWlnaHQpOm4ucmVuZGVyYnVmZmVyU3RvcmFnZSgzNjE2MSwzNDA0MSxMLndpZHRoLEwuaGVpZ2h0KSxuLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKDM2MTYwLDMzMzA2LDM2MTYxLFkpfWVsc2V7bGV0IHl0PSEwPT09TC5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzP0wudGV4dHVyZVswXTpMLnRleHR1cmUsZW49by5jb252ZXJ0KHl0LmZvcm1hdCx5dC5lbmNvZGluZyksTGU9by5jb252ZXJ0KHl0LnR5cGUpLGhuPVEoeXQuaW50ZXJuYWxGb3JtYXQsZW4sTGUseXQuZW5jb2RpbmcpLGxuPV90KEwpO0hlJiZMLnVzZVJlbmRlcmJ1ZmZlcj9uLnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSgzNjE2MSxsbixobixMLndpZHRoLEwuaGVpZ2h0KTpMLnVzZVJlbmRlclRvVGV4dHVyZT9oLnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZUVYVCgzNjE2MSxsbixobixMLndpZHRoLEwuaGVpZ2h0KTpuLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoMzYxNjEsaG4sTC53aWR0aCxMLmhlaWdodCl9bi5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpfWZ1bmN0aW9uIG10KFkpe2xldCBMPWkuZ2V0KFkpLEhlPSEwPT09WS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldDtpZihZLmRlcHRoVGV4dHVyZSYmIUwuX19hdXRvQWxsb2NhdGVEZXB0aEJ1ZmZlcil7aWYoSGUpdGhyb3cgbmV3IEVycm9yKCJ0YXJnZXQuZGVwdGhUZXh0dXJlIG5vdCBzdXBwb3J0ZWQgaW4gQ3ViZSByZW5kZXIgdGFyZ2V0cyIpOyFmdW5jdGlvbihZLEwpe2lmKEwmJkwuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQpdGhyb3cgbmV3IEVycm9yKCJEZXB0aCBUZXh0dXJlIHdpdGggY3ViZSByZW5kZXIgdGFyZ2V0cyBpcyBub3Qgc3VwcG9ydGVkIik7aWYoZS5iaW5kRnJhbWVidWZmZXIoMzYxNjAsWSksIUwuZGVwdGhUZXh0dXJlfHwhTC5kZXB0aFRleHR1cmUuaXNEZXB0aFRleHR1cmUpdGhyb3cgbmV3IEVycm9yKCJyZW5kZXJUYXJnZXQuZGVwdGhUZXh0dXJlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgVEhSRUUuRGVwdGhUZXh0dXJlIik7KCFpLmdldChMLmRlcHRoVGV4dHVyZSkuX193ZWJnbFRleHR1cmV8fEwuZGVwdGhUZXh0dXJlLmltYWdlLndpZHRoIT09TC53aWR0aHx8TC5kZXB0aFRleHR1cmUuaW1hZ2UuaGVpZ2h0IT09TC5oZWlnaHQpJiYoTC5kZXB0aFRleHR1cmUuaW1hZ2Uud2lkdGg9TC53aWR0aCxMLmRlcHRoVGV4dHVyZS5pbWFnZS5oZWlnaHQ9TC5oZWlnaHQsTC5kZXB0aFRleHR1cmUubmVlZHNVcGRhdGU9ITApLGRlKEwuZGVwdGhUZXh0dXJlLDApO2xldCB5dD1pLmdldChMLmRlcHRoVGV4dHVyZSkuX193ZWJnbFRleHR1cmUsZW49X3QoTCk7aWYoTC5kZXB0aFRleHR1cmUuZm9ybWF0PT09Ym0pTC51c2VSZW5kZXJUb1RleHR1cmU/aC5mcmFtZWJ1ZmZlclRleHR1cmUyRE11bHRpc2FtcGxlRVhUKDM2MTYwLDM2MDk2LDM1NTMseXQsMCxlbik6bi5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjA5NiwzNTUzLHl0LDApO2Vsc2V7aWYoTC5kZXB0aFRleHR1cmUuZm9ybWF0IT09SzApdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRlcHRoVGV4dHVyZSBmb3JtYXQiKTtMLnVzZVJlbmRlclRvVGV4dHVyZT9oLmZyYW1lYnVmZmVyVGV4dHVyZTJETXVsdGlzYW1wbGVFWFQoMzYxNjAsMzMzMDYsMzU1Myx5dCwwLGVuKTpuLmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDMzMzA2LDM1NTMseXQsMCl9fShMLl9fd2ViZ2xGcmFtZWJ1ZmZlcixZKX1lbHNlIGlmKEhlKXtMLl9fd2ViZ2xEZXB0aGJ1ZmZlcj1bXTtmb3IobGV0IHl0PTA7eXQ8Njt5dCsrKWUuYmluZEZyYW1lYnVmZmVyKDM2MTYwLEwuX193ZWJnbEZyYW1lYnVmZmVyW3l0XSksTC5fX3dlYmdsRGVwdGhidWZmZXJbeXRdPW4uY3JlYXRlUmVuZGVyYnVmZmVyKCksb24oTC5fX3dlYmdsRGVwdGhidWZmZXJbeXRdLFksITEpfWVsc2UgZS5iaW5kRnJhbWVidWZmZXIoMzYxNjAsTC5fX3dlYmdsRnJhbWVidWZmZXIpLEwuX193ZWJnbERlcHRoYnVmZmVyPW4uY3JlYXRlUmVuZGVyYnVmZmVyKCksb24oTC5fX3dlYmdsRGVwdGhidWZmZXIsWSwhMSk7ZS5iaW5kRnJhbWVidWZmZXIoMzYxNjAsbnVsbCl9ZnVuY3Rpb24gX3QoWSl7cmV0dXJuIHMmJihZLnVzZVJlbmRlcmJ1ZmZlcnx8WS51c2VSZW5kZXJUb1RleHR1cmUpP01hdGgubWluKHUsWS5zYW1wbGVzKTowfWZ1bmN0aW9uIGFuKFksTCl7bGV0IEhlPVkuZW5jb2RpbmcseXQ9WS5mb3JtYXQsZW49WS50eXBlO3JldHVybiEwPT09WS5pc0NvbXByZXNzZWRUZXh0dXJlfHwhMD09PVkuaXNWaWRlb1RleHR1cmV8fFkuZm9ybWF0PT09SjN8fEhlIT09d3AmJihIZT09PURyPyExPT09cz8hMD09PXQuaGFzKCJFWFRfc1JHQiIpJiZ5dD09PUNhPyhZLmZvcm1hdD1KMyxZLm1pbkZpbHRlcj1pYSxZLmdlbmVyYXRlTWlwbWFwcz0hMSk6TD1VZC5zUkdCVG9MaW5lYXIoTCk6KHl0IT09Q2F8fGVuIT09eHApJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMVGV4dHVyZXM6IHNSR0IgZW5jb2RlZCB0ZXh0dXJlcyBoYXZlIHRvIHVzZSBSR0JBRm9ybWF0IGFuZCBVbnNpZ25lZEJ5dGVUeXBlLiIpOmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMVGV4dHVyZXM6IFVuc3VwcG9ydGVkIHRleHR1cmUgZW5jb2Rpbmc6IixIZSkpLEx9bGV0IHluPSExLHNpPSExO3RoaXMuYWxsb2NhdGVUZXh0dXJlVW5pdD1mdW5jdGlvbigpe2xldCBZPWhlO3JldHVybiBZPj1sJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMVGV4dHVyZXM6IFRyeWluZyB0byB1c2UgIitZKyIgdGV4dHVyZSB1bml0cyB3aGlsZSB0aGlzIEdQVSBzdXBwb3J0cyBvbmx5ICIrbCksaGUrPTEsWX0sdGhpcy5yZXNldFRleHR1cmVVbml0cz1mdW5jdGlvbigpe2hlPTB9LHRoaXMuc2V0VGV4dHVyZTJEPWRlLHRoaXMuc2V0VGV4dHVyZTJEQXJyYXk9ZnVuY3Rpb24oWSxMKXtsZXQgSGU9aS5nZXQoWSk7WS52ZXJzaW9uPjAmJkhlLl9fdmVyc2lvbiE9PVkudmVyc2lvbj9rZShIZSxZLEwpOihlLmFjdGl2ZVRleHR1cmUoMzM5ODQrTCksZS5iaW5kVGV4dHVyZSgzNTg2NixIZS5fX3dlYmdsVGV4dHVyZSkpfSx0aGlzLnNldFRleHR1cmUzRD1mdW5jdGlvbihZLEwpe2xldCBIZT1pLmdldChZKTtZLnZlcnNpb24+MCYmSGUuX192ZXJzaW9uIT09WS52ZXJzaW9uP2tlKEhlLFksTCk6KGUuYWN0aXZlVGV4dHVyZSgzMzk4NCtMKSxlLmJpbmRUZXh0dXJlKDMyODc5LEhlLl9fd2ViZ2xUZXh0dXJlKSl9LHRoaXMuc2V0VGV4dHVyZUN1YmU9U2UsdGhpcy5yZWJpbmRUZXh0dXJlcz1mdW5jdGlvbihZLEwsSGUpe2xldCB5dD1pLmdldChZKTt2b2lkIDAhPT1MJiZ3dCh5dC5fX3dlYmdsRnJhbWVidWZmZXIsWSxZLnRleHR1cmUsMzYwNjQsMzU1Myksdm9pZCAwIT09SGUmJm10KFkpfSx0aGlzLnNldHVwUmVuZGVyVGFyZ2V0PWZ1bmN0aW9uKFkpe2xldCBMPVkudGV4dHVyZSxIZT1pLmdldChZKSx5dD1pLmdldChMKTtZLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLEQpLCEwIT09WS5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzJiYodm9pZCAwPT09eXQuX193ZWJnbFRleHR1cmUmJih5dC5fX3dlYmdsVGV4dHVyZT1uLmNyZWF0ZVRleHR1cmUoKSkseXQuX192ZXJzaW9uPUwudmVyc2lvbixhLm1lbW9yeS50ZXh0dXJlcysrKTtsZXQgZW49ITA9PT1ZLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0LExlPSEwPT09WS5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzLGhuPUwuaXNEYXRhVGV4dHVyZTNEfHxMLmlzRGF0YVRleHR1cmUyREFycmF5LGxuPVIoWSl8fHM7aWYoZW4pe0hlLl9fd2ViZ2xGcmFtZWJ1ZmZlcj1bXTtmb3IobGV0IEZ0PTA7RnQ8NjtGdCsrKUhlLl9fd2ViZ2xGcmFtZWJ1ZmZlcltGdF09bi5jcmVhdGVGcmFtZWJ1ZmZlcigpfWVsc2UgaWYoSGUuX193ZWJnbEZyYW1lYnVmZmVyPW4uY3JlYXRlRnJhbWVidWZmZXIoKSxMZSlpZihyLmRyYXdCdWZmZXJzKXtsZXQgRnQ9WS50ZXh0dXJlO2ZvcihsZXQgT3Q9MCxObj1GdC5sZW5ndGg7T3Q8Tm47T3QrKyl7bGV0IHNlPWkuZ2V0KEZ0W090XSk7dm9pZCAwPT09c2UuX193ZWJnbFRleHR1cmUmJihzZS5fX3dlYmdsVGV4dHVyZT1uLmNyZWF0ZVRleHR1cmUoKSxhLm1lbW9yeS50ZXh0dXJlcysrKX19ZWxzZSBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFdlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBXZWJHTDIgb3IgV0VCR0xfZHJhd19idWZmZXJzIGV4dGVuc2lvbi4iKTtlbHNlIGlmKFkudXNlUmVuZGVyYnVmZmVyKWlmKHMpe0hlLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcj1uLmNyZWF0ZUZyYW1lYnVmZmVyKCksSGUuX193ZWJnbENvbG9yUmVuZGVyYnVmZmVyPW4uY3JlYXRlUmVuZGVyYnVmZmVyKCksbi5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLEhlLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlcik7bGV0IEZ0PW8uY29udmVydChMLmZvcm1hdCxMLmVuY29kaW5nKSxPdD1vLmNvbnZlcnQoTC50eXBlKSxObj1RKEwuaW50ZXJuYWxGb3JtYXQsRnQsT3QsTC5lbmNvZGluZyksc2U9X3QoWSk7bi5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoMzYxNjEsc2UsTm4sWS53aWR0aCxZLmhlaWdodCksZS5iaW5kRnJhbWVidWZmZXIoMzYxNjAsSGUuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyKSxuLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKDM2MTYwLDM2MDY0LDM2MTYxLEhlLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlciksbi5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpLFkuZGVwdGhCdWZmZXImJihIZS5fX3dlYmdsRGVwdGhSZW5kZXJidWZmZXI9bi5jcmVhdGVSZW5kZXJidWZmZXIoKSxvbihIZS5fX3dlYmdsRGVwdGhSZW5kZXJidWZmZXIsWSwhMCkpLGUuYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpfWVsc2UgY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBXZWJHTDIuIik7aWYoZW4pe2UuYmluZFRleHR1cmUoMzQwNjcseXQuX193ZWJnbFRleHR1cmUpLE10KDM0MDY3LEwsbG4pO2ZvcihsZXQgRnQ9MDtGdDw2O0Z0Kyspd3QoSGUuX193ZWJnbEZyYW1lYnVmZmVyW0Z0XSxZLEwsMzYwNjQsMzQwNjkrRnQpO0IoTCxsbikmJmVlKDM0MDY3KSxlLnVuYmluZFRleHR1cmUoKX1lbHNlIGlmKExlKXtsZXQgRnQ9WS50ZXh0dXJlO2ZvcihsZXQgT3Q9MCxObj1GdC5sZW5ndGg7T3Q8Tm47T3QrKyl7bGV0IHNlPUZ0W090XSxKdD1pLmdldChzZSk7ZS5iaW5kVGV4dHVyZSgzNTUzLEp0Ll9fd2ViZ2xUZXh0dXJlKSxNdCgzNTUzLHNlLGxuKSx3dChIZS5fX3dlYmdsRnJhbWVidWZmZXIsWSxzZSwzNjA2NCtPdCwzNTUzKSxCKHNlLGxuKSYmZWUoMzU1Myl9ZS51bmJpbmRUZXh0dXJlKCl9ZWxzZXtsZXQgRnQ9MzU1MztobiYmKHM/RnQ9TC5pc0RhdGFUZXh0dXJlM0Q/MzI4Nzk6MzU4NjY6Y29uc29sZS53YXJuKCJUSFJFRS5EYXRhVGV4dHVyZTNEIGFuZCBUSFJFRS5EYXRhVGV4dHVyZTJEQXJyYXkgb25seSBzdXBwb3J0ZWQgd2l0aCBXZWJHTDIuIikpLGUuYmluZFRleHR1cmUoRnQseXQuX193ZWJnbFRleHR1cmUpLE10KEZ0LEwsbG4pLHd0KEhlLl9fd2ViZ2xGcmFtZWJ1ZmZlcixZLEwsMzYwNjQsRnQpLEIoTCxsbikmJmVlKEZ0KSxlLnVuYmluZFRleHR1cmUoKX1ZLmRlcHRoQnVmZmVyJiZtdChZKX0sdGhpcy51cGRhdGVSZW5kZXJUYXJnZXRNaXBtYXA9ZnVuY3Rpb24oWSl7bGV0IEw9UihZKXx8cyxIZT0hMD09PVkuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cz9ZLnRleHR1cmU6W1kudGV4dHVyZV07Zm9yKGxldCB5dD0wLGVuPUhlLmxlbmd0aDt5dDxlbjt5dCsrKXtsZXQgTGU9SGVbeXRdO2lmKEIoTGUsTCkpe2xldCBobj1ZLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0PzM0MDY3OjM1NTMsbG49aS5nZXQoTGUpLl9fd2ViZ2xUZXh0dXJlO2UuYmluZFRleHR1cmUoaG4sbG4pLGVlKGhuKSxlLnVuYmluZFRleHR1cmUoKX19fSx0aGlzLnVwZGF0ZU11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0PWZ1bmN0aW9uKFkpe2lmKFkudXNlUmVuZGVyYnVmZmVyKWlmKHMpe2xldCBMPVkud2lkdGgsSGU9WS5oZWlnaHQseXQ9MTYzODQsZW49WzM2MDY0XSxMZT1ZLnN0ZW5jaWxCdWZmZXI/MzMzMDY6MzYwOTY7WS5kZXB0aEJ1ZmZlciYmZW4ucHVzaChMZSksWS5pZ25vcmVEZXB0aEZvck11bHRpc2FtcGxlQ29weXx8KFkuZGVwdGhCdWZmZXImJih5dHw9MjU2KSxZLnN0ZW5jaWxCdWZmZXImJih5dHw9MTAyNCkpO2xldCBobj1pLmdldChZKTtlLmJpbmRGcmFtZWJ1ZmZlcigzNjAwOCxobi5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXIpLGUuYmluZEZyYW1lYnVmZmVyKDM2MDA5LGhuLl9fd2ViZ2xGcmFtZWJ1ZmZlciksWS5pZ25vcmVEZXB0aEZvck11bHRpc2FtcGxlQ29weSYmKG4uaW52YWxpZGF0ZUZyYW1lYnVmZmVyKDM2MDA4LFtMZV0pLG4uaW52YWxpZGF0ZUZyYW1lYnVmZmVyKDM2MDA5LFtMZV0pKSxuLmJsaXRGcmFtZWJ1ZmZlcigwLDAsTCxIZSwwLDAsTCxIZSx5dCw5NzI4KSxuLmludmFsaWRhdGVGcmFtZWJ1ZmZlcigzNjAwOCxlbiksZS5iaW5kRnJhbWVidWZmZXIoMzYwMDgsbnVsbCksZS5iaW5kRnJhbWVidWZmZXIoMzYwMDksaG4uX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyKX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogV2ViR0xNdWx0aXNhbXBsZVJlbmRlclRhcmdldCBjYW4gb25seSBiZSB1c2VkIHdpdGggV2ViR0wyLiIpfSx0aGlzLnNldHVwRGVwdGhSZW5kZXJidWZmZXI9bXQsdGhpcy5zZXR1cEZyYW1lQnVmZmVyVGV4dHVyZT13dCx0aGlzLnNhZmVTZXRUZXh0dXJlMkQ9ZnVuY3Rpb24oWSxMKXtZJiZZLmlzV2ViR0xSZW5kZXJUYXJnZXQmJighMT09PXluJiYoY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFRleHR1cmVzLnNhZmVTZXRUZXh0dXJlMkQ6IGRvbid0IHVzZSByZW5kZXIgdGFyZ2V0cyBhcyB0ZXh0dXJlcy4gVXNlIHRoZWlyIC50ZXh0dXJlIHByb3BlcnR5IGluc3RlYWQuIikseW49ITApLFk9WS50ZXh0dXJlKSxkZShZLEwpfSx0aGlzLnNhZmVTZXRUZXh0dXJlQ3ViZT1mdW5jdGlvbihZLEwpe1kmJlkuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQmJighMT09PXNpJiYoY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFRleHR1cmVzLnNhZmVTZXRUZXh0dXJlQ3ViZTogZG9uJ3QgdXNlIGN1YmUgcmVuZGVyIHRhcmdldHMgYXMgdGV4dHVyZXMuIFVzZSB0aGVpciAudGV4dHVyZSBwcm9wZXJ0eSBpbnN0ZWFkLiIpLHNpPSEwKSxZPVkudGV4dHVyZSksU2UoWSxMKX19ZnVuY3Rpb24gRTJlKG4sdCxlKXtsZXQgaT1lLmlzV2ViR0wyO3JldHVybntjb252ZXJ0OmZ1bmN0aW9uKG8sYT1udWxsKXtsZXQgcztpZihvPT09eHApcmV0dXJuIDUxMjE7aWYobz09PVBSZSlyZXR1cm4gMzI4MTk7aWYobz09PWtSZSlyZXR1cm4gMzI4MjA7aWYobz09PUlSZSlyZXR1cm4gNTEyMDtpZihvPT09QVJlKXJldHVybiA1MTIyO2lmKG89PT14eClyZXR1cm4gNTEyMztpZihvPT09UlJlKXJldHVybiA1MTI0O2lmKG89PT14SSlyZXR1cm4gNTEyNTtpZihvPT09Z20pcmV0dXJuIDUxMjY7aWYobz09PXEwKXJldHVybiBpPzUxMzE6KHM9dC5nZXQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSxudWxsIT09cz9zLkhBTEZfRkxPQVRfT0VTOm51bGwpO2lmKG89PT1PUmUpcmV0dXJuIDY0MDY7aWYobz09PUNhKXJldHVybiA2NDA4O2lmKG89PT1GUmUpcmV0dXJuIDY0MDk7aWYobz09PU5SZSlyZXR1cm4gNjQxMDtpZihvPT09Ym0pcmV0dXJuIDY0MDI7aWYobz09PUswKXJldHVybiAzNDA0MTtpZihvPT09TFJlKXJldHVybiA2NDAzO2lmKG89PT1KMylyZXR1cm4gcz10LmdldCgiRVhUX3NSR0IiKSxudWxsIT09cz9zLlNSR0JfQUxQSEFfRVhUOm51bGw7aWYobz09PUJSZSlyZXR1cm4gMzYyNDQ7aWYobz09PVZSZSlyZXR1cm4gMzMzMTk7aWYobz09PUhSZSlyZXR1cm4gMzMzMjA7aWYobz09PXpSZSlyZXR1cm4gMzYyNDk7aWYobz09PWwzfHxvPT09YzN8fG89PT1kM3x8bz09PXUzKWlmKGE9PT1Ecil7aWYocz10LmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGNfc3JnYiIpLG51bGw9PT1zKXJldHVybiBudWxsO2lmKG89PT1sMylyZXR1cm4gcy5DT01QUkVTU0VEX1NSR0JfUzNUQ19EWFQxX0VYVDtpZihvPT09YzMpcmV0dXJuIHMuQ09NUFJFU1NFRF9TUkdCX0FMUEhBX1MzVENfRFhUMV9FWFQ7aWYobz09PWQzKXJldHVybiBzLkNPTVBSRVNTRURfU1JHQl9BTFBIQV9TM1RDX0RYVDNfRVhUO2lmKG89PT11MylyZXR1cm4gcy5DT01QUkVTU0VEX1NSR0JfQUxQSEFfUzNUQ19EWFQ1X0VYVH1lbHNle2lmKHM9dC5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIiksbnVsbD09PXMpcmV0dXJuIG51bGw7aWYobz09PWwzKXJldHVybiBzLkNPTVBSRVNTRURfUkdCX1MzVENfRFhUMV9FWFQ7aWYobz09PWMzKXJldHVybiBzLkNPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDFfRVhUO2lmKG89PT1kMylyZXR1cm4gcy5DT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQzX0VYVDtpZihvPT09dTMpcmV0dXJuIHMuQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUNV9FWFR9aWYobz09PWskfHxvPT09TyR8fG89PT1GJHx8bz09PU4kKXtpZihzPXQuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSxudWxsPT09cylyZXR1cm4gbnVsbDtpZihvPT09ayQpcmV0dXJuIHMuQ09NUFJFU1NFRF9SR0JfUFZSVENfNEJQUFYxX0lNRztpZihvPT09TyQpcmV0dXJuIHMuQ09NUFJFU1NFRF9SR0JfUFZSVENfMkJQUFYxX0lNRztpZihvPT09RiQpcmV0dXJuIHMuQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzRCUFBWMV9JTUc7aWYobz09PU4kKXJldHVybiBzLkNPTVBSRVNTRURfUkdCQV9QVlJUQ18yQlBQVjFfSU1HfWlmKG89PT1VUmUpcmV0dXJuIHM9dC5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9ldGMxIiksbnVsbCE9PXM/cy5DT01QUkVTU0VEX1JHQl9FVEMxX1dFQkdMOm51bGw7aWYobz09PUwkfHxvPT09QiQpe2lmKHM9dC5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9ldGMiKSxudWxsPT09cylyZXR1cm4gbnVsbDtpZihvPT09TCQpcmV0dXJuIGE9PT1Ecj9zLkNPTVBSRVNTRURfU1JHQjhfRVRDMjpzLkNPTVBSRVNTRURfUkdCOF9FVEMyO2lmKG89PT1CJClyZXR1cm4gYT09PURyP3MuQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfRVRDMl9FQUM6cy5DT01QUkVTU0VEX1JHQkE4X0VUQzJfRUFDfWlmKG89PT1WJHx8bz09PUgkfHxvPT09eiR8fG89PT1VJHx8bz09PWokfHxvPT09RyR8fG89PT1XJHx8bz09PXEkfHxvPT09WCR8fG89PT1ZJHx8bz09PVEkfHxvPT09WiR8fG89PT1LJHx8bz09PUokKXtpZihzPXQuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXN0YyIpLG51bGw9PT1zKXJldHVybiBudWxsO2lmKG89PT1WJClyZXR1cm4gYT09PURyP3MuQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfQVNUQ180eDRfS0hSOnMuQ09NUFJFU1NFRF9SR0JBX0FTVENfNHg0X0tIUjtpZihvPT09SCQpcmV0dXJuIGE9PT1Ecj9zLkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0FTVENfNXg0X0tIUjpzLkNPTVBSRVNTRURfUkdCQV9BU1RDXzV4NF9LSFI7aWYobz09PXokKXJldHVybiBhPT09RHI/cy5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9BU1RDXzV4NV9LSFI6cy5DT01QUkVTU0VEX1JHQkFfQVNUQ181eDVfS0hSO2lmKG89PT1VJClyZXR1cm4gYT09PURyP3MuQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfQVNUQ182eDVfS0hSOnMuQ09NUFJFU1NFRF9SR0JBX0FTVENfNng1X0tIUjtpZihvPT09aiQpcmV0dXJuIGE9PT1Ecj9zLkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0FTVENfNng2X0tIUjpzLkNPTVBSRVNTRURfUkdCQV9BU1RDXzZ4Nl9LSFI7aWYobz09PUckKXJldHVybiBhPT09RHI/cy5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9BU1RDXzh4NV9LSFI6cy5DT01QUkVTU0VEX1JHQkFfQVNUQ184eDVfS0hSO2lmKG89PT1XJClyZXR1cm4gYT09PURyP3MuQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfQVNUQ184eDZfS0hSOnMuQ09NUFJFU1NFRF9SR0JBX0FTVENfOHg2X0tIUjtpZihvPT09cSQpcmV0dXJuIGE9PT1Ecj9zLkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0FTVENfOHg4X0tIUjpzLkNPTVBSRVNTRURfUkdCQV9BU1RDXzh4OF9LSFI7aWYobz09PVgkKXJldHVybiBhPT09RHI/cy5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9BU1RDXzEweDVfS0hSOnMuQ09NUFJFU1NFRF9SR0JBX0FTVENfMTB4NV9LSFI7aWYobz09PVkkKXJldHVybiBhPT09RHI/cy5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9BU1RDXzEweDZfS0hSOnMuQ09NUFJFU1NFRF9SR0JBX0FTVENfMTB4Nl9LSFI7aWYobz09PVEkKXJldHVybiBhPT09RHI/cy5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9BU1RDXzEweDhfS0hSOnMuQ09NUFJFU1NFRF9SR0JBX0FTVENfMTB4OF9LSFI7aWYobz09PVokKXJldHVybiBhPT09RHI/cy5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9BU1RDXzEweDEwX0tIUjpzLkNPTVBSRVNTRURfUkdCQV9BU1RDXzEweDEwX0tIUjtpZihvPT09SyQpcmV0dXJuIGE9PT1Ecj9zLkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0FTVENfMTJ4MTBfS0hSOnMuQ09NUFJFU1NFRF9SR0JBX0FTVENfMTJ4MTBfS0hSO2lmKG89PT1KJClyZXR1cm4gYT09PURyP3MuQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfQVNUQ18xMngxMl9LSFI6cy5DT01QUkVTU0VEX1JHQkFfQVNUQ18xMngxMl9LSFJ9aWYobz09PSQkKXtpZihzPXQuZ2V0KCJFWFRfdGV4dHVyZV9jb21wcmVzc2lvbl9icHRjIiksbnVsbD09PXMpcmV0dXJuIG51bGw7aWYobz09PSQkKXJldHVybiBhPT09RHI/cy5DT01QUkVTU0VEX1NSR0JfQUxQSEFfQlBUQ19VTk9STV9FWFQ6cy5DT01QUkVTU0VEX1JHQkFfQlBUQ19VTk9STV9FWFR9cmV0dXJuIG89PT1YMD9pPzM0MDQyOihzPXQuZ2V0KCJXRUJHTF9kZXB0aF90ZXh0dXJlIiksbnVsbCE9PXM/cy5VTlNJR05FRF9JTlRfMjRfOF9XRUJHTDpudWxsKTp2b2lkIDB9fX12YXIgT0k9Y2xhc3MgZXh0ZW5kcyByYXtjb25zdHJ1Y3Rvcih0PVtdKXtzdXBlcigpLHRoaXMuY2FtZXJhcz10fX07T0kucHJvdG90eXBlLmlzQXJyYXlDYW1lcmE9ITA7dmFyIF9tPWNsYXNzIGV4dGVuZHMgVWl7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iR3JvdXAifX07X20ucHJvdG90eXBlLmlzR3JvdXA9ITA7dmFyIFQyZT17dHlwZToibW92ZSJ9LF94PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fdGFyZ2V0UmF5PW51bGwsdGhpcy5fZ3JpcD1udWxsLHRoaXMuX2hhbmQ9bnVsbH1nZXRIYW5kU3BhY2UoKXtyZXR1cm4gbnVsbD09PXRoaXMuX2hhbmQmJih0aGlzLl9oYW5kPW5ldyBfbSx0aGlzLl9oYW5kLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5faGFuZC52aXNpYmxlPSExLHRoaXMuX2hhbmQuam9pbnRzPXt9LHRoaXMuX2hhbmQuaW5wdXRTdGF0ZT17cGluY2hpbmc6ITF9KSx0aGlzLl9oYW5kfWdldFRhcmdldFJheVNwYWNlKCl7cmV0dXJuIG51bGw9PT10aGlzLl90YXJnZXRSYXkmJih0aGlzLl90YXJnZXRSYXk9bmV3IF9tLHRoaXMuX3RhcmdldFJheS5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuX3RhcmdldFJheS52aXNpYmxlPSExLHRoaXMuX3RhcmdldFJheS5oYXNMaW5lYXJWZWxvY2l0eT0hMSx0aGlzLl90YXJnZXRSYXkubGluZWFyVmVsb2NpdHk9bmV3IEssdGhpcy5fdGFyZ2V0UmF5Lmhhc0FuZ3VsYXJWZWxvY2l0eT0hMSx0aGlzLl90YXJnZXRSYXkuYW5ndWxhclZlbG9jaXR5PW5ldyBLKSx0aGlzLl90YXJnZXRSYXl9Z2V0R3JpcFNwYWNlKCl7cmV0dXJuIG51bGw9PT10aGlzLl9ncmlwJiYodGhpcy5fZ3JpcD1uZXcgX20sdGhpcy5fZ3JpcC5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuX2dyaXAudmlzaWJsZT0hMSx0aGlzLl9ncmlwLmhhc0xpbmVhclZlbG9jaXR5PSExLHRoaXMuX2dyaXAubGluZWFyVmVsb2NpdHk9bmV3IEssdGhpcy5fZ3JpcC5oYXNBbmd1bGFyVmVsb2NpdHk9ITEsdGhpcy5fZ3JpcC5hbmd1bGFyVmVsb2NpdHk9bmV3IEspLHRoaXMuX2dyaXB9ZGlzcGF0Y2hFdmVudCh0KXtyZXR1cm4gbnVsbCE9PXRoaXMuX3RhcmdldFJheSYmdGhpcy5fdGFyZ2V0UmF5LmRpc3BhdGNoRXZlbnQodCksbnVsbCE9PXRoaXMuX2dyaXAmJnRoaXMuX2dyaXAuZGlzcGF0Y2hFdmVudCh0KSxudWxsIT09dGhpcy5faGFuZCYmdGhpcy5faGFuZC5kaXNwYXRjaEV2ZW50KHQpLHRoaXN9ZGlzY29ubmVjdCh0KXtyZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNjb25uZWN0ZWQiLGRhdGE6dH0pLG51bGwhPT10aGlzLl90YXJnZXRSYXkmJih0aGlzLl90YXJnZXRSYXkudmlzaWJsZT0hMSksbnVsbCE9PXRoaXMuX2dyaXAmJih0aGlzLl9ncmlwLnZpc2libGU9ITEpLG51bGwhPT10aGlzLl9oYW5kJiYodGhpcy5faGFuZC52aXNpYmxlPSExKSx0aGlzfXVwZGF0ZSh0LGUsaSl7bGV0IHI9bnVsbCxvPW51bGwsYT1udWxsLHM9dGhpcy5fdGFyZ2V0UmF5LGw9dGhpcy5fZ3JpcCxjPXRoaXMuX2hhbmQ7aWYodCYmInZpc2libGUtYmx1cnJlZCIhPT1lLnNlc3Npb24udmlzaWJpbGl0eVN0YXRlKWlmKG51bGwhPT1zJiYocj1lLmdldFBvc2UodC50YXJnZXRSYXlTcGFjZSxpKSxudWxsIT09ciYmKHMubWF0cml4LmZyb21BcnJheShyLnRyYW5zZm9ybS5tYXRyaXgpLHMubWF0cml4LmRlY29tcG9zZShzLnBvc2l0aW9uLHMucm90YXRpb24scy5zY2FsZSksci5saW5lYXJWZWxvY2l0eT8ocy5oYXNMaW5lYXJWZWxvY2l0eT0hMCxzLmxpbmVhclZlbG9jaXR5LmNvcHkoci5saW5lYXJWZWxvY2l0eSkpOnMuaGFzTGluZWFyVmVsb2NpdHk9ITEsci5hbmd1bGFyVmVsb2NpdHk/KHMuaGFzQW5ndWxhclZlbG9jaXR5PSEwLHMuYW5ndWxhclZlbG9jaXR5LmNvcHkoci5hbmd1bGFyVmVsb2NpdHkpKTpzLmhhc0FuZ3VsYXJWZWxvY2l0eT0hMSx0aGlzLmRpc3BhdGNoRXZlbnQoVDJlKSkpLGMmJnQuaGFuZCl7YT0hMDtmb3IobGV0IF8gb2YgdC5oYW5kLnZhbHVlcygpKXtsZXQgTT1lLmdldEpvaW50UG9zZShfLGkpO2lmKHZvaWQgMD09PWMuam9pbnRzW18uam9pbnROYW1lXSl7bGV0IHg9bmV3IF9tO3gubWF0cml4QXV0b1VwZGF0ZT0hMSx4LnZpc2libGU9ITEsYy5qb2ludHNbXy5qb2ludE5hbWVdPXgsYy5hZGQoeCl9bGV0IHk9Yy5qb2ludHNbXy5qb2ludE5hbWVdO251bGwhPT1NJiYoeS5tYXRyaXguZnJvbUFycmF5KE0udHJhbnNmb3JtLm1hdHJpeCkseS5tYXRyaXguZGVjb21wb3NlKHkucG9zaXRpb24seS5yb3RhdGlvbix5LnNjYWxlKSx5LmpvaW50UmFkaXVzPU0ucmFkaXVzKSx5LnZpc2libGU9bnVsbCE9PU19bGV0IHA9Yy5qb2ludHNbImluZGV4LWZpbmdlci10aXAiXS5wb3NpdGlvbi5kaXN0YW5jZVRvKGMuam9pbnRzWyJ0aHVtYi10aXAiXS5wb3NpdGlvbiksaD0uMDIsbT0uMDA1O2MuaW5wdXRTdGF0ZS5waW5jaGluZyYmcD5oK20/KGMuaW5wdXRTdGF0ZS5waW5jaGluZz0hMSx0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6InBpbmNoZW5kIixoYW5kZWRuZXNzOnQuaGFuZGVkbmVzcyx0YXJnZXQ6dGhpc30pKTohYy5pbnB1dFN0YXRlLnBpbmNoaW5nJiZwPD1oLW0mJihjLmlucHV0U3RhdGUucGluY2hpbmc9ITAsdGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJwaW5jaHN0YXJ0IixoYW5kZWRuZXNzOnQuaGFuZGVkbmVzcyx0YXJnZXQ6dGhpc30pKX1lbHNlIG51bGwhPT1sJiZ0LmdyaXBTcGFjZSYmKG89ZS5nZXRQb3NlKHQuZ3JpcFNwYWNlLGkpLG51bGwhPT1vJiYobC5tYXRyaXguZnJvbUFycmF5KG8udHJhbnNmb3JtLm1hdHJpeCksbC5tYXRyaXguZGVjb21wb3NlKGwucG9zaXRpb24sbC5yb3RhdGlvbixsLnNjYWxlKSxvLmxpbmVhclZlbG9jaXR5PyhsLmhhc0xpbmVhclZlbG9jaXR5PSEwLGwubGluZWFyVmVsb2NpdHkuY29weShvLmxpbmVhclZlbG9jaXR5KSk6bC5oYXNMaW5lYXJWZWxvY2l0eT0hMSxvLmFuZ3VsYXJWZWxvY2l0eT8obC5oYXNBbmd1bGFyVmVsb2NpdHk9ITAsbC5hbmd1bGFyVmVsb2NpdHkuY29weShvLmFuZ3VsYXJWZWxvY2l0eSkpOmwuaGFzQW5ndWxhclZlbG9jaXR5PSExKSk7cmV0dXJuIG51bGwhPT1zJiYocy52aXNpYmxlPW51bGwhPT1yKSxudWxsIT09bCYmKGwudmlzaWJsZT1udWxsIT09byksbnVsbCE9PWMmJihjLnZpc2libGU9bnVsbCE9PWEpLHRoaXN9fSxJeD1jbGFzcyBleHRlbmRzIGxve2NvbnN0cnVjdG9yKHQsZSxpLHIsbyxhLHMsbCxjLGQpe2lmKChkPXZvaWQgMCE9PWQ/ZDpibSkhPT1ibSYmZCE9PUswKXRocm93IG5ldyBFcnJvcigiRGVwdGhUZXh0dXJlIGZvcm1hdCBtdXN0IGJlIGVpdGhlciBUSFJFRS5EZXB0aEZvcm1hdCBvciBUSFJFRS5EZXB0aFN0ZW5jaWxGb3JtYXQiKTt2b2lkIDA9PT1pJiZkPT09Ym0mJihpPXh4KSx2b2lkIDA9PT1pJiZkPT09SzAmJihpPVgwKSxzdXBlcihudWxsLHIsbyxhLHMsbCxkLGksYyksdGhpcy5pbWFnZT17d2lkdGg6dCxoZWlnaHQ6ZX0sdGhpcy5tYWdGaWx0ZXI9dm9pZCAwIT09cz9zOnZvLHRoaXMubWluRmlsdGVyPXZvaWQgMCE9PWw/bDp2byx0aGlzLmZsaXBZPSExLHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSExfX07SXgucHJvdG90eXBlLmlzRGVwdGhUZXh0dXJlPSEwO3ZhciBvQj1jbGFzcyBleHRlbmRzIHpke2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKTtsZXQgaT10aGlzLHI9bnVsbCxvPTEsYT1udWxsLHM9ImxvY2FsLWZsb29yIixsPXQuZXh0ZW5zaW9ucy5oYXMoIldFQkdMX211bHRpc2FtcGxlZF9yZW5kZXJfdG9fdGV4dHVyZSIpLGM9bnVsbCxkPW51bGwsdT1udWxsLHA9bnVsbCxoPSExLG09bnVsbCxfPWUuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKSxNPW51bGwseT1udWxsLHg9W10sUj1uZXcgTWFwLEk9bmV3IHJhO0kubGF5ZXJzLmVuYWJsZSgxKSxJLnZpZXdwb3J0PW5ldyBRaTtsZXQgQj1uZXcgcmE7Qi5sYXllcnMuZW5hYmxlKDIpLEIudmlld3BvcnQ9bmV3IFFpO2xldCBlZT1bSSxCXSxRPW5ldyBPSTtRLmxheWVycy5lbmFibGUoMSksUS5sYXllcnMuZW5hYmxlKDIpO2xldCB3ZT1udWxsLFFlPW51bGw7ZnVuY3Rpb24gQWUoU2Upe2xldCBGZT1SLmdldChTZS5pbnB1dFNvdXJjZSk7RmUmJkZlLmRpc3BhdGNoRXZlbnQoe3R5cGU6U2UudHlwZSxkYXRhOlNlLmlucHV0U291cmNlfSl9ZnVuY3Rpb24gRCgpe1IuZm9yRWFjaChmdW5jdGlvbihTZSxGZSl7U2UuZGlzY29ubmVjdChGZSl9KSxSLmNsZWFyKCksd2U9bnVsbCxRZT1udWxsLHQuc2V0UmVuZGVyVGFyZ2V0KE0pLHA9bnVsbCx1PW51bGwsZD1udWxsLHI9bnVsbCx5PW51bGwsR2Uuc3RvcCgpLGkuaXNQcmVzZW50aW5nPSExLGkuZGlzcGF0Y2hFdmVudCh7dHlwZToic2Vzc2lvbmVuZCJ9KX1mdW5jdGlvbiByZShTZSl7bGV0IEZlPXIuaW5wdXRTb3VyY2VzO2ZvcihsZXQgbHQ9MDtsdDx4Lmxlbmd0aDtsdCsrKVIuc2V0KEZlW2x0XSx4W2x0XSk7Zm9yKGxldCBsdD0wO2x0PFNlLnJlbW92ZWQubGVuZ3RoO2x0Kyspe2xldCBNdD1TZS5yZW1vdmVkW2x0XSxwdD1SLmdldChNdCk7cHQmJihwdC5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNjb25uZWN0ZWQiLGRhdGE6TXR9KSxSLmRlbGV0ZShNdCkpfWZvcihsZXQgbHQ9MDtsdDxTZS5hZGRlZC5sZW5ndGg7bHQrKyl7bGV0IE10PVNlLmFkZGVkW2x0XSxwdD1SLmdldChNdCk7cHQmJnB0LmRpc3BhdGNoRXZlbnQoe3R5cGU6ImNvbm5lY3RlZCIsZGF0YTpNdH0pfX10aGlzLmNhbWVyYUF1dG9VcGRhdGU9ITAsdGhpcy5lbmFibGVkPSExLHRoaXMuaXNQcmVzZW50aW5nPSExLHRoaXMuZ2V0Q29udHJvbGxlcj1mdW5jdGlvbihTZSl7bGV0IEZlPXhbU2VdO3JldHVybiB2b2lkIDA9PT1GZSYmKEZlPW5ldyBfeCx4W1NlXT1GZSksRmUuZ2V0VGFyZ2V0UmF5U3BhY2UoKX0sdGhpcy5nZXRDb250cm9sbGVyR3JpcD1mdW5jdGlvbihTZSl7bGV0IEZlPXhbU2VdO3JldHVybiB2b2lkIDA9PT1GZSYmKEZlPW5ldyBfeCx4W1NlXT1GZSksRmUuZ2V0R3JpcFNwYWNlKCl9LHRoaXMuZ2V0SGFuZD1mdW5jdGlvbihTZSl7bGV0IEZlPXhbU2VdO3JldHVybiB2b2lkIDA9PT1GZSYmKEZlPW5ldyBfeCx4W1NlXT1GZSksRmUuZ2V0SGFuZFNwYWNlKCl9LHRoaXMuc2V0RnJhbWVidWZmZXJTY2FsZUZhY3Rvcj1mdW5jdGlvbihTZSl7bz1TZSwhMD09PWkuaXNQcmVzZW50aW5nJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYlhSTWFuYWdlcjogQ2Fubm90IGNoYW5nZSBmcmFtZWJ1ZmZlciBzY2FsZSB3aGlsZSBwcmVzZW50aW5nLiIpfSx0aGlzLnNldFJlZmVyZW5jZVNwYWNlVHlwZT1mdW5jdGlvbihTZSl7cz1TZSwhMD09PWkuaXNQcmVzZW50aW5nJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYlhSTWFuYWdlcjogQ2Fubm90IGNoYW5nZSByZWZlcmVuY2Ugc3BhY2UgdHlwZSB3aGlsZSBwcmVzZW50aW5nLiIpfSx0aGlzLmdldFJlZmVyZW5jZVNwYWNlPWZ1bmN0aW9uKCl7cmV0dXJuIGF9LHRoaXMuZ2V0QmFzZUxheWVyPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT11P3U6cH0sdGhpcy5nZXRCaW5kaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIGR9LHRoaXMuZ2V0RnJhbWU9ZnVuY3Rpb24oKXtyZXR1cm4gbX0sdGhpcy5nZXRTZXNzaW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHJ9LHRoaXMuc2V0U2Vzc2lvbj1hc3luYyBmdW5jdGlvbihTZSl7aWYocj1TZSxudWxsIT09cil7aWYoTT10LmdldFJlbmRlclRhcmdldCgpLHIuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0IixBZSksci5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RzdGFydCIsQWUpLHIuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZW5kIixBZSksci5hZGRFdmVudExpc3RlbmVyKCJzcXVlZXplIixBZSksci5hZGRFdmVudExpc3RlbmVyKCJzcXVlZXplc3RhcnQiLEFlKSxyLmFkZEV2ZW50TGlzdGVuZXIoInNxdWVlemVlbmQiLEFlKSxyLmFkZEV2ZW50TGlzdGVuZXIoImVuZCIsRCksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dHNvdXJjZXNjaGFuZ2UiLHJlKSwhMCE9PV8ueHJDb21wYXRpYmxlJiZhd2FpdCBlLm1ha2VYUkNvbXBhdGlibGUoKSx2b2lkIDA9PT1yLnJlbmRlclN0YXRlLmxheWVyc3x8ITE9PT10LmNhcGFiaWxpdGllcy5pc1dlYkdMMilwPW5ldyBYUldlYkdMTGF5ZXIocixlLHthbnRpYWxpYXM6dm9pZCAwIT09ci5yZW5kZXJTdGF0ZS5sYXllcnN8fF8uYW50aWFsaWFzLGFscGhhOl8uYWxwaGEsZGVwdGg6Xy5kZXB0aCxzdGVuY2lsOl8uc3RlbmNpbCxmcmFtZWJ1ZmZlclNjYWxlRmFjdG9yOm99KSxyLnVwZGF0ZVJlbmRlclN0YXRlKHtiYXNlTGF5ZXI6cH0pLHk9bmV3IHRzKHAuZnJhbWVidWZmZXJXaWR0aCxwLmZyYW1lYnVmZmVySGVpZ2h0LHtmb3JtYXQ6Q2EsdHlwZTp4cCxlbmNvZGluZzp0Lm91dHB1dEVuY29kaW5nfSk7ZWxzZXtoPV8uYW50aWFsaWFzO2xldCBGZT1udWxsLGx0PW51bGwsTXQ9bnVsbDtfLmRlcHRoJiYoTXQ9Xy5zdGVuY2lsPzM1MDU2OjMzMTkwLEZlPV8uc3RlbmNpbD9LMDpibSxsdD1fLnN0ZW5jaWw/WDA6eHgpO2xldCBwdD17Y29sb3JGb3JtYXQ6dC5vdXRwdXRFbmNvZGluZz09PURyPzM1OTA3OjMyODU2LGRlcHRoRm9ybWF0Ok10LHNjYWxlRmFjdG9yOm99O2Q9bmV3IFhSV2ViR0xCaW5kaW5nKHIsZSksdT1kLmNyZWF0ZVByb2plY3Rpb25MYXllcihwdCksci51cGRhdGVSZW5kZXJTdGF0ZSh7bGF5ZXJzOlt1XX0pLHk9aD9uZXcgd3godS50ZXh0dXJlV2lkdGgsdS50ZXh0dXJlSGVpZ2h0LHtmb3JtYXQ6Q2EsdHlwZTp4cCxkZXB0aFRleHR1cmU6bmV3IEl4KHUudGV4dHVyZVdpZHRoLHUudGV4dHVyZUhlaWdodCxsdCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCxGZSksc3RlbmNpbEJ1ZmZlcjpfLnN0ZW5jaWwsaWdub3JlRGVwdGg6dS5pZ25vcmVEZXB0aFZhbHVlcyx1c2VSZW5kZXJUb1RleHR1cmU6bCxlbmNvZGluZzp0Lm91dHB1dEVuY29kaW5nfSk6bmV3IHRzKHUudGV4dHVyZVdpZHRoLHUudGV4dHVyZUhlaWdodCx7Zm9ybWF0OkNhLHR5cGU6eHAsZGVwdGhUZXh0dXJlOm5ldyBJeCh1LnRleHR1cmVXaWR0aCx1LnRleHR1cmVIZWlnaHQsbHQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsRmUpLHN0ZW5jaWxCdWZmZXI6Xy5zdGVuY2lsLGlnbm9yZURlcHRoOnUuaWdub3JlRGVwdGhWYWx1ZXMsZW5jb2Rpbmc6dC5vdXRwdXRFbmNvZGluZ30pfXkuaXNYUlJlbmRlclRhcmdldD0hMCx0aGlzLnNldEZvdmVhdGlvbigxKSxhPWF3YWl0IHIucmVxdWVzdFJlZmVyZW5jZVNwYWNlKHMpLEdlLnNldENvbnRleHQociksR2Uuc3RhcnQoKSxpLmlzUHJlc2VudGluZz0hMCxpLmRpc3BhdGNoRXZlbnQoe3R5cGU6InNlc3Npb25zdGFydCJ9KX19O2xldCBjZT1uZXcgSyxoZT1uZXcgSztmdW5jdGlvbiAkKFNlLEZlKXtudWxsPT09RmU/U2UubWF0cml4V29ybGQuY29weShTZS5tYXRyaXgpOlNlLm1hdHJpeFdvcmxkLm11bHRpcGx5TWF0cmljZXMoRmUubWF0cml4V29ybGQsU2UubWF0cml4KSxTZS5tYXRyaXhXb3JsZEludmVyc2UuY29weShTZS5tYXRyaXhXb3JsZCkuaW52ZXJ0KCl9dGhpcy51cGRhdGVDYW1lcmE9ZnVuY3Rpb24oU2Upe2lmKG51bGw9PT1yKXJldHVybjtRLm5lYXI9Qi5uZWFyPUkubmVhcj1TZS5uZWFyLFEuZmFyPUIuZmFyPUkuZmFyPVNlLmZhciwod2UhPT1RLm5lYXJ8fFFlIT09US5mYXIpJiYoci51cGRhdGVSZW5kZXJTdGF0ZSh7ZGVwdGhOZWFyOlEubmVhcixkZXB0aEZhcjpRLmZhcn0pLHdlPVEubmVhcixRZT1RLmZhcik7bGV0IEZlPVNlLnBhcmVudCxsdD1RLmNhbWVyYXM7JChRLEZlKTtmb3IobGV0IHB0PTA7cHQ8bHQubGVuZ3RoO3B0KyspJChsdFtwdF0sRmUpO1EubWF0cml4V29ybGQuZGVjb21wb3NlKFEucG9zaXRpb24sUS5xdWF0ZXJuaW9uLFEuc2NhbGUpLFNlLnBvc2l0aW9uLmNvcHkoUS5wb3NpdGlvbiksU2UucXVhdGVybmlvbi5jb3B5KFEucXVhdGVybmlvbiksU2Uuc2NhbGUuY29weShRLnNjYWxlKSxTZS5tYXRyaXguY29weShRLm1hdHJpeCksU2UubWF0cml4V29ybGQuY29weShRLm1hdHJpeFdvcmxkKTtsZXQgTXQ9U2UuY2hpbGRyZW47Zm9yKGxldCBwdD0wLGtlPU10Lmxlbmd0aDtwdDxrZTtwdCsrKU10W3B0XS51cGRhdGVNYXRyaXhXb3JsZCghMCk7Mj09PWx0Lmxlbmd0aD9mdW5jdGlvbihTZSxGZSxsdCl7Y2Uuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKEZlLm1hdHJpeFdvcmxkKSxoZS5zZXRGcm9tTWF0cml4UG9zaXRpb24obHQubWF0cml4V29ybGQpO2xldCBNdD1jZS5kaXN0YW5jZVRvKGhlKSxwdD1GZS5wcm9qZWN0aW9uTWF0cml4LmVsZW1lbnRzLGtlPWx0LnByb2plY3Rpb25NYXRyaXguZWxlbWVudHMsVG49cHRbMTRdLyhwdFsxMF0tMSksd3Q9cHRbMTRdLyhwdFsxMF0rMSksb249KHB0WzldKzEpL3B0WzVdLENlPShwdFs5XS0xKS9wdFs1XSxtdD0ocHRbOF0tMSkvcHRbMF0saHQ9KGtlWzhdKzEpL2tlWzBdLG9lPVRuKm10LGF0PVRuKmh0LFllPU10LygtbXQraHQpLF90PVllKi1tdDtGZS5tYXRyaXhXb3JsZC5kZWNvbXBvc2UoU2UucG9zaXRpb24sU2UucXVhdGVybmlvbixTZS5zY2FsZSksU2UudHJhbnNsYXRlWChfdCksU2UudHJhbnNsYXRlWihZZSksU2UubWF0cml4V29ybGQuY29tcG9zZShTZS5wb3NpdGlvbixTZS5xdWF0ZXJuaW9uLFNlLnNjYWxlKSxTZS5tYXRyaXhXb3JsZEludmVyc2UuY29weShTZS5tYXRyaXhXb3JsZCkuaW52ZXJ0KCk7bGV0IHV0PVRuK1llLGFuPXd0K1llO1NlLnByb2plY3Rpb25NYXRyaXgubWFrZVBlcnNwZWN0aXZlKG9lLV90LGF0KyhNdC1fdCksb24qd3QvYW4qdXQsQ2Uqd3QvYW4qdXQsdXQsYW4pfShRLEksQik6US5wcm9qZWN0aW9uTWF0cml4LmNvcHkoSS5wcm9qZWN0aW9uTWF0cml4KX0sdGhpcy5nZXRDYW1lcmE9ZnVuY3Rpb24oKXtyZXR1cm4gUX0sdGhpcy5nZXRGb3ZlYXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PXU/dS5maXhlZEZvdmVhdGlvbjpudWxsIT09cD9wLmZpeGVkRm92ZWF0aW9uOnZvaWQgMH0sdGhpcy5zZXRGb3ZlYXRpb249ZnVuY3Rpb24oU2Upe251bGwhPT11JiYodS5maXhlZEZvdmVhdGlvbj1TZSksbnVsbCE9PXAmJnZvaWQgMCE9PXAuZml4ZWRGb3ZlYXRpb24mJihwLmZpeGVkRm92ZWF0aW9uPVNlKX07bGV0IGRlPW51bGwsR2U9bmV3IG10ZTtHZS5zZXRBbmltYXRpb25Mb29wKGZ1bmN0aW9uKFNlLEZlKXtpZihjPUZlLmdldFZpZXdlclBvc2UoYSksbT1GZSxudWxsIT09Yyl7bGV0IE10PWMudmlld3M7bnVsbCE9PXAmJih0LnNldFJlbmRlclRhcmdldEZyYW1lYnVmZmVyKHkscC5mcmFtZWJ1ZmZlciksdC5zZXRSZW5kZXJUYXJnZXQoeSkpO2xldCBwdD0hMTtNdC5sZW5ndGghPT1RLmNhbWVyYXMubGVuZ3RoJiYoUS5jYW1lcmFzLmxlbmd0aD0wLHB0PSEwKTtmb3IobGV0IGtlPTA7a2U8TXQubGVuZ3RoO2tlKyspe2xldCBUbj1NdFtrZV0sd3Q9bnVsbDtpZihudWxsIT09cCl3dD1wLmdldFZpZXdwb3J0KFRuKTtlbHNle2xldCBDZT1kLmdldFZpZXdTdWJJbWFnZSh1LFRuKTt3dD1DZS52aWV3cG9ydCwwPT09a2UmJih0LnNldFJlbmRlclRhcmdldFRleHR1cmVzKHksQ2UuY29sb3JUZXh0dXJlLHUuaWdub3JlRGVwdGhWYWx1ZXM/dm9pZCAwOkNlLmRlcHRoU3RlbmNpbFRleHR1cmUpLHQuc2V0UmVuZGVyVGFyZ2V0KHkpKX1sZXQgb249ZWVba2VdO29uLm1hdHJpeC5mcm9tQXJyYXkoVG4udHJhbnNmb3JtLm1hdHJpeCksb24ucHJvamVjdGlvbk1hdHJpeC5mcm9tQXJyYXkoVG4ucHJvamVjdGlvbk1hdHJpeCksb24udmlld3BvcnQuc2V0KHd0Lngsd3QueSx3dC53aWR0aCx3dC5oZWlnaHQpLDA9PT1rZSYmUS5tYXRyaXguY29weShvbi5tYXRyaXgpLCEwPT09cHQmJlEuY2FtZXJhcy5wdXNoKG9uKX19bGV0IGx0PXIuaW5wdXRTb3VyY2VzO2ZvcihsZXQgTXQ9MDtNdDx4Lmxlbmd0aDtNdCsrKXhbTXRdLnVwZGF0ZShsdFtNdF0sRmUsYSk7ZGUmJmRlKFNlLEZlKSxtPW51bGx9KSx0aGlzLnNldEFuaW1hdGlvbkxvb3A9ZnVuY3Rpb24oU2Upe2RlPVNlfSx0aGlzLmRpc3Bvc2U9ZnVuY3Rpb24oKXt9fX07ZnVuY3Rpb24gRDJlKG4pe2Z1bmN0aW9uIGkoeSx4KXt5Lm9wYWNpdHkudmFsdWU9eC5vcGFjaXR5LHguY29sb3ImJnkuZGlmZnVzZS52YWx1ZS5jb3B5KHguY29sb3IpLHguZW1pc3NpdmUmJnkuZW1pc3NpdmUudmFsdWUuY29weSh4LmVtaXNzaXZlKS5tdWx0aXBseVNjYWxhcih4LmVtaXNzaXZlSW50ZW5zaXR5KSx4Lm1hcCYmKHkubWFwLnZhbHVlPXgubWFwKSx4LmFscGhhTWFwJiYoeS5hbHBoYU1hcC52YWx1ZT14LmFscGhhTWFwKSx4LnNwZWN1bGFyTWFwJiYoeS5zcGVjdWxhck1hcC52YWx1ZT14LnNwZWN1bGFyTWFwKSx4LmFscGhhVGVzdD4wJiYoeS5hbHBoYVRlc3QudmFsdWU9eC5hbHBoYVRlc3QpO2xldCBJLEIsUj1uLmdldCh4KS5lbnZNYXA7UiYmKHkuZW52TWFwLnZhbHVlPVIseS5mbGlwRW52TWFwLnZhbHVlPVIuaXNDdWJlVGV4dHVyZSYmITE9PT1SLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT8tMToxLHkucmVmbGVjdGl2aXR5LnZhbHVlPXgucmVmbGVjdGl2aXR5LHkuaW9yLnZhbHVlPXguaW9yLHkucmVmcmFjdGlvblJhdGlvLnZhbHVlPXgucmVmcmFjdGlvblJhdGlvKSx4LmxpZ2h0TWFwJiYoeS5saWdodE1hcC52YWx1ZT14LmxpZ2h0TWFwLHkubGlnaHRNYXBJbnRlbnNpdHkudmFsdWU9eC5saWdodE1hcEludGVuc2l0eSkseC5hb01hcCYmKHkuYW9NYXAudmFsdWU9eC5hb01hcCx5LmFvTWFwSW50ZW5zaXR5LnZhbHVlPXguYW9NYXBJbnRlbnNpdHkpLHgubWFwP0k9eC5tYXA6eC5zcGVjdWxhck1hcD9JPXguc3BlY3VsYXJNYXA6eC5kaXNwbGFjZW1lbnRNYXA/ST14LmRpc3BsYWNlbWVudE1hcDp4Lm5vcm1hbE1hcD9JPXgubm9ybWFsTWFwOnguYnVtcE1hcD9JPXguYnVtcE1hcDp4LnJvdWdobmVzc01hcD9JPXgucm91Z2huZXNzTWFwOngubWV0YWxuZXNzTWFwP0k9eC5tZXRhbG5lc3NNYXA6eC5hbHBoYU1hcD9JPXguYWxwaGFNYXA6eC5lbWlzc2l2ZU1hcD9JPXguZW1pc3NpdmVNYXA6eC5jbGVhcmNvYXRNYXA/ST14LmNsZWFyY29hdE1hcDp4LmNsZWFyY29hdE5vcm1hbE1hcD9JPXguY2xlYXJjb2F0Tm9ybWFsTWFwOnguY2xlYXJjb2F0Um91Z2huZXNzTWFwP0k9eC5jbGVhcmNvYXRSb3VnaG5lc3NNYXA6eC5zcGVjdWxhckludGVuc2l0eU1hcD9JPXguc3BlY3VsYXJJbnRlbnNpdHlNYXA6eC5zcGVjdWxhckNvbG9yTWFwP0k9eC5zcGVjdWxhckNvbG9yTWFwOngudHJhbnNtaXNzaW9uTWFwP0k9eC50cmFuc21pc3Npb25NYXA6eC50aGlja25lc3NNYXA/ST14LnRoaWNrbmVzc01hcDp4LnNoZWVuQ29sb3JNYXA/ST14LnNoZWVuQ29sb3JNYXA6eC5zaGVlblJvdWdobmVzc01hcCYmKEk9eC5zaGVlblJvdWdobmVzc01hcCksdm9pZCAwIT09SSYmKEkuaXNXZWJHTFJlbmRlclRhcmdldCYmKEk9SS50ZXh0dXJlKSwhMD09PUkubWF0cml4QXV0b1VwZGF0ZSYmSS51cGRhdGVNYXRyaXgoKSx5LnV2VHJhbnNmb3JtLnZhbHVlLmNvcHkoSS5tYXRyaXgpKSx4LmFvTWFwP0I9eC5hb01hcDp4LmxpZ2h0TWFwJiYoQj14LmxpZ2h0TWFwKSx2b2lkIDAhPT1CJiYoQi5pc1dlYkdMUmVuZGVyVGFyZ2V0JiYoQj1CLnRleHR1cmUpLCEwPT09Qi5tYXRyaXhBdXRvVXBkYXRlJiZCLnVwZGF0ZU1hdHJpeCgpLHkudXYyVHJhbnNmb3JtLnZhbHVlLmNvcHkoQi5tYXRyaXgpKX1mdW5jdGlvbiB1KHkseCl7eS5yb3VnaG5lc3MudmFsdWU9eC5yb3VnaG5lc3MseS5tZXRhbG5lc3MudmFsdWU9eC5tZXRhbG5lc3MseC5yb3VnaG5lc3NNYXAmJih5LnJvdWdobmVzc01hcC52YWx1ZT14LnJvdWdobmVzc01hcCkseC5tZXRhbG5lc3NNYXAmJih5Lm1ldGFsbmVzc01hcC52YWx1ZT14Lm1ldGFsbmVzc01hcCkseC5lbWlzc2l2ZU1hcCYmKHkuZW1pc3NpdmVNYXAudmFsdWU9eC5lbWlzc2l2ZU1hcCkseC5idW1wTWFwJiYoeS5idW1wTWFwLnZhbHVlPXguYnVtcE1hcCx5LmJ1bXBTY2FsZS52YWx1ZT14LmJ1bXBTY2FsZSx4LnNpZGU9PT1ibyYmKHkuYnVtcFNjYWxlLnZhbHVlKj0tMSkpLHgubm9ybWFsTWFwJiYoeS5ub3JtYWxNYXAudmFsdWU9eC5ub3JtYWxNYXAseS5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KHgubm9ybWFsU2NhbGUpLHguc2lkZT09PWJvJiZ5Lm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSx4LmRpc3BsYWNlbWVudE1hcCYmKHkuZGlzcGxhY2VtZW50TWFwLnZhbHVlPXguZGlzcGxhY2VtZW50TWFwLHkuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9eC5kaXNwbGFjZW1lbnRTY2FsZSx5LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9eC5kaXNwbGFjZW1lbnRCaWFzKSxuLmdldCh4KS5lbnZNYXAmJih5LmVudk1hcEludGVuc2l0eS52YWx1ZT14LmVudk1hcEludGVuc2l0eSl9cmV0dXJue3JlZnJlc2hGb2dVbmlmb3JtczpmdW5jdGlvbih5LHgpe3kuZm9nQ29sb3IudmFsdWUuY29weSh4LmNvbG9yKSx4LmlzRm9nPyh5LmZvZ05lYXIudmFsdWU9eC5uZWFyLHkuZm9nRmFyLnZhbHVlPXguZmFyKTp4LmlzRm9nRXhwMiYmKHkuZm9nRGVuc2l0eS52YWx1ZT14LmRlbnNpdHkpfSxyZWZyZXNoTWF0ZXJpYWxVbmlmb3JtczpmdW5jdGlvbih5LHgsUixJLEIpe3guaXNNZXNoQmFzaWNNYXRlcmlhbD9pKHkseCk6eC5pc01lc2hMYW1iZXJ0TWF0ZXJpYWw/KGkoeSx4KSxmdW5jdGlvbih5LHgpe3guZW1pc3NpdmVNYXAmJih5LmVtaXNzaXZlTWFwLnZhbHVlPXguZW1pc3NpdmVNYXApfSh5LHgpKTp4LmlzTWVzaFRvb25NYXRlcmlhbD8oaSh5LHgpLGZ1bmN0aW9uKHkseCl7eC5ncmFkaWVudE1hcCYmKHkuZ3JhZGllbnRNYXAudmFsdWU9eC5ncmFkaWVudE1hcCkseC5lbWlzc2l2ZU1hcCYmKHkuZW1pc3NpdmVNYXAudmFsdWU9eC5lbWlzc2l2ZU1hcCkseC5idW1wTWFwJiYoeS5idW1wTWFwLnZhbHVlPXguYnVtcE1hcCx5LmJ1bXBTY2FsZS52YWx1ZT14LmJ1bXBTY2FsZSx4LnNpZGU9PT1ibyYmKHkuYnVtcFNjYWxlLnZhbHVlKj0tMSkpLHgubm9ybWFsTWFwJiYoeS5ub3JtYWxNYXAudmFsdWU9eC5ub3JtYWxNYXAseS5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KHgubm9ybWFsU2NhbGUpLHguc2lkZT09PWJvJiZ5Lm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSx4LmRpc3BsYWNlbWVudE1hcCYmKHkuZGlzcGxhY2VtZW50TWFwLnZhbHVlPXguZGlzcGxhY2VtZW50TWFwLHkuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9eC5kaXNwbGFjZW1lbnRTY2FsZSx5LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9eC5kaXNwbGFjZW1lbnRCaWFzKX0oeSx4KSk6eC5pc01lc2hQaG9uZ01hdGVyaWFsPyhpKHkseCksZnVuY3Rpb24oeSx4KXt5LnNwZWN1bGFyLnZhbHVlLmNvcHkoeC5zcGVjdWxhcikseS5zaGluaW5lc3MudmFsdWU9TWF0aC5tYXgoeC5zaGluaW5lc3MsMWUtNCkseC5lbWlzc2l2ZU1hcCYmKHkuZW1pc3NpdmVNYXAudmFsdWU9eC5lbWlzc2l2ZU1hcCkseC5idW1wTWFwJiYoeS5idW1wTWFwLnZhbHVlPXguYnVtcE1hcCx5LmJ1bXBTY2FsZS52YWx1ZT14LmJ1bXBTY2FsZSx4LnNpZGU9PT1ibyYmKHkuYnVtcFNjYWxlLnZhbHVlKj0tMSkpLHgubm9ybWFsTWFwJiYoeS5ub3JtYWxNYXAudmFsdWU9eC5ub3JtYWxNYXAseS5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KHgubm9ybWFsU2NhbGUpLHguc2lkZT09PWJvJiZ5Lm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSx4LmRpc3BsYWNlbWVudE1hcCYmKHkuZGlzcGxhY2VtZW50TWFwLnZhbHVlPXguZGlzcGxhY2VtZW50TWFwLHkuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9eC5kaXNwbGFjZW1lbnRTY2FsZSx5LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9eC5kaXNwbGFjZW1lbnRCaWFzKX0oeSx4KSk6eC5pc01lc2hTdGFuZGFyZE1hdGVyaWFsPyhpKHkseCkseC5pc01lc2hQaHlzaWNhbE1hdGVyaWFsP2Z1bmN0aW9uKHkseCxSKXt1KHkseCkseS5pb3IudmFsdWU9eC5pb3IseC5zaGVlbj4wJiYoeS5zaGVlbkNvbG9yLnZhbHVlLmNvcHkoeC5zaGVlbkNvbG9yKS5tdWx0aXBseVNjYWxhcih4LnNoZWVuKSx5LnNoZWVuUm91Z2huZXNzLnZhbHVlPXguc2hlZW5Sb3VnaG5lc3MseC5zaGVlbkNvbG9yTWFwJiYoeS5zaGVlbkNvbG9yTWFwLnZhbHVlPXguc2hlZW5Db2xvck1hcCkseC5zaGVlblJvdWdobmVzc01hcCYmKHkuc2hlZW5Sb3VnaG5lc3NNYXAudmFsdWU9eC5zaGVlblJvdWdobmVzc01hcCkpLHguY2xlYXJjb2F0PjAmJih5LmNsZWFyY29hdC52YWx1ZT14LmNsZWFyY29hdCx5LmNsZWFyY29hdFJvdWdobmVzcy52YWx1ZT14LmNsZWFyY29hdFJvdWdobmVzcyx4LmNsZWFyY29hdE1hcCYmKHkuY2xlYXJjb2F0TWFwLnZhbHVlPXguY2xlYXJjb2F0TWFwKSx4LmNsZWFyY29hdFJvdWdobmVzc01hcCYmKHkuY2xlYXJjb2F0Um91Z2huZXNzTWFwLnZhbHVlPXguY2xlYXJjb2F0Um91Z2huZXNzTWFwKSx4LmNsZWFyY29hdE5vcm1hbE1hcCYmKHkuY2xlYXJjb2F0Tm9ybWFsU2NhbGUudmFsdWUuY29weSh4LmNsZWFyY29hdE5vcm1hbFNjYWxlKSx5LmNsZWFyY29hdE5vcm1hbE1hcC52YWx1ZT14LmNsZWFyY29hdE5vcm1hbE1hcCx4LnNpZGU9PT1ibyYmeS5jbGVhcmNvYXROb3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSkpLHgudHJhbnNtaXNzaW9uPjAmJih5LnRyYW5zbWlzc2lvbi52YWx1ZT14LnRyYW5zbWlzc2lvbix5LnRyYW5zbWlzc2lvblNhbXBsZXJNYXAudmFsdWU9Ui50ZXh0dXJlLHkudHJhbnNtaXNzaW9uU2FtcGxlclNpemUudmFsdWUuc2V0KFIud2lkdGgsUi5oZWlnaHQpLHgudHJhbnNtaXNzaW9uTWFwJiYoeS50cmFuc21pc3Npb25NYXAudmFsdWU9eC50cmFuc21pc3Npb25NYXApLHkudGhpY2tuZXNzLnZhbHVlPXgudGhpY2tuZXNzLHgudGhpY2tuZXNzTWFwJiYoeS50aGlja25lc3NNYXAudmFsdWU9eC50aGlja25lc3NNYXApLHkuYXR0ZW51YXRpb25EaXN0YW5jZS52YWx1ZT14LmF0dGVudWF0aW9uRGlzdGFuY2UseS5hdHRlbnVhdGlvbkNvbG9yLnZhbHVlLmNvcHkoeC5hdHRlbnVhdGlvbkNvbG9yKSkseS5zcGVjdWxhckludGVuc2l0eS52YWx1ZT14LnNwZWN1bGFySW50ZW5zaXR5LHkuc3BlY3VsYXJDb2xvci52YWx1ZS5jb3B5KHguc3BlY3VsYXJDb2xvcikseC5zcGVjdWxhckludGVuc2l0eU1hcCYmKHkuc3BlY3VsYXJJbnRlbnNpdHlNYXAudmFsdWU9eC5zcGVjdWxhckludGVuc2l0eU1hcCkseC5zcGVjdWxhckNvbG9yTWFwJiYoeS5zcGVjdWxhckNvbG9yTWFwLnZhbHVlPXguc3BlY3VsYXJDb2xvck1hcCl9KHkseCxCKTp1KHkseCkpOnguaXNNZXNoTWF0Y2FwTWF0ZXJpYWw/KGkoeSx4KSxmdW5jdGlvbih5LHgpe3gubWF0Y2FwJiYoeS5tYXRjYXAudmFsdWU9eC5tYXRjYXApLHguYnVtcE1hcCYmKHkuYnVtcE1hcC52YWx1ZT14LmJ1bXBNYXAseS5idW1wU2NhbGUudmFsdWU9eC5idW1wU2NhbGUseC5zaWRlPT09Ym8mJih5LmJ1bXBTY2FsZS52YWx1ZSo9LTEpKSx4Lm5vcm1hbE1hcCYmKHkubm9ybWFsTWFwLnZhbHVlPXgubm9ybWFsTWFwLHkubm9ybWFsU2NhbGUudmFsdWUuY29weSh4Lm5vcm1hbFNjYWxlKSx4LnNpZGU9PT1ibyYmeS5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSkseC5kaXNwbGFjZW1lbnRNYXAmJih5LmRpc3BsYWNlbWVudE1hcC52YWx1ZT14LmRpc3BsYWNlbWVudE1hcCx5LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPXguZGlzcGxhY2VtZW50U2NhbGUseS5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPXguZGlzcGxhY2VtZW50Qmlhcyl9KHkseCkpOnguaXNNZXNoRGVwdGhNYXRlcmlhbD8oaSh5LHgpLGZ1bmN0aW9uKHkseCl7eC5kaXNwbGFjZW1lbnRNYXAmJih5LmRpc3BsYWNlbWVudE1hcC52YWx1ZT14LmRpc3BsYWNlbWVudE1hcCx5LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPXguZGlzcGxhY2VtZW50U2NhbGUseS5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPXguZGlzcGxhY2VtZW50Qmlhcyl9KHkseCkpOnguaXNNZXNoRGlzdGFuY2VNYXRlcmlhbD8oaSh5LHgpLGZ1bmN0aW9uKHkseCl7eC5kaXNwbGFjZW1lbnRNYXAmJih5LmRpc3BsYWNlbWVudE1hcC52YWx1ZT14LmRpc3BsYWNlbWVudE1hcCx5LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPXguZGlzcGxhY2VtZW50U2NhbGUseS5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPXguZGlzcGxhY2VtZW50QmlhcykseS5yZWZlcmVuY2VQb3NpdGlvbi52YWx1ZS5jb3B5KHgucmVmZXJlbmNlUG9zaXRpb24pLHkubmVhckRpc3RhbmNlLnZhbHVlPXgubmVhckRpc3RhbmNlLHkuZmFyRGlzdGFuY2UudmFsdWU9eC5mYXJEaXN0YW5jZX0oeSx4KSk6eC5pc01lc2hOb3JtYWxNYXRlcmlhbD8oaSh5LHgpLGZ1bmN0aW9uKHkseCl7eC5idW1wTWFwJiYoeS5idW1wTWFwLnZhbHVlPXguYnVtcE1hcCx5LmJ1bXBTY2FsZS52YWx1ZT14LmJ1bXBTY2FsZSx4LnNpZGU9PT1ibyYmKHkuYnVtcFNjYWxlLnZhbHVlKj0tMSkpLHgubm9ybWFsTWFwJiYoeS5ub3JtYWxNYXAudmFsdWU9eC5ub3JtYWxNYXAseS5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KHgubm9ybWFsU2NhbGUpLHguc2lkZT09PWJvJiZ5Lm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSx4LmRpc3BsYWNlbWVudE1hcCYmKHkuZGlzcGxhY2VtZW50TWFwLnZhbHVlPXguZGlzcGxhY2VtZW50TWFwLHkuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9eC5kaXNwbGFjZW1lbnRTY2FsZSx5LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9eC5kaXNwbGFjZW1lbnRCaWFzKX0oeSx4KSk6eC5pc0xpbmVCYXNpY01hdGVyaWFsPyhmdW5jdGlvbih5LHgpe3kuZGlmZnVzZS52YWx1ZS5jb3B5KHguY29sb3IpLHkub3BhY2l0eS52YWx1ZT14Lm9wYWNpdHl9KHkseCkseC5pc0xpbmVEYXNoZWRNYXRlcmlhbCYmZnVuY3Rpb24oeSx4KXt5LmRhc2hTaXplLnZhbHVlPXguZGFzaFNpemUseS50b3RhbFNpemUudmFsdWU9eC5kYXNoU2l6ZSt4LmdhcFNpemUseS5zY2FsZS52YWx1ZT14LnNjYWxlfSh5LHgpKTp4LmlzUG9pbnRzTWF0ZXJpYWw/ZnVuY3Rpb24oeSx4LFIsSSl7bGV0IEI7eS5kaWZmdXNlLnZhbHVlLmNvcHkoeC5jb2xvcikseS5vcGFjaXR5LnZhbHVlPXgub3BhY2l0eSx5LnNpemUudmFsdWU9eC5zaXplKlIseS5zY2FsZS52YWx1ZT0uNSpJLHgubWFwJiYoeS5tYXAudmFsdWU9eC5tYXApLHguYWxwaGFNYXAmJih5LmFscGhhTWFwLnZhbHVlPXguYWxwaGFNYXApLHguYWxwaGFUZXN0PjAmJih5LmFscGhhVGVzdC52YWx1ZT14LmFscGhhVGVzdCkseC5tYXA/Qj14Lm1hcDp4LmFscGhhTWFwJiYoQj14LmFscGhhTWFwKSx2b2lkIDAhPT1CJiYoITA9PT1CLm1hdHJpeEF1dG9VcGRhdGUmJkIudXBkYXRlTWF0cml4KCkseS51dlRyYW5zZm9ybS52YWx1ZS5jb3B5KEIubWF0cml4KSl9KHkseCxSLEkpOnguaXNTcHJpdGVNYXRlcmlhbD9mdW5jdGlvbih5LHgpe2xldCBSO3kuZGlmZnVzZS52YWx1ZS5jb3B5KHguY29sb3IpLHkub3BhY2l0eS52YWx1ZT14Lm9wYWNpdHkseS5yb3RhdGlvbi52YWx1ZT14LnJvdGF0aW9uLHgubWFwJiYoeS5tYXAudmFsdWU9eC5tYXApLHguYWxwaGFNYXAmJih5LmFscGhhTWFwLnZhbHVlPXguYWxwaGFNYXApLHguYWxwaGFUZXN0PjAmJih5LmFscGhhVGVzdC52YWx1ZT14LmFscGhhVGVzdCkseC5tYXA/Uj14Lm1hcDp4LmFscGhhTWFwJiYoUj14LmFscGhhTWFwKSx2b2lkIDAhPT1SJiYoITA9PT1SLm1hdHJpeEF1dG9VcGRhdGUmJlIudXBkYXRlTWF0cml4KCkseS51dlRyYW5zZm9ybS52YWx1ZS5jb3B5KFIubWF0cml4KSl9KHkseCk6eC5pc1NoYWRvd01hdGVyaWFsPyh5LmNvbG9yLnZhbHVlLmNvcHkoeC5jb2xvcikseS5vcGFjaXR5LnZhbHVlPXgub3BhY2l0eSk6eC5pc1NoYWRlck1hdGVyaWFsJiYoeC51bmlmb3Jtc05lZWRVcGRhdGU9ITEpfX19ZnVuY3Rpb24gV2kobj17fSl7bGV0IHQ9dm9pZCAwIT09bi5jYW52YXM/bi5jYW52YXM6ZnVuY3Rpb24oKXtsZXQgbj1NeCgiY2FudmFzIik7cmV0dXJuIG4uc3R5bGUuZGlzcGxheT0iYmxvY2siLG59KCksZT12b2lkIDAhPT1uLmNvbnRleHQ/bi5jb250ZXh0Om51bGwsaT12b2lkIDAhPT1uLmFscGhhJiZuLmFscGhhLHI9dm9pZCAwPT09bi5kZXB0aHx8bi5kZXB0aCxvPXZvaWQgMD09PW4uc3RlbmNpbHx8bi5zdGVuY2lsLGE9dm9pZCAwIT09bi5hbnRpYWxpYXMmJm4uYW50aWFsaWFzLHM9dm9pZCAwPT09bi5wcmVtdWx0aXBsaWVkQWxwaGF8fG4ucHJlbXVsdGlwbGllZEFscGhhLGw9dm9pZCAwIT09bi5wcmVzZXJ2ZURyYXdpbmdCdWZmZXImJm4ucHJlc2VydmVEcmF3aW5nQnVmZmVyLGM9dm9pZCAwIT09bi5wb3dlclByZWZlcmVuY2U/bi5wb3dlclByZWZlcmVuY2U6ImRlZmF1bHQiLGQ9dm9pZCAwIT09bi5mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0JiZuLmZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQsdT1udWxsLHA9bnVsbCxoPVtdLG09W107dGhpcy5kb21FbGVtZW50PXQsdGhpcy5kZWJ1Zz17Y2hlY2tTaGFkZXJFcnJvcnM6ITB9LHRoaXMuYXV0b0NsZWFyPSEwLHRoaXMuYXV0b0NsZWFyQ29sb3I9ITAsdGhpcy5hdXRvQ2xlYXJEZXB0aD0hMCx0aGlzLmF1dG9DbGVhclN0ZW5jaWw9ITAsdGhpcy5zb3J0T2JqZWN0cz0hMCx0aGlzLmNsaXBwaW5nUGxhbmVzPVtdLHRoaXMubG9jYWxDbGlwcGluZ0VuYWJsZWQ9ITEsdGhpcy5vdXRwdXRFbmNvZGluZz13cCx0aGlzLnBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzPSExLHRoaXMudG9uZU1hcHBpbmc9eXAsdGhpcy50b25lTWFwcGluZ0V4cG9zdXJlPTE7bGV0IF89dGhpcyxNPSExLHk9MCx4PTAsUj1udWxsLEk9LTEsQj1udWxsLGVlPW5ldyBRaSxRPW5ldyBRaSx3ZT1udWxsLFFlPXQud2lkdGgsQWU9dC5oZWlnaHQsRD0xLHJlPW51bGwsY2U9bnVsbCxoZT1uZXcgUWkoMCwwLFFlLEFlKSxfZT1uZXcgUWkoMCwwLFFlLEFlKSwkPSExLGRlPW5ldyBlXyxwZT0hMSxHZT0hMSxTZT1udWxsLEZlPW5ldyB2bixsdD1uZXcgSyxNdD17YmFja2dyb3VuZDpudWxsLGZvZzpudWxsLGVudmlyb25tZW50Om51bGwsb3ZlcnJpZGVNYXRlcmlhbDpudWxsLGlzU2NlbmU6ITB9O2Z1bmN0aW9uIHB0KCl7cmV0dXJuIG51bGw9PT1SP0Q6MX1sZXQgd3Qsb24sQ2UsbXQsaHQsb2UsYXQsWWUsX3QsdXQsYW4seW4sc2ksTmksTGksWSxMLEhlLHl0LGVuLExlLGhuLGxuLGtlPWU7ZnVuY3Rpb24gVG4oRSxWKXtmb3IobGV0IFg9MDtYPEUubGVuZ3RoO1grKyl7bGV0IGFlPXQuZ2V0Q29udGV4dChFW1hdLFYpO2lmKG51bGwhPT1hZSlyZXR1cm4gYWV9cmV0dXJuIG51bGx9dHJ5e2xldCBFPXthbHBoYTohMCxkZXB0aDpyLHN0ZW5jaWw6byxhbnRpYWxpYXM6YSxwcmVtdWx0aXBsaWVkQWxwaGE6cyxwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6bCxwb3dlclByZWZlcmVuY2U6YyxmYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0OmR9O2lmKCJzZXRBdHRyaWJ1dGUiaW4gdCYmdC5zZXRBdHRyaWJ1dGUoImRhdGEtZW5naW5lIixgdGhyZWUuanMgciR7c1Z9YCksdC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IixObiwhMSksdC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRyZXN0b3JlZCIsc2UsITEpLG51bGw9PT1rZSl7bGV0IFY9WyJ3ZWJnbDIiLCJ3ZWJnbCIsImV4cGVyaW1lbnRhbC13ZWJnbCJdO2lmKCEwPT09Xy5pc1dlYkdMMVJlbmRlcmVyJiZWLnNoaWZ0KCksa2U9VG4oVixFKSxudWxsPT09a2UpdGhyb3cgVG4oVik/bmV3IEVycm9yKCJFcnJvciBjcmVhdGluZyBXZWJHTCBjb250ZXh0IHdpdGggeW91ciBzZWxlY3RlZCBhdHRyaWJ1dGVzLiIpOm5ldyBFcnJvcigiRXJyb3IgY3JlYXRpbmcgV2ViR0wgY29udGV4dC4iKX12b2lkIDA9PT1rZS5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQmJihrZS5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm57cmFuZ2VNaW46MSxyYW5nZU1heDoxLHByZWNpc2lvbjoxfX0pfWNhdGNoKEUpe3Rocm93IGNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXI6ICIrRS5tZXNzYWdlKSxFfWZ1bmN0aW9uIEZ0KCl7d3Q9bmV3IEtPZShrZSksb249bmV3IFdPZShrZSx3dCxuKSx3dC5pbml0KG9uKSxobj1uZXcgRTJlKGtlLHd0LG9uKSxDZT1uZXcgdzJlKGtlLHd0LG9uKSxtdD1uZXcgZUZlKGtlKSxodD1uZXcgaDJlLG9lPW5ldyBTMmUoa2Usd3QsQ2UsaHQsb24saG4sbXQpLGF0PW5ldyBYT2UoXyksWWU9bmV3IFpPZShfKSxfdD1uZXcgZlBlKGtlLG9uKSxsbj1uZXcgak9lKGtlLHd0LF90LG9uKSx1dD1uZXcgSk9lKGtlLF90LG10LGxuKSxhbj1uZXcgckZlKGtlLHV0LF90LG10KSx5dD1uZXcgaUZlKGtlLG9uLG9lKSxZPW5ldyBxT2UoaHQpLHluPW5ldyBwMmUoXyxhdCxZZSx3dCxvbixsbixZKSxzaT1uZXcgRDJlKGh0KSxOaT1uZXcgZjJlLExpPW5ldyB4MmUod3Qsb24pLEhlPW5ldyBVT2UoXyxhdCxDZSxhbixpLHMpLEw9bmV3IHd0ZShfLGFuLG9uKSxlbj1uZXcgR09lKGtlLHd0LG10LG9uKSxMZT1uZXcgJE9lKGtlLHd0LG10LG9uKSxtdC5wcm9ncmFtcz15bi5wcm9ncmFtcyxfLmNhcGFiaWxpdGllcz1vbixfLmV4dGVuc2lvbnM9d3QsXy5wcm9wZXJ0aWVzPWh0LF8ucmVuZGVyTGlzdHM9TmksXy5zaGFkb3dNYXA9TCxfLnN0YXRlPUNlLF8uaW5mbz1tdH1GdCgpO2xldCBPdD1uZXcgb0IoXyxrZSk7ZnVuY3Rpb24gTm4oRSl7RS5wcmV2ZW50RGVmYXVsdCgpLGNvbnNvbGUubG9nKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBDb250ZXh0IExvc3QuIiksTT0hMH1mdW5jdGlvbiBzZSgpe2NvbnNvbGUubG9nKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBDb250ZXh0IFJlc3RvcmVkLiIpLE09ITE7bGV0IEU9bXQuYXV0b1Jlc2V0LFY9TC5lbmFibGVkLFg9TC5hdXRvVXBkYXRlLFo9TC5uZWVkc1VwZGF0ZSxhZT1MLnR5cGU7RnQoKSxtdC5hdXRvUmVzZXQ9RSxMLmVuYWJsZWQ9VixMLmF1dG9VcGRhdGU9WCxMLm5lZWRzVXBkYXRlPVosTC50eXBlPWFlfWZ1bmN0aW9uIEp0KEUpe2xldCBWPUUudGFyZ2V0O1YucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsSnQpLGZ1bmN0aW9uKEUpeyhmdW5jdGlvbihFKXtsZXQgVj1odC5nZXQoRSkucHJvZ3JhbXM7dm9pZCAwIT09ViYmKFYuZm9yRWFjaChmdW5jdGlvbihYKXt5bi5yZWxlYXNlUHJvZ3JhbShYKX0pLEUuaXNTaGFkZXJNYXRlcmlhbCYmeW4ucmVsZWFzZVNoYWRlckNhY2hlKEUpKX0pKEUpLGh0LnJlbW92ZShFKX0oVil9dGhpcy54cj1PdCx0aGlzLmdldENvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4ga2V9LHRoaXMuZ2V0Q29udGV4dEF0dHJpYnV0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4ga2UuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKX0sdGhpcy5mb3JjZUNvbnRleHRMb3NzPWZ1bmN0aW9uKCl7bGV0IEU9d3QuZ2V0KCJXRUJHTF9sb3NlX2NvbnRleHQiKTtFJiZFLmxvc2VDb250ZXh0KCl9LHRoaXMuZm9yY2VDb250ZXh0UmVzdG9yZT1mdW5jdGlvbigpe2xldCBFPXd0LmdldCgiV0VCR0xfbG9zZV9jb250ZXh0Iik7RSYmRS5yZXN0b3JlQ29udGV4dCgpfSx0aGlzLmdldFBpeGVsUmF0aW89ZnVuY3Rpb24oKXtyZXR1cm4gRH0sdGhpcy5zZXRQaXhlbFJhdGlvPWZ1bmN0aW9uKEUpe3ZvaWQgMCE9PUUmJihEPUUsdGhpcy5zZXRTaXplKFFlLEFlLCExKSl9LHRoaXMuZ2V0U2l6ZT1mdW5jdGlvbihFKXtyZXR1cm4gRS5zZXQoUWUsQWUpfSx0aGlzLnNldFNpemU9ZnVuY3Rpb24oRSxWLFgpe090LmlzUHJlc2VudGluZz9jb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IENhbid0IGNoYW5nZSBzaXplIHdoaWxlIFZSIGRldmljZSBpcyBwcmVzZW50aW5nLiIpOihRZT1FLEFlPVYsdC53aWR0aD1NYXRoLmZsb29yKEUqRCksdC5oZWlnaHQ9TWF0aC5mbG9vcihWKkQpLCExIT09WCYmKHQuc3R5bGUud2lkdGg9RSsicHgiLHQuc3R5bGUuaGVpZ2h0PVYrInB4IiksdGhpcy5zZXRWaWV3cG9ydCgwLDAsRSxWKSl9LHRoaXMuZ2V0RHJhd2luZ0J1ZmZlclNpemU9ZnVuY3Rpb24oRSl7cmV0dXJuIEUuc2V0KFFlKkQsQWUqRCkuZmxvb3IoKX0sdGhpcy5zZXREcmF3aW5nQnVmZmVyU2l6ZT1mdW5jdGlvbihFLFYsWCl7UWU9RSxBZT1WLEQ9WCx0LndpZHRoPU1hdGguZmxvb3IoRSpYKSx0LmhlaWdodD1NYXRoLmZsb29yKFYqWCksdGhpcy5zZXRWaWV3cG9ydCgwLDAsRSxWKX0sdGhpcy5nZXRDdXJyZW50Vmlld3BvcnQ9ZnVuY3Rpb24oRSl7cmV0dXJuIEUuY29weShlZSl9LHRoaXMuZ2V0Vmlld3BvcnQ9ZnVuY3Rpb24oRSl7cmV0dXJuIEUuY29weShoZSl9LHRoaXMuc2V0Vmlld3BvcnQ9ZnVuY3Rpb24oRSxWLFgsWil7RS5pc1ZlY3RvcjQ/aGUuc2V0KEUueCxFLnksRS56LEUudyk6aGUuc2V0KEUsVixYLFopLENlLnZpZXdwb3J0KGVlLmNvcHkoaGUpLm11bHRpcGx5U2NhbGFyKEQpLmZsb29yKCkpfSx0aGlzLmdldFNjaXNzb3I9ZnVuY3Rpb24oRSl7cmV0dXJuIEUuY29weShfZSl9LHRoaXMuc2V0U2Npc3Nvcj1mdW5jdGlvbihFLFYsWCxaKXtFLmlzVmVjdG9yND9fZS5zZXQoRS54LEUueSxFLnosRS53KTpfZS5zZXQoRSxWLFgsWiksQ2Uuc2Npc3NvcihRLmNvcHkoX2UpLm11bHRpcGx5U2NhbGFyKEQpLmZsb29yKCkpfSx0aGlzLmdldFNjaXNzb3JUZXN0PWZ1bmN0aW9uKCl7cmV0dXJuICR9LHRoaXMuc2V0U2Npc3NvclRlc3Q9ZnVuY3Rpb24oRSl7Q2Uuc2V0U2Npc3NvclRlc3QoJD1FKX0sdGhpcy5zZXRPcGFxdWVTb3J0PWZ1bmN0aW9uKEUpe3JlPUV9LHRoaXMuc2V0VHJhbnNwYXJlbnRTb3J0PWZ1bmN0aW9uKEUpe2NlPUV9LHRoaXMuZ2V0Q2xlYXJDb2xvcj1mdW5jdGlvbihFKXtyZXR1cm4gRS5jb3B5KEhlLmdldENsZWFyQ29sb3IoKSl9LHRoaXMuc2V0Q2xlYXJDb2xvcj1mdW5jdGlvbigpe0hlLnNldENsZWFyQ29sb3IuYXBwbHkoSGUsYXJndW1lbnRzKX0sdGhpcy5nZXRDbGVhckFscGhhPWZ1bmN0aW9uKCl7cmV0dXJuIEhlLmdldENsZWFyQWxwaGEoKX0sdGhpcy5zZXRDbGVhckFscGhhPWZ1bmN0aW9uKCl7SGUuc2V0Q2xlYXJBbHBoYS5hcHBseShIZSxhcmd1bWVudHMpfSx0aGlzLmNsZWFyPWZ1bmN0aW9uKEUsVixYKXtsZXQgWj0wOyh2b2lkIDA9PT1FfHxFKSYmKFp8PTE2Mzg0KSwodm9pZCAwPT09Vnx8VikmJihafD0yNTYpLCh2b2lkIDA9PT1YfHxYKSYmKFp8PTEwMjQpLGtlLmNsZWFyKFopfSx0aGlzLmNsZWFyQ29sb3I9ZnVuY3Rpb24oKXt0aGlzLmNsZWFyKCEwLCExLCExKX0sdGhpcy5jbGVhckRlcHRoPWZ1bmN0aW9uKCl7dGhpcy5jbGVhcighMSwhMCwhMSl9LHRoaXMuY2xlYXJTdGVuY2lsPWZ1bmN0aW9uKCl7dGhpcy5jbGVhcighMSwhMSwhMCl9LHRoaXMuZGlzcG9zZT1mdW5jdGlvbigpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0bG9zdCIsTm4sITEpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0cmVzdG9yZWQiLHNlLCExKSxOaS5kaXNwb3NlKCksTGkuZGlzcG9zZSgpLGh0LmRpc3Bvc2UoKSxhdC5kaXNwb3NlKCksWWUuZGlzcG9zZSgpLGFuLmRpc3Bvc2UoKSxsbi5kaXNwb3NlKCkseW4uZGlzcG9zZSgpLE90LmRpc3Bvc2UoKSxPdC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZXNzaW9uc3RhcnQiLGZpKSxPdC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZXNzaW9uZW5kIixsciksU2UmJihTZS5kaXNwb3NlKCksU2U9bnVsbCksV28uc3RvcCgpfSx0aGlzLnJlbmRlckJ1ZmZlckRpcmVjdD1mdW5jdGlvbihFLFYsWCxaLGFlLHplKXtudWxsPT09ViYmKFY9TXQpO2xldCBldD1hZS5pc01lc2gmJmFlLm1hdHJpeFdvcmxkLmRldGVybWluYW50KCk8MCxxZT1mdW5jdGlvbihFLFYsWCxaLGFlKXshMCE9PVYuaXNTY2VuZSYmKFY9TXQpLG9lLnJlc2V0VGV4dHVyZVVuaXRzKCk7bGV0IHplPVYuZm9nLHFlPW51bGw9PT1SP18ub3V0cHV0RW5jb2Rpbmc6ITA9PT1SLmlzWFJSZW5kZXJUYXJnZXQ/Ui50ZXh0dXJlLmVuY29kaW5nOndwLHJ0PShaLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWw/WWU6YXQpLmdldChaLmVudk1hcHx8KFouaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9WLmVudmlyb25tZW50Om51bGwpKSxkdD0hMD09PVoudmVydGV4Q29sb3JzJiYhIVguYXR0cmlidXRlcy5jb2xvciYmND09PVguYXR0cmlidXRlcy5jb2xvci5pdGVtU2l6ZSxTdD0hIVoubm9ybWFsTWFwJiYhIVguYXR0cmlidXRlcy50YW5nZW50LEF0PSEhWC5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24sY249ISFYLm1vcnBoQXR0cmlidXRlcy5ub3JtYWwscWk9WC5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24/WC5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24ubGVuZ3RoOjAseWk9Wi50b25lTWFwcGVkP18udG9uZU1hcHBpbmc6eXAscG49aHQuZ2V0KFopLFJuPXAuc3RhdGUubGlnaHRzOyEwIT09cGV8fCEwIT09R2UmJkU9PT1CfHxZLnNldFN0YXRlKFosRSxFPT09QiYmWi5pZD09PUkpO2xldCBFdD0hMTtaLnZlcnNpb249PT1wbi5fX3ZlcnNpb24/KHBuLm5lZWRzTGlnaHRzJiZwbi5saWdodHNTdGF0ZVZlcnNpb24hPT1Sbi5zdGF0ZS52ZXJzaW9ufHxwbi5vdXRwdXRFbmNvZGluZyE9PXFlfHxhZS5pc0luc3RhbmNlZE1lc2gmJiExPT09cG4uaW5zdGFuY2luZ3x8IWFlLmlzSW5zdGFuY2VkTWVzaCYmITA9PT1wbi5pbnN0YW5jaW5nfHxhZS5pc1NraW5uZWRNZXNoJiYhMT09PXBuLnNraW5uaW5nfHwhYWUuaXNTa2lubmVkTWVzaCYmITA9PT1wbi5za2lubmluZ3x8cG4uZW52TWFwIT09cnR8fFouZm9nJiZwbi5mb2chPT16ZXx8dm9pZCAwIT09cG4ubnVtQ2xpcHBpbmdQbGFuZXMmJihwbi5udW1DbGlwcGluZ1BsYW5lcyE9PVkubnVtUGxhbmVzfHxwbi5udW1JbnRlcnNlY3Rpb24hPT1ZLm51bUludGVyc2VjdGlvbil8fHBuLnZlcnRleEFscGhhcyE9PWR0fHxwbi52ZXJ0ZXhUYW5nZW50cyE9PVN0fHxwbi5tb3JwaFRhcmdldHMhPT1BdHx8cG4ubW9ycGhOb3JtYWxzIT09Y258fHBuLnRvbmVNYXBwaW5nIT09eWl8fCEwPT09b24uaXNXZWJHTDImJnBuLm1vcnBoVGFyZ2V0c0NvdW50IT09cWkpJiYoRXQ9ITApOihFdD0hMCxwbi5fX3ZlcnNpb249Wi52ZXJzaW9uKTtsZXQgZ2k9cG4uY3VycmVudFByb2dyYW07ITA9PT1FdCYmKGdpPVNfKFosVixhZSkpO2xldCB0aT0hMSxIbj0hMSxRbj0hMSx6dD1naS5nZXRVbmlmb3JtcygpLEJpPXBuLnVuaWZvcm1zO2lmKENlLnVzZVByb2dyYW0oZ2kucHJvZ3JhbSkmJih0aT0hMCxIbj0hMCxRbj0hMCksWi5pZCE9PUkmJihJPVouaWQsSG49ITApLHRpfHxCIT09RSl7aWYoenQuc2V0VmFsdWUoa2UsInByb2plY3Rpb25NYXRyaXgiLEUucHJvamVjdGlvbk1hdHJpeCksb24ubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlciYmenQuc2V0VmFsdWUoa2UsImxvZ0RlcHRoQnVmRkMiLDIvKE1hdGgubG9nKEUuZmFyKzEpL01hdGguTE4yKSksQiE9PUUmJihCPUUsSG49ITAsUW49ITApLFouaXNTaGFkZXJNYXRlcmlhbHx8Wi5pc01lc2hQaG9uZ01hdGVyaWFsfHxaLmlzTWVzaFRvb25NYXRlcmlhbHx8Wi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHxaLmVudk1hcCl7bGV0IF9uPXp0Lm1hcC5jYW1lcmFQb3NpdGlvbjt2b2lkIDAhPT1fbiYmX24uc2V0VmFsdWUoa2UsbHQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKEUubWF0cml4V29ybGQpKX0oWi5pc01lc2hQaG9uZ01hdGVyaWFsfHxaLmlzTWVzaFRvb25NYXRlcmlhbHx8Wi5pc01lc2hMYW1iZXJ0TWF0ZXJpYWx8fFouaXNNZXNoQmFzaWNNYXRlcmlhbHx8Wi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHxaLmlzU2hhZGVyTWF0ZXJpYWwpJiZ6dC5zZXRWYWx1ZShrZSwiaXNPcnRob2dyYXBoaWMiLCEwPT09RS5pc09ydGhvZ3JhcGhpY0NhbWVyYSksKFouaXNNZXNoUGhvbmdNYXRlcmlhbHx8Wi5pc01lc2hUb29uTWF0ZXJpYWx8fFouaXNNZXNoTGFtYmVydE1hdGVyaWFsfHxaLmlzTWVzaEJhc2ljTWF0ZXJpYWx8fFouaXNNZXNoU3RhbmRhcmRNYXRlcmlhbHx8Wi5pc1NoYWRlck1hdGVyaWFsfHxaLmlzU2hhZG93TWF0ZXJpYWx8fGFlLmlzU2tpbm5lZE1lc2gpJiZ6dC5zZXRWYWx1ZShrZSwidmlld01hdHJpeCIsRS5tYXRyaXhXb3JsZEludmVyc2UpfWlmKGFlLmlzU2tpbm5lZE1lc2gpe3p0LnNldE9wdGlvbmFsKGtlLGFlLCJiaW5kTWF0cml4IiksenQuc2V0T3B0aW9uYWwoa2UsYWUsImJpbmRNYXRyaXhJbnZlcnNlIik7bGV0IF9uPWFlLnNrZWxldG9uO19uJiYob24uZmxvYXRWZXJ0ZXhUZXh0dXJlcz8obnVsbD09PV9uLmJvbmVUZXh0dXJlJiZfbi5jb21wdXRlQm9uZVRleHR1cmUoKSx6dC5zZXRWYWx1ZShrZSwiYm9uZVRleHR1cmUiLF9uLmJvbmVUZXh0dXJlLG9lKSx6dC5zZXRWYWx1ZShrZSwiYm9uZVRleHR1cmVTaXplIixfbi5ib25lVGV4dHVyZVNpemUpKTp6dC5zZXRPcHRpb25hbChrZSxfbiwiYm9uZU1hdHJpY2VzIikpfXJldHVybiEhWCYmKHZvaWQgMCE9PVgubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9ufHx2b2lkIDAhPT1YLm1vcnBoQXR0cmlidXRlcy5ub3JtYWwpJiZ5dC51cGRhdGUoYWUsWCxaLGdpKSwoSG58fHBuLnJlY2VpdmVTaGFkb3chPT1hZS5yZWNlaXZlU2hhZG93KSYmKHBuLnJlY2VpdmVTaGFkb3c9YWUucmVjZWl2ZVNoYWRvdyx6dC5zZXRWYWx1ZShrZSwicmVjZWl2ZVNoYWRvdyIsYWUucmVjZWl2ZVNoYWRvdykpLEhuJiYoenQuc2V0VmFsdWUoa2UsInRvbmVNYXBwaW5nRXhwb3N1cmUiLF8udG9uZU1hcHBpbmdFeHBvc3VyZSkscG4ubmVlZHNMaWdodHMmJmZ1bmN0aW9uKEUsVil7RS5hbWJpZW50TGlnaHRDb2xvci5uZWVkc1VwZGF0ZT1WLEUubGlnaHRQcm9iZS5uZWVkc1VwZGF0ZT1WLEUuZGlyZWN0aW9uYWxMaWdodHMubmVlZHNVcGRhdGU9VixFLmRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzLm5lZWRzVXBkYXRlPVYsRS5wb2ludExpZ2h0cy5uZWVkc1VwZGF0ZT1WLEUucG9pbnRMaWdodFNoYWRvd3MubmVlZHNVcGRhdGU9VixFLnNwb3RMaWdodHMubmVlZHNVcGRhdGU9VixFLnNwb3RMaWdodFNoYWRvd3MubmVlZHNVcGRhdGU9VixFLnJlY3RBcmVhTGlnaHRzLm5lZWRzVXBkYXRlPVYsRS5oZW1pc3BoZXJlTGlnaHRzLm5lZWRzVXBkYXRlPVZ9KEJpLFFuKSx6ZSYmWi5mb2cmJnNpLnJlZnJlc2hGb2dVbmlmb3JtcyhCaSx6ZSksc2kucmVmcmVzaE1hdGVyaWFsVW5pZm9ybXMoQmksWixELEFlLFNlKSxNcC51cGxvYWQoa2UscG4udW5pZm9ybXNMaXN0LEJpLG9lKSksWi5pc1NoYWRlck1hdGVyaWFsJiYhMD09PVoudW5pZm9ybXNOZWVkVXBkYXRlJiYoTXAudXBsb2FkKGtlLHBuLnVuaWZvcm1zTGlzdCxCaSxvZSksWi51bmlmb3Jtc05lZWRVcGRhdGU9ITEpLFouaXNTcHJpdGVNYXRlcmlhbCYmenQuc2V0VmFsdWUoa2UsImNlbnRlciIsYWUuY2VudGVyKSx6dC5zZXRWYWx1ZShrZSwibW9kZWxWaWV3TWF0cml4IixhZS5tb2RlbFZpZXdNYXRyaXgpLHp0LnNldFZhbHVlKGtlLCJub3JtYWxNYXRyaXgiLGFlLm5vcm1hbE1hdHJpeCksenQuc2V0VmFsdWUoa2UsIm1vZGVsTWF0cml4IixhZS5tYXRyaXhXb3JsZCksZ2l9KEUsVixYLFosYWUpO0NlLnNldE1hdGVyaWFsKFosZXQpO2xldCBydD1YLmluZGV4LGR0PVguYXR0cmlidXRlcy5wb3NpdGlvbjtpZihudWxsPT09cnQpe2lmKHZvaWQgMD09PWR0fHwwPT09ZHQuY291bnQpcmV0dXJufWVsc2UgaWYoMD09PXJ0LmNvdW50KXJldHVybjtsZXQgU3Q9MTshMD09PVoud2lyZWZyYW1lJiYocnQ9dXQuZ2V0V2lyZWZyYW1lQXR0cmlidXRlKFgpLFN0PTIpLGxuLnNldHVwKGFlLFoscWUsWCxydCk7bGV0IEF0LGNuPWVuO251bGwhPT1ydCYmKEF0PV90LmdldChydCksY249TGUsY24uc2V0SW5kZXgoQXQpKTtsZXQgcWk9bnVsbCE9PXJ0P3J0LmNvdW50OmR0LmNvdW50LHlpPVguZHJhd1JhbmdlLnN0YXJ0KlN0LHBuPVguZHJhd1JhbmdlLmNvdW50KlN0LFJuPW51bGwhPT16ZT96ZS5zdGFydCpTdDowLEV0PW51bGwhPT16ZT96ZS5jb3VudCpTdDoxLzAsZ2k9TWF0aC5tYXgoeWksUm4pLHRpPU1hdGgubWluKHFpLHlpK3BuLFJuK0V0KS0xLEhuPU1hdGgubWF4KDAsdGktZ2krMSk7aWYoMCE9PUhuKXtpZihhZS5pc01lc2gpITA9PT1aLndpcmVmcmFtZT8oQ2Uuc2V0TGluZVdpZHRoKFoud2lyZWZyYW1lTGluZXdpZHRoKnB0KCkpLGNuLnNldE1vZGUoMSkpOmNuLnNldE1vZGUoNCk7ZWxzZSBpZihhZS5pc0xpbmUpe2xldCBRbj1aLmxpbmV3aWR0aDt2b2lkIDA9PT1RbiYmKFFuPTEpLENlLnNldExpbmVXaWR0aChRbipwdCgpKSxjbi5zZXRNb2RlKGFlLmlzTGluZVNlZ21lbnRzPzE6YWUuaXNMaW5lTG9vcD8yOjMpfWVsc2UgYWUuaXNQb2ludHM/Y24uc2V0TW9kZSgwKTphZS5pc1Nwcml0ZSYmY24uc2V0TW9kZSg0KTtpZihhZS5pc0luc3RhbmNlZE1lc2gpY24ucmVuZGVySW5zdGFuY2VzKGdpLEhuLGFlLmNvdW50KTtlbHNlIGlmKFguaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSl7bGV0IFFuPU1hdGgubWluKFguaW5zdGFuY2VDb3VudCxYLl9tYXhJbnN0YW5jZUNvdW50KTtjbi5yZW5kZXJJbnN0YW5jZXMoZ2ksSG4sUW4pfWVsc2UgY24ucmVuZGVyKGdpLEhuKX19LHRoaXMuY29tcGlsZT1mdW5jdGlvbihFLFYpe3A9TGkuZ2V0KEUpLHAuaW5pdCgpLG0ucHVzaChwKSxFLnRyYXZlcnNlVmlzaWJsZShmdW5jdGlvbihYKXtYLmlzTGlnaHQmJlgubGF5ZXJzLnRlc3QoVi5sYXllcnMpJiYocC5wdXNoTGlnaHQoWCksWC5jYXN0U2hhZG93JiZwLnB1c2hTaGFkb3coWCkpfSkscC5zZXR1cExpZ2h0cyhfLnBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzKSxFLnRyYXZlcnNlKGZ1bmN0aW9uKFgpe2xldCBaPVgubWF0ZXJpYWw7aWYoWilpZihBcnJheS5pc0FycmF5KFopKWZvcihsZXQgYWU9MDthZTxaLmxlbmd0aDthZSsrKVNfKFpbYWVdLEUsWCk7ZWxzZSBTXyhaLEUsWCl9KSxtLnBvcCgpLHA9bnVsbH07bGV0IFdlPW51bGw7ZnVuY3Rpb24gZmkoKXtXby5zdG9wKCl9ZnVuY3Rpb24gbHIoKXtXby5zdGFydCgpfWxldCBXbz1uZXcgbXRlO2Z1bmN0aW9uIHZyKEUsVixYLFope2lmKCExPT09RS52aXNpYmxlKXJldHVybjtpZihFLmxheWVycy50ZXN0KFYubGF5ZXJzKSlpZihFLmlzR3JvdXApWD1FLnJlbmRlck9yZGVyO2Vsc2UgaWYoRS5pc0xPRCkhMD09PUUuYXV0b1VwZGF0ZSYmRS51cGRhdGUoVik7ZWxzZSBpZihFLmlzTGlnaHQpcC5wdXNoTGlnaHQoRSksRS5jYXN0U2hhZG93JiZwLnB1c2hTaGFkb3coRSk7ZWxzZSBpZihFLmlzU3ByaXRlKXtpZighRS5mcnVzdHVtQ3VsbGVkfHxkZS5pbnRlcnNlY3RzU3ByaXRlKEUpKXtaJiZsdC5zZXRGcm9tTWF0cml4UG9zaXRpb24oRS5tYXRyaXhXb3JsZCkuYXBwbHlNYXRyaXg0KEZlKTtsZXQgZXQ9YW4udXBkYXRlKEUpLHFlPUUubWF0ZXJpYWw7cWUudmlzaWJsZSYmdS5wdXNoKEUsZXQscWUsWCxsdC56LG51bGwpfX1lbHNlIGlmKChFLmlzTWVzaHx8RS5pc0xpbmV8fEUuaXNQb2ludHMpJiYoRS5pc1NraW5uZWRNZXNoJiZFLnNrZWxldG9uLmZyYW1lIT09bXQucmVuZGVyLmZyYW1lJiYoRS5za2VsZXRvbi51cGRhdGUoKSxFLnNrZWxldG9uLmZyYW1lPW10LnJlbmRlci5mcmFtZSksIUUuZnJ1c3R1bUN1bGxlZHx8ZGUuaW50ZXJzZWN0c09iamVjdChFKSkpe1omJmx0LnNldEZyb21NYXRyaXhQb3NpdGlvbihFLm1hdHJpeFdvcmxkKS5hcHBseU1hdHJpeDQoRmUpO2xldCBldD1hbi51cGRhdGUoRSkscWU9RS5tYXRlcmlhbDtpZihBcnJheS5pc0FycmF5KHFlKSl7bGV0IHJ0PWV0Lmdyb3Vwcztmb3IobGV0IGR0PTAsU3Q9cnQubGVuZ3RoO2R0PFN0O2R0Kyspe2xldCBBdD1ydFtkdF0sY249cWVbQXQubWF0ZXJpYWxJbmRleF07Y24mJmNuLnZpc2libGUmJnUucHVzaChFLGV0LGNuLFgsbHQueixBdCl9fWVsc2UgcWUudmlzaWJsZSYmdS5wdXNoKEUsZXQscWUsWCxsdC56LG51bGwpfWxldCB6ZT1FLmNoaWxkcmVuO2ZvcihsZXQgZXQ9MCxxZT16ZS5sZW5ndGg7ZXQ8cWU7ZXQrKyl2cih6ZVtldF0sVixYLFopfWZ1bmN0aW9uIElzKEUsVixYLFope2xldCBhZT1FLm9wYXF1ZSx6ZT1FLnRyYW5zbWlzc2l2ZSxldD1FLnRyYW5zcGFyZW50O3Auc2V0dXBMaWdodHNWaWV3KFgpLHplLmxlbmd0aD4wJiZmdW5jdGlvbihFLFYsWCl7bnVsbD09PVNlJiYoU2U9bmV3KCEwPT09YSYmITA9PT1vbi5pc1dlYkdMMj93eDp0cykoMTAyNCwxMDI0LHtnZW5lcmF0ZU1pcG1hcHM6ITAsdHlwZTpudWxsIT09aG4uY29udmVydChxMCk/cTA6eHAsbWluRmlsdGVyOiRJLG1hZ0ZpbHRlcjp2byx3cmFwUzpFcyx3cmFwVDpFcyx1c2VSZW5kZXJUb1RleHR1cmU6d3QuaGFzKCJXRUJHTF9tdWx0aXNhbXBsZWRfcmVuZGVyX3RvX3RleHR1cmUiKX0pKTtsZXQgWj1fLmdldFJlbmRlclRhcmdldCgpO18uc2V0UmVuZGVyVGFyZ2V0KFNlKSxfLmNsZWFyKCk7bGV0IGFlPV8udG9uZU1hcHBpbmc7Xy50b25lTWFwcGluZz15cCxwbChFLFYsWCksXy50b25lTWFwcGluZz1hZSxvZS51cGRhdGVNdWx0aXNhbXBsZVJlbmRlclRhcmdldChTZSksb2UudXBkYXRlUmVuZGVyVGFyZ2V0TWlwbWFwKFNlKSxfLnNldFJlbmRlclRhcmdldChaKX0oYWUsVixYKSxaJiZDZS52aWV3cG9ydChlZS5jb3B5KFopKSxhZS5sZW5ndGg+MCYmcGwoYWUsVixYKSx6ZS5sZW5ndGg+MCYmcGwoemUsVixYKSxldC5sZW5ndGg+MCYmcGwoZXQsVixYKX1mdW5jdGlvbiBwbChFLFYsWCl7bGV0IFo9ITA9PT1WLmlzU2NlbmU/Vi5vdmVycmlkZU1hdGVyaWFsOm51bGw7Zm9yKGxldCBhZT0wLHplPUUubGVuZ3RoO2FlPHplO2FlKyspe2xldCBldD1FW2FlXSxxZT1ldC5vYmplY3QscnQ9ZXQuZ2VvbWV0cnksZHQ9bnVsbD09PVo/ZXQubWF0ZXJpYWw6WixTdD1ldC5ncm91cDtxZS5sYXllcnMudGVzdChYLmxheWVycykmJmtBKHFlLFYsWCxydCxkdCxTdCl9fWZ1bmN0aW9uIGtBKEUsVixYLFosYWUsemUpe0Uub25CZWZvcmVSZW5kZXIoXyxWLFgsWixhZSx6ZSksRS5tb2RlbFZpZXdNYXRyaXgubXVsdGlwbHlNYXRyaWNlcyhYLm1hdHJpeFdvcmxkSW52ZXJzZSxFLm1hdHJpeFdvcmxkKSxFLm5vcm1hbE1hdHJpeC5nZXROb3JtYWxNYXRyaXgoRS5tb2RlbFZpZXdNYXRyaXgpLGFlLm9uQmVmb3JlUmVuZGVyKF8sVixYLFosRSx6ZSksITA9PT1hZS50cmFuc3BhcmVudCYmYWUuc2lkZT09PVowPyhhZS5zaWRlPWJvLGFlLm5lZWRzVXBkYXRlPSEwLF8ucmVuZGVyQnVmZmVyRGlyZWN0KFgsVixaLGFlLEUsemUpLGFlLnNpZGU9eXgsYWUubmVlZHNVcGRhdGU9ITAsXy5yZW5kZXJCdWZmZXJEaXJlY3QoWCxWLFosYWUsRSx6ZSksYWUuc2lkZT1aMCk6Xy5yZW5kZXJCdWZmZXJEaXJlY3QoWCxWLFosYWUsRSx6ZSksRS5vbkFmdGVyUmVuZGVyKF8sVixYLFosYWUsemUpfWZ1bmN0aW9uIFNfKEUsVixYKXshMCE9PVYuaXNTY2VuZSYmKFY9TXQpO2xldCBaPWh0LmdldChFKSxhZT1wLnN0YXRlLmxpZ2h0cyxldD1hZS5zdGF0ZS52ZXJzaW9uLHFlPXluLmdldFBhcmFtZXRlcnMoRSxhZS5zdGF0ZSxwLnN0YXRlLnNoYWRvd3NBcnJheSxWLFgpLHJ0PXluLmdldFByb2dyYW1DYWNoZUtleShxZSksZHQ9Wi5wcm9ncmFtcztaLmVudmlyb25tZW50PUUuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9WLmVudmlyb25tZW50Om51bGwsWi5mb2c9Vi5mb2csWi5lbnZNYXA9KEUuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9ZZTphdCkuZ2V0KEUuZW52TWFwfHxaLmVudmlyb25tZW50KSx2b2lkIDA9PT1kdCYmKEUuYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsSnQpLGR0PW5ldyBNYXAsWi5wcm9ncmFtcz1kdCk7bGV0IFN0PWR0LmdldChydCk7aWYodm9pZCAwIT09U3Qpe2lmKFouY3VycmVudFByb2dyYW09PT1TdCYmWi5saWdodHNTdGF0ZVZlcnNpb249PT1ldClyZXR1cm4gdEMoRSxxZSksU3R9ZWxzZSBxZS51bmlmb3Jtcz15bi5nZXRVbmlmb3JtcyhFKSxFLm9uQnVpbGQoWCxxZSxfKSxFLm9uQmVmb3JlQ29tcGlsZShxZSxfKSxTdD15bi5hY3F1aXJlUHJvZ3JhbShxZSxydCksZHQuc2V0KHJ0LFN0KSxaLnVuaWZvcm1zPXFlLnVuaWZvcm1zO2xldCBBdD1aLnVuaWZvcm1zOyghRS5pc1NoYWRlck1hdGVyaWFsJiYhRS5pc1Jhd1NoYWRlck1hdGVyaWFsfHwhMD09PUUuY2xpcHBpbmcpJiYoQXQuY2xpcHBpbmdQbGFuZXM9WS51bmlmb3JtKSx0QyhFLHFlKSxaLm5lZWRzTGlnaHRzPWZ1bmN0aW9uKEUpe3JldHVybiBFLmlzTWVzaExhbWJlcnRNYXRlcmlhbHx8RS5pc01lc2hUb29uTWF0ZXJpYWx8fEUuaXNNZXNoUGhvbmdNYXRlcmlhbHx8RS5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHxFLmlzU2hhZG93TWF0ZXJpYWx8fEUuaXNTaGFkZXJNYXRlcmlhbCYmITA9PT1FLmxpZ2h0c30oRSksWi5saWdodHNTdGF0ZVZlcnNpb249ZXQsWi5uZWVkc0xpZ2h0cyYmKEF0LmFtYmllbnRMaWdodENvbG9yLnZhbHVlPWFlLnN0YXRlLmFtYmllbnQsQXQubGlnaHRQcm9iZS52YWx1ZT1hZS5zdGF0ZS5wcm9iZSxBdC5kaXJlY3Rpb25hbExpZ2h0cy52YWx1ZT1hZS5zdGF0ZS5kaXJlY3Rpb25hbCxBdC5kaXJlY3Rpb25hbExpZ2h0U2hhZG93cy52YWx1ZT1hZS5zdGF0ZS5kaXJlY3Rpb25hbFNoYWRvdyxBdC5zcG90TGlnaHRzLnZhbHVlPWFlLnN0YXRlLnNwb3QsQXQuc3BvdExpZ2h0U2hhZG93cy52YWx1ZT1hZS5zdGF0ZS5zcG90U2hhZG93LEF0LnJlY3RBcmVhTGlnaHRzLnZhbHVlPWFlLnN0YXRlLnJlY3RBcmVhLEF0Lmx0Y18xLnZhbHVlPWFlLnN0YXRlLnJlY3RBcmVhTFRDMSxBdC5sdGNfMi52YWx1ZT1hZS5zdGF0ZS5yZWN0QXJlYUxUQzIsQXQucG9pbnRMaWdodHMudmFsdWU9YWUuc3RhdGUucG9pbnQsQXQucG9pbnRMaWdodFNoYWRvd3MudmFsdWU9YWUuc3RhdGUucG9pbnRTaGFkb3csQXQuaGVtaXNwaGVyZUxpZ2h0cy52YWx1ZT1hZS5zdGF0ZS5oZW1pLEF0LmRpcmVjdGlvbmFsU2hhZG93TWFwLnZhbHVlPWFlLnN0YXRlLmRpcmVjdGlvbmFsU2hhZG93TWFwLEF0LmRpcmVjdGlvbmFsU2hhZG93TWF0cml4LnZhbHVlPWFlLnN0YXRlLmRpcmVjdGlvbmFsU2hhZG93TWF0cml4LEF0LnNwb3RTaGFkb3dNYXAudmFsdWU9YWUuc3RhdGUuc3BvdFNoYWRvd01hcCxBdC5zcG90U2hhZG93TWF0cml4LnZhbHVlPWFlLnN0YXRlLnNwb3RTaGFkb3dNYXRyaXgsQXQucG9pbnRTaGFkb3dNYXAudmFsdWU9YWUuc3RhdGUucG9pbnRTaGFkb3dNYXAsQXQucG9pbnRTaGFkb3dNYXRyaXgudmFsdWU9YWUuc3RhdGUucG9pbnRTaGFkb3dNYXRyaXgpO2xldCBjbj1TdC5nZXRVbmlmb3JtcygpLHFpPU1wLnNlcVdpdGhWYWx1ZShjbi5zZXEsQXQpO3JldHVybiBaLmN1cnJlbnRQcm9ncmFtPVN0LFoudW5pZm9ybXNMaXN0PXFpLFN0fWZ1bmN0aW9uIHRDKEUsVil7bGV0IFg9aHQuZ2V0KEUpO1gub3V0cHV0RW5jb2Rpbmc9Vi5vdXRwdXRFbmNvZGluZyxYLmluc3RhbmNpbmc9Vi5pbnN0YW5jaW5nLFguc2tpbm5pbmc9Vi5za2lubmluZyxYLm1vcnBoVGFyZ2V0cz1WLm1vcnBoVGFyZ2V0cyxYLm1vcnBoTm9ybWFscz1WLm1vcnBoTm9ybWFscyxYLm1vcnBoVGFyZ2V0c0NvdW50PVYubW9ycGhUYXJnZXRzQ291bnQsWC5udW1DbGlwcGluZ1BsYW5lcz1WLm51bUNsaXBwaW5nUGxhbmVzLFgubnVtSW50ZXJzZWN0aW9uPVYubnVtQ2xpcEludGVyc2VjdGlvbixYLnZlcnRleEFscGhhcz1WLnZlcnRleEFscGhhcyxYLnZlcnRleFRhbmdlbnRzPVYudmVydGV4VGFuZ2VudHMsWC50b25lTWFwcGluZz1WLnRvbmVNYXBwaW5nfVdvLnNldEFuaW1hdGlvbkxvb3AoZnVuY3Rpb24oRSl7V2UmJldlKEUpfSksdHlwZW9mIHdpbmRvdzwidSImJldvLnNldENvbnRleHQod2luZG93KSx0aGlzLnNldEFuaW1hdGlvbkxvb3A9ZnVuY3Rpb24oRSl7V2U9RSxPdC5zZXRBbmltYXRpb25Mb29wKEUpLG51bGw9PT1FP1dvLnN0b3AoKTpXby5zdGFydCgpfSxPdC5hZGRFdmVudExpc3RlbmVyKCJzZXNzaW9uc3RhcnQiLGZpKSxPdC5hZGRFdmVudExpc3RlbmVyKCJzZXNzaW9uZW5kIixsciksdGhpcy5yZW5kZXI9ZnVuY3Rpb24oRSxWKXtpZih2b2lkIDA9PT1WfHwhMD09PVYuaXNDYW1lcmEpe2lmKCEwIT09TSl7aWYoITA9PT1FLmF1dG9VcGRhdGUmJkUudXBkYXRlTWF0cml4V29ybGQoKSxudWxsPT09Vi5wYXJlbnQmJlYudXBkYXRlTWF0cml4V29ybGQoKSwhMD09PU90LmVuYWJsZWQmJiEwPT09T3QuaXNQcmVzZW50aW5nJiYoITA9PT1PdC5jYW1lcmFBdXRvVXBkYXRlJiZPdC51cGRhdGVDYW1lcmEoViksVj1PdC5nZXRDYW1lcmEoKSksITA9PT1FLmlzU2NlbmUmJkUub25CZWZvcmVSZW5kZXIoXyxFLFYsUikscD1MaS5nZXQoRSxtLmxlbmd0aCkscC5pbml0KCksbS5wdXNoKHApLEZlLm11bHRpcGx5TWF0cmljZXMoVi5wcm9qZWN0aW9uTWF0cml4LFYubWF0cml4V29ybGRJbnZlcnNlKSxkZS5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeChGZSksR2U9dGhpcy5sb2NhbENsaXBwaW5nRW5hYmxlZCxwZT1ZLmluaXQodGhpcy5jbGlwcGluZ1BsYW5lcyxHZSxWKSx1PU5pLmdldChFLGgubGVuZ3RoKSx1LmluaXQoKSxoLnB1c2godSksdnIoRSxWLDAsXy5zb3J0T2JqZWN0cyksdS5maW5pc2goKSwhMD09PV8uc29ydE9iamVjdHMmJnUuc29ydChyZSxjZSksITA9PT1wZSYmWS5iZWdpblNoYWRvd3MoKSxMLnJlbmRlcihwLnN0YXRlLnNoYWRvd3NBcnJheSxFLFYpLCEwPT09cGUmJlkuZW5kU2hhZG93cygpLCEwPT09dGhpcy5pbmZvLmF1dG9SZXNldCYmdGhpcy5pbmZvLnJlc2V0KCksSGUucmVuZGVyKHUsRSkscC5zZXR1cExpZ2h0cyhfLnBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzKSxWLmlzQXJyYXlDYW1lcmEpe2xldCBaPVYuY2FtZXJhcztmb3IobGV0IGFlPTAsemU9Wi5sZW5ndGg7YWU8emU7YWUrKyl7bGV0IGV0PVpbYWVdO0lzKHUsRSxldCxldC52aWV3cG9ydCl9fWVsc2UgSXModSxFLFYpO251bGwhPT1SJiYob2UudXBkYXRlTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQoUiksb2UudXBkYXRlUmVuZGVyVGFyZ2V0TWlwbWFwKFIpKSwhMD09PUUuaXNTY2VuZSYmRS5vbkFmdGVyUmVuZGVyKF8sRSxWKSxDZS5idWZmZXJzLmRlcHRoLnNldFRlc3QoITApLENlLmJ1ZmZlcnMuZGVwdGguc2V0TWFzayghMCksQ2UuYnVmZmVycy5jb2xvci5zZXRNYXNrKCEwKSxDZS5zZXRQb2x5Z29uT2Zmc2V0KCExKSxsbi5yZXNldERlZmF1bHRTdGF0ZSgpLEk9LTEsQj1udWxsLG0ucG9wKCkscD1tLmxlbmd0aD4wP21bbS5sZW5ndGgtMV06bnVsbCxoLnBvcCgpLHU9aC5sZW5ndGg+MD9oW2gubGVuZ3RoLTFdOm51bGx9fWVsc2UgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZW5kZXI6IGNhbWVyYSBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgVEhSRUUuQ2FtZXJhLiIpfSx0aGlzLmdldEFjdGl2ZUN1YmVGYWNlPWZ1bmN0aW9uKCl7cmV0dXJuIHl9LHRoaXMuZ2V0QWN0aXZlTWlwbWFwTGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4geH0sdGhpcy5nZXRSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gUn0sdGhpcy5zZXRSZW5kZXJUYXJnZXRUZXh0dXJlcz1mdW5jdGlvbihFLFYsWCl7aHQuZ2V0KEUudGV4dHVyZSkuX193ZWJnbFRleHR1cmU9VixodC5nZXQoRS5kZXB0aFRleHR1cmUpLl9fd2ViZ2xUZXh0dXJlPVg7bGV0IFo9aHQuZ2V0KEUpO1ouX19oYXNFeHRlcm5hbFRleHR1cmVzPSEwLFouX19oYXNFeHRlcm5hbFRleHR1cmVzJiYoWi5fX2F1dG9BbGxvY2F0ZURlcHRoQnVmZmVyPXZvaWQgMD09PVgsWi5fX2F1dG9BbGxvY2F0ZURlcHRoQnVmZmVyfHxFLnVzZVJlbmRlclRvVGV4dHVyZSYmKGNvbnNvbGUud2FybigicmVuZGVyLXRvLXRleHR1cmUgZXh0ZW5zaW9uIHdhcyBkaXNhYmxlZCBiZWNhdXNlIGFuIGV4dGVybmFsIHRleHR1cmUgd2FzIHByb3ZpZGVkIiksRS51c2VSZW5kZXJUb1RleHR1cmU9ITEsRS51c2VSZW5kZXJidWZmZXI9ITApKX0sdGhpcy5zZXRSZW5kZXJUYXJnZXRGcmFtZWJ1ZmZlcj1mdW5jdGlvbihFLFYpe2xldCBYPWh0LmdldChFKTtYLl9fd2ViZ2xGcmFtZWJ1ZmZlcj1WLFguX191c2VEZWZhdWx0RnJhbWVidWZmZXI9dm9pZCAwPT09Vn0sdGhpcy5zZXRSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24oRSxWPTAsWD0wKXtSPUUseT1WLHg9WDtsZXQgWj0hMDtpZihFKXtsZXQgcnQ9aHQuZ2V0KEUpO3ZvaWQgMCE9PXJ0Ll9fdXNlRGVmYXVsdEZyYW1lYnVmZmVyPyhDZS5iaW5kRnJhbWVidWZmZXIoMzYxNjAsbnVsbCksWj0hMSk6dm9pZCAwPT09cnQuX193ZWJnbEZyYW1lYnVmZmVyP29lLnNldHVwUmVuZGVyVGFyZ2V0KEUpOnJ0Ll9faGFzRXh0ZXJuYWxUZXh0dXJlcyYmb2UucmViaW5kVGV4dHVyZXMoRSxodC5nZXQoRS50ZXh0dXJlKS5fX3dlYmdsVGV4dHVyZSxodC5nZXQoRS5kZXB0aFRleHR1cmUpLl9fd2ViZ2xUZXh0dXJlKX1sZXQgYWU9bnVsbCx6ZT0hMSxldD0hMTtpZihFKXtsZXQgcnQ9RS50ZXh0dXJlOyhydC5pc0RhdGFUZXh0dXJlM0R8fHJ0LmlzRGF0YVRleHR1cmUyREFycmF5KSYmKGV0PSEwKTtsZXQgZHQ9aHQuZ2V0KEUpLl9fd2ViZ2xGcmFtZWJ1ZmZlcjtFLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0PyhhZT1kdFtWXSx6ZT0hMCk6YWU9RS51c2VSZW5kZXJidWZmZXI/aHQuZ2V0KEUpLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcjpkdCxlZS5jb3B5KEUudmlld3BvcnQpLFEuY29weShFLnNjaXNzb3IpLHdlPUUuc2Npc3NvclRlc3R9ZWxzZSBlZS5jb3B5KGhlKS5tdWx0aXBseVNjYWxhcihEKS5mbG9vcigpLFEuY29weShfZSkubXVsdGlwbHlTY2FsYXIoRCkuZmxvb3IoKSx3ZT0kO2lmKENlLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxhZSkmJm9uLmRyYXdCdWZmZXJzJiZaJiZDZS5kcmF3QnVmZmVycyhFLGFlKSxDZS52aWV3cG9ydChlZSksQ2Uuc2Npc3NvcihRKSxDZS5zZXRTY2lzc29yVGVzdCh3ZSksemUpe2xldCBydD1odC5nZXQoRS50ZXh0dXJlKTtrZS5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjA2NCwzNDA2OStWLHJ0Ll9fd2ViZ2xUZXh0dXJlLFgpfWVsc2UgaWYoZXQpe2xldCBydD1odC5nZXQoRS50ZXh0dXJlKTtrZS5mcmFtZWJ1ZmZlclRleHR1cmVMYXllcigzNjE2MCwzNjA2NCxydC5fX3dlYmdsVGV4dHVyZSxYfHwwLFZ8fDApfUk9LTF9LHRoaXMucmVhZFJlbmRlclRhcmdldFBpeGVscz1mdW5jdGlvbihFLFYsWCxaLGFlLHplLGV0KXtpZighRXx8IUUuaXNXZWJHTFJlbmRlclRhcmdldClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyLnJlYWRSZW5kZXJUYXJnZXRQaXhlbHM6IHJlbmRlclRhcmdldCBpcyBub3QgVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQuIik7bGV0IHFlPWh0LmdldChFKS5fX3dlYmdsRnJhbWVidWZmZXI7aWYoRS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldCYmdm9pZCAwIT09ZXQmJihxZT1xZVtldF0pLHFlKXtDZS5iaW5kRnJhbWVidWZmZXIoMzYxNjAscWUpO3RyeXtsZXQgcnQ9RS50ZXh0dXJlLGR0PXJ0LmZvcm1hdCxTdD1ydC50eXBlO2lmKGR0IT09Q2EmJmhuLmNvbnZlcnQoZHQpIT09a2UuZ2V0UGFyYW1ldGVyKDM1NzM5KSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyLnJlYWRSZW5kZXJUYXJnZXRQaXhlbHM6IHJlbmRlclRhcmdldCBpcyBub3QgaW4gUkdCQSBvciBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkIGZvcm1hdC4iKTtsZXQgQXQ9U3Q9PT1xMCYmKHd0LmhhcygiRVhUX2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0Iil8fG9uLmlzV2ViR0wyJiZ3dC5oYXMoIkVYVF9jb2xvcl9idWZmZXJfZmxvYXQiKSk7aWYoIShTdD09PXhwfHxobi5jb252ZXJ0KFN0KT09PWtlLmdldFBhcmFtZXRlcigzNTczOCl8fFN0PT09Z20mJihvbi5pc1dlYkdMMnx8d3QuaGFzKCJPRVNfdGV4dHVyZV9mbG9hdCIpfHx3dC5oYXMoIldFQkdMX2NvbG9yX2J1ZmZlcl9mbG9hdCIpKXx8QXQpKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXIucmVhZFJlbmRlclRhcmdldFBpeGVsczogcmVuZGVyVGFyZ2V0IGlzIG5vdCBpbiBVbnNpZ25lZEJ5dGVUeXBlIG9yIGltcGxlbWVudGF0aW9uIGRlZmluZWQgdHlwZS4iKTszNjA1Mz09PWtlLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoMzYxNjApP1Y+PTAmJlY8PUUud2lkdGgtWiYmWD49MCYmWDw9RS5oZWlnaHQtYWUmJmtlLnJlYWRQaXhlbHMoVixYLFosYWUsaG4uY29udmVydChkdCksaG4uY29udmVydChTdCksemUpOmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXIucmVhZFJlbmRlclRhcmdldFBpeGVsczogcmVhZFBpeGVscyBmcm9tIHJlbmRlclRhcmdldCBmYWlsZWQuIEZyYW1lYnVmZmVyIG5vdCBjb21wbGV0ZS4iKX1maW5hbGx5e2xldCBydD1udWxsIT09Uj9odC5nZXQoUikuX193ZWJnbEZyYW1lYnVmZmVyOm51bGw7Q2UuYmluZEZyYW1lYnVmZmVyKDM2MTYwLHJ0KX19fSx0aGlzLmNvcHlGcmFtZWJ1ZmZlclRvVGV4dHVyZT1mdW5jdGlvbihFLFYsWD0wKXtpZighMCE9PVYuaXNGcmFtZWJ1ZmZlclRleHR1cmUpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlcjogY29weUZyYW1lYnVmZmVyVG9UZXh0dXJlKCkgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIEZyYW1lYnVmZmVyVGV4dHVyZS4iKTtsZXQgWj1NYXRoLnBvdygyLC1YKSxhZT1NYXRoLmZsb29yKFYuaW1hZ2Uud2lkdGgqWiksemU9TWF0aC5mbG9vcihWLmltYWdlLmhlaWdodCpaKTtvZS5zZXRUZXh0dXJlMkQoViwwKSxrZS5jb3B5VGV4U3ViSW1hZ2UyRCgzNTUzLFgsMCwwLEUueCxFLnksYWUsemUpLENlLnVuYmluZFRleHR1cmUoKX0sdGhpcy5jb3B5VGV4dHVyZVRvVGV4dHVyZT1mdW5jdGlvbihFLFYsWCxaPTApe2xldCBhZT1WLmltYWdlLndpZHRoLHplPVYuaW1hZ2UuaGVpZ2h0LGV0PWhuLmNvbnZlcnQoWC5mb3JtYXQpLHFlPWhuLmNvbnZlcnQoWC50eXBlKTtvZS5zZXRUZXh0dXJlMkQoWCwwKSxrZS5waXhlbFN0b3JlaSgzNzQ0MCxYLmZsaXBZKSxrZS5waXhlbFN0b3JlaSgzNzQ0MSxYLnByZW11bHRpcGx5QWxwaGEpLGtlLnBpeGVsU3RvcmVpKDMzMTcsWC51bnBhY2tBbGlnbm1lbnQpLFYuaXNEYXRhVGV4dHVyZT9rZS50ZXhTdWJJbWFnZTJEKDM1NTMsWixFLngsRS55LGFlLHplLGV0LHFlLFYuaW1hZ2UuZGF0YSk6Vi5pc0NvbXByZXNzZWRUZXh0dXJlP2tlLmNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKDM1NTMsWixFLngsRS55LFYubWlwbWFwc1swXS53aWR0aCxWLm1pcG1hcHNbMF0uaGVpZ2h0LGV0LFYubWlwbWFwc1swXS5kYXRhKTprZS50ZXhTdWJJbWFnZTJEKDM1NTMsWixFLngsRS55LGV0LHFlLFYuaW1hZ2UpLDA9PT1aJiZYLmdlbmVyYXRlTWlwbWFwcyYma2UuZ2VuZXJhdGVNaXBtYXAoMzU1MyksQ2UudW5iaW5kVGV4dHVyZSgpfSx0aGlzLmNvcHlUZXh0dXJlVG9UZXh0dXJlM0Q9ZnVuY3Rpb24oRSxWLFgsWixhZT0wKXtpZihfLmlzV2ViR0wxUmVuZGVyZXIpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyLmNvcHlUZXh0dXJlVG9UZXh0dXJlM0Q6IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBXZWJHTDIuIik7bGV0IFN0LHplPUUubWF4LngtRS5taW4ueCsxLGV0PUUubWF4LnktRS5taW4ueSsxLHFlPUUubWF4LnotRS5taW4ueisxLHJ0PWhuLmNvbnZlcnQoWi5mb3JtYXQpLGR0PWhuLmNvbnZlcnQoWi50eXBlKTtpZihaLmlzRGF0YVRleHR1cmUzRClvZS5zZXRUZXh0dXJlM0QoWiwwKSxTdD0zMjg3OTtlbHNle2lmKCFaLmlzRGF0YVRleHR1cmUyREFycmF5KXJldHVybiB2b2lkIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlci5jb3B5VGV4dHVyZVRvVGV4dHVyZTNEOiBvbmx5IHN1cHBvcnRzIFRIUkVFLkRhdGFUZXh0dXJlM0QgYW5kIFRIUkVFLkRhdGFUZXh0dXJlMkRBcnJheS4iKTtvZS5zZXRUZXh0dXJlMkRBcnJheShaLDApLFN0PTM1ODY2fWtlLnBpeGVsU3RvcmVpKDM3NDQwLFouZmxpcFkpLGtlLnBpeGVsU3RvcmVpKDM3NDQxLFoucHJlbXVsdGlwbHlBbHBoYSksa2UucGl4ZWxTdG9yZWkoMzMxNyxaLnVucGFja0FsaWdubWVudCk7bGV0IEF0PWtlLmdldFBhcmFtZXRlcigzMzE0KSxjbj1rZS5nZXRQYXJhbWV0ZXIoMzI4NzgpLHFpPWtlLmdldFBhcmFtZXRlcigzMzE2KSx5aT1rZS5nZXRQYXJhbWV0ZXIoMzMxNSkscG49a2UuZ2V0UGFyYW1ldGVyKDMyODc3KSxSbj1YLmlzQ29tcHJlc3NlZFRleHR1cmU/WC5taXBtYXBzWzBdOlguaW1hZ2U7a2UucGl4ZWxTdG9yZWkoMzMxNCxSbi53aWR0aCksa2UucGl4ZWxTdG9yZWkoMzI4NzgsUm4uaGVpZ2h0KSxrZS5waXhlbFN0b3JlaSgzMzE2LEUubWluLngpLGtlLnBpeGVsU3RvcmVpKDMzMTUsRS5taW4ueSksa2UucGl4ZWxTdG9yZWkoMzI4NzcsRS5taW4ueiksWC5pc0RhdGFUZXh0dXJlfHxYLmlzRGF0YVRleHR1cmUzRD9rZS50ZXhTdWJJbWFnZTNEKFN0LGFlLFYueCxWLnksVi56LHplLGV0LHFlLHJ0LGR0LFJuLmRhdGEpOlguaXNDb21wcmVzc2VkVGV4dHVyZT8oY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyLmNvcHlUZXh0dXJlVG9UZXh0dXJlM0Q6IHVudGVzdGVkIHN1cHBvcnQgZm9yIGNvbXByZXNzZWQgc3JjVGV4dHVyZS4iKSxrZS5jb21wcmVzc2VkVGV4U3ViSW1hZ2UzRChTdCxhZSxWLngsVi55LFYueix6ZSxldCxxZSxydCxSbi5kYXRhKSk6a2UudGV4U3ViSW1hZ2UzRChTdCxhZSxWLngsVi55LFYueix6ZSxldCxxZSxydCxkdCxSbiksa2UucGl4ZWxTdG9yZWkoMzMxNCxBdCksa2UucGl4ZWxTdG9yZWkoMzI4NzgsY24pLGtlLnBpeGVsU3RvcmVpKDMzMTYscWkpLGtlLnBpeGVsU3RvcmVpKDMzMTUseWkpLGtlLnBpeGVsU3RvcmVpKDMyODc3LHBuKSwwPT09YWUmJlouZ2VuZXJhdGVNaXBtYXBzJiZrZS5nZW5lcmF0ZU1pcG1hcChTdCksQ2UudW5iaW5kVGV4dHVyZSgpfSx0aGlzLmluaXRUZXh0dXJlPWZ1bmN0aW9uKEUpe29lLnNldFRleHR1cmUyRChFLDApLENlLnVuYmluZFRleHR1cmUoKX0sdGhpcy5yZXNldFN0YXRlPWZ1bmN0aW9uKCl7eT0wLHg9MCxSPW51bGwsQ2UucmVzZXQoKSxsbi5yZXNldCgpfSx0eXBlb2YgX19USFJFRV9ERVZUT09MU19fPCJ1IiYmX19USFJFRV9ERVZUT09MU19fLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJvYnNlcnZlIix7ZGV0YWlsOnRoaXN9KSl9V2kucHJvdG90eXBlLmlzV2ViR0xSZW5kZXJlcj0hMCxjbGFzcyBleHRlbmRzIFdpe30ucHJvdG90eXBlLmlzV2ViR0wxUmVuZGVyZXI9ITA7dmFyIEF4PWNsYXNze2NvbnN0cnVjdG9yKHQsZT0yNWUtNSl7dGhpcy5uYW1lPSIiLHRoaXMuY29sb3I9bmV3IHNuKHQpLHRoaXMuZGVuc2l0eT1lfWNsb25lKCl7cmV0dXJuIG5ldyBBeCh0aGlzLmNvbG9yLHRoaXMuZGVuc2l0eSl9dG9KU09OKCl7cmV0dXJue3R5cGU6IkZvZ0V4cDIiLGNvbG9yOnRoaXMuY29sb3IuZ2V0SGV4KCksZGVuc2l0eTp0aGlzLmRlbnNpdHl9fX07QXgucHJvdG90eXBlLmlzRm9nRXhwMj0hMDt2YXIgUng9Y2xhc3N7Y29uc3RydWN0b3IodCxlPTEsaT0xZTMpe3RoaXMubmFtZT0iIix0aGlzLmNvbG9yPW5ldyBzbih0KSx0aGlzLm5lYXI9ZSx0aGlzLmZhcj1pfWNsb25lKCl7cmV0dXJuIG5ldyBSeCh0aGlzLmNvbG9yLHRoaXMubmVhcix0aGlzLmZhcil9dG9KU09OKCl7cmV0dXJue3R5cGU6IkZvZyIsY29sb3I6dGhpcy5jb2xvci5nZXRIZXgoKSxuZWFyOnRoaXMubmVhcixmYXI6dGhpcy5mYXJ9fX07UngucHJvdG90eXBlLmlzRm9nPSEwO3ZhciBuXz1jbGFzcyBleHRlbmRzIFVpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNjZW5lIix0aGlzLmJhY2tncm91bmQ9bnVsbCx0aGlzLmVudmlyb25tZW50PW51bGwsdGhpcy5mb2c9bnVsbCx0aGlzLm92ZXJyaWRlTWF0ZXJpYWw9bnVsbCx0aGlzLmF1dG9VcGRhdGU9ITAsdHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXzwidSImJl9fVEhSRUVfREVWVE9PTFNfXy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgib2JzZXJ2ZSIse2RldGFpbDp0aGlzfSkpfWNvcHkodCxlKXtyZXR1cm4gc3VwZXIuY29weSh0LGUpLG51bGwhPT10LmJhY2tncm91bmQmJih0aGlzLmJhY2tncm91bmQ9dC5iYWNrZ3JvdW5kLmNsb25lKCkpLG51bGwhPT10LmVudmlyb25tZW50JiYodGhpcy5lbnZpcm9ubWVudD10LmVudmlyb25tZW50LmNsb25lKCkpLG51bGwhPT10LmZvZyYmKHRoaXMuZm9nPXQuZm9nLmNsb25lKCkpLG51bGwhPT10Lm92ZXJyaWRlTWF0ZXJpYWwmJih0aGlzLm92ZXJyaWRlTWF0ZXJpYWw9dC5vdmVycmlkZU1hdGVyaWFsLmNsb25lKCkpLHRoaXMuYXV0b1VwZGF0ZT10LmF1dG9VcGRhdGUsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPXQubWF0cml4QXV0b1VwZGF0ZSx0aGlzfXRvSlNPTih0KXtsZXQgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIG51bGwhPT10aGlzLmZvZyYmKGUub2JqZWN0LmZvZz10aGlzLmZvZy50b0pTT04oKSksZX19O25fLnByb3RvdHlwZS5pc1NjZW5lPSEwO3ZhciBDbT1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuYXJyYXk9dCx0aGlzLnN0cmlkZT1lLHRoaXMuY291bnQ9dm9pZCAwIT09dD90Lmxlbmd0aC9lOjAsdGhpcy51c2FnZT1DeCx0aGlzLnVwZGF0ZVJhbmdlPXtvZmZzZXQ6MCxjb3VudDotMX0sdGhpcy52ZXJzaW9uPTAsdGhpcy51dWlkPVlsKCl9b25VcGxvYWRDYWxsYmFjaygpe31zZXQgbmVlZHNVcGRhdGUodCl7ITA9PT10JiZ0aGlzLnZlcnNpb24rK31zZXRVc2FnZSh0KXtyZXR1cm4gdGhpcy51c2FnZT10LHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5hcnJheT1uZXcgdC5hcnJheS5jb25zdHJ1Y3Rvcih0LmFycmF5KSx0aGlzLmNvdW50PXQuY291bnQsdGhpcy5zdHJpZGU9dC5zdHJpZGUsdGhpcy51c2FnZT10LnVzYWdlLHRoaXN9Y29weUF0KHQsZSxpKXt0Kj10aGlzLnN0cmlkZSxpKj1lLnN0cmlkZTtmb3IobGV0IHI9MCxvPXRoaXMuc3RyaWRlO3I8bztyKyspdGhpcy5hcnJheVt0K3JdPWUuYXJyYXlbaStyXTtyZXR1cm4gdGhpc31zZXQodCxlPTApe3JldHVybiB0aGlzLmFycmF5LnNldCh0LGUpLHRoaXN9Y2xvbmUodCl7dm9pZCAwPT09dC5hcnJheUJ1ZmZlcnMmJih0LmFycmF5QnVmZmVycz17fSksdm9pZCAwPT09dGhpcy5hcnJheS5idWZmZXIuX3V1aWQmJih0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD1ZbCgpKSx2b2lkIDA9PT10LmFycmF5QnVmZmVyc1t0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZF0mJih0LmFycmF5QnVmZmVyc1t0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZF09dGhpcy5hcnJheS5zbGljZSgwKS5idWZmZXIpO2xldCBlPW5ldyB0aGlzLmFycmF5LmNvbnN0cnVjdG9yKHQuYXJyYXlCdWZmZXJzW3RoaXMuYXJyYXkuYnVmZmVyLl91dWlkXSksaT1uZXcgdGhpcy5jb25zdHJ1Y3RvcihlLHRoaXMuc3RyaWRlKTtyZXR1cm4gaS5zZXRVc2FnZSh0aGlzLnVzYWdlKSxpfW9uVXBsb2FkKHQpe3JldHVybiB0aGlzLm9uVXBsb2FkQ2FsbGJhY2s9dCx0aGlzfXRvSlNPTih0KXtyZXR1cm4gdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnMmJih0LmFycmF5QnVmZmVycz17fSksdm9pZCAwPT09dGhpcy5hcnJheS5idWZmZXIuX3V1aWQmJih0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD1ZbCgpKSx2b2lkIDA9PT10LmFycmF5QnVmZmVyc1t0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZF0mJih0LmFycmF5QnVmZmVyc1t0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZF09QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobmV3IFVpbnQzMkFycmF5KHRoaXMuYXJyYXkuYnVmZmVyKSkpLHt1dWlkOnRoaXMudXVpZCxidWZmZXI6dGhpcy5hcnJheS5idWZmZXIuX3V1aWQsdHlwZTp0aGlzLmFycmF5LmNvbnN0cnVjdG9yLm5hbWUsc3RyaWRlOnRoaXMuc3RyaWRlfX19O0NtLnByb3RvdHlwZS5pc0ludGVybGVhdmVkQnVmZmVyPSEwO3ZhciBRcj1uZXcgSyxNbT1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSxyPSExKXt0aGlzLm5hbWU9IiIsdGhpcy5kYXRhPXQsdGhpcy5pdGVtU2l6ZT1lLHRoaXMub2Zmc2V0PWksdGhpcy5ub3JtYWxpemVkPSEwPT09cn1nZXQgY291bnQoKXtyZXR1cm4gdGhpcy5kYXRhLmNvdW50fWdldCBhcnJheSgpe3JldHVybiB0aGlzLmRhdGEuYXJyYXl9c2V0IG5lZWRzVXBkYXRlKHQpe3RoaXMuZGF0YS5uZWVkc1VwZGF0ZT10fWFwcGx5TWF0cml4NCh0KXtmb3IobGV0IGU9MCxpPXRoaXMuZGF0YS5jb3VudDtlPGk7ZSsrKVFyLng9dGhpcy5nZXRYKGUpLFFyLnk9dGhpcy5nZXRZKGUpLFFyLno9dGhpcy5nZXRaKGUpLFFyLmFwcGx5TWF0cml4NCh0KSx0aGlzLnNldFhZWihlLFFyLngsUXIueSxRci56KTtyZXR1cm4gdGhpc31hcHBseU5vcm1hbE1hdHJpeCh0KXtmb3IobGV0IGU9MCxpPXRoaXMuY291bnQ7ZTxpO2UrKylRci54PXRoaXMuZ2V0WChlKSxRci55PXRoaXMuZ2V0WShlKSxRci56PXRoaXMuZ2V0WihlKSxRci5hcHBseU5vcm1hbE1hdHJpeCh0KSx0aGlzLnNldFhZWihlLFFyLngsUXIueSxRci56KTtyZXR1cm4gdGhpc310cmFuc2Zvcm1EaXJlY3Rpb24odCl7Zm9yKGxldCBlPTAsaT10aGlzLmNvdW50O2U8aTtlKyspUXIueD10aGlzLmdldFgoZSksUXIueT10aGlzLmdldFkoZSksUXIuej10aGlzLmdldFooZSksUXIudHJhbnNmb3JtRGlyZWN0aW9uKHQpLHRoaXMuc2V0WFlaKGUsUXIueCxRci55LFFyLnopO3JldHVybiB0aGlzfXNldFgodCxlKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldF09ZSx0aGlzfXNldFkodCxlKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCsxXT1lLHRoaXN9c2V0Wih0LGUpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzJdPWUsdGhpc31zZXRXKHQsZSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrM109ZSx0aGlzfWdldFgodCl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXRdfWdldFkodCl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrMV19Z2V0Wih0KXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCsyXX1nZXRXKHQpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzNdfXNldFhZKHQsZSxpKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5Wyh0PXQqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCkrMF09ZSx0aGlzLmRhdGEuYXJyYXlbdCsxXT1pLHRoaXN9c2V0WFlaKHQsZSxpLHIpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbKHQ9dCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KSswXT1lLHRoaXMuZGF0YS5hcnJheVt0KzFdPWksdGhpcy5kYXRhLmFycmF5W3QrMl09cix0aGlzfXNldFhZWlcodCxlLGkscixvKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5Wyh0PXQqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCkrMF09ZSx0aGlzLmRhdGEuYXJyYXlbdCsxXT1pLHRoaXMuZGF0YS5hcnJheVt0KzJdPXIsdGhpcy5kYXRhLmFycmF5W3QrM109byx0aGlzfWNsb25lKHQpe2lmKHZvaWQgMD09PXQpe2NvbnNvbGUubG9nKCJUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZS5jbG9uZSgpOiBDbG9uaW5nIGFuIGludGVybGF2ZWQgYnVmZmVyIGF0dHJpYnV0ZSB3aWxsIGRlaW50ZXJsZWF2ZSBidWZmZXIgZGF0YS4iKTtsZXQgZT1bXTtmb3IobGV0IGk9MDtpPHRoaXMuY291bnQ7aSsrKXtsZXQgcj1pKnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQ7Zm9yKGxldCBvPTA7bzx0aGlzLml0ZW1TaXplO28rKyllLnB1c2godGhpcy5kYXRhLmFycmF5W3Irb10pfXJldHVybiBuZXcgQXIobmV3IHRoaXMuYXJyYXkuY29uc3RydWN0b3IoZSksdGhpcy5pdGVtU2l6ZSx0aGlzLm5vcm1hbGl6ZWQpfXJldHVybiB2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVycyYmKHQuaW50ZXJsZWF2ZWRCdWZmZXJzPXt9KSx2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF0mJih0LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF09dGhpcy5kYXRhLmNsb25lKHQpKSxuZXcgTW0odC5pbnRlcmxlYXZlZEJ1ZmZlcnNbdGhpcy5kYXRhLnV1aWRdLHRoaXMuaXRlbVNpemUsdGhpcy5vZmZzZXQsdGhpcy5ub3JtYWxpemVkKX10b0pTT04odCl7aWYodm9pZCAwPT09dCl7Y29uc29sZS5sb2coIlRIUkVFLkludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlLnRvSlNPTigpOiBTZXJpYWxpemluZyBhbiBpbnRlcmxhdmVkIGJ1ZmZlciBhdHRyaWJ1dGUgd2lsbCBkZWludGVybGVhdmUgYnVmZmVyIGRhdGEuIik7bGV0IGU9W107Zm9yKGxldCBpPTA7aTx0aGlzLmNvdW50O2krKyl7bGV0IHI9aSp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0O2ZvcihsZXQgbz0wO288dGhpcy5pdGVtU2l6ZTtvKyspZS5wdXNoKHRoaXMuZGF0YS5hcnJheVtyK29dKX1yZXR1cm57aXRlbVNpemU6dGhpcy5pdGVtU2l6ZSx0eXBlOnRoaXMuYXJyYXkuY29uc3RydWN0b3IubmFtZSxhcnJheTplLG5vcm1hbGl6ZWQ6dGhpcy5ub3JtYWxpemVkfX1yZXR1cm4gdm9pZCAwPT09dC5pbnRlcmxlYXZlZEJ1ZmZlcnMmJih0LmludGVybGVhdmVkQnVmZmVycz17fSksdm9pZCAwPT09dC5pbnRlcmxlYXZlZEJ1ZmZlcnNbdGhpcy5kYXRhLnV1aWRdJiYodC5pbnRlcmxlYXZlZEJ1ZmZlcnNbdGhpcy5kYXRhLnV1aWRdPXRoaXMuZGF0YS50b0pTT04odCkpLHtpc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlOiEwLGl0ZW1TaXplOnRoaXMuaXRlbVNpemUsZGF0YTp0aGlzLmRhdGEudXVpZCxvZmZzZXQ6dGhpcy5vZmZzZXQsbm9ybWFsaXplZDp0aGlzLm5vcm1hbGl6ZWR9fX07TW0ucHJvdG90eXBlLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGU9ITA7dmFyIEZJPWNsYXNzIGV4dGVuZHMgRm97Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNwcml0ZU1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBzbigxNjc3NzIxNSksdGhpcy5tYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5yb3RhdGlvbj0wLHRoaXMuc2l6ZUF0dGVudWF0aW9uPSEwLHRoaXMudHJhbnNwYXJlbnQ9ITAsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXA9dC5tYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMucm90YXRpb249dC5yb3RhdGlvbix0aGlzLnNpemVBdHRlbnVhdGlvbj10LnNpemVBdHRlbnVhdGlvbix0aGlzfX07RkkucHJvdG90eXBlLmlzU3ByaXRlTWF0ZXJpYWw9ITA7dmFyIEIwLGN4PW5ldyBLLFYwPW5ldyBLLEgwPW5ldyBLLHowPW5ldyAkZSxkeD1uZXcgJGUsU3RlPW5ldyB2bixsST1uZXcgSyx1eD1uZXcgSyxjST1uZXcgSyxOZWU9bmV3ICRlLEgzPW5ldyAkZSxMZWU9bmV3ICRlO2Z1bmN0aW9uIGRJKG4sdCxlLGkscixvKXt6MC5zdWJWZWN0b3JzKG4sZSkuYWRkU2NhbGFyKC41KS5tdWx0aXBseShpKSx2b2lkIDAhPT1yPyhkeC54PW8qejAueC1yKnowLnksZHgueT1yKnowLngrbyp6MC55KTpkeC5jb3B5KHowKSxuLmNvcHkodCksbi54Kz1keC54LG4ueSs9ZHgueSxuLmFwcGx5TWF0cml4NChTdGUpfShjbGFzcyBleHRlbmRzIFVpe2NvbnN0cnVjdG9yKHQpe2lmKHN1cGVyKCksdGhpcy50eXBlPSJTcHJpdGUiLHZvaWQgMD09PUIwKXtCMD1uZXcgR2k7bGV0IGU9bmV3IEZsb2F0MzJBcnJheShbLS41LC0uNSwwLDAsMCwuNSwtLjUsMCwxLDAsLjUsLjUsMCwxLDEsLS41LC41LDAsMCwxXSksaT1uZXcgQ20oZSw1KTtCMC5zZXRJbmRleChbMCwxLDIsMCwyLDNdKSxCMC5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgTW0oaSwzLDAsITEpKSxCMC5zZXRBdHRyaWJ1dGUoInV2IixuZXcgTW0oaSwyLDMsITEpKX10aGlzLmdlb21ldHJ5PUIwLHRoaXMubWF0ZXJpYWw9dm9pZCAwIT09dD90Om5ldyBGSSx0aGlzLmNlbnRlcj1uZXcgJGUoLjUsLjUpfXJheWNhc3QodCxlKXtudWxsPT09dC5jYW1lcmEmJmNvbnNvbGUuZXJyb3IoJ1RIUkVFLlNwcml0ZTogIlJheWNhc3Rlci5jYW1lcmEiIG5lZWRzIHRvIGJlIHNldCBpbiBvcmRlciB0byByYXljYXN0IGFnYWluc3Qgc3ByaXRlcy4nKSxWMC5zZXRGcm9tTWF0cml4U2NhbGUodGhpcy5tYXRyaXhXb3JsZCksU3RlLmNvcHkodC5jYW1lcmEubWF0cml4V29ybGQpLHRoaXMubW9kZWxWaWV3TWF0cml4Lm11bHRpcGx5TWF0cmljZXModC5jYW1lcmEubWF0cml4V29ybGRJbnZlcnNlLHRoaXMubWF0cml4V29ybGQpLEgwLnNldEZyb21NYXRyaXhQb3NpdGlvbih0aGlzLm1vZGVsVmlld01hdHJpeCksdC5jYW1lcmEuaXNQZXJzcGVjdGl2ZUNhbWVyYSYmITE9PT10aGlzLm1hdGVyaWFsLnNpemVBdHRlbnVhdGlvbiYmVjAubXVsdGlwbHlTY2FsYXIoLUgwLnopO2xldCByLG8saT10aGlzLm1hdGVyaWFsLnJvdGF0aW9uOzAhPT1pJiYobz1NYXRoLmNvcyhpKSxyPU1hdGguc2luKGkpKTtsZXQgYT10aGlzLmNlbnRlcjtkSShsSS5zZXQoLS41LC0uNSwwKSxIMCxhLFYwLHIsbyksZEkodXguc2V0KC41LC0uNSwwKSxIMCxhLFYwLHIsbyksZEkoY0kuc2V0KC41LC41LDApLEgwLGEsVjAscixvKSxOZWUuc2V0KDAsMCksSDMuc2V0KDEsMCksTGVlLnNldCgxLDEpO2xldCBzPXQucmF5LmludGVyc2VjdFRyaWFuZ2xlKGxJLHV4LGNJLCExLGN4KTtpZihudWxsPT09cyYmKGRJKHV4LnNldCgtLjUsLjUsMCksSDAsYSxWMCxyLG8pLEgzLnNldCgwLDEpLHM9dC5yYXkuaW50ZXJzZWN0VHJpYW5nbGUobEksY0ksdXgsITEsY3gpLG51bGw9PT1zKSlyZXR1cm47bGV0IGw9dC5yYXkub3JpZ2luLmRpc3RhbmNlVG8oY3gpO2w8dC5uZWFyfHxsPnQuZmFyfHxlLnB1c2goe2Rpc3RhbmNlOmwscG9pbnQ6Y3guY2xvbmUoKSx1djpWci5nZXRVVihjeCxsSSx1eCxjSSxOZWUsSDMsTGVlLG5ldyAkZSksZmFjZTpudWxsLG9iamVjdDp0aGlzfSl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx2b2lkIDAhPT10LmNlbnRlciYmdGhpcy5jZW50ZXIuY29weSh0LmNlbnRlciksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXN9fSkucHJvdG90eXBlLmlzU3ByaXRlPSEwO3ZhciBCZWU9bmV3IEssVmVlPW5ldyBRaSxIZWU9bmV3IFFpLEEyZT1uZXcgSyx6ZWU9bmV3IHZuLE5JPWNsYXNzIGV4dGVuZHMgc297Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iU2tpbm5lZE1lc2giLHRoaXMuYmluZE1vZGU9ImF0dGFjaGVkIix0aGlzLmJpbmRNYXRyaXg9bmV3IHZuLHRoaXMuYmluZE1hdHJpeEludmVyc2U9bmV3IHZufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5iaW5kTW9kZT10LmJpbmRNb2RlLHRoaXMuYmluZE1hdHJpeC5jb3B5KHQuYmluZE1hdHJpeCksdGhpcy5iaW5kTWF0cml4SW52ZXJzZS5jb3B5KHQuYmluZE1hdHJpeEludmVyc2UpLHRoaXMuc2tlbGV0b249dC5za2VsZXRvbix0aGlzfWJpbmQodCxlKXt0aGlzLnNrZWxldG9uPXQsdm9pZCAwPT09ZSYmKHRoaXMudXBkYXRlTWF0cml4V29ybGQoITApLHRoaXMuc2tlbGV0b24uY2FsY3VsYXRlSW52ZXJzZXMoKSxlPXRoaXMubWF0cml4V29ybGQpLHRoaXMuYmluZE1hdHJpeC5jb3B5KGUpLHRoaXMuYmluZE1hdHJpeEludmVyc2UuY29weShlKS5pbnZlcnQoKX1wb3NlKCl7dGhpcy5za2VsZXRvbi5wb3NlKCl9bm9ybWFsaXplU2tpbldlaWdodHMoKXtsZXQgdD1uZXcgUWksZT10aGlzLmdlb21ldHJ5LmF0dHJpYnV0ZXMuc2tpbldlaWdodDtmb3IobGV0IGk9MCxyPWUuY291bnQ7aTxyO2krKyl7dC54PWUuZ2V0WChpKSx0Lnk9ZS5nZXRZKGkpLHQuej1lLmdldFooaSksdC53PWUuZ2V0VyhpKTtsZXQgbz0xL3QubWFuaGF0dGFuTGVuZ3RoKCk7byE9PTEvMD90Lm11bHRpcGx5U2NhbGFyKG8pOnQuc2V0KDEsMCwwLDApLGUuc2V0WFlaVyhpLHQueCx0LnksdC56LHQudyl9fXVwZGF0ZU1hdHJpeFdvcmxkKHQpe3N1cGVyLnVwZGF0ZU1hdHJpeFdvcmxkKHQpLCJhdHRhY2hlZCI9PT10aGlzLmJpbmRNb2RlP3RoaXMuYmluZE1hdHJpeEludmVyc2UuY29weSh0aGlzLm1hdHJpeFdvcmxkKS5pbnZlcnQoKToiZGV0YWNoZWQiPT09dGhpcy5iaW5kTW9kZT90aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkodGhpcy5iaW5kTWF0cml4KS5pbnZlcnQoKTpjb25zb2xlLndhcm4oIlRIUkVFLlNraW5uZWRNZXNoOiBVbnJlY29nbml6ZWQgYmluZE1vZGU6ICIrdGhpcy5iaW5kTW9kZSl9Ym9uZVRyYW5zZm9ybSh0LGUpe2xldCBpPXRoaXMuc2tlbGV0b24scj10aGlzLmdlb21ldHJ5O1ZlZS5mcm9tQnVmZmVyQXR0cmlidXRlKHIuYXR0cmlidXRlcy5za2luSW5kZXgsdCksSGVlLmZyb21CdWZmZXJBdHRyaWJ1dGUoci5hdHRyaWJ1dGVzLnNraW5XZWlnaHQsdCksQmVlLmNvcHkoZSkuYXBwbHlNYXRyaXg0KHRoaXMuYmluZE1hdHJpeCksZS5zZXQoMCwwLDApO2ZvcihsZXQgbz0wO288NDtvKyspe2xldCBhPUhlZS5nZXRDb21wb25lbnQobyk7aWYoMCE9PWEpe2xldCBzPVZlZS5nZXRDb21wb25lbnQobyk7emVlLm11bHRpcGx5TWF0cmljZXMoaS5ib25lc1tzXS5tYXRyaXhXb3JsZCxpLmJvbmVJbnZlcnNlc1tzXSksZS5hZGRTY2FsZWRWZWN0b3IoQTJlLmNvcHkoQmVlKS5hcHBseU1hdHJpeDQoemVlKSxhKX19cmV0dXJuIGUuYXBwbHlNYXRyaXg0KHRoaXMuYmluZE1hdHJpeEludmVyc2UpfX07TkkucHJvdG90eXBlLmlzU2tpbm5lZE1lc2g9ITAsY2xhc3MgZXh0ZW5kcyBVaXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJCb25lIn19LnByb3RvdHlwZS5pc0JvbmU9ITAsY2xhc3MgZXh0ZW5kcyBsb3tjb25zdHJ1Y3Rvcih0PW51bGwsZT0xLGk9MSxyLG8sYSxzLGwsYz12byxkPXZvLHUscCl7c3VwZXIobnVsbCxhLHMsbCxjLGQscixvLHUscCksdGhpcy5pbWFnZT17ZGF0YTp0LHdpZHRoOmUsaGVpZ2h0Oml9LHRoaXMubWFnRmlsdGVyPWMsdGhpcy5taW5GaWx0ZXI9ZCx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMSx0aGlzLmZsaXBZPSExLHRoaXMudW5wYWNrQWxpZ25tZW50PTF9fS5wcm90b3R5cGUuaXNEYXRhVGV4dHVyZT0hMDt2YXIgUHg9Y2xhc3MgZXh0ZW5kcyBBcntjb25zdHJ1Y3Rvcih0LGUsaSxyPTEpeyJudW1iZXIiPT10eXBlb2YgaSYmKHI9aSxpPSExLGNvbnNvbGUuZXJyb3IoIlRIUkVFLkluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZTogVGhlIGNvbnN0cnVjdG9yIG5vdyBleHBlY3RzIG5vcm1hbGl6ZWQgYXMgdGhlIHRoaXJkIGFyZ3VtZW50LiIpKSxzdXBlcih0LGUsaSksdGhpcy5tZXNoUGVyQXR0cmlidXRlPXJ9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLm1lc2hQZXJBdHRyaWJ1dGU9dC5tZXNoUGVyQXR0cmlidXRlLHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQubWVzaFBlckF0dHJpYnV0ZT10aGlzLm1lc2hQZXJBdHRyaWJ1dGUsdC5pc0luc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZT0hMCx0fX07UHgucHJvdG90eXBlLmlzSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlPSEwO3ZhciBVZWU9bmV3IHZuLGplZT1uZXcgdm4sdUk9W10scHg9bmV3IHNvOyhjbGFzcyBleHRlbmRzIHNve2NvbnN0cnVjdG9yKHQsZSxpKXtzdXBlcih0LGUpLHRoaXMuaW5zdGFuY2VNYXRyaXg9bmV3IFB4KG5ldyBGbG9hdDMyQXJyYXkoMTYqaSksMTYpLHRoaXMuaW5zdGFuY2VDb2xvcj1udWxsLHRoaXMuY291bnQ9aSx0aGlzLmZydXN0dW1DdWxsZWQ9ITF9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmluc3RhbmNlTWF0cml4LmNvcHkodC5pbnN0YW5jZU1hdHJpeCksbnVsbCE9PXQuaW5zdGFuY2VDb2xvciYmKHRoaXMuaW5zdGFuY2VDb2xvcj10Lmluc3RhbmNlQ29sb3IuY2xvbmUoKSksdGhpcy5jb3VudD10LmNvdW50LHRoaXN9Z2V0Q29sb3JBdCh0LGUpe2UuZnJvbUFycmF5KHRoaXMuaW5zdGFuY2VDb2xvci5hcnJheSwzKnQpfWdldE1hdHJpeEF0KHQsZSl7ZS5mcm9tQXJyYXkodGhpcy5pbnN0YW5jZU1hdHJpeC5hcnJheSwxNip0KX1yYXljYXN0KHQsZSl7bGV0IGk9dGhpcy5tYXRyaXhXb3JsZCxyPXRoaXMuY291bnQ7aWYocHguZ2VvbWV0cnk9dGhpcy5nZW9tZXRyeSxweC5tYXRlcmlhbD10aGlzLm1hdGVyaWFsLHZvaWQgMCE9PXB4Lm1hdGVyaWFsKWZvcihsZXQgbz0wO288cjtvKyspe3RoaXMuZ2V0TWF0cml4QXQobyxVZWUpLGplZS5tdWx0aXBseU1hdHJpY2VzKGksVWVlKSxweC5tYXRyaXhXb3JsZD1qZWUscHgucmF5Y2FzdCh0LHVJKTtmb3IobGV0IGE9MCxzPXVJLmxlbmd0aDthPHM7YSsrKXtsZXQgbD11SVthXTtsLmluc3RhbmNlSWQ9byxsLm9iamVjdD10aGlzLGUucHVzaChsKX11SS5sZW5ndGg9MH19c2V0Q29sb3JBdCh0LGUpe251bGw9PT10aGlzLmluc3RhbmNlQ29sb3ImJih0aGlzLmluc3RhbmNlQ29sb3I9bmV3IFB4KG5ldyBGbG9hdDMyQXJyYXkoMyp0aGlzLmluc3RhbmNlTWF0cml4LmNvdW50KSwzKSksZS50b0FycmF5KHRoaXMuaW5zdGFuY2VDb2xvci5hcnJheSwzKnQpfXNldE1hdHJpeEF0KHQsZSl7ZS50b0FycmF5KHRoaXMuaW5zdGFuY2VNYXRyaXguYXJyYXksMTYqdCl9dXBkYXRlTW9ycGhUYXJnZXRzKCl7fWRpc3Bvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc3Bvc2UifSl9fSkucHJvdG90eXBlLmlzSW5zdGFuY2VkTWVzaD0hMDt2YXIgR2Q9Y2xhc3MgZXh0ZW5kcyBGb3tjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTGluZUJhc2ljTWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IHNuKDE2Nzc3MjE1KSx0aGlzLmxpbmV3aWR0aD0xLHRoaXMubGluZWNhcD0icm91bmQiLHRoaXMubGluZWpvaW49InJvdW5kIix0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLmxpbmV3aWR0aD10LmxpbmV3aWR0aCx0aGlzLmxpbmVjYXA9dC5saW5lY2FwLHRoaXMubGluZWpvaW49dC5saW5lam9pbix0aGlzfX07R2QucHJvdG90eXBlLmlzTGluZUJhc2ljTWF0ZXJpYWw9ITA7dmFyIEdlZT1uZXcgSyxXZWU9bmV3IEsscWVlPW5ldyB2bix6Mz1uZXcgRXAscEk9bmV3IFNwLGt4PWNsYXNzIGV4dGVuZHMgVWl7Y29uc3RydWN0b3IodD1uZXcgR2ksZT1uZXcgR2Qpe3N1cGVyKCksdGhpcy50eXBlPSJMaW5lIix0aGlzLmdlb21ldHJ5PXQsdGhpcy5tYXRlcmlhbD1lLHRoaXMudXBkYXRlTW9ycGhUYXJnZXRzKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLm1hdGVyaWFsPXQubWF0ZXJpYWwsdGhpcy5nZW9tZXRyeT10Lmdlb21ldHJ5LHRoaXN9Y29tcHV0ZUxpbmVEaXN0YW5jZXMoKXtsZXQgdD10aGlzLmdlb21ldHJ5O2lmKHQuaXNCdWZmZXJHZW9tZXRyeSlpZihudWxsPT09dC5pbmRleCl7bGV0IGU9dC5hdHRyaWJ1dGVzLnBvc2l0aW9uLGk9WzBdO2ZvcihsZXQgcj0xLG89ZS5jb3VudDtyPG87cisrKUdlZS5mcm9tQnVmZmVyQXR0cmlidXRlKGUsci0xKSxXZWUuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHIpLGlbcl09aVtyLTFdLGlbcl0rPUdlZS5kaXN0YW5jZVRvKFdlZSk7dC5zZXRBdHRyaWJ1dGUoImxpbmVEaXN0YW5jZSIsbmV3IE5yKGksMSkpfWVsc2UgY29uc29sZS53YXJuKCJUSFJFRS5MaW5lLmNvbXB1dGVMaW5lRGlzdGFuY2VzKCk6IENvbXB1dGF0aW9uIG9ubHkgcG9zc2libGUgd2l0aCBub24taW5kZXhlZCBCdWZmZXJHZW9tZXRyeS4iKTtlbHNlIHQuaXNHZW9tZXRyeSYmY29uc29sZS5lcnJvcigiVEhSRUUuTGluZS5jb21wdXRlTGluZURpc3RhbmNlcygpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIik7cmV0dXJuIHRoaXN9cmF5Y2FzdCh0LGUpe2xldCBpPXRoaXMuZ2VvbWV0cnkscj10aGlzLm1hdHJpeFdvcmxkLG89dC5wYXJhbXMuTGluZS50aHJlc2hvbGQsYT1pLmRyYXdSYW5nZTtpZihudWxsPT09aS5ib3VuZGluZ1NwaGVyZSYmaS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxwSS5jb3B5KGkuYm91bmRpbmdTcGhlcmUpLHBJLmFwcGx5TWF0cml4NChyKSxwSS5yYWRpdXMrPW8sITE9PT10LnJheS5pbnRlcnNlY3RzU3BoZXJlKHBJKSlyZXR1cm47cWVlLmNvcHkocikuaW52ZXJ0KCksejMuY29weSh0LnJheSkuYXBwbHlNYXRyaXg0KHFlZSk7bGV0IHM9by8oKHRoaXMuc2NhbGUueCt0aGlzLnNjYWxlLnkrdGhpcy5zY2FsZS56KS8zKSxsPXMqcyxjPW5ldyBLLGQ9bmV3IEssdT1uZXcgSyxwPW5ldyBLLGg9dGhpcy5pc0xpbmVTZWdtZW50cz8yOjE7aWYoaS5pc0J1ZmZlckdlb21ldHJ5KXtsZXQgbT1pLmluZGV4LE09aS5hdHRyaWJ1dGVzLnBvc2l0aW9uO2lmKG51bGwhPT1tKWZvcihsZXQgUj1NYXRoLm1heCgwLGEuc3RhcnQpLEk9TWF0aC5taW4obS5jb3VudCxhLnN0YXJ0K2EuY291bnQpLTE7UjxJO1IrPWgpe2xldCBCPW0uZ2V0WChSKSxlZT1tLmdldFgoUisxKTtpZihjLmZyb21CdWZmZXJBdHRyaWJ1dGUoTSxCKSxkLmZyb21CdWZmZXJBdHRyaWJ1dGUoTSxlZSksejMuZGlzdGFuY2VTcVRvU2VnbWVudChjLGQscCx1KT5sKWNvbnRpbnVlO3AuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpO2xldCB3ZT10LnJheS5vcmlnaW4uZGlzdGFuY2VUbyhwKTt3ZTx0Lm5lYXJ8fHdlPnQuZmFyfHxlLnB1c2goe2Rpc3RhbmNlOndlLHBvaW50OnUuY2xvbmUoKS5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCksaW5kZXg6UixmYWNlOm51bGwsZmFjZUluZGV4Om51bGwsb2JqZWN0OnRoaXN9KX1lbHNlIGZvcihsZXQgUj1NYXRoLm1heCgwLGEuc3RhcnQpLEk9TWF0aC5taW4oTS5jb3VudCxhLnN0YXJ0K2EuY291bnQpLTE7UjxJO1IrPWgpe2lmKGMuZnJvbUJ1ZmZlckF0dHJpYnV0ZShNLFIpLGQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShNLFIrMSksejMuZGlzdGFuY2VTcVRvU2VnbWVudChjLGQscCx1KT5sKWNvbnRpbnVlO3AuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpO2xldCBlZT10LnJheS5vcmlnaW4uZGlzdGFuY2VUbyhwKTtlZTx0Lm5lYXJ8fGVlPnQuZmFyfHxlLnB1c2goe2Rpc3RhbmNlOmVlLHBvaW50OnUuY2xvbmUoKS5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCksaW5kZXg6UixmYWNlOm51bGwsZmFjZUluZGV4Om51bGwsb2JqZWN0OnRoaXN9KX19ZWxzZSBpLmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkxpbmUucmF5Y2FzdCgpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9dXBkYXRlTW9ycGhUYXJnZXRzKCl7bGV0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpe2xldCBlPXQubW9ycGhBdHRyaWJ1dGVzLGk9T2JqZWN0LmtleXMoZSk7aWYoaS5sZW5ndGg+MCl7bGV0IHI9ZVtpWzBdXTtpZih2b2lkIDAhPT1yKXt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcz1bXSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeT17fTtmb3IobGV0IG89MCxhPXIubGVuZ3RoO288YTtvKyspe2xldCBzPXJbb10ubmFtZXx8U3RyaW5nKG8pO3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzLnB1c2goMCksdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnlbc109b319fX1lbHNle2xldCBlPXQubW9ycGhUYXJnZXRzO3ZvaWQgMCE9PWUmJmUubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkxpbmUudXBkYXRlTW9ycGhUYXJnZXRzKCkgZG9lcyBub3Qgc3VwcG9ydCBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9fX07a3gucHJvdG90eXBlLmlzTGluZT0hMDt2YXIgWGVlPW5ldyBLLFllZT1uZXcgSyxPeD1jbGFzcyBleHRlbmRzIGt4e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IkxpbmVTZWdtZW50cyJ9Y29tcHV0ZUxpbmVEaXN0YW5jZXMoKXtsZXQgdD10aGlzLmdlb21ldHJ5O2lmKHQuaXNCdWZmZXJHZW9tZXRyeSlpZihudWxsPT09dC5pbmRleCl7bGV0IGU9dC5hdHRyaWJ1dGVzLnBvc2l0aW9uLGk9W107Zm9yKGxldCByPTAsbz1lLmNvdW50O3I8bztyKz0yKVhlZS5mcm9tQnVmZmVyQXR0cmlidXRlKGUsciksWWVlLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSxyKzEpLGlbcl09MD09PXI/MDppW3ItMV0saVtyKzFdPWlbcl0rWGVlLmRpc3RhbmNlVG8oWWVlKTt0LnNldEF0dHJpYnV0ZSgibGluZURpc3RhbmNlIixuZXcgTnIoaSwxKSl9ZWxzZSBjb25zb2xlLndhcm4oIlRIUkVFLkxpbmVTZWdtZW50cy5jb21wdXRlTGluZURpc3RhbmNlcygpOiBDb21wdXRhdGlvbiBvbmx5IHBvc3NpYmxlIHdpdGggbm9uLWluZGV4ZWQgQnVmZmVyR2VvbWV0cnkuIik7ZWxzZSB0LmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkxpbmVTZWdtZW50cy5jb21wdXRlTGluZURpc3RhbmNlcygpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIik7cmV0dXJuIHRoaXN9fTtPeC5wcm90b3R5cGUuaXNMaW5lU2VnbWVudHM9ITAsY2xhc3MgZXh0ZW5kcyBreHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy50eXBlPSJMaW5lTG9vcCJ9fS5wcm90b3R5cGUuaXNMaW5lTG9vcD0hMDt2YXIgTEk9Y2xhc3MgZXh0ZW5kcyBGb3tjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iUG9pbnRzTWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IHNuKDE2Nzc3MjE1KSx0aGlzLm1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLnNpemU9MSx0aGlzLnNpemVBdHRlbnVhdGlvbj0hMCx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLm1hcD10Lm1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5zaXplPXQuc2l6ZSx0aGlzLnNpemVBdHRlbnVhdGlvbj10LnNpemVBdHRlbnVhdGlvbix0aGlzfX07TEkucHJvdG90eXBlLmlzUG9pbnRzTWF0ZXJpYWw9ITA7dmFyIFFlZT1uZXcgdm4scEI9bmV3IEVwLGhJPW5ldyBTcCxtST1uZXcgSztmdW5jdGlvbiBaZWUobix0LGUsaSxyLG8sYSl7bGV0IHM9cEIuZGlzdGFuY2VTcVRvUG9pbnQobik7aWYoczxlKXtsZXQgbD1uZXcgSztwQi5jbG9zZXN0UG9pbnRUb1BvaW50KG4sbCksbC5hcHBseU1hdHJpeDQoaSk7bGV0IGM9ci5yYXkub3JpZ2luLmRpc3RhbmNlVG8obCk7aWYoYzxyLm5lYXJ8fGM+ci5mYXIpcmV0dXJuO28ucHVzaCh7ZGlzdGFuY2U6YyxkaXN0YW5jZVRvUmF5Ok1hdGguc3FydChzKSxwb2ludDpsLGluZGV4OnQsZmFjZTpudWxsLG9iamVjdDphfSl9fShjbGFzcyBleHRlbmRzIFVpe2NvbnN0cnVjdG9yKHQ9bmV3IEdpLGU9bmV3IExJKXtzdXBlcigpLHRoaXMudHlwZT0iUG9pbnRzIix0aGlzLmdlb21ldHJ5PXQsdGhpcy5tYXRlcmlhbD1lLHRoaXMudXBkYXRlTW9ycGhUYXJnZXRzKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLm1hdGVyaWFsPXQubWF0ZXJpYWwsdGhpcy5nZW9tZXRyeT10Lmdlb21ldHJ5LHRoaXN9cmF5Y2FzdCh0LGUpe2xldCBpPXRoaXMuZ2VvbWV0cnkscj10aGlzLm1hdHJpeFdvcmxkLG89dC5wYXJhbXMuUG9pbnRzLnRocmVzaG9sZCxhPWkuZHJhd1JhbmdlO2lmKG51bGw9PT1pLmJvdW5kaW5nU3BoZXJlJiZpLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLGhJLmNvcHkoaS5ib3VuZGluZ1NwaGVyZSksaEkuYXBwbHlNYXRyaXg0KHIpLGhJLnJhZGl1cys9bywhMT09PXQucmF5LmludGVyc2VjdHNTcGhlcmUoaEkpKXJldHVybjtRZWUuY29weShyKS5pbnZlcnQoKSxwQi5jb3B5KHQucmF5KS5hcHBseU1hdHJpeDQoUWVlKTtsZXQgcz1vLygodGhpcy5zY2FsZS54K3RoaXMuc2NhbGUueSt0aGlzLnNjYWxlLnopLzMpLGw9cypzO2lmKGkuaXNCdWZmZXJHZW9tZXRyeSl7bGV0IGM9aS5pbmRleCx1PWkuYXR0cmlidXRlcy5wb3NpdGlvbjtpZihudWxsIT09Yylmb3IobGV0IG09TWF0aC5tYXgoMCxhLnN0YXJ0KSxfPU1hdGgubWluKGMuY291bnQsYS5zdGFydCthLmNvdW50KTttPF87bSsrKXtsZXQgTT1jLmdldFgobSk7bUkuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh1LE0pLFplZShtSSxNLGwscix0LGUsdGhpcyl9ZWxzZSBmb3IobGV0IG09TWF0aC5tYXgoMCxhLnN0YXJ0KSxfPU1hdGgubWluKHUuY291bnQsYS5zdGFydCthLmNvdW50KTttPF87bSsrKW1JLmZyb21CdWZmZXJBdHRyaWJ1dGUodSxtKSxaZWUobUksbSxsLHIsdCxlLHRoaXMpfWVsc2UgY29uc29sZS5lcnJvcigiVEhSRUUuUG9pbnRzLnJheWNhc3QoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfXVwZGF0ZU1vcnBoVGFyZ2V0cygpe2xldCB0PXRoaXMuZ2VvbWV0cnk7aWYodC5pc0J1ZmZlckdlb21ldHJ5KXtsZXQgZT10Lm1vcnBoQXR0cmlidXRlcyxpPU9iamVjdC5rZXlzKGUpO2lmKGkubGVuZ3RoPjApe2xldCByPWVbaVswXV07aWYodm9pZCAwIT09cil7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXM9W10sdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnk9e307Zm9yKGxldCBvPTAsYT1yLmxlbmd0aDtvPGE7bysrKXtsZXQgcz1yW29dLm5hbWV8fFN0cmluZyhvKTt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcy5wdXNoKDApLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5W3NdPW99fX19ZWxzZXtsZXQgZT10Lm1vcnBoVGFyZ2V0czt2b2lkIDAhPT1lJiZlLmxlbmd0aD4wJiZjb25zb2xlLmVycm9yKCJUSFJFRS5Qb2ludHMudXBkYXRlTW9ycGhUYXJnZXRzKCkgZG9lcyBub3Qgc3VwcG9ydCBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9fX0pLnByb3RvdHlwZS5pc1BvaW50cz0hMCxjbGFzcyBleHRlbmRzIGxve2NvbnN0cnVjdG9yKHQsZSxpLHIsbyxhLHMsbCxjKXtzdXBlcih0LGUsaSxyLG8sYSxzLGwsYyksdGhpcy5taW5GaWx0ZXI9dm9pZCAwIT09YT9hOmlhLHRoaXMubWFnRmlsdGVyPXZvaWQgMCE9PW8/bzppYSx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMTtsZXQgZD10aGlzOyJyZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrImluIHQmJnQucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhmdW5jdGlvbiB1KCl7ZC5uZWVkc1VwZGF0ZT0hMCx0LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodSl9KX1jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLmltYWdlKS5jb3B5KHRoaXMpfXVwZGF0ZSgpe2xldCB0PXRoaXMuaW1hZ2U7InJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2siaW4gdD09MCYmdC5yZWFkeVN0YXRlPj10LkhBVkVfQ1VSUkVOVF9EQVRBJiYodGhpcy5uZWVkc1VwZGF0ZT0hMCl9fS5wcm90b3R5cGUuaXNWaWRlb1RleHR1cmU9ITAsY2xhc3MgZXh0ZW5kcyBsb3tjb25zdHJ1Y3Rvcih0LGUsaSl7c3VwZXIoe3dpZHRoOnQsaGVpZ2h0OmV9KSx0aGlzLmZvcm1hdD1pLHRoaXMubWFnRmlsdGVyPXZvLHRoaXMubWluRmlsdGVyPXZvLHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSExLHRoaXMubmVlZHNVcGRhdGU9ITB9fS5wcm90b3R5cGUuaXNGcmFtZWJ1ZmZlclRleHR1cmU9ITAsY2xhc3MgZXh0ZW5kcyBsb3tjb25zdHJ1Y3Rvcih0LGUsaSxyLG8sYSxzLGwsYyxkLHUscCl7c3VwZXIobnVsbCxhLHMsbCxjLGQscixvLHUscCksdGhpcy5pbWFnZT17d2lkdGg6ZSxoZWlnaHQ6aX0sdGhpcy5taXBtYXBzPXQsdGhpcy5mbGlwWT0hMSx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMX19LnByb3RvdHlwZS5pc0NvbXByZXNzZWRUZXh0dXJlPSEwLGNsYXNzIGV4dGVuZHMgbG97Y29uc3RydWN0b3IodCxlLGkscixvLGEscyxsLGMpe3N1cGVyKHQsZSxpLHIsbyxhLHMsbCxjKSx0aGlzLm5lZWRzVXBkYXRlPSEwfX0ucHJvdG90eXBlLmlzQ2FudmFzVGV4dHVyZT0hMDt2YXIgaV89Y2xhc3MgZXh0ZW5kcyBHaXtjb25zdHJ1Y3Rvcih0PTEsZT04LGk9MCxyPTIqTWF0aC5QSSl7c3VwZXIoKSx0aGlzLnR5cGU9IkNpcmNsZUdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LHNlZ21lbnRzOmUsdGhldGFTdGFydDppLHRoZXRhTGVuZ3RoOnJ9LGU9TWF0aC5tYXgoMyxlKTtsZXQgbz1bXSxhPVtdLHM9W10sbD1bXSxjPW5ldyBLLGQ9bmV3ICRlO2EucHVzaCgwLDAsMCkscy5wdXNoKDAsMCwxKSxsLnB1c2goLjUsLjUpO2ZvcihsZXQgdT0wLHA9Mzt1PD1lO3UrKyxwKz0zKXtsZXQgaD1pK3UvZSpyO2MueD10Kk1hdGguY29zKGgpLGMueT10Kk1hdGguc2luKGgpLGEucHVzaChjLngsYy55LGMueikscy5wdXNoKDAsMCwxKSxkLng9KGFbcF0vdCsxKS8yLGQueT0oYVtwKzFdL3QrMSkvMixsLnB1c2goZC54LGQueSl9Zm9yKGxldCB1PTE7dTw9ZTt1Kyspby5wdXNoKHUsdSsxLDApO3RoaXMuc2V0SW5kZXgobyksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgTnIoYSwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IE5yKHMsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IE5yKGwsMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IGlfKHQucmFkaXVzLHQuc2VnbWVudHMsdC50aGV0YVN0YXJ0LHQudGhldGFMZW5ndGgpfX0sbnM9KG5ldyBLLG5ldyBLLG5ldyBLLG5ldyBWcixjbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMudHlwZT0iQ3VydmUiLHRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zPTIwMH1nZXRQb2ludCgpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkN1cnZlOiAuZ2V0UG9pbnQoKSBub3QgaW1wbGVtZW50ZWQuIiksbnVsbH1nZXRQb2ludEF0KHQsZSl7bGV0IGk9dGhpcy5nZXRVdG9UbWFwcGluZyh0KTtyZXR1cm4gdGhpcy5nZXRQb2ludChpLGUpfWdldFBvaW50cyh0PTUpe2xldCBlPVtdO2ZvcihsZXQgaT0wO2k8PXQ7aSsrKWUucHVzaCh0aGlzLmdldFBvaW50KGkvdCkpO3JldHVybiBlfWdldFNwYWNlZFBvaW50cyh0PTUpe2xldCBlPVtdO2ZvcihsZXQgaT0wO2k8PXQ7aSsrKWUucHVzaCh0aGlzLmdldFBvaW50QXQoaS90KSk7cmV0dXJuIGV9Z2V0TGVuZ3RoKCl7bGV0IHQ9dGhpcy5nZXRMZW5ndGhzKCk7cmV0dXJuIHRbdC5sZW5ndGgtMV19Z2V0TGVuZ3Rocyh0PXRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zKXtpZih0aGlzLmNhY2hlQXJjTGVuZ3RocyYmdGhpcy5jYWNoZUFyY0xlbmd0aHMubGVuZ3RoPT09dCsxJiYhdGhpcy5uZWVkc1VwZGF0ZSlyZXR1cm4gdGhpcy5jYWNoZUFyY0xlbmd0aHM7dGhpcy5uZWVkc1VwZGF0ZT0hMTtsZXQgaSxlPVtdLHI9dGhpcy5nZXRQb2ludCgwKSxvPTA7ZS5wdXNoKDApO2ZvcihsZXQgYT0xO2E8PXQ7YSsrKWk9dGhpcy5nZXRQb2ludChhL3QpLG8rPWkuZGlzdGFuY2VUbyhyKSxlLnB1c2gobykscj1pO3JldHVybiB0aGlzLmNhY2hlQXJjTGVuZ3Rocz1lLGV9dXBkYXRlQXJjTGVuZ3Rocygpe3RoaXMubmVlZHNVcGRhdGU9ITAsdGhpcy5nZXRMZW5ndGhzKCl9Z2V0VXRvVG1hcHBpbmcodCxlKXtsZXQgYSxpPXRoaXMuZ2V0TGVuZ3RocygpLHI9MCxvPWkubGVuZ3RoO2E9ZXx8dCppW28tMV07bGV0IGMscz0wLGw9by0xO2Zvcig7czw9bDspaWYocj1NYXRoLmZsb29yKHMrKGwtcykvMiksYz1pW3JdLWEsYzwwKXM9cisxO2Vsc2V7aWYoIShjPjApKXtsPXI7YnJlYWt9bD1yLTF9aWYocj1sLGlbcl09PT1hKXJldHVybiByLyhvLTEpO2xldCBkPWlbcl07cmV0dXJuKHIrKGEtZCkvKGlbcisxXS1kKSkvKG8tMSl9Z2V0VGFuZ2VudCh0LGUpe2xldCByPXQtMWUtNCxvPXQrMWUtNDtyPDAmJihyPTApLG8+MSYmKG89MSk7bGV0IGE9dGhpcy5nZXRQb2ludChyKSxzPXRoaXMuZ2V0UG9pbnQobyksbD1lfHwoYS5pc1ZlY3RvcjI/bmV3ICRlOm5ldyBLKTtyZXR1cm4gbC5jb3B5KHMpLnN1YihhKS5ub3JtYWxpemUoKSxsfWdldFRhbmdlbnRBdCh0LGUpe2xldCBpPXRoaXMuZ2V0VXRvVG1hcHBpbmcodCk7cmV0dXJuIHRoaXMuZ2V0VGFuZ2VudChpLGUpfWNvbXB1dGVGcmVuZXRGcmFtZXModCxlKXtsZXQgaT1uZXcgSyxyPVtdLG89W10sYT1bXSxzPW5ldyBLLGw9bmV3IHZuO2ZvcihsZXQgaD0wO2g8PXQ7aCsrKXJbaF09dGhpcy5nZXRUYW5nZW50QXQoaC90LG5ldyBLKTtvWzBdPW5ldyBLLGFbMF09bmV3IEs7bGV0IGM9TnVtYmVyLk1BWF9WQUxVRSxkPU1hdGguYWJzKHJbMF0ueCksdT1NYXRoLmFicyhyWzBdLnkpLHA9TWF0aC5hYnMoclswXS56KTtkPD1jJiYoYz1kLGkuc2V0KDEsMCwwKSksdTw9YyYmKGM9dSxpLnNldCgwLDEsMCkpLHA8PWMmJmkuc2V0KDAsMCwxKSxzLmNyb3NzVmVjdG9ycyhyWzBdLGkpLm5vcm1hbGl6ZSgpLG9bMF0uY3Jvc3NWZWN0b3JzKHJbMF0scyksYVswXS5jcm9zc1ZlY3RvcnMoclswXSxvWzBdKTtmb3IobGV0IGg9MTtoPD10O2grKyl7aWYob1toXT1vW2gtMV0uY2xvbmUoKSxhW2hdPWFbaC0xXS5jbG9uZSgpLHMuY3Jvc3NWZWN0b3JzKHJbaC0xXSxyW2hdKSxzLmxlbmd0aCgpPk51bWJlci5FUFNJTE9OKXtzLm5vcm1hbGl6ZSgpO2xldCBtPU1hdGguYWNvcyhlcyhyW2gtMV0uZG90KHJbaF0pLC0xLDEpKTtvW2hdLmFwcGx5TWF0cml4NChsLm1ha2VSb3RhdGlvbkF4aXMocyxtKSl9YVtoXS5jcm9zc1ZlY3RvcnMocltoXSxvW2hdKX1pZighMD09PWUpe2xldCBoPU1hdGguYWNvcyhlcyhvWzBdLmRvdChvW3RdKSwtMSwxKSk7aC89dCxyWzBdLmRvdChzLmNyb3NzVmVjdG9ycyhvWzBdLG9bdF0pKT4wJiYoaD0taCk7Zm9yKGxldCBtPTE7bTw9dDttKyspb1ttXS5hcHBseU1hdHJpeDQobC5tYWtlUm90YXRpb25BeGlzKHJbbV0saCptKSksYVttXS5jcm9zc1ZlY3RvcnMoclttXSxvW21dKX1yZXR1cm57dGFuZ2VudHM6cixub3JtYWxzOm8sYmlub3JtYWxzOmF9fWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWNvcHkodCl7cmV0dXJuIHRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zPXQuYXJjTGVuZ3RoRGl2aXNpb25zLHRoaXN9dG9KU09OKCl7bGV0IHQ9e21ldGFkYXRhOnt2ZXJzaW9uOjQuNSx0eXBlOiJDdXJ2ZSIsZ2VuZXJhdG9yOiJDdXJ2ZS50b0pTT04ifX07cmV0dXJuIHQuYXJjTGVuZ3RoRGl2aXNpb25zPXRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zLHQudHlwZT10aGlzLnR5cGUsdH1mcm9tSlNPTih0KXtyZXR1cm4gdGhpcy5hcmNMZW5ndGhEaXZpc2lvbnM9dC5hcmNMZW5ndGhEaXZpc2lvbnMsdGhpc319KSxyXz1jbGFzcyBleHRlbmRzIG5ze2NvbnN0cnVjdG9yKHQ9MCxlPTAsaT0xLHI9MSxvPTAsYT0yKk1hdGguUEkscz0hMSxsPTApe3N1cGVyKCksdGhpcy50eXBlPSJFbGxpcHNlQ3VydmUiLHRoaXMuYVg9dCx0aGlzLmFZPWUsdGhpcy54UmFkaXVzPWksdGhpcy55UmFkaXVzPXIsdGhpcy5hU3RhcnRBbmdsZT1vLHRoaXMuYUVuZEFuZ2xlPWEsdGhpcy5hQ2xvY2t3aXNlPXMsdGhpcy5hUm90YXRpb249bH1nZXRQb2ludCh0LGUpe2xldCBpPWV8fG5ldyAkZSxyPTIqTWF0aC5QSSxvPXRoaXMuYUVuZEFuZ2xlLXRoaXMuYVN0YXJ0QW5nbGUsYT1NYXRoLmFicyhvKTxOdW1iZXIuRVBTSUxPTjtmb3IoO288MDspbys9cjtmb3IoO28+cjspby09cjtvPE51bWJlci5FUFNJTE9OJiYobz1hPzA6ciksITA9PT10aGlzLmFDbG9ja3dpc2UmJiFhJiYobz09PXI/bz0tcjpvLT1yKTtsZXQgcz10aGlzLmFTdGFydEFuZ2xlK3QqbyxsPXRoaXMuYVgrdGhpcy54UmFkaXVzKk1hdGguY29zKHMpLGM9dGhpcy5hWSt0aGlzLnlSYWRpdXMqTWF0aC5zaW4ocyk7aWYoMCE9PXRoaXMuYVJvdGF0aW9uKXtsZXQgZD1NYXRoLmNvcyh0aGlzLmFSb3RhdGlvbiksdT1NYXRoLnNpbih0aGlzLmFSb3RhdGlvbikscD1sLXRoaXMuYVgsaD1jLXRoaXMuYVk7bD1wKmQtaCp1K3RoaXMuYVgsYz1wKnUraCpkK3RoaXMuYVl9cmV0dXJuIGkuc2V0KGwsYyl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmFYPXQuYVgsdGhpcy5hWT10LmFZLHRoaXMueFJhZGl1cz10LnhSYWRpdXMsdGhpcy55UmFkaXVzPXQueVJhZGl1cyx0aGlzLmFTdGFydEFuZ2xlPXQuYVN0YXJ0QW5nbGUsdGhpcy5hRW5kQW5nbGU9dC5hRW5kQW5nbGUsdGhpcy5hQ2xvY2t3aXNlPXQuYUNsb2Nrd2lzZSx0aGlzLmFSb3RhdGlvbj10LmFSb3RhdGlvbix0aGlzfXRvSlNPTigpe2xldCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LmFYPXRoaXMuYVgsdC5hWT10aGlzLmFZLHQueFJhZGl1cz10aGlzLnhSYWRpdXMsdC55UmFkaXVzPXRoaXMueVJhZGl1cyx0LmFTdGFydEFuZ2xlPXRoaXMuYVN0YXJ0QW5nbGUsdC5hRW5kQW5nbGU9dGhpcy5hRW5kQW5nbGUsdC5hQ2xvY2t3aXNlPXRoaXMuYUNsb2Nrd2lzZSx0LmFSb3RhdGlvbj10aGlzLmFSb3RhdGlvbix0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLmFYPXQuYVgsdGhpcy5hWT10LmFZLHRoaXMueFJhZGl1cz10LnhSYWRpdXMsdGhpcy55UmFkaXVzPXQueVJhZGl1cyx0aGlzLmFTdGFydEFuZ2xlPXQuYVN0YXJ0QW5nbGUsdGhpcy5hRW5kQW5nbGU9dC5hRW5kQW5nbGUsdGhpcy5hQ2xvY2t3aXNlPXQuYUNsb2Nrd2lzZSx0aGlzLmFSb3RhdGlvbj10LmFSb3RhdGlvbix0aGlzfX07cl8ucHJvdG90eXBlLmlzRWxsaXBzZUN1cnZlPSEwO3ZhciBCST1jbGFzcyBleHRlbmRzIHJfe2NvbnN0cnVjdG9yKHQsZSxpLHIsbyxhKXtzdXBlcih0LGUsaSxpLHIsbyxhKSx0aGlzLnR5cGU9IkFyY0N1cnZlIn19O2Z1bmN0aW9uIHVWKCl7bGV0IG49MCx0PTAsZT0wLGk9MDtmdW5jdGlvbiByKG8sYSxzLGwpe249byx0PXMsZT0tMypvKzMqYS0yKnMtbCxpPTIqby0yKmErcytsfXJldHVybntpbml0Q2F0bXVsbFJvbTpmdW5jdGlvbihvLGEscyxsLGMpe3IoYSxzLGMqKHMtbyksYyoobC1hKSl9LGluaXROb251bmlmb3JtQ2F0bXVsbFJvbTpmdW5jdGlvbihvLGEscyxsLGMsZCx1KXtsZXQgcD0oYS1vKS9jLShzLW8pLyhjK2QpKyhzLWEpL2QsaD0ocy1hKS9kLShsLWEpLyhkK3UpKyhsLXMpL3U7cCo9ZCxoKj1kLHIoYSxzLHAsaCl9LGNhbGM6ZnVuY3Rpb24obyl7bGV0IGE9bypvO3JldHVybiBuK3QqbytlKmEraSooYSpvKX19fUJJLnByb3RvdHlwZS5pc0FyY0N1cnZlPSEwO3ZhciBmST1uZXcgSyxVMz1uZXcgdVYsajM9bmV3IHVWLEczPW5ldyB1VixWST1jbGFzcyBleHRlbmRzIG5ze2NvbnN0cnVjdG9yKHQ9W10sZT0hMSxpPSJjZW50cmlwZXRhbCIscj0uNSl7c3VwZXIoKSx0aGlzLnR5cGU9IkNhdG11bGxSb21DdXJ2ZTMiLHRoaXMucG9pbnRzPXQsdGhpcy5jbG9zZWQ9ZSx0aGlzLmN1cnZlVHlwZT1pLHRoaXMudGVuc2lvbj1yfWdldFBvaW50KHQsZT1uZXcgSyl7bGV0IGMsZCxpPWUscj10aGlzLnBvaW50cyxvPXIubGVuZ3RoLGE9KG8tKHRoaXMuY2xvc2VkPzA6MSkpKnQscz1NYXRoLmZsb29yKGEpLGw9YS1zO3RoaXMuY2xvc2VkP3MrPXM+MD8wOihNYXRoLmZsb29yKE1hdGguYWJzKHMpL28pKzEpKm86MD09PWwmJnM9PT1vLTEmJihzPW8tMixsPTEpLHRoaXMuY2xvc2VkfHxzPjA/Yz1yWyhzLTEpJW9dOihmSS5zdWJWZWN0b3JzKHJbMF0sclsxXSkuYWRkKHJbMF0pLGM9ZkkpO2xldCB1PXJbcyVvXSxwPXJbKHMrMSklb107aWYodGhpcy5jbG9zZWR8fHMrMjxvP2Q9clsocysyKSVvXTooZkkuc3ViVmVjdG9ycyhyW28tMV0scltvLTJdKS5hZGQocltvLTFdKSxkPWZJKSwiY2VudHJpcGV0YWwiPT09dGhpcy5jdXJ2ZVR5cGV8fCJjaG9yZGFsIj09PXRoaXMuY3VydmVUeXBlKXtsZXQgaD0iY2hvcmRhbCI9PT10aGlzLmN1cnZlVHlwZT8uNTouMjUsbT1NYXRoLnBvdyhjLmRpc3RhbmNlVG9TcXVhcmVkKHUpLGgpLF89TWF0aC5wb3codS5kaXN0YW5jZVRvU3F1YXJlZChwKSxoKSxNPU1hdGgucG93KHAuZGlzdGFuY2VUb1NxdWFyZWQoZCksaCk7XzwxZS00JiYoXz0xKSxtPDFlLTQmJihtPV8pLE08MWUtNCYmKE09XyksVTMuaW5pdE5vbnVuaWZvcm1DYXRtdWxsUm9tKGMueCx1LngscC54LGQueCxtLF8sTSksajMuaW5pdE5vbnVuaWZvcm1DYXRtdWxsUm9tKGMueSx1LnkscC55LGQueSxtLF8sTSksRzMuaW5pdE5vbnVuaWZvcm1DYXRtdWxsUm9tKGMueix1LnoscC56LGQueixtLF8sTSl9ZWxzZSJjYXRtdWxscm9tIj09PXRoaXMuY3VydmVUeXBlJiYoVTMuaW5pdENhdG11bGxSb20oYy54LHUueCxwLngsZC54LHRoaXMudGVuc2lvbiksajMuaW5pdENhdG11bGxSb20oYy55LHUueSxwLnksZC55LHRoaXMudGVuc2lvbiksRzMuaW5pdENhdG11bGxSb20oYy56LHUueixwLnosZC56LHRoaXMudGVuc2lvbikpO3JldHVybiBpLnNldChVMy5jYWxjKGwpLGozLmNhbGMobCksRzMuY2FsYyhsKSksaX1jb3B5KHQpe3N1cGVyLmNvcHkodCksdGhpcy5wb2ludHM9W107Zm9yKGxldCBlPTAsaT10LnBvaW50cy5sZW5ndGg7ZTxpO2UrKyl0aGlzLnBvaW50cy5wdXNoKHQucG9pbnRzW2VdLmNsb25lKCkpO3JldHVybiB0aGlzLmNsb3NlZD10LmNsb3NlZCx0aGlzLmN1cnZlVHlwZT10LmN1cnZlVHlwZSx0aGlzLnRlbnNpb249dC50ZW5zaW9uLHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7dC5wb2ludHM9W107Zm9yKGxldCBlPTAsaT10aGlzLnBvaW50cy5sZW5ndGg7ZTxpO2UrKyl0LnBvaW50cy5wdXNoKHRoaXMucG9pbnRzW2VdLnRvQXJyYXkoKSk7cmV0dXJuIHQuY2xvc2VkPXRoaXMuY2xvc2VkLHQuY3VydmVUeXBlPXRoaXMuY3VydmVUeXBlLHQudGVuc2lvbj10aGlzLnRlbnNpb24sdH1mcm9tSlNPTih0KXtzdXBlci5mcm9tSlNPTih0KSx0aGlzLnBvaW50cz1bXTtmb3IobGV0IGU9MCxpPXQucG9pbnRzLmxlbmd0aDtlPGk7ZSsrKXtsZXQgcj10LnBvaW50c1tlXTt0aGlzLnBvaW50cy5wdXNoKChuZXcgSykuZnJvbUFycmF5KHIpKX1yZXR1cm4gdGhpcy5jbG9zZWQ9dC5jbG9zZWQsdGhpcy5jdXJ2ZVR5cGU9dC5jdXJ2ZVR5cGUsdGhpcy50ZW5zaW9uPXQudGVuc2lvbix0aGlzfX07ZnVuY3Rpb24gS2VlKG4sdCxlLGkscil7bGV0IG89LjUqKGktdCksYT0uNSooci1lKSxzPW4qbjtyZXR1cm4oMiplLTIqaStvK2EpKihuKnMpKygtMyplKzMqaS0yKm8tYSkqcytvKm4rZX1mdW5jdGlvbiBieChuLHQsZSxpKXtyZXR1cm4gZnVuY3Rpb24obix0KXtsZXQgZT0xLW47cmV0dXJuIGUqZSp0fShuLHQpK2Z1bmN0aW9uKG4sdCl7cmV0dXJuIDIqKDEtbikqbip0fShuLGUpK2Z1bmN0aW9uKG4sdCl7cmV0dXJuIG4qbip0fShuLGkpfWZ1bmN0aW9uIHZ4KG4sdCxlLGkscil7cmV0dXJuIGZ1bmN0aW9uKG4sdCl7bGV0IGU9MS1uO3JldHVybiBlKmUqZSp0fShuLHQpK2Z1bmN0aW9uKG4sdCl7bGV0IGU9MS1uO3JldHVybiAzKmUqZSpuKnR9KG4sZSkrZnVuY3Rpb24obix0KXtyZXR1cm4gMyooMS1uKSpuKm4qdH0obixpKStmdW5jdGlvbihuLHQpe3JldHVybiBuKm4qbip0fShuLHIpfVZJLnByb3RvdHlwZS5pc0NhdG11bGxSb21DdXJ2ZTM9ITA7dmFyIEZ4PWNsYXNzIGV4dGVuZHMgbnN7Y29uc3RydWN0b3IodD1uZXcgJGUsZT1uZXcgJGUsaT1uZXcgJGUscj1uZXcgJGUpe3N1cGVyKCksdGhpcy50eXBlPSJDdWJpY0JlemllckN1cnZlIix0aGlzLnYwPXQsdGhpcy52MT1lLHRoaXMudjI9aSx0aGlzLnYzPXJ9Z2V0UG9pbnQodCxlPW5ldyAkZSl7bGV0IGk9ZSxyPXRoaXMudjAsbz10aGlzLnYxLGE9dGhpcy52MixzPXRoaXMudjM7cmV0dXJuIGkuc2V0KHZ4KHQsci54LG8ueCxhLngscy54KSx2eCh0LHIueSxvLnksYS55LHMueSkpLGl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYwLmNvcHkodC52MCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzLnYzLmNvcHkodC52MyksdGhpc310b0pTT04oKXtsZXQgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MD10aGlzLnYwLnRvQXJyYXkoKSx0LnYxPXRoaXMudjEudG9BcnJheSgpLHQudjI9dGhpcy52Mi50b0FycmF5KCksdC52Mz10aGlzLnYzLnRvQXJyYXkoKSx0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLnYwLmZyb21BcnJheSh0LnYwKSx0aGlzLnYxLmZyb21BcnJheSh0LnYxKSx0aGlzLnYyLmZyb21BcnJheSh0LnYyKSx0aGlzLnYzLmZyb21BcnJheSh0LnYzKSx0aGlzfX07RngucHJvdG90eXBlLmlzQ3ViaWNCZXppZXJDdXJ2ZT0hMDt2YXIgSEk9Y2xhc3MgZXh0ZW5kcyBuc3tjb25zdHJ1Y3Rvcih0PW5ldyBLLGU9bmV3IEssaT1uZXcgSyxyPW5ldyBLKXtzdXBlcigpLHRoaXMudHlwZT0iQ3ViaWNCZXppZXJDdXJ2ZTMiLHRoaXMudjA9dCx0aGlzLnYxPWUsdGhpcy52Mj1pLHRoaXMudjM9cn1nZXRQb2ludCh0LGU9bmV3IEspe2xldCBpPWUscj10aGlzLnYwLG89dGhpcy52MSxhPXRoaXMudjIscz10aGlzLnYzO3JldHVybiBpLnNldCh2eCh0LHIueCxvLngsYS54LHMueCksdngodCxyLnksby55LGEueSxzLnkpLHZ4KHQsci56LG8ueixhLnoscy56KSksaX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudjAuY29weSh0LnYwKSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXMudjMuY29weSh0LnYzKSx0aGlzfXRvSlNPTigpe2xldCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYwPXRoaXMudjAudG9BcnJheSgpLHQudjE9dGhpcy52MS50b0FycmF5KCksdC52Mj10aGlzLnYyLnRvQXJyYXkoKSx0LnYzPXRoaXMudjMudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjAuZnJvbUFycmF5KHQudjApLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXMudjMuZnJvbUFycmF5KHQudjMpLHRoaXN9fTtISS5wcm90b3R5cGUuaXNDdWJpY0JlemllckN1cnZlMz0hMDt2YXIgb189Y2xhc3MgZXh0ZW5kcyBuc3tjb25zdHJ1Y3Rvcih0PW5ldyAkZSxlPW5ldyAkZSl7c3VwZXIoKSx0aGlzLnR5cGU9IkxpbmVDdXJ2ZSIsdGhpcy52MT10LHRoaXMudjI9ZX1nZXRQb2ludCh0LGU9bmV3ICRlKXtsZXQgaT1lO3JldHVybiAxPT09dD9pLmNvcHkodGhpcy52Mik6KGkuY29weSh0aGlzLnYyKS5zdWIodGhpcy52MSksaS5tdWx0aXBseVNjYWxhcih0KS5hZGQodGhpcy52MSkpLGl9Z2V0UG9pbnRBdCh0LGUpe3JldHVybiB0aGlzLmdldFBvaW50KHQsZSl9Z2V0VGFuZ2VudCh0LGUpe2xldCBpPWV8fG5ldyAkZTtyZXR1cm4gaS5jb3B5KHRoaXMudjIpLnN1Yih0aGlzLnYxKS5ub3JtYWxpemUoKSxpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzfXRvSlNPTigpe2xldCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYxPXRoaXMudjEudG9BcnJheSgpLHQudjI9dGhpcy52Mi50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy52MS5mcm9tQXJyYXkodC52MSksdGhpcy52Mi5mcm9tQXJyYXkodC52MiksdGhpc319O29fLnByb3RvdHlwZS5pc0xpbmVDdXJ2ZT0hMDt2YXIgTng9Y2xhc3MgZXh0ZW5kcyBuc3tjb25zdHJ1Y3Rvcih0PW5ldyAkZSxlPW5ldyAkZSxpPW5ldyAkZSl7c3VwZXIoKSx0aGlzLnR5cGU9IlF1YWRyYXRpY0JlemllckN1cnZlIix0aGlzLnYwPXQsdGhpcy52MT1lLHRoaXMudjI9aX1nZXRQb2ludCh0LGU9bmV3ICRlKXtsZXQgaT1lLHI9dGhpcy52MCxvPXRoaXMudjEsYT10aGlzLnYyO3JldHVybiBpLnNldChieCh0LHIueCxvLngsYS54KSxieCh0LHIueSxvLnksYS55KSksaX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudjAuY29weSh0LnYwKSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQudjA9dGhpcy52MC50b0FycmF5KCksdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjAuZnJvbUFycmF5KHQudjApLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fTtOeC5wcm90b3R5cGUuaXNRdWFkcmF0aWNCZXppZXJDdXJ2ZT0hMDt2YXIgekk9Y2xhc3MgZXh0ZW5kcyBuc3tjb25zdHJ1Y3Rvcih0PW5ldyBLLGU9bmV3IEssaT1uZXcgSyl7c3VwZXIoKSx0aGlzLnR5cGU9IlF1YWRyYXRpY0JlemllckN1cnZlMyIsdGhpcy52MD10LHRoaXMudjE9ZSx0aGlzLnYyPWl9Z2V0UG9pbnQodCxlPW5ldyBLKXtsZXQgaT1lLHI9dGhpcy52MCxvPXRoaXMudjEsYT10aGlzLnYyO3JldHVybiBpLnNldChieCh0LHIueCxvLngsYS54KSxieCh0LHIueSxvLnksYS55KSxieCh0LHIueixvLnosYS56KSksaX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudjAuY29weSh0LnYwKSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQudjA9dGhpcy52MC50b0FycmF5KCksdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjAuZnJvbUFycmF5KHQudjApLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fTt6SS5wcm90b3R5cGUuaXNRdWFkcmF0aWNCZXppZXJDdXJ2ZTM9ITA7dmFyIEx4PWNsYXNzIGV4dGVuZHMgbnN7Y29uc3RydWN0b3IodD1bXSl7c3VwZXIoKSx0aGlzLnR5cGU9IlNwbGluZUN1cnZlIix0aGlzLnBvaW50cz10fWdldFBvaW50KHQsZT1uZXcgJGUpe2xldCBpPWUscj10aGlzLnBvaW50cyxvPShyLmxlbmd0aC0xKSp0LGE9TWF0aC5mbG9vcihvKSxzPW8tYSxsPXJbMD09PWE/YTphLTFdLGM9clthXSxkPXJbYT5yLmxlbmd0aC0yP3IubGVuZ3RoLTE6YSsxXSx1PXJbYT5yLmxlbmd0aC0zP3IubGVuZ3RoLTE6YSsyXTtyZXR1cm4gaS5zZXQoS2VlKHMsbC54LGMueCxkLngsdS54KSxLZWUocyxsLnksYy55LGQueSx1LnkpKSxpfWNvcHkodCl7c3VwZXIuY29weSh0KSx0aGlzLnBvaW50cz1bXTtmb3IobGV0IGU9MCxpPXQucG9pbnRzLmxlbmd0aDtlPGk7ZSsrKXRoaXMucG9pbnRzLnB1c2godC5wb2ludHNbZV0uY2xvbmUoKSk7cmV0dXJuIHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7dC5wb2ludHM9W107Zm9yKGxldCBlPTAsaT10aGlzLnBvaW50cy5sZW5ndGg7ZTxpO2UrKyl0LnBvaW50cy5wdXNoKHRoaXMucG9pbnRzW2VdLnRvQXJyYXkoKSk7cmV0dXJuIHR9ZnJvbUpTT04odCl7c3VwZXIuZnJvbUpTT04odCksdGhpcy5wb2ludHM9W107Zm9yKGxldCBlPTAsaT10LnBvaW50cy5sZW5ndGg7ZTxpO2UrKyl7bGV0IHI9dC5wb2ludHNbZV07dGhpcy5wb2ludHMucHVzaCgobmV3ICRlKS5mcm9tQXJyYXkocikpfXJldHVybiB0aGlzfX07THgucHJvdG90eXBlLmlzU3BsaW5lQ3VydmU9ITA7dmFyIEV0ZT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxBcmNDdXJ2ZTpCSSxDYXRtdWxsUm9tQ3VydmUzOlZJLEN1YmljQmV6aWVyQ3VydmU6RngsQ3ViaWNCZXppZXJDdXJ2ZTM6SEksRWxsaXBzZUN1cnZlOnJfLExpbmVDdXJ2ZTpvXyxMaW5lQ3VydmUzOmNsYXNzIGV4dGVuZHMgbnN7Y29uc3RydWN0b3IodD1uZXcgSyxlPW5ldyBLKXtzdXBlcigpLHRoaXMudHlwZT0iTGluZUN1cnZlMyIsdGhpcy5pc0xpbmVDdXJ2ZTM9ITAsdGhpcy52MT10LHRoaXMudjI9ZX1nZXRQb2ludCh0LGU9bmV3IEspe2xldCBpPWU7cmV0dXJuIDE9PT10P2kuY29weSh0aGlzLnYyKTooaS5jb3B5KHRoaXMudjIpLnN1Yih0aGlzLnYxKSxpLm11bHRpcGx5U2NhbGFyKHQpLmFkZCh0aGlzLnYxKSksaX1nZXRQb2ludEF0KHQsZSl7cmV0dXJuIHRoaXMuZ2V0UG9pbnQodCxlKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpc310b0pTT04oKXtsZXQgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fSxRdWFkcmF0aWNCZXppZXJDdXJ2ZTpOeCxRdWFkcmF0aWNCZXppZXJDdXJ2ZTM6ekksU3BsaW5lQ3VydmU6THh9KSx2Qj1jbGFzcyBleHRlbmRzIG5ze2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnR5cGU9IkN1cnZlUGF0aCIsdGhpcy5jdXJ2ZXM9W10sdGhpcy5hdXRvQ2xvc2U9ITF9YWRkKHQpe3RoaXMuY3VydmVzLnB1c2godCl9Y2xvc2VQYXRoKCl7bGV0IHQ9dGhpcy5jdXJ2ZXNbMF0uZ2V0UG9pbnQoMCksZT10aGlzLmN1cnZlc1t0aGlzLmN1cnZlcy5sZW5ndGgtMV0uZ2V0UG9pbnQoMSk7dC5lcXVhbHMoZSl8fHRoaXMuY3VydmVzLnB1c2gobmV3IG9fKGUsdCkpfWdldFBvaW50KHQsZSl7bGV0IGk9dCp0aGlzLmdldExlbmd0aCgpLHI9dGhpcy5nZXRDdXJ2ZUxlbmd0aHMoKSxvPTA7Zm9yKDtvPHIubGVuZ3RoOyl7aWYocltvXT49aSl7bGV0IGE9cltvXS1pLHM9dGhpcy5jdXJ2ZXNbb10sbD1zLmdldExlbmd0aCgpO3JldHVybiBzLmdldFBvaW50QXQoMD09PWw/MDoxLWEvbCxlKX1vKyt9cmV0dXJuIG51bGx9Z2V0TGVuZ3RoKCl7bGV0IHQ9dGhpcy5nZXRDdXJ2ZUxlbmd0aHMoKTtyZXR1cm4gdFt0Lmxlbmd0aC0xXX11cGRhdGVBcmNMZW5ndGhzKCl7dGhpcy5uZWVkc1VwZGF0ZT0hMCx0aGlzLmNhY2hlTGVuZ3Rocz1udWxsLHRoaXMuZ2V0Q3VydmVMZW5ndGhzKCl9Z2V0Q3VydmVMZW5ndGhzKCl7aWYodGhpcy5jYWNoZUxlbmd0aHMmJnRoaXMuY2FjaGVMZW5ndGhzLmxlbmd0aD09PXRoaXMuY3VydmVzLmxlbmd0aClyZXR1cm4gdGhpcy5jYWNoZUxlbmd0aHM7bGV0IHQ9W10sZT0wO2ZvcihsZXQgaT0wLHI9dGhpcy5jdXJ2ZXMubGVuZ3RoO2k8cjtpKyspZSs9dGhpcy5jdXJ2ZXNbaV0uZ2V0TGVuZ3RoKCksdC5wdXNoKGUpO3JldHVybiB0aGlzLmNhY2hlTGVuZ3Rocz10LHR9Z2V0U3BhY2VkUG9pbnRzKHQ9NDApe2xldCBlPVtdO2ZvcihsZXQgaT0wO2k8PXQ7aSsrKWUucHVzaCh0aGlzLmdldFBvaW50KGkvdCkpO3JldHVybiB0aGlzLmF1dG9DbG9zZSYmZS5wdXNoKGVbMF0pLGV9Z2V0UG9pbnRzKHQ9MTIpe2xldCBpLGU9W107Zm9yKGxldCByPTAsbz10aGlzLmN1cnZlcztyPG8ubGVuZ3RoO3IrKyl7bGV0IGE9b1tyXSxsPWEuZ2V0UG9pbnRzKGEmJmEuaXNFbGxpcHNlQ3VydmU/Mip0OmEmJihhLmlzTGluZUN1cnZlfHxhLmlzTGluZUN1cnZlMyk/MTphJiZhLmlzU3BsaW5lQ3VydmU/dCphLnBvaW50cy5sZW5ndGg6dCk7Zm9yKGxldCBjPTA7YzxsLmxlbmd0aDtjKyspe2xldCBkPWxbY107aSYmaS5lcXVhbHMoZCl8fChlLnB1c2goZCksaT1kKX19cmV0dXJuIHRoaXMuYXV0b0Nsb3NlJiZlLmxlbmd0aD4xJiYhZVtlLmxlbmd0aC0xXS5lcXVhbHMoZVswXSkmJmUucHVzaChlWzBdKSxlfWNvcHkodCl7c3VwZXIuY29weSh0KSx0aGlzLmN1cnZlcz1bXTtmb3IobGV0IGU9MCxpPXQuY3VydmVzLmxlbmd0aDtlPGk7ZSsrKXRoaXMuY3VydmVzLnB1c2godC5jdXJ2ZXNbZV0uY2xvbmUoKSk7cmV0dXJuIHRoaXMuYXV0b0Nsb3NlPXQuYXV0b0Nsb3NlLHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7dC5hdXRvQ2xvc2U9dGhpcy5hdXRvQ2xvc2UsdC5jdXJ2ZXM9W107Zm9yKGxldCBlPTAsaT10aGlzLmN1cnZlcy5sZW5ndGg7ZTxpO2UrKyl0LmN1cnZlcy5wdXNoKHRoaXMuY3VydmVzW2VdLnRvSlNPTigpKTtyZXR1cm4gdH1mcm9tSlNPTih0KXtzdXBlci5mcm9tSlNPTih0KSx0aGlzLmF1dG9DbG9zZT10LmF1dG9DbG9zZSx0aGlzLmN1cnZlcz1bXTtmb3IobGV0IGU9MCxpPXQuY3VydmVzLmxlbmd0aDtlPGk7ZSsrKXtsZXQgcj10LmN1cnZlc1tlXTt0aGlzLmN1cnZlcy5wdXNoKChuZXcgRXRlW3IudHlwZV0pLmZyb21KU09OKHIpKX1yZXR1cm4gdGhpc319LEJ4PWNsYXNzIGV4dGVuZHMgdkJ7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlBhdGgiLHRoaXMuY3VycmVudFBvaW50PW5ldyAkZSx0JiZ0aGlzLnNldEZyb21Qb2ludHModCl9c2V0RnJvbVBvaW50cyh0KXt0aGlzLm1vdmVUbyh0WzBdLngsdFswXS55KTtmb3IobGV0IGU9MSxpPXQubGVuZ3RoO2U8aTtlKyspdGhpcy5saW5lVG8odFtlXS54LHRbZV0ueSk7cmV0dXJuIHRoaXN9bW92ZVRvKHQsZSl7cmV0dXJuIHRoaXMuY3VycmVudFBvaW50LnNldCh0LGUpLHRoaXN9bGluZVRvKHQsZSl7bGV0IGk9bmV3IG9fKHRoaXMuY3VycmVudFBvaW50LmNsb25lKCksbmV3ICRlKHQsZSkpO3JldHVybiB0aGlzLmN1cnZlcy5wdXNoKGkpLHRoaXMuY3VycmVudFBvaW50LnNldCh0LGUpLHRoaXN9cXVhZHJhdGljQ3VydmVUbyh0LGUsaSxyKXtsZXQgbz1uZXcgTngodGhpcy5jdXJyZW50UG9pbnQuY2xvbmUoKSxuZXcgJGUodCxlKSxuZXcgJGUoaSxyKSk7cmV0dXJuIHRoaXMuY3VydmVzLnB1c2gobyksdGhpcy5jdXJyZW50UG9pbnQuc2V0KGksciksdGhpc31iZXppZXJDdXJ2ZVRvKHQsZSxpLHIsbyxhKXtsZXQgcz1uZXcgRngodGhpcy5jdXJyZW50UG9pbnQuY2xvbmUoKSxuZXcgJGUodCxlKSxuZXcgJGUoaSxyKSxuZXcgJGUobyxhKSk7cmV0dXJuIHRoaXMuY3VydmVzLnB1c2gocyksdGhpcy5jdXJyZW50UG9pbnQuc2V0KG8sYSksdGhpc31zcGxpbmVUaHJ1KHQpe2xldCBlPVt0aGlzLmN1cnJlbnRQb2ludC5jbG9uZSgpXS5jb25jYXQodCksaT1uZXcgTHgoZSk7cmV0dXJuIHRoaXMuY3VydmVzLnB1c2goaSksdGhpcy5jdXJyZW50UG9pbnQuY29weSh0W3QubGVuZ3RoLTFdKSx0aGlzfWFyYyh0LGUsaSxyLG8sYSl7cmV0dXJuIHRoaXMuYWJzYXJjKHQrdGhpcy5jdXJyZW50UG9pbnQueCxlK3RoaXMuY3VycmVudFBvaW50LnksaSxyLG8sYSksdGhpc31hYnNhcmModCxlLGkscixvLGEpe3JldHVybiB0aGlzLmFic2VsbGlwc2UodCxlLGksaSxyLG8sYSksdGhpc31lbGxpcHNlKHQsZSxpLHIsbyxhLHMsbCl7cmV0dXJuIHRoaXMuYWJzZWxsaXBzZSh0K3RoaXMuY3VycmVudFBvaW50LngsZSt0aGlzLmN1cnJlbnRQb2ludC55LGkscixvLGEscyxsKSx0aGlzfWFic2VsbGlwc2UodCxlLGkscixvLGEscyxsKXtsZXQgYz1uZXcgcl8odCxlLGkscixvLGEscyxsKTtpZih0aGlzLmN1cnZlcy5sZW5ndGg+MCl7bGV0IHU9Yy5nZXRQb2ludCgwKTt1LmVxdWFscyh0aGlzLmN1cnJlbnRQb2ludCl8fHRoaXMubGluZVRvKHUueCx1LnkpfXRoaXMuY3VydmVzLnB1c2goYyk7bGV0IGQ9Yy5nZXRQb2ludCgxKTtyZXR1cm4gdGhpcy5jdXJyZW50UG9pbnQuY29weShkKSx0aGlzfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jdXJyZW50UG9pbnQuY29weSh0LmN1cnJlbnRQb2ludCksdGhpc310b0pTT04oKXtsZXQgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC5jdXJyZW50UG9pbnQ9dGhpcy5jdXJyZW50UG9pbnQudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMuY3VycmVudFBvaW50LmZyb21BcnJheSh0LmN1cnJlbnRQb2ludCksdGhpc319LFdkPWNsYXNzIGV4dGVuZHMgQnh7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy51dWlkPVlsKCksdGhpcy50eXBlPSJTaGFwZSIsdGhpcy5ob2xlcz1bXX1nZXRQb2ludHNIb2xlcyh0KXtsZXQgZT1bXTtmb3IobGV0IGk9MCxyPXRoaXMuaG9sZXMubGVuZ3RoO2k8cjtpKyspZVtpXT10aGlzLmhvbGVzW2ldLmdldFBvaW50cyh0KTtyZXR1cm4gZX1leHRyYWN0UG9pbnRzKHQpe3JldHVybntzaGFwZTp0aGlzLmdldFBvaW50cyh0KSxob2xlczp0aGlzLmdldFBvaW50c0hvbGVzKHQpfX1jb3B5KHQpe3N1cGVyLmNvcHkodCksdGhpcy5ob2xlcz1bXTtmb3IobGV0IGU9MCxpPXQuaG9sZXMubGVuZ3RoO2U8aTtlKyspdGhpcy5ob2xlcy5wdXNoKHQuaG9sZXNbZV0uY2xvbmUoKSk7cmV0dXJuIHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7dC51dWlkPXRoaXMudXVpZCx0LmhvbGVzPVtdO2ZvcihsZXQgZT0wLGk9dGhpcy5ob2xlcy5sZW5ndGg7ZTxpO2UrKyl0LmhvbGVzLnB1c2godGhpcy5ob2xlc1tlXS50b0pTT04oKSk7cmV0dXJuIHR9ZnJvbUpTT04odCl7c3VwZXIuZnJvbUpTT04odCksdGhpcy51dWlkPXQudXVpZCx0aGlzLmhvbGVzPVtdO2ZvcihsZXQgZT0wLGk9dC5ob2xlcy5sZW5ndGg7ZTxpO2UrKyl7bGV0IHI9dC5ob2xlc1tlXTt0aGlzLmhvbGVzLnB1c2goKG5ldyBCeCkuZnJvbUpTT04ocikpfXJldHVybiB0aGlzfX07ZnVuY3Rpb24gVHRlKG4sdCxlLGkscil7bGV0IG8sYTtpZihyPT09ZnVuY3Rpb24obix0LGUsaSl7bGV0IHI9MDtmb3IobGV0IG89dCxhPWUtaTtvPGU7bys9aSlyKz0oblthXS1uW29dKSoobltvKzFdK25bYSsxXSksYT1vO3JldHVybiByfShuLHQsZSxpKT4wKWZvcihvPXQ7bzxlO28rPWkpYT1KZWUobyxuW29dLG5bbysxXSxhKTtlbHNlIGZvcihvPWUtaTtvPj10O28tPWkpYT1KZWUobyxuW29dLG5bbysxXSxhKTtyZXR1cm4gYSYmdEEoYSxhLm5leHQpJiYoengoYSksYT1hLm5leHQpLGF9ZnVuY3Rpb24gRHAobix0KXtpZighbilyZXR1cm4gbjt0fHwodD1uKTtsZXQgaSxlPW47ZG97aWYoaT0hMSxlLnN0ZWluZXJ8fCF0QShlLGUubmV4dCkmJjAhPT1GcihlLnByZXYsZSxlLm5leHQpKWU9ZS5uZXh0O2Vsc2V7aWYoengoZSksZT10PWUucHJldixlPT09ZS5uZXh0KWJyZWFrO2k9ITB9fXdoaWxlKGl8fGUhPT10KTtyZXR1cm4gdH1mdW5jdGlvbiBWeChuLHQsZSxpLHIsbyxhKXtpZighbilyZXR1cm47IWEmJm8mJmZ1bmN0aW9uKG4sdCxlLGkpe2xldCByPW47ZG97bnVsbD09PXIueiYmKHIuej15QihyLngsci55LHQsZSxpKSksci5wcmV2Wj1yLnByZXYsci5uZXh0Wj1yLm5leHQscj1yLm5leHR9d2hpbGUociE9PW4pO3IucHJldloubmV4dFo9bnVsbCxyLnByZXZaPW51bGwsZnVuY3Rpb24obil7bGV0IHQsZSxpLHIsbyxhLHMsbCxjPTE7ZG97Zm9yKGU9bixuPW51bGwsbz1udWxsLGE9MDtlOyl7Zm9yKGErKyxpPWUscz0wLHQ9MDt0PGMmJihzKyssaT1pLm5leHRaLGkpO3QrKyk7Zm9yKGw9YztzPjB8fGw+MCYmaTspMCE9PXMmJigwPT09bHx8IWl8fGUuejw9aS56KT8ocj1lLGU9ZS5uZXh0WixzLS0pOihyPWksaT1pLm5leHRaLGwtLSksbz9vLm5leHRaPXI6bj1yLHIucHJldlo9byxvPXI7ZT1pfW8ubmV4dFo9bnVsbCxjKj0yfXdoaWxlKGE+MSl9KHIpfShuLGkscixvKTtsZXQgbCxjLHM9bjtmb3IoO24ucHJldiE9PW4ubmV4dDspaWYobD1uLnByZXYsYz1uLm5leHQsbz9IMmUobixpLHIsbyk6VjJlKG4pKXQucHVzaChsLmkvZSksdC5wdXNoKG4uaS9lKSx0LnB1c2goYy5pL2UpLHp4KG4pLG49Yy5uZXh0LHM9Yy5uZXh0O2Vsc2UgaWYoKG49Yyk9PT1zKXthPzE9PT1hP1Z4KG49ejJlKERwKG4pLHQsZSksdCxlLGkscixvLDIpOjI9PT1hJiZVMmUobix0LGUsaSxyLG8pOlZ4KERwKG4pLHQsZSxpLHIsbywxKTticmVha319ZnVuY3Rpb24gVjJlKG4pe2xldCB0PW4ucHJldixlPW4saT1uLm5leHQ7aWYoRnIodCxlLGkpPj0wKXJldHVybiExO2xldCByPW4ubmV4dC5uZXh0O2Zvcig7ciE9PW4ucHJldjspe2lmKFcwKHQueCx0LnksZS54LGUueSxpLngsaS55LHIueCxyLnkpJiZGcihyLnByZXYscixyLm5leHQpPj0wKXJldHVybiExO3I9ci5uZXh0fXJldHVybiEwfWZ1bmN0aW9uIEgyZShuLHQsZSxpKXtsZXQgcj1uLnByZXYsbz1uLGE9bi5uZXh0O2lmKEZyKHIsbyxhKT49MClyZXR1cm4hMTtsZXQgYz1yLng+by54P3IueD5hLng/ci54OmEueDpvLng+YS54P28ueDphLngsZD1yLnk+by55P3IueT5hLnk/ci55OmEueTpvLnk+YS55P28ueTphLnksdT15QihyLng8by54P3IueDxhLng/ci54OmEueDpvLng8YS54P28ueDphLngsci55PG8ueT9yLnk8YS55P3IueTphLnk6by55PGEueT9vLnk6YS55LHQsZSxpKSxwPXlCKGMsZCx0LGUsaSksaD1uLnByZXZaLG09bi5uZXh0Wjtmb3IoO2gmJmguej49dSYmbSYmbS56PD1wOyl7aWYoaCE9PW4ucHJldiYmaCE9PW4ubmV4dCYmVzAoci54LHIueSxvLngsby55LGEueCxhLnksaC54LGgueSkmJkZyKGgucHJldixoLGgubmV4dCk+PTB8fChoPWgucHJldlosbSE9PW4ucHJldiYmbSE9PW4ubmV4dCYmVzAoci54LHIueSxvLngsby55LGEueCxhLnksbS54LG0ueSkmJkZyKG0ucHJldixtLG0ubmV4dCk+PTApKXJldHVybiExO209bS5uZXh0Wn1mb3IoO2gmJmguej49dTspe2lmKGghPT1uLnByZXYmJmghPT1uLm5leHQmJlcwKHIueCxyLnksby54LG8ueSxhLngsYS55LGgueCxoLnkpJiZGcihoLnByZXYsaCxoLm5leHQpPj0wKXJldHVybiExO2g9aC5wcmV2Wn1mb3IoO20mJm0uejw9cDspe2lmKG0hPT1uLnByZXYmJm0hPT1uLm5leHQmJlcwKHIueCxyLnksby54LG8ueSxhLngsYS55LG0ueCxtLnkpJiZGcihtLnByZXYsbSxtLm5leHQpPj0wKXJldHVybiExO209bS5uZXh0Wn1yZXR1cm4hMH1mdW5jdGlvbiB6MmUobix0LGUpe2xldCBpPW47ZG97bGV0IHI9aS5wcmV2LG89aS5uZXh0Lm5leHQ7IXRBKHIsbykmJkR0ZShyLGksaS5uZXh0LG8pJiZIeChyLG8pJiZIeChvLHIpJiYodC5wdXNoKHIuaS9lKSx0LnB1c2goaS5pL2UpLHQucHVzaChvLmkvZSksengoaSksengoaS5uZXh0KSxpPW49byksaT1pLm5leHR9d2hpbGUoaSE9PW4pO3JldHVybiBEcChpKX1mdW5jdGlvbiBVMmUobix0LGUsaSxyLG8pe2xldCBhPW47ZG97bGV0IHM9YS5uZXh0Lm5leHQ7Zm9yKDtzIT09YS5wcmV2Oyl7aWYoYS5pIT09cy5pJiZLMmUoYSxzKSl7bGV0IGw9SXRlKGEscyk7cmV0dXJuIGE9RHAoYSxhLm5leHQpLGw9RHAobCxsLm5leHQpLFZ4KGEsdCxlLGkscixvKSx2b2lkIFZ4KGwsdCxlLGkscixvKX1zPXMubmV4dH1hPWEubmV4dH13aGlsZShhIT09bil9ZnVuY3Rpb24gRzJlKG4sdCl7cmV0dXJuIG4ueC10Lnh9ZnVuY3Rpb24gVzJlKG4sdCl7aWYodD1mdW5jdGlvbihuLHQpe2xldCBhLGU9dCxpPW4ueCxyPW4ueSxvPS0xLzA7ZG97aWYocjw9ZS55JiZyPj1lLm5leHQueSYmZS5uZXh0LnkhPT1lLnkpe2xldCBwPWUueCsoci1lLnkpKihlLm5leHQueC1lLngpLyhlLm5leHQueS1lLnkpO2lmKHA8PWkmJnA+byl7aWYobz1wLHA9PT1pKXtpZihyPT09ZS55KXJldHVybiBlO2lmKHI9PT1lLm5leHQueSlyZXR1cm4gZS5uZXh0fWE9ZS54PGUubmV4dC54P2U6ZS5uZXh0fX1lPWUubmV4dH13aGlsZShlIT09dCk7aWYoIWEpcmV0dXJuIG51bGw7aWYoaT09PW8pcmV0dXJuIGE7bGV0IHUscz1hLGw9YS54LGM9YS55LGQ9MS8wO2U9YTtkb3tpPj1lLngmJmUueD49bCYmaSE9PWUueCYmVzAocjxjP2k6byxyLGwsYyxyPGM/bzppLHIsZS54LGUueSkmJih1PU1hdGguYWJzKHItZS55KS8oaS1lLngpLEh4KGUsbikmJih1PGR8fHU9PT1kJiYoZS54PmEueHx8ZS54PT09YS54JiZYMmUoYSxlKSkpJiYoYT1lLGQ9dSkpLGU9ZS5uZXh0fXdoaWxlKGUhPT1zKTtyZXR1cm4gYX0obix0KSx0KXtsZXQgZT1JdGUodCxuKTtEcCh0LHQubmV4dCksRHAoZSxlLm5leHQpfX1mdW5jdGlvbiBYMmUobix0KXtyZXR1cm4gRnIobi5wcmV2LG4sdC5wcmV2KTwwJiZGcih0Lm5leHQsbixuLm5leHQpPDB9ZnVuY3Rpb24geUIobix0LGUsaSxyKXtyZXR1cm4obj0xNDMxNjU1NzY1Jigobj04NTg5OTM0NTkmKChuPTI1MjY0NTEzNSYoKG49MTY3MTE5MzUmKChuPTMyNzY3KihuLWUpKnIpfG48PDgpKXxuPDw0KSl8bjw8MikpfG48PDEpKXwodD0xNDMxNjU1NzY1JigodD04NTg5OTM0NTkmKCh0PTI1MjY0NTEzNSYoKHQ9MTY3MTE5MzUmKCh0PTMyNzY3Kih0LWkpKnIpfHQ8PDgpKXx0PDw0KSl8dDw8MikpfHQ8PDEpKTw8MX1mdW5jdGlvbiBaMmUobil7bGV0IHQ9bixlPW47ZG97KHQueDxlLnh8fHQueD09PWUueCYmdC55PGUueSkmJihlPXQpLHQ9dC5uZXh0fXdoaWxlKHQhPT1uKTtyZXR1cm4gZX1mdW5jdGlvbiBXMChuLHQsZSxpLHIsbyxhLHMpe3JldHVybihyLWEpKih0LXMpLShuLWEpKihvLXMpPj0wJiYobi1hKSooaS1zKS0oZS1hKSoodC1zKT49MCYmKGUtYSkqKG8tcyktKHItYSkqKGktcyk+PTB9ZnVuY3Rpb24gSzJlKG4sdCl7cmV0dXJuIG4ubmV4dC5pIT09dC5pJiZuLnByZXYuaSE9PXQuaSYmIWZ1bmN0aW9uKG4sdCl7bGV0IGU9bjtkb3tpZihlLmkhPT1uLmkmJmUubmV4dC5pIT09bi5pJiZlLmkhPT10LmkmJmUubmV4dC5pIT09dC5pJiZEdGUoZSxlLm5leHQsbix0KSlyZXR1cm4hMDtlPWUubmV4dH13aGlsZShlIT09bik7cmV0dXJuITF9KG4sdCkmJihIeChuLHQpJiZIeCh0LG4pJiZmdW5jdGlvbihuLHQpe2xldCBlPW4saT0hMSxyPShuLngrdC54KS8yLG89KG4ueSt0LnkpLzI7ZG97ZS55Pm8hPWUubmV4dC55Pm8mJmUubmV4dC55IT09ZS55JiZyPChlLm5leHQueC1lLngpKihvLWUueSkvKGUubmV4dC55LWUueSkrZS54JiYoaT0haSksZT1lLm5leHR9d2hpbGUoZSE9PW4pO3JldHVybiBpfShuLHQpJiYoRnIobi5wcmV2LG4sdC5wcmV2KXx8RnIobix0LnByZXYsdCkpfHx0QShuLHQpJiZGcihuLnByZXYsbixuLm5leHQpPjAmJkZyKHQucHJldix0LHQubmV4dCk+MCl9ZnVuY3Rpb24gRnIobix0LGUpe3JldHVybih0Lnktbi55KSooZS54LXQueCktKHQueC1uLngpKihlLnktdC55KX1mdW5jdGlvbiB0QShuLHQpe3JldHVybiBuLng9PT10LngmJm4ueT09PXQueX1mdW5jdGlvbiBEdGUobix0LGUsaSl7bGV0IHI9X0koRnIobix0LGUpKSxvPV9JKEZyKG4sdCxpKSksYT1fSShGcihlLGksbikpLHM9X0koRnIoZSxpLHQpKTtyZXR1cm4hIShyIT09byYmYSE9PXN8fDA9PT1yJiZnSShuLGUsdCl8fDA9PT1vJiZnSShuLGksdCl8fDA9PT1hJiZnSShlLG4saSl8fDA9PT1zJiZnSShlLHQsaSkpfWZ1bmN0aW9uIGdJKG4sdCxlKXtyZXR1cm4gdC54PD1NYXRoLm1heChuLngsZS54KSYmdC54Pj1NYXRoLm1pbihuLngsZS54KSYmdC55PD1NYXRoLm1heChuLnksZS55KSYmdC55Pj1NYXRoLm1pbihuLnksZS55KX1mdW5jdGlvbiBfSShuKXtyZXR1cm4gbj4wPzE6bjwwPy0xOjB9ZnVuY3Rpb24gSHgobix0KXtyZXR1cm4gRnIobi5wcmV2LG4sbi5uZXh0KTwwP0ZyKG4sdCxuLm5leHQpPj0wJiZGcihuLG4ucHJldix0KT49MDpGcihuLHQsbi5wcmV2KTwwfHxGcihuLG4ubmV4dCx0KTwwfWZ1bmN0aW9uIEl0ZShuLHQpe2xldCBlPW5ldyB4QihuLmksbi54LG4ueSksaT1uZXcgeEIodC5pLHQueCx0LnkpLHI9bi5uZXh0LG89dC5wcmV2O3JldHVybiBuLm5leHQ9dCx0LnByZXY9bixlLm5leHQ9cixyLnByZXY9ZSxpLm5leHQ9ZSxlLnByZXY9aSxvLm5leHQ9aSxpLnByZXY9byxpfWZ1bmN0aW9uIEplZShuLHQsZSxpKXtsZXQgcj1uZXcgeEIobix0LGUpO3JldHVybiBpPyhyLm5leHQ9aS5uZXh0LHIucHJldj1pLGkubmV4dC5wcmV2PXIsaS5uZXh0PXIpOihyLnByZXY9cixyLm5leHQ9cikscn1mdW5jdGlvbiB6eChuKXtuLm5leHQucHJldj1uLnByZXYsbi5wcmV2Lm5leHQ9bi5uZXh0LG4ucHJldlomJihuLnByZXZaLm5leHRaPW4ubmV4dFopLG4ubmV4dFomJihuLm5leHRaLnByZXZaPW4ucHJldlopfWZ1bmN0aW9uIHhCKG4sdCxlKXt0aGlzLmk9bix0aGlzLng9dCx0aGlzLnk9ZSx0aGlzLnByZXY9bnVsbCx0aGlzLm5leHQ9bnVsbCx0aGlzLno9bnVsbCx0aGlzLnByZXZaPW51bGwsdGhpcy5uZXh0Wj1udWxsLHRoaXMuc3RlaW5lcj0hMX12YXIgR2M9Y2xhc3N7c3RhdGljIGFyZWEodCl7bGV0IGU9dC5sZW5ndGgsaT0wO2ZvcihsZXQgcj1lLTEsbz0wO288ZTtyPW8rKylpKz10W3JdLngqdFtvXS55LXRbb10ueCp0W3JdLnk7cmV0dXJuLjUqaX1zdGF0aWMgaXNDbG9ja1dpc2UodCl7cmV0dXJuIEdjLmFyZWEodCk8MH1zdGF0aWMgdHJpYW5ndWxhdGVTaGFwZSh0LGUpe2xldCBpPVtdLHI9W10sbz1bXTskZWUodCksZXRlKGksdCk7bGV0IGE9dC5sZW5ndGg7ZS5mb3JFYWNoKCRlZSk7Zm9yKGxldCBsPTA7bDxlLmxlbmd0aDtsKyspci5wdXNoKGEpLGErPWVbbF0ubGVuZ3RoLGV0ZShpLGVbbF0pO2xldCBzPWZ1bmN0aW9uKG4sdCxlPTIpe2xldCBzLGwsYyxkLHUscCxoLGk9dCYmdC5sZW5ndGgscj1pP3RbMF0qZTpuLmxlbmd0aCxvPVR0ZShuLDAscixlLCEwKSxhPVtdO2lmKCFvfHxvLm5leHQ9PT1vLnByZXYpcmV0dXJuIGE7aWYoaSYmKG89ZnVuY3Rpb24obix0LGUsaSl7bGV0IG8sYSxzLGwsYyxyPVtdO2ZvcihvPTAsYT10Lmxlbmd0aDtvPGE7bysrKXM9dFtvXSppLGw9bzxhLTE/dFtvKzFdKmk6bi5sZW5ndGgsYz1UdGUobixzLGwsaSwhMSksYz09PWMubmV4dCYmKGMuc3RlaW5lcj0hMCksci5wdXNoKFoyZShjKSk7Zm9yKHIuc29ydChHMmUpLG89MDtvPHIubGVuZ3RoO28rKylXMmUocltvXSxlKSxlPURwKGUsZS5uZXh0KTtyZXR1cm4gZX0obix0LG8sZSkpLG4ubGVuZ3RoPjgwKmUpe3M9Yz1uWzBdLGw9ZD1uWzFdO2ZvcihsZXQgbT1lO208cjttKz1lKXU9blttXSxwPW5bbSsxXSx1PHMmJihzPXUpLHA8bCYmKGw9cCksdT5jJiYoYz11KSxwPmQmJihkPXApO2g9TWF0aC5tYXgoYy1zLGQtbCksaD0wIT09aD8xL2g6MH1yZXR1cm4gVngobyxhLGUscyxsLGgpLGF9KGkscik7Zm9yKGxldCBsPTA7bDxzLmxlbmd0aDtsKz0zKW8ucHVzaChzLnNsaWNlKGwsbCszKSk7cmV0dXJuIG99fTtmdW5jdGlvbiAkZWUobil7bGV0IHQ9bi5sZW5ndGg7dD4yJiZuW3QtMV0uZXF1YWxzKG5bMF0pJiZuLnBvcCgpfWZ1bmN0aW9uIGV0ZShuLHQpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKW4ucHVzaCh0W2VdLngpLG4ucHVzaCh0W2VdLnkpfXZhciBJcD1jbGFzcyBleHRlbmRzIEdpe2NvbnN0cnVjdG9yKHQ9bmV3IFdkKFtuZXcgJGUoLjUsLjUpLG5ldyAkZSgtLjUsLjUpLG5ldyAkZSgtLjUsLS41KSxuZXcgJGUoLjUsLS41KV0pLGU9e30pe3N1cGVyKCksdGhpcy50eXBlPSJFeHRydWRlR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17c2hhcGVzOnQsb3B0aW9uczplfSx0PUFycmF5LmlzQXJyYXkodCk/dDpbdF07bGV0IGk9dGhpcyxyPVtdLG89W107Zm9yKGxldCBzPTAsbD10Lmxlbmd0aDtzPGw7cysrKWEodFtzXSk7ZnVuY3Rpb24gYShzKXtsZXQgbD1bXSxjPXZvaWQgMCE9PWUuY3VydmVTZWdtZW50cz9lLmN1cnZlU2VnbWVudHM6MTIsZD12b2lkIDAhPT1lLnN0ZXBzP2Uuc3RlcHM6MSx1PXZvaWQgMCE9PWUuZGVwdGg/ZS5kZXB0aDoxLHA9dm9pZCAwPT09ZS5iZXZlbEVuYWJsZWR8fGUuYmV2ZWxFbmFibGVkLGg9dm9pZCAwIT09ZS5iZXZlbFRoaWNrbmVzcz9lLmJldmVsVGhpY2tuZXNzOi4yLG09dm9pZCAwIT09ZS5iZXZlbFNpemU/ZS5iZXZlbFNpemU6aC0uMSxfPXZvaWQgMCE9PWUuYmV2ZWxPZmZzZXQ/ZS5iZXZlbE9mZnNldDowLE09dm9pZCAwIT09ZS5iZXZlbFNlZ21lbnRzP2UuYmV2ZWxTZWdtZW50czozLHk9ZS5leHRydWRlUGF0aCx4PXZvaWQgMCE9PWUuVVZHZW5lcmF0b3I/ZS5VVkdlbmVyYXRvcjp0TmU7dm9pZCAwIT09ZS5hbW91bnQmJihjb25zb2xlLndhcm4oIlRIUkVFLkV4dHJ1ZGVCdWZmZXJHZW9tZXRyeTogYW1vdW50IGhhcyBiZWVuIHJlbmFtZWQgdG8gZGVwdGguIiksdT1lLmFtb3VudCk7bGV0IFIsQixlZSxRLHdlLEk9ITE7eSYmKFI9eS5nZXRTcGFjZWRQb2ludHMoZCksST0hMCxwPSExLEI9eS5jb21wdXRlRnJlbmV0RnJhbWVzKGQsITEpLGVlPW5ldyBLLFE9bmV3IEssd2U9bmV3IEspLHB8fChNPTAsaD0wLG09MCxfPTApO2xldCBRZT1zLmV4dHJhY3RQb2ludHMoYyksQWU9UWUuc2hhcGUsRD1RZS5ob2xlcztpZighR2MuaXNDbG9ja1dpc2UoQWUpKXtBZT1BZS5yZXZlcnNlKCk7Zm9yKGxldCBvZT0wLGF0PUQubGVuZ3RoO29lPGF0O29lKyspe2xldCBZZT1EW29lXTtHYy5pc0Nsb2NrV2lzZShZZSkmJihEW29lXT1ZZS5yZXZlcnNlKCkpfX1sZXQgY2U9R2MudHJpYW5ndWxhdGVTaGFwZShBZSxEKSxoZT1BZTtmb3IobGV0IG9lPTAsYXQ9RC5sZW5ndGg7b2U8YXQ7b2UrKylBZT1BZS5jb25jYXQoRFtvZV0pO2Z1bmN0aW9uIF9lKG9lLGF0LFllKXtyZXR1cm4gYXR8fGNvbnNvbGUuZXJyb3IoIlRIUkVFLkV4dHJ1ZGVHZW9tZXRyeTogdmVjIGRvZXMgbm90IGV4aXN0IiksYXQuY2xvbmUoKS5tdWx0aXBseVNjYWxhcihZZSkuYWRkKG9lKX1sZXQgJD1BZS5sZW5ndGgsZGU9Y2UubGVuZ3RoO2Z1bmN0aW9uIHBlKG9lLGF0LFllKXtsZXQgX3QsdXQsYW4seW49b2UueC1hdC54LHNpPW9lLnktYXQueSxOaT1ZZS54LW9lLngsTGk9WWUueS1vZS55LFk9eW4qeW4rc2kqc2k7aWYoTWF0aC5hYnMoeW4qTGktc2kqTmkpPk51bWJlci5FUFNJTE9OKXtsZXQgSGU9TWF0aC5zcXJ0KFkpLHl0PU1hdGguc3FydChOaSpOaStMaSpMaSksZW49YXQueC1zaS9IZSxMZT1hdC55K3luL0hlLEZ0PSgoWWUueC1MaS95dC1lbikqTGktKFllLnkrTmkveXQtTGUpKk5pKS8oeW4qTGktc2kqTmkpO190PWVuK3luKkZ0LW9lLngsdXQ9TGUrc2kqRnQtb2UueTtsZXQgT3Q9X3QqX3QrdXQqdXQ7aWYoT3Q8PTIpcmV0dXJuIG5ldyAkZShfdCx1dCk7YW49TWF0aC5zcXJ0KE90LzIpfWVsc2V7bGV0IEhlPSExO3luPk51bWJlci5FUFNJTE9OP05pPk51bWJlci5FUFNJTE9OJiYoSGU9ITApOnluPC1OdW1iZXIuRVBTSUxPTj9OaTwtTnVtYmVyLkVQU0lMT04mJihIZT0hMCk6TWF0aC5zaWduKHNpKT09PU1hdGguc2lnbihMaSkmJihIZT0hMCksSGU/KF90PS1zaSx1dD15bixhbj1NYXRoLnNxcnQoWSkpOihfdD15bix1dD1zaSxhbj1NYXRoLnNxcnQoWS8yKSl9cmV0dXJuIG5ldyAkZShfdC9hbix1dC9hbil9bGV0IEdlPVtdO2ZvcihsZXQgb2U9MCxhdD1oZS5sZW5ndGgsWWU9YXQtMSxfdD1vZSsxO29lPGF0O29lKyssWWUrKyxfdCsrKVllPT09YXQmJihZZT0wKSxfdD09PWF0JiYoX3Q9MCksR2Vbb2VdPXBlKGhlW29lXSxoZVtZZV0saGVbX3RdKTtsZXQgRmUsU2U9W10sbHQ9R2UuY29uY2F0KCk7Zm9yKGxldCBvZT0wLGF0PUQubGVuZ3RoO29lPGF0O29lKyspe2xldCBZZT1EW29lXTtGZT1bXTtmb3IobGV0IF90PTAsdXQ9WWUubGVuZ3RoLGFuPXV0LTEseW49X3QrMTtfdDx1dDtfdCsrLGFuKysseW4rKylhbj09PXV0JiYoYW49MCkseW49PT11dCYmKHluPTApLEZlW190XT1wZShZZVtfdF0sWWVbYW5dLFllW3luXSk7U2UucHVzaChGZSksbHQ9bHQuY29uY2F0KEZlKX1mb3IobGV0IG9lPTA7b2U8TTtvZSsrKXtsZXQgYXQ9b2UvTSxZZT1oKk1hdGguY29zKGF0Kk1hdGguUEkvMiksX3Q9bSpNYXRoLnNpbihhdCpNYXRoLlBJLzIpK187Zm9yKGxldCB1dD0wLGFuPWhlLmxlbmd0aDt1dDxhbjt1dCsrKXtsZXQgeW49X2UoaGVbdXRdLEdlW3V0XSxfdCk7d3QoeW4ueCx5bi55LC1ZZSl9Zm9yKGxldCB1dD0wLGFuPUQubGVuZ3RoO3V0PGFuO3V0Kyspe2xldCB5bj1EW3V0XTtGZT1TZVt1dF07Zm9yKGxldCBzaT0wLE5pPXluLmxlbmd0aDtzaTxOaTtzaSsrKXtsZXQgTGk9X2UoeW5bc2ldLEZlW3NpXSxfdCk7d3QoTGkueCxMaS55LC1ZZSl9fX1sZXQgTXQ9bStfO2ZvcihsZXQgb2U9MDtvZTwkO29lKyspe2xldCBhdD1wP19lKEFlW29lXSxsdFtvZV0sTXQpOkFlW29lXTtJPyhRLmNvcHkoQi5ub3JtYWxzWzBdKS5tdWx0aXBseVNjYWxhcihhdC54KSxlZS5jb3B5KEIuYmlub3JtYWxzWzBdKS5tdWx0aXBseVNjYWxhcihhdC55KSx3ZS5jb3B5KFJbMF0pLmFkZChRKS5hZGQoZWUpLHd0KHdlLngsd2UueSx3ZS56KSk6d3QoYXQueCxhdC55LDApfWZvcihsZXQgb2U9MTtvZTw9ZDtvZSsrKWZvcihsZXQgYXQ9MDthdDwkO2F0Kyspe2xldCBZZT1wP19lKEFlW2F0XSxsdFthdF0sTXQpOkFlW2F0XTtJPyhRLmNvcHkoQi5ub3JtYWxzW29lXSkubXVsdGlwbHlTY2FsYXIoWWUueCksZWUuY29weShCLmJpbm9ybWFsc1tvZV0pLm11bHRpcGx5U2NhbGFyKFllLnkpLHdlLmNvcHkoUltvZV0pLmFkZChRKS5hZGQoZWUpLHd0KHdlLngsd2UueSx3ZS56KSk6d3QoWWUueCxZZS55LHUvZCpvZSl9Zm9yKGxldCBvZT1NLTE7b2U+PTA7b2UtLSl7bGV0IGF0PW9lL00sWWU9aCpNYXRoLmNvcyhhdCpNYXRoLlBJLzIpLF90PW0qTWF0aC5zaW4oYXQqTWF0aC5QSS8yKStfO2ZvcihsZXQgdXQ9MCxhbj1oZS5sZW5ndGg7dXQ8YW47dXQrKyl7bGV0IHluPV9lKGhlW3V0XSxHZVt1dF0sX3QpO3d0KHluLngseW4ueSx1K1llKX1mb3IobGV0IHV0PTAsYW49RC5sZW5ndGg7dXQ8YW47dXQrKyl7bGV0IHluPURbdXRdO0ZlPVNlW3V0XTtmb3IobGV0IHNpPTAsTmk9eW4ubGVuZ3RoO3NpPE5pO3NpKyspe2xldCBMaT1fZSh5bltzaV0sRmVbc2ldLF90KTtJP3d0KExpLngsTGkueStSW2QtMV0ueSxSW2QtMV0ueCtZZSk6d3QoTGkueCxMaS55LHUrWWUpfX19ZnVuY3Rpb24gVG4ob2UsYXQpe2xldCBZZT1vZS5sZW5ndGg7Zm9yKDstLVllPj0wOyl7bGV0IF90PVllLHV0PVllLTE7dXQ8MCYmKHV0PW9lLmxlbmd0aC0xKTtmb3IobGV0IGFuPTAseW49ZCsyKk07YW48eW47YW4rKyl7bGV0IHNpPSQqYW4sTmk9JCooYW4rMSk7Q2UoYXQrX3Qrc2ksYXQrdXQrc2ksYXQrdXQrTmksYXQrX3QrTmkpfX19ZnVuY3Rpb24gd3Qob2UsYXQsWWUpe2wucHVzaChvZSksbC5wdXNoKGF0KSxsLnB1c2goWWUpfWZ1bmN0aW9uIG9uKG9lLGF0LFllKXttdChvZSksbXQoYXQpLG10KFllKTtsZXQgX3Q9ci5sZW5ndGgvMyx1dD14LmdlbmVyYXRlVG9wVVYoaSxyLF90LTMsX3QtMixfdC0xKTtodCh1dFswXSksaHQodXRbMV0pLGh0KHV0WzJdKX1mdW5jdGlvbiBDZShvZSxhdCxZZSxfdCl7bXQob2UpLG10KGF0KSxtdChfdCksbXQoYXQpLG10KFllKSxtdChfdCk7bGV0IHV0PXIubGVuZ3RoLzMsYW49eC5nZW5lcmF0ZVNpZGVXYWxsVVYoaSxyLHV0LTYsdXQtMyx1dC0yLHV0LTEpO2h0KGFuWzBdKSxodChhblsxXSksaHQoYW5bM10pLGh0KGFuWzFdKSxodChhblsyXSksaHQoYW5bM10pfWZ1bmN0aW9uIG10KG9lKXtyLnB1c2gobFszKm9lKzBdKSxyLnB1c2gobFszKm9lKzFdKSxyLnB1c2gobFszKm9lKzJdKX1mdW5jdGlvbiBodChvZSl7by5wdXNoKG9lLngpLG8ucHVzaChvZS55KX0oZnVuY3Rpb24oKXtsZXQgb2U9ci5sZW5ndGgvMztpZihwKXtsZXQgYXQ9MCxZZT0kKmF0O2ZvcihsZXQgX3Q9MDtfdDxkZTtfdCsrKXtsZXQgdXQ9Y2VbX3RdO29uKHV0WzJdK1llLHV0WzFdK1llLHV0WzBdK1llKX1hdD1kKzIqTSxZZT0kKmF0O2ZvcihsZXQgX3Q9MDtfdDxkZTtfdCsrKXtsZXQgdXQ9Y2VbX3RdO29uKHV0WzBdK1llLHV0WzFdK1llLHV0WzJdK1llKX19ZWxzZXtmb3IobGV0IGF0PTA7YXQ8ZGU7YXQrKyl7bGV0IFllPWNlW2F0XTtvbihZZVsyXSxZZVsxXSxZZVswXSl9Zm9yKGxldCBhdD0wO2F0PGRlO2F0Kyspe2xldCBZZT1jZVthdF07b24oWWVbMF0rJCpkLFllWzFdKyQqZCxZZVsyXSskKmQpfX1pLmFkZEdyb3VwKG9lLHIubGVuZ3RoLzMtb2UsMCl9KSgpLGZ1bmN0aW9uKCl7bGV0IG9lPXIubGVuZ3RoLzMsYXQ9MDtUbihoZSxhdCksYXQrPWhlLmxlbmd0aDtmb3IobGV0IFllPTAsX3Q9RC5sZW5ndGg7WWU8X3Q7WWUrKyl7bGV0IHV0PURbWWVdO1RuKHV0LGF0KSxhdCs9dXQubGVuZ3RofWkuYWRkR3JvdXAob2Usci5sZW5ndGgvMy1vZSwxKX0oKX10aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBOcihyLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBOcihvLDIpKSx0aGlzLmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCl9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIGZ1bmN0aW9uKG4sdCxlKXtpZihlLnNoYXBlcz1bXSxBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgaT0wLHI9bi5sZW5ndGg7aTxyO2krKyllLnNoYXBlcy5wdXNoKG5baV0udXVpZCk7ZWxzZSBlLnNoYXBlcy5wdXNoKG4udXVpZCk7cmV0dXJuIHZvaWQgMCE9PXQuZXh0cnVkZVBhdGgmJihlLm9wdGlvbnMuZXh0cnVkZVBhdGg9dC5leHRydWRlUGF0aC50b0pTT04oKSksZX0odGhpcy5wYXJhbWV0ZXJzLnNoYXBlcyx0aGlzLnBhcmFtZXRlcnMub3B0aW9ucyx0KX1zdGF0aWMgZnJvbUpTT04odCxlKXtsZXQgaT1bXTtmb3IobGV0IG89MCxhPXQuc2hhcGVzLmxlbmd0aDtvPGE7bysrKWkucHVzaChlW3Quc2hhcGVzW29dXSk7bGV0IHI9dC5vcHRpb25zLmV4dHJ1ZGVQYXRoO3JldHVybiB2b2lkIDAhPT1yJiYodC5vcHRpb25zLmV4dHJ1ZGVQYXRoPShuZXcgRXRlW3IudHlwZV0pLmZyb21KU09OKHIpKSxuZXcgSXAoaSx0Lm9wdGlvbnMpfX0sdE5lPXtnZW5lcmF0ZVRvcFVWOmZ1bmN0aW9uKG4sdCxlLGkscil7bGV0IHM9dFszKmldLGw9dFszKmkrMV0sYz10WzMqcl0sZD10WzMqcisxXTtyZXR1cm5bbmV3ICRlKHRbMyplXSx0WzMqZSsxXSksbmV3ICRlKHMsbCksbmV3ICRlKGMsZCldfSxnZW5lcmF0ZVNpZGVXYWxsVVY6ZnVuY3Rpb24obix0LGUsaSxyLG8pe2xldCBhPXRbMyplXSxzPXRbMyplKzFdLGw9dFszKmUrMl0sYz10WzMqaV0sZD10WzMqaSsxXSx1PXRbMyppKzJdLHA9dFszKnJdLGg9dFszKnIrMV0sbT10WzMqcisyXSxfPXRbMypvXSxNPXRbMypvKzFdLHk9dFszKm8rMl07cmV0dXJuIE1hdGguYWJzKHMtZCk8TWF0aC5hYnMoYS1jKT9bbmV3ICRlKGEsMS1sKSxuZXcgJGUoYywxLXUpLG5ldyAkZShwLDEtbSksbmV3ICRlKF8sMS15KV06W25ldyAkZShzLDEtbCksbmV3ICRlKGQsMS11KSxuZXcgJGUoaCwxLW0pLG5ldyAkZShNLDEteSldfX0sd209Y2xhc3MgZXh0ZW5kcyBHaXtjb25zdHJ1Y3Rvcih0PW5ldyBXZChbbmV3ICRlKDAsLjUpLG5ldyAkZSgtLjUsLS41KSxuZXcgJGUoLjUsLS41KV0pLGU9MTIpe3N1cGVyKCksdGhpcy50eXBlPSJTaGFwZUdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3NoYXBlczp0LGN1cnZlU2VnbWVudHM6ZX07bGV0IGk9W10scj1bXSxvPVtdLGE9W10scz0wLGw9MDtpZighMT09PUFycmF5LmlzQXJyYXkodCkpYyh0KTtlbHNlIGZvcihsZXQgZD0wO2Q8dC5sZW5ndGg7ZCsrKWModFtkXSksdGhpcy5hZGRHcm91cChzLGwsZCkscys9bCxsPTA7ZnVuY3Rpb24gYyhkKXtsZXQgdT1yLmxlbmd0aC8zLHA9ZC5leHRyYWN0UG9pbnRzKGUpLGg9cC5zaGFwZSxtPXAuaG9sZXM7ITE9PT1HYy5pc0Nsb2NrV2lzZShoKSYmKGg9aC5yZXZlcnNlKCkpO2ZvcihsZXQgTT0wLHk9bS5sZW5ndGg7TTx5O00rKyl7bGV0IHg9bVtNXTshMD09PUdjLmlzQ2xvY2tXaXNlKHgpJiYobVtNXT14LnJldmVyc2UoKSl9bGV0IF89R2MudHJpYW5ndWxhdGVTaGFwZShoLG0pO2ZvcihsZXQgTT0wLHk9bS5sZW5ndGg7TTx5O00rKyloPWguY29uY2F0KG1bTV0pO2ZvcihsZXQgTT0wLHk9aC5sZW5ndGg7TTx5O00rKyl7bGV0IHg9aFtNXTtyLnB1c2goeC54LHgueSwwKSxvLnB1c2goMCwwLDEpLGEucHVzaCh4LngseC55KX1mb3IobGV0IE09MCx5PV8ubGVuZ3RoO008eTtNKyspe2xldCB4PV9bTV07aS5wdXNoKHhbMF0rdSx4WzFdK3UseFsyXSt1KSxsKz0zfX10aGlzLnNldEluZGV4KGkpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IE5yKHIsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyBOcihvLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBOcihhLDIpKX10b0pTT04oKXtsZXQgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gZnVuY3Rpb24obix0KXtpZih0LnNoYXBlcz1bXSxBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgZT0wLGk9bi5sZW5ndGg7ZTxpO2UrKyl0LnNoYXBlcy5wdXNoKG5bZV0udXVpZCk7ZWxzZSB0LnNoYXBlcy5wdXNoKG4udXVpZCk7cmV0dXJuIHR9KHRoaXMucGFyYW1ldGVycy5zaGFwZXMsdCl9c3RhdGljIGZyb21KU09OKHQsZSl7bGV0IGk9W107Zm9yKGxldCByPTAsbz10LnNoYXBlcy5sZW5ndGg7cjxvO3IrKylpLnB1c2goZVt0LnNoYXBlc1tyXV0pO3JldHVybiBuZXcgd20oaSx0LmN1cnZlU2VnbWVudHMpfX07KGNsYXNzIGV4dGVuZHMgRm97Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNoYWRvd01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBzbigwKSx0aGlzLnRyYW5zcGFyZW50PSEwLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXN9fSkucHJvdG90eXBlLmlzU2hhZG93TWF0ZXJpYWw9ITA7dmFyIFVJPWNsYXNzIGV4dGVuZHMgRm97Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmRlZmluZXM9e1NUQU5EQVJEOiIifSx0aGlzLnR5cGU9Ik1lc2hTdGFuZGFyZE1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBzbigxNjc3NzIxNSksdGhpcy5yb3VnaG5lc3M9MSx0aGlzLm1ldGFsbmVzcz0wLHRoaXMubWFwPW51bGwsdGhpcy5saWdodE1hcD1udWxsLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9MSx0aGlzLmFvTWFwPW51bGwsdGhpcy5hb01hcEludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmU9bmV3IHNuKDApLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlTWFwPW51bGwsdGhpcy5idW1wTWFwPW51bGwsdGhpcy5idW1wU2NhbGU9MSx0aGlzLm5vcm1hbE1hcD1udWxsLHRoaXMubm9ybWFsTWFwVHlwZT1jXyx0aGlzLm5vcm1hbFNjYWxlPW5ldyAkZSgxLDEpLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMucm91Z2huZXNzTWFwPW51bGwsdGhpcy5tZXRhbG5lc3NNYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5lbnZNYXA9bnVsbCx0aGlzLmVudk1hcEludGVuc2l0eT0xLHRoaXMucmVmcmFjdGlvblJhdGlvPS45OCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMud2lyZWZyYW1lTGluZWNhcD0icm91bmQiLHRoaXMud2lyZWZyYW1lTGluZWpvaW49InJvdW5kIix0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIn0sdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMucm91Z2huZXNzPXQucm91Z2huZXNzLHRoaXMubWV0YWxuZXNzPXQubWV0YWxuZXNzLHRoaXMubWFwPXQubWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLmVtaXNzaXZlLmNvcHkodC5lbWlzc2l2ZSksdGhpcy5lbWlzc2l2ZU1hcD10LmVtaXNzaXZlTWFwLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9dC5lbWlzc2l2ZUludGVuc2l0eSx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMucm91Z2huZXNzTWFwPXQucm91Z2huZXNzTWFwLHRoaXMubWV0YWxuZXNzTWFwPXQubWV0YWxuZXNzTWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmVudk1hcD10LmVudk1hcCx0aGlzLmVudk1hcEludGVuc2l0eT10LmVudk1hcEludGVuc2l0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319O1VJLnByb3RvdHlwZS5pc01lc2hTdGFuZGFyZE1hdGVyaWFsPSEwLGNsYXNzIGV4dGVuZHMgVUl7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmRlZmluZXM9e1NUQU5EQVJEOiIiLFBIWVNJQ0FMOiIifSx0aGlzLnR5cGU9Ik1lc2hQaHlzaWNhbE1hdGVyaWFsIix0aGlzLmNsZWFyY29hdE1hcD1udWxsLHRoaXMuY2xlYXJjb2F0Um91Z2huZXNzPTAsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXA9bnVsbCx0aGlzLmNsZWFyY29hdE5vcm1hbFNjYWxlPW5ldyAkZSgxLDEpLHRoaXMuY2xlYXJjb2F0Tm9ybWFsTWFwPW51bGwsdGhpcy5pb3I9MS41LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJyZWZsZWN0aXZpdHkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZXMoMi41Kih0aGlzLmlvci0xKS8odGhpcy5pb3IrMSksMCwxKX0sc2V0OmZ1bmN0aW9uKGUpe3RoaXMuaW9yPSgxKy40KmUpLygxLS40KmUpfX0pLHRoaXMuc2hlZW5Db2xvcj1uZXcgc24oMCksdGhpcy5zaGVlbkNvbG9yTWFwPW51bGwsdGhpcy5zaGVlblJvdWdobmVzcz0xLHRoaXMuc2hlZW5Sb3VnaG5lc3NNYXA9bnVsbCx0aGlzLnRyYW5zbWlzc2lvbk1hcD1udWxsLHRoaXMudGhpY2tuZXNzPTAsdGhpcy50aGlja25lc3NNYXA9bnVsbCx0aGlzLmF0dGVudWF0aW9uRGlzdGFuY2U9MCx0aGlzLmF0dGVudWF0aW9uQ29sb3I9bmV3IHNuKDEsMSwxKSx0aGlzLnNwZWN1bGFySW50ZW5zaXR5PTEsdGhpcy5zcGVjdWxhckludGVuc2l0eU1hcD1udWxsLHRoaXMuc3BlY3VsYXJDb2xvcj1uZXcgc24oMSwxLDEpLHRoaXMuc3BlY3VsYXJDb2xvck1hcD1udWxsLHRoaXMuX3NoZWVuPTAsdGhpcy5fY2xlYXJjb2F0PTAsdGhpcy5fdHJhbnNtaXNzaW9uPTAsdGhpcy5zZXRWYWx1ZXModCl9Z2V0IHNoZWVuKCl7cmV0dXJuIHRoaXMuX3NoZWVufXNldCBzaGVlbih0KXt0aGlzLl9zaGVlbj4wIT10PjAmJnRoaXMudmVyc2lvbisrLHRoaXMuX3NoZWVuPXR9Z2V0IGNsZWFyY29hdCgpe3JldHVybiB0aGlzLl9jbGVhcmNvYXR9c2V0IGNsZWFyY29hdCh0KXt0aGlzLl9jbGVhcmNvYXQ+MCE9dD4wJiZ0aGlzLnZlcnNpb24rKyx0aGlzLl9jbGVhcmNvYXQ9dH1nZXQgdHJhbnNtaXNzaW9uKCl7cmV0dXJuIHRoaXMuX3RyYW5zbWlzc2lvbn1zZXQgdHJhbnNtaXNzaW9uKHQpe3RoaXMuX3RyYW5zbWlzc2lvbj4wIT10PjAmJnRoaXMudmVyc2lvbisrLHRoaXMuX3RyYW5zbWlzc2lvbj10fWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIixQSFlTSUNBTDoiIn0sdGhpcy5jbGVhcmNvYXQ9dC5jbGVhcmNvYXQsdGhpcy5jbGVhcmNvYXRNYXA9dC5jbGVhcmNvYXRNYXAsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3M9dC5jbGVhcmNvYXRSb3VnaG5lc3MsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXA9dC5jbGVhcmNvYXRSb3VnaG5lc3NNYXAsdGhpcy5jbGVhcmNvYXROb3JtYWxNYXA9dC5jbGVhcmNvYXROb3JtYWxNYXAsdGhpcy5jbGVhcmNvYXROb3JtYWxTY2FsZS5jb3B5KHQuY2xlYXJjb2F0Tm9ybWFsU2NhbGUpLHRoaXMuaW9yPXQuaW9yLHRoaXMuc2hlZW49dC5zaGVlbix0aGlzLnNoZWVuQ29sb3IuY29weSh0LnNoZWVuQ29sb3IpLHRoaXMuc2hlZW5Db2xvck1hcD10LnNoZWVuQ29sb3JNYXAsdGhpcy5zaGVlblJvdWdobmVzcz10LnNoZWVuUm91Z2huZXNzLHRoaXMuc2hlZW5Sb3VnaG5lc3NNYXA9dC5zaGVlblJvdWdobmVzc01hcCx0aGlzLnRyYW5zbWlzc2lvbj10LnRyYW5zbWlzc2lvbix0aGlzLnRyYW5zbWlzc2lvbk1hcD10LnRyYW5zbWlzc2lvbk1hcCx0aGlzLnRoaWNrbmVzcz10LnRoaWNrbmVzcyx0aGlzLnRoaWNrbmVzc01hcD10LnRoaWNrbmVzc01hcCx0aGlzLmF0dGVudWF0aW9uRGlzdGFuY2U9dC5hdHRlbnVhdGlvbkRpc3RhbmNlLHRoaXMuYXR0ZW51YXRpb25Db2xvci5jb3B5KHQuYXR0ZW51YXRpb25Db2xvciksdGhpcy5zcGVjdWxhckludGVuc2l0eT10LnNwZWN1bGFySW50ZW5zaXR5LHRoaXMuc3BlY3VsYXJJbnRlbnNpdHlNYXA9dC5zcGVjdWxhckludGVuc2l0eU1hcCx0aGlzLnNwZWN1bGFyQ29sb3IuY29weSh0LnNwZWN1bGFyQ29sb3IpLHRoaXMuc3BlY3VsYXJDb2xvck1hcD10LnNwZWN1bGFyQ29sb3JNYXAsdGhpc319LnByb3RvdHlwZS5pc01lc2hQaHlzaWNhbE1hdGVyaWFsPSEwLGNsYXNzIGV4dGVuZHMgRm97Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2hQaG9uZ01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBzbigxNjc3NzIxNSksdGhpcy5zcGVjdWxhcj1uZXcgc24oMTExODQ4MSksdGhpcy5zaGluaW5lc3M9MzAsdGhpcy5tYXA9bnVsbCx0aGlzLmxpZ2h0TWFwPW51bGwsdGhpcy5saWdodE1hcEludGVuc2l0eT0xLHRoaXMuYW9NYXA9bnVsbCx0aGlzLmFvTWFwSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZT1uZXcgc24oMCksdGhpcy5lbWlzc2l2ZUludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmVNYXA9bnVsbCx0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPWNfLHRoaXMubm9ybWFsU2NhbGU9bmV3ICRlKDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy5zcGVjdWxhck1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmVudk1hcD1udWxsLHRoaXMuY29tYmluZT1LSSx0aGlzLnJlZmxlY3Rpdml0eT0xLHRoaXMucmVmcmFjdGlvblJhdGlvPS45OCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMud2lyZWZyYW1lTGluZWNhcD0icm91bmQiLHRoaXMud2lyZWZyYW1lTGluZWpvaW49InJvdW5kIix0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMuc3BlY3VsYXIuY29weSh0LnNwZWN1bGFyKSx0aGlzLnNoaW5pbmVzcz10LnNoaW5pbmVzcyx0aGlzLm1hcD10Lm1hcCx0aGlzLmxpZ2h0TWFwPXQubGlnaHRNYXAsdGhpcy5saWdodE1hcEludGVuc2l0eT10LmxpZ2h0TWFwSW50ZW5zaXR5LHRoaXMuYW9NYXA9dC5hb01hcCx0aGlzLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHksdGhpcy5lbWlzc2l2ZS5jb3B5KHQuZW1pc3NpdmUpLHRoaXMuZW1pc3NpdmVNYXA9dC5lbWlzc2l2ZU1hcCx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PXQuZW1pc3NpdmVJbnRlbnNpdHksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLnNwZWN1bGFyTWFwPXQuc3BlY3VsYXJNYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZW52TWFwPXQuZW52TWFwLHRoaXMuY29tYmluZT10LmNvbWJpbmUsdGhpcy5yZWZsZWN0aXZpdHk9dC5yZWZsZWN0aXZpdHksdGhpcy5yZWZyYWN0aW9uUmF0aW89dC5yZWZyYWN0aW9uUmF0aW8sdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCx0aGlzLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4sdGhpcy5mbGF0U2hhZGluZz10LmZsYXRTaGFkaW5nLHRoaXN9fS5wcm90b3R5cGUuaXNNZXNoUGhvbmdNYXRlcmlhbD0hMCxjbGFzcyBleHRlbmRzIEZve2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5kZWZpbmVzPXtUT09OOiIifSx0aGlzLnR5cGU9Ik1lc2hUb29uTWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IHNuKDE2Nzc3MjE1KSx0aGlzLm1hcD1udWxsLHRoaXMuZ3JhZGllbnRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwPW51bGwsdGhpcy5saWdodE1hcEludGVuc2l0eT0xLHRoaXMuYW9NYXA9bnVsbCx0aGlzLmFvTWFwSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZT1uZXcgc24oMCksdGhpcy5lbWlzc2l2ZUludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmVNYXA9bnVsbCx0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPWNfLHRoaXMubm9ybWFsU2NhbGU9bmV3ICRlKDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy53aXJlZnJhbWVMaW5lY2FwPSJyb3VuZCIsdGhpcy53aXJlZnJhbWVMaW5lam9pbj0icm91bmQiLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMuZ3JhZGllbnRNYXA9dC5ncmFkaWVudE1hcCx0aGlzLmxpZ2h0TWFwPXQubGlnaHRNYXAsdGhpcy5saWdodE1hcEludGVuc2l0eT10LmxpZ2h0TWFwSW50ZW5zaXR5LHRoaXMuYW9NYXA9dC5hb01hcCx0aGlzLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHksdGhpcy5lbWlzc2l2ZS5jb3B5KHQuZW1pc3NpdmUpLHRoaXMuZW1pc3NpdmVNYXA9dC5lbWlzc2l2ZU1hcCx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PXQuZW1pc3NpdmVJbnRlbnNpdHksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCx0aGlzLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4sdGhpc319LnByb3RvdHlwZS5pc01lc2hUb29uTWF0ZXJpYWw9ITAsY2xhc3MgZXh0ZW5kcyBGb3tjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaE5vcm1hbE1hdGVyaWFsIix0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPWNfLHRoaXMubm9ybWFsU2NhbGU9bmV3ICRlKDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLmZvZz0hMSx0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319LnByb3RvdHlwZS5pc01lc2hOb3JtYWxNYXRlcmlhbD0hMCxjbGFzcyBleHRlbmRzIEZve2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoTGFtYmVydE1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBzbigxNjc3NzIxNSksdGhpcy5tYXA9bnVsbCx0aGlzLmxpZ2h0TWFwPW51bGwsdGhpcy5saWdodE1hcEludGVuc2l0eT0xLHRoaXMuYW9NYXA9bnVsbCx0aGlzLmFvTWFwSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZT1uZXcgc24oMCksdGhpcy5lbWlzc2l2ZUludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmVNYXA9bnVsbCx0aGlzLnNwZWN1bGFyTWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZW52TWFwPW51bGwsdGhpcy5jb21iaW5lPUtJLHRoaXMucmVmbGVjdGl2aXR5PTEsdGhpcy5yZWZyYWN0aW9uUmF0aW89Ljk4LHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy53aXJlZnJhbWVMaW5lY2FwPSJyb3VuZCIsdGhpcy53aXJlZnJhbWVMaW5lam9pbj0icm91bmQiLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLmVtaXNzaXZlLmNvcHkodC5lbWlzc2l2ZSksdGhpcy5lbWlzc2l2ZU1hcD10LmVtaXNzaXZlTWFwLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9dC5lbWlzc2l2ZUludGVuc2l0eSx0aGlzLnNwZWN1bGFyTWFwPXQuc3BlY3VsYXJNYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZW52TWFwPXQuZW52TWFwLHRoaXMuY29tYmluZT10LmNvbWJpbmUsdGhpcy5yZWZsZWN0aXZpdHk9dC5yZWZsZWN0aXZpdHksdGhpcy5yZWZyYWN0aW9uUmF0aW89dC5yZWZyYWN0aW9uUmF0aW8sdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCx0aGlzLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4sdGhpc319LnByb3RvdHlwZS5pc01lc2hMYW1iZXJ0TWF0ZXJpYWw9ITAsY2xhc3MgZXh0ZW5kcyBGb3tjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuZGVmaW5lcz17TUFUQ0FQOiIifSx0aGlzLnR5cGU9Ik1lc2hNYXRjYXBNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgc24oMTY3NzcyMTUpLHRoaXMubWF0Y2FwPW51bGwsdGhpcy5tYXA9bnVsbCx0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPWNfLHRoaXMubm9ybWFsU2NhbGU9bmV3ICRlKDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZmxhdFNoYWRpbmc9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRlZmluZXM9e01BVENBUDoiIn0sdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWF0Y2FwPXQubWF0Y2FwLHRoaXMubWFwPXQubWFwLHRoaXMuYnVtcE1hcD10LmJ1bXBNYXAsdGhpcy5idW1wU2NhbGU9dC5idW1wU2NhbGUsdGhpcy5ub3JtYWxNYXA9dC5ub3JtYWxNYXAsdGhpcy5ub3JtYWxNYXBUeXBlPXQubm9ybWFsTWFwVHlwZSx0aGlzLm5vcm1hbFNjYWxlLmNvcHkodC5ub3JtYWxTY2FsZSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9dC5kaXNwbGFjZW1lbnRNYXAsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT10LmRpc3BsYWNlbWVudFNjYWxlLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZmxhdFNoYWRpbmc9dC5mbGF0U2hhZGluZyx0aGlzfX0ucHJvdG90eXBlLmlzTWVzaE1hdGNhcE1hdGVyaWFsPSEwLGNsYXNzIGV4dGVuZHMgR2R7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IkxpbmVEYXNoZWRNYXRlcmlhbCIsdGhpcy5zY2FsZT0xLHRoaXMuZGFzaFNpemU9Myx0aGlzLmdhcFNpemU9MSx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuc2NhbGU9dC5zY2FsZSx0aGlzLmRhc2hTaXplPXQuZGFzaFNpemUsdGhpcy5nYXBTaXplPXQuZ2FwU2l6ZSx0aGlzfX0ucHJvdG90eXBlLmlzTGluZURhc2hlZE1hdGVyaWFsPSEwO3ZhciBJcj17YXJyYXlTbGljZTpmdW5jdGlvbihuLHQsZSl7cmV0dXJuIElyLmlzVHlwZWRBcnJheShuKT9uZXcgbi5jb25zdHJ1Y3RvcihuLnN1YmFycmF5KHQsdm9pZCAwIT09ZT9lOm4ubGVuZ3RoKSk6bi5zbGljZSh0LGUpfSxjb252ZXJ0QXJyYXk6ZnVuY3Rpb24obix0LGUpe3JldHVybiFufHwhZSYmbi5jb25zdHJ1Y3Rvcj09PXQ/bjoibnVtYmVyIj09dHlwZW9mIHQuQllURVNfUEVSX0VMRU1FTlQ/bmV3IHQobik6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobil9LGlzVHlwZWRBcnJheTpmdW5jdGlvbihuKXtyZXR1cm4gQXJyYXlCdWZmZXIuaXNWaWV3KG4pJiYhKG4gaW5zdGFuY2VvZiBEYXRhVmlldyl9LGdldEtleWZyYW1lT3JkZXI6ZnVuY3Rpb24obil7bGV0IGU9bi5sZW5ndGgsaT1uZXcgQXJyYXkoZSk7Zm9yKGxldCByPTA7ciE9PWU7KytyKWlbcl09cjtyZXR1cm4gaS5zb3J0KGZ1bmN0aW9uKHIsbyl7cmV0dXJuIG5bcl0tbltvXX0pLGl9LHNvcnRlZEFycmF5OmZ1bmN0aW9uKG4sdCxlKXtsZXQgaT1uLmxlbmd0aCxyPW5ldyBuLmNvbnN0cnVjdG9yKGkpO2ZvcihsZXQgbz0wLGE9MDthIT09aTsrK28pe2xldCBzPWVbb10qdDtmb3IobGV0IGw9MDtsIT09dDsrK2wpclthKytdPW5bcytsXX1yZXR1cm4gcn0sZmxhdHRlbkpTT046ZnVuY3Rpb24obix0LGUsaSl7bGV0IHI9MSxvPW5bMF07Zm9yKDt2b2lkIDAhPT1vJiZ2b2lkIDA9PT1vW2ldOylvPW5bcisrXTtpZih2b2lkIDA9PT1vKXJldHVybjtsZXQgYT1vW2ldO2lmKHZvaWQgMCE9PWEpaWYoQXJyYXkuaXNBcnJheShhKSlkb3thPW9baV0sdm9pZCAwIT09YSYmKHQucHVzaChvLnRpbWUpLGUucHVzaC5hcHBseShlLGEpKSxvPW5bcisrXX13aGlsZSh2b2lkIDAhPT1vKTtlbHNlIGlmKHZvaWQgMCE9PWEudG9BcnJheSlkb3thPW9baV0sdm9pZCAwIT09YSYmKHQucHVzaChvLnRpbWUpLGEudG9BcnJheShlLGUubGVuZ3RoKSksbz1uW3IrK119d2hpbGUodm9pZCAwIT09byk7ZWxzZSBkb3thPW9baV0sdm9pZCAwIT09YSYmKHQucHVzaChvLnRpbWUpLGUucHVzaChhKSksbz1uW3IrK119d2hpbGUodm9pZCAwIT09byl9LHN1YmNsaXA6ZnVuY3Rpb24obix0LGUsaSxyPTMwKXtsZXQgbz1uLmNsb25lKCk7by5uYW1lPXQ7bGV0IGE9W107Zm9yKGxldCBsPTA7bDxvLnRyYWNrcy5sZW5ndGg7KytsKXtsZXQgYz1vLnRyYWNrc1tsXSxkPWMuZ2V0VmFsdWVTaXplKCksdT1bXSxwPVtdO2ZvcihsZXQgaD0wO2g8Yy50aW1lcy5sZW5ndGg7KytoKXtsZXQgbT1jLnRpbWVzW2hdKnI7aWYoIShtPGV8fG0+PWkpKXt1LnB1c2goYy50aW1lc1toXSk7Zm9yKGxldCBfPTA7XzxkOysrXylwLnB1c2goYy52YWx1ZXNbaCpkK19dKX19MCE9PXUubGVuZ3RoJiYoYy50aW1lcz1Jci5jb252ZXJ0QXJyYXkodSxjLnRpbWVzLmNvbnN0cnVjdG9yKSxjLnZhbHVlcz1Jci5jb252ZXJ0QXJyYXkocCxjLnZhbHVlcy5jb25zdHJ1Y3RvciksYS5wdXNoKGMpKX1vLnRyYWNrcz1hO2xldCBzPTEvMDtmb3IobGV0IGw9MDtsPG8udHJhY2tzLmxlbmd0aDsrK2wpcz5vLnRyYWNrc1tsXS50aW1lc1swXSYmKHM9by50cmFja3NbbF0udGltZXNbMF0pO2ZvcihsZXQgbD0wO2w8by50cmFja3MubGVuZ3RoOysrbClvLnRyYWNrc1tsXS5zaGlmdCgtMSpzKTtyZXR1cm4gby5yZXNldER1cmF0aW9uKCksb30sbWFrZUNsaXBBZGRpdGl2ZTpmdW5jdGlvbihuLHQ9MCxlPW4saT0zMCl7aTw9MCYmKGk9MzApO2xldCByPWUudHJhY2tzLmxlbmd0aCxvPXQvaTtmb3IobGV0IGE9MDthPHI7KythKXtsZXQgcz1lLnRyYWNrc1thXSxsPXMuVmFsdWVUeXBlTmFtZTtpZigiYm9vbCI9PT1sfHwic3RyaW5nIj09PWwpY29udGludWU7bGV0IGM9bi50cmFja3MuZmluZChmdW5jdGlvbih5KXtyZXR1cm4geS5uYW1lPT09cy5uYW1lJiZ5LlZhbHVlVHlwZU5hbWU9PT1sfSk7aWYodm9pZCAwPT09Yyljb250aW51ZTtsZXQgZD0wLHU9cy5nZXRWYWx1ZVNpemUoKTtzLmNyZWF0ZUludGVycG9sYW50LmlzSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kR0xURkN1YmljU3BsaW5lJiYoZD11LzMpO2xldCBwPTAsaD1jLmdldFZhbHVlU2l6ZSgpO2MuY3JlYXRlSW50ZXJwb2xhbnQuaXNJbnRlcnBvbGFudEZhY3RvcnlNZXRob2RHTFRGQ3ViaWNTcGxpbmUmJihwPWgvMyk7bGV0IF8sbT1zLnRpbWVzLmxlbmd0aC0xO2lmKG88PXMudGltZXNbMF0pXz1Jci5hcnJheVNsaWNlKHMudmFsdWVzLGQsdS1kKTtlbHNlIGlmKG8+PXMudGltZXNbbV0pe2xldCB5PW0qdStkO189SXIuYXJyYXlTbGljZShzLnZhbHVlcyx5LHkrdS1kKX1lbHNle2xldCB5PXMuY3JlYXRlSW50ZXJwb2xhbnQoKSx4PWQsUj11LWQ7eS5ldmFsdWF0ZShvKSxfPUlyLmFycmF5U2xpY2UoeS5yZXN1bHRCdWZmZXIseCxSKX0icXVhdGVybmlvbiI9PT1sJiYobmV3IG9hKS5mcm9tQXJyYXkoXykubm9ybWFsaXplKCkuY29uanVnYXRlKCkudG9BcnJheShfKTtsZXQgTT1jLnRpbWVzLmxlbmd0aDtmb3IobGV0IHk9MDt5PE07Kyt5KXtsZXQgeD15KmgrcDtpZigicXVhdGVybmlvbiI9PT1sKW9hLm11bHRpcGx5UXVhdGVybmlvbnNGbGF0KGMudmFsdWVzLHgsXywwLGMudmFsdWVzLHgpO2Vsc2V7bGV0IFI9aC0yKnA7Zm9yKGxldCBJPTA7STxSOysrSSljLnZhbHVlc1t4K0ldLT1fW0ldfX19cmV0dXJuIG4uYmxlbmRNb2RlPTI1MDEsbn19LFdjPWNsYXNze2NvbnN0cnVjdG9yKHQsZSxpLHIpe3RoaXMucGFyYW1ldGVyUG9zaXRpb25zPXQsdGhpcy5fY2FjaGVkSW5kZXg9MCx0aGlzLnJlc3VsdEJ1ZmZlcj12b2lkIDAhPT1yP3I6bmV3IGUuY29uc3RydWN0b3IoaSksdGhpcy5zYW1wbGVWYWx1ZXM9ZSx0aGlzLnZhbHVlU2l6ZT1pLHRoaXMuc2V0dGluZ3M9bnVsbCx0aGlzLkRlZmF1bHRTZXR0aW5nc189e319ZXZhbHVhdGUodCl7bGV0IGU9dGhpcy5wYXJhbWV0ZXJQb3NpdGlvbnMsaT10aGlzLl9jYWNoZWRJbmRleCxyPWVbaV0sbz1lW2ktMV07ZTp7dDp7bGV0IGE7bjp7aTppZighKHQ8cikpe2ZvcihsZXQgcz1pKzI7Oyl7aWYodm9pZCAwPT09cil7aWYodDxvKWJyZWFrIGk7cmV0dXJuIGk9ZS5sZW5ndGgsdGhpcy5fY2FjaGVkSW5kZXg9aSx0aGlzLmFmdGVyRW5kXyhpLTEsdCxvKX1pZihpPT09cylicmVhaztpZihvPXIscj1lWysraV0sdDxyKWJyZWFrIHR9YT1lLmxlbmd0aDticmVhayBufWlmKHQ+PW8pYnJlYWsgZTt7bGV0IHM9ZVsxXTt0PHMmJihpPTIsbz1zKTtmb3IobGV0IGw9aS0yOzspe2lmKHZvaWQgMD09PW8pcmV0dXJuIHRoaXMuX2NhY2hlZEluZGV4PTAsdGhpcy5iZWZvcmVTdGFydF8oMCx0LHIpO2lmKGk9PT1sKWJyZWFrO2lmKHI9byxvPWVbLS1pLTFdLHQ+PW8pYnJlYWsgdH1hPWksaT0wfX1mb3IoO2k8YTspe2xldCBzPWkrYT4+PjE7dDxlW3NdP2E9czppPXMrMX1pZihyPWVbaV0sbz1lW2ktMV0sdm9pZCAwPT09bylyZXR1cm4gdGhpcy5fY2FjaGVkSW5kZXg9MCx0aGlzLmJlZm9yZVN0YXJ0XygwLHQscik7aWYodm9pZCAwPT09cilyZXR1cm4gaT1lLmxlbmd0aCx0aGlzLl9jYWNoZWRJbmRleD1pLHRoaXMuYWZ0ZXJFbmRfKGktMSxvLHQpfXRoaXMuX2NhY2hlZEluZGV4PWksdGhpcy5pbnRlcnZhbENoYW5nZWRfKGksbyxyKX1yZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZV8oaSxvLHQscil9Z2V0U2V0dGluZ3NfKCl7cmV0dXJuIHRoaXMuc2V0dGluZ3N8fHRoaXMuRGVmYXVsdFNldHRpbmdzX31jb3B5U2FtcGxlVmFsdWVfKHQpe2xldCBlPXRoaXMucmVzdWx0QnVmZmVyLGk9dGhpcy5zYW1wbGVWYWx1ZXMscj10aGlzLnZhbHVlU2l6ZSxvPXQqcjtmb3IobGV0IGE9MDthIT09cjsrK2EpZVthXT1pW28rYV07cmV0dXJuIGV9aW50ZXJwb2xhdGVfKCl7dGhyb3cgbmV3IEVycm9yKCJjYWxsIHRvIGFic3RyYWN0IG1ldGhvZCIpfWludGVydmFsQ2hhbmdlZF8oKXt9fTtXYy5wcm90b3R5cGUuYmVmb3JlU3RhcnRfPVdjLnByb3RvdHlwZS5jb3B5U2FtcGxlVmFsdWVfLFdjLnByb3RvdHlwZS5hZnRlckVuZF89V2MucHJvdG90eXBlLmNvcHlTYW1wbGVWYWx1ZV87dmFyIEFCPWNsYXNzIGV4dGVuZHMgV2N7Y29uc3RydWN0b3IodCxlLGkscil7c3VwZXIodCxlLGksciksdGhpcy5fd2VpZ2h0UHJldj0tMCx0aGlzLl9vZmZzZXRQcmV2PS0wLHRoaXMuX3dlaWdodE5leHQ9LTAsdGhpcy5fb2Zmc2V0TmV4dD0tMCx0aGlzLkRlZmF1bHRTZXR0aW5nc189e2VuZGluZ1N0YXJ0OmowLGVuZGluZ0VuZDpqMH19aW50ZXJ2YWxDaGFuZ2VkXyh0LGUsaSl7bGV0IHI9dGhpcy5wYXJhbWV0ZXJQb3NpdGlvbnMsbz10LTIsYT10KzEscz1yW29dLGw9clthXTtpZih2b2lkIDA9PT1zKXN3aXRjaCh0aGlzLmdldFNldHRpbmdzXygpLmVuZGluZ1N0YXJ0KXtjYXNlIEcwOm89dCxzPTIqZS1pO2JyZWFrO2Nhc2UgMjQwMjpvPXIubGVuZ3RoLTIscz1lK3Jbb10tcltvKzFdO2JyZWFrO2RlZmF1bHQ6bz10LHM9aX1pZih2b2lkIDA9PT1sKXN3aXRjaCh0aGlzLmdldFNldHRpbmdzXygpLmVuZGluZ0VuZCl7Y2FzZSBHMDphPXQsbD0yKmktZTticmVhaztjYXNlIDI0MDI6YT0xLGw9aStyWzFdLXJbMF07YnJlYWs7ZGVmYXVsdDphPXQtMSxsPWV9bGV0IGM9LjUqKGktZSksZD10aGlzLnZhbHVlU2l6ZTt0aGlzLl93ZWlnaHRQcmV2PWMvKGUtcyksdGhpcy5fd2VpZ2h0TmV4dD1jLyhsLWkpLHRoaXMuX29mZnNldFByZXY9bypkLHRoaXMuX29mZnNldE5leHQ9YSpkfWludGVycG9sYXRlXyh0LGUsaSxyKXtsZXQgbz10aGlzLnJlc3VsdEJ1ZmZlcixhPXRoaXMuc2FtcGxlVmFsdWVzLHM9dGhpcy52YWx1ZVNpemUsbD10KnMsYz1sLXMsZD10aGlzLl9vZmZzZXRQcmV2LHU9dGhpcy5fb2Zmc2V0TmV4dCxwPXRoaXMuX3dlaWdodFByZXYsaD10aGlzLl93ZWlnaHROZXh0LG09KGktZSkvKHItZSksXz1tKm0sTT1fKm0seT0tcCpNKzIqcCpfLXAqbSx4PSgxK3ApKk0rKC0xLjUtMipwKSpfKygtLjUrcCkqbSsxLFI9KC0xLWgpKk0rKDEuNStoKSpfKy41Km0sST1oKk0taCpfO2ZvcihsZXQgQj0wO0IhPT1zOysrQilvW0JdPXkqYVtkK0JdK3gqYVtjK0JdK1IqYVtsK0JdK0kqYVt1K0JdO3JldHVybiBvfX0sakk9Y2xhc3MgZXh0ZW5kcyBXY3tjb25zdHJ1Y3Rvcih0LGUsaSxyKXtzdXBlcih0LGUsaSxyKX1pbnRlcnBvbGF0ZV8odCxlLGkscil7bGV0IG89dGhpcy5yZXN1bHRCdWZmZXIsYT10aGlzLnNhbXBsZVZhbHVlcyxzPXRoaXMudmFsdWVTaXplLGw9dCpzLGM9bC1zLGQ9KGktZSkvKHItZSksdT0xLWQ7Zm9yKGxldCBwPTA7cCE9PXM7KytwKW9bcF09YVtjK3BdKnUrYVtsK3BdKmQ7cmV0dXJuIG99fSxSQj1jbGFzcyBleHRlbmRzIFdje2NvbnN0cnVjdG9yKHQsZSxpLHIpe3N1cGVyKHQsZSxpLHIpfWludGVycG9sYXRlXyh0KXtyZXR1cm4gdGhpcy5jb3B5U2FtcGxlVmFsdWVfKHQtMSl9fSxjbD1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSxyKXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBFcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogdHJhY2sgbmFtZSBpcyB1bmRlZmluZWQiKTtpZih2b2lkIDA9PT1lfHwwPT09ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBubyBrZXlmcmFtZXMgaW4gdHJhY2sgbmFtZWQgIit0KTt0aGlzLm5hbWU9dCx0aGlzLnRpbWVzPUlyLmNvbnZlcnRBcnJheShlLHRoaXMuVGltZUJ1ZmZlclR5cGUpLHRoaXMudmFsdWVzPUlyLmNvbnZlcnRBcnJheShpLHRoaXMuVmFsdWVCdWZmZXJUeXBlKSx0aGlzLnNldEludGVycG9sYXRpb24ocnx8dGhpcy5EZWZhdWx0SW50ZXJwb2xhdGlvbil9c3RhdGljIHRvSlNPTih0KXtsZXQgaSxlPXQuY29uc3RydWN0b3I7aWYoZS50b0pTT04hPT10aGlzLnRvSlNPTilpPWUudG9KU09OKHQpO2Vsc2V7aT17bmFtZTp0Lm5hbWUsdGltZXM6SXIuY29udmVydEFycmF5KHQudGltZXMsQXJyYXkpLHZhbHVlczpJci5jb252ZXJ0QXJyYXkodC52YWx1ZXMsQXJyYXkpfTtsZXQgcj10LmdldEludGVycG9sYXRpb24oKTtyIT09dC5EZWZhdWx0SW50ZXJwb2xhdGlvbiYmKGkuaW50ZXJwb2xhdGlvbj1yKX1yZXR1cm4gaS50eXBlPXQuVmFsdWVUeXBlTmFtZSxpfUludGVycG9sYW50RmFjdG9yeU1ldGhvZERpc2NyZXRlKHQpe3JldHVybiBuZXcgUkIodGhpcy50aW1lcyx0aGlzLnZhbHVlcyx0aGlzLmdldFZhbHVlU2l6ZSgpLHQpfUludGVycG9sYW50RmFjdG9yeU1ldGhvZExpbmVhcih0KXtyZXR1cm4gbmV3IGpJKHRoaXMudGltZXMsdGhpcy52YWx1ZXMsdGhpcy5nZXRWYWx1ZVNpemUoKSx0KX1JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGgodCl7cmV0dXJuIG5ldyBBQih0aGlzLnRpbWVzLHRoaXMudmFsdWVzLHRoaXMuZ2V0VmFsdWVTaXplKCksdCl9c2V0SW50ZXJwb2xhdGlvbih0KXtsZXQgZTtzd2l0Y2godCl7Y2FzZSAyMzAwOmU9dGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZTticmVhaztjYXNlIDIzMDE6ZT10aGlzLkludGVycG9sYW50RmFjdG9yeU1ldGhvZExpbmVhcjticmVhaztjYXNlIDIzMDI6ZT10aGlzLkludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aH1pZih2b2lkIDA9PT1lKXtsZXQgaT0idW5zdXBwb3J0ZWQgaW50ZXJwb2xhdGlvbiBmb3IgIit0aGlzLlZhbHVlVHlwZU5hbWUrIiBrZXlmcmFtZSB0cmFjayBuYW1lZCAiK3RoaXMubmFtZTtpZih2b2lkIDA9PT10aGlzLmNyZWF0ZUludGVycG9sYW50KXtpZih0PT09dGhpcy5EZWZhdWx0SW50ZXJwb2xhdGlvbil0aHJvdyBuZXcgRXJyb3IoaSk7dGhpcy5zZXRJbnRlcnBvbGF0aW9uKHRoaXMuRGVmYXVsdEludGVycG9sYXRpb24pfXJldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLktleWZyYW1lVHJhY2s6IixpKSx0aGlzfXJldHVybiB0aGlzLmNyZWF0ZUludGVycG9sYW50PWUsdGhpc31nZXRJbnRlcnBvbGF0aW9uKCl7c3dpdGNoKHRoaXMuY3JlYXRlSW50ZXJwb2xhbnQpe2Nhc2UgdGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZTpyZXR1cm4gMjMwMDtjYXNlIHRoaXMuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyOnJldHVybiAyMzAxO2Nhc2UgdGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGg6cmV0dXJuIDIzMDJ9fWdldFZhbHVlU2l6ZSgpe3JldHVybiB0aGlzLnZhbHVlcy5sZW5ndGgvdGhpcy50aW1lcy5sZW5ndGh9c2hpZnQodCl7aWYoMCE9PXQpe2xldCBlPXRoaXMudGltZXM7Zm9yKGxldCBpPTAscj1lLmxlbmd0aDtpIT09cjsrK2kpZVtpXSs9dH1yZXR1cm4gdGhpc31zY2FsZSh0KXtpZigxIT09dCl7bGV0IGU9dGhpcy50aW1lcztmb3IobGV0IGk9MCxyPWUubGVuZ3RoO2khPT1yOysraSllW2ldKj10fXJldHVybiB0aGlzfXRyaW0odCxlKXtsZXQgaT10aGlzLnRpbWVzLHI9aS5sZW5ndGgsbz0wLGE9ci0xO2Zvcig7byE9PXImJmlbb108dDspKytvO2Zvcig7LTEhPT1hJiZpW2FdPmU7KS0tYTtpZigrK2EsMCE9PW98fGEhPT1yKXtvPj1hJiYoYT1NYXRoLm1heChhLDEpLG89YS0xKTtsZXQgcz10aGlzLmdldFZhbHVlU2l6ZSgpO3RoaXMudGltZXM9SXIuYXJyYXlTbGljZShpLG8sYSksdGhpcy52YWx1ZXM9SXIuYXJyYXlTbGljZSh0aGlzLnZhbHVlcyxvKnMsYSpzKX1yZXR1cm4gdGhpc312YWxpZGF0ZSgpe2xldCB0PSEwLGU9dGhpcy5nZXRWYWx1ZVNpemUoKTtlLU1hdGguZmxvb3IoZSkhPTAmJihjb25zb2xlLmVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBJbnZhbGlkIHZhbHVlIHNpemUgaW4gdHJhY2suIix0aGlzKSx0PSExKTtsZXQgaT10aGlzLnRpbWVzLHI9dGhpcy52YWx1ZXMsbz1pLmxlbmd0aDswPT09byYmKGNvbnNvbGUuZXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IFRyYWNrIGlzIGVtcHR5LiIsdGhpcyksdD0hMSk7bGV0IGE9bnVsbDtmb3IobGV0IHM9MDtzIT09bztzKyspe2xldCBsPWlbc107aWYoIm51bWJlciI9PXR5cGVvZiBsJiZpc05hTihsKSl7Y29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogVGltZSBpcyBub3QgYSB2YWxpZCBudW1iZXIuIix0aGlzLHMsbCksdD0hMTticmVha31pZihudWxsIT09YSYmYT5sKXtjb25zb2xlLmVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBPdXQgb2Ygb3JkZXIga2V5cy4iLHRoaXMscyxsLGEpLHQ9ITE7YnJlYWt9YT1sfWlmKHZvaWQgMCE9PXImJklyLmlzVHlwZWRBcnJheShyKSlmb3IobGV0IHM9MCxsPXIubGVuZ3RoO3MhPT1sOysrcyl7bGV0IGM9cltzXTtpZihpc05hTihjKSl7Y29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogVmFsdWUgaXMgbm90IGEgdmFsaWQgbnVtYmVyLiIsdGhpcyxzLGMpLHQ9ITE7YnJlYWt9fXJldHVybiB0fW9wdGltaXplKCl7bGV0IHQ9SXIuYXJyYXlTbGljZSh0aGlzLnRpbWVzKSxlPUlyLmFycmF5U2xpY2UodGhpcy52YWx1ZXMpLGk9dGhpcy5nZXRWYWx1ZVNpemUoKSxyPTIzMDI9PT10aGlzLmdldEludGVycG9sYXRpb24oKSxvPXQubGVuZ3RoLTEsYT0xO2ZvcihsZXQgcz0xO3M8bzsrK3Mpe2xldCBsPSExLGM9dFtzXTtpZihjIT09dFtzKzFdJiYoMSE9PXN8fGMhPT10WzBdKSlpZihyKWw9ITA7ZWxzZXtsZXQgdT1zKmkscD11LWksaD11K2k7Zm9yKGxldCBtPTA7bSE9PWk7KyttKXtsZXQgXz1lW3UrbV07aWYoXyE9PWVbcCttXXx8XyE9PWVbaCttXSl7bD0hMDticmVha319fWlmKGwpe2lmKHMhPT1hKXt0W2FdPXRbc107bGV0IHU9cyppLHA9YSppO2ZvcihsZXQgaD0wO2ghPT1pOysraCllW3AraF09ZVt1K2hdfSsrYX19aWYobz4wKXt0W2FdPXRbb107Zm9yKGxldCBzPW8qaSxsPWEqaSxjPTA7YyE9PWk7KytjKWVbbCtjXT1lW3MrY107KythfXJldHVybiBhIT09dC5sZW5ndGg/KHRoaXMudGltZXM9SXIuYXJyYXlTbGljZSh0LDAsYSksdGhpcy52YWx1ZXM9SXIuYXJyYXlTbGljZShlLDAsYSppKSk6KHRoaXMudGltZXM9dCx0aGlzLnZhbHVlcz1lKSx0aGlzfWNsb25lKCl7bGV0IHQ9SXIuYXJyYXlTbGljZSh0aGlzLnRpbWVzLDApLGU9SXIuYXJyYXlTbGljZSh0aGlzLnZhbHVlcywwKSxyPW5ldygwLHRoaXMuY29uc3RydWN0b3IpKHRoaXMubmFtZSx0LGUpO3JldHVybiByLmNyZWF0ZUludGVycG9sYW50PXRoaXMuY3JlYXRlSW50ZXJwb2xhbnQscn19O2NsLnByb3RvdHlwZS5UaW1lQnVmZmVyVHlwZT1GbG9hdDMyQXJyYXksY2wucHJvdG90eXBlLlZhbHVlQnVmZmVyVHlwZT1GbG9hdDMyQXJyYXksY2wucHJvdG90eXBlLkRlZmF1bHRJbnRlcnBvbGF0aW9uPTIzMDE7dmFyIEFwPWNsYXNzIGV4dGVuZHMgY2x7fTtBcC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0iYm9vbCIsQXAucHJvdG90eXBlLlZhbHVlQnVmZmVyVHlwZT1BcnJheSxBcC5wcm90b3R5cGUuRGVmYXVsdEludGVycG9sYXRpb249MjMwMCxBcC5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyPXZvaWQgMCxBcC5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoPXZvaWQgMDt2YXIgR0k9Y2xhc3MgZXh0ZW5kcyBjbHt9O0dJLnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJjb2xvciI7dmFyIGFfPWNsYXNzIGV4dGVuZHMgY2x7fTthXy5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0ibnVtYmVyIjt2YXIgUEI9Y2xhc3MgZXh0ZW5kcyBXY3tjb25zdHJ1Y3Rvcih0LGUsaSxyKXtzdXBlcih0LGUsaSxyKX1pbnRlcnBvbGF0ZV8odCxlLGkscil7bGV0IG89dGhpcy5yZXN1bHRCdWZmZXIsYT10aGlzLnNhbXBsZVZhbHVlcyxzPXRoaXMudmFsdWVTaXplLGw9KGktZSkvKHItZSksYz10KnM7Zm9yKGxldCBkPWMrcztjIT09ZDtjKz00KW9hLnNsZXJwRmxhdChvLDAsYSxjLXMsYSxjLGwpO3JldHVybiBvfX0sU209Y2xhc3MgZXh0ZW5kcyBjbHtJbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXIodCl7cmV0dXJuIG5ldyBQQih0aGlzLnRpbWVzLHRoaXMudmFsdWVzLHRoaXMuZ2V0VmFsdWVTaXplKCksdCl9fTtTbS5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0icXVhdGVybmlvbiIsU20ucHJvdG90eXBlLkRlZmF1bHRJbnRlcnBvbGF0aW9uPTIzMDEsU20ucHJvdG90eXBlLkludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aD12b2lkIDA7dmFyIFJwPWNsYXNzIGV4dGVuZHMgY2x7fTtScC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0ic3RyaW5nIixScC5wcm90b3R5cGUuVmFsdWVCdWZmZXJUeXBlPUFycmF5LFJwLnByb3RvdHlwZS5EZWZhdWx0SW50ZXJwb2xhdGlvbj0yMzAwLFJwLnByb3RvdHlwZS5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXI9dm9pZCAwLFJwLnByb3RvdHlwZS5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGg9dm9pZCAwO3ZhciBzXz1jbGFzcyBleHRlbmRzIGNse307c18ucHJvdG90eXBlLlZhbHVlVHlwZU5hbWU9InZlY3RvciI7dmFyIFdJPWNsYXNze2NvbnN0cnVjdG9yKHQsZT0tMSxpLHI9MjUwMCl7dGhpcy5uYW1lPXQsdGhpcy50cmFja3M9aSx0aGlzLmR1cmF0aW9uPWUsdGhpcy5ibGVuZE1vZGU9cix0aGlzLnV1aWQ9WWwoKSx0aGlzLmR1cmF0aW9uPDAmJnRoaXMucmVzZXREdXJhdGlvbigpfXN0YXRpYyBwYXJzZSh0KXtsZXQgZT1bXSxpPXQudHJhY2tzLHI9MS8odC5mcHN8fDEpO2ZvcihsZXQgYT0wLHM9aS5sZW5ndGg7YSE9PXM7KythKWUucHVzaChvTmUoaVthXSkuc2NhbGUocikpO2xldCBvPW5ldyB0aGlzKHQubmFtZSx0LmR1cmF0aW9uLGUsdC5ibGVuZE1vZGUpO3JldHVybiBvLnV1aWQ9dC51dWlkLG99c3RhdGljIHRvSlNPTih0KXtsZXQgZT1bXSxpPXQudHJhY2tzLHI9e25hbWU6dC5uYW1lLGR1cmF0aW9uOnQuZHVyYXRpb24sdHJhY2tzOmUsdXVpZDp0LnV1aWQsYmxlbmRNb2RlOnQuYmxlbmRNb2RlfTtmb3IobGV0IG89MCxhPWkubGVuZ3RoO28hPT1hOysrbyllLnB1c2goY2wudG9KU09OKGlbb10pKTtyZXR1cm4gcn1zdGF0aWMgQ3JlYXRlRnJvbU1vcnBoVGFyZ2V0U2VxdWVuY2UodCxlLGkscil7bGV0IG89ZS5sZW5ndGgsYT1bXTtmb3IobGV0IHM9MDtzPG87cysrKXtsZXQgbD1bXSxjPVtdO2wucHVzaCgocytvLTEpJW8scywocysxKSVvKSxjLnB1c2goMCwxLDApO2xldCBkPUlyLmdldEtleWZyYW1lT3JkZXIobCk7bD1Jci5zb3J0ZWRBcnJheShsLDEsZCksYz1Jci5zb3J0ZWRBcnJheShjLDEsZCksIXImJjA9PT1sWzBdJiYobC5wdXNoKG8pLGMucHVzaChjWzBdKSksYS5wdXNoKG5ldyBhXygiLm1vcnBoVGFyZ2V0SW5mbHVlbmNlc1siK2Vbc10ubmFtZSsiXSIsbCxjKS5zY2FsZSgxL2kpKX1yZXR1cm4gbmV3IHRoaXModCwtMSxhKX1zdGF0aWMgZmluZEJ5TmFtZSh0LGUpe2xldCBpPXQ7QXJyYXkuaXNBcnJheSh0KXx8KGk9dC5nZW9tZXRyeSYmdC5nZW9tZXRyeS5hbmltYXRpb25zfHx0LmFuaW1hdGlvbnMpO2ZvcihsZXQgcj0wO3I8aS5sZW5ndGg7cisrKWlmKGlbcl0ubmFtZT09PWUpcmV0dXJuIGlbcl07cmV0dXJuIG51bGx9c3RhdGljIENyZWF0ZUNsaXBzRnJvbU1vcnBoVGFyZ2V0U2VxdWVuY2VzKHQsZSxpKXtsZXQgcj17fSxvPS9eKFtcdy1dKj8pKFtcZF0rKSQvO2ZvcihsZXQgcz0wLGw9dC5sZW5ndGg7czxsO3MrKyl7bGV0IGM9dFtzXSxkPWMubmFtZS5tYXRjaChvKTtpZihkJiZkLmxlbmd0aD4xKXtsZXQgdT1kWzFdLHA9clt1XTtwfHwoclt1XT1wPVtdKSxwLnB1c2goYyl9fWxldCBhPVtdO2ZvcihsZXQgcyBpbiByKWEucHVzaCh0aGlzLkNyZWF0ZUZyb21Nb3JwaFRhcmdldFNlcXVlbmNlKHMscltzXSxlLGkpKTtyZXR1cm4gYX1zdGF0aWMgcGFyc2VBbmltYXRpb24odCxlKXtpZighdClyZXR1cm4gY29uc29sZS5lcnJvcigiVEhSRUUuQW5pbWF0aW9uQ2xpcDogTm8gYW5pbWF0aW9uIGluIEpTT05Mb2FkZXIgZGF0YS4iKSxudWxsO2xldCBpPWZ1bmN0aW9uKHUscCxoLG0sXyl7aWYoMCE9PWgubGVuZ3RoKXtsZXQgTT1bXSx5PVtdO0lyLmZsYXR0ZW5KU09OKGgsTSx5LG0pLDAhPT1NLmxlbmd0aCYmXy5wdXNoKG5ldyB1KHAsTSx5KSl9fSxyPVtdLG89dC5uYW1lfHwiZGVmYXVsdCIsYT10LmZwc3x8MzAscz10LmJsZW5kTW9kZSxsPXQubGVuZ3RofHwtMSxjPXQuaGllcmFyY2h5fHxbXTtmb3IobGV0IHU9MDt1PGMubGVuZ3RoO3UrKyl7bGV0IHA9Y1t1XS5rZXlzO2lmKHAmJjAhPT1wLmxlbmd0aClpZihwWzBdLm1vcnBoVGFyZ2V0cyl7bGV0IG0saD17fTtmb3IobT0wO208cC5sZW5ndGg7bSsrKWlmKHBbbV0ubW9ycGhUYXJnZXRzKWZvcihsZXQgXz0wO188cFttXS5tb3JwaFRhcmdldHMubGVuZ3RoO18rKyloW3BbbV0ubW9ycGhUYXJnZXRzW19dXT0tMTtmb3IobGV0IF8gaW4gaCl7bGV0IE09W10seT1bXTtmb3IobGV0IHg9MDt4IT09cFttXS5tb3JwaFRhcmdldHMubGVuZ3RoOysreCl7bGV0IFI9cFttXTtNLnB1c2goUi50aW1lKSx5LnB1c2goUi5tb3JwaFRhcmdldD09PV8/MTowKX1yLnB1c2gobmV3IGFfKCIubW9ycGhUYXJnZXRJbmZsdWVuY2VbIitfKyJdIixNLHkpKX1sPWgubGVuZ3RoKihhfHwxKX1lbHNle2xldCBoPSIuYm9uZXNbIitlW3VdLm5hbWUrIl0iO2koc18saCsiLnBvc2l0aW9uIixwLCJwb3MiLHIpLGkoU20saCsiLnF1YXRlcm5pb24iLHAsInJvdCIsciksaShzXyxoKyIuc2NhbGUiLHAsInNjbCIscil9fXJldHVybiAwPT09ci5sZW5ndGg/bnVsbDpuZXcgdGhpcyhvLGwscixzKX1yZXNldER1cmF0aW9uKCl7bGV0IGU9MDtmb3IobGV0IGk9MCxyPXRoaXMudHJhY2tzLmxlbmd0aDtpIT09cjsrK2kpe2xldCBvPXRoaXMudHJhY2tzW2ldO2U9TWF0aC5tYXgoZSxvLnRpbWVzW28udGltZXMubGVuZ3RoLTFdKX1yZXR1cm4gdGhpcy5kdXJhdGlvbj1lLHRoaXN9dHJpbSgpe2ZvcihsZXQgdD0wO3Q8dGhpcy50cmFja3MubGVuZ3RoO3QrKyl0aGlzLnRyYWNrc1t0XS50cmltKDAsdGhpcy5kdXJhdGlvbik7cmV0dXJuIHRoaXN9dmFsaWRhdGUoKXtsZXQgdD0hMDtmb3IobGV0IGU9MDtlPHRoaXMudHJhY2tzLmxlbmd0aDtlKyspdD10JiZ0aGlzLnRyYWNrc1tlXS52YWxpZGF0ZSgpO3JldHVybiB0fW9wdGltaXplKCl7Zm9yKGxldCB0PTA7dDx0aGlzLnRyYWNrcy5sZW5ndGg7dCsrKXRoaXMudHJhY2tzW3RdLm9wdGltaXplKCk7cmV0dXJuIHRoaXN9Y2xvbmUoKXtsZXQgdD1bXTtmb3IobGV0IGU9MDtlPHRoaXMudHJhY2tzLmxlbmd0aDtlKyspdC5wdXNoKHRoaXMudHJhY2tzW2VdLmNsb25lKCkpO3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLm5hbWUsdGhpcy5kdXJhdGlvbix0LHRoaXMuYmxlbmRNb2RlKX10b0pTT04oKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci50b0pTT04odGhpcyl9fTtmdW5jdGlvbiBvTmUobil7aWYodm9pZCAwPT09bi50eXBlKXRocm93IG5ldyBFcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogdHJhY2sgdHlwZSB1bmRlZmluZWQsIGNhbiBub3QgcGFyc2UiKTtsZXQgdD1mdW5jdGlvbihuKXtzd2l0Y2gobi50b0xvd2VyQ2FzZSgpKXtjYXNlInNjYWxhciI6Y2FzZSJkb3VibGUiOmNhc2UiZmxvYXQiOmNhc2UibnVtYmVyIjpjYXNlImludGVnZXIiOnJldHVybiBhXztjYXNlInZlY3RvciI6Y2FzZSJ2ZWN0b3IyIjpjYXNlInZlY3RvcjMiOmNhc2UidmVjdG9yNCI6cmV0dXJuIHNfO2Nhc2UiY29sb3IiOnJldHVybiBHSTtjYXNlInF1YXRlcm5pb24iOnJldHVybiBTbTtjYXNlImJvb2wiOmNhc2UiYm9vbGVhbiI6cmV0dXJuIEFwO2Nhc2Uic3RyaW5nIjpyZXR1cm4gUnB9dGhyb3cgbmV3IEVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBVbnN1cHBvcnRlZCB0eXBlTmFtZTogIituKX0obi50eXBlKTtpZih2b2lkIDA9PT1uLnRpbWVzKXtsZXQgZT1bXSxpPVtdO0lyLmZsYXR0ZW5KU09OKG4ua2V5cyxlLGksInZhbHVlIiksbi50aW1lcz1lLG4udmFsdWVzPWl9cmV0dXJuIHZvaWQgMCE9PXQucGFyc2U/dC5wYXJzZShuKTpuZXcgdChuLm5hbWUsbi50aW1lcyxuLnZhbHVlcyxuLmludGVycG9sYXRpb24pfXZhciBsXz17ZW5hYmxlZDohMSxmaWxlczp7fSxhZGQ6ZnVuY3Rpb24obix0KXshMSE9PXRoaXMuZW5hYmxlZCYmKHRoaXMuZmlsZXNbbl09dCl9LGdldDpmdW5jdGlvbihuKXtpZighMSE9PXRoaXMuZW5hYmxlZClyZXR1cm4gdGhpcy5maWxlc1tuXX0scmVtb3ZlOmZ1bmN0aW9uKG4pe2RlbGV0ZSB0aGlzLmZpbGVzW25dfSxjbGVhcjpmdW5jdGlvbigpe3RoaXMuZmlsZXM9e319fSxhTmU9bmV3IGNsYXNze2NvbnN0cnVjdG9yKHQsZSxpKXtsZXQgbCxyPXRoaXMsbz0hMSxhPTAscz0wLGM9W107dGhpcy5vblN0YXJ0PXZvaWQgMCx0aGlzLm9uTG9hZD10LHRoaXMub25Qcm9ncmVzcz1lLHRoaXMub25FcnJvcj1pLHRoaXMuaXRlbVN0YXJ0PWZ1bmN0aW9uKGQpe3MrKywhMT09PW8mJnZvaWQgMCE9PXIub25TdGFydCYmci5vblN0YXJ0KGQsYSxzKSxvPSEwfSx0aGlzLml0ZW1FbmQ9ZnVuY3Rpb24oZCl7YSsrLHZvaWQgMCE9PXIub25Qcm9ncmVzcyYmci5vblByb2dyZXNzKGQsYSxzKSxhPT09cyYmKG89ITEsdm9pZCAwIT09ci5vbkxvYWQmJnIub25Mb2FkKCkpfSx0aGlzLml0ZW1FcnJvcj1mdW5jdGlvbihkKXt2b2lkIDAhPT1yLm9uRXJyb3ImJnIub25FcnJvcihkKX0sdGhpcy5yZXNvbHZlVVJMPWZ1bmN0aW9uKGQpe3JldHVybiBsP2woZCk6ZH0sdGhpcy5zZXRVUkxNb2RpZmllcj1mdW5jdGlvbihkKXtyZXR1cm4gbD1kLHRoaXN9LHRoaXMuYWRkSGFuZGxlcj1mdW5jdGlvbihkLHUpe3JldHVybiBjLnB1c2goZCx1KSx0aGlzfSx0aGlzLnJlbW92ZUhhbmRsZXI9ZnVuY3Rpb24oZCl7bGV0IHU9Yy5pbmRleE9mKGQpO3JldHVybi0xIT09dSYmYy5zcGxpY2UodSwyKSx0aGlzfSx0aGlzLmdldEhhbmRsZXI9ZnVuY3Rpb24oZCl7Zm9yKGxldCB1PTAscD1jLmxlbmd0aDt1PHA7dSs9Mil7bGV0IGg9Y1t1XSxtPWNbdSsxXTtpZihoLmdsb2JhbCYmKGgubGFzdEluZGV4PTApLGgudGVzdChkKSlyZXR1cm4gbX1yZXR1cm4gbnVsbH19fSxxYz1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLm1hbmFnZXI9dm9pZCAwIT09dD90OmFOZSx0aGlzLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLHRoaXMud2l0aENyZWRlbnRpYWxzPSExLHRoaXMucGF0aD0iIix0aGlzLnJlc291cmNlUGF0aD0iIix0aGlzLnJlcXVlc3RIZWFkZXI9e319bG9hZCgpe31sb2FkQXN5bmModCxlKXtsZXQgaT10aGlzO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyLG8pe2kubG9hZCh0LHIsZSxvKX0pfXBhcnNlKCl7fXNldENyb3NzT3JpZ2luKHQpe3JldHVybiB0aGlzLmNyb3NzT3JpZ2luPXQsdGhpc31zZXRXaXRoQ3JlZGVudGlhbHModCl7cmV0dXJuIHRoaXMud2l0aENyZWRlbnRpYWxzPXQsdGhpc31zZXRQYXRoKHQpe3JldHVybiB0aGlzLnBhdGg9dCx0aGlzfXNldFJlc291cmNlUGF0aCh0KXtyZXR1cm4gdGhpcy5yZXNvdXJjZVBhdGg9dCx0aGlzfXNldFJlcXVlc3RIZWFkZXIodCl7cmV0dXJuIHRoaXMucmVxdWVzdEhlYWRlcj10LHRoaXN9fSxIZD17fSxPQj1jbGFzcyBleHRlbmRzIHFje2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLGkscil7dm9pZCAwPT09dCYmKHQ9IiIpLHZvaWQgMCE9PXRoaXMucGF0aCYmKHQ9dGhpcy5wYXRoK3QpLHQ9dGhpcy5tYW5hZ2VyLnJlc29sdmVVUkwodCk7bGV0IG89bF8uZ2V0KHQpO2lmKHZvaWQgMCE9PW8pcmV0dXJuIHRoaXMubWFuYWdlci5pdGVtU3RhcnQodCksc2V0VGltZW91dCgoKT0+e2UmJmUobyksdGhpcy5tYW5hZ2VyLml0ZW1FbmQodCl9LDApLG87aWYodm9pZCAwIT09SGRbdF0pcmV0dXJuIHZvaWQgSGRbdF0ucHVzaCh7b25Mb2FkOmUsb25Qcm9ncmVzczppLG9uRXJyb3I6cn0pO0hkW3RdPVtdLEhkW3RdLnB1c2goe29uTG9hZDplLG9uUHJvZ3Jlc3M6aSxvbkVycm9yOnJ9KTtsZXQgYT1uZXcgUmVxdWVzdCh0LHtoZWFkZXJzOm5ldyBIZWFkZXJzKHRoaXMucmVxdWVzdEhlYWRlciksY3JlZGVudGlhbHM6dGhpcy53aXRoQ3JlZGVudGlhbHM/ImluY2x1ZGUiOiJzYW1lLW9yaWdpbiJ9KSxzPXRoaXMubWltZVR5cGUsbD10aGlzLnJlc3BvbnNlVHlwZTtmZXRjaChhKS50aGVuKGM9PntpZigyMDA9PT1jLnN0YXR1c3x8MD09PWMuc3RhdHVzKXtpZigwPT09Yy5zdGF0dXMmJmNvbnNvbGUud2FybigiVEhSRUUuRmlsZUxvYWRlcjogSFRUUCBTdGF0dXMgMCByZWNlaXZlZC4iKSx0eXBlb2YgUmVhZGFibGVTdHJlYW0+InUifHx2b2lkIDA9PT1jLmJvZHkuZ2V0UmVhZGVyKXJldHVybiBjO2xldCBkPUhkW3RdLHU9Yy5ib2R5LmdldFJlYWRlcigpLHA9Yy5oZWFkZXJzLmdldCgiQ29udGVudC1MZW5ndGgiKSxoPXA/cGFyc2VJbnQocCk6MCxtPTAhPT1oLF89MCxNPW5ldyBSZWFkYWJsZVN0cmVhbSh7c3RhcnQoeSl7IWZ1bmN0aW9uIHgoKXt1LnJlYWQoKS50aGVuKCh7ZG9uZTpSLHZhbHVlOkl9KT0+e2lmKFIpeS5jbG9zZSgpO2Vsc2V7Xys9SS5ieXRlTGVuZ3RoO2xldCBCPW5ldyBQcm9ncmVzc0V2ZW50KCJwcm9ncmVzcyIse2xlbmd0aENvbXB1dGFibGU6bSxsb2FkZWQ6Xyx0b3RhbDpofSk7Zm9yKGxldCBlZT0wLFE9ZC5sZW5ndGg7ZWU8UTtlZSsrKXtsZXQgd2U9ZFtlZV07d2Uub25Qcm9ncmVzcyYmd2Uub25Qcm9ncmVzcyhCKX15LmVucXVldWUoSSkseCgpfX0pfSgpfX0pO3JldHVybiBuZXcgUmVzcG9uc2UoTSl9dGhyb3cgRXJyb3IoYGZldGNoIGZvciAiJHtjLnVybH0iIHJlc3BvbmRlZCB3aXRoICR7Yy5zdGF0dXN9OiAke2Muc3RhdHVzVGV4dH1gKX0pLnRoZW4oYz0+e3N3aXRjaChsKXtjYXNlImFycmF5YnVmZmVyIjpyZXR1cm4gYy5hcnJheUJ1ZmZlcigpO2Nhc2UiYmxvYiI6cmV0dXJuIGMuYmxvYigpO2Nhc2UiZG9jdW1lbnQiOnJldHVybiBjLnRleHQoKS50aGVuKGQ9PihuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoZCxzKSk7Y2FzZSJqc29uIjpyZXR1cm4gYy5qc29uKCk7ZGVmYXVsdDppZih2b2lkIDA9PT1zKXJldHVybiBjLnRleHQoKTt7bGV0IHU9L2NoYXJzZXQ9Ij8oW147IlxzXSopIj8vaS5leGVjKHMpLHA9dSYmdVsxXT91WzFdLnRvTG93ZXJDYXNlKCk6dm9pZCAwLGg9bmV3IFRleHREZWNvZGVyKHApO3JldHVybiBjLmFycmF5QnVmZmVyKCkudGhlbihtPT5oLmRlY29kZShtKSl9fX0pLnRoZW4oYz0+e2xfLmFkZCh0LGMpO2xldCBkPUhkW3RdO2RlbGV0ZSBIZFt0XTtmb3IobGV0IHU9MCxwPWQubGVuZ3RoO3U8cDt1Kyspe2xldCBoPWRbdV07aC5vbkxvYWQmJmgub25Mb2FkKGMpfX0pLmNhdGNoKGM9PntsZXQgZD1IZFt0XTtpZih2b2lkIDA9PT1kKXRocm93IHRoaXMubWFuYWdlci5pdGVtRXJyb3IodCksYztkZWxldGUgSGRbdF07Zm9yKGxldCB1PTAscD1kLmxlbmd0aDt1PHA7dSsrKXtsZXQgaD1kW3VdO2gub25FcnJvciYmaC5vbkVycm9yKGMpfXRoaXMubWFuYWdlci5pdGVtRXJyb3IodCl9KS5maW5hbGx5KCgpPT57dGhpcy5tYW5hZ2VyLml0ZW1FbmQodCl9KSx0aGlzLm1hbmFnZXIuaXRlbVN0YXJ0KHQpfXNldFJlc3BvbnNlVHlwZSh0KXtyZXR1cm4gdGhpcy5yZXNwb25zZVR5cGU9dCx0aGlzfXNldE1pbWVUeXBlKHQpe3JldHVybiB0aGlzLm1pbWVUeXBlPXQsdGhpc319LHFJPWNsYXNzIGV4dGVuZHMgcWN7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsaSxyKXt2b2lkIDAhPT10aGlzLnBhdGgmJih0PXRoaXMucGF0aCt0KSx0PXRoaXMubWFuYWdlci5yZXNvbHZlVVJMKHQpO2xldCBvPXRoaXMsYT1sXy5nZXQodCk7aWYodm9pZCAwIT09YSlyZXR1cm4gby5tYW5hZ2VyLml0ZW1TdGFydCh0KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZSYmZShhKSxvLm1hbmFnZXIuaXRlbUVuZCh0KX0sMCksYTtsZXQgcz1NeCgiaW1nIik7ZnVuY3Rpb24gbCgpe2QoKSxsXy5hZGQodCx0aGlzKSxlJiZlKHRoaXMpLG8ubWFuYWdlci5pdGVtRW5kKHQpfWZ1bmN0aW9uIGModSl7ZCgpLHImJnIodSksby5tYW5hZ2VyLml0ZW1FcnJvcih0KSxvLm1hbmFnZXIuaXRlbUVuZCh0KX1mdW5jdGlvbiBkKCl7cy5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixsLCExKSxzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixjLCExKX1yZXR1cm4gcy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixsLCExKSxzLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixjLCExKSwiZGF0YToiIT09dC5zdWJzdHIoMCw1KSYmdm9pZCAwIT09dGhpcy5jcm9zc09yaWdpbiYmKHMuY3Jvc3NPcmlnaW49dGhpcy5jcm9zc09yaWdpbiksby5tYW5hZ2VyLml0ZW1TdGFydCh0KSxzLnNyYz10LHN9fSxGQj1jbGFzcyBleHRlbmRzIHFje2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLGkscil7bGV0IG89bmV3ICQwLGE9bmV3IHFJKHRoaXMubWFuYWdlcik7YS5zZXRDcm9zc09yaWdpbih0aGlzLmNyb3NzT3JpZ2luKSxhLnNldFBhdGgodGhpcy5wYXRoKTtsZXQgcz0wO2Z1bmN0aW9uIGwoYyl7YS5sb2FkKHRbY10sZnVuY3Rpb24oZCl7by5pbWFnZXNbY109ZCxzKyssNj09PXMmJihvLm5lZWRzVXBkYXRlPSEwLGUmJmUobykpfSx2b2lkIDAscil9Zm9yKGxldCBjPTA7Yzx0Lmxlbmd0aDsrK2MpbChjKTtyZXR1cm4gb319LE5CPWNsYXNzIGV4dGVuZHMgcWN7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsaSxyKXtsZXQgbz1uZXcgbG8sYT1uZXcgcUkodGhpcy5tYW5hZ2VyKTtyZXR1cm4gYS5zZXRDcm9zc09yaWdpbih0aGlzLmNyb3NzT3JpZ2luKSxhLnNldFBhdGgodGhpcy5wYXRoKSxhLmxvYWQodCxmdW5jdGlvbihzKXtvLmltYWdlPXMsby5uZWVkc1VwZGF0ZT0hMCx2b2lkIDAhPT1lJiZlKG8pfSxpLHIpLG99fSxkbD1jbGFzcyBleHRlbmRzIFVpe2NvbnN0cnVjdG9yKHQsZT0xKXtzdXBlcigpLHRoaXMudHlwZT0iTGlnaHQiLHRoaXMuY29sb3I9bmV3IHNuKHQpLHRoaXMuaW50ZW5zaXR5PWV9ZGlzcG9zZSgpe31jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLmludGVuc2l0eT10LmludGVuc2l0eSx0aGlzfXRvSlNPTih0KXtsZXQgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0LmNvbG9yPXRoaXMuY29sb3IuZ2V0SGV4KCksZS5vYmplY3QuaW50ZW5zaXR5PXRoaXMuaW50ZW5zaXR5LHZvaWQgMCE9PXRoaXMuZ3JvdW5kQ29sb3ImJihlLm9iamVjdC5ncm91bmRDb2xvcj10aGlzLmdyb3VuZENvbG9yLmdldEhleCgpKSx2b2lkIDAhPT10aGlzLmRpc3RhbmNlJiYoZS5vYmplY3QuZGlzdGFuY2U9dGhpcy5kaXN0YW5jZSksdm9pZCAwIT09dGhpcy5hbmdsZSYmKGUub2JqZWN0LmFuZ2xlPXRoaXMuYW5nbGUpLHZvaWQgMCE9PXRoaXMuZGVjYXkmJihlLm9iamVjdC5kZWNheT10aGlzLmRlY2F5KSx2b2lkIDAhPT10aGlzLnBlbnVtYnJhJiYoZS5vYmplY3QucGVudW1icmE9dGhpcy5wZW51bWJyYSksdm9pZCAwIT09dGhpcy5zaGFkb3cmJihlLm9iamVjdC5zaGFkb3c9dGhpcy5zaGFkb3cudG9KU09OKCkpLGV9fTtkbC5wcm90b3R5cGUuaXNMaWdodD0hMCxjbGFzcyBleHRlbmRzIGRse2NvbnN0cnVjdG9yKHQsZSxpKXtzdXBlcih0LGkpLHRoaXMudHlwZT0iSGVtaXNwaGVyZUxpZ2h0Iix0aGlzLnBvc2l0aW9uLmNvcHkoVWkuRGVmYXVsdFVwKSx0aGlzLnVwZGF0ZU1hdHJpeCgpLHRoaXMuZ3JvdW5kQ29sb3I9bmV3IHNuKGUpfWNvcHkodCl7cmV0dXJuIGRsLnByb3RvdHlwZS5jb3B5LmNhbGwodGhpcyx0KSx0aGlzLmdyb3VuZENvbG9yLmNvcHkodC5ncm91bmRDb2xvciksdGhpc319LnByb3RvdHlwZS5pc0hlbWlzcGhlcmVMaWdodD0hMDt2YXIgdHRlPW5ldyB2bixudGU9bmV3IEssaXRlPW5ldyBLLFV4PWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuY2FtZXJhPXQsdGhpcy5iaWFzPTAsdGhpcy5ub3JtYWxCaWFzPTAsdGhpcy5yYWRpdXM9MSx0aGlzLmJsdXJTYW1wbGVzPTgsdGhpcy5tYXBTaXplPW5ldyAkZSg1MTIsNTEyKSx0aGlzLm1hcD1udWxsLHRoaXMubWFwUGFzcz1udWxsLHRoaXMubWF0cml4PW5ldyB2bix0aGlzLmF1dG9VcGRhdGU9ITAsdGhpcy5uZWVkc1VwZGF0ZT0hMSx0aGlzLl9mcnVzdHVtPW5ldyBlXyx0aGlzLl9mcmFtZUV4dGVudHM9bmV3ICRlKDEsMSksdGhpcy5fdmlld3BvcnRDb3VudD0xLHRoaXMuX3ZpZXdwb3J0cz1bbmV3IFFpKDAsMCwxLDEpXX1nZXRWaWV3cG9ydENvdW50KCl7cmV0dXJuIHRoaXMuX3ZpZXdwb3J0Q291bnR9Z2V0RnJ1c3R1bSgpe3JldHVybiB0aGlzLl9mcnVzdHVtfXVwZGF0ZU1hdHJpY2VzKHQpe2xldCBlPXRoaXMuY2FtZXJhLGk9dGhpcy5tYXRyaXg7bnRlLnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKSxlLnBvc2l0aW9uLmNvcHkobnRlKSxpdGUuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQudGFyZ2V0Lm1hdHJpeFdvcmxkKSxlLmxvb2tBdChpdGUpLGUudXBkYXRlTWF0cml4V29ybGQoKSx0dGUubXVsdGlwbHlNYXRyaWNlcyhlLnByb2plY3Rpb25NYXRyaXgsZS5tYXRyaXhXb3JsZEludmVyc2UpLHRoaXMuX2ZydXN0dW0uc2V0RnJvbVByb2plY3Rpb25NYXRyaXgodHRlKSxpLnNldCguNSwwLDAsLjUsMCwuNSwwLC41LDAsMCwuNSwuNSwwLDAsMCwxKSxpLm11bHRpcGx5KGUucHJvamVjdGlvbk1hdHJpeCksaS5tdWx0aXBseShlLm1hdHJpeFdvcmxkSW52ZXJzZSl9Z2V0Vmlld3BvcnQodCl7cmV0dXJuIHRoaXMuX3ZpZXdwb3J0c1t0XX1nZXRGcmFtZUV4dGVudHMoKXtyZXR1cm4gdGhpcy5fZnJhbWVFeHRlbnRzfWRpc3Bvc2UoKXt0aGlzLm1hcCYmdGhpcy5tYXAuZGlzcG9zZSgpLHRoaXMubWFwUGFzcyYmdGhpcy5tYXBQYXNzLmRpc3Bvc2UoKX1jb3B5KHQpe3JldHVybiB0aGlzLmNhbWVyYT10LmNhbWVyYS5jbG9uZSgpLHRoaXMuYmlhcz10LmJpYXMsdGhpcy5yYWRpdXM9dC5yYWRpdXMsdGhpcy5tYXBTaXplLmNvcHkodC5tYXBTaXplKSx0aGlzfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfXRvSlNPTigpe2xldCB0PXt9O3JldHVybiAwIT09dGhpcy5iaWFzJiYodC5iaWFzPXRoaXMuYmlhcyksMCE9PXRoaXMubm9ybWFsQmlhcyYmKHQubm9ybWFsQmlhcz10aGlzLm5vcm1hbEJpYXMpLDEhPT10aGlzLnJhZGl1cyYmKHQucmFkaXVzPXRoaXMucmFkaXVzKSwoNTEyIT09dGhpcy5tYXBTaXplLnh8fDUxMiE9PXRoaXMubWFwU2l6ZS55KSYmKHQubWFwU2l6ZT10aGlzLm1hcFNpemUudG9BcnJheSgpKSx0LmNhbWVyYT10aGlzLmNhbWVyYS50b0pTT04oITEpLm9iamVjdCxkZWxldGUgdC5jYW1lcmEubWF0cml4LHR9fSxYST1jbGFzcyBleHRlbmRzIFV4e2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IHJhKDUwLDEsLjUsNTAwKSksdGhpcy5mb2N1cz0xfXVwZGF0ZU1hdHJpY2VzKHQpe2xldCBlPXRoaXMuY2FtZXJhLGk9MiokMyp0LmFuZ2xlKnRoaXMuZm9jdXMscj10aGlzLm1hcFNpemUud2lkdGgvdGhpcy5tYXBTaXplLmhlaWdodCxvPXQuZGlzdGFuY2V8fGUuZmFyOyhpIT09ZS5mb3Z8fHIhPT1lLmFzcGVjdHx8byE9PWUuZmFyKSYmKGUuZm92PWksZS5hc3BlY3Q9cixlLmZhcj1vLGUudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpKSxzdXBlci51cGRhdGVNYXRyaWNlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZm9jdXM9dC5mb2N1cyx0aGlzfX07WEkucHJvdG90eXBlLmlzU3BvdExpZ2h0U2hhZG93PSEwLGNsYXNzIGV4dGVuZHMgZGx7Y29uc3RydWN0b3IodCxlLGk9MCxyPU1hdGguUEkvMyxvPTAsYT0xKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iU3BvdExpZ2h0Iix0aGlzLnBvc2l0aW9uLmNvcHkoVWkuRGVmYXVsdFVwKSx0aGlzLnVwZGF0ZU1hdHJpeCgpLHRoaXMudGFyZ2V0PW5ldyBVaSx0aGlzLmRpc3RhbmNlPWksdGhpcy5hbmdsZT1yLHRoaXMucGVudW1icmE9byx0aGlzLmRlY2F5PWEsdGhpcy5zaGFkb3c9bmV3IFhJfWdldCBwb3dlcigpe3JldHVybiB0aGlzLmludGVuc2l0eSpNYXRoLlBJfXNldCBwb3dlcih0KXt0aGlzLmludGVuc2l0eT10L01hdGguUEl9ZGlzcG9zZSgpe3RoaXMuc2hhZG93LmRpc3Bvc2UoKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZGlzdGFuY2U9dC5kaXN0YW5jZSx0aGlzLmFuZ2xlPXQuYW5nbGUsdGhpcy5wZW51bWJyYT10LnBlbnVtYnJhLHRoaXMuZGVjYXk9dC5kZWNheSx0aGlzLnRhcmdldD10LnRhcmdldC5jbG9uZSgpLHRoaXMuc2hhZG93PXQuc2hhZG93LmNsb25lKCksdGhpc319LnByb3RvdHlwZS5pc1Nwb3RMaWdodD0hMDt2YXIgcnRlPW5ldyB2bixoeD1uZXcgSyxXMz1uZXcgSyxZST1jbGFzcyBleHRlbmRzIFV4e2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IHJhKDkwLDEsLjUsNTAwKSksdGhpcy5fZnJhbWVFeHRlbnRzPW5ldyAkZSg0LDIpLHRoaXMuX3ZpZXdwb3J0Q291bnQ9Nix0aGlzLl92aWV3cG9ydHM9W25ldyBRaSgyLDEsMSwxKSxuZXcgUWkoMCwxLDEsMSksbmV3IFFpKDMsMSwxLDEpLG5ldyBRaSgxLDEsMSwxKSxuZXcgUWkoMywwLDEsMSksbmV3IFFpKDEsMCwxLDEpXSx0aGlzLl9jdWJlRGlyZWN0aW9ucz1bbmV3IEsoMSwwLDApLG5ldyBLKC0xLDAsMCksbmV3IEsoMCwwLDEpLG5ldyBLKDAsMCwtMSksbmV3IEsoMCwxLDApLG5ldyBLKDAsLTEsMCldLHRoaXMuX2N1YmVVcHM9W25ldyBLKDAsMSwwKSxuZXcgSygwLDEsMCksbmV3IEsoMCwxLDApLG5ldyBLKDAsMSwwKSxuZXcgSygwLDAsMSksbmV3IEsoMCwwLC0xKV19dXBkYXRlTWF0cmljZXModCxlPTApe2xldCBpPXRoaXMuY2FtZXJhLHI9dGhpcy5tYXRyaXgsbz10LmRpc3RhbmNlfHxpLmZhcjtvIT09aS5mYXImJihpLmZhcj1vLGkudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpKSxoeC5zZXRGcm9tTWF0cml4UG9zaXRpb24odC5tYXRyaXhXb3JsZCksaS5wb3NpdGlvbi5jb3B5KGh4KSxXMy5jb3B5KGkucG9zaXRpb24pLFczLmFkZCh0aGlzLl9jdWJlRGlyZWN0aW9uc1tlXSksaS51cC5jb3B5KHRoaXMuX2N1YmVVcHNbZV0pLGkubG9va0F0KFczKSxpLnVwZGF0ZU1hdHJpeFdvcmxkKCksci5tYWtlVHJhbnNsYXRpb24oLWh4LngsLWh4LnksLWh4LnopLHJ0ZS5tdWx0aXBseU1hdHJpY2VzKGkucHJvamVjdGlvbk1hdHJpeCxpLm1hdHJpeFdvcmxkSW52ZXJzZSksdGhpcy5fZnJ1c3R1bS5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeChydGUpfX07WUkucHJvdG90eXBlLmlzUG9pbnRMaWdodFNoYWRvdz0hMCxjbGFzcyBleHRlbmRzIGRse2NvbnN0cnVjdG9yKHQsZSxpPTAscj0xKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iUG9pbnRMaWdodCIsdGhpcy5kaXN0YW5jZT1pLHRoaXMuZGVjYXk9cix0aGlzLnNoYWRvdz1uZXcgWUl9Z2V0IHBvd2VyKCl7cmV0dXJuIDQqdGhpcy5pbnRlbnNpdHkqTWF0aC5QSX1zZXQgcG93ZXIodCl7dGhpcy5pbnRlbnNpdHk9dC8oNCpNYXRoLlBJKX1kaXNwb3NlKCl7dGhpcy5zaGFkb3cuZGlzcG9zZSgpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kaXN0YW5jZT10LmRpc3RhbmNlLHRoaXMuZGVjYXk9dC5kZWNheSx0aGlzLnNoYWRvdz10LnNoYWRvdy5jbG9uZSgpLHRoaXN9fS5wcm90b3R5cGUuaXNQb2ludExpZ2h0PSEwO3ZhciBRST1jbGFzcyBleHRlbmRzIFV4e2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IHhtKC01LDUsNSwtNSwuNSw1MDApKX19O1FJLnByb3RvdHlwZS5pc0RpcmVjdGlvbmFsTGlnaHRTaGFkb3c9ITAsY2xhc3MgZXh0ZW5kcyBkbHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy50eXBlPSJEaXJlY3Rpb25hbExpZ2h0Iix0aGlzLnBvc2l0aW9uLmNvcHkoVWkuRGVmYXVsdFVwKSx0aGlzLnVwZGF0ZU1hdHJpeCgpLHRoaXMudGFyZ2V0PW5ldyBVaSx0aGlzLnNoYWRvdz1uZXcgUUl9ZGlzcG9zZSgpe3RoaXMuc2hhZG93LmRpc3Bvc2UoKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudGFyZ2V0PXQudGFyZ2V0LmNsb25lKCksdGhpcy5zaGFkb3c9dC5zaGFkb3cuY2xvbmUoKSx0aGlzfX0ucHJvdG90eXBlLmlzRGlyZWN0aW9uYWxMaWdodD0hMCxjbGFzcyBleHRlbmRzIGRse2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IkFtYmllbnRMaWdodCJ9fS5wcm90b3R5cGUuaXNBbWJpZW50TGlnaHQ9ITAsY2xhc3MgZXh0ZW5kcyBkbHtjb25zdHJ1Y3Rvcih0LGUsaT0xMCxyPTEwKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iUmVjdEFyZWFMaWdodCIsdGhpcy53aWR0aD1pLHRoaXMuaGVpZ2h0PXJ9Z2V0IHBvd2VyKCl7cmV0dXJuIHRoaXMuaW50ZW5zaXR5KnRoaXMud2lkdGgqdGhpcy5oZWlnaHQqTWF0aC5QSX1zZXQgcG93ZXIodCl7dGhpcy5pbnRlbnNpdHk9dC8odGhpcy53aWR0aCp0aGlzLmhlaWdodCpNYXRoLlBJKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMud2lkdGg9dC53aWR0aCx0aGlzLmhlaWdodD10LmhlaWdodCx0aGlzfXRvSlNPTih0KXtsZXQgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0LndpZHRoPXRoaXMud2lkdGgsZS5vYmplY3QuaGVpZ2h0PXRoaXMuaGVpZ2h0LGV9fS5wcm90b3R5cGUuaXNSZWN0QXJlYUxpZ2h0PSEwO3ZhciBaST1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuY29lZmZpY2llbnRzPVtdO2ZvcihsZXQgdD0wO3Q8OTt0KyspdGhpcy5jb2VmZmljaWVudHMucHVzaChuZXcgSyl9c2V0KHQpe2ZvcihsZXQgZT0wO2U8OTtlKyspdGhpcy5jb2VmZmljaWVudHNbZV0uY29weSh0W2VdKTtyZXR1cm4gdGhpc316ZXJvKCl7Zm9yKGxldCB0PTA7dDw5O3QrKyl0aGlzLmNvZWZmaWNpZW50c1t0XS5zZXQoMCwwLDApO3JldHVybiB0aGlzfWdldEF0KHQsZSl7bGV0IGk9dC54LHI9dC55LG89dC56LGE9dGhpcy5jb2VmZmljaWVudHM7cmV0dXJuIGUuY29weShhWzBdKS5tdWx0aXBseVNjYWxhciguMjgyMDk1KSxlLmFkZFNjYWxlZFZlY3RvcihhWzFdLC40ODg2MDMqciksZS5hZGRTY2FsZWRWZWN0b3IoYVsyXSwuNDg4NjAzKm8pLGUuYWRkU2NhbGVkVmVjdG9yKGFbM10sLjQ4ODYwMyppKSxlLmFkZFNjYWxlZFZlY3RvcihhWzRdLGkqcioxLjA5MjU0OCksZS5hZGRTY2FsZWRWZWN0b3IoYVs1XSxyKm8qMS4wOTI1NDgpLGUuYWRkU2NhbGVkVmVjdG9yKGFbNl0sLjMxNTM5MiooMypvKm8tMSkpLGUuYWRkU2NhbGVkVmVjdG9yKGFbN10saSpvKjEuMDkyNTQ4KSxlLmFkZFNjYWxlZFZlY3RvcihhWzhdLC41NDYyNzQqKGkqaS1yKnIpKSxlfWdldElycmFkaWFuY2VBdCh0LGUpe2xldCBpPXQueCxyPXQueSxvPXQueixhPXRoaXMuY29lZmZpY2llbnRzO3JldHVybiBlLmNvcHkoYVswXSkubXVsdGlwbHlTY2FsYXIoLjg4NjIyNyksZS5hZGRTY2FsZWRWZWN0b3IoYVsxXSwxLjAyMzMyOCpyKSxlLmFkZFNjYWxlZFZlY3RvcihhWzJdLDEuMDIzMzI4Km8pLGUuYWRkU2NhbGVkVmVjdG9yKGFbM10sMS4wMjMzMjgqaSksZS5hZGRTY2FsZWRWZWN0b3IoYVs0XSwuODU4MDg2KmkqciksZS5hZGRTY2FsZWRWZWN0b3IoYVs1XSwuODU4MDg2KnIqbyksZS5hZGRTY2FsZWRWZWN0b3IoYVs2XSwuNzQzMTI1Km8qby0uMjQ3NzA4KSxlLmFkZFNjYWxlZFZlY3RvcihhWzddLC44NTgwODYqaSpvKSxlLmFkZFNjYWxlZFZlY3RvcihhWzhdLC40MjkwNDMqKGkqaS1yKnIpKSxlfWFkZCh0KXtmb3IobGV0IGU9MDtlPDk7ZSsrKXRoaXMuY29lZmZpY2llbnRzW2VdLmFkZCh0LmNvZWZmaWNpZW50c1tlXSk7cmV0dXJuIHRoaXN9YWRkU2NhbGVkU0godCxlKXtmb3IobGV0IGk9MDtpPDk7aSsrKXRoaXMuY29lZmZpY2llbnRzW2ldLmFkZFNjYWxlZFZlY3Rvcih0LmNvZWZmaWNpZW50c1tpXSxlKTtyZXR1cm4gdGhpc31zY2FsZSh0KXtmb3IobGV0IGU9MDtlPDk7ZSsrKXRoaXMuY29lZmZpY2llbnRzW2VdLm11bHRpcGx5U2NhbGFyKHQpO3JldHVybiB0aGlzfWxlcnAodCxlKXtmb3IobGV0IGk9MDtpPDk7aSsrKXRoaXMuY29lZmZpY2llbnRzW2ldLmxlcnAodC5jb2VmZmljaWVudHNbaV0sZSk7cmV0dXJuIHRoaXN9ZXF1YWxzKHQpe2ZvcihsZXQgZT0wO2U8OTtlKyspaWYoIXRoaXMuY29lZmZpY2llbnRzW2VdLmVxdWFscyh0LmNvZWZmaWNpZW50c1tlXSkpcmV0dXJuITE7cmV0dXJuITB9Y29weSh0KXtyZXR1cm4gdGhpcy5zZXQodC5jb2VmZmljaWVudHMpfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWZyb21BcnJheSh0LGU9MCl7bGV0IGk9dGhpcy5jb2VmZmljaWVudHM7Zm9yKGxldCByPTA7cjw5O3IrKylpW3JdLmZyb21BcnJheSh0LGUrMypyKTtyZXR1cm4gdGhpc310b0FycmF5KHQ9W10sZT0wKXtsZXQgaT10aGlzLmNvZWZmaWNpZW50cztmb3IobGV0IHI9MDtyPDk7cisrKWlbcl0udG9BcnJheSh0LGUrMypyKTtyZXR1cm4gdH1zdGF0aWMgZ2V0QmFzaXNBdCh0LGUpe2xldCBpPXQueCxyPXQueSxvPXQuejtlWzBdPS4yODIwOTUsZVsxXT0uNDg4NjAzKnIsZVsyXT0uNDg4NjAzKm8sZVszXT0uNDg4NjAzKmksZVs0XT0xLjA5MjU0OCppKnIsZVs1XT0xLjA5MjU0OCpyKm8sZVs2XT0uMzE1MzkyKigzKm8qby0xKSxlWzddPTEuMDkyNTQ4KmkqbyxlWzhdPS41NDYyNzQqKGkqaS1yKnIpfX07WkkucHJvdG90eXBlLmlzU3BoZXJpY2FsSGFybW9uaWNzMz0hMDt2YXIgang9Y2xhc3MgZXh0ZW5kcyBkbHtjb25zdHJ1Y3Rvcih0PW5ldyBaSSxlPTEpe3N1cGVyKHZvaWQgMCxlKSx0aGlzLnNoPXR9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnNoLmNvcHkodC5zaCksdGhpc31mcm9tSlNPTih0KXtyZXR1cm4gdGhpcy5pbnRlbnNpdHk9dC5pbnRlbnNpdHksdGhpcy5zaC5mcm9tQXJyYXkodC5zaCksdGhpc310b0pTT04odCl7bGV0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBlLm9iamVjdC5zaD10aGlzLnNoLnRvQXJyYXkoKSxlfX07angucHJvdG90eXBlLmlzTGlnaHRQcm9iZT0hMDt2YXIgakI9Y2xhc3N7c3RhdGljIGRlY29kZVRleHQodCl7aWYodHlwZW9mIFRleHREZWNvZGVyPCJ1IilyZXR1cm4obmV3IFRleHREZWNvZGVyKS5kZWNvZGUodCk7bGV0IGU9IiI7Zm9yKGxldCBpPTAscj10Lmxlbmd0aDtpPHI7aSsrKWUrPVN0cmluZy5mcm9tQ2hhckNvZGUodFtpXSk7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKGUpKX1jYXRjaHtyZXR1cm4gZX19c3RhdGljIGV4dHJhY3RVcmxCYXNlKHQpe2xldCBlPXQubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4tMT09PWU/Ii4vIjp0LnN1YnN0cigwLGUrMSl9c3RhdGljIHJlc29sdmVVUkwodCxlKXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHR8fCIiPT09dD8iIjooL15odHRwcz86XC9cLy9pLnRlc3QoZSkmJi9eXC8vLnRlc3QodCkmJihlPWUucmVwbGFjZSgvKF5odHRwcz86XC9cL1teXC9dKykuKi9pLCIkMSIpKSwvXihodHRwcz86KT9cL1wvL2kudGVzdCh0KXx8L15kYXRhOi4qLC4qJC9pLnRlc3QodCl8fC9eYmxvYjouKiQvaS50ZXN0KHQpP3Q6ZSt0KX19OyhjbGFzcyBleHRlbmRzIEdpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnR5cGU9Ikluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5Iix0aGlzLmluc3RhbmNlQ291bnQ9MS8wfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5pbnN0YW5jZUNvdW50PXQuaW5zdGFuY2VDb3VudCx0aGlzfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfXRvSlNPTigpe2xldCB0PXN1cGVyLnRvSlNPTih0aGlzKTtyZXR1cm4gdC5pbnN0YW5jZUNvdW50PXRoaXMuaW5zdGFuY2VDb3VudCx0LmlzSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnk9ITAsdH19KS5wcm90b3R5cGUuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeT0hMCxjbGFzcyBleHRlbmRzIHFje2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHR5cGVvZiBjcmVhdGVJbWFnZUJpdG1hcD4idSImJmNvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VCaXRtYXBMb2FkZXI6IGNyZWF0ZUltYWdlQml0bWFwKCkgbm90IHN1cHBvcnRlZC4iKSx0eXBlb2YgZmV0Y2g+InUiJiZjb25zb2xlLndhcm4oIlRIUkVFLkltYWdlQml0bWFwTG9hZGVyOiBmZXRjaCgpIG5vdCBzdXBwb3J0ZWQuIiksdGhpcy5vcHRpb25zPXtwcmVtdWx0aXBseUFscGhhOiJub25lIn19c2V0T3B0aW9ucyh0KXtyZXR1cm4gdGhpcy5vcHRpb25zPXQsdGhpc31sb2FkKHQsZSxpLHIpe3ZvaWQgMD09PXQmJih0PSIiKSx2b2lkIDAhPT10aGlzLnBhdGgmJih0PXRoaXMucGF0aCt0KSx0PXRoaXMubWFuYWdlci5yZXNvbHZlVVJMKHQpO2xldCBvPXRoaXMsYT1sXy5nZXQodCk7aWYodm9pZCAwIT09YSlyZXR1cm4gby5tYW5hZ2VyLml0ZW1TdGFydCh0KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZSYmZShhKSxvLm1hbmFnZXIuaXRlbUVuZCh0KX0sMCksYTtsZXQgcz17fTtzLmNyZWRlbnRpYWxzPSJhbm9ueW1vdXMiPT09dGhpcy5jcm9zc09yaWdpbj8ic2FtZS1vcmlnaW4iOiJpbmNsdWRlIixzLmhlYWRlcnM9dGhpcy5yZXF1ZXN0SGVhZGVyLGZldGNoKHQscykudGhlbihmdW5jdGlvbihsKXtyZXR1cm4gbC5ibG9iKCl9KS50aGVuKGZ1bmN0aW9uKGwpe3JldHVybiBjcmVhdGVJbWFnZUJpdG1hcChsLE9iamVjdC5hc3NpZ24oby5vcHRpb25zLHtjb2xvclNwYWNlQ29udmVyc2lvbjoibm9uZSJ9KSl9KS50aGVuKGZ1bmN0aW9uKGwpe2xfLmFkZCh0LGwpLGUmJmUobCksby5tYW5hZ2VyLml0ZW1FbmQodCl9KS5jYXRjaChmdW5jdGlvbihsKXtyJiZyKGwpLG8ubWFuYWdlci5pdGVtRXJyb3IodCksby5tYW5hZ2VyLml0ZW1FbmQodCl9KSxvLm1hbmFnZXIuaXRlbVN0YXJ0KHQpfX0ucHJvdG90eXBlLmlzSW1hZ2VCaXRtYXBMb2FkZXI9ITA7dmFyIGJJLHFCPWNsYXNzIGV4dGVuZHMgcWN7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsaSxyKXtsZXQgbz10aGlzLGE9bmV3IE9CKHRoaXMubWFuYWdlcik7YS5zZXRSZXNwb25zZVR5cGUoImFycmF5YnVmZmVyIiksYS5zZXRQYXRoKHRoaXMucGF0aCksYS5zZXRSZXF1ZXN0SGVhZGVyKHRoaXMucmVxdWVzdEhlYWRlciksYS5zZXRXaXRoQ3JlZGVudGlhbHModGhpcy53aXRoQ3JlZGVudGlhbHMpLGEubG9hZCh0LGZ1bmN0aW9uKHMpe3RyeXtsZXQgbD1zLnNsaWNlKDApOyh2b2lkIDA9PT1iSSYmKGJJPW5ldyh3aW5kb3cuQXVkaW9Db250ZXh0fHx3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KSksYkkpLmRlY29kZUF1ZGlvRGF0YShsLGZ1bmN0aW9uKGQpe2UoZCl9KX1jYXRjaChsKXtyP3IobCk6Y29uc29sZS5lcnJvcihsKSxvLm1hbmFnZXIuaXRlbUVycm9yKHQpfX0saSxyKX19OyhjbGFzcyBleHRlbmRzIGp4e2NvbnN0cnVjdG9yKHQsZSxpPTEpe3N1cGVyKHZvaWQgMCxpKTtsZXQgcj0obmV3IHNuKS5zZXQodCksbz0obmV3IHNuKS5zZXQoZSksYT1uZXcgSyhyLnIsci5nLHIuYikscz1uZXcgSyhvLnIsby5nLG8uYiksbD1NYXRoLnNxcnQoTWF0aC5QSSksYz1sKk1hdGguc3FydCguNzUpO3RoaXMuc2guY29lZmZpY2llbnRzWzBdLmNvcHkoYSkuYWRkKHMpLm11bHRpcGx5U2NhbGFyKGwpLHRoaXMuc2guY29lZmZpY2llbnRzWzFdLmNvcHkoYSkuc3ViKHMpLm11bHRpcGx5U2NhbGFyKGMpfX0pLnByb3RvdHlwZS5pc0hlbWlzcGhlcmVMaWdodFByb2JlPSEwLGNsYXNzIGV4dGVuZHMganh7Y29uc3RydWN0b3IodCxlPTEpe3N1cGVyKHZvaWQgMCxlKTtsZXQgaT0obmV3IHNuKS5zZXQodCk7dGhpcy5zaC5jb2VmZmljaWVudHNbMF0uc2V0KGkucixpLmcsaS5iKS5tdWx0aXBseVNjYWxhcigyKk1hdGguc3FydChNYXRoLlBJKSl9fS5wcm90b3R5cGUuaXNBbWJpZW50TGlnaHRQcm9iZT0hMDt2YXIgS0I9Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkpe2xldCByLG8sYTtzd2l0Y2godGhpcy5iaW5kaW5nPXQsdGhpcy52YWx1ZVNpemU9aSxlKXtjYXNlInF1YXRlcm5pb24iOnI9dGhpcy5fc2xlcnAsbz10aGlzLl9zbGVycEFkZGl0aXZlLGE9dGhpcy5fc2V0QWRkaXRpdmVJZGVudGl0eVF1YXRlcm5pb24sdGhpcy5idWZmZXI9bmV3IEZsb2F0NjRBcnJheSg2KmkpLHRoaXMuX3dvcmtJbmRleD01O2JyZWFrO2Nhc2Uic3RyaW5nIjpjYXNlImJvb2wiOnI9dGhpcy5fc2VsZWN0LG89dGhpcy5fc2VsZWN0LGE9dGhpcy5fc2V0QWRkaXRpdmVJZGVudGl0eU90aGVyLHRoaXMuYnVmZmVyPW5ldyBBcnJheSg1KmkpO2JyZWFrO2RlZmF1bHQ6cj10aGlzLl9sZXJwLG89dGhpcy5fbGVycEFkZGl0aXZlLGE9dGhpcy5fc2V0QWRkaXRpdmVJZGVudGl0eU51bWVyaWMsdGhpcy5idWZmZXI9bmV3IEZsb2F0NjRBcnJheSg1KmkpfXRoaXMuX21peEJ1ZmZlclJlZ2lvbj1yLHRoaXMuX21peEJ1ZmZlclJlZ2lvbkFkZGl0aXZlPW8sdGhpcy5fc2V0SWRlbnRpdHk9YSx0aGlzLl9vcmlnSW5kZXg9Myx0aGlzLl9hZGRJbmRleD00LHRoaXMuY3VtdWxhdGl2ZVdlaWdodD0wLHRoaXMuY3VtdWxhdGl2ZVdlaWdodEFkZGl0aXZlPTAsdGhpcy51c2VDb3VudD0wLHRoaXMucmVmZXJlbmNlQ291bnQ9MH1hY2N1bXVsYXRlKHQsZSl7bGV0IGk9dGhpcy5idWZmZXIscj10aGlzLnZhbHVlU2l6ZSxvPXQqcityLGE9dGhpcy5jdW11bGF0aXZlV2VpZ2h0O2lmKDA9PT1hKXtmb3IobGV0IHM9MDtzIT09cjsrK3MpaVtvK3NdPWlbc107YT1lfWVsc2UgYSs9ZSx0aGlzLl9taXhCdWZmZXJSZWdpb24oaSxvLDAsZS9hLHIpO3RoaXMuY3VtdWxhdGl2ZVdlaWdodD1hfWFjY3VtdWxhdGVBZGRpdGl2ZSh0KXtsZXQgZT10aGlzLmJ1ZmZlcixpPXRoaXMudmFsdWVTaXplLHI9aSp0aGlzLl9hZGRJbmRleDswPT09dGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmUmJnRoaXMuX3NldElkZW50aXR5KCksdGhpcy5fbWl4QnVmZmVyUmVnaW9uQWRkaXRpdmUoZSxyLDAsdCxpKSx0aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZSs9dH1hcHBseSh0KXtsZXQgZT10aGlzLnZhbHVlU2l6ZSxpPXRoaXMuYnVmZmVyLHI9dCplK2Usbz10aGlzLmN1bXVsYXRpdmVXZWlnaHQsYT10aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZSxzPXRoaXMuYmluZGluZzt0aGlzLmN1bXVsYXRpdmVXZWlnaHQ9MCx0aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZT0wLG88MSYmdGhpcy5fbWl4QnVmZmVyUmVnaW9uKGkscixlKnRoaXMuX29yaWdJbmRleCwxLW8sZSksYT4wJiZ0aGlzLl9taXhCdWZmZXJSZWdpb25BZGRpdGl2ZShpLHIsdGhpcy5fYWRkSW5kZXgqZSwxLGUpO2ZvcihsZXQgbD1lLGM9ZStlO2whPT1jOysrbClpZihpW2xdIT09aVtsK2VdKXtzLnNldFZhbHVlKGkscik7YnJlYWt9fXNhdmVPcmlnaW5hbFN0YXRlKCl7bGV0IGU9dGhpcy5idWZmZXIsaT10aGlzLnZhbHVlU2l6ZSxyPWkqdGhpcy5fb3JpZ0luZGV4O3RoaXMuYmluZGluZy5nZXRWYWx1ZShlLHIpO2ZvcihsZXQgbz1pLGE9cjtvIT09YTsrK28pZVtvXT1lW3IrbyVpXTt0aGlzLl9zZXRJZGVudGl0eSgpLHRoaXMuY3VtdWxhdGl2ZVdlaWdodD0wLHRoaXMuY3VtdWxhdGl2ZVdlaWdodEFkZGl0aXZlPTB9cmVzdG9yZU9yaWdpbmFsU3RhdGUoKXt0aGlzLmJpbmRpbmcuc2V0VmFsdWUodGhpcy5idWZmZXIsMyp0aGlzLnZhbHVlU2l6ZSl9X3NldEFkZGl0aXZlSWRlbnRpdHlOdW1lcmljKCl7bGV0IHQ9dGhpcy5fYWRkSW5kZXgqdGhpcy52YWx1ZVNpemUsZT10K3RoaXMudmFsdWVTaXplO2ZvcihsZXQgaT10O2k8ZTtpKyspdGhpcy5idWZmZXJbaV09MH1fc2V0QWRkaXRpdmVJZGVudGl0eVF1YXRlcm5pb24oKXt0aGlzLl9zZXRBZGRpdGl2ZUlkZW50aXR5TnVtZXJpYygpLHRoaXMuYnVmZmVyW3RoaXMuX2FkZEluZGV4KnRoaXMudmFsdWVTaXplKzNdPTF9X3NldEFkZGl0aXZlSWRlbnRpdHlPdGhlcigpe2xldCB0PXRoaXMuX29yaWdJbmRleCp0aGlzLnZhbHVlU2l6ZSxlPXRoaXMuX2FkZEluZGV4KnRoaXMudmFsdWVTaXplO2ZvcihsZXQgaT0wO2k8dGhpcy52YWx1ZVNpemU7aSsrKXRoaXMuYnVmZmVyW2UraV09dGhpcy5idWZmZXJbdCtpXX1fc2VsZWN0KHQsZSxpLHIsbyl7aWYocj49LjUpZm9yKGxldCBhPTA7YSE9PW87KythKXRbZSthXT10W2krYV19X3NsZXJwKHQsZSxpLHIpe29hLnNsZXJwRmxhdCh0LGUsdCxlLHQsaSxyKX1fc2xlcnBBZGRpdGl2ZSh0LGUsaSxyLG8pe2xldCBhPXRoaXMuX3dvcmtJbmRleCpvO29hLm11bHRpcGx5UXVhdGVybmlvbnNGbGF0KHQsYSx0LGUsdCxpKSxvYS5zbGVycEZsYXQodCxlLHQsZSx0LGEscil9X2xlcnAodCxlLGkscixvKXtsZXQgYT0xLXI7Zm9yKGxldCBzPTA7cyE9PW87KytzKXtsZXQgbD1lK3M7dFtsXT10W2xdKmErdFtpK3NdKnJ9fV9sZXJwQWRkaXRpdmUodCxlLGkscixvKXtmb3IobGV0IGE9MDthIT09bzsrK2Epe2xldCBzPWUrYTt0W3NdPXRbc10rdFtpK2FdKnJ9fX0scFY9IlxcW1xcXVxcLjpcXC8iLGxOZT1uZXcgUmVnRXhwKCJbIitwVisiXSIsImciKSxoVj0iW14iK3BWKyJdIixjTmU9IlteIitwVi5yZXBsYWNlKCJcXC4iLCIiKSsiXSIsZE5lPS8oKD86V0MrW1wvOl0pKikvLnNvdXJjZS5yZXBsYWNlKCJXQyIsaFYpLHVOZT0vKFdDT0QrKT8vLnNvdXJjZS5yZXBsYWNlKCJXQ09EIixjTmUpLHBOZT0vKD86XC4oV0MrKSg/OlxbKC4rKVxdKT8pPy8uc291cmNlLnJlcGxhY2UoIldDIixoViksaE5lPS9cLihXQyspKD86XFsoLispXF0pPy8uc291cmNlLnJlcGxhY2UoIldDIixoViksbU5lPW5ldyBSZWdFeHAoIl4iK2ROZSt1TmUrcE5lK2hOZSsiJCIpLGZOZT1bIm1hdGVyaWFsIiwibWF0ZXJpYWxzIiwiYm9uZXMiXSxKQj1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSl7bGV0IHI9aXx8YnIucGFyc2VUcmFja05hbWUoZSk7dGhpcy5fdGFyZ2V0R3JvdXA9dCx0aGlzLl9iaW5kaW5ncz10LnN1YnNjcmliZV8oZSxyKX1nZXRWYWx1ZSh0LGUpe3RoaXMuYmluZCgpO2xldCByPXRoaXMuX2JpbmRpbmdzW3RoaXMuX3RhcmdldEdyb3VwLm5DYWNoZWRPYmplY3RzX107dm9pZCAwIT09ciYmci5nZXRWYWx1ZSh0LGUpfXNldFZhbHVlKHQsZSl7bGV0IGk9dGhpcy5fYmluZGluZ3M7Zm9yKGxldCByPXRoaXMuX3RhcmdldEdyb3VwLm5DYWNoZWRPYmplY3RzXyxvPWkubGVuZ3RoO3IhPT1vOysrcilpW3JdLnNldFZhbHVlKHQsZSl9YmluZCgpe2xldCB0PXRoaXMuX2JpbmRpbmdzO2ZvcihsZXQgZT10aGlzLl90YXJnZXRHcm91cC5uQ2FjaGVkT2JqZWN0c18saT10Lmxlbmd0aDtlIT09aTsrK2UpdFtlXS5iaW5kKCl9dW5iaW5kKCl7bGV0IHQ9dGhpcy5fYmluZGluZ3M7Zm9yKGxldCBlPXRoaXMuX3RhcmdldEdyb3VwLm5DYWNoZWRPYmplY3RzXyxpPXQubGVuZ3RoO2UhPT1pOysrZSl0W2VdLnVuYmluZCgpfX0sYnI9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscil7dGhpcy5wYXRoPWksdGhpcy5wYXJzZWRQYXRoPXJ8fG4ucGFyc2VUcmFja05hbWUoaSksdGhpcy5ub2RlPW4uZmluZE5vZGUoZSx0aGlzLnBhcnNlZFBhdGgubm9kZU5hbWUpfHxlLHRoaXMucm9vdE5vZGU9ZSx0aGlzLmdldFZhbHVlPXRoaXMuX2dldFZhbHVlX3VuYm91bmQsdGhpcy5zZXRWYWx1ZT10aGlzLl9zZXRWYWx1ZV91bmJvdW5kfXN0YXRpYyBjcmVhdGUoZSxpLHIpe3JldHVybiBlJiZlLmlzQW5pbWF0aW9uT2JqZWN0R3JvdXA/bmV3IG4uQ29tcG9zaXRlKGUsaSxyKTpuZXcgbihlLGkscil9c3RhdGljIHNhbml0aXplTm9kZU5hbWUoZSl7cmV0dXJuIGUucmVwbGFjZSgvXHMvZywiXyIpLnJlcGxhY2UobE5lLCIiKX1zdGF0aWMgcGFyc2VUcmFja05hbWUoZSl7bGV0IGk9bU5lLmV4ZWMoZSk7aWYoIWkpdGhyb3cgbmV3IEVycm9yKCJQcm9wZXJ0eUJpbmRpbmc6IENhbm5vdCBwYXJzZSB0cmFja05hbWU6ICIrZSk7bGV0IHI9e25vZGVOYW1lOmlbMl0sb2JqZWN0TmFtZTppWzNdLG9iamVjdEluZGV4OmlbNF0scHJvcGVydHlOYW1lOmlbNV0scHJvcGVydHlJbmRleDppWzZdfSxvPXIubm9kZU5hbWUmJnIubm9kZU5hbWUubGFzdEluZGV4T2YoIi4iKTtpZih2b2lkIDAhPT1vJiYtMSE9PW8pe2xldCBhPXIubm9kZU5hbWUuc3Vic3RyaW5nKG8rMSk7LTEhPT1mTmUuaW5kZXhPZihhKSYmKHIubm9kZU5hbWU9ci5ub2RlTmFtZS5zdWJzdHJpbmcoMCxvKSxyLm9iamVjdE5hbWU9YSl9aWYobnVsbD09PXIucHJvcGVydHlOYW1lfHwwPT09ci5wcm9wZXJ0eU5hbWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiUHJvcGVydHlCaW5kaW5nOiBjYW4gbm90IHBhcnNlIHByb3BlcnR5TmFtZSBmcm9tIHRyYWNrTmFtZTogIitlKTtyZXR1cm4gcn1zdGF0aWMgZmluZE5vZGUoZSxpKXtpZighaXx8IiI9PT1pfHwiLiI9PT1pfHwtMT09PWl8fGk9PT1lLm5hbWV8fGk9PT1lLnV1aWQpcmV0dXJuIGU7aWYoZS5za2VsZXRvbil7bGV0IHI9ZS5za2VsZXRvbi5nZXRCb25lQnlOYW1lKGkpO2lmKHZvaWQgMCE9PXIpcmV0dXJuIHJ9aWYoZS5jaGlsZHJlbil7bGV0IHI9ZnVuY3Rpb24oYSl7Zm9yKGxldCBzPTA7czxhLmxlbmd0aDtzKyspe2xldCBsPWFbc107aWYobC5uYW1lPT09aXx8bC51dWlkPT09aSlyZXR1cm4gbDtsZXQgYz1yKGwuY2hpbGRyZW4pO2lmKGMpcmV0dXJuIGN9cmV0dXJuIG51bGx9LG89cihlLmNoaWxkcmVuKTtpZihvKXJldHVybiBvfXJldHVybiBudWxsfV9nZXRWYWx1ZV91bmF2YWlsYWJsZSgpe31fc2V0VmFsdWVfdW5hdmFpbGFibGUoKXt9X2dldFZhbHVlX2RpcmVjdChlLGkpe2VbaV09dGhpcy50YXJnZXRPYmplY3RbdGhpcy5wcm9wZXJ0eU5hbWVdfV9nZXRWYWx1ZV9hcnJheShlLGkpe2xldCByPXRoaXMucmVzb2x2ZWRQcm9wZXJ0eTtmb3IobGV0IG89MCxhPXIubGVuZ3RoO28hPT1hOysrbyllW2krK109cltvXX1fZ2V0VmFsdWVfYXJyYXlFbGVtZW50KGUsaSl7ZVtpXT10aGlzLnJlc29sdmVkUHJvcGVydHlbdGhpcy5wcm9wZXJ0eUluZGV4XX1fZ2V0VmFsdWVfdG9BcnJheShlLGkpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eS50b0FycmF5KGUsaSl9X3NldFZhbHVlX2RpcmVjdChlLGkpe3RoaXMudGFyZ2V0T2JqZWN0W3RoaXMucHJvcGVydHlOYW1lXT1lW2ldfV9zZXRWYWx1ZV9kaXJlY3Rfc2V0TmVlZHNVcGRhdGUoZSxpKXt0aGlzLnRhcmdldE9iamVjdFt0aGlzLnByb3BlcnR5TmFtZV09ZVtpXSx0aGlzLnRhcmdldE9iamVjdC5uZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfZGlyZWN0X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGUoZSxpKXt0aGlzLnRhcmdldE9iamVjdFt0aGlzLnByb3BlcnR5TmFtZV09ZVtpXSx0aGlzLnRhcmdldE9iamVjdC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9hcnJheShlLGkpe2xldCByPXRoaXMucmVzb2x2ZWRQcm9wZXJ0eTtmb3IobGV0IG89MCxhPXIubGVuZ3RoO28hPT1hOysrbylyW29dPWVbaSsrXX1fc2V0VmFsdWVfYXJyYXlfc2V0TmVlZHNVcGRhdGUoZSxpKXtsZXQgcj10aGlzLnJlc29sdmVkUHJvcGVydHk7Zm9yKGxldCBvPTAsYT1yLmxlbmd0aDtvIT09YTsrK28pcltvXT1lW2krK107dGhpcy50YXJnZXRPYmplY3QubmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2FycmF5X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGUoZSxpKXtsZXQgcj10aGlzLnJlc29sdmVkUHJvcGVydHk7Zm9yKGxldCBvPTAsYT1yLmxlbmd0aDtvIT09YTsrK28pcltvXT1lW2krK107dGhpcy50YXJnZXRPYmplY3QubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfYXJyYXlFbGVtZW50KGUsaSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5W3RoaXMucHJvcGVydHlJbmRleF09ZVtpXX1fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE5lZWRzVXBkYXRlKGUsaSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5W3RoaXMucHJvcGVydHlJbmRleF09ZVtpXSx0aGlzLnRhcmdldE9iamVjdC5uZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGUoZSxpKXt0aGlzLnJlc29sdmVkUHJvcGVydHlbdGhpcy5wcm9wZXJ0eUluZGV4XT1lW2ldLHRoaXMudGFyZ2V0T2JqZWN0Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2Zyb21BcnJheShlLGkpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eS5mcm9tQXJyYXkoZSxpKX1fc2V0VmFsdWVfZnJvbUFycmF5X3NldE5lZWRzVXBkYXRlKGUsaSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5LmZyb21BcnJheShlLGkpLHRoaXMudGFyZ2V0T2JqZWN0Lm5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9mcm9tQXJyYXlfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZShlLGkpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eS5mcm9tQXJyYXkoZSxpKSx0aGlzLnRhcmdldE9iamVjdC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSEwfV9nZXRWYWx1ZV91bmJvdW5kKGUsaSl7dGhpcy5iaW5kKCksdGhpcy5nZXRWYWx1ZShlLGkpfV9zZXRWYWx1ZV91bmJvdW5kKGUsaSl7dGhpcy5iaW5kKCksdGhpcy5zZXRWYWx1ZShlLGkpfWJpbmQoKXtsZXQgZT10aGlzLm5vZGUsaT10aGlzLnBhcnNlZFBhdGgscj1pLm9iamVjdE5hbWUsbz1pLnByb3BlcnR5TmFtZSxhPWkucHJvcGVydHlJbmRleDtpZihlfHwoZT1uLmZpbmROb2RlKHRoaXMucm9vdE5vZGUsaS5ub2RlTmFtZSl8fHRoaXMucm9vdE5vZGUsdGhpcy5ub2RlPWUpLHRoaXMuZ2V0VmFsdWU9dGhpcy5fZ2V0VmFsdWVfdW5hdmFpbGFibGUsdGhpcy5zZXRWYWx1ZT10aGlzLl9zZXRWYWx1ZV91bmF2YWlsYWJsZSwhZSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IFRyeWluZyB0byB1cGRhdGUgbm9kZSBmb3IgdHJhY2s6ICIrdGhpcy5wYXRoKyIgYnV0IGl0IHdhc24ndCBmb3VuZC4iKTtpZihyKXtsZXQgZD1pLm9iamVjdEluZGV4O3N3aXRjaChyKXtjYXNlIm1hdGVyaWFscyI6aWYoIWUubWF0ZXJpYWwpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbWF0ZXJpYWwgYXMgbm9kZSBkb2VzIG5vdCBoYXZlIGEgbWF0ZXJpYWwuIix0aGlzKTtpZighZS5tYXRlcmlhbC5tYXRlcmlhbHMpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbWF0ZXJpYWwubWF0ZXJpYWxzIGFzIG5vZGUubWF0ZXJpYWwgZG9lcyBub3QgaGF2ZSBhIG1hdGVyaWFscyBhcnJheS4iLHRoaXMpO2U9ZS5tYXRlcmlhbC5tYXRlcmlhbHM7YnJlYWs7Y2FzZSJib25lcyI6aWYoIWUuc2tlbGV0b24pcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gYm9uZXMgYXMgbm9kZSBkb2VzIG5vdCBoYXZlIGEgc2tlbGV0b24uIix0aGlzKTtlPWUuc2tlbGV0b24uYm9uZXM7Zm9yKGxldCB1PTA7dTxlLmxlbmd0aDt1KyspaWYoZVt1XS5uYW1lPT09ZCl7ZD11O2JyZWFrfWJyZWFrO2RlZmF1bHQ6aWYodm9pZCAwPT09ZVtyXSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBvYmplY3ROYW1lIG9mIG5vZGUgdW5kZWZpbmVkLiIsdGhpcyk7ZT1lW3JdfWlmKHZvaWQgMCE9PWQpe2lmKHZvaWQgMD09PWVbZF0pcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBUcnlpbmcgdG8gYmluZCB0byBvYmplY3RJbmRleCBvZiBvYmplY3ROYW1lLCBidXQgaXMgdW5kZWZpbmVkLiIsdGhpcyxlKTtlPWVbZF19fWxldCBzPWVbb107aWYodm9pZCAwPT09cylyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IFRyeWluZyB0byB1cGRhdGUgcHJvcGVydHkgZm9yIHRyYWNrOiAiK2kubm9kZU5hbWUrIi4iK28rIiBidXQgaXQgd2Fzbid0IGZvdW5kLiIsZSk7bGV0IGw9dGhpcy5WZXJzaW9uaW5nLk5vbmU7dGhpcy50YXJnZXRPYmplY3Q9ZSx2b2lkIDAhPT1lLm5lZWRzVXBkYXRlP2w9dGhpcy5WZXJzaW9uaW5nLk5lZWRzVXBkYXRlOnZvaWQgMCE9PWUubWF0cml4V29ybGROZWVkc1VwZGF0ZSYmKGw9dGhpcy5WZXJzaW9uaW5nLk1hdHJpeFdvcmxkTmVlZHNVcGRhdGUpO2xldCBjPXRoaXMuQmluZGluZ1R5cGUuRGlyZWN0O2lmKHZvaWQgMCE9PWEpe2lmKCJtb3JwaFRhcmdldEluZmx1ZW5jZXMiPT09byl7aWYoIWUuZ2VvbWV0cnkpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbW9ycGhUYXJnZXRJbmZsdWVuY2VzIGJlY2F1c2Ugbm9kZSBkb2VzIG5vdCBoYXZlIGEgZ2VvbWV0cnkuIix0aGlzKTtpZighZS5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogQ2FuIG5vdCBiaW5kIHRvIG1vcnBoVGFyZ2V0SW5mbHVlbmNlcyBvbiBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIix0aGlzKTtpZighZS5nZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbW9ycGhUYXJnZXRJbmZsdWVuY2VzIGJlY2F1c2Ugbm9kZSBkb2VzIG5vdCBoYXZlIGEgZ2VvbWV0cnkubW9ycGhBdHRyaWJ1dGVzLiIsdGhpcyk7dm9pZCAwIT09ZS5tb3JwaFRhcmdldERpY3Rpb25hcnlbYV0mJihhPWUubW9ycGhUYXJnZXREaWN0aW9uYXJ5W2FdKX1jPXRoaXMuQmluZGluZ1R5cGUuQXJyYXlFbGVtZW50LHRoaXMucmVzb2x2ZWRQcm9wZXJ0eT1zLHRoaXMucHJvcGVydHlJbmRleD1hfWVsc2Ugdm9pZCAwIT09cy5mcm9tQXJyYXkmJnZvaWQgMCE9PXMudG9BcnJheT8oYz10aGlzLkJpbmRpbmdUeXBlLkhhc0Zyb21Ub0FycmF5LHRoaXMucmVzb2x2ZWRQcm9wZXJ0eT1zKTpBcnJheS5pc0FycmF5KHMpPyhjPXRoaXMuQmluZGluZ1R5cGUuRW50aXJlQXJyYXksdGhpcy5yZXNvbHZlZFByb3BlcnR5PXMpOnRoaXMucHJvcGVydHlOYW1lPW87dGhpcy5nZXRWYWx1ZT10aGlzLkdldHRlckJ5QmluZGluZ1R5cGVbY10sdGhpcy5zZXRWYWx1ZT10aGlzLlNldHRlckJ5QmluZGluZ1R5cGVBbmRWZXJzaW9uaW5nW2NdW2xdfXVuYmluZCgpe3RoaXMubm9kZT1udWxsLHRoaXMuZ2V0VmFsdWU9dGhpcy5fZ2V0VmFsdWVfdW5ib3VuZCx0aGlzLnNldFZhbHVlPXRoaXMuX3NldFZhbHVlX3VuYm91bmR9fXJldHVybiBuLkNvbXBvc2l0ZT1KQixufSkoKTtici5wcm90b3R5cGUuQmluZGluZ1R5cGU9e0RpcmVjdDowLEVudGlyZUFycmF5OjEsQXJyYXlFbGVtZW50OjIsSGFzRnJvbVRvQXJyYXk6M30sYnIucHJvdG90eXBlLlZlcnNpb25pbmc9e05vbmU6MCxOZWVkc1VwZGF0ZToxLE1hdHJpeFdvcmxkTmVlZHNVcGRhdGU6Mn0sYnIucHJvdG90eXBlLkdldHRlckJ5QmluZGluZ1R5cGU9W2JyLnByb3RvdHlwZS5fZ2V0VmFsdWVfZGlyZWN0LGJyLnByb3RvdHlwZS5fZ2V0VmFsdWVfYXJyYXksYnIucHJvdG90eXBlLl9nZXRWYWx1ZV9hcnJheUVsZW1lbnQsYnIucHJvdG90eXBlLl9nZXRWYWx1ZV90b0FycmF5XSxici5wcm90b3R5cGUuU2V0dGVyQnlCaW5kaW5nVHlwZUFuZFZlcnNpb25pbmc9W1tici5wcm90b3R5cGUuX3NldFZhbHVlX2RpcmVjdCxici5wcm90b3R5cGUuX3NldFZhbHVlX2RpcmVjdF9zZXROZWVkc1VwZGF0ZSxici5wcm90b3R5cGUuX3NldFZhbHVlX2RpcmVjdF9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlXSxbYnIucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheSxici5wcm90b3R5cGUuX3NldFZhbHVlX2FycmF5X3NldE5lZWRzVXBkYXRlLGJyLnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZV0sW2JyLnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlFbGVtZW50LGJyLnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE5lZWRzVXBkYXRlLGJyLnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGVdLFtici5wcm90b3R5cGUuX3NldFZhbHVlX2Zyb21BcnJheSxici5wcm90b3R5cGUuX3NldFZhbHVlX2Zyb21BcnJheV9zZXROZWVkc1VwZGF0ZSxici5wcm90b3R5cGUuX3NldFZhbHVlX2Zyb21BcnJheV9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlXV0sY2xhc3MgZXh0ZW5kcyB6ZHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuX3Jvb3Q9dCx0aGlzLl9pbml0TWVtb3J5TWFuYWdlcigpLHRoaXMuX2FjY3VJbmRleD0wLHRoaXMudGltZT0wLHRoaXMudGltZVNjYWxlPTF9X2JpbmRBY3Rpb24odCxlKXtsZXQgaT10Ll9sb2NhbFJvb3R8fHRoaXMuX3Jvb3Qscj10Ll9jbGlwLnRyYWNrcyxvPXIubGVuZ3RoLGE9dC5fcHJvcGVydHlCaW5kaW5ncyxzPXQuX2ludGVycG9sYW50cyxsPWkudXVpZCxjPXRoaXMuX2JpbmRpbmdzQnlSb290QW5kTmFtZSxkPWNbbF07dm9pZCAwPT09ZCYmKGQ9e30sY1tsXT1kKTtmb3IobGV0IHU9MDt1IT09bzsrK3Upe2xldCBwPXJbdV0saD1wLm5hbWUsbT1kW2hdO2lmKHZvaWQgMCE9PW0pKyttLnJlZmVyZW5jZUNvdW50LGFbdV09bTtlbHNle2lmKG09YVt1XSx2b2lkIDAhPT1tKXtudWxsPT09bS5fY2FjaGVJbmRleCYmKCsrbS5yZWZlcmVuY2VDb3VudCx0aGlzLl9hZGRJbmFjdGl2ZUJpbmRpbmcobSxsLGgpKTtjb250aW51ZX1tPW5ldyBLQihici5jcmVhdGUoaSxoLGUmJmUuX3Byb3BlcnR5QmluZGluZ3NbdV0uYmluZGluZy5wYXJzZWRQYXRoKSxwLlZhbHVlVHlwZU5hbWUscC5nZXRWYWx1ZVNpemUoKSksKyttLnJlZmVyZW5jZUNvdW50LHRoaXMuX2FkZEluYWN0aXZlQmluZGluZyhtLGwsaCksYVt1XT1tfXNbdV0ucmVzdWx0QnVmZmVyPW0uYnVmZmVyfX1fYWN0aXZhdGVBY3Rpb24odCl7aWYoIXRoaXMuX2lzQWN0aXZlQWN0aW9uKHQpKXtpZihudWxsPT09dC5fY2FjaGVJbmRleCl7bGV0IGk9KHQuX2xvY2FsUm9vdHx8dGhpcy5fcm9vdCkudXVpZCxyPXQuX2NsaXAudXVpZCxvPXRoaXMuX2FjdGlvbnNCeUNsaXBbcl07dGhpcy5fYmluZEFjdGlvbih0LG8mJm8ua25vd25BY3Rpb25zWzBdKSx0aGlzLl9hZGRJbmFjdGl2ZUFjdGlvbih0LHIsaSl9bGV0IGU9dC5fcHJvcGVydHlCaW5kaW5ncztmb3IobGV0IGk9MCxyPWUubGVuZ3RoO2khPT1yOysraSl7bGV0IG89ZVtpXTswPT1vLnVzZUNvdW50KysmJih0aGlzLl9sZW5kQmluZGluZyhvKSxvLnNhdmVPcmlnaW5hbFN0YXRlKCkpfXRoaXMuX2xlbmRBY3Rpb24odCl9fV9kZWFjdGl2YXRlQWN0aW9uKHQpe2lmKHRoaXMuX2lzQWN0aXZlQWN0aW9uKHQpKXtsZXQgZT10Ll9wcm9wZXJ0eUJpbmRpbmdzO2ZvcihsZXQgaT0wLHI9ZS5sZW5ndGg7aSE9PXI7KytpKXtsZXQgbz1lW2ldOzA9PS0tby51c2VDb3VudCYmKG8ucmVzdG9yZU9yaWdpbmFsU3RhdGUoKSx0aGlzLl90YWtlQmFja0JpbmRpbmcobykpfXRoaXMuX3Rha2VCYWNrQWN0aW9uKHQpfX1faW5pdE1lbW9yeU1hbmFnZXIoKXt0aGlzLl9hY3Rpb25zPVtdLHRoaXMuX25BY3RpdmVBY3Rpb25zPTAsdGhpcy5fYWN0aW9uc0J5Q2xpcD17fSx0aGlzLl9iaW5kaW5ncz1bXSx0aGlzLl9uQWN0aXZlQmluZGluZ3M9MCx0aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWU9e30sdGhpcy5fY29udHJvbEludGVycG9sYW50cz1bXSx0aGlzLl9uQWN0aXZlQ29udHJvbEludGVycG9sYW50cz0wO2xldCB0PXRoaXM7dGhpcy5zdGF0cz17YWN0aW9uczp7Z2V0IHRvdGFsKCl7cmV0dXJuIHQuX2FjdGlvbnMubGVuZ3RofSxnZXQgaW5Vc2UoKXtyZXR1cm4gdC5fbkFjdGl2ZUFjdGlvbnN9fSxiaW5kaW5nczp7Z2V0IHRvdGFsKCl7cmV0dXJuIHQuX2JpbmRpbmdzLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVCaW5kaW5nc319LGNvbnRyb2xJbnRlcnBvbGFudHM6e2dldCB0b3RhbCgpe3JldHVybiB0Ll9jb250cm9sSW50ZXJwb2xhbnRzLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVDb250cm9sSW50ZXJwb2xhbnRzfX19fV9pc0FjdGl2ZUFjdGlvbih0KXtsZXQgZT10Ll9jYWNoZUluZGV4O3JldHVybiBudWxsIT09ZSYmZTx0aGlzLl9uQWN0aXZlQWN0aW9uc31fYWRkSW5hY3RpdmVBY3Rpb24odCxlLGkpe2xldCByPXRoaXMuX2FjdGlvbnMsbz10aGlzLl9hY3Rpb25zQnlDbGlwLGE9b1tlXTtpZih2b2lkIDA9PT1hKWE9e2tub3duQWN0aW9uczpbdF0sYWN0aW9uQnlSb290Ont9fSx0Ll9ieUNsaXBDYWNoZUluZGV4PTAsb1tlXT1hO2Vsc2V7bGV0IHM9YS5rbm93bkFjdGlvbnM7dC5fYnlDbGlwQ2FjaGVJbmRleD1zLmxlbmd0aCxzLnB1c2godCl9dC5fY2FjaGVJbmRleD1yLmxlbmd0aCxyLnB1c2godCksYS5hY3Rpb25CeVJvb3RbaV09dH1fcmVtb3ZlSW5hY3RpdmVBY3Rpb24odCl7bGV0IGU9dGhpcy5fYWN0aW9ucyxpPWVbZS5sZW5ndGgtMV0scj10Ll9jYWNoZUluZGV4O2kuX2NhY2hlSW5kZXg9cixlW3JdPWksZS5wb3AoKSx0Ll9jYWNoZUluZGV4PW51bGw7bGV0IG89dC5fY2xpcC51dWlkLGE9dGhpcy5fYWN0aW9uc0J5Q2xpcCxzPWFbb10sbD1zLmtub3duQWN0aW9ucyxjPWxbbC5sZW5ndGgtMV0sZD10Ll9ieUNsaXBDYWNoZUluZGV4O2MuX2J5Q2xpcENhY2hlSW5kZXg9ZCxsW2RdPWMsbC5wb3AoKSx0Ll9ieUNsaXBDYWNoZUluZGV4PW51bGwsZGVsZXRlIHMuYWN0aW9uQnlSb290Wyh0Ll9sb2NhbFJvb3R8fHRoaXMuX3Jvb3QpLnV1aWRdLDA9PT1sLmxlbmd0aCYmZGVsZXRlIGFbb10sdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nc0ZvckFjdGlvbih0KX1fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nc0ZvckFjdGlvbih0KXtsZXQgZT10Ll9wcm9wZXJ0eUJpbmRpbmdzO2ZvcihsZXQgaT0wLHI9ZS5sZW5ndGg7aSE9PXI7KytpKXtsZXQgbz1lW2ldOzA9PS0tby5yZWZlcmVuY2VDb3VudCYmdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKG8pfX1fbGVuZEFjdGlvbih0KXtsZXQgZT10aGlzLl9hY3Rpb25zLGk9dC5fY2FjaGVJbmRleCxyPXRoaXMuX25BY3RpdmVBY3Rpb25zKyssbz1lW3JdO3QuX2NhY2hlSW5kZXg9cixlW3JdPXQsby5fY2FjaGVJbmRleD1pLGVbaV09b31fdGFrZUJhY2tBY3Rpb24odCl7bGV0IGU9dGhpcy5fYWN0aW9ucyxpPXQuX2NhY2hlSW5kZXgscj0tLXRoaXMuX25BY3RpdmVBY3Rpb25zLG89ZVtyXTt0Ll9jYWNoZUluZGV4PXIsZVtyXT10LG8uX2NhY2hlSW5kZXg9aSxlW2ldPW99X2FkZEluYWN0aXZlQmluZGluZyh0LGUsaSl7bGV0IHI9dGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lLG89dGhpcy5fYmluZGluZ3MsYT1yW2VdO3ZvaWQgMD09PWEmJihhPXt9LHJbZV09YSksYVtpXT10LHQuX2NhY2hlSW5kZXg9by5sZW5ndGgsby5wdXNoKHQpfV9yZW1vdmVJbmFjdGl2ZUJpbmRpbmcodCl7bGV0IGU9dGhpcy5fYmluZGluZ3MsaT10LmJpbmRpbmcscj1pLnJvb3ROb2RlLnV1aWQsbz1pLnBhdGgsYT10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWUscz1hW3JdLGw9ZVtlLmxlbmd0aC0xXSxjPXQuX2NhY2hlSW5kZXg7bC5fY2FjaGVJbmRleD1jLGVbY109bCxlLnBvcCgpLGRlbGV0ZSBzW29dLDA9PT1PYmplY3Qua2V5cyhzKS5sZW5ndGgmJmRlbGV0ZSBhW3JdfV9sZW5kQmluZGluZyh0KXtsZXQgZT10aGlzLl9iaW5kaW5ncyxpPXQuX2NhY2hlSW5kZXgscj10aGlzLl9uQWN0aXZlQmluZGluZ3MrKyxvPWVbcl07dC5fY2FjaGVJbmRleD1yLGVbcl09dCxvLl9jYWNoZUluZGV4PWksZVtpXT1vfV90YWtlQmFja0JpbmRpbmcodCl7bGV0IGU9dGhpcy5fYmluZGluZ3MsaT10Ll9jYWNoZUluZGV4LHI9LS10aGlzLl9uQWN0aXZlQmluZGluZ3Msbz1lW3JdO3QuX2NhY2hlSW5kZXg9cixlW3JdPXQsby5fY2FjaGVJbmRleD1pLGVbaV09b31fbGVuZENvbnRyb2xJbnRlcnBvbGFudCgpe2xldCB0PXRoaXMuX2NvbnRyb2xJbnRlcnBvbGFudHMsZT10aGlzLl9uQWN0aXZlQ29udHJvbEludGVycG9sYW50cysrLGk9dFtlXTtyZXR1cm4gdm9pZCAwPT09aSYmKGk9bmV3IGpJKG5ldyBGbG9hdDMyQXJyYXkoMiksbmV3IEZsb2F0MzJBcnJheSgyKSwxLHRoaXMuX2NvbnRyb2xJbnRlcnBvbGFudHNSZXN1bHRCdWZmZXIpLGkuX19jYWNoZUluZGV4PWUsdFtlXT1pKSxpfV90YWtlQmFja0NvbnRyb2xJbnRlcnBvbGFudCh0KXtsZXQgZT10aGlzLl9jb250cm9sSW50ZXJwb2xhbnRzLGk9dC5fX2NhY2hlSW5kZXgscj0tLXRoaXMuX25BY3RpdmVDb250cm9sSW50ZXJwb2xhbnRzLG89ZVtyXTt0Ll9fY2FjaGVJbmRleD1yLGVbcl09dCxvLl9fY2FjaGVJbmRleD1pLGVbaV09b31jbGlwQWN0aW9uKHQsZSxpKXtsZXQgcj1lfHx0aGlzLl9yb290LG89ci51dWlkLGE9InN0cmluZyI9PXR5cGVvZiB0P1dJLmZpbmRCeU5hbWUocix0KTp0LHM9bnVsbCE9PWE/YS51dWlkOnQsbD10aGlzLl9hY3Rpb25zQnlDbGlwW3NdLGM9bnVsbDtpZih2b2lkIDA9PT1pJiYoaT1udWxsIT09YT9hLmJsZW5kTW9kZToyNTAwKSx2b2lkIDAhPT1sKXtsZXQgdT1sLmFjdGlvbkJ5Um9vdFtvXTtpZih2b2lkIDAhPT11JiZ1LmJsZW5kTW9kZT09PWkpcmV0dXJuIHU7Yz1sLmtub3duQWN0aW9uc1swXSxudWxsPT09YSYmKGE9Yy5fY2xpcCl9aWYobnVsbD09PWEpcmV0dXJuIG51bGw7bGV0IGQ9bmV3IGNsYXNze2NvbnN0cnVjdG9yKHQsZSxpPW51bGwscj1lLmJsZW5kTW9kZSl7dGhpcy5fbWl4ZXI9dCx0aGlzLl9jbGlwPWUsdGhpcy5fbG9jYWxSb290PWksdGhpcy5ibGVuZE1vZGU9cjtsZXQgbz1lLnRyYWNrcyxhPW8ubGVuZ3RoLHM9bmV3IEFycmF5KGEpLGw9e2VuZGluZ1N0YXJ0OmowLGVuZGluZ0VuZDpqMH07Zm9yKGxldCBjPTA7YyE9PWE7KytjKXtsZXQgZD1vW2NdLmNyZWF0ZUludGVycG9sYW50KG51bGwpO3NbY109ZCxkLnNldHRpbmdzPWx9dGhpcy5faW50ZXJwb2xhbnRTZXR0aW5ncz1sLHRoaXMuX2ludGVycG9sYW50cz1zLHRoaXMuX3Byb3BlcnR5QmluZGluZ3M9bmV3IEFycmF5KGEpLHRoaXMuX2NhY2hlSW5kZXg9bnVsbCx0aGlzLl9ieUNsaXBDYWNoZUluZGV4PW51bGwsdGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ9bnVsbCx0aGlzLl93ZWlnaHRJbnRlcnBvbGFudD1udWxsLHRoaXMubG9vcD0yMjAxLHRoaXMuX2xvb3BDb3VudD0tMSx0aGlzLl9zdGFydFRpbWU9bnVsbCx0aGlzLnRpbWU9MCx0aGlzLnRpbWVTY2FsZT0xLHRoaXMuX2VmZmVjdGl2ZVRpbWVTY2FsZT0xLHRoaXMud2VpZ2h0PTEsdGhpcy5fZWZmZWN0aXZlV2VpZ2h0PTEsdGhpcy5yZXBldGl0aW9ucz0xLzAsdGhpcy5wYXVzZWQ9ITEsdGhpcy5lbmFibGVkPSEwLHRoaXMuY2xhbXBXaGVuRmluaXNoZWQ9ITEsdGhpcy56ZXJvU2xvcGVBdFN0YXJ0PSEwLHRoaXMuemVyb1Nsb3BlQXRFbmQ9ITB9cGxheSgpe3JldHVybiB0aGlzLl9taXhlci5fYWN0aXZhdGVBY3Rpb24odGhpcyksdGhpc31zdG9wKCl7cmV0dXJuIHRoaXMuX21peGVyLl9kZWFjdGl2YXRlQWN0aW9uKHRoaXMpLHRoaXMucmVzZXQoKX1yZXNldCgpe3JldHVybiB0aGlzLnBhdXNlZD0hMSx0aGlzLmVuYWJsZWQ9ITAsdGhpcy50aW1lPTAsdGhpcy5fbG9vcENvdW50PS0xLHRoaXMuX3N0YXJ0VGltZT1udWxsLHRoaXMuc3RvcEZhZGluZygpLnN0b3BXYXJwaW5nKCl9aXNSdW5uaW5nKCl7cmV0dXJuIHRoaXMuZW5hYmxlZCYmIXRoaXMucGF1c2VkJiYwIT09dGhpcy50aW1lU2NhbGUmJm51bGw9PT10aGlzLl9zdGFydFRpbWUmJnRoaXMuX21peGVyLl9pc0FjdGl2ZUFjdGlvbih0aGlzKX1pc1NjaGVkdWxlZCgpe3JldHVybiB0aGlzLl9taXhlci5faXNBY3RpdmVBY3Rpb24odGhpcyl9c3RhcnRBdCh0KXtyZXR1cm4gdGhpcy5fc3RhcnRUaW1lPXQsdGhpc31zZXRMb29wKHQsZSl7cmV0dXJuIHRoaXMubG9vcD10LHRoaXMucmVwZXRpdGlvbnM9ZSx0aGlzfXNldEVmZmVjdGl2ZVdlaWdodCh0KXtyZXR1cm4gdGhpcy53ZWlnaHQ9dCx0aGlzLl9lZmZlY3RpdmVXZWlnaHQ9dGhpcy5lbmFibGVkP3Q6MCx0aGlzLnN0b3BGYWRpbmcoKX1nZXRFZmZlY3RpdmVXZWlnaHQoKXtyZXR1cm4gdGhpcy5fZWZmZWN0aXZlV2VpZ2h0fWZhZGVJbih0KXtyZXR1cm4gdGhpcy5fc2NoZWR1bGVGYWRpbmcodCwwLDEpfWZhZGVPdXQodCl7cmV0dXJuIHRoaXMuX3NjaGVkdWxlRmFkaW5nKHQsMSwwKX1jcm9zc0ZhZGVGcm9tKHQsZSxpKXtpZih0LmZhZGVPdXQoZSksdGhpcy5mYWRlSW4oZSksaSl7bGV0IHI9dGhpcy5fY2xpcC5kdXJhdGlvbixvPXQuX2NsaXAuZHVyYXRpb24scz1yL287dC53YXJwKDEsby9yLGUpLHRoaXMud2FycChzLDEsZSl9cmV0dXJuIHRoaXN9Y3Jvc3NGYWRlVG8odCxlLGkpe3JldHVybiB0LmNyb3NzRmFkZUZyb20odGhpcyxlLGkpfXN0b3BGYWRpbmcoKXtsZXQgdD10aGlzLl93ZWlnaHRJbnRlcnBvbGFudDtyZXR1cm4gbnVsbCE9PXQmJih0aGlzLl93ZWlnaHRJbnRlcnBvbGFudD1udWxsLHRoaXMuX21peGVyLl90YWtlQmFja0NvbnRyb2xJbnRlcnBvbGFudCh0KSksdGhpc31zZXRFZmZlY3RpdmVUaW1lU2NhbGUodCl7cmV0dXJuIHRoaXMudGltZVNjYWxlPXQsdGhpcy5fZWZmZWN0aXZlVGltZVNjYWxlPXRoaXMucGF1c2VkPzA6dCx0aGlzLnN0b3BXYXJwaW5nKCl9Z2V0RWZmZWN0aXZlVGltZVNjYWxlKCl7cmV0dXJuIHRoaXMuX2VmZmVjdGl2ZVRpbWVTY2FsZX1zZXREdXJhdGlvbih0KXtyZXR1cm4gdGhpcy50aW1lU2NhbGU9dGhpcy5fY2xpcC5kdXJhdGlvbi90LHRoaXMuc3RvcFdhcnBpbmcoKX1zeW5jV2l0aCh0KXtyZXR1cm4gdGhpcy50aW1lPXQudGltZSx0aGlzLnRpbWVTY2FsZT10LnRpbWVTY2FsZSx0aGlzLnN0b3BXYXJwaW5nKCl9aGFsdCh0KXtyZXR1cm4gdGhpcy53YXJwKHRoaXMuX2VmZmVjdGl2ZVRpbWVTY2FsZSwwLHQpfXdhcnAodCxlLGkpe2xldCByPXRoaXMuX21peGVyLG89ci50aW1lLGE9dGhpcy50aW1lU2NhbGUscz10aGlzLl90aW1lU2NhbGVJbnRlcnBvbGFudDtudWxsPT09cyYmKHM9ci5fbGVuZENvbnRyb2xJbnRlcnBvbGFudCgpLHRoaXMuX3RpbWVTY2FsZUludGVycG9sYW50PXMpO2xldCBsPXMucGFyYW1ldGVyUG9zaXRpb25zLGM9cy5zYW1wbGVWYWx1ZXM7cmV0dXJuIGxbMF09byxsWzFdPW8raSxjWzBdPXQvYSxjWzFdPWUvYSx0aGlzfXN0b3BXYXJwaW5nKCl7bGV0IHQ9dGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ7cmV0dXJuIG51bGwhPT10JiYodGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ9bnVsbCx0aGlzLl9taXhlci5fdGFrZUJhY2tDb250cm9sSW50ZXJwb2xhbnQodCkpLHRoaXN9Z2V0TWl4ZXIoKXtyZXR1cm4gdGhpcy5fbWl4ZXJ9Z2V0Q2xpcCgpe3JldHVybiB0aGlzLl9jbGlwfWdldFJvb3QoKXtyZXR1cm4gdGhpcy5fbG9jYWxSb290fHx0aGlzLl9taXhlci5fcm9vdH1fdXBkYXRlKHQsZSxpLHIpe2lmKCF0aGlzLmVuYWJsZWQpcmV0dXJuIHZvaWQgdGhpcy5fdXBkYXRlV2VpZ2h0KHQpO2xldCBvPXRoaXMuX3N0YXJ0VGltZTtpZihudWxsIT09byl7bGV0IGw9KHQtbykqaTtpZihsPDB8fDA9PT1pKXJldHVybjt0aGlzLl9zdGFydFRpbWU9bnVsbCxlPWkqbH1lKj10aGlzLl91cGRhdGVUaW1lU2NhbGUodCk7bGV0IGE9dGhpcy5fdXBkYXRlVGltZShlKSxzPXRoaXMuX3VwZGF0ZVdlaWdodCh0KTtpZihzPjApe2xldCBsPXRoaXMuX2ludGVycG9sYW50cyxjPXRoaXMuX3Byb3BlcnR5QmluZGluZ3M7aWYoMjUwMT09PXRoaXMuYmxlbmRNb2RlKWZvcihsZXQgZD0wLHU9bC5sZW5ndGg7ZCE9PXU7KytkKWxbZF0uZXZhbHVhdGUoYSksY1tkXS5hY2N1bXVsYXRlQWRkaXRpdmUocyk7ZWxzZSBmb3IobGV0IGQ9MCx1PWwubGVuZ3RoO2QhPT11OysrZClsW2RdLmV2YWx1YXRlKGEpLGNbZF0uYWNjdW11bGF0ZShyLHMpfX1fdXBkYXRlV2VpZ2h0KHQpe2xldCBlPTA7aWYodGhpcy5lbmFibGVkKXtlPXRoaXMud2VpZ2h0O2xldCBpPXRoaXMuX3dlaWdodEludGVycG9sYW50O2lmKG51bGwhPT1pKXtsZXQgcj1pLmV2YWx1YXRlKHQpWzBdO2UqPXIsdD5pLnBhcmFtZXRlclBvc2l0aW9uc1sxXSYmKHRoaXMuc3RvcEZhZGluZygpLDA9PT1yJiYodGhpcy5lbmFibGVkPSExKSl9fXJldHVybiB0aGlzLl9lZmZlY3RpdmVXZWlnaHQ9ZSxlfV91cGRhdGVUaW1lU2NhbGUodCl7bGV0IGU9MDtpZighdGhpcy5wYXVzZWQpe2U9dGhpcy50aW1lU2NhbGU7bGV0IGk9dGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ7bnVsbCE9PWkmJihlKj1pLmV2YWx1YXRlKHQpWzBdLHQ+aS5wYXJhbWV0ZXJQb3NpdGlvbnNbMV0mJih0aGlzLnN0b3BXYXJwaW5nKCksMD09PWU/dGhpcy5wYXVzZWQ9ITA6dGhpcy50aW1lU2NhbGU9ZSkpfXJldHVybiB0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGU9ZSxlfV91cGRhdGVUaW1lKHQpe2xldCBlPXRoaXMuX2NsaXAuZHVyYXRpb24saT10aGlzLmxvb3Ascj10aGlzLnRpbWUrdCxvPXRoaXMuX2xvb3BDb3VudCxhPTIyMDI9PT1pO2lmKDA9PT10KXJldHVybi0xPT09bz9yOmEmJjE9PSgxJm8pP2UtcjpyO2lmKDIyMDA9PT1pKXstMT09PW8mJih0aGlzLl9sb29wQ291bnQ9MCx0aGlzLl9zZXRFbmRpbmdzKCEwLCEwLCExKSk7ZTp7aWYocj49ZSlyPWU7ZWxzZXtpZighKHI8MCkpe3RoaXMudGltZT1yO2JyZWFrIGV9cj0wfXRoaXMuY2xhbXBXaGVuRmluaXNoZWQ/dGhpcy5wYXVzZWQ9ITA6dGhpcy5lbmFibGVkPSExLHRoaXMudGltZT1yLHRoaXMuX21peGVyLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImZpbmlzaGVkIixhY3Rpb246dGhpcyxkaXJlY3Rpb246dDwwPy0xOjF9KX19ZWxzZXtpZigtMT09PW8mJih0Pj0wPyhvPTAsdGhpcy5fc2V0RW5kaW5ncyghMCwwPT09dGhpcy5yZXBldGl0aW9ucyxhKSk6dGhpcy5fc2V0RW5kaW5ncygwPT09dGhpcy5yZXBldGl0aW9ucywhMCxhKSkscj49ZXx8cjwwKXtsZXQgcz1NYXRoLmZsb29yKHIvZSk7ci09ZSpzLG8rPU1hdGguYWJzKHMpO2xldCBsPXRoaXMucmVwZXRpdGlvbnMtbztpZihsPD0wKXRoaXMuY2xhbXBXaGVuRmluaXNoZWQ/dGhpcy5wYXVzZWQ9ITA6dGhpcy5lbmFibGVkPSExLHI9dD4wP2U6MCx0aGlzLnRpbWU9cix0aGlzLl9taXhlci5kaXNwYXRjaEV2ZW50KHt0eXBlOiJmaW5pc2hlZCIsYWN0aW9uOnRoaXMsZGlyZWN0aW9uOnQ+MD8xOi0xfSk7ZWxzZXtpZigxPT09bCl7bGV0IGM9dDwwO3RoaXMuX3NldEVuZGluZ3MoYywhYyxhKX1lbHNlIHRoaXMuX3NldEVuZGluZ3MoITEsITEsYSk7dGhpcy5fbG9vcENvdW50PW8sdGhpcy50aW1lPXIsdGhpcy5fbWl4ZXIuZGlzcGF0Y2hFdmVudCh7dHlwZToibG9vcCIsYWN0aW9uOnRoaXMsbG9vcERlbHRhOnN9KX19ZWxzZSB0aGlzLnRpbWU9cjtpZihhJiYxPT0oMSZvKSlyZXR1cm4gZS1yfXJldHVybiByfV9zZXRFbmRpbmdzKHQsZSxpKXtsZXQgcj10aGlzLl9pbnRlcnBvbGFudFNldHRpbmdzO2k/KHIuZW5kaW5nU3RhcnQ9RzAsci5lbmRpbmdFbmQ9RzApOihyLmVuZGluZ1N0YXJ0PXQ/dGhpcy56ZXJvU2xvcGVBdFN0YXJ0P0cwOmowOjI0MDIsci5lbmRpbmdFbmQ9ZT90aGlzLnplcm9TbG9wZUF0RW5kP0cwOmowOjI0MDIpfV9zY2hlZHVsZUZhZGluZyh0LGUsaSl7bGV0IHI9dGhpcy5fbWl4ZXIsbz1yLnRpbWUsYT10aGlzLl93ZWlnaHRJbnRlcnBvbGFudDtudWxsPT09YSYmKGE9ci5fbGVuZENvbnRyb2xJbnRlcnBvbGFudCgpLHRoaXMuX3dlaWdodEludGVycG9sYW50PWEpO2xldCBzPWEucGFyYW1ldGVyUG9zaXRpb25zLGw9YS5zYW1wbGVWYWx1ZXM7cmV0dXJuIHNbMF09byxsWzBdPWUsc1sxXT1vK3QsbFsxXT1pLHRoaXN9fSh0aGlzLGEsZSxpKTtyZXR1cm4gdGhpcy5fYmluZEFjdGlvbihkLGMpLHRoaXMuX2FkZEluYWN0aXZlQWN0aW9uKGQscyxvKSxkfWV4aXN0aW5nQWN0aW9uKHQsZSl7bGV0IGk9ZXx8dGhpcy5fcm9vdCxyPWkudXVpZCxvPSJzdHJpbmciPT10eXBlb2YgdD9XSS5maW5kQnlOYW1lKGksdCk6dCxzPXRoaXMuX2FjdGlvbnNCeUNsaXBbbz9vLnV1aWQ6dF07cmV0dXJuIHZvaWQgMCE9PXMmJnMuYWN0aW9uQnlSb290W3JdfHxudWxsfXN0b3BBbGxBY3Rpb24oKXtsZXQgdD10aGlzLl9hY3Rpb25zO2ZvcihsZXQgaT10aGlzLl9uQWN0aXZlQWN0aW9ucy0xO2k+PTA7LS1pKXRbaV0uc3RvcCgpO3JldHVybiB0aGlzfXVwZGF0ZSh0KXtsZXQgZT10aGlzLl9hY3Rpb25zLGk9dGhpcy5fbkFjdGl2ZUFjdGlvbnMscj10aGlzLnRpbWUrPXQqPXRoaXMudGltZVNjYWxlLG89TWF0aC5zaWduKHQpLGE9dGhpcy5fYWNjdUluZGV4Xj0xO2ZvcihsZXQgYz0wO2MhPT1pOysrYyllW2NdLl91cGRhdGUocix0LG8sYSk7bGV0IHM9dGhpcy5fYmluZGluZ3MsbD10aGlzLl9uQWN0aXZlQmluZGluZ3M7Zm9yKGxldCBjPTA7YyE9PWw7KytjKXNbY10uYXBwbHkoYSk7cmV0dXJuIHRoaXN9c2V0VGltZSh0KXt0aGlzLnRpbWU9MDtmb3IobGV0IGU9MDtlPHRoaXMuX2FjdGlvbnMubGVuZ3RoO2UrKyl0aGlzLl9hY3Rpb25zW2VdLnRpbWU9MDtyZXR1cm4gdGhpcy51cGRhdGUodCl9Z2V0Um9vdCgpe3JldHVybiB0aGlzLl9yb290fXVuY2FjaGVDbGlwKHQpe2xldCBlPXRoaXMuX2FjdGlvbnMsaT10LnV1aWQscj10aGlzLl9hY3Rpb25zQnlDbGlwLG89cltpXTtpZih2b2lkIDAhPT1vKXtsZXQgYT1vLmtub3duQWN0aW9ucztmb3IobGV0IHM9MCxsPWEubGVuZ3RoO3MhPT1sOysrcyl7bGV0IGM9YVtzXTt0aGlzLl9kZWFjdGl2YXRlQWN0aW9uKGMpO2xldCBkPWMuX2NhY2hlSW5kZXgsdT1lW2UubGVuZ3RoLTFdO2MuX2NhY2hlSW5kZXg9bnVsbCxjLl9ieUNsaXBDYWNoZUluZGV4PW51bGwsdS5fY2FjaGVJbmRleD1kLGVbZF09dSxlLnBvcCgpLHRoaXMuX3JlbW92ZUluYWN0aXZlQmluZGluZ3NGb3JBY3Rpb24oYyl9ZGVsZXRlIHJbaV19fXVuY2FjaGVSb290KHQpe2xldCBlPXQudXVpZCxpPXRoaXMuX2FjdGlvbnNCeUNsaXA7Zm9yKGxldCBhIGluIGkpe2xldCBsPWlbYV0uYWN0aW9uQnlSb290W2VdO3ZvaWQgMCE9PWwmJih0aGlzLl9kZWFjdGl2YXRlQWN0aW9uKGwpLHRoaXMuX3JlbW92ZUluYWN0aXZlQWN0aW9uKGwpKX1sZXQgbz10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWVbZV07aWYodm9pZCAwIT09bylmb3IobGV0IGEgaW4gbyl7bGV0IHM9b1thXTtzLnJlc3RvcmVPcmlnaW5hbFN0YXRlKCksdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKHMpfX11bmNhY2hlQWN0aW9uKHQsZSl7bGV0IGk9dGhpcy5leGlzdGluZ0FjdGlvbih0LGUpO251bGwhPT1pJiYodGhpcy5fZGVhY3RpdmF0ZUFjdGlvbihpKSx0aGlzLl9yZW1vdmVJbmFjdGl2ZUFjdGlvbihpKSl9fS5wcm90b3R5cGUuX2NvbnRyb2xJbnRlcnBvbGFudHNSZXN1bHRCdWZmZXI9bmV3IEZsb2F0MzJBcnJheSgxKTt2YXIgR3g9Y2xhc3N7Y29uc3RydWN0b3IodCl7InN0cmluZyI9PXR5cGVvZiB0JiYoY29uc29sZS53YXJuKCJUSFJFRS5Vbmlmb3JtOiBUeXBlIHBhcmFtZXRlciBpcyBubyBsb25nZXIgbmVlZGVkLiIpLHQ9YXJndW1lbnRzWzFdKSx0aGlzLnZhbHVlPXR9Y2xvbmUoKXtyZXR1cm4gbmV3IEd4KHZvaWQgMD09PXRoaXMudmFsdWUuY2xvbmU/dGhpcy52YWx1ZTp0aGlzLnZhbHVlLmNsb25lKCkpfX07KGNsYXNzIGV4dGVuZHMgQ217Y29uc3RydWN0b3IodCxlLGk9MSl7c3VwZXIodCxlKSx0aGlzLm1lc2hQZXJBdHRyaWJ1dGU9aX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMubWVzaFBlckF0dHJpYnV0ZT10Lm1lc2hQZXJBdHRyaWJ1dGUsdGhpc31jbG9uZSh0KXtsZXQgZT1zdXBlci5jbG9uZSh0KTtyZXR1cm4gZS5tZXNoUGVyQXR0cmlidXRlPXRoaXMubWVzaFBlckF0dHJpYnV0ZSxlfXRvSlNPTih0KXtsZXQgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUuaXNJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcj0hMCxlLm1lc2hQZXJBdHRyaWJ1dGU9dGhpcy5tZXNoUGVyQXR0cmlidXRlLGV9fSkucHJvdG90eXBlLmlzSW5zdGFuY2VkSW50ZXJsZWF2ZWRCdWZmZXI9ITA7dmFyIG90ZT1uZXcgJGUsRW09Y2xhc3N7Y29uc3RydWN0b3IodD1uZXcgJGUoMS8wLDEvMCksZT1uZXcgJGUoLTEvMCwtMS8wKSl7dGhpcy5taW49dCx0aGlzLm1heD1lfXNldCh0LGUpe3JldHVybiB0aGlzLm1pbi5jb3B5KHQpLHRoaXMubWF4LmNvcHkoZSksdGhpc31zZXRGcm9tUG9pbnRzKHQpe3RoaXMubWFrZUVtcHR5KCk7Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSsrKXRoaXMuZXhwYW5kQnlQb2ludCh0W2VdKTtyZXR1cm4gdGhpc31zZXRGcm9tQ2VudGVyQW5kU2l6ZSh0LGUpe2xldCBpPW90ZS5jb3B5KGUpLm11bHRpcGx5U2NhbGFyKC41KTtyZXR1cm4gdGhpcy5taW4uY29weSh0KS5zdWIoaSksdGhpcy5tYXguY29weSh0KS5hZGQoaSksdGhpc31jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLm1pbi5jb3B5KHQubWluKSx0aGlzLm1heC5jb3B5KHQubWF4KSx0aGlzfW1ha2VFbXB0eSgpe3JldHVybiB0aGlzLm1pbi54PXRoaXMubWluLnk9MS8wLHRoaXMubWF4Lng9dGhpcy5tYXgueT0tMS8wLHRoaXN9aXNFbXB0eSgpe3JldHVybiB0aGlzLm1heC54PHRoaXMubWluLnh8fHRoaXMubWF4Lnk8dGhpcy5taW4ueX1nZXRDZW50ZXIodCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpP3Quc2V0KDAsMCk6dC5hZGRWZWN0b3JzKHRoaXMubWluLHRoaXMubWF4KS5tdWx0aXBseVNjYWxhciguNSl9Z2V0U2l6ZSh0KXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/dC5zZXQoMCwwKTp0LnN1YlZlY3RvcnModGhpcy5tYXgsdGhpcy5taW4pfWV4cGFuZEJ5UG9pbnQodCl7cmV0dXJuIHRoaXMubWluLm1pbih0KSx0aGlzLm1heC5tYXgodCksdGhpc31leHBhbmRCeVZlY3Rvcih0KXtyZXR1cm4gdGhpcy5taW4uc3ViKHQpLHRoaXMubWF4LmFkZCh0KSx0aGlzfWV4cGFuZEJ5U2NhbGFyKHQpe3JldHVybiB0aGlzLm1pbi5hZGRTY2FsYXIoLXQpLHRoaXMubWF4LmFkZFNjYWxhcih0KSx0aGlzfWNvbnRhaW5zUG9pbnQodCl7cmV0dXJuISh0Lng8dGhpcy5taW4ueHx8dC54PnRoaXMubWF4Lnh8fHQueTx0aGlzLm1pbi55fHx0Lnk+dGhpcy5tYXgueSl9Y29udGFpbnNCb3godCl7cmV0dXJuIHRoaXMubWluLng8PXQubWluLngmJnQubWF4Lng8PXRoaXMubWF4LngmJnRoaXMubWluLnk8PXQubWluLnkmJnQubWF4Lnk8PXRoaXMubWF4Lnl9Z2V0UGFyYW1ldGVyKHQsZSl7cmV0dXJuIGUuc2V0KCh0LngtdGhpcy5taW4ueCkvKHRoaXMubWF4LngtdGhpcy5taW4ueCksKHQueS10aGlzLm1pbi55KS8odGhpcy5tYXgueS10aGlzLm1pbi55KSl9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4hKHQubWF4Lng8dGhpcy5taW4ueHx8dC5taW4ueD50aGlzLm1heC54fHx0Lm1heC55PHRoaXMubWluLnl8fHQubWluLnk+dGhpcy5tYXgueSl9Y2xhbXBQb2ludCh0LGUpe3JldHVybiBlLmNvcHkodCkuY2xhbXAodGhpcy5taW4sdGhpcy5tYXgpfWRpc3RhbmNlVG9Qb2ludCh0KXtyZXR1cm4gb3RlLmNvcHkodCkuY2xhbXAodGhpcy5taW4sdGhpcy5tYXgpLnN1Yih0KS5sZW5ndGgoKX1pbnRlcnNlY3QodCl7cmV0dXJuIHRoaXMubWluLm1heCh0Lm1pbiksdGhpcy5tYXgubWluKHQubWF4KSx0aGlzfXVuaW9uKHQpe3JldHVybiB0aGlzLm1pbi5taW4odC5taW4pLHRoaXMubWF4Lm1heCh0Lm1heCksdGhpc310cmFuc2xhdGUodCl7cmV0dXJuIHRoaXMubWluLmFkZCh0KSx0aGlzLm1heC5hZGQodCksdGhpc31lcXVhbHModCl7cmV0dXJuIHQubWluLmVxdWFscyh0aGlzLm1pbikmJnQubWF4LmVxdWFscyh0aGlzLm1heCl9fTtFbS5wcm90b3R5cGUuaXNCb3gyPSEwO3ZhciBicD1uZXcgSyx5ST1uZXcgdm4scTM9bmV3IHZuO2Z1bmN0aW9uIEF0ZShuKXtsZXQgdD1bXTtuJiZuLmlzQm9uZSYmdC5wdXNoKG4pO2ZvcihsZXQgZT0wO2U8bi5jaGlsZHJlbi5sZW5ndGg7ZSsrKXQucHVzaC5hcHBseSh0LEF0ZShuLmNoaWxkcmVuW2VdKSk7cmV0dXJuIHR9dmFyIGdOZT1uZXcgRmxvYXQzMkFycmF5KDEpO2Z1bmN0aW9uIG1WKG4sdCxlKXtpZigxPT09ZSlyZXR1cm4gbmV3IHNuKHQpO2xldCBpPXFoKHQpO2lmKCFpKXRocm93IG5ldyBFcnJvcihgZDMgZmFpbGVkIHRvIHJlY29nbml6ZSB0aGUgY29sb3I6ICR7dH1gKTtyZXR1cm4gbmV3IHNuKGRMKGksbikoMS1lKSl9bmV3IEludDMyQXJyYXkoZ05lLmJ1ZmZlciksbnMuY3JlYXRlPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIGNvbnNvbGUubG9nKCJUSFJFRS5DdXJ2ZS5jcmVhdGUoKSBoYXMgYmVlbiBkZXByZWNhdGVkIiksbi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShucy5wcm90b3R5cGUpLG4ucHJvdG90eXBlLmNvbnN0cnVjdG9yPW4sbi5wcm90b3R5cGUuZ2V0UG9pbnQ9dCxufSxCeC5wcm90b3R5cGUuZnJvbVBvaW50cz1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5QYXRoOiAuZnJvbVBvaW50cygpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEZyb21Qb2ludHMoKS4iKSx0aGlzLnNldEZyb21Qb2ludHMobil9LGNsYXNzIGV4dGVuZHMgT3h7Y29uc3RydWN0b3IodD0xMCxlPTEwLGk9NDQ3MzkyNCxyPTg5NDc4NDgpe2k9bmV3IHNuKGkpLHI9bmV3IHNuKHIpO2xldCBvPWUvMixhPXQvZSxzPXQvMixsPVtdLGM9W107Zm9yKGxldCBwPTAsaD0wLG09LXM7cDw9ZTtwKyssbSs9YSl7bC5wdXNoKC1zLDAsbSxzLDAsbSksbC5wdXNoKG0sMCwtcyxtLDAscyk7bGV0IF89cD09PW8/aTpyO18udG9BcnJheShjLGgpLGgrPTMsXy50b0FycmF5KGMsaCksaCs9MyxfLnRvQXJyYXkoYyxoKSxoKz0zLF8udG9BcnJheShjLGgpLGgrPTN9bGV0IGQ9bmV3IEdpO2Quc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IE5yKGwsMykpLGQuc2V0QXR0cmlidXRlKCJjb2xvciIsbmV3IE5yKGMsMykpLHN1cGVyKGQsbmV3IEdkKHt2ZXJ0ZXhDb2xvcnM6ITAsdG9uZU1hcHBlZDohMX0pKSx0aGlzLnR5cGU9IkdyaWRIZWxwZXIifX0ucHJvdG90eXBlLnNldENvbG9ycz1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkdyaWRIZWxwZXI6IHNldENvbG9ycygpIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIHBhc3MgdGhlbSBpbiB0aGUgY29uc3RydWN0b3IgaW5zdGVhZC4iKX0sY2xhc3MgZXh0ZW5kcyBPeHtjb25zdHJ1Y3Rvcih0KXtsZXQgZT1BdGUodCksaT1uZXcgR2kscj1bXSxvPVtdLGE9bmV3IHNuKDAsMCwxKSxzPW5ldyBzbigwLDEsMCk7Zm9yKGxldCBjPTA7YzxlLmxlbmd0aDtjKyspe2xldCBkPWVbY107ZC5wYXJlbnQmJmQucGFyZW50LmlzQm9uZSYmKHIucHVzaCgwLDAsMCksci5wdXNoKDAsMCwwKSxvLnB1c2goYS5yLGEuZyxhLmIpLG8ucHVzaChzLnIscy5nLHMuYikpfWkuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IE5yKHIsMykpLGkuc2V0QXR0cmlidXRlKCJjb2xvciIsbmV3IE5yKG8sMykpLHN1cGVyKGksbmV3IEdkKHt2ZXJ0ZXhDb2xvcnM6ITAsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITEsdG9uZU1hcHBlZDohMSx0cmFuc3BhcmVudDohMH0pKSx0aGlzLnR5cGU9IlNrZWxldG9uSGVscGVyIix0aGlzLmlzU2tlbGV0b25IZWxwZXI9ITAsdGhpcy5yb290PXQsdGhpcy5ib25lcz1lLHRoaXMubWF0cml4PXQubWF0cml4V29ybGQsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSExfXVwZGF0ZU1hdHJpeFdvcmxkKHQpe2xldCBlPXRoaXMuYm9uZXMsaT10aGlzLmdlb21ldHJ5LHI9aS5nZXRBdHRyaWJ1dGUoInBvc2l0aW9uIik7cTMuY29weSh0aGlzLnJvb3QubWF0cml4V29ybGQpLmludmVydCgpO2ZvcihsZXQgbz0wLGE9MDtvPGUubGVuZ3RoO28rKyl7bGV0IHM9ZVtvXTtzLnBhcmVudCYmcy5wYXJlbnQuaXNCb25lJiYoeUkubXVsdGlwbHlNYXRyaWNlcyhxMyxzLm1hdHJpeFdvcmxkKSxicC5zZXRGcm9tTWF0cml4UG9zaXRpb24oeUkpLHIuc2V0WFlaKGEsYnAueCxicC55LGJwLnopLHlJLm11bHRpcGx5TWF0cmljZXMocTMscy5wYXJlbnQubWF0cml4V29ybGQpLGJwLnNldEZyb21NYXRyaXhQb3NpdGlvbih5SSksci5zZXRYWVooYSsxLGJwLngsYnAueSxicC56KSxhKz0yKX1pLmdldEF0dHJpYnV0ZSgicG9zaXRpb24iKS5uZWVkc1VwZGF0ZT0hMCxzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KX19LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5Ta2VsZXRvbkhlbHBlcjogdXBkYXRlKCkgbm8gbG9uZ2VyIG5lZWRzIHRvIGJlIGNhbGxlZC4iKX0scWMucHJvdG90eXBlLmV4dHJhY3RVcmxCYXNlPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkxvYWRlcjogLmV4dHJhY3RVcmxCYXNlKCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIFRIUkVFLkxvYWRlclV0aWxzLmV4dHJhY3RVcmxCYXNlKCkgaW5zdGVhZC4iKSxqQi5leHRyYWN0VXJsQmFzZShuKX0scWMuSGFuZGxlcnM9e2FkZDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkxvYWRlcjogSGFuZGxlcnMuYWRkKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIExvYWRpbmdNYW5hZ2VyLmFkZEhhbmRsZXIoKSBpbnN0ZWFkLiIpfSxnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5Mb2FkZXI6IEhhbmRsZXJzLmdldCgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBMb2FkaW5nTWFuYWdlci5nZXRIYW5kbGVyKCkgaW5zdGVhZC4iKX19LEVtLnByb3RvdHlwZS5jZW50ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MjogLmNlbnRlcigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldENlbnRlcigpLiIpLHRoaXMuZ2V0Q2VudGVyKG4pfSxFbS5wcm90b3R5cGUuZW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gyOiAuZW1wdHkoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pc0VtcHR5KCkuIiksdGhpcy5pc0VtcHR5KCl9LEVtLnByb3RvdHlwZS5pc0ludGVyc2VjdGlvbkJveD1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gyOiAuaXNJbnRlcnNlY3Rpb25Cb3goKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzQm94KCkuIiksdGhpcy5pbnRlcnNlY3RzQm94KG4pfSxFbS5wcm90b3R5cGUuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gyOiAuc2l6ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldFNpemUoKS4iKSx0aGlzLmdldFNpemUobil9LFRzLnByb3RvdHlwZS5jZW50ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLmNlbnRlcigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldENlbnRlcigpLiIpLHRoaXMuZ2V0Q2VudGVyKG4pfSxUcy5wcm90b3R5cGUuZW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gzOiAuZW1wdHkoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pc0VtcHR5KCkuIiksdGhpcy5pc0VtcHR5KCl9LFRzLnByb3RvdHlwZS5pc0ludGVyc2VjdGlvbkJveD1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gzOiAuaXNJbnRlcnNlY3Rpb25Cb3goKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzQm94KCkuIiksdGhpcy5pbnRlcnNlY3RzQm94KG4pfSxUcy5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25TcGhlcmU9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLmlzSW50ZXJzZWN0aW9uU3BoZXJlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c1NwaGVyZSgpLiIpLHRoaXMuaW50ZXJzZWN0c1NwaGVyZShuKX0sVHMucHJvdG90eXBlLnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLnNpemUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRTaXplKCkuIiksdGhpcy5nZXRTaXplKG4pfSxTcC5wcm90b3R5cGUuZW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5TcGhlcmU6IC5lbXB0eSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmlzRW1wdHkoKS4iKSx0aGlzLmlzRW1wdHkoKX0sZV8ucHJvdG90eXBlLnNldEZyb21NYXRyaXg9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuRnJ1c3R1bTogLnNldEZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeCgpLiIpLHRoaXMuc2V0RnJvbVByb2plY3Rpb25NYXRyaXgobil9LHlvLnByb3RvdHlwZS5mbGF0dGVuVG9BcnJheU9mZnNldD1mdW5jdGlvbihuLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDM6IC5mbGF0dGVuVG9BcnJheU9mZnNldCgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAudG9BcnJheSgpIGluc3RlYWQuIiksdGhpcy50b0FycmF5KG4sdCl9LHlvLnByb3RvdHlwZS5tdWx0aXBseVZlY3RvcjM9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4MzogLm11bHRpcGx5VmVjdG9yMygpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB2ZWN0b3IuYXBwbHlNYXRyaXgzKCBtYXRyaXggKSBpbnN0ZWFkLiIpLG4uYXBwbHlNYXRyaXgzKHRoaXMpfSx5by5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXgzOiAubXVsdGlwbHlWZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSx5by5wcm90b3R5cGUuYXBwbHlUb0J1ZmZlckF0dHJpYnV0ZT1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXgzOiAuYXBwbHlUb0J1ZmZlckF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBhdHRyaWJ1dGUuYXBwbHlNYXRyaXgzKCBtYXRyaXggKSBpbnN0ZWFkLiIpLG4uYXBwbHlNYXRyaXgzKHRoaXMpfSx5by5wcm90b3R5cGUuYXBwbHlUb1ZlY3RvcjNBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDM6IC5hcHBseVRvVmVjdG9yM0FycmF5KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0seW8ucHJvdG90eXBlLmdldEludmVyc2U9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4MzogLmdldEludmVyc2UoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbWF0cml4SW52LmNvcHkoIG1hdHJpeCApLmludmVydCgpOyBpbnN0ZWFkLiIpLHRoaXMuY29weShuKS5pbnZlcnQoKX0sdm4ucHJvdG90eXBlLmV4dHJhY3RQb3NpdGlvbj1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuZXh0cmFjdFBvc2l0aW9uKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuY29weVBvc2l0aW9uKCkuIiksdGhpcy5jb3B5UG9zaXRpb24obil9LHZuLnByb3RvdHlwZS5mbGF0dGVuVG9BcnJheU9mZnNldD1mdW5jdGlvbihuLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5mbGF0dGVuVG9BcnJheU9mZnNldCgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAudG9BcnJheSgpIGluc3RlYWQuIiksdGhpcy50b0FycmF5KG4sdCl9LHZuLnByb3RvdHlwZS5nZXRQb3NpdGlvbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5nZXRQb3NpdGlvbigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBWZWN0b3IzLnNldEZyb21NYXRyaXhQb3NpdGlvbiggbWF0cml4ICkgaW5zdGVhZC4iKSwobmV3IEspLnNldEZyb21NYXRyaXhDb2x1bW4odGhpcywzKX0sdm4ucHJvdG90eXBlLnNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb249ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLnNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbigpLiIpLHRoaXMubWFrZVJvdGF0aW9uRnJvbVF1YXRlcm5pb24obil9LHZuLnByb3RvdHlwZS5tdWx0aXBseVRvQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5tdWx0aXBseVRvQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSx2bi5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5tdWx0aXBseVZlY3RvcjMoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdmVjdG9yLmFwcGx5TWF0cml4NCggbWF0cml4ICkgaW5zdGVhZC4iKSxuLmFwcGx5TWF0cml4NCh0aGlzKX0sdm4ucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yND1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlWZWN0b3I0KCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHZlY3Rvci5hcHBseU1hdHJpeDQoIG1hdHJpeCApIGluc3RlYWQuIiksbi5hcHBseU1hdHJpeDQodGhpcyl9LHZuLnByb3RvdHlwZS5tdWx0aXBseVZlY3RvcjNBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5tdWx0aXBseVZlY3RvcjNBcnJheSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LHZuLnByb3RvdHlwZS5yb3RhdGVBeGlzPWZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLnJvdGF0ZUF4aXMoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVmVjdG9yMy50cmFuc2Zvcm1EaXJlY3Rpb24oIG1hdHJpeCApIGluc3RlYWQuIiksbi50cmFuc2Zvcm1EaXJlY3Rpb24odGhpcyl9LHZuLnByb3RvdHlwZS5jcm9zc1ZlY3Rvcj1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuY3Jvc3NWZWN0b3IoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdmVjdG9yLmFwcGx5TWF0cml4NCggbWF0cml4ICkgaW5zdGVhZC4iKSxuLmFwcGx5TWF0cml4NCh0aGlzKX0sdm4ucHJvdG90eXBlLnRyYW5zbGF0ZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC50cmFuc2xhdGUoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSx2bi5wcm90b3R5cGUucm90YXRlWD1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVYKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sdm4ucHJvdG90eXBlLnJvdGF0ZVk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlWSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LHZuLnByb3RvdHlwZS5yb3RhdGVaPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLnJvdGF0ZVooKSBoYXMgYmVlbiByZW1vdmVkLiIpfSx2bi5wcm90b3R5cGUucm90YXRlQnlBeGlzPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLnJvdGF0ZUJ5QXhpcygpIGhhcyBiZWVuIHJlbW92ZWQuIil9LHZuLnByb3RvdHlwZS5hcHBseVRvQnVmZmVyQXR0cmlidXRlPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5hcHBseVRvQnVmZmVyQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIGF0dHJpYnV0ZS5hcHBseU1hdHJpeDQoIG1hdHJpeCApIGluc3RlYWQuIiksbi5hcHBseU1hdHJpeDQodGhpcyl9LHZuLnByb3RvdHlwZS5hcHBseVRvVmVjdG9yM0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLmFwcGx5VG9WZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSx2bi5wcm90b3R5cGUubWFrZUZydXN0dW09ZnVuY3Rpb24obix0LGUsaSxyLG8pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5tYWtlRnJ1c3R1bSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSAubWFrZVBlcnNwZWN0aXZlKCBsZWZ0LCByaWdodCwgdG9wLCBib3R0b20sIG5lYXIsIGZhciApIGluc3RlYWQuIiksdGhpcy5tYWtlUGVyc3BlY3RpdmUobix0LGksZSxyLG8pfSx2bi5wcm90b3R5cGUuZ2V0SW52ZXJzZT1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuZ2V0SW52ZXJzZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBtYXRyaXhJbnYuY29weSggbWF0cml4ICkuaW52ZXJ0KCk7IGluc3RlYWQuIiksdGhpcy5jb3B5KG4pLmludmVydCgpfSxYbC5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25MaW5lPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlBsYW5lOiAuaXNJbnRlcnNlY3Rpb25MaW5lKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c0xpbmUoKS4iKSx0aGlzLmludGVyc2VjdHNMaW5lKG4pfSxvYS5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlF1YXRlcm5pb246IC5tdWx0aXBseVZlY3RvcjMoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgaXMgbm93IHZlY3Rvci5hcHBseVF1YXRlcm5pb24oIHF1YXRlcm5pb24gKSBpbnN0ZWFkLiIpLG4uYXBwbHlRdWF0ZXJuaW9uKHRoaXMpfSxvYS5wcm90b3R5cGUuaW52ZXJzZT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlF1YXRlcm5pb246IC5pbnZlcnNlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byBpbnZlcnQoKS4iKSx0aGlzLmludmVydCgpfSxFcC5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25Cb3g9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUmF5OiAuaXNJbnRlcnNlY3Rpb25Cb3goKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzQm94KCkuIiksdGhpcy5pbnRlcnNlY3RzQm94KG4pfSxFcC5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25QbGFuZT1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5SYXk6IC5pc0ludGVyc2VjdGlvblBsYW5lKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c1BsYW5lKCkuIiksdGhpcy5pbnRlcnNlY3RzUGxhbmUobil9LEVwLnByb3RvdHlwZS5pc0ludGVyc2VjdGlvblNwaGVyZT1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5SYXk6IC5pc0ludGVyc2VjdGlvblNwaGVyZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNTcGhlcmUoKS4iKSx0aGlzLmludGVyc2VjdHNTcGhlcmUobil9LFZyLnByb3RvdHlwZS5hcmVhPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVHJpYW5nbGU6IC5hcmVhKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0QXJlYSgpLiIpLHRoaXMuZ2V0QXJlYSgpfSxWci5wcm90b3R5cGUuYmFyeWNvb3JkRnJvbVBvaW50PWZ1bmN0aW9uKG4sdCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVHJpYW5nbGU6IC5iYXJ5Y29vcmRGcm9tUG9pbnQoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRCYXJ5Y29vcmQoKS4iKSx0aGlzLmdldEJhcnljb29yZChuLHQpfSxWci5wcm90b3R5cGUubWlkcG9pbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVHJpYW5nbGU6IC5taWRwb2ludCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE1pZHBvaW50KCkuIiksdGhpcy5nZXRNaWRwb2ludChuKX0sVnIucHJvdG90eXBlbm9ybWFsPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAubm9ybWFsKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0Tm9ybWFsKCkuIiksdGhpcy5nZXROb3JtYWwobil9LFZyLnByb3RvdHlwZS5wbGFuZT1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLnBsYW5lKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0UGxhbmUoKS4iKSx0aGlzLmdldFBsYW5lKG4pfSxWci5iYXJ5Y29vcmRGcm9tUG9pbnQ9ZnVuY3Rpb24obix0LGUsaSxyKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLmJhcnljb29yZEZyb21Qb2ludCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldEJhcnljb29yZCgpLiIpLFZyLmdldEJhcnljb29yZChuLHQsZSxpLHIpfSxWci5ub3JtYWw9ZnVuY3Rpb24obix0LGUsaSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVHJpYW5nbGU6IC5ub3JtYWwoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXROb3JtYWwoKS4iKSxWci5nZXROb3JtYWwobix0LGUsaSl9LFdkLnByb3RvdHlwZS5leHRyYWN0QWxsUG9pbnRzPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlNoYXBlOiAuZXh0cmFjdEFsbFBvaW50cygpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSAuZXh0cmFjdFBvaW50cygpIGluc3RlYWQuIiksdGhpcy5leHRyYWN0UG9pbnRzKG4pfSxXZC5wcm90b3R5cGUuZXh0cnVkZT1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5TaGFwZTogLmV4dHJ1ZGUoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgRXh0cnVkZUdlb21ldHJ5KCkgaW5zdGVhZC4iKSxuZXcgSXAodGhpcyxuKX0sV2QucHJvdG90eXBlLm1ha2VHZW9tZXRyeT1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5TaGFwZTogLm1ha2VHZW9tZXRyeSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBTaGFwZUdlb21ldHJ5KCkgaW5zdGVhZC4iKSxuZXcgd20odGhpcyxuKX0sJGUucHJvdG90eXBlLmZyb21BdHRyaWJ1dGU9ZnVuY3Rpb24obix0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5mcm9tQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMuZnJvbUJ1ZmZlckF0dHJpYnV0ZShuLHQsZSl9LCRlLnByb3RvdHlwZS5kaXN0YW5jZVRvTWFuaGF0dGFuPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5kaXN0YW5jZVRvTWFuaGF0dGFuKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFuaGF0dGFuRGlzdGFuY2VUbygpLiIpLHRoaXMubWFuaGF0dGFuRGlzdGFuY2VUbyhuKX0sJGUucHJvdG90eXBlLmxlbmd0aE1hbmhhdHRhbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5sZW5ndGhNYW5oYXR0YW4oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYW5oYXR0YW5MZW5ndGgoKS4iKSx0aGlzLm1hbmhhdHRhbkxlbmd0aCgpfSxLLnByb3RvdHlwZS5zZXRFdWxlckZyb21Sb3RhdGlvbk1hdHJpeD1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlZlY3RvcjM6IC5zZXRFdWxlckZyb21Sb3RhdGlvbk1hdHJpeCgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBFdWxlci5zZXRGcm9tUm90YXRpb25NYXRyaXgoKSBpbnN0ZWFkLiIpfSxLLnByb3RvdHlwZS5zZXRFdWxlckZyb21RdWF0ZXJuaW9uPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuVmVjdG9yMzogLnNldEV1bGVyRnJvbVF1YXRlcm5pb24oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgRXVsZXIuc2V0RnJvbVF1YXRlcm5pb24oKSBpbnN0ZWFkLiIpfSxLLnByb3RvdHlwZS5nZXRQb3NpdGlvbkZyb21NYXRyaXg9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmdldFBvc2l0aW9uRnJvbU1hdHJpeCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEZyb21NYXRyaXhQb3NpdGlvbigpLiIpLHRoaXMuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKG4pfSxLLnByb3RvdHlwZS5nZXRTY2FsZUZyb21NYXRyaXg9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmdldFNjYWxlRnJvbU1hdHJpeCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEZyb21NYXRyaXhTY2FsZSgpLiIpLHRoaXMuc2V0RnJvbU1hdHJpeFNjYWxlKG4pfSxLLnByb3RvdHlwZS5nZXRDb2x1bW5Gcm9tTWF0cml4PWZ1bmN0aW9uKG4sdCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmdldENvbHVtbkZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tTWF0cml4Q29sdW1uKCkuIiksdGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKHQsbil9LEsucHJvdG90eXBlLmFwcGx5UHJvamVjdGlvbj1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuYXBwbHlQcm9qZWN0aW9uKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5hcHBseU1hdHJpeDQoIG0gKSBpbnN0ZWFkLiIpLHRoaXMuYXBwbHlNYXRyaXg0KG4pfSxLLnByb3RvdHlwZS5mcm9tQXR0cmlidXRlPWZ1bmN0aW9uKG4sdCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuZnJvbUF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4iKSx0aGlzLmZyb21CdWZmZXJBdHRyaWJ1dGUobix0LGUpfSxLLnByb3RvdHlwZS5kaXN0YW5jZVRvTWFuaGF0dGFuPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5kaXN0YW5jZVRvTWFuaGF0dGFuKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFuaGF0dGFuRGlzdGFuY2VUbygpLiIpLHRoaXMubWFuaGF0dGFuRGlzdGFuY2VUbyhuKX0sSy5wcm90b3R5cGUubGVuZ3RoTWFuaGF0dGFuPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmxlbmd0aE1hbmhhdHRhbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1hbmhhdHRhbkxlbmd0aCgpLiIpLHRoaXMubWFuaGF0dGFuTGVuZ3RoKCl9LFFpLnByb3RvdHlwZS5mcm9tQXR0cmlidXRlPWZ1bmN0aW9uKG4sdCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3I0OiAuZnJvbUF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4iKSx0aGlzLmZyb21CdWZmZXJBdHRyaWJ1dGUobix0LGUpfSxRaS5wcm90b3R5cGUubGVuZ3RoTWFuaGF0dGFuPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yNDogLmxlbmd0aE1hbmhhdHRhbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1hbmhhdHRhbkxlbmd0aCgpLiIpLHRoaXMubWFuaGF0dGFuTGVuZ3RoKCl9LFVpLnByb3RvdHlwZS5nZXRDaGlsZEJ5TmFtZT1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLmdldENoaWxkQnlOYW1lKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0T2JqZWN0QnlOYW1lKCkuIiksdGhpcy5nZXRPYmplY3RCeU5hbWUobil9LFVpLnByb3RvdHlwZS5yZW5kZXJEZXB0aD1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5yZW5kZXJEZXB0aCBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLnJlbmRlck9yZGVyLCBpbnN0ZWFkLiIpfSxVaS5wcm90b3R5cGUudHJhbnNsYXRlPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC50cmFuc2xhdGUoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLnRyYW5zbGF0ZU9uQXhpcyggYXhpcywgZGlzdGFuY2UgKSBpbnN0ZWFkLiIpLHRoaXMudHJhbnNsYXRlT25BeGlzKHQsbil9LFVpLnByb3RvdHlwZS5nZXRXb3JsZFJvdGF0aW9uPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuT2JqZWN0M0Q6IC5nZXRXb3JsZFJvdGF0aW9uKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIFRIUkVFLk9iamVjdDNELmdldFdvcmxkUXVhdGVybmlvbiggdGFyZ2V0ICkgaW5zdGVhZC4iKX0sVWkucHJvdG90eXBlLmFwcGx5TWF0cml4PWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAuYXBwbHlNYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5hcHBseU1hdHJpeDQoKS4iKSx0aGlzLmFwcGx5TWF0cml4NChuKX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoVWkucHJvdG90eXBlLHtldWxlck9yZGVyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLmV1bGVyT3JkZXIgaXMgbm93IC5yb3RhdGlvbi5vcmRlci4iKSx0aGlzLnJvdGF0aW9uLm9yZGVyfSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLmV1bGVyT3JkZXIgaXMgbm93IC5yb3RhdGlvbi5vcmRlci4iKSx0aGlzLnJvdGF0aW9uLm9yZGVyPW59fSx1c2VRdWF0ZXJuaW9uOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAudXNlUXVhdGVybmlvbiBoYXMgYmVlbiByZW1vdmVkLiBUaGUgbGlicmFyeSBub3cgdXNlcyBxdWF0ZXJuaW9ucyBieSBkZWZhdWx0LiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAudXNlUXVhdGVybmlvbiBoYXMgYmVlbiByZW1vdmVkLiBUaGUgbGlicmFyeSBub3cgdXNlcyBxdWF0ZXJuaW9ucyBieSBkZWZhdWx0LiIpfX19KSxzby5wcm90b3R5cGUuc2V0RHJhd01vZGU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NZXNoOiAuc2V0RHJhd01vZGUoKSBoYXMgYmVlbiByZW1vdmVkLiBUaGUgcmVuZGVyZXIgbm93IGFsd2F5cyBhc3N1bWVzIFRIUkVFLlRyaWFuZ2xlc0RyYXdNb2RlLiBUcmFuc2Zvcm0geW91ciBnZW9tZXRyeSB2aWEgQnVmZmVyR2VvbWV0cnlVdGlscy50b1RyaWFuZ2xlc0RyYXdNb2RlKCkgaWYgbmVjZXNzYXJ5LiIpfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhzby5wcm90b3R5cGUse2RyYXdNb2RlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS5lcnJvcigiVEhSRUUuTWVzaDogLmRyYXdNb2RlIGhhcyBiZWVuIHJlbW92ZWQuIFRoZSByZW5kZXJlciBub3cgYWx3YXlzIGFzc3VtZXMgVEhSRUUuVHJpYW5nbGVzRHJhd01vZGUuIiksMH0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWVzaDogLmRyYXdNb2RlIGhhcyBiZWVuIHJlbW92ZWQuIFRoZSByZW5kZXJlciBub3cgYWx3YXlzIGFzc3VtZXMgVEhSRUUuVHJpYW5nbGVzRHJhd01vZGUuIFRyYW5zZm9ybSB5b3VyIGdlb21ldHJ5IHZpYSBCdWZmZXJHZW9tZXRyeVV0aWxzLnRvVHJpYW5nbGVzRHJhd01vZGUoKSBpZiBuZWNlc3NhcnkuIil9fX0pLE5JLnByb3RvdHlwZS5pbml0Qm9uZXM9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5Ta2lubmVkTWVzaDogaW5pdEJvbmVzKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0scmEucHJvdG90eXBlLnNldExlbnM9ZnVuY3Rpb24obix0KXtjb25zb2xlLndhcm4oIlRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhLnNldExlbnMgaXMgZGVwcmVjYXRlZC4gVXNlIC5zZXRGb2NhbExlbmd0aCBhbmQgLmZpbG1HYXVnZSBmb3IgYSBwaG90b2dyYXBoaWMgc2V0dXAuIiksdm9pZCAwIT09dCYmKHRoaXMuZmlsbUdhdWdlPXQpLHRoaXMuc2V0Rm9jYWxMZW5ndGgobil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGRsLnByb3RvdHlwZSx7b25seVNoYWRvdzp7c2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLm9ubHlTaGFkb3cgaGFzIGJlZW4gcmVtb3ZlZC4iKX19LHNoYWRvd0NhbWVyYUZvdjp7c2V0OmZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFGb3YgaXMgbm93IC5zaGFkb3cuY2FtZXJhLmZvdi4iKSx0aGlzLnNoYWRvdy5jYW1lcmEuZm92PW59fSxzaGFkb3dDYW1lcmFMZWZ0OntzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYUxlZnQgaXMgbm93IC5zaGFkb3cuY2FtZXJhLmxlZnQuIiksdGhpcy5zaGFkb3cuY2FtZXJhLmxlZnQ9bn19LHNoYWRvd0NhbWVyYVJpZ2h0OntzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYVJpZ2h0IGlzIG5vdyAuc2hhZG93LmNhbWVyYS5yaWdodC4iKSx0aGlzLnNoYWRvdy5jYW1lcmEucmlnaHQ9bn19LHNoYWRvd0NhbWVyYVRvcDp7c2V0OmZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFUb3AgaXMgbm93IC5zaGFkb3cuY2FtZXJhLnRvcC4iKSx0aGlzLnNoYWRvdy5jYW1lcmEudG9wPW59fSxzaGFkb3dDYW1lcmFCb3R0b206e3NldDpmdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhQm90dG9tIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5ib3R0b20uIiksdGhpcy5zaGFkb3cuY2FtZXJhLmJvdHRvbT1ufX0sc2hhZG93Q2FtZXJhTmVhcjp7c2V0OmZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFOZWFyIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5uZWFyLiIpLHRoaXMuc2hhZG93LmNhbWVyYS5uZWFyPW59fSxzaGFkb3dDYW1lcmFGYXI6e3NldDpmdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhRmFyIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5mYXIuIiksdGhpcy5zaGFkb3cuY2FtZXJhLmZhcj1ufX0sc2hhZG93Q2FtZXJhVmlzaWJsZTp7c2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYVZpc2libGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5DYW1lcmFIZWxwZXIoIGxpZ2h0LnNoYWRvdy5jYW1lcmEgKSBpbnN0ZWFkLiIpfX0sc2hhZG93Qmlhczp7c2V0OmZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dCaWFzIGlzIG5vdyAuc2hhZG93LmJpYXMuIiksdGhpcy5zaGFkb3cuYmlhcz1ufX0sc2hhZG93RGFya25lc3M6e3NldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dEYXJrbmVzcyBoYXMgYmVlbiByZW1vdmVkLiIpfX0sc2hhZG93TWFwV2lkdGg6e3NldDpmdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93TWFwV2lkdGggaXMgbm93IC5zaGFkb3cubWFwU2l6ZS53aWR0aC4iKSx0aGlzLnNoYWRvdy5tYXBTaXplLndpZHRoPW59fSxzaGFkb3dNYXBIZWlnaHQ6e3NldDpmdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93TWFwSGVpZ2h0IGlzIG5vdyAuc2hhZG93Lm1hcFNpemUuaGVpZ2h0LiIpLHRoaXMuc2hhZG93Lm1hcFNpemUuaGVpZ2h0PW59fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEFyLnByb3RvdHlwZSx7bGVuZ3RoOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IC5sZW5ndGggaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC5jb3VudCBpbnN0ZWFkLiIpLHRoaXMuYXJyYXkubGVuZ3RofX0sZHluYW1pYzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuZHluYW1pYyBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnVzYWdlIGluc3RlYWQuIiksdGhpcy51c2FnZT09PVNJfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogLmR5bmFtaWMgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC51c2FnZSBpbnN0ZWFkLiIpLHRoaXMuc2V0VXNhZ2UoU0kpfX19KSxBci5wcm90b3R5cGUuc2V0RHluYW1pYz1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IC5zZXREeW5hbWljKCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC5zZXRVc2FnZSgpIGluc3RlYWQuIiksdGhpcy5zZXRVc2FnZSghMD09PW4/U0k6Q3gpLHRoaXN9LEFyLnByb3RvdHlwZS5jb3B5SW5kaWNlc0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuY29weUluZGljZXNBcnJheSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LEFyLnByb3RvdHlwZS5zZXRBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogLnNldEFycmF5IGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBCdWZmZXJHZW9tZXRyeSAuc2V0QXR0cmlidXRlIHRvIHJlcGxhY2UvcmVzaXplIGF0dHJpYnV0ZSBidWZmZXJzIil9LEdpLnByb3RvdHlwZS5hZGRJbmRleD1mdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkSW5kZXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRJbmRleCgpLiIpLHRoaXMuc2V0SW5kZXgobil9LEdpLnByb3RvdHlwZS5hZGRBdHRyaWJ1dGU9ZnVuY3Rpb24obix0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmFkZEF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEF0dHJpYnV0ZSgpLiIpLHQmJnQuaXNCdWZmZXJBdHRyaWJ1dGV8fHQmJnQuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZT8iaW5kZXgiPT09bj8oY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeS5hZGRBdHRyaWJ1dGU6IFVzZSAuc2V0SW5kZXgoKSBmb3IgaW5kZXggYXR0cmlidXRlLiIpLHRoaXMuc2V0SW5kZXgodCksdGhpcyk6dGhpcy5zZXRBdHRyaWJ1dGUobix0KTooY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmFkZEF0dHJpYnV0ZSgpIG5vdyBleHBlY3RzICggbmFtZSwgYXR0cmlidXRlICkuIiksdGhpcy5zZXRBdHRyaWJ1dGUobixuZXcgQXIoYXJndW1lbnRzWzFdLGFyZ3VtZW50c1syXSkpKX0sR2kucHJvdG90eXBlLmFkZERyYXdDYWxsPWZ1bmN0aW9uKG4sdCxlKXt2b2lkIDAhPT1lJiZjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkRHJhd0NhbGwoKSBubyBsb25nZXIgc3VwcG9ydHMgaW5kZXhPZmZzZXQuIiksY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmFkZERyYXdDYWxsKCkgaXMgbm93IC5hZGRHcm91cCgpLiIpLHRoaXMuYWRkR3JvdXAobix0KX0sR2kucHJvdG90eXBlLmNsZWFyRHJhd0NhbGxzPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmNsZWFyRHJhd0NhbGxzKCkgaXMgbm93IC5jbGVhckdyb3VwcygpLiIpLHRoaXMuY2xlYXJHcm91cHMoKX0sR2kucHJvdG90eXBlLmNvbXB1dGVPZmZzZXRzPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmNvbXB1dGVPZmZzZXRzKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sR2kucHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0ZT1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLnJlbW92ZUF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmRlbGV0ZUF0dHJpYnV0ZSgpLiIpLHRoaXMuZGVsZXRlQXR0cmlidXRlKG4pfSxHaS5wcm90b3R5cGUuYXBwbHlNYXRyaXg9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hcHBseU1hdHJpeCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmFwcGx5TWF0cml4NCgpLiIpLHRoaXMuYXBwbHlNYXRyaXg0KG4pfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhHaS5wcm90b3R5cGUse2RyYXdjYWxsczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuZHJhd2NhbGxzIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdyb3Vwcy4iKSx0aGlzLmdyb3Vwc319LG9mZnNldHM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAub2Zmc2V0cyBoYXMgYmVlbiByZW5hbWVkIHRvIC5ncm91cHMuIiksdGhpcy5ncm91cHN9fX0pLENtLnByb3RvdHlwZS5zZXREeW5hbWljPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkludGVybGVhdmVkQnVmZmVyOiAuc2V0RHluYW1pYygpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAuc2V0VXNhZ2UoKSBpbnN0ZWFkLiIpLHRoaXMuc2V0VXNhZ2UoITA9PT1uP1NJOkN4KSx0aGlzfSxDbS5wcm90b3R5cGUuc2V0QXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlcjogLnNldEFycmF5IGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBCdWZmZXJHZW9tZXRyeSAuc2V0QXR0cmlidXRlIHRvIHJlcGxhY2UvcmVzaXplIGF0dHJpYnV0ZSBidWZmZXJzIil9LElwLnByb3RvdHlwZS5nZXRBcnJheXM9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5FeHRydWRlR2VvbWV0cnk6IC5nZXRBcnJheXMoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxJcC5wcm90b3R5cGUuYWRkU2hhcGVMaXN0PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuRXh0cnVkZUdlb21ldHJ5OiAuYWRkU2hhcGVMaXN0KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sSXAucHJvdG90eXBlLmFkZFNoYXBlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuRXh0cnVkZUdlb21ldHJ5OiAuYWRkU2hhcGUoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxuXy5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlNjZW5lOiAuZGlzcG9zZSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LEd4LnByb3RvdHlwZS5vblVwZGF0ZT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlVuaWZvcm06IC5vblVwZGF0ZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBvYmplY3Qub25CZWZvcmVSZW5kZXIoKSBpbnN0ZWFkLiIpLHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEZvLnByb3RvdHlwZSx7d3JhcEFyb3VuZDp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbDogLndyYXBBcm91bmQgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbDogLndyYXBBcm91bmQgaGFzIGJlZW4gcmVtb3ZlZC4iKX19LG92ZXJkcmF3OntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAub3ZlcmRyYXcgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbDogLm92ZXJkcmF3IGhhcyBiZWVuIHJlbW92ZWQuIil9fSx3cmFwUkdCOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbDogLndyYXBSR0IgaGFzIGJlZW4gcmVtb3ZlZC4iKSxuZXcgc259fSxzaGFkaW5nOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc2hhZGluZyBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdGhlIGJvb2xlYW4gLmZsYXRTaGFkaW5nIGluc3RlYWQuIil9LHNldDpmdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zaGFkaW5nIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB0aGUgYm9vbGVhbiAuZmxhdFNoYWRpbmcgaW5zdGVhZC4iKSx0aGlzLmZsYXRTaGFkaW5nPTE9PT1ufX0sc3RlbmNpbE1hc2s6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zdGVuY2lsTWFzayBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLnN0ZW5jaWxGdW5jTWFzayBpbnN0ZWFkLiIpLHRoaXMuc3RlbmNpbEZ1bmNNYXNrfSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc3RlbmNpbE1hc2sgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5zdGVuY2lsRnVuY01hc2sgaW5zdGVhZC4iKSx0aGlzLnN0ZW5jaWxGdW5jTWFzaz1ufX0sdmVydGV4VGFuZ2VudHM6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnZlcnRleFRhbmdlbnRzIGhhcyBiZWVuIHJlbW92ZWQuIil9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnZlcnRleFRhbmdlbnRzIGhhcyBiZWVuIHJlbW92ZWQuIil9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGpkLnByb3RvdHlwZSx7ZGVyaXZhdGl2ZXM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlNoYWRlck1hdGVyaWFsOiAuZGVyaXZhdGl2ZXMgaGFzIGJlZW4gbW92ZWQgdG8gLmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMuIiksdGhpcy5leHRlbnNpb25zLmRlcml2YXRpdmVzfSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS4gU2hhZGVyTWF0ZXJpYWw6IC5kZXJpdmF0aXZlcyBoYXMgYmVlbiBtb3ZlZCB0byAuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlcy4iKSx0aGlzLmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXM9bn19fSksV2kucHJvdG90eXBlLmNsZWFyVGFyZ2V0PWZ1bmN0aW9uKG4sdCxlLGkpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmNsZWFyVGFyZ2V0KCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC5zZXRSZW5kZXJUYXJnZXQoKSBhbmQgLmNsZWFyKCkgaW5zdGVhZC4iKSx0aGlzLnNldFJlbmRlclRhcmdldChuKSx0aGlzLmNsZWFyKHQsZSxpKX0sV2kucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuYW5pbWF0ZSgpIGlzIG5vdyAuc2V0QW5pbWF0aW9uTG9vcCgpLiIpLHRoaXMuc2V0QW5pbWF0aW9uTG9vcChuKX0sV2kucHJvdG90eXBlLmdldEN1cnJlbnRSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2V0Q3VycmVudFJlbmRlclRhcmdldCgpIGlzIG5vdyAuZ2V0UmVuZGVyVGFyZ2V0KCkuIiksdGhpcy5nZXRSZW5kZXJUYXJnZXQoKX0sV2kucHJvdG90eXBlLmdldE1heEFuaXNvdHJvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2V0TWF4QW5pc290cm9weSgpIGlzIG5vdyAuY2FwYWJpbGl0aWVzLmdldE1heEFuaXNvdHJvcHkoKS4iKSx0aGlzLmNhcGFiaWxpdGllcy5nZXRNYXhBbmlzb3Ryb3B5KCl9LFdpLnByb3RvdHlwZS5nZXRQcmVjaXNpb249ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2V0UHJlY2lzaW9uKCkgaXMgbm93IC5jYXBhYmlsaXRpZXMucHJlY2lzaW9uLiIpLHRoaXMuY2FwYWJpbGl0aWVzLnByZWNpc2lvbn0sV2kucHJvdG90eXBlLnJlc2V0R0xTdGF0ZT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5yZXNldEdMU3RhdGUoKSBpcyBub3cgLnN0YXRlLnJlc2V0KCkuIiksdGhpcy5zdGF0ZS5yZXNldCgpfSxXaS5wcm90b3R5cGUuc3VwcG9ydHNGbG9hdFRleHR1cmVzPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzRmxvYXRUZXh0dXJlcygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdPRVNfdGV4dHVyZV9mbG9hdCcgKS4iKSx0aGlzLmV4dGVuc2lvbnMuZ2V0KCJPRVNfdGV4dHVyZV9mbG9hdCIpfSxXaS5wcm90b3R5cGUuc3VwcG9ydHNIYWxmRmxvYXRUZXh0dXJlcz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0hhbGZGbG9hdFRleHR1cmVzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ09FU190ZXh0dXJlX2hhbGZfZmxvYXQnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpfSxXaS5wcm90b3R5cGUuc3VwcG9ydHNTdGFuZGFyZERlcml2YXRpdmVzPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzU3RhbmRhcmREZXJpdmF0aXZlcygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIil9LFdpLnByb3RvdHlwZS5zdXBwb3J0c0NvbXByZXNzZWRUZXh0dXJlUzNUQz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0NvbXByZXNzZWRUZXh0dXJlUzNUQygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YycgKS4iKSx0aGlzLmV4dGVuc2lvbnMuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpfSxXaS5wcm90b3R5cGUuc3VwcG9ydHNDb21wcmVzc2VkVGV4dHVyZVBWUlRDPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVQVlJUQygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIil9LFdpLnByb3RvdHlwZS5zdXBwb3J0c0JsZW5kTWluTWF4PWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzQmxlbmRNaW5NYXgoKSBpcyBub3cgLmV4dGVuc2lvbnMuZ2V0KCAnRVhUX2JsZW5kX21pbm1heCcgKS4iKSx0aGlzLmV4dGVuc2lvbnMuZ2V0KCJFWFRfYmxlbmRfbWlubWF4Iil9LFdpLnByb3RvdHlwZS5zdXBwb3J0c1ZlcnRleFRleHR1cmVzPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzVmVydGV4VGV4dHVyZXMoKSBpcyBub3cgLmNhcGFiaWxpdGllcy52ZXJ0ZXhUZXh0dXJlcy4iKSx0aGlzLmNhcGFiaWxpdGllcy52ZXJ0ZXhUZXh0dXJlc30sV2kucHJvdG90eXBlLnN1cHBvcnRzSW5zdGFuY2VkQXJyYXlzPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzSW5zdGFuY2VkQXJyYXlzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ0FOR0xFX2luc3RhbmNlZF9hcnJheXMnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpfSxXaS5wcm90b3R5cGUuZW5hYmxlU2Npc3NvclRlc3Q9ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZW5hYmxlU2Npc3NvclRlc3QoKSBpcyBub3cgLnNldFNjaXNzb3JUZXN0KCkuIiksdGhpcy5zZXRTY2lzc29yVGVzdChuKX0sV2kucHJvdG90eXBlLmluaXRNYXRlcmlhbD1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmluaXRNYXRlcmlhbCgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LFdpLnByb3RvdHlwZS5hZGRQcmVQbHVnaW49ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hZGRQcmVQbHVnaW4oKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxXaS5wcm90b3R5cGUuYWRkUG9zdFBsdWdpbj1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmFkZFBvc3RQbHVnaW4oKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxXaS5wcm90b3R5cGUudXBkYXRlU2hhZG93TWFwPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudXBkYXRlU2hhZG93TWFwKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sV2kucHJvdG90eXBlLnNldEZhY2VDdWxsaW5nPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0RmFjZUN1bGxpbmcoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxXaS5wcm90b3R5cGUuYWxsb2NUZXh0dXJlVW5pdD1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmFsbG9jVGV4dHVyZVVuaXQoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxXaS5wcm90b3R5cGUuc2V0VGV4dHVyZT1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNldFRleHR1cmUoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxXaS5wcm90b3R5cGUuc2V0VGV4dHVyZTJEPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0VGV4dHVyZTJEKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sV2kucHJvdG90eXBlLnNldFRleHR1cmVDdWJlPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0VGV4dHVyZUN1YmUoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxXaS5wcm90b3R5cGUuZ2V0QWN0aXZlTWlwTWFwTGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2V0QWN0aXZlTWlwTWFwTGV2ZWwoKSBpcyBub3cgLmdldEFjdGl2ZU1pcG1hcExldmVsKCkuIiksdGhpcy5nZXRBY3RpdmVNaXBtYXBMZXZlbCgpfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhXaS5wcm90b3R5cGUse3NoYWRvd01hcEVuYWJsZWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYWRvd01hcC5lbmFibGVkfSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwRW5hYmxlZCBpcyBub3cgLnNoYWRvd01hcC5lbmFibGVkLiIpLHRoaXMuc2hhZG93TWFwLmVuYWJsZWQ9bn19LHNoYWRvd01hcFR5cGU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYWRvd01hcC50eXBlfSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwVHlwZSBpcyBub3cgLnNoYWRvd01hcC50eXBlLiIpLHRoaXMuc2hhZG93TWFwLnR5cGU9bn19LHNoYWRvd01hcEN1bGxGYWNlOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXBDdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXBDdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfX0sY29udGV4dDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmNvbnRleHQgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5nZXRDb250ZXh0KCkgaW5zdGVhZC4iKSx0aGlzLmdldENvbnRleHQoKX19LHZyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudnIgaGFzIGJlZW4gcmVuYW1lZCB0byAueHIiKSx0aGlzLnhyfX0sZ2FtbWFJbnB1dDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdhbW1hSW5wdXQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IHRoZSBlbmNvZGluZyBmb3IgdGV4dHVyZXMgdmlhIFRleHR1cmUuZW5jb2RpbmcgaW5zdGVhZC4iKSwhMX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFJbnB1dCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgdGhlIGVuY29kaW5nIGZvciB0ZXh0dXJlcyB2aWEgVGV4dHVyZS5lbmNvZGluZyBpbnN0ZWFkLiIpfX0sZ2FtbWFPdXRwdXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nYW1tYU91dHB1dCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgV2ViR0xSZW5kZXJlci5vdXRwdXRFbmNvZGluZyBpbnN0ZWFkLiIpLCExfSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFPdXRwdXQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IFdlYkdMUmVuZGVyZXIub3V0cHV0RW5jb2RpbmcgaW5zdGVhZC4iKSx0aGlzLm91dHB1dEVuY29kaW5nPSEwPT09bj9Ecjp3cH19LHRvbmVNYXBwaW5nV2hpdGVQb2ludDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnRvbmVNYXBwaW5nV2hpdGVQb2ludCBoYXMgYmVlbiByZW1vdmVkLiIpLDF9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnRvbmVNYXBwaW5nV2hpdGVQb2ludCBoYXMgYmVlbiByZW1vdmVkLiIpfX0sZ2FtbWFGYWN0b3I6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nYW1tYUZhY3RvciBoYXMgYmVlbiByZW1vdmVkLiIpLDJ9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdhbW1hRmFjdG9yIGhhcyBiZWVuIHJlbW92ZWQuIil9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHd0ZS5wcm90b3R5cGUse2N1bGxGYWNlOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAuY3VsbEZhY2UgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLmN1bGxGYWNlIGhhcyBiZWVuIHJlbW92ZWQuIFNldCBNYXRlcmlhbC5zaGFkb3dTaWRlIGluc3RlYWQuIil9fSxyZW5kZXJSZXZlcnNlU2lkZWQ6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5yZW5kZXJSZXZlcnNlU2lkZWQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLnJlbmRlclJldmVyc2VTaWRlZCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfX0scmVuZGVyU2luZ2xlU2lkZWQ6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5yZW5kZXJTaW5nbGVTaWRlZCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAucmVuZGVyU2luZ2xlU2lkZWQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX19fSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXModHMucHJvdG90eXBlLHt3cmFwUzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC53cmFwUyBpcyBub3cgLnRleHR1cmUud3JhcFMuIiksdGhpcy50ZXh0dXJlLndyYXBTfSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLndyYXBTIGlzIG5vdyAudGV4dHVyZS53cmFwUy4iKSx0aGlzLnRleHR1cmUud3JhcFM9bn19LHdyYXBUOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLndyYXBUIGlzIG5vdyAudGV4dHVyZS53cmFwVC4iKSx0aGlzLnRleHR1cmUud3JhcFR9LHNldDpmdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAud3JhcFQgaXMgbm93IC50ZXh0dXJlLndyYXBULiIpLHRoaXMudGV4dHVyZS53cmFwVD1ufX0sbWFnRmlsdGVyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLm1hZ0ZpbHRlciBpcyBub3cgLnRleHR1cmUubWFnRmlsdGVyLiIpLHRoaXMudGV4dHVyZS5tYWdGaWx0ZXJ9LHNldDpmdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAubWFnRmlsdGVyIGlzIG5vdyAudGV4dHVyZS5tYWdGaWx0ZXIuIiksdGhpcy50ZXh0dXJlLm1hZ0ZpbHRlcj1ufX0sbWluRmlsdGVyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLm1pbkZpbHRlciBpcyBub3cgLnRleHR1cmUubWluRmlsdGVyLiIpLHRoaXMudGV4dHVyZS5taW5GaWx0ZXJ9LHNldDpmdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAubWluRmlsdGVyIGlzIG5vdyAudGV4dHVyZS5taW5GaWx0ZXIuIiksdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj1ufX0sYW5pc290cm9weTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5hbmlzb3Ryb3B5IGlzIG5vdyAudGV4dHVyZS5hbmlzb3Ryb3B5LiIpLHRoaXMudGV4dHVyZS5hbmlzb3Ryb3B5fSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLmFuaXNvdHJvcHkgaXMgbm93IC50ZXh0dXJlLmFuaXNvdHJvcHkuIiksdGhpcy50ZXh0dXJlLmFuaXNvdHJvcHk9bn19LG9mZnNldDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5vZmZzZXQgaXMgbm93IC50ZXh0dXJlLm9mZnNldC4iKSx0aGlzLnRleHR1cmUub2Zmc2V0fSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLm9mZnNldCBpcyBub3cgLnRleHR1cmUub2Zmc2V0LiIpLHRoaXMudGV4dHVyZS5vZmZzZXQ9bn19LHJlcGVhdDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5yZXBlYXQgaXMgbm93IC50ZXh0dXJlLnJlcGVhdC4iKSx0aGlzLnRleHR1cmUucmVwZWF0fSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLnJlcGVhdCBpcyBub3cgLnRleHR1cmUucmVwZWF0LiIpLHRoaXMudGV4dHVyZS5yZXBlYXQ9bn19LGZvcm1hdDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5mb3JtYXQgaXMgbm93IC50ZXh0dXJlLmZvcm1hdC4iKSx0aGlzLnRleHR1cmUuZm9ybWF0fSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLmZvcm1hdCBpcyBub3cgLnRleHR1cmUuZm9ybWF0LiIpLHRoaXMudGV4dHVyZS5mb3JtYXQ9bn19LHR5cGU6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAudHlwZSBpcyBub3cgLnRleHR1cmUudHlwZS4iKSx0aGlzLnRleHR1cmUudHlwZX0sc2V0OmZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC50eXBlIGlzIG5vdyAudGV4dHVyZS50eXBlLiIpLHRoaXMudGV4dHVyZS50eXBlPW59fSxnZW5lcmF0ZU1pcG1hcHM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuZ2VuZXJhdGVNaXBtYXBzIGlzIG5vdyAudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMuIiksdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwc30sc2V0OmZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5nZW5lcmF0ZU1pcG1hcHMgaXMgbm93IC50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcy4iKSx0aGlzLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzPW59fX0pLGNsYXNzIGV4dGVuZHMgVWl7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IkF1ZGlvIix0aGlzLmxpc3RlbmVyPXQsdGhpcy5jb250ZXh0PXQuY29udGV4dCx0aGlzLmdhaW49dGhpcy5jb250ZXh0LmNyZWF0ZUdhaW4oKSx0aGlzLmdhaW4uY29ubmVjdCh0LmdldElucHV0KCkpLHRoaXMuYXV0b3BsYXk9ITEsdGhpcy5idWZmZXI9bnVsbCx0aGlzLmRldHVuZT0wLHRoaXMubG9vcD0hMSx0aGlzLmxvb3BTdGFydD0wLHRoaXMubG9vcEVuZD0wLHRoaXMub2Zmc2V0PTAsdGhpcy5kdXJhdGlvbj12b2lkIDAsdGhpcy5wbGF5YmFja1JhdGU9MSx0aGlzLmlzUGxheWluZz0hMSx0aGlzLmhhc1BsYXliYWNrQ29udHJvbD0hMCx0aGlzLnNvdXJjZT1udWxsLHRoaXMuc291cmNlVHlwZT0iZW1wdHkiLHRoaXMuX3N0YXJ0ZWRBdD0wLHRoaXMuX3Byb2dyZXNzPTAsdGhpcy5fY29ubmVjdGVkPSExLHRoaXMuZmlsdGVycz1bXX1nZXRPdXRwdXQoKXtyZXR1cm4gdGhpcy5nYWlufXNldE5vZGVTb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0iYXVkaW9Ob2RlIix0aGlzLnNvdXJjZT10LHRoaXMuY29ubmVjdCgpLHRoaXN9c2V0TWVkaWFFbGVtZW50U291cmNlKHQpe3JldHVybiB0aGlzLmhhc1BsYXliYWNrQ29udHJvbD0hMSx0aGlzLnNvdXJjZVR5cGU9Im1lZGlhTm9kZSIsdGhpcy5zb3VyY2U9dGhpcy5jb250ZXh0LmNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZSh0KSx0aGlzLmNvbm5lY3QoKSx0aGlzfXNldE1lZGlhU3RyZWFtU291cmNlKHQpe3JldHVybiB0aGlzLmhhc1BsYXliYWNrQ29udHJvbD0hMSx0aGlzLnNvdXJjZVR5cGU9Im1lZGlhU3RyZWFtTm9kZSIsdGhpcy5zb3VyY2U9dGhpcy5jb250ZXh0LmNyZWF0ZU1lZGlhU3RyZWFtU291cmNlKHQpLHRoaXMuY29ubmVjdCgpLHRoaXN9c2V0QnVmZmVyKHQpe3JldHVybiB0aGlzLmJ1ZmZlcj10LHRoaXMuc291cmNlVHlwZT0iYnVmZmVyIix0aGlzLmF1dG9wbGF5JiZ0aGlzLnBsYXkoKSx0aGlzfXBsYXkodD0wKXtpZighMD09PXRoaXMuaXNQbGF5aW5nKXJldHVybiB2b2lkIGNvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IEF1ZGlvIGlzIGFscmVhZHkgcGxheWluZy4iKTtpZighMT09PXRoaXMuaGFzUGxheWJhY2tDb250cm9sKXJldHVybiB2b2lkIGNvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIik7dGhpcy5fc3RhcnRlZEF0PXRoaXMuY29udGV4dC5jdXJyZW50VGltZSt0O2xldCBlPXRoaXMuY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTtyZXR1cm4gZS5idWZmZXI9dGhpcy5idWZmZXIsZS5sb29wPXRoaXMubG9vcCxlLmxvb3BTdGFydD10aGlzLmxvb3BTdGFydCxlLmxvb3BFbmQ9dGhpcy5sb29wRW5kLGUub25lbmRlZD10aGlzLm9uRW5kZWQuYmluZCh0aGlzKSxlLnN0YXJ0KHRoaXMuX3N0YXJ0ZWRBdCx0aGlzLl9wcm9ncmVzcyt0aGlzLm9mZnNldCx0aGlzLmR1cmF0aW9uKSx0aGlzLmlzUGxheWluZz0hMCx0aGlzLnNvdXJjZT1lLHRoaXMuc2V0RGV0dW5lKHRoaXMuZGV0dW5lKSx0aGlzLnNldFBsYXliYWNrUmF0ZSh0aGlzLnBsYXliYWNrUmF0ZSksdGhpcy5jb25uZWN0KCl9cGF1c2UoKXtpZighMSE9PXRoaXMuaGFzUGxheWJhY2tDb250cm9sKXJldHVybiEwPT09dGhpcy5pc1BsYXlpbmcmJih0aGlzLl9wcm9ncmVzcys9TWF0aC5tYXgodGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lLXRoaXMuX3N0YXJ0ZWRBdCwwKSp0aGlzLnBsYXliYWNrUmF0ZSwhMD09PXRoaXMubG9vcCYmKHRoaXMuX3Byb2dyZXNzPXRoaXMuX3Byb2dyZXNzJSh0aGlzLmR1cmF0aW9ufHx0aGlzLmJ1ZmZlci5kdXJhdGlvbikpLHRoaXMuc291cmNlLnN0b3AoKSx0aGlzLnNvdXJjZS5vbmVuZGVkPW51bGwsdGhpcy5pc1BsYXlpbmc9ITEpLHRoaXM7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKX1zdG9wKCl7aWYoITEhPT10aGlzLmhhc1BsYXliYWNrQ29udHJvbClyZXR1cm4gdGhpcy5fcHJvZ3Jlc3M9MCx0aGlzLnNvdXJjZS5zdG9wKCksdGhpcy5zb3VyY2Uub25lbmRlZD1udWxsLHRoaXMuaXNQbGF5aW5nPSExLHRoaXM7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKX1jb25uZWN0KCl7aWYodGhpcy5maWx0ZXJzLmxlbmd0aD4wKXt0aGlzLnNvdXJjZS5jb25uZWN0KHRoaXMuZmlsdGVyc1swXSk7Zm9yKGxldCB0PTEsZT10aGlzLmZpbHRlcnMubGVuZ3RoO3Q8ZTt0KyspdGhpcy5maWx0ZXJzW3QtMV0uY29ubmVjdCh0aGlzLmZpbHRlcnNbdF0pO3RoaXMuZmlsdGVyc1t0aGlzLmZpbHRlcnMubGVuZ3RoLTFdLmNvbm5lY3QodGhpcy5nZXRPdXRwdXQoKSl9ZWxzZSB0aGlzLnNvdXJjZS5jb25uZWN0KHRoaXMuZ2V0T3V0cHV0KCkpO3JldHVybiB0aGlzLl9jb25uZWN0ZWQ9ITAsdGhpc31kaXNjb25uZWN0KCl7aWYodGhpcy5maWx0ZXJzLmxlbmd0aD4wKXt0aGlzLnNvdXJjZS5kaXNjb25uZWN0KHRoaXMuZmlsdGVyc1swXSk7Zm9yKGxldCB0PTEsZT10aGlzLmZpbHRlcnMubGVuZ3RoO3Q8ZTt0KyspdGhpcy5maWx0ZXJzW3QtMV0uZGlzY29ubmVjdCh0aGlzLmZpbHRlcnNbdF0pO3RoaXMuZmlsdGVyc1t0aGlzLmZpbHRlcnMubGVuZ3RoLTFdLmRpc2Nvbm5lY3QodGhpcy5nZXRPdXRwdXQoKSl9ZWxzZSB0aGlzLnNvdXJjZS5kaXNjb25uZWN0KHRoaXMuZ2V0T3V0cHV0KCkpO3JldHVybiB0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpc31nZXRGaWx0ZXJzKCl7cmV0dXJuIHRoaXMuZmlsdGVyc31zZXRGaWx0ZXJzKHQpe3JldHVybiB0fHwodD1bXSksITA9PT10aGlzLl9jb25uZWN0ZWQ/KHRoaXMuZGlzY29ubmVjdCgpLHRoaXMuZmlsdGVycz10LnNsaWNlKCksdGhpcy5jb25uZWN0KCkpOnRoaXMuZmlsdGVycz10LnNsaWNlKCksdGhpc31zZXREZXR1bmUodCl7aWYodGhpcy5kZXR1bmU9dCx2b2lkIDAhPT10aGlzLnNvdXJjZS5kZXR1bmUpcmV0dXJuITA9PT10aGlzLmlzUGxheWluZyYmdGhpcy5zb3VyY2UuZGV0dW5lLnNldFRhcmdldEF0VGltZSh0aGlzLmRldHVuZSx0aGlzLmNvbnRleHQuY3VycmVudFRpbWUsLjAxKSx0aGlzfWdldERldHVuZSgpe3JldHVybiB0aGlzLmRldHVuZX1nZXRGaWx0ZXIoKXtyZXR1cm4gdGhpcy5nZXRGaWx0ZXJzKClbMF19c2V0RmlsdGVyKHQpe3JldHVybiB0aGlzLnNldEZpbHRlcnModD9bdF06W10pfXNldFBsYXliYWNrUmF0ZSh0KXtpZighMSE9PXRoaXMuaGFzUGxheWJhY2tDb250cm9sKXJldHVybiB0aGlzLnBsYXliYWNrUmF0ZT10LCEwPT09dGhpcy5pc1BsYXlpbmcmJnRoaXMuc291cmNlLnBsYXliYWNrUmF0ZS5zZXRUYXJnZXRBdFRpbWUodGhpcy5wbGF5YmFja1JhdGUsdGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lLC4wMSksdGhpcztjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvOiB0aGlzIEF1ZGlvIGhhcyBubyBwbGF5YmFjayBjb250cm9sLiIpfWdldFBsYXliYWNrUmF0ZSgpe3JldHVybiB0aGlzLnBsYXliYWNrUmF0ZX1vbkVuZGVkKCl7dGhpcy5pc1BsYXlpbmc9ITF9Z2V0TG9vcCgpe3JldHVybiExPT09dGhpcy5oYXNQbGF5YmFja0NvbnRyb2w/KGNvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIiksITEpOnRoaXMubG9vcH1zZXRMb29wKHQpe2lmKCExIT09dGhpcy5oYXNQbGF5YmFja0NvbnRyb2wpcmV0dXJuIHRoaXMubG9vcD10LCEwPT09dGhpcy5pc1BsYXlpbmcmJih0aGlzLnNvdXJjZS5sb29wPXRoaXMubG9vcCksdGhpcztjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvOiB0aGlzIEF1ZGlvIGhhcyBubyBwbGF5YmFjayBjb250cm9sLiIpfXNldExvb3BTdGFydCh0KXtyZXR1cm4gdGhpcy5sb29wU3RhcnQ9dCx0aGlzfXNldExvb3BFbmQodCl7cmV0dXJuIHRoaXMubG9vcEVuZD10LHRoaXN9Z2V0Vm9sdW1lKCl7cmV0dXJuIHRoaXMuZ2Fpbi5nYWluLnZhbHVlfXNldFZvbHVtZSh0KXtyZXR1cm4gdGhpcy5nYWluLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKHQsdGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lLC4wMSksdGhpc319LnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IC5sb2FkIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSBUSFJFRS5BdWRpb0xvYWRlciBpbnN0ZWFkLiIpO2xldCB0PXRoaXM7cmV0dXJuKG5ldyBxQikubG9hZChuLGZ1bmN0aW9uKGkpe3Quc2V0QnVmZmVyKGkpfSksdGhpc30sRXgucHJvdG90eXBlLnVwZGF0ZUN1YmVNYXA9ZnVuY3Rpb24obix0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5DdWJlQ2FtZXJhOiAudXBkYXRlQ3ViZU1hcCgpIGlzIG5vdyAudXBkYXRlKCkuIiksdGhpcy51cGRhdGUobix0KX0sRXgucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKG4sdCxlLGkpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkN1YmVDYW1lcmE6IC5jbGVhcigpIGlzIG5vdyAucmVuZGVyVGFyZ2V0LmNsZWFyKCkuIiksdGhpcy5yZW5kZXJUYXJnZXQuY2xlYXIobix0LGUsaSl9LFVkLmNyb3NzT3JpZ2luPXZvaWQgMCxVZC5sb2FkVGV4dHVyZT1mdW5jdGlvbihuLHQsZSxpKXtjb25zb2xlLndhcm4oIlRIUkVFLkltYWdlVXRpbHMubG9hZFRleHR1cmUgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIFRIUkVFLlRleHR1cmVMb2FkZXIoKSBpbnN0ZWFkLiIpO2xldCByPW5ldyBOQjtyLnNldENyb3NzT3JpZ2luKHRoaXMuY3Jvc3NPcmlnaW4pO2xldCBvPXIubG9hZChuLGUsdm9pZCAwLGkpO3JldHVybiB0JiYoby5tYXBwaW5nPXQpLG99LFVkLmxvYWRUZXh0dXJlQ3ViZT1mdW5jdGlvbihuLHQsZSxpKXtjb25zb2xlLndhcm4oIlRIUkVFLkltYWdlVXRpbHMubG9hZFRleHR1cmVDdWJlIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSBUSFJFRS5DdWJlVGV4dHVyZUxvYWRlcigpIGluc3RlYWQuIik7bGV0IHI9bmV3IEZCO3Iuc2V0Q3Jvc3NPcmlnaW4odGhpcy5jcm9zc09yaWdpbik7bGV0IG89ci5sb2FkKG4sZSx2b2lkIDAsaSk7cmV0dXJuIHQmJihvLm1hcHBpbmc9dCksb30sVWQubG9hZENvbXByZXNzZWRUZXh0dXJlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuSW1hZ2VVdGlscy5sb2FkQ29tcHJlc3NlZFRleHR1cmUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIFRIUkVFLkREU0xvYWRlciBpbnN0ZWFkLiIpfSxVZC5sb2FkQ29tcHJlc3NlZFRleHR1cmVDdWJlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuSW1hZ2VVdGlscy5sb2FkQ29tcHJlc3NlZFRleHR1cmVDdWJlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBUSFJFRS5ERFNMb2FkZXIgaW5zdGVhZC4iKX0sdHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXzwidSImJl9fVEhSRUVfREVWVE9PTFNfXy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicmVnaXN0ZXIiLHtkZXRhaWw6e3JldmlzaW9uOnNWfX0pKSx0eXBlb2Ygd2luZG93PCJ1IiYmKHdpbmRvdy5fX1RIUkVFX18/Y29uc29sZS53YXJuKCJXQVJOSU5HOiBNdWx0aXBsZSBpbnN0YW5jZXMgb2YgVGhyZWUuanMgYmVpbmcgaW1wb3J0ZWQuIik6d2luZG93Ll9fVEhSRUVfXz1zVik7dmFyIFFsPSgoKT0+KGZ1bmN0aW9uKG4pe25bbi5DSVJDTEU9MF09IkNJUkNMRSIsbltuLkxJTkU9MV09IkxJTkUiLG5bbi5UUklBTkdMRT0yXT0iVFJJQU5HTEUiLG5bbi5UUkFQRVpPSUQ9M109IlRSQVBFWk9JRCJ9KFFsfHwoUWw9e30pKSxRbCkpKCk7ZnVuY3Rpb24gUHRlKG4sdCl7bGV0IGU9dC5sZW5ndGgvMixpPW4uYXR0cmlidXRlcy5wb3NpdGlvbjsoIWl8fGkuY291bnQhPT0zKmUpJiYoaT1uZXcgQXIobmV3IEZsb2F0MzJBcnJheSgzKmUpLDMpLG4uc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsaSkpO2xldCByPWkuYXJyYXk7Zm9yKGxldCBvPTA7bzxlO28rKylyWzMqb109dFsyKm9dLHJbMypvKzFdPXRbMipvKzFdO2kubmVlZHNVcGRhdGU9ITAsbi5zZXREcmF3UmFuZ2UoMCwzKmUpLG4uY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCl9ZnVuY3Rpb24ga3RlKG4sdCxlKXtsZXQgaT1NYXRoLm1heCh0Lmxlbmd0aC8yLTEsMCkscj0yKmkqMyxvPTMqcixhPW4uYXR0cmlidXRlcy5wb3NpdGlvbjsoIWF8fGEuY291bnQhPT1yKSYmKGE9bmV3IEFyKG5ldyBGbG9hdDMyQXJyYXkobyksMyksbi5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixhKSk7bGV0IHM9YS5hcnJheTtmb3IobGV0IGw9MDtsPGk7bCsrKXtsZXRbYyxkLHUscF09W3RbMipsXSx0WzIqbCsxXSx0WzIqbCsyXSx0WzIqbCszXV0saD1uZXcgJGUoYyxkKSxtPW5ldyAkZSh1LHApLF89bmV3ICRlKHUtYyxwLWQpLE09bmV3ICRlKC1fLnksXy54KS5zZXRMZW5ndGgoZS8yKSx5PWguY2xvbmUoKS5hZGQoTSkseD1oLmNsb25lKCkuc3ViKE0pLFI9bS5jbG9uZSgpLmFkZChNKSxJPW0uY2xvbmUoKS5zdWIoTSksQj1beS54LHkueSwwLHgueCx4LnksMCxSLngsUi55LDAsUi54LFIueSwwLHgueCx4LnksMCxJLngsSS55LDBdO3Muc2V0KEIsbCpCLmxlbmd0aCl9YS5uZWVkc1VwZGF0ZT0hMCxuLnNldERyYXdSYW5nZSgwLG8pLG4uY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCl9ZnVuY3Rpb24gbkEobix0LGUsaSl7bGV0e3Zpc2libGU6cixjb2xvcjpvLG9wYWNpdHk6YX09aTtpZihBcnJheS5pc0FycmF5KHQubWF0ZXJpYWwpKXRocm93IG5ldyBFcnJvcigiSW52YXJpYW50IGVycm9yOiBvbmx5IGV4cGVjdCBvbmUgbWF0ZXJpYWwgb24gYW4gb2JqZWN0Iik7bGV0IHM9dC5tYXRlcmlhbDtpZihzLnZpc2libGUhPT1yJiYocy52aXNpYmxlPXIscy5uZWVkc1VwZGF0ZT0hMCksIXIpcmV0dXJuITE7bGV0IGw9bVYobixvLGE/PzEpLGM9ZSh0Lmdlb21ldHJ5KTtyZXR1cm4gdC5nZW9tZXRyeSE9PWMmJih0Lmdlb21ldHJ5PWMpLHMuY29sb3IuZXF1YWxzKGwpfHwocy5jb2xvci5zZXQobCkscy5uZWVkc1VwZGF0ZT0hMCksITB9dmFyIHJBPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMucmF3U2VyaWVzRGF0YT1bXSx0aGlzLnNlcmllcz1bXSx0aGlzLnBhaW50RGlydHk9ITAsdGhpcy5yZW5kZXJDYWNoZT1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnByZXZGcmFtZUNhY2hlPW5ldyBNYXAsdGhpcy5jdXJyRnJhbWVDYWNoZT1uZXcgTWFwfWdldEZyb21QcmV2aW91c0ZyYW1lKHQpe3JldHVybiB0aGlzLnByZXZGcmFtZUNhY2hlLmdldCh0KT8/bnVsbH1zZXRUb0N1cnJlbnRGcmFtZSh0LGUpe3RoaXMuY3VyckZyYW1lQ2FjaGUuc2V0KHQsZSl9ZmluYWxpemVGcmFtZUFuZEdldFJlbW92ZWQoKXtsZXQgdD1bXTtmb3IobGV0W2UsaV1vZiB0aGlzLnByZXZGcmFtZUNhY2hlLmVudHJpZXMoKSl0aGlzLmN1cnJGcmFtZUNhY2hlLmhhcyhlKXx8dC5wdXNoKGkpO3JldHVybiB0aGlzLnByZXZGcmFtZUNhY2hlPXRoaXMuY3VyckZyYW1lQ2FjaGUsdGhpcy5jdXJyRnJhbWVDYWNoZT1uZXcgTWFwLHR9fSx0aGlzLmNvb3JkaW5hdGVJZGVudGlmaWVyPW51bGwsdGhpcy5sYXlvdXQ9e3g6MCx3aWR0aDoxLHk6MCxoZWlnaHQ6MX0sdGhpcy5nZXRNZXRhZGF0YU1hcEltcGw9dC5nZXRNZXRhZGF0YU1hcCx0aGlzLmNvb3JkaW5hdG9yPXQuY29vcmRpbmF0b3IsdGhpcy5yZW5kZXJlcj10LnJlbmRlcmVyLHRoaXMucGFpbnRCcnVzaD1uZXcgY2xhc3N7Y29uc3RydWN0b3IodCxlKXt0aGlzLnJlbmRlckNhY2hlPXQsdGhpcy5yZW5kZXJlcj1lfXNldExpbmUodCxlLGkpe2xldCByPXRoaXMucmVuZGVyZXIuY3JlYXRlT3JVcGRhdGVMaW5lT2JqZWN0KHRoaXMucmVuZGVyQ2FjaGUuZ2V0RnJvbVByZXZpb3VzRnJhbWUodCksZSxpKTtyJiZ0aGlzLnJlbmRlckNhY2hlLnNldFRvQ3VycmVudEZyYW1lKHQscil9c2V0VHJpYW5nbGUodCxlLGkpe2xldCByPXRoaXMucmVuZGVyZXIuY3JlYXRlT3JVcGRhdGVUcmlhbmdsZU9iamVjdCh0aGlzLnJlbmRlckNhY2hlLmdldEZyb21QcmV2aW91c0ZyYW1lKHQpLGUsaSk7ciYmdGhpcy5yZW5kZXJDYWNoZS5zZXRUb0N1cnJlbnRGcmFtZSh0LHIpfXNldENpcmNsZSh0LGUsaSl7bGV0IHI9dGhpcy5yZW5kZXJlci5jcmVhdGVPclVwZGF0ZUNpcmNsZU9iamVjdCh0aGlzLnJlbmRlckNhY2hlLmdldEZyb21QcmV2aW91c0ZyYW1lKHQpLGUsaSk7ciYmdGhpcy5yZW5kZXJDYWNoZS5zZXRUb0N1cnJlbnRGcmFtZSh0LHIpfXNldFRyYXBlem9pZCh0LGUsaSxyKXtsZXQgbz10aGlzLnJlbmRlcmVyLmNyZWF0ZU9yVXBkYXRlVHJhcGV6b2lkT2JqZWN0KHRoaXMucmVuZGVyQ2FjaGUuZ2V0RnJvbVByZXZpb3VzRnJhbWUodCksZSxpLHIpO28mJnRoaXMucmVuZGVyQ2FjaGUuc2V0VG9DdXJyZW50RnJhbWUodCxvKX19KHRoaXMucmVuZGVyQ2FjaGUsdGhpcy5yZW5kZXJlcil9c2V0TGF5b3V0UmVjdCh0KXsodGhpcy5sYXlvdXQueCE9PXQueHx8dGhpcy5sYXlvdXQud2lkdGghPT10LndpZHRofHx0aGlzLmxheW91dC55IT09dC55fHx0aGlzLmxheW91dC5oZWlnaHQhPT10LmhlaWdodCkmJih0aGlzLnBhaW50RGlydHk9ITApLHRoaXMubGF5b3V0PXR9Z2V0TGF5b3V0UmVjdCgpe3JldHVybiB0aGlzLmxheW91dH1nZXRNZXRhZGF0YU1hcCgpe3JldHVybiB0aGlzLmdldE1ldGFkYXRhTWFwSW1wbCgpfW1hcmtBc1BhaW50RGlydHkoKXt0aGlzLnBhaW50RGlydHk9ITB9cmVuZGVyKCl7aWYodGhpcy50cmFuc2Zvcm1Db29yZGluYXRlc0lmU3RhbGUoKSx0aGlzLnBhaW50RGlydHkpe3RoaXMucmVkcmF3KCk7Zm9yKGxldCB0IG9mIHRoaXMucmVuZGVyQ2FjaGUuZmluYWxpemVGcmFtZUFuZEdldFJlbW92ZWQoKSl0aGlzLnJlbmRlcmVyLmRlc3Ryb3lPYmplY3QodCk7dGhpcy5wYWludERpcnR5PSExfX1pc0Nvb3JkaW5hdGVVcGRhdGVkKCl7cmV0dXJuIHRoaXMuY29vcmRpbmF0b3IuZ2V0VXBkYXRlSWRlbnRpZmllcigpIT09dGhpcy5jb29yZGluYXRlSWRlbnRpZmllcn1jbGVhckNvb3JkaW5hdGVJZGVudGlmaWVyKCl7dGhpcy5jb29yZGluYXRlSWRlbnRpZmllcj1udWxsfXNldERhdGEodCl7dGhpcy5jbGVhckNvb3JkaW5hdGVJZGVudGlmaWVyKCksdGhpcy5yYXdTZXJpZXNEYXRhPXR9dHJhbnNmb3JtQ29vcmRpbmF0ZXNJZlN0YWxlKCl7aWYoIXRoaXMuaXNDb29yZGluYXRlVXBkYXRlZCgpKXJldHVybjtsZXQgdD10aGlzLmdldExheW91dFJlY3QoKTt0aGlzLnNlcmllcz1uZXcgQXJyYXkodGhpcy5yYXdTZXJpZXNEYXRhLmxlbmd0aCk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJhd1Nlcmllc0RhdGEubGVuZ3RoO2UrKyl7bGV0IGk9dGhpcy5yYXdTZXJpZXNEYXRhW2VdO3RoaXMuc2VyaWVzW2VdPXtpZDppLmlkLHBvbHlsaW5lOm5ldyBGbG9hdDMyQXJyYXkoMippLnBvaW50cy5sZW5ndGgpfTtmb3IobGV0IHI9MDtyPGkucG9pbnRzLmxlbmd0aDtyKyspe2xldFtvLGFdPXRoaXMuY29vcmRpbmF0b3IudHJhbnNmb3JtRGF0YVRvVWlDb29yZCh0LFtpLnBvaW50c1tyXS54LGkucG9pbnRzW3JdLnldKTt0aGlzLnNlcmllc1tlXS5wb2x5bGluZVsyKnJdPW8sdGhpcy5zZXJpZXNbZV0ucG9seWxpbmVbMipyKzFdPWF9fXRoaXMuY29vcmRpbmF0ZUlkZW50aWZpZXI9dGhpcy5jb29yZGluYXRvci5nZXRVcGRhdGVJZGVudGlmaWVyKCksdGhpcy5tYXJrQXNQYWludERpcnR5KCl9fSx1Xz0oKCk9PihmdW5jdGlvbihuKXtuW24uTlVNQkVSPTBdPSJOVU1CRVIiLG5bbi5OQU49MV09Ik5BTiJ9KHVffHwodV89e30pKSx1XykpKCksb0E9Y2xhc3MgZXh0ZW5kcyByQXtyZWNvcmRQYXJ0aXRpb24odCxlLGkpe3JldHVybiB0P3t0eXBlOnVfLk5VTUJFUixwb2x5bGluZTplfTp7dHlwZTp1Xy5OQU4scG9seWxpbmU6ZS5tYXAoKHIsbyk9PmlzTmFOKHIpP28lMj09MD9pLng6aS55OnIpfX1wYXJ0aXRpb25Qb2x5bGluZSh0KXtsZXQgZT1bXSxpPTAscj0hMSxvPXRoaXMuY29vcmRpbmF0b3IudHJhbnNmb3JtRGF0YVRvVWlDb29yZCh0aGlzLmdldExheW91dFJlY3QoKSxbMCwwXSksYT17eDpvWzBdLHk6b1sxXX0scz1udWxsO2ZvcihsZXQgbD0wO2w8dC5sZW5ndGg7bCs9Mil7bGV0IGM9dFtsXSxkPXRbbCsxXSx1PWlzTmFOKGMpfHxpc05hTihkKTt1IT09ciYmaSE9PWwmJihlLnB1c2godGhpcy5yZWNvcmRQYXJ0aXRpb24oIXIsdC5zbGljZShpLGwpLG51bGw9PT1zP3t4OmMseTpkfTpzKSksaT1sKSx1fHwocz17eDpjLHk6ZH0pLHI9dX1yZXR1cm4gaSE9PXQubGVuZ3RoLTEmJmUucHVzaCh0aGlzLnJlY29yZFBhcnRpdGlvbighcix0LnNsaWNlKGksdC5sZW5ndGgpLHM/P2EpKSxlfXJlZHJhdygpe2ZvcihsZXQgdCBvZiB0aGlzLnNlcmllcyl7bGV0IGk9dGhpcy5nZXRNZXRhZGF0YU1hcCgpW3QuaWRdO2lmKCFpKWNvbnRpbnVlO2lmKHQucG9seWxpbmUubGVuZ3RoJTIhPTApdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgaGF2ZSBvZGQgbGVuZ3RoLWVkIHBvbHlsaW5lOiAke3QucG9seWxpbmUubGVuZ3RofWApO2xldCByPXRoaXMucGFydGl0aW9uUG9seWxpbmUodC5wb2x5bGluZSk7Zm9yKGxldFtvLHt0eXBlOmEscG9seWxpbmU6c31db2Ygci5lbnRyaWVzKCkpaWYoYT09PXVfLk5VTUJFUikyPT09cy5sZW5ndGg/dGhpcy5wYWludEJydXNoLnNldENpcmNsZShKU09OLnN0cmluZ2lmeShbImNpcmNsZSIsdC5pZCxvXSkse3g6c1swXSx5OnNbMV19LHtjb2xvcjppLmNvbG9yLHZpc2libGU6aS52aXNpYmxlLG9wYWNpdHk6aS5vcGFjaXR5Pz8xLHJhZGl1czo0fSk6dGhpcy5wYWludEJydXNoLnNldExpbmUoSlNPTi5zdHJpbmdpZnkoWyJsaW5lIix0LmlkLG9dKSxzLHtjb2xvcjppLmNvbG9yLHZpc2libGU6aS52aXNpYmxlLG9wYWNpdHk6aS5vcGFjaXR5Pz8xLHdpZHRoOjJ9KTtlbHNlIGlmKCFpLmF1eClmb3IobGV0IGw9MDtsPHMubGVuZ3RoO2wrPTIpdGhpcy5wYWludEJydXNoLnNldFRyaWFuZ2xlKEpTT04uc3RyaW5naWZ5KFsiTmFOIix0LmlkLHNbbF0sc1tsKzFdXSkse3g6c1tsXSx5OnNbbCsxXX0se2NvbG9yOmkuY29sb3IsdmlzaWJsZTppLnZpc2libGUsb3BhY2l0eTppLm9wYWNpdHk/PzEsc2l6ZToxMn0pfX19LGFBPWNsYXNzIGV4dGVuZHMgQzB7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY2FtZXJhPW5ldyB4bSgwLDFlMywxZTMsMCwwLDEwMCl9aXNZQXhpc1BvaW50ZWREb3duKCl7cmV0dXJuITF9c2V0RG9tQ29udGFpbmVyUmVjdCh0KXtzdXBlci5zZXREb21Db250YWluZXJSZWN0KHQpLHRoaXMuY2FtZXJhLmxlZnQ9dC54LHRoaXMuY2FtZXJhLnJpZ2h0PXQueCt0LndpZHRoLHRoaXMuY2FtZXJhLnRvcD10LnkrdC5oZWlnaHQsdGhpcy5jYW1lcmEuYm90dG9tPXQueSx0aGlzLmNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Z2V0Q2FtZXJhKCl7cmV0dXJuIHRoaXMuY2FtZXJhfX0sc0E9Y2xhc3N7Y29uc3RydWN0b3IodCl7c3dpdGNoKHRoaXMubWV0YWRhdGFNYXA9e30sdGhpcy5zaG91bGRSZXBhaW50PSExLHRoaXMuY2FsbGJhY2tzPXQuY2FsbGJhY2tzLHQudHlwZSl7Y2FzZSBZaS5TVkc6dGhpcy5jb29yZGluYXRvcj1uZXcgQzAsdGhpcy5yZW5kZXJlcj1uZXcgY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5zdmc9dH1mbHVzaCgpe31vblJlc2l6ZSh0KXt9ZGVzdHJveU9iamVjdCh0KXt0aGlzLnN2Zy5yZW1vdmVDaGlsZCh0LmRvbSl9c2V0VXNlRGFya01vZGUodCl7fWNyZWF0ZVBhdGhEU3RyaW5nKHQpe2lmKCF0Lmxlbmd0aClyZXR1cm4iIjtsZXQgZT1uZXcgQXJyYXkodC5sZW5ndGgvMik7ZVswXT1gTSR7dFswXX0sJHt0WzFdfWA7Zm9yKGxldCBpPTE7aTx0Lmxlbmd0aC8yO2krKyllW2ldPWBMJHt0WzIqaV19LCR7dFsyKmkrMV19YDtyZXR1cm4gZS5qb2luKCIiKX1jcmVhdGVPclVwZGF0ZUxpbmVPYmplY3QodCxlLGkpe2xldCByPXpEKHQ/LmRvbSwoKT0+e2xldCBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7by5zdHlsZS5maWxsPSJub25lIjtsZXQgYT10aGlzLmNyZWF0ZVBhdGhEU3RyaW5nKGUpO3JldHVybiBvLnNldEF0dHJpYnV0ZSgiZCIsYSksdGhpcy5zdmcuYXBwZW5kQ2hpbGQobyksb30sbz0+e2lmKCF0Py5kYXRhfHwhamxfYXJlUG9seWxpbmVzRXF1YWwoZSx0Py5kYXRhKSl7bGV0IGE9dGhpcy5jcmVhdGVQYXRoRFN0cmluZyhlKTtvLnNldEF0dHJpYnV0ZSgiZCIsYSl9cmV0dXJuIG99LGkpO3JldHVybiBudWxsPT09cj9udWxsOihyLnN0eWxlLnN0cm9rZVdpZHRoPVN0cmluZyhpLndpZHRoKSx7ZG9tOnIsZGF0YTplfSl9Y3JlYXRlT3JVcGRhdGVUcmlhbmdsZU9iamVjdCh0LGUsaSl7bGV0e3NpemU6cixjb2xvcjpvfT1pLGE9cipNYXRoLnNxcnQoMykvMixzPW5ldyBGbG9hdDMyQXJyYXkoW2UueC1yLzIsZS55K2EvMyxlLngrci8yLGUueSthLzMsZS54LGUueS0yKmEvM10pLGw9ekQodD8uZG9tLCgpPT57bGV0IGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInBhdGgiKTtjLmNsYXNzTGlzdC5hZGQoInRyaWFuZ2xlIiksYy5zdHlsZS5maWxsPSJub25lIjtsZXQgZD10aGlzLmNyZWF0ZVBhdGhEU3RyaW5nKHMpO3JldHVybiBjLnNldEF0dHJpYnV0ZSgiZCIsZCsiWiIpLHRoaXMuc3ZnLmFwcGVuZENoaWxkKGMpLGN9LGM9PntsZXQgZD10aGlzLmNyZWF0ZVBhdGhEU3RyaW5nKHMpO3JldHVybiBjLnNldEF0dHJpYnV0ZSgiZCIsZCsiWiIpLGN9LGkpO3JldHVybiBudWxsPT09bD9udWxsOihsLnN0eWxlLmZpbGw9byx7ZG9tOmwsZGF0YTpzfSl9Y3JlYXRlT3JVcGRhdGVDaXJjbGVPYmplY3QodCxlLGkpe2xldHtjb2xvcjpyLHJhZGl1czpvfT1pLGE9ekQodD8uZG9tLCgpPT57bGV0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImNpcmNsZSIpO3JldHVybiBzLnN0eWxlLmZpbGw9cixzLnNldEF0dHJpYnV0ZSgiY3giLFN0cmluZyhlLngpKSxzLnNldEF0dHJpYnV0ZSgiY3kiLFN0cmluZyhlLnkpKSxzLnNldEF0dHJpYnV0ZSgiciIsU3RyaW5nKG8pKSx0aGlzLnN2Zy5hcHBlbmRDaGlsZChzKSxzfSxzPT4ocy5zdHlsZS5maWxsPXIscy5zZXRBdHRyaWJ1dGUoImN4IixTdHJpbmcoZS54KSkscy5zZXRBdHRyaWJ1dGUoImN5IixTdHJpbmcoZS55KSkscy5zZXRBdHRyaWJ1dGUoInIiLFN0cmluZyhvKSkscyksaSk7cmV0dXJuIG51bGw9PT1hP251bGw6e2RvbTphLGRhdGE6ZX19Y3JlYXRlT3JVcGRhdGVUcmFwZXpvaWRPYmplY3QodCxlLGkscil7aWYoZS55IT09aS55KXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnB1dCBlcnJvcjogc3RhcnQueSAhPSBlbmQueS4iKTtsZXR7YWx0aXR1ZGU6byxjb2xvcjphfT1yLHM9Mi9NYXRoLnNxcnQoMykqbyxsPW5ldyBGbG9hdDMyQXJyYXkoW2UueC1zLzIsZS55K28vMixlLngsZS55LW8vMixpLngsaS55LW8vMixpLngrcy8yLGkueStvLzJdKSxjPXpEKHQ/LmRvbSwoKT0+e2xldCBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7ZC5jbGFzc0xpc3QuYWRkKCJ0cmFwZXpvaWQiKSxkLnN0eWxlLmZpbGw9Im5vbmUiO2xldCB1PXRoaXMuY3JlYXRlUGF0aERTdHJpbmcobCk7cmV0dXJuIGQuc2V0QXR0cmlidXRlKCJkIix1KyJaIiksdGhpcy5zdmcuYXBwZW5kQ2hpbGQoZCksZH0sZD0+e2xldCB1PXRoaXMuY3JlYXRlUGF0aERTdHJpbmcobCk7cmV0dXJuIGQuc2V0QXR0cmlidXRlKCJkIix1KyJaIiksZH0scik7cmV0dXJuIG51bGw9PT1jP251bGw6KGMuc3R5bGUuZmlsbD1hLHtkb206YyxkYXRhOmx9KX1kaXNwb3NlKCl7fX0odC5jb250YWluZXIpO2JyZWFrO2Nhc2UgWWkuV0VCR0w6e2xldCBlPW5ldyBhQTt0aGlzLmNvb3JkaW5hdG9yPWUsdGhpcy5yZW5kZXJlcj1uZXcgY2xhc3N7Y29uc3RydWN0b3IodCxlLGkscil7dGhpcy5jb29yZGluYXRvcj1lLHRoaXMuc2NlbmU9bmV3IG5fLHRoaXMuYmFja2dyb3VuZENvbG9yPSIjZmZmIixqbF9pc1dlYkdsMk9mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZCgpJiZ0IGluc3RhbmNlb2YgT2Zmc2NyZWVuQ2FudmFzJiYodC5zdHlsZT10LnN0eWxlfHx7fSksciYmdC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IixyKSx0aGlzLnJlbmRlcmVyPW5ldyBXaSh7Y2FudmFzOnQsYW50aWFsaWFzOiEwLGFscGhhOiEwfSksdGhpcy5yZW5kZXJlci5zZXRQaXhlbFJhdGlvKGkpfW9uUmVzaXplKHQpe3RoaXMucmVuZGVyZXIuc2V0U2l6ZSh0LndpZHRoLHQuaGVpZ2h0KX1kZXN0cm95T2JqZWN0KHQpe2xldCBlPXQub2JqM2Q7aWYodGhpcy5zY2VuZS5yZW1vdmUoZSksZSBpbnN0YW5jZW9mIHNvKXtlLmdlb21ldHJ5LmRpc3Bvc2UoKTtsZXQgaT1BcnJheS5pc0FycmF5KGUubWF0ZXJpYWwpP2UubWF0ZXJpYWw6W2UubWF0ZXJpYWxdO2ZvcihsZXQgciBvZiBpKXIuZGlzcG9zZSgpfX1zZXRVc2VEYXJrTW9kZSh0KXt0aGlzLmJhY2tncm91bmRDb2xvcj10PyIjMzAzMDMwIjoiI2ZmZiJ9Y3JlYXRlT3JVcGRhdGVMaW5lT2JqZWN0KHQsZSxpKXtpZighdCYmIWkudmlzaWJsZSlyZXR1cm4gbnVsbDtsZXR7dmlzaWJsZTpyLHdpZHRoOm99PWk7aWYoIXQpe2xldCBkPW1WKHRoaXMuYmFja2dyb3VuZENvbG9yLGkuY29sb3IsaS5vcGFjaXR5Pz8xKSx1PW5ldyBHaSxwPW5ldyBHZCh7Y29sb3I6ZH0pLGg9bmV3IHNvKHUscCk7cmV0dXJuIHAudmlzaWJsZT1yLGt0ZSh1LGUsbyksdGhpcy5zY2VuZS5hZGQoaCkse3R5cGU6UWwuTElORSxkYXRhOmUsb2JqM2Q6aCx3aWR0aDpvfX1sZXR7ZGF0YTphLG9iajNkOnMsd2lkdGg6bH09dDtyZXR1cm4gbkEodGhpcy5iYWNrZ3JvdW5kQ29sb3IscyxkPT4oKG8hPT1sfHwhYXx8IWpsX2FyZVBvbHlsaW5lc0VxdWFsKGEsZSkpJiZrdGUoZCxlLG8pLGQpLGkpP3t0eXBlOlFsLkxJTkUsZGF0YTplLG9iajNkOnMsd2lkdGg6b306dH1jcmVhdGVNZXNoKHQsZSl7aWYoIWUudmlzaWJsZSlyZXR1cm4gbnVsbDtsZXR7dmlzaWJsZTppLGNvbG9yOnIsb3BhY2l0eTpvfT1lLGE9bVYodGhpcy5iYWNrZ3JvdW5kQ29sb3IscixvPz8xKSxzPW5ldyB2bSh7Y29sb3I6YSx2aXNpYmxlOml9KTtyZXR1cm4gbmV3IHNvKHQscyl9Y3JlYXRlT3JVcGRhdGVUcmlhbmdsZU9iamVjdCh0LGUsaSl7bGV0e3NpemU6cn09aSxvPXIqTWF0aC5zcXJ0KDMpLzIsYT1uZXcgRmxvYXQzMkFycmF5KFtlLngtci8yLGUueS1vLzMsZS54K3IvMixlLnktby8zLGUueCxlLnkrMipvLzNdKTtpZighdCl7bGV0IGw9bmV3IEdpO1B0ZShsLGEpO2xldCBjPXRoaXMuY3JlYXRlTWVzaChsLGkpO3JldHVybiBudWxsPT09Yz9udWxsOih0aGlzLnNjZW5lLmFkZChjKSx7dHlwZTpRbC5UUklBTkdMRSxkYXRhOmUsb2JqM2Q6Y30pfXJldHVybiBuQSh0aGlzLmJhY2tncm91bmRDb2xvcix0Lm9iajNkLGw9PihQdGUobCxhKSxsKSxpKT97dHlwZTpRbC5UUklBTkdMRSxkYXRhOmUsb2JqM2Q6dC5vYmozZH06dH1jcmVhdGVPclVwZGF0ZUNpcmNsZU9iamVjdCh0LGUsaSl7bGV0e3JhZGl1czpyfT1pLG89bmV3IGlfKGkucmFkaXVzKTtpZighdCl7bGV0IHM9dGhpcy5jcmVhdGVNZXNoKG8saSk7cmV0dXJuIG51bGw9PT1zP251bGw6KHMucG9zaXRpb24uc2V0KGUueCxlLnksMCksdGhpcy5zY2VuZS5hZGQocykse3R5cGU6UWwuQ0lSQ0xFLGRhdGE6e2xvYzplLHJhZGl1czpyfSxvYmozZDpzfSl9cmV0dXJuIG5BKHRoaXMuYmFja2dyb3VuZENvbG9yLHQub2JqM2QsKCk9Pm8saSk/KHQub2JqM2QucG9zaXRpb24uc2V0KGUueCxlLnksMCkse3R5cGU6UWwuQ0lSQ0xFLGRhdGE6e2xvYzplLHJhZGl1czpyfSxvYmozZDp0Lm9iajNkfSk6dH1jcmVhdGVPclVwZGF0ZVRyYXBlem9pZE9iamVjdCh0LGUsaSxyKXtpZihlLnkhPT1pLnkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIklucHV0IGVycm9yOiBzdGFydC55ICE9IGVuZC55LiIpO2xldHthbHRpdHVkZTpvfT1yLGE9Mi9NYXRoLnNxcnQoMykqbyxzPW5ldyBXZChbbmV3ICRlKGUueC1hLzIsZS55LW8vMiksbmV3ICRlKGUueCxlLnkrby8yKSxuZXcgJGUoaS54LGkueStvLzIpLG5ldyAkZShpLngrYS8yLGkueS1vLzIpXSk7cy5hdXRvQ2xvc2U9ITA7bGV0IGw9bmV3IHdtKHMpO2lmKCF0KXtsZXQgZD10aGlzLmNyZWF0ZU1lc2gobCxyKTtyZXR1cm4gbnVsbD09PWQ/bnVsbDoodGhpcy5zY2VuZS5hZGQoZCkse3R5cGU6UWwuVFJBUEVaT0lELGRhdGE6W2UsaV0sb2JqM2Q6ZH0pfXJldHVybiBuQSh0aGlzLmJhY2tncm91bmRDb2xvcix0Lm9iajNkLCgpPT5sLHIpP3t0eXBlOlFsLlRSQVBFWk9JRCxkYXRhOltlLGldLG9iajNkOnQub2JqM2R9OnR9Zmx1c2goKXt0aGlzLnJlbmRlcmVyLnJlbmRlcih0aGlzLnNjZW5lLHRoaXMuY29vcmRpbmF0b3IuZ2V0Q2FtZXJhKCkpfWRpc3Bvc2UoKXt0aGlzLnJlbmRlcmVyLmRpc3Bvc2UoKX19KHQuY29udGFpbmVyLGUsdC5kZXZpY2VQaXhlbFJhdGlvLHQuY2FsbGJhY2tzLm9uQ29udGV4dExvc3QpO2JyZWFrfX10aGlzLnJlbmRlcmVyLnNldFVzZURhcmtNb2RlKHQudXNlRGFya01vZGUpLHRoaXMuc2VyaWVzTGluZVZpZXc9bmV3IG9BKHtyZW5kZXJlcjp0aGlzLnJlbmRlcmVyLGNvb3JkaW5hdG9yOnRoaXMuY29vcmRpbmF0b3IsZ2V0TWV0YWRhdGFNYXA6KCk9PnRoaXMubWV0YWRhdGFNYXB9KSx0aGlzLnJlc2l6ZSh0LmRvbURpbWVuc2lvbil9ZGlzcG9zZSgpe31zZXRYU2NhbGVUeXBlKHQpe3RoaXMuY29vcmRpbmF0b3Iuc2V0WFNjYWxlKFVsKHQpKSx0aGlzLnNjaGVkdWxlUmVwYWludCgpfXNldFlTY2FsZVR5cGUodCl7dGhpcy5jb29yZGluYXRvci5zZXRZU2NhbGUoVWwodCkpLHRoaXMuc2NoZWR1bGVSZXBhaW50KCl9cmVzaXplKHQpe3RoaXMuY29vcmRpbmF0b3Iuc2V0RG9tQ29udGFpbmVyUmVjdCh7eDowLHk6MCwuLi50fSksdGhpcy5yZW5kZXJlci5vblJlc2l6ZSh7eDowLHk6MCwuLi50fSksdGhpcy5zZXJpZXNMaW5lVmlldy5zZXRMYXlvdXRSZWN0KHsuLi50LHg6MCx5OjB9KSx0aGlzLnNjaGVkdWxlUmVwYWludCgpfXNldE1ldGFkYXRhKHQpe2xldCBlPSExO09iamVjdC5lbnRyaWVzKHQpLmZvckVhY2goKFtpLHJdKT0+e2xldCBvPXRoaXMubWV0YWRhdGFNYXBbaV07KCFvfHxyLmNvbG9yIT09by5jb2xvcnx8ci52aXNpYmxlIT09by52aXNpYmxlfHxyLm9wYWNpdHkhPT1vLm9wYWNpdHkpJiYoZT0hMCksdGhpcy5tZXRhZGF0YU1hcFtpXT1yfSksZSYmdGhpcy5zZXJpZXNMaW5lVmlldy5tYXJrQXNQYWludERpcnR5KCksdGhpcy5zY2hlZHVsZVJlcGFpbnQoKX1zZXRWaWV3Qm94KHQpe3RoaXMuY29vcmRpbmF0b3Iuc2V0Vmlld0JveFJlY3Qoe3g6dC54WzBdLHdpZHRoOnQueFsxXS10LnhbMF0seTp0LnlbMF0saGVpZ2h0OnQueVsxXS10LnlbMF19KSx0aGlzLnNjaGVkdWxlUmVwYWludCgpfXNldERhdGEodCl7dGhpcy5zZXJpZXNMaW5lVmlldy5zZXREYXRhKHQpLHRoaXMuc2NoZWR1bGVSZXBhaW50KCl9c2V0VXNlRGFya01vZGUodCl7dGhpcy5yZW5kZXJlci5zZXRVc2VEYXJrTW9kZSh0KSx0aGlzLnNlcmllc0xpbmVWaWV3Lm1hcmtBc1BhaW50RGlydHkoKSx0aGlzLnNjaGVkdWxlUmVwYWludCgpfXNjaGVkdWxlUmVwYWludCgpe3RoaXMuc2hvdWxkUmVwYWludHx8KHRoaXMuc2hvdWxkUmVwYWludD0hMCwobj0+e3NlbGYucmVxdWVzdEFuaW1hdGlvbkZyYW1lKG4pfSkoKCk9Pnt0aGlzLnJlcGFpbnQoKSx0aGlzLnNob3VsZFJlcGFpbnQ9ITF9KSl9cmVwYWludCgpe3RoaXMuc2VyaWVzTGluZVZpZXcucmVuZGVyKCksdGhpcy5yZW5kZXJlci5mbHVzaCgpLHRoaXMuY2FsbGJhY2tzLm9uRHJhd0VuZCgpfX0sRHM9KCgpPT4oZnVuY3Rpb24obil7bltuLlNFUklFU19EQVRBX1VQREFURUQ9MF09IlNFUklFU19EQVRBX1VQREFURUQiLG5bbi5TRVJJRVNfTUVUQURBVEFfQ0hBTkdFRD0xXT0iU0VSSUVTX01FVEFEQVRBX0NIQU5HRUQiLG5bbi5TQ0FMRV9VUERBVEVEPTJdPSJTQ0FMRV9VUERBVEVEIixuW24uVklFV19CT1hfVVBEQVRFRD0zXT0iVklFV19CT1hfVVBEQVRFRCIsbltuLklOSVQ9NF09IklOSVQiLG5bbi5ET01fUkVTSVpFRD01XT0iRE9NX1JFU0laRUQiLG5bbi5EQVJLX01PREVfVVBEQVRFRD02XT0iREFSS19NT0RFX1VQREFURUQiLG5bbi5ESVNQT1NFRD03XT0iRElTUE9TRUQifShEc3x8KERzPXt9KSksRHMpKSgpLHBfPSgoKT0+KGZ1bmN0aW9uKG4pe25bbi5PTl9SRURSQVdfRU5EPTBdPSJPTl9SRURSQVdfRU5EIixuW24uT05fQ09OVEVYVF9MT1NUPTFdPSJPTl9DT05URVhUX0xPU1QifShwX3x8KHBfPXt9KSkscF8pKSgpO2Z1bmN0aW9uIEZ0ZShuKXtpZihuLmluY2x1ZGVzKCIvIikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIldvcmtlciBmYWN0b3J5IG9ubHkgYWxsb3dzIGZpbGUgbmFtZSBhbmQgbm8gcmVzb3VyY2UgcGF0aC4iKTtyZXR1cm4gbmV3IFdvcmtlcihuKX12YXIgVG09Y2xhc3N7Y29uc3RydWN0b3IodCl7aWYodGhpcy5jYWxsYmFja3M9dC5jYWxsYmFja3MsdC50eXBlIT09WWkuV0VCR0wpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYENhbm5vdCB1c2Ugbm9uIFdFQkdMIHJlbmRlcmVyIGZvciB0aGUgb2Zmc2NyZWVuIGxpbmUgY2hhcnQuIFJlY2VpdmVkICR7WWlbdC50eXBlXX0gYCk7bGV0IGU9bmV3IE1lc3NhZ2VDaGFubmVsO2UucG9ydDEub25tZXNzYWdlPW89Pnt0aGlzLm9uTWVzc2FnZUZyb21Xb3JrZXIoby5kYXRhKX0sdGhpcy50eE1lc3NhZ2VQb3J0PWUucG9ydDE7bGV0IGk9dC5jb250YWluZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKTt0aGlzLndvcmtlckluc3RhbmNlPVRtLndvcmtlclBvb2wuZ2V0TmV4dCgpO2xldCByPXt0eXBlOkRzLklOSVQsY2FudmFzOmksZGV2aWNlUGl4ZWxSYXRpbzp3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyxkaW06dC5kb21EaW1lbnNpb24scmVuZGVyZXJUeXBlOnQudHlwZSx1c2VEYXJrTW9kZTp0LnVzZURhcmtNb2RlfTt0aGlzLndvcmtlckluc3RhbmNlLnBvc3RNZXNzYWdlKHIsW2ksZS5wb3J0Ml0pfWRpc3Bvc2UoKXt0aGlzLnNlbmRNZXNzYWdlKHt0eXBlOkRzLkRJU1BPU0VEfSksdGhpcy53b3JrZXJJbnN0YW5jZS5mcmVlKCksdGhpcy50eE1lc3NhZ2VQb3J0LmNsb3NlKCl9c2V0WFNjYWxlVHlwZSh0KXt0aGlzLnNlbmRNZXNzYWdlKHt0eXBlOkRzLlNDQUxFX1VQREFURUQsYXhpczoieCIsc2NhbGVUeXBlOnR9KX1zZXRZU2NhbGVUeXBlKHQpe3RoaXMuc2VuZE1lc3NhZ2Uoe3R5cGU6RHMuU0NBTEVfVVBEQVRFRCxheGlzOiJ5IixzY2FsZVR5cGU6dH0pfXJlc2l6ZSh0KXt0aGlzLnNlbmRNZXNzYWdlKHt0eXBlOkRzLkRPTV9SRVNJWkVELGRpbTp0fSl9c2V0TWV0YWRhdGEodCl7dGhpcy5zZW5kTWVzc2FnZSh7dHlwZTpEcy5TRVJJRVNfTUVUQURBVEFfQ0hBTkdFRCxtZXRhZGF0YTp0fSl9c2V0Vmlld0JveCh0KXt0aGlzLnNlbmRNZXNzYWdlKHt0eXBlOkRzLlZJRVdfQk9YX1VQREFURUQsZXh0ZW50OnR9KX1zZXREYXRhKHQpe2xldCBlPWZ1bmN0aW9uKG4pe2xldCB0PW4ucmVkdWNlKChvLGEpPT5vK2EucG9pbnRzLmxlbmd0aCwwKSxlPTAsaT1uZXcgRmxvYXQ2NEFycmF5KDIqdCkscj1bXTtmb3IobGV0IG8gb2Ygbil7ci5wdXNoKHtpZDpvLmlkLGxlbmd0aDpvLnBvaW50cy5sZW5ndGh9KTtmb3IobGV0IGE9MDthPG8ucG9pbnRzLmxlbmd0aDthKyspaVtlKytdPW8ucG9pbnRzW2FdLngsaVtlKytdPW8ucG9pbnRzW2FdLnl9cmV0dXJue2lkc0FuZExlbmd0aHM6cixmbGF0dGVuZWRTZXJpZXM6aS5idWZmZXJ9fSh0KTt0aGlzLnNlbmRNZXNzYWdlKHt0eXBlOkRzLlNFUklFU19EQVRBX1VQREFURUQsY29tcGFjdERhdGFTZXJpZXM6ZX0sW2UuZmxhdHRlbmVkU2VyaWVzXSl9c2V0VXNlRGFya01vZGUodCl7dGhpcy5zZW5kTWVzc2FnZSh7dHlwZTpEcy5EQVJLX01PREVfVVBEQVRFRCx1c2VEYXJrTW9kZTp0fSl9c2VuZE1lc3NhZ2UodCxlKXtlP3RoaXMudHhNZXNzYWdlUG9ydC5wb3N0TWVzc2FnZSh0LGUpOnRoaXMudHhNZXNzYWdlUG9ydC5wb3N0TWVzc2FnZSh0KX1vbk1lc3NhZ2VGcm9tV29ya2VyKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UgcF8uT05fUkVEUkFXX0VORDp0aGlzLmNhbGxiYWNrcy5vbkRyYXdFbmQoKTticmVhaztjYXNlIHBfLk9OX0NPTlRFWFRfTE9TVDp0aGlzLmNhbGxiYWNrcy5vbkNvbnRleHRMb3N0KCl9fX07ZnVuY3Rpb24gWGMobix0KXtyZXR1cm4ieCI9PT10P1swLG4ud2lkdGhdOltuLmhlaWdodCwwXX1mdW5jdGlvbiBZeChuLHQpe2xldCBlPU1hdGguZmxvb3Iobi81MCk7cmV0dXJuIE1hdGgubWluKGUsdCl9ZnVuY3Rpb24gY0Eobix0LGUsaSl7cmV0dXJue21ham9yOltdLG1pbm9yOm4udGlja3MoaSxlKS5tYXAobz0+KHt2YWx1ZTpvLHRpY2tGb3JtYXR0ZWRTdHJpbmc6dC5mb3JtYXRUaWNrKG8pfSkpfX1UbS53b3JrZXJQb29sPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcih0LGU9MTAsaT1GdGUpe3RoaXMud29ya2VyUmVzb3VyY2VQYXRoPXQsdGhpcy5tYXhQb29sU2l6ZT1lLHRoaXMud29ya2VyRmFjdG9yeT1pLHRoaXMud29ya2Vycz1bXX1nZXROZXh0KCl7bGV0IHQ7aWYodGhpcy53b3JrZXJzLmV2ZXJ5KCh7YWN0aXZlQ291bnQ6aX0pPT5pPjApJiZ0aGlzLndvcmtlcnMubGVuZ3RoPHRoaXMubWF4UG9vbFNpemUpe2xldCBpPXRoaXMud29ya2VyRmFjdG9yeSh0aGlzLndvcmtlclJlc291cmNlUGF0aCk7dD17YWN0aXZlQ291bnQ6MCxwb3N0TWVzc2FnZToocixvKT0+e2kucG9zdE1lc3NhZ2UocixvKX0sZnJlZTooKT0+e3QuYWN0aXZlQ291bnQ9TWF0aC5tYXgodC5hY3RpdmVDb3VudC0xLDApfX0sdGhpcy53b3JrZXJzLnB1c2godCl9ZWxzZXtsZXQgaT10aGlzLndvcmtlcnMubWFwKCh7YWN0aXZlQ291bnQ6b30pPT5vKSxyPWkuaW5kZXhPZihNYXRoLm1pbiguLi5pKSk7dD10aGlzLndvcmtlcnNbcl19cmV0dXJuIHQuYWN0aXZlQ291bnQrKyx0fX0oImNoYXJ0X3dvcmtlci5qcz9fZmlsZV9oYXNoPTJjMWU3MWM1Iik7dmFyIGdWPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIik7ZnVuY3Rpb24gVnRlKG4pe2ZvcihsZXQgdCBvZiBuKWlmKFN0cmluZyh0KS5pbmNsdWRlcygiZSIpKXJldHVybiEwO3JldHVybiExfXZhciBReD17Z2V0U3RhbmRhcmRUaWNrczpjQSxnZXRUaWNrc0ZvclRlbXBvcmFsU2NhbGU6ZnVuY3Rpb24obix0LGUsaSl7bGV0W3Isb109aSxhPW4udGlja3MoaSwyKTtpZihvLXI+PTg2NGU1fHxhLmxlbmd0aD4yKXJldHVybiBjQShuLHQsZSxpKTtsZXQgcz1uLnRpY2tzKGksZSk7cmV0dXJue21ham9yOmEubWFwKGw9Pih7c3RhcnQ6bCx0aWNrRm9ybWF0dGVkU3RyaW5nOnQuZm9ybWF0U2hvcnQobCl9KSksbWlub3I6cy5tYXAobD0+KHt2YWx1ZTpsLHRpY2tGb3JtYXR0ZWRTdHJpbmc6dC5mb3JtYXRUaWNrKGwpfSkpfX0sZ2V0VGlja3NGb3JMaW5lYXJTY2FsZTpmdW5jdGlvbihuLHQsZSxpKXtsZXRbcixvXT1pLGE9TWF0aC5hYnMoby1yKTtpZihhPi4wMDEpcmV0dXJuIGNBKG4sdCxlLGkpO2xldCBzPW4udGlja3MoW3Isb10sZSksbD1uLnRpY2tzKFtyLG9dLDIpO2lmKFZ0ZShzKXx8VnRlKGwpKXJldHVybiBjQShuLHQsZSxpKTtsZXQgYz1bXSxkPWZ1bmN0aW9uKG4pe2xldCB0PW4udG9FeHBvbmVudGlhbCgpLnNwbGl0KCJlLSIsMik7cmV0dXJuIDI9PT10Lmxlbmd0aD9OdW1iZXIodFsxXSktMTowfShhKTthPDEmJmwuZXZlcnkoaD0+e2xldCBtPU1hdGguYWJzKGgpO3JldHVybiBtPj0wJiZtPDF9KSYmKGQrPTEpO2xldCB1PW5ldyBNYXA7Zm9yKGxldCBoIG9mIGwpe2xldFttLF89IiJdPVN0cmluZyhoKS5zcGxpdCgiLiIsMiksTT1OdW1iZXIobSsiLiIrXy5zbGljZSgwLGQpKTt1LnNldChNLHtzdGFydDpNLHRpY2tGb3JtYXR0ZWRTdHJpbmc6MD09PU0/Ilx1MjAxNCI6dC5mb3JtYXRSZWFkYWJsZShNKX0pfWxldCBwPTEwKk1hdGgucG93KDEwLC1kKTtmb3IobGV0IGggb2Ygcylmb3IobGV0IG0gb2ZbLi4udS5rZXlzKCldLnJldmVyc2UoKSl7bGV0IF89aC1tO2lmKF8+PTAmJl88cCl7aWYoMD09PW0pYy5wdXNoKHt2YWx1ZTpoLHRpY2tGb3JtYXR0ZWRTdHJpbmc6dC5mb3JtYXRUaWNrKGgpfSk7ZWxzZXtsZXQgTT1TdHJpbmcoaCkuc2xpY2UoU3RyaW5nKG0pLmxlbmd0aCk7Yy5wdXNoKHt2YWx1ZTpoLHRpY2tGb3JtYXR0ZWRTdHJpbmc6YFx1MjAyNiR7TXx8IjAifWB9KX1icmVha319cmV0dXJue21ham9yOkFycmF5LmZyb20odS52YWx1ZXMoKSksbWlub3I6Y319LGZpbHRlclRpY2tzQnlWaXNpYmlsaXR5OmZ1bmN0aW9uKG4sdCxlLGkscj01KXtpZighbi5sZW5ndGh8fCFnVilyZXR1cm4gbjtsZXQgbz0ieCI9PT1lPzE6LTEsYT1udWxsO3JldHVybiBuLmZpbHRlcihzPT57bGV0IGw9dChzKTtnVi5mb250PWk7bGV0IGM9Z1YubWVhc3VyZVRleHQocy50aWNrRm9ybWF0dGVkU3RyaW5nKSxkPSJ4Ij09PWU/Yy53aWR0aDpjLmFjdHVhbEJvdW5kaW5nQm94QXNjZW50LWMuYWN0dWFsQm91bmRpbmdCb3hEZXNjZW50O3JldHVybiBudWxsPT09YT8hKGwrbypkPDB8fChhPWwrbypkLDApKTohKG8qKGErbypyLWwpPjB8fChhPWwrbypkLDApKX0pfX07ZnVuY3Rpb24gTU5lKG4sdCl7aWYoMSZuJiYocW4oKSxmKDAsImciLDE3KSgxLCJ0ZXh0IiksVCgyKSxnKCksZigzLCJ0aXRsZSIpLFQoNCksZygpKCkpLDImbil7bGV0IGU9dC4kaW1wbGljaXQsaT13KCk7digxKSxCdCgiZm9udCIsaS5heGlzRm9udCksQmUoIngiLGkudGV4dFhQb3NpdGlvbihlLnZhbHVlKSkoInkiLGkudGV4dFlQb3NpdGlvbihlLnZhbHVlKSksdigxKSxWZSgiICIsZS50aWNrRm9ybWF0dGVkU3RyaW5nLCIgIiksdigyKSxrdChpLmdldEZvcm1hdHRlcigpLmZvcm1hdExvbmcoZS52YWx1ZSkpfX1mdW5jdGlvbiB3TmUobix0KXtpZigxJm4mJihmKDAsInNwYW4iLDIwKSgxLCJzcGFuIiksVCgyKSxnKCkoKSksMiZuKXtsZXQgZT10LiRpbXBsaWNpdCxpPXQuaW5kZXgscj10Lmxhc3Qsbz13KDIpO0J0KCJsZWZ0IixvLmdldE1ham9yWFBvc2l0aW9uKGUpLCJweCIpKCJ3aWR0aCIsby5nZXRNYWpvcldpZHRoU3RyaW5nKGUscixvLm1ham9yVGlja3NbaSsxXSkpKCJib3R0b20iLG8uZ2V0TWFqb3JZUG9zaXRpb24oZSksInB4IikoImhlaWdodCIsby5nZXRNYWpvckhlaWdodFN0cmluZyhlLHIsby5tYWpvclRpY2tzW2krMV0pKSgiZm9udCIsby5heGlzRm9udCksbnQoIm1ham9yLWxhYmVsIiwhMCkoImxhc3QiLHIpLGIoInRpdGxlIixvLmdldEZvcm1hdHRlcigpLmZvcm1hdExvbmcoZS5zdGFydCkpLHYoMiksa3QoZS50aWNrRm9ybWF0dGVkU3RyaW5nKX19ZnVuY3Rpb24gU05lKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiLDE4KSxTKDEsd05lLDMsMTYsInNwYW4iLDE5KSxnKCkpLDImbil7bGV0IGU9dygpO3YoMSksYigibmdGb3JPZiIsZS5tYWpvclRpY2tzKSgibmdGb3JUcmFja0J5IixlLnRyYWNrQnlNYWpvclRpY2spfX12YXIgSHRlPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLm9uVmlld0V4dGVudENoYW5nZT1uZXcgRix0aGlzLmVkaXRNZW51T3BlbmVkPSExLHRoaXMubWFqb3JUaWNrcz1bXSx0aGlzLm1pbm9yVGlja3M9W119bmdPbkNoYW5nZXMoKXtsZXQgZT1udWxsLHI9WXgoIngiPT09dGhpcy5heGlzP3RoaXMuZG9tRGltLndpZHRoOnRoaXMuZG9tRGltLmhlaWdodCx0aGlzLmdyaWRDb3VudCk7ZT10aGlzLnNjYWxlIGluc3RhbmNlb2Ygbng/UXguZ2V0VGlja3NGb3JMaW5lYXJTY2FsZSh0aGlzLnNjYWxlLHRoaXMuZ2V0Rm9ybWF0dGVyKCkscix0aGlzLmF4aXNFeHRlbnQpOnRoaXMuc2NhbGUgaW5zdGFuY2VvZiBpeD9ReC5nZXRUaWNrc0ZvclRlbXBvcmFsU2NhbGUodGhpcy5zY2FsZSx0aGlzLmdldEZvcm1hdHRlcigpLHIsdGhpcy5heGlzRXh0ZW50KTpReC5nZXRTdGFuZGFyZFRpY2tzKHRoaXMuc2NhbGUsdGhpcy5nZXRGb3JtYXR0ZXIoKSxyLHRoaXMuYXhpc0V4dGVudCksdGhpcy5tYWpvclRpY2tzPWUubWFqb3IsdGhpcy5taW5vclRpY2tzPVF4LmZpbHRlclRpY2tzQnlWaXNpYmlsaXR5KGUubWlub3Isbz0+dGhpcy5nZXREb21Qb3Moby52YWx1ZSksdGhpcy5heGlzLCIxMXB4IFJvYm90bywgc2Fucy1zZXJpZiIpfWdldEZvcm1hdHRlcigpe3JldHVybiB0aGlzLmN1c3RvbUZvcm1hdHRlcj8/dGhpcy5zY2FsZS5kZWZhdWx0Rm9ybWF0dGVyfXRyYWNrQnlNaW5vclRpY2soZSl7cmV0dXJuIGUudmFsdWV9dHJhY2tCeU1ham9yVGljayhlKXtyZXR1cm4gZS5zdGFydH1nZXREb21Qb3MoZSl7cmV0dXJuIHRoaXMuc2NhbGUuZm9yd2FyZCh0aGlzLmF4aXNFeHRlbnQsWGModGhpcy5kb21EaW0sdGhpcy5heGlzKSxlKX10ZXh0WFBvc2l0aW9uKGUpe3JldHVybiJ4Ij09PXRoaXMuYXhpcz9TdHJpbmcodGhpcy5nZXREb21Qb3MoZSkpOiIxMDAlIn10ZXh0WVBvc2l0aW9uKGUpe3JldHVybiJ4Ij09PXRoaXMuYXhpcz8iIjpTdHJpbmcodGhpcy5nZXREb21Qb3MoZSkpfWdldE1ham9yWFBvc2l0aW9uKGUpe3JldHVybiJ5Ij09PXRoaXMuYXhpcz8wOk1hdGgubWluKHRoaXMuZG9tRGltLndpZHRoLE1hdGgubWF4KDAsdGhpcy5nZXREb21Qb3MoZS5zdGFydCkpKX1nZXRNYWpvcldpZHRoU3RyaW5nKGUsaSxyKXtyZXR1cm4ieSI9PT10aGlzLmF4aXM/IiI6KGl8fCFyP3RoaXMuZG9tRGltLndpZHRoOnRoaXMuZ2V0TWFqb3JYUG9zaXRpb24ocikpLXRoaXMuZ2V0TWFqb3JYUG9zaXRpb24oZSkrInB4In1nZXRNYWpvcllQb3NpdGlvbihlKXtyZXR1cm4ieCI9PT10aGlzLmF4aXM/MDp0aGlzLmRvbURpbS5oZWlnaHQtTWF0aC5taW4odGhpcy5kb21EaW0uaGVpZ2h0LE1hdGgubWF4KDAsdGhpcy5nZXREb21Qb3MoZS5zdGFydCkpKX1nZXRNYWpvckhlaWdodFN0cmluZyhlLGkscil7cmV0dXJuIngiPT09dGhpcy5heGlzPyIiOihpfHwhcj90aGlzLmRvbURpbS5oZWlnaHQ6dGhpcy5nZXRNYWpvcllQb3NpdGlvbihyKSktdGhpcy5nZXRNYWpvcllQb3NpdGlvbihlKSsicHgifWtleWRvd25QcmV2ZW50Q2xvc2UoZSl7IkVzY2FwZSIhPT1lLmtleSYmZS5zdG9wUHJvcGFnYXRpb24oKX1leHRlbnRDaGFuZ2VkKGUsaSl7bGV0IHI9TnVtYmVyKGUpLG89TnVtYmVyKGkpO2lmKG88cil7bGV0IGE9cjtyPW8sbz1hfSFOdW1iZXIuaXNGaW5pdGUocil8fCFOdW1iZXIuaXNGaW5pdGUobyl8fHRoaXMub25WaWV3RXh0ZW50Q2hhbmdlLmVtaXQoW3Isb10pfW9uQXhpc1VwZGF0ZU1lbnVPcGVuKGUsaSxyKXtlLnZhbHVlPVN0cmluZyhyWzBdKSxpLnZhbHVlPVN0cmluZyhyWzFdKSxlLmZvY3VzKCl9c2V0RWRpdE1lbnVPcGVuZWQoZSl7dGhpcy5lZGl0TWVudU9wZW5lZD1lfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJsaW5lLWNoYXJ0LWF4aXMiXV0saW5wdXRzOntheGlzRXh0ZW50OiJheGlzRXh0ZW50IixheGlzOiJheGlzIixzY2FsZToic2NhbGUiLGdyaWRDb3VudDoiZ3JpZENvdW50Iixkb21EaW06ImRvbURpbSIsY3VzdG9tRm9ybWF0dGVyOiJjdXN0b21Gb3JtYXR0ZXIifSxvdXRwdXRzOntvblZpZXdFeHRlbnRDaGFuZ2U6Im9uVmlld0V4dGVudENoYW5nZSJ9LGZlYXR1cmVzOltxdF0sZGVjbHM6MjYsdmFyczoxMSxjb25zdHM6W1sxLCJsaW5lIl0sWzEsIm1pbm9yIl0sWzEsInRpY2tzIl0sWyJjbGFzcyIsIm1pbm9yLXRpY2stbGFiZWwiLDQsIm5nRm9yIiwibmdGb3JPZiIsIm5nRm9yVHJhY2tCeSJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwidGl0bGUiLCJDbGljayB0byBtYW51YWxseSBzZXQgbWluICYgbWF4IHZhbHVlcyIsMSwiZXh0ZW50LWVkaXQtYnV0dG9uIiwzLCJtYXRNZW51VHJpZ2dlckZvciIsIm1lbnVPcGVuZWQiLCJtZW51Q2xvc2VkIl0sWyJtYXRNZW51VHJpZ2dlciIsIm1hdE1lbnVUcmlnZ2VyIl0sWyJzdmdJY29uIiwiZWRpdF8yNHB4Il0sWyJjbGFzcyIsIm1ham9yIHRpY2tzIiw0LCJuZ0lmIl0sWyJ4UG9zaXRpb24iLCJiZWZvcmUiLDMsInlQb3NpdGlvbiJdLFsibWFudWFsQ29udHJvbCIsIm1hdE1lbnUiXSxbMSwiZXh0ZW50LWVkaXQtaW5wdXQiLDMsImNsaWNrIiwia2V5ZG93biJdLFsidHlwZSIsIm51bWJlciIsMywidmFsdWUiXSxbIm1pbklucHV0IiwiIl0sWyJtYXhJbnB1dCIsIiJdLFsxLCJleHRlbnQtZWRpdC1jb250cm9sIiwzLCJrZXlkb3duIl0sWyJtYXQtcmFpc2VkLWJ1dHRvbiIsIiIsImNvbG9yIiwicHJpbWFyeSIsMSwiZXh0ZW50LWVkaXQtY2hhbmdlIiwzLCJjbGljayJdLFsibWF0LXN0cm9rZWQtYnV0dG9uIiwiIiwxLCJleHRlbnQtZWRpdC1jYW5jZWwiLDMsImNsaWNrIl0sWzEsIm1pbm9yLXRpY2stbGFiZWwiXSxbMSwibWFqb3IiLCJ0aWNrcyJdLFszLCJtYWpvci1sYWJlbCIsImxhc3QiLCJsZWZ0Iiwid2lkdGgiLCJib3R0b20iLCJoZWlnaHQiLCJmb250IiwidGl0bGUiLDQsIm5nRm9yIiwibmdGb3JPZiIsIm5nRm9yVHJhY2tCeSJdLFszLCJ0aXRsZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpe2lmKDEmZSl7bGV0IHI9VGUoKTtmKDAsImRpdiIpLGsoMSwiZGl2IiwwKSxmKDIsImRpdiIsMSkscW4oKSxmKDMsInN2ZyIsMiksUyg0LE1OZSw1LDYsImciLDMpLGcoKSx1YSgpLGYoNSwiYnV0dG9uIiw0LDUpLEEoIm1lbnVPcGVuZWQiLGZ1bmN0aW9uKCl7bmUocik7bGV0IGE9c3QoMTUpLHM9c3QoMjApO3JldHVybiBpLm9uQXhpc1VwZGF0ZU1lbnVPcGVuKGEscyxpLmF4aXNFeHRlbnQpLGllKGkuc2V0RWRpdE1lbnVPcGVuZWQoITApKX0pKCJtZW51Q2xvc2VkIixmdW5jdGlvbigpe3JldHVybiBpLnNldEVkaXRNZW51T3BlbmVkKCExKX0pLGsoNywibWF0LWljb24iLDYpLGcoKSgpLFMoOCxTTmUsMiwyLCJkaXYiLDcpLGcoKSxmKDksIm1hdC1tZW51Iiw4LDkpKDExLCJkaXYiLDEwKSxBKCJjbGljayIsZnVuY3Rpb24oYSl7cmV0dXJuIGEuc3RvcFByb3BhZ2F0aW9uKCl9KSgia2V5ZG93biIsZnVuY3Rpb24oYSl7cmV0dXJuIGkua2V5ZG93blByZXZlbnRDbG9zZShhKX0pLGYoMTIsImxhYmVsIiksVCgxMywibWluIiksZygpLGsoMTQsImlucHV0IiwxMSwxMiksZygpLGYoMTYsImRpdiIsMTApLEEoImNsaWNrIixmdW5jdGlvbihhKXtyZXR1cm4gYS5zdG9wUHJvcGFnYXRpb24oKX0pKCJrZXlkb3duIixmdW5jdGlvbihhKXtyZXR1cm4gaS5rZXlkb3duUHJldmVudENsb3NlKGEpfSksZigxNywibGFiZWwiKSxUKDE4LCJtYXgiKSxnKCksaygxOSwiaW5wdXQiLDExLDEzKSxnKCksZigyMSwiZGl2IiwxNCksQSgia2V5ZG93biIsZnVuY3Rpb24oYSl7cmV0dXJuIGkua2V5ZG93blByZXZlbnRDbG9zZShhKX0pLGYoMjIsImJ1dHRvbiIsMTUpLEEoImNsaWNrIixmdW5jdGlvbigpe25lKHIpO2xldCBhPXN0KDE1KSxzPXN0KDIwKSxsPXN0KDYpO3JldHVybiBpLmV4dGVudENoYW5nZWQoYS52YWx1ZSxzLnZhbHVlKSxpZShsLmNsb3NlTWVudSgpKX0pLFQoMjMsIiBDaGFuZ2UgIiksZygpLGYoMjQsImJ1dHRvbiIsMTYpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBuZShyKSxpZShzdCg2KS5jbG9zZU1lbnUoKSl9KSxUKDI1LCIgQ2FuY2VsICIpLGcoKSgpKCl9aWYoMiZlKXtsZXQgcj1zdCgxMCk7WG8oaS5heGlzKyItYXhpcyBheGlzIiksdig0KSxiKCJuZ0Zvck9mIixpLm1pbm9yVGlja3MpKCJuZ0ZvclRyYWNrQnkiLGkudHJhY2tCeU1pbm9yVGljayksdigxKSxudCgiZXh0ZW50LWVkaXQtbWVudS1vcGVuZWQiLGkuZWRpdE1lbnVPcGVuZWQpLGIoIm1hdE1lbnVUcmlnZ2VyRm9yIixyKSx2KDMpLGIoIm5nSWYiLGkubWFqb3JUaWNrcy5sZW5ndGgpLHYoMSksYigieVBvc2l0aW9uIiwieSI9PT1pLmF4aXM/ImFib3ZlIjoiYmVsb3ciKSx2KDUpLGIoInZhbHVlIixpLmF4aXNFeHRlbnRbMF0pLHYoNSksYigidmFsdWUiLGkuYXhpc0V4dGVudFsxXSl9fSxkZXBlbmRlbmNpZXM6W25uLE5lLGtpLEVyLGJuLFh1LFl1XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2NvbnRhaW46c3RyaWN0O2Rpc3BsYXk6ZmxleDtvdmVyZmxvdzpoaWRkZW59Lm1ham9yLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgdGV4dFtfbmdjb250ZW50LSVDT01QJV17ZmlsbDpjdXJyZW50Q29sb3I7Zm9udC1zaXplOjExcHg7dXNlci1zZWxlY3Q6bm9uZX0uYXhpc1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLmV4dGVudC1lZGl0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17LS10Yi1pY29uLXdpZHRoOiAxNnB4Oy0tdGItaWNvbi1oZWlnaHQ6IDE2cHg7aGVpZ2h0OjI0cHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6NXB4O3RvcDo1cHg7dmlzaWJpbGl0eTpoaWRkZW47d2lkdGg6MjRweDtwYWRkaW5nOjB9Lm1ham9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1pbm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4OjEgMDtvdmVyZmxvdzpoaWRkZW59LmxpbmVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2FhYTtmbGV4OjAgMCAxcHg7anVzdGlmeS1jb250ZW50OnN0cmV0Y2h9LnRpY2tzW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlfS54LWF4aXNbX25nY29udGVudC0lQ09NUCVde2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0ueC1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tYm90dG9tOjNweH0ueC1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRleHRbX25nY29udGVudC0lQ09NUCVde2RvbWluYW50LWJhc2VsaW5lOnRleHQtYmVmb3JlLWVkZ2U7dGV4dC1hbmNob3I6bWlkZGxlfS54LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLnRpY2tzW19uZ2NvbnRlbnQtJUNPTVAlXXstd2Via2l0LW1hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDApIDAlLCAjMDAwIDEwJSwgIzAwMCA5MCUsIHJnYmEoMCwgMCwgMCwgMCkgMTAwJSk7bWFzay1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMCkgMCUsICMwMDAgMTAlLCAjMDAwIDkwJSwgcmdiYSgwLCAwLCAwLCAwKSAxMDAlKX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tbGVmdDo1cHh9LnktYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICB0ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtkb21pbmFudC1iYXNlbGluZTpjZW50cmFsO3RleHQtYW5jaG9yOmVuZH0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50aWNrc1tfbmdjb250ZW50LSVDT01QJV17LXdlYmtpdC1tYXNrLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMCkgMCUsICMwMDAgMTAlLCAjMDAwIDkwJSwgcmdiYSgwLCAwLCAwLCAwKSAxMDAlKTttYXNrLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMCkgMCUsICMwMDAgMTAlLCAjMDAwIDkwJSwgcmdiYSgwLCAwLCAwLCAwKSAxMDAlKX0uZXh0ZW50LWVkaXQtaW5wdXRbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtjb2x1bW4tZ2FwOjVweDtkaXNwbGF5OmdyaWQ7Zm9udC1zaXplOjEycHg7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjMwcHggbWlubWF4KGF1dG8sIDEwMHB4KTtoZWlnaHQ6MzBweDttYXJnaW46MTBweCAyMHB4fS5leHRlbnQtZWRpdC1pbnB1dFtfbmdjb250ZW50LSVDT01QJV0gICBpbnB1dFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O2JvcmRlci1yYWRpdXM6NHB4O2JvcmRlci1zdHlsZTpzb2xpZDtjb2xvcjppbmhlcml0fS5leHRlbnQtZWRpdC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDttYXJnaW46MTBweCAyMHB4fS5leHRlbnQtZWRpdC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7aGVpZ2h0OjMwcHg7bGluZS1oZWlnaHQ6MS40O21hcmdpbi1sZWZ0OjVweDtwYWRkaW5nOjAgMTBweH0uYXhpc1tfbmdjb250ZW50LSVDT01QJV06aG92ZXIgICAuZXh0ZW50LWVkaXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmF4aXNbX25nY29udGVudC0lQ09NUCVdOmZvY3VzLXdpdGhpbiAgIC5leHRlbnQtZWRpdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAuZXh0ZW50LWVkaXQtbWVudS1vcGVuZWRbX25nY29udGVudC0lQ09NUCVde3Zpc2liaWxpdHk6dmlzaWJsZX0ubWFqb3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtjb250YWluOnN0cmljdH0ubWFqb3JbX25nY29udGVudC0lQ09NUCVdICAgLm1ham9yLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7d2hpdGUtc3BhY2U6bm93cmFwfS5tYWpvcltfbmdjb250ZW50LSVDT01QJV0gICAubWFqb3ItbGFiZWxbX25nY29udGVudC0lQ09NUCVdICAgc3Bhbltfbmdjb250ZW50LSVDT01QJV17bWF4LXdpZHRoOjEwMCV9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAubWFqb3ItbGFiZWxbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjOWU5ZTllO3BhZGRpbmc6MCA1cHh9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAubWFqb3ItbGFiZWwubGFzdFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjOWU5ZTllfS55LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLm1ham9yLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjOWU5ZTllO2hlaWdodDoxMDAlO3BhZGRpbmc6NXB4IDA7d2lkdGg6MTAwJX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYWpvci1sYWJlbC5sYXN0W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCAjOWU5ZTllfS55LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLm1ham9yLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSA+IHNwYW5bX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcn0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpO2Z1bmN0aW9uIFp4KG4sdCl7bGV0IGU9TWF0aC5taW4oTGMobi5tYXAoKHt4Om99KT0+byksdCksbi5sZW5ndGgtMSksaT1NYXRoLm1heCgwLGUtMSk7cmV0dXJuIE1hdGguYWJzKG5baV0ueC10KS1NYXRoLmFicyhuW2VdLngtdCk8PTA/aTplfWZ1bmN0aW9uIHp0ZShuLHQsZSxpLHIsbyl7bGV0IGE7c3dpdGNoKG4uZGVsdGFNb2RlKXtjYXNlIFdoZWVsRXZlbnQuRE9NX0RFTFRBX1BJWEVMOmE9MTticmVhaztjYXNlIFdoZWVsRXZlbnQuRE9NX0RFTFRBX0xJTkU6YT04O2JyZWFrO2Nhc2UgV2hlZWxFdmVudC5ET01fREVMVEFfUEFHRTphPTIwO2JyZWFrO2RlZmF1bHQ6YT0xLGNvbnNvbGUud2FybihgVW5rbm93biBXaGVlbEV2ZW50IGRlbHRhTW9kZTogJHtuLmRlbHRhTW9kZX0uYCl9bGV0IHM9bi5kZWx0YVkqYSxsPXM8MD9NYXRoLm1heChzKmksLS45NSk6cyppLHt3aWR0aDpjLGhlaWdodDpkfT1lLHU9W3IucmV2ZXJzZSh0LngsWzAsY10sLW4ub2Zmc2V0WCpsKSxyLnJldmVyc2UodC54LFswLGNdLGMrKGMtbi5vZmZzZXRYKSpsKV0scD1bby5yZXZlcnNlKHQueSxbZCwwXSwtbi5vZmZzZXRZKmwpLG8ucmV2ZXJzZSh0LnksW2QsMF0sZCsoZC1uLm9mZnNldFkpKmwpXTtyZXR1cm57eDp1WzFdPHVbMF0/W3VbMV0sdVswXV06dSx5OnBbMV08cFswXT9bcFsxXSxwWzBdXTpwfX12YXIgRE5lPVsiZG90cyJdO2Z1bmN0aW9uIElOZShuLHQpe2lmKDEmbiYmKHFuKCksaygwLCJjaXJjbGUiLDExKSksMiZuKXtsZXQgZT13KCkuJGltcGxpY2l0LGk9dygyKTtCZSgiY3giLGkuZ2V0RG9tWChlLmRhdGFQb2ludC54KSkoImN5IixpLmdldERvbVkoZS5kYXRhUG9pbnQueSkpKCJmaWxsIixlLm1ldGFkYXRhLmNvbG9yKX19ZnVuY3Rpb24gQU5lKG4sdCl7aWYoMSZuJiYocW4oKSxHdCgwKSxTKDEsSU5lLDEsMywiY2lyY2xlIiwxMCksV3QoKSksMiZuKXtsZXQgZT10LiRpbXBsaWNpdCxpPXcoMik7digxKSxiKCJuZ0lmIixpLnNob3VsZFJlbmRlclRvb2x0aXBQb2ludChlLmRhdGFQb2ludCkpfX1mdW5jdGlvbiBSTmUobix0KXtpZigxJm4mJihxbigpLEd0KDApLFMoMSxBTmUsMiwxLCJuZy1jb250YWluZXIiLDkpLFd0KCkpLDImbil7bGV0IGU9dygpO3YoMSksYigibmdGb3JPZiIsZS5jdXJzb3JlZERhdGEpKCJuZ0ZvclRyYWNrQnkiLGUudHJhY2tCeVNlcmllc05hbWUpfX1mdW5jdGlvbiBQTmUobix0KXtpZigxJm4mJihxbigpLGsoMCwicmVjdCIsMTIpKSwyJm4pe2xldCBlPXcoKTtCZSgieCIsZS56b29tQm94SW5VaUNvb3JkaW5hdGUueCkoIndpZHRoIixlLnpvb21Cb3hJblVpQ29vcmRpbmF0ZS53aWR0aCkoInkiLGUuem9vbUJveEluVWlDb29yZGluYXRlLnkpKCJoZWlnaHQiLGUuem9vbUJveEluVWlDb29yZGluYXRlLmhlaWdodCl9fXZhciBrTmU9ZnVuY3Rpb24obix0LGUpe3JldHVybntkYXRhOm4sY3Vyc29yTG9jYXRpb25JbkRhdGFDb29yZDp0LGN1cnNvckxvY2F0aW9uOmV9fTtmdW5jdGlvbiBPTmUobix0KXtpZigxJm4mJihmKDAsImRpdiIsMTQpLGhpKDEsMTUpLGcoKSksMiZuKXtsZXQgZT13KDIpLGk9c3QoMTEpO3YoMSksYigibmdUZW1wbGF0ZU91dGxldCIsZS50b29sdGlwVGVtcGxhdGU/ZS50b29sdGlwVGVtcGxhdGU6aSkoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0Iix5YigyLGtOZSxlLmN1cnNvcmVkRGF0YSxlLmN1cnNvckxvY2F0aW9uSW5EYXRhQ29vcmQsZS5jdXJzb3JMb2NhdGlvbikpfX1mdW5jdGlvbiBGTmUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7UygwLE9OZSwyLDYsIm5nLXRlbXBsYXRlIiwxMyksQSgiZGV0YWNoIixmdW5jdGlvbigpe3JldHVybiBuZShlKSxpZSh3KCkub25Ub29sdGlwRGlzcGxheURldGFjaGVkKCkpfSl9aWYoMiZuKXtsZXQgZT13KCk7YigiY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbiIsZS50b29sdGlwT3JpZ2luRWwpKCJjZGtDb25uZWN0ZWRPdmVybGF5T3BlbiIsZS50b29sdGlwRGlzcGxheUF0dGFjaGVkJiZlLnN0YXRlLmdldFZhbHVlKCk9PT1lLkludGVyYWN0aW9uU3RhdGUuTk9ORSkoImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnMiLGUudG9vbHRpcFBvc2l0aW9ucykoImNka0Nvbm5lY3RlZE92ZXJsYXlTY3JvbGxTdHJhdGVneSIsZS5zY3JvbGxTdHJhdGVneSkoImNka0Nvbm5lY3RlZE92ZXJsYXlMb2NrUG9zaXRpb24iLCExKSgiY2RrQ29ubmVjdGVkT3ZlcmxheUZsZXhpYmxlRGltZW5zaW9ucyIsITApKCJjZGtDb25uZWN0ZWRPdmVybGF5R3Jvd0FmdGVyT3BlbiIsITApfX1mdW5jdGlvbiBOTmUobix0KXtpZigxJm4mJihHdCgwKSxmKDEsInRyIiwxNykoMiwidGQiLDE4KSxrKDMsInNwYW4iKSxnKCksZig0LCJ0ZCIsMTkpLFQoNSksZygpLGYoNiwidGQiKSxUKDcpLGcoKSxmKDgsInRkIiksVCg5KSxnKCkoKSxXdCgpKSwyJm4pe2xldCBlPXQuJGltcGxpY2l0O3YoMyksQnQoImJhY2tncm91bmQtY29sb3IiLGUubWV0YWRhdGEuY29sb3IpLHYoMiksa3QoZS5tZXRhZGF0YS5kaXNwbGF5TmFtZSksdigyKSxrdChlLmRhdGFQb2ludC55KSx2KDIpLGt0KGUuZGF0YVBvaW50LngpfX1mdW5jdGlvbiBMTmUobix0KXtpZigxJm4mJihmKDAsInRhYmxlIikoMSwidGhlYWQiKSgyLCJ0ciIpLGsoMywidGgiLDE2KSxmKDQsInRoIiksVCg1LCJOYW1lIiksZygpLGYoNiwidGgiKSxUKDcsIlkiKSxnKCksZig4LCJ0aCIpLFQoOSwiWCIpLGcoKSgpKCksZigxMCwidGJvZHkiKSxTKDExLE5OZSwxMCw1LCJuZy1jb250YWluZXIiLDkpLGcoKSgpKSwyJm4pe2xldCBlPXQuZGF0YSxpPXcoKTt2KDExKSxiKCJuZ0Zvck9mIixlKSgibmdGb3JUcmFja0J5IixpLnRyYWNrQnlTZXJpZXNOYW1lKX19ZnVuY3Rpb24gVk5lKG4pe3JldHVybiBuLnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpfXZhciBVdGU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkpe3RoaXMuY2hhbmdlRGV0ZWN0b3I9ZSx0aGlzLnNjcm9sbFN0cmF0ZWd5PWksdGhpcy5vblZpZXdFeHRlbnRDaGFuZ2U9bmV3IEYsdGhpcy5vblZpZXdFeHRlbnRSZXNldD1uZXcgRix0aGlzLm9uSW50ZXJhY3Rpb25TdGF0ZUNoYW5nZT1uZXcgRix0aGlzLkludGVyYWN0aW9uU3RhdGU9VHIsdGhpcy5zdGF0ZT1uZXcgeHIoVHIuTk9ORSksdGhpcy5zcGVjaWFsS2V5UHJlc3NlZD0hMSx0aGlzLnpvb21Cb3hJblVpQ29vcmRpbmF0ZT17eDowLHdpZHRoOjAsaGVpZ2h0OjAseTowfSx0aGlzLnRvb2x0aXBQb3NpdGlvbnM9W3tvZmZzZXRZOjUsb3JpZ2luWDoic3RhcnQiLG92ZXJsYXlYOiJzdGFydCIsb3JpZ2luWToiYm90dG9tIixvdmVybGF5WToidG9wIn0se29mZnNldFk6NSxvcmlnaW5YOiJlbmQiLG92ZXJsYXlYOiJlbmQiLG9yaWdpblk6ImJvdHRvbSIsb3ZlcmxheVk6InRvcCJ9LHtvZmZzZXRZOi0xNSxvcmlnaW5YOiJzdGFydCIsb3ZlcmxheVg6InN0YXJ0IixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlZOiJib3R0b20ifSx7b2Zmc2V0WTotMTUsb3JpZ2luWDoiZW5kIixvdmVybGF5WDoiZW5kIixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlZOiJib3R0b20ifSx7b2Zmc2V0WDo1LG9yaWdpblg6ImVuZCIsb3ZlcmxheVg6InN0YXJ0IixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlZOiJ0b3AifSx7b2Zmc2V0WDotNSxvcmlnaW5YOiJzdGFydCIsb3ZlcmxheVg6ImVuZCIsb3JpZ2luWToidG9wIixvdmVybGF5WToidG9wIn1dLHRoaXMuY3Vyc29yTG9jYXRpb25JbkRhdGFDb29yZD1udWxsLHRoaXMuY3Vyc29yTG9jYXRpb249bnVsbCx0aGlzLmN1cnNvcmVkRGF0YT1bXSx0aGlzLnRvb2x0aXBEaXNwbGF5QXR0YWNoZWQ9ITEsdGhpcy5zaG93Wm9vbUluc3RydWN0aW9uPSExLHRoaXMuZHJhZ1N0YXJ0Q29vcmQ9bnVsbCx0aGlzLmlzQ3Vyc29ySW5zaWRlPSExLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgRWUsdGhpcy5zdWJzY3JpcHRpb25zPVtdfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuc3RhdGUuc3Vic2NyaWJlKGU9Pnt0aGlzLm9uSW50ZXJhY3Rpb25TdGF0ZUNoYW5nZS5lbWl0KGUpfSkpLHRoaXMubmdVbnN1YnNjcmliZS5waXBlKHEoKCk9Pnt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChlPT5lLnVuc3Vic2NyaWJlKCkpfSkpLEVpKHRoaXMuZG90c0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCJkYmxjbGljayIse3Bhc3NpdmU6ITB9KS5waXBlKGl0KHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKT0+e3RoaXMub25WaWV3RXh0ZW50UmVzZXQuZW1pdCgpLHRoaXMuc3RhdGUubmV4dChUci5OT05FKSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpfSksRWkod2luZG93LCJrZXlkb3duIix7cGFzc2l2ZTohMH0pLnBpcGUoaXQodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKGU9PntsZXQgaT10aGlzLnNob3VsZFBhbihlKTtpIT09dGhpcy5zcGVjaWFsS2V5UHJlc3NlZCYmKHRoaXMuc3BlY2lhbEtleVByZXNzZWQ9aSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpKX0pLEVpKHdpbmRvdywia2V5dXAiLHtwYXNzaXZlOiEwfSkucGlwZShpdCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoZT0+e2xldCBpPXRoaXMuc2hvdWxkUGFuKGUpO2khPT10aGlzLnNwZWNpYWxLZXlQcmVzc2VkJiYodGhpcy5zcGVjaWFsS2V5UHJlc3NlZD1pLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCkpfSksRWkodGhpcy5kb3RzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIm1vdXNlZG93biIse3Bhc3NpdmU6ITB9KS5waXBlKGl0KHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZShlPT57bGV0IGk9dGhpcy5zdGF0ZS5nZXRWYWx1ZSgpLHI9dGhpcy5zaG91bGRQYW4oZSk/VHIuUEFOTklORzpUci5EUkFHX1pPT01JTkc7aT09PVRyLk5PTkUmJnI9PT1Uci5EUkFHX1pPT01JTkcmJih0aGlzLmRyYWdTdGFydENvb3JkPXt4OmUub2Zmc2V0WCx5OmUub2Zmc2V0WX0sdGhpcy56b29tQm94SW5VaUNvb3JkaW5hdGU9e3g6ZS5vZmZzZXRYLHdpZHRoOjAseTplLm9mZnNldFksaGVpZ2h0OjB9KSxpIT09ciYmKHRoaXMuc3RhdGUubmV4dChyKSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpKX0pLEVpKHRoaXMuZG90c0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCJtb3VzZXVwIix7cGFzc2l2ZTohMH0pLnBpcGUoaXQodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKGU9PntsZXQgaT0oZS5idXR0b25zJkNzLkxFRlQpPT09Q3MuTEVGVDt0aGlzLmRyYWdTdGFydENvb3JkPW51bGw7bGV0IHI9dGhpcy56b29tQm94SW5VaUNvb3JkaW5hdGU7aWYoIWkmJnRoaXMuc3RhdGUuZ2V0VmFsdWUoKT09PVRyLkRSQUdfWk9PTUlORyYmci53aWR0aD4wJiZyLmhlaWdodD4wKXtsZXQgbz10aGlzLmdldERhdGFYKHIueCksYT10aGlzLmdldERhdGFYKHIueCtyLndpZHRoKSxzPXRoaXMuZ2V0RGF0YVkoci55K3IuaGVpZ2h0KSxsPXRoaXMuZ2V0RGF0YVkoci55KTt0aGlzLm9uVmlld0V4dGVudENoYW5nZS5lbWl0KHtkYXRhRXh0ZW50Ont4OltvLGFdLHk6W3MsbF19fSl9dGhpcy5zdGF0ZS5nZXRWYWx1ZSgpIT09VHIuTk9ORSYmKHRoaXMuc3RhdGUubmV4dChUci5OT05FKSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpKX0pLEVpKHRoaXMuZG90c0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCJtb3VzZWVudGVyIix7cGFzc2l2ZTohMH0pLnBpcGUoaXQodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKGU9Pnt0aGlzLmlzQ3Vyc29ySW5zaWRlPSEwLHRoaXMudXBkYXRlVG9vbHRpcChlKSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpfSksRWkodGhpcy5kb3RzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIm1vdXNlbGVhdmUiLHtwYXNzaXZlOiEwfSkucGlwZShpdCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoZT0+e3RoaXMuZHJhZ1N0YXJ0Q29vcmQ9bnVsbCx0aGlzLmlzQ3Vyc29ySW5zaWRlPSExLHRoaXMudXBkYXRlVG9vbHRpcChlKSx0aGlzLnN0YXRlLm5leHQoVHIuTk9ORSksdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKX0pLEVpKHRoaXMuZG90c0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCJtb3VzZW1vdmUiLHtwYXNzaXZlOiEwfSkucGlwZShpdCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoZT0+e3N3aXRjaCh0aGlzLnN0YXRlLmdldFZhbHVlKCkpe2Nhc2UgVHIuU0NST0xMX1pPT01JTkc6dGhpcy5zdGF0ZS5uZXh0KFRyLk5PTkUpLHRoaXMudXBkYXRlVG9vbHRpcChlKSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO2JyZWFrO2Nhc2UgVHIuTk9ORTp0aGlzLnVwZGF0ZVRvb2x0aXAoZSksdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTticmVhaztjYXNlIFRyLlBBTk5JTkc6e2xldCBpPS1lLm1vdmVtZW50WCxyPS1lLm1vdmVtZW50WSx7d2lkdGg6byxoZWlnaHQ6YX09dGhpcy5kb21EaW0scz10aGlzLmdldERhdGFYKGkpLGw9dGhpcy5nZXREYXRhWChvK2kpLGM9dGhpcy5nZXREYXRhWShhK3IpLGQ9dGhpcy5nZXREYXRhWShyKTt0aGlzLm9uVmlld0V4dGVudENoYW5nZS5lbWl0KHtkYXRhRXh0ZW50Ont4OltzLGxdLHk6W2MsZF19fSk7YnJlYWt9Y2FzZSBUci5EUkFHX1pPT01JTkc6e2lmKCF0aGlzLmRyYWdTdGFydENvb3JkKWJyZWFrO2xldCBpPVt0aGlzLmRyYWdTdGFydENvb3JkLngsZS5vZmZzZXRYXSxyPVt0aGlzLmRyYWdTdGFydENvb3JkLnksZS5vZmZzZXRZXTt0aGlzLnpvb21Cb3hJblVpQ29vcmRpbmF0ZT17eDpNYXRoLm1pbiguLi5pKSx3aWR0aDpNYXRoLm1heCguLi5pKS1NYXRoLm1pbiguLi5pKSx5Ok1hdGgubWluKC4uLnIpLGhlaWdodDpNYXRoLm1heCguLi5yKS1NYXRoLm1pbiguLi5yKX19dGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKX19KSxFaSh0aGlzLmRvdHNDb250YWluZXIubmF0aXZlRWxlbWVudCwid2hlZWwiLHtwYXNzaXZlOiExfSkucGlwZShpdCh0aGlzLm5nVW5zdWJzY3JpYmUpLEpuKGU9PntsZXQgaT0hZS5jdHJsS2V5JiYhZS5zaGlmdEtleSYmZS5hbHRLZXk7cmV0dXJuIHRoaXMuc2hvd1pvb21JbnN0cnVjdGlvbj0haSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpLGk/KGUucHJldmVudERlZmF1bHQoKSwkdChlKSk6cnMoM2UzKS5waXBlKER0KCgpPT57dGhpcy5zaG93Wm9vbUluc3RydWN0aW9uPSExLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCl9KSxxKCgpPT5udWxsKSl9KSxPZShlPT5Cb29sZWFuKGUpKSkuc3Vic2NyaWJlKGU9Pnt0aGlzLm9uVmlld0V4dGVudENoYW5nZS5lbWl0KHtkYXRhRXh0ZW50Onp0ZShlLHRoaXMudmlld0V4dGVudCx0aGlzLmRvbURpbSwuMDEsdGhpcy54U2NhbGUsdGhpcy55U2NhbGUpfSksdGhpcy5zdGF0ZS5nZXRWYWx1ZSgpIT09VHIuU0NST0xMX1pPT01JTkcmJih0aGlzLnN0YXRlLm5leHQoVHIuU0NST0xMX1pPT01JTkcpLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCkpfSl9bmdPbkNoYW5nZXMoKXt0aGlzLnVwZGF0ZUN1cnNvcmVkRGF0YUFuZFRvb2x0aXBWaXNpYmlsaXR5KCl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfXNob3VsZFBhbihlKXtsZXQgaT1lLnNoaWZ0S2V5fHxlLmFsdEtleTtpZihlIGluc3RhbmNlb2YgS2V5Ym9hcmRFdmVudClyZXR1cm4gaTtsZXQgcj0oZS5idXR0b25zJkNzLkxFRlQpPT09Q3MuTEVGVCxvPShlLmJ1dHRvbnMmQ3MuTUlERExFKT09PUNzLk1JRERMRTtyZXR1cm4hKCFyJiYhbykmJihvJiYhcnx8aSl9dHJhY2tCeVNlcmllc05hbWUoZSxpKXtyZXR1cm4gaS5pZH1nZXREb21YKGUpe3JldHVybiB0aGlzLnhTY2FsZS5mb3J3YXJkKHRoaXMudmlld0V4dGVudC54LFhjKHRoaXMuZG9tRGltLCJ4IiksZSl9Z2V0RGF0YVgoZSl7cmV0dXJuIHRoaXMueFNjYWxlLnJldmVyc2UodGhpcy52aWV3RXh0ZW50LngsWGModGhpcy5kb21EaW0sIngiKSxlKX1nZXREb21ZKGUpe3JldHVybiB0aGlzLnlTY2FsZS5mb3J3YXJkKHRoaXMudmlld0V4dGVudC55LFhjKHRoaXMuZG9tRGltLCJ5IiksZSl9Z2V0RGF0YVkoZSl7cmV0dXJuIHRoaXMueVNjYWxlLnJldmVyc2UodGhpcy52aWV3RXh0ZW50LnksWGModGhpcy5kb21EaW0sInkiKSxlKX1zaG91bGRSZW5kZXJUb29sdGlwUG9pbnQoZSl7cmV0dXJuIG51bGwhPT1lJiYhaXNOYU4oZS54KSYmIWlzTmFOKGUueSl9dXBkYXRlVG9vbHRpcChlKXt0aGlzLmN1cnNvckxvY2F0aW9uSW5EYXRhQ29vcmQ9e3g6dGhpcy5nZXREYXRhWChlLm9mZnNldFgpLHk6dGhpcy5nZXREYXRhWShlLm9mZnNldFkpfSx0aGlzLmN1cnNvckxvY2F0aW9uPXt4OmUub2Zmc2V0WCx5OmUub2Zmc2V0WX0sdGhpcy51cGRhdGVDdXJzb3JlZERhdGFBbmRUb29sdGlwVmlzaWJpbGl0eSgpfW9uVG9vbHRpcERpc3BsYXlEZXRhY2hlZCgpe3RoaXMudG9vbHRpcERpc3BsYXlBdHRhY2hlZD0hMX11cGRhdGVDdXJzb3JlZERhdGFBbmRUb29sdGlwVmlzaWJpbGl0eSgpe2xldCBlPXRoaXMuY3Vyc29yTG9jYXRpb25JbkRhdGFDb29yZDtpZihudWxsPT09ZSlyZXR1cm4gdGhpcy5jdXJzb3JlZERhdGE9W10sdm9pZCh0aGlzLnRvb2x0aXBEaXNwbGF5QXR0YWNoZWQ9ITEpO3RoaXMuY3Vyc29yZWREYXRhPXRoaXMuaXNDdXJzb3JJbnNpZGU/dGhpcy5zZXJpZXNEYXRhLm1hcChpPT4oe3Nlcmllc0RhdHVtOmksbWV0YWRhdGE6dGhpcy5zZXJpZXNNZXRhZGF0YU1hcFtpLmlkXX0pKS5maWx0ZXIoKHttZXRhZGF0YTppfSk9PmkmJmkudmlzaWJsZSYmIUJvb2xlYW4oaS5hdXgpKS5tYXAoKHtzZXJpZXNEYXR1bTppLG1ldGFkYXRhOnJ9KT0+e2xldCBvPVp4KGkucG9pbnRzLGUueCksYT1pLnBvaW50c1tvXTtyZXR1cm57aWQ6aS5pZCxjbG9zZXN0UG9pbnRJbmRleDpvLGRhdGFQb2ludDphLGRvbVBvaW50Ont4OnRoaXMuZ2V0RG9tWChhLngpLHk6dGhpcy5nZXREb21ZKGEueSl9LG1ldGFkYXRhOnJ9fSkuZmlsdGVyKGk9PmkpOltdLHRoaXMudG9vbHRpcERpc3BsYXlBdHRhY2hlZD1Cb29sZWFuKHRoaXMuY3Vyc29yZWREYXRhLmxlbmd0aCl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoUXQpLEMoSWgpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJsaW5lLWNoYXJ0LWludGVyYWN0aXZlLXZpZXciXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiYoVWUoRE5lLDcseGUpLFVlKFZ1LDUpKSwyJmUpe2xldCByO2JlKHI9dmUoKSkmJihpLmRvdHNDb250YWluZXI9ci5maXJzdCksYmUocj12ZSgpKSYmKGkub3ZlcmxheT1yLmZpcnN0KX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MiZlJiZudCgic2hvdy16b29tLWluc3RydWN0aW9uIixpLnNob3dab29tSW5zdHJ1Y3Rpb24pfSxpbnB1dHM6e3Nlcmllc0RhdGE6InNlcmllc0RhdGEiLHNlcmllc01ldGFkYXRhTWFwOiJzZXJpZXNNZXRhZGF0YU1hcCIsdmlld0V4dGVudDoidmlld0V4dGVudCIseFNjYWxlOiJ4U2NhbGUiLHlTY2FsZToieVNjYWxlIixkb21EaW06ImRvbURpbSIsdG9vbHRpcE9yaWdpbkVsOiJ0b29sdGlwT3JpZ2luRWwiLHRvb2x0aXBUZW1wbGF0ZToidG9vbHRpcFRlbXBsYXRlIixkaXNhYmxlVG9vbHRpcDoiZGlzYWJsZVRvb2x0aXAifSxvdXRwdXRzOntvblZpZXdFeHRlbnRDaGFuZ2U6Im9uVmlld0V4dGVudENoYW5nZSIsb25WaWV3RXh0ZW50UmVzZXQ6Im9uVmlld0V4dGVudFJlc2V0IixvbkludGVyYWN0aW9uU3RhdGVDaGFuZ2U6Im9uSW50ZXJhY3Rpb25TdGF0ZUNoYW5nZSJ9LGZlYXR1cmVzOltWdChbe3Byb3ZpZGU6SWgsdXNlRmFjdG9yeTpWTmUsZGVwczpbT2ldfV0pLHF0XSxkZWNsczoxMix2YXJzOjksY29uc3RzOltbMSwiZG90cyJdLFsiZG90cyIsIiJdLFs0LCJuZ0lmIl0sWyJjbGFzcyIsInpvb20tYm94Iiw0LCJuZ0lmIl0sWzEsInpvb20taW5zdHJ1Y3Rpb24iXSxbMSwiaW5zdHJ1Y3Rpb24tY29udGVudCJdLFsiY2RrT3ZlcmxheU9yaWdpbiIsIiIsMSwidG9vbHRpcC1vcmlnaW4iXSxbInRvb2x0aXBPcmlnaW4iLCJjZGtPdmVybGF5T3JpZ2luIl0sWyJkZWZhdWx0VG9vbHRpcCIsIiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbInIiLCI0Iiw0LCJuZ0lmIl0sWyJyIiwiNCJdLFsxLCJ6b29tLWJveCJdLFsiY2RrQ29ubmVjdGVkT3ZlcmxheSIsIiIsMywiY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbiIsImNka0Nvbm5lY3RlZE92ZXJsYXlPcGVuIiwiY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9ucyIsImNka0Nvbm5lY3RlZE92ZXJsYXlTY3JvbGxTdHJhdGVneSIsImNka0Nvbm5lY3RlZE92ZXJsYXlMb2NrUG9zaXRpb24iLCJjZGtDb25uZWN0ZWRPdmVybGF5RmxleGlibGVEaW1lbnNpb25zIiwiY2RrQ29ubmVjdGVkT3ZlcmxheUdyb3dBZnRlck9wZW4iLCJkZXRhY2giXSxbMSwidG9vbHRpcC1jb250YWluZXIiXSxbMywibmdUZW1wbGF0ZU91dGxldCIsIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0Il0sWzEsImNpcmNsZS1oZWFkZXIiXSxbMSwidG9vbHRpcC1yb3ciXSxbMSwidG9vbHRpcC1yb3ctY2lyY2xlIl0sWzEsIm5hbWUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihxbigpLGYoMCwic3ZnIiwwLDEpLFMoMixSTmUsMiwyLCJuZy1jb250YWluZXIiLDIpLFMoMyxQTmUsMSw0LCJyZWN0IiwzKSxnKCksdWEoKSxmKDQsImRpdiIsNCkoNSwic3BhbiIsNSksVCg2LCJBbHQgKyBTY3JvbGwgdG8gWm9vbSIpLGcoKSgpLGsoNywiZGl2Iiw2LDcpLFMoOSxGTmUsMSw3LG51bGwsMiksUygxMCxMTmUsMTIsMiwibmctdGVtcGxhdGUiLG51bGwsOCxqdCkpLDImZSYmKG50KCJwYW5uYWJsZSIsaS5zcGVjaWFsS2V5UHJlc3NlZCkoImRyYWdnYWJsZSIsaS5zdGF0ZS5nZXRWYWx1ZSgpPT09aS5JbnRlcmFjdGlvblN0YXRlLk5PTkV8fGkuc3RhdGUuZ2V0VmFsdWUoKT09PWkuSW50ZXJhY3Rpb25TdGF0ZS5EUkFHX1pPT01JTkcpKCJwYW5uaW5nIixpLnN0YXRlLmdldFZhbHVlKCk9PT1pLkludGVyYWN0aW9uU3RhdGUuUEFOTklORyksdigyKSxiKCJuZ0lmIixpLnN0YXRlLmdldFZhbHVlKCk9PT1pLkludGVyYWN0aW9uU3RhdGUuTk9ORSksdigxKSxiKCJuZ0lmIixpLnN0YXRlLmdldFZhbHVlKCk9PT1pLkludGVyYWN0aW9uU3RhdGUuRFJBR19aT09NSU5HKSx2KDYpLGIoIm5nSWYiLCFpLmRpc2FibGVUb29sdGlwKSl9LGRlcGVuZGVuY2llczpbbm4sTmUsZW8sVnUsTWRdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO3VzZXItc2VsZWN0Om5vbmV9LmRvdHNbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmRvdHMuZHJhZ2dhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtjdXJzb3I6Y3Jvc3NoYWlyfS5kb3RzLnBhbm5hYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtjdXJzb3I6Z3JhYn0uZG90cy5wYW5uaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtjdXJzb3I6Z3JhYmJpbmd9LnRvb2x0aXAtcm93LWNpcmNsZVtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7aGVpZ2h0OjEycHg7d2lkdGg6MTJweH0udG9vbHRpcC1yb3ctY2lyY2xlW19uZ2NvbnRlbnQtJUNPTVAlXSA+IHNwYW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNik7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEwcHg7d2lkdGg6MTBweH0udG9vbHRpcC1vcmlnaW5bX25nY29udGVudC0lQ09NUCVde2JvdHRvbTowO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowfS50b29sdGlwLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC44NSk7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6I2ZmZjtjb250YWluOnBhaW50IHN0eWxlIGxheW91dDtmb250LXNpemU6LjllbTtvdmVyZmxvdzphdXRvO3BhZGRpbmc6NXB4O3BvaW50ZXItZXZlbnRzOm5vbmU7d2lkdGg6MTAwJX10aFtfbmdjb250ZW50LSVDT01QJV0sIHRkW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCA1cHg7dGV4dC1hbGlnbjpsZWZ0fXRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo1MDA7cGFkZGluZy1ib3R0b206NXB4fS56b29tLWJveFtfbmdjb250ZW50LSVDT01QJV17ZmlsbC1vcGFjaXR5Oi4wMztmaWxsOiMwMDA7c3Ryb2tlOiNjY2N9Lnpvb20taW5zdHJ1Y3Rpb25bX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtsZWZ0OjA7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MTBweDt0cmFuc2l0aW9uOm9wYWNpdHkgLjVzO3otaW5kZXg6MX0uaW5zdHJ1Y3Rpb24tY29udGVudFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC42KTtib3JkZXItcmFkaXVzOjVweDtjb2xvcjojZmZmO3BhZGRpbmc6NXB4IDEwcHg7dXNlci1zZWxlY3Q6bm9uZX0uc2hvdy16b29tLWluc3RydWN0aW9uW19uZ2hvc3QtJUNPTVAlXSAgIC56b29tLWluc3RydWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKTtmdW5jdGlvbiB6TmUobix0KXtpZigxJm4mJihxbigpLGsoMCwibGluZSIsMikpLDImbil7bGV0IGU9dC4kaW1wbGljaXQsaT13KCk7bnQoInplcm8iLDA9PT1lKSxCZSgieDEiLGkuZ2V0RG9tWChlKSkoIngyIixpLmdldERvbVgoZSkpKCJ5MiIsaS5kb21EaW0uaGVpZ2h0KX19ZnVuY3Rpb24gVU5lKG4sdCl7aWYoMSZuJiYocW4oKSxrKDAsImxpbmUiLDMpKSwyJm4pe2xldCBlPXQuJGltcGxpY2l0LGk9dygpO250KCJ6ZXJvIiwwPT09ZSksQmUoInkxIixpLmdldERvbVkoZSkpKCJ4MiIsaS5kb21EaW0ud2lkdGgpKCJ5MiIsaS5nZXREb21ZKGUpKX19dmFyIGp0ZT0oKCk9PntjbGFzcyBue2dldERvbVgoZSl7cmV0dXJuIHRoaXMueFNjYWxlLmZvcndhcmQodGhpcy52aWV3RXh0ZW50LngsWGModGhpcy5kb21EaW0sIngiKSxlKX1nZXREb21ZKGUpe3JldHVybiB0aGlzLnlTY2FsZS5mb3J3YXJkKHRoaXMudmlld0V4dGVudC55LFhjKHRoaXMuZG9tRGltLCJ5IiksZSl9Z2V0WFRpY2tzKCl7cmV0dXJuIHRoaXMueFNjYWxlLnRpY2tzKHRoaXMudmlld0V4dGVudC54LFl4KHRoaXMuZG9tRGltLndpZHRoLHRoaXMueEdyaWRDb3VudCkpfWdldFlUaWNrcygpe3JldHVybiB0aGlzLnlTY2FsZS50aWNrcyh0aGlzLnZpZXdFeHRlbnQueSxZeCh0aGlzLmRvbURpbS5oZWlnaHQsdGhpcy55R3JpZENvdW50KSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImxpbmUtY2hhcnQtZ3JpZC12aWV3Il1dLGlucHV0czp7dmlld0V4dGVudDoidmlld0V4dGVudCIseFNjYWxlOiJ4U2NhbGUiLHhHcmlkQ291bnQ6InhHcmlkQ291bnQiLHlTY2FsZToieVNjYWxlIix5R3JpZENvdW50OiJ5R3JpZENvdW50Iixkb21EaW06ImRvbURpbSJ9LGRlY2xzOjMsdmFyczoyLGNvbnN0czpbWyJ5MSIsIjAiLDMsInplcm8iLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsieDEiLCIwIiwzLCJ6ZXJvIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbInkxIiwiMCJdLFsieDEiLCIwIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYocW4oKSxmKDAsInN2ZyIpLFMoMSx6TmUsMSw1LCJsaW5lIiwwKSxTKDIsVU5lLDEsNSwibGluZSIsMSksZygpKSwyJmUmJih2KDEpLGIoIm5nRm9yT2YiLGkuZ2V0WFRpY2tzKCkpLHYoMSksYigibmdGb3JPZiIsaS5nZXRZVGlja3MoKSkpfSxkZXBlbmRlbmNpZXM6W25uXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgc3ZnW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIGxpbmVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgc3Ryb2tlOiAjY2NjO1xuICAgICAgICBzdHJva2Utd2lkdGg6IDFweDtcbiAgICAgIH1cblxuICAgICAgLnplcm9bX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgc3Ryb2tlOiAjYWFhO1xuICAgICAgICBzdHJva2Utd2lkdGg6IDEuNXB4O1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksR05lPVsic2VyaWVzVmlldyJdLFdOZT1bInhBeGlzIl0scU5lPVsieUF4aXMiXSxYTmU9WyJjaGFydEVsIl07ZnVuY3Rpb24gWU5lKG4sdCl7aWYoMSZuJiZrKDAsImxpbmUtY2hhcnQtZ3JpZC12aWV3IiwxNiksMiZuKXtsZXQgZT13KCk7Yigidmlld0V4dGVudCIsZS52aWV3Qm94KSgieFNjYWxlIixlLnhTY2FsZSkoInlTY2FsZSIsZS55U2NhbGUpKCJ4R3JpZENvdW50IixlLlhfR1JJRF9DT1VOVCkoInlHcmlkQ291bnQiLGUuWV9HUklEX0NPVU5UKSgiZG9tRGltIixlLmRvbURpbWVuc2lvbnMubWFpbil9fWZ1bmN0aW9uIFFOZShuLHQpezEmbiYmKHFuKCksaygwLCJzdmciLG51bGwsMTcpKX1mdW5jdGlvbiBaTmUobix0KXsxJm4mJmsoMCwiY2FudmFzIixudWxsLDE3KX1mdW5jdGlvbiBLTmUobix0KXtpZigxJm4mJihHdCgwKSxTKDEsUU5lLDIsMCwic3ZnIiw1KSxTKDIsWk5lLDIsMCwiY2FudmFzIiw1KSxXdCgpKSwyJm4pe2xldCBlPXcoKTt2KDEpLGIoIm5nSWYiLGUuZ2V0UmVuZGVyZXJUeXBlKCk9PT1lLlJlbmRlcmVyVHlwZS5TVkcpLHYoMSksYigibmdJZiIsZS5nZXRSZW5kZXJlclR5cGUoKT09PWUuUmVuZGVyZXJUeXBlLldFQkdMKX19ZnVuY3Rpb24gSk5lKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwibGluZS1jaGFydC1pbnRlcmFjdGl2ZS12aWV3IiwxOCksQSgib25WaWV3RXh0ZW50Q2hhbmdlIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9uVmlld0JveENoYW5nZWQocikpfSkoIm9uVmlld0V4dGVudFJlc2V0IixmdW5jdGlvbigpe3JldHVybiBuZShlKSxpZSh3KCkudmlld0JveFJlc2V0KCkpfSkoIm9uSW50ZXJhY3Rpb25TdGF0ZUNoYW5nZSIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoKS5vbkludGVyYWN0aW9uU3RhdGVDaGFuZ2UocikpfSksZygpfWlmKDImbil7bGV0IGU9dygpLGk9c3QoMSk7Yigic2VyaWVzRGF0YSIsZS5zZXJpZXNEYXRhKSgic2VyaWVzTWV0YWRhdGFNYXAiLGUuc2VyaWVzTWV0YWRhdGFNYXApKCJ2aWV3RXh0ZW50IixlLnZpZXdCb3gpKCJ4U2NhbGUiLGUueFNjYWxlKSgieVNjYWxlIixlLnlTY2FsZSkoInRvb2x0aXBPcmlnaW5FbCIsaSkoImRvbURpbSIsZS5kb21EaW1lbnNpb25zLm1haW4pKCJ0b29sdGlwVGVtcGxhdGUiLGUudG9vbHRpcFRlbXBsYXRlKSgiZGlzYWJsZVRvb2x0aXAiLGUuZGlzYWJsZVRvb2x0aXApfX12YXIgJE5lPWZ1bmN0aW9uKG4sdCxlLGkpe3JldHVybnt4U2NhbGU6bix5U2NhbGU6dCxkb21EaW1lbnNpb246ZSx2aWV3RXh0ZW50Oml9fTtmdW5jdGlvbiBlTGUobix0KXtpZigxJm4mJihmKDAsImRpdiIsMTkpLGhpKDEsMjApLGcoKSksMiZuKXtsZXQgZT13KCk7digxKSxiKCJuZ1RlbXBsYXRlT3V0bGV0IixlLmN1c3RvbVZpc1RlbXBsYXRlKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLFJrKDIsJE5lLGUueFNjYWxlLGUueVNjYWxlLGUuZG9tRGltZW5zaW9ucy5tYWluLGUudmlld0JveCkpfX1mdW5jdGlvbiB0TGUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJsaW5lLWNoYXJ0LWF4aXMiLDIxKSxBKCJvblZpZXdFeHRlbnRDaGFuZ2UiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkub25WaWV3Qm94Q2hhbmdlZEZyb21BeGlzKHIsInkiKSl9KSxnKCl9aWYoMiZuKXtsZXQgZT13KCk7YigiYXhpc0V4dGVudCIsZS52aWV3Qm94LnkpKCJjdXN0b21Gb3JtYXR0ZXIiLGUuY3VzdG9tWUZvcm1hdHRlcikoImRvbURpbSIsZS5kb21EaW1lbnNpb25zLnlBeGlzKSgiZ3JpZENvdW50IixlLllfR1JJRF9DT1VOVCkoInNjYWxlIixlLnlTY2FsZSl9fWZ1bmN0aW9uIG5MZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImxpbmUtY2hhcnQtYXhpcyIsMjIpLEEoIm9uVmlld0V4dGVudENoYW5nZSIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoKS5vblZpZXdCb3hDaGFuZ2VkRnJvbUF4aXMociwieCIpKX0pLGcoKX1pZigyJm4pe2xldCBlPXcoKTtiKCJheGlzRXh0ZW50IixlLnZpZXdCb3gueCkoImN1c3RvbUZvcm1hdHRlciIsZS5jdXN0b21YRm9ybWF0dGVyKSgiZG9tRGltIixlLmRvbURpbWVuc2lvbnMueEF4aXMpKCJncmlkQ291bnQiLGUuWF9HUklEX0NPVU5UKSgic2NhbGUiLGUueFNjYWxlKX19ZnVuY3Rpb24gaUxlKG4sdCl7MSZuJiYoZigwLCJkaXYiLDIzKSxrKDEsInNwYW4iLDI0KSxnKCkpfXZhciByTGU9ZnVuY3Rpb24obix0LGUsaSxyKXtyZXR1cm57eFNjYWxlOm4seVNjYWxlOnQsZG9tRGltZW5zaW9uOmUsdmlld0V4dGVudDppLGludGVyYWN0aW9uU3RhdGU6cn19O2Z1bmN0aW9uIG9MZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2IiwyNSwyNiksaGkoMiwyMCksZygpKSwyJm4pe2xldCBlPXcoKTt2KDIpLGIoIm5nVGVtcGxhdGVPdXRsZXQiLGUuY3VzdG9tQ2hhcnRPdmVybGF5VGVtcGxhdGUpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsUGsoMixyTGUsZS54U2NhbGUsZS55U2NhbGUsZS5kb21EaW1lbnNpb25zLm1haW4sZS52aWV3Qm94LGUuaW50ZXJhY3Rpb25TdGF0ZSkpfX12YXIgYUxlPWZ1bmN0aW9uKG4sdCl7cmV0dXJue2NvbnRhaW5lcjohMCwiZGFyay1tb2RlIjpuLCJsaW5lLW9ubHktbW9kZSI6dCwibGluZS1jaGFydCI6ITB9fSxfVj17eDpbMCwxXSx5OlswLDFdfSxoXz0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuY2hhbmdlRGV0ZWN0b3I9ZSx0aGlzLlJlbmRlcmVyVHlwZT1ZaSx0aGlzLnVzZURhcmtNb2RlPSExLHRoaXMucHJlZmVycmVkUmVuZGVyZXJUeXBlPVlpLldFQkdMLHRoaXMueFNjYWxlVHlwZT10ci5MSU5FQVIsdGhpcy55U2NhbGVUeXBlPXRyLkxJTkVBUix0aGlzLnVzZXJWaWV3Qm94PW51bGwsdGhpcy5saW5lT25seT0hMSx0aGlzLmRpc2FibGVUb29sdGlwPSExLHRoaXMudmlld0JveENoYW5nZWQ9bmV3IEYsdGhpcy5vblZpZXdCb3hPdmVycmlkZGVuPW5ldyBMcCgxKSx0aGlzLmlnbm9yZVlPdXRsaWVycz0hMSx0aGlzLllfR1JJRF9DT1VOVD02LHRoaXMuWF9HUklEX0NPVU5UPTEwLHRoaXMueFNjYWxlPVVsKHRoaXMueFNjYWxlVHlwZSksdGhpcy55U2NhbGU9VWwodGhpcy54U2NhbGVUeXBlKSx0aGlzLnZpZXdCb3g9X1YsdGhpcy5kb21EaW1lbnNpb25zPXttYWluOnt3aWR0aDowLGhlaWdodDowfSx4QXhpczp7d2lkdGg6MCxoZWlnaHQ6MH0seUF4aXM6e3dpZHRoOjAsaGVpZ2h0OjB9fSx0aGlzLnNob3dDaGFydFJlbmRlcmVyRWxlbWVudD0hMCx0aGlzLmludGVyYWN0aW9uU3RhdGU9VHIuTk9ORSx0aGlzLmxpbmVDaGFydD1udWxsLHRoaXMuaXNEYXRhVXBkYXRlZD0hMSx0aGlzLmlzTWV0YWRhdGFVcGRhdGVkPSExLHRoaXMuaXNGaXhlZFZpZXdCb3hVcGRhdGVkPSExLHRoaXMuaXNWaWV3Qm94T3ZlcnJpZGRlbj0hMSx0aGlzLnVzZURhcmtNb2RlVXBkYXRlZD0hMSx0aGlzLnVzZXJWaWV3Qm94VXBkYXRlZD0hMSx0aGlzLmlzVmlld0JveENoYW5nZWQ9ITAsdGhpcy5zY2FsZVVwZGF0ZWQ9ITAsdGhpcy5pc1JlbmRlcmluZ0NvbnRleHRMb3N0PSExfW5nT25Jbml0KCl7dGhpcy5vblZpZXdCb3hPdmVycmlkZGVuLm5leHQodGhpcy5pc1ZpZXdCb3hPdmVycmlkZGVuKX1uZ09uQ2hhbmdlcyhlKXtlLnhTY2FsZVR5cGUmJih0aGlzLnhTY2FsZT1VbCh0aGlzLnhTY2FsZVR5cGUpLHRoaXMuc2NhbGVVcGRhdGVkPSEwKSxlLnlTY2FsZVR5cGUmJih0aGlzLnlTY2FsZT1VbCh0aGlzLnlTY2FsZVR5cGUpLHRoaXMuc2NhbGVVcGRhdGVkPSEwKSxlLnNlcmllc0RhdGEmJih0aGlzLmlzRGF0YVVwZGF0ZWQ9ITApLGUuZml4ZWRWaWV3Qm94JiYodGhpcy5pc0ZpeGVkVmlld0JveFVwZGF0ZWQ9ITApLGUuc2VyaWVzTWV0YWRhdGFNYXAmJih0aGlzLmlzTWV0YWRhdGFVcGRhdGVkPSEwKSxlLnVzZURhcmtNb2RlJiYodGhpcy51c2VEYXJrTW9kZVVwZGF0ZWQ9ITApLGUudXNlclZpZXdCb3gmJih0aGlzLnVzZXJWaWV3Qm94VXBkYXRlZD0hMCksdGhpcy51c2VyVmlld0JveFVwZGF0ZWQ/dGhpcy5zZXRJc1ZpZXdCb3hPdmVycmlkZGVuKCEhdGhpcy51c2VyVmlld0JveCk6dGhpcy5zY2FsZVVwZGF0ZWQmJnRoaXMuc2V0SXNWaWV3Qm94T3ZlcnJpZGRlbighMSksdGhpcy5pc1ZpZXdCb3hDaGFuZ2VkPXRoaXMuaXNWaWV3Qm94Q2hhbmdlZHx8dGhpcy51c2VyVmlld0JveFVwZGF0ZWR8fHRoaXMuc2NhbGVVcGRhdGVkfHwhdGhpcy5pc1ZpZXdCb3hPdmVycmlkZGVuJiZ0aGlzLnNob3VsZFVwZGF0ZURlZmF1bHRWaWV3Qm94KGUpLHRoaXMudXBkYXRlTGluZUNoYXJ0KCl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5pbml0aWFsaXplQ2hhcnQoKSx0aGlzLnVwZGF0ZUxpbmVDaGFydCgpLHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpfXJlY292ZXJSZW5kZXJlcklmTmVlZGVkKCl7IXRoaXMuaXNSZW5kZXJpbmdDb250ZXh0TG9zdHx8dGhpcy5kaXNhYmxlVXBkYXRlfHwodGhpcy5zaG93Q2hhcnRSZW5kZXJlckVsZW1lbnQ9ITEsdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCksdGhpcy5zaG93Q2hhcnRSZW5kZXJlckVsZW1lbnQ9ITAsdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCksdGhpcy5pbml0aWFsaXplQ2hhcnQoKSx0aGlzLnNjYWxlVXBkYXRlZD0hMCx0aGlzLmlzTWV0YWRhdGFVcGRhdGVkPSEwLHRoaXMuaXNEYXRhVXBkYXRlZD0hMCx0aGlzLnVzZURhcmtNb2RlVXBkYXRlZD0hMCx0aGlzLmlzRml4ZWRWaWV3Qm94VXBkYXRlZD0hMCx0aGlzLmlzVmlld0JveENoYW5nZWQ9ITAsdGhpcy5pc1JlbmRlcmluZ0NvbnRleHRMb3N0PSExKX1vblZpZXdSZXNpemUoKXshdGhpcy5saW5lQ2hhcnR8fCh0aGlzLnJlYWRBbmRVcGRhdGVEb21EaW1lbnNpb25zKCksdGhpcy5saW5lQ2hhcnQucmVzaXplKHRoaXMuZG9tRGltZW5zaW9ucy5tYWluKSx0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKSl9c2hvdWxkVXBkYXRlRGVmYXVsdFZpZXdCb3goZSl7aWYoZS54U2NhbGVUeXBlfHxlLnlTY2FsZVR5cGV8fGUuaWdub3JlWU91dGxpZXJzfHxlLnNlcmllc0RhdGEpcmV0dXJuITA7bGV0IHI9ZS5zZXJpZXNNZXRhZGF0YU1hcDtpZihyKXtsZXQgbz1yLnByZXZpb3VzVmFsdWU7aWYoT2JqZWN0LmtleXModGhpcy5zZXJpZXNNZXRhZGF0YU1hcCkubGVuZ3RoIT09T2JqZWN0LmtleXMobz8/e30pLmxlbmd0aClyZXR1cm4hMDtmb3IobGV0W2Esc11vZiBPYmplY3QuZW50cmllcyh0aGlzLnNlcmllc01ldGFkYXRhTWFwKSl7bGV0IGw9byYmb1thXTtpZighbHx8cy52aXNpYmxlIT09bC52aXNpYmxlKXJldHVybiEwfX1yZXR1cm4hMX1vbkNvbnRleHRMb3N0KCl7dGhpcy5pc1JlbmRlcmluZ0NvbnRleHRMb3N0PSEwLHRoaXMubGluZUNoYXJ0JiYodGhpcy5saW5lQ2hhcnQuZGlzcG9zZSgpLHRoaXMubGluZUNoYXJ0PW51bGwpfXRyaWdnZXJDb250ZXh0TG9zdEZvclRlc3QoKXt0aGlzLm9uQ29udGV4dExvc3QoKX1nZXRMaW5lQ2hhcnRGb3JUZXN0KCl7cmV0dXJuIHRoaXMubGluZUNoYXJ0fWluaXRpYWxpemVDaGFydCgpe3RoaXMubGluZUNoYXJ0JiZ0aGlzLmxpbmVDaGFydC5kaXNwb3NlKCk7bGV0IGU9dGhpcy5nZXRSZW5kZXJlclR5cGUoKSxpPXtvbkRyYXdFbmQ6KCk9Pnt9LG9uQ29udGV4dExvc3Q6dGhpcy5vbkNvbnRleHRMb3N0LmJpbmQodGhpcyl9LHI9bnVsbDtzd2l0Y2godGhpcy5yZWFkQW5kVXBkYXRlRG9tRGltZW5zaW9ucygpLGUpe2Nhc2UgWWkuU1ZHOnI9e3R5cGU6WWkuU1ZHLGNvbnRhaW5lcjp0aGlzLmNoYXJ0RWwubmF0aXZlRWxlbWVudCxjYWxsYmFja3M6aSxkb21EaW1lbnNpb246dGhpcy5kb21EaW1lbnNpb25zLm1haW4sdXNlRGFya01vZGU6dGhpcy51c2VEYXJrTW9kZX07YnJlYWs7Y2FzZSBZaS5XRUJHTDpyPXt0eXBlOllpLldFQkdMLGNvbnRhaW5lcjp0aGlzLmNoYXJ0RWwubmF0aXZlRWxlbWVudCxkZXZpY2VQaXhlbFJhdGlvOndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLGNhbGxiYWNrczppLGRvbURpbWVuc2lvbjp0aGlzLmRvbURpbWVuc2lvbnMubWFpbix1c2VEYXJrTW9kZTp0aGlzLnVzZURhcmtNb2RlfTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgPGxpbmUtY2hhcnQ+IGRvZXMgbm90IHlldCBzdXBwb3J0IHJlbmRlcmVyVHlwZTogJHtlfWApfWxldCBhPWUhPT1ZaS5TVkcmJmpsX2lzV2ViR2wyT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKCk/VG06c0E7dGhpcy5saW5lQ2hhcnQ9bmV3IGEocil9bmdPbkRlc3Ryb3koKXt0aGlzLmxpbmVDaGFydCYmdGhpcy5saW5lQ2hhcnQuZGlzcG9zZSgpfWdldFJlbmRlcmVyVHlwZSgpe3JldHVybiBmdW5jdGlvbihuKXtzd2l0Y2gobil7Y2FzZSBZaS5TVkc6cmV0dXJuIFlpLlNWRztjYXNlIFlpLldFQkdMOnJldHVybiBqbF9pc1dlYkdsMlN1cHBvcnRlZCgpP1lpLldFQkdMOllpLlNWRztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5rbm93biByZW5kZXJlclR5cGU6ICR7bn1gKX19KHRoaXMucHJlZmVycmVkUmVuZGVyZXJUeXBlKX1yZWFkQW5kVXBkYXRlRG9tRGltZW5zaW9ucygpe3RoaXMuZG9tRGltZW5zaW9ucz17bWFpbjp7d2lkdGg6dGhpcy5zZXJpZXNWaWV3Lm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgsaGVpZ2h0OnRoaXMuc2VyaWVzVmlldy5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodH0seEF4aXM6e3dpZHRoOnRoaXMueEF4aXMubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCxoZWlnaHQ6dGhpcy54QXhpcy5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodH0seUF4aXM6e3dpZHRoOnRoaXMueUF4aXMubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCxoZWlnaHQ6dGhpcy55QXhpcy5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodH19fXVwZGF0ZUxpbmVDaGFydCgpe2lmKHRoaXMucmVjb3ZlclJlbmRlcmVySWZOZWVkZWQoKSx0aGlzLmxpbmVDaGFydCYmIXRoaXMuZGlzYWJsZVVwZGF0ZSl7aWYodGhpcy5zY2FsZVVwZGF0ZWQmJih0aGlzLnNjYWxlVXBkYXRlZD0hMSx0aGlzLmxpbmVDaGFydC5zZXRYU2NhbGVUeXBlKHRoaXMueFNjYWxlVHlwZSksdGhpcy5saW5lQ2hhcnQuc2V0WVNjYWxlVHlwZSh0aGlzLnlTY2FsZVR5cGUpKSx0aGlzLmlzTWV0YWRhdGFVcGRhdGVkJiYodGhpcy5pc01ldGFkYXRhVXBkYXRlZD0hMSx0aGlzLmxpbmVDaGFydC5zZXRNZXRhZGF0YSh0aGlzLnNlcmllc01ldGFkYXRhTWFwKSksdGhpcy5pc0RhdGFVcGRhdGVkJiYodGhpcy5pc0RhdGFVcGRhdGVkPSExLHRoaXMubGluZUNoYXJ0LnNldERhdGEodGhpcy5zZXJpZXNEYXRhKSksdGhpcy51c2VEYXJrTW9kZVVwZGF0ZWQmJih0aGlzLnVzZURhcmtNb2RlVXBkYXRlZD0hMSx0aGlzLmxpbmVDaGFydC5zZXRVc2VEYXJrTW9kZSh0aGlzLnVzZURhcmtNb2RlKSksdGhpcy51c2VyVmlld0JveFVwZGF0ZWQmJih0aGlzLnVzZXJWaWV3Qm94VXBkYXRlZD0hMSksdGhpcy5pc1ZpZXdCb3hPdmVycmlkZGVuJiZ0aGlzLnVzZXJWaWV3Qm94KXRoaXMudmlld0JveD10aGlzLnVzZXJWaWV3Qm94O2Vsc2UgaWYoIXRoaXMuaXNWaWV3Qm94T3ZlcnJpZGRlbiYmdGhpcy5maXhlZFZpZXdCb3gpdGhpcy52aWV3Qm94PXRoaXMuZml4ZWRWaWV3Qm94O2Vsc2UgaWYoIXRoaXMuaXNWaWV3Qm94T3ZlcnJpZGRlbiYmdGhpcy5pc1ZpZXdCb3hDaGFuZ2VkKXtsZXQgaT1mdW5jdGlvbihuLHQsZSxpLHIpe2xldCBvPW51bGwsYT1udWxsLHM9W107Zm9yKGxldHtpZDp1LHBvaW50czpwfW9mIG4pe2xldCBoPXRbdV07aWYoaCYmIWguYXV4JiZoLnZpc2libGUpZm9yKGxldCBtPTA7bTxwLmxlbmd0aDttKyspe2xldHt4Ol8seTpNfT1wW21dO2koXykmJihvPW51bGw9PT1vfHxfPG8/XzpvLGE9bnVsbD09PWF8fF8+YT9fOmEpLHIoTSkmJnMucHVzaChNKX19cy5zb3J0KGFsKTtsZXQgYz1zWzBdLGQ9c1tzLmxlbmd0aC0xXTtyZXR1cm4gZSYmcy5sZW5ndGg+MiYmKGM9c1tNYXRoLmNlaWwoLjA1KihzLmxlbmd0aC0xKSldLGQ9c1tNYXRoLmZsb29yKC45NSoocy5sZW5ndGgtMSkpXSkse3g6bnVsbCE9PW8mJm51bGwhPT1hP1tvLGFdOnZvaWQgMCx5OnZvaWQgMCE9PWMmJnZvaWQgMCE9PWQ/W2MsZF06dm9pZCAwfX0odGhpcy5zZXJpZXNEYXRhLHRoaXMuc2VyaWVzTWV0YWRhdGFNYXAsdGhpcy5pZ25vcmVZT3V0bGllcnMsdGhpcy54U2NhbGUuaXNTYWZlTnVtYmVyLHRoaXMueVNjYWxlLmlzU2FmZU51bWJlcik7dGhpcy52aWV3Qm94PXt4OnRoaXMueFNjYWxlLm5pY2VEb21haW4oaS54Pz9fVi54KSx5OnRoaXMueVNjYWxlLm5pY2VEb21haW4oaS55Pz9fVi55KX19KHRoaXMuaXNGaXhlZFZpZXdCb3hVcGRhdGVkfHx0aGlzLmlzVmlld0JveENoYW5nZWQpJiYodGhpcy5pc0ZpeGVkVmlld0JveFVwZGF0ZWQ9ITEsdGhpcy5pc1ZpZXdCb3hDaGFuZ2VkPSExLHRoaXMubGluZUNoYXJ0LnNldFZpZXdCb3godGhpcy52aWV3Qm94KSx0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKSl9fW9uVmlld0JveENoYW5nZWQoe2RhdGFFeHRlbnQ6ZX0pe3RoaXMudmlld0JveENoYW5nZWQuZW1pdChlKX12aWV3Qm94UmVzZXQoKXt0aGlzLnZpZXdCb3hDaGFuZ2VkLmVtaXQobnVsbCl9c2V0SXNWaWV3Qm94T3ZlcnJpZGRlbihlKXtsZXQgaT10aGlzLmlzVmlld0JveE92ZXJyaWRkZW47dGhpcy5pc1ZpZXdCb3hPdmVycmlkZGVuPWUsaSE9PWUmJnRoaXMub25WaWV3Qm94T3ZlcnJpZGRlbi5uZXh0KGUpfW9uSW50ZXJhY3Rpb25TdGF0ZUNoYW5nZShlKXt0aGlzLmludGVyYWN0aW9uU3RhdGU9ZX1nZXRJc1ZpZXdCb3hPdmVycmlkZGVuKCl7cmV0dXJuIHRoaXMub25WaWV3Qm94T3ZlcnJpZGRlbn1vblZpZXdCb3hDaGFuZ2VkRnJvbUF4aXMoZSxpKXtsZXQgcj17Li4udGhpcy52aWV3Qm94LFtpXTplfTt0aGlzLm9uVmlld0JveENoYW5nZWQoe2RhdGFFeHRlbnQ6cn0pfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKFF0KSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sibGluZS1jaGFydCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJihVZShHTmUsNyx4ZSksVWUoV05lLDcseGUpLFVlKHFOZSw3LHhlKSxVZShYTmUsNSx4ZSkpLDImZSl7bGV0IHI7YmUocj12ZSgpKSYmKGkuc2VyaWVzVmlldz1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS54QXhpcz1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS55QXhpcz1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS5jaGFydEVsPXIuZmlyc3QpfX0saW5wdXRzOntjdXN0b21WaXNUZW1wbGF0ZToiY3VzdG9tVmlzVGVtcGxhdGUiLGN1c3RvbUNoYXJ0T3ZlcmxheVRlbXBsYXRlOiJjdXN0b21DaGFydE92ZXJsYXlUZW1wbGF0ZSIsdXNlRGFya01vZGU6InVzZURhcmtNb2RlIixwcmVmZXJyZWRSZW5kZXJlclR5cGU6InByZWZlcnJlZFJlbmRlcmVyVHlwZSIsc2VyaWVzRGF0YToic2VyaWVzRGF0YSIsZml4ZWRWaWV3Qm94OiJmaXhlZFZpZXdCb3giLHNlcmllc01ldGFkYXRhTWFwOiJzZXJpZXNNZXRhZGF0YU1hcCIseFNjYWxlVHlwZToieFNjYWxlVHlwZSIseVNjYWxlVHlwZToieVNjYWxlVHlwZSIsY3VzdG9tWEZvcm1hdHRlcjoiY3VzdG9tWEZvcm1hdHRlciIsY3VzdG9tWUZvcm1hdHRlcjoiY3VzdG9tWUZvcm1hdHRlciIsdG9vbHRpcFRlbXBsYXRlOiJ0b29sdGlwVGVtcGxhdGUiLHVzZXJWaWV3Qm94OiJ1c2VyVmlld0JveCIsbGluZU9ubHk6ImxpbmVPbmx5IixkaXNhYmxlVG9vbHRpcDoiZGlzYWJsZVRvb2x0aXAiLGRpc2FibGVVcGRhdGU6ImRpc2FibGVVcGRhdGUiLGlnbm9yZVlPdXRsaWVyczoiaWdub3JlWU91dGxpZXJzIn0sb3V0cHV0czp7dmlld0JveENoYW5nZWQ6InZpZXdCb3hDaGFuZ2VkIn0sZmVhdHVyZXM6W3F0XSxkZWNsczoxNix2YXJzOjEzLGNvbnN0czpbWyJkZXRlY3RSZXNpemUiLCIiLCJjZGtPdmVybGF5T3JpZ2luIiwiIiwzLCJuZ0NsYXNzIiwicmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXMiLCJvblJlc2l6ZSJdLFsib3ZlcmxheVRhcmdldCIsImNka092ZXJsYXlPcmlnaW4iXSxbMSwic2VyaWVzLXZpZXciXSxbInNlcmllc1ZpZXciLCIiXSxbMywidmlld0V4dGVudCIsInhTY2FsZSIsInlTY2FsZSIsInhHcmlkQ291bnQiLCJ5R3JpZENvdW50IiwiZG9tRGltIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMywic2VyaWVzRGF0YSIsInNlcmllc01ldGFkYXRhTWFwIiwidmlld0V4dGVudCIsInhTY2FsZSIsInlTY2FsZSIsInRvb2x0aXBPcmlnaW5FbCIsImRvbURpbSIsInRvb2x0aXBUZW1wbGF0ZSIsImRpc2FibGVUb29sdGlwIiwib25WaWV3RXh0ZW50Q2hhbmdlIiwib25WaWV3RXh0ZW50UmVzZXQiLCJvbkludGVyYWN0aW9uU3RhdGVDaGFuZ2UiLDQsIm5nSWYiXSxbImNsYXNzIiwiY3VzdG9tLXZpcyIsNCwibmdJZiJdLFsxLCJ5LWF4aXMiXSxbInlBeGlzIiwiIl0sWyJheGlzIiwieSIsMywiYXhpc0V4dGVudCIsImN1c3RvbUZvcm1hdHRlciIsImRvbURpbSIsImdyaWRDb3VudCIsInNjYWxlIiwib25WaWV3RXh0ZW50Q2hhbmdlIiw0LCJuZ0lmIl0sWzEsIngtYXhpcyJdLFsieEF4aXMiLCIiXSxbImF4aXMiLCJ4IiwzLCJheGlzRXh0ZW50IiwiY3VzdG9tRm9ybWF0dGVyIiwiZG9tRGltIiwiZ3JpZENvdW50Iiwic2NhbGUiLCJvblZpZXdFeHRlbnRDaGFuZ2UiLDQsIm5nSWYiXSxbImNsYXNzIiwiZG90Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsImN1c3RvbS12aXMgY3VzdG9tLWNoYXJ0LW92ZXJsYXktdmlzIiw0LCJuZ0lmIl0sWzMsInZpZXdFeHRlbnQiLCJ4U2NhbGUiLCJ5U2NhbGUiLCJ4R3JpZENvdW50IiwieUdyaWRDb3VudCIsImRvbURpbSJdLFsiY2hhcnRFbCIsIiJdLFszLCJzZXJpZXNEYXRhIiwic2VyaWVzTWV0YWRhdGFNYXAiLCJ2aWV3RXh0ZW50IiwieFNjYWxlIiwieVNjYWxlIiwidG9vbHRpcE9yaWdpbkVsIiwiZG9tRGltIiwidG9vbHRpcFRlbXBsYXRlIiwiZGlzYWJsZVRvb2x0aXAiLCJvblZpZXdFeHRlbnRDaGFuZ2UiLCJvblZpZXdFeHRlbnRSZXNldCIsIm9uSW50ZXJhY3Rpb25TdGF0ZUNoYW5nZSJdLFsxLCJjdXN0b20tdmlzIl0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiLCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCJdLFsiYXhpcyIsInkiLDMsImF4aXNFeHRlbnQiLCJjdXN0b21Gb3JtYXR0ZXIiLCJkb21EaW0iLCJncmlkQ291bnQiLCJzY2FsZSIsIm9uVmlld0V4dGVudENoYW5nZSJdLFsiYXhpcyIsIngiLDMsImF4aXNFeHRlbnQiLCJjdXN0b21Gb3JtYXR0ZXIiLCJkb21EaW0iLCJncmlkQ291bnQiLCJzY2FsZSIsIm9uVmlld0V4dGVudENoYW5nZSJdLFsxLCJkb3QiXSxbMSwicmVjdCJdLFsxLCJjdXN0b20tdmlzIiwiY3VzdG9tLWNoYXJ0LW92ZXJsYXktdmlzIl0sWyJjdXN0b21DaGFydE92ZXJsYXkiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImRpdiIsMCwxKSxBKCJvblJlc2l6ZSIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vblZpZXdSZXNpemUoKX0pLGYoMiwiZGl2IiwyLDMpLFMoNCxZTmUsMSw2LCJsaW5lLWNoYXJ0LWdyaWQtdmlldyIsNCksUyg1LEtOZSwzLDIsIm5nLWNvbnRhaW5lciIsNSksUyg2LEpOZSwxLDksImxpbmUtY2hhcnQtaW50ZXJhY3RpdmUtdmlldyIsNiksUyg3LGVMZSwyLDcsImRpdiIsNyksZygpLGYoOCwiZGl2Iiw4LDkpLFMoMTAsdExlLDEsNSwibGluZS1jaGFydC1heGlzIiwxMCksZygpLGYoMTEsImRpdiIsMTEsMTIpLFMoMTMsbkxlLDEsNSwibGluZS1jaGFydC1heGlzIiwxMyksZygpLFMoMTQsaUxlLDIsMCwiZGl2IiwxNCksUygxNSxvTGUsMyw4LCJkaXYiLDE1KSxnKCkpLDImZSYmKGIoIm5nQ2xhc3MiLFNvKDEwLGFMZSxpLnVzZURhcmtNb2RlLGkubGluZU9ubHkpKSgicmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXMiLDApLHYoNCksYigibmdJZiIsIWkubGluZU9ubHkpLHYoMSksYigibmdJZiIsaS5zaG93Q2hhcnRSZW5kZXJlckVsZW1lbnQpLHYoMSksYigibmdJZiIsIWkubGluZU9ubHkpLHYoMSksYigibmdJZiIsaS5jdXN0b21WaXNUZW1wbGF0ZSksdigzKSxiKCJuZ0lmIiwhaS5saW5lT25seSksdigzKSxiKCJuZ0lmIiwhaS5saW5lT25seSksdigxKSxiKCJuZ0lmIiwhaS5saW5lT25seSksdigxKSxiKCJuZ0lmIixpLmN1c3RvbUNoYXJ0T3ZlcmxheVRlbXBsYXRlKSl9LGRlcGVuZGVuY2llczpbd24sTmUsZW8sTWQsSHRlLFV0ZSxqdGUsVmhdLHN0eWxlczpbJ1tfbmdob3N0LSVDT01QJV17Y29udGFpbjpzdHJpY3Q7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn1bX25naG9zdC0lQ09NUCVdICAgICAubGluZS1jaGFydDpoYXMoLmhvcml6b250YWwtcHJvc3BlY3RpdmUtYXJlYTpob3ZlcikgLngtYXhpcyAuZXh0ZW50LWVkaXQtYnV0dG9ue3Zpc2liaWxpdHk6dmlzaWJsZX1bX25naG9zdC0lQ09NUCVdICAgLmN1c3RvbS12aXNbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmV9LmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDppbmhlcml0O2Rpc3BsYXk6Z3JpZDtmbGV4LWdyb3c6MTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MTAwJTtncmlkLXRlbXBsYXRlLWFyZWFzOiJ5YXhpcyBzZXJpZXMiICJkb3QgeGF4aXMiICIuIGN1c3RvbUNoYXJ0T3ZlcmxheSI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjUwcHggMWZyO2dyaWQtYXV0by1yb3dzOjFmciAzMHB4IDBweH0uY29udGFpbmVyLmRhcmstbW9kZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2ZmZn0uY29udGFpbmVyLmxpbmUtb25seS1tb2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MCAxZnI7Z3JpZC1hdXRvLXJvd3M6MWZyIDB9LnNlcmllcy12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtncmlkLWFyZWE6c2VyaWVzO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0uc2VyaWVzLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgLmN1c3RvbS12aXNbX25nY29udGVudC0lQ09NUCVdLCAuc2VyaWVzLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgY2FudmFzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnNlcmllcy12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHN2Z1tfbmdjb250ZW50LSVDT01QJV0sIC5zZXJpZXMtdmlld1tfbmdjb250ZW50LSVDT01QJV0gICBsaW5lLWNoYXJ0LWdyaWQtdmlld1tfbmdjb250ZW50LSVDT01QJV0sIC5zZXJpZXMtdmlld1tfbmdjb250ZW50LSVDT01QJV0gICBsaW5lLWNoYXJ0LWludGVyYWN0aXZlLXZpZXdbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS54LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLmN1c3RvbS12aXNbX25nY29udGVudC0lQ09NUCVdLCAueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jdXN0b20tdmlzW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTtsZWZ0OjA7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCU7LXdlYmtpdC1tYXNrLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwKSAwJSwgIzAwMCAxMCUsICMwMDAgOTAlLCByZ2JhKDAsIDAsIDAsIDApIDEwMCUpO21hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDApIDAlLCAjMDAwIDEwJSwgIzAwMCA5MCUsIHJnYmEoMCwgMCwgMCwgMCkgMTAwJSl9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICBsaW5lLWNoYXJ0LWF4aXNbX25nY29udGVudC0lQ09NUCVdLCAueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxpbmUtY2hhcnQtYXhpc1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCV9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOnhheGlzO3Bvc2l0aW9uOnJlbGF0aXZlfS55LWF4aXNbX25nY29udGVudC0lQ09NUCVde2dyaWQtYXJlYTp5YXhpc30uZG90W19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2Rpc3BsYXk6ZmxleDtncmlkLWFyZWE6ZG90O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uZG90W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MXB4O3dpZHRoOjFweDtiYWNrZ3JvdW5kLWNvbG9yOiNhYWF9LmN1c3RvbS1jaGFydC1vdmVybGF5LXZpc1tfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOmN1c3RvbUNoYXJ0T3ZlcmxheTtncmlkLXJvdy1lbmQ6MjtncmlkLXJvdy1zdGFydDoxfSddLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCk7ZnVuY3Rpb24gc0xlKG4sdCl7MSZuJiZoaSgwKX12YXIgV3RlPWZ1bmN0aW9uKG4pe3JldHVybnskaW1wbGljaXQ6bn19O2Z1bmN0aW9uIGxMZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2Iiw0KSxTKDEsc0xlLDEsMCwibmctY29udGFpbmVyIiw1KSxUKDIpLGcoKSksMiZuKXtsZXQgZT13KCksaT1zdCg2KTt2KDEpLGIoIm5nVGVtcGxhdGVPdXRsZXQiLGkpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsVW4oMyxXdGUsZS5kYXR1bSkpLHYoMSksVmUoIiAiLGUuZ2V0Rm9ybWF0dGVkRGF0YUZvckNvbHVtbigpLCIgIil9fWZ1bmN0aW9uIGNMZShuLHQpezEmbiYmaGkoMCl9ZnVuY3Rpb24gZExlKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiLDQpLFMoMSxjTGUsMSwwLCJuZy1jb250YWluZXIiLDUpLFQoMiksZygpKSwyJm4pe2xldCBlPXcoKSxpPXN0KDYpO3YoMSksYigibmdUZW1wbGF0ZU91dGxldCIsaSkoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixVbigzLFd0ZSxlLmRhdHVtKSksdigxKSxWZSgiICIsZS5nZXRGb3JtYXR0ZWREYXRhRm9yQ29sdW1uKCksIiAiKX19ZnVuY3Rpb24gdUxlKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiLDYpLFQoMSksZygpKSwyJm4pe2xldCBlPXcoKTt2KDEpLFZlKCIgIixlLmdldEZvcm1hdHRlZERhdGFGb3JDb2x1bW4oKSwiICIpfX1mdW5jdGlvbiBwTGUobix0KXsxJm4mJmsoMCwibWF0LWljb24iLDkpfWZ1bmN0aW9uIGhMZShuLHQpezEmbiYmaygwLCJtYXQtaWNvbiIsMTApfWZ1bmN0aW9uIG1MZShuLHQpe2lmKDEmbiYmKFMoMCxwTGUsMSwwLCJtYXQtaWNvbiIsNyksUygxLGhMZSwxLDAsIm1hdC1pY29uIiw4KSksMiZuKXtsZXQgZT10LiRpbXBsaWNpdDtiKCJuZ0lmIixlPj0wKSx2KDEpLGIoIm5nSWYiLGU8MCl9fXZhciBmTGU9WyIqIl0sbV89KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMuY29udGV4dE1lbnVPcGVuZWQ9bmV3IEYsdGhpcy5Db2x1bW5IZWFkZXJUeXBlPWd0fWdldEZvcm1hdHRlZERhdGFGb3JDb2x1bW4oKXtpZih2b2lkIDA9PT10aGlzLmRhdHVtKXJldHVybiIiO3N3aXRjaCh0aGlzLmhlYWRlci50eXBlKXtjYXNlIGd0LlJVTjpyZXR1cm4gdGhpcy5kYXR1bTtjYXNlIGd0LlZBTFVFOmNhc2UgZ3QuU1RFUDpjYXNlIGd0LlNNT09USEVEOmNhc2UgZ3QuU1RBUlRfU1RFUDpjYXNlIGd0LkVORF9TVEVQOmNhc2UgZ3QuU1RBUlRfVkFMVUU6Y2FzZSBndC5FTkRfVkFMVUU6Y2FzZSBndC5NSU5fVkFMVUU6Y2FzZSBndC5NQVhfVkFMVUU6Y2FzZSBndC5TVEVQX0FUX01BWDpjYXNlIGd0LlNURVBfQVRfTUlOOmNhc2UgZ3QuTUVBTjpjYXNlIGd0LkhQQVJBTTpyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHRoaXMuZGF0dW0/eTAuZm9ybWF0U2hvcnQodGhpcy5kYXR1bSk6dGhpcy5kYXR1bTtjYXNlIGd0LlRJTUU6cmV0dXJuIG5ldyBEYXRlKHRoaXMuZGF0dW0pLnRvSVNPU3RyaW5nKCk7Y2FzZSBndC5SRUxBVElWRV9USU1FOnJldHVybiB4MC5mb3JtYXRSZWFkYWJsZSh0aGlzLmRhdHVtKTtjYXNlIGd0LlZBTFVFX0NIQU5HRTpyZXR1cm4geTAuZm9ybWF0U2hvcnQoTWF0aC5hYnModGhpcy5kYXR1bSkpO2Nhc2UgZ3QuUEVSQ0VOVEFHRV9DSEFOR0U6cmV0dXJuIE1hdGgucm91bmQoMTAwKnRoaXMuZGF0dW0pLnRvU3RyaW5nKCkrIiUiO2Nhc2UgZ3QuUkFXX0NIQU5HRTpyZXR1cm4gZHAuZm9ybWF0U2hvcnQoTWF0aC5hYnModGhpcy5kYXR1bSkpO2RlZmF1bHQ6cmV0dXJuIiJ9fW9uQ29udGV4dE1lbnVPcGVuZWQoZSl7dGhpcy5jb250ZXh0TWVudU9wZW5lZC5lbWl0KGUpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJ0Yi1kYXRhLXRhYmxlLWNvbnRlbnQtY2VsbCJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsxJmUmJkEoImNvbnRleHRtZW51IixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkNvbnRleHRNZW51T3BlbmVkKG8pfSl9LGlucHV0czp7aGVhZGVyOiJoZWFkZXIiLGRhdHVtOiJkYXR1bSJ9LG91dHB1dHM6e2NvbnRleHRNZW51T3BlbmVkOiJjb250ZXh0TWVudU9wZW5lZCJ9LG5nQ29udGVudFNlbGVjdG9yczpmTGUsZGVjbHM6Nyx2YXJzOjMsY29uc3RzOltbMywibmdTd2l0Y2giXSxbImNsYXNzIiwiY2VsbCIsNCwibmdTd2l0Y2hDYXNlIl0sWyJjbGFzcyIsImNlbGwgZXh0cmEtcmlnaHQtcGFkZGluZyIsNCwibmdTd2l0Y2hEZWZhdWx0Il0sWyJhcnJvdyIsIiJdLFsxLCJjZWxsIl0sWzQsIm5nVGVtcGxhdGVPdXRsZXQiLCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCJdLFsxLCJjZWxsIiwiZXh0cmEtcmlnaHQtcGFkZGluZyJdLFsic3ZnSWNvbiIsImFycm93X3Vwd2FyZF8yNHB4Iiw0LCJuZ0lmIl0sWyJzdmdJY29uIiwiYXJyb3dfZG93bndhcmRfMjRweCIsNCwibmdJZiJdLFsic3ZnSWNvbiIsImFycm93X3Vwd2FyZF8yNHB4Il0sWyJzdmdJY29uIiwiYXJyb3dfZG93bndhcmRfMjRweCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGZuKCksR3QoMCwwKSxTKDEsbExlLDMsNSwiZGl2IiwxKSxTKDIsZExlLDMsNSwiZGl2IiwxKSxTKDMsdUxlLDIsMSwiZGl2IiwyKSxUdCg0KSxXdCgpLFMoNSxtTGUsMiwyLCJuZy10ZW1wbGF0ZSIsbnVsbCwzLGp0KSksMiZlJiYoYigibmdTd2l0Y2giLGkuaGVhZGVyLnR5cGUpLHYoMSksYigibmdTd2l0Y2hDYXNlIixpLkNvbHVtbkhlYWRlclR5cGUuVkFMVUVfQ0hBTkdFKSx2KDEpLGIoIm5nU3dpdGNoQ2FzZSIsaS5Db2x1bW5IZWFkZXJUeXBlLlBFUkNFTlRBR0VfQ0hBTkdFKSl9LGRlcGVuZGVuY2llczpbTmUsZW8sbXIsa3IsZHUsYm5dLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTp0YWJsZS1jZWxsfS5jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS5jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTJweDt3aWR0aDoxMnB4fS5jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgcGF0aHtmaWxsOnVuc2V0fS5leHRyYS1yaWdodC1wYWRkaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLXJpZ2h0OjFweH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLGdMZT1bIioiXSxkQT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJ0Yi1kYXRhLXRhYmxlLWNvbnRlbnQtcm93Il1dLG5nQ29udGVudFNlbGVjdG9yczpnTGUsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmbigpLFR0KDApKX0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpO2Z1bmN0aW9uIF9MZShuLHQpe2lmKDEmbiYmaygwLCJtYXQtaWNvbiIsNyksMiZuKXtsZXQgZT13KDIpO2IoIm5nQ2xhc3MiLGUuaGVhZGVyLm5hbWU9PT1lLnNvcnRpbmdJbmZvLm5hbWU/InNob3ciOiJzaG93LW9uLWhvdmVyIil9fWZ1bmN0aW9uIGJMZShuLHQpe2lmKDEmbiYmaygwLCJtYXQtaWNvbiIsOCksMiZuKXtsZXQgZT13KDIpO2IoIm5nQ2xhc3MiLGUuaGVhZGVyLm5hbWU9PT1lLnNvcnRpbmdJbmZvLm5hbWU/InNob3ciOiJzaG93LW9uLWhvdmVyIil9fWZ1bmN0aW9uIHZMZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImJ1dHRvbiIsNCksQSgiY2xpY2siLGZ1bmN0aW9uKHIpe25lKGUpO2xldCBvPXcoKTtyZXR1cm4gci5zdG9wUHJvcGFnYXRpb24oKSxpZShvLmhlYWRlckNsaWNrZWRIYW5kbGVyKCkpfSksUygxLF9MZSwxLDEsIm1hdC1pY29uIiw1KSxTKDIsYkxlLDEsMSwibWF0LWljb24iLDYpLGcoKX1pZigyJm4pe2xldCBlPXcoKTt2KDEpLGIoIm5nSWYiLGUuc29ydGluZ0luZm8ub3JkZXI9PT1lLlNvcnRpbmdPcmRlci5BU0NFTkRJTkd8fGUuaGVhZGVyLm5hbWUhPT1lLnNvcnRpbmdJbmZvLm5hbWUpLHYoMSksYigibmdJZiIsZS5zb3J0aW5nSW5mby5vcmRlcj09PWUuU29ydGluZ09yZGVyLkRFU0NFTkRJTkcmJmUuaGVhZGVyLm5hbWU9PT1lLnNvcnRpbmdJbmZvLm5hbWUpfX1mdW5jdGlvbiB5TGUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJidXR0b24iLDkpLEEoImNsaWNrIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9uQ29udGV4dE1lbnVPcGVuZWQocikpfSksaygxLCJtYXQtaWNvbiIsMTApLGcoKX19dmFyIHhMZT1bIioiXSxmXz0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy5kaXNhYmxlQ29udGV4dE1lbnU9ITEsdGhpcy5kcmFnU3RhcnQ9bmV3IEYsdGhpcy5kcmFnRW5kPW5ldyBGLHRoaXMuZHJhZ0VudGVyPW5ldyBGLHRoaXMuaGVhZGVyQ2xpY2tlZD1uZXcgRix0aGlzLmNvbnRleHRNZW51T3BlbmVkPW5ldyBGLHRoaXMuaGlnaGxpZ2h0U3R5bGUkPW5ldyB4cih7fSksdGhpcy5Tb3J0aW5nT3JkZXI9THJ9b25Db250ZXh0TWVudU9wZW5lZChlKXt0aGlzLmRpc2FibGVDb250ZXh0TWVudXx8dGhpcy5jb250ZXh0TWVudU9wZW5lZC5lbWl0KGUpfWhlYWRlckNsaWNrZWRIYW5kbGVyKCl7dGhpcy5oZWFkZXIuc29ydGFibGUmJnRoaXMuaGVhZGVyQ2xpY2tlZC5lbWl0KHRoaXMuaGVhZGVyLm5hbWUpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJ0Yi1kYXRhLXRhYmxlLWhlYWRlci1jZWxsIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezEmZSYmQSgiY29udGV4dG1lbnUiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uQ29udGV4dE1lbnVPcGVuZWQobyl9KX0saW5wdXRzOntoZWFkZXI6ImhlYWRlciIsc29ydGluZ0luZm86InNvcnRpbmdJbmZvIixkaXNhYmxlQ29udGV4dE1lbnU6ImRpc2FibGVDb250ZXh0TWVudSJ9LG91dHB1dHM6e2RyYWdTdGFydDoiZHJhZ1N0YXJ0IixkcmFnRW5kOiJkcmFnRW5kIixkcmFnRW50ZXI6ImRyYWdFbnRlciIsaGVhZGVyQ2xpY2tlZDoiaGVhZGVyQ2xpY2tlZCIsY29udGV4dE1lbnVPcGVuZWQ6ImNvbnRleHRNZW51T3BlbmVkIn0sbmdDb250ZW50U2VsZWN0b3JzOnhMZSxkZWNsczo2LHZhcnM6Nyxjb25zdHM6W1sxLCJjZWxsIiwzLCJkcmFnZ2FibGUiLCJuZ0NsYXNzIiwiZHJhZ3N0YXJ0IiwiZHJhZ2VuZCIsImRyYWdlbnRlciIsImNsaWNrIl0sWzMsImhlYWRlciJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiY2xhc3MiLCJzb3J0aW5nLWljb24tY29udGFpbmVyIiwzLCJjbGljayIsNCwibmdJZiJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiY2xhc3MiLCJjb250ZXh0LW1lbnUtY29udGFpbmVyIHNob3ctb24taG92ZXIiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLDEsInNvcnRpbmctaWNvbi1jb250YWluZXIiLDMsImNsaWNrIl0sWyJzdmdJY29uIiwiYXJyb3dfdXB3YXJkXzI0cHgiLDMsIm5nQ2xhc3MiLDQsIm5nSWYiXSxbInN2Z0ljb24iLCJhcnJvd19kb3dud2FyZF8yNHB4IiwzLCJuZ0NsYXNzIiw0LCJuZ0lmIl0sWyJzdmdJY29uIiwiYXJyb3dfdXB3YXJkXzI0cHgiLDMsIm5nQ2xhc3MiXSxbInN2Z0ljb24iLCJhcnJvd19kb3dud2FyZF8yNHB4IiwzLCJuZ0NsYXNzIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLDEsImNvbnRleHQtbWVudS1jb250YWluZXIiLCJzaG93LW9uLWhvdmVyIiwzLCJjbGljayJdLFsic3ZnSWNvbiIsIm1vcmVfdmVydF8yNHB4Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZm4oKSxmKDAsImRpdiIsMCksQSgiZHJhZ3N0YXJ0IixmdW5jdGlvbigpe3JldHVybiBpLmRyYWdTdGFydC5lbWl0KGkuaGVhZGVyKX0pKCJkcmFnZW5kIixmdW5jdGlvbigpe3JldHVybiBpLmRyYWdFbmQuZW1pdCgpfSkoImRyYWdlbnRlciIsZnVuY3Rpb24oKXtyZXR1cm4gaS5kcmFnRW50ZXIuZW1pdChpLmhlYWRlcil9KSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGkuaGVhZGVyQ2xpY2tlZEhhbmRsZXIoKX0pLFUoMSwiYXN5bmMiKSxUdCgyKSxrKDMsInRiLWRhdGEtdGFibGUtaGVhZGVyIiwxKSxTKDQsdkxlLDMsMiwiYnV0dG9uIiwyKSxTKDUseUxlLDIsMCwiYnV0dG9uIiwzKSxnKCkpLDImZSYmKGIoImRyYWdnYWJsZSIsaS5oZWFkZXIubW92YWJsZSkoIm5nQ2xhc3MiLEcoMSw1LGkuaGlnaGxpZ2h0U3R5bGUkKSksdigzKSxiKCJoZWFkZXIiLGkuaGVhZGVyKSx2KDEpLGIoIm5nSWYiLGkuaGVhZGVyLnNvcnRhYmxlKSx2KDEpLGIoIm5nSWYiLChpLmhlYWRlci5yZW1vdmFibGV8fGkuaGVhZGVyLnNvcnRhYmxlKSYmIWkuZGlzYWJsZUNvbnRleHRNZW51KSl9LGRlcGVuZGVuY2llczpbd24sTmUsYm4sRXIsV1QsY3RdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTp0YWJsZS1jZWxsO3ZlcnRpY2FsLWFsaWduOmJvdHRvbX1bX25naG9zdC0lQ09NUCVdOmhvdmVyICAgLnNob3ctb24taG92ZXJbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjN9W19uZ2hvc3QtJUNPTVAlXSAgIC5zaG93LW9uLWhvdmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlcntvcGFjaXR5OjF9W19uZ2hvc3QtJUNPTVAlXSAgIC5zaG93LW9uLWhvdmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1c3tvcGFjaXR5OjF9LmNlbGxbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9LmNlbGxbX25nY29udGVudC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMnB4O3dpZHRoOjEycHg7bGluZS1oZWlnaHQ6MX0uY2VsbFtfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bbWF0LWljb24tYnV0dG9uXS5tYXQtbWRjLWljb24tYnV0dG9uLnNvcnRpbmctaWNvbi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2VsbFtfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bbWF0LWljb24tYnV0dG9uXS5tYXQtbWRjLWljb24tYnV0dG9uLmNvbnRleHQtbWVudS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7LS10Yi1pY29uLXdpZHRoOiAxMnB4Oy0tdGItaWNvbi1oZWlnaHQ6IDEycHg7Ym9yZGVyLXJhZGl1czo1cHg7Zm9udC1zaXplOjEycHg7cGFkZGluZzo0cHh9LmNlbGxbX25nY29udGVudC0lQ09NUCVdICAgLnNvcnRpbmctaWNvbi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgICBwYXRoe2ZpbGw6dW5zZXR9LnNob3dbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uc2hvdy1vbi1ob3Zlcltfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5oaWdobGlnaHRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2VlZX0uaGlnaGxpZ2h0LWJvcmRlci1yaWdodFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJpZ2h0OjJweCBzb2xpZCAjZmY5ODAwfS5oaWdobGlnaHQtYm9yZGVyLWxlZnRbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjJweCBzb2xpZCAjZmY5ODAwfSJdLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksdUE9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLm92ZXJsYXk9ZSx0aGlzLmN1c3RvbU1vZGFsUmVmcz1bXX1jcmVhdGVOZXh0VG9FbGVtZW50KGUsaSxyLG89e29yaWdpblg6ImVuZCIsb3JpZ2luWToidG9wIixvdmVybGF5WDoic3RhcnQiLG92ZXJsYXlZOiJ0b3AifSl7bGV0IGE9dGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZmxleGlibGVDb25uZWN0ZWRUbyhpKTtvJiYoYT1hLndpdGhQb3NpdGlvbnMoW29dKSk7bGV0IHM9dGhpcy5vdmVybGF5LmNyZWF0ZSh7cG9zaXRpb25TdHJhdGVneTphLGhhc0JhY2tkcm9wOiExfSk7cy5hdHRhY2gobmV3IFRvKGUscikpO2xldCBsPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5vbkNsb3NlPW5ldyBFZSx0aGlzLm92ZXJsYXlSZWY9dH19KHMpO3RoaXMuY3VzdG9tTW9kYWxSZWZzLnB1c2gobCk7bGV0IGM9cy5vdXRzaWRlUG9pbnRlckV2ZW50cygpLnN1YnNjcmliZSh1PT57ImF1eGNsaWNrIiE9PXUudHlwZSYmdGhpcy5jdXN0b21Nb2RhbFJlZnMuZXZlcnkocD0+IWZ1bmN0aW9uKG4sdCl7bGV0IGU9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gZS54PD1uLmNsaWVudFgmJm4uY2xpZW50WDw9ZS54K2Uud2lkdGgmJmUueTw9bi5jbGllbnRZJiZuLmNsaWVudFk8PWUueStlLmhlaWdodH0odSxwLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQpKSYmdGhpcy5jbG9zZUFsbCgpfSk7bC5zdWJzY3JpcHRpb25zLnB1c2goYyk7bGV0IGQ9cy5rZXlkb3duRXZlbnRzKCkuc3Vic2NyaWJlKHU9PnsiRXNjYXBlIj09PXUua2V5JiZ0aGlzLmNsb3NlQWxsKCl9KTtyZXR1cm4gbC5zdWJzY3JpcHRpb25zLnB1c2goZCksbH1jbG9zZShlKXtsZXQgaT10aGlzLmN1c3RvbU1vZGFsUmVmcy5maW5kSW5kZXgocj0+cj09PWUpOy0xIT09aT8oZS5zdWJzY3JpcHRpb25zLmZvckVhY2gocj0+e3IudW5zdWJzY3JpYmUoKX0pLGUuc3Vic2NyaXB0aW9ucz1bXSxlLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKSx0aGlzLmN1c3RvbU1vZGFsUmVmcy5zcGxpY2UoaSwxKSxlLm9uQ2xvc2UubmV4dCgpLGUub25DbG9zZS5jb21wbGV0ZSgpKTpjb25zb2xlLndhcm4oIkNvdWxkIG5vdCBmaW5kIGN1c3RvbU1vZGFsUmVmIixlKX1jbG9zZUFsbCgpe2Zvcig7dGhpcy5jdXN0b21Nb2RhbFJlZnMubGVuZ3RoOyl0aGlzLmNsb3NlKHRoaXMuY3VzdG9tTW9kYWxSZWZzWzBdKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoTyhPaSkpfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLG59KSgpLENMZT1bInNlYXJjaCJdLE1MZT1bImNvbHVtbkxpc3QiXTtmdW5jdGlvbiB3TGUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJkaXYiLDEwKSgxLCJsYWJlbCIpLFQoMiwiIFdhcm5pbmc6IFRoZXJlIHdlcmUgdG9vIG1hbnkgY29sdW1ucyB0byBsb2FkIGFsbCBvZiB0aGVtIGVmZmljaWVudGx5LiAiKSxnKCksZigzLCJidXR0b24iLDExKSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gbmUoZSksaWUodygpLmxvYWRBbGxDb2x1bW5zQ2xpY2tlZCgpKX0pLFQoNCwiIExvYWQgYWxsIGFueXdheSAiKSxnKCkoKX19ZnVuY3Rpb24gU0xlKG4sdCl7aWYoMSZuJiYoZigwLCJzcGFuIiwxNCksVCgxKSxnKCkpLDImbil7bGV0IGU9dC4kaW1wbGljaXQ7digxKSxWZSgiICIsZSwiICIpfX12YXIgRUxlPWZ1bmN0aW9uKG4pe3JldHVybntzZWxlY3RlZDpufX0sVExlPWZ1bmN0aW9uKCl7cmV0dXJue3NlbnNpdGl2aXR5OiJhY2NlbnQifX07ZnVuY3Rpb24gRExlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiYnV0dG9uIiwxMiksQSgiY2xpY2siLGZ1bmN0aW9uKCl7bGV0IG89bmUoZSkuJGltcGxpY2l0O3JldHVybiBpZSh3KCkuc2VsZWN0Q29sdW1uKG8pKX0pLFUoMSwiYXN5bmMiKSxUKDIpLFMoMyxTTGUsMiwxLCJzcGFuIiwxMyksZygpfWlmKDImbil7bGV0IGU9dC4kaW1wbGljaXQsaT10LmluZGV4LHI9dygpO2IoIm5nQ2xhc3MiLFVuKDcsRUxlLGk9PT1HKDEsNSxyLnNlbGVjdGVkSW5kZXgkKSkpKCJtYXRUb29sdGlwIixlLm5hbWUpKCJtYXRUb29sdGlwRGlzYWJsZWQiLDA9PT1lLm5hbWUubG9jYWxlQ29tcGFyZShlLmRpc3BsYXlOYW1lLHZvaWQgMCxtYyg5LFRMZSkpKSx2KDIpLFZlKCIgIixlLmRpc3BsYXlOYW1lLCIgIiksdigxKSxiKCJuZ0Zvck9mIixlLnRhZ3MpfX12YXIgWnRlPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLnNlbGVjdGFibGVDb2x1bW5zPVtdLHRoaXMuY29sdW1uU2VsZWN0ZWQ9bmV3IEYsdGhpcy5sb2FkQWxsQ29sdW1ucz1uZXcgRix0aGlzLnNlYXJjaElucHV0PSIiLHRoaXMuc2VsZWN0ZWRJbmRleCQ9bmV3IHhyKDApLHRoaXMuaXNBY3RpdmU9ITF9bmdPbkluaXQoKXt0aGlzLnNlbGVjdGVkSW5kZXgkLnN1YnNjcmliZSgoKT0+e2lmKCF0aGlzLmNvbHVtbkxpc3QpcmV0dXJuO2xldCBlPXRoaXMuY29sdW1uTGlzdC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi5zZWxlY3RlZCIpO2lmKCFlKXJldHVybjtsZXQgaT10aGlzLmNvbHVtbkxpc3QubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQscj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCxvPXRoaXMuY29sdW1uTGlzdC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcDt0aGlzLnNlbGVjdGVkSW5kZXgkLmdldFZhbHVlKCkqcjxvJiYodGhpcy5jb2x1bW5MaXN0Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wPXRoaXMuc2VsZWN0ZWRJbmRleCQuZ2V0VmFsdWUoKSpyKSwodGhpcy5zZWxlY3RlZEluZGV4JC5nZXRWYWx1ZSgpKzEpKnI+bytpJiYodGhpcy5jb2x1bW5MaXN0Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wPSh0aGlzLnNlbGVjdGVkSW5kZXgkLmdldFZhbHVlKCkrMSkqci1pKX0pfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuc2VhcmNoSW5wdXQ9IiIsdGhpcy5zZWxlY3RlZEluZGV4JC5uZXh0KDApLHRoaXMuYWN0aXZhdGUoKSxzZXRUaW1lb3V0KCgpPT57dGhpcy5zZWFyY2hGaWVsZD8ubmF0aXZlRWxlbWVudC5mb2N1cygpfSl9Z2V0RmlsdGVyZWRDb2x1bW5zKCl7cmV0dXJuIHRoaXMuc2VsZWN0YWJsZUNvbHVtbnMuZmlsdGVyKGU9PmUubmFtZS50b0xvd2VyQ2FzZSgpLm1hdGNoKHRoaXMuc2VhcmNoSW5wdXQudG9Mb3dlckNhc2UoKSl8fGUuZGlzcGxheU5hbWUudG9Mb3dlckNhc2UoKS5tYXRjaCh0aGlzLnNlYXJjaElucHV0LnRvTG93ZXJDYXNlKCkpKX1zZWFyY2hJbnB1dENoYW5nZWQoKXt0aGlzLnNlbGVjdGVkSW5kZXgkLm5leHQoTWF0aC5taW4odGhpcy5zZWxlY3RlZEluZGV4JC5nZXRWYWx1ZSgpLHRoaXMuc2VsZWN0YWJsZUNvbHVtbnMubGVuZ3RoLTEpKX1zZWxlY3RDb2x1bW4oZSl7dGhpcy5zZWxlY3RlZEluZGV4JC5uZXh0KDApLHRoaXMuY29sdW1uU2VsZWN0ZWQuZW1pdChlKX1sb2FkQWxsQ29sdW1uc0NsaWNrZWQoKXt0aGlzLmxvYWRBbGxDb2x1bW5zLmVtaXQoKX1hY3RpdmF0ZSgpe3RoaXMuaXNBY3RpdmU9ITB9ZGVhY3RpdmF0ZSgpe3RoaXMuaXNBY3RpdmU9ITF9b25VcEFycm93KCl7IXRoaXMuaXNBY3RpdmV8fHRoaXMuc2VsZWN0ZWRJbmRleCQubmV4dChNYXRoLm1heCh0aGlzLnNlbGVjdGVkSW5kZXgkLmdldFZhbHVlKCktMSwwKSl9b25Eb3duQXJyb3coKXshdGhpcy5pc0FjdGl2ZXx8dGhpcy5zZWxlY3RlZEluZGV4JC5uZXh0KE1hdGgubWluKHRoaXMuc2VsZWN0ZWRJbmRleCQuZ2V0VmFsdWUoKSsxLHRoaXMuZ2V0RmlsdGVyZWRDb2x1bW5zKCkubGVuZ3RoLTEpKX1vbkVudGVyUHJlc3NlZCgpeyF0aGlzLmlzQWN0aXZlfHx0aGlzLnNlbGVjdENvbHVtbih0aGlzLmdldEZpbHRlcmVkQ29sdW1ucygpW3RoaXMuc2VsZWN0ZWRJbmRleCQuZ2V0VmFsdWUoKV0pfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJ0Yi1kYXRhLXRhYmxlLWNvbHVtbi1zZWxlY3Rvci1jb21wb25lbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiYoVWUoQ0xlLDUpLFVlKE1MZSw1KSksMiZlKXtsZXQgcjtiZShyPXZlKCkpJiYoaS5zZWFyY2hGaWVsZD1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS5jb2x1bW5MaXN0PXIuZmlyc3QpfX0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MSZlJiZBKCJrZXlkb3duLmFycm93dXAiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uVXBBcnJvdyhvKX0sMCxzdSkoImtleWRvd24uYXJyb3dkb3duIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkRvd25BcnJvdyhvKX0sITEsc3UpKCJrZXlkb3duLmVudGVyIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkVudGVyUHJlc3NlZChvKX0sITEsc3UpfSxpbnB1dHM6e3NlbGVjdGFibGVDb2x1bW5zOiJzZWxlY3RhYmxlQ29sdW1ucyIsbnVtQ29sdW1uc0xvYWRlZDoibnVtQ29sdW1uc0xvYWRlZCIsaGFzTW9yZUNvbHVtbnNUb0xvYWQ6Imhhc01vcmVDb2x1bW5zVG9Mb2FkIn0sb3V0cHV0czp7Y29sdW1uU2VsZWN0ZWQ6ImNvbHVtblNlbGVjdGVkIixsb2FkQWxsQ29sdW1uczoibG9hZEFsbENvbHVtbnMifSxkZWNsczoxNCx2YXJzOjQsY29uc3RzOltbMSwiY29udGVudHMiXSxbInN1YnNjcmlwdFNpemluZyIsImR5bmFtaWMiLDEsInNlYXJjaC1hcmVhIl0sWyJtYXRQcmVmaXgiLCIiLCJzdmdJY29uIiwic2VhcmNoXzI0cHgiLDEsInNlYXJjaC1pY29uIl0sWyJtYXRJbnB1dCIsIiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbInNlYXJjaCIsIiJdLFsxLCJjb2x1bW4tbG9hZC1pbmZvIl0sWyJjbGFzcyIsImxvYWQtbW9yZS1jb2x1bW5zIiw0LCJuZ0lmIl0sWzEsImNvbHVtbi1saXN0Il0sWyJjb2x1bW5MaXN0IiwiIl0sWyJtYXQtYnV0dG9uIiwiIiwiY2xhc3MiLCJjb2x1bW4tYnV0dG9uIiwzLCJuZ0NsYXNzIiwibWF0VG9vbHRpcCIsIm1hdFRvb2x0aXBEaXNhYmxlZCIsImNsaWNrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwibG9hZC1tb3JlLWNvbHVtbnMiXSxbIm1hdC1zdHJva2VkLWJ1dHRvbiIsIiIsMywiY2xpY2siXSxbIm1hdC1idXR0b24iLCIiLDEsImNvbHVtbi1idXR0b24iLDMsIm5nQ2xhc3MiLCJtYXRUb29sdGlwIiwibWF0VG9vbHRpcERpc2FibGVkIiwiY2xpY2siXSxbImNsYXNzIiwidGFnIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwidGFnIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJkaXYiLDApKDEsIm1hdC1mb3JtLWZpZWxkIiwxKSxrKDIsIm1hdC1pY29uIiwyKSxmKDMsIm1hdC1sYWJlbCIpLFQoNCwiU2VhcmNoIiksZygpLGYoNSwiaW5wdXQiLDMsNCksQSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24obyl7cmV0dXJuIGkuc2VhcmNoSW5wdXQ9b30pKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBpLnNlYXJjaElucHV0Q2hhbmdlZCgpfSksZygpKCksZig3LCJkaXYiLDUpKDgsImxhYmVsIiksVCg5KSxnKCksUygxMCx3TGUsNSwwLCJkaXYiLDYpLGcoKSxmKDExLCJkaXYiLDcsOCksUygxMyxETGUsNCwxMCwiYnV0dG9uIiw5KSxnKCkoKSksMiZlJiYodig1KSxiKCJuZ01vZGVsIixpLnNlYXJjaElucHV0KSx2KDQpLFZlKCIiLGkubnVtQ29sdW1uc0xvYWRlZCwiIGNvbHVtbnMgbG9hZGVkLiIpLHYoMSksYigibmdJZiIsaS5oYXNNb3JlQ29sdW1uc1RvTG9hZCksdigzKSxiKCJuZ0Zvck9mIixpLmdldEZpbHRlcmVkQ29sdW1ucygpKSl9LGRlcGVuZGVuY2llczpbd24sbm4sTmUsYm4scXUsUGMsbmwsRjksa2ksVXUseGcsaXksR1QsY3RdLHN0eWxlczpbIi5jb250ZW50c1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3BhZGRpbmc6OHB4O2JvcmRlci1yYWRpdXM6NHB4O2JvcmRlcjoxcHggc29saWQ7Ym94LXNoYWRvdzowcHggNHB4IDRweCByZ2JhKDAsMCwwLC4yNSk7Ym9yZGVyLWNvbG9yOiNlYmViZWI7YmFja2dyb3VuZC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5jb250ZW50c1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5jb250ZW50c1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWNvbG9yOiM1NTU7YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfS5jb250ZW50c1tfbmdjb250ZW50LSVDT01QJV0gICAuc2VhcmNoLWFyZWFbX25nY29udGVudC0lQ09NUCVde21hcmdpbi1ib3R0b206MTJweH0uY29udGVudHNbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1sb2FkLWluZm9bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Zm9udC1zaXplOjEzcHg7Zm9udC1zdHlsZTppdGFsaWM7bWFyZ2luLWJvdHRvbToxMnB4fS5jb250ZW50c1tfbmdjb250ZW50LSVDT01QJV0gICAubG9hZC1tb3JlLWNvbHVtbnNbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNlNTM5MzU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXJnaW4tdG9wOjZweH0uY29udGVudHNbX25nY29udGVudC0lQ09NUCVdICAgLmxvYWQtbW9yZS1jb2x1bW5zW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtoZWlnaHQ6MjRweDttYXJnaW4tdG9wOjhweH0uY29udGVudHNbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1saXN0W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3dpZHRoOjEwMCU7bWF4LWhlaWdodDozMDBweDtvdmVyZmxvdy15OmF1dG99LmNvbnRlbnRzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4LXNocmluazowO2hlaWdodDo0OHB4O2p1c3RpZnktY29udGVudDpsZWZ0O3dpZHRoOjEwMCV9LmNvbnRlbnRzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tYnV0dG9uLnNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmNvbnRlbnRzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tYnV0dG9uLnNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmNvbnRlbnRzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tYnV0dG9uLnNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNiZGJkYmR9LmNvbnRlbnRzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50YWdbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMDtib3JkZXItcmFkaXVzOjhweDtmb250LXNpemU6MTJweDtmb250LXN0eWxlOml0YWxpYztmb250LXdlaWdodDpub3JtYWw7cGFkZGluZzo0cHh9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxBTGU9WyJwYW5lbCJdO2Z1bmN0aW9uIFJMZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2IiwwLDEpLFR0KDIpLGcoKSksMiZuKXtsZXQgZT10LmlkLGk9dygpO2IoImlkIixpLmlkKSgibmdDbGFzcyIsaS5fY2xhc3NMaXN0KSgiQHBhbmVsQW5pbWF0aW9uIixpLmlzT3Blbj8idmlzaWJsZSI6ImhpZGRlbiIpLEJlKCJhcmlhLWxhYmVsIixpLmFyaWFMYWJlbHx8bnVsbCkoImFyaWEtbGFiZWxsZWRieSIsaS5fZ2V0UGFuZWxBcmlhTGFiZWxsZWRieShlKSl9fXZhciBQTGU9WyIqIl0sa0xlPWZyKCJwYW5lbEFuaW1hdGlvbiIsW1NpKCJ2b2lkLCBoaWRkZW4iLHJuKHtvcGFjaXR5OjAsdHJhbnNmb3JtOiJzY2FsZVkoMC44KSJ9KSksYmkoIjplbnRlciwgaGlkZGVuID0+IHZpc2libGUiLFtMYihbTWkoIjAuMDNzIGxpbmVhciIscm4oe29wYWNpdHk6MX0pKSxNaSgiMC4xMnMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkiLHJuKHt0cmFuc2Zvcm06InNjYWxlWSgxKSJ9KSldKV0pLGJpKCI6bGVhdmUsIHZpc2libGUgPT4gaGlkZGVuIixbTWkoIjAuMDc1cyBsaW5lYXIiLHJuKHtvcGFjaXR5OjB9KSldKV0pLE9MZT0wLEZMZT1nbyhjbGFzc3t9KSxLdGU9bmV3IHRlKCJtYXQtYXV0b2NvbXBsZXRlLWRlZmF1bHQtb3B0aW9ucyIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm57YXV0b0FjdGl2ZUZpcnN0T3B0aW9uOiExLGF1dG9TZWxlY3RBY3RpdmVPcHRpb246ITEsaGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvcjohMX19fSksTExlPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBGTGV7Z2V0IGlzT3Blbigpe3JldHVybiB0aGlzLl9pc09wZW4mJnRoaXMuc2hvd1BhbmVsfV9zZXRDb2xvcihlKXt0aGlzLl9jb2xvcj1lLHRoaXMuX3NldFRoZW1lQ2xhc3Nlcyh0aGlzLl9jbGFzc0xpc3QpfWdldCBhdXRvQWN0aXZlRmlyc3RPcHRpb24oKXtyZXR1cm4gdGhpcy5fYXV0b0FjdGl2ZUZpcnN0T3B0aW9ufXNldCBhdXRvQWN0aXZlRmlyc3RPcHRpb24oZSl7dGhpcy5fYXV0b0FjdGl2ZUZpcnN0T3B0aW9uPXZ0KGUpfWdldCBhdXRvU2VsZWN0QWN0aXZlT3B0aW9uKCl7cmV0dXJuIHRoaXMuX2F1dG9TZWxlY3RBY3RpdmVPcHRpb259c2V0IGF1dG9TZWxlY3RBY3RpdmVPcHRpb24oZSl7dGhpcy5fYXV0b1NlbGVjdEFjdGl2ZU9wdGlvbj12dChlKX1zZXQgY2xhc3NMaXN0KGUpe3RoaXMuX2NsYXNzTGlzdD1lJiZlLmxlbmd0aD9mdW5jdGlvbihuLHQ9L1xzKy8pe2xldCBlPVtdO2lmKG51bGwhPW4pe2xldCBpPUFycmF5LmlzQXJyYXkobik/bjpgJHtufWAuc3BsaXQodCk7Zm9yKGxldCByIG9mIGkpe2xldCBvPWAke3J9YC50cmltKCk7byYmZS5wdXNoKG8pfX1yZXR1cm4gZX0oZSkucmVkdWNlKChpLHIpPT4oaVtyXT0hMCxpKSx7fSk6e30sdGhpcy5fc2V0VmlzaWJpbGl0eUNsYXNzZXModGhpcy5fY2xhc3NMaXN0KSx0aGlzLl9zZXRUaGVtZUNsYXNzZXModGhpcy5fY2xhc3NMaXN0KSx0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lPSIifWNvbnN0cnVjdG9yKGUsaSxyLG8pe3N1cGVyKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9ZSx0aGlzLl9lbGVtZW50UmVmPWksdGhpcy5fZGVmYXVsdHM9cix0aGlzLl9hY3RpdmVPcHRpb25DaGFuZ2VzPUVuLkVNUFRZLHRoaXMuc2hvd1BhbmVsPSExLHRoaXMuX2lzT3Blbj0hMSx0aGlzLmRpc3BsYXlXaXRoPW51bGwsdGhpcy5fYXV0b0FjdGl2ZUZpcnN0T3B0aW9uPSEhdGhpcy5fZGVmYXVsdHMuYXV0b0FjdGl2ZUZpcnN0T3B0aW9uLHRoaXMuX2F1dG9TZWxlY3RBY3RpdmVPcHRpb249ISF0aGlzLl9kZWZhdWx0cy5hdXRvU2VsZWN0QWN0aXZlT3B0aW9uLHRoaXMub3B0aW9uU2VsZWN0ZWQ9bmV3IEYsdGhpcy5vcGVuZWQ9bmV3IEYsdGhpcy5jbG9zZWQ9bmV3IEYsdGhpcy5vcHRpb25BY3RpdmF0ZWQ9bmV3IEYsdGhpcy5fY2xhc3NMaXN0PXt9LHRoaXMuaWQ9Im1hdC1hdXRvY29tcGxldGUtIitPTGUrKyx0aGlzLmluZXJ0R3JvdXBzPW8/LlNBRkFSSXx8ITF9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5fa2V5TWFuYWdlcj1uZXcgbGcodGhpcy5vcHRpb25zKS53aXRoV3JhcCgpLHRoaXMuX2FjdGl2ZU9wdGlvbkNoYW5nZXM9dGhpcy5fa2V5TWFuYWdlci5jaGFuZ2Uuc3Vic2NyaWJlKGU9Pnt0aGlzLmlzT3BlbiYmdGhpcy5vcHRpb25BY3RpdmF0ZWQuZW1pdCh7c291cmNlOnRoaXMsb3B0aW9uOnRoaXMub3B0aW9ucy50b0FycmF5KClbZV18fG51bGx9KX0pLHRoaXMuX3NldFZpc2liaWxpdHkoKX1uZ09uRGVzdHJveSgpe3RoaXMuX2tleU1hbmFnZXI/LmRlc3Ryb3koKSx0aGlzLl9hY3RpdmVPcHRpb25DaGFuZ2VzLnVuc3Vic2NyaWJlKCl9X3NldFNjcm9sbFRvcChlKXt0aGlzLnBhbmVsJiYodGhpcy5wYW5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcD1lKX1fZ2V0U2Nyb2xsVG9wKCl7cmV0dXJuIHRoaXMucGFuZWw/dGhpcy5wYW5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcDowfV9zZXRWaXNpYmlsaXR5KCl7dGhpcy5zaG93UGFuZWw9ISF0aGlzLm9wdGlvbnMubGVuZ3RoLHRoaXMuX3NldFZpc2liaWxpdHlDbGFzc2VzKHRoaXMuX2NsYXNzTGlzdCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9X2VtaXRTZWxlY3RFdmVudChlKXtsZXQgaT1uZXcgY2xhc3N7Y29uc3RydWN0b3IodCxlKXt0aGlzLnNvdXJjZT10LHRoaXMub3B0aW9uPWV9fSh0aGlzLGUpO3RoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdChpKX1fZ2V0UGFuZWxBcmlhTGFiZWxsZWRieShlKXtyZXR1cm4gdGhpcy5hcmlhTGFiZWw/bnVsbDp0aGlzLmFyaWFMYWJlbGxlZGJ5PyhlP2UrIiAiOiIiKSt0aGlzLmFyaWFMYWJlbGxlZGJ5OmV9X3NldFZpc2liaWxpdHlDbGFzc2VzKGUpe2VbdGhpcy5fdmlzaWJsZUNsYXNzXT10aGlzLnNob3dQYW5lbCxlW3RoaXMuX2hpZGRlbkNsYXNzXT0hdGhpcy5zaG93UGFuZWx9X3NldFRoZW1lQ2xhc3NlcyhlKXtlWyJtYXQtcHJpbWFyeSJdPSJwcmltYXJ5Ij09PXRoaXMuX2NvbG9yLGVbIm1hdC13YXJuIl09Indhcm4iPT09dGhpcy5fY29sb3IsZVsibWF0LWFjY2VudCJdPSJhY2NlbnQiPT09dGhpcy5fY29sb3J9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoUXQpLEMoeGUpLEMoS3RlKSxDKFZuKSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sdmlld1F1ZXJ5OmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiYoVWUob2ksNyksVWUoQUxlLDUpKSwyJmUpe2xldCByO2JlKHI9dmUoKSkmJihpLnRlbXBsYXRlPXIuZmlyc3QpLGJlKHI9dmUoKSkmJihpLnBhbmVsPXIuZmlyc3QpfX0saW5wdXRzOnthcmlhTGFiZWw6WyJhcmlhLWxhYmVsIiwiYXJpYUxhYmVsIl0sYXJpYUxhYmVsbGVkYnk6WyJhcmlhLWxhYmVsbGVkYnkiLCJhcmlhTGFiZWxsZWRieSJdLGRpc3BsYXlXaXRoOiJkaXNwbGF5V2l0aCIsYXV0b0FjdGl2ZUZpcnN0T3B0aW9uOiJhdXRvQWN0aXZlRmlyc3RPcHRpb24iLGF1dG9TZWxlY3RBY3RpdmVPcHRpb246ImF1dG9TZWxlY3RBY3RpdmVPcHRpb24iLHBhbmVsV2lkdGg6InBhbmVsV2lkdGgiLGNsYXNzTGlzdDpbImNsYXNzIiwiY2xhc3NMaXN0Il19LG91dHB1dHM6e29wdGlvblNlbGVjdGVkOiJvcHRpb25TZWxlY3RlZCIsb3BlbmVkOiJvcGVuZWQiLGNsb3NlZDoiY2xvc2VkIixvcHRpb25BY3RpdmF0ZWQ6Im9wdGlvbkFjdGl2YXRlZCJ9LGZlYXR1cmVzOltYZV19KSxufSkoKSxKdGU9KCgpPT57Y2xhc3MgbiBleHRlbmRzIExMZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fdmlzaWJsZUNsYXNzPSJtYXQtbWRjLWF1dG9jb21wbGV0ZS12aXNpYmxlIix0aGlzLl9oaWRkZW5DbGFzcz0ibWF0LW1kYy1hdXRvY29tcGxldGUtaGlkZGVuIix0aGlzLl9oaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yPXRoaXMuX2RlZmF1bHRzLmhpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3I/PyExfWdldCBoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yKCl7cmV0dXJuIHRoaXMuX2hpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3J9c2V0IGhpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3IoZSl7dGhpcy5faGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvcj12dChlKSx0aGlzLl9zeW5jUGFyZW50UHJvcGVydGllcygpfV9zeW5jUGFyZW50UHJvcGVydGllcygpe2lmKHRoaXMub3B0aW9ucylmb3IobGV0IGUgb2YgdGhpcy5vcHRpb25zKWUuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuKHR8fCh0PVhuKG4pKSkoaXx8bil9fSgpLG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sibWF0LWF1dG9jb21wbGV0ZSJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihlLGkscil7aWYoMSZlJiYoQm4ocixqdiw1KSxCbihyLGphLDUpKSwyJmUpe2xldCBvO2JlKG89dmUoKSkmJihpLm9wdGlvbkdyb3Vwcz1vKSxiZShvPXZlKCkpJiYoaS5vcHRpb25zPW8pfX0saG9zdEF0dHJzOlsxLCJtYXQtbWRjLWF1dG9jb21wbGV0ZSJdLGlucHV0czp7ZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIsaGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvcjoiaGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvciJ9LGV4cG9ydEFzOlsibWF0QXV0b2NvbXBsZXRlIl0sZmVhdHVyZXM6W1Z0KFt7cHJvdmlkZTpVdix1c2VFeGlzdGluZzpufV0pLFhlXSxuZ0NvbnRlbnRTZWxlY3RvcnM6UExlLGRlY2xzOjEsdmFyczowLGNvbnN0czpbWyJyb2xlIiwibGlzdGJveCIsMSwibWF0LW1kYy1hdXRvY29tcGxldGUtcGFuZWwiLCJtZGMtbWVudS1zdXJmYWNlIiwibWRjLW1lbnUtc3VyZmFjZS0tb3BlbiIsMywiaWQiLCJuZ0NsYXNzIl0sWyJwYW5lbCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGZuKCksUygwLFJMZSwzLDUsIm5nLXRlbXBsYXRlIikpfSxkZXBlbmRlbmNpZXM6W3duXSxzdHlsZXM6WyIubWRjLW1lbnUtc3VyZmFjZXtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNpemluZzpib3JkZXItYm94O21heC13aWR0aDpjYWxjKDEwMHZ3IC0gMzJweCk7bWF4LXdpZHRoOnZhcigtLW1kYy1tZW51LW1heC13aWR0aCwgY2FsYygxMDB2dyAtIDMycHgpKTttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSAzMnB4KTttYXgtaGVpZ2h0OnZhcigtLW1kYy1tZW51LW1heC1oZWlnaHQsIGNhbGMoMTAwdmggLSAzMnB4KSk7bWFyZ2luOjA7cGFkZGluZzowO3RyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm0tb3JpZ2luOnRvcCBsZWZ0O29wYWNpdHk6MDtvdmVyZmxvdzphdXRvO3dpbGwtY2hhbmdlOnRyYW5zZm9ybSxvcGFjaXR5O3otaW5kZXg6ODtib3JkZXItcmFkaXVzOjRweDtib3JkZXItcmFkaXVzOnZhcigtLW1kYy1zaGFwZS1tZWRpdW0sIDRweCk7dHJhbnNmb3JtLW9yaWdpbi1sZWZ0OnRvcCBsZWZ0O3RyYW5zZm9ybS1vcmlnaW4tcmlnaHQ6dG9wIHJpZ2h0fS5tZGMtbWVudS1zdXJmYWNlOmZvY3Vze291dGxpbmU6bm9uZX0ubWRjLW1lbnUtc3VyZmFjZS0tYW5pbWF0aW5nLW9wZW57ZGlzcGxheTppbmxpbmUtYmxvY2s7dHJhbnNmb3JtOnNjYWxlKDAuOCk7b3BhY2l0eTowfS5tZGMtbWVudS1zdXJmYWNlLS1vcGVue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9Lm1kYy1tZW51LXN1cmZhY2UtLWFuaW1hdGluZy1jbG9zZWR7ZGlzcGxheTppbmxpbmUtYmxvY2s7b3BhY2l0eTowfVtkaXI9cnRsXSAubWRjLW1lbnUtc3VyZmFjZSwubWRjLW1lbnUtc3VyZmFjZVtkaXI9cnRsXXt0cmFuc2Zvcm0tb3JpZ2luLWxlZnQ6dG9wIHJpZ2h0O3RyYW5zZm9ybS1vcmlnaW4tcmlnaHQ6dG9wIGxlZnR9Lm1kYy1tZW51LXN1cmZhY2UtLWFuY2hvcntwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzp2aXNpYmxlfS5tZGMtbWVudS1zdXJmYWNlLS1maXhlZHtwb3NpdGlvbjpmaXhlZH0ubWRjLW1lbnUtc3VyZmFjZS0tZnVsbHdpZHRoe3dpZHRoOjEwMCV9Lm1kYy1tZW51LXN1cmZhY2UubWF0LW1kYy1hdXRvY29tcGxldGUtcGFuZWx7d2lkdGg6MTAwJTttYXgtaGVpZ2h0OjI1NnB4O3Bvc2l0aW9uOnN0YXRpYzt2aXNpYmlsaXR5OmhpZGRlbjt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciB0b3A7bWFyZ2luOjA7cGFkZGluZzo4cHggMDtsaXN0LXN0eWxlLXR5cGU6bm9uZX0ubWRjLW1lbnUtc3VyZmFjZS5tYXQtbWRjLWF1dG9jb21wbGV0ZS1wYW5lbDpmb2N1c3tvdXRsaW5lOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWRjLW1lbnUtc3VyZmFjZS5tYXQtbWRjLWF1dG9jb21wbGV0ZS1wYW5lbHtvdXRsaW5lOnNvbGlkIDFweH0uY2RrLW92ZXJsYXktcGFuZTpub3QoLm1hdC1tZGMtYXV0b2NvbXBsZXRlLXBhbmVsLWFib3ZlKSAubWRjLW1lbnUtc3VyZmFjZS5tYXQtbWRjLWF1dG9jb21wbGV0ZS1wYW5lbHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0ubWF0LW1kYy1hdXRvY29tcGxldGUtcGFuZWwtYWJvdmUgLm1kYy1tZW51LXN1cmZhY2UubWF0LW1kYy1hdXRvY29tcGxldGUtcGFuZWx7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgYm90dG9tfS5tZGMtbWVudS1zdXJmYWNlLm1hdC1tZGMtYXV0b2NvbXBsZXRlLXBhbmVsLm1hdC1tZGMtYXV0b2NvbXBsZXRlLXZpc2libGV7dmlzaWJpbGl0eTp2aXNpYmxlfS5tZGMtbWVudS1zdXJmYWNlLm1hdC1tZGMtYXV0b2NvbXBsZXRlLXBhbmVsLm1hdC1tZGMtYXV0b2NvbXBsZXRlLWhpZGRlbnt2aXNpYmlsaXR5OmhpZGRlbn1tYXQtYXV0b2NvbXBsZXRle2Rpc3BsYXk6bm9uZX0iXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOltrTGVdfSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLEJMZT17cHJvdmlkZTpYcix1c2VFeGlzdGluZzpXbigoKT0+S3gpLG11bHRpOiEwfSwkdGU9bmV3IHRlKCJtYXQtYXV0b2NvbXBsZXRlLXNjcm9sbC1zdHJhdGVneSIpLEhMZT17cHJvdmlkZTokdGUsZGVwczpbT2ldLHVzZUZhY3Rvcnk6ZnVuY3Rpb24obil7cmV0dXJuKCk9Pm4uc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCl9fSx6TGU9KCgpPT57Y2xhc3MgbntnZXQgYXV0b2NvbXBsZXRlRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fYXV0b2NvbXBsZXRlRGlzYWJsZWR9c2V0IGF1dG9jb21wbGV0ZURpc2FibGVkKGUpe3RoaXMuX2F1dG9jb21wbGV0ZURpc2FibGVkPXZ0KGUpfWNvbnN0cnVjdG9yKGUsaSxyLG8sYSxzLGwsYyxkLHUscCl7dGhpcy5fZWxlbWVudD1lLHRoaXMuX292ZXJsYXk9aSx0aGlzLl92aWV3Q29udGFpbmVyUmVmPXIsdGhpcy5fem9uZT1vLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWEsdGhpcy5fZGlyPWwsdGhpcy5fZm9ybUZpZWxkPWMsdGhpcy5fZG9jdW1lbnQ9ZCx0aGlzLl92aWV3cG9ydFJ1bGVyPXUsdGhpcy5fZGVmYXVsdHM9cCx0aGlzLl9jb21wb25lbnREZXN0cm95ZWQ9ITEsdGhpcy5fYXV0b2NvbXBsZXRlRGlzYWJsZWQ9ITEsdGhpcy5fbWFudWFsbHlGbG9hdGluZ0xhYmVsPSExLHRoaXMuX3ZpZXdwb3J0U3Vic2NyaXB0aW9uPUVuLkVNUFRZLHRoaXMuX2Nhbk9wZW5Pbk5leHRGb2N1cz0hMCx0aGlzLl9jbG9zZUtleUV2ZW50U3RyZWFtPW5ldyBFZSx0aGlzLl93aW5kb3dCbHVySGFuZGxlcj0oKT0+e3RoaXMuX2Nhbk9wZW5Pbk5leHRGb2N1cz10aGlzLl9kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50fHx0aGlzLnBhbmVsT3Blbn0sdGhpcy5fb25DaGFuZ2U9KCk9Pnt9LHRoaXMuX29uVG91Y2hlZD0oKT0+e30sdGhpcy5wb3NpdGlvbj0iYXV0byIsdGhpcy5hdXRvY29tcGxldGVBdHRyaWJ1dGU9Im9mZiIsdGhpcy5fb3ZlcmxheUF0dGFjaGVkPSExLHRoaXMub3B0aW9uU2VsZWN0aW9ucz1pcygoKT0+e2xldCBoPXRoaXMuYXV0b2NvbXBsZXRlP3RoaXMuYXV0b2NvbXBsZXRlLm9wdGlvbnM6bnVsbDtyZXR1cm4gaD9oLmNoYW5nZXMucGlwZShrbihoKSxKbigoKT0+dG4oLi4uaC5tYXAobT0+bS5vblNlbGVjdGlvbkNoYW5nZSkpKSk6dGhpcy5fem9uZS5vblN0YWJsZS5waXBlKEx0KDEpLEpuKCgpPT50aGlzLm9wdGlvblNlbGVjdGlvbnMpKX0pLHRoaXMuX3Njcm9sbFN0cmF0ZWd5PXN9bmdBZnRlclZpZXdJbml0KCl7bGV0IGU9dGhpcy5fZ2V0V2luZG93KCk7dHlwZW9mIGU8InUiJiZ0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT5lLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX3dpbmRvd0JsdXJIYW5kbGVyKSl9bmdPbkNoYW5nZXMoZSl7ZS5wb3NpdGlvbiYmdGhpcy5fcG9zaXRpb25TdHJhdGVneSYmKHRoaXMuX3NldFN0cmF0ZWd5UG9zaXRpb25zKHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kpLHRoaXMucGFuZWxPcGVuJiZ0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCkpfW5nT25EZXN0cm95KCl7bGV0IGU9dGhpcy5fZ2V0V2luZG93KCk7dHlwZW9mIGU8InUiJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX3dpbmRvd0JsdXJIYW5kbGVyKSx0aGlzLl92aWV3cG9ydFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2NvbXBvbmVudERlc3Ryb3llZD0hMCx0aGlzLl9kZXN0cm95UGFuZWwoKSx0aGlzLl9jbG9zZUtleUV2ZW50U3RyZWFtLmNvbXBsZXRlKCl9Z2V0IHBhbmVsT3Blbigpe3JldHVybiB0aGlzLl9vdmVybGF5QXR0YWNoZWQmJnRoaXMuYXV0b2NvbXBsZXRlLnNob3dQYW5lbH1vcGVuUGFuZWwoKXt0aGlzLl9hdHRhY2hPdmVybGF5KCksdGhpcy5fZmxvYXRMYWJlbCgpfWNsb3NlUGFuZWwoKXt0aGlzLl9yZXNldExhYmVsKCksdGhpcy5fb3ZlcmxheUF0dGFjaGVkJiYodGhpcy5wYW5lbE9wZW4mJnRoaXMuX3pvbmUucnVuKCgpPT57dGhpcy5hdXRvY29tcGxldGUuY2xvc2VkLmVtaXQoKX0pLHRoaXMuYXV0b2NvbXBsZXRlLl9pc09wZW49dGhpcy5fb3ZlcmxheUF0dGFjaGVkPSExLHRoaXMuX3BlbmRpbmdBdXRvc2VsZWN0ZWRPcHRpb249bnVsbCx0aGlzLl9vdmVybGF5UmVmJiZ0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkmJih0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpLHRoaXMuX2Nsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpLHRoaXMuX2NvbXBvbmVudERlc3Ryb3llZHx8dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpKX11cGRhdGVQb3NpdGlvbigpe3RoaXMuX292ZXJsYXlBdHRhY2hlZCYmdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpfWdldCBwYW5lbENsb3NpbmdBY3Rpb25zKCl7cmV0dXJuIHRuKHRoaXMub3B0aW9uU2VsZWN0aW9ucyx0aGlzLmF1dG9jb21wbGV0ZS5fa2V5TWFuYWdlci50YWJPdXQucGlwZShPZSgoKT0+dGhpcy5fb3ZlcmxheUF0dGFjaGVkKSksdGhpcy5fY2xvc2VLZXlFdmVudFN0cmVhbSx0aGlzLl9nZXRPdXRzaWRlQ2xpY2tTdHJlYW0oKSx0aGlzLl9vdmVybGF5UmVmP3RoaXMuX292ZXJsYXlSZWYuZGV0YWNobWVudHMoKS5waXBlKE9lKCgpPT50aGlzLl9vdmVybGF5QXR0YWNoZWQpKTokdCgpKS5waXBlKHEoZT0+ZSBpbnN0YW5jZW9mIHp2P2U6bnVsbCkpfWdldCBhY3RpdmVPcHRpb24oKXtyZXR1cm4gdGhpcy5hdXRvY29tcGxldGUmJnRoaXMuYXV0b2NvbXBsZXRlLl9rZXlNYW5hZ2VyP3RoaXMuYXV0b2NvbXBsZXRlLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW06bnVsbH1fZ2V0T3V0c2lkZUNsaWNrU3RyZWFtKCl7cmV0dXJuIHRuKEVpKHRoaXMuX2RvY3VtZW50LCJjbGljayIpLEVpKHRoaXMuX2RvY3VtZW50LCJhdXhjbGljayIpLEVpKHRoaXMuX2RvY3VtZW50LCJ0b3VjaGVuZCIpKS5waXBlKE9lKGU9PntsZXQgaT1icyhlKSxyPXRoaXMuX2Zvcm1GaWVsZD90aGlzLl9mb3JtRmllbGQuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDpudWxsLG89dGhpcy5jb25uZWN0ZWRUbz90aGlzLmNvbm5lY3RlZFRvLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDpudWxsO3JldHVybiB0aGlzLl9vdmVybGF5QXR0YWNoZWQmJmkhPT10aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQmJnRoaXMuX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT10aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQmJighcnx8IXIuY29udGFpbnMoaSkpJiYoIW98fCFvLmNvbnRhaW5zKGkpKSYmISF0aGlzLl9vdmVybGF5UmVmJiYhdGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5jb250YWlucyhpKX0pKX13cml0ZVZhbHVlKGUpe1Byb21pc2UucmVzb2x2ZShudWxsKS50aGVuKCgpPT50aGlzLl9hc3NpZ25PcHRpb25WYWx1ZShlKSl9cmVnaXN0ZXJPbkNoYW5nZShlKXt0aGlzLl9vbkNoYW5nZT1lfXJlZ2lzdGVyT25Ub3VjaGVkKGUpe3RoaXMuX29uVG91Y2hlZD1lfXNldERpc2FibGVkU3RhdGUoZSl7dGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LmRpc2FibGVkPWV9X2hhbmRsZUtleWRvd24oZSl7bGV0IGk9ZS5rZXlDb2RlLHI9T3IoZSk7aWYoMjc9PT1pJiYhciYmZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWN0aXZlT3B0aW9uJiYxMz09PWkmJnRoaXMucGFuZWxPcGVuJiYhcil0aGlzLmFjdGl2ZU9wdGlvbi5fc2VsZWN0VmlhSW50ZXJhY3Rpb24oKSx0aGlzLl9yZXNldEFjdGl2ZUl0ZW0oKSxlLnByZXZlbnREZWZhdWx0KCk7ZWxzZSBpZih0aGlzLmF1dG9jb21wbGV0ZSl7bGV0IG89dGhpcy5hdXRvY29tcGxldGUuX2tleU1hbmFnZXIuYWN0aXZlSXRlbSxhPTM4PT09aXx8NDA9PT1pOzk9PT1pfHxhJiYhciYmdGhpcy5wYW5lbE9wZW4/dGhpcy5hdXRvY29tcGxldGUuX2tleU1hbmFnZXIub25LZXlkb3duKGUpOmEmJnRoaXMuX2Nhbk9wZW4oKSYmdGhpcy5vcGVuUGFuZWwoKSwoYXx8dGhpcy5hdXRvY29tcGxldGUuX2tleU1hbmFnZXIuYWN0aXZlSXRlbSE9PW8pJiYodGhpcy5fc2Nyb2xsVG9PcHRpb24odGhpcy5hdXRvY29tcGxldGUuX2tleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4fHwwKSx0aGlzLmF1dG9jb21wbGV0ZS5hdXRvU2VsZWN0QWN0aXZlT3B0aW9uJiZ0aGlzLmFjdGl2ZU9wdGlvbiYmKHRoaXMuX3BlbmRpbmdBdXRvc2VsZWN0ZWRPcHRpb258fCh0aGlzLl92YWx1ZUJlZm9yZUF1dG9TZWxlY3Rpb249dGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlKSx0aGlzLl9wZW5kaW5nQXV0b3NlbGVjdGVkT3B0aW9uPXRoaXMuYWN0aXZlT3B0aW9uLHRoaXMuX2Fzc2lnbk9wdGlvblZhbHVlKHRoaXMuYWN0aXZlT3B0aW9uLnZhbHVlKSkpfX1faGFuZGxlSW5wdXQoZSl7bGV0IGk9ZS50YXJnZXQscj1pLnZhbHVlOyJudW1iZXIiPT09aS50eXBlJiYocj0iIj09cj9udWxsOnBhcnNlRmxvYXQocikpLHRoaXMuX3ByZXZpb3VzVmFsdWUhPT1yJiYodGhpcy5fcHJldmlvdXNWYWx1ZT1yLHRoaXMuX3BlbmRpbmdBdXRvc2VsZWN0ZWRPcHRpb249bnVsbCx0aGlzLl9vbkNoYW5nZShyKSx0aGlzLl9jYW5PcGVuKCkmJnRoaXMuX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1lLnRhcmdldCYmdGhpcy5vcGVuUGFuZWwoKSl9X2hhbmRsZUZvY3VzKCl7dGhpcy5fY2FuT3Blbk9uTmV4dEZvY3VzP3RoaXMuX2Nhbk9wZW4oKSYmKHRoaXMuX3ByZXZpb3VzVmFsdWU9dGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlLHRoaXMuX2F0dGFjaE92ZXJsYXkoKSx0aGlzLl9mbG9hdExhYmVsKCEwKSk6dGhpcy5fY2FuT3Blbk9uTmV4dEZvY3VzPSEwfV9oYW5kbGVDbGljaygpe3RoaXMuX2Nhbk9wZW4oKSYmIXRoaXMucGFuZWxPcGVuJiZ0aGlzLm9wZW5QYW5lbCgpfV9mbG9hdExhYmVsKGU9ITEpe3RoaXMuX2Zvcm1GaWVsZCYmImF1dG8iPT09dGhpcy5fZm9ybUZpZWxkLmZsb2F0TGFiZWwmJihlP3RoaXMuX2Zvcm1GaWVsZC5fYW5pbWF0ZUFuZExvY2tMYWJlbCgpOnRoaXMuX2Zvcm1GaWVsZC5mbG9hdExhYmVsPSJhbHdheXMiLHRoaXMuX21hbnVhbGx5RmxvYXRpbmdMYWJlbD0hMCl9X3Jlc2V0TGFiZWwoKXt0aGlzLl9tYW51YWxseUZsb2F0aW5nTGFiZWwmJih0aGlzLl9mb3JtRmllbGQmJih0aGlzLl9mb3JtRmllbGQuZmxvYXRMYWJlbD0iYXV0byIpLHRoaXMuX21hbnVhbGx5RmxvYXRpbmdMYWJlbD0hMSl9X3N1YnNjcmliZVRvQ2xvc2luZ0FjdGlvbnMoKXtyZXR1cm4gdG4odGhpcy5fem9uZS5vblN0YWJsZS5waXBlKEx0KDEpKSx0aGlzLmF1dG9jb21wbGV0ZS5vcHRpb25zLmNoYW5nZXMucGlwZShEdCgoKT0+dGhpcy5fcG9zaXRpb25TdHJhdGVneS5yZWFwcGx5TGFzdFBvc2l0aW9uKCkpLFJzKDApKSkucGlwZShKbigoKT0+KHRoaXMuX3pvbmUucnVuKCgpPT57bGV0IHI9dGhpcy5wYW5lbE9wZW47dGhpcy5fcmVzZXRBY3RpdmVJdGVtKCksdGhpcy5hdXRvY29tcGxldGUuX3NldFZpc2liaWxpdHkoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCksdGhpcy5wYW5lbE9wZW4mJnRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKSxyIT09dGhpcy5wYW5lbE9wZW4mJih0aGlzLnBhbmVsT3Blbj90aGlzLmF1dG9jb21wbGV0ZS5vcGVuZWQuZW1pdCgpOnRoaXMuYXV0b2NvbXBsZXRlLmNsb3NlZC5lbWl0KCkpfSksdGhpcy5wYW5lbENsb3NpbmdBY3Rpb25zKSksTHQoMSkpLnN1YnNjcmliZShyPT50aGlzLl9zZXRWYWx1ZUFuZENsb3NlKHIpKX1fZGVzdHJveVBhbmVsKCl7dGhpcy5fb3ZlcmxheVJlZiYmKHRoaXMuY2xvc2VQYW5lbCgpLHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpLHRoaXMuX292ZXJsYXlSZWY9bnVsbCl9X2Fzc2lnbk9wdGlvblZhbHVlKGUpe2xldCBpPXRoaXMuYXV0b2NvbXBsZXRlJiZ0aGlzLmF1dG9jb21wbGV0ZS5kaXNwbGF5V2l0aD90aGlzLmF1dG9jb21wbGV0ZS5kaXNwbGF5V2l0aChlKTplO3RoaXMuX3VwZGF0ZU5hdGl2ZUlucHV0VmFsdWUoaT8/IiIpfV91cGRhdGVOYXRpdmVJbnB1dFZhbHVlKGUpe3RoaXMuX2Zvcm1GaWVsZD90aGlzLl9mb3JtRmllbGQuX2NvbnRyb2wudmFsdWU9ZTp0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWU9ZSx0aGlzLl9wcmV2aW91c1ZhbHVlPWV9X3NldFZhbHVlQW5kQ2xvc2UoZSl7bGV0IGk9ZT9lLnNvdXJjZTp0aGlzLl9wZW5kaW5nQXV0b3NlbGVjdGVkT3B0aW9uO2kmJih0aGlzLl9jbGVhclByZXZpb3VzU2VsZWN0ZWRPcHRpb24oaSksdGhpcy5fYXNzaWduT3B0aW9uVmFsdWUoaS52YWx1ZSksdGhpcy5fb25DaGFuZ2UoaS52YWx1ZSksdGhpcy5hdXRvY29tcGxldGUuX2VtaXRTZWxlY3RFdmVudChpKSx0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSksdGhpcy5jbG9zZVBhbmVsKCl9X2NsZWFyUHJldmlvdXNTZWxlY3RlZE9wdGlvbihlKXt0aGlzLmF1dG9jb21wbGV0ZS5vcHRpb25zLmZvckVhY2goaT0+e2khPT1lJiZpLnNlbGVjdGVkJiZpLmRlc2VsZWN0KCl9KX1fYXR0YWNoT3ZlcmxheSgpe2xldCBlPXRoaXMuX292ZXJsYXlSZWY7ZT8odGhpcy5fcG9zaXRpb25TdHJhdGVneS5zZXRPcmlnaW4odGhpcy5fZ2V0Q29ubmVjdGVkRWxlbWVudCgpKSxlLnVwZGF0ZVNpemUoe3dpZHRoOnRoaXMuX2dldFBhbmVsV2lkdGgoKX0pKToodGhpcy5fcG9ydGFsPW5ldyBUbyh0aGlzLmF1dG9jb21wbGV0ZS50ZW1wbGF0ZSx0aGlzLl92aWV3Q29udGFpbmVyUmVmLHtpZDp0aGlzLl9mb3JtRmllbGQ/LmdldExhYmVsSWQoKX0pLGU9dGhpcy5fb3ZlcmxheS5jcmVhdGUodGhpcy5fZ2V0T3ZlcmxheUNvbmZpZygpKSx0aGlzLl9vdmVybGF5UmVmPWUsdGhpcy5faGFuZGxlT3ZlcmxheUV2ZW50cyhlKSx0aGlzLl92aWV3cG9ydFN1YnNjcmlwdGlvbj10aGlzLl92aWV3cG9ydFJ1bGVyLmNoYW5nZSgpLnN1YnNjcmliZSgoKT0+e3RoaXMucGFuZWxPcGVuJiZlJiZlLnVwZGF0ZVNpemUoe3dpZHRoOnRoaXMuX2dldFBhbmVsV2lkdGgoKX0pfSkpLGUmJiFlLmhhc0F0dGFjaGVkKCkmJihlLmF0dGFjaCh0aGlzLl9wb3J0YWwpLHRoaXMuX2Nsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uPXRoaXMuX3N1YnNjcmliZVRvQ2xvc2luZ0FjdGlvbnMoKSk7bGV0IGk9dGhpcy5wYW5lbE9wZW47dGhpcy5hdXRvY29tcGxldGUuX3NldFZpc2liaWxpdHkoKSx0aGlzLmF1dG9jb21wbGV0ZS5faXNPcGVuPXRoaXMuX292ZXJsYXlBdHRhY2hlZD0hMCx0aGlzLmF1dG9jb21wbGV0ZS5fc2V0Q29sb3IodGhpcy5fZm9ybUZpZWxkPy5jb2xvciksdGhpcy5wYW5lbE9wZW4mJmkhPT10aGlzLnBhbmVsT3BlbiYmdGhpcy5hdXRvY29tcGxldGUub3BlbmVkLmVtaXQoKX1fZ2V0T3ZlcmxheUNvbmZpZygpe3JldHVybiBuZXcgZWwoe3Bvc2l0aW9uU3RyYXRlZ3k6dGhpcy5fZ2V0T3ZlcmxheVBvc2l0aW9uKCksc2Nyb2xsU3RyYXRlZ3k6dGhpcy5fc2Nyb2xsU3RyYXRlZ3koKSx3aWR0aDp0aGlzLl9nZXRQYW5lbFdpZHRoKCksZGlyZWN0aW9uOnRoaXMuX2Rpcj8/dm9pZCAwLHBhbmVsQ2xhc3M6dGhpcy5fZGVmYXVsdHM/Lm92ZXJsYXlQYW5lbENsYXNzfSl9X2dldE92ZXJsYXlQb3NpdGlvbigpe2xldCBlPXRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuX2dldENvbm5lY3RlZEVsZW1lbnQoKSkud2l0aEZsZXhpYmxlRGltZW5zaW9ucyghMSkud2l0aFB1c2goITEpO3JldHVybiB0aGlzLl9zZXRTdHJhdGVneVBvc2l0aW9ucyhlKSx0aGlzLl9wb3NpdGlvblN0cmF0ZWd5PWUsZX1fc2V0U3RyYXRlZ3lQb3NpdGlvbnMoZSl7bGV0IGEsaT1be29yaWdpblg6InN0YXJ0IixvcmlnaW5ZOiJib3R0b20iLG92ZXJsYXlYOiJzdGFydCIsb3ZlcmxheVk6InRvcCJ9LHtvcmlnaW5YOiJlbmQiLG9yaWdpblk6ImJvdHRvbSIsb3ZlcmxheVg6ImVuZCIsb3ZlcmxheVk6InRvcCJ9XSxyPXRoaXMuX2Fib3ZlQ2xhc3Msbz1be29yaWdpblg6InN0YXJ0IixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlYOiJzdGFydCIsb3ZlcmxheVk6ImJvdHRvbSIscGFuZWxDbGFzczpyfSx7b3JpZ2luWDoiZW5kIixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlYOiJlbmQiLG92ZXJsYXlZOiJib3R0b20iLHBhbmVsQ2xhc3M6cn1dO2E9ImFib3ZlIj09PXRoaXMucG9zaXRpb24/bzoiYmVsb3ciPT09dGhpcy5wb3NpdGlvbj9pOlsuLi5pLC4uLm9dLGUud2l0aFBvc2l0aW9ucyhhKX1fZ2V0Q29ubmVjdGVkRWxlbWVudCgpe3JldHVybiB0aGlzLmNvbm5lY3RlZFRvP3RoaXMuY29ubmVjdGVkVG8uZWxlbWVudFJlZjp0aGlzLl9mb3JtRmllbGQ/dGhpcy5fZm9ybUZpZWxkLmdldENvbm5lY3RlZE92ZXJsYXlPcmlnaW4oKTp0aGlzLl9lbGVtZW50fV9nZXRQYW5lbFdpZHRoKCl7cmV0dXJuIHRoaXMuYXV0b2NvbXBsZXRlLnBhbmVsV2lkdGh8fHRoaXMuX2dldEhvc3RXaWR0aCgpfV9nZXRIb3N0V2lkdGgoKXtyZXR1cm4gdGhpcy5fZ2V0Q29ubmVjdGVkRWxlbWVudCgpLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGh9X3Jlc2V0QWN0aXZlSXRlbSgpe2xldCBlPXRoaXMuYXV0b2NvbXBsZXRlO2UuYXV0b0FjdGl2ZUZpcnN0T3B0aW9uP2UuX2tleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk6ZS5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKC0xKX1fY2FuT3Blbigpe2xldCBlPXRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudDtyZXR1cm4hZS5yZWFkT25seSYmIWUuZGlzYWJsZWQmJiF0aGlzLl9hdXRvY29tcGxldGVEaXNhYmxlZH1fZ2V0V2luZG93KCl7cmV0dXJuIHRoaXMuX2RvY3VtZW50Py5kZWZhdWx0Vmlld3x8d2luZG93fV9zY3JvbGxUb09wdGlvbihlKXtsZXQgaT10aGlzLmF1dG9jb21wbGV0ZSxyPXoxKGUsaS5vcHRpb25zLGkub3B0aW9uR3JvdXBzKTtpZigwPT09ZSYmMT09PXIpaS5fc2V0U2Nyb2xsVG9wKDApO2Vsc2UgaWYoaS5wYW5lbCl7bGV0IG89aS5vcHRpb25zLnRvQXJyYXkoKVtlXTtpZihvKXtsZXQgYT1vLl9nZXRIb3N0RWxlbWVudCgpLHM9VTEoYS5vZmZzZXRUb3AsYS5vZmZzZXRIZWlnaHQsaS5fZ2V0U2Nyb2xsVG9wKCksaS5wYW5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCk7aS5fc2V0U2Nyb2xsVG9wKHMpfX19X2hhbmRsZU92ZXJsYXlFdmVudHMoZSl7ZS5rZXlkb3duRXZlbnRzKCkuc3Vic2NyaWJlKGk9PnsoMjc9PT1pLmtleUNvZGUmJiFPcihpKXx8Mzg9PT1pLmtleUNvZGUmJk9yKGksImFsdEtleSIpKSYmKHRoaXMuX3BlbmRpbmdBdXRvc2VsZWN0ZWRPcHRpb24mJih0aGlzLl91cGRhdGVOYXRpdmVJbnB1dFZhbHVlKHRoaXMuX3ZhbHVlQmVmb3JlQXV0b1NlbGVjdGlvbj8/IiIpLHRoaXMuX3BlbmRpbmdBdXRvc2VsZWN0ZWRPcHRpb249bnVsbCksdGhpcy5fY2xvc2VLZXlFdmVudFN0cmVhbS5uZXh0KCksdGhpcy5fcmVzZXRBY3RpdmVJdGVtKCksaS5zdG9wUHJvcGFnYXRpb24oKSxpLnByZXZlbnREZWZhdWx0KCkpfSksZS5vdXRzaWRlUG9pbnRlckV2ZW50cygpLnN1YnNjcmliZSgpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSxDKE9pKSxDKGVpKSxDKG90KSxDKFF0KSxDKCR0ZSksQyh6aSw4KSxDKFBoLDkpLEMoTnQsOCksQyhXYSksQyhLdGUsOCkpfSxuLlx1MDI3NWRpcj1NZSh7dHlwZTpuLGlucHV0czp7YXV0b2NvbXBsZXRlOlsibWF0QXV0b2NvbXBsZXRlIiwiYXV0b2NvbXBsZXRlIl0scG9zaXRpb246WyJtYXRBdXRvY29tcGxldGVQb3NpdGlvbiIsInBvc2l0aW9uIl0sY29ubmVjdGVkVG86WyJtYXRBdXRvY29tcGxldGVDb25uZWN0ZWRUbyIsImNvbm5lY3RlZFRvIl0sYXV0b2NvbXBsZXRlQXR0cmlidXRlOlsiYXV0b2NvbXBsZXRlIiwiYXV0b2NvbXBsZXRlQXR0cmlidXRlIl0sYXV0b2NvbXBsZXRlRGlzYWJsZWQ6WyJtYXRBdXRvY29tcGxldGVEaXNhYmxlZCIsImF1dG9jb21wbGV0ZURpc2FibGVkIl19LGZlYXR1cmVzOltxdF19KSxufSkoKSxLeD0oKCk9PntjbGFzcyBuIGV4dGVuZHMgekxle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9hYm92ZUNsYXNzPSJtYXQtbWRjLWF1dG9jb21wbGV0ZS1wYW5lbC1hYm92ZSJ9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4odHx8KHQ9WG4obikpKShpfHxuKX19KCksbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siaW5wdXQiLCJtYXRBdXRvY29tcGxldGUiLCIiXSxbInRleHRhcmVhIiwibWF0QXV0b2NvbXBsZXRlIiwiIl1dLGhvc3RBdHRyczpbMSwibWF0LW1kYy1hdXRvY29tcGxldGUtdHJpZ2dlciJdLGhvc3RWYXJzOjcsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MSZlJiZBKCJmb2N1c2luIixmdW5jdGlvbigpe3JldHVybiBpLl9oYW5kbGVGb2N1cygpfSkoImJsdXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGkuX29uVG91Y2hlZCgpfSkoImlucHV0IixmdW5jdGlvbihvKXtyZXR1cm4gaS5faGFuZGxlSW5wdXQobyl9KSgia2V5ZG93biIsZnVuY3Rpb24obyl7cmV0dXJuIGkuX2hhbmRsZUtleWRvd24obyl9KSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGkuX2hhbmRsZUNsaWNrKCl9KSwyJmUmJkJlKCJhdXRvY29tcGxldGUiLGkuYXV0b2NvbXBsZXRlQXR0cmlidXRlKSgicm9sZSIsaS5hdXRvY29tcGxldGVEaXNhYmxlZD9udWxsOiJjb21ib2JveCIpKCJhcmlhLWF1dG9jb21wbGV0ZSIsaS5hdXRvY29tcGxldGVEaXNhYmxlZD9udWxsOiJsaXN0IikoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIsaS5wYW5lbE9wZW4mJmkuYWN0aXZlT3B0aW9uP2kuYWN0aXZlT3B0aW9uLmlkOm51bGwpKCJhcmlhLWV4cGFuZGVkIixpLmF1dG9jb21wbGV0ZURpc2FibGVkP251bGw6aS5wYW5lbE9wZW4udG9TdHJpbmcoKSkoImFyaWEtb3ducyIsaS5hdXRvY29tcGxldGVEaXNhYmxlZHx8IWkucGFuZWxPcGVufHxudWxsPT1pLmF1dG9jb21wbGV0ZT9udWxsOmkuYXV0b2NvbXBsZXRlLmlkKSgiYXJpYS1oYXNwb3B1cCIsaS5hdXRvY29tcGxldGVEaXNhYmxlZD9udWxsOiJsaXN0Ym94Iil9LGV4cG9ydEFzOlsibWF0QXV0b2NvbXBsZXRlVHJpZ2dlciJdLGZlYXR1cmVzOltWdChbQkxlXSksWGVdfSksbn0pKCkscEE9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe3Byb3ZpZGVyczpbSExlXSxpbXBvcnRzOltEbyxtZyxkbixEZSxJYyxtZyxkbl19KSxufSkoKSxnXz0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy52YWx1ZT0iIix0aGlzLnBsYWNlaG9sZGVyPSIifW9uSW5wdXRLZXlVcChlKXsiRW50ZXIiPT09ZS5rZXkmJnRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlci5jbG9zZVBhbmVsKCl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInRiLWZpbHRlci1pbnB1dCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJlVlKEt4LDUpLDImZSl7bGV0IHI7YmUocj12ZSgpKSYmKGkuYXV0b2NvbXBsZXRlVHJpZ2dlcj1yLmZpcnN0KX19LGlucHV0czp7dmFsdWU6InZhbHVlIixtYXRBdXRvY29tcGxldGU6Im1hdEF1dG9jb21wbGV0ZSIscGxhY2Vob2xkZXI6InBsYWNlaG9sZGVyIn0sZGVjbHM6Mix2YXJzOjQsY29uc3RzOltbInN2Z0ljb24iLCJzZWFyY2hfMjRweCJdLFsidHlwZSIsInRleHQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsInBsYWNlaG9sZGVyIiwibWF0QXV0b2NvbXBsZXRlIiwibWF0QXV0b2NvbXBsZXRlRGlzYWJsZWQiLCJ2YWx1ZSIsImtleXVwIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoaygwLCJtYXQtaWNvbiIsMCksZigxLCJpbnB1dCIsMSksQSgia2V5dXAiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uSW5wdXRLZXlVcChvKX0pLGcoKSksMiZlJiYodigxKSxiKCJwbGFjZWhvbGRlciIsaS5wbGFjZWhvbGRlcikoIm1hdEF1dG9jb21wbGV0ZSIsaS5tYXRBdXRvY29tcGxldGUpKCJtYXRBdXRvY29tcGxldGVEaXNhYmxlZCIsIWkubWF0QXV0b2NvbXBsZXRlKSgidmFsdWUiLGkudmFsdWUpKX0sZGVwZW5kZW5jaWVzOltLeCxibl0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOjEzcHg7bWluLXdpZHRoOjIxMHB4fW1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2ZsZXg6bm9uZTttYXJnaW4tcmlnaHQ6NXB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7Y2FyZXQtY29sb3I6Y3VycmVudENvbG9yO2NvbG9yOmN1cnJlbnRDb2xvcjtmb250OmluaGVyaXQ7Ym9yZGVyOm5vbmU7b3V0bGluZTpub25lO3BhZGRpbmc6MDtmbGV4LWdyb3c6MX0iXX0pLG59KSgpLFVMZT1bImNvbnRhaW5lciJdLEp4PSgoKT0+KGZ1bmN0aW9uKG4pe25bbi5OT05FPTBdPSJOT05FIixuW24uTEVGVD0xXT0iTEVGVCIsbltuLlJJR0hUPTJdPSJSSUdIVCJ9KEp4fHwoSng9e30pKSxKeCkpKCksdG5lPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLnRpY2tDb3VudD0yMCx0aGlzLmVuYWJsZWQ9ITAsdGhpcy5yYW5nZVZhbHVlc0NoYW5nZWQ9bmV3IEYsdGhpcy5zaW5nbGVWYWx1ZUNoYW5nZWQ9bmV3IEYsdGhpcy5Qb3NpdGlvbj1KeH10aHVtYkRyYWcoKXt0aGlzLnJhbmdlVmFsdWVzQ2hhbmdlZC5lbWl0KHtsb3dlclZhbHVlOnRoaXMubG93ZXJWYWx1ZSx1cHBlclZhbHVlOnRoaXMudXBwZXJWYWx1ZSxzb3VyY2U6IlNMSURFUiJ9KX1jYWxjdWxhdGVTdGVwU2l6ZSgpe3JldHVybiBudWxsPT09dGhpcy50aWNrQ291bnR8fHRoaXMudGlja0NvdW50PD0wPzE6KHRoaXMubWF4LXRoaXMubWluKS90aGlzLnRpY2tDb3VudH1nZXRDbGlwcGVkVmFsdWUoZSl7cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGUsdGhpcy5taW4pLHRoaXMubWF4KX1tYXliZU5vdGlmeU5leHRSYW5nZVZhbHVlcyhlLGkpe2xldFtyLG9dPWUuc29ydCgoYSxzKT0+YS1zKTsodGhpcy5sb3dlclZhbHVlIT09cnx8dGhpcy51cHBlclZhbHVlIT09bykmJnRoaXMucmFuZ2VWYWx1ZXNDaGFuZ2VkLmVtaXQoe2xvd2VyVmFsdWU6cix1cHBlclZhbHVlOm8sc291cmNlOml9KX1oYW5kbGVJbnB1dENoYW5nZShlLGkpe2xldCBvPXRoaXMuZ2V0Q2xpcHBlZFZhbHVlKE51bWJlcihlLnRhcmdldC52YWx1ZSkpO2lzTmFOKG8pfHx0aGlzLm1heWJlTm90aWZ5TmV4dFJhbmdlVmFsdWVzKGk9PT1KeC5MRUZUP1tvLHRoaXMudXBwZXJWYWx1ZV06W3RoaXMubG93ZXJWYWx1ZSxvXSwiVEVYVCIpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJ0Yi1yYW5nZS1pbnB1dCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJlVlKFVMZSw1LHhlKSwyJmUpe2xldCByO2JlKHI9dmUoKSkmJihpLmNvbnRhaW5lcj1yLmZpcnN0KX19LGlucHV0czp7bWluOiJtaW4iLG1heDoibWF4Iixsb3dlclZhbHVlOiJsb3dlclZhbHVlIix1cHBlclZhbHVlOiJ1cHBlclZhbHVlIix0aWNrQ291bnQ6InRpY2tDb3VudCIsZW5hYmxlZDoiZW5hYmxlZCJ9LG91dHB1dHM6e3JhbmdlVmFsdWVzQ2hhbmdlZDoicmFuZ2VWYWx1ZXNDaGFuZ2VkIixzaW5nbGVWYWx1ZUNoYW5nZWQ6InNpbmdsZVZhbHVlQ2hhbmdlZCJ9LGRlY2xzOjUsdmFyczo5LGNvbnN0czpbWyJ0eXBlIiwibnVtYmVyIiwxLCJsb3dlci1pbnB1dCIsMywiZGlzYWJsZWQiLCJ2YWx1ZSIsImNoYW5nZSJdLFsidHlwZSIsIm51bWJlciIsMSwidXBwZXItaW5wdXQiLDMsImRpc2FibGVkIiwidmFsdWUiLCJjaGFuZ2UiXSxbMSwic2xpZGVyIiwzLCJtaW4iLCJtYXgiLCJzdGVwIl0sWyJtYXRTbGlkZXJTdGFydFRodW1iIiwiIiwzLCJuZ01vZGVsIiwidmFsdWVDaGFuZ2UiLCJuZ01vZGVsQ2hhbmdlIl0sWyJtYXRTbGlkZXJFbmRUaHVtYiIsIiIsMywibmdNb2RlbCIsInZhbHVlQ2hhbmdlIiwibmdNb2RlbENoYW5nZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwiaW5wdXQiLDApLEEoImNoYW5nZSIsZnVuY3Rpb24obyl7cmV0dXJuIGkuaGFuZGxlSW5wdXRDaGFuZ2UobyxpLlBvc2l0aW9uLkxFRlQpfSksZygpLGYoMSwiaW5wdXQiLDEpLEEoImNoYW5nZSIsZnVuY3Rpb24obyl7cmV0dXJuIGkuaGFuZGxlSW5wdXRDaGFuZ2UobyxpLlBvc2l0aW9uLlJJR0hUKX0pLGcoKSxmKDIsIm1hdC1zbGlkZXIiLDIpKDMsImlucHV0IiwzKSxBKCJ2YWx1ZUNoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gaS50aHVtYkRyYWcoKX0pKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihvKXtyZXR1cm4gaS5sb3dlclZhbHVlPW99KSxnKCksZig0LCJpbnB1dCIsNCksQSgidmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIGkudGh1bWJEcmFnKCl9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24obyl7cmV0dXJuIGkudXBwZXJWYWx1ZT1vfSksZygpKCkpLDImZSYmKGIoImRpc2FibGVkIiwhaS5lbmFibGVkKSgidmFsdWUiLGkubG93ZXJWYWx1ZSksdigxKSxiKCJkaXNhYmxlZCIsIWkuZW5hYmxlZCkoInZhbHVlIixpLnVwcGVyVmFsdWUpLHYoMSksYigibWluIixpLm1pbikoIm1heCIsaS5tYXgpKCJzdGVwIixpLmNhbGN1bGF0ZVN0ZXBTaXplKCkpLHYoMSksYigibmdNb2RlbCIsaS5sb3dlclZhbHVlKSx2KDEpLGIoIm5nTW9kZWwiLGkudXBwZXJWYWx1ZSkpfSxkZXBlbmRlbmNpZXM6W0p1LHZOLFV1LHhnLGl5XSxzdHlsZXM6WydbX25naG9zdC0lQ09NUCVde2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmlubGluZS1ncmlkO2dyaWQtZ2FwOjEwcHg7Z3JpZC10ZW1wbGF0ZS1hcmVhczoibG93ZXItaW5wdXQgdXBwZXItaW5wdXQiICJzbGlkZXIgc2xpZGVyIjtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtmb250LXNpemU6MDttaW4td2lkdGg6MTAwcHh9aW5wdXRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6aW5oZXJpdDtib3JkZXItc3R5bGU6c29saWQ7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOmluaGVyaXQ7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjEwMCV9Lmxvd2VyLWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtncmlkLWFyZWE6bG93ZXItaW5wdXR9LnVwcGVyLWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtncmlkLWFyZWE6dXBwZXItaW5wdXQ7anVzdGlmeS1zZWxmOmZsZXgtZW5kfS5zbGlkZXJbX25nY29udGVudC0lQ09NUCVde2dyaWQtYXJlYTpzbGlkZXJ9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKTtmdW5jdGlvbiBHTGUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJ0Yi1maWx0ZXItaW5wdXQiLDkpLEEoImtleXVwIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygyKS5kaXNjcmV0ZVZhbHVlS2V5VXAocikpfSksZygpfTImbiYmYigidmFsdWUiLHcoMikuZGlzY3JldGVWYWx1ZUZpbHRlcil9ZnVuY3Rpb24gV0xlKG4sdCl7MSZuJiYoZigwLCJkaXYiLDEwKSxUKDEsIiBObyBNYXRjaGluZyBWYWx1ZXMgIiksZygpKX1mdW5jdGlvbiBxTGUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJkaXYiLDEzKSxBKCJjbGljayIsZnVuY3Rpb24ocil7cmV0dXJuIHIuc3RvcFByb3BhZ2F0aW9uKCl9KSxmKDEsIm1hdC1jaGVja2JveCIsMyksQSgiY2hhbmdlIixmdW5jdGlvbigpe2xldCBvPW5lKGUpLiRpbXBsaWNpdDtyZXR1cm4gaWUodygzKS5kaXNjcmV0ZUZpbHRlckNoYW5nZWQuZW1pdChvKSl9KSxmKDIsInNwYW4iKSxUKDMpLGcoKSgpKCl9aWYoMiZuKXtsZXQgZT10LiRpbXBsaWNpdCxpPXcoMyk7digxKSxiKCJjaGVja2VkIixpLmZpbHRlci5maWx0ZXJWYWx1ZXMuaW5jbHVkZXMoZSkpLHYoMiksa3QoZSl9fWZ1bmN0aW9uIFhMZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2IiwxMSksUygxLHFMZSw0LDIsImRpdiIsMTIpLGcoKSksMiZuKXtsZXQgZT13KDIpO3YoMSksYigibmdGb3JPZiIsZS5nZXRQb3NzaWJsZVZhbHVlcygpKX19ZnVuY3Rpb24gWUxlKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiLDQpKDEsImRpdiIsNSksUygyLEdMZSwxLDEsInRiLWZpbHRlci1pbnB1dCIsNiksZygpLFMoMyxXTGUsMiwwLCJkaXYiLDcpLFMoNCxYTGUsMiwxLCJkaXYiLDgpLGcoKSksMiZuKXtsZXQgZT13KCk7digyKSxiKCJuZ0lmIixlLmZpbHRlci5wb3NzaWJsZVZhbHVlcyksdigxKSxiKCJuZ0lmIiwhZS5nZXRQb3NzaWJsZVZhbHVlcygpLmxlbmd0aCksdigxKSxiKCJuZ0lmIixlLmdldFBvc3NpYmxlVmFsdWVzKCkubGVuZ3RoKX19ZnVuY3Rpb24gUUxlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiZGl2IiwxNCksQSgiY2xpY2siLGZ1bmN0aW9uKHIpe3JldHVybiByLnN0b3BQcm9wYWdhdGlvbigpfSksZigxLCJ0Yi1yYW5nZS1pbnB1dCIsMTUpLEEoInJhbmdlVmFsdWVzQ2hhbmdlZCIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoKS5pbnRlcnZhbEZpbHRlckNoYW5nZWQuZW1pdChyKSl9KSxnKCkoKX1pZigyJm4pe2xldCBlPXcoKTt2KDEpLGIoIm1pbiIsZS5maWx0ZXIubWluVmFsdWUpKCJtYXgiLGUuZmlsdGVyLm1heFZhbHVlKSgibG93ZXJWYWx1ZSIsZS5maWx0ZXIuZmlsdGVyTG93ZXJWYWx1ZSkoInVwcGVyVmFsdWUiLGUuZmlsdGVyLmZpbHRlclVwcGVyVmFsdWUpfX12YXIgaEE9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMuRG9tYWluVHlwZT1pbyx0aGlzLmRpc2NyZXRlVmFsdWVGaWx0ZXI9IiIsdGhpcy5kaXNjcmV0ZUZpbHRlckNoYW5nZWQ9bmV3IEYsdGhpcy5pbnRlcnZhbEZpbHRlckNoYW5nZWQ9bmV3IEYsdGhpcy5pbmNsdWRlVW5kZWZpbmVkVG9nZ2xlZD1uZXcgRn1nZXRQb3NzaWJsZVZhbHVlcygpe2xldCBlPXRoaXMuZmlsdGVyLnBvc3NpYmxlVmFsdWVzPz9bXTtyZXR1cm4gdGhpcy5kaXNjcmV0ZVZhbHVlRmlsdGVyP2UuZmlsdGVyKGk9PmkudG9TdHJpbmcoKS5tYXRjaCh0aGlzLmRpc2NyZXRlVmFsdWVGaWx0ZXIpKTplfWRpc2NyZXRlVmFsdWVLZXlVcChlKXt0aGlzLmRpc2NyZXRlVmFsdWVGaWx0ZXI9ZS50YXJnZXQudmFsdWV9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInRiLWRhdGEtdGFibGUtZmlsdGVyIl1dLGlucHV0czp7ZmlsdGVyOiJmaWx0ZXIifSxvdXRwdXRzOntkaXNjcmV0ZUZpbHRlckNoYW5nZWQ6ImRpc2NyZXRlRmlsdGVyQ2hhbmdlZCIsaW50ZXJ2YWxGaWx0ZXJDaGFuZ2VkOiJpbnRlcnZhbEZpbHRlckNoYW5nZWQiLGluY2x1ZGVVbmRlZmluZWRUb2dnbGVkOiJpbmNsdWRlVW5kZWZpbmVkVG9nZ2xlZCJ9LGRlY2xzOjUsdmFyczozLGNvbnN0czpbWzEsImZpbHRlci1kaWFsb2ciXSxbImNsYXNzIiwiZmlsdGVyLWNvbnRhaW5lciIsNCwibmdJZiJdLFsiY2xhc3MiLCJmaWx0ZXItY29udGFpbmVyIiwiZGlzYWJsZVJpcHBsZSIsIiIsMywiY2xpY2siLDQsIm5nSWYiXSxbMywiY2hlY2tlZCIsImNoYW5nZSJdLFsxLCJmaWx0ZXItY29udGFpbmVyIl0sWzEsImlucHV0LWNvbnRhaW5lciJdLFsicGxhY2Vob2xkZXIiLCJGaWx0ZXIgRGlzY3JldGUgVmFsdWVzIChyZWdleCkiLDMsInZhbHVlIiwia2V5dXAiLDQsIm5nSWYiXSxbImNsYXNzIiwibm8tbWF0Y2hlcyIsNCwibmdJZiJdLFsiY2xhc3MiLCJkaXNjcmV0ZS1maWx0ZXJzLWNvbnRhaW5lciIsNCwibmdJZiJdLFsicGxhY2Vob2xkZXIiLCJGaWx0ZXIgRGlzY3JldGUgVmFsdWVzIChyZWdleCkiLDMsInZhbHVlIiwia2V5dXAiXSxbMSwibm8tbWF0Y2hlcyJdLFsxLCJkaXNjcmV0ZS1maWx0ZXJzLWNvbnRhaW5lciJdLFsiY2xhc3MiLCJkaXNjcmV0ZS12YWx1ZSIsMywiY2xpY2siLDQsIm5nRm9yIiwibmdGb3JJbmRleCIsIm5nRm9yT2YiXSxbMSwiZGlzY3JldGUtdmFsdWUiLDMsImNsaWNrIl0sWyJkaXNhYmxlUmlwcGxlIiwiIiwxLCJmaWx0ZXItY29udGFpbmVyIiwzLCJjbGljayJdLFsxLCJyYW5nZS1pbnB1dCIsMywibWluIiwibWF4IiwibG93ZXJWYWx1ZSIsInVwcGVyVmFsdWUiLCJyYW5nZVZhbHVlc0NoYW5nZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImRpdiIsMCksUygxLFlMZSw1LDMsImRpdiIsMSksUygyLFFMZSwyLDQsImRpdiIsMiksZigzLCJtYXQtY2hlY2tib3giLDMpLEEoImNoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gaS5pbmNsdWRlVW5kZWZpbmVkVG9nZ2xlZC5lbWl0KCl9KSxUKDQsIkluY2x1ZGUgVW5kZWZpbmVkIiksZygpKCkpLDImZSYmKHYoMSksYigibmdJZiIsaS5maWx0ZXIudHlwZT09PWkuRG9tYWluVHlwZS5ESVNDUkVURSksdigxKSxiKCJuZ0lmIixpLmZpbHRlci50eXBlPT09aS5Eb21haW5UeXBlLklOVEVSVkFMKSx2KDEpLGIoImNoZWNrZWQiLGkuZmlsdGVyLmluY2x1ZGVVbmRlZmluZWQpKX0sZGVwZW5kZW5jaWVzOltubixOZSx4cyxnXyx0bmVdLHN0eWxlczpbIi5maWx0ZXItZGlhbG9nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjE2cHggOHB4O2JvcmRlci1yYWRpdXM6NHB4O2JvcmRlcjoxcHggc29saWQ7Ym94LXNoYWRvdzowcHggNHB4IDRweCByZ2JhKDAsMCwwLC4yNSk7Ym9yZGVyLWNvbG9yOiNlYmViZWI7YmFja2dyb3VuZC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5maWx0ZXItZGlhbG9nW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmZpbHRlci1kaWFsb2dbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1jb2xvcjojNTU1O2JhY2tncm91bmQtY29sb3I6IzMwMzAzMH0uaW5wdXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tYm90dG9tOjhweH0uZGlzY3JldGUtZmlsdGVycy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde21heC1oZWlnaHQ6MzAwcHg7b3ZlcmZsb3cteTphdXRvfS5uby1tYXRjaGVzW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjhweCAxMnB4fS5maWx0ZXItY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbTo4cHg7bWFyZ2luLWJvdHRvbTo4cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZmlsdGVyLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5maWx0ZXItY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tLWNvbG9yOiM1NTV9LnJhbmdlLWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjRweCA4cHg7d2lkdGg6MjAwcHh9LmRpc2NyZXRlLXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW59LmRpc2NyZXRlLXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgbWF0LWNoZWNrYm94LCAuZGlzY3JldGUtdmFsdWVbX25nY29udGVudC0lQ09NUCVdICAgICAubWRjLWZvcm0tZmllbGQsIC5kaXNjcmV0ZS12YWx1ZVtfbmdjb250ZW50LSVDT01QJV0gICAgIGxhYmVse3dpZHRoOjEwMCV9Il19KSxufSkoKTtmdW5jdGlvbiBaTGUobix0KXsxJm4mJihmKDAsImRpdiIsNSksVCgxLCIgTm8gQWN0aW9ucyBBdmFpbGFibGUgIiksZygpKX1mdW5jdGlvbiBLTGUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJidXR0b24iLDYpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBuZShlKSxpZSh3KCkuY29udGV4dE1lbnVSZW1vdmVDb2x1bW4oKSl9KSxrKDEsIm1hdC1pY29uIiw3KSxUKDIsIlJlbW92ZSAiKSxnKCl9fWZ1bmN0aW9uIEpMZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImJ1dHRvbiIsOCksQSgiY2xpY2siLGZ1bmN0aW9uKCl7bmUoZSk7bGV0IHI9dygpO3JldHVybiBpZShyLnNvcnRCeUhlYWRlci5lbWl0KG51bGw9PXIuY29udGV4dE1lbnVIZWFkZXI/bnVsbDpyLmNvbnRleHRNZW51SGVhZGVyLm5hbWUpKX0pLGsoMSwibWF0LWljb24iLDkpLFQoMiwiU29ydCBEZXNjZW5kaW5nICIpLGcoKX19ZnVuY3Rpb24gJExlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiYnV0dG9uIiw4KSxBKCJjbGljayIsZnVuY3Rpb24oKXtuZShlKTtsZXQgcj13KCk7cmV0dXJuIGllKHIuc29ydEJ5SGVhZGVyLmVtaXQobnVsbD09ci5jb250ZXh0TWVudUhlYWRlcj9udWxsOnIuY29udGV4dE1lbnVIZWFkZXIubmFtZSkpfSksaygxLCJtYXQtaWNvbiIsMTApLFQoMiwiU29ydCBBc2NlbmRpbmcgIiksZygpfX1mdW5jdGlvbiBlM2Uobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJidXR0b24iLDYpLEEoImNsaWNrIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9wZW5GaWx0ZXJNZW51LmVtaXQocikpfSksaygxLCJtYXQtaWNvbiIsMTEpLFQoMiwiIEZpbHRlciAiKSxnKCl9fWZ1bmN0aW9uIHQzZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImJ1dHRvbiIsNiksQSgiY2xpY2siLGZ1bmN0aW9uKHIpe25lKGUpO2xldCBvPXcoKTtyZXR1cm4gaWUoby5vcGVuQ29sdW1uU2VsZWN0b3IuZW1pdCh7ZXZlbnQ6cixpbnNlcnRUbzpvLlNpZGUuTEVGVCxpc1N1Yk1lbnU6ITB9KSl9KSxrKDEsIm1hdC1pY29uIiwxMiksVCgyLCJJbnNlcnQgQ29sdW1uIExlZnQgIiksZygpfX1mdW5jdGlvbiBuM2Uobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJidXR0b24iLDYpLEEoImNsaWNrIixmdW5jdGlvbihyKXtuZShlKTtsZXQgbz13KCk7cmV0dXJuIGllKG8ub3BlbkNvbHVtblNlbGVjdG9yLmVtaXQoe2V2ZW50OnIsaW5zZXJ0VG86by5TaWRlLlJJR0hULGlzU3ViTWVudTohMH0pKX0pLGsoMSwibWF0LWljb24iLDEyKSxUKDIsIkluc2VydCBDb2x1bW4gUmlnaHQgIiksZygpfX12YXIgaW5lPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLmNvbnRleHRNZW51SGVhZGVyPXZvaWQgMCx0aGlzLnJlbW92ZUNvbHVtbj1uZXcgRix0aGlzLnNvcnRCeUhlYWRlcj1uZXcgRix0aGlzLm9wZW5GaWx0ZXJNZW51PW5ldyBGLHRoaXMub3BlbkNvbHVtblNlbGVjdG9yPW5ldyBGLHRoaXMuU2lkZT1tbyx0aGlzLlNvcnRpbmdPcmRlcj1Mcn1pc0NvbnRleHRNZW51RW1wdHkoKXtyZXR1cm4hKHRoaXMuY29udGV4dE1lbnVIZWFkZXI/LnJlbW92YWJsZXx8dGhpcy5jb250ZXh0TWVudUhlYWRlcj8uc29ydGFibGV8fHRoaXMuY2FuQ29udGV4dE1lbnVJbnNlcnQoKXx8dGhpcy5jb250ZXh0TWVudUhlYWRlcj8uZmlsdGVyYWJsZSl9Y2FuQ29udGV4dE1lbnVJbnNlcnQoKXtyZXR1cm4gdGhpcy5zZWxlY3RhYmxlQ29sdW1ucz8ubGVuZ3RoJiZ0aGlzLmNvbnRleHRNZW51SGVhZGVyPy5tb3ZhYmxlJiYiSFBBUkFNIj09PXRoaXMuY29udGV4dE1lbnVIZWFkZXI/LnR5cGV9Y29udGV4dE1lbnVSZW1vdmVDb2x1bW4oKXt2b2lkIDAhPT10aGlzLmNvbnRleHRNZW51SGVhZGVyJiZ0aGlzLnJlbW92ZUNvbHVtbi5lbWl0KHRoaXMuY29udGV4dE1lbnVIZWFkZXIpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJ0Yi1kYXRhLXRhYmxlLWNvbnRleHQtbWVudSJdXSxpbnB1dHM6e2NvbnRleHRNZW51SGVhZGVyOiJjb250ZXh0TWVudUhlYWRlciIsc2VsZWN0YWJsZUNvbHVtbnM6InNlbGVjdGFibGVDb2x1bW5zIixzb3J0aW5nSW5mbzoic29ydGluZ0luZm8ifSxvdXRwdXRzOntyZW1vdmVDb2x1bW46InJlbW92ZUNvbHVtbiIsc29ydEJ5SGVhZGVyOiJzb3J0QnlIZWFkZXIiLG9wZW5GaWx0ZXJNZW51OiJvcGVuRmlsdGVyTWVudSIsb3BlbkNvbHVtblNlbGVjdG9yOiJvcGVuQ29sdW1uU2VsZWN0b3IifSxkZWNsczo4LHZhcnM6Nyxjb25zdHM6W1sxLCJjb250ZXh0LW1lbnUiXSxbImNsYXNzIiwibm8tYWN0aW9ucy1tZXNzYWdlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNvbnRleHQtbWVudS1idXR0b24iLCJtYXQtYnV0dG9uIiwiIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xhc3MiLCJjb250ZXh0LW1lbnUtYnV0dG9uIHNvcnQtYnV0dG9uIiwibWF0LWJ1dHRvbiIsIiIsMywiY2xpY2siLDQsIm5nSWYiXSxbIm1hdC1idXR0b24iLCIiLCJjbGFzcyIsImNvbnRleHQtbWVudS1idXR0b24iLDMsImNsaWNrIiw0LCJuZ0lmIl0sWzEsIm5vLWFjdGlvbnMtbWVzc2FnZSJdLFsibWF0LWJ1dHRvbiIsIiIsMSwiY29udGV4dC1tZW51LWJ1dHRvbiIsMywiY2xpY2siXSxbInN2Z0ljb24iLCJjbG9zZV8yNHB4Il0sWyJtYXQtYnV0dG9uIiwiIiwxLCJjb250ZXh0LW1lbnUtYnV0dG9uIiwic29ydC1idXR0b24iLDMsImNsaWNrIl0sWyJzdmdJY29uIiwiYXJyb3dfZG93bndhcmRfMjRweCJdLFsic3ZnSWNvbiIsImFycm93X3Vwd2FyZF8yNHB4Il0sWyJzdmdJY29uIiwiZmlsdGVyX2FsdF8yNHB4Il0sWyJzdmdJY29uIiwiYWRkXzI0cHgiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImRpdiIsMCksUygxLFpMZSwyLDAsImRpdiIsMSksUygyLEtMZSwzLDAsImJ1dHRvbiIsMiksUygzLEpMZSwzLDAsImJ1dHRvbiIsMyksUyg0LCRMZSwzLDAsImJ1dHRvbiIsMyksUyg1LGUzZSwzLDAsImJ1dHRvbiIsMiksUyg2LHQzZSwzLDAsImJ1dHRvbiIsNCksUyg3LG4zZSwzLDAsImJ1dHRvbiIsNCksZygpKSwyJmUmJih2KDEpLGIoIm5nSWYiLGkuaXNDb250ZXh0TWVudUVtcHR5KCkpLHYoMSksYigibmdJZiIsbnVsbD09aS5jb250ZXh0TWVudUhlYWRlcj9udWxsOmkuY29udGV4dE1lbnVIZWFkZXIucmVtb3ZhYmxlKSx2KDEpLGIoIm5nSWYiLChudWxsPT1pLmNvbnRleHRNZW51SGVhZGVyP251bGw6aS5jb250ZXh0TWVudUhlYWRlci5zb3J0YWJsZSkmJmkuc29ydGluZ0luZm8ub3JkZXI9PT1pLlNvcnRpbmdPcmRlci5BU0NFTkRJTkcmJmkuc29ydGluZ0luZm8ubmFtZT09PShudWxsPT1pLmNvbnRleHRNZW51SGVhZGVyP251bGw6aS5jb250ZXh0TWVudUhlYWRlci5uYW1lKSksdigxKSxiKCJuZ0lmIiwobnVsbD09aS5jb250ZXh0TWVudUhlYWRlcj9udWxsOmkuY29udGV4dE1lbnVIZWFkZXIuc29ydGFibGUpJiYoaS5zb3J0aW5nSW5mby5vcmRlciE9PWkuU29ydGluZ09yZGVyLkFTQ0VORElOR3x8aS5zb3J0aW5nSW5mby5uYW1lIT09KG51bGw9PWkuY29udGV4dE1lbnVIZWFkZXI/bnVsbDppLmNvbnRleHRNZW51SGVhZGVyLm5hbWUpKSksdigxKSxiKCJuZ0lmIixudWxsPT1pLmNvbnRleHRNZW51SGVhZGVyP251bGw6aS5jb250ZXh0TWVudUhlYWRlci5maWx0ZXJhYmxlKSx2KDEpLGIoIm5nSWYiLGkuY2FuQ29udGV4dE1lbnVJbnNlcnQoKSksdigxKSxiKCJuZ0lmIixpLmNhbkNvbnRleHRNZW51SW5zZXJ0KCkpKX0sZGVwZW5kZW5jaWVzOltOZSxibixraV0sc3R5bGVzOlsiLmNvbnRleHQtbWVudVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtib3JkZXItcmFkaXVzOjRweDtib3JkZXI6MXB4IHNvbGlkO2JveC1zaGFkb3c6MHB4IDRweCA0cHggcmdiYSgwLDAsMCwuMjUpO2JvcmRlci1jb2xvcjojZWJlYmViO2JhY2tncm91bmQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuY29udGV4dC1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmNvbnRleHQtbWVudVtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWNvbG9yOiM1NTU7YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfS5jb250ZXh0LW1lbnVbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRleHQtbWVudS1idXR0b25bX25nY29udGVudC0lQ09NUCVde2p1c3RpZnktY29udGVudDpsZWZ0O3dpZHRoOjEwMCU7dGV4dC13cmFwOm5vd3JhcH0uY29udGV4dC1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uby1hY3Rpb25zLW1lc3NhZ2VbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6OHB4O3RleHQtd3JhcDpub3dyYXB9LmNvbnRleHQtbWVudVtfbmdjb250ZW50LSVDT01QJV0gICAuc29ydC1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgICBwYXRoe2ZpbGw6dW5zZXR9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxyM2U9WyJjb250ZXh0TWVudVRlbXBsYXRlIl0sbzNlPVsiZmlsdGVyTW9kYWxUZW1wbGF0ZSJdLGEzZT1bImNvbHVtblNlbGVjdG9yTW9kYWxUZW1wbGF0ZSJdO2Z1bmN0aW9uIHMzZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsInRiLWRhdGEtdGFibGUtY29udGV4dC1tZW51Iiw5KSxBKCJyZW1vdmVDb2x1bW4iLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkub25SZW1vdmVDb2x1bW4ocikpfSkoInNvcnRCeUhlYWRlciIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoKS5zb3J0QnlIZWFkZXIocikpfSkoIm9wZW5GaWx0ZXJNZW51IixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9wZW5GaWx0ZXJNZW51KHIpKX0pKCJvcGVuQ29sdW1uU2VsZWN0b3IiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkub3BlbkNvbHVtblNlbGVjdG9yKHIpKX0pLGcoKX1pZigyJm4pe2xldCBlPXcoKTtiKCJjb250ZXh0TWVudUhlYWRlciIsZS5jb250ZXh0TWVudUhlYWRlcikoInNlbGVjdGFibGVDb2x1bW5zIixlLnNlbGVjdGFibGVDb2x1bW5zKSgic29ydGluZ0luZm8iLGUuc29ydGluZ0luZm8pfX1mdW5jdGlvbiBsM2Uobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJ0Yi1kYXRhLXRhYmxlLWNvbHVtbi1zZWxlY3Rvci1jb21wb25lbnQiLDEwKSxBKCJjb2x1bW5TZWxlY3RlZCIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoKS5vbkNvbHVtbkFkZGVkKHIpKX0pKCJsb2FkQWxsQ29sdW1ucyIsZnVuY3Rpb24oKXtyZXR1cm4gbmUoZSksaWUodygpLmxvYWRBbGxDb2x1bW5zLmVtaXQoKSl9KSxnKCl9aWYoMiZuKXtsZXQgZT13KCk7Yigic2VsZWN0YWJsZUNvbHVtbnMiLGUuc2VsZWN0YWJsZUNvbHVtbnMpKCJudW1Db2x1bW5zTG9hZGVkIixlLm51bUNvbHVtbnNMb2FkZWQpKCJoYXNNb3JlQ29sdW1uc1RvTG9hZCIsZS5oYXNNb3JlQ29sdW1uc1RvTG9hZCl9fWZ1bmN0aW9uIGMzZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsInRiLWRhdGEtdGFibGUtZmlsdGVyIiwxMSksQSgiaW50ZXJ2YWxGaWx0ZXJDaGFuZ2VkIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLmludGVydmFsRmlsdGVyQ2hhbmdlZChyKSl9KSgiZGlzY3JldGVGaWx0ZXJDaGFuZ2VkIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLmRpc2NyZXRlRmlsdGVyQ2hhbmdlZChyKSl9KSgiaW5jbHVkZVVuZGVmaW5lZFRvZ2dsZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIG5lKGUpLGllKHcoKS5pbmNsdWRlVW5kZWZpbmVkVG9nZ2xlZCgpKX0pLGcoKX0yJm4mJmIoImZpbHRlciIsdygpLmdldEN1cnJlbnRDb2x1bW5GaWx0ZXIoKSl9ZnVuY3Rpb24gZDNlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiZGl2IiwxMikoMSwiZGl2IiwxMykoMiwiYnV0dG9uIiwxNCksQSgiY2xpY2siLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkub3BlbkNvbHVtblNlbGVjdG9yKHtldmVudDpyfSkpfSksaygzLCJtYXQtaWNvbiIsMTUpLGcoKSgpKCl9aWYoMiZuKXtsZXQgZT13KCk7digxKSxudCgic21hbGwtYWRkLWJ1dHRvbiIsZS5hZGRDb2x1bW5TaXplPT09ZS5BZGRDb2x1bW5TaXplLlNNQUxMKX19ZnVuY3Rpb24gdTNlKG4sdCl7MSZuJiYoZigwLCJkaXYiLDE2KSxrKDEsIm1hdC1zcGlubmVyIiwxNyksZygpKX12YXIgcDNlPVtbWyIiLCJoZWFkZXIiLCIiXV0sW1siIiwiY29udGVudCIsIiJdXV0saDNlPVsiW2hlYWRlcl0iLCJbY29udGVudF0iXSx4Vj1mdW5jdGlvbihuKXtuLnByZXZlbnREZWZhdWx0KCl9LG1BPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpKXt0aGlzLmN1c3RvbU1vZGFsPWUsdGhpcy52aWV3Q29udGFpbmVyUmVmPWksdGhpcy5sb2FkaW5nPSExLHRoaXMuc2hvdWxkQWRkQm9yZGVycz0hMSx0aGlzLmFkZENvbHVtblNpemU9dnUuREVGQVVMVCx0aGlzLmhlYWRlckNlbGxTdWJzY3JpcHRpb25zPVtdLHRoaXMuY29udGVudENlbGxTdWJzY3JpcHRpb25zPVtdLHRoaXMuY29udGV4dE1lbnVIZWFkZXI9dm9pZCAwLHRoaXMuaW5zZXJ0Q29sdW1uVG89dm9pZCAwLHRoaXMuZmlsdGVyQ29sdW1uPXZvaWQgMCx0aGlzLnNvcnREYXRhQnk9bmV3IEYsdGhpcy5vcmRlckNvbHVtbnM9bmV3IEYsdGhpcy5yZW1vdmVDb2x1bW49bmV3IEYsdGhpcy5hZGRDb2x1bW49bmV3IEYsdGhpcy5hZGRGaWx0ZXI9bmV3IEYsdGhpcy5sb2FkQWxsQ29sdW1ucz1uZXcgRix0aGlzLmhpZ2hsaWdodFNpZGU9bW8uUklHSFQsdGhpcy5Tb3J0aW5nT3JkZXI9THIsdGhpcy5TaWRlPW1vLHRoaXMuQWRkQ29sdW1uU2l6ZT12dX1uZ09uRGVzdHJveSgpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix4ViksdGhpcy5oZWFkZXJDZWxsU3Vic2NyaXB0aW9ucy5mb3JFYWNoKGU9PntlLnVuc3Vic2NyaWJlKCl9KX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnN5bmNIZWFkZXJzKCksdGhpcy5oZWFkZXJDZWxscy5jaGFuZ2VzLnN1YnNjcmliZSh0aGlzLnN5bmNIZWFkZXJzLmJpbmQodGhpcykpLHRoaXMuc3luY0NvbnRlbnQoKSx0aGlzLmNvbnRlbnRDZWxscy5jaGFuZ2VzLnN1YnNjcmliZSh0aGlzLnN5bmNDb250ZW50LmJpbmQodGhpcykpfXN5bmNIZWFkZXJzKCl7dGhpcy5oZWFkZXJDZWxsU3Vic2NyaXB0aW9ucy5mb3JFYWNoKGU9PntlLnVuc3Vic2NyaWJlKCl9KSx0aGlzLmhlYWRlckNlbGxTdWJzY3JpcHRpb25zPVtdLHRoaXMuaGVhZGVyQ2VsbHMuZm9yRWFjaChlPT57dGhpcy5oZWFkZXJDZWxsU3Vic2NyaXB0aW9ucy5wdXNoKGUuZHJhZ1N0YXJ0LnN1YnNjcmliZSh0aGlzLmRyYWdTdGFydC5iaW5kKHRoaXMpKSxlLmRyYWdFbnRlci5zdWJzY3JpYmUodGhpcy5kcmFnRW50ZXIuYmluZCh0aGlzKSksZS5kcmFnRW5kLnN1YnNjcmliZSh0aGlzLmRyYWdFbmQuYmluZCh0aGlzKSksZS5oZWFkZXJDbGlja2VkLnN1YnNjcmliZSh0aGlzLnNvcnRCeUhlYWRlci5iaW5kKHRoaXMpKSxlLmNvbnRleHRNZW51T3BlbmVkLnN1YnNjcmliZSh0aGlzLm9wZW5Db250ZXh0TWVudS5iaW5kKHRoaXMsZS5oZWFkZXIpKSl9KX1zeW5jQ29udGVudCgpe3RoaXMuY29udGVudENlbGxTdWJzY3JpcHRpb25zLmZvckVhY2goZT0+e2UudW5zdWJzY3JpYmUoKX0pLHRoaXMuY29udGVudENlbGxTdWJzY3JpcHRpb25zPXRoaXMuY29udGVudENlbGxzLm1hcChlPT5bZS5jb250ZXh0TWVudU9wZW5lZC5zdWJzY3JpYmUodGhpcy5vcGVuQ29udGV4dE1lbnUuYmluZCh0aGlzLGUuaGVhZGVyKSldKS5mbGF0KCl9c29ydEJ5SGVhZGVyKGUpe3RoaXMuc29ydERhdGFCeS5lbWl0KHRoaXMuc29ydGluZ0luZm8ubmFtZSE9PWV8fHRoaXMuc29ydGluZ0luZm8ub3JkZXIhPT1Mci5BU0NFTkRJTkc/e25hbWU6ZSxvcmRlcjpMci5BU0NFTkRJTkd9OntuYW1lOmUsb3JkZXI6THIuREVTQ0VORElOR30pfWRyYWdTdGFydChlKXt0aGlzLmRyYWdnaW5nSGVhZGVyTmFtZT1lLm5hbWUsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHhWKX1kcmFnRW5kKCl7aWYoIXRoaXMuZHJhZ2dpbmdIZWFkZXJOYW1lfHwhdGhpcy5oaWdobGlnaHRlZENvbHVtbk5hbWUpcmV0dXJuO2xldCBlPXRoaXMuZ2V0SGVhZGVyQnlOYW1lKHRoaXMuZHJhZ2dpbmdIZWFkZXJOYW1lKSxpPXRoaXMuZ2V0SGVhZGVyQnlOYW1lKHRoaXMuaGlnaGxpZ2h0ZWRDb2x1bW5OYW1lKTtlJiZpJiZlIT09aSYmdGhpcy5vcmRlckNvbHVtbnMuZW1pdCh7c291cmNlOmUsZGVzdGluYXRpb246aSxzaWRlOnRoaXMuaGlnaGxpZ2h0U2lkZX0pLHRoaXMuZHJhZ2dpbmdIZWFkZXJOYW1lPXZvaWQgMCx0aGlzLmhpZ2hsaWdodGVkQ29sdW1uTmFtZT12b2lkIDAsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHhWKSx0aGlzLmhlYWRlckNlbGxzLmZvckVhY2gocj0+e3IuaGlnaGxpZ2h0U3R5bGUkLm5leHQoe30pfSl9ZHJhZ0VudGVyKGUpe2lmKCF0aGlzLmRyYWdnaW5nSGVhZGVyTmFtZXx8LTE9PT10aGlzLmdldEluZGV4T2ZIZWFkZXJXaXRoTmFtZShlLm5hbWUpKXJldHVybjtsZXQgaT10aGlzLmdldEhlYWRlckJ5TmFtZSh0aGlzLmRyYWdnaW5nSGVhZGVyTmFtZSk7aSYma2wuY29sdW1uVG9Hcm91cChlKSE9PWtsLmNvbHVtblRvR3JvdXAoaSl8fCh0aGlzLmhpZ2hsaWdodFNpZGU9dGhpcy5nZXRJbmRleE9mSGVhZGVyV2l0aE5hbWUoZS5uYW1lKTx0aGlzLmdldEluZGV4T2ZIZWFkZXJXaXRoTmFtZSh0aGlzLmRyYWdnaW5nSGVhZGVyTmFtZSk/bW8uTEVGVDptby5SSUdIVCx0aGlzLmhpZ2hsaWdodGVkQ29sdW1uTmFtZT1lLm5hbWUsdGhpcy5oZWFkZXJDZWxscy5mb3JFYWNoKHI9PntyLmhpZ2hsaWdodFN0eWxlJC5uZXh0KHRoaXMuZ2V0SGVhZGVySGlnaGxpZ2h0U3R5bGUoci5oZWFkZXIubmFtZSkpfSkpfW1vdmVIZWFkZXIoZSxpKXtsZXQgcj1bLi4udGhpcy5oZWFkZXJzXTtyZXR1cm4gci5zcGxpY2UoZSwxKSxyLnNwbGljZShpLDAsdGhpcy5oZWFkZXJzW2VdKSxyfWdldEhlYWRlckhpZ2hsaWdodFN0eWxlKGUpe3JldHVybiBlIT09dGhpcy5oaWdobGlnaHRlZENvbHVtbk5hbWU/e306e2hpZ2hsaWdodDohMCwiaGlnaGxpZ2h0LWJvcmRlci1yaWdodCI6dGhpcy5oaWdobGlnaHRTaWRlPT09bW8uUklHSFQsImhpZ2hsaWdodC1ib3JkZXItbGVmdCI6dGhpcy5oaWdobGlnaHRTaWRlPT09bW8uTEVGVH19Z2V0SGVhZGVyQnlOYW1lKGUpe3JldHVybiB0aGlzLmhlYWRlcnMuZmluZChpPT5pLm5hbWU9PT1lKX1nZXRJbmRleE9mSGVhZGVyV2l0aE5hbWUoZSl7cmV0dXJuIHRoaXMuaGVhZGVycy5maW5kSW5kZXgoaT0+ZT09PWkubmFtZSl9b3BlbkNvbnRleHRNZW51KGUsaSl7aS5zdG9wUHJvcGFnYXRpb24oKSxpLnByZXZlbnREZWZhdWx0KCksdGhpcy5jb250ZXh0TWVudUhlYWRlcj1lO2xldCBvPWkudGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi5jb250ZXh0LW1lbnUtY29udGFpbmVyIik/P2kudGFyZ2V0O3RoaXMuY3VzdG9tTW9kYWwuY3JlYXRlTmV4dFRvRWxlbWVudCh0aGlzLmNvbnRleHRNZW51VGVtcGxhdGUsbyx0aGlzLnZpZXdDb250YWluZXJSZWYpfW9wZW5Db2x1bW5TZWxlY3Rvcih7ZXZlbnQ6ZSxpbnNlcnRUbzppfSl7ZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsb3NlU3VibWVudXMoKSx0aGlzLmluc2VydENvbHVtblRvPWksdGhpcy5jb2x1bW5TZWxlY3Rvck1vZGFsUmVmPXRoaXMuY3VzdG9tTW9kYWwuY3JlYXRlTmV4dFRvRWxlbWVudCh0aGlzLmNvbHVtblNlbGVjdG9yTW9kYWxUZW1wbGF0ZSxlLnRhcmdldC5jbG9zZXN0KCJidXR0b24iKSx0aGlzLnZpZXdDb250YWluZXJSZWYpLHRoaXMuY29sdW1uU2VsZWN0b3JNb2RhbFJlZj8ub25DbG9zZS5waXBlKHptKCkpLnN1YnNjcmliZSgoKT0+e3RoaXMuY29sdW1uU2VsZWN0b3JNb2RhbFJlZj12b2lkIDB9KX1jYW5Db250ZXh0TWVudVJlbW92ZUNvbHVtbigpe3JldHVybiB0aGlzLmNvbnRleHRNZW51SGVhZGVyPy5yZW1vdmFibGV9b25SZW1vdmVDb2x1bW4oZSl7dGhpcy5yZW1vdmVDb2x1bW4uZW1pdChlKSx0aGlzLmN1c3RvbU1vZGFsLmNsb3NlQWxsKCl9b25Db2x1bW5BZGRlZChlKXt0aGlzLmFkZENvbHVtbi5lbWl0KHtjb2x1bW46ZSxuZXh0VG86dGhpcy5jb250ZXh0TWVudUhlYWRlcixzaWRlOnRoaXMuaW5zZXJ0Q29sdW1uVG99KX1jbG9zZVN1Ym1lbnVzKCl7dGhpcy5maWx0ZXJNb2RhbFJlZiYmdGhpcy5jdXN0b21Nb2RhbC5jbG9zZSh0aGlzLmZpbHRlck1vZGFsUmVmKSx0aGlzLmNvbHVtblNlbGVjdG9yTW9kYWxSZWYmJnRoaXMuY3VzdG9tTW9kYWwuY2xvc2UodGhpcy5jb2x1bW5TZWxlY3Rvck1vZGFsUmVmKX1vcGVuRmlsdGVyTWVudShlKXtlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY2xvc2VTdWJtZW51cygpLHRoaXMuZmlsdGVyQ29sdW1uPXRoaXMuY29udGV4dE1lbnVIZWFkZXIsdGhpcy5maWx0ZXJNb2RhbFJlZj10aGlzLmN1c3RvbU1vZGFsLmNyZWF0ZU5leHRUb0VsZW1lbnQodGhpcy5maWx0ZXJNb2RhbFRlbXBsYXRlLGUudGFyZ2V0LmNsb3Nlc3QoImJ1dHRvbiIpLHRoaXMudmlld0NvbnRhaW5lclJlZiksdGhpcy5maWx0ZXJNb2RhbFJlZj8ub25DbG9zZS5waXBlKHptKCkpLnN1YnNjcmliZSgoKT0+e3RoaXMuZmlsdGVyTW9kYWxSZWY9dm9pZCAwfSl9Z2V0Q3VycmVudENvbHVtbkZpbHRlcigpe2lmKHRoaXMuZmlsdGVyQ29sdW1uKXJldHVybiB0aGlzLmNvbHVtbkZpbHRlcnMuZ2V0KHRoaXMuZmlsdGVyQ29sdW1uLm5hbWUpfWludGVydmFsRmlsdGVyQ2hhbmdlZChlKXtpZighdGhpcy5maWx0ZXJDb2x1bW4pcmV0dXJuO2xldCBpPXRoaXMuZ2V0Q3VycmVudENvbHVtbkZpbHRlcigpOyFpfHx0aGlzLmFkZEZpbHRlci5lbWl0KHtuYW1lOnRoaXMuZmlsdGVyQ29sdW1uLm5hbWUsdmFsdWU6ey4uLmksZmlsdGVyTG93ZXJWYWx1ZTplLmxvd2VyVmFsdWUsZmlsdGVyVXBwZXJWYWx1ZTplLnVwcGVyVmFsdWV9fSl9ZGlzY3JldGVGaWx0ZXJDaGFuZ2VkKGUpe2lmKCF0aGlzLmZpbHRlckNvbHVtbilyZXR1cm47bGV0IGk9dGhpcy5nZXRDdXJyZW50Q29sdW1uRmlsdGVyKCk7aWYoIWkpcmV0dXJuO2xldCByPW5ldyBTZXQoWy4uLmkuZmlsdGVyVmFsdWVzXSk7ci5oYXMoZSk/ci5kZWxldGUoZSk6ci5hZGQoZSksdGhpcy5hZGRGaWx0ZXIuZW1pdCh7bmFtZTp0aGlzLmZpbHRlckNvbHVtbi5uYW1lLHZhbHVlOnsuLi5pLGZpbHRlclZhbHVlczpBcnJheS5mcm9tKHIpfX0pfWluY2x1ZGVVbmRlZmluZWRUb2dnbGVkKCl7aWYoIXRoaXMuZmlsdGVyQ29sdW1uKXJldHVybjtsZXQgZT10aGlzLmdldEN1cnJlbnRDb2x1bW5GaWx0ZXIoKTshZXx8dGhpcy5hZGRGaWx0ZXIuZW1pdCh7bmFtZTp0aGlzLmZpbHRlckNvbHVtbi5uYW1lLHZhbHVlOnsuLi5lLGluY2x1ZGVVbmRlZmluZWQ6IWUuaW5jbHVkZVVuZGVmaW5lZH19KX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyh1QSksQyhlaSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInRiLWRhdGEtdGFibGUiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oZSxpLHIpe2lmKDEmZSYmKEJuKHIsZl8sNCksQm4ocixtXyw1KSksMiZlKXtsZXQgbztiZShvPXZlKCkpJiYoaS5oZWFkZXJDZWxscz1vKSxiZShvPXZlKCkpJiYoaS5jb250ZW50Q2VsbHM9byl9fSx2aWV3UXVlcnk6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJihVZShyM2UsNSxvaSksVWUobzNlLDUsb2kpLFVlKGEzZSw1LG9pKSksMiZlKXtsZXQgcjtiZShyPXZlKCkpJiYoaS5jb250ZXh0TWVudVRlbXBsYXRlPXIuZmlyc3QpLGJlKHI9dmUoKSkmJihpLmZpbHRlck1vZGFsVGVtcGxhdGU9ci5maXJzdCksYmUocj12ZSgpKSYmKGkuY29sdW1uU2VsZWN0b3JNb2RhbFRlbXBsYXRlPXIuZmlyc3QpfX0saW5wdXRzOntoZWFkZXJzOiJoZWFkZXJzIixzb3J0aW5nSW5mbzoic29ydGluZ0luZm8iLHNlbGVjdGFibGVDb2x1bW5zOiJzZWxlY3RhYmxlQ29sdW1ucyIsbnVtQ29sdW1uc0xvYWRlZDoibnVtQ29sdW1uc0xvYWRlZCIsaGFzTW9yZUNvbHVtbnNUb0xvYWQ6Imhhc01vcmVDb2x1bW5zVG9Mb2FkIixjb2x1bW5GaWx0ZXJzOiJjb2x1bW5GaWx0ZXJzIixsb2FkaW5nOiJsb2FkaW5nIixzaG91bGRBZGRCb3JkZXJzOiJzaG91bGRBZGRCb3JkZXJzIixhZGRDb2x1bW5TaXplOiJhZGRDb2x1bW5TaXplIn0sb3V0cHV0czp7c29ydERhdGFCeToic29ydERhdGFCeSIsb3JkZXJDb2x1bW5zOiJvcmRlckNvbHVtbnMiLHJlbW92ZUNvbHVtbjoicmVtb3ZlQ29sdW1uIixhZGRDb2x1bW46ImFkZENvbHVtbiIsYWRkRmlsdGVyOiJhZGRGaWx0ZXIiLGxvYWRBbGxDb2x1bW5zOiJsb2FkQWxsQ29sdW1ucyJ9LG5nQ29udGVudFNlbGVjdG9yczpoM2UsZGVjbHM6MTQsdmFyczo0LGNvbnN0czpbWyJjb250ZXh0TWVudVRlbXBsYXRlIiwiIl0sWyJjb2x1bW5TZWxlY3Rvck1vZGFsVGVtcGxhdGUiLCIiXSxbImZpbHRlck1vZGFsVGVtcGxhdGUiLCIiXSxbMSwiZGF0YS10YWJsZS13cmFwcGVyIl0sWzEsImxlZnQtc2VjdGlvbiJdLFsxLCJkYXRhLXRhYmxlIl0sWzEsImhlYWRlciJdLFsiY2xhc3MiLCJyaWdodC1zZWN0aW9uIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImxvYWRpbmciLDQsIm5nSWYiXSxbMywiY29udGV4dE1lbnVIZWFkZXIiLCJzZWxlY3RhYmxlQ29sdW1ucyIsInNvcnRpbmdJbmZvIiwicmVtb3ZlQ29sdW1uIiwic29ydEJ5SGVhZGVyIiwib3BlbkZpbHRlck1lbnUiLCJvcGVuQ29sdW1uU2VsZWN0b3IiXSxbMywic2VsZWN0YWJsZUNvbHVtbnMiLCJudW1Db2x1bW5zTG9hZGVkIiwiaGFzTW9yZUNvbHVtbnNUb0xvYWQiLCJjb2x1bW5TZWxlY3RlZCIsImxvYWRBbGxDb2x1bW5zIl0sWzMsImZpbHRlciIsImludGVydmFsRmlsdGVyQ2hhbmdlZCIsImRpc2NyZXRlRmlsdGVyQ2hhbmdlZCIsImluY2x1ZGVVbmRlZmluZWRUb2dnbGVkIl0sWzEsInJpZ2h0LXNlY3Rpb24iXSxbMSwiYWRkLWJ1dHRvbi1jb2x1bW4iXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsInRpdGxlIiwiQWRkIENvbHVtbiIsMSwiYWRkLWJ1dHRvbiIsMywiY2xpY2siXSxbInN2Z0ljb24iLCJhZGRfMjRweCJdLFsxLCJsb2FkaW5nIl0sWyJtb2RlIiwiaW5kZXRlcm1pbmF0ZSIsImRpYW1ldGVyIiwiMjgiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmbihwM2UpLFMoMCxzM2UsMSwzLCJuZy10ZW1wbGF0ZSIsbnVsbCwwLGp0KSxTKDIsbDNlLDEsMywibmctdGVtcGxhdGUiLG51bGwsMSxqdCksUyg0LGMzZSwxLDEsIm5nLXRlbXBsYXRlIixudWxsLDIsanQpLGYoNiwiZGl2IiwzKSg3LCJkaXYiLDQpKDgsImRpdiIsNSkoOSwiZGl2Iiw2KSxUdCgxMCksZygpLFR0KDExLDEpLGcoKSgpLFMoMTIsZDNlLDQsMiwiZGl2Iiw3KSxnKCksUygxMyx1M2UsMiwwLCJkaXYiLDgpKSwyJmUmJih2KDYpLG50KCJzaG91bGQtYWRkLWJvcmRlcnMiLGkuc2hvdWxkQWRkQm9yZGVycyksdig2KSxiKCJuZ0lmIixpLnNlbGVjdGFibGVDb2x1bW5zJiZpLnNlbGVjdGFibGVDb2x1bW5zLmxlbmd0aCksdigxKSxiKCJuZ0lmIixpLmxvYWRpbmcpKX0sZGVwZW5kZW5jaWVzOltOZSxibixFcixOYyxadGUsaEEsaW5lXSxzdHlsZXM6WyIuZGF0YS10YWJsZS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXh9LmRhdGEtdGFibGUtd3JhcHBlci5zaG91bGQtYWRkLWJvcmRlcnNbX25nY29udGVudC0lQ09NUCVdICAgLmxlZnQtc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV0sIC5kYXRhLXRhYmxlLXdyYXBwZXIuc2hvdWxkLWFkZC1ib3JkZXJzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yaWdodC1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCAjZWJlYmVifWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5kYXRhLXRhYmxlLXdyYXBwZXIuc2hvdWxkLWFkZC1ib3JkZXJzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5sZWZ0LXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZGF0YS10YWJsZS13cmFwcGVyLnNob3VsZC1hZGQtYm9yZGVyc1tfbmdjb250ZW50LSVDT01QJV0gICAubGVmdC1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCAjNTU1fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5kYXRhLXRhYmxlLXdyYXBwZXIuc2hvdWxkLWFkZC1ib3JkZXJzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yaWdodC1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmRhdGEtdGFibGUtd3JhcHBlci5zaG91bGQtYWRkLWJvcmRlcnNbX25nY29udGVudC0lQ09NUCVdICAgLnJpZ2h0LXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2JvcmRlci10b3A6MXB4IHNvbGlkICM1NTV9LmRhdGEtdGFibGUtd3JhcHBlci5zaG91bGQtYWRkLWJvcmRlcnNbX25nY29udGVudC0lQ09NUCVdICAgLmFkZC1idXR0b24tY29sdW1uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItbGVmdDoxcHggc29saWQgI2ViZWJlYn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZGF0YS10YWJsZS13cmFwcGVyLnNob3VsZC1hZGQtYm9yZGVyc1tfbmdjb250ZW50LSVDT01QJV0gICAuYWRkLWJ1dHRvbi1jb2x1bW5bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZGF0YS10YWJsZS13cmFwcGVyLnNob3VsZC1hZGQtYm9yZGVyc1tfbmdjb250ZW50LSVDT01QJV0gICAuYWRkLWJ1dHRvbi1jb2x1bW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjNTU1fS5kYXRhLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweDtkaXNwbGF5OnRhYmxlO3dpZHRoOjEwMCV9LmRhdGEtdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgLmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO2Rpc3BsYXk6dGFibGUtcm93O2ZvbnQtd2VpZ2h0OmJvbGQ7cG9zaXRpb246c3RpY2t5O3RleHQtYWxpZ246bGVmdDt0b3A6MDt2ZXJ0aWNhbC1hbGlnbjpib3R0b207ei1pbmRleDoxfS5kYXRhLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oZWFkZXJbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2N1cnNvcjpwb2ludGVyfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5kYXRhLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZGF0YS10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICAuaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiMzMDMwMzB9LmxvYWRpbmdbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXI6MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMjRweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5sb2FkaW5nW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmxvYWRpbmdbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9LmxlZnQtc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV17ZmxleC1ncm93OjF9LnJpZ2h0LXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmZjtwb3NpdGlvbjpzdGlja3k7cmlnaHQ6LTFweDt6LWluZGV4OjF9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnJpZ2h0LXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAucmlnaHQtc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfS5yaWdodC1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5hZGQtYnV0dG9uLWNvbHVtbltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6NDBweDtoZWlnaHQ6MTAwJX0ucmlnaHQtc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAuYWRkLWJ1dHRvbi1jb2x1bW5bX25nY29udGVudC0lQ09NUCVdICAgLmFkZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnN0aWNreTt0b3A6MH0ucmlnaHQtc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAuYWRkLWJ1dHRvbi1jb2x1bW4uc21hbGwtYWRkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MjRweH0ucmlnaHQtc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAuYWRkLWJ1dHRvbi1jb2x1bW4uc21hbGwtYWRkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAuYWRkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17LS10Yi1pY29uLWJ1dHRvbi13aWR0aDogMjBweDstLXRiLWljb24tYnV0dG9uLWhlaWdodDogMjBweH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpO2Z1bmN0aW9uIG0zZShuLHQpe2lmKDEmbiYmaygwLCJ0Yi1kYXRhLXRhYmxlLWhlYWRlci1jZWxsIiw1KSwyJm4pe2xldCBlPXcoKS4kaW1wbGljaXQsaT13KCk7YigiaGVhZGVyIixlKSgic29ydGluZ0luZm8iLGkuc29ydGluZ0luZm8pKCJkaXNhYmxlQ29udGV4dE1lbnUiLCFpLmNvbHVtbkNvbnRleHRNZW51c0VuYWJsZWQpfX1mdW5jdGlvbiBmM2Uobix0KXtpZigxJm4mJihHdCgwKSxTKDEsbTNlLDEsMywidGItZGF0YS10YWJsZS1oZWFkZXItY2VsbCIsNCksV3QoKSksMiZuKXtsZXQgZT10LiRpbXBsaWNpdCxpPXcoKTt2KDEpLGIoIm5nSWYiLGUuZW5hYmxlZCYmKGUudHlwZSE9PWkuQ29sdW1uSGVhZGVyVHlwZS5TTU9PVEhFRHx8aS5zbW9vdGhpbmdFbmFibGVkKSl9fWZ1bmN0aW9uIGczZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2Iiw5KSxrKDEsInNwYW4iKSxnKCkpLDImbil7bGV0IGU9dygzKS4kaW1wbGljaXQ7digxKSxCdCgiYmFja2dyb3VuZC1jb2xvciIsZS5jb2xvcil9fWZ1bmN0aW9uIF8zZShuLHQpe2lmKDEmbiYmKGYoMCwidGItZGF0YS10YWJsZS1jb250ZW50LWNlbGwiLDcpLFMoMSxnM2UsMiwyLCJkaXYiLDgpLGcoKSksMiZuKXtsZXQgZT13KCkuJGltcGxpY2l0LGk9dygpLiRpbXBsaWNpdCxyPXcoKTtiKCJoZWFkZXIiLGUpKCJkYXR1bSIsaVtlLm5hbWVdKSx2KDEpLGIoIm5nSWYiLGUudHlwZT09PXIuQ29sdW1uSGVhZGVyVHlwZS5DT0xPUil9fWZ1bmN0aW9uIGIzZShuLHQpe2lmKDEmbiYmKEd0KDApLFMoMSxfM2UsMiwzLCJ0Yi1kYXRhLXRhYmxlLWNvbnRlbnQtY2VsbCIsNiksV3QoKSksMiZuKXtsZXQgZT10LiRpbXBsaWNpdCxpPXcoMik7digxKSxiKCJuZ0lmIixlLmVuYWJsZWQmJihlLnR5cGUhPT1pLkNvbHVtbkhlYWRlclR5cGUuU01PT1RIRUR8fGkuc21vb3RoaW5nRW5hYmxlZCkpfX1mdW5jdGlvbiB2M2Uobix0KXtpZigxJm4mJihHdCgwKSxmKDEsInRiLWRhdGEtdGFibGUtY29udGVudC1yb3ciKSxTKDIsYjNlLDIsMSwibmctY29udGFpbmVyIiwyKSxnKCksV3QoKSksMiZuKXtsZXQgZT13KCk7digyKSxiKCJuZ0Zvck9mIixlLmV4dGVuZEhlYWRlcnMoZS5jb2x1bW5IZWFkZXJzKSl9fXZhciBhbmU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMuc29ydERhdGFCeT1uZXcgRix0aGlzLmVkaXRDb2x1bW5IZWFkZXJzPW5ldyBGLHRoaXMuYWRkQ29sdW1uPW5ldyBGLHRoaXMucmVtb3ZlQ29sdW1uPW5ldyBGLHRoaXMuYWRkRmlsdGVyPW5ldyBGLHRoaXMubG9hZEFsbENvbHVtbnM9bmV3IEYsdGhpcy5Db2x1bW5IZWFkZXJUeXBlPWd0LHRoaXMuQWRkQ29sdW1uU2l6ZT12dSx0aGlzLmV4dGVuZEhlYWRlcnM9X3ModGhpcy5pbnRlcm5hbEV4dGVuZEhlYWRlcnMpfWludGVybmFsRXh0ZW5kSGVhZGVycyhlKXtyZXR1cm5bXS5jb25jYXQoW3tuYW1lOiJjb2xvciIsZGlzcGxheU5hbWU6IiIsdHlwZTpndC5DT0xPUixlbmFibGVkOiEwfV0sZSl9Z2V0TWluUG9pbnRJblJhbmdlKGUsaSxyKXtsZXQgbz1lW2ldLnksYT1lW2ldO2ZvcihsZXQgcz1pO3M8PXI7cysrKW8+ZVtzXS55JiYobz1lW3NdLnksYT1lW3NdKTtyZXR1cm4gYX1nZXRNYXhQb2ludEluUmFuZ2UoZSxpLHIpe2xldCBvPWVbaV0ueSxhPWVbaV07Zm9yKGxldCBzPWk7czw9cjtzKyspbzxlW3NdLnkmJihvPWVbc10ueSxhPWVbc10pO3JldHVybiBhfWdldE1lYW4oZSxpLHIpe2xldCBvPTA7Zm9yKGxldCBhPWk7YTw9cjthKyspbys9ZVthXS52YWx1ZTtyZXR1cm4gby8oci1pKzEpfWdldFRpbWVTZWxlY3Rpb25UYWJsZURhdGEoKXtpZighdGhpcy5zdGVwT3JMaW5rZWRUaW1lU2VsZWN0aW9uKXJldHVybltdO2xldCBlPXRoaXMuc3RlcE9yTGlua2VkVGltZVNlbGVjdGlvbi5zdGFydC5zdGVwLGk9dGhpcy5zdGVwT3JMaW5rZWRUaW1lU2VsZWN0aW9uLmVuZD8uc3RlcCxyPXRoaXMuZGF0YVNlcmllcy5maWx0ZXIoYT0+R1MoYSx0aGlzLmNoYXJ0TWV0YWRhdGFNYXApKS5tYXAoYT0+e2xldCBzPXRoaXMuY2hhcnRNZXRhZGF0YU1hcFthLmlkXSxsPVp4KGEucG9pbnRzLGUpLGM9YS5wb2ludHNbbF0sZD1udWxsLHU9bnVsbDtudWxsIT1pJiYodT1aeChhLnBvaW50cyxpKSxkPWEucG9pbnRzW3VdKTtsZXQgcD17aWQ6YS5pZCxjb2xvcjpzLmNvbG9yfTtmb3IobGV0IGggb2YgdGhpcy5jb2x1bW5IZWFkZXJzKXN3aXRjaChoLnR5cGUpe2Nhc2UgZ3QuUlVOOmxldCBtPSIiO3MuYWxpYXMmJihtPWAke3MuYWxpYXMuYWxpYXNOdW1iZXJ9ICR7cy5hbGlhcy5hbGlhc1RleHR9L2ApLHBbaC5uYW1lXT1gJHttfSR7cy5kaXNwbGF5TmFtZX1gO2NvbnRpbnVlO2Nhc2UgZ3QuU1RFUDpwW2gubmFtZV09Yy5zdGVwO2NvbnRpbnVlO2Nhc2UgZ3QuVkFMVUU6cFtoLm5hbWVdPWMudmFsdWU7Y29udGludWU7Y2FzZSBndC5SRUxBVElWRV9USU1FOnBbaC5uYW1lXT1jLnJlbGF0aXZlVGltZUluTXM7Y29udGludWU7Y2FzZSBndC5TTU9PVEhFRDpwW2gubmFtZV09Yy55O2NvbnRpbnVlO2Nhc2UgZ3QuVkFMVUVfQ0hBTkdFOmlmKCFkKWNvbnRpbnVlO3BbaC5uYW1lXT1kLnktYy55O2NvbnRpbnVlO2Nhc2UgZ3QuU1RBUlRfU1RFUDpwW2gubmFtZV09Yy5zdGVwO2NvbnRpbnVlO2Nhc2UgZ3QuRU5EX1NURVA6aWYoIWQpY29udGludWU7cFtoLm5hbWVdPWQuc3RlcDtjb250aW51ZTtjYXNlIGd0LlNUQVJUX1ZBTFVFOnBbaC5uYW1lXT1jLnk7Y29udGludWU7Y2FzZSBndC5FTkRfVkFMVUU6aWYoIWQpY29udGludWU7cFtoLm5hbWVdPWQueTtjb250aW51ZTtjYXNlIGd0Lk1JTl9WQUxVRTppZighdSljb250aW51ZTtwW2gubmFtZV09dGhpcy5nZXRNaW5Qb2ludEluUmFuZ2UoYS5wb2ludHMsbCx1KS55O2NvbnRpbnVlO2Nhc2UgZ3QuTUFYX1ZBTFVFOmlmKCF1KWNvbnRpbnVlO3BbaC5uYW1lXT10aGlzLmdldE1heFBvaW50SW5SYW5nZShhLnBvaW50cyxsLHUpLnk7Y29udGludWU7Y2FzZSBndC5QRVJDRU5UQUdFX0NIQU5HRTppZighZCljb250aW51ZTtwW2gubmFtZV09KGQueS1jLnkpL2MueTtjb250aW51ZTtjYXNlIGd0LlNURVBfQVRfTUFYOmlmKCF1KWNvbnRpbnVlO3BbaC5uYW1lXT10aGlzLmdldE1heFBvaW50SW5SYW5nZShhLnBvaW50cyxsLHUpLnN0ZXA7Y29udGludWU7Y2FzZSBndC5TVEVQX0FUX01JTjppZighdSljb250aW51ZTtwW2gubmFtZV09dGhpcy5nZXRNaW5Qb2ludEluUmFuZ2UoYS5wb2ludHMsbCx1KS5zdGVwO2NvbnRpbnVlO2Nhc2UgZ3QuTUVBTjppZighdSljb250aW51ZTtwW2gubmFtZV09dGhpcy5nZXRNZWFuKGEucG9pbnRzLGwsdSk7Y29udGludWU7Y2FzZSBndC5SQVdfQ0hBTkdFOmlmKCFkKWNvbnRpbnVlO3BbaC5uYW1lXT1kLnZhbHVlLWMudmFsdWU7Y29udGludWU7Y2FzZSBndC5IUEFSQU06cFtoLm5hbWVdPXRoaXMucnVuVG9IcGFyYW1NYXA/LltzLm9yaWdpbmFsU2VyaWVzSWR8fHMuaWRdPy5nZXQoaC5uYW1lKT8/IiI7Y29udGludWU7ZGVmYXVsdDpjb250aW51ZX1yZXR1cm4gcH0pLG89dGhpcy5jb2x1bW5IZWFkZXJzLmZpbmQoYT0+YS5uYW1lPT09dGhpcy5zb3J0aW5nSW5mby5uYW1lKTtyZXR1cm4gdm9pZCAwIT09byYmci5zb3J0KChhLHMpPT57aWYoIW8pcmV0dXJuIDA7bGV0IGw9dGhpcy5nZXRTb3J0YWJsZVZhbHVlKGEsbyksYz10aGlzLmdldFNvcnRhYmxlVmFsdWUocyxvKTtyZXR1cm4gbDxjP3RoaXMuc29ydGluZ0luZm8ub3JkZXI9PT1Mci5BU0NFTkRJTkc/LTE6MTpsPmM/dGhpcy5zb3J0aW5nSW5mby5vcmRlcj09PUxyLkFTQ0VORElORz8xOi0xOjB9KSxyfWdldFNvcnRhYmxlVmFsdWUoZSxpKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBufHxOdW1iZXIuaXNOYU4obil8fCJOYU4iPT09bnx8bnVsbD09bj8tMS8wOm59KGkudHlwZT09PWd0LlJVTj90aGlzLmNoYXJ0TWV0YWRhdGFNYXBbZS5pZF0uZGlzcGxheU5hbWU6ZVtpLm5hbWVdKX1nZXREYXRhVGFibGVNb2RlKCl7cmV0dXJuIHRoaXMuc3RlcE9yTGlua2VkVGltZVNlbGVjdGlvbi5lbmQ/V3IuUkFOR0U6V3IuU0lOR0xFfW9uT3JkZXJDb2x1bW5zKHtzb3VyY2U6ZSxkZXN0aW5hdGlvbjppLHNpZGU6cn0pe3RoaXMuZWRpdENvbHVtbkhlYWRlcnMuZW1pdCh7c291cmNlOmUsZGVzdGluYXRpb246aSxzaWRlOnIsZGF0YVRhYmxlTW9kZTp0aGlzLmdldERhdGFUYWJsZU1vZGUoKX0pfW9uUmVtb3ZlQ29sdW1uKGUpe3RoaXMucmVtb3ZlQ29sdW1uLmVtaXQoe2hlYWRlcjplLGRhdGFUYWJsZU1vZGU6dGhpcy5nZXREYXRhVGFibGVNb2RlKCl9KX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sic2NhbGFyLWNhcmQtZGF0YS10YWJsZSJdXSxpbnB1dHM6e2NoYXJ0TWV0YWRhdGFNYXA6ImNoYXJ0TWV0YWRhdGFNYXAiLGRhdGFTZXJpZXM6ImRhdGFTZXJpZXMiLHN0ZXBPckxpbmtlZFRpbWVTZWxlY3Rpb246InN0ZXBPckxpbmtlZFRpbWVTZWxlY3Rpb24iLGNvbHVtbkhlYWRlcnM6ImNvbHVtbkhlYWRlcnMiLHNvcnRpbmdJbmZvOiJzb3J0aW5nSW5mbyIsY29sdW1uQ3VzdG9taXphdGlvbkVuYWJsZWQ6ImNvbHVtbkN1c3RvbWl6YXRpb25FbmFibGVkIixjb2x1bW5Db250ZXh0TWVudXNFbmFibGVkOiJjb2x1bW5Db250ZXh0TWVudXNFbmFibGVkIixzbW9vdGhpbmdFbmFibGVkOiJzbW9vdGhpbmdFbmFibGVkIixjb2x1bW5GaWx0ZXJzOiJjb2x1bW5GaWx0ZXJzIixzZWxlY3RhYmxlQ29sdW1uczoic2VsZWN0YWJsZUNvbHVtbnMiLG51bUNvbHVtbnNMb2FkZWQ6Im51bUNvbHVtbnNMb2FkZWQiLG51bUNvbHVtbnNUb0xvYWQ6Im51bUNvbHVtbnNUb0xvYWQiLHJ1blRvSHBhcmFtTWFwOiJydW5Ub0hwYXJhbU1hcCJ9LG91dHB1dHM6e3NvcnREYXRhQnk6InNvcnREYXRhQnkiLGVkaXRDb2x1bW5IZWFkZXJzOiJlZGl0Q29sdW1uSGVhZGVycyIsYWRkQ29sdW1uOiJhZGRDb2x1bW4iLHJlbW92ZUNvbHVtbjoicmVtb3ZlQ29sdW1uIixhZGRGaWx0ZXI6ImFkZEZpbHRlciIsbG9hZEFsbENvbHVtbnM6ImxvYWRBbGxDb2x1bW5zIn0sZGVjbHM6NSx2YXJzOjksY29uc3RzOltbMywiaGVhZGVycyIsInNvcnRpbmdJbmZvIiwiY29sdW1uRmlsdGVycyIsInNlbGVjdGFibGVDb2x1bW5zIiwibnVtQ29sdW1uc0xvYWRlZCIsImhhc01vcmVDb2x1bW5zVG9Mb2FkIiwiYWRkQ29sdW1uU2l6ZSIsInNvcnREYXRhQnkiLCJvcmRlckNvbHVtbnMiLCJhZGRDb2x1bW4iLCJyZW1vdmVDb2x1bW4iLCJhZGRGaWx0ZXIiLCJsb2FkQWxsQ29sdW1ucyJdLFsiaGVhZGVyIiwiIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY29udGVudCIsIiJdLFszLCJoZWFkZXIiLCJzb3J0aW5nSW5mbyIsImRpc2FibGVDb250ZXh0TWVudSIsNCwibmdJZiJdLFszLCJoZWFkZXIiLCJzb3J0aW5nSW5mbyIsImRpc2FibGVDb250ZXh0TWVudSJdLFszLCJoZWFkZXIiLCJkYXR1bSIsNCwibmdJZiJdLFszLCJoZWFkZXIiLCJkYXR1bSJdLFsiY2xhc3MiLCJyb3ctY2lyY2xlIiw0LCJuZ0lmIl0sWzEsInJvdy1jaXJjbGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsInRiLWRhdGEtdGFibGUiLDApLEEoInNvcnREYXRhQnkiLGZ1bmN0aW9uKG8pe3JldHVybiBpLnNvcnREYXRhQnkuZW1pdChvKX0pKCJvcmRlckNvbHVtbnMiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uT3JkZXJDb2x1bW5zKG8pfSkoImFkZENvbHVtbiIsZnVuY3Rpb24obyl7cmV0dXJuIGkuYWRkQ29sdW1uLmVtaXQobyl9KSgicmVtb3ZlQ29sdW1uIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vblJlbW92ZUNvbHVtbihvKX0pKCJhZGRGaWx0ZXIiLGZ1bmN0aW9uKG8pe3JldHVybiBpLmFkZEZpbHRlci5lbWl0KG8pfSkoImxvYWRBbGxDb2x1bW5zIixmdW5jdGlvbigpe3JldHVybiBpLmxvYWRBbGxDb2x1bW5zLmVtaXQoKX0pLEd0KDEsMSksUygyLGYzZSwyLDEsIm5nLWNvbnRhaW5lciIsMiksV3QoKSxHdCgzLDMpLFMoNCx2M2UsMywxLCJuZy1jb250YWluZXIiLDIpLFd0KCksZygpKSwyJmUmJihiKCJoZWFkZXJzIixpLmNvbHVtbkhlYWRlcnMpKCJzb3J0aW5nSW5mbyIsaS5zb3J0aW5nSW5mbykoImNvbHVtbkZpbHRlcnMiLGkuY29sdW1uRmlsdGVycykoInNlbGVjdGFibGVDb2x1bW5zIixpLnNlbGVjdGFibGVDb2x1bW5zKSgibnVtQ29sdW1uc0xvYWRlZCIsaS5udW1Db2x1bW5zTG9hZGVkKSgiaGFzTW9yZUNvbHVtbnNUb0xvYWQiLGkubnVtQ29sdW1uc0xvYWRlZD09PWkubnVtQ29sdW1uc1RvTG9hZCkoImFkZENvbHVtblNpemUiLGkuQWRkQ29sdW1uU2l6ZS5TTUFMTCksdigyKSxiKCJuZ0Zvck9mIixpLmV4dGVuZEhlYWRlcnMoaS5jb2x1bW5IZWFkZXJzKSksdigyKSxiKCJuZ0Zvck9mIixpLmdldFRpbWVTZWxlY3Rpb25UYWJsZURhdGEoKSkpfSxkZXBlbmRlbmNpZXM6W25uLE5lLG1fLGRBLG1BLGZfXSxzdHlsZXM6WyJ0Yi1kYXRhLXRhYmxlLWNvbnRlbnQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIHRiLWRhdGEtdGFibGUtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6NHB4fS5yb3ctY2lyY2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTJweDt3aWR0aDoxMnB4fS5yb3ctY2lyY2xlW19uZ2NvbnRlbnQtJUNPTVAlXSA+IHNwYW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNCk7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEwcHg7d2lkdGg6MTBweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKTt2YXIgeDNlPVsic3RlcFNwYW4iXTtmdW5jdGlvbiBDM2Uobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJidXR0b24iLDQpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBuZShlKSxpZSh3KCkuZm9iUmVtb3ZlZC5lbWl0KCkpfSksaygxLCJtYXQtaWNvbiIsNSksZygpfX1mdW5jdGlvbiBNM2Uobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJidXR0b24iLDQpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBuZShlKSxpZSh3KCkuZm9iUmVtb3ZlZC5lbWl0KCkpfSksaygxLCJtYXQtaWNvbiIsNiksZygpfX12YXIgdzNlPWZ1bmN0aW9uKG4sdCl7cmV0dXJue2ZvYjohMCx1bnJlbW92YWJsZTpuLHByb3NwZWN0aXZlOnR9fSxzbmU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMuYWxsb3dSZW1vdmFsPSEwLHRoaXMuaXNQcm9zcGVjdGl2ZT0hMSx0aGlzLnN0ZXBDaGFuZ2VkPW5ldyBGLHRoaXMuZm9iUmVtb3ZlZD1uZXcgRn1uZ09uQ2hhbmdlcyhlKXtlLnN0ZXAmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT10aGlzLnN0ZXBTcGFuLm5hdGl2ZUVsZW1lbnQmJnRoaXMuc3RlcFNwYW4ubmF0aXZlRWxlbWVudC5ibHVyKCl9dmFsaWRhdGVTdGVwKGUpe2xldCBpPVN0cmluZy5mcm9tQ2hhckNvZGUoZS53aGljaCk7KCIgIj09PWUua2V5fHxpc05hTihOdW1iZXIoaSkpKSYmZS5wcmV2ZW50RGVmYXVsdCgpfXN0ZXBUeXBlZChlKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGk9ZS50YXJnZXQuaW5uZXJUZXh0O3RoaXMuc3RlcENoYW5nZWQuZW1pdCgiIiE9PWk/TnVtYmVyKGkpOm51bGwpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJjYXJkLWZvYiJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJlVlKHgzZSw3LHhlKSwyJmUpe2xldCByO2JlKHI9dmUoKSkmJihpLnN0ZXBTcGFuPXIuZmlyc3QpfX0saW5wdXRzOntzdGVwOiJzdGVwIixhbGxvd1JlbW92YWw6ImFsbG93UmVtb3ZhbCIsaXNQcm9zcGVjdGl2ZToiaXNQcm9zcGVjdGl2ZSJ9LG91dHB1dHM6e3N0ZXBDaGFuZ2VkOiJzdGVwQ2hhbmdlZCIsZm9iUmVtb3ZlZDoiZm9iUmVtb3ZlZCJ9LGZlYXR1cmVzOltxdF0sZGVjbHM6NSx2YXJzOjcsY29uc3RzOltbMywibmdDbGFzcyJdLFsiY29udGVudGVkaXRhYmxlIiwiIiwicm9sZSIsInRleHRib3giLCJhcmlhLWxhYmVsIiwiRWRpdCBzdGVwIiwzLCJpbm5lckhUTUwiLCJibHVyIiwia2V5cHJlc3MiLCJrZXlkb3duLmVudGVyIiwia2V5ZG93bi5zaGlmdC5lbnRlciJdLFsic3RlcFNwYW4iLCIiXSxbImFyaWEtbGFiZWwiLCJEZXNlbGVjdCBmb2IiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJhcmlhLWxhYmVsIiwiRGVzZWxlY3QgZm9iIiwzLCJjbGljayJdLFsic3ZnSWNvbiIsImNsb3NlXzI0cHgiXSxbInN2Z0ljb24iLCJrZWVwXzI0cHgiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImRpdiIsMCkoMSwic3BhbiIsMSwyKSxBKCJibHVyIixmdW5jdGlvbihvKXtyZXR1cm4gaS5zdGVwVHlwZWQobyl9KSgia2V5cHJlc3MiLGZ1bmN0aW9uKG8pe3JldHVybiBpLnZhbGlkYXRlU3RlcChvKX0pKCJrZXlkb3duLmVudGVyIixmdW5jdGlvbihvKXtyZXR1cm4gaS5zdGVwVHlwZWQobyl9KSgia2V5ZG93bi5zaGlmdC5lbnRlciIsZnVuY3Rpb24obyl7cmV0dXJuIG8ucHJldmVudERlZmF1bHQoKX0pLGcoKSxTKDMsQzNlLDIsMCwiYnV0dG9uIiwzKSxTKDQsTTNlLDIsMCwiYnV0dG9uIiwzKSxnKCkpLDImZSYmKGIoIm5nQ2xhc3MiLFNvKDQsdzNlLCFpLmFsbG93UmVtb3ZhbCxpLmlzUHJvc3BlY3RpdmUpKSx2KDEpLGIoImlubmVySFRNTCIsaS5zdGVwLG1rKSx2KDIpLGIoIm5nSWYiLGkuYWxsb3dSZW1vdmFsKSx2KDEpLGIoIm5nSWYiLGkuaXNQcm9zcGVjdGl2ZSkpfSxkZXBlbmRlbmNpZXM6W3duLE5lLGJuXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5mb2JbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWZsZXg7YmFja2dyb3VuZC1jb2xvcjojZTBlMGUwO2JvcmRlci1yYWRpdXM6MjVweDtwYWRkaW5nOjJweCAycHggMnB4IDRweDtmb250LXNpemU6MTFweDt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDptaW4tY29udGVudH0uZm9iW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5wcm9zcGVjdGl2ZVtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy10b3A6MXB4fS5mb2JbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2N1cnNvcjpncmFifS5mb2JbX25nY29udGVudC0lQ09NUCVdOmhvdmVyLnByb3NwZWN0aXZle2N1cnNvcjpwb2ludGVyfS5mb2JbX25nY29udGVudC0lQ09NUCVdOmFjdGl2ZXtjdXJzb3I6Z3JhYmJpbmd9LmZvYi51bnJlbW92YWJsZVtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggNHB4fS5mb2IucHJvc3BlY3RpdmVbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyOjFweCBkYXNoZWQgIzllOWU5ZTtmb250LXdlaWdodDpib2xkO2hlaWdodDoxN3B4fXNwYW5bX25nY29udGVudC0lQ09NUCVde2NvbG9yOmluaGVyaXQ7ZGlzcGxheTppbmxpbmUtYmxvY2t9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgc3Bhbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIHNwYW5bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjF9YnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tbGVmdDoycHg7cGFkZGluZzowO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6NTAlO2ZvbnQtc2l6ZToxMXB4O3dpZHRoOjExcHg7aGVpZ2h0OjExcHg7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O2NvbG9yOmluaGVyaXR9YnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTtoZWlnaHQ6MTEwJX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjF9YnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM5ZTllOWU7Y29sb3I6I2VlZTtjdXJzb3I6cG9pbnRlcn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVdOmhvdmVyLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVdOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzYxNjE2MTtjb2xvcjojZTBlMGUwfSJdLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksRTNlPVsic3RhcnRGb2JXcmFwcGVyIl0sVDNlPVsiZW5kRm9iV3JhcHBlciJdLEQzZT1bInByb3NwZWN0aXZlRm9iV3JhcHBlciJdO2Z1bmN0aW9uIEkzZShuLHQpezEmbiYmaygwLCJkaXYiLDYpfWZ1bmN0aW9uIEEzZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2IiwyLDMpLFMoMixJM2UsMSwwLCJkaXYiLDQpLGsoMywiY2FyZC1mb2IiLDUpLGcoKSksMiZuKXtsZXQgZT13KCk7QnQoInRyYW5zZm9ybSIsZS5nZXRDc3NUcmFuc2xhdGVQeEZvclByb3NwZWN0aXZlRm9iKCkpLHYoMiksYigibmdJZiIsZS5zaG93RXh0ZW5kZWRMaW5lKSx2KDEpLGIoIm5nQ2xhc3MiLGUuaXNWZXJ0aWNhbCgpPyJ2ZXJ0aWNhbC1mb2IiOiJob3Jpem9udGFsLWZvYiIpKCJhbGxvd1JlbW92YWwiLCExKSgiaXNQcm9zcGVjdGl2ZSIsITApKCJzdGVwIixlLnByb3NwZWN0aXZlU3RlcCl9fWZ1bmN0aW9uIFIzZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImRpdiIsMTApLEEoIm1vdXNlZG93biIsZnVuY3Rpb24ocil7bmUoZSk7bGV0IG89dygyKTtyZXR1cm4gaWUoby5zdGFydERyYWcoby5Gb2IuU1RBUlQsby5UaW1lU2VsZWN0aW9uQWZmb3JkYW5jZS5FWFRFTkRFRF9MSU5FLHIpKX0pLGcoKX19ZnVuY3Rpb24gUDNlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiZGl2IiwyLDcpLFMoMixSM2UsMSwwLCJkaXYiLDgpLGYoMywiY2FyZC1mb2IiLDkpLEEoIm1vdXNlZG93biIsZnVuY3Rpb24ocil7bmUoZSk7bGV0IG89dygpO3JldHVybiBpZShvLnN0YXJ0RHJhZyhvLkZvYi5TVEFSVCxvLlRpbWVTZWxlY3Rpb25BZmZvcmRhbmNlLkZPQixyKSl9KSgic3RlcENoYW5nZWQiLGZ1bmN0aW9uKHIpe25lKGUpO2xldCBvPXcoKTtyZXR1cm4gaWUoby5zdGVwVHlwZWQoby5Gb2IuU1RBUlQscikpfSkoImZvYlJlbW92ZWQiLGZ1bmN0aW9uKCl7bmUoZSk7bGV0IHI9dygpO3JldHVybiBpZShyLm9uRm9iUmVtb3ZlZChyLkZvYi5TVEFSVCkpfSksZygpKCl9aWYoMiZuKXtsZXQgZT13KCk7QnQoInRyYW5zZm9ybSIsZS5nZXRDc3NUcmFuc2xhdGVQeEZvclN0YXJ0Rm9iKCkpLHYoMiksYigibmdJZiIsZS5zaG93RXh0ZW5kZWRMaW5lKSx2KDEpLGIoImFsbG93UmVtb3ZhbCIsISFlLmFsbG93Rm9iUmVtb3ZhbHx8ZS50aW1lU2VsZWN0aW9uLmVuZCkoIm5nQ2xhc3MiLGUuaXNWZXJ0aWNhbCgpPyJ2ZXJ0aWNhbC1mb2IiOiJob3Jpem9udGFsLWZvYiIpKCJzdGVwIixlLnRpbWVTZWxlY3Rpb24uc3RhcnQuc3RlcCl9fWZ1bmN0aW9uIGszZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImRpdiIsMTApLEEoIm1vdXNlZG93biIsZnVuY3Rpb24ocil7bmUoZSk7bGV0IG89dygyKTtyZXR1cm4gaWUoby5zdGFydERyYWcoby5Gb2IuRU5ELG8uVGltZVNlbGVjdGlvbkFmZm9yZGFuY2UuRVhURU5ERURfTElORSxyKSl9KSxnKCl9fWZ1bmN0aW9uIE8zZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImRpdiIsMiwxMSksUygyLGszZSwxLDAsImRpdiIsOCksZigzLCJjYXJkLWZvYiIsMTIpLEEoIm1vdXNlZG93biIsZnVuY3Rpb24ocil7bmUoZSk7bGV0IG89dygpO3JldHVybiBpZShvLnN0YXJ0RHJhZyhvLkZvYi5FTkQsby5UaW1lU2VsZWN0aW9uQWZmb3JkYW5jZS5GT0IscikpfSkoInN0ZXBDaGFuZ2VkIixmdW5jdGlvbihyKXtuZShlKTtsZXQgbz13KCk7cmV0dXJuIGllKG8uc3RlcFR5cGVkKG8uRm9iLkVORCxyKSl9KSgiZm9iUmVtb3ZlZCIsZnVuY3Rpb24oKXtuZShlKTtsZXQgcj13KCk7cmV0dXJuIGllKHIub25Gb2JSZW1vdmVkKHIuRm9iLkVORCkpfSksZygpKCl9aWYoMiZuKXtsZXQgZT13KCk7QnQoInRyYW5zZm9ybSIsZS5nZXRDc3NUcmFuc2xhdGVQeEZvckVuZEZvYigpKSx2KDIpLGIoIm5nSWYiLGUuc2hvd0V4dGVuZGVkTGluZSksdigxKSxiKCJuZ0NsYXNzIixlLmlzVmVydGljYWwoKT8idmVydGljYWwtZm9iIjoiaG9yaXpvbnRhbC1mb2IiKSgic3RlcCIsZS50aW1lU2VsZWN0aW9uLmVuZC5zdGVwKX19dmFyIFJyPSgoKT0+KGZ1bmN0aW9uKG4pe25bbi5OT05FPTBdPSJOT05FIixuW24uU1RBUlQ9MV09IlNUQVJUIixuW24uRU5EPTJdPSJFTkQifShScnx8KFJyPXt9KSksUnIpKSgpLEYzZT17c3RhcnQ6UnIuU1RBUlQsZW5kOlJyLkVORH0sZkE9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLnJvb3Q9ZSx0aGlzLnNob3dFeHRlbmRlZExpbmU9ITEsdGhpcy5wcm9zcGVjdGl2ZVN0ZXA9bnVsbCx0aGlzLnByb3NwZWN0aXZlU3RlcEF4aXNQb3NpdGlvbj1udWxsLHRoaXMuYWxsb3dGb2JSZW1vdmFsPSEwLHRoaXMub25UaW1lU2VsZWN0aW9uQ2hhbmdlZD1uZXcgRix0aGlzLm9uVGltZVNlbGVjdGlvblRvZ2dsZWQ9bmV3IEYsdGhpcy5vblByb3NwZWN0aXZlU3RlcENoYW5nZWQ9bmV3IEYsdGhpcy5oYXNGb2JNb3ZlZD0hMSx0aGlzLmN1cnJlbnREcmFnZ2luZ0ZvYj1Sci5OT05FLHRoaXMuYWZmb3JkYW5jZT1RYS5OT05FLHRoaXMubW91c2VMaXN0ZW5lcj10aGlzLm1vdXNlTW92ZS5iaW5kKHRoaXMpLHRoaXMuc3RvcExpc3RlbmVyPXRoaXMuc3RvcERyYWcuYmluZCh0aGlzKSx0aGlzLkZvYj1Scix0aGlzLlRpbWVTZWxlY3Rpb25BZmZvcmRhbmNlPVFhfWdldENzc1RyYW5zbGF0ZVB4Rm9yU3RhcnRGb2IoKXtyZXR1cm4gdGhpcy5heGlzRGlyZWN0aW9uPT09dmEuVkVSVElDQUw/YHRyYW5zbGF0ZSgwcHgsICR7dGhpcy5zdGFydFN0ZXBBeGlzUG9zaXRpb259cHgpYDpgdHJhbnNsYXRlKCR7dGhpcy5zdGFydFN0ZXBBeGlzUG9zaXRpb259cHgsIDBweClgfWdldENzc1RyYW5zbGF0ZVB4Rm9yRW5kRm9iKCl7cmV0dXJuIG51bGw9PT10aGlzLmVuZFN0ZXBBeGlzUG9zaXRpb24/IiI6dGhpcy5heGlzRGlyZWN0aW9uPT09dmEuVkVSVElDQUw/YHRyYW5zbGF0ZSgwcHgsICR7dGhpcy5lbmRTdGVwQXhpc1Bvc2l0aW9ufXB4KWA6YHRyYW5zbGF0ZSgke3RoaXMuZW5kU3RlcEF4aXNQb3NpdGlvbn1weCwgMHB4KWB9Z2V0Q3NzVHJhbnNsYXRlUHhGb3JQcm9zcGVjdGl2ZUZvYigpe3JldHVybiBudWxsPT09dGhpcy5wcm9zcGVjdGl2ZVN0ZXA/IiI6dGhpcy5heGlzRGlyZWN0aW9uPT09dmEuVkVSVElDQUw/YHRyYW5zbGF0ZSgwcHgsICR7dGhpcy5wcm9zcGVjdGl2ZVN0ZXBBeGlzUG9zaXRpb259cHgpYDpgdHJhbnNsYXRlKCR7dGhpcy5wcm9zcGVjdGl2ZVN0ZXBBeGlzUG9zaXRpb259cHgsIDBweClgfXN0b3BFdmVudFByb3BhZ2F0aW9uKGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCksZS5wcmV2ZW50RGVmYXVsdCgpfXN0YXJ0RHJhZyhlLGkscil7aSE9PVFhLkZPQiYmdGhpcy5zdG9wRXZlbnRQcm9wYWdhdGlvbihyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMubW91c2VMaXN0ZW5lciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5zdG9wTGlzdGVuZXIpLHRoaXMuY3VycmVudERyYWdnaW5nRm9iPWUsdGhpcy5hZmZvcmRhbmNlPWl9c3RvcERyYWcoKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMubW91c2VMaXN0ZW5lciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5zdG9wTGlzdGVuZXIpLHRoaXMuY3VycmVudERyYWdnaW5nRm9iPVJyLk5PTkUsdGhpcy5oYXNGb2JNb3ZlZCYmdGhpcy50aW1lU2VsZWN0aW9uJiZ0aGlzLm9uVGltZVNlbGVjdGlvbkNoYW5nZWQuZW1pdCh7dGltZVNlbGVjdGlvbjp0aGlzLnRpbWVTZWxlY3Rpb24sYWZmb3JkYW5jZTp0aGlzLmFmZm9yZGFuY2V9KSx0aGlzLmFmZm9yZGFuY2U9UWEuTk9ORSx0aGlzLmhhc0ZvYk1vdmVkPSExfWlzVmVydGljYWwoKXtyZXR1cm4gdGhpcy5heGlzRGlyZWN0aW9uPT09dmEuVkVSVElDQUx9c2hvdWxkU3dhcEZvYnMoZSl7cmV0dXJuISghdGhpcy50aW1lU2VsZWN0aW9ufHwhdGhpcy50aW1lU2VsZWN0aW9uLmVuZCkmJih0aGlzLmN1cnJlbnREcmFnZ2luZ0ZvYj09PVJyLkVORD9lPHRoaXMudGltZVNlbGVjdGlvbi5zdGFydC5zdGVwOnRoaXMuY3VycmVudERyYWdnaW5nRm9iPT09UnIuU1RBUlQmJmU+dGhpcy50aW1lU2VsZWN0aW9uLmVuZC5zdGVwKX1nZXROZXdUaW1lU2VsZWN0aW9uKGUsaSl7bGV0IHI9ey4uLml9O2lmKCF0aGlzLnRpbWVTZWxlY3Rpb24pcmV0dXJuIHI7aWYoIXRoaXMudGltZVNlbGVjdGlvbi5lbmQpcmV0dXJuIHIuc3RhcnQ9e3N0ZXA6ZX0scjtpZih0aGlzLnNob3VsZFN3YXBGb2JzKGUpKXtsZXRbbyxhXT10aGlzLmN1cnJlbnREcmFnZ2luZ0ZvYj09PVJyLkVORD9bImVuZCIsInN0YXJ0Il06WyJzdGFydCIsImVuZCJdO3JldHVybiB0aGlzLmN1cnJlbnREcmFnZ2luZ0ZvYj1GM2VbYV0scltvXT10aGlzLnRpbWVTZWxlY3Rpb25bYV0sclthXT17c3RlcDplfSxyfXJldHVybiB0aGlzLmN1cnJlbnREcmFnZ2luZ0ZvYj09PVJyLkVORD8oci5lbmQ9e3N0ZXA6ZX0scik6KHIuc3RhcnQ9e3N0ZXA6ZX0scil9Z2V0TmV3U3RlcEZyb21Nb3VzZUV2ZW50KGUpe2xldCBpPW51bGwscj10aGlzLmdldE1vdXNlUG9zaXRpb25Gcm9tRXZlbnQoZSksbz10aGlzLmF4aXNEaXJlY3Rpb249PT12YS5WRVJUSUNBTD9lLm1vdmVtZW50WTplLm1vdmVtZW50WDtyZXR1cm4gdGhpcy5pc01vdmluZ0hpZ2hlcihyLG8pP2k9dGhpcy5jYXJkRm9iSGVscGVyLmdldFN0ZXBIaWdoZXJUaGFuQXhpc1Bvc2l0aW9uKHIpOnRoaXMuaXNNb3ZpbmdMb3dlcihyLG8pJiYoaT10aGlzLmNhcmRGb2JIZWxwZXIuZ2V0U3RlcExvd2VyVGhhbkF4aXNQb3NpdGlvbihyKSksbnVsbD09PWk/bnVsbDppfW1vdXNlTW92ZShlKXtpZih0aGlzLmN1cnJlbnREcmFnZ2luZ0ZvYj09PVJyLk5PTkUpcmV0dXJuO2xldCBpPXRoaXMuZ2V0TmV3U3RlcEZyb21Nb3VzZUV2ZW50KGUpO2lmKG51bGw9PT1pfHwhdGhpcy50aW1lU2VsZWN0aW9uKXJldHVybjtsZXQgcj10aGlzLmdldE5ld1RpbWVTZWxlY3Rpb24oaSx0aGlzLnRpbWVTZWxlY3Rpb24pO3RoaXMub25UaW1lU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHt0aW1lU2VsZWN0aW9uOnJ9KSx0aGlzLmhhc0ZvYk1vdmVkPSEwfW1vdXNlT3ZlclByb3NwZWN0aXZlRm9iQXJlYShlKXtpZihudWxsIT10aGlzLnRpbWVTZWxlY3Rpb24/LmVuZClyZXR1cm47bGV0IGk9dGhpcy5nZXROZXdTdGVwRnJvbU1vdXNlRXZlbnQoZSk7bnVsbCE9PWkmJnRoaXMub25Qcm9zcGVjdGl2ZVN0ZXBDaGFuZ2VkLmVtaXQoaSl9aXNNb3ZpbmdMb3dlcihlLGkpe2lmKHRoaXMuY3VycmVudERyYWdnaW5nRm9iPT09UnIuTk9ORSYmbnVsbD09PXRoaXMucHJvc3BlY3RpdmVTdGVwKXJldHVybiEwO2xldCByPXRoaXMuZ2V0Q3VycmVudEZvYlN0ZXAoKTtyZXR1cm4gdm9pZCAwIT09ciYmZTx0aGlzLmdldERyYWdnaW5nRm9iQ2VudGVyKCkmJmk8MCYmcj50aGlzLmxvd2VzdFN0ZXB9aXNNb3ZpbmdIaWdoZXIoZSxpKXtpZih0aGlzLmN1cnJlbnREcmFnZ2luZ0ZvYj09PVJyLk5PTkUmJm51bGw9PT10aGlzLnByb3NwZWN0aXZlU3RlcClyZXR1cm4hMDtsZXQgcj10aGlzLmdldEN1cnJlbnRGb2JTdGVwKCk7cmV0dXJuIHZvaWQgMCE9PXImJmU+dGhpcy5nZXREcmFnZ2luZ0ZvYkNlbnRlcigpJiZpPjAmJnI8dGhpcy5oaWdoZXN0U3RlcH1nZXREcmFnZ2luZ0ZvYkNlbnRlcigpe2xldCBlPXRoaXMuZ2V0Q3VycmVudEZvYigpPy5uYXRpdmVFbGVtZW50O2lmKCFlKXJldHVybiAwO2xldCBpPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLHI9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0O3JldHVybiB0aGlzLmF4aXNEaXJlY3Rpb249PT12YS5WRVJUSUNBTD9pLXRoaXMucm9vdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDpyLXRoaXMucm9vdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnR9Z2V0Q3VycmVudEZvYigpe3N3aXRjaCh0aGlzLmN1cnJlbnREcmFnZ2luZ0ZvYil7Y2FzZSBSci5TVEFSVDpyZXR1cm4gdGhpcy5zdGFydEZvYldyYXBwZXI7Y2FzZSBSci5FTkQ6cmV0dXJuIHRoaXMuZW5kRm9iV3JhcHBlcjtjYXNlIFJyLk5PTkU6cmV0dXJuIHRoaXMucHJvc3BlY3RpdmVGb2JXcmFwcGVyfX1nZXRDdXJyZW50Rm9iU3RlcCgpe3N3aXRjaCh0aGlzLmN1cnJlbnREcmFnZ2luZ0ZvYil7Y2FzZSBSci5TVEFSVDpyZXR1cm4gdGhpcy50aW1lU2VsZWN0aW9uPy5zdGFydC5zdGVwO2Nhc2UgUnIuRU5EOnJldHVybiB0aGlzLnRpbWVTZWxlY3Rpb24/LmVuZD8uc3RlcDtjYXNlIFJyLk5PTkU6cmV0dXJuIHRoaXMucHJvc3BlY3RpdmVTdGVwPz92b2lkIDB9fWdldE1vdXNlUG9zaXRpb25Gcm9tRXZlbnQoZSl7cmV0dXJuIHRoaXMuYXhpc0RpcmVjdGlvbj09PXZhLlZFUlRJQ0FMP2UuY2xpZW50WS10aGlzLnJvb3QubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A6ZS5jbGllbnRYLXRoaXMucm9vdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnR9c3RlcFR5cGVkKGUsaSl7aWYobnVsbD09PWkpcmV0dXJuIHZvaWQobnVsbCE9PXRoaXMudGltZVNlbGVjdGlvbi5lbmQmJnRoaXMub25Gb2JSZW1vdmVkKGUpKTtsZXQgcj17Li4udGhpcy50aW1lU2VsZWN0aW9ufTtlPT09UnIuU1RBUlQ/ci5zdGFydD17c3RlcDppfTplPT09UnIuRU5EJiYoci5lbmQ9e3N0ZXA6aX0pLG51bGwhPT1yLmVuZCYmci5zdGFydC5zdGVwPnIuZW5kLnN0ZXAmJihyPXtzdGFydDpyLmVuZCxlbmQ6ci5zdGFydH0pLHRoaXMub25UaW1lU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHt0aW1lU2VsZWN0aW9uOnIsYWZmb3JkYW5jZTpRYS5GT0JfVEVYVH0pfXByb3NwZWN0aXZlRm9iQ2xpY2tlZChlKXtlLnN0b3BQcm9wYWdhdGlvbigpO2xldCBpPXRoaXMuZ2V0UHJvc3BlY3RpdmVUaW1lU2VsZWN0aW9uKCk7IWl8fCh0aGlzLm9uVGltZVNlbGVjdGlvbkNoYW5nZWQuZW1pdCh7YWZmb3JkYW5jZTpRYS5GT0JfQURERUQsdGltZVNlbGVjdGlvbjppfSksdGhpcy5vblByb3NwZWN0aXZlU3RlcENoYW5nZWQuZW1pdChudWxsKSl9Z2V0UHJvc3BlY3RpdmVUaW1lU2VsZWN0aW9uKCl7aWYodGhpcy5wcm9zcGVjdGl2ZVN0ZXApcmV0dXJuIHRoaXMudGltZVNlbGVjdGlvbj97c3RhcnQ6e3N0ZXA6TWF0aC5taW4odGhpcy50aW1lU2VsZWN0aW9uLnN0YXJ0LnN0ZXAsdGhpcy5wcm9zcGVjdGl2ZVN0ZXApfSxlbmQ6e3N0ZXA6TWF0aC5tYXgodGhpcy50aW1lU2VsZWN0aW9uLnN0YXJ0LnN0ZXAsdGhpcy5wcm9zcGVjdGl2ZVN0ZXApfX06e3N0YXJ0OntzdGVwOnRoaXMucHJvc3BlY3RpdmVTdGVwfSxlbmQ6bnVsbH19b25Gb2JSZW1vdmVkKGUpe2UhPT1Sci5FTkQ/bnVsbD09PXRoaXMudGltZVNlbGVjdGlvbi5lbmQ/dGhpcy5vblRpbWVTZWxlY3Rpb25Ub2dnbGVkLmVtaXQoKTp0aGlzLm9uVGltZVNlbGVjdGlvbkNoYW5nZWQuZW1pdCh7YWZmb3JkYW5jZTpRYS5GT0JfUkVNT1ZFRCx0aW1lU2VsZWN0aW9uOntzdGFydDp0aGlzLnRpbWVTZWxlY3Rpb24uZW5kLGVuZDpudWxsfX0pOnRoaXMub25UaW1lU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHthZmZvcmRhbmNlOlFhLkZPQl9SRU1PVkVELHRpbWVTZWxlY3Rpb246ey4uLnRoaXMudGltZVNlbGVjdGlvbixlbmQ6bnVsbH19KX1vblByb3NwZWN0aXZlQXJlYU1vdXNlTGVhdmUoKXt0aGlzLm9uUHJvc3BlY3RpdmVTdGVwQ2hhbmdlZC5lbWl0KG51bGwpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1siY2FyZC1mb2ItY29udHJvbGxlciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJihVZShFM2UsNSksVWUoVDNlLDUpLFVlKEQzZSw1KSksMiZlKXtsZXQgcjtiZShyPXZlKCkpJiYoaS5zdGFydEZvYldyYXBwZXI9ci5maXJzdCksYmUocj12ZSgpKSYmKGkuZW5kRm9iV3JhcHBlcj1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS5wcm9zcGVjdGl2ZUZvYldyYXBwZXI9ci5maXJzdCl9fSxpbnB1dHM6e2F4aXNEaXJlY3Rpb246ImF4aXNEaXJlY3Rpb24iLHRpbWVTZWxlY3Rpb246InRpbWVTZWxlY3Rpb24iLGNhcmRGb2JIZWxwZXI6ImNhcmRGb2JIZWxwZXIiLHN0YXJ0U3RlcEF4aXNQb3NpdGlvbjoic3RhcnRTdGVwQXhpc1Bvc2l0aW9uIixlbmRTdGVwQXhpc1Bvc2l0aW9uOiJlbmRTdGVwQXhpc1Bvc2l0aW9uIixoaWdoZXN0U3RlcDoiaGlnaGVzdFN0ZXAiLGxvd2VzdFN0ZXA6Imxvd2VzdFN0ZXAiLHNob3dFeHRlbmRlZExpbmU6InNob3dFeHRlbmRlZExpbmUiLHByb3NwZWN0aXZlU3RlcDoicHJvc3BlY3RpdmVTdGVwIixwcm9zcGVjdGl2ZVN0ZXBBeGlzUG9zaXRpb246InByb3NwZWN0aXZlU3RlcEF4aXNQb3NpdGlvbiIsYWxsb3dGb2JSZW1vdmFsOiJhbGxvd0ZvYlJlbW92YWwifSxvdXRwdXRzOntvblRpbWVTZWxlY3Rpb25DaGFuZ2VkOiJvblRpbWVTZWxlY3Rpb25DaGFuZ2VkIixvblRpbWVTZWxlY3Rpb25Ub2dnbGVkOiJvblRpbWVTZWxlY3Rpb25Ub2dnbGVkIixvblByb3NwZWN0aXZlU3RlcENoYW5nZWQ6Im9uUHJvc3BlY3RpdmVTdGVwQ2hhbmdlZCJ9LGRlY2xzOjYsdmFyczo0LGNvbnN0czpbWyJjbGFzcyIsInRpbWUtZm9iLXdyYXBwZXIiLDMsInRyYW5zZm9ybSIsNCwibmdJZiJdLFsxLCJwcm9zcGVjdGl2ZS1mb2ItYXJlYSIsMywibmdDbGFzcyIsIm1vdXNlbW92ZSIsImNsaWNrIiwibW91c2VsZWF2ZSJdLFsxLCJ0aW1lLWZvYi13cmFwcGVyIl0sWyJwcm9zcGVjdGl2ZUZvYldyYXBwZXIiLCIiXSxbImNsYXNzIiwiZXh0ZW5kZWQtbGluZSIsNCwibmdJZiJdLFszLCJuZ0NsYXNzIiwiYWxsb3dSZW1vdmFsIiwiaXNQcm9zcGVjdGl2ZSIsInN0ZXAiXSxbMSwiZXh0ZW5kZWQtbGluZSJdLFsic3RhcnRGb2JXcmFwcGVyIiwiIl0sWyJjbGFzcyIsImV4dGVuZGVkLWxpbmUiLDMsIm1vdXNlZG93biIsNCwibmdJZiJdLFsxLCJzdGFydEZvYiIsMywiYWxsb3dSZW1vdmFsIiwibmdDbGFzcyIsInN0ZXAiLCJtb3VzZWRvd24iLCJzdGVwQ2hhbmdlZCIsImZvYlJlbW92ZWQiXSxbMSwiZXh0ZW5kZWQtbGluZSIsMywibW91c2Vkb3duIl0sWyJlbmRGb2JXcmFwcGVyIiwiIl0sWzEsImVuZEZvYiIsMywibmdDbGFzcyIsInN0ZXAiLCJtb3VzZWRvd24iLCJzdGVwQ2hhbmdlZCIsImZvYlJlbW92ZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImRpdiIpLEd0KDEpLFMoMixBM2UsNCw3LCJkaXYiLDApLGYoMywiZGl2IiwxKSxBKCJtb3VzZW1vdmUiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm1vdXNlT3ZlclByb3NwZWN0aXZlRm9iQXJlYShvKX0pKCJjbGljayIsZnVuY3Rpb24obyl7cmV0dXJuIGkucHJvc3BlY3RpdmVGb2JDbGlja2VkKG8pfSkoIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25Qcm9zcGVjdGl2ZUFyZWFNb3VzZUxlYXZlKCl9KSxnKCksV3QoKSxTKDQsUDNlLDQsNiwiZGl2IiwwKSxTKDUsTzNlLDQsNSwiZGl2IiwwKSxnKCkpLDImZSYmKHYoMiksYigibmdJZiIsbnVsbCE9PWkucHJvc3BlY3RpdmVTdGVwKSx2KDEpLGIoIm5nQ2xhc3MiLGkuaXNWZXJ0aWNhbCgpPyJ2ZXJ0aWNhbC1wcm9zcGVjdGl2ZS1hcmVhIjoiaG9yaXpvbnRhbC1wcm9zcGVjdGl2ZS1hcmVhIiksdigxKSxiKCJuZ0lmIixpLnRpbWVTZWxlY3Rpb24pLHYoMSksYigibmdJZiIsaS50aW1lU2VsZWN0aW9uJiZpLnRpbWVTZWxlY3Rpb24uZW5kKSl9LGRlcGVuZGVuY2llczpbd24sTmUsc25lXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOmFsbH0udGltZS1mb2Itd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MH0udmVydGljYWwtZm9iW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0uaG9yaXpvbnRhbC1mb2JbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpfS5leHRlbmRlZC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItc3R5bGU6ZGFzaGVkO2JvcmRlci13aWR0aDowIDFweDtoZWlnaHQ6Y2FsYygxMDAlIC0gMzBweCl9LmV4dGVuZGVkLWxpbmVbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCAxOHB4LCAjY2NjIDE5cHgsICNjY2MgMjFweCwgdHJhbnNwYXJlbnQgMjJweCk7Ym9yZGVyOjA7Y3Vyc29yOmV3LXJlc2l6ZTttYXJnaW4tbGVmdDotMjBweDtwYWRkaW5nOjAgMjBweH0uaG9yaXpvbnRhbC1wcm9zcGVjdGl2ZS1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MDtjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MzBweDt3aWR0aDpjYWxjKDEwMCUgLSA3NHB4KX0ucHJvc3BlY3RpdmUtYXJlYVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpibG9ja30iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLENWPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLmRpc2FibGVJbnRlcmFjdGlvbj0hMSx0aGlzLmFsbG93Rm9iUmVtb3ZhbD0hMCx0aGlzLm9uVGltZVNlbGVjdGlvbkNoYW5nZWQ9bmV3IEYsdGhpcy5vblRpbWVTZWxlY3Rpb25Ub2dnbGVkPW5ldyBGLHRoaXMuYXhpc0RpcmVjdGlvbj12YS5IT1JJWk9OVEFMLHRoaXMuY2FyZEZvYkhlbHBlcj17Z2V0U3RlcEhpZ2hlclRoYW5BeGlzUG9zaXRpb246dGhpcy5nZXRTdGVwSGlnaGVyVGhhbkF4aXNQb3NpdGlvbi5iaW5kKHRoaXMpLGdldFN0ZXBMb3dlclRoYW5BeGlzUG9zaXRpb246dGhpcy5nZXRTdGVwTG93ZXJUaGFuQXhpc1Bvc2l0aW9uLmJpbmQodGhpcyl9LHRoaXMucHJvc3BlY3RpdmVTdGVwPW51bGx9Z2V0QXhpc1Bvc2l0aW9uRnJvbVN0YXJ0U3RlcCgpe3JldHVybiB0aGlzLnRpbWVTZWxlY3Rpb24/dGhpcy5zY2FsZS5mb3J3YXJkKHRoaXMubWluTWF4SG9yaXpvbnRhbFZpZXdFeHRlbmQsWzAsdGhpcy5heGlzU2l6ZV0sdGhpcy50aW1lU2VsZWN0aW9uLnN0YXJ0LnN0ZXApOiIifWdldEF4aXNQb3NpdGlvbkZyb21FbmRTdGVwKCl7cmV0dXJuIHRoaXMudGltZVNlbGVjdGlvbj8uZW5kP3RoaXMuc2NhbGUuZm9yd2FyZCh0aGlzLm1pbk1heEhvcml6b250YWxWaWV3RXh0ZW5kLFswLHRoaXMuYXhpc1NpemVdLHRoaXMudGltZVNlbGVjdGlvbj8uZW5kLnN0ZXA/P3RoaXMubWluTWF4U3RlcC5tYXhTdGVwKTpudWxsfWdldEF4aXNQb3NpdGlvbkZyb21Qcm9zcGVjdGl2ZVN0ZXAoKXtyZXR1cm4gbnVsbD09PXRoaXMucHJvc3BlY3RpdmVTdGVwP251bGw6dGhpcy5zY2FsZS5mb3J3YXJkKHRoaXMubWluTWF4SG9yaXpvbnRhbFZpZXdFeHRlbmQsWzAsdGhpcy5heGlzU2l6ZV0sdGhpcy5wcm9zcGVjdGl2ZVN0ZXApfW9uUHJvc3BlY3RpdmVTdGVwQ2hhbmdlZChlKXt0aGlzLnByb3NwZWN0aXZlU3RlcD1lfWdldEhpZ2hlc3RTdGVwKCl7cmV0dXJuIHRoaXMubWluTWF4U3RlcC5tYXhTdGVwfWdldExvd2VzdFN0ZXAoKXtyZXR1cm4gdGhpcy5taW5NYXhTdGVwLm1pblN0ZXB9Z2V0U3RlcEhpZ2hlclRoYW5BeGlzUG9zaXRpb24oZSl7cmV0dXJuIHRoaXMuZ2V0U3RlcEF0TW91c2VQb3N0aW9uKGUpfWdldFN0ZXBMb3dlclRoYW5BeGlzUG9zaXRpb24oZSl7cmV0dXJuIHRoaXMuZ2V0U3RlcEF0TW91c2VQb3N0aW9uKGUpfWdldFN0ZXBBdE1vdXNlUG9zdGlvbihlKXtsZXQgaT1NYXRoLnJvdW5kKHRoaXMuc2NhbGUucmV2ZXJzZSh0aGlzLm1pbk1heEhvcml6b250YWxWaWV3RXh0ZW5kLFswLHRoaXMuYXhpc1NpemVdLGUpKTtyZXR1cm4gaT50aGlzLmdldEhpZ2hlc3RTdGVwKCk/dGhpcy5nZXRIaWdoZXN0U3RlcCgpOmk8dGhpcy5nZXRMb3dlc3RTdGVwKCk/dGhpcy5nZXRMb3dlc3RTdGVwKCk6aX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sic2NhbGFyLWNhcmQtZm9iLWNvbnRyb2xsZXIiXV0saW5wdXRzOnt0aW1lU2VsZWN0aW9uOiJ0aW1lU2VsZWN0aW9uIixzY2FsZToic2NhbGUiLG1pbk1heEhvcml6b250YWxWaWV3RXh0ZW5kOiJtaW5NYXhIb3Jpem9udGFsVmlld0V4dGVuZCIsbWluTWF4U3RlcDoibWluTWF4U3RlcCIsYXhpc1NpemU6ImF4aXNTaXplIixkaXNhYmxlSW50ZXJhY3Rpb246ImRpc2FibGVJbnRlcmFjdGlvbiIsYWxsb3dGb2JSZW1vdmFsOiJhbGxvd0ZvYlJlbW92YWwifSxvdXRwdXRzOntvblRpbWVTZWxlY3Rpb25DaGFuZ2VkOiJvblRpbWVTZWxlY3Rpb25DaGFuZ2VkIixvblRpbWVTZWxlY3Rpb25Ub2dnbGVkOiJvblRpbWVTZWxlY3Rpb25Ub2dnbGVkIn0sZGVjbHM6MSx2YXJzOjEzLGNvbnN0czpbWzMsImF4aXNEaXJlY3Rpb24iLCJ0aW1lU2VsZWN0aW9uIiwic3RhcnRTdGVwQXhpc1Bvc2l0aW9uIiwiZW5kU3RlcEF4aXNQb3NpdGlvbiIsInByb3NwZWN0aXZlU3RlcEF4aXNQb3NpdGlvbiIsImhpZ2hlc3RTdGVwIiwibG93ZXN0U3RlcCIsInByb3NwZWN0aXZlU3RlcCIsImNhcmRGb2JIZWxwZXIiLCJzaG93RXh0ZW5kZWRMaW5lIiwiYWxsb3dGb2JSZW1vdmFsIiwib25Qcm9zcGVjdGl2ZVN0ZXBDaGFuZ2VkIiwib25UaW1lU2VsZWN0aW9uQ2hhbmdlZCIsIm9uVGltZVNlbGVjdGlvblRvZ2dsZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImNhcmQtZm9iLWNvbnRyb2xsZXIiLDApLEEoIm9uUHJvc3BlY3RpdmVTdGVwQ2hhbmdlZCIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25Qcm9zcGVjdGl2ZVN0ZXBDaGFuZ2VkKG8pfSkoIm9uVGltZVNlbGVjdGlvbkNoYW5nZWQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uVGltZVNlbGVjdGlvbkNoYW5nZWQuZW1pdChvKX0pKCJvblRpbWVTZWxlY3Rpb25Ub2dnbGVkIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vblRpbWVTZWxlY3Rpb25Ub2dnbGVkLmVtaXQobyl9KSxnKCkpLDImZSYmKEJ0KCJwb2ludGVyLWV2ZW50cyIsaS5kaXNhYmxlSW50ZXJhY3Rpb24/Im5vbmUiOiJhbGwiKSxiKCJheGlzRGlyZWN0aW9uIixpLmF4aXNEaXJlY3Rpb24pKCJ0aW1lU2VsZWN0aW9uIixpLnRpbWVTZWxlY3Rpb24pKCJzdGFydFN0ZXBBeGlzUG9zaXRpb24iLGkuZ2V0QXhpc1Bvc2l0aW9uRnJvbVN0YXJ0U3RlcCgpKSgiZW5kU3RlcEF4aXNQb3NpdGlvbiIsaS5nZXRBeGlzUG9zaXRpb25Gcm9tRW5kU3RlcCgpKSgicHJvc3BlY3RpdmVTdGVwQXhpc1Bvc2l0aW9uIixpLmdldEF4aXNQb3NpdGlvbkZyb21Qcm9zcGVjdGl2ZVN0ZXAoKSkoImhpZ2hlc3RTdGVwIixpLmdldEhpZ2hlc3RTdGVwKCkpKCJsb3dlc3RTdGVwIixpLmdldExvd2VzdFN0ZXAoKSkoInByb3NwZWN0aXZlU3RlcCIsaS5wcm9zcGVjdGl2ZVN0ZXApKCJjYXJkRm9iSGVscGVyIixpLmNhcmRGb2JIZWxwZXIpKCJzaG93RXh0ZW5kZWRMaW5lIiwhMCkoImFsbG93Rm9iUmVtb3ZhbCIsaS5hbGxvd0ZvYlJlbW92YWwpKX0sZGVwZW5kZW5jaWVzOltmQV0sc3R5bGVzOlsic2NhbGFyLWNhcmQtZm9iLWNvbnRyb2xsZXIgLnRpbWUtZm9iLXdyYXBwZXJ7aGVpZ2h0OjEwMCV9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxOM2U9WyJkYXRhVGFibGVDb250YWluZXIiXTtmdW5jdGlvbiBMM2Uobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJidXR0b24iLDI3KSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gbmUoZSksaWUodygpLm9wZW5UYWJsZUVkaXRNZW51KCkpfSksaygxLCJtYXQtaWNvbiIsMjgpLGYoMiwic3BhbiIpLFQoMywiRWRpdCBUYWJsZSBDb2x1bW5zIiksZygpKCl9fWZ1bmN0aW9uIEIzZShuLHQpezEmbiYmaygwLCJtYXQtc3Bpbm5lciIsMjkpfWZ1bmN0aW9uIFYzZShuLHQpezEmbiYmKGYoMCwidGgiKSxUKDEsIlNtb290aGVkIiksZygpKX1mdW5jdGlvbiBIM2Uobix0KXtpZigxJm4mJihHdCgwKSxrKDEsInRiLWV4cGVyaW1lbnQtYWxpYXMiLDM1KSxUKDIsIi8iKSxXdCgpKSwyJm4pe2xldCBlPXcoKS4kaW1wbGljaXQ7digxKSxiKCJhbGlhcyIsZS5tZXRhZGF0YS5hbGlhcyl9fWZ1bmN0aW9uIHozZShuLHQpe2lmKDEmbiYmKGYoMCwidGQiKSxUKDEpLGcoKSksMiZuKXtsZXQgZT13KCkuJGltcGxpY2l0LGk9dygyKTt2KDEpLFZlKCIgIixpLnZhbHVlRm9ybWF0dGVyLmZvcm1hdFNob3J0KGUuZGF0YVBvaW50LnkpLCIgIil9fWZ1bmN0aW9uIFUzZShuLHQpe2lmKDEmbiYmKEd0KDApLGYoMSwidHIiLDMzKSgyLCJ0ZCIsMzQpLGsoMywic3BhbiIpLGcoKSxmKDQsInRkIiwyKSxTKDUsSDNlLDMsMSwibmctY29udGFpbmVyIiwyNCksVCg2KSxnKCksUyg3LHozZSwyLDEsInRkIiwyNCksZig4LCJ0ZCIpLFQoOSksZygpLGYoMTAsInRkIiksVCgxMSksZygpLGYoMTIsInRkIiksVCgxMyksVSgxNCwiZGF0ZSIpLGcoKSxmKDE1LCJ0ZCIpLFQoMTYpLGcoKSgpLFd0KCkpLDImbil7bGV0IGU9dC4kaW1wbGljaXQsaT13KDIpO3YoMSksbnQoImNsb3Nlc3QiLGUubWV0YWRhdGEuY2xvc2VzdCksdigyKSxCdCgiYmFja2dyb3VuZC1jb2xvciIsZS5tZXRhZGF0YS5jb2xvciksdigyKSxiKCJuZ0lmIixlLm1ldGFkYXRhLmFsaWFzKSx2KDEpLFZlKCIiLGUubWV0YWRhdGEuZGlzcGxheU5hbWUsIiAiKSx2KDEpLGIoIm5nSWYiLGkuc21vb3RoaW5nRW5hYmxlZCksdigyKSxrdChpLnZhbHVlRm9ybWF0dGVyLmZvcm1hdFNob3J0KGUuZGF0YVBvaW50LnZhbHVlKSksdigyKSxrdChpLnN0ZXBGb3JtYXR0ZXIuZm9ybWF0U2hvcnQoZS5kYXRhUG9pbnQuc3RlcCkpLHYoMiksa3QoSnAoMTQsMTEsZS5kYXRhUG9pbnQud2FsbFRpbWUsInNob3J0IikpLHYoMyksVmUoIiAiLGkucmVsYXRpdmVYRm9ybWF0dGVyLmZvcm1hdFJlYWRhYmxlKGUuZGF0YVBvaW50LnJlbGF0aXZlVGltZUluTXMpLCIgIil9fWZ1bmN0aW9uIGozZShuLHQpe2lmKDEmbiYmKGYoMCwidGFibGUiLDMwKSgxLCJ0aGVhZCIpKDIsInRyIiksaygzLCJ0aCIsMzEpLGYoNCwidGgiKSxUKDUsIlJ1biIpLGcoKSxTKDYsVjNlLDIsMCwidGgiLDI0KSxmKDcsInRoIiksVCg4LCJWYWx1ZSIpLGcoKSxmKDksInRoIiksVCgxMCwiU3RlcCIpLGcoKSxmKDExLCJ0aCIpLFQoMTIsIlRpbWUiKSxnKCksZigxMywidGgiKSxUKDE0LCJSZWxhdGl2ZSIpLGcoKSgpKCksZigxNSwidGJvZHkiKSxTKDE2LFUzZSwxNywxNCwibmctY29udGFpbmVyIiwzMiksZygpKCkpLDImbil7bGV0IGU9dC5kYXRhLGk9dC5jdXJzb3JMb2NhdGlvbkluRGF0YUNvb3JkLHI9dC5jdXJzb3JMb2NhdGlvbixvPXcoKTt2KDYpLGIoIm5nSWYiLG8uc21vb3RoaW5nRW5hYmxlZCksdigxMCksYigibmdGb3JPZiIsby5nZXRDdXJzb3JBd2FyZVRvb2x0aXBEYXRhKGUsaSxyKSkoIm5nRm9yVHJhY2tCeSIsby50cmFja0J5VG9vbHRpcERhdHVtKX19ZnVuY3Rpb24gRzNlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiYnV0dG9uIiw0MSksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIG5lKGUpLGllKHcoMikudG9nZ2xlVGFibGVFeHBhbmRlZCgpKX0pLGsoMSwibWF0LWljb24iLDkpLGcoKX1pZigyJm4pe2xldCBlPXcoMik7YigidGl0bGUiLGUuc2hvdWxkRXhwYW5kVGFibGUoKT8iRXhwYW5kIFRhYmxlIjoiQ29sbGFwc2UgVGFibGUiKSx2KDEpLGIoInN2Z0ljb24iLGUuc2hvdWxkRXhwYW5kVGFibGUoKT8iZXhwYW5kX21vcmVfMjRweCI6ImV4cGFuZF9sZXNzXzI0cHgiKX19dmFyIFczZT1mdW5jdGlvbihuKXtyZXR1cm57ImRhdGEtdGFibGUtY29udGFpbmVyIjohMCxleHBhbmRlZDpufX07ZnVuY3Rpb24gcTNlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO0d0KDApLGYoMSwiZGl2IiwzNiwzNykoMywic2NhbGFyLWNhcmQtZGF0YS10YWJsZSIsMzgpLEEoInNvcnREYXRhQnkiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkuc29ydERhdGFCeShyKSl9KSgiZWRpdENvbHVtbkhlYWRlcnMiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkuZWRpdENvbHVtbkhlYWRlcnMuZW1pdChyKSl9KSgiYWRkQ29sdW1uIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLmFkZENvbHVtbi5lbWl0KHIpKX0pKCJyZW1vdmVDb2x1bW4iLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkucmVtb3ZlQ29sdW1uLmVtaXQocikpfSkoImhpZGVDb2x1bW4iLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkuaGlkZUNvbHVtbi5lbWl0KHIpKX0pKCJhZGRGaWx0ZXIiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkuYWRkRmlsdGVyLmVtaXQocikpfSkoImxvYWRBbGxDb2x1bW5zIixmdW5jdGlvbigpe3JldHVybiBuZShlKSxpZSh3KCkubG9hZEFsbENvbHVtbnMuZW1pdCgpKX0pLGcoKSgpLGYoNCwiZGl2IiwzOSksUyg1LEczZSwyLDIsImJ1dHRvbiIsNDApLGcoKSxXdCgpfWlmKDImbil7bGV0IGU9dygpO3YoMSksYigibmdDbGFzcyIsVW4oMTUsVzNlLGUuY2FyZFN0YXRlLnRhYmxlRXhwYW5kZWQpKSx2KDIpLGIoImNoYXJ0TWV0YWRhdGFNYXAiLGUuY2hhcnRNZXRhZGF0YU1hcCkoImRhdGFTZXJpZXMiLGUuZGF0YVNlcmllcykoInN0ZXBPckxpbmtlZFRpbWVTZWxlY3Rpb24iLGUuc3RlcE9yTGlua2VkVGltZVNlbGVjdGlvbikoImNvbHVtbkhlYWRlcnMiLGUuY29sdW1uSGVhZGVycykoInNvcnRpbmdJbmZvIixlLnNvcnRpbmdJbmZvKSgiY29sdW1uQ3VzdG9taXphdGlvbkVuYWJsZWQiLGUuY29sdW1uQ3VzdG9taXphdGlvbkVuYWJsZWQpKCJjb2x1bW5Db250ZXh0TWVudXNFbmFibGVkIixlLmNvbHVtbkNvbnRleHRNZW51c0VuYWJsZWQpKCJzbW9vdGhpbmdFbmFibGVkIixlLnNtb290aGluZ0VuYWJsZWQpKCJjb2x1bW5GaWx0ZXJzIixlLmNvbHVtbkZpbHRlcnMpKCJydW5Ub0hwYXJhbU1hcCIsZS5ydW5Ub0hwYXJhbU1hcCkoInNlbGVjdGFibGVDb2x1bW5zIixlLnNlbGVjdGFibGVDb2x1bW5zKSgibnVtQ29sdW1uc0xvYWRlZCIsZS5udW1Db2x1bW5zTG9hZGVkKSgibnVtQ29sdW1uc1RvTG9hZCIsZS5udW1Db2x1bW5zVG9Mb2FkKSx2KDIpLGIoIm5nSWYiLGUuY2FuRXhwYW5kVGFibGUoKSl9fXZhciBYM2U9ZnVuY3Rpb24obil7cmV0dXJuWzAsbl19LFkzZT1mdW5jdGlvbigpe3JldHVybnsib3V0LW9mLXNlbGVjdGVkLXRpbWUiOiEwLGVuZDohMCxyYW5nZTohMH19O2Z1bmN0aW9uIFEzZShuLHQpe2lmKDEmbiYmaygwLCJkaXYiLDM2KSwyJm4pe2xldCBlPXcoMiksaT1lLnZpZXdFeHRlbnQscj1lLmRvbURpbWVuc2lvbixvPWUueFNjYWxlLGE9dygpO0J0KCJsZWZ0IixvLmZvcndhcmQoaS54LFVuKDMsWDNlLHIud2lkdGgpLG51bGw9PWEuc3RlcE9yTGlua2VkVGltZVNlbGVjdGlvbi5lbmQ/bnVsbDphLnN0ZXBPckxpbmtlZFRpbWVTZWxlY3Rpb24uZW5kLnN0ZXApKyJweCIpLGIoIm5nQ2xhc3MiLG1jKDUsWTNlKSl9fXZhciBaM2U9ZnVuY3Rpb24obil7cmV0dXJuW24sMF19LEszZT1mdW5jdGlvbihuKXtyZXR1cm57Im91dC1vZi1zZWxlY3RlZC10aW1lIjohMCxzdGFydDohMCxyYW5nZTpufX07ZnVuY3Rpb24gSjNlKG4sdCl7aWYoMSZuJiYoR3QoMCksaygxLCJkaXYiLDM2KSxTKDIsUTNlLDEsNiwiZGl2Iiw0MiksV3QoKSksMiZuKXtsZXQgZT13KCksaT1lLnZpZXdFeHRlbnQscj1lLmRvbURpbWVuc2lvbixvPWUueFNjYWxlLGE9dygpO3YoMSksQnQoInJpZ2h0IixvLmZvcndhcmQoaS54LFVuKDQsWjNlLHIud2lkdGgpLGEuc3RlcE9yTGlua2VkVGltZVNlbGVjdGlvbi5zdGFydC5zdGVwKSsicHgiKSxiKCJuZ0NsYXNzIixVbig2LEszZSwhKG51bGw9PWEuc3RlcE9yTGlua2VkVGltZVNlbGVjdGlvbi5lbmR8fCFhLnN0ZXBPckxpbmtlZFRpbWVTZWxlY3Rpb24uZW5kLnN0ZXApKSksdigxKSxiKCJuZ0lmIixudWxsPT1hLnN0ZXBPckxpbmtlZFRpbWVTZWxlY3Rpb24uZW5kP251bGw6YS5zdGVwT3JMaW5rZWRUaW1lU2VsZWN0aW9uLmVuZC5zdGVwKX19ZnVuY3Rpb24gJDNlKG4sdCl7MSZuJiZTKDAsSjNlLDMsOCwibmctY29udGFpbmVyIiwyNCksMiZuJiZiKCJuZ0lmIix3KCkuc3RlcE9yTGlua2VkVGltZVNlbGVjdGlvbil9ZnVuY3Rpb24gZUJlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO0d0KDApLGYoMSwic2NhbGFyLWNhcmQtZm9iLWNvbnRyb2xsZXIiLDQzKSxBKCJvblRpbWVTZWxlY3Rpb25DaGFuZ2VkIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygyKS5vblRpbWVTZWxlY3Rpb25DaGFuZ2VkLmVtaXQocikpfSkoIm9uVGltZVNlbGVjdGlvblRvZ2dsZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIG5lKGUpLGllKHcoMikub25Gb2JSZW1vdmVkKCkpfSksZygpLFd0KCl9aWYoMiZuKXtsZXQgZT13KCksaT1lLmludGVyYWN0aW9uU3RhdGUscj1lLnhTY2FsZSxvPWUudmlld0V4dGVudCxhPWUuZG9tRGltZW5zaW9uLHM9dygpO3YoMSksYigiZGlzYWJsZUludGVyYWN0aW9uIiwiTk9ORSIhPT1pKSgidGltZVNlbGVjdGlvbiIscy5zdGVwT3JMaW5rZWRUaW1lU2VsZWN0aW9uKSgic2NhbGUiLHIpKCJtaW5NYXhIb3Jpem9udGFsVmlld0V4dGVuZCIsby54KSgibWluTWF4U3RlcCIscy5taW5NYXhTdGVwKSgiYXhpc1NpemUiLGEud2lkdGgpfX1mdW5jdGlvbiB0QmUobix0KXsxJm4mJlMoMCxlQmUsMiw2LCJuZy1jb250YWluZXIiLDI0KSwyJm4mJmIoIm5nSWYiLHcoKS5zaG93Rm9iQ29udHJvbGxlcigpKX12YXIgZG5lPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpKXt0aGlzLnJlZj1lLHRoaXMuZGlhbG9nPWksdGhpcy5EYXRhTG9hZFN0YXRlPVJlLHRoaXMuUmVuZGVyZXJUeXBlPVlpLHRoaXMuU2NhbGVUeXBlPXRyLHRoaXMub25GdWxsU2l6ZVRvZ2dsZT1uZXcgRix0aGlzLm9uUGluQ2xpY2tlZD1uZXcgRix0aGlzLm9uVGltZVNlbGVjdGlvbkNoYW5nZWQ9bmV3IEYsdGhpcy5vblN0ZXBTZWxlY3RvclRvZ2dsZWQ9bmV3IEYsdGhpcy5vbkRhdGFUYWJsZVNvcnRpbmc9bmV3IEYsdGhpcy5lZGl0Q29sdW1uSGVhZGVycz1uZXcgRix0aGlzLm9wZW5UYWJsZUVkaXRNZW51VG9Nb2RlPW5ldyBGLHRoaXMuYWRkQ29sdW1uPW5ldyBGLHRoaXMucmVtb3ZlQ29sdW1uPW5ldyBGLHRoaXMuYWRkRmlsdGVyPW5ldyBGLHRoaXMubG9hZEFsbENvbHVtbnM9bmV3IEYsdGhpcy5vbkxpbmVDaGFydFpvb209bmV3IEYsdGhpcy5vbkNhcmRTdGF0ZUNoYW5nZWQ9bmV3IEYsdGhpcy5zb3J0aW5nSW5mbz17bmFtZToicnVuIixvcmRlcjpMci5BU0NFTkRJTkd9LHRoaXMueVNjYWxlVHlwZT10ci5MSU5FQVIsdGhpcy5pc1ZpZXdCb3hPdmVycmlkZGVuPSExLHRoaXMucmVsYXRpdmVYRm9ybWF0dGVyPXgwLHRoaXMudmFsdWVGb3JtYXR0ZXI9ZHAsdGhpcy5zdGVwRm9ybWF0dGVyPXkwfXRvZ2dsZVlTY2FsZVR5cGUoKXt0aGlzLnlTY2FsZVR5cGU9dGhpcy55U2NhbGVUeXBlPT09dHIuTElORUFSP3RyLkxPRzEwOnRyLkxJTkVBUn1zb3J0RGF0YUJ5KGUpe3RoaXMuc29ydGluZ0luZm89ZSx0aGlzLm9uRGF0YVRhYmxlU29ydGluZy5lbWl0KGUpfXJlc2V0RG9tYWluKCl7dGhpcy5saW5lQ2hhcnQmJnRoaXMubGluZUNoYXJ0LnZpZXdCb3hSZXNldCgpfXRyYWNrQnlUb29sdGlwRGF0dW0oZSxpKXtyZXR1cm4gaS5pZH1nZXRDdXN0b21YRm9ybWF0dGVyKCl7c3dpdGNoKHRoaXMueEF4aXNUeXBlKXtjYXNlIFBpLlJFTEFUSVZFOnJldHVybiB4MDtjYXNlIFBpLlNURVA6cmV0dXJuIG8zO2RlZmF1bHQ6cmV0dXJufX1nZXRDdXJzb3JBd2FyZVRvb2x0aXBEYXRhKGUsaSxyKXtsZXQgbz1lLm1hcChsPT4oey4uLmwsbWV0YWRhdGE6ey4uLmwubWV0YWRhdGEsY2xvc2VzdDohMSxkaXN0VG9DdXJzb3JQaXhlbHM6TWF0aC5oeXBvdChsLmRvbVBvaW50Lngtci54LGwuZG9tUG9pbnQueS1yLnkpLGRpc3RUb0N1cnNvclg6bC5kYXRhUG9pbnQueC1pLngsZGlzdFRvQ3Vyc29yWTpsLmRhdGFQb2ludC55LWkueX19KSksYT0xLzAscz0wO2ZvcihsZXQgbD0wO2w8by5sZW5ndGg7bCsrKWE+b1tsXS5tZXRhZGF0YS5kaXN0VG9DdXJzb3JQaXhlbHMmJihhPW9bbF0ubWV0YWRhdGEuZGlzdFRvQ3Vyc29yUGl4ZWxzLHM9bCk7c3dpdGNoKG8ubGVuZ3RoJiYob1tzXS5tZXRhZGF0YS5jbG9zZXN0PSEwKSx0aGlzLnRvb2x0aXBTb3J0KXtjYXNlIG9vLkFTQ0VORElORzpyZXR1cm4gby5zb3J0KChsLGMpPT5sLmRhdGFQb2ludC55LWMuZGF0YVBvaW50LnkpO2Nhc2Ugb28uREVTQ0VORElORzpyZXR1cm4gby5zb3J0KChsLGMpPT5jLmRhdGFQb2ludC55LWwuZGF0YVBvaW50LnkpO2Nhc2Ugb28uTkVBUkVTVDpyZXR1cm4gby5zb3J0KChsLGMpPT5sLm1ldGFkYXRhLmRpc3RUb0N1cnNvclBpeGVscy1jLm1ldGFkYXRhLmRpc3RUb0N1cnNvclBpeGVscyk7Y2FzZSBvby5ORUFSRVNUX1k6cmV0dXJuIG8uc29ydCgobCxjKT0+bC5tZXRhZGF0YS5kaXN0VG9DdXJzb3JZLWMubWV0YWRhdGEuZGlzdFRvQ3Vyc29yWSk7Y2FzZSBvby5ERUZBVUxUOmNhc2Ugb28uQUxQSEFCRVRJQ0FMOnJldHVybiBvLnNvcnQoKGwsYyk9PmwubWV0YWRhdGEuZGlzcGxheU5hbWU8Yy5tZXRhZGF0YS5kaXNwbGF5TmFtZT8tMTpsLm1ldGFkYXRhLmRpc3BsYXlOYW1lPmMubWV0YWRhdGEuZGlzcGxheU5hbWU/MTowKX19b3BlbkRhdGFEb3dubG9hZERpYWxvZygpe3RoaXMuZGlhbG9nLm9wZW4odGhpcy5EYXRhRG93bmxvYWRDb21wb25lbnQse2RhdGE6e2NhcmRJZDp0aGlzLmNhcmRJZH19KX1vbkZvYlJlbW92ZWQoKXt0aGlzLm9uU3RlcFNlbGVjdG9yVG9nZ2xlZC5lbWl0KFphLkZPQl9ERVNFTEVDVCl9c2hvd0RhdGFUYWJsZSgpe3JldHVybiB0aGlzLnhBeGlzVHlwZT09PVBpLlNURVAmJnRoaXMuc3RlcE9yTGlua2VkVGltZVNlbGVjdGlvbn1zaG93Rm9iQ29udHJvbGxlcigpe3JldHVybiB0aGlzLnhBeGlzVHlwZT09PVBpLlNURVAmJnRoaXMubWluTWF4U3RlcH1jYW5FeHBhbmRUYWJsZSgpe3JldHVybiB0aGlzLmRhdGFTZXJpZXMuZmlsdGVyKGk9PkdTKGksdGhpcy5jaGFydE1ldGFkYXRhTWFwKSkubGVuZ3RoPjN9c2hvdWxkRXhwYW5kVGFibGUoKXtyZXR1cm4gQm9vbGVhbih0aGlzLmRhdGFUYWJsZUNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHR8fCF0aGlzLmNhcmRTdGF0ZT8udGFibGVFeHBhbmRlZCl9dG9nZ2xlVGFibGVFeHBhbmRlZCgpe3RoaXMub25DYXJkU3RhdGVDaGFuZ2VkLmVtaXQoey4uLnRoaXMuY2FyZFN0YXRlLHRhYmxlRXhwYW5kZWQ6dGhpcy5zaG91bGRFeHBhbmRUYWJsZSgpfSksdGhpcy5kYXRhVGFibGVDb250YWluZXImJih0aGlzLmRhdGFUYWJsZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodD0iIil9b3BlblRhYmxlRWRpdE1lbnUoKXt0aGlzLm9wZW5UYWJsZUVkaXRNZW51VG9Nb2RlLmVtaXQodGhpcy5yYW5nZUVuYWJsZWQ/V3IuUkFOR0U6V3IuU0lOR0xFKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyh4ZSksQyh5cykpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInNjYWxhci1jYXJkLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJihVZShoXyw1KSxVZShOM2UsNSkpLDImZSl7bGV0IHI7YmUocj12ZSgpKSYmKGkubGluZUNoYXJ0PXIuZmlyc3QpLGJlKHI9dmUoKSkmJihpLmRhdGFUYWJsZUNvbnRhaW5lcj1yLmZpcnN0KX19LGlucHV0czp7Y2FyZElkOiJjYXJkSWQiLGNoYXJ0TWV0YWRhdGFNYXA6ImNoYXJ0TWV0YWRhdGFNYXAiLGNhcmRTdGF0ZToiY2FyZFN0YXRlIixEYXRhRG93bmxvYWRDb21wb25lbnQ6IkRhdGFEb3dubG9hZENvbXBvbmVudCIsZGF0YVNlcmllczoiZGF0YVNlcmllcyIsaWdub3JlT3V0bGllcnM6Imlnbm9yZU91dGxpZXJzIixpc0NhcmRWaXNpYmxlOiJpc0NhcmRWaXNpYmxlIixpc1Bpbm5lZDoiaXNQaW5uZWQiLGxvYWRTdGF0ZToibG9hZFN0YXRlIixzaG93RnVsbFdpZHRoOiJzaG93RnVsbFdpZHRoIixzbW9vdGhpbmdFbmFibGVkOiJzbW9vdGhpbmdFbmFibGVkIix0YWc6InRhZyIsdGl0bGU6InRpdGxlIix0b29sdGlwU29ydDoidG9vbHRpcFNvcnQiLHhBeGlzVHlwZToieEF4aXNUeXBlIix4U2NhbGVUeXBlOiJ4U2NhbGVUeXBlIix1c2VEYXJrTW9kZToidXNlRGFya01vZGUiLGZvcmNlU3ZnOiJmb3JjZVN2ZyIsY29sdW1uQ3VzdG9taXphdGlvbkVuYWJsZWQ6ImNvbHVtbkN1c3RvbWl6YXRpb25FbmFibGVkIixjb2x1bW5Db250ZXh0TWVudXNFbmFibGVkOiJjb2x1bW5Db250ZXh0TWVudXNFbmFibGVkIixsaW5rZWRUaW1lU2VsZWN0aW9uOiJsaW5rZWRUaW1lU2VsZWN0aW9uIixzdGVwT3JMaW5rZWRUaW1lU2VsZWN0aW9uOiJzdGVwT3JMaW5rZWRUaW1lU2VsZWN0aW9uIixtaW5NYXhTdGVwOiJtaW5NYXhTdGVwIix1c2VyVmlld0JveDoidXNlclZpZXdCb3giLGNvbHVtbkhlYWRlcnM6ImNvbHVtbkhlYWRlcnMiLHJhbmdlRW5hYmxlZDoicmFuZ2VFbmFibGVkIixjb2x1bW5GaWx0ZXJzOiJjb2x1bW5GaWx0ZXJzIixzZWxlY3RhYmxlQ29sdW1uczoic2VsZWN0YWJsZUNvbHVtbnMiLG51bUNvbHVtbnNMb2FkZWQ6Im51bUNvbHVtbnNMb2FkZWQiLG51bUNvbHVtbnNUb0xvYWQ6Im51bUNvbHVtbnNUb0xvYWQiLHJ1blRvSHBhcmFtTWFwOiJydW5Ub0hwYXJhbU1hcCJ9LG91dHB1dHM6e29uRnVsbFNpemVUb2dnbGU6Im9uRnVsbFNpemVUb2dnbGUiLG9uUGluQ2xpY2tlZDoib25QaW5DbGlja2VkIixvblRpbWVTZWxlY3Rpb25DaGFuZ2VkOiJvblRpbWVTZWxlY3Rpb25DaGFuZ2VkIixvblN0ZXBTZWxlY3RvclRvZ2dsZWQ6Im9uU3RlcFNlbGVjdG9yVG9nZ2xlZCIsb25EYXRhVGFibGVTb3J0aW5nOiJvbkRhdGFUYWJsZVNvcnRpbmciLGVkaXRDb2x1bW5IZWFkZXJzOiJlZGl0Q29sdW1uSGVhZGVycyIsb3BlblRhYmxlRWRpdE1lbnVUb01vZGU6Im9wZW5UYWJsZUVkaXRNZW51VG9Nb2RlIixhZGRDb2x1bW46ImFkZENvbHVtbiIscmVtb3ZlQ29sdW1uOiJyZW1vdmVDb2x1bW4iLGFkZEZpbHRlcjoiYWRkRmlsdGVyIixsb2FkQWxsQ29sdW1uczoibG9hZEFsbENvbHVtbnMiLG9uTGluZUNoYXJ0Wm9vbToib25MaW5lQ2hhcnRab29tIixvbkNhcmRTdGF0ZUNoYW5nZWQ6Im9uQ2FyZFN0YXRlQ2hhbmdlZCJ9LGRlY2xzOjM4LHZhcnM6MjksY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQsZSxpLHIsbyxhO3JldHVybiB0PSRsb2NhbGl6ZWA6QSBidXR0b24gdGhhdCByZXNldHMgbGluZSBjaGFydCBkb21haW4gdG8gdGhlIGRhdGHikJ9lNjhhNTUyOTQxYWI0MjdhOTllNzQzN2UwODQ0M2YzMGFjNzFjY2Q24pCfMzgzMDY0NjUyMTA1ODI2ODU1ODpGaXQgbGluZSBjaGFydCBkb21haW5zIHRvIGRhdGFgLGU9JGxvY2FsaXplYDpBIGJ1dHRvbiB0byBwaW4gYSBjYXJkLuKQn2U2NjVkYzcxMmJkNWYxOGQ0ZGZhM2EyOWUxMjVkNTY1Y2M1MWUyZjbikJ83Mjg0NjA2NDI2MjM0Mzc1MzQ0OlBpbiBjYXJkYCxpPSRsb2NhbGl6ZWA6QSBidXR0b24gb24gbGluZSBjaGFydCB0aGF0IHRvZ2dsZXMgZnVsbCBzaXplIG1vZGUu4pCfZmM4Zjc2N2QwYjlmOTMwMTg3YTFiYWUzNDQ3N2FkMjg3MzZlY2UzM+KQnzkxNTcyMTU2MzYzODkyNjU5NzpUb2dnbGUgZnVsbCBzaXplIG1vZGVgLHI9JGxvY2FsaXplYDpBbiBvdmVyZmxvdyBtZW51IGJ1dHRvbiB0aGF0IG9wZW5zIG1vcmUgbGluZSBjaGFydCBvcHRpb25z4pCfYjI2MGZhYjk0NmEzMDc3Y2UyMGZkMjhlMzM2OTc5ZjU4NjcyMGU4ZOKQnzg3ODA1Mzc0MDIxMDMzNjQzNTpNb3JlIGxpbmUgY2hhcnQgb3B0aW9uc2Asbz0kbG9jYWxpemVgOkEgYnV0dG9uIHRoYXQgdG9nZ2xlcyBsb2cgc2NhbGUgb24geS1heGlzIG9uIGEgbGluZSBjaGFydOKQn2ZlOTFmOTZhYjliM2JhY2E1YTQ4OTEzZjJiMGZhZTg0NDgzZDkzZTPikJ8zMzc0NjQ1NjIwNjM4ODgzOTI2OlRvZ2dsZSBZLWF4aXMgbG9nIHNjYWxlIG9uIGxpbmUgY2hhcnRgLGE9JGxvY2FsaXplYDpFeHBhbmQgVGFibGXikJ85ZTU5ZmY1MGJmY2I0NzkyNzJlMmIxMDNlMWU5YjExNTE4ZTJlNGNl4pCfNjM3NDg4MDM0MTM5MzAyMDYxMDpFeHBhbmQgVGFibGVgLFtbMSwiYWx3YXlzLXZpc2libGUiXSxbMSwiaGVhZGluZyJdLFsxLCJuYW1lIl0sWzEsInRhZyIsMywidGl0bGUiLCJ2YWx1ZSJdLFszLCJpc0NsaXBwZWQiXSxbMSwiY29udHJvbHMiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMywiZGlzYWJsZWQiLCJ0aXRsZSIsImNsaWNrIl0sWyJzdmdJY29uIiwic2V0dGluZ3Nfb3ZlcnNjYW5fMjRweCJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsZSwzLCJjbGljayJdLFszLCJzdmdJY29uIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIixpLCJ0aXRsZSIsIlRvZ2dsZSBmdWxsIHNpemUgbW9kZSIsMywiY2xpY2siXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHIsInRpdGxlIiwiTW9yZSBsaW5lIGNoYXJ0IG9wdGlvbnMiLDMsIm1hdE1lbnVUcmlnZ2VyRm9yIl0sWyJzdmdJY29uIiwibW9yZV92ZXJ0XzI0cHgiXSxbIm1lbnUiLCJtYXRNZW51Il0sWyJtYXQtbWVudS1pdGVtIiwiIiwiYXJpYS1sYWJlbCIsbywzLCJjbGljayJdLFsic3ZnSWNvbiIsImxpbmVfd2VpZ2h0XzI0cHgiXSxbIm1hdC1tZW51LWl0ZW0iLCIiLCJhcmlhLWxhYmVsIiwiT3BlbiBkaWFsb2cgdG8gZG93bmxvYWQgZGF0YSIsMywiY2xpY2siXSxbInN2Z0ljb24iLCJnZXRfYXBwXzI0cHgiXSxbIm1hdC1tZW51LWl0ZW0iLCIiLCJhcmlhLWxhYmVsIiwiT3BlbiBtZW51IHRvIGVkaXQgZGF0YSB0YWJsZSBjb2x1bW5zIiwzLCJjbGljayIsNCwibmdJZiJdLFsxLCJjaGFydC1jb250YWluZXIiXSxbImNoYXJ0Q29udGFpbmVyIiwiIl0sWyJkaWFtZXRlciIsIjE4Iiw0LCJuZ0lmIl0sWzMsImRpc2FibGVVcGRhdGUiLCJwcmVmZXJyZWRSZW5kZXJlclR5cGUiLCJzZXJpZXNEYXRhIiwic2VyaWVzTWV0YWRhdGFNYXAiLCJ4U2NhbGVUeXBlIiwieVNjYWxlVHlwZSIsImN1c3RvbVhGb3JtYXR0ZXIiLCJpZ25vcmVZT3V0bGllcnMiLCJ0b29sdGlwVGVtcGxhdGUiLCJ1c2VEYXJrTW9kZSIsInVzZXJWaWV3Qm94IiwiY3VzdG9tVmlzVGVtcGxhdGUiLCJjdXN0b21DaGFydE92ZXJsYXlUZW1wbGF0ZSIsIm9uVmlld0JveE92ZXJyaWRkZW4iLCJ2aWV3Qm94Q2hhbmdlZCJdLFsidG9vbHRpcCIsIiJdLFs0LCJuZ0lmIl0sWyJsaW5lQ2hhcnRDdXN0b21WaXMiLCIiXSxbImxpbmVDaGFydEN1c3RvbVhBeGlzVmlzIiwiIl0sWyJtYXQtbWVudS1pdGVtIiwiIiwiYXJpYS1sYWJlbCIsIk9wZW4gbWVudSB0byBlZGl0IGRhdGEgdGFibGUgY29sdW1ucyIsMywiY2xpY2siXSxbInN2Z0ljb24iLCJlZGl0XzI0cHgiXSxbImRpYW1ldGVyIiwiMTgiXSxbMSwidG9vbHRpcCJdLFsxLCJjaXJjbGUtaGVhZGVyIl0sWzQsIm5nRm9yIiwibmdGb3JPZiIsIm5nRm9yVHJhY2tCeSJdLFsxLCJ0b29sdGlwLXJvdyJdLFsxLCJ0b29sdGlwLXJvdy1jaXJjbGUiXSxbMywiYWxpYXMiXSxbMywibmdDbGFzcyJdLFsiZGF0YVRhYmxlQ29udGFpbmVyIiwiIl0sWzMsImNoYXJ0TWV0YWRhdGFNYXAiLCJkYXRhU2VyaWVzIiwic3RlcE9yTGlua2VkVGltZVNlbGVjdGlvbiIsImNvbHVtbkhlYWRlcnMiLCJzb3J0aW5nSW5mbyIsImNvbHVtbkN1c3RvbWl6YXRpb25FbmFibGVkIiwiY29sdW1uQ29udGV4dE1lbnVzRW5hYmxlZCIsInNtb290aGluZ0VuYWJsZWQiLCJjb2x1bW5GaWx0ZXJzIiwicnVuVG9IcGFyYW1NYXAiLCJzZWxlY3RhYmxlQ29sdW1ucyIsIm51bUNvbHVtbnNMb2FkZWQiLCJudW1Db2x1bW5zVG9Mb2FkIiwic29ydERhdGFCeSIsImVkaXRDb2x1bW5IZWFkZXJzIiwiYWRkQ29sdW1uIiwicmVtb3ZlQ29sdW1uIiwiaGlkZUNvbHVtbiIsImFkZEZpbHRlciIsImxvYWRBbGxDb2x1bW5zIl0sWzEsImJvdHRvbS1hcmVhIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJjbGFzcyIsImV4cGFuZC1idXR0b24iLCJhcmlhLWxhYmVsIixhLDMsInRpdGxlIiwiY2xpY2siLDQsIm5nSWYiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLGEsMSwiZXhwYW5kLWJ1dHRvbiIsMywidGl0bGUiLCJjbGljayJdLFszLCJuZ0NsYXNzIiwibGVmdCIsNCwibmdJZiJdLFszLCJkaXNhYmxlSW50ZXJhY3Rpb24iLCJ0aW1lU2VsZWN0aW9uIiwic2NhbGUiLCJtaW5NYXhIb3Jpem9udGFsVmlld0V4dGVuZCIsIm1pbk1heFN0ZXAiLCJheGlzU2l6ZSIsIm9uVGltZVNlbGVjdGlvbkNoYW5nZWQiLCJvblRpbWVTZWxlY3Rpb25Ub2dnbGVkIl1dfSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmKGYoMCwiZGl2IiwwKSgxLCJkaXYiLDEpKDIsInNwYW4iLDIpLGsoMywidGItdHJ1bmNhdGVkLXBhdGgiLDMpKDQsInZpcy1saW5rZWQtdGltZS1zZWxlY3Rpb24td2FybmluZyIsNCksZygpLGYoNSwic3BhbiIsNSkoNiwiYnV0dG9uIiw2KSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaS5yZXNldERvbWFpbigpfSksVSg3LCJhc3luYyIpLFUoOCwiYXN5bmMiKSxrKDksIm1hdC1pY29uIiw3KSxnKCksZigxMCwiYnV0dG9uIiw4KSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vblBpbkNsaWNrZWQuZW1pdCghaS5pc1Bpbm5lZCl9KSxrKDExLCJtYXQtaWNvbiIsOSksZygpLGYoMTIsImJ1dHRvbiIsMTApLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpLm9uRnVsbFNpemVUb2dnbGUuZW1pdCgpfSksaygxMywibWF0LWljb24iLDkpLGcoKSxmKDE0LCJidXR0b24iLDExKSxrKDE1LCJtYXQtaWNvbiIsMTIpLGcoKSxmKDE2LCJtYXQtbWVudSIsbnVsbCwxMykoMTgsImJ1dHRvbiIsMTQpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpLnRvZ2dsZVlTY2FsZVR5cGUoKX0pLGsoMTksIm1hdC1pY29uIiwxNSksZigyMCwic3BhbiIpLFQoMjEsIlRvZ2dsZSBZLWF4aXMgbG9nIHNjYWxlIiksZygpKCksZigyMiwiYnV0dG9uIiwxNiksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGkub3BlbkRhdGFEb3dubG9hZERpYWxvZygpfSksaygyMywibWF0LWljb24iLDE3KSxmKDI0LCJzcGFuIiksVCgyNSwiRG93bmxvYWQgZGF0YSIpLGcoKSgpLFMoMjYsTDNlLDQsMCwiYnV0dG9uIiwxOCksZygpKCkoKSxmKDI3LCJkaXYiLDE5LDIwKSxTKDI5LEIzZSwxLDAsIm1hdC1zcGlubmVyIiwyMSksZigzMCwibGluZS1jaGFydCIsMjIpLEEoIm9uVmlld0JveE92ZXJyaWRkZW4iLGZ1bmN0aW9uKG8pe3JldHVybiBpLmlzVmlld0JveE92ZXJyaWRkZW49b30pKCJ2aWV3Qm94Q2hhbmdlZCIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25MaW5lQ2hhcnRab29tLmVtaXQobyl9KSxnKCksUygzMSxqM2UsMTcsMywibmctdGVtcGxhdGUiLG51bGwsMjMsanQpLGcoKSgpLFMoMzMscTNlLDYsMTcsIm5nLWNvbnRhaW5lciIsMjQpLFMoMzQsJDNlLDEsMSwibmctdGVtcGxhdGUiLG51bGwsMjUsanQpLFMoMzYsdEJlLDEsMSwibmctdGVtcGxhdGUiLG51bGwsMjYsanQpKSwyJmUpe2xldCByPXN0KDE3KSxvPXN0KDMyKSxhPXN0KDM1KSxzPXN0KDM3KTt2KDMpLFppKCJ0aXRsZSIsaS50YWcpLFppKCJ2YWx1ZSIsaS50aXRsZSksdigxKSxiKCJpc0NsaXBwZWQiLGkubGlua2VkVGltZVNlbGVjdGlvbiYmaS5saW5rZWRUaW1lU2VsZWN0aW9uLmNsaXBwZWQpLHYoMiksYigiZGlzYWJsZWQiLCFpLmxpbmVDaGFydHx8IUcoNywyNSxpLmxpbmVDaGFydC5nZXRJc1ZpZXdCb3hPdmVycmlkZGVuKCkpKSgidGl0bGUiLGkubGluZUNoYXJ0JiZHKDgsMjcsaS5saW5lQ2hhcnQuZ2V0SXNWaWV3Qm94T3ZlcnJpZGRlbigpKT8iTGluZSBjaGFydCBpcyBhbHJlYWR5IGZpdHRlZCB0byBkYXRhLiBXaGVuIGRhdGEgdXBkYXRlcywgdGhlIGxpbmUgY2hhcnQgd2lsbCBhdXRvIGZpdCB0byBpdHMgZG9tYWluLiI6IkZpdCBsaW5lIGNoYXJ0IGRvbWFpbnMgdG8gZGF0YSIpLHYoNCksQmUoInRpdGxlIixpLmlzUGlubmVkPyJVbnBpbiBjYXJkIjoiUGluIGNhcmQiKSx2KDEpLGIoInN2Z0ljb24iLGkuaXNQaW5uZWQ/ImtlZXBfMjRweCI6ImtlZXBfb3V0bGluZV8yNHB4IiksdigyKSxiKCJzdmdJY29uIixpLnNob3dGdWxsV2lkdGg/ImZ1bGxzY3JlZW5fZXhpdF8yNHB4IjoiZnVsbHNjcmVlbl8yNHB4IiksdigxKSxiKCJtYXRNZW51VHJpZ2dlckZvciIsciksdigxMiksYigibmdJZiIsaS5jb2x1bW5DdXN0b21pemF0aW9uRW5hYmxlZCksdigzKSxiKCJuZ0lmIixpLmxvYWRTdGF0ZT09PWkuRGF0YUxvYWRTdGF0ZS5MT0FESU5HKSx2KDEpLGIoImRpc2FibGVVcGRhdGUiLCFpLmlzQ2FyZFZpc2libGUpKCJwcmVmZXJyZWRSZW5kZXJlclR5cGUiLGkuZm9yY2VTdmc/aS5SZW5kZXJlclR5cGUuU1ZHOmkuUmVuZGVyZXJUeXBlLldFQkdMKSgic2VyaWVzRGF0YSIsaS5kYXRhU2VyaWVzKSgic2VyaWVzTWV0YWRhdGFNYXAiLGkuY2hhcnRNZXRhZGF0YU1hcCkoInhTY2FsZVR5cGUiLGkueFNjYWxlVHlwZSkoInlTY2FsZVR5cGUiLGkueVNjYWxlVHlwZSkoImN1c3RvbVhGb3JtYXR0ZXIiLGkuZ2V0Q3VzdG9tWEZvcm1hdHRlcigpKSgiaWdub3JlWU91dGxpZXJzIixpLmlnbm9yZU91dGxpZXJzKSgidG9vbHRpcFRlbXBsYXRlIixvKSgidXNlRGFya01vZGUiLGkudXNlRGFya01vZGUpKCJ1c2VyVmlld0JveCIsaS51c2VyVmlld0JveCkoImN1c3RvbVZpc1RlbXBsYXRlIixhKSgiY3VzdG9tQ2hhcnRPdmVybGF5VGVtcGxhdGUiLHMpLHYoMyksYigibmdJZiIsaS5zaG93RGF0YVRhYmxlKCkpfX0sZGVwZW5kZW5jaWVzOlt3bixubixOZSxLZyxoXyxFcixibixYdSxFZCxZdSxOYyxhbmUsQ1YsSmcsJGcsY3Qsd2ZdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjEwMCU7cGFkZGluZzoxNnB4O3BhZGRpbmctdG9wOjRweH1bX25naG9zdC0lQ09NUCVdOmhhcyguZXhwYW5kLWJ1dHRvbil7cGFkZGluZzo0cHggMTZweCAwfS5hbHdheXMtdmlzaWJsZVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWJhc2lzOjI5OHB4fS5hbHdheXMtdmlzaWJsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDpoYXMoLmV4cGFuZC1idXR0b24pKXtmbGV4LWdyb3c6MX0uaGVhZGluZ1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmb250LXNpemU6MTRweDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW4tYm90dG9tOjRweDtwb3NpdGlvbjpyZWxhdGl2ZX0uaGVhZGluZ1tfbmdjb250ZW50LSVDT01QJV0gICAubmFtZVtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6Z3JpZDtnYXA6NXB4O2dyaWQtdGVtcGxhdGUtY29sdW1uczphdXRvIGF1dG99LmhlYWRpbmdbX25nY29udGVudC0lQ09NUCVdICAgdmlzLXNlbGVjdGVkLXRpbWUtY2xpcHBlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEuMmVtO2xpbmUtaGVpZ2h0OjB9LnRhZ1tfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVufS5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTt3aGl0ZS1zcGFjZTpub3dyYXA7ZmxleC1zaHJpbms6MDttYXJnaW4tcmlnaHQ6LTEycHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uY2hhcnQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZ3JvdzoxO292ZXJmbG93OmhpZGRlbjtyZXNpemU6dmVydGljYWx9LmNoYXJ0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICBtYXQtc3Bpbm5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTFweDt0b3A6MTFweH0uY2hhcnQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxpbmUtY2hhcnRbX25nY29udGVudC0lQ09NUCVde2ZsZXgtZ3JvdzoxfS50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItc3BhY2luZzo0cHg7Zm9udC1zaXplOjEzcHh9LnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246bGVmdH0udG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICAudG9vbHRpcC1yb3dbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcH0udG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICAudG9vbHRpcC1yb3ctY2lyY2xlW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtoZWlnaHQ6MTJweDt3aWR0aDoxMnB4fS50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwLXJvdy1jaXJjbGVbX25nY29udGVudC0lQ09NUCVdID4gc3Bhbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC40KTtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MTBweDt3aWR0aDoxMHB4fS50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbG9zZXN0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwLXJvdy1jaXJjbGVbX25nY29udGVudC0lQ09NUCVdID4gc3Bhbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWNvbG9yOiNmZmY7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZn0ub3V0LW9mLXNlbGVjdGVkLXRpbWVbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlfS5vdXQtb2Ytc2VsZWN0ZWQtdGltZS5zdGFydFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJpZ2h0LXdpZHRoOjJweDttYXJnaW4tbGVmdDotMXB4fS5vdXQtb2Ytc2VsZWN0ZWQtdGltZS5zdGFydC5yYW5nZVtfbmdjb250ZW50LSVDT01QJV17bGVmdDowfS5vdXQtb2Ytc2VsZWN0ZWQtdGltZS5lbmRbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0LXdpZHRoOjJweDttYXJnaW4tcmlnaHQ6LTFweDtyaWdodDowfS5vdXQtb2Ytc2VsZWN0ZWQtdGltZS5yYW5nZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub3V0LW9mLXNlbGVjdGVkLXRpbWUucmFuZ2VbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAub3V0LW9mLXNlbGVjdGVkLXRpbWUucmFuZ2VbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNCl9LmRhdGEtdGFibGUtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwcHg7bWluLWhlaWdodDoxMDBweDttYXgtaGVpZ2h0OjUwZW07b3ZlcmZsb3c6YXV0bztyZXNpemU6dmVydGljYWx9LmRhdGEtdGFibGUtY29udGFpbmVyLmV4cGFuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6YXV0b30uYm90dG9tLWFyZWFbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyfS5ib3R0b20tYXJlYVtfbmdjb250ZW50LSVDT01QJV0gICAuZXhwYW5kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuYm90dG9tLWFyZWFbX25nY29udGVudC0lQ09NUCVdICAgLmV4cGFuZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuYm90dG9tLWFyZWFbX25nY29udGVudC0lQ09NUCVdICAgLmV4cGFuZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpO2JhY2tncm91bmQtY29sb3I6IzMwMzAzMH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpO2Z1bmN0aW9uIGlCZShuLHQpe3JldHVybiBuLmxlbmd0aD09PXQubGVuZ3RoJiZuLmV2ZXJ5KChlLGkpPT57bGV0IHI9dFtpXSxvPWUucG9pbnRzLGE9ci5wb2ludHM7cmV0dXJuIGUucnVuSWQ9PT1yLnJ1bklkJiZvLmxlbmd0aD09PWEubGVuZ3RoJiZvLmV2ZXJ5KChzLGwpPT57bGV0IGM9YVtsXTtyZXR1cm4gcy54PT09Yy54JiZzLnk9PT1jLnl9KX0pfXZhciB1bmU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLnN0b3JlPWUsdGhpcy5EYXRhRG93bmxvYWRDb21wb25lbnQ9SlEsdGhpcy5waW5TdGF0ZUNoYW5nZWQ9bmV3IEYsdGhpcy5pc1Zpc2libGU9ITEsdGhpcy5jb2x1bW5GaWx0ZXJzJD10aGlzLnN0b3JlLnNlbGVjdChYVCksdGhpcy5udW1Db2x1bW5zTG9hZGVkJD10aGlzLnN0b3JlLnNlbGVjdChNYy5nZXROdW1EYXNoYm9hcmRIcGFyYW1zTG9hZGVkKSx0aGlzLm51bUNvbHVtbnNUb0xvYWQkPXRoaXMuc3RvcmUuc2VsZWN0KE1jLmdldE51bURhc2hib2FyZEhwYXJhbXNUb0xvYWQpLHRoaXMudXNlRGFya01vZGUkPXRoaXMuc3RvcmUuc2VsZWN0KFBsKSx0aGlzLmlnbm9yZU91dGxpZXJzJD10aGlzLnN0b3JlLnNlbGVjdChDaCksdGhpcy50b29sdGlwU29ydCQ9dGhpcy5zdG9yZS5zZWxlY3QoeGgpLHRoaXMueEF4aXNUeXBlJD10aGlzLnN0b3JlLnNlbGVjdChPbCksdGhpcy5mb3JjZVN2ZyQ9dGhpcy5zdG9yZS5zZWxlY3QoeUYpLHRoaXMuY29sdW1uQ3VzdG9taXphdGlvbkVuYWJsZWQkPXRoaXMuc3RvcmUuc2VsZWN0KHVTKSx0aGlzLmNvbHVtbkNvbnRleHRNZW51c0VuYWJsZWQkPXRoaXMuc3RvcmUuc2VsZWN0KFQ2KSx0aGlzLnhTY2FsZVR5cGUkPXRoaXMuc3RvcmUuc2VsZWN0KE9sKS5waXBlKHEoaT0+e3N3aXRjaChpKXtjYXNlIFBpLlNURVA6Y2FzZSBQaS5SRUxBVElWRTpyZXR1cm4gdHIuTElORUFSO2Nhc2UgUGkuV0FMTF9USU1FOnJldHVybiB0ci5USU1FO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHhBeGlzVHlwZSBmb3IgbGluZSBjaGFydC4gJHtpfWApfX0pKSx0aGlzLnNjYWxhclNtb290aGluZyQ9dGhpcy5zdG9yZS5zZWxlY3QoX2QpLHRoaXMuc21vb3RoaW5nRW5hYmxlZCQ9dGhpcy5zdG9yZS5zZWxlY3QoX2QpLnBpcGUocShpPT5pPjApKSx0aGlzLnNob3dGdWxsV2lkdGgkPXRoaXMuc3RvcmUuc2VsZWN0KEpzKS5waXBlKHEoaT0+aVt0aGlzLmNhcmRJZF0/LmZ1bGxXaWR0aCkpLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgRWV9b25WaXNpYmlsaXR5Q2hhbmdlKHt2aXNpYmxlOmV9KXt0aGlzLmlzVmlzaWJsZT1lfWlzU2NhbGFyQ2FyZE1ldGFkYXRhKGUpe2xldHtwbHVnaW46aX09ZTtyZXR1cm4gaT09PUFuLlNDQUxBUlN9b25GdWxsU2l6ZVRvZ2dsZSgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goemcoe2NhcmRJZDp0aGlzLmNhcmRJZH0pKX1uZ09uSW5pdCgpe2xldCBpPXRoaXMuc3RvcmUuc2VsZWN0KEtzLHRoaXMuY2FyZElkKS5waXBlKE9lKGw9PiEhbCYmdGhpcy5pc1NjYWxhckNhcmRNZXRhZGF0YShsKSkscShsPT5sKSk7ZnVuY3Rpb24gYShsKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoWyJzbW9vdGhlZCIsbF0pfWxldCBzPXRoaXMuc3RvcmUuc2VsZWN0KHd1LHRoaXMuY2FyZElkKS5waXBlKGl0KHRoaXMubmdVbnN1YnNjcmliZSksT2UobD0+Qm9vbGVhbihsKSkscShsPT5sKSxEYSgxKSkucGlwZShWaSh0aGlzLnN0b3JlLnNlbGVjdChPbCkpLHEoKFtsLGNdKT0+T2JqZWN0LmtleXMobCkubWFwKHA9Pih7cnVuSWQ6cCxwb2ludHM6dGhpcy5zdGVwU2VyaWVzVG9MaW5lU2VyaWVzKGxbcF0sYyl9KSkpLHJpKGlCZSkpLnBpcGUoVmkodGhpcy5zdG9yZS5zZWxlY3QoczEpKSxpdCh0aGlzLm5nVW5zdWJzY3JpYmUpLHEoKFtsLGNdKT0+Yz9mdW5jdGlvbihuKXtsZXQgdD1bXTtmb3IobGV0IGUgb2Ygbil7bGV0IGk9W10scj1OdW1iZXIuaXNGaW5pdGUoZS5wb2ludHNbMF0/LngpP2UucG9pbnRzWzBdLng6LTEvMCxvPVtdO2ZvcihsZXQgYSBvZiBlLnBvaW50cylOdW1iZXIuaXNGaW5pdGUoYS54KT8oYS54PHImJihpLnB1c2goe3Nlcmllc0lkOkpTT04uc3RyaW5naWZ5KFtlLnJ1bklkLGkubGVuZ3RoXSkscnVuSWQ6ZS5ydW5JZCxwb2ludHM6b30pLG89W10pLG8ucHVzaChhKSxyPWEueCk6by5wdXNoKGEpO2kucHVzaCh7c2VyaWVzSWQ6SlNPTi5zdHJpbmdpZnkoW2UucnVuSWQsaS5sZW5ndGhdKSxydW5JZDplLnJ1bklkLHBvaW50czpvfSk7Zm9yKGxldCBhPTA7YTxpLmxlbmd0aDthKyspdC5wdXNoKHsuLi5pW2FdLHBhcnRpdGlvbkluZGV4OmEscGFydGl0aW9uU2l6ZTppLmxlbmd0aH0pfXJldHVybiB0fShsKTpsLm1hcChkPT4oey4uLmQsc2VyaWVzSWQ6ZC5ydW5JZCxwYXJ0aXRpb25JbmRleDowLHBhcnRpdGlvblNpemU6MX0pKSkscShsPT5sLm1hcChjPT57bGV0IGQ9Yy5wb2ludHNbMF0/LndhbGxUaW1lO3JldHVybnsuLi5jLHBvaW50czpjLnBvaW50cy5tYXAodT0+KHsuLi51LHJlbGF0aXZlVGltZUluTXM6dS53YWxsVGltZS1kfSkpfX0pKSxWaSh0aGlzLnN0b3JlLnNlbGVjdChPbCkpLHEoKFtsLGNdKT0+bC5tYXAoZD0+KHsuLi5kLHBvaW50czpkLnBvaW50cy5tYXAodT0+e2xldCBwO3N3aXRjaChjKXtjYXNlIFBpLlJFTEFUSVZFOnA9dS5yZWxhdGl2ZVRpbWVJbk1zO2JyZWFrO2Nhc2UgUGkuV0FMTF9USU1FOnA9dS53YWxsVGltZTticmVhaztkZWZhdWx0OnA9dS5zdGVwfXJldHVybnsuLi51LHg6cH19KX0pKSksRGEoMSkpO3RoaXMudXNlclZpZXdCb3gkPXRoaXMuc3RvcmUuc2VsZWN0KCRGLHRoaXMuY2FyZElkKSx0aGlzLm1pbk1heFN0ZXBzJD1JbihbdGhpcy5zdG9yZS5zZWxlY3QoQlcsdGhpcy5jYXJkSWQpLHRoaXMuc3RvcmUuc2VsZWN0KFZXLHRoaXMuY2FyZElkKV0pLnBpcGUocSgoW2wsY10pPT57aWYobCYmYylyZXR1cm57bWluU3RlcDpNYXRoLm1heChsPy5taW5TdGVwLGM/Lm1pblN0ZXApLG1heFN0ZXA6TWF0aC5taW4obD8ubWF4U3RlcCxjPy5tYXhTdGVwKX19KSksdGhpcy5kYXRhU2VyaWVzJD1zLnBpcGUoVmkodGhpcy5zdG9yZS5zZWxlY3QoX2QpKSxKbigoW2wsY10pPT57bGV0IGQ9bC5tYXAoKHtzZXJpZXNJZDp1LHBvaW50czpwfSk9Pih7aWQ6dSxwb2ludHM6cH0pKTtyZXR1cm4gYzw9MD8kdChkKTpKcihhc3luYyBmdW5jdGlvbihuLHQpe051bWJlci5pc0Zpbml0ZSh0KXx8KHQ9MCksdD1NYXRoLm1heCgwLE1hdGgubWluKHQsMSkpO2xldCBlPVtdO2ZvcihsZXQgaSBvZiBuKXtsZXQgcj1pLnBvaW50c1swXT8ueTtpZihpLnBvaW50cy5ldmVyeShjPT5jLnk9PXIpKXtlLnB1c2goaSk7Y29udGludWV9bGV0IGE9aS5wb2ludHMubGVuZ3RoPjA/MDpOYU4scz0wLGw9aS5wb2ludHMubWFwKGM9PntsZXQgZD1jLnk7aWYoTnVtYmVyLmlzRmluaXRlKGQpKXthPWEqdCsoMS10KSpkLHMrKztsZXQgdT0xPT09dD8xOjEtTWF0aC5wb3codCxzKTtyZXR1cm57eDpjLngseTphL3V9fXJldHVybnt4OmMueCx5OmR9fSk7ZS5wdXNoKHtpZDppLmlkLHBvaW50czpsfSl9cmV0dXJuIGV9KGQsYykpLnBpcGUocSh1PT57bGV0IHA9ZC5tYXAoKGgsbSk9Pih7aWQ6YShoLmlkKSxwb2ludHM6dVttXS5wb2ludHMubWFwKCh7eTpffSxNKT0+KHsuLi5oLnBvaW50c1tNXSx5Ol99KSl9KSk7cmV0dXJuWy4uLmQsLi4ucF19KSl9KSxrbihbXSkpLHRoaXMubGlua2VkVGltZVNlbGVjdGlvbiQ9SW4oW3RoaXMubWluTWF4U3RlcHMkLHRoaXMuc3RvcmUuc2VsZWN0KEV1KSx0aGlzLnN0b3JlLnNlbGVjdChEdSksdGhpcy5zdG9yZS5zZWxlY3QoT2wpXSkucGlwZShxKChbbCxjLGQsdV0pPT5sJiZjJiZ1PT09UGkuU1RFUCYmZD9ZZihkLGwubWluU3RlcCxsLm1heFN0ZXApOm51bGwpKSx0aGlzLnN0ZXBPckxpbmtlZFRpbWVTZWxlY3Rpb24kPXRoaXMuc3RvcmUuc2VsZWN0KEhXLHRoaXMuY2FyZElkKSx0aGlzLmNvbHVtbkhlYWRlcnMkPXRoaXMuc3RvcmUuc2VsZWN0KHpXKHRoaXMuY2FyZElkKSksdGhpcy5jaGFydE1ldGFkYXRhTWFwJD1zLnBpcGUoSm4obD0+SW4obC5tYXAoYz0+dGhpcy5nZXRSdW5EaXNwbGF5TmFtZUFuZEFsaWFzKGMucnVuSWQpLnBpcGUocShkPT4oey4uLmMsLi4uZH0pKSkpKSksVmkodGhpcy5zdG9yZS5zZWxlY3QoUnUpLHRoaXMuc3RvcmUuc2VsZWN0KHpRKSx0aGlzLnN0b3JlLnNlbGVjdChQdSksdGhpcy5zdG9yZS5zZWxlY3QoX2QpKSxDcigwKSxxKChbbCxjLGQsdSxwXSk9PntsZXQgaD17fSxtPXA+MDtmb3IobGV0IF8gb2YgbCl7bGV0e3Nlcmllc0lkOk0scnVuSWQ6eSxkaXNwbGF5TmFtZTp4LGFsaWFzOlIscGFydGl0aW9uSW5kZXg6SSxwYXJ0aXRpb25TaXplOkJ9PV87aFtNXT17dHlwZTpZZy5PUklHSU5BTCxpZDpNLGFsaWFzOlIsZGlzcGxheU5hbWU6Qj4xP2Ake3h9OiAke0l9YDp4LHZpc2libGU6Qm9vbGVhbihjJiZjLmdldCh5KSYmZC5oYXMoeSkpLGNvbG9yOnVbeV0/PyIjZmZmIixhdXg6ITEsb3BhY2l0eToxfX1pZighbSlyZXR1cm4gaDtmb3IobGV0W18sTV1vZiBPYmplY3QuZW50cmllcyhoKSl7bGV0IHk9YShfKTtoW3ldPXsuLi5NLGlkOnksdHlwZTpZZy5ERVJJVkVELGF1eDohMSxvcmlnaW5hbFNlcmllc0lkOl99LE0uYXV4PSEwLE0ub3BhY2l0eT0uMjV9cmV0dXJuIGh9KSxrbih7fSkpLHRoaXMubG9hZFN0YXRlJD10aGlzLnN0b3JlLnNlbGVjdChnZCx0aGlzLmNhcmRJZCksdGhpcy50YWckPWkucGlwZShxKGw9PmwudGFnKSksdGhpcy5jYXJkU3RhdGUkPXRoaXMuc3RvcmUuc2VsZWN0KEpzKS5waXBlKHEobD0+bFt0aGlzLmNhcmRJZF18fHt9KSksdGhpcy50aXRsZSQ9dGhpcy50YWckLnBpcGUocShsPT5aZyhsLHRoaXMuZ3JvdXBOYW1lKSkpLHRoaXMuaXNQaW5uZWQkPXRoaXMuc3RvcmUuc2VsZWN0KFN1LHRoaXMuY2FyZElkKSx0aGlzLnJhbmdlRW5hYmxlZCQ9dGhpcy5zdG9yZS5zZWxlY3QobTEodGhpcy5jYXJkSWQpKSx0aGlzLnJ1blRvSHBhcmFtTWFwJD10aGlzLnN0b3JlLnNlbGVjdChYVyksdGhpcy5zZWxlY3RhYmxlQ29sdW1ucyQ9dGhpcy5zdG9yZS5zZWxlY3QoWVQpfW5nT25EZXN0cm95KCl7dGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKSx0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKX1nZXRSdW5EaXNwbGF5TmFtZUFuZEFsaWFzKGUpe3JldHVybiBJbihbdGhpcy5zdG9yZS5zZWxlY3QoXzEse3J1bklkOmV9KSx0aGlzLnN0b3JlLnNlbGVjdChxcyksdGhpcy5zdG9yZS5zZWxlY3QoYjEse3J1bklkOmV9KV0pLnBpcGUocSgoW2kscixvXSk9PntsZXQgYT1udWxsIT09aT9yW2ldPz9udWxsOm51bGw7cmV0dXJue2Rpc3BsYXlOYW1lOm98fGE/bz8ubmFtZT8/Ii4uLiI6ZSxhbGlhczphfX0pKX1zdGVwU2VyaWVzVG9MaW5lU2VyaWVzKGUsaSl7bGV0IHI9aT09PVBpLlNURVA7cmV0dXJuIGUubWFwKG89PntsZXQgYT0xZTMqby53YWxsVGltZTtyZXR1cm57Li4ubyx4OnI/by5zdGVwOmEseTpvLnZhbHVlLHdhbGxUaW1lOmEscmVsYXRpdmVUaW1lSW5NczowfX0pfW9uRGF0YVRhYmxlU29ydGluZyhlKXt0aGlzLnN0b3JlLmRpc3BhdGNoKHJRKGUpKX1vbkNhcmRTdGF0ZUNoYW5nZWQoZSl7dGhpcy5zdG9yZS5kaXNwYXRjaChmVCh7Y2FyZElkOnRoaXMuY2FyZElkLHNldHRpbmdzOmV9KSl9b25UaW1lU2VsZWN0aW9uQ2hhbmdlZChlKXt0aGlzLnN0b3JlLmRpc3BhdGNoKEhoKHsuLi5lLGNhcmRJZDp0aGlzLmNhcmRJZH0pKX1vblN0ZXBTZWxlY3RvclRvZ2dsZWQoZSl7dGhpcy5zdG9yZS5kaXNwYXRjaChUZCh7YWZmb3JkYW5jZTplLGNhcmRJZDp0aGlzLmNhcmRJZH0pKX1vbkxpbmVDaGFydFpvb20oZSl7dGhpcy5zdG9yZS5kaXNwYXRjaChfeSh7dXNlclZpZXdCb3g6ZSxjYXJkSWQ6dGhpcy5jYXJkSWR9KSl9ZWRpdENvbHVtbkhlYWRlcnMoe3NvdXJjZTplLGRlc3RpbmF0aW9uOmksc2lkZTpyLGRhdGFUYWJsZU1vZGU6b30pe3RoaXMuc3RvcmUuZGlzcGF0Y2goIkhQQVJBTSI9PT1lLnR5cGU/cm8uZGFzaGJvYXJkSHBhcmFtQ29sdW1uT3JkZXJDaGFuZ2VkKHtzb3VyY2U6ZSxkZXN0aW5hdGlvbjppLHNpZGU6cn0pOmpnKHtzb3VyY2U6ZSxkZXN0aW5hdGlvbjppLHNpZGU6cixkYXRhVGFibGVNb2RlOm99KSl9b3BlblRhYmxlRWRpdE1lbnVUb01vZGUoZSl7dGhpcy5zdG9yZS5kaXNwYXRjaChjVCh7bW9kZTplfSkpfW9uQWRkQ29sdW1uKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2gocm8uZGFzaGJvYXJkSHBhcmFtQ29sdW1uQWRkZWQoZSkpfW9uUmVtb3ZlQ29sdW1uKHtoZWFkZXI6ZSxkYXRhVGFibGVNb2RlOml9KXt0aGlzLnN0b3JlLmRpc3BhdGNoKCJIUEFSQU0iPT09ZS50eXBlP3JvLmRhc2hib2FyZEhwYXJhbUNvbHVtblJlbW92ZWQoe2NvbHVtbjplfSk6R2coe2hlYWRlcjplLGNhcmRJZDp0aGlzLmNhcmRJZCxkYXRhVGFibGVNb2RlOml9KSl9YWRkSHBhcmFtRmlsdGVyKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2gocm8uZGFzaGJvYXJkSHBhcmFtRmlsdGVyQWRkZWQoe25hbWU6ZS5uYW1lLGZpbHRlcjplLnZhbHVlfSkpfWxvYWRBbGxDb2x1bW5zKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChyby5sb2FkQWxsRGFzaGJvYXJkSHBhcmFtcygpKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInNjYWxhci1jYXJkIl1dLGlucHV0czp7RGF0YURvd25sb2FkQ29tcG9uZW50OiJEYXRhRG93bmxvYWRDb21wb25lbnQiLGNhcmRJZDoiY2FyZElkIixncm91cE5hbWU6Imdyb3VwTmFtZSJ9LG91dHB1dHM6e3BpblN0YXRlQ2hhbmdlZDoicGluU3RhdGVDaGFuZ2VkIn0sZGVjbHM6MjksdmFyczo4Nyxjb25zdHM6W1sib2JzZXJ2ZUludGVyc2VjdGlvbiIsIiIsMywiY2FyZElkIiwiY2hhcnRNZXRhZGF0YU1hcCIsIkRhdGFEb3dubG9hZENvbXBvbmVudCIsImRhdGFTZXJpZXMiLCJpZ25vcmVPdXRsaWVycyIsImlzQ2FyZFZpc2libGUiLCJpc1Bpbm5lZCIsImxvYWRTdGF0ZSIsInNob3dGdWxsV2lkdGgiLCJzbW9vdGhpbmdFbmFibGVkIiwidGFnIiwidGl0bGUiLCJjYXJkU3RhdGUiLCJ0b29sdGlwU29ydCIsInhBeGlzVHlwZSIsInhTY2FsZVR5cGUiLCJ1c2VEYXJrTW9kZSIsImxpbmtlZFRpbWVTZWxlY3Rpb24iLCJzdGVwT3JMaW5rZWRUaW1lU2VsZWN0aW9uIiwiZm9yY2VTdmciLCJjb2x1bW5DdXN0b21pemF0aW9uRW5hYmxlZCIsImNvbHVtbkNvbnRleHRNZW51c0VuYWJsZWQiLCJtaW5NYXhTdGVwIiwidXNlclZpZXdCb3giLCJjb2x1bW5IZWFkZXJzIiwicmFuZ2VFbmFibGVkIiwiY29sdW1uRmlsdGVycyIsInJ1blRvSHBhcmFtTWFwIiwic2VsZWN0YWJsZUNvbHVtbnMiLCJudW1Db2x1bW5zTG9hZGVkIiwibnVtQ29sdW1uc1RvTG9hZCIsIm9uRnVsbFNpemVUb2dnbGUiLCJvblBpbkNsaWNrZWQiLCJvblZpc2liaWxpdHlDaGFuZ2UiLCJvblRpbWVTZWxlY3Rpb25DaGFuZ2VkIiwib25TdGVwU2VsZWN0b3JUb2dnbGVkIiwib25EYXRhVGFibGVTb3J0aW5nIiwib25MaW5lQ2hhcnRab29tIiwiZWRpdENvbHVtbkhlYWRlcnMiLCJvbkNhcmRTdGF0ZUNoYW5nZWQiLCJvcGVuVGFibGVFZGl0TWVudVRvTW9kZSIsImFkZENvbHVtbiIsInJlbW92ZUNvbHVtbiIsImFkZEZpbHRlciIsImxvYWRBbGxDb2x1bW5zIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJzY2FsYXItY2FyZC1jb21wb25lbnQiLDApLEEoIm9uRnVsbFNpemVUb2dnbGUiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25GdWxsU2l6ZVRvZ2dsZSgpfSkoIm9uUGluQ2xpY2tlZCIsZnVuY3Rpb24obyl7cmV0dXJuIGkucGluU3RhdGVDaGFuZ2VkLmVtaXQobyl9KSgib25WaXNpYmlsaXR5Q2hhbmdlIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vblZpc2liaWxpdHlDaGFuZ2Uobyl9KSgib25UaW1lU2VsZWN0aW9uQ2hhbmdlZCIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25UaW1lU2VsZWN0aW9uQ2hhbmdlZChvKX0pKCJvblN0ZXBTZWxlY3RvclRvZ2dsZWQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uU3RlcFNlbGVjdG9yVG9nZ2xlZChvKX0pKCJvbkRhdGFUYWJsZVNvcnRpbmciLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uRGF0YVRhYmxlU29ydGluZyhvKX0pKCJvbkxpbmVDaGFydFpvb20iLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uTGluZUNoYXJ0Wm9vbShvKX0pKCJlZGl0Q29sdW1uSGVhZGVycyIsZnVuY3Rpb24obyl7cmV0dXJuIGkuZWRpdENvbHVtbkhlYWRlcnMobyl9KSgib25DYXJkU3RhdGVDaGFuZ2VkIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkNhcmRTdGF0ZUNoYW5nZWQobyl9KSgib3BlblRhYmxlRWRpdE1lbnVUb01vZGUiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9wZW5UYWJsZUVkaXRNZW51VG9Nb2RlKG8pfSkoImFkZENvbHVtbiIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25BZGRDb2x1bW4obyl9KSgicmVtb3ZlQ29sdW1uIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vblJlbW92ZUNvbHVtbihvKX0pKCJhZGRGaWx0ZXIiLGZ1bmN0aW9uKG8pe3JldHVybiBpLmFkZEhwYXJhbUZpbHRlcihvKX0pKCJsb2FkQWxsQ29sdW1ucyIsZnVuY3Rpb24oKXtyZXR1cm4gaS5sb2FkQWxsQ29sdW1ucygpfSksVSgxLCJhc3luYyIpLFUoMiwiYXN5bmMiKSxVKDMsImFzeW5jIiksVSg0LCJhc3luYyIpLFUoNSwiYXN5bmMiKSxVKDYsImFzeW5jIiksVSg3LCJhc3luYyIpLFUoOCwiYXN5bmMiKSxVKDksImFzeW5jIiksVSgxMCwiYXN5bmMiKSxVKDExLCJhc3luYyIpLFUoMTIsImFzeW5jIiksVSgxMywiYXN5bmMiKSxVKDE0LCJhc3luYyIpLFUoMTUsImFzeW5jIiksVSgxNiwiYXN5bmMiKSxVKDE3LCJhc3luYyIpLFUoMTgsImFzeW5jIiksVSgxOSwiYXN5bmMiKSxVKDIwLCJhc3luYyIpLFUoMjEsImFzeW5jIiksVSgyMiwiYXN5bmMiKSxVKDIzLCJhc3luYyIpLFUoMjQsImFzeW5jIiksVSgyNSwiYXN5bmMiKSxVKDI2LCJhc3luYyIpLFUoMjcsImFzeW5jIiksVSgyOCwiYXN5bmMiKSxnKCkpLDImZSYmYigiY2FyZElkIixpLmNhcmRJZCkoImNoYXJ0TWV0YWRhdGFNYXAiLEcoMSwzMSxpLmNoYXJ0TWV0YWRhdGFNYXAkKSkoIkRhdGFEb3dubG9hZENvbXBvbmVudCIsaS5EYXRhRG93bmxvYWRDb21wb25lbnQpKCJkYXRhU2VyaWVzIixHKDIsMzMsaS5kYXRhU2VyaWVzJCkpKCJpZ25vcmVPdXRsaWVycyIsRygzLDM1LGkuaWdub3JlT3V0bGllcnMkKSkoImlzQ2FyZFZpc2libGUiLGkuaXNWaXNpYmxlKSgiaXNQaW5uZWQiLEcoNCwzNyxpLmlzUGlubmVkJCkpKCJsb2FkU3RhdGUiLEcoNSwzOSxpLmxvYWRTdGF0ZSQpKSgic2hvd0Z1bGxXaWR0aCIsRyg2LDQxLGkuc2hvd0Z1bGxXaWR0aCQpKSgic21vb3RoaW5nRW5hYmxlZCIsRyg3LDQzLGkuc21vb3RoaW5nRW5hYmxlZCQpKSgidGFnIixHKDgsNDUsaS50YWckKSkoInRpdGxlIixHKDksNDcsaS50aXRsZSQpKSgiY2FyZFN0YXRlIixHKDEwLDQ5LGkuY2FyZFN0YXRlJCkpKCJ0b29sdGlwU29ydCIsRygxMSw1MSxpLnRvb2x0aXBTb3J0JCkpKCJ4QXhpc1R5cGUiLEcoMTIsNTMsaS54QXhpc1R5cGUkKSkoInhTY2FsZVR5cGUiLEcoMTMsNTUsaS54U2NhbGVUeXBlJCkpKCJ1c2VEYXJrTW9kZSIsRygxNCw1NyxpLnVzZURhcmtNb2RlJCkpKCJsaW5rZWRUaW1lU2VsZWN0aW9uIixHKDE1LDU5LGkubGlua2VkVGltZVNlbGVjdGlvbiQpKSgic3RlcE9yTGlua2VkVGltZVNlbGVjdGlvbiIsRygxNiw2MSxpLnN0ZXBPckxpbmtlZFRpbWVTZWxlY3Rpb24kKSkoImZvcmNlU3ZnIixHKDE3LDYzLGkuZm9yY2VTdmckKSkoImNvbHVtbkN1c3RvbWl6YXRpb25FbmFibGVkIixHKDE4LDY1LGkuY29sdW1uQ3VzdG9taXphdGlvbkVuYWJsZWQkKSkoImNvbHVtbkNvbnRleHRNZW51c0VuYWJsZWQiLEcoMTksNjcsaS5jb2x1bW5Db250ZXh0TWVudXNFbmFibGVkJCkpKCJtaW5NYXhTdGVwIixHKDIwLDY5LGkubWluTWF4U3RlcHMkKSkoInVzZXJWaWV3Qm94IixHKDIxLDcxLGkudXNlclZpZXdCb3gkKSkoImNvbHVtbkhlYWRlcnMiLEcoMjIsNzMsaS5jb2x1bW5IZWFkZXJzJCkpKCJyYW5nZUVuYWJsZWQiLEcoMjMsNzUsaS5yYW5nZUVuYWJsZWQkKSkoImNvbHVtbkZpbHRlcnMiLEcoMjQsNzcsaS5jb2x1bW5GaWx0ZXJzJCkpKCJydW5Ub0hwYXJhbU1hcCIsRygyNSw3OSxpLnJ1blRvSHBhcmFtTWFwJCkpKCJzZWxlY3RhYmxlQ29sdW1ucyIsRygyNiw4MSxpLnNlbGVjdGFibGVDb2x1bW5zJCkpKCJudW1Db2x1bW5zTG9hZGVkIixHKDI3LDgzLGkubnVtQ29sdW1uc0xvYWRlZCQpKSgibnVtQ29sdW1uc1RvTG9hZCIsRygyOCw4NSxpLm51bUNvbHVtbnNUb0xvYWQkKSl9LGRlcGVuZGVuY2llczpbUWcsZG5lLGN0XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpO2Z1bmN0aW9uIGFCZShuLHQsZSl7bGV0IGk9W10se2xlZnQ6cixyaWdodDpvfT10LGE9KG8tcikvZSxzPTAsbD0wO2ZvcihsZXQgYz0wO2M8ZTtjKyspe2xldCBkPXIrYyphLHU9ZCthLHA9Yz09PWUtMSxoPWw7Zm9yKGw9MDtzPG4ubGVuZ3RoOyl7bGV0IG09bltzXSxfPXNCZShtLGQsdSwhcCk7aWYoaCs9Xy5jdXJyLGwrPV8ubmV4dCxtLngrbS5keD51KWJyZWFrO3MrK31pLnB1c2goe3g6ZCxkeDphLHk6aH0pfXJldHVybiBpfWZ1bmN0aW9uIHNCZShuLHQsZSxpKXtsZXQgcj1uLngsbz1uLngrbi5keDtpZihyPmV8fG88dClyZXR1cm57Y3VycjowLG5leHQ6MH07aWYoMD09PW4uZHgpcmV0dXJuIGkmJm8+PWU/e2N1cnI6MCxuZXh0Om4ueX06e2N1cnI6bi55LG5leHQ6MH07bGV0IGE9TWF0aC5taW4obyxlKS1NYXRoLm1heChyLHQpO3JldHVybntjdXJyOm4ueSphL24uZHgsbmV4dDowfX12YXIgbEJlPTFlNCxjQmU9LjAwMSxkQmU9WXIoIi4yfnMiKSx1QmU9WXIoIi40fnIiKSxwQmU9WXIoIi4yfmUiKTtmdW5jdGlvbiBobmUobil7aWYoMD09PW4pcmV0dXJuIjAiO2xldCB0PU1hdGguYWJzKG4pO3JldHVybiB0Pj1sQmU/ZEJlKG4pOnQ8Y0JlP3BCZShuKTp1QmUobil9dmFyIGhCZT1bIm1haW4iXSxtQmU9WyJ4QXhpcyJdLGZCZT1bInlBeGlzIl0sZ0JlPVsiY29udGVudCJdLF9CZT1bImhpc3RvZ3JhbXMiXTtmdW5jdGlvbiBiQmUobix0KXtpZigxJm4mJihxbigpLGYoMCwiZyIpKDEsInRleHQiKSxUKDIpLGcoKSgpKSwyJm4pe2xldCBlPXcoKTtCdCgidHJhbnNmb3JtIixlLmdldENzc1RyYW5zbGF0ZVB4KGUudG9vbHRpcERhdGEueEF4aXMucG9zaXRpb24sOSkpLHYoMiksa3QoZS50b29sdGlwRGF0YS54QXhpcy5sYWJlbCl9fWZ1bmN0aW9uIHZCZShuLHQpe2lmKDEmbiYmKHFuKCksZigwLCJnIikoMSwidGV4dCIpLFQoMiksZygpKCkpLDImbil7bGV0IGU9dygpO0J0KCJ0cmFuc2Zvcm0iLGUuZ2V0R3JvdXBUcmFuc2Zvcm0oZS50b29sdGlwRGF0YS5jbG9zZXN0RGF0dW0pKSx2KDEpLEJlKCJ5IixlLnRvb2x0aXBEYXRhLnlBeGlzLnBvc2l0aW9uKSx2KDEpLFZlKCIgIixlLnRvb2x0aXBEYXRhLnlBeGlzLmxhYmVsLCIgIil9fWZ1bmN0aW9uIHlCZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtxbigpLHVhKCksR3QoMCksZigxLCJoaXN0b2dyYW0tY2FyZC1mb2ItY29udHJvbGxlciIsMTYpLEEoIm9uVGltZVNlbGVjdGlvbkNoYW5nZWQiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkub25MaW5rZWRUaW1lU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHIpKX0pKCJvblRpbWVTZWxlY3Rpb25Ub2dnbGVkIixmdW5jdGlvbigpe3JldHVybiBuZShlKSxpZSh3KCkub25MaW5rZWRUaW1lVG9nZ2xlZC5lbWl0KCkpfSksZygpLFd0KCl9aWYoMiZuKXtsZXQgZT13KCk7digxKSxiKCJ0aW1lU2VsZWN0aW9uIixlLnRpbWVTZWxlY3Rpb24pKCJzdGVwcyIsZS5nZXRTdGVwcygpKSgidGVtcG9yYWxTY2FsZSIsZS5zY2FsZXMudGVtcG9yYWxTY2FsZSl9fWZ1bmN0aW9uIHhCZShuLHQpe2lmKDEmbiYmKHFuKCksZigwLCJnIiksaygxLCJsaW5lIiwxNyksZygpKSwyJm4pe2xldCBlPXQuJGltcGxpY2l0O0J0KCJ0cmFuc2Zvcm0iLHcoKS5nZXRDc3NUcmFuc2xhdGVQeCgwLGUpKX19ZnVuY3Rpb24gQ0JlKG4sdCl7MSZuJiYocW4oKSxrKDAsImxpbmUiLDIxKSl9ZnVuY3Rpb24gTUJlKG4sdCl7aWYoMSZuJiYocW4oKSxrKDAsImNpcmNsZSIsMjIpKSwyJm4pe2xldCBlPXcoKS4kaW1wbGljaXQsaT13KCk7QnQoInRyYW5zZm9ybSIsaS5nZXRDc3NUcmFuc2xhdGVQeChpLmdldFVpQ29vcmRGcm9tQmluRm9yQ29udGVudChpLmdldENsb3Nlc3RCaW5Gcm9tQmluQ29vcmRpbmF0ZShlLGkudG9vbHRpcERhdGEueFBvc2l0aW9uSW5CaW5Db29yZCkpLngsaS5nZXRVaUNvb3JkRnJvbUJpbkZvckNvbnRlbnQoaS5nZXRDbG9zZXN0QmluRnJvbUJpbkNvb3JkaW5hdGUoZSxpLnRvb2x0aXBEYXRhLnhQb3NpdGlvbkluQmluQ29vcmQpKS55KSl9fWZ1bmN0aW9uIHdCZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtxbigpLGYoMCwiZyIsMTgpLEEoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKHIpe2xldCBhPW5lKGUpLiRpbXBsaWNpdDtyZXR1cm4gaWUodygpLnVwZGF0ZUNvbG9yT25Ib3ZlcihyLGEsITApKX0pKCJtb3VzZWxlYXZlIixmdW5jdGlvbihyKXtsZXQgYT1uZShlKS4kaW1wbGljaXQ7cmV0dXJuIGllKHcoKS51cGRhdGVDb2xvck9uSG92ZXIocixhLCExKSl9KSgiY2xpY2siLGZ1bmN0aW9uKCl7bGV0IG89bmUoZSkuJGltcGxpY2l0O3JldHVybiBpZSh3KCkub25MaW5rZWRUaW1lUmFuZ2VDaGFuZ2VkKG8pKX0pLFMoMSxDQmUsMSwwLCJsaW5lIiwxOSksaygyLCJwYXRoIiksUygzLE1CZSwxLDIsImNpcmNsZSIsMjApLGcoKX1pZigyJm4pe2xldCBlPXQuJGltcGxpY2l0LGk9dygpO0J0KCJ0cmFuc2Zvcm0iLGkuZ2V0R3JvdXBUcmFuc2Zvcm0oZSkpKCJjb2xvciIsaS5nZXRIaXN0b2dyYW1GaWxsKGUpKSxudCgiaGlzdG9ncmFtIiwhMCkoIm5vLWNvbG9yIiwhaS5pc0RhdHVtSW5UaW1lU2VsZWN0aW9uUmFuZ2UoZSkpLHYoMSksYigibmdJZiIsaS5tb2RlPT09aS5IaXN0b2dyYW1Nb2RlLk9GRlNFVCksdigxKSxCZSgiZCIsaS5nZXRIaXN0b2dyYW1QYXRoKGUpKSx2KDEpLGIoIm5nSWYiLGkudG9vbHRpcERhdGEpfX1mdW5jdGlvbiBTQmUobix0KXtpZigxJm4mJihxbigpLGsoMCwiY2lyY2xlIiwyMikpLDImbil7bGV0IGU9dygyKTtCZSgiY3giLGUuZ2V0VWlDb29yZEZyb21CaW5Gb3JDb250ZW50KGUudG9vbHRpcERhdGEuY2xvc2VzdEJpbikueCkoImN5IixlLmdldFVpQ29vcmRGcm9tQmluRm9yQ29udGVudChlLnRvb2x0aXBEYXRhLmNsb3Nlc3RCaW4pLnkpfX1mdW5jdGlvbiBFQmUobix0KXtpZigxJm4mJihxbigpLGYoMCwiZyIsNCkoMSwiZyIpLGsoMiwicGF0aCIpLFMoMyxTQmUsMSwyLCJjaXJjbGUiLDIzKSxnKCksZig0LCJnIiwyNCkoNSwidGV4dCIsMjUpLFQoNiksZygpKCkoKSksMiZuKXtsZXQgZT13KCk7digxKSxCdCgidHJhbnNmb3JtIixlLmdldEdyb3VwVHJhbnNmb3JtKGUudG9vbHRpcERhdGEuY2xvc2VzdERhdHVtKSksdigxKSxCZSgiZCIsZS5nZXRIaXN0b2dyYW1QYXRoKGUudG9vbHRpcERhdGEuY2xvc2VzdERhdHVtKSksdigxKSxiKCJuZ0lmIixlLnRvb2x0aXBEYXRhLmNsb3Nlc3RCaW4pLHYoMSksQnQoInRyYW5zZm9ybSIsZS5nZXRDc3NUcmFuc2xhdGVQeChlLnRvb2x0aXBEYXRhLnZhbHVlLnBvc2l0aW9uLngsZS50b29sdGlwRGF0YS52YWx1ZS5wb3NpdGlvbi55KSksdigyKSxrdChlLnRvb2x0aXBEYXRhLnZhbHVlLmxhYmVsKX19dmFyIGdBPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5jaGFuZ2VEZXRlY3Rvcj1lLHRoaXMubW9kZT1Tci5PRkZTRVQsdGhpcy50aW1lUHJvcGVydHk9bm8uU1RFUCx0aGlzLnRpbWVTZWxlY3Rpb249bnVsbCx0aGlzLm9uTGlua2VkVGltZVNlbGVjdGlvbkNoYW5nZWQ9bmV3IEYsdGhpcy5vbkxpbmtlZFRpbWVUb2dnbGVkPW5ldyBGLHRoaXMuSGlzdG9ncmFtTW9kZT1Tcix0aGlzLlRpbWVQcm9wZXJ0eT1ubyx0aGlzLnRvb2x0aXBEYXRhPW51bGwsdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBFZSx0aGlzLmxheW91dD17aGlzdG9ncmFtSGVpZ2h0OjAsY29udGVudENsaWVudFJlY3Q6e2hlaWdodDowLHdpZHRoOjB9fSx0aGlzLnNjYWxlcz1udWxsLHRoaXMuZm9ybWF0dGVycz17YmluTnVtYmVyOmhuZSxjb3VudDpZcigiLjNuIiksd2FsbFRpbWU6bTAoIiVtLyVkICVYIiksc3RlcDpZcigiLjBmIikscmVsYXRpdmU6aT0+WXIoIi4xciIpKGkvMzZlNSkrImgifSx0aGlzLmRvbVZpc2libGU9ITF9bmdPbkNoYW5nZXMoKXt0aGlzLnVwZGF0ZUNoYXJ0SWZWaXNpYmxlKCl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfW5nQWZ0ZXJWaWV3SW5pdCgpe0VpKHRoaXMubWFpbi5uYXRpdmVFbGVtZW50LCJtb3VzZW1vdmUiLHtwYXNzaXZlOiEwfSkucGlwZShpdCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoZT0+dGhpcy5vbk1vdXNlTW92ZShlKSl9Z2V0Q3NzVHJhbnNsYXRlUHgoZSxpKXtyZXR1cm5gdHJhbnNsYXRlKCR7ZX1weCwgJHtpfXB4KWB9Z2V0Q2xvc2VzdEJpbkZyb21CaW5Db29yZGluYXRlKGUsaSl7aWYoIWUuYmlucy5sZW5ndGgpcmV0dXJue3g6MCxkeDowLHk6MH07bGV0IHI9ZS5iaW5zWzBdLG89ZS5iaW5zLnNsaWNlKC0xKVswXTtyZXR1cm4gaTxyLng/cjppPj1vLngrby5keD9vOmUuYmlucy5maW5kKHM9PnMueDw9aSYmaTxzLngrcy5keCl9Z2V0VWlDb29yZEZyb21CaW5Gb3JDb250ZW50KGUpe3JldHVybiB0aGlzLnNjYWxlcz97eDp0aGlzLnNjYWxlcy5iaW5TY2FsZSgkeChlKSkseTp0aGlzLnNjYWxlcy5jb3VudFNjYWxlKGUueSl9Ont4OjAseTowfX1nZXRIaXN0b2dyYW1QYXRoKGUpe2lmKCF0aGlzLnNjYWxlc3x8IWUuYmlucy5sZW5ndGgpcmV0dXJuIiI7bGV0IGk9dGhpcy5zY2FsZXMuYmluU2NhbGUscj10aGlzLnNjYWxlcy5jb3VudFNjYWxlLG89ZS5iaW5zWzBdLGE9ZS5iaW5zLnNsaWNlKC0xKVswXSxzPVtgTSR7aSgkeChvKSl9LCR7cigwKX1gXTtmb3IobGV0IGwgb2YgZS5iaW5zKXMucHVzaChgTCR7aSgkeChsKSl9LCR7cihsLnkpfWApO3JldHVybiBzLnB1c2goYEwke2koJHgoYSkpfSwke3IoMCl9YCkscy5qb2luKCIiKX10cmFja0J5V2FsbFRpbWUoZSl7cmV0dXJuIGUud2FsbFRpbWV9Z2V0R3JvdXBUcmFuc2Zvcm0oZSl7cmV0dXJuIHRoaXMuc2NhbGVzJiZ0aGlzLm1vZGUhPT1Tci5PVkVSTEFZP3RoaXMuZ2V0Q3NzVHJhbnNsYXRlUHgoMCx0aGlzLnNjYWxlcy50ZW1wb3JhbFNjYWxlKHRoaXMuZ2V0VGltZVZhbHVlKGUpKSk6IiJ9Z2V0U3RlcHMoKXtyZXR1cm4gdGhpcy5kYXRhLm1hcChlPT5lLnN0ZXApfWlzVGltZVNlbGVjdGlvbkVuYWJsZWQoZSl7cmV0dXJuIEJvb2xlYW4odGhpcy5tb2RlPT09U3IuT0ZGU0VUJiZ0aGlzLnRpbWVQcm9wZXJ0eT09PW5vLlNURVAmJnRoaXMuc2NhbGVzJiZlKX1pc0RhdHVtSW5UaW1lU2VsZWN0aW9uUmFuZ2UoZSl7cmV0dXJuIXRoaXMuaXNUaW1lU2VsZWN0aW9uRW5hYmxlZCh0aGlzLnRpbWVTZWxlY3Rpb24pfHwobnVsbD09PXRoaXMudGltZVNlbGVjdGlvbi5lbmQ/dGhpcy50aW1lU2VsZWN0aW9uLnN0YXJ0LnN0ZXA9PT1lLnN0ZXA6dGhpcy50aW1lU2VsZWN0aW9uLnN0YXJ0LnN0ZXA8PWUuc3RlcCYmdGhpcy50aW1lU2VsZWN0aW9uLmVuZC5zdGVwPj1lLnN0ZXApfWdldEhpc3RvZ3JhbUZpbGwoZSl7cmV0dXJuIHRoaXMuc2NhbGVzP3RoaXMuc2NhbGVzLmQzQ29sb3JTY2FsZSh0aGlzLmdldFRpbWVWYWx1ZShlKSk6IiJ9dXBkYXRlQ29sb3JPbkhvdmVyKGUsaSxyKXshdGhpcy5pc1RpbWVTZWxlY3Rpb25FbmFibGVkKHRoaXMudGltZVNlbGVjdGlvbil8fHRoaXMuaXNEYXR1bUluVGltZVNlbGVjdGlvblJhbmdlKGkpfHwocj9lLnRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCJuby1jb2xvciIpOmUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoIm5vLWNvbG9yIikpfWdldEdyaWRUaWNrWUxvY3MoKXtpZighdGhpcy5zY2FsZXN8fHRoaXMubW9kZT09PVNyLk9GRlNFVClyZXR1cm5bXTtsZXQgZT10aGlzLnNjYWxlcy5jb3VudFNjYWxlO3JldHVybiBlLnRpY2tzKCkubWFwKGk9PmUoaSkpfW9uUmVzaXplKCl7dGhpcy51cGRhdGVDbGllbnRSZWN0cygpLHRoaXMudXBkYXRlQ2hhcnRJZlZpc2libGUoKX1vblZpc2liaWxpdHlDaGFuZ2Uoe3Zpc2libGU6ZX0pe3RoaXMuZG9tVmlzaWJsZT1lLGUmJih0aGlzLnVwZGF0ZUNsaWVudFJlY3RzKCksdGhpcy51cGRhdGVDaGFydElmVmlzaWJsZSgpKX1vbkxpbmtlZFRpbWVSYW5nZUNoYW5nZWQoZSl7aWYoIXRoaXMuaXNUaW1lU2VsZWN0aW9uRW5hYmxlZCh0aGlzLnRpbWVTZWxlY3Rpb24pKXJldHVybjtsZXQgaT10aGlzLnRpbWVTZWxlY3Rpb24uc3RhcnQuc3RlcCxyPXRoaXMudGltZVNlbGVjdGlvbi5lbmQ/LnN0ZXAsbz1lLnN0ZXA8aT9lLnN0ZXA6aSxhPXI7YT12b2lkIDA9PT1hP2Uuc3RlcD5pP2Uuc3RlcDppOmUuc3RlcD5hP2Uuc3RlcDphLChvIT09aXx8YSE9PXIpJiZvIT09YSYmdGhpcy5vbkxpbmtlZFRpbWVTZWxlY3Rpb25DaGFuZ2VkLmVtaXQoe3RpbWVTZWxlY3Rpb246e3N0YXJ0OntzdGVwOm99LGVuZDp7c3RlcDphfX0sYWZmb3JkYW5jZTpRYS5ISVNUT0dSQU1fQ0xJQ0tfVE9fUkFOR0V9KX1nZXRUaW1lVmFsdWUoZSl7c3dpdGNoKHRoaXMudGltZVByb3BlcnR5KXtjYXNlIG5vLldBTExfVElNRTpyZXR1cm4gZS53YWxsVGltZTtjYXNlIG5vLlNURVA6cmV0dXJuIGUuc3RlcDtjYXNlIG5vLlJFTEFUSVZFOnJldHVybiBlLndhbGxUaW1lLXRoaXMuZGF0YVswXS53YWxsVGltZX19dXBkYXRlQ2xpZW50UmVjdHMoKXt0aGlzLmNvbnRlbnQmJih0aGlzLmxheW91dC5jb250ZW50Q2xpZW50UmVjdD10aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLmxheW91dC5oaXN0b2dyYW1IZWlnaHQ9dGhpcy5sYXlvdXQuY29udGVudENsaWVudFJlY3QuaGVpZ2h0LzIuNSl9dXBkYXRlQ2hhcnRJZlZpc2libGUoKXshdGhpcy5kb21WaXNpYmxlfHwodGhpcy5zY2FsZXM9dGhpcy5jb21wdXRlU2NhbGVzKHRoaXMuZGF0YSksdGhpcy5yZW5kZXJYQXhpcygpLHRoaXMucmVuZGVyWUF4aXMoKSx0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKSl9Y29tcHV0ZVNjYWxlcyhlKXtsZXR7d2lkdGg6aSxoZWlnaHQ6cn09dGhpcy5sYXlvdXQuY29udGVudENsaWVudFJlY3Qse21pbjpvLG1heDphfT1tbmUoZSx5PT5mdW5jdGlvbihuLHQpe3JldHVybiBuLnJlZHVjZSgoZSxpKT0+TWF0aC5taW4oZSxpLngpLDEvMCl9KHkuYmlucykseT0+TVYoeS5iaW5zLCh7eDp4LGR4OlJ9KT0+eCtSKSkscz1NVihlLHk9Pk1WKHkuYmlucywoe3k6eH0pPT54KSksbD16bCgpLmRvbWFpbihbbyxhXSkubmljZSgpLGM9dGhpcy5tb2RlIT09U3IuT1ZFUkxBWSYmdGhpcy50aW1lUHJvcGVydHk9PW5vLldBTExfVElNRT9zbSgpOnpsKCksZD1lLm1hcCh5PT50aGlzLmdldFRpbWVWYWx1ZSh5KSkse21pbjp1LG1heDpwfT1tbmUoZCx5PT55KSxoPVt1LHBdO2MuZG9tYWluKGgpO2xldCBtPXpsKCk7bS5kb21haW4oWzAsc10pO2xldCBfPVhoKHRoaXMuY29sb3J8fCIjMDAwIiksTT16bCgpO3JldHVybiBNLmRvbWFpbihoKSxsLnJhbmdlKFswLGldKSxNLnJhbmdlKFtfLmJyaWdodGVyKCksXy5kYXJrZXIoKV0pLE0uaW50ZXJwb2xhdGUodUwpLHRoaXMubW9kZT09PVNyLk9WRVJMQVk/KGMucmFuZ2UoW3Iscl0pLG0ucmFuZ2UoW3IsMF0pKTooYy5yYW5nZShbci0odGhpcy5tb2RlPT09U3IuT0ZGU0VUP3ItdGhpcy5sYXlvdXQuaGlzdG9ncmFtSGVpZ2h0OjApLHJdKSxtLnJhbmdlKFswLC10aGlzLmxheW91dC5oaXN0b2dyYW1IZWlnaHRdKSkse2JpblNjYWxlOmwsZDNDb2xvclNjYWxlOk0sY291bnRTY2FsZTptLHRlbXBvcmFsU2NhbGU6Y319cmVuZGVyWEF4aXMoKXtpZighdGhpcy5zY2FsZXMpcmV0dXJuO2xldHt3aWR0aDplfT10aGlzLmxheW91dC5jb250ZW50Q2xpZW50UmVjdCxpPWZ1bmN0aW9uKG4pe3JldHVybiBhWihITixuKX0odGhpcy5zY2FsZXMuYmluU2NhbGUpLnRpY2tzKE1hdGgubWF4KDIsZS8yMCkpO2kudGlja0Zvcm1hdCh0aGlzLmZvcm1hdHRlcnMuYmluTnVtYmVyKSxpKGFEKHRoaXMueEF4aXMubmF0aXZlRWxlbWVudCkpfWdldFlBeGlzRm9ybWF0dGVyKCl7aWYodGhpcy5tb2RlPT09U3IuT1ZFUkxBWSlyZXR1cm4gdGhpcy5mb3JtYXR0ZXJzLmNvdW50O3N3aXRjaCh0aGlzLnRpbWVQcm9wZXJ0eSl7Y2FzZSBuby5XQUxMX1RJTUU6cmV0dXJuIHRoaXMuZm9ybWF0dGVycy53YWxsVGltZTtjYXNlIG5vLlNURVA6cmV0dXJuIHRoaXMuZm9ybWF0dGVycy5zdGVwO2Nhc2Ugbm8uUkVMQVRJVkU6cmV0dXJuIHRoaXMuZm9ybWF0dGVycy5yZWxhdGl2ZTtkZWZhdWx0OnRocm93IFJhbmdlRXJyb3IoYFkgYXhpcyBmb3JtYXR0ZXIgZm9yICR7dGhpcy50aW1lUHJvcGVydHl9IG11c3QgYmUgaW1wbGVtZW50ZWRgKX19Z2V0TWF4VGlja3MoZSl7bGV0e2hlaWdodDppfT10aGlzLmxheW91dC5jb250ZW50Q2xpZW50UmVjdCxyPWkvMTU7aWYodGhpcy50aW1lUHJvcGVydHk9PT1uby5TVEVQKXtsZXRbbyxhXT1lLmRvbWFpbigpLHM9TWF0aC5tYXgoYS1vKzEsMSk7cmV0dXJuIE1hdGgubWluKHMscil9cmV0dXJuIHJ9cmVuZGVyWUF4aXMoKXtpZighdGhpcy5zY2FsZXMpcmV0dXJuO2xldCBlPXRoaXMubW9kZT09PVNyLk9WRVJMQVk/dGhpcy5zY2FsZXMuY291bnRTY2FsZTp0aGlzLnNjYWxlcy50ZW1wb3JhbFNjYWxlLGk9dGhpcy5nZXRNYXhUaWNrcyhlKSxyPWZ1bmN0aW9uKG4pe3JldHVybiBhWihlRCxuKX0oZSkudGlja3MoTWF0aC5tYXgoMixpKSk7ci50aWNrRm9ybWF0KHRoaXMuZ2V0WUF4aXNGb3JtYXR0ZXIoKSkscihhRCh0aGlzLnlBeGlzLm5hdGl2ZUVsZW1lbnQpKX1maW5kQ2xvc2VzdERhdHVtSW5kZXgoZSl7bGV0IGk9ZS50YXJnZXQscj1pO2Zvcig7aSYmaSE9PXRoaXMuaGlzdG9ncmFtcy5uYXRpdmVFbGVtZW50OylyPWksaT1pLnBhcmVudEVsZW1lbnQ7cmV0dXJuIGk/QXJyYXkuZnJvbShpLmNoaWxkcmVuKS5pbmRleE9mKHIpOi0xfW9uTW91c2VNb3ZlRm9yVGVzdE9ubHkoZSl7cmV0dXJuIHRoaXMub25Nb3VzZU1vdmUoZSl9b25Nb3VzZU1vdmUoZSl7aWYoIXRoaXMuc2NhbGVzKXJldHVybjtsZXQgaT1lLm9mZnNldFgscj1lLm9mZnNldFksbz10aGlzLmZpbmRDbG9zZXN0RGF0dW1JbmRleChlKTtpZihvPDApcmV0dXJuO2xldCBhPXRoaXMuc2NhbGVzLmJpblNjYWxlLmludmVydChpKSxzPXRoaXMuZGF0YVtvXSxsPXRoaXMuZ2V0Q2xvc2VzdEJpbkZyb21CaW5Db29yZGluYXRlKHMsYSk7dGhpcy50b29sdGlwRGF0YT17dmFsdWU6e3Bvc2l0aW9uOnt4OmkseTpyfSxsYWJlbDp0aGlzLm1vZGU9PT1Tci5PRkZTRVQ/dGhpcy5mb3JtYXR0ZXJzLmNvdW50KGwueSk6YFN0ZXA6ICR7dGhpcy5mb3JtYXR0ZXJzLnN0ZXAocy5zdGVwKX1gfSx4QXhpczp7cG9zaXRpb246dGhpcy5nZXRVaUNvb3JkRnJvbUJpbkZvckNvbnRlbnQobCkueCxsYWJlbDp0aGlzLmZvcm1hdHRlcnMuYmluTnVtYmVyKCR4KGwpKX0seUF4aXM6e3Bvc2l0aW9uOnRoaXMuc2NhbGVzLmNvdW50U2NhbGUodGhpcy5tb2RlPT09U3IuT0ZGU0VUPzA6bC55KSxsYWJlbDp0aGlzLm1vZGU9PT1Tci5PRkZTRVQ/dGhpcy5nZXRZQXhpc0Zvcm1hdHRlcigpKHRoaXMuZ2V0VGltZVZhbHVlKHMpKTp0aGlzLmZvcm1hdHRlcnMuYmluTnVtYmVyKGwueSl9LHhQb3NpdGlvbkluQmluQ29vcmQ6YSxjbG9zZXN0RGF0dW06cyxjbG9zZXN0QmluOmx9LHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKFF0KSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sidGItaGlzdG9ncmFtIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmKFVlKGhCZSw1KSxVZShtQmUsNSksVWUoZkJlLDUpLFVlKGdCZSw1KSxVZShfQmUsNSkpLDImZSl7bGV0IHI7YmUocj12ZSgpKSYmKGkubWFpbj1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS54QXhpcz1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS55QXhpcz1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS5jb250ZW50PXIuZmlyc3QpLGJlKHI9dmUoKSkmJihpLmhpc3RvZ3JhbXM9ci5maXJzdCl9fSxpbnB1dHM6e21vZGU6Im1vZGUiLHRpbWVQcm9wZXJ0eToidGltZVByb3BlcnR5Iixjb2xvcjoiY29sb3IiLGRhdGE6ImRhdGEiLHRpbWVTZWxlY3Rpb246InRpbWVTZWxlY3Rpb24ifSxvdXRwdXRzOntvbkxpbmtlZFRpbWVTZWxlY3Rpb25DaGFuZ2VkOiJvbkxpbmtlZFRpbWVTZWxlY3Rpb25DaGFuZ2VkIixvbkxpbmtlZFRpbWVUb2dnbGVkOiJvbkxpbmtlZFRpbWVUb2dnbGVkIn0sZmVhdHVyZXM6W3F0XSxkZWNsczoyMix2YXJzOjE1LGNvbnN0czpbWyJkZXRlY3RSZXNpemUiLCIiLCJvYnNlcnZlSW50ZXJzZWN0aW9uIiwiIiwzLCJvblJlc2l6ZSIsIm9uVmlzaWJpbGl0eUNoYW5nZSJdLFsibWFpbiIsIiJdLFsxLCJheGlzIiwieC1heGlzIl0sWyJ4QXhpcyIsIiJdLFsxLCJ0b29sdGlwIl0sWzMsInRyYW5zZm9ybSIsNCwibmdJZiJdLFsxLCJheGlzIiwieS1heGlzIl0sWyJ5QXhpcyIsIiJdLFs0LCJuZ0lmIl0sWzEsImNvbnRlbnQiXSxbImNvbnRlbnQiLCIiXSxbMSwiZ3JpZCJdLFszLCJ0cmFuc2Zvcm0iLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiaGlzdG9ncmFtcyIsIiJdLFszLCJ0cmFuc2Zvcm0iLCJoaXN0b2dyYW0iLCJuby1jb2xvciIsImNvbG9yIiwibW91c2VlbnRlciIsIm1vdXNlbGVhdmUiLCJjbGljayIsNCwibmdGb3IiLCJuZ0Zvck9mIiwibmdGb3JUcmFja0J5Il0sWyJjbGFzcyIsInRvb2x0aXAiLDQsIm5nSWYiXSxbMSwiaGlzdG9ncmFtLWNhcmQtZm9iIiwzLCJ0aW1lU2VsZWN0aW9uIiwic3RlcHMiLCJ0ZW1wb3JhbFNjYWxlIiwib25UaW1lU2VsZWN0aW9uQ2hhbmdlZCIsIm9uVGltZVNlbGVjdGlvblRvZ2dsZWQiXSxbIngyIiwiMTAwJSIsMSwidGljayJdLFszLCJtb3VzZWVudGVyIiwibW91c2VsZWF2ZSIsImNsaWNrIl0sWyJjbGFzcyIsImJhc2VsaW5lIiwieDIiLCIxMDAlIiw0LCJuZ0lmIl0sWyJyIiwiMiIsMywidHJhbnNmb3JtIiw0LCJuZ0lmIl0sWyJ4MiIsIjEwMCUiLDEsImJhc2VsaW5lIl0sWyJyIiwiMiJdLFsiciIsIjIiLDQsIm5nSWYiXSxbMSwidmFsdWUtbGFiZWwiXSxbIngiLCIzIiwieSIsIi0zIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJkaXYiLDAsMSksQSgib25SZXNpemUiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25SZXNpemUoKX0pKCJvblZpc2liaWxpdHlDaGFuZ2UiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uVmlzaWJpbGl0eUNoYW5nZShvKX0pLHFuKCksZigyLCJzdmciLDIpLGsoMywiZyIsbnVsbCwzKSxmKDUsImciLDQpLFMoNixiQmUsMywzLCJnIiw1KSxnKCkoKSx1YSgpLGYoNywiZGl2Iiw2KSxxbigpLGYoOCwic3ZnIiksayg5LCJnIixudWxsLDcpLGYoMTEsImciLDQpLFMoMTIsdkJlLDMsNCwiZyIsNSksZygpKCksUygxMyx5QmUsMiwzLCJuZy1jb250YWluZXIiLDgpLGcoKSxmKDE0LCJzdmciLDksMTApKDE2LCJnIiwxMSksUygxNyx4QmUsMiwyLCJnIiwxMiksZygpLGYoMTgsImciLG51bGwsMTMpLFMoMjAsd0JlLDQsMTEsImciLDE0KSxnKCksUygyMSxFQmUsNyw3LCJnIiwxNSksZygpKCkpLDImZSYmKFhvKCJtYWluICIraS5tb2RlKyIgIitpLnRpbWVQcm9wZXJ0eSksdig2KSxiKCJuZ0lmIixpLnRvb2x0aXBEYXRhKSx2KDUpLEJ0KCJ0cmFuc2Zvcm0iLGkuZ2V0Q3NzVHJhbnNsYXRlUHgoOSwwKSksdigxKSxiKCJuZ0lmIixpLnRvb2x0aXBEYXRhKSx2KDEpLGIoIm5nSWYiLGkuaXNUaW1lU2VsZWN0aW9uRW5hYmxlZChpLnRpbWVTZWxlY3Rpb24pKSx2KDQpLGIoIm5nRm9yT2YiLGkuZ2V0R3JpZFRpY2tZTG9jcygpKSx2KDEpLG50KCJoaXN0b2dyYW1zIiwhMCkoImxpbmtlZC10aW1lLXNpbmdsZS1zdGVwIixpLnRpbWVTZWxlY3Rpb24mJiFpLnRpbWVTZWxlY3Rpb24uZW5kKSx2KDIpLGIoIm5nRm9yT2YiLGkuZGF0YSkoIm5nRm9yVHJhY2tCeSIsaS50cmFja0J5V2FsbFRpbWUpLHYoMSksYigibmdJZiIsaS50b29sdGlwRGF0YSkpfSxzdHlsZXM6WydbX25naG9zdC0lQ09NUCVdLCAubWFpbltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX1bX25naG9zdC0lQ09NUCVde2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjEwcHh9Lm1haW5bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWFyZWFzOiJjb250ZW50IHktYXhpcyIgIngtYXhpcyAuIjtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDUwcHg7Z3JpZC10ZW1wbGF0ZS1yb3dzOjFmciAzMHB4fS5tYWluLndhbGxfdGltZVtfbmdjb250ZW50LSVDT01QJV17Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciA3NXB4fS50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmJhc2VsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojMDAwfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmJhc2VsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmJhc2VsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZmZmfS5saW5rZWQtdGltZS1mb2JbX25nY29udGVudC0lQ09NUCVdICAgdGV4dFtfbmdjb250ZW50LSVDT01QJV0sIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjEwcHh9LmxpbmtlZC10aW1lLWZvYltfbmdjb250ZW50LSVDT01QJV0gICB0ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLmxpbmtlZC10aW1lLWZvYltfbmdjb250ZW50LSVDT01QJV0gICBjaXJjbGVbX25nY29udGVudC0lQ09NUCVdLCAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICB0ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgY2lyY2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmaWxsOmN1cnJlbnRDb2xvcn0ubGlua2VkLXRpbWUtZm9iW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17ZG9taW5hbnQtYmFzZWxpbmU6aWRlb2dyYXBoaWM7dGV4dC1hbmNob3I6c3RhcnR9LmF4aXNbX25nY29udGVudC0lQ09NUCVdICAgIHtjb2xvcjojNjE2MTYxO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAgLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAge2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmRvbWFpbiwgLmF4aXNbX25nY29udGVudC0lQ09NUCVdICAgICAudGljayB0ZXh0e2Rpc3BsYXk6bm9uZX0uYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC50aWNrOm50aC1jaGlsZCgybisxKSB0ZXh0e2Rpc3BsYXk6aW5pdGlhbH1zdmdbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7cG9pbnRlci1ldmVudHM6dmlzaWJsZVBhaW50ZWR9c3ZnW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxpbmVbX25nY29udGVudC0lQ09NUCVdLCBzdmdbX25nY29udGVudC0lQ09NUCVdICAgY2lyY2xlW19uZ2NvbnRlbnQtJUNPTVAlXSwgc3ZnW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lfXN2Z1tfbmdjb250ZW50LSVDT01QJV0gICBnW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWxsLWNoYW5nZTp0cmFuc2Zvcm19LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOngtYXhpc30ueC1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtkb21pbmFudC1iYXNlbGluZTpoYW5naW5nO3RleHQtYW5jaG9yOm1pZGRsZX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXXtncmlkLWFyZWE6eS1heGlzO292ZXJmbG93OmNsaXAgdmlzaWJsZX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtkb21pbmFudC1iYXNlbGluZTptaWRkbGU7dGV4dC1hbmNob3I6c3RhcnR9Lmhpc3RvZ3JhbS1jYXJkLWZvYltfbmdjb250ZW50LSVDT01QJV17bGVmdDo5cHg7cG9zaXRpb246YWJzb2x1dGV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLnRpY2tbX25nY29udGVudC0lQ09NUCVdLCAuYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC50aWNrIGxpbmV7c3Ryb2tlOiNkZGR9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLnRpY2tbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAudGlja1tfbmdjb250ZW50LSVDT01QJV17c3Ryb2tlOiM1NTV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmF4aXNbX25nY29udGVudC0lQ09NUCVdICAgICAudGljayBsaW5lLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC50aWNrIGxpbmV7c3Ryb2tlOiM1NTV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2dyaWQtYXJlYTpjb250ZW50O292ZXJmbG93OnZpc2libGU7ei1pbmRleDoxfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50aWNrW19uZ2NvbnRlbnQtJUNPTVAlXXtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1kYXNoYXJyYXk6Mn0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBjaXJjbGVbX25nY29udGVudC0lQ09NUCVdLCAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmaWxsOmN1cnJlbnRDb2xvcjtzdHJva2Utb3BhY2l0eTouNjtzdHJva2Utd2lkdGg6MXB4fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNpcmNsZVtfbmdjb250ZW50LSVDT01QJV17ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjYpKTtzdHJva2U6I2ZmZjt3aWxsLWNoYW5nZTp0cmFuc2Zvcm19LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmJhc2VsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtzdHJva2Utb3BhY2l0eTouMTtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZTpjdXJyZW50Q29sb3I7d2lkdGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXXtzdHJva2Utb3BhY2l0eToxO3N0cm9rZTpjdXJyZW50Q29sb3I7ZmlsbDpyZ2JhKDAsMCwwLDApfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uby1jb2xvcltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyMjEsMjIxLDIyMSwuNCkgIWltcG9ydGFudH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAubm8tY29sb3JbX25nY29udGVudC0lQ09NUCVdICAgcGF0aFtfbmdjb250ZW50LSVDT01QJV17c3Ryb2tlLW9wYWNpdHk6LjJ9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLm5vLWNvbG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLm5vLWNvbG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDUxLDUxLDUxLC40KSAhaW1wb3J0YW50fS5vZmZzZXRbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmhpc3RvZ3JhbXNbX25nY29udGVudC0lQ09NUCVdICAgcGF0aFtfbmdjb250ZW50LSVDT01QJV17c3Ryb2tlOiNmZmZ9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm9mZnNldFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuaGlzdG9ncmFtc1tfbmdjb250ZW50LSVDT01QJV0gICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9mZnNldFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuaGlzdG9ncmFtc1tfbmdjb250ZW50LSVDT01QJV0gICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXXtzdHJva2U6IzU1NX0ub2Zmc2V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oaXN0b2dyYW1zLmxpbmtlZC10aW1lLXNpbmdsZS1zdGVwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIFtfbmdjb250ZW50LSVDT01QJV06bm90KC5uby1jb2xvcikgICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXXtzdHJva2U6IzAwMH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub2Zmc2V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oaXN0b2dyYW1zLmxpbmtlZC10aW1lLXNpbmdsZS1zdGVwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIFtfbmdjb250ZW50LSVDT01QJV06bm90KC5uby1jb2xvcikgICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9mZnNldFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuaGlzdG9ncmFtcy5saW5rZWQtdGltZS1zaW5nbGUtc3RlcFtfbmdjb250ZW50LSVDT01QJV0gICBbX25nY29udGVudC0lQ09NUCVdOm5vdCgubm8tY29sb3IpICAgcGF0aFtfbmdjb250ZW50LSVDT01QJV17c3Ryb2tlOiNmZmZ9Lm92ZXJsYXlbX25nY29udGVudC0lQ09NUCVdICAgLngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC50aWNrIGxpbmV7ZGlzcGxheTpub25lfS5vdmVybGF5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBhdGhbX25nY29udGVudC0lQ09NUCVde2ZpbGwtb3BhY2l0eTowO3N0cm9rZTpjdXJyZW50Q29sb3J9LnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdLCAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBjaXJjbGVbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0ubWFpbltfbmdjb250ZW50LSVDT01QJV06aG92ZXIgICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBjaXJjbGVbX25nY29udGVudC0lQ09NUCVdLCAubWFpbltfbmdjb250ZW50LSVDT01QJV06aG92ZXIgICAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpibG9ja30nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpO2Z1bmN0aW9uIE1WKG4sdCl7cmV0dXJuIG4ucmVkdWNlKChlLGkpPT5NYXRoLm1heChlLHQoaSkpLC0xLzApfWZ1bmN0aW9uIG1uZShuLHQsZSl7ZXx8KGU9dCk7bGV0IGk9MS8wLHI9LTEvMDtmb3IobGV0IG8gb2YgbilpPU1hdGgubWluKGksdChvKSkscj1NYXRoLm1heChyLGUobykpO3JldHVybnttaW46aSxtYXg6cn19ZnVuY3Rpb24gJHgobil7cmV0dXJuIG4ueCsuNSpuLmR4fWZ1bmN0aW9uIElCZShuLHQpezEmbiYmKGYoMCwic3BhbiIsMTQpLGsoMSwibWF0LXNwaW5uZXIiLDE1KSxnKCkpfWZ1bmN0aW9uIEFCZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsInRiLWhpc3RvZ3JhbSIsMTYpLEEoIm9uTGlua2VkVGltZVNlbGVjdGlvbkNoYW5nZWQiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkub25MaW5rZWRUaW1lU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHIpKX0pKCJvbkxpbmtlZFRpbWVUb2dnbGVkIixmdW5jdGlvbigpe3JldHVybiBuZShlKSxpZSh3KCkub25MaW5rZWRUaW1lVG9nZ2xlZC5lbWl0KCkpfSksZygpfWlmKDImbil7bGV0IGU9dygpO2IoImRhdGEiLGUuZGF0YSkoIm1vZGUiLGUubW9kZSkoInRpbWVQcm9wZXJ0eSIsZS50aW1lUHJvcGVydHkoZS54QXhpc1R5cGUpKSgiY29sb3IiLGUucnVuQ29sb3JTY2FsZShlLnJ1bklkKSkoInRpbWVTZWxlY3Rpb24iLGUuY29udmVydFRvVGltZVNlbGVjdGlvbihlLmxpbmtlZFRpbWVTZWxlY3Rpb24pKX19ZnVuY3Rpb24gUkJlKG4sdCl7MSZuJiYoZigwLCJkaXYiLDE4KSxUKDEsIiBEYXRhIGZhaWxlZCB0byBsb2FkLiAiKSxnKCkpfWZ1bmN0aW9uIFBCZShuLHQpe2lmKDEmbiYmUygwLFJCZSwyLDAsImRpdiIsMTcpLDImbil7bGV0IGU9dygpO2IoIm5nSWYiLGUubG9hZFN0YXRlPT09ZS5EYXRhTG9hZFN0YXRlLkZBSUxFRCl9fXZhciBrQmU9ZnVuY3Rpb24obil7cmV0dXJue2JhY2tncm91bmRDb2xvcjpufX0sZm5lPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLkRhdGFMb2FkU3RhdGU9UmUsdGhpcy5vbkZ1bGxTaXplVG9nZ2xlPW5ldyBGLHRoaXMub25QaW5DbGlja2VkPW5ldyBGLHRoaXMub25MaW5rZWRUaW1lU2VsZWN0aW9uQ2hhbmdlZD1uZXcgRix0aGlzLm9uTGlua2VkVGltZVRvZ2dsZWQ9bmV3IEZ9dGltZVByb3BlcnR5KGUpe3N3aXRjaChlKXtjYXNlIFBpLlNURVA6cmV0dXJuIG5vLlNURVA7Y2FzZSBQaS5XQUxMX1RJTUU6cmV0dXJuIG5vLldBTExfVElNRTtjYXNlIFBpLlJFTEFUSVZFOnJldHVybiBuby5SRUxBVElWRTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiSW52YWxpZCB4QXhpc1R5cGUgZm9yIGhpc3RvZ3JhbSB0aW1lIHByb3BlcnR5LiIpfX1jb252ZXJ0VG9UaW1lU2VsZWN0aW9uKGUpe3JldHVybiBudWxsPT09ZT9udWxsOntzdGFydDp7c3RlcDplLnN0YXJ0U3RlcH0sZW5kOmUuZW5kU3RlcD97c3RlcDplLmVuZFN0ZXB9Om51bGx9fX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJoaXN0b2dyYW0tY2FyZC1jb21wb25lbnQiXV0saW5wdXRzOntsb2FkU3RhdGU6ImxvYWRTdGF0ZSIsdGl0bGU6InRpdGxlIix0YWc6InRhZyIscnVuSWQ6InJ1bklkIixkYXRhOiJkYXRhIixtb2RlOiJtb2RlIix4QXhpc1R5cGU6InhBeGlzVHlwZSIscnVuQ29sb3JTY2FsZToicnVuQ29sb3JTY2FsZSIsc2hvd0Z1bGxXaWR0aDoic2hvd0Z1bGxXaWR0aCIsaXNQaW5uZWQ6ImlzUGlubmVkIixsaW5rZWRUaW1lU2VsZWN0aW9uOiJsaW5rZWRUaW1lU2VsZWN0aW9uIixpc0Nsb3Nlc3RTdGVwSGlnaGxpZ2h0ZWQ6ImlzQ2xvc2VzdFN0ZXBIaWdobGlnaHRlZCJ9LG91dHB1dHM6e29uRnVsbFNpemVUb2dnbGU6Im9uRnVsbFNpemVUb2dnbGUiLG9uUGluQ2xpY2tlZDoib25QaW5DbGlja2VkIixvbkxpbmtlZFRpbWVTZWxlY3Rpb25DaGFuZ2VkOiJvbkxpbmtlZFRpbWVTZWxlY3Rpb25DaGFuZ2VkIixvbkxpbmtlZFRpbWVUb2dnbGVkOiJvbkxpbmtlZFRpbWVUb2dnbGVkIn0sZGVjbHM6MTYsdmFyczoxNCxjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdCxlO3JldHVybiB0PSRsb2NhbGl6ZWA6QSBidXR0b24gdG8gcGluIGEgY2FyZC7ikJ9lNjY1ZGM3MTJiZDVmMThkNGRmYTNhMjllMTI1ZDU2NWNjNTFlMmY24pCfNzI4NDYwNjQyNjIzNDM3NTM0NDpQaW4gY2FyZGAsZT0kbG9jYWxpemVgOkEgYnV0dG9uIG9uIGEgaGlzdG9ncmFtIGNhcmQgdGhhdCB0b2dnbGVzIGZ1bGwgc2l6ZSBtb2RlLuKQn2ZjOGY3NjdkMGI5ZjkzMDE4N2ExYmFlMzQ0NzdhZDI4NzM2ZWNlMzPikJ85MTU3MjE1NjM2Mzg5MjY1OTc6VG9nZ2xlIGZ1bGwgc2l6ZSBtb2RlYCxbWzEsImhlYWRpbmciXSxbMSwidGFnIl0sWzMsInRpdGxlIiwidmFsdWUiXSxbMywiaXNDbGlwcGVkIiwiaXNDbG9zZXN0U3RlcEhpZ2hsaWdodGVkIl0sWzEsInJ1biJdLFsxLCJkb3QiLDMsIm5nU3R5bGUiXSxbMSwicnVuLXRleHQiLDMsInJ1bklkIl0sWzEsImNvbnRyb2xzIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIix0LDMsImNsaWNrIl0sWzMsInN2Z0ljb24iXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLGUsInRpdGxlIiwiVG9nZ2xlIGZ1bGwgc2l6ZSBtb2RlIiwzLCJjbGljayJdLFsiY2xhc3MiLCJzcGlubmVyIiw0LCJuZ0lmIl0sWzMsImRhdGEiLCJtb2RlIiwidGltZVByb3BlcnR5IiwiY29sb3IiLCJ0aW1lU2VsZWN0aW9uIiwib25MaW5rZWRUaW1lU2VsZWN0aW9uQ2hhbmdlZCIsIm9uTGlua2VkVGltZVRvZ2dsZWQiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsibm9EYXRhIiwiIl0sWzEsInNwaW5uZXIiXSxbImRpYW1ldGVyIiwiMTgiXSxbMywiZGF0YSIsIm1vZGUiLCJ0aW1lUHJvcGVydHkiLCJjb2xvciIsInRpbWVTZWxlY3Rpb24iLCJvbkxpbmtlZFRpbWVTZWxlY3Rpb25DaGFuZ2VkIiwib25MaW5rZWRUaW1lVG9nZ2xlZCJdLFsiY2xhc3MiLCJlbXB0eS1tZXNzYWdlIiw0LCJuZ0lmIl0sWzEsImVtcHR5LW1lc3NhZ2UiXV19LHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiYoZigwLCJkaXYiLDApKDEsImRpdiIsMSksaygyLCJ0Yi10cnVuY2F0ZWQtcGF0aCIsMikoMywidmlzLWxpbmtlZC10aW1lLXNlbGVjdGlvbi13YXJuaW5nIiwzKSxnKCksZig0LCJkaXYiLDQpLGsoNSwic3BhbiIsNSkoNiwiY2FyZC1ydW4tbmFtZSIsNiksZygpLGYoNywic3BhbiIsNykoOCwiYnV0dG9uIiw4KSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vblBpbkNsaWNrZWQuZW1pdCghaS5pc1Bpbm5lZCl9KSxrKDksIm1hdC1pY29uIiw5KSxnKCksZigxMCwiYnV0dG9uIiwxMCksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25GdWxsU2l6ZVRvZ2dsZS5lbWl0KCl9KSxrKDExLCJtYXQtaWNvbiIsOSksZygpKCksUygxMixJQmUsMiwwLCJzcGFuIiwxMSksZygpLFMoMTMsQUJlLDEsNSwidGItaGlzdG9ncmFtIiwxMiksUygxNCxQQmUsMSwxLCJuZy10ZW1wbGF0ZSIsbnVsbCwxMyxqdCkpLDImZSl7bGV0IHI9c3QoMTUpO3YoMiksYigidGl0bGUiLGkudGFnKSgidmFsdWUiLGkudGl0bGUpLHYoMSksYigiaXNDbGlwcGVkIixpLmxpbmtlZFRpbWVTZWxlY3Rpb24mJmkubGlua2VkVGltZVNlbGVjdGlvbi5jbGlwcGVkKSgiaXNDbG9zZXN0U3RlcEhpZ2hsaWdodGVkIixpLmlzQ2xvc2VzdFN0ZXBIaWdobGlnaHRlZCksdigyKSxiKCJuZ1N0eWxlIixVbigxMixrQmUsaS5ydW5Db2xvclNjYWxlKGkucnVuSWQpKSksdigxKSxiKCJydW5JZCIsaS5ydW5JZCksdigyKSxCZSgidGl0bGUiLGkuaXNQaW5uZWQ/IlVucGluIGNhcmQiOiJQaW4gY2FyZCIpLHYoMSksYigic3ZnSWNvbiIsaS5pc1Bpbm5lZD8ia2VlcF8yNHB4Ijoia2VlcF9vdXRsaW5lXzI0cHgiKSx2KDIpLGIoInN2Z0ljb24iLGkuc2hvd0Z1bGxXaWR0aD8iZnVsbHNjcmVlbl9leGl0XzI0cHgiOiJmdWxsc2NyZWVuXzI0cHgiKSx2KDEpLGIoIm5nSWYiLGkubG9hZFN0YXRlPT09aS5EYXRhTG9hZFN0YXRlLkxPQURJTkcpLHYoMSksYigibmdJZiIsaS5kYXRhJiZpLmRhdGEubGVuZ3RoKSgibmdJZkVsc2UiLHIpfX0sZGVwZW5kZW5jaWVzOltOZSxNZixnQSxFcixibixOYyxaVCxKZywkZ10sc3R5bGVzOlsnW19uZ2hvc3QtJUNPTVAlXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2ZsZXgtYmFzaXM6MzE4cHg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZ3JvdzoxO2hlaWdodDoxMDAlO292ZXJmbG93OmF1dG87cGFkZGluZzoxNnB4O3BhZGRpbmctdG9wOjRweH0uaGVhZGluZ1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWFyZWFzOiJ0YWcgY29udHJvbHMiICJydW4gc3Bpbm5lciI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciBhdXRvO2ZvbnQtc2l6ZToxNHB4O21hcmdpbi1ib3R0b206NHB4fS50YWdbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7Z2FwOjVweDtncmlkLWFyZWE6dGFnO292ZXJmbG93OmhpZGRlbn0udGFnW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHZpcy1zZWxlY3RlZC10aW1lLWNsaXBwZWRbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjB9LnJ1bltfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOnJ1bjtkaXNwbGF5OmZsZXg7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtc2l6ZToxM3B4fS5ydW5bX25nY29udGVudC0lQ09NUCVdICAgLmRvdFtfbmdjb250ZW50LSVDT01QJV17ZmxleDpub25lO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEzcHg7aGVpZ2h0OjEzcHg7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXJpZ2h0OjRweH0ucnVuW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5ydW4tdGV4dFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7bWF4LXdpZHRoOjEyMHB4fS5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTt3aGl0ZS1zcGFjZTpub3dyYXA7Z3JpZC1hcmVhOmNvbnRyb2xzO2p1c3RpZnktc2VsZjpmbGV4LWVuZDtmbGV4LXNocmluazowO21hcmdpbi1yaWdodDotMTJweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuY29udHJvbHNbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuY29udHJvbHNbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5zcGlubmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7Z3JpZC1hcmVhOnNwaW5uZXI7aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZX1tYXQtc3Bpbm5lcltfbmdjb250ZW50LSVDT01QJV17dG9wOjA7cmlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZX10Yi1oaXN0b2dyYW1bX25nY29udGVudC0lQ09NUCVde2ZsZXgtZ3JvdzoxfS5lbXB0eS1tZXNzYWdlW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjFlbTtmb250LXNpemU6MTNweH0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLGduZT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmU9ZSx0aGlzLnBpblN0YXRlQ2hhbmdlZD1uZXcgRix0aGlzLm1vZGUkPXRoaXMuc3RvcmUuc2VsZWN0KGExKSx0aGlzLnhBeGlzVHlwZSQ9dGhpcy5zdG9yZS5zZWxlY3QoT2wpLHRoaXMuc2hvd0Z1bGxXaWR0aCQ9dGhpcy5zdG9yZS5zZWxlY3QoSnMpLnBpcGUocShpPT5pW3RoaXMuY2FyZElkXT8uZnVsbFdpZHRoKSl9aXNIaXN0b2dyYW1DYXJkTWV0YWRhdGEoZSl7bGV0e3BsdWdpbjppfT1lO3JldHVybiBpPT09QW4uSElTVE9HUkFNU31vbkZ1bGxTaXplVG9nZ2xlKCl7dGhpcy5zdG9yZS5kaXNwYXRjaCh6Zyh7Y2FyZElkOnRoaXMuY2FyZElkfSkpfW5nT25Jbml0KCl7bGV0IGk9dGhpcy5zdG9yZS5zZWxlY3QoS3MsdGhpcy5jYXJkSWQpLnBpcGUoT2Uobz0+ISFvJiZ0aGlzLmlzSGlzdG9ncmFtQ2FyZE1ldGFkYXRhKG8pKSxxKG89Pm8pKSxyPUluKFtpLHRoaXMuc3RvcmUuc2VsZWN0KHd1LHRoaXMuY2FyZElkKV0pO3RoaXMuZGF0YSQ9ci5waXBlKHEoKFtvLGFdKT0+e2xldCBzPW8ucnVuSWQ7cmV0dXJuIGEmJmEuaGFzT3duUHJvcGVydHkocyk/ZnVuY3Rpb24obix0PTMwKXtpZighbi5sZW5ndGh8fHQ8MSlyZXR1cm5bXTtsZXQgZT1mdW5jdGlvbihuKXtsZXQgdD1udWxsLGU9bnVsbDtmb3IobGV0e2JpbnM6aX1vZiBuKXtpZighaS5sZW5ndGgpY29udGludWU7bGV0IHI9aVtpLmxlbmd0aC0xXSxvPWlbMF0ueCxhPXIueCtyLmR4OyhudWxsPT09dHx8bzx0KSYmKHQ9byksKG51bGw9PT1lfHxhPmUpJiYoZT1hKX1yZXR1cm4gbnVsbD09PXR8fG51bGw9PT1lP251bGw6e2xlZnQ6dCxyaWdodDplfX0obik7cmV0dXJuIGUmJmUubGVmdD09PWUucmlnaHQmJihlLnJpZ2h0PTEuMSplLnJpZ2h0KzEsZS5sZWZ0PWUubGVmdC8xLjEtMSksbi5tYXAoaT0+KHtzdGVwOmkuc3RlcCx3YWxsVGltZTppLndhbGxUaW1lLGJpbnM6ZT9hQmUoaS5iaW5zLGUsdCk6W119KSl9KGFbc10ubWFwKGQ9PntsZXR7d2FsbFRpbWU6dSxzdGVwOnB9PWQ7cmV0dXJue3dhbGxUaW1lOnUsc3RlcDpwLGJpbnM6ZC5iaW5zLm1hcChtPT4oe3g6bS5taW4sZHg6bS5tYXgtbS5taW4seTptLmNvdW50fSkpfX0pKTpbXX0pKSx0aGlzLnN0ZXBzJD10aGlzLmRhdGEkLnBpcGUocShvPT5vLm1hcChhPT5hLnN0ZXApKSksdGhpcy5saW5rZWRUaW1lU2VsZWN0aW9uJD1JbihbdGhpcy5zdG9yZS5zZWxlY3QoRHUpLHRoaXMuc3RlcHMkLHRoaXMuc3RvcmUuc2VsZWN0KFR1KV0pLnBpcGUocSgoW28sYSxzXSk9PntpZighbylyZXR1cm4gbnVsbDtsZXQgbD0xLzAsYz0tMS8wO2ZvcihsZXQgcCBvZiBhKWw9TWF0aC5taW4ocCxsKSxjPU1hdGgubWF4KHAsYyk7cmV0dXJuIGZ1bmN0aW9uKG4sdCl7aWYobnVsbCE9PW4uZW5kU3RlcClyZXR1cm4gbjtsZXQgZT1mdW5jdGlvbihuLHQpe2xldCBlPTEvMCxpPW51bGw7Zm9yKGxldCByIG9mIHQpe2xldCBvPU1hdGguYWJzKG4tcik7bzxlJiYoZT1vLGk9cil9cmV0dXJuIGl9KG4uc3RhcnRTdGVwLHQpO3JldHVybiBudWxsIT09ZT97Li4ubixzdGFydFN0ZXA6ZX06bn0oWWYoT0YobyxzKSxsLGMpLGEpfSkpLHRoaXMuaXNDbG9zZXN0U3RlcEhpZ2hsaWdodGVkJD1JbihbdGhpcy5zdG9yZS5zZWxlY3QoRHUpLHRoaXMubGlua2VkVGltZVNlbGVjdGlvbiRdKS5waXBlKHEoKFtvLGFdKT0+byYmYSYmIWEuY2xpcHBlZCYmbnVsbD09PW8uZW5kJiZvLnN0YXJ0LnN0ZXAhPT1hLnN0YXJ0U3RlcCkpLHRoaXMubG9hZFN0YXRlJD10aGlzLnN0b3JlLnNlbGVjdChnZCx0aGlzLmNhcmRJZCksdGhpcy50YWckPWkucGlwZShxKG89Pm8udGFnKSksdGhpcy50aXRsZSQ9dGhpcy50YWckLnBpcGUocShvPT5aZyhvLHRoaXMuZ3JvdXBOYW1lKSkpLHRoaXMucnVuSWQkPWkucGlwZShxKG89Pm8ucnVuSWQpKSx0aGlzLmlzUGlubmVkJD10aGlzLnN0b3JlLnNlbGVjdChTdSx0aGlzLmNhcmRJZCl9b25MaW5rZWRUaW1lU2VsZWN0aW9uQ2hhbmdlZChlKXt0aGlzLnN0b3JlLmRpc3BhdGNoKEhoKGUpKX1vbkxpbmtlZFRpbWVUb2dnbGVkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChUZCh7YWZmb3JkYW5jZTpaYS5GT0JfREVTRUxFQ1R9KSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJoaXN0b2dyYW0tY2FyZCJdXSxpbnB1dHM6e2NhcmRJZDoiY2FyZElkIixncm91cE5hbWU6Imdyb3VwTmFtZSIscnVuQ29sb3JTY2FsZToicnVuQ29sb3JTY2FsZSJ9LG91dHB1dHM6e3BpblN0YXRlQ2hhbmdlZDoicGluU3RhdGVDaGFuZ2VkIn0sZGVjbHM6MTIsdmFyczozNCxjb25zdHM6W1szLCJsb2FkU3RhdGUiLCJ0aXRsZSIsInRhZyIsInJ1bklkIiwiZGF0YSIsIm1vZGUiLCJ4QXhpc1R5cGUiLCJydW5Db2xvclNjYWxlIiwic2hvd0Z1bGxXaWR0aCIsImlzUGlubmVkIiwiaXNDbG9zZXN0U3RlcEhpZ2hsaWdodGVkIiwibGlua2VkVGltZVNlbGVjdGlvbiIsIm9uRnVsbFNpemVUb2dnbGUiLCJvblBpbkNsaWNrZWQiLCJvbkxpbmtlZFRpbWVTZWxlY3Rpb25DaGFuZ2VkIiwib25MaW5rZWRUaW1lVG9nZ2xlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwiaGlzdG9ncmFtLWNhcmQtY29tcG9uZW50IiwwKSxBKCJvbkZ1bGxTaXplVG9nZ2xlIixmdW5jdGlvbigpe3JldHVybiBpLm9uRnVsbFNpemVUb2dnbGUoKX0pKCJvblBpbkNsaWNrZWQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLnBpblN0YXRlQ2hhbmdlZC5lbWl0KG8pfSkoIm9uTGlua2VkVGltZVNlbGVjdGlvbkNoYW5nZWQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uTGlua2VkVGltZVNlbGVjdGlvbkNoYW5nZWQobyl9KSgib25MaW5rZWRUaW1lVG9nZ2xlZCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vbkxpbmtlZFRpbWVUb2dnbGVkKCl9KSxVKDEsImFzeW5jIiksVSgyLCJhc3luYyIpLFUoMywiYXN5bmMiKSxVKDQsImFzeW5jIiksVSg1LCJhc3luYyIpLFUoNiwiYXN5bmMiKSxVKDcsImFzeW5jIiksVSg4LCJhc3luYyIpLFUoOSwiYXN5bmMiKSxVKDEwLCJhc3luYyIpLFUoMTEsImFzeW5jIiksZygpKSwyJmUmJmIoImxvYWRTdGF0ZSIsRygxLDEyLGkubG9hZFN0YXRlJCkpKCJ0aXRsZSIsRygyLDE0LGkudGl0bGUkKSkoInRhZyIsRygzLDE2LGkudGFnJCkpKCJydW5JZCIsRyg0LDE4LGkucnVuSWQkKSkoImRhdGEiLEcoNSwyMCxpLmRhdGEkKSkoIm1vZGUiLEcoNiwyMixpLm1vZGUkKSkoInhBeGlzVHlwZSIsRyg3LDI0LGkueEF4aXNUeXBlJCkpKCJydW5Db2xvclNjYWxlIixpLnJ1bkNvbG9yU2NhbGUpKCJzaG93RnVsbFdpZHRoIixHKDgsMjYsaS5zaG93RnVsbFdpZHRoJCkpKCJpc1Bpbm5lZCIsRyg5LDI4LGkuaXNQaW5uZWQkKSkoImlzQ2xvc2VzdFN0ZXBIaWdobGlnaHRlZCIsRygxMCwzMCxpLmlzQ2xvc2VzdFN0ZXBIaWdobGlnaHRlZCQpKSgibGlua2VkVGltZVNlbGVjdGlvbiIsRygxMSwzMixpLmxpbmtlZFRpbWVTZWxlY3Rpb24kKSl9LGRlcGVuZGVuY2llczpbZm5lLGN0XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCk7ZnVuY3Rpb24gTkJlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiaW1hZ2UtY2FyZCIsNiksQSgiZnVsbFdpZHRoQ2hhbmdlZCIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoMikub25GdWxsV2lkdGhDaGFuZ2VkKHIpKX0pKCJwaW5TdGF0ZUNoYW5nZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIG5lKGUpLGllKHcoMikub25QaW5TdGF0ZUNoYW5nZWQoKSl9KSxnKCl9aWYoMiZuKXtsZXQgZT13KDIpO2IoImNhcmRJZCIsZS5jYXJkSWQpKCJncm91cE5hbWUiLGUuZ3JvdXBOYW1lKSgicnVuQ29sb3JTY2FsZSIsZS5ydW5Db2xvclNjYWxlKX19ZnVuY3Rpb24gTEJlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwic2NhbGFyLWNhcmQiLDcpLEEoInBpblN0YXRlQ2hhbmdlZCIsZnVuY3Rpb24oKXtyZXR1cm4gbmUoZSksaWUodygyKS5vblBpblN0YXRlQ2hhbmdlZCgpKX0pLGcoKX1pZigyJm4pe2xldCBlPXcoMik7YigiY2FyZElkIixlLmNhcmRJZCkoImdyb3VwTmFtZSIsZS5ncm91cE5hbWUpfX1mdW5jdGlvbiBCQmUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJoaXN0b2dyYW0tY2FyZCIsOCksQSgicGluU3RhdGVDaGFuZ2VkIixmdW5jdGlvbigpe3JldHVybiBuZShlKSxpZSh3KDIpLm9uUGluU3RhdGVDaGFuZ2VkKCkpfSksZygpfWlmKDImbil7bGV0IGU9dygyKTtiKCJjYXJkSWQiLGUuY2FyZElkKSgiZ3JvdXBOYW1lIixlLmdyb3VwTmFtZSkoInJ1bkNvbG9yU2NhbGUiLGUucnVuQ29sb3JTY2FsZSl9fWZ1bmN0aW9uIFZCZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2IiksVCgxKSxnKCkpLDImbil7bGV0IGU9dygyKTt2KDEpLFZlKCJQbGFjZWhvbGRlciBlcnJvciBmb3I6ICIsZS5jYXJkSWQsIiIpfX1mdW5jdGlvbiBIQmUobix0KXtpZigxJm4mJihHdCgwLDEpLFMoMSxOQmUsMSwzLCJpbWFnZS1jYXJkIiwyKSxTKDIsTEJlLDEsMiwic2NhbGFyLWNhcmQiLDMpLFMoMyxCQmUsMSwzLCJoaXN0b2dyYW0tY2FyZCIsNCksUyg0LFZCZSwyLDEsImRpdiIsNSksV3QoKSksMiZuKXtsZXQgZT13KCk7YigibmdTd2l0Y2giLGUucGx1Z2luVHlwZSksdigxKSxiKCJuZ1N3aXRjaENhc2UiLGUuUGx1Z2luVHlwZS5JTUFHRVMpLHYoMSksYigibmdTd2l0Y2hDYXNlIixlLlBsdWdpblR5cGUuU0NBTEFSUyksdigxKSxiKCJuZ1N3aXRjaENhc2UiLGUuUGx1Z2luVHlwZS5ISVNUT0dSQU1TKX19dmFyIF9uZT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy5QbHVnaW5UeXBlPUFuLHRoaXMuZnVsbFdpZHRoQ2hhbmdlZD1uZXcgRix0aGlzLmZ1bGxIZWlnaHRDaGFuZ2VkPW5ldyBGLHRoaXMucGluU3RhdGVDaGFuZ2VkPW5ldyBGfW9uRnVsbFdpZHRoQ2hhbmdlZChlKXt0aGlzLmZ1bGxXaWR0aENoYW5nZWQuZW1pdChlKX1vbkZ1bGxIZWlnaHRDaGFuZ2VkKGUpe3RoaXMuZnVsbEhlaWdodENoYW5nZWQuZW1pdChlKX1vblBpblN0YXRlQ2hhbmdlZCgpe3RoaXMucGluU3RhdGVDaGFuZ2VkLmVtaXQoKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1siY2FyZC12aWV3LWNvbXBvbmVudCJdXSxpbnB1dHM6e2lzRXZlclZpc2libGU6ImlzRXZlclZpc2libGUiLGNhcmRJZDoiY2FyZElkIixncm91cE5hbWU6Imdyb3VwTmFtZSIscGx1Z2luVHlwZToicGx1Z2luVHlwZSIscnVuQ29sb3JTY2FsZToicnVuQ29sb3JTY2FsZSJ9LG91dHB1dHM6e2Z1bGxXaWR0aENoYW5nZWQ6ImZ1bGxXaWR0aENoYW5nZWQiLGZ1bGxIZWlnaHRDaGFuZ2VkOiJmdWxsSGVpZ2h0Q2hhbmdlZCIscGluU3RhdGVDaGFuZ2VkOiJwaW5TdGF0ZUNoYW5nZWQifSxkZWNsczoxLHZhcnM6MSxjb25zdHM6W1szLCJuZ1N3aXRjaCIsNCwibmdJZiJdLFszLCJuZ1N3aXRjaCJdLFszLCJjYXJkSWQiLCJncm91cE5hbWUiLCJydW5Db2xvclNjYWxlIiwiZnVsbFdpZHRoQ2hhbmdlZCIsInBpblN0YXRlQ2hhbmdlZCIsNCwibmdTd2l0Y2hDYXNlIl0sWzMsImNhcmRJZCIsImdyb3VwTmFtZSIsInBpblN0YXRlQ2hhbmdlZCIsNCwibmdTd2l0Y2hDYXNlIl0sWzMsImNhcmRJZCIsImdyb3VwTmFtZSIsInJ1bkNvbG9yU2NhbGUiLCJwaW5TdGF0ZUNoYW5nZWQiLDQsIm5nU3dpdGNoQ2FzZSJdLFs0LCJuZ1N3aXRjaERlZmF1bHQiXSxbMywiY2FyZElkIiwiZ3JvdXBOYW1lIiwicnVuQ29sb3JTY2FsZSIsImZ1bGxXaWR0aENoYW5nZWQiLCJwaW5TdGF0ZUNoYW5nZWQiXSxbMywiY2FyZElkIiwiZ3JvdXBOYW1lIiwicGluU3RhdGVDaGFuZ2VkIl0sWzMsImNhcmRJZCIsImdyb3VwTmFtZSIsInJ1bkNvbG9yU2NhbGUiLCJwaW5TdGF0ZUNoYW5nZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJlMoMCxIQmUsNSw0LCJuZy1jb250YWluZXIiLDApLDImZSYmYigibmdJZiIsaS5pc0V2ZXJWaXNpYmxlKX0sZGVwZW5kZW5jaWVzOltOZSxtcixrcixkdSxRUSx1bmUsZ25lXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxibmU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLnN0b3JlPWUsdGhpcy5pc0V2ZXJWaXNpYmxlPSExLHRoaXMuZnVsbFdpZHRoQ2hhbmdlZD1uZXcgRix0aGlzLmZ1bGxIZWlnaHRDaGFuZ2VkPW5ldyBGLHRoaXMucnVuQ29sb3JTY2FsZSQ9dGhpcy5zdG9yZS5zZWxlY3QoUHUpLnBpcGUoaWMoMzUwLHZvaWQgMCx7bGVhZGluZzohMCx0cmFpbGluZzohMH0pLHEoaT0+cj0+aS5oYXNPd25Qcm9wZXJ0eShyKT9pW3JdOiIjZmZmIikpfW9uVmlzaWJpbGl0eUNoYW5nZSh7dmlzaWJsZTplfSl7dGhpcy5pc0V2ZXJWaXNpYmxlPXRoaXMuaXNFdmVyVmlzaWJsZXx8ZX1vbkZ1bGxXaWR0aENoYW5nZWQoZSl7dGhpcy5mdWxsV2lkdGhDaGFuZ2VkLmVtaXQoZSl9b25GdWxsSGVpZ2h0Q2hhbmdlZChlKXt0aGlzLmZ1bGxIZWlnaHRDaGFuZ2VkLmVtaXQoZSl9b25QaW5TdGF0ZUNoYW5nZWQoKXt0aGlzLnN0b3JlLnNlbGVjdChTdSx0aGlzLmNhcmRJZCkucGlwZShMdCgxKSxJdCh0aGlzLnN0b3JlLnNlbGVjdChrVykpKS5zdWJzY3JpYmUoKFtlLGldKT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2gobnAoe2NhcmRJZDp0aGlzLmNhcmRJZCxjYW5DcmVhdGVOZXdQaW5zOmksd2FzUGlubmVkOmV9KSl9KX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImNhcmQtdmlldyJdXSxpbnB1dHM6e2NhcmRJZDoiY2FyZElkIixncm91cE5hbWU6Imdyb3VwTmFtZSIscGx1Z2luVHlwZToicGx1Z2luVHlwZSJ9LG91dHB1dHM6e2Z1bGxXaWR0aENoYW5nZWQ6ImZ1bGxXaWR0aENoYW5nZWQiLGZ1bGxIZWlnaHRDaGFuZ2VkOiJmdWxsSGVpZ2h0Q2hhbmdlZCJ9LGRlY2xzOjIsdmFyczo3LGNvbnN0czpbWyJvYnNlcnZlSW50ZXJzZWN0aW9uIiwiIiwiaW50ZXJzZWN0aW9uT2JzZXJ2ZXJNYXJnaW4iLCIyMDBweCAyMDBweCAyMDBweCAyMDBweCIsMywiaXNFdmVyVmlzaWJsZSIsImNhcmRJZCIsImdyb3VwTmFtZSIsInBsdWdpblR5cGUiLCJydW5Db2xvclNjYWxlIiwiZnVsbFdpZHRoQ2hhbmdlZCIsImZ1bGxIZWlnaHRDaGFuZ2VkIiwicGluU3RhdGVDaGFuZ2VkIiwib25WaXNpYmlsaXR5Q2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJjYXJkLXZpZXctY29tcG9uZW50IiwwKSxBKCJmdWxsV2lkdGhDaGFuZ2VkIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkZ1bGxXaWR0aENoYW5nZWQobyl9KSgiZnVsbEhlaWdodENoYW5nZWQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uRnVsbEhlaWdodENoYW5nZWQobyl9KSgicGluU3RhdGVDaGFuZ2VkIixmdW5jdGlvbigpe3JldHVybiBpLm9uUGluU3RhdGVDaGFuZ2VkKCl9KSgib25WaXNpYmlsaXR5Q2hhbmdlIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vblZpc2liaWxpdHlDaGFuZ2Uobyl9KSxVKDEsImFzeW5jIiksZygpKSwyJmUmJmIoImlzRXZlclZpc2libGUiLGkuaXNFdmVyVmlzaWJsZSkoImNhcmRJZCIsaS5jYXJkSWQpKCJncm91cE5hbWUiLGkuZ3JvdXBOYW1lKSgicGx1Z2luVHlwZSIsaS5wbHVnaW5UeXBlKSgicnVuQ29sb3JTY2FsZSIsRygxLDUsaS5ydW5Db2xvclNjYWxlJCkpfSxkZXBlbmRlbmNpZXM6W1FnLF9uZSxjdF0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzMwMzAzMH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpO2Z1bmN0aW9uIEdCZShuLHQpezEmbiYmaGkoMCl9dmFyIFdCZT1mdW5jdGlvbihuLHQpe3JldHVybnsiZnVsbC13aWR0aCI6biwiZnVsbC1oZWlnaHQiOnR9fTtmdW5jdGlvbiBxQmUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJkaXYiLDUpKDEsImNhcmQtdmlldyIsNiksQSgiZnVsbFdpZHRoQ2hhbmdlZCIsZnVuY3Rpb24ocil7bGV0IGE9bmUoZSkuJGltcGxpY2l0O3JldHVybiBpZSh3KDIpLm9uRnVsbFdpZHRoQ2hhbmdlZChhLmNhcmRJZCxyKSl9KSgiZnVsbEhlaWdodENoYW5nZWQiLGZ1bmN0aW9uKHIpe2xldCBhPW5lKGUpLiRpbXBsaWNpdDtyZXR1cm4gaWUodygyKS5vbkZ1bGxIZWlnaHRDaGFuZ2VkKGEuY2FyZElkLHIpKX0pLGcoKSgpfWlmKDImbil7bGV0IGU9dC4kaW1wbGljaXQsaT13KDIpO2IoIm5nQ2xhc3MiLFNvKDYsV0JlLGkuY2FyZHNBdEZ1bGxXaWR0aC5oYXMoZS5jYXJkSWQpfHwobnVsbD09aS5jYXJkU3RhdGVNYXBbZS5jYXJkSWRdP251bGw6aS5jYXJkU3RhdGVNYXBbZS5jYXJkSWRdLmZ1bGxXaWR0aCksaS5jYXJkc0F0RnVsbEhlaWdodC5oYXMoZS5jYXJkSWQpfHwobnVsbD09aS5jYXJkU3RhdGVNYXBbZS5jYXJkSWRdP251bGw6aS5jYXJkU3RhdGVNYXBbZS5jYXJkSWRdLnRhYmxlRXhwYW5kZWQpKSksdigxKSxiKCJjYXJkSWQiLGUuY2FyZElkKSgiZ3JvdXBOYW1lIixpLmdyb3VwTmFtZSkoInBsdWdpblR5cGUiLGUucGx1Z2luKSgiY2FyZE9ic2VydmVyIixpLmNhcmRPYnNlcnZlcikoImNhcmRMYXp5TG9hZGVyIixlLmNhcmRJZCl9fWZ1bmN0aW9uIFhCZShuLHQpezEmbiYmaGkoMCl9dmFyIFlCZT1mdW5jdGlvbigpe3JldHVybntpc0JvdHRvbUNvbnRyb2w6ITF9fSxRQmU9ZnVuY3Rpb24oKXtyZXR1cm57aXNCb3R0b21Db250cm9sOiEwfX07ZnVuY3Rpb24gWkJlKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiKSxTKDEsR0JlLDEsMCwibmctY29udGFpbmVyIiwyKSxmKDIsImRpdiIsMyksUygzLHFCZSwyLDksImRpdiIsNCksZygpLFMoNCxYQmUsMSwwLCJuZy1jb250YWluZXIiLDIpLGcoKSksMiZuKXtsZXQgZT13KCksaT1zdCgyKTt2KDEpLGIoIm5nVGVtcGxhdGVPdXRsZXQiLGkpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsbWMoOCxZQmUpKSx2KDEpLEJ0KCJncmlkLXRlbXBsYXRlLWNvbHVtbnMiLGUuZ3JpZFRlbXBsYXRlQ29sdW1uKSx2KDEpLGIoIm5nRm9yT2YiLGUuY2FyZElkc1dpdGhNZXRhZGF0YSkoIm5nRm9yVHJhY2tCeSIsZS50cmFja0J5Q2FyZHMpLHYoMSksYigibmdUZW1wbGF0ZU91dGxldCIsaSkoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixtYyg5LFFCZSkpfX1mdW5jdGlvbiBLQmUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJidXR0b24iLDEyKSxBKCJjbGljayIsZnVuY3Rpb24ocil7bmUoZSk7bGV0IG89dygzKTtyZXR1cm4gaWUoby5oYW5kbGVQYWdlQ2hhbmdlKG8ucGFnZUluZGV4LTEsci50YXJnZXQpKX0pLFQoMSwiIFByZXZpb3VzICIpLGcoKX0yJm4mJmIoImRpc2FibGVkIiwwPT09dygzKS5wYWdlSW5kZXgpfWZ1bmN0aW9uIEpCZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsInNwYW4iLDE1KSgxLCJpbnB1dCIsMTYpLEEoImlucHV0IixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodyg0KS5vblBhZ2luYXRpb25JbnB1dENoYW5nZShyKSl9KSgiY2hhbmdlIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodyg0KS5vblBhZ2luYXRpb25JbnB1dENoYW5nZShyKSl9KSxnKCksVCgyKSxnKCl9aWYoMiZuKXtsZXQgZT13KDQpO3YoMSksYigidmFsdWUiLGUucGFnZUluZGV4KzEpKCJtYXgiLGUubnVtUGFnZXMpLHYoMSksVmUoIiBvZiAiLGUubnVtUGFnZXMsIiIpfX1mdW5jdGlvbiAkQmUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJzcGFuIiksUygxLEpCZSwzLDMsInNwYW4iLDEzKSxmKDIsImJ1dHRvbiIsMTQpLEEoImNsaWNrIixmdW5jdGlvbihyKXtuZShlKTtsZXQgbz13KDMpO3JldHVybiBpZShvLmhhbmRsZVBhZ2VDaGFuZ2Uoby5wYWdlSW5kZXgrMSxyLnRhcmdldCkpfSksVCgzLCIgTmV4dCAiKSxnKCkoKX1pZigyJm4pe2xldCBlPXcoMikuaXNCb3R0b21Db250cm9sLGk9dygpO3YoMSksYigibmdJZiIsaS5zaG93UGFnaW5hdGlvbklucHV0KGUpKSx2KDEpLGIoImRpc2FibGVkIixpLnBhZ2VJbmRleCsxPj1pLm51bVBhZ2VzKX19ZnVuY3Rpb24gZVZlKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiLDgpKDEsInNwYW4iLDkpLFMoMixLQmUsMiwxLCJidXR0b24iLDEwKSxnKCksZigzLCJzcGFuIiwxMSksUyg0LCRCZSw0LDIsInNwYW4iLDApLGcoKSgpKSwyJm4pe2xldCBlPXcoMik7digyKSxiKCJuZ0lmIixlLnNob3dQYWdpbmF0aW9uQ29udHJvbHMpLHYoMiksYigibmdJZiIsZS5zaG93UGFnaW5hdGlvbkNvbnRyb2xzKX19ZnVuY3Rpb24gdFZlKG4sdCl7MSZuJiZTKDAsZVZlLDUsMiwiZGl2Iiw3KSwyJm4mJmIoIm5nSWYiLHcoKS5zaG93UGFnaW5hdGlvbkNvbnRyb2xzKX12YXIgdm5lPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5jZGtTY3JvbGxhYmxlPWUsdGhpcy5QbHVnaW5UeXBlPUFuLHRoaXMuZ3JpZFRlbXBsYXRlQ29sdW1uPSIiLHRoaXMuY2FyZHNBdEZ1bGxXaWR0aD1uZXcgU2V0LHRoaXMuY2FyZHNBdEZ1bGxIZWlnaHQ9bmV3IFNldCx0aGlzLnBhZ2VJbmRleENoYW5nZWQ9bmV3IEZ9bmdPbkluaXQoKXt0aGlzLmlzQ2FyZFdpZHRoVmFsaWQodGhpcy5jYXJkTWluV2lkdGgpJiYodGhpcy5ncmlkVGVtcGxhdGVDb2x1bW49YHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgke3RoaXMuY2FyZE1pbldpZHRofXB4LCAxZnIpKWApfW5nT25DaGFuZ2VzKGUpe2lmKGUuY2FyZE1pbldpZHRoKXtsZXQgaT1lLmNhcmRNaW5XaWR0aC5jdXJyZW50VmFsdWU7dGhpcy5pc0NhcmRXaWR0aFZhbGlkKGkpPyh0aGlzLmNhcmRNaW5XaWR0aD1pLHRoaXMuZ3JpZFRlbXBsYXRlQ29sdW1uPWByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoJHt0aGlzLmNhcmRNaW5XaWR0aH1weCwgMWZyKSlgKTp0aGlzLmdyaWRUZW1wbGF0ZUNvbHVtbj0iIn19aXNDYXJkV2lkdGhWYWxpZChlKXtyZXR1cm4gZSYmZT49MzM1JiZlPD03MzV9c2hvd1BhZ2luYXRpb25JbnB1dChlKXtyZXR1cm4gZX1oYW5kbGVQYWdlQ2hhbmdlKGUsaSl7bGV0IHI9aS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7c2V0VGltZW91dCgoKT0+e3RoaXMuc2Nyb2xsVG9LZWVwVGFyZ2V0UG9zaXRpb24oaSxyKX0sMCksdGhpcy5wYWdlSW5kZXhDaGFuZ2VkLmVtaXQoZSl9c2Nyb2xsVG9LZWVwVGFyZ2V0UG9zaXRpb24oZSxpKXtsZXQgcj10aGlzLmNka1Njcm9sbGFibGU/LmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50O3ImJnIuc2Nyb2xsVG8oMCxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcC1pK3Iuc2Nyb2xsVG9wKX10cmFja0J5Q2FyZHMoZSxpKXtyZXR1cm4gaS5jYXJkSWR9b25QYWdpbmF0aW9uSW5wdXRDaGFuZ2UoZSl7bGV0IGk9ZS50YXJnZXQ7aWYoImlucHV0Ij09PWUudHlwZSYmIiI9PT1pLnZhbHVlKXJldHVybjtsZXQgcj1OdW1iZXIoaS52YWx1ZSktMSxvPU1hdGgubWluKE1hdGgubWF4KDAsciksdGhpcy5udW1QYWdlcy0xKTtpLnZhbHVlIT09U3RyaW5nKG8rMSkmJihpLnZhbHVlPVN0cmluZyhvKzEpKSx0aGlzLmhhbmRsZVBhZ2VDaGFuZ2UobyxpKX1vbkZ1bGxXaWR0aENoYW5nZWQoZSxpKXtpP3RoaXMuY2FyZHNBdEZ1bGxXaWR0aC5hZGQoZSk6dGhpcy5jYXJkc0F0RnVsbFdpZHRoLmRlbGV0ZShlKX1vbkZ1bGxIZWlnaHRDaGFuZ2VkKGUsaSl7aT90aGlzLmNhcmRzQXRGdWxsSGVpZ2h0LmFkZChlKTp0aGlzLmNhcmRzQXRGdWxsSGVpZ2h0LmRlbGV0ZShlKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyh4ZCw4KSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sibWV0cmljcy1jYXJkLWdyaWQtY29tcG9uZW50Il1dLGlucHV0czp7aXNHcm91cEV4cGFuZGVkOiJpc0dyb3VwRXhwYW5kZWQiLHBhZ2VJbmRleDoicGFnZUluZGV4IixudW1QYWdlczoibnVtUGFnZXMiLGNhcmRJZHNXaXRoTWV0YWRhdGE6ImNhcmRJZHNXaXRoTWV0YWRhdGEiLGNhcmRNaW5XaWR0aDoiY2FyZE1pbldpZHRoIixjYXJkT2JzZXJ2ZXI6ImNhcmRPYnNlcnZlciIsc2hvd1BhZ2luYXRpb25Db250cm9sczoic2hvd1BhZ2luYXRpb25Db250cm9scyIsY2FyZFN0YXRlTWFwOiJjYXJkU3RhdGVNYXAifSxvdXRwdXRzOntwYWdlSW5kZXhDaGFuZ2VkOiJwYWdlSW5kZXhDaGFuZ2VkIn0sZmVhdHVyZXM6W3F0XSxkZWNsczozLHZhcnM6MSxjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdCxlO3JldHVybiB0PSRsb2NhbGl6ZWA6QSBidXR0b24gdGhhdCBzZXRzIGEgZ3JvdXAgdG8gdGhlIHByZXZpb3VzIHBhZ2Uu4pCfNTc1ZTc4MmZkMjdmMmVlNzBhMDM0YTc3NWVmZTlhZDE2MjQ3MjI1MOKQnzM2Mjk5NjA1NDQ4NzUzNjAwNDY6UHJldmlvdXMgcGFnZWAsZT0kbG9jYWxpemVgOkEgYnV0dG9uIHRoYXQgc2V0cyBhIGdyb3VwIHRvIHRoZSBuZXh0IHBhZ2Uu4pCfY2UzY2VmYjFjZDAwOTlhYTUwMDNkZGExNmVjOWViMjFmZDhiYTc4OeKQnzMzMzczMDE2OTQyMTAyODc1OTU6TmV4dCBwYWdlYCxbWzQsIm5nSWYiXSxbImdyb3VwQ29udHJvbHMiLCIiXSxbNCwibmdUZW1wbGF0ZU91dGxldCIsIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0Il0sWzEsImNhcmQtZ3JpZCJdLFsiY2xhc3MiLCJjYXJkLXNwYWNlIiwzLCJuZ0NsYXNzIiw0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbMSwiY2FyZC1zcGFjZSIsMywibmdDbGFzcyJdLFszLCJjYXJkSWQiLCJncm91cE5hbWUiLCJwbHVnaW5UeXBlIiwiY2FyZE9ic2VydmVyIiwiY2FyZExhenlMb2FkZXIiLCJmdWxsV2lkdGhDaGFuZ2VkIiwiZnVsbEhlaWdodENoYW5nZWQiXSxbImNsYXNzIiwiZ3JvdXAtY29udHJvbHMiLDQsIm5nSWYiXSxbMSwiZ3JvdXAtY29udHJvbHMiXSxbMSwicHJldi1jb250YWluZXIiXSxbImNsYXNzIiwicHJldiBwYWdpbmF0aW9uLWJ1dHRvbiIsIm1hdC1idXR0b24iLCIiLCJhcmlhLWxhYmVsIix0LDMsImRpc2FibGVkIiwiY2xpY2siLDQsIm5nSWYiXSxbMSwiaW5wdXQtYW5kLW5leHQtY29udGFpbmVyIl0sWyJtYXQtYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsdCwxLCJwcmV2IiwicGFnaW5hdGlvbi1idXR0b24iLDMsImRpc2FibGVkIiwiY2xpY2siXSxbImNsYXNzIiwicGFnaW5hdGlvbi1pbnB1dCIsNCwibmdJZiJdLFsibWF0LWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLGUsMSwibmV4dCIsInBhZ2luYXRpb24tYnV0dG9uIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWzEsInBhZ2luYXRpb24taW5wdXQiXSxbInR5cGUiLCJudW1iZXIiLCJtaW4iLCIxIiwzLCJ2YWx1ZSIsIm1heCIsImlucHV0IiwiY2hhbmdlIl1dfSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKFMoMCxaQmUsNSwxMCwiZGl2IiwwKSxTKDEsdFZlLDEsMSwibmctdGVtcGxhdGUiLG51bGwsMSxqdCkpLDImZSYmYigibmdJZiIsaS5pc0dyb3VwRXhwYW5kZWQpfSxkZXBlbmRlbmNpZXM6W2JRLGJuZSx3bixubixOZSxlbyxraV0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXtjb250YWluOmNvbnRlbnR9LmNhcmQtZ3JpZFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMzM1cHgsIDFmcikpO2dhcDoxNnB4O3BhZGRpbmc6MTZweH0uY2FyZC1zcGFjZS5mdWxsLXdpZHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtncmlkLWNvbHVtbi1zdGFydDoxO2dyaWQtY29sdW1uLWVuZDotMX0uY2FyZC1zcGFjZS5mdWxsLWhlaWdodFtfbmdjb250ZW50LSVDT01QJV17bWluLWhlaWdodDo0ODBweH0uY2FyZC1zcGFjZS5mdWxsLWhlaWdodFtfbmdjb250ZW50LSVDT01QJV0gICBjYXJkLXZpZXdbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlfWNhcmQtdmlld1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250YWluOmxheW91dCBwYWludDtkaXNwbGF5OmJsb2NrO21pbi1oZWlnaHQ6MzIwcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgY2FyZC12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgY2FyZC12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MXB4IHNvbGlkICM1NTV9Lmdyb3VwLWNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2Rpc3BsYXk6Z3JpZDthbGlnbi1pdGVtczpjZW50ZXI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjE2cHg7cGFkZGluZzowIDE2cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLWNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLWNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uZ3JvdXAtY29udHJvbHNbX25nY29udGVudC0lQ09NUCVdOmZpcnN0LW9mLXR5cGV7cGFkZGluZy10b3A6MTZweH0uZ3JvdXAtY29udHJvbHNbX25nY29udGVudC0lQ09NUCVdOmxhc3Qtb2YtdHlwZXtwYWRkaW5nLWJvdHRvbToxNnB4fS5wcmV2LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17anVzdGlmeS1zZWxmOmZsZXgtc3RhcnR9LmlucHV0LWFuZC1uZXh0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17anVzdGlmeS1zZWxmOmZsZXgtZW5kfS5wYWdpbmF0aW9uLWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tcmlnaHQ6MTZweH0ucGFnaW5hdGlvbi1pbnB1dFtfbmdjb250ZW50LSVDT01QJV0gICBpbnB1dFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDApO2JvcmRlcjoxcHggc29saWQgY3VycmVudENvbG9yO2NvbG9yOmluaGVyaXQ7Zm9udDppbmhlcml0fS5wYWdpbmF0aW9uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5wYWdpbmF0aW9uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5wYWdpbmF0aW9uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApfSJdLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksX189KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLnN0b3JlPWUsdGhpcy5ncm91cE5hbWU9bnVsbCx0aGlzLmdyb3VwTmFtZSQ9bmV3IHhyKG51bGwpLHRoaXMucGFnZUluZGV4JD1uZXcgeHIoMCksdGhpcy5pdGVtcyQ9bmV3IHhyKFtdKSx0aGlzLm5nVW5zdWJzY3JpYmU9bmV3IEVlLHRoaXMuY2FyZFN0YXRlTWFwJD10aGlzLnN0b3JlLnNlbGVjdChKcyksdGhpcy5udW1QYWdlcyQ9SW4oW3RoaXMuaXRlbXMkLHRoaXMuc3RvcmUuc2VsZWN0KEhhLmdldFBhZ2VTaXplKV0pLnBpcGUocSgoW2kscl0pPT5NYXRoLmNlaWwoaS5sZW5ndGgvcikpKSx0aGlzLmlzR3JvdXBFeHBhbmRlZCQ9dGhpcy5ncm91cE5hbWUkLnBpcGUoSm4oaT0+bnVsbCE9PWk/dGhpcy5zdG9yZS5zZWxlY3QodTEsaSk6JHQoITApKSksdGhpcy5zaG93UGFnaW5hdGlvbkNvbnRyb2xzJD10aGlzLm51bVBhZ2VzJC5waXBlKHEoaT0+aT4xKSksdGhpcy5ub3JtYWxpemVkUGFnZUluZGV4JD1JbihbdGhpcy5wYWdlSW5kZXgkLHRoaXMubnVtUGFnZXMkXSkucGlwZShpdCh0aGlzLm5nVW5zdWJzY3JpYmUpLER0KChbaSxyXSk9PnswIT09ciYmKGk+PXI/dGhpcy5wYWdlSW5kZXgkLm5leHQoci0xKTppPDAmJnRoaXMucGFnZUluZGV4JC5uZXh0KDApKX0pLHEoKFtpLHJdKT0+TWF0aC5taW4oTWF0aC5tYXgoaSwwKSxyLTEpKSxEYSgxKSksdGhpcy5wYWdlZEl0ZW1zJD1JbihbdGhpcy5pdGVtcyQsdGhpcy5zdG9yZS5zZWxlY3QoSGEuZ2V0UGFnZVNpemUpLHRoaXMubm9ybWFsaXplZFBhZ2VJbmRleCQsdGhpcy5pc0dyb3VwRXhwYW5kZWQkXSkucGlwZShxKChbaSxyLG8sYV0pPT5pLnNsaWNlKHIqbyxyKm8rKGE/cjowKSkpKSx0aGlzLmNhcmRNaW5XaWR0aCQ9dGhpcy5zdG9yZS5zZWxlY3QoSmYpfW5nT25DaGFuZ2VzKGUpe2UuY2FyZElkc1dpdGhNZXRhZGF0YSYmdGhpcy5pdGVtcyQubmV4dCh0aGlzLmNhcmRJZHNXaXRoTWV0YWRhdGEpLGUuZ3JvdXBOYW1lJiZ0aGlzLmdyb3VwTmFtZSQubmV4dCh0aGlzLmdyb3VwTmFtZSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfW9uUGFnZUluZGV4Q2hhbmdlZChlKXt0aGlzLnBhZ2VJbmRleCQubmV4dChlKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbIm1ldHJpY3MtY2FyZC1ncmlkIl1dLGlucHV0czp7Z3JvdXBOYW1lOiJncm91cE5hbWUiLGNhcmRJZHNXaXRoTWV0YWRhdGE6ImNhcmRJZHNXaXRoTWV0YWRhdGEiLGNhcmRPYnNlcnZlcjoiY2FyZE9ic2VydmVyIn0sZmVhdHVyZXM6W3F0XSxkZWNsczo4LHZhcnM6MjIsY29uc3RzOltbMywiaXNHcm91cEV4cGFuZGVkIiwicGFnZUluZGV4IiwibnVtUGFnZXMiLCJzaG93UGFnaW5hdGlvbkNvbnRyb2xzIiwiY2FyZElkc1dpdGhNZXRhZGF0YSIsImNhcmRNaW5XaWR0aCIsImNhcmRPYnNlcnZlciIsImNhcmRTdGF0ZU1hcCIsInBhZ2VJbmRleENoYW5nZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsIm1ldHJpY3MtY2FyZC1ncmlkLWNvbXBvbmVudCIsMCksQSgicGFnZUluZGV4Q2hhbmdlZCIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25QYWdlSW5kZXhDaGFuZ2VkKG8pfSksVSgxLCJhc3luYyIpLFUoMiwiYXN5bmMiKSxVKDMsImFzeW5jIiksVSg0LCJhc3luYyIpLFUoNSwiYXN5bmMiKSxVKDYsImFzeW5jIiksVSg3LCJhc3luYyIpLGcoKSksMiZlJiZiKCJpc0dyb3VwRXhwYW5kZWQiLEcoMSw4LGkuaXNHcm91cEV4cGFuZGVkJCkpKCJwYWdlSW5kZXgiLEcoMiwxMCxpLm5vcm1hbGl6ZWRQYWdlSW5kZXgkKSkoIm51bVBhZ2VzIixHKDMsMTIsaS5udW1QYWdlcyQpKSgic2hvd1BhZ2luYXRpb25Db250cm9scyIsRyg0LDE0LGkuc2hvd1BhZ2luYXRpb25Db250cm9scyQpKSgiY2FyZElkc1dpdGhNZXRhZGF0YSIsRyg1LDE2LGkucGFnZWRJdGVtcyQpKSgiY2FyZE1pbldpZHRoIixHKDYsMTgsaS5jYXJkTWluV2lkdGgkKSkoImNhcmRPYnNlcnZlciIsaS5jYXJkT2JzZXJ2ZXIpKCJjYXJkU3RhdGVNYXAiLEcoNywyMCxpLmNhcmRTdGF0ZU1hcCQpKX0sZGVwZW5kZW5jaWVzOlt2bmUsY3RdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpO2Z1bmN0aW9uIG9WZShuLHQpe2lmKDEmbiYmKGYoMCwic3BhbiIsNyksVCgxKSxVKDIsIm51bWJlciIpLGcoKSksMiZuKXtsZXQgZT13KCk7digxKSxWZSgiIixHKDIsMSxlLm51bWJlck9mQ2FyZHMpLCIgY2FyZHMiKX19ZnVuY3Rpb24gYVZlKG4sdCl7MSZuJiZrKDAsIm1hdC1pY29uIiw4KX1mdW5jdGlvbiBzVmUobix0KXsxJm4mJmsoMCwibWF0LWljb24iLDkpfXZhciB5bmU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMuZ3JvdXBFeHBhbnNpb25Ub2dnbGVkPW5ldyBGfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtZXRyaWNzLWNhcmQtZ3JvdXAtdG9vbGJhci1jb21wb25lbnQiXV0saW5wdXRzOntncm91cE5hbWU6Imdyb3VwTmFtZSIsbnVtYmVyT2ZDYXJkczoibnVtYmVyT2ZDYXJkcyIsaXNHcm91cEV4cGFuZGVkOiJpc0dyb3VwRXhwYW5kZWQifSxvdXRwdXRzOntncm91cEV4cGFuc2lvblRvZ2dsZWQ6Imdyb3VwRXhwYW5zaW9uVG9nZ2xlZCJ9LGRlY2xzOjksdmFyczo1LGNvbnN0czpmdW5jdGlvbigpe2xldCB0O3JldHVybiB0PSRsb2NhbGl6ZWA6QSBidXR0b24gdGhhdCBhbGxvd3MgdXNlciB0byBleHBhbmQgYSB0YWcgZ3JvdXAu4pCfZmZhYTExNDcxYjg3OGE2ZGZmZTJlNjhjNmYzNzA2NGE5ZTA3NDg1M+KQnzUzODYwNTQzMjUyNzQ3NzkyNTg6RXhwYW5kIGdyb3VwYCxbWyJhcmlhLWxhYmVsIix0LDEsImdyb3VwLXRvb2xiYXIiLDMsImNsaWNrIl0sWzEsImdyb3VwLXRpdGxlLXdyYXBwZXIiXSxbImFyaWEtcm9sZSIsImhlYWRpbmciLCJhcmlhLWxldmVsIiwiMyIsMSwiZ3JvdXAtdGl0bGUiLDMsInRpdGxlIl0sWyJjbGFzcyIsImdyb3VwLWNhcmQtY291bnQiLDQsIm5nSWYiXSxbMSwiZXhwYW5kLWdyb3VwLWljb24iXSxbInN2Z0ljb24iLCJleHBhbmRfbGVzc18yNHB4Iiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImV4cGFuZE1vcmUiLCIiXSxbMSwiZ3JvdXAtY2FyZC1jb3VudCJdLFsic3ZnSWNvbiIsImV4cGFuZF9sZXNzXzI0cHgiXSxbInN2Z0ljb24iLCJleHBhbmRfbW9yZV8yNHB4Il1dfSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmKGYoMCwiYnV0dG9uIiwwKSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaS5ncm91cEV4cGFuc2lvblRvZ2dsZWQuZW1pdCgpfSksZigxLCJzcGFuIiwxKSgyLCJzcGFuIiwyKSxUKDMpLGcoKSxTKDQsb1ZlLDMsMywic3BhbiIsMyksZygpLGYoNSwic3BhbiIsNCksUyg2LGFWZSwxLDAsIm1hdC1pY29uIiw1KSxTKDcsc1ZlLDEsMCwibmctdGVtcGxhdGUiLG51bGwsNixqdCksZygpKCkpLDImZSl7bGV0IHI9c3QoOCk7digyKSxaaSgidGl0bGUiLGkuZ3JvdXBOYW1lKSx2KDEpLGt0KGkuZ3JvdXBOYW1lKSx2KDEpLGIoIm5nSWYiLGkubnVtYmVyT2ZDYXJkcz4xKSx2KDIpLGIoIm5nSWYiLGkuaXNHcm91cEV4cGFuZGVkKSgibmdJZkVsc2UiLHIpfX0sZGVwZW5kZW5jaWVzOltOZSxibixVc10sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZmZmO2Rpc3BsYXk6ZmxleDtmbGV4Om5vbmU7aGVpZ2h0OjQycHg7bWFyZ2luLWJvdHRvbTotMXB4O3BhZGRpbmc6MCAxNnB4O3Bvc2l0aW9uOnN0aWNreTt0b3A6MDt6LWluZGV4OjE7Ym94LXNoYWRvdzowcHggMnB4IDRweCAwcHggcmdiYSgwLDAsMCwuMTUpfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiMzMDMwMzB9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JveC1zaGFkb3c6MHB4IDJweCA0cHggMHB4IHJnYmEoMjU1LDI1NSwyNTUsLjE1KX1bX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2JvcmRlci10b3A6MXB4IHNvbGlkICNlYmViZWI7Y29sb3I6IzIxMjEyMTt0b3A6LTFweDtkaXNwbGF5OmZsZXg7d2lkdGg6MTAwJTtmb250OmluaGVyaXR9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci10b3A6MXB4IHNvbGlkICM1NTV9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmZmZ9LmNhcmQtZ3JvdXA6Zmlyc3Qtb2YtdHlwZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDowfVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9LmV4cGFuZC1ncm91cC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5leHBhbmQtZ3JvdXAtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5leHBhbmQtZ3JvdXAtaWNvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9LmV4cGFuZC1ncm91cC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXTpkaXNhYmxlZHtjb2xvcjojNzU3NTc1fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5leHBhbmQtZ3JvdXAtaWNvbltfbmdjb250ZW50LSVDT01QJV06ZGlzYWJsZWQsIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5leHBhbmQtZ3JvdXAtaWNvbltfbmdjb250ZW50LSVDT01QJV06ZGlzYWJsZWR7Y29sb3I6IzYxNjE2MX0uZ3JvdXAtdGl0bGUtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZmxleC1ncm93OjE7dGV4dC1hbGlnbjpsZWZ0fS5ncm91cC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5ncm91cC1jYXJkLWNvdW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo0MDA7Y29sb3I6IzYxNjE2MTttYXJnaW4tbGVmdDo2cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLWNhcmQtY291bnRbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtY2FyZC1jb3VudFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSx4bmU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLnN0b3JlPWUsdGhpcy5ncm91cE5hbWU9bnVsbCx0aGlzLmlzR3JvdXBFeHBhbmRlZCQ9JHQoITEpfW5nT25Jbml0KCl7dGhpcy5pc0dyb3VwRXhwYW5kZWQkPW51bGwhPT10aGlzLmdyb3VwTmFtZT90aGlzLnN0b3JlLnNlbGVjdCh1MSx0aGlzLmdyb3VwTmFtZSk6JHQoITEpfW9uR3JvdXBFeHBhbnNpb25Ub2dnbGVkKCl7aWYobnVsbD09PXRoaXMuZ3JvdXBOYW1lKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhcmlhbnQgZXJyb3I6IGV4cGFuc2lvbiBjYW5ub3QgYmUgdG9nZ2xlZCB3aGVuIGdyb3VwTmFtZSBpcyBudWxsIik7dGhpcy5zdG9yZS5kaXNwYXRjaChPVCh7dGFnR3JvdXA6dGhpcy5ncm91cE5hbWV9KSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtZXRyaWNzLWNhcmQtZ3JvdXAtdG9vbGJhciJdXSxpbnB1dHM6e2dyb3VwTmFtZToiZ3JvdXBOYW1lIixudW1iZXJPZkNhcmRzOiJudW1iZXJPZkNhcmRzIn0sZGVjbHM6Mix2YXJzOjUsY29uc3RzOltbMywibnVtYmVyT2ZDYXJkcyIsImlzR3JvdXBFeHBhbmRlZCIsImdyb3VwTmFtZSIsImdyb3VwRXhwYW5zaW9uVG9nZ2xlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwibWV0cmljcy1jYXJkLWdyb3VwLXRvb2xiYXItY29tcG9uZW50IiwwKSxBKCJncm91cEV4cGFuc2lvblRvZ2dsZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25Hcm91cEV4cGFuc2lvblRvZ2dsZWQoKX0pLFUoMSwiYXN5bmMiKSxnKCkpLDImZSYmYigibnVtYmVyT2ZDYXJkcyIsaS5udW1iZXJPZkNhcmRzKSgiaXNHcm91cEV4cGFuZGVkIixHKDEsMyxpLmlzR3JvdXBFeHBhbmRlZCQpKSgiZ3JvdXBOYW1lIixpLmdyb3VwTmFtZSl9LGRlcGVuZGVuY2llczpbeW5lLGN0XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKTtmdW5jdGlvbiBkVmUobix0KXtpZigxJm4mJihmKDAsImRpdiIsMSksaygxLCJtZXRyaWNzLWNhcmQtZ3JvdXAtdG9vbGJhciIsMikoMiwibWV0cmljcy1jYXJkLWdyaWQiLDMpLGcoKSksMiZuKXtsZXQgZT10LiRpbXBsaWNpdCxpPXcoKTt2KDEpLGIoIm51bWJlck9mQ2FyZHMiLGUuaXRlbXMubGVuZ3RoKSgiZ3JvdXBOYW1lIixlLmdyb3VwTmFtZSksdigxKSxiKCJjYXJkSWRzV2l0aE1ldGFkYXRhIixlLml0ZW1zKSgiY2FyZE9ic2VydmVyIixpLmNhcmRPYnNlcnZlcikoImdyb3VwTmFtZSIsZS5ncm91cE5hbWUpfX12YXIgQ25lPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLlBsdWdpblR5cGU9QW59dHJhY2tCeUdyb3VwKGUsaSl7cmV0dXJuIGkuZ3JvdXBOYW1lfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtZXRyaWNzLWNhcmQtZ3JvdXBzLWNvbXBvbmVudCJdXSxpbnB1dHM6e2NhcmRHcm91cHM6ImNhcmRHcm91cHMiLGNhcmRPYnNlcnZlcjoiY2FyZE9ic2VydmVyIn0sZGVjbHM6MSx2YXJzOjIsY29uc3RzOltbImNsYXNzIiwiY2FyZC1ncm91cCIsNCwibmdGb3IiLCJuZ0Zvck9mIiwibmdGb3JUcmFja0J5Il0sWzEsImNhcmQtZ3JvdXAiXSxbMywibnVtYmVyT2ZDYXJkcyIsImdyb3VwTmFtZSJdLFszLCJjYXJkSWRzV2l0aE1ldGFkYXRhIiwiY2FyZE9ic2VydmVyIiwiZ3JvdXBOYW1lIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiZTKDAsZFZlLDMsNSwiZGl2IiwwKSwyJmUmJmIoIm5nRm9yT2YiLGkuY2FyZEdyb3VwcykoIm5nRm9yVHJhY2tCeSIsaS50cmFja0J5R3JvdXApfSxkZXBlbmRlbmNpZXM6W25uLF9fLHhuZV0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZmZmO2Rpc3BsYXk6ZmxleDtmbGV4Om5vbmU7aGVpZ2h0OjQycHg7bWFyZ2luLWJvdHRvbTotMXB4O3BhZGRpbmc6MCAxNnB4O3Bvc2l0aW9uOnN0aWNreTt0b3A6MDt6LWluZGV4OjE7Ym94LXNoYWRvdzowcHggMnB4IDRweCAwcHggcmdiYSgwLDAsMCwuMTUpfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiMzMDMwMzB9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JveC1zaGFkb3c6MHB4IDJweCA0cHggMHB4IHJnYmEoMjU1LDI1NSwyNTUsLjE1KX0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLE1uZT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmU9ZSx0aGlzLmNhcmRHcm91cHMkPXRoaXMuc3RvcmUuc2VsZWN0KGpoKS5waXBlKFZpKHRoaXMuc3RvcmUuc2VsZWN0KFNjKSkscSgoW2kscl0pPT5yLnNpemU/aS5maWx0ZXIobz0+ci5oYXMoby5wbHVnaW4pKTppKSxxKGk9PkhUKGkpKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtZXRyaWNzLWNhcmQtZ3JvdXBzIl1dLGlucHV0czp7Y2FyZE9ic2VydmVyOiJjYXJkT2JzZXJ2ZXIifSxkZWNsczoyLHZhcnM6NCxjb25zdHM6W1szLCJjYXJkR3JvdXBzIiwiY2FyZE9ic2VydmVyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoaygwLCJtZXRyaWNzLWNhcmQtZ3JvdXBzLWNvbXBvbmVudCIsMCksVSgxLCJhc3luYyIpKSwyJmUmJmIoImNhcmRHcm91cHMiLEcoMSwyLGkuY2FyZEdyb3VwcyQpKSgiY2FyZE9ic2VydmVyIixpLmNhcmRPYnNlcnZlcil9LGRlcGVuZGVuY2llczpbQ25lLGN0XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKTtmdW5jdGlvbiBoVmUobix0KXtpZigxJm4mJihmKDAsInNwYW4iKSxUKDEpLGcoKSksMiZuKXtsZXQgZT13KCk7digxKSxWZSgiIGFuZCAiLGUuZ2V0UGx1Z2luVHlwZUZpbHRlclN0cmluZyhlLnBsdWdpblR5cGVzKSwiIHZpc3VhbGl6YXRpb24gZmlsdGVyIil9fXZhciB3bmU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMuUGx1Z2luVHlwZT1Bbix0aGlzLmxpc3RGb3JtYXR0ZXI9bmV3IEludGwuTGlzdEZvcm1hdCh2b2lkIDAse3N0eWxlOiJsb25nIix0eXBlOiJkaXNqdW5jdGlvbiJ9KX1nZXRQbHVnaW5UeXBlRmlsdGVyU3RyaW5nKGUpe2xldCBpPVsuLi5lXS5tYXAocj0+e3N3aXRjaChyKXtjYXNlIEFuLlNDQUxBUlM6cmV0dXJuInNjYWxhciI7Y2FzZSBBbi5JTUFHRVM6cmV0dXJuImltYWdlIjtjYXNlIEFuLkhJU1RPR1JBTVM6cmV0dXJuImhpc3RvZ3JhbSI7ZGVmYXVsdDp0aHJvdyBuZXcgUmFuZ2VFcnJvcihgUGxlYXNlIGltcGxlbWVudCBodW1hbiByZWFkYWJsZSBuYW1lIGZvciBwbHVnaW4gdHlwZTogJHtyfWApfX0pO3JldHVybiB0aGlzLmxpc3RGb3JtYXR0ZXIuZm9ybWF0KGkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtZXRyaWNzLWVtcHR5LXRhZy1tYXRjaC1jb21wb25lbnQiXV0saW5wdXRzOntwbHVnaW5UeXBlczoicGx1Z2luVHlwZXMiLHRhZ0ZpbHRlclJlZ2V4OiJ0YWdGaWx0ZXJSZWdleCIsdGFnQ291bnRzOiJ0YWdDb3VudHMifSxkZWNsczo2LHZhcnM6NSxjb25zdHM6W1s0LCJuZ0lmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoVCgwLCJObyBtYXRjaGVzIGZvciB0YWcgZmlsdGVyICIpLGYoMSwiY29kZSIpLFQoMiksZygpLFMoMyxoVmUsMiwxLCJzcGFuIiwwKSxUKDQpLFUoNSwibnVtYmVyIikpLDImZSYmKHYoMiksVmUoIi8iLGkudGFnRmlsdGVyUmVnZXgsIi8iKSx2KDEpLGIoIm5nSWYiLGkucGx1Z2luVHlwZXMuc2l6ZSksdigxKSxWZSgiIG91dCBvZiAiLEcoNSwzLGkudGFnQ291bnRzKSwiIHRhZ3MuIikpfSxkZXBlbmRlbmNpZXM6W05lLFVzXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxTbmU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLnN0b3JlPWUsdGhpcy5wbHVnaW5UeXBlcyQ9dGhpcy5zdG9yZS5zZWxlY3QoU2MpLHRoaXMudGFnRmlsdGVyUmVnZXgkPXRoaXMuc3RvcmUuc2VsZWN0KEZsKSx0aGlzLnRhZ0NvdW50cyQ9dGhpcy5zdG9yZS5zZWxlY3QoamgpLnBpcGUocShpPT5uZXcgU2V0KGkubWFwKCh7dGFnOnJ9KT0+cikpLnNpemUpKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbIm1ldHJpY3MtZW1wdHktdGFnLW1hdGNoIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsInBsdWdpblR5cGVzIiwidGFnRmlsdGVyUmVnZXgiLCJ0YWdDb3VudHMiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihrKDAsIm1ldHJpY3MtZW1wdHktdGFnLW1hdGNoLWNvbXBvbmVudCIsMCksVSgxLCJhc3luYyIpLFUoMiwiYXN5bmMiKSxVKDMsImFzeW5jIikpLDImZSYmYigicGx1Z2luVHlwZXMiLEcoMSwzLGkucGx1Z2luVHlwZXMkKSkoInRhZ0ZpbHRlclJlZ2V4IixHKDIsNSxpLnRhZ0ZpbHRlclJlZ2V4JCkpKCJ0YWdDb3VudHMiLEcoMyw3LGkudGFnQ291bnRzJCkpfSxkZXBlbmRlbmNpZXM6W3duZSxjdF0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCk7ZnVuY3Rpb24gZ1ZlKG4sdCl7aWYoMSZuJiYoZigwLCJzcGFuIiw2KSxUKDEpLFUoMiwibnVtYmVyIiksZygpKSwyJm4pe2xldCBlPXcoKTt2KDEpLFZlKCIiLEcoMiwxLGUuY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGgpLCIgY2FyZHMiKX19ZnVuY3Rpb24gX1ZlKG4sdCl7MSZuJiZrKDAsIm1ldHJpY3MtZW1wdHktdGFnLW1hdGNoIiw3KX12YXIgRW5lPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbIm1ldHJpY3MtZmlsdGVyZWQtdmlldy1jb21wb25lbnQiXV0saW5wdXRzOntpc0VtcHR5TWF0Y2g6ImlzRW1wdHlNYXRjaCIsY2FyZE9ic2VydmVyOiJjYXJkT2JzZXJ2ZXIiLGNhcmRJZHNXaXRoTWV0YWRhdGE6ImNhcmRJZHNXaXRoTWV0YWRhdGEifSxkZWNsczo3LHZhcnM6NCxjb25zdHM6W1sxLCJncm91cC10b29sYmFyIl0sWzEsImdyb3VwLXRleHQiXSxbImFyaWEtcm9sZSIsImhlYWRpbmciLCJhcmlhLWxldmVsIiwiMyIsMSwiZ3JvdXAtdGl0bGUiXSxbImNsYXNzIiwiZ3JvdXAtY2FyZC1jb3VudCIsNCwibmdJZiJdLFsiY2xhc3MiLCJ3YXJuIiw0LCJuZ0lmIl0sWzMsImNhcmRJZHNXaXRoTWV0YWRhdGEiLCJjYXJkT2JzZXJ2ZXIiXSxbMSwiZ3JvdXAtY2FyZC1jb3VudCJdLFsxLCJ3YXJuIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJkaXYiLDApKDEsInNwYW4iLDEpKDIsInNwYW4iLDIpLFQoMywiVGFncyBtYXRjaGluZyBmaWx0ZXIiKSxnKCksUyg0LGdWZSwzLDMsInNwYW4iLDMpLGcoKSgpLFMoNSxfVmUsMSwwLCJtZXRyaWNzLWVtcHR5LXRhZy1tYXRjaCIsNCksayg2LCJtZXRyaWNzLWNhcmQtZ3JpZCIsNSkpLDImZSYmKHYoNCksYigibmdJZiIsaS5jYXJkSWRzV2l0aE1ldGFkYXRhLmxlbmd0aD4xKSx2KDEpLGIoIm5nSWYiLGkuaXNFbXB0eU1hdGNoKSx2KDEpLGIoImNhcmRJZHNXaXRoTWV0YWRhdGEiLGkuY2FyZElkc1dpdGhNZXRhZGF0YSkoImNhcmRPYnNlcnZlciIsaS5jYXJkT2JzZXJ2ZXIpKX0sZGVwZW5kZW5jaWVzOltOZSxfXyxTbmUsVXNdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtkaXNwbGF5OmZsZXg7ZmxleDpub25lO2hlaWdodDo0MnB4O21hcmdpbi1ib3R0b206LTFweDtwYWRkaW5nOjAgMTZweDtwb3NpdGlvbjpzdGlja3k7dG9wOjA7ei1pbmRleDoxO2JveC1zaGFkb3c6MHB4IDJweCA0cHggMHB4IHJnYmEoMCwwLDAsLjE1KX1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3gtc2hhZG93OjBweCAycHggNHB4IDBweCByZ2JhKDI1NSwyNTUsMjU1LC4xNSl9Lmdyb3VwLXRleHRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpiYXNlbGluZX0uZ3JvdXAtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0uZ3JvdXAtY2FyZC1jb3VudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2MTYxNjE7bWFyZ2luLWxlZnQ6NnB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC1jYXJkLWNvdW50W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLWNhcmQtY291bnRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfW1ldHJpY3MtZW1wdHktdGFnLW1hdGNoW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtc3R5bGU6aXRhbGljO3BhZGRpbmc6MTZweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmJsb2NrfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIG1ldHJpY3MtZW1wdHktdGFnLW1hdGNoW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgbWV0cmljcy1lbXB0eS10YWctbWF0Y2hbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfSJdLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksVG5lPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5zdG9yZT1lLHRoaXMuY2FyZElkc1dpdGhNZXRhZGF0YSQ9dGhpcy5zdG9yZS5zZWxlY3QoamgpLnBpcGUoVmkodGhpcy5zdG9yZS5zZWxlY3QoU2MpKSxxKChbaSxyXSk9PnIuc2l6ZT9pLmZpbHRlcihvPT5yLmhhcyhvLnBsdWdpbikpOmkpLFZpKHRoaXMuc3RvcmUuc2VsZWN0KEZsKSksQ3IoMjAwKSxxKChbaSxyXSk9Pnt0cnl7cmV0dXJue2NhcmRMaXN0OmkscmVnZXg6bmV3IFJlZ0V4cChyLCJpIil9fWNhdGNoe3JldHVybntjYXJkTGlzdDppLHJlZ2V4Om51bGx9fX0pLE9lKCh7cmVnZXg6aX0pPT5udWxsIT09aSkscSgoe2NhcmRMaXN0OmkscmVnZXg6cn0pPT5pLmZpbHRlcigoe3RhZzpvfSk9PnIudGVzdChvKSkpLHJpKChpLHIpPT5pLmxlbmd0aD09PXIubGVuZ3RoJiZpLmV2ZXJ5KChvLGEpPT5vLmNhcmRJZD09PXJbYV0uY2FyZElkKSksVGEoKSxrbihbXSkpLHRoaXMuaXNFbXB0eU1hdGNoJD10aGlzLmNhcmRJZHNXaXRoTWV0YWRhdGEkLnBpcGUoVmkodGhpcy5zdG9yZS5zZWxlY3QoamgpKSxxKChbaSxyXSk9PkJvb2xlYW4oci5sZW5ndGgpJiYwPT09aS5sZW5ndGgpKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbIm1ldHJpY3MtZmlsdGVyZWQtdmlldyJdXSxpbnB1dHM6e2NhcmRPYnNlcnZlcjoiY2FyZE9ic2VydmVyIn0sZGVjbHM6Myx2YXJzOjcsY29uc3RzOltbMywiaXNFbXB0eU1hdGNoIiwiY2FyZElkc1dpdGhNZXRhZGF0YSIsImNhcmRPYnNlcnZlciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGsoMCwibWV0cmljcy1maWx0ZXJlZC12aWV3LWNvbXBvbmVudCIsMCksVSgxLCJhc3luYyIpLFUoMiwiYXN5bmMiKSksMiZlJiZiKCJpc0VtcHR5TWF0Y2giLEcoMSwzLGkuaXNFbXB0eU1hdGNoJCkpKCJjYXJkSWRzV2l0aE1ldGFkYXRhIixHKDIsNSxpLmNhcmRJZHNXaXRoTWV0YWRhdGEkKSkoImNhcmRPYnNlcnZlciIsaS5jYXJkT2JzZXJ2ZXIpfSxkZXBlbmRlbmNpZXM6W0VuZSxjdF0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCk7ZnVuY3Rpb24geFZlKG4sdCl7MSZuJiZrKDAsIm1hdC1pY29uIiw3KX1mdW5jdGlvbiBDVmUobix0KXtpZigxJm4mJihmKDAsIm1hdC1vcHRpb24iLDgpLFQoMSksZygpKSwyJm4pe2xldCBlPXQuJGltcGxpY2l0O2IoInZhbHVlIixlKSxCZSgidGl0bGUiLGUpLHYoMSksa3QoZSl9fWZ1bmN0aW9uIE1WZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2Iiw5KSgxLCJlbSIpLFQoMiksVSgzLCJudW1iZXIiKSxnKCkoKSksMiZuKXtsZXQgZT13KCk7digyKSxWZSgiYW5kICIsRygzLDEsZS5jb21wbGV0aW9ucy5sZW5ndGgtMjUpLCIgbW9yZSB0YWdzIG1hdGNoZWQiKX19dmFyIERuZT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy5vblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2U9bmV3IEZ9b25Db21wbGV0aW9uQWNjZXB0ZWQoZSl7dGhpcy5vblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UuZW1pdChmdW5jdGlvbihuKXtyZXR1cm4gbi5yZXBsYWNlKEViZSwiXFwkJiIpfShlKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbIm1ldHJpY3MtdGFnLWZpbHRlci1jb21wb25lbnQiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsyJmUmJm50KCJ2YWxpZCIsaS5pc1JlZ2V4RmlsdGVyVmFsaWQpfSxpbnB1dHM6e3JlZ2V4RmlsdGVyVmFsdWU6InJlZ2V4RmlsdGVyVmFsdWUiLGlzUmVnZXhGaWx0ZXJWYWxpZDoiaXNSZWdleEZpbHRlclZhbGlkIixjb21wbGV0aW9uczoiY29tcGxldGlvbnMifSxvdXRwdXRzOntvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2U6Im9uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZSJ9LGRlY2xzOjcsdmFyczo1LGNvbnN0czpbWzEsInRhZy1maWx0ZXIiXSxbInBsYWNlaG9sZGVyIiwiRmlsdGVyIHRhZ3MgKHJlZ2V4KSIsMywidmFsdWUiLCJtYXRBdXRvY29tcGxldGUiLCJpbnB1dCJdLFsic3ZnSWNvbiIsImVycm9yXzI0cHgiLCJjbGFzcyIsImVycm9yLWljb24iLCJ0aXRsZSIsIkludmFsaWQgcmVnZXggZmlsdGVyLiBUaGUgcmVzdWx0IG1heSBiZSBzdGFsZS4iLDQsIm5nSWYiXSxbMSwidGFnLW9wdGlvbnMiLDMsIm9wdGlvblNlbGVjdGVkIl0sWyJmaWx0ZXJNYXRjaGVzIiwibWF0QXV0b2NvbXBsZXRlIl0sWyJjbGFzcyIsIm9wdGlvbiIsMywidmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xhc3MiLCJhbmQtbW9yZSIsNCwibmdJZiJdLFsic3ZnSWNvbiIsImVycm9yXzI0cHgiLCJ0aXRsZSIsIkludmFsaWQgcmVnZXggZmlsdGVyLiBUaGUgcmVzdWx0IG1heSBiZSBzdGFsZS4iLDEsImVycm9yLWljb24iXSxbMSwib3B0aW9uIiwzLCJ2YWx1ZSJdLFsxLCJhbmQtbW9yZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmKGYoMCwiZGl2IiwwKSgxLCJ0Yi1maWx0ZXItaW5wdXQiLDEpLEEoImlucHV0IixmdW5jdGlvbihvKXtyZXR1cm4gaS5vblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UuZW1pdChvLnRhcmdldC52YWx1ZSl9KSxnKCksUygyLHhWZSwxLDAsIm1hdC1pY29uIiwyKSxnKCksZigzLCJtYXQtYXV0b2NvbXBsZXRlIiwzLDQpLEEoIm9wdGlvblNlbGVjdGVkIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkNvbXBsZXRpb25BY2NlcHRlZChvLm9wdGlvbi52YWx1ZSl9KSxTKDUsQ1ZlLDIsMywibWF0LW9wdGlvbiIsNSksUyg2LE1WZSw0LDMsImRpdiIsNiksZygpKSwyJmUpe2xldCByPXN0KDQpO3YoMSksYigidmFsdWUiLGkucmVnZXhGaWx0ZXJWYWx1ZSkoIm1hdEF1dG9jb21wbGV0ZSIsciksdigxKSxiKCJuZ0lmIiwhaS5pc1JlZ2V4RmlsdGVyVmFsaWQpLHYoMyksYigibmdGb3JPZiIsbnVsbD09aS5jb21wbGV0aW9ucz9udWxsOmkuY29tcGxldGlvbnMuc2xpY2UoMCwyNSkpLHYoMSksYigibmdJZiIsKG51bGw9PWkuY29tcGxldGlvbnM/bnVsbDppLmNvbXBsZXRpb25zLmxlbmd0aCk+MjUpfX0sZGVwZW5kZW5jaWVzOltubixOZSxnXyxKdGUsamEsYm4sVXNdLHN0eWxlczpbIi50YWctZmlsdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmV9dGItZmlsdGVyLWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4LWdyb3c6MX1bX25naG9zdC0lQ09NUCVde2NvbG9yOiMyMTIxMjF9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVde2NvbG9yOiNmZmZ9W19uZ2hvc3QtJUNPTVAlXTpub3QoLnZhbGlkKXtjb2xvcjojYzYyODI4fVtfbmdob3N0LSVDT01QJV06bm90KC52YWxpZCkgICAuZXJyb3ItaWNvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2M2MjgyODtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowfSAgLnRhZy1vcHRpb25zIC5vcHRpb24sICAgLnRhZy1vcHRpb25zIC5hbmQtbW9yZXstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1saW5lLWNsYW1wOjM7ZGlzcGxheTotd2Via2l0LWJveDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjQ7cGFkZGluZzo4cHggMTZweH0gIC50YWctb3B0aW9ucyAuYW5kLW1vcmV7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAgIC50YWctb3B0aW9ucyAuYW5kLW1vcmUsIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgICAgLnRhZy1vcHRpb25zIC5hbmQtbW9yZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLEluZT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmU9ZSx0aGlzLnRhZ0ZpbHRlciQ9dGhpcy5zdG9yZS5zZWxlY3QoRmwpLHRoaXMuaXNUYWdGaWx0ZXJSZWdleFZhbGlkJD10aGlzLnRhZ0ZpbHRlciQucGlwZShxKGk9Pnt0cnl7cmV0dXJuIG5ldyBSZWdFeHAoaSksITB9Y2F0Y2h7cmV0dXJuITF9fSkpLHRoaXMuY29tcGxldGlvbnMkPXRoaXMuc3RvcmUuc2VsZWN0KG8xKS5waXBlKFZpKHRoaXMuc3RvcmUuc2VsZWN0KFNjKSkscSgoW2kscl0pPT5pLmZpbHRlcigoe3BsdWdpbjpvfSk9PiFyLnNpemV8fHIuaGFzKG8pKS5tYXAoKHt0YWc6b30pPT5vKSkscShpPT5bLi4ubmV3IFNldChpKV0pLHEoaT0+aS5zb3J0KHZ5KSksVmkodGhpcy5zdG9yZS5zZWxlY3QoRmwpKSxxKChbaSxyXSk9Pnt0cnl7cmV0dXJuW2ksbmV3IFJlZ0V4cChyLCJpIildfWNhdGNoe3JldHVybltpLG51bGxdfX0pLE9lKChbLGldKT0+bnVsbCE9PWkpLHEoKFtpLHJdKT0+aS5maWx0ZXIobz0+ci50ZXN0KG8pKSkpfW9uVGFnRmlsdGVyQ2hhbmdlKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2goa1Qoe3RhZ0ZpbHRlcjplfSkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKEllKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sibWV0cmljcy10YWctZmlsdGVyIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsInJlZ2V4RmlsdGVyVmFsdWUiLCJpc1JlZ2V4RmlsdGVyVmFsaWQiLCJjb21wbGV0aW9ucyIsIm9uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwibWV0cmljcy10YWctZmlsdGVyLWNvbXBvbmVudCIsMCksQSgib25SZWdleEZpbHRlclZhbHVlQ2hhbmdlIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vblRhZ0ZpbHRlckNoYW5nZShvKX0pLFUoMSwiYXN5bmMiKSxVKDIsImFzeW5jIiksVSgzLCJhc3luYyIpLGcoKSksMiZlJiZiKCJyZWdleEZpbHRlclZhbHVlIixHKDEsMyxpLnRhZ0ZpbHRlciQpKSgiaXNSZWdleEZpbHRlclZhbGlkIixHKDIsNSxpLmlzVGFnRmlsdGVyUmVnZXhWYWxpZCQpKSgiY29tcGxldGlvbnMiLEcoMyw3LGkuY29tcGxldGlvbnMkKSl9LGRlcGVuZGVuY2llczpbRG5lLGN0XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKTtmdW5jdGlvbiBFVmUobix0KXtpZigxJm4mJihmKDAsInNwYW4iLDEwKSxUKDEpLGcoKSksMiZuKXtsZXQgZT13KCk7digxKSxWZSgiIixlLmNhcmRJZHNXaXRoTWV0YWRhdGEubGVuZ3RoLCIgY2FyZHMiKX19ZnVuY3Rpb24gVFZlKG4sdCl7MSZuJiYoZigwLCJzcGFuIiwxMiksVCgxLCJOZXcgY2FyZCBwaW5uZWQiKSxnKCkpLDImbiYmQmUoImRhdGEtaWQiLHQuJGltcGxpY2l0KX12YXIgRFZlPWZ1bmN0aW9uKG4pe3JldHVybltuXX07ZnVuY3Rpb24gSVZlKG4sdCl7aWYoMSZuJiYoZigwLCJzcGFuIiksUygxLFRWZSwyLDEsInNwYW4iLDExKSxnKCkpLDImbil7bGV0IGU9dygpO3YoMSksYigibmdGb3JPZiIsVW4oMSxEVmUsZS5sYXN0UGlubmVkQ2FyZFRpbWUpKX19ZnVuY3Rpb24gQVZlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiZGl2IiwxMykoMSwiYnV0dG9uIiwxNCksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIG5lKGUpLGllKHcoKS5vbkNsZWFyQWxsUGluc0NsaWNrZWQuZW1pdCgpKX0pLFQoMiwiIENsZWFyIGFsbCBwaW5zICIpLGcoKSgpfX1mdW5jdGlvbiBSVmUobix0KXtpZigxJm4mJmsoMCwibWV0cmljcy1jYXJkLWdyaWQiLDE1KSwyJm4pe2xldCBlPXcoKTtiKCJjYXJkSWRzV2l0aE1ldGFkYXRhIixlLmNhcmRJZHNXaXRoTWV0YWRhdGEpKCJjYXJkT2JzZXJ2ZXIiLGUuY2FyZE9ic2VydmVyKX19ZnVuY3Rpb24gUFZlKG4sdCl7MSZuJiYoZigwLCJkaXYiLDE2KSxUKDEsIlBpbiBjYXJkcyBmb3IgYSBxdWljayB2aWV3IGFuZCBjb21wYXJpc29uIiksZygpKX12YXIgQW5lPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLmdsb2JhbFBpbnNFbmFibGVkPSExLHRoaXMub25DbGVhckFsbFBpbnNDbGlja2VkPW5ldyBGfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtZXRyaWNzLXBpbm5lZC12aWV3LWNvbXBvbmVudCJdXSxpbnB1dHM6e2NhcmRPYnNlcnZlcjoiY2FyZE9ic2VydmVyIixjYXJkSWRzV2l0aE1ldGFkYXRhOiJjYXJkSWRzV2l0aE1ldGFkYXRhIixsYXN0UGlubmVkQ2FyZFRpbWU6Imxhc3RQaW5uZWRDYXJkVGltZSIsZ2xvYmFsUGluc0VuYWJsZWQ6Imdsb2JhbFBpbnNFbmFibGVkIn0sb3V0cHV0czp7b25DbGVhckFsbFBpbnNDbGlja2VkOiJvbkNsZWFyQWxsUGluc0NsaWNrZWQifSxkZWNsczoxMix2YXJzOjUsY29uc3RzOltbMSwiZ3JvdXAtdG9vbGJhciJdLFsxLCJsZWZ0LWl0ZW1zIl0sWyJzdmdJY29uIiwia2VlcF8yNHB4Il0sWzEsImdyb3VwLXRleHQiXSxbImFyaWEtcm9sZSIsImhlYWRpbmciLCJhcmlhLWxldmVsIiwiMyIsMSwiZ3JvdXAtdGl0bGUiXSxbImNsYXNzIiwiZ3JvdXAtY2FyZC1jb3VudCIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWyJjbGFzcyIsInJpZ2h0LWl0ZW1zIiw0LCJuZ0lmIl0sWzMsImNhcmRJZHNXaXRoTWV0YWRhdGEiLCJjYXJkT2JzZXJ2ZXIiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsiZW1wdHlQaW5uZWRWaWV3IiwiIl0sWzEsImdyb3VwLWNhcmQtY291bnQiXSxbImNsYXNzIiwibmV3LWNhcmQtcGlubmVkIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwibmV3LWNhcmQtcGlubmVkIl0sWzEsInJpZ2h0LWl0ZW1zIl0sWyJtYXQtc3Ryb2tlZC1idXR0b24iLCIiLCJhcmlhLWxhYmVsIiwiQ2xlYXIgYWxsIHBpbm5lZCBjYXJkcyIsMywiY2xpY2siXSxbMywiY2FyZElkc1dpdGhNZXRhZGF0YSIsImNhcmRPYnNlcnZlciJdLFsxLCJlbXB0eS1tZXNzYWdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiYoZigwLCJkaXYiLDApKDEsImRpdiIsMSksaygyLCJtYXQtaWNvbiIsMiksZigzLCJzcGFuIiwzKSg0LCJzcGFuIiw0KSxUKDUsIlBpbm5lZCIpLGcoKSxTKDYsRVZlLDIsMSwic3BhbiIsNSksUyg3LElWZSwyLDMsInNwYW4iLDYpLGcoKSgpLFMoOCxBVmUsMywwLCJkaXYiLDcpLGcoKSxTKDksUlZlLDEsMiwibWV0cmljcy1jYXJkLWdyaWQiLDgpLFMoMTAsUFZlLDIsMCwibmctdGVtcGxhdGUiLG51bGwsOSxqdCkpLDImZSl7bGV0IHI9c3QoMTEpO3YoNiksYigibmdJZiIsaS5jYXJkSWRzV2l0aE1ldGFkYXRhLmxlbmd0aD4xKSx2KDEpLGIoIm5nSWYiLGkubGFzdFBpbm5lZENhcmRUaW1lKSx2KDEpLGIoIm5nSWYiLGkuY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGg+MCYmaS5nbG9iYWxQaW5zRW5hYmxlZCksdigxKSxiKCJuZ0lmIixpLmNhcmRJZHNXaXRoTWV0YWRhdGEubGVuZ3RoKSgibmdJZkVsc2UiLHIpfX0sZGVwZW5kZW5jaWVzOltubixOZSxraSxibixfX10sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZmZmO2Rpc3BsYXk6ZmxleDtmbGV4Om5vbmU7aGVpZ2h0OjQycHg7bWFyZ2luLWJvdHRvbTotMXB4O3BhZGRpbmc6MCAxNnB4O3Bvc2l0aW9uOnN0aWNreTt0b3A6MDt6LWluZGV4OjE7Ym94LXNoYWRvdzowcHggMnB4IDRweCAwcHggcmdiYSgwLDAsMCwuMTUpfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiMzMDMwMzB9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JveC1zaGFkb3c6MHB4IDJweCA0cHggMHB4IHJnYmEoMjU1LDI1NSwyNTUsLjE1KX1tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTtmbGV4Om5vbmU7bWFyZ2luLXJpZ2h0OjVweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBtYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmxlZnQtaXRlbXNbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LnJpZ2h0LWl0ZW1zW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6bm9ybWFsO2hlaWdodDoyNXB4O2xpbmUtaGVpZ2h0OjI1cHh9Lmdyb3VwLXRleHRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpiYXNlbGluZTtnYXA6NnB4fS5ncm91cC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5ncm91cC1jYXJkLWNvdW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo0MDA7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtY2FyZC1jb3VudFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC1jYXJkLWNvdW50W19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uZW1wdHktbWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTtmb250LXNpemU6MTNweDtmb250LXN0eWxlOml0YWxpYztwYWRkaW5nOjE2cHg7dGV4dC1hbGlnbjpjZW50ZXJ9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmVtcHR5LW1lc3NhZ2VbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZW1wdHktbWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Lm5ldy1jYXJkLXBpbm5lZFtfbmdjb250ZW50LSVDT01QJV17YW5pbWF0aW9uOl9uZ2NvbnRlbnQtJUNPTVAlX3Bpbm5lZC12aWV3LWZhZGUtb3V0IDNzIGxpbmVhcjtiYWNrZ3JvdW5kOiNmNDQzMzY7Ym9yZGVyLXJhZGl1czo1cHg7Y29sb3I6I2ZmZjtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTNweDtvcGFjaXR5OjA7cGFkZGluZzozcHggNXB4fUBrZXlmcmFtZXMgX25nY29udGVudC0lQ09NUCVfcGlubmVkLXZpZXctZmFkZS1vdXR7ZnJvbXtvcGFjaXR5OjF9NjYle29wYWNpdHk6Ljk5fXRve29wYWNpdHk6MH19Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxSbmU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLnN0b3JlPWUsdGhpcy5jYXJkSWRzV2l0aE1ldGFkYXRhJD10aGlzLnN0b3JlLnNlbGVjdChLZikucGlwZShrbihbXSkpLHRoaXMubGFzdFBpbm5lZENhcmRUaW1lJD10aGlzLnN0b3JlLnNlbGVjdChPVykucGlwZShvcygxKSksdGhpcy5nbG9iYWxQaW5zRW5hYmxlZCQ9dGhpcy5zdG9yZS5zZWxlY3QocGQpfW9uQ2xlYXJBbGxQaW5zQ2xpY2tlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goV2coKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtZXRyaWNzLXBpbm5lZC12aWV3Il1dLGlucHV0czp7Y2FyZE9ic2VydmVyOiJjYXJkT2JzZXJ2ZXIifSxkZWNsczo0LHZhcnM6MTAsY29uc3RzOltbMywiY2FyZElkc1dpdGhNZXRhZGF0YSIsImxhc3RQaW5uZWRDYXJkVGltZSIsImNhcmRPYnNlcnZlciIsImdsb2JhbFBpbnNFbmFibGVkIiwib25DbGVhckFsbFBpbnNDbGlja2VkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJtZXRyaWNzLXBpbm5lZC12aWV3LWNvbXBvbmVudCIsMCksQSgib25DbGVhckFsbFBpbnNDbGlja2VkIixmdW5jdGlvbigpe3JldHVybiBpLm9uQ2xlYXJBbGxQaW5zQ2xpY2tlZCgpfSksVSgxLCJhc3luYyIpLFUoMiwiYXN5bmMiKSxVKDMsImFzeW5jIiksZygpKSwyJmUmJmIoImNhcmRJZHNXaXRoTWV0YWRhdGEiLEcoMSw0LGkuY2FyZElkc1dpdGhNZXRhZGF0YSQpKSgibGFzdFBpbm5lZENhcmRUaW1lIixHKDIsNixpLmxhc3RQaW5uZWRDYXJkVGltZSQpKSgiY2FyZE9ic2VydmVyIixpLmNhcmRPYnNlcnZlcikoImdsb2JhbFBpbnNFbmFibGVkIixHKDMsOCxpLmdsb2JhbFBpbnNFbmFibGVkJCkpfSxkZXBlbmRlbmNpZXM6W0FuZSxjdF0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCk7ZnVuY3Rpb24gRlZlKG4sdCl7MSZuJiZrKDAsIm1ldHJpY3MtZmlsdGVyZWQtdmlldyIsMTMpLDImbiYmYigiY2FyZE9ic2VydmVyIix3KCkuY2FyZE9ic2VydmVyKX1mdW5jdGlvbiBOVmUobix0KXsxJm4mJihmKDAsImRpdiIsMTcpLGsoMSwibWF0LXNwaW5uZXIiLDE4KSxnKCkpfXZhciBMVmU9ZnVuY3Rpb24obil7cmV0dXJueyJzbGlkZS1vdXQtbWVudS1leHBhbmRlZCI6bn19O2Z1bmN0aW9uIEJWZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2IiwxOSksaygxLCJtZXRyaWNzLXNjYWxhci1jb2x1bW4tZWRpdG9yIiksZygpKSwyJm4pe2xldCBlPXcoKTtiKCJuZ0NsYXNzIixVbigxLExWZSxlLnNsaWRlT3V0TWVudU9wZW4pKX19ZnVuY3Rpb24gVlZlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiZGl2IiwyMCkoMSwiZGl2IiwyMSkoMiwiaDIiLDIyKSxUKDMsIlNldHRpbmdzIiksZygpLGYoNCwiYnV0dG9uIiwyMyksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIG5lKGUpLGllKHcoKS5vbkNsb3NlU2lkZXBhbmVCdXR0b25DbGlja2VkLmVtaXQoKSl9KSxrKDUsIm1hdC1pY29uIiwyNCksZygpKCksayg2LCJtZXRyaWNzLWRhc2hib2FyZC1yaWdodC1wYW5lIiksZygpfX12YXIgSFZlPWZ1bmN0aW9uKG4pe3JldHVybntjaGVja2VkOm4sInNldHRpbmdzLWJ1dHRvbiI6ITB9fSx6VmU9bmV3IHRlKCJDdXN0b21pemFibGUgU2hhcmUgQnV0dG9uIiksUG5lPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpKXt0aGlzLmhvc3Q9ZSx0aGlzLmN1c3RvbVNoYXJlQnV0dG9uPWksdGhpcy5vblNldHRpbmdzQnV0dG9uQ2xpY2tlZD1uZXcgRix0aGlzLm9uQ2xvc2VTaWRlcGFuZUJ1dHRvbkNsaWNrZWQ9bmV3IEYsdGhpcy5vblBsdWdpblR5cGVUb2dnbGVkPW5ldyBGLHRoaXMub25QbHVnaW5UeXBlQWxsVG9nZ2xlZD1uZXcgRix0aGlzLlBsdWdpblR5cGU9QW4sdGhpcy5jYXJkT2JzZXJ2ZXI9bmV3IHl5KHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCI2MDBweCAwcHggNjAwcHggMHB4Iil9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMoelZlLDgpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtZXRyaWNzLW1haW4tdmlldy1jb21wb25lbnQiXV0saW5wdXRzOntzaG93RmlsdGVyZWRWaWV3OiJzaG93RmlsdGVyZWRWaWV3Iixpc1NpZGVwYW5lT3BlbjoiaXNTaWRlcGFuZU9wZW4iLGZpbHRlcmVkUGx1Z2luVHlwZXM6ImZpbHRlcmVkUGx1Z2luVHlwZXMiLGluaXRpYWxUYWdzTG9hZGluZzoiaW5pdGlhbFRhZ3NMb2FkaW5nIixzbGlkZU91dE1lbnVPcGVuOiJzbGlkZU91dE1lbnVPcGVuIn0sb3V0cHV0czp7b25TZXR0aW5nc0J1dHRvbkNsaWNrZWQ6Im9uU2V0dGluZ3NCdXR0b25DbGlja2VkIixvbkNsb3NlU2lkZXBhbmVCdXR0b25DbGlja2VkOiJvbkNsb3NlU2lkZXBhbmVCdXR0b25DbGlja2VkIixvblBsdWdpblR5cGVUb2dnbGVkOiJvblBsdWdpblR5cGVUb2dnbGVkIixvblBsdWdpblR5cGVBbGxUb2dnbGVkOiJvblBsdWdpblR5cGVBbGxUb2dnbGVkIn0sZGVjbHM6MjQsdmFyczoyMyxjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdCxlO3JldHVybiB0PSRsb2NhbGl6ZWA6TGFiZWwgb24gYSB0b29sYmFyIGJ1dHRvbiB0byB0b2dnbGUgdGhlIHNldHRpbmdzIHNpZGUgcGFuZS7ikJ9kMzUxNmRiNmJiZTY4NjBhNTViZWFiNjZlNDk2OWRhYzYyNWI4ZDcy4pCfNzY1OTI4NTQ0NTU4MDgzODkyNTpUb2dnbGUgc2V0dGluZ3Mgc2lkZSBwYW5lYCxlPSRsb2NhbGl6ZWA6TGFiZWwgb24gYSBidXR0b24gdG8gY2xvc2UgdGhlIHNldHRpbmdzIHNpZGUgcGFuZS7ikJ8wNDUyMWRjMGI2YTY1Y2Y1YzM4Mjk0NGM5YThiNGI4NDRhM2U5NTk44pCfODE1Njc2Njk5Nzc0NzE2NTg3MTpDbG9zZSBzaWRlIHBhbmVgLFtbMSwidG9vbGJhciJdLFsibXVsdGlwbGUiLCIiLCJhcHBlYXJhbmNlIiwic3RhbmRhcmQiLDEsImZpbHRlci12aWV3Il0sWyJtYXQtYnV0dG9uIiwiIiwicm9sZSIsImNoZWNrYm94IiwiZGF0YS12YWx1ZSIsImFsbCIsMSwiZmlsdGVyLXZpZXctYnV0dG9uIiwzLCJjbGljayJdLFsibWF0LWJ1dHRvbiIsIiIsInJvbGUiLCJjaGVja2JveCIsImRhdGEtdmFsdWUiLCJzY2FsYXJzIiwxLCJmaWx0ZXItdmlldy1idXR0b24iLDMsImNsaWNrIl0sWyJtYXQtYnV0dG9uIiwiIiwicm9sZSIsImNoZWNrYm94IiwiZGF0YS12YWx1ZSIsImltYWdlIiwxLCJmaWx0ZXItdmlldy1idXR0b24iLDMsImNsaWNrIl0sWyJtYXQtYnV0dG9uIiwiIiwicm9sZSIsImNoZWNrYm94IiwiZGF0YS12YWx1ZSIsImhpc3RvZ3JhbSIsMSwiZmlsdGVyLXZpZXctYnV0dG9uIiwzLCJjbGljayJdLFszLCJjdXN0b21pemFibGVDb21wb25lbnQiXSxbMSwicmlnaHQtaXRlbXMiXSxbIm1hdC1zdHJva2VkLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMywibmdDbGFzcyIsImNsaWNrIl0sWyJzdmdJY29uIiwic2V0dGluZ3NfMjRweCJdLFsxLCJzcGxpdC1jb250ZW50Il0sWyJjZGtTY3JvbGxhYmxlIiwiIl0sWzMsImNhcmRPYnNlcnZlciIsNCwibmdJZiJdLFszLCJjYXJkT2JzZXJ2ZXIiXSxbImNsYXNzIiwibG9hZGluZy1jb250YWluZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwic2xpZGUtb3V0LW1lbnUiLDMsIm5nQ2xhc3MiLDQsIm5nSWYiXSxbImNsYXNzIiwic2lkZWJhciIsNCwibmdJZiJdLFsxLCJsb2FkaW5nLWNvbnRhaW5lciJdLFsiZGlhbWV0ZXIiLCIzNiJdLFsxLCJzbGlkZS1vdXQtbWVudSIsMywibmdDbGFzcyJdLFsxLCJzaWRlYmFyIl0sWzEsImhlYWRlciJdLFsxLCJ0aXRsZSJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsZSwzLCJjbGljayJdLFsic3ZnSWNvbiIsImNsb3NlXzI0cHgiXV19LHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJkaXYiLDApLGsoMSwibWV0cmljcy10YWctZmlsdGVyIiksZigyLCJtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCIsMSkoMywiYnV0dG9uIiwyKSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vblBsdWdpblR5cGVBbGxUb2dnbGVkLmVtaXQoKX0pLFQoNCwiIEFsbCAiKSxnKCksZig1LCJidXR0b24iLDMpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpLm9uUGx1Z2luVHlwZVRvZ2dsZWQuZW1pdChpLlBsdWdpblR5cGUuU0NBTEFSUyl9KSxUKDYsIiBTY2FsYXJzICIpLGcoKSxmKDcsImJ1dHRvbiIsNCksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25QbHVnaW5UeXBlVG9nZ2xlZC5lbWl0KGkuUGx1Z2luVHlwZS5JTUFHRVMpfSksVCg4LCIgSW1hZ2UgIiksZygpLGYoOSwiYnV0dG9uIiw1KSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vblBsdWdpblR5cGVUb2dnbGVkLmVtaXQoaS5QbHVnaW5UeXBlLkhJU1RPR1JBTVMpfSksVCgxMCwiIEhpc3RvZ3JhbSAiKSxnKCkoKSxrKDExLCJ0Yi1jdXN0b21pemF0aW9uIiw2KSxmKDEyLCJkaXYiLDcpKDEzLCJidXR0b24iLDgpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpLm9uU2V0dGluZ3NCdXR0b25DbGlja2VkLmVtaXQoKX0pLGsoMTQsIm1hdC1pY29uIiw5KSxUKDE1LCIgU2V0dGluZ3MgIiksZygpKCkoKSxmKDE2LCJkaXYiLDEwKSgxNywiZGl2IiwxMSksUygxOCxGVmUsMSwxLCJtZXRyaWNzLWZpbHRlcmVkLXZpZXciLDEyKSxrKDE5LCJtZXRyaWNzLXBpbm5lZC12aWV3IiwxMyksUygyMCxOVmUsMiwwLCJkaXYiLDE0KSxrKDIxLCJtZXRyaWNzLWNhcmQtZ3JvdXBzIiwxMyksZygpLFMoMjIsQlZlLDIsMywiZGl2IiwxNSksUygyMyxWVmUsNywwLCJkaXYiLDE2KSxnKCkpLDImZSYmKHYoMyksQmUoImFyaWEtY2hlY2tlZCIsMD09PWkuZmlsdGVyZWRQbHVnaW5UeXBlcy5zaXplKSx2KDIpLEJlKCJhcmlhLWNoZWNrZWQiLGkuZmlsdGVyZWRQbHVnaW5UeXBlcy5oYXMoaS5QbHVnaW5UeXBlLlNDQUxBUlMpKSx2KDIpLEJlKCJhcmlhLWNoZWNrZWQiLGkuZmlsdGVyZWRQbHVnaW5UeXBlcy5oYXMoaS5QbHVnaW5UeXBlLklNQUdFUykpLHYoMiksQmUoImFyaWEtY2hlY2tlZCIsaS5maWx0ZXJlZFBsdWdpblR5cGVzLmhhcyhpLlBsdWdpblR5cGUuSElTVE9HUkFNUykpLHYoMiksYigiY3VzdG9taXphYmxlQ29tcG9uZW50IixpLmN1c3RvbVNoYXJlQnV0dG9uKSx2KDIpLGIoIm5nQ2xhc3MiLFVuKDIxLEhWZSxpLmlzU2lkZXBhbmVPcGVuKSksQmUoImFyaWEtcHJlc3NlZCIsaS5pc1NpZGVwYW5lT3Blbiksdig0KSxudCgibWFpbiIsITApKCJmaWx0ZXItdmlldyIsaS5zaG93RmlsdGVyZWRWaWV3KSx2KDEpLGIoIm5nSWYiLGkuc2hvd0ZpbHRlcmVkVmlldyksdigxKSxCdCgiZGlzcGxheSIsaS5zaG93RmlsdGVyZWRWaWV3PyJub25lIjoiIiksYigiY2FyZE9ic2VydmVyIixpLmNhcmRPYnNlcnZlciksdigxKSxiKCJuZ0lmIixpLmluaXRpYWxUYWdzTG9hZGluZyksdigxKSxCdCgiZGlzcGxheSIsaS5zaG93RmlsdGVyZWRWaWV3PyJub25lIjoiIiksYigiY2FyZE9ic2VydmVyIixpLmNhcmRPYnNlcnZlciksdigxKSxiKCJuZ0lmIixpLmlzU2lkZXBhbmVPcGVuKSx2KDEpLGIoIm5nSWYiLGkuaXNTaWRlcGFuZU9wZW4pKX0sZGVwZW5kZW5jaWVzOlt3bixOZSx2USx4ZCxraSxFcixETixibixOYyxBUSxIUSxNbmUsVG5lLEluZSxSbmVdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJX0udG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjtmbGV4Om5vbmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMTZweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAudG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC50b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fS50b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1ldHJpY3MtdGFnLWZpbHRlcltfbmdjb250ZW50LSVDT01QJV17ZmxleDoxIDEgMTAwcHh9LnRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgLnJpZ2h0LWl0ZW1zW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItbGVmdDoxcHggc29saWQgI2ViZWJlYjttYXJnaW4tbGVmdDoxNnB4O3BhZGRpbmctbGVmdDoxNnB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC50b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yaWdodC1pdGVtc1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC50b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yaWdodC1pdGVtc1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICM1NTV9bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAuZmlsdGVyLXZpZXdbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoxcHggc29saWQgI2ViZWJlYn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC5maWx0ZXItdmlld1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLmZpbHRlci12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MXB4IHNvbGlkICM1NTV9LmZpbHRlci12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItcmFkaXVzOjRweDtmbGV4Om5vbmU7bWFyZ2luLXJpZ2h0OjVweH0uZmlsdGVyLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItcmFkaXVzOjA7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6bm9ybWFsO2hlaWdodDoyNXB4O2xpbmUtaGVpZ2h0OjI1cHg7bWluLXdpZHRoOnVuc2V0O3BhZGRpbmc6MCAxMnB4fS5maWx0ZXItdmlld1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVdICsgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItbGVmdDoxcHggc29saWQgI2ViZWJlYn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZmlsdGVyLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSArIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5maWx0ZXItdmlld1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVdICsgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItbGVmdDoxcHggc29saWQgIzU1NX0uZmlsdGVyLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW2FyaWEtY2hlY2tlZD10cnVlXVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZTBlMGUwfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5maWx0ZXItdmlld1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bYXJpYS1jaGVja2VkPXRydWVdW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmZpbHRlci12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvblthcmlhLWNoZWNrZWQ9dHJ1ZV1bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzIxMjEyMX0uc3BsaXQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O292ZXJmbG93LXk6YXV0bztmbGV4OjF9Lm1haW5bX25nY29udGVudC0lQ09NUCVdLCAuc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV17Y29udGFpbjpzdHJpY3Q7YmFja2dyb3VuZC1jb2xvcjojZmZmO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0bzt3aWxsLWNoYW5nZTp0cmFuc2Zvcm0sc2Nyb2xsLXBvc2l0aW9ufWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm1haW5bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzMwMzAzMH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiMzMDMwMzB9Lm1haW5bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2Y1ZjZmNztmbGV4OjEgMTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm1haW5bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzNhM2EzYX0ubWFpbltfbmdjb250ZW50LSVDT01QJV0gICBtZXRyaWNzLWZpbHRlcmVkLXZpZXdbX25nY29udGVudC0lQ09NUCVdLCAubWFpbltfbmdjb250ZW50LSVDT01QJV0gICBtZXRyaWNzLXBpbm5lZC12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmVifWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1ldHJpY3MtZmlsdGVyZWQtdmlld1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1ldHJpY3MtZmlsdGVyZWQtdmlld1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAubWFpbltfbmdjb250ZW50LSVDT01QJV0gICBtZXRyaWNzLXBpbm5lZC12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm1haW5bX25nY29udGVudC0lQ09NUCVdICAgbWV0cmljcy1waW5uZWQtdmlld1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX0ubWFpbi5maWx0ZXItdmlld1tfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVufS5tYWluLmZpbHRlci12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1ldHJpY3MtZmlsdGVyZWQtdmlld1tfbmdjb250ZW50LSVDT01QJV17Y29udGFpbjpjb250ZW50O292ZXJmbG93OmF1dG87d2lsbC1jaGFuZ2U6dHJhbnNmb3JtLHNjcm9sbC1wb3NpdGlvbn0ubG9hZGluZy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW46MjBweCAwfS5zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItbGVmdDoxcHggc29saWQgI2ViZWJlYjtmbGV4OjAgMCAyNTBweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItbGVmdDoxcHggc29saWQgIzU1NX0uc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV0gICAuaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47aGVpZ2h0OjQycHg7cGFkZGluZzowIDE2cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnNpZGViYXJbX25nY29udGVudC0lQ09NUCVdICAgLmhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9LnNpZGViYXJbX25nY29udGVudC0lQ09NUCVdICAgLmhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAudGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDpub3JtYWw7bWFyZ2luOjB9W19uZ2hvc3QtJUNPTVAlXSAgIC5zZXR0aW5ncy1idXR0b25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7ZGlzcGxheTppbmxpbmUtZmxleH1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuc2V0dGluZ3MtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1bX25naG9zdC0lQ09NUCVdICAgLnNldHRpbmdzLWJ1dHRvbi5jaGVja2VkW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTA7Ym9yZGVyLWNvbG9yOiNlMGUwZTB9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnNldHRpbmdzLWJ1dHRvbi5jaGVja2VkW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiMyMTIxMjF9W19uZ2hvc3QtJUNPTVAlXSAgIC5zZXR0aW5ncy1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgICAubWF0LWJ1dHRvbi13cmFwcGVye2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfVtfbmdob3N0LSVDT01QJV0gICAuc2V0dGluZ3MtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tcmlnaHQ6NHB4fS5zbGlkZS1vdXQtbWVudVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO2hlaWdodDpjYWxjKDEwMCUgLSA0OXB4KTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDo1MHB4O3RvcDo0OXB4O3RyYW5zaXRpb246YWxsIC43NXMgZWFzZTt2aXNpYmlsaXR5OmhpZGRlbjt3aWR0aDoyMDBweDtib3JkZXItbGVmdDoxcHggc29saWQgI2ViZWJlYn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuc2xpZGUtb3V0LW1lbnVbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuc2xpZGUtb3V0LW1lbnVbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjNTU1fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zbGlkZS1vdXQtbWVudVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zbGlkZS1vdXQtbWVudVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfS5zbGlkZS1vdXQtbWVudS1leHBhbmRlZFtfbmdjb250ZW50LSVDT01QJV17cmlnaHQ6MjUwcHg7dmlzaWJpbGl0eTp2aXNpYmxlfSJdLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksa25lPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5zdG9yZT1lLHRoaXMuaXNTaWRlcGFuZU9wZW4kPXRoaXMuc3RvcmUuc2VsZWN0KHAxKSx0aGlzLmluaXRpYWxUYWdzTG9hZGluZyQ9dGhpcy5zdG9yZS5zZWxlY3QoeHYpLnBpcGUoT18oaT0+bnVsbD09PWkubGFzdExvYWRlZFRpbWVJbk1zLCEwKSxxKGk9Pmkuc3RhdGU9PT1SZS5MT0FESU5HJiZudWxsPT09aS5sYXN0TG9hZGVkVGltZUluTXMpKSx0aGlzLnNob3dGaWx0ZXJlZFZpZXckPXRoaXMuc3RvcmUuc2VsZWN0KEZsKS5waXBlKHEoaT0+aS5sZW5ndGg+MCkpLHRoaXMuZmlsdGVyZWRQbHVnaW5UeXBlcyQ9dGhpcy5zdG9yZS5zZWxlY3QoU2MpLHRoaXMuaXNTbGlkZW91dE1lbnVPcGVuJD10aGlzLnN0b3JlLnNlbGVjdChoMSl9b25TZXR0aW5nc0J1dHRvbkNsaWNrZWQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKHNUKCkpfW9uQ2xvc2VTaWRlcGFuZUJ1dHRvbkNsaWNrZWQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKGFUKCkpfW9uUGx1Z2luVmlzaWJpbGl0eVRvZ2dsZWQoZSl7dGhpcy5zdG9yZS5kaXNwYXRjaChGVCh7cGx1Z2luOmV9KSl9b25TaG93QWxsUGx1Z2lucygpe3RoaXMuc3RvcmUuZGlzcGF0Y2goTlQoKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtZXRyaWNzLW1haW4tdmlldyJdXSxkZWNsczo2LHZhcnM6MTUsY29uc3RzOltbMywic2hvd0ZpbHRlcmVkVmlldyIsImlzU2lkZXBhbmVPcGVuIiwiaW5pdGlhbFRhZ3NMb2FkaW5nIiwiZmlsdGVyZWRQbHVnaW5UeXBlcyIsInNsaWRlT3V0TWVudU9wZW4iLCJvblNldHRpbmdzQnV0dG9uQ2xpY2tlZCIsIm9uQ2xvc2VTaWRlcGFuZUJ1dHRvbkNsaWNrZWQiLCJvblBsdWdpblR5cGVUb2dnbGVkIiwib25QbHVnaW5UeXBlQWxsVG9nZ2xlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwibWV0cmljcy1tYWluLXZpZXctY29tcG9uZW50IiwwKSxBKCJvblNldHRpbmdzQnV0dG9uQ2xpY2tlZCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vblNldHRpbmdzQnV0dG9uQ2xpY2tlZCgpfSkoIm9uQ2xvc2VTaWRlcGFuZUJ1dHRvbkNsaWNrZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25DbG9zZVNpZGVwYW5lQnV0dG9uQ2xpY2tlZCgpfSkoIm9uUGx1Z2luVHlwZVRvZ2dsZWQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uUGx1Z2luVmlzaWJpbGl0eVRvZ2dsZWQobyl9KSgib25QbHVnaW5UeXBlQWxsVG9nZ2xlZCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vblNob3dBbGxQbHVnaW5zKCl9KSxVKDEsImFzeW5jIiksVSgyLCJhc3luYyIpLFUoMywiYXN5bmMiKSxVKDQsImFzeW5jIiksVSg1LCJhc3luYyIpLGcoKSksMiZlJiZiKCJzaG93RmlsdGVyZWRWaWV3IixHKDEsNSxpLnNob3dGaWx0ZXJlZFZpZXckKSkoImlzU2lkZXBhbmVPcGVuIixHKDIsNyxpLmlzU2lkZXBhbmVPcGVuJCkpKCJpbml0aWFsVGFnc0xvYWRpbmciLEcoMyw5LGkuaW5pdGlhbFRhZ3NMb2FkaW5nJCkpKCJmaWx0ZXJlZFBsdWdpblR5cGVzIixHKDQsMTEsaS5maWx0ZXJlZFBsdWdpblR5cGVzJCkpKCJzbGlkZU91dE1lbnVPcGVuIixHKDUsMTMsaS5pc1NsaWRlb3V0TWVudU9wZW4kKSl9LGRlcGVuZGVuY2llczpbUG5lLGN0XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxabD0oKCk9PihmdW5jdGlvbihuKXtuLkNIRUNLQk9YPSJjaGVja2JveCIsbi5SVU5fTkFNRT0icnVuX25hbWUiLG4uRVhQRVJJTUVOVF9OQU1FPSJleHBlcmltZW50X25hbWUiLG4uUlVOX0NPTE9SPSJydW5fY29sb3IifShabHx8KFpsPXt9KSksWmwpKSgpLFBwPSgoKT0+KGZ1bmN0aW9uKG4pe25bbi5CRUZPUkU9MF09IkJFRk9SRSIsbltuLkFGVEVSPTFdPSJBRlRFUiJ9KFBwfHwoUHA9e30pKSxQcCkpKCksT25lPW5ldyBTZXQoWyJzdHJpbmciLCJudW1iZXIiXSksR1ZlPXtpbnNlcnRVbmRlZmluZWQ6UHAuQUZURVJ9O2Z1bmN0aW9uIEZuZShuKXtpZigibnVtYmVyIj09dHlwZW9mIG4pcmV0dXJuIGlzTmFOKG4pP3ZvaWQgMDpuO2lmKCFpc05hTihwYXJzZUludChuKSkpcmV0dXJuIHBhcnNlSW50KG4pO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKWlmKGlzTmFOKHBhcnNlSW50KG5bdF0pKSlyZXR1cm4gMD09PXQ/dm9pZCAwOnBhcnNlSW50KG4uc2xpY2UoMCx0KSl9dmFyIFdWZT1bImRpYWxvZ1BvcHVwIl0scVZlPVsiaHVlU2xpZGVyIl0sWFZlPVsiYWxwaGFTbGlkZXIiXTtmdW5jdGlvbiBZVmUobix0KXtpZigxJm4mJmsoMCwiZGl2IiksMiZuKXtsZXQgZT13KCk7YmIoImFycm93IGFycm93LSIsZS5jcFVzZVBvc2l0aW9uLCIiKSxCdCgidG9wIixlLmFycm93VG9wLCJweCIpfX1mdW5jdGlvbiBRVmUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJkaXYiLDI4KSxBKCJuZXdWYWx1ZSIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoKS5vbkNvbG9yQ2hhbmdlKHIpKX0pKCJkcmFnU3RhcnQiLGZ1bmN0aW9uKCl7cmV0dXJuIG5lKGUpLGllKHcoKS5vbkRyYWdTdGFydCgic2F0dXJhdGlvbi1saWdodG5lc3MiKSl9KSgiZHJhZ0VuZCIsZnVuY3Rpb24oKXtyZXR1cm4gbmUoZSksaWUodygpLm9uRHJhZ0VuZCgic2F0dXJhdGlvbi1saWdodG5lc3MiKSl9KSxrKDEsImRpdiIsMTQpLGcoKX1pZigyJm4pe2xldCBlPXcoKTtCdCgiYmFja2dyb3VuZC1jb2xvciIsZS5odWVTbGlkZXJDb2xvciksYigicmdYIiwxKSgicmdZIiwxKSx2KDEpLEJ0KCJ0b3AiLG51bGw9PWUuc2xpZGVyP251bGw6ZS5zbGlkZXIudiwicHgiKSgibGVmdCIsbnVsbD09ZS5zbGlkZXI/bnVsbDplLnNsaWRlci5zLCJweCIpfX1mdW5jdGlvbiBaVmUobix0KXsxJm4mJihxbigpLGYoMCwic3ZnIiwyOSksaygxLCJwYXRoIiwzMCkoMiwicGF0aCIsMzEpLGcoKSl9ZnVuY3Rpb24gS1ZlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiYnV0dG9uIiwzMiksQSgiY2xpY2siLGZ1bmN0aW9uKHIpe25lKGUpO2xldCBvPXcoKTtyZXR1cm4gaWUoby5vbkFkZFByZXNldENvbG9yKHIsby5zZWxlY3RlZENvbG9yKSl9KSxUKDEpLGcoKX1pZigyJm4pe2xldCBlPXcoKTtYbyhlLmNwQWRkQ29sb3JCdXR0b25DbGFzcyksYigiZGlzYWJsZWQiLGUuY3BQcmVzZXRDb2xvcnMmJmUuY3BQcmVzZXRDb2xvcnMubGVuZ3RoPj1lLmNwTWF4UHJlc2V0Q29sb3JzTGVuZ3RoKSx2KDEpLFZlKCIgIixlLmNwQWRkQ29sb3JCdXR0b25UZXh0LCIgIil9fWZ1bmN0aW9uIEpWZShuLHQpezEmbiYmaygwLCJkaXYiLDMzKX1mdW5jdGlvbiAkVmUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJpbnB1dCIsMzkpLEEoImtleXVwLmVudGVyIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygyKS5vbkFjY2VwdENvbG9yKHIpKX0pKCJuZXdWYWx1ZSIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoMikub25BbHBoYUlucHV0KHIpKX0pLGcoKX1pZigyJm4pe2xldCBlPXcoMik7YigicmciLDEpKCJ2YWx1ZSIsbnVsbD09ZS5jbXlrVGV4dD9udWxsOmUuY215a1RleHQuYSl9fWZ1bmN0aW9uIGU0ZShuLHQpezEmbiYmKGYoMCwiZGl2IiksVCgxLCJBIiksZygpKX1mdW5jdGlvbiB0NGUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJkaXYiLDM0KSgxLCJkaXYiLDM1KSgyLCJpbnB1dCIsMzYpLEEoImtleXVwLmVudGVyIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9uQWNjZXB0Q29sb3IocikpfSkoIm5ld1ZhbHVlIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9uQ3lhbklucHV0KHIpKX0pLGcoKSxmKDMsImlucHV0IiwzNiksQSgia2V5dXAuZW50ZXIiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkub25BY2NlcHRDb2xvcihyKSl9KSgibmV3VmFsdWUiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkub25NYWdlbnRhSW5wdXQocikpfSksZygpLGYoNCwiaW5wdXQiLDM2KSxBKCJrZXl1cC5lbnRlciIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoKS5vbkFjY2VwdENvbG9yKHIpKX0pKCJuZXdWYWx1ZSIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoKS5vblllbGxvd0lucHV0KHIpKX0pLGcoKSxmKDUsImlucHV0IiwzNiksQSgia2V5dXAuZW50ZXIiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkub25BY2NlcHRDb2xvcihyKSl9KSgibmV3VmFsdWUiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkub25CbGFja0lucHV0KHIpKX0pLGcoKSxTKDYsJFZlLDEsMiwiaW5wdXQiLDM3KSxnKCksZig3LCJkaXYiLDM1KSg4LCJkaXYiKSxUKDksIkMiKSxnKCksZigxMCwiZGl2IiksVCgxMSwiTSIpLGcoKSxmKDEyLCJkaXYiKSxUKDEzLCJZIiksZygpLGYoMTQsImRpdiIpLFQoMTUsIksiKSxnKCksUygxNixlNGUsMiwwLCJkaXYiLDM4KSxnKCkoKX1pZigyJm4pe2xldCBlPXcoKTtCdCgiZGlzcGxheSIsMyE9PWUuZm9ybWF0PyJub25lIjoiYmxvY2siKSx2KDIpLGIoInJnIiwxMDApKCJ2YWx1ZSIsbnVsbD09ZS5jbXlrVGV4dD9udWxsOmUuY215a1RleHQuYyksdigxKSxiKCJyZyIsMTAwKSgidmFsdWUiLG51bGw9PWUuY215a1RleHQ/bnVsbDplLmNteWtUZXh0Lm0pLHYoMSksYigicmciLDEwMCkoInZhbHVlIixudWxsPT1lLmNteWtUZXh0P251bGw6ZS5jbXlrVGV4dC55KSx2KDEpLGIoInJnIiwxMDApKCJ2YWx1ZSIsbnVsbD09ZS5jbXlrVGV4dD9udWxsOmUuY215a1RleHQuayksdigxKSxiKCJuZ0lmIiwiZGlzYWJsZWQiIT09ZS5jcEFscGhhQ2hhbm5lbCksdigxMCksYigibmdJZiIsImRpc2FibGVkIiE9PWUuY3BBbHBoYUNoYW5uZWwpfX1mdW5jdGlvbiBuNGUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJpbnB1dCIsMzkpLEEoImtleXVwLmVudGVyIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygyKS5vbkFjY2VwdENvbG9yKHIpKX0pKCJuZXdWYWx1ZSIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoMikub25BbHBoYUlucHV0KHIpKX0pLGcoKX1pZigyJm4pe2xldCBlPXcoMik7YigicmciLDEpKCJ2YWx1ZSIsbnVsbD09ZS5oc2xhVGV4dD9udWxsOmUuaHNsYVRleHQuYSl9fWZ1bmN0aW9uIGk0ZShuLHQpezEmbiYmKGYoMCwiZGl2IiksVCgxLCJBIiksZygpKX1mdW5jdGlvbiByNGUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJkaXYiLDQwKSgxLCJkaXYiLDM1KSgyLCJpbnB1dCIsNDEpLEEoImtleXVwLmVudGVyIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9uQWNjZXB0Q29sb3IocikpfSkoIm5ld1ZhbHVlIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9uSHVlSW5wdXQocikpfSksZygpLGYoMywiaW5wdXQiLDM2KSxBKCJrZXl1cC5lbnRlciIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoKS5vbkFjY2VwdENvbG9yKHIpKX0pKCJuZXdWYWx1ZSIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoKS5vblNhdHVyYXRpb25JbnB1dChyKSl9KSxnKCksZig0LCJpbnB1dCIsMzYpLEEoImtleXVwLmVudGVyIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9uQWNjZXB0Q29sb3IocikpfSkoIm5ld1ZhbHVlIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9uTGlnaHRuZXNzSW5wdXQocikpfSksZygpLFMoNSxuNGUsMSwyLCJpbnB1dCIsMzcpLGcoKSxmKDYsImRpdiIsMzUpKDcsImRpdiIpLFQoOCwiSCIpLGcoKSxmKDksImRpdiIpLFQoMTAsIlMiKSxnKCksZigxMSwiZGl2IiksVCgxMiwiTCIpLGcoKSxTKDEzLGk0ZSwyLDAsImRpdiIsMzgpLGcoKSgpfWlmKDImbil7bGV0IGU9dygpO0J0KCJkaXNwbGF5IiwyIT09ZS5mb3JtYXQ/Im5vbmUiOiJibG9jayIpLHYoMiksYigicmciLDM2MCkoInZhbHVlIixudWxsPT1lLmhzbGFUZXh0P251bGw6ZS5oc2xhVGV4dC5oKSx2KDEpLGIoInJnIiwxMDApKCJ2YWx1ZSIsbnVsbD09ZS5oc2xhVGV4dD9udWxsOmUuaHNsYVRleHQucyksdigxKSxiKCJyZyIsMTAwKSgidmFsdWUiLG51bGw9PWUuaHNsYVRleHQ/bnVsbDplLmhzbGFUZXh0LmwpLHYoMSksYigibmdJZiIsImRpc2FibGVkIiE9PWUuY3BBbHBoYUNoYW5uZWwpLHYoOCksYigibmdJZiIsImRpc2FibGVkIiE9PWUuY3BBbHBoYUNoYW5uZWwpfX1mdW5jdGlvbiBvNGUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJpbnB1dCIsMzkpLEEoImtleXVwLmVudGVyIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygyKS5vbkFjY2VwdENvbG9yKHIpKX0pKCJuZXdWYWx1ZSIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoMikub25BbHBoYUlucHV0KHIpKX0pLGcoKX1pZigyJm4pe2xldCBlPXcoMik7YigicmciLDEpKCJ2YWx1ZSIsbnVsbD09ZS5yZ2JhVGV4dD9udWxsOmUucmdiYVRleHQuYSl9fWZ1bmN0aW9uIGE0ZShuLHQpezEmbiYmKGYoMCwiZGl2IiksVCgxLCJBIiksZygpKX1mdW5jdGlvbiBzNGUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJkaXYiLDQyKSgxLCJkaXYiLDM1KSgyLCJpbnB1dCIsNDMpLEEoImtleXVwLmVudGVyIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9uQWNjZXB0Q29sb3IocikpfSkoIm5ld1ZhbHVlIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9uUmVkSW5wdXQocikpfSksZygpLGYoMywiaW5wdXQiLDQzKSxBKCJrZXl1cC5lbnRlciIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoKS5vbkFjY2VwdENvbG9yKHIpKX0pKCJuZXdWYWx1ZSIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoKS5vbkdyZWVuSW5wdXQocikpfSksZygpLGYoNCwiaW5wdXQiLDQzKSxBKCJrZXl1cC5lbnRlciIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoKS5vbkFjY2VwdENvbG9yKHIpKX0pKCJuZXdWYWx1ZSIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoKS5vbkJsdWVJbnB1dChyKSl9KSxnKCksUyg1LG80ZSwxLDIsImlucHV0IiwzNyksZygpLGYoNiwiZGl2IiwzNSkoNywiZGl2IiksVCg4LCJSIiksZygpLGYoOSwiZGl2IiksVCgxMCwiRyIpLGcoKSxmKDExLCJkaXYiKSxUKDEyLCJCIiksZygpLFMoMTMsYTRlLDIsMCwiZGl2IiwzOCksZygpKCl9aWYoMiZuKXtsZXQgZT13KCk7QnQoImRpc3BsYXkiLDEhPT1lLmZvcm1hdD8ibm9uZSI6ImJsb2NrIiksdigyKSxiKCJyZyIsMjU1KSgidmFsdWUiLG51bGw9PWUucmdiYVRleHQ/bnVsbDplLnJnYmFUZXh0LnIpLHYoMSksYigicmciLDI1NSkoInZhbHVlIixudWxsPT1lLnJnYmFUZXh0P251bGw6ZS5yZ2JhVGV4dC5nKSx2KDEpLGIoInJnIiwyNTUpKCJ2YWx1ZSIsbnVsbD09ZS5yZ2JhVGV4dD9udWxsOmUucmdiYVRleHQuYiksdigxKSxiKCJuZ0lmIiwiZGlzYWJsZWQiIT09ZS5jcEFscGhhQ2hhbm5lbCksdig4KSxiKCJuZ0lmIiwiZGlzYWJsZWQiIT09ZS5jcEFscGhhQ2hhbm5lbCl9fWZ1bmN0aW9uIGw0ZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImlucHV0IiwzOSksQSgia2V5dXAuZW50ZXIiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KDIpLm9uQWNjZXB0Q29sb3IocikpfSkoIm5ld1ZhbHVlIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygyKS5vbkFscGhhSW5wdXQocikpfSksZygpfWlmKDImbil7bGV0IGU9dygyKTtiKCJyZyIsMSkoInZhbHVlIixlLmhleEFscGhhKX19ZnVuY3Rpb24gYzRlKG4sdCl7MSZuJiYoZigwLCJkaXYiKSxUKDEsIkEiKSxnKCkpfWZ1bmN0aW9uIGQ0ZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImRpdiIsNDQpKDEsImRpdiIsMzUpKDIsImlucHV0Iiw0NSksQSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gbmUoZSksaWUodygpLm9uSGV4SW5wdXQobnVsbCkpfSkoImtleXVwLmVudGVyIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9uQWNjZXB0Q29sb3IocikpfSkoIm5ld1ZhbHVlIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9uSGV4SW5wdXQocikpfSksZygpLFMoMyxsNGUsMSwyLCJpbnB1dCIsMzcpLGcoKSxmKDQsImRpdiIsMzUpKDUsImRpdiIpLFQoNiwiSGV4IiksZygpLFMoNyxjNGUsMiwwLCJkaXYiLDM4KSxnKCkoKX1pZigyJm4pe2xldCBlPXcoKTtCdCgiZGlzcGxheSIsMCE9PWUuZm9ybWF0PyJub25lIjoiYmxvY2siKSxudCgiaGV4LWFscGhhIiwiZm9yY2VkIj09PWUuY3BBbHBoYUNoYW5uZWwpLHYoMiksYigidmFsdWUiLGUuaGV4VGV4dCksdigxKSxiKCJuZ0lmIiwiZm9yY2VkIj09PWUuY3BBbHBoYUNoYW5uZWwpLHYoNCksYigibmdJZiIsImZvcmNlZCI9PT1lLmNwQWxwaGFDaGFubmVsKX19ZnVuY3Rpb24gdTRlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiaW5wdXQiLDM5KSxBKCJrZXl1cC5lbnRlciIsZnVuY3Rpb24ocil7cmV0dXJuIG5lKGUpLGllKHcoMikub25BY2NlcHRDb2xvcihyKSl9KSgibmV3VmFsdWUiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KDIpLm9uQWxwaGFJbnB1dChyKSl9KSxnKCl9aWYoMiZuKXtsZXQgZT13KDIpO2IoInJnIiwxKSgidmFsdWUiLG51bGw9PWUuaHNsYVRleHQ/bnVsbDplLmhzbGFUZXh0LmEpfX1mdW5jdGlvbiBwNGUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJkaXYiLDQ2KSgxLCJkaXYiLDM1KSgyLCJpbnB1dCIsMzYpLEEoImtleXVwLmVudGVyIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9uQWNjZXB0Q29sb3IocikpfSkoIm5ld1ZhbHVlIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLm9uVmFsdWVJbnB1dChyKSl9KSxnKCksUygzLHU0ZSwxLDIsImlucHV0IiwzNyksZygpLGYoNCwiZGl2IiwzNSkoNSwiZGl2IiksVCg2LCJWIiksZygpLGYoNywiZGl2IiksVCg4LCJBIiksZygpKCkoKX1pZigyJm4pe2xldCBlPXcoKTt2KDIpLGIoInJnIiwxMDApKCJ2YWx1ZSIsbnVsbD09ZS5oc2xhVGV4dD9udWxsOmUuaHNsYVRleHQubCksdigxKSxiKCJuZ0lmIiwiZGlzYWJsZWQiIT09ZS5jcEFscGhhQ2hhbm5lbCl9fWZ1bmN0aW9uIGg0ZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImRpdiIsNDcpKDEsInNwYW4iLDQ4KSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gbmUoZSksaWUodygpLm9uRm9ybWF0VG9nZ2xlKC0xKSl9KSxnKCksZigyLCJzcGFuIiw0OCksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIG5lKGUpLGllKHcoKS5vbkZvcm1hdFRvZ2dsZSgxKSl9KSxnKCkoKX19ZnVuY3Rpb24gbTRlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwic3BhbiIsNTUpLEEoImNsaWNrIixmdW5jdGlvbihyKXtuZShlKTtsZXQgbz13KCkuJGltcGxpY2l0O3JldHVybiBpZSh3KDMpLm9uUmVtb3ZlUHJlc2V0Q29sb3IocixvKSl9KSxnKCl9MiZuJiZYbyh3KDQpLmNwUmVtb3ZlQ29sb3JCdXR0b25DbGFzcyl9ZnVuY3Rpb24gZjRlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiZGl2Iiw1MyksQSgiY2xpY2siLGZ1bmN0aW9uKCl7bGV0IG89bmUoZSkuJGltcGxpY2l0O3JldHVybiBpZSh3KDMpLnNldENvbG9yRnJvbVN0cmluZyhvKSl9KSxTKDEsbTRlLDEsMywic3BhbiIsNTQpLGcoKX1pZigyJm4pe2xldCBlPXQuJGltcGxpY2l0LGk9dygzKTtCdCgiYmFja2dyb3VuZC1jb2xvciIsZSksdigxKSxiKCJuZ0lmIixpLmNwQWRkQ29sb3JCdXR0b24pfX1mdW5jdGlvbiBnNGUobix0KXtpZigxJm4mJihmKDAsImRpdiIpLFMoMSxmNGUsMiwzLCJkaXYiLDUyKSxnKCkpLDImbil7bGV0IGU9dygyKTtYbyhlLmNwUHJlc2V0Q29sb3JzQ2xhc3MpLHYoMSksYigibmdGb3JPZiIsZS5jcFByZXNldENvbG9ycyl9fWZ1bmN0aW9uIF80ZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2IiksVCgxKSxnKCkpLDImbil7bGV0IGU9dygyKTtYbyhlLmNwUHJlc2V0RW1wdHlNZXNzYWdlQ2xhc3MpLHYoMSksa3QoZS5jcFByZXNldEVtcHR5TWVzc2FnZSl9fWZ1bmN0aW9uIGI0ZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2Iiw0OSksaygxLCJociIpLGYoMiwiZGl2Iiw1MCksVCgzKSxnKCksUyg0LGc0ZSwyLDQsImRpdiIsNTEpLFMoNSxfNGUsMiw0LCJkaXYiLDUxKSxnKCkpLDImbil7bGV0IGU9dygpO3YoMyksa3QoZS5jcFByZXNldExhYmVsKSx2KDEpLGIoIm5nSWYiLG51bGw9PWUuY3BQcmVzZXRDb2xvcnM/bnVsbDplLmNwUHJlc2V0Q29sb3JzLmxlbmd0aCksdigxKSxiKCJuZ0lmIiwhKG51bGwhPWUuY3BQcmVzZXRDb2xvcnMmJmUuY3BQcmVzZXRDb2xvcnMubGVuZ3RoKSYmZS5jcEFkZENvbG9yQnV0dG9uKX19ZnVuY3Rpb24gdjRlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiYnV0dG9uIiw1OCksQSgiY2xpY2siLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KDIpLm9uQ2FuY2VsQ29sb3IocikpfSksVCgxKSxnKCl9aWYoMiZuKXtsZXQgZT13KDIpO1hvKGUuY3BDYW5jZWxCdXR0b25DbGFzcyksdigxKSxrdChlLmNwQ2FuY2VsQnV0dG9uVGV4dCl9fWZ1bmN0aW9uIHk0ZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImJ1dHRvbiIsNTgpLEEoImNsaWNrIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygyKS5vbkFjY2VwdENvbG9yKHIpKX0pLFQoMSksZygpfWlmKDImbil7bGV0IGU9dygyKTtYbyhlLmNwT0tCdXR0b25DbGFzcyksdigxKSxrdChlLmNwT0tCdXR0b25UZXh0KX19ZnVuY3Rpb24geDRlKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiLDU2KSxTKDEsdjRlLDIsNCwiYnV0dG9uIiw1NyksUygyLHk0ZSwyLDQsImJ1dHRvbiIsNTcpLGcoKSksMiZuKXtsZXQgZT13KCk7digxKSxiKCJuZ0lmIixlLmNwQ2FuY2VsQnV0dG9uKSx2KDEpLGIoIm5nSWYiLGUuY3BPS0J1dHRvbil9fWZ1bmN0aW9uIEM0ZShuLHQpezEmbiYmaGkoMCl9ZnVuY3Rpb24gTTRlKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiLDU5KSxTKDEsQzRlLDEsMCwibmctY29udGFpbmVyIiw2MCksZygpKSwyJm4pe2xldCBlPXcoKTt2KDEpLGIoIm5nVGVtcGxhdGVPdXRsZXQiLGUuY3BFeHRyYVRlbXBsYXRlKX19dmFyIEdvPSgoKT0+KGZ1bmN0aW9uKG4pe25bbi5IRVg9MF09IkhFWCIsbltuLlJHQkE9MV09IlJHQkEiLG5bbi5IU0xBPTJdPSJIU0xBIixuW24uQ01ZSz0zXT0iQ01ZSyJ9KEdvfHwoR289e30pKSxHbykpKCksS2w9Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkscil7dGhpcy5yPXQsdGhpcy5nPWUsdGhpcy5iPWksdGhpcy5hPXJ9fSxiXz1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSxyKXt0aGlzLmg9dCx0aGlzLnM9ZSx0aGlzLnY9aSx0aGlzLmE9cn19LHFkPWNsYXNze2NvbnN0cnVjdG9yKHQsZSxpLHIpe3RoaXMuaD10LHRoaXMucz1lLHRoaXMubD1pLHRoaXMuYT1yfX0sRG09Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkscixvPTEpe3RoaXMuYz10LHRoaXMubT1lLHRoaXMueT1pLHRoaXMuaz1yLHRoaXMuYT1vfX0sRTRlPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLm5ld1ZhbHVlPW5ldyBGfWlucHV0Q2hhbmdlKGUpe2xldCBpPWUudGFyZ2V0LnZhbHVlO2lmKHZvaWQgMD09PXRoaXMucmcpdGhpcy5uZXdWYWx1ZS5lbWl0KGkpO2Vsc2V7bGV0IHI9cGFyc2VGbG9hdChpKTt0aGlzLm5ld1ZhbHVlLmVtaXQoe3Y6cixyZzp0aGlzLnJnfSl9fX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siIiwidGV4dCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsxJmUmJkEoImlucHV0IixmdW5jdGlvbihvKXtyZXR1cm4gaS5pbnB1dENoYW5nZShvKX0pfSxpbnB1dHM6e3JnOiJyZyIsdGV4dDoidGV4dCJ9LG91dHB1dHM6e25ld1ZhbHVlOiJuZXdWYWx1ZSJ9fSksbn0pKCksVDRlPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5lbFJlZj1lLHRoaXMuZHJhZ0VuZD1uZXcgRix0aGlzLmRyYWdTdGFydD1uZXcgRix0aGlzLm5ld1ZhbHVlPW5ldyBGLHRoaXMubGlzdGVuZXJNb3ZlPWk9PnRoaXMubW92ZShpKSx0aGlzLmxpc3RlbmVyU3RvcD0oKT0+dGhpcy5zdG9wKCl9bW91c2VEb3duKGUpe3RoaXMuc3RhcnQoZSl9dG91Y2hTdGFydChlKXt0aGlzLnN0YXJ0KGUpfW1vdmUoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2V0Q3Vyc29yKGUpfXN0YXJ0KGUpe3RoaXMuc2V0Q3Vyc29yKGUpLGUuc3RvcFByb3BhZ2F0aW9uKCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5saXN0ZW5lclN0b3ApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLmxpc3RlbmVyU3RvcCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmxpc3RlbmVyTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLmxpc3RlbmVyTW92ZSksdGhpcy5kcmFnU3RhcnQuZW1pdCgpfXN0b3AoKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmxpc3RlbmVyU3RvcCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMubGlzdGVuZXJTdG9wKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMubGlzdGVuZXJNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMubGlzdGVuZXJNb3ZlKSx0aGlzLmRyYWdFbmQuZW1pdCgpfWdldFgoZSl7bGV0IGk9dGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybih2b2lkIDAhPT1lLnBhZ2VYP2UucGFnZVg6ZS50b3VjaGVzWzBdLnBhZ2VYKS1pLmxlZnQtd2luZG93LnBhZ2VYT2Zmc2V0fWdldFkoZSl7bGV0IGk9dGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybih2b2lkIDAhPT1lLnBhZ2VZP2UucGFnZVk6ZS50b3VjaGVzWzBdLnBhZ2VZKS1pLnRvcC13aW5kb3cucGFnZVlPZmZzZXR9c2V0Q3Vyc29yKGUpe2xldCBpPXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCxyPXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQsbz1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuZ2V0WChlKSxpKSksYT1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuZ2V0WShlKSxyKSk7dm9pZCAwIT09dGhpcy5yZ1gmJnZvaWQgMCE9PXRoaXMucmdZP3RoaXMubmV3VmFsdWUuZW1pdCh7czpvL2ksdjoxLWEvcixyZ1g6dGhpcy5yZ1gscmdZOnRoaXMucmdZfSk6dm9pZCAwPT09dGhpcy5yZ1gmJnZvaWQgMCE9PXRoaXMucmdZP3RoaXMubmV3VmFsdWUuZW1pdCh7djphL3IscmdZOnRoaXMucmdZfSk6dm9pZCAwIT09dGhpcy5yZ1gmJnZvaWQgMD09PXRoaXMucmdZJiZ0aGlzLm5ld1ZhbHVlLmVtaXQoe3Y6by9pLHJnWDp0aGlzLnJnWH0pfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKHhlKSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsInNsaWRlciIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsxJmUmJkEoIm1vdXNlZG93biIsZnVuY3Rpb24obyl7cmV0dXJuIGkubW91c2VEb3duKG8pfSkoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLnRvdWNoU3RhcnQobyl9KX0saW5wdXRzOntyZ1g6InJnWCIscmdZOiJyZ1kiLHNsaWRlcjoic2xpZGVyIn0sb3V0cHV0czp7ZHJhZ0VuZDoiZHJhZ0VuZCIsZHJhZ1N0YXJ0OiJkcmFnU3RhcnQiLG5ld1ZhbHVlOiJuZXdWYWx1ZSJ9fSksbn0pKCksX0E9Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkscil7dGhpcy5oPXQsdGhpcy5zPWUsdGhpcy52PWksdGhpcy5hPXJ9fSxiQT1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSxyKXt0aGlzLmg9dCx0aGlzLnM9ZSx0aGlzLnY9aSx0aGlzLmE9cn19LFNWPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLmFjdGl2ZT1udWxsfXNldEFjdGl2ZShlKXt0aGlzLmFjdGl2ZSYmdGhpcy5hY3RpdmUhPT1lJiYiaW5saW5lIiE9PXRoaXMuYWN0aXZlLmNwRGlhbG9nRGlzcGxheSYmdGhpcy5hY3RpdmUuY2xvc2VEaWFsb2coKSx0aGlzLmFjdGl2ZT1lfWhzdmEyaHNsYShlKXtsZXQgaT1lLmgscj1lLnMsbz1lLnYsYT1lLmE7aWYoMD09PW8pcmV0dXJuIG5ldyBxZChpLDAsMCxhKTtpZigwPT09ciYmMT09PW8pcmV0dXJuIG5ldyBxZChpLDEsMSxhKTt7bGV0IHM9byooMi1yKS8yO3JldHVybiBuZXcgcWQoaSxvKnIvKDEtTWF0aC5hYnMoMipzLTEpKSxzLGEpfX1oc2xhMmhzdmEoZSl7bGV0IGk9TWF0aC5taW4oZS5oLDEpLHI9TWF0aC5taW4oZS5zLDEpLG89TWF0aC5taW4oZS5sLDEpLGE9TWF0aC5taW4oZS5hLDEpO2lmKDA9PT1vKXJldHVybiBuZXcgYl8oaSwwLDAsYSk7e2xldCBzPW8rciooMS1NYXRoLmFicygyKm8tMSkpLzI7cmV0dXJuIG5ldyBiXyhpLDIqKHMtbykvcyxzLGEpfX1oc3ZhVG9SZ2JhKGUpe2xldCBpLHIsbyxhPWUuaCxzPWUucyxsPWUudixjPWUuYSxkPU1hdGguZmxvb3IoNiphKSx1PTYqYS1kLHA9bCooMS1zKSxoPWwqKDEtdSpzKSxtPWwqKDEtKDEtdSkqcyk7c3dpdGNoKGQlNil7Y2FzZSAwOmk9bCxyPW0sbz1wO2JyZWFrO2Nhc2UgMTppPWgscj1sLG89cDticmVhaztjYXNlIDI6aT1wLHI9bCxvPW07YnJlYWs7Y2FzZSAzOmk9cCxyPWgsbz1sO2JyZWFrO2Nhc2UgNDppPW0scj1wLG89bDticmVhaztjYXNlIDU6aT1sLHI9cCxvPWg7YnJlYWs7ZGVmYXVsdDppPTAscj0wLG89MH1yZXR1cm4gbmV3IEtsKGkscixvLGMpfWNteWtUb1JnYihlKXtyZXR1cm4gbmV3IEtsKCgxLWUuYykqKDEtZS5rKSwoMS1lLm0pKigxLWUuayksKDEtZS55KSooMS1lLmspLGUuYSl9cmdiYVRvQ215ayhlKXtsZXQgaT0xLU1hdGgubWF4KGUucixlLmcsZS5iKTtyZXR1cm4gMT09PWk/bmV3IERtKDAsMCwwLDEsZS5hKTpuZXcgRG0oKDEtZS5yLWkpLygxLWkpLCgxLWUuZy1pKS8oMS1pKSwoMS1lLmItaSkvKDEtaSksaSxlLmEpfXJnYmFUb0hzdmEoZSl7bGV0IGkscixvPU1hdGgubWluKGUuciwxKSxhPU1hdGgubWluKGUuZywxKSxzPU1hdGgubWluKGUuYiwxKSxsPU1hdGgubWluKGUuYSwxKSxjPU1hdGgubWF4KG8sYSxzKSxkPU1hdGgubWluKG8sYSxzKSx1PWMscD1jLWQ7aWYocj0wPT09Yz8wOnAvYyxjPT09ZClpPTA7ZWxzZXtzd2l0Y2goYyl7Y2FzZSBvOmk9KGEtcykvcCsoYTxzPzY6MCk7YnJlYWs7Y2FzZSBhOmk9KHMtbykvcCsyO2JyZWFrO2Nhc2UgczppPShvLWEpL3ArNDticmVhaztkZWZhdWx0Omk9MH1pLz02fXJldHVybiBuZXcgYl8oaSxyLHUsbCl9cmdiYVRvSGV4KGUsaSl7bGV0IHI9IiMiKygxNjc3NzIxNnxlLnI8PDE2fGUuZzw8OHxlLmIpLnRvU3RyaW5nKDE2KS5zdWJzdHIoMSk7cmV0dXJuIGkmJihyKz0oMjU2fE1hdGgucm91bmQoMjU1KmUuYSkpLnRvU3RyaW5nKDE2KS5zdWJzdHIoMSkpLHJ9bm9ybWFsaXplQ01ZSyhlKXtyZXR1cm4gbmV3IERtKGUuYy8xMDAsZS5tLzEwMCxlLnkvMTAwLGUuay8xMDAsZS5hKX1kZW5vcm1hbGl6ZUNNWUsoZSl7cmV0dXJuIG5ldyBEbShNYXRoLmZsb29yKDEwMCplLmMpLE1hdGguZmxvb3IoMTAwKmUubSksTWF0aC5mbG9vcigxMDAqZS55KSxNYXRoLmZsb29yKDEwMCplLmspLGUuYSl9ZGVub3JtYWxpemVSR0JBKGUpe3JldHVybiBuZXcgS2woTWF0aC5yb3VuZCgyNTUqZS5yKSxNYXRoLnJvdW5kKDI1NSplLmcpLE1hdGgucm91bmQoMjU1KmUuYiksZS5hKX1zdHJpbmdUb0hzdmEoZT0iIixpPSExKXtsZXQgcj1udWxsO2U9KGV8fCIiKS50b0xvd2VyQ2FzZSgpO2xldCBvPVt7cmU6LyhyZ2IpYT9cKFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSlccyolPyxccyooXGR7MSwzfSlccyolPyg/OixccyooXGQrKD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IEtsKHBhcnNlSW50KGFbMl0sMTApLzI1NSxwYXJzZUludChhWzNdLDEwKS8yNTUscGFyc2VJbnQoYVs0XSwxMCkvMjU1LGlzTmFOKHBhcnNlRmxvYXQoYVs1XSkpPzE6cGFyc2VGbG9hdChhWzVdKSl9fSx7cmU6Lyhoc2wpYT9cKFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSklXHMqLFxzKihcZHsxLDN9KSVccyooPzosXHMqKFxkKyg/OlwuXGQrKT8pXHMqKT9cKS8scGFyc2U6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBxZChwYXJzZUludChhWzJdLDEwKS8zNjAscGFyc2VJbnQoYVszXSwxMCkvMTAwLHBhcnNlSW50KGFbNF0sMTApLzEwMCxpc05hTihwYXJzZUZsb2F0KGFbNV0pKT8xOnBhcnNlRmxvYXQoYVs1XSkpfX1dO28ucHVzaChpP3tyZTovIyhbYS1mQS1GMC05XXsyfSkoW2EtZkEtRjAtOV17Mn0pKFthLWZBLUYwLTldezJ9KShbYS1mQS1GMC05XXsyfSk/JC8scGFyc2U6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBLbChwYXJzZUludChhWzFdLDE2KS8yNTUscGFyc2VJbnQoYVsyXSwxNikvMjU1LHBhcnNlSW50KGFbM10sMTYpLzI1NSxwYXJzZUludChhWzRdfHwiRkYiLDE2KS8yNTUpfX06e3JlOi8jKFthLWZBLUYwLTldezJ9KShbYS1mQS1GMC05XXsyfSkoW2EtZkEtRjAtOV17Mn0pJC8scGFyc2U6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBLbChwYXJzZUludChhWzFdLDE2KS8yNTUscGFyc2VJbnQoYVsyXSwxNikvMjU1LHBhcnNlSW50KGFbM10sMTYpLzI1NSwxKX19KSxvLnB1c2goe3JlOi8jKFthLWZBLUYwLTldKShbYS1mQS1GMC05XSkoW2EtZkEtRjAtOV0pJC8scGFyc2U6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBLbChwYXJzZUludChhWzFdK2FbMV0sMTYpLzI1NSxwYXJzZUludChhWzJdK2FbMl0sMTYpLzI1NSxwYXJzZUludChhWzNdK2FbM10sMTYpLzI1NSwxKX19KTtmb3IobGV0IGEgaW4gbylpZihvLmhhc093blByb3BlcnR5KGEpKXtsZXQgcz1vW2FdLGw9cy5yZS5leGVjKGUpLGM9bCYmcy5wYXJzZShsKTtpZihjKXJldHVybiBjIGluc3RhbmNlb2YgS2w/cj10aGlzLnJnYmFUb0hzdmEoYyk6YyBpbnN0YW5jZW9mIHFkJiYocj10aGlzLmhzbGEyaHN2YShjKSkscn1yZXR1cm4gcn1vdXRwdXRGb3JtYXQoZSxpLHIpe3N3aXRjaCgiYXV0byI9PT1pJiYoaT1lLmE8MT8icmdiYSI6ImhleCIpLGkpe2Nhc2UiaHNsYSI6bGV0IG89dGhpcy5oc3ZhMmhzbGEoZSksYT1uZXcgcWQoTWF0aC5yb3VuZCgzNjAqby5oKSxNYXRoLnJvdW5kKDEwMCpvLnMpLE1hdGgucm91bmQoMTAwKm8ubCksTWF0aC5yb3VuZCgxMDAqby5hKS8xMDApO3JldHVybiBlLmE8MXx8ImFsd2F5cyI9PT1yPyJoc2xhKCIrYS5oKyIsIithLnMrIiUsIithLmwrIiUsIithLmErIikiOiJoc2woIithLmgrIiwiK2EucysiJSwiK2EubCsiJSkiO2Nhc2UicmdiYSI6bGV0IHM9dGhpcy5kZW5vcm1hbGl6ZVJHQkEodGhpcy5oc3ZhVG9SZ2JhKGUpKTtyZXR1cm4gZS5hPDF8fCJhbHdheXMiPT09cj8icmdiYSgiK3MucisiLCIrcy5nKyIsIitzLmIrIiwiK01hdGgucm91bmQoMTAwKnMuYSkvMTAwKyIpIjoicmdiKCIrcy5yKyIsIitzLmcrIiwiK3MuYisiKSI7ZGVmYXVsdDpsZXQgbD0iYWx3YXlzIj09PXJ8fCJmb3JjZWQiPT09cjtyZXR1cm4gdGhpcy5yZ2JhVG9IZXgodGhpcy5kZW5vcm1hbGl6ZVJHQkEodGhpcy5oc3ZhVG9SZ2JhKGUpKSxsKX19fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLExuZT10eXBlb2Ygd2luZG93PCJ1IiYmIm9udG91Y2hzdGFydCJpbiB3aW5kb3csRDRlPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIsbyxhLHMpe3RoaXMubmdab25lPWUsdGhpcy5lbFJlZj1pLHRoaXMuY2RSZWY9cix0aGlzLmRvY3VtZW50PW8sdGhpcy5wbGF0Zm9ybUlkPWEsdGhpcy5zZXJ2aWNlPXMsdGhpcy5pc0lFMTA9ITEsdGhpcy5kaWFsb2dBcnJvd1NpemU9MTAsdGhpcy5kaWFsb2dBcnJvd09mZnNldD0xNSx0aGlzLmRpYWxvZ0lucHV0RmllbGRzPVtHby5IRVgsR28uUkdCQSxHby5IU0xBLEdvLkNNWUtdLHRoaXMudXNlUm9vdFZpZXdDb250YWluZXI9ITEsdGhpcy5leWVEcm9wcGVyU3VwcG9ydGVkPV93KHRoaXMucGxhdGZvcm1JZCkmJiJFeWVEcm9wcGVyImluIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXd9aGFuZGxlRXNjKGUpe3RoaXMuc2hvdyYmInBvcHVwIj09PXRoaXMuY3BEaWFsb2dEaXNwbGF5JiZ0aGlzLm9uQ2FuY2VsQ29sb3IoZSl9aGFuZGxlRW50ZXIoZSl7dGhpcy5zaG93JiYicG9wdXAiPT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMub25BY2NlcHRDb2xvcihlKX1uZ09uSW5pdCgpe3RoaXMuc2xpZGVyPW5ldyBfQSgwLDAsMCwwKSx0aGlzLnNsaWRlckRpbU1heD1uZXcgYkEodGhpcy5odWVTbGlkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aHx8MTQwLHRoaXMuY3BXaWR0aCwxMzAsdGhpcy5hbHBoYVNsaWRlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRofHwxNDApLHRoaXMuZm9ybWF0PXRoaXMuY3BDbXlrRW5hYmxlZD9Hby5DTVlLOiJyZ2JhIj09PXRoaXMuY3BPdXRwdXRGb3JtYXQ/R28uUkdCQToiaHNsYSI9PT10aGlzLmNwT3V0cHV0Rm9ybWF0P0dvLkhTTEE6R28uSEVYLHRoaXMubGlzdGVuZXJNb3VzZURvd249cj0+e3RoaXMub25Nb3VzZURvd24ocil9LHRoaXMubGlzdGVuZXJSZXNpemU9KCk9Pnt0aGlzLm9uUmVzaXplKCl9LHRoaXMub3BlbkRpYWxvZyh0aGlzLmluaXRpYWxDb2xvciwhMSl9bmdPbkRlc3Ryb3koKXt0aGlzLmNsb3NlRGlhbG9nKCl9bmdBZnRlclZpZXdJbml0KCl7MjMwPT09dGhpcy5jcFdpZHRoJiYiaW5saW5lIiE9PXRoaXMuY3BEaWFsb2dEaXNwbGF5fHwodGhpcy5zbGlkZXJEaW1NYXg9bmV3IGJBKHRoaXMuaHVlU2xpZGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGh8fDE0MCx0aGlzLmNwV2lkdGgsMTMwLHRoaXMuYWxwaGFTbGlkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aHx8MTQwKSx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCExKSx0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKSl9b3BlbkRpYWxvZyhlLGk9ITApe3RoaXMuc2VydmljZS5zZXRBY3RpdmUodGhpcyksdGhpcy53aWR0aHx8KHRoaXMuY3BXaWR0aD10aGlzLmRpcmVjdGl2ZUVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCksdGhpcy5oZWlnaHR8fCh0aGlzLmhlaWdodD0zMjApLHRoaXMuc2V0SW5pdGlhbENvbG9yKGUpLHRoaXMuc2V0Q29sb3JGcm9tU3RyaW5nKGUsaSksdGhpcy5vcGVuQ29sb3JQaWNrZXIoKX1jbG9zZURpYWxvZygpe3RoaXMuY2xvc2VDb2xvclBpY2tlcigpfXNldHVwRGlhbG9nKGUsaSxyLG8sYSxzLGwsYyxkLHUscCxoLG0sXyxNLHkseCxSLEksQixlZSxRLHdlLFFlLEFlLEQscmUsY2UsaGUsX2UsJCxkZSxwZSxHZSxTZSxGZSxsdCxNdCl7dGhpcy5zZXRJbml0aWFsQ29sb3IociksdGhpcy5zZXRDb2xvck1vZGUoYyksdGhpcy5pc0lFMTA9MTA9PT1mdW5jdGlvbigpe2xldCBuPSIiO3R5cGVvZiBuYXZpZ2F0b3I8InUiJiYobj1uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpO2xldCB0PW4uaW5kZXhPZigibXNpZSAiKTtyZXR1cm4gdD4wJiZwYXJzZUludChuLnN1YnN0cmluZyh0KzUsbi5pbmRleE9mKCIuIix0KSksMTApfSgpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2U9ZSx0aGlzLmRpcmVjdGl2ZUVsZW1lbnRSZWY9aSx0aGlzLmNwRGlzYWJsZUlucHV0PWgsdGhpcy5jcENteWtFbmFibGVkPWQsdGhpcy5jcEFscGhhQ2hhbm5lbD11LHRoaXMuY3BPdXRwdXRGb3JtYXQ9cCx0aGlzLmNwRGlhbG9nRGlzcGxheT1zLHRoaXMuY3BJZ25vcmVkRWxlbWVudHM9bSx0aGlzLmNwU2F2ZUNsaWNrT3V0c2lkZT1fLHRoaXMuY3BDbG9zZUNsaWNrT3V0c2lkZT1NLHRoaXMudXNlUm9vdFZpZXdDb250YWluZXI9eSx0aGlzLndpZHRoPXRoaXMuY3BXaWR0aD1wYXJzZUludChvLDEwKSx0aGlzLmhlaWdodD10aGlzLmNwSGVpZ2h0PXBhcnNlSW50KGEsMTApLHRoaXMuY3BQb3NpdGlvbj14LHRoaXMuY3BQb3NpdGlvbk9mZnNldD1wYXJzZUludChSLDEwKSx0aGlzLmNwT0tCdXR0b249RCx0aGlzLmNwT0tCdXR0b25UZXh0PWNlLHRoaXMuY3BPS0J1dHRvbkNsYXNzPXJlLHRoaXMuY3BDYW5jZWxCdXR0b249aGUsdGhpcy5jcENhbmNlbEJ1dHRvblRleHQ9JCx0aGlzLmNwQ2FuY2VsQnV0dG9uQ2xhc3M9X2UsdGhpcy5jcEV5ZURyb3BwZXI9RmUsdGhpcy5mYWxsYmFja0NvbG9yPWx8fCIjZmZmIix0aGlzLnNldFByZXNldENvbmZpZyhCLGVlKSx0aGlzLmNwUHJlc2V0Q29sb3JzQ2xhc3M9USx0aGlzLmNwTWF4UHJlc2V0Q29sb3JzTGVuZ3RoPXdlLHRoaXMuY3BQcmVzZXRFbXB0eU1lc3NhZ2U9UWUsdGhpcy5jcFByZXNldEVtcHR5TWVzc2FnZUNsYXNzPUFlLHRoaXMuY3BBZGRDb2xvckJ1dHRvbj1kZSx0aGlzLmNwQWRkQ29sb3JCdXR0b25UZXh0PUdlLHRoaXMuY3BBZGRDb2xvckJ1dHRvbkNsYXNzPXBlLHRoaXMuY3BSZW1vdmVDb2xvckJ1dHRvbkNsYXNzPVNlLHRoaXMuY3BUcmlnZ2VyRWxlbWVudD1sdCx0aGlzLmNwRXh0cmFUZW1wbGF0ZT1NdCxJfHwodGhpcy5kaWFsb2dBcnJvd09mZnNldD0wKSwiaW5saW5lIj09PXMmJih0aGlzLmRpYWxvZ0Fycm93U2l6ZT0wLHRoaXMuZGlhbG9nQXJyb3dPZmZzZXQ9MCksImhleCI9PT1wJiYiYWx3YXlzIiE9PXUmJiJmb3JjZWQiIT09dSYmKHRoaXMuY3BBbHBoYUNoYW5uZWw9ImRpc2FibGVkIil9c2V0Q29sb3JNb2RlKGUpe3N3aXRjaChlLnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKSl7Y2FzZSIxIjpjYXNlIkMiOmNhc2UiQ09MT1IiOmRlZmF1bHQ6dGhpcy5jcENvbG9yTW9kZT0xO2JyZWFrO2Nhc2UiMiI6Y2FzZSJHIjpjYXNlIkdSQVlTQ0FMRSI6dGhpcy5jcENvbG9yTW9kZT0yO2JyZWFrO2Nhc2UiMyI6Y2FzZSJQIjpjYXNlIlBSRVNFVFMiOnRoaXMuY3BDb2xvck1vZGU9M319c2V0SW5pdGlhbENvbG9yKGUpe3RoaXMuaW5pdGlhbENvbG9yPWV9c2V0UHJlc2V0Q29uZmlnKGUsaSl7dGhpcy5jcFByZXNldExhYmVsPWUsdGhpcy5jcFByZXNldENvbG9ycz1pfXNldENvbG9yRnJvbVN0cmluZyhlLGk9ITAscj0hMCl7bGV0IG87ImFsd2F5cyI9PT10aGlzLmNwQWxwaGFDaGFubmVsfHwiZm9yY2VkIj09PXRoaXMuY3BBbHBoYUNoYW5uZWw/KG89dGhpcy5zZXJ2aWNlLnN0cmluZ1RvSHN2YShlLCEwKSwhbyYmIXRoaXMuaHN2YSYmKG89dGhpcy5zZXJ2aWNlLnN0cmluZ1RvSHN2YShlLCExKSkpOm89dGhpcy5zZXJ2aWNlLnN0cmluZ1RvSHN2YShlLCExKSwhbyYmIXRoaXMuaHN2YSYmKG89dGhpcy5zZXJ2aWNlLnN0cmluZ1RvSHN2YSh0aGlzLmZhbGxiYWNrQ29sb3IsITEpKSxvJiYodGhpcy5oc3ZhPW8sdGhpcy5zbGlkZXJIPXRoaXMuaHN2YS5oLCJoZXgiPT09dGhpcy5jcE91dHB1dEZvcm1hdCYmImRpc2FibGVkIj09PXRoaXMuY3BBbHBoYUNoYW5uZWwmJih0aGlzLmhzdmEuYT0xKSx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKGkscikpfW9uUmVzaXplKCl7ImZpeGVkIj09PXRoaXMucG9zaXRpb24/dGhpcy5zZXREaWFsb2dQb3NpdGlvbigpOiJpbmxpbmUiIT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMuY2xvc2VDb2xvclBpY2tlcigpfW9uRHJhZ0VuZChlKXt0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnNsaWRlckRyYWdFbmQoe3NsaWRlcjplLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkRyYWdTdGFydChlKXt0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnNsaWRlckRyYWdTdGFydCh7c2xpZGVyOmUsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uTW91c2VEb3duKGUpe3RoaXMuc2hvdyYmIXRoaXMuaXNJRTEwJiYicG9wdXAiPT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJmUudGFyZ2V0IT09dGhpcy5kaXJlY3RpdmVFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQmJiF0aGlzLmlzRGVzY2VuZGFudCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsZS50YXJnZXQpJiYhdGhpcy5pc0Rlc2NlbmRhbnQodGhpcy5kaXJlY3RpdmVFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsZS50YXJnZXQpJiYwPT09dGhpcy5jcElnbm9yZWRFbGVtZW50cy5maWx0ZXIoaT0+aT09PWUudGFyZ2V0KS5sZW5ndGgmJnRoaXMubmdab25lLnJ1bigoKT0+e3RoaXMuY3BTYXZlQ2xpY2tPdXRzaWRlP3RoaXMuZGlyZWN0aXZlSW5zdGFuY2UuY29sb3JTZWxlY3RlZCh0aGlzLm91dHB1dENvbG9yKToodGhpcy5oc3ZhPW51bGwsdGhpcy5zZXRDb2xvckZyb21TdHJpbmcodGhpcy5pbml0aWFsQ29sb3IsITEpLHRoaXMuY3BDbXlrRW5hYmxlZCYmdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5jbXlrQ2hhbmdlZCh0aGlzLmNteWtDb2xvciksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5jb2xvckNoYW5nZWQodGhpcy5pbml0aWFsQ29sb3IpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuY29sb3JDYW5jZWxlZCgpKSx0aGlzLmNwQ2xvc2VDbGlja091dHNpZGUmJnRoaXMuY2xvc2VDb2xvclBpY2tlcigpfSl9b25BY2NlcHRDb2xvcihlKXtlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3V0cHV0Q29sb3ImJnRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuY29sb3JTZWxlY3RlZCh0aGlzLm91dHB1dENvbG9yKSwicG9wdXAiPT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMuY2xvc2VDb2xvclBpY2tlcigpfW9uQ2FuY2VsQ29sb3IoZSl7dGhpcy5oc3ZhPW51bGwsZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNvbG9yQ2FuY2VsZWQoKSx0aGlzLnNldENvbG9yRnJvbVN0cmluZyh0aGlzLmluaXRpYWxDb2xvciwhMCksInBvcHVwIj09PXRoaXMuY3BEaWFsb2dEaXNwbGF5JiYodGhpcy5jcENteWtFbmFibGVkJiZ0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNteWtDaGFuZ2VkKHRoaXMuY215a0NvbG9yKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNvbG9yQ2hhbmdlZCh0aGlzLmluaXRpYWxDb2xvciwhMCksdGhpcy5jbG9zZUNvbG9yUGlja2VyKCkpfW9uRXllRHJvcHBlcigpe3RoaXMuZXllRHJvcHBlclN1cHBvcnRlZCYmKG5ldyB3aW5kb3cuRXllRHJvcHBlcikub3BlbigpLnRoZW4oaT0+e3RoaXMuc2V0Q29sb3JGcm9tU3RyaW5nKGkuc1JHQkhleCwhMCl9KX1vbkZvcm1hdFRvZ2dsZShlKXtsZXQgaT10aGlzLmRpYWxvZ0lucHV0RmllbGRzLmxlbmd0aC0odGhpcy5jcENteWtFbmFibGVkPzA6MSkscj0oKHRoaXMuZGlhbG9nSW5wdXRGaWVsZHMuaW5kZXhPZih0aGlzLmZvcm1hdCkrZSklaStpKSVpO3RoaXMuZm9ybWF0PXRoaXMuZGlhbG9nSW5wdXRGaWVsZHNbcl19b25Db2xvckNoYW5nZShlKXt0aGlzLmhzdmEucz1lLnMvZS5yZ1gsdGhpcy5oc3ZhLnY9ZS52L2UucmdZLHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnNsaWRlckNoYW5nZWQoe3NsaWRlcjoibGlnaHRuZXNzIix2YWx1ZTp0aGlzLmhzdmEudixjb2xvcjp0aGlzLm91dHB1dENvbG9yfSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5zbGlkZXJDaGFuZ2VkKHtzbGlkZXI6InNhdHVyYXRpb24iLHZhbHVlOnRoaXMuaHN2YS5zLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkh1ZUNoYW5nZShlKXt0aGlzLmhzdmEuaD1lLnYvZS5yZ1gsdGhpcy5zbGlkZXJIPXRoaXMuaHN2YS5oLHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnNsaWRlckNoYW5nZWQoe3NsaWRlcjoiaHVlIix2YWx1ZTp0aGlzLmhzdmEuaCxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25WYWx1ZUNoYW5nZShlKXt0aGlzLmhzdmEudj1lLnYvZS5yZ1gsdGhpcy51cGRhdGVDb2xvclBpY2tlcigpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2Uuc2xpZGVyQ2hhbmdlZCh7c2xpZGVyOiJ2YWx1ZSIsdmFsdWU6dGhpcy5oc3ZhLnYsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uQWxwaGFDaGFuZ2UoZSl7dGhpcy5oc3ZhLmE9ZS52L2UucmdYLHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnNsaWRlckNoYW5nZWQoe3NsaWRlcjoiYWxwaGEiLHZhbHVlOnRoaXMuaHN2YS5hLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkhleElucHV0KGUpe2lmKG51bGw9PT1lKXRoaXMudXBkYXRlQ29sb3JQaWNrZXIoKTtlbHNle2UmJiIjIiE9PWVbMF0mJihlPSIjIitlKTtsZXQgaT0vXiMoW2EtZjAtOV17M318W2EtZjAtOV17Nn0pJC9naTsiYWx3YXlzIj09PXRoaXMuY3BBbHBoYUNoYW5uZWwmJihpPS9eIyhbYS1mMC05XXszfXxbYS1mMC05XXs2fXxbYS1mMC05XXs4fSkkL2dpKTtsZXQgcj1pLnRlc3QoZSk7ciYmKGUubGVuZ3RoPDUmJihlPSIjIitlLnN1YnN0cmluZygxKS5zcGxpdCgiIikubWFwKG89Pm8rbykuam9pbigiIikpLCJmb3JjZWQiPT09dGhpcy5jcEFscGhhQ2hhbm5lbCYmKGUrPU1hdGgucm91bmQoMjU1KnRoaXMuaHN2YS5hKS50b1N0cmluZygxNikpLHRoaXMuc2V0Q29sb3JGcm9tU3RyaW5nKGUsITAsITEpKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6ImhleCIsdmFsaWQ6cix2YWx1ZTplLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX19b25SZWRJbnB1dChlKXtsZXQgaT10aGlzLnNlcnZpY2UuaHN2YVRvUmdiYSh0aGlzLmhzdmEpLHI9IWlzTmFOKGUudikmJmUudj49MCYmZS52PD1lLnJnO3ImJihpLnI9ZS52L2UucmcsdGhpcy5oc3ZhPXRoaXMuc2VydmljZS5yZ2JhVG9Ic3ZhKGkpLHRoaXMuc2xpZGVySD10aGlzLmhzdmEuaCx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCkpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuaW5wdXRDaGFuZ2VkKHtpbnB1dDoicmVkIix2YWxpZDpyLHZhbHVlOmkucixjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25CbHVlSW5wdXQoZSl7bGV0IGk9dGhpcy5zZXJ2aWNlLmhzdmFUb1JnYmEodGhpcy5oc3ZhKSxyPSFpc05hTihlLnYpJiZlLnY+PTAmJmUudjw9ZS5yZztyJiYoaS5iPWUudi9lLnJnLHRoaXMuaHN2YT10aGlzLnNlcnZpY2UucmdiYVRvSHN2YShpKSx0aGlzLnNsaWRlckg9dGhpcy5oc3ZhLmgsdGhpcy51cGRhdGVDb2xvclBpY2tlcigpKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6ImJsdWUiLHZhbGlkOnIsdmFsdWU6aS5iLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkdyZWVuSW5wdXQoZSl7bGV0IGk9dGhpcy5zZXJ2aWNlLmhzdmFUb1JnYmEodGhpcy5oc3ZhKSxyPSFpc05hTihlLnYpJiZlLnY+PTAmJmUudjw9ZS5yZztyJiYoaS5nPWUudi9lLnJnLHRoaXMuaHN2YT10aGlzLnNlcnZpY2UucmdiYVRvSHN2YShpKSx0aGlzLnNsaWRlckg9dGhpcy5oc3ZhLmgsdGhpcy51cGRhdGVDb2xvclBpY2tlcigpKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6ImdyZWVuIix2YWxpZDpyLHZhbHVlOmkuZyxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25IdWVJbnB1dChlKXtsZXQgaT0haXNOYU4oZS52KSYmZS52Pj0wJiZlLnY8PWUucmc7aSYmKHRoaXMuaHN2YS5oPWUudi9lLnJnLHRoaXMuc2xpZGVySD10aGlzLmhzdmEuaCx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCkpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuaW5wdXRDaGFuZ2VkKHtpbnB1dDoiaHVlIix2YWxpZDppLHZhbHVlOnRoaXMuaHN2YS5oLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vblZhbHVlSW5wdXQoZSl7bGV0IGk9IWlzTmFOKGUudikmJmUudj49MCYmZS52PD1lLnJnO2kmJih0aGlzLmhzdmEudj1lLnYvZS5yZyx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCkpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuaW5wdXRDaGFuZ2VkKHtpbnB1dDoidmFsdWUiLHZhbGlkOmksdmFsdWU6dGhpcy5oc3ZhLnYsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uQWxwaGFJbnB1dChlKXtsZXQgaT0haXNOYU4oZS52KSYmZS52Pj0wJiZlLnY8PWUucmc7aSYmKHRoaXMuaHN2YS5hPWUudi9lLnJnLHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoKSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5pbnB1dENoYW5nZWQoe2lucHV0OiJhbHBoYSIsdmFsaWQ6aSx2YWx1ZTp0aGlzLmhzdmEuYSxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25MaWdodG5lc3NJbnB1dChlKXtsZXQgaT10aGlzLnNlcnZpY2UuaHN2YTJoc2xhKHRoaXMuaHN2YSkscj0haXNOYU4oZS52KSYmZS52Pj0wJiZlLnY8PWUucmc7ciYmKGkubD1lLnYvZS5yZyx0aGlzLmhzdmE9dGhpcy5zZXJ2aWNlLmhzbGEyaHN2YShpKSx0aGlzLnNsaWRlckg9dGhpcy5oc3ZhLmgsdGhpcy51cGRhdGVDb2xvclBpY2tlcigpKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6ImxpZ2h0bmVzcyIsdmFsaWQ6cix2YWx1ZTppLmwsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uU2F0dXJhdGlvbklucHV0KGUpe2xldCBpPXRoaXMuc2VydmljZS5oc3ZhMmhzbGEodGhpcy5oc3ZhKSxyPSFpc05hTihlLnYpJiZlLnY+PTAmJmUudjw9ZS5yZztyJiYoaS5zPWUudi9lLnJnLHRoaXMuaHN2YT10aGlzLnNlcnZpY2UuaHNsYTJoc3ZhKGkpLHRoaXMuc2xpZGVySD10aGlzLmhzdmEuaCx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCkpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuaW5wdXRDaGFuZ2VkKHtpbnB1dDoic2F0dXJhdGlvbiIsdmFsaWQ6cix2YWx1ZTppLnMsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uQ3lhbklucHV0KGUpeyFpc05hTihlLnYpJiZlLnY+PTAmJmUudjw9ZS5yZyYmKHRoaXMuY215ay5jPWUudix0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCExLCEwLCEwKSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5pbnB1dENoYW5nZWQoe2lucHV0OiJjeWFuIix2YWxpZDohMCx2YWx1ZTp0aGlzLmNteWsuYyxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25NYWdlbnRhSW5wdXQoZSl7IWlzTmFOKGUudikmJmUudj49MCYmZS52PD1lLnJnJiYodGhpcy5jbXlrLm09ZS52LHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoITEsITAsITApKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6Im1hZ2VudGEiLHZhbGlkOiEwLHZhbHVlOnRoaXMuY215ay5tLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vblllbGxvd0lucHV0KGUpeyFpc05hTihlLnYpJiZlLnY+PTAmJmUudjw9ZS5yZyYmKHRoaXMuY215ay55PWUudix0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCExLCEwLCEwKSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5pbnB1dENoYW5nZWQoe2lucHV0OiJ5ZWxsb3ciLHZhbGlkOiEwLHZhbHVlOnRoaXMuY215ay55LGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkJsYWNrSW5wdXQoZSl7IWlzTmFOKGUudikmJmUudj49MCYmZS52PD1lLnJnJiYodGhpcy5jbXlrLms9ZS52LHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoITEsITAsITApKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6ImJsYWNrIix2YWxpZDohMCx2YWx1ZTp0aGlzLmNteWsuayxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25BZGRQcmVzZXRDb2xvcihlLGkpe2Uuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jcFByZXNldENvbG9ycy5maWx0ZXIocj0+cj09PWkpLmxlbmd0aHx8KHRoaXMuY3BQcmVzZXRDb2xvcnM9dGhpcy5jcFByZXNldENvbG9ycy5jb25jYXQoaSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5wcmVzZXRDb2xvcnNDaGFuZ2VkKHRoaXMuY3BQcmVzZXRDb2xvcnMpKX1vblJlbW92ZVByZXNldENvbG9yKGUsaSl7ZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNwUHJlc2V0Q29sb3JzPXRoaXMuY3BQcmVzZXRDb2xvcnMuZmlsdGVyKHI9PnIhPT1pKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnByZXNldENvbG9yc0NoYW5nZWQodGhpcy5jcFByZXNldENvbG9ycyl9b3BlbkNvbG9yUGlja2VyKCl7dGhpcy5zaG93fHwodGhpcy5zaG93PSEwLHRoaXMuaGlkZGVuPSEwLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmhpZGRlbj0hMSx0aGlzLnNldERpYWxvZ1Bvc2l0aW9uKCksdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCl9LDApLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2Uuc3RhdGVDaGFuZ2VkKCEwKSx0aGlzLmlzSUUxMHx8dGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PntMbmU/ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5saXN0ZW5lck1vdXNlRG93bik6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLmxpc3RlbmVyTW91c2VEb3duKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMubGlzdGVuZXJSZXNpemUpKX1jbG9zZUNvbG9yUGlja2VyKCl7dGhpcy5zaG93JiYodGhpcy5zaG93PSExLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2Uuc3RhdGVDaGFuZ2VkKCExKSx0aGlzLmlzSUUxMHx8KExuZT9kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLmxpc3RlbmVyTW91c2VEb3duKTpkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMubGlzdGVuZXJNb3VzZURvd24pKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmxpc3RlbmVyUmVzaXplKSx0aGlzLmNkUmVmLmRlc3Ryb3llZHx8dGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCkpfXVwZGF0ZUNvbG9yUGlja2VyKGU9ITAsaT0hMCxyPSExKXtpZih0aGlzLnNsaWRlckRpbU1heCl7Mj09PXRoaXMuY3BDb2xvck1vZGUmJih0aGlzLmhzdmEucz0wKTtsZXQgbyxhLHMsbD10aGlzLm91dHB1dENvbG9yO2lmKGE9dGhpcy5zZXJ2aWNlLmhzdmEyaHNsYSh0aGlzLmhzdmEpLHRoaXMuY3BDbXlrRW5hYmxlZD8ocj8ocz10aGlzLnNlcnZpY2UuY215a1RvUmdiKHRoaXMuc2VydmljZS5ub3JtYWxpemVDTVlLKHRoaXMuY215aykpLHRoaXMuaHN2YT10aGlzLnNlcnZpY2UucmdiYVRvSHN2YShzKSk6KHM9dGhpcy5zZXJ2aWNlLmhzdmFUb1JnYmEodGhpcy5oc3ZhKSx0aGlzLmNteWs9dGhpcy5zZXJ2aWNlLmRlbm9ybWFsaXplQ01ZSyh0aGlzLnNlcnZpY2UucmdiYVRvQ215ayhzKSkpLHM9dGhpcy5zZXJ2aWNlLmRlbm9ybWFsaXplUkdCQShzKSx0aGlzLnNsaWRlckg9dGhpcy5oc3ZhLmgpOnM9dGhpcy5zZXJ2aWNlLmRlbm9ybWFsaXplUkdCQSh0aGlzLnNlcnZpY2UuaHN2YVRvUmdiYSh0aGlzLmhzdmEpKSxvPXRoaXMuc2VydmljZS5kZW5vcm1hbGl6ZVJHQkEodGhpcy5zZXJ2aWNlLmhzdmFUb1JnYmEobmV3IGJfKHRoaXMuc2xpZGVySHx8dGhpcy5oc3ZhLmgsMSwxLDEpKSksaSYmKHRoaXMuaHNsYVRleHQ9bmV3IHFkKE1hdGgucm91bmQoMzYwKmEuaCksTWF0aC5yb3VuZCgxMDAqYS5zKSxNYXRoLnJvdW5kKDEwMCphLmwpLE1hdGgucm91bmQoMTAwKmEuYSkvMTAwKSx0aGlzLnJnYmFUZXh0PW5ldyBLbChzLnIscy5nLHMuYixNYXRoLnJvdW5kKDEwMCpzLmEpLzEwMCksdGhpcy5jcENteWtFbmFibGVkJiYodGhpcy5jbXlrVGV4dD1uZXcgRG0odGhpcy5jbXlrLmMsdGhpcy5jbXlrLm0sdGhpcy5jbXlrLnksdGhpcy5jbXlrLmssTWF0aC5yb3VuZCgxMDAqdGhpcy5jbXlrLmEpLzEwMCkpLHRoaXMuaGV4VGV4dD10aGlzLnNlcnZpY2UucmdiYVRvSGV4KHMsImFsd2F5cyI9PT10aGlzLmNwQWxwaGFDaGFubmVsKSx0aGlzLmhleEFscGhhPXRoaXMucmdiYVRleHQuYSksImF1dG8iPT09dGhpcy5jcE91dHB1dEZvcm1hdCYmdGhpcy5mb3JtYXQhPT1Hby5SR0JBJiZ0aGlzLmZvcm1hdCE9PUdvLkNNWUsmJnRoaXMuZm9ybWF0IT09R28uSFNMQSYmdGhpcy5oc3ZhLmE8MSYmKHRoaXMuZm9ybWF0PXRoaXMuaHN2YS5hPDE/R28uUkdCQTpHby5IRVgpLHRoaXMuaHVlU2xpZGVyQ29sb3I9InJnYigiK28ucisiLCIrby5nKyIsIitvLmIrIikiLHRoaXMuYWxwaGFTbGlkZXJDb2xvcj0icmdiKCIrcy5yKyIsIitzLmcrIiwiK3MuYisiKSIsdGhpcy5vdXRwdXRDb2xvcj10aGlzLnNlcnZpY2Uub3V0cHV0Rm9ybWF0KHRoaXMuaHN2YSx0aGlzLmNwT3V0cHV0Rm9ybWF0LHRoaXMuY3BBbHBoYUNoYW5uZWwpLHRoaXMuc2VsZWN0ZWRDb2xvcj10aGlzLnNlcnZpY2Uub3V0cHV0Rm9ybWF0KHRoaXMuaHN2YSwicmdiYSIsbnVsbCksdGhpcy5mb3JtYXQhPT1Hby5DTVlLKXRoaXMuY215a0NvbG9yPSIiO2Vsc2UgaWYoImFsd2F5cyI9PT10aGlzLmNwQWxwaGFDaGFubmVsfHwiZW5hYmxlZCI9PT10aGlzLmNwQWxwaGFDaGFubmVsfHwiZm9yY2VkIj09PXRoaXMuY3BBbHBoYUNoYW5uZWwpe2xldCBjPU1hdGgucm91bmQoMTAwKnRoaXMuY215ay5hKS8xMDA7dGhpcy5jbXlrQ29sb3I9YGNteWthKCR7dGhpcy5jbXlrLmN9LCR7dGhpcy5jbXlrLm19LCR7dGhpcy5jbXlrLnl9LCR7dGhpcy5jbXlrLmt9LCR7Y30pYH1lbHNlIHRoaXMuY215a0NvbG9yPWBjbXlrKCR7dGhpcy5jbXlrLmN9LCR7dGhpcy5jbXlrLm19LCR7dGhpcy5jbXlrLnl9LCR7dGhpcy5jbXlrLmt9KWA7dGhpcy5zbGlkZXI9bmV3IF9BKCh0aGlzLnNsaWRlckh8fHRoaXMuaHN2YS5oKSp0aGlzLnNsaWRlckRpbU1heC5oLTgsdGhpcy5oc3ZhLnMqdGhpcy5zbGlkZXJEaW1NYXgucy04LCgxLXRoaXMuaHN2YS52KSp0aGlzLnNsaWRlckRpbU1heC52LTgsdGhpcy5oc3ZhLmEqdGhpcy5zbGlkZXJEaW1NYXguYS04KSxlJiZsIT09dGhpcy5vdXRwdXRDb2xvciYmKHRoaXMuY3BDbXlrRW5hYmxlZCYmdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5jbXlrQ2hhbmdlZCh0aGlzLmNteWtDb2xvciksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5jb2xvckNoYW5nZWQodGhpcy5vdXRwdXRDb2xvcikpfX1zZXREaWFsb2dQb3NpdGlvbigpe2lmKCJpbmxpbmUiPT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkpdGhpcy5wb3NpdGlvbj0icmVsYXRpdmUiO2Vsc2V7bGV0IHIsZT0ic3RhdGljIixpPSIiLG89bnVsbCxhPW51bGwscz10aGlzLmRpcmVjdGl2ZUVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlLGw9dGhpcy5kaWFsb2dFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O2Zvcig7bnVsbCE9PXMmJiJIVE1MIiE9PXMudGFnTmFtZTspe2lmKHI9d2luZG93LmdldENvbXB1dGVkU3R5bGUocyksZT1yLmdldFByb3BlcnR5VmFsdWUoInBvc2l0aW9uIiksaT1yLmdldFByb3BlcnR5VmFsdWUoInRyYW5zZm9ybSIpLCJzdGF0aWMiIT09ZSYmbnVsbD09PW8mJihvPXMpLGkmJiJub25lIiE9PWkmJm51bGw9PT1hJiYoYT1zKSwiZml4ZWQiPT09ZSl7bz1hO2JyZWFrfXM9cy5wYXJlbnROb2RlfWxldCBjPXRoaXMuY3JlYXRlRGlhbG9nQm94KHRoaXMuZGlyZWN0aXZlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCJmaXhlZCIhPT1lKTtpZih0aGlzLnVzZVJvb3RWaWV3Q29udGFpbmVyfHwiZml4ZWQiPT09ZSYmKCFvfHxvIGluc3RhbmNlb2YgSFRNTFVua25vd25FbGVtZW50KSl0aGlzLnRvcD1jLnRvcCx0aGlzLmxlZnQ9Yy5sZWZ0O2Vsc2V7bnVsbD09PW8mJihvPXMpO2xldCB1PXRoaXMuY3JlYXRlRGlhbG9nQm94KG8sImZpeGVkIiE9PWUpO3RoaXMudG9wPWMudG9wLXUudG9wLHRoaXMubGVmdD1jLmxlZnQtdS5sZWZ0fSJmaXhlZCI9PT1lJiYodGhpcy5wb3NpdGlvbj0iZml4ZWQiKTtsZXQgZD10aGlzLmNwUG9zaXRpb247ImF1dG8iPT09dGhpcy5jcFBvc2l0aW9uJiYoZD1mdW5jdGlvbihuLHQpe2xldCBlPSJyaWdodCIsaT0iYm90dG9tIix7aGVpZ2h0OnIsd2lkdGg6b309bix7dG9wOmEsbGVmdDpzfT10LGw9YSt0LmhlaWdodCxjPXMrdC53aWR0aCxkPWEtcjwwLHU9bCtyPih3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpLHA9cy1vPDAsaD1jK28+KHdpbmRvdy5pbm5lcldpZHRofHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpO3JldHVybiB1JiYoaT0idG9wIiksZCYmKGk9ImJvdHRvbSIpLHAmJihlPSJyaWdodCIpLGgmJihlPSJsZWZ0IiksZCYmdSYmcCYmaD9bImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSJdLnJlZHVjZSgoTSx5KT0+bltNXT5uW3ldP006eSk6cCYmaD9kPyJib3R0b20iOnV8fGE+bD8idG9wIjoiYm90dG9tIjpkJiZ1P3A/InJpZ2h0IjpofHxzPmM/ImxlZnQiOiJyaWdodCI6YCR7aX0tJHtlfWB9KHRoaXMuZGlhbG9nRWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRoaXMuY3BUcmlnZ2VyRWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSksInRvcCI9PT1kPyh0aGlzLmFycm93VG9wPWwtMSx0aGlzLnRvcC09bCt0aGlzLmRpYWxvZ0Fycm93U2l6ZSx0aGlzLmxlZnQrPXRoaXMuY3BQb3NpdGlvbk9mZnNldC8xMDAqYy53aWR0aC10aGlzLmRpYWxvZ0Fycm93T2Zmc2V0KToiYm90dG9tIj09PWQ/KHRoaXMudG9wKz1jLmhlaWdodCt0aGlzLmRpYWxvZ0Fycm93U2l6ZSx0aGlzLmxlZnQrPXRoaXMuY3BQb3NpdGlvbk9mZnNldC8xMDAqYy53aWR0aC10aGlzLmRpYWxvZ0Fycm93T2Zmc2V0KToidG9wLWxlZnQiPT09ZHx8ImxlZnQtdG9wIj09PWQ/KHRoaXMudG9wLT1sLWMuaGVpZ2h0K2MuaGVpZ2h0KnRoaXMuY3BQb3NpdGlvbk9mZnNldC8xMDAsdGhpcy5sZWZ0LT10aGlzLmNwV2lkdGgrdGhpcy5kaWFsb2dBcnJvd1NpemUtMi10aGlzLmRpYWxvZ0Fycm93T2Zmc2V0KToidG9wLXJpZ2h0Ij09PWR8fCJyaWdodC10b3AiPT09ZD8odGhpcy50b3AtPWwtYy5oZWlnaHQrYy5oZWlnaHQqdGhpcy5jcFBvc2l0aW9uT2Zmc2V0LzEwMCx0aGlzLmxlZnQrPWMud2lkdGgrdGhpcy5kaWFsb2dBcnJvd1NpemUtMi10aGlzLmRpYWxvZ0Fycm93T2Zmc2V0KToibGVmdCI9PT1kfHwiYm90dG9tLWxlZnQiPT09ZHx8ImxlZnQtYm90dG9tIj09PWQ/KHRoaXMudG9wKz1jLmhlaWdodCp0aGlzLmNwUG9zaXRpb25PZmZzZXQvMTAwLXRoaXMuZGlhbG9nQXJyb3dPZmZzZXQsdGhpcy5sZWZ0LT10aGlzLmNwV2lkdGgrdGhpcy5kaWFsb2dBcnJvd1NpemUtMik6KHRoaXMudG9wKz1jLmhlaWdodCp0aGlzLmNwUG9zaXRpb25PZmZzZXQvMTAwLXRoaXMuZGlhbG9nQXJyb3dPZmZzZXQsdGhpcy5sZWZ0Kz1jLndpZHRoK3RoaXMuZGlhbG9nQXJyb3dTaXplLTIpLHRoaXMuY3BVc2VQb3NpdGlvbj1kfX1pc0Rlc2NlbmRhbnQoZSxpKXtsZXQgcj1pLnBhcmVudE5vZGU7Zm9yKDtudWxsIT09cjspe2lmKHI9PT1lKXJldHVybiEwO3I9ci5wYXJlbnROb2RlfXJldHVybiExfWNyZWF0ZURpYWxvZ0JveChlLGkpe2xldHt0b3A6cixsZWZ0Om99PWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue3RvcDpyKyhpP3dpbmRvdy5wYWdlWU9mZnNldDowKSxsZWZ0Om8rKGk/d2luZG93LnBhZ2VYT2Zmc2V0OjApLHdpZHRoOmUub2Zmc2V0V2lkdGgsaGVpZ2h0OmUub2Zmc2V0SGVpZ2h0fX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhvdCksQyh4ZSksQyhRdCksQyhOdCksQyhmYyksQyhTVikpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImNvbG9yLXBpY2tlciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oZSxpKXtpZigxJmUmJihVZShXVmUsNyksVWUocVZlLDcpLFVlKFhWZSw3KSksMiZlKXtsZXQgcjtiZShyPXZlKCkpJiYoaS5kaWFsb2dFbGVtZW50PXIuZmlyc3QpLGJlKHI9dmUoKSkmJihpLmh1ZVNsaWRlcj1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS5hbHBoYVNsaWRlcj1yLmZpcnN0KX19LGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezEmZSYmQSgia2V5dXAuZXNjIixmdW5jdGlvbihvKXtyZXR1cm4gaS5oYW5kbGVFc2Mobyl9LDAsc3UpKCJrZXl1cC5lbnRlciIsZnVuY3Rpb24obyl7cmV0dXJuIGkuaGFuZGxlRW50ZXIobyl9LCExLHN1KX0sZGVjbHM6MzAsdmFyczo1MSxjb25zdHM6W1sxLCJjb2xvci1waWNrZXIiLDMsImNsaWNrIl0sWyJkaWFsb2dQb3B1cCIsIiJdLFszLCJjbGFzcyIsInRvcCIsNCwibmdJZiJdLFsiY2xhc3MiLCJzYXR1cmF0aW9uLWxpZ2h0bmVzcyIsMywic2xpZGVyIiwicmdYIiwicmdZIiwiYmFja2dyb3VuZC1jb2xvciIsIm5ld1ZhbHVlIiwiZHJhZ1N0YXJ0IiwiZHJhZ0VuZCIsNCwibmdJZiJdLFsxLCJodWUtYWxwaGEiLCJib3giXSxbMSwibGVmdCJdLFsxLCJzZWxlY3RlZC1jb2xvci1iYWNrZ3JvdW5kIl0sWzEsInNlbGVjdGVkLWNvbG9yIiwzLCJjbGljayJdLFsiY2xhc3MiLCJleWVkcm9wcGVyLWljb24iLCJ4bWxucyIsImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiaGVpZ2h0IiwiMjRweCIsInZpZXdCb3giLCIwIDAgMjQgMjQiLCJ3aWR0aCIsIjI0cHgiLCJmaWxsIiwiIzAwMDAwMCIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsMywiY2xhc3MiLCJkaXNhYmxlZCIsImNsaWNrIiw0LCJuZ0lmIl0sWzEsInJpZ2h0Il0sWyJzdHlsZSIsImhlaWdodDogMTZweDsiLDQsIm5nSWYiXSxbMSwiaHVlIiwzLCJzbGlkZXIiLCJyZ1giLCJuZXdWYWx1ZSIsImRyYWdTdGFydCIsImRyYWdFbmQiXSxbImh1ZVNsaWRlciIsIiJdLFsxLCJjdXJzb3IiXSxbMSwidmFsdWUiLDMsInNsaWRlciIsInJnWCIsIm5ld1ZhbHVlIiwiZHJhZ1N0YXJ0IiwiZHJhZ0VuZCJdLFsidmFsdWVTbGlkZXIiLCIiXSxbMSwiYWxwaGEiLDMsInNsaWRlciIsInJnWCIsIm5ld1ZhbHVlIiwiZHJhZ1N0YXJ0IiwiZHJhZ0VuZCJdLFsiYWxwaGFTbGlkZXIiLCIiXSxbImNsYXNzIiwiY215ay10ZXh0IiwzLCJkaXNwbGF5Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsImhzbGEtdGV4dCIsMywiZGlzcGxheSIsNCwibmdJZiJdLFsiY2xhc3MiLCJyZ2JhLXRleHQiLDMsImRpc3BsYXkiLDQsIm5nSWYiXSxbImNsYXNzIiwiaGV4LXRleHQiLDMsImhleC1hbHBoYSIsImRpc3BsYXkiLDQsIm5nSWYiXSxbImNsYXNzIiwidmFsdWUtdGV4dCIsNCwibmdJZiJdLFsiY2xhc3MiLCJ0eXBlLXBvbGljeSIsNCwibmdJZiJdLFsiY2xhc3MiLCJwcmVzZXQtYXJlYSIsNCwibmdJZiJdLFsiY2xhc3MiLCJidXR0b24tYXJlYSIsNCwibmdJZiJdLFsiY2xhc3MiLCJleHRyYS10ZW1wbGF0ZSIsNCwibmdJZiJdLFsxLCJzYXR1cmF0aW9uLWxpZ2h0bmVzcyIsMywic2xpZGVyIiwicmdYIiwicmdZIiwibmV3VmFsdWUiLCJkcmFnU3RhcnQiLCJkcmFnRW5kIl0sWyJ4bWxucyIsImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiaGVpZ2h0IiwiMjRweCIsInZpZXdCb3giLCIwIDAgMjQgMjQiLCJ3aWR0aCIsIjI0cHgiLCJmaWxsIiwiIzAwMDAwMCIsMSwiZXllZHJvcHBlci1pY29uIl0sWyJkIiwiTTAgMGgyNHYyNEgwVjB6IiwiZmlsbCIsIm5vbmUiXSxbImQiLCJNMTcuNjYgNS40MWwuOTIuOTItMi42OSAyLjY5LS45Mi0uOTIgMi42OS0yLjY5TTE3LjY3IDNjLS4yNiAwLS41MS4xLS43MS4yOWwtMy4xMiAzLjEyLTEuOTMtMS45MS0xLjQxIDEuNDEgMS40MiAxLjQyTDMgMTYuMjVWMjFoNC43NWw4LjkyLTguOTIgMS40MiAxLjQyIDEuNDEtMS40MS0xLjkyLTEuOTIgMy4xMi0zLjEyYy40LS40LjQtMS4wMy4wMS0xLjQybC0yLjM0LTIuMzRjLS4yLS4xOS0uNDUtLjI5LS43LS4yOXpNNi45MiAxOUw1IDE3LjA4bDguMDYtOC4wNiAxLjkyIDEuOTJMNi45MiAxOXoiXSxbInR5cGUiLCJidXR0b24iLDMsImRpc2FibGVkIiwiY2xpY2siXSxbMiwiaGVpZ2h0IiwiMTZweCJdLFsxLCJjbXlrLXRleHQiXSxbMSwiYm94Il0sWyJ0eXBlIiwibnVtYmVyIiwicGF0dGVybiIsIlswLTldKiIsIm1pbiIsIjAiLCJtYXgiLCIxMDAiLDMsInRleHQiLCJyZyIsInZhbHVlIiwia2V5dXAuZW50ZXIiLCJuZXdWYWx1ZSJdLFsidHlwZSIsIm51bWJlciIsInBhdHRlcm4iLCJbMC05XSsoW1xcLixdWzAtOV17MSwyfSk/IiwibWluIiwiMCIsIm1heCIsIjEiLCJzdGVwIiwiMC4xIiwzLCJ0ZXh0IiwicmciLCJ2YWx1ZSIsImtleXVwLmVudGVyIiwibmV3VmFsdWUiLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsidHlwZSIsIm51bWJlciIsInBhdHRlcm4iLCJbMC05XSsoW1xcLixdWzAtOV17MSwyfSk/IiwibWluIiwiMCIsIm1heCIsIjEiLCJzdGVwIiwiMC4xIiwzLCJ0ZXh0IiwicmciLCJ2YWx1ZSIsImtleXVwLmVudGVyIiwibmV3VmFsdWUiXSxbMSwiaHNsYS10ZXh0Il0sWyJ0eXBlIiwibnVtYmVyIiwicGF0dGVybiIsIlswLTldKiIsIm1pbiIsIjAiLCJtYXgiLCIzNjAiLDMsInRleHQiLCJyZyIsInZhbHVlIiwia2V5dXAuZW50ZXIiLCJuZXdWYWx1ZSJdLFsxLCJyZ2JhLXRleHQiXSxbInR5cGUiLCJudW1iZXIiLCJwYXR0ZXJuIiwiWzAtOV0qIiwibWluIiwiMCIsIm1heCIsIjI1NSIsMywidGV4dCIsInJnIiwidmFsdWUiLCJrZXl1cC5lbnRlciIsIm5ld1ZhbHVlIl0sWzEsImhleC10ZXh0Il0sWzMsInRleHQiLCJ2YWx1ZSIsImJsdXIiLCJrZXl1cC5lbnRlciIsIm5ld1ZhbHVlIl0sWzEsInZhbHVlLXRleHQiXSxbMSwidHlwZS1wb2xpY3kiXSxbMSwidHlwZS1wb2xpY3ktYXJyb3ciLDMsImNsaWNrIl0sWzEsInByZXNldC1hcmVhIl0sWzEsInByZXNldC1sYWJlbCJdLFszLCJjbGFzcyIsNCwibmdJZiJdLFsiY2xhc3MiLCJwcmVzZXQtY29sb3IiLDMsImJhY2tncm91bmRDb2xvciIsImNsaWNrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwicHJlc2V0LWNvbG9yIiwzLCJjbGljayJdLFszLCJjbGFzcyIsImNsaWNrIiw0LCJuZ0lmIl0sWzMsImNsaWNrIl0sWzEsImJ1dHRvbi1hcmVhIl0sWyJ0eXBlIiwiYnV0dG9uIiwzLCJjbGFzcyIsImNsaWNrIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwzLCJjbGljayJdLFsxLCJleHRyYS10ZW1wbGF0ZSJdLFs0LCJuZ1RlbXBsYXRlT3V0bGV0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJkaXYiLDAsMSksQSgiY2xpY2siLGZ1bmN0aW9uKG8pe3JldHVybiBvLnN0b3BQcm9wYWdhdGlvbigpfSksUygyLFlWZSwxLDUsImRpdiIsMiksUygzLFFWZSwyLDgsImRpdiIsMyksZig0LCJkaXYiLDQpKDUsImRpdiIsNSksayg2LCJkaXYiLDYpLGYoNywiZGl2Iiw3KSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaS5leWVEcm9wcGVyU3VwcG9ydGVkJiZpLmNwRXllRHJvcHBlciYmaS5vbkV5ZURyb3BwZXIoKX0pLFMoOCxaVmUsMywwLCJzdmciLDgpLGcoKSxTKDksS1ZlLDIsNSwiYnV0dG9uIiw5KSxnKCksZigxMCwiZGl2IiwxMCksUygxMSxKVmUsMSwwLCJkaXYiLDExKSxmKDEyLCJkaXYiLDEyLDEzKSxBKCJuZXdWYWx1ZSIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25IdWVDaGFuZ2Uobyl9KSgiZHJhZ1N0YXJ0IixmdW5jdGlvbigpe3JldHVybiBpLm9uRHJhZ1N0YXJ0KCJodWUiKX0pKCJkcmFnRW5kIixmdW5jdGlvbigpe3JldHVybiBpLm9uRHJhZ0VuZCgiaHVlIil9KSxrKDE0LCJkaXYiLDE0KSxnKCksZigxNSwiZGl2IiwxNSwxNiksQSgibmV3VmFsdWUiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uVmFsdWVDaGFuZ2Uobyl9KSgiZHJhZ1N0YXJ0IixmdW5jdGlvbigpe3JldHVybiBpLm9uRHJhZ1N0YXJ0KCJ2YWx1ZSIpfSkoImRyYWdFbmQiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25EcmFnRW5kKCJ2YWx1ZSIpfSksaygxNywiZGl2IiwxNCksZygpLGYoMTgsImRpdiIsMTcsMTgpLEEoIm5ld1ZhbHVlIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkFscGhhQ2hhbmdlKG8pfSkoImRyYWdTdGFydCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vbkRyYWdTdGFydCgiYWxwaGEiKX0pKCJkcmFnRW5kIixmdW5jdGlvbigpe3JldHVybiBpLm9uRHJhZ0VuZCgiYWxwaGEiKX0pLGsoMjAsImRpdiIsMTQpLGcoKSgpKCksUygyMSx0NGUsMTcsMTIsImRpdiIsMTkpLFMoMjIscjRlLDE0LDEwLCJkaXYiLDIwKSxTKDIzLHM0ZSwxNCwxMCwiZGl2IiwyMSksUygyNCxkNGUsOCw3LCJkaXYiLDIyKSxTKDI1LHA0ZSw5LDMsImRpdiIsMjMpLFMoMjYsaDRlLDMsMCwiZGl2IiwyNCksUygyNyxiNGUsNiwzLCJkaXYiLDI1KSxTKDI4LHg0ZSwzLDIsImRpdiIsMjYpLFMoMjksTTRlLDIsMSwiZGl2IiwyNyksZygpKSwyJmUmJihCdCgiZGlzcGxheSIsaS5zaG93PyJibG9jayI6Im5vbmUiKSgidmlzaWJpbGl0eSIsaS5oaWRkZW4/ImhpZGRlbiI6InZpc2libGUiKSgidG9wIixpLnRvcCwicHgiKSgibGVmdCIsaS5sZWZ0LCJweCIpKCJwb3NpdGlvbiIsaS5wb3NpdGlvbikoImhlaWdodCIsaS5jcEhlaWdodCwicHgiKSgid2lkdGgiLGkuY3BXaWR0aCwicHgiKSxudCgib3BlbiIsaS5zaG93KSx2KDIpLGIoIm5nSWYiLCJwb3B1cCI9PT1pLmNwRGlhbG9nRGlzcGxheSksdigxKSxiKCJuZ0lmIiwxPT09KGkuY3BDb2xvck1vZGV8fDEpKSx2KDQpLEJ0KCJiYWNrZ3JvdW5kLWNvbG9yIixpLnNlbGVjdGVkQ29sb3IpKCJjdXJzb3IiLGkuZXllRHJvcHBlclN1cHBvcnRlZCYmaS5jcEV5ZURyb3BwZXI/InBvaW50ZXIiOm51bGwpLHYoMSksYigibmdJZiIsaS5leWVEcm9wcGVyU3VwcG9ydGVkJiZpLmNwRXllRHJvcHBlciksdigxKSxiKCJuZ0lmIixpLmNwQWRkQ29sb3JCdXR0b24pLHYoMiksYigibmdJZiIsImRpc2FibGVkIj09PWkuY3BBbHBoYUNoYW5uZWwpLHYoMSksQnQoImRpc3BsYXkiLDE9PT0oaS5jcENvbG9yTW9kZXx8MSk/ImJsb2NrIjoibm9uZSIpLGIoInJnWCIsMSksdigyKSxCdCgibGVmdCIsbnVsbD09aS5zbGlkZXI/bnVsbDppLnNsaWRlci5oLCJweCIpLHYoMSksQnQoImRpc3BsYXkiLDI9PT0oaS5jcENvbG9yTW9kZXx8MSk/ImJsb2NrIjoibm9uZSIpLGIoInJnWCIsMSksdigyKSxCdCgicmlnaHQiLG51bGw9PWkuc2xpZGVyP251bGw6aS5zbGlkZXIudiwicHgiKSx2KDEpLEJ0KCJkaXNwbGF5IiwiZGlzYWJsZWQiPT09aS5jcEFscGhhQ2hhbm5lbD8ibm9uZSI6ImJsb2NrIikoImJhY2tncm91bmQtY29sb3IiLGkuYWxwaGFTbGlkZXJDb2xvciksYigicmdYIiwxKSx2KDIpLEJ0KCJsZWZ0IixudWxsPT1pLnNsaWRlcj9udWxsOmkuc2xpZGVyLmEsInB4IiksdigxKSxiKCJuZ0lmIiwhaS5jcERpc2FibGVJbnB1dCYmMT09PShpLmNwQ29sb3JNb2RlfHwxKSksdigxKSxiKCJuZ0lmIiwhaS5jcERpc2FibGVJbnB1dCYmMT09PShpLmNwQ29sb3JNb2RlfHwxKSksdigxKSxiKCJuZ0lmIiwhaS5jcERpc2FibGVJbnB1dCYmMT09PShpLmNwQ29sb3JNb2RlfHwxKSksdigxKSxiKCJuZ0lmIiwhaS5jcERpc2FibGVJbnB1dCYmMT09PShpLmNwQ29sb3JNb2RlfHwxKSksdigxKSxiKCJuZ0lmIiwhaS5jcERpc2FibGVJbnB1dCYmMj09PShpLmNwQ29sb3JNb2RlfHwxKSksdigxKSxiKCJuZ0lmIiwhaS5jcERpc2FibGVJbnB1dCYmMT09PShpLmNwQ29sb3JNb2RlfHwxKSksdigxKSxiKCJuZ0lmIiwobnVsbD09aS5jcFByZXNldENvbG9ycz9udWxsOmkuY3BQcmVzZXRDb2xvcnMubGVuZ3RoKXx8aS5jcEFkZENvbG9yQnV0dG9uKSx2KDEpLGIoIm5nSWYiLGkuY3BPS0J1dHRvbnx8aS5jcENhbmNlbEJ1dHRvbiksdigxKSxiKCJuZ0lmIixpLmNwRXh0cmFUZW1wbGF0ZSkpfSxkZXBlbmRlbmNpZXM6W25uLE5lLGVvLEU0ZSxUNGVdLHN0eWxlczpbJy5jb2xvci1waWNrZXJ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO3dpZHRoOjIzMHB4O2hlaWdodDphdXRvO2JvcmRlcjojNzc3IHNvbGlkIDFweDtjdXJzb3I6ZGVmYXVsdDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmNvbG9yLXBpY2tlciAqe2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXJnaW46MDtmb250LXNpemU6MTFweH0uY29sb3ItcGlja2VyIGlucHV0e3dpZHRoOjA7aGVpZ2h0OjI2cHg7bWluLXdpZHRoOjA7Zm9udC1zaXplOjEzcHg7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6IzAwMH0uY29sb3ItcGlja2VyIGlucHV0OmludmFsaWQsLmNvbG9yLXBpY2tlciBpbnB1dDotbW96LXVpLWludmFsaWQsLmNvbG9yLXBpY2tlciBpbnB1dDotbW96LXN1Ym1pdC1pbnZhbGlke2JveC1zaGFkb3c6bm9uZX0uY29sb3ItcGlja2VyIGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLC5jb2xvci1waWNrZXIgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257bWFyZ2luOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LmNvbG9yLXBpY2tlciAuYXJyb3d7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo5OTk5OTk7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItc3R5bGU6c29saWR9LmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctdG9we2xlZnQ6OHB4O2JvcmRlci13aWR0aDoxMHB4IDVweDtib3JkZXItY29sb3I6Izc3NyByZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKX0uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1ib3R0b217dG9wOi0yMHB4O2xlZnQ6OHB4O2JvcmRlci13aWR0aDoxMHB4IDVweDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICM3NzcgcmdiYSgwLDAsMCwwKX0uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy10b3AtbGVmdCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1sZWZ0LXRvcHtyaWdodDotMjFweDtib3R0b206OHB4O2JvcmRlci13aWR0aDo1cHggMTBweDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgIzc3N30uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy10b3AtcmlnaHQsLmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctcmlnaHQtdG9we2JvdHRvbTo4cHg7bGVmdDotMjBweDtib3JkZXItd2lkdGg6NXB4IDEwcHg7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgIzc3NyByZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCl9LmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctbGVmdCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1sZWZ0LWJvdHRvbSwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1ib3R0b20tbGVmdHt0b3A6OHB4O3JpZ2h0Oi0yMXB4O2JvcmRlci13aWR0aDo1cHggMTBweDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgIzc3N30uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1yaWdodCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1yaWdodC1ib3R0b20sLmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctYm90dG9tLXJpZ2h0e3RvcDo4cHg7bGVmdDotMjBweDtib3JkZXItd2lkdGg6NXB4IDEwcHg7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgIzc3NyByZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCl9LmNvbG9yLXBpY2tlciAuY3Vyc29ye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyOiMyMjIgc29saWQgMnB4O2JvcmRlci1yYWRpdXM6NTAlO2N1cnNvcjpkZWZhdWx0fS5jb2xvci1waWNrZXIgLmJveHtkaXNwbGF5OmZsZXg7cGFkZGluZzo0cHggOHB4fS5jb2xvci1waWNrZXIgLmxlZnR7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzoxNnB4IDhweH0uY29sb3ItcGlja2VyIC5yaWdodHtmbGV4OjEgMSBhdXRvO3BhZGRpbmc6MTJweCA4cHh9LmNvbG9yLXBpY2tlciAuYnV0dG9uLWFyZWF7cGFkZGluZzowIDE2cHggMTZweDt0ZXh0LWFsaWduOnJpZ2h0fS5jb2xvci1waWNrZXIgLmJ1dHRvbi1hcmVhIGJ1dHRvbnttYXJnaW4tbGVmdDo4cHh9LmNvbG9yLXBpY2tlciAucHJlc2V0LWFyZWF7cGFkZGluZzo0cHggMTVweH0uY29sb3ItcGlja2VyIC5wcmVzZXQtYXJlYSAucHJlc2V0LWxhYmVse292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlO3BhZGRpbmc6NHB4O2ZvbnQtc2l6ZToxMXB4O3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztjb2xvcjojNTU1fS5jb2xvci1waWNrZXIgLnByZXNldC1hcmVhIC5wcmVzZXQtY29sb3J7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MThweDtoZWlnaHQ6MThweDttYXJnaW46NHB4IDZweCA4cHg7Ym9yZGVyOiNhOWE5YTkgc29saWQgMXB4O2JvcmRlci1yYWRpdXM6MjUlO2N1cnNvcjpwb2ludGVyfS5jb2xvci1waWNrZXIgLnByZXNldC1hcmVhIC5wcmVzZXQtZW1wdHktbWVzc2FnZXttaW4taGVpZ2h0OjE4cHg7bWFyZ2luLXRvcDo0cHg7bWFyZ2luLWJvdHRvbTo4cHg7Zm9udC1zdHlsZTppdGFsaWM7dGV4dC1hbGlnbjpjZW50ZXJ9LmNvbG9yLXBpY2tlciAuaGV4LXRleHR7d2lkdGg6MTAwJTtwYWRkaW5nOjRweCA4cHg7Zm9udC1zaXplOjExcHh9LmNvbG9yLXBpY2tlciAuaGV4LXRleHQgLmJveHtwYWRkaW5nOjAgMjRweCA4cHggOHB4fS5jb2xvci1waWNrZXIgLmhleC10ZXh0IC5ib3ggZGl2e2Zsb2F0OmxlZnQ7ZmxleDoxIDEgYXV0bzt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojNTU1O2NsZWFyOmxlZnR9LmNvbG9yLXBpY2tlciAuaGV4LXRleHQgLmJveCBpbnB1dHtmbGV4OjEgMSBhdXRvO3BhZGRpbmc6MXB4O2JvcmRlcjojYTlhOWE5IHNvbGlkIDFweH0uY29sb3ItcGlja2VyIC5oZXgtYWxwaGEgLmJveCBkaXY6Zmlyc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAuaGV4LWFscGhhIC5ib3ggaW5wdXQ6Zmlyc3QtY2hpbGR7ZmxleC1ncm93OjM7bWFyZ2luLXJpZ2h0OjhweH0uY29sb3ItcGlja2VyIC5jbXlrLXRleHQsLmNvbG9yLXBpY2tlciAuaHNsYS10ZXh0LC5jb2xvci1waWNrZXIgLnJnYmEtdGV4dCwuY29sb3ItcGlja2VyIC52YWx1ZS10ZXh0e3dpZHRoOjEwMCU7cGFkZGluZzo0cHggOHB4O2ZvbnQtc2l6ZToxMXB4fS5jb2xvci1waWNrZXIgLmNteWstdGV4dCAuYm94LC5jb2xvci1waWNrZXIgLmhzbGEtdGV4dCAuYm94LC5jb2xvci1waWNrZXIgLnJnYmEtdGV4dCAuYm94e3BhZGRpbmc6MCAyNHB4IDhweCA4cHh9LmNvbG9yLXBpY2tlciAudmFsdWUtdGV4dCAuYm94e3BhZGRpbmc6MCA4cHggOHB4fS5jb2xvci1waWNrZXIgLmNteWstdGV4dCAuYm94IGRpdiwuY29sb3ItcGlja2VyIC5oc2xhLXRleHQgLmJveCBkaXYsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0IC5ib3ggZGl2LC5jb2xvci1waWNrZXIgLnZhbHVlLXRleHQgLmJveCBkaXZ7ZmxleDoxIDEgYXV0bzttYXJnaW4tcmlnaHQ6OHB4O3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiM1NTV9LmNvbG9yLXBpY2tlciAuY215ay10ZXh0IC5ib3ggZGl2Omxhc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAuaHNsYS10ZXh0IC5ib3ggZGl2Omxhc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0IC5ib3ggZGl2Omxhc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAudmFsdWUtdGV4dCAuYm94IGRpdjpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS5jb2xvci1waWNrZXIgLmNteWstdGV4dCAuYm94IGlucHV0LC5jb2xvci1waWNrZXIgLmhzbGEtdGV4dCAuYm94IGlucHV0LC5jb2xvci1waWNrZXIgLnJnYmEtdGV4dCAuYm94IGlucHV0LC5jb2xvci1waWNrZXIgLnZhbHVlLXRleHQgLmJveCBpbnB1dHtmbG9hdDpsZWZ0O2ZsZXg6MTtwYWRkaW5nOjFweDttYXJnaW46MCA4cHggMCAwO2JvcmRlcjojYTlhOWE5IHNvbGlkIDFweH0uY29sb3ItcGlja2VyIC5jbXlrLXRleHQgLmJveCBpbnB1dDpsYXN0LWNoaWxkLC5jb2xvci1waWNrZXIgLmhzbGEtdGV4dCAuYm94IGlucHV0Omxhc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0IC5ib3ggaW5wdXQ6bGFzdC1jaGlsZCwuY29sb3ItcGlja2VyIC52YWx1ZS10ZXh0IC5ib3ggaW5wdXQ6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MH0uY29sb3ItcGlja2VyIC5odWUtYWxwaGF7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1ib3R0b206M3B4fS5jb2xvci1waWNrZXIgLmh1ZXtkaXJlY3Rpb246bHRyO3dpZHRoOjEwMCU7aGVpZ2h0OjE2cHg7bWFyZ2luLWJvdHRvbToxNnB4O2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFKWUFBQUFRQ0FZQUFBRDA2SVluQUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUFCM1JKVFVVSDRBSVdEd2tVRldiQ0NBQUFBRnhKUkVGVWFON3Qwa0VLZzBBUUFNRTJ4ODMvbjJxdTVxQ2dEMWlEaENvWWRwbmJRQzliYlkxcVZPL2p2YzZrM2FkOTFzNy83RjEvY3NnUHJ1anVRMTdCRFlTRnNCQVd3Z0poSVN5RUJjSkNXQWdMaElXd0VCWUlpMmY3QXIvMVRDZ0ZIMlg5QUFBQUFFbEZUa1N1UW1DQyl9LmNvbG9yLXBpY2tlciAudmFsdWV7ZGlyZWN0aW9uOnJ0bDt3aWR0aDoxMDAlO2hlaWdodDoxNnB4O21hcmdpbi1ib3R0b206MTZweDtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLXNpemU6MTAwJSAxMDAlO2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSllBQUFBUUNBWUFBQUQwNklZbkFBQUNUa2xFUVZSNDJ1M1NZVWNyQUJoQTRVMlNrbVJKTW1XU0prbEtKaVdaWnBLVUpKc2tLVW1hVEZJbUtaT1V6TXlTcEdSbWxpUk5KaWxKU3BLU0pFdG1TcElwbVdtU2RPNzM2LzZEK3g3T1AzZ1VDb1dDdjFjcWxTUWxKWkdjbkV4S1NncXBxYW1rcGFXUm5wNU9Sa1lHbVptWnFGUXFzckt5eU03T0ppY25oOXpjWE5ScU5YbDVlZVRuNTZQUmFDZ29LS0N3c0pDaW9pSzBXaTNGeGNXVWxKUlFXbHBLV1ZrWjVlWGxWRlJVVUZsWmlVNm5vNnFxaXVycWFtcHFhcWl0cmFXdXJnNjlYazk5ZlQwR2d3R2owVWhEUXdPTmpZMDBOVFhSM054TVMwc0xyYTJ0dExXMTBkN2Vqc2xrd213MjA5SFJRV2RuSjExZFhYUjNkOVBUMDBOdmJ5OTlmWDMwOS9jek1EREE0T0FnRm91Rm9hRWhyRllydzhQRGpJeU1NRG82eXRqWUdEYWJqZkh4Y1NZbUpwaWNuR1JxYWdxNzNjNzA5RFF6TXpQTXpzNHlOemZIL1B3OERvY0RwOU9KeStYQzdYYXpzTERBNHVJaVMwdExMQzh2czdLeXd1cnFLbXRyYTNnOEhyeGVMejZmRDcvZnovcjZPaHNiRzJ4dWJySzF0Y1gyOWphQlFJQ2RuUjJDd1NDN3U3dnM3ZTJ4djcvUHdjRUJoNGVISEIwZGNYeDh6TW5KQ2FlbnA1eWRuWEYrZnM3RnhRV1hsNWRjWFYxeGZYM056YzBOdDdlMzNOM2RFUXFGdUwrLzUrSGhnWEE0VENRUzRmSHhrYWVuSjU2Zm4zbDVlZUgxOVpWb05NcmIyeHZ2Nys5OGZId1FpOFdJeCtOOGZuNlNTQ1Q0K3ZyaSsvdWJuNThmZm45LytWY0tnU1d3QkpiQUVsZ0NTMkFKTElFbHNBU1d3QkpZQWt0Z0NTeUJKYkFFbHNBU1dBSkxZQWtzZ1NXd0JKYkFFbGdDUzJBSkxJRWxzUDQvV0g4QW1KNVo2akhTNGg4QUFBQUFTVVZPUks1Q1lJST0pfS5jb2xvci1waWNrZXIgLmFscGhhe2RpcmVjdGlvbjpsdHI7d2lkdGg6MTAwJTtoZWlnaHQ6MTZweDtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLXNpemU6MTAwJSAxMDAlO2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSllBQUFBUUNBWUFBQUQwNklZbkFBQUFCbUpMUjBRQS93RC9BUCtndmFlVEFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFBQjNSSlRVVUg0QUlXRHdZUWxaTWEzZ0FBQVdWSlJFRlVhTjd0bUVHTzZqQVFSQ3NPQXJIZ0JweUFKWUdqY0dvY3hBbTRBMklIcG1vV0UwZUJIK2V6bUZsTnZVMDZzaEozVzZWRWVsV01VUUFJSUY5ZjZxWnBpbXNBMUxZdFMydUY1MS91MjdZVkFGWlZSVWtFb0dIZFBWL3NJY2JJRUlJa1VkSS85WGE3bmV5djYxK1NXRlVWQVZDU2N0MDBUV24yZnY2dTMrRWNmZDN0WHp5LzArbkVVdStTUGpvL2txenJtaVFwU2NONnY5OFhld2ZBOC9sTWtpTEoyV3hHU1VvcGNUNmZNNlUwTlg5L2ZyZmJqZXYxV3RmcmxaZkxoWWZEUVFIRy9BSU9sbkd3aklObEhDeGpIQ3pqWUptL1RKV2RDd3F1SlhzZUZGekd3RE5OZWlLTU9KVE84eFFkRFFhZUIyOStLOWVmZUxhQm85Sjd2ZHZ0SmoxUmpGRmpmaXY3cXY5NXRqeC83bGVTUWdoOTNlMWZmTWVJcDZPK1lRamhvL043OTF0MVhWT1NTSTdOLy9LKzQvR294V0xCeCtQQjUvT3A1WExKKy8zT2xKSldxeFUzbTgzb3Z2NWlHZjhLallObEhDeGpIQ3pqWUJrSHk1Z2Y1Z3VzdlFVN1UzN2pUQUFBQUFCSlJVNUVya0pnZ2c9PSl9LmNvbG9yLXBpY2tlciAudHlwZS1wb2xpY3l7cG9zaXRpb246YWJzb2x1dGU7dG9wOjIxOHB4O3JpZ2h0OjEycHg7d2lkdGg6MTZweDtoZWlnaHQ6MjRweDtiYWNrZ3JvdW5kLXNpemU6OHB4IDE2cHg7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCSUFBQUFnQ0FZQUFBQWZmQ2p4QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQUFsd1NGbHpBQUFDZXdBQUFuc0IwMUNPM0FBQUFCbDBSVmgwVTI5bWRIZGhjbVVBZDNkM0xtbHVhM05qWVhCbExtOXlaNXZ1UEJvQUFBSUFTVVJCVkVpSjdaWTlheFJSRklhZnN4TVN0ckxRSnBBZ3BCRmhpK0M5dzFZU28wMEk2UlovZzl2WnBCZi9RT3I0R3lSZ2tTS05TckFhZHNacVFHd0NrdUFXeVJaSnN5U3d2aFo3Ti92aHpyZ2JMSDNMZDg1OTdqbHp6NTB6Sm9reXhYSDhEcURWYXIwcWk2djhCYkl0cVNHcEVjZnhkbG1zRldYa3ZYOEFmQVZXZzNVS1BFblQ5R0t1ak16c0FGZ1pzVmFDTjFWVFFkNzdYVW5yZ0Uxa3YrNjkzNTI2OFdScHpybkhadllSV0M3WXZDM3BSWlpsM3dvenF0VnFpeUg5SWdqQXNwa2QxR3ExeFVKUXRWcmRCOVpLSUFPdGhkZy9RYzY1TFVrN3dOSU1vQ1ZKTzg2NXJZRmhrcWpYNi9kN3ZWNEdQSndCTXFvZlVSUzVKRWs2RllCZXIvZWVZYi9NbzlXd0ZuUE92UWJlQXZmdUFBSzRCTjRzQUp0QUcvZ0pJRWxtTnVpSnliYTNFR05tWmlQZVp1RVZtVmVsbC9ZLzZOK0N6RG4zQVhoRU9PbzdIdi8zQmVBejhJelFrTVBuSmJ1UHgxd0MreVlKNy8wbllJUDVTLzBGSEtkcCtyd0NFRVhSUy9yZjVIbDFHdGIyTTBpU3BDT3BDWnpQQVRtWDFFeVNwSE1MQXNpeTdNak1Eb0hyR1NEWFpuYVlaZG5Sd0JoN0o5MXV0d21jekFBNkNiRzNHZ1BsZVg0anFVSC9hMUNrdHFSR251YzNoU0NBTUIzMmdLc3BrQ3RnYjNLQ1FNbWtqZVA0V05KVGhyTk5admFsMVdwdFRJc3Y3SnRRNHRtSWRSYThxU29FcFdsNllXWk5vQU4wekt4Wk5QZWhwTFNCWnYydCtRMENKOWxMbkFSUUxBQUFBQUJKUlU1RXJrSmdnZz09KTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXJ9LmNvbG9yLXBpY2tlciAudHlwZS1wb2xpY3kgLnR5cGUtcG9saWN5LWFycm93e2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6NTAlfS5jb2xvci1waWNrZXIgLnNlbGVjdGVkLWNvbG9ye3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxNnB4O2xlZnQ6OHB4O3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7Ym9yZGVyOjFweCBzb2xpZCAjYTlhOWE5O2JvcmRlci1yYWRpdXM6NTAlfS5jb2xvci1waWNrZXIgLnNlbGVjdGVkLWNvbG9yLWJhY2tncm91bmR7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNnQUFBQW9DQVlBQUFDTS9yaHRBQUFBaDBsRVFWUllSKzJXMFFsQU1RZ0Q2MHpkZndPZHFhOFRtSS93UU1yNUswSTViWkxJekxPYTJudDM3VlZWYmQrZER4NW9iZ0NDM0tCTHdKMmZmNFBuVmlka2YrdWNJaHc4MEhRYUNMbzNETUgzQ1JLM2lGc21BV1ZsNmhQTkR3dDhFdk5FNXErWXVFWGNNZ2tvblZNNlNkeUNvRXZBblo4djFIang4MTdNaWxteFNVQjVyZExKRHljWmdVQVpVY2gvQUFBQUFFbEZUa1N1UW1DQyl9LmNvbG9yLXBpY2tlciAuc2F0dXJhdGlvbi1saWdodG5lc3N7ZGlyZWN0aW9uOmx0cjt3aWR0aDoxMDAlO2hlaWdodDoxMzBweDtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFPWUFBQUNDQ0FZQUFBQlNEN1QzQUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUFCM1JKVFVVSDRBSVdEd2tzUFdSNmxnQUFJQUJKUkVGVWVOcnRuVnVUNDdnUnJBSE4rUC8vT3IvNjFZNXdPTlo3bVoxdTNYQWVMTWpKWkdaVmdkS3NmYzV4UjNTMFJJSVVXK0NIekNwYzJNY1lvN1hHdjNleDdVaVpkNTdyanl6enYrdiszM1gvUi8rM3IvZjd2UjM4NlkrVHZLTmNmL3dkaFRMUGN2OXFVMndaZDc0dXRoMHQxODIxamtJWkxQY3NJLzZuV2E0WHZ1dHF1VTBaODVtbng4MFMvWnpncG5Mbk90SE50Ny9vZngxVEtYY1NOek4vN3FiTVEzanU3ck5RbU1ZWWQvNHMyajlhYStQK2dHYU1jWnJiMU0vdGRydmY3L2Qydjk5UDkvdDkzTy8zY2J2ZHh1MTJHOWZyZFZ3dWwzRStuOGMvLy9uUCsyKy8vWGI2NmFlZnhsLy8rdGZ4NXovLzJZSzVBbDJyZ3ZmNFVzYnBkR3JCNTJiQXZBclhwdXpqbWlxQVZTR3o1ZURtR1lYemhiQVptQ3JubXpkZHBVVSs4WTFkQU9ZZVhDdERVd1Z3VjdZQ0dINnVBbXlNY1o5bDV2a1VhQlBHTVVaNy9KNXcvNzkyL2Z2djlYcTkzMjYzZHIvZlR4UEVDZU1FOG5LNWpNL1B6L0hUVHovZHYzMzdkdnJsbDEvR1AvN3hqL0czdi8xdC9PVXZmd2tWc3dvbmdqZE9wOVB6SDNVM0Qzem1XR25aVlhuNGpDcXM3d0MyQktQNC84dEF6a1pzb1d4NlhycWVIWnltdnA0QUJDQkpoVFF3S2ZEVDhnenJaQ0lxaTVBaGlBQ2pCZkVCMnJQOC9YNjNNTTdmNi9WNnY5L3Y3WGE3YllDODNXN2pjcmxzVkhJcTVmZnYzMCsvL2ZiYitPV1hYOFpQUC8wMC92NzN2NCtmZi83NUpTdmJldStiTDJXTU1hRmJBbHBCTk04NVFYK2N0NnFvU3FrUEF3dVFsQlZLcUdORlNVT0FBM0JtdTdnQzVoTk9kMTVuU3d2QU9VVzdDNGdpVUNWOFNnbjVMOWhORklxVHNwMEd4STB5c2lveWpBamtZL3RHSlZFcHorZnorT1dYWCs3ZnYzOC8vZjc3NytQYnQyL2oxMTkvSFQvLy9QUDQ5ZGRmeDhmSFJ3cm1UalY3NzlFWHUycHgyeGhqd3RkSlpRY0FXUUlQTFBJU3NNSmFTd2lEOGd6SUtyd1N5QVRFNWo1bkFiUjVjMWRCVXdCbHNFV1cwaDZMcWlZc3FGUEFReEN5Ulozd09TQVJ4bWxYTVg1azY0cFFmdnYyN2Y3NStkaytQajVPSHg4ZjQvdjM3K1BidDIvanQ5OStHOSsrZlJzZkh4L2pjcm1VRkxPMzFnWURXYmx4UklzL1RxZlQ3b3VzeEpzQXhYQTJHYzdUQTlYZGdmZG9IYkZzajc2WDIrMVdBcmdJMWFnZUd3QTNxdXBxb0hzbWNiSTZGdTkzcXVnZ0ZhOWQ3TGVEdGdLZkFGSEJKK05FQnlJa2NKNUtlcnZkVG1oaEdjZ0pKU1o1dm4vL2ZqK2Z6KzE4UHA4K1B6L0g1K2ZubUdEKy92dnY0L3YzNytQajQyTjhmbjZPMisxV3M3SmpqUDZ3cmFNSTVFNFJaOHgydlY1VFN3a3F1b3RWNy9kN1R6NkhGV3NEL3FOY2R3MENRM3EvMzIxYzY4NlR3RFZJZGJ1eTczek5sZGhTSGI4STJrbFp6bm0rSW5CUzRVNm4wMzAyYUJGc0xoSERBS0pWSlZnbGZJOWpodnU1M1c1M3NMQU5ZTnhBaURBNk1DZVVIeDhmOSt2MTJpNlhTN3RjTHFjWlc1N1A1eWVZOC9mejgzT2N6K2Zuc1NtWVV5a25XRUc4NVdCc3Q5c3R6U0x5TWRmcjlRaTA4aVkxNVVaMExsREdMaFIzbzV6SzJqN09QVVREMEUrblUzdGs3WGIvMTZORmJobG9BTXVZMXpqTFVPTzNCS2VJRGUrWjhzMy9KNGdGbzRUTTVqUG11UmcyOGZvVUtLVlN3bzE2VGdBNW5weXdjV0xIZ1lsL1B6OC83My82MDUvYWI3LzkxbTYzVzd0Y0xpZTBzWmo0bWFvNWdUeWZ6ODhFMGYxK2o4RWNZendUUEVHMmNxanlmSE5GME04ZnVxRWlhT1ZuUnpaWlFOaDVmd1F5SGcvSERHZkpvODlRMXpiL3F1dTVYQzY3NzNJMlhLZlRxZC92OStkM3d1cVd2YS9ZVGRVZEVWM2ZoSXYvVml5cHM2WUUzeDNyNDNLNWJKUVM2NnpheFZHRnN2ZCsvL2o0YUYrL2ZtM2Z2Mzl2dDl1dGZmMzZ0ZjMrKysvdGRydWR2bjM3WnVOTEJhYUNNZ1V6QytyWlJpRm93eFV1Skk4WU1xY0NwOU9wcTV2YWdhWVU2bEdKQTFYUXFlamNodzZDajBHdzVuWUJyR3cwMUEyTzIwNm4wNEJHb3VOTnlUZnAvRndFbGhVZXk2blhySUt3N1FRV2RkeHVOMmxkTDVmTDgzOWdTUEY4YWh1L0p2Qk80OENQU3VxTWY4VnA5L1A1M0w1OCtkTHU5M3M3bjgvdGZyOC8zOS92OS9iNStUa2hQSjNQNTZtUTQzNi9qKy9mdisvaVNnYnplcjArQVp4LzUrODhidjZPTWRhNlM1ejZrZDIxZllDOWR4djdjSUpKMmQ5QU9TMzBmUE16eUhpVE04QjRERjZYVWxZSHA0S1FXM1crMXQ3N01OQjF2R0h4V3E3WGE3dmY3OCt5NS9ONUErSDFldDI5eHVQNWRiWXR5YVJ1NEFrc2JQcTY5MzZmalJ6WFJ4QmJQci9iK2IxOCtmS2xqVEhhQkJCZm44L24wLzErSDErK2ZCbm44em0wc0I4Zkg1dTRjcjVHdUJoTVZrMEVFbjlSc2N0Z1ZoTStpeGxKdE1BMjNSOEI2eXlzQXN0Qk9nRlhJS0tDTUlnVG9NcU5FdTJmWU1IN3p0YzczMmRRS2tDajF5dEFadFkwS3g4cElyOEdHSitBVDNWKzJIaXJobCsrZkJtWHkyV3o3M3crYjE3UDhwK2ZuOC90VXdHVmxlVmtUeVViNjhEa2ZheVdZNHp4TlJpaFU0RXBMSlBaVnJLK3U3SjQvbWdmS3FlTFc5WDJSRVdsSXRMMWRpeW5iRERiMytqWGdZalFxbjBycnhXYytOa0lMUDdGN3hJYk12eDd2VjUzeDQweG5sYldKRjEyWlNhZy9OMHBXNnQrWnptT016SGphakt3RGZvbmQ3OHpZVGRmcTE4dXA5N3pyMnE4djNJaW9CcHJSdEJsMEVaOW9nNVdCUkdPZE9IaklqWEY3VW90RmJnT1duWHpJSnl6WXZqRzVJWWdzbU1PeEhrejhPc01TclZOV2VxNVQ4RGFPY2JFdjFPZDVyYnM5YU83WXZNZXQ2M0VrRisrZk1FeHErTVJsNC9MNWJMWk4vK2V6K2ZuWjZLYXp1TXFYU1FWTzVzcEpYZmxIQUl6ZXMveEpzZWNrUkppRE1vZzlkNlZmUnJxWE1yNktwVlYyN2pSd0phY0dvdk9BTTF6TWRRTW53SzFBdWJLNjNrZENDaHZJMUM3ZzB6OW5mL0QrWHplMlZqOEg3R3g0UDlkdVFsc1lDcnF5TjhYcUczSG0vMTBPajNqdy9uK2NybHN0dU0ralBtbXhUMmRUdVB6ODNQenQycG4xWHNFSFgvYm5QYVZxVm1oMHh3T3QwbzZYTExBSGVQVVUyMDN3SGZjcnNwQ3dtVjNUcnlCNXMwTXNlZWc5N3gvQnd6Q2pCbGJCK3BSQVBsYTBCVlF1VDZWNlFIZEJsajNkMEtHMTQ3YitEcXhRZVV5bURPNDNXNGRRYXIrVElqd21BZDB6OC9oNjV2ZjAveUx2M1BiNVhMcHJ1L3lkRG85czdFVDBJK1BqNmRLSzlWVUVJZUtXUVdQQU9ySjhMS2Q0dkUrdDkxWTNlN1VGbFdhdGcyVndKbmIrSFBtdHZtL3NmSzU5L09hV0YzeC9lUDFVUEh2QTVERFlEcFlYZmIwZHJ2MVYyRGtCa3h0dy90RVdWVmxYV2RDOXBGWXM1L2pmaDlkUy8xNnZXN3M2bFRHK1RmcXN4U0pIeGtYWHEvWGRyMWV1NExzZkQ2UDN2c1QzTjc3RGtMK3pQbTVqU2RLTDR6UjNBeFFkNnJIa0xrWWxTb3dzcnE3em56dTZ3U3dkc01KT1htQTVmQmNqeHRnTUdCWUhscjV6b2todHNNQ1RnWExRT1c0WEM2ZEV5RU1wckw4bUFRelhSZ2R1aXgyeVp6b3J4a1lzRG4zaEIxVmVNTEdzWHNWdGdsMnBXOFMzc3ZrMHZ3N1I0aE5hSHZ2NGNBQ2w1SEZ6d0lIMEtjNnp1NFhqRFBSL2pwQVZ4V3pPMVhrMkREYjN2VGN4ZUdVMWlXWkhrbUlEV3ppV0t2aXJDSjREcmF2czZJSi9HRzZjVHFXZFhEeStmQXJRRFZWa0xxa1ZqQW9aSUlUZG1tSXFYd3FhOTVOMytNR1lvWlFkUlZOTzUzWTF4UmtoTzE2dlk3ZXU1MDdDYTlsSm5iR3B4T2VtUWhTdy9BUXNtbXA1elU5QmlVOEc2d3ZYNzZNNi9VNlBqNCtkbzBCejRDcGdpa25UVWVEcXdsS0JtZzN1NE9WanJaMUErckFjZ2FlaldxNmVKQ3ZDWUZET05Td09nSFg0RVFSdzhseGJ6RE9kRUs2Z1ozSGsxYis4ZzJvMUpGdEtYeXYvZkVkVFh1V2pXWGRBWmlCcDZBRGVEckNGaWltN0I2WkZuZWVJN0d2bS9QTWtVRFg2N1c3eEk4YjBENy92OGRBOXFmTjVvYUNmNzRXWmpIMG1mMWNtZlkxWTBKVUZtVnJUV3U4dXprTmNMdEVqN3U1RlhCVGtmQzZHT0E1cThZTXhPOEtWdkY2c0FWR2RjclVic0tPRGNRS2tMTU9NZG1seHVtNjQyWXJQbTI2QWxoWlcxWUIxUityckdzd0U4VGFZQVdlVU14ZGYrV2p3U3ZaMkVmM3l0T3lmbjUrUHBWUEFhcU9uNDNNdE5CcXZtamp4YmpNNGxaalpZNGdxTk1JNWt0YVcvc1lLTndTKzlsRlF6R2lobU1DS1BhNytaMFY2RWIwR1Jtb2J0cFg4SmxqV3U1Rk1MTjVqYTZoRzlrd1FnWnFmNSsxTkg1VXh6a0ZSZUNkV2hKOFhkbEdVa3hPN0hSbFlSbTRtVk80M1c3dGVyMTJUUEpFdy9ybUVOM0w1U0tISVdaZzlteitwVW9LT1lxNWJKVEpkWDJnbWUxVWN4TVpRRmFFUUlsSGN0MzJNK1kxQnpHa0d1emZpeUFOOXordWdwbFoxc3ltQ3JEQ1lZa0d4RFRwSTlSekJ5MHJIeWVEVUMxbldhZVVhRDluNHhrTnlZTUJEWnR6WjNCKytmSmxZMjFYRkRPY0FSSmxhYk95aVMzdUNwTEk5anJaakNEa2FWdmNDQ2p3b2duS1NoV2R6WFpXbFpNdlZUZ0Q4THBxbENMcnFnYmNCK3FZd3JnS1lwVDBjY0NxYkt5Q1ZhbGtFYWJuL0Z5bm9nQ3JQS2ZxZjUxeEo3c0dCMlpYY1pteG9TT3p0angzMDBEWmk3YTAvMkFJUjBVbEJhZzlTdUR3NktjQXpsYUI3dkhadldwaks5MGR5cnE2Ykt5RFVaUWJSMEIwNWJpTFFrSEljU1VtZ0lLK1N3dXFnSENub2lvMlJRVTF5aitCbkJ5OXBwaFZLTEd5QzdaekZLMXB4V0srRThJaFZDV0xOL3VMdG5VVTRheW9ZTG9hQU56OEZkdGFTdlk0cFYwQkVXMmxzNjFjenFsbEJLcFR5S2dNQWhyWjFjZGMxUlJPdFBtdldOa2RjS1o3Wkt4YVdqaVBMSk1wcDdPWkt4QStycUcvb0pManhmMHBuSmxxTG9EWm8zZ3lVMG1LR3lzMnRhS2Vjai9kMUMrckpTcGxCcWxUeUFxZ1IrRDhLaktsbVJMMmd0VWNBZEN0c0wraWpDTlQxb3FxcWtIMk9IRWJHNXNERm5VZzVBYSt5TG91MlZVMXB0ajFTMlpRcXYxT1JaTjlJV3pSZmdhUkJ4S29CRThVV3lxbEpGdHJJYzBBeE5qU2plZDk5Q1RZL1hEZlN6Q3o1TTBJWm9WRXNXblBGTlRzbDhvb1ZDMVR6YkdncUZaTkRTZ1Z3S0srMXNHRE1LcXhaQ1dHVk1EeXNpRXIxalZTUUpVWXdqNWlIT2xUaGRIdDQ0U1FnOUNOK25sOEQ5ME5NSWdBZGdyNDZKcVJpUjlJOHZSZEZ2YnIxN20veXhVTUtqTkxNaVZVQUR3dTJDV0doaGkrRjU1VFdNOU05Y29nem1zMWRuTTR1T0YvTEFFWVdkY3FuTTd5Rm15cTNJZndtT1JPZDdZMWlGV3RPam9ZOFRvNDFtVFY1SXlzZ0ZGdVJ6c2JXRkdiTklJSkNEdjFkT280bFpHN2pXQndSRnRWVEt1V3llQ0J5SktPYW44b1ozZXA5WGRkTmwwdER1YXl3THo5Y1hQWWVEQUEwU3BrQk85c2JWY1RPVldsZFB2NHV5ekVrenhIdGp2b25Ib1NrRkVXTm9vMWQ4RGhjUXB1dGQycHBOb240QnpvQWlKMWhCRlFnMGRWdGRiR0hIRFFXdXNobU5FUXVrTE0yUU8xRzJZOGJnVFhxRmhjQkpqN0VqUGdjUHRzOFVTOHFQcFBCL2RYem5PaDVaNDM4dHpINWVjNlFnck9LclJSZktteXNCbVVEQitQaFlhYk1sVlBFUitHQ1NJVFR6cjdhbTJ0QXJIM2JnY0V6UEptK2NyNWpKNE5uSE5GRFZyRlhjSTVMZTlrNUpudytiZWRiVitGZlJ6WklIYU9PYU9zTFkwLzdVR3M1OERqckd3S01JTUZJR3pPRVcxL2pHc2RBdENONmhFQUk0aEJlOVlYZVJST0JTVlBBVlBBcXZJTTVieDVoVktXQU1QNnpCUnkzaWVzY3JpZFZkRkJpbkJ4WERuRzJHUlkyWGJDdnAxbGh2R3RPOUJ4dTVoOTA4WFF1NDJsblNBck1GZGl6TWltOHV3UkN4UEdubk9TOGx3cG5iT2lEcVRBanNyUk4vUGNvQVNjQ2JhQUNxVk00MHlsbmpqVEJzK2J3V2xBRzIzL1VLYmRraXdLV0lRUEd6V2FjenBvU2x4UEVqODIyY05Xa3BTN0Z5enNEcnFwZmdwRzNqYWh3MnZnYmFTUUF4dUxXWll0N0p6eU5lOEpvWnBOQWN2REZPZHcwd3FZVDlBSzFyWnovRGRiU2xMUHAwcnlJeGdRSmxLOUFabEVxN0lPWHBvaGc5UElockNuZzg4SnNPeGlWNFpXQVlmZzRzaWt4LzhreTJaOWw4NjJ1cXdyZnNjSUg4K3VnVG1WR3lpZGRlVllVZ0VNbjRHWnpnMTRFd0lzaDlzeDJjS0tpV1hSZXVPRTVnekdPUWdkbFJLVlZkbGV2cWIyNzlYcTBRbnN0czJWRGFCTzBjb2V6c3J1V3RIQXB1NnNLRzRJQmhOMGFHVTJrTHJNS0dSVE4zSG1iQ0R3S1YxNHp2a01FREc0UWZaVnNwVmxhTlUybWhjNVRFWjNOMWgvenFUaGV1THBXMDVaV1RHVmpiM2Ribk5teEtaQm5OOEpxaWRhVkxLQU95QVJOTFMrTUI1NFoyK1ZhcW9NTEtyb1ZCbG5nZWZuVFBBY29ITldDU3ZsZkE4Q0kwSEVtQk5CbkJsWHlNcnpVN0E3V1ZtOTRQUHFRMmdtcUt4K1dER3NudmlsbWNTT0JKcU9LMW5ZeUFJenVBeWVzcTNVZFNLM0tmV2NZS0Q5NUhtZllPVTNxc2VyMkN0WUVVQStGcGZxZE52Z1BCWlVCaERyR09OUlZsUXNoOHJMY2FVQ3lrSEcwT09Vd1RsTEJyc2g1c29FTUdlemkxRTRIUlZ0MWljcDV3WkVGWGRpYkNrRzhZOHZYNzVzYk80RTBpb205eitoalNpT2Z5M0RocFhJdHBWaEUrVUdRZHZvV2p0Q2htckdIZjRZQXpLZ0JObkd0dUp4RkNlR2RoVUFmUUxMSzhrQllBUDZndkZKWmFqTUczWGt5Y3k4S3VDMHE0RXl5bXd0d2R4ZHYyTTBtSUJ0SzBMS25mNjQwajAwQXVxNGdVa2RXR2xoczIycUpjNmRaQ3NMMTlveG5sVEpHNFNZVlJJR3BEOFRQRkJ1TTZPRWxiUzFwbGRpZDRtR0F5TjZaSXVwYkM1YlhKTjlmZHBiVGhTeExVYUk4SUcxWElZQnhXM1RqczZLUW9zS2N4ZnhjUW1kbndSR00xMEduRmNDeTJYWXVuTE15QWtkZ2s0bWVQaWN6c0x5Z3RoY0J1dDZnb09xUzdZVkZYQURMamFvc0I2czZvZmNaV0FaU0lSWXFTVWtpell3dHRZYWIzdlVPUTl3MkhSeElJZzhXd1JWZUU2OHhpNFV0TDN6UnBoeHBsend1WnJjcVlDcTFJM2pQSTVkbkpJeWdFb2hNYlBxVkpTenJ3enhCSlRzNXpOK1JlVVNneGlrUFFWRjNKVkJlTlF4YkhFTnJFTU52RWRGWlZWOWxIOStPUkdFc05aUXB5VE5jNEMzQUc3WEY0bmd6cStEck8yemJ1YWFPWGdkYUZjZGtFb3RvU0ZCVlgycUowQzhPV1plRzRLR2xwZ2hBMFhmVE9QQ3FWMnFxd1EyNlFXZkYyUE1MaEkydzFsVkFhMmFQc1lkMHphMjVNUVJ3Z2NaTjZ1UURDaStaeGlENFhFTTJrWnhPVDQxRm5abmFSbGNwWm91emxScXFkYlFWV29wUW9TQjU4UlY1MGxCTnJIaS9Bd1hTNUxyd0RWbHBZM0ZjM0J5aVlHYzUyVHJpc3Q2a09YZHdJbkFRdEpwcDVRY2h5YXF1WU9WN1N1K2Z4Vk1hVjNkYzBSRTJTNm1VWTBnTHQycE1jWXFyS0lROXcybDFncFFVTXRRWWNtbWJ0NURUTnhkaG5VQ2pRcXRiSzlTVVN6dnJDMG1taGhFMWUyRlMyK294eXB5L1pBU3V0a210angzdmNCQzI0UFg2NW5icWtCQ1JoZmpTOWtJWVBuZWU4Y01hZ1ZPaEkvM1QxZkFtZHRBV1pzQ3N3VEpDa1FWTmEwcVdLU0tQT3BIQVVoRDlEcmJWY3lvWWt3cWh2aDE3dllBYXlYTFF5S0dZZHhsVURGcDQ5NHJCWFJqWWdPMTdERFlldE5JVWovZXpwNlMwbG5scEV3c1dtSk1rT3dzS1hlWktFQWpJSG4wRVFKSVNhUkJjTzZVTUlOejdwL2JFampudzRmdCt4bUR2a3N4WDRHMnJJcmlzN3FhZUt3QUZNUDJPaTduNGNyaXVad3RwU1V3cGZMeFNuT1JTcklxdXNjNVpGYVh5c3FSV2ppWjJEeUFXRUlMMzV0VlNvUUVsRkFDak9lR0dTRTdBSEVRZ2RvL0xTdkNPZ0dCdmt4c21EYnZsUzNGcDV2aGFCMlRBR3FSS3JLS01yaExWcGFHekVWalowT1F4RGhhQ1RBK1F5UlIxZDE1YVF6ckpudEwzUmlic2lwakc2amxnTDR5cWJTMHNOWWcxZTg0dmhiQlZyRWxLNjRDVWNXWVhEZkt4aHBJdXhpVkpaVXhzYk15L3VSQktUTlJRNGtRM0xkUllMUzBySmpSUGxUUHFZNmdkSnNFRGMrYVFYQW4rSGdzTlVDYlJ1RjBPajB6d25BN2JXRGtiaE81RW5zMDBxZVFoUzFsYUJNbDVNL2NBYXhzTEY4ckt5cWwrVGY3RUxMRUd1L2l4aWltZEN2bzBUamZwakt3YWdnZW40ZWg1djdMb2tMS2JMdXl2SGhjWkc4ZGhHckVEeDdIZzkzWnBwSkY3cUJxTzNpVnZlWEVEUU5Jbnplb2U4WXE2ZVBhWkJaMkp2aU0zVzJVQUdvdGVrUkNBR3E0RWtGMVgzRE9uUjExeVJzQkwxdFJhMFBWY1ppTkZYWjJjMzRGc2t2b21JblFRNmx6cEpvWmJKeGs0M053S0pGQnF1SlNzckJ5SHlkeEtPblR4UUFTQm1TM2orSk1uc0hTbGEzRWM2SzlWV29KVm45emZqd09NN2hxWUFBcUpRd0UyYTNuQTQ4SjJRR2VnUmtwWk5pdlNZK3lzM0VrS2Q0b0pJd3N2SUhsM2NXZ0x0NWs0Tkg2T210TFdkcHVyT2t3RU11cFljN2VNdERSaE9jSTJ1aTVKaFZJelh6THl0by9HQVB1Wm95bzh3a29kdVZnSmdsQ3Q3T2hHYmdJRDRNcTRzaSs2M3pVUzFGdUZGWEZscXlhajJlbUhsTE1jQnFZdTBGTXVSMjhCYkI3bE94Uk1TaUNRWEZoQ0t1d2toWitwWURpR1NnYnNLS1Y4TWlTUnN1SFNJV005cmtsUmlJbFpadXFYanNRSzhvb1lKTWdxM0pLV1ZraEhiaHNWeEZVenRoT1dQa1lpamNieDU0SUtzU2RUK3VMcjNjckdLeW9ZZ0ZpR1I5aUJrNGtmbG9VWCtKSWxRUlFxYWJtcGduaHF0cFFwYjZSVlExV0g1RG5yUzRoRW9HWnFhZXJRMmRoRmJ6OFhlUHhTaG1EYm83MGVJU2pvb3JPMnZLOFNKWEk0U1VtRVU0eldLRHpVRHRXVFl3N3hYbGJTVEVqNEZSZzd6S25Lb0dSQUx2MEdzOVRnYzFCcEN5d0daUlFBdHFWejJ4ckJjQU16RXBmWndGU2EyRzVXMFFCRmpTTWFwV0FFRmEzSGNHTjdDeER6RUN5SWtKOTdxd3JxV05UV1ZvODc2UFBzalBrajJ3dmdyb001bExaS01FVEtWcWwvQ3ZuV1ZGaUZhL1N6SlVRd2tvWnNyNjdZNnZsU1JWMy8ydG1OVE9ZM3ZuYXhZd011b1BLcWR6UjF3N0lxSHltbFB4YUFUaGZVN0tvMlpYWWo0QVlKSEwra05kS3dSUVlFU1RSYTVmc1VaL3JWQzFUTVR5V1Z5WW9xTnR1emFIc015djJ0dm9hcnhkZnF3WWdVMWF4Rm8vY25xbDFGR3NxSyt1QVJPVjhCWDRHVThXY1pUQVRpMnE3UWN5aTBPMFYrR2hXQk1OUlVrbjhIMVNzV1ZFNUJ5M0dpMEVDcVVlSm9CZkF0RGE0YW1rZFhHMzdBR1A1R2dlYjg0cDdVYXpwb0tSemRGemVROEhrb0hHeHByS3kvSHBtNXQxMnA0N0o2eFRZREV6N3VJTkVYU3V4WVh2RnNrWUFjK3lTeEg5c2Y1ZnRLelU2SWJ3VkJjVUdnNWU1Rk1DRVhTRXJaUjB3R2F5VjE5d29NOWd1UGpUcUpkVlRxUjR1RTRuSm5MbGRXVmtFQ0NaTGQyVkxGK3h0YW1leDdJcGlyaVNEVXB2cnBuOWxyd0dNQ0h5cHBNSCtwczZMSUxzdUZHVWoxWEVPWGlxYnFTSFBVS25DbHBXVjY4a3F0VVJWTkRZNFROYW9jeWtvWWVUVTVuZ0dFUWEvUzFEbm5FNEFlWE1jS2pIUEFtRlZqQ0JFTmFleUxWTkhmcjNweDh4VXN0Sjk0aElwZkg0SEtFL2VEYUFySzZsU3lWVkZiZHQxZ3hUSVZrM3BwcFZsRlhpNHBFaFZCVE9icXVvaFU4NU1MWG4xaWFodlVrSEpqU0NNYzAxdExGdmVWVkJ4MERvZE02amZ0Q3U3RE90SXpZeHJjMHFwMUpHUDJheVlGejJHYjZIdk1yTzhjbkd0VjZHam0zdUltU2ZEMkdwV0s2dW93YlpHTXhGS1FDbzFwT010Y01YRnBSc3QraFhHb0FvbUYzc1NUQkdnVGdsYkJLV3dzUTN0WnFhWVNwMFoxQ2ltUkRXRmNDSlVQWUowMEJJNUZrS1lOb2lmdVF4bU44OFNXVlhXTE1hVXFxcWdDMEJtUUpSNnNrM3U5TkNmNmpZTFh4QWZxc1lFZ1ZMQWhSWTJBdGd0ZmxaTkZtRnloeGRyTGtBZFdsazREODhNMml4SHllcElkaE1IckcvaVIxWkd0cTBNR3BiRGJSUFlPWGVTWTFNNk55NFpzdHZHU2t0SytYYkZQQVRqMkQzNzFzYVBFc0FNWGhYcnNaMGttL1hTdGtoaE15QmZzYTZ1WEZaZTJWQ2UrWU1yMStHS2d3clF5TllxMVZSckIrRWl6QW93Nk5zZE5LY3lWRWtZZU03M3lzNnE0a0FIcDZCaUZrbFRrSXJWQzVvWVY3dXp3T0dDejRVSjBTdHEybFdNSnk0d3RiK1JldEw2dFpGaWNuSm1CdzVVakN2WFhNWlZKWDJNUWtiZitYTjVFV2Q3OFZ6OC9KRXNNWlRCaUtOenNtMWluTFJVUTc0SDROaWRhcUk2OGo1c0FGZ3hjUnZlQzdpZUxKWGZRWXhqWloyQ3NpV0Zld1pYSm1CSWxaMXRkdHJYNGhTdWF0ZUtzby9SWk90T0tXMm5tcTFvVHplSzZkUldBV3UyTlJWYjRocTBTWG0xR3Z0dWdIcmJyNUlYcW1Ta3RnNUN1REUyTVNsUHdzWTVrTkUyV3AzQXFpWmJXVkxBeGlCRisyaUJaYnVOajZNQjZyc01MQzdGeWFzYVlEeW83S2tvUHlFdHczcEVNWGZQdnhBSmkyakFRUWdqcnowckxJWlNXWmxJb05od2Q1eEs0QVI5bVlOaldBYUxybnVJbUplQlZOOXpCT1JPYlZ2YnIrbVRUZkZTRUpMU1JuSG83aEVKb0lpOE1GcWp4bXZnbUY1VVJaejR6TEZnWlo4Q3R1Mlg3Z2dWY2NLbTlnVnhJc09IcXhYZ05NS25GV1pZbmYxZEJuT2hheVhxMTdRd0ZsV1cwOWVOS3lWSkZtWHFhT05HQTVhQ2VnTWJKM1VVa0dZMWljM25LV2dqcThxZlZZR1FHMWdSdDZyczYyYTZIaXFxVU9xZGVzSzVObVg0bkdvZkpvaUUxZDBkRjlsVlZrdlQxL2tFRWFhQ29ZT3dGcGNWY29MTSs3NjY5UHhDOXJXcWt0SDBzV1VZbGQwVkNwdUJaL3N0VlJjR2d5OVdYMitVMVF0aGk5U3pBcVN4elpzeStPaUZ6QllueVNHVjZHa3U0NHJEOEJDT1pCVjNCdkQ1K0FLUkhOd01Fc0I2RXpIbkpwa1RBZWlVbEVHa2NFQ2VCNkdEWlRwNVlFSlRsdmRya254WWpUbGxNa2ZOdFh3RGpNN3VWaks1SlhVVW40M3JycXBLMmp5dGF4SFcwTTVHOERDOHJ0SE1ZczdLU2dkdVZRTUdUWUZxRnZWUzZya0Qzc0RKNDZhZmRZRndvcTExQU9LQ0JMaHZ3b1VnYzhJR0FOeWNSNmtuWnJkSlBkc3V4bnlqZmQzRm92VGxSTWRFZHRPbDVDTVY1RUhzWFFCaXM3VE93dklEWmFHajJWbnBiaDdjcEs2M1Z3WUVNTHdxYmp6eWw2OTlzYXdGRmtGMXlxalVVMzFIZkM2c1cxWkZWRnVYVlhWZ3o5a2VFYXcweXMxbFdmbSthelFBUVNXQStoS1lWZnNaalBuY0FjVUI5b0lheXkvVVpYUk5ja0RHamk3N0dzV2J2Qm82dFByV1BxT3lWa0JVcStJTmVxcHpOZFlzL3UwaWZoNXFtcHFJVyszM0pWU1Vjd1k3MEtMNFU5bFlkVTZsanRTbHM3bG1maTlnM1l6ZVFmVmthR0ZhVjNPRENuYUQyTjh3c0VERmtsRTNSek0zWmdoZFlrV0hzc3pxNzBGSWVjbktrVmt0OGV6TXpScTlia0d1S29qUkxCVlNvZDNZMXlQcUtnWVc3SlJRVFBWeXk1eElZTGpPZ3hnVDUyUktKVVkxZE9ySWlSZDRmdXRReC9BNUFjU21FanowdkZXcmtMenZiV0F1OUhPV2JHZ3hGazFWTlRwbkJLazZUZ3dpc0kvSGN4WVhQMXVBV083MlVMRmxCVHErYVN1MlZUVXM2aHJ4TTJDRitoRW9yMVZJQTlabUZVYWFiMWxTU2dac1ZzNHN4ekhsVkxvSkhyOUg0RGhPTlRrSTFYQzAvd2lZMk5vV0FHNVJsbkhGbnE2b0xjY3BRZGRNdUovTzE3SlZBNU9ITGkwQnFDenRxN1kxKyt1Y0NkOThxTEk4TUlIQlYvY0tqeFFUbWUzaEZCUzNNeUNxbkRzdXltMm84MEhqdkZGVHRyVVJtTmFHSnNtVmFoSW1qVHNVWEt0UVpUQVZzN012djgvK2Z6VXJaQVhjTEo2TTRrb2U2WFAwYjZTbVdXTkR6eVVwUThibCtMdFd4NHR1cVozNmNSWVYzeXVWeFBOd3ZJaXFpUUNTbXU3c3JnVHpSNm5reWhwQ2FyWHdGeTF2R2Q1aVAyY1kwNmxGcjVOamhoZzFZNitOQjI4ZnRiSzgzczhyZjdrTEpiS3dERlBiTGcyNWEwQWRaSkVpcXI1cGhpeEtNRGxSVXRjc3NxMWhyaUxxR29IK3plTmdWbTlPZW1qc0VUVjhKZEYwTkhua0lGeFdZMU9CNFlycDdydFdKN05nQUFBUFhrbEVRVlEzb05zNW5wbHlWZjh1MkZvTHUxSnJIdmVhWldRanFBa3NodEZhMmd6c1NHM1pwa2J2ZzNIYWZGOXNsUFBsbGRqRmxLODBHeXNtOE1yNE1QaG5lTldFTlBHakFJcG1pbFRQQVRkVFJUWGxDQllIWUFRdVB3QTM2eElwV3RHTjRxM1kyTWhpR3NVcHVTU25sRUpSRDhQb3JDN0NGWVZ3K0Y1MXFUaGdhYnhzVHhXekNHWTBaU3NiM2xmcUF5ME9QTmpOeTh4aVFRS3NIWUZRMkhCWlZ2VmJCdXEzbTFvV0thanFhb25zTTZ1WlVyNkNqWFdOWjBsNUUzaDNqVVJtYTZrUDNNSklpeTFMbStrYWhRcTQxTjJpWmphNXNqdGxMWU5aSFpySDZxVUdtNHZNYkRwNlJ3MkNGbXZ1eUZrckJjQ3lNdEZxQmFFQ21zSG9LOUJaMkxBL2xKY1JxU2FEcW5hV2JyWmRHYXozRExnSXZCbG40d29HenRieUpHcXNsd3hraGhIclRqVFlGWEN0T29LUzh1TGRvZlZkQWJPeWxHVTZubFlwWFdadHM0blhCcTZXeEppdE1Ob2tIVUpuYm5KcGxRbSthR3BZMmE1R01WMlFEMWhSdWJCUEZLZHVtZjVPSGtMSHowRjlsdUU1a2pCalJhMG5GRTVDVUdxSHczMk1talo2eGtnSU5WblNuWjFWWlN0SzJxS2xSYUxsUWdLN3VUcTdKRlhKd00rM1NPRUt5aFpOSSt0SjBJNXFNWXk5azJxSkQ3ZFZXZHFLWGEwQ0tOUjBDY2pnK0IySVl1MmZjQlpKWmtNRmdNMTFyMFg5MndpbGdoRkdnelZuZXhscUI3eEw5bVMyOVNpWVVWWTJuWE9aak5CUnN5RHNRUFJXVzVoclo0WGNkQzRIVldSYmpnSnI0c0ZvZks1U3pqUTdyaEkxVWViZFBkRWJqNnNxSXZUWlFaNXZhMDhyQUJzQVcwVXhlV3l0QWs3QTJLSjlacHh6Q2lvQjI0WEZ0WUFlWFl4cjZhblNxaExncHBFcVdiR3dMdW5UZ3JWK0lqV2xMMjlsamFBbDRFUU1Hc0VycDRhcGVaaXF1d1JYTFhBcU9DZXJ1MzJtbXlkYzZvV1RTV3BGQUdkemVUQjhSVEhWTUV0bE05MENiYlFDWWhQanEzZWdZcjFGR2RZSVFqaXVER1o1elovQXpvYktHT3lMeHRpNmM0Und0djJhbnlXbExJQ25sTGh4SlJYdDZBNWViREJXRk5PTmJ4V1oyZDAybW51NFM5WUVDcGVwcFYxelNXUkJXeEhZelZJdjFDWFNvdXdxcVgzakJCQkRaZFlRYnBUUVc0WlFsUzhyNWtINHN1U1JtZzIrKzNKTjEweDFQYUFtRWttdFlsRWRlR3BKRU02a091Q3FDUjIyb1N1amo1SVYySGRUMHpqNXByTEtUalhGQVBqZFFseXE3eElCeEFRUDV5TWN6RzRWeEFLdzBuNmlsWjJRQmNlMnBMdWxrdXh4cW5vSXpGZmdxeXFqaWw5UzFWTndCckZtZXllb3BzOHlPalpVeWJaZGZTOEN1YVRJSnVtenM1dE9EYU50THBGRFEvUGNKR3dlTGhtZUwxbkIwS3FpVURTY3NpVVZEODlEaTNIdHJLdFNVTHczUkxpeWdaRCs3c0Y4SlRPYmdZc3JHdkROVUZSR2wxaXkwTGwxWWtVYzJhSllNb2c5MjBJOHFXNllEQ2cxTXFrMEpISkZLWGtiZ2JScmVJK3FwWU5PWkhyVmNEVWJhN3Bqc3BoU0pOdEs2dXBnUk5BVm9PUzBtdWdCZU40YklaZ0hodVBaL3MxRU5hWDZLc1ZyK1lOcmgxTmI3aXBSMFBFNXpiTlJlZ0NickhSVXc2WWYwN2RMQkpsMWY4S0I5YXMyVjFuTnFBc2w2MkxCQmhlaHdhbGVya0htQjFKRklFWktTRXVzZGw1SlFqMW5KbEhYU0NGMzQyZ0o5Q1lHclhlbGtuSklYcVZQOHNEK3F0cGxDUjNYSDJxZktxMHlnTXArS25Wa0t4TmxaOG0yWWtJbFZNaUNuWFV3bDdxem5CS1N2UXozbTNQdDZvUWJYTzViNUZpeENoL2ZIeFVRVy9BRWNLNnpDTnFLUW5MOXN5d3FtS3V3dnFTWXpUL2FQVk5OcFZ5aHZSVzIxYXFjaUNzamRXdkJ3SUxVdmg1VnlDemJXb0MxcEpqSjY4MENXc2wrdWRLQjZUNVJ3RzFtbG9obmxwYmc0N2l6NVU5aGEwRkd0bVJMRllCdE85OXk5N0FwMHorWkRUQW9nNmtTTFpzTUhnL0lGa2tncDZDcHZVMlUwY1lWU2RubWtqd0JkT21YYnhUV05XenVJYmlwTWlvVnhFY2taRW9haFNPaXkyTTNLMGpjQzFMaFZEd2FxRzBadmtjV3FDbnJHNEdJeHlrcnFsYldkdzZMUXlCYVpSOEhtTFJJaFFXc0hzd0Q0MlpYVkxOa2Y5bCtGbFcwSFZRMmx3RnNDL1oxRmR6bFFSMEthUGZvK0ZkZnUrL2R3VlJJQ3UxQ0dSN0FFSWlBaGMrQVpVRjBrT0JhUHhtVXFnNGk2NHZRblU0bkZEWUo5TnorMWZWWHZlSDlxbXIra1BJTHg4b0tjUlYvQkZieGJFMEpNVDBrU0Q0dzZML2xOWThvY3NxYWdWZFUzQTNNanhoeGNHdXF6c1BINGlycGFvdzFxNk95clZqdnA5TnBjNTlFOTFMbGRib1lWekpXZGltV2ZBVzJTTkVLY0RhWDJGbUJMTEEvdUt4bG1oaDYxM0lzMVVSUUFwYktmdHR3eEwwMnE2T254NXBReFNiUG9qQWcrdjVoQW5ONkxIVlJEWElzdkt0UmppUzBxSlV5WlRBWFZiQUs4MkVsRkpXYVFkVm9xVUMxVW50N0JWYVRRdWRNNlN1cWV4alFKTjQrMGljYXh2L3V0Ykt2ODNFVGJUOEg4Z2pjT0t4T0ptYlVhNk9PVlhodDNkRlk2ckh2OVhvTnpGTGNlRUExbzgrcEttMExBSFBIWjJyWUtqRnEwaGZaRml4c3FISmdEM2VENW4rVTBrYjFtRmpYa24ybHZNU1NPc05FL0NkSUFLRjBTeXRxNnVyT0hVTjVnd2c0R1pvc2dibWdnTTV1Y3JhMnFyUzJJZzFjYmlCQmN4WXpnelVETkxDdkw4R2JaWE5wNk9SeTNMbVMrS2s4M3pSSUFLNkExaW9LYTJJOU5hcEl1aVVGZGZDOTc2NlBGWlV0cVVyNktiV2srelpVMWEvWnJJWEV6dHJqVE9mejdod0t6aUNlWElhcmFIdGJaSU16KzJwR2dhekNtdzRxV0FGdkVkaG9kWXAwWHEwcFY3RzFZV1lXYk80cWhHcTQyK1o4Qll0ckxXdmx1TlBwWkFlYUZGUzF2dWJQZ2JneHNxY3BuQWFzekJvdkthRm9EUThCR3RqZlVPbDROQUcybm1RVjA0ZmVKZ3VtdlgyZnNyUUVXWmdoTDBKblZkWWtuM0RPWkllUk44NlJxUFdDbXN2R1ZxRU1Sbnd4UUF4d1M4RU1ZbzNJem1ZMitCQ2NMcDRNS2l1eXVoSW1hbWxiWkZjTm9ObDd0cCtSSGQxOFpqUUlSS3lYZEZSaE45OC9oeUtxd1hXTm83TzF3aWFYb0hOMTA4UkVaWldFcTZncm5JZmp6ZWc4amRSZjFYRUw0a2tYYTViQmpLeG9LYWxqQmplSGxWeFE0R2F5Y3BXNGxET0FLdG5UeEhBdE9mek90WndIQU03c3FWWGtWNnl1NmthcDFuSGtYS3FXRi80WEhxamVuTktxQmpwUjNsMWNoM0VqZzErRXNnZFFoc2RHMEI0Rk05c1dBVldwdUF5aXdUUGxlWnh0OVZ5WlZTMnFYZlJlV3FUQWlscHI5QXBvV1RqeHltaXQ3TndWNEpUcmlaeU9BOUIwazdIRmZVTG91cm1LWUhWblJRdnFHTDVITUhkcUZjUjJxV3BtY0s2ZVR3eDJkaXBXcnZpRGlscitmS1dxM09XUldkSEt3QTRldTh3amNoYmVSekZpbHFqalpOM3VmQ3Bma0owL3NjVnBuWWs2TDBQSTc3bHhkV0NaODdXaVdtN0IvQUdxdVFTbnVqR0tzQjhDSm1pSnE4cTFwS0lWV3lxT2lUSzY2cjE4Qk44cjc0L0FFNzFmZEMzeVBTMk14ZE9wbkUxdGxWeEQ5Sm1WT29nZ04rcjRQakFYVkZQYTNFZzVqVkpHRlZVR05vbEgyMEdWclVCN0JPeVNXcTZXcVlRZFdSOTJwY0ZNWU13Y2tiU2dDS0NxRDY3RGlpV3UxZzhNUUM5QnlmY0ZxVzFMK2pMNzE0cU5DdXpub1N4dDBkYTJndFdOMUc4RjBCSzBOTjBudWltZWxVRjlkSWRBZmpPNDRVVDNDalFMb1VlTEhKRlRPM2dtcFJ1SUlPdndCUUNicU5lbzNxdFo5aUY2eFZLMTNHUmxvNHpxaW1xK0NHZFRpUjF1Ulk4b3FnRTAyaFpCYTc5a1pYUE1xdXhSSEtsYTJzYVpXTjRtUnFaVWowdkxDS2hraktucU9RSE51U1pWSm9LdkFxUzF3cEVxdXZXREMxQjJ5cHdyQ1BzUk1FUFZUT0RNTEpNRHY2cWVLWHdpMkpZVjVTcTRxS3l2Z0dzSENMaXVqMmpSNTlWOGdNcVNKMkZKWlJYRUhWUkhqM3NGUHJjdDZPcHFsVzFHcGF0UWR0MEd2d2ZNNm42M0luc0dWRmhKR2FCcWdxcUlWNklzWGxsWmd5U1BxNFIzYm50M3dpNWN2K2NOMnlxUUxXMVQ5NUtZVnNXV3RLazRjQjlXNTNXUVFmbFFZUjZXbDRIYUpaanZWRTBENXl2cStSS2daQ3M1cWRCRVA1c0Q5NGNBdlFMbFNnTmFTTUF0SHg4OEJ1TlE0MXpkRnNYMzB6S2JjczBNTEQvaWhrcFF6bDB3aVRxS0xUZmJLbUNteVlJQ25LMEliYWllQzRDRzlpU3lMUTdjSU1HUXdhdTZUS29xNjBBcGwzV040MExacGNhMUNLS0s5VlF5eUlFbjh3MEY4RjZDTDJoOG8zaXhHd0M3czdFV3pDT3FtY0FwWXhZRDRqc0F6VlMwc2wydDk4cEE3dnJLb3BoQ1ZTb25iWXBnSDZtdlNuMjRwVEJWNHNkdFYzQnRNcTVrODJ5K0lBRHZVSjB1QWxrQ1ZUeElhUG0rVU51L3FrVjRGMVR6SFhDR3JYSUFxSXRCS3lwcUs5OVZ0QU9WczY0TzRPYlg3cEhMVkNwWUhjUm13dkxSN1R2WUFLQkJONThMR1Z6RHVGeitoUWJXZ25jUXlDWkFrK1Zic1BTb3VmOTMyNjFpWmdtZkNwd1JiQXZxbVNxcmlVMlB3aGphb095WXF0SWVnVlhWaVRzbXl0YTZiR3lTcFkzZ3lScnBJeUFlYVdERHh0cHNYd0t5YWxNREtOUDdZQlhNcUVza1VzaTJ1QzhGTkFQeEFLVFZmVDFvNlZ6TTBFMGpGKzFyV2NVdUh2ZHlnN3Znb0ZwbFg4SHB2SHBNQ09NUlVQSHpaa0luc3FsRktOWC9FSU81MkUwU3hTek93b2IyVm1STFc1RDFYSVUwcmJnTTFBeldneUM3ZmU4Rzd4VUFLL3RhRUJhdDdsdXF0eVA3RW1zYUpRT2o1Rittcm5aZkN1WUNmQlVBV3dTaHlkNnBNWS92QUhHMVVxT1lwYkkvZ3k1VDBDTUttK1VPM2dGdUM4NWRnZkRWZWd1UERmSVRySUJMc0xyY2dkaDNDRmdGWmphS0o0SXYzRjhBTkVxdnV4UjF0VktPZ0xvQ2Exanhib0JBa2o2djdqL2ljRmJBN2Y0cmZSblFETFJWaUcxM2kwdnFCUXJZVnFCYkFEWlQwWnBpSG9TenZRcG9wS0lGUzNzRTFIZkJXbEhYZDBIN0xuQXJxdm91Z010bGpIQmdabmgzRW96L0JLakxNTDRaMkFxMCtoRUpyOWphVlVCYnZOekNJVWlyb0M3QVdtbUZ3NG81QUszTXRCNVZ5cFpNU0ZnczA1SnlHVndsd0Jxc0VHQUFhMlpVMUNqVWV4WEdzRTRyS3JpaWxCdkZ6T0tLbzNBdUFyb0U2UUZRVTN1OFlwTlh3UzVrKzFUWnQ1VXJ3b3VONEtpVUV3K2szWldEcDFSWEhOUnFYYjIxVHMzOTk0NXlaU2czVm5aRk5ROUNGM1hlWnlyNURnQlhLaXdDTWEyTXhlVERZWGdQMUZzZjlRTktaYzBrODFSSmszcjZFUTNyQ21CVnlMTDc1RWpaMXBJVkRIb0Z0aU9BSG9CMEJkVFZ5bHFCc0tLS1MrQWVCWEpWTFkrQ1hBU3VHdk8vQXVxN0d1RWpEZkdLZzFvS2Exei9kbW1pOUk5U1VHTmhsMEF0ZnVsSEFhd29Zcm5Ta21OWEFWdUdFaHJFVlh2VUYrQTVDdDJQcU5PakRldHluYTRDbWVVb2xtZVhMTjRBcTdDNVNqMTBRN3lqZ2wrdDZDTnhTUkhtSTVYK0Nwd3JlWUIzUWZkcW5hNHEyMUtkQnVjNEdvWnNuNDlaT09pVmlud0hxSzlXemp2Z2V3ZUVoMkFVNSt2dHhaOUNkOVdxa2g0OVYxOEU1b2o2dlZ5bjBSU3RBeUdJTzVlZFhSS2Q1QjBWR1ZYcTJ5cjN4WXArNVV0K0M0UUo0UDFOMzM5cFFNalJlamo0dmIvRGNyNnJRYzNPLzByam10WnBlWUNCaUNIZkNlbVJiTmhiSy9wTlVQYzN3Zkt5NWYyRDdPbEwzL3VQaHZlL29VNFQwRjhmK1ZOTTJ2eW9pdjBqSytLSFFmZEhxKzBibmN6NG96NzMvK1k2TGJLdzFvLzVCN2VPZjFSbC8wZHU5Qjl0bi85YnZyZi9qK3YwaDZ0dG4ydHAvci80ODE5eTQvenY1MzkxdXZ6emZ3RGlmejZwaFQxTVBnQUFBQUJKUlU1RXJrSmdnZz09KX0uY29sb3ItcGlja2VyIC5jcC1hZGQtY29sb3ItYnV0dG9uLWNsYXNze3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6aW5saW5lO3BhZGRpbmc6MDttYXJnaW46M3B4IC0zcHg7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uY29sb3ItcGlja2VyIC5jcC1hZGQtY29sb3ItYnV0dG9uLWNsYXNzOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LmNvbG9yLXBpY2tlciAuY3AtYWRkLWNvbG9yLWJ1dHRvbi1jbGFzczpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7Y29sb3I6Izk5OX0uY29sb3ItcGlja2VyIC5jcC1hZGQtY29sb3ItYnV0dG9uLWNsYXNzOmRpc2FibGVkOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5jb2xvci1waWNrZXIgLmNwLXJlbW92ZS1jb2xvci1idXR0b24tY2xhc3N7cG9zaXRpb246YWJzb2x1dGU7dG9wOi01cHg7cmlnaHQ6LTVweDtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHg7Ym9yZGVyLXJhZGl1czo1MCU7Y3Vyc29yOnBvaW50ZXI7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZDojZmZmO2JveC1zaGFkb3c6MXB4IDFweCA1cHggIzMzM30uY29sb3ItcGlja2VyIC5jcC1yZW1vdmUtY29sb3ItYnV0dG9uLWNsYXNzOmJlZm9yZXtjb250ZW50OiJ4Ijtwb3NpdGlvbjpyZWxhdGl2ZTtib3R0b206My41cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjEwcHh9LmNvbG9yLXBpY2tlciAuZXllZHJvcHBlci1pY29ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO2ZpbGw6I2ZmZjttaXgtYmxlbmQtbW9kZTpleGNsdXNpb259XG4nXSxlbmNhcHN1bGF0aW9uOjJ9KSxufSkoKSxCbmU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscixvLGEscyl7dGhpcy5pbmplY3Rvcj1lLHRoaXMuY2ZyPWksdGhpcy5hcHBSZWY9cix0aGlzLnZjUmVmPW8sdGhpcy5lbFJlZj1hLHRoaXMuX3NlcnZpY2U9cyx0aGlzLmRpYWxvZ0NyZWF0ZWQ9ITEsdGhpcy5pZ25vcmVDaGFuZ2VzPSExLHRoaXMudmlld0F0dGFjaGVkVG9BcHBSZWY9ITEsdGhpcy5jcFdpZHRoPSIyMzBweCIsdGhpcy5jcEhlaWdodD0iYXV0byIsdGhpcy5jcFRvZ2dsZT0hMSx0aGlzLmNwRGlzYWJsZWQ9ITEsdGhpcy5jcElnbm9yZWRFbGVtZW50cz1bXSx0aGlzLmNwRmFsbGJhY2tDb2xvcj0iIix0aGlzLmNwQ29sb3JNb2RlPSJjb2xvciIsdGhpcy5jcENteWtFbmFibGVkPSExLHRoaXMuY3BPdXRwdXRGb3JtYXQ9ImF1dG8iLHRoaXMuY3BBbHBoYUNoYW5uZWw9ImVuYWJsZWQiLHRoaXMuY3BEaXNhYmxlSW5wdXQ9ITEsdGhpcy5jcERpYWxvZ0Rpc3BsYXk9InBvcHVwIix0aGlzLmNwU2F2ZUNsaWNrT3V0c2lkZT0hMCx0aGlzLmNwQ2xvc2VDbGlja091dHNpZGU9ITAsdGhpcy5jcFVzZVJvb3RWaWV3Q29udGFpbmVyPSExLHRoaXMuY3BQb3NpdGlvbj0iYXV0byIsdGhpcy5jcFBvc2l0aW9uT2Zmc2V0PSIwJSIsdGhpcy5jcFBvc2l0aW9uUmVsYXRpdmVUb0Fycm93PSExLHRoaXMuY3BPS0J1dHRvbj0hMSx0aGlzLmNwT0tCdXR0b25UZXh0PSJPSyIsdGhpcy5jcE9LQnV0dG9uQ2xhc3M9ImNwLW9rLWJ1dHRvbi1jbGFzcyIsdGhpcy5jcENhbmNlbEJ1dHRvbj0hMSx0aGlzLmNwQ2FuY2VsQnV0dG9uVGV4dD0iQ2FuY2VsIix0aGlzLmNwQ2FuY2VsQnV0dG9uQ2xhc3M9ImNwLWNhbmNlbC1idXR0b24tY2xhc3MiLHRoaXMuY3BFeWVEcm9wcGVyPSExLHRoaXMuY3BQcmVzZXRMYWJlbD0iUHJlc2V0IGNvbG9ycyIsdGhpcy5jcFByZXNldENvbG9yc0NsYXNzPSJjcC1wcmVzZXQtY29sb3JzLWNsYXNzIix0aGlzLmNwTWF4UHJlc2V0Q29sb3JzTGVuZ3RoPTYsdGhpcy5jcFByZXNldEVtcHR5TWVzc2FnZT0iTm8gY29sb3JzIGFkZGVkIix0aGlzLmNwUHJlc2V0RW1wdHlNZXNzYWdlQ2xhc3M9InByZXNldC1lbXB0eS1tZXNzYWdlIix0aGlzLmNwQWRkQ29sb3JCdXR0b249ITEsdGhpcy5jcEFkZENvbG9yQnV0dG9uVGV4dD0iQWRkIGNvbG9yIix0aGlzLmNwQWRkQ29sb3JCdXR0b25DbGFzcz0iY3AtYWRkLWNvbG9yLWJ1dHRvbi1jbGFzcyIsdGhpcy5jcFJlbW92ZUNvbG9yQnV0dG9uQ2xhc3M9ImNwLXJlbW92ZS1jb2xvci1idXR0b24tY2xhc3MiLHRoaXMuY3BJbnB1dENoYW5nZT1uZXcgRighMCksdGhpcy5jcFRvZ2dsZUNoYW5nZT1uZXcgRighMCksdGhpcy5jcFNsaWRlckNoYW5nZT1uZXcgRighMCksdGhpcy5jcFNsaWRlckRyYWdFbmQ9bmV3IEYoITApLHRoaXMuY3BTbGlkZXJEcmFnU3RhcnQ9bmV3IEYoITApLHRoaXMuY29sb3JQaWNrZXJPcGVuPW5ldyBGKCEwKSx0aGlzLmNvbG9yUGlja2VyQ2xvc2U9bmV3IEYoITApLHRoaXMuY29sb3JQaWNrZXJDYW5jZWw9bmV3IEYoITApLHRoaXMuY29sb3JQaWNrZXJTZWxlY3Q9bmV3IEYoITApLHRoaXMuY29sb3JQaWNrZXJDaGFuZ2U9bmV3IEYoITEpLHRoaXMuY3BDbXlrQ29sb3JDaGFuZ2U9bmV3IEYoITApLHRoaXMuY3BQcmVzZXRDb2xvcnNDaGFuZ2U9bmV3IEYoITApfWhhbmRsZUNsaWNrKCl7dGhpcy5pbnB1dEZvY3VzKCl9aGFuZGxlRm9jdXMoKXt0aGlzLmlucHV0Rm9jdXMoKX1oYW5kbGVJbnB1dChlKXt0aGlzLmlucHV0Q2hhbmdlKGUpfW5nT25EZXN0cm95KCl7bnVsbCE9dGhpcy5jbXBSZWYmJih0aGlzLnZpZXdBdHRhY2hlZFRvQXBwUmVmJiZ0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuY21wUmVmLmhvc3RWaWV3KSx0aGlzLmNtcFJlZi5kZXN0cm95KCksdGhpcy5jbXBSZWY9bnVsbCx0aGlzLmRpYWxvZz1udWxsKX1uZ09uQ2hhbmdlcyhlKXtlLmNwVG9nZ2xlJiYhdGhpcy5jcERpc2FibGVkJiYoZS5jcFRvZ2dsZS5jdXJyZW50VmFsdWU/dGhpcy5vcGVuRGlhbG9nKCk6ZS5jcFRvZ2dsZS5jdXJyZW50VmFsdWV8fHRoaXMuY2xvc2VEaWFsb2coKSksZS5jb2xvclBpY2tlciYmKHRoaXMuZGlhbG9nJiYhdGhpcy5pZ25vcmVDaGFuZ2VzJiYoImlubGluZSI9PT10aGlzLmNwRGlhbG9nRGlzcGxheSYmdGhpcy5kaWFsb2cuc2V0SW5pdGlhbENvbG9yKGUuY29sb3JQaWNrZXIuY3VycmVudFZhbHVlKSx0aGlzLmRpYWxvZy5zZXRDb2xvckZyb21TdHJpbmcoZS5jb2xvclBpY2tlci5jdXJyZW50VmFsdWUsITEpLHRoaXMuY3BVc2VSb290Vmlld0NvbnRhaW5lciYmImlubGluZSIhPT10aGlzLmNwRGlhbG9nRGlzcGxheSYmdGhpcy5jbXBSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpKSx0aGlzLmlnbm9yZUNoYW5nZXM9ITEpLChlLmNwUHJlc2V0TGFiZWx8fGUuY3BQcmVzZXRDb2xvcnMpJiZ0aGlzLmRpYWxvZyYmdGhpcy5kaWFsb2cuc2V0UHJlc2V0Q29uZmlnKHRoaXMuY3BQcmVzZXRMYWJlbCx0aGlzLmNwUHJlc2V0Q29sb3JzKX1vcGVuRGlhbG9nKCl7aWYodGhpcy5kaWFsb2dDcmVhdGVkKXRoaXMuZGlhbG9nJiZ0aGlzLmRpYWxvZy5vcGVuRGlhbG9nKHRoaXMuY29sb3JQaWNrZXIpO2Vsc2V7bGV0IGU9dGhpcy52Y1JlZjtpZih0aGlzLmRpYWxvZ0NyZWF0ZWQ9ITAsdGhpcy52aWV3QXR0YWNoZWRUb0FwcFJlZj0hMSx0aGlzLmNwVXNlUm9vdFZpZXdDb250YWluZXImJiJpbmxpbmUiIT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkpe2xldCBvPXRoaXMuaW5qZWN0b3IuZ2V0KHRoaXMuYXBwUmVmLmNvbXBvbmVudFR5cGVzWzBdLHdpLk5VTEwpO28hPT13aS5OVUxMP2U9by52Y1JlZnx8by52aWV3Q29udGFpbmVyUmVmfHx0aGlzLnZjUmVmOnRoaXMudmlld0F0dGFjaGVkVG9BcHBSZWY9ITB9bGV0IGk9dGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoRDRlKTtpZih0aGlzLnZpZXdBdHRhY2hlZFRvQXBwUmVmKXRoaXMuY21wUmVmPWkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpLHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5jbXBSZWYuaG9zdFZpZXcpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5jbXBSZWYuaG9zdFZpZXcucm9vdE5vZGVzWzBdKTtlbHNle2xldCByPXdpLmNyZWF0ZSh7cHJvdmlkZXJzOltdLHBhcmVudDplLmluamVjdG9yfSk7dGhpcy5jbXBSZWY9ZS5jcmVhdGVDb21wb25lbnQoaSwwLHIsW10pfXRoaXMuY21wUmVmLmluc3RhbmNlLnNldHVwRGlhbG9nKHRoaXMsdGhpcy5lbFJlZix0aGlzLmNvbG9yUGlja2VyLHRoaXMuY3BXaWR0aCx0aGlzLmNwSGVpZ2h0LHRoaXMuY3BEaWFsb2dEaXNwbGF5LHRoaXMuY3BGYWxsYmFja0NvbG9yLHRoaXMuY3BDb2xvck1vZGUsdGhpcy5jcENteWtFbmFibGVkLHRoaXMuY3BBbHBoYUNoYW5uZWwsdGhpcy5jcE91dHB1dEZvcm1hdCx0aGlzLmNwRGlzYWJsZUlucHV0LHRoaXMuY3BJZ25vcmVkRWxlbWVudHMsdGhpcy5jcFNhdmVDbGlja091dHNpZGUsdGhpcy5jcENsb3NlQ2xpY2tPdXRzaWRlLHRoaXMuY3BVc2VSb290Vmlld0NvbnRhaW5lcix0aGlzLmNwUG9zaXRpb24sdGhpcy5jcFBvc2l0aW9uT2Zmc2V0LHRoaXMuY3BQb3NpdGlvblJlbGF0aXZlVG9BcnJvdyx0aGlzLmNwUHJlc2V0TGFiZWwsdGhpcy5jcFByZXNldENvbG9ycyx0aGlzLmNwUHJlc2V0Q29sb3JzQ2xhc3MsdGhpcy5jcE1heFByZXNldENvbG9yc0xlbmd0aCx0aGlzLmNwUHJlc2V0RW1wdHlNZXNzYWdlLHRoaXMuY3BQcmVzZXRFbXB0eU1lc3NhZ2VDbGFzcyx0aGlzLmNwT0tCdXR0b24sdGhpcy5jcE9LQnV0dG9uQ2xhc3MsdGhpcy5jcE9LQnV0dG9uVGV4dCx0aGlzLmNwQ2FuY2VsQnV0dG9uLHRoaXMuY3BDYW5jZWxCdXR0b25DbGFzcyx0aGlzLmNwQ2FuY2VsQnV0dG9uVGV4dCx0aGlzLmNwQWRkQ29sb3JCdXR0b24sdGhpcy5jcEFkZENvbG9yQnV0dG9uQ2xhc3MsdGhpcy5jcEFkZENvbG9yQnV0dG9uVGV4dCx0aGlzLmNwUmVtb3ZlQ29sb3JCdXR0b25DbGFzcyx0aGlzLmNwRXllRHJvcHBlcix0aGlzLmVsUmVmLHRoaXMuY3BFeHRyYVRlbXBsYXRlKSx0aGlzLmRpYWxvZz10aGlzLmNtcFJlZi5pbnN0YW5jZSx0aGlzLnZjUmVmIT09ZSYmdGhpcy5jbXBSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpfX1jbG9zZURpYWxvZygpe3RoaXMuZGlhbG9nJiYicG9wdXAiPT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMuZGlhbG9nLmNsb3NlRGlhbG9nKCl9Y215a0NoYW5nZWQoZSl7dGhpcy5jcENteWtDb2xvckNoYW5nZS5lbWl0KGUpfXN0YXRlQ2hhbmdlZChlKXt0aGlzLmNwVG9nZ2xlQ2hhbmdlLmVtaXQoZSksZT90aGlzLmNvbG9yUGlja2VyT3Blbi5lbWl0KHRoaXMuY29sb3JQaWNrZXIpOnRoaXMuY29sb3JQaWNrZXJDbG9zZS5lbWl0KHRoaXMuY29sb3JQaWNrZXIpfWNvbG9yQ2hhbmdlZChlLGk9ITApe3RoaXMuaWdub3JlQ2hhbmdlcz1pLHRoaXMuY29sb3JQaWNrZXJDaGFuZ2UuZW1pdChlKX1jb2xvclNlbGVjdGVkKGUpe3RoaXMuY29sb3JQaWNrZXJTZWxlY3QuZW1pdChlKX1jb2xvckNhbmNlbGVkKCl7dGhpcy5jb2xvclBpY2tlckNhbmNlbC5lbWl0KCl9aW5wdXRGb2N1cygpe2xldCBlPXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxpPXRoaXMuY3BJZ25vcmVkRWxlbWVudHMuZmlsdGVyKHI9PnI9PT1lKTshdGhpcy5jcERpc2FibGVkJiYhaS5sZW5ndGgmJih0eXBlb2YgZG9jdW1lbnQ8InUiJiZlPT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD90aGlzLm9wZW5EaWFsb2coKTp0aGlzLmRpYWxvZyYmdGhpcy5kaWFsb2cuc2hvdz90aGlzLmNsb3NlRGlhbG9nKCk6dGhpcy5vcGVuRGlhbG9nKCkpfWlucHV0Q2hhbmdlKGUpe3RoaXMuZGlhbG9nP3RoaXMuZGlhbG9nLnNldENvbG9yRnJvbVN0cmluZyhlLnRhcmdldC52YWx1ZSwhMCk6KHRoaXMuY29sb3JQaWNrZXI9ZS50YXJnZXQudmFsdWUsdGhpcy5jb2xvclBpY2tlckNoYW5nZS5lbWl0KHRoaXMuY29sb3JQaWNrZXIpKX1pbnB1dENoYW5nZWQoZSl7dGhpcy5jcElucHV0Q2hhbmdlLmVtaXQoZSl9c2xpZGVyQ2hhbmdlZChlKXt0aGlzLmNwU2xpZGVyQ2hhbmdlLmVtaXQoZSl9c2xpZGVyRHJhZ0VuZChlKXt0aGlzLmNwU2xpZGVyRHJhZ0VuZC5lbWl0KGUpfXNsaWRlckRyYWdTdGFydChlKXt0aGlzLmNwU2xpZGVyRHJhZ1N0YXJ0LmVtaXQoZSl9cHJlc2V0Q29sb3JzQ2hhbmdlZChlKXt0aGlzLmNwUHJlc2V0Q29sb3JzQ2hhbmdlLmVtaXQoZSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMod2kpLEMoaG8pLEMoZ2MpLEMoZWkpLEMoeGUpLEMoU1YpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siIiwiY29sb3JQaWNrZXIiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MSZlJiZBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaS5oYW5kbGVDbGljaygpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBpLmhhbmRsZUZvY3VzKCl9KSgiaW5wdXQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLmhhbmRsZUlucHV0KG8pfSl9LGlucHV0czp7Y29sb3JQaWNrZXI6ImNvbG9yUGlja2VyIixjcFdpZHRoOiJjcFdpZHRoIixjcEhlaWdodDoiY3BIZWlnaHQiLGNwVG9nZ2xlOiJjcFRvZ2dsZSIsY3BEaXNhYmxlZDoiY3BEaXNhYmxlZCIsY3BJZ25vcmVkRWxlbWVudHM6ImNwSWdub3JlZEVsZW1lbnRzIixjcEZhbGxiYWNrQ29sb3I6ImNwRmFsbGJhY2tDb2xvciIsY3BDb2xvck1vZGU6ImNwQ29sb3JNb2RlIixjcENteWtFbmFibGVkOiJjcENteWtFbmFibGVkIixjcE91dHB1dEZvcm1hdDoiY3BPdXRwdXRGb3JtYXQiLGNwQWxwaGFDaGFubmVsOiJjcEFscGhhQ2hhbm5lbCIsY3BEaXNhYmxlSW5wdXQ6ImNwRGlzYWJsZUlucHV0IixjcERpYWxvZ0Rpc3BsYXk6ImNwRGlhbG9nRGlzcGxheSIsY3BTYXZlQ2xpY2tPdXRzaWRlOiJjcFNhdmVDbGlja091dHNpZGUiLGNwQ2xvc2VDbGlja091dHNpZGU6ImNwQ2xvc2VDbGlja091dHNpZGUiLGNwVXNlUm9vdFZpZXdDb250YWluZXI6ImNwVXNlUm9vdFZpZXdDb250YWluZXIiLGNwUG9zaXRpb246ImNwUG9zaXRpb24iLGNwUG9zaXRpb25PZmZzZXQ6ImNwUG9zaXRpb25PZmZzZXQiLGNwUG9zaXRpb25SZWxhdGl2ZVRvQXJyb3c6ImNwUG9zaXRpb25SZWxhdGl2ZVRvQXJyb3ciLGNwT0tCdXR0b246ImNwT0tCdXR0b24iLGNwT0tCdXR0b25UZXh0OiJjcE9LQnV0dG9uVGV4dCIsY3BPS0J1dHRvbkNsYXNzOiJjcE9LQnV0dG9uQ2xhc3MiLGNwQ2FuY2VsQnV0dG9uOiJjcENhbmNlbEJ1dHRvbiIsY3BDYW5jZWxCdXR0b25UZXh0OiJjcENhbmNlbEJ1dHRvblRleHQiLGNwQ2FuY2VsQnV0dG9uQ2xhc3M6ImNwQ2FuY2VsQnV0dG9uQ2xhc3MiLGNwRXllRHJvcHBlcjoiY3BFeWVEcm9wcGVyIixjcFByZXNldExhYmVsOiJjcFByZXNldExhYmVsIixjcFByZXNldENvbG9yczoiY3BQcmVzZXRDb2xvcnMiLGNwUHJlc2V0Q29sb3JzQ2xhc3M6ImNwUHJlc2V0Q29sb3JzQ2xhc3MiLGNwTWF4UHJlc2V0Q29sb3JzTGVuZ3RoOiJjcE1heFByZXNldENvbG9yc0xlbmd0aCIsY3BQcmVzZXRFbXB0eU1lc3NhZ2U6ImNwUHJlc2V0RW1wdHlNZXNzYWdlIixjcFByZXNldEVtcHR5TWVzc2FnZUNsYXNzOiJjcFByZXNldEVtcHR5TWVzc2FnZUNsYXNzIixjcEFkZENvbG9yQnV0dG9uOiJjcEFkZENvbG9yQnV0dG9uIixjcEFkZENvbG9yQnV0dG9uVGV4dDoiY3BBZGRDb2xvckJ1dHRvblRleHQiLGNwQWRkQ29sb3JCdXR0b25DbGFzczoiY3BBZGRDb2xvckJ1dHRvbkNsYXNzIixjcFJlbW92ZUNvbG9yQnV0dG9uQ2xhc3M6ImNwUmVtb3ZlQ29sb3JCdXR0b25DbGFzcyIsY3BFeHRyYVRlbXBsYXRlOiJjcEV4dHJhVGVtcGxhdGUifSxvdXRwdXRzOntjcElucHV0Q2hhbmdlOiJjcElucHV0Q2hhbmdlIixjcFRvZ2dsZUNoYW5nZToiY3BUb2dnbGVDaGFuZ2UiLGNwU2xpZGVyQ2hhbmdlOiJjcFNsaWRlckNoYW5nZSIsY3BTbGlkZXJEcmFnRW5kOiJjcFNsaWRlckRyYWdFbmQiLGNwU2xpZGVyRHJhZ1N0YXJ0OiJjcFNsaWRlckRyYWdTdGFydCIsY29sb3JQaWNrZXJPcGVuOiJjb2xvclBpY2tlck9wZW4iLGNvbG9yUGlja2VyQ2xvc2U6ImNvbG9yUGlja2VyQ2xvc2UiLGNvbG9yUGlja2VyQ2FuY2VsOiJjb2xvclBpY2tlckNhbmNlbCIsY29sb3JQaWNrZXJTZWxlY3Q6ImNvbG9yUGlja2VyU2VsZWN0Iixjb2xvclBpY2tlckNoYW5nZToiY29sb3JQaWNrZXJDaGFuZ2UiLGNwQ215a0NvbG9yQ2hhbmdlOiJjcENteWtDb2xvckNoYW5nZSIsY3BQcmVzZXRDb2xvcnNDaGFuZ2U6ImNwUHJlc2V0Q29sb3JzQ2hhbmdlIn0sZXhwb3J0QXM6WyJuZ3hDb2xvclBpY2tlciJdLGZlYXR1cmVzOltxdF19KSxufSkoKSxWbmU9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe3Byb3ZpZGVyczpbU1ZdLGltcG9ydHM6W0RlXX0pLG59KSgpO2Z1bmN0aW9uIFI0ZShuLHQpezEmbiYmKGYoMCwic3BhbiIsOCksVHQoMSwxKSxnKCkpfWZ1bmN0aW9uIFA0ZShuLHQpezEmbiYmKGYoMCwic3BhbiIsOSksVHQoMSwyKSxnKCkpfXZhciBVbmU9WyIqIixbWyJtYXQtY2hpcC1hdmF0YXIiXSxbIiIsIm1hdENoaXBBdmF0YXIiLCIiXV0sW1sibWF0LWNoaXAtdHJhaWxpbmctaWNvbiJdLFsiIiwibWF0Q2hpcFJlbW92ZSIsIiJdLFsiIiwibWF0Q2hpcFRyYWlsaW5nSWNvbiIsIiJdXV0sam5lPVsiKiIsIm1hdC1jaGlwLWF2YXRhciwgW21hdENoaXBBdmF0YXJdIiwibWF0LWNoaXAtdHJhaWxpbmctaWNvbixbbWF0Q2hpcFJlbW92ZV0sW21hdENoaXBUcmFpbGluZ0ljb25dIl07ZnVuY3Rpb24gazRlKG4sdCl7MSZuJiYoZigwLCJzcGFuIiw5KSxUdCgxLDEpLGYoMiwic3BhbiIsMTApLHFuKCksZigzLCJzdmciLDExKSxrKDQsInBhdGgiLDEyKSxnKCkoKSgpKX1mdW5jdGlvbiBPNGUobix0KXsxJm4mJihmKDAsInNwYW4iLDEzKSxUdCgxLDIpLGcoKSl9dmFyIEduZT1bIioiXSxSVj1uZXcgdGUoIm1hdC1jaGlwcy1kZWZhdWx0LW9wdGlvbnMiKSxIbmU9bmV3IHRlKCJNYXRDaGlwQXZhdGFyIiksem5lPW5ldyB0ZSgiTWF0Q2hpcFRyYWlsaW5nSWNvbiIpLEVWPW5ldyB0ZSgiTWF0Q2hpcFJlbW92ZSIpLFBWPW5ldyB0ZSgiTWF0Q2hpcCIpLEw0ZT1EYyhjbGFzc3t9LC0xKSx2QT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgTDRle2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLl9kaXNhYmxlZHx8dGhpcy5fcGFyZW50Q2hpcC5kaXNhYmxlZH1zZXQgZGlzYWJsZWQoZSl7dGhpcy5fZGlzYWJsZWQ9dnQoZSl9X2dldERpc2FibGVkQXR0cmlidXRlKCl7cmV0dXJuIHRoaXMuZGlzYWJsZWQmJiF0aGlzLl9hbGxvd0ZvY3VzV2hlbkRpc2FibGVkPyIiOm51bGx9X2dldFRhYmluZGV4KCl7cmV0dXJuIHRoaXMuZGlzYWJsZWQmJiF0aGlzLl9hbGxvd0ZvY3VzV2hlbkRpc2FibGVkfHwhdGhpcy5pc0ludGVyYWN0aXZlP251bGw6dGhpcy50YWJJbmRleC50b1N0cmluZygpfWNvbnN0cnVjdG9yKGUsaSl7c3VwZXIoKSx0aGlzLl9lbGVtZW50UmVmPWUsdGhpcy5fcGFyZW50Q2hpcD1pLHRoaXMuaXNJbnRlcmFjdGl2ZT0hMCx0aGlzLl9pc1ByaW1hcnk9ITAsdGhpcy5fZGlzYWJsZWQ9ITEsdGhpcy5fYWxsb3dGb2N1c1doZW5EaXNhYmxlZD0hMSwiQlVUVE9OIj09PWUubmF0aXZlRWxlbWVudC5ub2RlTmFtZSYmZS5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgidHlwZSIsImJ1dHRvbiIpfWZvY3VzKCl7dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCl9X2hhbmRsZUNsaWNrKGUpeyF0aGlzLmRpc2FibGVkJiZ0aGlzLmlzSW50ZXJhY3RpdmUmJnRoaXMuX2lzUHJpbWFyeSYmKGUucHJldmVudERlZmF1bHQoKSx0aGlzLl9wYXJlbnRDaGlwLl9oYW5kbGVQcmltYXJ5QWN0aW9uSW50ZXJhY3Rpb24oKSl9X2hhbmRsZUtleWRvd24oZSl7KDEzPT09ZS5rZXlDb2RlfHwzMj09PWUua2V5Q29kZSkmJiF0aGlzLmRpc2FibGVkJiZ0aGlzLmlzSW50ZXJhY3RpdmUmJnRoaXMuX2lzUHJpbWFyeSYmIXRoaXMuX3BhcmVudENoaXAuX2lzRWRpdGluZyYmKGUucHJldmVudERlZmF1bHQoKSx0aGlzLl9wYXJlbnRDaGlwLl9oYW5kbGVQcmltYXJ5QWN0aW9uSW50ZXJhY3Rpb24oKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoeGUpLEMoUFYpKX0sbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siIiwibWF0Q2hpcEFjdGlvbiIsIiJdXSxob3N0QXR0cnM6WzEsIm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uIiwibWF0LW1kYy1jaGlwLWFjdGlvbiJdLGhvc3RWYXJzOjksaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MSZlJiZBKCJjbGljayIsZnVuY3Rpb24obyl7cmV0dXJuIGkuX2hhbmRsZUNsaWNrKG8pfSkoImtleWRvd24iLGZ1bmN0aW9uKG8pe3JldHVybiBpLl9oYW5kbGVLZXlkb3duKG8pfSksMiZlJiYoQmUoInRhYmluZGV4IixpLl9nZXRUYWJpbmRleCgpKSgiZGlzYWJsZWQiLGkuX2dldERpc2FibGVkQXR0cmlidXRlKCkpKCJhcmlhLWRpc2FibGVkIixpLmRpc2FibGVkKSxudCgibWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnkiLGkuX2lzUHJpbWFyeSkoIm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmVzZW50YXRpb25hbCIsIWkuaXNJbnRlcmFjdGl2ZSkoIm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS10cmFpbGluZyIsIWkuX2lzUHJpbWFyeSkpfSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCIsdGFiSW5kZXg6InRhYkluZGV4Iixpc0ludGVyYWN0aXZlOiJpc0ludGVyYWN0aXZlIixfYWxsb3dGb2N1c1doZW5EaXNhYmxlZDoiX2FsbG93Rm9jdXNXaGVuRGlzYWJsZWQifSxmZWF0dXJlczpbWGVdfSksbn0pKCksV25lPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyB2QXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5faXNQcmltYXJ5PSExfV9oYW5kbGVDbGljayhlKXt0aGlzLmRpc2FibGVkfHwoZS5zdG9wUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCksdGhpcy5fcGFyZW50Q2hpcC5yZW1vdmUoKSl9X2hhbmRsZUtleWRvd24oZSl7KDEzPT09ZS5rZXlDb2RlfHwzMj09PWUua2V5Q29kZSkmJiF0aGlzLmRpc2FibGVkJiYoZS5zdG9wUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCksdGhpcy5fcGFyZW50Q2hpcC5yZW1vdmUoKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4odHx8KHQ9WG4obikpKShpfHxuKX19KCksbi5cdTAyNzVkaXI9TWUoe3R5cGU6bixzZWxlY3RvcnM6W1siIiwibWF0Q2hpcFJlbW92ZSIsIiJdXSxob3N0QXR0cnM6WyJyb2xlIiwiYnV0dG9uIiwxLCJtYXQtbWRjLWNoaXAtcmVtb3ZlIiwibWF0LW1kYy1jaGlwLXRyYWlsaW5nLWljb24iLCJtYXQtbWRjLWZvY3VzLWluZGljYXRvciIsIm1kYy1ldm9sdXRpb24tY2hpcF9faWNvbiIsIm1kYy1ldm9sdXRpb24tY2hpcF9faWNvbi0tdHJhaWxpbmciXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezImZSYmQmUoImFyaWEtaGlkZGVuIixudWxsKX0sZmVhdHVyZXM6W1Z0KFt7cHJvdmlkZTpFVix1c2VFeGlzdGluZzpufV0pLFhlXX0pLG59KSgpLEI0ZT0wLFY0ZT1EYyhLbyhnbyhhbyhjbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLl9lbGVtZW50UmVmPW59fSkpLCJwcmltYXJ5IiksLTEpLGVDPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBWNGV7X2hhc0ZvY3VzKCl7cmV0dXJuIHRoaXMuX2hhc0ZvY3VzSW50ZXJuYWx9Z2V0IHZhbHVlKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3ZhbHVlP3RoaXMuX3ZhbHVlOnRoaXMuX3RleHRFbGVtZW50LnRleHRDb250ZW50LnRyaW0oKX1zZXQgdmFsdWUoZSl7dGhpcy5fdmFsdWU9ZX1nZXQgcmVtb3ZhYmxlKCl7cmV0dXJuIHRoaXMuX3JlbW92YWJsZX1zZXQgcmVtb3ZhYmxlKGUpe3RoaXMuX3JlbW92YWJsZT12dChlKX1nZXQgaGlnaGxpZ2h0ZWQoKXtyZXR1cm4gdGhpcy5faGlnaGxpZ2h0ZWR9c2V0IGhpZ2hsaWdodGVkKGUpe3RoaXMuX2hpZ2hsaWdodGVkPXZ0KGUpfWNvbnN0cnVjdG9yKGUsaSxyLG8sYSxzLGwsYyl7c3VwZXIoaSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9ZSx0aGlzLl9uZ1pvbmU9cix0aGlzLl9mb2N1c01vbml0b3I9byx0aGlzLl9nbG9iYWxSaXBwbGVPcHRpb25zPWwsdGhpcy5faXNSaXBwbGVDZW50ZXJlZD0hMSx0aGlzLl9vbkZvY3VzPW5ldyBFZSx0aGlzLl9vbkJsdXI9bmV3IEVlLHRoaXMucm9sZT1udWxsLHRoaXMuX2hhc0ZvY3VzSW50ZXJuYWw9ITEsdGhpcy5pZD0ibWF0LW1kYy1jaGlwLSIrQjRlKyssdGhpcy5hcmlhTGFiZWw9bnVsbCx0aGlzLmFyaWFEZXNjcmlwdGlvbj1udWxsLHRoaXMuX2FyaWFEZXNjcmlwdGlvbklkPWAke3RoaXMuaWR9LWFyaWEtZGVzY3JpcHRpb25gLHRoaXMuX3JlbW92YWJsZT0hMCx0aGlzLl9oaWdobGlnaHRlZD0hMSx0aGlzLnJlbW92ZWQ9bmV3IEYsdGhpcy5kZXN0cm95ZWQ9bmV3IEYsdGhpcy5iYXNpY0NoaXBBdHRyTmFtZT0ibWF0LWJhc2ljLWNoaXAiLHRoaXMuX2RvY3VtZW50PWEsdGhpcy5fYW5pbWF0aW9uc0Rpc2FibGVkPSJOb29wQW5pbWF0aW9ucyI9PT1zLG51bGwhPWMmJih0aGlzLnRhYkluZGV4PXBhcnNlSW50KGMpPz90aGlzLmRlZmF1bHRUYWJJbmRleCksdGhpcy5fbW9uaXRvckZvY3VzKCl9bmdPbkluaXQoKXtsZXQgZT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7dGhpcy5faXNCYXNpY0NoaXA9ZS5oYXNBdHRyaWJ1dGUodGhpcy5iYXNpY0NoaXBBdHRyTmFtZSl8fGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09dGhpcy5iYXNpY0NoaXBBdHRyTmFtZX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl90ZXh0RWxlbWVudD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigiLm1hdC1tZGMtY2hpcC1hY3Rpb24tbGFiZWwiKSx0aGlzLl9wZW5kaW5nRm9jdXMmJih0aGlzLl9wZW5kaW5nRm9jdXM9ITEsdGhpcy5mb2N1cygpKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLl9hY3Rpb25DaGFuZ2VzPXRuKHRoaXMuX2FsbExlYWRpbmdJY29ucy5jaGFuZ2VzLHRoaXMuX2FsbFRyYWlsaW5nSWNvbnMuY2hhbmdlcyx0aGlzLl9hbGxSZW1vdmVJY29ucy5jaGFuZ2VzKS5zdWJzY3JpYmUoKCk9PnRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1uZ09uRGVzdHJveSgpe3RoaXMuX2ZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmKSx0aGlzLl9hY3Rpb25DaGFuZ2VzPy51bnN1YnNjcmliZSgpLHRoaXMuZGVzdHJveWVkLmVtaXQoe2NoaXA6dGhpc30pLHRoaXMuZGVzdHJveWVkLmNvbXBsZXRlKCl9cmVtb3ZlKCl7dGhpcy5yZW1vdmFibGUmJnRoaXMucmVtb3ZlZC5lbWl0KHtjaGlwOnRoaXN9KX1faXNSaXBwbGVEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVkfHx0aGlzLmRpc2FibGVSaXBwbGV8fHRoaXMuX2FuaW1hdGlvbnNEaXNhYmxlZHx8dGhpcy5faXNCYXNpY0NoaXB8fCEhdGhpcy5fZ2xvYmFsUmlwcGxlT3B0aW9ucz8uZGlzYWJsZWR9X2hhc1RyYWlsaW5nSWNvbigpe3JldHVybiEoIXRoaXMudHJhaWxpbmdJY29uJiYhdGhpcy5yZW1vdmVJY29uKX1faGFuZGxlS2V5ZG93bihlKXsoOD09PWUua2V5Q29kZXx8NDY9PT1lLmtleUNvZGUpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucmVtb3ZlKCkpfWZvY3VzKCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMucHJpbWFyeUFjdGlvbj90aGlzLnByaW1hcnlBY3Rpb24uZm9jdXMoKTp0aGlzLl9wZW5kaW5nRm9jdXM9ITApfV9nZXRTb3VyY2VBY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2dldEFjdGlvbnMoKS5maW5kKGk9PntsZXQgcj1pLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7cmV0dXJuIHI9PT1lfHxyLmNvbnRhaW5zKGUpfSl9X2dldEFjdGlvbnMoKXtsZXQgZT1bXTtyZXR1cm4gdGhpcy5wcmltYXJ5QWN0aW9uJiZlLnB1c2godGhpcy5wcmltYXJ5QWN0aW9uKSx0aGlzLnJlbW92ZUljb24mJmUucHVzaCh0aGlzLnJlbW92ZUljb24pLHRoaXMudHJhaWxpbmdJY29uJiZlLnB1c2godGhpcy50cmFpbGluZ0ljb24pLGV9X2hhbmRsZVByaW1hcnlBY3Rpb25JbnRlcmFjdGlvbigpe31fbW9uaXRvckZvY3VzKCl7dGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwhMCkuc3Vic2NyaWJlKGU9PntsZXQgaT1udWxsIT09ZTtpIT09dGhpcy5faGFzRm9jdXNJbnRlcm5hbCYmKHRoaXMuX2hhc0ZvY3VzSW50ZXJuYWw9aSxpP3RoaXMuX29uRm9jdXMubmV4dCh7Y2hpcDp0aGlzfSk6dGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUoTHQoMSkpLnN1YnNjcmliZSgoKT0+dGhpcy5fbmdab25lLnJ1bigoKT0+dGhpcy5fb25CbHVyLm5leHQoe2NoaXA6dGhpc30pKSkpfSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoUXQpLEMoeGUpLEMob3QpLEMoZm8pLEMoTnQpLEMocGksOCksQyhUaCw4KSxNbygidGFiaW5kZXgiKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sibWF0LWJhc2ljLWNoaXAiXSxbIiIsIm1hdC1iYXNpYy1jaGlwIiwiIl0sWyJtYXQtY2hpcCJdLFsiIiwibWF0LWNoaXAiLCIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oZSxpLHIpe2lmKDEmZSYmKEJuKHIsSG5lLDUpLEJuKHIsem5lLDUpLEJuKHIsRVYsNSksQm4ocixIbmUsNSksQm4ocix6bmUsNSksQm4ocixFViw1KSksMiZlKXtsZXQgbztiZShvPXZlKCkpJiYoaS5sZWFkaW5nSWNvbj1vLmZpcnN0KSxiZShvPXZlKCkpJiYoaS50cmFpbGluZ0ljb249by5maXJzdCksYmUobz12ZSgpKSYmKGkucmVtb3ZlSWNvbj1vLmZpcnN0KSxiZShvPXZlKCkpJiYoaS5fYWxsTGVhZGluZ0ljb25zPW8pLGJlKG89dmUoKSkmJihpLl9hbGxUcmFpbGluZ0ljb25zPW8pLGJlKG89dmUoKSkmJihpLl9hbGxSZW1vdmVJY29ucz1vKX19LHZpZXdRdWVyeTpmdW5jdGlvbihlLGkpe2lmKDEmZSYmKFVlKEtpLDUpLFVlKHZBLDUpKSwyJmUpe2xldCByO2JlKHI9dmUoKSkmJihpLnJpcHBsZT1yLmZpcnN0KSxiZShyPXZlKCkpJiYoaS5wcmltYXJ5QWN0aW9uPXIuZmlyc3QpfX0saG9zdEF0dHJzOlsxLCJtYXQtbWRjLWNoaXAiXSxob3N0VmFyczozMCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsxJmUmJkEoImtleWRvd24iLGZ1bmN0aW9uKG8pe3JldHVybiBpLl9oYW5kbGVLZXlkb3duKG8pfSksMiZlJiYod28oImlkIixpLmlkKSxCZSgicm9sZSIsaS5yb2xlKSgidGFiaW5kZXgiLGkucm9sZT9pLnRhYkluZGV4Om51bGwpKCJhcmlhLWxhYmVsIixpLmFyaWFMYWJlbCksbnQoIm1kYy1ldm9sdXRpb24tY2hpcCIsIWkuX2lzQmFzaWNDaGlwKSgibWRjLWV2b2x1dGlvbi1jaGlwLS1kaXNhYmxlZCIsaS5kaXNhYmxlZCkoIm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24iLGkuX2hhc1RyYWlsaW5nSWNvbigpKSgibWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYyIsaS5sZWFkaW5nSWNvbikoIm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWljb24iLGkubGVhZGluZ0ljb24pKCJtZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyIixpLmxlYWRpbmdJY29uKSgibWF0LW1kYy1jaGlwLXdpdGgtYXZhdGFyIixpLmxlYWRpbmdJY29uKSgibWF0LW1kYy1jaGlwLWhpZ2hsaWdodGVkIixpLmhpZ2hsaWdodGVkKSgibWF0LW1kYy1jaGlwLWRpc2FibGVkIixpLmRpc2FibGVkKSgibWF0LW1kYy1iYXNpYy1jaGlwIixpLl9pc0Jhc2ljQ2hpcCkoIm1hdC1tZGMtc3RhbmRhcmQtY2hpcCIsIWkuX2lzQmFzaWNDaGlwKSgibWF0LW1kYy1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbiIsaS5faGFzVHJhaWxpbmdJY29uKCkpKCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsaS5fYW5pbWF0aW9uc0Rpc2FibGVkKSl9LGlucHV0czp7Y29sb3I6ImNvbG9yIixkaXNhYmxlZDoiZGlzYWJsZWQiLGRpc2FibGVSaXBwbGU6ImRpc2FibGVSaXBwbGUiLHRhYkluZGV4OiJ0YWJJbmRleCIscm9sZToicm9sZSIsaWQ6ImlkIixhcmlhTGFiZWw6WyJhcmlhLWxhYmVsIiwiYXJpYUxhYmVsIl0sYXJpYURlc2NyaXB0aW9uOlsiYXJpYS1kZXNjcmlwdGlvbiIsImFyaWFEZXNjcmlwdGlvbiJdLHZhbHVlOiJ2YWx1ZSIscmVtb3ZhYmxlOiJyZW1vdmFibGUiLGhpZ2hsaWdodGVkOiJoaWdobGlnaHRlZCJ9LG91dHB1dHM6e3JlbW92ZWQ6InJlbW92ZWQiLGRlc3Ryb3llZDoiZGVzdHJveWVkIn0sZXhwb3J0QXM6WyJtYXRDaGlwIl0sZmVhdHVyZXM6W1Z0KFt7cHJvdmlkZTpQVix1c2VFeGlzdGluZzpufV0pLFhlXSxuZ0NvbnRlbnRTZWxlY3RvcnM6am5lLGRlY2xzOjksdmFyczo2LGNvbnN0czpbWyJtYXRSaXBwbGUiLCIiLDEsIm1hdC1tZGMtY2hpcC1yaXBwbGUiLDMsIm1hdFJpcHBsZURpc2FibGVkIiwibWF0UmlwcGxlQ2VudGVyZWQiLCJtYXRSaXBwbGVUcmlnZ2VyIl0sWzEsIm1hdC1tZGMtY2hpcC1mb2N1cy1vdmVybGF5Il0sWzEsIm1kYy1ldm9sdXRpb24tY2hpcF9fY2VsbCIsIm1kYy1ldm9sdXRpb24tY2hpcF9fY2VsbC0tcHJpbWFyeSJdLFsibWF0Q2hpcEFjdGlvbiIsIiIsMywiaXNJbnRlcmFjdGl2ZSJdLFsiY2xhc3MiLCJtZGMtZXZvbHV0aW9uLWNoaXBfX2dyYXBoaWMgbWF0LW1kYy1jaGlwLWdyYXBoaWMiLDQsIm5nSWYiXSxbMSwibWRjLWV2b2x1dGlvbi1jaGlwX190ZXh0LWxhYmVsIiwibWF0LW1kYy1jaGlwLWFjdGlvbi1sYWJlbCJdLFsxLCJtYXQtbWRjLWNoaXAtcHJpbWFyeS1mb2N1cy1pbmRpY2F0b3IiLCJtYXQtbWRjLWZvY3VzLWluZGljYXRvciJdLFsiY2xhc3MiLCJtZGMtZXZvbHV0aW9uLWNoaXBfX2NlbGwgbWRjLWV2b2x1dGlvbi1jaGlwX19jZWxsLS10cmFpbGluZyIsNCwibmdJZiJdLFsxLCJtZGMtZXZvbHV0aW9uLWNoaXBfX2dyYXBoaWMiLCJtYXQtbWRjLWNoaXAtZ3JhcGhpYyJdLFsxLCJtZGMtZXZvbHV0aW9uLWNoaXBfX2NlbGwiLCJtZGMtZXZvbHV0aW9uLWNoaXBfX2NlbGwtLXRyYWlsaW5nIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZm4oVW5lKSxrKDAsInNwYW4iLDApKDEsInNwYW4iLDEpLGYoMiwic3BhbiIsMikoMywic3BhbiIsMyksUyg0LFI0ZSwyLDAsInNwYW4iLDQpLGYoNSwic3BhbiIsNSksVHQoNiksayg3LCJzcGFuIiw2KSxnKCkoKSgpLFMoOCxQNGUsMiwwLCJzcGFuIiw3KSksMiZlJiYoYigibWF0UmlwcGxlRGlzYWJsZWQiLGkuX2lzUmlwcGxlRGlzYWJsZWQoKSkoIm1hdFJpcHBsZUNlbnRlcmVkIixpLl9pc1JpcHBsZUNlbnRlcmVkKSgibWF0UmlwcGxlVHJpZ2dlciIsaS5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSx2KDMpLGIoImlzSW50ZXJhY3RpdmUiLCExKSx2KDEpLGIoIm5nSWYiLGkubGVhZGluZ0ljb24pLHYoNCksYigibmdJZiIsaS5faGFzVHJhaWxpbmdJY29uKCkpKX0sZGVwZW5kZW5jaWVzOltOZSxLaSx2QV0sc3R5bGVzOlsnLm1kYy1ldm9sdXRpb24tY2hpcCwubWRjLWV2b2x1dGlvbi1jaGlwX19jZWxsLC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ubWRjLWV2b2x1dGlvbi1jaGlwe3Bvc2l0aW9uOnJlbGF0aXZlO21heC13aWR0aDoxMDAlfS5tZGMtZXZvbHV0aW9uLWNoaXAgLm1kYy1lbGV2YXRpb24tb3ZlcmxheXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MH0ubWRjLWV2b2x1dGlvbi1jaGlwX19jZWxsLC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbntoZWlnaHQ6MTAwJX0ubWRjLWV2b2x1dGlvbi1jaGlwX19jZWxsLS1wcmltYXJ5e292ZXJmbG93LXg6aGlkZGVufS5tZGMtZXZvbHV0aW9uLWNoaXBfX2NlbGwtLXRyYWlsaW5ne2ZsZXg6MSAwIGF1dG99Lm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9ue2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7Ym94LXNpemluZzpjb250ZW50LWJveDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7b3V0bGluZTpub25lO3BhZGRpbmc6MDt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjppbmhlcml0fS5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJlc2VudGF0aW9uYWx7Y3Vyc29yOmF1dG99Lm1kYy1ldm9sdXRpb24tY2hpcC0tZGlzYWJsZWQsLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uOmRpc2FibGVke3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5e292ZXJmbG93LXg6aGlkZGVufS5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tdHJhaWxpbmd7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6dmlzaWJsZX0ubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnk6YmVmb3Jle2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIiO2hlaWdodDoxMDAlO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO3dpZHRoOjEwMCU7ei1pbmRleDoxfS5tZGMtZXZvbHV0aW9uLWNoaXAtLXRvdWNoe21hcmdpbi10b3A6OHB4O21hcmdpbi1ib3R0b206OHB4fS5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi10b3VjaHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2hlaWdodDo0OHB4O2xlZnQ6MDtyaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfS5tZGMtZXZvbHV0aW9uLWNoaXBfX3RleHQtbGFiZWx7d2hpdGUtc3BhY2U6bm93cmFwO3VzZXItc2VsZWN0Om5vbmU7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW59Lm1kYy1ldm9sdXRpb24tY2hpcF9fZ3JhcGhpY3thbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO292ZXJmbG93OmhpZGRlbjtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MSAwIGF1dG99Lm1kYy1ldm9sdXRpb24tY2hpcF9fY2hlY2ttYXJre3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDt0b3A6NTAlO2xlZnQ6NTAlfS5tZGMtZXZvbHV0aW9uLWNoaXAtLXNlbGVjdGFibGU6bm90KC5tZGMtZXZvbHV0aW9uLWNoaXAtLXNlbGVjdGVkKTpub3QoLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWljb24pIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2dyYXBoaWN7d2lkdGg6MH0ubWRjLWV2b2x1dGlvbi1jaGlwX19jaGVja21hcmstYmFja2dyb3VuZHtvcGFjaXR5OjB9Lm1kYy1ldm9sdXRpb24tY2hpcF9fY2hlY2ttYXJrLXN2Z3tkaXNwbGF5OmJsb2NrfS5tZGMtZXZvbHV0aW9uLWNoaXBfX2NoZWNrbWFyay1wYXRoe3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWRhc2hhcnJheToyOS43ODMzMzg1O3N0cm9rZS1kYXNob2Zmc2V0OjI5Ljc4MzMzODU7c3Ryb2tlOmN1cnJlbnRDb2xvcn0ubWRjLWV2b2x1dGlvbi1jaGlwLS1zZWxlY3RpbmcgLm1kYy1ldm9sdXRpb24tY2hpcF9fZ3JhcGhpY3t0cmFuc2l0aW9uOndpZHRoIDE1MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpfS5tZGMtZXZvbHV0aW9uLWNoaXAtLXNlbGVjdGluZyAubWRjLWV2b2x1dGlvbi1jaGlwX19jaGVja21hcmt7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMTUwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNzUlLCAtNTAlKX0ubWRjLWV2b2x1dGlvbi1jaGlwLS1zZWxlY3RpbmcgLm1kYy1ldm9sdXRpb24tY2hpcF9fY2hlY2ttYXJrLXBhdGh7dHJhbnNpdGlvbjpzdHJva2UtZGFzaG9mZnNldCAxNTBtcyA0NW1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9Lm1kYy1ldm9sdXRpb24tY2hpcC0tZGVzZWxlY3RpbmcgLm1kYy1ldm9sdXRpb24tY2hpcF9fZ3JhcGhpY3t0cmFuc2l0aW9uOndpZHRoIDEwMG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpfS5tZGMtZXZvbHV0aW9uLWNoaXAtLWRlc2VsZWN0aW5nIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2NoZWNrbWFya3t0cmFuc2l0aW9uOm9wYWNpdHkgNTBtcyAwbXMgbGluZWFyLHRyYW5zZm9ybSAxMDBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC03NSUsIC01MCUpfS5tZGMtZXZvbHV0aW9uLWNoaXAtLWRlc2VsZWN0aW5nIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2NoZWNrbWFyay1wYXRoe3N0cm9rZS1kYXNob2Zmc2V0OjB9Lm1kYy1ldm9sdXRpb24tY2hpcC0tc2VsZWN0aW5nLXdpdGgtcHJpbWFyeS1pY29uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2ljb24tLXByaW1hcnl7dHJhbnNpdGlvbjpvcGFjaXR5IDc1bXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9Lm1kYy1ldm9sdXRpb24tY2hpcC0tc2VsZWN0aW5nLXdpdGgtcHJpbWFyeS1pY29uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2NoZWNrbWFyay1wYXRoe3RyYW5zaXRpb246c3Ryb2tlLWRhc2hvZmZzZXQgMTUwbXMgNzVtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpfS5tZGMtZXZvbHV0aW9uLWNoaXAtLWRlc2VsZWN0aW5nLXdpdGgtcHJpbWFyeS1pY29uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2ljb24tLXByaW1hcnl7dHJhbnNpdGlvbjpvcGFjaXR5IDE1MG1zIDc1bXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKX0ubWRjLWV2b2x1dGlvbi1jaGlwLS1kZXNlbGVjdGluZy13aXRoLXByaW1hcnktaWNvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19jaGVja21hcmt7dHJhbnNpdGlvbjpvcGFjaXR5IDc1bXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKX0ubWRjLWV2b2x1dGlvbi1jaGlwLS1kZXNlbGVjdGluZy13aXRoLXByaW1hcnktaWNvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19jaGVja21hcmstcGF0aHtzdHJva2UtZGFzaG9mZnNldDowfS5tZGMtZXZvbHV0aW9uLWNoaXAtLXNlbGVjdGVkIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2ljb24tLXByaW1hcnl7b3BhY2l0eTowfS5tZGMtZXZvbHV0aW9uLWNoaXAtLXNlbGVjdGVkIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2NoZWNrbWFya3t0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO29wYWNpdHk6MX0ubWRjLWV2b2x1dGlvbi1jaGlwLS1zZWxlY3RlZCAubWRjLWV2b2x1dGlvbi1jaGlwX19jaGVja21hcmstcGF0aHtzdHJva2UtZGFzaG9mZnNldDowfUBrZXlmcmFtZXMgbWRjLWV2b2x1dGlvbi1jaGlwLWVudGVye2Zyb217dHJhbnNmb3JtOnNjYWxlKDAuOCk7b3BhY2l0eTouNH10b3t0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfX0ubWRjLWV2b2x1dGlvbi1jaGlwLS1lbnRlcnthbmltYXRpb246bWRjLWV2b2x1dGlvbi1jaGlwLWVudGVyIDEwMG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKX1Aa2V5ZnJhbWVzIG1kYy1ldm9sdXRpb24tY2hpcC1leGl0e2Zyb217b3BhY2l0eToxfXRve29wYWNpdHk6MH19Lm1kYy1ldm9sdXRpb24tY2hpcC0tZXhpdHthbmltYXRpb246bWRjLWV2b2x1dGlvbi1jaGlwLWV4aXQgNzVtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSl9Lm1kYy1ldm9sdXRpb24tY2hpcC0taGlkZGVue29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246d2lkdGggMTUwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAgLm1kYy1ldm9sdXRpb24tY2hpcF9fY2hlY2ttYXJre2hlaWdodDoyMHB4O3dpZHRoOjIwcHh9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcCAubWRjLWV2b2x1dGlvbi1jaGlwX19pY29uLS10cmFpbGluZ3toZWlnaHQ6MThweDt3aWR0aDoxOHB4O2ZvbnQtc2l6ZToxOHB4fS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAgLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5e3BhZGRpbmctbGVmdDoxMnB4O3BhZGRpbmctcmlnaHQ6MTJweH1bZGlyPXJ0bF0gLm1hdC1tZGMtc3RhbmRhcmQtY2hpcCAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnksLm1hdC1tZGMtc3RhbmRhcmQtY2hpcCAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnlbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjEycHg7cGFkZGluZy1yaWdodDoxMnB4fS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYyAubWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGlje3BhZGRpbmctbGVmdDo2cHg7cGFkZGluZy1yaWdodDo2cHh9W2Rpcj1ydGxdIC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYyAubWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGljLC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYyAubWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGljW2Rpcj1ydGxde3BhZGRpbmctbGVmdDo2cHg7cGFkZGluZy1yaWdodDo2cHh9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjEycHh9W2Rpcj1ydGxdIC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYyAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnksLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeVtkaXI9cnRsXXtwYWRkaW5nLWxlZnQ6MTJweDtwYWRkaW5nLXJpZ2h0OjB9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tdHJhaWxpbmd7cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjhweH1bZGlyPXJ0bF0gLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tdHJhaWxpbmcsLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tdHJhaWxpbmdbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjhweH0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fcmlwcGxlLS10cmFpbGluZ3tsZWZ0OjhweDtyaWdodDppbml0aWFsfVtkaXI9cnRsXSAubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fcmlwcGxlLS10cmFpbGluZywubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fcmlwcGxlLS10cmFpbGluZ1tkaXI9cnRsXXtsZWZ0OmluaXRpYWw7cmlnaHQ6OHB4fS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnl7cGFkZGluZy1sZWZ0OjEycHg7cGFkZGluZy1yaWdodDowfVtkaXI9cnRsXSAubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5LC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnlbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDoxMnB4fS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYy5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2dyYXBoaWN7cGFkZGluZy1sZWZ0OjZweDtwYWRkaW5nLXJpZ2h0OjZweH1bZGlyPXJ0bF0gLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fZ3JhcGhpYywubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGljW2Rpcj1ydGxde3BhZGRpbmctbGVmdDo2cHg7cGFkZGluZy1yaWdodDo2cHh9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS10cmFpbGluZ3twYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6OHB4fVtkaXI9cnRsXSAubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXRyYWlsaW5nLC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYy5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tdHJhaWxpbmdbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjhweH0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19yaXBwbGUtLXRyYWlsaW5ne2xlZnQ6OHB4O3JpZ2h0OmluaXRpYWx9W2Rpcj1ydGxdIC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYy5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX3JpcHBsZS0tdHJhaWxpbmcsLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fcmlwcGxlLS10cmFpbGluZ1tkaXI9cnRsXXtsZWZ0OmluaXRpYWw7cmlnaHQ6OHB4fS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYy5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjB9W2Rpcj1ydGxdIC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYy5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeSwubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnlbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS1kaXNhYmxlZCAubWRjLWV2b2x1dGlvbi1jaGlwX19jaGVja21hcmt7Y29sb3I6dmFyKC0tbWRjLWNoaXAtd2l0aC1pY29uLXNlbGVjdGVkLWljb24tY29sb3IsIGN1cnJlbnRDb2xvcil9Lm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1hdmF0YXIubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYyAubWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGlje3BhZGRpbmctbGVmdDo0cHg7cGFkZGluZy1yaWdodDo4cHh9W2Rpcj1ydGxdIC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMgLm1kYy1ldm9sdXRpb24tY2hpcF9fZ3JhcGhpYywubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLWF2YXRhci5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2dyYXBoaWNbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjRweH0ubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLWF2YXRhci5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjEycHh9W2Rpcj1ydGxdIC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMgLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5LC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMgLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5W2Rpcj1ydGxde3BhZGRpbmctbGVmdDoxMnB4O3BhZGRpbmctcmlnaHQ6MH0ubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLWF2YXRhci5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fZ3JhcGhpY3twYWRkaW5nLWxlZnQ6NHB4O3BhZGRpbmctcmlnaHQ6OHB4fVtkaXI9cnRsXSAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLWF2YXRhci5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fZ3JhcGhpYywubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLWF2YXRhci5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fZ3JhcGhpY1tkaXI9cnRsXXtwYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6NHB4fS5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXRyYWlsaW5ne3BhZGRpbmctbGVmdDo4cHg7cGFkZGluZy1yaWdodDo4cHh9W2Rpcj1ydGxdIC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXRyYWlsaW5nLC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXRyYWlsaW5nW2Rpcj1ydGxde3BhZGRpbmctbGVmdDo4cHg7cGFkZGluZy1yaWdodDo4cHh9Lm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1hdmF0YXIubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYy5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX3JpcHBsZS0tdHJhaWxpbmd7bGVmdDo4cHg7cmlnaHQ6aW5pdGlhbH1bZGlyPXJ0bF0gLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1hdmF0YXIubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYy5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX3JpcHBsZS0tdHJhaWxpbmcsLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1hdmF0YXIubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYy5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX3JpcHBsZS0tdHJhaWxpbmdbZGlyPXJ0bF17bGVmdDppbml0aWFsO3JpZ2h0OjhweH0ubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLWF2YXRhci5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5e3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH1bZGlyPXJ0bF0gLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1hdmF0YXIubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYy5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeSwubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLWF2YXRhci5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5W2Rpcj1ydGxde3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH0ubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLWF2YXRhci5tZGMtZXZvbHV0aW9uLWNoaXAtLXNlbGVjdGFibGU6bm90KC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1pY29uKXstLW1kYy1jaGlwLWdyYXBoaWMtc2VsZWN0ZWQtd2lkdGg6MjRweH0ubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLWF2YXRhciAubWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGlje2hlaWdodDoyNHB4O3dpZHRoOjI0cHg7Zm9udC1zaXplOjI0cHh9Lm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1hdmF0YXIgLm1kYy1ldm9sdXRpb24tY2hpcF9faWNvbi0tcHJpbWFyeXtoZWlnaHQ6MjRweDt3aWR0aDoyNHB4O2ZvbnQtc2l6ZToyNHB4fS5tYXQtbWRjLXN0YW5kYXJkLWNoaXB7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1tZGMtY2hpcC1jb250YWluZXItc2hhcGUtcmFkaXVzLCAxNnB4IDE2cHggMTZweCAxNnB4KTtoZWlnaHQ6dmFyKC0tbWRjLWNoaXAtY29udGFpbmVyLWhlaWdodCwgMzJweCl9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcCAubWRjLWV2b2x1dGlvbi1jaGlwX19yaXBwbGV7Ym9yZGVyLXJhZGl1czp2YXIoLS1tZGMtY2hpcC1jb250YWluZXItc2hhcGUtcmFkaXVzLCAxNnB4IDE2cHggMTZweCAxNnB4KX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeTpiZWZvcmV7Ym9yZGVyLXJhZGl1czp2YXIoLS1tZGMtY2hpcC1jb250YWluZXItc2hhcGUtcmFkaXVzLCAxNnB4IDE2cHggMTZweCAxNnB4KX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2ljb24tLXByaW1hcnl7Ym9yZGVyLXJhZGl1czp2YXIoLS1tZGMtY2hpcC13aXRoLWF2YXRhci1hdmF0YXItc2hhcGUtcmFkaXVzLCAxNHB4IDE0cHggMTRweCAxNHB4KX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0tc2VsZWN0YWJsZTpub3QoLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWljb24pey0tbWRjLWNoaXAtZ3JhcGhpYy1zZWxlY3RlZC13aWR0aDp2YXIoLS1tZGMtY2hpcC13aXRoLWF2YXRhci1hdmF0YXItc2l6ZSwgMjhweCl9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcCAubWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGlje2hlaWdodDp2YXIoLS1tZGMtY2hpcC13aXRoLWF2YXRhci1hdmF0YXItc2l6ZSwgMjhweCk7d2lkdGg6dmFyKC0tbWRjLWNoaXAtd2l0aC1hdmF0YXItYXZhdGFyLXNpemUsIDI4cHgpO2ZvbnQtc2l6ZTp2YXIoLS1tZGMtY2hpcC13aXRoLWF2YXRhci1hdmF0YXItc2l6ZSwgMjhweCl9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcCAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnk6YmVmb3Jle2JvcmRlci13aWR0aDp2YXIoLS1tZGMtY2hpcC1vdXRsaW5lLXdpZHRoLCAxcHgpfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAgLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5OmJlZm9yZXtib3JkZXItd2lkdGg6dmFyKC0tbWRjLWNoaXAtZmxhdC1vdXRsaW5lLXdpZHRoLCAxcHgpfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS1zZWxlY3RlZCAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnk6YmVmb3Jle2JvcmRlci13aWR0aDp2YXIoLS1tZGMtY2hpcC1mbGF0LXNlbGVjdGVkLW91dGxpbmUtd2lkdGgsIDApfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXA6bm90KC5tZGMtZXZvbHV0aW9uLWNoaXAtLXNlbGVjdGVkKSAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnk6YmVmb3Jle2JvcmRlci13aWR0aDp2YXIoLS1tZGMtY2hpcC1mbGF0LXVuc2VsZWN0ZWQtb3V0bGluZS13aWR0aCwgMXB4KX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwOm5vdCgubWRjLWV2b2x1dGlvbi1jaGlwLS1kaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtY2hpcC1lbGV2YXRlZC1jb250YWluZXItY29sb3IsIHRyYW5zcGFyZW50KX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0tZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZGMtY2hpcC1lbGV2YXRlZC1kaXNhYmxlZC1jb250YWluZXItY29sb3IsIHRyYW5zcGFyZW50KX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0tc2VsZWN0ZWQubWRjLWV2b2x1dGlvbi1jaGlwLS1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1jaGlwLWVsZXZhdGVkLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvciwgdHJhbnNwYXJlbnQpfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXA6bm90KC5tZGMtZXZvbHV0aW9uLWNoaXAtLWRpc2FibGVkKSAubWRjLWV2b2x1dGlvbi1jaGlwX190ZXh0LWxhYmVse2NvbG9yOnZhcigtLW1kYy1jaGlwLWxhYmVsLXRleHQtY29sb3IsIGN1cnJlbnRDb2xvcil9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLWRpc2FibGVkIC5tZGMtZXZvbHV0aW9uLWNoaXBfX3RleHQtbGFiZWx7Y29sb3I6dmFyKC0tbWRjLWNoaXAtZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvciwgY3VycmVudENvbG9yKX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0tc2VsZWN0ZWQubWRjLWV2b2x1dGlvbi1jaGlwLS1kaXNhYmxlZCAubWRjLWV2b2x1dGlvbi1jaGlwX190ZXh0LWxhYmVse2NvbG9yOnZhcigtLW1kYy1jaGlwLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3IsIGN1cnJlbnRDb2xvcil9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcCAubWRjLWV2b2x1dGlvbi1jaGlwX19pY29uLS1wcmltYXJ5e2hlaWdodDp2YXIoLS1tZGMtY2hpcC13aXRoLWljb24taWNvbi1zaXplLCAxOHB4KTt3aWR0aDp2YXIoLS1tZGMtY2hpcC13aXRoLWljb24taWNvbi1zaXplLCAxOHB4KTtmb250LXNpemU6dmFyKC0tbWRjLWNoaXAtd2l0aC1pY29uLWljb24tc2l6ZSwgMThweCl9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcDpub3QoLm1kYy1ldm9sdXRpb24tY2hpcC0tZGlzYWJsZWQpIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2ljb24tLXByaW1hcnl7Y29sb3I6dmFyKC0tbWRjLWNoaXAtd2l0aC1pY29uLWljb24tY29sb3IsIGN1cnJlbnRDb2xvcil9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLWRpc2FibGVkIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2ljb24tLXByaW1hcnl7Y29sb3I6dmFyKC0tbWRjLWNoaXAtd2l0aC1pY29uLWRpc2FibGVkLWljb24tY29sb3IsIGN1cnJlbnRDb2xvcil9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcDpub3QoLm1kYy1ldm9sdXRpb24tY2hpcC0tZGlzYWJsZWQpIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2NoZWNrbWFya3tjb2xvcjp2YXIoLS1tZGMtY2hpcC13aXRoLWljb24tc2VsZWN0ZWQtaWNvbi1jb2xvciwgY3VycmVudENvbG9yKX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0tZGlzYWJsZWQgLm1kYy1ldm9sdXRpb24tY2hpcF9fY2hlY2ttYXJre2NvbG9yOnZhcigtLW1kYy1jaGlwLXdpdGgtaWNvbi1kaXNhYmxlZC1pY29uLWNvbG9yLCBjdXJyZW50Q29sb3IpfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXA6bm90KC5tZGMtZXZvbHV0aW9uLWNoaXAtLWRpc2FibGVkKSAubWRjLWV2b2x1dGlvbi1jaGlwX19pY29uLS10cmFpbGluZ3tjb2xvcjp2YXIoLS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tdHJhaWxpbmctaWNvbi1jb2xvciwgY3VycmVudENvbG9yKX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0tZGlzYWJsZWQgLm1kYy1ldm9sdXRpb24tY2hpcF9faWNvbi0tdHJhaWxpbmd7Y29sb3I6dmFyKC0tbWRjLWNoaXAtd2l0aC10cmFpbGluZy1pY29uLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3IsIGN1cnJlbnRDb2xvcil9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1kYy1zdGFuZGFyZC1jaGlwe291dGxpbmU6c29saWQgMXB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZGMtc3RhbmRhcmQtY2hpcCAubWRjLWV2b2x1dGlvbi1jaGlwX19jaGVja21hcmstcGF0aHtzdHJva2U6Q2FudmFzVGV4dCAhaW1wb3J0YW50fS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS1kaXNhYmxlZHtvcGFjaXR5Oi40fS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAgLm1kYy1ldm9sdXRpb24tY2hpcF9fY2VsbC0tcHJpbWFyeSwubWF0LW1kYy1zdGFuZGFyZC1jaGlwIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeSwubWF0LW1kYy1zdGFuZGFyZC1jaGlwIC5tYXQtbWRjLWNoaXAtYWN0aW9uLWxhYmVse292ZXJmbG93OnZpc2libGV9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcCAubWRjLWV2b2x1dGlvbi1jaGlwX19jZWxsLS1wcmltYXJ5e3dpZHRoOjEwMCV9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcCAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnl7Zm9udDppbmhlcml0O2xldHRlci1zcGFjaW5nOmluaGVyaXQ7d2hpdGUtc3BhY2U6aW5oZXJpdH0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwIC5tYXQtbWRjLWNoaXAtZ3JhcGhpYywubWF0LW1kYy1zdGFuZGFyZC1jaGlwIC5tYXQtbWRjLWNoaXAtdHJhaWxpbmctaWNvbntib3gtc2l6aW5nOmNvbnRlbnQtYm94fS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAuX21hdC1hbmltYXRpb24tbm9vcGFibGUsLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGljLC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1kYy1ldm9sdXRpb24tY2hpcF9fY2hlY2ttYXJrLC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1kYy1ldm9sdXRpb24tY2hpcF9fY2hlY2ttYXJrLXBhdGh7dHJhbnNpdGlvbi1kdXJhdGlvbjoxbXM7YW5pbWF0aW9uLWR1cmF0aW9uOjFtc30ubWF0LW1kYy1iYXNpYy1jaGlwIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeXtmb250OmluaGVyaXR9Lm1hdC1tZGMtY2hpcC1mb2N1cy1vdmVybGF5e3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowO2JvcmRlci1yYWRpdXM6aW5oZXJpdDt0cmFuc2l0aW9uOm9wYWNpdHkgMTUwbXMgbGluZWFyfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LW1kYy1jaGlwLWZvY3VzLW92ZXJsYXl7dHJhbnNpdGlvbjpub25lfS5tYXQtbWRjLWJhc2ljLWNoaXAgLm1hdC1tZGMtY2hpcC1mb2N1cy1vdmVybGF5e2Rpc3BsYXk6bm9uZX0ubWF0LW1kYy1jaGlwOmhvdmVyIC5tYXQtbWRjLWNoaXAtZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4wNH0ubWF0LW1kYy1jaGlwLmNkay1mb2N1c2VkIC5tYXQtbWRjLWNoaXAtZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LW1kYy1jaGlwLXJpcHBsZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO2JvcmRlci1yYWRpdXM6aW5oZXJpdH0ubWF0LW1kYy1jaGlwLWF2YXRhcnt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxO2NvbG9yOnZhcigtLW1kYy1jaGlwLXdpdGgtaWNvbi1pY29uLWNvbG9yLCBjdXJyZW50Q29sb3IpfS5tYXQtbWRjLWNoaXB7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDowfS5tYXQtbWRjLWNoaXAtYWN0aW9uLWxhYmVse3RleHQtYWxpZ246bGVmdDt6LWluZGV4OjF9W2Rpcj1ydGxdIC5tYXQtbWRjLWNoaXAtYWN0aW9uLWxhYmVse3RleHQtYWxpZ246cmlnaHR9Lm1hdC1tZGMtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tYXQtbWRjLWNoaXAtYWN0aW9uLWxhYmVse3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWNoaXAtYWN0aW9uLWxhYmVsIC5tYXQtbWRjLWNoaXAtcHJpbWFyeS1mb2N1cy1pbmRpY2F0b3J7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7cG9pbnRlci1ldmVudHM6bm9uZX0ubWF0LW1kYy1jaGlwLWFjdGlvbi1sYWJlbCAubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXttYXJnaW46Y2FsYyhjYWxjKHZhcigtLW1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLWJvcmRlci13aWR0aCwgM3B4KSArIDJweCkgKiAtMSl9Lm1hdC1tZGMtY2hpcC1yZW1vdmV7b3BhY2l0eTouNTR9Lm1hdC1tZGMtY2hpcC1yZW1vdmU6Zm9jdXN7b3BhY2l0eToxfS5tYXQtbWRjLWNoaXAtcmVtb3ZlOjpiZWZvcmV7bWFyZ2luOmNhbGModmFyKC0tbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoLCAzcHgpICogLTEpO2xlZnQ6OHB4O3JpZ2h0OjhweH0ubWF0LW1kYy1jaGlwLXJlbW92ZSAubWF0LWljb257d2lkdGg6aW5oZXJpdDtoZWlnaHQ6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtib3gtc2l6aW5nOmNvbnRlbnQtYm94fS5tYXQtY2hpcC1lZGl0LWlucHV0e2N1cnNvcjp0ZXh0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbG9yOmluaGVyaXQ7b3V0bGluZTowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZGMtY2hpcC1zZWxlY3RlZDpub3QoLm1hdC1tZGMtY2hpcC1tdWx0aXBsZSl7b3V0bGluZS13aWR0aDozcHh9Lm1hdC1tZGMtY2hpcC1hY3Rpb246Zm9jdXMgLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmV7Y29udGVudDoiIn0nXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxINGU9KCgpPT57Y2xhc3MgbiBleHRlbmRzIGVDe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9kZWZhdWx0T3B0aW9ucz0kbihSVix7b3B0aW9uYWw6ITB9KSx0aGlzLmNoaXBMaXN0U2VsZWN0YWJsZT0hMCx0aGlzLl9jaGlwTGlzdE11bHRpcGxlPSExLHRoaXMuX2NoaXBMaXN0SGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvcj10aGlzLl9kZWZhdWx0T3B0aW9ucz8uaGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvcj8/ITEsdGhpcy5fc2VsZWN0YWJsZT0hMCx0aGlzLl9zZWxlY3RlZD0hMSx0aGlzLmJhc2ljQ2hpcEF0dHJOYW1lPSJtYXQtYmFzaWMtY2hpcC1vcHRpb24iLHRoaXMuc2VsZWN0aW9uQ2hhbmdlPW5ldyBGfWdldCBzZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGFibGUmJnRoaXMuY2hpcExpc3RTZWxlY3RhYmxlfXNldCBzZWxlY3RhYmxlKGUpe3RoaXMuX3NlbGVjdGFibGU9dnQoZSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9Z2V0IHNlbGVjdGVkKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGVkfXNldCBzZWxlY3RlZChlKXt0aGlzLl9zZXRTZWxlY3RlZFN0YXRlKHZ0KGUpLCExLCEwKX1nZXQgYXJpYVNlbGVjdGVkKCl7cmV0dXJuIHRoaXMuc2VsZWN0YWJsZT90aGlzLnNlbGVjdGVkLnRvU3RyaW5nKCk6bnVsbH1uZ09uSW5pdCgpe3N1cGVyLm5nT25Jbml0KCksdGhpcy5yb2xlPSJwcmVzZW50YXRpb24ifXNlbGVjdCgpe3RoaXMuX3NldFNlbGVjdGVkU3RhdGUoITAsITEsITApfWRlc2VsZWN0KCl7dGhpcy5fc2V0U2VsZWN0ZWRTdGF0ZSghMSwhMSwhMCl9c2VsZWN0VmlhSW50ZXJhY3Rpb24oKXt0aGlzLl9zZXRTZWxlY3RlZFN0YXRlKCEwLCEwLCEwKX10b2dnbGVTZWxlY3RlZChlPSExKXtyZXR1cm4gdGhpcy5fc2V0U2VsZWN0ZWRTdGF0ZSghdGhpcy5zZWxlY3RlZCxlLCEwKSx0aGlzLnNlbGVjdGVkfV9oYW5kbGVQcmltYXJ5QWN0aW9uSW50ZXJhY3Rpb24oKXt0aGlzLnNlbGVjdGFibGUmJiF0aGlzLmRpc2FibGVkJiZ0aGlzLnRvZ2dsZVNlbGVjdGVkKCEwKX1faGFzTGVhZGluZ0dyYXBoaWMoKXtyZXR1cm4hIXRoaXMubGVhZGluZ0ljb258fCF0aGlzLl9jaGlwTGlzdEhpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3J8fHRoaXMuX2NoaXBMaXN0TXVsdGlwbGV9X3NldFNlbGVjdGVkU3RhdGUoZSxpLHIpe2UhPT10aGlzLnNlbGVjdGVkJiYodGhpcy5fc2VsZWN0ZWQ9ZSxyJiZ0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHtzb3VyY2U6dGhpcyxpc1VzZXJJbnB1dDppLHNlbGVjdGVkOnRoaXMuc2VsZWN0ZWR9KSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4odHx8KHQ9WG4obikpKShpfHxuKX19KCksbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJtYXQtYmFzaWMtY2hpcC1vcHRpb24iXSxbIiIsIm1hdC1iYXNpYy1jaGlwLW9wdGlvbiIsIiJdLFsibWF0LWNoaXAtb3B0aW9uIl0sWyIiLCJtYXQtY2hpcC1vcHRpb24iLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtbWRjLWNoaXAiLCJtYXQtbWRjLWNoaXAtb3B0aW9uIl0saG9zdFZhcnM6MzcsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGUsaSl7MiZlJiYod28oImlkIixpLmlkKSxCZSgidGFiaW5kZXgiLG51bGwpKCJhcmlhLWxhYmVsIixudWxsKSgiYXJpYS1kZXNjcmlwdGlvbiIsbnVsbCkoInJvbGUiLGkucm9sZSksbnQoIm1kYy1ldm9sdXRpb24tY2hpcCIsIWkuX2lzQmFzaWNDaGlwKSgibWRjLWV2b2x1dGlvbi1jaGlwLS1maWx0ZXIiLCFpLl9pc0Jhc2ljQ2hpcCkoIm1kYy1ldm9sdXRpb24tY2hpcC0tc2VsZWN0YWJsZSIsIWkuX2lzQmFzaWNDaGlwKSgibWF0LW1kYy1jaGlwLXNlbGVjdGVkIixpLnNlbGVjdGVkKSgibWF0LW1kYy1jaGlwLW11bHRpcGxlIixpLl9jaGlwTGlzdE11bHRpcGxlKSgibWF0LW1kYy1jaGlwLWRpc2FibGVkIixpLmRpc2FibGVkKSgibWF0LW1kYy1jaGlwLXdpdGgtYXZhdGFyIixpLmxlYWRpbmdJY29uKSgibWRjLWV2b2x1dGlvbi1jaGlwLS1kaXNhYmxlZCIsaS5kaXNhYmxlZCkoIm1kYy1ldm9sdXRpb24tY2hpcC0tc2VsZWN0ZWQiLGkuc2VsZWN0ZWQpKCJtZGMtZXZvbHV0aW9uLWNoaXAtLXNlbGVjdGluZyIsIWkuX2FuaW1hdGlvbnNEaXNhYmxlZCkoIm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24iLGkuX2hhc1RyYWlsaW5nSWNvbigpKSgibWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktaWNvbiIsaS5sZWFkaW5nSWNvbikoIm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMiLGkuX2hhc0xlYWRpbmdHcmFwaGljKCkpKCJtZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyIixpLmxlYWRpbmdJY29uKSgibWF0LW1kYy1jaGlwLWhpZ2hsaWdodGVkIixpLmhpZ2hsaWdodGVkKSgibWF0LW1kYy1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbiIsaS5faGFzVHJhaWxpbmdJY29uKCkpKX0saW5wdXRzOntjb2xvcjoiY29sb3IiLGRpc2FibGVkOiJkaXNhYmxlZCIsZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIsdGFiSW5kZXg6InRhYkluZGV4IixzZWxlY3RhYmxlOiJzZWxlY3RhYmxlIixzZWxlY3RlZDoic2VsZWN0ZWQifSxvdXRwdXRzOntzZWxlY3Rpb25DaGFuZ2U6InNlbGVjdGlvbkNoYW5nZSJ9LGZlYXR1cmVzOltWdChbe3Byb3ZpZGU6ZUMsdXNlRXhpc3Rpbmc6bn0se3Byb3ZpZGU6UFYsdXNlRXhpc3Rpbmc6bn1dKSxYZV0sbmdDb250ZW50U2VsZWN0b3JzOmpuZSxkZWNsczoxMSx2YXJzOjEyLGNvbnN0czpbWyJtYXRSaXBwbGUiLCIiLDEsIm1hdC1tZGMtY2hpcC1yaXBwbGUiLDMsIm1hdFJpcHBsZURpc2FibGVkIiwibWF0UmlwcGxlQ2VudGVyZWQiLCJtYXRSaXBwbGVUcmlnZ2VyIl0sWzEsIm1hdC1tZGMtY2hpcC1mb2N1cy1vdmVybGF5Il0sWzEsIm1kYy1ldm9sdXRpb24tY2hpcF9fY2VsbCIsIm1kYy1ldm9sdXRpb24tY2hpcF9fY2VsbC0tcHJpbWFyeSJdLFsibWF0Q2hpcEFjdGlvbiIsIiIsInJvbGUiLCJvcHRpb24iLDMsInRhYkluZGV4IiwiX2FsbG93Rm9jdXNXaGVuRGlzYWJsZWQiXSxbImNsYXNzIiwibWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGljIG1hdC1tZGMtY2hpcC1ncmFwaGljIiw0LCJuZ0lmIl0sWzEsIm1kYy1ldm9sdXRpb24tY2hpcF9fdGV4dC1sYWJlbCIsIm1hdC1tZGMtY2hpcC1hY3Rpb24tbGFiZWwiXSxbMSwibWF0LW1kYy1jaGlwLXByaW1hcnktZm9jdXMtaW5kaWNhdG9yIiwibWF0LW1kYy1mb2N1cy1pbmRpY2F0b3IiXSxbImNsYXNzIiwibWRjLWV2b2x1dGlvbi1jaGlwX19jZWxsIG1kYy1ldm9sdXRpb24tY2hpcF9fY2VsbC0tdHJhaWxpbmciLDQsIm5nSWYiXSxbMSwiY2RrLXZpc3VhbGx5LWhpZGRlbiIsMywiaWQiXSxbMSwibWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGljIiwibWF0LW1kYy1jaGlwLWdyYXBoaWMiXSxbMSwibWRjLWV2b2x1dGlvbi1jaGlwX19jaGVja21hcmsiXSxbInZpZXdCb3giLCItMiAtMyAzMCAzMCIsImZvY3VzYWJsZSIsImZhbHNlIiwxLCJtZGMtZXZvbHV0aW9uLWNoaXBfX2NoZWNrbWFyay1zdmciXSxbImZpbGwiLCJub25lIiwic3Ryb2tlIiwiY3VycmVudENvbG9yIiwiZCIsIk0xLjczLDEyLjkxIDguMSwxOS4yOCAyMi43OSw0LjU5IiwxLCJtZGMtZXZvbHV0aW9uLWNoaXBfX2NoZWNrbWFyay1wYXRoIl0sWzEsIm1kYy1ldm9sdXRpb24tY2hpcF9fY2VsbCIsIm1kYy1ldm9sdXRpb24tY2hpcF9fY2VsbC0tdHJhaWxpbmciXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmbihVbmUpLGsoMCwic3BhbiIsMCkoMSwic3BhbiIsMSksZigyLCJzcGFuIiwyKSgzLCJidXR0b24iLDMpLFMoNCxrNGUsNSwwLCJzcGFuIiw0KSxmKDUsInNwYW4iLDUpLFR0KDYpLGsoNywic3BhbiIsNiksZygpKCkoKSxTKDgsTzRlLDIsMCwic3BhbiIsNyksZig5LCJzcGFuIiw4KSxUKDEwKSxnKCkpLDImZSYmKGIoIm1hdFJpcHBsZURpc2FibGVkIixpLl9pc1JpcHBsZURpc2FibGVkKCkpKCJtYXRSaXBwbGVDZW50ZXJlZCIsaS5faXNSaXBwbGVDZW50ZXJlZCkoIm1hdFJpcHBsZVRyaWdnZXIiLGkuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCksdigzKSxiKCJ0YWJJbmRleCIsaS50YWJJbmRleCkoIl9hbGxvd0ZvY3VzV2hlbkRpc2FibGVkIiwhMCksQmUoImFyaWEtc2VsZWN0ZWQiLGkuYXJpYVNlbGVjdGVkKSgiYXJpYS1sYWJlbCIsaS5hcmlhTGFiZWwpKCJhcmlhLWRlc2NyaWJlZGJ5IixpLl9hcmlhRGVzY3JpcHRpb25JZCksdigxKSxiKCJuZ0lmIixpLl9oYXNMZWFkaW5nR3JhcGhpYygpKSx2KDQpLGIoIm5nSWYiLGkuX2hhc1RyYWlsaW5nSWNvbigpKSx2KDEpLGIoImlkIixpLl9hcmlhRGVzY3JpcHRpb25JZCksdigxKSxrdChpLmFyaWFEZXNjcmlwdGlvbikpfSxkZXBlbmRlbmNpZXM6W05lLEtpLHZBXSxzdHlsZXM6WycubWRjLWV2b2x1dGlvbi1jaGlwLC5tZGMtZXZvbHV0aW9uLWNoaXBfX2NlbGwsLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9ue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5tZGMtZXZvbHV0aW9uLWNoaXB7cG9zaXRpb246cmVsYXRpdmU7bWF4LXdpZHRoOjEwMCV9Lm1kYy1ldm9sdXRpb24tY2hpcCAubWRjLWVsZXZhdGlvbi1vdmVybGF5e3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG9wOjA7bGVmdDowfS5tZGMtZXZvbHV0aW9uLWNoaXBfX2NlbGwsLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9ue2hlaWdodDoxMDAlfS5tZGMtZXZvbHV0aW9uLWNoaXBfX2NlbGwtLXByaW1hcnl7b3ZlcmZsb3cteDpoaWRkZW59Lm1kYy1ldm9sdXRpb24tY2hpcF9fY2VsbC0tdHJhaWxpbmd7ZmxleDoxIDAgYXV0b30ubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb257YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtvdXRsaW5lOm5vbmU7cGFkZGluZzowO3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9Lm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmVzZW50YXRpb25hbHtjdXJzb3I6YXV0b30ubWRjLWV2b2x1dGlvbi1jaGlwLS1kaXNhYmxlZCwubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb246ZGlzYWJsZWR7cG9pbnRlci1ldmVudHM6bm9uZX0ubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnl7b3ZlcmZsb3cteDpoaWRkZW59Lm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS10cmFpbGluZ3twb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzp2aXNpYmxlfS5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeTpiZWZvcmV7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6IiI7aGVpZ2h0OjEwMCU7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7d2lkdGg6MTAwJTt6LWluZGV4OjF9Lm1kYy1ldm9sdXRpb24tY2hpcC0tdG91Y2h7bWFyZ2luLXRvcDo4cHg7bWFyZ2luLWJvdHRvbTo4cHh9Lm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLXRvdWNoe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7aGVpZ2h0OjQ4cHg7bGVmdDowO3JpZ2h0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9Lm1kYy1ldm9sdXRpb24tY2hpcF9fdGV4dC1sYWJlbHt3aGl0ZS1zcGFjZTpub3dyYXA7dXNlci1zZWxlY3Q6bm9uZTt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbn0ubWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGlje2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246cmVsYXRpdmU7ZmxleDoxIDAgYXV0b30ubWRjLWV2b2x1dGlvbi1jaGlwX19jaGVja21hcmt7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowO3RvcDo1MCU7bGVmdDo1MCV9Lm1kYy1ldm9sdXRpb24tY2hpcC0tc2VsZWN0YWJsZTpub3QoLm1kYy1ldm9sdXRpb24tY2hpcC0tc2VsZWN0ZWQpOm5vdCgubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktaWNvbikgLm1kYy1ldm9sdXRpb24tY2hpcF9fZ3JhcGhpY3t3aWR0aDowfS5tZGMtZXZvbHV0aW9uLWNoaXBfX2NoZWNrbWFyay1iYWNrZ3JvdW5ke29wYWNpdHk6MH0ubWRjLWV2b2x1dGlvbi1jaGlwX19jaGVja21hcmstc3Zne2Rpc3BsYXk6YmxvY2t9Lm1kYy1ldm9sdXRpb24tY2hpcF9fY2hlY2ttYXJrLXBhdGh7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtZGFzaGFycmF5OjI5Ljc4MzMzODU7c3Ryb2tlLWRhc2hvZmZzZXQ6MjkuNzgzMzM4NTtzdHJva2U6Y3VycmVudENvbG9yfS5tZGMtZXZvbHV0aW9uLWNoaXAtLXNlbGVjdGluZyAubWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGlje3RyYW5zaXRpb246d2lkdGggMTUwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9Lm1kYy1ldm9sdXRpb24tY2hpcC0tc2VsZWN0aW5nIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2NoZWNrbWFya3t0cmFuc2l0aW9uOnRyYW5zZm9ybSAxNTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC03NSUsIC01MCUpfS5tZGMtZXZvbHV0aW9uLWNoaXAtLXNlbGVjdGluZyAubWRjLWV2b2x1dGlvbi1jaGlwX19jaGVja21hcmstcGF0aHt0cmFuc2l0aW9uOnN0cm9rZS1kYXNob2Zmc2V0IDE1MG1zIDQ1bXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKX0ubWRjLWV2b2x1dGlvbi1jaGlwLS1kZXNlbGVjdGluZyAubWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGlje3RyYW5zaXRpb246d2lkdGggMTAwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9Lm1kYy1ldm9sdXRpb24tY2hpcC0tZGVzZWxlY3RpbmcgLm1kYy1ldm9sdXRpb24tY2hpcF9fY2hlY2ttYXJre3RyYW5zaXRpb246b3BhY2l0eSA1MG1zIDBtcyBsaW5lYXIsdHJhbnNmb3JtIDEwMG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTc1JSwgLTUwJSl9Lm1kYy1ldm9sdXRpb24tY2hpcC0tZGVzZWxlY3RpbmcgLm1kYy1ldm9sdXRpb24tY2hpcF9fY2hlY2ttYXJrLXBhdGh7c3Ryb2tlLWRhc2hvZmZzZXQ6MH0ubWRjLWV2b2x1dGlvbi1jaGlwLS1zZWxlY3Rpbmctd2l0aC1wcmltYXJ5LWljb24gLm1kYy1ldm9sdXRpb24tY2hpcF9faWNvbi0tcHJpbWFyeXt0cmFuc2l0aW9uOm9wYWNpdHkgNzVtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKX0ubWRjLWV2b2x1dGlvbi1jaGlwLS1zZWxlY3Rpbmctd2l0aC1wcmltYXJ5LWljb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fY2hlY2ttYXJrLXBhdGh7dHJhbnNpdGlvbjpzdHJva2UtZGFzaG9mZnNldCAxNTBtcyA3NW1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9Lm1kYy1ldm9sdXRpb24tY2hpcC0tZGVzZWxlY3Rpbmctd2l0aC1wcmltYXJ5LWljb24gLm1kYy1ldm9sdXRpb24tY2hpcF9faWNvbi0tcHJpbWFyeXt0cmFuc2l0aW9uOm9wYWNpdHkgMTUwbXMgNzVtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpfS5tZGMtZXZvbHV0aW9uLWNoaXAtLWRlc2VsZWN0aW5nLXdpdGgtcHJpbWFyeS1pY29uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2NoZWNrbWFya3t0cmFuc2l0aW9uOm9wYWNpdHkgNzVtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpfS5tZGMtZXZvbHV0aW9uLWNoaXAtLWRlc2VsZWN0aW5nLXdpdGgtcHJpbWFyeS1pY29uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2NoZWNrbWFyay1wYXRoe3N0cm9rZS1kYXNob2Zmc2V0OjB9Lm1kYy1ldm9sdXRpb24tY2hpcC0tc2VsZWN0ZWQgLm1kYy1ldm9sdXRpb24tY2hpcF9faWNvbi0tcHJpbWFyeXtvcGFjaXR5OjB9Lm1kYy1ldm9sdXRpb24tY2hpcC0tc2VsZWN0ZWQgLm1kYy1ldm9sdXRpb24tY2hpcF9fY2hlY2ttYXJre3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7b3BhY2l0eToxfS5tZGMtZXZvbHV0aW9uLWNoaXAtLXNlbGVjdGVkIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2NoZWNrbWFyay1wYXRoe3N0cm9rZS1kYXNob2Zmc2V0OjB9QGtleWZyYW1lcyBtZGMtZXZvbHV0aW9uLWNoaXAtZW50ZXJ7ZnJvbXt0cmFuc2Zvcm06c2NhbGUoMC44KTtvcGFjaXR5Oi40fXRve3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9fS5tZGMtZXZvbHV0aW9uLWNoaXAtLWVudGVye2FuaW1hdGlvbjptZGMtZXZvbHV0aW9uLWNoaXAtZW50ZXIgMTAwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpfUBrZXlmcmFtZXMgbWRjLWV2b2x1dGlvbi1jaGlwLWV4aXR7ZnJvbXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX0ubWRjLWV2b2x1dGlvbi1jaGlwLS1leGl0e2FuaW1hdGlvbjptZGMtZXZvbHV0aW9uLWNoaXAtZXhpdCA3NW1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKX0ubWRjLWV2b2x1dGlvbi1jaGlwLS1oaWRkZW57b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjp3aWR0aCAxNTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSl9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcCAubWRjLWV2b2x1dGlvbi1jaGlwX19jaGVja21hcmt7aGVpZ2h0OjIwcHg7d2lkdGg6MjBweH0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2ljb24tLXRyYWlsaW5ne2hlaWdodDoxOHB4O3dpZHRoOjE4cHg7Zm9udC1zaXplOjE4cHh9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcCAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnl7cGFkZGluZy1sZWZ0OjEycHg7cGFkZGluZy1yaWdodDoxMnB4fVtkaXI9cnRsXSAubWF0LW1kYy1zdGFuZGFyZC1jaGlwIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeSwubWF0LW1kYy1zdGFuZGFyZC1jaGlwIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeVtkaXI9cnRsXXtwYWRkaW5nLWxlZnQ6MTJweDtwYWRkaW5nLXJpZ2h0OjEycHh9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2dyYXBoaWN7cGFkZGluZy1sZWZ0OjZweDtwYWRkaW5nLXJpZ2h0OjZweH1bZGlyPXJ0bF0gLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2dyYXBoaWMsLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2dyYXBoaWNbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjZweDtwYWRkaW5nLXJpZ2h0OjZweH0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMgLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5e3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MTJweH1bZGlyPXJ0bF0gLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeSwubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMgLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5W2Rpcj1ydGxde3BhZGRpbmctbGVmdDoxMnB4O3BhZGRpbmctcmlnaHQ6MH0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS10cmFpbGluZ3twYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6OHB4fVtkaXI9cnRsXSAubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS10cmFpbGluZywubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS10cmFpbGluZ1tkaXI9cnRsXXtwYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6OHB4fS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19yaXBwbGUtLXRyYWlsaW5ne2xlZnQ6OHB4O3JpZ2h0OmluaXRpYWx9W2Rpcj1ydGxdIC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19yaXBwbGUtLXRyYWlsaW5nLC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19yaXBwbGUtLXRyYWlsaW5nW2Rpcj1ydGxde2xlZnQ6aW5pdGlhbDtyaWdodDo4cHh9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeXtwYWRkaW5nLWxlZnQ6MTJweDtwYWRkaW5nLXJpZ2h0OjB9W2Rpcj1ydGxdIC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnksLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeVtkaXI9cnRsXXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjEycHh9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fZ3JhcGhpY3twYWRkaW5nLWxlZnQ6NnB4O3BhZGRpbmctcmlnaHQ6NnB4fVtkaXI9cnRsXSAubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGljLC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYy5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2dyYXBoaWNbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjZweDtwYWRkaW5nLXJpZ2h0OjZweH0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXRyYWlsaW5ne3BhZGRpbmctbGVmdDo4cHg7cGFkZGluZy1yaWdodDo4cHh9W2Rpcj1ydGxdIC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYy5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tdHJhaWxpbmcsLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS10cmFpbGluZ1tkaXI9cnRsXXtwYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6OHB4fS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYy5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX3JpcHBsZS0tdHJhaWxpbmd7bGVmdDo4cHg7cmlnaHQ6aW5pdGlhbH1bZGlyPXJ0bF0gLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fcmlwcGxlLS10cmFpbGluZywubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19yaXBwbGUtLXRyYWlsaW5nW2Rpcj1ydGxde2xlZnQ6aW5pdGlhbDtyaWdodDo4cHh9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5e3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH1bZGlyPXJ0bF0gLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5LC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYy5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeVtkaXI9cnRsXXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjB9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLWRpc2FibGVkIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2NoZWNrbWFya3tjb2xvcjp2YXIoLS1tZGMtY2hpcC13aXRoLWljb24tc2VsZWN0ZWQtaWNvbi1jb2xvciwgY3VycmVudENvbG9yKX0ubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLWF2YXRhci5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2dyYXBoaWN7cGFkZGluZy1sZWZ0OjRweDtwYWRkaW5nLXJpZ2h0OjhweH1bZGlyPXJ0bF0gLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1hdmF0YXIubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYyAubWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGljLC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMgLm1kYy1ldm9sdXRpb24tY2hpcF9fZ3JhcGhpY1tkaXI9cnRsXXtwYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6NHB4fS5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMgLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5e3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MTJweH1bZGlyPXJ0bF0gLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1hdmF0YXIubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYyAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnksLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1hdmF0YXIubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYyAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnlbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjEycHg7cGFkZGluZy1yaWdodDowfS5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGlje3BhZGRpbmctbGVmdDo0cHg7cGFkZGluZy1yaWdodDo4cHh9W2Rpcj1ydGxdIC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGljLC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19ncmFwaGljW2Rpcj1ydGxde3BhZGRpbmctbGVmdDo4cHg7cGFkZGluZy1yaWdodDo0cHh9Lm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1hdmF0YXIubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYy5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tdHJhaWxpbmd7cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjhweH1bZGlyPXJ0bF0gLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1hdmF0YXIubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYy5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tdHJhaWxpbmcsLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1hdmF0YXIubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktZ3JhcGhpYy5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtdHJhaWxpbmctYWN0aW9uIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tdHJhaWxpbmdbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjhweH0ubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLWF2YXRhci5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fcmlwcGxlLS10cmFpbGluZ3tsZWZ0OjhweDtyaWdodDppbml0aWFsfVtkaXI9cnRsXSAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLWF2YXRhci5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fcmlwcGxlLS10cmFpbGluZywubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLWF2YXRhci5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fcmlwcGxlLS10cmFpbGluZ1tkaXI9cnRsXXtsZWZ0OmluaXRpYWw7cmlnaHQ6OHB4fS5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnl7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfVtkaXI9cnRsXSAubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLWF2YXRhci5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtcHJpbWFyeS1ncmFwaGljLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5LC5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWdyYXBoaWMubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXRyYWlsaW5nLWFjdGlvbiAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnlbZGlyPXJ0bF17cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfS5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyLm1kYy1ldm9sdXRpb24tY2hpcC0tc2VsZWN0YWJsZTpub3QoLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC1wcmltYXJ5LWljb24pey0tbWRjLWNoaXAtZ3JhcGhpYy1zZWxlY3RlZC13aWR0aDoyNHB4fS5tZGMtZXZvbHV0aW9uLWNoaXAtLXdpdGgtYXZhdGFyIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2dyYXBoaWN7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweDtmb250LXNpemU6MjRweH0ubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLWF2YXRhciAubWRjLWV2b2x1dGlvbi1jaGlwX19pY29uLS1wcmltYXJ5e2hlaWdodDoyNHB4O3dpZHRoOjI0cHg7Zm9udC1zaXplOjI0cHh9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcHstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItcmFkaXVzOnZhcigtLW1kYy1jaGlwLWNvbnRhaW5lci1zaGFwZS1yYWRpdXMsIDE2cHggMTZweCAxNnB4IDE2cHgpO2hlaWdodDp2YXIoLS1tZGMtY2hpcC1jb250YWluZXItaGVpZ2h0LCAzMnB4KX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwIC5tZGMtZXZvbHV0aW9uLWNoaXBfX3JpcHBsZXtib3JkZXItcmFkaXVzOnZhcigtLW1kYy1jaGlwLWNvbnRhaW5lci1zaGFwZS1yYWRpdXMsIDE2cHggMTZweCAxNnB4IDE2cHgpfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAgLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5OmJlZm9yZXtib3JkZXItcmFkaXVzOnZhcigtLW1kYy1jaGlwLWNvbnRhaW5lci1zaGFwZS1yYWRpdXMsIDE2cHggMTZweCAxNnB4IDE2cHgpfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAgLm1kYy1ldm9sdXRpb24tY2hpcF9faWNvbi0tcHJpbWFyeXtib3JkZXItcmFkaXVzOnZhcigtLW1kYy1jaGlwLXdpdGgtYXZhdGFyLWF2YXRhci1zaGFwZS1yYWRpdXMsIDE0cHggMTRweCAxNHB4IDE0cHgpfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS1zZWxlY3RhYmxlOm5vdCgubWRjLWV2b2x1dGlvbi1jaGlwLS13aXRoLXByaW1hcnktaWNvbil7LS1tZGMtY2hpcC1ncmFwaGljLXNlbGVjdGVkLXdpZHRoOnZhcigtLW1kYy1jaGlwLXdpdGgtYXZhdGFyLWF2YXRhci1zaXplLCAyOHB4KX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2dyYXBoaWN7aGVpZ2h0OnZhcigtLW1kYy1jaGlwLXdpdGgtYXZhdGFyLWF2YXRhci1zaXplLCAyOHB4KTt3aWR0aDp2YXIoLS1tZGMtY2hpcC13aXRoLWF2YXRhci1hdmF0YXItc2l6ZSwgMjhweCk7Zm9udC1zaXplOnZhcigtLW1kYy1jaGlwLXdpdGgtYXZhdGFyLWF2YXRhci1zaXplLCAyOHB4KX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeTpiZWZvcmV7Ym9yZGVyLXdpZHRoOnZhcigtLW1kYy1jaGlwLW91dGxpbmUtd2lkdGgsIDFweCl9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcCAubWRjLWV2b2x1dGlvbi1jaGlwX19hY3Rpb24tLXByaW1hcnk6YmVmb3Jle2JvcmRlci13aWR0aDp2YXIoLS1tZGMtY2hpcC1mbGF0LW91dGxpbmUtd2lkdGgsIDFweCl9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLXNlbGVjdGVkIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeTpiZWZvcmV7Ym9yZGVyLXdpZHRoOnZhcigtLW1kYy1jaGlwLWZsYXQtc2VsZWN0ZWQtb3V0bGluZS13aWR0aCwgMCl9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcDpub3QoLm1kYy1ldm9sdXRpb24tY2hpcC0tc2VsZWN0ZWQpIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeTpiZWZvcmV7Ym9yZGVyLXdpZHRoOnZhcigtLW1kYy1jaGlwLWZsYXQtdW5zZWxlY3RlZC1vdXRsaW5lLXdpZHRoLCAxcHgpfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXA6bm90KC5tZGMtZXZvbHV0aW9uLWNoaXAtLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1jaGlwLWVsZXZhdGVkLWNvbnRhaW5lci1jb2xvciwgdHJhbnNwYXJlbnQpfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1kYy1jaGlwLWVsZXZhdGVkLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvciwgdHJhbnNwYXJlbnQpfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS1zZWxlY3RlZC5tZGMtZXZvbHV0aW9uLWNoaXAtLWRpc2FibGVke2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWRjLWNoaXAtZWxldmF0ZWQtZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yLCB0cmFuc3BhcmVudCl9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcDpub3QoLm1kYy1ldm9sdXRpb24tY2hpcC0tZGlzYWJsZWQpIC5tZGMtZXZvbHV0aW9uLWNoaXBfX3RleHQtbGFiZWx7Y29sb3I6dmFyKC0tbWRjLWNoaXAtbGFiZWwtdGV4dC1jb2xvciwgY3VycmVudENvbG9yKX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0tZGlzYWJsZWQgLm1kYy1ldm9sdXRpb24tY2hpcF9fdGV4dC1sYWJlbHtjb2xvcjp2YXIoLS1tZGMtY2hpcC1kaXNhYmxlZC1sYWJlbC10ZXh0LWNvbG9yLCBjdXJyZW50Q29sb3IpfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS1zZWxlY3RlZC5tZGMtZXZvbHV0aW9uLWNoaXAtLWRpc2FibGVkIC5tZGMtZXZvbHV0aW9uLWNoaXBfX3RleHQtbGFiZWx7Y29sb3I6dmFyKC0tbWRjLWNoaXAtZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvciwgY3VycmVudENvbG9yKX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2ljb24tLXByaW1hcnl7aGVpZ2h0OnZhcigtLW1kYy1jaGlwLXdpdGgtaWNvbi1pY29uLXNpemUsIDE4cHgpO3dpZHRoOnZhcigtLW1kYy1jaGlwLXdpdGgtaWNvbi1pY29uLXNpemUsIDE4cHgpO2ZvbnQtc2l6ZTp2YXIoLS1tZGMtY2hpcC13aXRoLWljb24taWNvbi1zaXplLCAxOHB4KX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwOm5vdCgubWRjLWV2b2x1dGlvbi1jaGlwLS1kaXNhYmxlZCkgLm1kYy1ldm9sdXRpb24tY2hpcF9faWNvbi0tcHJpbWFyeXtjb2xvcjp2YXIoLS1tZGMtY2hpcC13aXRoLWljb24taWNvbi1jb2xvciwgY3VycmVudENvbG9yKX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0tZGlzYWJsZWQgLm1kYy1ldm9sdXRpb24tY2hpcF9faWNvbi0tcHJpbWFyeXtjb2xvcjp2YXIoLS1tZGMtY2hpcC13aXRoLWljb24tZGlzYWJsZWQtaWNvbi1jb2xvciwgY3VycmVudENvbG9yKX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwOm5vdCgubWRjLWV2b2x1dGlvbi1jaGlwLS1kaXNhYmxlZCkgLm1kYy1ldm9sdXRpb24tY2hpcF9fY2hlY2ttYXJre2NvbG9yOnZhcigtLW1kYy1jaGlwLXdpdGgtaWNvbi1zZWxlY3RlZC1pY29uLWNvbG9yLCBjdXJyZW50Q29sb3IpfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS1kaXNhYmxlZCAubWRjLWV2b2x1dGlvbi1jaGlwX19jaGVja21hcmt7Y29sb3I6dmFyKC0tbWRjLWNoaXAtd2l0aC1pY29uLWRpc2FibGVkLWljb24tY29sb3IsIGN1cnJlbnRDb2xvcil9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcDpub3QoLm1kYy1ldm9sdXRpb24tY2hpcC0tZGlzYWJsZWQpIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2ljb24tLXRyYWlsaW5ne2NvbG9yOnZhcigtLW1kYy1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi10cmFpbGluZy1pY29uLWNvbG9yLCBjdXJyZW50Q29sb3IpfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWRjLWV2b2x1dGlvbi1jaGlwLS1kaXNhYmxlZCAubWRjLWV2b2x1dGlvbi1jaGlwX19pY29uLS10cmFpbGluZ3tjb2xvcjp2YXIoLS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tZGlzYWJsZWQtdHJhaWxpbmctaWNvbi1jb2xvciwgY3VycmVudENvbG9yKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWRjLXN0YW5kYXJkLWNoaXB7b3V0bGluZTpzb2xpZCAxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1kYy1zdGFuZGFyZC1jaGlwIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2NoZWNrbWFyay1wYXRoe3N0cm9rZTpDYW52YXNUZXh0ICFpbXBvcnRhbnR9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tZGMtZXZvbHV0aW9uLWNoaXAtLWRpc2FibGVke29wYWNpdHk6LjR9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcCAubWRjLWV2b2x1dGlvbi1jaGlwX19jZWxsLS1wcmltYXJ5LC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAgLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5LC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAgLm1hdC1tZGMtY2hpcC1hY3Rpb24tbGFiZWx7b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2NlbGwtLXByaW1hcnl7d2lkdGg6MTAwJX0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2FjdGlvbi0tcHJpbWFyeXtmb250OmluaGVyaXQ7bGV0dGVyLXNwYWNpbmc6aW5oZXJpdDt3aGl0ZS1zcGFjZTppbmhlcml0fS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAgLm1hdC1tZGMtY2hpcC1ncmFwaGljLC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAgLm1hdC1tZGMtY2hpcC10cmFpbGluZy1pY29ue2JveC1zaXppbmc6Y29udGVudC1ib3h9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSwubWF0LW1kYy1zdGFuZGFyZC1jaGlwLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tZGMtZXZvbHV0aW9uLWNoaXBfX2dyYXBoaWMsLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWRjLWV2b2x1dGlvbi1jaGlwX19jaGVja21hcmssLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWRjLWV2b2x1dGlvbi1jaGlwX19jaGVja21hcmstcGF0aHt0cmFuc2l0aW9uLWR1cmF0aW9uOjFtczthbmltYXRpb24tZHVyYXRpb246MW1zfS5tYXQtbWRjLWJhc2ljLWNoaXAgLm1kYy1ldm9sdXRpb24tY2hpcF9fYWN0aW9uLS1wcmltYXJ5e2ZvbnQ6aW5oZXJpdH0ubWF0LW1kYy1jaGlwLWZvY3VzLW92ZXJsYXl7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OjA7Ym9yZGVyLXJhZGl1czppbmhlcml0O3RyYW5zaXRpb246b3BhY2l0eSAxNTBtcyBsaW5lYXJ9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtbWRjLWNoaXAtZm9jdXMtb3ZlcmxheXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1tZGMtYmFzaWMtY2hpcCAubWF0LW1kYy1jaGlwLWZvY3VzLW92ZXJsYXl7ZGlzcGxheTpub25lfS5tYXQtbWRjLWNoaXA6aG92ZXIgLm1hdC1tZGMtY2hpcC1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjA0fS5tYXQtbWRjLWNoaXAuY2RrLWZvY3VzZWQgLm1hdC1tZGMtY2hpcC1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5tYXQtbWRjLWNoaXAtcmlwcGxle3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXJhZGl1czppbmhlcml0fS5tYXQtbWRjLWNoaXAtYXZhdGFye3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjE7Y29sb3I6dmFyKC0tbWRjLWNoaXAtd2l0aC1pY29uLWljb24tY29sb3IsIGN1cnJlbnRDb2xvcil9Lm1hdC1tZGMtY2hpcHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjB9Lm1hdC1tZGMtY2hpcC1hY3Rpb24tbGFiZWx7dGV4dC1hbGlnbjpsZWZ0O3otaW5kZXg6MX1bZGlyPXJ0bF0gLm1hdC1tZGMtY2hpcC1hY3Rpb24tbGFiZWx7dGV4dC1hbGlnbjpyaWdodH0ubWF0LW1kYy1jaGlwLm1kYy1ldm9sdXRpb24tY2hpcC0td2l0aC10cmFpbGluZy1hY3Rpb24gLm1hdC1tZGMtY2hpcC1hY3Rpb24tbGFiZWx7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtY2hpcC1hY3Rpb24tbGFiZWwgLm1hdC1tZGMtY2hpcC1wcmltYXJ5LWZvY3VzLWluZGljYXRvcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MDtwb2ludGVyLWV2ZW50czpub25lfS5tYXQtbWRjLWNoaXAtYWN0aW9uLWxhYmVsIC5tYXQtbWRjLWZvY3VzLWluZGljYXRvcjo6YmVmb3Jle21hcmdpbjpjYWxjKGNhbGModmFyKC0tbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoLCAzcHgpICsgMnB4KSAqIC0xKX0ubWF0LW1kYy1jaGlwLXJlbW92ZXtvcGFjaXR5Oi41NH0ubWF0LW1kYy1jaGlwLXJlbW92ZTpmb2N1c3tvcGFjaXR5OjF9Lm1hdC1tZGMtY2hpcC1yZW1vdmU6OmJlZm9yZXttYXJnaW46Y2FsYyh2YXIoLS1tYXQtbWRjLWZvY3VzLWluZGljYXRvci1ib3JkZXItd2lkdGgsIDNweCkgKiAtMSk7bGVmdDo4cHg7cmlnaHQ6OHB4fS5tYXQtbWRjLWNoaXAtcmVtb3ZlIC5tYXQtaWNvbnt3aWR0aDppbmhlcml0O2hlaWdodDppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2JveC1zaXppbmc6Y29udGVudC1ib3h9Lm1hdC1jaGlwLWVkaXQtaW5wdXR7Y3Vyc29yOnRleHQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6aW5oZXJpdDtvdXRsaW5lOjB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1kYy1jaGlwLXNlbGVjdGVkOm5vdCgubWF0LW1kYy1jaGlwLW11bHRpcGxlKXtvdXRsaW5lLXdpZHRoOjNweH0ubWF0LW1kYy1jaGlwLWFjdGlvbjpmb2N1cyAubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXtjb250ZW50OiIifSddLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLHo0ZT1EYyhjbGFzc3tjb25zdHJ1Y3Rvcih0KXt9fSkseUE9KCgpPT57Y2xhc3MgbiBleHRlbmRzIHo0ZXtnZXQgY2hpcEZvY3VzQ2hhbmdlcygpe3JldHVybiB0aGlzLl9nZXRDaGlwU3RyZWFtKGU9PmUuX29uRm9jdXMpfWdldCBjaGlwRGVzdHJveWVkQ2hhbmdlcygpe3JldHVybiB0aGlzLl9nZXRDaGlwU3RyZWFtKGU9PmUuZGVzdHJveWVkKX1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZWR9c2V0IGRpc2FibGVkKGUpe3RoaXMuX2Rpc2FibGVkPXZ0KGUpLHRoaXMuX3N5bmNDaGlwc1N0YXRlKCl9Z2V0IGVtcHR5KCl7cmV0dXJuIDA9PT10aGlzLl9jaGlwcy5sZW5ndGh9Z2V0IHJvbGUoKXtyZXR1cm4gdGhpcy5fZXhwbGljaXRSb2xlP3RoaXMuX2V4cGxpY2l0Um9sZTp0aGlzLmVtcHR5P251bGw6dGhpcy5fZGVmYXVsdFJvbGV9c2V0IHJvbGUoZSl7dGhpcy5fZXhwbGljaXRSb2xlPWV9Z2V0IGZvY3VzZWQoKXtyZXR1cm4gdGhpcy5faGFzRm9jdXNlZENoaXAoKX1jb25zdHJ1Y3RvcihlLGkscil7c3VwZXIoZSksdGhpcy5fZWxlbWVudFJlZj1lLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWksdGhpcy5fZGlyPXIsdGhpcy5fbGFzdERlc3Ryb3llZEZvY3VzZWRDaGlwSW5kZXg9bnVsbCx0aGlzLl9kZXN0cm95ZWQ9bmV3IEVlLHRoaXMuX2RlZmF1bHRSb2xlPSJwcmVzZW50YXRpb24iLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuX2V4cGxpY2l0Um9sZT1udWxsLHRoaXMuX2NoaXBBY3Rpb25zPW5ldyBQYX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9zZXRVcEZvY3VzTWFuYWdlbWVudCgpLHRoaXMuX3RyYWNrQ2hpcFNldENoYW5nZXMoKSx0aGlzLl90cmFja0Rlc3Ryb3llZEZvY3VzZWRDaGlwKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9rZXlNYW5hZ2VyPy5kZXN0cm95KCksdGhpcy5fY2hpcEFjdGlvbnMuZGVzdHJveSgpLHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCksdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCl9X2hhc0ZvY3VzZWRDaGlwKCl7cmV0dXJuIHRoaXMuX2NoaXBzJiZ0aGlzLl9jaGlwcy5zb21lKGU9PmUuX2hhc0ZvY3VzKCkpfV9zeW5jQ2hpcHNTdGF0ZSgpe3RoaXMuX2NoaXBzJiZ0aGlzLl9jaGlwcy5mb3JFYWNoKGU9PntlLmRpc2FibGVkPXRoaXMuX2Rpc2FibGVkLGUuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfSl9Zm9jdXMoKXt9X2hhbmRsZUtleWRvd24oZSl7dGhpcy5fb3JpZ2luYXRlc0Zyb21DaGlwKGUpJiZ0aGlzLl9rZXlNYW5hZ2VyLm9uS2V5ZG93bihlKX1faXNWYWxpZEluZGV4KGUpe3JldHVybiBlPj0wJiZlPHRoaXMuX2NoaXBzLmxlbmd0aH1fYWxsb3dGb2N1c0VzY2FwZSgpe2lmKC0xIT09dGhpcy50YWJJbmRleCl7bGV0IGU9dGhpcy50YWJJbmRleDt0aGlzLnRhYkluZGV4PS0xLHNldFRpbWVvdXQoKCk9PnRoaXMudGFiSW5kZXg9ZSl9fV9nZXRDaGlwU3RyZWFtKGUpe3JldHVybiB0aGlzLl9jaGlwcy5jaGFuZ2VzLnBpcGUoa24obnVsbCksSm4oKCk9PnRuKC4uLnRoaXMuX2NoaXBzLm1hcChlKSkpKX1fb3JpZ2luYXRlc0Zyb21DaGlwKGUpe2xldCBpPWUudGFyZ2V0O2Zvcig7aSYmaSE9PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDspe2lmKGkuY2xhc3NMaXN0LmNvbnRhaW5zKCJtYXQtbWRjLWNoaXAiKSlyZXR1cm4hMDtpPWkucGFyZW50RWxlbWVudH1yZXR1cm4hMX1fc2V0VXBGb2N1c01hbmFnZW1lbnQoKXt0aGlzLl9jaGlwcy5jaGFuZ2VzLnBpcGUoa24odGhpcy5fY2hpcHMpKS5zdWJzY3JpYmUoZT0+e2xldCBpPVtdO2UuZm9yRWFjaChyPT5yLl9nZXRBY3Rpb25zKCkuZm9yRWFjaChvPT5pLnB1c2gobykpKSx0aGlzLl9jaGlwQWN0aW9ucy5yZXNldChpKSx0aGlzLl9jaGlwQWN0aW9ucy5ub3RpZnlPbkNoYW5nZXMoKX0pLHRoaXMuX2tleU1hbmFnZXI9bmV3IGt1KHRoaXMuX2NoaXBBY3Rpb25zKS53aXRoVmVydGljYWxPcmllbnRhdGlvbigpLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5fZGlyP3RoaXMuX2Rpci52YWx1ZToibHRyIikud2l0aEhvbWVBbmRFbmQoKS5za2lwUHJlZGljYXRlKGU9PnRoaXMuX3NraXBQcmVkaWNhdGUoZSkpLHRoaXMuY2hpcEZvY3VzQ2hhbmdlcy5waXBlKGl0KHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoe2NoaXA6ZX0pPT57bGV0IGk9ZS5fZ2V0U291cmNlQWN0aW9uKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO2kmJnRoaXMuX2tleU1hbmFnZXIudXBkYXRlQWN0aXZlSXRlbShpKX0pLHRoaXMuX2Rpcj8uY2hhbmdlLnBpcGUoaXQodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKGU9PnRoaXMuX2tleU1hbmFnZXIud2l0aEhvcml6b250YWxPcmllbnRhdGlvbihlKSl9X3NraXBQcmVkaWNhdGUoZSl7cmV0dXJuIWUuaXNJbnRlcmFjdGl2ZXx8ZS5kaXNhYmxlZH1fdHJhY2tDaGlwU2V0Q2hhbmdlcygpe3RoaXMuX2NoaXBzLmNoYW5nZXMucGlwZShrbihudWxsKSxpdCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmRpc2FibGVkJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLl9zeW5jQ2hpcHNTdGF0ZSgpKSx0aGlzLl9yZWRpcmVjdERlc3Ryb3llZENoaXBGb2N1cygpfSl9X3RyYWNrRGVzdHJveWVkRm9jdXNlZENoaXAoKXt0aGlzLmNoaXBEZXN0cm95ZWRDaGFuZ2VzLnBpcGUoaXQodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKGU9PntsZXQgcj10aGlzLl9jaGlwcy50b0FycmF5KCkuaW5kZXhPZihlLmNoaXApO3RoaXMuX2lzVmFsaWRJbmRleChyKSYmZS5jaGlwLl9oYXNGb2N1cygpJiYodGhpcy5fbGFzdERlc3Ryb3llZEZvY3VzZWRDaGlwSW5kZXg9cil9KX1fcmVkaXJlY3REZXN0cm95ZWRDaGlwRm9jdXMoKXtpZihudWxsIT10aGlzLl9sYXN0RGVzdHJveWVkRm9jdXNlZENoaXBJbmRleCl7aWYodGhpcy5fY2hpcHMubGVuZ3RoKXtsZXQgZT1NYXRoLm1pbih0aGlzLl9sYXN0RGVzdHJveWVkRm9jdXNlZENoaXBJbmRleCx0aGlzLl9jaGlwcy5sZW5ndGgtMSksaT10aGlzLl9jaGlwcy50b0FycmF5KClbZV07aS5kaXNhYmxlZD8xPT09dGhpcy5fY2hpcHMubGVuZ3RoP3RoaXMuZm9jdXMoKTp0aGlzLl9rZXlNYW5hZ2VyLnNldFByZXZpb3VzSXRlbUFjdGl2ZSgpOmkuZm9jdXMoKX1lbHNlIHRoaXMuZm9jdXMoKTt0aGlzLl9sYXN0RGVzdHJveWVkRm9jdXNlZENoaXBJbmRleD1udWxsfX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyh4ZSksQyhRdCksQyh6aSw4KSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sibWF0LWNoaXAtc2V0Il1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGUsaSxyKXtpZigxJmUmJkJuKHIsZUMsNSksMiZlKXtsZXQgbztiZShvPXZlKCkpJiYoaS5fY2hpcHM9byl9fSxob3N0QXR0cnM6WzEsIm1hdC1tZGMtY2hpcC1zZXQiLCJtZGMtZXZvbHV0aW9uLWNoaXAtc2V0Il0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZSxpKXsxJmUmJkEoImtleWRvd24iLGZ1bmN0aW9uKG8pe3JldHVybiBpLl9oYW5kbGVLZXlkb3duKG8pfSksMiZlJiZCZSgicm9sZSIsaS5yb2xlKX0saW5wdXRzOntkaXNhYmxlZDoiZGlzYWJsZWQiLHJvbGU6InJvbGUifSxmZWF0dXJlczpbWGVdLG5nQ29udGVudFNlbGVjdG9yczpHbmUsZGVjbHM6Mix2YXJzOjAsY29uc3RzOltbInJvbGUiLCJwcmVzZW50YXRpb24iLDEsIm1kYy1ldm9sdXRpb24tY2hpcC1zZXRfX2NoaXBzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZm4oKSxmKDAsImRpdiIsMCksVHQoMSksZygpKX0sc3R5bGVzOlsiLm1kYy1ldm9sdXRpb24tY2hpcC1zZXR7ZGlzcGxheTpmbGV4fS5tZGMtZXZvbHV0aW9uLWNoaXAtc2V0OmZvY3Vze291dGxpbmU6bm9uZX0ubWRjLWV2b2x1dGlvbi1jaGlwLXNldF9fY2hpcHN7ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzp3cmFwO21pbi13aWR0aDowfS5tZGMtZXZvbHV0aW9uLWNoaXAtc2V0LS1vdmVyZmxvdyAubWRjLWV2b2x1dGlvbi1jaGlwLXNldF9fY2hpcHN7ZmxleC1mbG93Om5vd3JhcH0ubWRjLWV2b2x1dGlvbi1jaGlwLXNldCAubWRjLWV2b2x1dGlvbi1jaGlwLXNldF9fY2hpcHN7bWFyZ2luLWxlZnQ6LThweDttYXJnaW4tcmlnaHQ6MH1bZGlyPXJ0bF0gLm1kYy1ldm9sdXRpb24tY2hpcC1zZXQgLm1kYy1ldm9sdXRpb24tY2hpcC1zZXRfX2NoaXBzLC5tZGMtZXZvbHV0aW9uLWNoaXAtc2V0IC5tZGMtZXZvbHV0aW9uLWNoaXAtc2V0X19jaGlwc1tkaXI9cnRsXXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDotOHB4fS5tZGMtZXZvbHV0aW9uLWNoaXAtc2V0IC5tZGMtZXZvbHV0aW9uLWNoaXB7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDowfVtkaXI9cnRsXSAubWRjLWV2b2x1dGlvbi1jaGlwLXNldCAubWRjLWV2b2x1dGlvbi1jaGlwLC5tZGMtZXZvbHV0aW9uLWNoaXAtc2V0IC5tZGMtZXZvbHV0aW9uLWNoaXBbZGlyPXJ0bF17bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6OHB4fS5tZGMtZXZvbHV0aW9uLWNoaXAtc2V0IC5tZGMtZXZvbHV0aW9uLWNoaXB7bWFyZ2luLXRvcDo0cHg7bWFyZ2luLWJvdHRvbTo0cHh9Lm1hdC1tZGMtY2hpcC1zZXQgLm1kYy1ldm9sdXRpb24tY2hpcC1zZXRfX2NoaXBze21pbi13aWR0aDoxMDAlfS5tYXQtbWRjLWNoaXAtc2V0LXN0YWNrZWR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lm1hdC1tZGMtY2hpcC1zZXQtc3RhY2tlZCAubWF0LW1kYy1jaGlwe3dpZHRoOjEwMCV9aW5wdXQubWF0LW1kYy1jaGlwLWlucHV0e2ZsZXg6MSAwIDE1MHB4O21hcmdpbi1sZWZ0OjhweH1bZGlyPXJ0bF0gaW5wdXQubWF0LW1kYy1jaGlwLWlucHV0e21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjhweH0iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxVNGU9e3Byb3ZpZGU6WHIsdXNlRXhpc3Rpbmc6V24oKCk9Pmo0ZSksbXVsdGk6ITB9LGo0ZT0oKCk9PntjbGFzcyBuIGV4dGVuZHMgeUF7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX29uVG91Y2hlZD0oKT0+e30sdGhpcy5fb25DaGFuZ2U9KCk9Pnt9LHRoaXMuX2RlZmF1bHRSb2xlPSJsaXN0Ym94Iix0aGlzLl9kZWZhdWx0T3B0aW9ucz0kbihSVix7b3B0aW9uYWw6ITB9KSx0aGlzLl9tdWx0aXBsZT0hMSx0aGlzLmFyaWFPcmllbnRhdGlvbj0iaG9yaXpvbnRhbCIsdGhpcy5fc2VsZWN0YWJsZT0hMCx0aGlzLmNvbXBhcmVXaXRoPShlLGkpPT5lPT09aSx0aGlzLl9yZXF1aXJlZD0hMSx0aGlzLl9oaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yPXRoaXMuX2RlZmF1bHRPcHRpb25zPy5oaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yPz8hMSx0aGlzLmNoYW5nZT1uZXcgRn1nZXQgbXVsdGlwbGUoKXtyZXR1cm4gdGhpcy5fbXVsdGlwbGV9c2V0IG11bHRpcGxlKGUpe3RoaXMuX211bHRpcGxlPXZ0KGUpLHRoaXMuX3N5bmNMaXN0Ym94UHJvcGVydGllcygpfWdldCBzZWxlY3RlZCgpe2xldCBlPXRoaXMuX2NoaXBzLnRvQXJyYXkoKS5maWx0ZXIoaT0+aS5zZWxlY3RlZCk7cmV0dXJuIHRoaXMubXVsdGlwbGU/ZTplWzBdfWdldCBzZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGFibGV9c2V0IHNlbGVjdGFibGUoZSl7dGhpcy5fc2VsZWN0YWJsZT12dChlKSx0aGlzLl9zeW5jTGlzdGJveFByb3BlcnRpZXMoKX1nZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy5fcmVxdWlyZWR9c2V0IHJlcXVpcmVkKGUpe3RoaXMuX3JlcXVpcmVkPXZ0KGUpfWdldCBoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yKCl7cmV0dXJuIHRoaXMuX2hpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3J9c2V0IGhpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3IoZSl7dGhpcy5faGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvcj12dChlKSx0aGlzLl9zeW5jTGlzdGJveFByb3BlcnRpZXMoKX1nZXQgY2hpcFNlbGVjdGlvbkNoYW5nZXMoKXtyZXR1cm4gdGhpcy5fZ2V0Q2hpcFN0cmVhbShlPT5lLnNlbGVjdGlvbkNoYW5nZSl9Z2V0IGNoaXBCbHVyQ2hhbmdlcygpe3JldHVybiB0aGlzLl9nZXRDaGlwU3RyZWFtKGU9PmUuX29uQmx1cil9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfXNldCB2YWx1ZShlKXt0aGlzLndyaXRlVmFsdWUoZSksdGhpcy5fdmFsdWU9ZX1uZ0FmdGVyQ29udGVudEluaXQoKXt2b2lkIDAhPT10aGlzLl9wZW5kaW5nSW5pdGlhbFZhbHVlJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57dGhpcy5fc2V0U2VsZWN0aW9uQnlWYWx1ZSh0aGlzLl9wZW5kaW5nSW5pdGlhbFZhbHVlLCExKSx0aGlzLl9wZW5kaW5nSW5pdGlhbFZhbHVlPXZvaWQgMH0pLHRoaXMuX2NoaXBzLmNoYW5nZXMucGlwZShrbihudWxsKSxpdCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLl9zeW5jTGlzdGJveFByb3BlcnRpZXMoKX0pLHRoaXMuY2hpcEJsdXJDaGFuZ2VzLnBpcGUoaXQodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpPT50aGlzLl9ibHVyKCkpLHRoaXMuY2hpcFNlbGVjdGlvbkNoYW5nZXMucGlwZShpdCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoZT0+e3RoaXMubXVsdGlwbGV8fHRoaXMuX2NoaXBzLmZvckVhY2goaT0+e2khPT1lLnNvdXJjZSYmaS5fc2V0U2VsZWN0ZWRTdGF0ZSghMSwhMSwhMSl9KSxlLmlzVXNlcklucHV0JiZ0aGlzLl9wcm9wYWdhdGVDaGFuZ2VzKCl9KX1mb2N1cygpe2lmKHRoaXMuZGlzYWJsZWQpcmV0dXJuO2xldCBlPXRoaXMuX2dldEZpcnN0U2VsZWN0ZWRDaGlwKCk7ZSYmIWUuZGlzYWJsZWQ/ZS5mb2N1cygpOnRoaXMuX2NoaXBzLmxlbmd0aD4wP3RoaXMuX2tleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk6dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCl9d3JpdGVWYWx1ZShlKXt0aGlzLl9jaGlwcz90aGlzLl9zZXRTZWxlY3Rpb25CeVZhbHVlKGUsITEpOm51bGwhPWUmJih0aGlzLl9wZW5kaW5nSW5pdGlhbFZhbHVlPWUpfXJlZ2lzdGVyT25DaGFuZ2UoZSl7dGhpcy5fb25DaGFuZ2U9ZX1yZWdpc3Rlck9uVG91Y2hlZChlKXt0aGlzLl9vblRvdWNoZWQ9ZX1zZXREaXNhYmxlZFN0YXRlKGUpe3RoaXMuZGlzYWJsZWQ9ZX1fc2V0U2VsZWN0aW9uQnlWYWx1ZShlLGk9ITApe3RoaXMuX2NsZWFyU2VsZWN0aW9uKCksQXJyYXkuaXNBcnJheShlKT9lLmZvckVhY2gocj0+dGhpcy5fc2VsZWN0VmFsdWUocixpKSk6dGhpcy5fc2VsZWN0VmFsdWUoZSxpKX1fYmx1cigpe3RoaXMuZGlzYWJsZWR8fHNldFRpbWVvdXQoKCk9Pnt0aGlzLmZvY3VzZWR8fHRoaXMuX21hcmtBc1RvdWNoZWQoKX0pfV9rZXlkb3duKGUpezk9PT1lLmtleUNvZGUmJnN1cGVyLl9hbGxvd0ZvY3VzRXNjYXBlKCl9X21hcmtBc1RvdWNoZWQoKXt0aGlzLl9vblRvdWNoZWQoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX1fcHJvcGFnYXRlQ2hhbmdlcygpe2xldCBlPW51bGw7ZT1BcnJheS5pc0FycmF5KHRoaXMuc2VsZWN0ZWQpP3RoaXMuc2VsZWN0ZWQubWFwKGk9PmkudmFsdWUpOnRoaXMuc2VsZWN0ZWQ/dGhpcy5zZWxlY3RlZC52YWx1ZTp2b2lkIDAsdGhpcy5fdmFsdWU9ZSx0aGlzLmNoYW5nZS5lbWl0KG5ldyBjbGFzc3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuc291cmNlPXQsdGhpcy52YWx1ZT1lfX0odGhpcyxlKSksdGhpcy5fb25DaGFuZ2UoZSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9X2NsZWFyU2VsZWN0aW9uKGUpe3RoaXMuX2NoaXBzLmZvckVhY2goaT0+e2khPT1lJiZpLmRlc2VsZWN0KCl9KX1fc2VsZWN0VmFsdWUoZSxpKXtsZXQgcj10aGlzLl9jaGlwcy5maW5kKG89Pm51bGwhPW8udmFsdWUmJnRoaXMuY29tcGFyZVdpdGgoby52YWx1ZSxlKSk7cmV0dXJuIHImJihpP3Iuc2VsZWN0VmlhSW50ZXJhY3Rpb24oKTpyLnNlbGVjdCgpKSxyfV9zeW5jTGlzdGJveFByb3BlcnRpZXMoKXt0aGlzLl9jaGlwcyYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3RoaXMuX2NoaXBzLmZvckVhY2goZT0+e2UuX2NoaXBMaXN0TXVsdGlwbGU9dGhpcy5tdWx0aXBsZSxlLmNoaXBMaXN0U2VsZWN0YWJsZT10aGlzLl9zZWxlY3RhYmxlLGUuX2NoaXBMaXN0SGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvcj10aGlzLmhpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3IsZS5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KX0pfV9nZXRGaXJzdFNlbGVjdGVkQ2hpcCgpe3JldHVybiBBcnJheS5pc0FycmF5KHRoaXMuc2VsZWN0ZWQpP3RoaXMuc2VsZWN0ZWQubGVuZ3RoP3RoaXMuc2VsZWN0ZWRbMF06dm9pZCAwOnRoaXMuc2VsZWN0ZWR9X3NraXBQcmVkaWNhdGUoZSl7cmV0dXJuIWUuaXNJbnRlcmFjdGl2ZX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybih0fHwodD1YbihuKSkpKGl8fG4pfX0oKSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbIm1hdC1jaGlwLWxpc3Rib3giXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oZSxpLHIpe2lmKDEmZSYmQm4ocixINGUsNSksMiZlKXtsZXQgbztiZShvPXZlKCkpJiYoaS5fY2hpcHM9byl9fSxob3N0QXR0cnM6WzEsIm1kYy1ldm9sdXRpb24tY2hpcC1zZXQiLCJtYXQtbWRjLWNoaXAtbGlzdGJveCJdLGhvc3RWYXJzOjExLGhvc3RCaW5kaW5nczpmdW5jdGlvbihlLGkpezEmZSYmQSgiZm9jdXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGkuZm9jdXMoKX0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiBpLl9ibHVyKCl9KSgia2V5ZG93biIsZnVuY3Rpb24obyl7cmV0dXJuIGkuX2tleWRvd24obyl9KSwyJmUmJih3bygidGFiSW5kZXgiLGkuZW1wdHk/LTE6aS50YWJJbmRleCksQmUoInJvbGUiLGkucm9sZSkoImFyaWEtZGVzY3JpYmVkYnkiLGkuX2FyaWFEZXNjcmliZWRieXx8bnVsbCkoImFyaWEtcmVxdWlyZWQiLGkucm9sZT9pLnJlcXVpcmVkOm51bGwpKCJhcmlhLWRpc2FibGVkIixpLmRpc2FibGVkLnRvU3RyaW5nKCkpKCJhcmlhLW11bHRpc2VsZWN0YWJsZSIsaS5tdWx0aXBsZSkoImFyaWEtb3JpZW50YXRpb24iLGkuYXJpYU9yaWVudGF0aW9uKSxudCgibWF0LW1kYy1jaGlwLWxpc3QtZGlzYWJsZWQiLGkuZGlzYWJsZWQpKCJtYXQtbWRjLWNoaXAtbGlzdC1yZXF1aXJlZCIsaS5yZXF1aXJlZCkpfSxpbnB1dHM6e3RhYkluZGV4OiJ0YWJJbmRleCIsbXVsdGlwbGU6Im11bHRpcGxlIixhcmlhT3JpZW50YXRpb246WyJhcmlhLW9yaWVudGF0aW9uIiwiYXJpYU9yaWVudGF0aW9uIl0sc2VsZWN0YWJsZToic2VsZWN0YWJsZSIsY29tcGFyZVdpdGg6ImNvbXBhcmVXaXRoIixyZXF1aXJlZDoicmVxdWlyZWQiLGhpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3I6ImhpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3IiLHZhbHVlOiJ2YWx1ZSJ9LG91dHB1dHM6e2NoYW5nZToiY2hhbmdlIn0sZmVhdHVyZXM6W1Z0KFtVNGVdKSxYZV0sbmdDb250ZW50U2VsZWN0b3JzOkduZSxkZWNsczoyLHZhcnM6MCxjb25zdHM6W1sicm9sZSIsInByZXNlbnRhdGlvbiIsMSwibWRjLWV2b2x1dGlvbi1jaGlwLXNldF9fY2hpcHMiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmbigpLGYoMCwiZGl2IiwwKSxUdCgxKSxnKCkpfSxzdHlsZXM6WyIubWRjLWV2b2x1dGlvbi1jaGlwLXNldHtkaXNwbGF5OmZsZXh9Lm1kYy1ldm9sdXRpb24tY2hpcC1zZXQ6Zm9jdXN7b3V0bGluZTpub25lfS5tZGMtZXZvbHV0aW9uLWNoaXAtc2V0X19jaGlwc3tkaXNwbGF5OmZsZXg7ZmxleC1mbG93OndyYXA7bWluLXdpZHRoOjB9Lm1kYy1ldm9sdXRpb24tY2hpcC1zZXQtLW92ZXJmbG93IC5tZGMtZXZvbHV0aW9uLWNoaXAtc2V0X19jaGlwc3tmbGV4LWZsb3c6bm93cmFwfS5tZGMtZXZvbHV0aW9uLWNoaXAtc2V0IC5tZGMtZXZvbHV0aW9uLWNoaXAtc2V0X19jaGlwc3ttYXJnaW4tbGVmdDotOHB4O21hcmdpbi1yaWdodDowfVtkaXI9cnRsXSAubWRjLWV2b2x1dGlvbi1jaGlwLXNldCAubWRjLWV2b2x1dGlvbi1jaGlwLXNldF9fY2hpcHMsLm1kYy1ldm9sdXRpb24tY2hpcC1zZXQgLm1kYy1ldm9sdXRpb24tY2hpcC1zZXRfX2NoaXBzW2Rpcj1ydGxde21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0Oi04cHh9Lm1kYy1ldm9sdXRpb24tY2hpcC1zZXQgLm1kYy1ldm9sdXRpb24tY2hpcHttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OjB9W2Rpcj1ydGxdIC5tZGMtZXZvbHV0aW9uLWNoaXAtc2V0IC5tZGMtZXZvbHV0aW9uLWNoaXAsLm1kYy1ldm9sdXRpb24tY2hpcC1zZXQgLm1kYy1ldm9sdXRpb24tY2hpcFtkaXI9cnRsXXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDo4cHh9Lm1kYy1ldm9sdXRpb24tY2hpcC1zZXQgLm1kYy1ldm9sdXRpb24tY2hpcHttYXJnaW4tdG9wOjRweDttYXJnaW4tYm90dG9tOjRweH0ubWF0LW1kYy1jaGlwLXNldCAubWRjLWV2b2x1dGlvbi1jaGlwLXNldF9fY2hpcHN7bWluLXdpZHRoOjEwMCV9Lm1hdC1tZGMtY2hpcC1zZXQtc3RhY2tlZHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1zdGFydH0ubWF0LW1kYy1jaGlwLXNldC1zdGFja2VkIC5tYXQtbWRjLWNoaXB7d2lkdGg6MTAwJX1pbnB1dC5tYXQtbWRjLWNoaXAtaW5wdXR7ZmxleDoxIDAgMTUwcHg7bWFyZ2luLWxlZnQ6OHB4fVtkaXI9cnRsXSBpbnB1dC5tYXQtbWRjLWNoaXAtaW5wdXR7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6OHB4fSJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLHFuZT0oaGcoY2xhc3MgZXh0ZW5kcyB5QXtjb25zdHJ1Y3Rvcih0LGUsaSxyLG8sYSxzKXtzdXBlcih0LGUsaSksdGhpcy5fZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyPXIsdGhpcy5fcGFyZW50Rm9ybT1vLHRoaXMuX3BhcmVudEZvcm1Hcm91cD1hLHRoaXMubmdDb250cm9sPXMsdGhpcy5zdGF0ZUNoYW5nZXM9bmV3IEVlfX0pLCgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtwcm92aWRlcnM6W0VoLHtwcm92aWRlOlJWLHVzZVZhbHVlOntzZXBhcmF0b3JLZXlDb2RlczpbMTNdfX1dLGltcG9ydHM6W2RuLERlLF9hLGRuXX0pLG59KSgpKSxXNGU9WyJmaWx0ZXJNb2RhbFRlbXBsYXRlIl07ZnVuY3Rpb24gcTRlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwibWF0LWNoaXAiLDUpLEEoInJlbW92ZWQiLGZ1bmN0aW9uKCl7bGV0IG89bmUoZSkuJGltcGxpY2l0O3JldHVybiBpZSh3KDIpLnJlbW92ZUhwYXJhbUZpbHRlci5lbWl0KG8pKX0pKCJjbGljayIsZnVuY3Rpb24ocil7bGV0IGE9bmUoZSkuJGltcGxpY2l0O3JldHVybiBpZSh3KDIpLm9wZW5GaWx0ZXJNZW51KHIsYSkpfSksVCgxKSxmKDIsImJ1dHRvbiIsNiksaygzLCJtYXQtaWNvbiIsNyksZygpKCl9aWYoMiZuKXtsZXQgZT10LiRpbXBsaWNpdDt2KDEpLFZlKCIgIixlLCIgIil9fWZ1bmN0aW9uIFg0ZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2IiwyKSxrKDEsIm1hdC1pY29uIiwzKSxmKDIsIm1hdC1jaGlwLXNldCIpLFMoMyxxNGUsNCwxLCJtYXQtY2hpcCIsNCksZygpKCkpLDImbil7bGV0IGU9dygpO3YoMyksYigibmdGb3JPZiIsZS5maWx0ZXJzLmtleXMoKSl9fWZ1bmN0aW9uIFk0ZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsInRiLWRhdGEtdGFibGUtZmlsdGVyIiw4KSxBKCJpbnRlcnZhbEZpbHRlckNoYW5nZWQiLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KCkuZW1pdEludGVydmFsRmlsdGVyQ2hhbmdlZChyKSl9KSgiZGlzY3JldGVGaWx0ZXJDaGFuZ2VkIixmdW5jdGlvbihyKXtyZXR1cm4gbmUoZSksaWUodygpLmVtaXREaXNjcmV0ZUZpbHRlckNoYW5nZWQocikpfSkoImluY2x1ZGVVbmRlZmluZWRUb2dnbGVkIixmdW5jdGlvbigpe3JldHVybiBuZShlKSxpZSh3KCkuZW1pdEluY2x1ZGVVbmRlZmluZWRUb2dnbGVkKCkpfSksZygpfTImbiYmYigiZmlsdGVyIix3KCkuc2VsZWN0ZWRGaWx0ZXIpfXZhciBYbmU9KCgpPT57Y2xhc3MgbntnZXQgc2VsZWN0ZWRGaWx0ZXJOYW1lKCl7cmV0dXJuIHRoaXMuaW50ZXJuYWxTZWxlY3RlZEZpbHRlck5hbWV9c2V0IHNlbGVjdGVkRmlsdGVyTmFtZShlKXt0aGlzLmludGVybmFsU2VsZWN0ZWRGaWx0ZXJOYW1lPWV9Z2V0IHNlbGVjdGVkRmlsdGVyKCl7cmV0dXJuIHRoaXMuZmlsdGVycy5nZXQodGhpcy5zZWxlY3RlZEZpbHRlck5hbWUpfWNvbnN0cnVjdG9yKGUsaSl7dGhpcy5jdXN0b21Nb2RhbD1lLHRoaXMudmlld0NvbnRhaW5lclJlZj1pLHRoaXMucmVtb3ZlSHBhcmFtRmlsdGVyPW5ldyBGLHRoaXMuYWRkRmlsdGVyPW5ldyBGLHRoaXMuaW50ZXJuYWxTZWxlY3RlZEZpbHRlck5hbWU9IiJ9b3BlbkZpbHRlck1lbnUoZSxpKXt0aGlzLnNlbGVjdGVkRmlsdGVyTmFtZT1pLHRoaXMuY3VzdG9tTW9kYWwuY3JlYXRlTmV4dFRvRWxlbWVudCh0aGlzLmZpbHRlck1vZGFsVGVtcGxhdGUsZS50YXJnZXQuY2xvc2VzdCgibWF0LWNoaXAiKSx0aGlzLnZpZXdDb250YWluZXJSZWYpfWVtaXRJbnRlcnZhbEZpbHRlckNoYW5nZWQoZSl7IXRoaXMuc2VsZWN0ZWRGaWx0ZXJ8fHRoaXMuYWRkRmlsdGVyLmVtaXQoe25hbWU6dGhpcy5zZWxlY3RlZEZpbHRlck5hbWUsdmFsdWU6ey4uLnRoaXMuc2VsZWN0ZWRGaWx0ZXIsZmlsdGVyTG93ZXJWYWx1ZTplLmxvd2VyVmFsdWUsZmlsdGVyVXBwZXJWYWx1ZTplLnVwcGVyVmFsdWV9fSl9ZW1pdERpc2NyZXRlRmlsdGVyQ2hhbmdlZChlKXtpZighdGhpcy5zZWxlY3RlZEZpbHRlcilyZXR1cm47bGV0IGk9bmV3IFNldChbLi4udGhpcy5zZWxlY3RlZEZpbHRlci5maWx0ZXJWYWx1ZXNdKTtpLmhhcyhlKT9pLmRlbGV0ZShlKTppLmFkZChlKSx0aGlzLmFkZEZpbHRlci5lbWl0KHtuYW1lOnRoaXMuc2VsZWN0ZWRGaWx0ZXJOYW1lLHZhbHVlOnsuLi50aGlzLnNlbGVjdGVkRmlsdGVyLGZpbHRlclZhbHVlczpBcnJheS5mcm9tKGkpfX0pfWVtaXRJbmNsdWRlVW5kZWZpbmVkVG9nZ2xlZCgpeyF0aGlzLnNlbGVjdGVkRmlsdGVyfHx0aGlzLmFkZEZpbHRlci5lbWl0KHtuYW1lOnRoaXMuc2VsZWN0ZWRGaWx0ZXJOYW1lLHZhbHVlOnsuLi50aGlzLnNlbGVjdGVkRmlsdGVyLGluY2x1ZGVVbmRlZmluZWQ6IXRoaXMuc2VsZWN0ZWRGaWx0ZXIuaW5jbHVkZVVuZGVmaW5lZH19KX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyh1QSksQyhlaSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbImZpbHRlcmJhci1jb21wb25lbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiZVZShXNGUsNSxvaSksMiZlKXtsZXQgcjtiZShyPXZlKCkpJiYoaS5maWx0ZXJNb2RhbFRlbXBsYXRlPXIuZmlyc3QpfX0saW5wdXRzOntmaWx0ZXJzOiJmaWx0ZXJzIn0sb3V0cHV0czp7cmVtb3ZlSHBhcmFtRmlsdGVyOiJyZW1vdmVIcGFyYW1GaWx0ZXIiLGFkZEZpbHRlcjoiYWRkRmlsdGVyIn0sZGVjbHM6Myx2YXJzOjEsY29uc3RzOltbImNsYXNzIiwiZmlsdGVyYmFyIiw0LCJuZ0lmIl0sWyJmaWx0ZXJNb2RhbFRlbXBsYXRlIiwiIl0sWzEsImZpbHRlcmJhciJdLFsic3ZnSWNvbiIsImZpbHRlcl9saXN0XzI0cHgiLDEsImZpbHRlcmJhci1pY29uIl0sWyJjbGFzcyIsImZpbHRlcmJhci1jaGlwIiwzLCJyZW1vdmVkIiwiY2xpY2siLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJmaWx0ZXJiYXItY2hpcCIsMywicmVtb3ZlZCIsImNsaWNrIl0sWyJtYXRDaGlwUmVtb3ZlIiwiIl0sWyJzdmdJY29uIiwiY2xvc2VfMjRweCJdLFszLCJmaWx0ZXIiLCJpbnRlcnZhbEZpbHRlckNoYW5nZWQiLCJkaXNjcmV0ZUZpbHRlckNoYW5nZWQiLCJpbmNsdWRlVW5kZWZpbmVkVG9nZ2xlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKFMoMCxYNGUsNCwxLCJkaXYiLDApLFMoMSxZNGUsMSwxLCJuZy10ZW1wbGF0ZSIsbnVsbCwxLGp0KSksMiZlJiZiKCJuZ0lmIixpLmZpbHRlcnMuc2l6ZSl9LGRlcGVuZGVuY2llczpbbm4sTmUsaEEsYm4sZUMsV25lLHlBXSxzdHlsZXM6WyIuZmlsdGVyYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MTBweCAxNHB4IDBweCAxNHB4fS5maWx0ZXJiYXJbX25nY29udGVudC0lQ09NUCVdICAgLmZpbHRlcmJhci1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tcmlnaHQ6MTBweH0uZmlsdGVyYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5maWx0ZXJiYXItY2hpcFtfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjI0cHh9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxZbmU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlKXt0aGlzLnN0b3JlPWUsdGhpcy5maWx0ZXJzJD10aGlzLnN0b3JlLnNlbGVjdChNYy5nZXREYXNoYm9hcmRIcGFyYW1GaWx0ZXJNYXApLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgRWV9YWRkSHBhcmFtRmlsdGVyKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2gocm8uZGFzaGJvYXJkSHBhcmFtRmlsdGVyQWRkZWQoe25hbWU6ZS5uYW1lLGZpbHRlcjplLnZhbHVlfSkpfXJlbW92ZUhwYXJhbUZpbHRlcihlKXt0aGlzLnN0b3JlLmRpc3BhdGNoKHJvLmRhc2hib2FyZEhwYXJhbUZpbHRlclJlbW92ZWQoe25hbWU6ZX0pKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJmaWx0ZXJiYXIiXV0sZGVjbHM6Mix2YXJzOjMsY29uc3RzOltbMywiZmlsdGVycyIsInJlbW92ZUhwYXJhbUZpbHRlciIsImFkZEZpbHRlciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwiZmlsdGVyYmFyLWNvbXBvbmVudCIsMCksQSgicmVtb3ZlSHBhcmFtRmlsdGVyIixmdW5jdGlvbihvKXtyZXR1cm4gaS5yZW1vdmVIcGFyYW1GaWx0ZXIobyl9KSgiYWRkRmlsdGVyIixmdW5jdGlvbihvKXtyZXR1cm4gaS5hZGRIcGFyYW1GaWx0ZXIobyl9KSxVKDEsImFzeW5jIiksZygpKSwyJmUmJmIoImZpbHRlcnMiLEcoMSwxLGkuZmlsdGVycyQpKX0sZGVwZW5kZW5jaWVzOltYbmUsY3RdLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksSzRlPVsicmVnZXhTdHJpbmdJbnB1dCJdO2Z1bmN0aW9uIEo0ZShuLHQpezEmbiYmKGYoMCwibWF0LW9wdGlvbiIsMyksVCgxLCJFeHBlcmltZW50IE5hbWUiKSxnKCkpLDImbiYmWmkoInZhbHVlIix3KCkuUkVHRVhfQllfRVhQX1NUUil9ZnVuY3Rpb24gJDRlKG4sdCl7aWYoMSZuJiYoR3QoMCksZigxLCJsaSIsMjUpLFQoMiksZygpLFd0KCkpLDImbil7bGV0IGU9dC4kaW1wbGljaXQ7digxKSxiKCJ0aXRsZSIsZS5uYW1lKSx2KDEpLGt0KGUubmFtZSl9fWZ1bmN0aW9uIGVIZShuLHQpe2lmKDEmbiYmKGYoMCwibGkiLDI2KSgxLCJlbSIpLFQoMiksVSgzLCJudW1iZXIiKSxnKCkoKSksMiZuKXtsZXQgZT13KCkuJGltcGxpY2l0O3YoMiksVmUoImFuZCAiLEcoMywxLGUucnVucy5sZW5ndGgtNSksIiBtb3JlIil9fWZ1bmN0aW9uIHRIZShuLHQpezEmbiYmKGYoMCwibGkiLDI3KSgxLCJlbSIpLFQoMiwiTm8gcnVucyBhcmUgaW4gdGhlIGdyb3VwIiksZygpKCkpfXZhciBuSGU9ZnVuY3Rpb24obil7cmV0dXJue2JvcmRlckNvbG9yOm59fSxpSGU9ZnVuY3Rpb24obil7cmV0dXJue2JhY2tncm91bmRDb2xvcjpufX07ZnVuY3Rpb24gckhlKG4sdCl7aWYoMSZuJiYoZigwLCJ1bCIsMTkpKDEsImxpIikoMiwibGFiZWwiKSxrKDMsInNwYW4iLDIwKSxmKDQsImNvZGUiLDIxKSxUKDUpLGcoKSgpLGYoNiwidWwiKSxTKDcsJDRlLDMsMiwibmctY29udGFpbmVyIiwyMiksVSg4LCJzbGljZSIpLFMoOSxlSGUsNCwzLCJsaSIsMjMpLFMoMTAsdEhlLDMsMCwibGkiLDI0KSxnKCkoKSgpKSwyJm4pe2xldCBlPXQuJGltcGxpY2l0O2IoIm5nU3R5bGUiLFVuKDExLG5IZSxlLmNvbG9yKSksdigzKSxiKCJuZ1N0eWxlIixVbigxMyxpSGUsZS5jb2xvcikpLHYoMSksYigidGl0bGUiLGUuZ3JvdXBJZCksdigxKSxrdChlLmdyb3VwSWQpLHYoMiksYigibmdGb3JPZiIsa2soOCw3LGUucnVucywwLDUpKSx2KDIpLGIoIm5nSWYiLGUucnVucy5sZW5ndGg+NSksdigxKSxiKCJuZ0lmIiwwPT09ZS5ydW5zLmxlbmd0aCl9fWZ1bmN0aW9uIG9IZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2IiwxNyksUygxLHJIZSwxMSwxNSwidWwiLDE4KSxnKCkpLDImbil7bGV0IGU9dygyKTt2KDEpLGIoIm5nRm9yT2YiLGUuY29sb3JSdW5QYWlyTGlzdCl9fWZ1bmN0aW9uIGFIZShuLHQpe2lmKDEmbiYmKGYoMCwiZGl2IiwyOCksVCgxLCIgVGhlcmUgYXJlIG5vIHJ1bnMgbWF0Y2hpbmcgdGhlIHJlZ2V4LCAiKSxmKDIsImNvZGUiKSxUKDMpLGcoKSxUKDQsIi4gUGxlYXNlIGNoZWNrIGlmIHlvdXIgcmVnZXggc3RyaW5nIGlzIGNvcnJlY3QuICIpLGcoKSksMiZuKXtsZXQgZT13KDIpO3YoMyksVmUoIi8iLGUucmVnZXhTdHJpbmcsIi8iKX19ZnVuY3Rpb24gc0hlKG4sdCl7aWYoMSZuJiYoZigwLCJkaXYiLDEzKSgxLCJoNCIpLFQoMiwiQ29sb3IgZ3JvdXAgcHJldmlldyIpLGcoKSxmKDMsImRpdiIsMTQpLFMoNCxvSGUsMiwxLCJkaXYiLDE1KSxTKDUsYUhlLDUsMSwibmctdGVtcGxhdGUiLG51bGwsMTYsanQpLGcoKSgpKSwyJm4pe2xldCBlPXN0KDYpLGk9dygpO3YoNCksYigibmdJZiIsaS5jb2xvclJ1blBhaXJMaXN0Lmxlbmd0aCkoIm5nSWZFbHNlIixlKX19dmFyIFFuZT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUsaSl7dGhpcy5kaWFsb2dSZWY9ZSx0aGlzLmhvc3RFbFJlZj1pLHRoaXMub25TYXZlPW5ldyBGLHRoaXMucmVnZXhJbnB1dE9uQ2hhbmdlPW5ldyBGLHRoaXMucmVnZXhUeXBlT25DaGFuZ2U9bmV3IEYsdGhpcy5SRUdFWF9CWV9SVU5fU1RSPSJyZWdleF9ieV9ydW4iLHRoaXMuUkVHRVhfQllfRVhQX1NUUj0icmVnZXhfYnlfZXhwIix0aGlzLnRpbWVPdXRJZD0wLHRoaXMucmVnZXhUeXBlRm49X3ModGhpcy5pbnRlcm5hbFJlZ2V4VHlwZUZuLmJpbmQodGhpcykpfWludGVybmFsUmVnZXhUeXBlRm4oZSl7cmV0dXJuIGU9PT1Zbi5SRUdFWF9CWV9FWFA/dGhpcy5SRUdFWF9CWV9FWFBfU1RSOnRoaXMuUkVHRVhfQllfUlVOX1NUUn1yZXNldEZvY3VzKCl7dGhpcy5ob3N0RWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KXx8dGhpcy5yZWdleFN0cmluZ0lucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX1vbkVudGVyKCl7dGhpcy5vblNhdmVDbGljaygpLHRoaXMuZGlhbG9nUmVmLmNsb3NlKCl9b25TYXZlQ2xpY2soKXt0aGlzLm9uU2F2ZS5lbWl0KCl9ZmlsbEV4YW1wbGUoZSl7dGhpcy5yZWdleFN0cmluZz1lLHRoaXMucmVnZXhJbnB1dENoYW5nZShlKX1yZWdleElucHV0Q2hhbmdlKGUpe3RoaXMucmVnZXhJbnB1dE9uQ2hhbmdlLmVtaXQoZSl9aGFuZGxlRm9jdXNPdXQoKXtjbGVhclRpbWVvdXQodGhpcy50aW1lT3V0SWQpLHRoaXMudGltZU91dElkPXNldFRpbWVvdXQodGhpcy5yZXNldEZvY3VzLmJpbmQodGhpcyksMCl9cmVnZXhUeXBlQ2hhbmdlKGUpe3RoaXMucmVnZXhUeXBlT25DaGFuZ2UuZW1pdChlLnZhbHVlPT09dGhpcy5SRUdFWF9CWV9SVU5fU1RSP1luLlJFR0VYOlluLlJFR0VYX0JZX0VYUCl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoVmwpLEMoeGUpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJyZWdleC1lZGl0LWRpYWxvZy1jb21wb25lbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiZVZShLNGUsNyksMiZlKXtsZXQgcjtiZShyPXZlKCkpJiYoaS5yZWdleFN0cmluZ0lucHV0PXIuZmlyc3QpfX0saW5wdXRzOntyZWdleFN0cmluZzoicmVnZXhTdHJpbmciLGNvbG9yUnVuUGFpckxpc3Q6ImNvbG9yUnVuUGFpckxpc3QiLHNlbGVjdGVkR3JvdXBCeToic2VsZWN0ZWRHcm91cEJ5IixlbmFibGVDb2xvckJ5RXhwZXJpbWVudDoiZW5hYmxlQ29sb3JCeUV4cGVyaW1lbnQifSxvdXRwdXRzOntvblNhdmU6Im9uU2F2ZSIscmVnZXhJbnB1dE9uQ2hhbmdlOiJyZWdleElucHV0T25DaGFuZ2UiLHJlZ2V4VHlwZU9uQ2hhbmdlOiJyZWdleFR5cGVPbkNoYW5nZSJ9LGRlY2xzOjM3LHZhcnM6NSxjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gdD0kbG9jYWxpemVgOkNvbG9yIFJ1bnMgYnkgUmVnZXggUXVlcnnikJ8xNWVkOWY2ZmQyZDQ5MDZhNDgwM2ZjMTI1NWRlM2M1ZGIyYzU2NTMw4pCfOTA4ODk4NTExMzk2MDMxMjgwODpDb2xvciBSdW5zIGJ5IFJlZ2V4IFF1ZXJ5YCxbWzEsInJlZ2V4LWVkaXQtZGlhbG9nIiwzLCJmb2N1c291dCJdLFsibWF0LWRpYWxvZy10aXRsZSIsIiJdLFszLCJ2YWx1ZSIsInNlbGVjdGlvbkNoYW5nZSJdLFszLCJ2YWx1ZSJdLFszLCJ2YWx1ZSIsNCwibmdJZiJdLFsibWF0SW5wdXQiLCIiLCJhcmlhLWxhYmVsIix0LCJjZGtGb2N1c0luaXRpYWwiLCIiLDMsInZhbHVlIiwia2V5ZG93bi5lbnRlciIsImlucHV0Il0sWyJyZWdleFN0cmluZ0lucHV0IiwiIl0sWzEsImV4YW1wbGUtZGV0YWlscyJdLFszLCJjbGljayJdLFsiY2xhc3MiLCJncm91cC1jb250YWluZXIiLDQsIm5nSWYiXSxbIm1hdC1kaWFsb2ctYWN0aW9ucyIsIiIsImFsaWduIiwiZW5kIl0sWyJtYXQtYnV0dG9uIiwiIiwibWF0LWRpYWxvZy1jbG9zZSIsIiJdLFsibWF0LXJhaXNlZC1idXR0b24iLCIiLCJjb2xvciIsInByaW1hcnkiLCJtYXQtZGlhbG9nLWNsb3NlIiwiIiwxLCJzYXZlLWJ1dHRvbiIsMywiY2xpY2siXSxbMSwiZ3JvdXAtY29udGFpbmVyIl0sWzEsImdyb3VwaW5nLXByZXZpZXciXSxbImNsYXNzIiwibWF0Y2gtY29udGFpbmVyIiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImVtcHR5IiwiIl0sWzEsIm1hdGNoLWNvbnRhaW5lciJdLFsiY2xhc3MiLCJncm91cCIsMywibmdTdHlsZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImdyb3VwIiwzLCJuZ1N0eWxlIl0sWzEsImNvbG9yLXN3YXRjaCIsMywibmdTdHlsZSJdLFsxLCJncm91cC1pZCIsMywidGl0bGUiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsIm1vcmUiLDQsIm5nSWYiXSxbImNsYXNzIiwibm8tbWF0Y2giLDQsIm5nSWYiXSxbMywidGl0bGUiXSxbMSwibW9yZSJdLFsxLCJuby1tYXRjaCJdLFsxLCJ3YXJuaW5nIl1dfSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwiZGl2IiwwKSxBKCJmb2N1c291dCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5oYW5kbGVGb2N1c091dCgpfSksZigxLCJoMSIsMSksVCgyLCJDb2xvciBydW5zIGJ5IHJlZ2V4IiksZygpLGYoMywibWF0LWRpYWxvZy1jb250ZW50IikoNCwicCIpLFQoNSwiRW50ZXIgYSByZWdleCB3aXRoIGNhcHR1cmluZyBncm91cHMgdG8gbWF0Y2ggYWdhaW5zdCBydW4gbmFtZXM6IiksZygpLGYoNiwibWF0LWZvcm0tZmllbGQiKSg3LCJtYXQtbGFiZWwiKSxUKDgsIlJlZ2V4IHR5cGUiKSxnKCksZig5LCJtYXQtc2VsZWN0IiwyKSxBKCJzZWxlY3Rpb25DaGFuZ2UiLGZ1bmN0aW9uKG8pe3JldHVybiBpLnJlZ2V4VHlwZUNoYW5nZShvKX0pLGYoMTAsIm1hdC1vcHRpb24iLDMpLFQoMTEsIlJ1biBOYW1lIiksZygpLFMoMTIsSjRlLDIsMSwibWF0LW9wdGlvbiIsNCksZygpKCksZigxMywibWF0LWZvcm0tZmllbGQiKSgxNCwiaW5wdXQiLDUsNiksQSgia2V5ZG93bi5lbnRlciIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vbkVudGVyKCl9KSgiaW5wdXQiLGZ1bmN0aW9uKG8pe3JldHVybiBpLnJlZ2V4SW5wdXRDaGFuZ2Uoby50YXJnZXQudmFsdWUpfSksZygpKCkoKSxmKDE2LCJkaXYiLDcpKDE3LCJwIiksVCgxOCwnIEVhY2ggbWF0Y2hpbmcgcnVuIHdpbGwgYmUgYXNzaWduZWQgYSBjb2xvciBiYXNlZCBvbiB0aGUgImtleSIgZm9ybWVkIGJ5IGl0cyBtYXRjaGVzIHRvIHRoZSBjYXB0dXJpbmcgZ3JvdXBzLiAnKSxrKDE5LCJiciIpLGYoMjAsImJ1dHRvbiIsOCksQSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGkuZmlsbEV4YW1wbGUoIih0cmFpbnxldmFsKSIpfSksVCgyMSwiIFRyeSAiKSxmKDIyLCJjb2RlIiksVCgyMywiKHRyYWlufGV2YWwpIiksZygpKCksVCgyNCwiIHRvIGFzc2lnbiBhbGwgcnVucyBjb250YWluaW5nICIpLGYoMjUsImNvZGUiKSxUKDI2LCJ0cmFpbiIpLGcoKSxUKDI3LCIgdG8gb25lIGNvbG9yIGFuZCBhbGwgcnVucyBjb250YWluaW5nICIpLGYoMjgsImNvZGUiKSxUKDI5LCJldmFsIiksZygpLFQoMzAsIiB0byBhbm90aGVyIGNvbG9yLiAiKSxnKCkoKSxTKDMxLHNIZSw3LDIsImRpdiIsOSksZigzMiwiZGl2IiwxMCkoMzMsImJ1dHRvbiIsMTEpLFQoMzQsIkNhbmNlbCIpLGcoKSxmKDM1LCJidXR0b24iLDEyKSxBKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vblNhdmVDbGljaygpfSksVCgzNiwiIFNhdmUgIiksZygpKCkoKSksMiZlJiYodig5KSxiKCJ2YWx1ZSIsaS5yZWdleFR5cGVGbihpLnNlbGVjdGVkR3JvdXBCeSkpLHYoMSksWmkoInZhbHVlIixpLlJFR0VYX0JZX1JVTl9TVFIpLHYoMiksYigibmdJZiIsaS5lbmFibGVDb2xvckJ5RXhwZXJpbWVudCksdigyKSxaaSgidmFsdWUiLGkucmVnZXhTdHJpbmcpLHYoMTcpLGIoIm5nSWYiLGkucmVnZXhTdHJpbmcpKX0sZGVwZW5kZW5jaWVzOltubixOZSxNZixraSxaMSxDOSxLMSxKMSxxdSxQYyxubCxXdSxqYSxLaixVc10sc3R5bGVzOlsiLmV4YW1wbGUtZGV0YWlsc1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxNnB4fS5leGFtcGxlLWRldGFpbHNbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7cGFkZGluZzowO2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y29sb3I6IzE5NzZkMn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZXhhbXBsZS1kZXRhaWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5leGFtcGxlLWRldGFpbHNbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNDJhNWY1fS5leGFtcGxlLWRldGFpbHNbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXTp2aXNpdGVke2NvbG9yOiM3YjFmYTJ9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmV4YW1wbGUtZGV0YWlsc1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVdOnZpc2l0ZWQsIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5leGFtcGxlLWRldGFpbHNbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXTp2aXNpdGVke2NvbG9yOiNiYTY4Yzh9Lmdyb3VwLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjE2cHh9Lmdyb3VwLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLWJvdHRvbToxNnB4fS5ncm91cC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLndhcm5pbmdbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7Zm9udC1zaXplOi45ZW19Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAud2FybmluZ1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLndhcm5pbmdbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5ncm91cGluZy1wcmV2aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MXB4IHNvbGlkICNlYmViZWI7bWF4LWhlaWdodDo1MHZoO292ZXJmbG93LXk6YXV0bztwYWRkaW5nOjE2cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwaW5nLXByZXZpZXdbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXBpbmctcHJldmlld1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjNTU1fS5tYXRjaC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7ZGlzcGxheTpncmlkO2ZsZXgtd3JhcDp3cmFwO2dhcDoxMHB4O2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMiwgbWlubWF4KDUwJSwgMWZyKSl9LmNvbG9yLXN3YXRjaFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJhZGl1czo1MCU7Ym94LXNoYWRvdzowIDAgMnB4ICMwMDA7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjE1cHg7d2lkdGg6MTVweH11bFtfbmdjb250ZW50LSVDT01QJV17bGlzdC1zdHlsZS10eXBlOm5vbmU7cGFkZGluZzowfW1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5ncm91cFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6M3B4O21hcmdpbjowO3BhZGRpbmc6MTZweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXBbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoxcHggc29saWQgIzU1NX0uZ3JvdXBbX25nY29udGVudC0lQ09NUCVdICAgbGFiZWxbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6Z3JpZDtnYXA6MTBweDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWF4LWNvbnRlbnQgYXV0bztwYWRkaW5nOjE2cHggMH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXBbX25nY29udGVudC0lQ09NUCVdICAgbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXBbX25nY29udGVudC0lQ09NUCVdICAgbGFiZWxbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9Lmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5ncm91cC1pZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOi45NWVtO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uZ3JvdXBbX25nY29udGVudC0lQ09NUCVdICAgdWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTouOWVtfS5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICB1bFtfbmdjb250ZW50LSVDT01QJV0gICBsaVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICAubW9yZVtfbmdjb250ZW50LSVDT01QJV0sIC5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICAubm8tbWF0Y2hbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7bWFyZ2luLXRvcDoxNnB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICAubW9yZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICAubW9yZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uby1tYXRjaFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICAubm8tbWF0Y2hbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfSJdLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksWm5lPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpLHIpe3RoaXMuc3RvcmU9ZSx0aGlzLmRpYWxvZ1JlZj1pLHRoaXMuZXhwTmFtZUJ5RXhwSWQkPXRoaXMuc3RvcmUuc2VsZWN0KHl1KSx0aGlzLmVuYWJsZUNvbG9yQnlFeHBlcmltZW50JD10aGlzLnN0b3JlLnNlbGVjdChENiksdGhpcy50ZW50YXRpdmVSZWdleFN0cmluZyQ9bmV3IEVlLHRoaXMudGVudGF0aXZlUmVnZXhUeXBlJD1uZXcgRWUsdGhpcy5ncm91cEJ5UmVnZXhTdHJpbmckPWlzKCgpPT50bih0aGlzLnN0b3JlLnNlbGVjdCh5MSkucGlwZShMdCgxKSksdGhpcy50ZW50YXRpdmVSZWdleFN0cmluZyQpKS5waXBlKGtuKCIiKSxEYSgxKSksdGhpcy5ncm91cEJ5UmVnZXhUeXBlJD10bih0aGlzLnN0b3JlLnNlbGVjdChEdikucGlwZShMdCgxKSxxKG89Pm8ua2V5KSksdGhpcy50ZW50YXRpdmVSZWdleFR5cGUkKS5waXBlKGtuKFluLlJFR0VYKSxPZShvPT5vPT09WW4uUkVHRVh8fG89PT1Zbi5SRUdFWF9CWV9FWFApLERhKDEpKSx0aGlzLmNvbG9yUnVuUGFpckxpc3QkPWlzKCgpPT50aGlzLmdyb3VwQnlSZWdleFN0cmluZyQucGlwZShDcig1MDApLE9lKG89Pnt0cnl7bGV0IGE9bmV3IFJlZ0V4cChvKTtyZXR1cm4gQm9vbGVhbihhKX1jYXRjaHtyZXR1cm4hMX19KSxWaSh0aGlzLmdyb3VwQnlSZWdleFR5cGUkLHRoaXMuYWxsUnVucyQsdGhpcy5ydW5JZFRvRWlkJCx0aGlzLmV4cE5hbWVCeUV4cElkJCx0aGlzLnN0b3JlLnNlbGVjdChIYS5nZXRDb2xvclBhbGV0dGUpLHRoaXMuc3RvcmUuc2VsZWN0KFBsKSkscSgoW28sYSxzLGwsYyxkLHVdKT0+e2xldCBoPUV2KHtrZXk6YSxyZWdleFN0cmluZzpvfSxzLGwsYyksbT1uZXcgTWFwLF89W107Zm9yKGxldFtNLHldb2YgT2JqZWN0LmVudHJpZXMoaC5tYXRjaGVzKSl7bGV0IHg9bS5nZXQoTSk7aWYoIXgpe2xldCBSPWQuY29sb3JzW20uc2l6ZSVkLmNvbG9ycy5sZW5ndGhdO3g9dT9SLmRhcmtIZXg6Ui5saWdodEhleCxtLnNldChNLHgpfV8ucHVzaCh7Z3JvdXBJZDpNLGNvbG9yOngscnVuczp5fSl9cmV0dXJuIF99KSkpLnBpcGUoa24oW10pKSx0aGlzLmV4cGVyaW1lbnRJZHM9ci5leHBlcmltZW50SWRzLHRoaXMucnVuSWRUb0VpZCQ9SW4odGhpcy5leHBlcmltZW50SWRzLm1hcChvPT50aGlzLnN0b3JlLnNlbGVjdChZVyx7ZXhwZXJpbWVudElkOm99KS5waXBlKHEoYT0+KHtleHBlcmltZW50SWQ6byxydW5JZHM6YX0pKSkpKS5waXBlKHEobz0+e2xldCBhPXt9O2ZvcihsZXR7cnVuSWRzOnMsZXhwZXJpbWVudElkOmx9b2Ygbylmb3IobGV0IGMgb2YgcylhW2NdPWw7cmV0dXJuIGF9KSksdGhpcy5hbGxSdW5zJD1Jbih0aGlzLmV4cGVyaW1lbnRJZHMubWFwKG89PnRoaXMuc3RvcmUuc2VsZWN0KEl1LHtleHBlcmltZW50SWQ6b30pKSkucGlwZShxKG89Pm8uZmxhdCgpKSl9b25SZWdleElucHV0T25DaGFuZ2UoZSl7dGhpcy50ZW50YXRpdmVSZWdleFN0cmluZyQubmV4dChlKX1vblJlZ2V4VHlwZU9uQ2hhbmdlKGUpe3RoaXMudGVudGF0aXZlUmVnZXhUeXBlJC5uZXh0KGUpfW9uU2F2ZSgpe0luKFt0aGlzLmdyb3VwQnlSZWdleFN0cmluZyQsdGhpcy5ncm91cEJ5UmVnZXhUeXBlJCx0aGlzLmV4cE5hbWVCeUV4cElkJF0pLnN1YnNjcmliZSgoW2UsaSxyXSk9PntlJiZ0aGlzLnN0b3JlLmRpc3BhdGNoKFhmKHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkcyxncm91cEJ5OntrZXk6aSxyZWdleFN0cmluZzplfSxleHBOYW1lQnlFeHBJZDpyfSkpfSl9fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pKEMoSWUpLEMoVmwpLEMoWHYpKX0sbi5cdTAyNzVjbXA9UCh7dHlwZTpuLHNlbGVjdG9yczpbWyJyZWdleC1lZGl0LWRpYWxvZyJdXSxkZWNsczo1LHZhcnM6MTIsY29uc3RzOltbMywicmVnZXhTdHJpbmciLCJjb2xvclJ1blBhaXJMaXN0Iiwic2VsZWN0ZWRHcm91cEJ5IiwiZW5hYmxlQ29sb3JCeUV4cGVyaW1lbnQiLCJvblNhdmUiLCJyZWdleElucHV0T25DaGFuZ2UiLCJyZWdleFR5cGVPbkNoYW5nZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwicmVnZXgtZWRpdC1kaWFsb2ctY29tcG9uZW50IiwwKSxBKCJvblNhdmUiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub25TYXZlKCl9KSgicmVnZXhJbnB1dE9uQ2hhbmdlIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vblJlZ2V4SW5wdXRPbkNoYW5nZShvKX0pKCJyZWdleFR5cGVPbkNoYW5nZSIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25SZWdleFR5cGVPbkNoYW5nZShvKX0pLFUoMSwiYXN5bmMiKSxVKDIsImFzeW5jIiksVSgzLCJhc3luYyIpLFUoNCwiYXN5bmMiKSxnKCkpLDImZSYmYigicmVnZXhTdHJpbmciLEcoMSw0LGkuZ3JvdXBCeVJlZ2V4U3RyaW5nJCkpKCJjb2xvclJ1blBhaXJMaXN0IixHKDIsNixpLmNvbG9yUnVuUGFpckxpc3QkKSkoInNlbGVjdGVkR3JvdXBCeSIsRygzLDgsaS5ncm91cEJ5UmVnZXhUeXBlJCkpKCJlbmFibGVDb2xvckJ5RXhwZXJpbWVudCIsRyg0LDEwLGkuZW5hYmxlQ29sb3JCeUV4cGVyaW1lbnQkKSl9LGRlcGVuZGVuY2llczpbUW5lLGN0XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdLCByZWdleC1lZGl0LWRpYWxvZy1jb21wb25lbnRbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9Il19KSxufSkoKTtmdW5jdGlvbiBkSGUobix0KXsxJm4mJmsoMCwibWF0LWljb24iLDE0KX1mdW5jdGlvbiB1SGUobix0KXtpZigxJm4pe2xldCBlPVRlKCk7ZigwLCJidXR0b24iLDEzKSxBKCJjbGljayIsZnVuY3Rpb24oKXtuZShlKTtsZXQgcj13KCk7cmV0dXJuIGllKHIub25Hcm91cEJ5Q2hhbmdlLmVtaXQoe2tleTpyLkdyb3VwQnlLZXkuRVhQRVJJTUVOVH0pKX0pLFMoMSxkSGUsMSwwLCJtYXQtaWNvbiIsNyksZigyLCJzcGFuIiksVCgzLCJFeHBlcmltZW50IiksZygpKCl9aWYoMiZuKXtsZXQgZT13KCk7QmUoImFyaWEtY2hlY2tlZCIsZS5zZWxlY3RlZEdyb3VwQnkua2V5PT09ZS5Hcm91cEJ5S2V5LkVYUEVSSU1FTlQpLHYoMSksYigibmdJZiIsZS5zZWxlY3RlZEdyb3VwQnkua2V5PT09ZS5Hcm91cEJ5S2V5LkVYUEVSSU1FTlQpfX1mdW5jdGlvbiBwSGUobix0KXsxJm4mJmsoMCwibWF0LWljb24iLDE0KX1mdW5jdGlvbiBoSGUobix0KXsxJm4mJmsoMCwibWF0LWljb24iLDE0KX1mdW5jdGlvbiBtSGUobix0KXsxJm4mJihmKDAsInNwYW4iKSgxLCJzdHJvbmciKSxUKDIsIiBCeSBSdW4gTmFtZSIpLGcoKSgpKX1mdW5jdGlvbiBmSGUobix0KXsxJm4mJihmKDAsInNwYW4iKSgxLCJzdHJvbmciKSxUKDIsIiBCeSBFeHBlcmltZW50IE5hbWUiKSxnKCkoKSl9ZnVuY3Rpb24gZ0hlKG4sdCl7aWYoMSZuJiYoZigwLCJzcGFuIiksVCgxKSxnKCkpLDImbil7bGV0IGU9dygpO3YoMSksa3QoZS5yZWdleFN0cmluZyl9fWZ1bmN0aW9uIF9IZShuLHQpezEmbiYmKGYoMCwic3BhbiIsMTUpLFQoMSwiKG5vbmUgc2V0KSIpLGcoKSl9dmFyIEtuZT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuZGlhbG9nPWUsdGhpcy5Hcm91cEJ5S2V5PVluLHRoaXMub25Hcm91cEJ5Q2hhbmdlPW5ldyBGfW9uUmVnZXhTdHJpbmdFZGl0KCl7dGhpcy5kaWFsb2cub3BlbihabmUse21heEhlaWdodDoiOTV2aCIsbWF4V2lkdGg6IjgwdnciLGRhdGE6e2V4cGVyaW1lbnRJZHM6dGhpcy5leHBlcmltZW50SWRzfX0pfW9uR3JvdXBCeVJlZ2V4Q2xpY2soKXt0aGlzLnJlZ2V4U3RyaW5nP3RoaXMub25Hcm91cEJ5Q2hhbmdlLmVtaXQoe2tleTp0aGlzLmxhc3RSZWdleEdyb3VwQnlLZXkscmVnZXhTdHJpbmc6dGhpcy5yZWdleFN0cmluZ30pOnRoaXMub25SZWdleFN0cmluZ0VkaXQoKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyh5cykpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInJ1bnMtZ3JvdXAtbWVudS1idXR0b24tY29tcG9uZW50Il1dLGlucHV0czp7c2hvd0V4cGVyaW1lbnRzR3JvdXBCeToic2hvd0V4cGVyaW1lbnRzR3JvdXBCeSIsZXhwZXJpbWVudElkczoiZXhwZXJpbWVudElkcyIscmVnZXhTdHJpbmc6InJlZ2V4U3RyaW5nIixzZWxlY3RlZEdyb3VwQnk6InNlbGVjdGVkR3JvdXBCeSIsbGFzdFJlZ2V4R3JvdXBCeUtleToibGFzdFJlZ2V4R3JvdXBCeUtleSJ9LG91dHB1dHM6e29uR3JvdXBCeUNoYW5nZToib25Hcm91cEJ5Q2hhbmdlIn0sZGVjbHM6MjEsdmFyczoxMCxjb25zdHM6W1sibWF0LWljb24tYnV0dG9uIiwiIiwidGl0bGUiLCJDb2xvciBydW5zIGJ5Li4uIiwzLCJtYXRNZW51VHJpZ2dlckZvciJdLFsic3ZnSWNvbiIsInBhbGV0dGVfMjRweCJdLFsxLCJydW4tdGFibGUtY29sb3ItZ3JvdXAtYnkiXSxbImdyb3VwQnlNZW51IiwibWF0TWVudSJdLFsxLCJsYWJlbCJdLFsibWF0LW1lbnUtaXRlbSIsIiIsInJvbGUiLCJtZW51aXRlbXJhZGlvIiwiZGF0YS12YWx1ZSIsImV4cGVyaW1lbnQiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtcmFkaW8iLCJkYXRhLXZhbHVlIiwicnVuIiwzLCJjbGljayJdLFsic3ZnSWNvbiIsImRvbmVfMjRweCIsNCwibmdJZiJdLFsibWF0LW1lbnUtaXRlbSIsIiIsInJvbGUiLCJtZW51aXRlbXJhZGlvIiwiZGF0YS12YWx1ZSIsInJlZ2V4IiwzLCJjbGljayJdLFs0LCJuZ0lmIl0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtIiwiZGF0YS12YWx1ZSIsInJlZ2V4LWVkaXQiLDEsImRpc3BsYXktcmVnZXgtc3RyaW5nIiwzLCJjbGljayJdLFsic3ZnSWNvbiIsImVkaXRfMjRweCJdLFsiY2xhc3MiLCJub25lLXNldC1zdHJpbmciLDQsIm5nSWYiXSxbIm1hdC1tZW51LWl0ZW0iLCIiLCJyb2xlIiwibWVudWl0ZW1yYWRpbyIsImRhdGEtdmFsdWUiLCJleHBlcmltZW50IiwzLCJjbGljayJdLFsic3ZnSWNvbiIsImRvbmVfMjRweCJdLFsxLCJub25lLXNldC1zdHJpbmciXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImJ1dHRvbiIsMCksaygxLCJtYXQtaWNvbiIsMSksZygpLGYoMiwibWF0LW1lbnUiLDIsMykoNCwiZGl2Iiw0KSxUKDUsIkNvbG9yIHJ1bnMgYnkiKSxnKCksUyg2LHVIZSw0LDIsImJ1dHRvbiIsNSksZig3LCJidXR0b24iLDYpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpLm9uR3JvdXBCeUNoYW5nZS5lbWl0KHtrZXk6aS5Hcm91cEJ5S2V5LlJVTn0pfSksUyg4LHBIZSwxLDAsIm1hdC1pY29uIiw3KSxmKDksInNwYW4iKSxUKDEwLCJSdW4iKSxnKCkoKSxmKDExLCJidXR0b24iLDgpLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpLm9uR3JvdXBCeVJlZ2V4Q2xpY2soKX0pLFMoMTIsaEhlLDEsMCwibWF0LWljb24iLDcpLGYoMTMsInNwYW4iKSxUKDE0LCJSZWdleCIpLGcoKSxTKDE1LG1IZSwzLDAsInNwYW4iLDkpLFMoMTYsZkhlLDMsMCwic3BhbiIsOSksZygpLGYoMTcsImJ1dHRvbiIsMTApLEEoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpLm9uUmVnZXhTdHJpbmdFZGl0KCl9KSxrKDE4LCJtYXQtaWNvbiIsMTEpLFMoMTksZ0hlLDIsMSwic3BhbiIsOSksUygyMCxfSGUsMiwwLCJzcGFuIiwxMiksZygpKCkpLDImZSYmKGIoIm1hdE1lbnVUcmlnZ2VyRm9yIixzdCgzKSksdig2KSxiKCJuZ0lmIixpLnNob3dFeHBlcmltZW50c0dyb3VwQnkpLHYoMSksQmUoImFyaWEtY2hlY2tlZCIsaS5zZWxlY3RlZEdyb3VwQnkua2V5PT09aS5Hcm91cEJ5S2V5LlJVTiksdigxKSxiKCJuZ0lmIixpLnNlbGVjdGVkR3JvdXBCeS5rZXk9PT1pLkdyb3VwQnlLZXkuUlVOKSx2KDMpLEJlKCJhcmlhLWNoZWNrZWQiLGkuc2VsZWN0ZWRHcm91cEJ5LmtleT09PWkuR3JvdXBCeUtleS5SRUdFWHx8aS5zZWxlY3RlZEdyb3VwQnkua2V5PT09aS5Hcm91cEJ5S2V5LlJFR0VYX0JZX0VYUCksdigxKSxiKCJuZ0lmIixpLnNlbGVjdGVkR3JvdXBCeS5rZXk9PT1pLkdyb3VwQnlLZXkuUkVHRVh8fGkuc2VsZWN0ZWRHcm91cEJ5LmtleT09PWkuR3JvdXBCeUtleS5SRUdFWF9CWV9FWFApLHYoMyksYigibmdJZiIsaS5zZWxlY3RlZEdyb3VwQnkua2V5PT09aS5Hcm91cEJ5S2V5LlJFR0VYKSx2KDEpLGIoIm5nSWYiLGkuc2VsZWN0ZWRHcm91cEJ5LmtleT09PWkuR3JvdXBCeUtleS5SRUdFWF9CWV9FWFApLHYoMyksYigibmdJZiIsaS5yZWdleFN0cmluZyksdigxKSxiKCJuZ0lmIiwhaS5yZWdleFN0cmluZykpfSxkZXBlbmRlbmNpZXM6W05lLEVyLGJuLFh1LEVkLFl1XSxzdHlsZXM6WyIucnVuLXRhYmxlLWNvbG9yLWdyb3VwLWJ5e2ZvbnQtc2l6ZToxNnB4fSAgLnJ1bi10YWJsZS1jb2xvci1ncm91cC1ieSAubGFiZWx7Y29sb3I6IzYxNjE2MTtmb250LXNpemU6LjllbTttYXJnaW46MTBweCAwO3BhZGRpbmc6MCAxNnB4O3BvaW50ZXItZXZlbnRzOm5vbmV9ICAucnVuLXRhYmxlLWNvbG9yLWdyb3VwLWJ5IG1hdC1pY29uey0tbWF0LW1lbnUtaXRlbS1pY29uLXNpemU6IDIwcHh9ICAucnVuLXRhYmxlLWNvbG9yLWdyb3VwLWJ5IC5kaXNwbGF5LXJlZ2V4LXN0cmluZ3twYWRkaW5nLWxlZnQ6NDBweH0gIC5ydW4tdGFibGUtY29sb3ItZ3JvdXAtYnkgLmRpc3BsYXktcmVnZXgtc3RyaW5nIC5ub25lLXNldC1zdHJpbmd7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAgIC5ydW4tdGFibGUtY29sb3ItZ3JvdXAtYnkgLmRpc3BsYXktcmVnZXgtc3RyaW5nIC5ub25lLXNldC1zdHJpbmcsIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgICAgLnJ1bi10YWJsZS1jb2xvci1ncm91cC1ieSAuZGlzcGxheS1yZWdleC1zdHJpbmcgLm5vbmUtc2V0LXN0cmluZ3tjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLEpuZT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmU9ZSx0aGlzLnNob3dFeHBlcmltZW50c0dyb3VwQnkkPXRoaXMuc3RvcmUuc2VsZWN0KEo4KS5waXBlKHEoaT0+aS5oYXMoQ24uQ09NUEFSRV9FWFBFUklNRU5UKSkpLHRoaXMuc2VsZWN0ZWRHcm91cEJ5JD10aGlzLnN0b3JlLnNlbGVjdChEdiksdGhpcy5sYXN0UmVnZXhHcm91cEJ5S2V5JD10aGlzLnN0b3JlLnNlbGVjdChEdikucGlwZShxKGk9Pmkua2V5KSxPZShpPT5pPT09WW4uUkVHRVh8fGk9PT1Zbi5SRUdFWF9CWV9FWFApLGtuKFluLlJFR0VYKSksdGhpcy5ncm91cEJ5UmVnZXhTdHJpbmckPXRoaXMuc3RvcmUuc2VsZWN0KHkxKSx0aGlzLmV4cE5hbWVCeUV4cElkJD10aGlzLnN0b3JlLnNlbGVjdCh5dSl9b25Hcm91cEJ5Q2hhbmdlKGUpe3RoaXMuZXhwTmFtZUJ5RXhwSWQkLnBpcGUoTHQoMSkpLnN1YnNjcmliZShpPT57dGhpcy5zdG9yZS5kaXNwYXRjaChYZih7ZXhwZXJpbWVudElkczp0aGlzLmV4cGVyaW1lbnRJZHMsZ3JvdXBCeTplLGV4cE5hbWVCeUV4cElkOml9KSl9KX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInJ1bnMtZ3JvdXAtbWVudS1idXR0b24iXV0saW5wdXRzOntleHBlcmltZW50SWRzOiJleHBlcmltZW50SWRzIn0sZGVjbHM6NSx2YXJzOjEzLGNvbnN0czpbWzMsInJlZ2V4U3RyaW5nIiwic2VsZWN0ZWRHcm91cEJ5IiwibGFzdFJlZ2V4R3JvdXBCeUtleSIsInNob3dFeHBlcmltZW50c0dyb3VwQnkiLCJleHBlcmltZW50SWRzIiwib25Hcm91cEJ5Q2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJydW5zLWdyb3VwLW1lbnUtYnV0dG9uLWNvbXBvbmVudCIsMCksQSgib25Hcm91cEJ5Q2hhbmdlIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkdyb3VwQnlDaGFuZ2Uobyl9KSxVKDEsImFzeW5jIiksVSgyLCJhc3luYyIpLFUoMywiYXN5bmMiKSxVKDQsImFzeW5jIiksZygpKSwyJmUmJmIoInJlZ2V4U3RyaW5nIixHKDEsNSxpLmdyb3VwQnlSZWdleFN0cmluZyQpKSgic2VsZWN0ZWRHcm91cEJ5IixHKDIsNyxpLnNlbGVjdGVkR3JvdXBCeSQpKSgibGFzdFJlZ2V4R3JvdXBCeUtleSIsRygzLDksaS5sYXN0UmVnZXhHcm91cEJ5S2V5JCkpKCJzaG93RXhwZXJpbWVudHNHcm91cEJ5IixHKDQsMTEsaS5zaG93RXhwZXJpbWVudHNHcm91cEJ5JCkpKCJleHBlcmltZW50SWRzIixpLmV4cGVyaW1lbnRJZHMpfSxkZXBlbmRlbmNpZXM6W0tuZSxjdF0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCk7ZnVuY3Rpb24geUhlKG4sdCl7aWYoMSZuKXtsZXQgZT1UZSgpO2YoMCwiZGl2IikoMSwibWF0LWNoZWNrYm94IiwxMiksQSgiY2xpY2siLGZ1bmN0aW9uKHIpe3JldHVybiBuZShlKSxpZSh3KDIpLmhhbmRsZVNlbGVjdEFsbChyKSl9KSxnKCkoKX1pZigyJm4pe2xldCBlPXcoMik7digxKSxiKCJjaGVja2VkIixlLmFsbFJvd3NTZWxlY3RlZCgpKSgiaW5kZXRlcm1pbmF0ZSIsIWUuYWxsUm93c1NlbGVjdGVkKCkmJmUuc29tZVJvd3NTZWxlY3RlZCgpKX19ZnVuY3Rpb24geEhlKG4sdCl7aWYoMSZuJiYoZigwLCJzcGFuIiwxMyksaygxLCJydW5zLWdyb3VwLW1lbnUtYnV0dG9uIiwxNCksZygpKSwyJm4pe2xldCBlPXcoMik7digxKSxiKCJleHBlcmltZW50SWRzIixlLmV4cGVyaW1lbnRJZHMpfX12YXIgJG5lPWZ1bmN0aW9uKG4pe3JldHVybltuXX07ZnVuY3Rpb24gQ0hlKG4sdCl7aWYoMSZuJiYoR3QoMCksZigxLCJ0Yi1kYXRhLXRhYmxlLWhlYWRlci1jZWxsIiw4KSxHdCgyLDkpLFMoMyx5SGUsMiwyLCJkaXYiLDEwKSxTKDQseEhlLDIsMSwic3BhbiIsMTEpLFd0KCksZygpLFd0KCkpLDImbil7bGV0IGU9dC4kaW1wbGljaXQsaT13KCk7digxKSxiKCJoZWFkZXIiLGUpKCJzb3J0aW5nSW5mbyIsaS5zb3J0aW5nSW5mbykoIm5nQ2xhc3MiLFVuKDYsJG5lLCJ0YWJsZS1jb2x1bW4tIitlLm5hbWUpKSx2KDEpLGIoIm5nU3dpdGNoIixlLm5hbWUpLHYoMSksYigibmdTd2l0Y2hDYXNlIiwic2VsZWN0ZWQiKSx2KDEpLGIoIm5nU3dpdGNoQ2FzZSIsImNvbG9yIil9fWZ1bmN0aW9uIE1IZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsInNwYW4iLDE3KSgxLCJidXR0b24iLDE4KSxBKCJjb2xvclBpY2tlckNoYW5nZSIsZnVuY3Rpb24ocil7bmUoZSk7bGV0IG89dygyKS4kaW1wbGljaXQ7cmV0dXJuIGllKHcoKS5vblJ1bkNvbG9yQ2hhbmdlLmVtaXQoe3J1bklkOm8uaWQsbmV3Q29sb3I6cn0pKX0pLGcoKSgpfWlmKDImbil7bGV0IGU9dygyKS4kaW1wbGljaXQ7digxKSxCdCgiYmFja2dyb3VuZCIsZS5jb2xvciksYigiY29sb3JQaWNrZXIiLGUuY29sb3IpKCJjcERpYWxvZ0Rpc3BsYXkiLCJwb3B1cCIpKCJjcFBvc2l0aW9uT2Zmc2V0IiwtMjApKCJjcFVzZVJvb3RWaWV3Q29udGFpbmVyIiwhMCkoImNwT3V0cHV0Rm9ybWF0IiwiaGV4Iil9fWZ1bmN0aW9uIHdIZShuLHQpe2lmKDEmbil7bGV0IGU9VGUoKTtmKDAsImRpdiIpKDEsIm1hdC1jaGVja2JveCIsMTkpLEEoImNsaWNrIixmdW5jdGlvbihyKXtuZShlKTtsZXQgbz13KDIpLiRpbXBsaWNpdDtyZXR1cm4gaWUodygpLnNlbGVjdGlvbkNsaWNrKHIsby5pZCkpfSksZygpKCl9aWYoMiZuKXtsZXQgZT13KDIpLiRpbXBsaWNpdDt2KDEpLGIoImNoZWNrZWQiLGUuc2VsZWN0ZWQpfX1mdW5jdGlvbiBTSGUobix0KXtpZigxJm4mJihmKDAsInNwYW4iKSxrKDEsInRiLWV4cGVyaW1lbnQtYWxpYXMiLDIwKSxnKCkpLDImbil7bGV0IGU9dygyKS4kaW1wbGljaXQ7digxKSxiKCJhbGlhcyIsZS5leHBlcmltZW50QWxpYXMpKCJ0aXRsZSIsZS5leHBlcmltZW50TmFtZSl9fWZ1bmN0aW9uIEVIZShuLHQpe2lmKDEmbiYmKEd0KDApLGYoMSwidGItZGF0YS10YWJsZS1jb250ZW50LWNlbGwiLDE1KSxHdCgyLDkpLFMoMyxNSGUsMiw3LCJzcGFuIiwxNiksUyg0LHdIZSwyLDEsImRpdiIsMTApLFMoNSxTSGUsMiwyLCJzcGFuIiwxMCksV3QoKSxnKCksV3QoKSksMiZuKXtsZXQgZT10LiRpbXBsaWNpdCxpPXcoKS4kaW1wbGljaXQ7digxKSxiKCJoZWFkZXIiLGUpKCJkYXR1bSIsaVtlLm5hbWVdKSgibmdDbGFzcyIsVW4oNywkbmUsInRhYmxlLWNvbHVtbi0iK2UubmFtZSkpLHYoMSksYigibmdTd2l0Y2giLGUubmFtZSksdigxKSxiKCJuZ1N3aXRjaENhc2UiLCJjb2xvciIpLHYoMSksYigibmdTd2l0Y2hDYXNlIiwic2VsZWN0ZWQiKSx2KDEpLGIoIm5nU3dpdGNoQ2FzZSIsImV4cGVyaW1lbnRBbGlhcyIpfX1mdW5jdGlvbiBUSGUobix0KXtpZigxJm4mJihHdCgwKSxmKDEsInRiLWRhdGEtdGFibGUtY29udGVudC1yb3ciKSxTKDIsRUhlLDYsOSwibmctY29udGFpbmVyIiw1KSxnKCksV3QoKSksMiZuKXtsZXQgZT10LiRpbXBsaWNpdCxpPXcoKTt2KDEpLEJlKCJkYXRhLWlkIixlLmlkKSx2KDEpLGIoIm5nRm9yT2YiLGkuZXh0ZW5kSGVhZGVycyhpLmhlYWRlcnMpKX19dmFyIGVpZT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy5Db2x1bW5IZWFkZXJUeXBlPWd0LHRoaXMuc29ydERhdGFCeT1uZXcgRix0aGlzLm9yZGVyQ29sdW1ucz1uZXcgRix0aGlzLm9uU2VsZWN0aW9uVG9nZ2xlPW5ldyBGLHRoaXMub25BbGxTZWxlY3Rpb25Ub2dnbGU9bmV3IEYsdGhpcy5vblJlZ2V4RmlsdGVyQ2hhbmdlPW5ldyBGLHRoaXMub25SdW5Db2xvckNoYW5nZT1uZXcgRix0aGlzLmFkZENvbHVtbj1uZXcgRix0aGlzLnJlbW92ZUNvbHVtbj1uZXcgRix0aGlzLm9uU2VsZWN0aW9uRGJsQ2xpY2s9bmV3IEYsdGhpcy5hZGRGaWx0ZXI9bmV3IEYsdGhpcy5sb2FkQWxsQ29sdW1ucz1uZXcgRix0aGlzLmV4dGVuZEhlYWRlcnM9X3ModGhpcy5pbnRlcm5hbEV4dGVuZEhlYWRlcnMpfWludGVybmFsRXh0ZW5kSGVhZGVycyhlKXtyZXR1cm5bXS5jb25jYXQoW3tuYW1lOiJzZWxlY3RlZCIsZGlzcGxheU5hbWU6IiIsdHlwZTpndC5DVVNUT00sZW5hYmxlZDohMH1dLGUsW3tuYW1lOiJjb2xvciIsZGlzcGxheU5hbWU6IiIsdHlwZTpndC5DT0xPUixlbmFibGVkOiEwfV0pfXNlbGVjdGlvbkNsaWNrKGUsaSl7ZS5wcmV2ZW50RGVmYXVsdCgpLDE9PT1lLmRldGFpbCYmdGhpcy5vblNlbGVjdGlvblRvZ2dsZS5lbWl0KGkpLDI9PT1lLmRldGFpbCYmdGhpcy5vblNlbGVjdGlvbkRibENsaWNrLmVtaXQoaSl9YWxsUm93c1NlbGVjdGVkKCl7cmV0dXJuIHRoaXMuZGF0YT8uZXZlcnkoZT0+ZS5zZWxlY3RlZCl9c29tZVJvd3NTZWxlY3RlZCgpe3JldHVybiB0aGlzLmRhdGE/LnNvbWUoZT0+ZS5zZWxlY3RlZCl9aGFuZGxlU2VsZWN0QWxsKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLm9uQWxsU2VsZWN0aW9uVG9nZ2xlLmVtaXQodGhpcy5kYXRhPy5tYXAoaT0+aS5pZCkpfW9uRmlsdGVyS2V5VXAoZSl7dGhpcy5vblJlZ2V4RmlsdGVyQ2hhbmdlLmVtaXQoZS50YXJnZXQudmFsdWUpfXRyYWNrQnlSdW5zKGUsaSl7bGV0IHI9ey4uLml9O3JldHVybiBkZWxldGUgci5jb2xvcixKU09OLnN0cmluZ2lmeShyKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sicnVucy1kYXRhLXRhYmxlIl1dLGlucHV0czp7aGVhZGVyczoiaGVhZGVycyIsZGF0YToiZGF0YSIsc29ydGluZ0luZm86InNvcnRpbmdJbmZvIixleHBlcmltZW50SWRzOiJleHBlcmltZW50SWRzIixyZWdleEZpbHRlcjoicmVnZXhGaWx0ZXIiLHNlbGVjdGFibGVDb2x1bW5zOiJzZWxlY3RhYmxlQ29sdW1ucyIsbnVtQ29sdW1uc0xvYWRlZDoibnVtQ29sdW1uc0xvYWRlZCIsbnVtQ29sdW1uc1RvTG9hZDoibnVtQ29sdW1uc1RvTG9hZCIsbG9hZGluZzoibG9hZGluZyIsY29sdW1uRmlsdGVyczoiY29sdW1uRmlsdGVycyJ9LG91dHB1dHM6e3NvcnREYXRhQnk6InNvcnREYXRhQnkiLG9yZGVyQ29sdW1uczoib3JkZXJDb2x1bW5zIixvblNlbGVjdGlvblRvZ2dsZToib25TZWxlY3Rpb25Ub2dnbGUiLG9uQWxsU2VsZWN0aW9uVG9nZ2xlOiJvbkFsbFNlbGVjdGlvblRvZ2dsZSIsb25SZWdleEZpbHRlckNoYW5nZToib25SZWdleEZpbHRlckNoYW5nZSIsb25SdW5Db2xvckNoYW5nZToib25SdW5Db2xvckNoYW5nZSIsYWRkQ29sdW1uOiJhZGRDb2x1bW4iLHJlbW92ZUNvbHVtbjoicmVtb3ZlQ29sdW1uIixvblNlbGVjdGlvbkRibENsaWNrOiJvblNlbGVjdGlvbkRibENsaWNrIixhZGRGaWx0ZXI6ImFkZEZpbHRlciIsbG9hZEFsbENvbHVtbnM6ImxvYWRBbGxDb2x1bW5zIn0sZGVjbHM6OSx2YXJzOjEyLGNvbnN0czpbWzEsImZpbHRlci1yb3ciXSxbInBsYWNlaG9sZGVyIiwiRmlsdGVyIHJ1bnMgKHJlZ2V4KSIsMSwicnVuLWZpbHRlciIsMywidmFsdWUiLCJrZXl1cCJdLFsxLCJ0YWJsZS1jb250YWluZXIiXSxbMywiaGVhZGVycyIsInNvcnRpbmdJbmZvIiwic2VsZWN0YWJsZUNvbHVtbnMiLCJudW1Db2x1bW5zTG9hZGVkIiwiaGFzTW9yZUNvbHVtbnNUb0xvYWQiLCJjb2x1bW5GaWx0ZXJzIiwibG9hZGluZyIsInNob3VsZEFkZEJvcmRlcnMiLCJzb3J0RGF0YUJ5Iiwib3JkZXJDb2x1bW5zIiwiYWRkQ29sdW1uIiwicmVtb3ZlQ29sdW1uIiwiYWRkRmlsdGVyIiwibG9hZEFsbENvbHVtbnMiXSxbImhlYWRlciIsIiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImNvbnRlbnQiLCIiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIiwibmdGb3JUcmFja0J5Il0sWzMsImhlYWRlciIsInNvcnRpbmdJbmZvIiwibmdDbGFzcyJdLFszLCJuZ1N3aXRjaCJdLFs0LCJuZ1N3aXRjaENhc2UiXSxbImNsYXNzIiwiZ3JvdXAtbWVudS1jb250YWluZXIiLDQsIm5nU3dpdGNoQ2FzZSJdLFszLCJjaGVja2VkIiwiaW5kZXRlcm1pbmF0ZSIsImNsaWNrIl0sWzEsImdyb3VwLW1lbnUtY29udGFpbmVyIl0sWzMsImV4cGVyaW1lbnRJZHMiXSxbMywiaGVhZGVyIiwiZGF0dW0iLCJuZ0NsYXNzIl0sWyJjbGFzcyIsImNvbG9yLWNvbnRhaW5lciIsNCwibmdTd2l0Y2hDYXNlIl0sWzEsImNvbG9yLWNvbnRhaW5lciJdLFsxLCJydW4tY29sb3Itc3dhdGNoIiwzLCJjb2xvclBpY2tlciIsImNwRGlhbG9nRGlzcGxheSIsImNwUG9zaXRpb25PZmZzZXQiLCJjcFVzZVJvb3RWaWV3Q29udGFpbmVyIiwiY3BPdXRwdXRGb3JtYXQiLCJjb2xvclBpY2tlckNoYW5nZSJdLFszLCJjaGVja2VkIiwiY2xpY2siXSxbMywiYWxpYXMiLCJ0aXRsZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmKGYoMCwiZGl2IiwwKSgxLCJ0Yi1maWx0ZXItaW5wdXQiLDEpLEEoImtleXVwIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkZpbHRlcktleVVwKG8pfSksZygpKCksaygyLCJmaWx0ZXJiYXIiKSxmKDMsImRpdiIsMikoNCwidGItZGF0YS10YWJsZSIsMyksQSgic29ydERhdGFCeSIsZnVuY3Rpb24obyl7cmV0dXJuIGkuc29ydERhdGFCeS5lbWl0KG8pfSkoIm9yZGVyQ29sdW1ucyIsZnVuY3Rpb24obyl7cmV0dXJuIGkub3JkZXJDb2x1bW5zLmVtaXQobyl9KSgiYWRkQ29sdW1uIixmdW5jdGlvbihvKXtyZXR1cm4gaS5hZGRDb2x1bW4uZW1pdChvKX0pKCJyZW1vdmVDb2x1bW4iLGZ1bmN0aW9uKG8pe3JldHVybiBpLnJlbW92ZUNvbHVtbi5lbWl0KG8pfSkoImFkZEZpbHRlciIsZnVuY3Rpb24obyl7cmV0dXJuIGkuYWRkRmlsdGVyLmVtaXQobyl9KSgibG9hZEFsbENvbHVtbnMiLGZ1bmN0aW9uKCl7cmV0dXJuIGkubG9hZEFsbENvbHVtbnMuZW1pdCgpfSksR3QoNSw0KSxTKDYsQ0hlLDUsOCwibmctY29udGFpbmVyIiw1KSxXdCgpLEd0KDcsNiksUyg4LFRIZSwzLDIsIm5nLWNvbnRhaW5lciIsNyksV3QoKSxnKCkoKSksMiZlJiYodigxKSxaaSgidmFsdWUiLGkucmVnZXhGaWx0ZXIpLHYoMyksYigiaGVhZGVycyIsaS5oZWFkZXJzKSgic29ydGluZ0luZm8iLGkuc29ydGluZ0luZm8pKCJzZWxlY3RhYmxlQ29sdW1ucyIsaS5zZWxlY3RhYmxlQ29sdW1ucykoIm51bUNvbHVtbnNMb2FkZWQiLGkubnVtQ29sdW1uc0xvYWRlZCkoImhhc01vcmVDb2x1bW5zVG9Mb2FkIixpLm51bUNvbHVtbnNMb2FkZWQ9PT1pLm51bUNvbHVtbnNUb0xvYWQpKCJjb2x1bW5GaWx0ZXJzIixpLmNvbHVtbkZpbHRlcnMpKCJsb2FkaW5nIixpLmxvYWRpbmcpKCJzaG91bGRBZGRCb3JkZXJzIiwhMCksdigyKSxiKCJuZ0Zvck9mIixpLmV4dGVuZEhlYWRlcnMoaS5oZWFkZXJzKSksdigyKSxiKCJuZ0Zvck9mIixpLmRhdGEpKCJuZ0ZvclRyYWNrQnkiLGkudHJhY2tCeVJ1bnMpKX0sZGVwZW5kZW5jaWVzOltCbmUsd24sbm4sbXIsa3IsbV8sZEEsbUEsZl8sS2csZ18seHMsWW5lLEpuZV0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXttaW4td2lkdGg6MTAwJX0uY29sb3ItY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDAlfS5ydW4tY29sb3Itc3dhdGNoW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItcmFkaXVzOjEwMCU7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2hlaWdodDoyMHB4O3dpZHRoOjIwcHg7b3V0bGluZTpub25lfS5ncm91cC1tZW51LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MTAwJX10Yi1kYXRhLXRhYmxlLWNvbnRlbnQtcm93W19uZ2NvbnRlbnQtJUNPTVAlXSwgdGItZGF0YS10YWJsZS1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjQ4cHh9dGItZGF0YS10YWJsZS1jb250ZW50LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCB0Yi1kYXRhLXRhYmxlLWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjAgNHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmVifWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIHRiLWRhdGEtdGFibGUtY29udGVudC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgdGItZGF0YS10YWJsZS1jb250ZW50LWNlbGxbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgdGItZGF0YS10YWJsZS1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIHRiLWRhdGEtdGFibGUtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9LnRhYmxlLWNvbHVtbi1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV0sIC50YWJsZS1jb2x1bW4tY29sb3JbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjQwcHh9LmZpbHRlci1yb3dbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjQ4cHg7d2lkdGg6MTAwJX0uZmlsdGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV0gICB0Yi1maWx0ZXItaW5wdXRbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctbGVmdDoxNnB4O2ZsZXgtZ3JvdzoxfSJdLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksSUhlPVcoVHYsbj0+bi5zdGF0ZT09PVJlLkxPQURJTkcpLHRpZT0oKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmU9ZSx0aGlzLnNvcnRlZFJ1bnNUYWJsZURhdGEkPSR0KFtdKSx0aGlzLmxvYWRpbmckPW51bGwsdGhpcy5zb3J0aW5nSW5mbyQ9dGhpcy5zdG9yZS5zZWxlY3QoJFcpLHRoaXMuY29sdW1ucz1bWmwuUlVOX05BTUVdLHRoaXMucmVnZXhGaWx0ZXIkPXRoaXMuc3RvcmUuc2VsZWN0KEF1KSx0aGlzLnJ1bnNDb2x1bW5zJD10aGlzLnN0b3JlLnNlbGVjdChlNyksdGhpcy5zZWxlY3RhYmxlQ29sdW1ucyQ9dGhpcy5zdG9yZS5zZWxlY3QoWVQpLHRoaXMubnVtQ29sdW1uc0xvYWRlZCQ9dGhpcy5zdG9yZS5zZWxlY3QoTWMuZ2V0TnVtRGFzaGJvYXJkSHBhcmFtc0xvYWRlZCksdGhpcy5udW1Db2x1bW5zVG9Mb2FkJD10aGlzLnN0b3JlLnNlbGVjdChNYy5nZXROdW1EYXNoYm9hcmRIcGFyYW1zVG9Mb2FkKSx0aGlzLmNvbHVtbkZpbHRlcnMkPXRoaXMuc3RvcmUuc2VsZWN0KFhUKSx0aGlzLmFsbFJ1bnNUYWJsZURhdGEkPXRoaXMuc3RvcmUuc2VsZWN0KEFOKS5waXBlKHEoaT0+aS5tYXAocj0+KHsuLi5PYmplY3QuZnJvbUVudHJpZXMoci5ocGFyYW1zLmVudHJpZXMoKSksaWQ6ci5ydW4uaWQscnVuOnIucnVuLm5hbWUsZXhwZXJpbWVudE5hbWU6ci5leHBlcmltZW50TmFtZSxleHBlcmltZW50QWxpYXM6ci5leHBlcmltZW50QWxpYXMsc2VsZWN0ZWQ6ci5zZWxlY3RlZCxjb2xvcjpyLnJ1bkNvbG9yfSkpKSksdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBFZX1uZ09uSW5pdCgpe2xldCBlPXRoaXMuZXhwZXJpbWVudElkcy5tYXAobz0+dGhpcy5nZXRSdW5UYWJsZUl0ZW1zRm9yRXhwZXJpbWVudChvKSk7dGhpcy5zb3J0ZWRSdW5zVGFibGVEYXRhJD1JbihbdGhpcy5hbGxSdW5zVGFibGVEYXRhJCx0aGlzLnNvcnRpbmdJbmZvJF0pLnBpcGUocSgoW28sYV0pPT5mdW5jdGlvbihuLHQpe2xldCBlPVsuLi5uXTtyZXR1cm4gZS5zb3J0KChyLG8pPT57bGV0IGE9clt0Lm5hbWVdLHM9b1t0Lm5hbWVdO2lmKCJleHBlcmltZW50QWxpYXMiPT09dC5uYW1lJiYoYT1hLmFsaWFzTnVtYmVyLHM9cy5hbGlhc051bWJlciksYT09PXMpcmV0dXJuIDA7aWYodm9pZCAwPT09YXx8dm9pZCAwPT09cylyZXR1cm4gaShhLHMpO2lmKE9uZS5oYXModHlwZW9mIGEpJiZPbmUuaGFzKHR5cGVvZiBzKSl7bGV0IGw9Rm5lKGEpLGM9Rm5lKHMpO2lmKCh2b2lkIDA9PT1sfHx2b2lkIDA9PT1jKSYmbCE9PWMpcmV0dXJuIGkobCxjLHtpbnNlcnRVbmRlZmluZWQ6UHAuQkVGT1JFfSk7aWYodm9pZCAwIT09bCYmdm9pZCAwIT09YylyZXR1cm4gbD09PWM/aShhLnRvU3RyaW5nKCkuc2xpY2UobC50b1N0cmluZygpLmxlbmd0aCl8fHZvaWQgMCxzLnRvU3RyaW5nKCkuc2xpY2UoYy50b1N0cmluZygpLmxlbmd0aCl8fHZvaWQgMCx7aW5zZXJ0VW5kZWZpbmVkOlBwLkJFRk9SRX0pOmkobCxjKX1yZXR1cm4gaShhLHMpfSksZTtmdW5jdGlvbiBpKHIsbyx7aW5zZXJ0VW5kZWZpbmVkOmF9PUdWZSl7cmV0dXJuIHI9PT1vPzA6dm9pZCAwPT09cj9hPT09UHAuQUZURVI/MTotMTp2b2lkIDA9PT1vP2E9PT1QcC5BRlRFUj8tMToxOnI8bz09KHQub3JkZXI9PT1Mci5BU0NFTkRJTkcpPy0xOjF9fShvLGEpKSk7bGV0IGk9SW4oZSkucGlwZShxKG89PltdLmNvbmNhdCguLi5vKSkpLHI9dGhpcy5leHBlcmltZW50SWRzLm1hcChvPT50aGlzLnN0b3JlLnNlbGVjdChJSGUse2V4cGVyaW1lbnRJZDpvfSkpO3RoaXMubG9hZGluZyQ9SW4ocikucGlwZShxKG89Pm8uc29tZShhPT5hKSkpLHRoaXMuY29sdW1ucy5pbmNsdWRlcyhabC5DSEVDS0JPWCkmJnRoaXMuc3RvcmUuc2VsZWN0KEhvKS5waXBlKGl0KHRoaXMubmdVbnN1YnNjcmliZSkscmkoKGEscyk9PlZvKGEscykpLEpuKCgpPT5pLnBpcGUoT2UoYT0+YS5sZW5ndGg+NTAwKSxMdCgxKSkpKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKHRnKHtsb2NhbGl6ZWRNZXNzYWdlOiJUaGUgbnVtYmVyIG9mIHJ1bnMgZXhjZWVkcyA1MDAuIE5ldyBydW5zIGFyZSB1bnNlbGVjdGVkIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLiJ9KSl9KX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9c29ydERhdGFCeShlKXt0aGlzLnN0b3JlLmRpc3BhdGNoKFZTKHtzb3J0aW5nSW5mbzplfSkpfWdldFJ1blRhYmxlSXRlbXNGb3JFeHBlcmltZW50KGUpe3JldHVybiBJbihbdGhpcy5zdG9yZS5zZWxlY3QoSXUse2V4cGVyaW1lbnRJZDplfSksdGhpcy5zdG9yZS5zZWxlY3QoVVMse2V4cGVyaW1lbnRJZDplfSksdGhpcy5zdG9yZS5zZWxlY3QoUnUpLHRoaXMuc3RvcmUuc2VsZWN0KFB1KSx0aGlzLnN0b3JlLnNlbGVjdChxcyldKS5waXBlKHEoKFtpLHIsbyxhLHNdKT0+aS5tYXAobD0+e2xldCBjPW5ldyBNYXA7KGwuaHBhcmFtc3x8W10pLmZvckVhY2godT0+e2Muc2V0KHUubmFtZSx1LnZhbHVlKX0pO2xldCBkPW5ldyBNYXA7cmV0dXJuKGwubWV0cmljc3x8W10pLmZvckVhY2godT0+e2Quc2V0KHUudGFnLHUudmFsdWUpfSkse3J1bjpsLGV4cGVyaW1lbnROYW1lOnI/Lm5hbWV8fCIiLGV4cGVyaW1lbnRBbGlhczpzW2VdLHNlbGVjdGVkOkJvb2xlYW4obyYmby5nZXQobC5pZCkpLHJ1bkNvbG9yOmFbbC5pZF0saHBhcmFtczpjLG1ldHJpY3M6ZH19KSkpfW9uUnVuU2VsZWN0aW9uVG9nZ2xlKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2goa1Moe3J1bklkOmV9KSl9b25SdW5TZWxlY3Rpb25EYmxDbGljayhlKXt0aGlzLnN0b3JlLmRpc3BhdGNoKE9TKHtydW5JZDplfSkpfW9uQWxsU2VsZWN0aW9uVG9nZ2xlKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2goRlMoe3J1bklkczplfSkpfW9uUmVnZXhGaWx0ZXJDaGFuZ2UoZSl7dGhpcy5zdG9yZS5kaXNwYXRjaChOUyh7cmVnZXhTdHJpbmc6ZX0pKX1vblJ1bkNvbG9yQ2hhbmdlKHtydW5JZDplLG5ld0NvbG9yOml9KXt0aGlzLnN0b3JlLmRpc3BhdGNoKExTKHtydW5JZDplLG5ld0NvbG9yOml9KSl9YWRkQ29sdW1uKHtjb2x1bW46ZSxuZXh0VG86aSxzaWRlOnJ9KXt0aGlzLnN0b3JlLmRpc3BhdGNoKHJvLmRhc2hib2FyZEhwYXJhbUNvbHVtbkFkZGVkKHtjb2x1bW46ZSxuZXh0VG86aSxzaWRlOnJ9KSl9cmVtb3ZlQ29sdW1uKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2gocm8uZGFzaGJvYXJkSHBhcmFtQ29sdW1uUmVtb3ZlZCh7Y29sdW1uOmV9KSl9b3JkZXJDb2x1bW5zKGUpe3RoaXMuc3RvcmUuZGlzcGF0Y2gocm8uZGFzaGJvYXJkSHBhcmFtQ29sdW1uT3JkZXJDaGFuZ2VkKGUpKX1hZGRIcGFyYW1GaWx0ZXIoZSl7dGhpcy5zdG9yZS5kaXNwYXRjaChyby5kYXNoYm9hcmRIcGFyYW1GaWx0ZXJBZGRlZCh7bmFtZTplLm5hbWUsZmlsdGVyOmUudmFsdWV9KSl9bG9hZEFsbENvbHVtbnMoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKHJvLmxvYWRBbGxEYXNoYm9hcmRIcGFyYW1zKCkpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKEllKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sicnVucy10YWJsZSJdXSxpbnB1dHM6e2NvbHVtbnM6ImNvbHVtbnMiLGV4cGVyaW1lbnRJZHM6ImV4cGVyaW1lbnRJZHMifSxkZWNsczoxMCx2YXJzOjI4LGNvbnN0czpbWzMsImhlYWRlcnMiLCJkYXRhIiwic2VsZWN0YWJsZUNvbHVtbnMiLCJudW1Db2x1bW5zTG9hZGVkIiwibnVtQ29sdW1uc1RvTG9hZCIsImNvbHVtbkZpbHRlcnMiLCJzb3J0aW5nSW5mbyIsImV4cGVyaW1lbnRJZHMiLCJyZWdleEZpbHRlciIsImxvYWRpbmciLCJzb3J0RGF0YUJ5Iiwib3JkZXJDb2x1bW5zIiwib25TZWxlY3Rpb25Ub2dnbGUiLCJvbkFsbFNlbGVjdGlvblRvZ2dsZSIsIm9uUnVuQ29sb3JDaGFuZ2UiLCJvblJlZ2V4RmlsdGVyQ2hhbmdlIiwib25TZWxlY3Rpb25EYmxDbGljayIsImFkZENvbHVtbiIsInJlbW92ZUNvbHVtbiIsImFkZEZpbHRlciIsImxvYWRBbGxDb2x1bW5zIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJydW5zLWRhdGEtdGFibGUiLDApLEEoInNvcnREYXRhQnkiLGZ1bmN0aW9uKG8pe3JldHVybiBpLnNvcnREYXRhQnkobyl9KSgib3JkZXJDb2x1bW5zIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vcmRlckNvbHVtbnMobyl9KSgib25TZWxlY3Rpb25Ub2dnbGUiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uUnVuU2VsZWN0aW9uVG9nZ2xlKG8pfSkoIm9uQWxsU2VsZWN0aW9uVG9nZ2xlIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vbkFsbFNlbGVjdGlvblRvZ2dsZShvKX0pKCJvblJ1bkNvbG9yQ2hhbmdlIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vblJ1bkNvbG9yQ2hhbmdlKG8pfSkoIm9uUmVnZXhGaWx0ZXJDaGFuZ2UiLGZ1bmN0aW9uKG8pe3JldHVybiBpLm9uUmVnZXhGaWx0ZXJDaGFuZ2Uobyl9KSgib25TZWxlY3Rpb25EYmxDbGljayIsZnVuY3Rpb24obyl7cmV0dXJuIGkub25SdW5TZWxlY3Rpb25EYmxDbGljayhvKX0pKCJhZGRDb2x1bW4iLGZ1bmN0aW9uKG8pe3JldHVybiBpLmFkZENvbHVtbihvKX0pKCJyZW1vdmVDb2x1bW4iLGZ1bmN0aW9uKG8pe3JldHVybiBpLnJlbW92ZUNvbHVtbihvKX0pKCJhZGRGaWx0ZXIiLGZ1bmN0aW9uKG8pe3JldHVybiBpLmFkZEhwYXJhbUZpbHRlcihvKX0pKCJsb2FkQWxsQ29sdW1ucyIsZnVuY3Rpb24oKXtyZXR1cm4gaS5sb2FkQWxsQ29sdW1ucygpfSksVSgxLCJhc3luYyIpLFUoMiwiYXN5bmMiKSxVKDMsImFzeW5jIiksVSg0LCJhc3luYyIpLFUoNSwiYXN5bmMiKSxVKDYsImFzeW5jIiksVSg3LCJhc3luYyIpLFUoOCwiYXN5bmMiKSxVKDksImFzeW5jIiksZygpKSwyJmUmJmIoImhlYWRlcnMiLEcoMSwxMCxpLnJ1bnNDb2x1bW5zJCkpKCJkYXRhIixHKDIsMTIsaS5zb3J0ZWRSdW5zVGFibGVEYXRhJCkpKCJzZWxlY3RhYmxlQ29sdW1ucyIsRygzLDE0LGkuc2VsZWN0YWJsZUNvbHVtbnMkKSkoIm51bUNvbHVtbnNMb2FkZWQiLEcoNCwxNixpLm51bUNvbHVtbnNMb2FkZWQkKSkoIm51bUNvbHVtbnNUb0xvYWQiLEcoNSwxOCxpLm51bUNvbHVtbnNUb0xvYWQkKSkoImNvbHVtbkZpbHRlcnMiLEcoNiwyMCxpLmNvbHVtbkZpbHRlcnMkKSkoInNvcnRpbmdJbmZvIixHKDcsMjIsaS5zb3J0aW5nSW5mbyQpKSgiZXhwZXJpbWVudElkcyIsaS5leHBlcmltZW50SWRzKSgicmVnZXhGaWx0ZXIiLEcoOCwyNCxpLnJlZ2V4RmlsdGVyJCkpKCJsb2FkaW5nIixHKDksMjYsaS5sb2FkaW5nJCkpfSxkZXBlbmRlbmNpZXM6W2VpZSxjdF0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cblxuICAgICAgdGItZGF0YS10YWJsZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksbmllPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInJ1bnMtc2VsZWN0b3ItY29tcG9uZW50Il1dLGlucHV0czp7ZXhwZXJpbWVudElkczoiZXhwZXJpbWVudElkcyIsY29sdW1uczoiY29sdW1ucyJ9LGRlY2xzOjEsdmFyczoyLGNvbnN0czpbWzMsImNvbHVtbnMiLCJleHBlcmltZW50SWRzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiZrKDAsInJ1bnMtdGFibGUiLDApLDImZSYmYigiY29sdW1ucyIsaS5jb2x1bW5zKSgiZXhwZXJpbWVudElkcyIsaS5leHBlcmltZW50SWRzKX0sZGVwZW5kZW5jaWVzOlt0aWVdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICB9XG5cbiAgICAgIHJ1bnMtdGFibGVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksaWllPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5zdG9yZT1lLHRoaXMuZXhwZXJpbWVudElkcyQ9dGhpcy5zdG9yZS5zZWxlY3Qob3IpLnBpcGUocShpPT5pPz9bXSkpLHRoaXMuY29sdW1ucyQ9dGhpcy5zdG9yZS5zZWxlY3Qob3IpLnBpcGUocShpPT5bWmwuQ0hFQ0tCT1gsWmwuUlVOX05BTUUsaSYmaS5sZW5ndGg+MT9abC5FWFBFUklNRU5UX05BTUU6bnVsbCxabC5SVU5fQ09MT1JdLmZpbHRlcihyPT5udWxsIT09cikpKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInJ1bnMtc2VsZWN0b3IiXV0sZGVjbHM6Myx2YXJzOjYsY29uc3RzOltbMywiZXhwZXJpbWVudElkcyIsImNvbHVtbnMiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihrKDAsInJ1bnMtc2VsZWN0b3ItY29tcG9uZW50IiwwKSxVKDEsImFzeW5jIiksVSgyLCJhc3luYyIpKSwyJmUmJmIoImV4cGVyaW1lbnRJZHMiLEcoMSwyLGkuZXhwZXJpbWVudElkcyQpKSgiY29sdW1ucyIsRygyLDQsaS5jb2x1bW5zJCkpfSxkZXBlbmRlbmNpZXM6W25pZSxjdF0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCk7ZnVuY3Rpb24ga0hlKG4sdCl7MSZuJiZrKDAsIm1ldHJpY3MtbWFpbi12aWV3IiwyKX12YXIgcmllPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5zdG9yZT1lLHRoaXMucnVuc1RhYmxlRnVsbFNjcmVlbiQ9dGhpcy5zdG9yZS5zZWxlY3Qod1MpfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKEllKSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sibWV0cmljcy1kYXNoYm9hcmQiXV0sZGVjbHM6NCx2YXJzOjMsY29uc3RzOltbInNpZGViYXIiLCIiXSxbIm1haW4iLCIiLDQsIm5nSWYiXSxbIm1haW4iLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsInRiLWRhc2hib2FyZC1sYXlvdXQiKSxrKDEsInJ1bnMtc2VsZWN0b3IiLDApLFMoMixrSGUsMSwwLCJtZXRyaWNzLW1haW4tdmlldyIsMSksVSgzLCJhc3luYyIpLGcoKSksMiZlJiYodigyKSxiKCJuZ0lmIiwhRygzLDEsaS5ydW5zVGFibGVGdWxsU2NyZWVuJCkpKX0sZGVwZW5kZW5jaWVzOltOZSxfUSxrbmUsaWllLGN0XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2NvbnRhaW46c3RyaWN0O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OnN0cmV0Y2g7b3ZlcmZsb3c6aGlkZGVufS5ub3RpY2VbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjQ1LDE1NywuODUpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNmZmViM2I7Y29sb3I6IzIxMjEyMTtkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwfXRiLWRhc2hib2FyZC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MSAxO292ZXJmbG93OmhpZGRlbn1uYXZbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNlYmViZWI7ZmxleDpub25lO3dpZHRoOjM0MHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIG5hdltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIG5hdltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwO2JvcmRlci1yaWdodC1jb2xvcjojNTU1fW1ldHJpY3MtbWFpbi12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4OjEgMX0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLGtWPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltEZSxhaSxLbl19KSxufSkoKSx4QT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGVdfSksbn0pKCksT1Y9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe3RoaXMuY2hhbmdlcz1uZXcgRWUsdGhpcy5pdGVtc1BlclBhZ2VMYWJlbD0iSXRlbXMgcGVyIHBhZ2U6Iix0aGlzLm5leHRQYWdlTGFiZWw9Ik5leHQgcGFnZSIsdGhpcy5wcmV2aW91c1BhZ2VMYWJlbD0iUHJldmlvdXMgcGFnZSIsdGhpcy5maXJzdFBhZ2VMYWJlbD0iRmlyc3QgcGFnZSIsdGhpcy5sYXN0UGFnZUxhYmVsPSJMYXN0IHBhZ2UiLHRoaXMuZ2V0UmFuZ2VMYWJlbD0oZSxpLHIpPT57aWYoMD09cnx8MD09aSlyZXR1cm5gMCBvZiAke3J9YDtsZXQgbz1lKmk7cmV0dXJuYCR7bysxfSBcdTIwMTMgJHtvPChyPU1hdGgubWF4KHIsMCkpP01hdGgubWluKG8raSxyKTpvK2l9IG9mICR7cn1gfX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCksRkhlPXtwcm92aWRlOk9WLGRlcHM6W1tuZXcga2EsbmV3IGlkLE9WXV0sdXNlRmFjdG9yeTpmdW5jdGlvbihuKXtyZXR1cm4gbnx8bmV3IE9WfX0sb2llPShuZXcgdGUoIk1BVF9QQUdJTkFUT1JfREVGQVVMVF9PUFRJT05TIiksYW8oSDEoY2xhc3N7fSkpLCgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtwcm92aWRlcnM6W0ZIZV0saW1wb3J0czpbRGUsS24sWGEsWGddfSksbn0pKCkpLGtwPShuZXcgdGUoIk1BVF9TT1JUX0RFRkFVTFRfT1BUSU9OUyIpLEgxKGFvKGNsYXNze30pKSxMNy5FTlRFUklORysiICIrTjcuU1RBTkRBUkRfQ1VSVkUpLEZWPShmcigiaW5kaWNhdG9yIixbU2koImFjdGl2ZS1hc2MsIGFzYyIscm4oe3RyYW5zZm9ybToidHJhbnNsYXRlWSgwcHgpIn0pKSxTaSgiYWN0aXZlLWRlc2MsIGRlc2MiLHJuKHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMTBweCkifSkpLGJpKCJhY3RpdmUtYXNjIDw9PiBhY3RpdmUtZGVzYyIsTWkoa3ApKV0pLGZyKCJsZWZ0UG9pbnRlciIsW1NpKCJhY3RpdmUtYXNjLCBhc2MiLHJuKHt0cmFuc2Zvcm06InJvdGF0ZSgtNDVkZWcpIn0pKSxTaSgiYWN0aXZlLWRlc2MsIGRlc2MiLHJuKHt0cmFuc2Zvcm06InJvdGF0ZSg0NWRlZykifSkpLGJpKCJhY3RpdmUtYXNjIDw9PiBhY3RpdmUtZGVzYyIsTWkoa3ApKV0pLGZyKCJyaWdodFBvaW50ZXIiLFtTaSgiYWN0aXZlLWFzYywgYXNjIixybih7dHJhbnNmb3JtOiJyb3RhdGUoNDVkZWcpIn0pKSxTaSgiYWN0aXZlLWRlc2MsIGRlc2MiLHJuKHt0cmFuc2Zvcm06InJvdGF0ZSgtNDVkZWcpIn0pKSxiaSgiYWN0aXZlLWFzYyA8PT4gYWN0aXZlLWRlc2MiLE1pKGtwKSldKSxmcigiYXJyb3dPcGFjaXR5IixbU2koImRlc2MtdG8tYWN0aXZlLCBhc2MtdG8tYWN0aXZlLCBhY3RpdmUiLHJuKHtvcGFjaXR5OjF9KSksU2koImRlc2MtdG8taGludCwgYXNjLXRvLWhpbnQsIGhpbnQiLHJuKHtvcGFjaXR5Oi41NH0pKSxTaSgiaGludC10by1kZXNjLCBhY3RpdmUtdG8tZGVzYywgZGVzYywgaGludC10by1hc2MsIGFjdGl2ZS10by1hc2MsIGFzYywgdm9pZCIscm4oe29wYWNpdHk6MH0pKSxiaSgiKiA9PiBhc2MsICogPT4gZGVzYywgKiA9PiBhY3RpdmUsICogPT4gaGludCwgKiA9PiB2b2lkIixNaSgiMG1zIikpLGJpKCIqIDw9PiAqIixNaShrcCkpXSksZnIoImFycm93UG9zaXRpb24iLFtiaSgiKiA9PiBkZXNjLXRvLWhpbnQsICogPT4gZGVzYy10by1hY3RpdmUiLE1pKGtwLEJiKFtybih7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC0yNSUpIn0pLHJuKHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMCkifSldKSkpLGJpKCIqID0+IGhpbnQtdG8tZGVzYywgKiA9PiBhY3RpdmUtdG8tZGVzYyIsTWkoa3AsQmIoW3JuKHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMCkifSkscm4oe3RyYW5zZm9ybToidHJhbnNsYXRlWSgyNSUpIn0pXSkpKSxiaSgiKiA9PiBhc2MtdG8taGludCwgKiA9PiBhc2MtdG8tYWN0aXZlIixNaShrcCxCYihbcm4oe3RyYW5zZm9ybToidHJhbnNsYXRlWSgyNSUpIn0pLHJuKHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMCkifSldKSkpLGJpKCIqID0+IGhpbnQtdG8tYXNjLCAqID0+IGFjdGl2ZS10by1hc2MiLE1pKGtwLEJiKFtybih7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDApIn0pLHJuKHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoLTI1JSkifSldKSkpLFNpKCJkZXNjLXRvLWhpbnQsIGFzYy10by1oaW50LCBoaW50LCBkZXNjLXRvLWFjdGl2ZSwgYXNjLXRvLWFjdGl2ZSwgYWN0aXZlIixybih7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDApIn0pKSxTaSgiaGludC10by1kZXNjLCBhY3RpdmUtdG8tZGVzYywgZGVzYyIscm4oe3RyYW5zZm9ybToidHJhbnNsYXRlWSgtMjUlKSJ9KSksU2koImhpbnQtdG8tYXNjLCBhY3RpdmUtdG8tYXNjLCBhc2MiLHJuKHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMjUlKSJ9KSldKSxmcigiYWxsb3dDaGlsZHJlbiIsW2JpKCIqIDw9PiAqIixbcmgoIkAqIixpaCgpLHtvcHRpb25hbDohMH0pXSldKSwoKCk9PntjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy5jaGFuZ2VzPW5ldyBFZX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1cHJvdj11ZSh7dG9rZW46bixmYWN0b3J5Om4uXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksbn0pKCkpLExIZT17cHJvdmlkZTpGVixkZXBzOltbbmV3IGthLG5ldyBpZCxGVl1dLHVzZUZhY3Rvcnk6ZnVuY3Rpb24obil7cmV0dXJuIG58fG5ldyBGVn19LGFpZT0oYW8oY2xhc3N7fSksKCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe3Byb3ZpZGVyczpbTEhlXSxpbXBvcnRzOltEZSxkbl19KSxufSkoKSk7ZnVuY3Rpb24gVlYobil7cmV0dXJuIGNsYXNzIGV4dGVuZHMgbntnZXQgc3RpY2t5KCl7cmV0dXJuIHRoaXMuX3N0aWNreX1zZXQgc3RpY2t5KHQpe2xldCBlPXRoaXMuX3N0aWNreTt0aGlzLl9zdGlja3k9dnQodCksdGhpcy5faGFzU3RpY2t5Q2hhbmdlZD1lIT09dGhpcy5fc3RpY2t5fWhhc1N0aWNreUNoYW5nZWQoKXtsZXQgdD10aGlzLl9oYXNTdGlja3lDaGFuZ2VkO3JldHVybiB0aGlzLl9oYXNTdGlja3lDaGFuZ2VkPSExLHR9cmVzZXRTdGlja3lDaGFuZ2VkKCl7dGhpcy5faGFzU3RpY2t5Q2hhbmdlZD0hMX1jb25zdHJ1Y3RvciguLi50KXtzdXBlciguLi50KSx0aGlzLl9zdGlja3k9ITEsdGhpcy5faGFzU3RpY2t5Q2hhbmdlZD0hMX19fXZhciBIVj1uZXcgdGUoIkNES19UQUJMRSIpLHNpZT0obmV3IHRlKCJ0ZXh0LWNvbHVtbi1vcHRpb25zIiksVlYoY2xhc3N7fSksbmV3IHRlKCJfQ09BTEVTQ0VEX1NUWUxFX1NDSEVEVUxFUiIpLCgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpKXt0aGlzLnRlbXBsYXRlPWUsdGhpcy5fZGlmZmVycz1pfW5nT25DaGFuZ2VzKGUpe2lmKCF0aGlzLl9jb2x1bW5zRGlmZmVyKXtsZXQgaT1lLmNvbHVtbnMmJmUuY29sdW1ucy5jdXJyZW50VmFsdWV8fFtdO3RoaXMuX2NvbHVtbnNEaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKGkpLmNyZWF0ZSgpLHRoaXMuX2NvbHVtbnNEaWZmZXIuZGlmZihpKX19Z2V0Q29sdW1uc0RpZmYoKXtyZXR1cm4gdGhpcy5fY29sdW1uc0RpZmZlci5kaWZmKHRoaXMuY29sdW1ucyl9ZXh0cmFjdENlbGxUZW1wbGF0ZShlKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIGxpZT9lLmhlYWRlckNlbGwudGVtcGxhdGU6dGhpcyBpbnN0YW5jZW9mIGNpZT9lLmZvb3RlckNlbGwudGVtcGxhdGU6ZS5jZWxsLnRlbXBsYXRlfX1yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKShDKG9pKSxDKFRsKSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sZmVhdHVyZXM6W3F0XX0pLG59KSgpKSxWSGU9VlYoY2xhc3MgZXh0ZW5kcyBzaWV7fSksbGllPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBWSGV7Y29uc3RydWN0b3IoZSxpLHIpe3N1cGVyKGUsaSksdGhpcy5fdGFibGU9cn1uZ09uQ2hhbmdlcyhlKXtzdXBlci5uZ09uQ2hhbmdlcyhlKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhvaSksQyhUbCksQyhIViw4KSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsImNka0hlYWRlclJvd0RlZiIsIiJdXSxpbnB1dHM6e2NvbHVtbnM6WyJjZGtIZWFkZXJSb3dEZWYiLCJjb2x1bW5zIl0sc3RpY2t5OlsiY2RrSGVhZGVyUm93RGVmU3RpY2t5Iiwic3RpY2t5Il19LGZlYXR1cmVzOltYZSxxdF19KSxufSkoKSxISGU9VlYoY2xhc3MgZXh0ZW5kcyBzaWV7fSksY2llPSgoKT0+e2NsYXNzIG4gZXh0ZW5kcyBISGV7Y29uc3RydWN0b3IoZSxpLHIpe3N1cGVyKGUsaSksdGhpcy5fdGFibGU9cn1uZ09uQ2hhbmdlcyhlKXtzdXBlci5uZ09uQ2hhbmdlcyhlKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhvaSksQyhUbCksQyhIViw4KSl9LG4uXHUwMjc1ZGlyPU1lKHt0eXBlOm4sc2VsZWN0b3JzOltbIiIsImNka0Zvb3RlclJvd0RlZiIsIiJdXSxpbnB1dHM6e2NvbHVtbnM6WyJjZGtGb290ZXJSb3dEZWYiLCJjb2x1bW5zIl0sc3RpY2t5OlsiY2RrRm9vdGVyUm93RGVmU3RpY2t5Iiwic3RpY2t5Il19LGZlYXR1cmVzOltYZSxxdF19KSxufSkoKSxkaWU9KG5ldyB0ZSgiQ0RLX1NQTCIpLCgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltDZF19KSxufSkoKSksdWllPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltkbixkaWUsZG5dfSksbn0pKCksQ0E9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0RlLGFpLFhnXX0pLG59KSgpLHBpZT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGUsYWkscmwsS24sR3UsWGddfSksbn0pKCksdl89KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0RlLGVwLEd1XX0pLG59KSgpLHlfPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltEZSxwQSxhaV19KSxufSkoKSxNQT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGUsa2MseV8sdl9dfSksbn0pKCksaGllPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltEZSxhaSxLbl19KSxufSkoKSx3QT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGUsYWksS24sb2wsQ0EscGllLE1BLGhpZV19KSxufSkoKSxtaWU9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe30pLG59KSgpLHhfPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltEZSxtaWVdfSksbn0pKCksZmllPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltWbmUsRGUsd0EseF8seV8sS24sa2MsSHUscmwsTUEsYWksUXUscW5lLG9pZSxvbCxhaWUsdWllLHZfLFExLFhhLHVFXX0pLG59KSgpLGdpZT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGUsZmllXX0pLG59KSgpLENfPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHt9KSxufSkoKSxTQT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGUsYWldfSksbn0pKCksX2llPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLm9uVGltZVNlbGVjdGlvbkNoYW5nZWQ9bmV3IEYsdGhpcy5vblRpbWVTZWxlY3Rpb25Ub2dnbGVkPW5ldyBGLHRoaXMuYXhpc0RpcmVjdGlvbj12YS5WRVJUSUNBTCx0aGlzLmNhcmRGb2JIZWxwZXI9e2dldFN0ZXBIaWdoZXJUaGFuQXhpc1Bvc2l0aW9uOnRoaXMuZ2V0U3RlcEhpZ2hlclRoYW5BeGlzUG9zaXRpb24uYmluZCh0aGlzKSxnZXRTdGVwTG93ZXJUaGFuQXhpc1Bvc2l0aW9uOnRoaXMuZ2V0U3RlcExvd2VyVGhhbkF4aXNQb3NpdGlvbi5iaW5kKHRoaXMpfX1nZXRBeGlzUG9zaXRpb25Gcm9tU3RhcnRTdGVwKCl7cmV0dXJuIHRoaXMudGVtcG9yYWxTY2FsZSh0aGlzLnRpbWVTZWxlY3Rpb24uc3RhcnQuc3RlcCl9Z2V0QXhpc1Bvc2l0aW9uRnJvbUVuZFN0ZXAoKXtyZXR1cm4gbnVsbD09PXRoaXMudGltZVNlbGVjdGlvbi5lbmQ/bnVsbDp0aGlzLnRlbXBvcmFsU2NhbGUodGhpcy50aW1lU2VsZWN0aW9uLmVuZC5zdGVwKX1nZXRIaWdoZXN0U3RlcCgpe3JldHVybiB0aGlzLnN0ZXBzW3RoaXMuc3RlcHMubGVuZ3RoLTFdfWdldExvd2VzdFN0ZXAoKXtyZXR1cm4gdGhpcy5zdGVwc1swXX1nZXRTdGVwSGlnaGVyVGhhbkF4aXNQb3NpdGlvbihlKXtsZXQgaT0wO2Zvcig7ZT50aGlzLnRlbXBvcmFsU2NhbGUodGhpcy5zdGVwc1tpXSkmJmk8dGhpcy5zdGVwcy5sZW5ndGgtMTspaSsrO3JldHVybiB0aGlzLnN0ZXBzW2ldfWdldFN0ZXBMb3dlclRoYW5BeGlzUG9zaXRpb24oZSl7bGV0IGk9dGhpcy5zdGVwcy5sZW5ndGgtMTtmb3IoO2U8dGhpcy50ZW1wb3JhbFNjYWxlKHRoaXMuc3RlcHNbaV0pJiZpPjA7KWktLTtyZXR1cm4gdGhpcy5zdGVwc1tpXX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1siaGlzdG9ncmFtLWNhcmQtZm9iLWNvbnRyb2xsZXIiXV0saW5wdXRzOntzdGVwczoic3RlcHMiLHRpbWVTZWxlY3Rpb246InRpbWVTZWxlY3Rpb24iLHRlbXBvcmFsU2NhbGU6InRlbXBvcmFsU2NhbGUifSxvdXRwdXRzOntvblRpbWVTZWxlY3Rpb25DaGFuZ2VkOiJvblRpbWVTZWxlY3Rpb25DaGFuZ2VkIixvblRpbWVTZWxlY3Rpb25Ub2dnbGVkOiJvblRpbWVTZWxlY3Rpb25Ub2dnbGVkIn0sZGVjbHM6MSx2YXJzOjcsY29uc3RzOltbMywiYXhpc0RpcmVjdGlvbiIsInRpbWVTZWxlY3Rpb24iLCJzdGFydFN0ZXBBeGlzUG9zaXRpb24iLCJlbmRTdGVwQXhpc1Bvc2l0aW9uIiwiaGlnaGVzdFN0ZXAiLCJsb3dlc3RTdGVwIiwiY2FyZEZvYkhlbHBlciIsIm9uVGltZVNlbGVjdGlvbkNoYW5nZWQiLCJvblRpbWVTZWxlY3Rpb25Ub2dnbGVkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7MSZlJiYoZigwLCJjYXJkLWZvYi1jb250cm9sbGVyIiwwKSxBKCJvblRpbWVTZWxlY3Rpb25DaGFuZ2VkIixmdW5jdGlvbihvKXtyZXR1cm4gaS5vblRpbWVTZWxlY3Rpb25DaGFuZ2VkLmVtaXQobyl9KSgib25UaW1lU2VsZWN0aW9uVG9nZ2xlZCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5vblRpbWVTZWxlY3Rpb25Ub2dnbGVkLmVtaXQoKX0pLGcoKSksMiZlJiZiKCJheGlzRGlyZWN0aW9uIixpLmF4aXNEaXJlY3Rpb24pKCJ0aW1lU2VsZWN0aW9uIixpLnRpbWVTZWxlY3Rpb24pKCJzdGFydFN0ZXBBeGlzUG9zaXRpb24iLGkuZ2V0QXhpc1Bvc2l0aW9uRnJvbVN0YXJ0U3RlcCgpKSgiZW5kU3RlcEF4aXNQb3NpdGlvbiIsaS5nZXRBeGlzUG9zaXRpb25Gcm9tRW5kU3RlcCgpKSgiaGlnaGVzdFN0ZXAiLGkuZ2V0SGlnaGVzdFN0ZXAoKSkoImxvd2VzdFN0ZXAiLGkuZ2V0TG93ZXN0U3RlcCgpKSgiY2FyZEZvYkhlbHBlciIsaS5jYXJkRm9iSGVscGVyKX0sZGVwZW5kZW5jaWVzOltmQV0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksYmllPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltTQSxEZSx0cCxDX119KSxufSkoKTtzYihnQSxbbm4sTmUsVmgsUWcsX2llXSxbXSk7dmFyIE1fPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltEZV19KSxufSkoKSxFQT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGUseF9dfSksbn0pKCksd189KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0RlLGFpXX0pLG59KSgpLHZpZT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGUsYmllLEtuLGFpLG9sLEVBLE1fLHdfXX0pLG59KSgpLFRBPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHt9KSxufSkoKSx5aWU9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0RlLFRBLEtuLGFpLG9sLGVwLEVBLE1fLHdfXX0pLG59KSgpLHhpZT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGUsRG8sS24sYWkscmwsUXVdfSksbn0pKCksREE9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0RlLERvLHhpZSx0cF19KSxufSkoKSxDaWU9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0RlLFRBLEd1LEtuLEh1LHJsLFhhLEtTXX0pLG59KSgpLE1pZT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGUsd0FdfSksbn0pKCksd2llPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltTQSxEZSxEQV19KSxufSkoKSxTaWU9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0RlLENpZSx4XyxDXyxEQSxLbixhaSxRdSxvbCx0cCxNaWUsd2llLE1fLHdfXX0pLG59KSgpLEVpZT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGUseWllLFNpZSx2aWUsQ19dfSksbn0pKCksVGllPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltEZSxYYV19KSxufSkoKSxEaWU9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0RlLEtuLEh1XX0pLG59KSgpLElBPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltEZSxUaWUsS24sVVQsa2MsRGllLGFpLFhhLGVwLE11LHZfXX0pLG59KSgpLElpZT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGUsQ0Esa2MseUUsYWksS25dfSksbn0pKCksQWllPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltFaWUsRGUseEEseV8scEEsS24sVVQsYWkscmwsb2wsSUEsSWllLENkXX0pLG59KSgpLFJpZT0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpufSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbRGUseEEsa1YsQWllLGFpLElBLGdpZV19KSxufSkoKSxHSGU9Ik1heCBwaW4gbGltaXQgZXhjZWVkZWQuIFJlbW92ZSBleGlzdGluZyBwaW5zIGJlZm9yZSBhZGRpbmcgbW9yZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2lzc3Vlcy80MjQyIjtmdW5jdGlvbiBXSGUoKXtyZXR1cm5be2FjdGlvbkNyZWF0b3I6bnAsYWxlcnRGcm9tQWN0aW9uOm49PntsZXR7d2FzUGlubmVkOnQsY2FuQ3JlYXRlTmV3UGluczplfT1uO3JldHVybiB0fHxlP251bGw6e2xvY2FsaXplZE1lc3NhZ2U6R0hlfX19XX1mdW5jdGlvbiBxSGUoKXtyZXR1cm4gVyhfZCxuPT4oe3NjYWxhclNtb290aGluZzpufSkpfWZ1bmN0aW9uIFhIZSgpe3JldHVybiBXKENoLG49Pih7aWdub3JlT3V0bGllcnM6bn0pKX1mdW5jdGlvbiBZSGUoKXtyZXR1cm4gVyh4aCxuPT4oe3Rvb2x0aXBTb3J0OlN0cmluZyhuKX0pKX1mdW5jdGlvbiBRSGUoKXtyZXR1cm4gVyhwMSxuPT4oe3RpbWVTZXJpZXNTZXR0aW5nc1BhbmVPcGVuZWQ6bn0pKX1mdW5jdGlvbiBaSGUoKXtyZXR1cm4gVyhKZixuPT4oe3RpbWVTZXJpZXNDYXJkTWluV2lkdGg6bn0pKX1mdW5jdGlvbiBLSGUoKXtyZXR1cm4gVyhDdixuPT4oe3N0ZXBTZWxlY3RvckVuYWJsZWQ6bn0pKX1mdW5jdGlvbiBKSGUoKXtyZXR1cm4gVyhUdSxuPT4oe3JhbmdlU2VsZWN0aW9uRW5hYmxlZDpufSkpfWZ1bmN0aW9uICRIZSgpe3JldHVybiBXKEV1LG49Pih7bGlua2VkVGltZUVuYWJsZWQ6bn0pKX1mdW5jdGlvbiBlNWUoKXtyZXR1cm4gVyhiZCxuPT4oe3NhdmluZ1BpbnNFbmFibGVkOm59KSl9ZnVuY3Rpb24gdDVlKCl7cmV0dXJuIFcoTXYsbj0+KHtzaW5nbGVTZWxlY3Rpb25IZWFkZXJzOm59KSl9ZnVuY3Rpb24gbjVlKCl7cmV0dXJuIFcod3Ysbj0+KHtyYW5nZVNlbGVjdGlvbkhlYWRlcnM6bn0pKX12YXIgUGllPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtwcm92aWRlcnM6W3twcm92aWRlOlNOLHVzZUZhY3Rvcnk6aFEsZGVwczpbRU5dfSx7cHJvdmlkZTpFTix1c2VWYWx1ZTokU31dLGltcG9ydHM6W0RlLE5mLFFzLE9jLmZvclBsdWdpbihfdixyaWUpLEtTLFJpZSx3ci5mb3JGZWF0dXJlKEpTLHVRLFNOKSxDVyxNdSxpdix0by5mb3JGZWF0dXJlKFtwUV0pLENjLnJlZ2lzdGVyQWxlcnRBY3Rpb25zKFdIZSksUmkuZGVmaW5lR2xvYmFsU2V0dGluZyhxSGUpLFJpLmRlZmluZUdsb2JhbFNldHRpbmcoWEhlKSxSaS5kZWZpbmVHbG9iYWxTZXR0aW5nKFlIZSksUmkuZGVmaW5lR2xvYmFsU2V0dGluZyhRSGUpLFJpLmRlZmluZUdsb2JhbFNldHRpbmcoWkhlKSxSaS5kZWZpbmVHbG9iYWxTZXR0aW5nKEtIZSksUmkuZGVmaW5lR2xvYmFsU2V0dGluZyhKSGUpLFJpLmRlZmluZUdsb2JhbFNldHRpbmcoJEhlKSxSaS5kZWZpbmVHbG9iYWxTZXR0aW5nKHQ1ZSksUmkuZGVmaW5lR2xvYmFsU2V0dGluZyhuNWUpLFJpLmRlZmluZUdsb2JhbFNldHRpbmcoZTVlKV19KSxufSkoKSxraWU9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W2lRLFBpZV19KSxufSkoKSxYZD0oKCk9PihmdW5jdGlvbihuKXtuLkNVU1RPTV9FTEVNRU5UPSJDVVNUT01fRUxFTUVOVCIsbi5JRlJBTUU9IklGUkFNRSIsbi5OR19DT01QT05FTlQ9Ik5HX0NPTVBPTkVOVCIsbi5OT05FPSJOT05FIn0oWGR8fChYZD17fSkpLFhkKSkoKSxpNWU9WyJwbHVnaW5Db250YWluZXIiXSxyNWU9WyJuZ1BsdWdpbkNvbnRhaW5lciJdO2Z1bmN0aW9uIG81ZShuLHQpezEmbiYmaGkoMCl9ZnVuY3Rpb24gYTVlKG4sdCl7aWYoMSZuJiYoR3QoMCksUygxLG81ZSwxLDAsIm5nLWNvbnRhaW5lciIsOSksV3QoKSksMiZuKXtsZXQgZT13KDIpLGk9c3QoNik7digxKSxiKCJuZ1RlbXBsYXRlT3V0bGV0IixlLmVudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGU/ZS5lbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlOmkpfX1mdW5jdGlvbiBzNWUobix0KXsxJm4mJmhpKDApfWZ1bmN0aW9uIGw1ZShuLHQpe2lmKDEmbiYmKEd0KDApLFMoMSxzNWUsMSwwLCJuZy1jb250YWluZXIiLDkpLFd0KCkpLDImbil7bGV0IGU9dygyKSxpPXN0KDYpO3YoMSksYigibmdUZW1wbGF0ZU91dGxldCIsZS5lbnZpcm9ubWVudEZhaWx1cmVQZXJtaXNzaW9uRGVuaWVkVGVtcGxhdGU/ZS5lbnZpcm9ubWVudEZhaWx1cmVQZXJtaXNzaW9uRGVuaWVkVGVtcGxhdGU6aSl9fWZ1bmN0aW9uIGM1ZShuLHQpezEmbiYmaGkoMCl9ZnVuY3Rpb24gZDVlKG4sdCl7aWYoMSZuJiYoR3QoMCksUygxLGM1ZSwxLDAsIm5nLWNvbnRhaW5lciIsOSksV3QoKSksMiZuKXtsZXQgZT13KDIpLGk9c3QoNik7digxKSxiKCJuZ1RlbXBsYXRlT3V0bGV0IixlLmVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZT9lLmVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZTppKX19ZnVuY3Rpb24gdTVlKG4sdCl7aWYoMSZuJiYoR3QoMCksZigxLCJoMyIsMTApLFQoMiwiIFRoZXJlXHUyMDE5cyBubyBkYXNoYm9hcmQgYnkgdGhlIG5hbWUgb2YgXHUyMDFjIiksZigzLCJjb2RlIiksVCg0KSxnKCksVCg1LCJcdTIwMWQuICIpLGcoKSxmKDYsInAiKSxUKDcsIllvdSBjYW4gc2VsZWN0IGEgZGFzaGJvYXJkIGZyb20gdGhlIGxpc3QgYWJvdmUuIiksZygpLGYoOCwicCIpLGhpKDksMTEpLGcoKSxXdCgpKSwyJm4pe2xldCBlPXcoMiksaT1zdCg4KTt2KDQpLGt0KGUuYWN0aXZlUGx1Z2luSWQpLHYoNSksYigibmdUZW1wbGF0ZU91dGxldCIsaSl9fWZ1bmN0aW9uIHA1ZShuLHQpe2lmKDEmbiYmKEd0KDApLGYoMSwiaDMiLDEyKSxUKDIsIiBObyBkYXNoYm9hcmRzIGFyZSBhY3RpdmUgZm9yIHRoZSBjdXJyZW50IGRhdGEgc2V0LiAiKSxnKCksZigzLCJwIiksVCg0LCJQcm9iYWJsZSBjYXVzZXM6IiksZygpLGYoNSwidWwiKSg2LCJsaSIpLFQoNywiWW91IGhhdmVuXHUyMDE5dCB3cml0dGVuIGFueSBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuIiksZygpLGYoOCwibGkiKSxUKDksIlRlbnNvckJvYXJkIGNhblx1MjAxOXQgZmluZCB5b3VyIGV2ZW50IGZpbGVzLiIpLGcoKSgpLFQoMTAsIiBJZiB5b3VcdTIwMTlyZSBuZXcgdG8gdXNpbmcgVGVuc29yQm9hcmQsIGFuZCB3YW50IHRvIGZpbmQgb3V0IGhvdyB0byBhZGQgZGF0YSBhbmQgc2V0IHVwIHlvdXIgZXZlbnQgZmlsZXMsIGNoZWNrIG91dCB0aGUgIiksZigxMSwiYSIsMTMpLFQoMTIsIlJFQURNRSIpLGcoKSxUKDEzLCIgYW5kIHBlcmhhcHMgdGhlICIpLGYoMTQsImEiLDE0KSxUKDE1LCJUZW5zb3JCb2FyZCB0dXRvcmlhbCIpLGcoKSxUKDE2LCIuICIpLGYoMTcsInAiKSxUKDE4LCIgSWYgeW91IHRoaW5rIFRlbnNvckJvYXJkIGlzIGNvbmZpZ3VyZWQgcHJvcGVybHksIHBsZWFzZSBzZWUgIiksZigxOSwiYSIsMTUpLFQoMjAsInRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXMiKSxnKCksVCgyMSwiIGFuZCBjb25zaWRlciBmaWxpbmcgYW4gaXNzdWUgb24gR2l0SHViLiAiKSxnKCksZigyMiwicCIpLGhpKDIzLDExKSxnKCksV3QoKSksMiZuKXt3KDIpO2xldCBlPXN0KDgpO3YoMjMpLGIoIm5nVGVtcGxhdGVPdXRsZXQiLGUpfX1mdW5jdGlvbiBoNWUobix0KXtpZigxJm4mJihmKDAsImRpdiIsNikoMSwiZGl2Iiw3KSxTKDIsYTVlLDIsMSwibmctY29udGFpbmVyIiw4KSxTKDMsbDVlLDIsMSwibmctY29udGFpbmVyIiw4KSxTKDQsZDVlLDIsMSwibmctY29udGFpbmVyIiw4KSxTKDUsdTVlLDEwLDIsIm5nLWNvbnRhaW5lciIsOCksUyg2LHA1ZSwyNCwxLCJuZy1jb250YWluZXIiLDgpLGcoKSgpKSwyJm4pe2xldCBlPXcoKTtiKCJuZ1N3aXRjaCIsZS5wbHVnaW5Mb2FkU3RhdGUpLHYoMiksYigibmdTd2l0Y2hDYXNlIixlLlBsdWdpbkxvYWRTdGF0ZS5FTlZJUk9OTUVOVF9GQUlMVVJFX05PVF9GT1VORCksdigxKSxiKCJuZ1N3aXRjaENhc2UiLGUuUGx1Z2luTG9hZFN0YXRlLkVOVklST05NRU5UX0ZBSUxVUkVfUEVSTUlTU0lPTl9ERU5JRUQpLHYoMSksYigibmdTd2l0Y2hDYXNlIixlLlBsdWdpbkxvYWRTdGF0ZS5FTlZJUk9OTUVOVF9GQUlMVVJFX1VOS05PV04pLHYoMSksYigibmdTd2l0Y2hDYXNlIixlLlBsdWdpbkxvYWRTdGF0ZS5VTktOT1dOX1BMVUdJTl9JRCksdigxKSxiKCJuZ1N3aXRjaENhc2UiLGUuUGx1Z2luTG9hZFN0YXRlLk5PX0VOQUJMRURfUExVR0lOUyl9fWZ1bmN0aW9uIG01ZShuLHQpe2lmKDEmbiYmKGYoMCwiaDMiLDE2KSxUKDEsIkRhdGEgY291bGQgbm90IGJlIGxvYWRlZC4iKSxnKCksZigyLCJwIiksVCgzLCJUaGUgVGVuc29yQm9hcmQgc2VydmVyIG1heSBiZSBkb3duIG9yIGluYWNjZXNzaWJsZS4iKSxnKCksZig0LCJwIiksaGkoNSwxMSksZygpKSwyJm4pe3coKTtsZXQgZT1zdCg4KTt2KDUpLGIoIm5nVGVtcGxhdGVPdXRsZXQiLGUpfX1mdW5jdGlvbiBmNWUobix0KXtpZigxJm4mJihmKDAsInAiLDE5KSgxLCJpIiksVCgyLCJMb2cgZGlyZWN0b3J5OiAiKSxmKDMsInNwYW4iKSxUKDQpLGcoKSgpKCkpLDImbil7bGV0IGU9dygyKTt2KDQpLGt0KGUuZGF0YUxvY2F0aW9uKX19ZnVuY3Rpb24gZzVlKG4sdCl7aWYoMSZuJiYoZigwLCJzcGFuIiwxNyksVCgxKSxVKDIsImRhdGUiKSxnKCksUygzLGY1ZSw1LDEsInAiLDE4KSksMiZuKXtsZXQgZT13KCk7digxKSxWZSgiTGFzdCByZWxvYWQ6ICIsSnAoMiwyLGUubGFzdFVwZGF0ZWQsIm1lZGl1bSIpLCIiKSx2KDIpLGIoIm5nSWYiLGUuZGF0YUxvY2F0aW9uKX19dmFyIF81ZT1mdW5jdGlvbihuKXtyZXR1cm57cGx1Z2luczohMCwiaXMtZmlyc3QtcGFydHktcGx1Z2luIjpufX0sdWw9KCgpPT4oZnVuY3Rpb24obil7bltuLkVOVklST05NRU5UX0ZBSUxVUkVfTk9UX0ZPVU5EPTBdPSJFTlZJUk9OTUVOVF9GQUlMVVJFX05PVF9GT1VORCIsbltuLkVOVklST05NRU5UX0ZBSUxVUkVfUEVSTUlTU0lPTl9ERU5JRUQ9MV09IkVOVklST05NRU5UX0ZBSUxVUkVfUEVSTUlTU0lPTl9ERU5JRUQiLG5bbi5FTlZJUk9OTUVOVF9GQUlMVVJFX1VOS05PV049Ml09IkVOVklST05NRU5UX0ZBSUxVUkVfVU5LTk9XTiIsbltuLk5PX0VOQUJMRURfUExVR0lOUz0zXT0iTk9fRU5BQkxFRF9QTFVHSU5TIixuW24uVU5LTk9XTl9QTFVHSU5fSUQ9NF09IlVOS05PV05fUExVR0lOX0lEIixuW24uTE9BREVEPTVdPSJMT0FERUQiLG5bbi5MT0FESU5HPTZdPSJMT0FESU5HIn0odWx8fCh1bD17fSkpLHVsKSkoKSxPaWU9KCgpPT57Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLGkscil7dGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9ZSx0aGlzLnBsdWdpblJlZ2lzdHJ5PWksdGhpcy5wbHVnaW5BcGlIb3N0PXIsdGhpcy5QbHVnaW5Mb2FkU3RhdGU9dWwsdGhpcy5Mb2FkaW5nTWVjaGFuaXNtVHlwZT1YZCx0aGlzLnBsdWdpbkluc3RhbmNlcz1uZXcgTWFwfW5nT25DaGFuZ2VzKGUpe2lmKCF0aGlzLmlzRmVhdHVyZUZsYWdzTG9hZGVkfHwhdGhpcy5hY3RpdmVLbm93blBsdWdpbnx8dGhpcy5zZXR0aW5nc0xvYWRTdGF0ZT09PVJlLk5PVF9MT0FERUR8fHRoaXMuc2V0dGluZ3NMb2FkU3RhdGU9PT1SZS5MT0FESU5HKXJldHVybjtsZXQgaT1Cb29sZWFuKHRoaXMuYWN0aXZlS25vd25QbHVnaW4mJiF0aGlzLnBsdWdpbkluc3RhbmNlcy5oYXModGhpcy5hY3RpdmVLbm93blBsdWdpbi5pZCkpO2lmKGUuYWN0aXZlS25vd25QbHVnaW58fGUuaXNGZWF0dXJlRmxhZ3NMb2FkZWR8fGUuc2V0dGluZ3NMb2FkU3RhdGUpe2xldCByPWUuYWN0aXZlS25vd25QbHVnaW4/LnByZXZpb3VzVmFsdWU7aWYociYmci5pZCE9PXRoaXMuYWN0aXZlS25vd25QbHVnaW4uaWQmJnRoaXMuaGlkZVBsdWdpbihyKSxpKXtsZXQgbz10aGlzLmNyZWF0ZVBsdWdpbih0aGlzLmFjdGl2ZUtub3duUGx1Z2luKTtvJiZ0aGlzLnBsdWdpbkluc3RhbmNlcy5zZXQodGhpcy5hY3RpdmVLbm93blBsdWdpbi5pZCxvKX1lbHNlIHRoaXMuc2hvd1BsdWdpbih0aGlzLmFjdGl2ZUtub3duUGx1Z2luKX0oaXx8ZS5sYXN0VXBkYXRlZCkmJnRoaXMucmVsb2FkKHRoaXMuYWN0aXZlS25vd25QbHVnaW4saSl9aGlkZVBsdWdpbihlKXtpZighdGhpcy5wbHVnaW5JbnN0YW5jZXMuaGFzKGUuaWQpKXJldHVybjtsZXQgaT10aGlzLnBsdWdpbkluc3RhbmNlcy5nZXQoZS5pZCk7T2JqZWN0LmFzc2lnbihpLnN0eWxlLHttYXhIZWlnaHQ6MCxvdmVyZmxvdzoiaGlkZGVuIix2aXNpYmlsaXR5OiJoaWRkZW4iLHBvc2l0aW9uOiJhYnNvbHV0ZSJ9KX1zaG93UGx1Z2luKGUpe2lmKCF0aGlzLnBsdWdpbkluc3RhbmNlcy5oYXMoZS5pZCkpcmV0dXJuO2xldCBpPXRoaXMucGx1Z2luSW5zdGFuY2VzLmdldChlLmlkKTtPYmplY3QuYXNzaWduKGkuc3R5bGUse21heEhlaWdodDpudWxsLG92ZXJmbG93Om51bGwsdmlzaWJpbGl0eTpudWxsLHBvc2l0aW9uOm51bGx9KX1jcmVhdGVQbHVnaW4oZSl7bGV0IGk9bnVsbDtzd2l0Y2goZS5sb2FkaW5nX21lY2hhbmlzbS50eXBlKXtjYXNlIFhkLkNVU1RPTV9FTEVNRU5UOmk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlLmxvYWRpbmdfbWVjaGFuaXNtLmVsZW1lbnRfbmFtZSksaS5yZWxvYWRPblJlYWR5PSExLGkuZmVhdHVyZUZsYWdzPXRoaXMuZmVhdHVyZUZsYWdzLHRoaXMucGx1Z2luc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGkpO2JyZWFrO2Nhc2UgWGQuSUZSQU1FOmlmKCF0aGlzLnBsdWdpbkFwaUhvc3QpdGhyb3cgRXJyb3IoYElGUkFNRS1iYXNlZCBwbHVnaW5zIG5vdCBzdXBwb3J0ZWQ6ICR7ZS5pZH1gKTtpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpLGkuc2V0QXR0cmlidXRlKCJzcmMiLGBkYXRhL3BsdWdpbl9lbnRyeS5odG1sP25hbWU9JHtlLmlkfWApLHRoaXMucGx1Z2luQXBpSG9zdC5yZWdpc3RlclBsdWdpbklmcmFtZShpLGUuaWQpLHRoaXMucGx1Z2luc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGkpO2JyZWFrO2Nhc2UgWGQuTkdfQ09NUE9ORU5UOmxldCByPXRoaXMucGx1Z2luUmVnaXN0cnkuZ2V0Q29tcG9uZW50KGUuaWQpO2lmKHIpe2xldCBvPXRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHIpO2k9dGhpcy5uZ1BsdWdpbkNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQobykubG9jYXRpb24ubmF0aXZlRWxlbWVudH1lbHNlIGNvbnNvbGUuZXJyb3IoYE5vIHJlZ2lzdGVyZWQgQW5ndWxhciBjb21wb25lbnQgZm9yIHBsdWdpbjogJHtlLmlkfWApO2JyZWFrO2Nhc2UgWGQuTk9ORTpicmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoIlVuZXhwZWN0ZWQgcGx1Z2luIil9cmV0dXJuIGl9cmVsb2FkKGUsaSl7aWYoIWkmJmUuZGlzYWJsZV9yZWxvYWQpcmV0dXJuO2xldCByPXRoaXMucGx1Z2luSW5zdGFuY2VzLmdldChlLmlkKTtyJiZyLnJlbG9hZCYmci5yZWxvYWQoKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhobyksQyhPYyksQyhSMSw4KSl9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sicGx1Z2lucy1jb21wb25lbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGUsaSl7aWYoMSZlJiYoVWUoaTVlLDcseGUpLFVlKHI1ZSw3LGVpKSksMiZlKXtsZXQgcjtiZShyPXZlKCkpJiYoaS5wbHVnaW5zQ29udGFpbmVyPXIuZmlyc3QpLGJlKHI9dmUoKSkmJihpLm5nUGx1Z2luQ29udGFpbmVyPXIuZmlyc3QpfX0saW5wdXRzOnthY3RpdmVQbHVnaW5JZDoiYWN0aXZlUGx1Z2luSWQiLGFjdGl2ZUtub3duUGx1Z2luOiJhY3RpdmVLbm93blBsdWdpbiIscGx1Z2luTG9hZFN0YXRlOiJwbHVnaW5Mb2FkU3RhdGUiLGRhdGFMb2NhdGlvbjoiZGF0YUxvY2F0aW9uIixpc0ZlYXR1cmVGbGFnc0xvYWRlZDoiaXNGZWF0dXJlRmxhZ3NMb2FkZWQiLHNldHRpbmdzTG9hZFN0YXRlOiJzZXR0aW5nc0xvYWRTdGF0ZSIsZmVhdHVyZUZsYWdzOiJmZWF0dXJlRmxhZ3MiLGxhc3RVcGRhdGVkOiJsYXN0VXBkYXRlZCIsZW52aXJvbm1lbnRGYWlsdXJlTm90Rm91bmRUZW1wbGF0ZToiZW52aXJvbm1lbnRGYWlsdXJlTm90Rm91bmRUZW1wbGF0ZSIsZW52aXJvbm1lbnRGYWlsdXJlUGVybWlzc2lvbkRlbmllZFRlbXBsYXRlOiJlbnZpcm9ubWVudEZhaWx1cmVQZXJtaXNzaW9uRGVuaWVkVGVtcGxhdGUiLGVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZToiZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlIn0sZmVhdHVyZXM6W3F0XSxkZWNsczo5LHZhcnM6NCxjb25zdHM6W1szLCJuZ0NsYXNzIl0sWyJwbHVnaW5Db250YWluZXIiLCIiXSxbIm5nUGx1Z2luQ29udGFpbmVyIiwiIl0sWyJjbGFzcyIsIndhcm5pbmciLDMsIm5nU3dpdGNoIiw0LCJuZ0lmIl0sWyJlbnZpcm9ubWVudEZhaWx1cmVEZWZhdWx0VGVtcGxhdGUiLCIiXSxbImRhdGVBbmREYXRhTG9jYXRpb24iLCIiXSxbMSwid2FybmluZyIsMywibmdTd2l0Y2giXSxbMSwid2FybmluZy1tZXNzYWdlIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFs0LCJuZ1RlbXBsYXRlT3V0bGV0Il0sWzEsInVua25vd24tcGx1Z2luIl0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiXSxbMSwibm8tYWN0aXZlLXBsdWdpbiJdLFsiaHJlZiIsImh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCJdLFsiaHJlZiIsImh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiXSxbImhyZWYiLCJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIl0sWzEsImVudmlyb25tZW50LW5vdC1sb2FkZWQiXSxbMSwibGFzdC1yZWxvYWQtdGltZSJdLFsiY2xhc3MiLCJkYXRhLWxvY2F0aW9uIiw0LCJuZ0lmIl0sWzEsImRhdGEtbG9jYXRpb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihmKDAsImRpdiIsMCwxKSxoaSgyLG51bGwsMiksZygpLFMoNCxoNWUsNyw2LCJkaXYiLDMpLFMoNSxtNWUsNiwxLCJuZy10ZW1wbGF0ZSIsbnVsbCw0LGp0KSxTKDcsZzVlLDQsNSwibmctdGVtcGxhdGUiLG51bGwsNSxqdCkpLDImZSYmKGIoIm5nQ2xhc3MiLFVuKDIsXzVlLChudWxsPT1pLmFjdGl2ZUtub3duUGx1Z2luP251bGw6aS5hY3RpdmVLbm93blBsdWdpbi5sb2FkaW5nX21lY2hhbmlzbS50eXBlKSE9PWkuTG9hZGluZ01lY2hhbmlzbVR5cGUuSUZSQU1FKSksdig0KSxiKCJuZ0lmIixpLnBsdWdpbkxvYWRTdGF0ZSE9PWkuUGx1Z2luTG9hZFN0YXRlLkxPQURFRCYmaS5wbHVnaW5Mb2FkU3RhdGUhPT1pLlBsdWdpbkxvYWRTdGF0ZS5MT0FESU5HKSl9LGRlcGVuZGVuY2llczpbd24sTmUsZW8sbXIsa3Isd2ZdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMyMTIxMjE7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAucGx1Z2lucy5pcy1maXJzdC1wYXJ0eS1wbHVnaW5bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzMwMzAzMDtjb2xvcjojZmZmfS5wbHVnaW5zW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX0ud2FybmluZ1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojZmZmO2JvdHRvbTowO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC53YXJuaW5nW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLndhcm5pbmdbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6IzMwMzAzMH0ud2FybmluZy1tZXNzYWdlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojMjEyMTIxO21hcmdpbjo4MHB4IGF1dG8gMDttYXgtd2lkdGg6NTQwcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLndhcm5pbmctbWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC53YXJuaW5nLW1lc3NhZ2VbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmZmZ9Lmxhc3QtcmVsb2FkLXRpbWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc3R5bGU6aXRhbGljfS5wbHVnaW5zW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgaWZyYW1le2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLGI1ZT1XKEdmLFpvLChuLHQpPT50JiZuW3RdP09iamVjdC5hc3NpZ24oe2lkOnR9LG5bdF0pOm51bGwpLEFBPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy5zdG9yZT1lLHRoaXMuYWN0aXZlS25vd25QbHVnaW4kPXRoaXMuc3RvcmUuc2VsZWN0KGI1ZSksdGhpcy5hY3RpdmVQbHVnaW5JZCQ9dGhpcy5zdG9yZS5zZWxlY3QoWm8pLHRoaXMucGx1Z2luTG9hZFN0YXRlJD1Jbih0aGlzLmFjdGl2ZUtub3duUGx1Z2luJCx0aGlzLmFjdGl2ZVBsdWdpbklkJCx0aGlzLnN0b3JlLnNlbGVjdCh4UykpLnBpcGUocSgoW2kscixvXSk9Pm51bGwhPT1vLmZhaWx1cmVDb2RlP28uZmFpbHVyZUNvZGU9PT1Zcy5OT1RfRk9VTkQ/dWwuRU5WSVJPTk1FTlRfRkFJTFVSRV9OT1RfRk9VTkQ6by5mYWlsdXJlQ29kZT09PVlzLlBFUk1JU1NJT05fREVOSUVEP3VsLkVOVklST05NRU5UX0ZBSUxVUkVfUEVSTUlTU0lPTl9ERU5JRUQ6dWwuRU5WSVJPTk1FTlRfRkFJTFVSRV9VTktOT1dOOm51bGwhPT1pP3VsLkxPQURFRDpudWxsPT09by5sYXN0TG9hZGVkVGltZUluTXMmJm8uc3RhdGU9PT1SZS5MT0FESU5HP3VsLkxPQURJTkc6cj91bC5VTktOT1dOX1BMVUdJTl9JRDp1bC5OT19FTkFCTEVEX1BMVUdJTlMpKSx0aGlzLmxhc3RMb2FkZWRUaW1lSW5NcyQ9dGhpcy5zdG9yZS5zZWxlY3QoamYpLHRoaXMuZGF0YUxvY2F0aW9uJD10aGlzLnN0b3JlLnNlbGVjdChDUykucGlwZShxKGk9PmkuZGF0YV9sb2NhdGlvbikpLHRoaXMuaXNGZWF0dXJlRmxhZ3NMb2FkZWQkPXRoaXMuc3RvcmUuc2VsZWN0KGJ1KSx0aGlzLmZlYXR1cmVGbGFncyQ9dGhpcy5zdG9yZS5zZWxlY3QoUW8pLHRoaXMuc2V0dGluZ3NMb2FkU3RhdGUkPXRoaXMuc3RvcmUuc2VsZWN0KEhhLmdldFNldHRpbmdzTG9hZFN0YXRlKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInBsdWdpbnMiXV0saW5wdXRzOntlbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlOiJlbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlIixlbnZpcm9ubWVudEZhaWx1cmVQZXJtaXNzaW9uRGVuaWVkVGVtcGxhdGU6ImVudmlyb25tZW50RmFpbHVyZVBlcm1pc3Npb25EZW5pZWRUZW1wbGF0ZSIsZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlOiJlbnZpcm9ubWVudEZhaWx1cmVVbmtub3duVGVtcGxhdGUifSxkZWNsczo5LHZhcnM6MjcsY29uc3RzOltbMywiYWN0aXZlS25vd25QbHVnaW4iLCJhY3RpdmVQbHVnaW5JZCIsImRhdGFMb2NhdGlvbiIsImxhc3RVcGRhdGVkIiwicGx1Z2luTG9hZFN0YXRlIiwiaXNGZWF0dXJlRmxhZ3NMb2FkZWQiLCJzZXR0aW5nc0xvYWRTdGF0ZSIsImZlYXR1cmVGbGFncyIsImVudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGUiLCJlbnZpcm9ubWVudEZhaWx1cmVQZXJtaXNzaW9uRGVuaWVkVGVtcGxhdGUiLCJlbnZpcm9ubWVudEZhaWx1cmVVbmtub3duVGVtcGxhdGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZSxpKXsxJmUmJihrKDAsInBsdWdpbnMtY29tcG9uZW50IiwwKSxVKDEsImFzeW5jIiksVSgyLCJhc3luYyIpLFUoMywiYXN5bmMiKSxVKDQsImFzeW5jIiksVSg1LCJhc3luYyIpLFUoNiwiYXN5bmMiKSxVKDcsImFzeW5jIiksVSg4LCJhc3luYyIpKSwyJmUmJmIoImFjdGl2ZUtub3duUGx1Z2luIixHKDEsMTEsaS5hY3RpdmVLbm93blBsdWdpbiQpKSgiYWN0aXZlUGx1Z2luSWQiLEcoMiwxMyxpLmFjdGl2ZVBsdWdpbklkJCkpKCJkYXRhTG9jYXRpb24iLEcoMywxNSxpLmRhdGFMb2NhdGlvbiQpKSgibGFzdFVwZGF0ZWQiLEcoNCwxNyxpLmxhc3RMb2FkZWRUaW1lSW5NcyQpKSgicGx1Z2luTG9hZFN0YXRlIixHKDUsMTksaS5wbHVnaW5Mb2FkU3RhdGUkKSkoImlzRmVhdHVyZUZsYWdzTG9hZGVkIixHKDYsMjEsaS5pc0ZlYXR1cmVGbGFnc0xvYWRlZCQpKSgic2V0dGluZ3NMb2FkU3RhdGUiLEcoNywyMyxpLnNldHRpbmdzTG9hZFN0YXRlJCkpKCJmZWF0dXJlRmxhZ3MiLEcoOCwyNSxpLmZlYXR1cmVGbGFncyQpKSgiZW52aXJvbm1lbnRGYWlsdXJlTm90Rm91bmRUZW1wbGF0ZSIsaS5lbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlKSgiZW52aXJvbm1lbnRGYWlsdXJlUGVybWlzc2lvbkRlbmllZFRlbXBsYXRlIixpLmVudmlyb25tZW50RmFpbHVyZVBlcm1pc3Npb25EZW5pZWRUZW1wbGF0ZSkoImVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZSIsaS5lbnZpcm9ubWVudEZhaWx1cmVVbmtub3duVGVtcGxhdGUpfSxzdHlsZXM6WyJwbHVnaW5zLWNvbXBvbmVudFtfbmdjb250ZW50LSVDT01QJV0geyBoZWlnaHQ6IDEwMCU7IH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLG59KSgpLFJBPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtpbXBvcnRzOltRcyxEZSxPY119KSxufSkoKTtzYihBQSxbT2llXSxbY3RdKTt2YXIgRmllPSgoKT0+e2NsYXNzIG57Y29uc3RydWN0b3IoZSxpKXt0aGlzLnN0b3JlPWUsdGhpcy5kb2N1bWVudD1pLHRoaXMub25WaXNpYmlsaXR5Q2hhbmdlPXRoaXMub25WaXNpYmlsaXR5Q2hhbmdlSW1wbC5iaW5kKHRoaXMpLHRoaXMucmVsb2FkRW5hYmxlZCQ9dGhpcy5zdG9yZS5waXBlKHVuKEhhLmdldFJlbG9hZEVuYWJsZWQpKSx0aGlzLnJlbG9hZFBlcmlvZEluTXMkPXRoaXMuc3RvcmUucGlwZSh1bihIYS5nZXRSZWxvYWRQZXJpb2RJbk1zKSksdGhpcy5yZWxvYWRUaW1lcklkPW51bGwsdGhpcy5taXNzZWRBdXRvUmVsb2FkPSExLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgRWV9bmdPbkluaXQoKXt0aGlzLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHRoaXMub25WaXNpYmlsaXR5Q2hhbmdlKSxJbih0aGlzLnJlbG9hZEVuYWJsZWQkLnBpcGUocmkoKSksdGhpcy5yZWxvYWRQZXJpb2RJbk1zJC5waXBlKHJpKCkpKS5waXBlKGl0KHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoW2UsaV0pPT57dGhpcy5jYW5jZWxMb2FkKCksZSYmdGhpcy5sb2FkKGkpfSl9b25WaXNpYmlsaXR5Q2hhbmdlSW1wbCgpeyJ2aXNpYmxlIj09PXRoaXMuZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlJiZ0aGlzLm1pc3NlZEF1dG9SZWxvYWQmJih0aGlzLm1pc3NlZEF1dG9SZWxvYWQ9ITEsdGhpcy5zdG9yZS5kaXNwYXRjaChtYSgpKSl9bG9hZChlKXt0aGlzLnJlbG9hZFRpbWVySWQ9c2V0VGltZW91dCgoKT0+eyJ2aXNpYmxlIj09PXRoaXMuZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlP3RoaXMuc3RvcmUuZGlzcGF0Y2gobWEoKSk6dGhpcy5taXNzZWRBdXRvUmVsb2FkPSEwLHRoaXMubG9hZChlKX0sZSl9Y2FuY2VsTG9hZCgpe251bGwhPT10aGlzLnJlbG9hZFRpbWVySWQmJmNsZWFyVGltZW91dCh0aGlzLnJlbG9hZFRpbWVySWQpLHRoaXMucmVsb2FkVGltZXJJZD1udWxsfW5nT25EZXN0cm95KCl7dGhpcy5jYW5jZWxMb2FkKCksdGhpcy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLm9uVmlzaWJpbGl0eUNoYW5nZSksdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKSx0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKX19cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bikoQyhJZSksQyhOdCkpfSxuLlx1MDI3NWNtcD1QKHt0eXBlOm4sc2VsZWN0b3JzOltbInJlbG9hZGVyIl1dLGRlY2xzOjAsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGUsaSl7fSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxufSkoKSxOaWU9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1Y21wPVAoe3R5cGU6bixzZWxlY3RvcnM6W1sidGVuc29yYm9hcmQtd3JhcHBlci1jb21wb25lbnQiXV0sZGVjbHM6Mix2YXJzOjAsY29uc3RzOltbMSwicGx1Z2lucyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihlLGkpezEmZSYmaygwLCJwbHVnaW5zIiwwKSgxLCJyZWxvYWRlciIpfSxkZXBlbmRlbmNpZXM6W0FBLEZpZV0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLnBsdWdpbnNbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgZmxleDogMSAxO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksbn0pKCksTGllPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NXByb3Y9dWUoe3Rva2VuOm4sZmFjdG9yeTpuLlx1MDI3NWZhY30pLG59KSgpLHpWPSJzbW9vdGhpbmciLFVWPSJydW5Db2xvckdyb3VwIixqVj0idGFnRmlsdGVyIixHVj0icnVuRmlsdGVyIixXVj0icmVnZXg6IixxVj0icmVnZXhfYnlfZXhwOiIsUEE9Y2xhc3MgZXh0ZW5kcyBMaWV7Z2V0TWV0cmljc1Bpbm5lZENhcmRzKHQpe3JldHVybiBJbihbdC5zZWxlY3QoS2YpLHQuc2VsZWN0KFBXKV0pLnBpcGUocSgoW2UsaV0pPT57aWYoIWUubGVuZ3RoJiYhaS5sZW5ndGgpcmV0dXJuW107bGV0IG89Wy4uLmUubWFwKCh7cGx1Z2luOmEsdGFnOnMsc2FtcGxlOmwscnVuSWQ6Y30pPT57bGV0IGQ9e3BsdWdpbjphLHRhZzpzfTtyZXR1cm4gZ3MoYSkmJihkLnJ1bklkPWMpLGZzKGEpJiYoZC5zYW1wbGU9bCksZH0pLC4uLmldO3JldHVyblt7a2V5OiJwaW5uZWRDYXJkcyIsdmFsdWU6SlNPTi5zdHJpbmdpZnkobyl9XX0pKX1zZXJpYWxpemVTdGF0ZVRvUXVlcnlQYXJhbXModCl7cmV0dXJuIEluKFt0aGlzLmdldE1ldHJpY3NQaW5uZWRDYXJkcyh0KSx0LnNlbGVjdChGbCkucGlwZShxKGU9PmU/W3trZXk6alYsdmFsdWU6ZX1dOltdKSksSW4oW3Quc2VsZWN0KHN2KSx0LnNlbGVjdChmaCldKS5waXBlKHEoKFtlLGldKT0+ZnVuY3Rpb24obix0KXtyZXR1cm4gT2JqZWN0LmVudHJpZXMobikubWFwKChbZSxpXSk9PntpZih2b2lkIDA9PT1pKXJldHVybnt9O2xldCByPXRbZV07cmV0dXJuIHImJnIucXVlcnlQYXJhbU92ZXJyaWRlP3trZXk6ci5xdWVyeVBhcmFtT3ZlcnJpZGUsdmFsdWU6aT8udG9TdHJpbmcoKX06e319KS5maWx0ZXIoKHtrZXk6ZSx2YWx1ZTppfSk9PmUmJnZvaWQgMCE9PWkpfShlLGkpKSksdC5zZWxlY3QoRlcpLnBpcGUocShlPT5OdW1iZXIuaXNGaW5pdGUoZS5zY2FsYXJTbW9vdGhpbmcpP1t7a2V5OnpWLHZhbHVlOlN0cmluZyhlLnNjYWxhclNtb290aGluZyl9XTpbXSkpLHQuc2VsZWN0KHQyKS5waXBlKHEoZT0+e2lmKCFlKXJldHVybltdO2xldCBpO3N3aXRjaChlLmtleSl7Y2FzZSBZbi5FWFBFUklNRU5UOmk9ImV4cGVyaW1lbnQiO2JyZWFrO2Nhc2UgWW4uUlVOOmk9InJ1biI7YnJlYWs7Y2FzZSBZbi5SRUdFWDppPWAke1dWfSR7ZS5yZWdleFN0cmluZ31gO2JyZWFrO2Nhc2UgWW4uUkVHRVhfQllfRVhQOmk9YCR7cVZ9JHtlLnJlZ2V4U3RyaW5nfWA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgUmFuZ2VFcnJvcigiU2VyaWFsaXphdGlvbiBub3QgaW1wbGVtZW50ZWQiKX1yZXR1cm5be2tleTpVVix2YWx1ZTppfV19KSksdC5zZWxlY3QoQXUpLnBpcGUocShlPT5lP1t7a2V5OkdWLHZhbHVlOmV9XTpbXSkpXSkucGlwZShWaSh0LnNlbGVjdChCNikpLHEoKFtlLGldKT0+e2xldCByPW5ldyBTZXQoZS5mbGF0KCkubWFwKGE9PmEua2V5KSksbz1PYmplY3QuZW50cmllcyhpKS5maWx0ZXIoKFthXSk9PiFyLmhhcyhhKSkubWFwKChbYSxzXSk9Pih7a2V5OmEsdmFsdWU6c30pKTtyZXR1cm5bLi4uZSwuLi5vXS5mbGF0KCl9KSl9ZGVzZXJpYWxpemVRdWVyeVBhcmFtcyh0KXtsZXQgZT1udWxsLGk9bnVsbCxyPW51bGwsbz1udWxsLGE9bnVsbCxzPXt9O2ZvcihsZXR7a2V5OmwsdmFsdWU6Y31vZiB0KXN3aXRjaChsKXtjYXNlInBpbm5lZENhcmRzIjplPXg1ZShjKTticmVhaztjYXNlIHpWOmk9TnVtYmVyKGMpO2JyZWFrO2Nhc2UgVVY6c3dpdGNoKGMpe2Nhc2UiZXhwZXJpbWVudCI6bz17a2V5OlluLkVYUEVSSU1FTlR9O2JyZWFrO2Nhc2UicnVuIjpvPXtrZXk6WW4uUlVOfX1pZihjLnN0YXJ0c1dpdGgoV1YpKXtsZXQgZD1jLnNsaWNlKFdWLmxlbmd0aCk7bz17a2V5OlluLlJFR0VYLHJlZ2V4U3RyaW5nOmR9fWlmKGMuc3RhcnRzV2l0aChxVikpe2xldCBkPWMuc2xpY2UocVYubGVuZ3RoKTtvPXtrZXk6WW4uUkVHRVhfQllfRVhQLHJlZ2V4U3RyaW5nOmR9fWJyZWFrO2Nhc2UgalY6cj1jO2JyZWFrO2Nhc2UgR1Y6YT1jO2JyZWFrO2RlZmF1bHQ6c1tsXT1jfXJldHVybnt1bmtub3duUXVlcnlQYXJhbXM6cyxtZXRyaWNzOntwaW5uZWRDYXJkczplfHxbXSxzbW9vdGhpbmc6aSx0YWdGaWx0ZXI6cn0scnVuczp7Z3JvdXBCeTpvLHJlZ2V4RmlsdGVyOmF9fX19O2Z1bmN0aW9uIHg1ZShuKXtsZXQgdDt0cnl7dD1KU09OLnBhcnNlKG4pfWNhdGNoe3JldHVybiBudWxsfWlmKCFBcnJheS5pc0FycmF5KHQpKXJldHVybiBudWxsO2xldCBlPVtdO2ZvcihsZXQgaSBvZiB0KXtsZXQgbz0ic3RyaW5nIj09dHlwZW9mIGkucnVuSWQsYT0ibnVtYmVyIj09dHlwZW9mIGkuc2FtcGxlO2lmKCEoInN0cmluZyI9PXR5cGVvZiBpLnBsdWdpbiYmInN0cmluZyI9PXR5cGVvZiBpLnRhZyYmKG98fHR5cGVvZiBpLnJ1bklkPiJ1IikmJihhfHx0eXBlb2YgaS5zYW1wbGU+InUiKSYmYVcoaS5wbHVnaW4pJiZpLnRhZykpY29udGludWU7aWYoZ3MoaS5wbHVnaW4pKXtpZighaS5ydW5JZCljb250aW51ZX1lbHNlIGlmKGkucnVuSWQpY29udGludWU7aWYoYSYmKCFmcyhpLnBsdWdpbil8fCFOdW1iZXIuaXNJbnRlZ2VyKGkuc2FtcGxlKXx8aS5zYW1wbGU8MCkpY29udGludWU7bGV0IGQ9e3BsdWdpbjppLnBsdWdpbix0YWc6aS50YWd9O28mJihkLnJ1bklkPWkucnVuSWQpLGEmJihkLnNhbXBsZT1pLnNhbXBsZSksZS5wdXNoKGQpfXJldHVybiBlfWZ1bmN0aW9uIFZpZSgpe3JldHVyblt7cm91dGVLaW5kOkNuLkVYUEVSSU1FTlQscGF0aDoiLyIsbmdDb21wb25lbnQ6TmllLGRlZmF1bHRSb3V0ZTohMCxkZWVwTGlua1Byb3ZpZGVyOm5ldyBQQX1dfWZ1bmN0aW9uIEhpZSgpe3JldHVybiBuPT4odCxlKT0+bih0LGUpfVBBPVY0KFtPeigpXSxQQSk7dmFyIHppZT1uZXcgdGUoIlJvb3QgcmVkdWNlcnMgdG9rZW4iLHtmYWN0b3J5OigpPT4oe30pfSksVWllPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHtwcm92aWRlcnM6W3twcm92aWRlOkRmLHVzZUZhY3Rvcnk6SGllLG11bHRpOiEwfV0saW1wb3J0czpbd3IuZm9yUm9vdCh6aWUse3J1bnRpbWVDaGVja3M6e3N0cmljdFN0YXRlSW1tdXRhYmlsaXR5OiEwLHN0cmljdEFjdGlvbkltbXV0YWJpbGl0eTohMCxzdHJpY3RBY3Rpb25TZXJpYWxpemFiaWxpdHk6ITEsc3RyaWN0U3RhdGVTZXJpYWxpemFiaWxpdHk6ITF9fSksdG8uZm9yUm9vdChbXSldfSksbn0pKCksamllPSgoKT0+e2NsYXNzIG57fXJldHVybiBuLlx1MDI3NWZhYz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3KGV8fG4pfSxuLlx1MDI3NW1vZD16KHt0eXBlOm59KSxuLlx1MDI3NWluaj1IKHt9KSxufSkoKSxHaWU9KCgpPT57Y2xhc3Mgbnt9cmV0dXJuIG4uXHUwMjc1ZmFjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcoZXx8bil9LG4uXHUwMjc1bW9kPXooe3R5cGU6bn0pLG4uXHUwMjc1aW5qPUgoe2ltcG9ydHM6W0RlLFJBLGppZV19KSxufSkoKSxYVj0oKCk9PntjbGFzcyBue31yZXR1cm4gbi5cdTAyNzVmYWM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyhlfHxuKX0sbi5cdTAyNzVtb2Q9eih7dHlwZTpuLGJvb3RzdHJhcDpbVFhdfSksbi5cdTAyNzVpbmo9SCh7aW1wb3J0czpbTXUsTFgsd3csWkcsTmYsRFgsUmwucmVnaXN0ZXJSb3V0ZXMoVmllKSxRMSxZMSxJWCxHaWUsUXMsRlgsUlgsVlgsUlMsSFgsUFgsaXYsUjEsUkEsRTEseEUsVWllLGtpZV19KSxufSkoKTsibG9hZGluZyIhPT1kb2N1bWVudC5yZWFkeVN0YXRlP2xPKCkuYm9vdHN0cmFwTW9kdWxlKFhWKTp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsKCk9PntsTygpLmJvb3RzdHJhcE1vZHVsZShYVil9KX0pKCk7Ci8qKiB2aW06IGV0OnRzPTQ6c3c9NDpzdHM9NAogKiBAbGljZW5zZSBSZXF1aXJlSlMgMi4zLjYgQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMuCiAqIFJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLCBodHRwczovL2dpdGh1Yi5jb20vcmVxdWlyZWpzL3JlcXVpcmVqcy9ibG9iL21hc3Rlci9MSUNFTlNFCiAqLwovL05vdCB1c2luZyBzdHJpY3Q6IHVuZXZlbiBzdHJpY3Qgc3VwcG9ydCBpbiBicm93c2VycywgIzM5MiwgYW5kIGNhdXNlcwovL3Byb2JsZW1zIHdpdGggcmVxdWlyZWpzLmV4ZWMoKS90cmFuc3BpbGVyIHBsdWdpbnMgdGhhdCBtYXkgbm90IGJlIHN0cmljdC4KLypqc2xpbnQgcmVnZXhwOiB0cnVlLCBub21lbjogdHJ1ZSwgc2xvcHB5OiB0cnVlICovCi8qZ2xvYmFsIHdpbmRvdywgbmF2aWdhdG9yLCBkb2N1bWVudCwgaW1wb3J0U2NyaXB0cywgc2V0VGltZW91dCwgb3BlcmEgKi8KCnZhciByZXF1aXJlanMsIHJlcXVpcmUsIGRlZmluZTsKKGZ1bmN0aW9uIChnbG9iYWwsIHNldFRpbWVvdXQpIHsKICAgIHZhciByZXEsIHMsIGhlYWQsIGJhc2VFbGVtZW50LCBkYXRhTWFpbiwgc3JjLAogICAgICAgIGludGVyYWN0aXZlU2NyaXB0LCBjdXJyZW50bHlBZGRpbmdTY3JpcHQsIG1haW5TY3JpcHQsIHN1YlBhdGgsCiAgICAgICAgdmVyc2lvbiA9ICcyLjMuNicsCiAgICAgICAgY29tbWVudFJlZ0V4cCA9IC9cL1wqW1xzXFNdKj9cKlwvfChbXjoiJz1dfF4pXC9cLy4qJC9tZywKICAgICAgICBjanNSZXF1aXJlUmVnRXhwID0gL1teLl1ccypyZXF1aXJlXHMqXChccypbIiddKFteJyJcc10rKVsiJ11ccypcKS9nLAogICAgICAgIGpzU3VmZml4UmVnRXhwID0gL1wuanMkLywKICAgICAgICBjdXJyRGlyUmVnRXhwID0gL15cLlwvLywKICAgICAgICBvcCA9IE9iamVjdC5wcm90b3R5cGUsCiAgICAgICAgb3N0cmluZyA9IG9wLnRvU3RyaW5nLAogICAgICAgIGhhc093biA9IG9wLmhhc093blByb3BlcnR5LAogICAgICAgIGlzQnJvd3NlciA9ICEhKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5kb2N1bWVudCksCiAgICAgICAgaXNXZWJXb3JrZXIgPSAhaXNCcm93c2VyICYmIHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAndW5kZWZpbmVkJywKICAgICAgICAvL1BTMyBpbmRpY2F0ZXMgbG9hZGVkIGFuZCBjb21wbGV0ZSwgYnV0IG5lZWQgdG8gd2FpdCBmb3IgY29tcGxldGUKICAgICAgICAvL3NwZWNpZmljYWxseS4gU2VxdWVuY2UgaXMgJ2xvYWRpbmcnLCAnbG9hZGVkJywgZXhlY3V0aW9uLAogICAgICAgIC8vIHRoZW4gJ2NvbXBsZXRlJy4gVGhlIFVBIGNoZWNrIGlzIHVuZm9ydHVuYXRlLCBidXQgbm90IHN1cmUgaG93CiAgICAgICAgLy90byBmZWF0dXJlIHRlc3Qgdy9vIGNhdXNpbmcgcGVyZiBpc3N1ZXMuCiAgICAgICAgcmVhZHlSZWdFeHAgPSBpc0Jyb3dzZXIgJiYgbmF2aWdhdG9yLnBsYXRmb3JtID09PSAnUExBWVNUQVRJT04gMycgPwogICAgICAgICAgICAgICAgICAgICAgL15jb21wbGV0ZSQvIDogL14oY29tcGxldGV8bG9hZGVkKSQvLAogICAgICAgIGRlZkNvbnRleHROYW1lID0gJ18nLAogICAgICAgIC8vT2ggdGhlIHRyYWdlZHksIGRldGVjdGluZyBvcGVyYS4gU2VlIHRoZSB1c2FnZSBvZiBpc09wZXJhIGZvciByZWFzb24uCiAgICAgICAgaXNPcGVyYSA9IHR5cGVvZiBvcGVyYSAhPT0gJ3VuZGVmaW5lZCcgJiYgb3BlcmEudG9TdHJpbmcoKSA9PT0gJ1tvYmplY3QgT3BlcmFdJywKICAgICAgICBjb250ZXh0cyA9IHt9LAogICAgICAgIGNmZyA9IHt9LAogICAgICAgIGdsb2JhbERlZlF1ZXVlID0gW10sCiAgICAgICAgdXNlSW50ZXJhY3RpdmUgPSBmYWxzZTsKCiAgICAvL0NvdWxkIG1hdGNoIHNvbWV0aGluZyBsaWtlICcpLy9jb21tZW50JywgZG8gbm90IGxvc2UgdGhlIHByZWZpeCB0byBjb21tZW50LgogICAgZnVuY3Rpb24gY29tbWVudFJlcGxhY2UobWF0Y2gsIHNpbmdsZVByZWZpeCkgewogICAgICAgIHJldHVybiBzaW5nbGVQcmVmaXggfHwgJyc7CiAgICB9CgogICAgZnVuY3Rpb24gaXNGdW5jdGlvbihpdCkgewogICAgICAgIHJldHVybiBvc3RyaW5nLmNhbGwoaXQpID09PSAnW29iamVjdCBGdW5jdGlvbl0nOwogICAgfQoKICAgIGZ1bmN0aW9uIGlzQXJyYXkoaXQpIHsKICAgICAgICByZXR1cm4gb3N0cmluZy5jYWxsKGl0KSA9PT0gJ1tvYmplY3QgQXJyYXldJzsKICAgIH0KCiAgICAvKioKICAgICAqIEhlbHBlciBmdW5jdGlvbiBmb3IgaXRlcmF0aW5nIG92ZXIgYW4gYXJyYXkuIElmIHRoZSBmdW5jIHJldHVybnMKICAgICAqIGEgdHJ1ZSB2YWx1ZSwgaXQgd2lsbCBicmVhayBvdXQgb2YgdGhlIGxvb3AuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGVhY2goYXJ5LCBmdW5jKSB7CiAgICAgICAgaWYgKGFyeSkgewogICAgICAgICAgICB2YXIgaTsKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGFyeS5sZW5ndGg7IGkgKz0gMSkgewogICAgICAgICAgICAgICAgaWYgKGFyeVtpXSAmJiBmdW5jKGFyeVtpXSwgaSwgYXJ5KSkgewogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogSGVscGVyIGZ1bmN0aW9uIGZvciBpdGVyYXRpbmcgb3ZlciBhbiBhcnJheSBiYWNrd2FyZHMuIElmIHRoZSBmdW5jCiAgICAgKiByZXR1cm5zIGEgdHJ1ZSB2YWx1ZSwgaXQgd2lsbCBicmVhayBvdXQgb2YgdGhlIGxvb3AuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGVhY2hSZXZlcnNlKGFyeSwgZnVuYykgewogICAgICAgIGlmIChhcnkpIHsKICAgICAgICAgICAgdmFyIGk7CiAgICAgICAgICAgIGZvciAoaSA9IGFyeS5sZW5ndGggLSAxOyBpID4gLTE7IGkgLT0gMSkgewogICAgICAgICAgICAgICAgaWYgKGFyeVtpXSAmJiBmdW5jKGFyeVtpXSwgaSwgYXJ5KSkgewogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGhhc1Byb3Aob2JqLCBwcm9wKSB7CiAgICAgICAgcmV0dXJuIGhhc093bi5jYWxsKG9iaiwgcHJvcCk7CiAgICB9CgogICAgZnVuY3Rpb24gZ2V0T3duKG9iaiwgcHJvcCkgewogICAgICAgIHJldHVybiBoYXNQcm9wKG9iaiwgcHJvcCkgJiYgb2JqW3Byb3BdOwogICAgfQoKICAgIC8qKgogICAgICogQ3ljbGVzIG92ZXIgcHJvcGVydGllcyBpbiBhbiBvYmplY3QgYW5kIGNhbGxzIGEgZnVuY3Rpb24gZm9yIGVhY2gKICAgICAqIHByb3BlcnR5IHZhbHVlLiBJZiB0aGUgZnVuY3Rpb24gcmV0dXJucyBhIHRydXRoeSB2YWx1ZSwgdGhlbiB0aGUKICAgICAqIGl0ZXJhdGlvbiBpcyBzdG9wcGVkLgogICAgICovCiAgICBmdW5jdGlvbiBlYWNoUHJvcChvYmosIGZ1bmMpIHsKICAgICAgICB2YXIgcHJvcDsKICAgICAgICBmb3IgKHByb3AgaW4gb2JqKSB7CiAgICAgICAgICAgIGlmIChoYXNQcm9wKG9iaiwgcHJvcCkpIHsKICAgICAgICAgICAgICAgIGlmIChmdW5jKG9ialtwcm9wXSwgcHJvcCkpIHsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIFNpbXBsZSBmdW5jdGlvbiB0byBtaXggaW4gcHJvcGVydGllcyBmcm9tIHNvdXJjZSBpbnRvIHRhcmdldCwKICAgICAqIGJ1dCBvbmx5IGlmIHRhcmdldCBkb2VzIG5vdCBhbHJlYWR5IGhhdmUgYSBwcm9wZXJ0eSBvZiB0aGUgc2FtZSBuYW1lLgogICAgICovCiAgICBmdW5jdGlvbiBtaXhpbih0YXJnZXQsIHNvdXJjZSwgZm9yY2UsIGRlZXBTdHJpbmdNaXhpbikgewogICAgICAgIGlmIChzb3VyY2UpIHsKICAgICAgICAgICAgZWFjaFByb3Aoc291cmNlLCBmdW5jdGlvbiAodmFsdWUsIHByb3ApIHsKICAgICAgICAgICAgICAgIGlmIChmb3JjZSB8fCAhaGFzUHJvcCh0YXJnZXQsIHByb3ApKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRlZXBTdHJpbmdNaXhpbiAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICFpc0FycmF5KHZhbHVlKSAmJiAhaXNGdW5jdGlvbih2YWx1ZSkgJiYKICAgICAgICAgICAgICAgICAgICAgICAgISh2YWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cCkpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0W3Byb3BdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRbcHJvcF0gPSB7fTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBtaXhpbih0YXJnZXRbcHJvcF0sIHZhbHVlLCBmb3JjZSwgZGVlcFN0cmluZ01peGluKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRbcHJvcF0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGFyZ2V0OwogICAgfQoKICAgIC8vU2ltaWxhciB0byBGdW5jdGlvbi5wcm90b3R5cGUuYmluZCwgYnV0IHRoZSAndGhpcycgb2JqZWN0IGlzIHNwZWNpZmllZAogICAgLy9maXJzdCwgc2luY2UgaXQgaXMgZWFzaWVyIHRvIHJlYWQvZmlndXJlIG91dCB3aGF0ICd0aGlzJyB3aWxsIGJlLgogICAgZnVuY3Rpb24gYmluZChvYmosIGZuKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KG9iaiwgYXJndW1lbnRzKTsKICAgICAgICB9OwogICAgfQoKICAgIGZ1bmN0aW9uIHNjcmlwdHMoKSB7CiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKTsKICAgIH0KCiAgICBmdW5jdGlvbiBkZWZhdWx0T25FcnJvcihlcnIpIHsKICAgICAgICB0aHJvdyBlcnI7CiAgICB9CgogICAgLy9BbGxvdyBnZXR0aW5nIGEgZ2xvYmFsIHRoYXQgaXMgZXhwcmVzc2VkIGluCiAgICAvL2RvdCBub3RhdGlvbiwgbGlrZSAnYS5iLmMnLgogICAgZnVuY3Rpb24gZ2V0R2xvYmFsKHZhbHVlKSB7CiAgICAgICAgaWYgKCF2YWx1ZSkgewogICAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgICAgfQogICAgICAgIHZhciBnID0gZ2xvYmFsOwogICAgICAgIGVhY2godmFsdWUuc3BsaXQoJy4nKSwgZnVuY3Rpb24gKHBhcnQpIHsKICAgICAgICAgICAgZyA9IGdbcGFydF07CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGc7CiAgICB9CgogICAgLyoqCiAgICAgKiBDb25zdHJ1Y3RzIGFuIGVycm9yIHdpdGggYSBwb2ludGVyIHRvIGFuIFVSTCB3aXRoIG1vcmUgaW5mb3JtYXRpb24uCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGVycm9yIElEIHRoYXQgbWFwcyB0byBhbiBJRCBvbiBhIHdlYiBwYWdlLgogICAgICogQHBhcmFtIHtTdHJpbmd9IG1lc3NhZ2UgaHVtYW4gcmVhZGFibGUgZXJyb3IuCiAgICAgKiBAcGFyYW0ge0Vycm9yfSBbZXJyXSB0aGUgb3JpZ2luYWwgZXJyb3IsIGlmIHRoZXJlIGlzIG9uZS4KICAgICAqCiAgICAgKiBAcmV0dXJucyB7RXJyb3J9CiAgICAgKi8KICAgIGZ1bmN0aW9uIG1ha2VFcnJvcihpZCwgbXNnLCBlcnIsIHJlcXVpcmVNb2R1bGVzKSB7CiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobXNnICsgJ1xuaHR0cHM6Ly9yZXF1aXJlanMub3JnL2RvY3MvZXJyb3JzLmh0bWwjJyArIGlkKTsKICAgICAgICBlLnJlcXVpcmVUeXBlID0gaWQ7CiAgICAgICAgZS5yZXF1aXJlTW9kdWxlcyA9IHJlcXVpcmVNb2R1bGVzOwogICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgZS5vcmlnaW5hbEVycm9yID0gZXJyOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZTsKICAgIH0KCiAgICBpZiAodHlwZW9mIGRlZmluZSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAvL0lmIGEgZGVmaW5lIGlzIGFscmVhZHkgaW4gcGxheSB2aWEgYW5vdGhlciBBTUQgbG9hZGVyLAogICAgICAgIC8vZG8gbm90IG92ZXJ3cml0ZS4KICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKHR5cGVvZiByZXF1aXJlanMgIT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgaWYgKGlzRnVuY3Rpb24ocmVxdWlyZWpzKSkgewogICAgICAgICAgICAvL0RvIG5vdCBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgcmVxdWlyZWpzIGluc3RhbmNlLgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNmZyA9IHJlcXVpcmVqczsKICAgICAgICByZXF1aXJlanMgPSB1bmRlZmluZWQ7CiAgICB9CgogICAgLy9BbGxvdyBmb3IgYSByZXF1aXJlIGNvbmZpZyBvYmplY3QKICAgIGlmICh0eXBlb2YgcmVxdWlyZSAhPT0gJ3VuZGVmaW5lZCcgJiYgIWlzRnVuY3Rpb24ocmVxdWlyZSkpIHsKICAgICAgICAvL2Fzc3VtZSBpdCBpcyBhIGNvbmZpZyBvYmplY3QuCiAgICAgICAgY2ZnID0gcmVxdWlyZTsKICAgICAgICByZXF1aXJlID0gdW5kZWZpbmVkOwogICAgfQoKICAgIGZ1bmN0aW9uIG5ld0NvbnRleHQoY29udGV4dE5hbWUpIHsKICAgICAgICB2YXIgaW5DaGVja0xvYWRlZCwgTW9kdWxlLCBjb250ZXh0LCBoYW5kbGVycywKICAgICAgICAgICAgY2hlY2tMb2FkZWRUaW1lb3V0SWQsCiAgICAgICAgICAgIGNvbmZpZyA9IHsKICAgICAgICAgICAgICAgIC8vRGVmYXVsdHMuIERvIG5vdCBzZXQgYSBkZWZhdWx0IGZvciBtYXAKICAgICAgICAgICAgICAgIC8vY29uZmlnIHRvIHNwZWVkIHVwIG5vcm1hbGl6ZSgpLCB3aGljaAogICAgICAgICAgICAgICAgLy93aWxsIHJ1biBmYXN0ZXIgaWYgdGhlcmUgaXMgbm8gZGVmYXVsdC4KICAgICAgICAgICAgICAgIHdhaXRTZWNvbmRzOiA3LAogICAgICAgICAgICAgICAgYmFzZVVybDogJy4vJywKICAgICAgICAgICAgICAgIHBhdGhzOiB7fSwKICAgICAgICAgICAgICAgIGJ1bmRsZXM6IHt9LAogICAgICAgICAgICAgICAgcGtnczoge30sCiAgICAgICAgICAgICAgICBzaGltOiB7fSwKICAgICAgICAgICAgICAgIGNvbmZpZzoge30KICAgICAgICAgICAgfSwKICAgICAgICAgICAgcmVnaXN0cnkgPSB7fSwKICAgICAgICAgICAgLy9yZWdpc3RyeSBvZiBqdXN0IGVuYWJsZWQgbW9kdWxlcywgdG8gc3BlZWQKICAgICAgICAgICAgLy9jeWNsZSBicmVha2luZyBjb2RlIHdoZW4gbG90cyBvZiBtb2R1bGVzCiAgICAgICAgICAgIC8vYXJlIHJlZ2lzdGVyZWQsIGJ1dCBub3QgYWN0aXZhdGVkLgogICAgICAgICAgICBlbmFibGVkUmVnaXN0cnkgPSB7fSwKICAgICAgICAgICAgdW5kZWZFdmVudHMgPSB7fSwKICAgICAgICAgICAgZGVmUXVldWUgPSBbXSwKICAgICAgICAgICAgZGVmaW5lZCA9IHt9LAogICAgICAgICAgICB1cmxGZXRjaGVkID0ge30sCiAgICAgICAgICAgIGJ1bmRsZXNNYXAgPSB7fSwKICAgICAgICAgICAgcmVxdWlyZUNvdW50ZXIgPSAxLAogICAgICAgICAgICB1bm5vcm1hbGl6ZWRDb3VudGVyID0gMTsKCiAgICAgICAgLyoqCiAgICAgICAgICogVHJpbXMgdGhlIC4gYW5kIC4uIGZyb20gYW4gYXJyYXkgb2YgcGF0aCBzZWdtZW50cy4KICAgICAgICAgKiBJdCB3aWxsIGtlZXAgYSBsZWFkaW5nIHBhdGggc2VnbWVudCBpZiBhIC4uIHdpbGwgYmVjb21lCiAgICAgICAgICogdGhlIGZpcnN0IHBhdGggc2VnbWVudCwgdG8gaGVscCB3aXRoIG1vZHVsZSBuYW1lIGxvb2t1cHMsCiAgICAgICAgICogd2hpY2ggYWN0IGxpa2UgcGF0aHMsIGJ1dCBjYW4gYmUgcmVtYXBwZWQuIEJ1dCB0aGUgZW5kIHJlc3VsdCwKICAgICAgICAgKiBhbGwgcGF0aHMgdGhhdCB1c2UgdGhpcyBmdW5jdGlvbiBzaG91bGQgbG9vayBub3JtYWxpemVkLgogICAgICAgICAqIE5PVEU6IHRoaXMgbWV0aG9kIE1PRElGSUVTIHRoZSBpbnB1dCBhcnJheS4KICAgICAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnkgdGhlIGFycmF5IG9mIHBhdGggc2VnbWVudHMuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gdHJpbURvdHMoYXJ5KSB7CiAgICAgICAgICAgIHZhciBpLCBwYXJ0OwogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJ5Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBwYXJ0ID0gYXJ5W2ldOwogICAgICAgICAgICAgICAgaWYgKHBhcnQgPT09ICcuJykgewogICAgICAgICAgICAgICAgICAgIGFyeS5zcGxpY2UoaSwgMSk7CiAgICAgICAgICAgICAgICAgICAgaSAtPSAxOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJ0ID09PSAnLi4nKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gSWYgYXQgdGhlIHN0YXJ0LCBvciBwcmV2aW91cyB2YWx1ZSBpcyBzdGlsbCAuLiwKICAgICAgICAgICAgICAgICAgICAvLyBrZWVwIHRoZW0gc28gdGhhdCB3aGVuIGNvbnZlcnRlZCB0byBhIHBhdGggaXQgbWF5CiAgICAgICAgICAgICAgICAgICAgLy8gc3RpbGwgd29yayB3aGVuIGNvbnZlcnRlZCB0byBhIHBhdGgsIGV2ZW4gdGhvdWdoCiAgICAgICAgICAgICAgICAgICAgLy8gYXMgYW4gSUQgaXQgaXMgbGVzcyB0aGFuIGlkZWFsLiBJbiBsYXJnZXIgcG9pbnQKICAgICAgICAgICAgICAgICAgICAvLyByZWxlYXNlcywgbWF5IGJlIGJldHRlciB0byBqdXN0IGtpY2sgb3V0IGFuIGVycm9yLgogICAgICAgICAgICAgICAgICAgIGlmIChpID09PSAwIHx8IChpID09PSAxICYmIGFyeVsyXSA9PT0gJy4uJykgfHwgYXJ5W2kgLSAxXSA9PT0gJy4uJykgewogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGkgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFyeS5zcGxpY2UoaSAtIDEsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICBpIC09IDI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAgKiBHaXZlbiBhIHJlbGF0aXZlIG1vZHVsZSBuYW1lLCBsaWtlIC4vc29tZXRoaW5nLCBub3JtYWxpemUgaXQgdG8KICAgICAgICAgKiBhIHJlYWwgbmFtZSB0aGF0IGNhbiBiZSBtYXBwZWQgdG8gYSBwYXRoLgogICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIHRoZSByZWxhdGl2ZSBuYW1lCiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IGJhc2VOYW1lIGEgcmVhbCBuYW1lIHRoYXQgdGhlIG5hbWUgYXJnIGlzIHJlbGF0aXZlCiAgICAgICAgICogdG8uCiAgICAgICAgICogQHBhcmFtIHtCb29sZWFufSBhcHBseU1hcCBhcHBseSB0aGUgbWFwIGNvbmZpZyB0byB0aGUgdmFsdWUuIFNob3VsZAogICAgICAgICAqIG9ubHkgYmUgZG9uZSBpZiB0aGlzIG5vcm1hbGl6YXRpb24gaXMgZm9yIGEgZGVwZW5kZW5jeSBJRC4KICAgICAgICAgKiBAcmV0dXJucyB7U3RyaW5nfSBub3JtYWxpemVkIG5hbWUKICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBub3JtYWxpemUobmFtZSwgYmFzZU5hbWUsIGFwcGx5TWFwKSB7CiAgICAgICAgICAgIHZhciBwa2dNYWluLCBtYXBWYWx1ZSwgbmFtZVBhcnRzLCBpLCBqLCBuYW1lU2VnbWVudCwgbGFzdEluZGV4LAogICAgICAgICAgICAgICAgZm91bmRNYXAsIGZvdW5kSSwgZm91bmRTdGFyTWFwLCBzdGFySSwgbm9ybWFsaXplZEJhc2VQYXJ0cywKICAgICAgICAgICAgICAgIGJhc2VQYXJ0cyA9IChiYXNlTmFtZSAmJiBiYXNlTmFtZS5zcGxpdCgnLycpKSwKICAgICAgICAgICAgICAgIG1hcCA9IGNvbmZpZy5tYXAsCiAgICAgICAgICAgICAgICBzdGFyTWFwID0gbWFwICYmIG1hcFsnKiddOwoKICAgICAgICAgICAgLy9BZGp1c3QgYW55IHJlbGF0aXZlIHBhdGhzLgogICAgICAgICAgICBpZiAobmFtZSkgewogICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUuc3BsaXQoJy8nKTsKICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IG5hbWUubGVuZ3RoIC0gMTsKCiAgICAgICAgICAgICAgICAvLyBJZiB3YW50aW5nIG5vZGUgSUQgY29tcGF0aWJpbGl0eSwgc3RyaXAgLmpzIGZyb20gZW5kCiAgICAgICAgICAgICAgICAvLyBvZiBJRHMuIEhhdmUgdG8gZG8gdGhpcyBoZXJlLCBhbmQgbm90IGluIG5hbWVUb1VybAogICAgICAgICAgICAgICAgLy8gYmVjYXVzZSBub2RlIGFsbG93cyBlaXRoZXIgLmpzIG9yIG5vbiAuanMgdG8gbWFwCiAgICAgICAgICAgICAgICAvLyB0byBzYW1lIGZpbGUuCiAgICAgICAgICAgICAgICBpZiAoY29uZmlnLm5vZGVJZENvbXBhdCAmJiBqc1N1ZmZpeFJlZ0V4cC50ZXN0KG5hbWVbbGFzdEluZGV4XSkpIHsKICAgICAgICAgICAgICAgICAgICBuYW1lW2xhc3RJbmRleF0gPSBuYW1lW2xhc3RJbmRleF0ucmVwbGFjZShqc1N1ZmZpeFJlZ0V4cCwgJycpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIFN0YXJ0cyB3aXRoIGEgJy4nIHNvIG5lZWQgdGhlIGJhc2VOYW1lCiAgICAgICAgICAgICAgICBpZiAobmFtZVswXS5jaGFyQXQoMCkgPT09ICcuJyAmJiBiYXNlUGFydHMpIHsKICAgICAgICAgICAgICAgICAgICAvL0NvbnZlcnQgYmFzZU5hbWUgdG8gYXJyYXksIGFuZCBsb3Agb2ZmIHRoZSBsYXN0IHBhcnQsCiAgICAgICAgICAgICAgICAgICAgLy9zbyB0aGF0IC4gbWF0Y2hlcyB0aGF0ICdkaXJlY3RvcnknIGFuZCBub3QgbmFtZSBvZiB0aGUgYmFzZU5hbWUncwogICAgICAgICAgICAgICAgICAgIC8vbW9kdWxlLiBGb3IgaW5zdGFuY2UsIGJhc2VOYW1lIG9mICdvbmUvdHdvL3RocmVlJywgbWFwcyB0bwogICAgICAgICAgICAgICAgICAgIC8vJ29uZS90d28vdGhyZWUuanMnLCBidXQgd2Ugd2FudCB0aGUgZGlyZWN0b3J5LCAnb25lL3R3bycgZm9yCiAgICAgICAgICAgICAgICAgICAgLy90aGlzIG5vcm1hbGl6YXRpb24uCiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZEJhc2VQYXJ0cyA9IGJhc2VQYXJ0cy5zbGljZSgwLCBiYXNlUGFydHMubGVuZ3RoIC0gMSk7CiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5vcm1hbGl6ZWRCYXNlUGFydHMuY29uY2F0KG5hbWUpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHRyaW1Eb3RzKG5hbWUpOwogICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUuam9pbignLycpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvL0FwcGx5IG1hcCBjb25maWcgaWYgYXZhaWxhYmxlLgogICAgICAgICAgICBpZiAoYXBwbHlNYXAgJiYgbWFwICYmIChiYXNlUGFydHMgfHwgc3Rhck1hcCkpIHsKICAgICAgICAgICAgICAgIG5hbWVQYXJ0cyA9IG5hbWUuc3BsaXQoJy8nKTsKCiAgICAgICAgICAgICAgICBvdXRlckxvb3A6IGZvciAoaSA9IG5hbWVQYXJ0cy5sZW5ndGg7IGkgPiAwOyBpIC09IDEpIHsKICAgICAgICAgICAgICAgICAgICBuYW1lU2VnbWVudCA9IG5hbWVQYXJ0cy5zbGljZSgwLCBpKS5qb2luKCcvJyk7CgogICAgICAgICAgICAgICAgICAgIGlmIChiYXNlUGFydHMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9GaW5kIHRoZSBsb25nZXN0IGJhc2VOYW1lIHNlZ21lbnQgbWF0Y2ggaW4gdGhlIGNvbmZpZy4KICAgICAgICAgICAgICAgICAgICAgICAgLy9TbywgZG8gam9pbnMgb24gdGhlIGJpZ2dlc3QgdG8gc21hbGxlc3QgbGVuZ3RocyBvZiBiYXNlUGFydHMuCiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaiA9IGJhc2VQYXJ0cy5sZW5ndGg7IGogPiAwOyBqIC09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcFZhbHVlID0gZ2V0T3duKG1hcCwgYmFzZVBhcnRzLnNsaWNlKDAsIGopLmpvaW4oJy8nKSk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9iYXNlTmFtZSBzZWdtZW50IGhhcyBjb25maWcsIGZpbmQgaWYgaXQgaGFzIG9uZSBmb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhpcyBuYW1lLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hcFZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwVmFsdWUgPSBnZXRPd24obWFwVmFsdWUsIG5hbWVTZWdtZW50KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFwVmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9NYXRjaCwgdXBkYXRlIG5hbWUgdG8gdGhlIG5ldyB2YWx1ZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRNYXAgPSBtYXBWYWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRJID0gaTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgb3V0ZXJMb29wOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgLy9DaGVjayBmb3IgYSBzdGFyIG1hcCBtYXRjaCwgYnV0IGp1c3QgaG9sZCBvbiB0byBpdCwKICAgICAgICAgICAgICAgICAgICAvL2lmIHRoZXJlIGlzIGEgc2hvcnRlciBzZWdtZW50IG1hdGNoIGxhdGVyIGluIGEgbWF0Y2hpbmcKICAgICAgICAgICAgICAgICAgICAvL2NvbmZpZywgdGhlbiBmYXZvciBvdmVyIHRoaXMgc3RhciBtYXAuCiAgICAgICAgICAgICAgICAgICAgaWYgKCFmb3VuZFN0YXJNYXAgJiYgc3Rhck1hcCAmJiBnZXRPd24oc3Rhck1hcCwgbmFtZVNlZ21lbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kU3Rhck1hcCA9IGdldE93bihzdGFyTWFwLCBuYW1lU2VnbWVudCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJJID0gaTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCFmb3VuZE1hcCAmJiBmb3VuZFN0YXJNYXApIHsKICAgICAgICAgICAgICAgICAgICBmb3VuZE1hcCA9IGZvdW5kU3Rhck1hcDsKICAgICAgICAgICAgICAgICAgICBmb3VuZEkgPSBzdGFySTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoZm91bmRNYXApIHsKICAgICAgICAgICAgICAgICAgICBuYW1lUGFydHMuc3BsaWNlKDAsIGZvdW5kSSwgZm91bmRNYXApOwogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lUGFydHMuam9pbignLycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBJZiB0aGUgbmFtZSBwb2ludHMgdG8gYSBwYWNrYWdlJ3MgbmFtZSwgdXNlCiAgICAgICAgICAgIC8vIHRoZSBwYWNrYWdlIG1haW4gaW5zdGVhZC4KICAgICAgICAgICAgcGtnTWFpbiA9IGdldE93bihjb25maWcucGtncywgbmFtZSk7CgogICAgICAgICAgICByZXR1cm4gcGtnTWFpbiA/IHBrZ01haW4gOiBuYW1lOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gcmVtb3ZlU2NyaXB0KG5hbWUpIHsKICAgICAgICAgICAgaWYgKGlzQnJvd3NlcikgewogICAgICAgICAgICAgICAgZWFjaChzY3JpcHRzKCksIGZ1bmN0aW9uIChzY3JpcHROb2RlKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHNjcmlwdE5vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLXJlcXVpcmVtb2R1bGUnKSA9PT0gbmFtZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0Tm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcmVxdWlyZWNvbnRleHQnKSA9PT0gY29udGV4dC5jb250ZXh0TmFtZSkgewogICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHROb2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc2NyaXB0Tm9kZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBoYXNQYXRoRmFsbGJhY2soaWQpIHsKICAgICAgICAgICAgdmFyIHBhdGhDb25maWcgPSBnZXRPd24oY29uZmlnLnBhdGhzLCBpZCk7CiAgICAgICAgICAgIGlmIChwYXRoQ29uZmlnICYmIGlzQXJyYXkocGF0aENvbmZpZykgJiYgcGF0aENvbmZpZy5sZW5ndGggPiAxKSB7CiAgICAgICAgICAgICAgICAvL1BvcCBvZmYgdGhlIGZpcnN0IGFycmF5IHZhbHVlLCBzaW5jZSBpdCBmYWlsZWQsIGFuZAogICAgICAgICAgICAgICAgLy9yZXRyeQogICAgICAgICAgICAgICAgcGF0aENvbmZpZy5zaGlmdCgpOwogICAgICAgICAgICAgICAgY29udGV4dC5yZXF1aXJlLnVuZGVmKGlkKTsKCiAgICAgICAgICAgICAgICAvL0N1c3RvbSByZXF1aXJlIHRoYXQgZG9lcyBub3QgZG8gbWFwIHRyYW5zbGF0aW9uLCBzaW5jZQogICAgICAgICAgICAgICAgLy9JRCBpcyAiYWJzb2x1dGUiLCBhbHJlYWR5IG1hcHBlZC9yZXNvbHZlZC4KICAgICAgICAgICAgICAgIGNvbnRleHQubWFrZVJlcXVpcmUobnVsbCwgewogICAgICAgICAgICAgICAgICAgIHNraXBNYXA6IHRydWUKICAgICAgICAgICAgICAgIH0pKFtpZF0pOwoKICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvL1R1cm5zIGEgcGx1Z2luIXJlc291cmNlIHRvIFtwbHVnaW4sIHJlc291cmNlXQogICAgICAgIC8vd2l0aCB0aGUgcGx1Z2luIGJlaW5nIHVuZGVmaW5lZCBpZiB0aGUgbmFtZQogICAgICAgIC8vZGlkIG5vdCBoYXZlIGEgcGx1Z2luIHByZWZpeC4KICAgICAgICBmdW5jdGlvbiBzcGxpdFByZWZpeChuYW1lKSB7CiAgICAgICAgICAgIHZhciBwcmVmaXgsCiAgICAgICAgICAgICAgICBpbmRleCA9IG5hbWUgPyBuYW1lLmluZGV4T2YoJyEnKSA6IC0xOwogICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkgewogICAgICAgICAgICAgICAgcHJlZml4ID0gbmFtZS5zdWJzdHJpbmcoMCwgaW5kZXgpOwogICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUuc3Vic3RyaW5nKGluZGV4ICsgMSwgbmFtZS5sZW5ndGgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBbcHJlZml4LCBuYW1lXTsKICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIENyZWF0ZXMgYSBtb2R1bGUgbWFwcGluZyB0aGF0IGluY2x1ZGVzIHBsdWdpbiBwcmVmaXgsIG1vZHVsZQogICAgICAgICAqIG5hbWUsIGFuZCBwYXRoLiBJZiBwYXJlbnRNb2R1bGVNYXAgaXMgcHJvdmlkZWQgaXQgd2lsbAogICAgICAgICAqIGFsc28gbm9ybWFsaXplIHRoZSBuYW1lIHZpYSByZXF1aXJlLm5vcm1hbGl6ZSgpCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSB0aGUgbW9kdWxlIG5hbWUKICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gW3BhcmVudE1vZHVsZU1hcF0gcGFyZW50IG1vZHVsZSBtYXAKICAgICAgICAgKiBmb3IgdGhlIG1vZHVsZSBuYW1lLCB1c2VkIHRvIHJlc29sdmUgcmVsYXRpdmUgbmFtZXMuCiAgICAgICAgICogQHBhcmFtIHtCb29sZWFufSBpc05vcm1hbGl6ZWQ6IGlzIHRoZSBJRCBhbHJlYWR5IG5vcm1hbGl6ZWQuCiAgICAgICAgICogVGhpcyBpcyB0cnVlIGlmIHRoaXMgY2FsbCBpcyBkb25lIGZvciBhIGRlZmluZSgpIG1vZHVsZSBJRC4KICAgICAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGFwcGx5TWFwOiBhcHBseSB0aGUgbWFwIGNvbmZpZyB0byB0aGUgSUQuCiAgICAgICAgICogU2hvdWxkIG9ubHkgYmUgdHJ1ZSBpZiB0aGlzIG1hcCBpcyBmb3IgYSBkZXBlbmRlbmN5LgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMge09iamVjdH0KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBtYWtlTW9kdWxlTWFwKG5hbWUsIHBhcmVudE1vZHVsZU1hcCwgaXNOb3JtYWxpemVkLCBhcHBseU1hcCkgewogICAgICAgICAgICB2YXIgdXJsLCBwbHVnaW5Nb2R1bGUsIHN1ZmZpeCwgbmFtZVBhcnRzLAogICAgICAgICAgICAgICAgcHJlZml4ID0gbnVsbCwKICAgICAgICAgICAgICAgIHBhcmVudE5hbWUgPSBwYXJlbnRNb2R1bGVNYXAgPyBwYXJlbnRNb2R1bGVNYXAubmFtZSA6IG51bGwsCiAgICAgICAgICAgICAgICBvcmlnaW5hbE5hbWUgPSBuYW1lLAogICAgICAgICAgICAgICAgaXNEZWZpbmUgPSB0cnVlLAogICAgICAgICAgICAgICAgbm9ybWFsaXplZE5hbWUgPSAnJzsKCiAgICAgICAgICAgIC8vSWYgbm8gbmFtZSwgdGhlbiBpdCBtZWFucyBpdCBpcyBhIHJlcXVpcmUgY2FsbCwgZ2VuZXJhdGUgYW4KICAgICAgICAgICAgLy9pbnRlcm5hbCBuYW1lLgogICAgICAgICAgICBpZiAoIW5hbWUpIHsKICAgICAgICAgICAgICAgIGlzRGVmaW5lID0gZmFsc2U7CiAgICAgICAgICAgICAgICBuYW1lID0gJ19AcicgKyAocmVxdWlyZUNvdW50ZXIgKz0gMSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG5hbWVQYXJ0cyA9IHNwbGl0UHJlZml4KG5hbWUpOwogICAgICAgICAgICBwcmVmaXggPSBuYW1lUGFydHNbMF07CiAgICAgICAgICAgIG5hbWUgPSBuYW1lUGFydHNbMV07CgogICAgICAgICAgICBpZiAocHJlZml4KSB7CiAgICAgICAgICAgICAgICBwcmVmaXggPSBub3JtYWxpemUocHJlZml4LCBwYXJlbnROYW1lLCBhcHBseU1hcCk7CiAgICAgICAgICAgICAgICBwbHVnaW5Nb2R1bGUgPSBnZXRPd24oZGVmaW5lZCwgcHJlZml4KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy9BY2NvdW50IGZvciByZWxhdGl2ZSBwYXRocyBpZiB0aGVyZSBpcyBhIGJhc2UgbmFtZS4KICAgICAgICAgICAgaWYgKG5hbWUpIHsKICAgICAgICAgICAgICAgIGlmIChwcmVmaXgpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaXNOb3JtYWxpemVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWROYW1lID0gbmFtZTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBsdWdpbk1vZHVsZSAmJiBwbHVnaW5Nb2R1bGUubm9ybWFsaXplKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vUGx1Z2luIGlzIGxvYWRlZCwgdXNlIGl0cyBub3JtYWxpemUgbWV0aG9kLgogICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTmFtZSA9IHBsdWdpbk1vZHVsZS5ub3JtYWxpemUobmFtZSwgZnVuY3Rpb24gKG5hbWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemUobmFtZSwgcGFyZW50TmFtZSwgYXBwbHlNYXApOwogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBuZXN0ZWQgcGx1Z2luIHJlZmVyZW5jZXMsIHRoZW4gZG8gbm90IHRyeSB0bwogICAgICAgICAgICAgICAgICAgICAgICAvLyBub3JtYWxpemUsIGFzIGl0IHdpbGwgbm90IG5vcm1hbGl6ZSBjb3JyZWN0bHkuIFRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGxhY2VzIGEgcmVzdHJpY3Rpb24gb24gcmVzb3VyY2VJZHMsIGFuZCB0aGUgbG9uZ2VyCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRlcm0gc29sdXRpb24gaXMgbm90IHRvIG5vcm1hbGl6ZSB1bnRpbCBwbHVnaW5zIGFyZQogICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2FkZWQgYW5kIGFsbCBub3JtYWxpemF0aW9ucyB0byBhbGxvdyBmb3IgYXN5bmMKICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9hZGluZyBvZiBhIGxvYWRlciBwbHVnaW4uIEJ1dCBmb3Igbm93LCBmaXhlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29tbW9uIHVzZXMuIERldGFpbHMgaW4gIzExMzEKICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZE5hbWUgPSBuYW1lLmluZGV4T2YoJyEnKSA9PT0gLTEgPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZShuYW1lLCBwYXJlbnROYW1lLCBhcHBseU1hcCkgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvL0EgcmVndWxhciBtb2R1bGUuCiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemUobmFtZSwgcGFyZW50TmFtZSwgYXBwbHlNYXApOwoKICAgICAgICAgICAgICAgICAgICAvL05vcm1hbGl6ZWQgbmFtZSBtYXkgYmUgYSBwbHVnaW4gSUQgZHVlIHRvIG1hcCBjb25maWcKICAgICAgICAgICAgICAgICAgICAvL2FwcGxpY2F0aW9uIGluIG5vcm1hbGl6ZS4gVGhlIG1hcCBjb25maWcgdmFsdWVzIG11c3QKICAgICAgICAgICAgICAgICAgICAvL2FscmVhZHkgYmUgbm9ybWFsaXplZCwgc28gZG8gbm90IG5lZWQgdG8gcmVkbyB0aGF0IHBhcnQuCiAgICAgICAgICAgICAgICAgICAgbmFtZVBhcnRzID0gc3BsaXRQcmVmaXgobm9ybWFsaXplZE5hbWUpOwogICAgICAgICAgICAgICAgICAgIHByZWZpeCA9IG5hbWVQYXJ0c1swXTsKICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTmFtZSA9IG5hbWVQYXJ0c1sxXTsKICAgICAgICAgICAgICAgICAgICBpc05vcm1hbGl6ZWQgPSB0cnVlOwoKICAgICAgICAgICAgICAgICAgICB1cmwgPSBjb250ZXh0Lm5hbWVUb1VybChub3JtYWxpemVkTmFtZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vSWYgdGhlIGlkIGlzIGEgcGx1Z2luIGlkIHRoYXQgY2Fubm90IGJlIGRldGVybWluZWQgaWYgaXQgbmVlZHMKICAgICAgICAgICAgLy9ub3JtYWxpemF0aW9uLCBzdGFtcCBpdCB3aXRoIGEgdW5pcXVlIElEIHNvIHR3byBtYXRjaGluZyByZWxhdGl2ZQogICAgICAgICAgICAvL2lkcyB0aGF0IG1heSBjb25mbGljdCBjYW4gYmUgc2VwYXJhdGUuCiAgICAgICAgICAgIHN1ZmZpeCA9IHByZWZpeCAmJiAhcGx1Z2luTW9kdWxlICYmICFpc05vcm1hbGl6ZWQgPwogICAgICAgICAgICAgICAgICAgICAnX3Vubm9ybWFsaXplZCcgKyAodW5ub3JtYWxpemVkQ291bnRlciArPSAxKSA6CiAgICAgICAgICAgICAgICAgICAgICcnOwoKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIHByZWZpeDogcHJlZml4LAogICAgICAgICAgICAgICAgbmFtZTogbm9ybWFsaXplZE5hbWUsCiAgICAgICAgICAgICAgICBwYXJlbnRNYXA6IHBhcmVudE1vZHVsZU1hcCwKICAgICAgICAgICAgICAgIHVubm9ybWFsaXplZDogISFzdWZmaXgsCiAgICAgICAgICAgICAgICB1cmw6IHVybCwKICAgICAgICAgICAgICAgIG9yaWdpbmFsTmFtZTogb3JpZ2luYWxOYW1lLAogICAgICAgICAgICAgICAgaXNEZWZpbmU6IGlzRGVmaW5lLAogICAgICAgICAgICAgICAgaWQ6IChwcmVmaXggPwogICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXggKyAnIScgKyBub3JtYWxpemVkTmFtZSA6CiAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWROYW1lKSArIHN1ZmZpeAogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gZ2V0TW9kdWxlKGRlcE1hcCkgewogICAgICAgICAgICB2YXIgaWQgPSBkZXBNYXAuaWQsCiAgICAgICAgICAgICAgICBtb2QgPSBnZXRPd24ocmVnaXN0cnksIGlkKTsKCiAgICAgICAgICAgIGlmICghbW9kKSB7CiAgICAgICAgICAgICAgICBtb2QgPSByZWdpc3RyeVtpZF0gPSBuZXcgY29udGV4dC5Nb2R1bGUoZGVwTWFwKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIG1vZDsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIG9uKGRlcE1hcCwgbmFtZSwgZm4pIHsKICAgICAgICAgICAgdmFyIGlkID0gZGVwTWFwLmlkLAogICAgICAgICAgICAgICAgbW9kID0gZ2V0T3duKHJlZ2lzdHJ5LCBpZCk7CgogICAgICAgICAgICBpZiAoaGFzUHJvcChkZWZpbmVkLCBpZCkgJiYKICAgICAgICAgICAgICAgICAgICAoIW1vZCB8fCBtb2QuZGVmaW5lRW1pdENvbXBsZXRlKSkgewogICAgICAgICAgICAgICAgaWYgKG5hbWUgPT09ICdkZWZpbmVkJykgewogICAgICAgICAgICAgICAgICAgIGZuKGRlZmluZWRbaWRdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG1vZCA9IGdldE1vZHVsZShkZXBNYXApOwogICAgICAgICAgICAgICAgaWYgKG1vZC5lcnJvciAmJiBuYW1lID09PSAnZXJyb3InKSB7CiAgICAgICAgICAgICAgICAgICAgZm4obW9kLmVycm9yKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgbW9kLm9uKG5hbWUsIGZuKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gb25FcnJvcihlcnIsIGVycmJhY2spIHsKICAgICAgICAgICAgdmFyIGlkcyA9IGVyci5yZXF1aXJlTW9kdWxlcywKICAgICAgICAgICAgICAgIG5vdGlmaWVkID0gZmFsc2U7CgogICAgICAgICAgICBpZiAoZXJyYmFjaykgewogICAgICAgICAgICAgICAgZXJyYmFjayhlcnIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZWFjaChpZHMsIGZ1bmN0aW9uIChpZCkgewogICAgICAgICAgICAgICAgICAgIHZhciBtb2QgPSBnZXRPd24ocmVnaXN0cnksIGlkKTsKICAgICAgICAgICAgICAgICAgICBpZiAobW9kKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vU2V0IGVycm9yIG9uIG1vZHVsZSwgc28gaXQgc2tpcHMgdGltZW91dCBjaGVja3MuCiAgICAgICAgICAgICAgICAgICAgICAgIG1vZC5lcnJvciA9IGVycjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1vZC5ldmVudHMuZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZC5lbWl0KCdlcnJvcicsIGVycik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICBpZiAoIW5vdGlmaWVkKSB7CiAgICAgICAgICAgICAgICAgICAgcmVxLm9uRXJyb3IoZXJyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogSW50ZXJuYWwgbWV0aG9kIHRvIHRyYW5zZmVyIGdsb2JhbFF1ZXVlIGl0ZW1zIHRvIHRoaXMgY29udGV4dCdzCiAgICAgICAgICogZGVmUXVldWUuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gdGFrZUdsb2JhbFF1ZXVlKCkgewogICAgICAgICAgICAvL1B1c2ggYWxsIHRoZSBnbG9iYWxEZWZRdWV1ZSBpdGVtcyBpbnRvIHRoZSBjb250ZXh0J3MgZGVmUXVldWUKICAgICAgICAgICAgaWYgKGdsb2JhbERlZlF1ZXVlLmxlbmd0aCkgewogICAgICAgICAgICAgICAgZWFjaChnbG9iYWxEZWZRdWV1ZSwgZnVuY3Rpb24ocXVldWVJdGVtKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlkID0gcXVldWVJdGVtWzBdOwogICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaWQgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZGVmUXVldWVNYXBbaWRdID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZGVmUXVldWUucHVzaChxdWV1ZUl0ZW0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBnbG9iYWxEZWZRdWV1ZSA9IFtdOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBoYW5kbGVycyA9IHsKICAgICAgICAgICAgJ3JlcXVpcmUnOiBmdW5jdGlvbiAobW9kKSB7CiAgICAgICAgICAgICAgICBpZiAobW9kLnJlcXVpcmUpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9kLnJlcXVpcmU7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAobW9kLnJlcXVpcmUgPSBjb250ZXh0Lm1ha2VSZXF1aXJlKG1vZC5tYXApKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ2V4cG9ydHMnOiBmdW5jdGlvbiAobW9kKSB7CiAgICAgICAgICAgICAgICBtb2QudXNpbmdFeHBvcnRzID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGlmIChtb2QubWFwLmlzRGVmaW5lKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZC5leHBvcnRzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoZGVmaW5lZFttb2QubWFwLmlkXSA9IG1vZC5leHBvcnRzKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKG1vZC5leHBvcnRzID0gZGVmaW5lZFttb2QubWFwLmlkXSA9IHt9KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICdtb2R1bGUnOiBmdW5jdGlvbiAobW9kKSB7CiAgICAgICAgICAgICAgICBpZiAobW9kLm1vZHVsZSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBtb2QubW9kdWxlOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gKG1vZC5tb2R1bGUgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBtb2QubWFwLmlkLAogICAgICAgICAgICAgICAgICAgICAgICB1cmk6IG1vZC5tYXAudXJsLAogICAgICAgICAgICAgICAgICAgICAgICBjb25maWc6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBnZXRPd24oY29uZmlnLmNvbmZpZywgbW9kLm1hcC5pZCkgfHwge307CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9ydHM6IG1vZC5leHBvcnRzIHx8IChtb2QuZXhwb3J0cyA9IHt9KQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgZnVuY3Rpb24gY2xlYW5SZWdpc3RyeShpZCkgewogICAgICAgICAgICAvL0NsZWFuIHVwIG1hY2hpbmVyeSB1c2VkIGZvciB3YWl0aW5nIG1vZHVsZXMuCiAgICAgICAgICAgIGRlbGV0ZSByZWdpc3RyeVtpZF07CiAgICAgICAgICAgIGRlbGV0ZSBlbmFibGVkUmVnaXN0cnlbaWRdOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gYnJlYWtDeWNsZShtb2QsIHRyYWNlZCwgcHJvY2Vzc2VkKSB7CiAgICAgICAgICAgIHZhciBpZCA9IG1vZC5tYXAuaWQ7CgogICAgICAgICAgICBpZiAobW9kLmVycm9yKSB7CiAgICAgICAgICAgICAgICBtb2QuZW1pdCgnZXJyb3InLCBtb2QuZXJyb3IpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdHJhY2VkW2lkXSA9IHRydWU7CiAgICAgICAgICAgICAgICBlYWNoKG1vZC5kZXBNYXBzLCBmdW5jdGlvbiAoZGVwTWFwLCBpKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRlcElkID0gZGVwTWFwLmlkLAogICAgICAgICAgICAgICAgICAgICAgICBkZXAgPSBnZXRPd24ocmVnaXN0cnksIGRlcElkKTsKCiAgICAgICAgICAgICAgICAgICAgLy9Pbmx5IGZvcmNlIHRoaW5ncyB0aGF0IGhhdmUgbm90IGNvbXBsZXRlZAogICAgICAgICAgICAgICAgICAgIC8vYmVpbmcgZGVmaW5lZCwgc28gc3RpbGwgaW4gdGhlIHJlZ2lzdHJ5LAogICAgICAgICAgICAgICAgICAgIC8vYW5kIG9ubHkgaWYgaXQgaGFzIG5vdCBiZWVuIG1hdGNoZWQgdXAKICAgICAgICAgICAgICAgICAgICAvL2luIHRoZSBtb2R1bGUgYWxyZWFkeS4KICAgICAgICAgICAgICAgICAgICBpZiAoZGVwICYmICFtb2QuZGVwTWF0Y2hlZFtpXSAmJiAhcHJvY2Vzc2VkW2RlcElkXSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0T3duKHRyYWNlZCwgZGVwSWQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2QuZGVmaW5lRGVwKGksIGRlZmluZWRbZGVwSWRdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZC5jaGVjaygpOyAvL3Bhc3MgZmFsc2U/CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVha0N5Y2xlKGRlcCwgdHJhY2VkLCBwcm9jZXNzZWQpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBwcm9jZXNzZWRbaWRdID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gY2hlY2tMb2FkZWQoKSB7CiAgICAgICAgICAgIHZhciBlcnIsIHVzaW5nUGF0aEZhbGxiYWNrLAogICAgICAgICAgICAgICAgd2FpdEludGVydmFsID0gY29uZmlnLndhaXRTZWNvbmRzICogMTAwMCwKICAgICAgICAgICAgICAgIC8vSXQgaXMgcG9zc2libGUgdG8gZGlzYWJsZSB0aGUgd2FpdCBpbnRlcnZhbCBieSB1c2luZyB3YWl0U2Vjb25kcyBvZiAwLgogICAgICAgICAgICAgICAgZXhwaXJlZCA9IHdhaXRJbnRlcnZhbCAmJiAoY29udGV4dC5zdGFydFRpbWUgKyB3YWl0SW50ZXJ2YWwpIDwgbmV3IERhdGUoKS5nZXRUaW1lKCksCiAgICAgICAgICAgICAgICBub0xvYWRzID0gW10sCiAgICAgICAgICAgICAgICByZXFDYWxscyA9IFtdLAogICAgICAgICAgICAgICAgc3RpbGxMb2FkaW5nID0gZmFsc2UsCiAgICAgICAgICAgICAgICBuZWVkQ3ljbGVDaGVjayA9IHRydWU7CgogICAgICAgICAgICAvL0RvIG5vdCBib3RoZXIgaWYgdGhpcyBjYWxsIHdhcyBhIHJlc3VsdCBvZiBhIGN5Y2xlIGJyZWFrLgogICAgICAgICAgICBpZiAoaW5DaGVja0xvYWRlZCkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpbkNoZWNrTG9hZGVkID0gdHJ1ZTsKCiAgICAgICAgICAgIC8vRmlndXJlIG91dCB0aGUgc3RhdGUgb2YgYWxsIHRoZSBtb2R1bGVzLgogICAgICAgICAgICBlYWNoUHJvcChlbmFibGVkUmVnaXN0cnksIGZ1bmN0aW9uIChtb2QpIHsKICAgICAgICAgICAgICAgIHZhciBtYXAgPSBtb2QubWFwLAogICAgICAgICAgICAgICAgICAgIG1vZElkID0gbWFwLmlkOwoKICAgICAgICAgICAgICAgIC8vU2tpcCB0aGluZ3MgdGhhdCBhcmUgbm90IGVuYWJsZWQgb3IgaW4gZXJyb3Igc3RhdGUuCiAgICAgICAgICAgICAgICBpZiAoIW1vZC5lbmFibGVkKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICghbWFwLmlzRGVmaW5lKSB7CiAgICAgICAgICAgICAgICAgICAgcmVxQ2FsbHMucHVzaChtb2QpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICghbW9kLmVycm9yKSB7CiAgICAgICAgICAgICAgICAgICAgLy9JZiB0aGUgbW9kdWxlIHNob3VsZCBiZSBleGVjdXRlZCwgYW5kIGl0IGhhcyBub3QKICAgICAgICAgICAgICAgICAgICAvL2JlZW4gaW5pdGVkIGFuZCB0aW1lIGlzIHVwLCByZW1lbWJlciBpdC4KICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZC5pbml0ZWQgJiYgZXhwaXJlZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzUGF0aEZhbGxiYWNrKG1vZElkKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNpbmdQYXRoRmFsbGJhY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpbGxMb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vTG9hZHMucHVzaChtb2RJZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVTY3JpcHQobW9kSWQpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghbW9kLmluaXRlZCAmJiBtb2QuZmV0Y2hlZCAmJiBtYXAuaXNEZWZpbmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgc3RpbGxMb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtYXAucHJlZml4KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL05vIHJlYXNvbiB0byBrZWVwIGxvb2tpbmcgZm9yIHVuZmluaXNoZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbG9hZGluZy4gSWYgdGhlIG9ubHkgc3RpbGxMb2FkaW5nIGlzIGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vcGx1Z2luIHJlc291cmNlIHRob3VnaCwga2VlcCBnb2luZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vYmVjYXVzZSBpdCBtYXkgYmUgdGhhdCBhIHBsdWdpbiByZXNvdXJjZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9pcyB3YWl0aW5nIG9uIGEgbm9uLXBsdWdpbiBjeWNsZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAobmVlZEN5Y2xlQ2hlY2sgPSBmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgaWYgKGV4cGlyZWQgJiYgbm9Mb2Fkcy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIC8vSWYgd2FpdCB0aW1lIGV4cGlyZWQsIHRocm93IGVycm9yIG9mIHVubG9hZGVkIG1vZHVsZXMuCiAgICAgICAgICAgICAgICBlcnIgPSBtYWtlRXJyb3IoJ3RpbWVvdXQnLCAnTG9hZCB0aW1lb3V0IGZvciBtb2R1bGVzOiAnICsgbm9Mb2FkcywgbnVsbCwgbm9Mb2Fkcyk7CiAgICAgICAgICAgICAgICBlcnIuY29udGV4dE5hbWUgPSBjb250ZXh0LmNvbnRleHROYW1lOwogICAgICAgICAgICAgICAgcmV0dXJuIG9uRXJyb3IoZXJyKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy9Ob3QgZXhwaXJlZCwgY2hlY2sgZm9yIGEgY3ljbGUuCiAgICAgICAgICAgIGlmIChuZWVkQ3ljbGVDaGVjaykgewogICAgICAgICAgICAgICAgZWFjaChyZXFDYWxscywgZnVuY3Rpb24gKG1vZCkgewogICAgICAgICAgICAgICAgICAgIGJyZWFrQ3ljbGUobW9kLCB7fSwge30pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vSWYgc3RpbGwgd2FpdGluZyBvbiBsb2FkcywgYW5kIHRoZSB3YWl0aW5nIGxvYWQgaXMgc29tZXRoaW5nCiAgICAgICAgICAgIC8vb3RoZXIgdGhhbiBhIHBsdWdpbiByZXNvdXJjZSwgb3IgdGhlcmUgYXJlIHN0aWxsIG91dHN0YW5kaW5nCiAgICAgICAgICAgIC8vc2NyaXB0cywgdGhlbiBqdXN0IHRyeSBiYWNrIGxhdGVyLgogICAgICAgICAgICBpZiAoKCFleHBpcmVkIHx8IHVzaW5nUGF0aEZhbGxiYWNrKSAmJiBzdGlsbExvYWRpbmcpIHsKICAgICAgICAgICAgICAgIC8vU29tZXRoaW5nIGlzIHN0aWxsIHdhaXRpbmcgdG8gbG9hZC4gV2FpdCBmb3IgaXQsIGJ1dCBvbmx5CiAgICAgICAgICAgICAgICAvL2lmIGEgdGltZW91dCBpcyBub3QgYWxyZWFkeSBpbiBlZmZlY3QuCiAgICAgICAgICAgICAgICBpZiAoKGlzQnJvd3NlciB8fCBpc1dlYldvcmtlcikgJiYgIWNoZWNrTG9hZGVkVGltZW91dElkKSB7CiAgICAgICAgICAgICAgICAgICAgY2hlY2tMb2FkZWRUaW1lb3V0SWQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tMb2FkZWRUaW1lb3V0SWQgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBjaGVja0xvYWRlZCgpOwogICAgICAgICAgICAgICAgICAgIH0sIDUwKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaW5DaGVja0xvYWRlZCA9IGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgTW9kdWxlID0gZnVuY3Rpb24gKG1hcCkgewogICAgICAgICAgICB0aGlzLmV2ZW50cyA9IGdldE93bih1bmRlZkV2ZW50cywgbWFwLmlkKSB8fCB7fTsKICAgICAgICAgICAgdGhpcy5tYXAgPSBtYXA7CiAgICAgICAgICAgIHRoaXMuc2hpbSA9IGdldE93bihjb25maWcuc2hpbSwgbWFwLmlkKTsKICAgICAgICAgICAgdGhpcy5kZXBFeHBvcnRzID0gW107CiAgICAgICAgICAgIHRoaXMuZGVwTWFwcyA9IFtdOwogICAgICAgICAgICB0aGlzLmRlcE1hdGNoZWQgPSBbXTsKICAgICAgICAgICAgdGhpcy5wbHVnaW5NYXBzID0ge307CiAgICAgICAgICAgIHRoaXMuZGVwQ291bnQgPSAwOwoKICAgICAgICAgICAgLyogdGhpcy5leHBvcnRzIHRoaXMuZmFjdG9yeQogICAgICAgICAgICAgICB0aGlzLmRlcE1hcHMgPSBbXSwKICAgICAgICAgICAgICAgdGhpcy5lbmFibGVkLCB0aGlzLmZldGNoZWQKICAgICAgICAgICAgKi8KICAgICAgICB9OwoKICAgICAgICBNb2R1bGUucHJvdG90eXBlID0gewogICAgICAgICAgICBpbml0OiBmdW5jdGlvbiAoZGVwTWFwcywgZmFjdG9yeSwgZXJyYmFjaywgb3B0aW9ucykgewogICAgICAgICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CgogICAgICAgICAgICAgICAgLy9EbyBub3QgZG8gbW9yZSBpbml0cyBpZiBhbHJlYWR5IGRvbmUuIENhbiBoYXBwZW4gaWYgdGhlcmUKICAgICAgICAgICAgICAgIC8vYXJlIG11bHRpcGxlIGRlZmluZSBjYWxscyBmb3IgdGhlIHNhbWUgbW9kdWxlLiBUaGF0IGlzIG5vdAogICAgICAgICAgICAgICAgLy9hIG5vcm1hbCwgY29tbW9uIGNhc2UsIGJ1dCBpdCBpcyBhbHNvIG5vdCB1bmV4cGVjdGVkLgogICAgICAgICAgICAgICAgaWYgKHRoaXMuaW5pdGVkKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHRoaXMuZmFjdG9yeSA9IGZhY3Rvcnk7CgogICAgICAgICAgICAgICAgaWYgKGVycmJhY2spIHsKICAgICAgICAgICAgICAgICAgICAvL1JlZ2lzdGVyIGZvciBlcnJvcnMgb24gdGhpcyBtb2R1bGUuCiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbignZXJyb3InLCBlcnJiYWNrKTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5ldmVudHMuZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAvL0lmIG5vIGVycmJhY2sgYWxyZWFkeSwgYnV0IHRoZXJlIGFyZSBlcnJvciBsaXN0ZW5lcnMKICAgICAgICAgICAgICAgICAgICAvL29uIHRoaXMgbW9kdWxlLCBzZXQgdXAgYW4gZXJyYmFjayB0byBwYXNzIHRvIHRoZSBkZXBzLgogICAgICAgICAgICAgICAgICAgIGVycmJhY2sgPSBiaW5kKHRoaXMsIGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0KCdlcnJvcicsIGVycik7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy9EbyBhIGNvcHkgb2YgdGhlIGRlcGVuZGVuY3kgYXJyYXksIHNvIHRoYXQKICAgICAgICAgICAgICAgIC8vc291cmNlIGlucHV0cyBhcmUgbm90IG1vZGlmaWVkLiBGb3IgZXhhbXBsZQogICAgICAgICAgICAgICAgLy8ic2hpbSIgZGVwcyBhcmUgcGFzc2VkIGluIGhlcmUgZGlyZWN0bHksIGFuZAogICAgICAgICAgICAgICAgLy9kb2luZyBhIGRpcmVjdCBtb2RpZmljYXRpb24gb2YgdGhlIGRlcE1hcHMgYXJyYXkKICAgICAgICAgICAgICAgIC8vd291bGQgYWZmZWN0IHRoYXQgY29uZmlnLgogICAgICAgICAgICAgICAgdGhpcy5kZXBNYXBzID0gZGVwTWFwcyAmJiBkZXBNYXBzLnNsaWNlKDApOwoKICAgICAgICAgICAgICAgIHRoaXMuZXJyYmFjayA9IGVycmJhY2s7CgogICAgICAgICAgICAgICAgLy9JbmRpY2F0ZSB0aGlzIG1vZHVsZSBoYXMgYmUgaW5pdGlhbGl6ZWQKICAgICAgICAgICAgICAgIHRoaXMuaW5pdGVkID0gdHJ1ZTsKCiAgICAgICAgICAgICAgICB0aGlzLmlnbm9yZSA9IG9wdGlvbnMuaWdub3JlOwoKICAgICAgICAgICAgICAgIC8vQ291bGQgaGF2ZSBvcHRpb24gdG8gaW5pdCB0aGlzIG1vZHVsZSBpbiBlbmFibGVkIG1vZGUsCiAgICAgICAgICAgICAgICAvL29yIGNvdWxkIGhhdmUgYmVlbiBwcmV2aW91c2x5IG1hcmtlZCBhcyBlbmFibGVkLiBIb3dldmVyLAogICAgICAgICAgICAgICAgLy90aGUgZGVwZW5kZW5jaWVzIGFyZSBub3Qga25vd24gdW50aWwgaW5pdCBpcyBjYWxsZWQuIFNvCiAgICAgICAgICAgICAgICAvL2lmIGVuYWJsZWQgcHJldmlvdXNseSwgbm93IHRyaWdnZXIgZGVwZW5kZW5jaWVzIGFzIGVuYWJsZWQuCiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5lbmFibGVkIHx8IHRoaXMuZW5hYmxlZCkgewogICAgICAgICAgICAgICAgICAgIC8vRW5hYmxlIHRoaXMgbW9kdWxlIGFuZCBkZXBlbmRlbmNpZXMuCiAgICAgICAgICAgICAgICAgICAgLy9XaWxsIGNhbGwgdGhpcy5jaGVjaygpCiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmFibGUoKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVjaygpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgZGVmaW5lRGVwOiBmdW5jdGlvbiAoaSwgZGVwRXhwb3J0cykgewogICAgICAgICAgICAgICAgLy9CZWNhdXNlIG9mIGN5Y2xlcywgZGVmaW5lZCBjYWxsYmFjayBmb3IgYSBnaXZlbgogICAgICAgICAgICAgICAgLy9leHBvcnQgY2FuIGJlIGNhbGxlZCBtb3JlIHRoYW4gb25jZS4KICAgICAgICAgICAgICAgIGlmICghdGhpcy5kZXBNYXRjaGVkW2ldKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXBNYXRjaGVkW2ldID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcENvdW50IC09IDE7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXBFeHBvcnRzW2ldID0gZGVwRXhwb3J0czsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIGZldGNoOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5mZXRjaGVkKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdGhpcy5mZXRjaGVkID0gdHJ1ZTsKCiAgICAgICAgICAgICAgICBjb250ZXh0LnN0YXJ0VGltZSA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7CgogICAgICAgICAgICAgICAgdmFyIG1hcCA9IHRoaXMubWFwOwoKICAgICAgICAgICAgICAgIC8vSWYgdGhlIG1hbmFnZXIgaXMgZm9yIGEgcGx1Z2luIG1hbmFnZWQgcmVzb3VyY2UsCiAgICAgICAgICAgICAgICAvL2FzayB0aGUgcGx1Z2luIHRvIGxvYWQgaXQgbm93LgogICAgICAgICAgICAgICAgaWYgKHRoaXMuc2hpbSkgewogICAgICAgICAgICAgICAgICAgIGNvbnRleHQubWFrZVJlcXVpcmUodGhpcy5tYXAsIHsKICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlQnVpbGRDYWxsYmFjazogdHJ1ZQogICAgICAgICAgICAgICAgICAgIH0pKHRoaXMuc2hpbS5kZXBzIHx8IFtdLCBiaW5kKHRoaXMsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hcC5wcmVmaXggPyB0aGlzLmNhbGxQbHVnaW4oKSA6IHRoaXMubG9hZCgpOwogICAgICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgLy9SZWd1bGFyIGRlcGVuZGVuY3kuCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hcC5wcmVmaXggPyB0aGlzLmNhbGxQbHVnaW4oKSA6IHRoaXMubG9hZCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgbG9hZDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIHVybCA9IHRoaXMubWFwLnVybDsKCiAgICAgICAgICAgICAgICAvL1JlZ3VsYXIgZGVwZW5kZW5jeS4KICAgICAgICAgICAgICAgIGlmICghdXJsRmV0Y2hlZFt1cmxdKSB7CiAgICAgICAgICAgICAgICAgICAgdXJsRmV0Y2hlZFt1cmxdID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmxvYWQodGhpcy5tYXAuaWQsIHVybCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQ2hlY2tzIGlmIHRoZSBtb2R1bGUgaXMgcmVhZHkgdG8gZGVmaW5lIGl0c2VsZiwgYW5kIGlmIHNvLAogICAgICAgICAgICAgKiBkZWZpbmUgaXQuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBjaGVjazogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKCF0aGlzLmVuYWJsZWQgfHwgdGhpcy5lbmFibGluZykgewogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB2YXIgZXJyLCBjanNNb2R1bGUsCiAgICAgICAgICAgICAgICAgICAgaWQgPSB0aGlzLm1hcC5pZCwKICAgICAgICAgICAgICAgICAgICBkZXBFeHBvcnRzID0gdGhpcy5kZXBFeHBvcnRzLAogICAgICAgICAgICAgICAgICAgIGV4cG9ydHMgPSB0aGlzLmV4cG9ydHMsCiAgICAgICAgICAgICAgICAgICAgZmFjdG9yeSA9IHRoaXMuZmFjdG9yeTsKCiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaW5pdGVkKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gT25seSBmZXRjaCBpZiBub3QgYWxyZWFkeSBpbiB0aGUgZGVmUXVldWUuCiAgICAgICAgICAgICAgICAgICAgaWYgKCFoYXNQcm9wKGNvbnRleHQuZGVmUXVldWVNYXAsIGlkKSkgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZldGNoKCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmVycm9yKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0KCdlcnJvcicsIHRoaXMuZXJyb3IpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5kZWZpbmluZykgewogICAgICAgICAgICAgICAgICAgIC8vVGhlIGZhY3RvcnkgY291bGQgdHJpZ2dlciBhbm90aGVyIHJlcXVpcmUgY2FsbAogICAgICAgICAgICAgICAgICAgIC8vdGhhdCB3b3VsZCByZXN1bHQgaW4gY2hlY2tpbmcgdGhpcyBtb2R1bGUgdG8KICAgICAgICAgICAgICAgICAgICAvL2RlZmluZSBpdHNlbGYgYWdhaW4uIElmIGFscmVhZHkgaW4gdGhlIHByb2Nlc3MKICAgICAgICAgICAgICAgICAgICAvL29mIGRvaW5nIHRoYXQsIHNraXAgdGhpcyB3b3JrLgogICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5pbmcgPSB0cnVlOwoKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kZXBDb3VudCA8IDEgJiYgIXRoaXMuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihmYWN0b3J5KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9JZiB0aGVyZSBpcyBhbiBlcnJvciBsaXN0ZW5lciwgZmF2b3IgcGFzc2luZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy90byB0aGF0IGluc3RlYWQgb2YgdGhyb3dpbmcgYW4gZXJyb3IuIEhvd2V2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL29ubHkgZG8gaXQgZm9yIGRlZmluZSgpJ2QgIG1vZHVsZXMuIHJlcXVpcmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZXJyYmFja3Mgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9yIGZhaWx1cmVzIGluCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3RoZWlyIGNhbGxiYWNrcyAoIzY5OSkuIEhvd2V2ZXIgaWYgYSBnbG9iYWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vb25FcnJvciBpcyBzZXQsIHVzZSB0aGF0LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCh0aGlzLmV2ZW50cy5lcnJvciAmJiB0aGlzLm1hcC5pc0RlZmluZSkgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEub25FcnJvciAhPT0gZGVmYXVsdE9uRXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvcnRzID0gY29udGV4dC5leGVjQ2IoaWQsIGZhY3RvcnksIGRlcEV4cG9ydHMsIGV4cG9ydHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyID0gZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9ydHMgPSBjb250ZXh0LmV4ZWNDYihpZCwgZmFjdG9yeSwgZGVwRXhwb3J0cywgZXhwb3J0cyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmF2b3IgcmV0dXJuIHZhbHVlIG92ZXIgZXhwb3J0cy4gSWYgbm9kZS9janMgaW4gcGxheSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gd2lsbCBub3QgaGF2ZSBhIHJldHVybiB2YWx1ZSBhbnl3YXkuIEZhdm9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtb2R1bGUuZXhwb3J0cyBhc3NpZ25tZW50IG92ZXIgZXhwb3J0cyBvYmplY3QuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXAuaXNEZWZpbmUgJiYgZXhwb3J0cyA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2pzTW9kdWxlID0gdGhpcy5tb2R1bGU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNqc01vZHVsZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvcnRzID0gY2pzTW9kdWxlLmV4cG9ydHM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVzaW5nRXhwb3J0cykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2V4cG9ydHMgYWxyZWFkeSBzZXQgdGhlIGRlZmluZWQgdmFsdWUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9ydHMgPSB0aGlzLmV4cG9ydHM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIucmVxdWlyZU1hcCA9IHRoaXMubWFwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyci5yZXF1aXJlTW9kdWxlcyA9IHRoaXMubWFwLmlzRGVmaW5lID8gW3RoaXMubWFwLmlkXSA6IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyLnJlcXVpcmVUeXBlID0gdGhpcy5tYXAuaXNEZWZpbmUgPyAnZGVmaW5lJyA6ICdyZXF1aXJlJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcigodGhpcy5lcnJvciA9IGVycikpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vSnVzdCBhIGxpdGVyYWwgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9ydHMgPSBmYWN0b3J5OwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydHMgPSBleHBvcnRzOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwLmlzRGVmaW5lICYmICF0aGlzLmlnbm9yZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lZFtpZF0gPSBleHBvcnRzOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXEub25SZXNvdXJjZUxvYWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzTG9hZE1hcHMgPSBbXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlYWNoKHRoaXMuZGVwTWFwcywgZnVuY3Rpb24gKGRlcE1hcCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNMb2FkTWFwcy5wdXNoKGRlcE1hcC5ub3JtYWxpemVkTWFwIHx8IGRlcE1hcCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxLm9uUmVzb3VyY2VMb2FkKGNvbnRleHQsIHRoaXMubWFwLCByZXNMb2FkTWFwcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vQ2xlYW4gdXAKICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW5SZWdpc3RyeShpZCk7CgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmluZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgLy9GaW5pc2hlZCB0aGUgZGVmaW5lIHN0YWdlLiBBbGxvdyBjYWxsaW5nIGNoZWNrIGFnYWluCiAgICAgICAgICAgICAgICAgICAgLy90byBhbGxvdyBkZWZpbmUgbm90aWZpY2F0aW9ucyBiZWxvdyBpbiB0aGUgY2FzZSBvZiBhCiAgICAgICAgICAgICAgICAgICAgLy9jeWNsZS4KICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmluaW5nID0gZmFsc2U7CgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlZmluZWQgJiYgIXRoaXMuZGVmaW5lRW1pdHRlZCkgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmluZUVtaXR0ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ2RlZmluZWQnLCB0aGlzLmV4cG9ydHMpOwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmluZUVtaXRDb21wbGV0ZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIGNhbGxQbHVnaW46IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBtYXAgPSB0aGlzLm1hcCwKICAgICAgICAgICAgICAgICAgICBpZCA9IG1hcC5pZCwKICAgICAgICAgICAgICAgICAgICAvL01hcCBhbHJlYWR5IG5vcm1hbGl6ZWQgdGhlIHByZWZpeC4KICAgICAgICAgICAgICAgICAgICBwbHVnaW5NYXAgPSBtYWtlTW9kdWxlTWFwKG1hcC5wcmVmaXgpOwoKICAgICAgICAgICAgICAgIC8vTWFyayB0aGlzIGFzIGEgZGVwZW5kZW5jeSBmb3IgdGhpcyBwbHVnaW4sIHNvIGl0CiAgICAgICAgICAgICAgICAvL2NhbiBiZSB0cmFjZWQgZm9yIGN5Y2xlcy4KICAgICAgICAgICAgICAgIHRoaXMuZGVwTWFwcy5wdXNoKHBsdWdpbk1hcCk7CgogICAgICAgICAgICAgICAgb24ocGx1Z2luTWFwLCAnZGVmaW5lZCcsIGJpbmQodGhpcywgZnVuY3Rpb24gKHBsdWdpbikgewogICAgICAgICAgICAgICAgICAgIHZhciBsb2FkLCBub3JtYWxpemVkTWFwLCBub3JtYWxpemVkTW9kLAogICAgICAgICAgICAgICAgICAgICAgICBidW5kbGVJZCA9IGdldE93bihidW5kbGVzTWFwLCB0aGlzLm1hcC5pZCksCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSB0aGlzLm1hcC5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROYW1lID0gdGhpcy5tYXAucGFyZW50TWFwID8gdGhpcy5tYXAucGFyZW50TWFwLm5hbWUgOiBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFJlcXVpcmUgPSBjb250ZXh0Lm1ha2VSZXF1aXJlKG1hcC5wYXJlbnRNYXAsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZUJ1aWxkQ2FsbGJhY2s6IHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgIC8vSWYgY3VycmVudCBtYXAgaXMgbm90IG5vcm1hbGl6ZWQsIHdhaXQgZm9yIHRoYXQKICAgICAgICAgICAgICAgICAgICAvL25vcm1hbGl6ZWQgbmFtZSB0byBsb2FkIGluc3RlYWQgb2YgY29udGludWluZy4KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXAudW5ub3JtYWxpemVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vTm9ybWFsaXplIHRoZSBJRCBpZiB0aGUgcGx1Z2luIGFsbG93cyBpdC4KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBsdWdpbi5ub3JtYWxpemUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBwbHVnaW4ubm9ybWFsaXplKG5hbWUsIGZ1bmN0aW9uIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShuYW1lLCBwYXJlbnROYW1lLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pIHx8ICcnOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvL3ByZWZpeCBhbmQgbmFtZSBzaG91bGQgYWxyZWFkeSBiZSBub3JtYWxpemVkLCBubyBuZWVkCiAgICAgICAgICAgICAgICAgICAgICAgIC8vZm9yIGFwcGx5aW5nIG1hcCBjb25maWcgYWdhaW4gZWl0aGVyLgogICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTWFwID0gbWFrZU1vZHVsZU1hcChtYXAucHJlZml4ICsgJyEnICsgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXAucGFyZW50TWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgb24obm9ybWFsaXplZE1hcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWZpbmVkJywgYmluZCh0aGlzLCBmdW5jdGlvbiAodmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcC5ub3JtYWxpemVkTWFwID0gbm9ybWFsaXplZE1hcDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXQoW10sIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHZhbHVlOyB9LCBudWxsLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZTogdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpOwoKICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZE1vZCA9IGdldE93bihyZWdpc3RyeSwgbm9ybWFsaXplZE1hcC5pZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub3JtYWxpemVkTW9kKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL01hcmsgdGhpcyBhcyBhIGRlcGVuZGVuY3kgZm9yIHRoaXMgcGx1Z2luLCBzbyBpdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jYW4gYmUgdHJhY2VkIGZvciBjeWNsZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcE1hcHMucHVzaChub3JtYWxpemVkTWFwKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ldmVudHMuZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTW9kLm9uKCdlcnJvcicsIGJpbmQodGhpcywgZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTW9kLmVuYWJsZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvL0lmIGEgcGF0aHMgY29uZmlnLCB0aGVuIGp1c3QgbG9hZCB0aGF0IGZpbGUgaW5zdGVhZCB0bwogICAgICAgICAgICAgICAgICAgIC8vcmVzb2x2ZSB0aGUgcGx1Z2luLCBhcyBpdCBpcyBidWlsdCBpbnRvIHRoYXQgcGF0aHMgbGF5ZXIuCiAgICAgICAgICAgICAgICAgICAgaWYgKGJ1bmRsZUlkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFwLnVybCA9IGNvbnRleHQubmFtZVRvVXJsKGJ1bmRsZUlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGxvYWQgPSBiaW5kKHRoaXMsIGZ1bmN0aW9uICh2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXQoW10sIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHZhbHVlOyB9LCBudWxsLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkOiB0cnVlCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICBsb2FkLmVycm9yID0gYmluZCh0aGlzLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvciA9IGVycjsKICAgICAgICAgICAgICAgICAgICAgICAgZXJyLnJlcXVpcmVNb2R1bGVzID0gW2lkXTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vUmVtb3ZlIHRlbXAgdW5ub3JtYWxpemVkIG1vZHVsZXMgZm9yIHRoaXMgbW9kdWxlLAogICAgICAgICAgICAgICAgICAgICAgICAvL3NpbmNlIHRoZXkgd2lsbCBuZXZlciBiZSByZXNvbHZlZCBvdGhlcndpc2Ugbm93LgogICAgICAgICAgICAgICAgICAgICAgICBlYWNoUHJvcChyZWdpc3RyeSwgZnVuY3Rpb24gKG1vZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1vZC5tYXAuaWQuaW5kZXhPZihpZCArICdfdW5ub3JtYWxpemVkJykgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhblJlZ2lzdHJ5KG1vZC5tYXAuaWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgICAgIG9uRXJyb3IoZXJyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgLy9BbGxvdyBwbHVnaW5zIHRvIGxvYWQgb3RoZXIgY29kZSB3aXRob3V0IGhhdmluZyB0byBrbm93IHRoZQogICAgICAgICAgICAgICAgICAgIC8vY29udGV4dCBvciBob3cgdG8gJ2NvbXBsZXRlJyB0aGUgbG9hZC4KICAgICAgICAgICAgICAgICAgICBsb2FkLmZyb21UZXh0ID0gYmluZCh0aGlzLCBmdW5jdGlvbiAodGV4dCwgdGV4dEFsdCkgewogICAgICAgICAgICAgICAgICAgICAgICAvKmpzbGludCBldmlsOiB0cnVlICovCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtb2R1bGVOYW1lID0gbWFwLm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVNYXAgPSBtYWtlTW9kdWxlTWFwKG1vZHVsZU5hbWUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzSW50ZXJhY3RpdmUgPSB1c2VJbnRlcmFjdGl2ZTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vQXMgb2YgMi4xLjAsIHN1cHBvcnQganVzdCBwYXNzaW5nIHRoZSB0ZXh0LCB0byByZWluZm9yY2UKICAgICAgICAgICAgICAgICAgICAgICAgLy9mcm9tVGV4dCBvbmx5IGJlaW5nIGNhbGxlZCBvbmNlIHBlciByZXNvdXJjZS4gU3RpbGwKICAgICAgICAgICAgICAgICAgICAgICAgLy9zdXBwb3J0IG9sZCBzdHlsZSBvZiBwYXNzaW5nIG1vZHVsZU5hbWUgYnV0IGRpc2NhcmQKICAgICAgICAgICAgICAgICAgICAgICAgLy90aGF0IG1vZHVsZU5hbWUgaW4gZmF2b3Igb2YgdGhlIGludGVybmFsIHJlZi4KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleHRBbHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0QWx0OwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvL1R1cm4gb2ZmIGludGVyYWN0aXZlIHNjcmlwdCBtYXRjaGluZyBmb3IgSUUgZm9yIGFueSBkZWZpbmUKICAgICAgICAgICAgICAgICAgICAgICAgLy9jYWxscyBpbiB0aGUgdGV4dCwgdGhlbiB0dXJuIGl0IGJhY2sgb24gYXQgdGhlIGVuZC4KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc0ludGVyYWN0aXZlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VJbnRlcmFjdGl2ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvL1ByaW1lIHRoZSBzeXN0ZW0gYnkgY3JlYXRpbmcgYSBtb2R1bGUgaW5zdGFuY2UgZm9yCiAgICAgICAgICAgICAgICAgICAgICAgIC8vaXQuCiAgICAgICAgICAgICAgICAgICAgICAgIGdldE1vZHVsZShtb2R1bGVNYXApOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9UcmFuc2ZlciBhbnkgY29uZmlnIHRvIHRoaXMgb3RoZXIgbW9kdWxlLgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzUHJvcChjb25maWcuY29uZmlnLCBpZCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5jb25maWdbbW9kdWxlTmFtZV0gPSBjb25maWcuY29uZmlnW2lkXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcS5leGVjKHRleHQpOwogICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ2Zyb210ZXh0ZXZhbCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmcm9tVGV4dCBldmFsIGZvciAnICsgaWQgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgZmFpbGVkOiAnICsgZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXSkpOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzSW50ZXJhY3RpdmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUludGVyYWN0aXZlID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy9NYXJrIHRoaXMgYXMgYSBkZXBlbmRlbmN5IGZvciB0aGUgcGx1Z2luCiAgICAgICAgICAgICAgICAgICAgICAgIC8vcmVzb3VyY2UKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXBNYXBzLnB1c2gobW9kdWxlTWFwKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vU3VwcG9ydCBhbm9ueW1vdXMgbW9kdWxlcy4KICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5jb21wbGV0ZUxvYWQobW9kdWxlTmFtZSk7CgogICAgICAgICAgICAgICAgICAgICAgICAvL0JpbmQgdGhlIHZhbHVlIG9mIHRoYXQgbW9kdWxlIHRvIHRoZSB2YWx1ZSBmb3IgdGhpcwogICAgICAgICAgICAgICAgICAgICAgICAvL3Jlc291cmNlIElELgogICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFJlcXVpcmUoW21vZHVsZU5hbWVdLCBsb2FkKTsKICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgLy9Vc2UgcGFyZW50TmFtZSBoZXJlIHNpbmNlIHRoZSBwbHVnaW4ncyBuYW1lIGlzIG5vdCByZWxpYWJsZSwKICAgICAgICAgICAgICAgICAgICAvL2NvdWxkIGJlIHNvbWUgd2VpcmQgc3RyaW5nIHdpdGggbm8gcGF0aCB0aGF0IGFjdHVhbGx5IHdhbnRzIHRvCiAgICAgICAgICAgICAgICAgICAgLy9yZWZlcmVuY2UgdGhlIHBhcmVudE5hbWUncyBwYXRoLgogICAgICAgICAgICAgICAgICAgIHBsdWdpbi5sb2FkKG1hcC5uYW1lLCBsb2NhbFJlcXVpcmUsIGxvYWQsIGNvbmZpZyk7CiAgICAgICAgICAgICAgICB9KSk7CgogICAgICAgICAgICAgICAgY29udGV4dC5lbmFibGUocGx1Z2luTWFwLCB0aGlzKTsKICAgICAgICAgICAgICAgIHRoaXMucGx1Z2luTWFwc1twbHVnaW5NYXAuaWRdID0gcGx1Z2luTWFwOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgZW5hYmxlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBlbmFibGVkUmVnaXN0cnlbdGhpcy5tYXAuaWRdID0gdGhpczsKICAgICAgICAgICAgICAgIHRoaXMuZW5hYmxlZCA9IHRydWU7CgogICAgICAgICAgICAgICAgLy9TZXQgZmxhZyBtZW50aW9uaW5nIHRoYXQgdGhlIG1vZHVsZSBpcyBlbmFibGluZywKICAgICAgICAgICAgICAgIC8vc28gdGhhdCBpbW1lZGlhdGUgY2FsbHMgdG8gdGhlIGRlZmluZWQgY2FsbGJhY2tzCiAgICAgICAgICAgICAgICAvL2ZvciBkZXBlbmRlbmNpZXMgZG8gbm90IHRyaWdnZXIgaW5hZHZlcnRlbnQgbG9hZAogICAgICAgICAgICAgICAgLy93aXRoIHRoZSBkZXBDb3VudCBzdGlsbCBiZWluZyB6ZXJvLgogICAgICAgICAgICAgICAgdGhpcy5lbmFibGluZyA9IHRydWU7CgogICAgICAgICAgICAgICAgLy9FbmFibGUgZWFjaCBkZXBlbmRlbmN5CiAgICAgICAgICAgICAgICBlYWNoKHRoaXMuZGVwTWFwcywgYmluZCh0aGlzLCBmdW5jdGlvbiAoZGVwTWFwLCBpKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlkLCBtb2QsIGhhbmRsZXI7CgogICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGVwTWFwID09PSAnc3RyaW5nJykgewogICAgICAgICAgICAgICAgICAgICAgICAvL0RlcGVuZGVuY3kgbmVlZHMgdG8gYmUgY29udmVydGVkIHRvIGEgZGVwTWFwCiAgICAgICAgICAgICAgICAgICAgICAgIC8vYW5kIHdpcmVkIHVwIHRvIHRoaXMgbW9kdWxlLgogICAgICAgICAgICAgICAgICAgICAgICBkZXBNYXAgPSBtYWtlTW9kdWxlTWFwKGRlcE1hcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5tYXAuaXNEZWZpbmUgPyB0aGlzLm1hcCA6IHRoaXMubWFwLnBhcmVudE1hcCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMuc2tpcE1hcCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVwTWFwc1tpXSA9IGRlcE1hcDsKCiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXIgPSBnZXRPd24oaGFuZGxlcnMsIGRlcE1hcC5pZCk7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFuZGxlcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXBFeHBvcnRzW2ldID0gaGFuZGxlcih0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXBDb3VudCArPSAxOwoKICAgICAgICAgICAgICAgICAgICAgICAgb24oZGVwTWFwLCAnZGVmaW5lZCcsIGJpbmQodGhpcywgZnVuY3Rpb24gKGRlcEV4cG9ydHMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnVuZGVmZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmluZURlcChpLCBkZXBFeHBvcnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2soKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSkpOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZXJyYmFjaykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgb24oZGVwTWFwLCAnZXJyb3InLCBiaW5kKHRoaXMsIHRoaXMuZXJyYmFjaykpOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZXZlbnRzLmVycm9yKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBkaXJlY3QgZXJyYmFjayBvbiB0aGlzIG1vZHVsZSwgYnV0IHNvbWV0aGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxzZSBpcyBsaXN0ZW5pbmcgZm9yIGVycm9ycywgc28gYmUgc3VyZSB0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJvcGFnYXRlIHRoZSBlcnJvciBjb3JyZWN0bHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbihkZXBNYXAsICdlcnJvcicsIGJpbmQodGhpcywgZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0KCdlcnJvcicsIGVycik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlkID0gZGVwTWFwLmlkOwogICAgICAgICAgICAgICAgICAgIG1vZCA9IHJlZ2lzdHJ5W2lkXTsKCiAgICAgICAgICAgICAgICAgICAgLy9Ta2lwIHNwZWNpYWwgbW9kdWxlcyBsaWtlICdyZXF1aXJlJywgJ2V4cG9ydHMnLCAnbW9kdWxlJwogICAgICAgICAgICAgICAgICAgIC8vQWxzbywgZG9uJ3QgY2FsbCBlbmFibGUgaWYgaXQgaXMgYWxyZWFkeSBlbmFibGVkLAogICAgICAgICAgICAgICAgICAgIC8vaW1wb3J0YW50IGluIGNpcmN1bGFyIGRlcGVuZGVuY3kgY2FzZXMuCiAgICAgICAgICAgICAgICAgICAgaWYgKCFoYXNQcm9wKGhhbmRsZXJzLCBpZCkgJiYgbW9kICYmICFtb2QuZW5hYmxlZCkgewogICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmVuYWJsZShkZXBNYXAsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pKTsKCiAgICAgICAgICAgICAgICAvL0VuYWJsZSBlYWNoIHBsdWdpbiB0aGF0IGlzIHVzZWQgaW4KICAgICAgICAgICAgICAgIC8vYSBkZXBlbmRlbmN5CiAgICAgICAgICAgICAgICBlYWNoUHJvcCh0aGlzLnBsdWdpbk1hcHMsIGJpbmQodGhpcywgZnVuY3Rpb24gKHBsdWdpbk1hcCkgewogICAgICAgICAgICAgICAgICAgIHZhciBtb2QgPSBnZXRPd24ocmVnaXN0cnksIHBsdWdpbk1hcC5pZCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZCAmJiAhbW9kLmVuYWJsZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5lbmFibGUocGx1Z2luTWFwLCB0aGlzKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KSk7CgogICAgICAgICAgICAgICAgdGhpcy5lbmFibGluZyA9IGZhbHNlOwoKICAgICAgICAgICAgICAgIHRoaXMuY2hlY2soKTsKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIG9uOiBmdW5jdGlvbiAobmFtZSwgY2IpIHsKICAgICAgICAgICAgICAgIHZhciBjYnMgPSB0aGlzLmV2ZW50c1tuYW1lXTsKICAgICAgICAgICAgICAgIGlmICghY2JzKSB7CiAgICAgICAgICAgICAgICAgICAgY2JzID0gdGhpcy5ldmVudHNbbmFtZV0gPSBbXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNicy5wdXNoKGNiKTsKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIGVtaXQ6IGZ1bmN0aW9uIChuYW1lLCBldnQpIHsKICAgICAgICAgICAgICAgIGVhY2godGhpcy5ldmVudHNbbmFtZV0sIGZ1bmN0aW9uIChjYikgewogICAgICAgICAgICAgICAgICAgIGNiKGV2dCk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGlmIChuYW1lID09PSAnZXJyb3InKSB7CiAgICAgICAgICAgICAgICAgICAgLy9Ob3cgdGhhdCB0aGUgZXJyb3IgaGFuZGxlciB3YXMgdHJpZ2dlcmVkLCByZW1vdmUKICAgICAgICAgICAgICAgICAgICAvL3RoZSBsaXN0ZW5lcnMsIHNpbmNlIHRoaXMgYnJva2VuIE1vZHVsZSBpbnN0YW5jZQogICAgICAgICAgICAgICAgICAgIC8vY2FuIHN0YXkgYXJvdW5kIGZvciBhIHdoaWxlIGluIHRoZSByZWdpc3RyeS4KICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5ldmVudHNbbmFtZV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBmdW5jdGlvbiBjYWxsR2V0TW9kdWxlKGFyZ3MpIHsKICAgICAgICAgICAgLy9Ta2lwIG1vZHVsZXMgYWxyZWFkeSBkZWZpbmVkLgogICAgICAgICAgICBpZiAoIWhhc1Byb3AoZGVmaW5lZCwgYXJnc1swXSkpIHsKICAgICAgICAgICAgICAgIGdldE1vZHVsZShtYWtlTW9kdWxlTWFwKGFyZ3NbMF0sIG51bGwsIHRydWUpKS5pbml0KGFyZ3NbMV0sIGFyZ3NbMl0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiByZW1vdmVMaXN0ZW5lcihub2RlLCBmdW5jLCBuYW1lLCBpZU5hbWUpIHsKICAgICAgICAgICAgLy9GYXZvciBkZXRhY2hFdmVudCBiZWNhdXNlIG9mIElFOQogICAgICAgICAgICAvL2lzc3VlLCBzZWUgYXR0YWNoRXZlbnQvYWRkRXZlbnRMaXN0ZW5lciBjb21tZW50IGVsc2V3aGVyZQogICAgICAgICAgICAvL2luIHRoaXMgZmlsZS4KICAgICAgICAgICAgaWYgKG5vZGUuZGV0YWNoRXZlbnQgJiYgIWlzT3BlcmEpIHsKICAgICAgICAgICAgICAgIC8vUHJvYmFibHkgSUUuIElmIG5vdCBpdCB3aWxsIHRocm93IGFuIGVycm9yLCB3aGljaCB3aWxsIGJlCiAgICAgICAgICAgICAgICAvL3VzZWZ1bCB0byBrbm93LgogICAgICAgICAgICAgICAgaWYgKGllTmFtZSkgewogICAgICAgICAgICAgICAgICAgIG5vZGUuZGV0YWNoRXZlbnQoaWVOYW1lLCBmdW5jKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jLCBmYWxzZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIEdpdmVuIGFuIGV2ZW50IGZyb20gYSBzY3JpcHQgbm9kZSwgZ2V0IHRoZSByZXF1aXJlanMgaW5mbyBmcm9tIGl0LAogICAgICAgICAqIGFuZCB0aGVuIHJlbW92ZXMgdGhlIGV2ZW50IGxpc3RlbmVycyBvbiB0aGUgbm9kZS4KICAgICAgICAgKiBAcGFyYW0ge0V2ZW50fSBldnQKICAgICAgICAgKiBAcmV0dXJucyB7T2JqZWN0fQogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIGdldFNjcmlwdERhdGEoZXZ0KSB7CiAgICAgICAgICAgIC8vVXNpbmcgY3VycmVudFRhcmdldCBpbnN0ZWFkIG9mIHRhcmdldCBmb3IgRmlyZWZveCAyLjAncyBzYWtlLiBOb3QKICAgICAgICAgICAgLy9hbGwgb2xkIGJyb3dzZXJzIHdpbGwgYmUgc3VwcG9ydGVkLCBidXQgdGhpcyBvbmUgd2FzIGVhc3kgZW5vdWdoCiAgICAgICAgICAgIC8vdG8gc3VwcG9ydCBhbmQgc3RpbGwgbWFrZXMgc2Vuc2UuCiAgICAgICAgICAgIHZhciBub2RlID0gZXZ0LmN1cnJlbnRUYXJnZXQgfHwgZXZ0LnNyY0VsZW1lbnQ7CgogICAgICAgICAgICAvL1JlbW92ZSB0aGUgbGlzdGVuZXJzIG9uY2UgaGVyZS4KICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIobm9kZSwgY29udGV4dC5vblNjcmlwdExvYWQsICdsb2FkJywgJ29ucmVhZHlzdGF0ZWNoYW5nZScpOwogICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihub2RlLCBjb250ZXh0Lm9uU2NyaXB0RXJyb3IsICdlcnJvcicpOwoKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIG5vZGU6IG5vZGUsCiAgICAgICAgICAgICAgICBpZDogbm9kZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1yZXF1aXJlbW9kdWxlJykKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGludGFrZURlZmluZXMoKSB7CiAgICAgICAgICAgIHZhciBhcmdzOwoKICAgICAgICAgICAgLy9BbnkgZGVmaW5lZCBtb2R1bGVzIGluIHRoZSBnbG9iYWwgcXVldWUsIGludGFrZSB0aGVtIG5vdy4KICAgICAgICAgICAgdGFrZUdsb2JhbFF1ZXVlKCk7CgogICAgICAgICAgICAvL01ha2Ugc3VyZSBhbnkgcmVtYWluaW5nIGRlZlF1ZXVlIGl0ZW1zIGdldCBwcm9wZXJseSBwcm9jZXNzZWQuCiAgICAgICAgICAgIHdoaWxlIChkZWZRdWV1ZS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIGFyZ3MgPSBkZWZRdWV1ZS5zaGlmdCgpOwogICAgICAgICAgICAgICAgaWYgKGFyZ3NbMF0gPT09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ21pc21hdGNoJywgJ01pc21hdGNoZWQgYW5vbnltb3VzIGRlZmluZSgpIG1vZHVsZTogJyArCiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbYXJncy5sZW5ndGggLSAxXSkpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvL2FyZ3MgYXJlIGlkLCBkZXBzLCBmYWN0b3J5LiBTaG91bGQgYmUgbm9ybWFsaXplZCBieSB0aGUKICAgICAgICAgICAgICAgICAgICAvL2RlZmluZSgpIGZ1bmN0aW9uLgogICAgICAgICAgICAgICAgICAgIGNhbGxHZXRNb2R1bGUoYXJncyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGV4dC5kZWZRdWV1ZU1hcCA9IHt9OwogICAgICAgIH0KCiAgICAgICAgY29udGV4dCA9IHsKICAgICAgICAgICAgY29uZmlnOiBjb25maWcsCiAgICAgICAgICAgIGNvbnRleHROYW1lOiBjb250ZXh0TmFtZSwKICAgICAgICAgICAgcmVnaXN0cnk6IHJlZ2lzdHJ5LAogICAgICAgICAgICBkZWZpbmVkOiBkZWZpbmVkLAogICAgICAgICAgICB1cmxGZXRjaGVkOiB1cmxGZXRjaGVkLAogICAgICAgICAgICBkZWZRdWV1ZTogZGVmUXVldWUsCiAgICAgICAgICAgIGRlZlF1ZXVlTWFwOiB7fSwKICAgICAgICAgICAgTW9kdWxlOiBNb2R1bGUsCiAgICAgICAgICAgIG1ha2VNb2R1bGVNYXA6IG1ha2VNb2R1bGVNYXAsCiAgICAgICAgICAgIG5leHRUaWNrOiByZXEubmV4dFRpY2ssCiAgICAgICAgICAgIG9uRXJyb3I6IG9uRXJyb3IsCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogU2V0IGEgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNvbnRleHQuCiAgICAgICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBjZmcgY29uZmlnIG9iamVjdCB0byBpbnRlZ3JhdGUuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBjb25maWd1cmU6IGZ1bmN0aW9uIChjZmcpIHsKICAgICAgICAgICAgICAgIC8vTWFrZSBzdXJlIHRoZSBiYXNlVXJsIGVuZHMgaW4gYSBzbGFzaC4KICAgICAgICAgICAgICAgIGlmIChjZmcuYmFzZVVybCkgewogICAgICAgICAgICAgICAgICAgIGlmIChjZmcuYmFzZVVybC5jaGFyQXQoY2ZnLmJhc2VVcmwubGVuZ3RoIC0gMSkgIT09ICcvJykgewogICAgICAgICAgICAgICAgICAgICAgICBjZmcuYmFzZVVybCArPSAnLyc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgb2xkIHN0eWxlIHVybEFyZ3Mgc3RyaW5nIHRvIGEgZnVuY3Rpb24uCiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNmZy51cmxBcmdzID09PSAnc3RyaW5nJykgewogICAgICAgICAgICAgICAgICAgIHZhciB1cmxBcmdzID0gY2ZnLnVybEFyZ3M7CiAgICAgICAgICAgICAgICAgICAgY2ZnLnVybEFyZ3MgPSBmdW5jdGlvbihpZCwgdXJsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAodXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJicpICsgdXJsQXJnczsKICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vU2F2ZSBvZmYgdGhlIHBhdGhzIHNpbmNlIHRoZXkgcmVxdWlyZSBzcGVjaWFsIHByb2Nlc3NpbmcsCiAgICAgICAgICAgICAgICAvL3RoZXkgYXJlIGFkZGl0aXZlLgogICAgICAgICAgICAgICAgdmFyIHNoaW0gPSBjb25maWcuc2hpbSwKICAgICAgICAgICAgICAgICAgICBvYmpzID0gewogICAgICAgICAgICAgICAgICAgICAgICBwYXRoczogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgYnVuZGxlczogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICBtYXA6IHRydWUKICAgICAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIGVhY2hQcm9wKGNmZywgZnVuY3Rpb24gKHZhbHVlLCBwcm9wKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKG9ianNbcHJvcF0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25maWdbcHJvcF0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ1twcm9wXSA9IHt9OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIG1peGluKGNvbmZpZ1twcm9wXSwgdmFsdWUsIHRydWUsIHRydWUpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ1twcm9wXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIC8vUmV2ZXJzZSBtYXAgdGhlIGJ1bmRsZXMKICAgICAgICAgICAgICAgIGlmIChjZmcuYnVuZGxlcykgewogICAgICAgICAgICAgICAgICAgIGVhY2hQcm9wKGNmZy5idW5kbGVzLCBmdW5jdGlvbiAodmFsdWUsIHByb3ApIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWFjaCh2YWx1ZSwgZnVuY3Rpb24gKHYpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ICE9PSBwcm9wKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVuZGxlc01hcFt2XSA9IHByb3A7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vTWVyZ2Ugc2hpbQogICAgICAgICAgICAgICAgaWYgKGNmZy5zaGltKSB7CiAgICAgICAgICAgICAgICAgICAgZWFjaFByb3AoY2ZnLnNoaW0sIGZ1bmN0aW9uICh2YWx1ZSwgaWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9Ob3JtYWxpemUgdGhlIHN0cnVjdHVyZQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHM6IHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgodmFsdWUuZXhwb3J0cyB8fCB2YWx1ZS5pbml0KSAmJiAhdmFsdWUuZXhwb3J0c0ZuKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5leHBvcnRzRm4gPSBjb250ZXh0Lm1ha2VTaGltRXhwb3J0cyh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgc2hpbVtpZF0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICBjb25maWcuc2hpbSA9IHNoaW07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy9BZGp1c3QgcGFja2FnZXMgaWYgbmVjZXNzYXJ5LgogICAgICAgICAgICAgICAgaWYgKGNmZy5wYWNrYWdlcykgewogICAgICAgICAgICAgICAgICAgIGVhY2goY2ZnLnBhY2thZ2VzLCBmdW5jdGlvbiAocGtnT2JqKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvbiwgbmFtZTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHBrZ09iaiA9IHR5cGVvZiBwa2dPYmogPT09ICdzdHJpbmcnID8ge25hbWU6IHBrZ09ian0gOiBwa2dPYmo7CgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gcGtnT2JqLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gcGtnT2JqLmxvY2F0aW9uOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYXRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5wYXRoc1tuYW1lXSA9IHBrZ09iai5sb2NhdGlvbjsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy9TYXZlIHBvaW50ZXIgdG8gbWFpbiBtb2R1bGUgSUQgZm9yIHBrZyBuYW1lLgogICAgICAgICAgICAgICAgICAgICAgICAvL1JlbW92ZSBsZWFkaW5nIGRvdCBpbiBtYWluLCBzbyBtYWluIHBhdGhzIGFyZSBub3JtYWxpemVkLAogICAgICAgICAgICAgICAgICAgICAgICAvL2FuZCByZW1vdmUgYW55IHRyYWlsaW5nIC5qcywgc2luY2UgZGlmZmVyZW50IHBhY2thZ2UKICAgICAgICAgICAgICAgICAgICAgICAgLy9lbnZzIGhhdmUgZGlmZmVyZW50IGNvbnZlbnRpb25zOiBzb21lIHVzZSBhIG1vZHVsZSBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAvL3NvbWUgdXNlIGEgZmlsZSBuYW1lLgogICAgICAgICAgICAgICAgICAgICAgICBjb25maWcucGtnc1tuYW1lXSA9IHBrZ09iai5uYW1lICsgJy8nICsgKHBrZ09iai5tYWluIHx8ICdtYWluJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKGN1cnJEaXJSZWdFeHAsICcnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoanNTdWZmaXhSZWdFeHAsICcnKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvL0lmIHRoZXJlIGFyZSBhbnkgIndhaXRpbmcgdG8gZXhlY3V0ZSIgbW9kdWxlcyBpbiB0aGUgcmVnaXN0cnksCiAgICAgICAgICAgICAgICAvL3VwZGF0ZSB0aGUgbWFwcyBmb3IgdGhlbSwgc2luY2UgdGhlaXIgaW5mbywgbGlrZSBVUkxzIHRvIGxvYWQsCiAgICAgICAgICAgICAgICAvL21heSBoYXZlIGNoYW5nZWQuCiAgICAgICAgICAgICAgICBlYWNoUHJvcChyZWdpc3RyeSwgZnVuY3Rpb24gKG1vZCwgaWQpIHsKICAgICAgICAgICAgICAgICAgICAvL0lmIG1vZHVsZSBhbHJlYWR5IGhhcyBpbml0IGNhbGxlZCwgc2luY2UgaXQgaXMgdG9vCiAgICAgICAgICAgICAgICAgICAgLy9sYXRlIHRvIG1vZGlmeSB0aGVtLCBhbmQgaWdub3JlIHVubm9ybWFsaXplZCBvbmVzCiAgICAgICAgICAgICAgICAgICAgLy9zaW5jZSB0aGV5IGFyZSB0cmFuc2llbnQuCiAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2QuaW5pdGVkICYmICFtb2QubWFwLnVubm9ybWFsaXplZCkgewogICAgICAgICAgICAgICAgICAgICAgICBtb2QubWFwID0gbWFrZU1vZHVsZU1hcChpZCwgbnVsbCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgLy9JZiBhIGRlcHMgYXJyYXkgb3IgYSBjb25maWcgY2FsbGJhY2sgaXMgc3BlY2lmaWVkLCB0aGVuIGNhbGwKICAgICAgICAgICAgICAgIC8vcmVxdWlyZSB3aXRoIHRob3NlIGFyZ3MuIFRoaXMgaXMgdXNlZnVsIHdoZW4gcmVxdWlyZSBpcyBkZWZpbmVkIGFzIGEKICAgICAgICAgICAgICAgIC8vY29uZmlnIG9iamVjdCBiZWZvcmUgcmVxdWlyZS5qcyBpcyBsb2FkZWQuCiAgICAgICAgICAgICAgICBpZiAoY2ZnLmRlcHMgfHwgY2ZnLmNhbGxiYWNrKSB7CiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXF1aXJlKGNmZy5kZXBzIHx8IFtdLCBjZmcuY2FsbGJhY2spOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgbWFrZVNoaW1FeHBvcnRzOiBmdW5jdGlvbiAodmFsdWUpIHsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGZuKCkgewogICAgICAgICAgICAgICAgICAgIHZhciByZXQ7CiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmluaXQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gdmFsdWUuaW5pdC5hcHBseShnbG9iYWwsIGFyZ3VtZW50cyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQgfHwgKHZhbHVlLmV4cG9ydHMgJiYgZ2V0R2xvYmFsKHZhbHVlLmV4cG9ydHMpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBmbjsKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIG1ha2VSZXF1aXJlOiBmdW5jdGlvbiAocmVsTWFwLCBvcHRpb25zKSB7CiAgICAgICAgICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKCiAgICAgICAgICAgICAgICBmdW5jdGlvbiBsb2NhbFJlcXVpcmUoZGVwcywgY2FsbGJhY2ssIGVycmJhY2spIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaWQsIG1hcCwgcmVxdWlyZU1vZDsKCiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuZW5hYmxlQnVpbGRDYWxsYmFjayAmJiBjYWxsYmFjayAmJiBpc0Z1bmN0aW9uKGNhbGxiYWNrKSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjay5fX3JlcXVpcmVKc0J1aWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGVwcyA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oY2FsbGJhY2spKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0ludmFsaWQgY2FsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9uRXJyb3IobWFrZUVycm9yKCdyZXF1aXJlYXJncycsICdJbnZhbGlkIHJlcXVpcmUgY2FsbCcpLCBlcnJiYWNrKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy9JZiByZXF1aXJlfGV4cG9ydHN8bW9kdWxlIGFyZSByZXF1ZXN0ZWQsIGdldCB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgLy92YWx1ZSBmb3IgdGhlbSBmcm9tIHRoZSBzcGVjaWFsIGhhbmRsZXJzLiBDYXZlYXQ6CiAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhpcyBvbmx5IHdvcmtzIHdoaWxlIG1vZHVsZSBpcyBiZWluZyBkZWZpbmVkLgogICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVsTWFwICYmIGhhc1Byb3AoaGFuZGxlcnMsIGRlcHMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlcnNbZGVwc10ocmVnaXN0cnlbcmVsTWFwLmlkXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vU3luY2hyb25vdXMgYWNjZXNzIHRvIG9uZSBtb2R1bGUuIElmIHJlcXVpcmUuZ2V0IGlzCiAgICAgICAgICAgICAgICAgICAgICAgIC8vYXZhaWxhYmxlIChhcyBpbiB0aGUgTm9kZSBhZGFwdGVyKSwgcHJlZmVyIHRoYXQuCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXEuZ2V0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVxLmdldChjb250ZXh0LCBkZXBzLCByZWxNYXAsIGxvY2FsUmVxdWlyZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vTm9ybWFsaXplIG1vZHVsZSBuYW1lLCBpZiBpdCBjb250YWlucyAuIG9yIC4uCiAgICAgICAgICAgICAgICAgICAgICAgIG1hcCA9IG1ha2VNb2R1bGVNYXAoZGVwcywgcmVsTWFwLCBmYWxzZSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gbWFwLmlkOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFoYXNQcm9wKGRlZmluZWQsIGlkKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9uRXJyb3IobWFrZUVycm9yKCdub3Rsb2FkZWQnLCAnTW9kdWxlIG5hbWUgIicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyIgaGFzIG5vdCBiZWVuIGxvYWRlZCB5ZXQgZm9yIGNvbnRleHQ6ICcgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dE5hbWUgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbE1hcCA/ICcnIDogJy4gVXNlIHJlcXVpcmUoW10pJykpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGVmaW5lZFtpZF07CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvL0dyYWIgZGVmaW5lcyB3YWl0aW5nIGluIHRoZSBnbG9iYWwgcXVldWUuCiAgICAgICAgICAgICAgICAgICAgaW50YWtlRGVmaW5lcygpOwoKICAgICAgICAgICAgICAgICAgICAvL01hcmsgYWxsIHRoZSBkZXBlbmRlbmNpZXMgYXMgbmVlZGluZyB0byBiZSBsb2FkZWQuCiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5uZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vU29tZSBkZWZpbmVzIGNvdWxkIGhhdmUgYmVlbiBhZGRlZCBzaW5jZSB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgLy9yZXF1aXJlIGNhbGwsIGNvbGxlY3QgdGhlbS4KICAgICAgICAgICAgICAgICAgICAgICAgaW50YWtlRGVmaW5lcygpOwoKICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZU1vZCA9IGdldE1vZHVsZShtYWtlTW9kdWxlTWFwKG51bGwsIHJlbE1hcCkpOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9TdG9yZSBpZiBtYXAgY29uZmlnIHNob3VsZCBiZSBhcHBsaWVkIHRvIHRoaXMgcmVxdWlyZQogICAgICAgICAgICAgICAgICAgICAgICAvL2NhbGwgZm9yIGRlcGVuZGVuY2llcy4KICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZU1vZC5za2lwTWFwID0gb3B0aW9ucy5za2lwTWFwOwoKICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZU1vZC5pbml0KGRlcHMsIGNhbGxiYWNrLCBlcnJiYWNrLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkOiB0cnVlCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tMb2FkZWQoKTsKICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsUmVxdWlyZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBtaXhpbihsb2NhbFJlcXVpcmUsIHsKICAgICAgICAgICAgICAgICAgICBpc0Jyb3dzZXI6IGlzQnJvd3NlciwKCiAgICAgICAgICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAgICAgICAgICogQ29udmVydHMgYSBtb2R1bGUgbmFtZSArIC5leHRlbnNpb24gaW50byBhbiBVUkwgcGF0aC4KICAgICAgICAgICAgICAgICAgICAgKiAqUmVxdWlyZXMqIHRoZSB1c2Ugb2YgYSBtb2R1bGUgbmFtZS4gSXQgZG9lcyBub3Qgc3VwcG9ydCB1c2luZwogICAgICAgICAgICAgICAgICAgICAqIHBsYWluIFVSTHMgbGlrZSBuYW1lVG9VcmwuCiAgICAgICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgICAgdG9Vcmw6IGZ1bmN0aW9uIChtb2R1bGVOYW1lUGx1c0V4dCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBtb2R1bGVOYW1lUGx1c0V4dC5sYXN0SW5kZXhPZignLicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudCA9IG1vZHVsZU5hbWVQbHVzRXh0LnNwbGl0KCcvJylbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JlbGF0aXZlID0gc2VnbWVudCA9PT0gJy4nIHx8IHNlZ21lbnQgPT09ICcuLic7CgogICAgICAgICAgICAgICAgICAgICAgICAvL0hhdmUgYSBmaWxlIGV4dGVuc2lvbiBhbGlhcywgYW5kIGl0IGlzIG5vdCB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgLy9kb3RzIGZyb20gYSByZWxhdGl2ZSBwYXRoLgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xICYmICghaXNSZWxhdGl2ZSB8fCBpbmRleCA+IDEpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHQgPSBtb2R1bGVOYW1lUGx1c0V4dC5zdWJzdHJpbmcoaW5kZXgsIG1vZHVsZU5hbWVQbHVzRXh0Lmxlbmd0aCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVOYW1lUGx1c0V4dCA9IG1vZHVsZU5hbWVQbHVzRXh0LnN1YnN0cmluZygwLCBpbmRleCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb250ZXh0Lm5hbWVUb1VybChub3JtYWxpemUobW9kdWxlTmFtZVBsdXNFeHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbE1hcCAmJiByZWxNYXAuaWQsIHRydWUpLCBleHQsICB0cnVlKTsKICAgICAgICAgICAgICAgICAgICB9LAoKICAgICAgICAgICAgICAgICAgICBkZWZpbmVkOiBmdW5jdGlvbiAoaWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhhc1Byb3AoZGVmaW5lZCwgbWFrZU1vZHVsZU1hcChpZCwgcmVsTWFwLCBmYWxzZSwgdHJ1ZSkuaWQpOwogICAgICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgICAgIHNwZWNpZmllZDogZnVuY3Rpb24gKGlkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gbWFrZU1vZHVsZU1hcChpZCwgcmVsTWFwLCBmYWxzZSwgdHJ1ZSkuaWQ7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBoYXNQcm9wKGRlZmluZWQsIGlkKSB8fCBoYXNQcm9wKHJlZ2lzdHJ5LCBpZCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgLy9Pbmx5IGFsbG93IHVuZGVmIG9uIHRvcCBsZXZlbCByZXF1aXJlIGNhbGxzCiAgICAgICAgICAgICAgICBpZiAoIXJlbE1hcCkgewogICAgICAgICAgICAgICAgICAgIGxvY2FsUmVxdWlyZS51bmRlZiA9IGZ1bmN0aW9uIChpZCkgewogICAgICAgICAgICAgICAgICAgICAgICAvL0JpbmQgYW55IHdhaXRpbmcgZGVmaW5lKCkgY2FsbHMgdG8gdGhpcyBjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAvL2ZpeCBmb3IgIzQwOAogICAgICAgICAgICAgICAgICAgICAgICB0YWtlR2xvYmFsUXVldWUoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtYXAgPSBtYWtlTW9kdWxlTWFwKGlkLCByZWxNYXAsIHRydWUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kID0gZ2V0T3duKHJlZ2lzdHJ5LCBpZCk7CgogICAgICAgICAgICAgICAgICAgICAgICBtb2QudW5kZWZlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZVNjcmlwdChpZCk7CgogICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgZGVmaW5lZFtpZF07CiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB1cmxGZXRjaGVkW21hcC51cmxdOwogICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdW5kZWZFdmVudHNbaWRdOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9DbGVhbiBxdWV1ZWQgZGVmaW5lcyB0b28uIEdvIGJhY2t3YXJkcwogICAgICAgICAgICAgICAgICAgICAgICAvL2luIGFycmF5IHNvIHRoYXQgdGhlIHNwbGljZXMgZG8gbm90CiAgICAgICAgICAgICAgICAgICAgICAgIC8vbWVzcyB1cCB0aGUgaXRlcmF0aW9uLgogICAgICAgICAgICAgICAgICAgICAgICBlYWNoUmV2ZXJzZShkZWZRdWV1ZSwgZnVuY3Rpb24oYXJncywgaSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFyZ3NbMF0gPT09IGlkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmUXVldWUuc3BsaWNlKGksIDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGNvbnRleHQuZGVmUXVldWVNYXBbaWRdOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1vZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9Ib2xkIG9uIHRvIGxpc3RlbmVycyBpbiBjYXNlIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9tb2R1bGUgd2lsbCBiZSBhdHRlbXB0ZWQgdG8gYmUgcmVsb2FkZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdXNpbmcgYSBkaWZmZXJlbnQgY29uZmlnLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1vZC5ldmVudHMuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmRXZlbnRzW2lkXSA9IG1vZC5ldmVudHM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW5SZWdpc3RyeShpZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbFJlcXVpcmU7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQ2FsbGVkIHRvIGVuYWJsZSBhIG1vZHVsZSBpZiBpdCBpcyBzdGlsbCBpbiB0aGUgcmVnaXN0cnkKICAgICAgICAgICAgICogYXdhaXRpbmcgZW5hYmxlbWVudC4gQSBzZWNvbmQgYXJnLCBwYXJlbnQsIHRoZSBwYXJlbnQgbW9kdWxlLAogICAgICAgICAgICAgKiBpcyBwYXNzZWQgaW4gZm9yIGNvbnRleHQsIHdoZW4gdGhpcyBtZXRob2QgaXMgb3ZlcnJpZGRlbiBieQogICAgICAgICAgICAgKiB0aGUgb3B0aW1pemVyLiBOb3Qgc2hvd24gaGVyZSB0byBrZWVwIGNvZGUgY29tcGFjdC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGVuYWJsZTogZnVuY3Rpb24gKGRlcE1hcCkgewogICAgICAgICAgICAgICAgdmFyIG1vZCA9IGdldE93bihyZWdpc3RyeSwgZGVwTWFwLmlkKTsKICAgICAgICAgICAgICAgIGlmIChtb2QpIHsKICAgICAgICAgICAgICAgICAgICBnZXRNb2R1bGUoZGVwTWFwKS5lbmFibGUoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBJbnRlcm5hbCBtZXRob2QgdXNlZCBieSBlbnZpcm9ubWVudCBhZGFwdGVycyB0byBjb21wbGV0ZSBhIGxvYWQgZXZlbnQuCiAgICAgICAgICAgICAqIEEgbG9hZCBldmVudCBjb3VsZCBiZSBhIHNjcmlwdCBsb2FkIG9yIGp1c3QgYSBsb2FkIHBhc3MgZnJvbSBhIHN5bmNocm9ub3VzCiAgICAgICAgICAgICAqIGxvYWQgY2FsbC4KICAgICAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IG1vZHVsZU5hbWUgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZSB0byBwb3RlbnRpYWxseSBjb21wbGV0ZS4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGNvbXBsZXRlTG9hZDogZnVuY3Rpb24gKG1vZHVsZU5hbWUpIHsKICAgICAgICAgICAgICAgIHZhciBmb3VuZCwgYXJncywgbW9kLAogICAgICAgICAgICAgICAgICAgIHNoaW0gPSBnZXRPd24oY29uZmlnLnNoaW0sIG1vZHVsZU5hbWUpIHx8IHt9LAogICAgICAgICAgICAgICAgICAgIHNoRXhwb3J0cyA9IHNoaW0uZXhwb3J0czsKCiAgICAgICAgICAgICAgICB0YWtlR2xvYmFsUXVldWUoKTsKCiAgICAgICAgICAgICAgICB3aGlsZSAoZGVmUXVldWUubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgYXJncyA9IGRlZlF1ZXVlLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGFyZ3NbMF0gPT09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1swXSA9IG1vZHVsZU5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vSWYgYWxyZWFkeSBmb3VuZCBhbiBhbm9ueW1vdXMgbW9kdWxlIGFuZCBib3VuZCBpdAogICAgICAgICAgICAgICAgICAgICAgICAvL3RvIHRoaXMgbmFtZSwgdGhlbiB0aGlzIGlzIHNvbWUgb3RoZXIgYW5vbiBtb2R1bGUKICAgICAgICAgICAgICAgICAgICAgICAgLy93YWl0aW5nIGZvciBpdHMgY29tcGxldGVMb2FkIHRvIGZpcmUuCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3VuZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnc1swXSA9PT0gbW9kdWxlTmFtZSkgewogICAgICAgICAgICAgICAgICAgICAgICAvL0ZvdW5kIG1hdGNoaW5nIGRlZmluZSBjYWxsIGZvciB0aGlzIHNjcmlwdCEKICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgY2FsbEdldE1vZHVsZShhcmdzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNvbnRleHQuZGVmUXVldWVNYXAgPSB7fTsKCiAgICAgICAgICAgICAgICAvL0RvIHRoaXMgYWZ0ZXIgdGhlIGN5Y2xlIG9mIGNhbGxHZXRNb2R1bGUgaW4gY2FzZSB0aGUgcmVzdWx0CiAgICAgICAgICAgICAgICAvL29mIHRob3NlIGNhbGxzL2luaXQgY2FsbHMgY2hhbmdlcyB0aGUgcmVnaXN0cnkuCiAgICAgICAgICAgICAgICBtb2QgPSBnZXRPd24ocmVnaXN0cnksIG1vZHVsZU5hbWUpOwoKICAgICAgICAgICAgICAgIGlmICghZm91bmQgJiYgIWhhc1Byb3AoZGVmaW5lZCwgbW9kdWxlTmFtZSkgJiYgbW9kICYmICFtb2QuaW5pdGVkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5lbmZvcmNlRGVmaW5lICYmICghc2hFeHBvcnRzIHx8ICFnZXRHbG9iYWwoc2hFeHBvcnRzKSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1BhdGhGYWxsYmFjayhtb2R1bGVOYW1lKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9uRXJyb3IobWFrZUVycm9yKCdub2RlZmluZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdObyBkZWZpbmUgY2FsbCBmb3IgJyArIG1vZHVsZU5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2R1bGVOYW1lXSkpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9BIHNjcmlwdCB0aGF0IGRvZXMgbm90IGNhbGwgZGVmaW5lKCksIHNvIGp1c3Qgc2ltdWxhdGUKICAgICAgICAgICAgICAgICAgICAgICAgLy90aGUgY2FsbCBmb3IgaXQuCiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxHZXRNb2R1bGUoW21vZHVsZU5hbWUsIChzaGltLmRlcHMgfHwgW10pLCBzaGltLmV4cG9ydHNGbl0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBjaGVja0xvYWRlZCgpOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIENvbnZlcnRzIGEgbW9kdWxlIG5hbWUgdG8gYSBmaWxlIHBhdGguIFN1cHBvcnRzIGNhc2VzIHdoZXJlCiAgICAgICAgICAgICAqIG1vZHVsZU5hbWUgbWF5IGFjdHVhbGx5IGJlIGp1c3QgYW4gVVJMLgogICAgICAgICAgICAgKiBOb3RlIHRoYXQgaXQgKipkb2VzIG5vdCoqIGNhbGwgbm9ybWFsaXplIG9uIHRoZSBtb2R1bGVOYW1lLAogICAgICAgICAgICAgKiBpdCBpcyBhc3N1bWVkIHRvIGhhdmUgYWxyZWFkeSBiZWVuIG5vcm1hbGl6ZWQuIFRoaXMgaXMgYW4KICAgICAgICAgICAgICogaW50ZXJuYWwgQVBJLCBub3QgYSBwdWJsaWMgb25lLiBVc2UgdG9VcmwgZm9yIHRoZSBwdWJsaWMgQVBJLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgbmFtZVRvVXJsOiBmdW5jdGlvbiAobW9kdWxlTmFtZSwgZXh0LCBza2lwRXh0KSB7CiAgICAgICAgICAgICAgICB2YXIgcGF0aHMsIHN5bXMsIGksIHBhcmVudE1vZHVsZSwgdXJsLAogICAgICAgICAgICAgICAgICAgIHBhcmVudFBhdGgsIGJ1bmRsZUlkLAogICAgICAgICAgICAgICAgICAgIHBrZ01haW4gPSBnZXRPd24oY29uZmlnLnBrZ3MsIG1vZHVsZU5hbWUpOwoKICAgICAgICAgICAgICAgIGlmIChwa2dNYWluKSB7CiAgICAgICAgICAgICAgICAgICAgbW9kdWxlTmFtZSA9IHBrZ01haW47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgYnVuZGxlSWQgPSBnZXRPd24oYnVuZGxlc01hcCwgbW9kdWxlTmFtZSk7CgogICAgICAgICAgICAgICAgaWYgKGJ1bmRsZUlkKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQubmFtZVRvVXJsKGJ1bmRsZUlkLCBleHQsIHNraXBFeHQpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vSWYgYSBjb2xvbiBpcyBpbiB0aGUgVVJMLCBpdCBpbmRpY2F0ZXMgYSBwcm90b2NvbCBpcyB1c2VkIGFuZCBpdCBpcyBqdXN0CiAgICAgICAgICAgICAgICAvL2FuIFVSTCB0byBhIGZpbGUsIG9yIGlmIGl0IHN0YXJ0cyB3aXRoIGEgc2xhc2gsIGNvbnRhaW5zIGEgcXVlcnkgYXJnIChpLmUuID8pCiAgICAgICAgICAgICAgICAvL29yIGVuZHMgd2l0aCAuanMsIHRoZW4gYXNzdW1lIHRoZSB1c2VyIG1lYW50IHRvIHVzZSBhbiB1cmwgYW5kIG5vdCBhIG1vZHVsZSBpZC4KICAgICAgICAgICAgICAgIC8vVGhlIHNsYXNoIGlzIGltcG9ydGFudCBmb3IgcHJvdG9jb2wtbGVzcyBVUkxzIGFzIHdlbGwgYXMgZnVsbCBwYXRocy4KICAgICAgICAgICAgICAgIGlmIChyZXEuanNFeHRSZWdFeHAudGVzdChtb2R1bGVOYW1lKSkgewogICAgICAgICAgICAgICAgICAgIC8vSnVzdCBhIHBsYWluIHBhdGgsIG5vdCBtb2R1bGUgbmFtZSBsb29rdXAsIHNvIGp1c3QgcmV0dXJuIGl0LgogICAgICAgICAgICAgICAgICAgIC8vQWRkIGV4dGVuc2lvbiBpZiBpdCBpcyBpbmNsdWRlZC4gVGhpcyBpcyBhIGJpdCB3b25reSwgb25seSBub24tLmpzIHRoaW5ncyBwYXNzCiAgICAgICAgICAgICAgICAgICAgLy9hbiBleHRlbnNpb24sIHRoaXMgbWV0aG9kIHByb2JhYmx5IG5lZWRzIHRvIGJlIHJld29ya2VkLgogICAgICAgICAgICAgICAgICAgIHVybCA9IG1vZHVsZU5hbWUgKyAoZXh0IHx8ICcnKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgLy9BIG1vZHVsZSB0aGF0IG5lZWRzIHRvIGJlIGNvbnZlcnRlZCB0byBhIHBhdGguCiAgICAgICAgICAgICAgICAgICAgcGF0aHMgPSBjb25maWcucGF0aHM7CgogICAgICAgICAgICAgICAgICAgIHN5bXMgPSBtb2R1bGVOYW1lLnNwbGl0KCcvJyk7CiAgICAgICAgICAgICAgICAgICAgLy9Gb3IgZWFjaCBtb2R1bGUgbmFtZSBzZWdtZW50LCBzZWUgaWYgdGhlcmUgaXMgYSBwYXRoCiAgICAgICAgICAgICAgICAgICAgLy9yZWdpc3RlcmVkIGZvciBpdC4gU3RhcnQgd2l0aCBtb3N0IHNwZWNpZmljIG5hbWUKICAgICAgICAgICAgICAgICAgICAvL2FuZCB3b3JrIHVwIGZyb20gaXQuCiAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gc3ltcy5sZW5ndGg7IGkgPiAwOyBpIC09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50TW9kdWxlID0gc3ltcy5zbGljZSgwLCBpKS5qb2luKCcvJyk7CgogICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRQYXRoID0gZ2V0T3duKHBhdGhzLCBwYXJlbnRNb2R1bGUpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50UGF0aCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9JZiBhbiBhcnJheSwgaXQgbWVhbnMgdGhlcmUgYXJlIGEgZmV3IGNob2ljZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0Nob29zZSB0aGUgb25lIHRoYXQgaXMgZGVzaXJlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzQXJyYXkocGFyZW50UGF0aCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRQYXRoID0gcGFyZW50UGF0aFswXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bXMuc3BsaWNlKDAsIGksIHBhcmVudFBhdGgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIC8vSm9pbiB0aGUgcGF0aCBwYXJ0cyB0b2dldGhlciwgdGhlbiBmaWd1cmUgb3V0IGlmIGJhc2VVcmwgaXMgbmVlZGVkLgogICAgICAgICAgICAgICAgICAgIHVybCA9IHN5bXMuam9pbignLycpOwogICAgICAgICAgICAgICAgICAgIHVybCArPSAoZXh0IHx8ICgvXmRhdGFcOnxeYmxvYlw6fFw/Ly50ZXN0KHVybCkgfHwgc2tpcEV4dCA/ICcnIDogJy5qcycpKTsKICAgICAgICAgICAgICAgICAgICB1cmwgPSAodXJsLmNoYXJBdCgwKSA9PT0gJy8nIHx8IHVybC5tYXRjaCgvXltcd1wrXC5cLV0rOi8pID8gJycgOiBjb25maWcuYmFzZVVybCkgKyB1cmw7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy51cmxBcmdzICYmICEvXmJsb2JcOi8udGVzdCh1cmwpID8KICAgICAgICAgICAgICAgICAgICAgICB1cmwgKyBjb25maWcudXJsQXJncyhtb2R1bGVOYW1lLCB1cmwpIDogdXJsOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgLy9EZWxlZ2F0ZXMgdG8gcmVxLmxvYWQuIEJyb2tlbiBvdXQgYXMgYSBzZXBhcmF0ZSBmdW5jdGlvbiB0bwogICAgICAgICAgICAvL2FsbG93IG92ZXJyaWRpbmcgaW4gdGhlIG9wdGltaXplci4KICAgICAgICAgICAgbG9hZDogZnVuY3Rpb24gKGlkLCB1cmwpIHsKICAgICAgICAgICAgICAgIHJlcS5sb2FkKGNvbnRleHQsIGlkLCB1cmwpOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEV4ZWN1dGVzIGEgbW9kdWxlIGNhbGxiYWNrIGZ1bmN0aW9uLiBCcm9rZW4gb3V0IGFzIGEgc2VwYXJhdGUgZnVuY3Rpb24KICAgICAgICAgICAgICogc29sZWx5IHRvIGFsbG93IHRoZSBidWlsZCBzeXN0ZW0gdG8gc2VxdWVuY2UgdGhlIGZpbGVzIGluIHRoZSBidWlsdAogICAgICAgICAgICAgKiBsYXllciBpbiB0aGUgcmlnaHQgc2VxdWVuY2UuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIEBwcml2YXRlCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBleGVjQ2I6IGZ1bmN0aW9uIChuYW1lLCBjYWxsYmFjaywgYXJncywgZXhwb3J0cykgewogICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrLmFwcGx5KGV4cG9ydHMsIGFyZ3MpOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIGNhbGxiYWNrIGZvciBzY3JpcHQgbG9hZHMsIHVzZWQgdG8gY2hlY2sgc3RhdHVzIG9mIGxvYWRpbmcuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIEBwYXJhbSB7RXZlbnR9IGV2dCB0aGUgZXZlbnQgZnJvbSB0aGUgYnJvd3NlciBmb3IgdGhlIHNjcmlwdAogICAgICAgICAgICAgKiB0aGF0IHdhcyBsb2FkZWQuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBvblNjcmlwdExvYWQ6IGZ1bmN0aW9uIChldnQpIHsKICAgICAgICAgICAgICAgIC8vVXNpbmcgY3VycmVudFRhcmdldCBpbnN0ZWFkIG9mIHRhcmdldCBmb3IgRmlyZWZveCAyLjAncyBzYWtlLiBOb3QKICAgICAgICAgICAgICAgIC8vYWxsIG9sZCBicm93c2VycyB3aWxsIGJlIHN1cHBvcnRlZCwgYnV0IHRoaXMgb25lIHdhcyBlYXN5IGVub3VnaAogICAgICAgICAgICAgICAgLy90byBzdXBwb3J0IGFuZCBzdGlsbCBtYWtlcyBzZW5zZS4KICAgICAgICAgICAgICAgIGlmIChldnQudHlwZSA9PT0gJ2xvYWQnIHx8CiAgICAgICAgICAgICAgICAgICAgICAgIChyZWFkeVJlZ0V4cC50ZXN0KChldnQuY3VycmVudFRhcmdldCB8fCBldnQuc3JjRWxlbWVudCkucmVhZHlTdGF0ZSkpKSB7CiAgICAgICAgICAgICAgICAgICAgLy9SZXNldCBpbnRlcmFjdGl2ZSBzY3JpcHQgc28gYSBzY3JpcHQgbm9kZSBpcyBub3QgaGVsZCBvbnRvIGZvcgogICAgICAgICAgICAgICAgICAgIC8vdG8gbG9uZy4KICAgICAgICAgICAgICAgICAgICBpbnRlcmFjdGl2ZVNjcmlwdCA9IG51bGw7CgogICAgICAgICAgICAgICAgICAgIC8vUHVsbCBvdXQgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZSBhbmQgdGhlIGNvbnRleHQuCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBnZXRTY3JpcHREYXRhKGV2dCk7CiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5jb21wbGV0ZUxvYWQoZGF0YS5pZCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQ2FsbGJhY2sgZm9yIHNjcmlwdCBlcnJvcnMuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBvblNjcmlwdEVycm9yOiBmdW5jdGlvbiAoZXZ0KSB7CiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGdldFNjcmlwdERhdGEoZXZ0KTsKICAgICAgICAgICAgICAgIGlmICghaGFzUGF0aEZhbGxiYWNrKGRhdGEuaWQpKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHBhcmVudHMgPSBbXTsKICAgICAgICAgICAgICAgICAgICBlYWNoUHJvcChyZWdpc3RyeSwgZnVuY3Rpb24odmFsdWUsIGtleSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5LmluZGV4T2YoJ19AcicpICE9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlYWNoKHZhbHVlLmRlcE1hcHMsIGZ1bmN0aW9uKGRlcE1hcCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXBNYXAuaWQgPT09IGRhdGEuaWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50cy5wdXNoKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9uRXJyb3IobWFrZUVycm9yKCdzY3JpcHRlcnJvcicsICdTY3JpcHQgZXJyb3IgZm9yICInICsgZGF0YS5pZCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRzLmxlbmd0aCA/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICciLCBuZWVkZWQgYnk6ICcgKyBwYXJlbnRzLmpvaW4oJywgJykgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIicpLCBldnQsIFtkYXRhLmlkXSkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgY29udGV4dC5yZXF1aXJlID0gY29udGV4dC5tYWtlUmVxdWlyZSgpOwogICAgICAgIHJldHVybiBjb250ZXh0OwogICAgfQoKICAgIC8qKgogICAgICogTWFpbiBlbnRyeSBwb2ludC4KICAgICAqCiAgICAgKiBJZiB0aGUgb25seSBhcmd1bWVudCB0byByZXF1aXJlIGlzIGEgc3RyaW5nLCB0aGVuIHRoZSBtb2R1bGUgdGhhdAogICAgICogaXMgcmVwcmVzZW50ZWQgYnkgdGhhdCBzdHJpbmcgaXMgZmV0Y2hlZCBmb3IgdGhlIGFwcHJvcHJpYXRlIGNvbnRleHQuCiAgICAgKgogICAgICogSWYgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGFuIGFycmF5LCB0aGVuIGl0IHdpbGwgYmUgdHJlYXRlZCBhcyBhbiBhcnJheQogICAgICogb2YgZGVwZW5kZW5jeSBzdHJpbmcgbmFtZXMgdG8gZmV0Y2guIEFuIG9wdGlvbmFsIGZ1bmN0aW9uIGNhbGxiYWNrIGNhbgogICAgICogYmUgc3BlY2lmaWVkIHRvIGV4ZWN1dGUgd2hlbiBhbGwgb2YgdGhvc2UgZGVwZW5kZW5jaWVzIGFyZSBhdmFpbGFibGUuCiAgICAgKgogICAgICogTWFrZSBhIGxvY2FsIHJlcSB2YXJpYWJsZSB0byBoZWxwIENhamEgY29tcGxpYW5jZSAoaXQgYXNzdW1lcyB0aGluZ3MKICAgICAqIG9uIGEgcmVxdWlyZSB0aGF0IGFyZSBub3Qgc3RhbmRhcmRpemVkKSwgYW5kIHRvIGdpdmUgYSBzaG9ydAogICAgICogbmFtZSBmb3IgbWluaWZpY2F0aW9uL2xvY2FsIHNjb3BlIHVzZS4KICAgICAqLwogICAgcmVxID0gcmVxdWlyZWpzID0gZnVuY3Rpb24gKGRlcHMsIGNhbGxiYWNrLCBlcnJiYWNrLCBvcHRpb25hbCkgewoKICAgICAgICAvL0ZpbmQgdGhlIHJpZ2h0IGNvbnRleHQsIHVzZSBkZWZhdWx0CiAgICAgICAgdmFyIGNvbnRleHQsIGNvbmZpZywKICAgICAgICAgICAgY29udGV4dE5hbWUgPSBkZWZDb250ZXh0TmFtZTsKCiAgICAgICAgLy8gRGV0ZXJtaW5lIGlmIGhhdmUgY29uZmlnIG9iamVjdCBpbiB0aGUgY2FsbC4KICAgICAgICBpZiAoIWlzQXJyYXkoZGVwcykgJiYgdHlwZW9mIGRlcHMgIT09ICdzdHJpbmcnKSB7CiAgICAgICAgICAgIC8vIGRlcHMgaXMgYSBjb25maWcgb2JqZWN0CiAgICAgICAgICAgIGNvbmZpZyA9IGRlcHM7CiAgICAgICAgICAgIGlmIChpc0FycmF5KGNhbGxiYWNrKSkgewogICAgICAgICAgICAgICAgLy8gQWRqdXN0IGFyZ3MgaWYgdGhlcmUgYXJlIGRlcGVuZGVuY2llcwogICAgICAgICAgICAgICAgZGVwcyA9IGNhbGxiYWNrOwogICAgICAgICAgICAgICAgY2FsbGJhY2sgPSBlcnJiYWNrOwogICAgICAgICAgICAgICAgZXJyYmFjayA9IG9wdGlvbmFsOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZGVwcyA9IFtdOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoY29uZmlnICYmIGNvbmZpZy5jb250ZXh0KSB7CiAgICAgICAgICAgIGNvbnRleHROYW1lID0gY29uZmlnLmNvbnRleHQ7CiAgICAgICAgfQoKICAgICAgICBjb250ZXh0ID0gZ2V0T3duKGNvbnRleHRzLCBjb250ZXh0TmFtZSk7CiAgICAgICAgaWYgKCFjb250ZXh0KSB7CiAgICAgICAgICAgIGNvbnRleHQgPSBjb250ZXh0c1tjb250ZXh0TmFtZV0gPSByZXEucy5uZXdDb250ZXh0KGNvbnRleHROYW1lKTsKICAgICAgICB9CgogICAgICAgIGlmIChjb25maWcpIHsKICAgICAgICAgICAgY29udGV4dC5jb25maWd1cmUoY29uZmlnKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBjb250ZXh0LnJlcXVpcmUoZGVwcywgY2FsbGJhY2ssIGVycmJhY2spOwogICAgfTsKCiAgICAvKioKICAgICAqIFN1cHBvcnQgcmVxdWlyZS5jb25maWcoKSB0byBtYWtlIGl0IGVhc2llciB0byBjb29wZXJhdGUgd2l0aCBvdGhlcgogICAgICogQU1EIGxvYWRlcnMgb24gZ2xvYmFsbHkgYWdyZWVkIG5hbWVzLgogICAgICovCiAgICByZXEuY29uZmlnID0gZnVuY3Rpb24gKGNvbmZpZykgewogICAgICAgIHJldHVybiByZXEoY29uZmlnKTsKICAgIH07CgogICAgLyoqCiAgICAgKiBFeGVjdXRlIHNvbWV0aGluZyBhZnRlciB0aGUgY3VycmVudCB0aWNrCiAgICAgKiBvZiB0aGUgZXZlbnQgbG9vcC4gT3ZlcnJpZGUgZm9yIG90aGVyIGVudnMKICAgICAqIHRoYXQgaGF2ZSBhIGJldHRlciBzb2x1dGlvbiB0aGFuIHNldFRpbWVvdXQuCiAgICAgKiBAcGFyYW0gIHtGdW5jdGlvbn0gZm4gZnVuY3Rpb24gdG8gZXhlY3V0ZSBsYXRlci4KICAgICAqLwogICAgcmVxLm5leHRUaWNrID0gdHlwZW9mIHNldFRpbWVvdXQgIT09ICd1bmRlZmluZWQnID8gZnVuY3Rpb24gKGZuKSB7CiAgICAgICAgc2V0VGltZW91dChmbiwgNCk7CiAgICB9IDogZnVuY3Rpb24gKGZuKSB7IGZuKCk7IH07CgogICAgLyoqCiAgICAgKiBFeHBvcnQgcmVxdWlyZSBhcyBhIGdsb2JhbCwgYnV0IG9ubHkgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdC4KICAgICAqLwogICAgaWYgKCFyZXF1aXJlKSB7CiAgICAgICAgcmVxdWlyZSA9IHJlcTsKICAgIH0KCiAgICByZXEudmVyc2lvbiA9IHZlcnNpb247CgogICAgLy9Vc2VkIHRvIGZpbHRlciBvdXQgZGVwZW5kZW5jaWVzIHRoYXQgYXJlIGFscmVhZHkgcGF0aHMuCiAgICByZXEuanNFeHRSZWdFeHAgPSAvXlwvfDp8XD98XC5qcyQvOwogICAgcmVxLmlzQnJvd3NlciA9IGlzQnJvd3NlcjsKICAgIHMgPSByZXEucyA9IHsKICAgICAgICBjb250ZXh0czogY29udGV4dHMsCiAgICAgICAgbmV3Q29udGV4dDogbmV3Q29udGV4dAogICAgfTsKCiAgICAvL0NyZWF0ZSBkZWZhdWx0IGNvbnRleHQuCiAgICByZXEoe30pOwoKICAgIC8vRXhwb3J0cyBzb21lIGNvbnRleHQtc2Vuc2l0aXZlIG1ldGhvZHMgb24gZ2xvYmFsIHJlcXVpcmUuCiAgICBlYWNoKFsKICAgICAgICAndG9VcmwnLAogICAgICAgICd1bmRlZicsCiAgICAgICAgJ2RlZmluZWQnLAogICAgICAgICdzcGVjaWZpZWQnCiAgICBdLCBmdW5jdGlvbiAocHJvcCkgewogICAgICAgIC8vUmVmZXJlbmNlIGZyb20gY29udGV4dHMgaW5zdGVhZCBvZiBlYXJseSBiaW5kaW5nIHRvIGRlZmF1bHQgY29udGV4dCwKICAgICAgICAvL3NvIHRoYXQgZHVyaW5nIGJ1aWxkcywgdGhlIGxhdGVzdCBpbnN0YW5jZSBvZiB0aGUgZGVmYXVsdCBjb250ZXh0CiAgICAgICAgLy93aXRoIGl0cyBjb25maWcgZ2V0cyB1c2VkLgogICAgICAgIHJlcVtwcm9wXSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGN0eCA9IGNvbnRleHRzW2RlZkNvbnRleHROYW1lXTsKICAgICAgICAgICAgcmV0dXJuIGN0eC5yZXF1aXJlW3Byb3BdLmFwcGx5KGN0eCwgYXJndW1lbnRzKTsKICAgICAgICB9OwogICAgfSk7CgogICAgaWYgKGlzQnJvd3NlcikgewogICAgICAgIGhlYWQgPSBzLmhlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdOwogICAgICAgIC8vSWYgQkFTRSB0YWcgaXMgaW4gcGxheSwgdXNpbmcgYXBwZW5kQ2hpbGQgaXMgYSBwcm9ibGVtIGZvciBJRTYuCiAgICAgICAgLy9XaGVuIHRoYXQgYnJvd3NlciBkaWVzLCB0aGlzIGNhbiBiZSByZW1vdmVkLiBEZXRhaWxzIGluIHRoaXMgalF1ZXJ5IGJ1ZzoKICAgICAgICAvL2h0dHA6Ly9kZXYuanF1ZXJ5LmNvbS90aWNrZXQvMjcwOQogICAgICAgIGJhc2VFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2Jhc2UnKVswXTsKICAgICAgICBpZiAoYmFzZUVsZW1lbnQpIHsKICAgICAgICAgICAgaGVhZCA9IHMuaGVhZCA9IGJhc2VFbGVtZW50LnBhcmVudE5vZGU7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQW55IGVycm9ycyB0aGF0IHJlcXVpcmUgZXhwbGljaXRseSBnZW5lcmF0ZXMgd2lsbCBiZSBwYXNzZWQgdG8gdGhpcwogICAgICogZnVuY3Rpb24uIEludGVyY2VwdC9vdmVycmlkZSBpdCBpZiB5b3Ugd2FudCBjdXN0b20gZXJyb3IgaGFuZGxpbmcuCiAgICAgKiBAcGFyYW0ge0Vycm9yfSBlcnIgdGhlIGVycm9yIG9iamVjdC4KICAgICAqLwogICAgcmVxLm9uRXJyb3IgPSBkZWZhdWx0T25FcnJvcjsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgdGhlIG5vZGUgZm9yIHRoZSBsb2FkIGNvbW1hbmQuIE9ubHkgdXNlZCBpbiBicm93c2VyIGVudnMuCiAgICAgKi8KICAgIHJlcS5jcmVhdGVOb2RlID0gZnVuY3Rpb24gKGNvbmZpZywgbW9kdWxlTmFtZSwgdXJsKSB7CiAgICAgICAgdmFyIG5vZGUgPSBjb25maWcueGh0bWwgPwogICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ2h0bWw6c2NyaXB0JykgOgogICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgbm9kZS50eXBlID0gY29uZmlnLnNjcmlwdFR5cGUgfHwgJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgICAgbm9kZS5jaGFyc2V0ID0gJ3V0Zi04JzsKICAgICAgICBub2RlLmFzeW5jID0gdHJ1ZTsKICAgICAgICByZXR1cm4gbm9kZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBEb2VzIHRoZSByZXF1ZXN0IHRvIGxvYWQgYSBtb2R1bGUgZm9yIHRoZSBicm93c2VyIGNhc2UuCiAgICAgKiBNYWtlIHRoaXMgYSBzZXBhcmF0ZSBmdW5jdGlvbiB0byBhbGxvdyBvdGhlciBlbnZpcm9ubWVudHMKICAgICAqIHRvIG92ZXJyaWRlIGl0LgogICAgICoKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBjb250ZXh0IHRoZSByZXF1aXJlIGNvbnRleHQgdG8gZmluZCBzdGF0ZS4KICAgICAqIEBwYXJhbSB7U3RyaW5nfSBtb2R1bGVOYW1lIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUuCiAgICAgKiBAcGFyYW0ge09iamVjdH0gdXJsIHRoZSBVUkwgdG8gdGhlIG1vZHVsZS4KICAgICAqLwogICAgcmVxLmxvYWQgPSBmdW5jdGlvbiAoY29udGV4dCwgbW9kdWxlTmFtZSwgdXJsKSB7CiAgICAgICAgdmFyIGNvbmZpZyA9IChjb250ZXh0ICYmIGNvbnRleHQuY29uZmlnKSB8fCB7fSwKICAgICAgICAgICAgbm9kZTsKICAgICAgICBpZiAoaXNCcm93c2VyKSB7CiAgICAgICAgICAgIC8vSW4gdGhlIGJyb3dzZXIgc28gdXNlIGEgc2NyaXB0IHRhZwogICAgICAgICAgICBub2RlID0gcmVxLmNyZWF0ZU5vZGUoY29uZmlnLCBtb2R1bGVOYW1lLCB1cmwpOwoKICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtcmVxdWlyZWNvbnRleHQnLCBjb250ZXh0LmNvbnRleHROYW1lKTsKICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtcmVxdWlyZW1vZHVsZScsIG1vZHVsZU5hbWUpOwoKICAgICAgICAgICAgLy9TZXQgdXAgbG9hZCBsaXN0ZW5lci4gVGVzdCBhdHRhY2hFdmVudCBmaXJzdCBiZWNhdXNlIElFOSBoYXMKICAgICAgICAgICAgLy9hIHN1YnRsZSBpc3N1ZSBpbiBpdHMgYWRkRXZlbnRMaXN0ZW5lciBhbmQgc2NyaXB0IG9ubG9hZCBmaXJpbmdzCiAgICAgICAgICAgIC8vdGhhdCBkbyBub3QgbWF0Y2ggdGhlIGJlaGF2aW9yIG9mIGFsbCBvdGhlciBicm93c2VycyB3aXRoCiAgICAgICAgICAgIC8vYWRkRXZlbnRMaXN0ZW5lciBzdXBwb3J0LCB3aGljaCBmaXJlIHRoZSBvbmxvYWQgZXZlbnQgZm9yIGEKICAgICAgICAgICAgLy9zY3JpcHQgcmlnaHQgYWZ0ZXIgdGhlIHNjcmlwdCBleGVjdXRpb24uIFNlZToKICAgICAgICAgICAgLy9odHRwczovL2Nvbm5lY3QubWljcm9zb2Z0LmNvbS9JRS9mZWVkYmFjay9kZXRhaWxzLzY0ODA1Ny9zY3JpcHQtb25sb2FkLWV2ZW50LWlzLW5vdC1maXJlZC1pbW1lZGlhdGVseS1hZnRlci1zY3JpcHQtZXhlY3V0aW9uCiAgICAgICAgICAgIC8vVU5GT1JUVU5BVEVMWSBPcGVyYSBpbXBsZW1lbnRzIGF0dGFjaEV2ZW50IGJ1dCBkb2VzIG5vdCBmb2xsb3cgdGhlIHNjcmlwdAogICAgICAgICAgICAvL3NjcmlwdCBleGVjdXRpb24gbW9kZS4KICAgICAgICAgICAgaWYgKG5vZGUuYXR0YWNoRXZlbnQgJiYKICAgICAgICAgICAgICAgICAgICAvL0NoZWNrIGlmIG5vZGUuYXR0YWNoRXZlbnQgaXMgYXJ0aWZpY2lhbGx5IGFkZGVkIGJ5IGN1c3RvbSBzY3JpcHQgb3IKICAgICAgICAgICAgICAgICAgICAvL25hdGl2ZWx5IHN1cHBvcnRlZCBieSBicm93c2VyCiAgICAgICAgICAgICAgICAgICAgLy9yZWFkIGh0dHBzOi8vZ2l0aHViLmNvbS9yZXF1aXJlanMvcmVxdWlyZWpzL2lzc3Vlcy8xODcKICAgICAgICAgICAgICAgICAgICAvL2lmIHdlIGNhbiBOT1QgZmluZCBbbmF0aXZlIGNvZGVdIHRoZW4gaXQgbXVzdCBOT1QgbmF0aXZlbHkgc3VwcG9ydGVkLgogICAgICAgICAgICAgICAgICAgIC8vaW4gSUU4LCBub2RlLmF0dGFjaEV2ZW50IGRvZXMgbm90IGhhdmUgdG9TdHJpbmcoKQogICAgICAgICAgICAgICAgICAgIC8vTm90ZSB0aGUgdGVzdCBmb3IgIltuYXRpdmUgY29kZSIgd2l0aCBubyBjbG9zaW5nIGJyYWNlLCBzZWU6CiAgICAgICAgICAgICAgICAgICAgLy9odHRwczovL2dpdGh1Yi5jb20vcmVxdWlyZWpzL3JlcXVpcmVqcy9pc3N1ZXMvMjczCiAgICAgICAgICAgICAgICAgICAgIShub2RlLmF0dGFjaEV2ZW50LnRvU3RyaW5nICYmIG5vZGUuYXR0YWNoRXZlbnQudG9TdHJpbmcoKS5pbmRleE9mKCdbbmF0aXZlIGNvZGUnKSA8IDApICYmCiAgICAgICAgICAgICAgICAgICAgIWlzT3BlcmEpIHsKICAgICAgICAgICAgICAgIC8vUHJvYmFibHkgSUUuIElFIChhdCBsZWFzdCA2LTgpIGRvIG5vdCBmaXJlCiAgICAgICAgICAgICAgICAvL3NjcmlwdCBvbmxvYWQgcmlnaHQgYWZ0ZXIgZXhlY3V0aW5nIHRoZSBzY3JpcHQsIHNvCiAgICAgICAgICAgICAgICAvL3dlIGNhbm5vdCB0aWUgdGhlIGFub255bW91cyBkZWZpbmUgY2FsbCB0byBhIG5hbWUuCiAgICAgICAgICAgICAgICAvL0hvd2V2ZXIsIElFIHJlcG9ydHMgdGhlIHNjcmlwdCBhcyBiZWluZyBpbiAnaW50ZXJhY3RpdmUnCiAgICAgICAgICAgICAgICAvL3JlYWR5U3RhdGUgYXQgdGhlIHRpbWUgb2YgdGhlIGRlZmluZSBjYWxsLgogICAgICAgICAgICAgICAgdXNlSW50ZXJhY3RpdmUgPSB0cnVlOwoKICAgICAgICAgICAgICAgIG5vZGUuYXR0YWNoRXZlbnQoJ29ucmVhZHlzdGF0ZWNoYW5nZScsIGNvbnRleHQub25TY3JpcHRMb2FkKTsKICAgICAgICAgICAgICAgIC8vSXQgd291bGQgYmUgZ3JlYXQgdG8gYWRkIGFuIGVycm9yIGhhbmRsZXIgaGVyZSB0byBjYXRjaAogICAgICAgICAgICAgICAgLy80MDRzIGluIElFOSsuIEhvd2V2ZXIsIG9ucmVhZHlzdGF0ZWNoYW5nZSB3aWxsIGZpcmUgYmVmb3JlCiAgICAgICAgICAgICAgICAvL3RoZSBlcnJvciBoYW5kbGVyLCBzbyB0aGF0IGRvZXMgbm90IGhlbHAuIElmIGFkZEV2ZW50TGlzdGVuZXIKICAgICAgICAgICAgICAgIC8vaXMgdXNlZCwgdGhlbiBJRSB3aWxsIGZpcmUgZXJyb3IgYmVmb3JlIGxvYWQsIGJ1dCB3ZSBjYW5ub3QKICAgICAgICAgICAgICAgIC8vdXNlIHRoYXQgcGF0aHdheSBnaXZlbiB0aGUgY29ubmVjdC5taWNyb3NvZnQuY29tIGlzc3VlCiAgICAgICAgICAgICAgICAvL21lbnRpb25lZCBhYm92ZSBhYm91dCBub3QgZG9pbmcgdGhlICdzY3JpcHQgZXhlY3V0ZSwKICAgICAgICAgICAgICAgIC8vdGhlbiBmaXJlIHRoZSBzY3JpcHQgbG9hZCBldmVudCBsaXN0ZW5lciBiZWZvcmUgZXhlY3V0ZQogICAgICAgICAgICAgICAgLy9uZXh0IHNjcmlwdCcgdGhhdCBvdGhlciBicm93c2VycyBkby4KICAgICAgICAgICAgICAgIC8vQmVzdCBob3BlOiBJRTEwIGZpeGVzIHRoZSBpc3N1ZXMsCiAgICAgICAgICAgICAgICAvL2FuZCB0aGVuIGRlc3Ryb3lzIGFsbCBpbnN0YWxscyBvZiBJRSA2LTkuCiAgICAgICAgICAgICAgICAvL25vZGUuYXR0YWNoRXZlbnQoJ29uZXJyb3InLCBjb250ZXh0Lm9uU2NyaXB0RXJyb3IpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgY29udGV4dC5vblNjcmlwdExvYWQsIGZhbHNlKTsKICAgICAgICAgICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBjb250ZXh0Lm9uU2NyaXB0RXJyb3IsIGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBub2RlLnNyYyA9IHVybDsKCiAgICAgICAgICAgIC8vQ2FsbGluZyBvbk5vZGVDcmVhdGVkIGFmdGVyIGFsbCBwcm9wZXJ0aWVzIG9uIHRoZSBub2RlIGhhdmUgYmVlbgogICAgICAgICAgICAvL3NldCwgYnV0IGJlZm9yZSBpdCBpcyBwbGFjZWQgaW4gdGhlIERPTS4KICAgICAgICAgICAgaWYgKGNvbmZpZy5vbk5vZGVDcmVhdGVkKSB7CiAgICAgICAgICAgICAgICBjb25maWcub25Ob2RlQ3JlYXRlZChub2RlLCBjb25maWcsIG1vZHVsZU5hbWUsIHVybCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vRm9yIHNvbWUgY2FjaGUgY2FzZXMgaW4gSUUgNi04LCB0aGUgc2NyaXB0IGV4ZWN1dGVzIGJlZm9yZSB0aGUgZW5kCiAgICAgICAgICAgIC8vb2YgdGhlIGFwcGVuZENoaWxkIGV4ZWN1dGlvbiwgc28gdG8gdGllIGFuIGFub255bW91cyBkZWZpbmUKICAgICAgICAgICAgLy9jYWxsIHRvIHRoZSBtb2R1bGUgbmFtZSAod2hpY2ggaXMgc3RvcmVkIG9uIHRoZSBub2RlKSwgaG9sZCBvbgogICAgICAgICAgICAvL3RvIGEgcmVmZXJlbmNlIHRvIHRoaXMgbm9kZSwgYnV0IGNsZWFyIGFmdGVyIHRoZSBET00gaW5zZXJ0aW9uLgogICAgICAgICAgICBjdXJyZW50bHlBZGRpbmdTY3JpcHQgPSBub2RlOwogICAgICAgICAgICBpZiAoYmFzZUVsZW1lbnQpIHsKICAgICAgICAgICAgICAgIGhlYWQuaW5zZXJ0QmVmb3JlKG5vZGUsIGJhc2VFbGVtZW50KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQobm9kZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY3VycmVudGx5QWRkaW5nU2NyaXB0ID0gbnVsbDsKCiAgICAgICAgICAgIHJldHVybiBub2RlOwogICAgICAgIH0gZWxzZSBpZiAoaXNXZWJXb3JrZXIpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIC8vSW4gYSB3ZWIgd29ya2VyLCB1c2UgaW1wb3J0U2NyaXB0cy4gVGhpcyBpcyBub3QgYSB2ZXJ5CiAgICAgICAgICAgICAgICAvL2VmZmljaWVudCB1c2Ugb2YgaW1wb3J0U2NyaXB0cywgaW1wb3J0U2NyaXB0cyB3aWxsIGJsb2NrIHVudGlsCiAgICAgICAgICAgICAgICAvL2l0cyBzY3JpcHQgaXMgZG93bmxvYWRlZCBhbmQgZXZhbHVhdGVkLiBIb3dldmVyLCBpZiB3ZWIgd29ya2VycwogICAgICAgICAgICAgICAgLy9hcmUgaW4gcGxheSwgdGhlIGV4cGVjdGF0aW9uIGlzIHRoYXQgYSBidWlsZCBoYXMgYmVlbiBkb25lIHNvCiAgICAgICAgICAgICAgICAvL3RoYXQgb25seSBvbmUgc2NyaXB0IG5lZWRzIHRvIGJlIGxvYWRlZCBhbnl3YXkuIFRoaXMgbWF5IG5lZWQKICAgICAgICAgICAgICAgIC8vdG8gYmUgcmVldmFsdWF0ZWQgaWYgb3RoZXIgdXNlIGNhc2VzIGJlY29tZSBjb21tb24uCgogICAgICAgICAgICAgICAgLy8gUG9zdCBhIHRhc2sgdG8gdGhlIGV2ZW50IGxvb3AgdG8gd29yayBhcm91bmQgYSBidWcgaW4gV2ViS2l0CiAgICAgICAgICAgICAgICAvLyB3aGVyZSB0aGUgd29ya2VyIGdldHMgZ2FyYmFnZS1jb2xsZWN0ZWQgYWZ0ZXIgY2FsbGluZwogICAgICAgICAgICAgICAgLy8gaW1wb3J0U2NyaXB0cygpOiBodHRwczovL3dlYmtpdC5vcmcvYi8xNTMzMTcKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7fSwgMCk7CiAgICAgICAgICAgICAgICBpbXBvcnRTY3JpcHRzKHVybCk7CgogICAgICAgICAgICAgICAgLy9BY2NvdW50IGZvciBhbm9ueW1vdXMgbW9kdWxlcwogICAgICAgICAgICAgICAgY29udGV4dC5jb21wbGV0ZUxvYWQobW9kdWxlTmFtZSk7CiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIGNvbnRleHQub25FcnJvcihtYWtlRXJyb3IoJ2ltcG9ydHNjcmlwdHMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbXBvcnRTY3JpcHRzIGZhaWxlZCBmb3IgJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZU5hbWUgKyAnIGF0ICcgKyB1cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kdWxlTmFtZV0pKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH07CgogICAgZnVuY3Rpb24gZ2V0SW50ZXJhY3RpdmVTY3JpcHQoKSB7CiAgICAgICAgaWYgKGludGVyYWN0aXZlU2NyaXB0ICYmIGludGVyYWN0aXZlU2NyaXB0LnJlYWR5U3RhdGUgPT09ICdpbnRlcmFjdGl2ZScpIHsKICAgICAgICAgICAgcmV0dXJuIGludGVyYWN0aXZlU2NyaXB0OwogICAgICAgIH0KCiAgICAgICAgZWFjaFJldmVyc2Uoc2NyaXB0cygpLCBmdW5jdGlvbiAoc2NyaXB0KSB7CiAgICAgICAgICAgIGlmIChzY3JpcHQucmVhZHlTdGF0ZSA9PT0gJ2ludGVyYWN0aXZlJykgewogICAgICAgICAgICAgICAgcmV0dXJuIChpbnRlcmFjdGl2ZVNjcmlwdCA9IHNjcmlwdCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICByZXR1cm4gaW50ZXJhY3RpdmVTY3JpcHQ7CiAgICB9CgogICAgLy9Mb29rIGZvciBhIGRhdGEtbWFpbiBzY3JpcHQgYXR0cmlidXRlLCB3aGljaCBjb3VsZCBhbHNvIGFkanVzdCB0aGUgYmFzZVVybC4KICAgIGlmIChpc0Jyb3dzZXIgJiYgIWNmZy5za2lwRGF0YU1haW4pIHsKICAgICAgICAvL0ZpZ3VyZSBvdXQgYmFzZVVybC4gR2V0IGl0IGZyb20gdGhlIHNjcmlwdCB0YWcgd2l0aCByZXF1aXJlLmpzIGluIGl0LgogICAgICAgIGVhY2hSZXZlcnNlKHNjcmlwdHMoKSwgZnVuY3Rpb24gKHNjcmlwdCkgewogICAgICAgICAgICAvL1NldCB0aGUgJ2hlYWQnIHdoZXJlIHdlIGNhbiBhcHBlbmQgY2hpbGRyZW4gYnkKICAgICAgICAgICAgLy91c2luZyB0aGUgc2NyaXB0J3MgcGFyZW50LgogICAgICAgICAgICBpZiAoIWhlYWQpIHsKICAgICAgICAgICAgICAgIGhlYWQgPSBzY3JpcHQucGFyZW50Tm9kZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy9Mb29rIGZvciBhIGRhdGEtbWFpbiBhdHRyaWJ1dGUgdG8gc2V0IG1haW4gc2NyaXB0IGZvciB0aGUgcGFnZQogICAgICAgICAgICAvL3RvIGxvYWQuIElmIGl0IGlzIHRoZXJlLCB0aGUgcGF0aCB0byBkYXRhIG1haW4gYmVjb21lcyB0aGUKICAgICAgICAgICAgLy9iYXNlVXJsLCBpZiBpdCBpcyBub3QgYWxyZWFkeSBzZXQuCiAgICAgICAgICAgIGRhdGFNYWluID0gc2NyaXB0LmdldEF0dHJpYnV0ZSgnZGF0YS1tYWluJyk7CiAgICAgICAgICAgIGlmIChkYXRhTWFpbikgewogICAgICAgICAgICAgICAgLy9QcmVzZXJ2ZSBkYXRhTWFpbiBpbiBjYXNlIGl0IGlzIGEgcGF0aCAoaS5lLiBjb250YWlucyAnPycpCiAgICAgICAgICAgICAgICBtYWluU2NyaXB0ID0gZGF0YU1haW47CgogICAgICAgICAgICAgICAgLy9TZXQgZmluYWwgYmFzZVVybCBpZiB0aGVyZSBpcyBub3QgYWxyZWFkeSBhbiBleHBsaWNpdCBvbmUsCiAgICAgICAgICAgICAgICAvL2J1dCBvbmx5IGRvIHNvIGlmIHRoZSBkYXRhLW1haW4gdmFsdWUgaXMgbm90IGEgbG9hZGVyIHBsdWdpbgogICAgICAgICAgICAgICAgLy9tb2R1bGUgSUQuCiAgICAgICAgICAgICAgICBpZiAoIWNmZy5iYXNlVXJsICYmIG1haW5TY3JpcHQuaW5kZXhPZignIScpID09PSAtMSkgewogICAgICAgICAgICAgICAgICAgIC8vUHVsbCBvZmYgdGhlIGRpcmVjdG9yeSBvZiBkYXRhLW1haW4gZm9yIHVzZSBhcyB0aGUKICAgICAgICAgICAgICAgICAgICAvL2Jhc2VVcmwuCiAgICAgICAgICAgICAgICAgICAgc3JjID0gbWFpblNjcmlwdC5zcGxpdCgnLycpOwogICAgICAgICAgICAgICAgICAgIG1haW5TY3JpcHQgPSBzcmMucG9wKCk7CiAgICAgICAgICAgICAgICAgICAgc3ViUGF0aCA9IHNyYy5sZW5ndGggPyBzcmMuam9pbignLycpICArICcvJyA6ICcuLyc7CgogICAgICAgICAgICAgICAgICAgIGNmZy5iYXNlVXJsID0gc3ViUGF0aDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvL1N0cmlwIG9mZiBhbnkgdHJhaWxpbmcgLmpzIHNpbmNlIG1haW5TY3JpcHQgaXMgbm93CiAgICAgICAgICAgICAgICAvL2xpa2UgYSBtb2R1bGUgbmFtZS4KICAgICAgICAgICAgICAgIG1haW5TY3JpcHQgPSBtYWluU2NyaXB0LnJlcGxhY2UoanNTdWZmaXhSZWdFeHAsICcnKTsKCiAgICAgICAgICAgICAgICAvL0lmIG1haW5TY3JpcHQgaXMgc3RpbGwgYSBwYXRoLCBmYWxsIGJhY2sgdG8gZGF0YU1haW4KICAgICAgICAgICAgICAgIGlmIChyZXEuanNFeHRSZWdFeHAudGVzdChtYWluU2NyaXB0KSkgewogICAgICAgICAgICAgICAgICAgIG1haW5TY3JpcHQgPSBkYXRhTWFpbjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvL1B1dCB0aGUgZGF0YS1tYWluIHNjcmlwdCBpbiB0aGUgZmlsZXMgdG8gbG9hZC4KICAgICAgICAgICAgICAgIGNmZy5kZXBzID0gY2ZnLmRlcHMgPyBjZmcuZGVwcy5jb25jYXQobWFpblNjcmlwdCkgOiBbbWFpblNjcmlwdF07CgogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KCiAgICAvKioKICAgICAqIFRoZSBmdW5jdGlvbiB0aGF0IGhhbmRsZXMgZGVmaW5pdGlvbnMgb2YgbW9kdWxlcy4gRGlmZmVycyBmcm9tCiAgICAgKiByZXF1aXJlKCkgaW4gdGhhdCBhIHN0cmluZyBmb3IgdGhlIG1vZHVsZSBzaG91bGQgYmUgdGhlIGZpcnN0IGFyZ3VtZW50LAogICAgICogYW5kIHRoZSBmdW5jdGlvbiB0byBleGVjdXRlIGFmdGVyIGRlcGVuZGVuY2llcyBhcmUgbG9hZGVkIHNob3VsZAogICAgICogcmV0dXJuIGEgdmFsdWUgdG8gZGVmaW5lIHRoZSBtb2R1bGUgY29ycmVzcG9uZGluZyB0byB0aGUgZmlyc3QgYXJndW1lbnQncwogICAgICogbmFtZS4KICAgICAqLwogICAgZGVmaW5lID0gZnVuY3Rpb24gKG5hbWUsIGRlcHMsIGNhbGxiYWNrKSB7CiAgICAgICAgdmFyIG5vZGUsIGNvbnRleHQ7CgogICAgICAgIC8vQWxsb3cgZm9yIGFub255bW91cyBtb2R1bGVzCiAgICAgICAgaWYgKHR5cGVvZiBuYW1lICE9PSAnc3RyaW5nJykgewogICAgICAgICAgICAvL0FkanVzdCBhcmdzIGFwcHJvcHJpYXRlbHkKICAgICAgICAgICAgY2FsbGJhY2sgPSBkZXBzOwogICAgICAgICAgICBkZXBzID0gbmFtZTsKICAgICAgICAgICAgbmFtZSA9IG51bGw7CiAgICAgICAgfQoKICAgICAgICAvL1RoaXMgbW9kdWxlIG1heSBub3QgaGF2ZSBkZXBlbmRlbmNpZXMKICAgICAgICBpZiAoIWlzQXJyYXkoZGVwcykpIHsKICAgICAgICAgICAgY2FsbGJhY2sgPSBkZXBzOwogICAgICAgICAgICBkZXBzID0gbnVsbDsKICAgICAgICB9CgogICAgICAgIC8vSWYgbm8gbmFtZSwgYW5kIGNhbGxiYWNrIGlzIGEgZnVuY3Rpb24sIHRoZW4gZmlndXJlIG91dCBpZiBpdCBhCiAgICAgICAgLy9Db21tb25KUyB0aGluZyB3aXRoIGRlcGVuZGVuY2llcy4KICAgICAgICBpZiAoIWRlcHMgJiYgaXNGdW5jdGlvbihjYWxsYmFjaykpIHsKICAgICAgICAgICAgZGVwcyA9IFtdOwogICAgICAgICAgICAvL1JlbW92ZSBjb21tZW50cyBmcm9tIHRoZSBjYWxsYmFjayBzdHJpbmcsCiAgICAgICAgICAgIC8vbG9vayBmb3IgcmVxdWlyZSBjYWxscywgYW5kIHB1bGwgdGhlbSBpbnRvIHRoZSBkZXBlbmRlbmNpZXMsCiAgICAgICAgICAgIC8vYnV0IG9ubHkgaWYgdGhlcmUgYXJlIGZ1bmN0aW9uIGFyZ3MuCiAgICAgICAgICAgIGlmIChjYWxsYmFjay5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgLnRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAucmVwbGFjZShjb21tZW50UmVnRXhwLCBjb21tZW50UmVwbGFjZSkKICAgICAgICAgICAgICAgICAgICAucmVwbGFjZShjanNSZXF1aXJlUmVnRXhwLCBmdW5jdGlvbiAobWF0Y2gsIGRlcCkgewogICAgICAgICAgICAgICAgICAgICAgICBkZXBzLnB1c2goZGVwKTsKICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvL01heSBiZSBhIENvbW1vbkpTIHRoaW5nIGV2ZW4gd2l0aG91dCByZXF1aXJlIGNhbGxzLCBidXQgc3RpbGwKICAgICAgICAgICAgICAgIC8vY291bGQgdXNlIGV4cG9ydHMsIGFuZCBtb2R1bGUuIEF2b2lkIGRvaW5nIGV4cG9ydHMgYW5kIG1vZHVsZQogICAgICAgICAgICAgICAgLy93b3JrIHRob3VnaCBpZiBpdCBqdXN0IG5lZWRzIHJlcXVpcmUuCiAgICAgICAgICAgICAgICAvL1JFUVVJUkVTIHRoZSBmdW5jdGlvbiB0byBleHBlY3QgdGhlIENvbW1vbkpTIHZhcmlhYmxlcyBpbiB0aGUKICAgICAgICAgICAgICAgIC8vb3JkZXIgbGlzdGVkIGJlbG93LgogICAgICAgICAgICAgICAgZGVwcyA9IChjYWxsYmFjay5sZW5ndGggPT09IDEgPyBbJ3JlcXVpcmUnXSA6IFsncmVxdWlyZScsICdleHBvcnRzJywgJ21vZHVsZSddKS5jb25jYXQoZGVwcyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vSWYgaW4gSUUgNi04IGFuZCBoaXQgYW4gYW5vbnltb3VzIGRlZmluZSgpIGNhbGwsIGRvIHRoZSBpbnRlcmFjdGl2ZQogICAgICAgIC8vd29yay4KICAgICAgICBpZiAodXNlSW50ZXJhY3RpdmUpIHsKICAgICAgICAgICAgbm9kZSA9IGN1cnJlbnRseUFkZGluZ1NjcmlwdCB8fCBnZXRJbnRlcmFjdGl2ZVNjcmlwdCgpOwogICAgICAgICAgICBpZiAobm9kZSkgewogICAgICAgICAgICAgICAgaWYgKCFuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLXJlcXVpcmVtb2R1bGUnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNvbnRleHQgPSBjb250ZXh0c1tub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1yZXF1aXJlY29udGV4dCcpXTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy9BbHdheXMgc2F2ZSBvZmYgZXZhbHVhdGluZyB0aGUgZGVmIGNhbGwgdW50aWwgdGhlIHNjcmlwdCBvbmxvYWQgaGFuZGxlci4KICAgICAgICAvL1RoaXMgYWxsb3dzIG11bHRpcGxlIG1vZHVsZXMgdG8gYmUgaW4gYSBmaWxlIHdpdGhvdXQgcHJlbWF0dXJlbHkKICAgICAgICAvL3RyYWNpbmcgZGVwZW5kZW5jaWVzLCBhbmQgYWxsb3dzIGZvciBhbm9ueW1vdXMgbW9kdWxlIHN1cHBvcnQsCiAgICAgICAgLy93aGVyZSB0aGUgbW9kdWxlIG5hbWUgaXMgbm90IGtub3duIHVudGlsIHRoZSBzY3JpcHQgb25sb2FkIGV2ZW50CiAgICAgICAgLy9vY2N1cnMuIElmIG5vIGNvbnRleHQsIHVzZSB0aGUgZ2xvYmFsIHF1ZXVlLCBhbmQgZ2V0IGl0IHByb2Nlc3NlZAogICAgICAgIC8vaW4gdGhlIG9uc2NyaXB0IGxvYWQgY2FsbGJhY2suCiAgICAgICAgaWYgKGNvbnRleHQpIHsKICAgICAgICAgICAgY29udGV4dC5kZWZRdWV1ZS5wdXNoKFtuYW1lLCBkZXBzLCBjYWxsYmFja10pOwogICAgICAgICAgICBjb250ZXh0LmRlZlF1ZXVlTWFwW25hbWVdID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBnbG9iYWxEZWZRdWV1ZS5wdXNoKFtuYW1lLCBkZXBzLCBjYWxsYmFja10pOwogICAgICAgIH0KICAgIH07CgogICAgZGVmaW5lLmFtZCA9IHsKICAgICAgICBqUXVlcnk6IHRydWUKICAgIH07CgogICAgLyoqCiAgICAgKiBFeGVjdXRlcyB0aGUgdGV4dC4gTm9ybWFsbHkganVzdCB1c2VzIGV2YWwsIGJ1dCBjYW4gYmUgbW9kaWZpZWQKICAgICAqIHRvIHVzZSBhIGJldHRlciwgZW52aXJvbm1lbnQtc3BlY2lmaWMgY2FsbC4gT25seSB1c2VkIGZvciB0cmFuc3BpbGluZwogICAgICogbG9hZGVyIHBsdWdpbnMsIG5vdCBmb3IgcGxhaW4gSlMgbW9kdWxlcy4KICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0ZXh0IHRoZSB0ZXh0IHRvIGV4ZWN1dGUvZXZhbHVhdGUuCiAgICAgKi8KICAgIHJlcS5leGVjID0gZnVuY3Rpb24gKHRleHQpIHsKICAgICAgICAvKmpzbGludCBldmlsOiB0cnVlICovCiAgICAgICAgcmV0dXJuIGV2YWwodGV4dCk7CiAgICB9OwoKICAgIC8vU2V0IHVwIHdpdGggY29uZmlnIGluZm8uCiAgICByZXEoY2ZnKTsKfSh0aGlzLCAodHlwZW9mIHNldFRpbWVvdXQgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogc2V0VGltZW91dCkpKTsKCg==", + "ok": true, + "headers": [ + [ + "content-length", + "1874700" + ], + [ + "content-type", + "text/javascript; charset=utf-8" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/icon_bundle.svg": { + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiA/Pjxzdmc+PGRlZnM+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iYWRkXzI0cHgiPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaWQ9ImFycm93X2JhY2tfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0yMCAxMUg3LjgzbDUuNTktNS41OUwxMiA0bC04IDggOCA4IDEuNDEtMS40MUw3LjgzIDEzSDIwdi0yeiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImFycm93X2Rvd253YXJkXzI0cHgiPjxwYXRoIGZpbGw9IiMwMTAxMDEiIGQ9Ik0yMCAxMmwtMS40MS0xLjQxTDEzIDE2LjE3VjRoLTJ2MTIuMTdsLTUuNTgtNS41OUw0IDEybDggOCA4LTh6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iYXJyb3dfZm9yd2FyZF8yNHB4Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEyIDRsLTEuNDEgMS40MUwxNi4xNyAxMUg0djJoMTIuMTdsLTUuNTggNS41OUwxMiAyMGw4LTh6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iYXJyb3dfdXB3YXJkXzI0cHgiPjxwYXRoIGQ9Ik00IDEybDEuNDEgMS40MUwxMSA3LjgzVjIwaDJWNy44M2w1LjU4IDUuNTlMMjAgMTJsLTgtOC04IDh6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iYnJpZ2h0bmVzc182XzI0cHgiPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMjAgMTUuMzFMMjMuMzEgMTIgMjAgOC42OVY0aC00LjY5TDEyIC42OSA4LjY5IDRINHY0LjY5TC42OSAxMiA0IDE1LjMxVjIwaDQuNjlMMTIgMjMuMzEgMTUuMzEgMjBIMjB2LTQuNjl6TTEyIDE4VjZjMy4zMSAwIDYgMi42OSA2IDZzLTIuNjkgNi02IDZ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iYnVnX3JlcG9ydF8yNHB4Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTIwIDhoLTIuODFjLS40NS0uNzgtMS4wNy0xLjQ1LTEuODItMS45NkwxNyA0LjQxIDE1LjU5IDNsLTIuMTcgMi4xN0MxMi45NiA1LjA2IDEyLjQ5IDUgMTIgNWMtLjQ5IDAtLjk2LjA2LTEuNDEuMTdMOC40MSAzIDcgNC40MWwxLjYyIDEuNjNDNy44OCA2LjU1IDcuMjYgNy4yMiA2LjgxIDhINHYyaDIuMDljLS4wNS4zMy0uMDkuNjYtLjA5IDF2MUg0djJoMnYxYzAgLjM0LjA0LjY3LjA5IDFINHYyaDIuODFjMS4wNCAxLjc5IDIuOTcgMyA1LjE5IDNzNC4xNS0xLjIxIDUuMTktM0gyMHYtMmgtMi4wOWMuMDUtLjMzLjA5LS42Ni4wOS0xdi0xaDJ2LTJoLTJ2LTFjMC0uMzQtLjA0LS42Ny0uMDktMUgyMFY4em0tNiA4aC00di0yaDR2MnptMC00aC00di0yaDR2MnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJjYW5jZWxfMjRweCI+PHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTUgMTMuNTlMMTUuNTkgMTcgMTIgMTMuNDEgOC40MSAxNyA3IDE1LjU5IDEwLjU5IDEyIDcgOC40MSA4LjQxIDcgMTIgMTAuNTkgMTUuNTkgNyAxNyA4LjQxIDEzLjQxIDEyIDE3IDE1LjU5eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImNoYW5nZV9oaXN0b3J5XzI0cHgiPjxwYXRoIGQ9Ik0xMiA3Ljc3TDE4LjM5IDE4SDUuNjFMMTIgNy43N00xMiA0TDIgMjBoMjBMMTIgNHoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJjaGV2cm9uX2xlZnRfMjRweCI+PHBhdGggZD0iTTE1LjQxIDcuNDFMMTQgNmwtNiA2IDYgNiAxLjQxLTEuNDFMMTAuODMgMTJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iY2hldnJvbl9yaWdodF8yNHB4Ij48cGF0aCBkPSJNMTAgNkw4LjU5IDcuNDEgMTMuMTcgMTJsLTQuNTggNC41OUwxMCAxOGw2LTZ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iY2xlYXJfMjRweCI+PHBhdGggZD0iTTE5IDYuNDFMMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJjbG9zZV8yNHB4Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDYuNDFMMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJjb250ZW50X2NvcHlfMjRweCI+PHBhdGggZD0iTTE2IDFINGMtMS4xIDAtMiAuOS0yIDJ2MTRoMlYzaDEyVjF6bTMgNEg4Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDExYzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTZIOFY3aDExdjE0eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNCAyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJkYXJrX21vZGVfMjRweCI+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PHBhdGggZD0iTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2Yy0wLjk4LDEuMzctMi41OCwyLjI2LTQuNCwyLjI2IGMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImRvbmVfMjRweCI+PHBhdGggZD0iTTkgMTYuMkw0LjggMTJsLTEuNCAxLjRMOSAxOSAyMSA3bC0xLjQtMS40TDkgMTYuMnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJkcmFnX2luZGljYXRvcl8yNHB4Ij48cGF0aCBkPSJNMCAwaDI0djI0SDBWMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMTEgMThjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yIC45LTIgMi0yIDIgLjkgMiAyem0tMi04Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMC02Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptNiA0YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMCAyYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMCA2Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJlZGl0XzI0cHgiPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMyAxNy4yNVYyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NUwzIDE3LjI1ek0yMC43MSA3LjA0Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFsLTIuMzQtMi4zNGMtLjM5LS4zOS0xLjAyLS4zOS0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzeiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImVycm9yXzI0cHgiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDE1aC0ydi0yaDJ2MnptMC00aC0yVjdoMnY2eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImV4cGFuZF9sZXNzXzI0cHgiPjxwYXRoIGQ9Ik0xMiA4bC02IDYgMS40MSAxLjQxTDEyIDEwLjgzbDQuNTkgNC41OEwxOCAxNHoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJleHBhbmRfbW9yZV8yNHB4Ij48cGF0aCBkPSJNMTYuNTkgOC41OUwxMiAxMy4xNyA3LjQxIDguNTkgNiAxMGw2IDYgNi02eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNCAyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJmaWx0ZXJfYWx0XzI0cHgiPjxnPjxwYXRoIGQ9Ik0wLDBoMjQgTTI0LDI0SDAiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNNC4yNSw1LjYxQzYuMjcsOC4yLDEwLDEzLDEwLDEzdjZjMCwwLjU1LDAuNDUsMSwxLDFoMmMwLjU1LDAsMS0wLjQ1LDEtMXYtNmMwLDAsMy43Mi00LjgsNS43NC03LjM5IEMyMC4yNSw0Ljk1LDE5Ljc4LDQsMTguOTUsNEg1LjA0QzQuMjEsNCwzLjc0LDQuOTUsNC4yNSw1LjYxeiIvPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJmaWx0ZXJfbGlzdF8yNHB4Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEwIDE4aDR2LTJoLTR2MnpNMyA2djJoMThWNkgzem0zIDdoMTJ2LTJINnYyeiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImZsYWdfMjRweCI+PHBhdGggZD0iTTE0LjQgNkwxNCA0SDV2MTdoMnYtN2g1LjZsLjQgMmg3VjZ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iZnVsbHNjcmVlbl8yNHB4Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTcgMTRINXY1aDV2LTJIN3YtM3ptLTItNGgyVjdoM1Y1SDV2NXptMTIgN2gtM3YyaDV2LTVoLTJ2M3pNMTQgNXYyaDN2M2gyVjVoLTV6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iZnVsbHNjcmVlbl9leGl0XzI0cHgiPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNNSAxNmgzdjNoMnYtNUg1djJ6bTMtOEg1djJoNVY1SDh2M3ptNiAxMWgydi0zaDN2LTJoLTV2NXptMi0xMVY1aC0ydjVoNVY4aC0zeiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImdldF9hcHBfMjRweCI+PHBhdGggZD0iTTE5IDloLTRWM0g5djZINWw3IDcgNy03ek01IDE4djJoMTR2LTJINXoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJncm91cF93b3JrXzI0cHgiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyek04IDE3LjVjLTEuMzggMC0yLjUtMS4xMi0yLjUtMi41czEuMTItMi41IDIuNS0yLjUgMi41IDEuMTIgMi41IDIuNS0xLjEyIDIuNS0yLjUgMi41ek05LjUgOGMwLTEuMzggMS4xMi0yLjUgMi41LTIuNXMyLjUgMS4xMiAyLjUgMi41LTEuMTIgMi41LTIuNSAyLjVTOS41IDkuMzggOS41IDh6bTYuNSA5LjVjLTEuMzggMC0yLjUtMS4xMi0yLjUtMi41czEuMTItMi41IDIuNS0yLjUgMi41IDEuMTIgMi41IDIuNS0xLjEyIDIuNS0yLjUgMi41eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImhlbHBfb3V0bGluZV8yNHB4Ij48cGF0aCBkPSJNMTEgMThoMnYtMmgtMnYyem0xLTE2QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMC0xNGMtMi4yMSAwLTQgMS43OS00IDRoMmMwLTEuMS45LTIgMi0yczIgLjkgMiAyYzAgMi0zIDEuNzUtMyA1aDJjMC0yLjI1IDMtMi41IDMtNSAwLTIuMjEtMS43OS00LTQtNHoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJpbWFnZV9zZWFyY2hfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xOCAxM3Y3SDRWNmg1LjAyYy4wNS0uNzEuMjItMS4zOC40OC0ySDRjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTVsLTItMnptLTEuNSA1aC0xMWwyLjc1LTMuNTMgMS45NiAyLjM2IDIuNzUtMy41NHptMi44LTkuMTFjLjQ0LS43LjctMS41MS43LTIuMzlDMjAgNC4wMSAxNy45OSAyIDE1LjUgMlMxMSA0LjAxIDExIDYuNXMyLjAxIDQuNSA0LjQ5IDQuNWMuODggMCAxLjctLjI2IDIuMzktLjdMMjEgMTMuNDIgMjIuNDIgMTIgMTkuMyA4Ljg5ek0xNS41IDlDMTQuMTIgOSAxMyA3Ljg4IDEzIDYuNVMxNC4xMiA0IDE1LjUgNCAxOCA1LjEyIDE4IDYuNSAxNi44OCA5IDE1LjUgOXoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJpbmZvX291dGxpbmVfMjRweCI+PHBhdGggZD0iTTExIDE3aDJ2LTZoLTJ2NnptMS0xNUM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6TTExIDloMlY3aC0ydjJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaWQ9ImtlZXBfMjRweCI+PGc+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PC9nPjxnPjxwYXRoIGQ9Ik0xNiw5VjRsMSwwYzAuNTUsMCwxLTAuNDUsMS0xdjBjMC0wLjU1LTAuNDUtMS0xLTFIN0M2LjQ1LDIsNiwyLjQ1LDYsM3YwIGMwLDAuNTUsMC40NSwxLDEsMWwxLDB2NWMwLDEuNjYtMS4zNCwzLTMsM2gwdjJoNS45N3Y3bDEsMWwxLTF2LTdIMTl2LTJoMEMxNy4zNCwxMiwxNiwxMC42NiwxNiw5eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9nPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNCAyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJrZWVwX291dGxpbmVfMjRweCI+PGc+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PC9nPjxnPjxwYXRoIGQ9Ik0xNCw0djVjMCwxLjEyLDAuMzcsMi4xNiwxLDNIOWMwLjY1LTAuODYsMS0xLjksMS0zVjRIMTQgTTE3LDJIN0M2LjQ1LDIsNiwyLjQ1LDYsM2MwLDAuNTUsMC40NSwxLDEsMWMwLDAsMCwwLDAsMGwxLDB2NSBjMCwxLjY2LTEuMzQsMy0zLDN2Mmg1Ljk3djdsMSwxbDEtMXYtN0gxOXYtMmMwLDAsMCwwLDAsMGMtMS42NiwwLTMtMS4zNC0zLTNWNGwxLDBjMCwwLDAsMCwwLDBjMC41NSwwLDEtMC40NSwxLTEgQzE4LDIuNDUsMTcuNTUsMiwxNywyTDE3LDJ6Ii8+PC9nPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNCAyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJsaWdodF9tb2RlXzI0cHgiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik0xMiw3Yy0yLjc2LDAtNSwyLjI0LTUsNXMyLjI0LDUsNSw1czUtMi4yNCw1LTVTMTQuNzYsNywxMiw3TDEyLDd6IE0yLDEzbDIsMGMwLjU1LDAsMS0wLjQ1LDEtMXMtMC40NS0xLTEtMWwtMiwwIGMtMC41NSwwLTEsMC40NS0xLDFTMS40NSwxMywyLDEzeiBNMjAsMTNsMiwwYzAuNTUsMCwxLTAuNDUsMS0xcy0wLjQ1LTEtMS0xbC0yLDBjLTAuNTUsMC0xLDAuNDUtMSwxUzE5LjQ1LDEzLDIwLDEzeiBNMTEsMnYyIGMwLDAuNTUsMC40NSwxLDEsMXMxLTAuNDUsMS0xVjJjMC0wLjU1LTAuNDUtMS0xLTFTMTEsMS40NSwxMSwyeiBNMTEsMjB2MmMwLDAuNTUsMC40NSwxLDEsMXMxLTAuNDUsMS0xdi0yYzAtMC41NS0wLjQ1LTEtMS0xIEMxMS40NSwxOSwxMSwxOS40NSwxMSwyMHogTTUuOTksNC41OGMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDBjLTAuMzksMC4zOS0wLjM5LDEuMDMsMCwxLjQxbDEuMDYsMS4wNiBjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBzMC4zOS0xLjAzLDAtMS40MUw1Ljk5LDQuNTh6IE0xOC4zNiwxNi45NWMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDBjLTAuMzksMC4zOS0wLjM5LDEuMDMsMCwxLjQxIGwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDFMMTguMzYsMTYuOTV6IE0xOS40Miw1Ljk5YzAuMzktMC4zOSwwLjM5LTEuMDMsMC0xLjQxIGMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDBsLTEuMDYsMS4wNmMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDFzMS4wMywwLjM5LDEuNDEsMEwxOS40Miw1Ljk5eiBNNy4wNSwxOC4zNiBjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDFjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwbC0xLjA2LDEuMDZjLTAuMzksMC4zOS0wLjM5LDEuMDMsMCwxLjQxczEuMDMsMC4zOSwxLjQxLDBMNy4wNSwxOC4zNnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0ibGluZV93ZWlnaHRfMjRweCI+PGc+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0IiB4PSIwIi8+PC9nPjxnPjxnPjxnPjxwYXRoIGQ9Ik0zLDE3aDE4di0ySDNWMTd6IE0zLDIwaDE4di0xSDNWMjB6IE0zLDEzaDE4di0zSDNWMTN6IE0zLDR2NGgxOFY0SDN6Ii8+PC9nPjwvZz48L2c+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0ibW9yZV92ZXJ0XzI0cHgiPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMTIgOGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTAgMmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAgNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0ibm90aWZpY2F0aW9uc19ub25lXzI0cHgiPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMTIgMjJjMS4xIDAgMi0uOSAyLTJoLTRjMCAxLjEuOSAyIDIgMnptNi02di01YzAtMy4wNy0xLjYzLTUuNjQtNC41LTYuMzJWNGMwLS44My0uNjctMS41LTEuNS0xLjVzLTEuNS42Ny0xLjUgMS41di42OEM3LjY0IDUuMzYgNiA3LjkyIDYgMTF2NWwtMiAydjFoMTZ2LTFsLTItMnptLTIgMUg4di02YzAtMi40OCAxLjUxLTQuNSA0LTQuNXM0IDIuMDIgNCA0LjV2NnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJvcGVuX2luX25ld18yNHB4Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDE5SDVWNWg3VjNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi03aC0ydjd6TTE0IDN2MmgzLjU5bC05LjgzIDkuODMgMS40MSAxLjQxTDE5IDYuNDFWMTBoMlYzaC03eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9InBhbGV0dGVfMjRweCI+PHBhdGggZD0iTTEyIDNjLTQuOTcgMC05IDQuMDMtOSA5czQuMDMgOSA5IDljLjgzIDAgMS41LS42NyAxLjUtMS41IDAtLjM5LS4xNS0uNzQtLjM5LTEuMDEtLjIzLS4yNi0uMzgtLjYxLS4zOC0uOTkgMC0uODMuNjctMS41IDEuNS0xLjVIMTZjMi43NiAwIDUtMi4yNCA1LTUgMC00LjQyLTQuMDMtOC05LTh6bS01LjUgOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgOSA2LjUgOSA4IDkuNjcgOCAxMC41IDcuMzMgMTIgNi41IDEyem0zLTRDOC42NyA4IDggNy4zMyA4IDYuNVM4LjY3IDUgOS41IDVzMS41LjY3IDEuNSAxLjVTMTAuMzMgOCA5LjUgOHptNSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTMuNjcgNSAxNC41IDVzMS41LjY3IDEuNSAxLjVTMTUuMzMgOCAxNC41IDh6bTMgNGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzE2LjY3IDkgMTcuNSA5czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJyZWZyZXNoXzI0cHgiPjxwYXRoIGQ9Ik0xNy42NSA2LjM1QzE2LjIgNC45IDE0LjIxIDQgMTIgNGMtNC40MiAwLTcuOTkgMy41OC03Ljk5IDhzMy41NyA4IDcuOTkgOGMzLjczIDAgNi44NC0yLjU1IDcuNzMtNmgtMi4wOGMtLjgyIDIuMzMtMy4wNCA0LTUuNjUgNC0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02YzEuNjYgMCAzLjE0LjY5IDQuMjIgMS43OEwxMyAxMWg3VjRsLTIuMzUgMi4zNXoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJzZWFyY2hfMjRweCI+PHBhdGggZD0iTTE1LjUgMTRoLS43OWwtLjI4LS4yN0MxNS40MSAxMi41OSAxNiAxMS4xMSAxNiA5LjUgMTYgNS45MSAxMy4wOSAzIDkuNSAzUzMgNS45MSAzIDkuNSA1LjkxIDE2IDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0ic2V0dGluZ3NfMjRweCI+PHBhdGggZD0iTTE5LjQzIDEyLjk4Yy4wNC0uMzIuMDctLjY0LjA3LS45OHMtLjAzLS42Ni0uMDctLjk4bDIuMTEtMS42NWMuMTktLjE1LjI0LS40Mi4xMi0uNjRsLTItMy40NmMtLjEyLS4yMi0uMzktLjMtLjYxLS4yMmwtMi40OSAxYy0uNTItLjQtMS4wOC0uNzMtMS42OS0uOThsLS4zOC0yLjY1QzE0LjQ2IDIuMTggMTQuMjUgMiAxNCAyaC00Yy0uMjUgMC0uNDYuMTgtLjQ5LjQybC0uMzggMi42NWMtLjYxLjI1LTEuMTcuNTktMS42OS45OGwtMi40OS0xYy0uMjMtLjA5LS40OSAwLS42MS4yMmwtMiAzLjQ2Yy0uMTMuMjItLjA3LjQ5LjEyLjY0bDIuMTEgMS42NWMtLjA0LjMyLS4wNy42NS0uMDcuOThzLjAzLjY2LjA3Ljk4bC0yLjExIDEuNjVjLS4xOS4xNS0uMjQuNDItLjEyLjY0bDIgMy40NmMuMTIuMjIuMzkuMy42MS4yMmwyLjQ5LTFjLjUyLjQgMS4wOC43MyAxLjY5Ljk4bC4zOCAyLjY1Yy4wMy4yNC4yNC40Mi40OS40Mmg0Yy4yNSAwIC40Ni0uMTguNDktLjQybC4zOC0yLjY1Yy42MS0uMjUgMS4xNy0uNTkgMS42OS0uOThsMi40OSAxYy4yMy4wOS40OSAwIC42MS0uMjJsMi0zLjQ2Yy4xMi0uMjIuMDctLjQ5LS4xMi0uNjRsLTIuMTEtMS42NXpNMTIgMTUuNWMtMS45MyAwLTMuNS0xLjU3LTMuNS0zLjVzMS41Ny0zLjUgMy41LTMuNSAzLjUgMS41NyAzLjUgMy41LTEuNTcgMy41LTMuNSAzLjV6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0ic2V0dGluZ3NfYmFja3VwX3Jlc3RvcmVfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xNCAxMmMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDIgLjkgMiAyIDIgMi0uOSAyLTJ6bS0yLTljLTQuOTcgMC05IDQuMDMtOSA5SDBsNCA0IDQtNEg1YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS41MSAwLTIuOTEtLjQ5LTQuMDYtMS4zbC0xLjQyIDEuNDRDOC4wNCAyMC4zIDkuOTQgMjEgMTIgMjFjNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0ic2V0dGluZ3Nfb3ZlcnNjYW5fMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xMi4wMSA1LjVMMTAgOGg0bC0xLjk5LTIuNXpNMTggMTB2NGwyLjUtMS45OUwxOCAxMHpNNiAxMGwtMi41IDIuMDFMNiAxNHYtNHptOCA2aC00bDIuMDEgMi41TDE0IDE2em03LTEzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNi4wMUgzVjQuOTloMTh2MTQuMDJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0idmlzaWJpbGl0eV9vZmZfMjRweCI+PHBhdGggZD0iTTEyIDdjMi43NiAwIDUgMi4yNCA1IDUgMCAuNjUtLjEzIDEuMjYtLjM2IDEuODNsMi45MiAyLjkyYzEuNTEtMS4yNiAyLjctMi44OSAzLjQzLTQuNzUtMS43My00LjM5LTYtNy41LTExLTcuNS0xLjQgMC0yLjc0LjI1LTMuOTguN2wyLjE2IDIuMTZDMTAuNzQgNy4xMyAxMS4zNSA3IDEyIDd6TTIgNC4yN2wyLjI4IDIuMjguNDYuNDZDMy4wOCA4LjMgMS43OCAxMC4wMiAxIDEyYzEuNzMgNC4zOSA2IDcuNSAxMSA3LjUgMS41NSAwIDMuMDMtLjMgNC4zOC0uODRsLjQyLjQyTDE5LjczIDIyIDIxIDIwLjczIDMuMjcgMyAyIDQuMjd6TTcuNTMgOS44bDEuNTUgMS41NWMtLjA1LjIxLS4wOC40My0uMDguNjUgMCAxLjY2IDEuMzQgMyAzIDMgLjIyIDAgLjQ0LS4wMy42NS0uMDhsMS41NSAxLjU1Yy0uNjcuMzMtMS40MS41My0yLjIuNTMtMi43NiAwLTUtMi4yNC01LTUgMC0uNzkuMi0xLjUzLjUzLTIuMnptNC4zMS0uNzhsMy4xNSAzLjE1LjAyLS4xNmMwLTEuNjYtMS4zNC0zLTMtM2wtLjE3LjAxeiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaWQ9Indhcm5pbmdfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xIDIxaDIyTDEyIDIgMSAyMXptMTItM2gtMnYtMmgydjJ6bTAtNGgtMnYtNGgydjR6Ii8+PC9zdmc+PC9kZWZzPjwvc3ZnPgo=", + "ok": true, + "headers": [ + [ + "content-length", + "4392" + ], + [ + "content-type", + "image/svg+xml; charset=utf-8" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/data/plugins_listing": { + "data": "eyJ0aW1lc2VyaWVzIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IHRydWUsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJUaW1lIFNlcmllcyIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJOR19DT01QT05FTlQifX0sICJzY2FsYXJzIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IHRydWUsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJzY2FsYXJzIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1zY2FsYXItZGFzaGJvYXJkIn19LCAiY3VzdG9tX3NjYWxhcnMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJDdXN0b20gU2NhbGFycyIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJDVVNUT01fRUxFTUVOVCIsICJlbGVtZW50X25hbWUiOiAidGYtY3VzdG9tLXNjYWxhci1kYXNoYm9hcmQifX0sICJpbWFnZXMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJpbWFnZXMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWltYWdlLWRhc2hib2FyZCJ9fSwgImF1ZGlvIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiYXVkaW8iLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWF1ZGlvLWRhc2hib2FyZCJ9fSwgImRlYnVnZ2VyLXYyIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiRGVidWdnZXIgVjIiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiTkdfQ09NUE9ORU5UIn19LCAiZ3JhcGhzIjogeyJkaXNhYmxlX3JlbG9hZCI6IHRydWUsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJncmFwaHMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWdyYXBoLWRhc2hib2FyZCJ9fSwgImRpc3RyaWJ1dGlvbnMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJkaXN0cmlidXRpb25zIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1kaXN0cmlidXRpb24tZGFzaGJvYXJkIn19LCAiaGlzdG9ncmFtcyI6IHsiZGlzYWJsZV9yZWxvYWQiOiBmYWxzZSwgImVuYWJsZWQiOiBmYWxzZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogImhpc3RvZ3JhbXMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWhpc3RvZ3JhbS1kYXNoYm9hcmQifX0sICJ0ZXh0IjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IHRydWUsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJ0ZXh0IiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi10ZXh0LWRhc2hib2FyZCJ9fSwgInByX2N1cnZlcyI6IHsiZGlzYWJsZV9yZWxvYWQiOiBmYWxzZSwgImVuYWJsZWQiOiBmYWxzZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogIlBSIEN1cnZlcyIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJDVVNUT01fRUxFTUVOVCIsICJlbGVtZW50X25hbWUiOiAidGYtcHItY3VydmUtZGFzaGJvYXJkIn19LCAicHJvZmlsZV9yZWRpcmVjdCI6IHsiZGlzYWJsZV9yZWxvYWQiOiBmYWxzZSwgImVuYWJsZWQiOiBmYWxzZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogIlByb2ZpbGUiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLXByb2ZpbGUtcmVkaXJlY3QtZGFzaGJvYXJkIn19LCAiaHBhcmFtcyI6IHsiZGlzYWJsZV9yZWxvYWQiOiBmYWxzZSwgImVuYWJsZWQiOiBmYWxzZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogImhwYXJhbXMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWhwYXJhbXMtZGFzaGJvYXJkIn19LCAibWVzaCI6IHsiZGlzYWJsZV9yZWxvYWQiOiBmYWxzZSwgImVuYWJsZWQiOiBmYWxzZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogIm1lc2giLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogIm1lc2gtZGFzaGJvYXJkIn19LCAid2l0X3JlZGlyZWN0IjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiV2hhdC1JZiBUb29sIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi13aXQtcmVkaXJlY3QtZGFzaGJvYXJkIn19LCAicHJvamVjdG9yIjogeyJkaXNhYmxlX3JlbG9hZCI6IHRydWUsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJwcm9qZWN0b3IiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiSUZSQU1FIiwgIm1vZHVsZV9wYXRoIjogIi9kYXRhL3BsdWdpbi9wcm9qZWN0b3IvaW5kZXguanMifX19", + "ok": true, + "headers": [ + [ + "content-length", + "504" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/hparams/experiment?request=%7B%22experimentName%22:%22defaultExperimentId%22,%22hparamsLimit%22:1000,%22includeMetrics%22:false%7D": { + "data": "ewogICJuYW1lIjogIiIsCiAgImRlc2NyaXB0aW9uIjogIiIsCiAgInVzZXIiOiAiIiwKICAidGltZUNyZWF0ZWRTZWNzIjogMC4wLAogICJocGFyYW1JbmZvcyI6IFtdLAogICJtZXRyaWNJbmZvcyI6IFtdCn0=", + "ok": true, + "headers": [ + [ + "content-length", + "103" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/data/runs": { + "data": "WyIuIl0=", + "ok": true, + "headers": [ + [ + "content-length", + "25" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/runs": { + "data": "WyIuIl0=", + "ok": true, + "headers": [ + [ + "content-length", + "25" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/font-roboto/RxZJdnzeo3R5zSexge8UUZBw1xU1rKptJj_0jans920.woff2": { + "data": "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", + "ok": true, + "headers": [ + [ + "content-length", + "10811" + ], + [ + "content-type", + "font/woff2" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/data/environment": { + "data": "eyJ2ZXJzaW9uIjogIjIuMTcuMSIsICJkYXRhX2xvY2F0aW9uIjogIi9jb250ZW50L291dHB1dC9kZmluZV9oZ25ldHYyX2xfY3VzdG9tL3N1bW1hcnkiLCAid2luZG93X3RpdGxlIjogIiIsICJleHBlcmltZW50X25hbWUiOiAiIiwgImV4cGVyaW1lbnRfZGVzY3JpcHRpb24iOiAiIiwgImNyZWF0aW9uX3RpbWUiOiAwLjAsICJkZWJ1ZyI6IHsiZGF0YV9wcm92aWRlciI6ICJHcnBjRGF0YVByb3ZpZGVyKGFkZHI9J2xvY2FsaG9zdDo0MjE4NScpIiwgImZsYWdzIjogeyJsb2dkaXIiOiAiL2NvbnRlbnQvb3V0cHV0L2RmaW5lX2hnbmV0djJfbF9jdXN0b20vc3VtbWFyeSIsICJsb2dkaXJfc3BlYyI6ICIiLCAiaG9zdCI6IG51bGwsICJiaW5kX2FsbCI6IGZhbHNlLCAicG9ydCI6IG51bGwsICJyZXVzZV9wb3J0IjogZmFsc2UsICJsb2FkX2Zhc3QiOiAiYXV0byIsICJleHRyYV9kYXRhX3NlcnZlcl9mbGFncyI6ICIiLCAiZ3JwY19jcmVkc190eXBlIjogImxvY2FsIiwgImdycGNfZGF0YV9wcm92aWRlciI6ICIiLCAicHVyZ2Vfb3JwaGFuZWRfZGF0YSI6IHRydWUsICJkYiI6ICIiLCAiZGJfaW1wb3J0IjogZmFsc2UsICJpbnNwZWN0IjogZmFsc2UsICJ2ZXJzaW9uX3RiIjogZmFsc2UsICJ0YWciOiAiIiwgImV2ZW50X2ZpbGUiOiAiIiwgInBhdGhfcHJlZml4IjogIiIsICJ3aW5kb3dfdGl0bGUiOiAiIiwgIm1heF9yZWxvYWRfdGhyZWFkcyI6IDEsICJyZWxvYWRfaW50ZXJ2YWwiOiA1LjAsICJyZWxvYWRfdGFzayI6ICJhdXRvIiwgInJlbG9hZF9tdWx0aWZpbGUiOiBudWxsLCAicmVsb2FkX211bHRpZmlsZV9pbmFjdGl2ZV9zZWNzIjogODY0MDAsICJnZW5lcmljX2RhdGEiOiAiYXV0byIsICJzYW1wbGVzX3Blcl9wbHVnaW4iOiB7fSwgImRldGVjdF9maWxlX3JlcGxhY2VtZW50IjogbnVsbCwgIl9fdGVuc29yYm9hcmRfc3ViY29tbWFuZCI6ICJzZXJ2ZSJ9fX0=", + "ok": true, + "headers": [ + [ + "content-length", + "476" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/hparams/session_groups?request=%7B%22experimentName%22:%22defaultExperimentId%22,%22allowedStatuses%22:%5B%22STATUS_FAILURE%22,%22STATUS_RUNNING%22,%22STATUS_SUCCESS%22,%22STATUS_UNKNOWN%22%5D,%22colParams%22:%5B%5D,%22startIndex%22:0,%22sliceSize%22:1000000,%22includeMetrics%22:false%7D": { + "data": "ewogICJzZXNzaW9uR3JvdXBzIjogW10sCiAgInRvdGFsU2l6ZSI6IDAKfQ==", + "ok": true, + "headers": [ + [ + "content-length", + "59" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/tags": { + "data": "eyJzY2FsYXJzIjogeyJydW5UYWdJbmZvIjogeyIuIjogWyJMb3NzL2xvc3NfYmJveCIsICJMb3NzL2xvc3NfYmJveF9hdXhfMCIsICJMb3NzL2xvc3NfYmJveF9hdXhfMSIsICJMb3NzL2xvc3NfYmJveF9hdXhfMiIsICJMb3NzL2xvc3NfYmJveF9hdXhfMyIsICJMb3NzL2xvc3NfYmJveF9hdXhfNCIsICJMb3NzL2xvc3NfYmJveF9kbl8wIiwgIkxvc3MvbG9zc19iYm94X2RuXzEiLCAiTG9zcy9sb3NzX2Jib3hfZG5fMiIsICJMb3NzL2xvc3NfYmJveF9kbl8zIiwgIkxvc3MvbG9zc19iYm94X2RuXzQiLCAiTG9zcy9sb3NzX2Jib3hfZG5fNSIsICJMb3NzL2xvc3NfYmJveF9kbl9wcmUiLCAiTG9zcy9sb3NzX2Jib3hfZW5jXzAiLCAiTG9zcy9sb3NzX2Jib3hfcHJlIiwgIkxvc3MvbG9zc19kZGZfYXV4XzAiLCAiTG9zcy9sb3NzX2RkZl9hdXhfMSIsICJMb3NzL2xvc3NfZGRmX2F1eF8yIiwgIkxvc3MvbG9zc19kZGZfYXV4XzMiLCAiTG9zcy9sb3NzX2RkZl9hdXhfNCIsICJMb3NzL2xvc3NfZGRmX2RuXzAiLCAiTG9zcy9sb3NzX2RkZl9kbl8xIiwgIkxvc3MvbG9zc19kZGZfZG5fMiIsICJMb3NzL2xvc3NfZGRmX2RuXzMiLCAiTG9zcy9sb3NzX2RkZl9kbl80IiwgIkxvc3MvbG9zc19kZGZfZG5fNSIsICJMb3NzL2xvc3NfZmdsIiwgIkxvc3MvbG9zc19mZ2xfYXV4XzAiLCAiTG9zcy9sb3NzX2ZnbF9hdXhfMSIsICJMb3NzL2xvc3NfZmdsX2F1eF8yIiwgIkxvc3MvbG9zc19mZ2xfYXV4XzMiLCAiTG9zcy9sb3NzX2ZnbF9hdXhfNCIsICJMb3NzL2xvc3NfZmdsX2RuXzAiLCAiTG9zcy9sb3NzX2ZnbF9kbl8xIiwgIkxvc3MvbG9zc19mZ2xfZG5fMiIsICJMb3NzL2xvc3NfZmdsX2RuXzMiLCAiTG9zcy9sb3NzX2ZnbF9kbl80IiwgIkxvc3MvbG9zc19mZ2xfZG5fNSIsICJMb3NzL2xvc3NfZ2lvdSIsICJMb3NzL2xvc3NfZ2lvdV9hdXhfMCIsICJMb3NzL2xvc3NfZ2lvdV9hdXhfMSIsICJMb3NzL2xvc3NfZ2lvdV9hdXhfMiIsICJMb3NzL2xvc3NfZ2lvdV9hdXhfMyIsICJMb3NzL2xvc3NfZ2lvdV9hdXhfNCIsICJMb3NzL2xvc3NfZ2lvdV9kbl8wIiwgIkxvc3MvbG9zc19naW91X2RuXzEiLCAiTG9zcy9sb3NzX2dpb3VfZG5fMiIsICJMb3NzL2xvc3NfZ2lvdV9kbl8zIiwgIkxvc3MvbG9zc19naW91X2RuXzQiLCAiTG9zcy9sb3NzX2dpb3VfZG5fNSIsICJMb3NzL2xvc3NfZ2lvdV9kbl9wcmUiLCAiTG9zcy9sb3NzX2dpb3VfZW5jXzAiLCAiTG9zcy9sb3NzX2dpb3VfcHJlIiwgIkxvc3MvbG9zc192ZmwiLCAiTG9zcy9sb3NzX3ZmbF9hdXhfMCIsICJMb3NzL2xvc3NfdmZsX2F1eF8xIiwgIkxvc3MvbG9zc192ZmxfYXV4XzIiLCAiTG9zcy9sb3NzX3ZmbF9hdXhfMyIsICJMb3NzL2xvc3NfdmZsX2F1eF80IiwgIkxvc3MvbG9zc192ZmxfZG5fMCIsICJMb3NzL2xvc3NfdmZsX2RuXzEiLCAiTG9zcy9sb3NzX3ZmbF9kbl8yIiwgIkxvc3MvbG9zc192ZmxfZG5fMyIsICJMb3NzL2xvc3NfdmZsX2RuXzQiLCAiTG9zcy9sb3NzX3ZmbF9kbl81IiwgIkxvc3MvbG9zc192ZmxfZG5fcHJlIiwgIkxvc3MvbG9zc192ZmxfZW5jXzAiLCAiTG9zcy9sb3NzX3ZmbF9wcmUiLCAiTG9zcy90b3RhbCIsICJMci9wZ18wIiwgIkxyL3BnXzEiLCAiTHIvcGdfMiIsICJUZXN0L2NvY29fZXZhbF9iYm94XzAiLCAiVGVzdC9jb2NvX2V2YWxfYmJveF8xIiwgIlRlc3QvY29jb19ldmFsX2Jib3hfMTAiLCAiVGVzdC9jb2NvX2V2YWxfYmJveF8xMSIsICJUZXN0L2NvY29fZXZhbF9iYm94XzIiLCAiVGVzdC9jb2NvX2V2YWxfYmJveF8zIiwgIlRlc3QvY29jb19ldmFsX2Jib3hfNCIsICJUZXN0L2NvY29fZXZhbF9iYm94XzUiLCAiVGVzdC9jb2NvX2V2YWxfYmJveF82IiwgIlRlc3QvY29jb19ldmFsX2Jib3hfNyIsICJUZXN0L2NvY29fZXZhbF9iYm94XzgiLCAiVGVzdC9jb2NvX2V2YWxfYmJveF85Il19LCAidGFnRGVzY3JpcHRpb25zIjoge319LCAiaGlzdG9ncmFtcyI6IHsicnVuVGFnSW5mbyI6IHt9LCAidGFnRGVzY3JpcHRpb25zIjoge319LCAiaW1hZ2VzIjogeyJ0YWdEZXNjcmlwdGlvbnMiOiB7fSwgInRhZ1J1blNhbXBsZWRJbmZvIjoge319fQ==", + "ok": true, + "headers": [ + [ + "content-length", + "423" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/font-roboto/vPcynSL0qHq_6dX7lKVByXYhjbSpvc47ee6xR_80Hnw.woff2": { + "data": "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", + "ok": true, + "headers": [ + [ + "content-length", + "12375" + ], + [ + "content-type", + "font/woff2" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/font-roboto/d-6IYplOFocCacKzxwXSOJBw1xU1rKptJj_0jans920.woff2": { + "data": "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", + "ok": true, + "headers": [ + [ + "content-length", + "10787" + ], + [ + "content-type", + "font/woff2" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Loss/loss_bbox%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIkxvc3MvbG9zc19iYm94IiwgInJ1blRvU2VyaWVzIjogeyIuIjogW3sid2FsbFRpbWUiOiAxNzMzMDY3NjMxLjUzNzIwNTUsICJzdGVwIjogMCwgInZhbHVlIjogMS44NDQ4Nzc3MTk4NzkxNTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NDYuNjUwNDg1OCwgInN0ZXAiOiAxMCwgInZhbHVlIjogMi4wNzk4NDM5OTc5NTUzMjIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NjAuNzgyNjAzNywgInN0ZXAiOiAyMCwgInZhbHVlIjogMS44OTIyNzEwNDE4NzAxMTcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NzQuMTM1ODAwNCwgInN0ZXAiOiAzMCwgInZhbHVlIjogMS44MDE5MjQ5NDM5MjM5NTAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2ODcuMDU1NDgyMSwgInN0ZXAiOiA0MCwgInZhbHVlIjogMi4wMzA1MDg5OTUwNTYxNTIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2OTkuNDkxMzkwMiwgInN0ZXAiOiA1MCwgInZhbHVlIjogMS4yOTczODU0NTQxNzc4NTY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MTAuNjI3Njc2NSwgInN0ZXAiOiA2MCwgInZhbHVlIjogMS42MjM0NzcyMjA1MzUyNzgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MjIuNzUzODc4NCwgInN0ZXAiOiA3MCwgInZhbHVlIjogMS4zOTg1MjM0NDk4OTc3NjYxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MzMuNzIzNzU0NiwgInN0ZXAiOiA4MCwgInZhbHVlIjogMC45NDUxMzA4ODQ2NDczNjk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NTAuOTQ0NzE4LCAic3RlcCI6IDkwLCAidmFsdWUiOiAxLjI1NjQ4NTcwMDYwNzI5OTh9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc2MS45NzkyMjAyLCAic3RlcCI6IDEwMCwgInZhbHVlIjogMS4xMDQyMTg2MDIxODA0ODF9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc3MS42MDQ4MDksICJzdGVwIjogMTEwLCAidmFsdWUiOiAwLjcyNDE1MjA4ODE2NTI4MzJ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc4MC41NDU3MzcsICJzdGVwIjogMTIwLCAidmFsdWUiOiAwLjYxNzYyNTA1NzY5NzI5NjF9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc5MC40ODM2MDA0LCAic3RlcCI6IDEzMCwgInZhbHVlIjogMC44MDMyNzQ1MTIyOTA5NTQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3OTkuMTAzOTg2LCAic3RlcCI6IDE0MCwgInZhbHVlIjogMC40MzAxNjQ1NzU1NzY3ODIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MDkuNDQyODc1OSwgInN0ZXAiOiAxNTAsICJ2YWx1ZSI6IDAuNjQ0ODcyMjQ4MTcyNzZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzgxOC45MTkxMTc1LCAic3RlcCI6IDE2MCwgInZhbHVlIjogMC41OTMxNjUyNzg0MzQ3NTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MzYuNjQ3OTUxNiwgInN0ZXAiOiAxNzAsICJ2YWx1ZSI6IDAuNDQ2MTQyODIyNTA0MDQzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODQ2LjM4OTA4OCwgInN0ZXAiOiAxODAsICJ2YWx1ZSI6IDAuNjYzMzUxOTUzMDI5NjMyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODU1LjY2NTE4MTksICJzdGVwIjogMTkwLCAidmFsdWUiOiAwLjQzNDczMTcyMTg3ODA1MTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4NjQuODg2OTQzNiwgInN0ZXAiOiAyMDAsICJ2YWx1ZSI6IDAuNzgxNTI0MDYyMTU2Njc3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODczLjk5OTk3MzgsICJzdGVwIjogMjEwLCAidmFsdWUiOiAwLjYwMTU0NjEwODcyMjY4Njh9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg4My43ODM0MDA4LCAic3RlcCI6IDIyMCwgInZhbHVlIjogMC40MDE3OTYwNzI3MjE0ODEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4OTIuMTIxNDk5NSwgInN0ZXAiOiAyMzAsICJ2YWx1ZSI6IDAuNTExMDQwMzI5OTMzMTY2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTAxLjA2NzYxODQsICJzdGVwIjogMjQwLCAidmFsdWUiOiAwLjUwMTk2NTI4NDM0NzUzNDJ9LCB7IndhbGxUaW1lIjogMTczMzA2NzkxMC4wNzMzMDA0LCAic3RlcCI6IDI1MCwgInZhbHVlIjogMC40Njg3NTUxMjU5OTk0NTA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MjUuOTQ4NDMzNiwgInN0ZXAiOiAyNjAsICJ2YWx1ZSI6IDAuNzcxNzk3MzU4OTg5NzE1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTM1LjQ1ODk2MjcsICJzdGVwIjogMjcwLCAidmFsdWUiOiAwLjQzMTE5MTA1Njk2Njc4MTZ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk0NC4wMTI2ODgsICJzdGVwIjogMjgwLCAidmFsdWUiOiAwLjQ3Mzg2NDc5Mzc3NzQ2NTh9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk1Mi41NDM3NTA4LCAic3RlcCI6IDI5MCwgInZhbHVlIjogMC40NzIwODEzMDM1OTY0OTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NjEuMDI1MTAyNCwgInN0ZXAiOiAzMDAsICJ2YWx1ZSI6IDAuMzI2NjQ1NjEyNzE2Njc0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTcwLjEzMjgwMywgInN0ZXAiOiAzMTAsICJ2YWx1ZSI6IDAuNTM0MjA1NDk2MzExMTg3N30sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTgwLjIyNDEyMSwgInN0ZXAiOiAzMjAsICJ2YWx1ZSI6IDAuNDUwNDIwMjYwNDI5MzgyM30sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTg4LjgxNDQzOTgsICJzdGVwIjogMzMwLCAidmFsdWUiOiAwLjUzNzg5MDkxMTEwMjI5NDl9LCB7IndhbGxUaW1lIjogMTczMzA2ODAwNS4wODkwMzA1LCAic3RlcCI6IDM0MCwgInZhbHVlIjogMC40MTQ4NTc3NDUxNzA1OTMyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDE0LjA2MzQ4NTYsICJzdGVwIjogMzUwLCAidmFsdWUiOiAwLjQwMTE1NjU0NDY4NTM2Mzc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMjIuNTUxMzg5NywgInN0ZXAiOiAzNjAsICJ2YWx1ZSI6IDAuNDYxMTEyMDIyMzk5OTAyMzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODAzMS44MjMxNDEsICJzdGVwIjogMzcwLCAidmFsdWUiOiAwLjQ5NzIzODM5NzU5ODI2NjZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODA0MC43ODYyNTY2LCAic3RlcCI6IDM4MCwgInZhbHVlIjogMC4zNzAyNDM3MjgxNjA4NTgxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDUwLjE1ODY5NCwgInN0ZXAiOiAzOTAsICJ2YWx1ZSI6IDAuMzkxOTU5MzA5NTc3OTQxOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDU5LjEyNDUxNzIsICJzdGVwIjogNDAwLCAidmFsdWUiOiAwLjI5NzA4Mzc2NTI2ODMyNTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODA2OC4wODg1ODM1LCAic3RlcCI6IDQxMCwgInZhbHVlIjogMC42NzAzNTE2MjQ0ODg4MzA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwODQuODQyMzc5MywgInN0ZXAiOiA0MjAsICJ2YWx1ZSI6IDAuMzg1MDk0NzAyMjQzODA0OTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODA5NC42NjUwOSwgInN0ZXAiOiA0MzAsICJ2YWx1ZSI6IDAuNTAyMjcxMTE1Nzc5ODc2N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTAzLjcwNjU4NzYsICJzdGVwIjogNDQwLCAidmFsdWUiOiAwLjM0MzAzOTAzNTc5NzExOTE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMTIuNjk4MjU3MiwgInN0ZXAiOiA0NTAsICJ2YWx1ZSI6IDAuNDI5NDYwMDQ4Njc1NTM3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTIxLjQ5OTU5NiwgInN0ZXAiOiA0NjAsICJ2YWx1ZSI6IDAuNTMzNTAzNzcwODI4MjQ3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTMwLjcyNjQwMywgInN0ZXAiOiA0NzAsICJ2YWx1ZSI6IDAuMzk4MDE4MzMwMzM1NjE3MDd9LCB7IndhbGxUaW1lIjogMTczMzA2ODEzOS44NTQzOTYsICJzdGVwIjogNDgwLCAidmFsdWUiOiAwLjQwNDc0NDQxNjQ3NTI5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTQ5LjM2ODc3NCwgInN0ZXAiOiA0OTAsICJ2YWx1ZSI6IDAuNTMzMDc2MTY3MTA2NjI4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTU4LjA2ODc3MDYsICJzdGVwIjogNTAwLCAidmFsdWUiOiAwLjUxOTIwNzQxNzk2NDkzNTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODE3NC4xMTM4NywgInN0ZXAiOiA1MTAsICJ2YWx1ZSI6IDAuNDgwMzYxNjEwNjUxMDE2MjR9LCB7IndhbGxUaW1lIjogMTczMzA2ODE4Mi43MTgzNjA3LCAic3RlcCI6IDUyMCwgInZhbHVlIjogMC4zNzY2OTg0MzQzNTI4NzQ3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTkyLjQxMjM4MzMsICJzdGVwIjogNTMwLCAidmFsdWUiOiAwLjQwNDA5MDU4MzMyNDQzMjR9LCB7IndhbGxUaW1lIjogMTczMzA2ODIwMS44MDY5MTcsICJzdGVwIjogNTQwLCAidmFsdWUiOiAwLjM5MTY0Nzk5NDUxODI4MDAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMTAuNjUzMzE5MSwgInN0ZXAiOiA1NTAsICJ2YWx1ZSI6IDAuNTkwMDg5NjE5MTU5Njk4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjIwLjE5MzgzNjcsICJzdGVwIjogNTYwLCAidmFsdWUiOiAwLjcyOTA2Nzk4MTI0MzEzMzV9LCB7IndhbGxUaW1lIjogMTczMzA2ODIyOS4xNTgwODk0LCAic3RlcCI6IDU3MCwgInZhbHVlIjogMC4zMTU0NzU5MTA5MDIwMjMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMzguNTkwMjI4OCwgInN0ZXAiOiA1ODAsICJ2YWx1ZSI6IDAuMjkxODc1NjMwNjE3MTQxN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjU2LjA3MTQyNCwgInN0ZXAiOiA1OTAsICJ2YWx1ZSI6IDAuNDIzNDMzNDUyODQ0NjE5NzV9LCB7IndhbGxUaW1lIjogMTczMzA2ODI2NS40MzA2ODgxLCAic3RlcCI6IDYwMCwgInZhbHVlIjogMC40OTk4NjQ5MzU4NzQ5Mzg5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Mjc0LjY1NTM2NTUsICJzdGVwIjogNjEwLCAidmFsdWUiOiAwLjY2Mzc1NTA1OTI0MjI0ODV9LCB7IndhbGxUaW1lIjogMTczMzA2ODI4My43Njg4NDg0LCAic3RlcCI6IDYyMCwgInZhbHVlIjogMC41OTE0NDQ0OTIzNDAwODc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyOTMuMzMyOTc3OCwgInN0ZXAiOiA2MzAsICJ2YWx1ZSI6IDAuNDU2NDE0MjgyMzIxOTI5OTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODMwMi42NDU5ODM1LCAic3RlcCI6IDY0MCwgInZhbHVlIjogMC4zODMxMTg1Njk4NTA5MjE2M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzExLjM4Njk2OTYsICJzdGVwIjogNjUwLCAidmFsdWUiOiAwLjM0Mjg5NDUyNDMzNTg2MTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODMyMC4zODg5NjMyLCAic3RlcCI6IDY2MCwgInZhbHVlIjogMC40NTM3OTc5OTYwNDQxNTg5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzI4LjczMDEyMDQsICJzdGVwIjogNjcwLCAidmFsdWUiOiAwLjM3MTUxNzg5NjY1MjIyMTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODM0NC40NjAwMjYzLCAic3RlcCI6IDY4MCwgInZhbHVlIjogMC4zOTgyMzU3OTc4ODIwODAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNTMuNzE1Nzk5MywgInN0ZXAiOiA2OTAsICJ2YWx1ZSI6IDAuMzU2MDg3OTIzMDQ5OTI2NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODM2Mi4wNTY2NjQyLCAic3RlcCI6IDcwMCwgInZhbHVlIjogMC4zMzA0OTc3NDE2OTkyMTg3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzcxLjEwMjkyOCwgInN0ZXAiOiA3MTAsICJ2YWx1ZSI6IDAuNTIyMzQyODAxMDk0MDU1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzgwLjUzMTk2MDcsICJzdGVwIjogNzIwLCAidmFsdWUiOiAwLjQwNzE1ODU4MzQwMjYzMzY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzOTAuMDg1NjA1NCwgInN0ZXAiOiA3MzAsICJ2YWx1ZSI6IDAuMzE1NDk5MDM3NTA0MTk2MTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODM5OC43MTk5MTg1LCAic3RlcCI6IDc0MCwgInZhbHVlIjogMC40NjQxMDE4ODA3ODg4MDMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MDcuMTIyOTEwMywgInN0ZXAiOiA3NTAsICJ2YWx1ZSI6IDAuNDA5MjA3NDkzMDY2Nzg3N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDIzLjA2ODc4ODUsICJzdGVwIjogNzYwLCAidmFsdWUiOiAwLjQxMjIzMzIwMzY0OTUyMDl9LCB7IndhbGxUaW1lIjogMTczMzA2ODQzMS40MDQyMjgyLCAic3RlcCI6IDc3MCwgInZhbHVlIjogMC4zMzAwMjM0Njc1NDA3NDA5N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDQwLjQyMzg0NDMsICJzdGVwIjogNzgwLCAidmFsdWUiOiAwLjM1NDY1NTc0MjY0NTI2MzY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NDkuMDA1MzU0NCwgInN0ZXAiOiA3OTAsICJ2YWx1ZSI6IDAuMzc1NjcwOTM5NjgzOTE0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDU3LjYzNTQwNSwgInN0ZXAiOiA4MDAsICJ2YWx1ZSI6IDAuMzk5NTAyNzU0MjExNDI1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDY3LjA0NjIxNjIsICJzdGVwIjogODEwLCAidmFsdWUiOiAwLjM4MDU4MTkxNTM3ODU3MDU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NzUuNjE5MzU1NCwgInN0ZXAiOiA4MjAsICJ2YWx1ZSI6IDAuMzczNzA3Mjk0NDY0MTExMzN9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ4NC45Nzc4NTAyLCAic3RlcCI6IDgzMCwgInZhbHVlIjogMC4zNzc3NTIzNjM2ODE3OTMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MDAuNzMwNjIsICJzdGVwIjogODQwLCAidmFsdWUiOiAwLjQwNjQ4MzgyOTAyMTQ1Mzg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MDkuMzA2ODU3OCwgInN0ZXAiOiA4NTAsICJ2YWx1ZSI6IDAuNDE3MjUxNzM1OTI1Njc0NDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODUxOS4wMjEyNDU1LCAic3RlcCI6IDg2MCwgInZhbHVlIjogMC40MTQxMTc3MjM3MDMzODQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MjcuNDk3NjcsICJzdGVwIjogODcwLCAidmFsdWUiOiAwLjMzMjAyMzA1NDM2MTM0MzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODUzNi45MTkzNzQsICJzdGVwIjogODgwLCAidmFsdWUiOiAwLjQ4NTI3MjE2OTExMzE1OTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODU0NC45MDc5MjEzLCAic3RlcCI6IDg5MCwgInZhbHVlIjogMC4zNTI5NzQ4NjE4NjAyNzUyN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTUzLjU3ODE2MTcsICJzdGVwIjogOTAwLCAidmFsdWUiOiAwLjM3NTg4OTU2OTUyMDk1MDN9LCB7IndhbGxUaW1lIjogMTczMzA2ODU2Mi42ODUyMTg2LCAic3RlcCI6IDkxMCwgInZhbHVlIjogMC40MTU2MzY4OTcwODcwOTcxN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTcxLjI0NTQ0MTQsICJzdGVwIjogOTIwLCAidmFsdWUiOiAwLjM0MTgwNDc0MjgxMzExMDM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1ODQuNzc1NTI0LCAic3RlcCI6IDkzMCwgInZhbHVlIjogMC4zODY4MDI4ODE5NTYxMDA0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTkzLjc3MTg1NjgsICJzdGVwIjogOTQwLCAidmFsdWUiOiAwLjM3MTY5OTkyOTIzNzM2NTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODYwMi43NjYwMzgyLCAic3RlcCI6IDk1MCwgInZhbHVlIjogMC40NTI2NDg1MjA0Njk2NjU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MTEuMDQwMDYxNSwgInN0ZXAiOiA5NjAsICJ2YWx1ZSI6IDAuMjg3NjIxMzc4ODk4NjIwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjIwLjIyNjk0MDYsICJzdGVwIjogOTcwLCAidmFsdWUiOiAwLjMzNTAwNTg0OTU5OTgzODI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MjguODQxOTM1NCwgInN0ZXAiOiA5ODAsICJ2YWx1ZSI6IDAuNDA2MjY0OTMwOTYzNTE2MjR9LCB7IndhbGxUaW1lIjogMTczMzA2ODYzNy42MzA4MzEsICJzdGVwIjogOTkwLCAidmFsdWUiOiAwLjMzNTY5NDk5ODUwMjczMTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODY0Ni42NzM0NDc0LCAic3RlcCI6IDEwMDAsICJ2YWx1ZSI6IDAuMzkyMzQ2NjIwNTU5NjkyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjYyLjc1NzI1NDEsICJzdGVwIjogMTAxMCwgInZhbHVlIjogMC4yNTA3MzkwMzc5OTA1NzAwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjcyLjA1NDgyMzYsICJzdGVwIjogMTAyMCwgInZhbHVlIjogMC4zMDE5NjkyMzAxNzUwMTgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2ODAuNTYzNTk5OCwgInN0ZXAiOiAxMDMwLCAidmFsdWUiOiAwLjMyOTUwMDA3OTE1NDk2ODI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2OTAuMTg2MzA2LCAic3RlcCI6IDEwNDAsICJ2YWx1ZSI6IDAuMzU2OTYxNDI5MTE5MTEwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Njk4Ljg0ODU0OTgsICJzdGVwIjogMTA1MCwgInZhbHVlIjogMC4zNDA5MTQ0NTgwMzY0MjI3M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzA3Ljc0NDAyMywgInN0ZXAiOiAxMDYwLCAidmFsdWUiOiAwLjc2MTU3MTUyNjUyNzQwNDh9LCB7IndhbGxUaW1lIjogMTczMzA2ODcxNy4zNDUyMjk2LCAic3RlcCI6IDEwNzAsICJ2YWx1ZSI6IDAuMzM5NzAyOTYzODI5MDQwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzI2LjM2MTk2OTUsICJzdGVwIjogMTA4MCwgInZhbHVlIjogMC40MTc4OTIzMDcwNDMwNzU1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzM1LjI1MjM5NTIsICJzdGVwIjogMTA5MCwgInZhbHVlIjogMC40NDg5NDA2MzQ3Mjc0Nzh9LCB7IndhbGxUaW1lIjogMTczMzA2ODc0OS41NDg1ODMzLCAic3RlcCI6IDExMDAsICJ2YWx1ZSI6IDAuMzU4MzE2MjQyNjk0ODU0NzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODc1OC4zNzYwMDY4LCAic3RlcCI6IDExMTAsICJ2YWx1ZSI6IDAuNDQ3MTkzNTAzMzc5ODIxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzY3LjAwNDQ1MTMsICJzdGVwIjogMTEyMCwgInZhbHVlIjogMC41MjYxNDYyMzMwODE4MTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3NzYuNjE5NDYxOCwgInN0ZXAiOiAxMTMwLCAidmFsdWUiOiAwLjQ2MDY4MTYxNzI1OTk3OTI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3ODUuNDAxNzkzNSwgInN0ZXAiOiAxMTQwLCAidmFsdWUiOiAwLjI0MTk5MjIwNTM4MTM5MzQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3OTQuMjc5NjMwNywgInN0ZXAiOiAxMTUwLCAidmFsdWUiOiAwLjQwNzIyMzA3NTYyODI4MDY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MDIuNjk3OTQ5NCwgInN0ZXAiOiAxMTYwLCAidmFsdWUiOiAwLjI3NDc3NTA4NzgzMzQwNDU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MTEuNTUyMDc3MywgInN0ZXAiOiAxMTcwLCAidmFsdWUiOiAwLjM5MTYwOTkwNzE1MDI2ODU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MjQuOTY2Mzg0LCAic3RlcCI6IDExODAsICJ2YWx1ZSI6IDAuMjI4MDMyMzgwMzQyNDgzNTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODgzNC4zNzc4Mzg5LCAic3RlcCI6IDExOTAsICJ2YWx1ZSI6IDAuMzcwNzc4MjkyNDE3NTI2MjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODg0My41MTY3NzY4LCAic3RlcCI6IDEyMDAsICJ2YWx1ZSI6IDAuNDUyNDgxODY1ODgyODczNTR9LCB7IndhbGxUaW1lIjogMTczMzA2ODg1Mi4yMjkwNzQ1LCAic3RlcCI6IDEyMTAsICJ2YWx1ZSI6IDAuMzQ5MDU1OTQ1ODczMjYwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODYxLjExNzU2MTYsICJzdGVwIjogMTIyMCwgInZhbHVlIjogMC4zNjIwMDkxMzc4Njg4ODEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NzAuMDU2NDc0NCwgInN0ZXAiOiAxMjMwLCAidmFsdWUiOiAwLjYzMzQzMDAwNDExOTg3M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODc4LjcyMTA0NywgInN0ZXAiOiAxMjQwLCAidmFsdWUiOiAwLjQyNTA1MTYyOTU0MzMwNDQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4ODcuNzM4NzEzNSwgInN0ZXAiOiAxMjUwLCAidmFsdWUiOiAwLjMzMjc4Mjg2NDU3MDYxNzd9LCB7IndhbGxUaW1lIjogMTczMzA2ODkwMy4xNjc0MjA5LCAic3RlcCI6IDEyNjAsICJ2YWx1ZSI6IDAuNDgwNDQ4Mjc1ODA0NTE5NjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODkxMi40MTQyNDU0LCAic3RlcCI6IDEyNzAsICJ2YWx1ZSI6IDAuMjcyNzQyODM3NjY3NDY1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTIxLjQ3Mjg4OTIsICJzdGVwIjogMTI4MCwgInZhbHVlIjogMC4zNDY5MTM4NzQxNDkzMjI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MjkuNzQ3MjkzNywgInN0ZXAiOiAxMjkwLCAidmFsdWUiOiAwLjM4MjY3MzU5MTM3NTM1MDk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MzkuNTAxODU0MiwgInN0ZXAiOiAxMzAwLCAidmFsdWUiOiAwLjMzODEwODU5OTE4NTk0MzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODk0OC45MjgxMTQsICJzdGVwIjogMTMxMCwgInZhbHVlIjogMC4zOTQyMDQyODg3MjEwODQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NTcuMjM1MDUxNiwgInN0ZXAiOiAxMzIwLCAidmFsdWUiOiAwLjQ5MDkyMzI1NTY4MTk5MTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODk2Ni4wNzc2NzM0LCAic3RlcCI6IDEzMzAsICJ2YWx1ZSI6IDAuMjgyMjA4NjIxNTAxOTIyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTc1LjU2NTgwNTcsICJzdGVwIjogMTM0MCwgInZhbHVlIjogMC41MzA0NjE5MDczODY3Nzk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5ODkuNzk4MTA0LCAic3RlcCI6IDEzNTAsICJ2YWx1ZSI6IDAuMzg2MDIyMTUwNTE2NTF9LCB7IndhbGxUaW1lIjogMTczMzA2ODk5OC4yNTg1Mjc4LCAic3RlcCI6IDEzNjAsICJ2YWx1ZSI6IDAuMjkxMDkyNTQ0Nzk0MDgyNjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTAwNy4xNDgxOTU3LCAic3RlcCI6IDEzNzAsICJ2YWx1ZSI6IDAuMzUzMTA0NTAxOTYyNjYxNzR9LCB7IndhbGxUaW1lIjogMTczMzA2OTAxNS45MjExNCwgInN0ZXAiOiAxMzgwLCAidmFsdWUiOiAwLjIwMzUyNjI4ODI3MDk1MDMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwMjUuMzAzODQzNywgInN0ZXAiOiAxMzkwLCAidmFsdWUiOiAwLjM2NjE0NzcyNjc3NDIxNTd9LCB7IndhbGxUaW1lIjogMTczMzA2OTAzNC40ODIwMzUsICJzdGVwIjogMTQwMCwgInZhbHVlIjogMC4yNzIzMzY5ODk2NDExODk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNDIuNzkzNTU1NSwgInN0ZXAiOiAxNDEwLCAidmFsdWUiOiAwLjQyNzkyMDgxODMyODg1NzR9LCB7IndhbGxUaW1lIjogMTczMzA2OTA1Mi4xMzgxMjIzLCAic3RlcCI6IDE0MjAsICJ2YWx1ZSI6IDAuMjU4NjAzODcwODY4NjgyODZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTA2NS4wMDIxMzM2LCAic3RlcCI6IDE0MzAsICJ2YWx1ZSI6IDAuMjk5MDYyMDczMjMwNzQzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDc0LjUyNDQ2NjUsICJzdGVwIjogMTQ0MCwgInZhbHVlIjogMC4zMjEyMDkzNzEwODk5MzUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwODMuNzgzMDg1LCAic3RlcCI6IDE0NTAsICJ2YWx1ZSI6IDAuMzg0NzU0ODk2MTYzOTQwNDN9LCB7IndhbGxUaW1lIjogMTczMzA2OTA5Mi4yNTgwNzg4LCAic3RlcCI6IDE0NjAsICJ2YWx1ZSI6IDAuMjkyNjY1MTUzNzQxODM2NTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTEwMS4wMzAwMzg0LCAic3RlcCI6IDE0NzAsICJ2YWx1ZSI6IDAuMzQzMzQ5MjE4MzY4NTMwM30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTA5LjkwNTg0ODcsICJzdGVwIjogMTQ4MCwgInZhbHVlIjogMC4zMDE3MTMwMTk2MDk0NTEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMTkuMTE4MjY5MiwgInN0ZXAiOiAxNDkwLCAidmFsdWUiOiAwLjIzMjAxMDc1MTk2MjY2MTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMjguNDE1NTYwMiwgInN0ZXAiOiAxNTAwLCAidmFsdWUiOiAwLjMyMzQzNDc0MDMwNDk0Njl9LCB7IndhbGxUaW1lIjogMTczMzA2OTEzNy42MDYyMTgzLCAic3RlcCI6IDE1MTAsICJ2YWx1ZSI6IDAuNDU4NjEwMDg3NjMzMTMyOTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTE1MC41NDI5MjMyLCAic3RlcCI6IDE1MjAsICJ2YWx1ZSI6IDAuMzk3MTE2NDIyNjUzMTk4MjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTE1OS43NTY0NjMzLCAic3RlcCI6IDE1MzAsICJ2YWx1ZSI6IDAuNDM5NjYzNTU5MTk4Mzc5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTY4LjE2OTU5OTMsICJzdGVwIjogMTU0MCwgInZhbHVlIjogMC4yMDA0MTcyNjUyOTU5ODIzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTc2Ljg0MDM3MTYsICJzdGVwIjogMTU1MCwgInZhbHVlIjogMC40MzI3MDc0Mjg5MzIxODk5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTg1Ljg5MTY5NSwgInN0ZXAiOiAxNTYwLCAidmFsdWUiOiAwLjIzMzgwNTc0NTg0MDA3MjYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxOTQuOTIzMjU1MiwgInN0ZXAiOiAxNTcwLCAidmFsdWUiOiAwLjM4MDI2MTQ4MDgwODI1ODA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMDMuOTExMTcyNCwgInN0ZXAiOiAxNTgwLCAidmFsdWUiOiAwLjMxNDMzMzg1NjEwNTgwNDQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMTIuNzE0NzM5OCwgInN0ZXAiOiAxNTkwLCAidmFsdWUiOiAwLjI2MzA0ODM4MDYxMzMyN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjI1LjUzMzI5OTQsICJzdGVwIjogMTYwMCwgInZhbHVlIjogMC4yODkxMTQ4OTI0ODI3NTc1N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjM1LjQ2MzIzODUsICJzdGVwIjogMTYxMCwgInZhbHVlIjogMC40NDQ2ODgyNjA1NTUyNjczM30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjQ0LjYyODY0MiwgInN0ZXAiOiAxNjIwLCAidmFsdWUiOiAwLjQ5ODI5MDMzMDE3MTU4NTF9LCB7IndhbGxUaW1lIjogMTczMzA2OTI1NC4yNzEwMzE5LCAic3RlcCI6IDE2MzAsICJ2YWx1ZSI6IDAuMzM4NDIzNDkwNTI0MjkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNjMuMDA0NzEsICJzdGVwIjogMTY0MCwgInZhbHVlIjogMC4yNTc4NTIyNTYyOTgwNjUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNzEuODY2MDA5MiwgInN0ZXAiOiAxNjUwLCAidmFsdWUiOiAwLjQ0MjMzMjYyNTM4OTA5OTF9LCB7IndhbGxUaW1lIjogMTczMzA2OTI4MC41MDkyOTIsICJzdGVwIjogMTY2MCwgInZhbHVlIjogMC4yNzQ4NTI3ODI0ODc4NjkyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Mjg5LjY3OTEzMSwgInN0ZXAiOiAxNjcwLCAidmFsdWUiOiAwLjM3NzE0ODg2NjY1MzQ0MjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTMwMy42MDgwNTI3LCAic3RlcCI6IDE2ODAsICJ2YWx1ZSI6IDAuNDg5MDA0MDc1NTI3MTkxMTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTMxMi40Nzg5NjUzLCAic3RlcCI6IDE2OTAsICJ2YWx1ZSI6IDAuMzg1NzkyMTM2MTkyMzIxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzIxLjgzNzgyOTgsICJzdGVwIjogMTcwMCwgInZhbHVlIjogMC40NjQ1MTA5MTc2NjM1NzQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMzAuMzQ3MzgwNCwgInN0ZXAiOiAxNzEwLCAidmFsdWUiOiAwLjI5NTg5OTMzMTU2OTY3MTYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMzkuMjQ0NDY2OCwgInN0ZXAiOiAxNzIwLCAidmFsdWUiOiAwLjIzMzc1ODQ0OTU1NDQ0MzM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNDYuODU1OTg2NCwgInN0ZXAiOiAxNzMwLCAidmFsdWUiOiAwLjI0NTg1NTMzMTQyMDg5ODQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNTUuNjUxNjc2LCAic3RlcCI6IDE3NDAsICJ2YWx1ZSI6IDAuNDU1NzY0OTc5MTI0MDY5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzY0LjUxMTM3MDQsICJzdGVwIjogMTc1MCwgInZhbHVlIjogMC4zNTkyNTA2NjQ3MTA5OTg1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzczLjczODAwNTksICJzdGVwIjogMTc2MCwgInZhbHVlIjogMC4zMTk2NTYzMTI0NjU2Njc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzODcuNTQwNDA3LCAic3RlcCI6IDE3NzAsICJ2YWx1ZSI6IDAuMzA4MzI5NDMzMjAyNzQzNTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTM5Ni40NjU4NDgyLCAic3RlcCI6IDE3ODAsICJ2YWx1ZSI6IDAuMjYyMzIzODg2MTU2MDgyMTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTQwNS45OTU2OTMsICJzdGVwIjogMTc5MCwgInZhbHVlIjogMC4yMDI4NzgyMzY3NzA2Mjk4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDE1LjA1MzExNjMsICJzdGVwIjogMTgwMCwgInZhbHVlIjogMC4yNTI1NjcyOTEyNTk3NjU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MjMuOTA2ODg4NywgInN0ZXAiOiAxODEwLCAidmFsdWUiOiAwLjIxMjMxODU5OTIyNDA5MDU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MzIuNTMwNDcsICJzdGVwIjogMTgyMCwgInZhbHVlIjogMC40MTU2NjY4NzgyMjM0MTkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NDEuMjE2MTQxMiwgInN0ZXAiOiAxODMwLCAidmFsdWUiOiAwLjMzNTE4NjQ4MTQ3NTgzMDF9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ1MC4wODU5NDE2LCAic3RlcCI6IDE4NDAsICJ2YWx1ZSI6IDAuMjQwOTIxNjkxMDYwMDY2MjJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ2My4xMDU5NDMsICJzdGVwIjogMTg1MCwgInZhbHVlIjogMC4yMzMwMjU0MDE4MzA2NzMyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDcxLjU3MTg0NDgsICJzdGVwIjogMTg2MCwgInZhbHVlIjogMC4yNjA3ODcxMjk0MDIxNjA2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDgwLjQ5NzIxNTMsICJzdGVwIjogMTg3MCwgInZhbHVlIjogMC41MTg5NTk1MjIyNDczMTQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0ODkuMzgzODgzMiwgInN0ZXAiOiAxODgwLCAidmFsdWUiOiAwLjQyMDM3Nzg1MDUzMjUzMTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0OTcuOTc1Njg4MiwgInN0ZXAiOiAxODkwLCAidmFsdWUiOiAwLjQyMjczMzI0NzI4MDEyMDg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MDYuNzkzMjIwMywgInN0ZXAiOiAxOTAwLCAidmFsdWUiOiAwLjMxOTYzNzA4OTk2NzcyNzY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MTUuODIzNjAxNSwgInN0ZXAiOiAxOTEwLCAidmFsdWUiOiAwLjI0MzI4NzUxODYyMDQ5MTAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MjQuNjM1NDE2NSwgInN0ZXAiOiAxOTIwLCAidmFsdWUiOiAwLjI4NzczNDAwMTg3NDkyMzd9LCB7IndhbGxUaW1lIjogMTczMzA2OTUzMy41NDEwMDE2LCAic3RlcCI6IDE5MzAsICJ2YWx1ZSI6IDAuMjE3NTk5NDgxMzQ0MjIzMDJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTU1MC40NzY4OTMyLCAic3RlcCI6IDE5NDAsICJ2YWx1ZSI6IDAuMzcxMzkzMTQ0MTMwNzA2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTU4LjgyNjY3OSwgInN0ZXAiOiAxOTUwLCAidmFsdWUiOiAwLjI2MTgyODMzMzEzOTQxOTU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NjcuNzU2ODMzMywgInN0ZXAiOiAxOTYwLCAidmFsdWUiOiAwLjI2MDIzNjc5OTcxNjk0OTQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NzYuMzQ0MDg5NSwgInN0ZXAiOiAxOTcwLCAidmFsdWUiOiAwLjI2MzE5MjExNzIxNDIwMjl9LCB7IndhbGxUaW1lIjogMTczMzA2OTU4NS41MjgxNDA4LCAic3RlcCI6IDE5ODAsICJ2YWx1ZSI6IDAuNDA4NzcxMDY3ODU3NzQyM30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTk0LjM0OTE0OSwgInN0ZXAiOiAxOTkwLCAidmFsdWUiOiAwLjM4Nzk2NTA4MzEyMjI1MzR9LCB7IndhbGxUaW1lIjogMTczMzA2OTYwMi40MDA1MzE1LCAic3RlcCI6IDIwMDAsICJ2YWx1ZSI6IDAuNTc2MTU1MzA0OTA4NzUyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjEwLjI0ODc2OTMsICJzdGVwIjogMjAxMCwgInZhbHVlIjogMC40NzEwNjg2MjA2ODE3NjI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MjYuNjg1NzEzLCAic3RlcCI6IDIwMjAsICJ2YWx1ZSI6IDAuNDA3NjIwNDg5NTk3MzIwNTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTYzNS4wMjk4MzAyLCAic3RlcCI6IDIwMzAsICJ2YWx1ZSI6IDAuMjcyMjIzMjkzNzgxMjgwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjQzLjgyMTQ1NiwgInN0ZXAiOiAyMDQwLCAidmFsdWUiOiAwLjI1NDUwMzAxMTcwMzQ5MTJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTY1Mi4xOTMzNDY1LCAic3RlcCI6IDIwNTAsICJ2YWx1ZSI6IDAuMjk4NzA1NDI4ODM4NzI5ODZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTY2MC40NTIzMjc1LCAic3RlcCI6IDIwNjAsICJ2YWx1ZSI6IDAuNDI1MDk5MDE1MjM1OTAwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjY5LjU5MDk0OCwgInN0ZXAiOiAyMDcwLCAidmFsdWUiOiAwLjMzNTQzNjQ5MzE1ODM0MDQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NzguNzc3MjA2LCAic3RlcCI6IDIwODAsICJ2YWx1ZSI6IDAuNTMwMTYyNTEzMjU2MDczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2ODYuOTQzNjc2LCAic3RlcCI6IDIwOTAsICJ2YWx1ZSI6IDAuNDAwODI5NjQzMDExMDkzMTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTcwMC42MDA5MjA0LCAic3RlcCI6IDIxMDAsICJ2YWx1ZSI6IDAuMzI1NzU2OTM3MjY1Mzk2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzA4LjcyNTIyNDcsICJzdGVwIjogMjExMCwgInZhbHVlIjogMC4yNDE4OTc4ODEwMzEwMzYzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzE3LjQ0NzE1ODMsICJzdGVwIjogMjEyMCwgInZhbHVlIjogMC4yOTgwODM0MjQ1NjgxNzYyN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzI2LjE0MDA2ODgsICJzdGVwIjogMjEzMCwgInZhbHVlIjogMC4zMDczNjc0NzM4NDA3MTM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MzUuMDM2OTY0NywgInN0ZXAiOiAyMTQwLCAidmFsdWUiOiAwLjMzNzY1MzY5NjUzNzAxNzh9LCB7IndhbGxUaW1lIjogMTczMzA2OTc0My4zMDQ5NDc5LCAic3RlcCI6IDIxNTAsICJ2YWx1ZSI6IDAuMjc5MjQ3NjQxNTYzNDE1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzUyLjQ5OTY4NjUsICJzdGVwIjogMjE2MCwgInZhbHVlIjogMC4zMjQxNjA2MzU0NzEzNDR9LCB7IndhbGxUaW1lIjogMTczMzA2OTc2MS40NDk4NDM2LCAic3RlcCI6IDIxNzAsICJ2YWx1ZSI6IDAuMzIwMDExMDQ5NTA5MDQ4NDZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTc3MC40MzIwNTc5LCAic3RlcCI6IDIxODAsICJ2YWx1ZSI6IDAuMzkzMDE2MzA4NTQ2MDY2M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5Nzg0LjM2MjI1MTgsICJzdGVwIjogMjE5MCwgInZhbHVlIjogMC4zNjQ3NTg5NjgzNTMyNzE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3OTMuMTIxMjY0LCAic3RlcCI6IDIyMDAsICJ2YWx1ZSI6IDAuMTc0MjQ0Mzc0MDM2Nzg4OTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTgwMS42MzQ5NzI4LCAic3RlcCI6IDIyMTAsICJ2YWx1ZSI6IDAuMjkwOTE0NTM1NTIyNDYwOTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTgxMC42MDY2ODMzLCAic3RlcCI6IDIyMjAsICJ2YWx1ZSI6IDAuNDIwMTkwNzUxNTUyNTgxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODE5LjM0MDUxNjMsICJzdGVwIjogMjIzMCwgInZhbHVlIjogMC4yNTY1NDcwMzM3ODY3NzM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MjcuMzI0OTM4OCwgInN0ZXAiOiAyMjQwLCAidmFsdWUiOiAwLjM5MTE4OTc4MzgxMTU2OTJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTgzNS44NjY1MTczLCAic3RlcCI6IDIyNTAsICJ2YWx1ZSI6IDAuMjgxMzA2ODYyODMxMTE1N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODQ0LjIzNDYyMDMsICJzdGVwIjogMjI2MCwgInZhbHVlIjogMC4zMjAyNTA5NTgyMDQyNjk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NTYuNzQ3OTkyNSwgInN0ZXAiOiAyMjcwLCAidmFsdWUiOiAwLjI2MDMxMzU3MDQ5OTQyMDE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NjUuMjU2MzY3NywgInN0ZXAiOiAyMjgwLCAidmFsdWUiOiAwLjIxMzMxMTU4MjgwMzcyNjJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTg3NC4wMDM4NzE0LCAic3RlcCI6IDIyOTAsICJ2YWx1ZSI6IDAuMTkyODY0Mjk4ODIwNDk1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODgxLjc4MDM3OTUsICJzdGVwIjogMjMwMCwgInZhbHVlIjogMC4zNzMxNzMwODc4MzUzMTE5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4OTAuNDEyNDc1LCAic3RlcCI6IDIzMTAsICJ2YWx1ZSI6IDAuMjU1NDUxMjYxOTk3MjIyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODk4Ljg3NTMyNDIsICJzdGVwIjogMjMyMCwgInZhbHVlIjogMC4yNzQ5OTQyNTQxMTIyNDM2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTA4LjMxNjM5MTUsICJzdGVwIjogMjMzMCwgInZhbHVlIjogMC4yNjgxODc5Njk5MjMwMTk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MTcuNDEzODU5NiwgInN0ZXAiOiAyMzQwLCAidmFsdWUiOiAwLjM2NzYzNjIwMzc2NTg2OTE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MjUuODQ5MDc5NCwgInN0ZXAiOiAyMzUwLCAidmFsdWUiOiAwLjIzMDQ5MzU2MDQzMzM4Nzc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MzguNzAwNDg3LCAic3RlcCI6IDIzNjAsICJ2YWx1ZSI6IDAuMzQ0ODI0MDQ1ODk2NTMwMTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTk0Ny40MjQ3ODI1LCAic3RlcCI6IDIzNzAsICJ2YWx1ZSI6IDAuMzcyNjA3NDA5OTU0MDcxMDR9LCB7IndhbGxUaW1lIjogMTczMzA2OTk1Ni4yMDQzNDEsICJzdGVwIjogMjM4MCwgInZhbHVlIjogMC40MDY4NzgzNTIxNjUyMjIxN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTY0LjI3MzMzMSwgInN0ZXAiOiAyMzkwLCAidmFsdWUiOiAwLjI5NjIyNDc3MjkzMDE0NTI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NzMuMzI0NzIwOSwgInN0ZXAiOiAyNDAwLCAidmFsdWUiOiAwLjIyNzQ1MjkzMzc4ODI5OTU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5ODEuNDMwNzkwNywgInN0ZXAiOiAyNDEwLCAidmFsdWUiOiAwLjI1NjY3MDg2MjQzNjI5NDU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5OTAuMTM4MjU3MywgInN0ZXAiOiAyNDIwLCAidmFsdWUiOiAwLjI4MjgwNjk2MjcyODUwMDM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5OTguNzk2Mjc1LCAic3RlcCI6IDI0MzAsICJ2YWx1ZSI6IDAuMzA4MDUzNzMxOTE4MzM0OTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDAxMi40NTQzODgsICJzdGVwIjogMjQ0MCwgInZhbHVlIjogMC4yNzQ5NDczNDUyNTY4MDU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMjEuNTk3Mzk1MiwgInN0ZXAiOiAyNDUwLCAidmFsdWUiOiAwLjI0NzE2NDYzNjg1MDM1NzA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMzAuMTg5NTYwMiwgInN0ZXAiOiAyNDYwLCAidmFsdWUiOiAwLjI1OTAzNDgxMjQ1MDQwODk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMzkuMjE3ODg5NSwgInN0ZXAiOiAyNDcwLCAidmFsdWUiOiAwLjI4NTA5MDMyNzI2Mjg3ODR9LCB7IndhbGxUaW1lIjogMTczMzA3MDA0OC4yNjc1MTI2LCAic3RlcCI6IDI0ODAsICJ2YWx1ZSI6IDAuMzU5ODM1OTUyNTIwMzcwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDU2LjE1NDMxNTIsICJzdGVwIjogMjQ5MCwgInZhbHVlIjogMC4zODc1NDcyODQzNjQ3MDAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNjQuNDQ5MTk2NiwgInN0ZXAiOiAyNTAwLCAidmFsdWUiOiAwLjM1NDUzODUzMDExMTMxMjg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNzIuNTQ4MDYxNCwgInN0ZXAiOiAyNTEwLCAidmFsdWUiOiAwLjI0NTIyMDQ4MjM0OTM5NTc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwODcuNjU1NDYzNSwgInN0ZXAiOiAyNTIwLCAidmFsdWUiOiAwLjI5MDk0MjcyODUxOTQzOTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDA5NS40NDAyNTEsICJzdGVwIjogMjUzMCwgInZhbHVlIjogMC4yNjY5Mjc3MTkxMTYyMTA5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTAzLjc2NzM2NjQsICJzdGVwIjogMjU0MCwgInZhbHVlIjogMC4yNDM3MTI4NzIyNjY3Njk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMTMuMDQ3NjA2LCAic3RlcCI6IDI1NTAsICJ2YWx1ZSI6IDAuMjM5Njg5OTE2MzcyMjk5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTIxLjAzNjMyOCwgInN0ZXAiOiAyNTYwLCAidmFsdWUiOiAwLjI0NDk2OTY1MTEwMzAxOTcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMjkuNTgyODc2MiwgInN0ZXAiOiAyNTcwLCAidmFsdWUiOiAwLjI5OTEzMzI0MTE3NjYwNTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDEzOC4zNTkxNjgsICJzdGVwIjogMjU4MCwgInZhbHVlIjogMC4yNjUzOTEyMzA1ODMxOTA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNDcuMDg1ODMwNywgInN0ZXAiOiAyNTkwLCAidmFsdWUiOiAwLjM0Njk4MzY0MTM4NjAzMjF9LCB7IndhbGxUaW1lIjogMTczMzA3MDE1NS40ODU0OTI3LCAic3RlcCI6IDI2MDAsICJ2YWx1ZSI6IDAuNDQyNTc2ODg1MjIzMzg4Njd9LCB7IndhbGxUaW1lIjogMTczMzA3MDE3Mi41NzU4NjI2LCAic3RlcCI6IDI2MTAsICJ2YWx1ZSI6IDAuMzA3MDc2MjQ1NTQ2MzQwOTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDE4MS4yMDk3NzM4LCAic3RlcCI6IDI2MjAsICJ2YWx1ZSI6IDAuMzMwNTgxODE0MDUwNjc0NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDE4OS42OTA4MDMzLCAic3RlcCI6IDI2MzAsICJ2YWx1ZSI6IDAuMjc2OTc5MTE4NTg1NTg2NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDE5OC4zOTc2ODk4LCAic3RlcCI6IDI2NDAsICJ2YWx1ZSI6IDAuMjY3MDU4MjgzMDkwNTkxNDN9LCB7IndhbGxUaW1lIjogMTczMzA3MDIwNi43MDU5MjIxLCAic3RlcCI6IDI2NTAsICJ2YWx1ZSI6IDAuMjEzNjQ3NjYzNTkzMjkyMjR9LCB7IndhbGxUaW1lIjogMTczMzA3MDIxNS41OTgyNTg3LCAic3RlcCI6IDI2NjAsICJ2YWx1ZSI6IDAuMzM0NzIwNjQxMzc0NTg4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMjQuMzE0MDczMywgInN0ZXAiOiAyNjcwLCAidmFsdWUiOiAwLjMyNzgyMDk1NjcwNzAwMDczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMzMuNTM3OTE0LCAic3RlcCI6IDI2ODAsICJ2YWx1ZSI6IDAuMjgxMzM1MjM0NjQyMDI4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjQ2Ljc1NjY3NzQsICJzdGVwIjogMjY5MCwgInZhbHVlIjogMC4yNTkwNjk1NjE5NTgzMTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDI1Ni4wMjczNzEsICJzdGVwIjogMjcwMCwgInZhbHVlIjogMC4zOTUzNDUyNDA4MzEzNzUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNjQuOTQ5MzA4NCwgInN0ZXAiOiAyNzEwLCAidmFsdWUiOiAwLjI1OTc3NTkzNjYwMzU0NjE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNzMuODAzMjc1LCAic3RlcCI6IDI3MjAsICJ2YWx1ZSI6IDAuMzQwMzAzMTUyNzk5NjA2M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjgyLjk1NzU5NiwgInN0ZXAiOiAyNzMwLCAidmFsdWUiOiAwLjMwMTM3NDE2NzIwMzkwMzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDI5Mi4yNzY0NDkyLCAic3RlcCI6IDI3NDAsICJ2YWx1ZSI6IDAuMjg4NDY4NTM5NzE0ODEzMjN9LCB7IndhbGxUaW1lIjogMTczMzA3MDMwMC4zMzUzMDk3LCAic3RlcCI6IDI3NTAsICJ2YWx1ZSI6IDAuMjc1OTc2NDc5MDUzNDk3M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzA5LjQxMDY4OTgsICJzdGVwIjogMjc2MCwgInZhbHVlIjogMC40Mjg4MjU2NDY2Mzg4NzAyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzE3LjUzMDA0ODQsICJzdGVwIjogMjc3MCwgInZhbHVlIjogMC40MDM2NDg3OTM2OTczNTcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMzAuNDM0Njg5OCwgInN0ZXAiOiAyNzgwLCAidmFsdWUiOiAwLjMyNzYxMTcxNDYwMTUxNjd9LCB7IndhbGxUaW1lIjogMTczMzA3MDMzOS44MjExNTEzLCAic3RlcCI6IDI3OTAsICJ2YWx1ZSI6IDAuMjYxNTg0OTk3MTc3MTI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNDcuOTkxNDIxMiwgInN0ZXAiOiAyODAwLCAidmFsdWUiOiAwLjIwMzI3NjA1MzA3MTAyMjAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNTYuODg5NTY3LCAic3RlcCI6IDI4MTAsICJ2YWx1ZSI6IDAuMjkzNzA2ODY0MTE4NTc2MDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDM2NS41NzU0MTksICJzdGVwIjogMjgyMCwgInZhbHVlIjogMC4yNjc5NjYwOTE2MzI4NDN9LCB7IndhbGxUaW1lIjogMTczMzA3MDM3NC4zOTEyNzQsICJzdGVwIjogMjgzMCwgInZhbHVlIjogMC4yNzAxNTUxMDIwMTQ1NDE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzODIuNDI1NTY4OCwgInN0ZXAiOiAyODQwLCAidmFsdWUiOiAwLjM0MjgyNTc3MDM3ODExMjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDM5MC45Mzk5NDU3LCAic3RlcCI6IDI4NTAsICJ2YWx1ZSI6IDAuMjM2OTg0ODc4Nzc4NDU3NjR9LCB7IndhbGxUaW1lIjogMTczMzA3MDQwNi42NzczMzI5LCAic3RlcCI6IDI4NjAsICJ2YWx1ZSI6IDAuMjUxODk5MzkxNDEyNzM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0MTUuMDg4MDEyNywgInN0ZXAiOiAyODcwLCAidmFsdWUiOiAwLjI0NDQ1NDQ1ODM1NTkwMzYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0MjIuOTE4NTYyNCwgInN0ZXAiOiAyODgwLCAidmFsdWUiOiAwLjIzMDA1OTkyMTc0MTQ4NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzMS41MzU5MzIzLCAic3RlcCI6IDI4OTAsICJ2YWx1ZSI6IDAuMjU2Mzk3NzgzNzU2MjU2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDM5Ljk3OTQxOSwgInN0ZXAiOiAyOTAwLCAidmFsdWUiOiAwLjMyNzYyNjY0NTU2NTAzMjk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NDguMDg0MTMyNCwgInN0ZXAiOiAyOTEwLCAidmFsdWUiOiAwLjQxMjg3NDY2ODgzNjU5MzYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NTcuNDIyMzI2MywgInN0ZXAiOiAyOTIwLCAidmFsdWUiOiAwLjQ0MDQ5ODg4ODQ5MjU4NDIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NjYuNzIxNDI2MiwgInN0ZXAiOiAyOTMwLCAidmFsdWUiOiAwLjM3NzU1NTYwODc0OTM4OTY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NzkuMzMxMTY5MSwgInN0ZXAiOiAyOTQwLCAidmFsdWUiOiAwLjMwNjk4MjU3Njg0NzA3NjR9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ4OC43ODA3MjM2LCAic3RlcCI6IDI5NTAsICJ2YWx1ZSI6IDAuMjg4NzMyNDk4ODg0MjAxMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ5Ny4yMjMzNDM2LCAic3RlcCI6IDI5NjAsICJ2YWx1ZSI6IDAuMzY2NzEyODA4NjA5MDA4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTA1LjYzMjQwNzIsICJzdGVwIjogMjk3MCwgInZhbHVlIjogMC4yNDE4Nzk5NTQ5MzQxMjAxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTEzLjM1MjUyODgsICJzdGVwIjogMjk4MCwgInZhbHVlIjogMC4yMDM5ODI2MDY1MzAxODk1MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTIyLjI5OTczNDQsICJzdGVwIjogMjk5MCwgInZhbHVlIjogMC4zNTYzOTM5MDM0OTM4ODEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MzAuMjExMjg1OCwgInN0ZXAiOiAzMDAwLCAidmFsdWUiOiAwLjE5NTMyODA4NjYxNDYwODc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MzguMjk4NTgwMiwgInN0ZXAiOiAzMDEwLCAidmFsdWUiOiAwLjMwMzg1MDc5OTc5ODk2NTQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NDcuMzk4ODY1NSwgInN0ZXAiOiAzMDIwLCAidmFsdWUiOiAwLjI1MDk1NzQ1OTIxMTM0OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDU2NC4wNDkzNTQ4LCAic3RlcCI6IDMwMzAsICJ2YWx1ZSI6IDAuMjM2Mjg3MjY2MDE2MDA2NDd9LCB7IndhbGxUaW1lIjogMTczMzA3MDU3Mi4zNjgyNTM3LCAic3RlcCI6IDMwNDAsICJ2YWx1ZSI6IDAuMjM2NTI3MTU5ODEwMDY2MjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDU4MC42NjkzOSwgInN0ZXAiOiAzMDUwLCAidmFsdWUiOiAwLjI3MTk3NzA5Njc5NjAzNTc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1ODguNjUxNzQxMywgInN0ZXAiOiAzMDYwLCAidmFsdWUiOiAwLjI3MzY5NDYwNDYzNTIzODY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1OTcuNDE5MjE5MywgInN0ZXAiOiAzMDcwLCAidmFsdWUiOiAwLjIzOTg1NDYzMzgwODEzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjA2LjEzNTczOCwgInN0ZXAiOiAzMDgwLCAidmFsdWUiOiAwLjM3Mjg2OTIyMzM1NjI0Njk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MTQuNDM3OTEwOCwgInN0ZXAiOiAzMDkwLCAidmFsdWUiOiAwLjMzNzIyMDEwMjU0ODU5OTI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MjMuOTk4MzY4MywgInN0ZXAiOiAzMTAwLCAidmFsdWUiOiAwLjI3OTg1NjU2MjYxNDQ0MDl9LCB7IndhbGxUaW1lIjogMTczMzA3MDYzNy4yNTA1MzA1LCAic3RlcCI6IDMxMTAsICJ2YWx1ZSI6IDAuMzQ0NjIwNDk2MDM0NjIyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjQ1LjY4MDIyNTQsICJzdGVwIjogMzEyMCwgInZhbHVlIjogMC4yOTc0OTM5NjQ0MzM2NzAwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjU0LjI2ODA2NTIsICJzdGVwIjogMzEzMCwgInZhbHVlIjogMC4yNDE1ODIxODUwMjk5ODM1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjYzLjMxODg4MDYsICJzdGVwIjogMzE0MCwgInZhbHVlIjogMC4yNDgxMzk1OTAwMjQ5NDgxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjcxLjExNTY4MzYsICJzdGVwIjogMzE1MCwgInZhbHVlIjogMC4zMzk0OTE3MjQ5Njc5NTY1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjc5Ljc2MzE3MjQsICJzdGVwIjogMzE2MCwgInZhbHVlIjogMC4zNjg4NTI3OTQxNzAzNzk2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjg3Ljg0MjUwNzgsICJzdGVwIjogMzE3MCwgInZhbHVlIjogMC4yNTM3MjQyMTc0MTQ4NTU5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjk1Ljg1MzQ3MiwgInN0ZXAiOiAzMTgwLCAidmFsdWUiOiAwLjMyMjgyMDM2NTQyODkyNDU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MDQuNjIwMDQ3LCAic3RlcCI6IDMxOTAsICJ2YWx1ZSI6IDAuMjUyNzk3NDU0NTk1NTY1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzE3LjEwNjQ5OTcsICJzdGVwIjogMzIwMCwgInZhbHVlIjogMC4xOTg2ODk1NTAxNjEzNjE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MjYuMDk2Mjc4LCAic3RlcCI6IDMyMTAsICJ2YWx1ZSI6IDAuMjk0MTgxNjc0NzE4ODU2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzM0Ljc3Mzc0NTMsICJzdGVwIjogMzIyMCwgInZhbHVlIjogMC4xODQ0Njg3MTYzODI5ODAzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzQ0LjQwOTUxNTYsICJzdGVwIjogMzIzMCwgInZhbHVlIjogMC4yNzk3NDk2OTE0ODYzNTg2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzUyLjQ5OTIxMzUsICJzdGVwIjogMzI0MCwgInZhbHVlIjogMC40Mzg1NjAxMjgyMTE5NzUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NjEuNzE4NzMwNCwgInN0ZXAiOiAzMjUwLCAidmFsdWUiOiAwLjM5MTUwNTgwNzYzODE2ODMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NzAuMzc0MTQ5OCwgInN0ZXAiOiAzMjYwLCAidmFsdWUiOiAwLjI3MTUzNDIwNDQ4MzAzMjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDc3OS43Mjc2MjU0LCAic3RlcCI6IDMyNzAsICJ2YWx1ZSI6IDAuMjU4NTIzMTY2MTc5NjU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3OTMuNjc1OTI0NSwgInN0ZXAiOiAzMjgwLCAidmFsdWUiOiAwLjIzNzk1NDkxNDU2OTg1NDc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MDEuODk3NjcyNywgInN0ZXAiOiAzMjkwLCAidmFsdWUiOiAwLjM4NjI2NTUxNjI4MTEyNzkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MTAuMTU4Njc2NCwgInN0ZXAiOiAzMzAwLCAidmFsdWUiOiAwLjM0MzQ5MTE5NjYzMjM4NTI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MTguNzI0MDA0LCAic3RlcCI6IDMzMTAsICJ2YWx1ZSI6IDAuMTc4NzI0MjU5MTM4MTA3M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwODI3LjAwMzkyMzQsICJzdGVwIjogMzMyMCwgInZhbHVlIjogMC4yMjgwMDcxNTI2NzY1ODIzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODM1LjU3MTM2MDMsICJzdGVwIjogMzMzMCwgInZhbHVlIjogMC4yNzEyNzI0MjA4ODMxNzg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NDMuOTcxNTIsICJzdGVwIjogMzM0MCwgInZhbHVlIjogMC40MDU4OTIwNzQxMDgxMjM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NTMuMDg5MTc0NSwgInN0ZXAiOiAzMzUwLCAidmFsdWUiOiAwLjMyMTk5NjMzMTIxNDkwNDh9LCB7IndhbGxUaW1lIjogMTczMzA3MDg2NS40MTcxMDYsICJzdGVwIjogMzM2MCwgInZhbHVlIjogMC4yMDc5MjQ3MDg3MjQwMjE5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NzMuNjU5MjgwNSwgInN0ZXAiOiAzMzcwLCAidmFsdWUiOiAwLjI1ODExMDA0NjM4NjcxODc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4ODMuMzMzNjU5NCwgInN0ZXAiOiAzMzgwLCAidmFsdWUiOiAwLjIzODc2MTI3NjAwNjY5ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDg5Mi4zNzQ2Njg0LCAic3RlcCI6IDMzOTAsICJ2YWx1ZSI6IDAuMjcxNDkxNzk1Nzc4Mjc0NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDkwMC43MjAwNzA4LCAic3RlcCI6IDM0MDAsICJ2YWx1ZSI6IDAuMzEzMzk3Mzc3NzI5NDE1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTA4LjUwMTg0OSwgInN0ZXAiOiAzNDEwLCAidmFsdWUiOiAwLjI3ODU4MDkwNDAwNjk1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTE2LjY1MzQyMjYsICJzdGVwIjogMzQyMCwgInZhbHVlIjogMC4zNzE5NDU3OTgzOTcwNjQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MjUuMjA1Nzk4NCwgInN0ZXAiOiAzNDMwLCAidmFsdWUiOiAwLjI1NjcyMDQyMzY5ODQyNTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDkzMy44MDc5NTcsICJzdGVwIjogMzQ0MCwgInZhbHVlIjogMC4yMTMzNTgwMTQ4MjIwMDYyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTQ3LjQ3NzQ2NTQsICJzdGVwIjogMzQ1MCwgInZhbHVlIjogMC4yNDA2MTk2MTQ3MjAzNDQ1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTU2LjE4NDgzMDIsICJzdGVwIjogMzQ2MCwgInZhbHVlIjogMC4yNDc0Njc1MzI3NTM5NDQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NjQuMjYzOTU1NCwgInN0ZXAiOiAzNDcwLCAidmFsdWUiOiAwLjI2MjgxNjYzNzc1NDQ0MDN9LCB7IndhbGxUaW1lIjogMTczMzA3MDk3Mi4zODM3MjQ3LCAic3RlcCI6IDM0ODAsICJ2YWx1ZSI6IDAuMjY4NjM3OTU1MTg4NzUxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTgwLjY0NDgwOTcsICJzdGVwIjogMzQ5MCwgInZhbHVlIjogMC40NjEwNjQyMTk0NzQ3OTI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5ODkuNjg1MzIyOCwgInN0ZXAiOiAzNTAwLCAidmFsdWUiOiAwLjI0Mzc0MTcyMDkxNDg0MDd9LCB7IndhbGxUaW1lIjogMTczMzA3MDk5Ny43ODYyMDM5LCAic3RlcCI6IDM1MTAsICJ2YWx1ZSI6IDAuMjMyODY2MTk3ODI0NDc4MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTAwNi4yNjkwNjI4LCAic3RlcCI6IDM1MjAsICJ2YWx1ZSI6IDAuMzI0NzA3MDMxMjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTAxOC44OTM3NTExLCAic3RlcCI6IDM1MzAsICJ2YWx1ZSI6IDAuMjQwMTAxOTYzMjgxNjMxNDd9LCB7IndhbGxUaW1lIjogMTczMzA3MTAyNy4xOTQ4MzU3LCAic3RlcCI6IDM1NDAsICJ2YWx1ZSI6IDAuMTc3OTI1NTQxOTk2OTU1ODd9LCB7IndhbGxUaW1lIjogMTczMzA3MTAzNS4zMTgyMjQsICJzdGVwIjogMzU1MCwgInZhbHVlIjogMC4yNjMzMDc3NTAyMjUwNjcxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDQzLjc0MzQ1NDIsICJzdGVwIjogMzU2MCwgInZhbHVlIjogMC4yMTk0MDY5NDc0OTM1NTMxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDUxLjg2OTg5NCwgInN0ZXAiOiAzNTcwLCAidmFsdWUiOiAwLjI4NTgzODIxNjU0MzE5NzYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNjAuNDkzODUxLCAic3RlcCI6IDM1ODAsICJ2YWx1ZSI6IDAuMjQ3MzY5MjU5NTk1ODcwOTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTA2OC44NzcxNTY1LCAic3RlcCI6IDM1OTAsICJ2YWx1ZSI6IDAuMjU2NzI5NTEzNDA2NzUzNTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTA3Ny43MTA2ODksICJzdGVwIjogMzYwMCwgInZhbHVlIjogMC4yNzgwMzU1NTEzMDk1ODU1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDg2LjIxMDA5MjUsICJzdGVwIjogMzYxMCwgInZhbHVlIjogMC4yMTY1NDc2MDgzNzU1NDkzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTAxLjY1NjQ0MzgsICJzdGVwIjogMzYyMCwgInZhbHVlIjogMC4yMzg1OTk0NjQyOTcyOTQ2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTA5LjYxNzY5NTgsICJzdGVwIjogMzYzMCwgInZhbHVlIjogMC4yODMyMTcyNTEzMDA4MTE3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTE4LjEyNzAxMywgInN0ZXAiOiAzNjQwLCAidmFsdWUiOiAwLjI1NTE5MDkwODkwODg0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTI2Ljk5MDkzNTMsICJzdGVwIjogMzY1MCwgInZhbHVlIjogMC4yMTE5Mjk5NDcxMzc4MzI2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTM1LjgyNTE5MzYsICJzdGVwIjogMzY2MCwgInZhbHVlIjogMC4zMTMxNjEwNDUzMTI4ODE0N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTQ0LjI0NTk2MjQsICJzdGVwIjogMzY3MCwgInZhbHVlIjogMC4yMjE2MDEzMzcxOTQ0NDI3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTUyLjk2MjI5OTMsICJzdGVwIjogMzY4MCwgInZhbHVlIjogMC4yNDE2NzEzNTM1Nzg1Njc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNjAuNjAxMjQ5LCAic3RlcCI6IDM2OTAsICJ2YWx1ZSI6IDAuMjU3NTYyNzU2NTM4MzkxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTczLjc0ODA5OCwgInN0ZXAiOiAzNzAwLCAidmFsdWUiOiAwLjI2MTA5MTg4Nzk1MDg5NzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTE4Mi44ODEwNzk0LCAic3RlcCI6IDM3MTAsICJ2YWx1ZSI6IDAuMjY2MTQxNTYzNjUzOTQ1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTkxLjIwNzg3NDMsICJzdGVwIjogMzcyMCwgInZhbHVlIjogMC4zMTM0NjI0OTU4MDM4MzN9LCB7IndhbGxUaW1lIjogMTczMzA3MTIwMC4zMzEyNjE0LCAic3RlcCI6IDM3MzAsICJ2YWx1ZSI6IDAuNTczNzU0NjY4MjM1Nzc4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjA4LjM2MzUxNTYsICJzdGVwIjogMzc0MCwgInZhbHVlIjogMC4yODA0NTA2MTIzMDY1OTQ4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjE2LjU2OTczMzQsICJzdGVwIjogMzc1MCwgInZhbHVlIjogMC4yMDE2MTkwODg2NDk3NDk3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjI0LjY1OTc1NTIsICJzdGVwIjogMzc2MCwgInZhbHVlIjogMC4xNjk5NjQ5OTg5NjA0OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTIzMi44NTg0ODA3LCAic3RlcCI6IDM3NzAsICJ2YWx1ZSI6IDAuMTYzNjQ0NjcxNDQwMTI0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjQ4LjUzMTI0MTIsICJzdGVwIjogMzc4MCwgInZhbHVlIjogMC4zNTcwMDEzNjQyMzExMDk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNTcuMzg5NjE4NiwgInN0ZXAiOiAzNzkwLCAidmFsdWUiOiAwLjQyNDMwNzQwNTk0ODYzODl9LCB7IndhbGxUaW1lIjogMTczMzA3MTI2NS41NjUyMjE4LCAic3RlcCI6IDM4MDAsICJ2YWx1ZSI6IDAuMTkzNDc3MjQzMTg1MDQzMzN9LCB7IndhbGxUaW1lIjogMTczMzA3MTI3NC4xNzY2MDcsICJzdGVwIjogMzgxMCwgInZhbHVlIjogMC4zMDk0MTE1NTU1Mjg2NDA3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjgzLjAxNTg1NCwgInN0ZXAiOiAzODIwLCAidmFsdWUiOiAwLjIyODk3NDIyMzEzNjkwMTg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyOTEuNzI3Njk0NSwgInN0ZXAiOiAzODMwLCAidmFsdWUiOiAwLjE3Njc2NjIxNjc1NDkxMzMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyOTkuODg5ODE5NiwgInN0ZXAiOiAzODQwLCAidmFsdWUiOiAwLjIwNzg1NTcxNjM0NzY5NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTMwOC40NzcyNjk2LCAic3RlcCI6IDM4NTAsICJ2YWx1ZSI6IDAuMjg0NTAzNDMwMTI4MDk3NTN9LCB7IndhbGxUaW1lIjogMTczMzA3MTMxNi45NDkzOTcsICJzdGVwIjogMzg2MCwgInZhbHVlIjogMC4zMDQ3NjcwMTI1OTYxMzAzN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzMwLjIxMjk3NDUsICJzdGVwIjogMzg3MCwgInZhbHVlIjogMC4yMjM0MzYxMTcxNzIyNDEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMzguOTg2OTE4NywgInN0ZXAiOiAzODgwLCAidmFsdWUiOiAwLjI0MDU1NzkyMzkxMzAwMjAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNDcuNzM0OTA4MywgInN0ZXAiOiAzODkwLCAidmFsdWUiOiAwLjIxNTE1MzkxNzY3MDI0OTk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNTcuMDMyNDM4LCAic3RlcCI6IDM5MDAsICJ2YWx1ZSI6IDAuMjE2MjM2NDg3MDMwOTgyOTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTM2NS4yMjM1MzU1LCAic3RlcCI6IDM5MTAsICJ2YWx1ZSI6IDAuMjk1MTMwMDE0NDE5NTU1NjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTM3NC4xMzI4NDY2LCAic3RlcCI6IDM5MjAsICJ2YWx1ZSI6IDAuNDU5MTE4MzA2NjM2ODEwM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzgyLjgxMjA1NDIsICJzdGVwIjogMzkzMCwgInZhbHVlIjogMC4yOTgzMzM3MzQyNzM5MTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzOTEuNTY2NjczOCwgInN0ZXAiOiAzOTQwLCAidmFsdWUiOiAwLjI1NTkwMzI0NDAxODU1NDd9LCB7IndhbGxUaW1lIjogMTczMzA3MTQwNC40NjU0MjA1LCAic3RlcCI6IDM5NTAsICJ2YWx1ZSI6IDAuMjMyODE2NzExMDY4MTUzMzh9LCB7IndhbGxUaW1lIjogMTczMzA3MTQxMi4zMzcwNzkzLCAic3RlcCI6IDM5NjAsICJ2YWx1ZSI6IDAuMjU1Mjk5OTI1ODA0MTM4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDIxLjE1NTc4OSwgInN0ZXAiOiAzOTcwLCAidmFsdWUiOiAwLjI3MzEzNzg5NzI1MzAzNjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTQzMC4xMTg3NzQ0LCAic3RlcCI6IDM5ODAsICJ2YWx1ZSI6IDAuMTk0NTkyMDU4NjU4NTk5ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MTQzOC40MTIyMjAyLCAic3RlcCI6IDM5OTAsICJ2YWx1ZSI6IDAuMzczNDc4MjkzNDE4ODg0M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDQ3LjcyNzA2NCwgInN0ZXAiOiA0MDAwLCAidmFsdWUiOiAwLjM1MzE5MzMxMjg4MzM3NzF9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ1Ni4xOTQ4NzEsICJzdGVwIjogNDAxMCwgInZhbHVlIjogMC4yOTE3MTc1MjkyOTY4NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ2NC43NDc3MjUyLCAic3RlcCI6IDQwMjAsICJ2YWx1ZSI6IDAuMjQ5MTUxMjg5NDYzMDQzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDczLjM5NDkxMSwgInN0ZXAiOiA0MDMwLCAidmFsdWUiOiAwLjMyNTcxNDY0Nzc2OTkyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDkwLjI4NDczMiwgInN0ZXAiOiA0MDQwLCAidmFsdWUiOiAwLjI0NzQxNjUxMTE3ODAxNjY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0OTguNzEwMDEyNCwgInN0ZXAiOiA0MDUwLCAidmFsdWUiOiAwLjIzNjE5MjE5NjYwNzU4OTcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MDcuMDk1NjI2NiwgInN0ZXAiOiA0MDYwLCAidmFsdWUiOiAwLjE5MTU2MzEyOTQyNTA0ODgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MTUuMDY2MDk2LCAic3RlcCI6IDQwNzAsICJ2YWx1ZSI6IDAuMjg1Njk5ODE0NTU4MDI5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTIzLjg3OTU2MTIsICJzdGVwIjogNDA4MCwgInZhbHVlIjogMC4yNzIxMjU1NzE5NjYxNzEyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTMyLjI4MzU2MTIsICJzdGVwIjogNDA5MCwgInZhbHVlIjogMC4xOTcyMjY4MjIzNzYyNTEyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTQwLjkxNjEzNjcsICJzdGVwIjogNDEwMCwgInZhbHVlIjogMC4yMTY4ODMyNTcwMzE0NDA3M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTQ5LjE3NDY5MywgInN0ZXAiOiA0MTEwLCAidmFsdWUiOiAwLjE4MzUxMzE3OTQyMTQyNDg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NjUuODM0NTM3LCAic3RlcCI6IDQxMjAsICJ2YWx1ZSI6IDAuMjI2MDc4NzAzOTk5NTE5MzV9LCB7IndhbGxUaW1lIjogMTczMzA3MTU3My42MzAyNjIsICJzdGVwIjogNDEzMCwgInZhbHVlIjogMC4xNjEwMTc4MzUxNDAyMjgyN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTgyLjA5NDg2NzcsICJzdGVwIjogNDE0MCwgInZhbHVlIjogMC40MjAwNjUwNDUzNTY3NTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1OTAuMDIxMjYyNCwgInN0ZXAiOiA0MTUwLCAidmFsdWUiOiAwLjE2MDg3NDU0NTU3NDE4ODIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1OTkuMjM5NjE4NSwgInN0ZXAiOiA0MTYwLCAidmFsdWUiOiAwLjcwOTQ2NzUzMDI1MDU0OTN9LCB7IndhbGxUaW1lIjogMTczMzA3MTYwOC4wNzA0MTE3LCAic3RlcCI6IDQxNzAsICJ2YWx1ZSI6IDAuMjUzOTk3MTc2ODg1NjA0ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTYxNi4xODI2MjEyLCAic3RlcCI6IDQxODAsICJ2YWx1ZSI6IDAuMzEzMzE0MjI5MjQ5OTU0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjI2LjA4MTY3MjIsICJzdGVwIjogNDE5MCwgInZhbHVlIjogMC4xNTk2Mzg5NTYxODkxNTU1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjQxLjAwNjcxNjMsICJzdGVwIjogNDIwMCwgInZhbHVlIjogMC4yNDUxMTMyNTM1OTM0NDQ4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjQ5LjAzOTYwNjgsICJzdGVwIjogNDIxMCwgInZhbHVlIjogMC4yMDE5MjIzODY4ODQ2ODkzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjU4LjUzMDQxOTMsICJzdGVwIjogNDIyMCwgInZhbHVlIjogMC4yODAwNDI0OTkzMDM4MTc3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjY3Ljk2NTA2NzksICJzdGVwIjogNDIzMCwgInZhbHVlIjogMC4zMjQwOTY1NjA0NzgyMTA0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjc2LjEwNzczNDcsICJzdGVwIjogNDI0MCwgInZhbHVlIjogMC4yMDg1MTM4NTU5MzQxNDMwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjg0LjM3NzUxNzIsICJzdGVwIjogNDI1MCwgInZhbHVlIjogMC4zMTQyNzM3MTUwMTkyMjYxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2OTMuMTA4NjgyOSwgInN0ZXAiOiA0MjYwLCAidmFsdWUiOiAwLjI4ODk0MDAxMjQ1NDk4NjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTcwMi4xODI5NDQ1LCAic3RlcCI6IDQyNzAsICJ2YWx1ZSI6IDAuMjExNTc2NzAwMjEwNTcxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzEwLjYyODk4MDQsICJzdGVwIjogNDI4MCwgInZhbHVlIjogMC4zMjIxOTczNzc2ODE3MzIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MjYuNjc1ODAzNCwgInN0ZXAiOiA0MjkwLCAidmFsdWUiOiAwLjI2Mzc3MDQ5MDg4NDc4MDl9LCB7IndhbGxUaW1lIjogMTczMzA3MTczNS4yMTQ1OTc1LCAic3RlcCI6IDQzMDAsICJ2YWx1ZSI6IDAuMjY4NDE3MzU4Mzk4NDM3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzQyLjk1NjE0NzQsICJzdGVwIjogNDMxMCwgInZhbHVlIjogMC4yNjI3MTYzMjMxMzcyODMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NTEuNTg0ODI3LCAic3RlcCI6IDQzMjAsICJ2YWx1ZSI6IDAuNDI1MDA2NDc5MDI0ODg3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzYwLjAzMzY2NywgInN0ZXAiOiA0MzMwLCAidmFsdWUiOiAwLjI3NjUwNjU3Mjk2MTgwNzI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NjguNDMwNDEyNSwgInN0ZXAiOiA0MzQwLCAidmFsdWUiOiAwLjE4MDczMjM5OTIyNTIzNDk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NzcuNDAxMDc5LCAic3RlcCI6IDQzNTAsICJ2YWx1ZSI6IDAuMjk2ODY0ODk3MDEyNzEwNTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTc4NS41NDY0MDY1LCAic3RlcCI6IDQzNjAsICJ2YWx1ZSI6IDAuMjczMzcyMzUyMTIzMjYwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODAwLjg4Mzg2NTgsICJzdGVwIjogNDM3MCwgInZhbHVlIjogMC4zNTc1ODY1NjI2MzM1MTQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MDkuMjY0ODI2NSwgInN0ZXAiOiA0MzgwLCAidmFsdWUiOiAwLjI0MTMzNDI1OTUxMDA0MDI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MTcuMzQ1NDg4LCAic3RlcCI6IDQzOTAsICJ2YWx1ZSI6IDAuMjA1NDk5MjQ2NzE2NDk5MzN9LCB7IndhbGxUaW1lIjogMTczMzA3MTgyNi40Mjk0NzYsICJzdGVwIjogNDQwMCwgInZhbHVlIjogMC4zMDU1Njc0NDMzNzA4MTkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MzQuODg2NjkxLCAic3RlcCI6IDQ0MTAsICJ2YWx1ZSI6IDAuMjkzNDYxNTAxNTk4MzU4MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTg0My40NDU5MzQ4LCAic3RlcCI6IDQ0MjAsICJ2YWx1ZSI6IDAuMjU3NTA3MDI2MTk1NTI2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODUxLjU5NTExMjgsICJzdGVwIjogNDQzMCwgInZhbHVlIjogMC4yNDY1NjEzNDg0MzgyNjI5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODU5LjkyMzAxODIsICJzdGVwIjogNDQ0MCwgInZhbHVlIjogMC4yNTgzMDYyOTQ2Nzk2NDE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NjguNjcyMjk0NCwgInN0ZXAiOiA0NDUwLCAidmFsdWUiOiAwLjI0NTIzMTEyMTc3ODQ4ODE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4ODEuMzM1MjkxLCAic3RlcCI6IDQ0NjAsICJ2YWx1ZSI6IDAuMjI2ODA2OTgzMzUxNzA3NDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTg4OS42MzUyMTU4LCAic3RlcCI6IDQ0NzAsICJ2YWx1ZSI6IDAuMjM5NDc5NTcxNTgwODg2ODR9LCB7IndhbGxUaW1lIjogMTczMzA3MTg5OC40MTk4Nzc1LCAic3RlcCI6IDQ0ODAsICJ2YWx1ZSI6IDAuMjY4NjM3Mzg4OTQ0NjI1ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MTkwNy4zMzUwNzksICJzdGVwIjogNDQ5MCwgInZhbHVlIjogMC4yMjkyMzc4MDk3NzcyNTk4M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTE2LjI3NzE0LCAic3RlcCI6IDQ1MDAsICJ2YWx1ZSI6IDAuMzI4ODgwNDI5MjY3ODgzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTI1LjM0NzgwNiwgInN0ZXAiOiA0NTEwLCAidmFsdWUiOiAwLjM2Mzc1OTk2NDcwNDUxMzU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5MzMuMzI4MzYyMiwgInN0ZXAiOiA0NTIwLCAidmFsdWUiOiAwLjE1MjI1NzAyNTI0MTg1MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MTk0MS40ODE3MzAyLCAic3RlcCI6IDQ1MzAsICJ2YWx1ZSI6IDAuMTY0NjQxOTYxNDU1MzQ1MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTk1NC4xNjgwNTM0LCAic3RlcCI6IDQ1NDAsICJ2YWx1ZSI6IDAuMjM0MDg1NjQ5MjUxOTM3ODd9LCB7IndhbGxUaW1lIjogMTczMzA3MTk2Mi4zOTQ4MzEyLCAic3RlcCI6IDQ1NTAsICJ2YWx1ZSI6IDAuMTg4MzczOTk3ODA3NTAyNzV9LCB7IndhbGxUaW1lIjogMTczMzA3MTk3MC41MTIzODA4LCAic3RlcCI6IDQ1NjAsICJ2YWx1ZSI6IDAuMjY0ODQyMTgyMzk3ODQyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTc4Ljg2ODk0NSwgInN0ZXAiOiA0NTcwLCAidmFsdWUiOiAwLjM3MTM0ODUwMDI1MTc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5ODcuNzA5NTA5NCwgInN0ZXAiOiA0NTgwLCAidmFsdWUiOiAwLjI5NjgyNDY5MzY3OTgwOTU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5OTYuNDQzMjM2NiwgInN0ZXAiOiA0NTkwLCAidmFsdWUiOiAwLjM4NzU3MDMyMTU1OTkwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDA0LjQ3NDkzMSwgInN0ZXAiOiA0NjAwLCAidmFsdWUiOiAwLjE5MjUzMjgzNzM5MDg5OTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMTIuNzQzNjg3MiwgInN0ZXAiOiA0NjEwLCAidmFsdWUiOiAwLjE4MTczMDgwNjgyNzU0NTE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMjUuMzk5MTA5NiwgInN0ZXAiOiA0NjIwLCAidmFsdWUiOiAwLjE5ODgyMzkyODgzMzAwNzh9LCB7IndhbGxUaW1lIjogMTczMzA3MjAzNC4xMTcwNjY0LCAic3RlcCI6IDQ2MzAsICJ2YWx1ZSI6IDAuMTg5MTY4MTI1MzkxMDA2NDd9LCB7IndhbGxUaW1lIjogMTczMzA3MjA0My4wMzYxODE0LCAic3RlcCI6IDQ2NDAsICJ2YWx1ZSI6IDAuMzEyMjEwNTU5ODQ0OTcwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDUxLjc4MzA3MTUsICJzdGVwIjogNDY1MCwgInZhbHVlIjogMC4yNTE3MDI0Mjc4NjQwNzQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNjAuMTA2OTAyNCwgInN0ZXAiOiA0NjYwLCAidmFsdWUiOiAwLjI0NDEwNzAyMjg4MTUwNzg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNjguNjAxNTcyLCAic3RlcCI6IDQ2NzAsICJ2YWx1ZSI6IDAuMjczMTg4MjkyOTgwMTk0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDc2LjgzNTA0MTUsICJzdGVwIjogNDY4MCwgInZhbHVlIjogMC4yNjg0ODE2MTIyMDU1MDUzN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDg1LjM3NDUxOCwgInN0ZXAiOiA0NjkwLCAidmFsdWUiOiAwLjI4NjUxNDY5OTQ1OTA3NTl9LCB7IndhbGxUaW1lIjogMTczMzA3MjA5My43NDY5NjA5LCAic3RlcCI6IDQ3MDAsICJ2YWx1ZSI6IDAuMjE0MzgxNzU0Mzk4MzQ1OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjEwNi45ODgxMTk0LCAic3RlcCI6IDQ3MTAsICJ2YWx1ZSI6IDAuMjU5MDg2ODc3MTA3NjIwMjR9LCB7IndhbGxUaW1lIjogMTczMzA3MjExNS42NjM0OTI0LCAic3RlcCI6IDQ3MjAsICJ2YWx1ZSI6IDAuNDE2ODU1NTQzODUxODUyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTIzLjk0ODkyNTcsICJzdGVwIjogNDczMCwgInZhbHVlIjogMC4zMjQyODI4MjQ5OTMxMzM1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTMyLjI3ODk3NjcsICJzdGVwIjogNDc0MCwgInZhbHVlIjogMC4yMjgxNTgzNjk2NjAzNzc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNDAuNDE4ODM5NSwgInN0ZXAiOiA0NzUwLCAidmFsdWUiOiAwLjE5NDA0MTIwNzQzMjc0Njl9LCB7IndhbGxUaW1lIjogMTczMzA3MjE0OS4wODU1MjcyLCAic3RlcCI6IDQ3NjAsICJ2YWx1ZSI6IDAuMjEzNTE0OTUzODUxNjk5ODN9LCB7IndhbGxUaW1lIjogMTczMzA3MjE1Ny40MTAwNTAyLCAic3RlcCI6IDQ3NzAsICJ2YWx1ZSI6IDAuMjM5ODM4MDA0MTEyMjQzNjV9LCB7IndhbGxUaW1lIjogMTczMzA3MjE2NS40ODc3MjQzLCAic3RlcCI6IDQ3ODAsICJ2YWx1ZSI6IDAuMjcxNjk1Mzc1NDQyNTA0OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTc5LjY0NjI1ODYsICJzdGVwIjogNDc5MCwgInZhbHVlIjogMC4yNTkxNzkwODU0OTMwODc3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTg4LjMyODA1OCwgInN0ZXAiOiA0ODAwLCAidmFsdWUiOiAwLjE5MzcxNTQyMzM0NTU2NTh9LCB7IndhbGxUaW1lIjogMTczMzA3MjE5Ni44NDUyOTkyLCAic3RlcCI6IDQ4MTAsICJ2YWx1ZSI6IDAuMjU4ODMxMjMyNzg2MTc4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjA0LjU2MDYwNDYsICJzdGVwIjogNDgyMCwgInZhbHVlIjogMC4yMDI5ODYwMzE3NzA3MDYxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjEzLjA5Nzk5NzcsICJzdGVwIjogNDgzMCwgInZhbHVlIjogMC4zNjIyMDE2MDEyNjY4NjA5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjIxLjY2NTM0ODMsICJzdGVwIjogNDg0MCwgInZhbHVlIjogMC4yNjQ5Njc0NDE1NTg4Mzc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMjkuODkyMzExNiwgInN0ZXAiOiA0ODUwLCAidmFsdWUiOiAwLjIwMzc3NjA2MTUzNDg4MTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjIzOC4wNTQ1MjgyLCAic3RlcCI6IDQ4NjAsICJ2YWx1ZSI6IDAuMjQyOTU4NjA1Mjg5NDU5MjN9LCB7IndhbGxUaW1lIjogMTczMzA3MjI0Ni4zNDE4Njk0LCAic3RlcCI6IDQ4NzAsICJ2YWx1ZSI6IDAuMjAwOTgxMzMzODUxODE0Mjd9LCB7IndhbGxUaW1lIjogMTczMzA3MjI2MS4yNjU3MTc3LCAic3RlcCI6IDQ4ODAsICJ2YWx1ZSI6IDAuMjI5NzQxMzA1MTEyODM4NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MjI2OS44NTA1MjEsICJzdGVwIjogNDg5MCwgInZhbHVlIjogMC4yMjA4MTc3MDAwMjg0MTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNzguODU5NzYxMiwgInN0ZXAiOiA0OTAwLCAidmFsdWUiOiAwLjI4NTI3NjUwMjM3MDgzNDM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyODcuNTMyOTM5LCAic3RlcCI6IDQ5MTAsICJ2YWx1ZSI6IDAuMjAxNTc0ODAyMzk4NjgxNjR9LCB7IndhbGxUaW1lIjogMTczMzA3MjI5NS45NDU1NzkzLCAic3RlcCI6IDQ5MjAsICJ2YWx1ZSI6IDAuMTc4MDIxNzczNjk1OTQ1NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MjMwNC4zNTM4MzM0LCAic3RlcCI6IDQ5MzAsICJ2YWx1ZSI6IDAuMjY1MTY1NDE4Mzg2NDU5MzV9LCB7IndhbGxUaW1lIjogMTczMzA3MjMxMy41MDgzMDI3LCAic3RlcCI6IDQ5NDAsICJ2YWx1ZSI6IDAuMjY0MTg0MTE3MzE3MTk5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzIxLjMyMzg0MTYsICJzdGVwIjogNDk1MCwgInZhbHVlIjogMC4xODczODIxNjE2MTcyNzkwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzM3LjAyMzQ1NTksICJzdGVwIjogNDk2MCwgInZhbHVlIjogMC4xNjQ0ODE4NjMzNzk0Nzg0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzQ1LjUyOTI4ODUsICJzdGVwIjogNDk3MCwgInZhbHVlIjogMC4xNzY4NTM5OTk0OTU1MDYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNTMuNDI4MzUxLCAic3RlcCI6IDQ5ODAsICJ2YWx1ZSI6IDAuMjI1MzgwODY3NzE5NjUwMjd9LCB7IndhbGxUaW1lIjogMTczMzA3MjM2Mi40MTE4MTgsICJzdGVwIjogNDk5MCwgInZhbHVlIjogMC4yNDA3MzMzMjU0ODE0MTQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNzEuNzQ0NTMyNiwgInN0ZXAiOiA1MDAwLCAidmFsdWUiOiAwLjIyOTM3MDAxMjg3OTM3MTY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzODAuNTI4MjY5LCAic3RlcCI6IDUwMTAsICJ2YWx1ZSI6IDAuMjkwMDA1MTQ3NDU3MTIyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzg5LjAyNTA1MywgInN0ZXAiOiA1MDIwLCAidmFsdWUiOiAwLjMwNDgyMTAxNDQwNDI5Njl9LCB7IndhbGxUaW1lIjogMTczMzA3MjM5Ny43ODQxMTYsICJzdGVwIjogNTAzMCwgInZhbHVlIjogMC4xOTYyMTgwMjg2NjQ1ODg5M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDExLjI5NjkzMjcsICJzdGVwIjogNTA0MCwgInZhbHVlIjogMC4yMjAyMTE5ODI3MjcwNTA3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDE5LjQ3MjY5MjMsICJzdGVwIjogNTA1MCwgInZhbHVlIjogMC4yMDY4NzY4NTkwNjg4NzA1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDI4LjM3MDg2NCwgInN0ZXAiOiA1MDYwLCAidmFsdWUiOiAwLjI4NzgxMjQxMTc4NTEyNTczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MzcuMTE1MDM0MywgInN0ZXAiOiA1MDcwLCAidmFsdWUiOiAwLjI2NjI0MTk5NzQ4MDM5MjQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NDYuMTczODQzOSwgInN0ZXAiOiA1MDgwLCAidmFsdWUiOiAwLjI5MDUwNjAzNTA4OTQ5Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ1NC40MjcwMjE3LCAic3RlcCI6IDUwOTAsICJ2YWx1ZSI6IDAuMTk4OTc0NDQ1NDYyMjI2ODd9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ2Mi40MDkxMDcsICJzdGVwIjogNTEwMCwgInZhbHVlIjogMC4yNDgxNDc0MTMxMzQ1NzQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NzEuMTQ4NTgxLCAic3RlcCI6IDUxMTAsICJ2YWx1ZSI6IDAuMjE4NDg4NDg0NjIxMDQ3OTd9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ3OC45NDUxNTQ3LCAic3RlcCI6IDUxMjAsICJ2YWx1ZSI6IDAuMzAxNTk5NTMyMzY1Nzk4OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ5MS4zMjAzMDksICJzdGVwIjogNTEzMCwgInZhbHVlIjogMC4zMjUwOTQ2MTA0NTI2NTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ5OS4yNTczNDA0LCAic3RlcCI6IDUxNDAsICJ2YWx1ZSI6IDAuMTY3OTcyNTE5OTkzNzgyMDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjUwNy4xMTA3Mjg3LCAic3RlcCI6IDUxNTAsICJ2YWx1ZSI6IDAuMjE4OTg3NTg0MTE0MDc0N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTE1LjMxNTgxODUsICJzdGVwIjogNTE2MCwgInZhbHVlIjogMC42MTYyNDk5MTg5Mzc2ODMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MjMuNDk4MTc3MywgInN0ZXAiOiA1MTcwLCAidmFsdWUiOiAwLjI3NDI5ODI1MDY3NTIwMTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjUzMS4wODU4NzU1LCAic3RlcCI6IDUxODAsICJ2YWx1ZSI6IDAuMTc0MjUzNTgyOTU0NDA2NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MjU0MC4wMTk4NDc2LCAic3RlcCI6IDUxOTAsICJ2YWx1ZSI6IDAuMjM4MTk0Njg5MTU0NjI0OTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjU0OC42NTAxMzg0LCAic3RlcCI6IDUyMDAsICJ2YWx1ZSI6IDAuMjY0NDAzNjcxMDI2MjI5ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjU2MS40MTMyOTk2LCAic3RlcCI6IDUyMTAsICJ2YWx1ZSI6IDAuMjA5MjgwNjM5ODg2ODU2MDh9LCB7IndhbGxUaW1lIjogMTczMzA3MjU2OS44OTQyMjkyLCAic3RlcCI6IDUyMjAsICJ2YWx1ZSI6IDAuMjg5MzU0OTIwMzg3MjY4MDd9LCB7IndhbGxUaW1lIjogMTczMzA3MjU3OC42NzY5MjgsICJzdGVwIjogNTIzMCwgInZhbHVlIjogMC4yNjcwODI4NzAwMDY1NjEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1ODYuOTQwMjEwNiwgInN0ZXAiOiA1MjQwLCAidmFsdWUiOiAwLjI3MjUzNjMwNzU3MzMxODV9LCB7IndhbGxUaW1lIjogMTczMzA3MjU5NS4wMzI5Mzk0LCAic3RlcCI6IDUyNTAsICJ2YWx1ZSI6IDAuMzM0NjU5NDg3MDA5MDQ4NDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjYwMy4xNzIwNjE3LCAic3RlcCI6IDUyNjAsICJ2YWx1ZSI6IDAuMjQ2NTk3MDY2NTIxNjQ0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjExLjA3ODEwMzMsICJzdGVwIjogNTI3MCwgInZhbHVlIjogMC4yNzYyNTkxNTQwODEzNDQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MTkuOTUzMDg2MSwgInN0ZXAiOiA1MjgwLCAidmFsdWUiOiAwLjI0NDA2MjgyNjAzNzQwNjkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MjguNjMzMjIxLCAic3RlcCI6IDUyOTAsICJ2YWx1ZSI6IDAuMjM5MTUxNDkyNzE0ODgxOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjQxLjM3NDA3NTcsICJzdGVwIjogNTMwMCwgInZhbHVlIjogMC4yMjU0NTI3OTU2MjQ3MzI5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjQ5Ljg1NjE5MDcsICJzdGVwIjogNTMxMCwgInZhbHVlIjogMC4xNjYyNzc4NTU2MzQ2ODkzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjU3Ljk2OTk0MTEsICJzdGVwIjogNTMyMCwgInZhbHVlIjogMC4xODIzMzAwNzE5MjYxMTY5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjY3LjAyODAyMjgsICJzdGVwIjogNTMzMCwgInZhbHVlIjogMC4yOTQzMTA0NTA1NTM4OTQwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjc1Ljk0MTYxOTYsICJzdGVwIjogNTM0MCwgInZhbHVlIjogMC4yNDAwNjk1OTc5NTk1MTg0M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjg0LjIzNzA4MzcsICJzdGVwIjogNTM1MCwgInZhbHVlIjogMC4zNzE2NzczMzkwNzY5OTU4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjkxLjg1Njc1NTMsICJzdGVwIjogNTM2MCwgInZhbHVlIjogMC4yNDc5Mjg1ODk1ODI0NDMyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzAwLjE0NjYwNDMsICJzdGVwIjogNTM3MCwgInZhbHVlIjogMC4xODU2MTg5ODE3MTkwMTcwM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzEzLjE4MTY0MDksICJzdGVwIjogNTM4MCwgInZhbHVlIjogMC4xODg4NTgzMDA0NDc0NjR9LCB7IndhbGxUaW1lIjogMTczMzA3MjcyMS4wMjMzNDI4LCAic3RlcCI6IDUzOTAsICJ2YWx1ZSI6IDAuMTY0OTg0MzAwNzMyNjEyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzI5Ljg3NTU3ODksICJzdGVwIjogNTQwMCwgInZhbHVlIjogMC4yMjU1NjAxODgyOTM0NTcwM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzM4LjM2NzM2MjcsICJzdGVwIjogNTQxMCwgInZhbHVlIjogMC4xNzkwOTA0MjUzNzIxMjM3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzQ2LjM4MTI3MzUsICJzdGVwIjogNTQyMCwgInZhbHVlIjogMC4yNDk4NTIxMjA4NzYzMTIyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzU0LjYxNjI4MywgInN0ZXAiOiA1NDMwLCAidmFsdWUiOiAwLjMxMzAwMTAwNjg0MTY1OTU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3NjIuNTQ0ODY2OCwgInN0ZXAiOiA1NDQwLCAidmFsdWUiOiAwLjE4NzAxMTk0MjI2NzQxNzl9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc3MS4zNTkyNjI1LCAic3RlcCI6IDU0NTAsICJ2YWx1ZSI6IDAuMjQzNDQ4Mzc2NjU1NTc4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzg3LjE1MDMzNDEsICJzdGVwIjogNTQ2MCwgInZhbHVlIjogMC4xNzg2NzQ2MjMzNzAxNzA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3OTUuODAxMDk2NywgInN0ZXAiOiA1NDcwLCAidmFsdWUiOiAwLjI1MDY0MzY0MDc1NjYwNzA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MDQuMjQwNjE5MiwgInN0ZXAiOiA1NDgwLCAidmFsdWUiOiAwLjE2NzY3MzA2NjI1ODQzMDQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MTIuMzcxNzE5MSwgInN0ZXAiOiA1NDkwLCAidmFsdWUiOiAwLjI2NTEwNjQ5OTE5NTA5ODl9LCB7IndhbGxUaW1lIjogMTczMzA3MjgyMS4xNTc4NDMsICJzdGVwIjogNTUwMCwgInZhbHVlIjogMC4yNzQyODM5MTU3NTgxMzI5M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyODMwLjAyMTE4LCAic3RlcCI6IDU1MTAsICJ2YWx1ZSI6IDAuMjk0OTA2MjI4NzgwNzQ2NDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjgzOC42OTM3MTE4LCAic3RlcCI6IDU1MjAsICJ2YWx1ZSI6IDAuMjA3NDY0NzA5ODc3OTY3ODN9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg0Ni45MDM1OCwgInN0ZXAiOiA1NTMwLCAidmFsdWUiOiAwLjE2OTYzNjcyNjM3OTM5NDUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NTUuMjQ0MTM3NSwgInN0ZXAiOiA1NTQwLCAidmFsdWUiOiAwLjE5NzgzMDgxMTE0MjkyMTQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NzAuNjQyMzg3MiwgInN0ZXAiOiA1NTUwLCAidmFsdWUiOiAwLjI4MzI0NTE3NjA3Njg4OTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NzguNzI3MDUyMiwgInN0ZXAiOiA1NTYwLCAidmFsdWUiOiAwLjI3NTIzMzY1NjE2Nzk4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODg2LjYwODQ4NzQsICJzdGVwIjogNTU3MCwgInZhbHVlIjogMC4yMzMyODk0MzU1MDU4Njd9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg5NS4wMTkzMTI5LCAic3RlcCI6IDU1ODAsICJ2YWx1ZSI6IDAuODU2MjcxMDI4NTE4Njc2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTAzLjQwMTM1MDUsICJzdGVwIjogNTU5MCwgInZhbHVlIjogMC4yMDg2NDE5NzYxMTgwODc3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTExLjIwODM3NzYsICJzdGVwIjogNTYwMCwgInZhbHVlIjogMC4zMDkwNTAxMTI5NjI3MjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MTkuODM4MzA1LCAic3RlcCI6IDU2MTAsICJ2YWx1ZSI6IDAuMjYwMjUyNzczNzYxNzQ5Mjd9LCB7IndhbGxUaW1lIjogMTczMzA3MjkyOC43MzEzOTE3LCAic3RlcCI6IDU2MjAsICJ2YWx1ZSI6IDAuMzY4NTY2MTU1NDMzNjU0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTQxLjcwMjA4OCwgInN0ZXAiOiA1NjMwLCAidmFsdWUiOiAwLjIwMzUwNjAzNzU5Mjg4Nzg4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NDkuOTc4Mjc5NCwgInN0ZXAiOiA1NjQwLCAidmFsdWUiOiAwLjIzMzg2MDQ5MjcwNjI5ODgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NTguNzE3MjU2NSwgInN0ZXAiOiA1NjUwLCAidmFsdWUiOiAwLjMyNDUxMTc2NjQzMzcxNTh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk2Ni44MTIwMjI0LCAic3RlcCI6IDU2NjAsICJ2YWx1ZSI6IDAuMjAzMDg2NzYzNjIwMzc2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTc0Ljk1OTQxODUsICJzdGVwIjogNTY3MCwgInZhbHVlIjogMC4xODUyMDA3ODA2MzAxMTE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5ODMuNTYwMzEzNywgInN0ZXAiOiA1NjgwLCAidmFsdWUiOiAwLjIzMDMwNTM3MzY2ODY3MDY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5OTIuMjI2MDIzLCAic3RlcCI6IDU2OTAsICJ2YWx1ZSI6IDAuMjUwOTQ1Nzc2NzAwOTczNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDAwLjgxNTQzOCwgInN0ZXAiOiA1NzAwLCAidmFsdWUiOiAwLjE5ODE0MDc1NTI5NTc1MzQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMDkuNzgxNjI4NiwgInN0ZXAiOiA1NzEwLCAidmFsdWUiOiAwLjI0MDk4MjY5NjQxMzk5Mzg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMjIuODY2NjIyNywgInN0ZXAiOiA1NzIwLCAidmFsdWUiOiAwLjM2NjIwNjQ2NzE1MTY0MTg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMzEuNTMyMDI0LCAic3RlcCI6IDU3MzAsICJ2YWx1ZSI6IDAuMjg4MTIyMzI2MTM1NjM1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDM5LjU2ODMzMiwgInN0ZXAiOiA1NzQwLCAidmFsdWUiOiAwLjI0MzE3MDI3NjI4NDIxNzgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNDcuODQxMzYxOCwgInN0ZXAiOiA1NzUwLCAidmFsdWUiOiAwLjIzNzczMjA2NzcwNDIwMDc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNTYuMTU0OTQ0LCAic3RlcCI6IDU3NjAsICJ2YWx1ZSI6IDAuMTgzNzAyMDM2NzM4Mzk1N30sIHsid2FsbFRpbWUiOiAxNzMzMDczMDY0Ljk1MzQ5MzgsICJzdGVwIjogNTc3MCwgInZhbHVlIjogMC4zNDAzNjkwNDU3MzQ0MDU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNzMuODM2MDk2LCAic3RlcCI6IDU3ODAsICJ2YWx1ZSI6IDAuMjIyMDk3MTczMzMzMTY4MDN9LCB7IndhbGxUaW1lIjogMTczMzA3MzA4Mi43MjM1MDA3LCAic3RlcCI6IDU3OTAsICJ2YWx1ZSI6IDAuMzE2NDc1NTcwMjAxODczOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDk1LjEwMTM4NTQsICJzdGVwIjogNTgwMCwgInZhbHVlIjogMC4yMTg3NDU4NTc0NzcxODgxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMDMuMzE0MjA2LCAic3RlcCI6IDU4MTAsICJ2YWx1ZSI6IDAuMjQ1OTczOTE0ODYxNjc5MDh9LCB7IndhbGxUaW1lIjogMTczMzA3MzExMS45NjkxNTEzLCAic3RlcCI6IDU4MjAsICJ2YWx1ZSI6IDAuMTYyNDEwMzc4NDU2MTE1NzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzEyMC4zNTM2MDM2LCAic3RlcCI6IDU4MzAsICJ2YWx1ZSI6IDAuMzA1MDA4MDgzNTgxOTI0NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MzEyOC4yMDc2ODE0LCAic3RlcCI6IDU4NDAsICJ2YWx1ZSI6IDAuMjAxMTkwNDg2NTUwMzMxMTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzEzNi43MTQxNzY3LCAic3RlcCI6IDU4NTAsICJ2YWx1ZSI6IDAuMTY3OTE3NjI0MTE1OTQzOX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTQ0LjkyNjMwMiwgInN0ZXAiOiA1ODYwLCAidmFsdWUiOiAwLjI1MTE3OTEyODg4NTI2OTE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNTMuMDM4ODY4LCAic3RlcCI6IDU4NzAsICJ2YWx1ZSI6IDAuMTU2NTI1OTM5NzAyOTg3Njd9LCB7IndhbGxUaW1lIjogMTczMzA3MzE2Ni4wMDEwNDc0LCAic3RlcCI6IDU4ODAsICJ2YWx1ZSI6IDAuMTkwNjMyNDYyNTAxNTI1ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MzE3NC42NTc0NzE3LCAic3RlcCI6IDU4OTAsICJ2YWx1ZSI6IDAuMTU0ODMyNDUyNTM1NjI5Mjd9LCB7IndhbGxUaW1lIjogMTczMzA3MzE4Mi41MDY4MTExLCAic3RlcCI6IDU5MDAsICJ2YWx1ZSI6IDAuMjI2OTU5ODk5MDY3ODc4NzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzE5MS41NTgwODk3LCAic3RlcCI6IDU5MTAsICJ2YWx1ZSI6IDAuMTg2MjcwMjA3MTY2NjcxNzV9LCB7IndhbGxUaW1lIjogMTczMzA3MzE5OS40MDg4ODkzLCAic3RlcCI6IDU5MjAsICJ2YWx1ZSI6IDAuMTAzODc5MzQ3NDQzNTgwNjN9LCB7IndhbGxUaW1lIjogMTczMzA3MzIwNy40NjM5MzY2LCAic3RlcCI6IDU5MzAsICJ2YWx1ZSI6IDAuMjMyOTI5NzIxNDc0NjQ3NTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzIxNS42MDEzNjksICJzdGVwIjogNTk0MCwgInZhbHVlIjogMC4yMDc3OTgzMDIxNzM2MTQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMjQuMzU2NjgzLCAic3RlcCI6IDU5NTAsICJ2YWx1ZSI6IDAuMjAxMjE2NTYzNTgyNDIwMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MzIzMi44NzUxOTI0LCAic3RlcCI6IDU5NjAsICJ2YWx1ZSI6IDAuMjgxMzM0Nzg3NjA3MTkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNDUuMzcyMzY4MywgInN0ZXAiOiA1OTcwLCAidmFsdWUiOiAwLjE5ODQ2NTE1MzU3NDk0MzU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNTMuMTc4MTg2NywgInN0ZXAiOiA1OTgwLCAidmFsdWUiOiAwLjI0NTQ2ODQ5NzI3NjMwNjE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNjEuNzcwNzY3MiwgInN0ZXAiOiA1OTkwLCAidmFsdWUiOiAwLjIyMDkwMTA0MjIyMjk3NjY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNzAuMDU4NDkyNCwgInN0ZXAiOiA2MDAwLCAidmFsdWUiOiAwLjIxNjI3OTc2MDAwMzA4OTl9LCB7IndhbGxUaW1lIjogMTczMzA3MzI3OC44OTM5MTgsICJzdGVwIjogNjAxMCwgInZhbHVlIjogMC4zNjIyNjM3OTg3MTM2ODQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyODcuNjgwODYsICJzdGVwIjogNjAyMCwgInZhbHVlIjogMC4yNDk1OTYzODcxNDc5MDM0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjk3LjI3MzE5MDUsICJzdGVwIjogNjAzMCwgInZhbHVlIjogMC4zODg3ODQ5NDUwMTExMzg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzMDUuOTE2OTQ2LCAic3RlcCI6IDYwNDAsICJ2YWx1ZSI6IDAuMjk3MjQ1MjM0MjUxMDIyMzR9LCB7IndhbGxUaW1lIjogMTczMzA3MzMyMi4zNTM0ODgyLCAic3RlcCI6IDYwNTAsICJ2YWx1ZSI6IDAuMjE0OTgyODM3NDM4NTgzMzd9LCB7IndhbGxUaW1lIjogMTczMzA3MzMzMS45NzYwMDIsICJzdGVwIjogNjA2MCwgInZhbHVlIjogMC4xNTkxNDk5NDQ3ODIyNTcwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzQwLjUyMDg5MTcsICJzdGVwIjogNjA3MCwgInZhbHVlIjogMC4xODc0Njc1NzUwNzMyNDIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNDkuNjAwNzQ2LCAic3RlcCI6IDYwODAsICJ2YWx1ZSI6IDAuMzAwMjQwMTU5MDM0NzI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNTkuMDY5OTQxOCwgInN0ZXAiOiA2MDkwLCAidmFsdWUiOiAwLjE4NjI4NTI1NzMzOTQ3NzU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNjguNDAxNjM3OCwgInN0ZXAiOiA2MTAwLCAidmFsdWUiOiAwLjIzMDQ0NDc1OTEzMDQ3Nzl9LCB7IndhbGxUaW1lIjogMTczMzA3MzM3Ny42NzM3NTIzLCAic3RlcCI6IDYxMTAsICJ2YWx1ZSI6IDAuMjQzMDk2NTkwMDQyMTE0MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzM4Ni4zOTg5MDgxLCAic3RlcCI6IDYxMjAsICJ2YWx1ZSI6IDAuMTYzNDkzMTg2MjM1NDI3ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzM5NS40NTAyNDk0LCAic3RlcCI6IDYxMzAsICJ2YWx1ZSI6IDAuMjI4NDA0MTk0MTE2NTkyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDA4LjE1MDA3OTcsICJzdGVwIjogNjE0MCwgInZhbHVlIjogMC4xNTI3MDQwNzQ5Nzg4Mjg0M30sIHsid2FsbFRpbWUiOiAxNzMzMDczNDE3LjMyMjQ0MzcsICJzdGVwIjogNjE1MCwgInZhbHVlIjogMC4xODk1OTA5NzU2NDIyMDQyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDI2LjI1NDM2MjYsICJzdGVwIjogNjE2MCwgInZhbHVlIjogMC4xOTMwMzE0MTUzNDMyODQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MzQuODA4MDMwNiwgInN0ZXAiOiA2MTcwLCAidmFsdWUiOiAwLjE2ODM3ODA0MDE5NDUxMTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ0NC41MTE0MDc5LCAic3RlcCI6IDYxODAsICJ2YWx1ZSI6IDAuMjA3MzA4NDU2MzAxNjg5MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ1My4xMTQxMTA1LCAic3RlcCI6IDYxOTAsICJ2YWx1ZSI6IDAuMjQxOTg4MzYwODgxODA1NDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ2Mi41NjQyNjEsICJzdGVwIjogNjIwMCwgInZhbHVlIjogMC4xNjE3NjYyMzEwNjAwMjgwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDcyLjAyMzAxNTcsICJzdGVwIjogNjIxMCwgInZhbHVlIjogMC4yMzM1OTQzODc3Njk2OTkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0ODQuNDQ2OTY5NywgInN0ZXAiOiA2MjIwLCAidmFsdWUiOiAwLjE5ODQzMzg3NjAzNzU5NzY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0OTMuNjU4NjkyNiwgInN0ZXAiOiA2MjMwLCAidmFsdWUiOiAwLjE5Mjk2MjM0ODQ2MTE1MTEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MDIuNDM5ODczNywgInN0ZXAiOiA2MjQwLCAidmFsdWUiOiAwLjIxMzg0MDAzNzU4NDMwNDh9LCB7IndhbGxUaW1lIjogMTczMzA3MzUxMS4yNTQ1MjQ3LCAic3RlcCI6IDYyNTAsICJ2YWx1ZSI6IDAuMjM2NzQwMjAxNzExNjU0NjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzUyMC40ODM2Nzc0LCAic3RlcCI6IDYyNjAsICJ2YWx1ZSI6IDAuMTg2MTY3NjcyMjc2NDk2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTI5Ljc4MDEwMzcsICJzdGVwIjogNjI3MCwgInZhbHVlIjogMC4yODA2ODQ2Nzk3NDY2Mjc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MzkuNjM3ODE0OCwgInN0ZXAiOiA2MjgwLCAidmFsdWUiOiAwLjIzMzAyMjcxOTYyMTY1ODMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NDguOTA5MzY2OCwgInN0ZXAiOiA2MjkwLCAidmFsdWUiOiAwLjIwMjc0MDExNzkwNzUyNDF9LCB7IndhbGxUaW1lIjogMTczMzA3MzU2MC42MTgzODc3LCAic3RlcCI6IDYzMDAsICJ2YWx1ZSI6IDAuMjY1NjYzNTY0MjA1MTY5N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNTcwLjA2NzU4MTIsICJzdGVwIjogNjMxMCwgInZhbHVlIjogMC4xODg4MTQ4NjM1NjI1ODM5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTc5LjQ3OTc2MzUsICJzdGVwIjogNjMyMCwgInZhbHVlIjogMC4yNDYxNzY4Mzg4NzQ4MTY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1ODcuNjY1ODkyNCwgInN0ZXAiOiA2MzMwLCAidmFsdWUiOiAwLjE5MjQxMzU2ODQ5NjcwNDF9LCB7IndhbGxUaW1lIjogMTczMzA3MzU5Ny4yMTY2MTA3LCAic3RlcCI6IDYzNDAsICJ2YWx1ZSI6IDAuMjAzNTQxODQ1MDgzMjM2N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNjA2LjIzNjgwNiwgInN0ZXAiOiA2MzUwLCAidmFsdWUiOiAwLjE5Njc2NjAzMzc2ODY1Mzg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MTUuMDc2MjAzMywgInN0ZXAiOiA2MzYwLCAidmFsdWUiOiAwLjI5NDg1MDQzODgzMzIzNjd9LCB7IndhbGxUaW1lIjogMTczMzA3MzYyNC44MzMxMzkyLCAic3RlcCI6IDYzNzAsICJ2YWx1ZSI6IDAuMjUxNTExMjQ1OTY1OTU3NjR9LCB7IndhbGxUaW1lIjogMTczMzA3MzYzNC42NzExMzg1LCAic3RlcCI6IDYzODAsICJ2YWx1ZSI6IDAuMjM1NTAzNjczNTUzNDY2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjQ2LjUyNjg3MzgsICJzdGVwIjogNjM5MCwgInZhbHVlIjogMC4yMDA5NTQwNDk4MjU2NjgzM30sIHsid2FsbFRpbWUiOiAxNzMzMDczNjU1Ljc0NDA5ODIsICJzdGVwIjogNjQwMCwgInZhbHVlIjogMC4yMzU0ODQwMTg5MjE4NTIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NjUuNjA1ODE5NSwgInN0ZXAiOiA2NDEwLCAidmFsdWUiOiAwLjIyNTI4Nzc5NTA2NjgzMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MzY3NC42NDE0MzQ3LCAic3RlcCI6IDY0MjAsICJ2YWx1ZSI6IDAuMjgzMTc5OTM4NzkzMTgyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjgzLjY2ODk5NjMsICJzdGVwIjogNjQzMCwgInZhbHVlIjogMC4xNjg3OTMzMjA2NTU4MjI3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjkyLjg3NTQ0MSwgInN0ZXAiOiA2NDQwLCAidmFsdWUiOiAwLjI1NTYzNzEzOTA4MTk1NDk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MDIuNTE3ODAzMiwgInN0ZXAiOiA2NDUwLCAidmFsdWUiOiAwLjE3Mzg5MTkxNjg3MTA3MDg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MTIuNjI1OTk5MiwgInN0ZXAiOiA2NDYwLCAidmFsdWUiOiAwLjI1MzAzMzA3MTc1NjM2Mjl9LCB7IndhbGxUaW1lIjogMTczMzA3MzcyNC4wNDU2NDE3LCAic3RlcCI6IDY0NzAsICJ2YWx1ZSI6IDAuMzE4NTg4NjQ0MjY2MTI4NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzczMi44MjcwNzA3LCAic3RlcCI6IDY0ODAsICJ2YWx1ZSI6IDAuMjM0MDE2MDMxMDI2ODQwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzQxLjk1NTgyODIsICJzdGVwIjogNjQ5MCwgInZhbHVlIjogMC4yMTA2Nzk1NDU5OTg1NzMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NTAuNzE2MzQ5OCwgInN0ZXAiOiA2NTAwLCAidmFsdWUiOiAwLjIzNzk1Njc3NzIxNTAwMzk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NjAuNDg2NzgxMSwgInN0ZXAiOiA2NTEwLCAidmFsdWUiOiAwLjE1MzIyMTEwMDU2ODc3MTM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NjkuODYxOTc2MSwgInN0ZXAiOiA2NTIwLCAidmFsdWUiOiAwLjE3MzY5NDI4Mjc3MDE1Njg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NzkuMTI1NzQ0LCAic3RlcCI6IDY1MzAsICJ2YWx1ZSI6IDAuMTk4MzI4OTQyMDYwNDcwNTh9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc4OS40NzYzNzgyLCAic3RlcCI6IDY1NDAsICJ2YWx1ZSI6IDAuMzEwMDEzODYwNDY0MDk2MDd9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc5OC4xMDE5OTk1LCAic3RlcCI6IDY1NTAsICJ2YWx1ZSI6IDAuMzMzOTk1MDQ0MjMxNDE0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODEwLjU1MTUxNzUsICJzdGVwIjogNjU2MCwgInZhbHVlIjogMC4yMjY2OTk4MjkxMDE1NjI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MjAuMDM1MDMyLCAic3RlcCI6IDY1NzAsICJ2YWx1ZSI6IDAuMjAyNzQ4Nzc1NDgyMTc3NzN9LCB7IndhbGxUaW1lIjogMTczMzA3MzgyOC4yMzcyNDI1LCAic3RlcCI6IDY1ODAsICJ2YWx1ZSI6IDAuMjY0NDE0NDI5NjY0NjExOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODM2Ljc5NjkwMywgInN0ZXAiOiA2NTkwLCAidmFsdWUiOiAwLjE3NDQ0MjM2NTc2NTU3MTZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg0NS45ODYxOTksICJzdGVwIjogNjYwMCwgInZhbHVlIjogMC4yMTc0MjA2OTcyMTIyMTkyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODU1LjI1MDgzOTUsICJzdGVwIjogNjYxMCwgInZhbHVlIjogMC4yMDUxODIwNDU2OTgxNjU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NjQuNjkyNDI3MiwgInN0ZXAiOiA2NjIwLCAidmFsdWUiOiAwLjE5MDUzMjYyNDcyMTUyNzF9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg3My44MzMzODIsICJzdGVwIjogNjYzMCwgInZhbHVlIjogMC4yMTI2MzgzNzgxNDMzMTA1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczODg3LjUyMzM2MywgInN0ZXAiOiA2NjQwLCAidmFsdWUiOiAwLjI1NTAwMDQxMjQ2NDE0MTg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4OTcuMzMyNjg1NywgInN0ZXAiOiA2NjUwLCAidmFsdWUiOiAwLjIyNTgzNzA2Njc2OTU5OTkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5MDYuODc1NTM4NiwgInN0ZXAiOiA2NjYwLCAidmFsdWUiOiAwLjIyMzAzMzk5NDQzNjI2NDA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5MTYuMzQ5MDc1OCwgInN0ZXAiOiA2NjcwLCAidmFsdWUiOiAwLjI1NDg5MjQ2ODQ1MjQ1MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzkyNS42MTc2MDY2LCAic3RlcCI6IDY2ODAsICJ2YWx1ZSI6IDAuMTg3ODU1MjczNDg1MTgzNzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzkzNC45MTU2MTI3LCAic3RlcCI6IDY2OTAsICJ2YWx1ZSI6IDAuMTc2MTIxNzcxMzM1NjAxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTQzLjc0MTE1MjMsICJzdGVwIjogNjcwMCwgInZhbHVlIjogMC4xNjYwNTk4ODE0NDg3NDU3M30sIHsid2FsbFRpbWUiOiAxNzMzMDczOTUyLjQ3NTk5MSwgInN0ZXAiOiA2NzEwLCAidmFsdWUiOiAwLjIzMDkzMDIyNDA2MTAxMjI3fV19fV0=", + "ok": true, + "headers": [ + [ + "content-length", + "15059" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Loss/loss_bbox_aux_2%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIkxvc3MvbG9zc19iYm94X2F1eF8yIiwgInJ1blRvU2VyaWVzIjogeyIuIjogW3sid2FsbFRpbWUiOiAxNzMzMDY3NjMxLjUzODI4NzYsICJzdGVwIjogMCwgInZhbHVlIjogMS44NDQ4Nzc3MTk4NzkxNTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NDYuNjUxNjI3MywgInN0ZXAiOiAxMCwgInZhbHVlIjogMi4wODA2OTUzOTA3MDEyOTR9LCB7IndhbGxUaW1lIjogMTczMzA2NzY2MC43ODM2NDEzLCAic3RlcCI6IDIwLCAidmFsdWUiOiAxLjg5NTM4MDczNTM5NzMzODl9LCB7IndhbGxUaW1lIjogMTczMzA2NzY3NC4xMzY4OTM3LCAic3RlcCI6IDMwLCAidmFsdWUiOiAxLjgwOTE4Mzk1NTE5MjU2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njg3LjA1NjU2OTYsICJzdGVwIjogNDAsICJ2YWx1ZSI6IDIuMDQzNDM3NzE5MzQ1MDkyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njk5LjQ5MjQ1NCwgInN0ZXAiOiA1MCwgInZhbHVlIjogMS4zMTQ2NTgxNjQ5NzgwMjczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MTAuNjI4NzQzMiwgInN0ZXAiOiA2MCwgInZhbHVlIjogMS42NDcxMTM4MDAwNDg4MjgxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MjIuNzU0OTUxNSwgInN0ZXAiOiA3MCwgInZhbHVlIjogMS40MTg2MTcyNDg1MzUxNTYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MzMuNzI0ODA5NCwgInN0ZXAiOiA4MCwgInZhbHVlIjogMC45NDc4OTE4MzEzOTgwMTAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NTAuOTQ1Njk1NiwgInN0ZXAiOiA5MCwgInZhbHVlIjogMS4yMzg0MTM0NTMxMDIxMTE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NjEuOTgwMjgwOSwgInN0ZXAiOiAxMDAsICJ2YWx1ZSI6IDEuMDkzMDcxNTc5OTMzMTY2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzcxLjYwNTg2NzEsICJzdGVwIjogMTEwLCAidmFsdWUiOiAwLjcyNTcxMjQxODU1NjIxMzR9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc4MC41NDY4MTQsICJzdGVwIjogMTIwLCAidmFsdWUiOiAwLjYxOTMyNDA4ODA5NjYxODd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc5MC40ODQ3NTc3LCAic3RlcCI6IDEzMCwgInZhbHVlIjogMC44MTUxNTUxNDg1MDYxNjQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3OTkuMTA1MDc4NSwgInN0ZXAiOiAxNDAsICJ2YWx1ZSI6IDAuNDQwMTA1NDk3ODM3MDY2NjV9LCB7IndhbGxUaW1lIjogMTczMzA2NzgwOS40NDQwNjU4LCAic3RlcCI6IDE1MCwgInZhbHVlIjogMC42NDE4NjA4NDI3MDQ3NzN9LCB7IndhbGxUaW1lIjogMTczMzA2NzgxOC45MjAwOTU3LCAic3RlcCI6IDE2MCwgInZhbHVlIjogMC41OTk2OTc5NDc1MDIxMzYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MzYuNjQ4OTc5NywgInN0ZXAiOiAxNzAsICJ2YWx1ZSI6IDAuNDM3MTExOTczNzYyNTEyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODQ2LjM5MDA5OTMsICJzdGVwIjogMTgwLCAidmFsdWUiOiAwLjY2NjczNDU3NjIyNTI4MDh9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg1NS42NjYyMjE5LCAic3RlcCI6IDE5MCwgInZhbHVlIjogMC40MzQzMTM0MTY0ODEwMTgwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODY0Ljg4ODg0MzMsICJzdGVwIjogMjAwLCAidmFsdWUiOiAwLjc4Mzk0NDEyOTk0Mzg0Nzd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg3NC4wMDExNzQyLCAic3RlcCI6IDIxMCwgInZhbHVlIjogMC42MDE3NzYxMjMwNDY4NzV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg4My43ODUxNDIyLCAic3RlcCI6IDIyMCwgInZhbHVlIjogMC40MTIwMjk4MDI3OTkyMjQ4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODkyLjEyMjUxOTMsICJzdGVwIjogMjMwLCAidmFsdWUiOiAwLjUwODQ3ODgyMDMyMzk0NDF9LCB7IndhbGxUaW1lIjogMTczMzA2NzkwMS4wNjg4MjYyLCAic3RlcCI6IDI0MCwgInZhbHVlIjogMC41MDEyNTE5MzU5NTg4NjIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MTAuMDc0MzExMywgInN0ZXAiOiAyNTAsICJ2YWx1ZSI6IDAuNDY5MDU1MTc1NzgxMjV9LCB7IndhbGxUaW1lIjogMTczMzA2NzkyNS45NDk0NTI5LCAic3RlcCI6IDI2MCwgInZhbHVlIjogMC43NzY1MDMzODQxMTMzMTE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MzUuNDc0OTcxMywgInN0ZXAiOiAyNzAsICJ2YWx1ZSI6IDAuNDMzNDkwNTc0MzU5ODkzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTQ0LjAxNDU0MTYsICJzdGVwIjogMjgwLCAidmFsdWUiOiAwLjQ3NjE4MzU2MzQ3MDg0MDQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NTIuNTQ1NTg5NywgInN0ZXAiOiAyOTAsICJ2YWx1ZSI6IDAuNDcyMTIzMzU0NjczMzg1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTYxLjAyNjE2MDUsICJzdGVwIjogMzAwLCAidmFsdWUiOiAwLjMyNzYxOTk0MDA0MjQ5NTd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk3MC4xMzM4NDksICJzdGVwIjogMzEwLCAidmFsdWUiOiAwLjUzNjg0NjIyMDQ5MzMxNjd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk4MC4yMjUxODI1LCAic3RlcCI6IDMyMCwgInZhbHVlIjogMC40NDcyMTMwNTM3MDMzMDgxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5ODguODE1NDkyNCwgInN0ZXAiOiAzMzAsICJ2YWx1ZSI6IDAuNTM4NzY2ODAxMzU3MjY5M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDA1LjA5MDA3MDUsICJzdGVwIjogMzQwLCAidmFsdWUiOiAwLjQxMzE4NDAxNjk0Mjk3Nzl9LCB7IndhbGxUaW1lIjogMTczMzA2ODAxNC4wNjQ1NzczLCAic3RlcCI6IDM1MCwgInZhbHVlIjogMC40MDIxMTM1NTY4NjE4Nzc0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDIyLjU1MjQ0MjgsICJzdGVwIjogMzYwLCAidmFsdWUiOiAwLjQ2Mzc0MjYxMzc5MjQxOTQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMzEuODI0MTY1OCwgInN0ZXAiOiAzNzAsICJ2YWx1ZSI6IDAuNDk5NDc1MzMwMTE0MzY0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDQwLjc4NzI5MTgsICJzdGVwIjogMzgwLCAidmFsdWUiOiAwLjM2NjM0MzU1NzgzNDYyNTI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNTAuMTU5NjkwMSwgInN0ZXAiOiAzOTAsICJ2YWx1ZSI6IDAuMzkzNjU4MzEwMTc0OTQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNTkuMTI1NTYzOSwgInN0ZXAiOiA0MDAsICJ2YWx1ZSI6IDAuMjk5MDQ3MDgyNjYyNTgyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDY4LjA4OTU4ODksICJzdGVwIjogNDEwLCAidmFsdWUiOiAwLjY2OTUwMzE1MjM3MDQ1Mjl9LCB7IndhbGxUaW1lIjogMTczMzA2ODA4NC44NDM0NzAzLCAic3RlcCI6IDQyMCwgInZhbHVlIjogMC4zODU2NTI3ODA1MzI4MzY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwOTQuNjY2MTIsICJzdGVwIjogNDMwLCAidmFsdWUiOiAwLjUwNDIzMjY0NTAzNDc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMDMuNzA3NTk5NiwgInN0ZXAiOiA0NDAsICJ2YWx1ZSI6IDAuMzQzOTA4ODE2NTc2MDA0MDN9LCB7IndhbGxUaW1lIjogMTczMzA2ODExMi42OTkyNjEsICJzdGVwIjogNDUwLCAidmFsdWUiOiAwLjQzMDA0MDM4OTI5OTM5Mjd9LCB7IndhbGxUaW1lIjogMTczMzA2ODEyMS41MDA2MjQyLCAic3RlcCI6IDQ2MCwgInZhbHVlIjogMC41MzQ4NDU3MDk4MDA3MjAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMzAuNzI3NDE4MiwgInN0ZXAiOiA0NzAsICJ2YWx1ZSI6IDAuMzk1MDA3NDAxNzA0Nzg4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTM5Ljg1NTQwODIsICJzdGVwIjogNDgwLCAidmFsdWUiOiAwLjQwNDQ0OTY3MTUwNjg4MTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODE0OS4zNjk3OTMyLCAic3RlcCI6IDQ5MCwgInZhbHVlIjogMC41MzM1NzIzMTYxNjk3Mzg4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxNTguMDY5ODAyNSwgInN0ZXAiOiA1MDAsICJ2YWx1ZSI6IDAuNTIxNzYyOTY3MTA5NjgwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTc0LjExNDg5NDIsICJzdGVwIjogNTEwLCAidmFsdWUiOiAwLjQ3OTI0MDA1OTg1MjYwMDF9LCB7IndhbGxUaW1lIjogMTczMzA2ODE4Mi43MTkzNzE4LCAic3RlcCI6IDUyMCwgInZhbHVlIjogMC4zNzk5MTAzMjAwNDM1NjM4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTkyLjQxMzM4NywgInN0ZXAiOiA1MzAsICJ2YWx1ZSI6IDAuNDAxMzg4MDQ5MTI1NjcxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjAxLjgwNzkzNzksICJzdGVwIjogNTQwLCAidmFsdWUiOiAwLjM5MTU3NjA1MTcxMjAzNjEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMTAuNjU0MzQwMywgInN0ZXAiOiA1NTAsICJ2YWx1ZSI6IDAuNTkxNDU2NjUxNjg3NjIyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjIwLjE5NDk0MSwgInN0ZXAiOiA1NjAsICJ2YWx1ZSI6IDAuNzIzOTk3ODkwOTQ5MjQ5M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjI5LjE1OTE1MTMsICJzdGVwIjogNTcwLCAidmFsdWUiOiAwLjMxNjk3NTc0MjU3ODUwNjQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMzguNTkxMzkyLCAic3RlcCI6IDU4MCwgInZhbHVlIjogMC4yOTI2MTYzMDc3MzU0NDMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNTYuMDczMTQyNSwgInN0ZXAiOiA1OTAsICJ2YWx1ZSI6IDAuNDIzMTMzNDAzMDYyODIwNDN9LCB7IndhbGxUaW1lIjogMTczMzA2ODI2NS40MzE3MDc2LCAic3RlcCI6IDYwMCwgInZhbHVlIjogMC40OTk5Nzc4MjcwNzIxNDM1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Mjc0LjY1NjM1OSwgInN0ZXAiOiA2MTAsICJ2YWx1ZSI6IDAuNjYyMTc2ODQ3NDU3ODg1N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjgzLjc2OTg3OCwgInN0ZXAiOiA2MjAsICJ2YWx1ZSI6IDAuNTkxMzMxMjQzNTE1MDE0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjkzLjMzNDAyMywgInN0ZXAiOiA2MzAsICJ2YWx1ZSI6IDAuNDU2MTE3ODM4NjIxMTM5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzAyLjY0NzAzLCAic3RlcCI6IDY0MCwgInZhbHVlIjogMC4zODI1OTY0MDMzNjAzNjY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMTEuMzg4MDE5NiwgInN0ZXAiOiA2NTAsICJ2YWx1ZSI6IDAuMzQyNjYwOTkzMzM3NjMxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzIwLjM5MDAwMiwgInN0ZXAiOiA2NjAsICJ2YWx1ZSI6IDAuNDUxNTc4Nzk1OTA5ODgxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzI4LjczMTEzMzUsICJzdGVwIjogNjcwLCAidmFsdWUiOiAwLjM2Njg0ODc2NjgwMzc0MTQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNDQuNDYxMDQ1NSwgInN0ZXAiOiA2ODAsICJ2YWx1ZSI6IDAuMzk3MzA1MzA5NzcyNDkxNDZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODM1My43MTY4NDcyLCAic3RlcCI6IDY5MCwgInZhbHVlIjogMC4zNTUzMzE1OTk3MTIzNzE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNjIuMDU3ODE4NCwgInN0ZXAiOiA3MDAsICJ2YWx1ZSI6IDAuMzMyMzk2MDMwNDI2MDI1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzcxLjEwMzk1NzQsICJzdGVwIjogNzEwLCAidmFsdWUiOiAwLjUyNTMxMjMwNDQ5Njc2NTF9LCB7IndhbGxUaW1lIjogMTczMzA2ODM4MC41MzMwNzgyLCAic3RlcCI6IDcyMCwgInZhbHVlIjogMC40MDcyODI5NDg0OTM5NTc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzOTAuMDg2NjI5LCAic3RlcCI6IDczMCwgInZhbHVlIjogMC4zMTQ2OTQzNzQ3OTk3Mjg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzOTguNzIwOTQ5LCAic3RlcCI6IDc0MCwgInZhbHVlIjogMC40NjQ1MzIwNDc1MTAxNDcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MDcuMTIzOTM0NywgInN0ZXAiOiA3NTAsICJ2YWx1ZSI6IDAuNDA5OTAxMjAxNzI1MDA2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDIzLjA3MDUxMzUsICJzdGVwIjogNzYwLCAidmFsdWUiOiAwLjQxMDM3OTE0MTU2OTEzNzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODQzMS40MDUyOTY2LCAic3RlcCI6IDc3MCwgInZhbHVlIjogMC4zMzA3NjY5MTYyNzUwMjQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NDAuNDI0OTA1NSwgInN0ZXAiOiA3ODAsICJ2YWx1ZSI6IDAuMzUzNzc2Mzk1MzIwODkyMzN9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ0OS4wMDY0ODkzLCAic3RlcCI6IDc5MCwgInZhbHVlIjogMC4zNzQ1ODE1NzUzOTM2NzY3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDU3LjYzNzMxMSwgInN0ZXAiOiA4MDAsICJ2YWx1ZSI6IDAuMzk4ODgyNzc2NDk4Nzk0NTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ2Ny4wNDcyMzMsICJzdGVwIjogODEwLCAidmFsdWUiOiAwLjM3OTkzMjcwMTU4NzY3N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDc1LjYyMDQ0NzQsICJzdGVwIjogODIwLCAidmFsdWUiOiAwLjM3Mzk2OTEwNzg2NjI4NzIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0ODQuOTc5MDI3MywgInN0ZXAiOiA4MzAsICJ2YWx1ZSI6IDAuMzc2NTk3NDY0MDg0NjI1MjR9LCB7IndhbGxUaW1lIjogMTczMzA2ODUwMC43MzE2MjQsICJzdGVwIjogODQwLCAidmFsdWUiOiAwLjQwNjA0NDY2MTk5ODc0ODh9LCB7IndhbGxUaW1lIjogMTczMzA2ODUwOS4zMDc5MDY5LCAic3RlcCI6IDg1MCwgInZhbHVlIjogMC40MTgxODU4NTk5MTg1OTQzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTE5LjAyMjMxMDMsICJzdGVwIjogODYwLCAidmFsdWUiOiAwLjQxMzg3NjM1NDY5NDM2NjQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MjcuNDk4Njk2LCAic3RlcCI6IDg3MCwgInZhbHVlIjogMC4zMzE3NDEzMDMyMDU0OTAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MzYuOTIwNDIxMSwgInN0ZXAiOiA4ODAsICJ2YWx1ZSI6IDAuNDg1MTQ0NzkzOTg3Mjc0MTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODU0NC45MDg5ODEzLCAic3RlcCI6IDg5MCwgInZhbHVlIjogMC4zNTQ5NzUxMzQxMzQyOTI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NTMuNTc5MTk5OCwgInN0ZXAiOiA5MDAsICJ2YWx1ZSI6IDAuMzc0NzU0Mzk5MDYxMjAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NjIuNjg2MjMyLCAic3RlcCI6IDkxMCwgInZhbHVlIjogMC40MTY3ODc4OTI1ODAwMzIzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTcxLjI0NjU5ODUsICJzdGVwIjogOTIwLCAidmFsdWUiOiAwLjM0MDc5MzkwNzY0MjM2NDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODU4NC43NzY1ODY4LCAic3RlcCI6IDkzMCwgInZhbHVlIjogMC4zODY3MTE3NzYyNTY1NjEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1OTMuNzcyOTUxNiwgInN0ZXAiOiA5NDAsICJ2YWx1ZSI6IDAuMzcxNTQwNDg2ODEyNTkxNTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODYwMi43NjcxMDMyLCAic3RlcCI6IDk1MCwgInZhbHVlIjogMC40NTI4MDQ4MDM4NDgyNjY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MTEuMDQxMTI4MiwgInN0ZXAiOiA5NjAsICJ2YWx1ZSI6IDAuMjg2NjQ3NzA3MjIzODkyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjIwLjIyNzk4NjYsICJzdGVwIjogOTcwLCAidmFsdWUiOiAwLjMzNDY2NDQ2Mzk5Njg4NzJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODYyOC44NDI5NywgInN0ZXAiOiA5ODAsICJ2YWx1ZSI6IDAuNDA1OTIxMTAxNTcwMTI5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjM3LjYzMTg2MTcsICJzdGVwIjogOTkwLCAidmFsdWUiOiAwLjMzNTU4NDc1OTcxMjIxOTI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2NDYuNjc0NDY2NiwgInN0ZXAiOiAxMDAwLCAidmFsdWUiOiAwLjM5Mjc3NjE5MTIzNDU4ODZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODY2Mi43NTgyNDU3LCAic3RlcCI6IDEwMTAsICJ2YWx1ZSI6IDAuMjUyNjI0NTExNzE4NzV9LCB7IndhbGxUaW1lIjogMTczMzA2ODY3Mi4wNTU5NjcsICJzdGVwIjogMTAyMCwgInZhbHVlIjogMC4zMDE2MzM4MzQ4Mzg4NjcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2ODAuNTY0NjA1LCAic3RlcCI6IDEwMzAsICJ2YWx1ZSI6IDAuMzI4OTA1NjEyMjMwMzAwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjkwLjE4NzQ5NTUsICJzdGVwIjogMTA0MCwgInZhbHVlIjogMC4zNTc1MjY0ODExNTE1ODA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2OTguODQ5ODkzMywgInN0ZXAiOiAxMDUwLCAidmFsdWUiOiAwLjM0MDExMjA5MDExMDc3ODh9LCB7IndhbGxUaW1lIjogMTczMzA2ODcwNy43NDUwNTc2LCAic3RlcCI6IDEwNjAsICJ2YWx1ZSI6IDAuNzYyNzM0NDcyNzUxNjE3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzE3LjM0NjI2MTMsICJzdGVwIjogMTA3MCwgInZhbHVlIjogMC4zNDAxNzA3MTEyNzg5MTU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MjYuMzYzMDE5MiwgInN0ZXAiOiAxMDgwLCAidmFsdWUiOiAwLjQxNzg5NzEzNTAxOTMwMjM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MzUuMjUzNDM2NiwgInN0ZXAiOiAxMDkwLCAidmFsdWUiOiAwLjQ0OTA0MTc4MzgwOTY2MTg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3NDkuNTQ5NTc1MywgInN0ZXAiOiAxMTAwLCAidmFsdWUiOiAwLjM1NzcwOTk3NDA1MDUyMTg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3NTguMzc3MDQzLCAic3RlcCI6IDExMTAsICJ2YWx1ZSI6IDAuNDQ3MDg0NjM1NDk2MTM5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzY3LjAwNTQ5MzYsICJzdGVwIjogMTEyMCwgInZhbHVlIjogMC41MjYyNDMzODg2NTI4MDE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3NzYuNjIwNDgzNiwgInN0ZXAiOiAxMTMwLCAidmFsdWUiOiAwLjQ2MDM5ODIyNjk3NjM5NDY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3ODUuNDAyNzkzMiwgInN0ZXAiOiAxMTQwLCAidmFsdWUiOiAwLjI0MjQ4NzI1MTc1ODU3NTQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3OTQuMjgwNjY5NSwgInN0ZXAiOiAxMTUwLCAidmFsdWUiOiAwLjQwODczNDUzMDIxMDQ5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODAyLjY5ODk5NTQsICJzdGVwIjogMTE2MCwgInZhbHVlIjogMC4yNzU2MzgwNzM2ODI3ODUwM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODExLjU1MzI2NjUsICJzdGVwIjogMTE3MCwgInZhbHVlIjogMC4zOTE3NTY4NjI0MDE5NjIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MjQuOTY3Mzc0LCAic3RlcCI6IDExODAsICJ2YWx1ZSI6IDAuMjI3MzcyODY5ODQ5MjA1MDJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODgzNC4zNzg4NTE3LCAic3RlcCI6IDExOTAsICJ2YWx1ZSI6IDAuMzcwNzU3MTMyNzY4NjMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NDMuNTE3ODEyNywgInN0ZXAiOiAxMjAwLCAidmFsdWUiOiAwLjQ1MTM4NTI1OTYyODI5NTl9LCB7IndhbGxUaW1lIjogMTczMzA2ODg1Mi4yMzAxMjkyLCAic3RlcCI6IDEyMTAsICJ2YWx1ZSI6IDAuMzQ5MjQ1MDExODA2NDg4MDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODg2MS4xMTg1ODAzLCAic3RlcCI6IDEyMjAsICJ2YWx1ZSI6IDAuMzYxOTcyNjMwMDIzOTU2M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODcwLjA1NzUzMzMsICJzdGVwIjogMTIzMCwgInZhbHVlIjogMC42MzQyMDAyMTUzMzk2NjA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NzguNzIyMDQyMywgInN0ZXAiOiAxMjQwLCAidmFsdWUiOiAwLjQyNTQyNTIwMTY1NDQzNDJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODg4Ny43Mzk3NzU0LCAic3RlcCI6IDEyNTAsICJ2YWx1ZSI6IDAuMzMzMjE5MzQ5Mzg0MzA3ODZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODkwMy4xNjgzOTM2LCAic3RlcCI6IDEyNjAsICJ2YWx1ZSI6IDAuNDgwMDM2Mzc3OTA2Nzk5M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTEyLjQxNjM1OTIsICJzdGVwIjogMTI3MCwgInZhbHVlIjogMC4yNzM4NDcxOTI1MjU4NjM2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTIxLjQ3NDgxOTQsICJzdGVwIjogMTI4MCwgInZhbHVlIjogMC4zNDcyNjQxNDA4NDQzNDUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MjkuNzQ4MzE1NiwgInN0ZXAiOiAxMjkwLCAidmFsdWUiOiAwLjM4MjE2MjAzNDUxMTU2NjE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MzkuNTAzMDEyNCwgInN0ZXAiOiAxMzAwLCAidmFsdWUiOiAwLjMzNzc2NjQzODcyMjYxMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODk0OC45MjkzMDk2LCAic3RlcCI6IDEzMTAsICJ2YWx1ZSI6IDAuMzk0NzAwOTE0NjIxMzUzMTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODk1Ny4yMzYwOTc2LCAic3RlcCI6IDEzMjAsICJ2YWx1ZSI6IDAuNDg4NzA3MTI1MTg2OTIwMTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODk2Ni4wNzg2OTQ2LCAic3RlcCI6IDEzMzAsICJ2YWx1ZSI6IDAuMjgyNzkxNDk1MzIzMTgxMTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODk3NS41NjY4MzQ3LCAic3RlcCI6IDEzNDAsICJ2YWx1ZSI6IDAuNTI5OTk0ODQ1MzkwMzE5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTg5Ljc5OTgwNDQsICJzdGVwIjogMTM1MCwgInZhbHVlIjogMC4zODYxMTc1Nzc1NTI3OTU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5OTguMjgzNDA2MywgInN0ZXAiOiAxMzYwLCAidmFsdWUiOiAwLjI5MTIxOTgzMDUxMzAwMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTAwNy4xNTAyMTcsICJzdGVwIjogMTM3MCwgInZhbHVlIjogMC4zNTM1MDAyNDcwMDE2NDc5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDE1LjkyMjkzNTIsICJzdGVwIjogMTM4MCwgInZhbHVlIjogMC4yMDM1OTgwNjcxNjQ0MjEwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDI1LjMwNDg4OTIsICJzdGVwIjogMTM5MCwgInZhbHVlIjogMC4zNjYwMzUzNDIyMTY0OTE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwMzQuNDgzMDY2NiwgInN0ZXAiOiAxNDAwLCAidmFsdWUiOiAwLjI3MTQ0MTU0OTA2MjcyODl9LCB7IndhbGxUaW1lIjogMTczMzA2OTA0Mi43OTQ1ODYyLCAic3RlcCI6IDE0MTAsICJ2YWx1ZSI6IDAuNDI3NzMzNjAwMTM5NjE3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDUyLjEzOTEyMjIsICJzdGVwIjogMTQyMCwgInZhbHVlIjogMC4yNTkxMjY1MTQxOTYzOTU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNjUuMDAzMTgzNiwgInN0ZXAiOiAxNDMwLCAidmFsdWUiOiAwLjI5OTk1MTIyNTUxOTE4MDN9LCB7IndhbGxUaW1lIjogMTczMzA2OTA3NC41MjU1MTYzLCAic3RlcCI6IDE0NDAsICJ2YWx1ZSI6IDAuMzIwODI2ODI4NDc5NzY2ODV9LCB7IndhbGxUaW1lIjogMTczMzA2OTA4My43ODQxMDUsICJzdGVwIjogMTQ1MCwgInZhbHVlIjogMC4zODQ0NzQ4NDM3NDA0NjMyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDkyLjI1OTY4NjIsICJzdGVwIjogMTQ2MCwgInZhbHVlIjogMC4yOTM2ODA1NDg2Njc5MDc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMDEuMDMxMTQ5NCwgInN0ZXAiOiAxNDcwLCAidmFsdWUiOiAwLjM0MzI3Mjc0NTYwOTI4MzQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMDkuOTA2OTg4OSwgInN0ZXAiOiAxNDgwLCAidmFsdWUiOiAwLjMwMjAxNTIxNTE1ODQ2MjV9LCB7IndhbGxUaW1lIjogMTczMzA2OTExOS4xMTkzMzA0LCAic3RlcCI6IDE0OTAsICJ2YWx1ZSI6IDAuMjMyNDMyMjYxMTA5MzUyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTI4LjQxNjU5NjQsICJzdGVwIjogMTUwMCwgInZhbHVlIjogMC4zMjM1NjIxNDUyMzMxNTQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMzcuNjA3MjQxLCAic3RlcCI6IDE1MTAsICJ2YWx1ZSI6IDAuNDU4NTI2MjUzNzAwMjU2MzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTE1MC41NDM5ODksICJzdGVwIjogMTUyMCwgInZhbHVlIjogMC4zOTYwMzM1MjU0NjY5MTg5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTU5Ljc1NzUxLCAic3RlcCI6IDE1MzAsICJ2YWx1ZSI6IDAuNDQwMTEwMjY2MjA4NjQ4N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTY4LjE3MDc2NTYsICJzdGVwIjogMTU0MCwgInZhbHVlIjogMC4yMDE3MjgyNjk0NTc4MTcwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTc2Ljg0MTM4NjMsICJzdGVwIjogMTU1MCwgInZhbHVlIjogMC40MzI4MzcxODgyNDM4NjU5N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTg1Ljg5MjcxNjYsICJzdGVwIjogMTU2MCwgInZhbHVlIjogMC4yMzM3ODU2NDQxNzM2MjIxM30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTk0LjkyNDQzNSwgInN0ZXAiOiAxNTcwLCAidmFsdWUiOiAwLjM3OTMzNTc2MTA3MDI1MTQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMDMuOTEzMTQ2NywgInN0ZXAiOiAxNTgwLCAidmFsdWUiOiAwLjMxNDIwOTgxODg0MDAyNjg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMTIuNzE2MTA2NywgInN0ZXAiOiAxNTkwLCAidmFsdWUiOiAwLjI2Mjg4MzUxNDE2NTg3ODN9LCB7IndhbGxUaW1lIjogMTczMzA2OTIyNS41MzQyOTIyLCAic3RlcCI6IDE2MDAsICJ2YWx1ZSI6IDAuMjg5MjAyNjYwMzIyMTg5MzN9LCB7IndhbGxUaW1lIjogMTczMzA2OTIzNS40NjQyODIzLCAic3RlcCI6IDE2MTAsICJ2YWx1ZSI6IDAuNDQ0NDYzOTY4Mjc2OTc3NTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTI0NC42MzAxNTkxLCAic3RlcCI6IDE2MjAsICJ2YWx1ZSI6IDAuNDk4MzQyNjYzMDQ5Njk3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjU0LjI3MjA1NjgsICJzdGVwIjogMTYzMCwgInZhbHVlIjogMC4zMzg2NDI4NjU0MTkzODc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNjMuMDA1NzM5NSwgInN0ZXAiOiAxNjQwLCAidmFsdWUiOiAwLjI1ODIyODQyMTIxMTI0Mjd9LCB7IndhbGxUaW1lIjogMTczMzA2OTI3MS44NjcxMTcyLCAic3RlcCI6IDE2NTAsICJ2YWx1ZSI6IDAuNDQwNDc5MjQ4NzYyMTMwNzR9LCB7IndhbGxUaW1lIjogMTczMzA2OTI4MC41MTAzMjA3LCAic3RlcCI6IDE2NjAsICJ2YWx1ZSI6IDAuMjc1MTgyOTAyODEyOTU3NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTI4OS42ODAxNzAzLCAic3RlcCI6IDE2NzAsICJ2YWx1ZSI6IDAuMzc3MTQ0NDU1OTA5NzI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMDMuNjEwMDM1LCAic3RlcCI6IDE2ODAsICJ2YWx1ZSI6IDAuNDg4ODM3MDAzNzA3ODg1NzR9LCB7IndhbGxUaW1lIjogMTczMzA2OTMxMi40ODAwMjM2LCAic3RlcCI6IDE2OTAsICJ2YWx1ZSI6IDAuMzg2MDYxODQ3MjA5OTMwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzIxLjgzOTAxOSwgInN0ZXAiOiAxNzAwLCAidmFsdWUiOiAwLjQ2NDE5MzY0MjEzOTQzNDh9LCB7IndhbGxUaW1lIjogMTczMzA2OTMzMC4zNDg0MDYzLCAic3RlcCI6IDE3MTAsICJ2YWx1ZSI6IDAuMjk2NzM1MDc4MDk2Mzg5Nzd9LCB7IndhbGxUaW1lIjogMTczMzA2OTMzOS4yNDU2MDg4LCAic3RlcCI6IDE3MjAsICJ2YWx1ZSI6IDAuMjM0MDI5NDQyMDcxOTE0Njd9LCB7IndhbGxUaW1lIjogMTczMzA2OTM0Ni44NTc3OTksICJzdGVwIjogMTczMCwgInZhbHVlIjogMC4yNDU4NDA2Njg2NzgyODM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNTUuNjUzNTU2OCwgInN0ZXAiOiAxNzQwLCAidmFsdWUiOiAwLjQ1NjE4MDAzNjA2Nzk2MjY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNjQuNTEyNDM5NywgInN0ZXAiOiAxNzUwLCAidmFsdWUiOiAwLjM1ODg5NjAxNzA3NDU4NDk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNzMuNzM5MDUsICJzdGVwIjogMTc2MCwgInZhbHVlIjogMC4zMjAxNDQ3MTI5MjQ5NTczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzODcuNTQxNDU2NSwgInN0ZXAiOiAxNzcwLCAidmFsdWUiOiAwLjMwODczMDM5MzY0ODE0NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTM5Ni40Njc3MTU3LCAic3RlcCI6IDE3ODAsICJ2YWx1ZSI6IDAuMjYxODkwOTQ3ODE4NzU2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDA1Ljk5NjY5NiwgInN0ZXAiOiAxNzkwLCAidmFsdWUiOiAwLjIwMzI1NjY4MTU2MTQ3MDAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MTUuMDU0MjAwNCwgInN0ZXAiOiAxODAwLCAidmFsdWUiOiAwLjI1MjQ3ODE1MjUxMzUwNDAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MjMuOTA3OTA1NiwgInN0ZXAiOiAxODEwLCAidmFsdWUiOiAwLjIxMTc5OTYyMTU4MjAzMTI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MzIuNTMxNTA5NCwgInN0ZXAiOiAxODIwLCAidmFsdWUiOiAwLjQxNjEwOTAyNTQ3ODM2MzA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NDEuMjE4MDMyNiwgInN0ZXAiOiAxODMwLCAidmFsdWUiOiAwLjMzNTEzMDA2NTY3OTU1MDE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NTAuMDg4MjM4MiwgInN0ZXAiOiAxODQwLCAidmFsdWUiOiAwLjI0MTE3MDQ5NTc0ODUxOTl9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ2My4xMDcwNjI4LCAic3RlcCI6IDE4NTAsICJ2YWx1ZSI6IDAuMjMzNzcxNzI2NDg5MDY3MDh9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ3MS41NzMwMTcsICJzdGVwIjogMTg2MCwgInZhbHVlIjogMC4yNjA3NTgxMzE3NDI0Nzc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0ODAuNDk4MjUzMywgInN0ZXAiOiAxODcwLCAidmFsdWUiOiAwLjUyMDA1ODQ1MzA4MzAzODN9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ4OS4zODQ5MjgyLCAic3RlcCI6IDE4ODAsICJ2YWx1ZSI6IDAuNDIxMzg3ODUxMjM4MjUwNzN9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ5Ny45NzY3MjYsICJzdGVwIjogMTg5MCwgInZhbHVlIjogMC40MjIzMjQyMTA0MDUzNDk3M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTA2Ljc5NDI3OSwgInN0ZXAiOiAxOTAwLCAidmFsdWUiOiAwLjMxOTk3NTQ2NTUzNjExNzU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MTUuODI0NjMxLCAic3RlcCI6IDE5MTAsICJ2YWx1ZSI6IDAuMjQzNTAyNzk1Njk2MjU4NTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTUyNC42MzY0OTQsICJzdGVwIjogMTkyMCwgInZhbHVlIjogMC4yODc1NzEwNzI1Nzg0MzAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MzMuNTQyMTAxLCAic3RlcCI6IDE5MzAsICJ2YWx1ZSI6IDAuMjE3Nzg2NDYxMTE0ODgzNDJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTU1MC40Nzc5MjIyLCAic3RlcCI6IDE5NDAsICJ2YWx1ZSI6IDAuMzcxMzc5Mjg2MDUwNzk2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTU4LjgyNzk1NTcsICJzdGVwIjogMTk1MCwgInZhbHVlIjogMC4yNjIwMDEzNjU0MjMyMDI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NjcuNzU3ODU0NywgInN0ZXAiOiAxOTYwLCAidmFsdWUiOiAwLjI2MDU1Nzc3MDcyOTA2NDk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NzYuMzQ1MTQzLCAic3RlcCI6IDE5NzAsICJ2YWx1ZSI6IDAuMjYzMTEzNzA3MzA0MDAwODV9LCB7IndhbGxUaW1lIjogMTczMzA2OTU4NS41MjkxNTQ4LCAic3RlcCI6IDE5ODAsICJ2YWx1ZSI6IDAuNDA3MzYwNjcyOTUwNzQ0NjN9LCB7IndhbGxUaW1lIjogMTczMzA2OTU5NC4zNTAxNzg1LCAic3RlcCI6IDE5OTAsICJ2YWx1ZSI6IDAuMzg3MjU1MjIxNjA1MzAwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjAyLjQwMTU3NiwgInN0ZXAiOiAyMDAwLCAidmFsdWUiOiAwLjU3NjMzMjIxMTQ5NDQ0NTh9LCB7IndhbGxUaW1lIjogMTczMzA2OTYxMC4yNDk5MjgyLCAic3RlcCI6IDIwMTAsICJ2YWx1ZSI6IDAuNDcxNDkzNDgyNTg5NzIxN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjI2LjY4Njc1MjMsICJzdGVwIjogMjAyMCwgInZhbHVlIjogMC40MDcyMDE4ODYxNzcwNjN9LCB7IndhbGxUaW1lIjogMTczMzA2OTYzNS4wMzA4NjQ3LCAic3RlcCI6IDIwMzAsICJ2YWx1ZSI6IDAuMjcxNTM0MTE1MDc2MDY1MDZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTY0My44MjI0NzE0LCAic3RlcCI6IDIwNDAsICJ2YWx1ZSI6IDAuMjUzOTYyMjc4MzY2MDg4ODd9LCB7IndhbGxUaW1lIjogMTczMzA2OTY1Mi4xOTQzNzgxLCAic3RlcCI6IDIwNTAsICJ2YWx1ZSI6IDAuMjk5MDUyNDE3Mjc4Mjg5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjYwLjQ1MzM2OTYsICJzdGVwIjogMjA2MCwgInZhbHVlIjogMC40MjU3MzgxMjYwMzk1MDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTY2OS41OTIwMDEyLCAic3RlcCI6IDIwNzAsICJ2YWx1ZSI6IDAuMzM2Mzk3MDIyMDA4ODk1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Njc4Ljc3ODI5NTMsICJzdGVwIjogMjA4MCwgInZhbHVlIjogMC41Mjk4NTYxNDUzODE5Mjc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2ODYuOTQ0NzQ4NCwgInN0ZXAiOiAyMDkwLCAidmFsdWUiOiAwLjQwMTE1Mjk5ODIwODk5OTYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MDAuNjAxOTM4NywgInN0ZXAiOiAyMTAwLCAidmFsdWUiOiAwLjMyNjQyNzc4NzU0MjM0MzE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MDguNzI2MjYzLCAic3RlcCI6IDIxMTAsICJ2YWx1ZSI6IDAuMjQyMzMyNjM3MzEwMDI4MDh9LCB7IndhbGxUaW1lIjogMTczMzA2OTcxNy40NDgyMDU1LCAic3RlcCI6IDIxMjAsICJ2YWx1ZSI6IDAuMjk4ODUyODAxMzIyOTM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MjYuMTQxMTEyLCAic3RlcCI6IDIxMzAsICJ2YWx1ZSI6IDAuMzA3NjY1NDM3NDU5OTQ1N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzM1LjAzODAxMDYsICJzdGVwIjogMjE0MCwgInZhbHVlIjogMC4zMzc5Njg3MDcwODQ2NTU3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzQzLjMwNjAzNTgsICJzdGVwIjogMjE1MCwgInZhbHVlIjogMC4yNzk0MTc3ODMwMjE5MjY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NTIuNTAwNzI1NywgInN0ZXAiOiAyMTYwLCAidmFsdWUiOiAwLjMyNDc3MDg2NzgyNDU1NDQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NjEuNDUwODY4OCwgInN0ZXAiOiAyMTcwLCAidmFsdWUiOiAwLjMyMDU5Njg3Mzc2MDIyMzR9LCB7IndhbGxUaW1lIjogMTczMzA2OTc3MC40MzMwNjc2LCAic3RlcCI6IDIxODAsICJ2YWx1ZSI6IDAuMzkzODM0MjMzMjgzOTk2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Nzg0LjM2MzQwMzMsICJzdGVwIjogMjE5MCwgInZhbHVlIjogMC4zNjUzNDE0NTQ3NDQzMzl9LCB7IndhbGxUaW1lIjogMTczMzA2OTc5My4xMjIzNTQ1LCAic3RlcCI6IDIyMDAsICJ2YWx1ZSI6IDAuMTc0MTE4MjA1OTA0OTYwNjN9LCB7IndhbGxUaW1lIjogMTczMzA2OTgwMS42MzU5ODA2LCAic3RlcCI6IDIyMTAsICJ2YWx1ZSI6IDAuMjkwNjM3MDc1OTAxMDMxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODEwLjYwNzczOTIsICJzdGVwIjogMjIyMCwgInZhbHVlIjogMC40MTg3MjQ5ODM5MzA1ODc3N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODE5LjM0MTg3MjUsICJzdGVwIjogMjIzMCwgInZhbHVlIjogMC4yNTg1MDA2MzU2MjM5MzE5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MjcuMzI1OTQzMiwgInN0ZXAiOiAyMjQwLCAidmFsdWUiOiAwLjM5MTQ4OTI5NzE1MTU2NTU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MzUuODY3NzI5MiwgInN0ZXAiOiAyMjUwLCAidmFsdWUiOiAwLjI4MTU4MDUwNzc1NTI3OTU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NDQuMjM1NzE0NywgInN0ZXAiOiAyMjYwLCAidmFsdWUiOiAwLjMyMDE3ODg5NjE4ODczNTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NTYuNzQ4OTU0OCwgInN0ZXAiOiAyMjcwLCAidmFsdWUiOiAwLjI2MTEyMzU5NzYyMTkxNzd9LCB7IndhbGxUaW1lIjogMTczMzA2OTg2NS4yNTc0MDc3LCAic3RlcCI6IDIyODAsICJ2YWx1ZSI6IDAuMjE0MDc2NTc4NjE3MDk1OTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTg3NC4wMDU0MzMzLCAic3RlcCI6IDIyOTAsICJ2YWx1ZSI6IDAuMTk0MTg2MzQ0NzQyNzc0OTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTg4MS43ODE0MTQ1LCAic3RlcCI6IDIzMDAsICJ2YWx1ZSI6IDAuMzczNTQxMjY1NzI2MDg5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODkwLjQxMzUzMzQsICJzdGVwIjogMjMxMCwgInZhbHVlIjogMC4yNTU2MTE1OTg0OTE2Njg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4OTguODc2MzM3LCAic3RlcCI6IDIzMjAsICJ2YWx1ZSI6IDAuMjc0NzY4NTkwOTI3MTI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MDguMzE3NDI5LCAic3RlcCI6IDIzMzAsICJ2YWx1ZSI6IDAuMjY4ODYxNDEzMDAyMDE0MTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTkxNy40MTQ4NzA3LCAic3RlcCI6IDIzNDAsICJ2YWx1ZSI6IDAuMzY3NzEzNDUxMzg1NDk4MDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTkyNS44NTAyNTI2LCAic3RlcCI6IDIzNTAsICJ2YWx1ZSI6IDAuMjMxMjA1ODM1OTM4NDUzNjd9LCB7IndhbGxUaW1lIjogMTczMzA2OTkzOC43MDIyNTEsICJzdGVwIjogMjM2MCwgInZhbHVlIjogMC4zNDQ5MTg5MzY0OTEwMTI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NDcuNDI1ODMzMiwgInN0ZXAiOiAyMzcwLCAidmFsdWUiOiAwLjM3MzcyMjAxNjgxMTM3MDg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NTYuMjA2MTc0NiwgInN0ZXAiOiAyMzgwLCAidmFsdWUiOiAwLjQwNjk0OTE5MjI4NTUzNzd9LCB7IndhbGxUaW1lIjogMTczMzA2OTk2NC4yNzQ0MDM4LCAic3RlcCI6IDIzOTAsICJ2YWx1ZSI6IDAuMjk1OTU5MTc0NjMzMDI2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTczLjMyNTc2NDIsICJzdGVwIjogMjQwMCwgInZhbHVlIjogMC4yMjc5NTc4ODk0Mzc2NzU0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTgxLjQzMTgwNzMsICJzdGVwIjogMjQxMCwgInZhbHVlIjogMC4yNTcwODUwNTUxMTI4Mzg3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTkwLjEzOTMzNDIsICJzdGVwIjogMjQyMCwgInZhbHVlIjogMC4yODI0NzYyNzYxNTkyODY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5OTguNzk3NjI5NiwgInN0ZXAiOiAyNDMwLCAidmFsdWUiOiAwLjMwNzg5MDQxNTE5MTY1MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDAxMi40NTUzNzcsICJzdGVwIjogMjQ0MCwgInZhbHVlIjogMC4yNzUxODgzMjY4MzU2MzIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMjEuNTk4NTU5MSwgInN0ZXAiOiAyNDUwLCAidmFsdWUiOiAwLjI0NzM5ODk0MjcwODk2OTEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMzAuMTkwNTk1NCwgInN0ZXAiOiAyNDYwLCAidmFsdWUiOiAwLjI1OTIyMTk3MTAzNTAwMzY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMzkuMjE4OTU2NywgInN0ZXAiOiAyNDcwLCAidmFsdWUiOiAwLjI4NTM2MzQwNTk0MjkxNjg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNDguMjY4NTM1LCAic3RlcCI6IDI0ODAsICJ2YWx1ZSI6IDAuMzYwMTc4NTAwNDEzODk0NjV9LCB7IndhbGxUaW1lIjogMTczMzA3MDA1Ni4xNTUzMzIsICJzdGVwIjogMjQ5MCwgInZhbHVlIjogMC4zODc2NzE2MTk2NTM3MDE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNjQuNDUwMjI3NSwgInN0ZXAiOiAyNTAwLCAidmFsdWUiOiAwLjM1NDg3ODM2NTk5MzQ5OTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNzIuNTQ5ODc3LCAic3RlcCI6IDI1MTAsICJ2YWx1ZSI6IDAuMjQ2MDY3MTA2NzIzNzg1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDg3LjY1NjQ2LCAic3RlcCI6IDI1MjAsICJ2YWx1ZSI6IDAuMjkwOTc5NDQ0OTgwNjIxMzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDA5NS40NDEyOTA5LCAic3RlcCI6IDI1MzAsICJ2YWx1ZSI6IDAuMjY3MTgyNTU4Nzc0OTQ4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTAzLjc2ODQ0NSwgInN0ZXAiOiAyNTQwLCAidmFsdWUiOiAwLjI0MzQ0Njg1NjczNzEzNjg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMTMuMDQ4Nzg1NywgInN0ZXAiOiAyNTUwLCAidmFsdWUiOiAwLjIzOTg5MDU5MDMxMDA5Njc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMjEuMDM3NDEzLCAic3RlcCI6IDI1NjAsICJ2YWx1ZSI6IDAuMjQ0ODYxNDA5MDY4MTA3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTI5LjU4MzkyNTIsICJzdGVwIjogMjU3MCwgInZhbHVlIjogMC4yOTk0MjU5NTk1ODcwOTcxN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTM4LjM2MDI5NSwgInN0ZXAiOiAyNTgwLCAidmFsdWUiOiAwLjI2NTExMjEwMjAzMTcwNzc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNDcuMDg2ODU0MiwgInN0ZXAiOiAyNTkwLCAidmFsdWUiOiAwLjM0NjgwNzEyMjIzMDUyOTh9LCB7IndhbGxUaW1lIjogMTczMzA3MDE1NS40ODY1NTYsICJzdGVwIjogMjYwMCwgInZhbHVlIjogMC40NDI4MTAxMTgxOTgzOTQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNzIuNTc2ODYzLCAic3RlcCI6IDI2MTAsICJ2YWx1ZSI6IDAuMzA3NDIwNzYwMzkzMTQyN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTgxLjIxMDgxNCwgInN0ZXAiOiAyNjIwLCAidmFsdWUiOiAwLjMzMDg1Mjk4NTM4MjA4MDF9LCB7IndhbGxUaW1lIjogMTczMzA3MDE4OS42OTE5NjQsICJzdGVwIjogMjYzMCwgInZhbHVlIjogMC4yNzcwNDQ3MTM0OTcxNjE4N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTk4LjM5ODcxOSwgInN0ZXAiOiAyNjQwLCAidmFsdWUiOiAwLjI2NzY4OTU1NTg4MzQwNzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDIwNi43MDY5NzE2LCAic3RlcCI6IDI2NTAsICJ2YWx1ZSI6IDAuMjEzNDQxODc4NTU3MjA1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjE1LjU5OTI5MTYsICJzdGVwIjogMjY2MCwgInZhbHVlIjogMC4zMzM4MzcxMjE3MjUwODI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMjQuMzE1MjAwNiwgInN0ZXAiOiAyNjcwLCAidmFsdWUiOiAwLjMyODIxMTAwOTUwMjQxMDl9LCB7IndhbGxUaW1lIjogMTczMzA3MDIzMy41Mzg5NjcxLCAic3RlcCI6IDI2ODAsICJ2YWx1ZSI6IDAuMjgxMjQ3NTI2NDA3MjQxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjQ2Ljc1NzcyOSwgInN0ZXAiOiAyNjkwLCAidmFsdWUiOiAwLjI1OTAxNDMwODQ1MjYwNjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDI1Ni4wMjg0MTIsICJzdGVwIjogMjcwMCwgInZhbHVlIjogMC4zOTUzNzc5MzM5NzkwMzQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNjQuOTUwMzcxNywgInN0ZXAiOiAyNzEwLCAidmFsdWUiOiAwLjI1OTI2NjUyNTUwNjk3MzI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNzMuODA0Mjk5NiwgInN0ZXAiOiAyNzIwLCAidmFsdWUiOiAwLjM0MDU0NzgyOTg2NjQwOTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDI4Mi45NTg2NjAxLCAic3RlcCI6IDI3MzAsICJ2YWx1ZSI6IDAuMzAxMjgzMDYxNTA0MzY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyOTIuMjc3NDg4MiwgInN0ZXAiOiAyNzQwLCAidmFsdWUiOiAwLjI4ODQ0NDM0MDIyOTAzNDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDMwMC4zMzYzNDU3LCAic3RlcCI6IDI3NTAsICJ2YWx1ZSI6IDAuMjc2NTc4MTI4MzM3ODYwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzA5LjQxMTc3MDYsICJzdGVwIjogMjc2MCwgInZhbHVlIjogMC40Mjg3ODYwMDk1NTAwOTQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMTcuNTMxMDgwNywgInN0ZXAiOiAyNzcwLCAidmFsdWUiOiAwLjQwMzM2MzQ2NjI2MjgxNzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDMzMC40MzU3NDcsICJzdGVwIjogMjc4MCwgInZhbHVlIjogMC4zMjc4NDU5OTA2NTc4MDY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMzkuODIyNDY1MiwgInN0ZXAiOiAyNzkwLCAidmFsdWUiOiAwLjI2MTgyNDI1MDIyMTI1MjQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNDcuOTkyOTIwNiwgInN0ZXAiOiAyODAwLCAidmFsdWUiOiAwLjIwMzE2ODEwOTA1OTMzMzh9LCB7IndhbGxUaW1lIjogMTczMzA3MDM1Ni44OTE4NTU1LCAic3RlcCI6IDI4MTAsICJ2YWx1ZSI6IDAuMjk0MjYwNjUwODczMTg0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzY1LjU3NjQ3NDcsICJzdGVwIjogMjgyMCwgInZhbHVlIjogMC4yNjgxMzY4ODg3NDI0NDY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNzQuMzkyODEyNSwgInN0ZXAiOiAyODMwLCAidmFsdWUiOiAwLjI3MDQwNTY3OTk0MTE3NzM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzODIuNDI2NTk1LCAic3RlcCI6IDI4NDAsICJ2YWx1ZSI6IDAuMzQyNzYzNTQzMTI4OTY3M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzkwLjk0MDk1OTcsICJzdGVwIjogMjg1MCwgInZhbHVlIjogMC4yMzY4Nzk4MTA2OTA4Nzk4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDA2LjY3ODM0MzUsICJzdGVwIjogMjg2MCwgInZhbHVlIjogMC4yNTI3NzA0MjM4ODkxNjAxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDE1LjA4OTU0MzgsICJzdGVwIjogMjg3MCwgInZhbHVlIjogMC4yNDQ3NDIwMjA5NjQ2MjI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0MjIuOTE5NjEzLCAic3RlcCI6IDI4ODAsICJ2YWx1ZSI6IDAuMjMwMjUyODkxNzc4OTQ1OTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzMS41MzcwMzYyLCAic3RlcCI6IDI4OTAsICJ2YWx1ZSI6IDAuMjU2NjE1ODQ3MzQ5MTY2ODd9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzOS45ODA1MTAyLCAic3RlcCI6IDI5MDAsICJ2YWx1ZSI6IDAuMzI3Nzg0ODM2MjkyMjY2ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ0OC4wODUxNjU3LCAic3RlcCI6IDI5MTAsICJ2YWx1ZSI6IDAuNDEyODkwNDM0MjY1MTM2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDU3LjQyMzM1MzcsICJzdGVwIjogMjkyMCwgInZhbHVlIjogMC40NDE0MzQwNTU1NjY3ODc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NjYuNzIyNDY0LCAic3RlcCI6IDI5MzAsICJ2YWx1ZSI6IDAuMzc3MzQyNzYwNTYyODk2NzN9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ3OS4zMzIxNzM4LCAic3RlcCI6IDI5NDAsICJ2YWx1ZSI6IDAuMzA3MTM2OTIzMDc0NzIyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDg4Ljc4MTk1NDUsICJzdGVwIjogMjk1MCwgInZhbHVlIjogMC4yODk1NjAxMDkzNzY5MDczNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDk3LjIyNDQ5MTEsICJzdGVwIjogMjk2MCwgInZhbHVlIjogMC4zNjcxMTk1NTA3MDQ5NTYwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTA1LjYzMzQzMjksICJzdGVwIjogMjk3MCwgInZhbHVlIjogMC4yNDE0NzAyMDI4MDM2MTE3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTEzLjM1MzUwMiwgInN0ZXAiOiAyOTgwLCAidmFsdWUiOiAwLjIwNDQ3NDU5ODE2OTMyNjc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MjIuMzAwNzYsICJzdGVwIjogMjk5MCwgInZhbHVlIjogMC4zNTY3ODgxNTg0MTY3NDgwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTMwLjIxMjI5OTMsICJzdGVwIjogMzAwMCwgInZhbHVlIjogMC4xOTc3MDUyNTM5NTg3MDIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MzguMjk5NjEwOSwgInN0ZXAiOiAzMDEwLCAidmFsdWUiOiAwLjMwNDMxMjQzNzc3Mjc1MDg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NDcuMzk5ODg2NCwgInN0ZXAiOiAzMDIwLCAidmFsdWUiOiAwLjI1MDcxOTM5ODI2MDExNjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDU2NC4wNTAzNjI4LCAic3RlcCI6IDMwMzAsICJ2YWx1ZSI6IDAuMjM2ODcxMTIzMzEzOTAzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTcyLjM2OTMwNDQsICJzdGVwIjogMzA0MCwgInZhbHVlIjogMC4yMzY3MDI4ODkyMDQwMjUyN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTgwLjY3MDQ1MiwgInN0ZXAiOiAzMDUwLCAidmFsdWUiOiAwLjI3MjUzOTc2NDY0MjcxNTQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1ODguNjUyODAxMywgInN0ZXAiOiAzMDYwLCAidmFsdWUiOiAwLjI3NDMyODg1NzY2MDI5MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDU5Ny40MjAyNjk1LCAic3RlcCI6IDMwNzAsICJ2YWx1ZSI6IDAuMjM5NTUwMTEzNjc3OTc4NTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDYwNi4xMzY3OSwgInN0ZXAiOiAzMDgwLCAidmFsdWUiOiAwLjM3MzIxNTIyODMxOTE2ODF9LCB7IndhbGxUaW1lIjogMTczMzA3MDYxNC40MzkwODE3LCAic3RlcCI6IDMwOTAsICJ2YWx1ZSI6IDAuMzM3NjY2MzkyMzI2MzU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MjMuOTk5NDEwNCwgInN0ZXAiOiAzMTAwLCAidmFsdWUiOiAwLjI4MDM5OTUwMTMyMzY5OTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MzcuMjUxNTg3NCwgInN0ZXAiOiAzMTEwLCAidmFsdWUiOiAwLjM0NDI4ODQ5ODE2MzIyMzI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NDUuNjgxNTM1LCAic3RlcCI6IDMxMjAsICJ2YWx1ZSI6IDAuMjk3NDYxOTg2NTQxNzQ4MDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDY1NC4yNjkxNTU1LCAic3RlcCI6IDMxMzAsICJ2YWx1ZSI6IDAuMjQxNzc4MTA1NDk3MzYwMjN9LCB7IndhbGxUaW1lIjogMTczMzA3MDY2My4zMTk5Mjg0LCAic3RlcCI6IDMxNDAsICJ2YWx1ZSI6IDAuMjQ4Nzc2MDQ4NDIxODU5NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDY3MS4xMTY3MDg4LCAic3RlcCI6IDMxNTAsICJ2YWx1ZSI6IDAuMzM5NTgwMjM3ODY1NDQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NzkuNzY0MTk5NSwgInN0ZXAiOiAzMTYwLCAidmFsdWUiOiAwLjM3MDI2OTUzNjk3MjA0NTl9LCB7IndhbGxUaW1lIjogMTczMzA3MDY4Ny44NDM4NjM1LCAic3RlcCI6IDMxNzAsICJ2YWx1ZSI6IDAuMjU0MjQxMjI4MTAzNjM3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjk1Ljg1NDQ1MzMsICJzdGVwIjogMzE4MCwgInZhbHVlIjogMC4zMjI5MzIyNDMzNDcxNjc5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzA0LjYyMTA3MTYsICJzdGVwIjogMzE5MCwgInZhbHVlIjogMC4yNTMyMDY2NDA0ODE5NDg4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzE3LjEwNzQ4NDgsICJzdGVwIjogMzIwMCwgInZhbHVlIjogMC4xOTkxMTg0MzUzODI4NDMwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzI2LjA5NzI5NjIsICJzdGVwIjogMzIxMCwgInZhbHVlIjogMC4yOTM5ODI2MjUwMDc2Mjk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MzQuNzc1NTgxMSwgInN0ZXAiOiAzMjIwLCAidmFsdWUiOiAwLjE4NTY4NTU4OTkwOTU1MzUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NDQuNDEwOTk4MywgInN0ZXAiOiAzMjMwLCAidmFsdWUiOiAwLjI3OTkwNTgyNTg1MzM0Nzh9LCB7IndhbGxUaW1lIjogMTczMzA3MDc1Mi41MDAyODU2LCAic3RlcCI6IDMyNDAsICJ2YWx1ZSI6IDAuNDM5MjQ4NDQyNjQ5ODQxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzYxLjcxOTc2NjYsICJzdGVwIjogMzI1MCwgInZhbHVlIjogMC4zOTE2Njg2NDc1Mjc2OTQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NzAuMzc1MjIxNSwgInN0ZXAiOiAzMjYwLCAidmFsdWUiOiAwLjI3MTY0MjI5NzUwNjMzMjR9LCB7IndhbGxUaW1lIjogMTczMzA3MDc3OS43Mjg2OTEzLCAic3RlcCI6IDMyNzAsICJ2YWx1ZSI6IDAuMjU4MzQ3NzQ5NzEwMDgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3OTMuNjc3MDk3OCwgInN0ZXAiOiAzMjgwLCAidmFsdWUiOiAwLjIzODc0Mjk2MjQ3OTU5MTM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MDEuODk4NjY1MiwgInN0ZXAiOiAzMjkwLCAidmFsdWUiOiAwLjM4NjM0MDA1MTg4OTQxOTU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MTAuMTU5NzA1OSwgInN0ZXAiOiAzMzAwLCAidmFsdWUiOiAwLjM0MzYwNTcyNjk1NzMyMTE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MTguNzI1MTQ5LCAic3RlcCI6IDMzMTAsICJ2YWx1ZSI6IDAuMTc4OTYxMzM2NjEyNzAxNDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDgyNy4wMDU3MzM3LCAic3RlcCI6IDMzMjAsICJ2YWx1ZSI6IDAuMjI4MDgwMjI3OTcxMDc2OTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDgzNS41NzMyMDMsICJzdGVwIjogMzMzMCwgInZhbHVlIjogMC4yNzE1MDE0ODE1MzMwNTA1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODQzLjk3MzMwOSwgInN0ZXAiOiAzMzQwLCAidmFsdWUiOiAwLjQwNTczOTE4ODE5NDI3NDl9LCB7IndhbGxUaW1lIjogMTczMzA3MDg1My4wOTAzMDQ2LCAic3RlcCI6IDMzNTAsICJ2YWx1ZSI6IDAuMzIxODE1OTM3NzU3NDkyMDd9LCB7IndhbGxUaW1lIjogMTczMzA3MDg2NS40MTgxODUsICJzdGVwIjogMzM2MCwgInZhbHVlIjogMC4yMDg0ODQ4Mjg0NzIxMzc0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODczLjY2MDMzNCwgInN0ZXAiOiAzMzcwLCAidmFsdWUiOiAwLjI1ODcxNDE2OTI2MzgzOTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDg4My4zMzQ2OTU2LCAic3RlcCI6IDMzODAsICJ2YWx1ZSI6IDAuMjM4ODkyNjE0ODQxNDYxMTh9LCB7IndhbGxUaW1lIjogMTczMzA3MDg5Mi4zNzU3MDI5LCAic3RlcCI6IDMzOTAsICJ2YWx1ZSI6IDAuMjcxOTk4NzMzMjgyMDg5MjN9LCB7IndhbGxUaW1lIjogMTczMzA3MDkwMC43MjEwNjg5LCAic3RlcCI6IDM0MDAsICJ2YWx1ZSI6IDAuMzEzOTQ4MTI0NjQ3MTQwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTA4LjUwMjg4MDMsICJzdGVwIjogMzQxMCwgInZhbHVlIjogMC4yNzg3MjAzMTkyNzEwODc2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTE2LjY1NDQ3MzUsICJzdGVwIjogMzQyMCwgInZhbHVlIjogMC4zNzI0NTYxOTI5NzAyNzU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MjUuMjA3NzU4NCwgInN0ZXAiOiAzNDMwLCAidmFsdWUiOiAwLjI1Njc4NzUzODUyODQ0MjR9LCB7IndhbGxUaW1lIjogMTczMzA3MDkzMy44MDg5NjkzLCAic3RlcCI6IDM0NDAsICJ2YWx1ZSI6IDAuMjEzMzY4MTYyNTEyNzc5MjR9LCB7IndhbGxUaW1lIjogMTczMzA3MDk0Ny40Nzg0NDIsICJzdGVwIjogMzQ1MCwgInZhbHVlIjogMC4yNDAxOTA5NTMwMTYyODExM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTU2LjE4NTk4MDMsICJzdGVwIjogMzQ2MCwgInZhbHVlIjogMC4yNDc0NzA4ODU1MTUyMTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDk2NC4yNjUwMDczLCAic3RlcCI6IDM0NzAsICJ2YWx1ZSI6IDAuMjYyNjg1NTM3MzM4MjU2ODR9LCB7IndhbGxUaW1lIjogMTczMzA3MDk3Mi4zODQ4MDQyLCAic3RlcCI6IDM0ODAsICJ2YWx1ZSI6IDAuMjY4OTkwNDI3MjU1NjMwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTgwLjY0NTgxNjMsICJzdGVwIjogMzQ5MCwgInZhbHVlIjogMC40NjEwOTg0OTIxNDU1MzgzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTg5LjY4NjQyOTMsICJzdGVwIjogMzUwMCwgInZhbHVlIjogMC4yNDM1ODUzOTI4MzI3NTYwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTk3Ljc4NzIzMDUsICJzdGVwIjogMzUxMCwgInZhbHVlIjogMC4yMzM5ODY4NTQ1NTMyMjI2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDA2LjI3MDExOTcsICJzdGVwIjogMzUyMCwgInZhbHVlIjogMC4zMjQyNzA5NjM2Njg4MjMyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDE4Ljg5NDgsICJzdGVwIjogMzUzMCwgInZhbHVlIjogMC4yNDA1NTQyNDMzMjYxODcxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDI3LjE5NTg3MzUsICJzdGVwIjogMzU0MCwgInZhbHVlIjogMC4xNzc3OTgxMDcyNjY0MjYxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMzUuMzE5Mjc5MiwgInN0ZXAiOiAzNTUwLCAidmFsdWUiOiAwLjI2MzQ5OTk3NTIwNDQ2Nzh9LCB7IndhbGxUaW1lIjogMTczMzA3MTA0My43NDQ0NzI1LCAic3RlcCI6IDM1NjAsICJ2YWx1ZSI6IDAuMjIyNDYwNTM4MTQ4ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MTA1MS44NzA5MTY2LCAic3RlcCI6IDM1NzAsICJ2YWx1ZSI6IDAuMjg2NjI2NTQ3NTc0OTk2OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTA2MC40OTQ4NzQ3LCAic3RlcCI6IDM1ODAsICJ2YWx1ZSI6IDAuMjQ3NzQ1MDA3Mjc2NTM1MDN9LCB7IndhbGxUaW1lIjogMTczMzA3MTA2OC44NzgyMTUzLCAic3RlcCI6IDM1OTAsICJ2YWx1ZSI6IDAuMjU2NTE3ODI3NTEwODMzNzR9LCB7IndhbGxUaW1lIjogMTczMzA3MTA3Ny43MTE3NDQzLCAic3RlcCI6IDM2MDAsICJ2YWx1ZSI6IDAuMjc4NDQ4NzMwNzA3MTY4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDg2LjIxMTE4OTUsICJzdGVwIjogMzYxMCwgInZhbHVlIjogMC4yMTY3NzYyODE1OTUyMzAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMDEuNjU3NDg4NiwgInN0ZXAiOiAzNjIwLCAidmFsdWUiOiAwLjIzODgzNDYwNDYyMDkzMzUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMDkuNjE5NDE0LCAic3RlcCI6IDM2MzAsICJ2YWx1ZSI6IDAuMjgzMTc4MDMxNDQ0NTQ5NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTExOC4xMjgwODUsICJzdGVwIjogMzY0MCwgInZhbHVlIjogMC4yNTUwODA5MzgzMzkyMzM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMjYuOTkxOTcsICJzdGVwIjogMzY1MCwgInZhbHVlIjogMC4yMTI0OTM0NzkyNTE4NjE1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTM1LjgyNjI4ODUsICJzdGVwIjogMzY2MCwgInZhbHVlIjogMC4zMTM1NjIxODQ1NzIyMTk4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTQ0LjI0NzE2NSwgInN0ZXAiOiAzNjcwLCAidmFsdWUiOiAwLjIyMjA1Mjc4Mjc3Mzk3MTU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNTIuOTYzMzA5LCAic3RlcCI6IDM2ODAsICJ2YWx1ZSI6IDAuMjQxMzcyMzYxNzc5MjEyOTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTE2MC42MDIyODc1LCAic3RlcCI6IDM2OTAsICJ2YWx1ZSI6IDAuMjU3MzU1MzkxOTc5MjE3NTN9LCB7IndhbGxUaW1lIjogMTczMzA3MTE3My43NDkxNTc0LCAic3RlcCI6IDM3MDAsICJ2YWx1ZSI6IDAuMjYxMzk1NjMzMjIwNjcyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTgyLjg4MjExMzIsICJzdGVwIjogMzcxMCwgInZhbHVlIjogMC4yNjYyNzU4ODI3MjA5NDcyN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTkxLjIwODk0MzQsICJzdGVwIjogMzcyMCwgInZhbHVlIjogMC4zMTI5ODk0MTM3MzgyNTA3M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjAwLjMzMjMyNzgsICJzdGVwIjogMzczMCwgInZhbHVlIjogMC41NzM1OTkxNTk3MTc1NTk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMDguMzY0NTU4MiwgInN0ZXAiOiAzNzQwLCAidmFsdWUiOiAwLjI4MDI0Nzc3NzcwMDQyNDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTIxNi41NzA3ODgsICJzdGVwIjogMzc1MCwgInZhbHVlIjogMC4yMDEyMDk5NjIzNjgwMTE0N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjI0LjY2MDc4NjYsICJzdGVwIjogMzc2MCwgInZhbHVlIjogMC4xNzAzOTA2ODA0MzIzMTk2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjMyLjg1OTU1NDMsICJzdGVwIjogMzc3MCwgInZhbHVlIjogMC4xNjM4Mzc1ODE4NzI5NDAwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjQ4LjUzMjI3OTcsICJzdGVwIjogMzc4MCwgInZhbHVlIjogMC4zNTcyMDA2ODIxNjMyMzg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNTcuMzkwNjgxMywgInN0ZXAiOiAzNzkwLCAidmFsdWUiOiAwLjQyNDg5MDM2OTE3Njg2NDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTI2NS41NjYyNDUsICJzdGVwIjogMzgwMCwgInZhbHVlIjogMC4xOTM0MzgzNTExNTQzMjc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNzQuMTc3NjIzLCAic3RlcCI6IDM4MTAsICJ2YWx1ZSI6IDAuMzA5NDUyOTUwOTU0NDM3MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTI4My4wMTY4NzAzLCAic3RlcCI6IDM4MjAsICJ2YWx1ZSI6IDAuMjI5MTQ4NDAyODEwMDk2NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MTI5MS43Mjg3MTY0LCAic3RlcCI6IDM4MzAsICJ2YWx1ZSI6IDAuMTc3MzA3MDY5MzAxNjA1MjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTI5OS44OTE4MTkyLCAic3RlcCI6IDM4NDAsICJ2YWx1ZSI6IDAuMjA4NDg4NzAyNzc0MDQ3ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MTMwOC40NzgzNjc4LCAic3RlcCI6IDM4NTAsICJ2YWx1ZSI6IDAuMjg0ODU1MDA4MTI1MzA1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzE2Ljk1MDQ1MjYsICJzdGVwIjogMzg2MCwgInZhbHVlIjogMC4zMDUyMjM2NzM1ODIwNzd9LCB7IndhbGxUaW1lIjogMTczMzA3MTMzMC4yMTM5OTk1LCAic3RlcCI6IDM4NzAsICJ2YWx1ZSI6IDAuMjIzNDI4NzI2MTk2Mjg5MDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTMzOC45ODc5NTQ2LCAic3RlcCI6IDM4ODAsICJ2YWx1ZSI6IDAuMjQwNjM1NDg0NDU3MDE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNDcuNzM1OTEzMywgInN0ZXAiOiAzODkwLCAidmFsdWUiOiAwLjIxNTExNTU2MjA4MTMzNjk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNTcuMDMzNjA0NCwgInN0ZXAiOiAzOTAwLCAidmFsdWUiOiAwLjIxNjQyOTA1NDczNzA5MTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNjUuMjI0NTU3OSwgInN0ZXAiOiAzOTEwLCAidmFsdWUiOiAwLjI5NTczNTY4NzAxNzQ0MDh9LCB7IndhbGxUaW1lIjogMTczMzA3MTM3NC4xMzM4NjE4LCAic3RlcCI6IDM5MjAsICJ2YWx1ZSI6IDAuNDU5NTI5MjIxMDU3ODkxODV9LCB7IndhbGxUaW1lIjogMTczMzA3MTM4Mi44MTMwNjMxLCAic3RlcCI6IDM5MzAsICJ2YWx1ZSI6IDAuMjk4MDYyOTgwMTc1MDE4M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzkxLjU2NzY2NDQsICJzdGVwIjogMzk0MCwgInZhbHVlIjogMC4yNTYzNzA2MzM4NDA1NjA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MDQuNDY2NDgxNywgInN0ZXAiOiAzOTUwLCAidmFsdWUiOiAwLjIzMjg5NTQzMzkwMjc0MDQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MTIuMzM4MTIzLCAic3RlcCI6IDM5NjAsICJ2YWx1ZSI6IDAuMjU1MTU5MTY5NDM1NTAxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDIxLjE1NjgyMjcsICJzdGVwIjogMzk3MCwgInZhbHVlIjogMC4yNzM3NzQ4OTIwOTE3NTExfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MzAuMTE5ODExNSwgInN0ZXAiOiAzOTgwLCAidmFsdWUiOiAwLjE5NDk5MzE5NzkxNzkzODIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MzguNDEzMjgsICJzdGVwIjogMzk5MCwgInZhbHVlIjogMC4zNzI0ODM1NTE1MDIyMjc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NDcuNzI4MTE4LCAic3RlcCI6IDQwMDAsICJ2YWx1ZSI6IDAuMzUzNDQ1NDcwMzMzMDk5Mzd9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ1Ni4xOTU4ODczLCAic3RlcCI6IDQwMTAsICJ2YWx1ZSI6IDAuMjkxNzc1MTA3MzgzNzI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NjQuNzQ4NzU0MywgInN0ZXAiOiA0MDIwLCAidmFsdWUiOiAwLjI0OTM5NDQ3NjQxMzcyNjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ3My4zOTYzNzg1LCAic3RlcCI6IDQwMzAsICJ2YWx1ZSI6IDAuMzI1OTY5Mjc4ODEyNDA4NDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ5MC4yODU3MTQxLCAic3RlcCI6IDQwNDAsICJ2YWx1ZSI6IDAuMjQ3MDU5NzkyMjgwMTk3MTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ5OC43MTEwMjY3LCAic3RlcCI6IDQwNTAsICJ2YWx1ZSI6IDAuMjM2Mzk4Mzk4ODc2MTkwMTl9LCB7IndhbGxUaW1lIjogMTczMzA3MTUwNy4wOTY4MjM1LCAic3RlcCI6IDQwNjAsICJ2YWx1ZSI6IDAuMTkyMDE3MDQ4NTk3MzM1ODJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTUxNS4wNjcxNzYzLCAic3RlcCI6IDQwNzAsICJ2YWx1ZSI6IDAuMjg1Nzk3ODM0Mzk2MzYyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTIzLjg4MDU5OCwgInN0ZXAiOiA0MDgwLCAidmFsdWUiOiAwLjI3MTk5NDE0MzcyNDQ0MTUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MzIuMjg0NzU1MiwgInN0ZXAiOiA0MDkwLCAidmFsdWUiOiAwLjE5NjYxMTY1NzczODY4NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTU0MC45MTcxNDM4LCAic3RlcCI6IDQxMDAsICJ2YWx1ZSI6IDAuMjE2MDc0NzY0NzI4NTQ2MTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTU0OS4xNzU2OTMsICJzdGVwIjogNDExMCwgInZhbHVlIjogMC4xODM3MTcxMzE2MTQ2ODUwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTY1LjgzNTU1OTEsICJzdGVwIjogNDEyMCwgInZhbHVlIjogMC4yMjYyNTMzMzA3MDc1NTAwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTczLjYzMTI4NzYsICJzdGVwIjogNDEzMCwgInZhbHVlIjogMC4xNjA4MzQ5OTc4OTIzNzk3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTgyLjA5NTg5MiwgInN0ZXAiOiA0MTQwLCAidmFsdWUiOiAwLjQxOTE1OTQ3MTk4ODY3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTkwLjAyMjM3MDMsICJzdGVwIjogNDE1MCwgInZhbHVlIjogMC4xNjE2MTA2OTI3Mzk0ODY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1OTkuMjQwNzQzNiwgInN0ZXAiOiA0MTYwLCAidmFsdWUiOiAwLjcwOTY1NjgzNDYwMjM1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjA4LjA3MTQ2ODYsICJzdGVwIjogNDE3MCwgInZhbHVlIjogMC4yNTM5NDkyODQ1NTM1Mjc4M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjE2LjE4MzYyNjcsICJzdGVwIjogNDE4MCwgInZhbHVlIjogMC4zMTMxMDg2MjMwMjc4MDE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2MjYuMDgyNzMxLCAic3RlcCI6IDQxOTAsICJ2YWx1ZSI6IDAuMTU5NDQwNTAyNTI0Mzc1OTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTY0MS4wMDc4NjE2LCAic3RlcCI6IDQyMDAsICJ2YWx1ZSI6IDAuMjQ1MTM3OTg5NTIxMDI2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjQ5LjA0MDY2OTQsICJzdGVwIjogNDIxMCwgInZhbHVlIjogMC4yMDIyMDc1OTUxMDk5Mzk1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjU4LjUzMTQyNTIsICJzdGVwIjogNDIyMCwgInZhbHVlIjogMC4yODAyOTMxOTY0Mzk3NDMwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjY3Ljk2NjEyMDUsICJzdGVwIjogNDIzMCwgInZhbHVlIjogMC4zMjM2ODAzNDEyNDM3NDM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NzYuMTA4ODEwNywgInN0ZXAiOiA0MjQwLCAidmFsdWUiOiAwLjIwODU4NTY3OTUzMTA5NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MTY4NC4zNzg1OTY1LCAic3RlcCI6IDQyNTAsICJ2YWx1ZSI6IDAuMzE0MDI5OTAyMjE5NzcyMzR9LCB7IndhbGxUaW1lIjogMTczMzA3MTY5My4xMDk3MDM1LCAic3RlcCI6IDQyNjAsICJ2YWx1ZSI6IDAuMjg4OTM5ODkzMjQ1Njk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MDIuMTgzOTczLCAic3RlcCI6IDQyNzAsICJ2YWx1ZSI6IDAuMjEyMDk3MDQ4NzU5NDYwNDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTcxMC42MzAzNTYsICJzdGVwIjogNDI4MCwgInZhbHVlIjogMC4zMjIyNzc0MjY3MTk2NjU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MjYuNjc2ODA1MywgInN0ZXAiOiA0MjkwLCAidmFsdWUiOiAwLjI2NDQ4MzI3MzAyOTMyNzR9LCB7IndhbGxUaW1lIjogMTczMzA3MTczNS4yMTU2Njg0LCAic3RlcCI6IDQzMDAsICJ2YWx1ZSI6IDAuMjY2NTM5MDM3MjI3NjMwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzQyLjk1NzIwMjQsICJzdGVwIjogNDMxMCwgInZhbHVlIjogMC4yNjI2MzAwNzUyMTYyOTMzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzUxLjU4NTgzNSwgInN0ZXAiOiA0MzIwLCAidmFsdWUiOiAwLjQyNDQ1Njc0NTM4NjEyMzY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NjAuMDM0Nzk2NywgInN0ZXAiOiA0MzMwLCAidmFsdWUiOiAwLjI3NjE1NTkxODgzNjU5MzYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NjguNDMxNDI5MSwgInN0ZXAiOiA0MzQwLCAidmFsdWUiOiAwLjE4MTE0MTk0MjczOTQ4Njd9LCB7IndhbGxUaW1lIjogMTczMzA3MTc3Ny40MDIyNDk4LCAic3RlcCI6IDQzNTAsICJ2YWx1ZSI6IDAuMjk3Mzg5NDQ3Njg5MDU2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzg1LjU0NzQ0NDYsICJzdGVwIjogNDM2MCwgInZhbHVlIjogMC4yNzMxNTExMjk0ODQxNzY2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODAwLjg4NDg2NzcsICJzdGVwIjogNDM3MCwgInZhbHVlIjogMC4zNTg0ODk5OTAyMzQzNzV9LCB7IndhbGxUaW1lIjogMTczMzA3MTgwOS4yNjU5Nzc2LCAic3RlcCI6IDQzODAsICJ2YWx1ZSI6IDAuMjQyNDc4NDMwMjcxMTQ4Njh9LCB7IndhbGxUaW1lIjogMTczMzA3MTgxNy4zNDY1MDA0LCAic3RlcCI6IDQzOTAsICJ2YWx1ZSI6IDAuMjA1ODAwOTIwNzI0ODY4Nzd9LCB7IndhbGxUaW1lIjogMTczMzA3MTgyNi40MzA1MjQ4LCAic3RlcCI6IDQ0MDAsICJ2YWx1ZSI6IDAuMzA1NDA3NDY0NTA0MjQxOTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTgzNC44ODc3MzUsICJzdGVwIjogNDQxMCwgInZhbHVlIjogMC4yOTM5Nzk1NTUzNjg0MjM0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODQzLjQ0Njk5MTQsICJzdGVwIjogNDQyMCwgInZhbHVlIjogMC4yNTc5ODk3MDQ2MDg5MTcyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODUxLjU5NjE1OCwgInN0ZXAiOiA0NDMwLCAidmFsdWUiOiAwLjI0NTczMzk0NjU2MTgxMzM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NTkuOTI0MjU3OCwgInN0ZXAiOiA0NDQwLCAidmFsdWUiOiAwLjI1ODExMjEzMjU0OTI4NTl9LCB7IndhbGxUaW1lIjogMTczMzA3MTg2OC42NzMzNjM3LCAic3RlcCI6IDQ0NTAsICJ2YWx1ZSI6IDAuMjQ1MjY3ODIzMzM4NTA4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODgxLjMzNjI5NiwgInN0ZXAiOiA0NDYwLCAidmFsdWUiOiAwLjIyNjUzMzUwMjM0MDMxNjc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4ODkuNjM2Njg3NSwgInN0ZXAiOiA0NDcwLCAidmFsdWUiOiAwLjIzODc1NDM3Njc2OTA2NTg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4OTguNDIwOTQ5NSwgInN0ZXAiOiA0NDgwLCAidmFsdWUiOiAwLjI2ODEzMzI4MjY2MTQzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTA3LjMzNjEzMDksICJzdGVwIjogNDQ5MCwgInZhbHVlIjogMC4yMjk0MjMxODAyMjI1MTEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5MTYuMjc4MzAxNywgInN0ZXAiOiA0NTAwLCAidmFsdWUiOiAwLjMyOTQzODg5NDk4NzEwNjN9LCB7IndhbGxUaW1lIjogMTczMzA3MTkyNS4zNDg4MjEyLCAic3RlcCI6IDQ1MTAsICJ2YWx1ZSI6IDAuMzYzMDE5MTM4NTc0NjAwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTMzLjMyOTQyNDEsICJzdGVwIjogNDUyMCwgInZhbHVlIjogMC4xNTE5OTE5MzM1ODQyMTMyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTQxLjQ4Mjc3NywgInN0ZXAiOiA0NTMwLCAidmFsdWUiOiAwLjE2NDM0MDk0MzA5ODA2ODI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NTQuMTY5MDM1MiwgInN0ZXAiOiA0NTQwLCAidmFsdWUiOiAwLjIzNDAxOTE5MDA3MzAxMzN9LCB7IndhbGxUaW1lIjogMTczMzA3MTk2Mi4zOTU4NDUyLCAic3RlcCI6IDQ1NTAsICJ2YWx1ZSI6IDAuMTg4NjI2NzgxMTA1OTk1MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MTk3MC41MTM0MDk5LCAic3RlcCI6IDQ1NjAsICJ2YWx1ZSI6IDAuMjY1MDE0NDY5NjIzNTY1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTc4Ljg2OTk2NDQsICJzdGVwIjogNDU3MCwgInZhbHVlIjogMC4zNzA5MjY2MTg1NzYwNDk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5ODcuNzEwNTMwOCwgInN0ZXAiOiA0NTgwLCAidmFsdWUiOiAwLjI5Njg5NDU1MDMyMzQ4NjMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5OTYuNDQ0NTYyMiwgInN0ZXAiOiA0NTkwLCAidmFsdWUiOiAwLjM4NzY2OTM1NDY3NzIwMDN9LCB7IndhbGxUaW1lIjogMTczMzA3MjAwNC40NzU5NjU1LCAic3RlcCI6IDQ2MDAsICJ2YWx1ZSI6IDAuMTkzMDE1Nzg0MDI1MTkyMjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjAxMi43NDQ2OTg4LCAic3RlcCI6IDQ2MTAsICJ2YWx1ZSI6IDAuMTgxMzIyODcyNjM4NzAyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDI1LjQwMDEwMjEsICJzdGVwIjogNDYyMCwgInZhbHVlIjogMC4xOTk0NzQ3MjIxNDY5ODc5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDM0LjExODE1NDgsICJzdGVwIjogNDYzMCwgInZhbHVlIjogMC4xODk2MTA5MjgyOTcwNDI4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDQzLjAzNzM2NDIsICJzdGVwIjogNDY0MCwgInZhbHVlIjogMC4zMTMyODY0ODMyODc4MTEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNTEuNzg0OTg1LCAic3RlcCI6IDQ2NTAsICJ2YWx1ZSI6IDAuMjUxOTU0NzkzOTMwMDUzN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDYwLjEwNzk1LCAic3RlcCI6IDQ2NjAsICJ2YWx1ZSI6IDAuMjQ1MDI0Nzg1Mzk5NDM2OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjA2OC42MDI2OTgzLCAic3RlcCI6IDQ2NzAsICJ2YWx1ZSI6IDAuMjczMjcxNTkwNDcxMjY3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDc2LjgzNjA3OTgsICJzdGVwIjogNDY4MCwgInZhbHVlIjogMC4yNjkwNTE5MDk0NDY3MTYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwODUuMzc1NTMxLCAic3RlcCI6IDQ2OTAsICJ2YWx1ZSI6IDAuMjg2MjE5ODk0ODg2MDE2ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MjA5My43NDc5OTEzLCAic3RlcCI6IDQ3MDAsICJ2YWx1ZSI6IDAuMjEzNTYyMzM5NTQ0Mjk2MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjEwNi45ODkxMTgsICJzdGVwIjogNDcxMCwgInZhbHVlIjogMC4yNTg1Mjg5NDc4MzAyMDAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMTUuNjY0NTY5MSwgInN0ZXAiOiA0NzIwLCAidmFsdWUiOiAwLjQxNTcxMjMyNjc2NTA2MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjEyMy45NDk5OTg0LCAic3RlcCI6IDQ3MzAsICJ2YWx1ZSI6IDAuMzI0NjMzODM2NzQ2MjE1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTMyLjI4MDA1OSwgInN0ZXAiOiA0NzQwLCAidmFsdWUiOiAwLjIyODM3Mjg3MTg3NTc2Mjk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNDAuNDE5OTUxLCAic3RlcCI6IDQ3NTAsICJ2YWx1ZSI6IDAuMTkzODc1MzcyNDA5ODIwNTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjE0OS4wODY1Mzg2LCAic3RlcCI6IDQ3NjAsICJ2YWx1ZSI6IDAuMjEzOTU1NTA2NjgyMzk1OTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjE1Ny40MTExNDg1LCAic3RlcCI6IDQ3NzAsICJ2YWx1ZSI6IDAuMjM5Nzk2MTc2NTUyNzcyNTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjE2NS40ODg3MjEsICJzdGVwIjogNDc4MCwgInZhbHVlIjogMC4yNzE1MzkwMDI2NTY5MzY2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTc5LjY0ODAzODksICJzdGVwIjogNDc5MCwgInZhbHVlIjogMC4yNTg2OTUwOTU3Nzc1MTE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxODguMzI5MDcxOCwgInN0ZXAiOiA0ODAwLCAidmFsdWUiOiAwLjE5NDE5NzkwODA0Mzg2MTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjE5Ni44NDYzMzgsICJzdGVwIjogNDgxMCwgInZhbHVlIjogMC4yNTk5Mzk5MDg5ODEzMjMyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjA0LjU2MTYxNDUsICJzdGVwIjogNDgyMCwgInZhbHVlIjogMC4yMDM2MDc5MTY4MzE5NzAyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjEzLjA5OTAyMjQsICJzdGVwIjogNDgzMCwgInZhbHVlIjogMC4zNjEwNDc1NjU5MzcwNDIyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjIxLjY2NjQwNTIsICJzdGVwIjogNDg0MCwgInZhbHVlIjogMC4yNjQ1MDYyNTA2MTk4ODgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMjkuODkzMzQ3NywgInN0ZXAiOiA0ODUwLCAidmFsdWUiOiAwLjIwMzg4OTY4Mjg4ODk4NDY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMzguMDU1NTc4LCAic3RlcCI6IDQ4NjAsICJ2YWx1ZSI6IDAuMjQyODYxMDQ3Mzg3MTIzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjQ2LjM0Mjk2NzcsICJzdGVwIjogNDg3MCwgInZhbHVlIjogMC4yMDA4MDc2NzU3MTkyNjExN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjYxLjI2Njc0NjMsICJzdGVwIjogNDg4MCwgInZhbHVlIjogMC4yMjk3MDY1NTU2MDQ5MzQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNjkuODUxOTI5MiwgInN0ZXAiOiA0ODkwLCAidmFsdWUiOiAwLjIyMTY1MDc3OTI0NzI4Mzk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNzguODc5NzQ2MiwgInN0ZXAiOiA0OTAwLCAidmFsdWUiOiAwLjI4NTQ3NjY4NDU3MDMxMjV9LCB7IndhbGxUaW1lIjogMTczMzA3MjI4Ny41MzM5NjEsICJzdGVwIjogNDkxMCwgInZhbHVlIjogMC4yMDE2Mjk3MTMxNzc2ODA5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjk1Ljk0NjY0MjQsICJzdGVwIjogNDkyMCwgInZhbHVlIjogMC4xNzc5NDE2Nzk5NTQ1Mjg4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMDQuMzU0ODgxNSwgInN0ZXAiOiA0OTMwLCAidmFsdWUiOiAwLjI2NTYxNjUzNjE0MDQ0MTl9LCB7IndhbGxUaW1lIjogMTczMzA3MjMxMy41MDkzNjUzLCAic3RlcCI6IDQ5NDAsICJ2YWx1ZSI6IDAuMjY0MDg2NzIzMzI3NjM2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzIxLjMyNDg2NzcsICJzdGVwIjogNDk1MCwgInZhbHVlIjogMC4xODg1ODU2OTg2MDQ1ODM3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzM3LjAyNDQ3NjgsICJzdGVwIjogNDk2MCwgInZhbHVlIjogMC4xNjQ5MTEwMDE5MjA3MDAwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzQ1LjUzMTE1NTgsICJzdGVwIjogNDk3MCwgInZhbHVlIjogMC4xNzc3Mjg0NDQzMzc4NDQ4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzUzLjQyOTM1NiwgInN0ZXAiOiA0OTgwLCAidmFsdWUiOiAwLjIyNTcyNjkzMjI4NzIxNjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjM2Mi40MTI4NDMsICJzdGVwIjogNDk5MCwgInZhbHVlIjogMC4yNDExNTUxNzczNTQ4MTI2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzcxLjc0NTU0LCAic3RlcCI6IDUwMDAsICJ2YWx1ZSI6IDAuMjI5NDgwNzg4MTExNjg2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzgwLjUyOTMxMDcsICJzdGVwIjogNTAxMCwgInZhbHVlIjogMC4yOTAwMjk4MjM3ODAwNTk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzODkuMDI2MDcyLCAic3RlcCI6IDUwMjAsICJ2YWx1ZSI6IDAuMzA0MzQ4NDY4NzgwNTE3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzk3Ljc4NTE5ODcsICJzdGVwIjogNTAzMCwgInZhbHVlIjogMC4xOTYyODgzMTc0NDE5NDAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MTEuMjk3OTQyLCAic3RlcCI6IDUwNDAsICJ2YWx1ZSI6IDAuMjIwMTU4Njk2MTc0NjIxNTh9LCB7IndhbGxUaW1lIjogMTczMzA3MjQxOS40NzM3MDM0LCAic3RlcCI6IDUwNTAsICJ2YWx1ZSI6IDAuMjA2OTUzODIzNTY2NDM2Nzd9LCB7IndhbGxUaW1lIjogMTczMzA3MjQyOC4zNzE4ODI0LCAic3RlcCI6IDUwNjAsICJ2YWx1ZSI6IDAuMjg3NzU4MDgyMTUxNDEyOTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQzNy4xMTYzODE2LCAic3RlcCI6IDUwNzAsICJ2YWx1ZSI6IDAuMjY2NjM5MDI0MDE5MjQxMzN9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ0Ni4xNzQ5MDM5LCAic3RlcCI6IDUwODAsICJ2YWx1ZSI6IDAuMjkwMjE5NjA0OTY5MDI0NjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ1NC40MjgyMTksICJzdGVwIjogNTA5MCwgInZhbHVlIjogMC4xOTg0NzM2MDI1MzMzNDA0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDYyLjQxMDE5ODIsICJzdGVwIjogNTEwMCwgInZhbHVlIjogMC4yNDk0Nzk2ODEyNTM0MzMyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDcxLjE0OTY0MjUsICJzdGVwIjogNTExMCwgInZhbHVlIjogMC4yMjA0OTc2OTc1OTE3ODE2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDc4Ljk0NjI0NjQsICJzdGVwIjogNTEyMCwgInZhbHVlIjogMC4zMDE3MDk3MTE1NTE2NjYyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDkxLjMyMTMwNzcsICJzdGVwIjogNTEzMCwgInZhbHVlIjogMC4zMjYwMDE2MTQzMzIxOTkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0OTkuMjU4Mzk5LCAic3RlcCI6IDUxNDAsICJ2YWx1ZSI6IDAuMTY4MzI5ODk0NTQyNjk0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTA3LjExMTc1NTgsICJzdGVwIjogNTE1MCwgInZhbHVlIjogMC4yMTg5OTQ4NTU4ODA3MzczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MTUuMzE2ODgxMiwgInN0ZXAiOiA1MTYwLCAidmFsdWUiOiAwLjYxNzMyMDcxNjM4MTA3M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTIzLjQ5OTkzNDQsICJzdGVwIjogNTE3MCwgInZhbHVlIjogMC4yNzQyMjkxMDkyODcyNjE5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTMxLjA4NjkxMzMsICJzdGVwIjogNTE4MCwgInZhbHVlIjogMC4xNzM4MDE2NDU2MzY1NTg1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTQwLjAyMTcxMTYsICJzdGVwIjogNTE5MCwgInZhbHVlIjogMC4yMzgzODA3NDUwNTMyOTEzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTQ4LjY1MTk1NTEsICJzdGVwIjogNTIwMCwgInZhbHVlIjogMC4yNjQ2MjE4NTM4Mjg0MzAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NjEuNDE1MDc0OCwgInN0ZXAiOiA1MjEwLCAidmFsdWUiOiAwLjIxMDEwOTE4OTE1MjcxNzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjU2OS44OTYxMjEzLCAic3RlcCI6IDUyMjAsICJ2YWx1ZSI6IDAuMjg5OTQzMzk3MDQ1MTM1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTc4LjY3ODc1NDYsICJzdGVwIjogNTIzMCwgInZhbHVlIjogMC4yNjc0MDU1Mzk3NTEwNTI4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTg2Ljk0MjAzNzYsICJzdGVwIjogNTI0MCwgInZhbHVlIjogMC4yNzI5Mjc5Mzk4OTE4MTUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1OTUuMDM0MDAzNSwgInN0ZXAiOiA1MjUwLCAidmFsdWUiOiAwLjMzNTc2MDg2MTYzNTIwODEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MDMuMTczMDg3LCAic3RlcCI6IDUyNjAsICJ2YWx1ZSI6IDAuMjQ2OTE4MTEyMDM5NTY2MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjYxMS4wNzk3MTQ4LCAic3RlcCI6IDUyNzAsICJ2YWx1ZSI6IDAuMjc3Mzk2MjYxNjkyMDQ3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjE5Ljk1NDg0MTksICJzdGVwIjogNTI4MCwgInZhbHVlIjogMC4yNDM3MDI4ODg0ODg3Njk1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjI4LjYzNDI1OCwgInN0ZXAiOiA1MjkwLCAidmFsdWUiOiAwLjIzOTY2MDEyODk1MTA3Mjd9LCB7IndhbGxUaW1lIjogMTczMzA3MjY0MS4zNzUxNzY0LCAic3RlcCI6IDUzMDAsICJ2YWx1ZSI6IDAuMjI1ODIxNTA5OTU3MzEzNTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjY0OS44NTc4MDIyLCAic3RlcCI6IDUzMTAsICJ2YWx1ZSI6IDAuMTY2NTE5NTIyNjY2OTMxMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjY1Ny45NzA5NjY2LCAic3RlcCI6IDUzMjAsICJ2YWx1ZSI6IDAuMTgzMTI1MjcyMzkzMjI2NjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjY2Ny4wMjkxNzIyLCAic3RlcCI6IDUzMzAsICJ2YWx1ZSI6IDAuMjk1OTAwMDE3MDIzMDg2NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjY3NS45NDI2OTE4LCAic3RlcCI6IDUzNDAsICJ2YWx1ZSI6IDAuMjQwNDA0Nzg0Njc5NDEyODR9LCB7IndhbGxUaW1lIjogMTczMzA3MjY4NC4yMzgwOTA4LCAic3RlcCI6IDUzNTAsICJ2YWx1ZSI6IDAuMzcxMjc4NDA1MTg5NTE0MTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjY5MS44NTc4MjA3LCAic3RlcCI6IDUzNjAsICJ2YWx1ZSI6IDAuMjQ5MTI5ODQ2NjkyMDg1Mjd9LCB7IndhbGxUaW1lIjogMTczMzA3MjcwMC4xNDc2NjYyLCAic3RlcCI6IDUzNzAsICJ2YWx1ZSI6IDAuMTg2NTU5NTQzMDEzNTcyN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzEzLjE4MjcxMTgsICJzdGVwIjogNTM4MCwgInZhbHVlIjogMC4xODkwMDA1MTcxMjk4OTgwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzIxLjAyNDM3NTQsICJzdGVwIjogNTM5MCwgInZhbHVlIjogMC4xNjU4NTI1MzE3OTA3MzMzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzI5Ljg3NjYwNiwgInN0ZXAiOiA1NDAwLCAidmFsdWUiOiAwLjIyNTkxNTQ2MTc3ODY0MDc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MzguMzY5MzMzNywgInN0ZXAiOiA1NDEwLCAidmFsdWUiOiAwLjE3OTI4NDIyOTg3NDYxMDl9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc0Ni4zODIzMTA5LCAic3RlcCI6IDU0MjAsICJ2YWx1ZSI6IDAuMjUwMDUyMDA1MDUyNTY2NTN9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc1NC42MTczMjk0LCAic3RlcCI6IDU0MzAsICJ2YWx1ZSI6IDAuMzE0MTA1NzQ5MTMwMjQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3NjIuNTQ2NzI4MSwgInN0ZXAiOiA1NDQwLCAidmFsdWUiOiAwLjE4Nzc2ODc3MjI0NDQ1MzQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3NzEuMzYwMjkwOCwgInN0ZXAiOiA1NDUwLCAidmFsdWUiOiAwLjI0Mzg3NTcxMjE1NjI5NTc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3ODcuMTUxMzc0MywgInN0ZXAiOiA1NDYwLCAidmFsdWUiOiAwLjE3OTQxMzI3MzkzMDU0OTYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3OTUuODAyMzA2NCwgInN0ZXAiOiA1NDcwLCAidmFsdWUiOiAwLjI1MDczMTQ2ODIwMDY4MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjgwNC4yNDE2NzEsICJzdGVwIjogNTQ4MCwgInZhbHVlIjogMC4xNjc2NjEyOTQzNDEwODczNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODEyLjM3Mjc0ODEsICJzdGVwIjogNTQ5MCwgInZhbHVlIjogMC4yNjQ1NjY2MDAzMjI3MjM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MjEuMTU4ODc3NCwgInN0ZXAiOiA1NTAwLCAidmFsdWUiOiAwLjI3NTE5OTgzMDUzMjA3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODMwLjAyMjI3NjksICJzdGVwIjogNTUxMCwgInZhbHVlIjogMC4yOTQ4ODc2OTE3MzYyMjEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MzguNjk0NzY4MiwgInN0ZXAiOiA1NTIwLCAidmFsdWUiOiAwLjIwNzkzNzc5MTk0MzU1MDF9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg0Ni45MDQ2MDYsICJzdGVwIjogNTUzMCwgInZhbHVlIjogMC4xNjk5NzY1MDI2NTY5MzY2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODU1LjI0NjAxOTYsICJzdGVwIjogNTU0MCwgInZhbHVlIjogMC4xOTc3MzQyNjY1MTk1NDY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NzAuNjQ0MDc2LCAic3RlcCI6IDU1NTAsICJ2YWx1ZSI6IDAuMjgzNTAxODAzODc0OTY5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODc4LjcyOTAwODQsICJzdGVwIjogNTU2MCwgInZhbHVlIjogMC4yNzU0MTYwNzYxODMzMTkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4ODYuNjEwMzI3LCAic3RlcCI6IDU1NzAsICJ2YWx1ZSI6IDAuMjMzNDI1NTEyOTA5ODg5MjJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg5NS4wMjA0NjU2LCAic3RlcCI6IDU1ODAsICJ2YWx1ZSI6IDAuODU1NjY1MjA2OTA5MTc5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTAzLjQwMjM3NDcsICJzdGVwIjogNTU5MCwgInZhbHVlIjogMC4yMDg3NTI0Mzg0MjYwMTc3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTExLjIwOTQxNTIsICJzdGVwIjogNTYwMCwgInZhbHVlIjogMC4zMDg2NTA1NTMyMjY0NzA5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTE5LjgzOTM2MzYsICJzdGVwIjogNTYxMCwgInZhbHVlIjogMC4yNTk0OTcwNDY0NzA2NDIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MjguNzMyNDM1LCAic3RlcCI6IDU2MjAsICJ2YWx1ZSI6IDAuMzY5MTA4OTE1MzI4OTc5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTQxLjcwMzExNSwgInN0ZXAiOiA1NjMwLCAidmFsdWUiOiAwLjIwMzYxNDUwMzE0NTIxNzl9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk0OS45Nzk1MjUzLCAic3RlcCI6IDU2NDAsICJ2YWx1ZSI6IDAuMjM0MDU2ODAwNjAzODY2NTh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk1OC43MTkxNDksICJzdGVwIjogNTY1MCwgInZhbHVlIjogMC4zMjUyNDI1NDkxODA5ODQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NjYuODEzOTQ5LCAic3RlcCI6IDU2NjAsICJ2YWx1ZSI6IDAuMjAyOTY3MTY2OTAwNjM0Nzd9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk3NC45NjEzNTQ3LCAic3RlcCI6IDU2NzAsICJ2YWx1ZSI6IDAuMTg1NTM4NTQ1MjUwODkyNjR9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk4My41NjEzODE4LCAic3RlcCI6IDU2ODAsICJ2YWx1ZSI6IDAuMjMwNzkxOTQxMjg1MTMzMzZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk5Mi4yMjc3ODk0LCAic3RlcCI6IDU2OTAsICJ2YWx1ZSI6IDAuMjUxMDUxOTAyNzcwOTk2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDAwLjgxNjU1NjIsICJzdGVwIjogNTcwMCwgInZhbHVlIjogMC4xOTgzMDM5Mzc5MTE5ODczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMDkuNzgyNzAzLCAic3RlcCI6IDU3MTAsICJ2YWx1ZSI6IDAuMjQwMjUxODgzODY0NDAyNzd9LCB7IndhbGxUaW1lIjogMTczMzA3MzAyMi44Njc2MTQ3LCAic3RlcCI6IDU3MjAsICJ2YWx1ZSI6IDAuMzY1OTE0NTgzMjA2MTc2NzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzAzMS41MzM3NDQ2LCAic3RlcCI6IDU3MzAsICJ2YWx1ZSI6IDAuMjg5Mzk3MzU4ODk0MzQ4MTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzAzOS41NzAxNzg3LCAic3RlcCI6IDU3NDAsICJ2YWx1ZSI6IDAuMjQ0Mzc1NDgyMjAxNTc2MjN9LCB7IndhbGxUaW1lIjogMTczMzA3MzA0Ny44NDIzNTYsICJzdGVwIjogNTc1MCwgInZhbHVlIjogMC4yMzgwMDQ2MDk5NDI0MzYyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDU2LjE1NTk5NzMsICJzdGVwIjogNTc2MCwgInZhbHVlIjogMC4xODQxODA1MTMwMjQzMzAxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDY0Ljk1NDU2MSwgInN0ZXAiOiA1NzcwLCAidmFsdWUiOiAwLjMzOTg2NzIzNDIzMDA0MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzA3My44MzcxMzMyLCAic3RlcCI6IDU3ODAsICJ2YWx1ZSI6IDAuMjIyNDc3Mzc2NDYxMDI5MDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzA4Mi43MjQ1NDU1LCAic3RlcCI6IDU3OTAsICJ2YWx1ZSI6IDAuMzE3NjM5NDcwMTAwNDAyODN9LCB7IndhbGxUaW1lIjogMTczMzA3MzA5NS4xMDI0MywgInN0ZXAiOiA1ODAwLCAidmFsdWUiOiAwLjIxODE4ODAwMjcwNTU3NDA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMDMuMzE1MjQ1MiwgInN0ZXAiOiA1ODEwLCAidmFsdWUiOiAwLjI0NTk3MTI2MjQ1NDk4NjU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMTEuOTcwMTQ0MywgInN0ZXAiOiA1ODIwLCAidmFsdWUiOiAwLjE2MjcwMTI0OTEyMjYxOTYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMjAuMzU1Mzk3NywgInN0ZXAiOiA1ODMwLCAidmFsdWUiOiAwLjMwNTYxMDEyMDI5NjQ3ODI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMjguMjA4NzI0MywgInN0ZXAiOiA1ODQwLCAidmFsdWUiOiAwLjIwMTE0MTcxNTA0OTc0MzY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMzYuNzE1MjEyNiwgInN0ZXAiOiA1ODUwLCAidmFsdWUiOiAwLjE2ODA0MzQ2NDQyMjIyNTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNDQuOTI3MzQ1OCwgInN0ZXAiOiA1ODYwLCAidmFsdWUiOiAwLjI1MTE4ODUxNjYxNjgyMTN9LCB7IndhbGxUaW1lIjogMTczMzA3MzE1My4wNDA1OTk4LCAic3RlcCI6IDU4NzAsICJ2YWx1ZSI6IDAuMTU2NjQwNjQ4ODQxODU3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTY2LjAwMjU1MzcsICJzdGVwIjogNTg4MCwgInZhbHVlIjogMC4xOTA5NzM0MTU5NzA4MDIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNzQuNjU4NTMwNywgInN0ZXAiOiA1ODkwLCAidmFsdWUiOiAwLjE1NTA3MDQ1Mzg4MjIxNzR9LCB7IndhbGxUaW1lIjogMTczMzA3MzE4Mi41MDc4NTQ3LCAic3RlcCI6IDU5MDAsICJ2YWx1ZSI6IDAuMjI3MTQ4ODE1OTg5NDk0MzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzE5MS41NTkxMDc4LCAic3RlcCI6IDU5MTAsICJ2YWx1ZSI6IDAuMTg2MTMyNzczNzU2OTgwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTk5LjQxMDczNTYsICJzdGVwIjogNTkyMCwgInZhbHVlIjogMC4xMDQwMTkwMDExMjYyODkzN30sIHsid2FsbFRpbWUiOiAxNzMzMDczMjA3LjQ2NTExNTgsICJzdGVwIjogNTkzMCwgInZhbHVlIjogMC4yMzM0NTY2NzEyMzc5NDU1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjE1LjYwMjQzOSwgInN0ZXAiOiA1OTQwLCAidmFsdWUiOiAwLjIwODIyMTgzNzg3ODIyNzIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMjQuMzU3NzQyOCwgInN0ZXAiOiA1OTUwLCAidmFsdWUiOiAwLjIwMTkwNTEwMTUzNzcwNDQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMzIuODc2NTc0LCAic3RlcCI6IDU5NjAsICJ2YWx1ZSI6IDAuMjgxOTM4NzMxNjcwMzc5NjR9LCB7IndhbGxUaW1lIjogMTczMzA3MzI0NS4zNzMzODY0LCAic3RlcCI6IDU5NzAsICJ2YWx1ZSI6IDAuMTk5MDc5MDM2NzEyNjQ2NDh9LCB7IndhbGxUaW1lIjogMTczMzA3MzI1My4xNzkyMDI4LCAic3RlcCI6IDU5ODAsICJ2YWx1ZSI6IDAuMjQ1OTY2OTExMzE1OTE3OTd9LCB7IndhbGxUaW1lIjogMTczMzA3MzI2MS43OTkyMjc3LCAic3RlcCI6IDU5OTAsICJ2YWx1ZSI6IDAuMjIwOTg4NjkwODUzMTE4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjcwLjA1OTUxNiwgInN0ZXAiOiA2MDAwLCAidmFsdWUiOiAwLjIxNjQxNTIyNjQ1OTUwMzE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNzguODk1Mzk0LCAic3RlcCI6IDYwMTAsICJ2YWx1ZSI6IDAuMzYyODA1ODQzMzUzMjcxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjg3LjY4MTg5NCwgInN0ZXAiOiA2MDIwLCAidmFsdWUiOiAwLjI1MDI4NDEzNTM0MTY0NDN9LCB7IndhbGxUaW1lIjogMTczMzA3MzI5Ny4yNzQyMjg2LCAic3RlcCI6IDYwMzAsICJ2YWx1ZSI6IDAuMzg5NTI3MzUwNjY0MTM4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzA1LjkxODA3MjIsICJzdGVwIjogNjA0MCwgInZhbHVlIjogMC4yOTczNjY0MTA0OTM4NTA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzMjIuMzU0NDY5LCAic3RlcCI6IDYwNTAsICJ2YWx1ZSI6IDAuMjE1ODgwMjAwMjY2ODM4MDd9LCB7IndhbGxUaW1lIjogMTczMzA3MzMzMS45NzcwODY4LCAic3RlcCI6IDYwNjAsICJ2YWx1ZSI6IDAuMTYwMDM5MzA1Njg2OTUwNjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzM0MC41MjE5NTQzLCAic3RlcCI6IDYwNzAsICJ2YWx1ZSI6IDAuMTg4MzI3Nzg5MzA2NjQwNjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzM0OS42MDE4MDgsICJzdGVwIjogNjA4MCwgInZhbHVlIjogMC4yOTk4ODY1ODQyODE5MjE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNTkuMDcxMDIwMSwgInN0ZXAiOiA2MDkwLCAidmFsdWUiOiAwLjE4Njk3NDI1NzIzMDc1ODY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNjguNDAyNzQzLCAic3RlcCI6IDYxMDAsICJ2YWx1ZSI6IDAuMjMwMjQ4NDA2NTI5NDI2NTd9LCB7IndhbGxUaW1lIjogMTczMzA3MzM3Ny42NzQ4MDc4LCAic3RlcCI6IDYxMTAsICJ2YWx1ZSI6IDAuMjQzMzY5NzEzNDI1NjM2M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMzg2LjQwMDE3MywgInN0ZXAiOiA2MTIwLCAidmFsdWUiOiAwLjE2MzczMTIwMjQ4MzE3NzE5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzOTUuNDUxMzA1MiwgInN0ZXAiOiA2MTMwLCAidmFsdWUiOiAwLjIyODMwNzEyNzk1MjU3NTY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MDguMTUxMDc1NCwgInN0ZXAiOiA2MTQwLCAidmFsdWUiOiAwLjE1MzMyNTkzMDIzNzc3MDA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MTcuMzIzNDk0NCwgInN0ZXAiOiA2MTUwLCAidmFsdWUiOiAwLjE4OTY0NjkxNDYwMTMyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDI2LjI1NjIzNjMsICJzdGVwIjogNjE2MCwgInZhbHVlIjogMC4xOTMyNDcyMTM5NTk2OTM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MzQuODA5MDkyMywgInN0ZXAiOiA2MTcwLCAidmFsdWUiOiAwLjE2ODEyNjQwNDI4NTQzMDl9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ0NC41MTI0NTYyLCAic3RlcCI6IDYxODAsICJ2YWx1ZSI6IDAuMjA3MjY4Mjk3NjcyMjcxNzN9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ1My4xMTU5NDc3LCAic3RlcCI6IDYxOTAsICJ2YWx1ZSI6IDAuMjQyMDk4MzMxNDUxNDE2MDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ2Mi41NjUzNDkzLCAic3RlcCI6IDYyMDAsICJ2YWx1ZSI6IDAuMTYxODg4MzYwOTc3MTcyODV9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ3Mi4wMjQxOTc4LCAic3RlcCI6IDYyMTAsICJ2YWx1ZSI6IDAuMjMzNTk4NzY4NzExMDkwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDg0LjQ0ODAyNjIsICJzdGVwIjogNjIyMCwgInZhbHVlIjogMC4xOTk0ODc0Nzc1NDA5Njk4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDkzLjY1OTY4NDIsICJzdGVwIjogNjIzMCwgInZhbHVlIjogMC4xOTMyODYyMjUxOTk2OTk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MDIuNDQwOTQ4NywgInN0ZXAiOiA2MjQwLCAidmFsdWUiOiAwLjIxMzU0NDc0MTI3MjkyNjMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MTEuMjU1ODI0NiwgInN0ZXAiOiA2MjUwLCAidmFsdWUiOiAwLjIzNjc0OTkzMjE2OTkxNDI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MjAuNDg0NjkzOCwgInN0ZXAiOiA2MjYwLCAidmFsdWUiOiAwLjE4NzAxNjA1NDk4NzkwNzR9LCB7IndhbGxUaW1lIjogMTczMzA3MzUyOS43ODExNDUzLCAic3RlcCI6IDYyNzAsICJ2YWx1ZSI6IDAuMjc5OTI3MjUzNzIzMTQ0NTN9LCB7IndhbGxUaW1lIjogMTczMzA3MzUzOS42Mzg4NzEsICJzdGVwIjogNjI4MCwgInZhbHVlIjogMC4yMzI4MDM0MzQxMzM1Mjk2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTQ4LjkxMDY4OCwgInN0ZXAiOiA2MjkwLCAidmFsdWUiOiAwLjIwMjU0MzE2OTI2MDAyNTAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NjAuNjE5NDA4NiwgInN0ZXAiOiA2MzAwLCAidmFsdWUiOiAwLjI2NTU1NzE0MDExMTkyMzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzU3MC4wNjg3MDMsICJzdGVwIjogNjMxMCwgInZhbHVlIjogMC4xODg2MjM1NzczNTYzMzg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NzkuNDgwODIsICJzdGVwIjogNjMyMCwgInZhbHVlIjogMC4yNDY2MjY3MTk4MzI0MjAzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTg3LjY2Njk1MSwgInN0ZXAiOiA2MzMwLCAidmFsdWUiOiAwLjE5MjM5NTA5MTA1NjgyMzczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1OTcuMjE3NjMyLCAic3RlcCI6IDYzNDAsICJ2YWx1ZSI6IDAuMjA0MTAxMTMwMzY2MzI1Mzh9LCB7IndhbGxUaW1lIjogMTczMzA3MzYwNi4yMzc4MjcsICJzdGVwIjogNjM1MCwgInZhbHVlIjogMC4xOTYxNTEzNjA4Njk0MDc2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjE1LjA3NzI2OTYsICJzdGVwIjogNjM2MCwgInZhbHVlIjogMC4yOTM2NDcxNzAwNjY4MzM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MjQuODM0MTk3NSwgInN0ZXAiOiA2MzcwLCAidmFsdWUiOiAwLjI1MTcxOTg2MjIyMjY3MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzYzNC42NzIyMzMsICJzdGVwIjogNjM4MCwgInZhbHVlIjogMC4yMzU0NzkzMTAxNTQ5MTQ4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjQ2LjUyNzkwNTUsICJzdGVwIjogNjM5MCwgInZhbHVlIjogMC4yMDEzMzY2MjIyMzgxNTkxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjU1Ljc0NTE0MjUsICJzdGVwIjogNjQwMCwgInZhbHVlIjogMC4yMzY0NTI3ODgxMTQ1NDc3M30sIHsid2FsbFRpbWUiOiAxNzMzMDczNjY1LjYwNjgzNiwgInN0ZXAiOiA2NDEwLCAidmFsdWUiOiAwLjIyNTYxNzk0NTE5NDI0NDM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NzQuNjQyNDQ4NCwgInN0ZXAiOiA2NDIwLCAidmFsdWUiOiAwLjI4MzUxNDk0NjY5OTE0MjQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2ODMuNjcwMDI3NywgInN0ZXAiOiA2NDMwLCAidmFsdWUiOiAwLjE2ODgyODQ1NzU5MzkxNzg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2OTIuODc2NDcwNiwgInN0ZXAiOiA2NDQwLCAidmFsdWUiOiAwLjI1NTg3MzI2Mjg4MjIzMjY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MDIuNTE4ODMzOSwgInN0ZXAiOiA2NDUwLCAidmFsdWUiOiAwLjE3Mzk4NTM5MTg1NTIzOTg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MTIuNjI3MDM3MywgInN0ZXAiOiA2NDYwLCAidmFsdWUiOiAwLjI1Mjg4MjMwMTgwNzQwMzU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MjQuMDQ3MDAxLCAic3RlcCI6IDY0NzAsICJ2YWx1ZSI6IDAuMzE4MzM3OTc2OTMyNTI1NjN9LCB7IndhbGxUaW1lIjogMTczMzA3MzczMi44MjgxMjA1LCAic3RlcCI6IDY0ODAsICJ2YWx1ZSI6IDAuMjM0MjEyODAwODYwNDA0OTd9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc0MS45NTY5NzE0LCAic3RlcCI6IDY0OTAsICJ2YWx1ZSI6IDAuMjEwMjA4MTc3NTY2NTI4MzJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc1MC43MTczNzg5LCAic3RlcCI6IDY1MDAsICJ2YWx1ZSI6IDAuMjM3NDY3MDUwNTUyMzY4MTZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc2MC40ODc4MTc1LCAic3RlcCI6IDY1MTAsICJ2YWx1ZSI6IDAuMTUzMjAxNTA1NTQxODAxNDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc2OS44NjMwMzYsICJzdGVwIjogNjUyMCwgInZhbHVlIjogMC4xNzM3MjY2Nzc4OTQ1OTIyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzc5LjEyNjc2NDUsICJzdGVwIjogNjUzMCwgInZhbHVlIjogMC4xOTg4NTQ5MzgxNDk0NTIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3ODkuNDc3NDAxLCAic3RlcCI6IDY1NDAsICJ2YWx1ZSI6IDAuMzA5MzE5ODUzNzgyNjUzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzk4LjEwMzA1MSwgInN0ZXAiOiA2NTUwLCAidmFsdWUiOiAwLjMzNDQ4MTkyNDc3MjI2MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzgxMC41NTI1NzEzLCAic3RlcCI6IDY1NjAsICJ2YWx1ZSI6IDAuMjI2OTM0OTI0NzIxNzE3ODN9LCB7IndhbGxUaW1lIjogMTczMzA3MzgyMC4wMzYwODYzLCAic3RlcCI6IDY1NzAsICJ2YWx1ZSI6IDAuMjAzMTkzODEzNTYyMzkzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDczODI4LjIzODMwOSwgInN0ZXAiOiA2NTgwLCAidmFsdWUiOiAwLjI2MzQ0MjQyNjkxOTkzNzEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MzYuNzk3OTEzOCwgInN0ZXAiOiA2NTkwLCAidmFsdWUiOiAwLjE3NDQwNTcwODkwOTAzNDczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NDUuOTg3MjM3LCAic3RlcCI6IDY2MDAsICJ2YWx1ZSI6IDAuMjE3MTk1OTcyODAwMjU0ODJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg1NS4yNTE4ODM3LCAic3RlcCI6IDY2MTAsICJ2YWx1ZSI6IDAuMjA0Njg0MDc4NjkzMzg5OX0sIHsid2FsbFRpbWUiOiAxNzMzMDczODY0LjY5MzQ2NDgsICJzdGVwIjogNjYyMCwgInZhbHVlIjogMC4xOTA0MjM3MTIxMzQzNjEyN30sIHsid2FsbFRpbWUiOiAxNzMzMDczODczLjgzNDM4NzMsICJzdGVwIjogNjYzMCwgInZhbHVlIjogMC4yMTIzNzQzNDQ0NjgxMTY3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczODg3LjUyNDM5NSwgInN0ZXAiOiA2NjQwLCAidmFsdWUiOiAwLjI1NTg4NDM3OTE0ODQ4MzN9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg5Ny4zMzM5Mzk4LCAic3RlcCI6IDY2NTAsICJ2YWx1ZSI6IDAuMjI2MzczOTcwNTA4NTc1NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MzkwNi44NzY1Nzk1LCAic3RlcCI6IDY2NjAsICJ2YWx1ZSI6IDAuMjIyNzQwMzgxOTU2MTAwNDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzkxNi4zNTAwNzQzLCAic3RlcCI6IDY2NzAsICJ2YWx1ZSI6IDAuMjU1NzAzOTg1NjkxMDcwNTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzkyNS42MTg2Nzk4LCAic3RlcCI6IDY2ODAsICJ2YWx1ZSI6IDAuMTg4MDk5Mjc5OTk5NzMyOTd9LCB7IndhbGxUaW1lIjogMTczMzA3MzkzNC45MTY2Njc1LCAic3RlcCI6IDY2OTAsICJ2YWx1ZSI6IDAuMTc2NDMzOTIwODYwMjkwNTN9LCB7IndhbGxUaW1lIjogMTczMzA3Mzk0My43NDIyMTkyLCAic3RlcCI6IDY3MDAsICJ2YWx1ZSI6IDAuMTY1MDE1MTAxNDMyODAwM30sIHsid2FsbFRpbWUiOiAxNzMzMDczOTUyLjQ3NzAwMzgsICJzdGVwIjogNjcxMCwgInZhbHVlIjogMC4yMzEyMDIxMTA2NDgxNTUyfV19fV0=", + "ok": true, + "headers": [ + [ + "content-length", + "15054" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/chart_worker.js?_file_hash=2c1e71c5": { + "data": "KCgpPT57dmFyIEgwPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxWMD1PYmplY3QuZGVmaW5lUHJvcGVydGllczt2YXIgRzA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7dmFyIGFmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIFcwPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkscTA9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgY2Y9TWF0aC5wb3csbGY9KG4sdCxlKT0+dCBpbiBuP0gwKG4sdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZX0pOm5bdF09ZSxObz0obix0KT0+e2Zvcih2YXIgZSBpbiB0fHwodD17fSkpVzAuY2FsbCh0LGUpJiZsZihuLGUsdFtlXSk7aWYoYWYpZm9yKHZhciBlIG9mIGFmKHQpKXEwLmNhbGwodCxlKSYmbGYobixlLHRbZV0pO3JldHVybiBufSx1Zj0obix0KT0+VjAobixHMCh0KSk7dmFyIGhmPShuLHQsZSk9Pm5ldyBQcm9taXNlKChpLHIpPT57dmFyIHM9bD0+e3RyeXthKGUubmV4dChsKSl9Y2F0Y2goYyl7cihjKX19LG89bD0+e3RyeXthKGUudGhyb3cobCkpfWNhdGNoKGMpe3IoYyl9fSxhPWw9PmwuZG9uZT9pKGwudmFsdWUpOlByb21pc2UucmVzb2x2ZShsLnZhbHVlKS50aGVuKHMsbyk7YSgoZT1lLmFwcGx5KG4sdCkpLm5leHQoKSl9KTt2YXIgb247KGZ1bmN0aW9uKG4pe25bbi5MSU5FQVI9MF09IkxJTkVBUiIsbltuLkxPRzEwPTFdPSJMT0cxMCIsbltuLlRJTUU9Ml09IlRJTUUifSkob258fChvbj17fSkpO2Z1bmN0aW9uIGFuKG4sdCl7cmV0dXJuIG48dD8tMTpuPnQ/MTpuPj10PzA6TmFOfWZ1bmN0aW9uIGlzKG4pe3JldHVybiBuLmxlbmd0aD09PTEmJihuPVgwKG4pKSx7bGVmdDpmdW5jdGlvbih0LGUsaSxyKXtmb3IoaT09bnVsbCYmKGk9MCkscj09bnVsbCYmKHI9dC5sZW5ndGgpO2k8cjspe3ZhciBzPWkrcj4+PjE7bih0W3NdLGUpPDA/aT1zKzE6cj1zfXJldHVybiBpfSxyaWdodDpmdW5jdGlvbih0LGUsaSxyKXtmb3IoaT09bnVsbCYmKGk9MCkscj09bnVsbCYmKHI9dC5sZW5ndGgpO2k8cjspe3ZhciBzPWkrcj4+PjE7bih0W3NdLGUpPjA/cj1zOmk9cysxfXJldHVybiBpfX19ZnVuY3Rpb24gWDAobil7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFuKG4odCksZSl9fXZhciBmZj1pcyhhbiksZGY9ZmYucmlnaHQsWTA9ZmYubGVmdCxCbj1kZjt2YXIgcGY9QXJyYXkucHJvdG90eXBlLEowPXBmLnNsaWNlLCQwPXBmLm1hcDt2YXIga2w9TWF0aC5zcXJ0KDUwKSxIbD1NYXRoLnNxcnQoMTApLFZsPU1hdGguc3FydCgyKTtmdW5jdGlvbiBycyhuLHQsZSl7dmFyIGkscj0tMSxzLG8sYTtpZih0PSt0LG49K24sZT0rZSxuPT09dCYmZT4wKXJldHVybltuXTtpZigoaT10PG4pJiYocz1uLG49dCx0PXMpLChhPUppKG4sdCxlKSk9PT0wfHwhaXNGaW5pdGUoYSkpcmV0dXJuW107aWYoYT4wKWZvcihuPU1hdGguY2VpbChuL2EpLHQ9TWF0aC5mbG9vcih0L2EpLG89bmV3IEFycmF5KHM9TWF0aC5jZWlsKHQtbisxKSk7KytyPHM7KW9bcl09KG4rcikqYTtlbHNlIGZvcihuPU1hdGguZmxvb3IobiphKSx0PU1hdGguY2VpbCh0KmEpLG89bmV3IEFycmF5KHM9TWF0aC5jZWlsKG4tdCsxKSk7KytyPHM7KW9bcl09KG4tcikvYTtyZXR1cm4gaSYmby5yZXZlcnNlKCksb31mdW5jdGlvbiBKaShuLHQsZSl7dmFyIGk9KHQtbikvTWF0aC5tYXgoMCxlKSxyPU1hdGguZmxvb3IoTWF0aC5sb2coaSkvTWF0aC5MTjEwKSxzPWkvTWF0aC5wb3coMTAscik7cmV0dXJuIHI+PTA/KHM+PWtsPzEwOnM+PUhsPzU6cz49Vmw/MjoxKSpNYXRoLnBvdygxMCxyKTotTWF0aC5wb3coMTAsLXIpLyhzPj1rbD8xMDpzPj1IbD81OnM+PVZsPzI6MSl9ZnVuY3Rpb24gX24obix0LGUpe3ZhciBpPU1hdGguYWJzKHQtbikvTWF0aC5tYXgoMCxlKSxyPU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2coaSkvTWF0aC5MTjEwKSkscz1pL3I7cmV0dXJuIHM+PWtsP3IqPTEwOnM+PUhsP3IqPTU6cz49VmwmJihyKj0yKSx0PG4/LXI6cn12YXIgZXg9QXJyYXkucHJvdG90eXBlLnNsaWNlO3ZhciBueD17dmFsdWU6ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiB5Zigpe2Zvcih2YXIgbj0wLHQ9YXJndW1lbnRzLmxlbmd0aCxlPXt9LGk7bjx0Oysrbil7aWYoIShpPWFyZ3VtZW50c1tuXSsiIil8fGkgaW4gZXx8L1tccy5dLy50ZXN0KGkpKXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCB0eXBlOiAiK2kpO2VbaV09W119cmV0dXJuIG5ldyB6byhlKX1mdW5jdGlvbiB6byhuKXt0aGlzLl89bn1mdW5jdGlvbiBpeChuLHQpe3JldHVybiBuLnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoZnVuY3Rpb24oZSl7dmFyIGk9IiIscj1lLmluZGV4T2YoIi4iKTtpZihyPj0wJiYoaT1lLnNsaWNlKHIrMSksZT1lLnNsaWNlKDAscikpLGUmJiF0Lmhhc093blByb3BlcnR5KGUpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK2UpO3JldHVybnt0eXBlOmUsbmFtZTppfX0pfXpvLnByb3RvdHlwZT15Zi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnpvLG9uOmZ1bmN0aW9uKG4sdCl7dmFyIGU9dGhpcy5fLGk9aXgobisiIixlKSxyLHM9LTEsbz1pLmxlbmd0aDtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcig7KytzPG87KWlmKChyPShuPWlbc10pLnR5cGUpJiYocj1yeChlW3JdLG4ubmFtZSkpKXJldHVybiByO3JldHVybn1pZih0IT1udWxsJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrdCk7Zm9yKDsrK3M8bzspaWYocj0obj1pW3NdKS50eXBlKWVbcl09eGYoZVtyXSxuLm5hbWUsdCk7ZWxzZSBpZih0PT1udWxsKWZvcihyIGluIGUpZVtyXT14ZihlW3JdLG4ubmFtZSxudWxsKTtyZXR1cm4gdGhpc30sY29weTpmdW5jdGlvbigpe3ZhciBuPXt9LHQ9dGhpcy5fO2Zvcih2YXIgZSBpbiB0KW5bZV09dFtlXS5zbGljZSgpO3JldHVybiBuZXcgem8obil9LGNhbGw6ZnVuY3Rpb24obix0KXtpZigocj1hcmd1bWVudHMubGVuZ3RoLTIpPjApZm9yKHZhciBlPW5ldyBBcnJheShyKSxpPTAscixzO2k8cjsrK2kpZVtpXT1hcmd1bWVudHNbaSsyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KG4pKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK24pO2ZvcihzPXRoaXMuX1tuXSxpPTAscj1zLmxlbmd0aDtpPHI7KytpKXNbaV0udmFsdWUuYXBwbHkodCxlKX0sYXBwbHk6ZnVuY3Rpb24obix0LGUpe2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkobikpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrbik7Zm9yKHZhciBpPXRoaXMuX1tuXSxyPTAscz1pLmxlbmd0aDtyPHM7KytyKWlbcl0udmFsdWUuYXBwbHkodCxlKX19O2Z1bmN0aW9uIHJ4KG4sdCl7Zm9yKHZhciBlPTAsaT1uLmxlbmd0aCxyO2U8aTsrK2UpaWYoKHI9bltlXSkubmFtZT09PXQpcmV0dXJuIHIudmFsdWV9ZnVuY3Rpb24geGYobix0LGUpe2Zvcih2YXIgaT0wLHI9bi5sZW5ndGg7aTxyOysraSlpZihuW2ldLm5hbWU9PT10KXtuW2ldPW54LG49bi5zbGljZSgwLGkpLmNvbmNhdChuLnNsaWNlKGkrMSkpO2JyZWFrfXJldHVybiBlIT1udWxsJiZuLnB1c2goe25hbWU6dCx2YWx1ZTplfSksbn12YXIgV2w9eWY7dmFyIFVvPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIixxbD17c3ZnOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIseGh0bWw6VW8seGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8ifTtmdW5jdGlvbiB3bihuKXt2YXIgdD1uKz0iIixlPXQuaW5kZXhPZigiOiIpO3JldHVybiBlPj0wJiYodD1uLnNsaWNlKDAsZSkpIT09InhtbG5zIiYmKG49bi5zbGljZShlKzEpKSxxbC5oYXNPd25Qcm9wZXJ0eSh0KT97c3BhY2U6cWxbdF0sbG9jYWw6bn06bn1mdW5jdGlvbiBzeChuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLm93bmVyRG9jdW1lbnQsZT10aGlzLm5hbWVzcGFjZVVSSTtyZXR1cm4gZT09PVVvJiZ0LmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkk9PT1Vbz90LmNyZWF0ZUVsZW1lbnQobik6dC5jcmVhdGVFbGVtZW50TlMoZSxuKX19ZnVuY3Rpb24gb3gobil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobi5zcGFjZSxuLmxvY2FsKX19ZnVuY3Rpb24gQm8obil7dmFyIHQ9d24obik7cmV0dXJuKHQubG9jYWw/b3g6c3gpKHQpfWZ1bmN0aW9uIGF4KCl7fWZ1bmN0aW9uIGRpKG4pe3JldHVybiBuPT1udWxsP2F4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvcihuKX19ZnVuY3Rpb24gdmYobil7dHlwZW9mIG4hPSJmdW5jdGlvbiImJihuPWRpKG4pKTtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9dC5sZW5ndGgsaT1uZXcgQXJyYXkoZSkscj0wO3I8ZTsrK3IpZm9yKHZhciBzPXRbcl0sbz1zLmxlbmd0aCxhPWlbcl09bmV3IEFycmF5KG8pLGwsYyx1PTA7dTxvOysrdSkobD1zW3VdKSYmKGM9bi5jYWxsKGwsbC5fX2RhdGFfXyx1LHMpKSYmKCJfX2RhdGFfXyJpbiBsJiYoYy5fX2RhdGFfXz1sLl9fZGF0YV9fKSxhW3VdPWMpO3JldHVybiBuZXcgY2UoaSx0aGlzLl9wYXJlbnRzKX1mdW5jdGlvbiBseCgpe3JldHVybltdfWZ1bmN0aW9uIG9zKG4pe3JldHVybiBuPT1udWxsP2x4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbChuKX19ZnVuY3Rpb24gX2Yobil7dHlwZW9mIG4hPSJmdW5jdGlvbiImJihuPW9zKG4pKTtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9dC5sZW5ndGgsaT1bXSxyPVtdLHM9MDtzPGU7KytzKWZvcih2YXIgbz10W3NdLGE9by5sZW5ndGgsbCxjPTA7YzxhOysrYykobD1vW2NdKSYmKGkucHVzaChuLmNhbGwobCxsLl9fZGF0YV9fLGMsbykpLHIucHVzaChsKSk7cmV0dXJuIG5ldyBjZShpLHIpfWZ1bmN0aW9uIGFzKG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdGNoZXMobil9fWZ1bmN0aW9uIHdmKG4pe3R5cGVvZiBuIT0iZnVuY3Rpb24iJiYobj1hcyhuKSk7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPXQubGVuZ3RoLGk9bmV3IEFycmF5KGUpLHI9MDtyPGU7KytyKWZvcih2YXIgcz10W3JdLG89cy5sZW5ndGgsYT1pW3JdPVtdLGwsYz0wO2M8bzsrK2MpKGw9c1tjXSkmJm4uY2FsbChsLGwuX19kYXRhX18sYyxzKSYmYS5wdXNoKGwpO3JldHVybiBuZXcgY2UoaSx0aGlzLl9wYXJlbnRzKX1mdW5jdGlvbiBPbyhuKXtyZXR1cm4gbmV3IEFycmF5KG4ubGVuZ3RoKX1mdW5jdGlvbiBNZigpe3JldHVybiBuZXcgY2UodGhpcy5fZW50ZXJ8fHRoaXMuX2dyb3Vwcy5tYXAoT28pLHRoaXMuX3BhcmVudHMpfWZ1bmN0aW9uIGxzKG4sdCl7dGhpcy5vd25lckRvY3VtZW50PW4ub3duZXJEb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSST1uLm5hbWVzcGFjZVVSSSx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcGFyZW50PW4sdGhpcy5fX2RhdGFfXz10fWxzLnByb3RvdHlwZT17Y29uc3RydWN0b3I6bHMsYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUobix0aGlzLl9uZXh0KX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUobix0KX0scXVlcnlTZWxlY3RvcjpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3Iobil9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKG4pfX07ZnVuY3Rpb24gYmYobil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG59fXZhciBTZj0iJCI7ZnVuY3Rpb24gY3gobix0LGUsaSxyLHMpe2Zvcih2YXIgbz0wLGEsbD10Lmxlbmd0aCxjPXMubGVuZ3RoO288YzsrK28pKGE9dFtvXSk/KGEuX19kYXRhX189c1tvXSxpW29dPWEpOmVbb109bmV3IGxzKG4sc1tvXSk7Zm9yKDtvPGw7KytvKShhPXRbb10pJiYocltvXT1hKX1mdW5jdGlvbiB1eChuLHQsZSxpLHIscyxvKXt2YXIgYSxsLGM9e30sdT10Lmxlbmd0aCxoPXMubGVuZ3RoLGY9bmV3IEFycmF5KHUpLGQ7Zm9yKGE9MDthPHU7KythKShsPXRbYV0pJiYoZlthXT1kPVNmK28uY2FsbChsLGwuX19kYXRhX18sYSx0KSxkIGluIGM/clthXT1sOmNbZF09bCk7Zm9yKGE9MDthPGg7KythKWQ9U2Yrby5jYWxsKG4sc1thXSxhLHMpLChsPWNbZF0pPyhpW2FdPWwsbC5fX2RhdGFfXz1zW2FdLGNbZF09bnVsbCk6ZVthXT1uZXcgbHMobixzW2FdKTtmb3IoYT0wO2E8dTsrK2EpKGw9dFthXSkmJmNbZlthXV09PT1sJiYoclthXT1sKX1mdW5jdGlvbiBFZihuLHQpe2lmKCFuKXJldHVybiBkPW5ldyBBcnJheSh0aGlzLnNpemUoKSksYz0tMSx0aGlzLmVhY2goZnVuY3Rpb24oTCl7ZFsrK2NdPUx9KSxkO3ZhciBlPXQ/dXg6Y3gsaT10aGlzLl9wYXJlbnRzLHI9dGhpcy5fZ3JvdXBzO3R5cGVvZiBuIT0iZnVuY3Rpb24iJiYobj1iZihuKSk7Zm9yKHZhciBzPXIubGVuZ3RoLG89bmV3IEFycmF5KHMpLGE9bmV3IEFycmF5KHMpLGw9bmV3IEFycmF5KHMpLGM9MDtjPHM7KytjKXt2YXIgdT1pW2NdLGg9cltjXSxmPWgubGVuZ3RoLGQ9bi5jYWxsKHUsdSYmdS5fX2RhdGFfXyxjLGkpLGc9ZC5sZW5ndGgseD1hW2NdPW5ldyBBcnJheShnKSx2PW9bY109bmV3IEFycmF5KGcpLG09bFtjXT1uZXcgQXJyYXkoZik7ZSh1LGgseCx2LG0sZCx0KTtmb3IodmFyIHA9MCxiPTAsXyxTO3A8ZzsrK3ApaWYoXz14W3BdKXtmb3IocD49YiYmKGI9cCsxKTshKFM9dltiXSkmJisrYjxnOyk7Xy5fbmV4dD1TfHxudWxsfX1yZXR1cm4gbz1uZXcgY2UobyxpKSxvLl9lbnRlcj1hLG8uX2V4aXQ9bCxvfWZ1bmN0aW9uIFRmKCl7cmV0dXJuIG5ldyBjZSh0aGlzLl9leGl0fHx0aGlzLl9ncm91cHMubWFwKE9vKSx0aGlzLl9wYXJlbnRzKX1mdW5jdGlvbiBBZihuLHQsZSl7dmFyIGk9dGhpcy5lbnRlcigpLHI9dGhpcyxzPXRoaXMuZXhpdCgpO3JldHVybiBpPXR5cGVvZiBuPT0iZnVuY3Rpb24iP24oaSk6aS5hcHBlbmQobisiIiksdCE9bnVsbCYmKHI9dChyKSksZT09bnVsbD9zLnJlbW92ZSgpOmUocyksaSYmcj9pLm1lcmdlKHIpLm9yZGVyKCk6cn1mdW5jdGlvbiBDZihuKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9bi5fZ3JvdXBzLGk9dC5sZW5ndGgscj1lLmxlbmd0aCxzPU1hdGgubWluKGksciksbz1uZXcgQXJyYXkoaSksYT0wO2E8czsrK2EpZm9yKHZhciBsPXRbYV0sYz1lW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxmLGQ9MDtkPHU7KytkKShmPWxbZF18fGNbZF0pJiYoaFtkXT1mKTtmb3IoO2E8aTsrK2Epb1thXT10W2FdO3JldHVybiBuZXcgY2Uobyx0aGlzLl9wYXJlbnRzKX1mdW5jdGlvbiBSZigpe2Zvcih2YXIgbj10aGlzLl9ncm91cHMsdD0tMSxlPW4ubGVuZ3RoOysrdDxlOylmb3IodmFyIGk9blt0XSxyPWkubGVuZ3RoLTEscz1pW3JdLG87LS1yPj0wOykobz1pW3JdKSYmKHMmJm8uY29tcGFyZURvY3VtZW50UG9zaXRpb24ocyleNCYmcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShvLHMpLHM9byk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gTGYobil7bnx8KG49aHgpO2Z1bmN0aW9uIHQoaCxmKXtyZXR1cm4gaCYmZj9uKGguX19kYXRhX18sZi5fX2RhdGFfXyk6IWgtIWZ9Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxpPWUubGVuZ3RoLHI9bmV3IEFycmF5KGkpLHM9MDtzPGk7KytzKXtmb3IodmFyIG89ZVtzXSxhPW8ubGVuZ3RoLGw9cltzXT1uZXcgQXJyYXkoYSksYyx1PTA7dTxhOysrdSkoYz1vW3VdKSYmKGxbdV09Yyk7bC5zb3J0KHQpfXJldHVybiBuZXcgY2Uocix0aGlzLl9wYXJlbnRzKS5vcmRlcigpfWZ1bmN0aW9uIGh4KG4sdCl7cmV0dXJuIG48dD8tMTpuPnQ/MTpuPj10PzA6TmFOfWZ1bmN0aW9uIFBmKCl7dmFyIG49YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyxuLmFwcGx5KG51bGwsYXJndW1lbnRzKSx0aGlzfWZ1bmN0aW9uIERmKCl7dmFyIG49bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSx0PS0xO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtuWysrdF09dGhpc30pLG59ZnVuY3Rpb24gSWYoKXtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLHQ9MCxlPW4ubGVuZ3RoO3Q8ZTsrK3QpZm9yKHZhciBpPW5bdF0scj0wLHM9aS5sZW5ndGg7cjxzOysrcil7dmFyIG89aVtyXTtpZihvKXJldHVybiBvfXJldHVybiBudWxsfWZ1bmN0aW9uIE5mKCl7dmFyIG49MDtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7KytufSksbn1mdW5jdGlvbiBGZigpe3JldHVybiF0aGlzLm5vZGUoKX1mdW5jdGlvbiB6ZihuKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9MCxpPXQubGVuZ3RoO2U8aTsrK2UpZm9yKHZhciByPXRbZV0scz0wLG89ci5sZW5ndGgsYTtzPG87KytzKShhPXJbc10pJiZuLmNhbGwoYSxhLl9fZGF0YV9fLHMscik7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gZngobil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUobil9fWZ1bmN0aW9uIGR4KG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKX19ZnVuY3Rpb24gcHgobix0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZShuLHQpfX1mdW5jdGlvbiBteChuLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsLHQpfX1mdW5jdGlvbiBneChuLHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO2U9PW51bGw/dGhpcy5yZW1vdmVBdHRyaWJ1dGUobik6dGhpcy5zZXRBdHRyaWJ1dGUobixlKX19ZnVuY3Rpb24geHgobix0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtlPT1udWxsP3RoaXMucmVtb3ZlQXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKTp0aGlzLnNldEF0dHJpYnV0ZU5TKG4uc3BhY2Usbi5sb2NhbCxlKX19ZnVuY3Rpb24gVWYobix0KXt2YXIgZT13bihuKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBpPXRoaXMubm9kZSgpO3JldHVybiBlLmxvY2FsP2kuZ2V0QXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsKTppLmdldEF0dHJpYnV0ZShlKX1yZXR1cm4gdGhpcy5lYWNoKCh0PT1udWxsP2UubG9jYWw/ZHg6Zng6dHlwZW9mIHQ9PSJmdW5jdGlvbiI/ZS5sb2NhbD94eDpneDplLmxvY2FsP214OnB4KShlLHQpKX1mdW5jdGlvbiBrbyhuKXtyZXR1cm4gbi5vd25lckRvY3VtZW50JiZuLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fG4uZG9jdW1lbnQmJm58fG4uZGVmYXVsdFZpZXd9ZnVuY3Rpb24geXgobil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShuKX19ZnVuY3Rpb24gdngobix0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkobix0LGUpfX1mdW5jdGlvbiBfeChuLHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aT09bnVsbD90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KG4pOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkobixpLGUpfX1mdW5jdGlvbiBCZihuLHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKHQ9PW51bGw/eXg6dHlwZW9mIHQ9PSJmdW5jdGlvbiI/X3g6dngpKG4sdCxlPT1udWxsPyIiOmUpKTpPbih0aGlzLm5vZGUoKSxuKX1mdW5jdGlvbiBPbihuLHQpe3JldHVybiBuLnN0eWxlLmdldFByb3BlcnR5VmFsdWUodCl8fGtvKG4pLmdldENvbXB1dGVkU3R5bGUobixudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHQpfWZ1bmN0aW9uIHd4KG4pe3JldHVybiBmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW25dfX1mdW5jdGlvbiBNeChuLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXNbbl09dH19ZnVuY3Rpb24gYngobix0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtlPT1udWxsP2RlbGV0ZSB0aGlzW25dOnRoaXNbbl09ZX19ZnVuY3Rpb24gT2Yobix0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgodD09bnVsbD93eDp0eXBlb2YgdD09ImZ1bmN0aW9uIj9ieDpNeCkobix0KSk6dGhpcy5ub2RlKClbbl19ZnVuY3Rpb24ga2Yobil7cmV0dXJuIG4udHJpbSgpLnNwbGl0KC9efFxzKy8pfWZ1bmN0aW9uIFhsKG4pe3JldHVybiBuLmNsYXNzTGlzdHx8bmV3IEhmKG4pfWZ1bmN0aW9uIEhmKG4pe3RoaXMuX25vZGU9bix0aGlzLl9uYW1lcz1rZihuLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfUhmLnByb3RvdHlwZT17YWRkOmZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMuX25hbWVzLmluZGV4T2Yobik7dDwwJiYodGhpcy5fbmFtZXMucHVzaChuKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxyZW1vdmU6ZnVuY3Rpb24obil7dmFyIHQ9dGhpcy5fbmFtZXMuaW5kZXhPZihuKTt0Pj0wJiYodGhpcy5fbmFtZXMuc3BsaWNlKHQsMSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0sY29udGFpbnM6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2Yobik+PTB9fTtmdW5jdGlvbiBWZihuLHQpe2Zvcih2YXIgZT1YbChuKSxpPS0xLHI9dC5sZW5ndGg7KytpPHI7KWUuYWRkKHRbaV0pfWZ1bmN0aW9uIEdmKG4sdCl7Zm9yKHZhciBlPVhsKG4pLGk9LTEscj10Lmxlbmd0aDsrK2k8cjspZS5yZW1vdmUodFtpXSl9ZnVuY3Rpb24gU3gobil7cmV0dXJuIGZ1bmN0aW9uKCl7VmYodGhpcyxuKX19ZnVuY3Rpb24gRXgobil7cmV0dXJuIGZ1bmN0aW9uKCl7R2YodGhpcyxuKX19ZnVuY3Rpb24gVHgobix0KXtyZXR1cm4gZnVuY3Rpb24oKXsodC5hcHBseSh0aGlzLGFyZ3VtZW50cyk/VmY6R2YpKHRoaXMsbil9fWZ1bmN0aW9uIFdmKG4sdCl7dmFyIGU9a2YobisiIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodmFyIGk9WGwodGhpcy5ub2RlKCkpLHI9LTEscz1lLmxlbmd0aDsrK3I8czspaWYoIWkuY29udGFpbnMoZVtyXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgodHlwZW9mIHQ9PSJmdW5jdGlvbiI/VHg6dD9TeDpFeCkoZSx0KSl9ZnVuY3Rpb24gQXgoKXt0aGlzLnRleHRDb250ZW50PSIifWZ1bmN0aW9uIEN4KG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9bn19ZnVuY3Rpb24gUngobil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50ZXh0Q29udGVudD10PT1udWxsPyIiOnR9fWZ1bmN0aW9uIHFmKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChuPT1udWxsP0F4Oih0eXBlb2Ygbj09ImZ1bmN0aW9uIj9SeDpDeCkobikpOnRoaXMubm9kZSgpLnRleHRDb250ZW50fWZ1bmN0aW9uIEx4KCl7dGhpcy5pbm5lckhUTUw9IiJ9ZnVuY3Rpb24gUHgobil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9bn19ZnVuY3Rpb24gRHgobil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5pbm5lckhUTUw9dD09bnVsbD8iIjp0fX1mdW5jdGlvbiBYZihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobj09bnVsbD9MeDoodHlwZW9mIG49PSJmdW5jdGlvbiI/RHg6UHgpKG4pKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9ZnVuY3Rpb24gSXgoKXt0aGlzLm5leHRTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcyl9ZnVuY3Rpb24gWWYoKXtyZXR1cm4gdGhpcy5lYWNoKEl4KX1mdW5jdGlvbiBOeCgpe3RoaXMucHJldmlvdXNTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsdGhpcy5wYXJlbnROb2RlLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIFpmKCl7cmV0dXJuIHRoaXMuZWFjaChOeCl9ZnVuY3Rpb24gSmYobil7dmFyIHQ9dHlwZW9mIG49PSJmdW5jdGlvbiI/bjpCbyhuKTtyZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZCh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KX1mdW5jdGlvbiBGeCgpe3JldHVybiBudWxsfWZ1bmN0aW9uICRmKG4sdCl7dmFyIGU9dHlwZW9mIG49PSJmdW5jdGlvbiI/bjpCbyhuKSxpPXQ9PW51bGw/Rng6dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDpkaSh0KTtyZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUoZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSl9ZnVuY3Rpb24gengoKXt2YXIgbj10aGlzLnBhcmVudE5vZGU7biYmbi5yZW1vdmVDaGlsZCh0aGlzKX1mdW5jdGlvbiBLZigpe3JldHVybiB0aGlzLmVhY2goengpfWZ1bmN0aW9uIFV4KCl7dmFyIG49dGhpcy5jbG9uZU5vZGUoITEpLHQ9dGhpcy5wYXJlbnROb2RlO3JldHVybiB0P3QuaW5zZXJ0QmVmb3JlKG4sdGhpcy5uZXh0U2libGluZyk6bn1mdW5jdGlvbiBCeCgpe3ZhciBuPXRoaXMuY2xvbmVOb2RlKCEwKSx0PXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gdD90Lmluc2VydEJlZm9yZShuLHRoaXMubmV4dFNpYmxpbmcpOm59ZnVuY3Rpb24gUWYobil7cmV0dXJuIHRoaXMuc2VsZWN0KG4/Qng6VXgpfWZ1bmN0aW9uIGpmKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoIl9fZGF0YV9fIixuKTp0aGlzLm5vZGUoKS5fX2RhdGFfX312YXIgZWQ9e30sWWw9bnVsbDt0eXBlb2YgZG9jdW1lbnQhPSJ1bmRlZmluZWQiJiYodGQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCJvbm1vdXNlZW50ZXIiaW4gdGR8fChlZD17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSk7dmFyIHRkO2Z1bmN0aW9uIE94KG4sdCxlKXtyZXR1cm4gbj1uZChuLHQsZSksZnVuY3Rpb24oaSl7dmFyIHI9aS5yZWxhdGVkVGFyZ2V0Oyghcnx8ciE9PXRoaXMmJiEoci5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSY4KSkmJm4uY2FsbCh0aGlzLGkpfX1mdW5jdGlvbiBuZChuLHQsZSl7cmV0dXJuIGZ1bmN0aW9uKGkpe3ZhciByPVlsO1lsPWk7dHJ5e24uY2FsbCh0aGlzLHRoaXMuX19kYXRhX18sdCxlKX1maW5hbGx5e1lsPXJ9fX1mdW5jdGlvbiBreChuKXtyZXR1cm4gbi50cmltKCkuc3BsaXQoL158XHMrLykubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPSIiLGk9dC5pbmRleE9mKCIuIik7cmV0dXJuIGk+PTAmJihlPXQuc2xpY2UoaSsxKSx0PXQuc2xpY2UoMCxpKSkse3R5cGU6dCxuYW1lOmV9fSl9ZnVuY3Rpb24gSHgobil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fX29uO2lmKCEhdCl7Zm9yKHZhciBlPTAsaT0tMSxyPXQubGVuZ3RoLHM7ZTxyOysrZSlzPXRbZV0sKCFuLnR5cGV8fHMudHlwZT09PW4udHlwZSkmJnMubmFtZT09PW4ubmFtZT90aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIocy50eXBlLHMubGlzdGVuZXIscy5jYXB0dXJlKTp0WysraV09czsrK2k/dC5sZW5ndGg9aTpkZWxldGUgdGhpcy5fX29ufX19ZnVuY3Rpb24gVngobix0LGUpe3ZhciBpPWVkLmhhc093blByb3BlcnR5KG4udHlwZSk/T3g6bmQ7cmV0dXJuIGZ1bmN0aW9uKHIscyxvKXt2YXIgYT10aGlzLl9fb24sbCxjPWkodCxzLG8pO2lmKGEpe2Zvcih2YXIgdT0wLGg9YS5sZW5ndGg7dTxoOysrdSlpZigobD1hW3VdKS50eXBlPT09bi50eXBlJiZsLm5hbWU9PT1uLm5hbWUpe3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihsLnR5cGUsbC5saXN0ZW5lcixsLmNhcHR1cmUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihsLnR5cGUsbC5saXN0ZW5lcj1jLGwuY2FwdHVyZT1lKSxsLnZhbHVlPXQ7cmV0dXJufX10aGlzLmFkZEV2ZW50TGlzdGVuZXIobi50eXBlLGMsZSksbD17dHlwZTpuLnR5cGUsbmFtZTpuLm5hbWUsdmFsdWU6dCxsaXN0ZW5lcjpjLGNhcHR1cmU6ZX0sYT9hLnB1c2gobCk6dGhpcy5fX29uPVtsXX19ZnVuY3Rpb24gaWQobix0LGUpe3ZhciBpPWt4KG4rIiIpLHIscz1pLmxlbmd0aCxvO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7dmFyIGE9dGhpcy5ub2RlKCkuX19vbjtpZihhKXtmb3IodmFyIGw9MCxjPWEubGVuZ3RoLHU7bDxjOysrbClmb3Iocj0wLHU9YVtsXTtyPHM7KytyKWlmKChvPWlbcl0pLnR5cGU9PT11LnR5cGUmJm8ubmFtZT09PXUubmFtZSlyZXR1cm4gdS52YWx1ZX1yZXR1cm59Zm9yKGE9dD9WeDpIeCxlPT1udWxsJiYoZT0hMSkscj0wO3I8czsrK3IpdGhpcy5lYWNoKGEoaVtyXSx0LGUpKTtyZXR1cm4gdGhpc31mdW5jdGlvbiByZChuLHQsZSl7dmFyIGk9a28obikscj1pLkN1c3RvbUV2ZW50O3R5cGVvZiByPT0iZnVuY3Rpb24iP3I9bmV3IHIodCxlKToocj1pLmRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLGU/KHIuaW5pdEV2ZW50KHQsZS5idWJibGVzLGUuY2FuY2VsYWJsZSksci5kZXRhaWw9ZS5kZXRhaWwpOnIuaW5pdEV2ZW50KHQsITEsITEpKSxuLmRpc3BhdGNoRXZlbnQocil9ZnVuY3Rpb24gR3gobix0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcmQodGhpcyxuLHQpfX1mdW5jdGlvbiBXeChuLHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiByZCh0aGlzLG4sdC5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX1mdW5jdGlvbiBzZChuLHQpe3JldHVybiB0aGlzLmVhY2goKHR5cGVvZiB0PT0iZnVuY3Rpb24iP1d4Okd4KShuLHQpKX12YXIgcXg9W251bGxdO2Z1bmN0aW9uIGNlKG4sdCl7dGhpcy5fZ3JvdXBzPW4sdGhpcy5fcGFyZW50cz10fWZ1bmN0aW9uIG9kKCl7cmV0dXJuIG5ldyBjZShbW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF1dLHF4KX1jZS5wcm90b3R5cGU9b2QucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpjZSxzZWxlY3Q6dmYsc2VsZWN0QWxsOl9mLGZpbHRlcjp3ZixkYXRhOkVmLGVudGVyOk1mLGV4aXQ6VGYsam9pbjpBZixtZXJnZTpDZixvcmRlcjpSZixzb3J0OkxmLGNhbGw6UGYsbm9kZXM6RGYsbm9kZTpJZixzaXplOk5mLGVtcHR5OkZmLGVhY2g6emYsYXR0cjpVZixzdHlsZTpCZixwcm9wZXJ0eTpPZixjbGFzc2VkOldmLHRleHQ6cWYsaHRtbDpYZixyYWlzZTpZZixsb3dlcjpaZixhcHBlbmQ6SmYsaW5zZXJ0OiRmLHJlbW92ZTpLZixjbG9uZTpRZixkYXR1bTpqZixvbjppZCxkaXNwYXRjaDpzZH07dmFyIE1uPW9kO2Z1bmN0aW9uIEhvKG4sdCxlKXtuLnByb3RvdHlwZT10LnByb3RvdHlwZT1lLGUuY29uc3RydWN0b3I9bn1mdW5jdGlvbiBabChuLHQpe3ZhciBlPU9iamVjdC5jcmVhdGUobi5wcm90b3R5cGUpO2Zvcih2YXIgaSBpbiB0KWVbaV09dFtpXTtyZXR1cm4gZX1mdW5jdGlvbiBocygpe312YXIgY3M9LjcsR289MS9jcywkaT0iXFxzKihbKy1dP1xcZCspXFxzKiIsdXM9IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pXFxzKiIsY249IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pJVxccyoiLFh4PS9eIyhbMC05YS1mXXszLDh9KSQvLFl4PW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1skaSwkaSwkaV0rIlxcKSQiKSxaeD1uZXcgUmVnRXhwKCJecmdiXFwoIitbY24sY24sY25dKyJcXCkkIiksSng9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1skaSwkaSwkaSx1c10rIlxcKSQiKSwkeD1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW2NuLGNuLGNuLHVzXSsiXFwpJCIpLEt4PW5ldyBSZWdFeHAoIl5oc2xcXCgiK1t1cyxjbixjbl0rIlxcKSQiKSxReD1uZXcgUmVnRXhwKCJeaHNsYVxcKCIrW3VzLGNuLGNuLHVzXSsiXFwpJCIpLGFkPXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9O0hvKGhzLEplLHtjb3B5OmZ1bmN0aW9uKG4pe3JldHVybiBPYmplY3QuYXNzaWduKG5ldyB0aGlzLmNvbnN0cnVjdG9yLHRoaXMsbil9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKX0saGV4OmxkLGZvcm1hdEhleDpsZCxmb3JtYXRIc2w6angsZm9ybWF0UmdiOmNkLHRvU3RyaW5nOmNkfSk7ZnVuY3Rpb24gbGQoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRIZXgoKX1mdW5jdGlvbiBqeCgpe3JldHVybiBwZCh0aGlzKS5mb3JtYXRIc2woKX1mdW5jdGlvbiBjZCgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdFJnYigpfWZ1bmN0aW9uIEplKG4pe3ZhciB0LGU7cmV0dXJuIG49KG4rIiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLCh0PVh4LmV4ZWMobikpPyhlPXRbMV0ubGVuZ3RoLHQ9cGFyc2VJbnQodFsxXSwxNiksZT09PTY/dWQodCk6ZT09PTM/bmV3IFVlKHQ+PjgmMTV8dD4+NCYyNDAsdD4+NCYxNXx0JjI0MCwodCYxNSk8PDR8dCYxNSwxKTplPT09OD9Wbyh0Pj4yNCYyNTUsdD4+MTYmMjU1LHQ+PjgmMjU1LCh0JjI1NSkvMjU1KTplPT09ND9Wbyh0Pj4xMiYxNXx0Pj44JjI0MCx0Pj44JjE1fHQ+PjQmMjQwLHQ+PjQmMTV8dCYyNDAsKCh0JjE1KTw8NHx0JjE1KS8yNTUpOm51bGwpOih0PVl4LmV4ZWMobikpP25ldyBVZSh0WzFdLHRbMl0sdFszXSwxKToodD1aeC5leGVjKG4pKT9uZXcgVWUodFsxXSoyNTUvMTAwLHRbMl0qMjU1LzEwMCx0WzNdKjI1NS8xMDAsMSk6KHQ9SnguZXhlYyhuKSk/Vm8odFsxXSx0WzJdLHRbM10sdFs0XSk6KHQ9JHguZXhlYyhuKSk/Vm8odFsxXSoyNTUvMTAwLHRbMl0qMjU1LzEwMCx0WzNdKjI1NS8xMDAsdFs0XSk6KHQ9S3guZXhlYyhuKSk/ZGQodFsxXSx0WzJdLzEwMCx0WzNdLzEwMCwxKToodD1ReC5leGVjKG4pKT9kZCh0WzFdLHRbMl0vMTAwLHRbM10vMTAwLHRbNF0pOmFkLmhhc093blByb3BlcnR5KG4pP3VkKGFkW25dKTpuPT09InRyYW5zcGFyZW50Ij9uZXcgVWUoTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiB1ZChuKXtyZXR1cm4gbmV3IFVlKG4+PjE2JjI1NSxuPj44JjI1NSxuJjI1NSwxKX1mdW5jdGlvbiBWbyhuLHQsZSxpKXtyZXR1cm4gaTw9MCYmKG49dD1lPU5hTiksbmV3IFVlKG4sdCxlLGkpfWZ1bmN0aW9uIHR5KG4pe3JldHVybiBuIGluc3RhbmNlb2YgaHN8fChuPUplKG4pKSxuPyhuPW4ucmdiKCksbmV3IFVlKG4ucixuLmcsbi5iLG4ub3BhY2l0eSkpOm5ldyBVZX1mdW5jdGlvbiBLaShuLHQsZSxpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/dHkobik6bmV3IFVlKG4sdCxlLGk9PW51bGw/MTppKX1mdW5jdGlvbiBVZShuLHQsZSxpKXt0aGlzLnI9K24sdGhpcy5nPSt0LHRoaXMuYj0rZSx0aGlzLm9wYWNpdHk9K2l9SG8oVWUsS2ksWmwoaHMse2JyaWdodGVyOmZ1bmN0aW9uKG4pe3JldHVybiBuPW49PW51bGw/R286TWF0aC5wb3coR28sbiksbmV3IFVlKHRoaXMucipuLHRoaXMuZypuLHRoaXMuYipuLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihuKXtyZXR1cm4gbj1uPT1udWxsP2NzOk1hdGgucG93KGNzLG4pLG5ldyBVZSh0aGlzLnIqbix0aGlzLmcqbix0aGlzLmIqbix0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4tLjU8PXRoaXMuciYmdGhpcy5yPDI1NS41JiYtLjU8PXRoaXMuZyYmdGhpcy5nPDI1NS41JiYtLjU8PXRoaXMuYiYmdGhpcy5iPDI1NS41JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0saGV4OmhkLGZvcm1hdEhleDpoZCxmb3JtYXRSZ2I6ZmQsdG9TdHJpbmc6ZmR9KSk7ZnVuY3Rpb24gaGQoKXtyZXR1cm4iIyIrSmwodGhpcy5yKStKbCh0aGlzLmcpK0psKHRoaXMuYil9ZnVuY3Rpb24gZmQoKXt2YXIgbj10aGlzLm9wYWNpdHk7cmV0dXJuIG49aXNOYU4obik/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsbikpLChuPT09MT8icmdiKCI6InJnYmEoIikrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLnIpfHwwKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuZyl8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5iKXx8MCkpKyhuPT09MT8iKSI6IiwgIituKyIpIil9ZnVuY3Rpb24gSmwobil7cmV0dXJuIG49TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZChuKXx8MCkpLChuPDE2PyIwIjoiIikrbi50b1N0cmluZygxNil9ZnVuY3Rpb24gZGQobix0LGUsaSl7cmV0dXJuIGk8PTA/bj10PWU9TmFOOmU8PTB8fGU+PTE/bj10PU5hTjp0PD0wJiYobj1OYU4pLG5ldyBsbihuLHQsZSxpKX1mdW5jdGlvbiBwZChuKXtpZihuIGluc3RhbmNlb2YgbG4pcmV0dXJuIG5ldyBsbihuLmgsbi5zLG4ubCxuLm9wYWNpdHkpO2lmKG4gaW5zdGFuY2VvZiBoc3x8KG49SmUobikpLCFuKXJldHVybiBuZXcgbG47aWYobiBpbnN0YW5jZW9mIGxuKXJldHVybiBuO249bi5yZ2IoKTt2YXIgdD1uLnIvMjU1LGU9bi5nLzI1NSxpPW4uYi8yNTUscj1NYXRoLm1pbih0LGUsaSkscz1NYXRoLm1heCh0LGUsaSksbz1OYU4sYT1zLXIsbD0ocytyKS8yO3JldHVybiBhPyh0PT09cz9vPShlLWkpL2ErKGU8aSkqNjplPT09cz9vPShpLXQpL2ErMjpvPSh0LWUpL2ErNCxhLz1sPC41P3MrcjoyLXMtcixvKj02MCk6YT1sPjAmJmw8MT8wOm8sbmV3IGxuKG8sYSxsLG4ub3BhY2l0eSl9ZnVuY3Rpb24gcGkobix0LGUsaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP3BkKG4pOm5ldyBsbihuLHQsZSxpPT1udWxsPzE6aSl9ZnVuY3Rpb24gbG4obix0LGUsaSl7dGhpcy5oPStuLHRoaXMucz0rdCx0aGlzLmw9K2UsdGhpcy5vcGFjaXR5PStpfUhvKGxuLHBpLFpsKGhzLHticmlnaHRlcjpmdW5jdGlvbihuKXtyZXR1cm4gbj1uPT1udWxsP0dvOk1hdGgucG93KEdvLG4pLG5ldyBsbih0aGlzLmgsdGhpcy5zLHRoaXMubCpuLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihuKXtyZXR1cm4gbj1uPT1udWxsP2NzOk1hdGgucG93KGNzLG4pLG5ldyBsbih0aGlzLmgsdGhpcy5zLHRoaXMubCpuLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciBuPXRoaXMuaCUzNjArKHRoaXMuaDwwKSozNjAsdD1pc05hTihuKXx8aXNOYU4odGhpcy5zKT8wOnRoaXMucyxlPXRoaXMubCxpPWUrKGU8LjU/ZToxLWUpKnQscj0yKmUtaTtyZXR1cm4gbmV3IFVlKCRsKG4+PTI0MD9uLTI0MDpuKzEyMCxyLGkpLCRsKG4scixpKSwkbChuPDEyMD9uKzI0MDpuLTEyMCxyLGkpLHRoaXMub3BhY2l0eSl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuKDA8PXRoaXMucyYmdGhpcy5zPD0xfHxpc05hTih0aGlzLnMpKSYmMDw9dGhpcy5sJiZ0aGlzLmw8PTEmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxmb3JtYXRIc2w6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLm9wYWNpdHk7cmV0dXJuIG49aXNOYU4obik/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsbikpLChuPT09MT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisodGhpcy5zfHwwKSoxMDArIiUsICIrKHRoaXMubHx8MCkqMTAwKyIlIisobj09PTE/IikiOiIsICIrbisiKSIpfX0pKTtmdW5jdGlvbiAkbChuLHQsZSl7cmV0dXJuKG48NjA/dCsoZS10KSpuLzYwOm48MTgwP2U6bjwyNDA/dCsoZS10KSooMjQwLW4pLzYwOnQpKjI1NX1mdW5jdGlvbiBLbChuLHQsZSxpLHIpe3ZhciBzPW4qbixvPXMqbjtyZXR1cm4oKDEtMypuKzMqcy1vKSp0Kyg0LTYqcyszKm8pKmUrKDErMypuKzMqcy0zKm8pKmkrbypyKS82fWZ1bmN0aW9uIG1kKG4pe3ZhciB0PW4ubGVuZ3RoLTE7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBpPWU8PTA/ZT0wOmU+PTE/KGU9MSx0LTEpOk1hdGguZmxvb3IoZSp0KSxyPW5baV0scz1uW2krMV0sbz1pPjA/bltpLTFdOjIqci1zLGE9aTx0LTE/bltpKzJdOjIqcy1yO3JldHVybiBLbCgoZS1pL3QpKnQsbyxyLHMsYSl9fWZ1bmN0aW9uIGdkKG4pe3ZhciB0PW4ubGVuZ3RoO3JldHVybiBmdW5jdGlvbihlKXt2YXIgaT1NYXRoLmZsb29yKCgoZSU9MSk8MD8rK2U6ZSkqdCkscj1uWyhpK3QtMSkldF0scz1uW2kldF0sbz1uWyhpKzEpJXRdLGE9blsoaSsyKSV0XTtyZXR1cm4gS2woKGUtaS90KSp0LHIscyxvLGEpfX1mdW5jdGlvbiBRaShuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbn19ZnVuY3Rpb24geGQobix0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIG4rZSp0fX1mdW5jdGlvbiBleShuLHQsZSl7cmV0dXJuIG49TWF0aC5wb3cobixlKSx0PU1hdGgucG93KHQsZSktbixlPTEvZSxmdW5jdGlvbihpKXtyZXR1cm4gTWF0aC5wb3cobitpKnQsZSl9fWZ1bmN0aW9uIHlkKG4sdCl7dmFyIGU9dC1uO3JldHVybiBlP3hkKG4sZT4xODB8fGU8LTE4MD9lLTM2MCpNYXRoLnJvdW5kKGUvMzYwKTplKTpRaShpc05hTihuKT90Om4pfWZ1bmN0aW9uIHZkKG4pe3JldHVybihuPStuKT09MT9ibjpmdW5jdGlvbih0LGUpe3JldHVybiBlLXQ/ZXkodCxlLG4pOlFpKGlzTmFOKHQpP2U6dCl9fWZ1bmN0aW9uIGJuKG4sdCl7dmFyIGU9dC1uO3JldHVybiBlP3hkKG4sZSk6UWkoaXNOYU4obik/dDpuKX12YXIgbWk9ZnVuY3Rpb24gbih0KXt2YXIgZT12ZCh0KTtmdW5jdGlvbiBpKHIscyl7dmFyIG89ZSgocj1LaShyKSkuciwocz1LaShzKSkuciksYT1lKHIuZyxzLmcpLGw9ZShyLmIscy5iKSxjPWJuKHIub3BhY2l0eSxzLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih1KXtyZXR1cm4gci5yPW8odSksci5nPWEodSksci5iPWwodSksci5vcGFjaXR5PWModSkscisiIn19cmV0dXJuIGkuZ2FtbWE9bixpfSgxKTtmdW5jdGlvbiBfZChuKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGgsaT1uZXcgQXJyYXkoZSkscj1uZXcgQXJyYXkoZSkscz1uZXcgQXJyYXkoZSksbyxhO2ZvcihvPTA7bzxlOysrbylhPUtpKHRbb10pLGlbb109YS5yfHwwLHJbb109YS5nfHwwLHNbb109YS5ifHwwO3JldHVybiBpPW4oaSkscj1uKHIpLHM9bihzKSxhLm9wYWNpdHk9MSxmdW5jdGlvbihsKXtyZXR1cm4gYS5yPWkobCksYS5nPXIobCksYS5iPXMobCksYSsiIn19fXZhciBueT1fZChtZCksaXk9X2QoZ2QpO2Z1bmN0aW9uIHdkKG4sdCl7dHx8KHQ9W10pO3ZhciBlPW4/TWF0aC5taW4odC5sZW5ndGgsbi5sZW5ndGgpOjAsaT10LnNsaWNlKCkscjtyZXR1cm4gZnVuY3Rpb24ocyl7Zm9yKHI9MDtyPGU7KytyKWlbcl09bltyXSooMS1zKSt0W3JdKnM7cmV0dXJuIGl9fWZ1bmN0aW9uIE1kKG4pe3JldHVybiBBcnJheUJ1ZmZlci5pc1ZpZXcobikmJiEobiBpbnN0YW5jZW9mIERhdGFWaWV3KX1mdW5jdGlvbiBiZChuLHQpe3ZhciBlPXQ/dC5sZW5ndGg6MCxpPW4/TWF0aC5taW4oZSxuLmxlbmd0aCk6MCxyPW5ldyBBcnJheShpKSxzPW5ldyBBcnJheShlKSxvO2ZvcihvPTA7bzxpOysrbylyW29dPWdpKG5bb10sdFtvXSk7Zm9yKDtvPGU7KytvKXNbb109dFtvXTtyZXR1cm4gZnVuY3Rpb24oYSl7Zm9yKG89MDtvPGk7KytvKXNbb109cltvXShhKTtyZXR1cm4gc319ZnVuY3Rpb24gU2Qobix0KXt2YXIgZT1uZXcgRGF0ZTtyZXR1cm4gbj0rbix0PSt0LGZ1bmN0aW9uKGkpe3JldHVybiBlLnNldFRpbWUobiooMS1pKSt0KmkpLGV9fWZ1bmN0aW9uIHllKG4sdCl7cmV0dXJuIG49K24sdD0rdCxmdW5jdGlvbihlKXtyZXR1cm4gbiooMS1lKSt0KmV9fWZ1bmN0aW9uIEVkKG4sdCl7dmFyIGU9e30saT17fSxyOyhuPT09bnVsbHx8dHlwZW9mIG4hPSJvYmplY3QiKSYmKG49e30pLCh0PT09bnVsbHx8dHlwZW9mIHQhPSJvYmplY3QiKSYmKHQ9e30pO2ZvcihyIGluIHQpciBpbiBuP2Vbcl09Z2kobltyXSx0W3JdKTppW3JdPXRbcl07cmV0dXJuIGZ1bmN0aW9uKHMpe2ZvcihyIGluIGUpaVtyXT1lW3JdKHMpO3JldHVybiBpfX12YXIgamw9L1stK10/KD86XGQrXC4/XGQqfFwuP1xkKykoPzpbZUVdWy0rXT9cZCspPy9nLFFsPW5ldyBSZWdFeHAoamwuc291cmNlLCJnIik7ZnVuY3Rpb24gcnkobil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG59fWZ1bmN0aW9uIHN5KG4pe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbih0KSsiIn19ZnVuY3Rpb24gZnMobix0KXt2YXIgZT1qbC5sYXN0SW5kZXg9UWwubGFzdEluZGV4PTAsaSxyLHMsbz0tMSxhPVtdLGw9W107Zm9yKG49bisiIix0PXQrIiI7KGk9amwuZXhlYyhuKSkmJihyPVFsLmV4ZWModCkpOykocz1yLmluZGV4KT5lJiYocz10LnNsaWNlKGUscyksYVtvXT9hW29dKz1zOmFbKytvXT1zKSwoaT1pWzBdKT09PShyPXJbMF0pP2Fbb10/YVtvXSs9cjphWysrb109cjooYVsrK29dPW51bGwsbC5wdXNoKHtpOm8seDp5ZShpLHIpfSkpLGU9UWwubGFzdEluZGV4O3JldHVybiBlPHQubGVuZ3RoJiYocz10LnNsaWNlKGUpLGFbb10/YVtvXSs9czphWysrb109cyksYS5sZW5ndGg8Mj9sWzBdP3N5KGxbMF0ueCk6cnkodCk6KHQ9bC5sZW5ndGgsZnVuY3Rpb24oYyl7Zm9yKHZhciB1PTAsaDt1PHQ7Kyt1KWFbKGg9bFt1XSkuaV09aC54KGMpO3JldHVybiBhLmpvaW4oIiIpfSl9ZnVuY3Rpb24gZ2kobix0KXt2YXIgZT10eXBlb2YgdCxpO3JldHVybiB0PT1udWxsfHxlPT09ImJvb2xlYW4iP1FpKHQpOihlPT09Im51bWJlciI/eWU6ZT09PSJzdHJpbmciPyhpPUplKHQpKT8odD1pLG1pKTpmczp0IGluc3RhbmNlb2YgSmU/bWk6dCBpbnN0YW5jZW9mIERhdGU/U2Q6TWQodCk/d2Q6QXJyYXkuaXNBcnJheSh0KT9iZDp0eXBlb2YgdC52YWx1ZU9mIT0iZnVuY3Rpb24iJiZ0eXBlb2YgdC50b1N0cmluZyE9ImZ1bmN0aW9uInx8aXNOYU4odCk/RWQ6eWUpKG4sdCl9ZnVuY3Rpb24gdGMobix0KXtyZXR1cm4gbj0rbix0PSt0LGZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnJvdW5kKG4qKDEtZSkrdCplKX19dmFyIFRkPTE4MC9NYXRoLlBJLFdvPXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9O2Z1bmN0aW9uIGVjKG4sdCxlLGkscixzKXt2YXIgbyxhLGw7cmV0dXJuKG89TWF0aC5zcXJ0KG4qbit0KnQpKSYmKG4vPW8sdC89byksKGw9biplK3QqaSkmJihlLT1uKmwsaS09dCpsKSwoYT1NYXRoLnNxcnQoZSplK2kqaSkpJiYoZS89YSxpLz1hLGwvPWEpLG4qaTx0KmUmJihuPS1uLHQ9LXQsbD0tbCxvPS1vKSx7dHJhbnNsYXRlWDpyLHRyYW5zbGF0ZVk6cyxyb3RhdGU6TWF0aC5hdGFuMih0LG4pKlRkLHNrZXdYOk1hdGguYXRhbihsKSpUZCxzY2FsZVg6byxzY2FsZVk6YX19dmFyIGRzLG5jLEFkLHFvO2Z1bmN0aW9uIENkKG4pe3JldHVybiBuPT09Im5vbmUiP1dvOihkc3x8KGRzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLG5jPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxBZD1kb2N1bWVudC5kZWZhdWx0VmlldyksZHMuc3R5bGUudHJhbnNmb3JtPW4sbj1BZC5nZXRDb21wdXRlZFN0eWxlKG5jLmFwcGVuZENoaWxkKGRzKSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKSxuYy5yZW1vdmVDaGlsZChkcyksbj1uLnNsaWNlKDcsLTEpLnNwbGl0KCIsIiksZWMoK25bMF0sK25bMV0sK25bMl0sK25bM10sK25bNF0sK25bNV0pKX1mdW5jdGlvbiBSZChuKXtyZXR1cm4gbj09bnVsbD9XbzoocW98fChxbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpKSxxby5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsbiksKG49cW8udHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSk/KG49bi5tYXRyaXgsZWMobi5hLG4uYixuLmMsbi5kLG4uZSxuLmYpKTpXbyl9ZnVuY3Rpb24gTGQobix0LGUsaSl7ZnVuY3Rpb24gcihjKXtyZXR1cm4gYy5sZW5ndGg/Yy5wb3AoKSsiICI6IiJ9ZnVuY3Rpb24gcyhjLHUsaCxmLGQsZyl7aWYoYyE9PWh8fHUhPT1mKXt2YXIgeD1kLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsdCxudWxsLGUpO2cucHVzaCh7aTp4LTQseDp5ZShjLGgpfSx7aTp4LTIseDp5ZSh1LGYpfSl9ZWxzZShofHxmKSYmZC5wdXNoKCJ0cmFuc2xhdGUoIitoK3QrZitlKX1mdW5jdGlvbiBvKGMsdSxoLGYpe2MhPT11PyhjLXU+MTgwP3UrPTM2MDp1LWM+MTgwJiYoYys9MzYwKSxmLnB1c2goe2k6aC5wdXNoKHIoaCkrInJvdGF0ZSgiLG51bGwsaSktMix4OnllKGMsdSl9KSk6dSYmaC5wdXNoKHIoaCkrInJvdGF0ZSgiK3UraSl9ZnVuY3Rpb24gYShjLHUsaCxmKXtjIT09dT9mLnB1c2goe2k6aC5wdXNoKHIoaCkrInNrZXdYKCIsbnVsbCxpKS0yLHg6eWUoYyx1KX0pOnUmJmgucHVzaChyKGgpKyJza2V3WCgiK3UraSl9ZnVuY3Rpb24gbChjLHUsaCxmLGQsZyl7aWYoYyE9PWh8fHUhPT1mKXt2YXIgeD1kLnB1c2gocihkKSsic2NhbGUoIixudWxsLCIsIixudWxsLCIpIik7Zy5wdXNoKHtpOngtNCx4OnllKGMsaCl9LHtpOngtMix4OnllKHUsZil9KX1lbHNlKGghPT0xfHxmIT09MSkmJmQucHVzaChyKGQpKyJzY2FsZSgiK2grIiwiK2YrIikiKX1yZXR1cm4gZnVuY3Rpb24oYyx1KXt2YXIgaD1bXSxmPVtdO3JldHVybiBjPW4oYyksdT1uKHUpLHMoYy50cmFuc2xhdGVYLGMudHJhbnNsYXRlWSx1LnRyYW5zbGF0ZVgsdS50cmFuc2xhdGVZLGgsZiksbyhjLnJvdGF0ZSx1LnJvdGF0ZSxoLGYpLGEoYy5za2V3WCx1LnNrZXdYLGgsZiksbChjLnNjYWxlWCxjLnNjYWxlWSx1LnNjYWxlWCx1LnNjYWxlWSxoLGYpLGM9dT1udWxsLGZ1bmN0aW9uKGQpe2Zvcih2YXIgZz0tMSx4PWYubGVuZ3RoLHY7KytnPHg7KWhbKHY9ZltnXSkuaV09di54KGQpO3JldHVybiBoLmpvaW4oIiIpfX19dmFyIGljPUxkKENkLCJweCwgIiwicHgpIiwiZGVnKSIpLHJjPUxkKFJkLCIsICIsIikiLCIpIik7ZnVuY3Rpb24gUGQobil7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIGk9bigodD1waSh0KSkuaCwoZT1waShlKSkuaCkscj1ibih0LnMsZS5zKSxzPWJuKHQubCxlLmwpLG89Ym4odC5vcGFjaXR5LGUub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiB0Lmg9aShhKSx0LnM9cihhKSx0Lmw9cyhhKSx0Lm9wYWNpdHk9byhhKSx0KyIifX19dmFyIHNjPVBkKHlkKSxveT1QZChibik7dmFyIGppPTAsbXM9MCxwcz0wLElkPTFlMyxYbyxncyxZbz0wLHhpPTAsWm89MCx4cz10eXBlb2YgcGVyZm9ybWFuY2U9PSJvYmplY3QiJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2U6RGF0ZSxOZD10eXBlb2Ygd2luZG93PT0ib2JqZWN0IiYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpmdW5jdGlvbihuKXtzZXRUaW1lb3V0KG4sMTcpfTtmdW5jdGlvbiB0cigpe3JldHVybiB4aXx8KE5kKGF5KSx4aT14cy5ub3coKStabyl9ZnVuY3Rpb24gYXkoKXt4aT0wfWZ1bmN0aW9uIHlzKCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH15cy5wcm90b3R5cGU9Sm8ucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp5cyxyZXN0YXJ0OmZ1bmN0aW9uKG4sdCxlKXtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbiIpO2U9KGU9PW51bGw/dHIoKTorZSkrKHQ9PW51bGw/MDordCksIXRoaXMuX25leHQmJmdzIT09dGhpcyYmKGdzP2dzLl9uZXh0PXRoaXM6WG89dGhpcyxncz10aGlzKSx0aGlzLl9jYWxsPW4sdGhpcy5fdGltZT1lLG9jKCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLl9jYWxsJiYodGhpcy5fY2FsbD1udWxsLHRoaXMuX3RpbWU9MS8wLG9jKCkpfX07ZnVuY3Rpb24gSm8obix0LGUpe3ZhciBpPW5ldyB5cztyZXR1cm4gaS5yZXN0YXJ0KG4sdCxlKSxpfWZ1bmN0aW9uIEZkKCl7dHIoKSwrK2ppO2Zvcih2YXIgbj1Ybyx0O247KSh0PXhpLW4uX3RpbWUpPj0wJiZuLl9jYWxsLmNhbGwobnVsbCx0KSxuPW4uX25leHQ7LS1qaX1mdW5jdGlvbiBEZCgpe3hpPShZbz14cy5ub3coKSkrWm8samk9bXM9MDt0cnl7RmQoKX1maW5hbGx5e2ppPTAsY3koKSx4aT0wfX1mdW5jdGlvbiBseSgpe3ZhciBuPXhzLm5vdygpLHQ9bi1Zbzt0PklkJiYoWm8tPXQsWW89bil9ZnVuY3Rpb24gY3koKXtmb3IodmFyIG4sdD1YbyxlLGk9MS8wO3Q7KXQuX2NhbGw/KGk+dC5fdGltZSYmKGk9dC5fdGltZSksbj10LHQ9dC5fbmV4dCk6KGU9dC5fbmV4dCx0Ll9uZXh0PW51bGwsdD1uP24uX25leHQ9ZTpYbz1lKTtncz1uLG9jKGkpfWZ1bmN0aW9uIG9jKG4pe2lmKCFqaSl7bXMmJihtcz1jbGVhclRpbWVvdXQobXMpKTt2YXIgdD1uLXhpO3Q+MjQ/KG48MS8wJiYobXM9c2V0VGltZW91dChEZCxuLXhzLm5vdygpLVpvKSkscHMmJihwcz1jbGVhckludGVydmFsKHBzKSkpOihwc3x8KFlvPXhzLm5vdygpLHBzPXNldEludGVydmFsKGx5LElkKSksamk9MSxOZChEZCkpfX1mdW5jdGlvbiAkbyhuLHQsZSl7dmFyIGk9bmV3IHlzO3JldHVybiB0PXQ9PW51bGw/MDordCxpLnJlc3RhcnQoZnVuY3Rpb24ocil7aS5zdG9wKCksbihyK3QpfSx0LGUpLGl9dmFyIHV5PVdsKCJzdGFydCIsImVuZCIsImNhbmNlbCIsImludGVycnVwdCIpLGh5PVtdLFVkPTAsYWM9MSxRbz0yLEtvPTMsemQ9NCxqbz01LHZzPTY7ZnVuY3Rpb24ga24obix0LGUsaSxyLHMpe3ZhciBvPW4uX190cmFuc2l0aW9uO2lmKCFvKW4uX190cmFuc2l0aW9uPXt9O2Vsc2UgaWYoZSBpbiBvKXJldHVybjtmeShuLGUse25hbWU6dCxpbmRleDppLGdyb3VwOnIsb246dXksdHdlZW46aHksdGltZTpzLnRpbWUsZGVsYXk6cy5kZWxheSxkdXJhdGlvbjpzLmR1cmF0aW9uLGVhc2U6cy5lYXNlLHRpbWVyOm51bGwsc3RhdGU6VWR9KX1mdW5jdGlvbiBfcyhuLHQpe3ZhciBlPXVlKG4sdCk7aWYoZS5zdGF0ZT5VZCl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZCIpO3JldHVybiBlfWZ1bmN0aW9uIEFlKG4sdCl7dmFyIGU9dWUobix0KTtpZihlLnN0YXRlPktvKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgcnVubmluZyIpO3JldHVybiBlfWZ1bmN0aW9uIHVlKG4sdCl7dmFyIGU9bi5fX3RyYW5zaXRpb247aWYoIWV8fCEoZT1lW3RdKSl0aHJvdyBuZXcgRXJyb3IoInRyYW5zaXRpb24gbm90IGZvdW5kIik7cmV0dXJuIGV9ZnVuY3Rpb24gZnkobix0LGUpe3ZhciBpPW4uX190cmFuc2l0aW9uLHI7aVt0XT1lLGUudGltZXI9Sm8ocywwLGUudGltZSk7ZnVuY3Rpb24gcyhjKXtlLnN0YXRlPWFjLGUudGltZXIucmVzdGFydChvLGUuZGVsYXksZS50aW1lKSxlLmRlbGF5PD1jJiZvKGMtZS5kZWxheSl9ZnVuY3Rpb24gbyhjKXt2YXIgdSxoLGYsZDtpZihlLnN0YXRlIT09YWMpcmV0dXJuIGwoKTtmb3IodSBpbiBpKWlmKGQ9aVt1XSxkLm5hbWU9PT1lLm5hbWUpe2lmKGQuc3RhdGU9PT1LbylyZXR1cm4gJG8obyk7ZC5zdGF0ZT09PXpkPyhkLnN0YXRlPXZzLGQudGltZXIuc3RvcCgpLGQub24uY2FsbCgiaW50ZXJydXB0IixuLG4uX19kYXRhX18sZC5pbmRleCxkLmdyb3VwKSxkZWxldGUgaVt1XSk6K3U8dCYmKGQuc3RhdGU9dnMsZC50aW1lci5zdG9wKCksZC5vbi5jYWxsKCJjYW5jZWwiLG4sbi5fX2RhdGFfXyxkLmluZGV4LGQuZ3JvdXApLGRlbGV0ZSBpW3VdKX1pZigkbyhmdW5jdGlvbigpe2Uuc3RhdGU9PT1LbyYmKGUuc3RhdGU9emQsZS50aW1lci5yZXN0YXJ0KGEsZS5kZWxheSxlLnRpbWUpLGEoYykpfSksZS5zdGF0ZT1RbyxlLm9uLmNhbGwoInN0YXJ0IixuLG4uX19kYXRhX18sZS5pbmRleCxlLmdyb3VwKSxlLnN0YXRlPT09UW8pe2ZvcihlLnN0YXRlPUtvLHI9bmV3IEFycmF5KGY9ZS50d2Vlbi5sZW5ndGgpLHU9MCxoPS0xO3U8ZjsrK3UpKGQ9ZS50d2Vlblt1XS52YWx1ZS5jYWxsKG4sbi5fX2RhdGFfXyxlLmluZGV4LGUuZ3JvdXApKSYmKHJbKytoXT1kKTtyLmxlbmd0aD1oKzF9fWZ1bmN0aW9uIGEoYyl7Zm9yKHZhciB1PWM8ZS5kdXJhdGlvbj9lLmVhc2UuY2FsbChudWxsLGMvZS5kdXJhdGlvbik6KGUudGltZXIucmVzdGFydChsKSxlLnN0YXRlPWpvLDEpLGg9LTEsZj1yLmxlbmd0aDsrK2g8ZjspcltoXS5jYWxsKG4sdSk7ZS5zdGF0ZT09PWpvJiYoZS5vbi5jYWxsKCJlbmQiLG4sbi5fX2RhdGFfXyxlLmluZGV4LGUuZ3JvdXApLGwoKSl9ZnVuY3Rpb24gbCgpe2Uuc3RhdGU9dnMsZS50aW1lci5zdG9wKCksZGVsZXRlIGlbdF07Zm9yKHZhciBjIGluIGkpcmV0dXJuO2RlbGV0ZSBuLl9fdHJhbnNpdGlvbn19ZnVuY3Rpb24gd3Mobix0KXt2YXIgZT1uLl9fdHJhbnNpdGlvbixpLHIscz0hMCxvO2lmKCEhZSl7dD10PT1udWxsP251bGw6dCsiIjtmb3IobyBpbiBlKXtpZigoaT1lW29dKS5uYW1lIT09dCl7cz0hMTtjb250aW51ZX1yPWkuc3RhdGU+UW8mJmkuc3RhdGU8am8saS5zdGF0ZT12cyxpLnRpbWVyLnN0b3AoKSxpLm9uLmNhbGwocj8iaW50ZXJydXB0IjoiY2FuY2VsIixuLG4uX19kYXRhX18saS5pbmRleCxpLmdyb3VwKSxkZWxldGUgZVtvXX1zJiZkZWxldGUgbi5fX3RyYW5zaXRpb259fWZ1bmN0aW9uIEJkKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt3cyh0aGlzLG4pfSl9ZnVuY3Rpb24gZHkobix0KXt2YXIgZSxpO3JldHVybiBmdW5jdGlvbigpe3ZhciByPUFlKHRoaXMsbikscz1yLnR3ZWVuO2lmKHMhPT1lKXtpPWU9cztmb3IodmFyIG89MCxhPWkubGVuZ3RoO288YTsrK28paWYoaVtvXS5uYW1lPT09dCl7aT1pLnNsaWNlKCksaS5zcGxpY2UobywxKTticmVha319ci50d2Vlbj1pfX1mdW5jdGlvbiBweShuLHQsZSl7dmFyIGkscjtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM9QWUodGhpcyxuKSxvPXMudHdlZW47aWYobyE9PWkpe3I9KGk9bykuc2xpY2UoKTtmb3IodmFyIGE9e25hbWU6dCx2YWx1ZTplfSxsPTAsYz1yLmxlbmd0aDtsPGM7KytsKWlmKHJbbF0ubmFtZT09PXQpe3JbbF09YTticmVha31sPT09YyYmci5wdXNoKGEpfXMudHdlZW49cn19ZnVuY3Rpb24gT2Qobix0KXt2YXIgZT10aGlzLl9pZDtpZihuKz0iIixhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgaT11ZSh0aGlzLm5vZGUoKSxlKS50d2VlbixyPTAscz1pLmxlbmd0aCxvO3I8czsrK3IpaWYoKG89aVtyXSkubmFtZT09PW4pcmV0dXJuIG8udmFsdWU7cmV0dXJuIG51bGx9cmV0dXJuIHRoaXMuZWFjaCgodD09bnVsbD9keTpweSkoZSxuLHQpKX1mdW5jdGlvbiBlcihuLHQsZSl7dmFyIGk9bi5faWQ7cmV0dXJuIG4uZWFjaChmdW5jdGlvbigpe3ZhciByPUFlKHRoaXMsaSk7KHIudmFsdWV8fChyLnZhbHVlPXt9KSlbdF09ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxmdW5jdGlvbihyKXtyZXR1cm4gdWUocixpKS52YWx1ZVt0XX19ZnVuY3Rpb24gdGEobix0KXt2YXIgZTtyZXR1cm4odHlwZW9mIHQ9PSJudW1iZXIiP3llOnQgaW5zdGFuY2VvZiBKZT9taTooZT1KZSh0KSk/KHQ9ZSxtaSk6ZnMpKG4sdCl9ZnVuY3Rpb24gbXkobil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUobil9fWZ1bmN0aW9uIGd5KG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKX19ZnVuY3Rpb24geHkobix0LGUpe3ZhciBpLHI9ZSsiIixzO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPXRoaXMuZ2V0QXR0cmlidXRlKG4pO3JldHVybiBvPT09cj9udWxsOm89PT1pP3M6cz10KGk9byxlKX19ZnVuY3Rpb24geXkobix0LGUpe3ZhciBpLHI9ZSsiIixzO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPXRoaXMuZ2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKTtyZXR1cm4gbz09PXI/bnVsbDpvPT09aT9zOnM9dChpPW8sZSl9fWZ1bmN0aW9uIHZ5KG4sdCxlKXt2YXIgaSxyLHM7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG8sYT1lKHRoaXMpLGw7cmV0dXJuIGE9PW51bGw/dm9pZCB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuKToobz10aGlzLmdldEF0dHJpYnV0ZShuKSxsPWErIiIsbz09PWw/bnVsbDpvPT09aSYmbD09PXI/czoocj1sLHM9dChpPW8sYSkpKX19ZnVuY3Rpb24gX3kobix0LGUpe3ZhciBpLHIscztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbyxhPWUodGhpcyksbDtyZXR1cm4gYT09bnVsbD92b2lkIHRoaXMucmVtb3ZlQXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKToobz10aGlzLmdldEF0dHJpYnV0ZU5TKG4uc3BhY2Usbi5sb2NhbCksbD1hKyIiLG89PT1sP251bGw6bz09PWkmJmw9PT1yP3M6KHI9bCxzPXQoaT1vLGEpKSl9fWZ1bmN0aW9uIGtkKG4sdCl7dmFyIGU9d24obiksaT1lPT09InRyYW5zZm9ybSI/cmM6dGE7cmV0dXJuIHRoaXMuYXR0clR3ZWVuKG4sdHlwZW9mIHQ9PSJmdW5jdGlvbiI/KGUubG9jYWw/X3k6dnkpKGUsaSxlcih0aGlzLCJhdHRyLiIrbix0KSk6dD09bnVsbD8oZS5sb2NhbD9neTpteSkoZSk6KGUubG9jYWw/eXk6eHkpKGUsaSx0KSl9ZnVuY3Rpb24gd3kobix0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dGhpcy5zZXRBdHRyaWJ1dGUobix0LmNhbGwodGhpcyxlKSl9fWZ1bmN0aW9uIE15KG4sdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3RoaXMuc2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsLHQuY2FsbCh0aGlzLGUpKX19ZnVuY3Rpb24gYnkobix0KXt2YXIgZSxpO2Z1bmN0aW9uIHIoKXt2YXIgcz10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gcyE9PWkmJihlPShpPXMpJiZNeShuLHMpKSxlfXJldHVybiByLl92YWx1ZT10LHJ9ZnVuY3Rpb24gU3kobix0KXt2YXIgZSxpO2Z1bmN0aW9uIHIoKXt2YXIgcz10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gcyE9PWkmJihlPShpPXMpJiZ3eShuLHMpKSxlfXJldHVybiByLl92YWx1ZT10LHJ9ZnVuY3Rpb24gSGQobix0KXt2YXIgZT0iYXR0ci4iK247aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihlPXRoaXMudHdlZW4oZSkpJiZlLl92YWx1ZTtpZih0PT1udWxsKXJldHVybiB0aGlzLnR3ZWVuKGUsbnVsbCk7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yO3ZhciBpPXduKG4pO3JldHVybiB0aGlzLnR3ZWVuKGUsKGkubG9jYWw/Ynk6U3kpKGksdCkpfWZ1bmN0aW9uIEV5KG4sdCl7cmV0dXJuIGZ1bmN0aW9uKCl7X3ModGhpcyxuKS5kZWxheT0rdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIFR5KG4sdCl7cmV0dXJuIHQ9K3QsZnVuY3Rpb24oKXtfcyh0aGlzLG4pLmRlbGF5PXR9fWZ1bmN0aW9uIFZkKG4pe3ZhciB0PXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgodHlwZW9mIG49PSJmdW5jdGlvbiI/RXk6VHkpKHQsbikpOnVlKHRoaXMubm9kZSgpLHQpLmRlbGF5fWZ1bmN0aW9uIEF5KG4sdCl7cmV0dXJuIGZ1bmN0aW9uKCl7QWUodGhpcyxuKS5kdXJhdGlvbj0rdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIEN5KG4sdCl7cmV0dXJuIHQ9K3QsZnVuY3Rpb24oKXtBZSh0aGlzLG4pLmR1cmF0aW9uPXR9fWZ1bmN0aW9uIEdkKG4pe3ZhciB0PXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgodHlwZW9mIG49PSJmdW5jdGlvbiI/QXk6Q3kpKHQsbikpOnVlKHRoaXMubm9kZSgpLHQpLmR1cmF0aW9ufWZ1bmN0aW9uIFJ5KG4sdCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe0FlKHRoaXMsbikuZWFzZT10fX1mdW5jdGlvbiBXZChuKXt2YXIgdD10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goUnkodCxuKSk6dWUodGhpcy5ub2RlKCksdCkuZWFzZX1mdW5jdGlvbiBxZChuKXt0eXBlb2YgbiE9ImZ1bmN0aW9uIiYmKG49YXMobikpO2Zvcih2YXIgdD10aGlzLl9ncm91cHMsZT10Lmxlbmd0aCxpPW5ldyBBcnJheShlKSxyPTA7cjxlOysrcilmb3IodmFyIHM9dFtyXSxvPXMubGVuZ3RoLGE9aVtyXT1bXSxsLGM9MDtjPG87KytjKShsPXNbY10pJiZuLmNhbGwobCxsLl9fZGF0YV9fLGMscykmJmEucHVzaChsKTtyZXR1cm4gbmV3IHdlKGksdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX1mdW5jdGlvbiBYZChuKXtpZihuLl9pZCE9PXRoaXMuX2lkKXRocm93IG5ldyBFcnJvcjtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9bi5fZ3JvdXBzLGk9dC5sZW5ndGgscj1lLmxlbmd0aCxzPU1hdGgubWluKGksciksbz1uZXcgQXJyYXkoaSksYT0wO2E8czsrK2EpZm9yKHZhciBsPXRbYV0sYz1lW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxmLGQ9MDtkPHU7KytkKShmPWxbZF18fGNbZF0pJiYoaFtkXT1mKTtmb3IoO2E8aTsrK2Epb1thXT10W2FdO3JldHVybiBuZXcgd2Uobyx0aGlzLl9wYXJlbnRzLHRoaXMuX25hbWUsdGhpcy5faWQpfWZ1bmN0aW9uIEx5KG4pe3JldHVybihuKyIiKS50cmltKCkuc3BsaXQoL158XHMrLykuZXZlcnkoZnVuY3Rpb24odCl7dmFyIGU9dC5pbmRleE9mKCIuIik7cmV0dXJuIGU+PTAmJih0PXQuc2xpY2UoMCxlKSksIXR8fHQ9PT0ic3RhcnQifSl9ZnVuY3Rpb24gUHkobix0LGUpe3ZhciBpLHIscz1MeSh0KT9fczpBZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1zKHRoaXMsbiksYT1vLm9uO2EhPT1pJiYocj0oaT1hKS5jb3B5KCkpLm9uKHQsZSksby5vbj1yfX1mdW5jdGlvbiBZZChuLHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/dWUodGhpcy5ub2RlKCksZSkub24ub24obik6dGhpcy5lYWNoKFB5KGUsbix0KSl9ZnVuY3Rpb24gRHkobil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wYXJlbnROb2RlO2Zvcih2YXIgZSBpbiB0aGlzLl9fdHJhbnNpdGlvbilpZigrZSE9PW4pcmV0dXJuO3QmJnQucmVtb3ZlQ2hpbGQodGhpcyl9fWZ1bmN0aW9uIFpkKCl7cmV0dXJuIHRoaXMub24oImVuZC5yZW1vdmUiLER5KHRoaXMuX2lkKSl9ZnVuY3Rpb24gSmQobil7dmFyIHQ9dGhpcy5fbmFtZSxlPXRoaXMuX2lkO3R5cGVvZiBuIT0iZnVuY3Rpb24iJiYobj1kaShuKSk7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLHM9bmV3IEFycmF5KHIpLG89MDtvPHI7KytvKWZvcih2YXIgYT1pW29dLGw9YS5sZW5ndGgsYz1zW29dPW5ldyBBcnJheShsKSx1LGgsZj0wO2Y8bDsrK2YpKHU9YVtmXSkmJihoPW4uY2FsbCh1LHUuX19kYXRhX18sZixhKSkmJigiX19kYXRhX18iaW4gdSYmKGguX19kYXRhX189dS5fX2RhdGFfXyksY1tmXT1oLGtuKGNbZl0sdCxlLGYsYyx1ZSh1LGUpKSk7cmV0dXJuIG5ldyB3ZShzLHRoaXMuX3BhcmVudHMsdCxlKX1mdW5jdGlvbiAkZChuKXt2YXIgdD10aGlzLl9uYW1lLGU9dGhpcy5faWQ7dHlwZW9mIG4hPSJmdW5jdGlvbiImJihuPW9zKG4pKTtmb3IodmFyIGk9dGhpcy5fZ3JvdXBzLHI9aS5sZW5ndGgscz1bXSxvPVtdLGE9MDthPHI7KythKWZvcih2YXIgbD1pW2FdLGM9bC5sZW5ndGgsdSxoPTA7aDxjOysraClpZih1PWxbaF0pe2Zvcih2YXIgZj1uLmNhbGwodSx1Ll9fZGF0YV9fLGgsbCksZCxnPXVlKHUsZSkseD0wLHY9Zi5sZW5ndGg7eDx2OysreCkoZD1mW3hdKSYma24oZCx0LGUseCxmLGcpO3MucHVzaChmKSxvLnB1c2godSl9cmV0dXJuIG5ldyB3ZShzLG8sdCxlKX12YXIgSXk9TW4ucHJvdG90eXBlLmNvbnN0cnVjdG9yO2Z1bmN0aW9uIEtkKCl7cmV0dXJuIG5ldyBJeSh0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9ZnVuY3Rpb24gTnkobix0KXt2YXIgZSxpLHI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM9T24odGhpcyxuKSxvPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KG4pLE9uKHRoaXMsbikpO3JldHVybiBzPT09bz9udWxsOnM9PT1lJiZvPT09aT9yOnI9dChlPXMsaT1vKX19ZnVuY3Rpb24gUWQobil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShuKX19ZnVuY3Rpb24gRnkobix0LGUpe3ZhciBpLHI9ZSsiIixzO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPU9uKHRoaXMsbik7cmV0dXJuIG89PT1yP251bGw6bz09PWk/czpzPXQoaT1vLGUpfX1mdW5jdGlvbiB6eShuLHQsZSl7dmFyIGkscixzO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPU9uKHRoaXMsbiksYT1lKHRoaXMpLGw9YSsiIjtyZXR1cm4gYT09bnVsbCYmKGw9YT0odGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShuKSxPbih0aGlzLG4pKSksbz09PWw/bnVsbDpvPT09aSYmbD09PXI/czoocj1sLHM9dChpPW8sYSkpfX1mdW5jdGlvbiBVeShuLHQpe3ZhciBlLGkscixzPSJzdHlsZS4iK3Qsbz0iZW5kLiIrcyxhO3JldHVybiBmdW5jdGlvbigpe3ZhciBsPUFlKHRoaXMsbiksYz1sLm9uLHU9bC52YWx1ZVtzXT09bnVsbD9hfHwoYT1RZCh0KSk6dm9pZCAwOyhjIT09ZXx8ciE9PXUpJiYoaT0oZT1jKS5jb3B5KCkpLm9uKG8scj11KSxsLm9uPWl9fWZ1bmN0aW9uIGpkKG4sdCxlKXt2YXIgaT0obis9IiIpPT0idHJhbnNmb3JtIj9pYzp0YTtyZXR1cm4gdD09bnVsbD90aGlzLnN0eWxlVHdlZW4obixOeShuLGkpKS5vbigiZW5kLnN0eWxlLiIrbixRZChuKSk6dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dGhpcy5zdHlsZVR3ZWVuKG4senkobixpLGVyKHRoaXMsInN0eWxlLiIrbix0KSkpLmVhY2goVXkodGhpcy5faWQsbikpOnRoaXMuc3R5bGVUd2VlbihuLEZ5KG4saSx0KSxlKS5vbigiZW5kLnN0eWxlLiIrbixudWxsKX1mdW5jdGlvbiBCeShuLHQsZSl7cmV0dXJuIGZ1bmN0aW9uKGkpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkobix0LmNhbGwodGhpcyxpKSxlKX19ZnVuY3Rpb24gT3kobix0LGUpe3ZhciBpLHI7ZnVuY3Rpb24gcygpe3ZhciBvPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBvIT09ciYmKGk9KHI9bykmJkJ5KG4sbyxlKSksaX1yZXR1cm4gcy5fdmFsdWU9dCxzfWZ1bmN0aW9uIHRwKG4sdCxlKXt2YXIgaT0ic3R5bGUuIisobis9IiIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4oaT10aGlzLnR3ZWVuKGkpKSYmaS5fdmFsdWU7aWYodD09bnVsbClyZXR1cm4gdGhpcy50d2VlbihpLG51bGwpO2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gdGhpcy50d2VlbihpLE95KG4sdCxlPT1udWxsPyIiOmUpKX1mdW5jdGlvbiBreShuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PW59fWZ1bmN0aW9uIEh5KG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PW4odGhpcyk7dGhpcy50ZXh0Q29udGVudD10PT1udWxsPyIiOnR9fWZ1bmN0aW9uIGVwKG4pe3JldHVybiB0aGlzLnR3ZWVuKCJ0ZXh0Iix0eXBlb2Ygbj09ImZ1bmN0aW9uIj9IeShlcih0aGlzLCJ0ZXh0IixuKSk6a3kobj09bnVsbD8iIjpuKyIiKSl9ZnVuY3Rpb24gVnkobil7cmV0dXJuIGZ1bmN0aW9uKHQpe3RoaXMudGV4dENvbnRlbnQ9bi5jYWxsKHRoaXMsdCl9fWZ1bmN0aW9uIEd5KG4pe3ZhciB0LGU7ZnVuY3Rpb24gaSgpe3ZhciByPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiByIT09ZSYmKHQ9KGU9cikmJlZ5KHIpKSx0fXJldHVybiBpLl92YWx1ZT1uLGl9ZnVuY3Rpb24gbnAobil7dmFyIHQ9InRleHQiO2lmKGFyZ3VtZW50cy5sZW5ndGg8MSlyZXR1cm4odD10aGlzLnR3ZWVuKHQpKSYmdC5fdmFsdWU7aWYobj09bnVsbClyZXR1cm4gdGhpcy50d2Vlbih0LG51bGwpO2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gdGhpcy50d2Vlbih0LEd5KG4pKX1mdW5jdGlvbiBpcCgpe2Zvcih2YXIgbj10aGlzLl9uYW1lLHQ9dGhpcy5faWQsZT1lYSgpLGk9dGhpcy5fZ3JvdXBzLHI9aS5sZW5ndGgscz0wO3M8cjsrK3MpZm9yKHZhciBvPWlbc10sYT1vLmxlbmd0aCxsLGM9MDtjPGE7KytjKWlmKGw9b1tjXSl7dmFyIHU9dWUobCx0KTtrbihsLG4sZSxjLG8se3RpbWU6dS50aW1lK3UuZGVsYXkrdS5kdXJhdGlvbixkZWxheTowLGR1cmF0aW9uOnUuZHVyYXRpb24sZWFzZTp1LmVhc2V9KX1yZXR1cm4gbmV3IHdlKGksdGhpcy5fcGFyZW50cyxuLGUpfWZ1bmN0aW9uIHJwKCl7dmFyIG4sdCxlPXRoaXMsaT1lLl9pZCxyPWUuc2l6ZSgpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihzLG8pe3ZhciBhPXt2YWx1ZTpvfSxsPXt2YWx1ZTpmdW5jdGlvbigpey0tcj09PTAmJnMoKX19O2UuZWFjaChmdW5jdGlvbigpe3ZhciBjPUFlKHRoaXMsaSksdT1jLm9uO3UhPT1uJiYodD0obj11KS5jb3B5KCksdC5fLmNhbmNlbC5wdXNoKGEpLHQuXy5pbnRlcnJ1cHQucHVzaChhKSx0Ll8uZW5kLnB1c2gobCkpLGMub249dH0pfSl9dmFyIFd5PTA7ZnVuY3Rpb24gd2Uobix0LGUsaSl7dGhpcy5fZ3JvdXBzPW4sdGhpcy5fcGFyZW50cz10LHRoaXMuX25hbWU9ZSx0aGlzLl9pZD1pfWZ1bmN0aW9uIGxjKG4pe3JldHVybiBNbigpLnRyYW5zaXRpb24obil9ZnVuY3Rpb24gZWEoKXtyZXR1cm4rK1d5fXZhciBucj1Nbi5wcm90b3R5cGU7d2UucHJvdG90eXBlPWxjLnByb3RvdHlwZT17Y29uc3RydWN0b3I6d2Usc2VsZWN0OkpkLHNlbGVjdEFsbDokZCxmaWx0ZXI6cWQsbWVyZ2U6WGQsc2VsZWN0aW9uOktkLHRyYW5zaXRpb246aXAsY2FsbDpuci5jYWxsLG5vZGVzOm5yLm5vZGVzLG5vZGU6bnIubm9kZSxzaXplOm5yLnNpemUsZW1wdHk6bnIuZW1wdHksZWFjaDpuci5lYWNoLG9uOllkLGF0dHI6a2QsYXR0clR3ZWVuOkhkLHN0eWxlOmpkLHN0eWxlVHdlZW46dHAsdGV4dDplcCx0ZXh0VHdlZW46bnAscmVtb3ZlOlpkLHR3ZWVuOk9kLGRlbGF5OlZkLGR1cmF0aW9uOkdkLGVhc2U6V2QsZW5kOnJwfTtmdW5jdGlvbiBuYShuKXtyZXR1cm4oKG4qPTIpPD0xP24qbipuOihuLT0yKSpuKm4rMikvMn12YXIgY2M9e3RpbWU6bnVsbCxkZWxheTowLGR1cmF0aW9uOjI1MCxlYXNlOm5hfTtmdW5jdGlvbiBxeShuLHQpe2Zvcih2YXIgZTshKGU9bi5fX3RyYW5zaXRpb24pfHwhKGU9ZVt0XSk7KWlmKCEobj1uLnBhcmVudE5vZGUpKXJldHVybiBjYy50aW1lPXRyKCksY2M7cmV0dXJuIGV9ZnVuY3Rpb24gc3Aobil7dmFyIHQsZTtuIGluc3RhbmNlb2Ygd2U/KHQ9bi5faWQsbj1uLl9uYW1lKToodD1lYSgpLChlPWNjKS50aW1lPXRyKCksbj1uPT1udWxsP251bGw6bisiIik7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLHM9MDtzPHI7KytzKWZvcih2YXIgbz1pW3NdLGE9by5sZW5ndGgsbCxjPTA7YzxhOysrYykobD1vW2NdKSYma24obCxuLHQsYyxvLGV8fHF5KGwsdCkpO3JldHVybiBuZXcgd2UoaSx0aGlzLl9wYXJlbnRzLG4sdCl9TW4ucHJvdG90eXBlLmludGVycnVwdD1CZDtNbi5wcm90b3R5cGUudHJhbnNpdGlvbj1zcDtmdW5jdGlvbiBvcChuKXtyZXR1cm5bK25bMF0sK25bMV1dfWZ1bmN0aW9uIFh5KG4pe3JldHVybltvcChuWzBdKSxvcChuWzFdKV19dmFyIEdQPXtuYW1lOiJ4IixoYW5kbGVzOlsidyIsImUiXS5tYXAodWMpLGlucHV0OmZ1bmN0aW9uKG4sdCl7cmV0dXJuIG49PW51bGw/bnVsbDpbWytuWzBdLHRbMF1bMV1dLFsrblsxXSx0WzFdWzFdXV19LG91dHB1dDpmdW5jdGlvbihuKXtyZXR1cm4gbiYmW25bMF1bMF0sblsxXVswXV19fSxXUD17bmFtZToieSIsaGFuZGxlczpbIm4iLCJzIl0ubWFwKHVjKSxpbnB1dDpmdW5jdGlvbihuLHQpe3JldHVybiBuPT1udWxsP251bGw6W1t0WzBdWzBdLCtuWzBdXSxbdFsxXVswXSwrblsxXV1dfSxvdXRwdXQ6ZnVuY3Rpb24obil7cmV0dXJuIG4mJltuWzBdWzFdLG5bMV1bMV1dfX0scVA9e25hbWU6Inh5IixoYW5kbGVzOlsibiIsInciLCJlIiwicyIsIm53IiwibmUiLCJzdyIsInNlIl0ubWFwKHVjKSxpbnB1dDpmdW5jdGlvbihuKXtyZXR1cm4gbj09bnVsbD9udWxsOlh5KG4pfSxvdXRwdXQ6ZnVuY3Rpb24obil7cmV0dXJuIG59fTtmdW5jdGlvbiB1YyhuKXtyZXR1cm57dHlwZTpufX12YXIgYXA9TWF0aC5QSSxZeT1hcC8yLFp5PWFwKjI7dmFyIEp5PUFycmF5LnByb3RvdHlwZS5zbGljZTt2YXIgQmU9IiQiO2Z1bmN0aW9uIGlhKCl7fWlhLnByb3RvdHlwZT1scC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmlhLGhhczpmdW5jdGlvbihuKXtyZXR1cm4gQmUrbiBpbiB0aGlzfSxnZXQ6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXNbQmUrbl19LHNldDpmdW5jdGlvbihuLHQpe3JldHVybiB0aGlzW0JlK25dPXQsdGhpc30scmVtb3ZlOmZ1bmN0aW9uKG4pe3ZhciB0PUJlK247cmV0dXJuIHQgaW4gdGhpcyYmZGVsZXRlIHRoaXNbdF19LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciBuIGluIHRoaXMpblswXT09PUJlJiZkZWxldGUgdGhpc1tuXX0sa2V5czpmdW5jdGlvbigpe3ZhciBuPVtdO2Zvcih2YXIgdCBpbiB0aGlzKXRbMF09PT1CZSYmbi5wdXNoKHQuc2xpY2UoMSkpO3JldHVybiBufSx2YWx1ZXM6ZnVuY3Rpb24oKXt2YXIgbj1bXTtmb3IodmFyIHQgaW4gdGhpcyl0WzBdPT09QmUmJm4ucHVzaCh0aGlzW3RdKTtyZXR1cm4gbn0sZW50cmllczpmdW5jdGlvbigpe3ZhciBuPVtdO2Zvcih2YXIgdCBpbiB0aGlzKXRbMF09PT1CZSYmbi5wdXNoKHtrZXk6dC5zbGljZSgxKSx2YWx1ZTp0aGlzW3RdfSk7cmV0dXJuIG59LHNpemU6ZnVuY3Rpb24oKXt2YXIgbj0wO2Zvcih2YXIgdCBpbiB0aGlzKXRbMF09PT1CZSYmKytuO3JldHVybiBufSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgbiBpbiB0aGlzKWlmKG5bMF09PT1CZSlyZXR1cm4hMTtyZXR1cm4hMH0sZWFjaDpmdW5jdGlvbihuKXtmb3IodmFyIHQgaW4gdGhpcyl0WzBdPT09QmUmJm4odGhpc1t0XSx0LnNsaWNlKDEpLHRoaXMpfX07ZnVuY3Rpb24gbHAobix0KXt2YXIgZT1uZXcgaWE7aWYobiBpbnN0YW5jZW9mIGlhKW4uZWFjaChmdW5jdGlvbihhLGwpe2Uuc2V0KGwsYSl9KTtlbHNlIGlmKEFycmF5LmlzQXJyYXkobikpe3ZhciBpPS0xLHI9bi5sZW5ndGgscztpZih0PT1udWxsKWZvcig7KytpPHI7KWUuc2V0KGksbltpXSk7ZWxzZSBmb3IoOysraTxyOyllLnNldCh0KHM9bltpXSxpLG4pLHMpfWVsc2UgaWYobilmb3IodmFyIG8gaW4gbillLnNldChvLG5bb10pO3JldHVybiBlfXZhciB5aT1scDtmdW5jdGlvbiByYSgpe312YXIgdmk9eWkucHJvdG90eXBlO3JhLnByb3RvdHlwZT0keS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnJhLGhhczp2aS5oYXMsYWRkOmZ1bmN0aW9uKG4pe3JldHVybiBuKz0iIix0aGlzW0JlK25dPW4sdGhpc30scmVtb3ZlOnZpLnJlbW92ZSxjbGVhcjp2aS5jbGVhcix2YWx1ZXM6dmkua2V5cyxzaXplOnZpLnNpemUsZW1wdHk6dmkuZW1wdHksZWFjaDp2aS5lYWNofTtmdW5jdGlvbiAkeShuLHQpe3ZhciBlPW5ldyByYTtpZihuIGluc3RhbmNlb2YgcmEpbi5lYWNoKGZ1bmN0aW9uKHMpe2UuYWRkKHMpfSk7ZWxzZSBpZihuKXt2YXIgaT0tMSxyPW4ubGVuZ3RoO2lmKHQ9PW51bGwpZm9yKDsrK2k8cjspZS5hZGQobltpXSk7ZWxzZSBmb3IoOysraTxyOyllLmFkZCh0KG5baV0saSxuKSl9cmV0dXJuIGV9dmFyIEt5PUFycmF5LnByb3RvdHlwZSxjcD1LeS5zbGljZTt2YXIgVEk9TWF0aC5QSSooMy1NYXRoLnNxcnQoNSkpO2Z1bmN0aW9uIGhwKG4pe3JldHVybiBNYXRoLmFicyhuPU1hdGgucm91bmQobikpPj0xZTIxP24udG9Mb2NhbGVTdHJpbmcoImVuIikucmVwbGFjZSgvLC9nLCIiKTpuLnRvU3RyaW5nKDEwKX1mdW5jdGlvbiBfaShuLHQpe2lmKChlPShuPXQ/bi50b0V4cG9uZW50aWFsKHQtMSk6bi50b0V4cG9uZW50aWFsKCkpLmluZGV4T2YoImUiKSk8MClyZXR1cm4gbnVsbDt2YXIgZSxpPW4uc2xpY2UoMCxlKTtyZXR1cm5baS5sZW5ndGg+MT9pWzBdK2kuc2xpY2UoMik6aSwrbi5zbGljZShlKzEpXX1mdW5jdGlvbiB1bihuKXtyZXR1cm4gbj1faShNYXRoLmFicyhuKSksbj9uWzFdOk5hTn1mdW5jdGlvbiBmcChuLHQpe3JldHVybiBmdW5jdGlvbihlLGkpe2Zvcih2YXIgcj1lLmxlbmd0aCxzPVtdLG89MCxhPW5bMF0sbD0wO3I+MCYmYT4wJiYobCthKzE+aSYmKGE9TWF0aC5tYXgoMSxpLWwpKSxzLnB1c2goZS5zdWJzdHJpbmcoci09YSxyK2EpKSwhKChsKz1hKzEpPmkpKTspYT1uW289KG8rMSklbi5sZW5ndGhdO3JldHVybiBzLnJldmVyc2UoKS5qb2luKHQpfX1mdW5jdGlvbiBkcChuKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZSgvWzAtOV0vZyxmdW5jdGlvbihlKXtyZXR1cm4gblsrZV19KX19dmFyIHR2PS9eKD86KC4pPyhbPD49Xl0pKT8oWytcLSggXSk/KFskI10pPygwKT8oXGQrKT8oLCk/KFwuXGQrKT8ofik/KFthLXolXSk/JC9pO2Z1bmN0aW9uIEhuKG4pe2lmKCEodD10di5leGVjKG4pKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgZm9ybWF0OiAiK24pO3ZhciB0O3JldHVybiBuZXcgc2Eoe2ZpbGw6dFsxXSxhbGlnbjp0WzJdLHNpZ246dFszXSxzeW1ib2w6dFs0XSx6ZXJvOnRbNV0sd2lkdGg6dFs2XSxjb21tYTp0WzddLHByZWNpc2lvbjp0WzhdJiZ0WzhdLnNsaWNlKDEpLHRyaW06dFs5XSx0eXBlOnRbMTBdfSl9SG4ucHJvdG90eXBlPXNhLnByb3RvdHlwZTtmdW5jdGlvbiBzYShuKXt0aGlzLmZpbGw9bi5maWxsPT09dm9pZCAwPyIgIjpuLmZpbGwrIiIsdGhpcy5hbGlnbj1uLmFsaWduPT09dm9pZCAwPyI+IjpuLmFsaWduKyIiLHRoaXMuc2lnbj1uLnNpZ249PT12b2lkIDA/Ii0iOm4uc2lnbisiIix0aGlzLnN5bWJvbD1uLnN5bWJvbD09PXZvaWQgMD8iIjpuLnN5bWJvbCsiIix0aGlzLnplcm89ISFuLnplcm8sdGhpcy53aWR0aD1uLndpZHRoPT09dm9pZCAwP3ZvaWQgMDorbi53aWR0aCx0aGlzLmNvbW1hPSEhbi5jb21tYSx0aGlzLnByZWNpc2lvbj1uLnByZWNpc2lvbj09PXZvaWQgMD92b2lkIDA6K24ucHJlY2lzaW9uLHRoaXMudHJpbT0hIW4udHJpbSx0aGlzLnR5cGU9bi50eXBlPT09dm9pZCAwPyIiOm4udHlwZSsiIn1zYS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsK3RoaXMuYWxpZ24rdGhpcy5zaWduK3RoaXMuc3ltYm9sKyh0aGlzLnplcm8/IjAiOiIiKSsodGhpcy53aWR0aD09PXZvaWQgMD8iIjpNYXRoLm1heCgxLHRoaXMud2lkdGh8MCkpKyh0aGlzLmNvbW1hPyIsIjoiIikrKHRoaXMucHJlY2lzaW9uPT09dm9pZCAwPyIiOiIuIitNYXRoLm1heCgwLHRoaXMucHJlY2lzaW9ufDApKSsodGhpcy50cmltPyJ+IjoiIikrdGhpcy50eXBlfTtmdW5jdGlvbiBwcChuKXt0OmZvcih2YXIgdD1uLmxlbmd0aCxlPTEsaT0tMSxyO2U8dDsrK2Upc3dpdGNoKG5bZV0pe2Nhc2UiLiI6aT1yPWU7YnJlYWs7Y2FzZSIwIjppPT09MCYmKGk9ZSkscj1lO2JyZWFrO2RlZmF1bHQ6aWYoIStuW2VdKWJyZWFrIHQ7aT4wJiYoaT0wKTticmVha31yZXR1cm4gaT4wP24uc2xpY2UoMCxpKStuLnNsaWNlKHIrMSk6bn12YXIgaGM7ZnVuY3Rpb24gbXAobix0KXt2YXIgZT1faShuLHQpO2lmKCFlKXJldHVybiBuKyIiO3ZhciBpPWVbMF0scj1lWzFdLHM9ci0oaGM9TWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKHIvMykpKSozKSsxLG89aS5sZW5ndGg7cmV0dXJuIHM9PT1vP2k6cz5vP2krbmV3IEFycmF5KHMtbysxKS5qb2luKCIwIik6cz4wP2kuc2xpY2UoMCxzKSsiLiIraS5zbGljZShzKToiMC4iK25ldyBBcnJheSgxLXMpLmpvaW4oIjAiKStfaShuLE1hdGgubWF4KDAsdCtzLTEpKVswXX1mdW5jdGlvbiBmYyhuLHQpe3ZhciBlPV9pKG4sdCk7aWYoIWUpcmV0dXJuIG4rIiI7dmFyIGk9ZVswXSxyPWVbMV07cmV0dXJuIHI8MD8iMC4iK25ldyBBcnJheSgtcikuam9pbigiMCIpK2k6aS5sZW5ndGg+cisxP2kuc2xpY2UoMCxyKzEpKyIuIitpLnNsaWNlKHIrMSk6aStuZXcgQXJyYXkoci1pLmxlbmd0aCsyKS5qb2luKCIwIil9dmFyIGRjPXsiJSI6ZnVuY3Rpb24obix0KXtyZXR1cm4obioxMDApLnRvRml4ZWQodCl9LGI6ZnVuY3Rpb24obil7cmV0dXJuIE1hdGgucm91bmQobikudG9TdHJpbmcoMil9LGM6ZnVuY3Rpb24obil7cmV0dXJuIG4rIiJ9LGQ6aHAsZTpmdW5jdGlvbihuLHQpe3JldHVybiBuLnRvRXhwb25lbnRpYWwodCl9LGY6ZnVuY3Rpb24obix0KXtyZXR1cm4gbi50b0ZpeGVkKHQpfSxnOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4udG9QcmVjaXNpb24odCl9LG86ZnVuY3Rpb24obil7cmV0dXJuIE1hdGgucm91bmQobikudG9TdHJpbmcoOCl9LHA6ZnVuY3Rpb24obix0KXtyZXR1cm4gZmMobioxMDAsdCl9LHI6ZmMsczptcCxYOmZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnJvdW5kKG4pLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSx4OmZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnJvdW5kKG4pLnRvU3RyaW5nKDE2KX19O2Z1bmN0aW9uIHBjKG4pe3JldHVybiBufXZhciBncD1BcnJheS5wcm90b3R5cGUubWFwLHhwPVsieSIsInoiLCJhIiwiZiIsInAiLCJuIiwiXHhCNSIsIm0iLCIiLCJrIiwiTSIsIkciLCJUIiwiUCIsIkUiLCJaIiwiWSJdO2Z1bmN0aW9uIHlwKG4pe3ZhciB0PW4uZ3JvdXBpbmc9PT12b2lkIDB8fG4udGhvdXNhbmRzPT09dm9pZCAwP3BjOmZwKGdwLmNhbGwobi5ncm91cGluZyxOdW1iZXIpLG4udGhvdXNhbmRzKyIiKSxlPW4uY3VycmVuY3k9PT12b2lkIDA/IiI6bi5jdXJyZW5jeVswXSsiIixpPW4uY3VycmVuY3k9PT12b2lkIDA/IiI6bi5jdXJyZW5jeVsxXSsiIixyPW4uZGVjaW1hbD09PXZvaWQgMD8iLiI6bi5kZWNpbWFsKyIiLHM9bi5udW1lcmFscz09PXZvaWQgMD9wYzpkcChncC5jYWxsKG4ubnVtZXJhbHMsU3RyaW5nKSksbz1uLnBlcmNlbnQ9PT12b2lkIDA/IiUiOm4ucGVyY2VudCsiIixhPW4ubWludXM9PT12b2lkIDA/Ii0iOm4ubWludXMrIiIsbD1uLm5hbj09PXZvaWQgMD8iTmFOIjpuLm5hbisiIjtmdW5jdGlvbiBjKGgpe2g9SG4oaCk7dmFyIGY9aC5maWxsLGQ9aC5hbGlnbixnPWguc2lnbix4PWguc3ltYm9sLHY9aC56ZXJvLG09aC53aWR0aCxwPWguY29tbWEsYj1oLnByZWNpc2lvbixfPWgudHJpbSxTPWgudHlwZTtTPT09Im4iPyhwPSEwLFM9ImciKTpkY1tTXXx8KGI9PT12b2lkIDAmJihiPTEyKSxfPSEwLFM9ImciKSwodnx8Zj09PSIwIiYmZD09PSI9IikmJih2PSEwLGY9IjAiLGQ9Ij0iKTt2YXIgTD14PT09IiQiP2U6eD09PSIjIiYmL1tib3hYXS8udGVzdChTKT8iMCIrUy50b0xvd2VyQ2FzZSgpOiIiLEE9eD09PSIkIj9pOi9bJXBdLy50ZXN0KFMpP286IiIsSD1kY1tTXSx0dD0vW2RlZmdwcnMlXS8udGVzdChTKTtiPWI9PT12b2lkIDA/NjovW2dwcnNdLy50ZXN0KFMpP01hdGgubWF4KDEsTWF0aC5taW4oMjEsYikpOk1hdGgubWF4KDAsTWF0aC5taW4oMjAsYikpO2Z1bmN0aW9uIFgoeSl7dmFyIFI9TCxEPUEsRix6LE47aWYoUz09PSJjIilEPUgoeSkrRCx5PSIiO2Vsc2V7eT0reTt2YXIgVj15PDB8fDEveTwwO2lmKHk9aXNOYU4oeSk/bDpIKE1hdGguYWJzKHkpLGIpLF8mJih5PXBwKHkpKSxWJiYreT09MCYmZyE9PSIrIiYmKFY9ITEpLFI9KFY/Zz09PSIoIj9nOmE6Zz09PSItInx8Zz09PSIoIj8iIjpnKStSLEQ9KFM9PT0icyI/eHBbOCtoYy8zXToiIikrRCsoViYmZz09PSIoIj8iKSI6IiIpLHR0KXtmb3IoRj0tMSx6PXkubGVuZ3RoOysrRjx6OylpZihOPXkuY2hhckNvZGVBdChGKSw0OD5OfHxOPjU3KXtEPShOPT09NDY/cit5LnNsaWNlKEYrMSk6eS5zbGljZShGKSkrRCx5PXkuc2xpY2UoMCxGKTticmVha319fXAmJiF2JiYoeT10KHksMS8wKSk7dmFyIFE9Ui5sZW5ndGgreS5sZW5ndGgrRC5sZW5ndGgsYXQ9UTxtP25ldyBBcnJheShtLVErMSkuam9pbihmKToiIjtzd2l0Y2gocCYmdiYmKHk9dChhdCt5LGF0Lmxlbmd0aD9tLUQubGVuZ3RoOjEvMCksYXQ9IiIpLGQpe2Nhc2UiPCI6eT1SK3krRCthdDticmVhaztjYXNlIj0iOnk9UithdCt5K0Q7YnJlYWs7Y2FzZSJeIjp5PWF0LnNsaWNlKDAsUT1hdC5sZW5ndGg+PjEpK1IreStEK2F0LnNsaWNlKFEpO2JyZWFrO2RlZmF1bHQ6eT1hdCtSK3krRDticmVha31yZXR1cm4gcyh5KX1yZXR1cm4gWC50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBoKyIifSxYfWZ1bmN0aW9uIHUoaCxmKXt2YXIgZD1jKChoPUhuKGgpLGgudHlwZT0iZiIsaCkpLGc9TWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKHVuKGYpLzMpKSkqMyx4PU1hdGgucG93KDEwLC1nKSx2PXhwWzgrZy8zXTtyZXR1cm4gZnVuY3Rpb24obSl7cmV0dXJuIGQoeCptKSt2fX1yZXR1cm57Zm9ybWF0OmMsZm9ybWF0UHJlZml4OnV9fXZhciBvYSxPZSxhYTttYyh7ZGVjaW1hbDoiLiIsdGhvdXNhbmRzOiIsIixncm91cGluZzpbM10sY3VycmVuY3k6WyIkIiwiIl0sbWludXM6Ii0ifSk7ZnVuY3Rpb24gbWMobil7cmV0dXJuIG9hPXlwKG4pLE9lPW9hLmZvcm1hdCxhYT1vYS5mb3JtYXRQcmVmaXgsb2F9ZnVuY3Rpb24gZ2Mobil7cmV0dXJuIE1hdGgubWF4KDAsLXVuKE1hdGguYWJzKG4pKSl9ZnVuY3Rpb24geGMobix0KXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IodW4odCkvMykpKSozLXVuKE1hdGguYWJzKG4pKSl9ZnVuY3Rpb24geWMobix0KXtyZXR1cm4gbj1NYXRoLmFicyhuKSx0PU1hdGguYWJzKHQpLW4sTWF0aC5tYXgoMCx1bih0KS11bihuKSkrMX1mdW5jdGlvbiBXZSgpe3JldHVybiBNYXRoLnJhbmRvbSgpfXZhciBldj1mdW5jdGlvbiBuKHQpe2Z1bmN0aW9uIGUoaSxyKXtyZXR1cm4gaT1pPT1udWxsPzA6K2kscj1yPT1udWxsPzE6K3IsYXJndW1lbnRzLmxlbmd0aD09PTE/KHI9aSxpPTApOnItPWksZnVuY3Rpb24oKXtyZXR1cm4gdCgpKnIraX19cmV0dXJuIGUuc291cmNlPW4sZX0oV2UpO3ZhciB2Yz1mdW5jdGlvbiBuKHQpe2Z1bmN0aW9uIGUoaSxyKXt2YXIgcyxvO3JldHVybiBpPWk9PW51bGw/MDoraSxyPXI9PW51bGw/MTorcixmdW5jdGlvbigpe3ZhciBhO2lmKHMhPW51bGwpYT1zLHM9bnVsbDtlbHNlIGRvIHM9dCgpKjItMSxhPXQoKSoyLTEsbz1zKnMrYSphO3doaWxlKCFvfHxvPjEpO3JldHVybiBpK3IqYSpNYXRoLnNxcnQoLTIqTWF0aC5sb2cobykvbyl9fXJldHVybiBlLnNvdXJjZT1uLGV9KFdlKTt2YXIgbnY9ZnVuY3Rpb24gbih0KXtmdW5jdGlvbiBlKCl7dmFyIGk9dmMuc291cmNlKHQpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5leHAoaSgpKX19cmV0dXJuIGUuc291cmNlPW4sZX0oV2UpO3ZhciBfYz1mdW5jdGlvbiBuKHQpe2Z1bmN0aW9uIGUoaSl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciByPTAscz0wO3M8aTsrK3Mpcis9dCgpO3JldHVybiByfX1yZXR1cm4gZS5zb3VyY2U9bixlfShXZSk7dmFyIGl2PWZ1bmN0aW9uIG4odCl7ZnVuY3Rpb24gZShpKXt2YXIgcj1fYy5zb3VyY2UodCkoaSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIoKS9pfX1yZXR1cm4gZS5zb3VyY2U9bixlfShXZSk7dmFyIHJ2PWZ1bmN0aW9uIG4odCl7ZnVuY3Rpb24gZShpKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4tTWF0aC5sb2coMS10KCkpL2l9fXJldHVybiBlLnNvdXJjZT1uLGV9KFdlKTtmdW5jdGlvbiBQZShuLHQpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6YnJlYWs7Y2FzZSAxOnRoaXMucmFuZ2Uobik7YnJlYWs7ZGVmYXVsdDp0aGlzLnJhbmdlKHQpLmRvbWFpbihuKTticmVha31yZXR1cm4gdGhpc312YXIgdnA9QXJyYXkucHJvdG90eXBlLGJzPXZwLm1hcCx3aT12cC5zbGljZTtmdW5jdGlvbiBfcChuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbn19ZnVuY3Rpb24gd2Mobil7cmV0dXJuK259dmFyIHdwPVswLDFdO2Z1bmN0aW9uIERlKG4pe3JldHVybiBufWZ1bmN0aW9uIE1jKG4sdCl7cmV0dXJuKHQtPW49K24pP2Z1bmN0aW9uKGUpe3JldHVybihlLW4pL3R9Ol9wKGlzTmFOKHQpP05hTjouNSl9ZnVuY3Rpb24gTXAobil7dmFyIHQ9blswXSxlPW5bbi5sZW5ndGgtMV0saTtyZXR1cm4gdD5lJiYoaT10LHQ9ZSxlPWkpLGZ1bmN0aW9uKHIpe3JldHVybiBNYXRoLm1heCh0LE1hdGgubWluKGUscikpfX1mdW5jdGlvbiBvdihuLHQsZSl7dmFyIGk9blswXSxyPW5bMV0scz10WzBdLG89dFsxXTtyZXR1cm4gcjxpPyhpPU1jKHIsaSkscz1lKG8scykpOihpPU1jKGkscikscz1lKHMsbykpLGZ1bmN0aW9uKGEpe3JldHVybiBzKGkoYSkpfX1mdW5jdGlvbiBhdihuLHQsZSl7dmFyIGk9TWF0aC5taW4obi5sZW5ndGgsdC5sZW5ndGgpLTEscj1uZXcgQXJyYXkoaSkscz1uZXcgQXJyYXkoaSksbz0tMTtmb3IobltpXTxuWzBdJiYobj1uLnNsaWNlKCkucmV2ZXJzZSgpLHQ9dC5zbGljZSgpLnJldmVyc2UoKSk7KytvPGk7KXJbb109TWMobltvXSxuW28rMV0pLHNbb109ZSh0W29dLHRbbysxXSk7cmV0dXJuIGZ1bmN0aW9uKGEpe3ZhciBsPUJuKG4sYSwxLGkpLTE7cmV0dXJuIHNbbF0ocltsXShhKSl9fWZ1bmN0aW9uIFZuKG4sdCl7cmV0dXJuIHQuZG9tYWluKG4uZG9tYWluKCkpLnJhbmdlKG4ucmFuZ2UoKSkuaW50ZXJwb2xhdGUobi5pbnRlcnBvbGF0ZSgpKS5jbGFtcChuLmNsYW1wKCkpLnVua25vd24obi51bmtub3duKCkpfWZ1bmN0aW9uIFNzKCl7dmFyIG49d3AsdD13cCxlPWdpLGkscixzLG89RGUsYSxsLGM7ZnVuY3Rpb24gdSgpe3JldHVybiBhPU1hdGgubWluKG4ubGVuZ3RoLHQubGVuZ3RoKT4yP2F2Om92LGw9Yz1udWxsLGh9ZnVuY3Rpb24gaChmKXtyZXR1cm4gaXNOYU4oZj0rZik/czoobHx8KGw9YShuLm1hcChpKSx0LGUpKSkoaShvKGYpKSl9cmV0dXJuIGguaW52ZXJ0PWZ1bmN0aW9uKGYpe3JldHVybiBvKHIoKGN8fChjPWEodCxuLm1hcChpKSx5ZSkpKShmKSkpfSxoLmRvbWFpbj1mdW5jdGlvbihmKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1icy5jYWxsKGYsd2MpLG89PT1EZXx8KG89TXAobikpLHUoKSk6bi5zbGljZSgpfSxoLnJhbmdlPWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXdpLmNhbGwoZiksdSgpKTp0LnNsaWNlKCl9LGgucmFuZ2VSb3VuZD1mdW5jdGlvbihmKXtyZXR1cm4gdD13aS5jYWxsKGYpLGU9dGMsdSgpfSxoLmNsYW1wPWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPWY/TXAobik6RGUsaCk6byE9PURlfSxoLmludGVycG9sYXRlPWZ1bmN0aW9uKGYpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPWYsdSgpKTplfSxoLnVua25vd249ZnVuY3Rpb24oZil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9ZixoKTpzfSxmdW5jdGlvbihmLGQpe3JldHVybiBpPWYscj1kLHUoKX19ZnVuY3Rpb24gRXMobix0KXtyZXR1cm4gU3MoKShuLHQpfWZ1bmN0aW9uIGJjKG4sdCxlLGkpe3ZhciByPV9uKG4sdCxlKSxzO3N3aXRjaChpPUhuKGk9PW51bGw/IixmIjppKSxpLnR5cGUpe2Nhc2UicyI6e3ZhciBvPU1hdGgubWF4KE1hdGguYWJzKG4pLE1hdGguYWJzKHQpKTtyZXR1cm4gaS5wcmVjaXNpb249PW51bGwmJiFpc05hTihzPXhjKHIsbykpJiYoaS5wcmVjaXNpb249cyksYWEoaSxvKX1jYXNlIiI6Y2FzZSJlIjpjYXNlImciOmNhc2UicCI6Y2FzZSJyIjp7aS5wcmVjaXNpb249PW51bGwmJiFpc05hTihzPXljKHIsTWF0aC5tYXgoTWF0aC5hYnMobiksTWF0aC5hYnModCkpKSkmJihpLnByZWNpc2lvbj1zLShpLnR5cGU9PT0iZSIpKTticmVha31jYXNlImYiOmNhc2UiJSI6e2kucHJlY2lzaW9uPT1udWxsJiYhaXNOYU4ocz1nYyhyKSkmJihpLnByZWNpc2lvbj1zLShpLnR5cGU9PT0iJSIpKjIpO2JyZWFrfX1yZXR1cm4gT2UoaSl9ZnVuY3Rpb24gTWkobil7dmFyIHQ9bi5kb21haW47cmV0dXJuIG4udGlja3M9ZnVuY3Rpb24oZSl7dmFyIGk9dCgpO3JldHVybiBycyhpWzBdLGlbaS5sZW5ndGgtMV0sZT09bnVsbD8xMDplKX0sbi50aWNrRm9ybWF0PWZ1bmN0aW9uKGUsaSl7dmFyIHI9dCgpO3JldHVybiBiYyhyWzBdLHJbci5sZW5ndGgtMV0sZT09bnVsbD8xMDplLGkpfSxuLm5pY2U9ZnVuY3Rpb24oZSl7ZT09bnVsbCYmKGU9MTApO3ZhciBpPXQoKSxyPTAscz1pLmxlbmd0aC0xLG89aVtyXSxhPWlbc10sbDtyZXR1cm4gYTxvJiYobD1vLG89YSxhPWwsbD1yLHI9cyxzPWwpLGw9SmkobyxhLGUpLGw+MD8obz1NYXRoLmZsb29yKG8vbCkqbCxhPU1hdGguY2VpbChhL2wpKmwsbD1KaShvLGEsZSkpOmw8MCYmKG89TWF0aC5jZWlsKG8qbCkvbCxhPU1hdGguZmxvb3IoYSpsKS9sLGw9SmkobyxhLGUpKSxsPjA/KGlbcl09TWF0aC5mbG9vcihvL2wpKmwsaVtzXT1NYXRoLmNlaWwoYS9sKSpsLHQoaSkpOmw8MCYmKGlbcl09TWF0aC5jZWlsKG8qbCkvbCxpW3NdPU1hdGguZmxvb3IoYSpsKS9sLHQoaSkpLG59LG59ZnVuY3Rpb24gaXIoKXt2YXIgbj1FcyhEZSxEZSk7cmV0dXJuIG4uY29weT1mdW5jdGlvbigpe3JldHVybiBWbihuLGlyKCkpfSxQZS5hcHBseShuLGFyZ3VtZW50cyksTWkobil9ZnVuY3Rpb24gbGEobix0KXtuPW4uc2xpY2UoKTt2YXIgZT0wLGk9bi5sZW5ndGgtMSxyPW5bZV0scz1uW2ldLG87cmV0dXJuIHM8ciYmKG89ZSxlPWksaT1vLG89cixyPXMscz1vKSxuW2VdPXQuZmxvb3IociksbltpXT10LmNlaWwocyksbn1mdW5jdGlvbiBicChuKXtyZXR1cm4gTWF0aC5sb2cobil9ZnVuY3Rpb24gU3Aobil7cmV0dXJuIE1hdGguZXhwKG4pfWZ1bmN0aW9uIGx2KG4pe3JldHVybi1NYXRoLmxvZygtbil9ZnVuY3Rpb24gY3Yobil7cmV0dXJuLU1hdGguZXhwKC1uKX1mdW5jdGlvbiB1dihuKXtyZXR1cm4gaXNGaW5pdGUobik/KygiMWUiK24pOm48MD8wOm59ZnVuY3Rpb24gaHYobil7cmV0dXJuIG49PT0xMD91djpuPT09TWF0aC5FP01hdGguZXhwOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdyhuLHQpfX1mdW5jdGlvbiBmdihuKXtyZXR1cm4gbj09PU1hdGguRT9NYXRoLmxvZzpuPT09MTAmJk1hdGgubG9nMTB8fG49PT0yJiZNYXRoLmxvZzJ8fChuPU1hdGgubG9nKG4pLGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmxvZyh0KS9ufSl9ZnVuY3Rpb24gRXAobil7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybi1uKC10KX19ZnVuY3Rpb24gU2Mobil7dmFyIHQ9bihicCxTcCksZT10LmRvbWFpbixpPTEwLHIscztmdW5jdGlvbiBvKCl7cmV0dXJuIHI9ZnYoaSkscz1odihpKSxlKClbMF08MD8ocj1FcChyKSxzPUVwKHMpLG4obHYsY3YpKTpuKGJwLFNwKSx0fXJldHVybiB0LmJhc2U9ZnVuY3Rpb24oYSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K2EsbygpKTppfSx0LmRvbWFpbj1mdW5jdGlvbihhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZShhKSxvKCkpOmUoKX0sdC50aWNrcz1mdW5jdGlvbihhKXt2YXIgbD1lKCksYz1sWzBdLHU9bFtsLmxlbmd0aC0xXSxoOyhoPXU8YykmJihmPWMsYz11LHU9Zik7dmFyIGY9cihjKSxkPXIodSksZyx4LHYsbT1hPT1udWxsPzEwOithLHA9W107aWYoIShpJTEpJiZkLWY8bSl7aWYoZj1NYXRoLnJvdW5kKGYpLTEsZD1NYXRoLnJvdW5kKGQpKzEsYz4wKXtmb3IoO2Y8ZDsrK2YpZm9yKHg9MSxnPXMoZik7eDxpOysreClpZih2PWcqeCwhKHY8Yykpe2lmKHY+dSlicmVhaztwLnB1c2godil9fWVsc2UgZm9yKDtmPGQ7KytmKWZvcih4PWktMSxnPXMoZik7eD49MTstLXgpaWYodj1nKngsISh2PGMpKXtpZih2PnUpYnJlYWs7cC5wdXNoKHYpfX1lbHNlIHA9cnMoZixkLE1hdGgubWluKGQtZixtKSkubWFwKHMpO3JldHVybiBoP3AucmV2ZXJzZSgpOnB9LHQudGlja0Zvcm1hdD1mdW5jdGlvbihhLGwpe2lmKGw9PW51bGwmJihsPWk9PT0xMD8iLjBlIjoiLCIpLHR5cGVvZiBsIT0iZnVuY3Rpb24iJiYobD1PZShsKSksYT09PTEvMClyZXR1cm4gbDthPT1udWxsJiYoYT0xMCk7dmFyIGM9TWF0aC5tYXgoMSxpKmEvdC50aWNrcygpLmxlbmd0aCk7cmV0dXJuIGZ1bmN0aW9uKHUpe3ZhciBoPXUvcyhNYXRoLnJvdW5kKHIodSkpKTtyZXR1cm4gaCppPGktLjUmJihoKj1pKSxoPD1jP2wodSk6IiJ9fSx0Lm5pY2U9ZnVuY3Rpb24oKXtyZXR1cm4gZShsYShlKCkse2Zsb29yOmZ1bmN0aW9uKGEpe3JldHVybiBzKE1hdGguZmxvb3IocihhKSkpfSxjZWlsOmZ1bmN0aW9uKGEpe3JldHVybiBzKE1hdGguY2VpbChyKGEpKSl9fSkpfSx0fWZ1bmN0aW9uIFRzKCl7dmFyIG49U2MoU3MoKSkuZG9tYWluKFsxLDEwXSk7cmV0dXJuIG4uY29weT1mdW5jdGlvbigpe3JldHVybiBWbihuLFRzKCkpLmJhc2Uobi5iYXNlKCkpfSxQZS5hcHBseShuLGFyZ3VtZW50cyksbn12YXIgRWM9bmV3IERhdGUsVGM9bmV3IERhdGU7ZnVuY3Rpb24gWXQobix0LGUsaSl7ZnVuY3Rpb24gcihzKXtyZXR1cm4gbihzPWFyZ3VtZW50cy5sZW5ndGg9PT0wP25ldyBEYXRlOm5ldyBEYXRlKCtzKSksc31yZXR1cm4gci5mbG9vcj1mdW5jdGlvbihzKXtyZXR1cm4gbihzPW5ldyBEYXRlKCtzKSksc30sci5jZWlsPWZ1bmN0aW9uKHMpe3JldHVybiBuKHM9bmV3IERhdGUocy0xKSksdChzLDEpLG4ocyksc30sci5yb3VuZD1mdW5jdGlvbihzKXt2YXIgbz1yKHMpLGE9ci5jZWlsKHMpO3JldHVybiBzLW88YS1zP286YX0sci5vZmZzZXQ9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdChzPW5ldyBEYXRlKCtzKSxvPT1udWxsPzE6TWF0aC5mbG9vcihvKSksc30sci5yYW5nZT1mdW5jdGlvbihzLG8sYSl7dmFyIGw9W10sYztpZihzPXIuY2VpbChzKSxhPWE9PW51bGw/MTpNYXRoLmZsb29yKGEpLCEoczxvKXx8IShhPjApKXJldHVybiBsO2RvIGwucHVzaChjPW5ldyBEYXRlKCtzKSksdChzLGEpLG4ocyk7d2hpbGUoYzxzJiZzPG8pO3JldHVybiBsfSxyLmZpbHRlcj1mdW5jdGlvbihzKXtyZXR1cm4gWXQoZnVuY3Rpb24obyl7aWYobz49bylmb3IoO24obyksIXMobyk7KW8uc2V0VGltZShvLTEpfSxmdW5jdGlvbihvLGEpe2lmKG8+PW8paWYoYTwwKWZvcig7KythPD0wOylmb3IoO3QobywtMSksIXMobyk7KTtlbHNlIGZvcig7LS1hPj0wOylmb3IoO3QobywxKSwhcyhvKTspO30pfSxlJiYoci5jb3VudD1mdW5jdGlvbihzLG8pe3JldHVybiBFYy5zZXRUaW1lKCtzKSxUYy5zZXRUaW1lKCtvKSxuKEVjKSxuKFRjKSxNYXRoLmZsb29yKGUoRWMsVGMpKX0sci5ldmVyeT1mdW5jdGlvbihzKXtyZXR1cm4gcz1NYXRoLmZsb29yKHMpLCFpc0Zpbml0ZShzKXx8IShzPjApP251bGw6cz4xP3IuZmlsdGVyKGk/ZnVuY3Rpb24obyl7cmV0dXJuIGkobyklcz09PTB9OmZ1bmN0aW9uKG8pe3JldHVybiByLmNvdW50KDAsbyklcz09PTB9KTpyfSkscn12YXIgY2E9WXQoZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKG4sdCl7bi5zZXRUaW1lKCtuK3QpfSxmdW5jdGlvbihuLHQpe3JldHVybiB0LW59KTtjYS5ldmVyeT1mdW5jdGlvbihuKXtyZXR1cm4gbj1NYXRoLmZsb29yKG4pLCFpc0Zpbml0ZShuKXx8IShuPjApP251bGw6bj4xP1l0KGZ1bmN0aW9uKHQpe3Quc2V0VGltZShNYXRoLmZsb29yKHQvbikqbil9LGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2Uqbil9LGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvbn0pOmNhfTt2YXIgdWE9Y2EsVHA9Y2EucmFuZ2U7dmFyIGJpPTFlMyxTbj02ZTQsQWM9MzZlNSxoYT04NjRlNSxmYT02MDQ4ZTU7dmFyIEFwPVl0KGZ1bmN0aW9uKG4pe24uc2V0VGltZShuLW4uZ2V0TWlsbGlzZWNvbmRzKCkpfSxmdW5jdGlvbihuLHQpe24uc2V0VGltZSgrbit0KmJpKX0sZnVuY3Rpb24obix0KXtyZXR1cm4odC1uKS9iaX0sZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0VVRDU2Vjb25kcygpfSksZGE9QXAsQ3A9QXAucmFuZ2U7dmFyIFJwPVl0KGZ1bmN0aW9uKG4pe24uc2V0VGltZShuLW4uZ2V0TWlsbGlzZWNvbmRzKCktbi5nZXRTZWNvbmRzKCkqYmkpfSxmdW5jdGlvbihuLHQpe24uc2V0VGltZSgrbit0KlNuKX0sZnVuY3Rpb24obix0KXtyZXR1cm4odC1uKS9Tbn0sZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0TWludXRlcygpfSksQ2M9UnAsZHY9UnAucmFuZ2U7dmFyIExwPVl0KGZ1bmN0aW9uKG4pe24uc2V0VGltZShuLW4uZ2V0TWlsbGlzZWNvbmRzKCktbi5nZXRTZWNvbmRzKCkqYmktbi5nZXRNaW51dGVzKCkqU24pfSxmdW5jdGlvbihuLHQpe24uc2V0VGltZSgrbit0KkFjKX0sZnVuY3Rpb24obix0KXtyZXR1cm4odC1uKS9BY30sZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0SG91cnMoKX0pLFJjPUxwLHB2PUxwLnJhbmdlO3ZhciBQcD1ZdChmdW5jdGlvbihuKXtuLnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbihuLHQpe24uc2V0RGF0ZShuLmdldERhdGUoKSt0KX0sZnVuY3Rpb24obix0KXtyZXR1cm4odC1uLSh0LmdldFRpbWV6b25lT2Zmc2V0KCktbi5nZXRUaW1lem9uZU9mZnNldCgpKSpTbikvaGF9LGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldERhdGUoKS0xfSkscnI9UHAsbXY9UHAucmFuZ2U7ZnVuY3Rpb24gU2kobil7cmV0dXJuIFl0KGZ1bmN0aW9uKHQpe3Quc2V0RGF0ZSh0LmdldERhdGUoKS0odC5nZXREYXkoKSs3LW4pJTcpLHQuc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsZSl7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpK2UqNyl9LGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdC0oZS5nZXRUaW1lem9uZU9mZnNldCgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSkqU24pL2ZhfSl9dmFyIEVpPVNpKDApLHNyPVNpKDEpLERwPVNpKDIpLElwPVNpKDMpLEduPVNpKDQpLE5wPVNpKDUpLEZwPVNpKDYpLHpwPUVpLnJhbmdlLGd2PXNyLnJhbmdlLHh2PURwLnJhbmdlLHl2PUlwLnJhbmdlLHZ2PUduLnJhbmdlLF92PU5wLnJhbmdlLHd2PUZwLnJhbmdlO3ZhciBVcD1ZdChmdW5jdGlvbihuKXtuLnNldERhdGUoMSksbi5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24obix0KXtuLnNldE1vbnRoKG4uZ2V0TW9udGgoKSt0KX0sZnVuY3Rpb24obix0KXtyZXR1cm4gdC5nZXRNb250aCgpLW4uZ2V0TW9udGgoKSsodC5nZXRGdWxsWWVhcigpLW4uZ2V0RnVsbFllYXIoKSkqMTJ9LGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldE1vbnRoKCl9KSxMYz1VcCxNdj1VcC5yYW5nZTt2YXIgUGM9WXQoZnVuY3Rpb24obil7bi5zZXRNb250aCgwLDEpLG4uc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKG4sdCl7bi5zZXRGdWxsWWVhcihuLmdldEZ1bGxZZWFyKCkrdCl9LGZ1bmN0aW9uKG4sdCl7cmV0dXJuIHQuZ2V0RnVsbFllYXIoKS1uLmdldEZ1bGxZZWFyKCl9LGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldEZ1bGxZZWFyKCl9KTtQYy5ldmVyeT1mdW5jdGlvbihuKXtyZXR1cm4haXNGaW5pdGUobj1NYXRoLmZsb29yKG4pKXx8IShuPjApP251bGw6WXQoZnVuY3Rpb24odCl7dC5zZXRGdWxsWWVhcihNYXRoLmZsb29yKHQuZ2V0RnVsbFllYXIoKS9uKSpuKSx0LnNldE1vbnRoKDAsMSksdC5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxlKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStlKm4pfSl9O3ZhciBFbj1QYyxidj1QYy5yYW5nZTt2YXIgQnA9WXQoZnVuY3Rpb24obil7bi5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24obix0KXtuLnNldFVUQ0RhdGUobi5nZXRVVENEYXRlKCkrdCl9LGZ1bmN0aW9uKG4sdCl7cmV0dXJuKHQtbikvaGF9LGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldFVUQ0RhdGUoKS0xfSkscGE9QnAsU3Y9QnAucmFuZ2U7ZnVuY3Rpb24gVGkobil7cmV0dXJuIFl0KGZ1bmN0aW9uKHQpe3Quc2V0VVRDRGF0ZSh0LmdldFVUQ0RhdGUoKS0odC5nZXRVVENEYXkoKSs3LW4pJTcpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpK2UqNyl9LGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvZmF9KX12YXIgQXM9VGkoMCksb3I9VGkoMSksT3A9VGkoMiksa3A9VGkoMyksV249VGkoNCksSHA9VGkoNSksVnA9VGkoNiksR3A9QXMucmFuZ2UsRXY9b3IucmFuZ2UsVHY9T3AucmFuZ2UsQXY9a3AucmFuZ2UsQ3Y9V24ucmFuZ2UsUnY9SHAucmFuZ2UsTHY9VnAucmFuZ2U7dmFyIERjPVl0KGZ1bmN0aW9uKG4pe24uc2V0VVRDTW9udGgoMCwxKSxuLnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbihuLHQpe24uc2V0VVRDRnVsbFllYXIobi5nZXRVVENGdWxsWWVhcigpK3QpfSxmdW5jdGlvbihuLHQpe3JldHVybiB0LmdldFVUQ0Z1bGxZZWFyKCktbi5nZXRVVENGdWxsWWVhcigpfSxmdW5jdGlvbihuKXtyZXR1cm4gbi5nZXRVVENGdWxsWWVhcigpfSk7RGMuZXZlcnk9ZnVuY3Rpb24obil7cmV0dXJuIWlzRmluaXRlKG49TWF0aC5mbG9vcihuKSl8fCEobj4wKT9udWxsOll0KGZ1bmN0aW9uKHQpe3Quc2V0VVRDRnVsbFllYXIoTWF0aC5mbG9vcih0LmdldFVUQ0Z1bGxZZWFyKCkvbikqbiksdC5zZXRVVENNb250aCgwLDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENGdWxsWWVhcih0LmdldFVUQ0Z1bGxZZWFyKCkrZSpuKX0pfTt2YXIgQWk9RGMsUHY9RGMucmFuZ2U7ZnVuY3Rpb24gSWMobil7aWYoMDw9bi55JiZuLnk8MTAwKXt2YXIgdD1uZXcgRGF0ZSgtMSxuLm0sbi5kLG4uSCxuLk0sbi5TLG4uTCk7cmV0dXJuIHQuc2V0RnVsbFllYXIobi55KSx0fXJldHVybiBuZXcgRGF0ZShuLnksbi5tLG4uZCxuLkgsbi5NLG4uUyxuLkwpfWZ1bmN0aW9uIE5jKG4pe2lmKDA8PW4ueSYmbi55PDEwMCl7dmFyIHQ9bmV3IERhdGUoRGF0ZS5VVEMoLTEsbi5tLG4uZCxuLkgsbi5NLG4uUyxuLkwpKTtyZXR1cm4gdC5zZXRVVENGdWxsWWVhcihuLnkpLHR9cmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKG4ueSxuLm0sbi5kLG4uSCxuLk0sbi5TLG4uTCkpfWZ1bmN0aW9uIENzKG4sdCxlKXtyZXR1cm57eTpuLG06dCxkOmUsSDowLE06MCxTOjAsTDowfX1mdW5jdGlvbiBGYyhuKXt2YXIgdD1uLmRhdGVUaW1lLGU9bi5kYXRlLGk9bi50aW1lLHI9bi5wZXJpb2RzLHM9bi5kYXlzLG89bi5zaG9ydERheXMsYT1uLm1vbnRocyxsPW4uc2hvcnRNb250aHMsYz1ScyhyKSx1PUxzKHIpLGg9UnMocyksZj1McyhzKSxkPVJzKG8pLGc9THMobykseD1ScyhhKSx2PUxzKGEpLG09UnMobCkscD1McyhsKSxiPXthOlYsQTpRLGI6YXQsQjpHLGM6bnVsbCxkOkpwLGU6SnAsZjp0XyxnOnVfLEc6Zl8sSDpLdixJOlF2LGo6anYsTDp0bSxtOmVfLE06bl8scDokLHE6bHQsUTpRcCxzOmpwLFM6aV8sdTpyXyxVOnNfLFY6b18sdzphXyxXOmxfLHg6bnVsbCxYOm51bGwseTpjXyxZOmhfLFo6ZF8sIiUiOktwfSxfPXthOmR0LEE6eHQsYjprLEI6RnQsYzpudWxsLGQ6JHAsZTokcCxmOnhfLGc6QV8sRzpSXyxIOnBfLEk6bV8sajpnXyxMOm5tLG06eV8sTTp2XyxwOm10LHE6U3QsUTpRcCxzOmpwLFM6X18sdTp3XyxVOk1fLFY6Yl8sdzpTXyxXOkVfLHg6bnVsbCxYOm51bGwseTpUXyxZOkNfLFo6TF8sIiUiOktwfSxTPXthOlgsQTp5LGI6UixCOkQsYzpGLGQ6WXAsZTpZcCxmOll2LGc6WHAsRzpxcCxIOlpwLEk6WnAsajpHdixMOlh2LG06VnYsTTpXdixwOnR0LHE6SHYsUTpKdixzOiR2LFM6cXYsdTp6dixVOlV2LFY6QnYsdzpGdixXOk92LHg6eixYOk4seTpYcCxZOnFwLFo6a3YsIiUiOlp2fTtiLng9TChlLGIpLGIuWD1MKGksYiksYi5jPUwodCxiKSxfLng9TChlLF8pLF8uWD1MKGksXyksXy5jPUwodCxfKTtmdW5jdGlvbiBMKEIsc3Qpe3JldHVybiBmdW5jdGlvbihudCl7dmFyIEM9W10saj0tMSxKPTAsaXQ9Qi5sZW5ndGgsZXQsdnQsYnQ7Zm9yKG50IGluc3RhbmNlb2YgRGF0ZXx8KG50PW5ldyBEYXRlKCtudCkpOysrajxpdDspQi5jaGFyQ29kZUF0KGopPT09MzcmJihDLnB1c2goQi5zbGljZShKLGopKSwodnQ9V3BbZXQ9Qi5jaGFyQXQoKytqKV0pIT1udWxsP2V0PUIuY2hhckF0KCsraik6dnQ9ZXQ9PT0iZSI/IiAiOiIwIiwoYnQ9c3RbZXRdKSYmKGV0PWJ0KG50LHZ0KSksQy5wdXNoKGV0KSxKPWorMSk7cmV0dXJuIEMucHVzaChCLnNsaWNlKEosaikpLEMuam9pbigiIil9fWZ1bmN0aW9uIEEoQixzdCl7cmV0dXJuIGZ1bmN0aW9uKG50KXt2YXIgQz1DcygxOTAwLHZvaWQgMCwxKSxqPUgoQyxCLG50Kz0iIiwwKSxKLGl0O2lmKGohPW50Lmxlbmd0aClyZXR1cm4gbnVsbDtpZigiUSJpbiBDKXJldHVybiBuZXcgRGF0ZShDLlEpO2lmKCJzImluIEMpcmV0dXJuIG5ldyBEYXRlKEMucyoxZTMrKCJMImluIEM/Qy5MOjApKTtpZihzdCYmISgiWiJpbiBDKSYmKEMuWj0wKSwicCJpbiBDJiYoQy5IPUMuSCUxMitDLnAqMTIpLEMubT09PXZvaWQgMCYmKEMubT0icSJpbiBDP0MucTowKSwiViJpbiBDKXtpZihDLlY8MXx8Qy5WPjUzKXJldHVybiBudWxsOyJ3ImluIEN8fChDLnc9MSksIloiaW4gQz8oSj1OYyhDcyhDLnksMCwxKSksaXQ9Si5nZXRVVENEYXkoKSxKPWl0PjR8fGl0PT09MD9vci5jZWlsKEopOm9yKEopLEo9cGEub2Zmc2V0KEosKEMuVi0xKSo3KSxDLnk9Si5nZXRVVENGdWxsWWVhcigpLEMubT1KLmdldFVUQ01vbnRoKCksQy5kPUouZ2V0VVRDRGF0ZSgpKyhDLncrNiklNyk6KEo9SWMoQ3MoQy55LDAsMSkpLGl0PUouZ2V0RGF5KCksSj1pdD40fHxpdD09PTA/c3IuY2VpbChKKTpzcihKKSxKPXJyLm9mZnNldChKLChDLlYtMSkqNyksQy55PUouZ2V0RnVsbFllYXIoKSxDLm09Si5nZXRNb250aCgpLEMuZD1KLmdldERhdGUoKSsoQy53KzYpJTcpfWVsc2UoIlciaW4gQ3x8IlUiaW4gQykmJigidyJpbiBDfHwoQy53PSJ1ImluIEM/Qy51JTc6IlciaW4gQz8xOjApLGl0PSJaImluIEM/TmMoQ3MoQy55LDAsMSkpLmdldFVUQ0RheSgpOkljKENzKEMueSwwLDEpKS5nZXREYXkoKSxDLm09MCxDLmQ9IlciaW4gQz8oQy53KzYpJTcrQy5XKjctKGl0KzUpJTc6Qy53K0MuVSo3LShpdCs2KSU3KTtyZXR1cm4iWiJpbiBDPyhDLkgrPUMuWi8xMDB8MCxDLk0rPUMuWiUxMDAsTmMoQykpOkljKEMpfX1mdW5jdGlvbiBIKEIsc3QsbnQsQyl7Zm9yKHZhciBqPTAsSj1zdC5sZW5ndGgsaXQ9bnQubGVuZ3RoLGV0LHZ0O2o8Sjspe2lmKEM+PWl0KXJldHVybi0xO2lmKGV0PXN0LmNoYXJDb2RlQXQoaisrKSxldD09PTM3KXtpZihldD1zdC5jaGFyQXQoaisrKSx2dD1TW2V0IGluIFdwP3N0LmNoYXJBdChqKyspOmV0XSwhdnR8fChDPXZ0KEIsbnQsQykpPDApcmV0dXJuLTF9ZWxzZSBpZihldCE9bnQuY2hhckNvZGVBdChDKyspKXJldHVybi0xfXJldHVybiBDfWZ1bmN0aW9uIHR0KEIsc3QsbnQpe3ZhciBDPWMuZXhlYyhzdC5zbGljZShudCkpO3JldHVybiBDPyhCLnA9dVtDWzBdLnRvTG93ZXJDYXNlKCldLG50K0NbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBYKEIsc3QsbnQpe3ZhciBDPWQuZXhlYyhzdC5zbGljZShudCkpO3JldHVybiBDPyhCLnc9Z1tDWzBdLnRvTG93ZXJDYXNlKCldLG50K0NbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB5KEIsc3QsbnQpe3ZhciBDPWguZXhlYyhzdC5zbGljZShudCkpO3JldHVybiBDPyhCLnc9ZltDWzBdLnRvTG93ZXJDYXNlKCldLG50K0NbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBSKEIsc3QsbnQpe3ZhciBDPW0uZXhlYyhzdC5zbGljZShudCkpO3JldHVybiBDPyhCLm09cFtDWzBdLnRvTG93ZXJDYXNlKCldLG50K0NbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBEKEIsc3QsbnQpe3ZhciBDPXguZXhlYyhzdC5zbGljZShudCkpO3JldHVybiBDPyhCLm09dltDWzBdLnRvTG93ZXJDYXNlKCldLG50K0NbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBGKEIsc3QsbnQpe3JldHVybiBIKEIsdCxzdCxudCl9ZnVuY3Rpb24geihCLHN0LG50KXtyZXR1cm4gSChCLGUsc3QsbnQpfWZ1bmN0aW9uIE4oQixzdCxudCl7cmV0dXJuIEgoQixpLHN0LG50KX1mdW5jdGlvbiBWKEIpe3JldHVybiBvW0IuZ2V0RGF5KCldfWZ1bmN0aW9uIFEoQil7cmV0dXJuIHNbQi5nZXREYXkoKV19ZnVuY3Rpb24gYXQoQil7cmV0dXJuIGxbQi5nZXRNb250aCgpXX1mdW5jdGlvbiBHKEIpe3JldHVybiBhW0IuZ2V0TW9udGgoKV19ZnVuY3Rpb24gJChCKXtyZXR1cm4gclsrKEIuZ2V0SG91cnMoKT49MTIpXX1mdW5jdGlvbiBsdChCKXtyZXR1cm4gMSt+fihCLmdldE1vbnRoKCkvMyl9ZnVuY3Rpb24gZHQoQil7cmV0dXJuIG9bQi5nZXRVVENEYXkoKV19ZnVuY3Rpb24geHQoQil7cmV0dXJuIHNbQi5nZXRVVENEYXkoKV19ZnVuY3Rpb24gayhCKXtyZXR1cm4gbFtCLmdldFVUQ01vbnRoKCldfWZ1bmN0aW9uIEZ0KEIpe3JldHVybiBhW0IuZ2V0VVRDTW9udGgoKV19ZnVuY3Rpb24gbXQoQil7cmV0dXJuIHJbKyhCLmdldFVUQ0hvdXJzKCk+PTEyKV19ZnVuY3Rpb24gU3QoQil7cmV0dXJuIDErfn4oQi5nZXRVVENNb250aCgpLzMpfXJldHVybntmb3JtYXQ6ZnVuY3Rpb24oQil7dmFyIHN0PUwoQis9IiIsYik7cmV0dXJuIHN0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIEJ9LHN0fSxwYXJzZTpmdW5jdGlvbihCKXt2YXIgc3Q9QShCKz0iIiwhMSk7cmV0dXJuIHN0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIEJ9LHN0fSx1dGNGb3JtYXQ6ZnVuY3Rpb24oQil7dmFyIHN0PUwoQis9IiIsXyk7cmV0dXJuIHN0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIEJ9LHN0fSx1dGNQYXJzZTpmdW5jdGlvbihCKXt2YXIgc3Q9QShCKz0iIiwhMCk7cmV0dXJuIHN0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIEJ9LHN0fX19dmFyIFdwPXsiLSI6IiIsXzoiICIsMDoiMCJ9LHBlPS9eXHMqXGQrLyxEdj0vXiUvLEl2PS9bXFxeJCorP3xbXF0oKS57fV0vZztmdW5jdGlvbiBCdChuLHQsZSl7dmFyIGk9bjwwPyItIjoiIixyPShpPy1uOm4pKyIiLHM9ci5sZW5ndGg7cmV0dXJuIGkrKHM8ZT9uZXcgQXJyYXkoZS1zKzEpLmpvaW4odCkrcjpyKX1mdW5jdGlvbiBOdihuKXtyZXR1cm4gbi5yZXBsYWNlKEl2LCJcXCQmIil9ZnVuY3Rpb24gUnMobil7cmV0dXJuIG5ldyBSZWdFeHAoIl4oPzoiK24ubWFwKE52KS5qb2luKCJ8IikrIikiLCJpIil9ZnVuY3Rpb24gTHMobil7Zm9yKHZhciB0PXt9LGU9LTEsaT1uLmxlbmd0aDsrK2U8aTspdFtuW2VdLnRvTG93ZXJDYXNlKCldPWU7cmV0dXJuIHR9ZnVuY3Rpb24gRnYobix0LGUpe3ZhciBpPXBlLmV4ZWModC5zbGljZShlLGUrMSkpO3JldHVybiBpPyhuLnc9K2lbMF0sZStpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24genYobix0LGUpe3ZhciBpPXBlLmV4ZWModC5zbGljZShlLGUrMSkpO3JldHVybiBpPyhuLnU9K2lbMF0sZStpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gVXYobix0LGUpe3ZhciBpPXBlLmV4ZWModC5zbGljZShlLGUrMikpO3JldHVybiBpPyhuLlU9K2lbMF0sZStpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQnYobix0LGUpe3ZhciBpPXBlLmV4ZWModC5zbGljZShlLGUrMikpO3JldHVybiBpPyhuLlY9K2lbMF0sZStpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gT3Yobix0LGUpe3ZhciBpPXBlLmV4ZWModC5zbGljZShlLGUrMikpO3JldHVybiBpPyhuLlc9K2lbMF0sZStpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gcXAobix0LGUpe3ZhciBpPXBlLmV4ZWModC5zbGljZShlLGUrNCkpO3JldHVybiBpPyhuLnk9K2lbMF0sZStpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gWHAobix0LGUpe3ZhciBpPXBlLmV4ZWModC5zbGljZShlLGUrMikpO3JldHVybiBpPyhuLnk9K2lbMF0rKCtpWzBdPjY4PzE5MDA6MmUzKSxlK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBrdihuLHQsZSl7dmFyIGk9L14oWil8KFsrLV1cZFxkKSg/Ojo/KFxkXGQpKT8vLmV4ZWModC5zbGljZShlLGUrNikpO3JldHVybiBpPyhuLlo9aVsxXT8wOi0oaVsyXSsoaVszXXx8IjAwIikpLGUraVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEh2KG4sdCxlKXt2YXIgaT1wZS5leGVjKHQuc2xpY2UoZSxlKzEpKTtyZXR1cm4gaT8obi5xPWlbMF0qMy0zLGUraVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFZ2KG4sdCxlKXt2YXIgaT1wZS5leGVjKHQuc2xpY2UoZSxlKzIpKTtyZXR1cm4gaT8obi5tPWlbMF0tMSxlK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBZcChuLHQsZSl7dmFyIGk9cGUuZXhlYyh0LnNsaWNlKGUsZSsyKSk7cmV0dXJuIGk/KG4uZD0raVswXSxlK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBHdihuLHQsZSl7dmFyIGk9cGUuZXhlYyh0LnNsaWNlKGUsZSszKSk7cmV0dXJuIGk/KG4ubT0wLG4uZD0raVswXSxlK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBacChuLHQsZSl7dmFyIGk9cGUuZXhlYyh0LnNsaWNlKGUsZSsyKSk7cmV0dXJuIGk/KG4uSD0raVswXSxlK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBXdihuLHQsZSl7dmFyIGk9cGUuZXhlYyh0LnNsaWNlKGUsZSsyKSk7cmV0dXJuIGk/KG4uTT0raVswXSxlK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBxdihuLHQsZSl7dmFyIGk9cGUuZXhlYyh0LnNsaWNlKGUsZSsyKSk7cmV0dXJuIGk/KG4uUz0raVswXSxlK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBYdihuLHQsZSl7dmFyIGk9cGUuZXhlYyh0LnNsaWNlKGUsZSszKSk7cmV0dXJuIGk/KG4uTD0raVswXSxlK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBZdihuLHQsZSl7dmFyIGk9cGUuZXhlYyh0LnNsaWNlKGUsZSs2KSk7cmV0dXJuIGk/KG4uTD1NYXRoLmZsb29yKGlbMF0vMWUzKSxlK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBadihuLHQsZSl7dmFyIGk9RHYuZXhlYyh0LnNsaWNlKGUsZSsxKSk7cmV0dXJuIGk/ZStpWzBdLmxlbmd0aDotMX1mdW5jdGlvbiBKdihuLHQsZSl7dmFyIGk9cGUuZXhlYyh0LnNsaWNlKGUpKTtyZXR1cm4gaT8obi5RPStpWzBdLGUraVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uICR2KG4sdCxlKXt2YXIgaT1wZS5leGVjKHQuc2xpY2UoZSkpO3JldHVybiBpPyhuLnM9K2lbMF0sZStpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gSnAobix0KXtyZXR1cm4gQnQobi5nZXREYXRlKCksdCwyKX1mdW5jdGlvbiBLdihuLHQpe3JldHVybiBCdChuLmdldEhvdXJzKCksdCwyKX1mdW5jdGlvbiBRdihuLHQpe3JldHVybiBCdChuLmdldEhvdXJzKCklMTJ8fDEyLHQsMil9ZnVuY3Rpb24ganYobix0KXtyZXR1cm4gQnQoMStyci5jb3VudChFbihuKSxuKSx0LDMpfWZ1bmN0aW9uIHRtKG4sdCl7cmV0dXJuIEJ0KG4uZ2V0TWlsbGlzZWNvbmRzKCksdCwzKX1mdW5jdGlvbiB0XyhuLHQpe3JldHVybiB0bShuLHQpKyIwMDAifWZ1bmN0aW9uIGVfKG4sdCl7cmV0dXJuIEJ0KG4uZ2V0TW9udGgoKSsxLHQsMil9ZnVuY3Rpb24gbl8obix0KXtyZXR1cm4gQnQobi5nZXRNaW51dGVzKCksdCwyKX1mdW5jdGlvbiBpXyhuLHQpe3JldHVybiBCdChuLmdldFNlY29uZHMoKSx0LDIpfWZ1bmN0aW9uIHJfKG4pe3ZhciB0PW4uZ2V0RGF5KCk7cmV0dXJuIHQ9PT0wPzc6dH1mdW5jdGlvbiBzXyhuLHQpe3JldHVybiBCdChFaS5jb3VudChFbihuKS0xLG4pLHQsMil9ZnVuY3Rpb24gZW0obil7dmFyIHQ9bi5nZXREYXkoKTtyZXR1cm4gdD49NHx8dD09PTA/R24obik6R24uY2VpbChuKX1mdW5jdGlvbiBvXyhuLHQpe3JldHVybiBuPWVtKG4pLEJ0KEduLmNvdW50KEVuKG4pLG4pKyhFbihuKS5nZXREYXkoKT09PTQpLHQsMil9ZnVuY3Rpb24gYV8obil7cmV0dXJuIG4uZ2V0RGF5KCl9ZnVuY3Rpb24gbF8obix0KXtyZXR1cm4gQnQoc3IuY291bnQoRW4obiktMSxuKSx0LDIpfWZ1bmN0aW9uIGNfKG4sdCl7cmV0dXJuIEJ0KG4uZ2V0RnVsbFllYXIoKSUxMDAsdCwyKX1mdW5jdGlvbiB1XyhuLHQpe3JldHVybiBuPWVtKG4pLEJ0KG4uZ2V0RnVsbFllYXIoKSUxMDAsdCwyKX1mdW5jdGlvbiBoXyhuLHQpe3JldHVybiBCdChuLmdldEZ1bGxZZWFyKCklMWU0LHQsNCl9ZnVuY3Rpb24gZl8obix0KXt2YXIgZT1uLmdldERheSgpO3JldHVybiBuPWU+PTR8fGU9PT0wP0duKG4pOkduLmNlaWwobiksQnQobi5nZXRGdWxsWWVhcigpJTFlNCx0LDQpfWZ1bmN0aW9uIGRfKG4pe3ZhciB0PW4uZ2V0VGltZXpvbmVPZmZzZXQoKTtyZXR1cm4odD4wPyItIjoodCo9LTEsIisiKSkrQnQodC82MHwwLCIwIiwyKStCdCh0JTYwLCIwIiwyKX1mdW5jdGlvbiAkcChuLHQpe3JldHVybiBCdChuLmdldFVUQ0RhdGUoKSx0LDIpfWZ1bmN0aW9uIHBfKG4sdCl7cmV0dXJuIEJ0KG4uZ2V0VVRDSG91cnMoKSx0LDIpfWZ1bmN0aW9uIG1fKG4sdCl7cmV0dXJuIEJ0KG4uZ2V0VVRDSG91cnMoKSUxMnx8MTIsdCwyKX1mdW5jdGlvbiBnXyhuLHQpe3JldHVybiBCdCgxK3BhLmNvdW50KEFpKG4pLG4pLHQsMyl9ZnVuY3Rpb24gbm0obix0KXtyZXR1cm4gQnQobi5nZXRVVENNaWxsaXNlY29uZHMoKSx0LDMpfWZ1bmN0aW9uIHhfKG4sdCl7cmV0dXJuIG5tKG4sdCkrIjAwMCJ9ZnVuY3Rpb24geV8obix0KXtyZXR1cm4gQnQobi5nZXRVVENNb250aCgpKzEsdCwyKX1mdW5jdGlvbiB2XyhuLHQpe3JldHVybiBCdChuLmdldFVUQ01pbnV0ZXMoKSx0LDIpfWZ1bmN0aW9uIF9fKG4sdCl7cmV0dXJuIEJ0KG4uZ2V0VVRDU2Vjb25kcygpLHQsMil9ZnVuY3Rpb24gd18obil7dmFyIHQ9bi5nZXRVVENEYXkoKTtyZXR1cm4gdD09PTA/Nzp0fWZ1bmN0aW9uIE1fKG4sdCl7cmV0dXJuIEJ0KEFzLmNvdW50KEFpKG4pLTEsbiksdCwyKX1mdW5jdGlvbiBpbShuKXt2YXIgdD1uLmdldFVUQ0RheSgpO3JldHVybiB0Pj00fHx0PT09MD9XbihuKTpXbi5jZWlsKG4pfWZ1bmN0aW9uIGJfKG4sdCl7cmV0dXJuIG49aW0obiksQnQoV24uY291bnQoQWkobiksbikrKEFpKG4pLmdldFVUQ0RheSgpPT09NCksdCwyKX1mdW5jdGlvbiBTXyhuKXtyZXR1cm4gbi5nZXRVVENEYXkoKX1mdW5jdGlvbiBFXyhuLHQpe3JldHVybiBCdChvci5jb3VudChBaShuKS0xLG4pLHQsMil9ZnVuY3Rpb24gVF8obix0KXtyZXR1cm4gQnQobi5nZXRVVENGdWxsWWVhcigpJTEwMCx0LDIpfWZ1bmN0aW9uIEFfKG4sdCl7cmV0dXJuIG49aW0obiksQnQobi5nZXRVVENGdWxsWWVhcigpJTEwMCx0LDIpfWZ1bmN0aW9uIENfKG4sdCl7cmV0dXJuIEJ0KG4uZ2V0VVRDRnVsbFllYXIoKSUxZTQsdCw0KX1mdW5jdGlvbiBSXyhuLHQpe3ZhciBlPW4uZ2V0VVRDRGF5KCk7cmV0dXJuIG49ZT49NHx8ZT09PTA/V24obik6V24uY2VpbChuKSxCdChuLmdldFVUQ0Z1bGxZZWFyKCklMWU0LHQsNCl9ZnVuY3Rpb24gTF8oKXtyZXR1cm4iKzAwMDAifWZ1bmN0aW9uIEtwKCl7cmV0dXJuIiUifWZ1bmN0aW9uIFFwKG4pe3JldHVybitufWZ1bmN0aW9uIGpwKG4pe3JldHVybiBNYXRoLmZsb29yKCtuLzFlMyl9dmFyIGFyLG1hLHJtLHNtLG9tO3pjKHtkYXRlVGltZToiJXgsICVYIixkYXRlOiIlLW0vJS1kLyVZIix0aW1lOiIlLUk6JU06JVMgJXAiLHBlcmlvZHM6WyJBTSIsIlBNIl0sZGF5czpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sc2hvcnREYXlzOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sbW9udGhzOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxzaG9ydE1vbnRoczpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdfSk7ZnVuY3Rpb24gemMobil7cmV0dXJuIGFyPUZjKG4pLG1hPWFyLmZvcm1hdCxybT1hci5wYXJzZSxzbT1hci51dGNGb3JtYXQsb209YXIudXRjUGFyc2UsYXJ9dmFyIFBzPTFlMyxEcz1Qcyo2MCxJcz1Ecyo2MCxOcz1JcyoyNCxQXz1Ocyo3LGFtPU5zKjMwLFVjPU5zKjM2NTtmdW5jdGlvbiBEXyhuKXtyZXR1cm4gbmV3IERhdGUobil9ZnVuY3Rpb24gSV8obil7cmV0dXJuIG4gaW5zdGFuY2VvZiBEYXRlPytuOituZXcgRGF0ZSgrbil9ZnVuY3Rpb24gQmMobix0LGUsaSxyLHMsbyxhLGwpe3ZhciBjPUVzKERlLERlKSx1PWMuaW52ZXJ0LGg9Yy5kb21haW4sZj1sKCIuJUwiKSxkPWwoIjolUyIpLGc9bCgiJUk6JU0iKSx4PWwoIiVJICVwIiksdj1sKCIlYSAlZCIpLG09bCgiJWIgJWQiKSxwPWwoIiVCIiksYj1sKCIlWSIpLF89W1tvLDEsUHNdLFtvLDUsNSpQc10sW28sMTUsMTUqUHNdLFtvLDMwLDMwKlBzXSxbcywxLERzXSxbcyw1LDUqRHNdLFtzLDE1LDE1KkRzXSxbcywzMCwzMCpEc10sW3IsMSxJc10sW3IsMywzKklzXSxbciw2LDYqSXNdLFtyLDEyLDEyKklzXSxbaSwxLE5zXSxbaSwyLDIqTnNdLFtlLDEsUF9dLFt0LDEsYW1dLFt0LDMsMyphbV0sW24sMSxVY11dO2Z1bmN0aW9uIFMoQSl7cmV0dXJuKG8oQSk8QT9mOnMoQSk8QT9kOnIoQSk8QT9nOmkoQSk8QT94OnQoQSk8QT9lKEEpPEE/djptOm4oQSk8QT9wOmIpKEEpfWZ1bmN0aW9uIEwoQSxILHR0LFgpe2lmKEE9PW51bGwmJihBPTEwKSx0eXBlb2YgQT09Im51bWJlciIpe3ZhciB5PU1hdGguYWJzKHR0LUgpL0EsUj1pcyhmdW5jdGlvbihEKXtyZXR1cm4gRFsyXX0pLnJpZ2h0KF8seSk7Uj09PV8ubGVuZ3RoPyhYPV9uKEgvVWMsdHQvVWMsQSksQT1uKTpSPyhSPV9beS9fW1ItMV1bMl08X1tSXVsyXS95P1ItMTpSXSxYPVJbMV0sQT1SWzBdKTooWD1NYXRoLm1heChfbihILHR0LEEpLDEpLEE9YSl9cmV0dXJuIFg9PW51bGw/QTpBLmV2ZXJ5KFgpfXJldHVybiBjLmludmVydD1mdW5jdGlvbihBKXtyZXR1cm4gbmV3IERhdGUodShBKSl9LGMuZG9tYWluPWZ1bmN0aW9uKEEpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2goYnMuY2FsbChBLElfKSk6aCgpLm1hcChEXyl9LGMudGlja3M9ZnVuY3Rpb24oQSxIKXt2YXIgdHQ9aCgpLFg9dHRbMF0seT10dFt0dC5sZW5ndGgtMV0sUj15PFgsRDtyZXR1cm4gUiYmKEQ9WCxYPXkseT1EKSxEPUwoQSxYLHksSCksRD1EP0QucmFuZ2UoWCx5KzEpOltdLFI/RC5yZXZlcnNlKCk6RH0sYy50aWNrRm9ybWF0PWZ1bmN0aW9uKEEsSCl7cmV0dXJuIEg9PW51bGw/UzpsKEgpfSxjLm5pY2U9ZnVuY3Rpb24oQSxIKXt2YXIgdHQ9aCgpO3JldHVybihBPUwoQSx0dFswXSx0dFt0dC5sZW5ndGgtMV0sSCkpP2gobGEodHQsQSkpOmN9LGMuY29weT1mdW5jdGlvbigpe3JldHVybiBWbihjLEJjKG4sdCxlLGkscixzLG8sYSxsKSl9LGN9ZnVuY3Rpb24gRnMoKXtyZXR1cm4gUGUuYXBwbHkoQmMoRW4sTGMsRWkscnIsUmMsQ2MsZGEsdWEsbWEpLmRvbWFpbihbbmV3IERhdGUoMmUzLDAsMSksbmV3IERhdGUoMmUzLDAsMildKSxhcmd1bWVudHMpfWZ1bmN0aW9uIE9jKCl7dGhpcy5fPW51bGx9ZnVuY3Rpb24gbHIobil7bi5VPW4uQz1uLkw9bi5SPW4uUD1uLk49bnVsbH1PYy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOk9jLGluc2VydDpmdW5jdGlvbihuLHQpe3ZhciBlLGkscjtpZihuKXtpZih0LlA9bix0Lk49bi5OLG4uTiYmKG4uTi5QPXQpLG4uTj10LG4uUil7Zm9yKG49bi5SO24uTDspbj1uLkw7bi5MPXR9ZWxzZSBuLlI9dDtlPW59ZWxzZSB0aGlzLl8/KG49Y20odGhpcy5fKSx0LlA9bnVsbCx0Lk49bixuLlA9bi5MPXQsZT1uKToodC5QPXQuTj1udWxsLHRoaXMuXz10LGU9bnVsbCk7Zm9yKHQuTD10LlI9bnVsbCx0LlU9ZSx0LkM9ITAsbj10O2UmJmUuQzspaT1lLlUsZT09PWkuTD8ocj1pLlIsciYmci5DPyhlLkM9ci5DPSExLGkuQz0hMCxuPWkpOihuPT09ZS5SJiYoenModGhpcyxlKSxuPWUsZT1uLlUpLGUuQz0hMSxpLkM9ITAsVXModGhpcyxpKSkpOihyPWkuTCxyJiZyLkM/KGUuQz1yLkM9ITEsaS5DPSEwLG49aSk6KG49PT1lLkwmJihVcyh0aGlzLGUpLG49ZSxlPW4uVSksZS5DPSExLGkuQz0hMCx6cyh0aGlzLGkpKSksZT1uLlU7dGhpcy5fLkM9ITF9LHJlbW92ZTpmdW5jdGlvbihuKXtuLk4mJihuLk4uUD1uLlApLG4uUCYmKG4uUC5OPW4uTiksbi5OPW4uUD1udWxsO3ZhciB0PW4uVSxlLGk9bi5MLHI9bi5SLHMsbztpZihpP3I/cz1jbShyKTpzPWk6cz1yLHQ/dC5MPT09bj90Lkw9czp0LlI9czp0aGlzLl89cyxpJiZyPyhvPXMuQyxzLkM9bi5DLHMuTD1pLGkuVT1zLHMhPT1yPyh0PXMuVSxzLlU9bi5VLG49cy5SLHQuTD1uLHMuUj1yLHIuVT1zKToocy5VPXQsdD1zLG49cy5SKSk6KG89bi5DLG49cyksbiYmKG4uVT10KSwhbyl7aWYobiYmbi5DKXtuLkM9ITE7cmV0dXJufWRve2lmKG49PT10aGlzLl8pYnJlYWs7aWYobj09PXQuTCl7aWYoZT10LlIsZS5DJiYoZS5DPSExLHQuQz0hMCx6cyh0aGlzLHQpLGU9dC5SKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXsoIWUuUnx8IWUuUi5DKSYmKGUuTC5DPSExLGUuQz0hMCxVcyh0aGlzLGUpLGU9dC5SKSxlLkM9dC5DLHQuQz1lLlIuQz0hMSx6cyh0aGlzLHQpLG49dGhpcy5fO2JyZWFrfX1lbHNlIGlmKGU9dC5MLGUuQyYmKGUuQz0hMSx0LkM9ITAsVXModGhpcyx0KSxlPXQuTCksZS5MJiZlLkwuQ3x8ZS5SJiZlLlIuQyl7KCFlLkx8fCFlLkwuQykmJihlLlIuQz0hMSxlLkM9ITAsenModGhpcyxlKSxlPXQuTCksZS5DPXQuQyx0LkM9ZS5MLkM9ITEsVXModGhpcyx0KSxuPXRoaXMuXzticmVha31lLkM9ITAsbj10LHQ9dC5VfXdoaWxlKCFuLkMpO24mJihuLkM9ITEpfX19O2Z1bmN0aW9uIHpzKG4sdCl7dmFyIGU9dCxpPXQuUixyPWUuVTtyP3IuTD09PWU/ci5MPWk6ci5SPWk6bi5fPWksaS5VPXIsZS5VPWksZS5SPWkuTCxlLlImJihlLlIuVT1lKSxpLkw9ZX1mdW5jdGlvbiBVcyhuLHQpe3ZhciBlPXQsaT10Lkwscj1lLlU7cj9yLkw9PT1lP3IuTD1pOnIuUj1pOm4uXz1pLGkuVT1yLGUuVT1pLGUuTD1pLlIsZS5MJiYoZS5MLlU9ZSksaS5SPWV9ZnVuY3Rpb24gY20obil7Zm9yKDtuLkw7KW49bi5MO3JldHVybiBufXZhciBrYz1PYztmdW5jdGlvbiBjcihuLHQsZSxpKXt2YXIgcj1bbnVsbCxudWxsXSxzPW1lLnB1c2gociktMTtyZXR1cm4gci5sZWZ0PW4sci5yaWdodD10LGUmJkJzKHIsbix0LGUpLGkmJkJzKHIsdCxuLGkpLENlW24uaW5kZXhdLmhhbGZlZGdlcy5wdXNoKHMpLENlW3QuaW5kZXhdLmhhbGZlZGdlcy5wdXNoKHMpLHJ9ZnVuY3Rpb24gdXIobix0LGUpe3ZhciBpPVt0LGVdO3JldHVybiBpLmxlZnQ9bixpfWZ1bmN0aW9uIEJzKG4sdCxlLGkpeyFuWzBdJiYhblsxXT8oblswXT1pLG4ubGVmdD10LG4ucmlnaHQ9ZSk6bi5sZWZ0PT09ZT9uWzFdPWk6blswXT1pfWZ1bmN0aW9uIHpfKG4sdCxlLGkscil7dmFyIHM9blswXSxvPW5bMV0sYT1zWzBdLGw9c1sxXSxjPW9bMF0sdT1vWzFdLGg9MCxmPTEsZD1jLWEsZz11LWwseDtpZih4PXQtYSwhKCFkJiZ4PjApKXtpZih4Lz1kLGQ8MCl7aWYoeDxoKXJldHVybjt4PGYmJihmPXgpfWVsc2UgaWYoZD4wKXtpZih4PmYpcmV0dXJuO3g+aCYmKGg9eCl9aWYoeD1pLWEsISghZCYmeDwwKSl7aWYoeC89ZCxkPDApe2lmKHg+ZilyZXR1cm47eD5oJiYoaD14KX1lbHNlIGlmKGQ+MCl7aWYoeDxoKXJldHVybjt4PGYmJihmPXgpfWlmKHg9ZS1sLCEoIWcmJng+MCkpe2lmKHgvPWcsZzwwKXtpZih4PGgpcmV0dXJuO3g8ZiYmKGY9eCl9ZWxzZSBpZihnPjApe2lmKHg+ZilyZXR1cm47eD5oJiYoaD14KX1pZih4PXItbCwhKCFnJiZ4PDApKXtpZih4Lz1nLGc8MCl7aWYoeD5mKXJldHVybjt4PmgmJihoPXgpfWVsc2UgaWYoZz4wKXtpZih4PGgpcmV0dXJuO3g8ZiYmKGY9eCl9cmV0dXJuIShoPjApJiYhKGY8MSl8fChoPjAmJihuWzBdPVthK2gqZCxsK2gqZ10pLGY8MSYmKG5bMV09W2ErZipkLGwrZipnXSkpLCEwfX19fX1mdW5jdGlvbiBVXyhuLHQsZSxpLHIpe3ZhciBzPW5bMV07aWYocylyZXR1cm4hMDt2YXIgbz1uWzBdLGE9bi5sZWZ0LGw9bi5yaWdodCxjPWFbMF0sdT1hWzFdLGg9bFswXSxmPWxbMV0sZD0oYytoKS8yLGc9KHUrZikvMix4LHY7aWYoZj09PXUpe2lmKGQ8dHx8ZD49aSlyZXR1cm47aWYoYz5oKXtpZighbylvPVtkLGVdO2Vsc2UgaWYob1sxXT49cilyZXR1cm47cz1bZCxyXX1lbHNle2lmKCFvKW89W2Qscl07ZWxzZSBpZihvWzFdPGUpcmV0dXJuO3M9W2QsZV19fWVsc2UgaWYoeD0oYy1oKS8oZi11KSx2PWcteCpkLHg8LTF8fHg+MSlpZihjPmgpe2lmKCFvKW89WyhlLXYpL3gsZV07ZWxzZSBpZihvWzFdPj1yKXJldHVybjtzPVsoci12KS94LHJdfWVsc2V7aWYoIW8pbz1bKHItdikveCxyXTtlbHNlIGlmKG9bMV08ZSlyZXR1cm47cz1bKGUtdikveCxlXX1lbHNlIGlmKHU8Zil7aWYoIW8pbz1bdCx4KnQrdl07ZWxzZSBpZihvWzBdPj1pKXJldHVybjtzPVtpLHgqaSt2XX1lbHNle2lmKCFvKW89W2kseCppK3ZdO2Vsc2UgaWYob1swXTx0KXJldHVybjtzPVt0LHgqdCt2XX1yZXR1cm4gblswXT1vLG5bMV09cywhMH1mdW5jdGlvbiB1bShuLHQsZSxpKXtmb3IodmFyIHI9bWUubGVuZ3RoLHM7ci0tOykoIVVfKHM9bWVbcl0sbix0LGUsaSl8fCF6XyhzLG4sdCxlLGkpfHwhKE1hdGguYWJzKHNbMF1bMF0tc1sxXVswXSk+WHR8fE1hdGguYWJzKHNbMF1bMV0tc1sxXVsxXSk+WHQpKSYmZGVsZXRlIG1lW3JdfWZ1bmN0aW9uIGhtKG4pe3JldHVybiBDZVtuLmluZGV4XT17c2l0ZTpuLGhhbGZlZGdlczpbXX19ZnVuY3Rpb24gQl8obix0KXt2YXIgZT1uLnNpdGUsaT10LmxlZnQscj10LnJpZ2h0O3JldHVybiBlPT09ciYmKHI9aSxpPWUpLHI/TWF0aC5hdGFuMihyWzFdLWlbMV0sclswXS1pWzBdKTooZT09PWk/KGk9dFsxXSxyPXRbMF0pOihpPXRbMF0scj10WzFdKSxNYXRoLmF0YW4yKGlbMF0tclswXSxyWzFdLWlbMV0pKX1mdW5jdGlvbiBIYyhuLHQpe3JldHVybiB0WysodC5sZWZ0IT09bi5zaXRlKV19ZnVuY3Rpb24gT18obix0KXtyZXR1cm4gdFsrKHQubGVmdD09PW4uc2l0ZSldfWZ1bmN0aW9uIGZtKCl7Zm9yKHZhciBuPTAsdD1DZS5sZW5ndGgsZSxpLHIscztuPHQ7KytuKWlmKChlPUNlW25dKSYmKHM9KGk9ZS5oYWxmZWRnZXMpLmxlbmd0aCkpe3ZhciBvPW5ldyBBcnJheShzKSxhPW5ldyBBcnJheShzKTtmb3Iocj0wO3I8czsrK3Ipb1tyXT1yLGFbcl09Ql8oZSxtZVtpW3JdXSk7Zm9yKG8uc29ydChmdW5jdGlvbihsLGMpe3JldHVybiBhW2NdLWFbbF19KSxyPTA7cjxzOysrcilhW3JdPWlbb1tyXV07Zm9yKHI9MDtyPHM7KytyKWlbcl09YVtyXX19ZnVuY3Rpb24gZG0obix0LGUsaSl7dmFyIHI9Q2UubGVuZ3RoLHMsbyxhLGwsYyx1LGgsZixkLGcseCx2LG09ITA7Zm9yKHM9MDtzPHI7KytzKWlmKG89Q2Vbc10pe2ZvcihhPW8uc2l0ZSxjPW8uaGFsZmVkZ2VzLGw9Yy5sZW5ndGg7bC0tOyltZVtjW2xdXXx8Yy5zcGxpY2UobCwxKTtmb3IobD0wLHU9Yy5sZW5ndGg7bDx1OylnPU9fKG8sbWVbY1tsXV0pLHg9Z1swXSx2PWdbMV0saD1IYyhvLG1lW2NbKytsJXVdXSksZj1oWzBdLGQ9aFsxXSwoTWF0aC5hYnMoeC1mKT5YdHx8TWF0aC5hYnModi1kKT5YdCkmJihjLnNwbGljZShsLDAsbWUucHVzaCh1cihhLGcsTWF0aC5hYnMoeC1uKTxYdCYmaS12Plh0P1tuLE1hdGguYWJzKGYtbik8WHQ/ZDppXTpNYXRoLmFicyh2LWkpPFh0JiZlLXg+WHQ/W01hdGguYWJzKGQtaSk8WHQ/ZjplLGldOk1hdGguYWJzKHgtZSk8WHQmJnYtdD5YdD9bZSxNYXRoLmFicyhmLWUpPFh0P2Q6dF06TWF0aC5hYnModi10KTxYdCYmeC1uPlh0P1tNYXRoLmFicyhkLXQpPFh0P2Y6bix0XTpudWxsKSktMSksKyt1KTt1JiYobT0hMSl9aWYobSl7dmFyIHAsYixfLFM9MS8wO2ZvcihzPTAsbT1udWxsO3M8cjsrK3MpKG89Q2Vbc10pJiYoYT1vLnNpdGUscD1hWzBdLW4sYj1hWzFdLXQsXz1wKnArYipiLF88UyYmKFM9XyxtPW8pKTtpZihtKXt2YXIgTD1bbix0XSxBPVtuLGldLEg9W2UsaV0sdHQ9W2UsdF07bS5oYWxmZWRnZXMucHVzaChtZS5wdXNoKHVyKGE9bS5zaXRlLEwsQSkpLTEsbWUucHVzaCh1cihhLEEsSCkpLTEsbWUucHVzaCh1cihhLEgsdHQpKS0xLG1lLnB1c2godXIoYSx0dCxMKSktMSl9fWZvcihzPTA7czxyOysrcykobz1DZVtzXSkmJihvLmhhbGZlZGdlcy5sZW5ndGh8fGRlbGV0ZSBDZVtzXSl9dmFyIHBtPVtdLGdhO2Z1bmN0aW9uIGtfKCl7bHIodGhpcyksdGhpcy54PXRoaXMueT10aGlzLmFyYz10aGlzLnNpdGU9dGhpcy5jeT1udWxsfWZ1bmN0aW9uIENpKG4pe3ZhciB0PW4uUCxlPW4uTjtpZighKCF0fHwhZSkpe3ZhciBpPXQuc2l0ZSxyPW4uc2l0ZSxzPWUuc2l0ZTtpZihpIT09cyl7dmFyIG89clswXSxhPXJbMV0sbD1pWzBdLW8sYz1pWzFdLWEsdT1zWzBdLW8saD1zWzFdLWEsZj0yKihsKmgtYyp1KTtpZighKGY+PS1tbSkpe3ZhciBkPWwqbCtjKmMsZz11KnUraCpoLHg9KGgqZC1jKmcpL2Ysdj0obCpnLXUqZCkvZixtPXBtLnBvcCgpfHxuZXcga187bS5hcmM9bixtLnNpdGU9cixtLng9eCtvLG0ueT0obS5jeT12K2EpK01hdGguc3FydCh4Kngrdip2KSxuLmNpcmNsZT1tO2Zvcih2YXIgcD1udWxsLGI9aHIuXztiOylpZihtLnk8Yi55fHxtLnk9PT1iLnkmJm0ueDw9Yi54KWlmKGIuTCliPWIuTDtlbHNle3A9Yi5QO2JyZWFrfWVsc2UgaWYoYi5SKWI9Yi5SO2Vsc2V7cD1iO2JyZWFrfWhyLmluc2VydChwLG0pLHB8fChnYT1tKX19fX1mdW5jdGlvbiBSaShuKXt2YXIgdD1uLmNpcmNsZTt0JiYodC5QfHwoZ2E9dC5OKSxoci5yZW1vdmUodCkscG0ucHVzaCh0KSxscih0KSxuLmNpcmNsZT1udWxsKX12YXIgeG09W107ZnVuY3Rpb24gSF8oKXtscih0aGlzKSx0aGlzLmVkZ2U9dGhpcy5zaXRlPXRoaXMuY2lyY2xlPW51bGx9ZnVuY3Rpb24gZ20obil7dmFyIHQ9eG0ucG9wKCl8fG5ldyBIXztyZXR1cm4gdC5zaXRlPW4sdH1mdW5jdGlvbiBWYyhuKXtSaShuKSxMaS5yZW1vdmUobikseG0ucHVzaChuKSxscihuKX1mdW5jdGlvbiB5bShuKXt2YXIgdD1uLmNpcmNsZSxlPXQueCxpPXQuY3kscj1bZSxpXSxzPW4uUCxvPW4uTixhPVtuXTtWYyhuKTtmb3IodmFyIGw9cztsLmNpcmNsZSYmTWF0aC5hYnMoZS1sLmNpcmNsZS54KTxYdCYmTWF0aC5hYnMoaS1sLmNpcmNsZS5jeSk8WHQ7KXM9bC5QLGEudW5zaGlmdChsKSxWYyhsKSxsPXM7YS51bnNoaWZ0KGwpLFJpKGwpO2Zvcih2YXIgYz1vO2MuY2lyY2xlJiZNYXRoLmFicyhlLWMuY2lyY2xlLngpPFh0JiZNYXRoLmFicyhpLWMuY2lyY2xlLmN5KTxYdDspbz1jLk4sYS5wdXNoKGMpLFZjKGMpLGM9bzthLnB1c2goYyksUmkoYyk7dmFyIHU9YS5sZW5ndGgsaDtmb3IoaD0xO2g8dTsrK2gpYz1hW2hdLGw9YVtoLTFdLEJzKGMuZWRnZSxsLnNpdGUsYy5zaXRlLHIpO2w9YVswXSxjPWFbdS0xXSxjLmVkZ2U9Y3IobC5zaXRlLGMuc2l0ZSxudWxsLHIpLENpKGwpLENpKGMpfWZ1bmN0aW9uIHZtKG4pe2Zvcih2YXIgdD1uWzBdLGU9blsxXSxpLHIscyxvLGE9TGkuXzthOylpZihzPV9tKGEsZSktdCxzPlh0KWE9YS5MO2Vsc2UgaWYobz10LVZfKGEsZSksbz5YdCl7aWYoIWEuUil7aT1hO2JyZWFrfWE9YS5SfWVsc2V7cz4tWHQ/KGk9YS5QLHI9YSk6bz4tWHQ/KGk9YSxyPWEuTik6aT1yPWE7YnJlYWt9aG0obik7dmFyIGw9Z20obik7aWYoTGkuaW5zZXJ0KGksbCksISghaSYmIXIpKXtpZihpPT09cil7UmkoaSkscj1nbShpLnNpdGUpLExpLmluc2VydChsLHIpLGwuZWRnZT1yLmVkZ2U9Y3IoaS5zaXRlLGwuc2l0ZSksQ2koaSksQ2kocik7cmV0dXJufWlmKCFyKXtsLmVkZ2U9Y3IoaS5zaXRlLGwuc2l0ZSk7cmV0dXJufVJpKGkpLFJpKHIpO3ZhciBjPWkuc2l0ZSx1PWNbMF0saD1jWzFdLGY9blswXS11LGQ9blsxXS1oLGc9ci5zaXRlLHg9Z1swXS11LHY9Z1sxXS1oLG09MiooZip2LWQqeCkscD1mKmYrZCpkLGI9eCp4K3YqdixfPVsodipwLWQqYikvbSt1LChmKmIteCpwKS9tK2hdO0JzKHIuZWRnZSxjLGcsXyksbC5lZGdlPWNyKGMsbixudWxsLF8pLHIuZWRnZT1jcihuLGcsbnVsbCxfKSxDaShpKSxDaShyKX19ZnVuY3Rpb24gX20obix0KXt2YXIgZT1uLnNpdGUsaT1lWzBdLHI9ZVsxXSxzPXItdDtpZighcylyZXR1cm4gaTt2YXIgbz1uLlA7aWYoIW8pcmV0dXJuLTEvMDtlPW8uc2l0ZTt2YXIgYT1lWzBdLGw9ZVsxXSxjPWwtdDtpZighYylyZXR1cm4gYTt2YXIgdT1hLWksaD0xL3MtMS9jLGY9dS9jO3JldHVybiBoPygtZitNYXRoLnNxcnQoZipmLTIqaCoodSp1LygtMipjKS1sK2MvMityLXMvMikpKS9oK2k6KGkrYSkvMn1mdW5jdGlvbiBWXyhuLHQpe3ZhciBlPW4uTjtpZihlKXJldHVybiBfbShlLHQpO3ZhciBpPW4uc2l0ZTtyZXR1cm4gaVsxXT09PXQ/aVswXToxLzB9dmFyIFh0PTFlLTYsbW09MWUtMTIsTGksQ2UsaHIsbWU7ZnVuY3Rpb24gR18obix0LGUpe3JldHVybihuWzBdLWVbMF0pKih0WzFdLW5bMV0pLShuWzBdLXRbMF0pKihlWzFdLW5bMV0pfWZ1bmN0aW9uIFdfKG4sdCl7cmV0dXJuIHRbMV0tblsxXXx8dFswXS1uWzBdfWZ1bmN0aW9uIHhhKG4sdCl7dmFyIGU9bi5zb3J0KFdfKS5wb3AoKSxpLHIscztmb3IobWU9W10sQ2U9bmV3IEFycmF5KG4ubGVuZ3RoKSxMaT1uZXcga2MsaHI9bmV3IGtjOzspaWYocz1nYSxlJiYoIXN8fGVbMV08cy55fHxlWzFdPT09cy55JiZlWzBdPHMueCkpKGVbMF0hPT1pfHxlWzFdIT09cikmJih2bShlKSxpPWVbMF0scj1lWzFdKSxlPW4ucG9wKCk7ZWxzZSBpZihzKXltKHMuYXJjKTtlbHNlIGJyZWFrO2lmKGZtKCksdCl7dmFyIG89K3RbMF1bMF0sYT0rdFswXVsxXSxsPSt0WzFdWzBdLGM9K3RbMV1bMV07dW0obyxhLGwsYyksZG0obyxhLGwsYyl9dGhpcy5lZGdlcz1tZSx0aGlzLmNlbGxzPUNlLExpPWhyPW1lPUNlPW51bGx9eGEucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp4YSxwb2x5Z29uczpmdW5jdGlvbigpe3ZhciBuPXRoaXMuZWRnZXM7cmV0dXJuIHRoaXMuY2VsbHMubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPXQuaGFsZmVkZ2VzLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gSGModCxuW2ldKX0pO3JldHVybiBlLmRhdGE9dC5zaXRlLmRhdGEsZX0pfSx0cmlhbmdsZXM6ZnVuY3Rpb24oKXt2YXIgbj1bXSx0PXRoaXMuZWRnZXM7cmV0dXJuIHRoaXMuY2VsbHMuZm9yRWFjaChmdW5jdGlvbihlLGkpe2lmKCEhKGE9KHM9ZS5oYWxmZWRnZXMpLmxlbmd0aCkpZm9yKHZhciByPWUuc2l0ZSxzLG89LTEsYSxsLGM9dFtzW2EtMV1dLHU9Yy5sZWZ0PT09cj9jLnJpZ2h0OmMubGVmdDsrK288YTspbD11LGM9dFtzW29dXSx1PWMubGVmdD09PXI/Yy5yaWdodDpjLmxlZnQsbCYmdSYmaTxsLmluZGV4JiZpPHUuaW5kZXgmJkdfKHIsbCx1KTwwJiZuLnB1c2goW3IuZGF0YSxsLmRhdGEsdS5kYXRhXSl9KSxufSxsaW5rczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZ2VzLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbi5yaWdodH0pLm1hcChmdW5jdGlvbihuKXtyZXR1cm57c291cmNlOm4ubGVmdC5kYXRhLHRhcmdldDpuLnJpZ2h0LmRhdGF9fSl9LGZpbmQ6ZnVuY3Rpb24obix0LGUpe2Zvcih2YXIgaT10aGlzLHIscz1pLl9mb3VuZHx8MCxvPWkuY2VsbHMubGVuZ3RoLGE7IShhPWkuY2VsbHNbc10pOylpZigrK3M+PW8pcmV0dXJuIG51bGw7dmFyIGw9bi1hLnNpdGVbMF0sYz10LWEuc2l0ZVsxXSx1PWwqbCtjKmM7ZG8gYT1pLmNlbGxzW3I9c10scz1udWxsLGEuaGFsZmVkZ2VzLmZvckVhY2goZnVuY3Rpb24oaCl7dmFyIGY9aS5lZGdlc1toXSxkPWYubGVmdDtpZighKChkPT09YS5zaXRlfHwhZCkmJiEoZD1mLnJpZ2h0KSkpe3ZhciBnPW4tZFswXSx4PXQtZFsxXSx2PWcqZyt4Kng7djx1JiYodT12LHM9ZC5pbmRleCl9fSk7d2hpbGUocyE9PW51bGwpO3JldHVybiBpLl9mb3VuZD1yLGU9PW51bGx8fHU8PWUqZT9hLnNpdGU6bnVsbH19O2Z1bmN0aW9uIFBpKG4sdCxlKXt0aGlzLms9bix0aGlzLng9dCx0aGlzLnk9ZX1QaS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlBpLHNjYWxlOmZ1bmN0aW9uKG4pe3JldHVybiBuPT09MT90aGlzOm5ldyBQaSh0aGlzLmsqbix0aGlzLngsdGhpcy55KX0sdHJhbnNsYXRlOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIG49PT0wJnQ9PT0wP3RoaXM6bmV3IFBpKHRoaXMuayx0aGlzLngrdGhpcy5rKm4sdGhpcy55K3RoaXMuayp0KX0sYXBwbHk6ZnVuY3Rpb24obil7cmV0dXJuW25bMF0qdGhpcy5rK3RoaXMueCxuWzFdKnRoaXMuayt0aGlzLnldfSxhcHBseVg6ZnVuY3Rpb24obil7cmV0dXJuIG4qdGhpcy5rK3RoaXMueH0sYXBwbHlZOmZ1bmN0aW9uKG4pe3JldHVybiBuKnRoaXMuayt0aGlzLnl9LGludmVydDpmdW5jdGlvbihuKXtyZXR1cm5bKG5bMF0tdGhpcy54KS90aGlzLmssKG5bMV0tdGhpcy55KS90aGlzLmtdfSxpbnZlcnRYOmZ1bmN0aW9uKG4pe3JldHVybihuLXRoaXMueCkvdGhpcy5rfSxpbnZlcnRZOmZ1bmN0aW9uKG4pe3JldHVybihuLXRoaXMueSkvdGhpcy5rfSxyZXNjYWxlWDpmdW5jdGlvbihuKXtyZXR1cm4gbi5jb3B5KCkuZG9tYWluKG4ucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRYLHRoaXMpLm1hcChuLmludmVydCxuKSl9LHJlc2NhbGVZOmZ1bmN0aW9uKG4pe3JldHVybiBuLmNvcHkoKS5kb21haW4obi5yYW5nZSgpLm1hcCh0aGlzLmludmVydFksdGhpcykubWFwKG4uaW52ZXJ0LG4pKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNsYXRlKCIrdGhpcy54KyIsIit0aGlzLnkrIikgc2NhbGUoIit0aGlzLmsrIikifX07dmFyIEdjPW5ldyBQaSgxLDAsMCk7V2MucHJvdG90eXBlPVBpLnByb3RvdHlwZTtmdW5jdGlvbiBXYyhuKXtmb3IoOyFuLl9fem9vbTspaWYoIShuPW4ucGFyZW50Tm9kZSkpcmV0dXJuIEdjO3JldHVybiBuLl9fem9vbX12YXIgYm09MWU0LFNtPS4wMDEsRW09T2UoIi4yfmUiKSxxXz1PZSgiLjR+ciIpLHdtPU9lKCIsfiIpO2Z1bmN0aW9uIE1tKG4pe2lmKG49PT0wKXJldHVybiIwIjtsZXQgdD1NYXRoLmFicyhuKTtyZXR1cm4gdD49Ym18fHQ8U20/RW0obik6cV8obil9dmFyIFhjPXtmb3JtYXRUaWNrOk1tLGZvcm1hdFNob3J0Ok1tLGZvcm1hdFJlYWRhYmxlKG4pe2xldCB0PU1hdGguYWJzKG4pO3JldHVybiB0Pj1ibXx8dDxTbT9FbShuKTp3bShuKX0sZm9ybWF0TG9uZzp3bX0sc2s9bmV3IEludGwuTnVtYmVyRm9ybWF0KHZvaWQgMCx7bWF4aW11bUZyYWN0aW9uRGlnaXRzOjR9KTt2YXIgb2s9T2UoIjAuM35zIiksYWs9T2UoIiwuM35mIik7dmFyIFhfPTFlMyxZXz02MCpYXyxaXz02MCpZXyxKXz0yNCpaXyxsaz0zNjUqSl8sY2s9T2UoIi40fiIpO3ZhciAkXz1GcygpLnRpY2tGb3JtYXQoKSxxYyxUbT17Zm9ybWF0VGljayhuKXtyZXR1cm4gJF8obmV3IERhdGUobikpfSxmb3JtYXRTaG9ydChuKXtyZXR1cm4gbmV3IERhdGUobikudG9Mb2NhbGVTdHJpbmcocWMse3llYXI6Im51bWVyaWMiLG1vbnRoOiJzaG9ydCIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyJ9KX0sZm9ybWF0UmVhZGFibGUobil7cmV0dXJuIG5ldyBEYXRlKG4pLnRvTG9jYWxlU3RyaW5nKHFjLHt5ZWFyOiJudW1lcmljIixtb250aDoic2hvcnQiLGRheToibnVtZXJpYyIsaG91cjoibnVtZXJpYyIsbWludXRlOiJudW1lcmljIixzZWNvbmQ6Im51bWVyaWMiLHRpbWVab25lTmFtZToic2hvcnQifSl9LGZvcm1hdExvbmcobil7cmV0dXJuIG5ldyBEYXRlKG4pLnRvTG9jYWxlU3RyaW5nKHFjLHt5ZWFyOiJudW1lcmljIixtb250aDoibG9uZyIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsdGltZVpvbmVOYW1lOiJzaG9ydCIsZnJhY3Rpb25hbFNlY29uZERpZ2l0czozfSl9fTtmdW5jdGlvbiBmcihuKXtzd2l0Y2gobil7Y2FzZSBvbi5MSU5FQVI6cmV0dXJuIG5ldyBZYztjYXNlIG9uLkxPRzEwOnJldHVybiBuZXcgWmM7Y2FzZSBvbi5USU1FOnJldHVybiBuZXcgSmM7ZGVmYXVsdDpsZXQgdD1uO3Rocm93IG5ldyBSYW5nZUVycm9yKGBTY2FsZVR5cGUgJHt0fSBub3Qgc3VwcG9ydGVkLmApfX12YXIgS189LjA1LFljPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5kZWZhdWx0Rm9ybWF0dGVyPVhjfXRyYW5zZm9ybSh0LGUsaSl7bGV0W3Isc109dCxvPXMtcixbYSxsXT1lLGM9bC1hO3JldHVybiBvPT09MD9hOmMvbyooaS1yKSthfWZvcndhcmQodCxlLGkpe3JldHVybiB0aGlzLnRyYW5zZm9ybSh0LGUsaSl9cmV2ZXJzZSh0LGUsaSl7cmV0dXJuIHRoaXMudHJhbnNmb3JtKGUsdCxpKX1uaWNlRG9tYWluKHQpe2xldFtlLGldPXQ7aWYoaTxlKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBpbnB1dDogbWluIGlzIGxhcmdlciB0aGFuIG1heCIpO2lmKGk9PT1lKXJldHVybiBlPT09MD9bLTEsMV06ZTwwP1syKmUsMF06WzAsMiplXTtsZXQgcj1pcigpLHM9KGktZStOdW1iZXIuRVBTSUxPTikqS18sW28sYV09ci5kb21haW4oW2UtcyxpK3NdKS5uaWNlKCkuZG9tYWluKCk7cmV0dXJuW28sYV19dGlja3ModCxlKXtyZXR1cm4gaXIoKS5kb21haW4odCkudGlja3MoZSl9aXNTYWZlTnVtYmVyKHQpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUodCl9fSxaYz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZGVmYXVsdEZvcm1hdHRlcj1YY310cmFuc2Zvcm0odCl7cmV0dXJuIE1hdGgubG9nMTAodD4wP3Q6TnVtYmVyLk1JTl9WQUxVRSl9dW50cmFuc2Zvcm0odCl7cmV0dXJuIE1hdGguZXhwKHQvTWF0aC5MT0cxMEUpfWZvcndhcmQodCxlLGkpe2lmKGk8PTApcmV0dXJuIGVbMF07bGV0W3Isc109dCxbbyxhXT1lLGw9dGhpcy50cmFuc2Zvcm0ociksdT10aGlzLnRyYW5zZm9ybShzKS1sLGg9YS1vO3JldHVybiBpPXRoaXMudHJhbnNmb3JtKGkpLGgvKHUrTnVtYmVyLkVQU0lMT04pKihpLWwpK299cmV2ZXJzZSh0LGUsaSl7bGV0W3Isc109dCxbbyxhXT1lLGw9dGhpcy50cmFuc2Zvcm0ociksdT10aGlzLnRyYW5zZm9ybShzKS1sLGg9YS1vLGY9dS8oaCtOdW1iZXIuRVBTSUxPTikqKGktbykrbDtyZXR1cm4gdGhpcy51bnRyYW5zZm9ybShmKX1uaWNlRG9tYWluKHQpe2xldFtlLGldPXQ7aWYoZT5pKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBpbnB1dDogbWluIGlzIGxhcmdlciB0aGFuIG1heCIpO2xldCByPU1hdGgubWF4KGUsTnVtYmVyLk1JTl9WQUxVRSkscz1NYXRoLm1heChpLE51bWJlci5NSU5fVkFMVUUpO3JldHVybiBpPD0wP1tOdW1iZXIuTUlOX1ZBTFVFLDFdOltNYXRoLm1heChOdW1iZXIuTUlOX1ZBTFVFLHIqLjUpLHMqMl19dGlja3ModCxlKXtsZXQgaT10WzBdPD0wP051bWJlci5NSU5fVkFMVUU6dFswXSxyPXRbMV08PTA/TnVtYmVyLk1JTl9WQUxVRTp0WzFdLHM9VHMoKS5kb21haW4oW2kscl0pLnRpY2tzKGUpO3JldHVybiBzLmxlbmd0aD9zOnR9aXNTYWZlTnVtYmVyKHQpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUodCkmJnQ+MH19LEpjPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zY2FsZT1GcygpLHRoaXMuZGVmYXVsdEZvcm1hdHRlcj1UbX1mb3J3YXJkKHQsZSxpKXtyZXR1cm4gdGhpcy5zY2FsZS5kb21haW4odCkucmFuZ2UoZSkoaSl9cmV2ZXJzZSh0LGUsaSl7cmV0dXJuIHRoaXMuc2NhbGUuZG9tYWluKHQpLnJhbmdlKGUpLmludmVydChpKS5nZXRUaW1lKCl9bmljZURvbWFpbih0KXtsZXRbZSxpXT10aGlzLnNjYWxlLmRvbWFpbih0KS5uaWNlKCkuZG9tYWluKCk7cmV0dXJuW2UuZ2V0VGltZSgpLGkuZ2V0VGltZSgpXX10aWNrcyh0LGUpe3JldHVybiB0aGlzLnNjYWxlLmRvbWFpbih0KS50aWNrcyhlKS5tYXAoaT0+aS5nZXRUaW1lKCkpfWlzU2FmZU51bWJlcih0KXtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHQpfX07ZnVuY3Rpb24gUV8obil7cmV0dXJue3g6W24ueCxuLngrbi53aWR0aF0seTpbbi55LG4ueStuLmhlaWdodF19fXZhciAkYz0hMTtpZihzZWxmLmhhc093blByb3BlcnR5KCJXZWJHTDJSZW5kZXJpbmdDb250ZXh0IikmJnNlbGYuaGFzT3duUHJvcGVydHkoImRvY3VtZW50Iikpe2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO24uYWRkRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvciIsKCk9PnskYz0hMX0pO2xldCB0PW4uZ2V0Q29udGV4dCgid2ViZ2wyIik7JGM9Qm9vbGVhbih0KX1mdW5jdGlvbiBqXygpe3JldHVybiAkY31mdW5jdGlvbiB0dygpe2lmKCFzZWxmLmhhc093blByb3BlcnR5KCJPZmZzY3JlZW5DYW52YXMiKSlyZXR1cm4hMTtsZXQgbj1uZXcgT2Zmc2NyZWVuQ2FudmFzKDAsMCkuZ2V0Q29udGV4dCgid2ViZ2wyIik7cmV0dXJuIEJvb2xlYW4obil9ZnVuY3Rpb24gZXcobix0KXtpZihuLmxlbmd0aCE9PXQubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgZT0wO2U8bi5sZW5ndGg7ZSsrKWlmKG5bZV0hPT10W2VdKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIG53KG4sdCl7cmV0dXJuIG4ueFswXT09PXQueFswXSYmbi54WzFdPT09dC54WzFdJiZuLnlbMF09PT10LnlbMF0mJm4ueVsxXT09PXQueVsxXX12YXIgRGk9e2NvbnZlcnRSZWN0VG9FeHRlbnQ6UV8saXNXZWJHbDJTdXBwb3J0ZWQ6al8saXNXZWJHbDJPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ6dHcsYXJlUG9seWxpbmVzRXF1YWw6ZXcsYXJlRXh0ZW50c0VxdWFsOm53fTt2YXIgZHI9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnhTY2FsZT1mcihvbi5MSU5FQVIpLHRoaXMueVNjYWxlPWZyKG9uLkxJTkVBUiksdGhpcy5kb21Db250YWluZXJSZWN0PXt4OjAsd2lkdGg6MSx5OjAsaGVpZ2h0OjF9LHRoaXMubGFzdFVwZGF0ZWQ9MCx0aGlzLmN1cnJlbnRWaWV3Qm94UmVjdD17eDowLHdpZHRoOjEseTowLGhlaWdodDoxfX1nZXRVcGRhdGVJZGVudGlmaWVyKCl7cmV0dXJuIHRoaXMubGFzdFVwZGF0ZWR9dXBkYXRlSWRlbnRpZmllcigpe3RoaXMubGFzdFVwZGF0ZWQrK31pc1lBeGlzUG9pbnRlZERvd24oKXtyZXR1cm4hMH1zZXRYU2NhbGUodCl7dGhpcy54U2NhbGU9dCx0aGlzLnVwZGF0ZUlkZW50aWZpZXIoKX1zZXRZU2NhbGUodCl7dGhpcy55U2NhbGU9dCx0aGlzLnVwZGF0ZUlkZW50aWZpZXIoKX1nZXRDdXJyZW50Vmlld0JveFJlY3QoKXtyZXR1cm4gdGhpcy5jdXJyZW50Vmlld0JveFJlY3R9c2V0Vmlld0JveFJlY3QodCl7dGhpcy5jdXJyZW50Vmlld0JveFJlY3Q9dCx0aGlzLnVwZGF0ZUlkZW50aWZpZXIoKX1zZXREb21Db250YWluZXJSZWN0KHQpe3RoaXMuZG9tQ29udGFpbmVyUmVjdD10LHRoaXMudXBkYXRlSWRlbnRpZmllcigpfXRyYW5zZm9ybURhdGFUb1VpQ29vcmQodCxlKXtsZXQgaT10LHI9RGkuY29udmVydFJlY3RUb0V4dGVudCh0aGlzLmN1cnJlbnRWaWV3Qm94UmVjdCk7cmV0dXJuW3RoaXMueFNjYWxlLmZvcndhcmQoci54LFtpLngsaS54K2kud2lkdGhdLGVbMF0pLHRoaXMueVNjYWxlLmZvcndhcmQoci55LHRoaXMuaXNZQXhpc1BvaW50ZWREb3duKCk/W2kueStpLmhlaWdodCxpLnldOltpLnksaS55K2kuaGVpZ2h0XSxlWzFdKV19fTt2YXIgVG47KGZ1bmN0aW9uKG4pe25bbi5TVkc9MF09IlNWRyIsbltuLldFQkdMPTFdPSJXRUJHTCJ9KShUbnx8KFRuPXt9KSk7ZnVuY3Rpb24geWEobix0LGUsaSl7bGV0e2NvbG9yOnIsdmlzaWJsZTpzLG9wYWNpdHk6b309aSxhPW47cmV0dXJuIWEmJiFzP251bGw6KGE9YSE9bnVsbD9hOnQoKSxhPWUoYSksYS5zdHlsZS5kaXNwbGF5PXM/IiI6Im5vbmUiLGEuc3R5bGUuc3Ryb2tlPXIsYS5zdHlsZS5vcGFjaXR5PVN0cmluZyhvIT1udWxsP286MSksYSl9dmFyIE9zPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuc3ZnPXR9Zmx1c2goKXt9b25SZXNpemUodCl7fWRlc3Ryb3lPYmplY3QodCl7dGhpcy5zdmcucmVtb3ZlQ2hpbGQodC5kb20pfXNldFVzZURhcmtNb2RlKHQpe31jcmVhdGVQYXRoRFN0cmluZyh0KXtpZighdC5sZW5ndGgpcmV0dXJuIiI7bGV0IGU9bmV3IEFycmF5KHQubGVuZ3RoLzIpO2VbMF09YE0ke3RbMF19LCR7dFsxXX1gO2ZvcihsZXQgaT0xO2k8dC5sZW5ndGgvMjtpKyspZVtpXT1gTCR7dFtpKjJdfSwke3RbaSoyKzFdfWA7cmV0dXJuIGUuam9pbigiIil9Y3JlYXRlT3JVcGRhdGVMaW5lT2JqZWN0KHQsZSxpKXtsZXQgcj15YSh0PT1udWxsP3ZvaWQgMDp0LmRvbSwoKT0+e2xldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7cy5zdHlsZS5maWxsPSJub25lIjtsZXQgbz10aGlzLmNyZWF0ZVBhdGhEU3RyaW5nKGUpO3JldHVybiBzLnNldEF0dHJpYnV0ZSgiZCIsbyksdGhpcy5zdmcuYXBwZW5kQ2hpbGQocyksc30scz0+e2lmKCEodCE9bnVsbCYmdC5kYXRhKXx8IURpLmFyZVBvbHlsaW5lc0VxdWFsKGUsdD09bnVsbD92b2lkIDA6dC5kYXRhKSl7bGV0IG89dGhpcy5jcmVhdGVQYXRoRFN0cmluZyhlKTtzLnNldEF0dHJpYnV0ZSgiZCIsbyl9cmV0dXJuIHN9LGkpO3JldHVybiByPT09bnVsbD9udWxsOihyLnN0eWxlLnN0cm9rZVdpZHRoPVN0cmluZyhpLndpZHRoKSx7ZG9tOnIsZGF0YTplfSl9Y3JlYXRlT3JVcGRhdGVUcmlhbmdsZU9iamVjdCh0LGUsaSl7bGV0e3NpemU6cixjb2xvcjpzfT1pLG89cipNYXRoLnNxcnQoMykvMixhPW5ldyBGbG9hdDMyQXJyYXkoW2UueC1yLzIsZS55K28vMyxlLngrci8yLGUueStvLzMsZS54LGUueS1vKjIvM10pLGw9eWEodD09bnVsbD92b2lkIDA6dC5kb20sKCk9PntsZXQgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwicGF0aCIpO2MuY2xhc3NMaXN0LmFkZCgidHJpYW5nbGUiKSxjLnN0eWxlLmZpbGw9Im5vbmUiO2xldCB1PXRoaXMuY3JlYXRlUGF0aERTdHJpbmcoYSk7cmV0dXJuIGMuc2V0QXR0cmlidXRlKCJkIix1KyJaIiksdGhpcy5zdmcuYXBwZW5kQ2hpbGQoYyksY30sYz0+e2xldCB1PXRoaXMuY3JlYXRlUGF0aERTdHJpbmcoYSk7cmV0dXJuIGMuc2V0QXR0cmlidXRlKCJkIix1KyJaIiksY30saSk7cmV0dXJuIGw9PT1udWxsP251bGw6KGwuc3R5bGUuZmlsbD1zLHtkb206bCxkYXRhOmF9KX1jcmVhdGVPclVwZGF0ZUNpcmNsZU9iamVjdCh0LGUsaSl7bGV0e2NvbG9yOnIscmFkaXVzOnN9PWksbz15YSh0PT1udWxsP3ZvaWQgMDp0LmRvbSwoKT0+e2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJjaXJjbGUiKTtyZXR1cm4gYS5zdHlsZS5maWxsPXIsYS5zZXRBdHRyaWJ1dGUoImN4IixTdHJpbmcoZS54KSksYS5zZXRBdHRyaWJ1dGUoImN5IixTdHJpbmcoZS55KSksYS5zZXRBdHRyaWJ1dGUoInIiLFN0cmluZyhzKSksdGhpcy5zdmcuYXBwZW5kQ2hpbGQoYSksYX0sYT0+KGEuc3R5bGUuZmlsbD1yLGEuc2V0QXR0cmlidXRlKCJjeCIsU3RyaW5nKGUueCkpLGEuc2V0QXR0cmlidXRlKCJjeSIsU3RyaW5nKGUueSkpLGEuc2V0QXR0cmlidXRlKCJyIixTdHJpbmcocykpLGEpLGkpO3JldHVybiBvPT09bnVsbD9udWxsOntkb206byxkYXRhOmV9fWNyZWF0ZU9yVXBkYXRlVHJhcGV6b2lkT2JqZWN0KHQsZSxpLHIpe2lmKGUueSE9PWkueSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5wdXQgZXJyb3I6IHN0YXJ0LnkgIT0gZW5kLnkuIik7bGV0e2FsdGl0dWRlOnMsY29sb3I6b309cixhPTIvTWF0aC5zcXJ0KDMpKnMsbD1uZXcgRmxvYXQzMkFycmF5KFtlLngtYS8yLGUueStzLzIsZS54LGUueS1zLzIsaS54LGkueS1zLzIsaS54K2EvMixpLnkrcy8yXSksYz15YSh0PT1udWxsP3ZvaWQgMDp0LmRvbSwoKT0+e2xldCB1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7dS5jbGFzc0xpc3QuYWRkKCJ0cmFwZXpvaWQiKSx1LnN0eWxlLmZpbGw9Im5vbmUiO2xldCBoPXRoaXMuY3JlYXRlUGF0aERTdHJpbmcobCk7cmV0dXJuIHUuc2V0QXR0cmlidXRlKCJkIixoKyJaIiksdGhpcy5zdmcuYXBwZW5kQ2hpbGQodSksdX0sdT0+e2xldCBoPXRoaXMuY3JlYXRlUGF0aERTdHJpbmcobCk7cmV0dXJuIHUuc2V0QXR0cmlidXRlKCJkIixoKyJaIiksdX0scik7cmV0dXJuIGM9PT1udWxsP251bGw6KGMuc3R5bGUuZmlsbD1vLHtkb206YyxkYXRhOmx9KX1kaXNwb3NlKCl7fX07dmFyICRoPSIxMzciO3ZhciBpdz0wLEFtPTEscnc9Mjt2YXIgbDA9MSxzdz0yLEpzPTMsZW89MCxoZT0xLEhyPTIsYzA9MTt2YXIgam49MCxLcz0xLENtPTIsUm09MyxMbT00LG93PTUsSXI9MTAwLGF3PTEwMSxsdz0xMDIsUG09MTAzLERtPTEwNCxjdz0yMDAsdXc9MjAxLGh3PTIwMixmdz0yMDMsdTA9MjA0LGgwPTIwNSxkdz0yMDYscHc9MjA3LG13PTIwOCxndz0yMDkseHc9MjEwLHl3PTAsdnc9MSxfdz0yLHp1PTMsd3c9NCxNdz01LGJ3PTYsU3c9NyxDbD0wLEV3PTEsVHc9Mix0aT0wLEF3PTEsQ3c9MixSdz0zLEx3PTQsUHc9NSxmMD0zMDAsQW89MzAxLENvPTMwMixVdT0zMDMsQnU9MzA0LFJsPTMwNixLaD0zMDcsT3U9MWUzLFZlPTEwMDEsa3U9MTAwMixmZT0xMDAzLEltPTEwMDQ7dmFyIE5tPTEwMDU7dmFyIGJlPTEwMDYsRHc9MTAwNzt2YXIgTGw9MTAwODt2YXIgZWk9MTAwOSxJdz0xMDEwLE53PTEwMTEsbm89MTAxMixGdz0xMDEzLFFhPTEwMTQsVWk9MTAxNSxVcj0xMDE2LHp3PTEwMTcsVXc9MTAxOCxCcj0xMDIwLEJ3PTEwMjEsUmU9MTAyMyxPdz0xMDI0LGt3PTEwMjUsT2k9MTAyNixWcj0xMDI3LEh3PTEwMjgsVnc9MTAyOSxHdz0xMDMwLFd3PTEwMzEscXc9MTAzMyxLYz0zMzc3NixRYz0zMzc3NyxqYz0zMzc3OCx0dT0zMzc3OSxGbT0zNTg0MCx6bT0zNTg0MSxVbT0zNTg0MixCbT0zNTg0MyxYdz0zNjE5NixPbT0zNzQ5MixrbT0zNzQ5NixIbT0zNzgwOCxWbT0zNzgwOSxHbT0zNzgxMCxXbT0zNzgxMSxxbT0zNzgxMixYbT0zNzgxMyxZbT0zNzgxNCxabT0zNzgxNSxKbT0zNzgxNiwkbT0zNzgxNyxLbT0zNzgxOCxRbT0zNzgxOSxqbT0zNzgyMCx0Zz0zNzgyMSxlZz0zNjQ5MixZdz0yMjAwLFp3PTIyMDEsSnc9MjIwMixqYT0yMzAwLHRsPTIzMDEsZXU9MjMwMixOcj0yNDAwLEZyPTI0MDEsZWw9MjQwMixRaD0yNTAwLGQwPTI1MDEsJHc9MDt2YXIgcmk9M2UzLCR0PTMwMDEsS3c9MzIwMCxRdz0zMjAxLHRzPTAsanc9MTt2YXIgbnU9NzY4MDt2YXIgdE09NTE5LGlvPTM1MDQ0LG5sPTM1MDQ4O3ZhciBuZz0iMzAwIGVzIixIdT0xMDM1LEluPWNsYXNze2FkZEV2ZW50TGlzdGVuZXIodCxlKXt0aGlzLl9saXN0ZW5lcnM9PT12b2lkIDAmJih0aGlzLl9saXN0ZW5lcnM9e30pO2xldCBpPXRoaXMuX2xpc3RlbmVycztpW3RdPT09dm9pZCAwJiYoaVt0XT1bXSksaVt0XS5pbmRleE9mKGUpPT09LTEmJmlbdF0ucHVzaChlKX1oYXNFdmVudExpc3RlbmVyKHQsZSl7aWYodGhpcy5fbGlzdGVuZXJzPT09dm9pZCAwKXJldHVybiExO2xldCBpPXRoaXMuX2xpc3RlbmVycztyZXR1cm4gaVt0XSE9PXZvaWQgMCYmaVt0XS5pbmRleE9mKGUpIT09LTF9cmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGUpe2lmKHRoaXMuX2xpc3RlbmVycz09PXZvaWQgMClyZXR1cm47bGV0IHI9dGhpcy5fbGlzdGVuZXJzW3RdO2lmKHIhPT12b2lkIDApe2xldCBzPXIuaW5kZXhPZihlKTtzIT09LTEmJnIuc3BsaWNlKHMsMSl9fWRpc3BhdGNoRXZlbnQodCl7aWYodGhpcy5fbGlzdGVuZXJzPT09dm9pZCAwKXJldHVybjtsZXQgaT10aGlzLl9saXN0ZW5lcnNbdC50eXBlXTtpZihpIT09dm9pZCAwKXt0LnRhcmdldD10aGlzO2xldCByPWkuc2xpY2UoMCk7Zm9yKGxldCBzPTAsbz1yLmxlbmd0aDtzPG87cysrKXJbc10uY2FsbCh0aGlzLHQpO3QudGFyZ2V0PW51bGx9fX0sdmU9W107Zm9yKGxldCBuPTA7bjwyNTY7bisrKXZlW25dPShuPDE2PyIwIjoiIikrbi50b1N0cmluZygxNik7dmFyIGl1PU1hdGguUEkvMTgwLFZ1PTE4MC9NYXRoLlBJO2Z1bmN0aW9uIHRuKCl7bGV0IG49TWF0aC5yYW5kb20oKSo0Mjk0OTY3Mjk1fDAsdD1NYXRoLnJhbmRvbSgpKjQyOTQ5NjcyOTV8MCxlPU1hdGgucmFuZG9tKCkqNDI5NDk2NzI5NXwwLGk9TWF0aC5yYW5kb20oKSo0Mjk0OTY3Mjk1fDA7cmV0dXJuKHZlW24mMjU1XSt2ZVtuPj44JjI1NV0rdmVbbj4+MTYmMjU1XSt2ZVtuPj4yNCYyNTVdKyItIit2ZVt0JjI1NV0rdmVbdD4+OCYyNTVdKyItIit2ZVt0Pj4xNiYxNXw2NF0rdmVbdD4+MjQmMjU1XSsiLSIrdmVbZSY2M3wxMjhdK3ZlW2U+PjgmMjU1XSsiLSIrdmVbZT4+MTYmMjU1XSt2ZVtlPj4yNCYyNTVdK3ZlW2kmMjU1XSt2ZVtpPj44JjI1NV0rdmVbaT4+MTYmMjU1XSt2ZVtpPj4yNCYyNTVdKS50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIEllKG4sdCxlKXtyZXR1cm4gTWF0aC5tYXgodCxNYXRoLm1pbihlLG4pKX1mdW5jdGlvbiBlTShuLHQpe3JldHVybihuJXQrdCkldH1mdW5jdGlvbiBydShuLHQsZSl7cmV0dXJuKDEtZSkqbitlKnR9ZnVuY3Rpb24gaWcobil7cmV0dXJuKG4mbi0xKT09PTAmJm4hPT0wfWZ1bmN0aW9uIG5NKG4pe3JldHVybiBNYXRoLnBvdygyLE1hdGguZmxvb3IoTWF0aC5sb2cobikvTWF0aC5MTjIpKX12YXIgSz1jbGFzc3tjb25zdHJ1Y3Rvcih0PTAsZT0wKXt0aGlzLng9dCx0aGlzLnk9ZX1nZXQgd2lkdGgoKXtyZXR1cm4gdGhpcy54fXNldCB3aWR0aCh0KXt0aGlzLng9dH1nZXQgaGVpZ2h0KCl7cmV0dXJuIHRoaXMueX1zZXQgaGVpZ2h0KHQpe3RoaXMueT10fXNldCh0LGUpe3JldHVybiB0aGlzLng9dCx0aGlzLnk9ZSx0aGlzfXNldFNjYWxhcih0KXtyZXR1cm4gdGhpcy54PXQsdGhpcy55PXQsdGhpc31zZXRYKHQpe3JldHVybiB0aGlzLng9dCx0aGlzfXNldFkodCl7cmV0dXJuIHRoaXMueT10LHRoaXN9c2V0Q29tcG9uZW50KHQsZSl7c3dpdGNoKHQpe2Nhc2UgMDp0aGlzLng9ZTticmVhaztjYXNlIDE6dGhpcy55PWU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX1yZXR1cm4gdGhpc31nZXRDb21wb25lbnQodCl7c3dpdGNoKHQpe2Nhc2UgMDpyZXR1cm4gdGhpcy54O2Nhc2UgMTpyZXR1cm4gdGhpcy55O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9fWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMueCx0aGlzLnkpfWNvcHkodCl7cmV0dXJuIHRoaXMueD10LngsdGhpcy55PXQueSx0aGlzfWFkZCh0LGUpe3JldHVybiBlIT09dm9pZCAwPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5hZGQoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5hZGRWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLmFkZFZlY3RvcnModCxlKSk6KHRoaXMueCs9dC54LHRoaXMueSs9dC55LHRoaXMpfWFkZFNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kz10LHRoaXMueSs9dCx0aGlzfWFkZFZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueCtlLngsdGhpcy55PXQueStlLnksdGhpc31hZGRTY2FsZWRWZWN0b3IodCxlKXtyZXR1cm4gdGhpcy54Kz10LngqZSx0aGlzLnkrPXQueSplLHRoaXN9c3ViKHQsZSl7cmV0dXJuIGUhPT12b2lkIDA/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogLnN1YigpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLnN1YlZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuc3ViVmVjdG9ycyh0LGUpKToodGhpcy54LT10LngsdGhpcy55LT10LnksdGhpcyl9c3ViU2NhbGFyKHQpe3JldHVybiB0aGlzLngtPXQsdGhpcy55LT10LHRoaXN9c3ViVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54LWUueCx0aGlzLnk9dC55LWUueSx0aGlzfW11bHRpcGx5KHQpe3JldHVybiB0aGlzLngqPXQueCx0aGlzLnkqPXQueSx0aGlzfW11bHRpcGx5U2NhbGFyKHQpe3JldHVybiB0aGlzLngqPXQsdGhpcy55Kj10LHRoaXN9ZGl2aWRlKHQpe3JldHVybiB0aGlzLngvPXQueCx0aGlzLnkvPXQueSx0aGlzfWRpdmlkZVNjYWxhcih0KXtyZXR1cm4gdGhpcy5tdWx0aXBseVNjYWxhcigxL3QpfWFwcGx5TWF0cml4Myh0KXtsZXQgZT10aGlzLngsaT10aGlzLnkscj10LmVsZW1lbnRzO3JldHVybiB0aGlzLng9clswXSplK3JbM10qaStyWzZdLHRoaXMueT1yWzFdKmUrcls0XSppK3JbN10sdGhpc31taW4odCl7cmV0dXJuIHRoaXMueD1NYXRoLm1pbih0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5taW4odGhpcy55LHQueSksdGhpc31tYXgodCl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5tYXgodGhpcy55LHQueSksdGhpc31jbGFtcCh0LGUpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodC54LE1hdGgubWluKGUueCx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodC55LE1hdGgubWluKGUueSx0aGlzLnkpKSx0aGlzfWNsYW1wU2NhbGFyKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLnkpKSx0aGlzfWNsYW1wTGVuZ3RoKHQsZSl7bGV0IGk9dGhpcy5sZW5ndGgoKTtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIoaXx8MSkubXVsdGlwbHlTY2FsYXIoTWF0aC5tYXgodCxNYXRoLm1pbihlLGkpKSl9Zmxvb3IoKXtyZXR1cm4gdGhpcy54PU1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpLHRoaXN9Y2VpbCgpe3JldHVybiB0aGlzLng9TWF0aC5jZWlsKHRoaXMueCksdGhpcy55PU1hdGguY2VpbCh0aGlzLnkpLHRoaXN9cm91bmQoKXtyZXR1cm4gdGhpcy54PU1hdGgucm91bmQodGhpcy54KSx0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpLHRoaXN9cm91bmRUb1plcm8oKXtyZXR1cm4gdGhpcy54PXRoaXMueDwwP01hdGguY2VpbCh0aGlzLngpOk1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9dGhpcy55PDA/TWF0aC5jZWlsKHRoaXMueSk6TWF0aC5mbG9vcih0aGlzLnkpLHRoaXN9bmVnYXRlKCl7cmV0dXJuIHRoaXMueD0tdGhpcy54LHRoaXMueT0tdGhpcy55LHRoaXN9ZG90KHQpe3JldHVybiB0aGlzLngqdC54K3RoaXMueSp0Lnl9Y3Jvc3ModCl7cmV0dXJuIHRoaXMueCp0LnktdGhpcy55KnQueH1sZW5ndGhTcSgpe3JldHVybiB0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnl9bGVuZ3RoKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkpfW1hbmhhdHRhbkxlbmd0aCgpe3JldHVybiBNYXRoLmFicyh0aGlzLngpK01hdGguYWJzKHRoaXMueSl9bm9ybWFsaXplKCl7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKHRoaXMubGVuZ3RoKCl8fDEpfWFuZ2xlKCl7cmV0dXJuIE1hdGguYXRhbjIoLXRoaXMueSwtdGhpcy54KStNYXRoLlBJfWRpc3RhbmNlVG8odCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLmRpc3RhbmNlVG9TcXVhcmVkKHQpKX1kaXN0YW5jZVRvU3F1YXJlZCh0KXtsZXQgZT10aGlzLngtdC54LGk9dGhpcy55LXQueTtyZXR1cm4gZSplK2kqaX1tYW5oYXR0YW5EaXN0YW5jZVRvKHQpe3JldHVybiBNYXRoLmFicyh0aGlzLngtdC54KStNYXRoLmFicyh0aGlzLnktdC55KX1zZXRMZW5ndGgodCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIodCl9bGVycCh0LGUpe3JldHVybiB0aGlzLngrPSh0LngtdGhpcy54KSplLHRoaXMueSs9KHQueS10aGlzLnkpKmUsdGhpc31sZXJwVmVjdG9ycyh0LGUsaSl7cmV0dXJuIHRoaXMueD10LngrKGUueC10LngpKmksdGhpcy55PXQueSsoZS55LXQueSkqaSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC54PT09dGhpcy54JiZ0Lnk9PT10aGlzLnl9ZnJvbUFycmF5KHQsZT0wKXtyZXR1cm4gdGhpcy54PXRbZV0sdGhpcy55PXRbZSsxXSx0aGlzfXRvQXJyYXkodD1bXSxlPTApe3JldHVybiB0W2VdPXRoaXMueCx0W2UrMV09dGhpcy55LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsaSl7cmV0dXJuIGkhPT12b2lkIDAmJmNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogb2Zmc2V0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMueD10LmdldFgoZSksdGhpcy55PXQuZ2V0WShlKSx0aGlzfXJvdGF0ZUFyb3VuZCh0LGUpe2xldCBpPU1hdGguY29zKGUpLHI9TWF0aC5zaW4oZSkscz10aGlzLngtdC54LG89dGhpcy55LXQueTtyZXR1cm4gdGhpcy54PXMqaS1vKnIrdC54LHRoaXMueT1zKnIrbyppK3QueSx0aGlzfXJhbmRvbSgpe3JldHVybiB0aGlzLng9TWF0aC5yYW5kb20oKSx0aGlzLnk9TWF0aC5yYW5kb20oKSx0aGlzfSpbU3ltYm9sLml0ZXJhdG9yXSgpe3lpZWxkIHRoaXMueCx5aWVsZCB0aGlzLnl9fTtLLnByb3RvdHlwZS5pc1ZlY3RvcjI9ITA7dmFyIGRlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5lbGVtZW50cz1bMSwwLDAsMCwxLDAsMCwwLDFdLGFyZ3VtZW50cy5sZW5ndGg+MCYmY29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4MzogdGhlIGNvbnN0cnVjdG9yIG5vIGxvbmdlciByZWFkcyBhcmd1bWVudHMuIHVzZSAuc2V0KCkgaW5zdGVhZC4iKX1zZXQodCxlLGkscixzLG8sYSxsLGMpe2xldCB1PXRoaXMuZWxlbWVudHM7cmV0dXJuIHVbMF09dCx1WzFdPXIsdVsyXT1hLHVbM109ZSx1WzRdPXMsdVs1XT1sLHVbNl09aSx1WzddPW8sdVs4XT1jLHRoaXN9aWRlbnRpdHkoKXtyZXR1cm4gdGhpcy5zZXQoMSwwLDAsMCwxLDAsMCwwLDEpLHRoaXN9Y29weSh0KXtsZXQgZT10aGlzLmVsZW1lbnRzLGk9dC5lbGVtZW50cztyZXR1cm4gZVswXT1pWzBdLGVbMV09aVsxXSxlWzJdPWlbMl0sZVszXT1pWzNdLGVbNF09aVs0XSxlWzVdPWlbNV0sZVs2XT1pWzZdLGVbN109aVs3XSxlWzhdPWlbOF0sdGhpc31leHRyYWN0QmFzaXModCxlLGkpe3JldHVybiB0LnNldEZyb21NYXRyaXgzQ29sdW1uKHRoaXMsMCksZS5zZXRGcm9tTWF0cml4M0NvbHVtbih0aGlzLDEpLGkuc2V0RnJvbU1hdHJpeDNDb2x1bW4odGhpcywyKSx0aGlzfXNldEZyb21NYXRyaXg0KHQpe2xldCBlPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMuc2V0KGVbMF0sZVs0XSxlWzhdLGVbMV0sZVs1XSxlWzldLGVbMl0sZVs2XSxlWzEwXSksdGhpc31tdWx0aXBseSh0KXtyZXR1cm4gdGhpcy5tdWx0aXBseU1hdHJpY2VzKHRoaXMsdCl9cHJlbXVsdGlwbHkodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlNYXRyaWNlcyh0LHRoaXMpfW11bHRpcGx5TWF0cmljZXModCxlKXtsZXQgaT10LmVsZW1lbnRzLHI9ZS5lbGVtZW50cyxzPXRoaXMuZWxlbWVudHMsbz1pWzBdLGE9aVszXSxsPWlbNl0sYz1pWzFdLHU9aVs0XSxoPWlbN10sZj1pWzJdLGQ9aVs1XSxnPWlbOF0seD1yWzBdLHY9clszXSxtPXJbNl0scD1yWzFdLGI9cls0XSxfPXJbN10sUz1yWzJdLEw9cls1XSxBPXJbOF07cmV0dXJuIHNbMF09byp4K2EqcCtsKlMsc1szXT1vKnYrYSpiK2wqTCxzWzZdPW8qbSthKl8rbCpBLHNbMV09Yyp4K3UqcCtoKlMsc1s0XT1jKnYrdSpiK2gqTCxzWzddPWMqbSt1Kl8raCpBLHNbMl09Zip4K2QqcCtnKlMsc1s1XT1mKnYrZCpiK2cqTCxzWzhdPWYqbStkKl8rZypBLHRoaXN9bXVsdGlwbHlTY2FsYXIodCl7bGV0IGU9dGhpcy5lbGVtZW50cztyZXR1cm4gZVswXSo9dCxlWzNdKj10LGVbNl0qPXQsZVsxXSo9dCxlWzRdKj10LGVbN10qPXQsZVsyXSo9dCxlWzVdKj10LGVbOF0qPXQsdGhpc31kZXRlcm1pbmFudCgpe2xldCB0PXRoaXMuZWxlbWVudHMsZT10WzBdLGk9dFsxXSxyPXRbMl0scz10WzNdLG89dFs0XSxhPXRbNV0sbD10WzZdLGM9dFs3XSx1PXRbOF07cmV0dXJuIGUqbyp1LWUqYSpjLWkqcyp1K2kqYSpsK3IqcypjLXIqbypsfWludmVydCgpe2xldCB0PXRoaXMuZWxlbWVudHMsZT10WzBdLGk9dFsxXSxyPXRbMl0scz10WzNdLG89dFs0XSxhPXRbNV0sbD10WzZdLGM9dFs3XSx1PXRbOF0saD11Km8tYSpjLGY9YSpsLXUqcyxkPWMqcy1vKmwsZz1lKmgraSpmK3IqZDtpZihnPT09MClyZXR1cm4gdGhpcy5zZXQoMCwwLDAsMCwwLDAsMCwwLDApO2xldCB4PTEvZztyZXR1cm4gdFswXT1oKngsdFsxXT0ocipjLXUqaSkqeCx0WzJdPShhKmktcipvKSp4LHRbM109Zip4LHRbNF09KHUqZS1yKmwpKngsdFs1XT0ocipzLWEqZSkqeCx0WzZdPWQqeCx0WzddPShpKmwtYyplKSp4LHRbOF09KG8qZS1pKnMpKngsdGhpc310cmFuc3Bvc2UoKXtsZXQgdCxlPXRoaXMuZWxlbWVudHM7cmV0dXJuIHQ9ZVsxXSxlWzFdPWVbM10sZVszXT10LHQ9ZVsyXSxlWzJdPWVbNl0sZVs2XT10LHQ9ZVs1XSxlWzVdPWVbN10sZVs3XT10LHRoaXN9Z2V0Tm9ybWFsTWF0cml4KHQpe3JldHVybiB0aGlzLnNldEZyb21NYXRyaXg0KHQpLmludmVydCgpLnRyYW5zcG9zZSgpfXRyYW5zcG9zZUludG9BcnJheSh0KXtsZXQgZT10aGlzLmVsZW1lbnRzO3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzNdLHRbMl09ZVs2XSx0WzNdPWVbMV0sdFs0XT1lWzRdLHRbNV09ZVs3XSx0WzZdPWVbMl0sdFs3XT1lWzVdLHRbOF09ZVs4XSx0aGlzfXNldFV2VHJhbnNmb3JtKHQsZSxpLHIscyxvLGEpe2xldCBsPU1hdGguY29zKHMpLGM9TWF0aC5zaW4ocyk7cmV0dXJuIHRoaXMuc2V0KGkqbCxpKmMsLWkqKGwqbytjKmEpK28rdCwtcipjLHIqbCwtciooLWMqbytsKmEpK2ErZSwwLDAsMSksdGhpc31zY2FsZSh0LGUpe2xldCBpPXRoaXMuZWxlbWVudHM7cmV0dXJuIGlbMF0qPXQsaVszXSo9dCxpWzZdKj10LGlbMV0qPWUsaVs0XSo9ZSxpWzddKj1lLHRoaXN9cm90YXRlKHQpe2xldCBlPU1hdGguY29zKHQpLGk9TWF0aC5zaW4odCkscj10aGlzLmVsZW1lbnRzLHM9clswXSxvPXJbM10sYT1yWzZdLGw9clsxXSxjPXJbNF0sdT1yWzddO3JldHVybiByWzBdPWUqcytpKmwsclszXT1lKm8raSpjLHJbNl09ZSphK2kqdSxyWzFdPS1pKnMrZSpsLHJbNF09LWkqbytlKmMscls3XT0taSphK2UqdSx0aGlzfXRyYW5zbGF0ZSh0LGUpe2xldCBpPXRoaXMuZWxlbWVudHM7cmV0dXJuIGlbMF0rPXQqaVsyXSxpWzNdKz10KmlbNV0saVs2XSs9dCppWzhdLGlbMV0rPWUqaVsyXSxpWzRdKz1lKmlbNV0saVs3XSs9ZSppWzhdLHRoaXN9ZXF1YWxzKHQpe2xldCBlPXRoaXMuZWxlbWVudHMsaT10LmVsZW1lbnRzO2ZvcihsZXQgcj0wO3I8OTtyKyspaWYoZVtyXSE9PWlbcl0pcmV0dXJuITE7cmV0dXJuITB9ZnJvbUFycmF5KHQsZT0wKXtmb3IobGV0IGk9MDtpPDk7aSsrKXRoaXMuZWxlbWVudHNbaV09dFtpK2VdO3JldHVybiB0aGlzfXRvQXJyYXkodD1bXSxlPTApe2xldCBpPXRoaXMuZWxlbWVudHM7cmV0dXJuIHRbZV09aVswXSx0W2UrMV09aVsxXSx0W2UrMl09aVsyXSx0W2UrM109aVszXSx0W2UrNF09aVs0XSx0W2UrNV09aVs1XSx0W2UrNl09aVs2XSx0W2UrN109aVs3XSx0W2UrOF09aVs4XSx0fWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuZnJvbUFycmF5KHRoaXMuZWxlbWVudHMpfX07ZGUucHJvdG90eXBlLmlzTWF0cml4Mz0hMDtmdW5jdGlvbiBwMChuKXtmb3IobGV0IHQ9bi5sZW5ndGgtMTt0Pj0wOy0tdClpZihuW3RdPjY1NTM1KXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIHJvKG4pe3JldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLG4pfXZhciBtMD17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fSwkZT17aDowLHM6MCxsOjB9LHZhPXtoOjAsczowLGw6MH07ZnVuY3Rpb24gc3Uobix0LGUpe3JldHVybiBlPDAmJihlKz0xKSxlPjEmJihlLT0xKSxlPDEvNj9uKyh0LW4pKjYqZTplPDEvMj90OmU8Mi8zP24rKHQtbikqNiooMi8zLWUpOm59ZnVuY3Rpb24gT3Iobil7cmV0dXJuIG48LjA0MDQ1P24qLjA3NzM5OTM4MDg6TWF0aC5wb3cobiouOTQ3ODY3Mjk4NisuMDUyMTMyNzAxNCwyLjQpfWZ1bmN0aW9uIG91KG4pe3JldHVybiBuPC4wMDMxMzA4P24qMTIuOTI6MS4wNTUqTWF0aC5wb3cobiwuNDE2NjYpLS4wNTV9dmFyIGZ0PWNsYXNze2NvbnN0cnVjdG9yKHQsZSxpKXtyZXR1cm4gZT09PXZvaWQgMCYmaT09PXZvaWQgMD90aGlzLnNldCh0KTp0aGlzLnNldFJHQih0LGUsaSl9c2V0KHQpe3JldHVybiB0JiZ0LmlzQ29sb3I/dGhpcy5jb3B5KHQpOnR5cGVvZiB0PT0ibnVtYmVyIj90aGlzLnNldEhleCh0KTp0eXBlb2YgdD09InN0cmluZyImJnRoaXMuc2V0U3R5bGUodCksdGhpc31zZXRTY2FsYXIodCl7cmV0dXJuIHRoaXMucj10LHRoaXMuZz10LHRoaXMuYj10LHRoaXN9c2V0SGV4KHQpe3JldHVybiB0PU1hdGguZmxvb3IodCksdGhpcy5yPSh0Pj4xNiYyNTUpLzI1NSx0aGlzLmc9KHQ+PjgmMjU1KS8yNTUsdGhpcy5iPSh0JjI1NSkvMjU1LHRoaXN9c2V0UkdCKHQsZSxpKXtyZXR1cm4gdGhpcy5yPXQsdGhpcy5nPWUsdGhpcy5iPWksdGhpc31zZXRIU0wodCxlLGkpe2lmKHQ9ZU0odCwxKSxlPUllKGUsMCwxKSxpPUllKGksMCwxKSxlPT09MCl0aGlzLnI9dGhpcy5nPXRoaXMuYj1pO2Vsc2V7bGV0IHI9aTw9LjU/aSooMStlKTppK2UtaSplLHM9MippLXI7dGhpcy5yPXN1KHMscix0KzEvMyksdGhpcy5nPXN1KHMscix0KSx0aGlzLmI9c3UocyxyLHQtMS8zKX1yZXR1cm4gdGhpc31zZXRTdHlsZSh0KXtmdW5jdGlvbiBlKHIpe3IhPT12b2lkIDAmJnBhcnNlRmxvYXQocik8MSYmY29uc29sZS53YXJuKCJUSFJFRS5Db2xvcjogQWxwaGEgY29tcG9uZW50IG9mICIrdCsiIHdpbGwgYmUgaWdub3JlZC4iKX1sZXQgaTtpZihpPS9eKCg/OnJnYnxoc2wpYT8pXCgoW15cKV0qKVwpLy5leGVjKHQpKXtsZXQgcixzPWlbMV0sbz1pWzJdO3N3aXRjaChzKXtjYXNlInJnYiI6Y2FzZSJyZ2JhIjppZihyPS9eXHMqKFxkKylccyosXHMqKFxkKylccyosXHMqKFxkKylccyooPzosXHMqKFxkKlwuP1xkKylccyopPyQvLmV4ZWMobykpcmV0dXJuIHRoaXMucj1NYXRoLm1pbigyNTUscGFyc2VJbnQoclsxXSwxMCkpLzI1NSx0aGlzLmc9TWF0aC5taW4oMjU1LHBhcnNlSW50KHJbMl0sMTApKS8yNTUsdGhpcy5iPU1hdGgubWluKDI1NSxwYXJzZUludChyWzNdLDEwKSkvMjU1LGUocls0XSksdGhpcztpZihyPS9eXHMqKFxkKylcJVxzKixccyooXGQrKVwlXHMqLFxzKihcZCspXCVccyooPzosXHMqKFxkKlwuP1xkKylccyopPyQvLmV4ZWMobykpcmV0dXJuIHRoaXMucj1NYXRoLm1pbigxMDAscGFyc2VJbnQoclsxXSwxMCkpLzEwMCx0aGlzLmc9TWF0aC5taW4oMTAwLHBhcnNlSW50KHJbMl0sMTApKS8xMDAsdGhpcy5iPU1hdGgubWluKDEwMCxwYXJzZUludChyWzNdLDEwKSkvMTAwLGUocls0XSksdGhpczticmVhaztjYXNlImhzbCI6Y2FzZSJoc2xhIjppZihyPS9eXHMqKFxkKlwuP1xkKylccyosXHMqKFxkKylcJVxzKixccyooXGQrKVwlXHMqKD86LFxzKihcZCpcLj9cZCspXHMqKT8kLy5leGVjKG8pKXtsZXQgYT1wYXJzZUZsb2F0KHJbMV0pLzM2MCxsPXBhcnNlSW50KHJbMl0sMTApLzEwMCxjPXBhcnNlSW50KHJbM10sMTApLzEwMDtyZXR1cm4gZShyWzRdKSx0aGlzLnNldEhTTChhLGwsYyl9YnJlYWt9fWVsc2UgaWYoaT0vXlwjKFtBLUZhLWZcZF0rKSQvLmV4ZWModCkpe2xldCByPWlbMV0scz1yLmxlbmd0aDtpZihzPT09MylyZXR1cm4gdGhpcy5yPXBhcnNlSW50KHIuY2hhckF0KDApK3IuY2hhckF0KDApLDE2KS8yNTUsdGhpcy5nPXBhcnNlSW50KHIuY2hhckF0KDEpK3IuY2hhckF0KDEpLDE2KS8yNTUsdGhpcy5iPXBhcnNlSW50KHIuY2hhckF0KDIpK3IuY2hhckF0KDIpLDE2KS8yNTUsdGhpcztpZihzPT09NilyZXR1cm4gdGhpcy5yPXBhcnNlSW50KHIuY2hhckF0KDApK3IuY2hhckF0KDEpLDE2KS8yNTUsdGhpcy5nPXBhcnNlSW50KHIuY2hhckF0KDIpK3IuY2hhckF0KDMpLDE2KS8yNTUsdGhpcy5iPXBhcnNlSW50KHIuY2hhckF0KDQpK3IuY2hhckF0KDUpLDE2KS8yNTUsdGhpc31yZXR1cm4gdCYmdC5sZW5ndGg+MD90aGlzLnNldENvbG9yTmFtZSh0KTp0aGlzfXNldENvbG9yTmFtZSh0KXtsZXQgZT1tMFt0LnRvTG93ZXJDYXNlKCldO3JldHVybiBlIT09dm9pZCAwP3RoaXMuc2V0SGV4KGUpOmNvbnNvbGUud2FybigiVEhSRUUuQ29sb3I6IFVua25vd24gY29sb3IgIit0KSx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMucix0aGlzLmcsdGhpcy5iKX1jb3B5KHQpe3JldHVybiB0aGlzLnI9dC5yLHRoaXMuZz10LmcsdGhpcy5iPXQuYix0aGlzfWNvcHlTUkdCVG9MaW5lYXIodCl7cmV0dXJuIHRoaXMucj1Pcih0LnIpLHRoaXMuZz1Pcih0LmcpLHRoaXMuYj1Pcih0LmIpLHRoaXN9Y29weUxpbmVhclRvU1JHQih0KXtyZXR1cm4gdGhpcy5yPW91KHQuciksdGhpcy5nPW91KHQuZyksdGhpcy5iPW91KHQuYiksdGhpc31jb252ZXJ0U1JHQlRvTGluZWFyKCl7cmV0dXJuIHRoaXMuY29weVNSR0JUb0xpbmVhcih0aGlzKSx0aGlzfWNvbnZlcnRMaW5lYXJUb1NSR0IoKXtyZXR1cm4gdGhpcy5jb3B5TGluZWFyVG9TUkdCKHRoaXMpLHRoaXN9Z2V0SGV4KCl7cmV0dXJuIHRoaXMucioyNTU8PDE2XnRoaXMuZyoyNTU8PDhedGhpcy5iKjI1NTw8MH1nZXRIZXhTdHJpbmcoKXtyZXR1cm4oIjAwMDAwMCIrdGhpcy5nZXRIZXgoKS50b1N0cmluZygxNikpLnNsaWNlKC02KX1nZXRIU0wodCl7bGV0IGU9dGhpcy5yLGk9dGhpcy5nLHI9dGhpcy5iLHM9TWF0aC5tYXgoZSxpLHIpLG89TWF0aC5taW4oZSxpLHIpLGEsbCxjPShvK3MpLzI7aWYobz09PXMpYT0wLGw9MDtlbHNle2xldCB1PXMtbztzd2l0Y2gobD1jPD0uNT91LyhzK28pOnUvKDItcy1vKSxzKXtjYXNlIGU6YT0oaS1yKS91KyhpPHI/NjowKTticmVhaztjYXNlIGk6YT0oci1lKS91KzI7YnJlYWs7Y2FzZSByOmE9KGUtaSkvdSs0O2JyZWFrfWEvPTZ9cmV0dXJuIHQuaD1hLHQucz1sLHQubD1jLHR9Z2V0U3R5bGUoKXtyZXR1cm4icmdiKCIrKHRoaXMucioyNTV8MCkrIiwiKyh0aGlzLmcqMjU1fDApKyIsIisodGhpcy5iKjI1NXwwKSsiKSJ9b2Zmc2V0SFNMKHQsZSxpKXtyZXR1cm4gdGhpcy5nZXRIU0woJGUpLCRlLmgrPXQsJGUucys9ZSwkZS5sKz1pLHRoaXMuc2V0SFNMKCRlLmgsJGUucywkZS5sKSx0aGlzfWFkZCh0KXtyZXR1cm4gdGhpcy5yKz10LnIsdGhpcy5nKz10LmcsdGhpcy5iKz10LmIsdGhpc31hZGRDb2xvcnModCxlKXtyZXR1cm4gdGhpcy5yPXQucitlLnIsdGhpcy5nPXQuZytlLmcsdGhpcy5iPXQuYitlLmIsdGhpc31hZGRTY2FsYXIodCl7cmV0dXJuIHRoaXMucis9dCx0aGlzLmcrPXQsdGhpcy5iKz10LHRoaXN9c3ViKHQpe3JldHVybiB0aGlzLnI9TWF0aC5tYXgoMCx0aGlzLnItdC5yKSx0aGlzLmc9TWF0aC5tYXgoMCx0aGlzLmctdC5nKSx0aGlzLmI9TWF0aC5tYXgoMCx0aGlzLmItdC5iKSx0aGlzfW11bHRpcGx5KHQpe3JldHVybiB0aGlzLnIqPXQucix0aGlzLmcqPXQuZyx0aGlzLmIqPXQuYix0aGlzfW11bHRpcGx5U2NhbGFyKHQpe3JldHVybiB0aGlzLnIqPXQsdGhpcy5nKj10LHRoaXMuYio9dCx0aGlzfWxlcnAodCxlKXtyZXR1cm4gdGhpcy5yKz0odC5yLXRoaXMucikqZSx0aGlzLmcrPSh0LmctdGhpcy5nKSplLHRoaXMuYis9KHQuYi10aGlzLmIpKmUsdGhpc31sZXJwQ29sb3JzKHQsZSxpKXtyZXR1cm4gdGhpcy5yPXQucisoZS5yLXQucikqaSx0aGlzLmc9dC5nKyhlLmctdC5nKSppLHRoaXMuYj10LmIrKGUuYi10LmIpKmksdGhpc31sZXJwSFNMKHQsZSl7dGhpcy5nZXRIU0woJGUpLHQuZ2V0SFNMKHZhKTtsZXQgaT1ydSgkZS5oLHZhLmgsZSkscj1ydSgkZS5zLHZhLnMsZSkscz1ydSgkZS5sLHZhLmwsZSk7cmV0dXJuIHRoaXMuc2V0SFNMKGkscixzKSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5yPT09dGhpcy5yJiZ0Lmc9PT10aGlzLmcmJnQuYj09PXRoaXMuYn1mcm9tQXJyYXkodCxlPTApe3JldHVybiB0aGlzLnI9dFtlXSx0aGlzLmc9dFtlKzFdLHRoaXMuYj10W2UrMl0sdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLnIsdFtlKzFdPXRoaXMuZyx0W2UrMl09dGhpcy5iLHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUpe3JldHVybiB0aGlzLnI9dC5nZXRYKGUpLHRoaXMuZz10LmdldFkoZSksdGhpcy5iPXQuZ2V0WihlKSx0Lm5vcm1hbGl6ZWQ9PT0hMCYmKHRoaXMuci89MjU1LHRoaXMuZy89MjU1LHRoaXMuYi89MjU1KSx0aGlzfXRvSlNPTigpe3JldHVybiB0aGlzLmdldEhleCgpfX07ZnQuTkFNRVM9bTA7ZnQucHJvdG90eXBlLmlzQ29sb3I9ITA7ZnQucHJvdG90eXBlLnI9MTtmdC5wcm90b3R5cGUuZz0xO2Z0LnByb3RvdHlwZS5iPTE7dmFyIHByLE5uPWNsYXNze3N0YXRpYyBnZXREYXRhVVJMKHQpe2lmKC9eZGF0YTovaS50ZXN0KHQuc3JjKXx8dHlwZW9mIEhUTUxDYW52YXNFbGVtZW50PT0idW5kZWZpbmVkIilyZXR1cm4gdC5zcmM7bGV0IGU7aWYodCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50KWU9dDtlbHNle3ByPT09dm9pZCAwJiYocHI9cm8oImNhbnZhcyIpKSxwci53aWR0aD10LndpZHRoLHByLmhlaWdodD10LmhlaWdodDtsZXQgaT1wci5nZXRDb250ZXh0KCIyZCIpO3QgaW5zdGFuY2VvZiBJbWFnZURhdGE/aS5wdXRJbWFnZURhdGEodCwwLDApOmkuZHJhd0ltYWdlKHQsMCwwLHQud2lkdGgsdC5oZWlnaHQpLGU9cHJ9cmV0dXJuIGUud2lkdGg+MjA0OHx8ZS5oZWlnaHQ+MjA0OD8oY29uc29sZS53YXJuKCJUSFJFRS5JbWFnZVV0aWxzLmdldERhdGFVUkw6IEltYWdlIGNvbnZlcnRlZCB0byBqcGcgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMiLHQpLGUudG9EYXRhVVJMKCJpbWFnZS9qcGVnIiwuNikpOmUudG9EYXRhVVJMKCJpbWFnZS9wbmciKX1zdGF0aWMgc1JHQlRvTGluZWFyKHQpe2lmKHR5cGVvZiBIVE1MSW1hZ2VFbGVtZW50IT0idW5kZWZpbmVkIiYmdCBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnR8fHR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudCE9InVuZGVmaW5lZCImJnQgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudHx8dHlwZW9mIEltYWdlQml0bWFwIT0idW5kZWZpbmVkIiYmdCBpbnN0YW5jZW9mIEltYWdlQml0bWFwKXtsZXQgZT1ybygiY2FudmFzIik7ZS53aWR0aD10LndpZHRoLGUuaGVpZ2h0PXQuaGVpZ2h0O2xldCBpPWUuZ2V0Q29udGV4dCgiMmQiKTtpLmRyYXdJbWFnZSh0LDAsMCx0LndpZHRoLHQuaGVpZ2h0KTtsZXQgcj1pLmdldEltYWdlRGF0YSgwLDAsdC53aWR0aCx0LmhlaWdodCkscz1yLmRhdGE7Zm9yKGxldCBvPTA7bzxzLmxlbmd0aDtvKyspc1tvXT1PcihzW29dLzI1NSkqMjU1O3JldHVybiBpLnB1dEltYWdlRGF0YShyLDAsMCksZX1lbHNlIGlmKHQuZGF0YSl7bGV0IGU9dC5kYXRhLnNsaWNlKDApO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSsrKWUgaW5zdGFuY2VvZiBVaW50OEFycmF5fHxlIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXk/ZVtpXT1NYXRoLmZsb29yKE9yKGVbaV0vMjU1KSoyNTUpOmVbaV09T3IoZVtpXSk7cmV0dXJue2RhdGE6ZSx3aWR0aDp0LndpZHRoLGhlaWdodDp0LmhlaWdodH19ZWxzZSByZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5JbWFnZVV0aWxzLnNSR0JUb0xpbmVhcigpOiBVbnN1cHBvcnRlZCBpbWFnZSB0eXBlLiBObyBjb2xvciBzcGFjZSBjb252ZXJzaW9uIGFwcGxpZWQuIiksdH19LGlNPTAsYWU9Y2xhc3MgZXh0ZW5kcyBJbntjb25zdHJ1Y3Rvcih0PWFlLkRFRkFVTFRfSU1BR0UsZT1hZS5ERUZBVUxUX01BUFBJTkcsaT1WZSxyPVZlLHM9YmUsbz1MbCxhPVJlLGw9ZWksYz0xLHU9cmkpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlkIix7dmFsdWU6aU0rK30pLHRoaXMudXVpZD10bigpLHRoaXMubmFtZT0iIix0aGlzLmltYWdlPXQsdGhpcy5taXBtYXBzPVtdLHRoaXMubWFwcGluZz1lLHRoaXMud3JhcFM9aSx0aGlzLndyYXBUPXIsdGhpcy5tYWdGaWx0ZXI9cyx0aGlzLm1pbkZpbHRlcj1vLHRoaXMuYW5pc290cm9weT1jLHRoaXMuZm9ybWF0PWEsdGhpcy5pbnRlcm5hbEZvcm1hdD1udWxsLHRoaXMudHlwZT1sLHRoaXMub2Zmc2V0PW5ldyBLKDAsMCksdGhpcy5yZXBlYXQ9bmV3IEsoMSwxKSx0aGlzLmNlbnRlcj1uZXcgSygwLDApLHRoaXMucm90YXRpb249MCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9ITAsdGhpcy5tYXRyaXg9bmV3IGRlLHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSEwLHRoaXMucHJlbXVsdGlwbHlBbHBoYT0hMSx0aGlzLmZsaXBZPSEwLHRoaXMudW5wYWNrQWxpZ25tZW50PTQsdGhpcy5lbmNvZGluZz11LHRoaXMudXNlckRhdGE9e30sdGhpcy52ZXJzaW9uPTAsdGhpcy5vblVwZGF0ZT1udWxsLHRoaXMuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPSExLHRoaXMubmVlZHNQTVJFTVVwZGF0ZT0hMX11cGRhdGVNYXRyaXgoKXt0aGlzLm1hdHJpeC5zZXRVdlRyYW5zZm9ybSh0aGlzLm9mZnNldC54LHRoaXMub2Zmc2V0LnksdGhpcy5yZXBlYXQueCx0aGlzLnJlcGVhdC55LHRoaXMucm90YXRpb24sdGhpcy5jZW50ZXIueCx0aGlzLmNlbnRlci55KX1jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcigpLmNvcHkodGhpcyl9Y29weSh0KXtyZXR1cm4gdGhpcy5uYW1lPXQubmFtZSx0aGlzLmltYWdlPXQuaW1hZ2UsdGhpcy5taXBtYXBzPXQubWlwbWFwcy5zbGljZSgwKSx0aGlzLm1hcHBpbmc9dC5tYXBwaW5nLHRoaXMud3JhcFM9dC53cmFwUyx0aGlzLndyYXBUPXQud3JhcFQsdGhpcy5tYWdGaWx0ZXI9dC5tYWdGaWx0ZXIsdGhpcy5taW5GaWx0ZXI9dC5taW5GaWx0ZXIsdGhpcy5hbmlzb3Ryb3B5PXQuYW5pc290cm9weSx0aGlzLmZvcm1hdD10LmZvcm1hdCx0aGlzLmludGVybmFsRm9ybWF0PXQuaW50ZXJuYWxGb3JtYXQsdGhpcy50eXBlPXQudHlwZSx0aGlzLm9mZnNldC5jb3B5KHQub2Zmc2V0KSx0aGlzLnJlcGVhdC5jb3B5KHQucmVwZWF0KSx0aGlzLmNlbnRlci5jb3B5KHQuY2VudGVyKSx0aGlzLnJvdGF0aW9uPXQucm90YXRpb24sdGhpcy5tYXRyaXhBdXRvVXBkYXRlPXQubWF0cml4QXV0b1VwZGF0ZSx0aGlzLm1hdHJpeC5jb3B5KHQubWF0cml4KSx0aGlzLmdlbmVyYXRlTWlwbWFwcz10LmdlbmVyYXRlTWlwbWFwcyx0aGlzLnByZW11bHRpcGx5QWxwaGE9dC5wcmVtdWx0aXBseUFscGhhLHRoaXMuZmxpcFk9dC5mbGlwWSx0aGlzLnVucGFja0FsaWdubWVudD10LnVucGFja0FsaWdubWVudCx0aGlzLmVuY29kaW5nPXQuZW5jb2RpbmcsdGhpcy51c2VyRGF0YT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQudXNlckRhdGEpKSx0aGlzfXRvSlNPTih0KXtsZXQgZT10PT09dm9pZCAwfHx0eXBlb2YgdD09InN0cmluZyI7aWYoIWUmJnQudGV4dHVyZXNbdGhpcy51dWlkXSE9PXZvaWQgMClyZXR1cm4gdC50ZXh0dXJlc1t0aGlzLnV1aWRdO2xldCBpPXttZXRhZGF0YTp7dmVyc2lvbjo0LjUsdHlwZToiVGV4dHVyZSIsZ2VuZXJhdG9yOiJUZXh0dXJlLnRvSlNPTiJ9LHV1aWQ6dGhpcy51dWlkLG5hbWU6dGhpcy5uYW1lLG1hcHBpbmc6dGhpcy5tYXBwaW5nLHJlcGVhdDpbdGhpcy5yZXBlYXQueCx0aGlzLnJlcGVhdC55XSxvZmZzZXQ6W3RoaXMub2Zmc2V0LngsdGhpcy5vZmZzZXQueV0sY2VudGVyOlt0aGlzLmNlbnRlci54LHRoaXMuY2VudGVyLnldLHJvdGF0aW9uOnRoaXMucm90YXRpb24sd3JhcDpbdGhpcy53cmFwUyx0aGlzLndyYXBUXSxmb3JtYXQ6dGhpcy5mb3JtYXQsdHlwZTp0aGlzLnR5cGUsZW5jb2Rpbmc6dGhpcy5lbmNvZGluZyxtaW5GaWx0ZXI6dGhpcy5taW5GaWx0ZXIsbWFnRmlsdGVyOnRoaXMubWFnRmlsdGVyLGFuaXNvdHJvcHk6dGhpcy5hbmlzb3Ryb3B5LGZsaXBZOnRoaXMuZmxpcFkscHJlbXVsdGlwbHlBbHBoYTp0aGlzLnByZW11bHRpcGx5QWxwaGEsdW5wYWNrQWxpZ25tZW50OnRoaXMudW5wYWNrQWxpZ25tZW50fTtpZih0aGlzLmltYWdlIT09dm9pZCAwKXtsZXQgcj10aGlzLmltYWdlO2lmKHIudXVpZD09PXZvaWQgMCYmKHIudXVpZD10bigpKSwhZSYmdC5pbWFnZXNbci51dWlkXT09PXZvaWQgMCl7bGV0IHM7aWYoQXJyYXkuaXNBcnJheShyKSl7cz1bXTtmb3IobGV0IG89MCxhPXIubGVuZ3RoO288YTtvKyspcltvXS5pc0RhdGFUZXh0dXJlP3MucHVzaChhdShyW29dLmltYWdlKSk6cy5wdXNoKGF1KHJbb10pKX1lbHNlIHM9YXUocik7dC5pbWFnZXNbci51dWlkXT17dXVpZDpyLnV1aWQsdXJsOnN9fWkuaW1hZ2U9ci51dWlkfXJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnVzZXJEYXRhKSE9PSJ7fSImJihpLnVzZXJEYXRhPXRoaXMudXNlckRhdGEpLGV8fCh0LnRleHR1cmVzW3RoaXMudXVpZF09aSksaX1kaXNwb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNwb3NlIn0pfXRyYW5zZm9ybVV2KHQpe2lmKHRoaXMubWFwcGluZyE9PWYwKXJldHVybiB0O2lmKHQuYXBwbHlNYXRyaXgzKHRoaXMubWF0cml4KSx0Lng8MHx8dC54PjEpc3dpdGNoKHRoaXMud3JhcFMpe2Nhc2UgT3U6dC54PXQueC1NYXRoLmZsb29yKHQueCk7YnJlYWs7Y2FzZSBWZTp0Lng9dC54PDA/MDoxO2JyZWFrO2Nhc2Uga3U6TWF0aC5hYnMoTWF0aC5mbG9vcih0LngpJTIpPT09MT90Lng9TWF0aC5jZWlsKHQueCktdC54OnQueD10LngtTWF0aC5mbG9vcih0LngpO2JyZWFrfWlmKHQueTwwfHx0Lnk+MSlzd2l0Y2godGhpcy53cmFwVCl7Y2FzZSBPdTp0Lnk9dC55LU1hdGguZmxvb3IodC55KTticmVhaztjYXNlIFZlOnQueT10Lnk8MD8wOjE7YnJlYWs7Y2FzZSBrdTpNYXRoLmFicyhNYXRoLmZsb29yKHQueSklMik9PT0xP3QueT1NYXRoLmNlaWwodC55KS10Lnk6dC55PXQueS1NYXRoLmZsb29yKHQueSk7YnJlYWt9cmV0dXJuIHRoaXMuZmxpcFkmJih0Lnk9MS10LnkpLHR9c2V0IG5lZWRzVXBkYXRlKHQpe3Q9PT0hMCYmdGhpcy52ZXJzaW9uKyt9fTthZS5ERUZBVUxUX0lNQUdFPXZvaWQgMDthZS5ERUZBVUxUX01BUFBJTkc9ZjA7YWUucHJvdG90eXBlLmlzVGV4dHVyZT0hMDtmdW5jdGlvbiBhdShuKXtyZXR1cm4gdHlwZW9mIEhUTUxJbWFnZUVsZW1lbnQhPSJ1bmRlZmluZWQiJiZuIGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudHx8dHlwZW9mIEhUTUxDYW52YXNFbGVtZW50IT0idW5kZWZpbmVkIiYmbiBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50fHx0eXBlb2YgSW1hZ2VCaXRtYXAhPSJ1bmRlZmluZWQiJiZuIGluc3RhbmNlb2YgSW1hZ2VCaXRtYXA/Tm4uZ2V0RGF0YVVSTChuKTpuLmRhdGE/e2RhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobi5kYXRhKSx3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodCx0eXBlOm4uZGF0YS5jb25zdHJ1Y3Rvci5uYW1lfTooY29uc29sZS53YXJuKCJUSFJFRS5UZXh0dXJlOiBVbmFibGUgdG8gc2VyaWFsaXplIFRleHR1cmUuIikse30pfXZhciBXdD1jbGFzc3tjb25zdHJ1Y3Rvcih0PTAsZT0wLGk9MCxyPTEpe3RoaXMueD10LHRoaXMueT1lLHRoaXMuej1pLHRoaXMudz1yfWdldCB3aWR0aCgpe3JldHVybiB0aGlzLnp9c2V0IHdpZHRoKHQpe3RoaXMuej10fWdldCBoZWlnaHQoKXtyZXR1cm4gdGhpcy53fXNldCBoZWlnaHQodCl7dGhpcy53PXR9c2V0KHQsZSxpLHIpe3JldHVybiB0aGlzLng9dCx0aGlzLnk9ZSx0aGlzLno9aSx0aGlzLnc9cix0aGlzfXNldFNjYWxhcih0KXtyZXR1cm4gdGhpcy54PXQsdGhpcy55PXQsdGhpcy56PXQsdGhpcy53PXQsdGhpc31zZXRYKHQpe3JldHVybiB0aGlzLng9dCx0aGlzfXNldFkodCl7cmV0dXJuIHRoaXMueT10LHRoaXN9c2V0Wih0KXtyZXR1cm4gdGhpcy56PXQsdGhpc31zZXRXKHQpe3JldHVybiB0aGlzLnc9dCx0aGlzfXNldENvbXBvbmVudCh0LGUpe3N3aXRjaCh0KXtjYXNlIDA6dGhpcy54PWU7YnJlYWs7Y2FzZSAxOnRoaXMueT1lO2JyZWFrO2Nhc2UgMjp0aGlzLno9ZTticmVhaztjYXNlIDM6dGhpcy53PWU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX1yZXR1cm4gdGhpc31nZXRDb21wb25lbnQodCl7c3dpdGNoKHQpe2Nhc2UgMDpyZXR1cm4gdGhpcy54O2Nhc2UgMTpyZXR1cm4gdGhpcy55O2Nhc2UgMjpyZXR1cm4gdGhpcy56O2Nhc2UgMzpyZXR1cm4gdGhpcy53O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9fWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMueCx0aGlzLnksdGhpcy56LHRoaXMudyl9Y29weSh0KXtyZXR1cm4gdGhpcy54PXQueCx0aGlzLnk9dC55LHRoaXMuej10LnosdGhpcy53PXQudyE9PXZvaWQgMD90Lnc6MSx0aGlzfWFkZCh0LGUpe3JldHVybiBlIT09dm9pZCAwPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IC5hZGQoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5hZGRWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLmFkZFZlY3RvcnModCxlKSk6KHRoaXMueCs9dC54LHRoaXMueSs9dC55LHRoaXMueis9dC56LHRoaXMudys9dC53LHRoaXMpfWFkZFNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kz10LHRoaXMueSs9dCx0aGlzLnorPXQsdGhpcy53Kz10LHRoaXN9YWRkVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54K2UueCx0aGlzLnk9dC55K2UueSx0aGlzLno9dC56K2Uueix0aGlzLnc9dC53K2Uudyx0aGlzfWFkZFNjYWxlZFZlY3Rvcih0LGUpe3JldHVybiB0aGlzLngrPXQueCplLHRoaXMueSs9dC55KmUsdGhpcy56Kz10LnoqZSx0aGlzLncrPXQudyplLHRoaXN9c3ViKHQsZSl7cmV0dXJuIGUhPT12b2lkIDA/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yNDogLnN1YigpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLnN1YlZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuc3ViVmVjdG9ycyh0LGUpKToodGhpcy54LT10LngsdGhpcy55LT10LnksdGhpcy56LT10LnosdGhpcy53LT10LncsdGhpcyl9c3ViU2NhbGFyKHQpe3JldHVybiB0aGlzLngtPXQsdGhpcy55LT10LHRoaXMuei09dCx0aGlzLnctPXQsdGhpc31zdWJWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngtZS54LHRoaXMueT10LnktZS55LHRoaXMuej10LnotZS56LHRoaXMudz10LnctZS53LHRoaXN9bXVsdGlwbHkodCl7cmV0dXJuIHRoaXMueCo9dC54LHRoaXMueSo9dC55LHRoaXMueio9dC56LHRoaXMudyo9dC53LHRoaXN9bXVsdGlwbHlTY2FsYXIodCl7cmV0dXJuIHRoaXMueCo9dCx0aGlzLnkqPXQsdGhpcy56Kj10LHRoaXMudyo9dCx0aGlzfWFwcGx5TWF0cml4NCh0KXtsZXQgZT10aGlzLngsaT10aGlzLnkscj10aGlzLnoscz10aGlzLncsbz10LmVsZW1lbnRzO3JldHVybiB0aGlzLng9b1swXSplK29bNF0qaStvWzhdKnIrb1sxMl0qcyx0aGlzLnk9b1sxXSplK29bNV0qaStvWzldKnIrb1sxM10qcyx0aGlzLno9b1syXSplK29bNl0qaStvWzEwXSpyK29bMTRdKnMsdGhpcy53PW9bM10qZStvWzddKmkrb1sxMV0qcitvWzE1XSpzLHRoaXN9ZGl2aWRlU2NhbGFyKHQpe3JldHVybiB0aGlzLm11bHRpcGx5U2NhbGFyKDEvdCl9c2V0QXhpc0FuZ2xlRnJvbVF1YXRlcm5pb24odCl7dGhpcy53PTIqTWF0aC5hY29zKHQudyk7bGV0IGU9TWF0aC5zcXJ0KDEtdC53KnQudyk7cmV0dXJuIGU8MWUtND8odGhpcy54PTEsdGhpcy55PTAsdGhpcy56PTApOih0aGlzLng9dC54L2UsdGhpcy55PXQueS9lLHRoaXMuej10LnovZSksdGhpc31zZXRBeGlzQW5nbGVGcm9tUm90YXRpb25NYXRyaXgodCl7bGV0IGUsaSxyLHMsbD10LmVsZW1lbnRzLGM9bFswXSx1PWxbNF0saD1sWzhdLGY9bFsxXSxkPWxbNV0sZz1sWzldLHg9bFsyXSx2PWxbNl0sbT1sWzEwXTtpZihNYXRoLmFicyh1LWYpPC4wMSYmTWF0aC5hYnMoaC14KTwuMDEmJk1hdGguYWJzKGctdik8LjAxKXtpZihNYXRoLmFicyh1K2YpPC4xJiZNYXRoLmFicyhoK3gpPC4xJiZNYXRoLmFicyhnK3YpPC4xJiZNYXRoLmFicyhjK2QrbS0zKTwuMSlyZXR1cm4gdGhpcy5zZXQoMSwwLDAsMCksdGhpcztlPU1hdGguUEk7bGV0IGI9KGMrMSkvMixfPShkKzEpLzIsUz0obSsxKS8yLEw9KHUrZikvNCxBPShoK3gpLzQsSD0oZyt2KS80O3JldHVybiBiPl8mJmI+Uz9iPC4wMT8oaT0wLHI9LjcwNzEwNjc4MSxzPS43MDcxMDY3ODEpOihpPU1hdGguc3FydChiKSxyPUwvaSxzPUEvaSk6Xz5TP188LjAxPyhpPS43MDcxMDY3ODEscj0wLHM9LjcwNzEwNjc4MSk6KHI9TWF0aC5zcXJ0KF8pLGk9TC9yLHM9SC9yKTpTPC4wMT8oaT0uNzA3MTA2NzgxLHI9LjcwNzEwNjc4MSxzPTApOihzPU1hdGguc3FydChTKSxpPUEvcyxyPUgvcyksdGhpcy5zZXQoaSxyLHMsZSksdGhpc31sZXQgcD1NYXRoLnNxcnQoKHYtZykqKHYtZykrKGgteCkqKGgteCkrKGYtdSkqKGYtdSkpO3JldHVybiBNYXRoLmFicyhwKTwuMDAxJiYocD0xKSx0aGlzLng9KHYtZykvcCx0aGlzLnk9KGgteCkvcCx0aGlzLno9KGYtdSkvcCx0aGlzLnc9TWF0aC5hY29zKChjK2QrbS0xKS8yKSx0aGlzfW1pbih0KXtyZXR1cm4gdGhpcy54PU1hdGgubWluKHRoaXMueCx0LngpLHRoaXMueT1NYXRoLm1pbih0aGlzLnksdC55KSx0aGlzLno9TWF0aC5taW4odGhpcy56LHQueiksdGhpcy53PU1hdGgubWluKHRoaXMudyx0LncpLHRoaXN9bWF4KHQpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodGhpcy54LHQueCksdGhpcy55PU1hdGgubWF4KHRoaXMueSx0LnkpLHRoaXMuej1NYXRoLm1heCh0aGlzLnosdC56KSx0aGlzLnc9TWF0aC5tYXgodGhpcy53LHQudyksdGhpc31jbGFtcCh0LGUpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodC54LE1hdGgubWluKGUueCx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodC55LE1hdGgubWluKGUueSx0aGlzLnkpKSx0aGlzLno9TWF0aC5tYXgodC56LE1hdGgubWluKGUueix0aGlzLnopKSx0aGlzLnc9TWF0aC5tYXgodC53LE1hdGgubWluKGUudyx0aGlzLncpKSx0aGlzfWNsYW1wU2NhbGFyKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLnkpKSx0aGlzLno9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueikpLHRoaXMudz1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy53KSksdGhpc31jbGFtcExlbmd0aCh0LGUpe2xldCBpPXRoaXMubGVuZ3RoKCk7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKGl8fDEpLm11bHRpcGx5U2NhbGFyKE1hdGgubWF4KHQsTWF0aC5taW4oZSxpKSkpfWZsb29yKCl7cmV0dXJuIHRoaXMueD1NYXRoLmZsb29yKHRoaXMueCksdGhpcy55PU1hdGguZmxvb3IodGhpcy55KSx0aGlzLno9TWF0aC5mbG9vcih0aGlzLnopLHRoaXMudz1NYXRoLmZsb29yKHRoaXMudyksdGhpc31jZWlsKCl7cmV0dXJuIHRoaXMueD1NYXRoLmNlaWwodGhpcy54KSx0aGlzLnk9TWF0aC5jZWlsKHRoaXMueSksdGhpcy56PU1hdGguY2VpbCh0aGlzLnopLHRoaXMudz1NYXRoLmNlaWwodGhpcy53KSx0aGlzfXJvdW5kKCl7cmV0dXJuIHRoaXMueD1NYXRoLnJvdW5kKHRoaXMueCksdGhpcy55PU1hdGgucm91bmQodGhpcy55KSx0aGlzLno9TWF0aC5yb3VuZCh0aGlzLnopLHRoaXMudz1NYXRoLnJvdW5kKHRoaXMudyksdGhpc31yb3VuZFRvWmVybygpe3JldHVybiB0aGlzLng9dGhpcy54PDA/TWF0aC5jZWlsKHRoaXMueCk6TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT10aGlzLnk8MD9NYXRoLmNlaWwodGhpcy55KTpNYXRoLmZsb29yKHRoaXMueSksdGhpcy56PXRoaXMuejwwP01hdGguY2VpbCh0aGlzLnopOk1hdGguZmxvb3IodGhpcy56KSx0aGlzLnc9dGhpcy53PDA/TWF0aC5jZWlsKHRoaXMudyk6TWF0aC5mbG9vcih0aGlzLncpLHRoaXN9bmVnYXRlKCl7cmV0dXJuIHRoaXMueD0tdGhpcy54LHRoaXMueT0tdGhpcy55LHRoaXMuej0tdGhpcy56LHRoaXMudz0tdGhpcy53LHRoaXN9ZG90KHQpe3JldHVybiB0aGlzLngqdC54K3RoaXMueSp0LnkrdGhpcy56KnQueit0aGlzLncqdC53fWxlbmd0aFNxKCl7cmV0dXJuIHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueSt0aGlzLnoqdGhpcy56K3RoaXMudyp0aGlzLnd9bGVuZ3RoKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkrdGhpcy56KnRoaXMueit0aGlzLncqdGhpcy53KX1tYW5oYXR0YW5MZW5ndGgoKXtyZXR1cm4gTWF0aC5hYnModGhpcy54KStNYXRoLmFicyh0aGlzLnkpK01hdGguYWJzKHRoaXMueikrTWF0aC5hYnModGhpcy53KX1ub3JtYWxpemUoKXtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIodGhpcy5sZW5ndGgoKXx8MSl9c2V0TGVuZ3RoKHQpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLm11bHRpcGx5U2NhbGFyKHQpfWxlcnAodCxlKXtyZXR1cm4gdGhpcy54Kz0odC54LXRoaXMueCkqZSx0aGlzLnkrPSh0LnktdGhpcy55KSplLHRoaXMueis9KHQuei10aGlzLnopKmUsdGhpcy53Kz0odC53LXRoaXMudykqZSx0aGlzfWxlcnBWZWN0b3JzKHQsZSxpKXtyZXR1cm4gdGhpcy54PXQueCsoZS54LXQueCkqaSx0aGlzLnk9dC55KyhlLnktdC55KSppLHRoaXMuej10LnorKGUuei10LnopKmksdGhpcy53PXQudysoZS53LXQudykqaSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC54PT09dGhpcy54JiZ0Lnk9PT10aGlzLnkmJnQuej09PXRoaXMueiYmdC53PT09dGhpcy53fWZyb21BcnJheSh0LGU9MCl7cmV0dXJuIHRoaXMueD10W2VdLHRoaXMueT10W2UrMV0sdGhpcy56PXRbZSsyXSx0aGlzLnc9dFtlKzNdLHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7cmV0dXJuIHRbZV09dGhpcy54LHRbZSsxXT10aGlzLnksdFtlKzJdPXRoaXMueix0W2UrM109dGhpcy53LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsaSl7cmV0dXJuIGkhPT12b2lkIDAmJmNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yNDogb2Zmc2V0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMueD10LmdldFgoZSksdGhpcy55PXQuZ2V0WShlKSx0aGlzLno9dC5nZXRaKGUpLHRoaXMudz10LmdldFcoZSksdGhpc31yYW5kb20oKXtyZXR1cm4gdGhpcy54PU1hdGgucmFuZG9tKCksdGhpcy55PU1hdGgucmFuZG9tKCksdGhpcy56PU1hdGgucmFuZG9tKCksdGhpcy53PU1hdGgucmFuZG9tKCksdGhpc30qW1N5bWJvbC5pdGVyYXRvcl0oKXt5aWVsZCB0aGlzLngseWllbGQgdGhpcy55LHlpZWxkIHRoaXMueix5aWVsZCB0aGlzLnd9fTtXdC5wcm90b3R5cGUuaXNWZWN0b3I0PSEwO3ZhciBOZT1jbGFzcyBleHRlbmRzIElue2NvbnN0cnVjdG9yKHQsZSxpPXt9KXtzdXBlcigpLHRoaXMud2lkdGg9dCx0aGlzLmhlaWdodD1lLHRoaXMuZGVwdGg9MSx0aGlzLnNjaXNzb3I9bmV3IFd0KDAsMCx0LGUpLHRoaXMuc2Npc3NvclRlc3Q9ITEsdGhpcy52aWV3cG9ydD1uZXcgV3QoMCwwLHQsZSksdGhpcy50ZXh0dXJlPW5ldyBhZSh2b2lkIDAsaS5tYXBwaW5nLGkud3JhcFMsaS53cmFwVCxpLm1hZ0ZpbHRlcixpLm1pbkZpbHRlcixpLmZvcm1hdCxpLnR5cGUsaS5hbmlzb3Ryb3B5LGkuZW5jb2RpbmcpLHRoaXMudGV4dHVyZS5pc1JlbmRlclRhcmdldFRleHR1cmU9ITAsdGhpcy50ZXh0dXJlLmltYWdlPXt3aWR0aDp0LGhlaWdodDplLGRlcHRoOjF9LHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9aS5nZW5lcmF0ZU1pcG1hcHMhPT12b2lkIDA/aS5nZW5lcmF0ZU1pcG1hcHM6ITEsdGhpcy50ZXh0dXJlLmludGVybmFsRm9ybWF0PWkuaW50ZXJuYWxGb3JtYXQhPT12b2lkIDA/aS5pbnRlcm5hbEZvcm1hdDpudWxsLHRoaXMudGV4dHVyZS5taW5GaWx0ZXI9aS5taW5GaWx0ZXIhPT12b2lkIDA/aS5taW5GaWx0ZXI6YmUsdGhpcy5kZXB0aEJ1ZmZlcj1pLmRlcHRoQnVmZmVyIT09dm9pZCAwP2kuZGVwdGhCdWZmZXI6ITAsdGhpcy5zdGVuY2lsQnVmZmVyPWkuc3RlbmNpbEJ1ZmZlciE9PXZvaWQgMD9pLnN0ZW5jaWxCdWZmZXI6ITEsdGhpcy5kZXB0aFRleHR1cmU9aS5kZXB0aFRleHR1cmUhPT12b2lkIDA/aS5kZXB0aFRleHR1cmU6bnVsbH1zZXRUZXh0dXJlKHQpe3QuaW1hZ2U9e3dpZHRoOnRoaXMud2lkdGgsaGVpZ2h0OnRoaXMuaGVpZ2h0LGRlcHRoOnRoaXMuZGVwdGh9LHRoaXMudGV4dHVyZT10fXNldFNpemUodCxlLGk9MSl7KHRoaXMud2lkdGghPT10fHx0aGlzLmhlaWdodCE9PWV8fHRoaXMuZGVwdGghPT1pKSYmKHRoaXMud2lkdGg9dCx0aGlzLmhlaWdodD1lLHRoaXMuZGVwdGg9aSx0aGlzLnRleHR1cmUuaW1hZ2Uud2lkdGg9dCx0aGlzLnRleHR1cmUuaW1hZ2UuaGVpZ2h0PWUsdGhpcy50ZXh0dXJlLmltYWdlLmRlcHRoPWksdGhpcy5kaXNwb3NlKCkpLHRoaXMudmlld3BvcnQuc2V0KDAsMCx0LGUpLHRoaXMuc2Npc3Nvci5zZXQoMCwwLHQsZSl9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IoKS5jb3B5KHRoaXMpfWNvcHkodCl7cmV0dXJuIHRoaXMud2lkdGg9dC53aWR0aCx0aGlzLmhlaWdodD10LmhlaWdodCx0aGlzLmRlcHRoPXQuZGVwdGgsdGhpcy52aWV3cG9ydC5jb3B5KHQudmlld3BvcnQpLHRoaXMudGV4dHVyZT10LnRleHR1cmUuY2xvbmUoKSx0aGlzLnRleHR1cmUuaW1hZ2U9T2JqZWN0LmFzc2lnbih7fSx0LnRleHR1cmUuaW1hZ2UpLHRoaXMuZGVwdGhCdWZmZXI9dC5kZXB0aEJ1ZmZlcix0aGlzLnN0ZW5jaWxCdWZmZXI9dC5zdGVuY2lsQnVmZmVyLHRoaXMuZGVwdGhUZXh0dXJlPXQuZGVwdGhUZXh0dXJlLHRoaXN9ZGlzcG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzcG9zZSJ9KX19O05lLnByb3RvdHlwZS5pc1dlYkdMUmVuZGVyVGFyZ2V0PSEwO3ZhciBHdT1jbGFzcyBleHRlbmRzIE5le2NvbnN0cnVjdG9yKHQsZSxpKXtzdXBlcih0LGUpO2xldCByPXRoaXMudGV4dHVyZTt0aGlzLnRleHR1cmU9W107Zm9yKGxldCBzPTA7czxpO3MrKyl0aGlzLnRleHR1cmVbc109ci5jbG9uZSgpfXNldFNpemUodCxlLGk9MSl7aWYodGhpcy53aWR0aCE9PXR8fHRoaXMuaGVpZ2h0IT09ZXx8dGhpcy5kZXB0aCE9PWkpe3RoaXMud2lkdGg9dCx0aGlzLmhlaWdodD1lLHRoaXMuZGVwdGg9aTtmb3IobGV0IHI9MCxzPXRoaXMudGV4dHVyZS5sZW5ndGg7cjxzO3IrKyl0aGlzLnRleHR1cmVbcl0uaW1hZ2Uud2lkdGg9dCx0aGlzLnRleHR1cmVbcl0uaW1hZ2UuaGVpZ2h0PWUsdGhpcy50ZXh0dXJlW3JdLmltYWdlLmRlcHRoPWk7dGhpcy5kaXNwb3NlKCl9cmV0dXJuIHRoaXMudmlld3BvcnQuc2V0KDAsMCx0LGUpLHRoaXMuc2Npc3Nvci5zZXQoMCwwLHQsZSksdGhpc31jb3B5KHQpe3RoaXMuZGlzcG9zZSgpLHRoaXMud2lkdGg9dC53aWR0aCx0aGlzLmhlaWdodD10LmhlaWdodCx0aGlzLmRlcHRoPXQuZGVwdGgsdGhpcy52aWV3cG9ydC5zZXQoMCwwLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpLHRoaXMuc2Npc3Nvci5zZXQoMCwwLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpLHRoaXMuZGVwdGhCdWZmZXI9dC5kZXB0aEJ1ZmZlcix0aGlzLnN0ZW5jaWxCdWZmZXI9dC5zdGVuY2lsQnVmZmVyLHRoaXMuZGVwdGhUZXh0dXJlPXQuZGVwdGhUZXh0dXJlLHRoaXMudGV4dHVyZS5sZW5ndGg9MDtmb3IobGV0IGU9MCxpPXQudGV4dHVyZS5sZW5ndGg7ZTxpO2UrKyl0aGlzLnRleHR1cmVbZV09dC50ZXh0dXJlW2VdLmNsb25lKCk7cmV0dXJuIHRoaXN9fTtHdS5wcm90b3R5cGUuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cz0hMDt2YXIgc289Y2xhc3MgZXh0ZW5kcyBOZXtjb25zdHJ1Y3Rvcih0LGUsaT17fSl7c3VwZXIodCxlLGkpLHRoaXMuc2FtcGxlcz00LHRoaXMuaWdub3JlRGVwdGhGb3JNdWx0aXNhbXBsZUNvcHk9aS5pZ25vcmVEZXB0aCE9PXZvaWQgMD9pLmlnbm9yZURlcHRoOiEwLHRoaXMudXNlUmVuZGVyVG9UZXh0dXJlPWkudXNlUmVuZGVyVG9UZXh0dXJlIT09dm9pZCAwP2kudXNlUmVuZGVyVG9UZXh0dXJlOiExLHRoaXMudXNlUmVuZGVyYnVmZmVyPXRoaXMudXNlUmVuZGVyVG9UZXh0dXJlPT09ITF9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weS5jYWxsKHRoaXMsdCksdGhpcy5zYW1wbGVzPXQuc2FtcGxlcyx0aGlzLnVzZVJlbmRlclRvVGV4dHVyZT10LnVzZVJlbmRlclRvVGV4dHVyZSx0aGlzLnVzZVJlbmRlcmJ1ZmZlcj10LnVzZVJlbmRlcmJ1ZmZlcix0aGlzfX07c28ucHJvdG90eXBlLmlzV2ViR0xNdWx0aXNhbXBsZVJlbmRlclRhcmdldD0hMDt2YXIgRWU9Y2xhc3N7Y29uc3RydWN0b3IodD0wLGU9MCxpPTAscj0xKXt0aGlzLl94PXQsdGhpcy5feT1lLHRoaXMuX3o9aSx0aGlzLl93PXJ9c3RhdGljIHNsZXJwKHQsZSxpLHIpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlF1YXRlcm5pb246IFN0YXRpYyAuc2xlcnAoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgcW0uc2xlcnBRdWF0ZXJuaW9ucyggcWEsIHFiLCB0ICkgaW5zdGVhZC4iKSxpLnNsZXJwUXVhdGVybmlvbnModCxlLHIpfXN0YXRpYyBzbGVycEZsYXQodCxlLGkscixzLG8sYSl7bGV0IGw9aVtyKzBdLGM9aVtyKzFdLHU9aVtyKzJdLGg9aVtyKzNdLGY9c1tvKzBdLGQ9c1tvKzFdLGc9c1tvKzJdLHg9c1tvKzNdO2lmKGE9PT0wKXt0W2UrMF09bCx0W2UrMV09Yyx0W2UrMl09dSx0W2UrM109aDtyZXR1cm59aWYoYT09PTEpe3RbZSswXT1mLHRbZSsxXT1kLHRbZSsyXT1nLHRbZSszXT14O3JldHVybn1pZihoIT09eHx8bCE9PWZ8fGMhPT1kfHx1IT09Zyl7bGV0IHY9MS1hLG09bCpmK2MqZCt1KmcraCp4LHA9bT49MD8xOi0xLGI9MS1tKm07aWYoYj5OdW1iZXIuRVBTSUxPTil7bGV0IFM9TWF0aC5zcXJ0KGIpLEw9TWF0aC5hdGFuMihTLG0qcCk7dj1NYXRoLnNpbih2KkwpL1MsYT1NYXRoLnNpbihhKkwpL1N9bGV0IF89YSpwO2lmKGw9bCp2K2YqXyxjPWMqditkKl8sdT11KnYrZypfLGg9aCp2K3gqXyx2PT09MS1hKXtsZXQgUz0xL01hdGguc3FydChsKmwrYypjK3UqdStoKmgpO2wqPVMsYyo9Uyx1Kj1TLGgqPVN9fXRbZV09bCx0W2UrMV09Yyx0W2UrMl09dSx0W2UrM109aH1zdGF0aWMgbXVsdGlwbHlRdWF0ZXJuaW9uc0ZsYXQodCxlLGkscixzLG8pe2xldCBhPWlbcl0sbD1pW3IrMV0sYz1pW3IrMl0sdT1pW3IrM10saD1zW29dLGY9c1tvKzFdLGQ9c1tvKzJdLGc9c1tvKzNdO3JldHVybiB0W2VdPWEqZyt1KmgrbCpkLWMqZix0W2UrMV09bCpnK3UqZitjKmgtYSpkLHRbZSsyXT1jKmcrdSpkK2EqZi1sKmgsdFtlKzNdPXUqZy1hKmgtbCpmLWMqZCx0fWdldCB4KCl7cmV0dXJuIHRoaXMuX3h9c2V0IHgodCl7dGhpcy5feD10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgeSgpe3JldHVybiB0aGlzLl95fXNldCB5KHQpe3RoaXMuX3k9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IHooKXtyZXR1cm4gdGhpcy5fen1zZXQgeih0KXt0aGlzLl96PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCB3KCl7cmV0dXJuIHRoaXMuX3d9c2V0IHcodCl7dGhpcy5fdz10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1zZXQodCxlLGkscil7cmV0dXJuIHRoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5fej1pLHRoaXMuX3c9cix0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLl94LHRoaXMuX3ksdGhpcy5feix0aGlzLl93KX1jb3B5KHQpe3JldHVybiB0aGlzLl94PXQueCx0aGlzLl95PXQueSx0aGlzLl96PXQueix0aGlzLl93PXQudyx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tRXVsZXIodCxlKXtpZighKHQmJnQuaXNFdWxlcikpdGhyb3cgbmV3IEVycm9yKCJUSFJFRS5RdWF0ZXJuaW9uOiAuc2V0RnJvbUV1bGVyKCkgbm93IGV4cGVjdHMgYW4gRXVsZXIgcm90YXRpb24gcmF0aGVyIHRoYW4gYSBWZWN0b3IzIGFuZCBvcmRlci4iKTtsZXQgaT10Ll94LHI9dC5feSxzPXQuX3osbz10Ll9vcmRlcixhPU1hdGguY29zLGw9TWF0aC5zaW4sYz1hKGkvMiksdT1hKHIvMiksaD1hKHMvMiksZj1sKGkvMiksZD1sKHIvMiksZz1sKHMvMik7c3dpdGNoKG8pe2Nhc2UiWFlaIjp0aGlzLl94PWYqdSpoK2MqZCpnLHRoaXMuX3k9YypkKmgtZip1KmcsdGhpcy5fej1jKnUqZytmKmQqaCx0aGlzLl93PWMqdSpoLWYqZCpnO2JyZWFrO2Nhc2UiWVhaIjp0aGlzLl94PWYqdSpoK2MqZCpnLHRoaXMuX3k9YypkKmgtZip1KmcsdGhpcy5fej1jKnUqZy1mKmQqaCx0aGlzLl93PWMqdSpoK2YqZCpnO2JyZWFrO2Nhc2UiWlhZIjp0aGlzLl94PWYqdSpoLWMqZCpnLHRoaXMuX3k9YypkKmgrZip1KmcsdGhpcy5fej1jKnUqZytmKmQqaCx0aGlzLl93PWMqdSpoLWYqZCpnO2JyZWFrO2Nhc2UiWllYIjp0aGlzLl94PWYqdSpoLWMqZCpnLHRoaXMuX3k9YypkKmgrZip1KmcsdGhpcy5fej1jKnUqZy1mKmQqaCx0aGlzLl93PWMqdSpoK2YqZCpnO2JyZWFrO2Nhc2UiWVpYIjp0aGlzLl94PWYqdSpoK2MqZCpnLHRoaXMuX3k9YypkKmgrZip1KmcsdGhpcy5fej1jKnUqZy1mKmQqaCx0aGlzLl93PWMqdSpoLWYqZCpnO2JyZWFrO2Nhc2UiWFpZIjp0aGlzLl94PWYqdSpoLWMqZCpnLHRoaXMuX3k9YypkKmgtZip1KmcsdGhpcy5fej1jKnUqZytmKmQqaCx0aGlzLl93PWMqdSpoK2YqZCpnO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKCJUSFJFRS5RdWF0ZXJuaW9uOiAuc2V0RnJvbUV1bGVyKCkgZW5jb3VudGVyZWQgYW4gdW5rbm93biBvcmRlcjogIitvKX1yZXR1cm4gZSE9PSExJiZ0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tQXhpc0FuZ2xlKHQsZSl7bGV0IGk9ZS8yLHI9TWF0aC5zaW4oaSk7cmV0dXJuIHRoaXMuX3g9dC54KnIsdGhpcy5feT10Lnkqcix0aGlzLl96PXQueipyLHRoaXMuX3c9TWF0aC5jb3MoaSksdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9c2V0RnJvbVJvdGF0aW9uTWF0cml4KHQpe2xldCBlPXQuZWxlbWVudHMsaT1lWzBdLHI9ZVs0XSxzPWVbOF0sbz1lWzFdLGE9ZVs1XSxsPWVbOV0sYz1lWzJdLHU9ZVs2XSxoPWVbMTBdLGY9aSthK2g7aWYoZj4wKXtsZXQgZD0uNS9NYXRoLnNxcnQoZisxKTt0aGlzLl93PS4yNS9kLHRoaXMuX3g9KHUtbCkqZCx0aGlzLl95PShzLWMpKmQsdGhpcy5fej0oby1yKSpkfWVsc2UgaWYoaT5hJiZpPmgpe2xldCBkPTIqTWF0aC5zcXJ0KDEraS1hLWgpO3RoaXMuX3c9KHUtbCkvZCx0aGlzLl94PS4yNSpkLHRoaXMuX3k9KHIrbykvZCx0aGlzLl96PShzK2MpL2R9ZWxzZSBpZihhPmgpe2xldCBkPTIqTWF0aC5zcXJ0KDErYS1pLWgpO3RoaXMuX3c9KHMtYykvZCx0aGlzLl94PShyK28pL2QsdGhpcy5feT0uMjUqZCx0aGlzLl96PShsK3UpL2R9ZWxzZXtsZXQgZD0yKk1hdGguc3FydCgxK2gtaS1hKTt0aGlzLl93PShvLXIpL2QsdGhpcy5feD0ocytjKS9kLHRoaXMuX3k9KGwrdSkvZCx0aGlzLl96PS4yNSpkfXJldHVybiB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tVW5pdFZlY3RvcnModCxlKXtsZXQgaT10LmRvdChlKSsxO3JldHVybiBpPE51bWJlci5FUFNJTE9OPyhpPTAsTWF0aC5hYnModC54KT5NYXRoLmFicyh0LnopPyh0aGlzLl94PS10LnksdGhpcy5feT10LngsdGhpcy5fej0wLHRoaXMuX3c9aSk6KHRoaXMuX3g9MCx0aGlzLl95PS10LnosdGhpcy5fej10LnksdGhpcy5fdz1pKSk6KHRoaXMuX3g9dC55KmUuei10LnoqZS55LHRoaXMuX3k9dC56KmUueC10LngqZS56LHRoaXMuX3o9dC54KmUueS10LnkqZS54LHRoaXMuX3c9aSksdGhpcy5ub3JtYWxpemUoKX1hbmdsZVRvKHQpe3JldHVybiAyKk1hdGguYWNvcyhNYXRoLmFicyhJZSh0aGlzLmRvdCh0KSwtMSwxKSkpfXJvdGF0ZVRvd2FyZHModCxlKXtsZXQgaT10aGlzLmFuZ2xlVG8odCk7aWYoaT09PTApcmV0dXJuIHRoaXM7bGV0IHI9TWF0aC5taW4oMSxlL2kpO3JldHVybiB0aGlzLnNsZXJwKHQsciksdGhpc31pZGVudGl0eSgpe3JldHVybiB0aGlzLnNldCgwLDAsMCwxKX1pbnZlcnQoKXtyZXR1cm4gdGhpcy5jb25qdWdhdGUoKX1jb25qdWdhdGUoKXtyZXR1cm4gdGhpcy5feCo9LTEsdGhpcy5feSo9LTEsdGhpcy5feio9LTEsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9ZG90KHQpe3JldHVybiB0aGlzLl94KnQuX3grdGhpcy5feSp0Ll95K3RoaXMuX3oqdC5feit0aGlzLl93KnQuX3d9bGVuZ3RoU3EoKXtyZXR1cm4gdGhpcy5feCp0aGlzLl94K3RoaXMuX3kqdGhpcy5feSt0aGlzLl96KnRoaXMuX3ordGhpcy5fdyp0aGlzLl93fWxlbmd0aCgpe3JldHVybiBNYXRoLnNxcnQodGhpcy5feCp0aGlzLl94K3RoaXMuX3kqdGhpcy5feSt0aGlzLl96KnRoaXMuX3ordGhpcy5fdyp0aGlzLl93KX1ub3JtYWxpemUoKXtsZXQgdD10aGlzLmxlbmd0aCgpO3JldHVybiB0PT09MD8odGhpcy5feD0wLHRoaXMuX3k9MCx0aGlzLl96PTAsdGhpcy5fdz0xKToodD0xL3QsdGhpcy5feD10aGlzLl94KnQsdGhpcy5feT10aGlzLl95KnQsdGhpcy5fej10aGlzLl96KnQsdGhpcy5fdz10aGlzLl93KnQpLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfW11bHRpcGx5KHQsZSl7cmV0dXJuIGUhPT12b2lkIDA/KGNvbnNvbGUud2FybigiVEhSRUUuUXVhdGVybmlvbjogLm11bHRpcGx5KCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAubXVsdGlwbHlRdWF0ZXJuaW9ucyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5tdWx0aXBseVF1YXRlcm5pb25zKHQsZSkpOnRoaXMubXVsdGlwbHlRdWF0ZXJuaW9ucyh0aGlzLHQpfXByZW11bHRpcGx5KHQpe3JldHVybiB0aGlzLm11bHRpcGx5UXVhdGVybmlvbnModCx0aGlzKX1tdWx0aXBseVF1YXRlcm5pb25zKHQsZSl7bGV0IGk9dC5feCxyPXQuX3kscz10Ll96LG89dC5fdyxhPWUuX3gsbD1lLl95LGM9ZS5feix1PWUuX3c7cmV0dXJuIHRoaXMuX3g9aSp1K28qYStyKmMtcypsLHRoaXMuX3k9cip1K28qbCtzKmEtaSpjLHRoaXMuX3o9cyp1K28qYytpKmwtciphLHRoaXMuX3c9byp1LWkqYS1yKmwtcypjLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNsZXJwKHQsZSl7aWYoZT09PTApcmV0dXJuIHRoaXM7aWYoZT09PTEpcmV0dXJuIHRoaXMuY29weSh0KTtsZXQgaT10aGlzLl94LHI9dGhpcy5feSxzPXRoaXMuX3osbz10aGlzLl93LGE9byp0Ll93K2kqdC5feCtyKnQuX3krcyp0Ll96O2lmKGE8MD8odGhpcy5fdz0tdC5fdyx0aGlzLl94PS10Ll94LHRoaXMuX3k9LXQuX3ksdGhpcy5fej0tdC5feixhPS1hKTp0aGlzLmNvcHkodCksYT49MSlyZXR1cm4gdGhpcy5fdz1vLHRoaXMuX3g9aSx0aGlzLl95PXIsdGhpcy5fej1zLHRoaXM7bGV0IGw9MS1hKmE7aWYobDw9TnVtYmVyLkVQU0lMT04pe2xldCBkPTEtZTtyZXR1cm4gdGhpcy5fdz1kKm8rZSp0aGlzLl93LHRoaXMuX3g9ZCppK2UqdGhpcy5feCx0aGlzLl95PWQqcitlKnRoaXMuX3ksdGhpcy5fej1kKnMrZSp0aGlzLl96LHRoaXMubm9ybWFsaXplKCksdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9bGV0IGM9TWF0aC5zcXJ0KGwpLHU9TWF0aC5hdGFuMihjLGEpLGg9TWF0aC5zaW4oKDEtZSkqdSkvYyxmPU1hdGguc2luKGUqdSkvYztyZXR1cm4gdGhpcy5fdz1vKmgrdGhpcy5fdypmLHRoaXMuX3g9aSpoK3RoaXMuX3gqZix0aGlzLl95PXIqaCt0aGlzLl95KmYsdGhpcy5fej1zKmgrdGhpcy5feipmLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNsZXJwUXVhdGVybmlvbnModCxlLGkpe3JldHVybiB0aGlzLmNvcHkodCkuc2xlcnAoZSxpKX1yYW5kb20oKXtsZXQgdD1NYXRoLnJhbmRvbSgpLGU9TWF0aC5zcXJ0KDEtdCksaT1NYXRoLnNxcnQodCkscj0yKk1hdGguUEkqTWF0aC5yYW5kb20oKSxzPTIqTWF0aC5QSSpNYXRoLnJhbmRvbSgpO3JldHVybiB0aGlzLnNldChlKk1hdGguY29zKHIpLGkqTWF0aC5zaW4ocyksaSpNYXRoLmNvcyhzKSxlKk1hdGguc2luKHIpKX1lcXVhbHModCl7cmV0dXJuIHQuX3g9PT10aGlzLl94JiZ0Ll95PT09dGhpcy5feSYmdC5fej09PXRoaXMuX3omJnQuX3c9PT10aGlzLl93fWZyb21BcnJheSh0LGU9MCl7cmV0dXJuIHRoaXMuX3g9dFtlXSx0aGlzLl95PXRbZSsxXSx0aGlzLl96PXRbZSsyXSx0aGlzLl93PXRbZSszXSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLl94LHRbZSsxXT10aGlzLl95LHRbZSsyXT10aGlzLl96LHRbZSszXT10aGlzLl93LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUpe3JldHVybiB0aGlzLl94PXQuZ2V0WChlKSx0aGlzLl95PXQuZ2V0WShlKSx0aGlzLl96PXQuZ2V0WihlKSx0aGlzLl93PXQuZ2V0VyhlKSx0aGlzfV9vbkNoYW5nZSh0KXtyZXR1cm4gdGhpcy5fb25DaGFuZ2VDYWxsYmFjaz10LHRoaXN9X29uQ2hhbmdlQ2FsbGJhY2soKXt9fTtFZS5wcm90b3R5cGUuaXNRdWF0ZXJuaW9uPSEwO3ZhciBUPWNsYXNze2NvbnN0cnVjdG9yKHQ9MCxlPTAsaT0wKXt0aGlzLng9dCx0aGlzLnk9ZSx0aGlzLno9aX1zZXQodCxlLGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT10aGlzLnopLHRoaXMueD10LHRoaXMueT1lLHRoaXMuej1pLHRoaXN9c2V0U2NhbGFyKHQpe3JldHVybiB0aGlzLng9dCx0aGlzLnk9dCx0aGlzLno9dCx0aGlzfXNldFgodCl7cmV0dXJuIHRoaXMueD10LHRoaXN9c2V0WSh0KXtyZXR1cm4gdGhpcy55PXQsdGhpc31zZXRaKHQpe3JldHVybiB0aGlzLno9dCx0aGlzfXNldENvbXBvbmVudCh0LGUpe3N3aXRjaCh0KXtjYXNlIDA6dGhpcy54PWU7YnJlYWs7Y2FzZSAxOnRoaXMueT1lO2JyZWFrO2Nhc2UgMjp0aGlzLno9ZTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAiK3QpfXJldHVybiB0aGlzfWdldENvbXBvbmVudCh0KXtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiB0aGlzLng7Y2FzZSAxOnJldHVybiB0aGlzLnk7Y2FzZSAyOnJldHVybiB0aGlzLno7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX19Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy54LHRoaXMueSx0aGlzLnopfWNvcHkodCl7cmV0dXJuIHRoaXMueD10LngsdGhpcy55PXQueSx0aGlzLno9dC56LHRoaXN9YWRkKHQsZSl7cmV0dXJuIGUhPT12b2lkIDA/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmFkZCgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLmFkZFZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuYWRkVmVjdG9ycyh0LGUpKToodGhpcy54Kz10LngsdGhpcy55Kz10LnksdGhpcy56Kz10LnosdGhpcyl9YWRkU2NhbGFyKHQpe3JldHVybiB0aGlzLngrPXQsdGhpcy55Kz10LHRoaXMueis9dCx0aGlzfWFkZFZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueCtlLngsdGhpcy55PXQueStlLnksdGhpcy56PXQueitlLnosdGhpc31hZGRTY2FsZWRWZWN0b3IodCxlKXtyZXR1cm4gdGhpcy54Kz10LngqZSx0aGlzLnkrPXQueSplLHRoaXMueis9dC56KmUsdGhpc31zdWIodCxlKXtyZXR1cm4gZSE9PXZvaWQgMD8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuc3ViKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuc3ViVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5zdWJWZWN0b3JzKHQsZSkpOih0aGlzLngtPXQueCx0aGlzLnktPXQueSx0aGlzLnotPXQueix0aGlzKX1zdWJTY2FsYXIodCl7cmV0dXJuIHRoaXMueC09dCx0aGlzLnktPXQsdGhpcy56LT10LHRoaXN9c3ViVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54LWUueCx0aGlzLnk9dC55LWUueSx0aGlzLno9dC56LWUueix0aGlzfW11bHRpcGx5KHQsZSl7cmV0dXJuIGUhPT12b2lkIDA/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLm11bHRpcGx5KCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAubXVsdGlwbHlWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLm11bHRpcGx5VmVjdG9ycyh0LGUpKToodGhpcy54Kj10LngsdGhpcy55Kj10LnksdGhpcy56Kj10LnosdGhpcyl9bXVsdGlwbHlTY2FsYXIodCl7cmV0dXJuIHRoaXMueCo9dCx0aGlzLnkqPXQsdGhpcy56Kj10LHRoaXN9bXVsdGlwbHlWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngqZS54LHRoaXMueT10LnkqZS55LHRoaXMuej10LnoqZS56LHRoaXN9YXBwbHlFdWxlcih0KXtyZXR1cm4gdCYmdC5pc0V1bGVyfHxjb25zb2xlLmVycm9yKCJUSFJFRS5WZWN0b3IzOiAuYXBwbHlFdWxlcigpIG5vdyBleHBlY3RzIGFuIEV1bGVyIHJvdGF0aW9uIHJhdGhlciB0aGFuIGEgVmVjdG9yMyBhbmQgb3JkZXIuIiksdGhpcy5hcHBseVF1YXRlcm5pb24ocmcuc2V0RnJvbUV1bGVyKHQpKX1hcHBseUF4aXNBbmdsZSh0LGUpe3JldHVybiB0aGlzLmFwcGx5UXVhdGVybmlvbihyZy5zZXRGcm9tQXhpc0FuZ2xlKHQsZSkpfWFwcGx5TWF0cml4Myh0KXtsZXQgZT10aGlzLngsaT10aGlzLnkscj10aGlzLnoscz10LmVsZW1lbnRzO3JldHVybiB0aGlzLng9c1swXSplK3NbM10qaStzWzZdKnIsdGhpcy55PXNbMV0qZStzWzRdKmkrc1s3XSpyLHRoaXMuej1zWzJdKmUrc1s1XSppK3NbOF0qcix0aGlzfWFwcGx5Tm9ybWFsTWF0cml4KHQpe3JldHVybiB0aGlzLmFwcGx5TWF0cml4Myh0KS5ub3JtYWxpemUoKX1hcHBseU1hdHJpeDQodCl7bGV0IGU9dGhpcy54LGk9dGhpcy55LHI9dGhpcy56LHM9dC5lbGVtZW50cyxvPTEvKHNbM10qZStzWzddKmkrc1sxMV0qcitzWzE1XSk7cmV0dXJuIHRoaXMueD0oc1swXSplK3NbNF0qaStzWzhdKnIrc1sxMl0pKm8sdGhpcy55PShzWzFdKmUrc1s1XSppK3NbOV0qcitzWzEzXSkqbyx0aGlzLno9KHNbMl0qZStzWzZdKmkrc1sxMF0qcitzWzE0XSkqbyx0aGlzfWFwcGx5UXVhdGVybmlvbih0KXtsZXQgZT10aGlzLngsaT10aGlzLnkscj10aGlzLnoscz10Lngsbz10LnksYT10LnosbD10LncsYz1sKmUrbypyLWEqaSx1PWwqaSthKmUtcypyLGg9bCpyK3MqaS1vKmUsZj0tcyplLW8qaS1hKnI7cmV0dXJuIHRoaXMueD1jKmwrZiotcyt1Ki1hLWgqLW8sdGhpcy55PXUqbCtmKi1vK2gqLXMtYyotYSx0aGlzLno9aCpsK2YqLWErYyotby11Ki1zLHRoaXN9cHJvamVjdCh0KXtyZXR1cm4gdGhpcy5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZEludmVyc2UpLmFwcGx5TWF0cml4NCh0LnByb2plY3Rpb25NYXRyaXgpfXVucHJvamVjdCh0KXtyZXR1cm4gdGhpcy5hcHBseU1hdHJpeDQodC5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZSkuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGQpfXRyYW5zZm9ybURpcmVjdGlvbih0KXtsZXQgZT10aGlzLngsaT10aGlzLnkscj10aGlzLnoscz10LmVsZW1lbnRzO3JldHVybiB0aGlzLng9c1swXSplK3NbNF0qaStzWzhdKnIsdGhpcy55PXNbMV0qZStzWzVdKmkrc1s5XSpyLHRoaXMuej1zWzJdKmUrc1s2XSppK3NbMTBdKnIsdGhpcy5ub3JtYWxpemUoKX1kaXZpZGUodCl7cmV0dXJuIHRoaXMueC89dC54LHRoaXMueS89dC55LHRoaXMuei89dC56LHRoaXN9ZGl2aWRlU2NhbGFyKHQpe3JldHVybiB0aGlzLm11bHRpcGx5U2NhbGFyKDEvdCl9bWluKHQpe3JldHVybiB0aGlzLng9TWF0aC5taW4odGhpcy54LHQueCksdGhpcy55PU1hdGgubWluKHRoaXMueSx0LnkpLHRoaXMuej1NYXRoLm1pbih0aGlzLnosdC56KSx0aGlzfW1heCh0KXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHRoaXMueCx0LngpLHRoaXMueT1NYXRoLm1heCh0aGlzLnksdC55KSx0aGlzLno9TWF0aC5tYXgodGhpcy56LHQueiksdGhpc31jbGFtcCh0LGUpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodC54LE1hdGgubWluKGUueCx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodC55LE1hdGgubWluKGUueSx0aGlzLnkpKSx0aGlzLno9TWF0aC5tYXgodC56LE1hdGgubWluKGUueix0aGlzLnopKSx0aGlzfWNsYW1wU2NhbGFyKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLnkpKSx0aGlzLno9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueikpLHRoaXN9Y2xhbXBMZW5ndGgodCxlKXtsZXQgaT10aGlzLmxlbmd0aCgpO3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcihpfHwxKS5tdWx0aXBseVNjYWxhcihNYXRoLm1heCh0LE1hdGgubWluKGUsaSkpKX1mbG9vcigpe3JldHVybiB0aGlzLng9TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT1NYXRoLmZsb29yKHRoaXMueSksdGhpcy56PU1hdGguZmxvb3IodGhpcy56KSx0aGlzfWNlaWwoKXtyZXR1cm4gdGhpcy54PU1hdGguY2VpbCh0aGlzLngpLHRoaXMueT1NYXRoLmNlaWwodGhpcy55KSx0aGlzLno9TWF0aC5jZWlsKHRoaXMueiksdGhpc31yb3VuZCgpe3JldHVybiB0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpLHRoaXMueT1NYXRoLnJvdW5kKHRoaXMueSksdGhpcy56PU1hdGgucm91bmQodGhpcy56KSx0aGlzfXJvdW5kVG9aZXJvKCl7cmV0dXJuIHRoaXMueD10aGlzLng8MD9NYXRoLmNlaWwodGhpcy54KTpNYXRoLmZsb29yKHRoaXMueCksdGhpcy55PXRoaXMueTwwP01hdGguY2VpbCh0aGlzLnkpOk1hdGguZmxvb3IodGhpcy55KSx0aGlzLno9dGhpcy56PDA/TWF0aC5jZWlsKHRoaXMueik6TWF0aC5mbG9vcih0aGlzLnopLHRoaXN9bmVnYXRlKCl7cmV0dXJuIHRoaXMueD0tdGhpcy54LHRoaXMueT0tdGhpcy55LHRoaXMuej0tdGhpcy56LHRoaXN9ZG90KHQpe3JldHVybiB0aGlzLngqdC54K3RoaXMueSp0LnkrdGhpcy56KnQuen1sZW5ndGhTcSgpe3JldHVybiB0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkrdGhpcy56KnRoaXMuen1sZW5ndGgoKXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueSt0aGlzLnoqdGhpcy56KX1tYW5oYXR0YW5MZW5ndGgoKXtyZXR1cm4gTWF0aC5hYnModGhpcy54KStNYXRoLmFicyh0aGlzLnkpK01hdGguYWJzKHRoaXMueil9bm9ybWFsaXplKCl7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKHRoaXMubGVuZ3RoKCl8fDEpfXNldExlbmd0aCh0KXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcih0KX1sZXJwKHQsZSl7cmV0dXJuIHRoaXMueCs9KHQueC10aGlzLngpKmUsdGhpcy55Kz0odC55LXRoaXMueSkqZSx0aGlzLnorPSh0LnotdGhpcy56KSplLHRoaXN9bGVycFZlY3RvcnModCxlLGkpe3JldHVybiB0aGlzLng9dC54KyhlLngtdC54KSppLHRoaXMueT10LnkrKGUueS10LnkpKmksdGhpcy56PXQueisoZS56LXQueikqaSx0aGlzfWNyb3NzKHQsZSl7cmV0dXJuIGUhPT12b2lkIDA/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmNyb3NzKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuY3Jvc3NWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLmNyb3NzVmVjdG9ycyh0LGUpKTp0aGlzLmNyb3NzVmVjdG9ycyh0aGlzLHQpfWNyb3NzVmVjdG9ycyh0LGUpe2xldCBpPXQueCxyPXQueSxzPXQueixvPWUueCxhPWUueSxsPWUuejtyZXR1cm4gdGhpcy54PXIqbC1zKmEsdGhpcy55PXMqby1pKmwsdGhpcy56PWkqYS1yKm8sdGhpc31wcm9qZWN0T25WZWN0b3IodCl7bGV0IGU9dC5sZW5ndGhTcSgpO2lmKGU9PT0wKXJldHVybiB0aGlzLnNldCgwLDAsMCk7bGV0IGk9dC5kb3QodGhpcykvZTtyZXR1cm4gdGhpcy5jb3B5KHQpLm11bHRpcGx5U2NhbGFyKGkpfXByb2plY3RPblBsYW5lKHQpe3JldHVybiBsdS5jb3B5KHRoaXMpLnByb2plY3RPblZlY3Rvcih0KSx0aGlzLnN1YihsdSl9cmVmbGVjdCh0KXtyZXR1cm4gdGhpcy5zdWIobHUuY29weSh0KS5tdWx0aXBseVNjYWxhcigyKnRoaXMuZG90KHQpKSl9YW5nbGVUbyh0KXtsZXQgZT1NYXRoLnNxcnQodGhpcy5sZW5ndGhTcSgpKnQubGVuZ3RoU3EoKSk7aWYoZT09PTApcmV0dXJuIE1hdGguUEkvMjtsZXQgaT10aGlzLmRvdCh0KS9lO3JldHVybiBNYXRoLmFjb3MoSWUoaSwtMSwxKSl9ZGlzdGFuY2VUbyh0KXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMuZGlzdGFuY2VUb1NxdWFyZWQodCkpfWRpc3RhbmNlVG9TcXVhcmVkKHQpe2xldCBlPXRoaXMueC10LngsaT10aGlzLnktdC55LHI9dGhpcy56LXQuejtyZXR1cm4gZSplK2kqaStyKnJ9bWFuaGF0dGFuRGlzdGFuY2VUbyh0KXtyZXR1cm4gTWF0aC5hYnModGhpcy54LXQueCkrTWF0aC5hYnModGhpcy55LXQueSkrTWF0aC5hYnModGhpcy56LXQueil9c2V0RnJvbVNwaGVyaWNhbCh0KXtyZXR1cm4gdGhpcy5zZXRGcm9tU3BoZXJpY2FsQ29vcmRzKHQucmFkaXVzLHQucGhpLHQudGhldGEpfXNldEZyb21TcGhlcmljYWxDb29yZHModCxlLGkpe2xldCByPU1hdGguc2luKGUpKnQ7cmV0dXJuIHRoaXMueD1yKk1hdGguc2luKGkpLHRoaXMueT1NYXRoLmNvcyhlKSp0LHRoaXMuej1yKk1hdGguY29zKGkpLHRoaXN9c2V0RnJvbUN5bGluZHJpY2FsKHQpe3JldHVybiB0aGlzLnNldEZyb21DeWxpbmRyaWNhbENvb3Jkcyh0LnJhZGl1cyx0LnRoZXRhLHQueSl9c2V0RnJvbUN5bGluZHJpY2FsQ29vcmRzKHQsZSxpKXtyZXR1cm4gdGhpcy54PXQqTWF0aC5zaW4oZSksdGhpcy55PWksdGhpcy56PXQqTWF0aC5jb3MoZSksdGhpc31zZXRGcm9tTWF0cml4UG9zaXRpb24odCl7bGV0IGU9dC5lbGVtZW50cztyZXR1cm4gdGhpcy54PWVbMTJdLHRoaXMueT1lWzEzXSx0aGlzLno9ZVsxNF0sdGhpc31zZXRGcm9tTWF0cml4U2NhbGUodCl7bGV0IGU9dGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKHQsMCkubGVuZ3RoKCksaT10aGlzLnNldEZyb21NYXRyaXhDb2x1bW4odCwxKS5sZW5ndGgoKSxyPXRoaXMuc2V0RnJvbU1hdHJpeENvbHVtbih0LDIpLmxlbmd0aCgpO3JldHVybiB0aGlzLng9ZSx0aGlzLnk9aSx0aGlzLno9cix0aGlzfXNldEZyb21NYXRyaXhDb2x1bW4odCxlKXtyZXR1cm4gdGhpcy5mcm9tQXJyYXkodC5lbGVtZW50cyxlKjQpfXNldEZyb21NYXRyaXgzQ29sdW1uKHQsZSl7cmV0dXJuIHRoaXMuZnJvbUFycmF5KHQuZWxlbWVudHMsZSozKX1lcXVhbHModCl7cmV0dXJuIHQueD09PXRoaXMueCYmdC55PT09dGhpcy55JiZ0Lno9PT10aGlzLnp9ZnJvbUFycmF5KHQsZT0wKXtyZXR1cm4gdGhpcy54PXRbZV0sdGhpcy55PXRbZSsxXSx0aGlzLno9dFtlKzJdLHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7cmV0dXJuIHRbZV09dGhpcy54LHRbZSsxXT10aGlzLnksdFtlKzJdPXRoaXMueix0fWZyb21CdWZmZXJBdHRyaWJ1dGUodCxlLGkpe3JldHVybiBpIT09dm9pZCAwJiZjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IG9mZnNldCBoYXMgYmVlbiByZW1vdmVkIGZyb20gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4iKSx0aGlzLng9dC5nZXRYKGUpLHRoaXMueT10LmdldFkoZSksdGhpcy56PXQuZ2V0WihlKSx0aGlzfXJhbmRvbSgpe3JldHVybiB0aGlzLng9TWF0aC5yYW5kb20oKSx0aGlzLnk9TWF0aC5yYW5kb20oKSx0aGlzLno9TWF0aC5yYW5kb20oKSx0aGlzfXJhbmRvbURpcmVjdGlvbigpe2xldCB0PShNYXRoLnJhbmRvbSgpLS41KSoyLGU9TWF0aC5yYW5kb20oKSpNYXRoLlBJKjIsaT1NYXRoLnNxcnQoMS1jZih0LDIpKTtyZXR1cm4gdGhpcy54PWkqTWF0aC5jb3MoZSksdGhpcy55PWkqTWF0aC5zaW4oZSksdGhpcy56PXQsdGhpc30qW1N5bWJvbC5pdGVyYXRvcl0oKXt5aWVsZCB0aGlzLngseWllbGQgdGhpcy55LHlpZWxkIHRoaXMuen19O1QucHJvdG90eXBlLmlzVmVjdG9yMz0hMDt2YXIgbHU9bmV3IFQscmc9bmV3IEVlLEdlPWNsYXNze2NvbnN0cnVjdG9yKHQ9bmV3IFQoMS8wLDEvMCwxLzApLGU9bmV3IFQoLTEvMCwtMS8wLC0xLzApKXt0aGlzLm1pbj10LHRoaXMubWF4PWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMubWluLmNvcHkodCksdGhpcy5tYXguY29weShlKSx0aGlzfXNldEZyb21BcnJheSh0KXtsZXQgZT0xLzAsaT0xLzAscj0xLzAscz0tMS8wLG89LTEvMCxhPS0xLzA7Zm9yKGxldCBsPTAsYz10Lmxlbmd0aDtsPGM7bCs9Myl7bGV0IHU9dFtsXSxoPXRbbCsxXSxmPXRbbCsyXTt1PGUmJihlPXUpLGg8aSYmKGk9aCksZjxyJiYocj1mKSx1PnMmJihzPXUpLGg+byYmKG89aCksZj5hJiYoYT1mKX1yZXR1cm4gdGhpcy5taW4uc2V0KGUsaSxyKSx0aGlzLm1heC5zZXQocyxvLGEpLHRoaXN9c2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZSh0KXtsZXQgZT0xLzAsaT0xLzAscj0xLzAscz0tMS8wLG89LTEvMCxhPS0xLzA7Zm9yKGxldCBsPTAsYz10LmNvdW50O2w8YztsKyspe2xldCB1PXQuZ2V0WChsKSxoPXQuZ2V0WShsKSxmPXQuZ2V0WihsKTt1PGUmJihlPXUpLGg8aSYmKGk9aCksZjxyJiYocj1mKSx1PnMmJihzPXUpLGg+byYmKG89aCksZj5hJiYoYT1mKX1yZXR1cm4gdGhpcy5taW4uc2V0KGUsaSxyKSx0aGlzLm1heC5zZXQocyxvLGEpLHRoaXN9c2V0RnJvbVBvaW50cyh0KXt0aGlzLm1ha2VFbXB0eSgpO2ZvcihsZXQgZT0wLGk9dC5sZW5ndGg7ZTxpO2UrKyl0aGlzLmV4cGFuZEJ5UG9pbnQodFtlXSk7cmV0dXJuIHRoaXN9c2V0RnJvbUNlbnRlckFuZFNpemUodCxlKXtsZXQgaT1JaS5jb3B5KGUpLm11bHRpcGx5U2NhbGFyKC41KTtyZXR1cm4gdGhpcy5taW4uY29weSh0KS5zdWIoaSksdGhpcy5tYXguY29weSh0KS5hZGQoaSksdGhpc31zZXRGcm9tT2JqZWN0KHQsZT0hMSl7cmV0dXJuIHRoaXMubWFrZUVtcHR5KCksdGhpcy5leHBhbmRCeU9iamVjdCh0LGUpfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLm1pbi5jb3B5KHQubWluKSx0aGlzLm1heC5jb3B5KHQubWF4KSx0aGlzfW1ha2VFbXB0eSgpe3JldHVybiB0aGlzLm1pbi54PXRoaXMubWluLnk9dGhpcy5taW4uej0xLzAsdGhpcy5tYXgueD10aGlzLm1heC55PXRoaXMubWF4Lno9LTEvMCx0aGlzfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5tYXgueDx0aGlzLm1pbi54fHx0aGlzLm1heC55PHRoaXMubWluLnl8fHRoaXMubWF4Lno8dGhpcy5taW4uen1nZXRDZW50ZXIodCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpP3Quc2V0KDAsMCwwKTp0LmFkZFZlY3RvcnModGhpcy5taW4sdGhpcy5tYXgpLm11bHRpcGx5U2NhbGFyKC41KX1nZXRTaXplKHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKT90LnNldCgwLDAsMCk6dC5zdWJWZWN0b3JzKHRoaXMubWF4LHRoaXMubWluKX1leHBhbmRCeVBvaW50KHQpe3JldHVybiB0aGlzLm1pbi5taW4odCksdGhpcy5tYXgubWF4KHQpLHRoaXN9ZXhwYW5kQnlWZWN0b3IodCl7cmV0dXJuIHRoaXMubWluLnN1Yih0KSx0aGlzLm1heC5hZGQodCksdGhpc31leHBhbmRCeVNjYWxhcih0KXtyZXR1cm4gdGhpcy5taW4uYWRkU2NhbGFyKC10KSx0aGlzLm1heC5hZGRTY2FsYXIodCksdGhpc31leHBhbmRCeU9iamVjdCh0LGU9ITEpe3QudXBkYXRlV29ybGRNYXRyaXgoITEsITEpO2xldCBpPXQuZ2VvbWV0cnk7aWYoaSE9PXZvaWQgMClpZihlJiZpLmF0dHJpYnV0ZXMhPW51bGwmJmkuYXR0cmlidXRlcy5wb3NpdGlvbiE9PXZvaWQgMCl7bGV0IHM9aS5hdHRyaWJ1dGVzLnBvc2l0aW9uO2ZvcihsZXQgbz0wLGE9cy5jb3VudDtvPGE7bysrKUlpLmZyb21CdWZmZXJBdHRyaWJ1dGUocyxvKS5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCksdGhpcy5leHBhbmRCeVBvaW50KElpKX1lbHNlIGkuYm91bmRpbmdCb3g9PT1udWxsJiZpLmNvbXB1dGVCb3VuZGluZ0JveCgpLGN1LmNvcHkoaS5ib3VuZGluZ0JveCksY3UuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGQpLHRoaXMudW5pb24oY3UpO2xldCByPXQuY2hpbGRyZW47Zm9yKGxldCBzPTAsbz1yLmxlbmd0aDtzPG87cysrKXRoaXMuZXhwYW5kQnlPYmplY3QocltzXSxlKTtyZXR1cm4gdGhpc31jb250YWluc1BvaW50KHQpe3JldHVybiEodC54PHRoaXMubWluLnh8fHQueD50aGlzLm1heC54fHx0Lnk8dGhpcy5taW4ueXx8dC55PnRoaXMubWF4Lnl8fHQuejx0aGlzLm1pbi56fHx0Lno+dGhpcy5tYXgueil9Y29udGFpbnNCb3godCl7cmV0dXJuIHRoaXMubWluLng8PXQubWluLngmJnQubWF4Lng8PXRoaXMubWF4LngmJnRoaXMubWluLnk8PXQubWluLnkmJnQubWF4Lnk8PXRoaXMubWF4LnkmJnRoaXMubWluLno8PXQubWluLnomJnQubWF4Lno8PXRoaXMubWF4Lnp9Z2V0UGFyYW1ldGVyKHQsZSl7cmV0dXJuIGUuc2V0KCh0LngtdGhpcy5taW4ueCkvKHRoaXMubWF4LngtdGhpcy5taW4ueCksKHQueS10aGlzLm1pbi55KS8odGhpcy5tYXgueS10aGlzLm1pbi55KSwodC56LXRoaXMubWluLnopLyh0aGlzLm1heC56LXRoaXMubWluLnopKX1pbnRlcnNlY3RzQm94KHQpe3JldHVybiEodC5tYXgueDx0aGlzLm1pbi54fHx0Lm1pbi54PnRoaXMubWF4Lnh8fHQubWF4Lnk8dGhpcy5taW4ueXx8dC5taW4ueT50aGlzLm1heC55fHx0Lm1heC56PHRoaXMubWluLnp8fHQubWluLno+dGhpcy5tYXgueil9aW50ZXJzZWN0c1NwaGVyZSh0KXtyZXR1cm4gdGhpcy5jbGFtcFBvaW50KHQuY2VudGVyLElpKSxJaS5kaXN0YW5jZVRvU3F1YXJlZCh0LmNlbnRlcik8PXQucmFkaXVzKnQucmFkaXVzfWludGVyc2VjdHNQbGFuZSh0KXtsZXQgZSxpO3JldHVybiB0Lm5vcm1hbC54PjA/KGU9dC5ub3JtYWwueCp0aGlzLm1pbi54LGk9dC5ub3JtYWwueCp0aGlzLm1heC54KTooZT10Lm5vcm1hbC54KnRoaXMubWF4LngsaT10Lm5vcm1hbC54KnRoaXMubWluLngpLHQubm9ybWFsLnk+MD8oZSs9dC5ub3JtYWwueSp0aGlzLm1pbi55LGkrPXQubm9ybWFsLnkqdGhpcy5tYXgueSk6KGUrPXQubm9ybWFsLnkqdGhpcy5tYXgueSxpKz10Lm5vcm1hbC55KnRoaXMubWluLnkpLHQubm9ybWFsLno+MD8oZSs9dC5ub3JtYWwueip0aGlzLm1pbi56LGkrPXQubm9ybWFsLnoqdGhpcy5tYXgueik6KGUrPXQubm9ybWFsLnoqdGhpcy5tYXgueixpKz10Lm5vcm1hbC56KnRoaXMubWluLnopLGU8PS10LmNvbnN0YW50JiZpPj0tdC5jb25zdGFudH1pbnRlcnNlY3RzVHJpYW5nbGUodCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuITE7dGhpcy5nZXRDZW50ZXIoa3MpLF9hLnN1YlZlY3RvcnModGhpcy5tYXgsa3MpLG1yLnN1YlZlY3RvcnModC5hLGtzKSxnci5zdWJWZWN0b3JzKHQuYixrcykseHIuc3ViVmVjdG9ycyh0LmMsa3MpLHFuLnN1YlZlY3RvcnMoZ3IsbXIpLFhuLnN1YlZlY3RvcnMoeHIsZ3IpLE5pLnN1YlZlY3RvcnMobXIseHIpO2xldCBlPVswLC1xbi56LHFuLnksMCwtWG4ueixYbi55LDAsLU5pLnosTmkueSxxbi56LDAsLXFuLngsWG4ueiwwLC1Ybi54LE5pLnosMCwtTmkueCwtcW4ueSxxbi54LDAsLVhuLnksWG4ueCwwLC1OaS55LE5pLngsMF07cmV0dXJuIXV1KGUsbXIsZ3IseHIsX2EpfHwoZT1bMSwwLDAsMCwxLDAsMCwwLDFdLCF1dShlLG1yLGdyLHhyLF9hKSk/ITE6KHdhLmNyb3NzVmVjdG9ycyhxbixYbiksZT1bd2EueCx3YS55LHdhLnpdLHV1KGUsbXIsZ3IseHIsX2EpKX1jbGFtcFBvaW50KHQsZSl7cmV0dXJuIGUuY29weSh0KS5jbGFtcCh0aGlzLm1pbix0aGlzLm1heCl9ZGlzdGFuY2VUb1BvaW50KHQpe3JldHVybiBJaS5jb3B5KHQpLmNsYW1wKHRoaXMubWluLHRoaXMubWF4KS5zdWIodCkubGVuZ3RoKCl9Z2V0Qm91bmRpbmdTcGhlcmUodCl7cmV0dXJuIHRoaXMuZ2V0Q2VudGVyKHQuY2VudGVyKSx0LnJhZGl1cz10aGlzLmdldFNpemUoSWkpLmxlbmd0aCgpKi41LHR9aW50ZXJzZWN0KHQpe3JldHVybiB0aGlzLm1pbi5tYXgodC5taW4pLHRoaXMubWF4Lm1pbih0Lm1heCksdGhpcy5pc0VtcHR5KCkmJnRoaXMubWFrZUVtcHR5KCksdGhpc311bmlvbih0KXtyZXR1cm4gdGhpcy5taW4ubWluKHQubWluKSx0aGlzLm1heC5tYXgodC5tYXgpLHRoaXN9YXBwbHlNYXRyaXg0KHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKT90aGlzOihBblswXS5zZXQodGhpcy5taW4ueCx0aGlzLm1pbi55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSxBblsxXS5zZXQodGhpcy5taW4ueCx0aGlzLm1pbi55LHRoaXMubWF4LnopLmFwcGx5TWF0cml4NCh0KSxBblsyXS5zZXQodGhpcy5taW4ueCx0aGlzLm1heC55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSxBblszXS5zZXQodGhpcy5taW4ueCx0aGlzLm1heC55LHRoaXMubWF4LnopLmFwcGx5TWF0cml4NCh0KSxBbls0XS5zZXQodGhpcy5tYXgueCx0aGlzLm1pbi55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSxBbls1XS5zZXQodGhpcy5tYXgueCx0aGlzLm1pbi55LHRoaXMubWF4LnopLmFwcGx5TWF0cml4NCh0KSxBbls2XS5zZXQodGhpcy5tYXgueCx0aGlzLm1heC55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSxBbls3XS5zZXQodGhpcy5tYXgueCx0aGlzLm1heC55LHRoaXMubWF4LnopLmFwcGx5TWF0cml4NCh0KSx0aGlzLnNldEZyb21Qb2ludHMoQW4pLHRoaXMpfXRyYW5zbGF0ZSh0KXtyZXR1cm4gdGhpcy5taW4uYWRkKHQpLHRoaXMubWF4LmFkZCh0KSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5taW4uZXF1YWxzKHRoaXMubWluKSYmdC5tYXguZXF1YWxzKHRoaXMubWF4KX19O0dlLnByb3RvdHlwZS5pc0JveDM9ITA7dmFyIEFuPVtuZXcgVCxuZXcgVCxuZXcgVCxuZXcgVCxuZXcgVCxuZXcgVCxuZXcgVCxuZXcgVF0sSWk9bmV3IFQsY3U9bmV3IEdlLG1yPW5ldyBULGdyPW5ldyBULHhyPW5ldyBULHFuPW5ldyBULFhuPW5ldyBULE5pPW5ldyBULGtzPW5ldyBULF9hPW5ldyBULHdhPW5ldyBULEZpPW5ldyBUO2Z1bmN0aW9uIHV1KG4sdCxlLGkscil7Zm9yKGxldCBzPTAsbz1uLmxlbmd0aC0zO3M8PW87cys9Myl7RmkuZnJvbUFycmF5KG4scyk7bGV0IGE9ci54Kk1hdGguYWJzKEZpLngpK3IueSpNYXRoLmFicyhGaS55KStyLnoqTWF0aC5hYnMoRmkueiksbD10LmRvdChGaSksYz1lLmRvdChGaSksdT1pLmRvdChGaSk7aWYoTWF0aC5tYXgoLU1hdGgubWF4KGwsYyx1KSxNYXRoLm1pbihsLGMsdSkpPmEpcmV0dXJuITF9cmV0dXJuITB9dmFyIHJNPW5ldyBHZSxzZz1uZXcgVCxNYT1uZXcgVCxodT1uZXcgVCxzaT1jbGFzc3tjb25zdHJ1Y3Rvcih0PW5ldyBULGU9LTEpe3RoaXMuY2VudGVyPXQsdGhpcy5yYWRpdXM9ZX1zZXQodCxlKXtyZXR1cm4gdGhpcy5jZW50ZXIuY29weSh0KSx0aGlzLnJhZGl1cz1lLHRoaXN9c2V0RnJvbVBvaW50cyh0LGUpe2xldCBpPXRoaXMuY2VudGVyO2UhPT12b2lkIDA/aS5jb3B5KGUpOnJNLnNldEZyb21Qb2ludHModCkuZ2V0Q2VudGVyKGkpO2xldCByPTA7Zm9yKGxldCBzPTAsbz10Lmxlbmd0aDtzPG87cysrKXI9TWF0aC5tYXgocixpLmRpc3RhbmNlVG9TcXVhcmVkKHRbc10pKTtyZXR1cm4gdGhpcy5yYWRpdXM9TWF0aC5zcXJ0KHIpLHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5jZW50ZXIuY29weSh0LmNlbnRlciksdGhpcy5yYWRpdXM9dC5yYWRpdXMsdGhpc31pc0VtcHR5KCl7cmV0dXJuIHRoaXMucmFkaXVzPDB9bWFrZUVtcHR5KCl7cmV0dXJuIHRoaXMuY2VudGVyLnNldCgwLDAsMCksdGhpcy5yYWRpdXM9LTEsdGhpc31jb250YWluc1BvaW50KHQpe3JldHVybiB0LmRpc3RhbmNlVG9TcXVhcmVkKHRoaXMuY2VudGVyKTw9dGhpcy5yYWRpdXMqdGhpcy5yYWRpdXN9ZGlzdGFuY2VUb1BvaW50KHQpe3JldHVybiB0LmRpc3RhbmNlVG8odGhpcy5jZW50ZXIpLXRoaXMucmFkaXVzfWludGVyc2VjdHNTcGhlcmUodCl7bGV0IGU9dGhpcy5yYWRpdXMrdC5yYWRpdXM7cmV0dXJuIHQuY2VudGVyLmRpc3RhbmNlVG9TcXVhcmVkKHRoaXMuY2VudGVyKTw9ZSplfWludGVyc2VjdHNCb3godCl7cmV0dXJuIHQuaW50ZXJzZWN0c1NwaGVyZSh0aGlzKX1pbnRlcnNlY3RzUGxhbmUodCl7cmV0dXJuIE1hdGguYWJzKHQuZGlzdGFuY2VUb1BvaW50KHRoaXMuY2VudGVyKSk8PXRoaXMucmFkaXVzfWNsYW1wUG9pbnQodCxlKXtsZXQgaT10aGlzLmNlbnRlci5kaXN0YW5jZVRvU3F1YXJlZCh0KTtyZXR1cm4gZS5jb3B5KHQpLGk+dGhpcy5yYWRpdXMqdGhpcy5yYWRpdXMmJihlLnN1Yih0aGlzLmNlbnRlcikubm9ybWFsaXplKCksZS5tdWx0aXBseVNjYWxhcih0aGlzLnJhZGl1cykuYWRkKHRoaXMuY2VudGVyKSksZX1nZXRCb3VuZGluZ0JveCh0KXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/KHQubWFrZUVtcHR5KCksdCk6KHQuc2V0KHRoaXMuY2VudGVyLHRoaXMuY2VudGVyKSx0LmV4cGFuZEJ5U2NhbGFyKHRoaXMucmFkaXVzKSx0KX1hcHBseU1hdHJpeDQodCl7cmV0dXJuIHRoaXMuY2VudGVyLmFwcGx5TWF0cml4NCh0KSx0aGlzLnJhZGl1cz10aGlzLnJhZGl1cyp0LmdldE1heFNjYWxlT25BeGlzKCksdGhpc310cmFuc2xhdGUodCl7cmV0dXJuIHRoaXMuY2VudGVyLmFkZCh0KSx0aGlzfWV4cGFuZEJ5UG9pbnQodCl7aHUuc3ViVmVjdG9ycyh0LHRoaXMuY2VudGVyKTtsZXQgZT1odS5sZW5ndGhTcSgpO2lmKGU+dGhpcy5yYWRpdXMqdGhpcy5yYWRpdXMpe2xldCBpPU1hdGguc3FydChlKSxyPShpLXRoaXMucmFkaXVzKSouNTt0aGlzLmNlbnRlci5hZGQoaHUubXVsdGlwbHlTY2FsYXIoci9pKSksdGhpcy5yYWRpdXMrPXJ9cmV0dXJuIHRoaXN9dW5pb24odCl7cmV0dXJuIHRoaXMuY2VudGVyLmVxdWFscyh0LmNlbnRlcik9PT0hMD9NYS5zZXQoMCwwLDEpLm11bHRpcGx5U2NhbGFyKHQucmFkaXVzKTpNYS5zdWJWZWN0b3JzKHQuY2VudGVyLHRoaXMuY2VudGVyKS5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcih0LnJhZGl1cyksdGhpcy5leHBhbmRCeVBvaW50KHNnLmNvcHkodC5jZW50ZXIpLmFkZChNYSkpLHRoaXMuZXhwYW5kQnlQb2ludChzZy5jb3B5KHQuY2VudGVyKS5zdWIoTWEpKSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5jZW50ZXIuZXF1YWxzKHRoaXMuY2VudGVyKSYmdC5yYWRpdXM9PT10aGlzLnJhZGl1c31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcigpLmNvcHkodGhpcyl9fSxDbj1uZXcgVCxmdT1uZXcgVCxiYT1uZXcgVCxZbj1uZXcgVCxkdT1uZXcgVCxTYT1uZXcgVCxwdT1uZXcgVCxvaT1jbGFzc3tjb25zdHJ1Y3Rvcih0PW5ldyBULGU9bmV3IFQoMCwwLC0xKSl7dGhpcy5vcmlnaW49dCx0aGlzLmRpcmVjdGlvbj1lfXNldCh0LGUpe3JldHVybiB0aGlzLm9yaWdpbi5jb3B5KHQpLHRoaXMuZGlyZWN0aW9uLmNvcHkoZSksdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLm9yaWdpbi5jb3B5KHQub3JpZ2luKSx0aGlzLmRpcmVjdGlvbi5jb3B5KHQuZGlyZWN0aW9uKSx0aGlzfWF0KHQsZSl7cmV0dXJuIGUuY29weSh0aGlzLmRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIodCkuYWRkKHRoaXMub3JpZ2luKX1sb29rQXQodCl7cmV0dXJuIHRoaXMuZGlyZWN0aW9uLmNvcHkodCkuc3ViKHRoaXMub3JpZ2luKS5ub3JtYWxpemUoKSx0aGlzfXJlY2FzdCh0KXtyZXR1cm4gdGhpcy5vcmlnaW4uY29weSh0aGlzLmF0KHQsQ24pKSx0aGlzfWNsb3Nlc3RQb2ludFRvUG9pbnQodCxlKXtlLnN1YlZlY3RvcnModCx0aGlzLm9yaWdpbik7bGV0IGk9ZS5kb3QodGhpcy5kaXJlY3Rpb24pO3JldHVybiBpPDA/ZS5jb3B5KHRoaXMub3JpZ2luKTplLmNvcHkodGhpcy5kaXJlY3Rpb24pLm11bHRpcGx5U2NhbGFyKGkpLmFkZCh0aGlzLm9yaWdpbil9ZGlzdGFuY2VUb1BvaW50KHQpe3JldHVybiBNYXRoLnNxcnQodGhpcy5kaXN0YW5jZVNxVG9Qb2ludCh0KSl9ZGlzdGFuY2VTcVRvUG9pbnQodCl7bGV0IGU9Q24uc3ViVmVjdG9ycyh0LHRoaXMub3JpZ2luKS5kb3QodGhpcy5kaXJlY3Rpb24pO3JldHVybiBlPDA/dGhpcy5vcmlnaW4uZGlzdGFuY2VUb1NxdWFyZWQodCk6KENuLmNvcHkodGhpcy5kaXJlY3Rpb24pLm11bHRpcGx5U2NhbGFyKGUpLmFkZCh0aGlzLm9yaWdpbiksQ24uZGlzdGFuY2VUb1NxdWFyZWQodCkpfWRpc3RhbmNlU3FUb1NlZ21lbnQodCxlLGkscil7ZnUuY29weSh0KS5hZGQoZSkubXVsdGlwbHlTY2FsYXIoLjUpLGJhLmNvcHkoZSkuc3ViKHQpLm5vcm1hbGl6ZSgpLFluLmNvcHkodGhpcy5vcmlnaW4pLnN1YihmdSk7bGV0IHM9dC5kaXN0YW5jZVRvKGUpKi41LG89LXRoaXMuZGlyZWN0aW9uLmRvdChiYSksYT1Zbi5kb3QodGhpcy5kaXJlY3Rpb24pLGw9LVluLmRvdChiYSksYz1Zbi5sZW5ndGhTcSgpLHU9TWF0aC5hYnMoMS1vKm8pLGgsZixkLGc7aWYodT4wKWlmKGg9bypsLWEsZj1vKmEtbCxnPXMqdSxoPj0wKWlmKGY+PS1nKWlmKGY8PWcpe2xldCB4PTEvdTtoKj14LGYqPXgsZD1oKihoK28qZisyKmEpK2YqKG8qaCtmKzIqbCkrY31lbHNlIGY9cyxoPU1hdGgubWF4KDAsLShvKmYrYSkpLGQ9LWgqaCtmKihmKzIqbCkrYztlbHNlIGY9LXMsaD1NYXRoLm1heCgwLC0obypmK2EpKSxkPS1oKmgrZiooZisyKmwpK2M7ZWxzZSBmPD0tZz8oaD1NYXRoLm1heCgwLC0oLW8qcythKSksZj1oPjA/LXM6TWF0aC5taW4oTWF0aC5tYXgoLXMsLWwpLHMpLGQ9LWgqaCtmKihmKzIqbCkrYyk6Zjw9Zz8oaD0wLGY9TWF0aC5taW4oTWF0aC5tYXgoLXMsLWwpLHMpLGQ9ZiooZisyKmwpK2MpOihoPU1hdGgubWF4KDAsLShvKnMrYSkpLGY9aD4wP3M6TWF0aC5taW4oTWF0aC5tYXgoLXMsLWwpLHMpLGQ9LWgqaCtmKihmKzIqbCkrYyk7ZWxzZSBmPW8+MD8tczpzLGg9TWF0aC5tYXgoMCwtKG8qZithKSksZD0taCpoK2YqKGYrMipsKStjO3JldHVybiBpJiZpLmNvcHkodGhpcy5kaXJlY3Rpb24pLm11bHRpcGx5U2NhbGFyKGgpLmFkZCh0aGlzLm9yaWdpbiksciYmci5jb3B5KGJhKS5tdWx0aXBseVNjYWxhcihmKS5hZGQoZnUpLGR9aW50ZXJzZWN0U3BoZXJlKHQsZSl7Q24uc3ViVmVjdG9ycyh0LmNlbnRlcix0aGlzLm9yaWdpbik7bGV0IGk9Q24uZG90KHRoaXMuZGlyZWN0aW9uKSxyPUNuLmRvdChDbiktaSppLHM9dC5yYWRpdXMqdC5yYWRpdXM7aWYocj5zKXJldHVybiBudWxsO2xldCBvPU1hdGguc3FydChzLXIpLGE9aS1vLGw9aStvO3JldHVybiBhPDAmJmw8MD9udWxsOmE8MD90aGlzLmF0KGwsZSk6dGhpcy5hdChhLGUpfWludGVyc2VjdHNTcGhlcmUodCl7cmV0dXJuIHRoaXMuZGlzdGFuY2VTcVRvUG9pbnQodC5jZW50ZXIpPD10LnJhZGl1cyp0LnJhZGl1c31kaXN0YW5jZVRvUGxhbmUodCl7bGV0IGU9dC5ub3JtYWwuZG90KHRoaXMuZGlyZWN0aW9uKTtpZihlPT09MClyZXR1cm4gdC5kaXN0YW5jZVRvUG9pbnQodGhpcy5vcmlnaW4pPT09MD8wOm51bGw7bGV0IGk9LSh0aGlzLm9yaWdpbi5kb3QodC5ub3JtYWwpK3QuY29uc3RhbnQpL2U7cmV0dXJuIGk+PTA/aTpudWxsfWludGVyc2VjdFBsYW5lKHQsZSl7bGV0IGk9dGhpcy5kaXN0YW5jZVRvUGxhbmUodCk7cmV0dXJuIGk9PT1udWxsP251bGw6dGhpcy5hdChpLGUpfWludGVyc2VjdHNQbGFuZSh0KXtsZXQgZT10LmRpc3RhbmNlVG9Qb2ludCh0aGlzLm9yaWdpbik7cmV0dXJuIGU9PT0wfHx0Lm5vcm1hbC5kb3QodGhpcy5kaXJlY3Rpb24pKmU8MH1pbnRlcnNlY3RCb3godCxlKXtsZXQgaSxyLHMsbyxhLGwsYz0xL3RoaXMuZGlyZWN0aW9uLngsdT0xL3RoaXMuZGlyZWN0aW9uLnksaD0xL3RoaXMuZGlyZWN0aW9uLnosZj10aGlzLm9yaWdpbjtyZXR1cm4gYz49MD8oaT0odC5taW4ueC1mLngpKmMscj0odC5tYXgueC1mLngpKmMpOihpPSh0Lm1heC54LWYueCkqYyxyPSh0Lm1pbi54LWYueCkqYyksdT49MD8ocz0odC5taW4ueS1mLnkpKnUsbz0odC5tYXgueS1mLnkpKnUpOihzPSh0Lm1heC55LWYueSkqdSxvPSh0Lm1pbi55LWYueSkqdSksaT5vfHxzPnJ8fCgocz5pfHxpIT09aSkmJihpPXMpLChvPHJ8fHIhPT1yKSYmKHI9byksaD49MD8oYT0odC5taW4uei1mLnopKmgsbD0odC5tYXguei1mLnopKmgpOihhPSh0Lm1heC56LWYueikqaCxsPSh0Lm1pbi56LWYueikqaCksaT5sfHxhPnIpfHwoKGE+aXx8aSE9PWkpJiYoaT1hKSwobDxyfHxyIT09cikmJihyPWwpLHI8MCk/bnVsbDp0aGlzLmF0KGk+PTA/aTpyLGUpfWludGVyc2VjdHNCb3godCl7cmV0dXJuIHRoaXMuaW50ZXJzZWN0Qm94KHQsQ24pIT09bnVsbH1pbnRlcnNlY3RUcmlhbmdsZSh0LGUsaSxyLHMpe2R1LnN1YlZlY3RvcnMoZSx0KSxTYS5zdWJWZWN0b3JzKGksdCkscHUuY3Jvc3NWZWN0b3JzKGR1LFNhKTtsZXQgbz10aGlzLmRpcmVjdGlvbi5kb3QocHUpLGE7aWYobz4wKXtpZihyKXJldHVybiBudWxsO2E9MX1lbHNlIGlmKG88MClhPS0xLG89LW87ZWxzZSByZXR1cm4gbnVsbDtZbi5zdWJWZWN0b3JzKHRoaXMub3JpZ2luLHQpO2xldCBsPWEqdGhpcy5kaXJlY3Rpb24uZG90KFNhLmNyb3NzVmVjdG9ycyhZbixTYSkpO2lmKGw8MClyZXR1cm4gbnVsbDtsZXQgYz1hKnRoaXMuZGlyZWN0aW9uLmRvdChkdS5jcm9zcyhZbikpO2lmKGM8MHx8bCtjPm8pcmV0dXJuIG51bGw7bGV0IHU9LWEqWW4uZG90KHB1KTtyZXR1cm4gdTwwP251bGw6dGhpcy5hdCh1L28scyl9YXBwbHlNYXRyaXg0KHQpe3JldHVybiB0aGlzLm9yaWdpbi5hcHBseU1hdHJpeDQodCksdGhpcy5kaXJlY3Rpb24udHJhbnNmb3JtRGlyZWN0aW9uKHQpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lm9yaWdpbi5lcXVhbHModGhpcy5vcmlnaW4pJiZ0LmRpcmVjdGlvbi5lcXVhbHModGhpcy5kaXJlY3Rpb24pfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuY29weSh0aGlzKX19LHd0PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5lbGVtZW50cz1bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV0sYXJndW1lbnRzLmxlbmd0aD4wJiZjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiB0aGUgY29uc3RydWN0b3Igbm8gbG9uZ2VyIHJlYWRzIGFyZ3VtZW50cy4gdXNlIC5zZXQoKSBpbnN0ZWFkLiIpfXNldCh0LGUsaSxyLHMsbyxhLGwsYyx1LGgsZixkLGcseCx2KXtsZXQgbT10aGlzLmVsZW1lbnRzO3JldHVybiBtWzBdPXQsbVs0XT1lLG1bOF09aSxtWzEyXT1yLG1bMV09cyxtWzVdPW8sbVs5XT1hLG1bMTNdPWwsbVsyXT1jLG1bNl09dSxtWzEwXT1oLG1bMTRdPWYsbVszXT1kLG1bN109ZyxtWzExXT14LG1bMTVdPXYsdGhpc31pZGVudGl0eSgpe3JldHVybiB0aGlzLnNldCgxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxKSx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB3dCgpLmZyb21BcnJheSh0aGlzLmVsZW1lbnRzKX1jb3B5KHQpe2xldCBlPXRoaXMuZWxlbWVudHMsaT10LmVsZW1lbnRzO3JldHVybiBlWzBdPWlbMF0sZVsxXT1pWzFdLGVbMl09aVsyXSxlWzNdPWlbM10sZVs0XT1pWzRdLGVbNV09aVs1XSxlWzZdPWlbNl0sZVs3XT1pWzddLGVbOF09aVs4XSxlWzldPWlbOV0sZVsxMF09aVsxMF0sZVsxMV09aVsxMV0sZVsxMl09aVsxMl0sZVsxM109aVsxM10sZVsxNF09aVsxNF0sZVsxNV09aVsxNV0sdGhpc31jb3B5UG9zaXRpb24odCl7bGV0IGU9dGhpcy5lbGVtZW50cyxpPXQuZWxlbWVudHM7cmV0dXJuIGVbMTJdPWlbMTJdLGVbMTNdPWlbMTNdLGVbMTRdPWlbMTRdLHRoaXN9c2V0RnJvbU1hdHJpeDModCl7bGV0IGU9dC5lbGVtZW50cztyZXR1cm4gdGhpcy5zZXQoZVswXSxlWzNdLGVbNl0sMCxlWzFdLGVbNF0sZVs3XSwwLGVbMl0sZVs1XSxlWzhdLDAsMCwwLDAsMSksdGhpc31leHRyYWN0QmFzaXModCxlLGkpe3JldHVybiB0LnNldEZyb21NYXRyaXhDb2x1bW4odGhpcywwKSxlLnNldEZyb21NYXRyaXhDb2x1bW4odGhpcywxKSxpLnNldEZyb21NYXRyaXhDb2x1bW4odGhpcywyKSx0aGlzfW1ha2VCYXNpcyh0LGUsaSl7cmV0dXJuIHRoaXMuc2V0KHQueCxlLngsaS54LDAsdC55LGUueSxpLnksMCx0LnosZS56LGkueiwwLDAsMCwwLDEpLHRoaXN9ZXh0cmFjdFJvdGF0aW9uKHQpe2xldCBlPXRoaXMuZWxlbWVudHMsaT10LmVsZW1lbnRzLHI9MS95ci5zZXRGcm9tTWF0cml4Q29sdW1uKHQsMCkubGVuZ3RoKCkscz0xL3lyLnNldEZyb21NYXRyaXhDb2x1bW4odCwxKS5sZW5ndGgoKSxvPTEveXIuc2V0RnJvbU1hdHJpeENvbHVtbih0LDIpLmxlbmd0aCgpO3JldHVybiBlWzBdPWlbMF0qcixlWzFdPWlbMV0qcixlWzJdPWlbMl0qcixlWzNdPTAsZVs0XT1pWzRdKnMsZVs1XT1pWzVdKnMsZVs2XT1pWzZdKnMsZVs3XT0wLGVbOF09aVs4XSpvLGVbOV09aVs5XSpvLGVbMTBdPWlbMTBdKm8sZVsxMV09MCxlWzEyXT0wLGVbMTNdPTAsZVsxNF09MCxlWzE1XT0xLHRoaXN9bWFrZVJvdGF0aW9uRnJvbUV1bGVyKHQpe3QmJnQuaXNFdWxlcnx8Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLm1ha2VSb3RhdGlvbkZyb21FdWxlcigpIG5vdyBleHBlY3RzIGEgRXVsZXIgcm90YXRpb24gcmF0aGVyIHRoYW4gYSBWZWN0b3IzIGFuZCBvcmRlci4iKTtsZXQgZT10aGlzLmVsZW1lbnRzLGk9dC54LHI9dC55LHM9dC56LG89TWF0aC5jb3MoaSksYT1NYXRoLnNpbihpKSxsPU1hdGguY29zKHIpLGM9TWF0aC5zaW4ociksdT1NYXRoLmNvcyhzKSxoPU1hdGguc2luKHMpO2lmKHQub3JkZXI9PT0iWFlaIil7bGV0IGY9byp1LGQ9bypoLGc9YSp1LHg9YSpoO2VbMF09bCp1LGVbNF09LWwqaCxlWzhdPWMsZVsxXT1kK2cqYyxlWzVdPWYteCpjLGVbOV09LWEqbCxlWzJdPXgtZipjLGVbNl09ZytkKmMsZVsxMF09bypsfWVsc2UgaWYodC5vcmRlcj09PSJZWFoiKXtsZXQgZj1sKnUsZD1sKmgsZz1jKnUseD1jKmg7ZVswXT1mK3gqYSxlWzRdPWcqYS1kLGVbOF09bypjLGVbMV09bypoLGVbNV09byp1LGVbOV09LWEsZVsyXT1kKmEtZyxlWzZdPXgrZiphLGVbMTBdPW8qbH1lbHNlIGlmKHQub3JkZXI9PT0iWlhZIil7bGV0IGY9bCp1LGQ9bCpoLGc9Yyp1LHg9YypoO2VbMF09Zi14KmEsZVs0XT0tbypoLGVbOF09ZytkKmEsZVsxXT1kK2cqYSxlWzVdPW8qdSxlWzldPXgtZiphLGVbMl09LW8qYyxlWzZdPWEsZVsxMF09bypsfWVsc2UgaWYodC5vcmRlcj09PSJaWVgiKXtsZXQgZj1vKnUsZD1vKmgsZz1hKnUseD1hKmg7ZVswXT1sKnUsZVs0XT1nKmMtZCxlWzhdPWYqYyt4LGVbMV09bCpoLGVbNV09eCpjK2YsZVs5XT1kKmMtZyxlWzJdPS1jLGVbNl09YSpsLGVbMTBdPW8qbH1lbHNlIGlmKHQub3JkZXI9PT0iWVpYIil7bGV0IGY9bypsLGQ9bypjLGc9YSpsLHg9YSpjO2VbMF09bCp1LGVbNF09eC1mKmgsZVs4XT1nKmgrZCxlWzFdPWgsZVs1XT1vKnUsZVs5XT0tYSp1LGVbMl09LWMqdSxlWzZdPWQqaCtnLGVbMTBdPWYteCpofWVsc2UgaWYodC5vcmRlcj09PSJYWlkiKXtsZXQgZj1vKmwsZD1vKmMsZz1hKmwseD1hKmM7ZVswXT1sKnUsZVs0XT0taCxlWzhdPWMqdSxlWzFdPWYqaCt4LGVbNV09byp1LGVbOV09ZCpoLWcsZVsyXT1nKmgtZCxlWzZdPWEqdSxlWzEwXT14KmgrZn1yZXR1cm4gZVszXT0wLGVbN109MCxlWzExXT0wLGVbMTJdPTAsZVsxM109MCxlWzE0XT0wLGVbMTVdPTEsdGhpc31tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbih0KXtyZXR1cm4gdGhpcy5jb21wb3NlKHNNLHQsb00pfWxvb2tBdCh0LGUsaSl7bGV0IHI9dGhpcy5lbGVtZW50cztyZXR1cm4ga2Uuc3ViVmVjdG9ycyh0LGUpLGtlLmxlbmd0aFNxKCk9PT0wJiYoa2Uuej0xKSxrZS5ub3JtYWxpemUoKSxabi5jcm9zc1ZlY3RvcnMoaSxrZSksWm4ubGVuZ3RoU3EoKT09PTAmJihNYXRoLmFicyhpLnopPT09MT9rZS54Kz0xZS00OmtlLnorPTFlLTQsa2Uubm9ybWFsaXplKCksWm4uY3Jvc3NWZWN0b3JzKGksa2UpKSxabi5ub3JtYWxpemUoKSxFYS5jcm9zc1ZlY3RvcnMoa2UsWm4pLHJbMF09Wm4ueCxyWzRdPUVhLngscls4XT1rZS54LHJbMV09Wm4ueSxyWzVdPUVhLnkscls5XT1rZS55LHJbMl09Wm4ueixyWzZdPUVhLnosclsxMF09a2Uueix0aGlzfW11bHRpcGx5KHQsZSl7cmV0dXJuIGUhPT12b2lkIDA/KGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm11bHRpcGx5KCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAubXVsdGlwbHlNYXRyaWNlcyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5tdWx0aXBseU1hdHJpY2VzKHQsZSkpOnRoaXMubXVsdGlwbHlNYXRyaWNlcyh0aGlzLHQpfXByZW11bHRpcGx5KHQpe3JldHVybiB0aGlzLm11bHRpcGx5TWF0cmljZXModCx0aGlzKX1tdWx0aXBseU1hdHJpY2VzKHQsZSl7bGV0IGk9dC5lbGVtZW50cyxyPWUuZWxlbWVudHMscz10aGlzLmVsZW1lbnRzLG89aVswXSxhPWlbNF0sbD1pWzhdLGM9aVsxMl0sdT1pWzFdLGg9aVs1XSxmPWlbOV0sZD1pWzEzXSxnPWlbMl0seD1pWzZdLHY9aVsxMF0sbT1pWzE0XSxwPWlbM10sYj1pWzddLF89aVsxMV0sUz1pWzE1XSxMPXJbMF0sQT1yWzRdLEg9cls4XSx0dD1yWzEyXSxYPXJbMV0seT1yWzVdLFI9cls5XSxEPXJbMTNdLEY9clsyXSx6PXJbNl0sTj1yWzEwXSxWPXJbMTRdLFE9clszXSxhdD1yWzddLEc9clsxMV0sJD1yWzE1XTtyZXR1cm4gc1swXT1vKkwrYSpYK2wqRitjKlEsc1s0XT1vKkErYSp5K2wqeitjKmF0LHNbOF09bypIK2EqUitsKk4rYypHLHNbMTJdPW8qdHQrYSpEK2wqVitjKiQsc1sxXT11KkwraCpYK2YqRitkKlEsc1s1XT11KkEraCp5K2YqeitkKmF0LHNbOV09dSpIK2gqUitmKk4rZCpHLHNbMTNdPXUqdHQraCpEK2YqVitkKiQsc1syXT1nKkwreCpYK3YqRittKlEsc1s2XT1nKkEreCp5K3YqeittKmF0LHNbMTBdPWcqSCt4KlIrdipOK20qRyxzWzE0XT1nKnR0K3gqRCt2KlYrbSokLHNbM109cCpMK2IqWCtfKkYrUypRLHNbN109cCpBK2IqeStfKnorUyphdCxzWzExXT1wKkgrYipSK18qTitTKkcsc1sxNV09cCp0dCtiKkQrXypWK1MqJCx0aGlzfW11bHRpcGx5U2NhbGFyKHQpe2xldCBlPXRoaXMuZWxlbWVudHM7cmV0dXJuIGVbMF0qPXQsZVs0XSo9dCxlWzhdKj10LGVbMTJdKj10LGVbMV0qPXQsZVs1XSo9dCxlWzldKj10LGVbMTNdKj10LGVbMl0qPXQsZVs2XSo9dCxlWzEwXSo9dCxlWzE0XSo9dCxlWzNdKj10LGVbN10qPXQsZVsxMV0qPXQsZVsxNV0qPXQsdGhpc31kZXRlcm1pbmFudCgpe2xldCB0PXRoaXMuZWxlbWVudHMsZT10WzBdLGk9dFs0XSxyPXRbOF0scz10WzEyXSxvPXRbMV0sYT10WzVdLGw9dFs5XSxjPXRbMTNdLHU9dFsyXSxoPXRbNl0sZj10WzEwXSxkPXRbMTRdLGc9dFszXSx4PXRbN10sdj10WzExXSxtPXRbMTVdO3JldHVybiBnKigrcypsKmgtcipjKmgtcyphKmYraSpjKmYrciphKmQtaSpsKmQpK3gqKCtlKmwqZC1lKmMqZitzKm8qZi1yKm8qZCtyKmMqdS1zKmwqdSkrdiooK2UqYypoLWUqYSpkLXMqbypoK2kqbypkK3MqYSp1LWkqYyp1KSttKigtciphKnUtZSpsKmgrZSphKmYrcipvKmgtaSpvKmYraSpsKnUpfXRyYW5zcG9zZSgpe2xldCB0PXRoaXMuZWxlbWVudHMsZTtyZXR1cm4gZT10WzFdLHRbMV09dFs0XSx0WzRdPWUsZT10WzJdLHRbMl09dFs4XSx0WzhdPWUsZT10WzZdLHRbNl09dFs5XSx0WzldPWUsZT10WzNdLHRbM109dFsxMl0sdFsxMl09ZSxlPXRbN10sdFs3XT10WzEzXSx0WzEzXT1lLGU9dFsxMV0sdFsxMV09dFsxNF0sdFsxNF09ZSx0aGlzfXNldFBvc2l0aW9uKHQsZSxpKXtsZXQgcj10aGlzLmVsZW1lbnRzO3JldHVybiB0LmlzVmVjdG9yMz8oclsxMl09dC54LHJbMTNdPXQueSxyWzE0XT10LnopOihyWzEyXT10LHJbMTNdPWUsclsxNF09aSksdGhpc31pbnZlcnQoKXtsZXQgdD10aGlzLmVsZW1lbnRzLGU9dFswXSxpPXRbMV0scj10WzJdLHM9dFszXSxvPXRbNF0sYT10WzVdLGw9dFs2XSxjPXRbN10sdT10WzhdLGg9dFs5XSxmPXRbMTBdLGQ9dFsxMV0sZz10WzEyXSx4PXRbMTNdLHY9dFsxNF0sbT10WzE1XSxwPWgqdipjLXgqZipjK3gqbCpkLWEqdipkLWgqbCptK2EqZiptLGI9ZypmKmMtdSp2KmMtZypsKmQrbyp2KmQrdSpsKm0tbypmKm0sXz11KngqYy1nKmgqYytnKmEqZC1vKngqZC11KmEqbStvKmgqbSxTPWcqaCpsLXUqeCpsLWcqYSpmK28qeCpmK3UqYSp2LW8qaCp2LEw9ZSpwK2kqYityKl8rcypTO2lmKEw9PT0wKXJldHVybiB0aGlzLnNldCgwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwKTtsZXQgQT0xL0w7cmV0dXJuIHRbMF09cCpBLHRbMV09KHgqZipzLWgqdipzLXgqcipkK2kqdipkK2gqciptLWkqZiptKSpBLHRbMl09KGEqdipzLXgqbCpzK3gqcipjLWkqdipjLWEqciptK2kqbCptKSpBLHRbM109KGgqbCpzLWEqZipzLWgqcipjK2kqZipjK2EqcipkLWkqbCpkKSpBLHRbNF09YipBLHRbNV09KHUqdipzLWcqZipzK2cqcipkLWUqdipkLXUqciptK2UqZiptKSpBLHRbNl09KGcqbCpzLW8qdipzLWcqcipjK2UqdipjK28qciptLWUqbCptKSpBLHRbN109KG8qZipzLXUqbCpzK3UqcipjLWUqZipjLW8qcipkK2UqbCpkKSpBLHRbOF09XypBLHRbOV09KGcqaCpzLXUqeCpzLWcqaSpkK2UqeCpkK3UqaSptLWUqaCptKSpBLHRbMTBdPShvKngqcy1nKmEqcytnKmkqYy1lKngqYy1vKmkqbStlKmEqbSkqQSx0WzExXT0odSphKnMtbypoKnMtdSppKmMrZSpoKmMrbyppKmQtZSphKmQpKkEsdFsxMl09UypBLHRbMTNdPSh1Kngqci1nKmgqcitnKmkqZi1lKngqZi11KmkqditlKmgqdikqQSx0WzE0XT0oZyphKnItbyp4KnItZyppKmwrZSp4KmwrbyppKnYtZSphKnYpKkEsdFsxNV09KG8qaCpyLXUqYSpyK3UqaSpsLWUqaCpsLW8qaSpmK2UqYSpmKSpBLHRoaXN9c2NhbGUodCl7bGV0IGU9dGhpcy5lbGVtZW50cyxpPXQueCxyPXQueSxzPXQuejtyZXR1cm4gZVswXSo9aSxlWzRdKj1yLGVbOF0qPXMsZVsxXSo9aSxlWzVdKj1yLGVbOV0qPXMsZVsyXSo9aSxlWzZdKj1yLGVbMTBdKj1zLGVbM10qPWksZVs3XSo9cixlWzExXSo9cyx0aGlzfWdldE1heFNjYWxlT25BeGlzKCl7bGV0IHQ9dGhpcy5lbGVtZW50cyxlPXRbMF0qdFswXSt0WzFdKnRbMV0rdFsyXSp0WzJdLGk9dFs0XSp0WzRdK3RbNV0qdFs1XSt0WzZdKnRbNl0scj10WzhdKnRbOF0rdFs5XSp0WzldK3RbMTBdKnRbMTBdO3JldHVybiBNYXRoLnNxcnQoTWF0aC5tYXgoZSxpLHIpKX1tYWtlVHJhbnNsYXRpb24odCxlLGkpe3JldHVybiB0aGlzLnNldCgxLDAsMCx0LDAsMSwwLGUsMCwwLDEsaSwwLDAsMCwxKSx0aGlzfW1ha2VSb3RhdGlvblgodCl7bGV0IGU9TWF0aC5jb3ModCksaT1NYXRoLnNpbih0KTtyZXR1cm4gdGhpcy5zZXQoMSwwLDAsMCwwLGUsLWksMCwwLGksZSwwLDAsMCwwLDEpLHRoaXN9bWFrZVJvdGF0aW9uWSh0KXtsZXQgZT1NYXRoLmNvcyh0KSxpPU1hdGguc2luKHQpO3JldHVybiB0aGlzLnNldChlLDAsaSwwLDAsMSwwLDAsLWksMCxlLDAsMCwwLDAsMSksdGhpc31tYWtlUm90YXRpb25aKHQpe2xldCBlPU1hdGguY29zKHQpLGk9TWF0aC5zaW4odCk7cmV0dXJuIHRoaXMuc2V0KGUsLWksMCwwLGksZSwwLDAsMCwwLDEsMCwwLDAsMCwxKSx0aGlzfW1ha2VSb3RhdGlvbkF4aXModCxlKXtsZXQgaT1NYXRoLmNvcyhlKSxyPU1hdGguc2luKGUpLHM9MS1pLG89dC54LGE9dC55LGw9dC56LGM9cypvLHU9cyphO3JldHVybiB0aGlzLnNldChjKm8raSxjKmEtcipsLGMqbCtyKmEsMCxjKmErcipsLHUqYStpLHUqbC1yKm8sMCxjKmwtciphLHUqbCtyKm8scypsKmwraSwwLDAsMCwwLDEpLHRoaXN9bWFrZVNjYWxlKHQsZSxpKXtyZXR1cm4gdGhpcy5zZXQodCwwLDAsMCwwLGUsMCwwLDAsMCxpLDAsMCwwLDAsMSksdGhpc31tYWtlU2hlYXIodCxlLGkscixzLG8pe3JldHVybiB0aGlzLnNldCgxLGkscywwLHQsMSxvLDAsZSxyLDEsMCwwLDAsMCwxKSx0aGlzfWNvbXBvc2UodCxlLGkpe2xldCByPXRoaXMuZWxlbWVudHMscz1lLl94LG89ZS5feSxhPWUuX3osbD1lLl93LGM9cytzLHU9bytvLGg9YSthLGY9cypjLGQ9cyp1LGc9cypoLHg9byp1LHY9bypoLG09YSpoLHA9bCpjLGI9bCp1LF89bCpoLFM9aS54LEw9aS55LEE9aS56O3JldHVybiByWzBdPSgxLSh4K20pKSpTLHJbMV09KGQrXykqUyxyWzJdPShnLWIpKlMsclszXT0wLHJbNF09KGQtXykqTCxyWzVdPSgxLShmK20pKSpMLHJbNl09KHYrcCkqTCxyWzddPTAscls4XT0oZytiKSpBLHJbOV09KHYtcCkqQSxyWzEwXT0oMS0oZit4KSkqQSxyWzExXT0wLHJbMTJdPXQueCxyWzEzXT10LnksclsxNF09dC56LHJbMTVdPTEsdGhpc31kZWNvbXBvc2UodCxlLGkpe2xldCByPXRoaXMuZWxlbWVudHMscz15ci5zZXQoclswXSxyWzFdLHJbMl0pLmxlbmd0aCgpLG89eXIuc2V0KHJbNF0scls1XSxyWzZdKS5sZW5ndGgoKSxhPXlyLnNldChyWzhdLHJbOV0sclsxMF0pLmxlbmd0aCgpO3RoaXMuZGV0ZXJtaW5hbnQoKTwwJiYocz0tcyksdC54PXJbMTJdLHQueT1yWzEzXSx0Lno9clsxNF0sS2UuY29weSh0aGlzKTtsZXQgYz0xL3MsdT0xL28saD0xL2E7cmV0dXJuIEtlLmVsZW1lbnRzWzBdKj1jLEtlLmVsZW1lbnRzWzFdKj1jLEtlLmVsZW1lbnRzWzJdKj1jLEtlLmVsZW1lbnRzWzRdKj11LEtlLmVsZW1lbnRzWzVdKj11LEtlLmVsZW1lbnRzWzZdKj11LEtlLmVsZW1lbnRzWzhdKj1oLEtlLmVsZW1lbnRzWzldKj1oLEtlLmVsZW1lbnRzWzEwXSo9aCxlLnNldEZyb21Sb3RhdGlvbk1hdHJpeChLZSksaS54PXMsaS55PW8saS56PWEsdGhpc31tYWtlUGVyc3BlY3RpdmUodCxlLGkscixzLG8pe289PT12b2lkIDAmJmNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm1ha2VQZXJzcGVjdGl2ZSgpIGhhcyBiZWVuIHJlZGVmaW5lZCBhbmQgaGFzIGEgbmV3IHNpZ25hdHVyZS4gUGxlYXNlIGNoZWNrIHRoZSBkb2NzLiIpO2xldCBhPXRoaXMuZWxlbWVudHMsbD0yKnMvKGUtdCksYz0yKnMvKGktciksdT0oZSt0KS8oZS10KSxoPShpK3IpLyhpLXIpLGY9LShvK3MpLyhvLXMpLGQ9LTIqbypzLyhvLXMpO3JldHVybiBhWzBdPWwsYVs0XT0wLGFbOF09dSxhWzEyXT0wLGFbMV09MCxhWzVdPWMsYVs5XT1oLGFbMTNdPTAsYVsyXT0wLGFbNl09MCxhWzEwXT1mLGFbMTRdPWQsYVszXT0wLGFbN109MCxhWzExXT0tMSxhWzE1XT0wLHRoaXN9bWFrZU9ydGhvZ3JhcGhpYyh0LGUsaSxyLHMsbyl7bGV0IGE9dGhpcy5lbGVtZW50cyxsPTEvKGUtdCksYz0xLyhpLXIpLHU9MS8oby1zKSxoPShlK3QpKmwsZj0oaStyKSpjLGQ9KG8rcykqdTtyZXR1cm4gYVswXT0yKmwsYVs0XT0wLGFbOF09MCxhWzEyXT0taCxhWzFdPTAsYVs1XT0yKmMsYVs5XT0wLGFbMTNdPS1mLGFbMl09MCxhWzZdPTAsYVsxMF09LTIqdSxhWzE0XT0tZCxhWzNdPTAsYVs3XT0wLGFbMTFdPTAsYVsxNV09MSx0aGlzfWVxdWFscyh0KXtsZXQgZT10aGlzLmVsZW1lbnRzLGk9dC5lbGVtZW50cztmb3IobGV0IHI9MDtyPDE2O3IrKylpZihlW3JdIT09aVtyXSlyZXR1cm4hMTtyZXR1cm4hMH1mcm9tQXJyYXkodCxlPTApe2ZvcihsZXQgaT0wO2k8MTY7aSsrKXRoaXMuZWxlbWVudHNbaV09dFtpK2VdO3JldHVybiB0aGlzfXRvQXJyYXkodD1bXSxlPTApe2xldCBpPXRoaXMuZWxlbWVudHM7cmV0dXJuIHRbZV09aVswXSx0W2UrMV09aVsxXSx0W2UrMl09aVsyXSx0W2UrM109aVszXSx0W2UrNF09aVs0XSx0W2UrNV09aVs1XSx0W2UrNl09aVs2XSx0W2UrN109aVs3XSx0W2UrOF09aVs4XSx0W2UrOV09aVs5XSx0W2UrMTBdPWlbMTBdLHRbZSsxMV09aVsxMV0sdFtlKzEyXT1pWzEyXSx0W2UrMTNdPWlbMTNdLHRbZSsxNF09aVsxNF0sdFtlKzE1XT1pWzE1XSx0fX07d3QucHJvdG90eXBlLmlzTWF0cml4ND0hMDt2YXIgeXI9bmV3IFQsS2U9bmV3IHd0LHNNPW5ldyBUKDAsMCwwKSxvTT1uZXcgVCgxLDEsMSksWm49bmV3IFQsRWE9bmV3IFQsa2U9bmV3IFQsb2c9bmV3IHd0LGFnPW5ldyBFZSxhaT1jbGFzc3tjb25zdHJ1Y3Rvcih0PTAsZT0wLGk9MCxyPWFpLkRlZmF1bHRPcmRlcil7dGhpcy5feD10LHRoaXMuX3k9ZSx0aGlzLl96PWksdGhpcy5fb3JkZXI9cn1nZXQgeCgpe3JldHVybiB0aGlzLl94fXNldCB4KHQpe3RoaXMuX3g9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IHkoKXtyZXR1cm4gdGhpcy5feX1zZXQgeSh0KXt0aGlzLl95PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCB6KCl7cmV0dXJuIHRoaXMuX3p9c2V0IHoodCl7dGhpcy5fej10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgb3JkZXIoKXtyZXR1cm4gdGhpcy5fb3JkZXJ9c2V0IG9yZGVyKHQpe3RoaXMuX29yZGVyPXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfXNldCh0LGUsaSxyPXRoaXMuX29yZGVyKXtyZXR1cm4gdGhpcy5feD10LHRoaXMuX3k9ZSx0aGlzLl96PWksdGhpcy5fb3JkZXI9cix0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLl94LHRoaXMuX3ksdGhpcy5feix0aGlzLl9vcmRlcil9Y29weSh0KXtyZXR1cm4gdGhpcy5feD10Ll94LHRoaXMuX3k9dC5feSx0aGlzLl96PXQuX3osdGhpcy5fb3JkZXI9dC5fb3JkZXIsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9c2V0RnJvbVJvdGF0aW9uTWF0cml4KHQsZT10aGlzLl9vcmRlcixpPSEwKXtsZXQgcj10LmVsZW1lbnRzLHM9clswXSxvPXJbNF0sYT1yWzhdLGw9clsxXSxjPXJbNV0sdT1yWzldLGg9clsyXSxmPXJbNl0sZD1yWzEwXTtzd2l0Y2goZSl7Y2FzZSJYWVoiOnRoaXMuX3k9TWF0aC5hc2luKEllKGEsLTEsMSkpLE1hdGguYWJzKGEpPC45OTk5OTk5Pyh0aGlzLl94PU1hdGguYXRhbjIoLXUsZCksdGhpcy5fej1NYXRoLmF0YW4yKC1vLHMpKToodGhpcy5feD1NYXRoLmF0YW4yKGYsYyksdGhpcy5fej0wKTticmVhaztjYXNlIllYWiI6dGhpcy5feD1NYXRoLmFzaW4oLUllKHUsLTEsMSkpLE1hdGguYWJzKHUpPC45OTk5OTk5Pyh0aGlzLl95PU1hdGguYXRhbjIoYSxkKSx0aGlzLl96PU1hdGguYXRhbjIobCxjKSk6KHRoaXMuX3k9TWF0aC5hdGFuMigtaCxzKSx0aGlzLl96PTApO2JyZWFrO2Nhc2UiWlhZIjp0aGlzLl94PU1hdGguYXNpbihJZShmLC0xLDEpKSxNYXRoLmFicyhmKTwuOTk5OTk5OT8odGhpcy5feT1NYXRoLmF0YW4yKC1oLGQpLHRoaXMuX3o9TWF0aC5hdGFuMigtbyxjKSk6KHRoaXMuX3k9MCx0aGlzLl96PU1hdGguYXRhbjIobCxzKSk7YnJlYWs7Y2FzZSJaWVgiOnRoaXMuX3k9TWF0aC5hc2luKC1JZShoLC0xLDEpKSxNYXRoLmFicyhoKTwuOTk5OTk5OT8odGhpcy5feD1NYXRoLmF0YW4yKGYsZCksdGhpcy5fej1NYXRoLmF0YW4yKGwscykpOih0aGlzLl94PTAsdGhpcy5fej1NYXRoLmF0YW4yKC1vLGMpKTticmVhaztjYXNlIllaWCI6dGhpcy5fej1NYXRoLmFzaW4oSWUobCwtMSwxKSksTWF0aC5hYnMobCk8Ljk5OTk5OTk/KHRoaXMuX3g9TWF0aC5hdGFuMigtdSxjKSx0aGlzLl95PU1hdGguYXRhbjIoLWgscykpOih0aGlzLl94PTAsdGhpcy5feT1NYXRoLmF0YW4yKGEsZCkpO2JyZWFrO2Nhc2UiWFpZIjp0aGlzLl96PU1hdGguYXNpbigtSWUobywtMSwxKSksTWF0aC5hYnMobyk8Ljk5OTk5OTk/KHRoaXMuX3g9TWF0aC5hdGFuMihmLGMpLHRoaXMuX3k9TWF0aC5hdGFuMihhLHMpKToodGhpcy5feD1NYXRoLmF0YW4yKC11LGQpLHRoaXMuX3k9MCk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLndhcm4oIlRIUkVFLkV1bGVyOiAuc2V0RnJvbVJvdGF0aW9uTWF0cml4KCkgZW5jb3VudGVyZWQgYW4gdW5rbm93biBvcmRlcjogIitlKX1yZXR1cm4gdGhpcy5fb3JkZXI9ZSxpPT09ITAmJnRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21RdWF0ZXJuaW9uKHQsZSxpKXtyZXR1cm4gb2cubWFrZVJvdGF0aW9uRnJvbVF1YXRlcm5pb24odCksdGhpcy5zZXRGcm9tUm90YXRpb25NYXRyaXgob2csZSxpKX1zZXRGcm9tVmVjdG9yMyh0LGU9dGhpcy5fb3JkZXIpe3JldHVybiB0aGlzLnNldCh0LngsdC55LHQueixlKX1yZW9yZGVyKHQpe3JldHVybiBhZy5zZXRGcm9tRXVsZXIodGhpcyksdGhpcy5zZXRGcm9tUXVhdGVybmlvbihhZyx0KX1lcXVhbHModCl7cmV0dXJuIHQuX3g9PT10aGlzLl94JiZ0Ll95PT09dGhpcy5feSYmdC5fej09PXRoaXMuX3omJnQuX29yZGVyPT09dGhpcy5fb3JkZXJ9ZnJvbUFycmF5KHQpe3JldHVybiB0aGlzLl94PXRbMF0sdGhpcy5feT10WzFdLHRoaXMuX3o9dFsyXSx0WzNdIT09dm9pZCAwJiYodGhpcy5fb3JkZXI9dFszXSksdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7cmV0dXJuIHRbZV09dGhpcy5feCx0W2UrMV09dGhpcy5feSx0W2UrMl09dGhpcy5feix0W2UrM109dGhpcy5fb3JkZXIsdH10b1ZlY3RvcjModCl7cmV0dXJuIHQ/dC5zZXQodGhpcy5feCx0aGlzLl95LHRoaXMuX3opOm5ldyBUKHRoaXMuX3gsdGhpcy5feSx0aGlzLl96KX1fb25DaGFuZ2UodCl7cmV0dXJuIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2s9dCx0aGlzfV9vbkNoYW5nZUNhbGxiYWNrKCl7fX07YWkucHJvdG90eXBlLmlzRXVsZXI9ITA7YWkuRGVmYXVsdE9yZGVyPSJYWVoiO2FpLlJvdGF0aW9uT3JkZXJzPVsiWFlaIiwiWVpYIiwiWlhZIiwiWFpZIiwiWVhaIiwiWllYIl07dmFyIGlsPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5tYXNrPTF9c2V0KHQpe3RoaXMubWFzaz0oMTw8dHwwKT4+PjB9ZW5hYmxlKHQpe3RoaXMubWFza3w9MTw8dHwwfWVuYWJsZUFsbCgpe3RoaXMubWFzaz0tMX10b2dnbGUodCl7dGhpcy5tYXNrXj0xPDx0fDB9ZGlzYWJsZSh0KXt0aGlzLm1hc2smPX4oMTw8dHwwKX1kaXNhYmxlQWxsKCl7dGhpcy5tYXNrPTB9dGVzdCh0KXtyZXR1cm4odGhpcy5tYXNrJnQubWFzaykhPT0wfWlzRW5hYmxlZCh0KXtyZXR1cm4odGhpcy5tYXNrJigxPDx0fDApKSE9PTB9fSxhTT0wLGxnPW5ldyBULHZyPW5ldyBFZSxSbj1uZXcgd3QsVGE9bmV3IFQsSHM9bmV3IFQsbE09bmV3IFQsY009bmV3IEVlLGNnPW5ldyBUKDEsMCwwKSx1Zz1uZXcgVCgwLDEsMCksaGc9bmV3IFQoMCwwLDEpLHVNPXt0eXBlOiJhZGRlZCJ9LGZnPXt0eXBlOiJyZW1vdmVkIn0sa3Q9Y2xhc3MgZXh0ZW5kcyBJbntjb25zdHJ1Y3Rvcigpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlkIix7dmFsdWU6YU0rK30pLHRoaXMudXVpZD10bigpLHRoaXMubmFtZT0iIix0aGlzLnR5cGU9Ik9iamVjdDNEIix0aGlzLnBhcmVudD1udWxsLHRoaXMuY2hpbGRyZW49W10sdGhpcy51cD1rdC5EZWZhdWx0VXAuY2xvbmUoKTtsZXQgdD1uZXcgVCxlPW5ldyBhaSxpPW5ldyBFZSxyPW5ldyBUKDEsMSwxKTtmdW5jdGlvbiBzKCl7aS5zZXRGcm9tRXVsZXIoZSwhMSl9ZnVuY3Rpb24gbygpe2Uuc2V0RnJvbVF1YXRlcm5pb24oaSx2b2lkIDAsITEpfWUuX29uQ2hhbmdlKHMpLGkuX29uQ2hhbmdlKG8pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMse3Bvc2l0aW9uOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTp0fSxyb3RhdGlvbjp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6ZX0scXVhdGVybmlvbjp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6aX0sc2NhbGU6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOnJ9LG1vZGVsVmlld01hdHJpeDp7dmFsdWU6bmV3IHd0fSxub3JtYWxNYXRyaXg6e3ZhbHVlOm5ldyBkZX19KSx0aGlzLm1hdHJpeD1uZXcgd3QsdGhpcy5tYXRyaXhXb3JsZD1uZXcgd3QsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPWt0LkRlZmF1bHRNYXRyaXhBdXRvVXBkYXRlLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMSx0aGlzLmxheWVycz1uZXcgaWwsdGhpcy52aXNpYmxlPSEwLHRoaXMuY2FzdFNoYWRvdz0hMSx0aGlzLnJlY2VpdmVTaGFkb3c9ITEsdGhpcy5mcnVzdHVtQ3VsbGVkPSEwLHRoaXMucmVuZGVyT3JkZXI9MCx0aGlzLmFuaW1hdGlvbnM9W10sdGhpcy51c2VyRGF0YT17fX1vbkJlZm9yZVJlbmRlcigpe31vbkFmdGVyUmVuZGVyKCl7fWFwcGx5TWF0cml4NCh0KXt0aGlzLm1hdHJpeEF1dG9VcGRhdGUmJnRoaXMudXBkYXRlTWF0cml4KCksdGhpcy5tYXRyaXgucHJlbXVsdGlwbHkodCksdGhpcy5tYXRyaXguZGVjb21wb3NlKHRoaXMucG9zaXRpb24sdGhpcy5xdWF0ZXJuaW9uLHRoaXMuc2NhbGUpfWFwcGx5UXVhdGVybmlvbih0KXtyZXR1cm4gdGhpcy5xdWF0ZXJuaW9uLnByZW11bHRpcGx5KHQpLHRoaXN9c2V0Um90YXRpb25Gcm9tQXhpc0FuZ2xlKHQsZSl7dGhpcy5xdWF0ZXJuaW9uLnNldEZyb21BeGlzQW5nbGUodCxlKX1zZXRSb3RhdGlvbkZyb21FdWxlcih0KXt0aGlzLnF1YXRlcm5pb24uc2V0RnJvbUV1bGVyKHQsITApfXNldFJvdGF0aW9uRnJvbU1hdHJpeCh0KXt0aGlzLnF1YXRlcm5pb24uc2V0RnJvbVJvdGF0aW9uTWF0cml4KHQpfXNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24odCl7dGhpcy5xdWF0ZXJuaW9uLmNvcHkodCl9cm90YXRlT25BeGlzKHQsZSl7cmV0dXJuIHZyLnNldEZyb21BeGlzQW5nbGUodCxlKSx0aGlzLnF1YXRlcm5pb24ubXVsdGlwbHkodnIpLHRoaXN9cm90YXRlT25Xb3JsZEF4aXModCxlKXtyZXR1cm4gdnIuc2V0RnJvbUF4aXNBbmdsZSh0LGUpLHRoaXMucXVhdGVybmlvbi5wcmVtdWx0aXBseSh2ciksdGhpc31yb3RhdGVYKHQpe3JldHVybiB0aGlzLnJvdGF0ZU9uQXhpcyhjZyx0KX1yb3RhdGVZKHQpe3JldHVybiB0aGlzLnJvdGF0ZU9uQXhpcyh1Zyx0KX1yb3RhdGVaKHQpe3JldHVybiB0aGlzLnJvdGF0ZU9uQXhpcyhoZyx0KX10cmFuc2xhdGVPbkF4aXModCxlKXtyZXR1cm4gbGcuY29weSh0KS5hcHBseVF1YXRlcm5pb24odGhpcy5xdWF0ZXJuaW9uKSx0aGlzLnBvc2l0aW9uLmFkZChsZy5tdWx0aXBseVNjYWxhcihlKSksdGhpc310cmFuc2xhdGVYKHQpe3JldHVybiB0aGlzLnRyYW5zbGF0ZU9uQXhpcyhjZyx0KX10cmFuc2xhdGVZKHQpe3JldHVybiB0aGlzLnRyYW5zbGF0ZU9uQXhpcyh1Zyx0KX10cmFuc2xhdGVaKHQpe3JldHVybiB0aGlzLnRyYW5zbGF0ZU9uQXhpcyhoZyx0KX1sb2NhbFRvV29ybGQodCl7cmV0dXJuIHQuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpfXdvcmxkVG9Mb2NhbCh0KXtyZXR1cm4gdC5hcHBseU1hdHJpeDQoUm4uY29weSh0aGlzLm1hdHJpeFdvcmxkKS5pbnZlcnQoKSl9bG9va0F0KHQsZSxpKXt0LmlzVmVjdG9yMz9UYS5jb3B5KHQpOlRhLnNldCh0LGUsaSk7bGV0IHI9dGhpcy5wYXJlbnQ7dGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksSHMuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHRoaXMubWF0cml4V29ybGQpLHRoaXMuaXNDYW1lcmF8fHRoaXMuaXNMaWdodD9Sbi5sb29rQXQoSHMsVGEsdGhpcy51cCk6Um4ubG9va0F0KFRhLEhzLHRoaXMudXApLHRoaXMucXVhdGVybmlvbi5zZXRGcm9tUm90YXRpb25NYXRyaXgoUm4pLHImJihSbi5leHRyYWN0Um90YXRpb24oci5tYXRyaXhXb3JsZCksdnIuc2V0RnJvbVJvdGF0aW9uTWF0cml4KFJuKSx0aGlzLnF1YXRlcm5pb24ucHJlbXVsdGlwbHkodnIuaW52ZXJ0KCkpKX1hZGQodCl7aWYoYXJndW1lbnRzLmxlbmd0aD4xKXtmb3IobGV0IGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRoaXMuYWRkKGFyZ3VtZW50c1tlXSk7cmV0dXJuIHRoaXN9cmV0dXJuIHQ9PT10aGlzPyhjb25zb2xlLmVycm9yKCJUSFJFRS5PYmplY3QzRC5hZGQ6IG9iamVjdCBjYW4ndCBiZSBhZGRlZCBhcyBhIGNoaWxkIG9mIGl0c2VsZi4iLHQpLHRoaXMpOih0JiZ0LmlzT2JqZWN0M0Q/KHQucGFyZW50IT09bnVsbCYmdC5wYXJlbnQucmVtb3ZlKHQpLHQucGFyZW50PXRoaXMsdGhpcy5jaGlsZHJlbi5wdXNoKHQpLHQuZGlzcGF0Y2hFdmVudCh1TSkpOmNvbnNvbGUuZXJyb3IoIlRIUkVFLk9iamVjdDNELmFkZDogb2JqZWN0IG5vdCBhbiBpbnN0YW5jZSBvZiBUSFJFRS5PYmplY3QzRC4iLHQpLHRoaXMpfXJlbW92ZSh0KXtpZihhcmd1bWVudHMubGVuZ3RoPjEpe2ZvcihsZXQgaT0wO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspdGhpcy5yZW1vdmUoYXJndW1lbnRzW2ldKTtyZXR1cm4gdGhpc31sZXQgZT10aGlzLmNoaWxkcmVuLmluZGV4T2YodCk7cmV0dXJuIGUhPT0tMSYmKHQucGFyZW50PW51bGwsdGhpcy5jaGlsZHJlbi5zcGxpY2UoZSwxKSx0LmRpc3BhdGNoRXZlbnQoZmcpKSx0aGlzfXJlbW92ZUZyb21QYXJlbnQoKXtsZXQgdD10aGlzLnBhcmVudDtyZXR1cm4gdCE9PW51bGwmJnQucmVtb3ZlKHRoaXMpLHRoaXN9Y2xlYXIoKXtmb3IobGV0IHQ9MDt0PHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3QrKyl7bGV0IGU9dGhpcy5jaGlsZHJlblt0XTtlLnBhcmVudD1udWxsLGUuZGlzcGF0Y2hFdmVudChmZyl9cmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoPTAsdGhpc31hdHRhY2godCl7cmV0dXJuIHRoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLFJuLmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCksdC5wYXJlbnQhPT1udWxsJiYodC5wYXJlbnQudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLFJuLm11bHRpcGx5KHQucGFyZW50Lm1hdHJpeFdvcmxkKSksdC5hcHBseU1hdHJpeDQoUm4pLHRoaXMuYWRkKHQpLHQudXBkYXRlV29ybGRNYXRyaXgoITEsITApLHRoaXN9Z2V0T2JqZWN0QnlJZCh0KXtyZXR1cm4gdGhpcy5nZXRPYmplY3RCeVByb3BlcnR5KCJpZCIsdCl9Z2V0T2JqZWN0QnlOYW1lKHQpe3JldHVybiB0aGlzLmdldE9iamVjdEJ5UHJvcGVydHkoIm5hbWUiLHQpfWdldE9iamVjdEJ5UHJvcGVydHkodCxlKXtpZih0aGlzW3RdPT09ZSlyZXR1cm4gdGhpcztmb3IobGV0IGk9MCxyPXRoaXMuY2hpbGRyZW4ubGVuZ3RoO2k8cjtpKyspe2xldCBvPXRoaXMuY2hpbGRyZW5baV0uZ2V0T2JqZWN0QnlQcm9wZXJ0eSh0LGUpO2lmKG8hPT12b2lkIDApcmV0dXJuIG99fWdldFdvcmxkUG9zaXRpb24odCl7cmV0dXJuIHRoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHRoaXMubWF0cml4V29ybGQpfWdldFdvcmxkUXVhdGVybmlvbih0KXtyZXR1cm4gdGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksdGhpcy5tYXRyaXhXb3JsZC5kZWNvbXBvc2UoSHMsdCxsTSksdH1nZXRXb3JsZFNjYWxlKHQpe3JldHVybiB0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx0aGlzLm1hdHJpeFdvcmxkLmRlY29tcG9zZShIcyxjTSx0KSx0fWdldFdvcmxkRGlyZWN0aW9uKHQpe3RoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpO2xldCBlPXRoaXMubWF0cml4V29ybGQuZWxlbWVudHM7cmV0dXJuIHQuc2V0KGVbOF0sZVs5XSxlWzEwXSkubm9ybWFsaXplKCl9cmF5Y2FzdCgpe310cmF2ZXJzZSh0KXt0KHRoaXMpO2xldCBlPXRoaXMuY2hpbGRyZW47Zm9yKGxldCBpPTAscj1lLmxlbmd0aDtpPHI7aSsrKWVbaV0udHJhdmVyc2UodCl9dHJhdmVyc2VWaXNpYmxlKHQpe2lmKHRoaXMudmlzaWJsZT09PSExKXJldHVybjt0KHRoaXMpO2xldCBlPXRoaXMuY2hpbGRyZW47Zm9yKGxldCBpPTAscj1lLmxlbmd0aDtpPHI7aSsrKWVbaV0udHJhdmVyc2VWaXNpYmxlKHQpfXRyYXZlcnNlQW5jZXN0b3JzKHQpe2xldCBlPXRoaXMucGFyZW50O2UhPT1udWxsJiYodChlKSxlLnRyYXZlcnNlQW5jZXN0b3JzKHQpKX11cGRhdGVNYXRyaXgoKXt0aGlzLm1hdHJpeC5jb21wb3NlKHRoaXMucG9zaXRpb24sdGhpcy5xdWF0ZXJuaW9uLHRoaXMuc2NhbGUpLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMH11cGRhdGVNYXRyaXhXb3JsZCh0KXt0aGlzLm1hdHJpeEF1dG9VcGRhdGUmJnRoaXMudXBkYXRlTWF0cml4KCksKHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZXx8dCkmJih0aGlzLnBhcmVudD09PW51bGw/dGhpcy5tYXRyaXhXb3JsZC5jb3B5KHRoaXMubWF0cml4KTp0aGlzLm1hdHJpeFdvcmxkLm11bHRpcGx5TWF0cmljZXModGhpcy5wYXJlbnQubWF0cml4V29ybGQsdGhpcy5tYXRyaXgpLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMSx0PSEwKTtsZXQgZT10aGlzLmNoaWxkcmVuO2ZvcihsZXQgaT0wLHI9ZS5sZW5ndGg7aTxyO2krKyllW2ldLnVwZGF0ZU1hdHJpeFdvcmxkKHQpfXVwZGF0ZVdvcmxkTWF0cml4KHQsZSl7bGV0IGk9dGhpcy5wYXJlbnQ7aWYodD09PSEwJiZpIT09bnVsbCYmaS51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksdGhpcy5tYXRyaXhBdXRvVXBkYXRlJiZ0aGlzLnVwZGF0ZU1hdHJpeCgpLHRoaXMucGFyZW50PT09bnVsbD90aGlzLm1hdHJpeFdvcmxkLmNvcHkodGhpcy5tYXRyaXgpOnRoaXMubWF0cml4V29ybGQubXVsdGlwbHlNYXRyaWNlcyh0aGlzLnBhcmVudC5tYXRyaXhXb3JsZCx0aGlzLm1hdHJpeCksZT09PSEwKXtsZXQgcj10aGlzLmNoaWxkcmVuO2ZvcihsZXQgcz0wLG89ci5sZW5ndGg7czxvO3MrKylyW3NdLnVwZGF0ZVdvcmxkTWF0cml4KCExLCEwKX19dG9KU09OKHQpe2xldCBlPXQ9PT12b2lkIDB8fHR5cGVvZiB0PT0ic3RyaW5nIixpPXt9O2UmJih0PXtnZW9tZXRyaWVzOnt9LG1hdGVyaWFsczp7fSx0ZXh0dXJlczp7fSxpbWFnZXM6e30sc2hhcGVzOnt9LHNrZWxldG9uczp7fSxhbmltYXRpb25zOnt9fSxpLm1ldGFkYXRhPXt2ZXJzaW9uOjQuNSx0eXBlOiJPYmplY3QiLGdlbmVyYXRvcjoiT2JqZWN0M0QudG9KU09OIn0pO2xldCByPXt9O3IudXVpZD10aGlzLnV1aWQsci50eXBlPXRoaXMudHlwZSx0aGlzLm5hbWUhPT0iIiYmKHIubmFtZT10aGlzLm5hbWUpLHRoaXMuY2FzdFNoYWRvdz09PSEwJiYoci5jYXN0U2hhZG93PSEwKSx0aGlzLnJlY2VpdmVTaGFkb3c9PT0hMCYmKHIucmVjZWl2ZVNoYWRvdz0hMCksdGhpcy52aXNpYmxlPT09ITEmJihyLnZpc2libGU9ITEpLHRoaXMuZnJ1c3R1bUN1bGxlZD09PSExJiYoci5mcnVzdHVtQ3VsbGVkPSExKSx0aGlzLnJlbmRlck9yZGVyIT09MCYmKHIucmVuZGVyT3JkZXI9dGhpcy5yZW5kZXJPcmRlciksSlNPTi5zdHJpbmdpZnkodGhpcy51c2VyRGF0YSkhPT0ie30iJiYoci51c2VyRGF0YT10aGlzLnVzZXJEYXRhKSxyLmxheWVycz10aGlzLmxheWVycy5tYXNrLHIubWF0cml4PXRoaXMubWF0cml4LnRvQXJyYXkoKSx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9PT0hMSYmKHIubWF0cml4QXV0b1VwZGF0ZT0hMSksdGhpcy5pc0luc3RhbmNlZE1lc2gmJihyLnR5cGU9Ikluc3RhbmNlZE1lc2giLHIuY291bnQ9dGhpcy5jb3VudCxyLmluc3RhbmNlTWF0cml4PXRoaXMuaW5zdGFuY2VNYXRyaXgudG9KU09OKCksdGhpcy5pbnN0YW5jZUNvbG9yIT09bnVsbCYmKHIuaW5zdGFuY2VDb2xvcj10aGlzLmluc3RhbmNlQ29sb3IudG9KU09OKCkpKTtmdW5jdGlvbiBzKGEsbCl7cmV0dXJuIGFbbC51dWlkXT09PXZvaWQgMCYmKGFbbC51dWlkXT1sLnRvSlNPTih0KSksbC51dWlkfWlmKHRoaXMuaXNTY2VuZSl0aGlzLmJhY2tncm91bmQmJih0aGlzLmJhY2tncm91bmQuaXNDb2xvcj9yLmJhY2tncm91bmQ9dGhpcy5iYWNrZ3JvdW5kLnRvSlNPTigpOnRoaXMuYmFja2dyb3VuZC5pc1RleHR1cmUmJihyLmJhY2tncm91bmQ9dGhpcy5iYWNrZ3JvdW5kLnRvSlNPTih0KS51dWlkKSksdGhpcy5lbnZpcm9ubWVudCYmdGhpcy5lbnZpcm9ubWVudC5pc1RleHR1cmUmJihyLmVudmlyb25tZW50PXRoaXMuZW52aXJvbm1lbnQudG9KU09OKHQpLnV1aWQpO2Vsc2UgaWYodGhpcy5pc01lc2h8fHRoaXMuaXNMaW5lfHx0aGlzLmlzUG9pbnRzKXtyLmdlb21ldHJ5PXModC5nZW9tZXRyaWVzLHRoaXMuZ2VvbWV0cnkpO2xldCBhPXRoaXMuZ2VvbWV0cnkucGFyYW1ldGVycztpZihhIT09dm9pZCAwJiZhLnNoYXBlcyE9PXZvaWQgMCl7bGV0IGw9YS5zaGFwZXM7aWYoQXJyYXkuaXNBcnJheShsKSlmb3IobGV0IGM9MCx1PWwubGVuZ3RoO2M8dTtjKyspe2xldCBoPWxbY107cyh0LnNoYXBlcyxoKX1lbHNlIHModC5zaGFwZXMsbCl9fWlmKHRoaXMuaXNTa2lubmVkTWVzaCYmKHIuYmluZE1vZGU9dGhpcy5iaW5kTW9kZSxyLmJpbmRNYXRyaXg9dGhpcy5iaW5kTWF0cml4LnRvQXJyYXkoKSx0aGlzLnNrZWxldG9uIT09dm9pZCAwJiYocyh0LnNrZWxldG9ucyx0aGlzLnNrZWxldG9uKSxyLnNrZWxldG9uPXRoaXMuc2tlbGV0b24udXVpZCkpLHRoaXMubWF0ZXJpYWwhPT12b2lkIDApaWYoQXJyYXkuaXNBcnJheSh0aGlzLm1hdGVyaWFsKSl7bGV0IGE9W107Zm9yKGxldCBsPTAsYz10aGlzLm1hdGVyaWFsLmxlbmd0aDtsPGM7bCsrKWEucHVzaChzKHQubWF0ZXJpYWxzLHRoaXMubWF0ZXJpYWxbbF0pKTtyLm1hdGVyaWFsPWF9ZWxzZSByLm1hdGVyaWFsPXModC5tYXRlcmlhbHMsdGhpcy5tYXRlcmlhbCk7aWYodGhpcy5jaGlsZHJlbi5sZW5ndGg+MCl7ci5jaGlsZHJlbj1bXTtmb3IobGV0IGE9MDthPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO2ErKylyLmNoaWxkcmVuLnB1c2godGhpcy5jaGlsZHJlblthXS50b0pTT04odCkub2JqZWN0KX1pZih0aGlzLmFuaW1hdGlvbnMubGVuZ3RoPjApe3IuYW5pbWF0aW9ucz1bXTtmb3IobGV0IGE9MDthPHRoaXMuYW5pbWF0aW9ucy5sZW5ndGg7YSsrKXtsZXQgbD10aGlzLmFuaW1hdGlvbnNbYV07ci5hbmltYXRpb25zLnB1c2gocyh0LmFuaW1hdGlvbnMsbCkpfX1pZihlKXtsZXQgYT1vKHQuZ2VvbWV0cmllcyksbD1vKHQubWF0ZXJpYWxzKSxjPW8odC50ZXh0dXJlcyksdT1vKHQuaW1hZ2VzKSxoPW8odC5zaGFwZXMpLGY9byh0LnNrZWxldG9ucyksZD1vKHQuYW5pbWF0aW9ucyk7YS5sZW5ndGg+MCYmKGkuZ2VvbWV0cmllcz1hKSxsLmxlbmd0aD4wJiYoaS5tYXRlcmlhbHM9bCksYy5sZW5ndGg+MCYmKGkudGV4dHVyZXM9YyksdS5sZW5ndGg+MCYmKGkuaW1hZ2VzPXUpLGgubGVuZ3RoPjAmJihpLnNoYXBlcz1oKSxmLmxlbmd0aD4wJiYoaS5za2VsZXRvbnM9ZiksZC5sZW5ndGg+MCYmKGkuYW5pbWF0aW9ucz1kKX1yZXR1cm4gaS5vYmplY3Q9cixpO2Z1bmN0aW9uIG8oYSl7bGV0IGw9W107Zm9yKGxldCBjIGluIGEpe2xldCB1PWFbY107ZGVsZXRlIHUubWV0YWRhdGEsbC5wdXNoKHUpfXJldHVybiBsfX1jbG9uZSh0KXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IoKS5jb3B5KHRoaXMsdCl9Y29weSh0LGU9ITApe2lmKHRoaXMubmFtZT10Lm5hbWUsdGhpcy51cC5jb3B5KHQudXApLHRoaXMucG9zaXRpb24uY29weSh0LnBvc2l0aW9uKSx0aGlzLnJvdGF0aW9uLm9yZGVyPXQucm90YXRpb24ub3JkZXIsdGhpcy5xdWF0ZXJuaW9uLmNvcHkodC5xdWF0ZXJuaW9uKSx0aGlzLnNjYWxlLmNvcHkodC5zY2FsZSksdGhpcy5tYXRyaXguY29weSh0Lm1hdHJpeCksdGhpcy5tYXRyaXhXb3JsZC5jb3B5KHQubWF0cml4V29ybGQpLHRoaXMubWF0cml4QXV0b1VwZGF0ZT10Lm1hdHJpeEF1dG9VcGRhdGUsdGhpcy5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPXQubWF0cml4V29ybGROZWVkc1VwZGF0ZSx0aGlzLmxheWVycy5tYXNrPXQubGF5ZXJzLm1hc2ssdGhpcy52aXNpYmxlPXQudmlzaWJsZSx0aGlzLmNhc3RTaGFkb3c9dC5jYXN0U2hhZG93LHRoaXMucmVjZWl2ZVNoYWRvdz10LnJlY2VpdmVTaGFkb3csdGhpcy5mcnVzdHVtQ3VsbGVkPXQuZnJ1c3R1bUN1bGxlZCx0aGlzLnJlbmRlck9yZGVyPXQucmVuZGVyT3JkZXIsdGhpcy51c2VyRGF0YT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQudXNlckRhdGEpKSxlPT09ITApZm9yKGxldCBpPTA7aTx0LmNoaWxkcmVuLmxlbmd0aDtpKyspe2xldCByPXQuY2hpbGRyZW5baV07dGhpcy5hZGQoci5jbG9uZSgpKX1yZXR1cm4gdGhpc319O2t0LkRlZmF1bHRVcD1uZXcgVCgwLDEsMCk7a3QuRGVmYXVsdE1hdHJpeEF1dG9VcGRhdGU9ITA7a3QucHJvdG90eXBlLmlzT2JqZWN0M0Q9ITA7dmFyIFFlPW5ldyBULExuPW5ldyBULG11PW5ldyBULFBuPW5ldyBULF9yPW5ldyBULHdyPW5ldyBULGRnPW5ldyBULGd1PW5ldyBULHh1PW5ldyBULHl1PW5ldyBULHJlPWNsYXNze2NvbnN0cnVjdG9yKHQ9bmV3IFQsZT1uZXcgVCxpPW5ldyBUKXt0aGlzLmE9dCx0aGlzLmI9ZSx0aGlzLmM9aX1zdGF0aWMgZ2V0Tm9ybWFsKHQsZSxpLHIpe3Iuc3ViVmVjdG9ycyhpLGUpLFFlLnN1YlZlY3RvcnModCxlKSxyLmNyb3NzKFFlKTtsZXQgcz1yLmxlbmd0aFNxKCk7cmV0dXJuIHM+MD9yLm11bHRpcGx5U2NhbGFyKDEvTWF0aC5zcXJ0KHMpKTpyLnNldCgwLDAsMCl9c3RhdGljIGdldEJhcnljb29yZCh0LGUsaSxyLHMpe1FlLnN1YlZlY3RvcnMocixlKSxMbi5zdWJWZWN0b3JzKGksZSksbXUuc3ViVmVjdG9ycyh0LGUpO2xldCBvPVFlLmRvdChRZSksYT1RZS5kb3QoTG4pLGw9UWUuZG90KG11KSxjPUxuLmRvdChMbiksdT1Mbi5kb3QobXUpLGg9bypjLWEqYTtpZihoPT09MClyZXR1cm4gcy5zZXQoLTIsLTEsLTEpO2xldCBmPTEvaCxkPShjKmwtYSp1KSpmLGc9KG8qdS1hKmwpKmY7cmV0dXJuIHMuc2V0KDEtZC1nLGcsZCl9c3RhdGljIGNvbnRhaW5zUG9pbnQodCxlLGkscil7cmV0dXJuIHRoaXMuZ2V0QmFyeWNvb3JkKHQsZSxpLHIsUG4pLFBuLng+PTAmJlBuLnk+PTAmJlBuLngrUG4ueTw9MX1zdGF0aWMgZ2V0VVYodCxlLGkscixzLG8sYSxsKXtyZXR1cm4gdGhpcy5nZXRCYXJ5Y29vcmQodCxlLGkscixQbiksbC5zZXQoMCwwKSxsLmFkZFNjYWxlZFZlY3RvcihzLFBuLngpLGwuYWRkU2NhbGVkVmVjdG9yKG8sUG4ueSksbC5hZGRTY2FsZWRWZWN0b3IoYSxQbi56KSxsfXN0YXRpYyBpc0Zyb250RmFjaW5nKHQsZSxpLHIpe3JldHVybiBRZS5zdWJWZWN0b3JzKGksZSksTG4uc3ViVmVjdG9ycyh0LGUpLFFlLmNyb3NzKExuKS5kb3Qocik8MH1zZXQodCxlLGkpe3JldHVybiB0aGlzLmEuY29weSh0KSx0aGlzLmIuY29weShlKSx0aGlzLmMuY29weShpKSx0aGlzfXNldEZyb21Qb2ludHNBbmRJbmRpY2VzKHQsZSxpLHIpe3JldHVybiB0aGlzLmEuY29weSh0W2VdKSx0aGlzLmIuY29weSh0W2ldKSx0aGlzLmMuY29weSh0W3JdKSx0aGlzfXNldEZyb21BdHRyaWJ1dGVBbmRJbmRpY2VzKHQsZSxpLHIpe3JldHVybiB0aGlzLmEuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUpLHRoaXMuYi5mcm9tQnVmZmVyQXR0cmlidXRlKHQsaSksdGhpcy5jLmZyb21CdWZmZXJBdHRyaWJ1dGUodCxyKSx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLmEuY29weSh0LmEpLHRoaXMuYi5jb3B5KHQuYiksdGhpcy5jLmNvcHkodC5jKSx0aGlzfWdldEFyZWEoKXtyZXR1cm4gUWUuc3ViVmVjdG9ycyh0aGlzLmMsdGhpcy5iKSxMbi5zdWJWZWN0b3JzKHRoaXMuYSx0aGlzLmIpLFFlLmNyb3NzKExuKS5sZW5ndGgoKSouNX1nZXRNaWRwb2ludCh0KXtyZXR1cm4gdC5hZGRWZWN0b3JzKHRoaXMuYSx0aGlzLmIpLmFkZCh0aGlzLmMpLm11bHRpcGx5U2NhbGFyKDEvMyl9Z2V0Tm9ybWFsKHQpe3JldHVybiByZS5nZXROb3JtYWwodGhpcy5hLHRoaXMuYix0aGlzLmMsdCl9Z2V0UGxhbmUodCl7cmV0dXJuIHQuc2V0RnJvbUNvcGxhbmFyUG9pbnRzKHRoaXMuYSx0aGlzLmIsdGhpcy5jKX1nZXRCYXJ5Y29vcmQodCxlKXtyZXR1cm4gcmUuZ2V0QmFyeWNvb3JkKHQsdGhpcy5hLHRoaXMuYix0aGlzLmMsZSl9Z2V0VVYodCxlLGkscixzKXtyZXR1cm4gcmUuZ2V0VVYodCx0aGlzLmEsdGhpcy5iLHRoaXMuYyxlLGkscixzKX1jb250YWluc1BvaW50KHQpe3JldHVybiByZS5jb250YWluc1BvaW50KHQsdGhpcy5hLHRoaXMuYix0aGlzLmMpfWlzRnJvbnRGYWNpbmcodCl7cmV0dXJuIHJlLmlzRnJvbnRGYWNpbmcodGhpcy5hLHRoaXMuYix0aGlzLmMsdCl9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzVHJpYW5nbGUodGhpcyl9Y2xvc2VzdFBvaW50VG9Qb2ludCh0LGUpe2xldCBpPXRoaXMuYSxyPXRoaXMuYixzPXRoaXMuYyxvLGE7X3Iuc3ViVmVjdG9ycyhyLGkpLHdyLnN1YlZlY3RvcnMocyxpKSxndS5zdWJWZWN0b3JzKHQsaSk7bGV0IGw9X3IuZG90KGd1KSxjPXdyLmRvdChndSk7aWYobDw9MCYmYzw9MClyZXR1cm4gZS5jb3B5KGkpO3h1LnN1YlZlY3RvcnModCxyKTtsZXQgdT1fci5kb3QoeHUpLGg9d3IuZG90KHh1KTtpZih1Pj0wJiZoPD11KXJldHVybiBlLmNvcHkocik7bGV0IGY9bCpoLXUqYztpZihmPD0wJiZsPj0wJiZ1PD0wKXJldHVybiBvPWwvKGwtdSksZS5jb3B5KGkpLmFkZFNjYWxlZFZlY3RvcihfcixvKTt5dS5zdWJWZWN0b3JzKHQscyk7bGV0IGQ9X3IuZG90KHl1KSxnPXdyLmRvdCh5dSk7aWYoZz49MCYmZDw9ZylyZXR1cm4gZS5jb3B5KHMpO2xldCB4PWQqYy1sKmc7aWYoeDw9MCYmYz49MCYmZzw9MClyZXR1cm4gYT1jLyhjLWcpLGUuY29weShpKS5hZGRTY2FsZWRWZWN0b3Iod3IsYSk7bGV0IHY9dSpnLWQqaDtpZih2PD0wJiZoLXU+PTAmJmQtZz49MClyZXR1cm4gZGcuc3ViVmVjdG9ycyhzLHIpLGE9KGgtdSkvKGgtdSsoZC1nKSksZS5jb3B5KHIpLmFkZFNjYWxlZFZlY3RvcihkZyxhKTtsZXQgbT0xLyh2K3grZik7cmV0dXJuIG89eCptLGE9ZiptLGUuY29weShpKS5hZGRTY2FsZWRWZWN0b3IoX3IsbykuYWRkU2NhbGVkVmVjdG9yKHdyLGEpfWVxdWFscyh0KXtyZXR1cm4gdC5hLmVxdWFscyh0aGlzLmEpJiZ0LmIuZXF1YWxzKHRoaXMuYikmJnQuYy5lcXVhbHModGhpcy5jKX19LGhNPTAseGU9Y2xhc3MgZXh0ZW5kcyBJbntjb25zdHJ1Y3Rvcigpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlkIix7dmFsdWU6aE0rK30pLHRoaXMudXVpZD10bigpLHRoaXMubmFtZT0iIix0aGlzLnR5cGU9Ik1hdGVyaWFsIix0aGlzLmZvZz0hMCx0aGlzLmJsZW5kaW5nPUtzLHRoaXMuc2lkZT1lbyx0aGlzLnZlcnRleENvbG9ycz0hMSx0aGlzLm9wYWNpdHk9MSx0aGlzLnRyYW5zcGFyZW50PSExLHRoaXMuYmxlbmRTcmM9dTAsdGhpcy5ibGVuZERzdD1oMCx0aGlzLmJsZW5kRXF1YXRpb249SXIsdGhpcy5ibGVuZFNyY0FscGhhPW51bGwsdGhpcy5ibGVuZERzdEFscGhhPW51bGwsdGhpcy5ibGVuZEVxdWF0aW9uQWxwaGE9bnVsbCx0aGlzLmRlcHRoRnVuYz16dSx0aGlzLmRlcHRoVGVzdD0hMCx0aGlzLmRlcHRoV3JpdGU9ITAsdGhpcy5zdGVuY2lsV3JpdGVNYXNrPTI1NSx0aGlzLnN0ZW5jaWxGdW5jPXRNLHRoaXMuc3RlbmNpbFJlZj0wLHRoaXMuc3RlbmNpbEZ1bmNNYXNrPTI1NSx0aGlzLnN0ZW5jaWxGYWlsPW51LHRoaXMuc3RlbmNpbFpGYWlsPW51LHRoaXMuc3RlbmNpbFpQYXNzPW51LHRoaXMuc3RlbmNpbFdyaXRlPSExLHRoaXMuY2xpcHBpbmdQbGFuZXM9bnVsbCx0aGlzLmNsaXBJbnRlcnNlY3Rpb249ITEsdGhpcy5jbGlwU2hhZG93cz0hMSx0aGlzLnNoYWRvd1NpZGU9bnVsbCx0aGlzLmNvbG9yV3JpdGU9ITAsdGhpcy5hbHBoYVdyaXRlPSEwLHRoaXMucHJlY2lzaW9uPW51bGwsdGhpcy5wb2x5Z29uT2Zmc2V0PSExLHRoaXMucG9seWdvbk9mZnNldEZhY3Rvcj0wLHRoaXMucG9seWdvbk9mZnNldFVuaXRzPTAsdGhpcy5kaXRoZXJpbmc9ITEsdGhpcy5hbHBoYVRvQ292ZXJhZ2U9ITEsdGhpcy5wcmVtdWx0aXBsaWVkQWxwaGE9ITEsdGhpcy52aXNpYmxlPSEwLHRoaXMudG9uZU1hcHBlZD0hMCx0aGlzLnVzZXJEYXRhPXt9LHRoaXMudmVyc2lvbj0wLHRoaXMuX2FscGhhVGVzdD0wfWdldCBhbHBoYVRlc3QoKXtyZXR1cm4gdGhpcy5fYWxwaGFUZXN0fXNldCBhbHBoYVRlc3QodCl7dGhpcy5fYWxwaGFUZXN0PjAhPXQ+MCYmdGhpcy52ZXJzaW9uKyssdGhpcy5fYWxwaGFUZXN0PXR9b25CdWlsZCgpe31vbkJlZm9yZVJlbmRlcigpe31vbkJlZm9yZUNvbXBpbGUoKXt9Y3VzdG9tUHJvZ3JhbUNhY2hlS2V5KCl7cmV0dXJuIHRoaXMub25CZWZvcmVDb21waWxlLnRvU3RyaW5nKCl9c2V0VmFsdWVzKHQpe2lmKHQhPT12b2lkIDApZm9yKGxldCBlIGluIHQpe2xldCBpPXRbZV07aWYoaT09PXZvaWQgMCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbDogJyIrZSsiJyBwYXJhbWV0ZXIgaXMgdW5kZWZpbmVkLiIpO2NvbnRpbnVlfWlmKGU9PT0ic2hhZGluZyIpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnNoYWRpbmcgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHRoZSBib29sZWFuIC5mbGF0U2hhZGluZyBpbnN0ZWFkLiIpLHRoaXMuZmxhdFNoYWRpbmc9aT09PWMwO2NvbnRpbnVlfWxldCByPXRoaXNbZV07aWYocj09PXZvaWQgMCl7Y29uc29sZS53YXJuKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAnIitlKyInIGlzIG5vdCBhIHByb3BlcnR5IG9mIHRoaXMgbWF0ZXJpYWwuIik7Y29udGludWV9ciYmci5pc0NvbG9yP3Iuc2V0KGkpOnImJnIuaXNWZWN0b3IzJiZpJiZpLmlzVmVjdG9yMz9yLmNvcHkoaSk6dGhpc1tlXT1pfX10b0pTT04odCl7bGV0IGU9dD09PXZvaWQgMHx8dHlwZW9mIHQ9PSJzdHJpbmciO2UmJih0PXt0ZXh0dXJlczp7fSxpbWFnZXM6e319KTtsZXQgaT17bWV0YWRhdGE6e3ZlcnNpb246NC41LHR5cGU6Ik1hdGVyaWFsIixnZW5lcmF0b3I6Ik1hdGVyaWFsLnRvSlNPTiJ9fTtpLnV1aWQ9dGhpcy51dWlkLGkudHlwZT10aGlzLnR5cGUsdGhpcy5uYW1lIT09IiImJihpLm5hbWU9dGhpcy5uYW1lKSx0aGlzLmNvbG9yJiZ0aGlzLmNvbG9yLmlzQ29sb3ImJihpLmNvbG9yPXRoaXMuY29sb3IuZ2V0SGV4KCkpLHRoaXMucm91Z2huZXNzIT09dm9pZCAwJiYoaS5yb3VnaG5lc3M9dGhpcy5yb3VnaG5lc3MpLHRoaXMubWV0YWxuZXNzIT09dm9pZCAwJiYoaS5tZXRhbG5lc3M9dGhpcy5tZXRhbG5lc3MpLHRoaXMuc2hlZW4hPT12b2lkIDAmJihpLnNoZWVuPXRoaXMuc2hlZW4pLHRoaXMuc2hlZW5Db2xvciYmdGhpcy5zaGVlbkNvbG9yLmlzQ29sb3ImJihpLnNoZWVuQ29sb3I9dGhpcy5zaGVlbkNvbG9yLmdldEhleCgpKSx0aGlzLnNoZWVuUm91Z2huZXNzIT09dm9pZCAwJiYoaS5zaGVlblJvdWdobmVzcz10aGlzLnNoZWVuUm91Z2huZXNzKSx0aGlzLmVtaXNzaXZlJiZ0aGlzLmVtaXNzaXZlLmlzQ29sb3ImJihpLmVtaXNzaXZlPXRoaXMuZW1pc3NpdmUuZ2V0SGV4KCkpLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHkmJnRoaXMuZW1pc3NpdmVJbnRlbnNpdHkhPT0xJiYoaS5lbWlzc2l2ZUludGVuc2l0eT10aGlzLmVtaXNzaXZlSW50ZW5zaXR5KSx0aGlzLnNwZWN1bGFyJiZ0aGlzLnNwZWN1bGFyLmlzQ29sb3ImJihpLnNwZWN1bGFyPXRoaXMuc3BlY3VsYXIuZ2V0SGV4KCkpLHRoaXMuc3BlY3VsYXJJbnRlbnNpdHkhPT12b2lkIDAmJihpLnNwZWN1bGFySW50ZW5zaXR5PXRoaXMuc3BlY3VsYXJJbnRlbnNpdHkpLHRoaXMuc3BlY3VsYXJDb2xvciYmdGhpcy5zcGVjdWxhckNvbG9yLmlzQ29sb3ImJihpLnNwZWN1bGFyQ29sb3I9dGhpcy5zcGVjdWxhckNvbG9yLmdldEhleCgpKSx0aGlzLnNoaW5pbmVzcyE9PXZvaWQgMCYmKGkuc2hpbmluZXNzPXRoaXMuc2hpbmluZXNzKSx0aGlzLmNsZWFyY29hdCE9PXZvaWQgMCYmKGkuY2xlYXJjb2F0PXRoaXMuY2xlYXJjb2F0KSx0aGlzLmNsZWFyY29hdFJvdWdobmVzcyE9PXZvaWQgMCYmKGkuY2xlYXJjb2F0Um91Z2huZXNzPXRoaXMuY2xlYXJjb2F0Um91Z2huZXNzKSx0aGlzLmNsZWFyY29hdE1hcCYmdGhpcy5jbGVhcmNvYXRNYXAuaXNUZXh0dXJlJiYoaS5jbGVhcmNvYXRNYXA9dGhpcy5jbGVhcmNvYXRNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuY2xlYXJjb2F0Um91Z2huZXNzTWFwJiZ0aGlzLmNsZWFyY29hdFJvdWdobmVzc01hcC5pc1RleHR1cmUmJihpLmNsZWFyY29hdFJvdWdobmVzc01hcD10aGlzLmNsZWFyY29hdFJvdWdobmVzc01hcC50b0pTT04odCkudXVpZCksdGhpcy5jbGVhcmNvYXROb3JtYWxNYXAmJnRoaXMuY2xlYXJjb2F0Tm9ybWFsTWFwLmlzVGV4dHVyZSYmKGkuY2xlYXJjb2F0Tm9ybWFsTWFwPXRoaXMuY2xlYXJjb2F0Tm9ybWFsTWFwLnRvSlNPTih0KS51dWlkLGkuY2xlYXJjb2F0Tm9ybWFsU2NhbGU9dGhpcy5jbGVhcmNvYXROb3JtYWxTY2FsZS50b0FycmF5KCkpLHRoaXMubWFwJiZ0aGlzLm1hcC5pc1RleHR1cmUmJihpLm1hcD10aGlzLm1hcC50b0pTT04odCkudXVpZCksdGhpcy5tYXRjYXAmJnRoaXMubWF0Y2FwLmlzVGV4dHVyZSYmKGkubWF0Y2FwPXRoaXMubWF0Y2FwLnRvSlNPTih0KS51dWlkKSx0aGlzLmFscGhhTWFwJiZ0aGlzLmFscGhhTWFwLmlzVGV4dHVyZSYmKGkuYWxwaGFNYXA9dGhpcy5hbHBoYU1hcC50b0pTT04odCkudXVpZCksdGhpcy5saWdodE1hcCYmdGhpcy5saWdodE1hcC5pc1RleHR1cmUmJihpLmxpZ2h0TWFwPXRoaXMubGlnaHRNYXAudG9KU09OKHQpLnV1aWQsaS5saWdodE1hcEludGVuc2l0eT10aGlzLmxpZ2h0TWFwSW50ZW5zaXR5KSx0aGlzLmFvTWFwJiZ0aGlzLmFvTWFwLmlzVGV4dHVyZSYmKGkuYW9NYXA9dGhpcy5hb01hcC50b0pTT04odCkudXVpZCxpLmFvTWFwSW50ZW5zaXR5PXRoaXMuYW9NYXBJbnRlbnNpdHkpLHRoaXMuYnVtcE1hcCYmdGhpcy5idW1wTWFwLmlzVGV4dHVyZSYmKGkuYnVtcE1hcD10aGlzLmJ1bXBNYXAudG9KU09OKHQpLnV1aWQsaS5idW1wU2NhbGU9dGhpcy5idW1wU2NhbGUpLHRoaXMubm9ybWFsTWFwJiZ0aGlzLm5vcm1hbE1hcC5pc1RleHR1cmUmJihpLm5vcm1hbE1hcD10aGlzLm5vcm1hbE1hcC50b0pTT04odCkudXVpZCxpLm5vcm1hbE1hcFR5cGU9dGhpcy5ub3JtYWxNYXBUeXBlLGkubm9ybWFsU2NhbGU9dGhpcy5ub3JtYWxTY2FsZS50b0FycmF5KCkpLHRoaXMuZGlzcGxhY2VtZW50TWFwJiZ0aGlzLmRpc3BsYWNlbWVudE1hcC5pc1RleHR1cmUmJihpLmRpc3BsYWNlbWVudE1hcD10aGlzLmRpc3BsYWNlbWVudE1hcC50b0pTT04odCkudXVpZCxpLmRpc3BsYWNlbWVudFNjYWxlPXRoaXMuZGlzcGxhY2VtZW50U2NhbGUsaS5kaXNwbGFjZW1lbnRCaWFzPXRoaXMuZGlzcGxhY2VtZW50QmlhcyksdGhpcy5yb3VnaG5lc3NNYXAmJnRoaXMucm91Z2huZXNzTWFwLmlzVGV4dHVyZSYmKGkucm91Z2huZXNzTWFwPXRoaXMucm91Z2huZXNzTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLm1ldGFsbmVzc01hcCYmdGhpcy5tZXRhbG5lc3NNYXAuaXNUZXh0dXJlJiYoaS5tZXRhbG5lc3NNYXA9dGhpcy5tZXRhbG5lc3NNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuZW1pc3NpdmVNYXAmJnRoaXMuZW1pc3NpdmVNYXAuaXNUZXh0dXJlJiYoaS5lbWlzc2l2ZU1hcD10aGlzLmVtaXNzaXZlTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLnNwZWN1bGFyTWFwJiZ0aGlzLnNwZWN1bGFyTWFwLmlzVGV4dHVyZSYmKGkuc3BlY3VsYXJNYXA9dGhpcy5zcGVjdWxhck1hcC50b0pTT04odCkudXVpZCksdGhpcy5zcGVjdWxhckludGVuc2l0eU1hcCYmdGhpcy5zcGVjdWxhckludGVuc2l0eU1hcC5pc1RleHR1cmUmJihpLnNwZWN1bGFySW50ZW5zaXR5TWFwPXRoaXMuc3BlY3VsYXJJbnRlbnNpdHlNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuc3BlY3VsYXJDb2xvck1hcCYmdGhpcy5zcGVjdWxhckNvbG9yTWFwLmlzVGV4dHVyZSYmKGkuc3BlY3VsYXJDb2xvck1hcD10aGlzLnNwZWN1bGFyQ29sb3JNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuZW52TWFwJiZ0aGlzLmVudk1hcC5pc1RleHR1cmUmJihpLmVudk1hcD10aGlzLmVudk1hcC50b0pTT04odCkudXVpZCx0aGlzLmNvbWJpbmUhPT12b2lkIDAmJihpLmNvbWJpbmU9dGhpcy5jb21iaW5lKSksdGhpcy5lbnZNYXBJbnRlbnNpdHkhPT12b2lkIDAmJihpLmVudk1hcEludGVuc2l0eT10aGlzLmVudk1hcEludGVuc2l0eSksdGhpcy5yZWZsZWN0aXZpdHkhPT12b2lkIDAmJihpLnJlZmxlY3Rpdml0eT10aGlzLnJlZmxlY3Rpdml0eSksdGhpcy5yZWZyYWN0aW9uUmF0aW8hPT12b2lkIDAmJihpLnJlZnJhY3Rpb25SYXRpbz10aGlzLnJlZnJhY3Rpb25SYXRpbyksdGhpcy5ncmFkaWVudE1hcCYmdGhpcy5ncmFkaWVudE1hcC5pc1RleHR1cmUmJihpLmdyYWRpZW50TWFwPXRoaXMuZ3JhZGllbnRNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMudHJhbnNtaXNzaW9uIT09dm9pZCAwJiYoaS50cmFuc21pc3Npb249dGhpcy50cmFuc21pc3Npb24pLHRoaXMudHJhbnNtaXNzaW9uTWFwJiZ0aGlzLnRyYW5zbWlzc2lvbk1hcC5pc1RleHR1cmUmJihpLnRyYW5zbWlzc2lvbk1hcD10aGlzLnRyYW5zbWlzc2lvbk1hcC50b0pTT04odCkudXVpZCksdGhpcy50aGlja25lc3MhPT12b2lkIDAmJihpLnRoaWNrbmVzcz10aGlzLnRoaWNrbmVzcyksdGhpcy50aGlja25lc3NNYXAmJnRoaXMudGhpY2tuZXNzTWFwLmlzVGV4dHVyZSYmKGkudGhpY2tuZXNzTWFwPXRoaXMudGhpY2tuZXNzTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLmF0dGVudWF0aW9uRGlzdGFuY2UhPT12b2lkIDAmJihpLmF0dGVudWF0aW9uRGlzdGFuY2U9dGhpcy5hdHRlbnVhdGlvbkRpc3RhbmNlKSx0aGlzLmF0dGVudWF0aW9uQ29sb3IhPT12b2lkIDAmJihpLmF0dGVudWF0aW9uQ29sb3I9dGhpcy5hdHRlbnVhdGlvbkNvbG9yLmdldEhleCgpKSx0aGlzLnNpemUhPT12b2lkIDAmJihpLnNpemU9dGhpcy5zaXplKSx0aGlzLnNoYWRvd1NpZGUhPT1udWxsJiYoaS5zaGFkb3dTaWRlPXRoaXMuc2hhZG93U2lkZSksdGhpcy5zaXplQXR0ZW51YXRpb24hPT12b2lkIDAmJihpLnNpemVBdHRlbnVhdGlvbj10aGlzLnNpemVBdHRlbnVhdGlvbiksdGhpcy5ibGVuZGluZyE9PUtzJiYoaS5ibGVuZGluZz10aGlzLmJsZW5kaW5nKSx0aGlzLnNpZGUhPT1lbyYmKGkuc2lkZT10aGlzLnNpZGUpLHRoaXMudmVydGV4Q29sb3JzJiYoaS52ZXJ0ZXhDb2xvcnM9ITApLHRoaXMub3BhY2l0eTwxJiYoaS5vcGFjaXR5PXRoaXMub3BhY2l0eSksdGhpcy50cmFuc3BhcmVudD09PSEwJiYoaS50cmFuc3BhcmVudD10aGlzLnRyYW5zcGFyZW50KSxpLmRlcHRoRnVuYz10aGlzLmRlcHRoRnVuYyxpLmRlcHRoVGVzdD10aGlzLmRlcHRoVGVzdCxpLmRlcHRoV3JpdGU9dGhpcy5kZXB0aFdyaXRlLGkuY29sb3JXcml0ZT10aGlzLmNvbG9yV3JpdGUsaS5hbHBoYVdyaXRlPXRoaXMuYWxwaGFXcml0ZSxpLnN0ZW5jaWxXcml0ZT10aGlzLnN0ZW5jaWxXcml0ZSxpLnN0ZW5jaWxXcml0ZU1hc2s9dGhpcy5zdGVuY2lsV3JpdGVNYXNrLGkuc3RlbmNpbEZ1bmM9dGhpcy5zdGVuY2lsRnVuYyxpLnN0ZW5jaWxSZWY9dGhpcy5zdGVuY2lsUmVmLGkuc3RlbmNpbEZ1bmNNYXNrPXRoaXMuc3RlbmNpbEZ1bmNNYXNrLGkuc3RlbmNpbEZhaWw9dGhpcy5zdGVuY2lsRmFpbCxpLnN0ZW5jaWxaRmFpbD10aGlzLnN0ZW5jaWxaRmFpbCxpLnN0ZW5jaWxaUGFzcz10aGlzLnN0ZW5jaWxaUGFzcyx0aGlzLnJvdGF0aW9uJiZ0aGlzLnJvdGF0aW9uIT09MCYmKGkucm90YXRpb249dGhpcy5yb3RhdGlvbiksdGhpcy5wb2x5Z29uT2Zmc2V0PT09ITAmJihpLnBvbHlnb25PZmZzZXQ9ITApLHRoaXMucG9seWdvbk9mZnNldEZhY3RvciE9PTAmJihpLnBvbHlnb25PZmZzZXRGYWN0b3I9dGhpcy5wb2x5Z29uT2Zmc2V0RmFjdG9yKSx0aGlzLnBvbHlnb25PZmZzZXRVbml0cyE9PTAmJihpLnBvbHlnb25PZmZzZXRVbml0cz10aGlzLnBvbHlnb25PZmZzZXRVbml0cyksdGhpcy5saW5ld2lkdGgmJnRoaXMubGluZXdpZHRoIT09MSYmKGkubGluZXdpZHRoPXRoaXMubGluZXdpZHRoKSx0aGlzLmRhc2hTaXplIT09dm9pZCAwJiYoaS5kYXNoU2l6ZT10aGlzLmRhc2hTaXplKSx0aGlzLmdhcFNpemUhPT12b2lkIDAmJihpLmdhcFNpemU9dGhpcy5nYXBTaXplKSx0aGlzLnNjYWxlIT09dm9pZCAwJiYoaS5zY2FsZT10aGlzLnNjYWxlKSx0aGlzLmRpdGhlcmluZz09PSEwJiYoaS5kaXRoZXJpbmc9ITApLHRoaXMuYWxwaGFUZXN0PjAmJihpLmFscGhhVGVzdD10aGlzLmFscGhhVGVzdCksdGhpcy5hbHBoYVRvQ292ZXJhZ2U9PT0hMCYmKGkuYWxwaGFUb0NvdmVyYWdlPXRoaXMuYWxwaGFUb0NvdmVyYWdlKSx0aGlzLnByZW11bHRpcGxpZWRBbHBoYT09PSEwJiYoaS5wcmVtdWx0aXBsaWVkQWxwaGE9dGhpcy5wcmVtdWx0aXBsaWVkQWxwaGEpLHRoaXMud2lyZWZyYW1lPT09ITAmJihpLndpcmVmcmFtZT10aGlzLndpcmVmcmFtZSksdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg+MSYmKGkud2lyZWZyYW1lTGluZXdpZHRoPXRoaXMud2lyZWZyYW1lTGluZXdpZHRoKSx0aGlzLndpcmVmcmFtZUxpbmVjYXAhPT0icm91bmQiJiYoaS53aXJlZnJhbWVMaW5lY2FwPXRoaXMud2lyZWZyYW1lTGluZWNhcCksdGhpcy53aXJlZnJhbWVMaW5lam9pbiE9PSJyb3VuZCImJihpLndpcmVmcmFtZUxpbmVqb2luPXRoaXMud2lyZWZyYW1lTGluZWpvaW4pLHRoaXMuZmxhdFNoYWRpbmc9PT0hMCYmKGkuZmxhdFNoYWRpbmc9dGhpcy5mbGF0U2hhZGluZyksdGhpcy52aXNpYmxlPT09ITEmJihpLnZpc2libGU9ITEpLHRoaXMudG9uZU1hcHBlZD09PSExJiYoaS50b25lTWFwcGVkPSExKSxKU09OLnN0cmluZ2lmeSh0aGlzLnVzZXJEYXRhKSE9PSJ7fSImJihpLnVzZXJEYXRhPXRoaXMudXNlckRhdGEpO2Z1bmN0aW9uIHIocyl7bGV0IG89W107Zm9yKGxldCBhIGluIHMpe2xldCBsPXNbYV07ZGVsZXRlIGwubWV0YWRhdGEsby5wdXNoKGwpfXJldHVybiBvfWlmKGUpe2xldCBzPXIodC50ZXh0dXJlcyksbz1yKHQuaW1hZ2VzKTtzLmxlbmd0aD4wJiYoaS50ZXh0dXJlcz1zKSxvLmxlbmd0aD4wJiYoaS5pbWFnZXM9byl9cmV0dXJuIGl9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IoKS5jb3B5KHRoaXMpfWNvcHkodCl7dGhpcy5uYW1lPXQubmFtZSx0aGlzLmZvZz10LmZvZyx0aGlzLmJsZW5kaW5nPXQuYmxlbmRpbmcsdGhpcy5zaWRlPXQuc2lkZSx0aGlzLnZlcnRleENvbG9ycz10LnZlcnRleENvbG9ycyx0aGlzLm9wYWNpdHk9dC5vcGFjaXR5LHRoaXMudHJhbnNwYXJlbnQ9dC50cmFuc3BhcmVudCx0aGlzLmJsZW5kU3JjPXQuYmxlbmRTcmMsdGhpcy5ibGVuZERzdD10LmJsZW5kRHN0LHRoaXMuYmxlbmRFcXVhdGlvbj10LmJsZW5kRXF1YXRpb24sdGhpcy5ibGVuZFNyY0FscGhhPXQuYmxlbmRTcmNBbHBoYSx0aGlzLmJsZW5kRHN0QWxwaGE9dC5ibGVuZERzdEFscGhhLHRoaXMuYmxlbmRFcXVhdGlvbkFscGhhPXQuYmxlbmRFcXVhdGlvbkFscGhhLHRoaXMuZGVwdGhGdW5jPXQuZGVwdGhGdW5jLHRoaXMuZGVwdGhUZXN0PXQuZGVwdGhUZXN0LHRoaXMuZGVwdGhXcml0ZT10LmRlcHRoV3JpdGUsdGhpcy5zdGVuY2lsV3JpdGVNYXNrPXQuc3RlbmNpbFdyaXRlTWFzayx0aGlzLnN0ZW5jaWxGdW5jPXQuc3RlbmNpbEZ1bmMsdGhpcy5zdGVuY2lsUmVmPXQuc3RlbmNpbFJlZix0aGlzLnN0ZW5jaWxGdW5jTWFzaz10LnN0ZW5jaWxGdW5jTWFzayx0aGlzLnN0ZW5jaWxGYWlsPXQuc3RlbmNpbEZhaWwsdGhpcy5zdGVuY2lsWkZhaWw9dC5zdGVuY2lsWkZhaWwsdGhpcy5zdGVuY2lsWlBhc3M9dC5zdGVuY2lsWlBhc3MsdGhpcy5zdGVuY2lsV3JpdGU9dC5zdGVuY2lsV3JpdGU7bGV0IGU9dC5jbGlwcGluZ1BsYW5lcyxpPW51bGw7aWYoZSE9PW51bGwpe2xldCByPWUubGVuZ3RoO2k9bmV3IEFycmF5KHIpO2ZvcihsZXQgcz0wO3MhPT1yOysrcylpW3NdPWVbc10uY2xvbmUoKX1yZXR1cm4gdGhpcy5jbGlwcGluZ1BsYW5lcz1pLHRoaXMuY2xpcEludGVyc2VjdGlvbj10LmNsaXBJbnRlcnNlY3Rpb24sdGhpcy5jbGlwU2hhZG93cz10LmNsaXBTaGFkb3dzLHRoaXMuc2hhZG93U2lkZT10LnNoYWRvd1NpZGUsdGhpcy5jb2xvcldyaXRlPXQuY29sb3JXcml0ZSx0aGlzLmFscGhhV3JpdGU9dC5hbHBoYVdyaXRlLHRoaXMucHJlY2lzaW9uPXQucHJlY2lzaW9uLHRoaXMucG9seWdvbk9mZnNldD10LnBvbHlnb25PZmZzZXQsdGhpcy5wb2x5Z29uT2Zmc2V0RmFjdG9yPXQucG9seWdvbk9mZnNldEZhY3Rvcix0aGlzLnBvbHlnb25PZmZzZXRVbml0cz10LnBvbHlnb25PZmZzZXRVbml0cyx0aGlzLmRpdGhlcmluZz10LmRpdGhlcmluZyx0aGlzLmFscGhhVGVzdD10LmFscGhhVGVzdCx0aGlzLmFscGhhVG9Db3ZlcmFnZT10LmFscGhhVG9Db3ZlcmFnZSx0aGlzLnByZW11bHRpcGxpZWRBbHBoYT10LnByZW11bHRpcGxpZWRBbHBoYSx0aGlzLnZpc2libGU9dC52aXNpYmxlLHRoaXMudG9uZU1hcHBlZD10LnRvbmVNYXBwZWQsdGhpcy51c2VyRGF0YT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQudXNlckRhdGEpKSx0aGlzfWRpc3Bvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc3Bvc2UifSl9c2V0IG5lZWRzVXBkYXRlKHQpe3Q9PT0hMCYmdGhpcy52ZXJzaW9uKyt9fTt4ZS5wcm90b3R5cGUuaXNNYXRlcmlhbD0hMDt2YXIga2k9Y2xhc3MgZXh0ZW5kcyB4ZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaEJhc2ljTWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IGZ0KDE2Nzc3MjE1KSx0aGlzLm1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLnNwZWN1bGFyTWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZW52TWFwPW51bGwsdGhpcy5jb21iaW5lPUNsLHRoaXMucmVmbGVjdGl2aXR5PTEsdGhpcy5yZWZyYWN0aW9uUmF0aW89Ljk4LHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy53aXJlZnJhbWVMaW5lY2FwPSJyb3VuZCIsdGhpcy53aXJlZnJhbWVMaW5lam9pbj0icm91bmQiLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLnNwZWN1bGFyTWFwPXQuc3BlY3VsYXJNYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZW52TWFwPXQuZW52TWFwLHRoaXMuY29tYmluZT10LmNvbWJpbmUsdGhpcy5yZWZsZWN0aXZpdHk9dC5yZWZsZWN0aXZpdHksdGhpcy5yZWZyYWN0aW9uUmF0aW89dC5yZWZyYWN0aW9uUmF0aW8sdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCx0aGlzLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4sdGhpc319O2tpLnByb3RvdHlwZS5pc01lc2hCYXNpY01hdGVyaWFsPSEwO3ZhciBKdD1uZXcgVCxBYT1uZXcgSyxRdD1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSl7aWYoQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IGFycmF5IHNob3VsZCBiZSBhIFR5cGVkIEFycmF5LiIpO3RoaXMubmFtZT0iIix0aGlzLmFycmF5PXQsdGhpcy5pdGVtU2l6ZT1lLHRoaXMuY291bnQ9dCE9PXZvaWQgMD90Lmxlbmd0aC9lOjAsdGhpcy5ub3JtYWxpemVkPWk9PT0hMCx0aGlzLnVzYWdlPWlvLHRoaXMudXBkYXRlUmFuZ2U9e29mZnNldDowLGNvdW50Oi0xfSx0aGlzLnZlcnNpb249MH1vblVwbG9hZENhbGxiYWNrKCl7fXNldCBuZWVkc1VwZGF0ZSh0KXt0PT09ITAmJnRoaXMudmVyc2lvbisrfXNldFVzYWdlKHQpe3JldHVybiB0aGlzLnVzYWdlPXQsdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLm5hbWU9dC5uYW1lLHRoaXMuYXJyYXk9bmV3IHQuYXJyYXkuY29uc3RydWN0b3IodC5hcnJheSksdGhpcy5pdGVtU2l6ZT10Lml0ZW1TaXplLHRoaXMuY291bnQ9dC5jb3VudCx0aGlzLm5vcm1hbGl6ZWQ9dC5ub3JtYWxpemVkLHRoaXMudXNhZ2U9dC51c2FnZSx0aGlzfWNvcHlBdCh0LGUsaSl7dCo9dGhpcy5pdGVtU2l6ZSxpKj1lLml0ZW1TaXplO2ZvcihsZXQgcj0wLHM9dGhpcy5pdGVtU2l6ZTtyPHM7cisrKXRoaXMuYXJyYXlbdCtyXT1lLmFycmF5W2krcl07cmV0dXJuIHRoaXN9Y29weUFycmF5KHQpe3JldHVybiB0aGlzLmFycmF5LnNldCh0KSx0aGlzfWNvcHlDb2xvcnNBcnJheSh0KXtsZXQgZT10aGlzLmFycmF5LGk9MDtmb3IobGV0IHI9MCxzPXQubGVuZ3RoO3I8cztyKyspe2xldCBvPXRbcl07bz09PXZvaWQgMCYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlDb2xvcnNBcnJheSgpOiBjb2xvciBpcyB1bmRlZmluZWQiLHIpLG89bmV3IGZ0KSxlW2krK109by5yLGVbaSsrXT1vLmcsZVtpKytdPW8uYn1yZXR1cm4gdGhpc31jb3B5VmVjdG9yMnNBcnJheSh0KXtsZXQgZT10aGlzLmFycmF5LGk9MDtmb3IobGV0IHI9MCxzPXQubGVuZ3RoO3I8cztyKyspe2xldCBvPXRbcl07bz09PXZvaWQgMCYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlWZWN0b3Iyc0FycmF5KCk6IHZlY3RvciBpcyB1bmRlZmluZWQiLHIpLG89bmV3IEspLGVbaSsrXT1vLngsZVtpKytdPW8ueX1yZXR1cm4gdGhpc31jb3B5VmVjdG9yM3NBcnJheSh0KXtsZXQgZT10aGlzLmFycmF5LGk9MDtmb3IobGV0IHI9MCxzPXQubGVuZ3RoO3I8cztyKyspe2xldCBvPXRbcl07bz09PXZvaWQgMCYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlWZWN0b3Izc0FycmF5KCk6IHZlY3RvciBpcyB1bmRlZmluZWQiLHIpLG89bmV3IFQpLGVbaSsrXT1vLngsZVtpKytdPW8ueSxlW2krK109by56fXJldHVybiB0aGlzfWNvcHlWZWN0b3I0c0FycmF5KHQpe2xldCBlPXRoaXMuYXJyYXksaT0wO2ZvcihsZXQgcj0wLHM9dC5sZW5ndGg7cjxzO3IrKyl7bGV0IG89dFtyXTtvPT09dm9pZCAwJiYoY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGUuY29weVZlY3RvcjRzQXJyYXkoKTogdmVjdG9yIGlzIHVuZGVmaW5lZCIsciksbz1uZXcgV3QpLGVbaSsrXT1vLngsZVtpKytdPW8ueSxlW2krK109by56LGVbaSsrXT1vLnd9cmV0dXJuIHRoaXN9YXBwbHlNYXRyaXgzKHQpe2lmKHRoaXMuaXRlbVNpemU9PT0yKWZvcihsZXQgZT0wLGk9dGhpcy5jb3VudDtlPGk7ZSsrKUFhLmZyb21CdWZmZXJBdHRyaWJ1dGUodGhpcyxlKSxBYS5hcHBseU1hdHJpeDModCksdGhpcy5zZXRYWShlLEFhLngsQWEueSk7ZWxzZSBpZih0aGlzLml0ZW1TaXplPT09Mylmb3IobGV0IGU9MCxpPXRoaXMuY291bnQ7ZTxpO2UrKylKdC5mcm9tQnVmZmVyQXR0cmlidXRlKHRoaXMsZSksSnQuYXBwbHlNYXRyaXgzKHQpLHRoaXMuc2V0WFlaKGUsSnQueCxKdC55LEp0LnopO3JldHVybiB0aGlzfWFwcGx5TWF0cml4NCh0KXtmb3IobGV0IGU9MCxpPXRoaXMuY291bnQ7ZTxpO2UrKylKdC54PXRoaXMuZ2V0WChlKSxKdC55PXRoaXMuZ2V0WShlKSxKdC56PXRoaXMuZ2V0WihlKSxKdC5hcHBseU1hdHJpeDQodCksdGhpcy5zZXRYWVooZSxKdC54LEp0LnksSnQueik7cmV0dXJuIHRoaXN9YXBwbHlOb3JtYWxNYXRyaXgodCl7Zm9yKGxldCBlPTAsaT10aGlzLmNvdW50O2U8aTtlKyspSnQueD10aGlzLmdldFgoZSksSnQueT10aGlzLmdldFkoZSksSnQuej10aGlzLmdldFooZSksSnQuYXBwbHlOb3JtYWxNYXRyaXgodCksdGhpcy5zZXRYWVooZSxKdC54LEp0LnksSnQueik7cmV0dXJuIHRoaXN9dHJhbnNmb3JtRGlyZWN0aW9uKHQpe2ZvcihsZXQgZT0wLGk9dGhpcy5jb3VudDtlPGk7ZSsrKUp0Lng9dGhpcy5nZXRYKGUpLEp0Lnk9dGhpcy5nZXRZKGUpLEp0Lno9dGhpcy5nZXRaKGUpLEp0LnRyYW5zZm9ybURpcmVjdGlvbih0KSx0aGlzLnNldFhZWihlLEp0LngsSnQueSxKdC56KTtyZXR1cm4gdGhpc31zZXQodCxlPTApe3JldHVybiB0aGlzLmFycmF5LnNldCh0LGUpLHRoaXN9Z2V0WCh0KXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemVdfXNldFgodCxlKXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemVdPWUsdGhpc31nZXRZKHQpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSsxXX1zZXRZKHQsZSl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzFdPWUsdGhpc31nZXRaKHQpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSsyXX1zZXRaKHQsZSl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzJdPWUsdGhpc31nZXRXKHQpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSszXX1zZXRXKHQsZSl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzNdPWUsdGhpc31zZXRYWSh0LGUsaSl7cmV0dXJuIHQqPXRoaXMuaXRlbVNpemUsdGhpcy5hcnJheVt0KzBdPWUsdGhpcy5hcnJheVt0KzFdPWksdGhpc31zZXRYWVoodCxlLGkscil7cmV0dXJuIHQqPXRoaXMuaXRlbVNpemUsdGhpcy5hcnJheVt0KzBdPWUsdGhpcy5hcnJheVt0KzFdPWksdGhpcy5hcnJheVt0KzJdPXIsdGhpc31zZXRYWVpXKHQsZSxpLHIscyl7cmV0dXJuIHQqPXRoaXMuaXRlbVNpemUsdGhpcy5hcnJheVt0KzBdPWUsdGhpcy5hcnJheVt0KzFdPWksdGhpcy5hcnJheVt0KzJdPXIsdGhpcy5hcnJheVt0KzNdPXMsdGhpc31vblVwbG9hZCh0KXtyZXR1cm4gdGhpcy5vblVwbG9hZENhbGxiYWNrPXQsdGhpc31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLmFycmF5LHRoaXMuaXRlbVNpemUpLmNvcHkodGhpcyl9dG9KU09OKCl7bGV0IHQ9e2l0ZW1TaXplOnRoaXMuaXRlbVNpemUsdHlwZTp0aGlzLmFycmF5LmNvbnN0cnVjdG9yLm5hbWUsYXJyYXk6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5hcnJheSksbm9ybWFsaXplZDp0aGlzLm5vcm1hbGl6ZWR9O3JldHVybiB0aGlzLm5hbWUhPT0iIiYmKHQubmFtZT10aGlzLm5hbWUpLHRoaXMudXNhZ2UhPT1pbyYmKHQudXNhZ2U9dGhpcy51c2FnZSksKHRoaXMudXBkYXRlUmFuZ2Uub2Zmc2V0IT09MHx8dGhpcy51cGRhdGVSYW5nZS5jb3VudCE9PS0xKSYmKHQudXBkYXRlUmFuZ2U9dGhpcy51cGRhdGVSYW5nZSksdH19O1F0LnByb3RvdHlwZS5pc0J1ZmZlckF0dHJpYnV0ZT0hMDt2YXIgcmw9Y2xhc3MgZXh0ZW5kcyBRdHtjb25zdHJ1Y3Rvcih0LGUsaSl7c3VwZXIobmV3IFVpbnQxNkFycmF5KHQpLGUsaSl9fTt2YXIgc2w9Y2xhc3MgZXh0ZW5kcyBRdHtjb25zdHJ1Y3Rvcih0LGUsaSl7c3VwZXIobmV3IFVpbnQzMkFycmF5KHQpLGUsaSl9fSxXdT1jbGFzcyBleHRlbmRzIFF0e2NvbnN0cnVjdG9yKHQsZSxpKXtzdXBlcihuZXcgVWludDE2QXJyYXkodCksZSxpKX19O1d1LnByb3RvdHlwZS5pc0Zsb2F0MTZCdWZmZXJBdHRyaWJ1dGU9ITA7dmFyIGVlPWNsYXNzIGV4dGVuZHMgUXR7Y29uc3RydWN0b3IodCxlLGkpe3N1cGVyKG5ldyBGbG9hdDMyQXJyYXkodCksZSxpKX19O3ZhciBmTT0wLHFlPW5ldyB3dCx2dT1uZXcga3QsTXI9bmV3IFQsSGU9bmV3IEdlLFZzPW5ldyBHZSxnZT1uZXcgVCxIdD1jbGFzcyBleHRlbmRzIElue2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiaWQiLHt2YWx1ZTpmTSsrfSksdGhpcy51dWlkPXRuKCksdGhpcy5uYW1lPSIiLHRoaXMudHlwZT0iQnVmZmVyR2VvbWV0cnkiLHRoaXMuaW5kZXg9bnVsbCx0aGlzLmF0dHJpYnV0ZXM9e30sdGhpcy5tb3JwaEF0dHJpYnV0ZXM9e30sdGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZT0hMSx0aGlzLmdyb3Vwcz1bXSx0aGlzLmJvdW5kaW5nQm94PW51bGwsdGhpcy5ib3VuZGluZ1NwaGVyZT1udWxsLHRoaXMuZHJhd1JhbmdlPXtzdGFydDowLGNvdW50OjEvMH0sdGhpcy51c2VyRGF0YT17fX1nZXRJbmRleCgpe3JldHVybiB0aGlzLmluZGV4fXNldEluZGV4KHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3RoaXMuaW5kZXg9bmV3KHAwKHQpP3NsOnJsKSh0LDEpOnRoaXMuaW5kZXg9dCx0aGlzfWdldEF0dHJpYnV0ZSh0KXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzW3RdfXNldEF0dHJpYnV0ZSh0LGUpe3JldHVybiB0aGlzLmF0dHJpYnV0ZXNbdF09ZSx0aGlzfWRlbGV0ZUF0dHJpYnV0ZSh0KXtyZXR1cm4gZGVsZXRlIHRoaXMuYXR0cmlidXRlc1t0XSx0aGlzfWhhc0F0dHJpYnV0ZSh0KXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzW3RdIT09dm9pZCAwfWFkZEdyb3VwKHQsZSxpPTApe3RoaXMuZ3JvdXBzLnB1c2goe3N0YXJ0OnQsY291bnQ6ZSxtYXRlcmlhbEluZGV4Oml9KX1jbGVhckdyb3Vwcygpe3RoaXMuZ3JvdXBzPVtdfXNldERyYXdSYW5nZSh0LGUpe3RoaXMuZHJhd1JhbmdlLnN0YXJ0PXQsdGhpcy5kcmF3UmFuZ2UuY291bnQ9ZX1hcHBseU1hdHJpeDQodCl7bGV0IGU9dGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uO2UhPT12b2lkIDAmJihlLmFwcGx5TWF0cml4NCh0KSxlLm5lZWRzVXBkYXRlPSEwKTtsZXQgaT10aGlzLmF0dHJpYnV0ZXMubm9ybWFsO2lmKGkhPT12b2lkIDApe2xldCBzPW5ldyBkZSgpLmdldE5vcm1hbE1hdHJpeCh0KTtpLmFwcGx5Tm9ybWFsTWF0cml4KHMpLGkubmVlZHNVcGRhdGU9ITB9bGV0IHI9dGhpcy5hdHRyaWJ1dGVzLnRhbmdlbnQ7cmV0dXJuIHIhPT12b2lkIDAmJihyLnRyYW5zZm9ybURpcmVjdGlvbih0KSxyLm5lZWRzVXBkYXRlPSEwKSx0aGlzLmJvdW5kaW5nQm94IT09bnVsbCYmdGhpcy5jb21wdXRlQm91bmRpbmdCb3goKSx0aGlzLmJvdW5kaW5nU3BoZXJlIT09bnVsbCYmdGhpcy5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSx0aGlzfWFwcGx5UXVhdGVybmlvbih0KXtyZXR1cm4gcWUubWFrZVJvdGF0aW9uRnJvbVF1YXRlcm5pb24odCksdGhpcy5hcHBseU1hdHJpeDQocWUpLHRoaXN9cm90YXRlWCh0KXtyZXR1cm4gcWUubWFrZVJvdGF0aW9uWCh0KSx0aGlzLmFwcGx5TWF0cml4NChxZSksdGhpc31yb3RhdGVZKHQpe3JldHVybiBxZS5tYWtlUm90YXRpb25ZKHQpLHRoaXMuYXBwbHlNYXRyaXg0KHFlKSx0aGlzfXJvdGF0ZVoodCl7cmV0dXJuIHFlLm1ha2VSb3RhdGlvbloodCksdGhpcy5hcHBseU1hdHJpeDQocWUpLHRoaXN9dHJhbnNsYXRlKHQsZSxpKXtyZXR1cm4gcWUubWFrZVRyYW5zbGF0aW9uKHQsZSxpKSx0aGlzLmFwcGx5TWF0cml4NChxZSksdGhpc31zY2FsZSh0LGUsaSl7cmV0dXJuIHFlLm1ha2VTY2FsZSh0LGUsaSksdGhpcy5hcHBseU1hdHJpeDQocWUpLHRoaXN9bG9va0F0KHQpe3JldHVybiB2dS5sb29rQXQodCksdnUudXBkYXRlTWF0cml4KCksdGhpcy5hcHBseU1hdHJpeDQodnUubWF0cml4KSx0aGlzfWNlbnRlcigpe3JldHVybiB0aGlzLmNvbXB1dGVCb3VuZGluZ0JveCgpLHRoaXMuYm91bmRpbmdCb3guZ2V0Q2VudGVyKE1yKS5uZWdhdGUoKSx0aGlzLnRyYW5zbGF0ZShNci54LE1yLnksTXIueiksdGhpc31zZXRGcm9tUG9pbnRzKHQpe2xldCBlPVtdO2ZvcihsZXQgaT0wLHI9dC5sZW5ndGg7aTxyO2krKyl7bGV0IHM9dFtpXTtlLnB1c2gocy54LHMueSxzLnp8fDApfXJldHVybiB0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBlZShlLDMpKSx0aGlzfWNvbXB1dGVCb3VuZGluZ0JveCgpe3RoaXMuYm91bmRpbmdCb3g9PT1udWxsJiYodGhpcy5ib3VuZGluZ0JveD1uZXcgR2UpO2xldCB0PXRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbixlPXRoaXMubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uO2lmKHQmJnQuaXNHTEJ1ZmZlckF0dHJpYnV0ZSl7Y29uc29sZS5lcnJvcignVEhSRUUuQnVmZmVyR2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk6IEdMQnVmZmVyQXR0cmlidXRlIHJlcXVpcmVzIGEgbWFudWFsIGJvdW5kaW5nIGJveC4gQWx0ZXJuYXRpdmVseSBzZXQgIm1lc2guZnJ1c3R1bUN1bGxlZCIgdG8gImZhbHNlIi4nLHRoaXMpLHRoaXMuYm91bmRpbmdCb3guc2V0KG5ldyBUKC0xLzAsLTEvMCwtMS8wKSxuZXcgVCgxLzAsMS8wLDEvMCkpO3JldHVybn1pZih0IT09dm9pZCAwKXtpZih0aGlzLmJvdW5kaW5nQm94LnNldEZyb21CdWZmZXJBdHRyaWJ1dGUodCksZSlmb3IobGV0IGk9MCxyPWUubGVuZ3RoO2k8cjtpKyspe2xldCBzPWVbaV07SGUuc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZShzKSx0aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPyhnZS5hZGRWZWN0b3JzKHRoaXMuYm91bmRpbmdCb3gubWluLEhlLm1pbiksdGhpcy5ib3VuZGluZ0JveC5leHBhbmRCeVBvaW50KGdlKSxnZS5hZGRWZWN0b3JzKHRoaXMuYm91bmRpbmdCb3gubWF4LEhlLm1heCksdGhpcy5ib3VuZGluZ0JveC5leHBhbmRCeVBvaW50KGdlKSk6KHRoaXMuYm91bmRpbmdCb3guZXhwYW5kQnlQb2ludChIZS5taW4pLHRoaXMuYm91bmRpbmdCb3guZXhwYW5kQnlQb2ludChIZS5tYXgpKX19ZWxzZSB0aGlzLmJvdW5kaW5nQm94Lm1ha2VFbXB0eSgpOyhpc05hTih0aGlzLmJvdW5kaW5nQm94Lm1pbi54KXx8aXNOYU4odGhpcy5ib3VuZGluZ0JveC5taW4ueSl8fGlzTmFOKHRoaXMuYm91bmRpbmdCb3gubWluLnopKSYmY29uc29sZS5lcnJvcignVEhSRUUuQnVmZmVyR2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk6IENvbXB1dGVkIG1pbi9tYXggaGF2ZSBOYU4gdmFsdWVzLiBUaGUgInBvc2l0aW9uIiBhdHRyaWJ1dGUgaXMgbGlrZWx5IHRvIGhhdmUgTmFOIHZhbHVlcy4nLHRoaXMpfWNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpe3RoaXMuYm91bmRpbmdTcGhlcmU9PT1udWxsJiYodGhpcy5ib3VuZGluZ1NwaGVyZT1uZXcgc2kpO2xldCB0PXRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbixlPXRoaXMubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uO2lmKHQmJnQuaXNHTEJ1ZmZlckF0dHJpYnV0ZSl7Y29uc29sZS5lcnJvcignVEhSRUUuQnVmZmVyR2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk6IEdMQnVmZmVyQXR0cmlidXRlIHJlcXVpcmVzIGEgbWFudWFsIGJvdW5kaW5nIHNwaGVyZS4gQWx0ZXJuYXRpdmVseSBzZXQgIm1lc2guZnJ1c3R1bUN1bGxlZCIgdG8gImZhbHNlIi4nLHRoaXMpLHRoaXMuYm91bmRpbmdTcGhlcmUuc2V0KG5ldyBULDEvMCk7cmV0dXJufWlmKHQpe2xldCBpPXRoaXMuYm91bmRpbmdTcGhlcmUuY2VudGVyO2lmKEhlLnNldEZyb21CdWZmZXJBdHRyaWJ1dGUodCksZSlmb3IobGV0IHM9MCxvPWUubGVuZ3RoO3M8bztzKyspe2xldCBhPWVbc107VnMuc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZShhKSx0aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPyhnZS5hZGRWZWN0b3JzKEhlLm1pbixWcy5taW4pLEhlLmV4cGFuZEJ5UG9pbnQoZ2UpLGdlLmFkZFZlY3RvcnMoSGUubWF4LFZzLm1heCksSGUuZXhwYW5kQnlQb2ludChnZSkpOihIZS5leHBhbmRCeVBvaW50KFZzLm1pbiksSGUuZXhwYW5kQnlQb2ludChWcy5tYXgpKX1IZS5nZXRDZW50ZXIoaSk7bGV0IHI9MDtmb3IobGV0IHM9MCxvPXQuY291bnQ7czxvO3MrKylnZS5mcm9tQnVmZmVyQXR0cmlidXRlKHQscykscj1NYXRoLm1heChyLGkuZGlzdGFuY2VUb1NxdWFyZWQoZ2UpKTtpZihlKWZvcihsZXQgcz0wLG89ZS5sZW5ndGg7czxvO3MrKyl7bGV0IGE9ZVtzXSxsPXRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU7Zm9yKGxldCBjPTAsdT1hLmNvdW50O2M8dTtjKyspZ2UuZnJvbUJ1ZmZlckF0dHJpYnV0ZShhLGMpLGwmJihNci5mcm9tQnVmZmVyQXR0cmlidXRlKHQsYyksZ2UuYWRkKE1yKSkscj1NYXRoLm1heChyLGkuZGlzdGFuY2VUb1NxdWFyZWQoZ2UpKX10aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cz1NYXRoLnNxcnQociksaXNOYU4odGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMpJiZjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogQ29tcHV0ZWQgcmFkaXVzIGlzIE5hTi4gVGhlICJwb3NpdGlvbiIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJyx0aGlzKX19Y29tcHV0ZVRhbmdlbnRzKCl7bGV0IHQ9dGhpcy5pbmRleCxlPXRoaXMuYXR0cmlidXRlcztpZih0PT09bnVsbHx8ZS5wb3NpdGlvbj09PXZvaWQgMHx8ZS5ub3JtYWw9PT12b2lkIDB8fGUudXY9PT12b2lkIDApe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuY29tcHV0ZVRhbmdlbnRzKCkgZmFpbGVkLiBNaXNzaW5nIHJlcXVpcmVkIGF0dHJpYnV0ZXMgKGluZGV4LCBwb3NpdGlvbiwgbm9ybWFsIG9yIHV2KSIpO3JldHVybn1sZXQgaT10LmFycmF5LHI9ZS5wb3NpdGlvbi5hcnJheSxzPWUubm9ybWFsLmFycmF5LG89ZS51di5hcnJheSxhPXIubGVuZ3RoLzM7ZS50YW5nZW50PT09dm9pZCAwJiZ0aGlzLnNldEF0dHJpYnV0ZSgidGFuZ2VudCIsbmV3IFF0KG5ldyBGbG9hdDMyQXJyYXkoNCphKSw0KSk7bGV0IGw9ZS50YW5nZW50LmFycmF5LGM9W10sdT1bXTtmb3IobGV0IFg9MDtYPGE7WCsrKWNbWF09bmV3IFQsdVtYXT1uZXcgVDtsZXQgaD1uZXcgVCxmPW5ldyBULGQ9bmV3IFQsZz1uZXcgSyx4PW5ldyBLLHY9bmV3IEssbT1uZXcgVCxwPW5ldyBUO2Z1bmN0aW9uIGIoWCx5LFIpe2guZnJvbUFycmF5KHIsWCozKSxmLmZyb21BcnJheShyLHkqMyksZC5mcm9tQXJyYXkocixSKjMpLGcuZnJvbUFycmF5KG8sWCoyKSx4LmZyb21BcnJheShvLHkqMiksdi5mcm9tQXJyYXkobyxSKjIpLGYuc3ViKGgpLGQuc3ViKGgpLHguc3ViKGcpLHYuc3ViKGcpO2xldCBEPTEvKHgueCp2Lnktdi54KngueSk7IWlzRmluaXRlKEQpfHwobS5jb3B5KGYpLm11bHRpcGx5U2NhbGFyKHYueSkuYWRkU2NhbGVkVmVjdG9yKGQsLXgueSkubXVsdGlwbHlTY2FsYXIoRCkscC5jb3B5KGQpLm11bHRpcGx5U2NhbGFyKHgueCkuYWRkU2NhbGVkVmVjdG9yKGYsLXYueCkubXVsdGlwbHlTY2FsYXIoRCksY1tYXS5hZGQobSksY1t5XS5hZGQobSksY1tSXS5hZGQobSksdVtYXS5hZGQocCksdVt5XS5hZGQocCksdVtSXS5hZGQocCkpfWxldCBfPXRoaXMuZ3JvdXBzO18ubGVuZ3RoPT09MCYmKF89W3tzdGFydDowLGNvdW50OmkubGVuZ3RofV0pO2ZvcihsZXQgWD0wLHk9Xy5sZW5ndGg7WDx5OysrWCl7bGV0IFI9X1tYXSxEPVIuc3RhcnQsRj1SLmNvdW50O2ZvcihsZXQgej1ELE49RCtGO3o8Tjt6Kz0zKWIoaVt6KzBdLGlbeisxXSxpW3orMl0pfWxldCBTPW5ldyBULEw9bmV3IFQsQT1uZXcgVCxIPW5ldyBUO2Z1bmN0aW9uIHR0KFgpe0EuZnJvbUFycmF5KHMsWCozKSxILmNvcHkoQSk7bGV0IHk9Y1tYXTtTLmNvcHkoeSksUy5zdWIoQS5tdWx0aXBseVNjYWxhcihBLmRvdCh5KSkpLm5vcm1hbGl6ZSgpLEwuY3Jvc3NWZWN0b3JzKEgseSk7bGV0IEQ9TC5kb3QodVtYXSk8MD8tMToxO2xbWCo0XT1TLngsbFtYKjQrMV09Uy55LGxbWCo0KzJdPVMueixsW1gqNCszXT1EfWZvcihsZXQgWD0wLHk9Xy5sZW5ndGg7WDx5OysrWCl7bGV0IFI9X1tYXSxEPVIuc3RhcnQsRj1SLmNvdW50O2ZvcihsZXQgej1ELE49RCtGO3o8Tjt6Kz0zKXR0KGlbeiswXSksdHQoaVt6KzFdKSx0dChpW3orMl0pfX1jb21wdXRlVmVydGV4Tm9ybWFscygpe2xldCB0PXRoaXMuaW5kZXgsZT10aGlzLmdldEF0dHJpYnV0ZSgicG9zaXRpb24iKTtpZihlIT09dm9pZCAwKXtsZXQgaT10aGlzLmdldEF0dHJpYnV0ZSgibm9ybWFsIik7aWYoaT09PXZvaWQgMClpPW5ldyBRdChuZXcgRmxvYXQzMkFycmF5KGUuY291bnQqMyksMyksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsaSk7ZWxzZSBmb3IobGV0IGY9MCxkPWkuY291bnQ7ZjxkO2YrKylpLnNldFhZWihmLDAsMCwwKTtsZXQgcj1uZXcgVCxzPW5ldyBULG89bmV3IFQsYT1uZXcgVCxsPW5ldyBULGM9bmV3IFQsdT1uZXcgVCxoPW5ldyBUO2lmKHQpZm9yKGxldCBmPTAsZD10LmNvdW50O2Y8ZDtmKz0zKXtsZXQgZz10LmdldFgoZiswKSx4PXQuZ2V0WChmKzEpLHY9dC5nZXRYKGYrMik7ci5mcm9tQnVmZmVyQXR0cmlidXRlKGUsZykscy5mcm9tQnVmZmVyQXR0cmlidXRlKGUseCksby5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdiksdS5zdWJWZWN0b3JzKG8scyksaC5zdWJWZWN0b3JzKHIscyksdS5jcm9zcyhoKSxhLmZyb21CdWZmZXJBdHRyaWJ1dGUoaSxnKSxsLmZyb21CdWZmZXJBdHRyaWJ1dGUoaSx4KSxjLmZyb21CdWZmZXJBdHRyaWJ1dGUoaSx2KSxhLmFkZCh1KSxsLmFkZCh1KSxjLmFkZCh1KSxpLnNldFhZWihnLGEueCxhLnksYS56KSxpLnNldFhZWih4LGwueCxsLnksbC56KSxpLnNldFhZWih2LGMueCxjLnksYy56KX1lbHNlIGZvcihsZXQgZj0wLGQ9ZS5jb3VudDtmPGQ7Zis9MylyLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSxmKzApLHMuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLGYrMSksby5mcm9tQnVmZmVyQXR0cmlidXRlKGUsZisyKSx1LnN1YlZlY3RvcnMobyxzKSxoLnN1YlZlY3RvcnMocixzKSx1LmNyb3NzKGgpLGkuc2V0WFlaKGYrMCx1LngsdS55LHUueiksaS5zZXRYWVooZisxLHUueCx1LnksdS56KSxpLnNldFhZWihmKzIsdS54LHUueSx1LnopO3RoaXMubm9ybWFsaXplTm9ybWFscygpLGkubmVlZHNVcGRhdGU9ITB9fW1lcmdlKHQsZSl7aWYoISh0JiZ0LmlzQnVmZmVyR2VvbWV0cnkpKXtjb25zb2xlLmVycm9yKCJUSFJFRS5CdWZmZXJHZW9tZXRyeS5tZXJnZSgpOiBnZW9tZXRyeSBub3QgYW4gaW5zdGFuY2Ugb2YgVEhSRUUuQnVmZmVyR2VvbWV0cnkuIix0KTtyZXR1cm59ZT09PXZvaWQgMCYmKGU9MCxjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5Lm1lcmdlKCk6IE92ZXJ3cml0aW5nIG9yaWdpbmFsIGdlb21ldHJ5LCBzdGFydGluZyBhdCBvZmZzZXQ9MC4gVXNlIEJ1ZmZlckdlb21ldHJ5VXRpbHMubWVyZ2VCdWZmZXJHZW9tZXRyaWVzKCkgZm9yIGxvc3NsZXNzIG1lcmdlLiIpKTtsZXQgaT10aGlzLmF0dHJpYnV0ZXM7Zm9yKGxldCByIGluIGkpe2lmKHQuYXR0cmlidXRlc1tyXT09PXZvaWQgMCljb250aW51ZTtsZXQgbz1pW3JdLmFycmF5LGE9dC5hdHRyaWJ1dGVzW3JdLGw9YS5hcnJheSxjPWEuaXRlbVNpemUqZSx1PU1hdGgubWluKGwubGVuZ3RoLG8ubGVuZ3RoLWMpO2ZvcihsZXQgaD0wLGY9YztoPHU7aCsrLGYrKylvW2ZdPWxbaF19cmV0dXJuIHRoaXN9bm9ybWFsaXplTm9ybWFscygpe2xldCB0PXRoaXMuYXR0cmlidXRlcy5ub3JtYWw7Zm9yKGxldCBlPTAsaT10LmNvdW50O2U8aTtlKyspZ2UuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUpLGdlLm5vcm1hbGl6ZSgpLHQuc2V0WFlaKGUsZ2UueCxnZS55LGdlLnopfXRvTm9uSW5kZXhlZCgpe2Z1bmN0aW9uIHQoYSxsKXtsZXQgYz1hLmFycmF5LHU9YS5pdGVtU2l6ZSxoPWEubm9ybWFsaXplZCxmPW5ldyBjLmNvbnN0cnVjdG9yKGwubGVuZ3RoKnUpLGQ9MCxnPTA7Zm9yKGxldCB4PTAsdj1sLmxlbmd0aDt4PHY7eCsrKXthLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGU/ZD1sW3hdKmEuZGF0YS5zdHJpZGUrYS5vZmZzZXQ6ZD1sW3hdKnU7Zm9yKGxldCBtPTA7bTx1O20rKylmW2crK109Y1tkKytdfXJldHVybiBuZXcgUXQoZix1LGgpfWlmKHRoaXMuaW5kZXg9PT1udWxsKXJldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5LnRvTm9uSW5kZXhlZCgpOiBCdWZmZXJHZW9tZXRyeSBpcyBhbHJlYWR5IG5vbi1pbmRleGVkLiIpLHRoaXM7bGV0IGU9bmV3IEh0LGk9dGhpcy5pbmRleC5hcnJheSxyPXRoaXMuYXR0cmlidXRlcztmb3IobGV0IGEgaW4gcil7bGV0IGw9clthXSxjPXQobCxpKTtlLnNldEF0dHJpYnV0ZShhLGMpfWxldCBzPXRoaXMubW9ycGhBdHRyaWJ1dGVzO2ZvcihsZXQgYSBpbiBzKXtsZXQgbD1bXSxjPXNbYV07Zm9yKGxldCB1PTAsaD1jLmxlbmd0aDt1PGg7dSsrKXtsZXQgZj1jW3VdLGQ9dChmLGkpO2wucHVzaChkKX1lLm1vcnBoQXR0cmlidXRlc1thXT1sfWUubW9ycGhUYXJnZXRzUmVsYXRpdmU9dGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZTtsZXQgbz10aGlzLmdyb3Vwcztmb3IobGV0IGE9MCxsPW8ubGVuZ3RoO2E8bDthKyspe2xldCBjPW9bYV07ZS5hZGRHcm91cChjLnN0YXJ0LGMuY291bnQsYy5tYXRlcmlhbEluZGV4KX1yZXR1cm4gZX10b0pTT04oKXtsZXQgdD17bWV0YWRhdGE6e3ZlcnNpb246NC41LHR5cGU6IkJ1ZmZlckdlb21ldHJ5IixnZW5lcmF0b3I6IkJ1ZmZlckdlb21ldHJ5LnRvSlNPTiJ9fTtpZih0LnV1aWQ9dGhpcy51dWlkLHQudHlwZT10aGlzLnR5cGUsdGhpcy5uYW1lIT09IiImJih0Lm5hbWU9dGhpcy5uYW1lKSxPYmplY3Qua2V5cyh0aGlzLnVzZXJEYXRhKS5sZW5ndGg+MCYmKHQudXNlckRhdGE9dGhpcy51c2VyRGF0YSksdGhpcy5wYXJhbWV0ZXJzIT09dm9pZCAwKXtsZXQgbD10aGlzLnBhcmFtZXRlcnM7Zm9yKGxldCBjIGluIGwpbFtjXSE9PXZvaWQgMCYmKHRbY109bFtjXSk7cmV0dXJuIHR9dC5kYXRhPXthdHRyaWJ1dGVzOnt9fTtsZXQgZT10aGlzLmluZGV4O2UhPT1udWxsJiYodC5kYXRhLmluZGV4PXt0eXBlOmUuYXJyYXkuY29uc3RydWN0b3IubmFtZSxhcnJheTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLmFycmF5KX0pO2xldCBpPXRoaXMuYXR0cmlidXRlcztmb3IobGV0IGwgaW4gaSl7bGV0IGM9aVtsXTt0LmRhdGEuYXR0cmlidXRlc1tsXT1jLnRvSlNPTih0LmRhdGEpfWxldCByPXt9LHM9ITE7Zm9yKGxldCBsIGluIHRoaXMubW9ycGhBdHRyaWJ1dGVzKXtsZXQgYz10aGlzLm1vcnBoQXR0cmlidXRlc1tsXSx1PVtdO2ZvcihsZXQgaD0wLGY9Yy5sZW5ndGg7aDxmO2grKyl7bGV0IGQ9Y1toXTt1LnB1c2goZC50b0pTT04odC5kYXRhKSl9dS5sZW5ndGg+MCYmKHJbbF09dSxzPSEwKX1zJiYodC5kYXRhLm1vcnBoQXR0cmlidXRlcz1yLHQuZGF0YS5tb3JwaFRhcmdldHNSZWxhdGl2ZT10aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlKTtsZXQgbz10aGlzLmdyb3VwcztvLmxlbmd0aD4wJiYodC5kYXRhLmdyb3Vwcz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG8pKSk7bGV0IGE9dGhpcy5ib3VuZGluZ1NwaGVyZTtyZXR1cm4gYSE9PW51bGwmJih0LmRhdGEuYm91bmRpbmdTcGhlcmU9e2NlbnRlcjphLmNlbnRlci50b0FycmF5KCkscmFkaXVzOmEucmFkaXVzfSksdH1jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcigpLmNvcHkodGhpcyl9Y29weSh0KXt0aGlzLmluZGV4PW51bGwsdGhpcy5hdHRyaWJ1dGVzPXt9LHRoaXMubW9ycGhBdHRyaWJ1dGVzPXt9LHRoaXMuZ3JvdXBzPVtdLHRoaXMuYm91bmRpbmdCb3g9bnVsbCx0aGlzLmJvdW5kaW5nU3BoZXJlPW51bGw7bGV0IGU9e307dGhpcy5uYW1lPXQubmFtZTtsZXQgaT10LmluZGV4O2khPT1udWxsJiZ0aGlzLnNldEluZGV4KGkuY2xvbmUoZSkpO2xldCByPXQuYXR0cmlidXRlcztmb3IobGV0IGMgaW4gcil7bGV0IHU9cltjXTt0aGlzLnNldEF0dHJpYnV0ZShjLHUuY2xvbmUoZSkpfWxldCBzPXQubW9ycGhBdHRyaWJ1dGVzO2ZvcihsZXQgYyBpbiBzKXtsZXQgdT1bXSxoPXNbY107Zm9yKGxldCBmPTAsZD1oLmxlbmd0aDtmPGQ7ZisrKXUucHVzaChoW2ZdLmNsb25lKGUpKTt0aGlzLm1vcnBoQXR0cmlidXRlc1tjXT11fXRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU9dC5tb3JwaFRhcmdldHNSZWxhdGl2ZTtsZXQgbz10Lmdyb3Vwcztmb3IobGV0IGM9MCx1PW8ubGVuZ3RoO2M8dTtjKyspe2xldCBoPW9bY107dGhpcy5hZGRHcm91cChoLnN0YXJ0LGguY291bnQsaC5tYXRlcmlhbEluZGV4KX1sZXQgYT10LmJvdW5kaW5nQm94O2EhPT1udWxsJiYodGhpcy5ib3VuZGluZ0JveD1hLmNsb25lKCkpO2xldCBsPXQuYm91bmRpbmdTcGhlcmU7cmV0dXJuIGwhPT1udWxsJiYodGhpcy5ib3VuZGluZ1NwaGVyZT1sLmNsb25lKCkpLHRoaXMuZHJhd1JhbmdlLnN0YXJ0PXQuZHJhd1JhbmdlLnN0YXJ0LHRoaXMuZHJhd1JhbmdlLmNvdW50PXQuZHJhd1JhbmdlLmNvdW50LHRoaXMudXNlckRhdGE9dC51c2VyRGF0YSx0LnBhcmFtZXRlcnMhPT12b2lkIDAmJih0aGlzLnBhcmFtZXRlcnM9T2JqZWN0LmFzc2lnbih7fSx0LnBhcmFtZXRlcnMpKSx0aGlzfWRpc3Bvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc3Bvc2UifSl9fTtIdC5wcm90b3R5cGUuaXNCdWZmZXJHZW9tZXRyeT0hMDt2YXIgcGc9bmV3IHd0LGJyPW5ldyBvaSxfdT1uZXcgc2ksSm49bmV3IFQsJG49bmV3IFQsS249bmV3IFQsd3U9bmV3IFQsTXU9bmV3IFQsYnU9bmV3IFQsQ2E9bmV3IFQsUmE9bmV3IFQsTGE9bmV3IFQsUGE9bmV3IEssRGE9bmV3IEssSWE9bmV3IEssU3U9bmV3IFQsTmE9bmV3IFQsb2U9Y2xhc3MgZXh0ZW5kcyBrdHtjb25zdHJ1Y3Rvcih0PW5ldyBIdCxlPW5ldyBraSl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2giLHRoaXMuZ2VvbWV0cnk9dCx0aGlzLm1hdGVyaWFsPWUsdGhpcy51cGRhdGVNb3JwaFRhcmdldHMoKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHQubW9ycGhUYXJnZXRJbmZsdWVuY2VzIT09dm9pZCAwJiYodGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXM9dC5tb3JwaFRhcmdldEluZmx1ZW5jZXMuc2xpY2UoKSksdC5tb3JwaFRhcmdldERpY3Rpb25hcnkhPT12b2lkIDAmJih0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeT1PYmplY3QuYXNzaWduKHt9LHQubW9ycGhUYXJnZXREaWN0aW9uYXJ5KSksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXMuZ2VvbWV0cnk9dC5nZW9tZXRyeSx0aGlzfXVwZGF0ZU1vcnBoVGFyZ2V0cygpe2xldCB0PXRoaXMuZ2VvbWV0cnk7aWYodC5pc0J1ZmZlckdlb21ldHJ5KXtsZXQgZT10Lm1vcnBoQXR0cmlidXRlcyxpPU9iamVjdC5rZXlzKGUpO2lmKGkubGVuZ3RoPjApe2xldCByPWVbaVswXV07aWYociE9PXZvaWQgMCl7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXM9W10sdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnk9e307Zm9yKGxldCBzPTAsbz1yLmxlbmd0aDtzPG87cysrKXtsZXQgYT1yW3NdLm5hbWV8fFN0cmluZyhzKTt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcy5wdXNoKDApLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5W2FdPXN9fX19ZWxzZXtsZXQgZT10Lm1vcnBoVGFyZ2V0cztlIT09dm9pZCAwJiZlLmxlbmd0aD4wJiZjb25zb2xlLmVycm9yKCJUSFJFRS5NZXNoLnVwZGF0ZU1vcnBoVGFyZ2V0cygpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9fXJheWNhc3QodCxlKXtsZXQgaT10aGlzLmdlb21ldHJ5LHI9dGhpcy5tYXRlcmlhbCxzPXRoaXMubWF0cml4V29ybGQ7aWYocj09PXZvaWQgMHx8KGkuYm91bmRpbmdTcGhlcmU9PT1udWxsJiZpLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLF91LmNvcHkoaS5ib3VuZGluZ1NwaGVyZSksX3UuYXBwbHlNYXRyaXg0KHMpLHQucmF5LmludGVyc2VjdHNTcGhlcmUoX3UpPT09ITEpfHwocGcuY29weShzKS5pbnZlcnQoKSxici5jb3B5KHQucmF5KS5hcHBseU1hdHJpeDQocGcpLGkuYm91bmRpbmdCb3ghPT1udWxsJiZici5pbnRlcnNlY3RzQm94KGkuYm91bmRpbmdCb3gpPT09ITEpKXJldHVybjtsZXQgbztpZihpLmlzQnVmZmVyR2VvbWV0cnkpe2xldCBhPWkuaW5kZXgsbD1pLmF0dHJpYnV0ZXMucG9zaXRpb24sYz1pLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbix1PWkubW9ycGhUYXJnZXRzUmVsYXRpdmUsaD1pLmF0dHJpYnV0ZXMudXYsZj1pLmF0dHJpYnV0ZXMudXYyLGQ9aS5ncm91cHMsZz1pLmRyYXdSYW5nZTtpZihhIT09bnVsbClpZihBcnJheS5pc0FycmF5KHIpKWZvcihsZXQgeD0wLHY9ZC5sZW5ndGg7eDx2O3grKyl7bGV0IG09ZFt4XSxwPXJbbS5tYXRlcmlhbEluZGV4XSxiPU1hdGgubWF4KG0uc3RhcnQsZy5zdGFydCksXz1NYXRoLm1pbihhLmNvdW50LE1hdGgubWluKG0uc3RhcnQrbS5jb3VudCxnLnN0YXJ0K2cuY291bnQpKTtmb3IobGV0IFM9YixMPV87UzxMO1MrPTMpe2xldCBBPWEuZ2V0WChTKSxIPWEuZ2V0WChTKzEpLHR0PWEuZ2V0WChTKzIpO289RmEodGhpcyxwLHQsYnIsbCxjLHUsaCxmLEEsSCx0dCksbyYmKG8uZmFjZUluZGV4PU1hdGguZmxvb3IoUy8zKSxvLmZhY2UubWF0ZXJpYWxJbmRleD1tLm1hdGVyaWFsSW5kZXgsZS5wdXNoKG8pKX19ZWxzZXtsZXQgeD1NYXRoLm1heCgwLGcuc3RhcnQpLHY9TWF0aC5taW4oYS5jb3VudCxnLnN0YXJ0K2cuY291bnQpO2ZvcihsZXQgbT14LHA9djttPHA7bSs9Myl7bGV0IGI9YS5nZXRYKG0pLF89YS5nZXRYKG0rMSksUz1hLmdldFgobSsyKTtvPUZhKHRoaXMscix0LGJyLGwsYyx1LGgsZixiLF8sUyksbyYmKG8uZmFjZUluZGV4PU1hdGguZmxvb3IobS8zKSxlLnB1c2gobykpfX1lbHNlIGlmKGwhPT12b2lkIDApaWYoQXJyYXkuaXNBcnJheShyKSlmb3IobGV0IHg9MCx2PWQubGVuZ3RoO3g8djt4Kyspe2xldCBtPWRbeF0scD1yW20ubWF0ZXJpYWxJbmRleF0sYj1NYXRoLm1heChtLnN0YXJ0LGcuc3RhcnQpLF89TWF0aC5taW4obC5jb3VudCxNYXRoLm1pbihtLnN0YXJ0K20uY291bnQsZy5zdGFydCtnLmNvdW50KSk7Zm9yKGxldCBTPWIsTD1fO1M8TDtTKz0zKXtsZXQgQT1TLEg9UysxLHR0PVMrMjtvPUZhKHRoaXMscCx0LGJyLGwsYyx1LGgsZixBLEgsdHQpLG8mJihvLmZhY2VJbmRleD1NYXRoLmZsb29yKFMvMyksby5mYWNlLm1hdGVyaWFsSW5kZXg9bS5tYXRlcmlhbEluZGV4LGUucHVzaChvKSl9fWVsc2V7bGV0IHg9TWF0aC5tYXgoMCxnLnN0YXJ0KSx2PU1hdGgubWluKGwuY291bnQsZy5zdGFydCtnLmNvdW50KTtmb3IobGV0IG09eCxwPXY7bTxwO20rPTMpe2xldCBiPW0sXz1tKzEsUz1tKzI7bz1GYSh0aGlzLHIsdCxicixsLGMsdSxoLGYsYixfLFMpLG8mJihvLmZhY2VJbmRleD1NYXRoLmZsb29yKG0vMyksZS5wdXNoKG8pKX19fWVsc2UgaS5pc0dlb21ldHJ5JiZjb25zb2xlLmVycm9yKCJUSFJFRS5NZXNoLnJheWNhc3QoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfX07b2UucHJvdG90eXBlLmlzTWVzaD0hMDtmdW5jdGlvbiBkTShuLHQsZSxpLHIscyxvLGEpe2xldCBsO2lmKHQuc2lkZT09PWhlP2w9aS5pbnRlcnNlY3RUcmlhbmdsZShvLHMsciwhMCxhKTpsPWkuaW50ZXJzZWN0VHJpYW5nbGUocixzLG8sdC5zaWRlIT09SHIsYSksbD09PW51bGwpcmV0dXJuIG51bGw7TmEuY29weShhKSxOYS5hcHBseU1hdHJpeDQobi5tYXRyaXhXb3JsZCk7bGV0IGM9ZS5yYXkub3JpZ2luLmRpc3RhbmNlVG8oTmEpO3JldHVybiBjPGUubmVhcnx8Yz5lLmZhcj9udWxsOntkaXN0YW5jZTpjLHBvaW50Ok5hLmNsb25lKCksb2JqZWN0Om59fWZ1bmN0aW9uIEZhKG4sdCxlLGkscixzLG8sYSxsLGMsdSxoKXtKbi5mcm9tQnVmZmVyQXR0cmlidXRlKHIsYyksJG4uZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLHUpLEtuLmZyb21CdWZmZXJBdHRyaWJ1dGUocixoKTtsZXQgZj1uLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcztpZihzJiZmKXtDYS5zZXQoMCwwLDApLFJhLnNldCgwLDAsMCksTGEuc2V0KDAsMCwwKTtmb3IobGV0IGc9MCx4PXMubGVuZ3RoO2c8eDtnKyspe2xldCB2PWZbZ10sbT1zW2ddO3YhPT0wJiYod3UuZnJvbUJ1ZmZlckF0dHJpYnV0ZShtLGMpLE11LmZyb21CdWZmZXJBdHRyaWJ1dGUobSx1KSxidS5mcm9tQnVmZmVyQXR0cmlidXRlKG0saCksbz8oQ2EuYWRkU2NhbGVkVmVjdG9yKHd1LHYpLFJhLmFkZFNjYWxlZFZlY3RvcihNdSx2KSxMYS5hZGRTY2FsZWRWZWN0b3IoYnUsdikpOihDYS5hZGRTY2FsZWRWZWN0b3Iod3Uuc3ViKEpuKSx2KSxSYS5hZGRTY2FsZWRWZWN0b3IoTXUuc3ViKCRuKSx2KSxMYS5hZGRTY2FsZWRWZWN0b3IoYnUuc3ViKEtuKSx2KSkpfUpuLmFkZChDYSksJG4uYWRkKFJhKSxLbi5hZGQoTGEpfW4uaXNTa2lubmVkTWVzaCYmKG4uYm9uZVRyYW5zZm9ybShjLEpuKSxuLmJvbmVUcmFuc2Zvcm0odSwkbiksbi5ib25lVHJhbnNmb3JtKGgsS24pKTtsZXQgZD1kTShuLHQsZSxpLEpuLCRuLEtuLFN1KTtpZihkKXthJiYoUGEuZnJvbUJ1ZmZlckF0dHJpYnV0ZShhLGMpLERhLmZyb21CdWZmZXJBdHRyaWJ1dGUoYSx1KSxJYS5mcm9tQnVmZmVyQXR0cmlidXRlKGEsaCksZC51dj1yZS5nZXRVVihTdSxKbiwkbixLbixQYSxEYSxJYSxuZXcgSykpLGwmJihQYS5mcm9tQnVmZmVyQXR0cmlidXRlKGwsYyksRGEuZnJvbUJ1ZmZlckF0dHJpYnV0ZShsLHUpLElhLmZyb21CdWZmZXJBdHRyaWJ1dGUobCxoKSxkLnV2Mj1yZS5nZXRVVihTdSxKbiwkbixLbixQYSxEYSxJYSxuZXcgSykpO2xldCBnPXthOmMsYjp1LGM6aCxub3JtYWw6bmV3IFQsbWF0ZXJpYWxJbmRleDowfTtyZS5nZXROb3JtYWwoSm4sJG4sS24sZy5ub3JtYWwpLGQuZmFjZT1nfXJldHVybiBkfXZhciBIaT1jbGFzcyBleHRlbmRzIEh0e2NvbnN0cnVjdG9yKHQ9MSxlPTEsaT0xLHI9MSxzPTEsbz0xKXtzdXBlcigpLHRoaXMudHlwZT0iQm94R2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17d2lkdGg6dCxoZWlnaHQ6ZSxkZXB0aDppLHdpZHRoU2VnbWVudHM6cixoZWlnaHRTZWdtZW50czpzLGRlcHRoU2VnbWVudHM6b307bGV0IGE9dGhpcztyPU1hdGguZmxvb3Iocikscz1NYXRoLmZsb29yKHMpLG89TWF0aC5mbG9vcihvKTtsZXQgbD1bXSxjPVtdLHU9W10saD1bXSxmPTAsZD0wO2coInoiLCJ5IiwieCIsLTEsLTEsaSxlLHQsbyxzLDApLGcoInoiLCJ5IiwieCIsMSwtMSxpLGUsLXQsbyxzLDEpLGcoIngiLCJ6IiwieSIsMSwxLHQsaSxlLHIsbywyKSxnKCJ4IiwieiIsInkiLDEsLTEsdCxpLC1lLHIsbywzKSxnKCJ4IiwieSIsInoiLDEsLTEsdCxlLGkscixzLDQpLGcoIngiLCJ5IiwieiIsLTEsLTEsdCxlLC1pLHIscyw1KSx0aGlzLnNldEluZGV4KGwpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGVlKGMsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyBlZSh1LDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBlZShoLDIpKTtmdW5jdGlvbiBnKHgsdixtLHAsYixfLFMsTCxBLEgsdHQpe2xldCBYPV8vQSx5PVMvSCxSPV8vMixEPVMvMixGPUwvMix6PUErMSxOPUgrMSxWPTAsUT0wLGF0PW5ldyBUO2ZvcihsZXQgRz0wO0c8TjtHKyspe2xldCAkPUcqeS1EO2ZvcihsZXQgbHQ9MDtsdDx6O2x0Kyspe2xldCBkdD1sdCpYLVI7YXRbeF09ZHQqcCxhdFt2XT0kKmIsYXRbbV09RixjLnB1c2goYXQueCxhdC55LGF0LnopLGF0W3hdPTAsYXRbdl09MCxhdFttXT1MPjA/MTotMSx1LnB1c2goYXQueCxhdC55LGF0LnopLGgucHVzaChsdC9BKSxoLnB1c2goMS1HL0gpLFYrPTF9fWZvcihsZXQgRz0wO0c8SDtHKyspZm9yKGxldCAkPTA7JDxBOyQrKyl7bGV0IGx0PWYrJCt6KkcsZHQ9ZiskK3oqKEcrMSkseHQ9ZisoJCsxKSt6KihHKzEpLGs9ZisoJCsxKSt6Kkc7bC5wdXNoKGx0LGR0LGspLGwucHVzaChkdCx4dCxrKSxRKz02fWEuYWRkR3JvdXAoZCxRLHR0KSxkKz1RLGYrPVZ9fXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IEhpKHQud2lkdGgsdC5oZWlnaHQsdC5kZXB0aCx0LndpZHRoU2VnbWVudHMsdC5oZWlnaHRTZWdtZW50cyx0LmRlcHRoU2VnbWVudHMpfX07ZnVuY3Rpb24gR3Iobil7bGV0IHQ9e307Zm9yKGxldCBlIGluIG4pe3RbZV09e307Zm9yKGxldCBpIGluIG5bZV0pe2xldCByPW5bZV1baV07ciYmKHIuaXNDb2xvcnx8ci5pc01hdHJpeDN8fHIuaXNNYXRyaXg0fHxyLmlzVmVjdG9yMnx8ci5pc1ZlY3RvcjN8fHIuaXNWZWN0b3I0fHxyLmlzVGV4dHVyZXx8ci5pc1F1YXRlcm5pb24pP3RbZV1baV09ci5jbG9uZSgpOkFycmF5LmlzQXJyYXkocik/dFtlXVtpXT1yLnNsaWNlKCk6dFtlXVtpXT1yfX1yZXR1cm4gdH1mdW5jdGlvbiBNZShuKXtsZXQgdD17fTtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrKyl7bGV0IGk9R3IobltlXSk7Zm9yKGxldCByIGluIGkpdFtyXT1pW3JdfXJldHVybiB0fXZhciBwTT17Y2xvbmU6R3IsbWVyZ2U6TWV9LG1NPWB2b2lkIG1haW4oKSB7CglnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KCBwb3NpdGlvbiwgMS4wICk7Cn1gLGdNPWB2b2lkIG1haW4oKSB7CglnbF9GcmFnQ29sb3IgPSB2ZWM0KCAxLjAsIDAuMCwgMC4wLCAxLjAgKTsKfWAsRm49Y2xhc3MgZXh0ZW5kcyB4ZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iU2hhZGVyTWF0ZXJpYWwiLHRoaXMuZGVmaW5lcz17fSx0aGlzLnVuaWZvcm1zPXt9LHRoaXMudmVydGV4U2hhZGVyPW1NLHRoaXMuZnJhZ21lbnRTaGFkZXI9Z00sdGhpcy5saW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMuZm9nPSExLHRoaXMubGlnaHRzPSExLHRoaXMuY2xpcHBpbmc9ITEsdGhpcy5leHRlbnNpb25zPXtkZXJpdmF0aXZlczohMSxmcmFnRGVwdGg6ITEsZHJhd0J1ZmZlcnM6ITEsc2hhZGVyVGV4dHVyZUxPRDohMX0sdGhpcy5kZWZhdWx0QXR0cmlidXRlVmFsdWVzPXtjb2xvcjpbMSwxLDFdLHV2OlswLDBdLHV2MjpbMCwwXX0sdGhpcy5pbmRleDBBdHRyaWJ1dGVOYW1lPXZvaWQgMCx0aGlzLnVuaWZvcm1zTmVlZFVwZGF0ZT0hMSx0aGlzLmdsc2xWZXJzaW9uPW51bGwsdCE9PXZvaWQgMCYmKHQuYXR0cmlidXRlcyE9PXZvaWQgMCYmY29uc29sZS5lcnJvcigiVEhSRUUuU2hhZGVyTWF0ZXJpYWw6IGF0dHJpYnV0ZXMgc2hvdWxkIG5vdyBiZSBkZWZpbmVkIGluIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIiksdGhpcy5zZXRWYWx1ZXModCkpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5mcmFnbWVudFNoYWRlcj10LmZyYWdtZW50U2hhZGVyLHRoaXMudmVydGV4U2hhZGVyPXQudmVydGV4U2hhZGVyLHRoaXMudW5pZm9ybXM9R3IodC51bmlmb3JtcyksdGhpcy5kZWZpbmVzPU9iamVjdC5hc3NpZ24oe30sdC5kZWZpbmVzKSx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLmxpZ2h0cz10LmxpZ2h0cyx0aGlzLmNsaXBwaW5nPXQuY2xpcHBpbmcsdGhpcy5leHRlbnNpb25zPU9iamVjdC5hc3NpZ24oe30sdC5leHRlbnNpb25zKSx0aGlzLmdsc2xWZXJzaW9uPXQuZ2xzbFZlcnNpb24sdGhpc310b0pTT04odCl7bGV0IGU9c3VwZXIudG9KU09OKHQpO2UuZ2xzbFZlcnNpb249dGhpcy5nbHNsVmVyc2lvbixlLnVuaWZvcm1zPXt9O2ZvcihsZXQgciBpbiB0aGlzLnVuaWZvcm1zKXtsZXQgbz10aGlzLnVuaWZvcm1zW3JdLnZhbHVlO28mJm8uaXNUZXh0dXJlP2UudW5pZm9ybXNbcl09e3R5cGU6InQiLHZhbHVlOm8udG9KU09OKHQpLnV1aWR9Om8mJm8uaXNDb2xvcj9lLnVuaWZvcm1zW3JdPXt0eXBlOiJjIix2YWx1ZTpvLmdldEhleCgpfTpvJiZvLmlzVmVjdG9yMj9lLnVuaWZvcm1zW3JdPXt0eXBlOiJ2MiIsdmFsdWU6by50b0FycmF5KCl9Om8mJm8uaXNWZWN0b3IzP2UudW5pZm9ybXNbcl09e3R5cGU6InYzIix2YWx1ZTpvLnRvQXJyYXkoKX06byYmby5pc1ZlY3RvcjQ/ZS51bmlmb3Jtc1tyXT17dHlwZToidjQiLHZhbHVlOm8udG9BcnJheSgpfTpvJiZvLmlzTWF0cml4Mz9lLnVuaWZvcm1zW3JdPXt0eXBlOiJtMyIsdmFsdWU6by50b0FycmF5KCl9Om8mJm8uaXNNYXRyaXg0P2UudW5pZm9ybXNbcl09e3R5cGU6Im00Iix2YWx1ZTpvLnRvQXJyYXkoKX06ZS51bmlmb3Jtc1tyXT17dmFsdWU6b319T2JqZWN0LmtleXModGhpcy5kZWZpbmVzKS5sZW5ndGg+MCYmKGUuZGVmaW5lcz10aGlzLmRlZmluZXMpLGUudmVydGV4U2hhZGVyPXRoaXMudmVydGV4U2hhZGVyLGUuZnJhZ21lbnRTaGFkZXI9dGhpcy5mcmFnbWVudFNoYWRlcjtsZXQgaT17fTtmb3IobGV0IHIgaW4gdGhpcy5leHRlbnNpb25zKXRoaXMuZXh0ZW5zaW9uc1tyXT09PSEwJiYoaVtyXT0hMCk7cmV0dXJuIE9iamVjdC5rZXlzKGkpLmxlbmd0aD4wJiYoZS5leHRlbnNpb25zPWkpLGV9fTtGbi5wcm90b3R5cGUuaXNTaGFkZXJNYXRlcmlhbD0hMDt2YXIgb289Y2xhc3MgZXh0ZW5kcyBrdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJDYW1lcmEiLHRoaXMubWF0cml4V29ybGRJbnZlcnNlPW5ldyB3dCx0aGlzLnByb2plY3Rpb25NYXRyaXg9bmV3IHd0LHRoaXMucHJvamVjdGlvbk1hdHJpeEludmVyc2U9bmV3IHd0fWNvcHkodCxlKXtyZXR1cm4gc3VwZXIuY29weSh0LGUpLHRoaXMubWF0cml4V29ybGRJbnZlcnNlLmNvcHkodC5tYXRyaXhXb3JsZEludmVyc2UpLHRoaXMucHJvamVjdGlvbk1hdHJpeC5jb3B5KHQucHJvamVjdGlvbk1hdHJpeCksdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZS5jb3B5KHQucHJvamVjdGlvbk1hdHJpeEludmVyc2UpLHRoaXN9Z2V0V29ybGREaXJlY3Rpb24odCl7dGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSk7bGV0IGU9dGhpcy5tYXRyaXhXb3JsZC5lbGVtZW50cztyZXR1cm4gdC5zZXQoLWVbOF0sLWVbOV0sLWVbMTBdKS5ub3JtYWxpemUoKX11cGRhdGVNYXRyaXhXb3JsZCh0KXtzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KSx0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHRoaXMubWF0cml4V29ybGQpLmludmVydCgpfXVwZGF0ZVdvcmxkTWF0cml4KHQsZSl7c3VwZXIudXBkYXRlV29ybGRNYXRyaXgodCxlKSx0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHRoaXMubWF0cml4V29ybGQpLmludmVydCgpfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuY29weSh0aGlzKX19O29vLnByb3RvdHlwZS5pc0NhbWVyYT0hMDt2YXIgU2U9Y2xhc3MgZXh0ZW5kcyBvb3tjb25zdHJ1Y3Rvcih0PTUwLGU9MSxpPS4xLHI9MmUzKXtzdXBlcigpLHRoaXMudHlwZT0iUGVyc3BlY3RpdmVDYW1lcmEiLHRoaXMuZm92PXQsdGhpcy56b29tPTEsdGhpcy5uZWFyPWksdGhpcy5mYXI9cix0aGlzLmZvY3VzPTEwLHRoaXMuYXNwZWN0PWUsdGhpcy52aWV3PW51bGwsdGhpcy5maWxtR2F1Z2U9MzUsdGhpcy5maWxtT2Zmc2V0PTAsdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksdGhpcy5mb3Y9dC5mb3YsdGhpcy56b29tPXQuem9vbSx0aGlzLm5lYXI9dC5uZWFyLHRoaXMuZmFyPXQuZmFyLHRoaXMuZm9jdXM9dC5mb2N1cyx0aGlzLmFzcGVjdD10LmFzcGVjdCx0aGlzLnZpZXc9dC52aWV3PT09bnVsbD9udWxsOk9iamVjdC5hc3NpZ24oe30sdC52aWV3KSx0aGlzLmZpbG1HYXVnZT10LmZpbG1HYXVnZSx0aGlzLmZpbG1PZmZzZXQ9dC5maWxtT2Zmc2V0LHRoaXN9c2V0Rm9jYWxMZW5ndGgodCl7bGV0IGU9LjUqdGhpcy5nZXRGaWxtSGVpZ2h0KCkvdDt0aGlzLmZvdj1WdSoyKk1hdGguYXRhbihlKSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1nZXRGb2NhbExlbmd0aCgpe2xldCB0PU1hdGgudGFuKGl1Ki41KnRoaXMuZm92KTtyZXR1cm4gLjUqdGhpcy5nZXRGaWxtSGVpZ2h0KCkvdH1nZXRFZmZlY3RpdmVGT1YoKXtyZXR1cm4gVnUqMipNYXRoLmF0YW4oTWF0aC50YW4oaXUqLjUqdGhpcy5mb3YpL3RoaXMuem9vbSl9Z2V0RmlsbVdpZHRoKCl7cmV0dXJuIHRoaXMuZmlsbUdhdWdlKk1hdGgubWluKHRoaXMuYXNwZWN0LDEpfWdldEZpbG1IZWlnaHQoKXtyZXR1cm4gdGhpcy5maWxtR2F1Z2UvTWF0aC5tYXgodGhpcy5hc3BlY3QsMSl9c2V0Vmlld09mZnNldCh0LGUsaSxyLHMsbyl7dGhpcy5hc3BlY3Q9dC9lLHRoaXMudmlldz09PW51bGwmJih0aGlzLnZpZXc9e2VuYWJsZWQ6ITAsZnVsbFdpZHRoOjEsZnVsbEhlaWdodDoxLG9mZnNldFg6MCxvZmZzZXRZOjAsd2lkdGg6MSxoZWlnaHQ6MX0pLHRoaXMudmlldy5lbmFibGVkPSEwLHRoaXMudmlldy5mdWxsV2lkdGg9dCx0aGlzLnZpZXcuZnVsbEhlaWdodD1lLHRoaXMudmlldy5vZmZzZXRYPWksdGhpcy52aWV3Lm9mZnNldFk9cix0aGlzLnZpZXcud2lkdGg9cyx0aGlzLnZpZXcuaGVpZ2h0PW8sdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y2xlYXJWaWV3T2Zmc2V0KCl7dGhpcy52aWV3IT09bnVsbCYmKHRoaXMudmlldy5lbmFibGVkPSExKSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX11cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl7bGV0IHQ9dGhpcy5uZWFyLGU9dCpNYXRoLnRhbihpdSouNSp0aGlzLmZvdikvdGhpcy56b29tLGk9MiplLHI9dGhpcy5hc3BlY3QqaSxzPS0uNSpyLG89dGhpcy52aWV3O2lmKHRoaXMudmlldyE9PW51bGwmJnRoaXMudmlldy5lbmFibGVkKXtsZXQgbD1vLmZ1bGxXaWR0aCxjPW8uZnVsbEhlaWdodDtzKz1vLm9mZnNldFgqci9sLGUtPW8ub2Zmc2V0WSppL2Mscio9by53aWR0aC9sLGkqPW8uaGVpZ2h0L2N9bGV0IGE9dGhpcy5maWxtT2Zmc2V0O2EhPT0wJiYocys9dCphL3RoaXMuZ2V0RmlsbVdpZHRoKCkpLHRoaXMucHJvamVjdGlvbk1hdHJpeC5tYWtlUGVyc3BlY3RpdmUocyxzK3IsZSxlLWksdCx0aGlzLmZhciksdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZS5jb3B5KHRoaXMucHJvamVjdGlvbk1hdHJpeCkuaW52ZXJ0KCl9dG9KU09OKHQpe2xldCBlPXN1cGVyLnRvSlNPTih0KTtyZXR1cm4gZS5vYmplY3QuZm92PXRoaXMuZm92LGUub2JqZWN0Lnpvb209dGhpcy56b29tLGUub2JqZWN0Lm5lYXI9dGhpcy5uZWFyLGUub2JqZWN0LmZhcj10aGlzLmZhcixlLm9iamVjdC5mb2N1cz10aGlzLmZvY3VzLGUub2JqZWN0LmFzcGVjdD10aGlzLmFzcGVjdCx0aGlzLnZpZXchPT1udWxsJiYoZS5vYmplY3Qudmlldz1PYmplY3QuYXNzaWduKHt9LHRoaXMudmlldykpLGUub2JqZWN0LmZpbG1HYXVnZT10aGlzLmZpbG1HYXVnZSxlLm9iamVjdC5maWxtT2Zmc2V0PXRoaXMuZmlsbU9mZnNldCxlfX07U2UucHJvdG90eXBlLmlzUGVyc3BlY3RpdmVDYW1lcmE9ITA7dmFyIFNyPTkwLEVyPTEsYW89Y2xhc3MgZXh0ZW5kcyBrdHtjb25zdHJ1Y3Rvcih0LGUsaSl7aWYoc3VwZXIoKSx0aGlzLnR5cGU9IkN1YmVDYW1lcmEiLGkuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQhPT0hMCl7Y29uc29sZS5lcnJvcigiVEhSRUUuQ3ViZUNhbWVyYTogVGhlIGNvbnN0cnVjdG9yIG5vdyBleHBlY3RzIGFuIGluc3RhbmNlIG9mIFdlYkdMQ3ViZVJlbmRlclRhcmdldCBhcyB0aGlyZCBwYXJhbWV0ZXIuIik7cmV0dXJufXRoaXMucmVuZGVyVGFyZ2V0PWk7bGV0IHI9bmV3IFNlKFNyLEVyLHQsZSk7ci5sYXllcnM9dGhpcy5sYXllcnMsci51cC5zZXQoMCwtMSwwKSxyLmxvb2tBdChuZXcgVCgxLDAsMCkpLHRoaXMuYWRkKHIpO2xldCBzPW5ldyBTZShTcixFcix0LGUpO3MubGF5ZXJzPXRoaXMubGF5ZXJzLHMudXAuc2V0KDAsLTEsMCkscy5sb29rQXQobmV3IFQoLTEsMCwwKSksdGhpcy5hZGQocyk7bGV0IG89bmV3IFNlKFNyLEVyLHQsZSk7by5sYXllcnM9dGhpcy5sYXllcnMsby51cC5zZXQoMCwwLDEpLG8ubG9va0F0KG5ldyBUKDAsMSwwKSksdGhpcy5hZGQobyk7bGV0IGE9bmV3IFNlKFNyLEVyLHQsZSk7YS5sYXllcnM9dGhpcy5sYXllcnMsYS51cC5zZXQoMCwwLC0xKSxhLmxvb2tBdChuZXcgVCgwLC0xLDApKSx0aGlzLmFkZChhKTtsZXQgbD1uZXcgU2UoU3IsRXIsdCxlKTtsLmxheWVycz10aGlzLmxheWVycyxsLnVwLnNldCgwLC0xLDApLGwubG9va0F0KG5ldyBUKDAsMCwxKSksdGhpcy5hZGQobCk7bGV0IGM9bmV3IFNlKFNyLEVyLHQsZSk7Yy5sYXllcnM9dGhpcy5sYXllcnMsYy51cC5zZXQoMCwtMSwwKSxjLmxvb2tBdChuZXcgVCgwLDAsLTEpKSx0aGlzLmFkZChjKX11cGRhdGUodCxlKXt0aGlzLnBhcmVudD09PW51bGwmJnRoaXMudXBkYXRlTWF0cml4V29ybGQoKTtsZXQgaT10aGlzLnJlbmRlclRhcmdldCxbcixzLG8sYSxsLGNdPXRoaXMuY2hpbGRyZW4sdT10LnhyLmVuYWJsZWQsaD10LmdldFJlbmRlclRhcmdldCgpO3QueHIuZW5hYmxlZD0hMTtsZXQgZj1pLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzO2kudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9ITEsdC5zZXRSZW5kZXJUYXJnZXQoaSwwKSx0LnJlbmRlcihlLHIpLHQuc2V0UmVuZGVyVGFyZ2V0KGksMSksdC5yZW5kZXIoZSxzKSx0LnNldFJlbmRlclRhcmdldChpLDIpLHQucmVuZGVyKGUsbyksdC5zZXRSZW5kZXJUYXJnZXQoaSwzKSx0LnJlbmRlcihlLGEpLHQuc2V0UmVuZGVyVGFyZ2V0KGksNCksdC5yZW5kZXIoZSxsKSxpLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzPWYsdC5zZXRSZW5kZXJUYXJnZXQoaSw1KSx0LnJlbmRlcihlLGMpLHQuc2V0UmVuZGVyVGFyZ2V0KGgpLHQueHIuZW5hYmxlZD11LGkudGV4dHVyZS5uZWVkc1BNUkVNVXBkYXRlPSEwfX0sV3I9Y2xhc3MgZXh0ZW5kcyBhZXtjb25zdHJ1Y3Rvcih0LGUsaSxyLHMsbyxhLGwsYyx1KXt0PXQhPT12b2lkIDA/dDpbXSxlPWUhPT12b2lkIDA/ZTpBbyxzdXBlcih0LGUsaSxyLHMsbyxhLGwsYyx1KSx0aGlzLmZsaXBZPSExfWdldCBpbWFnZXMoKXtyZXR1cm4gdGhpcy5pbWFnZX1zZXQgaW1hZ2VzKHQpe3RoaXMuaW1hZ2U9dH19O1dyLnByb3RvdHlwZS5pc0N1YmVUZXh0dXJlPSEwO3ZhciBvbD1jbGFzcyBleHRlbmRzIE5le2NvbnN0cnVjdG9yKHQsZSxpKXtOdW1iZXIuaXNJbnRlZ2VyKGUpJiYoY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTEN1YmVSZW5kZXJUYXJnZXQ6IGNvbnN0cnVjdG9yIHNpZ25hdHVyZSBpcyBub3cgV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KCBzaXplLCBvcHRpb25zICkiKSxlPWkpLHN1cGVyKHQsdCxlKSxlPWV8fHt9LHRoaXMudGV4dHVyZT1uZXcgV3Iodm9pZCAwLGUubWFwcGluZyxlLndyYXBTLGUud3JhcFQsZS5tYWdGaWx0ZXIsZS5taW5GaWx0ZXIsZS5mb3JtYXQsZS50eXBlLGUuYW5pc290cm9weSxlLmVuY29kaW5nKSx0aGlzLnRleHR1cmUuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPSEwLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9ZS5nZW5lcmF0ZU1pcG1hcHMhPT12b2lkIDA/ZS5nZW5lcmF0ZU1pcG1hcHM6ITEsdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj1lLm1pbkZpbHRlciE9PXZvaWQgMD9lLm1pbkZpbHRlcjpiZX1mcm9tRXF1aXJlY3Rhbmd1bGFyVGV4dHVyZSh0LGUpe3RoaXMudGV4dHVyZS50eXBlPWUudHlwZSx0aGlzLnRleHR1cmUuZm9ybWF0PVJlLHRoaXMudGV4dHVyZS5lbmNvZGluZz1lLmVuY29kaW5nLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9ZS5nZW5lcmF0ZU1pcG1hcHMsdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj1lLm1pbkZpbHRlcix0aGlzLnRleHR1cmUubWFnRmlsdGVyPWUubWFnRmlsdGVyO2xldCBpPXt1bmlmb3Jtczp7dEVxdWlyZWN0Ont2YWx1ZTpudWxsfX0sdmVydGV4U2hhZGVyOmAKCgkJCQl2YXJ5aW5nIHZlYzMgdldvcmxkRGlyZWN0aW9uOwoKCQkJCXZlYzMgdHJhbnNmb3JtRGlyZWN0aW9uKCBpbiB2ZWMzIGRpciwgaW4gbWF0NCBtYXRyaXggKSB7CgoJCQkJCXJldHVybiBub3JtYWxpemUoICggbWF0cml4ICogdmVjNCggZGlyLCAwLjAgKSApLnh5eiApOwoKCQkJCX0KCgkJCQl2b2lkIG1haW4oKSB7CgoJCQkJCXZXb3JsZERpcmVjdGlvbiA9IHRyYW5zZm9ybURpcmVjdGlvbiggcG9zaXRpb24sIG1vZGVsTWF0cml4ICk7CgoJCQkJCSNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+CgkJCQkJI2luY2x1ZGUgPHByb2plY3RfdmVydGV4PgoKCQkJCX0KCQkJYCxmcmFnbWVudFNoYWRlcjpgCgoJCQkJdW5pZm9ybSBzYW1wbGVyMkQgdEVxdWlyZWN0OwoKCQkJCXZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247CgoJCQkJI2luY2x1ZGUgPGNvbW1vbj4KCgkJCQl2b2lkIG1haW4oKSB7CgoJCQkJCXZlYzMgZGlyZWN0aW9uID0gbm9ybWFsaXplKCB2V29ybGREaXJlY3Rpb24gKTsKCgkJCQkJdmVjMiBzYW1wbGVVViA9IGVxdWlyZWN0VXYoIGRpcmVjdGlvbiApOwoKCQkJCQlnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkQoIHRFcXVpcmVjdCwgc2FtcGxlVVYgKTsKCgkJCQl9CgkJCWB9LHI9bmV3IEhpKDUsNSw1KSxzPW5ldyBGbih7bmFtZToiQ3ViZW1hcEZyb21FcXVpcmVjdCIsdW5pZm9ybXM6R3IoaS51bmlmb3JtcyksdmVydGV4U2hhZGVyOmkudmVydGV4U2hhZGVyLGZyYWdtZW50U2hhZGVyOmkuZnJhZ21lbnRTaGFkZXIsc2lkZTpoZSxibGVuZGluZzpqbn0pO3MudW5pZm9ybXMudEVxdWlyZWN0LnZhbHVlPWU7bGV0IG89bmV3IG9lKHIscyksYT1lLm1pbkZpbHRlcjtyZXR1cm4gZS5taW5GaWx0ZXI9PT1MbCYmKGUubWluRmlsdGVyPWJlKSxuZXcgYW8oMSwxMCx0aGlzKS51cGRhdGUodCxvKSxlLm1pbkZpbHRlcj1hLG8uZ2VvbWV0cnkuZGlzcG9zZSgpLG8ubWF0ZXJpYWwuZGlzcG9zZSgpLHRoaXN9Y2xlYXIodCxlLGkscil7bGV0IHM9dC5nZXRSZW5kZXJUYXJnZXQoKTtmb3IobGV0IG89MDtvPDY7bysrKXQuc2V0UmVuZGVyVGFyZ2V0KHRoaXMsbyksdC5jbGVhcihlLGkscik7dC5zZXRSZW5kZXJUYXJnZXQocyl9fTtvbC5wcm90b3R5cGUuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQ9ITA7dmFyIEV1PW5ldyBULHhNPW5ldyBULHlNPW5ldyBkZSxqZT1jbGFzc3tjb25zdHJ1Y3Rvcih0PW5ldyBUKDEsMCwwKSxlPTApe3RoaXMubm9ybWFsPXQsdGhpcy5jb25zdGFudD1lfXNldCh0LGUpe3JldHVybiB0aGlzLm5vcm1hbC5jb3B5KHQpLHRoaXMuY29uc3RhbnQ9ZSx0aGlzfXNldENvbXBvbmVudHModCxlLGkscil7cmV0dXJuIHRoaXMubm9ybWFsLnNldCh0LGUsaSksdGhpcy5jb25zdGFudD1yLHRoaXN9c2V0RnJvbU5vcm1hbEFuZENvcGxhbmFyUG9pbnQodCxlKXtyZXR1cm4gdGhpcy5ub3JtYWwuY29weSh0KSx0aGlzLmNvbnN0YW50PS1lLmRvdCh0aGlzLm5vcm1hbCksdGhpc31zZXRGcm9tQ29wbGFuYXJQb2ludHModCxlLGkpe2xldCByPUV1LnN1YlZlY3RvcnMoaSxlKS5jcm9zcyh4TS5zdWJWZWN0b3JzKHQsZSkpLm5vcm1hbGl6ZSgpO3JldHVybiB0aGlzLnNldEZyb21Ob3JtYWxBbmRDb3BsYW5hclBvaW50KHIsdCksdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLm5vcm1hbC5jb3B5KHQubm9ybWFsKSx0aGlzLmNvbnN0YW50PXQuY29uc3RhbnQsdGhpc31ub3JtYWxpemUoKXtsZXQgdD0xL3RoaXMubm9ybWFsLmxlbmd0aCgpO3JldHVybiB0aGlzLm5vcm1hbC5tdWx0aXBseVNjYWxhcih0KSx0aGlzLmNvbnN0YW50Kj10LHRoaXN9bmVnYXRlKCl7cmV0dXJuIHRoaXMuY29uc3RhbnQqPS0xLHRoaXMubm9ybWFsLm5lZ2F0ZSgpLHRoaXN9ZGlzdGFuY2VUb1BvaW50KHQpe3JldHVybiB0aGlzLm5vcm1hbC5kb3QodCkrdGhpcy5jb25zdGFudH1kaXN0YW5jZVRvU3BoZXJlKHQpe3JldHVybiB0aGlzLmRpc3RhbmNlVG9Qb2ludCh0LmNlbnRlciktdC5yYWRpdXN9cHJvamVjdFBvaW50KHQsZSl7cmV0dXJuIGUuY29weSh0aGlzLm5vcm1hbCkubXVsdGlwbHlTY2FsYXIoLXRoaXMuZGlzdGFuY2VUb1BvaW50KHQpKS5hZGQodCl9aW50ZXJzZWN0TGluZSh0LGUpe2xldCBpPXQuZGVsdGEoRXUpLHI9dGhpcy5ub3JtYWwuZG90KGkpO2lmKHI9PT0wKXJldHVybiB0aGlzLmRpc3RhbmNlVG9Qb2ludCh0LnN0YXJ0KT09PTA/ZS5jb3B5KHQuc3RhcnQpOm51bGw7bGV0IHM9LSh0LnN0YXJ0LmRvdCh0aGlzLm5vcm1hbCkrdGhpcy5jb25zdGFudCkvcjtyZXR1cm4gczwwfHxzPjE/bnVsbDplLmNvcHkoaSkubXVsdGlwbHlTY2FsYXIocykuYWRkKHQuc3RhcnQpfWludGVyc2VjdHNMaW5lKHQpe2xldCBlPXRoaXMuZGlzdGFuY2VUb1BvaW50KHQuc3RhcnQpLGk9dGhpcy5kaXN0YW5jZVRvUG9pbnQodC5lbmQpO3JldHVybiBlPDAmJmk+MHx8aTwwJiZlPjB9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzUGxhbmUodGhpcyl9aW50ZXJzZWN0c1NwaGVyZSh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzUGxhbmUodGhpcyl9Y29wbGFuYXJQb2ludCh0KXtyZXR1cm4gdC5jb3B5KHRoaXMubm9ybWFsKS5tdWx0aXBseVNjYWxhcigtdGhpcy5jb25zdGFudCl9YXBwbHlNYXRyaXg0KHQsZSl7bGV0IGk9ZXx8eU0uZ2V0Tm9ybWFsTWF0cml4KHQpLHI9dGhpcy5jb3BsYW5hclBvaW50KEV1KS5hcHBseU1hdHJpeDQodCkscz10aGlzLm5vcm1hbC5hcHBseU1hdHJpeDMoaSkubm9ybWFsaXplKCk7cmV0dXJuIHRoaXMuY29uc3RhbnQ9LXIuZG90KHMpLHRoaXN9dHJhbnNsYXRlKHQpe3JldHVybiB0aGlzLmNvbnN0YW50LT10LmRvdCh0aGlzLm5vcm1hbCksdGhpc31lcXVhbHModCl7cmV0dXJuIHQubm9ybWFsLmVxdWFscyh0aGlzLm5vcm1hbCkmJnQuY29uc3RhbnQ9PT10aGlzLmNvbnN0YW50fWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuY29weSh0aGlzKX19O2plLnByb3RvdHlwZS5pc1BsYW5lPSEwO3ZhciBUcj1uZXcgc2ksemE9bmV3IFQscXI9Y2xhc3N7Y29uc3RydWN0b3IodD1uZXcgamUsZT1uZXcgamUsaT1uZXcgamUscj1uZXcgamUscz1uZXcgamUsbz1uZXcgamUpe3RoaXMucGxhbmVzPVt0LGUsaSxyLHMsb119c2V0KHQsZSxpLHIscyxvKXtsZXQgYT10aGlzLnBsYW5lcztyZXR1cm4gYVswXS5jb3B5KHQpLGFbMV0uY29weShlKSxhWzJdLmNvcHkoaSksYVszXS5jb3B5KHIpLGFbNF0uY29weShzKSxhWzVdLmNvcHkobyksdGhpc31jb3B5KHQpe2xldCBlPXRoaXMucGxhbmVzO2ZvcihsZXQgaT0wO2k8NjtpKyspZVtpXS5jb3B5KHQucGxhbmVzW2ldKTtyZXR1cm4gdGhpc31zZXRGcm9tUHJvamVjdGlvbk1hdHJpeCh0KXtsZXQgZT10aGlzLnBsYW5lcyxpPXQuZWxlbWVudHMscj1pWzBdLHM9aVsxXSxvPWlbMl0sYT1pWzNdLGw9aVs0XSxjPWlbNV0sdT1pWzZdLGg9aVs3XSxmPWlbOF0sZD1pWzldLGc9aVsxMF0seD1pWzExXSx2PWlbMTJdLG09aVsxM10scD1pWzE0XSxiPWlbMTVdO3JldHVybiBlWzBdLnNldENvbXBvbmVudHMoYS1yLGgtbCx4LWYsYi12KS5ub3JtYWxpemUoKSxlWzFdLnNldENvbXBvbmVudHMoYStyLGgrbCx4K2YsYit2KS5ub3JtYWxpemUoKSxlWzJdLnNldENvbXBvbmVudHMoYStzLGgrYyx4K2QsYittKS5ub3JtYWxpemUoKSxlWzNdLnNldENvbXBvbmVudHMoYS1zLGgtYyx4LWQsYi1tKS5ub3JtYWxpemUoKSxlWzRdLnNldENvbXBvbmVudHMoYS1vLGgtdSx4LWcsYi1wKS5ub3JtYWxpemUoKSxlWzVdLnNldENvbXBvbmVudHMoYStvLGgrdSx4K2csYitwKS5ub3JtYWxpemUoKSx0aGlzfWludGVyc2VjdHNPYmplY3QodCl7bGV0IGU9dC5nZW9tZXRyeTtyZXR1cm4gZS5ib3VuZGluZ1NwaGVyZT09PW51bGwmJmUuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCksVHIuY29weShlLmJvdW5kaW5nU3BoZXJlKS5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCksdGhpcy5pbnRlcnNlY3RzU3BoZXJlKFRyKX1pbnRlcnNlY3RzU3ByaXRlKHQpe3JldHVybiBUci5jZW50ZXIuc2V0KDAsMCwwKSxUci5yYWRpdXM9LjcwNzEwNjc4MTE4NjU0NzYsVHIuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGQpLHRoaXMuaW50ZXJzZWN0c1NwaGVyZShUcil9aW50ZXJzZWN0c1NwaGVyZSh0KXtsZXQgZT10aGlzLnBsYW5lcyxpPXQuY2VudGVyLHI9LXQucmFkaXVzO2ZvcihsZXQgcz0wO3M8NjtzKyspaWYoZVtzXS5kaXN0YW5jZVRvUG9pbnQoaSk8cilyZXR1cm4hMTtyZXR1cm4hMH1pbnRlcnNlY3RzQm94KHQpe2xldCBlPXRoaXMucGxhbmVzO2ZvcihsZXQgaT0wO2k8NjtpKyspe2xldCByPWVbaV07aWYoemEueD1yLm5vcm1hbC54PjA/dC5tYXgueDp0Lm1pbi54LHphLnk9ci5ub3JtYWwueT4wP3QubWF4Lnk6dC5taW4ueSx6YS56PXIubm9ybWFsLno+MD90Lm1heC56OnQubWluLnosci5kaXN0YW5jZVRvUG9pbnQoemEpPDApcmV0dXJuITF9cmV0dXJuITB9Y29udGFpbnNQb2ludCh0KXtsZXQgZT10aGlzLnBsYW5lcztmb3IobGV0IGk9MDtpPDY7aSsrKWlmKGVbaV0uZGlzdGFuY2VUb1BvaW50KHQpPDApcmV0dXJuITE7cmV0dXJuITB9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IoKS5jb3B5KHRoaXMpfX07ZnVuY3Rpb24gZzAoKXtsZXQgbj1udWxsLHQ9ITEsZT1udWxsLGk9bnVsbDtmdW5jdGlvbiByKHMsbyl7ZShzLG8pLGk9bi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUocil9cmV0dXJue3N0YXJ0OmZ1bmN0aW9uKCl7dCE9PSEwJiZlIT09bnVsbCYmKGk9bi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUociksdD0hMCl9LHN0b3A6ZnVuY3Rpb24oKXtuLmNhbmNlbEFuaW1hdGlvbkZyYW1lKGkpLHQ9ITF9LHNldEFuaW1hdGlvbkxvb3A6ZnVuY3Rpb24ocyl7ZT1zfSxzZXRDb250ZXh0OmZ1bmN0aW9uKHMpe249c319fWZ1bmN0aW9uIHZNKG4sdCl7bGV0IGU9dC5pc1dlYkdMMixpPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHIoYyx1KXtsZXQgaD1jLmFycmF5LGY9Yy51c2FnZSxkPW4uY3JlYXRlQnVmZmVyKCk7bi5iaW5kQnVmZmVyKHUsZCksbi5idWZmZXJEYXRhKHUsaCxmKSxjLm9uVXBsb2FkQ2FsbGJhY2soKTtsZXQgZz01MTI2O3JldHVybiBoIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5P2c9NTEyNjpoIGluc3RhbmNlb2YgRmxvYXQ2NEFycmF5P2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xBdHRyaWJ1dGVzOiBVbnN1cHBvcnRlZCBkYXRhIGJ1ZmZlciBmb3JtYXQ6IEZsb2F0NjRBcnJheS4iKTpoIGluc3RhbmNlb2YgVWludDE2QXJyYXk/Yy5pc0Zsb2F0MTZCdWZmZXJBdHRyaWJ1dGU/ZT9nPTUxMzE6Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTEF0dHJpYnV0ZXM6IFVzYWdlIG9mIEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGUgcmVxdWlyZXMgV2ViR0wyLiIpOmc9NTEyMzpoIGluc3RhbmNlb2YgSW50MTZBcnJheT9nPTUxMjI6aCBpbnN0YW5jZW9mIFVpbnQzMkFycmF5P2c9NTEyNTpoIGluc3RhbmNlb2YgSW50MzJBcnJheT9nPTUxMjQ6aCBpbnN0YW5jZW9mIEludDhBcnJheT9nPTUxMjA6KGggaW5zdGFuY2VvZiBVaW50OEFycmF5fHxoIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXkpJiYoZz01MTIxKSx7YnVmZmVyOmQsdHlwZTpnLGJ5dGVzUGVyRWxlbWVudDpoLkJZVEVTX1BFUl9FTEVNRU5ULHZlcnNpb246Yy52ZXJzaW9ufX1mdW5jdGlvbiBzKGMsdSxoKXtsZXQgZj11LmFycmF5LGQ9dS51cGRhdGVSYW5nZTtuLmJpbmRCdWZmZXIoaCxjKSxkLmNvdW50PT09LTE/bi5idWZmZXJTdWJEYXRhKGgsMCxmKTooZT9uLmJ1ZmZlclN1YkRhdGEoaCxkLm9mZnNldCpmLkJZVEVTX1BFUl9FTEVNRU5ULGYsZC5vZmZzZXQsZC5jb3VudCk6bi5idWZmZXJTdWJEYXRhKGgsZC5vZmZzZXQqZi5CWVRFU19QRVJfRUxFTUVOVCxmLnN1YmFycmF5KGQub2Zmc2V0LGQub2Zmc2V0K2QuY291bnQpKSxkLmNvdW50PS0xKX1mdW5jdGlvbiBvKGMpe3JldHVybiBjLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUmJihjPWMuZGF0YSksaS5nZXQoYyl9ZnVuY3Rpb24gYShjKXtjLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUmJihjPWMuZGF0YSk7bGV0IHU9aS5nZXQoYyk7dSYmKG4uZGVsZXRlQnVmZmVyKHUuYnVmZmVyKSxpLmRlbGV0ZShjKSl9ZnVuY3Rpb24gbChjLHUpe2lmKGMuaXNHTEJ1ZmZlckF0dHJpYnV0ZSl7bGV0IGY9aS5nZXQoYyk7KCFmfHxmLnZlcnNpb248Yy52ZXJzaW9uKSYmaS5zZXQoYyx7YnVmZmVyOmMuYnVmZmVyLHR5cGU6Yy50eXBlLGJ5dGVzUGVyRWxlbWVudDpjLmVsZW1lbnRTaXplLHZlcnNpb246Yy52ZXJzaW9ufSk7cmV0dXJufWMuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSYmKGM9Yy5kYXRhKTtsZXQgaD1pLmdldChjKTtoPT09dm9pZCAwP2kuc2V0KGMscihjLHUpKTpoLnZlcnNpb248Yy52ZXJzaW9uJiYocyhoLmJ1ZmZlcixjLHUpLGgudmVyc2lvbj1jLnZlcnNpb24pfXJldHVybntnZXQ6byxyZW1vdmU6YSx1cGRhdGU6bH19dmFyIGxvPWNsYXNzIGV4dGVuZHMgSHR7Y29uc3RydWN0b3IodD0xLGU9MSxpPTEscj0xKXtzdXBlcigpLHRoaXMudHlwZT0iUGxhbmVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXt3aWR0aDp0LGhlaWdodDplLHdpZHRoU2VnbWVudHM6aSxoZWlnaHRTZWdtZW50czpyfTtsZXQgcz10LzIsbz1lLzIsYT1NYXRoLmZsb29yKGkpLGw9TWF0aC5mbG9vcihyKSxjPWErMSx1PWwrMSxoPXQvYSxmPWUvbCxkPVtdLGc9W10seD1bXSx2PVtdO2ZvcihsZXQgbT0wO208dTttKyspe2xldCBwPW0qZi1vO2ZvcihsZXQgYj0wO2I8YztiKyspe2xldCBfPWIqaC1zO2cucHVzaChfLC1wLDApLHgucHVzaCgwLDAsMSksdi5wdXNoKGIvYSksdi5wdXNoKDEtbS9sKX19Zm9yKGxldCBtPTA7bTxsO20rKylmb3IobGV0IHA9MDtwPGE7cCsrKXtsZXQgYj1wK2MqbSxfPXArYyoobSsxKSxTPXArMStjKihtKzEpLEw9cCsxK2MqbTtkLnB1c2goYixfLEwpLGQucHVzaChfLFMsTCl9dGhpcy5zZXRJbmRleChkKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBlZShnLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgZWUoeCwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgZWUodiwyKSl9c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgbG8odC53aWR0aCx0LmhlaWdodCx0LndpZHRoU2VnbWVudHMsdC5oZWlnaHRTZWdtZW50cyl9fSxfTT1gI2lmZGVmIFVTRV9BTFBIQU1BUAoJZGlmZnVzZUNvbG9yLmEgKj0gdGV4dHVyZTJEKCBhbHBoYU1hcCwgdlV2ICkuZzsKI2VuZGlmYCx3TT1gI2lmZGVmIFVTRV9BTFBIQU1BUAoJdW5pZm9ybSBzYW1wbGVyMkQgYWxwaGFNYXA7CiNlbmRpZmAsTU09YCNpZmRlZiBVU0VfQUxQSEFURVNUCglpZiAoIGRpZmZ1c2VDb2xvci5hIDwgYWxwaGFUZXN0ICkgZGlzY2FyZDsKI2VuZGlmYCxiTT1gI2lmZGVmIFVTRV9BTFBIQVRFU1QKCXVuaWZvcm0gZmxvYXQgYWxwaGFUZXN0OwojZW5kaWZgLFNNPWAjaWZkZWYgVVNFX0FPTUFQCglmbG9hdCBhbWJpZW50T2NjbHVzaW9uID0gKCB0ZXh0dXJlMkQoIGFvTWFwLCB2VXYyICkuciAtIDEuMCApICogYW9NYXBJbnRlbnNpdHkgKyAxLjA7CglyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKj0gYW1iaWVudE9jY2x1c2lvbjsKCSNpZiBkZWZpbmVkKCBVU0VfRU5WTUFQICkgJiYgZGVmaW5lZCggU1RBTkRBUkQgKQoJCWZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkubm9ybWFsLCBnZW9tZXRyeS52aWV3RGlyICkgKTsKCQlyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICo9IGNvbXB1dGVTcGVjdWxhck9jY2x1c2lvbiggZG90TlYsIGFtYmllbnRPY2NsdXNpb24sIG1hdGVyaWFsLnJvdWdobmVzcyApOwoJI2VuZGlmCiNlbmRpZmAsRU09YCNpZmRlZiBVU0VfQU9NQVAKCXVuaWZvcm0gc2FtcGxlcjJEIGFvTWFwOwoJdW5pZm9ybSBmbG9hdCBhb01hcEludGVuc2l0eTsKI2VuZGlmYCxUTT0idmVjMyB0cmFuc2Zvcm1lZCA9IHZlYzMoIHBvc2l0aW9uICk7IixBTT1gdmVjMyBvYmplY3ROb3JtYWwgPSB2ZWMzKCBub3JtYWwgKTsKI2lmZGVmIFVTRV9UQU5HRU5UCgl2ZWMzIG9iamVjdFRhbmdlbnQgPSB2ZWMzKCB0YW5nZW50Lnh5eiApOwojZW5kaWZgLENNPWB2ZWMzIEJSREZfTGFtYmVydCggY29uc3QgaW4gdmVjMyBkaWZmdXNlQ29sb3IgKSB7CglyZXR1cm4gUkVDSVBST0NBTF9QSSAqIGRpZmZ1c2VDb2xvcjsKfQp2ZWMzIEZfU2NobGljayggY29uc3QgaW4gdmVjMyBmMCwgY29uc3QgaW4gZmxvYXQgZjkwLCBjb25zdCBpbiBmbG9hdCBkb3RWSCApIHsKCWZsb2F0IGZyZXNuZWwgPSBleHAyKCAoIC0gNS41NTQ3MyAqIGRvdFZIIC0gNi45ODMxNiApICogZG90VkggKTsKCXJldHVybiBmMCAqICggMS4wIC0gZnJlc25lbCApICsgKCBmOTAgKiBmcmVzbmVsICk7Cn0KZmxvYXQgVl9HR1hfU21pdGhDb3JyZWxhdGVkKCBjb25zdCBpbiBmbG9hdCBhbHBoYSwgY29uc3QgaW4gZmxvYXQgZG90TkwsIGNvbnN0IGluIGZsb2F0IGRvdE5WICkgewoJZmxvYXQgYTIgPSBwb3cyKCBhbHBoYSApOwoJZmxvYXQgZ3YgPSBkb3ROTCAqIHNxcnQoIGEyICsgKCAxLjAgLSBhMiApICogcG93MiggZG90TlYgKSApOwoJZmxvYXQgZ2wgPSBkb3ROViAqIHNxcnQoIGEyICsgKCAxLjAgLSBhMiApICogcG93MiggZG90TkwgKSApOwoJcmV0dXJuIDAuNSAvIG1heCggZ3YgKyBnbCwgRVBTSUxPTiApOwp9CmZsb2F0IERfR0dYKCBjb25zdCBpbiBmbG9hdCBhbHBoYSwgY29uc3QgaW4gZmxvYXQgZG90TkggKSB7CglmbG9hdCBhMiA9IHBvdzIoIGFscGhhICk7CglmbG9hdCBkZW5vbSA9IHBvdzIoIGRvdE5IICkgKiAoIGEyIC0gMS4wICkgKyAxLjA7CglyZXR1cm4gUkVDSVBST0NBTF9QSSAqIGEyIC8gcG93MiggZGVub20gKTsKfQp2ZWMzIEJSREZfR0dYKCBjb25zdCBpbiB2ZWMzIGxpZ2h0RGlyLCBjb25zdCBpbiB2ZWMzIHZpZXdEaXIsIGNvbnN0IGluIHZlYzMgbm9ybWFsLCBjb25zdCBpbiB2ZWMzIGYwLCBjb25zdCBpbiBmbG9hdCBmOTAsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHsKCWZsb2F0IGFscGhhID0gcG93Miggcm91Z2huZXNzICk7Cgl2ZWMzIGhhbGZEaXIgPSBub3JtYWxpemUoIGxpZ2h0RGlyICsgdmlld0RpciApOwoJZmxvYXQgZG90TkwgPSBzYXR1cmF0ZSggZG90KCBub3JtYWwsIGxpZ2h0RGlyICkgKTsKCWZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCB2aWV3RGlyICkgKTsKCWZsb2F0IGRvdE5IID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCBoYWxmRGlyICkgKTsKCWZsb2F0IGRvdFZIID0gc2F0dXJhdGUoIGRvdCggdmlld0RpciwgaGFsZkRpciApICk7Cgl2ZWMzIEYgPSBGX1NjaGxpY2soIGYwLCBmOTAsIGRvdFZIICk7CglmbG9hdCBWID0gVl9HR1hfU21pdGhDb3JyZWxhdGVkKCBhbHBoYSwgZG90TkwsIGRvdE5WICk7CglmbG9hdCBEID0gRF9HR1goIGFscGhhLCBkb3ROSCApOwoJcmV0dXJuIEYgKiAoIFYgKiBEICk7Cn0KdmVjMiBMVENfVXYoIGNvbnN0IGluIHZlYzMgTiwgY29uc3QgaW4gdmVjMyBWLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7Cgljb25zdCBmbG9hdCBMVVRfU0laRSA9IDY0LjA7Cgljb25zdCBmbG9hdCBMVVRfU0NBTEUgPSAoIExVVF9TSVpFIC0gMS4wICkgLyBMVVRfU0laRTsKCWNvbnN0IGZsb2F0IExVVF9CSUFTID0gMC41IC8gTFVUX1NJWkU7CglmbG9hdCBkb3ROViA9IHNhdHVyYXRlKCBkb3QoIE4sIFYgKSApOwoJdmVjMiB1diA9IHZlYzIoIHJvdWdobmVzcywgc3FydCggMS4wIC0gZG90TlYgKSApOwoJdXYgPSB1diAqIExVVF9TQ0FMRSArIExVVF9CSUFTOwoJcmV0dXJuIHV2Owp9CmZsb2F0IExUQ19DbGlwcGVkU3BoZXJlRm9ybUZhY3RvciggY29uc3QgaW4gdmVjMyBmICkgewoJZmxvYXQgbCA9IGxlbmd0aCggZiApOwoJcmV0dXJuIG1heCggKCBsICogbCArIGYueiApIC8gKCBsICsgMS4wICksIDAuMCApOwp9CnZlYzMgTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb25zdCBpbiB2ZWMzIHYxLCBjb25zdCBpbiB2ZWMzIHYyICkgewoJZmxvYXQgeCA9IGRvdCggdjEsIHYyICk7CglmbG9hdCB5ID0gYWJzKCB4ICk7CglmbG9hdCBhID0gMC44NTQzOTg1ICsgKCAwLjQ5NjUxNTUgKyAwLjAxNDUyMDYgKiB5ICkgKiB5OwoJZmxvYXQgYiA9IDMuNDE3NTk0MCArICggNC4xNjE2NzI0ICsgeSApICogeTsKCWZsb2F0IHYgPSBhIC8gYjsKCWZsb2F0IHRoZXRhX3NpbnRoZXRhID0gKCB4ID4gMC4wICkgPyB2IDogMC41ICogaW52ZXJzZXNxcnQoIG1heCggMS4wIC0geCAqIHgsIDFlLTcgKSApIC0gdjsKCXJldHVybiBjcm9zcyggdjEsIHYyICkgKiB0aGV0YV9zaW50aGV0YTsKfQp2ZWMzIExUQ19FdmFsdWF0ZSggY29uc3QgaW4gdmVjMyBOLCBjb25zdCBpbiB2ZWMzIFYsIGNvbnN0IGluIHZlYzMgUCwgY29uc3QgaW4gbWF0MyBtSW52LCBjb25zdCBpbiB2ZWMzIHJlY3RDb29yZHNbIDQgXSApIHsKCXZlYzMgdjEgPSByZWN0Q29vcmRzWyAxIF0gLSByZWN0Q29vcmRzWyAwIF07Cgl2ZWMzIHYyID0gcmVjdENvb3Jkc1sgMyBdIC0gcmVjdENvb3Jkc1sgMCBdOwoJdmVjMyBsaWdodE5vcm1hbCA9IGNyb3NzKCB2MSwgdjIgKTsKCWlmKCBkb3QoIGxpZ2h0Tm9ybWFsLCBQIC0gcmVjdENvb3Jkc1sgMCBdICkgPCAwLjAgKSByZXR1cm4gdmVjMyggMC4wICk7Cgl2ZWMzIFQxLCBUMjsKCVQxID0gbm9ybWFsaXplKCBWIC0gTiAqIGRvdCggViwgTiApICk7CglUMiA9IC0gY3Jvc3MoIE4sIFQxICk7CgltYXQzIG1hdCA9IG1JbnYgKiB0cmFuc3Bvc2VNYXQzKCBtYXQzKCBUMSwgVDIsIE4gKSApOwoJdmVjMyBjb29yZHNbIDQgXTsKCWNvb3Jkc1sgMCBdID0gbWF0ICogKCByZWN0Q29vcmRzWyAwIF0gLSBQICk7Cgljb29yZHNbIDEgXSA9IG1hdCAqICggcmVjdENvb3Jkc1sgMSBdIC0gUCApOwoJY29vcmRzWyAyIF0gPSBtYXQgKiAoIHJlY3RDb29yZHNbIDIgXSAtIFAgKTsKCWNvb3Jkc1sgMyBdID0gbWF0ICogKCByZWN0Q29vcmRzWyAzIF0gLSBQICk7Cgljb29yZHNbIDAgXSA9IG5vcm1hbGl6ZSggY29vcmRzWyAwIF0gKTsKCWNvb3Jkc1sgMSBdID0gbm9ybWFsaXplKCBjb29yZHNbIDEgXSApOwoJY29vcmRzWyAyIF0gPSBub3JtYWxpemUoIGNvb3Jkc1sgMiBdICk7Cgljb29yZHNbIDMgXSA9IG5vcm1hbGl6ZSggY29vcmRzWyAzIF0gKTsKCXZlYzMgdmVjdG9yRm9ybUZhY3RvciA9IHZlYzMoIDAuMCApOwoJdmVjdG9yRm9ybUZhY3RvciArPSBMVENfRWRnZVZlY3RvckZvcm1GYWN0b3IoIGNvb3Jkc1sgMCBdLCBjb29yZHNbIDEgXSApOwoJdmVjdG9yRm9ybUZhY3RvciArPSBMVENfRWRnZVZlY3RvckZvcm1GYWN0b3IoIGNvb3Jkc1sgMSBdLCBjb29yZHNbIDIgXSApOwoJdmVjdG9yRm9ybUZhY3RvciArPSBMVENfRWRnZVZlY3RvckZvcm1GYWN0b3IoIGNvb3Jkc1sgMiBdLCBjb29yZHNbIDMgXSApOwoJdmVjdG9yRm9ybUZhY3RvciArPSBMVENfRWRnZVZlY3RvckZvcm1GYWN0b3IoIGNvb3Jkc1sgMyBdLCBjb29yZHNbIDAgXSApOwoJZmxvYXQgcmVzdWx0ID0gTFRDX0NsaXBwZWRTcGhlcmVGb3JtRmFjdG9yKCB2ZWN0b3JGb3JtRmFjdG9yICk7CglyZXR1cm4gdmVjMyggcmVzdWx0ICk7Cn0KZmxvYXQgR19CbGlublBob25nX0ltcGxpY2l0KCApIHsKCXJldHVybiAwLjI1Owp9CmZsb2F0IERfQmxpbm5QaG9uZyggY29uc3QgaW4gZmxvYXQgc2hpbmluZXNzLCBjb25zdCBpbiBmbG9hdCBkb3ROSCApIHsKCXJldHVybiBSRUNJUFJPQ0FMX1BJICogKCBzaGluaW5lc3MgKiAwLjUgKyAxLjAgKSAqIHBvdyggZG90TkgsIHNoaW5pbmVzcyApOwp9CnZlYzMgQlJERl9CbGlublBob25nKCBjb25zdCBpbiB2ZWMzIGxpZ2h0RGlyLCBjb25zdCBpbiB2ZWMzIHZpZXdEaXIsIGNvbnN0IGluIHZlYzMgbm9ybWFsLCBjb25zdCBpbiB2ZWMzIHNwZWN1bGFyQ29sb3IsIGNvbnN0IGluIGZsb2F0IHNoaW5pbmVzcyApIHsKCXZlYzMgaGFsZkRpciA9IG5vcm1hbGl6ZSggbGlnaHREaXIgKyB2aWV3RGlyICk7CglmbG9hdCBkb3ROSCA9IHNhdHVyYXRlKCBkb3QoIG5vcm1hbCwgaGFsZkRpciApICk7CglmbG9hdCBkb3RWSCA9IHNhdHVyYXRlKCBkb3QoIHZpZXdEaXIsIGhhbGZEaXIgKSApOwoJdmVjMyBGID0gRl9TY2hsaWNrKCBzcGVjdWxhckNvbG9yLCAxLjAsIGRvdFZIICk7CglmbG9hdCBHID0gR19CbGlublBob25nX0ltcGxpY2l0KCApOwoJZmxvYXQgRCA9IERfQmxpbm5QaG9uZyggc2hpbmluZXNzLCBkb3ROSCApOwoJcmV0dXJuIEYgKiAoIEcgKiBEICk7Cn0KI2lmIGRlZmluZWQoIFVTRV9TSEVFTiApCmZsb2F0IERfQ2hhcmxpZSggZmxvYXQgcm91Z2huZXNzLCBmbG9hdCBkb3ROSCApIHsKCWZsb2F0IGFscGhhID0gcG93Miggcm91Z2huZXNzICk7CglmbG9hdCBpbnZBbHBoYSA9IDEuMCAvIGFscGhhOwoJZmxvYXQgY29zMmggPSBkb3ROSCAqIGRvdE5IOwoJZmxvYXQgc2luMmggPSBtYXgoIDEuMCAtIGNvczJoLCAwLjAwNzgxMjUgKTsKCXJldHVybiAoIDIuMCArIGludkFscGhhICkgKiBwb3coIHNpbjJoLCBpbnZBbHBoYSAqIDAuNSApIC8gKCAyLjAgKiBQSSApOwp9CmZsb2F0IFZfTmV1YmVsdCggZmxvYXQgZG90TlYsIGZsb2F0IGRvdE5MICkgewoJcmV0dXJuIHNhdHVyYXRlKCAxLjAgLyAoIDQuMCAqICggZG90TkwgKyBkb3ROViAtIGRvdE5MICogZG90TlYgKSApICk7Cn0KdmVjMyBCUkRGX1NoZWVuKCBjb25zdCBpbiB2ZWMzIGxpZ2h0RGlyLCBjb25zdCBpbiB2ZWMzIHZpZXdEaXIsIGNvbnN0IGluIHZlYzMgbm9ybWFsLCB2ZWMzIHNoZWVuQ29sb3IsIGNvbnN0IGluIGZsb2F0IHNoZWVuUm91Z2huZXNzICkgewoJdmVjMyBoYWxmRGlyID0gbm9ybWFsaXplKCBsaWdodERpciArIHZpZXdEaXIgKTsKCWZsb2F0IGRvdE5MID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCBsaWdodERpciApICk7CglmbG9hdCBkb3ROViA9IHNhdHVyYXRlKCBkb3QoIG5vcm1hbCwgdmlld0RpciApICk7CglmbG9hdCBkb3ROSCA9IHNhdHVyYXRlKCBkb3QoIG5vcm1hbCwgaGFsZkRpciApICk7CglmbG9hdCBEID0gRF9DaGFybGllKCBzaGVlblJvdWdobmVzcywgZG90TkggKTsKCWZsb2F0IFYgPSBWX05ldWJlbHQoIGRvdE5WLCBkb3ROTCApOwoJcmV0dXJuIHNoZWVuQ29sb3IgKiAoIEQgKiBWICk7Cn0KI2VuZGlmYCxSTT1gI2lmZGVmIFVTRV9CVU1QTUFQCgl1bmlmb3JtIHNhbXBsZXIyRCBidW1wTWFwOwoJdW5pZm9ybSBmbG9hdCBidW1wU2NhbGU7Cgl2ZWMyIGRIZHh5X2Z3ZCgpIHsKCQl2ZWMyIGRTVGR4ID0gZEZkeCggdlV2ICk7CgkJdmVjMiBkU1RkeSA9IGRGZHkoIHZVdiApOwoJCWZsb2F0IEhsbCA9IGJ1bXBTY2FsZSAqIHRleHR1cmUyRCggYnVtcE1hcCwgdlV2ICkueDsKCQlmbG9hdCBkQnggPSBidW1wU2NhbGUgKiB0ZXh0dXJlMkQoIGJ1bXBNYXAsIHZVdiArIGRTVGR4ICkueCAtIEhsbDsKCQlmbG9hdCBkQnkgPSBidW1wU2NhbGUgKiB0ZXh0dXJlMkQoIGJ1bXBNYXAsIHZVdiArIGRTVGR5ICkueCAtIEhsbDsKCQlyZXR1cm4gdmVjMiggZEJ4LCBkQnkgKTsKCX0KCXZlYzMgcGVydHVyYk5vcm1hbEFyYiggdmVjMyBzdXJmX3BvcywgdmVjMyBzdXJmX25vcm0sIHZlYzIgZEhkeHksIGZsb2F0IGZhY2VEaXJlY3Rpb24gKSB7CgkJdmVjMyB2U2lnbWFYID0gdmVjMyggZEZkeCggc3VyZl9wb3MueCApLCBkRmR4KCBzdXJmX3Bvcy55ICksIGRGZHgoIHN1cmZfcG9zLnogKSApOwoJCXZlYzMgdlNpZ21hWSA9IHZlYzMoIGRGZHkoIHN1cmZfcG9zLnggKSwgZEZkeSggc3VyZl9wb3MueSApLCBkRmR5KCBzdXJmX3Bvcy56ICkgKTsKCQl2ZWMzIHZOID0gc3VyZl9ub3JtOwoJCXZlYzMgUjEgPSBjcm9zcyggdlNpZ21hWSwgdk4gKTsKCQl2ZWMzIFIyID0gY3Jvc3MoIHZOLCB2U2lnbWFYICk7CgkJZmxvYXQgZkRldCA9IGRvdCggdlNpZ21hWCwgUjEgKSAqIGZhY2VEaXJlY3Rpb247CgkJdmVjMyB2R3JhZCA9IHNpZ24oIGZEZXQgKSAqICggZEhkeHkueCAqIFIxICsgZEhkeHkueSAqIFIyICk7CgkJcmV0dXJuIG5vcm1hbGl6ZSggYWJzKCBmRGV0ICkgKiBzdXJmX25vcm0gLSB2R3JhZCApOwoJfQojZW5kaWZgLExNPWAjaWYgTlVNX0NMSVBQSU5HX1BMQU5FUyA+IDAKCXZlYzQgcGxhbmU7CgkjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0Cglmb3IgKCBpbnQgaSA9IDA7IGkgPCBVTklPTl9DTElQUElOR19QTEFORVM7IGkgKysgKSB7CgkJcGxhbmUgPSBjbGlwcGluZ1BsYW5lc1sgaSBdOwoJCWlmICggZG90KCB2Q2xpcFBvc2l0aW9uLCBwbGFuZS54eXogKSA+IHBsYW5lLncgKSBkaXNjYXJkOwoJfQoJI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmQKCSNpZiBVTklPTl9DTElQUElOR19QTEFORVMgPCBOVU1fQ0xJUFBJTkdfUExBTkVTCgkJYm9vbCBjbGlwcGVkID0gdHJ1ZTsKCQkjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0CgkJZm9yICggaW50IGkgPSBVTklPTl9DTElQUElOR19QTEFORVM7IGkgPCBOVU1fQ0xJUFBJTkdfUExBTkVTOyBpICsrICkgewoJCQlwbGFuZSA9IGNsaXBwaW5nUGxhbmVzWyBpIF07CgkJCWNsaXBwZWQgPSAoIGRvdCggdkNsaXBQb3NpdGlvbiwgcGxhbmUueHl6ICkgPiBwbGFuZS53ICkgJiYgY2xpcHBlZDsKCQl9CgkJI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmQKCQlpZiAoIGNsaXBwZWQgKSBkaXNjYXJkOwoJI2VuZGlmCiNlbmRpZmAsUE09YCNpZiBOVU1fQ0xJUFBJTkdfUExBTkVTID4gMAoJdmFyeWluZyB2ZWMzIHZDbGlwUG9zaXRpb247Cgl1bmlmb3JtIHZlYzQgY2xpcHBpbmdQbGFuZXNbIE5VTV9DTElQUElOR19QTEFORVMgXTsKI2VuZGlmYCxETT1gI2lmIE5VTV9DTElQUElOR19QTEFORVMgPiAwCgl2YXJ5aW5nIHZlYzMgdkNsaXBQb3NpdGlvbjsKI2VuZGlmYCxJTT1gI2lmIE5VTV9DTElQUElOR19QTEFORVMgPiAwCgl2Q2xpcFBvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejsKI2VuZGlmYCxOTT1gI2lmIGRlZmluZWQoIFVTRV9DT0xPUl9BTFBIQSApCglkaWZmdXNlQ29sb3IgKj0gdkNvbG9yOwojZWxpZiBkZWZpbmVkKCBVU0VfQ09MT1IgKQoJZGlmZnVzZUNvbG9yLnJnYiAqPSB2Q29sb3I7CiNlbmRpZmAsRk09YCNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKQoJdmFyeWluZyB2ZWM0IHZDb2xvcjsKI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SICkKCXZhcnlpbmcgdmVjMyB2Q29sb3I7CiNlbmRpZmAsek09YCNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKQoJdmFyeWluZyB2ZWM0IHZDb2xvcjsKI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SICkgfHwgZGVmaW5lZCggVVNFX0lOU1RBTkNJTkdfQ09MT1IgKQoJdmFyeWluZyB2ZWMzIHZDb2xvcjsKI2VuZGlmYCxVTT1gI2lmIGRlZmluZWQoIFVTRV9DT0xPUl9BTFBIQSApCgl2Q29sb3IgPSB2ZWM0KCAxLjAgKTsKI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SICkgfHwgZGVmaW5lZCggVVNFX0lOU1RBTkNJTkdfQ09MT1IgKQoJdkNvbG9yID0gdmVjMyggMS4wICk7CiNlbmRpZgojaWZkZWYgVVNFX0NPTE9SCgl2Q29sb3IgKj0gY29sb3I7CiNlbmRpZgojaWZkZWYgVVNFX0lOU1RBTkNJTkdfQ09MT1IKCXZDb2xvci54eXogKj0gaW5zdGFuY2VDb2xvci54eXo7CiNlbmRpZmAsQk09YCNkZWZpbmUgUEkgMy4xNDE1OTI2NTM1ODk3OTMKI2RlZmluZSBQSTIgNi4yODMxODUzMDcxNzk1ODYKI2RlZmluZSBQSV9IQUxGIDEuNTcwNzk2MzI2Nzk0ODk2NgojZGVmaW5lIFJFQ0lQUk9DQUxfUEkgMC4zMTgzMDk4ODYxODM3OTA3CiNkZWZpbmUgUkVDSVBST0NBTF9QSTIgMC4xNTkxNTQ5NDMwOTE4OTUzNQojZGVmaW5lIEVQU0lMT04gMWUtNgojaWZuZGVmIHNhdHVyYXRlCiNkZWZpbmUgc2F0dXJhdGUoIGEgKSBjbGFtcCggYSwgMC4wLCAxLjAgKQojZW5kaWYKI2RlZmluZSB3aGl0ZUNvbXBsZW1lbnQoIGEgKSAoIDEuMCAtIHNhdHVyYXRlKCBhICkgKQpmbG9hdCBwb3cyKCBjb25zdCBpbiBmbG9hdCB4ICkgeyByZXR1cm4geCp4OyB9CmZsb2F0IHBvdzMoIGNvbnN0IGluIGZsb2F0IHggKSB7IHJldHVybiB4KngqeDsgfQpmbG9hdCBwb3c0KCBjb25zdCBpbiBmbG9hdCB4ICkgeyBmbG9hdCB4MiA9IHgqeDsgcmV0dXJuIHgyKngyOyB9CmZsb2F0IG1heDMoIGNvbnN0IGluIHZlYzMgdiApIHsgcmV0dXJuIG1heCggbWF4KCB2LngsIHYueSApLCB2LnogKTsgfQpmbG9hdCBhdmVyYWdlKCBjb25zdCBpbiB2ZWMzIGNvbG9yICkgeyByZXR1cm4gZG90KCBjb2xvciwgdmVjMyggMC4zMzMzICkgKTsgfQpoaWdocCBmbG9hdCByYW5kKCBjb25zdCBpbiB2ZWMyIHV2ICkgewoJY29uc3QgaGlnaHAgZmxvYXQgYSA9IDEyLjk4OTgsIGIgPSA3OC4yMzMsIGMgPSA0Mzc1OC41NDUzOwoJaGlnaHAgZmxvYXQgZHQgPSBkb3QoIHV2Lnh5LCB2ZWMyKCBhLGIgKSApLCBzbiA9IG1vZCggZHQsIFBJICk7CglyZXR1cm4gZnJhY3QoIHNpbiggc24gKSAqIGMgKTsKfQojaWZkZWYgSElHSF9QUkVDSVNJT04KCWZsb2F0IHByZWNpc2lvblNhZmVMZW5ndGgoIHZlYzMgdiApIHsgcmV0dXJuIGxlbmd0aCggdiApOyB9CiNlbHNlCglmbG9hdCBwcmVjaXNpb25TYWZlTGVuZ3RoKCB2ZWMzIHYgKSB7CgkJZmxvYXQgbWF4Q29tcG9uZW50ID0gbWF4MyggYWJzKCB2ICkgKTsKCQlyZXR1cm4gbGVuZ3RoKCB2IC8gbWF4Q29tcG9uZW50ICkgKiBtYXhDb21wb25lbnQ7Cgl9CiNlbmRpZgpzdHJ1Y3QgSW5jaWRlbnRMaWdodCB7Cgl2ZWMzIGNvbG9yOwoJdmVjMyBkaXJlY3Rpb247Cglib29sIHZpc2libGU7Cn07CnN0cnVjdCBSZWZsZWN0ZWRMaWdodCB7Cgl2ZWMzIGRpcmVjdERpZmZ1c2U7Cgl2ZWMzIGRpcmVjdFNwZWN1bGFyOwoJdmVjMyBpbmRpcmVjdERpZmZ1c2U7Cgl2ZWMzIGluZGlyZWN0U3BlY3VsYXI7Cn07CnN0cnVjdCBHZW9tZXRyaWNDb250ZXh0IHsKCXZlYzMgcG9zaXRpb247Cgl2ZWMzIG5vcm1hbDsKCXZlYzMgdmlld0RpcjsKI2lmZGVmIFVTRV9DTEVBUkNPQVQKCXZlYzMgY2xlYXJjb2F0Tm9ybWFsOwojZW5kaWYKfTsKdmVjMyB0cmFuc2Zvcm1EaXJlY3Rpb24oIGluIHZlYzMgZGlyLCBpbiBtYXQ0IG1hdHJpeCApIHsKCXJldHVybiBub3JtYWxpemUoICggbWF0cml4ICogdmVjNCggZGlyLCAwLjAgKSApLnh5eiApOwp9CnZlYzMgaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggaW4gdmVjMyBkaXIsIGluIG1hdDQgbWF0cml4ICkgewoJcmV0dXJuIG5vcm1hbGl6ZSggKCB2ZWM0KCBkaXIsIDAuMCApICogbWF0cml4ICkueHl6ICk7Cn0KbWF0MyB0cmFuc3Bvc2VNYXQzKCBjb25zdCBpbiBtYXQzIG0gKSB7CgltYXQzIHRtcDsKCXRtcFsgMCBdID0gdmVjMyggbVsgMCBdLngsIG1bIDEgXS54LCBtWyAyIF0ueCApOwoJdG1wWyAxIF0gPSB2ZWMzKCBtWyAwIF0ueSwgbVsgMSBdLnksIG1bIDIgXS55ICk7Cgl0bXBbIDIgXSA9IHZlYzMoIG1bIDAgXS56LCBtWyAxIF0ueiwgbVsgMiBdLnogKTsKCXJldHVybiB0bXA7Cn0KZmxvYXQgbGluZWFyVG9SZWxhdGl2ZUx1bWluYW5jZSggY29uc3QgaW4gdmVjMyBjb2xvciApIHsKCXZlYzMgd2VpZ2h0cyA9IHZlYzMoIDAuMjEyNiwgMC43MTUyLCAwLjA3MjIgKTsKCXJldHVybiBkb3QoIHdlaWdodHMsIGNvbG9yLnJnYiApOwp9CmJvb2wgaXNQZXJzcGVjdGl2ZU1hdHJpeCggbWF0NCBtICkgewoJcmV0dXJuIG1bIDIgXVsgMyBdID09IC0gMS4wOwp9CnZlYzIgZXF1aXJlY3RVdiggaW4gdmVjMyBkaXIgKSB7CglmbG9hdCB1ID0gYXRhbiggZGlyLnosIGRpci54ICkgKiBSRUNJUFJPQ0FMX1BJMiArIDAuNTsKCWZsb2F0IHYgPSBhc2luKCBjbGFtcCggZGlyLnksIC0gMS4wLCAxLjAgKSApICogUkVDSVBST0NBTF9QSSArIDAuNTsKCXJldHVybiB2ZWMyKCB1LCB2ICk7Cn1gLE9NPWAjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRV9VVgoJI2RlZmluZSBjdWJlVVZfbWF4TWlwTGV2ZWwgOC4wCgkjZGVmaW5lIGN1YmVVVl9taW5NaXBMZXZlbCA0LjAKCSNkZWZpbmUgY3ViZVVWX21heFRpbGVTaXplIDI1Ni4wCgkjZGVmaW5lIGN1YmVVVl9taW5UaWxlU2l6ZSAxNi4wCglmbG9hdCBnZXRGYWNlKCB2ZWMzIGRpcmVjdGlvbiApIHsKCQl2ZWMzIGFic0RpcmVjdGlvbiA9IGFicyggZGlyZWN0aW9uICk7CgkJZmxvYXQgZmFjZSA9IC0gMS4wOwoJCWlmICggYWJzRGlyZWN0aW9uLnggPiBhYnNEaXJlY3Rpb24ueiApIHsKCQkJaWYgKCBhYnNEaXJlY3Rpb24ueCA+IGFic0RpcmVjdGlvbi55ICkKCQkJCWZhY2UgPSBkaXJlY3Rpb24ueCA+IDAuMCA/IDAuMCA6IDMuMDsKCQkJZWxzZQoJCQkJZmFjZSA9IGRpcmVjdGlvbi55ID4gMC4wID8gMS4wIDogNC4wOwoJCX0gZWxzZSB7CgkJCWlmICggYWJzRGlyZWN0aW9uLnogPiBhYnNEaXJlY3Rpb24ueSApCgkJCQlmYWNlID0gZGlyZWN0aW9uLnogPiAwLjAgPyAyLjAgOiA1LjA7CgkJCWVsc2UKCQkJCWZhY2UgPSBkaXJlY3Rpb24ueSA+IDAuMCA/IDEuMCA6IDQuMDsKCQl9CgkJcmV0dXJuIGZhY2U7Cgl9Cgl2ZWMyIGdldFVWKCB2ZWMzIGRpcmVjdGlvbiwgZmxvYXQgZmFjZSApIHsKCQl2ZWMyIHV2OwoJCWlmICggZmFjZSA9PSAwLjAgKSB7CgkJCXV2ID0gdmVjMiggZGlyZWN0aW9uLnosIGRpcmVjdGlvbi55ICkgLyBhYnMoIGRpcmVjdGlvbi54ICk7CgkJfSBlbHNlIGlmICggZmFjZSA9PSAxLjAgKSB7CgkJCXV2ID0gdmVjMiggLSBkaXJlY3Rpb24ueCwgLSBkaXJlY3Rpb24ueiApIC8gYWJzKCBkaXJlY3Rpb24ueSApOwoJCX0gZWxzZSBpZiAoIGZhY2UgPT0gMi4wICkgewoJCQl1diA9IHZlYzIoIC0gZGlyZWN0aW9uLngsIGRpcmVjdGlvbi55ICkgLyBhYnMoIGRpcmVjdGlvbi56ICk7CgkJfSBlbHNlIGlmICggZmFjZSA9PSAzLjAgKSB7CgkJCXV2ID0gdmVjMiggLSBkaXJlY3Rpb24ueiwgZGlyZWN0aW9uLnkgKSAvIGFicyggZGlyZWN0aW9uLnggKTsKCQl9IGVsc2UgaWYgKCBmYWNlID09IDQuMCApIHsKCQkJdXYgPSB2ZWMyKCAtIGRpcmVjdGlvbi54LCBkaXJlY3Rpb24ueiApIC8gYWJzKCBkaXJlY3Rpb24ueSApOwoJCX0gZWxzZSB7CgkJCXV2ID0gdmVjMiggZGlyZWN0aW9uLngsIGRpcmVjdGlvbi55ICkgLyBhYnMoIGRpcmVjdGlvbi56ICk7CgkJfQoJCXJldHVybiAwLjUgKiAoIHV2ICsgMS4wICk7Cgl9Cgl2ZWMzIGJpbGluZWFyQ3ViZVVWKCBzYW1wbGVyMkQgZW52TWFwLCB2ZWMzIGRpcmVjdGlvbiwgZmxvYXQgbWlwSW50ICkgewoJCWZsb2F0IGZhY2UgPSBnZXRGYWNlKCBkaXJlY3Rpb24gKTsKCQlmbG9hdCBmaWx0ZXJJbnQgPSBtYXgoIGN1YmVVVl9taW5NaXBMZXZlbCAtIG1pcEludCwgMC4wICk7CgkJbWlwSW50ID0gbWF4KCBtaXBJbnQsIGN1YmVVVl9taW5NaXBMZXZlbCApOwoJCWZsb2F0IGZhY2VTaXplID0gZXhwMiggbWlwSW50ICk7CgkJZmxvYXQgdGV4ZWxTaXplID0gMS4wIC8gKCAzLjAgKiBjdWJlVVZfbWF4VGlsZVNpemUgKTsKCQl2ZWMyIHV2ID0gZ2V0VVYoIGRpcmVjdGlvbiwgZmFjZSApICogKCBmYWNlU2l6ZSAtIDEuMCApICsgMC41OwoJCWlmICggZmFjZSA+IDIuMCApIHsKCQkJdXYueSArPSBmYWNlU2l6ZTsKCQkJZmFjZSAtPSAzLjA7CgkJfQoJCXV2LnggKz0gZmFjZSAqIGZhY2VTaXplOwoJCWlmICggbWlwSW50IDwgY3ViZVVWX21heE1pcExldmVsICkgewoJCQl1di55ICs9IDIuMCAqIGN1YmVVVl9tYXhUaWxlU2l6ZTsKCQl9CgkJdXYueSArPSBmaWx0ZXJJbnQgKiAyLjAgKiBjdWJlVVZfbWluVGlsZVNpemU7CgkJdXYueCArPSAzLjAgKiBtYXgoIDAuMCwgY3ViZVVWX21heFRpbGVTaXplIC0gMi4wICogZmFjZVNpemUgKTsKCQl1diAqPSB0ZXhlbFNpemU7CgkJcmV0dXJuIHRleHR1cmUyRCggZW52TWFwLCB1diApLnJnYjsKCX0KCSNkZWZpbmUgcjAgMS4wCgkjZGVmaW5lIHYwIDAuMzM5CgkjZGVmaW5lIG0wIC0gMi4wCgkjZGVmaW5lIHIxIDAuOAoJI2RlZmluZSB2MSAwLjI3NgoJI2RlZmluZSBtMSAtIDEuMAoJI2RlZmluZSByNCAwLjQKCSNkZWZpbmUgdjQgMC4wNDYKCSNkZWZpbmUgbTQgMi4wCgkjZGVmaW5lIHI1IDAuMzA1CgkjZGVmaW5lIHY1IDAuMDE2CgkjZGVmaW5lIG01IDMuMAoJI2RlZmluZSByNiAwLjIxCgkjZGVmaW5lIHY2IDAuMDAzOAoJI2RlZmluZSBtNiA0LjAKCWZsb2F0IHJvdWdobmVzc1RvTWlwKCBmbG9hdCByb3VnaG5lc3MgKSB7CgkJZmxvYXQgbWlwID0gMC4wOwoJCWlmICggcm91Z2huZXNzID49IHIxICkgewoJCQltaXAgPSAoIHIwIC0gcm91Z2huZXNzICkgKiAoIG0xIC0gbTAgKSAvICggcjAgLSByMSApICsgbTA7CgkJfSBlbHNlIGlmICggcm91Z2huZXNzID49IHI0ICkgewoJCQltaXAgPSAoIHIxIC0gcm91Z2huZXNzICkgKiAoIG00IC0gbTEgKSAvICggcjEgLSByNCApICsgbTE7CgkJfSBlbHNlIGlmICggcm91Z2huZXNzID49IHI1ICkgewoJCQltaXAgPSAoIHI0IC0gcm91Z2huZXNzICkgKiAoIG01IC0gbTQgKSAvICggcjQgLSByNSApICsgbTQ7CgkJfSBlbHNlIGlmICggcm91Z2huZXNzID49IHI2ICkgewoJCQltaXAgPSAoIHI1IC0gcm91Z2huZXNzICkgKiAoIG02IC0gbTUgKSAvICggcjUgLSByNiApICsgbTU7CgkJfSBlbHNlIHsKCQkJbWlwID0gLSAyLjAgKiBsb2cyKCAxLjE2ICogcm91Z2huZXNzICk7CQl9CgkJcmV0dXJuIG1pcDsKCX0KCXZlYzQgdGV4dHVyZUN1YmVVViggc2FtcGxlcjJEIGVudk1hcCwgdmVjMyBzYW1wbGVEaXIsIGZsb2F0IHJvdWdobmVzcyApIHsKCQlmbG9hdCBtaXAgPSBjbGFtcCggcm91Z2huZXNzVG9NaXAoIHJvdWdobmVzcyApLCBtMCwgY3ViZVVWX21heE1pcExldmVsICk7CgkJZmxvYXQgbWlwRiA9IGZyYWN0KCBtaXAgKTsKCQlmbG9hdCBtaXBJbnQgPSBmbG9vciggbWlwICk7CgkJdmVjMyBjb2xvcjAgPSBiaWxpbmVhckN1YmVVViggZW52TWFwLCBzYW1wbGVEaXIsIG1pcEludCApOwoJCWlmICggbWlwRiA9PSAwLjAgKSB7CgkJCXJldHVybiB2ZWM0KCBjb2xvcjAsIDEuMCApOwoJCX0gZWxzZSB7CgkJCXZlYzMgY29sb3IxID0gYmlsaW5lYXJDdWJlVVYoIGVudk1hcCwgc2FtcGxlRGlyLCBtaXBJbnQgKyAxLjAgKTsKCQkJcmV0dXJuIHZlYzQoIG1peCggY29sb3IwLCBjb2xvcjEsIG1pcEYgKSwgMS4wICk7CgkJfQoJfQojZW5kaWZgLGtNPWB2ZWMzIHRyYW5zZm9ybWVkTm9ybWFsID0gb2JqZWN0Tm9ybWFsOwojaWZkZWYgVVNFX0lOU1RBTkNJTkcKCW1hdDMgbSA9IG1hdDMoIGluc3RhbmNlTWF0cml4ICk7Cgl0cmFuc2Zvcm1lZE5vcm1hbCAvPSB2ZWMzKCBkb3QoIG1bIDAgXSwgbVsgMCBdICksIGRvdCggbVsgMSBdLCBtWyAxIF0gKSwgZG90KCBtWyAyIF0sIG1bIDIgXSApICk7Cgl0cmFuc2Zvcm1lZE5vcm1hbCA9IG0gKiB0cmFuc2Zvcm1lZE5vcm1hbDsKI2VuZGlmCnRyYW5zZm9ybWVkTm9ybWFsID0gbm9ybWFsTWF0cml4ICogdHJhbnNmb3JtZWROb3JtYWw7CiNpZmRlZiBGTElQX1NJREVECgl0cmFuc2Zvcm1lZE5vcm1hbCA9IC0gdHJhbnNmb3JtZWROb3JtYWw7CiNlbmRpZgojaWZkZWYgVVNFX1RBTkdFTlQKCXZlYzMgdHJhbnNmb3JtZWRUYW5nZW50ID0gKCBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KCBvYmplY3RUYW5nZW50LCAwLjAgKSApLnh5ejsKCSNpZmRlZiBGTElQX1NJREVECgkJdHJhbnNmb3JtZWRUYW5nZW50ID0gLSB0cmFuc2Zvcm1lZFRhbmdlbnQ7CgkjZW5kaWYKI2VuZGlmYCxITT1gI2lmZGVmIFVTRV9ESVNQTEFDRU1FTlRNQVAKCXVuaWZvcm0gc2FtcGxlcjJEIGRpc3BsYWNlbWVudE1hcDsKCXVuaWZvcm0gZmxvYXQgZGlzcGxhY2VtZW50U2NhbGU7Cgl1bmlmb3JtIGZsb2F0IGRpc3BsYWNlbWVudEJpYXM7CiNlbmRpZmAsVk09YCNpZmRlZiBVU0VfRElTUExBQ0VNRU5UTUFQCgl0cmFuc2Zvcm1lZCArPSBub3JtYWxpemUoIG9iamVjdE5vcm1hbCApICogKCB0ZXh0dXJlMkQoIGRpc3BsYWNlbWVudE1hcCwgdlV2ICkueCAqIGRpc3BsYWNlbWVudFNjYWxlICsgZGlzcGxhY2VtZW50QmlhcyApOwojZW5kaWZgLEdNPWAjaWZkZWYgVVNFX0VNSVNTSVZFTUFQCgl2ZWM0IGVtaXNzaXZlQ29sb3IgPSB0ZXh0dXJlMkQoIGVtaXNzaXZlTWFwLCB2VXYgKTsKCXRvdGFsRW1pc3NpdmVSYWRpYW5jZSAqPSBlbWlzc2l2ZUNvbG9yLnJnYjsKI2VuZGlmYCxXTT1gI2lmZGVmIFVTRV9FTUlTU0lWRU1BUAoJdW5pZm9ybSBzYW1wbGVyMkQgZW1pc3NpdmVNYXA7CiNlbmRpZmAscU09ImdsX0ZyYWdDb2xvciA9IGxpbmVhclRvT3V0cHV0VGV4ZWwoIGdsX0ZyYWdDb2xvciApOyIsWE09YHZlYzQgTGluZWFyVG9MaW5lYXIoIGluIHZlYzQgdmFsdWUgKSB7CglyZXR1cm4gdmFsdWU7Cn0KdmVjNCBMaW5lYXJUb3NSR0IoIGluIHZlYzQgdmFsdWUgKSB7CglyZXR1cm4gdmVjNCggbWl4KCBwb3coIHZhbHVlLnJnYiwgdmVjMyggMC40MTY2NiApICkgKiAxLjA1NSAtIHZlYzMoIDAuMDU1ICksIHZhbHVlLnJnYiAqIDEyLjkyLCB2ZWMzKCBsZXNzVGhhbkVxdWFsKCB2YWx1ZS5yZ2IsIHZlYzMoIDAuMDAzMTMwOCApICkgKSApLCB2YWx1ZS5hICk7Cn1gLFlNPWAjaWZkZWYgVVNFX0VOVk1BUAoJI2lmZGVmIEVOVl9XT1JMRFBPUwoJCXZlYzMgY2FtZXJhVG9GcmFnOwoJCWlmICggaXNPcnRob2dyYXBoaWMgKSB7CgkJCWNhbWVyYVRvRnJhZyA9IG5vcm1hbGl6ZSggdmVjMyggLSB2aWV3TWF0cml4WyAwIF1bIDIgXSwgLSB2aWV3TWF0cml4WyAxIF1bIDIgXSwgLSB2aWV3TWF0cml4WyAyIF1bIDIgXSApICk7CgkJfSBlbHNlIHsKCQkJY2FtZXJhVG9GcmFnID0gbm9ybWFsaXplKCB2V29ybGRQb3NpdGlvbiAtIGNhbWVyYVBvc2l0aW9uICk7CgkJfQoJCXZlYzMgd29ybGROb3JtYWwgPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCBub3JtYWwsIHZpZXdNYXRyaXggKTsKCQkjaWZkZWYgRU5WTUFQX01PREVfUkVGTEVDVElPTgoJCQl2ZWMzIHJlZmxlY3RWZWMgPSByZWZsZWN0KCBjYW1lcmFUb0ZyYWcsIHdvcmxkTm9ybWFsICk7CgkJI2Vsc2UKCQkJdmVjMyByZWZsZWN0VmVjID0gcmVmcmFjdCggY2FtZXJhVG9GcmFnLCB3b3JsZE5vcm1hbCwgcmVmcmFjdGlvblJhdGlvICk7CgkJI2VuZGlmCgkjZWxzZQoJCXZlYzMgcmVmbGVjdFZlYyA9IHZSZWZsZWN0OwoJI2VuZGlmCgkjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRQoJCXZlYzQgZW52Q29sb3IgPSB0ZXh0dXJlQ3ViZSggZW52TWFwLCB2ZWMzKCBmbGlwRW52TWFwICogcmVmbGVjdFZlYy54LCByZWZsZWN0VmVjLnl6ICkgKTsKCSNlbGlmIGRlZmluZWQoIEVOVk1BUF9UWVBFX0NVQkVfVVYgKQoJCXZlYzQgZW52Q29sb3IgPSB0ZXh0dXJlQ3ViZVVWKCBlbnZNYXAsIHJlZmxlY3RWZWMsIDAuMCApOwoJI2Vsc2UKCQl2ZWM0IGVudkNvbG9yID0gdmVjNCggMC4wICk7CgkjZW5kaWYKCSNpZmRlZiBFTlZNQVBfQkxFTkRJTkdfTVVMVElQTFkKCQlvdXRnb2luZ0xpZ2h0ID0gbWl4KCBvdXRnb2luZ0xpZ2h0LCBvdXRnb2luZ0xpZ2h0ICogZW52Q29sb3IueHl6LCBzcGVjdWxhclN0cmVuZ3RoICogcmVmbGVjdGl2aXR5ICk7CgkjZWxpZiBkZWZpbmVkKCBFTlZNQVBfQkxFTkRJTkdfTUlYICkKCQlvdXRnb2luZ0xpZ2h0ID0gbWl4KCBvdXRnb2luZ0xpZ2h0LCBlbnZDb2xvci54eXosIHNwZWN1bGFyU3RyZW5ndGggKiByZWZsZWN0aXZpdHkgKTsKCSNlbGlmIGRlZmluZWQoIEVOVk1BUF9CTEVORElOR19BREQgKQoJCW91dGdvaW5nTGlnaHQgKz0gZW52Q29sb3IueHl6ICogc3BlY3VsYXJTdHJlbmd0aCAqIHJlZmxlY3Rpdml0eTsKCSNlbmRpZgojZW5kaWZgLFpNPWAjaWZkZWYgVVNFX0VOVk1BUAoJdW5pZm9ybSBmbG9hdCBlbnZNYXBJbnRlbnNpdHk7Cgl1bmlmb3JtIGZsb2F0IGZsaXBFbnZNYXA7CgkjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRQoJCXVuaWZvcm0gc2FtcGxlckN1YmUgZW52TWFwOwoJI2Vsc2UKCQl1bmlmb3JtIHNhbXBsZXIyRCBlbnZNYXA7CgkjZW5kaWYKCQojZW5kaWZgLEpNPWAjaWZkZWYgVVNFX0VOVk1BUAoJdW5pZm9ybSBmbG9hdCByZWZsZWN0aXZpdHk7CgkjaWYgZGVmaW5lZCggVVNFX0JVTVBNQVAgKSB8fCBkZWZpbmVkKCBVU0VfTk9STUFMTUFQICkgfHwgZGVmaW5lZCggUEhPTkcgKQoJCSNkZWZpbmUgRU5WX1dPUkxEUE9TCgkjZW5kaWYKCSNpZmRlZiBFTlZfV09STERQT1MKCQl2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247CgkJdW5pZm9ybSBmbG9hdCByZWZyYWN0aW9uUmF0aW87CgkjZWxzZQoJCXZhcnlpbmcgdmVjMyB2UmVmbGVjdDsKCSNlbmRpZgojZW5kaWZgLCRNPWAjaWZkZWYgVVNFX0VOVk1BUAoJI2lmIGRlZmluZWQoIFVTRV9CVU1QTUFQICkgfHwgZGVmaW5lZCggVVNFX05PUk1BTE1BUCApIHx8ZGVmaW5lZCggUEhPTkcgKQoJCSNkZWZpbmUgRU5WX1dPUkxEUE9TCgkjZW5kaWYKCSNpZmRlZiBFTlZfV09STERQT1MKCQkKCQl2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247CgkjZWxzZQoJCXZhcnlpbmcgdmVjMyB2UmVmbGVjdDsKCQl1bmlmb3JtIGZsb2F0IHJlZnJhY3Rpb25SYXRpbzsKCSNlbmRpZgojZW5kaWZgLEtNPWAjaWZkZWYgVVNFX0VOVk1BUAoJI2lmZGVmIEVOVl9XT1JMRFBPUwoJCXZXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbi54eXo7CgkjZWxzZQoJCXZlYzMgY2FtZXJhVG9WZXJ0ZXg7CgkJaWYgKCBpc09ydGhvZ3JhcGhpYyApIHsKCQkJY2FtZXJhVG9WZXJ0ZXggPSBub3JtYWxpemUoIHZlYzMoIC0gdmlld01hdHJpeFsgMCBdWyAyIF0sIC0gdmlld01hdHJpeFsgMSBdWyAyIF0sIC0gdmlld01hdHJpeFsgMiBdWyAyIF0gKSApOwoJCX0gZWxzZSB7CgkJCWNhbWVyYVRvVmVydGV4ID0gbm9ybWFsaXplKCB3b3JsZFBvc2l0aW9uLnh5eiAtIGNhbWVyYVBvc2l0aW9uICk7CgkJfQoJCXZlYzMgd29ybGROb3JtYWwgPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCB0cmFuc2Zvcm1lZE5vcm1hbCwgdmlld01hdHJpeCApOwoJCSNpZmRlZiBFTlZNQVBfTU9ERV9SRUZMRUNUSU9OCgkJCXZSZWZsZWN0ID0gcmVmbGVjdCggY2FtZXJhVG9WZXJ0ZXgsIHdvcmxkTm9ybWFsICk7CgkJI2Vsc2UKCQkJdlJlZmxlY3QgPSByZWZyYWN0KCBjYW1lcmFUb1ZlcnRleCwgd29ybGROb3JtYWwsIHJlZnJhY3Rpb25SYXRpbyApOwoJCSNlbmRpZgoJI2VuZGlmCiNlbmRpZmAsUU09YCNpZmRlZiBVU0VfRk9HCgl2Rm9nRGVwdGggPSAtIG12UG9zaXRpb24uejsKI2VuZGlmYCxqTT1gI2lmZGVmIFVTRV9GT0cKCXZhcnlpbmcgZmxvYXQgdkZvZ0RlcHRoOwojZW5kaWZgLHRiPWAjaWZkZWYgVVNFX0ZPRwoJI2lmZGVmIEZPR19FWFAyCgkJZmxvYXQgZm9nRmFjdG9yID0gMS4wIC0gZXhwKCAtIGZvZ0RlbnNpdHkgKiBmb2dEZW5zaXR5ICogdkZvZ0RlcHRoICogdkZvZ0RlcHRoICk7CgkjZWxzZQoJCWZsb2F0IGZvZ0ZhY3RvciA9IHNtb290aHN0ZXAoIGZvZ05lYXIsIGZvZ0ZhciwgdkZvZ0RlcHRoICk7CgkjZW5kaWYKCWdsX0ZyYWdDb2xvci5yZ2IgPSBtaXgoIGdsX0ZyYWdDb2xvci5yZ2IsIGZvZ0NvbG9yLCBmb2dGYWN0b3IgKTsKI2VuZGlmYCxlYj1gI2lmZGVmIFVTRV9GT0cKCXVuaWZvcm0gdmVjMyBmb2dDb2xvcjsKCXZhcnlpbmcgZmxvYXQgdkZvZ0RlcHRoOwoJI2lmZGVmIEZPR19FWFAyCgkJdW5pZm9ybSBmbG9hdCBmb2dEZW5zaXR5OwoJI2Vsc2UKCQl1bmlmb3JtIGZsb2F0IGZvZ05lYXI7CgkJdW5pZm9ybSBmbG9hdCBmb2dGYXI7CgkjZW5kaWYKI2VuZGlmYCxuYj1gI2lmZGVmIFVTRV9HUkFESUVOVE1BUAoJdW5pZm9ybSBzYW1wbGVyMkQgZ3JhZGllbnRNYXA7CiNlbmRpZgp2ZWMzIGdldEdyYWRpZW50SXJyYWRpYW5jZSggdmVjMyBub3JtYWwsIHZlYzMgbGlnaHREaXJlY3Rpb24gKSB7CglmbG9hdCBkb3ROTCA9IGRvdCggbm9ybWFsLCBsaWdodERpcmVjdGlvbiApOwoJdmVjMiBjb29yZCA9IHZlYzIoIGRvdE5MICogMC41ICsgMC41LCAwLjAgKTsKCSNpZmRlZiBVU0VfR1JBRElFTlRNQVAKCQlyZXR1cm4gdmVjMyggdGV4dHVyZTJEKCBncmFkaWVudE1hcCwgY29vcmQgKS5yICk7CgkjZWxzZQoJCXJldHVybiAoIGNvb3JkLnggPCAwLjcgKSA/IHZlYzMoIDAuNyApIDogdmVjMyggMS4wICk7CgkjZW5kaWYKfWAsaWI9YCNpZmRlZiBVU0VfTElHSFRNQVAKCXZlYzQgbGlnaHRNYXBUZXhlbCA9IHRleHR1cmUyRCggbGlnaHRNYXAsIHZVdjIgKTsKCXZlYzMgbGlnaHRNYXBJcnJhZGlhbmNlID0gbGlnaHRNYXBUZXhlbC5yZ2IgKiBsaWdodE1hcEludGVuc2l0eTsKCSNpZm5kZWYgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUUwoJCWxpZ2h0TWFwSXJyYWRpYW5jZSAqPSBQSTsKCSNlbmRpZgoJcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGxpZ2h0TWFwSXJyYWRpYW5jZTsKI2VuZGlmYCxyYj1gI2lmZGVmIFVTRV9MSUdIVE1BUAoJdW5pZm9ybSBzYW1wbGVyMkQgbGlnaHRNYXA7Cgl1bmlmb3JtIGZsb2F0IGxpZ2h0TWFwSW50ZW5zaXR5OwojZW5kaWZgLHNiPWB2ZWMzIGRpZmZ1c2UgPSB2ZWMzKCAxLjAgKTsKR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeTsKZ2VvbWV0cnkucG9zaXRpb24gPSBtdlBvc2l0aW9uLnh5ejsKZ2VvbWV0cnkubm9ybWFsID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZE5vcm1hbCApOwpnZW9tZXRyeS52aWV3RGlyID0gKCBpc09ydGhvZ3JhcGhpYyApID8gdmVjMyggMCwgMCwgMSApIDogbm9ybWFsaXplKCAtbXZQb3NpdGlvbi54eXogKTsKR2VvbWV0cmljQ29udGV4dCBiYWNrR2VvbWV0cnk7CmJhY2tHZW9tZXRyeS5wb3NpdGlvbiA9IGdlb21ldHJ5LnBvc2l0aW9uOwpiYWNrR2VvbWV0cnkubm9ybWFsID0gLWdlb21ldHJ5Lm5vcm1hbDsKYmFja0dlb21ldHJ5LnZpZXdEaXIgPSBnZW9tZXRyeS52aWV3RGlyOwp2TGlnaHRGcm9udCA9IHZlYzMoIDAuMCApOwp2SW5kaXJlY3RGcm9udCA9IHZlYzMoIDAuMCApOwojaWZkZWYgRE9VQkxFX1NJREVECgl2TGlnaHRCYWNrID0gdmVjMyggMC4wICk7Cgl2SW5kaXJlY3RCYWNrID0gdmVjMyggMC4wICk7CiNlbmRpZgpJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0OwpmbG9hdCBkb3ROTDsKdmVjMyBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7CnZJbmRpcmVjdEZyb250ICs9IGdldEFtYmllbnRMaWdodElycmFkaWFuY2UoIGFtYmllbnRMaWdodENvbG9yICk7CnZJbmRpcmVjdEZyb250ICs9IGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBsaWdodFByb2JlLCBnZW9tZXRyeS5ub3JtYWwgKTsKI2lmZGVmIERPVUJMRV9TSURFRAoJdkluZGlyZWN0QmFjayArPSBnZXRBbWJpZW50TGlnaHRJcnJhZGlhbmNlKCBhbWJpZW50TGlnaHRDb2xvciApOwoJdkluZGlyZWN0QmFjayArPSBnZXRMaWdodFByb2JlSXJyYWRpYW5jZSggbGlnaHRQcm9iZSwgYmFja0dlb21ldHJ5Lm5vcm1hbCApOwojZW5kaWYKI2lmIE5VTV9QT0lOVF9MSUdIVFMgPiAwCgkjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0Cglmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fUE9JTlRfTElHSFRTOyBpICsrICkgewoJCWdldFBvaW50TGlnaHRJbmZvKCBwb2ludExpZ2h0c1sgaSBdLCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTsKCQlkb3ROTCA9IGRvdCggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKTsKCQlkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2UgPSBkaXJlY3RMaWdodC5jb2xvcjsKCQl2TGlnaHRGcm9udCArPSBzYXR1cmF0ZSggZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTsKCQkjaWZkZWYgRE9VQkxFX1NJREVECgkJCXZMaWdodEJhY2sgKz0gc2F0dXJhdGUoIC0gZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTsKCQkjZW5kaWYKCX0KCSNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kCiNlbmRpZgojaWYgTlVNX1NQT1RfTElHSFRTID4gMAoJI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydAoJZm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1NQT1RfTElHSFRTOyBpICsrICkgewoJCWdldFNwb3RMaWdodEluZm8oIHNwb3RMaWdodHNbIGkgXSwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7CgkJZG90TkwgPSBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICk7CgkJZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlID0gZGlyZWN0TGlnaHQuY29sb3I7CgkJdkxpZ2h0RnJvbnQgKz0gc2F0dXJhdGUoIGRvdE5MICkgKiBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7CgkJI2lmZGVmIERPVUJMRV9TSURFRAoJCQl2TGlnaHRCYWNrICs9IHNhdHVyYXRlKCAtIGRvdE5MICkgKiBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7CgkJI2VuZGlmCgl9CgkjcHJhZ21hIHVucm9sbF9sb29wX2VuZAojZW5kaWYKI2lmIE5VTV9ESVJfTElHSFRTID4gMAoJI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydAoJZm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0RJUl9MSUdIVFM7IGkgKysgKSB7CgkJZ2V0RGlyZWN0aW9uYWxMaWdodEluZm8oIGRpcmVjdGlvbmFsTGlnaHRzWyBpIF0sIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApOwoJCWRvdE5MID0gZG90KCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApOwoJCWRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZSA9IGRpcmVjdExpZ2h0LmNvbG9yOwoJCXZMaWdodEZyb250ICs9IHNhdHVyYXRlKCBkb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlOwoJCSNpZmRlZiBET1VCTEVfU0lERUQKCQkJdkxpZ2h0QmFjayArPSBzYXR1cmF0ZSggLSBkb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlOwoJCSNlbmRpZgoJfQoJI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmQKI2VuZGlmCiNpZiBOVU1fSEVNSV9MSUdIVFMgPiAwCgkjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0Cglmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fSEVNSV9MSUdIVFM7IGkgKysgKSB7CgkJdkluZGlyZWN0RnJvbnQgKz0gZ2V0SGVtaXNwaGVyZUxpZ2h0SXJyYWRpYW5jZSggaGVtaXNwaGVyZUxpZ2h0c1sgaSBdLCBnZW9tZXRyeS5ub3JtYWwgKTsKCQkjaWZkZWYgRE9VQkxFX1NJREVECgkJCXZJbmRpcmVjdEJhY2sgKz0gZ2V0SGVtaXNwaGVyZUxpZ2h0SXJyYWRpYW5jZSggaGVtaXNwaGVyZUxpZ2h0c1sgaSBdLCBiYWNrR2VvbWV0cnkubm9ybWFsICk7CgkJI2VuZGlmCgl9CgkjcHJhZ21hIHVucm9sbF9sb29wX2VuZAojZW5kaWZgLG9iPWB1bmlmb3JtIGJvb2wgcmVjZWl2ZVNoYWRvdzsKdW5pZm9ybSB2ZWMzIGFtYmllbnRMaWdodENvbG9yOwp1bmlmb3JtIHZlYzMgbGlnaHRQcm9iZVsgOSBdOwp2ZWMzIHNoR2V0SXJyYWRpYW5jZUF0KCBpbiB2ZWMzIG5vcm1hbCwgaW4gdmVjMyBzaENvZWZmaWNpZW50c1sgOSBdICkgewoJZmxvYXQgeCA9IG5vcm1hbC54LCB5ID0gbm9ybWFsLnksIHogPSBub3JtYWwuejsKCXZlYzMgcmVzdWx0ID0gc2hDb2VmZmljaWVudHNbIDAgXSAqIDAuODg2MjI3OwoJcmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyAxIF0gKiAyLjAgKiAwLjUxMTY2NCAqIHk7CglyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDIgXSAqIDIuMCAqIDAuNTExNjY0ICogejsKCXJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgMyBdICogMi4wICogMC41MTE2NjQgKiB4OwoJcmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA0IF0gKiAyLjAgKiAwLjQyOTA0MyAqIHggKiB5OwoJcmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA1IF0gKiAyLjAgKiAwLjQyOTA0MyAqIHkgKiB6OwoJcmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA2IF0gKiAoIDAuNzQzMTI1ICogeiAqIHogLSAwLjI0NzcwOCApOwoJcmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA3IF0gKiAyLjAgKiAwLjQyOTA0MyAqIHggKiB6OwoJcmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA4IF0gKiAwLjQyOTA0MyAqICggeCAqIHggLSB5ICogeSApOwoJcmV0dXJuIHJlc3VsdDsKfQp2ZWMzIGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBjb25zdCBpbiB2ZWMzIGxpZ2h0UHJvYmVbIDkgXSwgY29uc3QgaW4gdmVjMyBub3JtYWwgKSB7Cgl2ZWMzIHdvcmxkTm9ybWFsID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggbm9ybWFsLCB2aWV3TWF0cml4ICk7Cgl2ZWMzIGlycmFkaWFuY2UgPSBzaEdldElycmFkaWFuY2VBdCggd29ybGROb3JtYWwsIGxpZ2h0UHJvYmUgKTsKCXJldHVybiBpcnJhZGlhbmNlOwp9CnZlYzMgZ2V0QW1iaWVudExpZ2h0SXJyYWRpYW5jZSggY29uc3QgaW4gdmVjMyBhbWJpZW50TGlnaHRDb2xvciApIHsKCXZlYzMgaXJyYWRpYW5jZSA9IGFtYmllbnRMaWdodENvbG9yOwoJcmV0dXJuIGlycmFkaWFuY2U7Cn0KZmxvYXQgZ2V0RGlzdGFuY2VBdHRlbnVhdGlvbiggY29uc3QgaW4gZmxvYXQgbGlnaHREaXN0YW5jZSwgY29uc3QgaW4gZmxvYXQgY3V0b2ZmRGlzdGFuY2UsIGNvbnN0IGluIGZsb2F0IGRlY2F5RXhwb25lbnQgKSB7CgkjaWYgZGVmaW5lZCAoIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFMgKQoJCWZsb2F0IGRpc3RhbmNlRmFsbG9mZiA9IDEuMCAvIG1heCggcG93KCBsaWdodERpc3RhbmNlLCBkZWNheUV4cG9uZW50ICksIDAuMDEgKTsKCQlpZiAoIGN1dG9mZkRpc3RhbmNlID4gMC4wICkgewoJCQlkaXN0YW5jZUZhbGxvZmYgKj0gcG93Miggc2F0dXJhdGUoIDEuMCAtIHBvdzQoIGxpZ2h0RGlzdGFuY2UgLyBjdXRvZmZEaXN0YW5jZSApICkgKTsKCQl9CgkJcmV0dXJuIGRpc3RhbmNlRmFsbG9mZjsKCSNlbHNlCgkJaWYgKCBjdXRvZmZEaXN0YW5jZSA+IDAuMCAmJiBkZWNheUV4cG9uZW50ID4gMC4wICkgewoJCQlyZXR1cm4gcG93KCBzYXR1cmF0ZSggLSBsaWdodERpc3RhbmNlIC8gY3V0b2ZmRGlzdGFuY2UgKyAxLjAgKSwgZGVjYXlFeHBvbmVudCApOwoJCX0KCQlyZXR1cm4gMS4wOwoJI2VuZGlmCn0KZmxvYXQgZ2V0U3BvdEF0dGVudWF0aW9uKCBjb25zdCBpbiBmbG9hdCBjb25lQ29zaW5lLCBjb25zdCBpbiBmbG9hdCBwZW51bWJyYUNvc2luZSwgY29uc3QgaW4gZmxvYXQgYW5nbGVDb3NpbmUgKSB7CglyZXR1cm4gc21vb3Roc3RlcCggY29uZUNvc2luZSwgcGVudW1icmFDb3NpbmUsIGFuZ2xlQ29zaW5lICk7Cn0KI2lmIE5VTV9ESVJfTElHSFRTID4gMAoJc3RydWN0IERpcmVjdGlvbmFsTGlnaHQgewoJCXZlYzMgZGlyZWN0aW9uOwoJCXZlYzMgY29sb3I7Cgl9OwoJdW5pZm9ybSBEaXJlY3Rpb25hbExpZ2h0IGRpcmVjdGlvbmFsTGlnaHRzWyBOVU1fRElSX0xJR0hUUyBdOwoJdm9pZCBnZXREaXJlY3Rpb25hbExpZ2h0SW5mbyggY29uc3QgaW4gRGlyZWN0aW9uYWxMaWdodCBkaXJlY3Rpb25hbExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBvdXQgSW5jaWRlbnRMaWdodCBsaWdodCApIHsKCQlsaWdodC5jb2xvciA9IGRpcmVjdGlvbmFsTGlnaHQuY29sb3I7CgkJbGlnaHQuZGlyZWN0aW9uID0gZGlyZWN0aW9uYWxMaWdodC5kaXJlY3Rpb247CgkJbGlnaHQudmlzaWJsZSA9IHRydWU7Cgl9CiNlbmRpZgojaWYgTlVNX1BPSU5UX0xJR0hUUyA+IDAKCXN0cnVjdCBQb2ludExpZ2h0IHsKCQl2ZWMzIHBvc2l0aW9uOwoJCXZlYzMgY29sb3I7CgkJZmxvYXQgZGlzdGFuY2U7CgkJZmxvYXQgZGVjYXk7Cgl9OwoJdW5pZm9ybSBQb2ludExpZ2h0IHBvaW50TGlnaHRzWyBOVU1fUE9JTlRfTElHSFRTIF07Cgl2b2lkIGdldFBvaW50TGlnaHRJbmZvKCBjb25zdCBpbiBQb2ludExpZ2h0IHBvaW50TGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIG91dCBJbmNpZGVudExpZ2h0IGxpZ2h0ICkgewoJCXZlYzMgbFZlY3RvciA9IHBvaW50TGlnaHQucG9zaXRpb24gLSBnZW9tZXRyeS5wb3NpdGlvbjsKCQlsaWdodC5kaXJlY3Rpb24gPSBub3JtYWxpemUoIGxWZWN0b3IgKTsKCQlmbG9hdCBsaWdodERpc3RhbmNlID0gbGVuZ3RoKCBsVmVjdG9yICk7CgkJbGlnaHQuY29sb3IgPSBwb2ludExpZ2h0LmNvbG9yOwoJCWxpZ2h0LmNvbG9yICo9IGdldERpc3RhbmNlQXR0ZW51YXRpb24oIGxpZ2h0RGlzdGFuY2UsIHBvaW50TGlnaHQuZGlzdGFuY2UsIHBvaW50TGlnaHQuZGVjYXkgKTsKCQlsaWdodC52aXNpYmxlID0gKCBsaWdodC5jb2xvciAhPSB2ZWMzKCAwLjAgKSApOwoJfQojZW5kaWYKI2lmIE5VTV9TUE9UX0xJR0hUUyA+IDAKCXN0cnVjdCBTcG90TGlnaHQgewoJCXZlYzMgcG9zaXRpb247CgkJdmVjMyBkaXJlY3Rpb247CgkJdmVjMyBjb2xvcjsKCQlmbG9hdCBkaXN0YW5jZTsKCQlmbG9hdCBkZWNheTsKCQlmbG9hdCBjb25lQ29zOwoJCWZsb2F0IHBlbnVtYnJhQ29zOwoJfTsKCXVuaWZvcm0gU3BvdExpZ2h0IHNwb3RMaWdodHNbIE5VTV9TUE9UX0xJR0hUUyBdOwoJdm9pZCBnZXRTcG90TGlnaHRJbmZvKCBjb25zdCBpbiBTcG90TGlnaHQgc3BvdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBvdXQgSW5jaWRlbnRMaWdodCBsaWdodCApIHsKCQl2ZWMzIGxWZWN0b3IgPSBzcG90TGlnaHQucG9zaXRpb24gLSBnZW9tZXRyeS5wb3NpdGlvbjsKCQlsaWdodC5kaXJlY3Rpb24gPSBub3JtYWxpemUoIGxWZWN0b3IgKTsKCQlmbG9hdCBhbmdsZUNvcyA9IGRvdCggbGlnaHQuZGlyZWN0aW9uLCBzcG90TGlnaHQuZGlyZWN0aW9uICk7CgkJZmxvYXQgc3BvdEF0dGVudWF0aW9uID0gZ2V0U3BvdEF0dGVudWF0aW9uKCBzcG90TGlnaHQuY29uZUNvcywgc3BvdExpZ2h0LnBlbnVtYnJhQ29zLCBhbmdsZUNvcyApOwoJCWlmICggc3BvdEF0dGVudWF0aW9uID4gMC4wICkgewoJCQlmbG9hdCBsaWdodERpc3RhbmNlID0gbGVuZ3RoKCBsVmVjdG9yICk7CgkJCWxpZ2h0LmNvbG9yID0gc3BvdExpZ2h0LmNvbG9yICogc3BvdEF0dGVudWF0aW9uOwoJCQlsaWdodC5jb2xvciAqPSBnZXREaXN0YW5jZUF0dGVudWF0aW9uKCBsaWdodERpc3RhbmNlLCBzcG90TGlnaHQuZGlzdGFuY2UsIHNwb3RMaWdodC5kZWNheSApOwoJCQlsaWdodC52aXNpYmxlID0gKCBsaWdodC5jb2xvciAhPSB2ZWMzKCAwLjAgKSApOwoJCX0gZWxzZSB7CgkJCWxpZ2h0LmNvbG9yID0gdmVjMyggMC4wICk7CgkJCWxpZ2h0LnZpc2libGUgPSBmYWxzZTsKCQl9Cgl9CiNlbmRpZgojaWYgTlVNX1JFQ1RfQVJFQV9MSUdIVFMgPiAwCglzdHJ1Y3QgUmVjdEFyZWFMaWdodCB7CgkJdmVjMyBjb2xvcjsKCQl2ZWMzIHBvc2l0aW9uOwoJCXZlYzMgaGFsZldpZHRoOwoJCXZlYzMgaGFsZkhlaWdodDsKCX07Cgl1bmlmb3JtIHNhbXBsZXIyRCBsdGNfMTsJdW5pZm9ybSBzYW1wbGVyMkQgbHRjXzI7Cgl1bmlmb3JtIFJlY3RBcmVhTGlnaHQgcmVjdEFyZWFMaWdodHNbIE5VTV9SRUNUX0FSRUFfTElHSFRTIF07CiNlbmRpZgojaWYgTlVNX0hFTUlfTElHSFRTID4gMAoJc3RydWN0IEhlbWlzcGhlcmVMaWdodCB7CgkJdmVjMyBkaXJlY3Rpb247CgkJdmVjMyBza3lDb2xvcjsKCQl2ZWMzIGdyb3VuZENvbG9yOwoJfTsKCXVuaWZvcm0gSGVtaXNwaGVyZUxpZ2h0IGhlbWlzcGhlcmVMaWdodHNbIE5VTV9IRU1JX0xJR0hUUyBdOwoJdmVjMyBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBjb25zdCBpbiBIZW1pc3BoZXJlTGlnaHQgaGVtaUxpZ2h0LCBjb25zdCBpbiB2ZWMzIG5vcm1hbCApIHsKCQlmbG9hdCBkb3ROTCA9IGRvdCggbm9ybWFsLCBoZW1pTGlnaHQuZGlyZWN0aW9uICk7CgkJZmxvYXQgaGVtaURpZmZ1c2VXZWlnaHQgPSAwLjUgKiBkb3ROTCArIDAuNTsKCQl2ZWMzIGlycmFkaWFuY2UgPSBtaXgoIGhlbWlMaWdodC5ncm91bmRDb2xvciwgaGVtaUxpZ2h0LnNreUNvbG9yLCBoZW1pRGlmZnVzZVdlaWdodCApOwoJCXJldHVybiBpcnJhZGlhbmNlOwoJfQojZW5kaWZgLGFiPWAjaWYgZGVmaW5lZCggVVNFX0VOVk1BUCApCgkjaWZkZWYgRU5WTUFQX01PREVfUkVGUkFDVElPTgoJCXVuaWZvcm0gZmxvYXQgcmVmcmFjdGlvblJhdGlvOwoJI2VuZGlmCgl2ZWMzIGdldElCTElycmFkaWFuY2UoIGNvbnN0IGluIHZlYzMgbm9ybWFsICkgewoJCSNpZiBkZWZpbmVkKCBFTlZNQVBfVFlQRV9DVUJFX1VWICkKCQkJdmVjMyB3b3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIG5vcm1hbCwgdmlld01hdHJpeCApOwoJCQl2ZWM0IGVudk1hcENvbG9yID0gdGV4dHVyZUN1YmVVViggZW52TWFwLCB3b3JsZE5vcm1hbCwgMS4wICk7CgkJCXJldHVybiBQSSAqIGVudk1hcENvbG9yLnJnYiAqIGVudk1hcEludGVuc2l0eTsKCQkjZWxzZQoJCQlyZXR1cm4gdmVjMyggMC4wICk7CgkJI2VuZGlmCgl9Cgl2ZWMzIGdldElCTFJhZGlhbmNlKCBjb25zdCBpbiB2ZWMzIHZpZXdEaXIsIGNvbnN0IGluIHZlYzMgbm9ybWFsLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7CgkJI2lmIGRlZmluZWQoIEVOVk1BUF9UWVBFX0NVQkVfVVYgKQoJCQl2ZWMzIHJlZmxlY3RWZWM7CgkJCSNpZmRlZiBFTlZNQVBfTU9ERV9SRUZMRUNUSU9OCgkJCQlyZWZsZWN0VmVjID0gcmVmbGVjdCggLSB2aWV3RGlyLCBub3JtYWwgKTsKCQkJCXJlZmxlY3RWZWMgPSBub3JtYWxpemUoIG1peCggcmVmbGVjdFZlYywgbm9ybWFsLCByb3VnaG5lc3MgKiByb3VnaG5lc3MpICk7CgkJCSNlbHNlCgkJCQlyZWZsZWN0VmVjID0gcmVmcmFjdCggLSB2aWV3RGlyLCBub3JtYWwsIHJlZnJhY3Rpb25SYXRpbyApOwoJCQkjZW5kaWYKCQkJcmVmbGVjdFZlYyA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIHJlZmxlY3RWZWMsIHZpZXdNYXRyaXggKTsKCQkJdmVjNCBlbnZNYXBDb2xvciA9IHRleHR1cmVDdWJlVVYoIGVudk1hcCwgcmVmbGVjdFZlYywgcm91Z2huZXNzICk7CgkJCXJldHVybiBlbnZNYXBDb2xvci5yZ2IgKiBlbnZNYXBJbnRlbnNpdHk7CgkJI2Vsc2UKCQkJcmV0dXJuIHZlYzMoIDAuMCApOwoJCSNlbmRpZgoJfQojZW5kaWZgLGxiPWBUb29uTWF0ZXJpYWwgbWF0ZXJpYWw7Cm1hdGVyaWFsLmRpZmZ1c2VDb2xvciA9IGRpZmZ1c2VDb2xvci5yZ2I7YCxjYj1gdmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247CnN0cnVjdCBUb29uTWF0ZXJpYWwgewoJdmVjMyBkaWZmdXNlQ29sb3I7Cn07CnZvaWQgUkVfRGlyZWN0X1Rvb24oIGNvbnN0IGluIEluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIFRvb25NYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7Cgl2ZWMzIGlycmFkaWFuY2UgPSBnZXRHcmFkaWVudElycmFkaWFuY2UoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICkgKiBkaXJlY3RMaWdodC5jb2xvcjsKCXJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7Cn0Kdm9pZCBSRV9JbmRpcmVjdERpZmZ1c2VfVG9vbiggY29uc3QgaW4gdmVjMyBpcnJhZGlhbmNlLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBUb29uTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkgewoJcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApOwp9CiNkZWZpbmUgUkVfRGlyZWN0CQkJCVJFX0RpcmVjdF9Ub29uCiNkZWZpbmUgUkVfSW5kaXJlY3REaWZmdXNlCQlSRV9JbmRpcmVjdERpZmZ1c2VfVG9vbgojZGVmaW5lIE1hdGVyaWFsX0xpZ2h0UHJvYmVMT0QoIG1hdGVyaWFsICkJKDApYCx1Yj1gQmxpbm5QaG9uZ01hdGVyaWFsIG1hdGVyaWFsOwptYXRlcmlhbC5kaWZmdXNlQ29sb3IgPSBkaWZmdXNlQ29sb3IucmdiOwptYXRlcmlhbC5zcGVjdWxhckNvbG9yID0gc3BlY3VsYXI7Cm1hdGVyaWFsLnNwZWN1bGFyU2hpbmluZXNzID0gc2hpbmluZXNzOwptYXRlcmlhbC5zcGVjdWxhclN0cmVuZ3RoID0gc3BlY3VsYXJTdHJlbmd0aDtgLGhiPWB2YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjsKc3RydWN0IEJsaW5uUGhvbmdNYXRlcmlhbCB7Cgl2ZWMzIGRpZmZ1c2VDb2xvcjsKCXZlYzMgc3BlY3VsYXJDb2xvcjsKCWZsb2F0IHNwZWN1bGFyU2hpbmluZXNzOwoJZmxvYXQgc3BlY3VsYXJTdHJlbmd0aDsKfTsKdm9pZCBSRV9EaXJlY3RfQmxpbm5QaG9uZyggY29uc3QgaW4gSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gQmxpbm5QaG9uZ01hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHsKCWZsb2F0IGRvdE5MID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKSApOwoJdmVjMyBpcnJhZGlhbmNlID0gZG90TkwgKiBkaXJlY3RMaWdodC5jb2xvcjsKCXJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7CglyZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArPSBpcnJhZGlhbmNlICogQlJERl9CbGlublBob25nKCBkaXJlY3RMaWdodC5kaXJlY3Rpb24sIGdlb21ldHJ5LnZpZXdEaXIsIGdlb21ldHJ5Lm5vcm1hbCwgbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJTaGluaW5lc3MgKSAqIG1hdGVyaWFsLnNwZWN1bGFyU3RyZW5ndGg7Cn0Kdm9pZCBSRV9JbmRpcmVjdERpZmZ1c2VfQmxpbm5QaG9uZyggY29uc3QgaW4gdmVjMyBpcnJhZGlhbmNlLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBCbGlublBob25nTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkgewoJcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApOwp9CiNkZWZpbmUgUkVfRGlyZWN0CQkJCVJFX0RpcmVjdF9CbGlublBob25nCiNkZWZpbmUgUkVfSW5kaXJlY3REaWZmdXNlCQlSRV9JbmRpcmVjdERpZmZ1c2VfQmxpbm5QaG9uZwojZGVmaW5lIE1hdGVyaWFsX0xpZ2h0UHJvYmVMT0QoIG1hdGVyaWFsICkJKDApYCxmYj1gUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbDsKbWF0ZXJpYWwuZGlmZnVzZUNvbG9yID0gZGlmZnVzZUNvbG9yLnJnYiAqICggMS4wIC0gbWV0YWxuZXNzRmFjdG9yICk7CnZlYzMgZHh5ID0gbWF4KCBhYnMoIGRGZHgoIGdlb21ldHJ5Tm9ybWFsICkgKSwgYWJzKCBkRmR5KCBnZW9tZXRyeU5vcm1hbCApICkgKTsKZmxvYXQgZ2VvbWV0cnlSb3VnaG5lc3MgPSBtYXgoIG1heCggZHh5LngsIGR4eS55ICksIGR4eS56ICk7Cm1hdGVyaWFsLnJvdWdobmVzcyA9IG1heCggcm91Z2huZXNzRmFjdG9yLCAwLjA1MjUgKTttYXRlcmlhbC5yb3VnaG5lc3MgKz0gZ2VvbWV0cnlSb3VnaG5lc3M7Cm1hdGVyaWFsLnJvdWdobmVzcyA9IG1pbiggbWF0ZXJpYWwucm91Z2huZXNzLCAxLjAgKTsKI2lmZGVmIElPUgoJI2lmZGVmIFNQRUNVTEFSCgkJZmxvYXQgc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IgPSBzcGVjdWxhckludGVuc2l0eTsKCQl2ZWMzIHNwZWN1bGFyQ29sb3JGYWN0b3IgPSBzcGVjdWxhckNvbG9yOwoJCSNpZmRlZiBVU0VfU1BFQ1VMQVJJTlRFTlNJVFlNQVAKCQkJc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IgKj0gdGV4dHVyZTJEKCBzcGVjdWxhckludGVuc2l0eU1hcCwgdlV2ICkuYTsKCQkjZW5kaWYKCQkjaWZkZWYgVVNFX1NQRUNVTEFSQ09MT1JNQVAKCQkJc3BlY3VsYXJDb2xvckZhY3RvciAqPSB0ZXh0dXJlMkQoIHNwZWN1bGFyQ29sb3JNYXAsIHZVdiApLnJnYjsKCQkjZW5kaWYKCQltYXRlcmlhbC5zcGVjdWxhckY5MCA9IG1peCggc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IsIDEuMCwgbWV0YWxuZXNzRmFjdG9yICk7CgkjZWxzZQoJCWZsb2F0IHNwZWN1bGFySW50ZW5zaXR5RmFjdG9yID0gMS4wOwoJCXZlYzMgc3BlY3VsYXJDb2xvckZhY3RvciA9IHZlYzMoIDEuMCApOwoJCW1hdGVyaWFsLnNwZWN1bGFyRjkwID0gMS4wOwoJI2VuZGlmCgltYXRlcmlhbC5zcGVjdWxhckNvbG9yID0gbWl4KCBtaW4oIHBvdzIoICggaW9yIC0gMS4wICkgLyAoIGlvciArIDEuMCApICkgKiBzcGVjdWxhckNvbG9yRmFjdG9yLCB2ZWMzKCAxLjAgKSApICogc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IsIGRpZmZ1c2VDb2xvci5yZ2IsIG1ldGFsbmVzc0ZhY3RvciApOwojZWxzZQoJbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciA9IG1peCggdmVjMyggMC4wNCApLCBkaWZmdXNlQ29sb3IucmdiLCBtZXRhbG5lc3NGYWN0b3IgKTsKCW1hdGVyaWFsLnNwZWN1bGFyRjkwID0gMS4wOwojZW5kaWYKI2lmZGVmIFVTRV9DTEVBUkNPQVQKCW1hdGVyaWFsLmNsZWFyY29hdCA9IGNsZWFyY29hdDsKCW1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyA9IGNsZWFyY29hdFJvdWdobmVzczsKCW1hdGVyaWFsLmNsZWFyY29hdEYwID0gdmVjMyggMC4wNCApOwoJbWF0ZXJpYWwuY2xlYXJjb2F0RjkwID0gMS4wOwoJI2lmZGVmIFVTRV9DTEVBUkNPQVRNQVAKCQltYXRlcmlhbC5jbGVhcmNvYXQgKj0gdGV4dHVyZTJEKCBjbGVhcmNvYXRNYXAsIHZVdiApLng7CgkjZW5kaWYKCSNpZmRlZiBVU0VfQ0xFQVJDT0FUX1JPVUdITkVTU01BUAoJCW1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyAqPSB0ZXh0dXJlMkQoIGNsZWFyY29hdFJvdWdobmVzc01hcCwgdlV2ICkueTsKCSNlbmRpZgoJbWF0ZXJpYWwuY2xlYXJjb2F0ID0gc2F0dXJhdGUoIG1hdGVyaWFsLmNsZWFyY29hdCApOwltYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgPSBtYXgoIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcywgMC4wNTI1ICk7CgltYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgKz0gZ2VvbWV0cnlSb3VnaG5lc3M7CgltYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgPSBtaW4oIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcywgMS4wICk7CiNlbmRpZgojaWZkZWYgVVNFX1NIRUVOCgltYXRlcmlhbC5zaGVlbkNvbG9yID0gc2hlZW5Db2xvcjsKCSNpZmRlZiBVU0VfU0hFRU5DT0xPUk1BUAoJCW1hdGVyaWFsLnNoZWVuQ29sb3IgKj0gdGV4dHVyZTJEKCBzaGVlbkNvbG9yTWFwLCB2VXYgKS5yZ2I7CgkjZW5kaWYKCW1hdGVyaWFsLnNoZWVuUm91Z2huZXNzID0gY2xhbXAoIHNoZWVuUm91Z2huZXNzLCAwLjA3LCAxLjAgKTsKCSNpZmRlZiBVU0VfU0hFRU5ST1VHSE5FU1NNQVAKCQltYXRlcmlhbC5zaGVlblJvdWdobmVzcyAqPSB0ZXh0dXJlMkQoIHNoZWVuUm91Z2huZXNzTWFwLCB2VXYgKS5hOwoJI2VuZGlmCiNlbmRpZmAsZGI9YHN0cnVjdCBQaHlzaWNhbE1hdGVyaWFsIHsKCXZlYzMgZGlmZnVzZUNvbG9yOwoJZmxvYXQgcm91Z2huZXNzOwoJdmVjMyBzcGVjdWxhckNvbG9yOwoJZmxvYXQgc3BlY3VsYXJGOTA7CgkjaWZkZWYgVVNFX0NMRUFSQ09BVAoJCWZsb2F0IGNsZWFyY29hdDsKCQlmbG9hdCBjbGVhcmNvYXRSb3VnaG5lc3M7CgkJdmVjMyBjbGVhcmNvYXRGMDsKCQlmbG9hdCBjbGVhcmNvYXRGOTA7CgkjZW5kaWYKCSNpZmRlZiBVU0VfU0hFRU4KCQl2ZWMzIHNoZWVuQ29sb3I7CgkJZmxvYXQgc2hlZW5Sb3VnaG5lc3M7CgkjZW5kaWYKfTsKdmVjMyBjbGVhcmNvYXRTcGVjdWxhciA9IHZlYzMoIDAuMCApOwp2ZWMzIHNoZWVuU3BlY3VsYXIgPSB2ZWMzKCAwLjAgKTsKZmxvYXQgSUJMU2hlZW5CUkRGKCBjb25zdCBpbiB2ZWMzIG5vcm1hbCwgY29uc3QgaW4gdmVjMyB2aWV3RGlyLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MpIHsKCWZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCB2aWV3RGlyICkgKTsKCWZsb2F0IHIyID0gcm91Z2huZXNzICogcm91Z2huZXNzOwoJZmxvYXQgYSA9IHJvdWdobmVzcyA8IDAuMjUgPyAtMzM5LjIgKiByMiArIDE2MS40ICogcm91Z2huZXNzIC0gMjUuOSA6IC04LjQ4ICogcjIgKyAxNC4zICogcm91Z2huZXNzIC0gOS45NTsKCWZsb2F0IGIgPSByb3VnaG5lc3MgPCAwLjI1ID8gNDQuMCAqIHIyIC0gMjMuNyAqIHJvdWdobmVzcyArIDMuMjYgOiAxLjk3ICogcjIgLSAzLjI3ICogcm91Z2huZXNzICsgMC43MjsKCWZsb2F0IERHID0gZXhwKCBhICogZG90TlYgKyBiICkgKyAoIHJvdWdobmVzcyA8IDAuMjUgPyAwLjAgOiAwLjEgKiAoIHJvdWdobmVzcyAtIDAuMjUgKSApOwoJcmV0dXJuIHNhdHVyYXRlKCBERyAqIFJFQ0lQUk9DQUxfUEkgKTsKfQp2ZWMyIERGR0FwcHJveCggY29uc3QgaW4gdmVjMyBub3JtYWwsIGNvbnN0IGluIHZlYzMgdmlld0RpciwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzICkgewoJZmxvYXQgZG90TlYgPSBzYXR1cmF0ZSggZG90KCBub3JtYWwsIHZpZXdEaXIgKSApOwoJY29uc3QgdmVjNCBjMCA9IHZlYzQoIC0gMSwgLSAwLjAyNzUsIC0gMC41NzIsIDAuMDIyICk7Cgljb25zdCB2ZWM0IGMxID0gdmVjNCggMSwgMC4wNDI1LCAxLjA0LCAtIDAuMDQgKTsKCXZlYzQgciA9IHJvdWdobmVzcyAqIGMwICsgYzE7CglmbG9hdCBhMDA0ID0gbWluKCByLnggKiByLngsIGV4cDIoIC0gOS4yOCAqIGRvdE5WICkgKSAqIHIueCArIHIueTsKCXZlYzIgZmFiID0gdmVjMiggLSAxLjA0LCAxLjA0ICkgKiBhMDA0ICsgci56dzsKCXJldHVybiBmYWI7Cn0KdmVjMyBFbnZpcm9ubWVudEJSREYoIGNvbnN0IGluIHZlYzMgbm9ybWFsLCBjb25zdCBpbiB2ZWMzIHZpZXdEaXIsIGNvbnN0IGluIHZlYzMgc3BlY3VsYXJDb2xvciwgY29uc3QgaW4gZmxvYXQgc3BlY3VsYXJGOTAsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHsKCXZlYzIgZmFiID0gREZHQXBwcm94KCBub3JtYWwsIHZpZXdEaXIsIHJvdWdobmVzcyApOwoJcmV0dXJuIHNwZWN1bGFyQ29sb3IgKiBmYWIueCArIHNwZWN1bGFyRjkwICogZmFiLnk7Cn0Kdm9pZCBjb21wdXRlTXVsdGlzY2F0dGVyaW5nKCBjb25zdCBpbiB2ZWMzIG5vcm1hbCwgY29uc3QgaW4gdmVjMyB2aWV3RGlyLCBjb25zdCBpbiB2ZWMzIHNwZWN1bGFyQ29sb3IsIGNvbnN0IGluIGZsb2F0IHNwZWN1bGFyRjkwLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGlub3V0IHZlYzMgc2luZ2xlU2NhdHRlciwgaW5vdXQgdmVjMyBtdWx0aVNjYXR0ZXIgKSB7Cgl2ZWMyIGZhYiA9IERGR0FwcHJveCggbm9ybWFsLCB2aWV3RGlyLCByb3VnaG5lc3MgKTsKCXZlYzMgRnNzRXNzID0gc3BlY3VsYXJDb2xvciAqIGZhYi54ICsgc3BlY3VsYXJGOTAgKiBmYWIueTsKCWZsb2F0IEVzcyA9IGZhYi54ICsgZmFiLnk7CglmbG9hdCBFbXMgPSAxLjAgLSBFc3M7Cgl2ZWMzIEZhdmcgPSBzcGVjdWxhckNvbG9yICsgKCAxLjAgLSBzcGVjdWxhckNvbG9yICkgKiAwLjA0NzYxOTsJdmVjMyBGbXMgPSBGc3NFc3MgKiBGYXZnIC8gKCAxLjAgLSBFbXMgKiBGYXZnICk7CglzaW5nbGVTY2F0dGVyICs9IEZzc0VzczsKCW11bHRpU2NhdHRlciArPSBGbXMgKiBFbXM7Cn0KI2lmIE5VTV9SRUNUX0FSRUFfTElHSFRTID4gMAoJdm9pZCBSRV9EaXJlY3RfUmVjdEFyZWFfUGh5c2ljYWwoIGNvbnN0IGluIFJlY3RBcmVhTGlnaHQgcmVjdEFyZWFMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7CgkJdmVjMyBub3JtYWwgPSBnZW9tZXRyeS5ub3JtYWw7CgkJdmVjMyB2aWV3RGlyID0gZ2VvbWV0cnkudmlld0RpcjsKCQl2ZWMzIHBvc2l0aW9uID0gZ2VvbWV0cnkucG9zaXRpb247CgkJdmVjMyBsaWdodFBvcyA9IHJlY3RBcmVhTGlnaHQucG9zaXRpb247CgkJdmVjMyBoYWxmV2lkdGggPSByZWN0QXJlYUxpZ2h0LmhhbGZXaWR0aDsKCQl2ZWMzIGhhbGZIZWlnaHQgPSByZWN0QXJlYUxpZ2h0LmhhbGZIZWlnaHQ7CgkJdmVjMyBsaWdodENvbG9yID0gcmVjdEFyZWFMaWdodC5jb2xvcjsKCQlmbG9hdCByb3VnaG5lc3MgPSBtYXRlcmlhbC5yb3VnaG5lc3M7CgkJdmVjMyByZWN0Q29vcmRzWyA0IF07CgkJcmVjdENvb3Jkc1sgMCBdID0gbGlnaHRQb3MgKyBoYWxmV2lkdGggLSBoYWxmSGVpZ2h0OwkJcmVjdENvb3Jkc1sgMSBdID0gbGlnaHRQb3MgLSBoYWxmV2lkdGggLSBoYWxmSGVpZ2h0OwoJCXJlY3RDb29yZHNbIDIgXSA9IGxpZ2h0UG9zIC0gaGFsZldpZHRoICsgaGFsZkhlaWdodDsKCQlyZWN0Q29vcmRzWyAzIF0gPSBsaWdodFBvcyArIGhhbGZXaWR0aCArIGhhbGZIZWlnaHQ7CgkJdmVjMiB1diA9IExUQ19Vdiggbm9ybWFsLCB2aWV3RGlyLCByb3VnaG5lc3MgKTsKCQl2ZWM0IHQxID0gdGV4dHVyZTJEKCBsdGNfMSwgdXYgKTsKCQl2ZWM0IHQyID0gdGV4dHVyZTJEKCBsdGNfMiwgdXYgKTsKCQltYXQzIG1JbnYgPSBtYXQzKAoJCQl2ZWMzKCB0MS54LCAwLCB0MS55ICksCgkJCXZlYzMoICAgIDAsIDEsICAgIDAgKSwKCQkJdmVjMyggdDEueiwgMCwgdDEudyApCgkJKTsKCQl2ZWMzIGZyZXNuZWwgPSAoIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IgKiB0Mi54ICsgKCB2ZWMzKCAxLjAgKSAtIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IgKSAqIHQyLnkgKTsKCQlyZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArPSBsaWdodENvbG9yICogZnJlc25lbCAqIExUQ19FdmFsdWF0ZSggbm9ybWFsLCB2aWV3RGlyLCBwb3NpdGlvbiwgbUludiwgcmVjdENvb3JkcyApOwoJCXJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKz0gbGlnaHRDb2xvciAqIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciAqIExUQ19FdmFsdWF0ZSggbm9ybWFsLCB2aWV3RGlyLCBwb3NpdGlvbiwgbWF0MyggMS4wICksIHJlY3RDb29yZHMgKTsKCX0KI2VuZGlmCnZvaWQgUkVfRGlyZWN0X1BoeXNpY2FsKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBQaHlzaWNhbE1hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHsKCWZsb2F0IGRvdE5MID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKSApOwoJdmVjMyBpcnJhZGlhbmNlID0gZG90TkwgKiBkaXJlY3RMaWdodC5jb2xvcjsKCSNpZmRlZiBVU0VfQ0xFQVJDT0FUCgkJZmxvYXQgZG90TkxjYyA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICkgKTsKCQl2ZWMzIGNjSXJyYWRpYW5jZSA9IGRvdE5MY2MgKiBkaXJlY3RMaWdodC5jb2xvcjsKCQljbGVhcmNvYXRTcGVjdWxhciArPSBjY0lycmFkaWFuY2UgKiBCUkRGX0dHWCggZGlyZWN0TGlnaHQuZGlyZWN0aW9uLCBnZW9tZXRyeS52aWV3RGlyLCBnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwsIG1hdGVyaWFsLmNsZWFyY29hdEYwLCBtYXRlcmlhbC5jbGVhcmNvYXRGOTAsIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyApOwoJI2VuZGlmCgkjaWZkZWYgVVNFX1NIRUVOCgkJc2hlZW5TcGVjdWxhciArPSBpcnJhZGlhbmNlICogQlJERl9TaGVlbiggZGlyZWN0TGlnaHQuZGlyZWN0aW9uLCBnZW9tZXRyeS52aWV3RGlyLCBnZW9tZXRyeS5ub3JtYWwsIG1hdGVyaWFsLnNoZWVuQ29sb3IsIG1hdGVyaWFsLnNoZWVuUm91Z2huZXNzICk7CgkjZW5kaWYKCXJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICs9IGlycmFkaWFuY2UgKiBCUkRGX0dHWCggZGlyZWN0TGlnaHQuZGlyZWN0aW9uLCBnZW9tZXRyeS52aWV3RGlyLCBnZW9tZXRyeS5ub3JtYWwsIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IsIG1hdGVyaWFsLnNwZWN1bGFyRjkwLCBtYXRlcmlhbC5yb3VnaG5lc3MgKTsKCXJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7Cn0Kdm9pZCBSRV9JbmRpcmVjdERpZmZ1c2VfUGh5c2ljYWwoIGNvbnN0IGluIHZlYzMgaXJyYWRpYW5jZSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7CglyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7Cn0Kdm9pZCBSRV9JbmRpcmVjdFNwZWN1bGFyX1BoeXNpY2FsKCBjb25zdCBpbiB2ZWMzIHJhZGlhbmNlLCBjb25zdCBpbiB2ZWMzIGlycmFkaWFuY2UsIGNvbnN0IGluIHZlYzMgY2xlYXJjb2F0UmFkaWFuY2UsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIFBoeXNpY2FsTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0KSB7CgkjaWZkZWYgVVNFX0NMRUFSQ09BVAoJCWNsZWFyY29hdFNwZWN1bGFyICs9IGNsZWFyY29hdFJhZGlhbmNlICogRW52aXJvbm1lbnRCUkRGKCBnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwsIGdlb21ldHJ5LnZpZXdEaXIsIG1hdGVyaWFsLmNsZWFyY29hdEYwLCBtYXRlcmlhbC5jbGVhcmNvYXRGOTAsIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyApOwoJI2VuZGlmCgkjaWZkZWYgVVNFX1NIRUVOCgkJc2hlZW5TcGVjdWxhciArPSBpcnJhZGlhbmNlICogbWF0ZXJpYWwuc2hlZW5Db2xvciAqIElCTFNoZWVuQlJERiggZ2VvbWV0cnkubm9ybWFsLCBnZW9tZXRyeS52aWV3RGlyLCBtYXRlcmlhbC5zaGVlblJvdWdobmVzcyApOwoJI2VuZGlmCgl2ZWMzIHNpbmdsZVNjYXR0ZXJpbmcgPSB2ZWMzKCAwLjAgKTsKCXZlYzMgbXVsdGlTY2F0dGVyaW5nID0gdmVjMyggMC4wICk7Cgl2ZWMzIGNvc2luZVdlaWdodGVkSXJyYWRpYW5jZSA9IGlycmFkaWFuY2UgKiBSRUNJUFJPQ0FMX1BJOwoJY29tcHV0ZU11bHRpc2NhdHRlcmluZyggZ2VvbWV0cnkubm9ybWFsLCBnZW9tZXRyeS52aWV3RGlyLCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhckY5MCwgbWF0ZXJpYWwucm91Z2huZXNzLCBzaW5nbGVTY2F0dGVyaW5nLCBtdWx0aVNjYXR0ZXJpbmcgKTsKCXZlYzMgZGlmZnVzZSA9IG1hdGVyaWFsLmRpZmZ1c2VDb2xvciAqICggMS4wIC0gKCBzaW5nbGVTY2F0dGVyaW5nICsgbXVsdGlTY2F0dGVyaW5nICkgKTsKCXJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXIgKz0gcmFkaWFuY2UgKiBzaW5nbGVTY2F0dGVyaW5nOwoJcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3RTcGVjdWxhciArPSBtdWx0aVNjYXR0ZXJpbmcgKiBjb3NpbmVXZWlnaHRlZElycmFkaWFuY2U7CglyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gZGlmZnVzZSAqIGNvc2luZVdlaWdodGVkSXJyYWRpYW5jZTsKfQojZGVmaW5lIFJFX0RpcmVjdAkJCQlSRV9EaXJlY3RfUGh5c2ljYWwKI2RlZmluZSBSRV9EaXJlY3RfUmVjdEFyZWEJCVJFX0RpcmVjdF9SZWN0QXJlYV9QaHlzaWNhbAojZGVmaW5lIFJFX0luZGlyZWN0RGlmZnVzZQkJUkVfSW5kaXJlY3REaWZmdXNlX1BoeXNpY2FsCiNkZWZpbmUgUkVfSW5kaXJlY3RTcGVjdWxhcgkJUkVfSW5kaXJlY3RTcGVjdWxhcl9QaHlzaWNhbApmbG9hdCBjb21wdXRlU3BlY3VsYXJPY2NsdXNpb24oIGNvbnN0IGluIGZsb2F0IGRvdE5WLCBjb25zdCBpbiBmbG9hdCBhbWJpZW50T2NjbHVzaW9uLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7CglyZXR1cm4gc2F0dXJhdGUoIHBvdyggZG90TlYgKyBhbWJpZW50T2NjbHVzaW9uLCBleHAyKCAtIDE2LjAgKiByb3VnaG5lc3MgLSAxLjAgKSApIC0gMS4wICsgYW1iaWVudE9jY2x1c2lvbiApOwp9YCxwYj1gCkdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnk7Cmdlb21ldHJ5LnBvc2l0aW9uID0gLSB2Vmlld1Bvc2l0aW9uOwpnZW9tZXRyeS5ub3JtYWwgPSBub3JtYWw7Cmdlb21ldHJ5LnZpZXdEaXIgPSAoIGlzT3J0aG9ncmFwaGljICkgPyB2ZWMzKCAwLCAwLCAxICkgOiBub3JtYWxpemUoIHZWaWV3UG9zaXRpb24gKTsKI2lmZGVmIFVTRV9DTEVBUkNPQVQKCWdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCA9IGNsZWFyY29hdE5vcm1hbDsKI2VuZGlmCkluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQ7CiNpZiAoIE5VTV9QT0lOVF9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0ICkKCVBvaW50TGlnaHQgcG9pbnRMaWdodDsKCSNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwCglQb2ludExpZ2h0U2hhZG93IHBvaW50TGlnaHRTaGFkb3c7CgkjZW5kaWYKCSNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnQKCWZvciAoIGludCBpID0gMDsgaSA8IE5VTV9QT0lOVF9MSUdIVFM7IGkgKysgKSB7CgkJcG9pbnRMaWdodCA9IHBvaW50TGlnaHRzWyBpIF07CgkJZ2V0UG9pbnRMaWdodEluZm8oIHBvaW50TGlnaHQsIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApOwoJCSNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgKCBVTlJPTExFRF9MT09QX0lOREVYIDwgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgKQoJCXBvaW50TGlnaHRTaGFkb3cgPSBwb2ludExpZ2h0U2hhZG93c1sgaSBdOwoJCWRpcmVjdExpZ2h0LmNvbG9yICo9IGFsbCggYnZlYzIoIGRpcmVjdExpZ2h0LnZpc2libGUsIHJlY2VpdmVTaGFkb3cgKSApID8gZ2V0UG9pbnRTaGFkb3coIHBvaW50U2hhZG93TWFwWyBpIF0sIHBvaW50TGlnaHRTaGFkb3cuc2hhZG93TWFwU2l6ZSwgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dCaWFzLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd1JhZGl1cywgdlBvaW50U2hhZG93Q29vcmRbIGkgXSwgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dDYW1lcmFOZWFyLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd0NhbWVyYUZhciApIDogMS4wOwoJCSNlbmRpZgoJCVJFX0RpcmVjdCggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTsKCX0KCSNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kCiNlbmRpZgojaWYgKCBOVU1fU1BPVF9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0ICkKCVNwb3RMaWdodCBzcG90TGlnaHQ7CgkjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwCglTcG90TGlnaHRTaGFkb3cgc3BvdExpZ2h0U2hhZG93OwoJI2VuZGlmCgkjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0Cglmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fU1BPVF9MSUdIVFM7IGkgKysgKSB7CgkJc3BvdExpZ2h0ID0gc3BvdExpZ2h0c1sgaSBdOwoJCWdldFNwb3RMaWdodEluZm8oIHNwb3RMaWdodCwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7CgkJI2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiAoIFVOUk9MTEVEX0xPT1BfSU5ERVggPCBOVU1fU1BPVF9MSUdIVF9TSEFET1dTICkKCQlzcG90TGlnaHRTaGFkb3cgPSBzcG90TGlnaHRTaGFkb3dzWyBpIF07CgkJZGlyZWN0TGlnaHQuY29sb3IgKj0gYWxsKCBidmVjMiggZGlyZWN0TGlnaHQudmlzaWJsZSwgcmVjZWl2ZVNoYWRvdyApICkgPyBnZXRTaGFkb3coIHNwb3RTaGFkb3dNYXBbIGkgXSwgc3BvdExpZ2h0U2hhZG93LnNoYWRvd01hcFNpemUsIHNwb3RMaWdodFNoYWRvdy5zaGFkb3dCaWFzLCBzcG90TGlnaHRTaGFkb3cuc2hhZG93UmFkaXVzLCB2U3BvdFNoYWRvd0Nvb3JkWyBpIF0gKSA6IDEuMDsKCQkjZW5kaWYKCQlSRV9EaXJlY3QoIGRpcmVjdExpZ2h0LCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7Cgl9CgkjcHJhZ21hIHVucm9sbF9sb29wX2VuZAojZW5kaWYKI2lmICggTlVNX0RJUl9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0ICkKCURpcmVjdGlvbmFsTGlnaHQgZGlyZWN0aW9uYWxMaWdodDsKCSNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMAoJRGlyZWN0aW9uYWxMaWdodFNoYWRvdyBkaXJlY3Rpb25hbExpZ2h0U2hhZG93OwoJI2VuZGlmCgkjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0Cglmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fRElSX0xJR0hUUzsgaSArKyApIHsKCQlkaXJlY3Rpb25hbExpZ2h0ID0gZGlyZWN0aW9uYWxMaWdodHNbIGkgXTsKCQlnZXREaXJlY3Rpb25hbExpZ2h0SW5mbyggZGlyZWN0aW9uYWxMaWdodCwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7CgkJI2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiAoIFVOUk9MTEVEX0xPT1BfSU5ERVggPCBOVU1fRElSX0xJR0hUX1NIQURPV1MgKQoJCWRpcmVjdGlvbmFsTGlnaHRTaGFkb3cgPSBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgaSBdOwoJCWRpcmVjdExpZ2h0LmNvbG9yICo9IGFsbCggYnZlYzIoIGRpcmVjdExpZ2h0LnZpc2libGUsIHJlY2VpdmVTaGFkb3cgKSApID8gZ2V0U2hhZG93KCBkaXJlY3Rpb25hbFNoYWRvd01hcFsgaSBdLCBkaXJlY3Rpb25hbExpZ2h0U2hhZG93LnNoYWRvd01hcFNpemUsIGRpcmVjdGlvbmFsTGlnaHRTaGFkb3cuc2hhZG93QmlhcywgZGlyZWN0aW9uYWxMaWdodFNoYWRvdy5zaGFkb3dSYWRpdXMsIHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBpIF0gKSA6IDEuMDsKCQkjZW5kaWYKCQlSRV9EaXJlY3QoIGRpcmVjdExpZ2h0LCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7Cgl9CgkjcHJhZ21hIHVucm9sbF9sb29wX2VuZAojZW5kaWYKI2lmICggTlVNX1JFQ1RfQVJFQV9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0X1JlY3RBcmVhICkKCVJlY3RBcmVhTGlnaHQgcmVjdEFyZWFMaWdodDsKCSNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnQKCWZvciAoIGludCBpID0gMDsgaSA8IE5VTV9SRUNUX0FSRUFfTElHSFRTOyBpICsrICkgewoJCXJlY3RBcmVhTGlnaHQgPSByZWN0QXJlYUxpZ2h0c1sgaSBdOwoJCVJFX0RpcmVjdF9SZWN0QXJlYSggcmVjdEFyZWFMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLCByZWZsZWN0ZWRMaWdodCApOwoJfQoJI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmQKI2VuZGlmCiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdERpZmZ1c2UgKQoJdmVjMyBpYmxJcnJhZGlhbmNlID0gdmVjMyggMC4wICk7Cgl2ZWMzIGlycmFkaWFuY2UgPSBnZXRBbWJpZW50TGlnaHRJcnJhZGlhbmNlKCBhbWJpZW50TGlnaHRDb2xvciApOwoJaXJyYWRpYW5jZSArPSBnZXRMaWdodFByb2JlSXJyYWRpYW5jZSggbGlnaHRQcm9iZSwgZ2VvbWV0cnkubm9ybWFsICk7CgkjaWYgKCBOVU1fSEVNSV9MSUdIVFMgPiAwICkKCQkjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0CgkJZm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0hFTUlfTElHSFRTOyBpICsrICkgewoJCQlpcnJhZGlhbmNlICs9IGdldEhlbWlzcGhlcmVMaWdodElycmFkaWFuY2UoIGhlbWlzcGhlcmVMaWdodHNbIGkgXSwgZ2VvbWV0cnkubm9ybWFsICk7CgkJfQoJCSNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kCgkjZW5kaWYKI2VuZGlmCiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdFNwZWN1bGFyICkKCXZlYzMgcmFkaWFuY2UgPSB2ZWMzKCAwLjAgKTsKCXZlYzMgY2xlYXJjb2F0UmFkaWFuY2UgPSB2ZWMzKCAwLjAgKTsKI2VuZGlmYCxtYj1gI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0RGlmZnVzZSApCgkjaWZkZWYgVVNFX0xJR0hUTUFQCgkJdmVjNCBsaWdodE1hcFRleGVsID0gdGV4dHVyZTJEKCBsaWdodE1hcCwgdlV2MiApOwoJCXZlYzMgbGlnaHRNYXBJcnJhZGlhbmNlID0gbGlnaHRNYXBUZXhlbC5yZ2IgKiBsaWdodE1hcEludGVuc2l0eTsKCQkjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFMKCQkJbGlnaHRNYXBJcnJhZGlhbmNlICo9IFBJOwoJCSNlbmRpZgoJCWlycmFkaWFuY2UgKz0gbGlnaHRNYXBJcnJhZGlhbmNlOwoJI2VuZGlmCgkjaWYgZGVmaW5lZCggVVNFX0VOVk1BUCApICYmIGRlZmluZWQoIFNUQU5EQVJEICkgJiYgZGVmaW5lZCggRU5WTUFQX1RZUEVfQ1VCRV9VViApCgkJaWJsSXJyYWRpYW5jZSArPSBnZXRJQkxJcnJhZGlhbmNlKCBnZW9tZXRyeS5ub3JtYWwgKTsKCSNlbmRpZgojZW5kaWYKI2lmIGRlZmluZWQoIFVTRV9FTlZNQVAgKSAmJiBkZWZpbmVkKCBSRV9JbmRpcmVjdFNwZWN1bGFyICkKCXJhZGlhbmNlICs9IGdldElCTFJhZGlhbmNlKCBnZW9tZXRyeS52aWV3RGlyLCBnZW9tZXRyeS5ub3JtYWwsIG1hdGVyaWFsLnJvdWdobmVzcyApOwoJI2lmZGVmIFVTRV9DTEVBUkNPQVQKCQljbGVhcmNvYXRSYWRpYW5jZSArPSBnZXRJQkxSYWRpYW5jZSggZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsLCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgKTsKCSNlbmRpZgojZW5kaWZgLGdiPWAjaWYgZGVmaW5lZCggUkVfSW5kaXJlY3REaWZmdXNlICkKCVJFX0luZGlyZWN0RGlmZnVzZSggaXJyYWRpYW5jZSwgZ2VvbWV0cnksIG1hdGVyaWFsLCByZWZsZWN0ZWRMaWdodCApOwojZW5kaWYKI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0U3BlY3VsYXIgKQoJUkVfSW5kaXJlY3RTcGVjdWxhciggcmFkaWFuY2UsIGlibElycmFkaWFuY2UsIGNsZWFyY29hdFJhZGlhbmNlLCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7CiNlbmRpZmAseGI9YCNpZiBkZWZpbmVkKCBVU0VfTE9HREVQVEhCVUYgKSAmJiBkZWZpbmVkKCBVU0VfTE9HREVQVEhCVUZfRVhUICkKCWdsX0ZyYWdEZXB0aEVYVCA9IHZJc1BlcnNwZWN0aXZlID09IDAuMCA/IGdsX0ZyYWdDb29yZC56IDogbG9nMiggdkZyYWdEZXB0aCApICogbG9nRGVwdGhCdWZGQyAqIDAuNTsKI2VuZGlmYCx5Yj1gI2lmIGRlZmluZWQoIFVTRV9MT0dERVBUSEJVRiApICYmIGRlZmluZWQoIFVTRV9MT0dERVBUSEJVRl9FWFQgKQoJdW5pZm9ybSBmbG9hdCBsb2dEZXB0aEJ1ZkZDOwoJdmFyeWluZyBmbG9hdCB2RnJhZ0RlcHRoOwoJdmFyeWluZyBmbG9hdCB2SXNQZXJzcGVjdGl2ZTsKI2VuZGlmYCx2Yj1gI2lmZGVmIFVTRV9MT0dERVBUSEJVRgoJI2lmZGVmIFVTRV9MT0dERVBUSEJVRl9FWFQKCQl2YXJ5aW5nIGZsb2F0IHZGcmFnRGVwdGg7CgkJdmFyeWluZyBmbG9hdCB2SXNQZXJzcGVjdGl2ZTsKCSNlbHNlCgkJdW5pZm9ybSBmbG9hdCBsb2dEZXB0aEJ1ZkZDOwoJI2VuZGlmCiNlbmRpZmAsX2I9YCNpZmRlZiBVU0VfTE9HREVQVEhCVUYKCSNpZmRlZiBVU0VfTE9HREVQVEhCVUZfRVhUCgkJdkZyYWdEZXB0aCA9IDEuMCArIGdsX1Bvc2l0aW9uLnc7CgkJdklzUGVyc3BlY3RpdmUgPSBmbG9hdCggaXNQZXJzcGVjdGl2ZU1hdHJpeCggcHJvamVjdGlvbk1hdHJpeCApICk7CgkjZWxzZQoJCWlmICggaXNQZXJzcGVjdGl2ZU1hdHJpeCggcHJvamVjdGlvbk1hdHJpeCApICkgewoJCQlnbF9Qb3NpdGlvbi56ID0gbG9nMiggbWF4KCBFUFNJTE9OLCBnbF9Qb3NpdGlvbi53ICsgMS4wICkgKSAqIGxvZ0RlcHRoQnVmRkMgLSAxLjA7CgkJCWdsX1Bvc2l0aW9uLnogKj0gZ2xfUG9zaXRpb24udzsKCQl9CgkjZW5kaWYKI2VuZGlmYCx3Yj1gI2lmZGVmIFVTRV9NQVAKCXZlYzQgc2FtcGxlZERpZmZ1c2VDb2xvciA9IHRleHR1cmUyRCggbWFwLCB2VXYgKTsKCSNpZmRlZiBERUNPREVfVklERU9fVEVYVFVSRQoJCXNhbXBsZWREaWZmdXNlQ29sb3IgPSB2ZWM0KCBtaXgoIHBvdyggc2FtcGxlZERpZmZ1c2VDb2xvci5yZ2IgKiAwLjk0Nzg2NzI5ODYgKyB2ZWMzKCAwLjA1MjEzMjcwMTQgKSwgdmVjMyggMi40ICkgKSwgc2FtcGxlZERpZmZ1c2VDb2xvci5yZ2IgKiAwLjA3NzM5OTM4MDgsIHZlYzMoIGxlc3NUaGFuRXF1YWwoIHNhbXBsZWREaWZmdXNlQ29sb3IucmdiLCB2ZWMzKCAwLjA0MDQ1ICkgKSApICksIHNhbXBsZWREaWZmdXNlQ29sb3IudyApOwoJI2VuZGlmCglkaWZmdXNlQ29sb3IgKj0gc2FtcGxlZERpZmZ1c2VDb2xvcjsKI2VuZGlmYCxNYj1gI2lmZGVmIFVTRV9NQVAKCXVuaWZvcm0gc2FtcGxlcjJEIG1hcDsKI2VuZGlmYCxiYj1gI2lmIGRlZmluZWQoIFVTRV9NQVAgKSB8fCBkZWZpbmVkKCBVU0VfQUxQSEFNQVAgKQoJdmVjMiB1diA9ICggdXZUcmFuc2Zvcm0gKiB2ZWMzKCBnbF9Qb2ludENvb3JkLngsIDEuMCAtIGdsX1BvaW50Q29vcmQueSwgMSApICkueHk7CiNlbmRpZgojaWZkZWYgVVNFX01BUAoJZGlmZnVzZUNvbG9yICo9IHRleHR1cmUyRCggbWFwLCB1diApOwojZW5kaWYKI2lmZGVmIFVTRV9BTFBIQU1BUAoJZGlmZnVzZUNvbG9yLmEgKj0gdGV4dHVyZTJEKCBhbHBoYU1hcCwgdXYgKS5nOwojZW5kaWZgLFNiPWAjaWYgZGVmaW5lZCggVVNFX01BUCApIHx8IGRlZmluZWQoIFVTRV9BTFBIQU1BUCApCgl1bmlmb3JtIG1hdDMgdXZUcmFuc2Zvcm07CiNlbmRpZgojaWZkZWYgVVNFX01BUAoJdW5pZm9ybSBzYW1wbGVyMkQgbWFwOwojZW5kaWYKI2lmZGVmIFVTRV9BTFBIQU1BUAoJdW5pZm9ybSBzYW1wbGVyMkQgYWxwaGFNYXA7CiNlbmRpZmAsRWI9YGZsb2F0IG1ldGFsbmVzc0ZhY3RvciA9IG1ldGFsbmVzczsKI2lmZGVmIFVTRV9NRVRBTE5FU1NNQVAKCXZlYzQgdGV4ZWxNZXRhbG5lc3MgPSB0ZXh0dXJlMkQoIG1ldGFsbmVzc01hcCwgdlV2ICk7CgltZXRhbG5lc3NGYWN0b3IgKj0gdGV4ZWxNZXRhbG5lc3MuYjsKI2VuZGlmYCxUYj1gI2lmZGVmIFVTRV9NRVRBTE5FU1NNQVAKCXVuaWZvcm0gc2FtcGxlcjJEIG1ldGFsbmVzc01hcDsKI2VuZGlmYCxBYj1gI2lmZGVmIFVTRV9NT1JQSE5PUk1BTFMKCW9iamVjdE5vcm1hbCAqPSBtb3JwaFRhcmdldEJhc2VJbmZsdWVuY2U7CgkjaWZkZWYgTU9SUEhUQVJHRVRTX1RFWFRVUkUKCQlmb3IgKCBpbnQgaSA9IDA7IGkgPCBNT1JQSFRBUkdFVFNfQ09VTlQ7IGkgKysgKSB7CgkJCWlmICggbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyBpIF0gIT0gMC4wICkgb2JqZWN0Tm9ybWFsICs9IGdldE1vcnBoKCBnbF9WZXJ0ZXhJRCwgaSwgMSwgMiApICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyBpIF07CgkJfQoJI2Vsc2UKCQlvYmplY3ROb3JtYWwgKz0gbW9ycGhOb3JtYWwwICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAwIF07CgkJb2JqZWN0Tm9ybWFsICs9IG1vcnBoTm9ybWFsMSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMSBdOwoJCW9iamVjdE5vcm1hbCArPSBtb3JwaE5vcm1hbDIgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDIgXTsKCQlvYmplY3ROb3JtYWwgKz0gbW9ycGhOb3JtYWwzICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAzIF07CgkjZW5kaWYKI2VuZGlmYCxDYj1gI2lmZGVmIFVTRV9NT1JQSFRBUkdFVFMKCXVuaWZvcm0gZmxvYXQgbW9ycGhUYXJnZXRCYXNlSW5mbHVlbmNlOwoJI2lmZGVmIE1PUlBIVEFSR0VUU19URVhUVVJFCgkJdW5pZm9ybSBmbG9hdCBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIE1PUlBIVEFSR0VUU19DT1VOVCBdOwoJCXVuaWZvcm0gc2FtcGxlcjJEQXJyYXkgbW9ycGhUYXJnZXRzVGV4dHVyZTsKCQl1bmlmb3JtIHZlYzIgbW9ycGhUYXJnZXRzVGV4dHVyZVNpemU7CgkJdmVjMyBnZXRNb3JwaCggY29uc3QgaW4gaW50IHZlcnRleEluZGV4LCBjb25zdCBpbiBpbnQgbW9ycGhUYXJnZXRJbmRleCwgY29uc3QgaW4gaW50IG9mZnNldCwgY29uc3QgaW4gaW50IHN0cmlkZSApIHsKCQkJZmxvYXQgdGV4ZWxJbmRleCA9IGZsb2F0KCB2ZXJ0ZXhJbmRleCAqIHN0cmlkZSArIG9mZnNldCApOwoJCQlmbG9hdCB5ID0gZmxvb3IoIHRleGVsSW5kZXggLyBtb3JwaFRhcmdldHNUZXh0dXJlU2l6ZS54ICk7CgkJCWZsb2F0IHggPSB0ZXhlbEluZGV4IC0geSAqIG1vcnBoVGFyZ2V0c1RleHR1cmVTaXplLng7CgkJCXZlYzMgbW9ycGhVViA9IHZlYzMoICggeCArIDAuNSApIC8gbW9ycGhUYXJnZXRzVGV4dHVyZVNpemUueCwgeSAvIG1vcnBoVGFyZ2V0c1RleHR1cmVTaXplLnksIG1vcnBoVGFyZ2V0SW5kZXggKTsKCQkJcmV0dXJuIHRleHR1cmUoIG1vcnBoVGFyZ2V0c1RleHR1cmUsIG1vcnBoVVYgKS54eXo7CgkJfQoJI2Vsc2UKCQkjaWZuZGVmIFVTRV9NT1JQSE5PUk1BTFMKCQkJdW5pZm9ybSBmbG9hdCBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDggXTsKCQkjZWxzZQoJCQl1bmlmb3JtIGZsb2F0IG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNCBdOwoJCSNlbmRpZgoJI2VuZGlmCiNlbmRpZmAsUmI9YCNpZmRlZiBVU0VfTU9SUEhUQVJHRVRTCgl0cmFuc2Zvcm1lZCAqPSBtb3JwaFRhcmdldEJhc2VJbmZsdWVuY2U7CgkjaWZkZWYgTU9SUEhUQVJHRVRTX1RFWFRVUkUKCQlmb3IgKCBpbnQgaSA9IDA7IGkgPCBNT1JQSFRBUkdFVFNfQ09VTlQ7IGkgKysgKSB7CgkJCSNpZm5kZWYgVVNFX01PUlBITk9STUFMUwoJCQkJaWYgKCBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIGkgXSAhPSAwLjAgKSB0cmFuc2Zvcm1lZCArPSBnZXRNb3JwaCggZ2xfVmVydGV4SUQsIGksIDAsIDEgKSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgaSBdOwoJCQkjZWxzZQoJCQkJaWYgKCBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIGkgXSAhPSAwLjAgKSB0cmFuc2Zvcm1lZCArPSBnZXRNb3JwaCggZ2xfVmVydGV4SUQsIGksIDAsIDIgKSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgaSBdOwoJCQkjZW5kaWYKCQl9CgkjZWxzZQoJCXRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0MCAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMCBdOwoJCXRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0MSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMSBdOwoJCXRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0MiAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMiBdOwoJCXRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0MyAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMyBdOwoJCSNpZm5kZWYgVVNFX01PUlBITk9STUFMUwoJCQl0cmFuc2Zvcm1lZCArPSBtb3JwaFRhcmdldDQgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDQgXTsKCQkJdHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQ1ICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA1IF07CgkJCXRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0NiAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNiBdOwoJCQl0cmFuc2Zvcm1lZCArPSBtb3JwaFRhcmdldDcgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDcgXTsKCQkjZW5kaWYKCSNlbmRpZgojZW5kaWZgLExiPWBmbG9hdCBmYWNlRGlyZWN0aW9uID0gZ2xfRnJvbnRGYWNpbmcgPyAxLjAgOiAtIDEuMDsKI2lmZGVmIEZMQVRfU0hBREVECgl2ZWMzIGZkeCA9IHZlYzMoIGRGZHgoIHZWaWV3UG9zaXRpb24ueCApLCBkRmR4KCB2Vmlld1Bvc2l0aW9uLnkgKSwgZEZkeCggdlZpZXdQb3NpdGlvbi56ICkgKTsKCXZlYzMgZmR5ID0gdmVjMyggZEZkeSggdlZpZXdQb3NpdGlvbi54ICksIGRGZHkoIHZWaWV3UG9zaXRpb24ueSApLCBkRmR5KCB2Vmlld1Bvc2l0aW9uLnogKSApOwoJdmVjMyBub3JtYWwgPSBub3JtYWxpemUoIGNyb3NzKCBmZHgsIGZkeSApICk7CiNlbHNlCgl2ZWMzIG5vcm1hbCA9IG5vcm1hbGl6ZSggdk5vcm1hbCApOwoJI2lmZGVmIERPVUJMRV9TSURFRAoJCW5vcm1hbCA9IG5vcm1hbCAqIGZhY2VEaXJlY3Rpb247CgkjZW5kaWYKCSNpZmRlZiBVU0VfVEFOR0VOVAoJCXZlYzMgdGFuZ2VudCA9IG5vcm1hbGl6ZSggdlRhbmdlbnQgKTsKCQl2ZWMzIGJpdGFuZ2VudCA9IG5vcm1hbGl6ZSggdkJpdGFuZ2VudCApOwoJCSNpZmRlZiBET1VCTEVfU0lERUQKCQkJdGFuZ2VudCA9IHRhbmdlbnQgKiBmYWNlRGlyZWN0aW9uOwoJCQliaXRhbmdlbnQgPSBiaXRhbmdlbnQgKiBmYWNlRGlyZWN0aW9uOwoJCSNlbmRpZgoJCSNpZiBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQICkgfHwgZGVmaW5lZCggVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVAgKQoJCQltYXQzIHZUQk4gPSBtYXQzKCB0YW5nZW50LCBiaXRhbmdlbnQsIG5vcm1hbCApOwoJCSNlbmRpZgoJI2VuZGlmCiNlbmRpZgp2ZWMzIGdlb21ldHJ5Tm9ybWFsID0gbm9ybWFsO2AsUGI9YCNpZmRlZiBPQkpFQ1RTUEFDRV9OT1JNQUxNQVAKCW5vcm1hbCA9IHRleHR1cmUyRCggbm9ybWFsTWFwLCB2VXYgKS54eXogKiAyLjAgLSAxLjA7CgkjaWZkZWYgRkxJUF9TSURFRAoJCW5vcm1hbCA9IC0gbm9ybWFsOwoJI2VuZGlmCgkjaWZkZWYgRE9VQkxFX1NJREVECgkJbm9ybWFsID0gbm9ybWFsICogZmFjZURpcmVjdGlvbjsKCSNlbmRpZgoJbm9ybWFsID0gbm9ybWFsaXplKCBub3JtYWxNYXRyaXggKiBub3JtYWwgKTsKI2VsaWYgZGVmaW5lZCggVEFOR0VOVFNQQUNFX05PUk1BTE1BUCApCgl2ZWMzIG1hcE4gPSB0ZXh0dXJlMkQoIG5vcm1hbE1hcCwgdlV2ICkueHl6ICogMi4wIC0gMS4wOwoJbWFwTi54eSAqPSBub3JtYWxTY2FsZTsKCSNpZmRlZiBVU0VfVEFOR0VOVAoJCW5vcm1hbCA9IG5vcm1hbGl6ZSggdlRCTiAqIG1hcE4gKTsKCSNlbHNlCgkJbm9ybWFsID0gcGVydHVyYk5vcm1hbDJBcmIoIC0gdlZpZXdQb3NpdGlvbiwgbm9ybWFsLCBtYXBOLCBmYWNlRGlyZWN0aW9uICk7CgkjZW5kaWYKI2VsaWYgZGVmaW5lZCggVVNFX0JVTVBNQVAgKQoJbm9ybWFsID0gcGVydHVyYk5vcm1hbEFyYiggLSB2Vmlld1Bvc2l0aW9uLCBub3JtYWwsIGRIZHh5X2Z3ZCgpLCBmYWNlRGlyZWN0aW9uICk7CiNlbmRpZmAsRGI9YCNpZm5kZWYgRkxBVF9TSEFERUQKCXZhcnlpbmcgdmVjMyB2Tm9ybWFsOwoJI2lmZGVmIFVTRV9UQU5HRU5UCgkJdmFyeWluZyB2ZWMzIHZUYW5nZW50OwoJCXZhcnlpbmcgdmVjMyB2Qml0YW5nZW50OwoJI2VuZGlmCiNlbmRpZmAsSWI9YCNpZm5kZWYgRkxBVF9TSEFERUQKCXZhcnlpbmcgdmVjMyB2Tm9ybWFsOwoJI2lmZGVmIFVTRV9UQU5HRU5UCgkJdmFyeWluZyB2ZWMzIHZUYW5nZW50OwoJCXZhcnlpbmcgdmVjMyB2Qml0YW5nZW50OwoJI2VuZGlmCiNlbmRpZmAsTmI9YCNpZm5kZWYgRkxBVF9TSEFERUQKCXZOb3JtYWwgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkTm9ybWFsICk7CgkjaWZkZWYgVVNFX1RBTkdFTlQKCQl2VGFuZ2VudCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWRUYW5nZW50ICk7CgkJdkJpdGFuZ2VudCA9IG5vcm1hbGl6ZSggY3Jvc3MoIHZOb3JtYWwsIHZUYW5nZW50ICkgKiB0YW5nZW50LncgKTsKCSNlbmRpZgojZW5kaWZgLEZiPWAjaWZkZWYgVVNFX05PUk1BTE1BUAoJdW5pZm9ybSBzYW1wbGVyMkQgbm9ybWFsTWFwOwoJdW5pZm9ybSB2ZWMyIG5vcm1hbFNjYWxlOwojZW5kaWYKI2lmZGVmIE9CSkVDVFNQQUNFX05PUk1BTE1BUAoJdW5pZm9ybSBtYXQzIG5vcm1hbE1hdHJpeDsKI2VuZGlmCiNpZiAhIGRlZmluZWQgKCBVU0VfVEFOR0VOVCApICYmICggZGVmaW5lZCAoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKSB8fCBkZWZpbmVkICggVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVAgKSApCgl2ZWMzIHBlcnR1cmJOb3JtYWwyQXJiKCB2ZWMzIGV5ZV9wb3MsIHZlYzMgc3VyZl9ub3JtLCB2ZWMzIG1hcE4sIGZsb2F0IGZhY2VEaXJlY3Rpb24gKSB7CgkJdmVjMyBxMCA9IHZlYzMoIGRGZHgoIGV5ZV9wb3MueCApLCBkRmR4KCBleWVfcG9zLnkgKSwgZEZkeCggZXllX3Bvcy56ICkgKTsKCQl2ZWMzIHExID0gdmVjMyggZEZkeSggZXllX3Bvcy54ICksIGRGZHkoIGV5ZV9wb3MueSApLCBkRmR5KCBleWVfcG9zLnogKSApOwoJCXZlYzIgc3QwID0gZEZkeCggdlV2LnN0ICk7CgkJdmVjMiBzdDEgPSBkRmR5KCB2VXYuc3QgKTsKCQl2ZWMzIE4gPSBzdXJmX25vcm07CgkJdmVjMyBxMXBlcnAgPSBjcm9zcyggcTEsIE4gKTsKCQl2ZWMzIHEwcGVycCA9IGNyb3NzKCBOLCBxMCApOwoJCXZlYzMgVCA9IHExcGVycCAqIHN0MC54ICsgcTBwZXJwICogc3QxLng7CgkJdmVjMyBCID0gcTFwZXJwICogc3QwLnkgKyBxMHBlcnAgKiBzdDEueTsKCQlmbG9hdCBkZXQgPSBtYXgoIGRvdCggVCwgVCApLCBkb3QoIEIsIEIgKSApOwoJCWZsb2F0IHNjYWxlID0gKCBkZXQgPT0gMC4wICkgPyAwLjAgOiBmYWNlRGlyZWN0aW9uICogaW52ZXJzZXNxcnQoIGRldCApOwoJCXJldHVybiBub3JtYWxpemUoIFQgKiAoIG1hcE4ueCAqIHNjYWxlICkgKyBCICogKCBtYXBOLnkgKiBzY2FsZSApICsgTiAqIG1hcE4ueiApOwoJfQojZW5kaWZgLHpiPWAjaWZkZWYgVVNFX0NMRUFSQ09BVAoJdmVjMyBjbGVhcmNvYXROb3JtYWwgPSBnZW9tZXRyeU5vcm1hbDsKI2VuZGlmYCxVYj1gI2lmZGVmIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQCgl2ZWMzIGNsZWFyY29hdE1hcE4gPSB0ZXh0dXJlMkQoIGNsZWFyY29hdE5vcm1hbE1hcCwgdlV2ICkueHl6ICogMi4wIC0gMS4wOwoJY2xlYXJjb2F0TWFwTi54eSAqPSBjbGVhcmNvYXROb3JtYWxTY2FsZTsKCSNpZmRlZiBVU0VfVEFOR0VOVAoJCWNsZWFyY29hdE5vcm1hbCA9IG5vcm1hbGl6ZSggdlRCTiAqIGNsZWFyY29hdE1hcE4gKTsKCSNlbHNlCgkJY2xlYXJjb2F0Tm9ybWFsID0gcGVydHVyYk5vcm1hbDJBcmIoIC0gdlZpZXdQb3NpdGlvbiwgY2xlYXJjb2F0Tm9ybWFsLCBjbGVhcmNvYXRNYXBOLCBmYWNlRGlyZWN0aW9uICk7CgkjZW5kaWYKI2VuZGlmYCxCYj1gI2lmZGVmIFVTRV9DTEVBUkNPQVRNQVAKCXVuaWZvcm0gc2FtcGxlcjJEIGNsZWFyY29hdE1hcDsKI2VuZGlmCiNpZmRlZiBVU0VfQ0xFQVJDT0FUX1JPVUdITkVTU01BUAoJdW5pZm9ybSBzYW1wbGVyMkQgY2xlYXJjb2F0Um91Z2huZXNzTWFwOwojZW5kaWYKI2lmZGVmIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQCgl1bmlmb3JtIHNhbXBsZXIyRCBjbGVhcmNvYXROb3JtYWxNYXA7Cgl1bmlmb3JtIHZlYzIgY2xlYXJjb2F0Tm9ybWFsU2NhbGU7CiNlbmRpZmAsT2I9YCNpZmRlZiBPUEFRVUUKZGlmZnVzZUNvbG9yLmEgPSAxLjA7CiNlbmRpZgojaWZkZWYgVVNFX1RSQU5TTUlTU0lPTgpkaWZmdXNlQ29sb3IuYSAqPSB0cmFuc21pc3Npb25BbHBoYSArIDAuMTsKI2VuZGlmCmdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7YCxrYj1gdmVjMyBwYWNrTm9ybWFsVG9SR0IoIGNvbnN0IGluIHZlYzMgbm9ybWFsICkgewoJcmV0dXJuIG5vcm1hbGl6ZSggbm9ybWFsICkgKiAwLjUgKyAwLjU7Cn0KdmVjMyB1bnBhY2tSR0JUb05vcm1hbCggY29uc3QgaW4gdmVjMyByZ2IgKSB7CglyZXR1cm4gMi4wICogcmdiLnh5eiAtIDEuMDsKfQpjb25zdCBmbG9hdCBQYWNrVXBzY2FsZSA9IDI1Ni4gLyAyNTUuO2NvbnN0IGZsb2F0IFVucGFja0Rvd25zY2FsZSA9IDI1NS4gLyAyNTYuOwpjb25zdCB2ZWMzIFBhY2tGYWN0b3JzID0gdmVjMyggMjU2LiAqIDI1Ni4gKiAyNTYuLCAyNTYuICogMjU2LiwgMjU2LiApOwpjb25zdCB2ZWM0IFVucGFja0ZhY3RvcnMgPSBVbnBhY2tEb3duc2NhbGUgLyB2ZWM0KCBQYWNrRmFjdG9ycywgMS4gKTsKY29uc3QgZmxvYXQgU2hpZnRSaWdodDggPSAxLiAvIDI1Ni47CnZlYzQgcGFja0RlcHRoVG9SR0JBKCBjb25zdCBpbiBmbG9hdCB2ICkgewoJdmVjNCByID0gdmVjNCggZnJhY3QoIHYgKiBQYWNrRmFjdG9ycyApLCB2ICk7CglyLnl6dyAtPSByLnh5eiAqIFNoaWZ0UmlnaHQ4OwlyZXR1cm4gciAqIFBhY2tVcHNjYWxlOwp9CmZsb2F0IHVucGFja1JHQkFUb0RlcHRoKCBjb25zdCBpbiB2ZWM0IHYgKSB7CglyZXR1cm4gZG90KCB2LCBVbnBhY2tGYWN0b3JzICk7Cn0KdmVjNCBwYWNrMkhhbGZUb1JHQkEoIHZlYzIgdiApIHsKCXZlYzQgciA9IHZlYzQoIHYueCwgZnJhY3QoIHYueCAqIDI1NS4wICksIHYueSwgZnJhY3QoIHYueSAqIDI1NS4wICkgKTsKCXJldHVybiB2ZWM0KCByLnggLSByLnkgLyAyNTUuMCwgci55LCByLnogLSByLncgLyAyNTUuMCwgci53ICk7Cn0KdmVjMiB1bnBhY2tSR0JBVG8ySGFsZiggdmVjNCB2ICkgewoJcmV0dXJuIHZlYzIoIHYueCArICggdi55IC8gMjU1LjAgKSwgdi56ICsgKCB2LncgLyAyNTUuMCApICk7Cn0KZmxvYXQgdmlld1pUb09ydGhvZ3JhcGhpY0RlcHRoKCBjb25zdCBpbiBmbG9hdCB2aWV3WiwgY29uc3QgaW4gZmxvYXQgbmVhciwgY29uc3QgaW4gZmxvYXQgZmFyICkgewoJcmV0dXJuICggdmlld1ogKyBuZWFyICkgLyAoIG5lYXIgLSBmYXIgKTsKfQpmbG9hdCBvcnRob2dyYXBoaWNEZXB0aFRvVmlld1ooIGNvbnN0IGluIGZsb2F0IGxpbmVhckNsaXBaLCBjb25zdCBpbiBmbG9hdCBuZWFyLCBjb25zdCBpbiBmbG9hdCBmYXIgKSB7CglyZXR1cm4gbGluZWFyQ2xpcFogKiAoIG5lYXIgLSBmYXIgKSAtIG5lYXI7Cn0KZmxvYXQgdmlld1pUb1BlcnNwZWN0aXZlRGVwdGgoIGNvbnN0IGluIGZsb2F0IHZpZXdaLCBjb25zdCBpbiBmbG9hdCBuZWFyLCBjb25zdCBpbiBmbG9hdCBmYXIgKSB7CglyZXR1cm4gKCAoIG5lYXIgKyB2aWV3WiApICogZmFyICkgLyAoICggZmFyIC0gbmVhciApICogdmlld1ogKTsKfQpmbG9hdCBwZXJzcGVjdGl2ZURlcHRoVG9WaWV3WiggY29uc3QgaW4gZmxvYXQgaW52Q2xpcFosIGNvbnN0IGluIGZsb2F0IG5lYXIsIGNvbnN0IGluIGZsb2F0IGZhciApIHsKCXJldHVybiAoIG5lYXIgKiBmYXIgKSAvICggKCBmYXIgLSBuZWFyICkgKiBpbnZDbGlwWiAtIGZhciApOwp9YCxIYj1gI2lmZGVmIFBSRU1VTFRJUExJRURfQUxQSEEKCWdsX0ZyYWdDb2xvci5yZ2IgKj0gZ2xfRnJhZ0NvbG9yLmE7CiNlbmRpZmAsVmI9YHZlYzQgbXZQb3NpdGlvbiA9IHZlYzQoIHRyYW5zZm9ybWVkLCAxLjAgKTsKI2lmZGVmIFVTRV9JTlNUQU5DSU5HCgltdlBvc2l0aW9uID0gaW5zdGFuY2VNYXRyaXggKiBtdlBvc2l0aW9uOwojZW5kaWYKbXZQb3NpdGlvbiA9IG1vZGVsVmlld01hdHJpeCAqIG12UG9zaXRpb247CmdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG12UG9zaXRpb247YCxHYj1gI2lmZGVmIERJVEhFUklORwoJZ2xfRnJhZ0NvbG9yLnJnYiA9IGRpdGhlcmluZyggZ2xfRnJhZ0NvbG9yLnJnYiApOwojZW5kaWZgLFdiPWAjaWZkZWYgRElUSEVSSU5HCgl2ZWMzIGRpdGhlcmluZyggdmVjMyBjb2xvciApIHsKCQlmbG9hdCBncmlkX3Bvc2l0aW9uID0gcmFuZCggZ2xfRnJhZ0Nvb3JkLnh5ICk7CgkJdmVjMyBkaXRoZXJfc2hpZnRfUkdCID0gdmVjMyggMC4yNSAvIDI1NS4wLCAtMC4yNSAvIDI1NS4wLCAwLjI1IC8gMjU1LjAgKTsKCQlkaXRoZXJfc2hpZnRfUkdCID0gbWl4KCAyLjAgKiBkaXRoZXJfc2hpZnRfUkdCLCAtMi4wICogZGl0aGVyX3NoaWZ0X1JHQiwgZ3JpZF9wb3NpdGlvbiApOwoJCXJldHVybiBjb2xvciArIGRpdGhlcl9zaGlmdF9SR0I7Cgl9CiNlbmRpZmAscWI9YGZsb2F0IHJvdWdobmVzc0ZhY3RvciA9IHJvdWdobmVzczsKI2lmZGVmIFVTRV9ST1VHSE5FU1NNQVAKCXZlYzQgdGV4ZWxSb3VnaG5lc3MgPSB0ZXh0dXJlMkQoIHJvdWdobmVzc01hcCwgdlV2ICk7Cglyb3VnaG5lc3NGYWN0b3IgKj0gdGV4ZWxSb3VnaG5lc3MuZzsKI2VuZGlmYCxYYj1gI2lmZGVmIFVTRV9ST1VHSE5FU1NNQVAKCXVuaWZvcm0gc2FtcGxlcjJEIHJvdWdobmVzc01hcDsKI2VuZGlmYCxZYj1gI2lmZGVmIFVTRV9TSEFET1dNQVAKCSNpZiBOVU1fRElSX0xJR0hUX1NIQURPV1MgPiAwCgkJdW5pZm9ybSBzYW1wbGVyMkQgZGlyZWN0aW9uYWxTaGFkb3dNYXBbIE5VTV9ESVJfTElHSFRfU0hBRE9XUyBdOwoJCXZhcnlpbmcgdmVjNCB2RGlyZWN0aW9uYWxTaGFkb3dDb29yZFsgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07CgkJc3RydWN0IERpcmVjdGlvbmFsTGlnaHRTaGFkb3cgewoJCQlmbG9hdCBzaGFkb3dCaWFzOwoJCQlmbG9hdCBzaGFkb3dOb3JtYWxCaWFzOwoJCQlmbG9hdCBzaGFkb3dSYWRpdXM7CgkJCXZlYzIgc2hhZG93TWFwU2l6ZTsKCQl9OwoJCXVuaWZvcm0gRGlyZWN0aW9uYWxMaWdodFNoYWRvdyBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07CgkjZW5kaWYKCSNpZiBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMAoJCXVuaWZvcm0gc2FtcGxlcjJEIHNwb3RTaGFkb3dNYXBbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTsKCQl2YXJ5aW5nIHZlYzQgdlNwb3RTaGFkb3dDb29yZFsgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdOwoJCXN0cnVjdCBTcG90TGlnaHRTaGFkb3cgewoJCQlmbG9hdCBzaGFkb3dCaWFzOwoJCQlmbG9hdCBzaGFkb3dOb3JtYWxCaWFzOwoJCQlmbG9hdCBzaGFkb3dSYWRpdXM7CgkJCXZlYzIgc2hhZG93TWFwU2l6ZTsKCQl9OwoJCXVuaWZvcm0gU3BvdExpZ2h0U2hhZG93IHNwb3RMaWdodFNoYWRvd3NbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTsKCSNlbmRpZgoJI2lmIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMAoJCXVuaWZvcm0gc2FtcGxlcjJEIHBvaW50U2hhZG93TWFwWyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdOwoJCXZhcnlpbmcgdmVjNCB2UG9pbnRTaGFkb3dDb29yZFsgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTsKCQlzdHJ1Y3QgUG9pbnRMaWdodFNoYWRvdyB7CgkJCWZsb2F0IHNoYWRvd0JpYXM7CgkJCWZsb2F0IHNoYWRvd05vcm1hbEJpYXM7CgkJCWZsb2F0IHNoYWRvd1JhZGl1czsKCQkJdmVjMiBzaGFkb3dNYXBTaXplOwoJCQlmbG9hdCBzaGFkb3dDYW1lcmFOZWFyOwoJCQlmbG9hdCBzaGFkb3dDYW1lcmFGYXI7CgkJfTsKCQl1bmlmb3JtIFBvaW50TGlnaHRTaGFkb3cgcG9pbnRMaWdodFNoYWRvd3NbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07CgkjZW5kaWYKCWZsb2F0IHRleHR1cmUyRENvbXBhcmUoIHNhbXBsZXIyRCBkZXB0aHMsIHZlYzIgdXYsIGZsb2F0IGNvbXBhcmUgKSB7CgkJcmV0dXJuIHN0ZXAoIGNvbXBhcmUsIHVucGFja1JHQkFUb0RlcHRoKCB0ZXh0dXJlMkQoIGRlcHRocywgdXYgKSApICk7Cgl9Cgl2ZWMyIHRleHR1cmUyRERpc3RyaWJ1dGlvbiggc2FtcGxlcjJEIHNoYWRvdywgdmVjMiB1diApIHsKCQlyZXR1cm4gdW5wYWNrUkdCQVRvMkhhbGYoIHRleHR1cmUyRCggc2hhZG93LCB1diApICk7Cgl9CglmbG9hdCBWU01TaGFkb3cgKHNhbXBsZXIyRCBzaGFkb3csIHZlYzIgdXYsIGZsb2F0IGNvbXBhcmUgKXsKCQlmbG9hdCBvY2NsdXNpb24gPSAxLjA7CgkJdmVjMiBkaXN0cmlidXRpb24gPSB0ZXh0dXJlMkREaXN0cmlidXRpb24oIHNoYWRvdywgdXYgKTsKCQlmbG9hdCBoYXJkX3NoYWRvdyA9IHN0ZXAoIGNvbXBhcmUgLCBkaXN0cmlidXRpb24ueCApOwoJCWlmIChoYXJkX3NoYWRvdyAhPSAxLjAgKSB7CgkJCWZsb2F0IGRpc3RhbmNlID0gY29tcGFyZSAtIGRpc3RyaWJ1dGlvbi54IDsKCQkJZmxvYXQgdmFyaWFuY2UgPSBtYXgoIDAuMDAwMDAsIGRpc3RyaWJ1dGlvbi55ICogZGlzdHJpYnV0aW9uLnkgKTsKCQkJZmxvYXQgc29mdG5lc3NfcHJvYmFiaWxpdHkgPSB2YXJpYW5jZSAvICh2YXJpYW5jZSArIGRpc3RhbmNlICogZGlzdGFuY2UgKTsJCQlzb2Z0bmVzc19wcm9iYWJpbGl0eSA9IGNsYW1wKCAoIHNvZnRuZXNzX3Byb2JhYmlsaXR5IC0gMC4zICkgLyAoIDAuOTUgLSAwLjMgKSwgMC4wLCAxLjAgKTsJCQlvY2NsdXNpb24gPSBjbGFtcCggbWF4KCBoYXJkX3NoYWRvdywgc29mdG5lc3NfcHJvYmFiaWxpdHkgKSwgMC4wLCAxLjAgKTsKCQl9CgkJcmV0dXJuIG9jY2x1c2lvbjsKCX0KCWZsb2F0IGdldFNoYWRvdyggc2FtcGxlcjJEIHNoYWRvd01hcCwgdmVjMiBzaGFkb3dNYXBTaXplLCBmbG9hdCBzaGFkb3dCaWFzLCBmbG9hdCBzaGFkb3dSYWRpdXMsIHZlYzQgc2hhZG93Q29vcmQgKSB7CgkJZmxvYXQgc2hhZG93ID0gMS4wOwoJCXNoYWRvd0Nvb3JkLnh5eiAvPSBzaGFkb3dDb29yZC53OwoJCXNoYWRvd0Nvb3JkLnogKz0gc2hhZG93QmlhczsKCQlidmVjNCBpbkZydXN0dW1WZWMgPSBidmVjNCAoIHNoYWRvd0Nvb3JkLnggPj0gMC4wLCBzaGFkb3dDb29yZC54IDw9IDEuMCwgc2hhZG93Q29vcmQueSA+PSAwLjAsIHNoYWRvd0Nvb3JkLnkgPD0gMS4wICk7CgkJYm9vbCBpbkZydXN0dW0gPSBhbGwoIGluRnJ1c3R1bVZlYyApOwoJCWJ2ZWMyIGZydXN0dW1UZXN0VmVjID0gYnZlYzIoIGluRnJ1c3R1bSwgc2hhZG93Q29vcmQueiA8PSAxLjAgKTsKCQlib29sIGZydXN0dW1UZXN0ID0gYWxsKCBmcnVzdHVtVGVzdFZlYyApOwoJCWlmICggZnJ1c3R1bVRlc3QgKSB7CgkJI2lmIGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1BDRiApCgkJCXZlYzIgdGV4ZWxTaXplID0gdmVjMiggMS4wICkgLyBzaGFkb3dNYXBTaXplOwoJCQlmbG9hdCBkeDAgPSAtIHRleGVsU2l6ZS54ICogc2hhZG93UmFkaXVzOwoJCQlmbG9hdCBkeTAgPSAtIHRleGVsU2l6ZS55ICogc2hhZG93UmFkaXVzOwoJCQlmbG9hdCBkeDEgPSArIHRleGVsU2l6ZS54ICogc2hhZG93UmFkaXVzOwoJCQlmbG9hdCBkeTEgPSArIHRleGVsU2l6ZS55ICogc2hhZG93UmFkaXVzOwoJCQlmbG9hdCBkeDIgPSBkeDAgLyAyLjA7CgkJCWZsb2F0IGR5MiA9IGR5MCAvIDIuMDsKCQkJZmxvYXQgZHgzID0gZHgxIC8gMi4wOwoJCQlmbG9hdCBkeTMgPSBkeTEgLyAyLjA7CgkJCXNoYWRvdyA9ICgKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDAsIGR5MCApLCBzaGFkb3dDb29yZC56ICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIDAuMCwgZHkwICksIHNoYWRvd0Nvb3JkLnogKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgxLCBkeTAgKSwgc2hhZG93Q29vcmQueiApICsKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDIsIGR5MiApLCBzaGFkb3dDb29yZC56ICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIDAuMCwgZHkyICksIHNoYWRvd0Nvb3JkLnogKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgzLCBkeTIgKSwgc2hhZG93Q29vcmQueiApICsKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDAsIDAuMCApLCBzaGFkb3dDb29yZC56ICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MiwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5LCBzaGFkb3dDb29yZC56ICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MywgMC4wICksIHNoYWRvd0Nvb3JkLnogKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgxLCAwLjAgKSwgc2hhZG93Q29vcmQueiApICsKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDIsIGR5MyApLCBzaGFkb3dDb29yZC56ICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIDAuMCwgZHkzICksIHNoYWRvd0Nvb3JkLnogKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgzLCBkeTMgKSwgc2hhZG93Q29vcmQueiApICsKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDAsIGR5MSApLCBzaGFkb3dDb29yZC56ICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIDAuMCwgZHkxICksIHNoYWRvd0Nvb3JkLnogKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgxLCBkeTEgKSwgc2hhZG93Q29vcmQueiApCgkJCSkgKiAoIDEuMCAvIDE3LjAgKTsKCQkjZWxpZiBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9QQ0ZfU09GVCApCgkJCXZlYzIgdGV4ZWxTaXplID0gdmVjMiggMS4wICkgLyBzaGFkb3dNYXBTaXplOwoJCQlmbG9hdCBkeCA9IHRleGVsU2l6ZS54OwoJCQlmbG9hdCBkeSA9IHRleGVsU2l6ZS55OwoJCQl2ZWMyIHV2ID0gc2hhZG93Q29vcmQueHk7CgkJCXZlYzIgZiA9IGZyYWN0KCB1diAqIHNoYWRvd01hcFNpemUgKyAwLjUgKTsKCQkJdXYgLT0gZiAqIHRleGVsU2l6ZTsKCQkJc2hhZG93ID0gKAoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diwgc2hhZG93Q29vcmQueiApICsKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCBkeCwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSArCgkJCQl0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMC4wLCBkeSApLCBzaGFkb3dDb29yZC56ICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHRleGVsU2l6ZSwgc2hhZG93Q29vcmQueiApICsKCQkJCW1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIC1keCwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSwgCgkJCQkJIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAyLjAgKiBkeCwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSwKCQkJCQkgZi54ICkgKwoJCQkJbWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggLWR4LCBkeSApLCBzaGFkb3dDb29yZC56ICksIAoJCQkJCSB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMi4wICogZHgsIGR5ICksIHNoYWRvd0Nvb3JkLnogKSwKCQkJCQkgZi54ICkgKwoJCQkJbWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMC4wLCAtZHkgKSwgc2hhZG93Q29vcmQueiApLCAKCQkJCQkgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDAuMCwgMi4wICogZHkgKSwgc2hhZG93Q29vcmQueiApLAoJCQkJCSBmLnkgKSArCgkJCQltaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCBkeCwgLWR5ICksIHNoYWRvd0Nvb3JkLnogKSwgCgkJCQkJIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCBkeCwgMi4wICogZHkgKSwgc2hhZG93Q29vcmQueiApLAoJCQkJCSBmLnkgKSArCgkJCQltaXgoIG1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIC1keCwgLWR5ICksIHNoYWRvd0Nvb3JkLnogKSwgCgkJCQkJCSAgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDIuMCAqIGR4LCAtZHkgKSwgc2hhZG93Q29vcmQueiApLAoJCQkJCQkgIGYueCApLAoJCQkJCSBtaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAtZHgsIDIuMCAqIGR5ICksIHNoYWRvd0Nvb3JkLnogKSwgCgkJCQkJCSAgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDIuMCAqIGR4LCAyLjAgKiBkeSApLCBzaGFkb3dDb29yZC56ICksCgkJCQkJCSAgZi54ICksCgkJCQkJIGYueSApCgkJCSkgKiAoIDEuMCAvIDkuMCApOwoJCSNlbGlmIGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1ZTTSApCgkJCXNoYWRvdyA9IFZTTVNoYWRvdyggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSwgc2hhZG93Q29vcmQueiApOwoJCSNlbHNlCgkJCXNoYWRvdyA9IHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHksIHNoYWRvd0Nvb3JkLnogKTsKCQkjZW5kaWYKCQl9CgkJcmV0dXJuIHNoYWRvdzsKCX0KCXZlYzIgY3ViZVRvVVYoIHZlYzMgdiwgZmxvYXQgdGV4ZWxTaXplWSApIHsKCQl2ZWMzIGFic1YgPSBhYnMoIHYgKTsKCQlmbG9hdCBzY2FsZVRvQ3ViZSA9IDEuMCAvIG1heCggYWJzVi54LCBtYXgoIGFic1YueSwgYWJzVi56ICkgKTsKCQlhYnNWICo9IHNjYWxlVG9DdWJlOwoJCXYgKj0gc2NhbGVUb0N1YmUgKiAoIDEuMCAtIDIuMCAqIHRleGVsU2l6ZVkgKTsKCQl2ZWMyIHBsYW5hciA9IHYueHk7CgkJZmxvYXQgYWxtb3N0QVRleGVsID0gMS41ICogdGV4ZWxTaXplWTsKCQlmbG9hdCBhbG1vc3RPbmUgPSAxLjAgLSBhbG1vc3RBVGV4ZWw7CgkJaWYgKCBhYnNWLnogPj0gYWxtb3N0T25lICkgewoJCQlpZiAoIHYueiA+IDAuMCApCgkJCQlwbGFuYXIueCA9IDQuMCAtIHYueDsKCQl9IGVsc2UgaWYgKCBhYnNWLnggPj0gYWxtb3N0T25lICkgewoJCQlmbG9hdCBzaWduWCA9IHNpZ24oIHYueCApOwoJCQlwbGFuYXIueCA9IHYueiAqIHNpZ25YICsgMi4wICogc2lnblg7CgkJfSBlbHNlIGlmICggYWJzVi55ID49IGFsbW9zdE9uZSApIHsKCQkJZmxvYXQgc2lnblkgPSBzaWduKCB2LnkgKTsKCQkJcGxhbmFyLnggPSB2LnggKyAyLjAgKiBzaWduWSArIDIuMDsKCQkJcGxhbmFyLnkgPSB2LnogKiBzaWduWSAtIDIuMDsKCQl9CgkJcmV0dXJuIHZlYzIoIDAuMTI1LCAwLjI1ICkgKiBwbGFuYXIgKyB2ZWMyKCAwLjM3NSwgMC43NSApOwoJfQoJZmxvYXQgZ2V0UG9pbnRTaGFkb3coIHNhbXBsZXIyRCBzaGFkb3dNYXAsIHZlYzIgc2hhZG93TWFwU2l6ZSwgZmxvYXQgc2hhZG93QmlhcywgZmxvYXQgc2hhZG93UmFkaXVzLCB2ZWM0IHNoYWRvd0Nvb3JkLCBmbG9hdCBzaGFkb3dDYW1lcmFOZWFyLCBmbG9hdCBzaGFkb3dDYW1lcmFGYXIgKSB7CgkJdmVjMiB0ZXhlbFNpemUgPSB2ZWMyKCAxLjAgKSAvICggc2hhZG93TWFwU2l6ZSAqIHZlYzIoIDQuMCwgMi4wICkgKTsKCQl2ZWMzIGxpZ2h0VG9Qb3NpdGlvbiA9IHNoYWRvd0Nvb3JkLnh5ejsKCQlmbG9hdCBkcCA9ICggbGVuZ3RoKCBsaWdodFRvUG9zaXRpb24gKSAtIHNoYWRvd0NhbWVyYU5lYXIgKSAvICggc2hhZG93Q2FtZXJhRmFyIC0gc2hhZG93Q2FtZXJhTmVhciApOwkJZHAgKz0gc2hhZG93QmlhczsKCQl2ZWMzIGJkM0QgPSBub3JtYWxpemUoIGxpZ2h0VG9Qb3NpdGlvbiApOwoJCSNpZiBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9QQ0YgKSB8fCBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9QQ0ZfU09GVCApIHx8IGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1ZTTSApCgkJCXZlYzIgb2Zmc2V0ID0gdmVjMiggLSAxLCAxICkgKiBzaGFkb3dSYWRpdXMgKiB0ZXhlbFNpemUueTsKCQkJcmV0dXJuICgKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueHl5LCB0ZXhlbFNpemUueSApLCBkcCApICsKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueXl5LCB0ZXhlbFNpemUueSApLCBkcCApICsKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueHl4LCB0ZXhlbFNpemUueSApLCBkcCApICsKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueXl4LCB0ZXhlbFNpemUueSApLCBkcCApICsKCQkJCXRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QsIHRleGVsU2l6ZS55ICksIGRwICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC54eHksIHRleGVsU2l6ZS55ICksIGRwICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC55eHksIHRleGVsU2l6ZS55ICksIGRwICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC54eHgsIHRleGVsU2l6ZS55ICksIGRwICkgKwoJCQkJdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC55eHgsIHRleGVsU2l6ZS55ICksIGRwICkKCQkJKSAqICggMS4wIC8gOS4wICk7CgkJI2Vsc2UKCQkJcmV0dXJuIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QsIHRleGVsU2l6ZS55ICksIGRwICk7CgkJI2VuZGlmCgl9CiNlbmRpZmAsWmI9YCNpZmRlZiBVU0VfU0hBRE9XTUFQCgkjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMAoJCXVuaWZvcm0gbWF0NCBkaXJlY3Rpb25hbFNoYWRvd01hdHJpeFsgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07CgkJdmFyeWluZyB2ZWM0IHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTsKCQlzdHJ1Y3QgRGlyZWN0aW9uYWxMaWdodFNoYWRvdyB7CgkJCWZsb2F0IHNoYWRvd0JpYXM7CgkJCWZsb2F0IHNoYWRvd05vcm1hbEJpYXM7CgkJCWZsb2F0IHNoYWRvd1JhZGl1czsKCQkJdmVjMiBzaGFkb3dNYXBTaXplOwoJCX07CgkJdW5pZm9ybSBEaXJlY3Rpb25hbExpZ2h0U2hhZG93IGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTsKCSNlbmRpZgoJI2lmIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwCgkJdW5pZm9ybSBtYXQ0IHNwb3RTaGFkb3dNYXRyaXhbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTsKCQl2YXJ5aW5nIHZlYzQgdlNwb3RTaGFkb3dDb29yZFsgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdOwoJCXN0cnVjdCBTcG90TGlnaHRTaGFkb3cgewoJCQlmbG9hdCBzaGFkb3dCaWFzOwoJCQlmbG9hdCBzaGFkb3dOb3JtYWxCaWFzOwoJCQlmbG9hdCBzaGFkb3dSYWRpdXM7CgkJCXZlYzIgc2hhZG93TWFwU2l6ZTsKCQl9OwoJCXVuaWZvcm0gU3BvdExpZ2h0U2hhZG93IHNwb3RMaWdodFNoYWRvd3NbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTsKCSNlbmRpZgoJI2lmIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMAoJCXVuaWZvcm0gbWF0NCBwb2ludFNoYWRvd01hdHJpeFsgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTsKCQl2YXJ5aW5nIHZlYzQgdlBvaW50U2hhZG93Q29vcmRbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07CgkJc3RydWN0IFBvaW50TGlnaHRTaGFkb3cgewoJCQlmbG9hdCBzaGFkb3dCaWFzOwoJCQlmbG9hdCBzaGFkb3dOb3JtYWxCaWFzOwoJCQlmbG9hdCBzaGFkb3dSYWRpdXM7CgkJCXZlYzIgc2hhZG93TWFwU2l6ZTsKCQkJZmxvYXQgc2hhZG93Q2FtZXJhTmVhcjsKCQkJZmxvYXQgc2hhZG93Q2FtZXJhRmFyOwoJCX07CgkJdW5pZm9ybSBQb2ludExpZ2h0U2hhZG93IHBvaW50TGlnaHRTaGFkb3dzWyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdOwoJI2VuZGlmCiNlbmRpZmAsSmI9YCNpZmRlZiBVU0VfU0hBRE9XTUFQCgkjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMCB8fCBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMCB8fCBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDAKCQl2ZWMzIHNoYWRvd1dvcmxkTm9ybWFsID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggdHJhbnNmb3JtZWROb3JtYWwsIHZpZXdNYXRyaXggKTsKCQl2ZWM0IHNoYWRvd1dvcmxkUG9zaXRpb247CgkjZW5kaWYKCSNpZiBOVU1fRElSX0xJR0hUX1NIQURPV1MgPiAwCgkjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0Cglmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fRElSX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7CgkJc2hhZG93V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb24gKyB2ZWM0KCBzaGFkb3dXb3JsZE5vcm1hbCAqIGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzWyBpIF0uc2hhZG93Tm9ybWFsQmlhcywgMCApOwoJCXZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBpIF0gPSBkaXJlY3Rpb25hbFNoYWRvd01hdHJpeFsgaSBdICogc2hhZG93V29ybGRQb3NpdGlvbjsKCX0KCSNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kCgkjZW5kaWYKCSNpZiBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMAoJI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydAoJZm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1NQT1RfTElHSFRfU0hBRE9XUzsgaSArKyApIHsKCQlzaGFkb3dXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbiArIHZlYzQoIHNoYWRvd1dvcmxkTm9ybWFsICogc3BvdExpZ2h0U2hhZG93c1sgaSBdLnNoYWRvd05vcm1hbEJpYXMsIDAgKTsKCQl2U3BvdFNoYWRvd0Nvb3JkWyBpIF0gPSBzcG90U2hhZG93TWF0cml4WyBpIF0gKiBzaGFkb3dXb3JsZFBvc2l0aW9uOwoJfQoJI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmQKCSNlbmRpZgoJI2lmIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMAoJI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydAoJZm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7CgkJc2hhZG93V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb24gKyB2ZWM0KCBzaGFkb3dXb3JsZE5vcm1hbCAqIHBvaW50TGlnaHRTaGFkb3dzWyBpIF0uc2hhZG93Tm9ybWFsQmlhcywgMCApOwoJCXZQb2ludFNoYWRvd0Nvb3JkWyBpIF0gPSBwb2ludFNoYWRvd01hdHJpeFsgaSBdICogc2hhZG93V29ybGRQb3NpdGlvbjsKCX0KCSNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kCgkjZW5kaWYKI2VuZGlmYCwkYj1gZmxvYXQgZ2V0U2hhZG93TWFzaygpIHsKCWZsb2F0IHNoYWRvdyA9IDEuMDsKCSNpZmRlZiBVU0VfU0hBRE9XTUFQCgkjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMAoJRGlyZWN0aW9uYWxMaWdodFNoYWRvdyBkaXJlY3Rpb25hbExpZ2h0OwoJI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydAoJZm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0RJUl9MSUdIVF9TSEFET1dTOyBpICsrICkgewoJCWRpcmVjdGlvbmFsTGlnaHQgPSBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgaSBdOwoJCXNoYWRvdyAqPSByZWNlaXZlU2hhZG93ID8gZ2V0U2hhZG93KCBkaXJlY3Rpb25hbFNoYWRvd01hcFsgaSBdLCBkaXJlY3Rpb25hbExpZ2h0LnNoYWRvd01hcFNpemUsIGRpcmVjdGlvbmFsTGlnaHQuc2hhZG93QmlhcywgZGlyZWN0aW9uYWxMaWdodC5zaGFkb3dSYWRpdXMsIHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBpIF0gKSA6IDEuMDsKCX0KCSNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kCgkjZW5kaWYKCSNpZiBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMAoJU3BvdExpZ2h0U2hhZG93IHNwb3RMaWdodDsKCSNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnQKCWZvciAoIGludCBpID0gMDsgaSA8IE5VTV9TUE9UX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7CgkJc3BvdExpZ2h0ID0gc3BvdExpZ2h0U2hhZG93c1sgaSBdOwoJCXNoYWRvdyAqPSByZWNlaXZlU2hhZG93ID8gZ2V0U2hhZG93KCBzcG90U2hhZG93TWFwWyBpIF0sIHNwb3RMaWdodC5zaGFkb3dNYXBTaXplLCBzcG90TGlnaHQuc2hhZG93Qmlhcywgc3BvdExpZ2h0LnNoYWRvd1JhZGl1cywgdlNwb3RTaGFkb3dDb29yZFsgaSBdICkgOiAxLjA7Cgl9CgkjcHJhZ21hIHVucm9sbF9sb29wX2VuZAoJI2VuZGlmCgkjaWYgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwCglQb2ludExpZ2h0U2hhZG93IHBvaW50TGlnaHQ7CgkjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0Cglmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUzsgaSArKyApIHsKCQlwb2ludExpZ2h0ID0gcG9pbnRMaWdodFNoYWRvd3NbIGkgXTsKCQlzaGFkb3cgKj0gcmVjZWl2ZVNoYWRvdyA/IGdldFBvaW50U2hhZG93KCBwb2ludFNoYWRvd01hcFsgaSBdLCBwb2ludExpZ2h0LnNoYWRvd01hcFNpemUsIHBvaW50TGlnaHQuc2hhZG93QmlhcywgcG9pbnRMaWdodC5zaGFkb3dSYWRpdXMsIHZQb2ludFNoYWRvd0Nvb3JkWyBpIF0sIHBvaW50TGlnaHQuc2hhZG93Q2FtZXJhTmVhciwgcG9pbnRMaWdodC5zaGFkb3dDYW1lcmFGYXIgKSA6IDEuMDsKCX0KCSNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kCgkjZW5kaWYKCSNlbmRpZgoJcmV0dXJuIHNoYWRvdzsKfWAsS2I9YCNpZmRlZiBVU0VfU0tJTk5JTkcKCW1hdDQgYm9uZU1hdFggPSBnZXRCb25lTWF0cml4KCBza2luSW5kZXgueCApOwoJbWF0NCBib25lTWF0WSA9IGdldEJvbmVNYXRyaXgoIHNraW5JbmRleC55ICk7CgltYXQ0IGJvbmVNYXRaID0gZ2V0Qm9uZU1hdHJpeCggc2tpbkluZGV4LnogKTsKCW1hdDQgYm9uZU1hdFcgPSBnZXRCb25lTWF0cml4KCBza2luSW5kZXgudyApOwojZW5kaWZgLFFiPWAjaWZkZWYgVVNFX1NLSU5OSU5HCgl1bmlmb3JtIG1hdDQgYmluZE1hdHJpeDsKCXVuaWZvcm0gbWF0NCBiaW5kTWF0cml4SW52ZXJzZTsKCSNpZmRlZiBCT05FX1RFWFRVUkUKCQl1bmlmb3JtIGhpZ2hwIHNhbXBsZXIyRCBib25lVGV4dHVyZTsKCQl1bmlmb3JtIGludCBib25lVGV4dHVyZVNpemU7CgkJbWF0NCBnZXRCb25lTWF0cml4KCBjb25zdCBpbiBmbG9hdCBpICkgewoJCQlmbG9hdCBqID0gaSAqIDQuMDsKCQkJZmxvYXQgeCA9IG1vZCggaiwgZmxvYXQoIGJvbmVUZXh0dXJlU2l6ZSApICk7CgkJCWZsb2F0IHkgPSBmbG9vciggaiAvIGZsb2F0KCBib25lVGV4dHVyZVNpemUgKSApOwoJCQlmbG9hdCBkeCA9IDEuMCAvIGZsb2F0KCBib25lVGV4dHVyZVNpemUgKTsKCQkJZmxvYXQgZHkgPSAxLjAgLyBmbG9hdCggYm9uZVRleHR1cmVTaXplICk7CgkJCXkgPSBkeSAqICggeSArIDAuNSApOwoJCQl2ZWM0IHYxID0gdGV4dHVyZTJEKCBib25lVGV4dHVyZSwgdmVjMiggZHggKiAoIHggKyAwLjUgKSwgeSApICk7CgkJCXZlYzQgdjIgPSB0ZXh0dXJlMkQoIGJvbmVUZXh0dXJlLCB2ZWMyKCBkeCAqICggeCArIDEuNSApLCB5ICkgKTsKCQkJdmVjNCB2MyA9IHRleHR1cmUyRCggYm9uZVRleHR1cmUsIHZlYzIoIGR4ICogKCB4ICsgMi41ICksIHkgKSApOwoJCQl2ZWM0IHY0ID0gdGV4dHVyZTJEKCBib25lVGV4dHVyZSwgdmVjMiggZHggKiAoIHggKyAzLjUgKSwgeSApICk7CgkJCW1hdDQgYm9uZSA9IG1hdDQoIHYxLCB2MiwgdjMsIHY0ICk7CgkJCXJldHVybiBib25lOwoJCX0KCSNlbHNlCgkJdW5pZm9ybSBtYXQ0IGJvbmVNYXRyaWNlc1sgTUFYX0JPTkVTIF07CgkJbWF0NCBnZXRCb25lTWF0cml4KCBjb25zdCBpbiBmbG9hdCBpICkgewoJCQltYXQ0IGJvbmUgPSBib25lTWF0cmljZXNbIGludChpKSBdOwoJCQlyZXR1cm4gYm9uZTsKCQl9CgkjZW5kaWYKI2VuZGlmYCxqYj1gI2lmZGVmIFVTRV9TS0lOTklORwoJdmVjNCBza2luVmVydGV4ID0gYmluZE1hdHJpeCAqIHZlYzQoIHRyYW5zZm9ybWVkLCAxLjAgKTsKCXZlYzQgc2tpbm5lZCA9IHZlYzQoIDAuMCApOwoJc2tpbm5lZCArPSBib25lTWF0WCAqIHNraW5WZXJ0ZXggKiBza2luV2VpZ2h0Lng7Cglza2lubmVkICs9IGJvbmVNYXRZICogc2tpblZlcnRleCAqIHNraW5XZWlnaHQueTsKCXNraW5uZWQgKz0gYm9uZU1hdFogKiBza2luVmVydGV4ICogc2tpbldlaWdodC56OwoJc2tpbm5lZCArPSBib25lTWF0VyAqIHNraW5WZXJ0ZXggKiBza2luV2VpZ2h0Lnc7Cgl0cmFuc2Zvcm1lZCA9ICggYmluZE1hdHJpeEludmVyc2UgKiBza2lubmVkICkueHl6OwojZW5kaWZgLHQxPWAjaWZkZWYgVVNFX1NLSU5OSU5HCgltYXQ0IHNraW5NYXRyaXggPSBtYXQ0KCAwLjAgKTsKCXNraW5NYXRyaXggKz0gc2tpbldlaWdodC54ICogYm9uZU1hdFg7Cglza2luTWF0cml4ICs9IHNraW5XZWlnaHQueSAqIGJvbmVNYXRZOwoJc2tpbk1hdHJpeCArPSBza2luV2VpZ2h0LnogKiBib25lTWF0WjsKCXNraW5NYXRyaXggKz0gc2tpbldlaWdodC53ICogYm9uZU1hdFc7Cglza2luTWF0cml4ID0gYmluZE1hdHJpeEludmVyc2UgKiBza2luTWF0cml4ICogYmluZE1hdHJpeDsKCW9iamVjdE5vcm1hbCA9IHZlYzQoIHNraW5NYXRyaXggKiB2ZWM0KCBvYmplY3ROb3JtYWwsIDAuMCApICkueHl6OwoJI2lmZGVmIFVTRV9UQU5HRU5UCgkJb2JqZWN0VGFuZ2VudCA9IHZlYzQoIHNraW5NYXRyaXggKiB2ZWM0KCBvYmplY3RUYW5nZW50LCAwLjAgKSApLnh5ejsKCSNlbmRpZgojZW5kaWZgLGUxPWBmbG9hdCBzcGVjdWxhclN0cmVuZ3RoOwojaWZkZWYgVVNFX1NQRUNVTEFSTUFQCgl2ZWM0IHRleGVsU3BlY3VsYXIgPSB0ZXh0dXJlMkQoIHNwZWN1bGFyTWFwLCB2VXYgKTsKCXNwZWN1bGFyU3RyZW5ndGggPSB0ZXhlbFNwZWN1bGFyLnI7CiNlbHNlCglzcGVjdWxhclN0cmVuZ3RoID0gMS4wOwojZW5kaWZgLG4xPWAjaWZkZWYgVVNFX1NQRUNVTEFSTUFQCgl1bmlmb3JtIHNhbXBsZXIyRCBzcGVjdWxhck1hcDsKI2VuZGlmYCxpMT1gI2lmIGRlZmluZWQoIFRPTkVfTUFQUElORyApCglnbF9GcmFnQ29sb3IucmdiID0gdG9uZU1hcHBpbmcoIGdsX0ZyYWdDb2xvci5yZ2IgKTsKI2VuZGlmYCxyMT1gI2lmbmRlZiBzYXR1cmF0ZQojZGVmaW5lIHNhdHVyYXRlKCBhICkgY2xhbXAoIGEsIDAuMCwgMS4wICkKI2VuZGlmCnVuaWZvcm0gZmxvYXQgdG9uZU1hcHBpbmdFeHBvc3VyZTsKdmVjMyBMaW5lYXJUb25lTWFwcGluZyggdmVjMyBjb2xvciApIHsKCXJldHVybiB0b25lTWFwcGluZ0V4cG9zdXJlICogY29sb3I7Cn0KdmVjMyBSZWluaGFyZFRvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkgewoJY29sb3IgKj0gdG9uZU1hcHBpbmdFeHBvc3VyZTsKCXJldHVybiBzYXR1cmF0ZSggY29sb3IgLyAoIHZlYzMoIDEuMCApICsgY29sb3IgKSApOwp9CnZlYzMgT3B0aW1pemVkQ2luZW9uVG9uZU1hcHBpbmcoIHZlYzMgY29sb3IgKSB7Cgljb2xvciAqPSB0b25lTWFwcGluZ0V4cG9zdXJlOwoJY29sb3IgPSBtYXgoIHZlYzMoIDAuMCApLCBjb2xvciAtIDAuMDA0ICk7CglyZXR1cm4gcG93KCAoIGNvbG9yICogKCA2LjIgKiBjb2xvciArIDAuNSApICkgLyAoIGNvbG9yICogKCA2LjIgKiBjb2xvciArIDEuNyApICsgMC4wNiApLCB2ZWMzKCAyLjIgKSApOwp9CnZlYzMgUlJUQW5kT0RURml0KCB2ZWMzIHYgKSB7Cgl2ZWMzIGEgPSB2ICogKCB2ICsgMC4wMjQ1Nzg2ICkgLSAwLjAwMDA5MDUzNzsKCXZlYzMgYiA9IHYgKiAoIDAuOTgzNzI5ICogdiArIDAuNDMyOTUxMCApICsgMC4yMzgwODE7CglyZXR1cm4gYSAvIGI7Cn0KdmVjMyBBQ0VTRmlsbWljVG9uZU1hcHBpbmcoIHZlYzMgY29sb3IgKSB7Cgljb25zdCBtYXQzIEFDRVNJbnB1dE1hdCA9IG1hdDMoCgkJdmVjMyggMC41OTcxOSwgMC4wNzYwMCwgMC4wMjg0MCApLAkJdmVjMyggMC4zNTQ1OCwgMC45MDgzNCwgMC4xMzM4MyApLAoJCXZlYzMoIDAuMDQ4MjMsIDAuMDE1NjYsIDAuODM3NzcgKQoJKTsKCWNvbnN0IG1hdDMgQUNFU091dHB1dE1hdCA9IG1hdDMoCgkJdmVjMyggIDEuNjA0NzUsIC0wLjEwMjA4LCAtMC4wMDMyNyApLAkJdmVjMyggLTAuNTMxMDgsICAxLjEwODEzLCAtMC4wNzI3NiApLAoJCXZlYzMoIC0wLjA3MzY3LCAtMC4wMDYwNSwgIDEuMDc2MDIgKQoJKTsKCWNvbG9yICo9IHRvbmVNYXBwaW5nRXhwb3N1cmUgLyAwLjY7Cgljb2xvciA9IEFDRVNJbnB1dE1hdCAqIGNvbG9yOwoJY29sb3IgPSBSUlRBbmRPRFRGaXQoIGNvbG9yICk7Cgljb2xvciA9IEFDRVNPdXRwdXRNYXQgKiBjb2xvcjsKCXJldHVybiBzYXR1cmF0ZSggY29sb3IgKTsKfQp2ZWMzIEN1c3RvbVRvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkgeyByZXR1cm4gY29sb3I7IH1gLHMxPWAjaWZkZWYgVVNFX1RSQU5TTUlTU0lPTgoJZmxvYXQgdHJhbnNtaXNzaW9uQWxwaGEgPSAxLjA7CglmbG9hdCB0cmFuc21pc3Npb25GYWN0b3IgPSB0cmFuc21pc3Npb247CglmbG9hdCB0aGlja25lc3NGYWN0b3IgPSB0aGlja25lc3M7CgkjaWZkZWYgVVNFX1RSQU5TTUlTU0lPTk1BUAoJCXRyYW5zbWlzc2lvbkZhY3RvciAqPSB0ZXh0dXJlMkQoIHRyYW5zbWlzc2lvbk1hcCwgdlV2ICkucjsKCSNlbmRpZgoJI2lmZGVmIFVTRV9USElDS05FU1NNQVAKCQl0aGlja25lc3NGYWN0b3IgKj0gdGV4dHVyZTJEKCB0aGlja25lc3NNYXAsIHZVdiApLmc7CgkjZW5kaWYKCXZlYzMgcG9zID0gdldvcmxkUG9zaXRpb247Cgl2ZWMzIHYgPSBub3JtYWxpemUoIGNhbWVyYVBvc2l0aW9uIC0gcG9zICk7Cgl2ZWMzIG4gPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCBub3JtYWwsIHZpZXdNYXRyaXggKTsKCXZlYzQgdHJhbnNtaXNzaW9uID0gZ2V0SUJMVm9sdW1lUmVmcmFjdGlvbigKCQluLCB2LCByb3VnaG5lc3NGYWN0b3IsIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJGOTAsCgkJcG9zLCBtb2RlbE1hdHJpeCwgdmlld01hdHJpeCwgcHJvamVjdGlvbk1hdHJpeCwgaW9yLCB0aGlja25lc3NGYWN0b3IsCgkJYXR0ZW51YXRpb25Db2xvciwgYXR0ZW51YXRpb25EaXN0YW5jZSApOwoJdG90YWxEaWZmdXNlID0gbWl4KCB0b3RhbERpZmZ1c2UsIHRyYW5zbWlzc2lvbi5yZ2IsIHRyYW5zbWlzc2lvbkZhY3RvciApOwoJdHJhbnNtaXNzaW9uQWxwaGEgPSBtaXgoIHRyYW5zbWlzc2lvbkFscGhhLCB0cmFuc21pc3Npb24uYSwgdHJhbnNtaXNzaW9uRmFjdG9yICk7CiNlbmRpZmAsbzE9YCNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OCgl1bmlmb3JtIGZsb2F0IHRyYW5zbWlzc2lvbjsKCXVuaWZvcm0gZmxvYXQgdGhpY2tuZXNzOwoJdW5pZm9ybSBmbG9hdCBhdHRlbnVhdGlvbkRpc3RhbmNlOwoJdW5pZm9ybSB2ZWMzIGF0dGVudWF0aW9uQ29sb3I7CgkjaWZkZWYgVVNFX1RSQU5TTUlTU0lPTk1BUAoJCXVuaWZvcm0gc2FtcGxlcjJEIHRyYW5zbWlzc2lvbk1hcDsKCSNlbmRpZgoJI2lmZGVmIFVTRV9USElDS05FU1NNQVAKCQl1bmlmb3JtIHNhbXBsZXIyRCB0aGlja25lc3NNYXA7CgkjZW5kaWYKCXVuaWZvcm0gdmVjMiB0cmFuc21pc3Npb25TYW1wbGVyU2l6ZTsKCXVuaWZvcm0gc2FtcGxlcjJEIHRyYW5zbWlzc2lvblNhbXBsZXJNYXA7Cgl1bmlmb3JtIG1hdDQgbW9kZWxNYXRyaXg7Cgl1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDsKCXZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjsKCXZlYzMgZ2V0Vm9sdW1lVHJhbnNtaXNzaW9uUmF5KCBjb25zdCBpbiB2ZWMzIG4sIGNvbnN0IGluIHZlYzMgdiwgY29uc3QgaW4gZmxvYXQgdGhpY2tuZXNzLCBjb25zdCBpbiBmbG9hdCBpb3IsIGNvbnN0IGluIG1hdDQgbW9kZWxNYXRyaXggKSB7CgkJdmVjMyByZWZyYWN0aW9uVmVjdG9yID0gcmVmcmFjdCggLSB2LCBub3JtYWxpemUoIG4gKSwgMS4wIC8gaW9yICk7CgkJdmVjMyBtb2RlbFNjYWxlOwoJCW1vZGVsU2NhbGUueCA9IGxlbmd0aCggdmVjMyggbW9kZWxNYXRyaXhbIDAgXS54eXogKSApOwoJCW1vZGVsU2NhbGUueSA9IGxlbmd0aCggdmVjMyggbW9kZWxNYXRyaXhbIDEgXS54eXogKSApOwoJCW1vZGVsU2NhbGUueiA9IGxlbmd0aCggdmVjMyggbW9kZWxNYXRyaXhbIDIgXS54eXogKSApOwoJCXJldHVybiBub3JtYWxpemUoIHJlZnJhY3Rpb25WZWN0b3IgKSAqIHRoaWNrbmVzcyAqIG1vZGVsU2NhbGU7Cgl9CglmbG9hdCBhcHBseUlvclRvUm91Z2huZXNzKCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGNvbnN0IGluIGZsb2F0IGlvciApIHsKCQlyZXR1cm4gcm91Z2huZXNzICogY2xhbXAoIGlvciAqIDIuMCAtIDIuMCwgMC4wLCAxLjAgKTsKCX0KCXZlYzQgZ2V0VHJhbnNtaXNzaW9uU2FtcGxlKCBjb25zdCBpbiB2ZWMyIGZyYWdDb29yZCwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBjb25zdCBpbiBmbG9hdCBpb3IgKSB7CgkJZmxvYXQgZnJhbWVidWZmZXJMb2QgPSBsb2cyKCB0cmFuc21pc3Npb25TYW1wbGVyU2l6ZS54ICkgKiBhcHBseUlvclRvUm91Z2huZXNzKCByb3VnaG5lc3MsIGlvciApOwoJCSNpZmRlZiBURVhUVVJFX0xPRF9FWFQKCQkJcmV0dXJuIHRleHR1cmUyRExvZEVYVCggdHJhbnNtaXNzaW9uU2FtcGxlck1hcCwgZnJhZ0Nvb3JkLnh5LCBmcmFtZWJ1ZmZlckxvZCApOwoJCSNlbHNlCgkJCXJldHVybiB0ZXh0dXJlMkQoIHRyYW5zbWlzc2lvblNhbXBsZXJNYXAsIGZyYWdDb29yZC54eSwgZnJhbWVidWZmZXJMb2QgKTsKCQkjZW5kaWYKCX0KCXZlYzMgYXBwbHlWb2x1bWVBdHRlbnVhdGlvbiggY29uc3QgaW4gdmVjMyByYWRpYW5jZSwgY29uc3QgaW4gZmxvYXQgdHJhbnNtaXNzaW9uRGlzdGFuY2UsIGNvbnN0IGluIHZlYzMgYXR0ZW51YXRpb25Db2xvciwgY29uc3QgaW4gZmxvYXQgYXR0ZW51YXRpb25EaXN0YW5jZSApIHsKCQlpZiAoIGF0dGVudWF0aW9uRGlzdGFuY2UgPT0gMC4wICkgewoJCQlyZXR1cm4gcmFkaWFuY2U7CgkJfSBlbHNlIHsKCQkJdmVjMyBhdHRlbnVhdGlvbkNvZWZmaWNpZW50ID0gLWxvZyggYXR0ZW51YXRpb25Db2xvciApIC8gYXR0ZW51YXRpb25EaXN0YW5jZTsKCQkJdmVjMyB0cmFuc21pdHRhbmNlID0gZXhwKCAtIGF0dGVudWF0aW9uQ29lZmZpY2llbnQgKiB0cmFuc21pc3Npb25EaXN0YW5jZSApOwkJCXJldHVybiB0cmFuc21pdHRhbmNlICogcmFkaWFuY2U7CgkJfQoJfQoJdmVjNCBnZXRJQkxWb2x1bWVSZWZyYWN0aW9uKCBjb25zdCBpbiB2ZWMzIG4sIGNvbnN0IGluIHZlYzMgdiwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBjb25zdCBpbiB2ZWMzIGRpZmZ1c2VDb2xvciwKCQljb25zdCBpbiB2ZWMzIHNwZWN1bGFyQ29sb3IsIGNvbnN0IGluIGZsb2F0IHNwZWN1bGFyRjkwLCBjb25zdCBpbiB2ZWMzIHBvc2l0aW9uLCBjb25zdCBpbiBtYXQ0IG1vZGVsTWF0cml4LAoJCWNvbnN0IGluIG1hdDQgdmlld01hdHJpeCwgY29uc3QgaW4gbWF0NCBwcm9qTWF0cml4LCBjb25zdCBpbiBmbG9hdCBpb3IsIGNvbnN0IGluIGZsb2F0IHRoaWNrbmVzcywKCQljb25zdCBpbiB2ZWMzIGF0dGVudWF0aW9uQ29sb3IsIGNvbnN0IGluIGZsb2F0IGF0dGVudWF0aW9uRGlzdGFuY2UgKSB7CgkJdmVjMyB0cmFuc21pc3Npb25SYXkgPSBnZXRWb2x1bWVUcmFuc21pc3Npb25SYXkoIG4sIHYsIHRoaWNrbmVzcywgaW9yLCBtb2RlbE1hdHJpeCApOwoJCXZlYzMgcmVmcmFjdGVkUmF5RXhpdCA9IHBvc2l0aW9uICsgdHJhbnNtaXNzaW9uUmF5OwoJCXZlYzQgbmRjUG9zID0gcHJvak1hdHJpeCAqIHZpZXdNYXRyaXggKiB2ZWM0KCByZWZyYWN0ZWRSYXlFeGl0LCAxLjAgKTsKCQl2ZWMyIHJlZnJhY3Rpb25Db29yZHMgPSBuZGNQb3MueHkgLyBuZGNQb3MudzsKCQlyZWZyYWN0aW9uQ29vcmRzICs9IDEuMDsKCQlyZWZyYWN0aW9uQ29vcmRzIC89IDIuMDsKCQl2ZWM0IHRyYW5zbWl0dGVkTGlnaHQgPSBnZXRUcmFuc21pc3Npb25TYW1wbGUoIHJlZnJhY3Rpb25Db29yZHMsIHJvdWdobmVzcywgaW9yICk7CgkJdmVjMyBhdHRlbnVhdGVkQ29sb3IgPSBhcHBseVZvbHVtZUF0dGVudWF0aW9uKCB0cmFuc21pdHRlZExpZ2h0LnJnYiwgbGVuZ3RoKCB0cmFuc21pc3Npb25SYXkgKSwgYXR0ZW51YXRpb25Db2xvciwgYXR0ZW51YXRpb25EaXN0YW5jZSApOwoJCXZlYzMgRiA9IEVudmlyb25tZW50QlJERiggbiwgdiwgc3BlY3VsYXJDb2xvciwgc3BlY3VsYXJGOTAsIHJvdWdobmVzcyApOwoJCXJldHVybiB2ZWM0KCAoIDEuMCAtIEYgKSAqIGF0dGVudWF0ZWRDb2xvciAqIGRpZmZ1c2VDb2xvciwgdHJhbnNtaXR0ZWRMaWdodC5hICk7Cgl9CiNlbmRpZmAsYTE9YCNpZiAoIGRlZmluZWQoIFVTRV9VViApICYmICEgZGVmaW5lZCggVVZTX1ZFUlRFWF9PTkxZICkgKQoJdmFyeWluZyB2ZWMyIHZVdjsKI2VuZGlmYCxsMT1gI2lmZGVmIFVTRV9VVgoJI2lmZGVmIFVWU19WRVJURVhfT05MWQoJCXZlYzIgdlV2OwoJI2Vsc2UKCQl2YXJ5aW5nIHZlYzIgdlV2OwoJI2VuZGlmCgl1bmlmb3JtIG1hdDMgdXZUcmFuc2Zvcm07CiNlbmRpZmAsYzE9YCNpZmRlZiBVU0VfVVYKCXZVdiA9ICggdXZUcmFuc2Zvcm0gKiB2ZWMzKCB1diwgMSApICkueHk7CiNlbmRpZmAsdTE9YCNpZiBkZWZpbmVkKCBVU0VfTElHSFRNQVAgKSB8fCBkZWZpbmVkKCBVU0VfQU9NQVAgKQoJdmFyeWluZyB2ZWMyIHZVdjI7CiNlbmRpZmAsaDE9YCNpZiBkZWZpbmVkKCBVU0VfTElHSFRNQVAgKSB8fCBkZWZpbmVkKCBVU0VfQU9NQVAgKQoJYXR0cmlidXRlIHZlYzIgdXYyOwoJdmFyeWluZyB2ZWMyIHZVdjI7Cgl1bmlmb3JtIG1hdDMgdXYyVHJhbnNmb3JtOwojZW5kaWZgLGYxPWAjaWYgZGVmaW5lZCggVVNFX0xJR0hUTUFQICkgfHwgZGVmaW5lZCggVVNFX0FPTUFQICkKCXZVdjIgPSAoIHV2MlRyYW5zZm9ybSAqIHZlYzMoIHV2MiwgMSApICkueHk7CiNlbmRpZmAsZDE9YCNpZiBkZWZpbmVkKCBVU0VfRU5WTUFQICkgfHwgZGVmaW5lZCggRElTVEFOQ0UgKSB8fCBkZWZpbmVkICggVVNFX1NIQURPV01BUCApIHx8IGRlZmluZWQgKCBVU0VfVFJBTlNNSVNTSU9OICkKCXZlYzQgd29ybGRQb3NpdGlvbiA9IHZlYzQoIHRyYW5zZm9ybWVkLCAxLjAgKTsKCSNpZmRlZiBVU0VfSU5TVEFOQ0lORwoJCXdvcmxkUG9zaXRpb24gPSBpbnN0YW5jZU1hdHJpeCAqIHdvcmxkUG9zaXRpb247CgkjZW5kaWYKCXdvcmxkUG9zaXRpb24gPSBtb2RlbE1hdHJpeCAqIHdvcmxkUG9zaXRpb247CiNlbmRpZmAscDE9YHZhcnlpbmcgdmVjMiB2VXY7CnVuaWZvcm0gbWF0MyB1dlRyYW5zZm9ybTsKdm9pZCBtYWluKCkgewoJdlV2ID0gKCB1dlRyYW5zZm9ybSAqIHZlYzMoIHV2LCAxICkgKS54eTsKCWdsX1Bvc2l0aW9uID0gdmVjNCggcG9zaXRpb24ueHksIDEuMCwgMS4wICk7Cn1gLG0xPWB1bmlmb3JtIHNhbXBsZXIyRCB0MkQ7CnZhcnlpbmcgdmVjMiB2VXY7CnZvaWQgbWFpbigpIHsKCWdsX0ZyYWdDb2xvciA9IHRleHR1cmUyRCggdDJELCB2VXYgKTsKCSNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+Cn1gLGcxPWB2YXJ5aW5nIHZlYzMgdldvcmxkRGlyZWN0aW9uOwojaW5jbHVkZSA8Y29tbW9uPgp2b2lkIG1haW4oKSB7Cgl2V29ybGREaXJlY3Rpb24gPSB0cmFuc2Zvcm1EaXJlY3Rpb24oIHBvc2l0aW9uLCBtb2RlbE1hdHJpeCApOwoJI2luY2x1ZGUgPGJlZ2luX3ZlcnRleD4KCSNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD4KCWdsX1Bvc2l0aW9uLnogPSBnbF9Qb3NpdGlvbi53Owp9YCx4MT1gI2luY2x1ZGUgPGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudD4KdW5pZm9ybSBmbG9hdCBvcGFjaXR5Owp2YXJ5aW5nIHZlYzMgdldvcmxkRGlyZWN0aW9uOwojaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50Pgp2b2lkIG1haW4oKSB7Cgl2ZWMzIHZSZWZsZWN0ID0gdldvcmxkRGlyZWN0aW9uOwoJI2luY2x1ZGUgPGVudm1hcF9mcmFnbWVudD4KCWdsX0ZyYWdDb2xvciA9IGVudkNvbG9yOwoJZ2xfRnJhZ0NvbG9yLmEgKj0gb3BhY2l0eTsKCSNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+Cn1gLHkxPWAjaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+CnZhcnlpbmcgdmVjMiB2SGlnaFByZWNpc2lvblpXOwp2b2lkIG1haW4oKSB7CgkjaW5jbHVkZSA8dXZfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD4KCSNpZmRlZiBVU0VfRElTUExBQ0VNRU5UTUFQCgkJI2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD4KCQkjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PgoJCSNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD4KCSNlbmRpZgoJI2luY2x1ZGUgPGJlZ2luX3ZlcnRleD4KCSNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PgoJI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+CgkjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PgoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+Cgl2SGlnaFByZWNpc2lvblpXID0gZ2xfUG9zaXRpb24uenc7Cn1gLHYxPWAjaWYgREVQVEhfUEFDS0lORyA9PSAzMjAwCgl1bmlmb3JtIGZsb2F0IG9wYWNpdHk7CiNlbmRpZgojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8cGFja2luZz4KI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxhbHBoYXRlc3RfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD4KdmFyeWluZyB2ZWMyIHZIaWdoUHJlY2lzaW9uWlc7CnZvaWQgbWFpbigpIHsKCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+Cgl2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIDEuMCApOwoJI2lmIERFUFRIX1BBQ0tJTkcgPT0gMzIwMAoJCWRpZmZ1c2VDb2xvci5hID0gb3BhY2l0eTsKCSNlbmRpZgoJI2luY2x1ZGUgPG1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+CglmbG9hdCBmcmFnQ29vcmRaID0gMC41ICogdkhpZ2hQcmVjaXNpb25aV1swXSAvIHZIaWdoUHJlY2lzaW9uWldbMV0gKyAwLjU7CgkjaWYgREVQVEhfUEFDS0lORyA9PSAzMjAwCgkJZ2xfRnJhZ0NvbG9yID0gdmVjNCggdmVjMyggMS4wIC0gZnJhZ0Nvb3JkWiApLCBvcGFjaXR5ICk7CgkjZWxpZiBERVBUSF9QQUNLSU5HID09IDMyMDEKCQlnbF9GcmFnQ29sb3IgPSBwYWNrRGVwdGhUb1JHQkEoIGZyYWdDb29yZFogKTsKCSNlbmRpZgp9YCxfMT1gI2RlZmluZSBESVNUQU5DRQp2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247CiNpbmNsdWRlIDxjb21tb24+CiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PgojaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+CnZvaWQgbWFpbigpIHsKCSNpbmNsdWRlIDx1dl92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PgoJI2lmZGVmIFVTRV9ESVNQTEFDRU1FTlRNQVAKCQkjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PgoJCSNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+CgkJI2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PgoJI2VuZGlmCgkjaW5jbHVkZSA8YmVnaW5fdmVydGV4PgoJI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD4KCSNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+CgkjaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3ZlcnRleD4KCSNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD4KCSNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+CgkjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD4KCXZXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbi54eXo7Cn1gLHcxPWAjZGVmaW5lIERJU1RBTkNFCnVuaWZvcm0gdmVjMyByZWZlcmVuY2VQb3NpdGlvbjsKdW5pZm9ybSBmbG9hdCBuZWFyRGlzdGFuY2U7CnVuaWZvcm0gZmxvYXQgZmFyRGlzdGFuY2U7CnZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjsKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPHBhY2tpbmc+CiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YWxwaGF0ZXN0X3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD4Kdm9pZCBtYWluICgpIHsKCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+Cgl2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIDEuMCApOwoJI2luY2x1ZGUgPG1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+CglmbG9hdCBkaXN0ID0gbGVuZ3RoKCB2V29ybGRQb3NpdGlvbiAtIHJlZmVyZW5jZVBvc2l0aW9uICk7CglkaXN0ID0gKCBkaXN0IC0gbmVhckRpc3RhbmNlICkgLyAoIGZhckRpc3RhbmNlIC0gbmVhckRpc3RhbmNlICk7CglkaXN0ID0gc2F0dXJhdGUoIGRpc3QgKTsKCWdsX0ZyYWdDb2xvciA9IHBhY2tEZXB0aFRvUkdCQSggZGlzdCApOwp9YCxNMT1gdmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjsKI2luY2x1ZGUgPGNvbW1vbj4Kdm9pZCBtYWluKCkgewoJdldvcmxkRGlyZWN0aW9uID0gdHJhbnNmb3JtRGlyZWN0aW9uKCBwb3NpdGlvbiwgbW9kZWxNYXRyaXggKTsKCSNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+CgkjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+Cn1gLGIxPWB1bmlmb3JtIHNhbXBsZXIyRCB0RXF1aXJlY3Q7CnZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247CiNpbmNsdWRlIDxjb21tb24+CnZvaWQgbWFpbigpIHsKCXZlYzMgZGlyZWN0aW9uID0gbm9ybWFsaXplKCB2V29ybGREaXJlY3Rpb24gKTsKCXZlYzIgc2FtcGxlVVYgPSBlcXVpcmVjdFV2KCBkaXJlY3Rpb24gKTsKCWdsX0ZyYWdDb2xvciA9IHRleHR1cmUyRCggdEVxdWlyZWN0LCBzYW1wbGVVViApOwoJI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD4KfWAsUzE9YHVuaWZvcm0gZmxvYXQgc2NhbGU7CmF0dHJpYnV0ZSBmbG9hdCBsaW5lRGlzdGFuY2U7CnZhcnlpbmcgZmxvYXQgdkxpbmVEaXN0YW5jZTsKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD4Kdm9pZCBtYWluKCkgewoJdkxpbmVEaXN0YW5jZSA9IHNjYWxlICogbGluZURpc3RhbmNlOwoJI2luY2x1ZGUgPGNvbG9yX3ZlcnRleD4KCSNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+CgkjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PgoJI2luY2x1ZGUgPHByb2plY3RfdmVydGV4PgoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD4KCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PgoJI2luY2x1ZGUgPGZvZ192ZXJ0ZXg+Cn1gLEUxPWB1bmlmb3JtIHZlYzMgZGlmZnVzZTsKdW5pZm9ybSBmbG9hdCBvcGFjaXR5Owp1bmlmb3JtIGZsb2F0IGRhc2hTaXplOwp1bmlmb3JtIGZsb2F0IHRvdGFsU2l6ZTsKdmFyeWluZyBmbG9hdCB2TGluZURpc3RhbmNlOwojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Pgp2b2lkIG1haW4oKSB7CgkjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PgoJaWYgKCBtb2QoIHZMaW5lRGlzdGFuY2UsIHRvdGFsU2l6ZSApID4gZGFzaFNpemUgKSB7CgkJZGlzY2FyZDsKCX0KCXZlYzMgb3V0Z29pbmdMaWdodCA9IHZlYzMoIDAuMCApOwoJdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7CgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+CglvdXRnb2luZ0xpZ2h0ID0gZGlmZnVzZUNvbG9yLnJnYjsKCSNpbmNsdWRlIDxvdXRwdXRfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGZvZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50Pgp9YCxUMT1gI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PgojaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8ZW52bWFwX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+CnZvaWQgbWFpbigpIHsKCSNpbmNsdWRlIDx1dl92ZXJ0ZXg+CgkjaW5jbHVkZSA8dXYyX3ZlcnRleD4KCSNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+CgkjaWYgZGVmaW5lZCAoIFVTRV9FTlZNQVAgKSB8fCBkZWZpbmVkICggVVNFX1NLSU5OSU5HICkKCQkjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PgoJCSNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+CgkJI2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD4KCQkjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+CgkJI2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PgoJI2VuZGlmCgkjaW5jbHVkZSA8YmVnaW5fdmVydGV4PgoJI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD4KCSNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+CgkjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PgoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+CgkjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PgoJI2luY2x1ZGUgPGVudm1hcF92ZXJ0ZXg+CgkjaW5jbHVkZSA8Zm9nX3ZlcnRleD4KfWAsQTE9YHVuaWZvcm0gdmVjMyBkaWZmdXNlOwp1bmlmb3JtIGZsb2F0IG9wYWNpdHk7CiNpZm5kZWYgRkxBVF9TSEFERUQKCXZhcnlpbmcgdmVjMyB2Tm9ybWFsOwojZW5kaWYKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDx1djJfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGFscGhhdGVzdF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YW9tYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxlbnZtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD4KI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8c3BlY3VsYXJtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD4KCXZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApOwoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PgoJI2luY2x1ZGUgPG1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8c3BlY3VsYXJtYXBfZnJhZ21lbnQ+CglSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApOwoJI2lmZGVmIFVTRV9MSUdIVE1BUAoJCXZlYzQgbGlnaHRNYXBUZXhlbD0gdGV4dHVyZTJEKCBsaWdodE1hcCwgdlV2MiApOwoJCXJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSBsaWdodE1hcFRleGVsLnJnYiAqIGxpZ2h0TWFwSW50ZW5zaXR5OwoJI2Vsc2UKCQlyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gdmVjMyggMS4wICk7CgkjZW5kaWYKCSNpbmNsdWRlIDxhb21hcF9mcmFnbWVudD4KCXJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSAqPSBkaWZmdXNlQ29sb3IucmdiOwoJdmVjMyBvdXRnb2luZ0xpZ2h0ID0gcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlOwoJI2luY2x1ZGUgPGVudm1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxvdXRwdXRfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGZvZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGRpdGhlcmluZ19mcmFnbWVudD4KfWAsQzE9YCNkZWZpbmUgTEFNQkVSVAp2YXJ5aW5nIHZlYzMgdkxpZ2h0RnJvbnQ7CnZhcnlpbmcgdmVjMyB2SW5kaXJlY3RGcm9udDsKI2lmZGVmIERPVUJMRV9TSURFRAoJdmFyeWluZyB2ZWMzIHZMaWdodEJhY2s7Cgl2YXJ5aW5nIHZlYzMgdkluZGlyZWN0QmFjazsKI2VuZGlmCiNpbmNsdWRlIDxjb21tb24+CiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPHV2Ml9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGVudm1hcF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGJzZGZzPgojaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+CiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PgojaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPHV2X3ZlcnRleD4KCSNpbmNsdWRlIDx1djJfdmVydGV4PgoJI2luY2x1ZGUgPGNvbG9yX3ZlcnRleD4KCSNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD4KCSNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+CgkjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD4KCSNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD4KCSNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+CgkjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD4KCSNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+CgkjaW5jbHVkZSA8ZW52bWFwX3ZlcnRleD4KCSNpbmNsdWRlIDxsaWdodHNfbGFtYmVydF92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2hhZG93bWFwX3ZlcnRleD4KCSNpbmNsdWRlIDxmb2dfdmVydGV4Pgp9YCxSMT1gdW5pZm9ybSB2ZWMzIGRpZmZ1c2U7CnVuaWZvcm0gdmVjMyBlbWlzc2l2ZTsKdW5pZm9ybSBmbG9hdCBvcGFjaXR5Owp2YXJ5aW5nIHZlYzMgdkxpZ2h0RnJvbnQ7CnZhcnlpbmcgdmVjMyB2SW5kaXJlY3RGcm9udDsKI2lmZGVmIERPVUJMRV9TSURFRAoJdmFyeWluZyB2ZWMzIHZMaWdodEJhY2s7Cgl2YXJ5aW5nIHZlYzMgdkluZGlyZWN0QmFjazsKI2VuZGlmCiNpbmNsdWRlIDxjb21tb24+CiNpbmNsdWRlIDxwYWNraW5nPgojaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPHV2Ml9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YWxwaGF0ZXN0X3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bGlnaHRtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGVtaXNzaXZlbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxlbnZtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD4KI2luY2x1ZGUgPGJzZGZzPgojaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+CiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8c2hhZG93bWFza19wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8c3BlY3VsYXJtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD4KCXZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApOwoJUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTsKCXZlYzMgdG90YWxFbWlzc2l2ZVJhZGlhbmNlID0gZW1pc3NpdmU7CgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD4KCSNpbmNsdWRlIDxzcGVjdWxhcm1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9mcmFnbWVudD4KCSNpZmRlZiBET1VCTEVfU0lERUQKCQlyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gKCBnbF9Gcm9udEZhY2luZyApID8gdkluZGlyZWN0RnJvbnQgOiB2SW5kaXJlY3RCYWNrOwoJI2Vsc2UKCQlyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gdkluZGlyZWN0RnJvbnQ7CgkjZW5kaWYKCSNpbmNsdWRlIDxsaWdodG1hcF9mcmFnbWVudD4KCXJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSAqPSBCUkRGX0xhbWJlcnQoIGRpZmZ1c2VDb2xvci5yZ2IgKTsKCSNpZmRlZiBET1VCTEVfU0lERUQKCQlyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlID0gKCBnbF9Gcm9udEZhY2luZyApID8gdkxpZ2h0RnJvbnQgOiB2TGlnaHRCYWNrOwoJI2Vsc2UKCQlyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlID0gdkxpZ2h0RnJvbnQ7CgkjZW5kaWYKCXJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKj0gQlJERl9MYW1iZXJ0KCBkaWZmdXNlQ29sb3IucmdiICkgKiBnZXRTaGFkb3dNYXNrKCk7CgkjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+Cgl2ZWMzIG91dGdvaW5nTGlnaHQgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICsgdG90YWxFbWlzc2l2ZVJhZGlhbmNlOwoJI2luY2x1ZGUgPGVudm1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxvdXRwdXRfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGZvZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGRpdGhlcmluZ19mcmFnbWVudD4KfWAsTDE9YCNkZWZpbmUgTUFUQ0FQCnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uOwojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPG5vcm1hbF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PgojaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPHV2X3ZlcnRleD4KCSNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+CgkjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+CgkjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD4KCSNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PgoJI2luY2x1ZGUgPHByb2plY3RfdmVydGV4PgoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD4KCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PgoJI2luY2x1ZGUgPGZvZ192ZXJ0ZXg+Cgl2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejsKfWAsUDE9YCNkZWZpbmUgTUFUQ0FQCnVuaWZvcm0gdmVjMyBkaWZmdXNlOwp1bmlmb3JtIGZsb2F0IG9wYWNpdHk7CnVuaWZvcm0gc2FtcGxlcjJEIG1hdGNhcDsKdmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247CiNpbmNsdWRlIDxjb21tb24+CiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YWxwaGF0ZXN0X3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPG5vcm1hbF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YnVtcG1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+CnZvaWQgbWFpbigpIHsKCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+Cgl2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTsKCSNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD4KCSNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PgoJI2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9iZWdpbj4KCSNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfbWFwcz4KCXZlYzMgdmlld0RpciA9IG5vcm1hbGl6ZSggdlZpZXdQb3NpdGlvbiApOwoJdmVjMyB4ID0gbm9ybWFsaXplKCB2ZWMzKCB2aWV3RGlyLnosIDAuMCwgLSB2aWV3RGlyLnggKSApOwoJdmVjMyB5ID0gY3Jvc3MoIHZpZXdEaXIsIHggKTsKCXZlYzIgdXYgPSB2ZWMyKCBkb3QoIHgsIG5vcm1hbCApLCBkb3QoIHksIG5vcm1hbCApICkgKiAwLjQ5NSArIDAuNTsKCSNpZmRlZiBVU0VfTUFUQ0FQCgkJdmVjNCBtYXRjYXBDb2xvciA9IHRleHR1cmUyRCggbWF0Y2FwLCB1diApOwoJI2Vsc2UKCQl2ZWM0IG1hdGNhcENvbG9yID0gdmVjNCggdmVjMyggbWl4KCAwLjIsIDAuOCwgdXYueSApICksIDEuMCApOwoJI2VuZGlmCgl2ZWMzIG91dGdvaW5nTGlnaHQgPSBkaWZmdXNlQ29sb3IucmdiICogbWF0Y2FwQ29sb3IucmdiOwoJI2luY2x1ZGUgPG91dHB1dF9mcmFnbWVudD4KCSNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PgoJI2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50Pgp9YCxEMT1gI2RlZmluZSBOT1JNQUwKI2lmIGRlZmluZWQoIEZMQVRfU0hBREVEICkgfHwgZGVmaW5lZCggVVNFX0JVTVBNQVAgKSB8fCBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQICkKCXZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uOwojZW5kaWYKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PgojaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8bm9ybWFsX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Pgp2b2lkIG1haW4oKSB7CgkjaW5jbHVkZSA8dXZfdmVydGV4PgoJI2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPG5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8YmVnaW5fdmVydGV4PgoJI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD4KCSNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+CgkjaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3ZlcnRleD4KCSNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD4KCSNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+CgkjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD4KI2lmIGRlZmluZWQoIEZMQVRfU0hBREVEICkgfHwgZGVmaW5lZCggVVNFX0JVTVBNQVAgKSB8fCBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQICkKCXZWaWV3UG9zaXRpb24gPSAtIG12UG9zaXRpb24ueHl6OwojZW5kaWYKfWAsSTE9YCNkZWZpbmUgTk9STUFMCnVuaWZvcm0gZmxvYXQgb3BhY2l0eTsKI2lmIGRlZmluZWQoIEZMQVRfU0hBREVEICkgfHwgZGVmaW5lZCggVVNFX0JVTVBNQVAgKSB8fCBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQICkKCXZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uOwojZW5kaWYKI2luY2x1ZGUgPHBhY2tpbmc+CiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bm9ybWFsX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxidW1wbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD4KCSNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD4KCSNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfYmVnaW4+CgkjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+CglnbF9GcmFnQ29sb3IgPSB2ZWM0KCBwYWNrTm9ybWFsVG9SR0IoIG5vcm1hbCApLCBvcGFjaXR5ICk7Cn1gLE4xPWAjZGVmaW5lIFBIT05HCnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uOwojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDx1djJfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxlbnZtYXBfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPG5vcm1hbF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PgojaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPHV2X3ZlcnRleD4KCSNpbmNsdWRlIDx1djJfdmVydGV4PgoJI2luY2x1ZGUgPGNvbG9yX3ZlcnRleD4KCSNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD4KCSNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPGJlZ2luX3ZlcnRleD4KCSNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PgoJI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+CgkjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PgoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+Cgl2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejsKCSNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+CgkjaW5jbHVkZSA8ZW52bWFwX3ZlcnRleD4KCSNpbmNsdWRlIDxzaGFkb3dtYXBfdmVydGV4PgoJI2luY2x1ZGUgPGZvZ192ZXJ0ZXg+Cn1gLEYxPWAjZGVmaW5lIFBIT05HCnVuaWZvcm0gdmVjMyBkaWZmdXNlOwp1bmlmb3JtIHZlYzMgZW1pc3NpdmU7CnVuaWZvcm0gdmVjMyBzcGVjdWxhcjsKdW5pZm9ybSBmbG9hdCBzaGluaW5lc3M7CnVuaWZvcm0gZmxvYXQgb3BhY2l0eTsKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPHBhY2tpbmc+CiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8dXYyX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxhbHBoYXRlc3RfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGFvbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxsaWdodG1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8ZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGVudm1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PgojaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxic2Rmcz4KI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPgojaW5jbHVkZSA8bm9ybWFsX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxsaWdodHNfcGhvbmdfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YnVtcG1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxzcGVjdWxhcm1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Pgp2b2lkIG1haW4oKSB7CgkjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PgoJdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7CglSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApOwoJdmVjMyB0b3RhbEVtaXNzaXZlUmFkaWFuY2UgPSBlbWlzc2l2ZTsKCSNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD4KCSNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PgoJI2luY2x1ZGUgPHNwZWN1bGFybWFwX2ZyYWdtZW50PgoJI2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9iZWdpbj4KCSNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfbWFwcz4KCSNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxsaWdodHNfcGhvbmdfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2JlZ2luPgoJI2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9tYXBzPgoJI2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9lbmQ+CgkjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+Cgl2ZWMzIG91dGdvaW5nTGlnaHQgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICsgdG90YWxFbWlzc2l2ZVJhZGlhbmNlOwoJI2luY2x1ZGUgPGVudm1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxvdXRwdXRfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGZvZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGRpdGhlcmluZ19mcmFnbWVudD4KfWAsejE9YCNkZWZpbmUgU1RBTkRBUkQKdmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247CiNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OCgl2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247CiNlbmRpZgojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDx1djJfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPG5vcm1hbF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PgojaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPHV2X3ZlcnRleD4KCSNpbmNsdWRlIDx1djJfdmVydGV4PgoJI2luY2x1ZGUgPGNvbG9yX3ZlcnRleD4KCSNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD4KCSNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPGJlZ2luX3ZlcnRleD4KCSNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PgoJI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+CgkjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PgoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+Cgl2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejsKCSNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+CgkjaW5jbHVkZSA8c2hhZG93bWFwX3ZlcnRleD4KCSNpbmNsdWRlIDxmb2dfdmVydGV4PgojaWZkZWYgVVNFX1RSQU5TTUlTU0lPTgoJdldvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uLnh5ejsKI2VuZGlmCn1gLFUxPWAjZGVmaW5lIFNUQU5EQVJECiNpZmRlZiBQSFlTSUNBTAoJI2RlZmluZSBJT1IKCSNkZWZpbmUgU1BFQ1VMQVIKI2VuZGlmCnVuaWZvcm0gdmVjMyBkaWZmdXNlOwp1bmlmb3JtIHZlYzMgZW1pc3NpdmU7CnVuaWZvcm0gZmxvYXQgcm91Z2huZXNzOwp1bmlmb3JtIGZsb2F0IG1ldGFsbmVzczsKdW5pZm9ybSBmbG9hdCBvcGFjaXR5OwojaWZkZWYgSU9SCgl1bmlmb3JtIGZsb2F0IGlvcjsKI2VuZGlmCiNpZmRlZiBTUEVDVUxBUgoJdW5pZm9ybSBmbG9hdCBzcGVjdWxhckludGVuc2l0eTsKCXVuaWZvcm0gdmVjMyBzcGVjdWxhckNvbG9yOwoJI2lmZGVmIFVTRV9TUEVDVUxBUklOVEVOU0lUWU1BUAoJCXVuaWZvcm0gc2FtcGxlcjJEIHNwZWN1bGFySW50ZW5zaXR5TWFwOwoJI2VuZGlmCgkjaWZkZWYgVVNFX1NQRUNVTEFSQ09MT1JNQVAKCQl1bmlmb3JtIHNhbXBsZXIyRCBzcGVjdWxhckNvbG9yTWFwOwoJI2VuZGlmCiNlbmRpZgojaWZkZWYgVVNFX0NMRUFSQ09BVAoJdW5pZm9ybSBmbG9hdCBjbGVhcmNvYXQ7Cgl1bmlmb3JtIGZsb2F0IGNsZWFyY29hdFJvdWdobmVzczsKI2VuZGlmCiNpZmRlZiBVU0VfU0hFRU4KCXVuaWZvcm0gdmVjMyBzaGVlbkNvbG9yOwoJdW5pZm9ybSBmbG9hdCBzaGVlblJvdWdobmVzczsKCSNpZmRlZiBVU0VfU0hFRU5DT0xPUk1BUAoJCXVuaWZvcm0gc2FtcGxlcjJEIHNoZWVuQ29sb3JNYXA7CgkjZW5kaWYKCSNpZmRlZiBVU0VfU0hFRU5ST1VHSE5FU1NNQVAKCQl1bmlmb3JtIHNhbXBsZXIyRCBzaGVlblJvdWdobmVzc01hcDsKCSNlbmRpZgojZW5kaWYKdmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247CiNpbmNsdWRlIDxjb21tb24+CiNpbmNsdWRlIDxwYWNraW5nPgojaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPHV2Ml9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YWxwaGF0ZXN0X3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bGlnaHRtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGVtaXNzaXZlbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxic2Rmcz4KI2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD4KI2luY2x1ZGUgPGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGVudm1hcF9waHlzaWNhbF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxsaWdodHNfcGFyc19iZWdpbj4KI2luY2x1ZGUgPG5vcm1hbF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bGlnaHRzX3BoeXNpY2FsX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDx0cmFuc21pc3Npb25fcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YnVtcG1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjbGVhcmNvYXRfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPHJvdWdobmVzc21hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bWV0YWxuZXNzbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+CnZvaWQgbWFpbigpIHsKCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+Cgl2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTsKCVJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ID0gUmVmbGVjdGVkTGlnaHQoIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApICk7Cgl2ZWMzIHRvdGFsRW1pc3NpdmVSYWRpYW5jZSA9IGVtaXNzaXZlOwoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PgoJI2luY2x1ZGUgPG1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8cm91Z2huZXNzbWFwX2ZyYWdtZW50PgoJI2luY2x1ZGUgPG1ldGFsbmVzc21hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfYmVnaW4+CgkjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+CgkjaW5jbHVkZSA8Y2xlYXJjb2F0X25vcm1hbF9mcmFnbWVudF9iZWdpbj4KCSNpbmNsdWRlIDxjbGVhcmNvYXRfbm9ybWFsX2ZyYWdtZW50X21hcHM+CgkjaW5jbHVkZSA8ZW1pc3NpdmVtYXBfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8bGlnaHRzX3BoeXNpY2FsX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9iZWdpbj4KCSNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfbWFwcz4KCSNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfZW5kPgoJI2luY2x1ZGUgPGFvbWFwX2ZyYWdtZW50PgoJdmVjMyB0b3RhbERpZmZ1c2UgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlOwoJdmVjMyB0b3RhbFNwZWN1bGFyID0gcmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyOwoJI2luY2x1ZGUgPHRyYW5zbWlzc2lvbl9mcmFnbWVudD4KCXZlYzMgb3V0Z29pbmdMaWdodCA9IHRvdGFsRGlmZnVzZSArIHRvdGFsU3BlY3VsYXIgKyB0b3RhbEVtaXNzaXZlUmFkaWFuY2U7CgkjaWZkZWYgVVNFX1NIRUVOCgkJZmxvYXQgc2hlZW5FbmVyZ3lDb21wID0gMS4wIC0gMC4xNTcgKiBtYXgzKCBtYXRlcmlhbC5zaGVlbkNvbG9yICk7CgkJb3V0Z29pbmdMaWdodCA9IG91dGdvaW5nTGlnaHQgKiBzaGVlbkVuZXJneUNvbXAgKyBzaGVlblNwZWN1bGFyOwoJI2VuZGlmCgkjaWZkZWYgVVNFX0NMRUFSQ09BVAoJCWZsb2F0IGRvdE5WY2MgPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwsIGdlb21ldHJ5LnZpZXdEaXIgKSApOwoJCXZlYzMgRmNjID0gRl9TY2hsaWNrKCBtYXRlcmlhbC5jbGVhcmNvYXRGMCwgbWF0ZXJpYWwuY2xlYXJjb2F0RjkwLCBkb3ROVmNjICk7CgkJb3V0Z29pbmdMaWdodCA9IG91dGdvaW5nTGlnaHQgKiAoIDEuMCAtIG1hdGVyaWFsLmNsZWFyY29hdCAqIEZjYyApICsgY2xlYXJjb2F0U3BlY3VsYXIgKiBtYXRlcmlhbC5jbGVhcmNvYXQ7CgkjZW5kaWYKCSNpbmNsdWRlIDxvdXRwdXRfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGZvZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGRpdGhlcmluZ19mcmFnbWVudD4KfWAsQjE9YCNkZWZpbmUgVE9PTgp2YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjsKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PgojaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxub3JtYWxfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+CnZvaWQgbWFpbigpIHsKCSNpbmNsdWRlIDx1dl92ZXJ0ZXg+CgkjaW5jbHVkZSA8dXYyX3ZlcnRleD4KCSNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+CgkjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8bm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+CgkjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD4KCSNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PgoJI2luY2x1ZGUgPHByb2plY3RfdmVydGV4PgoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD4KCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PgoJdlZpZXdQb3NpdGlvbiA9IC0gbXZQb3NpdGlvbi54eXo7CgkjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PgoJI2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+CgkjaW5jbHVkZSA8Zm9nX3ZlcnRleD4KfWAsTzE9YCNkZWZpbmUgVE9PTgp1bmlmb3JtIHZlYzMgZGlmZnVzZTsKdW5pZm9ybSB2ZWMzIGVtaXNzaXZlOwp1bmlmb3JtIGZsb2F0IG9wYWNpdHk7CiNpbmNsdWRlIDxjb21tb24+CiNpbmNsdWRlIDxwYWNraW5nPgojaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPHV2Ml9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YWxwaGF0ZXN0X3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8bGlnaHRtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGVtaXNzaXZlbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxncmFkaWVudG1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxic2Rmcz4KI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPgojaW5jbHVkZSA8bm9ybWFsX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxsaWdodHNfdG9vbl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxidW1wbWFwX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD4KCXZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApOwoJUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTsKCXZlYzMgdG90YWxFbWlzc2l2ZVJhZGlhbmNlID0gZW1pc3NpdmU7CgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD4KCSNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfYmVnaW4+CgkjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+CgkjaW5jbHVkZSA8ZW1pc3NpdmVtYXBfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8bGlnaHRzX3Rvb25fZnJhZ21lbnQ+CgkjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2JlZ2luPgoJI2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9tYXBzPgoJI2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9lbmQ+CgkjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+Cgl2ZWMzIG91dGdvaW5nTGlnaHQgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICsgdG90YWxFbWlzc2l2ZVJhZGlhbmNlOwoJI2luY2x1ZGUgPG91dHB1dF9mcmFnbWVudD4KCSNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PgoJI2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50Pgp9YCxrMT1gdW5pZm9ybSBmbG9hdCBzaXplOwp1bmlmb3JtIGZsb2F0IHNjYWxlOwojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Pgp2b2lkIG1haW4oKSB7CgkjaW5jbHVkZSA8Y29sb3JfdmVydGV4PgoJI2luY2x1ZGUgPGJlZ2luX3ZlcnRleD4KCSNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+CgkjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+CglnbF9Qb2ludFNpemUgPSBzaXplOwoJI2lmZGVmIFVTRV9TSVpFQVRURU5VQVRJT04KCQlib29sIGlzUGVyc3BlY3RpdmUgPSBpc1BlcnNwZWN0aXZlTWF0cml4KCBwcm9qZWN0aW9uTWF0cml4ICk7CgkJaWYgKCBpc1BlcnNwZWN0aXZlICkgZ2xfUG9pbnRTaXplICo9ICggc2NhbGUgLyAtIG12UG9zaXRpb24ueiApOwoJI2VuZGlmCgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PgoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+CgkjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PgoJI2luY2x1ZGUgPGZvZ192ZXJ0ZXg+Cn1gLEgxPWB1bmlmb3JtIHZlYzMgZGlmZnVzZTsKdW5pZm9ybSBmbG9hdCBvcGFjaXR5OwojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPG1hcF9wYXJ0aWNsZV9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YWxwaGF0ZXN0X3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD4KCXZlYzMgb3V0Z29pbmdMaWdodCA9IHZlYzMoIDAuMCApOwoJdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7CgkjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8bWFwX3BhcnRpY2xlX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD4KCW91dGdvaW5nTGlnaHQgPSBkaWZmdXNlQ29sb3IucmdiOwoJI2luY2x1ZGUgPG91dHB1dF9mcmFnbWVudD4KCSNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD4KCSNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PgoJI2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+Cn1gLFYxPWAjaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+CiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX3ZlcnRleD4Kdm9pZCBtYWluKCkgewoJI2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD4KCSNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PgoJI2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PgoJI2luY2x1ZGUgPGJlZ2luX3ZlcnRleD4KCSNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+CgkjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PgoJI2luY2x1ZGUgPHByb2plY3RfdmVydGV4PgoJI2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD4KCSNpbmNsdWRlIDxzaGFkb3dtYXBfdmVydGV4PgoJI2luY2x1ZGUgPGZvZ192ZXJ0ZXg+Cn1gLEcxPWB1bmlmb3JtIHZlYzMgY29sb3I7CnVuaWZvcm0gZmxvYXQgb3BhY2l0eTsKI2luY2x1ZGUgPGNvbW1vbj4KI2luY2x1ZGUgPHBhY2tpbmc+CiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGJzZGZzPgojaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+CiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPHNoYWRvd21hc2tfcGFyc19mcmFnbWVudD4Kdm9pZCBtYWluKCkgewoJZ2xfRnJhZ0NvbG9yID0gdmVjNCggY29sb3IsIG9wYWNpdHkgKiAoIDEuMCAtIGdldFNoYWRvd01hc2soKSApICk7CgkjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGZvZ19mcmFnbWVudD4KfWAsVzE9YHVuaWZvcm0gZmxvYXQgcm90YXRpb247CnVuaWZvcm0gdmVjMiBjZW50ZXI7CiNpbmNsdWRlIDxjb21tb24+CiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD4KI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PgojaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Pgp2b2lkIG1haW4oKSB7CgkjaW5jbHVkZSA8dXZfdmVydGV4PgoJdmVjNCBtdlBvc2l0aW9uID0gbW9kZWxWaWV3TWF0cml4ICogdmVjNCggMC4wLCAwLjAsIDAuMCwgMS4wICk7Cgl2ZWMyIHNjYWxlOwoJc2NhbGUueCA9IGxlbmd0aCggdmVjMyggbW9kZWxNYXRyaXhbIDAgXS54LCBtb2RlbE1hdHJpeFsgMCBdLnksIG1vZGVsTWF0cml4WyAwIF0ueiApICk7CglzY2FsZS55ID0gbGVuZ3RoKCB2ZWMzKCBtb2RlbE1hdHJpeFsgMSBdLngsIG1vZGVsTWF0cml4WyAxIF0ueSwgbW9kZWxNYXRyaXhbIDEgXS56ICkgKTsKCSNpZm5kZWYgVVNFX1NJWkVBVFRFTlVBVElPTgoJCWJvb2wgaXNQZXJzcGVjdGl2ZSA9IGlzUGVyc3BlY3RpdmVNYXRyaXgoIHByb2plY3Rpb25NYXRyaXggKTsKCQlpZiAoIGlzUGVyc3BlY3RpdmUgKSBzY2FsZSAqPSAtIG12UG9zaXRpb24uejsKCSNlbmRpZgoJdmVjMiBhbGlnbmVkUG9zaXRpb24gPSAoIHBvc2l0aW9uLnh5IC0gKCBjZW50ZXIgLSB2ZWMyKCAwLjUgKSApICkgKiBzY2FsZTsKCXZlYzIgcm90YXRlZFBvc2l0aW9uOwoJcm90YXRlZFBvc2l0aW9uLnggPSBjb3MoIHJvdGF0aW9uICkgKiBhbGlnbmVkUG9zaXRpb24ueCAtIHNpbiggcm90YXRpb24gKSAqIGFsaWduZWRQb3NpdGlvbi55OwoJcm90YXRlZFBvc2l0aW9uLnkgPSBzaW4oIHJvdGF0aW9uICkgKiBhbGlnbmVkUG9zaXRpb24ueCArIGNvcyggcm90YXRpb24gKSAqIGFsaWduZWRQb3NpdGlvbi55OwoJbXZQb3NpdGlvbi54eSArPSByb3RhdGVkUG9zaXRpb247CglnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtdlBvc2l0aW9uOwoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD4KCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PgoJI2luY2x1ZGUgPGZvZ192ZXJ0ZXg+Cn1gLHExPWB1bmlmb3JtIHZlYzMgZGlmZnVzZTsKdW5pZm9ybSBmbG9hdCBvcGFjaXR5OwojaW5jbHVkZSA8Y29tbW9uPgojaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD4KI2luY2x1ZGUgPGFscGhhdGVzdF9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+CiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PgojaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+CnZvaWQgbWFpbigpIHsKCSNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+Cgl2ZWMzIG91dGdvaW5nTGlnaHQgPSB2ZWMzKCAwLjAgKTsKCXZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApOwoJI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PgoJI2luY2x1ZGUgPG1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD4KCSNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+CglvdXRnb2luZ0xpZ2h0ID0gZGlmZnVzZUNvbG9yLnJnYjsKCSNpbmNsdWRlIDxvdXRwdXRfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+CgkjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PgoJI2luY2x1ZGUgPGZvZ19mcmFnbWVudD4KfWAsUHQ9e2FscGhhbWFwX2ZyYWdtZW50Ol9NLGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ6d00sYWxwaGF0ZXN0X2ZyYWdtZW50Ok1NLGFscGhhdGVzdF9wYXJzX2ZyYWdtZW50OmJNLGFvbWFwX2ZyYWdtZW50OlNNLGFvbWFwX3BhcnNfZnJhZ21lbnQ6RU0sYmVnaW5fdmVydGV4OlRNLGJlZ2lubm9ybWFsX3ZlcnRleDpBTSxic2RmczpDTSxidW1wbWFwX3BhcnNfZnJhZ21lbnQ6Uk0sY2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50OkxNLGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50OlBNLGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleDpETSxjbGlwcGluZ19wbGFuZXNfdmVydGV4OklNLGNvbG9yX2ZyYWdtZW50Ok5NLGNvbG9yX3BhcnNfZnJhZ21lbnQ6Rk0sY29sb3JfcGFyc192ZXJ0ZXg6ek0sY29sb3JfdmVydGV4OlVNLGNvbW1vbjpCTSxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ6T00sZGVmYXVsdG5vcm1hbF92ZXJ0ZXg6a00sZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4OkhNLGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg6Vk0sZW1pc3NpdmVtYXBfZnJhZ21lbnQ6R00sZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudDpXTSxlbmNvZGluZ3NfZnJhZ21lbnQ6cU0sZW5jb2RpbmdzX3BhcnNfZnJhZ21lbnQ6WE0sZW52bWFwX2ZyYWdtZW50OllNLGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudDpaTSxlbnZtYXBfcGFyc19mcmFnbWVudDpKTSxlbnZtYXBfcGFyc192ZXJ0ZXg6JE0sZW52bWFwX3BoeXNpY2FsX3BhcnNfZnJhZ21lbnQ6YWIsZW52bWFwX3ZlcnRleDpLTSxmb2dfdmVydGV4OlFNLGZvZ19wYXJzX3ZlcnRleDpqTSxmb2dfZnJhZ21lbnQ6dGIsZm9nX3BhcnNfZnJhZ21lbnQ6ZWIsZ3JhZGllbnRtYXBfcGFyc19mcmFnbWVudDpuYixsaWdodG1hcF9mcmFnbWVudDppYixsaWdodG1hcF9wYXJzX2ZyYWdtZW50OnJiLGxpZ2h0c19sYW1iZXJ0X3ZlcnRleDpzYixsaWdodHNfcGFyc19iZWdpbjpvYixsaWdodHNfdG9vbl9mcmFnbWVudDpsYixsaWdodHNfdG9vbl9wYXJzX2ZyYWdtZW50OmNiLGxpZ2h0c19waG9uZ19mcmFnbWVudDp1YixsaWdodHNfcGhvbmdfcGFyc19mcmFnbWVudDpoYixsaWdodHNfcGh5c2ljYWxfZnJhZ21lbnQ6ZmIsbGlnaHRzX3BoeXNpY2FsX3BhcnNfZnJhZ21lbnQ6ZGIsbGlnaHRzX2ZyYWdtZW50X2JlZ2luOnBiLGxpZ2h0c19mcmFnbWVudF9tYXBzOm1iLGxpZ2h0c19mcmFnbWVudF9lbmQ6Z2IsbG9nZGVwdGhidWZfZnJhZ21lbnQ6eGIsbG9nZGVwdGhidWZfcGFyc19mcmFnbWVudDp5Yixsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleDp2Yixsb2dkZXB0aGJ1Zl92ZXJ0ZXg6X2IsbWFwX2ZyYWdtZW50OndiLG1hcF9wYXJzX2ZyYWdtZW50Ok1iLG1hcF9wYXJ0aWNsZV9mcmFnbWVudDpiYixtYXBfcGFydGljbGVfcGFyc19mcmFnbWVudDpTYixtZXRhbG5lc3NtYXBfZnJhZ21lbnQ6RWIsbWV0YWxuZXNzbWFwX3BhcnNfZnJhZ21lbnQ6VGIsbW9ycGhub3JtYWxfdmVydGV4OkFiLG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4OkNiLG1vcnBodGFyZ2V0X3ZlcnRleDpSYixub3JtYWxfZnJhZ21lbnRfYmVnaW46TGIsbm9ybWFsX2ZyYWdtZW50X21hcHM6UGIsbm9ybWFsX3BhcnNfZnJhZ21lbnQ6RGIsbm9ybWFsX3BhcnNfdmVydGV4OkliLG5vcm1hbF92ZXJ0ZXg6TmIsbm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQ6RmIsY2xlYXJjb2F0X25vcm1hbF9mcmFnbWVudF9iZWdpbjp6YixjbGVhcmNvYXRfbm9ybWFsX2ZyYWdtZW50X21hcHM6VWIsY2xlYXJjb2F0X3BhcnNfZnJhZ21lbnQ6QmIsb3V0cHV0X2ZyYWdtZW50Ok9iLHBhY2tpbmc6a2IscHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudDpIYixwcm9qZWN0X3ZlcnRleDpWYixkaXRoZXJpbmdfZnJhZ21lbnQ6R2IsZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ6V2Iscm91Z2huZXNzbWFwX2ZyYWdtZW50OnFiLHJvdWdobmVzc21hcF9wYXJzX2ZyYWdtZW50OlhiLHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50OlliLHNoYWRvd21hcF9wYXJzX3ZlcnRleDpaYixzaGFkb3dtYXBfdmVydGV4OkpiLHNoYWRvd21hc2tfcGFyc19mcmFnbWVudDokYixza2luYmFzZV92ZXJ0ZXg6S2Isc2tpbm5pbmdfcGFyc192ZXJ0ZXg6UWIsc2tpbm5pbmdfdmVydGV4OmpiLHNraW5ub3JtYWxfdmVydGV4OnQxLHNwZWN1bGFybWFwX2ZyYWdtZW50OmUxLHNwZWN1bGFybWFwX3BhcnNfZnJhZ21lbnQ6bjEsdG9uZW1hcHBpbmdfZnJhZ21lbnQ6aTEsdG9uZW1hcHBpbmdfcGFyc19mcmFnbWVudDpyMSx0cmFuc21pc3Npb25fZnJhZ21lbnQ6czEsdHJhbnNtaXNzaW9uX3BhcnNfZnJhZ21lbnQ6bzEsdXZfcGFyc19mcmFnbWVudDphMSx1dl9wYXJzX3ZlcnRleDpsMSx1dl92ZXJ0ZXg6YzEsdXYyX3BhcnNfZnJhZ21lbnQ6dTEsdXYyX3BhcnNfdmVydGV4OmgxLHV2Ml92ZXJ0ZXg6ZjEsd29ybGRwb3NfdmVydGV4OmQxLGJhY2tncm91bmRfdmVydDpwMSxiYWNrZ3JvdW5kX2ZyYWc6bTEsY3ViZV92ZXJ0OmcxLGN1YmVfZnJhZzp4MSxkZXB0aF92ZXJ0OnkxLGRlcHRoX2ZyYWc6djEsZGlzdGFuY2VSR0JBX3ZlcnQ6XzEsZGlzdGFuY2VSR0JBX2ZyYWc6dzEsZXF1aXJlY3RfdmVydDpNMSxlcXVpcmVjdF9mcmFnOmIxLGxpbmVkYXNoZWRfdmVydDpTMSxsaW5lZGFzaGVkX2ZyYWc6RTEsbWVzaGJhc2ljX3ZlcnQ6VDEsbWVzaGJhc2ljX2ZyYWc6QTEsbWVzaGxhbWJlcnRfdmVydDpDMSxtZXNobGFtYmVydF9mcmFnOlIxLG1lc2htYXRjYXBfdmVydDpMMSxtZXNobWF0Y2FwX2ZyYWc6UDEsbWVzaG5vcm1hbF92ZXJ0OkQxLG1lc2hub3JtYWxfZnJhZzpJMSxtZXNocGhvbmdfdmVydDpOMSxtZXNocGhvbmdfZnJhZzpGMSxtZXNocGh5c2ljYWxfdmVydDp6MSxtZXNocGh5c2ljYWxfZnJhZzpVMSxtZXNodG9vbl92ZXJ0OkIxLG1lc2h0b29uX2ZyYWc6TzEscG9pbnRzX3ZlcnQ6azEscG9pbnRzX2ZyYWc6SDEsc2hhZG93X3ZlcnQ6VjEsc2hhZG93X2ZyYWc6RzEsc3ByaXRlX3ZlcnQ6VzEsc3ByaXRlX2ZyYWc6cTF9LG90PXtjb21tb246e2RpZmZ1c2U6e3ZhbHVlOm5ldyBmdCgxNjc3NzIxNSl9LG9wYWNpdHk6e3ZhbHVlOjF9LG1hcDp7dmFsdWU6bnVsbH0sdXZUcmFuc2Zvcm06e3ZhbHVlOm5ldyBkZX0sdXYyVHJhbnNmb3JtOnt2YWx1ZTpuZXcgZGV9LGFscGhhTWFwOnt2YWx1ZTpudWxsfSxhbHBoYVRlc3Q6e3ZhbHVlOjB9fSxzcGVjdWxhcm1hcDp7c3BlY3VsYXJNYXA6e3ZhbHVlOm51bGx9fSxlbnZtYXA6e2Vudk1hcDp7dmFsdWU6bnVsbH0sZmxpcEVudk1hcDp7dmFsdWU6LTF9LHJlZmxlY3Rpdml0eTp7dmFsdWU6MX0saW9yOnt2YWx1ZToxLjV9LHJlZnJhY3Rpb25SYXRpbzp7dmFsdWU6Ljk4fX0sYW9tYXA6e2FvTWFwOnt2YWx1ZTpudWxsfSxhb01hcEludGVuc2l0eTp7dmFsdWU6MX19LGxpZ2h0bWFwOntsaWdodE1hcDp7dmFsdWU6bnVsbH0sbGlnaHRNYXBJbnRlbnNpdHk6e3ZhbHVlOjF9fSxlbWlzc2l2ZW1hcDp7ZW1pc3NpdmVNYXA6e3ZhbHVlOm51bGx9fSxidW1wbWFwOntidW1wTWFwOnt2YWx1ZTpudWxsfSxidW1wU2NhbGU6e3ZhbHVlOjF9fSxub3JtYWxtYXA6e25vcm1hbE1hcDp7dmFsdWU6bnVsbH0sbm9ybWFsU2NhbGU6e3ZhbHVlOm5ldyBLKDEsMSl9fSxkaXNwbGFjZW1lbnRtYXA6e2Rpc3BsYWNlbWVudE1hcDp7dmFsdWU6bnVsbH0sZGlzcGxhY2VtZW50U2NhbGU6e3ZhbHVlOjF9LGRpc3BsYWNlbWVudEJpYXM6e3ZhbHVlOjB9fSxyb3VnaG5lc3NtYXA6e3JvdWdobmVzc01hcDp7dmFsdWU6bnVsbH19LG1ldGFsbmVzc21hcDp7bWV0YWxuZXNzTWFwOnt2YWx1ZTpudWxsfX0sZ3JhZGllbnRtYXA6e2dyYWRpZW50TWFwOnt2YWx1ZTpudWxsfX0sZm9nOntmb2dEZW5zaXR5Ont2YWx1ZToyNWUtNX0sZm9nTmVhcjp7dmFsdWU6MX0sZm9nRmFyOnt2YWx1ZToyZTN9LGZvZ0NvbG9yOnt2YWx1ZTpuZXcgZnQoMTY3NzcyMTUpfX0sbGlnaHRzOnthbWJpZW50TGlnaHRDb2xvcjp7dmFsdWU6W119LGxpZ2h0UHJvYmU6e3ZhbHVlOltdfSxkaXJlY3Rpb25hbExpZ2h0czp7dmFsdWU6W10scHJvcGVydGllczp7ZGlyZWN0aW9uOnt9LGNvbG9yOnt9fX0sZGlyZWN0aW9uYWxMaWdodFNoYWRvd3M6e3ZhbHVlOltdLHByb3BlcnRpZXM6e3NoYWRvd0JpYXM6e30sc2hhZG93Tm9ybWFsQmlhczp7fSxzaGFkb3dSYWRpdXM6e30sc2hhZG93TWFwU2l6ZTp7fX19LGRpcmVjdGlvbmFsU2hhZG93TWFwOnt2YWx1ZTpbXX0sZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXg6e3ZhbHVlOltdfSxzcG90TGlnaHRzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntjb2xvcjp7fSxwb3NpdGlvbjp7fSxkaXJlY3Rpb246e30sZGlzdGFuY2U6e30sY29uZUNvczp7fSxwZW51bWJyYUNvczp7fSxkZWNheTp7fX19LHNwb3RMaWdodFNoYWRvd3M6e3ZhbHVlOltdLHByb3BlcnRpZXM6e3NoYWRvd0JpYXM6e30sc2hhZG93Tm9ybWFsQmlhczp7fSxzaGFkb3dSYWRpdXM6e30sc2hhZG93TWFwU2l6ZTp7fX19LHNwb3RTaGFkb3dNYXA6e3ZhbHVlOltdfSxzcG90U2hhZG93TWF0cml4Ont2YWx1ZTpbXX0scG9pbnRMaWdodHM6e3ZhbHVlOltdLHByb3BlcnRpZXM6e2NvbG9yOnt9LHBvc2l0aW9uOnt9LGRlY2F5Ont9LGRpc3RhbmNlOnt9fX0scG9pbnRMaWdodFNoYWRvd3M6e3ZhbHVlOltdLHByb3BlcnRpZXM6e3NoYWRvd0JpYXM6e30sc2hhZG93Tm9ybWFsQmlhczp7fSxzaGFkb3dSYWRpdXM6e30sc2hhZG93TWFwU2l6ZTp7fSxzaGFkb3dDYW1lcmFOZWFyOnt9LHNoYWRvd0NhbWVyYUZhcjp7fX19LHBvaW50U2hhZG93TWFwOnt2YWx1ZTpbXX0scG9pbnRTaGFkb3dNYXRyaXg6e3ZhbHVlOltdfSxoZW1pc3BoZXJlTGlnaHRzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntkaXJlY3Rpb246e30sc2t5Q29sb3I6e30sZ3JvdW5kQ29sb3I6e319fSxyZWN0QXJlYUxpZ2h0czp7dmFsdWU6W10scHJvcGVydGllczp7Y29sb3I6e30scG9zaXRpb246e30sd2lkdGg6e30saGVpZ2h0Ont9fX0sbHRjXzE6e3ZhbHVlOm51bGx9LGx0Y18yOnt2YWx1ZTpudWxsfX0scG9pbnRzOntkaWZmdXNlOnt2YWx1ZTpuZXcgZnQoMTY3NzcyMTUpfSxvcGFjaXR5Ont2YWx1ZToxfSxzaXplOnt2YWx1ZToxfSxzY2FsZTp7dmFsdWU6MX0sbWFwOnt2YWx1ZTpudWxsfSxhbHBoYU1hcDp7dmFsdWU6bnVsbH0sYWxwaGFUZXN0Ont2YWx1ZTowfSx1dlRyYW5zZm9ybTp7dmFsdWU6bmV3IGRlfX0sc3ByaXRlOntkaWZmdXNlOnt2YWx1ZTpuZXcgZnQoMTY3NzcyMTUpfSxvcGFjaXR5Ont2YWx1ZToxfSxjZW50ZXI6e3ZhbHVlOm5ldyBLKC41LC41KX0scm90YXRpb246e3ZhbHVlOjB9LG1hcDp7dmFsdWU6bnVsbH0sYWxwaGFNYXA6e3ZhbHVlOm51bGx9LGFscGhhVGVzdDp7dmFsdWU6MH0sdXZUcmFuc2Zvcm06e3ZhbHVlOm5ldyBkZX19fSxmbj17YmFzaWM6e3VuaWZvcm1zOk1lKFtvdC5jb21tb24sb3Quc3BlY3VsYXJtYXAsb3QuZW52bWFwLG90LmFvbWFwLG90LmxpZ2h0bWFwLG90LmZvZ10pLHZlcnRleFNoYWRlcjpQdC5tZXNoYmFzaWNfdmVydCxmcmFnbWVudFNoYWRlcjpQdC5tZXNoYmFzaWNfZnJhZ30sbGFtYmVydDp7dW5pZm9ybXM6TWUoW290LmNvbW1vbixvdC5zcGVjdWxhcm1hcCxvdC5lbnZtYXAsb3QuYW9tYXAsb3QubGlnaHRtYXAsb3QuZW1pc3NpdmVtYXAsb3QuZm9nLG90LmxpZ2h0cyx7ZW1pc3NpdmU6e3ZhbHVlOm5ldyBmdCgwKX19XSksdmVydGV4U2hhZGVyOlB0Lm1lc2hsYW1iZXJ0X3ZlcnQsZnJhZ21lbnRTaGFkZXI6UHQubWVzaGxhbWJlcnRfZnJhZ30scGhvbmc6e3VuaWZvcm1zOk1lKFtvdC5jb21tb24sb3Quc3BlY3VsYXJtYXAsb3QuZW52bWFwLG90LmFvbWFwLG90LmxpZ2h0bWFwLG90LmVtaXNzaXZlbWFwLG90LmJ1bXBtYXAsb3Qubm9ybWFsbWFwLG90LmRpc3BsYWNlbWVudG1hcCxvdC5mb2csb3QubGlnaHRzLHtlbWlzc2l2ZTp7dmFsdWU6bmV3IGZ0KDApfSxzcGVjdWxhcjp7dmFsdWU6bmV3IGZ0KDExMTg0ODEpfSxzaGluaW5lc3M6e3ZhbHVlOjMwfX1dKSx2ZXJ0ZXhTaGFkZXI6UHQubWVzaHBob25nX3ZlcnQsZnJhZ21lbnRTaGFkZXI6UHQubWVzaHBob25nX2ZyYWd9LHN0YW5kYXJkOnt1bmlmb3JtczpNZShbb3QuY29tbW9uLG90LmVudm1hcCxvdC5hb21hcCxvdC5saWdodG1hcCxvdC5lbWlzc2l2ZW1hcCxvdC5idW1wbWFwLG90Lm5vcm1hbG1hcCxvdC5kaXNwbGFjZW1lbnRtYXAsb3Qucm91Z2huZXNzbWFwLG90Lm1ldGFsbmVzc21hcCxvdC5mb2csb3QubGlnaHRzLHtlbWlzc2l2ZTp7dmFsdWU6bmV3IGZ0KDApfSxyb3VnaG5lc3M6e3ZhbHVlOjF9LG1ldGFsbmVzczp7dmFsdWU6MH0sZW52TWFwSW50ZW5zaXR5Ont2YWx1ZToxfX1dKSx2ZXJ0ZXhTaGFkZXI6UHQubWVzaHBoeXNpY2FsX3ZlcnQsZnJhZ21lbnRTaGFkZXI6UHQubWVzaHBoeXNpY2FsX2ZyYWd9LHRvb246e3VuaWZvcm1zOk1lKFtvdC5jb21tb24sb3QuYW9tYXAsb3QubGlnaHRtYXAsb3QuZW1pc3NpdmVtYXAsb3QuYnVtcG1hcCxvdC5ub3JtYWxtYXAsb3QuZGlzcGxhY2VtZW50bWFwLG90LmdyYWRpZW50bWFwLG90LmZvZyxvdC5saWdodHMse2VtaXNzaXZlOnt2YWx1ZTpuZXcgZnQoMCl9fV0pLHZlcnRleFNoYWRlcjpQdC5tZXNodG9vbl92ZXJ0LGZyYWdtZW50U2hhZGVyOlB0Lm1lc2h0b29uX2ZyYWd9LG1hdGNhcDp7dW5pZm9ybXM6TWUoW290LmNvbW1vbixvdC5idW1wbWFwLG90Lm5vcm1hbG1hcCxvdC5kaXNwbGFjZW1lbnRtYXAsb3QuZm9nLHttYXRjYXA6e3ZhbHVlOm51bGx9fV0pLHZlcnRleFNoYWRlcjpQdC5tZXNobWF0Y2FwX3ZlcnQsZnJhZ21lbnRTaGFkZXI6UHQubWVzaG1hdGNhcF9mcmFnfSxwb2ludHM6e3VuaWZvcm1zOk1lKFtvdC5wb2ludHMsb3QuZm9nXSksdmVydGV4U2hhZGVyOlB0LnBvaW50c192ZXJ0LGZyYWdtZW50U2hhZGVyOlB0LnBvaW50c19mcmFnfSxkYXNoZWQ6e3VuaWZvcm1zOk1lKFtvdC5jb21tb24sb3QuZm9nLHtzY2FsZTp7dmFsdWU6MX0sZGFzaFNpemU6e3ZhbHVlOjF9LHRvdGFsU2l6ZTp7dmFsdWU6Mn19XSksdmVydGV4U2hhZGVyOlB0LmxpbmVkYXNoZWRfdmVydCxmcmFnbWVudFNoYWRlcjpQdC5saW5lZGFzaGVkX2ZyYWd9LGRlcHRoOnt1bmlmb3JtczpNZShbb3QuY29tbW9uLG90LmRpc3BsYWNlbWVudG1hcF0pLHZlcnRleFNoYWRlcjpQdC5kZXB0aF92ZXJ0LGZyYWdtZW50U2hhZGVyOlB0LmRlcHRoX2ZyYWd9LG5vcm1hbDp7dW5pZm9ybXM6TWUoW290LmNvbW1vbixvdC5idW1wbWFwLG90Lm5vcm1hbG1hcCxvdC5kaXNwbGFjZW1lbnRtYXAse29wYWNpdHk6e3ZhbHVlOjF9fV0pLHZlcnRleFNoYWRlcjpQdC5tZXNobm9ybWFsX3ZlcnQsZnJhZ21lbnRTaGFkZXI6UHQubWVzaG5vcm1hbF9mcmFnfSxzcHJpdGU6e3VuaWZvcm1zOk1lKFtvdC5zcHJpdGUsb3QuZm9nXSksdmVydGV4U2hhZGVyOlB0LnNwcml0ZV92ZXJ0LGZyYWdtZW50U2hhZGVyOlB0LnNwcml0ZV9mcmFnfSxiYWNrZ3JvdW5kOnt1bmlmb3Jtczp7dXZUcmFuc2Zvcm06e3ZhbHVlOm5ldyBkZX0sdDJEOnt2YWx1ZTpudWxsfX0sdmVydGV4U2hhZGVyOlB0LmJhY2tncm91bmRfdmVydCxmcmFnbWVudFNoYWRlcjpQdC5iYWNrZ3JvdW5kX2ZyYWd9LGN1YmU6e3VuaWZvcm1zOk1lKFtvdC5lbnZtYXAse29wYWNpdHk6e3ZhbHVlOjF9fV0pLHZlcnRleFNoYWRlcjpQdC5jdWJlX3ZlcnQsZnJhZ21lbnRTaGFkZXI6UHQuY3ViZV9mcmFnfSxlcXVpcmVjdDp7dW5pZm9ybXM6e3RFcXVpcmVjdDp7dmFsdWU6bnVsbH19LHZlcnRleFNoYWRlcjpQdC5lcXVpcmVjdF92ZXJ0LGZyYWdtZW50U2hhZGVyOlB0LmVxdWlyZWN0X2ZyYWd9LGRpc3RhbmNlUkdCQTp7dW5pZm9ybXM6TWUoW290LmNvbW1vbixvdC5kaXNwbGFjZW1lbnRtYXAse3JlZmVyZW5jZVBvc2l0aW9uOnt2YWx1ZTpuZXcgVH0sbmVhckRpc3RhbmNlOnt2YWx1ZToxfSxmYXJEaXN0YW5jZTp7dmFsdWU6MWUzfX1dKSx2ZXJ0ZXhTaGFkZXI6UHQuZGlzdGFuY2VSR0JBX3ZlcnQsZnJhZ21lbnRTaGFkZXI6UHQuZGlzdGFuY2VSR0JBX2ZyYWd9LHNoYWRvdzp7dW5pZm9ybXM6TWUoW290LmxpZ2h0cyxvdC5mb2cse2NvbG9yOnt2YWx1ZTpuZXcgZnQoMCl9LG9wYWNpdHk6e3ZhbHVlOjF9fV0pLHZlcnRleFNoYWRlcjpQdC5zaGFkb3dfdmVydCxmcmFnbWVudFNoYWRlcjpQdC5zaGFkb3dfZnJhZ319O2ZuLnBoeXNpY2FsPXt1bmlmb3JtczpNZShbZm4uc3RhbmRhcmQudW5pZm9ybXMse2NsZWFyY29hdDp7dmFsdWU6MH0sY2xlYXJjb2F0TWFwOnt2YWx1ZTpudWxsfSxjbGVhcmNvYXRSb3VnaG5lc3M6e3ZhbHVlOjB9LGNsZWFyY29hdFJvdWdobmVzc01hcDp7dmFsdWU6bnVsbH0sY2xlYXJjb2F0Tm9ybWFsU2NhbGU6e3ZhbHVlOm5ldyBLKDEsMSl9LGNsZWFyY29hdE5vcm1hbE1hcDp7dmFsdWU6bnVsbH0sc2hlZW46e3ZhbHVlOjB9LHNoZWVuQ29sb3I6e3ZhbHVlOm5ldyBmdCgwKX0sc2hlZW5Db2xvck1hcDp7dmFsdWU6bnVsbH0sc2hlZW5Sb3VnaG5lc3M6e3ZhbHVlOjF9LHNoZWVuUm91Z2huZXNzTWFwOnt2YWx1ZTpudWxsfSx0cmFuc21pc3Npb246e3ZhbHVlOjB9LHRyYW5zbWlzc2lvbk1hcDp7dmFsdWU6bnVsbH0sdHJhbnNtaXNzaW9uU2FtcGxlclNpemU6e3ZhbHVlOm5ldyBLfSx0cmFuc21pc3Npb25TYW1wbGVyTWFwOnt2YWx1ZTpudWxsfSx0aGlja25lc3M6e3ZhbHVlOjB9LHRoaWNrbmVzc01hcDp7dmFsdWU6bnVsbH0sYXR0ZW51YXRpb25EaXN0YW5jZTp7dmFsdWU6MH0sYXR0ZW51YXRpb25Db2xvcjp7dmFsdWU6bmV3IGZ0KDApfSxzcGVjdWxhckludGVuc2l0eTp7dmFsdWU6MX0sc3BlY3VsYXJJbnRlbnNpdHlNYXA6e3ZhbHVlOm51bGx9LHNwZWN1bGFyQ29sb3I6e3ZhbHVlOm5ldyBmdCgxLDEsMSl9LHNwZWN1bGFyQ29sb3JNYXA6e3ZhbHVlOm51bGx9fV0pLHZlcnRleFNoYWRlcjpQdC5tZXNocGh5c2ljYWxfdmVydCxmcmFnbWVudFNoYWRlcjpQdC5tZXNocGh5c2ljYWxfZnJhZ307ZnVuY3Rpb24gWDEobix0LGUsaSxyLHMpe2xldCBvPW5ldyBmdCgwKSxhPXI9PT0hMD8wOjEsbCxjLHU9bnVsbCxoPTAsZj1udWxsO2Z1bmN0aW9uIGQoeCx2KXtsZXQgbT0hMSxwPXYuaXNTY2VuZT09PSEwP3YuYmFja2dyb3VuZDpudWxsO3AmJnAuaXNUZXh0dXJlJiYocD10LmdldChwKSk7bGV0IGI9bi54cixfPWIuZ2V0U2Vzc2lvbiYmYi5nZXRTZXNzaW9uKCk7XyYmXy5lbnZpcm9ubWVudEJsZW5kTW9kZT09PSJhZGRpdGl2ZSImJihwPW51bGwpLHA9PT1udWxsP2cobyxhKTpwJiZwLmlzQ29sb3ImJihnKHAsMSksbT0hMCksKG4uYXV0b0NsZWFyfHxtKSYmbi5jbGVhcihuLmF1dG9DbGVhckNvbG9yLG4uYXV0b0NsZWFyRGVwdGgsbi5hdXRvQ2xlYXJTdGVuY2lsKSxwJiYocC5pc0N1YmVUZXh0dXJlfHxwLm1hcHBpbmc9PT1SbCk/KGM9PT12b2lkIDAmJihjPW5ldyBvZShuZXcgSGkoMSwxLDEpLG5ldyBGbih7bmFtZToiQmFja2dyb3VuZEN1YmVNYXRlcmlhbCIsdW5pZm9ybXM6R3IoZm4uY3ViZS51bmlmb3JtcyksdmVydGV4U2hhZGVyOmZuLmN1YmUudmVydGV4U2hhZGVyLGZyYWdtZW50U2hhZGVyOmZuLmN1YmUuZnJhZ21lbnRTaGFkZXIsc2lkZTpoZSxkZXB0aFRlc3Q6ITEsZGVwdGhXcml0ZTohMSxmb2c6ITF9KSksYy5nZW9tZXRyeS5kZWxldGVBdHRyaWJ1dGUoIm5vcm1hbCIpLGMuZ2VvbWV0cnkuZGVsZXRlQXR0cmlidXRlKCJ1diIpLGMub25CZWZvcmVSZW5kZXI9ZnVuY3Rpb24oUyxMLEEpe3RoaXMubWF0cml4V29ybGQuY29weVBvc2l0aW9uKEEubWF0cml4V29ybGQpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYy5tYXRlcmlhbCwiZW52TWFwIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW5pZm9ybXMuZW52TWFwLnZhbHVlfX0pLGkudXBkYXRlKGMpKSxjLm1hdGVyaWFsLnVuaWZvcm1zLmVudk1hcC52YWx1ZT1wLGMubWF0ZXJpYWwudW5pZm9ybXMuZmxpcEVudk1hcC52YWx1ZT1wLmlzQ3ViZVRleHR1cmUmJnAuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPT09ITE/LTE6MSwodSE9PXB8fGghPT1wLnZlcnNpb258fGYhPT1uLnRvbmVNYXBwaW5nKSYmKGMubWF0ZXJpYWwubmVlZHNVcGRhdGU9ITAsdT1wLGg9cC52ZXJzaW9uLGY9bi50b25lTWFwcGluZykseC51bnNoaWZ0KGMsYy5nZW9tZXRyeSxjLm1hdGVyaWFsLDAsMCxudWxsKSk6cCYmcC5pc1RleHR1cmUmJihsPT09dm9pZCAwJiYobD1uZXcgb2UobmV3IGxvKDIsMiksbmV3IEZuKHtuYW1lOiJCYWNrZ3JvdW5kTWF0ZXJpYWwiLHVuaWZvcm1zOkdyKGZuLmJhY2tncm91bmQudW5pZm9ybXMpLHZlcnRleFNoYWRlcjpmbi5iYWNrZ3JvdW5kLnZlcnRleFNoYWRlcixmcmFnbWVudFNoYWRlcjpmbi5iYWNrZ3JvdW5kLmZyYWdtZW50U2hhZGVyLHNpZGU6ZW8sZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITEsZm9nOiExfSkpLGwuZ2VvbWV0cnkuZGVsZXRlQXR0cmlidXRlKCJub3JtYWwiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobC5tYXRlcmlhbCwibWFwIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW5pZm9ybXMudDJELnZhbHVlfX0pLGkudXBkYXRlKGwpKSxsLm1hdGVyaWFsLnVuaWZvcm1zLnQyRC52YWx1ZT1wLHAubWF0cml4QXV0b1VwZGF0ZT09PSEwJiZwLnVwZGF0ZU1hdHJpeCgpLGwubWF0ZXJpYWwudW5pZm9ybXMudXZUcmFuc2Zvcm0udmFsdWUuY29weShwLm1hdHJpeCksKHUhPT1wfHxoIT09cC52ZXJzaW9ufHxmIT09bi50b25lTWFwcGluZykmJihsLm1hdGVyaWFsLm5lZWRzVXBkYXRlPSEwLHU9cCxoPXAudmVyc2lvbixmPW4udG9uZU1hcHBpbmcpLHgudW5zaGlmdChsLGwuZ2VvbWV0cnksbC5tYXRlcmlhbCwwLDAsbnVsbCkpfWZ1bmN0aW9uIGcoeCx2KXtlLmJ1ZmZlcnMuY29sb3Iuc2V0Q2xlYXIoeC5yLHguZyx4LmIsdixzKX1yZXR1cm57Z2V0Q2xlYXJDb2xvcjpmdW5jdGlvbigpe3JldHVybiBvfSxzZXRDbGVhckNvbG9yOmZ1bmN0aW9uKHgsdj0xKXtvLnNldCh4KSxhPXYsZyhvLGEpfSxnZXRDbGVhckFscGhhOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LHNldENsZWFyQWxwaGE6ZnVuY3Rpb24oeCl7YT14LGcobyxhKX0scmVuZGVyOmR9fWZ1bmN0aW9uIFkxKG4sdCxlLGkpe2xldCByPW4uZ2V0UGFyYW1ldGVyKDM0OTIxKSxzPWkuaXNXZWJHTDI/bnVsbDp0LmdldCgiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSxvPWkuaXNXZWJHTDJ8fHMhPT1udWxsLGE9e30sbD14KG51bGwpLGM9bDtmdW5jdGlvbiB1KEQsRix6LE4sVil7bGV0IFE9ITE7aWYobyl7bGV0IGF0PWcoTix6LEYpO2MhPT1hdCYmKGM9YXQsZihjLm9iamVjdCkpLFE9dihOLFYpLFEmJm0oTixWKX1lbHNle2xldCBhdD1GLndpcmVmcmFtZT09PSEwOyhjLmdlb21ldHJ5IT09Ti5pZHx8Yy5wcm9ncmFtIT09ei5pZHx8Yy53aXJlZnJhbWUhPT1hdCkmJihjLmdlb21ldHJ5PU4uaWQsYy5wcm9ncmFtPXouaWQsYy53aXJlZnJhbWU9YXQsUT0hMCl9RC5pc0luc3RhbmNlZE1lc2g9PT0hMCYmKFE9ITApLFYhPT1udWxsJiZlLnVwZGF0ZShWLDM0OTYzKSxRJiYoQShELEYseixOKSxWIT09bnVsbCYmbi5iaW5kQnVmZmVyKDM0OTYzLGUuZ2V0KFYpLmJ1ZmZlcikpfWZ1bmN0aW9uIGgoKXtyZXR1cm4gaS5pc1dlYkdMMj9uLmNyZWF0ZVZlcnRleEFycmF5KCk6cy5jcmVhdGVWZXJ0ZXhBcnJheU9FUygpfWZ1bmN0aW9uIGYoRCl7cmV0dXJuIGkuaXNXZWJHTDI/bi5iaW5kVmVydGV4QXJyYXkoRCk6cy5iaW5kVmVydGV4QXJyYXlPRVMoRCl9ZnVuY3Rpb24gZChEKXtyZXR1cm4gaS5pc1dlYkdMMj9uLmRlbGV0ZVZlcnRleEFycmF5KEQpOnMuZGVsZXRlVmVydGV4QXJyYXlPRVMoRCl9ZnVuY3Rpb24gZyhELEYseil7bGV0IE49ei53aXJlZnJhbWU9PT0hMCxWPWFbRC5pZF07Vj09PXZvaWQgMCYmKFY9e30sYVtELmlkXT1WKTtsZXQgUT1WW0YuaWRdO1E9PT12b2lkIDAmJihRPXt9LFZbRi5pZF09USk7bGV0IGF0PVFbTl07cmV0dXJuIGF0PT09dm9pZCAwJiYoYXQ9eChoKCkpLFFbTl09YXQpLGF0fWZ1bmN0aW9uIHgoRCl7bGV0IEY9W10sej1bXSxOPVtdO2ZvcihsZXQgVj0wO1Y8cjtWKyspRltWXT0wLHpbVl09MCxOW1ZdPTA7cmV0dXJue2dlb21ldHJ5Om51bGwscHJvZ3JhbTpudWxsLHdpcmVmcmFtZTohMSxuZXdBdHRyaWJ1dGVzOkYsZW5hYmxlZEF0dHJpYnV0ZXM6eixhdHRyaWJ1dGVEaXZpc29yczpOLG9iamVjdDpELGF0dHJpYnV0ZXM6e30saW5kZXg6bnVsbH19ZnVuY3Rpb24gdihELEYpe2xldCB6PWMuYXR0cmlidXRlcyxOPUQuYXR0cmlidXRlcyxWPTA7Zm9yKGxldCBRIGluIE4pe2xldCBhdD16W1FdLEc9TltRXTtpZihhdD09PXZvaWQgMHx8YXQuYXR0cmlidXRlIT09R3x8YXQuZGF0YSE9PUcuZGF0YSlyZXR1cm4hMDtWKyt9cmV0dXJuIGMuYXR0cmlidXRlc051bSE9PVZ8fGMuaW5kZXghPT1GfWZ1bmN0aW9uIG0oRCxGKXtsZXQgej17fSxOPUQuYXR0cmlidXRlcyxWPTA7Zm9yKGxldCBRIGluIE4pe2xldCBhdD1OW1FdLEc9e307Ry5hdHRyaWJ1dGU9YXQsYXQuZGF0YSYmKEcuZGF0YT1hdC5kYXRhKSx6W1FdPUcsVisrfWMuYXR0cmlidXRlcz16LGMuYXR0cmlidXRlc051bT1WLGMuaW5kZXg9Rn1mdW5jdGlvbiBwKCl7bGV0IEQ9Yy5uZXdBdHRyaWJ1dGVzO2ZvcihsZXQgRj0wLHo9RC5sZW5ndGg7Rjx6O0YrKylEW0ZdPTB9ZnVuY3Rpb24gYihEKXtfKEQsMCl9ZnVuY3Rpb24gXyhELEYpe2xldCB6PWMubmV3QXR0cmlidXRlcyxOPWMuZW5hYmxlZEF0dHJpYnV0ZXMsVj1jLmF0dHJpYnV0ZURpdmlzb3JzO3pbRF09MSxOW0RdPT09MCYmKG4uZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoRCksTltEXT0xKSxWW0RdIT09RiYmKChpLmlzV2ViR0wyP246dC5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSlbaS5pc1dlYkdMMj8idmVydGV4QXR0cmliRGl2aXNvciI6InZlcnRleEF0dHJpYkRpdmlzb3JBTkdMRSJdKEQsRiksVltEXT1GKX1mdW5jdGlvbiBTKCl7bGV0IEQ9Yy5uZXdBdHRyaWJ1dGVzLEY9Yy5lbmFibGVkQXR0cmlidXRlcztmb3IobGV0IHo9MCxOPUYubGVuZ3RoO3o8Tjt6KyspRlt6XSE9PURbel0mJihuLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSh6KSxGW3pdPTApfWZ1bmN0aW9uIEwoRCxGLHosTixWLFEpe2kuaXNXZWJHTDI9PT0hMCYmKHo9PT01MTI0fHx6PT09NTEyNSk/bi52ZXJ0ZXhBdHRyaWJJUG9pbnRlcihELEYseixWLFEpOm4udmVydGV4QXR0cmliUG9pbnRlcihELEYseixOLFYsUSl9ZnVuY3Rpb24gQShELEYseixOKXtpZihpLmlzV2ViR0wyPT09ITEmJihELmlzSW5zdGFuY2VkTWVzaHx8Ti5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5KSYmdC5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKT09PW51bGwpcmV0dXJuO3AoKTtsZXQgVj1OLmF0dHJpYnV0ZXMsUT16LmdldEF0dHJpYnV0ZXMoKSxhdD1GLmRlZmF1bHRBdHRyaWJ1dGVWYWx1ZXM7Zm9yKGxldCBHIGluIFEpe2xldCAkPVFbR107aWYoJC5sb2NhdGlvbj49MCl7bGV0IGx0PVZbR107aWYobHQ9PT12b2lkIDAmJihHPT09Imluc3RhbmNlTWF0cml4IiYmRC5pbnN0YW5jZU1hdHJpeCYmKGx0PUQuaW5zdGFuY2VNYXRyaXgpLEc9PT0iaW5zdGFuY2VDb2xvciImJkQuaW5zdGFuY2VDb2xvciYmKGx0PUQuaW5zdGFuY2VDb2xvcikpLGx0IT09dm9pZCAwKXtsZXQgZHQ9bHQubm9ybWFsaXplZCx4dD1sdC5pdGVtU2l6ZSxrPWUuZ2V0KGx0KTtpZihrPT09dm9pZCAwKWNvbnRpbnVlO2xldCBGdD1rLmJ1ZmZlcixtdD1rLnR5cGUsU3Q9ay5ieXRlc1BlckVsZW1lbnQ7aWYobHQuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSl7bGV0IEI9bHQuZGF0YSxzdD1CLnN0cmlkZSxudD1sdC5vZmZzZXQ7aWYoQiYmQi5pc0luc3RhbmNlZEludGVybGVhdmVkQnVmZmVyKXtmb3IobGV0IEM9MDtDPCQubG9jYXRpb25TaXplO0MrKylfKCQubG9jYXRpb24rQyxCLm1lc2hQZXJBdHRyaWJ1dGUpO0QuaXNJbnN0YW5jZWRNZXNoIT09ITAmJk4uX21heEluc3RhbmNlQ291bnQ9PT12b2lkIDAmJihOLl9tYXhJbnN0YW5jZUNvdW50PUIubWVzaFBlckF0dHJpYnV0ZSpCLmNvdW50KX1lbHNlIGZvcihsZXQgQz0wO0M8JC5sb2NhdGlvblNpemU7QysrKWIoJC5sb2NhdGlvbitDKTtuLmJpbmRCdWZmZXIoMzQ5NjIsRnQpO2ZvcihsZXQgQz0wO0M8JC5sb2NhdGlvblNpemU7QysrKUwoJC5sb2NhdGlvbitDLHh0LyQubG9jYXRpb25TaXplLG10LGR0LHN0KlN0LChudCt4dC8kLmxvY2F0aW9uU2l6ZSpDKSpTdCl9ZWxzZXtpZihsdC5pc0luc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZSl7Zm9yKGxldCBCPTA7QjwkLmxvY2F0aW9uU2l6ZTtCKyspXygkLmxvY2F0aW9uK0IsbHQubWVzaFBlckF0dHJpYnV0ZSk7RC5pc0luc3RhbmNlZE1lc2ghPT0hMCYmTi5fbWF4SW5zdGFuY2VDb3VudD09PXZvaWQgMCYmKE4uX21heEluc3RhbmNlQ291bnQ9bHQubWVzaFBlckF0dHJpYnV0ZSpsdC5jb3VudCl9ZWxzZSBmb3IobGV0IEI9MDtCPCQubG9jYXRpb25TaXplO0IrKyliKCQubG9jYXRpb24rQik7bi5iaW5kQnVmZmVyKDM0OTYyLEZ0KTtmb3IobGV0IEI9MDtCPCQubG9jYXRpb25TaXplO0IrKylMKCQubG9jYXRpb24rQix4dC8kLmxvY2F0aW9uU2l6ZSxtdCxkdCx4dCpTdCx4dC8kLmxvY2F0aW9uU2l6ZSpCKlN0KX19ZWxzZSBpZihhdCE9PXZvaWQgMCl7bGV0IGR0PWF0W0ddO2lmKGR0IT09dm9pZCAwKXN3aXRjaChkdC5sZW5ndGgpe2Nhc2UgMjpuLnZlcnRleEF0dHJpYjJmdigkLmxvY2F0aW9uLGR0KTticmVhaztjYXNlIDM6bi52ZXJ0ZXhBdHRyaWIzZnYoJC5sb2NhdGlvbixkdCk7YnJlYWs7Y2FzZSA0Om4udmVydGV4QXR0cmliNGZ2KCQubG9jYXRpb24sZHQpO2JyZWFrO2RlZmF1bHQ6bi52ZXJ0ZXhBdHRyaWIxZnYoJC5sb2NhdGlvbixkdCl9fX19UygpfWZ1bmN0aW9uIEgoKXt5KCk7Zm9yKGxldCBEIGluIGEpe2xldCBGPWFbRF07Zm9yKGxldCB6IGluIEYpe2xldCBOPUZbel07Zm9yKGxldCBWIGluIE4pZChOW1ZdLm9iamVjdCksZGVsZXRlIE5bVl07ZGVsZXRlIEZbel19ZGVsZXRlIGFbRF19fWZ1bmN0aW9uIHR0KEQpe2lmKGFbRC5pZF09PT12b2lkIDApcmV0dXJuO2xldCBGPWFbRC5pZF07Zm9yKGxldCB6IGluIEYpe2xldCBOPUZbel07Zm9yKGxldCBWIGluIE4pZChOW1ZdLm9iamVjdCksZGVsZXRlIE5bVl07ZGVsZXRlIEZbel19ZGVsZXRlIGFbRC5pZF19ZnVuY3Rpb24gWChEKXtmb3IobGV0IEYgaW4gYSl7bGV0IHo9YVtGXTtpZih6W0QuaWRdPT09dm9pZCAwKWNvbnRpbnVlO2xldCBOPXpbRC5pZF07Zm9yKGxldCBWIGluIE4pZChOW1ZdLm9iamVjdCksZGVsZXRlIE5bVl07ZGVsZXRlIHpbRC5pZF19fWZ1bmN0aW9uIHkoKXtSKCksYyE9PWwmJihjPWwsZihjLm9iamVjdCkpfWZ1bmN0aW9uIFIoKXtsLmdlb21ldHJ5PW51bGwsbC5wcm9ncmFtPW51bGwsbC53aXJlZnJhbWU9ITF9cmV0dXJue3NldHVwOnUscmVzZXQ6eSxyZXNldERlZmF1bHRTdGF0ZTpSLGRpc3Bvc2U6SCxyZWxlYXNlU3RhdGVzT2ZHZW9tZXRyeTp0dCxyZWxlYXNlU3RhdGVzT2ZQcm9ncmFtOlgsaW5pdEF0dHJpYnV0ZXM6cCxlbmFibGVBdHRyaWJ1dGU6YixkaXNhYmxlVW51c2VkQXR0cmlidXRlczpTfX1mdW5jdGlvbiBaMShuLHQsZSxpKXtsZXQgcj1pLmlzV2ViR0wyLHM7ZnVuY3Rpb24gbyhjKXtzPWN9ZnVuY3Rpb24gYShjLHUpe24uZHJhd0FycmF5cyhzLGMsdSksZS51cGRhdGUodSxzLDEpfWZ1bmN0aW9uIGwoYyx1LGgpe2lmKGg9PT0wKXJldHVybjtsZXQgZixkO2lmKHIpZj1uLGQ9ImRyYXdBcnJheXNJbnN0YW5jZWQiO2Vsc2UgaWYoZj10LmdldCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpLGQ9ImRyYXdBcnJheXNJbnN0YW5jZWRBTkdMRSIsZj09PW51bGwpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMQnVmZmVyUmVuZGVyZXI6IHVzaW5nIFRIUkVFLkluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5IGJ1dCBoYXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0IGV4dGVuc2lvbiBBTkdMRV9pbnN0YW5jZWRfYXJyYXlzLiIpO3JldHVybn1mW2RdKHMsYyx1LGgpLGUudXBkYXRlKHUscyxoKX10aGlzLnNldE1vZGU9byx0aGlzLnJlbmRlcj1hLHRoaXMucmVuZGVySW5zdGFuY2VzPWx9ZnVuY3Rpb24gSjEobix0LGUpe2xldCBpO2Z1bmN0aW9uIHIoKXtpZihpIT09dm9pZCAwKXJldHVybiBpO2lmKHQuaGFzKCJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKT09PSEwKXtsZXQgQT10LmdldCgiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7aT1uLmdldFBhcmFtZXRlcihBLk1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCl9ZWxzZSBpPTA7cmV0dXJuIGl9ZnVuY3Rpb24gcyhBKXtpZihBPT09ImhpZ2hwIil7aWYobi5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoMzU2MzMsMzYzMzgpLnByZWNpc2lvbj4wJiZuLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgzNTYzMiwzNjMzOCkucHJlY2lzaW9uPjApcmV0dXJuImhpZ2hwIjtBPSJtZWRpdW1wIn1yZXR1cm4gQT09PSJtZWRpdW1wIiYmbi5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoMzU2MzMsMzYzMzcpLnByZWNpc2lvbj4wJiZuLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgzNTYzMiwzNjMzNykucHJlY2lzaW9uPjA/Im1lZGl1bXAiOiJsb3dwIn1sZXQgbz10eXBlb2YgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCE9InVuZGVmaW5lZCImJm4gaW5zdGFuY2VvZiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0fHx0eXBlb2YgV2ViR0wyQ29tcHV0ZVJlbmRlcmluZ0NvbnRleHQhPSJ1bmRlZmluZWQiJiZuIGluc3RhbmNlb2YgV2ViR0wyQ29tcHV0ZVJlbmRlcmluZ0NvbnRleHQsYT1lLnByZWNpc2lvbiE9PXZvaWQgMD9lLnByZWNpc2lvbjoiaGlnaHAiLGw9cyhhKTtsIT09YSYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjoiLGEsIm5vdCBzdXBwb3J0ZWQsIHVzaW5nIixsLCJpbnN0ZWFkLiIpLGE9bCk7bGV0IGM9b3x8dC5oYXMoIldFQkdMX2RyYXdfYnVmZmVycyIpLHU9ZS5sb2dhcml0aG1pY0RlcHRoQnVmZmVyPT09ITAsaD1uLmdldFBhcmFtZXRlcigzNDkzMCksZj1uLmdldFBhcmFtZXRlcigzNTY2MCksZD1uLmdldFBhcmFtZXRlcigzMzc5KSxnPW4uZ2V0UGFyYW1ldGVyKDM0MDc2KSx4PW4uZ2V0UGFyYW1ldGVyKDM0OTIxKSx2PW4uZ2V0UGFyYW1ldGVyKDM2MzQ3KSxtPW4uZ2V0UGFyYW1ldGVyKDM2MzQ4KSxwPW4uZ2V0UGFyYW1ldGVyKDM2MzQ5KSxiPWY+MCxfPW98fHQuaGFzKCJPRVNfdGV4dHVyZV9mbG9hdCIpLFM9YiYmXyxMPW8/bi5nZXRQYXJhbWV0ZXIoMzYxODMpOjA7cmV0dXJue2lzV2ViR0wyOm8sZHJhd0J1ZmZlcnM6YyxnZXRNYXhBbmlzb3Ryb3B5OnIsZ2V0TWF4UHJlY2lzaW9uOnMscHJlY2lzaW9uOmEsbG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcjp1LG1heFRleHR1cmVzOmgsbWF4VmVydGV4VGV4dHVyZXM6ZixtYXhUZXh0dXJlU2l6ZTpkLG1heEN1YmVtYXBTaXplOmcsbWF4QXR0cmlidXRlczp4LG1heFZlcnRleFVuaWZvcm1zOnYsbWF4VmFyeWluZ3M6bSxtYXhGcmFnbWVudFVuaWZvcm1zOnAsdmVydGV4VGV4dHVyZXM6YixmbG9hdEZyYWdtZW50VGV4dHVyZXM6XyxmbG9hdFZlcnRleFRleHR1cmVzOlMsbWF4U2FtcGxlczpMfX1mdW5jdGlvbiAkMShuKXtsZXQgdD10aGlzLGU9bnVsbCxpPTAscj0hMSxzPSExLG89bmV3IGplLGE9bmV3IGRlLGw9e3ZhbHVlOm51bGwsbmVlZHNVcGRhdGU6ITF9O3RoaXMudW5pZm9ybT1sLHRoaXMubnVtUGxhbmVzPTAsdGhpcy5udW1JbnRlcnNlY3Rpb249MCx0aGlzLmluaXQ9ZnVuY3Rpb24oaCxmLGQpe2xldCBnPWgubGVuZ3RoIT09MHx8Znx8aSE9PTB8fHI7cmV0dXJuIHI9ZixlPXUoaCxkLDApLGk9aC5sZW5ndGgsZ30sdGhpcy5iZWdpblNoYWRvd3M9ZnVuY3Rpb24oKXtzPSEwLHUobnVsbCl9LHRoaXMuZW5kU2hhZG93cz1mdW5jdGlvbigpe3M9ITEsYygpfSx0aGlzLnNldFN0YXRlPWZ1bmN0aW9uKGgsZixkKXtsZXQgZz1oLmNsaXBwaW5nUGxhbmVzLHg9aC5jbGlwSW50ZXJzZWN0aW9uLHY9aC5jbGlwU2hhZG93cyxtPW4uZ2V0KGgpO2lmKCFyfHxnPT09bnVsbHx8Zy5sZW5ndGg9PT0wfHxzJiYhdilzP3UobnVsbCk6YygpO2Vsc2V7bGV0IHA9cz8wOmksYj1wKjQsXz1tLmNsaXBwaW5nU3RhdGV8fG51bGw7bC52YWx1ZT1fLF89dShnLGYsYixkKTtmb3IobGV0IFM9MDtTIT09YjsrK1MpX1tTXT1lW1NdO20uY2xpcHBpbmdTdGF0ZT1fLHRoaXMubnVtSW50ZXJzZWN0aW9uPXg/dGhpcy5udW1QbGFuZXM6MCx0aGlzLm51bVBsYW5lcys9cH19O2Z1bmN0aW9uIGMoKXtsLnZhbHVlIT09ZSYmKGwudmFsdWU9ZSxsLm5lZWRzVXBkYXRlPWk+MCksdC5udW1QbGFuZXM9aSx0Lm51bUludGVyc2VjdGlvbj0wfWZ1bmN0aW9uIHUoaCxmLGQsZyl7bGV0IHg9aCE9PW51bGw/aC5sZW5ndGg6MCx2PW51bGw7aWYoeCE9PTApe2lmKHY9bC52YWx1ZSxnIT09ITB8fHY9PT1udWxsKXtsZXQgbT1kK3gqNCxwPWYubWF0cml4V29ybGRJbnZlcnNlO2EuZ2V0Tm9ybWFsTWF0cml4KHApLCh2PT09bnVsbHx8di5sZW5ndGg8bSkmJih2PW5ldyBGbG9hdDMyQXJyYXkobSkpO2ZvcihsZXQgYj0wLF89ZDtiIT09eDsrK2IsXys9NClvLmNvcHkoaFtiXSkuYXBwbHlNYXRyaXg0KHAsYSksby5ub3JtYWwudG9BcnJheSh2LF8pLHZbXyszXT1vLmNvbnN0YW50fWwudmFsdWU9dixsLm5lZWRzVXBkYXRlPSEwfXJldHVybiB0Lm51bVBsYW5lcz14LHQubnVtSW50ZXJzZWN0aW9uPTAsdn19ZnVuY3Rpb24gSzEobil7bGV0IHQ9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gZShvLGEpe3JldHVybiBhPT09VXU/by5tYXBwaW5nPUFvOmE9PT1CdSYmKG8ubWFwcGluZz1Dbyksb31mdW5jdGlvbiBpKG8pe2lmKG8mJm8uaXNUZXh0dXJlJiZvLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT09PSExKXtsZXQgYT1vLm1hcHBpbmc7aWYoYT09PVV1fHxhPT09QnUpaWYodC5oYXMobykpe2xldCBsPXQuZ2V0KG8pLnRleHR1cmU7cmV0dXJuIGUobCxvLm1hcHBpbmcpfWVsc2V7bGV0IGw9by5pbWFnZTtpZihsJiZsLmhlaWdodD4wKXtsZXQgYz1uZXcgb2wobC5oZWlnaHQvMik7cmV0dXJuIGMuZnJvbUVxdWlyZWN0YW5ndWxhclRleHR1cmUobixvKSx0LnNldChvLGMpLG8uYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsciksZShjLnRleHR1cmUsby5tYXBwaW5nKX1lbHNlIHJldHVybiBudWxsfX1yZXR1cm4gb31mdW5jdGlvbiByKG8pe2xldCBhPW8udGFyZ2V0O2EucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIscik7bGV0IGw9dC5nZXQoYSk7bCE9PXZvaWQgMCYmKHQuZGVsZXRlKGEpLGwuZGlzcG9zZSgpKX1mdW5jdGlvbiBzKCl7dD1uZXcgV2Vha01hcH1yZXR1cm57Z2V0OmksZGlzcG9zZTpzfX12YXIgVmk9Y2xhc3MgZXh0ZW5kcyBvb3tjb25zdHJ1Y3Rvcih0PS0xLGU9MSxpPTEscj0tMSxzPS4xLG89MmUzKXtzdXBlcigpLHRoaXMudHlwZT0iT3J0aG9ncmFwaGljQ2FtZXJhIix0aGlzLnpvb209MSx0aGlzLnZpZXc9bnVsbCx0aGlzLmxlZnQ9dCx0aGlzLnJpZ2h0PWUsdGhpcy50b3A9aSx0aGlzLmJvdHRvbT1yLHRoaXMubmVhcj1zLHRoaXMuZmFyPW8sdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksdGhpcy5sZWZ0PXQubGVmdCx0aGlzLnJpZ2h0PXQucmlnaHQsdGhpcy50b3A9dC50b3AsdGhpcy5ib3R0b209dC5ib3R0b20sdGhpcy5uZWFyPXQubmVhcix0aGlzLmZhcj10LmZhcix0aGlzLnpvb209dC56b29tLHRoaXMudmlldz10LnZpZXc9PT1udWxsP251bGw6T2JqZWN0LmFzc2lnbih7fSx0LnZpZXcpLHRoaXN9c2V0Vmlld09mZnNldCh0LGUsaSxyLHMsbyl7dGhpcy52aWV3PT09bnVsbCYmKHRoaXMudmlldz17ZW5hYmxlZDohMCxmdWxsV2lkdGg6MSxmdWxsSGVpZ2h0OjEsb2Zmc2V0WDowLG9mZnNldFk6MCx3aWR0aDoxLGhlaWdodDoxfSksdGhpcy52aWV3LmVuYWJsZWQ9ITAsdGhpcy52aWV3LmZ1bGxXaWR0aD10LHRoaXMudmlldy5mdWxsSGVpZ2h0PWUsdGhpcy52aWV3Lm9mZnNldFg9aSx0aGlzLnZpZXcub2Zmc2V0WT1yLHRoaXMudmlldy53aWR0aD1zLHRoaXMudmlldy5oZWlnaHQ9byx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1jbGVhclZpZXdPZmZzZXQoKXt0aGlzLnZpZXchPT1udWxsJiYodGhpcy52aWV3LmVuYWJsZWQ9ITEpLHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfXVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKXtsZXQgdD0odGhpcy5yaWdodC10aGlzLmxlZnQpLygyKnRoaXMuem9vbSksZT0odGhpcy50b3AtdGhpcy5ib3R0b20pLygyKnRoaXMuem9vbSksaT0odGhpcy5yaWdodCt0aGlzLmxlZnQpLzIscj0odGhpcy50b3ArdGhpcy5ib3R0b20pLzIscz1pLXQsbz1pK3QsYT1yK2UsbD1yLWU7aWYodGhpcy52aWV3IT09bnVsbCYmdGhpcy52aWV3LmVuYWJsZWQpe2xldCBjPSh0aGlzLnJpZ2h0LXRoaXMubGVmdCkvdGhpcy52aWV3LmZ1bGxXaWR0aC90aGlzLnpvb20sdT0odGhpcy50b3AtdGhpcy5ib3R0b20pL3RoaXMudmlldy5mdWxsSGVpZ2h0L3RoaXMuem9vbTtzKz1jKnRoaXMudmlldy5vZmZzZXRYLG89cytjKnRoaXMudmlldy53aWR0aCxhLT11KnRoaXMudmlldy5vZmZzZXRZLGw9YS11KnRoaXMudmlldy5oZWlnaHR9dGhpcy5wcm9qZWN0aW9uTWF0cml4Lm1ha2VPcnRob2dyYXBoaWMocyxvLGEsbCx0aGlzLm5lYXIsdGhpcy5mYXIpLHRoaXMucHJvamVjdGlvbk1hdHJpeEludmVyc2UuY29weSh0aGlzLnByb2plY3Rpb25NYXRyaXgpLmludmVydCgpfXRvSlNPTih0KXtsZXQgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0Lnpvb209dGhpcy56b29tLGUub2JqZWN0LmxlZnQ9dGhpcy5sZWZ0LGUub2JqZWN0LnJpZ2h0PXRoaXMucmlnaHQsZS5vYmplY3QudG9wPXRoaXMudG9wLGUub2JqZWN0LmJvdHRvbT10aGlzLmJvdHRvbSxlLm9iamVjdC5uZWFyPXRoaXMubmVhcixlLm9iamVjdC5mYXI9dGhpcy5mYXIsdGhpcy52aWV3IT09bnVsbCYmKGUub2JqZWN0LnZpZXc9T2JqZWN0LmFzc2lnbih7fSx0aGlzLnZpZXcpKSxlfX07VmkucHJvdG90eXBlLmlzT3J0aG9ncmFwaGljQ2FtZXJhPSEwO3ZhciBYcj1jbGFzcyBleHRlbmRzIEZue2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMudHlwZT0iUmF3U2hhZGVyTWF0ZXJpYWwifX07WHIucHJvdG90eXBlLmlzUmF3U2hhZGVyTWF0ZXJpYWw9ITA7dmFyIGtyPTQsbmk9OCxobj1NYXRoLnBvdygyLG5pKSx4MD1bLjEyNSwuMjE1LC4zNSwuNDQ2LC41MjYsLjU4Ml0seTA9bmkta3IrMSt4MC5sZW5ndGgsQXI9MjAsVHU9bmV3IFZpLHtfbG9kUGxhbmVzOkdzLF9zaXplTG9kczptZyxfc2lnbWFzOlVhfT1RMSgpLGdnPW5ldyBmdCxBdT1udWxsLHppPSgxK01hdGguc3FydCg1KSkvMixDcj0xL3ppLHhnPVtuZXcgVCgxLDEsMSksbmV3IFQoLTEsMSwxKSxuZXcgVCgxLDEsLTEpLG5ldyBUKC0xLDEsLTEpLG5ldyBUKDAsemksQ3IpLG5ldyBUKDAsemksLUNyKSxuZXcgVChDciwwLHppKSxuZXcgVCgtQ3IsMCx6aSksbmV3IFQoemksQ3IsMCksbmV3IFQoLXppLENyLDApXSxhbD1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9yZW5kZXJlcj10LHRoaXMuX3BpbmdQb25nUmVuZGVyVGFyZ2V0PW51bGwsdGhpcy5fYmx1ck1hdGVyaWFsPWoxKEFyKSx0aGlzLl9lcXVpcmVjdFNoYWRlcj1udWxsLHRoaXMuX2N1YmVtYXBTaGFkZXI9bnVsbCx0aGlzLl9jb21waWxlTWF0ZXJpYWwodGhpcy5fYmx1ck1hdGVyaWFsKX1mcm9tU2NlbmUodCxlPTAsaT0uMSxyPTEwMCl7QXU9dGhpcy5fcmVuZGVyZXIuZ2V0UmVuZGVyVGFyZ2V0KCk7bGV0IHM9dGhpcy5fYWxsb2NhdGVUYXJnZXRzKCk7cmV0dXJuIHRoaXMuX3NjZW5lVG9DdWJlVVYodCxpLHIscyksZT4wJiZ0aGlzLl9ibHVyKHMsMCwwLGUpLHRoaXMuX2FwcGx5UE1SRU0ocyksdGhpcy5fY2xlYW51cChzKSxzfWZyb21FcXVpcmVjdGFuZ3VsYXIodCxlPW51bGwpe3JldHVybiB0aGlzLl9mcm9tVGV4dHVyZSh0LGUpfWZyb21DdWJlbWFwKHQsZT1udWxsKXtyZXR1cm4gdGhpcy5fZnJvbVRleHR1cmUodCxlKX1jb21waWxlQ3ViZW1hcFNoYWRlcigpe3RoaXMuX2N1YmVtYXBTaGFkZXI9PT1udWxsJiYodGhpcy5fY3ViZW1hcFNoYWRlcj1fZygpLHRoaXMuX2NvbXBpbGVNYXRlcmlhbCh0aGlzLl9jdWJlbWFwU2hhZGVyKSl9Y29tcGlsZUVxdWlyZWN0YW5ndWxhclNoYWRlcigpe3RoaXMuX2VxdWlyZWN0U2hhZGVyPT09bnVsbCYmKHRoaXMuX2VxdWlyZWN0U2hhZGVyPXZnKCksdGhpcy5fY29tcGlsZU1hdGVyaWFsKHRoaXMuX2VxdWlyZWN0U2hhZGVyKSl9ZGlzcG9zZSgpe3RoaXMuX2JsdXJNYXRlcmlhbC5kaXNwb3NlKCksdGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQhPT1udWxsJiZ0aGlzLl9waW5nUG9uZ1JlbmRlclRhcmdldC5kaXNwb3NlKCksdGhpcy5fY3ViZW1hcFNoYWRlciE9PW51bGwmJnRoaXMuX2N1YmVtYXBTaGFkZXIuZGlzcG9zZSgpLHRoaXMuX2VxdWlyZWN0U2hhZGVyIT09bnVsbCYmdGhpcy5fZXF1aXJlY3RTaGFkZXIuZGlzcG9zZSgpO2ZvcihsZXQgdD0wO3Q8R3MubGVuZ3RoO3QrKylHc1t0XS5kaXNwb3NlKCl9X2NsZWFudXAodCl7dGhpcy5fcmVuZGVyZXIuc2V0UmVuZGVyVGFyZ2V0KEF1KSx0LnNjaXNzb3JUZXN0PSExLEJhKHQsMCwwLHQud2lkdGgsdC5oZWlnaHQpfV9mcm9tVGV4dHVyZSh0LGUpe0F1PXRoaXMuX3JlbmRlcmVyLmdldFJlbmRlclRhcmdldCgpO2xldCBpPWV8fHRoaXMuX2FsbG9jYXRlVGFyZ2V0cyh0KTtyZXR1cm4gdGhpcy5fdGV4dHVyZVRvQ3ViZVVWKHQsaSksdGhpcy5fYXBwbHlQTVJFTShpKSx0aGlzLl9jbGVhbnVwKGkpLGl9X2FsbG9jYXRlVGFyZ2V0cyh0KXtsZXQgZT17bWFnRmlsdGVyOmJlLG1pbkZpbHRlcjpiZSxnZW5lcmF0ZU1pcG1hcHM6ITEsdHlwZTpVcixmb3JtYXQ6UmUsZW5jb2Rpbmc6cmksZGVwdGhCdWZmZXI6ITF9LGk9eWcoZSk7cmV0dXJuIGkuZGVwdGhCdWZmZXI9IXQsdGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQ9PT1udWxsJiYodGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQ9eWcoZSkpLGl9X2NvbXBpbGVNYXRlcmlhbCh0KXtsZXQgZT1uZXcgb2UoR3NbMF0sdCk7dGhpcy5fcmVuZGVyZXIuY29tcGlsZShlLFR1KX1fc2NlbmVUb0N1YmVVVih0LGUsaSxyKXtsZXQgYT1uZXcgU2UoOTAsMSxlLGkpLGw9WzEsLTEsMSwxLDEsMV0sYz1bMSwxLDEsLTEsLTEsLTFdLHU9dGhpcy5fcmVuZGVyZXIsaD11LmF1dG9DbGVhcixmPXUudG9uZU1hcHBpbmc7dS5nZXRDbGVhckNvbG9yKGdnKSx1LnRvbmVNYXBwaW5nPXRpLHUuYXV0b0NsZWFyPSExO2xldCBkPW5ldyBraSh7bmFtZToiUE1SRU0uQmFja2dyb3VuZCIsc2lkZTpoZSxkZXB0aFdyaXRlOiExLGRlcHRoVGVzdDohMX0pLGc9bmV3IG9lKG5ldyBIaSxkKSx4PSExLHY9dC5iYWNrZ3JvdW5kO3Y/di5pc0NvbG9yJiYoZC5jb2xvci5jb3B5KHYpLHQuYmFja2dyb3VuZD1udWxsLHg9ITApOihkLmNvbG9yLmNvcHkoZ2cpLHg9ITApO2ZvcihsZXQgbT0wO208NjttKyspe2xldCBwPW0lMztwPT09MD8oYS51cC5zZXQoMCxsW21dLDApLGEubG9va0F0KGNbbV0sMCwwKSk6cD09PTE/KGEudXAuc2V0KDAsMCxsW21dKSxhLmxvb2tBdCgwLGNbbV0sMCkpOihhLnVwLnNldCgwLGxbbV0sMCksYS5sb29rQXQoMCwwLGNbbV0pKSxCYShyLHAqaG4sbT4yP2huOjAsaG4saG4pLHUuc2V0UmVuZGVyVGFyZ2V0KHIpLHgmJnUucmVuZGVyKGcsYSksdS5yZW5kZXIodCxhKX1nLmdlb21ldHJ5LmRpc3Bvc2UoKSxnLm1hdGVyaWFsLmRpc3Bvc2UoKSx1LnRvbmVNYXBwaW5nPWYsdS5hdXRvQ2xlYXI9aCx0LmJhY2tncm91bmQ9dn1fdGV4dHVyZVRvQ3ViZVVWKHQsZSl7bGV0IGk9dGhpcy5fcmVuZGVyZXIscj10Lm1hcHBpbmc9PT1Bb3x8dC5tYXBwaW5nPT09Q287cj8odGhpcy5fY3ViZW1hcFNoYWRlcj09PW51bGwmJih0aGlzLl9jdWJlbWFwU2hhZGVyPV9nKCkpLHRoaXMuX2N1YmVtYXBTaGFkZXIudW5pZm9ybXMuZmxpcEVudk1hcC52YWx1ZT10LmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT09PSExPy0xOjEpOnRoaXMuX2VxdWlyZWN0U2hhZGVyPT09bnVsbCYmKHRoaXMuX2VxdWlyZWN0U2hhZGVyPXZnKCkpO2xldCBzPXI/dGhpcy5fY3ViZW1hcFNoYWRlcjp0aGlzLl9lcXVpcmVjdFNoYWRlcixvPW5ldyBvZShHc1swXSxzKSxhPXMudW5pZm9ybXM7YS5lbnZNYXAudmFsdWU9dCxyfHxhLnRleGVsU2l6ZS52YWx1ZS5zZXQoMS90LmltYWdlLndpZHRoLDEvdC5pbWFnZS5oZWlnaHQpLEJhKGUsMCwwLDMqaG4sMipobiksaS5zZXRSZW5kZXJUYXJnZXQoZSksaS5yZW5kZXIobyxUdSl9X2FwcGx5UE1SRU0odCl7bGV0IGU9dGhpcy5fcmVuZGVyZXIsaT1lLmF1dG9DbGVhcjtlLmF1dG9DbGVhcj0hMTtmb3IobGV0IHI9MTtyPHkwO3IrKyl7bGV0IHM9TWF0aC5zcXJ0KFVhW3JdKlVhW3JdLVVhW3ItMV0qVWFbci0xXSksbz14Z1soci0xKSV4Zy5sZW5ndGhdO3RoaXMuX2JsdXIodCxyLTEscixzLG8pfWUuYXV0b0NsZWFyPWl9X2JsdXIodCxlLGkscixzKXtsZXQgbz10aGlzLl9waW5nUG9uZ1JlbmRlclRhcmdldDt0aGlzLl9oYWxmQmx1cih0LG8sZSxpLHIsImxhdGl0dWRpbmFsIixzKSx0aGlzLl9oYWxmQmx1cihvLHQsaSxpLHIsImxvbmdpdHVkaW5hbCIscyl9X2hhbGZCbHVyKHQsZSxpLHIscyxvLGEpe2xldCBsPXRoaXMuX3JlbmRlcmVyLGM9dGhpcy5fYmx1ck1hdGVyaWFsO28hPT0ibGF0aXR1ZGluYWwiJiZvIT09ImxvbmdpdHVkaW5hbCImJmNvbnNvbGUuZXJyb3IoImJsdXIgZGlyZWN0aW9uIG11c3QgYmUgZWl0aGVyIGxhdGl0dWRpbmFsIG9yIGxvbmdpdHVkaW5hbCEiKTtsZXQgdT0zLGg9bmV3IG9lKEdzW3JdLGMpLGY9Yy51bmlmb3JtcyxkPW1nW2ldLTEsZz1pc0Zpbml0ZShzKT9NYXRoLlBJLygyKmQpOjIqTWF0aC5QSS8oMipBci0xKSx4PXMvZyx2PWlzRmluaXRlKHMpPzErTWF0aC5mbG9vcih1KngpOkFyO3Y+QXImJmNvbnNvbGUud2Fybihgc2lnbWFSYWRpYW5zLCAke3N9LCBpcyB0b28gbGFyZ2UgYW5kIHdpbGwgY2xpcCwgYXMgaXQgcmVxdWVzdGVkICR7dn0gc2FtcGxlcyB3aGVuIHRoZSBtYXhpbXVtIGlzIHNldCB0byAke0FyfWApO2xldCBtPVtdLHA9MDtmb3IobGV0IEw9MDtMPEFyOysrTCl7bGV0IEE9TC94LEg9TWF0aC5leHAoLUEqQS8yKTttLnB1c2goSCksTD09PTA/cCs9SDpMPHYmJihwKz0yKkgpfWZvcihsZXQgTD0wO0w8bS5sZW5ndGg7TCsrKW1bTF09bVtMXS9wO2YuZW52TWFwLnZhbHVlPXQudGV4dHVyZSxmLnNhbXBsZXMudmFsdWU9dixmLndlaWdodHMudmFsdWU9bSxmLmxhdGl0dWRpbmFsLnZhbHVlPW89PT0ibGF0aXR1ZGluYWwiLGEmJihmLnBvbGVBeGlzLnZhbHVlPWEpLGYuZFRoZXRhLnZhbHVlPWcsZi5taXBJbnQudmFsdWU9bmktaTtsZXQgYj1tZ1tyXSxfPTMqTWF0aC5tYXgoMCxobi0yKmIpLFM9KHI9PT0wPzA6MipobikrMipiKihyPm5pLWtyP3Itbmkra3I6MCk7QmEoZSxfLFMsMypiLDIqYiksbC5zZXRSZW5kZXJUYXJnZXQoZSksbC5yZW5kZXIoaCxUdSl9fTtmdW5jdGlvbiBRMSgpe2xldCBuPVtdLHQ9W10sZT1bXSxpPW5pO2ZvcihsZXQgcj0wO3I8eTA7cisrKXtsZXQgcz1NYXRoLnBvdygyLGkpO3QucHVzaChzKTtsZXQgbz0xL3M7cj5uaS1rcj9vPXgwW3Itbmkra3ItMV06cj09PTAmJihvPTApLGUucHVzaChvKTtsZXQgYT0xLyhzLTEpLGw9LWEvMixjPTErYS8yLHU9W2wsbCxjLGwsYyxjLGwsbCxjLGMsbCxjXSxoPTYsZj02LGQ9MyxnPTIseD0xLHY9bmV3IEZsb2F0MzJBcnJheShkKmYqaCksbT1uZXcgRmxvYXQzMkFycmF5KGcqZipoKSxwPW5ldyBGbG9hdDMyQXJyYXkoeCpmKmgpO2ZvcihsZXQgXz0wO188aDtfKyspe2xldCBTPV8lMyoyLzMtMSxMPV8+Mj8wOi0xLEE9W1MsTCwwLFMrMi8zLEwsMCxTKzIvMyxMKzEsMCxTLEwsMCxTKzIvMyxMKzEsMCxTLEwrMSwwXTt2LnNldChBLGQqZipfKSxtLnNldCh1LGcqZipfKTtsZXQgSD1bXyxfLF8sXyxfLF9dO3Auc2V0KEgseCpmKl8pfWxldCBiPW5ldyBIdDtiLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBRdCh2LGQpKSxiLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBRdChtLGcpKSxiLnNldEF0dHJpYnV0ZSgiZmFjZUluZGV4IixuZXcgUXQocCx4KSksbi5wdXNoKGIpLGk+a3ImJmktLX1yZXR1cm57X2xvZFBsYW5lczpuLF9zaXplTG9kczp0LF9zaWdtYXM6ZX19ZnVuY3Rpb24geWcobil7bGV0IHQ9bmV3IE5lKDMqaG4sMypobixuKTtyZXR1cm4gdC50ZXh0dXJlLm1hcHBpbmc9UmwsdC50ZXh0dXJlLm5hbWU9IlBNUkVNLmN1YmVVdiIsdC5zY2lzc29yVGVzdD0hMCx0fWZ1bmN0aW9uIEJhKG4sdCxlLGkscil7bi52aWV3cG9ydC5zZXQodCxlLGksciksbi5zY2lzc29yLnNldCh0LGUsaSxyKX1mdW5jdGlvbiBqMShuKXtsZXQgdD1uZXcgRmxvYXQzMkFycmF5KG4pLGU9bmV3IFQoMCwxLDApO3JldHVybiBuZXcgWHIoe25hbWU6IlNwaGVyaWNhbEdhdXNzaWFuQmx1ciIsZGVmaW5lczp7bn0sdW5pZm9ybXM6e2Vudk1hcDp7dmFsdWU6bnVsbH0sc2FtcGxlczp7dmFsdWU6MX0sd2VpZ2h0czp7dmFsdWU6dH0sbGF0aXR1ZGluYWw6e3ZhbHVlOiExfSxkVGhldGE6e3ZhbHVlOjB9LG1pcEludDp7dmFsdWU6MH0scG9sZUF4aXM6e3ZhbHVlOmV9fSx2ZXJ0ZXhTaGFkZXI6amgoKSxmcmFnbWVudFNoYWRlcjpgCgoJCQlwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKCQkJcHJlY2lzaW9uIG1lZGl1bXAgaW50OwoKCQkJdmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247CgoJCQl1bmlmb3JtIHNhbXBsZXIyRCBlbnZNYXA7CgkJCXVuaWZvcm0gaW50IHNhbXBsZXM7CgkJCXVuaWZvcm0gZmxvYXQgd2VpZ2h0c1sgbiBdOwoJCQl1bmlmb3JtIGJvb2wgbGF0aXR1ZGluYWw7CgkJCXVuaWZvcm0gZmxvYXQgZFRoZXRhOwoJCQl1bmlmb3JtIGZsb2F0IG1pcEludDsKCQkJdW5pZm9ybSB2ZWMzIHBvbGVBeGlzOwoKCQkJI2RlZmluZSBFTlZNQVBfVFlQRV9DVUJFX1VWCgkJCSNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+CgoJCQl2ZWMzIGdldFNhbXBsZSggZmxvYXQgdGhldGEsIHZlYzMgYXhpcyApIHsKCgkJCQlmbG9hdCBjb3NUaGV0YSA9IGNvcyggdGhldGEgKTsKCQkJCS8vIFJvZHJpZ3VlcycgYXhpcy1hbmdsZSByb3RhdGlvbgoJCQkJdmVjMyBzYW1wbGVEaXJlY3Rpb24gPSB2T3V0cHV0RGlyZWN0aW9uICogY29zVGhldGEKCQkJCQkrIGNyb3NzKCBheGlzLCB2T3V0cHV0RGlyZWN0aW9uICkgKiBzaW4oIHRoZXRhICkKCQkJCQkrIGF4aXMgKiBkb3QoIGF4aXMsIHZPdXRwdXREaXJlY3Rpb24gKSAqICggMS4wIC0gY29zVGhldGEgKTsKCgkJCQlyZXR1cm4gYmlsaW5lYXJDdWJlVVYoIGVudk1hcCwgc2FtcGxlRGlyZWN0aW9uLCBtaXBJbnQgKTsKCgkJCX0KCgkJCXZvaWQgbWFpbigpIHsKCgkJCQl2ZWMzIGF4aXMgPSBsYXRpdHVkaW5hbCA/IHBvbGVBeGlzIDogY3Jvc3MoIHBvbGVBeGlzLCB2T3V0cHV0RGlyZWN0aW9uICk7CgoJCQkJaWYgKCBhbGwoIGVxdWFsKCBheGlzLCB2ZWMzKCAwLjAgKSApICkgKSB7CgoJCQkJCWF4aXMgPSB2ZWMzKCB2T3V0cHV0RGlyZWN0aW9uLnosIDAuMCwgLSB2T3V0cHV0RGlyZWN0aW9uLnggKTsKCgkJCQl9CgoJCQkJYXhpcyA9IG5vcm1hbGl6ZSggYXhpcyApOwoKCQkJCWdsX0ZyYWdDb2xvciA9IHZlYzQoIDAuMCwgMC4wLCAwLjAsIDEuMCApOwoJCQkJZ2xfRnJhZ0NvbG9yLnJnYiArPSB3ZWlnaHRzWyAwIF0gKiBnZXRTYW1wbGUoIDAuMCwgYXhpcyApOwoKCQkJCWZvciAoIGludCBpID0gMTsgaSA8IG47IGkrKyApIHsKCgkJCQkJaWYgKCBpID49IHNhbXBsZXMgKSB7CgoJCQkJCQlicmVhazsKCgkJCQkJfQoKCQkJCQlmbG9hdCB0aGV0YSA9IGRUaGV0YSAqIGZsb2F0KCBpICk7CgkJCQkJZ2xfRnJhZ0NvbG9yLnJnYiArPSB3ZWlnaHRzWyBpIF0gKiBnZXRTYW1wbGUoIC0xLjAgKiB0aGV0YSwgYXhpcyApOwoJCQkJCWdsX0ZyYWdDb2xvci5yZ2IgKz0gd2VpZ2h0c1sgaSBdICogZ2V0U2FtcGxlKCB0aGV0YSwgYXhpcyApOwoKCQkJCX0KCgkJCX0KCQlgLGJsZW5kaW5nOmpuLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExfSl9ZnVuY3Rpb24gdmcoKXtsZXQgbj1uZXcgSygxLDEpO3JldHVybiBuZXcgWHIoe25hbWU6IkVxdWlyZWN0YW5ndWxhclRvQ3ViZVVWIix1bmlmb3Jtczp7ZW52TWFwOnt2YWx1ZTpudWxsfSx0ZXhlbFNpemU6e3ZhbHVlOm59fSx2ZXJ0ZXhTaGFkZXI6amgoKSxmcmFnbWVudFNoYWRlcjpgCgoJCQlwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKCQkJcHJlY2lzaW9uIG1lZGl1bXAgaW50OwoKCQkJdmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247CgoJCQl1bmlmb3JtIHNhbXBsZXIyRCBlbnZNYXA7CgkJCXVuaWZvcm0gdmVjMiB0ZXhlbFNpemU7CgoJCQkjaW5jbHVkZSA8Y29tbW9uPgoKCQkJdm9pZCBtYWluKCkgewoKCQkJCWdsX0ZyYWdDb2xvciA9IHZlYzQoIDAuMCwgMC4wLCAwLjAsIDEuMCApOwoKCQkJCXZlYzMgb3V0cHV0RGlyZWN0aW9uID0gbm9ybWFsaXplKCB2T3V0cHV0RGlyZWN0aW9uICk7CgkJCQl2ZWMyIHV2ID0gZXF1aXJlY3RVdiggb3V0cHV0RGlyZWN0aW9uICk7CgoJCQkJdmVjMiBmID0gZnJhY3QoIHV2IC8gdGV4ZWxTaXplIC0gMC41ICk7CgkJCQl1diAtPSBmICogdGV4ZWxTaXplOwoJCQkJdmVjMyB0bCA9IHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKS5yZ2I7CgkJCQl1di54ICs9IHRleGVsU2l6ZS54OwoJCQkJdmVjMyB0ciA9IHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKS5yZ2I7CgkJCQl1di55ICs9IHRleGVsU2l6ZS55OwoJCQkJdmVjMyBiciA9IHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKS5yZ2I7CgkJCQl1di54IC09IHRleGVsU2l6ZS54OwoJCQkJdmVjMyBibCA9IHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKS5yZ2I7CgoJCQkJdmVjMyB0bSA9IG1peCggdGwsIHRyLCBmLnggKTsKCQkJCXZlYzMgYm0gPSBtaXgoIGJsLCBiciwgZi54ICk7CgkJCQlnbF9GcmFnQ29sb3IucmdiID0gbWl4KCB0bSwgYm0sIGYueSApOwoKCQkJfQoJCWAsYmxlbmRpbmc6am4sZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITF9KX1mdW5jdGlvbiBfZygpe3JldHVybiBuZXcgWHIoe25hbWU6IkN1YmVtYXBUb0N1YmVVViIsdW5pZm9ybXM6e2Vudk1hcDp7dmFsdWU6bnVsbH0sZmxpcEVudk1hcDp7dmFsdWU6LTF9fSx2ZXJ0ZXhTaGFkZXI6amgoKSxmcmFnbWVudFNoYWRlcjpgCgoJCQlwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKCQkJcHJlY2lzaW9uIG1lZGl1bXAgaW50OwoKCQkJdW5pZm9ybSBmbG9hdCBmbGlwRW52TWFwOwoKCQkJdmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247CgoJCQl1bmlmb3JtIHNhbXBsZXJDdWJlIGVudk1hcDsKCgkJCXZvaWQgbWFpbigpIHsKCgkJCQlnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlQ3ViZSggZW52TWFwLCB2ZWMzKCBmbGlwRW52TWFwICogdk91dHB1dERpcmVjdGlvbi54LCB2T3V0cHV0RGlyZWN0aW9uLnl6ICkgKTsKCgkJCX0KCQlgLGJsZW5kaW5nOmpuLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExfSl9ZnVuY3Rpb24gamgoKXtyZXR1cm5gCgoJCXByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwoJCXByZWNpc2lvbiBtZWRpdW1wIGludDsKCgkJYXR0cmlidXRlIHZlYzMgcG9zaXRpb247CgkJYXR0cmlidXRlIHZlYzIgdXY7CgkJYXR0cmlidXRlIGZsb2F0IGZhY2VJbmRleDsKCgkJdmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247CgoJCS8vIFJIIGNvb3JkaW5hdGUgc3lzdGVtOyBQTVJFTSBmYWNlLWluZGV4aW5nIGNvbnZlbnRpb24KCQl2ZWMzIGdldERpcmVjdGlvbiggdmVjMiB1diwgZmxvYXQgZmFjZSApIHsKCgkJCXV2ID0gMi4wICogdXYgLSAxLjA7CgoJCQl2ZWMzIGRpcmVjdGlvbiA9IHZlYzMoIHV2LCAxLjAgKTsKCgkJCWlmICggZmFjZSA9PSAwLjAgKSB7CgoJCQkJZGlyZWN0aW9uID0gZGlyZWN0aW9uLnp5eDsgLy8gKCAxLCB2LCB1ICkgcG9zIHgKCgkJCX0gZWxzZSBpZiAoIGZhY2UgPT0gMS4wICkgewoKCQkJCWRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7CgkJCQlkaXJlY3Rpb24ueHogKj0gLTEuMDsgLy8gKCAtdSwgMSwgLXYgKSBwb3MgeQoKCQkJfSBlbHNlIGlmICggZmFjZSA9PSAyLjAgKSB7CgoJCQkJZGlyZWN0aW9uLnggKj0gLTEuMDsgLy8gKCAtdSwgdiwgMSApIHBvcyB6CgoJCQl9IGVsc2UgaWYgKCBmYWNlID09IDMuMCApIHsKCgkJCQlkaXJlY3Rpb24gPSBkaXJlY3Rpb24uenl4OwoJCQkJZGlyZWN0aW9uLnh6ICo9IC0xLjA7IC8vICggLTEsIHYsIC11ICkgbmVnIHgKCgkJCX0gZWxzZSBpZiAoIGZhY2UgPT0gNC4wICkgewoKCQkJCWRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7CgkJCQlkaXJlY3Rpb24ueHkgKj0gLTEuMDsgLy8gKCAtdSwgLTEsIHYgKSBuZWcgeQoKCQkJfSBlbHNlIGlmICggZmFjZSA9PSA1LjAgKSB7CgoJCQkJZGlyZWN0aW9uLnogKj0gLTEuMDsgLy8gKCB1LCB2LCAtMSApIG5lZyB6CgoJCQl9CgoJCQlyZXR1cm4gZGlyZWN0aW9uOwoKCQl9CgoJCXZvaWQgbWFpbigpIHsKCgkJCXZPdXRwdXREaXJlY3Rpb24gPSBnZXREaXJlY3Rpb24oIHV2LCBmYWNlSW5kZXggKTsKCQkJZ2xfUG9zaXRpb24gPSB2ZWM0KCBwb3NpdGlvbiwgMS4wICk7CgoJCX0KCWB9ZnVuY3Rpb24gdFMobil7bGV0IHQ9bmV3IFdlYWtNYXAsZT1udWxsO2Z1bmN0aW9uIGkoYSl7aWYoYSYmYS5pc1RleHR1cmUpe2xldCBsPWEubWFwcGluZyxjPWw9PT1VdXx8bD09PUJ1LHU9bD09PUFvfHxsPT09Q287aWYoY3x8dSlpZihhLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZSYmYS5uZWVkc1BNUkVNVXBkYXRlPT09ITApe2EubmVlZHNQTVJFTVVwZGF0ZT0hMTtsZXQgaD10LmdldChhKTtyZXR1cm4gZT09PW51bGwmJihlPW5ldyBhbChuKSksaD1jP2UuZnJvbUVxdWlyZWN0YW5ndWxhcihhLGgpOmUuZnJvbUN1YmVtYXAoYSxoKSx0LnNldChhLGgpLGgudGV4dHVyZX1lbHNle2lmKHQuaGFzKGEpKXJldHVybiB0LmdldChhKS50ZXh0dXJlO3tsZXQgaD1hLmltYWdlO2lmKGMmJmgmJmguaGVpZ2h0PjB8fHUmJmgmJnIoaCkpe2U9PT1udWxsJiYoZT1uZXcgYWwobikpO2xldCBmPWM/ZS5mcm9tRXF1aXJlY3Rhbmd1bGFyKGEpOmUuZnJvbUN1YmVtYXAoYSk7cmV0dXJuIHQuc2V0KGEsZiksYS5hZGRFdmVudExpc3RlbmVyKCJkaXNwb3NlIixzKSxmLnRleHR1cmV9ZWxzZSByZXR1cm4gbnVsbH19fXJldHVybiBhfWZ1bmN0aW9uIHIoYSl7bGV0IGw9MCxjPTY7Zm9yKGxldCB1PTA7dTxjO3UrKylhW3VdIT09dm9pZCAwJiZsKys7cmV0dXJuIGw9PT1jfWZ1bmN0aW9uIHMoYSl7bGV0IGw9YS50YXJnZXQ7bC5yZW1vdmVFdmVudExpc3RlbmVyKCJkaXNwb3NlIixzKTtsZXQgYz10LmdldChsKTtjIT09dm9pZCAwJiYodC5kZWxldGUobCksYy5kaXNwb3NlKCkpfWZ1bmN0aW9uIG8oKXt0PW5ldyBXZWFrTWFwLGUhPT1udWxsJiYoZS5kaXNwb3NlKCksZT1udWxsKX1yZXR1cm57Z2V0OmksZGlzcG9zZTpvfX1mdW5jdGlvbiBlUyhuKXtsZXQgdD17fTtmdW5jdGlvbiBlKGkpe2lmKHRbaV0hPT12b2lkIDApcmV0dXJuIHRbaV07bGV0IHI7c3dpdGNoKGkpe2Nhc2UiV0VCR0xfZGVwdGhfdGV4dHVyZSI6cj1uLmdldEV4dGVuc2lvbigiV0VCR0xfZGVwdGhfdGV4dHVyZSIpfHxuLmdldEV4dGVuc2lvbigiTU9aX1dFQkdMX2RlcHRoX3RleHR1cmUiKXx8bi5nZXRFeHRlbnNpb24oIldFQktJVF9XRUJHTF9kZXB0aF90ZXh0dXJlIik7YnJlYWs7Y2FzZSJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiOnI9bi5nZXRFeHRlbnNpb24oIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpfHxuLmdldEV4dGVuc2lvbigiTU9aX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpfHxuLmdldEV4dGVuc2lvbigiV0VCS0lUX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpO2JyZWFrO2Nhc2UiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiOnI9bi5nZXRFeHRlbnNpb24oIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIil8fG4uZ2V0RXh0ZW5zaW9uKCJNT1pfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKXx8bi5nZXRFeHRlbnNpb24oIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpO2JyZWFrO2Nhc2UiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIjpyPW4uZ2V0RXh0ZW5zaW9uKCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKXx8bi5nZXRFeHRlbnNpb24oIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKTticmVhaztkZWZhdWx0OnI9bi5nZXRFeHRlbnNpb24oaSl9cmV0dXJuIHRbaV09cixyfXJldHVybntoYXM6ZnVuY3Rpb24oaSl7cmV0dXJuIGUoaSkhPT1udWxsfSxpbml0OmZ1bmN0aW9uKGkpe2kuaXNXZWJHTDI/ZSgiRVhUX2NvbG9yX2J1ZmZlcl9mbG9hdCIpOihlKCJXRUJHTF9kZXB0aF90ZXh0dXJlIiksZSgiT0VTX3RleHR1cmVfZmxvYXQiKSxlKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiksZSgiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSxlKCJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKSxlKCJPRVNfZWxlbWVudF9pbmRleF91aW50IiksZSgiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSxlKCJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIikpLGUoIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpLGUoIkVYVF9jb2xvcl9idWZmZXJfaGFsZl9mbG9hdCIpLGUoIldFQkdMX211bHRpc2FtcGxlZF9yZW5kZXJfdG9fdGV4dHVyZSIpfSxnZXQ6ZnVuY3Rpb24oaSl7bGV0IHI9ZShpKTtyZXR1cm4gcj09PW51bGwmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogIitpKyIgZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQuIikscn19fWZ1bmN0aW9uIG5TKG4sdCxlLGkpe2xldCByPXt9LHM9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gbyhoKXtsZXQgZj1oLnRhcmdldDtmLmluZGV4IT09bnVsbCYmdC5yZW1vdmUoZi5pbmRleCk7Zm9yKGxldCBnIGluIGYuYXR0cmlidXRlcyl0LnJlbW92ZShmLmF0dHJpYnV0ZXNbZ10pO2YucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsbyksZGVsZXRlIHJbZi5pZF07bGV0IGQ9cy5nZXQoZik7ZCYmKHQucmVtb3ZlKGQpLHMuZGVsZXRlKGYpKSxpLnJlbGVhc2VTdGF0ZXNPZkdlb21ldHJ5KGYpLGYuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeT09PSEwJiZkZWxldGUgZi5fbWF4SW5zdGFuY2VDb3VudCxlLm1lbW9yeS5nZW9tZXRyaWVzLS19ZnVuY3Rpb24gYShoLGYpe3JldHVybiByW2YuaWRdPT09ITB8fChmLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLG8pLHJbZi5pZF09ITAsZS5tZW1vcnkuZ2VvbWV0cmllcysrKSxmfWZ1bmN0aW9uIGwoaCl7bGV0IGY9aC5hdHRyaWJ1dGVzO2ZvcihsZXQgZyBpbiBmKXQudXBkYXRlKGZbZ10sMzQ5NjIpO2xldCBkPWgubW9ycGhBdHRyaWJ1dGVzO2ZvcihsZXQgZyBpbiBkKXtsZXQgeD1kW2ddO2ZvcihsZXQgdj0wLG09eC5sZW5ndGg7djxtO3YrKyl0LnVwZGF0ZSh4W3ZdLDM0OTYyKX19ZnVuY3Rpb24gYyhoKXtsZXQgZj1bXSxkPWguaW5kZXgsZz1oLmF0dHJpYnV0ZXMucG9zaXRpb24seD0wO2lmKGQhPT1udWxsKXtsZXQgcD1kLmFycmF5O3g9ZC52ZXJzaW9uO2ZvcihsZXQgYj0wLF89cC5sZW5ndGg7YjxfO2IrPTMpe2xldCBTPXBbYiswXSxMPXBbYisxXSxBPXBbYisyXTtmLnB1c2goUyxMLEwsQSxBLFMpfX1lbHNle2xldCBwPWcuYXJyYXk7eD1nLnZlcnNpb247Zm9yKGxldCBiPTAsXz1wLmxlbmd0aC8zLTE7YjxfO2IrPTMpe2xldCBTPWIrMCxMPWIrMSxBPWIrMjtmLnB1c2goUyxMLEwsQSxBLFMpfX1sZXQgdj1uZXcocDAoZik/c2w6cmwpKGYsMSk7di52ZXJzaW9uPXg7bGV0IG09cy5nZXQoaCk7bSYmdC5yZW1vdmUobSkscy5zZXQoaCx2KX1mdW5jdGlvbiB1KGgpe2xldCBmPXMuZ2V0KGgpO2lmKGYpe2xldCBkPWguaW5kZXg7ZCE9PW51bGwmJmYudmVyc2lvbjxkLnZlcnNpb24mJmMoaCl9ZWxzZSBjKGgpO3JldHVybiBzLmdldChoKX1yZXR1cm57Z2V0OmEsdXBkYXRlOmwsZ2V0V2lyZWZyYW1lQXR0cmlidXRlOnV9fWZ1bmN0aW9uIGlTKG4sdCxlLGkpe2xldCByPWkuaXNXZWJHTDIscztmdW5jdGlvbiBvKGYpe3M9Zn1sZXQgYSxsO2Z1bmN0aW9uIGMoZil7YT1mLnR5cGUsbD1mLmJ5dGVzUGVyRWxlbWVudH1mdW5jdGlvbiB1KGYsZCl7bi5kcmF3RWxlbWVudHMocyxkLGEsZipsKSxlLnVwZGF0ZShkLHMsMSl9ZnVuY3Rpb24gaChmLGQsZyl7aWYoZz09PTApcmV0dXJuO2xldCB4LHY7aWYocil4PW4sdj0iZHJhd0VsZW1lbnRzSW5zdGFuY2VkIjtlbHNlIGlmKHg9dC5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSx2PSJkcmF3RWxlbWVudHNJbnN0YW5jZWRBTkdMRSIseD09PW51bGwpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMSW5kZXhlZEJ1ZmZlclJlbmRlcmVyOiB1c2luZyBUSFJFRS5JbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSBidXQgaGFyZHdhcmUgZG9lcyBub3Qgc3VwcG9ydCBleHRlbnNpb24gQU5HTEVfaW5zdGFuY2VkX2FycmF5cy4iKTtyZXR1cm59eFt2XShzLGQsYSxmKmwsZyksZS51cGRhdGUoZCxzLGcpfXRoaXMuc2V0TW9kZT1vLHRoaXMuc2V0SW5kZXg9Yyx0aGlzLnJlbmRlcj11LHRoaXMucmVuZGVySW5zdGFuY2VzPWh9ZnVuY3Rpb24gclMobil7bGV0IHQ9e2dlb21ldHJpZXM6MCx0ZXh0dXJlczowfSxlPXtmcmFtZTowLGNhbGxzOjAsdHJpYW5nbGVzOjAscG9pbnRzOjAsbGluZXM6MH07ZnVuY3Rpb24gaShzLG8sYSl7c3dpdGNoKGUuY2FsbHMrKyxvKXtjYXNlIDQ6ZS50cmlhbmdsZXMrPWEqKHMvMyk7YnJlYWs7Y2FzZSAxOmUubGluZXMrPWEqKHMvMik7YnJlYWs7Y2FzZSAzOmUubGluZXMrPWEqKHMtMSk7YnJlYWs7Y2FzZSAyOmUubGluZXMrPWEqczticmVhaztjYXNlIDA6ZS5wb2ludHMrPWEqczticmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMSW5mbzogVW5rbm93biBkcmF3IG1vZGU6IixvKTticmVha319ZnVuY3Rpb24gcigpe2UuZnJhbWUrKyxlLmNhbGxzPTAsZS50cmlhbmdsZXM9MCxlLnBvaW50cz0wLGUubGluZXM9MH1yZXR1cm57bWVtb3J5OnQscmVuZGVyOmUscHJvZ3JhbXM6bnVsbCxhdXRvUmVzZXQ6ITAscmVzZXQ6cix1cGRhdGU6aX19dmFyIGNvPWNsYXNzIGV4dGVuZHMgYWV7Y29uc3RydWN0b3IodD1udWxsLGU9MSxpPTEscj0xKXtzdXBlcihudWxsKSx0aGlzLmltYWdlPXtkYXRhOnQsd2lkdGg6ZSxoZWlnaHQ6aSxkZXB0aDpyfSx0aGlzLm1hZ0ZpbHRlcj1mZSx0aGlzLm1pbkZpbHRlcj1mZSx0aGlzLndyYXBSPVZlLHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSExLHRoaXMuZmxpcFk9ITEsdGhpcy51bnBhY2tBbGlnbm1lbnQ9MX19O2NvLnByb3RvdHlwZS5pc0RhdGFUZXh0dXJlMkRBcnJheT0hMDtmdW5jdGlvbiBzUyhuLHQpe3JldHVybiBuWzBdLXRbMF19ZnVuY3Rpb24gb1Mobix0KXtyZXR1cm4gTWF0aC5hYnModFsxXSktTWF0aC5hYnMoblsxXSl9ZnVuY3Rpb24gd2cobix0KXtsZXQgZT0xLGk9dC5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlP3QuZGF0YS5hcnJheTp0LmFycmF5O2kgaW5zdGFuY2VvZiBJbnQ4QXJyYXk/ZT0xMjc6aSBpbnN0YW5jZW9mIEludDE2QXJyYXk/ZT0zMjc2NzppIGluc3RhbmNlb2YgSW50MzJBcnJheT9lPTIxNDc0ODM2NDc6Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xNb3JwaHRhcmdldHM6IFVuc3VwcG9ydGVkIG1vcnBoIGF0dHJpYnV0ZSBkYXRhIHR5cGU6ICIsaSksbi5kaXZpZGVTY2FsYXIoZSl9ZnVuY3Rpb24gYVMobix0LGUpe2xldCBpPXt9LHI9bmV3IEZsb2F0MzJBcnJheSg4KSxzPW5ldyBXZWFrTWFwLG89bmV3IFQsYT1bXTtmb3IobGV0IGM9MDtjPDg7YysrKWFbY109W2MsMF07ZnVuY3Rpb24gbChjLHUsaCxmKXtsZXQgZD1jLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcztpZih0LmlzV2ViR0wyPT09ITApe2xldCBnPXUubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uLmxlbmd0aCx4PXMuZ2V0KHUpO2lmKHg9PT12b2lkIDB8fHguY291bnQhPT1nKXtsZXQgUj1mdW5jdGlvbigpe1guZGlzcG9zZSgpLHMuZGVsZXRlKHUpLHUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsUil9O3ghPT12b2lkIDAmJngudGV4dHVyZS5kaXNwb3NlKCk7bGV0IHA9dS5tb3JwaEF0dHJpYnV0ZXMubm9ybWFsIT09dm9pZCAwLGI9dS5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24sXz11Lm1vcnBoQXR0cmlidXRlcy5ub3JtYWx8fFtdLFM9dS5hdHRyaWJ1dGVzLnBvc2l0aW9uLmNvdW50LEw9cD09PSEwPzI6MSxBPVMqTCxIPTE7QT50Lm1heFRleHR1cmVTaXplJiYoSD1NYXRoLmNlaWwoQS90Lm1heFRleHR1cmVTaXplKSxBPXQubWF4VGV4dHVyZVNpemUpO2xldCB0dD1uZXcgRmxvYXQzMkFycmF5KEEqSCo0KmcpLFg9bmV3IGNvKHR0LEEsSCxnKTtYLmZvcm1hdD1SZSxYLnR5cGU9VWksWC5uZWVkc1VwZGF0ZT0hMDtsZXQgeT1MKjQ7Zm9yKGxldCBEPTA7RDxnO0QrKyl7bGV0IEY9YltEXSx6PV9bRF0sTj1BKkgqNCpEO2ZvcihsZXQgVj0wO1Y8Ri5jb3VudDtWKyspe28uZnJvbUJ1ZmZlckF0dHJpYnV0ZShGLFYpLEYubm9ybWFsaXplZD09PSEwJiZ3ZyhvLEYpO2xldCBRPVYqeTt0dFtOK1ErMF09by54LHR0W04rUSsxXT1vLnksdHRbTitRKzJdPW8ueix0dFtOK1ErM109MCxwPT09ITAmJihvLmZyb21CdWZmZXJBdHRyaWJ1dGUoeixWKSx6Lm5vcm1hbGl6ZWQ9PT0hMCYmd2cobyx6KSx0dFtOK1ErNF09by54LHR0W04rUSs1XT1vLnksdHRbTitRKzZdPW8ueix0dFtOK1ErN109MCl9fXg9e2NvdW50OmcsdGV4dHVyZTpYLHNpemU6bmV3IEsoQSxIKX0scy5zZXQodSx4KSx1LmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLFIpfWxldCB2PTA7Zm9yKGxldCBwPTA7cDxkLmxlbmd0aDtwKyspdis9ZFtwXTtsZXQgbT11Lm1vcnBoVGFyZ2V0c1JlbGF0aXZlPzE6MS12O2YuZ2V0VW5pZm9ybXMoKS5zZXRWYWx1ZShuLCJtb3JwaFRhcmdldEJhc2VJbmZsdWVuY2UiLG0pLGYuZ2V0VW5pZm9ybXMoKS5zZXRWYWx1ZShuLCJtb3JwaFRhcmdldEluZmx1ZW5jZXMiLGQpLGYuZ2V0VW5pZm9ybXMoKS5zZXRWYWx1ZShuLCJtb3JwaFRhcmdldHNUZXh0dXJlIix4LnRleHR1cmUsZSksZi5nZXRVbmlmb3JtcygpLnNldFZhbHVlKG4sIm1vcnBoVGFyZ2V0c1RleHR1cmVTaXplIix4LnNpemUpfWVsc2V7bGV0IGc9ZD09PXZvaWQgMD8wOmQubGVuZ3RoLHg9aVt1LmlkXTtpZih4PT09dm9pZCAwfHx4Lmxlbmd0aCE9PWcpe3g9W107Zm9yKGxldCBfPTA7XzxnO18rKyl4W19dPVtfLDBdO2lbdS5pZF09eH1mb3IobGV0IF89MDtfPGc7XysrKXtsZXQgUz14W19dO1NbMF09XyxTWzFdPWRbX119eC5zb3J0KG9TKTtmb3IobGV0IF89MDtfPDg7XysrKV88ZyYmeFtfXVsxXT8oYVtfXVswXT14W19dWzBdLGFbX11bMV09eFtfXVsxXSk6KGFbX11bMF09TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsYVtfXVsxXT0wKTthLnNvcnQoc1MpO2xldCB2PXUubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uLG09dS5tb3JwaEF0dHJpYnV0ZXMubm9ybWFsLHA9MDtmb3IobGV0IF89MDtfPDg7XysrKXtsZXQgUz1hW19dLEw9U1swXSxBPVNbMV07TCE9PU51bWJlci5NQVhfU0FGRV9JTlRFR0VSJiZBPyh2JiZ1LmdldEF0dHJpYnV0ZSgibW9ycGhUYXJnZXQiK18pIT09dltMXSYmdS5zZXRBdHRyaWJ1dGUoIm1vcnBoVGFyZ2V0IitfLHZbTF0pLG0mJnUuZ2V0QXR0cmlidXRlKCJtb3JwaE5vcm1hbCIrXykhPT1tW0xdJiZ1LnNldEF0dHJpYnV0ZSgibW9ycGhOb3JtYWwiK18sbVtMXSkscltfXT1BLHArPUEpOih2JiZ1Lmhhc0F0dHJpYnV0ZSgibW9ycGhUYXJnZXQiK18pPT09ITAmJnUuZGVsZXRlQXR0cmlidXRlKCJtb3JwaFRhcmdldCIrXyksbSYmdS5oYXNBdHRyaWJ1dGUoIm1vcnBoTm9ybWFsIitfKT09PSEwJiZ1LmRlbGV0ZUF0dHJpYnV0ZSgibW9ycGhOb3JtYWwiK18pLHJbX109MCl9bGV0IGI9dS5tb3JwaFRhcmdldHNSZWxhdGl2ZT8xOjEtcDtmLmdldFVuaWZvcm1zKCkuc2V0VmFsdWUobiwibW9ycGhUYXJnZXRCYXNlSW5mbHVlbmNlIixiKSxmLmdldFVuaWZvcm1zKCkuc2V0VmFsdWUobiwibW9ycGhUYXJnZXRJbmZsdWVuY2VzIixyKX19cmV0dXJue3VwZGF0ZTpsfX1mdW5jdGlvbiBsUyhuLHQsZSxpKXtsZXQgcj1uZXcgV2Vha01hcDtmdW5jdGlvbiBzKGwpe2xldCBjPWkucmVuZGVyLmZyYW1lLHU9bC5nZW9tZXRyeSxoPXQuZ2V0KGwsdSk7cmV0dXJuIHIuZ2V0KGgpIT09YyYmKHQudXBkYXRlKGgpLHIuc2V0KGgsYykpLGwuaXNJbnN0YW5jZWRNZXNoJiYobC5oYXNFdmVudExpc3RlbmVyKCJkaXNwb3NlIixhKT09PSExJiZsLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLGEpLGUudXBkYXRlKGwuaW5zdGFuY2VNYXRyaXgsMzQ5NjIpLGwuaW5zdGFuY2VDb2xvciE9PW51bGwmJmUudXBkYXRlKGwuaW5zdGFuY2VDb2xvciwzNDk2MikpLGh9ZnVuY3Rpb24gbygpe3I9bmV3IFdlYWtNYXB9ZnVuY3Rpb24gYShsKXtsZXQgYz1sLnRhcmdldDtjLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLGEpLGUucmVtb3ZlKGMuaW5zdGFuY2VNYXRyaXgpLGMuaW5zdGFuY2VDb2xvciE9PW51bGwmJmUucmVtb3ZlKGMuaW5zdGFuY2VDb2xvcil9cmV0dXJue3VwZGF0ZTpzLGRpc3Bvc2U6b319dmFyIGxsPWNsYXNzIGV4dGVuZHMgYWV7Y29uc3RydWN0b3IodD1udWxsLGU9MSxpPTEscj0xKXtzdXBlcihudWxsKSx0aGlzLmltYWdlPXtkYXRhOnQsd2lkdGg6ZSxoZWlnaHQ6aSxkZXB0aDpyfSx0aGlzLm1hZ0ZpbHRlcj1mZSx0aGlzLm1pbkZpbHRlcj1mZSx0aGlzLndyYXBSPVZlLHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSExLHRoaXMuZmxpcFk9ITEsdGhpcy51bnBhY2tBbGlnbm1lbnQ9MX19O2xsLnByb3RvdHlwZS5pc0RhdGFUZXh0dXJlM0Q9ITA7dmFyIHYwPW5ldyBhZSxfMD1uZXcgY28sdzA9bmV3IGxsLE0wPW5ldyBXcixNZz1bXSxiZz1bXSxTZz1uZXcgRmxvYXQzMkFycmF5KDE2KSxFZz1uZXcgRmxvYXQzMkFycmF5KDkpLFRnPW5ldyBGbG9hdDMyQXJyYXkoNCk7ZnVuY3Rpb24gZXMobix0LGUpe2xldCBpPW5bMF07aWYoaTw9MHx8aT4wKXJldHVybiBuO2xldCByPXQqZSxzPU1nW3JdO2lmKHM9PT12b2lkIDAmJihzPW5ldyBGbG9hdDMyQXJyYXkociksTWdbcl09cyksdCE9PTApe2kudG9BcnJheShzLDApO2ZvcihsZXQgbz0xLGE9MDtvIT09dDsrK28pYSs9ZSxuW29dLnRvQXJyYXkocyxhKX1yZXR1cm4gc31mdW5jdGlvbiBMZShuLHQpe2lmKG4ubGVuZ3RoIT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBlPTAsaT1uLmxlbmd0aDtlPGk7ZSsrKWlmKG5bZV0hPT10W2VdKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIFRlKG4sdCl7Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSsrKW5bZV09dFtlXX1mdW5jdGlvbiBQbChuLHQpe2xldCBlPWJnW3RdO2U9PT12b2lkIDAmJihlPW5ldyBJbnQzMkFycmF5KHQpLGJnW3RdPWUpO2ZvcihsZXQgaT0wO2khPT10OysraSllW2ldPW4uYWxsb2NhdGVUZXh0dXJlVW5pdCgpO3JldHVybiBlfWZ1bmN0aW9uIGNTKG4sdCl7bGV0IGU9dGhpcy5jYWNoZTtlWzBdIT09dCYmKG4udW5pZm9ybTFmKHRoaXMuYWRkcix0KSxlWzBdPXQpfWZ1bmN0aW9uIHVTKG4sdCl7bGV0IGU9dGhpcy5jYWNoZTtpZih0LnghPT12b2lkIDApKGVbMF0hPT10Lnh8fGVbMV0hPT10LnkpJiYobi51bmlmb3JtMmYodGhpcy5hZGRyLHQueCx0LnkpLGVbMF09dC54LGVbMV09dC55KTtlbHNle2lmKExlKGUsdCkpcmV0dXJuO24udW5pZm9ybTJmdih0aGlzLmFkZHIsdCksVGUoZSx0KX19ZnVuY3Rpb24gaFMobix0KXtsZXQgZT10aGlzLmNhY2hlO2lmKHQueCE9PXZvaWQgMCkoZVswXSE9PXQueHx8ZVsxXSE9PXQueXx8ZVsyXSE9PXQueikmJihuLnVuaWZvcm0zZih0aGlzLmFkZHIsdC54LHQueSx0LnopLGVbMF09dC54LGVbMV09dC55LGVbMl09dC56KTtlbHNlIGlmKHQuciE9PXZvaWQgMCkoZVswXSE9PXQucnx8ZVsxXSE9PXQuZ3x8ZVsyXSE9PXQuYikmJihuLnVuaWZvcm0zZih0aGlzLmFkZHIsdC5yLHQuZyx0LmIpLGVbMF09dC5yLGVbMV09dC5nLGVbMl09dC5iKTtlbHNle2lmKExlKGUsdCkpcmV0dXJuO24udW5pZm9ybTNmdih0aGlzLmFkZHIsdCksVGUoZSx0KX19ZnVuY3Rpb24gZlMobix0KXtsZXQgZT10aGlzLmNhY2hlO2lmKHQueCE9PXZvaWQgMCkoZVswXSE9PXQueHx8ZVsxXSE9PXQueXx8ZVsyXSE9PXQuenx8ZVszXSE9PXQudykmJihuLnVuaWZvcm00Zih0aGlzLmFkZHIsdC54LHQueSx0LnosdC53KSxlWzBdPXQueCxlWzFdPXQueSxlWzJdPXQueixlWzNdPXQudyk7ZWxzZXtpZihMZShlLHQpKXJldHVybjtuLnVuaWZvcm00ZnYodGhpcy5hZGRyLHQpLFRlKGUsdCl9fWZ1bmN0aW9uIGRTKG4sdCl7bGV0IGU9dGhpcy5jYWNoZSxpPXQuZWxlbWVudHM7aWYoaT09PXZvaWQgMCl7aWYoTGUoZSx0KSlyZXR1cm47bi51bmlmb3JtTWF0cml4MmZ2KHRoaXMuYWRkciwhMSx0KSxUZShlLHQpfWVsc2V7aWYoTGUoZSxpKSlyZXR1cm47VGcuc2V0KGkpLG4udW5pZm9ybU1hdHJpeDJmdih0aGlzLmFkZHIsITEsVGcpLFRlKGUsaSl9fWZ1bmN0aW9uIHBTKG4sdCl7bGV0IGU9dGhpcy5jYWNoZSxpPXQuZWxlbWVudHM7aWYoaT09PXZvaWQgMCl7aWYoTGUoZSx0KSlyZXR1cm47bi51bmlmb3JtTWF0cml4M2Z2KHRoaXMuYWRkciwhMSx0KSxUZShlLHQpfWVsc2V7aWYoTGUoZSxpKSlyZXR1cm47RWcuc2V0KGkpLG4udW5pZm9ybU1hdHJpeDNmdih0aGlzLmFkZHIsITEsRWcpLFRlKGUsaSl9fWZ1bmN0aW9uIG1TKG4sdCl7bGV0IGU9dGhpcy5jYWNoZSxpPXQuZWxlbWVudHM7aWYoaT09PXZvaWQgMCl7aWYoTGUoZSx0KSlyZXR1cm47bi51bmlmb3JtTWF0cml4NGZ2KHRoaXMuYWRkciwhMSx0KSxUZShlLHQpfWVsc2V7aWYoTGUoZSxpKSlyZXR1cm47U2cuc2V0KGkpLG4udW5pZm9ybU1hdHJpeDRmdih0aGlzLmFkZHIsITEsU2cpLFRlKGUsaSl9fWZ1bmN0aW9uIGdTKG4sdCl7bGV0IGU9dGhpcy5jYWNoZTtlWzBdIT09dCYmKG4udW5pZm9ybTFpKHRoaXMuYWRkcix0KSxlWzBdPXQpfWZ1bmN0aW9uIHhTKG4sdCl7bGV0IGU9dGhpcy5jYWNoZTtMZShlLHQpfHwobi51bmlmb3JtMml2KHRoaXMuYWRkcix0KSxUZShlLHQpKX1mdW5jdGlvbiB5UyhuLHQpe2xldCBlPXRoaXMuY2FjaGU7TGUoZSx0KXx8KG4udW5pZm9ybTNpdih0aGlzLmFkZHIsdCksVGUoZSx0KSl9ZnVuY3Rpb24gdlMobix0KXtsZXQgZT10aGlzLmNhY2hlO0xlKGUsdCl8fChuLnVuaWZvcm00aXYodGhpcy5hZGRyLHQpLFRlKGUsdCkpfWZ1bmN0aW9uIF9TKG4sdCl7bGV0IGU9dGhpcy5jYWNoZTtlWzBdIT09dCYmKG4udW5pZm9ybTF1aSh0aGlzLmFkZHIsdCksZVswXT10KX1mdW5jdGlvbiB3UyhuLHQpe2xldCBlPXRoaXMuY2FjaGU7TGUoZSx0KXx8KG4udW5pZm9ybTJ1aXYodGhpcy5hZGRyLHQpLFRlKGUsdCkpfWZ1bmN0aW9uIE1TKG4sdCl7bGV0IGU9dGhpcy5jYWNoZTtMZShlLHQpfHwobi51bmlmb3JtM3Vpdih0aGlzLmFkZHIsdCksVGUoZSx0KSl9ZnVuY3Rpb24gYlMobix0KXtsZXQgZT10aGlzLmNhY2hlO0xlKGUsdCl8fChuLnVuaWZvcm00dWl2KHRoaXMuYWRkcix0KSxUZShlLHQpKX1mdW5jdGlvbiBTUyhuLHQsZSl7bGV0IGk9dGhpcy5jYWNoZSxyPWUuYWxsb2NhdGVUZXh0dXJlVW5pdCgpO2lbMF0hPT1yJiYobi51bmlmb3JtMWkodGhpcy5hZGRyLHIpLGlbMF09ciksZS5zYWZlU2V0VGV4dHVyZTJEKHR8fHYwLHIpfWZ1bmN0aW9uIEVTKG4sdCxlKXtsZXQgaT10aGlzLmNhY2hlLHI9ZS5hbGxvY2F0ZVRleHR1cmVVbml0KCk7aVswXSE9PXImJihuLnVuaWZvcm0xaSh0aGlzLmFkZHIsciksaVswXT1yKSxlLnNldFRleHR1cmUzRCh0fHx3MCxyKX1mdW5jdGlvbiBUUyhuLHQsZSl7bGV0IGk9dGhpcy5jYWNoZSxyPWUuYWxsb2NhdGVUZXh0dXJlVW5pdCgpO2lbMF0hPT1yJiYobi51bmlmb3JtMWkodGhpcy5hZGRyLHIpLGlbMF09ciksZS5zYWZlU2V0VGV4dHVyZUN1YmUodHx8TTAscil9ZnVuY3Rpb24gQVMobix0LGUpe2xldCBpPXRoaXMuY2FjaGUscj1lLmFsbG9jYXRlVGV4dHVyZVVuaXQoKTtpWzBdIT09ciYmKG4udW5pZm9ybTFpKHRoaXMuYWRkcixyKSxpWzBdPXIpLGUuc2V0VGV4dHVyZTJEQXJyYXkodHx8XzAscil9ZnVuY3Rpb24gQ1Mobil7c3dpdGNoKG4pe2Nhc2UgNTEyNjpyZXR1cm4gY1M7Y2FzZSAzNTY2NDpyZXR1cm4gdVM7Y2FzZSAzNTY2NTpyZXR1cm4gaFM7Y2FzZSAzNTY2NjpyZXR1cm4gZlM7Y2FzZSAzNTY3NDpyZXR1cm4gZFM7Y2FzZSAzNTY3NTpyZXR1cm4gcFM7Y2FzZSAzNTY3NjpyZXR1cm4gbVM7Y2FzZSA1MTI0OmNhc2UgMzU2NzA6cmV0dXJuIGdTO2Nhc2UgMzU2Njc6Y2FzZSAzNTY3MTpyZXR1cm4geFM7Y2FzZSAzNTY2ODpjYXNlIDM1NjcyOnJldHVybiB5UztjYXNlIDM1NjY5OmNhc2UgMzU2NzM6cmV0dXJuIHZTO2Nhc2UgNTEyNTpyZXR1cm4gX1M7Y2FzZSAzNjI5NDpyZXR1cm4gd1M7Y2FzZSAzNjI5NTpyZXR1cm4gTVM7Y2FzZSAzNjI5NjpyZXR1cm4gYlM7Y2FzZSAzNTY3ODpjYXNlIDM2MTk4OmNhc2UgMzYyOTg6Y2FzZSAzNjMwNjpjYXNlIDM1NjgyOnJldHVybiBTUztjYXNlIDM1Njc5OmNhc2UgMzYyOTk6Y2FzZSAzNjMwNzpyZXR1cm4gRVM7Y2FzZSAzNTY4MDpjYXNlIDM2MzAwOmNhc2UgMzYzMDg6Y2FzZSAzNjI5MzpyZXR1cm4gVFM7Y2FzZSAzNjI4OTpjYXNlIDM2MzAzOmNhc2UgMzYzMTE6Y2FzZSAzNjI5MjpyZXR1cm4gQVN9fWZ1bmN0aW9uIFJTKG4sdCl7bi51bmlmb3JtMWZ2KHRoaXMuYWRkcix0KX1mdW5jdGlvbiBMUyhuLHQpe2xldCBlPWVzKHQsdGhpcy5zaXplLDIpO24udW5pZm9ybTJmdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gUFMobix0KXtsZXQgZT1lcyh0LHRoaXMuc2l6ZSwzKTtuLnVuaWZvcm0zZnYodGhpcy5hZGRyLGUpfWZ1bmN0aW9uIERTKG4sdCl7bGV0IGU9ZXModCx0aGlzLnNpemUsNCk7bi51bmlmb3JtNGZ2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBJUyhuLHQpe2xldCBlPWVzKHQsdGhpcy5zaXplLDQpO24udW5pZm9ybU1hdHJpeDJmdih0aGlzLmFkZHIsITEsZSl9ZnVuY3Rpb24gTlMobix0KXtsZXQgZT1lcyh0LHRoaXMuc2l6ZSw5KTtuLnVuaWZvcm1NYXRyaXgzZnYodGhpcy5hZGRyLCExLGUpfWZ1bmN0aW9uIEZTKG4sdCl7bGV0IGU9ZXModCx0aGlzLnNpemUsMTYpO24udW5pZm9ybU1hdHJpeDRmdih0aGlzLmFkZHIsITEsZSl9ZnVuY3Rpb24gelMobix0KXtuLnVuaWZvcm0xaXYodGhpcy5hZGRyLHQpfWZ1bmN0aW9uIFVTKG4sdCl7bi51bmlmb3JtMml2KHRoaXMuYWRkcix0KX1mdW5jdGlvbiBCUyhuLHQpe24udW5pZm9ybTNpdih0aGlzLmFkZHIsdCl9ZnVuY3Rpb24gT1Mobix0KXtuLnVuaWZvcm00aXYodGhpcy5hZGRyLHQpfWZ1bmN0aW9uIGtTKG4sdCl7bi51bmlmb3JtMXVpdih0aGlzLmFkZHIsdCl9ZnVuY3Rpb24gSFMobix0KXtuLnVuaWZvcm0ydWl2KHRoaXMuYWRkcix0KX1mdW5jdGlvbiBWUyhuLHQpe24udW5pZm9ybTN1aXYodGhpcy5hZGRyLHQpfWZ1bmN0aW9uIEdTKG4sdCl7bi51bmlmb3JtNHVpdih0aGlzLmFkZHIsdCl9ZnVuY3Rpb24gV1Mobix0LGUpe2xldCBpPXQubGVuZ3RoLHI9UGwoZSxpKTtuLnVuaWZvcm0xaXYodGhpcy5hZGRyLHIpO2ZvcihsZXQgcz0wO3MhPT1pOysrcyllLnNhZmVTZXRUZXh0dXJlMkQodFtzXXx8djAscltzXSl9ZnVuY3Rpb24gcVMobix0LGUpe2xldCBpPXQubGVuZ3RoLHI9UGwoZSxpKTtuLnVuaWZvcm0xaXYodGhpcy5hZGRyLHIpO2ZvcihsZXQgcz0wO3MhPT1pOysrcyllLnNldFRleHR1cmUzRCh0W3NdfHx3MCxyW3NdKX1mdW5jdGlvbiBYUyhuLHQsZSl7bGV0IGk9dC5sZW5ndGgscj1QbChlLGkpO24udW5pZm9ybTFpdih0aGlzLmFkZHIscik7Zm9yKGxldCBzPTA7cyE9PWk7KytzKWUuc2FmZVNldFRleHR1cmVDdWJlKHRbc118fE0wLHJbc10pfWZ1bmN0aW9uIFlTKG4sdCxlKXtsZXQgaT10Lmxlbmd0aCxyPVBsKGUsaSk7bi51bmlmb3JtMWl2KHRoaXMuYWRkcixyKTtmb3IobGV0IHM9MDtzIT09aTsrK3MpZS5zZXRUZXh0dXJlMkRBcnJheSh0W3NdfHxfMCxyW3NdKX1mdW5jdGlvbiBaUyhuKXtzd2l0Y2gobil7Y2FzZSA1MTI2OnJldHVybiBSUztjYXNlIDM1NjY0OnJldHVybiBMUztjYXNlIDM1NjY1OnJldHVybiBQUztjYXNlIDM1NjY2OnJldHVybiBEUztjYXNlIDM1Njc0OnJldHVybiBJUztjYXNlIDM1Njc1OnJldHVybiBOUztjYXNlIDM1Njc2OnJldHVybiBGUztjYXNlIDUxMjQ6Y2FzZSAzNTY3MDpyZXR1cm4gelM7Y2FzZSAzNTY2NzpjYXNlIDM1NjcxOnJldHVybiBVUztjYXNlIDM1NjY4OmNhc2UgMzU2NzI6cmV0dXJuIEJTO2Nhc2UgMzU2Njk6Y2FzZSAzNTY3MzpyZXR1cm4gT1M7Y2FzZSA1MTI1OnJldHVybiBrUztjYXNlIDM2Mjk0OnJldHVybiBIUztjYXNlIDM2Mjk1OnJldHVybiBWUztjYXNlIDM2Mjk2OnJldHVybiBHUztjYXNlIDM1Njc4OmNhc2UgMzYxOTg6Y2FzZSAzNjI5ODpjYXNlIDM2MzA2OmNhc2UgMzU2ODI6cmV0dXJuIFdTO2Nhc2UgMzU2Nzk6Y2FzZSAzNjI5OTpjYXNlIDM2MzA3OnJldHVybiBxUztjYXNlIDM1NjgwOmNhc2UgMzYzMDA6Y2FzZSAzNjMwODpjYXNlIDM2MjkzOnJldHVybiBYUztjYXNlIDM2Mjg5OmNhc2UgMzYzMDM6Y2FzZSAzNjMxMTpjYXNlIDM2MjkyOnJldHVybiBZU319ZnVuY3Rpb24gSlMobix0LGUpe3RoaXMuaWQ9bix0aGlzLmFkZHI9ZSx0aGlzLmNhY2hlPVtdLHRoaXMuc2V0VmFsdWU9Q1ModC50eXBlKX1mdW5jdGlvbiBiMChuLHQsZSl7dGhpcy5pZD1uLHRoaXMuYWRkcj1lLHRoaXMuY2FjaGU9W10sdGhpcy5zaXplPXQuc2l6ZSx0aGlzLnNldFZhbHVlPVpTKHQudHlwZSl9YjAucHJvdG90eXBlLnVwZGF0ZUNhY2hlPWZ1bmN0aW9uKG4pe2xldCB0PXRoaXMuY2FjaGU7biBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSYmdC5sZW5ndGghPT1uLmxlbmd0aCYmKHRoaXMuY2FjaGU9bmV3IEZsb2F0MzJBcnJheShuLmxlbmd0aCkpLFRlKHQsbil9O2Z1bmN0aW9uIFMwKG4pe3RoaXMuaWQ9bix0aGlzLnNlcT1bXSx0aGlzLm1hcD17fX1TMC5wcm90b3R5cGUuc2V0VmFsdWU9ZnVuY3Rpb24obix0LGUpe2xldCBpPXRoaXMuc2VxO2ZvcihsZXQgcj0wLHM9aS5sZW5ndGg7ciE9PXM7KytyKXtsZXQgbz1pW3JdO28uc2V0VmFsdWUobix0W28uaWRdLGUpfX07dmFyIEN1PS8oXHcrKShcXSk/KFxbfFwuKT8vZztmdW5jdGlvbiBBZyhuLHQpe24uc2VxLnB1c2godCksbi5tYXBbdC5pZF09dH1mdW5jdGlvbiAkUyhuLHQsZSl7bGV0IGk9bi5uYW1lLHI9aS5sZW5ndGg7Zm9yKEN1Lmxhc3RJbmRleD0wOzspe2xldCBzPUN1LmV4ZWMoaSksbz1DdS5sYXN0SW5kZXgsYT1zWzFdLGw9c1syXT09PSJdIixjPXNbM107aWYobCYmKGE9YXwwKSxjPT09dm9pZCAwfHxjPT09IlsiJiZvKzI9PT1yKXtBZyhlLGM9PT12b2lkIDA/bmV3IEpTKGEsbix0KTpuZXcgYjAoYSxuLHQpKTticmVha31lbHNle2xldCBoPWUubWFwW2FdO2g9PT12b2lkIDAmJihoPW5ldyBTMChhKSxBZyhlLGgpKSxlPWh9fX1mdW5jdGlvbiBpaShuLHQpe3RoaXMuc2VxPVtdLHRoaXMubWFwPXt9O2xldCBlPW4uZ2V0UHJvZ3JhbVBhcmFtZXRlcih0LDM1NzE4KTtmb3IobGV0IGk9MDtpPGU7KytpKXtsZXQgcj1uLmdldEFjdGl2ZVVuaWZvcm0odCxpKSxzPW4uZ2V0VW5pZm9ybUxvY2F0aW9uKHQsci5uYW1lKTskUyhyLHMsdGhpcyl9fWlpLnByb3RvdHlwZS5zZXRWYWx1ZT1mdW5jdGlvbihuLHQsZSxpKXtsZXQgcj10aGlzLm1hcFt0XTtyIT09dm9pZCAwJiZyLnNldFZhbHVlKG4sZSxpKX07aWkucHJvdG90eXBlLnNldE9wdGlvbmFsPWZ1bmN0aW9uKG4sdCxlKXtsZXQgaT10W2VdO2khPT12b2lkIDAmJnRoaXMuc2V0VmFsdWUobixlLGkpfTtpaS51cGxvYWQ9ZnVuY3Rpb24obix0LGUsaSl7Zm9yKGxldCByPTAscz10Lmxlbmd0aDtyIT09czsrK3Ipe2xldCBvPXRbcl0sYT1lW28uaWRdO2EubmVlZHNVcGRhdGUhPT0hMSYmby5zZXRWYWx1ZShuLGEudmFsdWUsaSl9fTtpaS5zZXFXaXRoVmFsdWU9ZnVuY3Rpb24obix0KXtsZXQgZT1bXTtmb3IobGV0IGk9MCxyPW4ubGVuZ3RoO2khPT1yOysraSl7bGV0IHM9bltpXTtzLmlkIGluIHQmJmUucHVzaChzKX1yZXR1cm4gZX07ZnVuY3Rpb24gQ2cobix0LGUpe2xldCBpPW4uY3JlYXRlU2hhZGVyKHQpO3JldHVybiBuLnNoYWRlclNvdXJjZShpLGUpLG4uY29tcGlsZVNoYWRlcihpKSxpfXZhciBLUz0wO2Z1bmN0aW9uIFFTKG4pe2xldCB0PW4uc3BsaXQoYApgKTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdPWUrMSsiOiAiK3RbZV07cmV0dXJuIHQuam9pbihgCmApfWZ1bmN0aW9uIGpTKG4pe3N3aXRjaChuKXtjYXNlIHJpOnJldHVyblsiTGluZWFyIiwiKCB2YWx1ZSApIl07Y2FzZSAkdDpyZXR1cm5bInNSR0IiLCIoIHZhbHVlICkiXTtkZWZhdWx0OnJldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUHJvZ3JhbTogVW5zdXBwb3J0ZWQgZW5jb2Rpbmc6IixuKSxbIkxpbmVhciIsIiggdmFsdWUgKSJdfX1mdW5jdGlvbiBSZyhuLHQsZSl7bGV0IGk9bi5nZXRTaGFkZXJQYXJhbWV0ZXIodCwzNTcxMykscj1uLmdldFNoYWRlckluZm9Mb2codCkudHJpbSgpO3JldHVybiBpJiZyPT09IiI/IiI6ZS50b1VwcGVyQ2FzZSgpK2AKCmArcitgCgpgK1FTKG4uZ2V0U2hhZGVyU291cmNlKHQpKX1mdW5jdGlvbiB0RShuLHQpe2xldCBlPWpTKHQpO3JldHVybiJ2ZWM0ICIrbisiKCB2ZWM0IHZhbHVlICkgeyByZXR1cm4gTGluZWFyVG8iK2VbMF0rZVsxXSsiOyB9In1mdW5jdGlvbiBlRShuLHQpe2xldCBlO3N3aXRjaCh0KXtjYXNlIEF3OmU9IkxpbmVhciI7YnJlYWs7Y2FzZSBDdzplPSJSZWluaGFyZCI7YnJlYWs7Y2FzZSBSdzplPSJPcHRpbWl6ZWRDaW5lb24iO2JyZWFrO2Nhc2UgTHc6ZT0iQUNFU0ZpbG1pYyI7YnJlYWs7Y2FzZSBQdzplPSJDdXN0b20iO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW06IFVuc3VwcG9ydGVkIHRvbmVNYXBwaW5nOiIsdCksZT0iTGluZWFyIn1yZXR1cm4idmVjMyAiK24rIiggdmVjMyBjb2xvciApIHsgcmV0dXJuICIrZSsiVG9uZU1hcHBpbmcoIGNvbG9yICk7IH0ifWZ1bmN0aW9uIG5FKG4pe3JldHVybltuLmV4dGVuc2lvbkRlcml2YXRpdmVzfHxuLmVudk1hcEN1YmVVVnx8bi5idW1wTWFwfHxuLnRhbmdlbnRTcGFjZU5vcm1hbE1hcHx8bi5jbGVhcmNvYXROb3JtYWxNYXB8fG4uZmxhdFNoYWRpbmd8fG4uc2hhZGVySUQ9PT0icGh5c2ljYWwiPyIjZXh0ZW5zaW9uIEdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyA6IGVuYWJsZSI6IiIsKG4uZXh0ZW5zaW9uRnJhZ0RlcHRofHxuLmxvZ2FyaXRobWljRGVwdGhCdWZmZXIpJiZuLnJlbmRlcmVyRXh0ZW5zaW9uRnJhZ0RlcHRoPyIjZXh0ZW5zaW9uIEdMX0VYVF9mcmFnX2RlcHRoIDogZW5hYmxlIjoiIixuLmV4dGVuc2lvbkRyYXdCdWZmZXJzJiZuLnJlbmRlcmVyRXh0ZW5zaW9uRHJhd0J1ZmZlcnM/IiNleHRlbnNpb24gR0xfRVhUX2RyYXdfYnVmZmVycyA6IHJlcXVpcmUiOiIiLChuLmV4dGVuc2lvblNoYWRlclRleHR1cmVMT0R8fG4uZW52TWFwfHxuLnRyYW5zbWlzc2lvbikmJm4ucmVuZGVyZXJFeHRlbnNpb25TaGFkZXJUZXh0dXJlTG9kPyIjZXh0ZW5zaW9uIEdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2QgOiBlbmFibGUiOiIiXS5maWx0ZXIoJHMpLmpvaW4oYApgKX1mdW5jdGlvbiBpRShuKXtsZXQgdD1bXTtmb3IobGV0IGUgaW4gbil7bGV0IGk9bltlXTtpIT09ITEmJnQucHVzaCgiI2RlZmluZSAiK2UrIiAiK2kpfXJldHVybiB0LmpvaW4oYApgKX1mdW5jdGlvbiByRShuLHQpe2xldCBlPXt9LGk9bi5nZXRQcm9ncmFtUGFyYW1ldGVyKHQsMzU3MjEpO2ZvcihsZXQgcj0wO3I8aTtyKyspe2xldCBzPW4uZ2V0QWN0aXZlQXR0cmliKHQsciksbz1zLm5hbWUsYT0xO3MudHlwZT09PTM1Njc0JiYoYT0yKSxzLnR5cGU9PT0zNTY3NSYmKGE9Mykscy50eXBlPT09MzU2NzYmJihhPTQpLGVbb109e3R5cGU6cy50eXBlLGxvY2F0aW9uOm4uZ2V0QXR0cmliTG9jYXRpb24odCxvKSxsb2NhdGlvblNpemU6YX19cmV0dXJuIGV9ZnVuY3Rpb24gJHMobil7cmV0dXJuIG4hPT0iIn1mdW5jdGlvbiBMZyhuLHQpe3JldHVybiBuLnJlcGxhY2UoL05VTV9ESVJfTElHSFRTL2csdC5udW1EaXJMaWdodHMpLnJlcGxhY2UoL05VTV9TUE9UX0xJR0hUUy9nLHQubnVtU3BvdExpZ2h0cykucmVwbGFjZSgvTlVNX1JFQ1RfQVJFQV9MSUdIVFMvZyx0Lm51bVJlY3RBcmVhTGlnaHRzKS5yZXBsYWNlKC9OVU1fUE9JTlRfTElHSFRTL2csdC5udW1Qb2ludExpZ2h0cykucmVwbGFjZSgvTlVNX0hFTUlfTElHSFRTL2csdC5udW1IZW1pTGlnaHRzKS5yZXBsYWNlKC9OVU1fRElSX0xJR0hUX1NIQURPV1MvZyx0Lm51bURpckxpZ2h0U2hhZG93cykucmVwbGFjZSgvTlVNX1NQT1RfTElHSFRfU0hBRE9XUy9nLHQubnVtU3BvdExpZ2h0U2hhZG93cykucmVwbGFjZSgvTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MvZyx0Lm51bVBvaW50TGlnaHRTaGFkb3dzKX1mdW5jdGlvbiBQZyhuLHQpe3JldHVybiBuLnJlcGxhY2UoL05VTV9DTElQUElOR19QTEFORVMvZyx0Lm51bUNsaXBwaW5nUGxhbmVzKS5yZXBsYWNlKC9VTklPTl9DTElQUElOR19QTEFORVMvZyx0Lm51bUNsaXBwaW5nUGxhbmVzLXQubnVtQ2xpcEludGVyc2VjdGlvbil9dmFyIHNFPS9eWyBcdF0qI2luY2x1ZGUgKzwoW1x3XGQuL10rKT4vZ207ZnVuY3Rpb24gcXUobil7cmV0dXJuIG4ucmVwbGFjZShzRSxvRSl9ZnVuY3Rpb24gb0Uobix0KXtsZXQgZT1QdFt0XTtpZihlPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigiQ2FuIG5vdCByZXNvbHZlICNpbmNsdWRlIDwiK3QrIj4iKTtyZXR1cm4gcXUoZSl9dmFyIGFFPS8jcHJhZ21hIHVucm9sbF9sb29wW1xzXSs/Zm9yIFwoIGludCBpIFw9IChcZCspXDsgaSA8IChcZCspXDsgaSBcK1wrIFwpIFx7KFtcc1xTXSs/KSg/PVx9KVx9L2csbEU9LyNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRccytmb3JccypcKFxzKmludFxzK2lccyo9XHMqKFxkKylccyo7XHMqaVxzKjxccyooXGQrKVxzKjtccyppXHMqXCtcK1xzKlwpXHMqeyhbXHNcU10rPyl9XHMrI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmQvZztmdW5jdGlvbiBEZyhuKXtyZXR1cm4gbi5yZXBsYWNlKGxFLEUwKS5yZXBsYWNlKGFFLGNFKX1mdW5jdGlvbiBjRShuLHQsZSxpKXtyZXR1cm4gY29uc29sZS53YXJuKCJXZWJHTFByb2dyYW06ICNwcmFnbWEgdW5yb2xsX2xvb3Agc2hhZGVyIHN5bnRheCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnQgc3ludGF4IGluc3RlYWQuIiksRTAobix0LGUsaSl9ZnVuY3Rpb24gRTAobix0LGUsaSl7bGV0IHI9IiI7Zm9yKGxldCBzPXBhcnNlSW50KHQpO3M8cGFyc2VJbnQoZSk7cysrKXIrPWkucmVwbGFjZSgvXFtccyppXHMqXF0vZywiWyAiK3MrIiBdIikucmVwbGFjZSgvVU5ST0xMRURfTE9PUF9JTkRFWC9nLHMpO3JldHVybiByfWZ1bmN0aW9uIElnKG4pe2xldCB0PSJwcmVjaXNpb24gIituLnByZWNpc2lvbitgIGZsb2F0OwpwcmVjaXNpb24gYCtuLnByZWNpc2lvbisiIGludDsiO3JldHVybiBuLnByZWNpc2lvbj09PSJoaWdocCI/dCs9YAojZGVmaW5lIEhJR0hfUFJFQ0lTSU9OYDpuLnByZWNpc2lvbj09PSJtZWRpdW1wIj90Kz1gCiNkZWZpbmUgTUVESVVNX1BSRUNJU0lPTmA6bi5wcmVjaXNpb249PT0ibG93cCImJih0Kz1gCiNkZWZpbmUgTE9XX1BSRUNJU0lPTmApLHR9ZnVuY3Rpb24gdUUobil7bGV0IHQ9IlNIQURPV01BUF9UWVBFX0JBU0lDIjtyZXR1cm4gbi5zaGFkb3dNYXBUeXBlPT09bDA/dD0iU0hBRE9XTUFQX1RZUEVfUENGIjpuLnNoYWRvd01hcFR5cGU9PT1zdz90PSJTSEFET1dNQVBfVFlQRV9QQ0ZfU09GVCI6bi5zaGFkb3dNYXBUeXBlPT09SnMmJih0PSJTSEFET1dNQVBfVFlQRV9WU00iKSx0fWZ1bmN0aW9uIGhFKG4pe2xldCB0PSJFTlZNQVBfVFlQRV9DVUJFIjtpZihuLmVudk1hcClzd2l0Y2gobi5lbnZNYXBNb2RlKXtjYXNlIEFvOmNhc2UgQ286dD0iRU5WTUFQX1RZUEVfQ1VCRSI7YnJlYWs7Y2FzZSBSbDpjYXNlIEtoOnQ9IkVOVk1BUF9UWVBFX0NVQkVfVVYiO2JyZWFrfXJldHVybiB0fWZ1bmN0aW9uIGZFKG4pe2xldCB0PSJFTlZNQVBfTU9ERV9SRUZMRUNUSU9OIjtpZihuLmVudk1hcClzd2l0Y2gobi5lbnZNYXBNb2RlKXtjYXNlIENvOmNhc2UgS2g6dD0iRU5WTUFQX01PREVfUkVGUkFDVElPTiI7YnJlYWt9cmV0dXJuIHR9ZnVuY3Rpb24gZEUobil7bGV0IHQ9IkVOVk1BUF9CTEVORElOR19OT05FIjtpZihuLmVudk1hcClzd2l0Y2gobi5jb21iaW5lKXtjYXNlIENsOnQ9IkVOVk1BUF9CTEVORElOR19NVUxUSVBMWSI7YnJlYWs7Y2FzZSBFdzp0PSJFTlZNQVBfQkxFTkRJTkdfTUlYIjticmVhaztjYXNlIFR3OnQ9IkVOVk1BUF9CTEVORElOR19BREQiO2JyZWFrfXJldHVybiB0fWZ1bmN0aW9uIHBFKG4sdCxlLGkpe2xldCByPW4uZ2V0Q29udGV4dCgpLHM9ZS5kZWZpbmVzLG89ZS52ZXJ0ZXhTaGFkZXIsYT1lLmZyYWdtZW50U2hhZGVyLGw9dUUoZSksYz1oRShlKSx1PWZFKGUpLGg9ZEUoZSksZj1lLmlzV2ViR0wyPyIiOm5FKGUpLGQ9aUUocyksZz1yLmNyZWF0ZVByb2dyYW0oKSx4LHYsbT1lLmdsc2xWZXJzaW9uPyIjdmVyc2lvbiAiK2UuZ2xzbFZlcnNpb24rYApgOiIiO2UuaXNSYXdTaGFkZXJNYXRlcmlhbD8oeD1bZF0uZmlsdGVyKCRzKS5qb2luKGAKYCkseC5sZW5ndGg+MCYmKHgrPWAKYCksdj1bZixkXS5maWx0ZXIoJHMpLmpvaW4oYApgKSx2Lmxlbmd0aD4wJiYodis9YApgKSk6KHg9W0lnKGUpLCIjZGVmaW5lIFNIQURFUl9OQU1FICIrZS5zaGFkZXJOYW1lLGQsZS5pbnN0YW5jaW5nPyIjZGVmaW5lIFVTRV9JTlNUQU5DSU5HIjoiIixlLmluc3RhbmNpbmdDb2xvcj8iI2RlZmluZSBVU0VfSU5TVEFOQ0lOR19DT0xPUiI6IiIsZS5zdXBwb3J0c1ZlcnRleFRleHR1cmVzPyIjZGVmaW5lIFZFUlRFWF9URVhUVVJFUyI6IiIsIiNkZWZpbmUgTUFYX0JPTkVTICIrZS5tYXhCb25lcyxlLnVzZUZvZyYmZS5mb2c/IiNkZWZpbmUgVVNFX0ZPRyI6IiIsZS51c2VGb2cmJmUuZm9nRXhwMj8iI2RlZmluZSBGT0dfRVhQMiI6IiIsZS5tYXA/IiNkZWZpbmUgVVNFX01BUCI6IiIsZS5lbnZNYXA/IiNkZWZpbmUgVVNFX0VOVk1BUCI6IiIsZS5lbnZNYXA/IiNkZWZpbmUgIit1OiIiLGUubGlnaHRNYXA/IiNkZWZpbmUgVVNFX0xJR0hUTUFQIjoiIixlLmFvTWFwPyIjZGVmaW5lIFVTRV9BT01BUCI6IiIsZS5lbWlzc2l2ZU1hcD8iI2RlZmluZSBVU0VfRU1JU1NJVkVNQVAiOiIiLGUuYnVtcE1hcD8iI2RlZmluZSBVU0VfQlVNUE1BUCI6IiIsZS5ub3JtYWxNYXA/IiNkZWZpbmUgVVNFX05PUk1BTE1BUCI6IiIsZS5ub3JtYWxNYXAmJmUub2JqZWN0U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgT0JKRUNUU1BBQ0VfTk9STUFMTUFQIjoiIixlLm5vcm1hbE1hcCYmZS50YW5nZW50U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgVEFOR0VOVFNQQUNFX05PUk1BTE1BUCI6IiIsZS5jbGVhcmNvYXRNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVE1BUCI6IiIsZS5jbGVhcmNvYXRSb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVF9ST1VHSE5FU1NNQVAiOiIiLGUuY2xlYXJjb2F0Tm9ybWFsTWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQIjoiIixlLmRpc3BsYWNlbWVudE1hcCYmZS5zdXBwb3J0c1ZlcnRleFRleHR1cmVzPyIjZGVmaW5lIFVTRV9ESVNQTEFDRU1FTlRNQVAiOiIiLGUuc3BlY3VsYXJNYXA/IiNkZWZpbmUgVVNFX1NQRUNVTEFSTUFQIjoiIixlLnNwZWN1bGFySW50ZW5zaXR5TWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUklOVEVOU0lUWU1BUCI6IiIsZS5zcGVjdWxhckNvbG9yTWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUkNPTE9STUFQIjoiIixlLnJvdWdobmVzc01hcD8iI2RlZmluZSBVU0VfUk9VR0hORVNTTUFQIjoiIixlLm1ldGFsbmVzc01hcD8iI2RlZmluZSBVU0VfTUVUQUxORVNTTUFQIjoiIixlLmFscGhhTWFwPyIjZGVmaW5lIFVTRV9BTFBIQU1BUCI6IiIsZS50cmFuc21pc3Npb24/IiNkZWZpbmUgVVNFX1RSQU5TTUlTU0lPTiI6IiIsZS50cmFuc21pc3Npb25NYXA/IiNkZWZpbmUgVVNFX1RSQU5TTUlTU0lPTk1BUCI6IiIsZS50aGlja25lc3NNYXA/IiNkZWZpbmUgVVNFX1RISUNLTkVTU01BUCI6IiIsZS5zaGVlbkNvbG9yTWFwPyIjZGVmaW5lIFVTRV9TSEVFTkNPTE9STUFQIjoiIixlLnNoZWVuUm91Z2huZXNzTWFwPyIjZGVmaW5lIFVTRV9TSEVFTlJPVUdITkVTU01BUCI6IiIsZS52ZXJ0ZXhUYW5nZW50cz8iI2RlZmluZSBVU0VfVEFOR0VOVCI6IiIsZS52ZXJ0ZXhDb2xvcnM/IiNkZWZpbmUgVVNFX0NPTE9SIjoiIixlLnZlcnRleEFscGhhcz8iI2RlZmluZSBVU0VfQ09MT1JfQUxQSEEiOiIiLGUudmVydGV4VXZzPyIjZGVmaW5lIFVTRV9VViI6IiIsZS51dnNWZXJ0ZXhPbmx5PyIjZGVmaW5lIFVWU19WRVJURVhfT05MWSI6IiIsZS5mbGF0U2hhZGluZz8iI2RlZmluZSBGTEFUX1NIQURFRCI6IiIsZS5za2lubmluZz8iI2RlZmluZSBVU0VfU0tJTk5JTkciOiIiLGUudXNlVmVydGV4VGV4dHVyZT8iI2RlZmluZSBCT05FX1RFWFRVUkUiOiIiLGUubW9ycGhUYXJnZXRzPyIjZGVmaW5lIFVTRV9NT1JQSFRBUkdFVFMiOiIiLGUubW9ycGhOb3JtYWxzJiZlLmZsYXRTaGFkaW5nPT09ITE/IiNkZWZpbmUgVVNFX01PUlBITk9STUFMUyI6IiIsZS5tb3JwaFRhcmdldHMmJmUuaXNXZWJHTDI/IiNkZWZpbmUgTU9SUEhUQVJHRVRTX1RFWFRVUkUiOiIiLGUubW9ycGhUYXJnZXRzJiZlLmlzV2ViR0wyPyIjZGVmaW5lIE1PUlBIVEFSR0VUU19DT1VOVCAiK2UubW9ycGhUYXJnZXRzQ291bnQ6IiIsZS5kb3VibGVTaWRlZD8iI2RlZmluZSBET1VCTEVfU0lERUQiOiIiLGUuZmxpcFNpZGVkPyIjZGVmaW5lIEZMSVBfU0lERUQiOiIiLGUuc2hhZG93TWFwRW5hYmxlZD8iI2RlZmluZSBVU0VfU0hBRE9XTUFQIjoiIixlLnNoYWRvd01hcEVuYWJsZWQ/IiNkZWZpbmUgIitsOiIiLGUuc2l6ZUF0dGVudWF0aW9uPyIjZGVmaW5lIFVTRV9TSVpFQVRURU5VQVRJT04iOiIiLGUubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcj8iI2RlZmluZSBVU0VfTE9HREVQVEhCVUYiOiIiLGUubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlciYmZS5yZW5kZXJlckV4dGVuc2lvbkZyYWdEZXB0aD8iI2RlZmluZSBVU0VfTE9HREVQVEhCVUZfRVhUIjoiIiwidW5pZm9ybSBtYXQ0IG1vZGVsTWF0cml4OyIsInVuaWZvcm0gbWF0NCBtb2RlbFZpZXdNYXRyaXg7IiwidW5pZm9ybSBtYXQ0IHByb2plY3Rpb25NYXRyaXg7IiwidW5pZm9ybSBtYXQ0IHZpZXdNYXRyaXg7IiwidW5pZm9ybSBtYXQzIG5vcm1hbE1hdHJpeDsiLCJ1bmlmb3JtIHZlYzMgY2FtZXJhUG9zaXRpb247IiwidW5pZm9ybSBib29sIGlzT3J0aG9ncmFwaGljOyIsIiNpZmRlZiBVU0VfSU5TVEFOQ0lORyIsIglhdHRyaWJ1dGUgbWF0NCBpbnN0YW5jZU1hdHJpeDsiLCIjZW5kaWYiLCIjaWZkZWYgVVNFX0lOU1RBTkNJTkdfQ09MT1IiLCIJYXR0cmlidXRlIHZlYzMgaW5zdGFuY2VDb2xvcjsiLCIjZW5kaWYiLCJhdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjsiLCJhdHRyaWJ1dGUgdmVjMyBub3JtYWw7IiwiYXR0cmlidXRlIHZlYzIgdXY7IiwiI2lmZGVmIFVTRV9UQU5HRU5UIiwiCWF0dHJpYnV0ZSB2ZWM0IHRhbmdlbnQ7IiwiI2VuZGlmIiwiI2lmIGRlZmluZWQoIFVTRV9DT0xPUl9BTFBIQSApIiwiCWF0dHJpYnV0ZSB2ZWM0IGNvbG9yOyIsIiNlbGlmIGRlZmluZWQoIFVTRV9DT0xPUiApIiwiCWF0dHJpYnV0ZSB2ZWMzIGNvbG9yOyIsIiNlbmRpZiIsIiNpZiAoIGRlZmluZWQoIFVTRV9NT1JQSFRBUkdFVFMgKSAmJiAhIGRlZmluZWQoIE1PUlBIVEFSR0VUU19URVhUVVJFICkgKSIsIglhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDA7IiwiCWF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0MTsiLCIJYXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQyOyIsIglhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDM7IiwiCSNpZmRlZiBVU0VfTU9SUEhOT1JNQUxTIiwiCQlhdHRyaWJ1dGUgdmVjMyBtb3JwaE5vcm1hbDA7IiwiCQlhdHRyaWJ1dGUgdmVjMyBtb3JwaE5vcm1hbDE7IiwiCQlhdHRyaWJ1dGUgdmVjMyBtb3JwaE5vcm1hbDI7IiwiCQlhdHRyaWJ1dGUgdmVjMyBtb3JwaE5vcm1hbDM7IiwiCSNlbHNlIiwiCQlhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDQ7IiwiCQlhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDU7IiwiCQlhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDY7IiwiCQlhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDc7IiwiCSNlbmRpZiIsIiNlbmRpZiIsIiNpZmRlZiBVU0VfU0tJTk5JTkciLCIJYXR0cmlidXRlIHZlYzQgc2tpbkluZGV4OyIsIglhdHRyaWJ1dGUgdmVjNCBza2luV2VpZ2h0OyIsIiNlbmRpZiIsYApgXS5maWx0ZXIoJHMpLmpvaW4oYApgKSx2PVtmLElnKGUpLCIjZGVmaW5lIFNIQURFUl9OQU1FICIrZS5zaGFkZXJOYW1lLGQsZS51c2VGb2cmJmUuZm9nPyIjZGVmaW5lIFVTRV9GT0ciOiIiLGUudXNlRm9nJiZlLmZvZ0V4cDI/IiNkZWZpbmUgRk9HX0VYUDIiOiIiLGUubWFwPyIjZGVmaW5lIFVTRV9NQVAiOiIiLGUubWF0Y2FwPyIjZGVmaW5lIFVTRV9NQVRDQVAiOiIiLGUuZW52TWFwPyIjZGVmaW5lIFVTRV9FTlZNQVAiOiIiLGUuZW52TWFwPyIjZGVmaW5lICIrYzoiIixlLmVudk1hcD8iI2RlZmluZSAiK3U6IiIsZS5lbnZNYXA/IiNkZWZpbmUgIitoOiIiLGUubGlnaHRNYXA/IiNkZWZpbmUgVVNFX0xJR0hUTUFQIjoiIixlLmFvTWFwPyIjZGVmaW5lIFVTRV9BT01BUCI6IiIsZS5lbWlzc2l2ZU1hcD8iI2RlZmluZSBVU0VfRU1JU1NJVkVNQVAiOiIiLGUuYnVtcE1hcD8iI2RlZmluZSBVU0VfQlVNUE1BUCI6IiIsZS5ub3JtYWxNYXA/IiNkZWZpbmUgVVNFX05PUk1BTE1BUCI6IiIsZS5ub3JtYWxNYXAmJmUub2JqZWN0U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgT0JKRUNUU1BBQ0VfTk9STUFMTUFQIjoiIixlLm5vcm1hbE1hcCYmZS50YW5nZW50U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgVEFOR0VOVFNQQUNFX05PUk1BTE1BUCI6IiIsZS5jbGVhcmNvYXQ/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVCI6IiIsZS5jbGVhcmNvYXRNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVE1BUCI6IiIsZS5jbGVhcmNvYXRSb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVF9ST1VHSE5FU1NNQVAiOiIiLGUuY2xlYXJjb2F0Tm9ybWFsTWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQIjoiIixlLnNwZWN1bGFyTWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUk1BUCI6IiIsZS5zcGVjdWxhckludGVuc2l0eU1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJJTlRFTlNJVFlNQVAiOiIiLGUuc3BlY3VsYXJDb2xvck1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJDT0xPUk1BUCI6IiIsZS5yb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX1JPVUdITkVTU01BUCI6IiIsZS5tZXRhbG5lc3NNYXA/IiNkZWZpbmUgVVNFX01FVEFMTkVTU01BUCI6IiIsZS5hbHBoYU1hcD8iI2RlZmluZSBVU0VfQUxQSEFNQVAiOiIiLGUuYWxwaGFUZXN0PyIjZGVmaW5lIFVTRV9BTFBIQVRFU1QiOiIiLGUuc2hlZW4/IiNkZWZpbmUgVVNFX1NIRUVOIjoiIixlLnNoZWVuQ29sb3JNYXA/IiNkZWZpbmUgVVNFX1NIRUVOQ09MT1JNQVAiOiIiLGUuc2hlZW5Sb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX1NIRUVOUk9VR0hORVNTTUFQIjoiIixlLnRyYW5zbWlzc2lvbj8iI2RlZmluZSBVU0VfVFJBTlNNSVNTSU9OIjoiIixlLnRyYW5zbWlzc2lvbk1hcD8iI2RlZmluZSBVU0VfVFJBTlNNSVNTSU9OTUFQIjoiIixlLnRoaWNrbmVzc01hcD8iI2RlZmluZSBVU0VfVEhJQ0tORVNTTUFQIjoiIixlLmRlY29kZVZpZGVvVGV4dHVyZT8iI2RlZmluZSBERUNPREVfVklERU9fVEVYVFVSRSI6IiIsZS52ZXJ0ZXhUYW5nZW50cz8iI2RlZmluZSBVU0VfVEFOR0VOVCI6IiIsZS52ZXJ0ZXhDb2xvcnN8fGUuaW5zdGFuY2luZ0NvbG9yPyIjZGVmaW5lIFVTRV9DT0xPUiI6IiIsZS52ZXJ0ZXhBbHBoYXM/IiNkZWZpbmUgVVNFX0NPTE9SX0FMUEhBIjoiIixlLnZlcnRleFV2cz8iI2RlZmluZSBVU0VfVVYiOiIiLGUudXZzVmVydGV4T25seT8iI2RlZmluZSBVVlNfVkVSVEVYX09OTFkiOiIiLGUuZ3JhZGllbnRNYXA/IiNkZWZpbmUgVVNFX0dSQURJRU5UTUFQIjoiIixlLmZsYXRTaGFkaW5nPyIjZGVmaW5lIEZMQVRfU0hBREVEIjoiIixlLmRvdWJsZVNpZGVkPyIjZGVmaW5lIERPVUJMRV9TSURFRCI6IiIsZS5mbGlwU2lkZWQ/IiNkZWZpbmUgRkxJUF9TSURFRCI6IiIsZS5zaGFkb3dNYXBFbmFibGVkPyIjZGVmaW5lIFVTRV9TSEFET1dNQVAiOiIiLGUuc2hhZG93TWFwRW5hYmxlZD8iI2RlZmluZSAiK2w6IiIsZS5wcmVtdWx0aXBsaWVkQWxwaGE/IiNkZWZpbmUgUFJFTVVMVElQTElFRF9BTFBIQSI6IiIsZS5waHlzaWNhbGx5Q29ycmVjdExpZ2h0cz8iI2RlZmluZSBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTIjoiIixlLmxvZ2FyaXRobWljRGVwdGhCdWZmZXI/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGIjoiIixlLmxvZ2FyaXRobWljRGVwdGhCdWZmZXImJmUucmVuZGVyZXJFeHRlbnNpb25GcmFnRGVwdGg/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGX0VYVCI6IiIsKGUuZXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxPRHx8ZS5lbnZNYXApJiZlLnJlbmRlcmVyRXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxvZD8iI2RlZmluZSBURVhUVVJFX0xPRF9FWFQiOiIiLCJ1bmlmb3JtIG1hdDQgdmlld01hdHJpeDsiLCJ1bmlmb3JtIHZlYzMgY2FtZXJhUG9zaXRpb247IiwidW5pZm9ybSBib29sIGlzT3J0aG9ncmFwaGljOyIsZS50b25lTWFwcGluZyE9PXRpPyIjZGVmaW5lIFRPTkVfTUFQUElORyI6IiIsZS50b25lTWFwcGluZyE9PXRpP1B0LnRvbmVtYXBwaW5nX3BhcnNfZnJhZ21lbnQ6IiIsZS50b25lTWFwcGluZyE9PXRpP2VFKCJ0b25lTWFwcGluZyIsZS50b25lTWFwcGluZyk6IiIsZS5kaXRoZXJpbmc/IiNkZWZpbmUgRElUSEVSSU5HIjoiIixlLmFscGhhV3JpdGU/IiI6IiNkZWZpbmUgT1BBUVVFIixQdC5lbmNvZGluZ3NfcGFyc19mcmFnbWVudCx0RSgibGluZWFyVG9PdXRwdXRUZXhlbCIsZS5vdXRwdXRFbmNvZGluZyksZS5kZXB0aFBhY2tpbmc/IiNkZWZpbmUgREVQVEhfUEFDS0lORyAiK2UuZGVwdGhQYWNraW5nOiIiLGAKYF0uZmlsdGVyKCRzKS5qb2luKGAKYCkpLG89cXUobyksbz1MZyhvLGUpLG89UGcobyxlKSxhPXF1KGEpLGE9TGcoYSxlKSxhPVBnKGEsZSksbz1EZyhvKSxhPURnKGEpLGUuaXNXZWJHTDImJmUuaXNSYXdTaGFkZXJNYXRlcmlhbCE9PSEwJiYobT1gI3ZlcnNpb24gMzAwIGVzCmAseD1bInByZWNpc2lvbiBtZWRpdW1wIHNhbXBsZXIyREFycmF5OyIsIiNkZWZpbmUgYXR0cmlidXRlIGluIiwiI2RlZmluZSB2YXJ5aW5nIG91dCIsIiNkZWZpbmUgdGV4dHVyZTJEIHRleHR1cmUiXS5qb2luKGAKYCkrYApgK3gsdj1bIiNkZWZpbmUgdmFyeWluZyBpbiIsZS5nbHNsVmVyc2lvbj09PW5nPyIiOiJsYXlvdXQobG9jYXRpb24gPSAwKSBvdXQgaGlnaHAgdmVjNCBwY19mcmFnQ29sb3I7IixlLmdsc2xWZXJzaW9uPT09bmc/IiI6IiNkZWZpbmUgZ2xfRnJhZ0NvbG9yIHBjX2ZyYWdDb2xvciIsIiNkZWZpbmUgZ2xfRnJhZ0RlcHRoRVhUIGdsX0ZyYWdEZXB0aCIsIiNkZWZpbmUgdGV4dHVyZTJEIHRleHR1cmUiLCIjZGVmaW5lIHRleHR1cmVDdWJlIHRleHR1cmUiLCIjZGVmaW5lIHRleHR1cmUyRFByb2ogdGV4dHVyZVByb2oiLCIjZGVmaW5lIHRleHR1cmUyRExvZEVYVCB0ZXh0dXJlTG9kIiwiI2RlZmluZSB0ZXh0dXJlMkRQcm9qTG9kRVhUIHRleHR1cmVQcm9qTG9kIiwiI2RlZmluZSB0ZXh0dXJlQ3ViZUxvZEVYVCB0ZXh0dXJlTG9kIiwiI2RlZmluZSB0ZXh0dXJlMkRHcmFkRVhUIHRleHR1cmVHcmFkIiwiI2RlZmluZSB0ZXh0dXJlMkRQcm9qR3JhZEVYVCB0ZXh0dXJlUHJvakdyYWQiLCIjZGVmaW5lIHRleHR1cmVDdWJlR3JhZEVYVCB0ZXh0dXJlR3JhZCJdLmpvaW4oYApgKStgCmArdik7bGV0IHA9bSt4K28sYj1tK3YrYSxfPUNnKHIsMzU2MzMscCksUz1DZyhyLDM1NjMyLGIpO2lmKHIuYXR0YWNoU2hhZGVyKGcsXyksci5hdHRhY2hTaGFkZXIoZyxTKSxlLmluZGV4MEF0dHJpYnV0ZU5hbWUhPT12b2lkIDA/ci5iaW5kQXR0cmliTG9jYXRpb24oZywwLGUuaW5kZXgwQXR0cmlidXRlTmFtZSk6ZS5tb3JwaFRhcmdldHM9PT0hMCYmci5iaW5kQXR0cmliTG9jYXRpb24oZywwLCJwb3NpdGlvbiIpLHIubGlua1Byb2dyYW0oZyksbi5kZWJ1Zy5jaGVja1NoYWRlckVycm9ycyl7bGV0IEg9ci5nZXRQcm9ncmFtSW5mb0xvZyhnKS50cmltKCksdHQ9ci5nZXRTaGFkZXJJbmZvTG9nKF8pLnRyaW0oKSxYPXIuZ2V0U2hhZGVySW5mb0xvZyhTKS50cmltKCkseT0hMCxSPSEwO2lmKHIuZ2V0UHJvZ3JhbVBhcmFtZXRlcihnLDM1NzE0KT09PSExKXt5PSExO2xldCBEPVJnKHIsXywidmVydGV4IiksRj1SZyhyLFMsImZyYWdtZW50Iik7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xQcm9ncmFtOiBTaGFkZXIgRXJyb3IgIityLmdldEVycm9yKCkrIiAtIFZBTElEQVRFX1NUQVRVUyAiK3IuZ2V0UHJvZ3JhbVBhcmFtZXRlcihnLDM1NzE1KStgCgpQcm9ncmFtIEluZm8gTG9nOiBgK0grYApgK0QrYApgK0YpfWVsc2UgSCE9PSIiP2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xQcm9ncmFtOiBQcm9ncmFtIEluZm8gTG9nOiIsSCk6KHR0PT09IiJ8fFg9PT0iIikmJihSPSExKTtSJiYodGhpcy5kaWFnbm9zdGljcz17cnVubmFibGU6eSxwcm9ncmFtTG9nOkgsdmVydGV4U2hhZGVyOntsb2c6dHQscHJlZml4Onh9LGZyYWdtZW50U2hhZGVyOntsb2c6WCxwcmVmaXg6dn19KX1yLmRlbGV0ZVNoYWRlcihfKSxyLmRlbGV0ZVNoYWRlcihTKTtsZXQgTDt0aGlzLmdldFVuaWZvcm1zPWZ1bmN0aW9uKCl7cmV0dXJuIEw9PT12b2lkIDAmJihMPW5ldyBpaShyLGcpKSxMfTtsZXQgQTtyZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIEE9PT12b2lkIDAmJihBPXJFKHIsZykpLEF9LHRoaXMuZGVzdHJveT1mdW5jdGlvbigpe2kucmVsZWFzZVN0YXRlc09mUHJvZ3JhbSh0aGlzKSxyLmRlbGV0ZVByb2dyYW0oZyksdGhpcy5wcm9ncmFtPXZvaWQgMH0sdGhpcy5uYW1lPWUuc2hhZGVyTmFtZSx0aGlzLmlkPUtTKyssdGhpcy5jYWNoZUtleT10LHRoaXMudXNlZFRpbWVzPTEsdGhpcy5wcm9ncmFtPWcsdGhpcy52ZXJ0ZXhTaGFkZXI9Xyx0aGlzLmZyYWdtZW50U2hhZGVyPVMsdGhpc312YXIgbUU9MCxYdT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc2hhZGVyQ2FjaGU9bmV3IE1hcCx0aGlzLm1hdGVyaWFsQ2FjaGU9bmV3IE1hcH11cGRhdGUodCl7bGV0IGU9dC52ZXJ0ZXhTaGFkZXIsaT10LmZyYWdtZW50U2hhZGVyLHI9dGhpcy5fZ2V0U2hhZGVyU3RhZ2UoZSkscz10aGlzLl9nZXRTaGFkZXJTdGFnZShpKSxvPXRoaXMuX2dldFNoYWRlckNhY2hlRm9yTWF0ZXJpYWwodCk7cmV0dXJuIG8uaGFzKHIpPT09ITEmJihvLmFkZChyKSxyLnVzZWRUaW1lcysrKSxvLmhhcyhzKT09PSExJiYoby5hZGQocykscy51c2VkVGltZXMrKyksdGhpc31yZW1vdmUodCl7bGV0IGU9dGhpcy5tYXRlcmlhbENhY2hlLmdldCh0KTtmb3IobGV0IGkgb2YgZSlpLnVzZWRUaW1lcy0tLGkudXNlZFRpbWVzPT09MCYmdGhpcy5zaGFkZXJDYWNoZS5kZWxldGUoaSk7cmV0dXJuIHRoaXMubWF0ZXJpYWxDYWNoZS5kZWxldGUodCksdGhpc31nZXRWZXJ0ZXhTaGFkZXJJRCh0KXtyZXR1cm4gdGhpcy5fZ2V0U2hhZGVyU3RhZ2UodC52ZXJ0ZXhTaGFkZXIpLmlkfWdldEZyYWdtZW50U2hhZGVySUQodCl7cmV0dXJuIHRoaXMuX2dldFNoYWRlclN0YWdlKHQuZnJhZ21lbnRTaGFkZXIpLmlkfWRpc3Bvc2UoKXt0aGlzLnNoYWRlckNhY2hlLmNsZWFyKCksdGhpcy5tYXRlcmlhbENhY2hlLmNsZWFyKCl9X2dldFNoYWRlckNhY2hlRm9yTWF0ZXJpYWwodCl7bGV0IGU9dGhpcy5tYXRlcmlhbENhY2hlO3JldHVybiBlLmhhcyh0KT09PSExJiZlLnNldCh0LG5ldyBTZXQpLGUuZ2V0KHQpfV9nZXRTaGFkZXJTdGFnZSh0KXtsZXQgZT10aGlzLnNoYWRlckNhY2hlO2lmKGUuaGFzKHQpPT09ITEpe2xldCBpPW5ldyBZdTtlLnNldCh0LGkpfXJldHVybiBlLmdldCh0KX19LFl1PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5pZD1tRSsrLHRoaXMudXNlZFRpbWVzPTB9fTtmdW5jdGlvbiBnRShuLHQsZSxpLHIscyxvKXtsZXQgYT1uZXcgaWwsbD1uZXcgWHUsYz1bXSx1PXIuaXNXZWJHTDIsaD1yLmxvZ2FyaXRobWljRGVwdGhCdWZmZXIsZj1yLmZsb2F0VmVydGV4VGV4dHVyZXMsZD1yLm1heFZlcnRleFVuaWZvcm1zLGc9ci52ZXJ0ZXhUZXh0dXJlcyx4PXIucHJlY2lzaW9uLHY9e01lc2hEZXB0aE1hdGVyaWFsOiJkZXB0aCIsTWVzaERpc3RhbmNlTWF0ZXJpYWw6ImRpc3RhbmNlUkdCQSIsTWVzaE5vcm1hbE1hdGVyaWFsOiJub3JtYWwiLE1lc2hCYXNpY01hdGVyaWFsOiJiYXNpYyIsTWVzaExhbWJlcnRNYXRlcmlhbDoibGFtYmVydCIsTWVzaFBob25nTWF0ZXJpYWw6InBob25nIixNZXNoVG9vbk1hdGVyaWFsOiJ0b29uIixNZXNoU3RhbmRhcmRNYXRlcmlhbDoicGh5c2ljYWwiLE1lc2hQaHlzaWNhbE1hdGVyaWFsOiJwaHlzaWNhbCIsTWVzaE1hdGNhcE1hdGVyaWFsOiJtYXRjYXAiLExpbmVCYXNpY01hdGVyaWFsOiJiYXNpYyIsTGluZURhc2hlZE1hdGVyaWFsOiJkYXNoZWQiLFBvaW50c01hdGVyaWFsOiJwb2ludHMiLFNoYWRvd01hdGVyaWFsOiJzaGFkb3ciLFNwcml0ZU1hdGVyaWFsOiJzcHJpdGUifTtmdW5jdGlvbiBtKHkpe2xldCBEPXkuc2tlbGV0b24uYm9uZXM7aWYoZilyZXR1cm4gMTAyNDt7bGV0IHo9TWF0aC5mbG9vcigoZC0yMCkvNCksTj1NYXRoLm1pbih6LEQubGVuZ3RoKTtyZXR1cm4gTjxELmxlbmd0aD8oY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBTa2VsZXRvbiBoYXMgIitELmxlbmd0aCsiIGJvbmVzLiBUaGlzIEdQVSBzdXBwb3J0cyAiK04rIi4iKSwwKTpOfX1mdW5jdGlvbiBwKHksUixELEYseil7bGV0IE49Ri5mb2csVj15LmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWw/Ri5lbnZpcm9ubWVudDpudWxsLFE9KHkuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9lOnQpLmdldCh5LmVudk1hcHx8ViksYXQ9dlt5LnR5cGVdLEc9ei5pc1NraW5uZWRNZXNoP20oeik6MDt5LnByZWNpc2lvbiE9PW51bGwmJih4PXIuZ2V0TWF4UHJlY2lzaW9uKHkucHJlY2lzaW9uKSx4IT09eS5wcmVjaXNpb24mJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xQcm9ncmFtLmdldFBhcmFtZXRlcnM6Iix5LnByZWNpc2lvbiwibm90IHN1cHBvcnRlZCwgdXNpbmciLHgsImluc3RlYWQuIikpO2xldCAkLGx0LGR0LHh0O2lmKGF0KXtsZXQgQj1mblthdF07JD1CLnZlcnRleFNoYWRlcixsdD1CLmZyYWdtZW50U2hhZGVyfWVsc2UgJD15LnZlcnRleFNoYWRlcixsdD15LmZyYWdtZW50U2hhZGVyLGwudXBkYXRlKHkpLGR0PWwuZ2V0VmVydGV4U2hhZGVySUQoeSkseHQ9bC5nZXRGcmFnbWVudFNoYWRlcklEKHkpO2xldCBrPW4uZ2V0UmVuZGVyVGFyZ2V0KCksRnQ9eS5hbHBoYVRlc3Q+MCxtdD15LmNsZWFyY29hdD4wO3JldHVybntpc1dlYkdMMjp1LHNoYWRlcklEOmF0LHNoYWRlck5hbWU6eS50eXBlLHZlcnRleFNoYWRlcjokLGZyYWdtZW50U2hhZGVyOmx0LGRlZmluZXM6eS5kZWZpbmVzLGN1c3RvbVZlcnRleFNoYWRlcklEOmR0LGN1c3RvbUZyYWdtZW50U2hhZGVySUQ6eHQsaXNSYXdTaGFkZXJNYXRlcmlhbDp5LmlzUmF3U2hhZGVyTWF0ZXJpYWw9PT0hMCxnbHNsVmVyc2lvbjp5Lmdsc2xWZXJzaW9uLHByZWNpc2lvbjp4LGluc3RhbmNpbmc6ei5pc0luc3RhbmNlZE1lc2g9PT0hMCxpbnN0YW5jaW5nQ29sb3I6ei5pc0luc3RhbmNlZE1lc2g9PT0hMCYmei5pbnN0YW5jZUNvbG9yIT09bnVsbCxzdXBwb3J0c1ZlcnRleFRleHR1cmVzOmcsb3V0cHV0RW5jb2Rpbmc6az09PW51bGw/bi5vdXRwdXRFbmNvZGluZzprLmlzWFJSZW5kZXJUYXJnZXQ9PT0hMD9rLnRleHR1cmUuZW5jb2Rpbmc6cmksbWFwOiEheS5tYXAsbWF0Y2FwOiEheS5tYXRjYXAsZW52TWFwOiEhUSxlbnZNYXBNb2RlOlEmJlEubWFwcGluZyxlbnZNYXBDdWJlVVY6ISFRJiYoUS5tYXBwaW5nPT09Umx8fFEubWFwcGluZz09PUtoKSxsaWdodE1hcDohIXkubGlnaHRNYXAsYW9NYXA6ISF5LmFvTWFwLGVtaXNzaXZlTWFwOiEheS5lbWlzc2l2ZU1hcCxidW1wTWFwOiEheS5idW1wTWFwLG5vcm1hbE1hcDohIXkubm9ybWFsTWFwLG9iamVjdFNwYWNlTm9ybWFsTWFwOnkubm9ybWFsTWFwVHlwZT09PWp3LHRhbmdlbnRTcGFjZU5vcm1hbE1hcDp5Lm5vcm1hbE1hcFR5cGU9PT10cyxkZWNvZGVWaWRlb1RleHR1cmU6ISF5Lm1hcCYmeS5tYXAuaXNWaWRlb1RleHR1cmU9PT0hMCYmeS5tYXAuZW5jb2Rpbmc9PT0kdCxjbGVhcmNvYXQ6bXQsY2xlYXJjb2F0TWFwOm10JiYhIXkuY2xlYXJjb2F0TWFwLGNsZWFyY29hdFJvdWdobmVzc01hcDptdCYmISF5LmNsZWFyY29hdFJvdWdobmVzc01hcCxjbGVhcmNvYXROb3JtYWxNYXA6bXQmJiEheS5jbGVhcmNvYXROb3JtYWxNYXAsZGlzcGxhY2VtZW50TWFwOiEheS5kaXNwbGFjZW1lbnRNYXAscm91Z2huZXNzTWFwOiEheS5yb3VnaG5lc3NNYXAsbWV0YWxuZXNzTWFwOiEheS5tZXRhbG5lc3NNYXAsc3BlY3VsYXJNYXA6ISF5LnNwZWN1bGFyTWFwLHNwZWN1bGFySW50ZW5zaXR5TWFwOiEheS5zcGVjdWxhckludGVuc2l0eU1hcCxzcGVjdWxhckNvbG9yTWFwOiEheS5zcGVjdWxhckNvbG9yTWFwLGFscGhhTWFwOiEheS5hbHBoYU1hcCxhbHBoYVRlc3Q6RnQsYWxwaGFXcml0ZTp5LmFscGhhV3JpdGV8fHkudHJhbnNwYXJlbnQsZ3JhZGllbnRNYXA6ISF5LmdyYWRpZW50TWFwLHNoZWVuOnkuc2hlZW4+MCxzaGVlbkNvbG9yTWFwOiEheS5zaGVlbkNvbG9yTWFwLHNoZWVuUm91Z2huZXNzTWFwOiEheS5zaGVlblJvdWdobmVzc01hcCx0cmFuc21pc3Npb246eS50cmFuc21pc3Npb24+MCx0cmFuc21pc3Npb25NYXA6ISF5LnRyYW5zbWlzc2lvbk1hcCx0aGlja25lc3NNYXA6ISF5LnRoaWNrbmVzc01hcCxjb21iaW5lOnkuY29tYmluZSx2ZXJ0ZXhUYW5nZW50czohIXkubm9ybWFsTWFwJiYhIXouZ2VvbWV0cnkmJiEhei5nZW9tZXRyeS5hdHRyaWJ1dGVzLnRhbmdlbnQsdmVydGV4Q29sb3JzOnkudmVydGV4Q29sb3JzLHZlcnRleEFscGhhczp5LnZlcnRleENvbG9ycz09PSEwJiYhIXouZ2VvbWV0cnkmJiEhei5nZW9tZXRyeS5hdHRyaWJ1dGVzLmNvbG9yJiZ6Lmdlb21ldHJ5LmF0dHJpYnV0ZXMuY29sb3IuaXRlbVNpemU9PT00LHZlcnRleFV2czohIXkubWFwfHwhIXkuYnVtcE1hcHx8ISF5Lm5vcm1hbE1hcHx8ISF5LnNwZWN1bGFyTWFwfHwhIXkuYWxwaGFNYXB8fCEheS5lbWlzc2l2ZU1hcHx8ISF5LnJvdWdobmVzc01hcHx8ISF5Lm1ldGFsbmVzc01hcHx8ISF5LmNsZWFyY29hdE1hcHx8ISF5LmNsZWFyY29hdFJvdWdobmVzc01hcHx8ISF5LmNsZWFyY29hdE5vcm1hbE1hcHx8ISF5LmRpc3BsYWNlbWVudE1hcHx8ISF5LnRyYW5zbWlzc2lvbk1hcHx8ISF5LnRoaWNrbmVzc01hcHx8ISF5LnNwZWN1bGFySW50ZW5zaXR5TWFwfHwhIXkuc3BlY3VsYXJDb2xvck1hcHx8ISF5LnNoZWVuQ29sb3JNYXB8fCEheS5zaGVlblJvdWdobmVzc01hcCx1dnNWZXJ0ZXhPbmx5OiEoISF5Lm1hcHx8ISF5LmJ1bXBNYXB8fCEheS5ub3JtYWxNYXB8fCEheS5zcGVjdWxhck1hcHx8ISF5LmFscGhhTWFwfHwhIXkuZW1pc3NpdmVNYXB8fCEheS5yb3VnaG5lc3NNYXB8fCEheS5tZXRhbG5lc3NNYXB8fCEheS5jbGVhcmNvYXROb3JtYWxNYXB8fHkudHJhbnNtaXNzaW9uPjB8fCEheS50cmFuc21pc3Npb25NYXB8fCEheS50aGlja25lc3NNYXB8fCEheS5zcGVjdWxhckludGVuc2l0eU1hcHx8ISF5LnNwZWN1bGFyQ29sb3JNYXB8fHkuc2hlZW4+MHx8ISF5LnNoZWVuQ29sb3JNYXB8fCEheS5zaGVlblJvdWdobmVzc01hcCkmJiEheS5kaXNwbGFjZW1lbnRNYXAsZm9nOiEhTix1c2VGb2c6eS5mb2csZm9nRXhwMjpOJiZOLmlzRm9nRXhwMixmbGF0U2hhZGluZzohIXkuZmxhdFNoYWRpbmcsc2l6ZUF0dGVudWF0aW9uOnkuc2l6ZUF0dGVudWF0aW9uLGxvZ2FyaXRobWljRGVwdGhCdWZmZXI6aCxza2lubmluZzp6LmlzU2tpbm5lZE1lc2g9PT0hMCYmRz4wLG1heEJvbmVzOkcsdXNlVmVydGV4VGV4dHVyZTpmLG1vcnBoVGFyZ2V0czohIXouZ2VvbWV0cnkmJiEhei5nZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24sbW9ycGhOb3JtYWxzOiEhei5nZW9tZXRyeSYmISF6Lmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy5ub3JtYWwsbW9ycGhUYXJnZXRzQ291bnQ6ISF6Lmdlb21ldHJ5JiYhIXouZ2VvbWV0cnkubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uP3ouZ2VvbWV0cnkubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uLmxlbmd0aDowLG51bURpckxpZ2h0czpSLmRpcmVjdGlvbmFsLmxlbmd0aCxudW1Qb2ludExpZ2h0czpSLnBvaW50Lmxlbmd0aCxudW1TcG90TGlnaHRzOlIuc3BvdC5sZW5ndGgsbnVtUmVjdEFyZWFMaWdodHM6Ui5yZWN0QXJlYS5sZW5ndGgsbnVtSGVtaUxpZ2h0czpSLmhlbWkubGVuZ3RoLG51bURpckxpZ2h0U2hhZG93czpSLmRpcmVjdGlvbmFsU2hhZG93TWFwLmxlbmd0aCxudW1Qb2ludExpZ2h0U2hhZG93czpSLnBvaW50U2hhZG93TWFwLmxlbmd0aCxudW1TcG90TGlnaHRTaGFkb3dzOlIuc3BvdFNoYWRvd01hcC5sZW5ndGgsbnVtQ2xpcHBpbmdQbGFuZXM6by5udW1QbGFuZXMsbnVtQ2xpcEludGVyc2VjdGlvbjpvLm51bUludGVyc2VjdGlvbixkaXRoZXJpbmc6eS5kaXRoZXJpbmcsc2hhZG93TWFwRW5hYmxlZDpuLnNoYWRvd01hcC5lbmFibGVkJiZELmxlbmd0aD4wLHNoYWRvd01hcFR5cGU6bi5zaGFkb3dNYXAudHlwZSx0b25lTWFwcGluZzp5LnRvbmVNYXBwZWQ/bi50b25lTWFwcGluZzp0aSxwaHlzaWNhbGx5Q29ycmVjdExpZ2h0czpuLnBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzLHByZW11bHRpcGxpZWRBbHBoYTp5LnByZW11bHRpcGxpZWRBbHBoYSxkb3VibGVTaWRlZDp5LnNpZGU9PT1IcixmbGlwU2lkZWQ6eS5zaWRlPT09aGUsZGVwdGhQYWNraW5nOnkuZGVwdGhQYWNraW5nIT09dm9pZCAwP3kuZGVwdGhQYWNraW5nOiExLGluZGV4MEF0dHJpYnV0ZU5hbWU6eS5pbmRleDBBdHRyaWJ1dGVOYW1lLGV4dGVuc2lvbkRlcml2YXRpdmVzOnkuZXh0ZW5zaW9ucyYmeS5leHRlbnNpb25zLmRlcml2YXRpdmVzLGV4dGVuc2lvbkZyYWdEZXB0aDp5LmV4dGVuc2lvbnMmJnkuZXh0ZW5zaW9ucy5mcmFnRGVwdGgsZXh0ZW5zaW9uRHJhd0J1ZmZlcnM6eS5leHRlbnNpb25zJiZ5LmV4dGVuc2lvbnMuZHJhd0J1ZmZlcnMsZXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxPRDp5LmV4dGVuc2lvbnMmJnkuZXh0ZW5zaW9ucy5zaGFkZXJUZXh0dXJlTE9ELHJlbmRlcmVyRXh0ZW5zaW9uRnJhZ0RlcHRoOnV8fGkuaGFzKCJFWFRfZnJhZ19kZXB0aCIpLHJlbmRlcmVyRXh0ZW5zaW9uRHJhd0J1ZmZlcnM6dXx8aS5oYXMoIldFQkdMX2RyYXdfYnVmZmVycyIpLHJlbmRlcmVyRXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxvZDp1fHxpLmhhcygiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpLGN1c3RvbVByb2dyYW1DYWNoZUtleTp5LmN1c3RvbVByb2dyYW1DYWNoZUtleSgpfX1mdW5jdGlvbiBiKHkpe2xldCBSPVtdO2lmKHkuc2hhZGVySUQ/Ui5wdXNoKHkuc2hhZGVySUQpOihSLnB1c2goeS5jdXN0b21WZXJ0ZXhTaGFkZXJJRCksUi5wdXNoKHkuY3VzdG9tRnJhZ21lbnRTaGFkZXJJRCkpLHkuZGVmaW5lcyE9PXZvaWQgMClmb3IobGV0IEQgaW4geS5kZWZpbmVzKVIucHVzaChEKSxSLnB1c2goeS5kZWZpbmVzW0RdKTtyZXR1cm4geS5pc1Jhd1NoYWRlck1hdGVyaWFsPT09ITEmJihfKFIseSksUyhSLHkpLFIucHVzaChuLm91dHB1dEVuY29kaW5nKSksUi5wdXNoKHkuY3VzdG9tUHJvZ3JhbUNhY2hlS2V5KSxSLmpvaW4oKX1mdW5jdGlvbiBfKHksUil7eS5wdXNoKFIucHJlY2lzaW9uKSx5LnB1c2goUi5vdXRwdXRFbmNvZGluZykseS5wdXNoKFIuZW52TWFwTW9kZSkseS5wdXNoKFIuY29tYmluZSkseS5wdXNoKFIudmVydGV4VXZzKSx5LnB1c2goUi5mb2dFeHAyKSx5LnB1c2goUi5zaXplQXR0ZW51YXRpb24pLHkucHVzaChSLm1heEJvbmVzKSx5LnB1c2goUi5tb3JwaFRhcmdldHNDb3VudCkseS5wdXNoKFIubnVtRGlyTGlnaHRzKSx5LnB1c2goUi5udW1Qb2ludExpZ2h0cykseS5wdXNoKFIubnVtU3BvdExpZ2h0cykseS5wdXNoKFIubnVtSGVtaUxpZ2h0cykseS5wdXNoKFIubnVtUmVjdEFyZWFMaWdodHMpLHkucHVzaChSLm51bURpckxpZ2h0U2hhZG93cykseS5wdXNoKFIubnVtUG9pbnRMaWdodFNoYWRvd3MpLHkucHVzaChSLm51bVNwb3RMaWdodFNoYWRvd3MpLHkucHVzaChSLnNoYWRvd01hcFR5cGUpLHkucHVzaChSLnRvbmVNYXBwaW5nKSx5LnB1c2goUi5udW1DbGlwcGluZ1BsYW5lcykseS5wdXNoKFIubnVtQ2xpcEludGVyc2VjdGlvbikseS5wdXNoKFIuYWxwaGFXcml0ZSl9ZnVuY3Rpb24gUyh5LFIpe2EuZGlzYWJsZUFsbCgpLFIuaXNXZWJHTDImJmEuZW5hYmxlKDApLFIuc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlcyYmYS5lbmFibGUoMSksUi5pbnN0YW5jaW5nJiZhLmVuYWJsZSgyKSxSLmluc3RhbmNpbmdDb2xvciYmYS5lbmFibGUoMyksUi5tYXAmJmEuZW5hYmxlKDQpLFIubWF0Y2FwJiZhLmVuYWJsZSg1KSxSLmVudk1hcCYmYS5lbmFibGUoNiksUi5lbnZNYXBDdWJlVVYmJmEuZW5hYmxlKDcpLFIubGlnaHRNYXAmJmEuZW5hYmxlKDgpLFIuYW9NYXAmJmEuZW5hYmxlKDkpLFIuZW1pc3NpdmVNYXAmJmEuZW5hYmxlKDEwKSxSLmJ1bXBNYXAmJmEuZW5hYmxlKDExKSxSLm5vcm1hbE1hcCYmYS5lbmFibGUoMTIpLFIub2JqZWN0U3BhY2VOb3JtYWxNYXAmJmEuZW5hYmxlKDEzKSxSLnRhbmdlbnRTcGFjZU5vcm1hbE1hcCYmYS5lbmFibGUoMTQpLFIuY2xlYXJjb2F0JiZhLmVuYWJsZSgxNSksUi5jbGVhcmNvYXRNYXAmJmEuZW5hYmxlKDE2KSxSLmNsZWFyY29hdFJvdWdobmVzc01hcCYmYS5lbmFibGUoMTcpLFIuY2xlYXJjb2F0Tm9ybWFsTWFwJiZhLmVuYWJsZSgxOCksUi5kaXNwbGFjZW1lbnRNYXAmJmEuZW5hYmxlKDE5KSxSLnNwZWN1bGFyTWFwJiZhLmVuYWJsZSgyMCksUi5yb3VnaG5lc3NNYXAmJmEuZW5hYmxlKDIxKSxSLm1ldGFsbmVzc01hcCYmYS5lbmFibGUoMjIpLFIuZ3JhZGllbnRNYXAmJmEuZW5hYmxlKDIzKSxSLmFscGhhTWFwJiZhLmVuYWJsZSgyNCksUi5hbHBoYVRlc3QmJmEuZW5hYmxlKDI1KSxSLnZlcnRleENvbG9ycyYmYS5lbmFibGUoMjYpLFIudmVydGV4QWxwaGFzJiZhLmVuYWJsZSgyNyksUi52ZXJ0ZXhVdnMmJmEuZW5hYmxlKDI4KSxSLnZlcnRleFRhbmdlbnRzJiZhLmVuYWJsZSgyOSksUi51dnNWZXJ0ZXhPbmx5JiZhLmVuYWJsZSgzMCksUi5mb2cmJmEuZW5hYmxlKDMxKSx5LnB1c2goYS5tYXNrKSxhLmRpc2FibGVBbGwoKSxSLnVzZUZvZyYmYS5lbmFibGUoMCksUi5mbGF0U2hhZGluZyYmYS5lbmFibGUoMSksUi5sb2dhcml0aG1pY0RlcHRoQnVmZmVyJiZhLmVuYWJsZSgyKSxSLnNraW5uaW5nJiZhLmVuYWJsZSgzKSxSLnVzZVZlcnRleFRleHR1cmUmJmEuZW5hYmxlKDQpLFIubW9ycGhUYXJnZXRzJiZhLmVuYWJsZSg1KSxSLm1vcnBoTm9ybWFscyYmYS5lbmFibGUoNiksUi5wcmVtdWx0aXBsaWVkQWxwaGEmJmEuZW5hYmxlKDcpLFIuc2hhZG93TWFwRW5hYmxlZCYmYS5lbmFibGUoOCksUi5waHlzaWNhbGx5Q29ycmVjdExpZ2h0cyYmYS5lbmFibGUoOSksUi5kb3VibGVTaWRlZCYmYS5lbmFibGUoMTApLFIuZmxpcFNpZGVkJiZhLmVuYWJsZSgxMSksUi5kZXB0aFBhY2tpbmcmJmEuZW5hYmxlKDEyKSxSLmRpdGhlcmluZyYmYS5lbmFibGUoMTMpLFIuc3BlY3VsYXJJbnRlbnNpdHlNYXAmJmEuZW5hYmxlKDE0KSxSLnNwZWN1bGFyQ29sb3JNYXAmJmEuZW5hYmxlKDE1KSxSLnRyYW5zbWlzc2lvbiYmYS5lbmFibGUoMTYpLFIudHJhbnNtaXNzaW9uTWFwJiZhLmVuYWJsZSgxNyksUi50aGlja25lc3NNYXAmJmEuZW5hYmxlKDE4KSxSLnNoZWVuJiZhLmVuYWJsZSgxOSksUi5zaGVlbkNvbG9yTWFwJiZhLmVuYWJsZSgyMCksUi5zaGVlblJvdWdobmVzc01hcCYmYS5lbmFibGUoMjEpLFIuZGVjb2RlVmlkZW9UZXh0dXJlJiZhLmVuYWJsZSgyMikseS5wdXNoKGEubWFzayl9ZnVuY3Rpb24gTCh5KXtsZXQgUj12W3kudHlwZV0sRDtpZihSKXtsZXQgRj1mbltSXTtEPXBNLmNsb25lKEYudW5pZm9ybXMpfWVsc2UgRD15LnVuaWZvcm1zO3JldHVybiBEfWZ1bmN0aW9uIEEoeSxSKXtsZXQgRDtmb3IobGV0IEY9MCx6PWMubGVuZ3RoO0Y8ejtGKyspe2xldCBOPWNbRl07aWYoTi5jYWNoZUtleT09PVIpe0Q9TiwrK0QudXNlZFRpbWVzO2JyZWFrfX1yZXR1cm4gRD09PXZvaWQgMCYmKEQ9bmV3IHBFKG4sUix5LHMpLGMucHVzaChEKSksRH1mdW5jdGlvbiBIKHkpe2lmKC0teS51c2VkVGltZXM9PT0wKXtsZXQgUj1jLmluZGV4T2YoeSk7Y1tSXT1jW2MubGVuZ3RoLTFdLGMucG9wKCkseS5kZXN0cm95KCl9fWZ1bmN0aW9uIHR0KHkpe2wucmVtb3ZlKHkpfWZ1bmN0aW9uIFgoKXtsLmRpc3Bvc2UoKX1yZXR1cm57Z2V0UGFyYW1ldGVyczpwLGdldFByb2dyYW1DYWNoZUtleTpiLGdldFVuaWZvcm1zOkwsYWNxdWlyZVByb2dyYW06QSxyZWxlYXNlUHJvZ3JhbTpILHJlbGVhc2VTaGFkZXJDYWNoZTp0dCxwcm9ncmFtczpjLGRpc3Bvc2U6WH19ZnVuY3Rpb24geEUoKXtsZXQgbj1uZXcgV2Vha01hcDtmdW5jdGlvbiB0KHMpe2xldCBvPW4uZ2V0KHMpO3JldHVybiBvPT09dm9pZCAwJiYobz17fSxuLnNldChzLG8pKSxvfWZ1bmN0aW9uIGUocyl7bi5kZWxldGUocyl9ZnVuY3Rpb24gaShzLG8sYSl7bi5nZXQocylbb109YX1mdW5jdGlvbiByKCl7bj1uZXcgV2Vha01hcH1yZXR1cm57Z2V0OnQscmVtb3ZlOmUsdXBkYXRlOmksZGlzcG9zZTpyfX1mdW5jdGlvbiB5RShuLHQpe3JldHVybiBuLmdyb3VwT3JkZXIhPT10Lmdyb3VwT3JkZXI/bi5ncm91cE9yZGVyLXQuZ3JvdXBPcmRlcjpuLnJlbmRlck9yZGVyIT09dC5yZW5kZXJPcmRlcj9uLnJlbmRlck9yZGVyLXQucmVuZGVyT3JkZXI6bi5tYXRlcmlhbC5pZCE9PXQubWF0ZXJpYWwuaWQ/bi5tYXRlcmlhbC5pZC10Lm1hdGVyaWFsLmlkOm4ueiE9PXQuej9uLnotdC56Om4uaWQtdC5pZH1mdW5jdGlvbiBOZyhuLHQpe3JldHVybiBuLmdyb3VwT3JkZXIhPT10Lmdyb3VwT3JkZXI/bi5ncm91cE9yZGVyLXQuZ3JvdXBPcmRlcjpuLnJlbmRlck9yZGVyIT09dC5yZW5kZXJPcmRlcj9uLnJlbmRlck9yZGVyLXQucmVuZGVyT3JkZXI6bi56IT09dC56P3Quei1uLno6bi5pZC10LmlkfWZ1bmN0aW9uIEZnKCl7bGV0IG49W10sdD0wLGU9W10saT1bXSxyPVtdO2Z1bmN0aW9uIHMoKXt0PTAsZS5sZW5ndGg9MCxpLmxlbmd0aD0wLHIubGVuZ3RoPTB9ZnVuY3Rpb24gbyhoLGYsZCxnLHgsdil7bGV0IG09blt0XTtyZXR1cm4gbT09PXZvaWQgMD8obT17aWQ6aC5pZCxvYmplY3Q6aCxnZW9tZXRyeTpmLG1hdGVyaWFsOmQsZ3JvdXBPcmRlcjpnLHJlbmRlck9yZGVyOmgucmVuZGVyT3JkZXIsejp4LGdyb3VwOnZ9LG5bdF09bSk6KG0uaWQ9aC5pZCxtLm9iamVjdD1oLG0uZ2VvbWV0cnk9ZixtLm1hdGVyaWFsPWQsbS5ncm91cE9yZGVyPWcsbS5yZW5kZXJPcmRlcj1oLnJlbmRlck9yZGVyLG0uej14LG0uZ3JvdXA9diksdCsrLG19ZnVuY3Rpb24gYShoLGYsZCxnLHgsdil7bGV0IG09byhoLGYsZCxnLHgsdik7ZC50cmFuc21pc3Npb24+MD9pLnB1c2gobSk6ZC50cmFuc3BhcmVudD09PSEwP3IucHVzaChtKTplLnB1c2gobSl9ZnVuY3Rpb24gbChoLGYsZCxnLHgsdil7bGV0IG09byhoLGYsZCxnLHgsdik7ZC50cmFuc21pc3Npb24+MD9pLnVuc2hpZnQobSk6ZC50cmFuc3BhcmVudD09PSEwP3IudW5zaGlmdChtKTplLnVuc2hpZnQobSl9ZnVuY3Rpb24gYyhoLGYpe2UubGVuZ3RoPjEmJmUuc29ydChofHx5RSksaS5sZW5ndGg+MSYmaS5zb3J0KGZ8fE5nKSxyLmxlbmd0aD4xJiZyLnNvcnQoZnx8TmcpfWZ1bmN0aW9uIHUoKXtmb3IobGV0IGg9dCxmPW4ubGVuZ3RoO2g8ZjtoKyspe2xldCBkPW5baF07aWYoZC5pZD09PW51bGwpYnJlYWs7ZC5pZD1udWxsLGQub2JqZWN0PW51bGwsZC5nZW9tZXRyeT1udWxsLGQubWF0ZXJpYWw9bnVsbCxkLmdyb3VwPW51bGx9fXJldHVybntvcGFxdWU6ZSx0cmFuc21pc3NpdmU6aSx0cmFuc3BhcmVudDpyLGluaXQ6cyxwdXNoOmEsdW5zaGlmdDpsLGZpbmlzaDp1LHNvcnQ6Y319ZnVuY3Rpb24gdkUoKXtsZXQgbj1uZXcgV2Vha01hcDtmdW5jdGlvbiB0KGkscil7bGV0IHM7cmV0dXJuIG4uaGFzKGkpPT09ITE/KHM9bmV3IEZnLG4uc2V0KGksW3NdKSk6cj49bi5nZXQoaSkubGVuZ3RoPyhzPW5ldyBGZyxuLmdldChpKS5wdXNoKHMpKTpzPW4uZ2V0KGkpW3JdLHN9ZnVuY3Rpb24gZSgpe249bmV3IFdlYWtNYXB9cmV0dXJue2dldDp0LGRpc3Bvc2U6ZX19ZnVuY3Rpb24gX0UoKXtsZXQgbj17fTtyZXR1cm57Z2V0OmZ1bmN0aW9uKHQpe2lmKG5bdC5pZF0hPT12b2lkIDApcmV0dXJuIG5bdC5pZF07bGV0IGU7c3dpdGNoKHQudHlwZSl7Y2FzZSJEaXJlY3Rpb25hbExpZ2h0IjplPXtkaXJlY3Rpb246bmV3IFQsY29sb3I6bmV3IGZ0fTticmVhaztjYXNlIlNwb3RMaWdodCI6ZT17cG9zaXRpb246bmV3IFQsZGlyZWN0aW9uOm5ldyBULGNvbG9yOm5ldyBmdCxkaXN0YW5jZTowLGNvbmVDb3M6MCxwZW51bWJyYUNvczowLGRlY2F5OjB9O2JyZWFrO2Nhc2UiUG9pbnRMaWdodCI6ZT17cG9zaXRpb246bmV3IFQsY29sb3I6bmV3IGZ0LGRpc3RhbmNlOjAsZGVjYXk6MH07YnJlYWs7Y2FzZSJIZW1pc3BoZXJlTGlnaHQiOmU9e2RpcmVjdGlvbjpuZXcgVCxza3lDb2xvcjpuZXcgZnQsZ3JvdW5kQ29sb3I6bmV3IGZ0fTticmVhaztjYXNlIlJlY3RBcmVhTGlnaHQiOmU9e2NvbG9yOm5ldyBmdCxwb3NpdGlvbjpuZXcgVCxoYWxmV2lkdGg6bmV3IFQsaGFsZkhlaWdodDpuZXcgVH07YnJlYWt9cmV0dXJuIG5bdC5pZF09ZSxlfX19ZnVuY3Rpb24gd0UoKXtsZXQgbj17fTtyZXR1cm57Z2V0OmZ1bmN0aW9uKHQpe2lmKG5bdC5pZF0hPT12b2lkIDApcmV0dXJuIG5bdC5pZF07bGV0IGU7c3dpdGNoKHQudHlwZSl7Y2FzZSJEaXJlY3Rpb25hbExpZ2h0IjplPXtzaGFkb3dCaWFzOjAsc2hhZG93Tm9ybWFsQmlhczowLHNoYWRvd1JhZGl1czoxLHNoYWRvd01hcFNpemU6bmV3IEt9O2JyZWFrO2Nhc2UiU3BvdExpZ2h0IjplPXtzaGFkb3dCaWFzOjAsc2hhZG93Tm9ybWFsQmlhczowLHNoYWRvd1JhZGl1czoxLHNoYWRvd01hcFNpemU6bmV3IEt9O2JyZWFrO2Nhc2UiUG9pbnRMaWdodCI6ZT17c2hhZG93QmlhczowLHNoYWRvd05vcm1hbEJpYXM6MCxzaGFkb3dSYWRpdXM6MSxzaGFkb3dNYXBTaXplOm5ldyBLLHNoYWRvd0NhbWVyYU5lYXI6MSxzaGFkb3dDYW1lcmFGYXI6MWUzfTticmVha31yZXR1cm4gblt0LmlkXT1lLGV9fX12YXIgTUU9MDtmdW5jdGlvbiBiRShuLHQpe3JldHVybih0LmNhc3RTaGFkb3c/MTowKS0obi5jYXN0U2hhZG93PzE6MCl9ZnVuY3Rpb24gU0Uobix0KXtsZXQgZT1uZXcgX0UsaT13RSgpLHI9e3ZlcnNpb246MCxoYXNoOntkaXJlY3Rpb25hbExlbmd0aDotMSxwb2ludExlbmd0aDotMSxzcG90TGVuZ3RoOi0xLHJlY3RBcmVhTGVuZ3RoOi0xLGhlbWlMZW5ndGg6LTEsbnVtRGlyZWN0aW9uYWxTaGFkb3dzOi0xLG51bVBvaW50U2hhZG93czotMSxudW1TcG90U2hhZG93czotMX0sYW1iaWVudDpbMCwwLDBdLHByb2JlOltdLGRpcmVjdGlvbmFsOltdLGRpcmVjdGlvbmFsU2hhZG93OltdLGRpcmVjdGlvbmFsU2hhZG93TWFwOltdLGRpcmVjdGlvbmFsU2hhZG93TWF0cml4OltdLHNwb3Q6W10sc3BvdFNoYWRvdzpbXSxzcG90U2hhZG93TWFwOltdLHNwb3RTaGFkb3dNYXRyaXg6W10scmVjdEFyZWE6W10scmVjdEFyZWFMVEMxOm51bGwscmVjdEFyZWFMVEMyOm51bGwscG9pbnQ6W10scG9pbnRTaGFkb3c6W10scG9pbnRTaGFkb3dNYXA6W10scG9pbnRTaGFkb3dNYXRyaXg6W10saGVtaTpbXX07Zm9yKGxldCB1PTA7dTw5O3UrKylyLnByb2JlLnB1c2gobmV3IFQpO2xldCBzPW5ldyBULG89bmV3IHd0LGE9bmV3IHd0O2Z1bmN0aW9uIGwodSxoKXtsZXQgZj0wLGQ9MCxnPTA7Zm9yKGxldCB0dD0wO3R0PDk7dHQrKylyLnByb2JlW3R0XS5zZXQoMCwwLDApO2xldCB4PTAsdj0wLG09MCxwPTAsYj0wLF89MCxTPTAsTD0wO3Uuc29ydChiRSk7bGV0IEE9aCE9PSEwP01hdGguUEk6MTtmb3IobGV0IHR0PTAsWD11Lmxlbmd0aDt0dDxYO3R0Kyspe2xldCB5PXVbdHRdLFI9eS5jb2xvcixEPXkuaW50ZW5zaXR5LEY9eS5kaXN0YW5jZSx6PXkuc2hhZG93JiZ5LnNoYWRvdy5tYXA/eS5zaGFkb3cubWFwLnRleHR1cmU6bnVsbDtpZih5LmlzQW1iaWVudExpZ2h0KWYrPVIucipEKkEsZCs9Ui5nKkQqQSxnKz1SLmIqRCpBO2Vsc2UgaWYoeS5pc0xpZ2h0UHJvYmUpZm9yKGxldCBOPTA7Tjw5O04rKylyLnByb2JlW05dLmFkZFNjYWxlZFZlY3Rvcih5LnNoLmNvZWZmaWNpZW50c1tOXSxEKTtlbHNlIGlmKHkuaXNEaXJlY3Rpb25hbExpZ2h0KXtsZXQgTj1lLmdldCh5KTtpZihOLmNvbG9yLmNvcHkoeS5jb2xvcikubXVsdGlwbHlTY2FsYXIoeS5pbnRlbnNpdHkqQSkseS5jYXN0U2hhZG93KXtsZXQgVj15LnNoYWRvdyxRPWkuZ2V0KHkpO1Euc2hhZG93Qmlhcz1WLmJpYXMsUS5zaGFkb3dOb3JtYWxCaWFzPVYubm9ybWFsQmlhcyxRLnNoYWRvd1JhZGl1cz1WLnJhZGl1cyxRLnNoYWRvd01hcFNpemU9Vi5tYXBTaXplLHIuZGlyZWN0aW9uYWxTaGFkb3dbeF09USxyLmRpcmVjdGlvbmFsU2hhZG93TWFwW3hdPXosci5kaXJlY3Rpb25hbFNoYWRvd01hdHJpeFt4XT15LnNoYWRvdy5tYXRyaXgsXysrfXIuZGlyZWN0aW9uYWxbeF09Tix4Kyt9ZWxzZSBpZih5LmlzU3BvdExpZ2h0KXtsZXQgTj1lLmdldCh5KTtpZihOLnBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbih5Lm1hdHJpeFdvcmxkKSxOLmNvbG9yLmNvcHkoUikubXVsdGlwbHlTY2FsYXIoRCpBKSxOLmRpc3RhbmNlPUYsTi5jb25lQ29zPU1hdGguY29zKHkuYW5nbGUpLE4ucGVudW1icmFDb3M9TWF0aC5jb3MoeS5hbmdsZSooMS15LnBlbnVtYnJhKSksTi5kZWNheT15LmRlY2F5LHkuY2FzdFNoYWRvdyl7bGV0IFY9eS5zaGFkb3csUT1pLmdldCh5KTtRLnNoYWRvd0JpYXM9Vi5iaWFzLFEuc2hhZG93Tm9ybWFsQmlhcz1WLm5vcm1hbEJpYXMsUS5zaGFkb3dSYWRpdXM9Vi5yYWRpdXMsUS5zaGFkb3dNYXBTaXplPVYubWFwU2l6ZSxyLnNwb3RTaGFkb3dbbV09USxyLnNwb3RTaGFkb3dNYXBbbV09eixyLnNwb3RTaGFkb3dNYXRyaXhbbV09eS5zaGFkb3cubWF0cml4LEwrK31yLnNwb3RbbV09TixtKyt9ZWxzZSBpZih5LmlzUmVjdEFyZWFMaWdodCl7bGV0IE49ZS5nZXQoeSk7Ti5jb2xvci5jb3B5KFIpLm11bHRpcGx5U2NhbGFyKEQpLE4uaGFsZldpZHRoLnNldCh5LndpZHRoKi41LDAsMCksTi5oYWxmSGVpZ2h0LnNldCgwLHkuaGVpZ2h0Ki41LDApLHIucmVjdEFyZWFbcF09TixwKyt9ZWxzZSBpZih5LmlzUG9pbnRMaWdodCl7bGV0IE49ZS5nZXQoeSk7aWYoTi5jb2xvci5jb3B5KHkuY29sb3IpLm11bHRpcGx5U2NhbGFyKHkuaW50ZW5zaXR5KkEpLE4uZGlzdGFuY2U9eS5kaXN0YW5jZSxOLmRlY2F5PXkuZGVjYXkseS5jYXN0U2hhZG93KXtsZXQgVj15LnNoYWRvdyxRPWkuZ2V0KHkpO1Euc2hhZG93Qmlhcz1WLmJpYXMsUS5zaGFkb3dOb3JtYWxCaWFzPVYubm9ybWFsQmlhcyxRLnNoYWRvd1JhZGl1cz1WLnJhZGl1cyxRLnNoYWRvd01hcFNpemU9Vi5tYXBTaXplLFEuc2hhZG93Q2FtZXJhTmVhcj1WLmNhbWVyYS5uZWFyLFEuc2hhZG93Q2FtZXJhRmFyPVYuY2FtZXJhLmZhcixyLnBvaW50U2hhZG93W3ZdPVEsci5wb2ludFNoYWRvd01hcFt2XT16LHIucG9pbnRTaGFkb3dNYXRyaXhbdl09eS5zaGFkb3cubWF0cml4LFMrK31yLnBvaW50W3ZdPU4sdisrfWVsc2UgaWYoeS5pc0hlbWlzcGhlcmVMaWdodCl7bGV0IE49ZS5nZXQoeSk7Ti5za3lDb2xvci5jb3B5KHkuY29sb3IpLm11bHRpcGx5U2NhbGFyKEQqQSksTi5ncm91bmRDb2xvci5jb3B5KHkuZ3JvdW5kQ29sb3IpLm11bHRpcGx5U2NhbGFyKEQqQSksci5oZW1pW2JdPU4sYisrfX1wPjAmJih0LmlzV2ViR0wyfHxuLmhhcygiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik9PT0hMD8oci5yZWN0QXJlYUxUQzE9b3QuTFRDX0ZMT0FUXzEsci5yZWN0QXJlYUxUQzI9b3QuTFRDX0ZMT0FUXzIpOm4uaGFzKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpPT09ITA/KHIucmVjdEFyZWFMVEMxPW90LkxUQ19IQUxGXzEsci5yZWN0QXJlYUxUQzI9b3QuTFRDX0hBTEZfMik6Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVW5hYmxlIHRvIHVzZSBSZWN0QXJlYUxpZ2h0LiBNaXNzaW5nIFdlYkdMIGV4dGVuc2lvbnMuIikpLHIuYW1iaWVudFswXT1mLHIuYW1iaWVudFsxXT1kLHIuYW1iaWVudFsyXT1nO2xldCBIPXIuaGFzaDsoSC5kaXJlY3Rpb25hbExlbmd0aCE9PXh8fEgucG9pbnRMZW5ndGghPT12fHxILnNwb3RMZW5ndGghPT1tfHxILnJlY3RBcmVhTGVuZ3RoIT09cHx8SC5oZW1pTGVuZ3RoIT09Ynx8SC5udW1EaXJlY3Rpb25hbFNoYWRvd3MhPT1ffHxILm51bVBvaW50U2hhZG93cyE9PVN8fEgubnVtU3BvdFNoYWRvd3MhPT1MKSYmKHIuZGlyZWN0aW9uYWwubGVuZ3RoPXgsci5zcG90Lmxlbmd0aD1tLHIucmVjdEFyZWEubGVuZ3RoPXAsci5wb2ludC5sZW5ndGg9dixyLmhlbWkubGVuZ3RoPWIsci5kaXJlY3Rpb25hbFNoYWRvdy5sZW5ndGg9XyxyLmRpcmVjdGlvbmFsU2hhZG93TWFwLmxlbmd0aD1fLHIucG9pbnRTaGFkb3cubGVuZ3RoPVMsci5wb2ludFNoYWRvd01hcC5sZW5ndGg9UyxyLnNwb3RTaGFkb3cubGVuZ3RoPUwsci5zcG90U2hhZG93TWFwLmxlbmd0aD1MLHIuZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXgubGVuZ3RoPV8sci5wb2ludFNoYWRvd01hdHJpeC5sZW5ndGg9UyxyLnNwb3RTaGFkb3dNYXRyaXgubGVuZ3RoPUwsSC5kaXJlY3Rpb25hbExlbmd0aD14LEgucG9pbnRMZW5ndGg9dixILnNwb3RMZW5ndGg9bSxILnJlY3RBcmVhTGVuZ3RoPXAsSC5oZW1pTGVuZ3RoPWIsSC5udW1EaXJlY3Rpb25hbFNoYWRvd3M9XyxILm51bVBvaW50U2hhZG93cz1TLEgubnVtU3BvdFNoYWRvd3M9TCxyLnZlcnNpb249TUUrKyl9ZnVuY3Rpb24gYyh1LGgpe2xldCBmPTAsZD0wLGc9MCx4PTAsdj0wLG09aC5tYXRyaXhXb3JsZEludmVyc2U7Zm9yKGxldCBwPTAsYj11Lmxlbmd0aDtwPGI7cCsrKXtsZXQgXz11W3BdO2lmKF8uaXNEaXJlY3Rpb25hbExpZ2h0KXtsZXQgUz1yLmRpcmVjdGlvbmFsW2ZdO1MuZGlyZWN0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihfLm1hdHJpeFdvcmxkKSxzLnNldEZyb21NYXRyaXhQb3NpdGlvbihfLnRhcmdldC5tYXRyaXhXb3JsZCksUy5kaXJlY3Rpb24uc3ViKHMpLFMuZGlyZWN0aW9uLnRyYW5zZm9ybURpcmVjdGlvbihtKSxmKyt9ZWxzZSBpZihfLmlzU3BvdExpZ2h0KXtsZXQgUz1yLnNwb3RbZ107Uy5wb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oXy5tYXRyaXhXb3JsZCksUy5wb3NpdGlvbi5hcHBseU1hdHJpeDQobSksUy5kaXJlY3Rpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKF8ubWF0cml4V29ybGQpLHMuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKF8udGFyZ2V0Lm1hdHJpeFdvcmxkKSxTLmRpcmVjdGlvbi5zdWIocyksUy5kaXJlY3Rpb24udHJhbnNmb3JtRGlyZWN0aW9uKG0pLGcrK31lbHNlIGlmKF8uaXNSZWN0QXJlYUxpZ2h0KXtsZXQgUz1yLnJlY3RBcmVhW3hdO1MucG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKF8ubWF0cml4V29ybGQpLFMucG9zaXRpb24uYXBwbHlNYXRyaXg0KG0pLGEuaWRlbnRpdHkoKSxvLmNvcHkoXy5tYXRyaXhXb3JsZCksby5wcmVtdWx0aXBseShtKSxhLmV4dHJhY3RSb3RhdGlvbihvKSxTLmhhbGZXaWR0aC5zZXQoXy53aWR0aCouNSwwLDApLFMuaGFsZkhlaWdodC5zZXQoMCxfLmhlaWdodCouNSwwKSxTLmhhbGZXaWR0aC5hcHBseU1hdHJpeDQoYSksUy5oYWxmSGVpZ2h0LmFwcGx5TWF0cml4NChhKSx4Kyt9ZWxzZSBpZihfLmlzUG9pbnRMaWdodCl7bGV0IFM9ci5wb2ludFtkXTtTLnBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihfLm1hdHJpeFdvcmxkKSxTLnBvc2l0aW9uLmFwcGx5TWF0cml4NChtKSxkKyt9ZWxzZSBpZihfLmlzSGVtaXNwaGVyZUxpZ2h0KXtsZXQgUz1yLmhlbWlbdl07Uy5kaXJlY3Rpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKF8ubWF0cml4V29ybGQpLFMuZGlyZWN0aW9uLnRyYW5zZm9ybURpcmVjdGlvbihtKSxTLmRpcmVjdGlvbi5ub3JtYWxpemUoKSx2Kyt9fX1yZXR1cm57c2V0dXA6bCxzZXR1cFZpZXc6YyxzdGF0ZTpyfX1mdW5jdGlvbiB6ZyhuLHQpe2xldCBlPW5ldyBTRShuLHQpLGk9W10scj1bXTtmdW5jdGlvbiBzKCl7aS5sZW5ndGg9MCxyLmxlbmd0aD0wfWZ1bmN0aW9uIG8oaCl7aS5wdXNoKGgpfWZ1bmN0aW9uIGEoaCl7ci5wdXNoKGgpfWZ1bmN0aW9uIGwoaCl7ZS5zZXR1cChpLGgpfWZ1bmN0aW9uIGMoaCl7ZS5zZXR1cFZpZXcoaSxoKX1yZXR1cm57aW5pdDpzLHN0YXRlOntsaWdodHNBcnJheTppLHNoYWRvd3NBcnJheTpyLGxpZ2h0czplfSxzZXR1cExpZ2h0czpsLHNldHVwTGlnaHRzVmlldzpjLHB1c2hMaWdodDpvLHB1c2hTaGFkb3c6YX19ZnVuY3Rpb24gRUUobix0KXtsZXQgZT1uZXcgV2Vha01hcDtmdW5jdGlvbiBpKHMsbz0wKXtsZXQgYTtyZXR1cm4gZS5oYXMocyk9PT0hMT8oYT1uZXcgemcobix0KSxlLnNldChzLFthXSkpOm8+PWUuZ2V0KHMpLmxlbmd0aD8oYT1uZXcgemcobix0KSxlLmdldChzKS5wdXNoKGEpKTphPWUuZ2V0KHMpW29dLGF9ZnVuY3Rpb24gcigpe2U9bmV3IFdlYWtNYXB9cmV0dXJue2dldDppLGRpc3Bvc2U6cn19dmFyIGNsPWNsYXNzIGV4dGVuZHMgeGV7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2hEZXB0aE1hdGVyaWFsIix0aGlzLmRlcHRoUGFja2luZz1Ldyx0aGlzLm1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMuZm9nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZXB0aFBhY2tpbmc9dC5kZXB0aFBhY2tpbmcsdGhpcy5tYXA9dC5tYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMud2lyZWZyYW1lPXQud2lyZWZyYW1lLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPXQud2lyZWZyYW1lTGluZXdpZHRoLHRoaXN9fTtjbC5wcm90b3R5cGUuaXNNZXNoRGVwdGhNYXRlcmlhbD0hMDt2YXIgdWw9Y2xhc3MgZXh0ZW5kcyB4ZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaERpc3RhbmNlTWF0ZXJpYWwiLHRoaXMucmVmZXJlbmNlUG9zaXRpb249bmV3IFQsdGhpcy5uZWFyRGlzdGFuY2U9MSx0aGlzLmZhckRpc3RhbmNlPTFlMyx0aGlzLm1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLmZvZz0hMSx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMucmVmZXJlbmNlUG9zaXRpb24uY29weSh0LnJlZmVyZW5jZVBvc2l0aW9uKSx0aGlzLm5lYXJEaXN0YW5jZT10Lm5lYXJEaXN0YW5jZSx0aGlzLmZhckRpc3RhbmNlPXQuZmFyRGlzdGFuY2UsdGhpcy5tYXA9dC5tYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXN9fTt1bC5wcm90b3R5cGUuaXNNZXNoRGlzdGFuY2VNYXRlcmlhbD0hMDt2YXIgVEU9YHZvaWQgbWFpbigpIHsKCWdsX1Bvc2l0aW9uID0gdmVjNCggcG9zaXRpb24sIDEuMCApOwp9YCxBRT1gdW5pZm9ybSBzYW1wbGVyMkQgc2hhZG93X3Bhc3M7CnVuaWZvcm0gdmVjMiByZXNvbHV0aW9uOwp1bmlmb3JtIGZsb2F0IHJhZGl1czsKI2luY2x1ZGUgPHBhY2tpbmc+CnZvaWQgbWFpbigpIHsKCWNvbnN0IGZsb2F0IHNhbXBsZXMgPSBmbG9hdCggVlNNX1NBTVBMRVMgKTsKCWZsb2F0IG1lYW4gPSAwLjA7CglmbG9hdCBzcXVhcmVkX21lYW4gPSAwLjA7CglmbG9hdCB1dlN0cmlkZSA9IHNhbXBsZXMgPD0gMS4wID8gMC4wIDogMi4wIC8gKCBzYW1wbGVzIC0gMS4wICk7CglmbG9hdCB1dlN0YXJ0ID0gc2FtcGxlcyA8PSAxLjAgPyAwLjAgOiAtIDEuMDsKCWZvciAoIGZsb2F0IGkgPSAwLjA7IGkgPCBzYW1wbGVzOyBpICsrICkgewoJCWZsb2F0IHV2T2Zmc2V0ID0gdXZTdGFydCArIGkgKiB1dlN0cmlkZTsKCQkjaWZkZWYgSE9SSVpPTlRBTF9QQVNTCgkJCXZlYzIgZGlzdHJpYnV0aW9uID0gdW5wYWNrUkdCQVRvMkhhbGYoIHRleHR1cmUyRCggc2hhZG93X3Bhc3MsICggZ2xfRnJhZ0Nvb3JkLnh5ICsgdmVjMiggdXZPZmZzZXQsIDAuMCApICogcmFkaXVzICkgLyByZXNvbHV0aW9uICkgKTsKCQkJbWVhbiArPSBkaXN0cmlidXRpb24ueDsKCQkJc3F1YXJlZF9tZWFuICs9IGRpc3RyaWJ1dGlvbi55ICogZGlzdHJpYnV0aW9uLnkgKyBkaXN0cmlidXRpb24ueCAqIGRpc3RyaWJ1dGlvbi54OwoJCSNlbHNlCgkJCWZsb2F0IGRlcHRoID0gdW5wYWNrUkdCQVRvRGVwdGgoIHRleHR1cmUyRCggc2hhZG93X3Bhc3MsICggZ2xfRnJhZ0Nvb3JkLnh5ICsgdmVjMiggMC4wLCB1dk9mZnNldCApICogcmFkaXVzICkgLyByZXNvbHV0aW9uICkgKTsKCQkJbWVhbiArPSBkZXB0aDsKCQkJc3F1YXJlZF9tZWFuICs9IGRlcHRoICogZGVwdGg7CgkJI2VuZGlmCgl9CgltZWFuID0gbWVhbiAvIHNhbXBsZXM7CglzcXVhcmVkX21lYW4gPSBzcXVhcmVkX21lYW4gLyBzYW1wbGVzOwoJZmxvYXQgc3RkX2RldiA9IHNxcnQoIHNxdWFyZWRfbWVhbiAtIG1lYW4gKiBtZWFuICk7CglnbF9GcmFnQ29sb3IgPSBwYWNrMkhhbGZUb1JHQkEoIHZlYzIoIG1lYW4sIHN0ZF9kZXYgKSApOwp9YDtmdW5jdGlvbiBUMChuLHQsZSl7bGV0IGk9bmV3IHFyLHI9bmV3IEsscz1uZXcgSyxvPW5ldyBXdCxhPW5ldyBjbCh7ZGVwdGhQYWNraW5nOlF3fSksbD1uZXcgdWwsYz17fSx1PWUubWF4VGV4dHVyZVNpemUsaD17MDpoZSwxOmVvLDI6SHJ9LGY9bmV3IEZuKHtkZWZpbmVzOntWU01fU0FNUExFUzo4fSx1bmlmb3Jtczp7c2hhZG93X3Bhc3M6e3ZhbHVlOm51bGx9LHJlc29sdXRpb246e3ZhbHVlOm5ldyBLfSxyYWRpdXM6e3ZhbHVlOjR9fSx2ZXJ0ZXhTaGFkZXI6VEUsZnJhZ21lbnRTaGFkZXI6QUV9KSxkPWYuY2xvbmUoKTtkLmRlZmluZXMuSE9SSVpPTlRBTF9QQVNTPTE7bGV0IGc9bmV3IEh0O2cuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IFF0KG5ldyBGbG9hdDMyQXJyYXkoWy0xLC0xLC41LDMsLTEsLjUsLTEsMywuNV0pLDMpKTtsZXQgeD1uZXcgb2UoZyxmKSx2PXRoaXM7dGhpcy5lbmFibGVkPSExLHRoaXMuYXV0b1VwZGF0ZT0hMCx0aGlzLm5lZWRzVXBkYXRlPSExLHRoaXMudHlwZT1sMCx0aGlzLnJlbmRlcj1mdW5jdGlvbihfLFMsTCl7aWYodi5lbmFibGVkPT09ITF8fHYuYXV0b1VwZGF0ZT09PSExJiZ2Lm5lZWRzVXBkYXRlPT09ITF8fF8ubGVuZ3RoPT09MClyZXR1cm47bGV0IEE9bi5nZXRSZW5kZXJUYXJnZXQoKSxIPW4uZ2V0QWN0aXZlQ3ViZUZhY2UoKSx0dD1uLmdldEFjdGl2ZU1pcG1hcExldmVsKCksWD1uLnN0YXRlO1guc2V0QmxlbmRpbmcoam4pLFguYnVmZmVycy5jb2xvci5zZXRDbGVhcigxLDEsMSwxKSxYLmJ1ZmZlcnMuZGVwdGguc2V0VGVzdCghMCksWC5zZXRTY2lzc29yVGVzdCghMSk7Zm9yKGxldCB5PTAsUj1fLmxlbmd0aDt5PFI7eSsrKXtsZXQgRD1fW3ldLEY9RC5zaGFkb3c7aWYoRj09PXZvaWQgMCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFNoYWRvd01hcDoiLEQsImhhcyBubyBzaGFkb3cuIik7Y29udGludWV9aWYoRi5hdXRvVXBkYXRlPT09ITEmJkYubmVlZHNVcGRhdGU9PT0hMSljb250aW51ZTtyLmNvcHkoRi5tYXBTaXplKTtsZXQgej1GLmdldEZyYW1lRXh0ZW50cygpO2lmKHIubXVsdGlwbHkoeikscy5jb3B5KEYubWFwU2l6ZSksKHIueD51fHxyLnk+dSkmJihyLng+dSYmKHMueD1NYXRoLmZsb29yKHUvei54KSxyLng9cy54KnoueCxGLm1hcFNpemUueD1zLngpLHIueT51JiYocy55PU1hdGguZmxvb3IodS96LnkpLHIueT1zLnkqei55LEYubWFwU2l6ZS55PXMueSkpLEYubWFwPT09bnVsbCYmIUYuaXNQb2ludExpZ2h0U2hhZG93JiZ0aGlzLnR5cGU9PT1Kcyl7bGV0IFY9e21pbkZpbHRlcjpiZSxtYWdGaWx0ZXI6YmUsZm9ybWF0OlJlfTtGLm1hcD1uZXcgTmUoci54LHIueSxWKSxGLm1hcC50ZXh0dXJlLm5hbWU9RC5uYW1lKyIuc2hhZG93TWFwIixGLm1hcFBhc3M9bmV3IE5lKHIueCxyLnksViksRi5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfWlmKEYubWFwPT09bnVsbCl7bGV0IFY9e21pbkZpbHRlcjpmZSxtYWdGaWx0ZXI6ZmUsZm9ybWF0OlJlfTtGLm1hcD1uZXcgTmUoci54LHIueSxWKSxGLm1hcC50ZXh0dXJlLm5hbWU9RC5uYW1lKyIuc2hhZG93TWFwIixGLmNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9bi5zZXRSZW5kZXJUYXJnZXQoRi5tYXApLG4uY2xlYXIoKTtsZXQgTj1GLmdldFZpZXdwb3J0Q291bnQoKTtmb3IobGV0IFY9MDtWPE47VisrKXtsZXQgUT1GLmdldFZpZXdwb3J0KFYpO28uc2V0KHMueCpRLngscy55KlEueSxzLngqUS56LHMueSpRLncpLFgudmlld3BvcnQobyksRi51cGRhdGVNYXRyaWNlcyhELFYpLGk9Ri5nZXRGcnVzdHVtKCksYihTLEwsRi5jYW1lcmEsRCx0aGlzLnR5cGUpfSFGLmlzUG9pbnRMaWdodFNoYWRvdyYmdGhpcy50eXBlPT09SnMmJm0oRixMKSxGLm5lZWRzVXBkYXRlPSExfXYubmVlZHNVcGRhdGU9ITEsbi5zZXRSZW5kZXJUYXJnZXQoQSxILHR0KX07ZnVuY3Rpb24gbShfLFMpe2xldCBMPXQudXBkYXRlKHgpO2YuZGVmaW5lcy5WU01fU0FNUExFUyE9PV8uYmx1clNhbXBsZXMmJihmLmRlZmluZXMuVlNNX1NBTVBMRVM9Xy5ibHVyU2FtcGxlcyxkLmRlZmluZXMuVlNNX1NBTVBMRVM9Xy5ibHVyU2FtcGxlcyxmLm5lZWRzVXBkYXRlPSEwLGQubmVlZHNVcGRhdGU9ITApLGYudW5pZm9ybXMuc2hhZG93X3Bhc3MudmFsdWU9Xy5tYXAudGV4dHVyZSxmLnVuaWZvcm1zLnJlc29sdXRpb24udmFsdWU9Xy5tYXBTaXplLGYudW5pZm9ybXMucmFkaXVzLnZhbHVlPV8ucmFkaXVzLG4uc2V0UmVuZGVyVGFyZ2V0KF8ubWFwUGFzcyksbi5jbGVhcigpLG4ucmVuZGVyQnVmZmVyRGlyZWN0KFMsbnVsbCxMLGYseCxudWxsKSxkLnVuaWZvcm1zLnNoYWRvd19wYXNzLnZhbHVlPV8ubWFwUGFzcy50ZXh0dXJlLGQudW5pZm9ybXMucmVzb2x1dGlvbi52YWx1ZT1fLm1hcFNpemUsZC51bmlmb3Jtcy5yYWRpdXMudmFsdWU9Xy5yYWRpdXMsbi5zZXRSZW5kZXJUYXJnZXQoXy5tYXApLG4uY2xlYXIoKSxuLnJlbmRlckJ1ZmZlckRpcmVjdChTLG51bGwsTCxkLHgsbnVsbCl9ZnVuY3Rpb24gcChfLFMsTCxBLEgsdHQsWCl7bGV0IHk9bnVsbCxSPUEuaXNQb2ludExpZ2h0PT09ITA/Xy5jdXN0b21EaXN0YW5jZU1hdGVyaWFsOl8uY3VzdG9tRGVwdGhNYXRlcmlhbDtpZihSIT09dm9pZCAwP3k9Ujp5PUEuaXNQb2ludExpZ2h0PT09ITA/bDphLG4ubG9jYWxDbGlwcGluZ0VuYWJsZWQmJkwuY2xpcFNoYWRvd3M9PT0hMCYmTC5jbGlwcGluZ1BsYW5lcy5sZW5ndGghPT0wfHxMLmRpc3BsYWNlbWVudE1hcCYmTC5kaXNwbGFjZW1lbnRTY2FsZSE9PTB8fEwuYWxwaGFNYXAmJkwuYWxwaGFUZXN0PjApe2xldCBEPXkudXVpZCxGPUwudXVpZCx6PWNbRF07ej09PXZvaWQgMCYmKHo9e30sY1tEXT16KTtsZXQgTj16W0ZdO049PT12b2lkIDAmJihOPXkuY2xvbmUoKSx6W0ZdPU4pLHk9Tn1yZXR1cm4geS52aXNpYmxlPUwudmlzaWJsZSx5LndpcmVmcmFtZT1MLndpcmVmcmFtZSxYPT09SnM/eS5zaWRlPUwuc2hhZG93U2lkZSE9PW51bGw/TC5zaGFkb3dTaWRlOkwuc2lkZTp5LnNpZGU9TC5zaGFkb3dTaWRlIT09bnVsbD9MLnNoYWRvd1NpZGU6aFtMLnNpZGVdLHkuYWxwaGFNYXA9TC5hbHBoYU1hcCx5LmFscGhhVGVzdD1MLmFscGhhVGVzdCx5LmNsaXBTaGFkb3dzPUwuY2xpcFNoYWRvd3MseS5jbGlwcGluZ1BsYW5lcz1MLmNsaXBwaW5nUGxhbmVzLHkuY2xpcEludGVyc2VjdGlvbj1MLmNsaXBJbnRlcnNlY3Rpb24seS5kaXNwbGFjZW1lbnRNYXA9TC5kaXNwbGFjZW1lbnRNYXAseS5kaXNwbGFjZW1lbnRTY2FsZT1MLmRpc3BsYWNlbWVudFNjYWxlLHkuZGlzcGxhY2VtZW50Qmlhcz1MLmRpc3BsYWNlbWVudEJpYXMseS53aXJlZnJhbWVMaW5ld2lkdGg9TC53aXJlZnJhbWVMaW5ld2lkdGgseS5saW5ld2lkdGg9TC5saW5ld2lkdGgsQS5pc1BvaW50TGlnaHQ9PT0hMCYmeS5pc01lc2hEaXN0YW5jZU1hdGVyaWFsPT09ITAmJih5LnJlZmVyZW5jZVBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihBLm1hdHJpeFdvcmxkKSx5Lm5lYXJEaXN0YW5jZT1ILHkuZmFyRGlzdGFuY2U9dHQpLHl9ZnVuY3Rpb24gYihfLFMsTCxBLEgpe2lmKF8udmlzaWJsZT09PSExKXJldHVybjtpZihfLmxheWVycy50ZXN0KFMubGF5ZXJzKSYmKF8uaXNNZXNofHxfLmlzTGluZXx8Xy5pc1BvaW50cykmJihfLmNhc3RTaGFkb3d8fF8ucmVjZWl2ZVNoYWRvdyYmSD09PUpzKSYmKCFfLmZydXN0dW1DdWxsZWR8fGkuaW50ZXJzZWN0c09iamVjdChfKSkpe18ubW9kZWxWaWV3TWF0cml4Lm11bHRpcGx5TWF0cmljZXMoTC5tYXRyaXhXb3JsZEludmVyc2UsXy5tYXRyaXhXb3JsZCk7bGV0IHk9dC51cGRhdGUoXyksUj1fLm1hdGVyaWFsO2lmKEFycmF5LmlzQXJyYXkoUikpe2xldCBEPXkuZ3JvdXBzO2ZvcihsZXQgRj0wLHo9RC5sZW5ndGg7Rjx6O0YrKyl7bGV0IE49RFtGXSxWPVJbTi5tYXRlcmlhbEluZGV4XTtpZihWJiZWLnZpc2libGUpe2xldCBRPXAoXyx5LFYsQSxMLm5lYXIsTC5mYXIsSCk7bi5yZW5kZXJCdWZmZXJEaXJlY3QoTCxudWxsLHksUSxfLE4pfX19ZWxzZSBpZihSLnZpc2libGUpe2xldCBEPXAoXyx5LFIsQSxMLm5lYXIsTC5mYXIsSCk7bi5yZW5kZXJCdWZmZXJEaXJlY3QoTCxudWxsLHksRCxfLG51bGwpfX1sZXQgWD1fLmNoaWxkcmVuO2ZvcihsZXQgeT0wLFI9WC5sZW5ndGg7eTxSO3krKyliKFhbeV0sUyxMLEEsSCl9fWZ1bmN0aW9uIENFKG4sdCxlKXtsZXQgaT1lLmlzV2ViR0wyO2Z1bmN0aW9uIHIoKXtsZXQgUD0hMSxwdD1uZXcgV3QsaHQ9bnVsbCxFdD1uZXcgV3QoMCwwLDAsMCk7cmV0dXJue3NldE1hc2s6ZnVuY3Rpb24oWSl7aHQhPT1ZJiYhUCYmKG4uY29sb3JNYXNrKFksWSxZLFkpLGh0PVkpfSxzZXRMb2NrZWQ6ZnVuY3Rpb24oWSl7UD1ZfSxzZXRDbGVhcjpmdW5jdGlvbihZLE10LER0LGp0LHplKXt6ZT09PSEwJiYoWSo9anQsTXQqPWp0LER0Kj1qdCkscHQuc2V0KFksTXQsRHQsanQpLEV0LmVxdWFscyhwdCk9PT0hMSYmKG4uY2xlYXJDb2xvcihZLE10LER0LGp0KSxFdC5jb3B5KHB0KSl9LHJlc2V0OmZ1bmN0aW9uKCl7UD0hMSxodD1udWxsLEV0LnNldCgtMSwwLDAsMCl9fX1mdW5jdGlvbiBzKCl7bGV0IFA9ITEscHQ9bnVsbCxodD1udWxsLEV0PW51bGw7cmV0dXJue3NldFRlc3Q6ZnVuY3Rpb24oWSl7WT9rKDI5MjkpOkZ0KDI5MjkpfSxzZXRNYXNrOmZ1bmN0aW9uKFkpe3B0IT09WSYmIVAmJihuLmRlcHRoTWFzayhZKSxwdD1ZKX0sc2V0RnVuYzpmdW5jdGlvbihZKXtpZihodCE9PVkpe2lmKFkpc3dpdGNoKFkpe2Nhc2UgeXc6bi5kZXB0aEZ1bmMoNTEyKTticmVhaztjYXNlIHZ3Om4uZGVwdGhGdW5jKDUxOSk7YnJlYWs7Y2FzZSBfdzpuLmRlcHRoRnVuYyg1MTMpO2JyZWFrO2Nhc2UgenU6bi5kZXB0aEZ1bmMoNTE1KTticmVhaztjYXNlIHd3Om4uZGVwdGhGdW5jKDUxNCk7YnJlYWs7Y2FzZSBNdzpuLmRlcHRoRnVuYyg1MTgpO2JyZWFrO2Nhc2UgYnc6bi5kZXB0aEZ1bmMoNTE2KTticmVhaztjYXNlIFN3Om4uZGVwdGhGdW5jKDUxNyk7YnJlYWs7ZGVmYXVsdDpuLmRlcHRoRnVuYyg1MTUpfWVsc2Ugbi5kZXB0aEZ1bmMoNTE1KTtodD1ZfX0sc2V0TG9ja2VkOmZ1bmN0aW9uKFkpe1A9WX0sc2V0Q2xlYXI6ZnVuY3Rpb24oWSl7RXQhPT1ZJiYobi5jbGVhckRlcHRoKFkpLEV0PVkpfSxyZXNldDpmdW5jdGlvbigpe1A9ITEscHQ9bnVsbCxodD1udWxsLEV0PW51bGx9fX1mdW5jdGlvbiBvKCl7bGV0IFA9ITEscHQ9bnVsbCxodD1udWxsLEV0PW51bGwsWT1udWxsLE10PW51bGwsRHQ9bnVsbCxqdD1udWxsLHplPW51bGw7cmV0dXJue3NldFRlc3Q6ZnVuY3Rpb24obmUpe1B8fChuZT9rKDI5NjApOkZ0KDI5NjApKX0sc2V0TWFzazpmdW5jdGlvbihuZSl7cHQhPT1uZSYmIVAmJihuLnN0ZW5jaWxNYXNrKG5lKSxwdD1uZSl9LHNldEZ1bmM6ZnVuY3Rpb24obmUsZW4seW4peyhodCE9PW5lfHxFdCE9PWVufHxZIT09eW4pJiYobi5zdGVuY2lsRnVuYyhuZSxlbix5biksaHQ9bmUsRXQ9ZW4sWT15bil9LHNldE9wOmZ1bmN0aW9uKG5lLGVuLHluKXsoTXQhPT1uZXx8RHQhPT1lbnx8anQhPT15bikmJihuLnN0ZW5jaWxPcChuZSxlbix5biksTXQ9bmUsRHQ9ZW4sanQ9eW4pfSxzZXRMb2NrZWQ6ZnVuY3Rpb24obmUpe1A9bmV9LHNldENsZWFyOmZ1bmN0aW9uKG5lKXt6ZSE9PW5lJiYobi5jbGVhclN0ZW5jaWwobmUpLHplPW5lKX0scmVzZXQ6ZnVuY3Rpb24oKXtQPSExLHB0PW51bGwsaHQ9bnVsbCxFdD1udWxsLFk9bnVsbCxNdD1udWxsLER0PW51bGwsanQ9bnVsbCx6ZT1udWxsfX19bGV0IGE9bmV3IHIsbD1uZXcgcyxjPW5ldyBvLHU9e30saD17fSxmPW5ldyBXZWFrTWFwLGQ9W10sZz1udWxsLHg9ITEsdj1udWxsLG09bnVsbCxwPW51bGwsYj1udWxsLF89bnVsbCxTPW51bGwsTD1udWxsLEE9ITEsSD1udWxsLHR0PW51bGwsWD1udWxsLHk9bnVsbCxSPW51bGwsRD1uLmdldFBhcmFtZXRlcigzNTY2MSksRj0hMSx6PTAsTj1uLmdldFBhcmFtZXRlcig3OTM4KTtOLmluZGV4T2YoIldlYkdMIikhPT0tMT8oej1wYXJzZUZsb2F0KC9eV2ViR0wgKFxkKS8uZXhlYyhOKVsxXSksRj16Pj0xKTpOLmluZGV4T2YoIk9wZW5HTCBFUyIpIT09LTEmJih6PXBhcnNlRmxvYXQoL15PcGVuR0wgRVMgKFxkKS8uZXhlYyhOKVsxXSksRj16Pj0yKTtsZXQgVj1udWxsLFE9e30sYXQ9bi5nZXRQYXJhbWV0ZXIoMzA4OCksRz1uLmdldFBhcmFtZXRlcigyOTc4KSwkPW5ldyBXdCgpLmZyb21BcnJheShhdCksbHQ9bmV3IFd0KCkuZnJvbUFycmF5KEcpO2Z1bmN0aW9uIGR0KFAscHQsaHQpe2xldCBFdD1uZXcgVWludDhBcnJheSg0KSxZPW4uY3JlYXRlVGV4dHVyZSgpO24uYmluZFRleHR1cmUoUCxZKSxuLnRleFBhcmFtZXRlcmkoUCwxMDI0MSw5NzI4KSxuLnRleFBhcmFtZXRlcmkoUCwxMDI0MCw5NzI4KTtmb3IobGV0IE10PTA7TXQ8aHQ7TXQrKyluLnRleEltYWdlMkQocHQrTXQsMCw2NDA4LDEsMSwwLDY0MDgsNTEyMSxFdCk7cmV0dXJuIFl9bGV0IHh0PXt9O3h0WzM1NTNdPWR0KDM1NTMsMzU1MywxKSx4dFszNDA2N109ZHQoMzQwNjcsMzQwNjksNiksYS5zZXRDbGVhcigwLDAsMCwxKSxsLnNldENsZWFyKDEpLGMuc2V0Q2xlYXIoMCksaygyOTI5KSxsLnNldEZ1bmMoenUpLEooITEpLGl0KEFtKSxrKDI4ODQpLEMoam4pO2Z1bmN0aW9uIGsoUCl7dVtQXSE9PSEwJiYobi5lbmFibGUoUCksdVtQXT0hMCl9ZnVuY3Rpb24gRnQoUCl7dVtQXSE9PSExJiYobi5kaXNhYmxlKFApLHVbUF09ITEpfWZ1bmN0aW9uIG10KFAscHQpe3JldHVybiBoW1BdIT09cHQ/KG4uYmluZEZyYW1lYnVmZmVyKFAscHQpLGhbUF09cHQsaSYmKFA9PT0zNjAwOSYmKGhbMzYxNjBdPXB0KSxQPT09MzYxNjAmJihoWzM2MDA5XT1wdCkpLCEwKTohMX1mdW5jdGlvbiBTdChQLHB0KXtsZXQgaHQ9ZCxFdD0hMTtpZihQKWlmKGh0PWYuZ2V0KHB0KSxodD09PXZvaWQgMCYmKGh0PVtdLGYuc2V0KHB0LGh0KSksUC5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzKXtsZXQgWT1QLnRleHR1cmU7aWYoaHQubGVuZ3RoIT09WS5sZW5ndGh8fGh0WzBdIT09MzYwNjQpe2ZvcihsZXQgTXQ9MCxEdD1ZLmxlbmd0aDtNdDxEdDtNdCsrKWh0W010XT0zNjA2NCtNdDtodC5sZW5ndGg9WS5sZW5ndGgsRXQ9ITB9fWVsc2UgaHRbMF0hPT0zNjA2NCYmKGh0WzBdPTM2MDY0LEV0PSEwKTtlbHNlIGh0WzBdIT09MTAyOSYmKGh0WzBdPTEwMjksRXQ9ITApO0V0JiYoZS5pc1dlYkdMMj9uLmRyYXdCdWZmZXJzKGh0KTp0LmdldCgiV0VCR0xfZHJhd19idWZmZXJzIikuZHJhd0J1ZmZlcnNXRUJHTChodCkpfWZ1bmN0aW9uIEIoUCl7cmV0dXJuIGchPT1QPyhuLnVzZVByb2dyYW0oUCksZz1QLCEwKTohMX1sZXQgc3Q9e1tJcl06MzI3NzQsW2F3XTozMjc3OCxbbHddOjMyNzc5fTtpZihpKXN0W1BtXT0zMjc3NSxzdFtEbV09MzI3NzY7ZWxzZXtsZXQgUD10LmdldCgiRVhUX2JsZW5kX21pbm1heCIpO1AhPT1udWxsJiYoc3RbUG1dPVAuTUlOX0VYVCxzdFtEbV09UC5NQVhfRVhUKX1sZXQgbnQ9e1tjd106MCxbdXddOjEsW2h3XTo3NjgsW3UwXTo3NzAsW3h3XTo3NzYsW213XTo3NzQsW2R3XTo3NzIsW2Z3XTo3NjksW2gwXTo3NzEsW2d3XTo3NzUsW3B3XTo3NzN9O2Z1bmN0aW9uIEMoUCxwdCxodCxFdCxZLE10LER0LGp0KXtpZihQPT09am4pe3g9PT0hMCYmKEZ0KDMwNDIpLHg9ITEpO3JldHVybn1pZih4PT09ITEmJihrKDMwNDIpLHg9ITApLFAhPT1vdyl7aWYoUCE9PXZ8fGp0IT09QSl7aWYoKG0hPT1Jcnx8XyE9PUlyKSYmKG4uYmxlbmRFcXVhdGlvbigzMjc3NCksbT1JcixfPUlyKSxqdClzd2l0Y2goUCl7Y2FzZSBLczpuLmJsZW5kRnVuY1NlcGFyYXRlKDEsNzcxLDEsNzcxKTticmVhaztjYXNlIENtOm4uYmxlbmRGdW5jKDEsMSk7YnJlYWs7Y2FzZSBSbTpuLmJsZW5kRnVuY1NlcGFyYXRlKDAsNzY5LDAsMSk7YnJlYWs7Y2FzZSBMbTpuLmJsZW5kRnVuY1NlcGFyYXRlKDAsNzY4LDAsNzcwKTticmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IEludmFsaWQgYmxlbmRpbmc6ICIsUCk7YnJlYWt9ZWxzZSBzd2l0Y2goUCl7Y2FzZSBLczpuLmJsZW5kRnVuY1NlcGFyYXRlKDc3MCw3NzEsMSw3NzEpO2JyZWFrO2Nhc2UgQ206bi5ibGVuZEZ1bmMoNzcwLDEpO2JyZWFrO2Nhc2UgUm06bi5ibGVuZEZ1bmNTZXBhcmF0ZSgwLDc2OSwwLDEpO2JyZWFrO2Nhc2UgTG06bi5ibGVuZEZ1bmMoMCw3NjgpO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xTdGF0ZTogSW52YWxpZCBibGVuZGluZzogIixQKTticmVha31wPW51bGwsYj1udWxsLFM9bnVsbCxMPW51bGwsdj1QLEE9anR9cmV0dXJufVk9WXx8cHQsTXQ9TXR8fGh0LER0PUR0fHxFdCwocHQhPT1tfHxZIT09XykmJihuLmJsZW5kRXF1YXRpb25TZXBhcmF0ZShzdFtwdF0sc3RbWV0pLG09cHQsXz1ZKSwoaHQhPT1wfHxFdCE9PWJ8fE10IT09U3x8RHQhPT1MKSYmKG4uYmxlbmRGdW5jU2VwYXJhdGUobnRbaHRdLG50W0V0XSxudFtNdF0sbnRbRHRdKSxwPWh0LGI9RXQsUz1NdCxMPUR0KSx2PVAsQT1udWxsfWZ1bmN0aW9uIGooUCxwdCl7UC5zaWRlPT09SHI/RnQoMjg4NCk6aygyODg0KTtsZXQgaHQ9UC5zaWRlPT09aGU7cHQmJihodD0haHQpLEooaHQpLFAuYmxlbmRpbmc9PT1LcyYmUC50cmFuc3BhcmVudD09PSExP0Moam4pOkMoUC5ibGVuZGluZyxQLmJsZW5kRXF1YXRpb24sUC5ibGVuZFNyYyxQLmJsZW5kRHN0LFAuYmxlbmRFcXVhdGlvbkFscGhhLFAuYmxlbmRTcmNBbHBoYSxQLmJsZW5kRHN0QWxwaGEsUC5wcmVtdWx0aXBsaWVkQWxwaGEpLGwuc2V0RnVuYyhQLmRlcHRoRnVuYyksbC5zZXRUZXN0KFAuZGVwdGhUZXN0KSxsLnNldE1hc2soUC5kZXB0aFdyaXRlKSxhLnNldE1hc2soUC5jb2xvcldyaXRlKTtsZXQgRXQ9UC5zdGVuY2lsV3JpdGU7Yy5zZXRUZXN0KEV0KSxFdCYmKGMuc2V0TWFzayhQLnN0ZW5jaWxXcml0ZU1hc2spLGMuc2V0RnVuYyhQLnN0ZW5jaWxGdW5jLFAuc3RlbmNpbFJlZixQLnN0ZW5jaWxGdW5jTWFzayksYy5zZXRPcChQLnN0ZW5jaWxGYWlsLFAuc3RlbmNpbFpGYWlsLFAuc3RlbmNpbFpQYXNzKSksdnQoUC5wb2x5Z29uT2Zmc2V0LFAucG9seWdvbk9mZnNldEZhY3RvcixQLnBvbHlnb25PZmZzZXRVbml0cyksUC5hbHBoYVRvQ292ZXJhZ2U9PT0hMD9rKDMyOTI2KTpGdCgzMjkyNil9ZnVuY3Rpb24gSihQKXtIIT09UCYmKFA/bi5mcm9udEZhY2UoMjMwNCk6bi5mcm9udEZhY2UoMjMwNSksSD1QKX1mdW5jdGlvbiBpdChQKXtQIT09aXc/KGsoMjg4NCksUCE9PXR0JiYoUD09PUFtP24uY3VsbEZhY2UoMTAyOSk6UD09PXJ3P24uY3VsbEZhY2UoMTAyOCk6bi5jdWxsRmFjZSgxMDMyKSkpOkZ0KDI4ODQpLHR0PVB9ZnVuY3Rpb24gZXQoUCl7UCE9PVgmJihGJiZuLmxpbmVXaWR0aChQKSxYPVApfWZ1bmN0aW9uIHZ0KFAscHQsaHQpe1A/KGsoMzI4MjMpLCh5IT09cHR8fFIhPT1odCkmJihuLnBvbHlnb25PZmZzZXQocHQsaHQpLHk9cHQsUj1odCkpOkZ0KDMyODIzKX1mdW5jdGlvbiBidChQKXtQP2soMzA4OSk6RnQoMzA4OSl9ZnVuY3Rpb24gSXQoUCl7UD09PXZvaWQgMCYmKFA9MzM5ODQrRC0xKSxWIT09UCYmKG4uYWN0aXZlVGV4dHVyZShQKSxWPVApfWZ1bmN0aW9uIFp0KFAscHQpe1Y9PT1udWxsJiZJdCgpO2xldCBodD1RW1ZdO2h0PT09dm9pZCAwJiYoaHQ9e3R5cGU6dm9pZCAwLHRleHR1cmU6dm9pZCAwfSxRW1ZdPWh0KSwoaHQudHlwZSE9PVB8fGh0LnRleHR1cmUhPT1wdCkmJihuLmJpbmRUZXh0dXJlKFAscHR8fHh0W1BdKSxodC50eXBlPVAsaHQudGV4dHVyZT1wdCl9ZnVuY3Rpb24gcXQoKXtsZXQgUD1RW1ZdO1AhPT12b2lkIDAmJlAudHlwZSE9PXZvaWQgMCYmKG4uYmluZFRleHR1cmUoUC50eXBlLG51bGwpLFAudHlwZT12b2lkIDAsUC50ZXh0dXJlPXZvaWQgMCl9ZnVuY3Rpb24gRSgpe3RyeXtuLmNvbXByZXNzZWRUZXhJbWFnZTJELmFwcGx5KG4sYXJndW1lbnRzKX1jYXRjaChQKXtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiIsUCl9fWZ1bmN0aW9uIHcoKXt0cnl7bi50ZXhTdWJJbWFnZTJELmFwcGx5KG4sYXJndW1lbnRzKX1jYXRjaChQKXtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiIsUCl9fWZ1bmN0aW9uIHEoKXt0cnl7bi50ZXhTdWJJbWFnZTNELmFwcGx5KG4sYXJndW1lbnRzKX1jYXRjaChQKXtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiIsUCl9fWZ1bmN0aW9uIHJ0KCl7dHJ5e24uY29tcHJlc3NlZFRleFN1YkltYWdlMkQuYXBwbHkobixhcmd1bWVudHMpfWNhdGNoKFApe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IixQKX19ZnVuY3Rpb24gZ3QoKXt0cnl7bi50ZXhTdG9yYWdlMkQuYXBwbHkobixhcmd1bWVudHMpfWNhdGNoKFApe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IixQKX19ZnVuY3Rpb24gVygpe3RyeXtuLnRleFN0b3JhZ2UzRC5hcHBseShuLGFyZ3VtZW50cyl9Y2F0Y2goUCl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xTdGF0ZToiLFApfX1mdW5jdGlvbiBfdCgpe3RyeXtuLnRleEltYWdlMkQuYXBwbHkobixhcmd1bWVudHMpfWNhdGNoKFApe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IixQKX19ZnVuY3Rpb24geXQoKXt0cnl7bi50ZXhJbWFnZTNELmFwcGx5KG4sYXJndW1lbnRzKX1jYXRjaChQKXtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiIsUCl9fWZ1bmN0aW9uIHV0KFApeyQuZXF1YWxzKFApPT09ITEmJihuLnNjaXNzb3IoUC54LFAueSxQLnosUC53KSwkLmNvcHkoUCkpfWZ1bmN0aW9uIGN0KFApe2x0LmVxdWFscyhQKT09PSExJiYobi52aWV3cG9ydChQLngsUC55LFAueixQLncpLGx0LmNvcHkoUCkpfWZ1bmN0aW9uIEF0KCl7bi5kaXNhYmxlKDMwNDIpLG4uZGlzYWJsZSgyODg0KSxuLmRpc2FibGUoMjkyOSksbi5kaXNhYmxlKDMyODIzKSxuLmRpc2FibGUoMzA4OSksbi5kaXNhYmxlKDI5NjApLG4uZGlzYWJsZSgzMjkyNiksbi5ibGVuZEVxdWF0aW9uKDMyNzc0KSxuLmJsZW5kRnVuYygxLDApLG4uYmxlbmRGdW5jU2VwYXJhdGUoMSwwLDEsMCksbi5jb2xvck1hc2soITAsITAsITAsITApLG4uY2xlYXJDb2xvcigwLDAsMCwwKSxuLmRlcHRoTWFzayghMCksbi5kZXB0aEZ1bmMoNTEzKSxuLmNsZWFyRGVwdGgoMSksbi5zdGVuY2lsTWFzayg0Mjk0OTY3Mjk1KSxuLnN0ZW5jaWxGdW5jKDUxOSwwLDQyOTQ5NjcyOTUpLG4uc3RlbmNpbE9wKDc2ODAsNzY4MCw3NjgwKSxuLmNsZWFyU3RlbmNpbCgwKSxuLmN1bGxGYWNlKDEwMjkpLG4uZnJvbnRGYWNlKDIzMDUpLG4ucG9seWdvbk9mZnNldCgwLDApLG4uYWN0aXZlVGV4dHVyZSgzMzk4NCksbi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsbnVsbCksaT09PSEwJiYobi5iaW5kRnJhbWVidWZmZXIoMzYwMDksbnVsbCksbi5iaW5kRnJhbWVidWZmZXIoMzYwMDgsbnVsbCkpLG4udXNlUHJvZ3JhbShudWxsKSxuLmxpbmVXaWR0aCgxKSxuLnNjaXNzb3IoMCwwLG4uY2FudmFzLndpZHRoLG4uY2FudmFzLmhlaWdodCksbi52aWV3cG9ydCgwLDAsbi5jYW52YXMud2lkdGgsbi5jYW52YXMuaGVpZ2h0KSx1PXt9LFY9bnVsbCxRPXt9LGg9e30sZj1uZXcgV2Vha01hcCxkPVtdLGc9bnVsbCx4PSExLHY9bnVsbCxtPW51bGwscD1udWxsLGI9bnVsbCxfPW51bGwsUz1udWxsLEw9bnVsbCxBPSExLEg9bnVsbCx0dD1udWxsLFg9bnVsbCx5PW51bGwsUj1udWxsLCQuc2V0KDAsMCxuLmNhbnZhcy53aWR0aCxuLmNhbnZhcy5oZWlnaHQpLGx0LnNldCgwLDAsbi5jYW52YXMud2lkdGgsbi5jYW52YXMuaGVpZ2h0KSxhLnJlc2V0KCksbC5yZXNldCgpLGMucmVzZXQoKX1yZXR1cm57YnVmZmVyczp7Y29sb3I6YSxkZXB0aDpsLHN0ZW5jaWw6Y30sZW5hYmxlOmssZGlzYWJsZTpGdCxiaW5kRnJhbWVidWZmZXI6bXQsZHJhd0J1ZmZlcnM6U3QsdXNlUHJvZ3JhbTpCLHNldEJsZW5kaW5nOkMsc2V0TWF0ZXJpYWw6aixzZXRGbGlwU2lkZWQ6SixzZXRDdWxsRmFjZTppdCxzZXRMaW5lV2lkdGg6ZXQsc2V0UG9seWdvbk9mZnNldDp2dCxzZXRTY2lzc29yVGVzdDpidCxhY3RpdmVUZXh0dXJlOkl0LGJpbmRUZXh0dXJlOlp0LHVuYmluZFRleHR1cmU6cXQsY29tcHJlc3NlZFRleEltYWdlMkQ6RSx0ZXhJbWFnZTJEOl90LHRleEltYWdlM0Q6eXQsdGV4U3RvcmFnZTJEOmd0LHRleFN0b3JhZ2UzRDpXLHRleFN1YkltYWdlMkQ6dyx0ZXhTdWJJbWFnZTNEOnEsY29tcHJlc3NlZFRleFN1YkltYWdlMkQ6cnQsc2Npc3Nvcjp1dCx2aWV3cG9ydDpjdCxyZXNldDpBdH19ZnVuY3Rpb24gUkUobix0LGUsaSxyLHMsbyl7bGV0IGE9ci5pc1dlYkdMMixsPXIubWF4VGV4dHVyZXMsYz1yLm1heEN1YmVtYXBTaXplLHU9ci5tYXhUZXh0dXJlU2l6ZSxoPXIubWF4U2FtcGxlcyxkPXQuaGFzKCJXRUJHTF9tdWx0aXNhbXBsZWRfcmVuZGVyX3RvX3RleHR1cmUiKT90LmdldCgiV0VCR0xfbXVsdGlzYW1wbGVkX3JlbmRlcl90b190ZXh0dXJlIik6dm9pZCAwLGc9bmV3IFdlYWtNYXAseCx2PSExO3RyeXt2PXR5cGVvZiBPZmZzY3JlZW5DYW52YXMhPSJ1bmRlZmluZWQiJiZuZXcgT2Zmc2NyZWVuQ2FudmFzKDEsMSkuZ2V0Q29udGV4dCgiMmQiKSE9PW51bGx9Y2F0Y2goRSl7fWZ1bmN0aW9uIG0oRSx3KXtyZXR1cm4gdj9uZXcgT2Zmc2NyZWVuQ2FudmFzKEUsdyk6cm8oImNhbnZhcyIpfWZ1bmN0aW9uIHAoRSx3LHEscnQpe2xldCBndD0xO2lmKChFLndpZHRoPnJ0fHxFLmhlaWdodD5ydCkmJihndD1ydC9NYXRoLm1heChFLndpZHRoLEUuaGVpZ2h0KSksZ3Q8MXx8dz09PSEwKWlmKHR5cGVvZiBIVE1MSW1hZ2VFbGVtZW50IT0idW5kZWZpbmVkIiYmRSBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnR8fHR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudCE9InVuZGVmaW5lZCImJkUgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudHx8dHlwZW9mIEltYWdlQml0bWFwIT0idW5kZWZpbmVkIiYmRSBpbnN0YW5jZW9mIEltYWdlQml0bWFwKXtsZXQgVz13P25NOk1hdGguZmxvb3IsX3Q9VyhndCpFLndpZHRoKSx5dD1XKGd0KkUuaGVpZ2h0KTt4PT09dm9pZCAwJiYoeD1tKF90LHl0KSk7bGV0IHV0PXE/bShfdCx5dCk6eDtyZXR1cm4gdXQud2lkdGg9X3QsdXQuaGVpZ2h0PXl0LHV0LmdldENvbnRleHQoIjJkIikuZHJhd0ltYWdlKEUsMCwwLF90LHl0KSxjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgaGFzIGJlZW4gcmVzaXplZCBmcm9tICgiK0Uud2lkdGgrIngiK0UuaGVpZ2h0KyIpIHRvICgiK190KyJ4Iit5dCsiKS4iKSx1dH1lbHNlIHJldHVybiJkYXRhImluIEUmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogSW1hZ2UgaW4gRGF0YVRleHR1cmUgaXMgdG9vIGJpZyAoIitFLndpZHRoKyJ4IitFLmhlaWdodCsiKS4iKSxFO3JldHVybiBFfWZ1bmN0aW9uIGIoRSl7cmV0dXJuIGlnKEUud2lkdGgpJiZpZyhFLmhlaWdodCl9ZnVuY3Rpb24gXyhFKXtyZXR1cm4gYT8hMTpFLndyYXBTIT09VmV8fEUud3JhcFQhPT1WZXx8RS5taW5GaWx0ZXIhPT1mZSYmRS5taW5GaWx0ZXIhPT1iZX1mdW5jdGlvbiBTKEUsdyl7cmV0dXJuIEUuZ2VuZXJhdGVNaXBtYXBzJiZ3JiZFLm1pbkZpbHRlciE9PWZlJiZFLm1pbkZpbHRlciE9PWJlfWZ1bmN0aW9uIEwoRSl7bi5nZW5lcmF0ZU1pcG1hcChFKX1mdW5jdGlvbiBBKEUsdyxxLHJ0LGd0PSExKXtpZihhPT09ITEpcmV0dXJuIHc7aWYoRSE9PW51bGwpe2lmKG5bRV0hPT12b2lkIDApcmV0dXJuIG5bRV07Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBBdHRlbXB0IHRvIHVzZSBub24tZXhpc3RpbmcgV2ViR0wgaW50ZXJuYWwgZm9ybWF0ICciK0UrIiciKX1sZXQgVz13O3JldHVybiB3PT09NjQwMyYmKHE9PT01MTI2JiYoVz0zMzMyNikscT09PTUxMzEmJihXPTMzMzI1KSxxPT09NTEyMSYmKFc9MzMzMjEpKSx3PT09MzMzMTkmJihxPT09NTEyNiYmKFc9MzMzMjgpLHE9PT01MTMxJiYoVz0zMzMyNykscT09PTUxMjEmJihXPTMzMzIzKSksdz09PTY0MDgmJihxPT09NTEyNiYmKFc9MzQ4MzYpLHE9PT01MTMxJiYoVz0zNDg0MikscT09PTUxMjEmJihXPXJ0PT09JHQmJmd0PT09ITE/MzU5MDc6MzI4NTYpLHE9PT0zMjgxOSYmKFc9MzI4NTQpLHE9PT0zMjgyMCYmKFc9MzI4NTUpKSwoVz09PTMzMzI1fHxXPT09MzMzMjZ8fFc9PT0zMzMyN3x8Vz09PTMzMzI4fHxXPT09MzQ4NDJ8fFc9PT0zNDgzNikmJnQuZ2V0KCJFWFRfY29sb3JfYnVmZmVyX2Zsb2F0IiksV31mdW5jdGlvbiBIKEUsdyxxKXtyZXR1cm4gUyhFLHEpPT09ITB8fEUuaXNGcmFtZWJ1ZmZlclRleHR1cmUmJkUubWluRmlsdGVyIT09ZmUmJkUubWluRmlsdGVyIT09YmU/TWF0aC5sb2cyKE1hdGgubWF4KHcud2lkdGgsdy5oZWlnaHQpKSsxOkUubWlwbWFwcyE9PXZvaWQgMCYmRS5taXBtYXBzLmxlbmd0aD4wP0UubWlwbWFwcy5sZW5ndGg6RS5pc0NvbXByZXNzZWRUZXh0dXJlJiZBcnJheS5pc0FycmF5KEUuaW1hZ2UpP3cubWlwbWFwcy5sZW5ndGg6MX1mdW5jdGlvbiB0dChFKXtyZXR1cm4gRT09PWZlfHxFPT09SW18fEU9PT1ObT85NzI4Ojk3Mjl9ZnVuY3Rpb24gWChFKXtsZXQgdz1FLnRhcmdldDt3LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLFgpLFIodyksdy5pc1ZpZGVvVGV4dHVyZSYmZy5kZWxldGUodyksby5tZW1vcnkudGV4dHVyZXMtLX1mdW5jdGlvbiB5KEUpe2xldCB3PUUudGFyZ2V0O3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIseSksRCh3KX1mdW5jdGlvbiBSKEUpe2xldCB3PWkuZ2V0KEUpO3cuX193ZWJnbEluaXQhPT12b2lkIDAmJihuLmRlbGV0ZVRleHR1cmUody5fX3dlYmdsVGV4dHVyZSksaS5yZW1vdmUoRSkpfWZ1bmN0aW9uIEQoRSl7bGV0IHc9RS50ZXh0dXJlLHE9aS5nZXQoRSkscnQ9aS5nZXQodyk7aWYoISFFKXtpZihydC5fX3dlYmdsVGV4dHVyZSE9PXZvaWQgMCYmKG4uZGVsZXRlVGV4dHVyZShydC5fX3dlYmdsVGV4dHVyZSksby5tZW1vcnkudGV4dHVyZXMtLSksRS5kZXB0aFRleHR1cmUmJkUuZGVwdGhUZXh0dXJlLmRpc3Bvc2UoKSxFLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KWZvcihsZXQgZ3Q9MDtndDw2O2d0Kyspbi5kZWxldGVGcmFtZWJ1ZmZlcihxLl9fd2ViZ2xGcmFtZWJ1ZmZlcltndF0pLHEuX193ZWJnbERlcHRoYnVmZmVyJiZuLmRlbGV0ZVJlbmRlcmJ1ZmZlcihxLl9fd2ViZ2xEZXB0aGJ1ZmZlcltndF0pO2Vsc2Ugbi5kZWxldGVGcmFtZWJ1ZmZlcihxLl9fd2ViZ2xGcmFtZWJ1ZmZlcikscS5fX3dlYmdsRGVwdGhidWZmZXImJm4uZGVsZXRlUmVuZGVyYnVmZmVyKHEuX193ZWJnbERlcHRoYnVmZmVyKSxxLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlciYmbi5kZWxldGVGcmFtZWJ1ZmZlcihxLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcikscS5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXImJm4uZGVsZXRlUmVuZGVyYnVmZmVyKHEuX193ZWJnbENvbG9yUmVuZGVyYnVmZmVyKSxxLl9fd2ViZ2xEZXB0aFJlbmRlcmJ1ZmZlciYmbi5kZWxldGVSZW5kZXJidWZmZXIocS5fX3dlYmdsRGVwdGhSZW5kZXJidWZmZXIpO2lmKEUuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cylmb3IobGV0IGd0PTAsVz13Lmxlbmd0aDtndDxXO2d0Kyspe2xldCBfdD1pLmdldCh3W2d0XSk7X3QuX193ZWJnbFRleHR1cmUmJihuLmRlbGV0ZVRleHR1cmUoX3QuX193ZWJnbFRleHR1cmUpLG8ubWVtb3J5LnRleHR1cmVzLS0pLGkucmVtb3ZlKHdbZ3RdKX1pLnJlbW92ZSh3KSxpLnJlbW92ZShFKX19bGV0IEY9MDtmdW5jdGlvbiB6KCl7Rj0wfWZ1bmN0aW9uIE4oKXtsZXQgRT1GO3JldHVybiBFPj1sJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMVGV4dHVyZXM6IFRyeWluZyB0byB1c2UgIitFKyIgdGV4dHVyZSB1bml0cyB3aGlsZSB0aGlzIEdQVSBzdXBwb3J0cyBvbmx5ICIrbCksRis9MSxFfWZ1bmN0aW9uIFYoRSx3KXtsZXQgcT1pLmdldChFKTtpZihFLmlzVmlkZW9UZXh0dXJlJiZldChFKSxFLnZlcnNpb24+MCYmcS5fX3ZlcnNpb24hPT1FLnZlcnNpb24pe2xldCBydD1FLmltYWdlO2lmKHJ0PT09dm9pZCAwKWNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVGV4dHVyZSBtYXJrZWQgZm9yIHVwZGF0ZSBidXQgaW1hZ2UgaXMgdW5kZWZpbmVkIik7ZWxzZSBpZihydC5jb21wbGV0ZT09PSExKWNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVGV4dHVyZSBtYXJrZWQgZm9yIHVwZGF0ZSBidXQgaW1hZ2UgaXMgaW5jb21wbGV0ZSIpO2Vsc2V7ayhxLEUsdyk7cmV0dXJufX1lLmFjdGl2ZVRleHR1cmUoMzM5ODQrdyksZS5iaW5kVGV4dHVyZSgzNTUzLHEuX193ZWJnbFRleHR1cmUpfWZ1bmN0aW9uIFEoRSx3KXtsZXQgcT1pLmdldChFKTtpZihFLnZlcnNpb24+MCYmcS5fX3ZlcnNpb24hPT1FLnZlcnNpb24pe2socSxFLHcpO3JldHVybn1lLmFjdGl2ZVRleHR1cmUoMzM5ODQrdyksZS5iaW5kVGV4dHVyZSgzNTg2NixxLl9fd2ViZ2xUZXh0dXJlKX1mdW5jdGlvbiBhdChFLHcpe2xldCBxPWkuZ2V0KEUpO2lmKEUudmVyc2lvbj4wJiZxLl9fdmVyc2lvbiE9PUUudmVyc2lvbil7ayhxLEUsdyk7cmV0dXJufWUuYWN0aXZlVGV4dHVyZSgzMzk4NCt3KSxlLmJpbmRUZXh0dXJlKDMyODc5LHEuX193ZWJnbFRleHR1cmUpfWZ1bmN0aW9uIEcoRSx3KXtsZXQgcT1pLmdldChFKTtpZihFLnZlcnNpb24+MCYmcS5fX3ZlcnNpb24hPT1FLnZlcnNpb24pe0Z0KHEsRSx3KTtyZXR1cm59ZS5hY3RpdmVUZXh0dXJlKDMzOTg0K3cpLGUuYmluZFRleHR1cmUoMzQwNjcscS5fX3dlYmdsVGV4dHVyZSl9bGV0ICQ9e1tPdV06MTA0OTcsW1ZlXTozMzA3MSxba3VdOjMzNjQ4fSxsdD17W2ZlXTo5NzI4LFtJbV06OTk4NCxbTm1dOjk5ODYsW2JlXTo5NzI5LFtEd106OTk4NSxbTGxdOjk5ODd9O2Z1bmN0aW9uIGR0KEUsdyxxKXtpZihxPyhuLnRleFBhcmFtZXRlcmkoRSwxMDI0MiwkW3cud3JhcFNdKSxuLnRleFBhcmFtZXRlcmkoRSwxMDI0MywkW3cud3JhcFRdKSwoRT09PTMyODc5fHxFPT09MzU4NjYpJiZuLnRleFBhcmFtZXRlcmkoRSwzMjg4MiwkW3cud3JhcFJdKSxuLnRleFBhcmFtZXRlcmkoRSwxMDI0MCxsdFt3Lm1hZ0ZpbHRlcl0pLG4udGV4UGFyYW1ldGVyaShFLDEwMjQxLGx0W3cubWluRmlsdGVyXSkpOihuLnRleFBhcmFtZXRlcmkoRSwxMDI0MiwzMzA3MSksbi50ZXhQYXJhbWV0ZXJpKEUsMTAyNDMsMzMwNzEpLChFPT09MzI4Nzl8fEU9PT0zNTg2NikmJm4udGV4UGFyYW1ldGVyaShFLDMyODgyLDMzMDcxKSwody53cmFwUyE9PVZlfHx3LndyYXBUIT09VmUpJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgaXMgbm90IHBvd2VyIG9mIHR3by4gVGV4dHVyZS53cmFwUyBhbmQgVGV4dHVyZS53cmFwVCBzaG91bGQgYmUgc2V0IHRvIFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmcuIiksbi50ZXhQYXJhbWV0ZXJpKEUsMTAyNDAsdHQody5tYWdGaWx0ZXIpKSxuLnRleFBhcmFtZXRlcmkoRSwxMDI0MSx0dCh3Lm1pbkZpbHRlcikpLHcubWluRmlsdGVyIT09ZmUmJncubWluRmlsdGVyIT09YmUmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVGV4dHVyZSBpcyBub3QgcG93ZXIgb2YgdHdvLiBUZXh0dXJlLm1pbkZpbHRlciBzaG91bGQgYmUgc2V0IHRvIFRIUkVFLk5lYXJlc3RGaWx0ZXIgb3IgVEhSRUUuTGluZWFyRmlsdGVyLiIpKSx0LmhhcygiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik9PT0hMCl7bGV0IHJ0PXQuZ2V0KCJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTtpZih3LnR5cGU9PT1VaSYmdC5oYXMoIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpPT09ITF8fGE9PT0hMSYmdy50eXBlPT09VXImJnQuaGFzKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpPT09ITEpcmV0dXJuOyh3LmFuaXNvdHJvcHk+MXx8aS5nZXQodykuX19jdXJyZW50QW5pc290cm9weSkmJihuLnRleFBhcmFtZXRlcmYoRSxydC5URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCxNYXRoLm1pbih3LmFuaXNvdHJvcHksci5nZXRNYXhBbmlzb3Ryb3B5KCkpKSxpLmdldCh3KS5fX2N1cnJlbnRBbmlzb3Ryb3B5PXcuYW5pc290cm9weSl9fWZ1bmN0aW9uIHh0KEUsdyl7RS5fX3dlYmdsSW5pdD09PXZvaWQgMCYmKEUuX193ZWJnbEluaXQ9ITAsdy5hZGRFdmVudExpc3RlbmVyKCJkaXNwb3NlIixYKSxFLl9fd2ViZ2xUZXh0dXJlPW4uY3JlYXRlVGV4dHVyZSgpLG8ubWVtb3J5LnRleHR1cmVzKyspfWZ1bmN0aW9uIGsoRSx3LHEpe2xldCBydD0zNTUzO3cuaXNEYXRhVGV4dHVyZTJEQXJyYXkmJihydD0zNTg2Niksdy5pc0RhdGFUZXh0dXJlM0QmJihydD0zMjg3OSkseHQoRSx3KSxlLmFjdGl2ZVRleHR1cmUoMzM5ODQrcSksZS5iaW5kVGV4dHVyZShydCxFLl9fd2ViZ2xUZXh0dXJlKSxuLnBpeGVsU3RvcmVpKDM3NDQwLHcuZmxpcFkpLG4ucGl4ZWxTdG9yZWkoMzc0NDEsdy5wcmVtdWx0aXBseUFscGhhKSxuLnBpeGVsU3RvcmVpKDMzMTcsdy51bnBhY2tBbGlnbm1lbnQpLG4ucGl4ZWxTdG9yZWkoMzc0NDMsMCk7bGV0IGd0PV8odykmJmIody5pbWFnZSk9PT0hMSxXPXAody5pbWFnZSxndCwhMSx1KTtXPXZ0KHcsVyk7bGV0IF90PWIoVyl8fGEseXQ9cy5jb252ZXJ0KHcuZm9ybWF0LHcuZW5jb2RpbmcpLHV0PXMuY29udmVydCh3LnR5cGUpLGN0PUEody5pbnRlcm5hbEZvcm1hdCx5dCx1dCx3LmVuY29kaW5nLHcuaXNWaWRlb1RleHR1cmUpO2R0KHJ0LHcsX3QpO2xldCBBdCxQPXcubWlwbWFwcyxwdD1hJiZ3LmlzVmlkZW9UZXh0dXJlIT09ITAsaHQ9RS5fX3ZlcnNpb249PT12b2lkIDAsRXQ9SCh3LFcsX3QpO2lmKHcuaXNEZXB0aFRleHR1cmUpY3Q9NjQwMixhP3cudHlwZT09PVVpP2N0PTM2MDEyOncudHlwZT09PVFhP2N0PTMzMTkwOncudHlwZT09PUJyP2N0PTM1MDU2OmN0PTMzMTg5OncudHlwZT09PVVpJiZjb25zb2xlLmVycm9yKCJXZWJHTFJlbmRlcmVyOiBGbG9hdGluZyBwb2ludCBkZXB0aCB0ZXh0dXJlIHJlcXVpcmVzIFdlYkdMMi4iKSx3LmZvcm1hdD09PU9pJiZjdD09PTY0MDImJncudHlwZSE9PW5vJiZ3LnR5cGUhPT1RYSYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVXNlIFVuc2lnbmVkU2hvcnRUeXBlIG9yIFVuc2lnbmVkSW50VHlwZSBmb3IgRGVwdGhGb3JtYXQgRGVwdGhUZXh0dXJlLiIpLHcudHlwZT1ubyx1dD1zLmNvbnZlcnQody50eXBlKSksdy5mb3JtYXQ9PT1WciYmY3Q9PT02NDAyJiYoY3Q9MzQwNDEsdy50eXBlIT09QnImJihjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFVzZSBVbnNpZ25lZEludDI0OFR5cGUgZm9yIERlcHRoU3RlbmNpbEZvcm1hdCBEZXB0aFRleHR1cmUuIiksdy50eXBlPUJyLHV0PXMuY29udmVydCh3LnR5cGUpKSkscHQmJmh0P2UudGV4U3RvcmFnZTJEKDM1NTMsMSxjdCxXLndpZHRoLFcuaGVpZ2h0KTplLnRleEltYWdlMkQoMzU1MywwLGN0LFcud2lkdGgsVy5oZWlnaHQsMCx5dCx1dCxudWxsKTtlbHNlIGlmKHcuaXNEYXRhVGV4dHVyZSlpZihQLmxlbmd0aD4wJiZfdCl7cHQmJmh0JiZlLnRleFN0b3JhZ2UyRCgzNTUzLEV0LGN0LFBbMF0ud2lkdGgsUFswXS5oZWlnaHQpO2ZvcihsZXQgWT0wLE10PVAubGVuZ3RoO1k8TXQ7WSsrKUF0PVBbWV0scHQ/ZS50ZXhTdWJJbWFnZTJEKDM1NTMsMCwwLDAsQXQud2lkdGgsQXQuaGVpZ2h0LHl0LHV0LEF0LmRhdGEpOmUudGV4SW1hZ2UyRCgzNTUzLFksY3QsQXQud2lkdGgsQXQuaGVpZ2h0LDAseXQsdXQsQXQuZGF0YSk7dy5nZW5lcmF0ZU1pcG1hcHM9ITF9ZWxzZSBwdD8oaHQmJmUudGV4U3RvcmFnZTJEKDM1NTMsRXQsY3QsVy53aWR0aCxXLmhlaWdodCksZS50ZXhTdWJJbWFnZTJEKDM1NTMsMCwwLDAsVy53aWR0aCxXLmhlaWdodCx5dCx1dCxXLmRhdGEpKTplLnRleEltYWdlMkQoMzU1MywwLGN0LFcud2lkdGgsVy5oZWlnaHQsMCx5dCx1dCxXLmRhdGEpO2Vsc2UgaWYody5pc0NvbXByZXNzZWRUZXh0dXJlKXtwdCYmaHQmJmUudGV4U3RvcmFnZTJEKDM1NTMsRXQsY3QsUFswXS53aWR0aCxQWzBdLmhlaWdodCk7Zm9yKGxldCBZPTAsTXQ9UC5sZW5ndGg7WTxNdDtZKyspQXQ9UFtZXSx3LmZvcm1hdCE9PVJlP3l0IT09bnVsbD9wdD9lLmNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKDM1NTMsWSwwLDAsQXQud2lkdGgsQXQuaGVpZ2h0LHl0LEF0LmRhdGEpOmUuY29tcHJlc3NlZFRleEltYWdlMkQoMzU1MyxZLGN0LEF0LndpZHRoLEF0LmhlaWdodCwwLEF0LmRhdGEpOmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogQXR0ZW1wdCB0byBsb2FkIHVuc3VwcG9ydGVkIGNvbXByZXNzZWQgdGV4dHVyZSBmb3JtYXQgaW4gLnVwbG9hZFRleHR1cmUoKSIpOnB0P2UudGV4U3ViSW1hZ2UyRCgzNTUzLFksMCwwLEF0LndpZHRoLEF0LmhlaWdodCx5dCx1dCxBdC5kYXRhKTplLnRleEltYWdlMkQoMzU1MyxZLGN0LEF0LndpZHRoLEF0LmhlaWdodCwwLHl0LHV0LEF0LmRhdGEpfWVsc2UgaWYody5pc0RhdGFUZXh0dXJlMkRBcnJheSlwdD8oaHQmJmUudGV4U3RvcmFnZTNEKDM1ODY2LEV0LGN0LFcud2lkdGgsVy5oZWlnaHQsVy5kZXB0aCksZS50ZXhTdWJJbWFnZTNEKDM1ODY2LDAsMCwwLDAsVy53aWR0aCxXLmhlaWdodCxXLmRlcHRoLHl0LHV0LFcuZGF0YSkpOmUudGV4SW1hZ2UzRCgzNTg2NiwwLGN0LFcud2lkdGgsVy5oZWlnaHQsVy5kZXB0aCwwLHl0LHV0LFcuZGF0YSk7ZWxzZSBpZih3LmlzRGF0YVRleHR1cmUzRClwdD8oaHQmJmUudGV4U3RvcmFnZTNEKDMyODc5LEV0LGN0LFcud2lkdGgsVy5oZWlnaHQsVy5kZXB0aCksZS50ZXhTdWJJbWFnZTNEKDMyODc5LDAsMCwwLDAsVy53aWR0aCxXLmhlaWdodCxXLmRlcHRoLHl0LHV0LFcuZGF0YSkpOmUudGV4SW1hZ2UzRCgzMjg3OSwwLGN0LFcud2lkdGgsVy5oZWlnaHQsVy5kZXB0aCwwLHl0LHV0LFcuZGF0YSk7ZWxzZSBpZih3LmlzRnJhbWVidWZmZXJUZXh0dXJlKXB0JiZodD9lLnRleFN0b3JhZ2UyRCgzNTUzLEV0LGN0LFcud2lkdGgsVy5oZWlnaHQpOmUudGV4SW1hZ2UyRCgzNTUzLDAsY3QsVy53aWR0aCxXLmhlaWdodCwwLHl0LHV0LG51bGwpO2Vsc2UgaWYoUC5sZW5ndGg+MCYmX3Qpe3B0JiZodCYmZS50ZXhTdG9yYWdlMkQoMzU1MyxFdCxjdCxQWzBdLndpZHRoLFBbMF0uaGVpZ2h0KTtmb3IobGV0IFk9MCxNdD1QLmxlbmd0aDtZPE10O1krKylBdD1QW1ldLHB0P2UudGV4U3ViSW1hZ2UyRCgzNTUzLFksMCwwLHl0LHV0LEF0KTplLnRleEltYWdlMkQoMzU1MyxZLGN0LHl0LHV0LEF0KTt3LmdlbmVyYXRlTWlwbWFwcz0hMX1lbHNlIHB0PyhodCYmZS50ZXhTdG9yYWdlMkQoMzU1MyxFdCxjdCxXLndpZHRoLFcuaGVpZ2h0KSxlLnRleFN1YkltYWdlMkQoMzU1MywwLDAsMCx5dCx1dCxXKSk6ZS50ZXhJbWFnZTJEKDM1NTMsMCxjdCx5dCx1dCxXKTtTKHcsX3QpJiZMKHJ0KSxFLl9fdmVyc2lvbj13LnZlcnNpb24sdy5vblVwZGF0ZSYmdy5vblVwZGF0ZSh3KX1mdW5jdGlvbiBGdChFLHcscSl7aWYody5pbWFnZS5sZW5ndGghPT02KXJldHVybjt4dChFLHcpLGUuYWN0aXZlVGV4dHVyZSgzMzk4NCtxKSxlLmJpbmRUZXh0dXJlKDM0MDY3LEUuX193ZWJnbFRleHR1cmUpLG4ucGl4ZWxTdG9yZWkoMzc0NDAsdy5mbGlwWSksbi5waXhlbFN0b3JlaSgzNzQ0MSx3LnByZW11bHRpcGx5QWxwaGEpLG4ucGl4ZWxTdG9yZWkoMzMxNyx3LnVucGFja0FsaWdubWVudCksbi5waXhlbFN0b3JlaSgzNzQ0MywwKTtsZXQgcnQ9dyYmKHcuaXNDb21wcmVzc2VkVGV4dHVyZXx8dy5pbWFnZVswXS5pc0NvbXByZXNzZWRUZXh0dXJlKSxndD13LmltYWdlWzBdJiZ3LmltYWdlWzBdLmlzRGF0YVRleHR1cmUsVz1bXTtmb3IobGV0IFk9MDtZPDY7WSsrKSFydCYmIWd0P1dbWV09cCh3LmltYWdlW1ldLCExLCEwLGMpOldbWV09Z3Q/dy5pbWFnZVtZXS5pbWFnZTp3LmltYWdlW1ldLFdbWV09dnQodyxXW1ldKTtsZXQgX3Q9V1swXSx5dD1iKF90KXx8YSx1dD1zLmNvbnZlcnQody5mb3JtYXQsdy5lbmNvZGluZyksY3Q9cy5jb252ZXJ0KHcudHlwZSksQXQ9QSh3LmludGVybmFsRm9ybWF0LHV0LGN0LHcuZW5jb2RpbmcpLFA9YSYmdy5pc1ZpZGVvVGV4dHVyZSE9PSEwLHB0PUUuX192ZXJzaW9uPT09dm9pZCAwLGh0PUgodyxfdCx5dCk7ZHQoMzQwNjcsdyx5dCk7bGV0IEV0O2lmKHJ0KXtQJiZwdCYmZS50ZXhTdG9yYWdlMkQoMzQwNjcsaHQsQXQsX3Qud2lkdGgsX3QuaGVpZ2h0KTtmb3IobGV0IFk9MDtZPDY7WSsrKXtFdD1XW1ldLm1pcG1hcHM7Zm9yKGxldCBNdD0wO010PEV0Lmxlbmd0aDtNdCsrKXtsZXQgRHQ9RXRbTXRdO3cuZm9ybWF0IT09UmU/dXQhPT1udWxsP1A/ZS5jb21wcmVzc2VkVGV4U3ViSW1hZ2UyRCgzNDA2OStZLE10LDAsMCxEdC53aWR0aCxEdC5oZWlnaHQsdXQsRHQuZGF0YSk6ZS5jb21wcmVzc2VkVGV4SW1hZ2UyRCgzNDA2OStZLE10LEF0LER0LndpZHRoLER0LmhlaWdodCwwLER0LmRhdGEpOmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogQXR0ZW1wdCB0byBsb2FkIHVuc3VwcG9ydGVkIGNvbXByZXNzZWQgdGV4dHVyZSBmb3JtYXQgaW4gLnNldFRleHR1cmVDdWJlKCkiKTpQP2UudGV4U3ViSW1hZ2UyRCgzNDA2OStZLE10LDAsMCxEdC53aWR0aCxEdC5oZWlnaHQsdXQsY3QsRHQuZGF0YSk6ZS50ZXhJbWFnZTJEKDM0MDY5K1ksTXQsQXQsRHQud2lkdGgsRHQuaGVpZ2h0LDAsdXQsY3QsRHQuZGF0YSl9fX1lbHNle0V0PXcubWlwbWFwcyxQJiZwdCYmKEV0Lmxlbmd0aD4wJiZodCsrLGUudGV4U3RvcmFnZTJEKDM0MDY3LGh0LEF0LFdbMF0ud2lkdGgsV1swXS5oZWlnaHQpKTtmb3IobGV0IFk9MDtZPDY7WSsrKWlmKGd0KXtQP2UudGV4U3ViSW1hZ2UyRCgzNDA2OStZLDAsMCwwLFdbWV0ud2lkdGgsV1tZXS5oZWlnaHQsdXQsY3QsV1tZXS5kYXRhKTplLnRleEltYWdlMkQoMzQwNjkrWSwwLEF0LFdbWV0ud2lkdGgsV1tZXS5oZWlnaHQsMCx1dCxjdCxXW1ldLmRhdGEpO2ZvcihsZXQgTXQ9MDtNdDxFdC5sZW5ndGg7TXQrKyl7bGV0IGp0PUV0W010XS5pbWFnZVtZXS5pbWFnZTtQP2UudGV4U3ViSW1hZ2UyRCgzNDA2OStZLE10KzEsMCwwLGp0LndpZHRoLGp0LmhlaWdodCx1dCxjdCxqdC5kYXRhKTplLnRleEltYWdlMkQoMzQwNjkrWSxNdCsxLEF0LGp0LndpZHRoLGp0LmhlaWdodCwwLHV0LGN0LGp0LmRhdGEpfX1lbHNle1A/ZS50ZXhTdWJJbWFnZTJEKDM0MDY5K1ksMCwwLDAsdXQsY3QsV1tZXSk6ZS50ZXhJbWFnZTJEKDM0MDY5K1ksMCxBdCx1dCxjdCxXW1ldKTtmb3IobGV0IE10PTA7TXQ8RXQubGVuZ3RoO010Kyspe2xldCBEdD1FdFtNdF07UD9lLnRleFN1YkltYWdlMkQoMzQwNjkrWSxNdCsxLDAsMCx1dCxjdCxEdC5pbWFnZVtZXSk6ZS50ZXhJbWFnZTJEKDM0MDY5K1ksTXQrMSxBdCx1dCxjdCxEdC5pbWFnZVtZXSl9fX1TKHcseXQpJiZMKDM0MDY3KSxFLl9fdmVyc2lvbj13LnZlcnNpb24sdy5vblVwZGF0ZSYmdy5vblVwZGF0ZSh3KX1mdW5jdGlvbiBtdChFLHcscSxydCxndCl7bGV0IFc9cy5jb252ZXJ0KHEuZm9ybWF0LHEuZW5jb2RpbmcpLF90PXMuY29udmVydChxLnR5cGUpLHl0PUEocS5pbnRlcm5hbEZvcm1hdCxXLF90LHEuZW5jb2RpbmcpO2kuZ2V0KHcpLl9faGFzRXh0ZXJuYWxUZXh0dXJlc3x8KGd0PT09MzI4Nzl8fGd0PT09MzU4NjY/ZS50ZXhJbWFnZTNEKGd0LDAseXQsdy53aWR0aCx3LmhlaWdodCx3LmRlcHRoLDAsVyxfdCxudWxsKTplLnRleEltYWdlMkQoZ3QsMCx5dCx3LndpZHRoLHcuaGVpZ2h0LDAsVyxfdCxudWxsKSksZS5iaW5kRnJhbWVidWZmZXIoMzYxNjAsRSksdy51c2VSZW5kZXJUb1RleHR1cmU/ZC5mcmFtZWJ1ZmZlclRleHR1cmUyRE11bHRpc2FtcGxlRVhUKDM2MTYwLHJ0LGd0LGkuZ2V0KHEpLl9fd2ViZ2xUZXh0dXJlLDAsaXQodykpOm4uZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAscnQsZ3QsaS5nZXQocSkuX193ZWJnbFRleHR1cmUsMCksZS5iaW5kRnJhbWVidWZmZXIoMzYxNjAsbnVsbCl9ZnVuY3Rpb24gU3QoRSx3LHEpe2lmKG4uYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxFKSx3LmRlcHRoQnVmZmVyJiYhdy5zdGVuY2lsQnVmZmVyKXtsZXQgcnQ9MzMxODk7aWYocXx8dy51c2VSZW5kZXJUb1RleHR1cmUpe2xldCBndD13LmRlcHRoVGV4dHVyZTtndCYmZ3QuaXNEZXB0aFRleHR1cmUmJihndC50eXBlPT09VWk/cnQ9MzYwMTI6Z3QudHlwZT09PVFhJiYocnQ9MzMxOTApKTtsZXQgVz1pdCh3KTt3LnVzZVJlbmRlclRvVGV4dHVyZT9kLnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZUVYVCgzNjE2MSxXLHJ0LHcud2lkdGgsdy5oZWlnaHQpOm4ucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKDM2MTYxLFcscnQsdy53aWR0aCx3LmhlaWdodCl9ZWxzZSBuLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoMzYxNjEscnQsdy53aWR0aCx3LmhlaWdodCk7bi5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigzNjE2MCwzNjA5NiwzNjE2MSxFKX1lbHNlIGlmKHcuZGVwdGhCdWZmZXImJncuc3RlbmNpbEJ1ZmZlcil7bGV0IHJ0PWl0KHcpO3EmJncudXNlUmVuZGVyYnVmZmVyP24ucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKDM2MTYxLHJ0LDM1MDU2LHcud2lkdGgsdy5oZWlnaHQpOncudXNlUmVuZGVyVG9UZXh0dXJlP2QucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlRVhUKDM2MTYxLHJ0LDM1MDU2LHcud2lkdGgsdy5oZWlnaHQpOm4ucmVuZGVyYnVmZmVyU3RvcmFnZSgzNjE2MSwzNDA0MSx3LndpZHRoLHcuaGVpZ2h0KSxuLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKDM2MTYwLDMzMzA2LDM2MTYxLEUpfWVsc2V7bGV0IHJ0PXcuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cz09PSEwP3cudGV4dHVyZVswXTp3LnRleHR1cmUsZ3Q9cy5jb252ZXJ0KHJ0LmZvcm1hdCxydC5lbmNvZGluZyksVz1zLmNvbnZlcnQocnQudHlwZSksX3Q9QShydC5pbnRlcm5hbEZvcm1hdCxndCxXLHJ0LmVuY29kaW5nKSx5dD1pdCh3KTtxJiZ3LnVzZVJlbmRlcmJ1ZmZlcj9uLnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSgzNjE2MSx5dCxfdCx3LndpZHRoLHcuaGVpZ2h0KTp3LnVzZVJlbmRlclRvVGV4dHVyZT9kLnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZUVYVCgzNjE2MSx5dCxfdCx3LndpZHRoLHcuaGVpZ2h0KTpuLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoMzYxNjEsX3Qsdy53aWR0aCx3LmhlaWdodCl9bi5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpfWZ1bmN0aW9uIEIoRSx3KXtpZih3JiZ3LmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KXRocm93IG5ldyBFcnJvcigiRGVwdGggVGV4dHVyZSB3aXRoIGN1YmUgcmVuZGVyIHRhcmdldHMgaXMgbm90IHN1cHBvcnRlZCIpO2lmKGUuYmluZEZyYW1lYnVmZmVyKDM2MTYwLEUpLCEody5kZXB0aFRleHR1cmUmJncuZGVwdGhUZXh0dXJlLmlzRGVwdGhUZXh0dXJlKSl0aHJvdyBuZXcgRXJyb3IoInJlbmRlclRhcmdldC5kZXB0aFRleHR1cmUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBUSFJFRS5EZXB0aFRleHR1cmUiKTsoIWkuZ2V0KHcuZGVwdGhUZXh0dXJlKS5fX3dlYmdsVGV4dHVyZXx8dy5kZXB0aFRleHR1cmUuaW1hZ2Uud2lkdGghPT13LndpZHRofHx3LmRlcHRoVGV4dHVyZS5pbWFnZS5oZWlnaHQhPT13LmhlaWdodCkmJih3LmRlcHRoVGV4dHVyZS5pbWFnZS53aWR0aD13LndpZHRoLHcuZGVwdGhUZXh0dXJlLmltYWdlLmhlaWdodD13LmhlaWdodCx3LmRlcHRoVGV4dHVyZS5uZWVkc1VwZGF0ZT0hMCksVih3LmRlcHRoVGV4dHVyZSwwKTtsZXQgcnQ9aS5nZXQody5kZXB0aFRleHR1cmUpLl9fd2ViZ2xUZXh0dXJlLGd0PWl0KHcpO2lmKHcuZGVwdGhUZXh0dXJlLmZvcm1hdD09PU9pKXcudXNlUmVuZGVyVG9UZXh0dXJlP2QuZnJhbWVidWZmZXJUZXh0dXJlMkRNdWx0aXNhbXBsZUVYVCgzNjE2MCwzNjA5NiwzNTUzLHJ0LDAsZ3QpOm4uZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYwOTYsMzU1MyxydCwwKTtlbHNlIGlmKHcuZGVwdGhUZXh0dXJlLmZvcm1hdD09PVZyKXcudXNlUmVuZGVyVG9UZXh0dXJlP2QuZnJhbWVidWZmZXJUZXh0dXJlMkRNdWx0aXNhbXBsZUVYVCgzNjE2MCwzMzMwNiwzNTUzLHJ0LDAsZ3QpOm4uZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzMzMDYsMzU1MyxydCwwKTtlbHNlIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBkZXB0aFRleHR1cmUgZm9ybWF0Iil9ZnVuY3Rpb24gc3QoRSl7bGV0IHc9aS5nZXQoRSkscT1FLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0PT09ITA7aWYoRS5kZXB0aFRleHR1cmUmJiF3Ll9fYXV0b0FsbG9jYXRlRGVwdGhCdWZmZXIpe2lmKHEpdGhyb3cgbmV3IEVycm9yKCJ0YXJnZXQuZGVwdGhUZXh0dXJlIG5vdCBzdXBwb3J0ZWQgaW4gQ3ViZSByZW5kZXIgdGFyZ2V0cyIpO0Iody5fX3dlYmdsRnJhbWVidWZmZXIsRSl9ZWxzZSBpZihxKXt3Ll9fd2ViZ2xEZXB0aGJ1ZmZlcj1bXTtmb3IobGV0IHJ0PTA7cnQ8NjtydCsrKWUuYmluZEZyYW1lYnVmZmVyKDM2MTYwLHcuX193ZWJnbEZyYW1lYnVmZmVyW3J0XSksdy5fX3dlYmdsRGVwdGhidWZmZXJbcnRdPW4uY3JlYXRlUmVuZGVyYnVmZmVyKCksU3Qody5fX3dlYmdsRGVwdGhidWZmZXJbcnRdLEUsITEpfWVsc2UgZS5iaW5kRnJhbWVidWZmZXIoMzYxNjAsdy5fX3dlYmdsRnJhbWVidWZmZXIpLHcuX193ZWJnbERlcHRoYnVmZmVyPW4uY3JlYXRlUmVuZGVyYnVmZmVyKCksU3Qody5fX3dlYmdsRGVwdGhidWZmZXIsRSwhMSk7ZS5iaW5kRnJhbWVidWZmZXIoMzYxNjAsbnVsbCl9ZnVuY3Rpb24gbnQoRSx3LHEpe2xldCBydD1pLmdldChFKTt3IT09dm9pZCAwJiZtdChydC5fX3dlYmdsRnJhbWVidWZmZXIsRSxFLnRleHR1cmUsMzYwNjQsMzU1MykscSE9PXZvaWQgMCYmc3QoRSl9ZnVuY3Rpb24gQyhFKXtsZXQgdz1FLnRleHR1cmUscT1pLmdldChFKSxydD1pLmdldCh3KTtFLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHkpLEUuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cyE9PSEwJiYocnQuX193ZWJnbFRleHR1cmU9PT12b2lkIDAmJihydC5fX3dlYmdsVGV4dHVyZT1uLmNyZWF0ZVRleHR1cmUoKSkscnQuX192ZXJzaW9uPXcudmVyc2lvbixvLm1lbW9yeS50ZXh0dXJlcysrKTtsZXQgZ3Q9RS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldD09PSEwLFc9RS5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzPT09ITAsX3Q9dy5pc0RhdGFUZXh0dXJlM0R8fHcuaXNEYXRhVGV4dHVyZTJEQXJyYXkseXQ9YihFKXx8YTtpZihndCl7cS5fX3dlYmdsRnJhbWVidWZmZXI9W107Zm9yKGxldCB1dD0wO3V0PDY7dXQrKylxLl9fd2ViZ2xGcmFtZWJ1ZmZlclt1dF09bi5jcmVhdGVGcmFtZWJ1ZmZlcigpfWVsc2UgaWYocS5fX3dlYmdsRnJhbWVidWZmZXI9bi5jcmVhdGVGcmFtZWJ1ZmZlcigpLFcpaWYoci5kcmF3QnVmZmVycyl7bGV0IHV0PUUudGV4dHVyZTtmb3IobGV0IGN0PTAsQXQ9dXQubGVuZ3RoO2N0PEF0O2N0Kyspe2xldCBQPWkuZ2V0KHV0W2N0XSk7UC5fX3dlYmdsVGV4dHVyZT09PXZvaWQgMCYmKFAuX193ZWJnbFRleHR1cmU9bi5jcmVhdGVUZXh0dXJlKCksby5tZW1vcnkudGV4dHVyZXMrKyl9fWVsc2UgY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cyBjYW4gb25seSBiZSB1c2VkIHdpdGggV2ViR0wyIG9yIFdFQkdMX2RyYXdfYnVmZmVycyBleHRlbnNpb24uIik7ZWxzZSBpZihFLnVzZVJlbmRlcmJ1ZmZlcilpZihhKXtxLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcj1uLmNyZWF0ZUZyYW1lYnVmZmVyKCkscS5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXI9bi5jcmVhdGVSZW5kZXJidWZmZXIoKSxuLmJpbmRSZW5kZXJidWZmZXIoMzYxNjEscS5fX3dlYmdsQ29sb3JSZW5kZXJidWZmZXIpO2xldCB1dD1zLmNvbnZlcnQody5mb3JtYXQsdy5lbmNvZGluZyksY3Q9cy5jb252ZXJ0KHcudHlwZSksQXQ9QSh3LmludGVybmFsRm9ybWF0LHV0LGN0LHcuZW5jb2RpbmcpLFA9aXQoRSk7bi5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoMzYxNjEsUCxBdCxFLndpZHRoLEUuaGVpZ2h0KSxlLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxxLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlciksbi5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigzNjE2MCwzNjA2NCwzNjE2MSxxLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlciksbi5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpLEUuZGVwdGhCdWZmZXImJihxLl9fd2ViZ2xEZXB0aFJlbmRlcmJ1ZmZlcj1uLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpLFN0KHEuX193ZWJnbERlcHRoUmVuZGVyYnVmZmVyLEUsITApKSxlLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxudWxsKX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogV2ViR0xNdWx0aXNhbXBsZVJlbmRlclRhcmdldCBjYW4gb25seSBiZSB1c2VkIHdpdGggV2ViR0wyLiIpO2lmKGd0KXtlLmJpbmRUZXh0dXJlKDM0MDY3LHJ0Ll9fd2ViZ2xUZXh0dXJlKSxkdCgzNDA2Nyx3LHl0KTtmb3IobGV0IHV0PTA7dXQ8Njt1dCsrKW10KHEuX193ZWJnbEZyYW1lYnVmZmVyW3V0XSxFLHcsMzYwNjQsMzQwNjkrdXQpO1Modyx5dCkmJkwoMzQwNjcpLGUudW5iaW5kVGV4dHVyZSgpfWVsc2UgaWYoVyl7bGV0IHV0PUUudGV4dHVyZTtmb3IobGV0IGN0PTAsQXQ9dXQubGVuZ3RoO2N0PEF0O2N0Kyspe2xldCBQPXV0W2N0XSxwdD1pLmdldChQKTtlLmJpbmRUZXh0dXJlKDM1NTMscHQuX193ZWJnbFRleHR1cmUpLGR0KDM1NTMsUCx5dCksbXQocS5fX3dlYmdsRnJhbWVidWZmZXIsRSxQLDM2MDY0K2N0LDM1NTMpLFMoUCx5dCkmJkwoMzU1Myl9ZS51bmJpbmRUZXh0dXJlKCl9ZWxzZXtsZXQgdXQ9MzU1MztfdCYmKGE/dXQ9dy5pc0RhdGFUZXh0dXJlM0Q/MzI4Nzk6MzU4NjY6Y29uc29sZS53YXJuKCJUSFJFRS5EYXRhVGV4dHVyZTNEIGFuZCBUSFJFRS5EYXRhVGV4dHVyZTJEQXJyYXkgb25seSBzdXBwb3J0ZWQgd2l0aCBXZWJHTDIuIikpLGUuYmluZFRleHR1cmUodXQscnQuX193ZWJnbFRleHR1cmUpLGR0KHV0LHcseXQpLG10KHEuX193ZWJnbEZyYW1lYnVmZmVyLEUsdywzNjA2NCx1dCksUyh3LHl0KSYmTCh1dCksZS51bmJpbmRUZXh0dXJlKCl9RS5kZXB0aEJ1ZmZlciYmc3QoRSl9ZnVuY3Rpb24gaihFKXtsZXQgdz1iKEUpfHxhLHE9RS5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzPT09ITA/RS50ZXh0dXJlOltFLnRleHR1cmVdO2ZvcihsZXQgcnQ9MCxndD1xLmxlbmd0aDtydDxndDtydCsrKXtsZXQgVz1xW3J0XTtpZihTKFcsdykpe2xldCBfdD1FLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0PzM0MDY3OjM1NTMseXQ9aS5nZXQoVykuX193ZWJnbFRleHR1cmU7ZS5iaW5kVGV4dHVyZShfdCx5dCksTChfdCksZS51bmJpbmRUZXh0dXJlKCl9fX1mdW5jdGlvbiBKKEUpe2lmKEUudXNlUmVuZGVyYnVmZmVyKWlmKGEpe2xldCB3PUUud2lkdGgscT1FLmhlaWdodCxydD0xNjM4NCxndD1bMzYwNjRdLFc9RS5zdGVuY2lsQnVmZmVyPzMzMzA2OjM2MDk2O0UuZGVwdGhCdWZmZXImJmd0LnB1c2goVyksRS5pZ25vcmVEZXB0aEZvck11bHRpc2FtcGxlQ29weXx8KEUuZGVwdGhCdWZmZXImJihydHw9MjU2KSxFLnN0ZW5jaWxCdWZmZXImJihydHw9MTAyNCkpO2xldCBfdD1pLmdldChFKTtlLmJpbmRGcmFtZWJ1ZmZlcigzNjAwOCxfdC5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXIpLGUuYmluZEZyYW1lYnVmZmVyKDM2MDA5LF90Ll9fd2ViZ2xGcmFtZWJ1ZmZlciksRS5pZ25vcmVEZXB0aEZvck11bHRpc2FtcGxlQ29weSYmKG4uaW52YWxpZGF0ZUZyYW1lYnVmZmVyKDM2MDA4LFtXXSksbi5pbnZhbGlkYXRlRnJhbWVidWZmZXIoMzYwMDksW1ddKSksbi5ibGl0RnJhbWVidWZmZXIoMCwwLHcscSwwLDAsdyxxLHJ0LDk3MjgpLG4uaW52YWxpZGF0ZUZyYW1lYnVmZmVyKDM2MDA4LGd0KSxlLmJpbmRGcmFtZWJ1ZmZlcigzNjAwOCxudWxsKSxlLmJpbmRGcmFtZWJ1ZmZlcigzNjAwOSxfdC5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXIpfWVsc2UgY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBXZWJHTDIuIil9ZnVuY3Rpb24gaXQoRSl7cmV0dXJuIGEmJihFLnVzZVJlbmRlcmJ1ZmZlcnx8RS51c2VSZW5kZXJUb1RleHR1cmUpP01hdGgubWluKGgsRS5zYW1wbGVzKTowfWZ1bmN0aW9uIGV0KEUpe2xldCB3PW8ucmVuZGVyLmZyYW1lO2cuZ2V0KEUpIT09dyYmKGcuc2V0KEUsdyksRS51cGRhdGUoKSl9ZnVuY3Rpb24gdnQoRSx3KXtsZXQgcT1FLmVuY29kaW5nLHJ0PUUuZm9ybWF0LGd0PUUudHlwZTtyZXR1cm4gRS5pc0NvbXByZXNzZWRUZXh0dXJlPT09ITB8fEUuaXNWaWRlb1RleHR1cmU9PT0hMHx8RS5mb3JtYXQ9PT1IdXx8cSE9PXJpJiYocT09PSR0P2E9PT0hMT90LmhhcygiRVhUX3NSR0IiKT09PSEwJiZydD09PVJlPyhFLmZvcm1hdD1IdSxFLm1pbkZpbHRlcj1iZSxFLmdlbmVyYXRlTWlwbWFwcz0hMSk6dz1Obi5zUkdCVG9MaW5lYXIodyk6KHJ0IT09UmV8fGd0IT09ZWkpJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMVGV4dHVyZXM6IHNSR0IgZW5jb2RlZCB0ZXh0dXJlcyBoYXZlIHRvIHVzZSBSR0JBRm9ybWF0IGFuZCBVbnNpZ25lZEJ5dGVUeXBlLiIpOmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMVGV4dHVyZXM6IFVuc3VwcG9ydGVkIHRleHR1cmUgZW5jb2Rpbmc6IixxKSksd31sZXQgYnQ9ITEsSXQ9ITE7ZnVuY3Rpb24gWnQoRSx3KXtFJiZFLmlzV2ViR0xSZW5kZXJUYXJnZXQmJihidD09PSExJiYoY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFRleHR1cmVzLnNhZmVTZXRUZXh0dXJlMkQ6IGRvbid0IHVzZSByZW5kZXIgdGFyZ2V0cyBhcyB0ZXh0dXJlcy4gVXNlIHRoZWlyIC50ZXh0dXJlIHByb3BlcnR5IGluc3RlYWQuIiksYnQ9ITApLEU9RS50ZXh0dXJlKSxWKEUsdyl9ZnVuY3Rpb24gcXQoRSx3KXtFJiZFLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0JiYoSXQ9PT0hMSYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xUZXh0dXJlcy5zYWZlU2V0VGV4dHVyZUN1YmU6IGRvbid0IHVzZSBjdWJlIHJlbmRlciB0YXJnZXRzIGFzIHRleHR1cmVzLiBVc2UgdGhlaXIgLnRleHR1cmUgcHJvcGVydHkgaW5zdGVhZC4iKSxJdD0hMCksRT1FLnRleHR1cmUpLEcoRSx3KX10aGlzLmFsbG9jYXRlVGV4dHVyZVVuaXQ9Tix0aGlzLnJlc2V0VGV4dHVyZVVuaXRzPXosdGhpcy5zZXRUZXh0dXJlMkQ9Vix0aGlzLnNldFRleHR1cmUyREFycmF5PVEsdGhpcy5zZXRUZXh0dXJlM0Q9YXQsdGhpcy5zZXRUZXh0dXJlQ3ViZT1HLHRoaXMucmViaW5kVGV4dHVyZXM9bnQsdGhpcy5zZXR1cFJlbmRlclRhcmdldD1DLHRoaXMudXBkYXRlUmVuZGVyVGFyZ2V0TWlwbWFwPWosdGhpcy51cGRhdGVNdWx0aXNhbXBsZVJlbmRlclRhcmdldD1KLHRoaXMuc2V0dXBEZXB0aFJlbmRlcmJ1ZmZlcj1zdCx0aGlzLnNldHVwRnJhbWVCdWZmZXJUZXh0dXJlPW10LHRoaXMuc2FmZVNldFRleHR1cmUyRD1adCx0aGlzLnNhZmVTZXRUZXh0dXJlQ3ViZT1xdH1mdW5jdGlvbiBMRShuLHQsZSl7bGV0IGk9ZS5pc1dlYkdMMjtmdW5jdGlvbiByKHMsbz1udWxsKXtsZXQgYTtpZihzPT09ZWkpcmV0dXJuIDUxMjE7aWYocz09PXp3KXJldHVybiAzMjgxOTtpZihzPT09VXcpcmV0dXJuIDMyODIwO2lmKHM9PT1JdylyZXR1cm4gNTEyMDtpZihzPT09TncpcmV0dXJuIDUxMjI7aWYocz09PW5vKXJldHVybiA1MTIzO2lmKHM9PT1GdylyZXR1cm4gNTEyNDtpZihzPT09UWEpcmV0dXJuIDUxMjU7aWYocz09PVVpKXJldHVybiA1MTI2O2lmKHM9PT1VcilyZXR1cm4gaT81MTMxOihhPXQuZ2V0KCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiksYSE9PW51bGw/YS5IQUxGX0ZMT0FUX09FUzpudWxsKTtpZihzPT09QncpcmV0dXJuIDY0MDY7aWYocz09PVJlKXJldHVybiA2NDA4O2lmKHM9PT1PdylyZXR1cm4gNjQwOTtpZihzPT09a3cpcmV0dXJuIDY0MTA7aWYocz09PU9pKXJldHVybiA2NDAyO2lmKHM9PT1WcilyZXR1cm4gMzQwNDE7aWYocz09PUh3KXJldHVybiA2NDAzO2lmKHM9PT1IdSlyZXR1cm4gYT10LmdldCgiRVhUX3NSR0IiKSxhIT09bnVsbD9hLlNSR0JfQUxQSEFfRVhUOm51bGw7aWYocz09PVZ3KXJldHVybiAzNjI0NDtpZihzPT09R3cpcmV0dXJuIDMzMzE5O2lmKHM9PT1XdylyZXR1cm4gMzMzMjA7aWYocz09PXF3KXJldHVybiAzNjI0OTtpZihzPT09S2N8fHM9PT1RY3x8cz09PWpjfHxzPT09dHUpaWYobz09PSR0KWlmKGE9dC5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjX3NyZ2IiKSxhIT09bnVsbCl7aWYocz09PUtjKXJldHVybiBhLkNPTVBSRVNTRURfU1JHQl9TM1RDX0RYVDFfRVhUO2lmKHM9PT1RYylyZXR1cm4gYS5DT01QUkVTU0VEX1NSR0JfQUxQSEFfUzNUQ19EWFQxX0VYVDtpZihzPT09amMpcmV0dXJuIGEuQ09NUFJFU1NFRF9TUkdCX0FMUEhBX1MzVENfRFhUM19FWFQ7aWYocz09PXR1KXJldHVybiBhLkNPTVBSRVNTRURfU1JHQl9BTFBIQV9TM1RDX0RYVDVfRVhUfWVsc2UgcmV0dXJuIG51bGw7ZWxzZSBpZihhPXQuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpLGEhPT1udWxsKXtpZihzPT09S2MpcmV0dXJuIGEuQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVDtpZihzPT09UWMpcmV0dXJuIGEuQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUMV9FWFQ7aWYocz09PWpjKXJldHVybiBhLkNPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDNfRVhUO2lmKHM9PT10dSlyZXR1cm4gYS5DT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQ1X0VYVH1lbHNlIHJldHVybiBudWxsO2lmKHM9PT1GbXx8cz09PXptfHxzPT09VW18fHM9PT1CbSlpZihhPXQuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSxhIT09bnVsbCl7aWYocz09PUZtKXJldHVybiBhLkNPTVBSRVNTRURfUkdCX1BWUlRDXzRCUFBWMV9JTUc7aWYocz09PXptKXJldHVybiBhLkNPTVBSRVNTRURfUkdCX1BWUlRDXzJCUFBWMV9JTUc7aWYocz09PVVtKXJldHVybiBhLkNPTVBSRVNTRURfUkdCQV9QVlJUQ180QlBQVjFfSU1HO2lmKHM9PT1CbSlyZXR1cm4gYS5DT01QUkVTU0VEX1JHQkFfUFZSVENfMkJQUFYxX0lNR31lbHNlIHJldHVybiBudWxsO2lmKHM9PT1YdylyZXR1cm4gYT10LmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2V0YzEiKSxhIT09bnVsbD9hLkNPTVBSRVNTRURfUkdCX0VUQzFfV0VCR0w6bnVsbDtpZihzPT09T218fHM9PT1rbSlpZihhPXQuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfZXRjIiksYSE9PW51bGwpe2lmKHM9PT1PbSlyZXR1cm4gbz09PSR0P2EuQ09NUFJFU1NFRF9TUkdCOF9FVEMyOmEuQ09NUFJFU1NFRF9SR0I4X0VUQzI7aWYocz09PWttKXJldHVybiBvPT09JHQ/YS5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9FVEMyX0VBQzphLkNPTVBSRVNTRURfUkdCQThfRVRDMl9FQUN9ZWxzZSByZXR1cm4gbnVsbDtpZihzPT09SG18fHM9PT1WbXx8cz09PUdtfHxzPT09V218fHM9PT1xbXx8cz09PVhtfHxzPT09WW18fHM9PT1abXx8cz09PUptfHxzPT09JG18fHM9PT1LbXx8cz09PVFtfHxzPT09am18fHM9PT10ZylpZihhPXQuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXN0YyIpLGEhPT1udWxsKXtpZihzPT09SG0pcmV0dXJuIG89PT0kdD9hLkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0FTVENfNHg0X0tIUjphLkNPTVBSRVNTRURfUkdCQV9BU1RDXzR4NF9LSFI7aWYocz09PVZtKXJldHVybiBvPT09JHQ/YS5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9BU1RDXzV4NF9LSFI6YS5DT01QUkVTU0VEX1JHQkFfQVNUQ181eDRfS0hSO2lmKHM9PT1HbSlyZXR1cm4gbz09PSR0P2EuQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfQVNUQ181eDVfS0hSOmEuQ09NUFJFU1NFRF9SR0JBX0FTVENfNXg1X0tIUjtpZihzPT09V20pcmV0dXJuIG89PT0kdD9hLkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0FTVENfNng1X0tIUjphLkNPTVBSRVNTRURfUkdCQV9BU1RDXzZ4NV9LSFI7aWYocz09PXFtKXJldHVybiBvPT09JHQ/YS5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9BU1RDXzZ4Nl9LSFI6YS5DT01QUkVTU0VEX1JHQkFfQVNUQ182eDZfS0hSO2lmKHM9PT1YbSlyZXR1cm4gbz09PSR0P2EuQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfQVNUQ184eDVfS0hSOmEuQ09NUFJFU1NFRF9SR0JBX0FTVENfOHg1X0tIUjtpZihzPT09WW0pcmV0dXJuIG89PT0kdD9hLkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0FTVENfOHg2X0tIUjphLkNPTVBSRVNTRURfUkdCQV9BU1RDXzh4Nl9LSFI7aWYocz09PVptKXJldHVybiBvPT09JHQ/YS5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9BU1RDXzh4OF9LSFI6YS5DT01QUkVTU0VEX1JHQkFfQVNUQ184eDhfS0hSO2lmKHM9PT1KbSlyZXR1cm4gbz09PSR0P2EuQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfQVNUQ18xMHg1X0tIUjphLkNPTVBSRVNTRURfUkdCQV9BU1RDXzEweDVfS0hSO2lmKHM9PT0kbSlyZXR1cm4gbz09PSR0P2EuQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfQVNUQ18xMHg2X0tIUjphLkNPTVBSRVNTRURfUkdCQV9BU1RDXzEweDZfS0hSO2lmKHM9PT1LbSlyZXR1cm4gbz09PSR0P2EuQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfQVNUQ18xMHg4X0tIUjphLkNPTVBSRVNTRURfUkdCQV9BU1RDXzEweDhfS0hSO2lmKHM9PT1RbSlyZXR1cm4gbz09PSR0P2EuQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfQVNUQ18xMHgxMF9LSFI6YS5DT01QUkVTU0VEX1JHQkFfQVNUQ18xMHgxMF9LSFI7aWYocz09PWptKXJldHVybiBvPT09JHQ/YS5DT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9BU1RDXzEyeDEwX0tIUjphLkNPTVBSRVNTRURfUkdCQV9BU1RDXzEyeDEwX0tIUjtpZihzPT09dGcpcmV0dXJuIG89PT0kdD9hLkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0FTVENfMTJ4MTJfS0hSOmEuQ09NUFJFU1NFRF9SR0JBX0FTVENfMTJ4MTJfS0hSfWVsc2UgcmV0dXJuIG51bGw7aWYocz09PWVnKWlmKGE9dC5nZXQoIkVYVF90ZXh0dXJlX2NvbXByZXNzaW9uX2JwdGMiKSxhIT09bnVsbCl7aWYocz09PWVnKXJldHVybiBvPT09JHQ/YS5DT01QUkVTU0VEX1NSR0JfQUxQSEFfQlBUQ19VTk9STV9FWFQ6YS5DT01QUkVTU0VEX1JHQkFfQlBUQ19VTk9STV9FWFR9ZWxzZSByZXR1cm4gbnVsbDtpZihzPT09QnIpcmV0dXJuIGk/MzQwNDI6KGE9dC5nZXQoIldFQkdMX2RlcHRoX3RleHR1cmUiKSxhIT09bnVsbD9hLlVOU0lHTkVEX0lOVF8yNF84X1dFQkdMOm51bGwpfXJldHVybntjb252ZXJ0OnJ9fXZhciBobD1jbGFzcyBleHRlbmRzIFNle2NvbnN0cnVjdG9yKHQ9W10pe3N1cGVyKCksdGhpcy5jYW1lcmFzPXR9fTtobC5wcm90b3R5cGUuaXNBcnJheUNhbWVyYT0hMDt2YXIgQmk9Y2xhc3MgZXh0ZW5kcyBrdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJHcm91cCJ9fTtCaS5wcm90b3R5cGUuaXNHcm91cD0hMDt2YXIgUEU9e3R5cGU6Im1vdmUifSxRcz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX3RhcmdldFJheT1udWxsLHRoaXMuX2dyaXA9bnVsbCx0aGlzLl9oYW5kPW51bGx9Z2V0SGFuZFNwYWNlKCl7cmV0dXJuIHRoaXMuX2hhbmQ9PT1udWxsJiYodGhpcy5faGFuZD1uZXcgQmksdGhpcy5faGFuZC5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuX2hhbmQudmlzaWJsZT0hMSx0aGlzLl9oYW5kLmpvaW50cz17fSx0aGlzLl9oYW5kLmlucHV0U3RhdGU9e3BpbmNoaW5nOiExfSksdGhpcy5faGFuZH1nZXRUYXJnZXRSYXlTcGFjZSgpe3JldHVybiB0aGlzLl90YXJnZXRSYXk9PT1udWxsJiYodGhpcy5fdGFyZ2V0UmF5PW5ldyBCaSx0aGlzLl90YXJnZXRSYXkubWF0cml4QXV0b1VwZGF0ZT0hMSx0aGlzLl90YXJnZXRSYXkudmlzaWJsZT0hMSx0aGlzLl90YXJnZXRSYXkuaGFzTGluZWFyVmVsb2NpdHk9ITEsdGhpcy5fdGFyZ2V0UmF5LmxpbmVhclZlbG9jaXR5PW5ldyBULHRoaXMuX3RhcmdldFJheS5oYXNBbmd1bGFyVmVsb2NpdHk9ITEsdGhpcy5fdGFyZ2V0UmF5LmFuZ3VsYXJWZWxvY2l0eT1uZXcgVCksdGhpcy5fdGFyZ2V0UmF5fWdldEdyaXBTcGFjZSgpe3JldHVybiB0aGlzLl9ncmlwPT09bnVsbCYmKHRoaXMuX2dyaXA9bmV3IEJpLHRoaXMuX2dyaXAubWF0cml4QXV0b1VwZGF0ZT0hMSx0aGlzLl9ncmlwLnZpc2libGU9ITEsdGhpcy5fZ3JpcC5oYXNMaW5lYXJWZWxvY2l0eT0hMSx0aGlzLl9ncmlwLmxpbmVhclZlbG9jaXR5PW5ldyBULHRoaXMuX2dyaXAuaGFzQW5ndWxhclZlbG9jaXR5PSExLHRoaXMuX2dyaXAuYW5ndWxhclZlbG9jaXR5PW5ldyBUKSx0aGlzLl9ncmlwfWRpc3BhdGNoRXZlbnQodCl7cmV0dXJuIHRoaXMuX3RhcmdldFJheSE9PW51bGwmJnRoaXMuX3RhcmdldFJheS5kaXNwYXRjaEV2ZW50KHQpLHRoaXMuX2dyaXAhPT1udWxsJiZ0aGlzLl9ncmlwLmRpc3BhdGNoRXZlbnQodCksdGhpcy5faGFuZCE9PW51bGwmJnRoaXMuX2hhbmQuZGlzcGF0Y2hFdmVudCh0KSx0aGlzfWRpc2Nvbm5lY3QodCl7cmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzY29ubmVjdGVkIixkYXRhOnR9KSx0aGlzLl90YXJnZXRSYXkhPT1udWxsJiYodGhpcy5fdGFyZ2V0UmF5LnZpc2libGU9ITEpLHRoaXMuX2dyaXAhPT1udWxsJiYodGhpcy5fZ3JpcC52aXNpYmxlPSExKSx0aGlzLl9oYW5kIT09bnVsbCYmKHRoaXMuX2hhbmQudmlzaWJsZT0hMSksdGhpc311cGRhdGUodCxlLGkpe2xldCByPW51bGwscz1udWxsLG89bnVsbCxhPXRoaXMuX3RhcmdldFJheSxsPXRoaXMuX2dyaXAsYz10aGlzLl9oYW5kO2lmKHQmJmUuc2Vzc2lvbi52aXNpYmlsaXR5U3RhdGUhPT0idmlzaWJsZS1ibHVycmVkIilpZihhIT09bnVsbCYmKHI9ZS5nZXRQb3NlKHQudGFyZ2V0UmF5U3BhY2UsaSksciE9PW51bGwmJihhLm1hdHJpeC5mcm9tQXJyYXkoci50cmFuc2Zvcm0ubWF0cml4KSxhLm1hdHJpeC5kZWNvbXBvc2UoYS5wb3NpdGlvbixhLnJvdGF0aW9uLGEuc2NhbGUpLHIubGluZWFyVmVsb2NpdHk/KGEuaGFzTGluZWFyVmVsb2NpdHk9ITAsYS5saW5lYXJWZWxvY2l0eS5jb3B5KHIubGluZWFyVmVsb2NpdHkpKTphLmhhc0xpbmVhclZlbG9jaXR5PSExLHIuYW5ndWxhclZlbG9jaXR5PyhhLmhhc0FuZ3VsYXJWZWxvY2l0eT0hMCxhLmFuZ3VsYXJWZWxvY2l0eS5jb3B5KHIuYW5ndWxhclZlbG9jaXR5KSk6YS5oYXNBbmd1bGFyVmVsb2NpdHk9ITEsdGhpcy5kaXNwYXRjaEV2ZW50KFBFKSkpLGMmJnQuaGFuZCl7bz0hMDtmb3IobGV0IHggb2YgdC5oYW5kLnZhbHVlcygpKXtsZXQgdj1lLmdldEpvaW50UG9zZSh4LGkpO2lmKGMuam9pbnRzW3guam9pbnROYW1lXT09PXZvaWQgMCl7bGV0IHA9bmV3IEJpO3AubWF0cml4QXV0b1VwZGF0ZT0hMSxwLnZpc2libGU9ITEsYy5qb2ludHNbeC5qb2ludE5hbWVdPXAsYy5hZGQocCl9bGV0IG09Yy5qb2ludHNbeC5qb2ludE5hbWVdO3YhPT1udWxsJiYobS5tYXRyaXguZnJvbUFycmF5KHYudHJhbnNmb3JtLm1hdHJpeCksbS5tYXRyaXguZGVjb21wb3NlKG0ucG9zaXRpb24sbS5yb3RhdGlvbixtLnNjYWxlKSxtLmpvaW50UmFkaXVzPXYucmFkaXVzKSxtLnZpc2libGU9diE9PW51bGx9bGV0IHU9Yy5qb2ludHNbImluZGV4LWZpbmdlci10aXAiXSxoPWMuam9pbnRzWyJ0aHVtYi10aXAiXSxmPXUucG9zaXRpb24uZGlzdGFuY2VUbyhoLnBvc2l0aW9uKSxkPS4wMixnPS4wMDU7Yy5pbnB1dFN0YXRlLnBpbmNoaW5nJiZmPmQrZz8oYy5pbnB1dFN0YXRlLnBpbmNoaW5nPSExLHRoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToicGluY2hlbmQiLGhhbmRlZG5lc3M6dC5oYW5kZWRuZXNzLHRhcmdldDp0aGlzfSkpOiFjLmlucHV0U3RhdGUucGluY2hpbmcmJmY8PWQtZyYmKGMuaW5wdXRTdGF0ZS5waW5jaGluZz0hMCx0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6InBpbmNoc3RhcnQiLGhhbmRlZG5lc3M6dC5oYW5kZWRuZXNzLHRhcmdldDp0aGlzfSkpfWVsc2UgbCE9PW51bGwmJnQuZ3JpcFNwYWNlJiYocz1lLmdldFBvc2UodC5ncmlwU3BhY2UsaSkscyE9PW51bGwmJihsLm1hdHJpeC5mcm9tQXJyYXkocy50cmFuc2Zvcm0ubWF0cml4KSxsLm1hdHJpeC5kZWNvbXBvc2UobC5wb3NpdGlvbixsLnJvdGF0aW9uLGwuc2NhbGUpLHMubGluZWFyVmVsb2NpdHk/KGwuaGFzTGluZWFyVmVsb2NpdHk9ITAsbC5saW5lYXJWZWxvY2l0eS5jb3B5KHMubGluZWFyVmVsb2NpdHkpKTpsLmhhc0xpbmVhclZlbG9jaXR5PSExLHMuYW5ndWxhclZlbG9jaXR5PyhsLmhhc0FuZ3VsYXJWZWxvY2l0eT0hMCxsLmFuZ3VsYXJWZWxvY2l0eS5jb3B5KHMuYW5ndWxhclZlbG9jaXR5KSk6bC5oYXNBbmd1bGFyVmVsb2NpdHk9ITEpKTtyZXR1cm4gYSE9PW51bGwmJihhLnZpc2libGU9ciE9PW51bGwpLGwhPT1udWxsJiYobC52aXNpYmxlPXMhPT1udWxsKSxjIT09bnVsbCYmKGMudmlzaWJsZT1vIT09bnVsbCksdGhpc319LHVvPWNsYXNzIGV4dGVuZHMgYWV7Y29uc3RydWN0b3IodCxlLGkscixzLG8sYSxsLGMsdSl7aWYodT11IT09dm9pZCAwP3U6T2ksdSE9PU9pJiZ1IT09VnIpdGhyb3cgbmV3IEVycm9yKCJEZXB0aFRleHR1cmUgZm9ybWF0IG11c3QgYmUgZWl0aGVyIFRIUkVFLkRlcHRoRm9ybWF0IG9yIFRIUkVFLkRlcHRoU3RlbmNpbEZvcm1hdCIpO2k9PT12b2lkIDAmJnU9PT1PaSYmKGk9bm8pLGk9PT12b2lkIDAmJnU9PT1WciYmKGk9QnIpLHN1cGVyKG51bGwscixzLG8sYSxsLHUsaSxjKSx0aGlzLmltYWdlPXt3aWR0aDp0LGhlaWdodDplfSx0aGlzLm1hZ0ZpbHRlcj1hIT09dm9pZCAwP2E6ZmUsdGhpcy5taW5GaWx0ZXI9bCE9PXZvaWQgMD9sOmZlLHRoaXMuZmxpcFk9ITEsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITF9fTt1by5wcm90b3R5cGUuaXNEZXB0aFRleHR1cmU9ITA7dmFyIFp1PWNsYXNzIGV4dGVuZHMgSW57Y29uc3RydWN0b3IodCxlKXtzdXBlcigpO2xldCBpPXRoaXMscj1udWxsLHM9MSxvPW51bGwsYT0ibG9jYWwtZmxvb3IiLGw9dC5leHRlbnNpb25zLmhhcygiV0VCR0xfbXVsdGlzYW1wbGVkX3JlbmRlcl90b190ZXh0dXJlIiksYz1udWxsLHU9bnVsbCxoPW51bGwsZj1udWxsLGQ9ITEsZz1udWxsLHg9ZS5nZXRDb250ZXh0QXR0cmlidXRlcygpLHY9bnVsbCxtPW51bGwscD1bXSxiPW5ldyBNYXAsXz1uZXcgU2U7Xy5sYXllcnMuZW5hYmxlKDEpLF8udmlld3BvcnQ9bmV3IFd0O2xldCBTPW5ldyBTZTtTLmxheWVycy5lbmFibGUoMiksUy52aWV3cG9ydD1uZXcgV3Q7bGV0IEw9W18sU10sQT1uZXcgaGw7QS5sYXllcnMuZW5hYmxlKDEpLEEubGF5ZXJzLmVuYWJsZSgyKTtsZXQgSD1udWxsLHR0PW51bGw7dGhpcy5jYW1lcmFBdXRvVXBkYXRlPSEwLHRoaXMuZW5hYmxlZD0hMSx0aGlzLmlzUHJlc2VudGluZz0hMSx0aGlzLmdldENvbnRyb2xsZXI9ZnVuY3Rpb24oRyl7bGV0ICQ9cFtHXTtyZXR1cm4gJD09PXZvaWQgMCYmKCQ9bmV3IFFzLHBbR109JCksJC5nZXRUYXJnZXRSYXlTcGFjZSgpfSx0aGlzLmdldENvbnRyb2xsZXJHcmlwPWZ1bmN0aW9uKEcpe2xldCAkPXBbR107cmV0dXJuICQ9PT12b2lkIDAmJigkPW5ldyBRcyxwW0ddPSQpLCQuZ2V0R3JpcFNwYWNlKCl9LHRoaXMuZ2V0SGFuZD1mdW5jdGlvbihHKXtsZXQgJD1wW0ddO3JldHVybiAkPT09dm9pZCAwJiYoJD1uZXcgUXMscFtHXT0kKSwkLmdldEhhbmRTcGFjZSgpfTtmdW5jdGlvbiBYKEcpe2xldCAkPWIuZ2V0KEcuaW5wdXRTb3VyY2UpOyQmJiQuZGlzcGF0Y2hFdmVudCh7dHlwZTpHLnR5cGUsZGF0YTpHLmlucHV0U291cmNlfSl9ZnVuY3Rpb24geSgpe2IuZm9yRWFjaChmdW5jdGlvbihHLCQpe0cuZGlzY29ubmVjdCgkKX0pLGIuY2xlYXIoKSxIPW51bGwsdHQ9bnVsbCx0LnNldFJlbmRlclRhcmdldCh2KSxmPW51bGwsaD1udWxsLHU9bnVsbCxyPW51bGwsbT1udWxsLGF0LnN0b3AoKSxpLmlzUHJlc2VudGluZz0hMSxpLmRpc3BhdGNoRXZlbnQoe3R5cGU6InNlc3Npb25lbmQifSl9dGhpcy5zZXRGcmFtZWJ1ZmZlclNjYWxlRmFjdG9yPWZ1bmN0aW9uKEcpe3M9RyxpLmlzUHJlc2VudGluZz09PSEwJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYlhSTWFuYWdlcjogQ2Fubm90IGNoYW5nZSBmcmFtZWJ1ZmZlciBzY2FsZSB3aGlsZSBwcmVzZW50aW5nLiIpfSx0aGlzLnNldFJlZmVyZW5jZVNwYWNlVHlwZT1mdW5jdGlvbihHKXthPUcsaS5pc1ByZXNlbnRpbmc9PT0hMCYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJYUk1hbmFnZXI6IENhbm5vdCBjaGFuZ2UgcmVmZXJlbmNlIHNwYWNlIHR5cGUgd2hpbGUgcHJlc2VudGluZy4iKX0sdGhpcy5nZXRSZWZlcmVuY2VTcGFjZT1mdW5jdGlvbigpe3JldHVybiBvfSx0aGlzLmdldEJhc2VMYXllcj1mdW5jdGlvbigpe3JldHVybiBoIT09bnVsbD9oOmZ9LHRoaXMuZ2V0QmluZGluZz1mdW5jdGlvbigpe3JldHVybiB1fSx0aGlzLmdldEZyYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIGd9LHRoaXMuZ2V0U2Vzc2lvbj1mdW5jdGlvbigpe3JldHVybiByfSx0aGlzLnNldFNlc3Npb249ZnVuY3Rpb24oRyl7cmV0dXJuIGhmKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtpZihyPUcsciE9PW51bGwpe2lmKHY9dC5nZXRSZW5kZXJUYXJnZXQoKSxyLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdCIsWCksci5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RzdGFydCIsWCksci5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlbmQiLFgpLHIuYWRkRXZlbnRMaXN0ZW5lcigic3F1ZWV6ZSIsWCksci5hZGRFdmVudExpc3RlbmVyKCJzcXVlZXplc3RhcnQiLFgpLHIuYWRkRXZlbnRMaXN0ZW5lcigic3F1ZWV6ZWVuZCIsWCksci5hZGRFdmVudExpc3RlbmVyKCJlbmQiLHkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXRzb3VyY2VzY2hhbmdlIixSKSx4LnhyQ29tcGF0aWJsZSE9PSEwJiYoeWllbGQgZS5tYWtlWFJDb21wYXRpYmxlKCkpLHIucmVuZGVyU3RhdGUubGF5ZXJzPT09dm9pZCAwfHx0LmNhcGFiaWxpdGllcy5pc1dlYkdMMj09PSExKXtsZXQgJD17YW50aWFsaWFzOnIucmVuZGVyU3RhdGUubGF5ZXJzPT09dm9pZCAwP3guYW50aWFsaWFzOiEwLGFscGhhOnguYWxwaGEsZGVwdGg6eC5kZXB0aCxzdGVuY2lsOnguc3RlbmNpbCxmcmFtZWJ1ZmZlclNjYWxlRmFjdG9yOnN9O2Y9bmV3IFhSV2ViR0xMYXllcihyLGUsJCksci51cGRhdGVSZW5kZXJTdGF0ZSh7YmFzZUxheWVyOmZ9KSxtPW5ldyBOZShmLmZyYW1lYnVmZmVyV2lkdGgsZi5mcmFtZWJ1ZmZlckhlaWdodCx7Zm9ybWF0OlJlLHR5cGU6ZWksZW5jb2Rpbmc6dC5vdXRwdXRFbmNvZGluZ30pfWVsc2V7ZD14LmFudGlhbGlhcztsZXQgJD1udWxsLGx0PW51bGwsZHQ9bnVsbDt4LmRlcHRoJiYoZHQ9eC5zdGVuY2lsPzM1MDU2OjMzMTkwLCQ9eC5zdGVuY2lsP1ZyOk9pLGx0PXguc3RlbmNpbD9Ccjpubyk7bGV0IHh0PXtjb2xvckZvcm1hdDp0Lm91dHB1dEVuY29kaW5nPT09JHQ/MzU5MDc6MzI4NTYsZGVwdGhGb3JtYXQ6ZHQsc2NhbGVGYWN0b3I6c307dT1uZXcgWFJXZWJHTEJpbmRpbmcocixlKSxoPXUuY3JlYXRlUHJvamVjdGlvbkxheWVyKHh0KSxyLnVwZGF0ZVJlbmRlclN0YXRlKHtsYXllcnM6W2hdfSksZD9tPW5ldyBzbyhoLnRleHR1cmVXaWR0aCxoLnRleHR1cmVIZWlnaHQse2Zvcm1hdDpSZSx0eXBlOmVpLGRlcHRoVGV4dHVyZTpuZXcgdW8oaC50ZXh0dXJlV2lkdGgsaC50ZXh0dXJlSGVpZ2h0LGx0LHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLCQpLHN0ZW5jaWxCdWZmZXI6eC5zdGVuY2lsLGlnbm9yZURlcHRoOmguaWdub3JlRGVwdGhWYWx1ZXMsdXNlUmVuZGVyVG9UZXh0dXJlOmwsZW5jb2Rpbmc6dC5vdXRwdXRFbmNvZGluZ30pOm09bmV3IE5lKGgudGV4dHVyZVdpZHRoLGgudGV4dHVyZUhlaWdodCx7Zm9ybWF0OlJlLHR5cGU6ZWksZGVwdGhUZXh0dXJlOm5ldyB1byhoLnRleHR1cmVXaWR0aCxoLnRleHR1cmVIZWlnaHQsbHQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsJCksc3RlbmNpbEJ1ZmZlcjp4LnN0ZW5jaWwsaWdub3JlRGVwdGg6aC5pZ25vcmVEZXB0aFZhbHVlcyxlbmNvZGluZzp0Lm91dHB1dEVuY29kaW5nfSl9bS5pc1hSUmVuZGVyVGFyZ2V0PSEwLHRoaXMuc2V0Rm92ZWF0aW9uKDEpLG89eWllbGQgci5yZXF1ZXN0UmVmZXJlbmNlU3BhY2UoYSksYXQuc2V0Q29udGV4dChyKSxhdC5zdGFydCgpLGkuaXNQcmVzZW50aW5nPSEwLGkuZGlzcGF0Y2hFdmVudCh7dHlwZToic2Vzc2lvbnN0YXJ0In0pfX0pfTtmdW5jdGlvbiBSKEcpe2xldCAkPXIuaW5wdXRTb3VyY2VzO2ZvcihsZXQgbHQ9MDtsdDxwLmxlbmd0aDtsdCsrKWIuc2V0KCRbbHRdLHBbbHRdKTtmb3IobGV0IGx0PTA7bHQ8Ry5yZW1vdmVkLmxlbmd0aDtsdCsrKXtsZXQgZHQ9Ry5yZW1vdmVkW2x0XSx4dD1iLmdldChkdCk7eHQmJih4dC5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNjb25uZWN0ZWQiLGRhdGE6ZHR9KSxiLmRlbGV0ZShkdCkpfWZvcihsZXQgbHQ9MDtsdDxHLmFkZGVkLmxlbmd0aDtsdCsrKXtsZXQgZHQ9Ry5hZGRlZFtsdF0seHQ9Yi5nZXQoZHQpO3h0JiZ4dC5kaXNwYXRjaEV2ZW50KHt0eXBlOiJjb25uZWN0ZWQiLGRhdGE6ZHR9KX19bGV0IEQ9bmV3IFQsRj1uZXcgVDtmdW5jdGlvbiB6KEcsJCxsdCl7RC5zZXRGcm9tTWF0cml4UG9zaXRpb24oJC5tYXRyaXhXb3JsZCksRi5zZXRGcm9tTWF0cml4UG9zaXRpb24obHQubWF0cml4V29ybGQpO2xldCBkdD1ELmRpc3RhbmNlVG8oRikseHQ9JC5wcm9qZWN0aW9uTWF0cml4LmVsZW1lbnRzLGs9bHQucHJvamVjdGlvbk1hdHJpeC5lbGVtZW50cyxGdD14dFsxNF0vKHh0WzEwXS0xKSxtdD14dFsxNF0vKHh0WzEwXSsxKSxTdD0oeHRbOV0rMSkveHRbNV0sQj0oeHRbOV0tMSkveHRbNV0sc3Q9KHh0WzhdLTEpL3h0WzBdLG50PShrWzhdKzEpL2tbMF0sQz1GdCpzdCxqPUZ0Km50LEo9ZHQvKC1zdCtudCksaXQ9Siotc3Q7JC5tYXRyaXhXb3JsZC5kZWNvbXBvc2UoRy5wb3NpdGlvbixHLnF1YXRlcm5pb24sRy5zY2FsZSksRy50cmFuc2xhdGVYKGl0KSxHLnRyYW5zbGF0ZVooSiksRy5tYXRyaXhXb3JsZC5jb21wb3NlKEcucG9zaXRpb24sRy5xdWF0ZXJuaW9uLEcuc2NhbGUpLEcubWF0cml4V29ybGRJbnZlcnNlLmNvcHkoRy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCk7bGV0IGV0PUZ0K0osdnQ9bXQrSixidD1DLWl0LEl0PWorKGR0LWl0KSxadD1TdCptdC92dCpldCxxdD1CKm10L3Z0KmV0O0cucHJvamVjdGlvbk1hdHJpeC5tYWtlUGVyc3BlY3RpdmUoYnQsSXQsWnQscXQsZXQsdnQpfWZ1bmN0aW9uIE4oRywkKXskPT09bnVsbD9HLm1hdHJpeFdvcmxkLmNvcHkoRy5tYXRyaXgpOkcubWF0cml4V29ybGQubXVsdGlwbHlNYXRyaWNlcygkLm1hdHJpeFdvcmxkLEcubWF0cml4KSxHLm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KEcubWF0cml4V29ybGQpLmludmVydCgpfXRoaXMudXBkYXRlQ2FtZXJhPWZ1bmN0aW9uKEcpe2lmKHI9PT1udWxsKXJldHVybjtBLm5lYXI9Uy5uZWFyPV8ubmVhcj1HLm5lYXIsQS5mYXI9Uy5mYXI9Xy5mYXI9Ry5mYXIsKEghPT1BLm5lYXJ8fHR0IT09QS5mYXIpJiYoci51cGRhdGVSZW5kZXJTdGF0ZSh7ZGVwdGhOZWFyOkEubmVhcixkZXB0aEZhcjpBLmZhcn0pLEg9QS5uZWFyLHR0PUEuZmFyKTtsZXQgJD1HLnBhcmVudCxsdD1BLmNhbWVyYXM7TihBLCQpO2ZvcihsZXQgeHQ9MDt4dDxsdC5sZW5ndGg7eHQrKylOKGx0W3h0XSwkKTtBLm1hdHJpeFdvcmxkLmRlY29tcG9zZShBLnBvc2l0aW9uLEEucXVhdGVybmlvbixBLnNjYWxlKSxHLnBvc2l0aW9uLmNvcHkoQS5wb3NpdGlvbiksRy5xdWF0ZXJuaW9uLmNvcHkoQS5xdWF0ZXJuaW9uKSxHLnNjYWxlLmNvcHkoQS5zY2FsZSksRy5tYXRyaXguY29weShBLm1hdHJpeCksRy5tYXRyaXhXb3JsZC5jb3B5KEEubWF0cml4V29ybGQpO2xldCBkdD1HLmNoaWxkcmVuO2ZvcihsZXQgeHQ9MCxrPWR0Lmxlbmd0aDt4dDxrO3h0KyspZHRbeHRdLnVwZGF0ZU1hdHJpeFdvcmxkKCEwKTtsdC5sZW5ndGg9PT0yP3ooQSxfLFMpOkEucHJvamVjdGlvbk1hdHJpeC5jb3B5KF8ucHJvamVjdGlvbk1hdHJpeCl9LHRoaXMuZ2V0Q2FtZXJhPWZ1bmN0aW9uKCl7cmV0dXJuIEF9LHRoaXMuZ2V0Rm92ZWF0aW9uPWZ1bmN0aW9uKCl7aWYoaCE9PW51bGwpcmV0dXJuIGguZml4ZWRGb3ZlYXRpb247aWYoZiE9PW51bGwpcmV0dXJuIGYuZml4ZWRGb3ZlYXRpb259LHRoaXMuc2V0Rm92ZWF0aW9uPWZ1bmN0aW9uKEcpe2ghPT1udWxsJiYoaC5maXhlZEZvdmVhdGlvbj1HKSxmIT09bnVsbCYmZi5maXhlZEZvdmVhdGlvbiE9PXZvaWQgMCYmKGYuZml4ZWRGb3ZlYXRpb249Ryl9O2xldCBWPW51bGw7ZnVuY3Rpb24gUShHLCQpe2lmKGM9JC5nZXRWaWV3ZXJQb3NlKG8pLGc9JCxjIT09bnVsbCl7bGV0IGR0PWMudmlld3M7ZiE9PW51bGwmJih0LnNldFJlbmRlclRhcmdldEZyYW1lYnVmZmVyKG0sZi5mcmFtZWJ1ZmZlciksdC5zZXRSZW5kZXJUYXJnZXQobSkpO2xldCB4dD0hMTtkdC5sZW5ndGghPT1BLmNhbWVyYXMubGVuZ3RoJiYoQS5jYW1lcmFzLmxlbmd0aD0wLHh0PSEwKTtmb3IobGV0IGs9MDtrPGR0Lmxlbmd0aDtrKyspe2xldCBGdD1kdFtrXSxtdD1udWxsO2lmKGYhPT1udWxsKW10PWYuZ2V0Vmlld3BvcnQoRnQpO2Vsc2V7bGV0IEI9dS5nZXRWaWV3U3ViSW1hZ2UoaCxGdCk7bXQ9Qi52aWV3cG9ydCxrPT09MCYmKHQuc2V0UmVuZGVyVGFyZ2V0VGV4dHVyZXMobSxCLmNvbG9yVGV4dHVyZSxoLmlnbm9yZURlcHRoVmFsdWVzP3ZvaWQgMDpCLmRlcHRoU3RlbmNpbFRleHR1cmUpLHQuc2V0UmVuZGVyVGFyZ2V0KG0pKX1sZXQgU3Q9TFtrXTtTdC5tYXRyaXguZnJvbUFycmF5KEZ0LnRyYW5zZm9ybS5tYXRyaXgpLFN0LnByb2plY3Rpb25NYXRyaXguZnJvbUFycmF5KEZ0LnByb2plY3Rpb25NYXRyaXgpLFN0LnZpZXdwb3J0LnNldChtdC54LG10LnksbXQud2lkdGgsbXQuaGVpZ2h0KSxrPT09MCYmQS5tYXRyaXguY29weShTdC5tYXRyaXgpLHh0PT09ITAmJkEuY2FtZXJhcy5wdXNoKFN0KX19bGV0IGx0PXIuaW5wdXRTb3VyY2VzO2ZvcihsZXQgZHQ9MDtkdDxwLmxlbmd0aDtkdCsrKXtsZXQgeHQ9cFtkdF0saz1sdFtkdF07eHQudXBkYXRlKGssJCxvKX1WJiZWKEcsJCksZz1udWxsfWxldCBhdD1uZXcgZzA7YXQuc2V0QW5pbWF0aW9uTG9vcChRKSx0aGlzLnNldEFuaW1hdGlvbkxvb3A9ZnVuY3Rpb24oRyl7Vj1HfSx0aGlzLmRpc3Bvc2U9ZnVuY3Rpb24oKXt9fX07ZnVuY3Rpb24gREUobil7ZnVuY3Rpb24gdChtLHApe20uZm9nQ29sb3IudmFsdWUuY29weShwLmNvbG9yKSxwLmlzRm9nPyhtLmZvZ05lYXIudmFsdWU9cC5uZWFyLG0uZm9nRmFyLnZhbHVlPXAuZmFyKTpwLmlzRm9nRXhwMiYmKG0uZm9nRGVuc2l0eS52YWx1ZT1wLmRlbnNpdHkpfWZ1bmN0aW9uIGUobSxwLGIsXyxTKXtwLmlzTWVzaEJhc2ljTWF0ZXJpYWw/aShtLHApOnAuaXNNZXNoTGFtYmVydE1hdGVyaWFsPyhpKG0scCksbChtLHApKTpwLmlzTWVzaFRvb25NYXRlcmlhbD8oaShtLHApLHUobSxwKSk6cC5pc01lc2hQaG9uZ01hdGVyaWFsPyhpKG0scCksYyhtLHApKTpwLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWw/KGkobSxwKSxwLmlzTWVzaFBoeXNpY2FsTWF0ZXJpYWw/ZihtLHAsUyk6aChtLHApKTpwLmlzTWVzaE1hdGNhcE1hdGVyaWFsPyhpKG0scCksZChtLHApKTpwLmlzTWVzaERlcHRoTWF0ZXJpYWw/KGkobSxwKSxnKG0scCkpOnAuaXNNZXNoRGlzdGFuY2VNYXRlcmlhbD8oaShtLHApLHgobSxwKSk6cC5pc01lc2hOb3JtYWxNYXRlcmlhbD8oaShtLHApLHYobSxwKSk6cC5pc0xpbmVCYXNpY01hdGVyaWFsPyhyKG0scCkscC5pc0xpbmVEYXNoZWRNYXRlcmlhbCYmcyhtLHApKTpwLmlzUG9pbnRzTWF0ZXJpYWw/byhtLHAsYixfKTpwLmlzU3ByaXRlTWF0ZXJpYWw/YShtLHApOnAuaXNTaGFkb3dNYXRlcmlhbD8obS5jb2xvci52YWx1ZS5jb3B5KHAuY29sb3IpLG0ub3BhY2l0eS52YWx1ZT1wLm9wYWNpdHkpOnAuaXNTaGFkZXJNYXRlcmlhbCYmKHAudW5pZm9ybXNOZWVkVXBkYXRlPSExKX1mdW5jdGlvbiBpKG0scCl7bS5vcGFjaXR5LnZhbHVlPXAub3BhY2l0eSxwLmNvbG9yJiZtLmRpZmZ1c2UudmFsdWUuY29weShwLmNvbG9yKSxwLmVtaXNzaXZlJiZtLmVtaXNzaXZlLnZhbHVlLmNvcHkocC5lbWlzc2l2ZSkubXVsdGlwbHlTY2FsYXIocC5lbWlzc2l2ZUludGVuc2l0eSkscC5tYXAmJihtLm1hcC52YWx1ZT1wLm1hcCkscC5hbHBoYU1hcCYmKG0uYWxwaGFNYXAudmFsdWU9cC5hbHBoYU1hcCkscC5zcGVjdWxhck1hcCYmKG0uc3BlY3VsYXJNYXAudmFsdWU9cC5zcGVjdWxhck1hcCkscC5hbHBoYVRlc3Q+MCYmKG0uYWxwaGFUZXN0LnZhbHVlPXAuYWxwaGFUZXN0KTtsZXQgYj1uLmdldChwKS5lbnZNYXA7YiYmKG0uZW52TWFwLnZhbHVlPWIsbS5mbGlwRW52TWFwLnZhbHVlPWIuaXNDdWJlVGV4dHVyZSYmYi5pc1JlbmRlclRhcmdldFRleHR1cmU9PT0hMT8tMToxLG0ucmVmbGVjdGl2aXR5LnZhbHVlPXAucmVmbGVjdGl2aXR5LG0uaW9yLnZhbHVlPXAuaW9yLG0ucmVmcmFjdGlvblJhdGlvLnZhbHVlPXAucmVmcmFjdGlvblJhdGlvKSxwLmxpZ2h0TWFwJiYobS5saWdodE1hcC52YWx1ZT1wLmxpZ2h0TWFwLG0ubGlnaHRNYXBJbnRlbnNpdHkudmFsdWU9cC5saWdodE1hcEludGVuc2l0eSkscC5hb01hcCYmKG0uYW9NYXAudmFsdWU9cC5hb01hcCxtLmFvTWFwSW50ZW5zaXR5LnZhbHVlPXAuYW9NYXBJbnRlbnNpdHkpO2xldCBfO3AubWFwP189cC5tYXA6cC5zcGVjdWxhck1hcD9fPXAuc3BlY3VsYXJNYXA6cC5kaXNwbGFjZW1lbnRNYXA/Xz1wLmRpc3BsYWNlbWVudE1hcDpwLm5vcm1hbE1hcD9fPXAubm9ybWFsTWFwOnAuYnVtcE1hcD9fPXAuYnVtcE1hcDpwLnJvdWdobmVzc01hcD9fPXAucm91Z2huZXNzTWFwOnAubWV0YWxuZXNzTWFwP189cC5tZXRhbG5lc3NNYXA6cC5hbHBoYU1hcD9fPXAuYWxwaGFNYXA6cC5lbWlzc2l2ZU1hcD9fPXAuZW1pc3NpdmVNYXA6cC5jbGVhcmNvYXRNYXA/Xz1wLmNsZWFyY29hdE1hcDpwLmNsZWFyY29hdE5vcm1hbE1hcD9fPXAuY2xlYXJjb2F0Tm9ybWFsTWFwOnAuY2xlYXJjb2F0Um91Z2huZXNzTWFwP189cC5jbGVhcmNvYXRSb3VnaG5lc3NNYXA6cC5zcGVjdWxhckludGVuc2l0eU1hcD9fPXAuc3BlY3VsYXJJbnRlbnNpdHlNYXA6cC5zcGVjdWxhckNvbG9yTWFwP189cC5zcGVjdWxhckNvbG9yTWFwOnAudHJhbnNtaXNzaW9uTWFwP189cC50cmFuc21pc3Npb25NYXA6cC50aGlja25lc3NNYXA/Xz1wLnRoaWNrbmVzc01hcDpwLnNoZWVuQ29sb3JNYXA/Xz1wLnNoZWVuQ29sb3JNYXA6cC5zaGVlblJvdWdobmVzc01hcCYmKF89cC5zaGVlblJvdWdobmVzc01hcCksXyE9PXZvaWQgMCYmKF8uaXNXZWJHTFJlbmRlclRhcmdldCYmKF89Xy50ZXh0dXJlKSxfLm1hdHJpeEF1dG9VcGRhdGU9PT0hMCYmXy51cGRhdGVNYXRyaXgoKSxtLnV2VHJhbnNmb3JtLnZhbHVlLmNvcHkoXy5tYXRyaXgpKTtsZXQgUztwLmFvTWFwP1M9cC5hb01hcDpwLmxpZ2h0TWFwJiYoUz1wLmxpZ2h0TWFwKSxTIT09dm9pZCAwJiYoUy5pc1dlYkdMUmVuZGVyVGFyZ2V0JiYoUz1TLnRleHR1cmUpLFMubWF0cml4QXV0b1VwZGF0ZT09PSEwJiZTLnVwZGF0ZU1hdHJpeCgpLG0udXYyVHJhbnNmb3JtLnZhbHVlLmNvcHkoUy5tYXRyaXgpKX1mdW5jdGlvbiByKG0scCl7bS5kaWZmdXNlLnZhbHVlLmNvcHkocC5jb2xvciksbS5vcGFjaXR5LnZhbHVlPXAub3BhY2l0eX1mdW5jdGlvbiBzKG0scCl7bS5kYXNoU2l6ZS52YWx1ZT1wLmRhc2hTaXplLG0udG90YWxTaXplLnZhbHVlPXAuZGFzaFNpemUrcC5nYXBTaXplLG0uc2NhbGUudmFsdWU9cC5zY2FsZX1mdW5jdGlvbiBvKG0scCxiLF8pe20uZGlmZnVzZS52YWx1ZS5jb3B5KHAuY29sb3IpLG0ub3BhY2l0eS52YWx1ZT1wLm9wYWNpdHksbS5zaXplLnZhbHVlPXAuc2l6ZSpiLG0uc2NhbGUudmFsdWU9XyouNSxwLm1hcCYmKG0ubWFwLnZhbHVlPXAubWFwKSxwLmFscGhhTWFwJiYobS5hbHBoYU1hcC52YWx1ZT1wLmFscGhhTWFwKSxwLmFscGhhVGVzdD4wJiYobS5hbHBoYVRlc3QudmFsdWU9cC5hbHBoYVRlc3QpO2xldCBTO3AubWFwP1M9cC5tYXA6cC5hbHBoYU1hcCYmKFM9cC5hbHBoYU1hcCksUyE9PXZvaWQgMCYmKFMubWF0cml4QXV0b1VwZGF0ZT09PSEwJiZTLnVwZGF0ZU1hdHJpeCgpLG0udXZUcmFuc2Zvcm0udmFsdWUuY29weShTLm1hdHJpeCkpfWZ1bmN0aW9uIGEobSxwKXttLmRpZmZ1c2UudmFsdWUuY29weShwLmNvbG9yKSxtLm9wYWNpdHkudmFsdWU9cC5vcGFjaXR5LG0ucm90YXRpb24udmFsdWU9cC5yb3RhdGlvbixwLm1hcCYmKG0ubWFwLnZhbHVlPXAubWFwKSxwLmFscGhhTWFwJiYobS5hbHBoYU1hcC52YWx1ZT1wLmFscGhhTWFwKSxwLmFscGhhVGVzdD4wJiYobS5hbHBoYVRlc3QudmFsdWU9cC5hbHBoYVRlc3QpO2xldCBiO3AubWFwP2I9cC5tYXA6cC5hbHBoYU1hcCYmKGI9cC5hbHBoYU1hcCksYiE9PXZvaWQgMCYmKGIubWF0cml4QXV0b1VwZGF0ZT09PSEwJiZiLnVwZGF0ZU1hdHJpeCgpLG0udXZUcmFuc2Zvcm0udmFsdWUuY29weShiLm1hdHJpeCkpfWZ1bmN0aW9uIGwobSxwKXtwLmVtaXNzaXZlTWFwJiYobS5lbWlzc2l2ZU1hcC52YWx1ZT1wLmVtaXNzaXZlTWFwKX1mdW5jdGlvbiBjKG0scCl7bS5zcGVjdWxhci52YWx1ZS5jb3B5KHAuc3BlY3VsYXIpLG0uc2hpbmluZXNzLnZhbHVlPU1hdGgubWF4KHAuc2hpbmluZXNzLDFlLTQpLHAuZW1pc3NpdmVNYXAmJihtLmVtaXNzaXZlTWFwLnZhbHVlPXAuZW1pc3NpdmVNYXApLHAuYnVtcE1hcCYmKG0uYnVtcE1hcC52YWx1ZT1wLmJ1bXBNYXAsbS5idW1wU2NhbGUudmFsdWU9cC5idW1wU2NhbGUscC5zaWRlPT09aGUmJihtLmJ1bXBTY2FsZS52YWx1ZSo9LTEpKSxwLm5vcm1hbE1hcCYmKG0ubm9ybWFsTWFwLnZhbHVlPXAubm9ybWFsTWFwLG0ubm9ybWFsU2NhbGUudmFsdWUuY29weShwLm5vcm1hbFNjYWxlKSxwLnNpZGU9PT1oZSYmbS5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSkscC5kaXNwbGFjZW1lbnRNYXAmJihtLmRpc3BsYWNlbWVudE1hcC52YWx1ZT1wLmRpc3BsYWNlbWVudE1hcCxtLmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPXAuZGlzcGxhY2VtZW50U2NhbGUsbS5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPXAuZGlzcGxhY2VtZW50Qmlhcyl9ZnVuY3Rpb24gdShtLHApe3AuZ3JhZGllbnRNYXAmJihtLmdyYWRpZW50TWFwLnZhbHVlPXAuZ3JhZGllbnRNYXApLHAuZW1pc3NpdmVNYXAmJihtLmVtaXNzaXZlTWFwLnZhbHVlPXAuZW1pc3NpdmVNYXApLHAuYnVtcE1hcCYmKG0uYnVtcE1hcC52YWx1ZT1wLmJ1bXBNYXAsbS5idW1wU2NhbGUudmFsdWU9cC5idW1wU2NhbGUscC5zaWRlPT09aGUmJihtLmJ1bXBTY2FsZS52YWx1ZSo9LTEpKSxwLm5vcm1hbE1hcCYmKG0ubm9ybWFsTWFwLnZhbHVlPXAubm9ybWFsTWFwLG0ubm9ybWFsU2NhbGUudmFsdWUuY29weShwLm5vcm1hbFNjYWxlKSxwLnNpZGU9PT1oZSYmbS5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSkscC5kaXNwbGFjZW1lbnRNYXAmJihtLmRpc3BsYWNlbWVudE1hcC52YWx1ZT1wLmRpc3BsYWNlbWVudE1hcCxtLmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPXAuZGlzcGxhY2VtZW50U2NhbGUsbS5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPXAuZGlzcGxhY2VtZW50Qmlhcyl9ZnVuY3Rpb24gaChtLHApe20ucm91Z2huZXNzLnZhbHVlPXAucm91Z2huZXNzLG0ubWV0YWxuZXNzLnZhbHVlPXAubWV0YWxuZXNzLHAucm91Z2huZXNzTWFwJiYobS5yb3VnaG5lc3NNYXAudmFsdWU9cC5yb3VnaG5lc3NNYXApLHAubWV0YWxuZXNzTWFwJiYobS5tZXRhbG5lc3NNYXAudmFsdWU9cC5tZXRhbG5lc3NNYXApLHAuZW1pc3NpdmVNYXAmJihtLmVtaXNzaXZlTWFwLnZhbHVlPXAuZW1pc3NpdmVNYXApLHAuYnVtcE1hcCYmKG0uYnVtcE1hcC52YWx1ZT1wLmJ1bXBNYXAsbS5idW1wU2NhbGUudmFsdWU9cC5idW1wU2NhbGUscC5zaWRlPT09aGUmJihtLmJ1bXBTY2FsZS52YWx1ZSo9LTEpKSxwLm5vcm1hbE1hcCYmKG0ubm9ybWFsTWFwLnZhbHVlPXAubm9ybWFsTWFwLG0ubm9ybWFsU2NhbGUudmFsdWUuY29weShwLm5vcm1hbFNjYWxlKSxwLnNpZGU9PT1oZSYmbS5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSkscC5kaXNwbGFjZW1lbnRNYXAmJihtLmRpc3BsYWNlbWVudE1hcC52YWx1ZT1wLmRpc3BsYWNlbWVudE1hcCxtLmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPXAuZGlzcGxhY2VtZW50U2NhbGUsbS5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPXAuZGlzcGxhY2VtZW50Qmlhcyksbi5nZXQocCkuZW52TWFwJiYobS5lbnZNYXBJbnRlbnNpdHkudmFsdWU9cC5lbnZNYXBJbnRlbnNpdHkpfWZ1bmN0aW9uIGYobSxwLGIpe2gobSxwKSxtLmlvci52YWx1ZT1wLmlvcixwLnNoZWVuPjAmJihtLnNoZWVuQ29sb3IudmFsdWUuY29weShwLnNoZWVuQ29sb3IpLm11bHRpcGx5U2NhbGFyKHAuc2hlZW4pLG0uc2hlZW5Sb3VnaG5lc3MudmFsdWU9cC5zaGVlblJvdWdobmVzcyxwLnNoZWVuQ29sb3JNYXAmJihtLnNoZWVuQ29sb3JNYXAudmFsdWU9cC5zaGVlbkNvbG9yTWFwKSxwLnNoZWVuUm91Z2huZXNzTWFwJiYobS5zaGVlblJvdWdobmVzc01hcC52YWx1ZT1wLnNoZWVuUm91Z2huZXNzTWFwKSkscC5jbGVhcmNvYXQ+MCYmKG0uY2xlYXJjb2F0LnZhbHVlPXAuY2xlYXJjb2F0LG0uY2xlYXJjb2F0Um91Z2huZXNzLnZhbHVlPXAuY2xlYXJjb2F0Um91Z2huZXNzLHAuY2xlYXJjb2F0TWFwJiYobS5jbGVhcmNvYXRNYXAudmFsdWU9cC5jbGVhcmNvYXRNYXApLHAuY2xlYXJjb2F0Um91Z2huZXNzTWFwJiYobS5jbGVhcmNvYXRSb3VnaG5lc3NNYXAudmFsdWU9cC5jbGVhcmNvYXRSb3VnaG5lc3NNYXApLHAuY2xlYXJjb2F0Tm9ybWFsTWFwJiYobS5jbGVhcmNvYXROb3JtYWxTY2FsZS52YWx1ZS5jb3B5KHAuY2xlYXJjb2F0Tm9ybWFsU2NhbGUpLG0uY2xlYXJjb2F0Tm9ybWFsTWFwLnZhbHVlPXAuY2xlYXJjb2F0Tm9ybWFsTWFwLHAuc2lkZT09PWhlJiZtLmNsZWFyY29hdE5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSkscC50cmFuc21pc3Npb24+MCYmKG0udHJhbnNtaXNzaW9uLnZhbHVlPXAudHJhbnNtaXNzaW9uLG0udHJhbnNtaXNzaW9uU2FtcGxlck1hcC52YWx1ZT1iLnRleHR1cmUsbS50cmFuc21pc3Npb25TYW1wbGVyU2l6ZS52YWx1ZS5zZXQoYi53aWR0aCxiLmhlaWdodCkscC50cmFuc21pc3Npb25NYXAmJihtLnRyYW5zbWlzc2lvbk1hcC52YWx1ZT1wLnRyYW5zbWlzc2lvbk1hcCksbS50aGlja25lc3MudmFsdWU9cC50aGlja25lc3MscC50aGlja25lc3NNYXAmJihtLnRoaWNrbmVzc01hcC52YWx1ZT1wLnRoaWNrbmVzc01hcCksbS5hdHRlbnVhdGlvbkRpc3RhbmNlLnZhbHVlPXAuYXR0ZW51YXRpb25EaXN0YW5jZSxtLmF0dGVudWF0aW9uQ29sb3IudmFsdWUuY29weShwLmF0dGVudWF0aW9uQ29sb3IpKSxtLnNwZWN1bGFySW50ZW5zaXR5LnZhbHVlPXAuc3BlY3VsYXJJbnRlbnNpdHksbS5zcGVjdWxhckNvbG9yLnZhbHVlLmNvcHkocC5zcGVjdWxhckNvbG9yKSxwLnNwZWN1bGFySW50ZW5zaXR5TWFwJiYobS5zcGVjdWxhckludGVuc2l0eU1hcC52YWx1ZT1wLnNwZWN1bGFySW50ZW5zaXR5TWFwKSxwLnNwZWN1bGFyQ29sb3JNYXAmJihtLnNwZWN1bGFyQ29sb3JNYXAudmFsdWU9cC5zcGVjdWxhckNvbG9yTWFwKX1mdW5jdGlvbiBkKG0scCl7cC5tYXRjYXAmJihtLm1hdGNhcC52YWx1ZT1wLm1hdGNhcCkscC5idW1wTWFwJiYobS5idW1wTWFwLnZhbHVlPXAuYnVtcE1hcCxtLmJ1bXBTY2FsZS52YWx1ZT1wLmJ1bXBTY2FsZSxwLnNpZGU9PT1oZSYmKG0uYnVtcFNjYWxlLnZhbHVlKj0tMSkpLHAubm9ybWFsTWFwJiYobS5ub3JtYWxNYXAudmFsdWU9cC5ub3JtYWxNYXAsbS5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KHAubm9ybWFsU2NhbGUpLHAuc2lkZT09PWhlJiZtLm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSxwLmRpc3BsYWNlbWVudE1hcCYmKG0uZGlzcGxhY2VtZW50TWFwLnZhbHVlPXAuZGlzcGxhY2VtZW50TWFwLG0uZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9cC5kaXNwbGFjZW1lbnRTY2FsZSxtLmRpc3BsYWNlbWVudEJpYXMudmFsdWU9cC5kaXNwbGFjZW1lbnRCaWFzKX1mdW5jdGlvbiBnKG0scCl7cC5kaXNwbGFjZW1lbnRNYXAmJihtLmRpc3BsYWNlbWVudE1hcC52YWx1ZT1wLmRpc3BsYWNlbWVudE1hcCxtLmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPXAuZGlzcGxhY2VtZW50U2NhbGUsbS5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPXAuZGlzcGxhY2VtZW50Qmlhcyl9ZnVuY3Rpb24geChtLHApe3AuZGlzcGxhY2VtZW50TWFwJiYobS5kaXNwbGFjZW1lbnRNYXAudmFsdWU9cC5kaXNwbGFjZW1lbnRNYXAsbS5kaXNwbGFjZW1lbnRTY2FsZS52YWx1ZT1wLmRpc3BsYWNlbWVudFNjYWxlLG0uZGlzcGxhY2VtZW50Qmlhcy52YWx1ZT1wLmRpc3BsYWNlbWVudEJpYXMpLG0ucmVmZXJlbmNlUG9zaXRpb24udmFsdWUuY29weShwLnJlZmVyZW5jZVBvc2l0aW9uKSxtLm5lYXJEaXN0YW5jZS52YWx1ZT1wLm5lYXJEaXN0YW5jZSxtLmZhckRpc3RhbmNlLnZhbHVlPXAuZmFyRGlzdGFuY2V9ZnVuY3Rpb24gdihtLHApe3AuYnVtcE1hcCYmKG0uYnVtcE1hcC52YWx1ZT1wLmJ1bXBNYXAsbS5idW1wU2NhbGUudmFsdWU9cC5idW1wU2NhbGUscC5zaWRlPT09aGUmJihtLmJ1bXBTY2FsZS52YWx1ZSo9LTEpKSxwLm5vcm1hbE1hcCYmKG0ubm9ybWFsTWFwLnZhbHVlPXAubm9ybWFsTWFwLG0ubm9ybWFsU2NhbGUudmFsdWUuY29weShwLm5vcm1hbFNjYWxlKSxwLnNpZGU9PT1oZSYmbS5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSkscC5kaXNwbGFjZW1lbnRNYXAmJihtLmRpc3BsYWNlbWVudE1hcC52YWx1ZT1wLmRpc3BsYWNlbWVudE1hcCxtLmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPXAuZGlzcGxhY2VtZW50U2NhbGUsbS5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPXAuZGlzcGxhY2VtZW50Qmlhcyl9cmV0dXJue3JlZnJlc2hGb2dVbmlmb3Jtczp0LHJlZnJlc2hNYXRlcmlhbFVuaWZvcm1zOmV9fWZ1bmN0aW9uIElFKCl7bGV0IG49cm8oImNhbnZhcyIpO3JldHVybiBuLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixufWZ1bmN0aW9uIFZ0KG49e30pe2xldCB0PW4uY2FudmFzIT09dm9pZCAwP24uY2FudmFzOklFKCksZT1uLmNvbnRleHQhPT12b2lkIDA/bi5jb250ZXh0Om51bGwsaT1uLmFscGhhIT09dm9pZCAwP24uYWxwaGE6ITEscj1uLmRlcHRoIT09dm9pZCAwP24uZGVwdGg6ITAscz1uLnN0ZW5jaWwhPT12b2lkIDA/bi5zdGVuY2lsOiEwLG89bi5hbnRpYWxpYXMhPT12b2lkIDA/bi5hbnRpYWxpYXM6ITEsYT1uLnByZW11bHRpcGxpZWRBbHBoYSE9PXZvaWQgMD9uLnByZW11bHRpcGxpZWRBbHBoYTohMCxsPW4ucHJlc2VydmVEcmF3aW5nQnVmZmVyIT09dm9pZCAwP24ucHJlc2VydmVEcmF3aW5nQnVmZmVyOiExLGM9bi5wb3dlclByZWZlcmVuY2UhPT12b2lkIDA/bi5wb3dlclByZWZlcmVuY2U6ImRlZmF1bHQiLHU9bi5mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0IT09dm9pZCAwP24uZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdDohMSxoPW51bGwsZj1udWxsLGQ9W10sZz1bXTt0aGlzLmRvbUVsZW1lbnQ9dCx0aGlzLmRlYnVnPXtjaGVja1NoYWRlckVycm9yczohMH0sdGhpcy5hdXRvQ2xlYXI9ITAsdGhpcy5hdXRvQ2xlYXJDb2xvcj0hMCx0aGlzLmF1dG9DbGVhckRlcHRoPSEwLHRoaXMuYXV0b0NsZWFyU3RlbmNpbD0hMCx0aGlzLnNvcnRPYmplY3RzPSEwLHRoaXMuY2xpcHBpbmdQbGFuZXM9W10sdGhpcy5sb2NhbENsaXBwaW5nRW5hYmxlZD0hMSx0aGlzLm91dHB1dEVuY29kaW5nPXJpLHRoaXMucGh5c2ljYWxseUNvcnJlY3RMaWdodHM9ITEsdGhpcy50b25lTWFwcGluZz10aSx0aGlzLnRvbmVNYXBwaW5nRXhwb3N1cmU9MTtsZXQgeD10aGlzLHY9ITEsbT0wLHA9MCxiPW51bGwsXz0tMSxTPW51bGwsTD1uZXcgV3QsQT1uZXcgV3QsSD1udWxsLHR0PXQud2lkdGgsWD10LmhlaWdodCx5PTEsUj1udWxsLEQ9bnVsbCxGPW5ldyBXdCgwLDAsdHQsWCksej1uZXcgV3QoMCwwLHR0LFgpLE49ITEsVj1uZXcgcXIsUT0hMSxhdD0hMSxHPW51bGwsJD1uZXcgd3QsbHQ9bmV3IFQsZHQ9e2JhY2tncm91bmQ6bnVsbCxmb2c6bnVsbCxlbnZpcm9ubWVudDpudWxsLG92ZXJyaWRlTWF0ZXJpYWw6bnVsbCxpc1NjZW5lOiEwfTtmdW5jdGlvbiB4dCgpe3JldHVybiBiPT09bnVsbD95OjF9bGV0IGs9ZTtmdW5jdGlvbiBGdChNLEkpe2ZvcihsZXQgTz0wO088TS5sZW5ndGg7TysrKXtsZXQgVT1NW09dLFo9dC5nZXRDb250ZXh0KFUsSSk7aWYoWiE9PW51bGwpcmV0dXJuIFp9cmV0dXJuIG51bGx9dHJ5e2xldCBNPXthbHBoYTohMCxkZXB0aDpyLHN0ZW5jaWw6cyxhbnRpYWxpYXM6byxwcmVtdWx0aXBsaWVkQWxwaGE6YSxwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6bCxwb3dlclByZWZlcmVuY2U6YyxmYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0OnV9O2lmKCJzZXRBdHRyaWJ1dGUiaW4gdCYmdC5zZXRBdHRyaWJ1dGUoImRhdGEtZW5naW5lIixgdGhyZWUuanMgciR7JGh9YCksdC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IixBdCwhMSksdC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRyZXN0b3JlZCIsUCwhMSksaz09PW51bGwpe2xldCBJPVsid2ViZ2wyIiwid2ViZ2wiLCJleHBlcmltZW50YWwtd2ViZ2wiXTtpZih4LmlzV2ViR0wxUmVuZGVyZXI9PT0hMCYmSS5zaGlmdCgpLGs9RnQoSSxNKSxrPT09bnVsbCl0aHJvdyBGdChJKT9uZXcgRXJyb3IoIkVycm9yIGNyZWF0aW5nIFdlYkdMIGNvbnRleHQgd2l0aCB5b3VyIHNlbGVjdGVkIGF0dHJpYnV0ZXMuIik6bmV3IEVycm9yKCJFcnJvciBjcmVhdGluZyBXZWJHTCBjb250ZXh0LiIpfWsuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0PT09dm9pZCAwJiYoay5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm57cmFuZ2VNaW46MSxyYW5nZU1heDoxLHByZWNpc2lvbjoxfX0pfWNhdGNoKE0pe3Rocm93IGNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXI6ICIrTS5tZXNzYWdlKSxNfWxldCBtdCxTdCxCLHN0LG50LEMsaixKLGl0LGV0LHZ0LGJ0LEl0LFp0LHF0LEUsdyxxLHJ0LGd0LFcsX3QseXQ7ZnVuY3Rpb24gdXQoKXttdD1uZXcgZVMoayksU3Q9bmV3IEoxKGssbXQsbiksbXQuaW5pdChTdCksX3Q9bmV3IExFKGssbXQsU3QpLEI9bmV3IENFKGssbXQsU3QpLHN0PW5ldyByUyhrKSxudD1uZXcgeEUsQz1uZXcgUkUoayxtdCxCLG50LFN0LF90LHN0KSxqPW5ldyBLMSh4KSxKPW5ldyB0Uyh4KSxpdD1uZXcgdk0oayxTdCkseXQ9bmV3IFkxKGssbXQsaXQsU3QpLGV0PW5ldyBuUyhrLGl0LHN0LHl0KSx2dD1uZXcgbFMoayxldCxpdCxzdCkscnQ9bmV3IGFTKGssU3QsQyksRT1uZXcgJDEobnQpLGJ0PW5ldyBnRSh4LGosSixtdCxTdCx5dCxFKSxJdD1uZXcgREUobnQpLFp0PW5ldyB2RSxxdD1uZXcgRUUobXQsU3QpLHE9bmV3IFgxKHgsaixCLHZ0LGksYSksdz1uZXcgVDAoeCx2dCxTdCksZ3Q9bmV3IFoxKGssbXQsc3QsU3QpLFc9bmV3IGlTKGssbXQsc3QsU3QpLHN0LnByb2dyYW1zPWJ0LnByb2dyYW1zLHguY2FwYWJpbGl0aWVzPVN0LHguZXh0ZW5zaW9ucz1tdCx4LnByb3BlcnRpZXM9bnQseC5yZW5kZXJMaXN0cz1adCx4LnNoYWRvd01hcD13LHguc3RhdGU9Qix4LmluZm89c3R9dXQoKTtsZXQgY3Q9bmV3IFp1KHgsayk7dGhpcy54cj1jdCx0aGlzLmdldENvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4ga30sdGhpcy5nZXRDb250ZXh0QXR0cmlidXRlcz1mdW5jdGlvbigpe3JldHVybiBrLmdldENvbnRleHRBdHRyaWJ1dGVzKCl9LHRoaXMuZm9yY2VDb250ZXh0TG9zcz1mdW5jdGlvbigpe2xldCBNPW10LmdldCgiV0VCR0xfbG9zZV9jb250ZXh0Iik7TSYmTS5sb3NlQ29udGV4dCgpfSx0aGlzLmZvcmNlQ29udGV4dFJlc3RvcmU9ZnVuY3Rpb24oKXtsZXQgTT1tdC5nZXQoIldFQkdMX2xvc2VfY29udGV4dCIpO00mJk0ucmVzdG9yZUNvbnRleHQoKX0sdGhpcy5nZXRQaXhlbFJhdGlvPWZ1bmN0aW9uKCl7cmV0dXJuIHl9LHRoaXMuc2V0UGl4ZWxSYXRpbz1mdW5jdGlvbihNKXtNIT09dm9pZCAwJiYoeT1NLHRoaXMuc2V0U2l6ZSh0dCxYLCExKSl9LHRoaXMuZ2V0U2l6ZT1mdW5jdGlvbihNKXtyZXR1cm4gTS5zZXQodHQsWCl9LHRoaXMuc2V0U2l6ZT1mdW5jdGlvbihNLEksTyl7aWYoY3QuaXNQcmVzZW50aW5nKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IENhbid0IGNoYW5nZSBzaXplIHdoaWxlIFZSIGRldmljZSBpcyBwcmVzZW50aW5nLiIpO3JldHVybn10dD1NLFg9SSx0LndpZHRoPU1hdGguZmxvb3IoTSp5KSx0LmhlaWdodD1NYXRoLmZsb29yKEkqeSksTyE9PSExJiYodC5zdHlsZS53aWR0aD1NKyJweCIsdC5zdHlsZS5oZWlnaHQ9SSsicHgiKSx0aGlzLnNldFZpZXdwb3J0KDAsMCxNLEkpfSx0aGlzLmdldERyYXdpbmdCdWZmZXJTaXplPWZ1bmN0aW9uKE0pe3JldHVybiBNLnNldCh0dCp5LFgqeSkuZmxvb3IoKX0sdGhpcy5zZXREcmF3aW5nQnVmZmVyU2l6ZT1mdW5jdGlvbihNLEksTyl7dHQ9TSxYPUkseT1PLHQud2lkdGg9TWF0aC5mbG9vcihNKk8pLHQuaGVpZ2h0PU1hdGguZmxvb3IoSSpPKSx0aGlzLnNldFZpZXdwb3J0KDAsMCxNLEkpfSx0aGlzLmdldEN1cnJlbnRWaWV3cG9ydD1mdW5jdGlvbihNKXtyZXR1cm4gTS5jb3B5KEwpfSx0aGlzLmdldFZpZXdwb3J0PWZ1bmN0aW9uKE0pe3JldHVybiBNLmNvcHkoRil9LHRoaXMuc2V0Vmlld3BvcnQ9ZnVuY3Rpb24oTSxJLE8sVSl7TS5pc1ZlY3RvcjQ/Ri5zZXQoTS54LE0ueSxNLnosTS53KTpGLnNldChNLEksTyxVKSxCLnZpZXdwb3J0KEwuY29weShGKS5tdWx0aXBseVNjYWxhcih5KS5mbG9vcigpKX0sdGhpcy5nZXRTY2lzc29yPWZ1bmN0aW9uKE0pe3JldHVybiBNLmNvcHkoeil9LHRoaXMuc2V0U2Npc3Nvcj1mdW5jdGlvbihNLEksTyxVKXtNLmlzVmVjdG9yND96LnNldChNLngsTS55LE0ueixNLncpOnouc2V0KE0sSSxPLFUpLEIuc2Npc3NvcihBLmNvcHkoeikubXVsdGlwbHlTY2FsYXIoeSkuZmxvb3IoKSl9LHRoaXMuZ2V0U2Npc3NvclRlc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gTn0sdGhpcy5zZXRTY2lzc29yVGVzdD1mdW5jdGlvbihNKXtCLnNldFNjaXNzb3JUZXN0KE49TSl9LHRoaXMuc2V0T3BhcXVlU29ydD1mdW5jdGlvbihNKXtSPU19LHRoaXMuc2V0VHJhbnNwYXJlbnRTb3J0PWZ1bmN0aW9uKE0pe0Q9TX0sdGhpcy5nZXRDbGVhckNvbG9yPWZ1bmN0aW9uKE0pe3JldHVybiBNLmNvcHkocS5nZXRDbGVhckNvbG9yKCkpfSx0aGlzLnNldENsZWFyQ29sb3I9ZnVuY3Rpb24oKXtxLnNldENsZWFyQ29sb3IuYXBwbHkocSxhcmd1bWVudHMpfSx0aGlzLmdldENsZWFyQWxwaGE9ZnVuY3Rpb24oKXtyZXR1cm4gcS5nZXRDbGVhckFscGhhKCl9LHRoaXMuc2V0Q2xlYXJBbHBoYT1mdW5jdGlvbigpe3Euc2V0Q2xlYXJBbHBoYS5hcHBseShxLGFyZ3VtZW50cyl9LHRoaXMuY2xlYXI9ZnVuY3Rpb24oTSxJLE8pe2xldCBVPTA7KE09PT12b2lkIDB8fE0pJiYoVXw9MTYzODQpLChJPT09dm9pZCAwfHxJKSYmKFV8PTI1NiksKE89PT12b2lkIDB8fE8pJiYoVXw9MTAyNCksay5jbGVhcihVKX0sdGhpcy5jbGVhckNvbG9yPWZ1bmN0aW9uKCl7dGhpcy5jbGVhcighMCwhMSwhMSl9LHRoaXMuY2xlYXJEZXB0aD1mdW5jdGlvbigpe3RoaXMuY2xlYXIoITEsITAsITEpfSx0aGlzLmNsZWFyU3RlbmNpbD1mdW5jdGlvbigpe3RoaXMuY2xlYXIoITEsITEsITApfSx0aGlzLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGxvc3QiLEF0LCExKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dHJlc3RvcmVkIixQLCExKSxadC5kaXNwb3NlKCkscXQuZGlzcG9zZSgpLG50LmRpc3Bvc2UoKSxqLmRpc3Bvc2UoKSxKLmRpc3Bvc2UoKSx2dC5kaXNwb3NlKCkseXQuZGlzcG9zZSgpLGJ0LmRpc3Bvc2UoKSxjdC5kaXNwb3NlKCksY3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Vzc2lvbnN0YXJ0IixEdCksY3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Vzc2lvbmVuZCIsanQpLEcmJihHLmRpc3Bvc2UoKSxHPW51bGwpLHplLnN0b3AoKX07ZnVuY3Rpb24gQXQoTSl7TS5wcmV2ZW50RGVmYXVsdCgpLGNvbnNvbGUubG9nKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBDb250ZXh0IExvc3QuIiksdj0hMH1mdW5jdGlvbiBQKCl7Y29uc29sZS5sb2coIlRIUkVFLldlYkdMUmVuZGVyZXI6IENvbnRleHQgUmVzdG9yZWQuIiksdj0hMTtsZXQgTT1zdC5hdXRvUmVzZXQsST13LmVuYWJsZWQsTz13LmF1dG9VcGRhdGUsVT13Lm5lZWRzVXBkYXRlLFo9dy50eXBlO3V0KCksc3QuYXV0b1Jlc2V0PU0sdy5lbmFibGVkPUksdy5hdXRvVXBkYXRlPU8sdy5uZWVkc1VwZGF0ZT1VLHcudHlwZT1afWZ1bmN0aW9uIHB0KE0pe2xldCBJPU0udGFyZ2V0O0kucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIscHQpLGh0KEkpfWZ1bmN0aW9uIGh0KE0pe0V0KE0pLG50LnJlbW92ZShNKX1mdW5jdGlvbiBFdChNKXtsZXQgST1udC5nZXQoTSkucHJvZ3JhbXM7SSE9PXZvaWQgMCYmKEkuZm9yRWFjaChmdW5jdGlvbihPKXtidC5yZWxlYXNlUHJvZ3JhbShPKX0pLE0uaXNTaGFkZXJNYXRlcmlhbCYmYnQucmVsZWFzZVNoYWRlckNhY2hlKE0pKX10aGlzLnJlbmRlckJ1ZmZlckRpcmVjdD1mdW5jdGlvbihNLEksTyxVLFosVHQpe0k9PT1udWxsJiYoST1kdCk7bGV0IEN0PVouaXNNZXNoJiZaLm1hdHJpeFdvcmxkLmRldGVybWluYW50KCk8MCxMdD1CMChNLEksTyxVLFopO0Iuc2V0TWF0ZXJpYWwoVSxDdCk7bGV0IFJ0PU8uaW5kZXgsR3Q9Ty5hdHRyaWJ1dGVzLnBvc2l0aW9uO2lmKFJ0PT09bnVsbCl7aWYoR3Q9PT12b2lkIDB8fEd0LmNvdW50PT09MClyZXR1cm59ZWxzZSBpZihSdC5jb3VudD09PTApcmV0dXJuO2xldCB6dD0xO1Uud2lyZWZyYW1lPT09ITAmJihSdD1ldC5nZXRXaXJlZnJhbWVBdHRyaWJ1dGUoTyksenQ9MikseXQuc2V0dXAoWixVLEx0LE8sUnQpO2xldCBVdCxpZT1ndDtSdCE9PW51bGwmJihVdD1pdC5nZXQoUnQpLGllPVcsaWUuc2V0SW5kZXgoVXQpKTtsZXQgZmk9UnQhPT1udWxsP1J0LmNvdW50Okd0LmNvdW50LFppPU8uZHJhd1JhbmdlLnN0YXJ0Knp0LE90PU8uZHJhd1JhbmdlLmNvdW50Knp0LG5uPVR0IT09bnVsbD9UdC5zdGFydCp6dDowLGxlPVR0IT09bnVsbD9UdC5jb3VudCp6dDoxLzAscm49TWF0aC5tYXgoWmksbm4pLElvPU1hdGgubWluKGZpLFppK090LG5uK2xlKS0xLHNuPU1hdGgubWF4KDAsSW8tcm4rMSk7aWYoc24hPT0wKXtpZihaLmlzTWVzaClVLndpcmVmcmFtZT09PSEwPyhCLnNldExpbmVXaWR0aChVLndpcmVmcmFtZUxpbmV3aWR0aCp4dCgpKSxpZS5zZXRNb2RlKDEpKTppZS5zZXRNb2RlKDQpO2Vsc2UgaWYoWi5pc0xpbmUpe2xldCB2bj1VLmxpbmV3aWR0aDt2bj09PXZvaWQgMCYmKHZuPTEpLEIuc2V0TGluZVdpZHRoKHZuKnh0KCkpLFouaXNMaW5lU2VnbWVudHM/aWUuc2V0TW9kZSgxKTpaLmlzTGluZUxvb3A/aWUuc2V0TW9kZSgyKTppZS5zZXRNb2RlKDMpfWVsc2UgWi5pc1BvaW50cz9pZS5zZXRNb2RlKDApOlouaXNTcHJpdGUmJmllLnNldE1vZGUoNCk7aWYoWi5pc0luc3RhbmNlZE1lc2gpaWUucmVuZGVySW5zdGFuY2VzKHJuLHNuLFouY291bnQpO2Vsc2UgaWYoTy5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5KXtsZXQgdm49TWF0aC5taW4oTy5pbnN0YW5jZUNvdW50LE8uX21heEluc3RhbmNlQ291bnQpO2llLnJlbmRlckluc3RhbmNlcyhybixzbix2bil9ZWxzZSBpZS5yZW5kZXIocm4sc24pfX0sdGhpcy5jb21waWxlPWZ1bmN0aW9uKE0sSSl7Zj1xdC5nZXQoTSksZi5pbml0KCksZy5wdXNoKGYpLE0udHJhdmVyc2VWaXNpYmxlKGZ1bmN0aW9uKE8pe08uaXNMaWdodCYmTy5sYXllcnMudGVzdChJLmxheWVycykmJihmLnB1c2hMaWdodChPKSxPLmNhc3RTaGFkb3cmJmYucHVzaFNoYWRvdyhPKSl9KSxmLnNldHVwTGlnaHRzKHgucGh5c2ljYWxseUNvcnJlY3RMaWdodHMpLE0udHJhdmVyc2UoZnVuY3Rpb24oTyl7bGV0IFU9Ty5tYXRlcmlhbDtpZihVKWlmKEFycmF5LmlzQXJyYXkoVSkpZm9yKGxldCBaPTA7WjxVLmxlbmd0aDtaKyspe2xldCBUdD1VW1pdO09sKFR0LE0sTyl9ZWxzZSBPbChVLE0sTyl9KSxnLnBvcCgpLGY9bnVsbH07bGV0IFk9bnVsbDtmdW5jdGlvbiBNdChNKXtZJiZZKE0pfWZ1bmN0aW9uIER0KCl7emUuc3RvcCgpfWZ1bmN0aW9uIGp0KCl7emUuc3RhcnQoKX1sZXQgemU9bmV3IGcwO3plLnNldEFuaW1hdGlvbkxvb3AoTXQpLHR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiJiZ6ZS5zZXRDb250ZXh0KHdpbmRvdyksdGhpcy5zZXRBbmltYXRpb25Mb29wPWZ1bmN0aW9uKE0pe1k9TSxjdC5zZXRBbmltYXRpb25Mb29wKE0pLE09PT1udWxsP3plLnN0b3AoKTp6ZS5zdGFydCgpfSxjdC5hZGRFdmVudExpc3RlbmVyKCJzZXNzaW9uc3RhcnQiLER0KSxjdC5hZGRFdmVudExpc3RlbmVyKCJzZXNzaW9uZW5kIixqdCksdGhpcy5yZW5kZXI9ZnVuY3Rpb24oTSxJKXtpZihJIT09dm9pZCAwJiZJLmlzQ2FtZXJhIT09ITApe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXIucmVuZGVyOiBjYW1lcmEgaXMgbm90IGFuIGluc3RhbmNlIG9mIFRIUkVFLkNhbWVyYS4iKTtyZXR1cm59aWYodj09PSEwKXJldHVybjtNLmF1dG9VcGRhdGU9PT0hMCYmTS51cGRhdGVNYXRyaXhXb3JsZCgpLEkucGFyZW50PT09bnVsbCYmSS51cGRhdGVNYXRyaXhXb3JsZCgpLGN0LmVuYWJsZWQ9PT0hMCYmY3QuaXNQcmVzZW50aW5nPT09ITAmJihjdC5jYW1lcmFBdXRvVXBkYXRlPT09ITAmJmN0LnVwZGF0ZUNhbWVyYShJKSxJPWN0LmdldENhbWVyYSgpKSxNLmlzU2NlbmU9PT0hMCYmTS5vbkJlZm9yZVJlbmRlcih4LE0sSSxiKSxmPXF0LmdldChNLGcubGVuZ3RoKSxmLmluaXQoKSxnLnB1c2goZiksJC5tdWx0aXBseU1hdHJpY2VzKEkucHJvamVjdGlvbk1hdHJpeCxJLm1hdHJpeFdvcmxkSW52ZXJzZSksVi5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeCgkKSxhdD10aGlzLmxvY2FsQ2xpcHBpbmdFbmFibGVkLFE9RS5pbml0KHRoaXMuY2xpcHBpbmdQbGFuZXMsYXQsSSksaD1adC5nZXQoTSxkLmxlbmd0aCksaC5pbml0KCksZC5wdXNoKGgpLG5lKE0sSSwwLHguc29ydE9iamVjdHMpLGguZmluaXNoKCkseC5zb3J0T2JqZWN0cz09PSEwJiZoLnNvcnQoUixEKSxRPT09ITAmJkUuYmVnaW5TaGFkb3dzKCk7bGV0IE89Zi5zdGF0ZS5zaGFkb3dzQXJyYXk7aWYody5yZW5kZXIoTyxNLEkpLFE9PT0hMCYmRS5lbmRTaGFkb3dzKCksdGhpcy5pbmZvLmF1dG9SZXNldD09PSEwJiZ0aGlzLmluZm8ucmVzZXQoKSxxLnJlbmRlcihoLE0pLGYuc2V0dXBMaWdodHMoeC5waHlzaWNhbGx5Q29ycmVjdExpZ2h0cyksSS5pc0FycmF5Q2FtZXJhKXtsZXQgVT1JLmNhbWVyYXM7Zm9yKGxldCBaPTAsVHQ9VS5sZW5ndGg7WjxUdDtaKyspe2xldCBDdD1VW1pdO2VuKGgsTSxDdCxDdC52aWV3cG9ydCl9fWVsc2UgZW4oaCxNLEkpO2IhPT1udWxsJiYoQy51cGRhdGVNdWx0aXNhbXBsZVJlbmRlclRhcmdldChiKSxDLnVwZGF0ZVJlbmRlclRhcmdldE1pcG1hcChiKSksTS5pc1NjZW5lPT09ITAmJk0ub25BZnRlclJlbmRlcih4LE0sSSksQi5idWZmZXJzLmRlcHRoLnNldFRlc3QoITApLEIuYnVmZmVycy5kZXB0aC5zZXRNYXNrKCEwKSxCLmJ1ZmZlcnMuY29sb3Iuc2V0TWFzayghMCksQi5zZXRQb2x5Z29uT2Zmc2V0KCExKSx5dC5yZXNldERlZmF1bHRTdGF0ZSgpLF89LTEsUz1udWxsLGcucG9wKCksZy5sZW5ndGg+MD9mPWdbZy5sZW5ndGgtMV06Zj1udWxsLGQucG9wKCksZC5sZW5ndGg+MD9oPWRbZC5sZW5ndGgtMV06aD1udWxsfTtmdW5jdGlvbiBuZShNLEksTyxVKXtpZihNLnZpc2libGU9PT0hMSlyZXR1cm47aWYoTS5sYXllcnMudGVzdChJLmxheWVycykpe2lmKE0uaXNHcm91cClPPU0ucmVuZGVyT3JkZXI7ZWxzZSBpZihNLmlzTE9EKU0uYXV0b1VwZGF0ZT09PSEwJiZNLnVwZGF0ZShJKTtlbHNlIGlmKE0uaXNMaWdodClmLnB1c2hMaWdodChNKSxNLmNhc3RTaGFkb3cmJmYucHVzaFNoYWRvdyhNKTtlbHNlIGlmKE0uaXNTcHJpdGUpe2lmKCFNLmZydXN0dW1DdWxsZWR8fFYuaW50ZXJzZWN0c1Nwcml0ZShNKSl7VSYmbHQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKE0ubWF0cml4V29ybGQpLmFwcGx5TWF0cml4NCgkKTtsZXQgQ3Q9dnQudXBkYXRlKE0pLEx0PU0ubWF0ZXJpYWw7THQudmlzaWJsZSYmaC5wdXNoKE0sQ3QsTHQsTyxsdC56LG51bGwpfX1lbHNlIGlmKChNLmlzTWVzaHx8TS5pc0xpbmV8fE0uaXNQb2ludHMpJiYoTS5pc1NraW5uZWRNZXNoJiZNLnNrZWxldG9uLmZyYW1lIT09c3QucmVuZGVyLmZyYW1lJiYoTS5za2VsZXRvbi51cGRhdGUoKSxNLnNrZWxldG9uLmZyYW1lPXN0LnJlbmRlci5mcmFtZSksIU0uZnJ1c3R1bUN1bGxlZHx8Vi5pbnRlcnNlY3RzT2JqZWN0KE0pKSl7VSYmbHQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKE0ubWF0cml4V29ybGQpLmFwcGx5TWF0cml4NCgkKTtsZXQgQ3Q9dnQudXBkYXRlKE0pLEx0PU0ubWF0ZXJpYWw7aWYoQXJyYXkuaXNBcnJheShMdCkpe2xldCBSdD1DdC5ncm91cHM7Zm9yKGxldCBHdD0wLHp0PVJ0Lmxlbmd0aDtHdDx6dDtHdCsrKXtsZXQgVXQ9UnRbR3RdLGllPUx0W1V0Lm1hdGVyaWFsSW5kZXhdO2llJiZpZS52aXNpYmxlJiZoLnB1c2goTSxDdCxpZSxPLGx0LnosVXQpfX1lbHNlIEx0LnZpc2libGUmJmgucHVzaChNLEN0LEx0LE8sbHQueixudWxsKX19bGV0IFR0PU0uY2hpbGRyZW47Zm9yKGxldCBDdD0wLEx0PVR0Lmxlbmd0aDtDdDxMdDtDdCsrKW5lKFR0W0N0XSxJLE8sVSl9ZnVuY3Rpb24gZW4oTSxJLE8sVSl7bGV0IFo9TS5vcGFxdWUsVHQ9TS50cmFuc21pc3NpdmUsQ3Q9TS50cmFuc3BhcmVudDtmLnNldHVwTGlnaHRzVmlldyhPKSxUdC5sZW5ndGg+MCYmeW4oWixJLE8pLFUmJkIudmlld3BvcnQoTC5jb3B5KFUpKSxaLmxlbmd0aD4wJiZEbyhaLEksTyksVHQubGVuZ3RoPjAmJkRvKFR0LEksTyksQ3QubGVuZ3RoPjAmJkRvKEN0LEksTyl9ZnVuY3Rpb24geW4oTSxJLE8pe2lmKEc9PT1udWxsKXtsZXQgQ3Q9bz09PSEwJiZTdC5pc1dlYkdMMj09PSEwP3NvOk5lO0c9bmV3IEN0KDEwMjQsMTAyNCx7Z2VuZXJhdGVNaXBtYXBzOiEwLHR5cGU6X3QuY29udmVydChVcikhPT1udWxsP1VyOmVpLG1pbkZpbHRlcjpMbCxtYWdGaWx0ZXI6ZmUsd3JhcFM6VmUsd3JhcFQ6VmUsdXNlUmVuZGVyVG9UZXh0dXJlOm10LmhhcygiV0VCR0xfbXVsdGlzYW1wbGVkX3JlbmRlcl90b190ZXh0dXJlIil9KX1sZXQgVT14LmdldFJlbmRlclRhcmdldCgpO3guc2V0UmVuZGVyVGFyZ2V0KEcpLHguY2xlYXIoKTtsZXQgWj14LnRvbmVNYXBwaW5nO3gudG9uZU1hcHBpbmc9dGksRG8oTSxJLE8pLHgudG9uZU1hcHBpbmc9WixDLnVwZGF0ZU11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0KEcpLEMudXBkYXRlUmVuZGVyVGFyZ2V0TWlwbWFwKEcpLHguc2V0UmVuZGVyVGFyZ2V0KFUpfWZ1bmN0aW9uIERvKE0sSSxPKXtsZXQgVT1JLmlzU2NlbmU9PT0hMD9JLm92ZXJyaWRlTWF0ZXJpYWw6bnVsbDtmb3IobGV0IFo9MCxUdD1NLmxlbmd0aDtaPFR0O1orKyl7bGV0IEN0PU1bWl0sTHQ9Q3Qub2JqZWN0LFJ0PUN0Lmdlb21ldHJ5LEd0PVU9PT1udWxsP0N0Lm1hdGVyaWFsOlUsenQ9Q3QuZ3JvdXA7THQubGF5ZXJzLnRlc3QoTy5sYXllcnMpJiZVMChMdCxJLE8sUnQsR3QsenQpfX1mdW5jdGlvbiBVMChNLEksTyxVLFosVHQpe00ub25CZWZvcmVSZW5kZXIoeCxJLE8sVSxaLFR0KSxNLm1vZGVsVmlld01hdHJpeC5tdWx0aXBseU1hdHJpY2VzKE8ubWF0cml4V29ybGRJbnZlcnNlLE0ubWF0cml4V29ybGQpLE0ubm9ybWFsTWF0cml4LmdldE5vcm1hbE1hdHJpeChNLm1vZGVsVmlld01hdHJpeCksWi5vbkJlZm9yZVJlbmRlcih4LEksTyxVLE0sVHQpLFoudHJhbnNwYXJlbnQ9PT0hMCYmWi5zaWRlPT09SHI/KFouc2lkZT1oZSxaLm5lZWRzVXBkYXRlPSEwLHgucmVuZGVyQnVmZmVyRGlyZWN0KE8sSSxVLFosTSxUdCksWi5zaWRlPWVvLFoubmVlZHNVcGRhdGU9ITAseC5yZW5kZXJCdWZmZXJEaXJlY3QoTyxJLFUsWixNLFR0KSxaLnNpZGU9SHIpOngucmVuZGVyQnVmZmVyRGlyZWN0KE8sSSxVLFosTSxUdCksTS5vbkFmdGVyUmVuZGVyKHgsSSxPLFUsWixUdCl9ZnVuY3Rpb24gT2woTSxJLE8pe0kuaXNTY2VuZSE9PSEwJiYoST1kdCk7bGV0IFU9bnQuZ2V0KE0pLFo9Zi5zdGF0ZS5saWdodHMsVHQ9Zi5zdGF0ZS5zaGFkb3dzQXJyYXksQ3Q9Wi5zdGF0ZS52ZXJzaW9uLEx0PWJ0LmdldFBhcmFtZXRlcnMoTSxaLnN0YXRlLFR0LEksTyksUnQ9YnQuZ2V0UHJvZ3JhbUNhY2hlS2V5KEx0KSxHdD1VLnByb2dyYW1zO1UuZW52aXJvbm1lbnQ9TS5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP0kuZW52aXJvbm1lbnQ6bnVsbCxVLmZvZz1JLmZvZyxVLmVudk1hcD0oTS5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP0o6aikuZ2V0KE0uZW52TWFwfHxVLmVudmlyb25tZW50KSxHdD09PXZvaWQgMCYmKE0uYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIscHQpLEd0PW5ldyBNYXAsVS5wcm9ncmFtcz1HdCk7bGV0IHp0PUd0LmdldChSdCk7aWYoenQhPT12b2lkIDApe2lmKFUuY3VycmVudFByb2dyYW09PT16dCYmVS5saWdodHNTdGF0ZVZlcnNpb249PT1DdClyZXR1cm4gb2YoTSxMdCksenR9ZWxzZSBMdC51bmlmb3Jtcz1idC5nZXRVbmlmb3JtcyhNKSxNLm9uQnVpbGQoTyxMdCx4KSxNLm9uQmVmb3JlQ29tcGlsZShMdCx4KSx6dD1idC5hY3F1aXJlUHJvZ3JhbShMdCxSdCksR3Quc2V0KFJ0LHp0KSxVLnVuaWZvcm1zPUx0LnVuaWZvcm1zO2xldCBVdD1VLnVuaWZvcm1zOyghTS5pc1NoYWRlck1hdGVyaWFsJiYhTS5pc1Jhd1NoYWRlck1hdGVyaWFsfHxNLmNsaXBwaW5nPT09ITApJiYoVXQuY2xpcHBpbmdQbGFuZXM9RS51bmlmb3JtKSxvZihNLEx0KSxVLm5lZWRzTGlnaHRzPWswKE0pLFUubGlnaHRzU3RhdGVWZXJzaW9uPUN0LFUubmVlZHNMaWdodHMmJihVdC5hbWJpZW50TGlnaHRDb2xvci52YWx1ZT1aLnN0YXRlLmFtYmllbnQsVXQubGlnaHRQcm9iZS52YWx1ZT1aLnN0YXRlLnByb2JlLFV0LmRpcmVjdGlvbmFsTGlnaHRzLnZhbHVlPVouc3RhdGUuZGlyZWN0aW9uYWwsVXQuZGlyZWN0aW9uYWxMaWdodFNoYWRvd3MudmFsdWU9Wi5zdGF0ZS5kaXJlY3Rpb25hbFNoYWRvdyxVdC5zcG90TGlnaHRzLnZhbHVlPVouc3RhdGUuc3BvdCxVdC5zcG90TGlnaHRTaGFkb3dzLnZhbHVlPVouc3RhdGUuc3BvdFNoYWRvdyxVdC5yZWN0QXJlYUxpZ2h0cy52YWx1ZT1aLnN0YXRlLnJlY3RBcmVhLFV0Lmx0Y18xLnZhbHVlPVouc3RhdGUucmVjdEFyZWFMVEMxLFV0Lmx0Y18yLnZhbHVlPVouc3RhdGUucmVjdEFyZWFMVEMyLFV0LnBvaW50TGlnaHRzLnZhbHVlPVouc3RhdGUucG9pbnQsVXQucG9pbnRMaWdodFNoYWRvd3MudmFsdWU9Wi5zdGF0ZS5wb2ludFNoYWRvdyxVdC5oZW1pc3BoZXJlTGlnaHRzLnZhbHVlPVouc3RhdGUuaGVtaSxVdC5kaXJlY3Rpb25hbFNoYWRvd01hcC52YWx1ZT1aLnN0YXRlLmRpcmVjdGlvbmFsU2hhZG93TWFwLFV0LmRpcmVjdGlvbmFsU2hhZG93TWF0cml4LnZhbHVlPVouc3RhdGUuZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXgsVXQuc3BvdFNoYWRvd01hcC52YWx1ZT1aLnN0YXRlLnNwb3RTaGFkb3dNYXAsVXQuc3BvdFNoYWRvd01hdHJpeC52YWx1ZT1aLnN0YXRlLnNwb3RTaGFkb3dNYXRyaXgsVXQucG9pbnRTaGFkb3dNYXAudmFsdWU9Wi5zdGF0ZS5wb2ludFNoYWRvd01hcCxVdC5wb2ludFNoYWRvd01hdHJpeC52YWx1ZT1aLnN0YXRlLnBvaW50U2hhZG93TWF0cml4KTtsZXQgaWU9enQuZ2V0VW5pZm9ybXMoKSxmaT1paS5zZXFXaXRoVmFsdWUoaWUuc2VxLFV0KTtyZXR1cm4gVS5jdXJyZW50UHJvZ3JhbT16dCxVLnVuaWZvcm1zTGlzdD1maSx6dH1mdW5jdGlvbiBvZihNLEkpe2xldCBPPW50LmdldChNKTtPLm91dHB1dEVuY29kaW5nPUkub3V0cHV0RW5jb2RpbmcsTy5pbnN0YW5jaW5nPUkuaW5zdGFuY2luZyxPLnNraW5uaW5nPUkuc2tpbm5pbmcsTy5tb3JwaFRhcmdldHM9SS5tb3JwaFRhcmdldHMsTy5tb3JwaE5vcm1hbHM9SS5tb3JwaE5vcm1hbHMsTy5tb3JwaFRhcmdldHNDb3VudD1JLm1vcnBoVGFyZ2V0c0NvdW50LE8ubnVtQ2xpcHBpbmdQbGFuZXM9SS5udW1DbGlwcGluZ1BsYW5lcyxPLm51bUludGVyc2VjdGlvbj1JLm51bUNsaXBJbnRlcnNlY3Rpb24sTy52ZXJ0ZXhBbHBoYXM9SS52ZXJ0ZXhBbHBoYXMsTy52ZXJ0ZXhUYW5nZW50cz1JLnZlcnRleFRhbmdlbnRzLE8udG9uZU1hcHBpbmc9SS50b25lTWFwcGluZ31mdW5jdGlvbiBCMChNLEksTyxVLFope0kuaXNTY2VuZSE9PSEwJiYoST1kdCksQy5yZXNldFRleHR1cmVVbml0cygpO2xldCBUdD1JLmZvZyxDdD1VLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWw/SS5lbnZpcm9ubWVudDpudWxsLEx0PWI9PT1udWxsP3gub3V0cHV0RW5jb2Rpbmc6Yi5pc1hSUmVuZGVyVGFyZ2V0PT09ITA/Yi50ZXh0dXJlLmVuY29kaW5nOnJpLFJ0PShVLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWw/SjpqKS5nZXQoVS5lbnZNYXB8fEN0KSxHdD1VLnZlcnRleENvbG9ycz09PSEwJiYhIU8uYXR0cmlidXRlcy5jb2xvciYmTy5hdHRyaWJ1dGVzLmNvbG9yLml0ZW1TaXplPT09NCx6dD0hIVUubm9ybWFsTWFwJiYhIU8uYXR0cmlidXRlcy50YW5nZW50LFV0PSEhTy5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24saWU9ISFPLm1vcnBoQXR0cmlidXRlcy5ub3JtYWwsZmk9Ty5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24/Ty5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24ubGVuZ3RoOjAsWmk9VS50b25lTWFwcGVkP3gudG9uZU1hcHBpbmc6dGksT3Q9bnQuZ2V0KFUpLG5uPWYuc3RhdGUubGlnaHRzO2lmKFE9PT0hMCYmKGF0PT09ITB8fE0hPT1TKSl7bGV0IFplPU09PT1TJiZVLmlkPT09XztFLnNldFN0YXRlKFUsTSxaZSl9bGV0IGxlPSExO1UudmVyc2lvbj09PU90Ll9fdmVyc2lvbj8oT3QubmVlZHNMaWdodHMmJk90LmxpZ2h0c1N0YXRlVmVyc2lvbiE9PW5uLnN0YXRlLnZlcnNpb258fE90Lm91dHB1dEVuY29kaW5nIT09THR8fFouaXNJbnN0YW5jZWRNZXNoJiZPdC5pbnN0YW5jaW5nPT09ITF8fCFaLmlzSW5zdGFuY2VkTWVzaCYmT3QuaW5zdGFuY2luZz09PSEwfHxaLmlzU2tpbm5lZE1lc2gmJk90LnNraW5uaW5nPT09ITF8fCFaLmlzU2tpbm5lZE1lc2gmJk90LnNraW5uaW5nPT09ITB8fE90LmVudk1hcCE9PVJ0fHxVLmZvZyYmT3QuZm9nIT09VHR8fE90Lm51bUNsaXBwaW5nUGxhbmVzIT09dm9pZCAwJiYoT3QubnVtQ2xpcHBpbmdQbGFuZXMhPT1FLm51bVBsYW5lc3x8T3QubnVtSW50ZXJzZWN0aW9uIT09RS5udW1JbnRlcnNlY3Rpb24pfHxPdC52ZXJ0ZXhBbHBoYXMhPT1HdHx8T3QudmVydGV4VGFuZ2VudHMhPT16dHx8T3QubW9ycGhUYXJnZXRzIT09VXR8fE90Lm1vcnBoTm9ybWFscyE9PWllfHxPdC50b25lTWFwcGluZyE9PVppfHxTdC5pc1dlYkdMMj09PSEwJiZPdC5tb3JwaFRhcmdldHNDb3VudCE9PWZpKSYmKGxlPSEwKToobGU9ITAsT3QuX192ZXJzaW9uPVUudmVyc2lvbik7bGV0IHJuPU90LmN1cnJlbnRQcm9ncmFtO2xlPT09ITAmJihybj1PbChVLEksWikpO2xldCBJbz0hMSxzbj0hMSx2bj0hMSxfZT1ybi5nZXRVbmlmb3JtcygpLG5zPU90LnVuaWZvcm1zO2lmKEIudXNlUHJvZ3JhbShybi5wcm9ncmFtKSYmKElvPSEwLHNuPSEwLHZuPSEwKSxVLmlkIT09XyYmKF89VS5pZCxzbj0hMCksSW98fFMhPT1NKXtpZihfZS5zZXRWYWx1ZShrLCJwcm9qZWN0aW9uTWF0cml4IixNLnByb2plY3Rpb25NYXRyaXgpLFN0LmxvZ2FyaXRobWljRGVwdGhCdWZmZXImJl9lLnNldFZhbHVlKGssImxvZ0RlcHRoQnVmRkMiLDIvKE1hdGgubG9nKE0uZmFyKzEpL01hdGguTE4yKSksUyE9PU0mJihTPU0sc249ITAsdm49ITApLFUuaXNTaGFkZXJNYXRlcmlhbHx8VS5pc01lc2hQaG9uZ01hdGVyaWFsfHxVLmlzTWVzaFRvb25NYXRlcmlhbHx8VS5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHxVLmVudk1hcCl7bGV0IFplPV9lLm1hcC5jYW1lcmFQb3NpdGlvbjtaZSE9PXZvaWQgMCYmWmUuc2V0VmFsdWUoayxsdC5zZXRGcm9tTWF0cml4UG9zaXRpb24oTS5tYXRyaXhXb3JsZCkpfShVLmlzTWVzaFBob25nTWF0ZXJpYWx8fFUuaXNNZXNoVG9vbk1hdGVyaWFsfHxVLmlzTWVzaExhbWJlcnRNYXRlcmlhbHx8VS5pc01lc2hCYXNpY01hdGVyaWFsfHxVLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWx8fFUuaXNTaGFkZXJNYXRlcmlhbCkmJl9lLnNldFZhbHVlKGssImlzT3J0aG9ncmFwaGljIixNLmlzT3J0aG9ncmFwaGljQ2FtZXJhPT09ITApLChVLmlzTWVzaFBob25nTWF0ZXJpYWx8fFUuaXNNZXNoVG9vbk1hdGVyaWFsfHxVLmlzTWVzaExhbWJlcnRNYXRlcmlhbHx8VS5pc01lc2hCYXNpY01hdGVyaWFsfHxVLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWx8fFUuaXNTaGFkZXJNYXRlcmlhbHx8VS5pc1NoYWRvd01hdGVyaWFsfHxaLmlzU2tpbm5lZE1lc2gpJiZfZS5zZXRWYWx1ZShrLCJ2aWV3TWF0cml4IixNLm1hdHJpeFdvcmxkSW52ZXJzZSl9aWYoWi5pc1NraW5uZWRNZXNoKXtfZS5zZXRPcHRpb25hbChrLFosImJpbmRNYXRyaXgiKSxfZS5zZXRPcHRpb25hbChrLFosImJpbmRNYXRyaXhJbnZlcnNlIik7bGV0IFplPVouc2tlbGV0b247WmUmJihTdC5mbG9hdFZlcnRleFRleHR1cmVzPyhaZS5ib25lVGV4dHVyZT09PW51bGwmJlplLmNvbXB1dGVCb25lVGV4dHVyZSgpLF9lLnNldFZhbHVlKGssImJvbmVUZXh0dXJlIixaZS5ib25lVGV4dHVyZSxDKSxfZS5zZXRWYWx1ZShrLCJib25lVGV4dHVyZVNpemUiLFplLmJvbmVUZXh0dXJlU2l6ZSkpOl9lLnNldE9wdGlvbmFsKGssWmUsImJvbmVNYXRyaWNlcyIpKX1yZXR1cm4hIU8mJihPLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbiE9PXZvaWQgMHx8Ty5tb3JwaEF0dHJpYnV0ZXMubm9ybWFsIT09dm9pZCAwKSYmcnQudXBkYXRlKFosTyxVLHJuKSwoc258fE90LnJlY2VpdmVTaGFkb3chPT1aLnJlY2VpdmVTaGFkb3cpJiYoT3QucmVjZWl2ZVNoYWRvdz1aLnJlY2VpdmVTaGFkb3csX2Uuc2V0VmFsdWUoaywicmVjZWl2ZVNoYWRvdyIsWi5yZWNlaXZlU2hhZG93KSksc24mJihfZS5zZXRWYWx1ZShrLCJ0b25lTWFwcGluZ0V4cG9zdXJlIix4LnRvbmVNYXBwaW5nRXhwb3N1cmUpLE90Lm5lZWRzTGlnaHRzJiZPMChucyx2biksVHQmJlUuZm9nJiZJdC5yZWZyZXNoRm9nVW5pZm9ybXMobnMsVHQpLEl0LnJlZnJlc2hNYXRlcmlhbFVuaWZvcm1zKG5zLFUseSxYLEcpLGlpLnVwbG9hZChrLE90LnVuaWZvcm1zTGlzdCxucyxDKSksVS5pc1NoYWRlck1hdGVyaWFsJiZVLnVuaWZvcm1zTmVlZFVwZGF0ZT09PSEwJiYoaWkudXBsb2FkKGssT3QudW5pZm9ybXNMaXN0LG5zLEMpLFUudW5pZm9ybXNOZWVkVXBkYXRlPSExKSxVLmlzU3ByaXRlTWF0ZXJpYWwmJl9lLnNldFZhbHVlKGssImNlbnRlciIsWi5jZW50ZXIpLF9lLnNldFZhbHVlKGssIm1vZGVsVmlld01hdHJpeCIsWi5tb2RlbFZpZXdNYXRyaXgpLF9lLnNldFZhbHVlKGssIm5vcm1hbE1hdHJpeCIsWi5ub3JtYWxNYXRyaXgpLF9lLnNldFZhbHVlKGssIm1vZGVsTWF0cml4IixaLm1hdHJpeFdvcmxkKSxybn1mdW5jdGlvbiBPMChNLEkpe00uYW1iaWVudExpZ2h0Q29sb3IubmVlZHNVcGRhdGU9SSxNLmxpZ2h0UHJvYmUubmVlZHNVcGRhdGU9SSxNLmRpcmVjdGlvbmFsTGlnaHRzLm5lZWRzVXBkYXRlPUksTS5kaXJlY3Rpb25hbExpZ2h0U2hhZG93cy5uZWVkc1VwZGF0ZT1JLE0ucG9pbnRMaWdodHMubmVlZHNVcGRhdGU9SSxNLnBvaW50TGlnaHRTaGFkb3dzLm5lZWRzVXBkYXRlPUksTS5zcG90TGlnaHRzLm5lZWRzVXBkYXRlPUksTS5zcG90TGlnaHRTaGFkb3dzLm5lZWRzVXBkYXRlPUksTS5yZWN0QXJlYUxpZ2h0cy5uZWVkc1VwZGF0ZT1JLE0uaGVtaXNwaGVyZUxpZ2h0cy5uZWVkc1VwZGF0ZT1JfWZ1bmN0aW9uIGswKE0pe3JldHVybiBNLmlzTWVzaExhbWJlcnRNYXRlcmlhbHx8TS5pc01lc2hUb29uTWF0ZXJpYWx8fE0uaXNNZXNoUGhvbmdNYXRlcmlhbHx8TS5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHxNLmlzU2hhZG93TWF0ZXJpYWx8fE0uaXNTaGFkZXJNYXRlcmlhbCYmTS5saWdodHM9PT0hMH10aGlzLmdldEFjdGl2ZUN1YmVGYWNlPWZ1bmN0aW9uKCl7cmV0dXJuIG19LHRoaXMuZ2V0QWN0aXZlTWlwbWFwTGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gcH0sdGhpcy5nZXRSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gYn0sdGhpcy5zZXRSZW5kZXJUYXJnZXRUZXh0dXJlcz1mdW5jdGlvbihNLEksTyl7bnQuZ2V0KE0udGV4dHVyZSkuX193ZWJnbFRleHR1cmU9SSxudC5nZXQoTS5kZXB0aFRleHR1cmUpLl9fd2ViZ2xUZXh0dXJlPU87bGV0IFU9bnQuZ2V0KE0pO1UuX19oYXNFeHRlcm5hbFRleHR1cmVzPSEwLFUuX19oYXNFeHRlcm5hbFRleHR1cmVzJiYoVS5fX2F1dG9BbGxvY2F0ZURlcHRoQnVmZmVyPU89PT12b2lkIDAsVS5fX2F1dG9BbGxvY2F0ZURlcHRoQnVmZmVyfHxNLnVzZVJlbmRlclRvVGV4dHVyZSYmKGNvbnNvbGUud2FybigicmVuZGVyLXRvLXRleHR1cmUgZXh0ZW5zaW9uIHdhcyBkaXNhYmxlZCBiZWNhdXNlIGFuIGV4dGVybmFsIHRleHR1cmUgd2FzIHByb3ZpZGVkIiksTS51c2VSZW5kZXJUb1RleHR1cmU9ITEsTS51c2VSZW5kZXJidWZmZXI9ITApKX0sdGhpcy5zZXRSZW5kZXJUYXJnZXRGcmFtZWJ1ZmZlcj1mdW5jdGlvbihNLEkpe2xldCBPPW50LmdldChNKTtPLl9fd2ViZ2xGcmFtZWJ1ZmZlcj1JLE8uX191c2VEZWZhdWx0RnJhbWVidWZmZXI9ST09PXZvaWQgMH0sdGhpcy5zZXRSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24oTSxJPTAsTz0wKXtiPU0sbT1JLHA9TztsZXQgVT0hMDtpZihNKXtsZXQgUnQ9bnQuZ2V0KE0pO1J0Ll9fdXNlRGVmYXVsdEZyYW1lYnVmZmVyIT09dm9pZCAwPyhCLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxudWxsKSxVPSExKTpSdC5fX3dlYmdsRnJhbWVidWZmZXI9PT12b2lkIDA/Qy5zZXR1cFJlbmRlclRhcmdldChNKTpSdC5fX2hhc0V4dGVybmFsVGV4dHVyZXMmJkMucmViaW5kVGV4dHVyZXMoTSxudC5nZXQoTS50ZXh0dXJlKS5fX3dlYmdsVGV4dHVyZSxudC5nZXQoTS5kZXB0aFRleHR1cmUpLl9fd2ViZ2xUZXh0dXJlKX1sZXQgWj1udWxsLFR0PSExLEN0PSExO2lmKE0pe2xldCBSdD1NLnRleHR1cmU7KFJ0LmlzRGF0YVRleHR1cmUzRHx8UnQuaXNEYXRhVGV4dHVyZTJEQXJyYXkpJiYoQ3Q9ITApO2xldCBHdD1udC5nZXQoTSkuX193ZWJnbEZyYW1lYnVmZmVyO00uaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQ/KFo9R3RbSV0sVHQ9ITApOk0udXNlUmVuZGVyYnVmZmVyP1o9bnQuZ2V0KE0pLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcjpaPUd0LEwuY29weShNLnZpZXdwb3J0KSxBLmNvcHkoTS5zY2lzc29yKSxIPU0uc2Npc3NvclRlc3R9ZWxzZSBMLmNvcHkoRikubXVsdGlwbHlTY2FsYXIoeSkuZmxvb3IoKSxBLmNvcHkoeikubXVsdGlwbHlTY2FsYXIoeSkuZmxvb3IoKSxIPU47aWYoQi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsWikmJlN0LmRyYXdCdWZmZXJzJiZVJiZCLmRyYXdCdWZmZXJzKE0sWiksQi52aWV3cG9ydChMKSxCLnNjaXNzb3IoQSksQi5zZXRTY2lzc29yVGVzdChIKSxUdCl7bGV0IFJ0PW50LmdldChNLnRleHR1cmUpO2suZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYwNjQsMzQwNjkrSSxSdC5fX3dlYmdsVGV4dHVyZSxPKX1lbHNlIGlmKEN0KXtsZXQgUnQ9bnQuZ2V0KE0udGV4dHVyZSksR3Q9SXx8MDtrLmZyYW1lYnVmZmVyVGV4dHVyZUxheWVyKDM2MTYwLDM2MDY0LFJ0Ll9fd2ViZ2xUZXh0dXJlLE98fDAsR3QpfV89LTF9LHRoaXMucmVhZFJlbmRlclRhcmdldFBpeGVscz1mdW5jdGlvbihNLEksTyxVLFosVHQsQ3Qpe2lmKCEoTSYmTS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZWFkUmVuZGVyVGFyZ2V0UGl4ZWxzOiByZW5kZXJUYXJnZXQgaXMgbm90IFRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0LiIpO3JldHVybn1sZXQgTHQ9bnQuZ2V0KE0pLl9fd2ViZ2xGcmFtZWJ1ZmZlcjtpZihNLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0JiZDdCE9PXZvaWQgMCYmKEx0PUx0W0N0XSksTHQpe0IuYmluZEZyYW1lYnVmZmVyKDM2MTYwLEx0KTt0cnl7bGV0IFJ0PU0udGV4dHVyZSxHdD1SdC5mb3JtYXQsenQ9UnQudHlwZTtpZihHdCE9PVJlJiZfdC5jb252ZXJ0KEd0KSE9PWsuZ2V0UGFyYW1ldGVyKDM1NzM5KSl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZWFkUmVuZGVyVGFyZ2V0UGl4ZWxzOiByZW5kZXJUYXJnZXQgaXMgbm90IGluIFJHQkEgb3IgaW1wbGVtZW50YXRpb24gZGVmaW5lZCBmb3JtYXQuIik7cmV0dXJufWxldCBVdD16dD09PVVyJiYobXQuaGFzKCJFWFRfY29sb3JfYnVmZmVyX2hhbGZfZmxvYXQiKXx8U3QuaXNXZWJHTDImJm10LmhhcygiRVhUX2NvbG9yX2J1ZmZlcl9mbG9hdCIpKTtpZih6dCE9PWVpJiZfdC5jb252ZXJ0KHp0KSE9PWsuZ2V0UGFyYW1ldGVyKDM1NzM4KSYmISh6dD09PVVpJiYoU3QuaXNXZWJHTDJ8fG10LmhhcygiT0VTX3RleHR1cmVfZmxvYXQiKXx8bXQuaGFzKCJXRUJHTF9jb2xvcl9idWZmZXJfZmxvYXQiKSkpJiYhVXQpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXIucmVhZFJlbmRlclRhcmdldFBpeGVsczogcmVuZGVyVGFyZ2V0IGlzIG5vdCBpbiBVbnNpZ25lZEJ5dGVUeXBlIG9yIGltcGxlbWVudGF0aW9uIGRlZmluZWQgdHlwZS4iKTtyZXR1cm59ay5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKDM2MTYwKT09PTM2MDUzP0k+PTAmJkk8PU0ud2lkdGgtVSYmTz49MCYmTzw9TS5oZWlnaHQtWiYmay5yZWFkUGl4ZWxzKEksTyxVLFosX3QuY29udmVydChHdCksX3QuY29udmVydCh6dCksVHQpOmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXIucmVhZFJlbmRlclRhcmdldFBpeGVsczogcmVhZFBpeGVscyBmcm9tIHJlbmRlclRhcmdldCBmYWlsZWQuIEZyYW1lYnVmZmVyIG5vdCBjb21wbGV0ZS4iKX1maW5hbGx5e2xldCBSdD1iIT09bnVsbD9udC5nZXQoYikuX193ZWJnbEZyYW1lYnVmZmVyOm51bGw7Qi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsUnQpfX19LHRoaXMuY29weUZyYW1lYnVmZmVyVG9UZXh0dXJlPWZ1bmN0aW9uKE0sSSxPPTApe2lmKEkuaXNGcmFtZWJ1ZmZlclRleHR1cmUhPT0hMCl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlcjogY29weUZyYW1lYnVmZmVyVG9UZXh0dXJlKCkgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIEZyYW1lYnVmZmVyVGV4dHVyZS4iKTtyZXR1cm59bGV0IFU9TWF0aC5wb3coMiwtTyksWj1NYXRoLmZsb29yKEkuaW1hZ2Uud2lkdGgqVSksVHQ9TWF0aC5mbG9vcihJLmltYWdlLmhlaWdodCpVKTtDLnNldFRleHR1cmUyRChJLDApLGsuY29weVRleFN1YkltYWdlMkQoMzU1MyxPLDAsMCxNLngsTS55LFosVHQpLEIudW5iaW5kVGV4dHVyZSgpfSx0aGlzLmNvcHlUZXh0dXJlVG9UZXh0dXJlPWZ1bmN0aW9uKE0sSSxPLFU9MCl7bGV0IFo9SS5pbWFnZS53aWR0aCxUdD1JLmltYWdlLmhlaWdodCxDdD1fdC5jb252ZXJ0KE8uZm9ybWF0KSxMdD1fdC5jb252ZXJ0KE8udHlwZSk7Qy5zZXRUZXh0dXJlMkQoTywwKSxrLnBpeGVsU3RvcmVpKDM3NDQwLE8uZmxpcFkpLGsucGl4ZWxTdG9yZWkoMzc0NDEsTy5wcmVtdWx0aXBseUFscGhhKSxrLnBpeGVsU3RvcmVpKDMzMTcsTy51bnBhY2tBbGlnbm1lbnQpLEkuaXNEYXRhVGV4dHVyZT9rLnRleFN1YkltYWdlMkQoMzU1MyxVLE0ueCxNLnksWixUdCxDdCxMdCxJLmltYWdlLmRhdGEpOkkuaXNDb21wcmVzc2VkVGV4dHVyZT9rLmNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKDM1NTMsVSxNLngsTS55LEkubWlwbWFwc1swXS53aWR0aCxJLm1pcG1hcHNbMF0uaGVpZ2h0LEN0LEkubWlwbWFwc1swXS5kYXRhKTprLnRleFN1YkltYWdlMkQoMzU1MyxVLE0ueCxNLnksQ3QsTHQsSS5pbWFnZSksVT09PTAmJk8uZ2VuZXJhdGVNaXBtYXBzJiZrLmdlbmVyYXRlTWlwbWFwKDM1NTMpLEIudW5iaW5kVGV4dHVyZSgpfSx0aGlzLmNvcHlUZXh0dXJlVG9UZXh0dXJlM0Q9ZnVuY3Rpb24oTSxJLE8sVSxaPTApe2lmKHguaXNXZWJHTDFSZW5kZXJlcil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyLmNvcHlUZXh0dXJlVG9UZXh0dXJlM0Q6IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBXZWJHTDIuIik7cmV0dXJufWxldCBUdD1NLm1heC54LU0ubWluLngrMSxDdD1NLm1heC55LU0ubWluLnkrMSxMdD1NLm1heC56LU0ubWluLnorMSxSdD1fdC5jb252ZXJ0KFUuZm9ybWF0KSxHdD1fdC5jb252ZXJ0KFUudHlwZSksenQ7aWYoVS5pc0RhdGFUZXh0dXJlM0QpQy5zZXRUZXh0dXJlM0QoVSwwKSx6dD0zMjg3OTtlbHNlIGlmKFUuaXNEYXRhVGV4dHVyZTJEQXJyYXkpQy5zZXRUZXh0dXJlMkRBcnJheShVLDApLHp0PTM1ODY2O2Vsc2V7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyLmNvcHlUZXh0dXJlVG9UZXh0dXJlM0Q6IG9ubHkgc3VwcG9ydHMgVEhSRUUuRGF0YVRleHR1cmUzRCBhbmQgVEhSRUUuRGF0YVRleHR1cmUyREFycmF5LiIpO3JldHVybn1rLnBpeGVsU3RvcmVpKDM3NDQwLFUuZmxpcFkpLGsucGl4ZWxTdG9yZWkoMzc0NDEsVS5wcmVtdWx0aXBseUFscGhhKSxrLnBpeGVsU3RvcmVpKDMzMTcsVS51bnBhY2tBbGlnbm1lbnQpO2xldCBVdD1rLmdldFBhcmFtZXRlcigzMzE0KSxpZT1rLmdldFBhcmFtZXRlcigzMjg3OCksZmk9ay5nZXRQYXJhbWV0ZXIoMzMxNiksWmk9ay5nZXRQYXJhbWV0ZXIoMzMxNSksT3Q9ay5nZXRQYXJhbWV0ZXIoMzI4NzcpLG5uPU8uaXNDb21wcmVzc2VkVGV4dHVyZT9PLm1pcG1hcHNbMF06Ty5pbWFnZTtrLnBpeGVsU3RvcmVpKDMzMTQsbm4ud2lkdGgpLGsucGl4ZWxTdG9yZWkoMzI4Nzgsbm4uaGVpZ2h0KSxrLnBpeGVsU3RvcmVpKDMzMTYsTS5taW4ueCksay5waXhlbFN0b3JlaSgzMzE1LE0ubWluLnkpLGsucGl4ZWxTdG9yZWkoMzI4NzcsTS5taW4ueiksTy5pc0RhdGFUZXh0dXJlfHxPLmlzRGF0YVRleHR1cmUzRD9rLnRleFN1YkltYWdlM0QoenQsWixJLngsSS55LEkueixUdCxDdCxMdCxSdCxHdCxubi5kYXRhKTpPLmlzQ29tcHJlc3NlZFRleHR1cmU/KGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlci5jb3B5VGV4dHVyZVRvVGV4dHVyZTNEOiB1bnRlc3RlZCBzdXBwb3J0IGZvciBjb21wcmVzc2VkIHNyY1RleHR1cmUuIiksay5jb21wcmVzc2VkVGV4U3ViSW1hZ2UzRCh6dCxaLEkueCxJLnksSS56LFR0LEN0LEx0LFJ0LG5uLmRhdGEpKTprLnRleFN1YkltYWdlM0QoenQsWixJLngsSS55LEkueixUdCxDdCxMdCxSdCxHdCxubiksay5waXhlbFN0b3JlaSgzMzE0LFV0KSxrLnBpeGVsU3RvcmVpKDMyODc4LGllKSxrLnBpeGVsU3RvcmVpKDMzMTYsZmkpLGsucGl4ZWxTdG9yZWkoMzMxNSxaaSksay5waXhlbFN0b3JlaSgzMjg3NyxPdCksWj09PTAmJlUuZ2VuZXJhdGVNaXBtYXBzJiZrLmdlbmVyYXRlTWlwbWFwKHp0KSxCLnVuYmluZFRleHR1cmUoKX0sdGhpcy5pbml0VGV4dHVyZT1mdW5jdGlvbihNKXtDLnNldFRleHR1cmUyRChNLDApLEIudW5iaW5kVGV4dHVyZSgpfSx0aGlzLnJlc2V0U3RhdGU9ZnVuY3Rpb24oKXttPTAscD0wLGI9bnVsbCxCLnJlc2V0KCkseXQucmVzZXQoKX0sdHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXyE9InVuZGVmaW5lZCImJl9fVEhSRUVfREVWVE9PTFNfXy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgib2JzZXJ2ZSIse2RldGFpbDp0aGlzfSkpfVZ0LnByb3RvdHlwZS5pc1dlYkdMUmVuZGVyZXI9ITA7dmFyIEp1PWNsYXNzIGV4dGVuZHMgVnR7fTtKdS5wcm90b3R5cGUuaXNXZWJHTDFSZW5kZXJlcj0hMDt2YXIgaG89Y2xhc3N7Y29uc3RydWN0b3IodCxlPTI1ZS01KXt0aGlzLm5hbWU9IiIsdGhpcy5jb2xvcj1uZXcgZnQodCksdGhpcy5kZW5zaXR5PWV9Y2xvbmUoKXtyZXR1cm4gbmV3IGhvKHRoaXMuY29sb3IsdGhpcy5kZW5zaXR5KX10b0pTT04oKXtyZXR1cm57dHlwZToiRm9nRXhwMiIsY29sb3I6dGhpcy5jb2xvci5nZXRIZXgoKSxkZW5zaXR5OnRoaXMuZGVuc2l0eX19fTtoby5wcm90b3R5cGUuaXNGb2dFeHAyPSEwO3ZhciBmbz1jbGFzc3tjb25zdHJ1Y3Rvcih0LGU9MSxpPTFlMyl7dGhpcy5uYW1lPSIiLHRoaXMuY29sb3I9bmV3IGZ0KHQpLHRoaXMubmVhcj1lLHRoaXMuZmFyPWl9Y2xvbmUoKXtyZXR1cm4gbmV3IGZvKHRoaXMuY29sb3IsdGhpcy5uZWFyLHRoaXMuZmFyKX10b0pTT04oKXtyZXR1cm57dHlwZToiRm9nIixjb2xvcjp0aGlzLmNvbG9yLmdldEhleCgpLG5lYXI6dGhpcy5uZWFyLGZhcjp0aGlzLmZhcn19fTtmby5wcm90b3R5cGUuaXNGb2c9ITA7dmFyIFlyPWNsYXNzIGV4dGVuZHMga3R7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iU2NlbmUiLHRoaXMuYmFja2dyb3VuZD1udWxsLHRoaXMuZW52aXJvbm1lbnQ9bnVsbCx0aGlzLmZvZz1udWxsLHRoaXMub3ZlcnJpZGVNYXRlcmlhbD1udWxsLHRoaXMuYXV0b1VwZGF0ZT0hMCx0eXBlb2YgX19USFJFRV9ERVZUT09MU19fIT0idW5kZWZpbmVkIiYmX19USFJFRV9ERVZUT09MU19fLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJvYnNlcnZlIix7ZGV0YWlsOnRoaXN9KSl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksdC5iYWNrZ3JvdW5kIT09bnVsbCYmKHRoaXMuYmFja2dyb3VuZD10LmJhY2tncm91bmQuY2xvbmUoKSksdC5lbnZpcm9ubWVudCE9PW51bGwmJih0aGlzLmVudmlyb25tZW50PXQuZW52aXJvbm1lbnQuY2xvbmUoKSksdC5mb2chPT1udWxsJiYodGhpcy5mb2c9dC5mb2cuY2xvbmUoKSksdC5vdmVycmlkZU1hdGVyaWFsIT09bnVsbCYmKHRoaXMub3ZlcnJpZGVNYXRlcmlhbD10Lm92ZXJyaWRlTWF0ZXJpYWwuY2xvbmUoKSksdGhpcy5hdXRvVXBkYXRlPXQuYXV0b1VwZGF0ZSx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlLHRoaXN9dG9KU09OKHQpe2xldCBlPXN1cGVyLnRvSlNPTih0KTtyZXR1cm4gdGhpcy5mb2chPT1udWxsJiYoZS5vYmplY3QuZm9nPXRoaXMuZm9nLnRvSlNPTigpKSxlfX07WXIucHJvdG90eXBlLmlzU2NlbmU9ITA7dmFyIEdpPWNsYXNze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5hcnJheT10LHRoaXMuc3RyaWRlPWUsdGhpcy5jb3VudD10IT09dm9pZCAwP3QubGVuZ3RoL2U6MCx0aGlzLnVzYWdlPWlvLHRoaXMudXBkYXRlUmFuZ2U9e29mZnNldDowLGNvdW50Oi0xfSx0aGlzLnZlcnNpb249MCx0aGlzLnV1aWQ9dG4oKX1vblVwbG9hZENhbGxiYWNrKCl7fXNldCBuZWVkc1VwZGF0ZSh0KXt0PT09ITAmJnRoaXMudmVyc2lvbisrfXNldFVzYWdlKHQpe3JldHVybiB0aGlzLnVzYWdlPXQsdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLmFycmF5PW5ldyB0LmFycmF5LmNvbnN0cnVjdG9yKHQuYXJyYXkpLHRoaXMuY291bnQ9dC5jb3VudCx0aGlzLnN0cmlkZT10LnN0cmlkZSx0aGlzLnVzYWdlPXQudXNhZ2UsdGhpc31jb3B5QXQodCxlLGkpe3QqPXRoaXMuc3RyaWRlLGkqPWUuc3RyaWRlO2ZvcihsZXQgcj0wLHM9dGhpcy5zdHJpZGU7cjxzO3IrKyl0aGlzLmFycmF5W3Qrcl09ZS5hcnJheVtpK3JdO3JldHVybiB0aGlzfXNldCh0LGU9MCl7cmV0dXJuIHRoaXMuYXJyYXkuc2V0KHQsZSksdGhpc31jbG9uZSh0KXt0LmFycmF5QnVmZmVycz09PXZvaWQgMCYmKHQuYXJyYXlCdWZmZXJzPXt9KSx0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD09PXZvaWQgMCYmKHRoaXMuYXJyYXkuYnVmZmVyLl91dWlkPXRuKCkpLHQuYXJyYXlCdWZmZXJzW3RoaXMuYXJyYXkuYnVmZmVyLl91dWlkXT09PXZvaWQgMCYmKHQuYXJyYXlCdWZmZXJzW3RoaXMuYXJyYXkuYnVmZmVyLl91dWlkXT10aGlzLmFycmF5LnNsaWNlKDApLmJ1ZmZlcik7bGV0IGU9bmV3IHRoaXMuYXJyYXkuY29uc3RydWN0b3IodC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdKSxpPW5ldyB0aGlzLmNvbnN0cnVjdG9yKGUsdGhpcy5zdHJpZGUpO3JldHVybiBpLnNldFVzYWdlKHRoaXMudXNhZ2UpLGl9b25VcGxvYWQodCl7cmV0dXJuIHRoaXMub25VcGxvYWRDYWxsYmFjaz10LHRoaXN9dG9KU09OKHQpe3JldHVybiB0LmFycmF5QnVmZmVycz09PXZvaWQgMCYmKHQuYXJyYXlCdWZmZXJzPXt9KSx0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD09PXZvaWQgMCYmKHRoaXMuYXJyYXkuYnVmZmVyLl91dWlkPXRuKCkpLHQuYXJyYXlCdWZmZXJzW3RoaXMuYXJyYXkuYnVmZmVyLl91dWlkXT09PXZvaWQgMCYmKHQuYXJyYXlCdWZmZXJzW3RoaXMuYXJyYXkuYnVmZmVyLl91dWlkXT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuZXcgVWludDMyQXJyYXkodGhpcy5hcnJheS5idWZmZXIpKSkse3V1aWQ6dGhpcy51dWlkLGJ1ZmZlcjp0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZCx0eXBlOnRoaXMuYXJyYXkuY29uc3RydWN0b3IubmFtZSxzdHJpZGU6dGhpcy5zdHJpZGV9fX07R2kucHJvdG90eXBlLmlzSW50ZXJsZWF2ZWRCdWZmZXI9ITA7dmFyIHNlPW5ldyBULFdpPWNsYXNze2NvbnN0cnVjdG9yKHQsZSxpLHI9ITEpe3RoaXMubmFtZT0iIix0aGlzLmRhdGE9dCx0aGlzLml0ZW1TaXplPWUsdGhpcy5vZmZzZXQ9aSx0aGlzLm5vcm1hbGl6ZWQ9cj09PSEwfWdldCBjb3VudCgpe3JldHVybiB0aGlzLmRhdGEuY291bnR9Z2V0IGFycmF5KCl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheX1zZXQgbmVlZHNVcGRhdGUodCl7dGhpcy5kYXRhLm5lZWRzVXBkYXRlPXR9YXBwbHlNYXRyaXg0KHQpe2ZvcihsZXQgZT0wLGk9dGhpcy5kYXRhLmNvdW50O2U8aTtlKyspc2UueD10aGlzLmdldFgoZSksc2UueT10aGlzLmdldFkoZSksc2Uuej10aGlzLmdldFooZSksc2UuYXBwbHlNYXRyaXg0KHQpLHRoaXMuc2V0WFlaKGUsc2UueCxzZS55LHNlLnopO3JldHVybiB0aGlzfWFwcGx5Tm9ybWFsTWF0cml4KHQpe2ZvcihsZXQgZT0wLGk9dGhpcy5jb3VudDtlPGk7ZSsrKXNlLng9dGhpcy5nZXRYKGUpLHNlLnk9dGhpcy5nZXRZKGUpLHNlLno9dGhpcy5nZXRaKGUpLHNlLmFwcGx5Tm9ybWFsTWF0cml4KHQpLHRoaXMuc2V0WFlaKGUsc2UueCxzZS55LHNlLnopO3JldHVybiB0aGlzfXRyYW5zZm9ybURpcmVjdGlvbih0KXtmb3IobGV0IGU9MCxpPXRoaXMuY291bnQ7ZTxpO2UrKylzZS54PXRoaXMuZ2V0WChlKSxzZS55PXRoaXMuZ2V0WShlKSxzZS56PXRoaXMuZ2V0WihlKSxzZS50cmFuc2Zvcm1EaXJlY3Rpb24odCksdGhpcy5zZXRYWVooZSxzZS54LHNlLnksc2Uueik7cmV0dXJuIHRoaXN9c2V0WCh0LGUpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0XT1lLHRoaXN9c2V0WSh0LGUpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzFdPWUsdGhpc31zZXRaKHQsZSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrMl09ZSx0aGlzfXNldFcodCxlKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCszXT1lLHRoaXN9Z2V0WCh0KXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldF19Z2V0WSh0KXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCsxXX1nZXRaKHQpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzJdfWdldFcodCl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrM119c2V0WFkodCxlLGkpe3JldHVybiB0PXQqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCx0aGlzLmRhdGEuYXJyYXlbdCswXT1lLHRoaXMuZGF0YS5hcnJheVt0KzFdPWksdGhpc31zZXRYWVoodCxlLGkscil7cmV0dXJuIHQ9dCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0LHRoaXMuZGF0YS5hcnJheVt0KzBdPWUsdGhpcy5kYXRhLmFycmF5W3QrMV09aSx0aGlzLmRhdGEuYXJyYXlbdCsyXT1yLHRoaXN9c2V0WFlaVyh0LGUsaSxyLHMpe3JldHVybiB0PXQqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCx0aGlzLmRhdGEuYXJyYXlbdCswXT1lLHRoaXMuZGF0YS5hcnJheVt0KzFdPWksdGhpcy5kYXRhLmFycmF5W3QrMl09cix0aGlzLmRhdGEuYXJyYXlbdCszXT1zLHRoaXN9Y2xvbmUodCl7aWYodD09PXZvaWQgMCl7Y29uc29sZS5sb2coIlRIUkVFLkludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlLmNsb25lKCk6IENsb25pbmcgYW4gaW50ZXJsYXZlZCBidWZmZXIgYXR0cmlidXRlIHdpbGwgZGVpbnRlcmxlYXZlIGJ1ZmZlciBkYXRhLiIpO2xldCBlPVtdO2ZvcihsZXQgaT0wO2k8dGhpcy5jb3VudDtpKyspe2xldCByPWkqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldDtmb3IobGV0IHM9MDtzPHRoaXMuaXRlbVNpemU7cysrKWUucHVzaCh0aGlzLmRhdGEuYXJyYXlbcitzXSl9cmV0dXJuIG5ldyBRdChuZXcgdGhpcy5hcnJheS5jb25zdHJ1Y3RvcihlKSx0aGlzLml0ZW1TaXplLHRoaXMubm9ybWFsaXplZCl9ZWxzZSByZXR1cm4gdC5pbnRlcmxlYXZlZEJ1ZmZlcnM9PT12b2lkIDAmJih0LmludGVybGVhdmVkQnVmZmVycz17fSksdC5pbnRlcmxlYXZlZEJ1ZmZlcnNbdGhpcy5kYXRhLnV1aWRdPT09dm9pZCAwJiYodC5pbnRlcmxlYXZlZEJ1ZmZlcnNbdGhpcy5kYXRhLnV1aWRdPXRoaXMuZGF0YS5jbG9uZSh0KSksbmV3IFdpKHQuaW50ZXJsZWF2ZWRCdWZmZXJzW3RoaXMuZGF0YS51dWlkXSx0aGlzLml0ZW1TaXplLHRoaXMub2Zmc2V0LHRoaXMubm9ybWFsaXplZCl9dG9KU09OKHQpe2lmKHQ9PT12b2lkIDApe2NvbnNvbGUubG9nKCJUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZS50b0pTT04oKTogU2VyaWFsaXppbmcgYW4gaW50ZXJsYXZlZCBidWZmZXIgYXR0cmlidXRlIHdpbGwgZGVpbnRlcmxlYXZlIGJ1ZmZlciBkYXRhLiIpO2xldCBlPVtdO2ZvcihsZXQgaT0wO2k8dGhpcy5jb3VudDtpKyspe2xldCByPWkqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldDtmb3IobGV0IHM9MDtzPHRoaXMuaXRlbVNpemU7cysrKWUucHVzaCh0aGlzLmRhdGEuYXJyYXlbcitzXSl9cmV0dXJue2l0ZW1TaXplOnRoaXMuaXRlbVNpemUsdHlwZTp0aGlzLmFycmF5LmNvbnN0cnVjdG9yLm5hbWUsYXJyYXk6ZSxub3JtYWxpemVkOnRoaXMubm9ybWFsaXplZH19ZWxzZSByZXR1cm4gdC5pbnRlcmxlYXZlZEJ1ZmZlcnM9PT12b2lkIDAmJih0LmludGVybGVhdmVkQnVmZmVycz17fSksdC5pbnRlcmxlYXZlZEJ1ZmZlcnNbdGhpcy5kYXRhLnV1aWRdPT09dm9pZCAwJiYodC5pbnRlcmxlYXZlZEJ1ZmZlcnNbdGhpcy5kYXRhLnV1aWRdPXRoaXMuZGF0YS50b0pTT04odCkpLHtpc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlOiEwLGl0ZW1TaXplOnRoaXMuaXRlbVNpemUsZGF0YTp0aGlzLmRhdGEudXVpZCxvZmZzZXQ6dGhpcy5vZmZzZXQsbm9ybWFsaXplZDp0aGlzLm5vcm1hbGl6ZWR9fX07V2kucHJvdG90eXBlLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGU9ITA7dmFyIGZsPWNsYXNzIGV4dGVuZHMgeGV7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNwcml0ZU1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBmdCgxNjc3NzIxNSksdGhpcy5tYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5yb3RhdGlvbj0wLHRoaXMuc2l6ZUF0dGVudWF0aW9uPSEwLHRoaXMudHJhbnNwYXJlbnQ9ITAsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXA9dC5tYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMucm90YXRpb249dC5yb3RhdGlvbix0aGlzLnNpemVBdHRlbnVhdGlvbj10LnNpemVBdHRlbnVhdGlvbix0aGlzfX07ZmwucHJvdG90eXBlLmlzU3ByaXRlTWF0ZXJpYWw9ITA7dmFyIFJyLFdzPW5ldyBULExyPW5ldyBULFByPW5ldyBULERyPW5ldyBLLHFzPW5ldyBLLEEwPW5ldyB3dCxPYT1uZXcgVCxYcz1uZXcgVCxrYT1uZXcgVCxVZz1uZXcgSyxSdT1uZXcgSyxCZz1uZXcgSywkdT1jbGFzcyBleHRlbmRzIGt0e2NvbnN0cnVjdG9yKHQpe2lmKHN1cGVyKCksdGhpcy50eXBlPSJTcHJpdGUiLFJyPT09dm9pZCAwKXtScj1uZXcgSHQ7bGV0IGU9bmV3IEZsb2F0MzJBcnJheShbLS41LC0uNSwwLDAsMCwuNSwtLjUsMCwxLDAsLjUsLjUsMCwxLDEsLS41LC41LDAsMCwxXSksaT1uZXcgR2koZSw1KTtSci5zZXRJbmRleChbMCwxLDIsMCwyLDNdKSxSci5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgV2koaSwzLDAsITEpKSxSci5zZXRBdHRyaWJ1dGUoInV2IixuZXcgV2koaSwyLDMsITEpKX10aGlzLmdlb21ldHJ5PVJyLHRoaXMubWF0ZXJpYWw9dCE9PXZvaWQgMD90Om5ldyBmbCx0aGlzLmNlbnRlcj1uZXcgSyguNSwuNSl9cmF5Y2FzdCh0LGUpe3QuY2FtZXJhPT09bnVsbCYmY29uc29sZS5lcnJvcignVEhSRUUuU3ByaXRlOiAiUmF5Y2FzdGVyLmNhbWVyYSIgbmVlZHMgdG8gYmUgc2V0IGluIG9yZGVyIHRvIHJheWNhc3QgYWdhaW5zdCBzcHJpdGVzLicpLExyLnNldEZyb21NYXRyaXhTY2FsZSh0aGlzLm1hdHJpeFdvcmxkKSxBMC5jb3B5KHQuY2FtZXJhLm1hdHJpeFdvcmxkKSx0aGlzLm1vZGVsVmlld01hdHJpeC5tdWx0aXBseU1hdHJpY2VzKHQuY2FtZXJhLm1hdHJpeFdvcmxkSW52ZXJzZSx0aGlzLm1hdHJpeFdvcmxkKSxQci5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tb2RlbFZpZXdNYXRyaXgpLHQuY2FtZXJhLmlzUGVyc3BlY3RpdmVDYW1lcmEmJnRoaXMubWF0ZXJpYWwuc2l6ZUF0dGVudWF0aW9uPT09ITEmJkxyLm11bHRpcGx5U2NhbGFyKC1Qci56KTtsZXQgaT10aGlzLm1hdGVyaWFsLnJvdGF0aW9uLHIscztpIT09MCYmKHM9TWF0aC5jb3MoaSkscj1NYXRoLnNpbihpKSk7bGV0IG89dGhpcy5jZW50ZXI7SGEoT2Euc2V0KC0uNSwtLjUsMCksUHIsbyxMcixyLHMpLEhhKFhzLnNldCguNSwtLjUsMCksUHIsbyxMcixyLHMpLEhhKGthLnNldCguNSwuNSwwKSxQcixvLExyLHIscyksVWcuc2V0KDAsMCksUnUuc2V0KDEsMCksQmcuc2V0KDEsMSk7bGV0IGE9dC5yYXkuaW50ZXJzZWN0VHJpYW5nbGUoT2EsWHMsa2EsITEsV3MpO2lmKGE9PT1udWxsJiYoSGEoWHMuc2V0KC0uNSwuNSwwKSxQcixvLExyLHIscyksUnUuc2V0KDAsMSksYT10LnJheS5pbnRlcnNlY3RUcmlhbmdsZShPYSxrYSxYcywhMSxXcyksYT09PW51bGwpKXJldHVybjtsZXQgbD10LnJheS5vcmlnaW4uZGlzdGFuY2VUbyhXcyk7bDx0Lm5lYXJ8fGw+dC5mYXJ8fGUucHVzaCh7ZGlzdGFuY2U6bCxwb2ludDpXcy5jbG9uZSgpLHV2OnJlLmdldFVWKFdzLE9hLFhzLGthLFVnLFJ1LEJnLG5ldyBLKSxmYWNlOm51bGwsb2JqZWN0OnRoaXN9KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHQuY2VudGVyIT09dm9pZCAwJiZ0aGlzLmNlbnRlci5jb3B5KHQuY2VudGVyKSx0aGlzLm1hdGVyaWFsPXQubWF0ZXJpYWwsdGhpc319OyR1LnByb3RvdHlwZS5pc1Nwcml0ZT0hMDtmdW5jdGlvbiBIYShuLHQsZSxpLHIscyl7RHIuc3ViVmVjdG9ycyhuLGUpLmFkZFNjYWxhciguNSkubXVsdGlwbHkoaSksciE9PXZvaWQgMD8ocXMueD1zKkRyLngtcipEci55LHFzLnk9cipEci54K3MqRHIueSk6cXMuY29weShEciksbi5jb3B5KHQpLG4ueCs9cXMueCxuLnkrPXFzLnksbi5hcHBseU1hdHJpeDQoQTApfXZhciBPZz1uZXcgVCxrZz1uZXcgV3QsSGc9bmV3IFd0LE5FPW5ldyBULFZnPW5ldyB3dCxkbD1jbGFzcyBleHRlbmRzIG9le2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IlNraW5uZWRNZXNoIix0aGlzLmJpbmRNb2RlPSJhdHRhY2hlZCIsdGhpcy5iaW5kTWF0cml4PW5ldyB3dCx0aGlzLmJpbmRNYXRyaXhJbnZlcnNlPW5ldyB3dH1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuYmluZE1vZGU9dC5iaW5kTW9kZSx0aGlzLmJpbmRNYXRyaXguY29weSh0LmJpbmRNYXRyaXgpLHRoaXMuYmluZE1hdHJpeEludmVyc2UuY29weSh0LmJpbmRNYXRyaXhJbnZlcnNlKSx0aGlzLnNrZWxldG9uPXQuc2tlbGV0b24sdGhpc31iaW5kKHQsZSl7dGhpcy5za2VsZXRvbj10LGU9PT12b2lkIDAmJih0aGlzLnVwZGF0ZU1hdHJpeFdvcmxkKCEwKSx0aGlzLnNrZWxldG9uLmNhbGN1bGF0ZUludmVyc2VzKCksZT10aGlzLm1hdHJpeFdvcmxkKSx0aGlzLmJpbmRNYXRyaXguY29weShlKSx0aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkoZSkuaW52ZXJ0KCl9cG9zZSgpe3RoaXMuc2tlbGV0b24ucG9zZSgpfW5vcm1hbGl6ZVNraW5XZWlnaHRzKCl7bGV0IHQ9bmV3IFd0LGU9dGhpcy5nZW9tZXRyeS5hdHRyaWJ1dGVzLnNraW5XZWlnaHQ7Zm9yKGxldCBpPTAscj1lLmNvdW50O2k8cjtpKyspe3QueD1lLmdldFgoaSksdC55PWUuZ2V0WShpKSx0Lno9ZS5nZXRaKGkpLHQudz1lLmdldFcoaSk7bGV0IHM9MS90Lm1hbmhhdHRhbkxlbmd0aCgpO3MhPT0xLzA/dC5tdWx0aXBseVNjYWxhcihzKTp0LnNldCgxLDAsMCwwKSxlLnNldFhZWlcoaSx0LngsdC55LHQueix0LncpfX11cGRhdGVNYXRyaXhXb3JsZCh0KXtzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KSx0aGlzLmJpbmRNb2RlPT09ImF0dGFjaGVkIj90aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCk6dGhpcy5iaW5kTW9kZT09PSJkZXRhY2hlZCI/dGhpcy5iaW5kTWF0cml4SW52ZXJzZS5jb3B5KHRoaXMuYmluZE1hdHJpeCkuaW52ZXJ0KCk6Y29uc29sZS53YXJuKCJUSFJFRS5Ta2lubmVkTWVzaDogVW5yZWNvZ25pemVkIGJpbmRNb2RlOiAiK3RoaXMuYmluZE1vZGUpfWJvbmVUcmFuc2Zvcm0odCxlKXtsZXQgaT10aGlzLnNrZWxldG9uLHI9dGhpcy5nZW9tZXRyeTtrZy5mcm9tQnVmZmVyQXR0cmlidXRlKHIuYXR0cmlidXRlcy5za2luSW5kZXgsdCksSGcuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLmF0dHJpYnV0ZXMuc2tpbldlaWdodCx0KSxPZy5jb3B5KGUpLmFwcGx5TWF0cml4NCh0aGlzLmJpbmRNYXRyaXgpLGUuc2V0KDAsMCwwKTtmb3IobGV0IHM9MDtzPDQ7cysrKXtsZXQgbz1IZy5nZXRDb21wb25lbnQocyk7aWYobyE9PTApe2xldCBhPWtnLmdldENvbXBvbmVudChzKTtWZy5tdWx0aXBseU1hdHJpY2VzKGkuYm9uZXNbYV0ubWF0cml4V29ybGQsaS5ib25lSW52ZXJzZXNbYV0pLGUuYWRkU2NhbGVkVmVjdG9yKE5FLmNvcHkoT2cpLmFwcGx5TWF0cml4NChWZyksbyl9fXJldHVybiBlLmFwcGx5TWF0cml4NCh0aGlzLmJpbmRNYXRyaXhJbnZlcnNlKX19O2RsLnByb3RvdHlwZS5pc1NraW5uZWRNZXNoPSEwO3ZhciBLdT1jbGFzcyBleHRlbmRzIGt0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnR5cGU9IkJvbmUifX07S3UucHJvdG90eXBlLmlzQm9uZT0hMDt2YXIgUXU9Y2xhc3MgZXh0ZW5kcyBhZXtjb25zdHJ1Y3Rvcih0PW51bGwsZT0xLGk9MSxyLHMsbyxhLGwsYz1mZSx1PWZlLGgsZil7c3VwZXIobnVsbCxvLGEsbCxjLHUscixzLGgsZiksdGhpcy5pbWFnZT17ZGF0YTp0LHdpZHRoOmUsaGVpZ2h0Oml9LHRoaXMubWFnRmlsdGVyPWMsdGhpcy5taW5GaWx0ZXI9dSx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMSx0aGlzLmZsaXBZPSExLHRoaXMudW5wYWNrQWxpZ25tZW50PTF9fTtRdS5wcm90b3R5cGUuaXNEYXRhVGV4dHVyZT0hMDt2YXIgcG89Y2xhc3MgZXh0ZW5kcyBRdHtjb25zdHJ1Y3Rvcih0LGUsaSxyPTEpe3R5cGVvZiBpPT0ibnVtYmVyIiYmKHI9aSxpPSExLGNvbnNvbGUuZXJyb3IoIlRIUkVFLkluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZTogVGhlIGNvbnN0cnVjdG9yIG5vdyBleHBlY3RzIG5vcm1hbGl6ZWQgYXMgdGhlIHRoaXJkIGFyZ3VtZW50LiIpKSxzdXBlcih0LGUsaSksdGhpcy5tZXNoUGVyQXR0cmlidXRlPXJ9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLm1lc2hQZXJBdHRyaWJ1dGU9dC5tZXNoUGVyQXR0cmlidXRlLHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQubWVzaFBlckF0dHJpYnV0ZT10aGlzLm1lc2hQZXJBdHRyaWJ1dGUsdC5pc0luc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZT0hMCx0fX07cG8ucHJvdG90eXBlLmlzSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlPSEwO3ZhciBHZz1uZXcgd3QsV2c9bmV3IHd0LFZhPVtdLFlzPW5ldyBvZSxqdT1jbGFzcyBleHRlbmRzIG9le2NvbnN0cnVjdG9yKHQsZSxpKXtzdXBlcih0LGUpLHRoaXMuaW5zdGFuY2VNYXRyaXg9bmV3IHBvKG5ldyBGbG9hdDMyQXJyYXkoaSoxNiksMTYpLHRoaXMuaW5zdGFuY2VDb2xvcj1udWxsLHRoaXMuY291bnQ9aSx0aGlzLmZydXN0dW1DdWxsZWQ9ITF9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmluc3RhbmNlTWF0cml4LmNvcHkodC5pbnN0YW5jZU1hdHJpeCksdC5pbnN0YW5jZUNvbG9yIT09bnVsbCYmKHRoaXMuaW5zdGFuY2VDb2xvcj10Lmluc3RhbmNlQ29sb3IuY2xvbmUoKSksdGhpcy5jb3VudD10LmNvdW50LHRoaXN9Z2V0Q29sb3JBdCh0LGUpe2UuZnJvbUFycmF5KHRoaXMuaW5zdGFuY2VDb2xvci5hcnJheSx0KjMpfWdldE1hdHJpeEF0KHQsZSl7ZS5mcm9tQXJyYXkodGhpcy5pbnN0YW5jZU1hdHJpeC5hcnJheSx0KjE2KX1yYXljYXN0KHQsZSl7bGV0IGk9dGhpcy5tYXRyaXhXb3JsZCxyPXRoaXMuY291bnQ7aWYoWXMuZ2VvbWV0cnk9dGhpcy5nZW9tZXRyeSxZcy5tYXRlcmlhbD10aGlzLm1hdGVyaWFsLFlzLm1hdGVyaWFsIT09dm9pZCAwKWZvcihsZXQgcz0wO3M8cjtzKyspe3RoaXMuZ2V0TWF0cml4QXQocyxHZyksV2cubXVsdGlwbHlNYXRyaWNlcyhpLEdnKSxZcy5tYXRyaXhXb3JsZD1XZyxZcy5yYXljYXN0KHQsVmEpO2ZvcihsZXQgbz0wLGE9VmEubGVuZ3RoO288YTtvKyspe2xldCBsPVZhW29dO2wuaW5zdGFuY2VJZD1zLGwub2JqZWN0PXRoaXMsZS5wdXNoKGwpfVZhLmxlbmd0aD0wfX1zZXRDb2xvckF0KHQsZSl7dGhpcy5pbnN0YW5jZUNvbG9yPT09bnVsbCYmKHRoaXMuaW5zdGFuY2VDb2xvcj1uZXcgcG8obmV3IEZsb2F0MzJBcnJheSh0aGlzLmluc3RhbmNlTWF0cml4LmNvdW50KjMpLDMpKSxlLnRvQXJyYXkodGhpcy5pbnN0YW5jZUNvbG9yLmFycmF5LHQqMyl9c2V0TWF0cml4QXQodCxlKXtlLnRvQXJyYXkodGhpcy5pbnN0YW5jZU1hdHJpeC5hcnJheSx0KjE2KX11cGRhdGVNb3JwaFRhcmdldHMoKXt9ZGlzcG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzcG9zZSJ9KX19O2p1LnByb3RvdHlwZS5pc0luc3RhbmNlZE1lc2g9ITA7dmFyIHpuPWNsYXNzIGV4dGVuZHMgeGV7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IkxpbmVCYXNpY01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBmdCgxNjc3NzIxNSksdGhpcy5saW5ld2lkdGg9MSx0aGlzLmxpbmVjYXA9InJvdW5kIix0aGlzLmxpbmVqb2luPSJyb3VuZCIsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5saW5ld2lkdGg9dC5saW5ld2lkdGgsdGhpcy5saW5lY2FwPXQubGluZWNhcCx0aGlzLmxpbmVqb2luPXQubGluZWpvaW4sdGhpc319O3puLnByb3RvdHlwZS5pc0xpbmVCYXNpY01hdGVyaWFsPSEwO3ZhciBxZz1uZXcgVCxYZz1uZXcgVCxZZz1uZXcgd3QsTHU9bmV3IG9pLEdhPW5ldyBzaSxtbz1jbGFzcyBleHRlbmRzIGt0e2NvbnN0cnVjdG9yKHQ9bmV3IEh0LGU9bmV3IHpuKXtzdXBlcigpLHRoaXMudHlwZT0iTGluZSIsdGhpcy5nZW9tZXRyeT10LHRoaXMubWF0ZXJpYWw9ZSx0aGlzLnVwZGF0ZU1vcnBoVGFyZ2V0cygpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXMuZ2VvbWV0cnk9dC5nZW9tZXRyeSx0aGlzfWNvbXB1dGVMaW5lRGlzdGFuY2VzKCl7bGV0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpaWYodC5pbmRleD09PW51bGwpe2xldCBlPXQuYXR0cmlidXRlcy5wb3NpdGlvbixpPVswXTtmb3IobGV0IHI9MSxzPWUuY291bnQ7cjxzO3IrKylxZy5mcm9tQnVmZmVyQXR0cmlidXRlKGUsci0xKSxYZy5mcm9tQnVmZmVyQXR0cmlidXRlKGUsciksaVtyXT1pW3ItMV0saVtyXSs9cWcuZGlzdGFuY2VUbyhYZyk7dC5zZXRBdHRyaWJ1dGUoImxpbmVEaXN0YW5jZSIsbmV3IGVlKGksMSkpfWVsc2UgY29uc29sZS53YXJuKCJUSFJFRS5MaW5lLmNvbXB1dGVMaW5lRGlzdGFuY2VzKCk6IENvbXB1dGF0aW9uIG9ubHkgcG9zc2libGUgd2l0aCBub24taW5kZXhlZCBCdWZmZXJHZW9tZXRyeS4iKTtlbHNlIHQuaXNHZW9tZXRyeSYmY29uc29sZS5lcnJvcigiVEhSRUUuTGluZS5jb21wdXRlTGluZURpc3RhbmNlcygpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIik7cmV0dXJuIHRoaXN9cmF5Y2FzdCh0LGUpe2xldCBpPXRoaXMuZ2VvbWV0cnkscj10aGlzLm1hdHJpeFdvcmxkLHM9dC5wYXJhbXMuTGluZS50aHJlc2hvbGQsbz1pLmRyYXdSYW5nZTtpZihpLmJvdW5kaW5nU3BoZXJlPT09bnVsbCYmaS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxHYS5jb3B5KGkuYm91bmRpbmdTcGhlcmUpLEdhLmFwcGx5TWF0cml4NChyKSxHYS5yYWRpdXMrPXMsdC5yYXkuaW50ZXJzZWN0c1NwaGVyZShHYSk9PT0hMSlyZXR1cm47WWcuY29weShyKS5pbnZlcnQoKSxMdS5jb3B5KHQucmF5KS5hcHBseU1hdHJpeDQoWWcpO2xldCBhPXMvKCh0aGlzLnNjYWxlLngrdGhpcy5zY2FsZS55K3RoaXMuc2NhbGUueikvMyksbD1hKmEsYz1uZXcgVCx1PW5ldyBULGg9bmV3IFQsZj1uZXcgVCxkPXRoaXMuaXNMaW5lU2VnbWVudHM/MjoxO2lmKGkuaXNCdWZmZXJHZW9tZXRyeSl7bGV0IGc9aS5pbmRleCx2PWkuYXR0cmlidXRlcy5wb3NpdGlvbjtpZihnIT09bnVsbCl7bGV0IG09TWF0aC5tYXgoMCxvLnN0YXJ0KSxwPU1hdGgubWluKGcuY291bnQsby5zdGFydCtvLmNvdW50KTtmb3IobGV0IGI9bSxfPXAtMTtiPF87Yis9ZCl7bGV0IFM9Zy5nZXRYKGIpLEw9Zy5nZXRYKGIrMSk7aWYoYy5mcm9tQnVmZmVyQXR0cmlidXRlKHYsUyksdS5mcm9tQnVmZmVyQXR0cmlidXRlKHYsTCksTHUuZGlzdGFuY2VTcVRvU2VnbWVudChjLHUsZixoKT5sKWNvbnRpbnVlO2YuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpO2xldCBIPXQucmF5Lm9yaWdpbi5kaXN0YW5jZVRvKGYpO0g8dC5uZWFyfHxIPnQuZmFyfHxlLnB1c2goe2Rpc3RhbmNlOkgscG9pbnQ6aC5jbG9uZSgpLmFwcGx5TWF0cml4NCh0aGlzLm1hdHJpeFdvcmxkKSxpbmRleDpiLGZhY2U6bnVsbCxmYWNlSW5kZXg6bnVsbCxvYmplY3Q6dGhpc30pfX1lbHNle2xldCBtPU1hdGgubWF4KDAsby5zdGFydCkscD1NYXRoLm1pbih2LmNvdW50LG8uc3RhcnQrby5jb3VudCk7Zm9yKGxldCBiPW0sXz1wLTE7YjxfO2IrPWQpe2lmKGMuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh2LGIpLHUuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh2LGIrMSksTHUuZGlzdGFuY2VTcVRvU2VnbWVudChjLHUsZixoKT5sKWNvbnRpbnVlO2YuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpO2xldCBMPXQucmF5Lm9yaWdpbi5kaXN0YW5jZVRvKGYpO0w8dC5uZWFyfHxMPnQuZmFyfHxlLnB1c2goe2Rpc3RhbmNlOkwscG9pbnQ6aC5jbG9uZSgpLmFwcGx5TWF0cml4NCh0aGlzLm1hdHJpeFdvcmxkKSxpbmRleDpiLGZhY2U6bnVsbCxmYWNlSW5kZXg6bnVsbCxvYmplY3Q6dGhpc30pfX19ZWxzZSBpLmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkxpbmUucmF5Y2FzdCgpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9dXBkYXRlTW9ycGhUYXJnZXRzKCl7bGV0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpe2xldCBlPXQubW9ycGhBdHRyaWJ1dGVzLGk9T2JqZWN0LmtleXMoZSk7aWYoaS5sZW5ndGg+MCl7bGV0IHI9ZVtpWzBdXTtpZihyIT09dm9pZCAwKXt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcz1bXSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeT17fTtmb3IobGV0IHM9MCxvPXIubGVuZ3RoO3M8bztzKyspe2xldCBhPXJbc10ubmFtZXx8U3RyaW5nKHMpO3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzLnB1c2goMCksdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnlbYV09c319fX1lbHNle2xldCBlPXQubW9ycGhUYXJnZXRzO2UhPT12b2lkIDAmJmUubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkxpbmUudXBkYXRlTW9ycGhUYXJnZXRzKCkgZG9lcyBub3Qgc3VwcG9ydCBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9fX07bW8ucHJvdG90eXBlLmlzTGluZT0hMDt2YXIgWmc9bmV3IFQsSmc9bmV3IFQsZ289Y2xhc3MgZXh0ZW5kcyBtb3tjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy50eXBlPSJMaW5lU2VnbWVudHMifWNvbXB1dGVMaW5lRGlzdGFuY2VzKCl7bGV0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpaWYodC5pbmRleD09PW51bGwpe2xldCBlPXQuYXR0cmlidXRlcy5wb3NpdGlvbixpPVtdO2ZvcihsZXQgcj0wLHM9ZS5jb3VudDtyPHM7cis9MilaZy5mcm9tQnVmZmVyQXR0cmlidXRlKGUsciksSmcuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHIrMSksaVtyXT1yPT09MD8wOmlbci0xXSxpW3IrMV09aVtyXStaZy5kaXN0YW5jZVRvKEpnKTt0LnNldEF0dHJpYnV0ZSgibGluZURpc3RhbmNlIixuZXcgZWUoaSwxKSl9ZWxzZSBjb25zb2xlLndhcm4oIlRIUkVFLkxpbmVTZWdtZW50cy5jb21wdXRlTGluZURpc3RhbmNlcygpOiBDb21wdXRhdGlvbiBvbmx5IHBvc3NpYmxlIHdpdGggbm9uLWluZGV4ZWQgQnVmZmVyR2VvbWV0cnkuIik7ZWxzZSB0LmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkxpbmVTZWdtZW50cy5jb21wdXRlTGluZURpc3RhbmNlcygpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIik7cmV0dXJuIHRoaXN9fTtnby5wcm90b3R5cGUuaXNMaW5lU2VnbWVudHM9ITA7dmFyIHRoPWNsYXNzIGV4dGVuZHMgbW97Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iTGluZUxvb3AifX07dGgucHJvdG90eXBlLmlzTGluZUxvb3A9ITA7dmFyIHBsPWNsYXNzIGV4dGVuZHMgeGV7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlBvaW50c01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBmdCgxNjc3NzIxNSksdGhpcy5tYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5zaXplPTEsdGhpcy5zaXplQXR0ZW51YXRpb249ITAsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXA9dC5tYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuc2l6ZT10LnNpemUsdGhpcy5zaXplQXR0ZW51YXRpb249dC5zaXplQXR0ZW51YXRpb24sdGhpc319O3BsLnByb3RvdHlwZS5pc1BvaW50c01hdGVyaWFsPSEwO3ZhciAkZz1uZXcgd3QsZWg9bmV3IG9pLFdhPW5ldyBzaSxxYT1uZXcgVCxuaD1jbGFzcyBleHRlbmRzIGt0e2NvbnN0cnVjdG9yKHQ9bmV3IEh0LGU9bmV3IHBsKXtzdXBlcigpLHRoaXMudHlwZT0iUG9pbnRzIix0aGlzLmdlb21ldHJ5PXQsdGhpcy5tYXRlcmlhbD1lLHRoaXMudXBkYXRlTW9ycGhUYXJnZXRzKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLm1hdGVyaWFsPXQubWF0ZXJpYWwsdGhpcy5nZW9tZXRyeT10Lmdlb21ldHJ5LHRoaXN9cmF5Y2FzdCh0LGUpe2xldCBpPXRoaXMuZ2VvbWV0cnkscj10aGlzLm1hdHJpeFdvcmxkLHM9dC5wYXJhbXMuUG9pbnRzLnRocmVzaG9sZCxvPWkuZHJhd1JhbmdlO2lmKGkuYm91bmRpbmdTcGhlcmU9PT1udWxsJiZpLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLFdhLmNvcHkoaS5ib3VuZGluZ1NwaGVyZSksV2EuYXBwbHlNYXRyaXg0KHIpLFdhLnJhZGl1cys9cyx0LnJheS5pbnRlcnNlY3RzU3BoZXJlKFdhKT09PSExKXJldHVybjskZy5jb3B5KHIpLmludmVydCgpLGVoLmNvcHkodC5yYXkpLmFwcGx5TWF0cml4NCgkZyk7bGV0IGE9cy8oKHRoaXMuc2NhbGUueCt0aGlzLnNjYWxlLnkrdGhpcy5zY2FsZS56KS8zKSxsPWEqYTtpZihpLmlzQnVmZmVyR2VvbWV0cnkpe2xldCBjPWkuaW5kZXgsaD1pLmF0dHJpYnV0ZXMucG9zaXRpb247aWYoYyE9PW51bGwpe2xldCBmPU1hdGgubWF4KDAsby5zdGFydCksZD1NYXRoLm1pbihjLmNvdW50LG8uc3RhcnQrby5jb3VudCk7Zm9yKGxldCBnPWYseD1kO2c8eDtnKyspe2xldCB2PWMuZ2V0WChnKTtxYS5mcm9tQnVmZmVyQXR0cmlidXRlKGgsdiksS2cocWEsdixsLHIsdCxlLHRoaXMpfX1lbHNle2xldCBmPU1hdGgubWF4KDAsby5zdGFydCksZD1NYXRoLm1pbihoLmNvdW50LG8uc3RhcnQrby5jb3VudCk7Zm9yKGxldCBnPWYseD1kO2c8eDtnKyspcWEuZnJvbUJ1ZmZlckF0dHJpYnV0ZShoLGcpLEtnKHFhLGcsbCxyLHQsZSx0aGlzKX19ZWxzZSBjb25zb2xlLmVycm9yKCJUSFJFRS5Qb2ludHMucmF5Y2FzdCgpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9dXBkYXRlTW9ycGhUYXJnZXRzKCl7bGV0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpe2xldCBlPXQubW9ycGhBdHRyaWJ1dGVzLGk9T2JqZWN0LmtleXMoZSk7aWYoaS5sZW5ndGg+MCl7bGV0IHI9ZVtpWzBdXTtpZihyIT09dm9pZCAwKXt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcz1bXSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeT17fTtmb3IobGV0IHM9MCxvPXIubGVuZ3RoO3M8bztzKyspe2xldCBhPXJbc10ubmFtZXx8U3RyaW5nKHMpO3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzLnB1c2goMCksdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnlbYV09c319fX1lbHNle2xldCBlPXQubW9ycGhUYXJnZXRzO2UhPT12b2lkIDAmJmUubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLlBvaW50cy51cGRhdGVNb3JwaFRhcmdldHMoKSBkb2VzIG5vdCBzdXBwb3J0IFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKX19fTtuaC5wcm90b3R5cGUuaXNQb2ludHM9ITA7ZnVuY3Rpb24gS2cobix0LGUsaSxyLHMsbyl7bGV0IGE9ZWguZGlzdGFuY2VTcVRvUG9pbnQobik7aWYoYTxlKXtsZXQgbD1uZXcgVDtlaC5jbG9zZXN0UG9pbnRUb1BvaW50KG4sbCksbC5hcHBseU1hdHJpeDQoaSk7bGV0IGM9ci5yYXkub3JpZ2luLmRpc3RhbmNlVG8obCk7aWYoYzxyLm5lYXJ8fGM+ci5mYXIpcmV0dXJuO3MucHVzaCh7ZGlzdGFuY2U6YyxkaXN0YW5jZVRvUmF5Ok1hdGguc3FydChhKSxwb2ludDpsLGluZGV4OnQsZmFjZTpudWxsLG9iamVjdDpvfSl9fXZhciBpaD1jbGFzcyBleHRlbmRzIGFle2NvbnN0cnVjdG9yKHQsZSxpLHIscyxvLGEsbCxjKXtzdXBlcih0LGUsaSxyLHMsbyxhLGwsYyksdGhpcy5taW5GaWx0ZXI9byE9PXZvaWQgMD9vOmJlLHRoaXMubWFnRmlsdGVyPXMhPT12b2lkIDA/czpiZSx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMTtsZXQgdT10aGlzO2Z1bmN0aW9uIGgoKXt1Lm5lZWRzVXBkYXRlPSEwLHQucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhoKX0icmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayJpbiB0JiZ0LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soaCl9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5pbWFnZSkuY29weSh0aGlzKX11cGRhdGUoKXtsZXQgdD10aGlzLmltYWdlOyJyZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrImluIHQ9PT0hMSYmdC5yZWFkeVN0YXRlPj10LkhBVkVfQ1VSUkVOVF9EQVRBJiYodGhpcy5uZWVkc1VwZGF0ZT0hMCl9fTtpaC5wcm90b3R5cGUuaXNWaWRlb1RleHR1cmU9ITA7dmFyIHJoPWNsYXNzIGV4dGVuZHMgYWV7Y29uc3RydWN0b3IodCxlLGkpe3N1cGVyKHt3aWR0aDp0LGhlaWdodDplfSksdGhpcy5mb3JtYXQ9aSx0aGlzLm1hZ0ZpbHRlcj1mZSx0aGlzLm1pbkZpbHRlcj1mZSx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMSx0aGlzLm5lZWRzVXBkYXRlPSEwfX07cmgucHJvdG90eXBlLmlzRnJhbWVidWZmZXJUZXh0dXJlPSEwO3ZhciBzaD1jbGFzcyBleHRlbmRzIGFle2NvbnN0cnVjdG9yKHQsZSxpLHIscyxvLGEsbCxjLHUsaCxmKXtzdXBlcihudWxsLG8sYSxsLGMsdSxyLHMsaCxmKSx0aGlzLmltYWdlPXt3aWR0aDplLGhlaWdodDppfSx0aGlzLm1pcG1hcHM9dCx0aGlzLmZsaXBZPSExLHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSExfX07c2gucHJvdG90eXBlLmlzQ29tcHJlc3NlZFRleHR1cmU9ITA7dmFyIG9oPWNsYXNzIGV4dGVuZHMgYWV7Y29uc3RydWN0b3IodCxlLGkscixzLG8sYSxsLGMpe3N1cGVyKHQsZSxpLHIscyxvLGEsbCxjKSx0aGlzLm5lZWRzVXBkYXRlPSEwfX07b2gucHJvdG90eXBlLmlzQ2FudmFzVGV4dHVyZT0hMDt2YXIgWnI9Y2xhc3MgZXh0ZW5kcyBIdHtjb25zdHJ1Y3Rvcih0PTEsZT04LGk9MCxyPU1hdGguUEkqMil7c3VwZXIoKSx0aGlzLnR5cGU9IkNpcmNsZUdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LHNlZ21lbnRzOmUsdGhldGFTdGFydDppLHRoZXRhTGVuZ3RoOnJ9LGU9TWF0aC5tYXgoMyxlKTtsZXQgcz1bXSxvPVtdLGE9W10sbD1bXSxjPW5ldyBULHU9bmV3IEs7by5wdXNoKDAsMCwwKSxhLnB1c2goMCwwLDEpLGwucHVzaCguNSwuNSk7Zm9yKGxldCBoPTAsZj0zO2g8PWU7aCsrLGYrPTMpe2xldCBkPWkraC9lKnI7Yy54PXQqTWF0aC5jb3MoZCksYy55PXQqTWF0aC5zaW4oZCksby5wdXNoKGMueCxjLnksYy56KSxhLnB1c2goMCwwLDEpLHUueD0ob1tmXS90KzEpLzIsdS55PShvW2YrMV0vdCsxKS8yLGwucHVzaCh1LngsdS55KX1mb3IobGV0IGg9MTtoPD1lO2grKylzLnB1c2goaCxoKzEsMCk7dGhpcy5zZXRJbmRleChzKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBlZShvLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgZWUoYSwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgZWUobCwyKSl9c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgWnIodC5yYWRpdXMsdC5zZWdtZW50cyx0LnRoZXRhU3RhcnQsdC50aGV0YUxlbmd0aCl9fTt2YXIgU2s9bmV3IFQsRWs9bmV3IFQsVGs9bmV3IFQsQWs9bmV3IHJlO3ZhciBGZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMudHlwZT0iQ3VydmUiLHRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zPTIwMH1nZXRQb2ludCgpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkN1cnZlOiAuZ2V0UG9pbnQoKSBub3QgaW1wbGVtZW50ZWQuIiksbnVsbH1nZXRQb2ludEF0KHQsZSl7bGV0IGk9dGhpcy5nZXRVdG9UbWFwcGluZyh0KTtyZXR1cm4gdGhpcy5nZXRQb2ludChpLGUpfWdldFBvaW50cyh0PTUpe2xldCBlPVtdO2ZvcihsZXQgaT0wO2k8PXQ7aSsrKWUucHVzaCh0aGlzLmdldFBvaW50KGkvdCkpO3JldHVybiBlfWdldFNwYWNlZFBvaW50cyh0PTUpe2xldCBlPVtdO2ZvcihsZXQgaT0wO2k8PXQ7aSsrKWUucHVzaCh0aGlzLmdldFBvaW50QXQoaS90KSk7cmV0dXJuIGV9Z2V0TGVuZ3RoKCl7bGV0IHQ9dGhpcy5nZXRMZW5ndGhzKCk7cmV0dXJuIHRbdC5sZW5ndGgtMV19Z2V0TGVuZ3Rocyh0PXRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zKXtpZih0aGlzLmNhY2hlQXJjTGVuZ3RocyYmdGhpcy5jYWNoZUFyY0xlbmd0aHMubGVuZ3RoPT09dCsxJiYhdGhpcy5uZWVkc1VwZGF0ZSlyZXR1cm4gdGhpcy5jYWNoZUFyY0xlbmd0aHM7dGhpcy5uZWVkc1VwZGF0ZT0hMTtsZXQgZT1bXSxpLHI9dGhpcy5nZXRQb2ludCgwKSxzPTA7ZS5wdXNoKDApO2ZvcihsZXQgbz0xO288PXQ7bysrKWk9dGhpcy5nZXRQb2ludChvL3QpLHMrPWkuZGlzdGFuY2VUbyhyKSxlLnB1c2gocykscj1pO3JldHVybiB0aGlzLmNhY2hlQXJjTGVuZ3Rocz1lLGV9dXBkYXRlQXJjTGVuZ3Rocygpe3RoaXMubmVlZHNVcGRhdGU9ITAsdGhpcy5nZXRMZW5ndGhzKCl9Z2V0VXRvVG1hcHBpbmcodCxlKXtsZXQgaT10aGlzLmdldExlbmd0aHMoKSxyPTAscz1pLmxlbmd0aCxvO2U/bz1lOm89dCppW3MtMV07bGV0IGE9MCxsPXMtMSxjO2Zvcig7YTw9bDspaWYocj1NYXRoLmZsb29yKGErKGwtYSkvMiksYz1pW3JdLW8sYzwwKWE9cisxO2Vsc2UgaWYoYz4wKWw9ci0xO2Vsc2V7bD1yO2JyZWFrfWlmKHI9bCxpW3JdPT09bylyZXR1cm4gci8ocy0xKTtsZXQgdT1pW3JdLGY9aVtyKzFdLXUsZD0oby11KS9mO3JldHVybihyK2QpLyhzLTEpfWdldFRhbmdlbnQodCxlKXtsZXQgcj10LTFlLTQscz10KzFlLTQ7cjwwJiYocj0wKSxzPjEmJihzPTEpO2xldCBvPXRoaXMuZ2V0UG9pbnQociksYT10aGlzLmdldFBvaW50KHMpLGw9ZXx8KG8uaXNWZWN0b3IyP25ldyBLOm5ldyBUKTtyZXR1cm4gbC5jb3B5KGEpLnN1YihvKS5ub3JtYWxpemUoKSxsfWdldFRhbmdlbnRBdCh0LGUpe2xldCBpPXRoaXMuZ2V0VXRvVG1hcHBpbmcodCk7cmV0dXJuIHRoaXMuZ2V0VGFuZ2VudChpLGUpfWNvbXB1dGVGcmVuZXRGcmFtZXModCxlKXtsZXQgaT1uZXcgVCxyPVtdLHM9W10sbz1bXSxhPW5ldyBULGw9bmV3IHd0O2ZvcihsZXQgZD0wO2Q8PXQ7ZCsrKXtsZXQgZz1kL3Q7cltkXT10aGlzLmdldFRhbmdlbnRBdChnLG5ldyBUKX1zWzBdPW5ldyBULG9bMF09bmV3IFQ7bGV0IGM9TnVtYmVyLk1BWF9WQUxVRSx1PU1hdGguYWJzKHJbMF0ueCksaD1NYXRoLmFicyhyWzBdLnkpLGY9TWF0aC5hYnMoclswXS56KTt1PD1jJiYoYz11LGkuc2V0KDEsMCwwKSksaDw9YyYmKGM9aCxpLnNldCgwLDEsMCkpLGY8PWMmJmkuc2V0KDAsMCwxKSxhLmNyb3NzVmVjdG9ycyhyWzBdLGkpLm5vcm1hbGl6ZSgpLHNbMF0uY3Jvc3NWZWN0b3JzKHJbMF0sYSksb1swXS5jcm9zc1ZlY3RvcnMoclswXSxzWzBdKTtmb3IobGV0IGQ9MTtkPD10O2QrKyl7aWYoc1tkXT1zW2QtMV0uY2xvbmUoKSxvW2RdPW9bZC0xXS5jbG9uZSgpLGEuY3Jvc3NWZWN0b3JzKHJbZC0xXSxyW2RdKSxhLmxlbmd0aCgpPk51bWJlci5FUFNJTE9OKXthLm5vcm1hbGl6ZSgpO2xldCBnPU1hdGguYWNvcyhJZShyW2QtMV0uZG90KHJbZF0pLC0xLDEpKTtzW2RdLmFwcGx5TWF0cml4NChsLm1ha2VSb3RhdGlvbkF4aXMoYSxnKSl9b1tkXS5jcm9zc1ZlY3RvcnMocltkXSxzW2RdKX1pZihlPT09ITApe2xldCBkPU1hdGguYWNvcyhJZShzWzBdLmRvdChzW3RdKSwtMSwxKSk7ZC89dCxyWzBdLmRvdChhLmNyb3NzVmVjdG9ycyhzWzBdLHNbdF0pKT4wJiYoZD0tZCk7Zm9yKGxldCBnPTE7Zzw9dDtnKyspc1tnXS5hcHBseU1hdHJpeDQobC5tYWtlUm90YXRpb25BeGlzKHJbZ10sZCpnKSksb1tnXS5jcm9zc1ZlY3RvcnMocltnXSxzW2ddKX1yZXR1cm57dGFuZ2VudHM6cixub3JtYWxzOnMsYmlub3JtYWxzOm99fWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLmFyY0xlbmd0aERpdmlzaW9ucz10LmFyY0xlbmd0aERpdmlzaW9ucyx0aGlzfXRvSlNPTigpe2xldCB0PXttZXRhZGF0YTp7dmVyc2lvbjo0LjUsdHlwZToiQ3VydmUiLGdlbmVyYXRvcjoiQ3VydmUudG9KU09OIn19O3JldHVybiB0LmFyY0xlbmd0aERpdmlzaW9ucz10aGlzLmFyY0xlbmd0aERpdmlzaW9ucyx0LnR5cGU9dGhpcy50eXBlLHR9ZnJvbUpTT04odCl7cmV0dXJuIHRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zPXQuYXJjTGVuZ3RoRGl2aXNpb25zLHRoaXN9fSxKcj1jbGFzcyBleHRlbmRzIEZle2NvbnN0cnVjdG9yKHQ9MCxlPTAsaT0xLHI9MSxzPTAsbz1NYXRoLlBJKjIsYT0hMSxsPTApe3N1cGVyKCksdGhpcy50eXBlPSJFbGxpcHNlQ3VydmUiLHRoaXMuYVg9dCx0aGlzLmFZPWUsdGhpcy54UmFkaXVzPWksdGhpcy55UmFkaXVzPXIsdGhpcy5hU3RhcnRBbmdsZT1zLHRoaXMuYUVuZEFuZ2xlPW8sdGhpcy5hQ2xvY2t3aXNlPWEsdGhpcy5hUm90YXRpb249bH1nZXRQb2ludCh0LGUpe2xldCBpPWV8fG5ldyBLLHI9TWF0aC5QSSoyLHM9dGhpcy5hRW5kQW5nbGUtdGhpcy5hU3RhcnRBbmdsZSxvPU1hdGguYWJzKHMpPE51bWJlci5FUFNJTE9OO2Zvcig7czwwOylzKz1yO2Zvcig7cz5yOylzLT1yO3M8TnVtYmVyLkVQU0lMT04mJihvP3M9MDpzPXIpLHRoaXMuYUNsb2Nrd2lzZT09PSEwJiYhbyYmKHM9PT1yP3M9LXI6cz1zLXIpO2xldCBhPXRoaXMuYVN0YXJ0QW5nbGUrdCpzLGw9dGhpcy5hWCt0aGlzLnhSYWRpdXMqTWF0aC5jb3MoYSksYz10aGlzLmFZK3RoaXMueVJhZGl1cypNYXRoLnNpbihhKTtpZih0aGlzLmFSb3RhdGlvbiE9PTApe2xldCB1PU1hdGguY29zKHRoaXMuYVJvdGF0aW9uKSxoPU1hdGguc2luKHRoaXMuYVJvdGF0aW9uKSxmPWwtdGhpcy5hWCxkPWMtdGhpcy5hWTtsPWYqdS1kKmgrdGhpcy5hWCxjPWYqaCtkKnUrdGhpcy5hWX1yZXR1cm4gaS5zZXQobCxjKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuYVg9dC5hWCx0aGlzLmFZPXQuYVksdGhpcy54UmFkaXVzPXQueFJhZGl1cyx0aGlzLnlSYWRpdXM9dC55UmFkaXVzLHRoaXMuYVN0YXJ0QW5nbGU9dC5hU3RhcnRBbmdsZSx0aGlzLmFFbmRBbmdsZT10LmFFbmRBbmdsZSx0aGlzLmFDbG9ja3dpc2U9dC5hQ2xvY2t3aXNlLHRoaXMuYVJvdGF0aW9uPXQuYVJvdGF0aW9uLHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQuYVg9dGhpcy5hWCx0LmFZPXRoaXMuYVksdC54UmFkaXVzPXRoaXMueFJhZGl1cyx0LnlSYWRpdXM9dGhpcy55UmFkaXVzLHQuYVN0YXJ0QW5nbGU9dGhpcy5hU3RhcnRBbmdsZSx0LmFFbmRBbmdsZT10aGlzLmFFbmRBbmdsZSx0LmFDbG9ja3dpc2U9dGhpcy5hQ2xvY2t3aXNlLHQuYVJvdGF0aW9uPXRoaXMuYVJvdGF0aW9uLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMuYVg9dC5hWCx0aGlzLmFZPXQuYVksdGhpcy54UmFkaXVzPXQueFJhZGl1cyx0aGlzLnlSYWRpdXM9dC55UmFkaXVzLHRoaXMuYVN0YXJ0QW5nbGU9dC5hU3RhcnRBbmdsZSx0aGlzLmFFbmRBbmdsZT10LmFFbmRBbmdsZSx0aGlzLmFDbG9ja3dpc2U9dC5hQ2xvY2t3aXNlLHRoaXMuYVJvdGF0aW9uPXQuYVJvdGF0aW9uLHRoaXN9fTtKci5wcm90b3R5cGUuaXNFbGxpcHNlQ3VydmU9ITA7dmFyIG1sPWNsYXNzIGV4dGVuZHMgSnJ7Y29uc3RydWN0b3IodCxlLGkscixzLG8pe3N1cGVyKHQsZSxpLGkscixzLG8pLHRoaXMudHlwZT0iQXJjQ3VydmUifX07bWwucHJvdG90eXBlLmlzQXJjQ3VydmU9ITA7ZnVuY3Rpb24gdGYoKXtsZXQgbj0wLHQ9MCxlPTAsaT0wO2Z1bmN0aW9uIHIocyxvLGEsbCl7bj1zLHQ9YSxlPS0zKnMrMypvLTIqYS1sLGk9MipzLTIqbythK2x9cmV0dXJue2luaXRDYXRtdWxsUm9tOmZ1bmN0aW9uKHMsbyxhLGwsYyl7cihvLGEsYyooYS1zKSxjKihsLW8pKX0saW5pdE5vbnVuaWZvcm1DYXRtdWxsUm9tOmZ1bmN0aW9uKHMsbyxhLGwsYyx1LGgpe2xldCBmPShvLXMpL2MtKGEtcykvKGMrdSkrKGEtbykvdSxkPShhLW8pL3UtKGwtbykvKHUraCkrKGwtYSkvaDtmKj11LGQqPXUscihvLGEsZixkKX0sY2FsYzpmdW5jdGlvbihzKXtsZXQgbz1zKnMsYT1vKnM7cmV0dXJuIG4rdCpzK2UqbytpKmF9fX12YXIgWGE9bmV3IFQsUHU9bmV3IHRmLER1PW5ldyB0ZixJdT1uZXcgdGYsZ2w9Y2xhc3MgZXh0ZW5kcyBGZXtjb25zdHJ1Y3Rvcih0PVtdLGU9ITEsaT0iY2VudHJpcGV0YWwiLHI9LjUpe3N1cGVyKCksdGhpcy50eXBlPSJDYXRtdWxsUm9tQ3VydmUzIix0aGlzLnBvaW50cz10LHRoaXMuY2xvc2VkPWUsdGhpcy5jdXJ2ZVR5cGU9aSx0aGlzLnRlbnNpb249cn1nZXRQb2ludCh0LGU9bmV3IFQpe2xldCBpPWUscj10aGlzLnBvaW50cyxzPXIubGVuZ3RoLG89KHMtKHRoaXMuY2xvc2VkPzA6MSkpKnQsYT1NYXRoLmZsb29yKG8pLGw9by1hO3RoaXMuY2xvc2VkP2ErPWE+MD8wOihNYXRoLmZsb29yKE1hdGguYWJzKGEpL3MpKzEpKnM6bD09PTAmJmE9PT1zLTEmJihhPXMtMixsPTEpO2xldCBjLHU7dGhpcy5jbG9zZWR8fGE+MD9jPXJbKGEtMSklc106KFhhLnN1YlZlY3RvcnMoclswXSxyWzFdKS5hZGQoclswXSksYz1YYSk7bGV0IGg9clthJXNdLGY9clsoYSsxKSVzXTtpZih0aGlzLmNsb3NlZHx8YSsyPHM/dT1yWyhhKzIpJXNdOihYYS5zdWJWZWN0b3JzKHJbcy0xXSxyW3MtMl0pLmFkZChyW3MtMV0pLHU9WGEpLHRoaXMuY3VydmVUeXBlPT09ImNlbnRyaXBldGFsInx8dGhpcy5jdXJ2ZVR5cGU9PT0iY2hvcmRhbCIpe2xldCBkPXRoaXMuY3VydmVUeXBlPT09ImNob3JkYWwiPy41Oi4yNSxnPU1hdGgucG93KGMuZGlzdGFuY2VUb1NxdWFyZWQoaCksZCkseD1NYXRoLnBvdyhoLmRpc3RhbmNlVG9TcXVhcmVkKGYpLGQpLHY9TWF0aC5wb3coZi5kaXN0YW5jZVRvU3F1YXJlZCh1KSxkKTt4PDFlLTQmJih4PTEpLGc8MWUtNCYmKGc9eCksdjwxZS00JiYodj14KSxQdS5pbml0Tm9udW5pZm9ybUNhdG11bGxSb20oYy54LGgueCxmLngsdS54LGcseCx2KSxEdS5pbml0Tm9udW5pZm9ybUNhdG11bGxSb20oYy55LGgueSxmLnksdS55LGcseCx2KSxJdS5pbml0Tm9udW5pZm9ybUNhdG11bGxSb20oYy56LGgueixmLnosdS56LGcseCx2KX1lbHNlIHRoaXMuY3VydmVUeXBlPT09ImNhdG11bGxyb20iJiYoUHUuaW5pdENhdG11bGxSb20oYy54LGgueCxmLngsdS54LHRoaXMudGVuc2lvbiksRHUuaW5pdENhdG11bGxSb20oYy55LGgueSxmLnksdS55LHRoaXMudGVuc2lvbiksSXUuaW5pdENhdG11bGxSb20oYy56LGgueixmLnosdS56LHRoaXMudGVuc2lvbikpO3JldHVybiBpLnNldChQdS5jYWxjKGwpLER1LmNhbGMobCksSXUuY2FsYyhsKSksaX1jb3B5KHQpe3N1cGVyLmNvcHkodCksdGhpcy5wb2ludHM9W107Zm9yKGxldCBlPTAsaT10LnBvaW50cy5sZW5ndGg7ZTxpO2UrKyl7bGV0IHI9dC5wb2ludHNbZV07dGhpcy5wb2ludHMucHVzaChyLmNsb25lKCkpfXJldHVybiB0aGlzLmNsb3NlZD10LmNsb3NlZCx0aGlzLmN1cnZlVHlwZT10LmN1cnZlVHlwZSx0aGlzLnRlbnNpb249dC50ZW5zaW9uLHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7dC5wb2ludHM9W107Zm9yKGxldCBlPTAsaT10aGlzLnBvaW50cy5sZW5ndGg7ZTxpO2UrKyl7bGV0IHI9dGhpcy5wb2ludHNbZV07dC5wb2ludHMucHVzaChyLnRvQXJyYXkoKSl9cmV0dXJuIHQuY2xvc2VkPXRoaXMuY2xvc2VkLHQuY3VydmVUeXBlPXRoaXMuY3VydmVUeXBlLHQudGVuc2lvbj10aGlzLnRlbnNpb24sdH1mcm9tSlNPTih0KXtzdXBlci5mcm9tSlNPTih0KSx0aGlzLnBvaW50cz1bXTtmb3IobGV0IGU9MCxpPXQucG9pbnRzLmxlbmd0aDtlPGk7ZSsrKXtsZXQgcj10LnBvaW50c1tlXTt0aGlzLnBvaW50cy5wdXNoKG5ldyBUKCkuZnJvbUFycmF5KHIpKX1yZXR1cm4gdGhpcy5jbG9zZWQ9dC5jbG9zZWQsdGhpcy5jdXJ2ZVR5cGU9dC5jdXJ2ZVR5cGUsdGhpcy50ZW5zaW9uPXQudGVuc2lvbix0aGlzfX07Z2wucHJvdG90eXBlLmlzQ2F0bXVsbFJvbUN1cnZlMz0hMDtmdW5jdGlvbiBRZyhuLHQsZSxpLHIpe2xldCBzPShpLXQpKi41LG89KHItZSkqLjUsYT1uKm4sbD1uKmE7cmV0dXJuKDIqZS0yKmkrcytvKSpsKygtMyplKzMqaS0yKnMtbykqYStzKm4rZX1mdW5jdGlvbiBGRShuLHQpe2xldCBlPTEtbjtyZXR1cm4gZSplKnR9ZnVuY3Rpb24gekUobix0KXtyZXR1cm4gMiooMS1uKSpuKnR9ZnVuY3Rpb24gVUUobix0KXtyZXR1cm4gbipuKnR9ZnVuY3Rpb24ganMobix0LGUsaSl7cmV0dXJuIEZFKG4sdCkrekUobixlKStVRShuLGkpfWZ1bmN0aW9uIEJFKG4sdCl7bGV0IGU9MS1uO3JldHVybiBlKmUqZSp0fWZ1bmN0aW9uIE9FKG4sdCl7bGV0IGU9MS1uO3JldHVybiAzKmUqZSpuKnR9ZnVuY3Rpb24ga0Uobix0KXtyZXR1cm4gMyooMS1uKSpuKm4qdH1mdW5jdGlvbiBIRShuLHQpe3JldHVybiBuKm4qbip0fWZ1bmN0aW9uIHRvKG4sdCxlLGkscil7cmV0dXJuIEJFKG4sdCkrT0UobixlKStrRShuLGkpK0hFKG4scil9dmFyIHhvPWNsYXNzIGV4dGVuZHMgRmV7Y29uc3RydWN0b3IodD1uZXcgSyxlPW5ldyBLLGk9bmV3IEsscj1uZXcgSyl7c3VwZXIoKSx0aGlzLnR5cGU9IkN1YmljQmV6aWVyQ3VydmUiLHRoaXMudjA9dCx0aGlzLnYxPWUsdGhpcy52Mj1pLHRoaXMudjM9cn1nZXRQb2ludCh0LGU9bmV3IEspe2xldCBpPWUscj10aGlzLnYwLHM9dGhpcy52MSxvPXRoaXMudjIsYT10aGlzLnYzO3JldHVybiBpLnNldCh0byh0LHIueCxzLngsby54LGEueCksdG8odCxyLnkscy55LG8ueSxhLnkpKSxpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MC5jb3B5KHQudjApLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpcy52My5jb3B5KHQudjMpLHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQudjA9dGhpcy52MC50b0FycmF5KCksdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHQudjM9dGhpcy52My50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy52MC5mcm9tQXJyYXkodC52MCksdGhpcy52MS5mcm9tQXJyYXkodC52MSksdGhpcy52Mi5mcm9tQXJyYXkodC52MiksdGhpcy52My5mcm9tQXJyYXkodC52MyksdGhpc319O3hvLnByb3RvdHlwZS5pc0N1YmljQmV6aWVyQ3VydmU9ITA7dmFyIHhsPWNsYXNzIGV4dGVuZHMgRmV7Y29uc3RydWN0b3IodD1uZXcgVCxlPW5ldyBULGk9bmV3IFQscj1uZXcgVCl7c3VwZXIoKSx0aGlzLnR5cGU9IkN1YmljQmV6aWVyQ3VydmUzIix0aGlzLnYwPXQsdGhpcy52MT1lLHRoaXMudjI9aSx0aGlzLnYzPXJ9Z2V0UG9pbnQodCxlPW5ldyBUKXtsZXQgaT1lLHI9dGhpcy52MCxzPXRoaXMudjEsbz10aGlzLnYyLGE9dGhpcy52MztyZXR1cm4gaS5zZXQodG8odCxyLngscy54LG8ueCxhLngpLHRvKHQsci55LHMueSxvLnksYS55KSx0byh0LHIueixzLnosby56LGEueikpLGl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYwLmNvcHkodC52MCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzLnYzLmNvcHkodC52MyksdGhpc310b0pTT04oKXtsZXQgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MD10aGlzLnYwLnRvQXJyYXkoKSx0LnYxPXRoaXMudjEudG9BcnJheSgpLHQudjI9dGhpcy52Mi50b0FycmF5KCksdC52Mz10aGlzLnYzLnRvQXJyYXkoKSx0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLnYwLmZyb21BcnJheSh0LnYwKSx0aGlzLnYxLmZyb21BcnJheSh0LnYxKSx0aGlzLnYyLmZyb21BcnJheSh0LnYyKSx0aGlzLnYzLmZyb21BcnJheSh0LnYzKSx0aGlzfX07eGwucHJvdG90eXBlLmlzQ3ViaWNCZXppZXJDdXJ2ZTM9ITA7dmFyICRyPWNsYXNzIGV4dGVuZHMgRmV7Y29uc3RydWN0b3IodD1uZXcgSyxlPW5ldyBLKXtzdXBlcigpLHRoaXMudHlwZT0iTGluZUN1cnZlIix0aGlzLnYxPXQsdGhpcy52Mj1lfWdldFBvaW50KHQsZT1uZXcgSyl7bGV0IGk9ZTtyZXR1cm4gdD09PTE/aS5jb3B5KHRoaXMudjIpOihpLmNvcHkodGhpcy52Mikuc3ViKHRoaXMudjEpLGkubXVsdGlwbHlTY2FsYXIodCkuYWRkKHRoaXMudjEpKSxpfWdldFBvaW50QXQodCxlKXtyZXR1cm4gdGhpcy5nZXRQb2ludCh0LGUpfWdldFRhbmdlbnQodCxlKXtsZXQgaT1lfHxuZXcgSztyZXR1cm4gaS5jb3B5KHRoaXMudjIpLnN1Yih0aGlzLnYxKS5ub3JtYWxpemUoKSxpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzfXRvSlNPTigpe2xldCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYxPXRoaXMudjEudG9BcnJheSgpLHQudjI9dGhpcy52Mi50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy52MS5mcm9tQXJyYXkodC52MSksdGhpcy52Mi5mcm9tQXJyYXkodC52MiksdGhpc319OyRyLnByb3RvdHlwZS5pc0xpbmVDdXJ2ZT0hMDt2YXIgYWg9Y2xhc3MgZXh0ZW5kcyBGZXtjb25zdHJ1Y3Rvcih0PW5ldyBULGU9bmV3IFQpe3N1cGVyKCksdGhpcy50eXBlPSJMaW5lQ3VydmUzIix0aGlzLmlzTGluZUN1cnZlMz0hMCx0aGlzLnYxPXQsdGhpcy52Mj1lfWdldFBvaW50KHQsZT1uZXcgVCl7bGV0IGk9ZTtyZXR1cm4gdD09PTE/aS5jb3B5KHRoaXMudjIpOihpLmNvcHkodGhpcy52Mikuc3ViKHRoaXMudjEpLGkubXVsdGlwbHlTY2FsYXIodCkuYWRkKHRoaXMudjEpKSxpfWdldFBvaW50QXQodCxlKXtyZXR1cm4gdGhpcy5nZXRQb2ludCh0LGUpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzfXRvSlNPTigpe2xldCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYxPXRoaXMudjEudG9BcnJheSgpLHQudjI9dGhpcy52Mi50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy52MS5mcm9tQXJyYXkodC52MSksdGhpcy52Mi5mcm9tQXJyYXkodC52MiksdGhpc319LHlvPWNsYXNzIGV4dGVuZHMgRmV7Y29uc3RydWN0b3IodD1uZXcgSyxlPW5ldyBLLGk9bmV3IEspe3N1cGVyKCksdGhpcy50eXBlPSJRdWFkcmF0aWNCZXppZXJDdXJ2ZSIsdGhpcy52MD10LHRoaXMudjE9ZSx0aGlzLnYyPWl9Z2V0UG9pbnQodCxlPW5ldyBLKXtsZXQgaT1lLHI9dGhpcy52MCxzPXRoaXMudjEsbz10aGlzLnYyO3JldHVybiBpLnNldChqcyh0LHIueCxzLngsby54KSxqcyh0LHIueSxzLnksby55KSksaX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudjAuY29weSh0LnYwKSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQudjA9dGhpcy52MC50b0FycmF5KCksdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjAuZnJvbUFycmF5KHQudjApLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fTt5by5wcm90b3R5cGUuaXNRdWFkcmF0aWNCZXppZXJDdXJ2ZT0hMDt2YXIgeWw9Y2xhc3MgZXh0ZW5kcyBGZXtjb25zdHJ1Y3Rvcih0PW5ldyBULGU9bmV3IFQsaT1uZXcgVCl7c3VwZXIoKSx0aGlzLnR5cGU9IlF1YWRyYXRpY0JlemllckN1cnZlMyIsdGhpcy52MD10LHRoaXMudjE9ZSx0aGlzLnYyPWl9Z2V0UG9pbnQodCxlPW5ldyBUKXtsZXQgaT1lLHI9dGhpcy52MCxzPXRoaXMudjEsbz10aGlzLnYyO3JldHVybiBpLnNldChqcyh0LHIueCxzLngsby54KSxqcyh0LHIueSxzLnksby55KSxqcyh0LHIueixzLnosby56KSksaX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudjAuY29weSh0LnYwKSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQudjA9dGhpcy52MC50b0FycmF5KCksdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjAuZnJvbUFycmF5KHQudjApLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fTt5bC5wcm90b3R5cGUuaXNRdWFkcmF0aWNCZXppZXJDdXJ2ZTM9ITA7dmFyIHZvPWNsYXNzIGV4dGVuZHMgRmV7Y29uc3RydWN0b3IodD1bXSl7c3VwZXIoKSx0aGlzLnR5cGU9IlNwbGluZUN1cnZlIix0aGlzLnBvaW50cz10fWdldFBvaW50KHQsZT1uZXcgSyl7bGV0IGk9ZSxyPXRoaXMucG9pbnRzLHM9KHIubGVuZ3RoLTEpKnQsbz1NYXRoLmZsb29yKHMpLGE9cy1vLGw9cltvPT09MD9vOm8tMV0sYz1yW29dLHU9cltvPnIubGVuZ3RoLTI/ci5sZW5ndGgtMTpvKzFdLGg9cltvPnIubGVuZ3RoLTM/ci5sZW5ndGgtMTpvKzJdO3JldHVybiBpLnNldChRZyhhLGwueCxjLngsdS54LGgueCksUWcoYSxsLnksYy55LHUueSxoLnkpKSxpfWNvcHkodCl7c3VwZXIuY29weSh0KSx0aGlzLnBvaW50cz1bXTtmb3IobGV0IGU9MCxpPXQucG9pbnRzLmxlbmd0aDtlPGk7ZSsrKXtsZXQgcj10LnBvaW50c1tlXTt0aGlzLnBvaW50cy5wdXNoKHIuY2xvbmUoKSl9cmV0dXJuIHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7dC5wb2ludHM9W107Zm9yKGxldCBlPTAsaT10aGlzLnBvaW50cy5sZW5ndGg7ZTxpO2UrKyl7bGV0IHI9dGhpcy5wb2ludHNbZV07dC5wb2ludHMucHVzaChyLnRvQXJyYXkoKSl9cmV0dXJuIHR9ZnJvbUpTT04odCl7c3VwZXIuZnJvbUpTT04odCksdGhpcy5wb2ludHM9W107Zm9yKGxldCBlPTAsaT10LnBvaW50cy5sZW5ndGg7ZTxpO2UrKyl7bGV0IHI9dC5wb2ludHNbZV07dGhpcy5wb2ludHMucHVzaChuZXcgSygpLmZyb21BcnJheShyKSl9cmV0dXJuIHRoaXN9fTt2by5wcm90b3R5cGUuaXNTcGxpbmVDdXJ2ZT0hMDt2YXIgQzA9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsQXJjQ3VydmU6bWwsQ2F0bXVsbFJvbUN1cnZlMzpnbCxDdWJpY0JlemllckN1cnZlOnhvLEN1YmljQmV6aWVyQ3VydmUzOnhsLEVsbGlwc2VDdXJ2ZTpKcixMaW5lQ3VydmU6JHIsTGluZUN1cnZlMzphaCxRdWFkcmF0aWNCZXppZXJDdXJ2ZTp5byxRdWFkcmF0aWNCZXppZXJDdXJ2ZTM6eWwsU3BsaW5lQ3VydmU6dm99KSxsaD1jbGFzcyBleHRlbmRzIEZle2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnR5cGU9IkN1cnZlUGF0aCIsdGhpcy5jdXJ2ZXM9W10sdGhpcy5hdXRvQ2xvc2U9ITF9YWRkKHQpe3RoaXMuY3VydmVzLnB1c2godCl9Y2xvc2VQYXRoKCl7bGV0IHQ9dGhpcy5jdXJ2ZXNbMF0uZ2V0UG9pbnQoMCksZT10aGlzLmN1cnZlc1t0aGlzLmN1cnZlcy5sZW5ndGgtMV0uZ2V0UG9pbnQoMSk7dC5lcXVhbHMoZSl8fHRoaXMuY3VydmVzLnB1c2gobmV3ICRyKGUsdCkpfWdldFBvaW50KHQsZSl7bGV0IGk9dCp0aGlzLmdldExlbmd0aCgpLHI9dGhpcy5nZXRDdXJ2ZUxlbmd0aHMoKSxzPTA7Zm9yKDtzPHIubGVuZ3RoOyl7aWYocltzXT49aSl7bGV0IG89cltzXS1pLGE9dGhpcy5jdXJ2ZXNbc10sbD1hLmdldExlbmd0aCgpLGM9bD09PTA/MDoxLW8vbDtyZXR1cm4gYS5nZXRQb2ludEF0KGMsZSl9cysrfXJldHVybiBudWxsfWdldExlbmd0aCgpe2xldCB0PXRoaXMuZ2V0Q3VydmVMZW5ndGhzKCk7cmV0dXJuIHRbdC5sZW5ndGgtMV19dXBkYXRlQXJjTGVuZ3Rocygpe3RoaXMubmVlZHNVcGRhdGU9ITAsdGhpcy5jYWNoZUxlbmd0aHM9bnVsbCx0aGlzLmdldEN1cnZlTGVuZ3RocygpfWdldEN1cnZlTGVuZ3Rocygpe2lmKHRoaXMuY2FjaGVMZW5ndGhzJiZ0aGlzLmNhY2hlTGVuZ3Rocy5sZW5ndGg9PT10aGlzLmN1cnZlcy5sZW5ndGgpcmV0dXJuIHRoaXMuY2FjaGVMZW5ndGhzO2xldCB0PVtdLGU9MDtmb3IobGV0IGk9MCxyPXRoaXMuY3VydmVzLmxlbmd0aDtpPHI7aSsrKWUrPXRoaXMuY3VydmVzW2ldLmdldExlbmd0aCgpLHQucHVzaChlKTtyZXR1cm4gdGhpcy5jYWNoZUxlbmd0aHM9dCx0fWdldFNwYWNlZFBvaW50cyh0PTQwKXtsZXQgZT1bXTtmb3IobGV0IGk9MDtpPD10O2krKyllLnB1c2godGhpcy5nZXRQb2ludChpL3QpKTtyZXR1cm4gdGhpcy5hdXRvQ2xvc2UmJmUucHVzaChlWzBdKSxlfWdldFBvaW50cyh0PTEyKXtsZXQgZT1bXSxpO2ZvcihsZXQgcj0wLHM9dGhpcy5jdXJ2ZXM7cjxzLmxlbmd0aDtyKyspe2xldCBvPXNbcl0sYT1vJiZvLmlzRWxsaXBzZUN1cnZlP3QqMjpvJiYoby5pc0xpbmVDdXJ2ZXx8by5pc0xpbmVDdXJ2ZTMpPzE6byYmby5pc1NwbGluZUN1cnZlP3Qqby5wb2ludHMubGVuZ3RoOnQsbD1vLmdldFBvaW50cyhhKTtmb3IobGV0IGM9MDtjPGwubGVuZ3RoO2MrKyl7bGV0IHU9bFtjXTtpJiZpLmVxdWFscyh1KXx8KGUucHVzaCh1KSxpPXUpfX1yZXR1cm4gdGhpcy5hdXRvQ2xvc2UmJmUubGVuZ3RoPjEmJiFlW2UubGVuZ3RoLTFdLmVxdWFscyhlWzBdKSYmZS5wdXNoKGVbMF0pLGV9Y29weSh0KXtzdXBlci5jb3B5KHQpLHRoaXMuY3VydmVzPVtdO2ZvcihsZXQgZT0wLGk9dC5jdXJ2ZXMubGVuZ3RoO2U8aTtlKyspe2xldCByPXQuY3VydmVzW2VdO3RoaXMuY3VydmVzLnB1c2goci5jbG9uZSgpKX1yZXR1cm4gdGhpcy5hdXRvQ2xvc2U9dC5hdXRvQ2xvc2UsdGhpc310b0pTT04oKXtsZXQgdD1zdXBlci50b0pTT04oKTt0LmF1dG9DbG9zZT10aGlzLmF1dG9DbG9zZSx0LmN1cnZlcz1bXTtmb3IobGV0IGU9MCxpPXRoaXMuY3VydmVzLmxlbmd0aDtlPGk7ZSsrKXtsZXQgcj10aGlzLmN1cnZlc1tlXTt0LmN1cnZlcy5wdXNoKHIudG9KU09OKCkpfXJldHVybiB0fWZyb21KU09OKHQpe3N1cGVyLmZyb21KU09OKHQpLHRoaXMuYXV0b0Nsb3NlPXQuYXV0b0Nsb3NlLHRoaXMuY3VydmVzPVtdO2ZvcihsZXQgZT0wLGk9dC5jdXJ2ZXMubGVuZ3RoO2U8aTtlKyspe2xldCByPXQuY3VydmVzW2VdO3RoaXMuY3VydmVzLnB1c2gobmV3IEMwW3IudHlwZV0oKS5mcm9tSlNPTihyKSl9cmV0dXJuIHRoaXN9fSxfbz1jbGFzcyBleHRlbmRzIGxoe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJQYXRoIix0aGlzLmN1cnJlbnRQb2ludD1uZXcgSyx0JiZ0aGlzLnNldEZyb21Qb2ludHModCl9c2V0RnJvbVBvaW50cyh0KXt0aGlzLm1vdmVUbyh0WzBdLngsdFswXS55KTtmb3IobGV0IGU9MSxpPXQubGVuZ3RoO2U8aTtlKyspdGhpcy5saW5lVG8odFtlXS54LHRbZV0ueSk7cmV0dXJuIHRoaXN9bW92ZVRvKHQsZSl7cmV0dXJuIHRoaXMuY3VycmVudFBvaW50LnNldCh0LGUpLHRoaXN9bGluZVRvKHQsZSl7bGV0IGk9bmV3ICRyKHRoaXMuY3VycmVudFBvaW50LmNsb25lKCksbmV3IEsodCxlKSk7cmV0dXJuIHRoaXMuY3VydmVzLnB1c2goaSksdGhpcy5jdXJyZW50UG9pbnQuc2V0KHQsZSksdGhpc31xdWFkcmF0aWNDdXJ2ZVRvKHQsZSxpLHIpe2xldCBzPW5ldyB5byh0aGlzLmN1cnJlbnRQb2ludC5jbG9uZSgpLG5ldyBLKHQsZSksbmV3IEsoaSxyKSk7cmV0dXJuIHRoaXMuY3VydmVzLnB1c2gocyksdGhpcy5jdXJyZW50UG9pbnQuc2V0KGksciksdGhpc31iZXppZXJDdXJ2ZVRvKHQsZSxpLHIscyxvKXtsZXQgYT1uZXcgeG8odGhpcy5jdXJyZW50UG9pbnQuY2xvbmUoKSxuZXcgSyh0LGUpLG5ldyBLKGksciksbmV3IEsocyxvKSk7cmV0dXJuIHRoaXMuY3VydmVzLnB1c2goYSksdGhpcy5jdXJyZW50UG9pbnQuc2V0KHMsbyksdGhpc31zcGxpbmVUaHJ1KHQpe2xldCBlPVt0aGlzLmN1cnJlbnRQb2ludC5jbG9uZSgpXS5jb25jYXQodCksaT1uZXcgdm8oZSk7cmV0dXJuIHRoaXMuY3VydmVzLnB1c2goaSksdGhpcy5jdXJyZW50UG9pbnQuY29weSh0W3QubGVuZ3RoLTFdKSx0aGlzfWFyYyh0LGUsaSxyLHMsbyl7bGV0IGE9dGhpcy5jdXJyZW50UG9pbnQueCxsPXRoaXMuY3VycmVudFBvaW50Lnk7cmV0dXJuIHRoaXMuYWJzYXJjKHQrYSxlK2wsaSxyLHMsbyksdGhpc31hYnNhcmModCxlLGkscixzLG8pe3JldHVybiB0aGlzLmFic2VsbGlwc2UodCxlLGksaSxyLHMsbyksdGhpc31lbGxpcHNlKHQsZSxpLHIscyxvLGEsbCl7bGV0IGM9dGhpcy5jdXJyZW50UG9pbnQueCx1PXRoaXMuY3VycmVudFBvaW50Lnk7cmV0dXJuIHRoaXMuYWJzZWxsaXBzZSh0K2MsZSt1LGkscixzLG8sYSxsKSx0aGlzfWFic2VsbGlwc2UodCxlLGkscixzLG8sYSxsKXtsZXQgYz1uZXcgSnIodCxlLGkscixzLG8sYSxsKTtpZih0aGlzLmN1cnZlcy5sZW5ndGg+MCl7bGV0IGg9Yy5nZXRQb2ludCgwKTtoLmVxdWFscyh0aGlzLmN1cnJlbnRQb2ludCl8fHRoaXMubGluZVRvKGgueCxoLnkpfXRoaXMuY3VydmVzLnB1c2goYyk7bGV0IHU9Yy5nZXRQb2ludCgxKTtyZXR1cm4gdGhpcy5jdXJyZW50UG9pbnQuY29weSh1KSx0aGlzfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jdXJyZW50UG9pbnQuY29weSh0LmN1cnJlbnRQb2ludCksdGhpc310b0pTT04oKXtsZXQgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC5jdXJyZW50UG9pbnQ9dGhpcy5jdXJyZW50UG9pbnQudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMuY3VycmVudFBvaW50LmZyb21BcnJheSh0LmN1cnJlbnRQb2ludCksdGhpc319LFVuPWNsYXNzIGV4dGVuZHMgX297Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy51dWlkPXRuKCksdGhpcy50eXBlPSJTaGFwZSIsdGhpcy5ob2xlcz1bXX1nZXRQb2ludHNIb2xlcyh0KXtsZXQgZT1bXTtmb3IobGV0IGk9MCxyPXRoaXMuaG9sZXMubGVuZ3RoO2k8cjtpKyspZVtpXT10aGlzLmhvbGVzW2ldLmdldFBvaW50cyh0KTtyZXR1cm4gZX1leHRyYWN0UG9pbnRzKHQpe3JldHVybntzaGFwZTp0aGlzLmdldFBvaW50cyh0KSxob2xlczp0aGlzLmdldFBvaW50c0hvbGVzKHQpfX1jb3B5KHQpe3N1cGVyLmNvcHkodCksdGhpcy5ob2xlcz1bXTtmb3IobGV0IGU9MCxpPXQuaG9sZXMubGVuZ3RoO2U8aTtlKyspe2xldCByPXQuaG9sZXNbZV07dGhpcy5ob2xlcy5wdXNoKHIuY2xvbmUoKSl9cmV0dXJuIHRoaXN9dG9KU09OKCl7bGV0IHQ9c3VwZXIudG9KU09OKCk7dC51dWlkPXRoaXMudXVpZCx0LmhvbGVzPVtdO2ZvcihsZXQgZT0wLGk9dGhpcy5ob2xlcy5sZW5ndGg7ZTxpO2UrKyl7bGV0IHI9dGhpcy5ob2xlc1tlXTt0LmhvbGVzLnB1c2goci50b0pTT04oKSl9cmV0dXJuIHR9ZnJvbUpTT04odCl7c3VwZXIuZnJvbUpTT04odCksdGhpcy51dWlkPXQudXVpZCx0aGlzLmhvbGVzPVtdO2ZvcihsZXQgZT0wLGk9dC5ob2xlcy5sZW5ndGg7ZTxpO2UrKyl7bGV0IHI9dC5ob2xlc1tlXTt0aGlzLmhvbGVzLnB1c2gobmV3IF9vKCkuZnJvbUpTT04ocikpfXJldHVybiB0aGlzfX0sVkU9e3RyaWFuZ3VsYXRlOmZ1bmN0aW9uKG4sdCxlPTIpe2xldCBpPXQmJnQubGVuZ3RoLHI9aT90WzBdKmU6bi5sZW5ndGgscz1SMChuLDAscixlLCEwKSxvPVtdO2lmKCFzfHxzLm5leHQ9PT1zLnByZXYpcmV0dXJuIG87bGV0IGEsbCxjLHUsaCxmLGQ7aWYoaSYmKHM9WUUobix0LHMsZSkpLG4ubGVuZ3RoPjgwKmUpe2E9Yz1uWzBdLGw9dT1uWzFdO2ZvcihsZXQgZz1lO2c8cjtnKz1lKWg9bltnXSxmPW5bZysxXSxoPGEmJihhPWgpLGY8bCYmKGw9ZiksaD5jJiYoYz1oKSxmPnUmJih1PWYpO2Q9TWF0aC5tYXgoYy1hLHUtbCksZD1kIT09MD8xL2Q6MH1yZXR1cm4gd28ocyxvLGUsYSxsLGQpLG99fTtmdW5jdGlvbiBSMChuLHQsZSxpLHIpe2xldCBzLG87aWYocj09PXJUKG4sdCxlLGkpPjApZm9yKHM9dDtzPGU7cys9aSlvPWpnKHMsbltzXSxuW3MrMV0sbyk7ZWxzZSBmb3Iocz1lLWk7cz49dDtzLT1pKW89amcocyxuW3NdLG5bcysxXSxvKTtyZXR1cm4gbyYmRGwobyxvLm5leHQpJiYoYm8obyksbz1vLm5leHQpLG99ZnVuY3Rpb24gbGkobix0KXtpZighbilyZXR1cm4gbjt0fHwodD1uKTtsZXQgZT1uLGk7ZG8gaWYoaT0hMSwhZS5zdGVpbmVyJiYoRGwoZSxlLm5leHQpfHx0ZShlLnByZXYsZSxlLm5leHQpPT09MCkpe2lmKGJvKGUpLGU9dD1lLnByZXYsZT09PWUubmV4dClicmVhaztpPSEwfWVsc2UgZT1lLm5leHQ7d2hpbGUoaXx8ZSE9PXQpO3JldHVybiB0fWZ1bmN0aW9uIHdvKG4sdCxlLGkscixzLG8pe2lmKCFuKXJldHVybjshbyYmcyYmUUUobixpLHIscyk7bGV0IGE9bixsLGM7Zm9yKDtuLnByZXYhPT1uLm5leHQ7KXtpZihsPW4ucHJldixjPW4ubmV4dCxzP1dFKG4saSxyLHMpOkdFKG4pKXt0LnB1c2gobC5pL2UpLHQucHVzaChuLmkvZSksdC5wdXNoKGMuaS9lKSxibyhuKSxuPWMubmV4dCxhPWMubmV4dDtjb250aW51ZX1pZihuPWMsbj09PWEpe28/bz09PTE/KG49cUUobGkobiksdCxlKSx3byhuLHQsZSxpLHIscywyKSk6bz09PTImJlhFKG4sdCxlLGkscixzKTp3byhsaShuKSx0LGUsaSxyLHMsMSk7YnJlYWt9fX1mdW5jdGlvbiBHRShuKXtsZXQgdD1uLnByZXYsZT1uLGk9bi5uZXh0O2lmKHRlKHQsZSxpKT49MClyZXR1cm4hMTtsZXQgcj1uLm5leHQubmV4dDtmb3IoO3IhPT1uLnByZXY7KXtpZih6cih0LngsdC55LGUueCxlLnksaS54LGkueSxyLngsci55KSYmdGUoci5wcmV2LHIsci5uZXh0KT49MClyZXR1cm4hMTtyPXIubmV4dH1yZXR1cm4hMH1mdW5jdGlvbiBXRShuLHQsZSxpKXtsZXQgcj1uLnByZXYscz1uLG89bi5uZXh0O2lmKHRlKHIscyxvKT49MClyZXR1cm4hMTtsZXQgYT1yLng8cy54P3IueDxvLng/ci54Om8ueDpzLng8by54P3MueDpvLngsbD1yLnk8cy55P3IueTxvLnk/ci55Om8ueTpzLnk8by55P3MueTpvLnksYz1yLng+cy54P3IueD5vLng/ci54Om8ueDpzLng+by54P3MueDpvLngsdT1yLnk+cy55P3IueT5vLnk/ci55Om8ueTpzLnk+by55P3MueTpvLnksaD1jaChhLGwsdCxlLGkpLGY9Y2goYyx1LHQsZSxpKSxkPW4ucHJldlosZz1uLm5leHRaO2Zvcig7ZCYmZC56Pj1oJiZnJiZnLno8PWY7KXtpZihkIT09bi5wcmV2JiZkIT09bi5uZXh0JiZ6cihyLngsci55LHMueCxzLnksby54LG8ueSxkLngsZC55KSYmdGUoZC5wcmV2LGQsZC5uZXh0KT49MHx8KGQ9ZC5wcmV2WixnIT09bi5wcmV2JiZnIT09bi5uZXh0JiZ6cihyLngsci55LHMueCxzLnksby54LG8ueSxnLngsZy55KSYmdGUoZy5wcmV2LGcsZy5uZXh0KT49MCkpcmV0dXJuITE7Zz1nLm5leHRafWZvcig7ZCYmZC56Pj1oOyl7aWYoZCE9PW4ucHJldiYmZCE9PW4ubmV4dCYmenIoci54LHIueSxzLngscy55LG8ueCxvLnksZC54LGQueSkmJnRlKGQucHJldixkLGQubmV4dCk+PTApcmV0dXJuITE7ZD1kLnByZXZafWZvcig7ZyYmZy56PD1mOyl7aWYoZyE9PW4ucHJldiYmZyE9PW4ubmV4dCYmenIoci54LHIueSxzLngscy55LG8ueCxvLnksZy54LGcueSkmJnRlKGcucHJldixnLGcubmV4dCk+PTApcmV0dXJuITE7Zz1nLm5leHRafXJldHVybiEwfWZ1bmN0aW9uIHFFKG4sdCxlKXtsZXQgaT1uO2Rve2xldCByPWkucHJldixzPWkubmV4dC5uZXh0OyFEbChyLHMpJiZMMChyLGksaS5uZXh0LHMpJiZNbyhyLHMpJiZNbyhzLHIpJiYodC5wdXNoKHIuaS9lKSx0LnB1c2goaS5pL2UpLHQucHVzaChzLmkvZSksYm8oaSksYm8oaS5uZXh0KSxpPW49cyksaT1pLm5leHR9d2hpbGUoaSE9PW4pO3JldHVybiBsaShpKX1mdW5jdGlvbiBYRShuLHQsZSxpLHIscyl7bGV0IG89bjtkb3tsZXQgYT1vLm5leHQubmV4dDtmb3IoO2EhPT1vLnByZXY7KXtpZihvLmkhPT1hLmkmJmVUKG8sYSkpe2xldCBsPVAwKG8sYSk7bz1saShvLG8ubmV4dCksbD1saShsLGwubmV4dCksd28obyx0LGUsaSxyLHMpLHdvKGwsdCxlLGkscixzKTtyZXR1cm59YT1hLm5leHR9bz1vLm5leHR9d2hpbGUobyE9PW4pfWZ1bmN0aW9uIFlFKG4sdCxlLGkpe2xldCByPVtdLHMsbyxhLGwsYztmb3Iocz0wLG89dC5sZW5ndGg7czxvO3MrKylhPXRbc10qaSxsPXM8by0xP3RbcysxXSppOm4ubGVuZ3RoLGM9UjAobixhLGwsaSwhMSksYz09PWMubmV4dCYmKGMuc3RlaW5lcj0hMCksci5wdXNoKHRUKGMpKTtmb3Ioci5zb3J0KFpFKSxzPTA7czxyLmxlbmd0aDtzKyspSkUocltzXSxlKSxlPWxpKGUsZS5uZXh0KTtyZXR1cm4gZX1mdW5jdGlvbiBaRShuLHQpe3JldHVybiBuLngtdC54fWZ1bmN0aW9uIEpFKG4sdCl7aWYodD0kRShuLHQpLHQpe2xldCBlPVAwKHQsbik7bGkodCx0Lm5leHQpLGxpKGUsZS5uZXh0KX19ZnVuY3Rpb24gJEUobix0KXtsZXQgZT10LGk9bi54LHI9bi55LHM9LTEvMCxvO2Rve2lmKHI8PWUueSYmcj49ZS5uZXh0LnkmJmUubmV4dC55IT09ZS55KXtsZXQgZj1lLngrKHItZS55KSooZS5uZXh0LngtZS54KS8oZS5uZXh0LnktZS55KTtpZihmPD1pJiZmPnMpe2lmKHM9ZixmPT09aSl7aWYocj09PWUueSlyZXR1cm4gZTtpZihyPT09ZS5uZXh0LnkpcmV0dXJuIGUubmV4dH1vPWUueDxlLm5leHQueD9lOmUubmV4dH19ZT1lLm5leHR9d2hpbGUoZSE9PXQpO2lmKCFvKXJldHVybiBudWxsO2lmKGk9PT1zKXJldHVybiBvO2xldCBhPW8sbD1vLngsYz1vLnksdT0xLzAsaDtlPW87ZG8gaT49ZS54JiZlLng+PWwmJmkhPT1lLngmJnpyKHI8Yz9pOnMscixsLGMscjxjP3M6aSxyLGUueCxlLnkpJiYoaD1NYXRoLmFicyhyLWUueSkvKGktZS54KSxNbyhlLG4pJiYoaDx1fHxoPT09dSYmKGUueD5vLnh8fGUueD09PW8ueCYmS0UobyxlKSkpJiYobz1lLHU9aCkpLGU9ZS5uZXh0O3doaWxlKGUhPT1hKTtyZXR1cm4gb31mdW5jdGlvbiBLRShuLHQpe3JldHVybiB0ZShuLnByZXYsbix0LnByZXYpPDAmJnRlKHQubmV4dCxuLG4ubmV4dCk8MH1mdW5jdGlvbiBRRShuLHQsZSxpKXtsZXQgcj1uO2RvIHIuej09PW51bGwmJihyLno9Y2goci54LHIueSx0LGUsaSkpLHIucHJldlo9ci5wcmV2LHIubmV4dFo9ci5uZXh0LHI9ci5uZXh0O3doaWxlKHIhPT1uKTtyLnByZXZaLm5leHRaPW51bGwsci5wcmV2Wj1udWxsLGpFKHIpfWZ1bmN0aW9uIGpFKG4pe2xldCB0LGUsaSxyLHMsbyxhLGwsYz0xO2Rve2ZvcihlPW4sbj1udWxsLHM9bnVsbCxvPTA7ZTspe2ZvcihvKyssaT1lLGE9MCx0PTA7dDxjJiYoYSsrLGk9aS5uZXh0WiwhIWkpO3QrKyk7Zm9yKGw9YzthPjB8fGw+MCYmaTspYSE9PTAmJihsPT09MHx8IWl8fGUuejw9aS56KT8ocj1lLGU9ZS5uZXh0WixhLS0pOihyPWksaT1pLm5leHRaLGwtLSkscz9zLm5leHRaPXI6bj1yLHIucHJldlo9cyxzPXI7ZT1pfXMubmV4dFo9bnVsbCxjKj0yfXdoaWxlKG8+MSk7cmV0dXJuIG59ZnVuY3Rpb24gY2gobix0LGUsaSxyKXtyZXR1cm4gbj0zMjc2Nyoobi1lKSpyLHQ9MzI3NjcqKHQtaSkqcixuPShufG48PDgpJjE2NzExOTM1LG49KG58bjw8NCkmMjUyNjQ1MTM1LG49KG58bjw8MikmODU4OTkzNDU5LG49KG58bjw8MSkmMTQzMTY1NTc2NSx0PSh0fHQ8PDgpJjE2NzExOTM1LHQ9KHR8dDw8NCkmMjUyNjQ1MTM1LHQ9KHR8dDw8MikmODU4OTkzNDU5LHQ9KHR8dDw8MSkmMTQzMTY1NTc2NSxufHQ8PDF9ZnVuY3Rpb24gdFQobil7bGV0IHQ9bixlPW47ZG8odC54PGUueHx8dC54PT09ZS54JiZ0Lnk8ZS55KSYmKGU9dCksdD10Lm5leHQ7d2hpbGUodCE9PW4pO3JldHVybiBlfWZ1bmN0aW9uIHpyKG4sdCxlLGkscixzLG8sYSl7cmV0dXJuKHItbykqKHQtYSktKG4tbykqKHMtYSk+PTAmJihuLW8pKihpLWEpLShlLW8pKih0LWEpPj0wJiYoZS1vKSoocy1hKS0oci1vKSooaS1hKT49MH1mdW5jdGlvbiBlVChuLHQpe3JldHVybiBuLm5leHQuaSE9PXQuaSYmbi5wcmV2LmkhPT10LmkmJiFuVChuLHQpJiYoTW8obix0KSYmTW8odCxuKSYmaVQobix0KSYmKHRlKG4ucHJldixuLHQucHJldil8fHRlKG4sdC5wcmV2LHQpKXx8RGwobix0KSYmdGUobi5wcmV2LG4sbi5uZXh0KT4wJiZ0ZSh0LnByZXYsdCx0Lm5leHQpPjApfWZ1bmN0aW9uIHRlKG4sdCxlKXtyZXR1cm4odC55LW4ueSkqKGUueC10LngpLSh0Lngtbi54KSooZS55LXQueSl9ZnVuY3Rpb24gRGwobix0KXtyZXR1cm4gbi54PT09dC54JiZuLnk9PT10Lnl9ZnVuY3Rpb24gTDAobix0LGUsaSl7bGV0IHI9WmEodGUobix0LGUpKSxzPVphKHRlKG4sdCxpKSksbz1aYSh0ZShlLGksbikpLGE9WmEodGUoZSxpLHQpKTtyZXR1cm4hIShyIT09cyYmbyE9PWF8fHI9PT0wJiZZYShuLGUsdCl8fHM9PT0wJiZZYShuLGksdCl8fG89PT0wJiZZYShlLG4saSl8fGE9PT0wJiZZYShlLHQsaSkpfWZ1bmN0aW9uIFlhKG4sdCxlKXtyZXR1cm4gdC54PD1NYXRoLm1heChuLngsZS54KSYmdC54Pj1NYXRoLm1pbihuLngsZS54KSYmdC55PD1NYXRoLm1heChuLnksZS55KSYmdC55Pj1NYXRoLm1pbihuLnksZS55KX1mdW5jdGlvbiBaYShuKXtyZXR1cm4gbj4wPzE6bjwwPy0xOjB9ZnVuY3Rpb24gblQobix0KXtsZXQgZT1uO2Rve2lmKGUuaSE9PW4uaSYmZS5uZXh0LmkhPT1uLmkmJmUuaSE9PXQuaSYmZS5uZXh0LmkhPT10LmkmJkwwKGUsZS5uZXh0LG4sdCkpcmV0dXJuITA7ZT1lLm5leHR9d2hpbGUoZSE9PW4pO3JldHVybiExfWZ1bmN0aW9uIE1vKG4sdCl7cmV0dXJuIHRlKG4ucHJldixuLG4ubmV4dCk8MD90ZShuLHQsbi5uZXh0KT49MCYmdGUobixuLnByZXYsdCk+PTA6dGUobix0LG4ucHJldik8MHx8dGUobixuLm5leHQsdCk8MH1mdW5jdGlvbiBpVChuLHQpe2xldCBlPW4saT0hMSxyPShuLngrdC54KS8yLHM9KG4ueSt0LnkpLzI7ZG8gZS55PnMhPWUubmV4dC55PnMmJmUubmV4dC55IT09ZS55JiZyPChlLm5leHQueC1lLngpKihzLWUueSkvKGUubmV4dC55LWUueSkrZS54JiYoaT0haSksZT1lLm5leHQ7d2hpbGUoZSE9PW4pO3JldHVybiBpfWZ1bmN0aW9uIFAwKG4sdCl7bGV0IGU9bmV3IHVoKG4uaSxuLngsbi55KSxpPW5ldyB1aCh0LmksdC54LHQueSkscj1uLm5leHQscz10LnByZXY7cmV0dXJuIG4ubmV4dD10LHQucHJldj1uLGUubmV4dD1yLHIucHJldj1lLGkubmV4dD1lLGUucHJldj1pLHMubmV4dD1pLGkucHJldj1zLGl9ZnVuY3Rpb24gamcobix0LGUsaSl7bGV0IHI9bmV3IHVoKG4sdCxlKTtyZXR1cm4gaT8oci5uZXh0PWkubmV4dCxyLnByZXY9aSxpLm5leHQucHJldj1yLGkubmV4dD1yKTooci5wcmV2PXIsci5uZXh0PXIpLHJ9ZnVuY3Rpb24gYm8obil7bi5uZXh0LnByZXY9bi5wcmV2LG4ucHJldi5uZXh0PW4ubmV4dCxuLnByZXZaJiYobi5wcmV2Wi5uZXh0Wj1uLm5leHRaKSxuLm5leHRaJiYobi5uZXh0Wi5wcmV2Wj1uLnByZXZaKX1mdW5jdGlvbiB1aChuLHQsZSl7dGhpcy5pPW4sdGhpcy54PXQsdGhpcy55PWUsdGhpcy5wcmV2PW51bGwsdGhpcy5uZXh0PW51bGwsdGhpcy56PW51bGwsdGhpcy5wcmV2Wj1udWxsLHRoaXMubmV4dFo9bnVsbCx0aGlzLnN0ZWluZXI9ITF9ZnVuY3Rpb24gclQobix0LGUsaSl7bGV0IHI9MDtmb3IobGV0IHM9dCxvPWUtaTtzPGU7cys9aSlyKz0obltvXS1uW3NdKSoobltzKzFdK25bbysxXSksbz1zO3JldHVybiByfXZhciBkbj1jbGFzc3tzdGF0aWMgYXJlYSh0KXtsZXQgZT10Lmxlbmd0aCxpPTA7Zm9yKGxldCByPWUtMSxzPTA7czxlO3I9cysrKWkrPXRbcl0ueCp0W3NdLnktdFtzXS54KnRbcl0ueTtyZXR1cm4gaSouNX1zdGF0aWMgaXNDbG9ja1dpc2UodCl7cmV0dXJuIGRuLmFyZWEodCk8MH1zdGF0aWMgdHJpYW5ndWxhdGVTaGFwZSh0LGUpe2xldCBpPVtdLHI9W10scz1bXTt0MCh0KSxlMChpLHQpO2xldCBvPXQubGVuZ3RoO2UuZm9yRWFjaCh0MCk7Zm9yKGxldCBsPTA7bDxlLmxlbmd0aDtsKyspci5wdXNoKG8pLG8rPWVbbF0ubGVuZ3RoLGUwKGksZVtsXSk7bGV0IGE9VkUudHJpYW5ndWxhdGUoaSxyKTtmb3IobGV0IGw9MDtsPGEubGVuZ3RoO2wrPTMpcy5wdXNoKGEuc2xpY2UobCxsKzMpKTtyZXR1cm4gc319O2Z1bmN0aW9uIHQwKG4pe2xldCB0PW4ubGVuZ3RoO3Q+MiYmblt0LTFdLmVxdWFscyhuWzBdKSYmbi5wb3AoKX1mdW5jdGlvbiBlMChuLHQpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKW4ucHVzaCh0W2VdLngpLG4ucHVzaCh0W2VdLnkpfXZhciBjaT1jbGFzcyBleHRlbmRzIEh0e2NvbnN0cnVjdG9yKHQ9bmV3IFVuKFtuZXcgSyguNSwuNSksbmV3IEsoLS41LC41KSxuZXcgSygtLjUsLS41KSxuZXcgSyguNSwtLjUpXSksZT17fSl7c3VwZXIoKSx0aGlzLnR5cGU9IkV4dHJ1ZGVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtzaGFwZXM6dCxvcHRpb25zOmV9LHQ9QXJyYXkuaXNBcnJheSh0KT90Olt0XTtsZXQgaT10aGlzLHI9W10scz1bXTtmb3IobGV0IGE9MCxsPXQubGVuZ3RoO2E8bDthKyspe2xldCBjPXRbYV07byhjKX10aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBlZShyLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBlZShzLDIpKSx0aGlzLmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCk7ZnVuY3Rpb24gbyhhKXtsZXQgbD1bXSxjPWUuY3VydmVTZWdtZW50cyE9PXZvaWQgMD9lLmN1cnZlU2VnbWVudHM6MTIsdT1lLnN0ZXBzIT09dm9pZCAwP2Uuc3RlcHM6MSxoPWUuZGVwdGghPT12b2lkIDA/ZS5kZXB0aDoxLGY9ZS5iZXZlbEVuYWJsZWQhPT12b2lkIDA/ZS5iZXZlbEVuYWJsZWQ6ITAsZD1lLmJldmVsVGhpY2tuZXNzIT09dm9pZCAwP2UuYmV2ZWxUaGlja25lc3M6LjIsZz1lLmJldmVsU2l6ZSE9PXZvaWQgMD9lLmJldmVsU2l6ZTpkLS4xLHg9ZS5iZXZlbE9mZnNldCE9PXZvaWQgMD9lLmJldmVsT2Zmc2V0OjAsdj1lLmJldmVsU2VnbWVudHMhPT12b2lkIDA/ZS5iZXZlbFNlZ21lbnRzOjMsbT1lLmV4dHJ1ZGVQYXRoLHA9ZS5VVkdlbmVyYXRvciE9PXZvaWQgMD9lLlVWR2VuZXJhdG9yOnNUO2UuYW1vdW50IT09dm9pZCAwJiYoY29uc29sZS53YXJuKCJUSFJFRS5FeHRydWRlQnVmZmVyR2VvbWV0cnk6IGFtb3VudCBoYXMgYmVlbiByZW5hbWVkIHRvIGRlcHRoLiIpLGg9ZS5hbW91bnQpO2xldCBiLF89ITEsUyxMLEEsSDttJiYoYj1tLmdldFNwYWNlZFBvaW50cyh1KSxfPSEwLGY9ITEsUz1tLmNvbXB1dGVGcmVuZXRGcmFtZXModSwhMSksTD1uZXcgVCxBPW5ldyBULEg9bmV3IFQpLGZ8fCh2PTAsZD0wLGc9MCx4PTApO2xldCB0dD1hLmV4dHJhY3RQb2ludHMoYyksWD10dC5zaGFwZSx5PXR0LmhvbGVzO2lmKCFkbi5pc0Nsb2NrV2lzZShYKSl7WD1YLnJldmVyc2UoKTtmb3IobGV0IEM9MCxqPXkubGVuZ3RoO0M8ajtDKyspe2xldCBKPXlbQ107ZG4uaXNDbG9ja1dpc2UoSikmJih5W0NdPUoucmV2ZXJzZSgpKX19bGV0IEQ9ZG4udHJpYW5ndWxhdGVTaGFwZShYLHkpLEY9WDtmb3IobGV0IEM9MCxqPXkubGVuZ3RoO0M8ajtDKyspe2xldCBKPXlbQ107WD1YLmNvbmNhdChKKX1mdW5jdGlvbiB6KEMsaixKKXtyZXR1cm4ganx8Y29uc29sZS5lcnJvcigiVEhSRUUuRXh0cnVkZUdlb21ldHJ5OiB2ZWMgZG9lcyBub3QgZXhpc3QiKSxqLmNsb25lKCkubXVsdGlwbHlTY2FsYXIoSikuYWRkKEMpfWxldCBOPVgubGVuZ3RoLFY9RC5sZW5ndGg7ZnVuY3Rpb24gUShDLGosSil7bGV0IGl0LGV0LHZ0LGJ0PUMueC1qLngsSXQ9Qy55LWoueSxadD1KLngtQy54LHF0PUoueS1DLnksRT1idCpidCtJdCpJdCx3PWJ0KnF0LUl0Klp0O2lmKE1hdGguYWJzKHcpPk51bWJlci5FUFNJTE9OKXtsZXQgcT1NYXRoLnNxcnQoRSkscnQ9TWF0aC5zcXJ0KFp0Klp0K3F0KnF0KSxndD1qLngtSXQvcSxXPWoueStidC9xLF90PUoueC1xdC9ydCx5dD1KLnkrWnQvcnQsdXQ9KChfdC1ndCkqcXQtKHl0LVcpKlp0KS8oYnQqcXQtSXQqWnQpO2l0PWd0K2J0KnV0LUMueCxldD1XK0l0KnV0LUMueTtsZXQgY3Q9aXQqaXQrZXQqZXQ7aWYoY3Q8PTIpcmV0dXJuIG5ldyBLKGl0LGV0KTt2dD1NYXRoLnNxcnQoY3QvMil9ZWxzZXtsZXQgcT0hMTtidD5OdW1iZXIuRVBTSUxPTj9adD5OdW1iZXIuRVBTSUxPTiYmKHE9ITApOmJ0PC1OdW1iZXIuRVBTSUxPTj9adDwtTnVtYmVyLkVQU0lMT04mJihxPSEwKTpNYXRoLnNpZ24oSXQpPT09TWF0aC5zaWduKHF0KSYmKHE9ITApLHE/KGl0PS1JdCxldD1idCx2dD1NYXRoLnNxcnQoRSkpOihpdD1idCxldD1JdCx2dD1NYXRoLnNxcnQoRS8yKSl9cmV0dXJuIG5ldyBLKGl0L3Z0LGV0L3Z0KX1sZXQgYXQ9W107Zm9yKGxldCBDPTAsaj1GLmxlbmd0aCxKPWotMSxpdD1DKzE7QzxqO0MrKyxKKyssaXQrKylKPT09aiYmKEo9MCksaXQ9PT1qJiYoaXQ9MCksYXRbQ109UShGW0NdLEZbSl0sRltpdF0pO2xldCBHPVtdLCQsbHQ9YXQuY29uY2F0KCk7Zm9yKGxldCBDPTAsaj15Lmxlbmd0aDtDPGo7QysrKXtsZXQgSj15W0NdOyQ9W107Zm9yKGxldCBpdD0wLGV0PUoubGVuZ3RoLHZ0PWV0LTEsYnQ9aXQrMTtpdDxldDtpdCsrLHZ0KyssYnQrKyl2dD09PWV0JiYodnQ9MCksYnQ9PT1ldCYmKGJ0PTApLCRbaXRdPVEoSltpdF0sSlt2dF0sSltidF0pO0cucHVzaCgkKSxsdD1sdC5jb25jYXQoJCl9Zm9yKGxldCBDPTA7Qzx2O0MrKyl7bGV0IGo9Qy92LEo9ZCpNYXRoLmNvcyhqKk1hdGguUEkvMiksaXQ9ZypNYXRoLnNpbihqKk1hdGguUEkvMikreDtmb3IobGV0IGV0PTAsdnQ9Ri5sZW5ndGg7ZXQ8dnQ7ZXQrKyl7bGV0IGJ0PXooRltldF0sYXRbZXRdLGl0KTttdChidC54LGJ0LnksLUopfWZvcihsZXQgZXQ9MCx2dD15Lmxlbmd0aDtldDx2dDtldCsrKXtsZXQgYnQ9eVtldF07JD1HW2V0XTtmb3IobGV0IEl0PTAsWnQ9YnQubGVuZ3RoO0l0PFp0O0l0Kyspe2xldCBxdD16KGJ0W0l0XSwkW0l0XSxpdCk7bXQocXQueCxxdC55LC1KKX19fWxldCBkdD1nK3g7Zm9yKGxldCBDPTA7QzxOO0MrKyl7bGV0IGo9Zj96KFhbQ10sbHRbQ10sZHQpOlhbQ107Xz8oQS5jb3B5KFMubm9ybWFsc1swXSkubXVsdGlwbHlTY2FsYXIoai54KSxMLmNvcHkoUy5iaW5vcm1hbHNbMF0pLm11bHRpcGx5U2NhbGFyKGoueSksSC5jb3B5KGJbMF0pLmFkZChBKS5hZGQoTCksbXQoSC54LEgueSxILnopKTptdChqLngsai55LDApfWZvcihsZXQgQz0xO0M8PXU7QysrKWZvcihsZXQgaj0wO2o8TjtqKyspe2xldCBKPWY/eihYW2pdLGx0W2pdLGR0KTpYW2pdO18/KEEuY29weShTLm5vcm1hbHNbQ10pLm11bHRpcGx5U2NhbGFyKEoueCksTC5jb3B5KFMuYmlub3JtYWxzW0NdKS5tdWx0aXBseVNjYWxhcihKLnkpLEguY29weShiW0NdKS5hZGQoQSkuYWRkKEwpLG10KEgueCxILnksSC56KSk6bXQoSi54LEoueSxoL3UqQyl9Zm9yKGxldCBDPXYtMTtDPj0wO0MtLSl7bGV0IGo9Qy92LEo9ZCpNYXRoLmNvcyhqKk1hdGguUEkvMiksaXQ9ZypNYXRoLnNpbihqKk1hdGguUEkvMikreDtmb3IobGV0IGV0PTAsdnQ9Ri5sZW5ndGg7ZXQ8dnQ7ZXQrKyl7bGV0IGJ0PXooRltldF0sYXRbZXRdLGl0KTttdChidC54LGJ0LnksaCtKKX1mb3IobGV0IGV0PTAsdnQ9eS5sZW5ndGg7ZXQ8dnQ7ZXQrKyl7bGV0IGJ0PXlbZXRdOyQ9R1tldF07Zm9yKGxldCBJdD0wLFp0PWJ0Lmxlbmd0aDtJdDxadDtJdCsrKXtsZXQgcXQ9eihidFtJdF0sJFtJdF0saXQpO18/bXQocXQueCxxdC55K2JbdS0xXS55LGJbdS0xXS54K0opOm10KHF0LngscXQueSxoK0opfX19eHQoKSxrKCk7ZnVuY3Rpb24geHQoKXtsZXQgQz1yLmxlbmd0aC8zO2lmKGYpe2xldCBqPTAsSj1OKmo7Zm9yKGxldCBpdD0wO2l0PFY7aXQrKyl7bGV0IGV0PURbaXRdO1N0KGV0WzJdK0osZXRbMV0rSixldFswXStKKX1qPXUrdioyLEo9TipqO2ZvcihsZXQgaXQ9MDtpdDxWO2l0Kyspe2xldCBldD1EW2l0XTtTdChldFswXStKLGV0WzFdK0osZXRbMl0rSil9fWVsc2V7Zm9yKGxldCBqPTA7ajxWO2orKyl7bGV0IEo9RFtqXTtTdChKWzJdLEpbMV0sSlswXSl9Zm9yKGxldCBqPTA7ajxWO2orKyl7bGV0IEo9RFtqXTtTdChKWzBdK04qdSxKWzFdK04qdSxKWzJdK04qdSl9fWkuYWRkR3JvdXAoQyxyLmxlbmd0aC8zLUMsMCl9ZnVuY3Rpb24gaygpe2xldCBDPXIubGVuZ3RoLzMsaj0wO0Z0KEYsaiksais9Ri5sZW5ndGg7Zm9yKGxldCBKPTAsaXQ9eS5sZW5ndGg7SjxpdDtKKyspe2xldCBldD15W0pdO0Z0KGV0LGopLGorPWV0Lmxlbmd0aH1pLmFkZEdyb3VwKEMsci5sZW5ndGgvMy1DLDEpfWZ1bmN0aW9uIEZ0KEMsail7bGV0IEo9Qy5sZW5ndGg7Zm9yKDstLUo+PTA7KXtsZXQgaXQ9SixldD1KLTE7ZXQ8MCYmKGV0PUMubGVuZ3RoLTEpO2ZvcihsZXQgdnQ9MCxidD11K3YqMjt2dDxidDt2dCsrKXtsZXQgSXQ9Tip2dCxadD1OKih2dCsxKSxxdD1qK2l0K0l0LEU9aitldCtJdCx3PWorZXQrWnQscT1qK2l0K1p0O0IocXQsRSx3LHEpfX19ZnVuY3Rpb24gbXQoQyxqLEope2wucHVzaChDKSxsLnB1c2goaiksbC5wdXNoKEopfWZ1bmN0aW9uIFN0KEMsaixKKXtzdChDKSxzdChqKSxzdChKKTtsZXQgaXQ9ci5sZW5ndGgvMyxldD1wLmdlbmVyYXRlVG9wVVYoaSxyLGl0LTMsaXQtMixpdC0xKTtudChldFswXSksbnQoZXRbMV0pLG50KGV0WzJdKX1mdW5jdGlvbiBCKEMsaixKLGl0KXtzdChDKSxzdChqKSxzdChpdCksc3Qoaiksc3QoSiksc3QoaXQpO2xldCBldD1yLmxlbmd0aC8zLHZ0PXAuZ2VuZXJhdGVTaWRlV2FsbFVWKGkscixldC02LGV0LTMsZXQtMixldC0xKTtudCh2dFswXSksbnQodnRbMV0pLG50KHZ0WzNdKSxudCh2dFsxXSksbnQodnRbMl0pLG50KHZ0WzNdKX1mdW5jdGlvbiBzdChDKXtyLnB1c2gobFtDKjMrMF0pLHIucHVzaChsW0MqMysxXSksci5wdXNoKGxbQyozKzJdKX1mdW5jdGlvbiBudChDKXtzLnB1c2goQy54KSxzLnB1c2goQy55KX19fXRvSlNPTigpe2xldCB0PXN1cGVyLnRvSlNPTigpLGU9dGhpcy5wYXJhbWV0ZXJzLnNoYXBlcyxpPXRoaXMucGFyYW1ldGVycy5vcHRpb25zO3JldHVybiBvVChlLGksdCl9c3RhdGljIGZyb21KU09OKHQsZSl7bGV0IGk9W107Zm9yKGxldCBzPTAsbz10LnNoYXBlcy5sZW5ndGg7czxvO3MrKyl7bGV0IGE9ZVt0LnNoYXBlc1tzXV07aS5wdXNoKGEpfWxldCByPXQub3B0aW9ucy5leHRydWRlUGF0aDtyZXR1cm4gciE9PXZvaWQgMCYmKHQub3B0aW9ucy5leHRydWRlUGF0aD1uZXcgQzBbci50eXBlXSgpLmZyb21KU09OKHIpKSxuZXcgY2koaSx0Lm9wdGlvbnMpfX0sc1Q9e2dlbmVyYXRlVG9wVVY6ZnVuY3Rpb24obix0LGUsaSxyKXtsZXQgcz10W2UqM10sbz10W2UqMysxXSxhPXRbaSozXSxsPXRbaSozKzFdLGM9dFtyKjNdLHU9dFtyKjMrMV07cmV0dXJuW25ldyBLKHMsbyksbmV3IEsoYSxsKSxuZXcgSyhjLHUpXX0sZ2VuZXJhdGVTaWRlV2FsbFVWOmZ1bmN0aW9uKG4sdCxlLGkscixzKXtsZXQgbz10W2UqM10sYT10W2UqMysxXSxsPXRbZSozKzJdLGM9dFtpKjNdLHU9dFtpKjMrMV0saD10W2kqMysyXSxmPXRbciozXSxkPXRbciozKzFdLGc9dFtyKjMrMl0seD10W3MqM10sdj10W3MqMysxXSxtPXRbcyozKzJdO3JldHVybiBNYXRoLmFicyhhLXUpPE1hdGguYWJzKG8tYyk/W25ldyBLKG8sMS1sKSxuZXcgSyhjLDEtaCksbmV3IEsoZiwxLWcpLG5ldyBLKHgsMS1tKV06W25ldyBLKGEsMS1sKSxuZXcgSyh1LDEtaCksbmV3IEsoZCwxLWcpLG5ldyBLKHYsMS1tKV19fTtmdW5jdGlvbiBvVChuLHQsZSl7aWYoZS5zaGFwZXM9W10sQXJyYXkuaXNBcnJheShuKSlmb3IobGV0IGk9MCxyPW4ubGVuZ3RoO2k8cjtpKyspe2xldCBzPW5baV07ZS5zaGFwZXMucHVzaChzLnV1aWQpfWVsc2UgZS5zaGFwZXMucHVzaChuLnV1aWQpO3JldHVybiB0LmV4dHJ1ZGVQYXRoIT09dm9pZCAwJiYoZS5vcHRpb25zLmV4dHJ1ZGVQYXRoPXQuZXh0cnVkZVBhdGgudG9KU09OKCkpLGV9dmFyIHFpPWNsYXNzIGV4dGVuZHMgSHR7Y29uc3RydWN0b3IodD1uZXcgVW4oW25ldyBLKDAsLjUpLG5ldyBLKC0uNSwtLjUpLG5ldyBLKC41LC0uNSldKSxlPTEyKXtzdXBlcigpLHRoaXMudHlwZT0iU2hhcGVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtzaGFwZXM6dCxjdXJ2ZVNlZ21lbnRzOmV9O2xldCBpPVtdLHI9W10scz1bXSxvPVtdLGE9MCxsPTA7aWYoQXJyYXkuaXNBcnJheSh0KT09PSExKWModCk7ZWxzZSBmb3IobGV0IHU9MDt1PHQubGVuZ3RoO3UrKyljKHRbdV0pLHRoaXMuYWRkR3JvdXAoYSxsLHUpLGErPWwsbD0wO3RoaXMuc2V0SW5kZXgoaSksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgZWUociwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IGVlKHMsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGVlKG8sMikpO2Z1bmN0aW9uIGModSl7bGV0IGg9ci5sZW5ndGgvMyxmPXUuZXh0cmFjdFBvaW50cyhlKSxkPWYuc2hhcGUsZz1mLmhvbGVzO2RuLmlzQ2xvY2tXaXNlKGQpPT09ITEmJihkPWQucmV2ZXJzZSgpKTtmb3IobGV0IHY9MCxtPWcubGVuZ3RoO3Y8bTt2Kyspe2xldCBwPWdbdl07ZG4uaXNDbG9ja1dpc2UocCk9PT0hMCYmKGdbdl09cC5yZXZlcnNlKCkpfWxldCB4PWRuLnRyaWFuZ3VsYXRlU2hhcGUoZCxnKTtmb3IobGV0IHY9MCxtPWcubGVuZ3RoO3Y8bTt2Kyspe2xldCBwPWdbdl07ZD1kLmNvbmNhdChwKX1mb3IobGV0IHY9MCxtPWQubGVuZ3RoO3Y8bTt2Kyspe2xldCBwPWRbdl07ci5wdXNoKHAueCxwLnksMCkscy5wdXNoKDAsMCwxKSxvLnB1c2gocC54LHAueSl9Zm9yKGxldCB2PTAsbT14Lmxlbmd0aDt2PG07disrKXtsZXQgcD14W3ZdLGI9cFswXStoLF89cFsxXStoLFM9cFsyXStoO2kucHVzaChiLF8sUyksbCs9M319fXRvSlNPTigpe2xldCB0PXN1cGVyLnRvSlNPTigpLGU9dGhpcy5wYXJhbWV0ZXJzLnNoYXBlcztyZXR1cm4gYVQoZSx0KX1zdGF0aWMgZnJvbUpTT04odCxlKXtsZXQgaT1bXTtmb3IobGV0IHI9MCxzPXQuc2hhcGVzLmxlbmd0aDtyPHM7cisrKXtsZXQgbz1lW3Quc2hhcGVzW3JdXTtpLnB1c2gobyl9cmV0dXJuIG5ldyBxaShpLHQuY3VydmVTZWdtZW50cyl9fTtmdW5jdGlvbiBhVChuLHQpe2lmKHQuc2hhcGVzPVtdLEFycmF5LmlzQXJyYXkobikpZm9yKGxldCBlPTAsaT1uLmxlbmd0aDtlPGk7ZSsrKXtsZXQgcj1uW2VdO3Quc2hhcGVzLnB1c2goci51dWlkKX1lbHNlIHQuc2hhcGVzLnB1c2gobi51dWlkKTtyZXR1cm4gdH12YXIgaGg9Y2xhc3MgZXh0ZW5kcyB4ZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iU2hhZG93TWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IGZ0KDApLHRoaXMudHJhbnNwYXJlbnQ9ITAsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpc319O2hoLnByb3RvdHlwZS5pc1NoYWRvd01hdGVyaWFsPSEwO3ZhciB2bD1jbGFzcyBleHRlbmRzIHhle2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIn0sdGhpcy50eXBlPSJNZXNoU3RhbmRhcmRNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgZnQoMTY3NzcyMTUpLHRoaXMucm91Z2huZXNzPTEsdGhpcy5tZXRhbG5lc3M9MCx0aGlzLm1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlPW5ldyBmdCgwKSx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZU1hcD1udWxsLHRoaXMuYnVtcE1hcD1udWxsLHRoaXMuYnVtcFNjYWxlPTEsdGhpcy5ub3JtYWxNYXA9bnVsbCx0aGlzLm5vcm1hbE1hcFR5cGU9dHMsdGhpcy5ub3JtYWxTY2FsZT1uZXcgSygxLDEpLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMucm91Z2huZXNzTWFwPW51bGwsdGhpcy5tZXRhbG5lc3NNYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5lbnZNYXA9bnVsbCx0aGlzLmVudk1hcEludGVuc2l0eT0xLHRoaXMucmVmcmFjdGlvblJhdGlvPS45OCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMud2lyZWZyYW1lTGluZWNhcD0icm91bmQiLHRoaXMud2lyZWZyYW1lTGluZWpvaW49InJvdW5kIix0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIn0sdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMucm91Z2huZXNzPXQucm91Z2huZXNzLHRoaXMubWV0YWxuZXNzPXQubWV0YWxuZXNzLHRoaXMubWFwPXQubWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLmVtaXNzaXZlLmNvcHkodC5lbWlzc2l2ZSksdGhpcy5lbWlzc2l2ZU1hcD10LmVtaXNzaXZlTWFwLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9dC5lbWlzc2l2ZUludGVuc2l0eSx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMucm91Z2huZXNzTWFwPXQucm91Z2huZXNzTWFwLHRoaXMubWV0YWxuZXNzTWFwPXQubWV0YWxuZXNzTWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmVudk1hcD10LmVudk1hcCx0aGlzLmVudk1hcEludGVuc2l0eT10LmVudk1hcEludGVuc2l0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319O3ZsLnByb3RvdHlwZS5pc01lc2hTdGFuZGFyZE1hdGVyaWFsPSEwO3ZhciBmaD1jbGFzcyBleHRlbmRzIHZse2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIixQSFlTSUNBTDoiIn0sdGhpcy50eXBlPSJNZXNoUGh5c2ljYWxNYXRlcmlhbCIsdGhpcy5jbGVhcmNvYXRNYXA9bnVsbCx0aGlzLmNsZWFyY29hdFJvdWdobmVzcz0wLHRoaXMuY2xlYXJjb2F0Um91Z2huZXNzTWFwPW51bGwsdGhpcy5jbGVhcmNvYXROb3JtYWxTY2FsZT1uZXcgSygxLDEpLHRoaXMuY2xlYXJjb2F0Tm9ybWFsTWFwPW51bGwsdGhpcy5pb3I9MS41LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJyZWZsZWN0aXZpdHkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSWUoMi41Kih0aGlzLmlvci0xKS8odGhpcy5pb3IrMSksMCwxKX0sc2V0OmZ1bmN0aW9uKGUpe3RoaXMuaW9yPSgxKy40KmUpLygxLS40KmUpfX0pLHRoaXMuc2hlZW5Db2xvcj1uZXcgZnQoMCksdGhpcy5zaGVlbkNvbG9yTWFwPW51bGwsdGhpcy5zaGVlblJvdWdobmVzcz0xLHRoaXMuc2hlZW5Sb3VnaG5lc3NNYXA9bnVsbCx0aGlzLnRyYW5zbWlzc2lvbk1hcD1udWxsLHRoaXMudGhpY2tuZXNzPTAsdGhpcy50aGlja25lc3NNYXA9bnVsbCx0aGlzLmF0dGVudWF0aW9uRGlzdGFuY2U9MCx0aGlzLmF0dGVudWF0aW9uQ29sb3I9bmV3IGZ0KDEsMSwxKSx0aGlzLnNwZWN1bGFySW50ZW5zaXR5PTEsdGhpcy5zcGVjdWxhckludGVuc2l0eU1hcD1udWxsLHRoaXMuc3BlY3VsYXJDb2xvcj1uZXcgZnQoMSwxLDEpLHRoaXMuc3BlY3VsYXJDb2xvck1hcD1udWxsLHRoaXMuX3NoZWVuPTAsdGhpcy5fY2xlYXJjb2F0PTAsdGhpcy5fdHJhbnNtaXNzaW9uPTAsdGhpcy5zZXRWYWx1ZXModCl9Z2V0IHNoZWVuKCl7cmV0dXJuIHRoaXMuX3NoZWVufXNldCBzaGVlbih0KXt0aGlzLl9zaGVlbj4wIT10PjAmJnRoaXMudmVyc2lvbisrLHRoaXMuX3NoZWVuPXR9Z2V0IGNsZWFyY29hdCgpe3JldHVybiB0aGlzLl9jbGVhcmNvYXR9c2V0IGNsZWFyY29hdCh0KXt0aGlzLl9jbGVhcmNvYXQ+MCE9dD4wJiZ0aGlzLnZlcnNpb24rKyx0aGlzLl9jbGVhcmNvYXQ9dH1nZXQgdHJhbnNtaXNzaW9uKCl7cmV0dXJuIHRoaXMuX3RyYW5zbWlzc2lvbn1zZXQgdHJhbnNtaXNzaW9uKHQpe3RoaXMuX3RyYW5zbWlzc2lvbj4wIT10PjAmJnRoaXMudmVyc2lvbisrLHRoaXMuX3RyYW5zbWlzc2lvbj10fWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIixQSFlTSUNBTDoiIn0sdGhpcy5jbGVhcmNvYXQ9dC5jbGVhcmNvYXQsdGhpcy5jbGVhcmNvYXRNYXA9dC5jbGVhcmNvYXRNYXAsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3M9dC5jbGVhcmNvYXRSb3VnaG5lc3MsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXA9dC5jbGVhcmNvYXRSb3VnaG5lc3NNYXAsdGhpcy5jbGVhcmNvYXROb3JtYWxNYXA9dC5jbGVhcmNvYXROb3JtYWxNYXAsdGhpcy5jbGVhcmNvYXROb3JtYWxTY2FsZS5jb3B5KHQuY2xlYXJjb2F0Tm9ybWFsU2NhbGUpLHRoaXMuaW9yPXQuaW9yLHRoaXMuc2hlZW49dC5zaGVlbix0aGlzLnNoZWVuQ29sb3IuY29weSh0LnNoZWVuQ29sb3IpLHRoaXMuc2hlZW5Db2xvck1hcD10LnNoZWVuQ29sb3JNYXAsdGhpcy5zaGVlblJvdWdobmVzcz10LnNoZWVuUm91Z2huZXNzLHRoaXMuc2hlZW5Sb3VnaG5lc3NNYXA9dC5zaGVlblJvdWdobmVzc01hcCx0aGlzLnRyYW5zbWlzc2lvbj10LnRyYW5zbWlzc2lvbix0aGlzLnRyYW5zbWlzc2lvbk1hcD10LnRyYW5zbWlzc2lvbk1hcCx0aGlzLnRoaWNrbmVzcz10LnRoaWNrbmVzcyx0aGlzLnRoaWNrbmVzc01hcD10LnRoaWNrbmVzc01hcCx0aGlzLmF0dGVudWF0aW9uRGlzdGFuY2U9dC5hdHRlbnVhdGlvbkRpc3RhbmNlLHRoaXMuYXR0ZW51YXRpb25Db2xvci5jb3B5KHQuYXR0ZW51YXRpb25Db2xvciksdGhpcy5zcGVjdWxhckludGVuc2l0eT10LnNwZWN1bGFySW50ZW5zaXR5LHRoaXMuc3BlY3VsYXJJbnRlbnNpdHlNYXA9dC5zcGVjdWxhckludGVuc2l0eU1hcCx0aGlzLnNwZWN1bGFyQ29sb3IuY29weSh0LnNwZWN1bGFyQ29sb3IpLHRoaXMuc3BlY3VsYXJDb2xvck1hcD10LnNwZWN1bGFyQ29sb3JNYXAsdGhpc319O2ZoLnByb3RvdHlwZS5pc01lc2hQaHlzaWNhbE1hdGVyaWFsPSEwO3ZhciBkaD1jbGFzcyBleHRlbmRzIHhle2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoUGhvbmdNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgZnQoMTY3NzcyMTUpLHRoaXMuc3BlY3VsYXI9bmV3IGZ0KDExMTg0ODEpLHRoaXMuc2hpbmluZXNzPTMwLHRoaXMubWFwPW51bGwsdGhpcy5saWdodE1hcD1udWxsLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9MSx0aGlzLmFvTWFwPW51bGwsdGhpcy5hb01hcEludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmU9bmV3IGZ0KDApLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlTWFwPW51bGwsdGhpcy5idW1wTWFwPW51bGwsdGhpcy5idW1wU2NhbGU9MSx0aGlzLm5vcm1hbE1hcD1udWxsLHRoaXMubm9ybWFsTWFwVHlwZT10cyx0aGlzLm5vcm1hbFNjYWxlPW5ldyBLKDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy5zcGVjdWxhck1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmVudk1hcD1udWxsLHRoaXMuY29tYmluZT1DbCx0aGlzLnJlZmxlY3Rpdml0eT0xLHRoaXMucmVmcmFjdGlvblJhdGlvPS45OCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMud2lyZWZyYW1lTGluZWNhcD0icm91bmQiLHRoaXMud2lyZWZyYW1lTGluZWpvaW49InJvdW5kIix0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMuc3BlY3VsYXIuY29weSh0LnNwZWN1bGFyKSx0aGlzLnNoaW5pbmVzcz10LnNoaW5pbmVzcyx0aGlzLm1hcD10Lm1hcCx0aGlzLmxpZ2h0TWFwPXQubGlnaHRNYXAsdGhpcy5saWdodE1hcEludGVuc2l0eT10LmxpZ2h0TWFwSW50ZW5zaXR5LHRoaXMuYW9NYXA9dC5hb01hcCx0aGlzLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHksdGhpcy5lbWlzc2l2ZS5jb3B5KHQuZW1pc3NpdmUpLHRoaXMuZW1pc3NpdmVNYXA9dC5lbWlzc2l2ZU1hcCx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PXQuZW1pc3NpdmVJbnRlbnNpdHksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLnNwZWN1bGFyTWFwPXQuc3BlY3VsYXJNYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZW52TWFwPXQuZW52TWFwLHRoaXMuY29tYmluZT10LmNvbWJpbmUsdGhpcy5yZWZsZWN0aXZpdHk9dC5yZWZsZWN0aXZpdHksdGhpcy5yZWZyYWN0aW9uUmF0aW89dC5yZWZyYWN0aW9uUmF0aW8sdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCx0aGlzLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4sdGhpcy5mbGF0U2hhZGluZz10LmZsYXRTaGFkaW5nLHRoaXN9fTtkaC5wcm90b3R5cGUuaXNNZXNoUGhvbmdNYXRlcmlhbD0hMDt2YXIgcGg9Y2xhc3MgZXh0ZW5kcyB4ZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuZGVmaW5lcz17VE9PTjoiIn0sdGhpcy50eXBlPSJNZXNoVG9vbk1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBmdCgxNjc3NzIxNSksdGhpcy5tYXA9bnVsbCx0aGlzLmdyYWRpZW50TWFwPW51bGwsdGhpcy5saWdodE1hcD1udWxsLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9MSx0aGlzLmFvTWFwPW51bGwsdGhpcy5hb01hcEludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmU9bmV3IGZ0KDApLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlTWFwPW51bGwsdGhpcy5idW1wTWFwPW51bGwsdGhpcy5idW1wU2NhbGU9MSx0aGlzLm5vcm1hbE1hcD1udWxsLHRoaXMubm9ybWFsTWFwVHlwZT10cyx0aGlzLm5vcm1hbFNjYWxlPW5ldyBLKDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy53aXJlZnJhbWVMaW5lY2FwPSJyb3VuZCIsdGhpcy53aXJlZnJhbWVMaW5lam9pbj0icm91bmQiLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMuZ3JhZGllbnRNYXA9dC5ncmFkaWVudE1hcCx0aGlzLmxpZ2h0TWFwPXQubGlnaHRNYXAsdGhpcy5saWdodE1hcEludGVuc2l0eT10LmxpZ2h0TWFwSW50ZW5zaXR5LHRoaXMuYW9NYXA9dC5hb01hcCx0aGlzLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHksdGhpcy5lbWlzc2l2ZS5jb3B5KHQuZW1pc3NpdmUpLHRoaXMuZW1pc3NpdmVNYXA9dC5lbWlzc2l2ZU1hcCx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PXQuZW1pc3NpdmVJbnRlbnNpdHksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCx0aGlzLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4sdGhpc319O3BoLnByb3RvdHlwZS5pc01lc2hUb29uTWF0ZXJpYWw9ITA7dmFyIG1oPWNsYXNzIGV4dGVuZHMgeGV7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2hOb3JtYWxNYXRlcmlhbCIsdGhpcy5idW1wTWFwPW51bGwsdGhpcy5idW1wU2NhbGU9MSx0aGlzLm5vcm1hbE1hcD1udWxsLHRoaXMubm9ybWFsTWFwVHlwZT10cyx0aGlzLm5vcm1hbFNjYWxlPW5ldyBLKDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLmZvZz0hMSx0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319O21oLnByb3RvdHlwZS5pc01lc2hOb3JtYWxNYXRlcmlhbD0hMDt2YXIgZ2g9Y2xhc3MgZXh0ZW5kcyB4ZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaExhbWJlcnRNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgZnQoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5saWdodE1hcD1udWxsLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9MSx0aGlzLmFvTWFwPW51bGwsdGhpcy5hb01hcEludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmU9bmV3IGZ0KDApLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlTWFwPW51bGwsdGhpcy5zcGVjdWxhck1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmVudk1hcD1udWxsLHRoaXMuY29tYmluZT1DbCx0aGlzLnJlZmxlY3Rpdml0eT0xLHRoaXMucmVmcmFjdGlvblJhdGlvPS45OCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMud2lyZWZyYW1lTGluZWNhcD0icm91bmQiLHRoaXMud2lyZWZyYW1lTGluZWpvaW49InJvdW5kIix0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLm1hcD10Lm1hcCx0aGlzLmxpZ2h0TWFwPXQubGlnaHRNYXAsdGhpcy5saWdodE1hcEludGVuc2l0eT10LmxpZ2h0TWFwSW50ZW5zaXR5LHRoaXMuYW9NYXA9dC5hb01hcCx0aGlzLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHksdGhpcy5lbWlzc2l2ZS5jb3B5KHQuZW1pc3NpdmUpLHRoaXMuZW1pc3NpdmVNYXA9dC5lbWlzc2l2ZU1hcCx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PXQuZW1pc3NpdmVJbnRlbnNpdHksdGhpcy5zcGVjdWxhck1hcD10LnNwZWN1bGFyTWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmVudk1hcD10LmVudk1hcCx0aGlzLmNvbWJpbmU9dC5jb21iaW5lLHRoaXMucmVmbGVjdGl2aXR5PXQucmVmbGVjdGl2aXR5LHRoaXMucmVmcmFjdGlvblJhdGlvPXQucmVmcmFjdGlvblJhdGlvLHRoaXMud2lyZWZyYW1lPXQud2lyZWZyYW1lLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPXQud2lyZWZyYW1lTGluZXdpZHRoLHRoaXMud2lyZWZyYW1lTGluZWNhcD10LndpcmVmcmFtZUxpbmVjYXAsdGhpcy53aXJlZnJhbWVMaW5lam9pbj10LndpcmVmcmFtZUxpbmVqb2luLHRoaXN9fTtnaC5wcm90b3R5cGUuaXNNZXNoTGFtYmVydE1hdGVyaWFsPSEwO3ZhciB4aD1jbGFzcyBleHRlbmRzIHhle2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5kZWZpbmVzPXtNQVRDQVA6IiJ9LHRoaXMudHlwZT0iTWVzaE1hdGNhcE1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBmdCgxNjc3NzIxNSksdGhpcy5tYXRjYXA9bnVsbCx0aGlzLm1hcD1udWxsLHRoaXMuYnVtcE1hcD1udWxsLHRoaXMuYnVtcFNjYWxlPTEsdGhpcy5ub3JtYWxNYXA9bnVsbCx0aGlzLm5vcm1hbE1hcFR5cGU9dHMsdGhpcy5ub3JtYWxTY2FsZT1uZXcgSygxLDEpLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZWZpbmVzPXtNQVRDQVA6IiJ9LHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLm1hdGNhcD10Lm1hdGNhcCx0aGlzLm1hcD10Lm1hcCx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319O3hoLnByb3RvdHlwZS5pc01lc2hNYXRjYXBNYXRlcmlhbD0hMDt2YXIgeWg9Y2xhc3MgZXh0ZW5kcyB6bntjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTGluZURhc2hlZE1hdGVyaWFsIix0aGlzLnNjYWxlPTEsdGhpcy5kYXNoU2l6ZT0zLHRoaXMuZ2FwU2l6ZT0xLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5zY2FsZT10LnNjYWxlLHRoaXMuZGFzaFNpemU9dC5kYXNoU2l6ZSx0aGlzLmdhcFNpemU9dC5nYXBTaXplLHRoaXN9fTt5aC5wcm90b3R5cGUuaXNMaW5lRGFzaGVkTWF0ZXJpYWw9ITA7dmFyIEt0PXthcnJheVNsaWNlOmZ1bmN0aW9uKG4sdCxlKXtyZXR1cm4gS3QuaXNUeXBlZEFycmF5KG4pP25ldyBuLmNvbnN0cnVjdG9yKG4uc3ViYXJyYXkodCxlIT09dm9pZCAwP2U6bi5sZW5ndGgpKTpuLnNsaWNlKHQsZSl9LGNvbnZlcnRBcnJheTpmdW5jdGlvbihuLHQsZSl7cmV0dXJuIW58fCFlJiZuLmNvbnN0cnVjdG9yPT09dD9uOnR5cGVvZiB0LkJZVEVTX1BFUl9FTEVNRU5UPT0ibnVtYmVyIj9uZXcgdChuKTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuKX0saXNUeXBlZEFycmF5OmZ1bmN0aW9uKG4pe3JldHVybiBBcnJheUJ1ZmZlci5pc1ZpZXcobikmJiEobiBpbnN0YW5jZW9mIERhdGFWaWV3KX0sZ2V0S2V5ZnJhbWVPcmRlcjpmdW5jdGlvbihuKXtmdW5jdGlvbiB0KHIscyl7cmV0dXJuIG5bcl0tbltzXX1sZXQgZT1uLmxlbmd0aCxpPW5ldyBBcnJheShlKTtmb3IobGV0IHI9MDtyIT09ZTsrK3IpaVtyXT1yO3JldHVybiBpLnNvcnQodCksaX0sc29ydGVkQXJyYXk6ZnVuY3Rpb24obix0LGUpe2xldCBpPW4ubGVuZ3RoLHI9bmV3IG4uY29uc3RydWN0b3IoaSk7Zm9yKGxldCBzPTAsbz0wO28hPT1pOysrcyl7bGV0IGE9ZVtzXSp0O2ZvcihsZXQgbD0wO2whPT10OysrbClyW28rK109blthK2xdfXJldHVybiByfSxmbGF0dGVuSlNPTjpmdW5jdGlvbihuLHQsZSxpKXtsZXQgcj0xLHM9blswXTtmb3IoO3MhPT12b2lkIDAmJnNbaV09PT12b2lkIDA7KXM9bltyKytdO2lmKHM9PT12b2lkIDApcmV0dXJuO2xldCBvPXNbaV07aWYobyE9PXZvaWQgMClpZihBcnJheS5pc0FycmF5KG8pKWRvIG89c1tpXSxvIT09dm9pZCAwJiYodC5wdXNoKHMudGltZSksZS5wdXNoLmFwcGx5KGUsbykpLHM9bltyKytdO3doaWxlKHMhPT12b2lkIDApO2Vsc2UgaWYoby50b0FycmF5IT09dm9pZCAwKWRvIG89c1tpXSxvIT09dm9pZCAwJiYodC5wdXNoKHMudGltZSksby50b0FycmF5KGUsZS5sZW5ndGgpKSxzPW5bcisrXTt3aGlsZShzIT09dm9pZCAwKTtlbHNlIGRvIG89c1tpXSxvIT09dm9pZCAwJiYodC5wdXNoKHMudGltZSksZS5wdXNoKG8pKSxzPW5bcisrXTt3aGlsZShzIT09dm9pZCAwKX0sc3ViY2xpcDpmdW5jdGlvbihuLHQsZSxpLHI9MzApe2xldCBzPW4uY2xvbmUoKTtzLm5hbWU9dDtsZXQgbz1bXTtmb3IobGV0IGw9MDtsPHMudHJhY2tzLmxlbmd0aDsrK2wpe2xldCBjPXMudHJhY2tzW2xdLHU9Yy5nZXRWYWx1ZVNpemUoKSxoPVtdLGY9W107Zm9yKGxldCBkPTA7ZDxjLnRpbWVzLmxlbmd0aDsrK2Qpe2xldCBnPWMudGltZXNbZF0qcjtpZighKGc8ZXx8Zz49aSkpe2gucHVzaChjLnRpbWVzW2RdKTtmb3IobGV0IHg9MDt4PHU7Kyt4KWYucHVzaChjLnZhbHVlc1tkKnUreF0pfX1oLmxlbmd0aCE9PTAmJihjLnRpbWVzPUt0LmNvbnZlcnRBcnJheShoLGMudGltZXMuY29uc3RydWN0b3IpLGMudmFsdWVzPUt0LmNvbnZlcnRBcnJheShmLGMudmFsdWVzLmNvbnN0cnVjdG9yKSxvLnB1c2goYykpfXMudHJhY2tzPW87bGV0IGE9MS8wO2ZvcihsZXQgbD0wO2w8cy50cmFja3MubGVuZ3RoOysrbClhPnMudHJhY2tzW2xdLnRpbWVzWzBdJiYoYT1zLnRyYWNrc1tsXS50aW1lc1swXSk7Zm9yKGxldCBsPTA7bDxzLnRyYWNrcy5sZW5ndGg7KytsKXMudHJhY2tzW2xdLnNoaWZ0KC0xKmEpO3JldHVybiBzLnJlc2V0RHVyYXRpb24oKSxzfSxtYWtlQ2xpcEFkZGl0aXZlOmZ1bmN0aW9uKG4sdD0wLGU9bixpPTMwKXtpPD0wJiYoaT0zMCk7bGV0IHI9ZS50cmFja3MubGVuZ3RoLHM9dC9pO2ZvcihsZXQgbz0wO288cjsrK28pe2xldCBhPWUudHJhY2tzW29dLGw9YS5WYWx1ZVR5cGVOYW1lO2lmKGw9PT0iYm9vbCJ8fGw9PT0ic3RyaW5nIiljb250aW51ZTtsZXQgYz1uLnRyYWNrcy5maW5kKGZ1bmN0aW9uKG0pe3JldHVybiBtLm5hbWU9PT1hLm5hbWUmJm0uVmFsdWVUeXBlTmFtZT09PWx9KTtpZihjPT09dm9pZCAwKWNvbnRpbnVlO2xldCB1PTAsaD1hLmdldFZhbHVlU2l6ZSgpO2EuY3JlYXRlSW50ZXJwb2xhbnQuaXNJbnRlcnBvbGFudEZhY3RvcnlNZXRob2RHTFRGQ3ViaWNTcGxpbmUmJih1PWgvMyk7bGV0IGY9MCxkPWMuZ2V0VmFsdWVTaXplKCk7Yy5jcmVhdGVJbnRlcnBvbGFudC5pc0ludGVycG9sYW50RmFjdG9yeU1ldGhvZEdMVEZDdWJpY1NwbGluZSYmKGY9ZC8zKTtsZXQgZz1hLnRpbWVzLmxlbmd0aC0xLHg7aWYoczw9YS50aW1lc1swXSl7bGV0IG09dSxwPWgtdTt4PUt0LmFycmF5U2xpY2UoYS52YWx1ZXMsbSxwKX1lbHNlIGlmKHM+PWEudGltZXNbZ10pe2xldCBtPWcqaCt1LHA9bStoLXU7eD1LdC5hcnJheVNsaWNlKGEudmFsdWVzLG0scCl9ZWxzZXtsZXQgbT1hLmNyZWF0ZUludGVycG9sYW50KCkscD11LGI9aC11O20uZXZhbHVhdGUocykseD1LdC5hcnJheVNsaWNlKG0ucmVzdWx0QnVmZmVyLHAsYil9bD09PSJxdWF0ZXJuaW9uIiYmbmV3IEVlKCkuZnJvbUFycmF5KHgpLm5vcm1hbGl6ZSgpLmNvbmp1Z2F0ZSgpLnRvQXJyYXkoeCk7bGV0IHY9Yy50aW1lcy5sZW5ndGg7Zm9yKGxldCBtPTA7bTx2OysrbSl7bGV0IHA9bSpkK2Y7aWYobD09PSJxdWF0ZXJuaW9uIilFZS5tdWx0aXBseVF1YXRlcm5pb25zRmxhdChjLnZhbHVlcyxwLHgsMCxjLnZhbHVlcyxwKTtlbHNle2xldCBiPWQtZioyO2ZvcihsZXQgXz0wO188YjsrK18pYy52YWx1ZXNbcCtfXS09eFtfXX19fXJldHVybiBuLmJsZW5kTW9kZT1kMCxufX0scG49Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkscil7dGhpcy5wYXJhbWV0ZXJQb3NpdGlvbnM9dCx0aGlzLl9jYWNoZWRJbmRleD0wLHRoaXMucmVzdWx0QnVmZmVyPXIhPT12b2lkIDA/cjpuZXcgZS5jb25zdHJ1Y3RvcihpKSx0aGlzLnNhbXBsZVZhbHVlcz1lLHRoaXMudmFsdWVTaXplPWksdGhpcy5zZXR0aW5ncz1udWxsLHRoaXMuRGVmYXVsdFNldHRpbmdzXz17fX1ldmFsdWF0ZSh0KXtsZXQgZT10aGlzLnBhcmFtZXRlclBvc2l0aW9ucyxpPXRoaXMuX2NhY2hlZEluZGV4LHI9ZVtpXSxzPWVbaS0xXTt0OntlOntsZXQgbztuOntpOmlmKCEodDxyKSl7Zm9yKGxldCBhPWkrMjs7KXtpZihyPT09dm9pZCAwKXtpZih0PHMpYnJlYWsgaTtyZXR1cm4gaT1lLmxlbmd0aCx0aGlzLl9jYWNoZWRJbmRleD1pLHRoaXMuYWZ0ZXJFbmRfKGktMSx0LHMpfWlmKGk9PT1hKWJyZWFrO2lmKHM9cixyPWVbKytpXSx0PHIpYnJlYWsgZX1vPWUubGVuZ3RoO2JyZWFrIG59aWYoISh0Pj1zKSl7bGV0IGE9ZVsxXTt0PGEmJihpPTIscz1hKTtmb3IobGV0IGw9aS0yOzspe2lmKHM9PT12b2lkIDApcmV0dXJuIHRoaXMuX2NhY2hlZEluZGV4PTAsdGhpcy5iZWZvcmVTdGFydF8oMCx0LHIpO2lmKGk9PT1sKWJyZWFrO2lmKHI9cyxzPWVbLS1pLTFdLHQ+PXMpYnJlYWsgZX1vPWksaT0wO2JyZWFrIG59YnJlYWsgdH1mb3IoO2k8bzspe2xldCBhPWkrbz4+PjE7dDxlW2FdP289YTppPWErMX1pZihyPWVbaV0scz1lW2ktMV0scz09PXZvaWQgMClyZXR1cm4gdGhpcy5fY2FjaGVkSW5kZXg9MCx0aGlzLmJlZm9yZVN0YXJ0XygwLHQscik7aWYocj09PXZvaWQgMClyZXR1cm4gaT1lLmxlbmd0aCx0aGlzLl9jYWNoZWRJbmRleD1pLHRoaXMuYWZ0ZXJFbmRfKGktMSxzLHQpfXRoaXMuX2NhY2hlZEluZGV4PWksdGhpcy5pbnRlcnZhbENoYW5nZWRfKGkscyxyKX1yZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZV8oaSxzLHQscil9Z2V0U2V0dGluZ3NfKCl7cmV0dXJuIHRoaXMuc2V0dGluZ3N8fHRoaXMuRGVmYXVsdFNldHRpbmdzX31jb3B5U2FtcGxlVmFsdWVfKHQpe2xldCBlPXRoaXMucmVzdWx0QnVmZmVyLGk9dGhpcy5zYW1wbGVWYWx1ZXMscj10aGlzLnZhbHVlU2l6ZSxzPXQqcjtmb3IobGV0IG89MDtvIT09cjsrK28pZVtvXT1pW3Mrb107cmV0dXJuIGV9aW50ZXJwb2xhdGVfKCl7dGhyb3cgbmV3IEVycm9yKCJjYWxsIHRvIGFic3RyYWN0IG1ldGhvZCIpfWludGVydmFsQ2hhbmdlZF8oKXt9fTtwbi5wcm90b3R5cGUuYmVmb3JlU3RhcnRfPXBuLnByb3RvdHlwZS5jb3B5U2FtcGxlVmFsdWVfO3BuLnByb3RvdHlwZS5hZnRlckVuZF89cG4ucHJvdG90eXBlLmNvcHlTYW1wbGVWYWx1ZV87dmFyIHZoPWNsYXNzIGV4dGVuZHMgcG57Y29uc3RydWN0b3IodCxlLGkscil7c3VwZXIodCxlLGksciksdGhpcy5fd2VpZ2h0UHJldj0tMCx0aGlzLl9vZmZzZXRQcmV2PS0wLHRoaXMuX3dlaWdodE5leHQ9LTAsdGhpcy5fb2Zmc2V0TmV4dD0tMCx0aGlzLkRlZmF1bHRTZXR0aW5nc189e2VuZGluZ1N0YXJ0Ok5yLGVuZGluZ0VuZDpOcn19aW50ZXJ2YWxDaGFuZ2VkXyh0LGUsaSl7bGV0IHI9dGhpcy5wYXJhbWV0ZXJQb3NpdGlvbnMscz10LTIsbz10KzEsYT1yW3NdLGw9cltvXTtpZihhPT09dm9pZCAwKXN3aXRjaCh0aGlzLmdldFNldHRpbmdzXygpLmVuZGluZ1N0YXJ0KXtjYXNlIEZyOnM9dCxhPTIqZS1pO2JyZWFrO2Nhc2UgZWw6cz1yLmxlbmd0aC0yLGE9ZStyW3NdLXJbcysxXTticmVhaztkZWZhdWx0OnM9dCxhPWl9aWYobD09PXZvaWQgMClzd2l0Y2godGhpcy5nZXRTZXR0aW5nc18oKS5lbmRpbmdFbmQpe2Nhc2UgRnI6bz10LGw9MippLWU7YnJlYWs7Y2FzZSBlbDpvPTEsbD1pK3JbMV0tclswXTticmVhaztkZWZhdWx0Om89dC0xLGw9ZX1sZXQgYz0oaS1lKSouNSx1PXRoaXMudmFsdWVTaXplO3RoaXMuX3dlaWdodFByZXY9Yy8oZS1hKSx0aGlzLl93ZWlnaHROZXh0PWMvKGwtaSksdGhpcy5fb2Zmc2V0UHJldj1zKnUsdGhpcy5fb2Zmc2V0TmV4dD1vKnV9aW50ZXJwb2xhdGVfKHQsZSxpLHIpe2xldCBzPXRoaXMucmVzdWx0QnVmZmVyLG89dGhpcy5zYW1wbGVWYWx1ZXMsYT10aGlzLnZhbHVlU2l6ZSxsPXQqYSxjPWwtYSx1PXRoaXMuX29mZnNldFByZXYsaD10aGlzLl9vZmZzZXROZXh0LGY9dGhpcy5fd2VpZ2h0UHJldixkPXRoaXMuX3dlaWdodE5leHQsZz0oaS1lKS8oci1lKSx4PWcqZyx2PXgqZyxtPS1mKnYrMipmKngtZipnLHA9KDErZikqdisoLTEuNS0yKmYpKngrKC0uNStmKSpnKzEsYj0oLTEtZCkqdisoMS41K2QpKngrLjUqZyxfPWQqdi1kKng7Zm9yKGxldCBTPTA7UyE9PWE7KytTKXNbU109bSpvW3UrU10rcCpvW2MrU10rYipvW2wrU10rXypvW2grU107cmV0dXJuIHN9fSxfbD1jbGFzcyBleHRlbmRzIHBue2NvbnN0cnVjdG9yKHQsZSxpLHIpe3N1cGVyKHQsZSxpLHIpfWludGVycG9sYXRlXyh0LGUsaSxyKXtsZXQgcz10aGlzLnJlc3VsdEJ1ZmZlcixvPXRoaXMuc2FtcGxlVmFsdWVzLGE9dGhpcy52YWx1ZVNpemUsbD10KmEsYz1sLWEsdT0oaS1lKS8oci1lKSxoPTEtdTtmb3IobGV0IGY9MDtmIT09YTsrK2Ypc1tmXT1vW2MrZl0qaCtvW2wrZl0qdTtyZXR1cm4gc319LF9oPWNsYXNzIGV4dGVuZHMgcG57Y29uc3RydWN0b3IodCxlLGkscil7c3VwZXIodCxlLGkscil9aW50ZXJwb2xhdGVfKHQpe3JldHVybiB0aGlzLmNvcHlTYW1wbGVWYWx1ZV8odC0xKX19LFhlPWNsYXNze2NvbnN0cnVjdG9yKHQsZSxpLHIpe2lmKHQ9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiB0cmFjayBuYW1lIGlzIHVuZGVmaW5lZCIpO2lmKGU9PT12b2lkIDB8fGUubGVuZ3RoPT09MCl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IG5vIGtleWZyYW1lcyBpbiB0cmFjayBuYW1lZCAiK3QpO3RoaXMubmFtZT10LHRoaXMudGltZXM9S3QuY29udmVydEFycmF5KGUsdGhpcy5UaW1lQnVmZmVyVHlwZSksdGhpcy52YWx1ZXM9S3QuY29udmVydEFycmF5KGksdGhpcy5WYWx1ZUJ1ZmZlclR5cGUpLHRoaXMuc2V0SW50ZXJwb2xhdGlvbihyfHx0aGlzLkRlZmF1bHRJbnRlcnBvbGF0aW9uKX1zdGF0aWMgdG9KU09OKHQpe2xldCBlPXQuY29uc3RydWN0b3IsaTtpZihlLnRvSlNPTiE9PXRoaXMudG9KU09OKWk9ZS50b0pTT04odCk7ZWxzZXtpPXtuYW1lOnQubmFtZSx0aW1lczpLdC5jb252ZXJ0QXJyYXkodC50aW1lcyxBcnJheSksdmFsdWVzOkt0LmNvbnZlcnRBcnJheSh0LnZhbHVlcyxBcnJheSl9O2xldCByPXQuZ2V0SW50ZXJwb2xhdGlvbigpO3IhPT10LkRlZmF1bHRJbnRlcnBvbGF0aW9uJiYoaS5pbnRlcnBvbGF0aW9uPXIpfXJldHVybiBpLnR5cGU9dC5WYWx1ZVR5cGVOYW1lLGl9SW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kRGlzY3JldGUodCl7cmV0dXJuIG5ldyBfaCh0aGlzLnRpbWVzLHRoaXMudmFsdWVzLHRoaXMuZ2V0VmFsdWVTaXplKCksdCl9SW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyKHQpe3JldHVybiBuZXcgX2wodGhpcy50aW1lcyx0aGlzLnZhbHVlcyx0aGlzLmdldFZhbHVlU2l6ZSgpLHQpfUludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aCh0KXtyZXR1cm4gbmV3IHZoKHRoaXMudGltZXMsdGhpcy52YWx1ZXMsdGhpcy5nZXRWYWx1ZVNpemUoKSx0KX1zZXRJbnRlcnBvbGF0aW9uKHQpe2xldCBlO3N3aXRjaCh0KXtjYXNlIGphOmU9dGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZTticmVhaztjYXNlIHRsOmU9dGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXI7YnJlYWs7Y2FzZSBldTplPXRoaXMuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoO2JyZWFrfWlmKGU9PT12b2lkIDApe2xldCBpPSJ1bnN1cHBvcnRlZCBpbnRlcnBvbGF0aW9uIGZvciAiK3RoaXMuVmFsdWVUeXBlTmFtZSsiIGtleWZyYW1lIHRyYWNrIG5hbWVkICIrdGhpcy5uYW1lO2lmKHRoaXMuY3JlYXRlSW50ZXJwb2xhbnQ9PT12b2lkIDApaWYodCE9PXRoaXMuRGVmYXVsdEludGVycG9sYXRpb24pdGhpcy5zZXRJbnRlcnBvbGF0aW9uKHRoaXMuRGVmYXVsdEludGVycG9sYXRpb24pO2Vsc2UgdGhyb3cgbmV3IEVycm9yKGkpO3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLktleWZyYW1lVHJhY2s6IixpKSx0aGlzfXJldHVybiB0aGlzLmNyZWF0ZUludGVycG9sYW50PWUsdGhpc31nZXRJbnRlcnBvbGF0aW9uKCl7c3dpdGNoKHRoaXMuY3JlYXRlSW50ZXJwb2xhbnQpe2Nhc2UgdGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2REaXNjcmV0ZTpyZXR1cm4gamE7Y2FzZSB0aGlzLkludGVycG9sYW50RmFjdG9yeU1ldGhvZExpbmVhcjpyZXR1cm4gdGw7Y2FzZSB0aGlzLkludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aDpyZXR1cm4gZXV9fWdldFZhbHVlU2l6ZSgpe3JldHVybiB0aGlzLnZhbHVlcy5sZW5ndGgvdGhpcy50aW1lcy5sZW5ndGh9c2hpZnQodCl7aWYodCE9PTApe2xldCBlPXRoaXMudGltZXM7Zm9yKGxldCBpPTAscj1lLmxlbmd0aDtpIT09cjsrK2kpZVtpXSs9dH1yZXR1cm4gdGhpc31zY2FsZSh0KXtpZih0IT09MSl7bGV0IGU9dGhpcy50aW1lcztmb3IobGV0IGk9MCxyPWUubGVuZ3RoO2khPT1yOysraSllW2ldKj10fXJldHVybiB0aGlzfXRyaW0odCxlKXtsZXQgaT10aGlzLnRpbWVzLHI9aS5sZW5ndGgscz0wLG89ci0xO2Zvcig7cyE9PXImJmlbc108dDspKytzO2Zvcig7byE9PS0xJiZpW29dPmU7KS0tbztpZigrK28scyE9PTB8fG8hPT1yKXtzPj1vJiYobz1NYXRoLm1heChvLDEpLHM9by0xKTtsZXQgYT10aGlzLmdldFZhbHVlU2l6ZSgpO3RoaXMudGltZXM9S3QuYXJyYXlTbGljZShpLHMsbyksdGhpcy52YWx1ZXM9S3QuYXJyYXlTbGljZSh0aGlzLnZhbHVlcyxzKmEsbyphKX1yZXR1cm4gdGhpc312YWxpZGF0ZSgpe2xldCB0PSEwLGU9dGhpcy5nZXRWYWx1ZVNpemUoKTtlLU1hdGguZmxvb3IoZSkhPT0wJiYoY29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogSW52YWxpZCB2YWx1ZSBzaXplIGluIHRyYWNrLiIsdGhpcyksdD0hMSk7bGV0IGk9dGhpcy50aW1lcyxyPXRoaXMudmFsdWVzLHM9aS5sZW5ndGg7cz09PTAmJihjb25zb2xlLmVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBUcmFjayBpcyBlbXB0eS4iLHRoaXMpLHQ9ITEpO2xldCBvPW51bGw7Zm9yKGxldCBhPTA7YSE9PXM7YSsrKXtsZXQgbD1pW2FdO2lmKHR5cGVvZiBsPT0ibnVtYmVyIiYmaXNOYU4obCkpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IFRpbWUgaXMgbm90IGEgdmFsaWQgbnVtYmVyLiIsdGhpcyxhLGwpLHQ9ITE7YnJlYWt9aWYobyE9PW51bGwmJm8+bCl7Y29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogT3V0IG9mIG9yZGVyIGtleXMuIix0aGlzLGEsbCxvKSx0PSExO2JyZWFrfW89bH1pZihyIT09dm9pZCAwJiZLdC5pc1R5cGVkQXJyYXkocikpZm9yKGxldCBhPTAsbD1yLmxlbmd0aDthIT09bDsrK2Epe2xldCBjPXJbYV07aWYoaXNOYU4oYykpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IFZhbHVlIGlzIG5vdCBhIHZhbGlkIG51bWJlci4iLHRoaXMsYSxjKSx0PSExO2JyZWFrfX1yZXR1cm4gdH1vcHRpbWl6ZSgpe2xldCB0PUt0LmFycmF5U2xpY2UodGhpcy50aW1lcyksZT1LdC5hcnJheVNsaWNlKHRoaXMudmFsdWVzKSxpPXRoaXMuZ2V0VmFsdWVTaXplKCkscj10aGlzLmdldEludGVycG9sYXRpb24oKT09PWV1LHM9dC5sZW5ndGgtMSxvPTE7Zm9yKGxldCBhPTE7YTxzOysrYSl7bGV0IGw9ITEsYz10W2FdLHU9dFthKzFdO2lmKGMhPT11JiYoYSE9PTF8fGMhPT10WzBdKSlpZihyKWw9ITA7ZWxzZXtsZXQgaD1hKmksZj1oLWksZD1oK2k7Zm9yKGxldCBnPTA7ZyE9PWk7KytnKXtsZXQgeD1lW2grZ107aWYoeCE9PWVbZitnXXx8eCE9PWVbZCtnXSl7bD0hMDticmVha319fWlmKGwpe2lmKGEhPT1vKXt0W29dPXRbYV07bGV0IGg9YSppLGY9byppO2ZvcihsZXQgZD0wO2QhPT1pOysrZCllW2YrZF09ZVtoK2RdfSsrb319aWYocz4wKXt0W29dPXRbc107Zm9yKGxldCBhPXMqaSxsPW8qaSxjPTA7YyE9PWk7KytjKWVbbCtjXT1lW2ErY107KytvfXJldHVybiBvIT09dC5sZW5ndGg/KHRoaXMudGltZXM9S3QuYXJyYXlTbGljZSh0LDAsbyksdGhpcy52YWx1ZXM9S3QuYXJyYXlTbGljZShlLDAsbyppKSk6KHRoaXMudGltZXM9dCx0aGlzLnZhbHVlcz1lKSx0aGlzfWNsb25lKCl7bGV0IHQ9S3QuYXJyYXlTbGljZSh0aGlzLnRpbWVzLDApLGU9S3QuYXJyYXlTbGljZSh0aGlzLnZhbHVlcywwKSxpPXRoaXMuY29uc3RydWN0b3Iscj1uZXcgaSh0aGlzLm5hbWUsdCxlKTtyZXR1cm4gci5jcmVhdGVJbnRlcnBvbGFudD10aGlzLmNyZWF0ZUludGVycG9sYW50LHJ9fTtYZS5wcm90b3R5cGUuVGltZUJ1ZmZlclR5cGU9RmxvYXQzMkFycmF5O1hlLnByb3RvdHlwZS5WYWx1ZUJ1ZmZlclR5cGU9RmxvYXQzMkFycmF5O1hlLnByb3RvdHlwZS5EZWZhdWx0SW50ZXJwb2xhdGlvbj10bDt2YXIgdWk9Y2xhc3MgZXh0ZW5kcyBYZXt9O3VpLnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJib29sIjt1aS5wcm90b3R5cGUuVmFsdWVCdWZmZXJUeXBlPUFycmF5O3VpLnByb3RvdHlwZS5EZWZhdWx0SW50ZXJwb2xhdGlvbj1qYTt1aS5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyPXZvaWQgMDt1aS5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoPXZvaWQgMDt2YXIgd2w9Y2xhc3MgZXh0ZW5kcyBYZXt9O3dsLnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJjb2xvciI7dmFyIEtyPWNsYXNzIGV4dGVuZHMgWGV7fTtLci5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0ibnVtYmVyIjt2YXIgd2g9Y2xhc3MgZXh0ZW5kcyBwbntjb25zdHJ1Y3Rvcih0LGUsaSxyKXtzdXBlcih0LGUsaSxyKX1pbnRlcnBvbGF0ZV8odCxlLGkscil7bGV0IHM9dGhpcy5yZXN1bHRCdWZmZXIsbz10aGlzLnNhbXBsZVZhbHVlcyxhPXRoaXMudmFsdWVTaXplLGw9KGktZSkvKHItZSksYz10KmE7Zm9yKGxldCB1PWMrYTtjIT09dTtjKz00KUVlLnNsZXJwRmxhdChzLDAsbyxjLWEsbyxjLGwpO3JldHVybiBzfX0sWGk9Y2xhc3MgZXh0ZW5kcyBYZXtJbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXIodCl7cmV0dXJuIG5ldyB3aCh0aGlzLnRpbWVzLHRoaXMudmFsdWVzLHRoaXMuZ2V0VmFsdWVTaXplKCksdCl9fTtYaS5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0icXVhdGVybmlvbiI7WGkucHJvdG90eXBlLkRlZmF1bHRJbnRlcnBvbGF0aW9uPXRsO1hpLnByb3RvdHlwZS5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGg9dm9pZCAwO3ZhciBoaT1jbGFzcyBleHRlbmRzIFhle307aGkucHJvdG90eXBlLlZhbHVlVHlwZU5hbWU9InN0cmluZyI7aGkucHJvdG90eXBlLlZhbHVlQnVmZmVyVHlwZT1BcnJheTtoaS5wcm90b3R5cGUuRGVmYXVsdEludGVycG9sYXRpb249amE7aGkucHJvdG90eXBlLkludGVycG9sYW50RmFjdG9yeU1ldGhvZExpbmVhcj12b2lkIDA7aGkucHJvdG90eXBlLkludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aD12b2lkIDA7dmFyIFFyPWNsYXNzIGV4dGVuZHMgWGV7fTtRci5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0idmVjdG9yIjt2YXIgTWw9Y2xhc3N7Y29uc3RydWN0b3IodCxlPS0xLGkscj1RaCl7dGhpcy5uYW1lPXQsdGhpcy50cmFja3M9aSx0aGlzLmR1cmF0aW9uPWUsdGhpcy5ibGVuZE1vZGU9cix0aGlzLnV1aWQ9dG4oKSx0aGlzLmR1cmF0aW9uPDAmJnRoaXMucmVzZXREdXJhdGlvbigpfXN0YXRpYyBwYXJzZSh0KXtsZXQgZT1bXSxpPXQudHJhY2tzLHI9MS8odC5mcHN8fDEpO2ZvcihsZXQgbz0wLGE9aS5sZW5ndGg7byE9PWE7KytvKWUucHVzaChjVChpW29dKS5zY2FsZShyKSk7bGV0IHM9bmV3IHRoaXModC5uYW1lLHQuZHVyYXRpb24sZSx0LmJsZW5kTW9kZSk7cmV0dXJuIHMudXVpZD10LnV1aWQsc31zdGF0aWMgdG9KU09OKHQpe2xldCBlPVtdLGk9dC50cmFja3Mscj17bmFtZTp0Lm5hbWUsZHVyYXRpb246dC5kdXJhdGlvbix0cmFja3M6ZSx1dWlkOnQudXVpZCxibGVuZE1vZGU6dC5ibGVuZE1vZGV9O2ZvcihsZXQgcz0wLG89aS5sZW5ndGg7cyE9PW87KytzKWUucHVzaChYZS50b0pTT04oaVtzXSkpO3JldHVybiByfXN0YXRpYyBDcmVhdGVGcm9tTW9ycGhUYXJnZXRTZXF1ZW5jZSh0LGUsaSxyKXtsZXQgcz1lLmxlbmd0aCxvPVtdO2ZvcihsZXQgYT0wO2E8czthKyspe2xldCBsPVtdLGM9W107bC5wdXNoKChhK3MtMSklcyxhLChhKzEpJXMpLGMucHVzaCgwLDEsMCk7bGV0IHU9S3QuZ2V0S2V5ZnJhbWVPcmRlcihsKTtsPUt0LnNvcnRlZEFycmF5KGwsMSx1KSxjPUt0LnNvcnRlZEFycmF5KGMsMSx1KSwhciYmbFswXT09PTAmJihsLnB1c2gocyksYy5wdXNoKGNbMF0pKSxvLnB1c2gobmV3IEtyKCIubW9ycGhUYXJnZXRJbmZsdWVuY2VzWyIrZVthXS5uYW1lKyJdIixsLGMpLnNjYWxlKDEvaSkpfXJldHVybiBuZXcgdGhpcyh0LC0xLG8pfXN0YXRpYyBmaW5kQnlOYW1lKHQsZSl7bGV0IGk9dDtpZighQXJyYXkuaXNBcnJheSh0KSl7bGV0IHI9dDtpPXIuZ2VvbWV0cnkmJnIuZ2VvbWV0cnkuYW5pbWF0aW9uc3x8ci5hbmltYXRpb25zfWZvcihsZXQgcj0wO3I8aS5sZW5ndGg7cisrKWlmKGlbcl0ubmFtZT09PWUpcmV0dXJuIGlbcl07cmV0dXJuIG51bGx9c3RhdGljIENyZWF0ZUNsaXBzRnJvbU1vcnBoVGFyZ2V0U2VxdWVuY2VzKHQsZSxpKXtsZXQgcj17fSxzPS9eKFtcdy1dKj8pKFtcZF0rKSQvO2ZvcihsZXQgYT0wLGw9dC5sZW5ndGg7YTxsO2ErKyl7bGV0IGM9dFthXSx1PWMubmFtZS5tYXRjaChzKTtpZih1JiZ1Lmxlbmd0aD4xKXtsZXQgaD11WzFdLGY9cltoXTtmfHwocltoXT1mPVtdKSxmLnB1c2goYyl9fWxldCBvPVtdO2ZvcihsZXQgYSBpbiByKW8ucHVzaCh0aGlzLkNyZWF0ZUZyb21Nb3JwaFRhcmdldFNlcXVlbmNlKGEsclthXSxlLGkpKTtyZXR1cm4gb31zdGF0aWMgcGFyc2VBbmltYXRpb24odCxlKXtpZighdClyZXR1cm4gY29uc29sZS5lcnJvcigiVEhSRUUuQW5pbWF0aW9uQ2xpcDogTm8gYW5pbWF0aW9uIGluIEpTT05Mb2FkZXIgZGF0YS4iKSxudWxsO2xldCBpPWZ1bmN0aW9uKGgsZixkLGcseCl7aWYoZC5sZW5ndGghPT0wKXtsZXQgdj1bXSxtPVtdO0t0LmZsYXR0ZW5KU09OKGQsdixtLGcpLHYubGVuZ3RoIT09MCYmeC5wdXNoKG5ldyBoKGYsdixtKSl9fSxyPVtdLHM9dC5uYW1lfHwiZGVmYXVsdCIsbz10LmZwc3x8MzAsYT10LmJsZW5kTW9kZSxsPXQubGVuZ3RofHwtMSxjPXQuaGllcmFyY2h5fHxbXTtmb3IobGV0IGg9MDtoPGMubGVuZ3RoO2grKyl7bGV0IGY9Y1toXS5rZXlzO2lmKCEoIWZ8fGYubGVuZ3RoPT09MCkpaWYoZlswXS5tb3JwaFRhcmdldHMpe2xldCBkPXt9LGc7Zm9yKGc9MDtnPGYubGVuZ3RoO2crKylpZihmW2ddLm1vcnBoVGFyZ2V0cylmb3IobGV0IHg9MDt4PGZbZ10ubW9ycGhUYXJnZXRzLmxlbmd0aDt4KyspZFtmW2ddLm1vcnBoVGFyZ2V0c1t4XV09LTE7Zm9yKGxldCB4IGluIGQpe2xldCB2PVtdLG09W107Zm9yKGxldCBwPTA7cCE9PWZbZ10ubW9ycGhUYXJnZXRzLmxlbmd0aDsrK3Ape2xldCBiPWZbZ107di5wdXNoKGIudGltZSksbS5wdXNoKGIubW9ycGhUYXJnZXQ9PT14PzE6MCl9ci5wdXNoKG5ldyBLcigiLm1vcnBoVGFyZ2V0SW5mbHVlbmNlWyIreCsiXSIsdixtKSl9bD1kLmxlbmd0aCoob3x8MSl9ZWxzZXtsZXQgZD0iLmJvbmVzWyIrZVtoXS5uYW1lKyJdIjtpKFFyLGQrIi5wb3NpdGlvbiIsZiwicG9zIixyKSxpKFhpLGQrIi5xdWF0ZXJuaW9uIixmLCJyb3QiLHIpLGkoUXIsZCsiLnNjYWxlIixmLCJzY2wiLHIpfX1yZXR1cm4gci5sZW5ndGg9PT0wP251bGw6bmV3IHRoaXMocyxsLHIsYSl9cmVzZXREdXJhdGlvbigpe2xldCB0PXRoaXMudHJhY2tzLGU9MDtmb3IobGV0IGk9MCxyPXQubGVuZ3RoO2khPT1yOysraSl7bGV0IHM9dGhpcy50cmFja3NbaV07ZT1NYXRoLm1heChlLHMudGltZXNbcy50aW1lcy5sZW5ndGgtMV0pfXJldHVybiB0aGlzLmR1cmF0aW9uPWUsdGhpc310cmltKCl7Zm9yKGxldCB0PTA7dDx0aGlzLnRyYWNrcy5sZW5ndGg7dCsrKXRoaXMudHJhY2tzW3RdLnRyaW0oMCx0aGlzLmR1cmF0aW9uKTtyZXR1cm4gdGhpc312YWxpZGF0ZSgpe2xldCB0PSEwO2ZvcihsZXQgZT0wO2U8dGhpcy50cmFja3MubGVuZ3RoO2UrKyl0PXQmJnRoaXMudHJhY2tzW2VdLnZhbGlkYXRlKCk7cmV0dXJuIHR9b3B0aW1pemUoKXtmb3IobGV0IHQ9MDt0PHRoaXMudHJhY2tzLmxlbmd0aDt0KyspdGhpcy50cmFja3NbdF0ub3B0aW1pemUoKTtyZXR1cm4gdGhpc31jbG9uZSgpe2xldCB0PVtdO2ZvcihsZXQgZT0wO2U8dGhpcy50cmFja3MubGVuZ3RoO2UrKyl0LnB1c2godGhpcy50cmFja3NbZV0uY2xvbmUoKSk7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMubmFtZSx0aGlzLmR1cmF0aW9uLHQsdGhpcy5ibGVuZE1vZGUpfXRvSlNPTigpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLnRvSlNPTih0aGlzKX19O2Z1bmN0aW9uIGxUKG4pe3N3aXRjaChuLnRvTG93ZXJDYXNlKCkpe2Nhc2Uic2NhbGFyIjpjYXNlImRvdWJsZSI6Y2FzZSJmbG9hdCI6Y2FzZSJudW1iZXIiOmNhc2UiaW50ZWdlciI6cmV0dXJuIEtyO2Nhc2UidmVjdG9yIjpjYXNlInZlY3RvcjIiOmNhc2UidmVjdG9yMyI6Y2FzZSJ2ZWN0b3I0IjpyZXR1cm4gUXI7Y2FzZSJjb2xvciI6cmV0dXJuIHdsO2Nhc2UicXVhdGVybmlvbiI6cmV0dXJuIFhpO2Nhc2UiYm9vbCI6Y2FzZSJib29sZWFuIjpyZXR1cm4gdWk7Y2FzZSJzdHJpbmciOnJldHVybiBoaX10aHJvdyBuZXcgRXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IFVuc3VwcG9ydGVkIHR5cGVOYW1lOiAiK24pfWZ1bmN0aW9uIGNUKG4pe2lmKG4udHlwZT09PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IHRyYWNrIHR5cGUgdW5kZWZpbmVkLCBjYW4gbm90IHBhcnNlIik7bGV0IHQ9bFQobi50eXBlKTtpZihuLnRpbWVzPT09dm9pZCAwKXtsZXQgZT1bXSxpPVtdO0t0LmZsYXR0ZW5KU09OKG4ua2V5cyxlLGksInZhbHVlIiksbi50aW1lcz1lLG4udmFsdWVzPWl9cmV0dXJuIHQucGFyc2UhPT12b2lkIDA/dC5wYXJzZShuKTpuZXcgdChuLm5hbWUsbi50aW1lcyxuLnZhbHVlcyxuLmludGVycG9sYXRpb24pfXZhciBqcj17ZW5hYmxlZDohMSxmaWxlczp7fSxhZGQ6ZnVuY3Rpb24obix0KXt0aGlzLmVuYWJsZWQhPT0hMSYmKHRoaXMuZmlsZXNbbl09dCl9LGdldDpmdW5jdGlvbihuKXtpZih0aGlzLmVuYWJsZWQhPT0hMSlyZXR1cm4gdGhpcy5maWxlc1tuXX0scmVtb3ZlOmZ1bmN0aW9uKG4pe2RlbGV0ZSB0aGlzLmZpbGVzW25dfSxjbGVhcjpmdW5jdGlvbigpe3RoaXMuZmlsZXM9e319fSxNaD1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSl7bGV0IHI9dGhpcyxzPSExLG89MCxhPTAsbCxjPVtdO3RoaXMub25TdGFydD12b2lkIDAsdGhpcy5vbkxvYWQ9dCx0aGlzLm9uUHJvZ3Jlc3M9ZSx0aGlzLm9uRXJyb3I9aSx0aGlzLml0ZW1TdGFydD1mdW5jdGlvbih1KXthKysscz09PSExJiZyLm9uU3RhcnQhPT12b2lkIDAmJnIub25TdGFydCh1LG8sYSkscz0hMH0sdGhpcy5pdGVtRW5kPWZ1bmN0aW9uKHUpe28rKyxyLm9uUHJvZ3Jlc3MhPT12b2lkIDAmJnIub25Qcm9ncmVzcyh1LG8sYSksbz09PWEmJihzPSExLHIub25Mb2FkIT09dm9pZCAwJiZyLm9uTG9hZCgpKX0sdGhpcy5pdGVtRXJyb3I9ZnVuY3Rpb24odSl7ci5vbkVycm9yIT09dm9pZCAwJiZyLm9uRXJyb3IodSl9LHRoaXMucmVzb2x2ZVVSTD1mdW5jdGlvbih1KXtyZXR1cm4gbD9sKHUpOnV9LHRoaXMuc2V0VVJMTW9kaWZpZXI9ZnVuY3Rpb24odSl7cmV0dXJuIGw9dSx0aGlzfSx0aGlzLmFkZEhhbmRsZXI9ZnVuY3Rpb24odSxoKXtyZXR1cm4gYy5wdXNoKHUsaCksdGhpc30sdGhpcy5yZW1vdmVIYW5kbGVyPWZ1bmN0aW9uKHUpe2xldCBoPWMuaW5kZXhPZih1KTtyZXR1cm4gaCE9PS0xJiZjLnNwbGljZShoLDIpLHRoaXN9LHRoaXMuZ2V0SGFuZGxlcj1mdW5jdGlvbih1KXtmb3IobGV0IGg9MCxmPWMubGVuZ3RoO2g8ZjtoKz0yKXtsZXQgZD1jW2hdLGc9Y1toKzFdO2lmKGQuZ2xvYmFsJiYoZC5sYXN0SW5kZXg9MCksZC50ZXN0KHUpKXJldHVybiBnfXJldHVybiBudWxsfX19LHVUPW5ldyBNaCxtbj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLm1hbmFnZXI9dCE9PXZvaWQgMD90OnVULHRoaXMuY3Jvc3NPcmlnaW49ImFub255bW91cyIsdGhpcy53aXRoQ3JlZGVudGlhbHM9ITEsdGhpcy5wYXRoPSIiLHRoaXMucmVzb3VyY2VQYXRoPSIiLHRoaXMucmVxdWVzdEhlYWRlcj17fX1sb2FkKCl7fWxvYWRBc3luYyh0LGUpe2xldCBpPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIscyl7aS5sb2FkKHQscixlLHMpfSl9cGFyc2UoKXt9c2V0Q3Jvc3NPcmlnaW4odCl7cmV0dXJuIHRoaXMuY3Jvc3NPcmlnaW49dCx0aGlzfXNldFdpdGhDcmVkZW50aWFscyh0KXtyZXR1cm4gdGhpcy53aXRoQ3JlZGVudGlhbHM9dCx0aGlzfXNldFBhdGgodCl7cmV0dXJuIHRoaXMucGF0aD10LHRoaXN9c2V0UmVzb3VyY2VQYXRoKHQpe3JldHVybiB0aGlzLnJlc291cmNlUGF0aD10LHRoaXN9c2V0UmVxdWVzdEhlYWRlcih0KXtyZXR1cm4gdGhpcy5yZXF1ZXN0SGVhZGVyPXQsdGhpc319LERuPXt9LGJoPWNsYXNzIGV4dGVuZHMgbW57Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsaSxyKXt0PT09dm9pZCAwJiYodD0iIiksdGhpcy5wYXRoIT09dm9pZCAwJiYodD10aGlzLnBhdGgrdCksdD10aGlzLm1hbmFnZXIucmVzb2x2ZVVSTCh0KTtsZXQgcz1qci5nZXQodCk7aWYocyE9PXZvaWQgMClyZXR1cm4gdGhpcy5tYW5hZ2VyLml0ZW1TdGFydCh0KSxzZXRUaW1lb3V0KCgpPT57ZSYmZShzKSx0aGlzLm1hbmFnZXIuaXRlbUVuZCh0KX0sMCkscztpZihEblt0XSE9PXZvaWQgMCl7RG5bdF0ucHVzaCh7b25Mb2FkOmUsb25Qcm9ncmVzczppLG9uRXJyb3I6cn0pO3JldHVybn1Eblt0XT1bXSxEblt0XS5wdXNoKHtvbkxvYWQ6ZSxvblByb2dyZXNzOmksb25FcnJvcjpyfSk7bGV0IG89bmV3IFJlcXVlc3QodCx7aGVhZGVyczpuZXcgSGVhZGVycyh0aGlzLnJlcXVlc3RIZWFkZXIpLGNyZWRlbnRpYWxzOnRoaXMud2l0aENyZWRlbnRpYWxzPyJpbmNsdWRlIjoic2FtZS1vcmlnaW4ifSksYT10aGlzLm1pbWVUeXBlLGw9dGhpcy5yZXNwb25zZVR5cGU7ZmV0Y2gobykudGhlbihjPT57aWYoYy5zdGF0dXM9PT0yMDB8fGMuc3RhdHVzPT09MCl7aWYoYy5zdGF0dXM9PT0wJiZjb25zb2xlLndhcm4oIlRIUkVFLkZpbGVMb2FkZXI6IEhUVFAgU3RhdHVzIDAgcmVjZWl2ZWQuIiksdHlwZW9mIFJlYWRhYmxlU3RyZWFtPT0idW5kZWZpbmVkInx8Yy5ib2R5LmdldFJlYWRlcj09PXZvaWQgMClyZXR1cm4gYztsZXQgdT1Eblt0XSxoPWMuYm9keS5nZXRSZWFkZXIoKSxmPWMuaGVhZGVycy5nZXQoIkNvbnRlbnQtTGVuZ3RoIiksZD1mP3BhcnNlSW50KGYpOjAsZz1kIT09MCx4PTAsdj1uZXcgUmVhZGFibGVTdHJlYW0oe3N0YXJ0KG0pe3AoKTtmdW5jdGlvbiBwKCl7aC5yZWFkKCkudGhlbigoe2RvbmU6Yix2YWx1ZTpffSk9PntpZihiKW0uY2xvc2UoKTtlbHNle3grPV8uYnl0ZUxlbmd0aDtsZXQgUz1uZXcgUHJvZ3Jlc3NFdmVudCgicHJvZ3Jlc3MiLHtsZW5ndGhDb21wdXRhYmxlOmcsbG9hZGVkOngsdG90YWw6ZH0pO2ZvcihsZXQgTD0wLEE9dS5sZW5ndGg7TDxBO0wrKyl7bGV0IEg9dVtMXTtILm9uUHJvZ3Jlc3MmJkgub25Qcm9ncmVzcyhTKX1tLmVucXVldWUoXykscCgpfX0pfX19KTtyZXR1cm4gbmV3IFJlc3BvbnNlKHYpfWVsc2UgdGhyb3cgRXJyb3IoYGZldGNoIGZvciAiJHtjLnVybH0iIHJlc3BvbmRlZCB3aXRoICR7Yy5zdGF0dXN9OiAke2Muc3RhdHVzVGV4dH1gKX0pLnRoZW4oYz0+e3N3aXRjaChsKXtjYXNlImFycmF5YnVmZmVyIjpyZXR1cm4gYy5hcnJheUJ1ZmZlcigpO2Nhc2UiYmxvYiI6cmV0dXJuIGMuYmxvYigpO2Nhc2UiZG9jdW1lbnQiOnJldHVybiBjLnRleHQoKS50aGVuKHU9Pm5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcodSxhKSk7Y2FzZSJqc29uIjpyZXR1cm4gYy5qc29uKCk7ZGVmYXVsdDppZihhPT09dm9pZCAwKXJldHVybiBjLnRleHQoKTt7bGV0IGg9L2NoYXJzZXQ9Ij8oW147IlxzXSopIj8vaS5leGVjKGEpLGY9aCYmaFsxXT9oWzFdLnRvTG93ZXJDYXNlKCk6dm9pZCAwLGQ9bmV3IFRleHREZWNvZGVyKGYpO3JldHVybiBjLmFycmF5QnVmZmVyKCkudGhlbihnPT5kLmRlY29kZShnKSl9fX0pLnRoZW4oYz0+e2pyLmFkZCh0LGMpO2xldCB1PURuW3RdO2RlbGV0ZSBEblt0XTtmb3IobGV0IGg9MCxmPXUubGVuZ3RoO2g8ZjtoKyspe2xldCBkPXVbaF07ZC5vbkxvYWQmJmQub25Mb2FkKGMpfX0pLmNhdGNoKGM9PntsZXQgdT1Eblt0XTtpZih1PT09dm9pZCAwKXRocm93IHRoaXMubWFuYWdlci5pdGVtRXJyb3IodCksYztkZWxldGUgRG5bdF07Zm9yKGxldCBoPTAsZj11Lmxlbmd0aDtoPGY7aCsrKXtsZXQgZD11W2hdO2Qub25FcnJvciYmZC5vbkVycm9yKGMpfXRoaXMubWFuYWdlci5pdGVtRXJyb3IodCl9KS5maW5hbGx5KCgpPT57dGhpcy5tYW5hZ2VyLml0ZW1FbmQodCl9KSx0aGlzLm1hbmFnZXIuaXRlbVN0YXJ0KHQpfXNldFJlc3BvbnNlVHlwZSh0KXtyZXR1cm4gdGhpcy5yZXNwb25zZVR5cGU9dCx0aGlzfXNldE1pbWVUeXBlKHQpe3JldHVybiB0aGlzLm1pbWVUeXBlPXQsdGhpc319O3ZhciBibD1jbGFzcyBleHRlbmRzIG1ue2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLGkscil7dGhpcy5wYXRoIT09dm9pZCAwJiYodD10aGlzLnBhdGgrdCksdD10aGlzLm1hbmFnZXIucmVzb2x2ZVVSTCh0KTtsZXQgcz10aGlzLG89anIuZ2V0KHQpO2lmKG8hPT12b2lkIDApcmV0dXJuIHMubWFuYWdlci5pdGVtU3RhcnQodCksc2V0VGltZW91dChmdW5jdGlvbigpe2UmJmUobykscy5tYW5hZ2VyLml0ZW1FbmQodCl9LDApLG87bGV0IGE9cm8oImltZyIpO2Z1bmN0aW9uIGwoKXt1KCksanIuYWRkKHQsdGhpcyksZSYmZSh0aGlzKSxzLm1hbmFnZXIuaXRlbUVuZCh0KX1mdW5jdGlvbiBjKGgpe3UoKSxyJiZyKGgpLHMubWFuYWdlci5pdGVtRXJyb3IodCkscy5tYW5hZ2VyLml0ZW1FbmQodCl9ZnVuY3Rpb24gdSgpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsbCwhMSksYS5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsYywhMSl9cmV0dXJuIGEuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsbCwhMSksYS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsYywhMSksdC5zdWJzdHIoMCw1KSE9PSJkYXRhOiImJnRoaXMuY3Jvc3NPcmlnaW4hPT12b2lkIDAmJihhLmNyb3NzT3JpZ2luPXRoaXMuY3Jvc3NPcmlnaW4pLHMubWFuYWdlci5pdGVtU3RhcnQodCksYS5zcmM9dCxhfX0sU2g9Y2xhc3MgZXh0ZW5kcyBtbntjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxpLHIpe2xldCBzPW5ldyBXcixvPW5ldyBibCh0aGlzLm1hbmFnZXIpO28uc2V0Q3Jvc3NPcmlnaW4odGhpcy5jcm9zc09yaWdpbiksby5zZXRQYXRoKHRoaXMucGF0aCk7bGV0IGE9MDtmdW5jdGlvbiBsKGMpe28ubG9hZCh0W2NdLGZ1bmN0aW9uKHUpe3MuaW1hZ2VzW2NdPXUsYSsrLGE9PT02JiYocy5uZWVkc1VwZGF0ZT0hMCxlJiZlKHMpKX0sdm9pZCAwLHIpfWZvcihsZXQgYz0wO2M8dC5sZW5ndGg7KytjKWwoYyk7cmV0dXJuIHN9fTt2YXIgRWg9Y2xhc3MgZXh0ZW5kcyBtbntjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxpLHIpe2xldCBzPW5ldyBhZSxvPW5ldyBibCh0aGlzLm1hbmFnZXIpO3JldHVybiBvLnNldENyb3NzT3JpZ2luKHRoaXMuY3Jvc3NPcmlnaW4pLG8uc2V0UGF0aCh0aGlzLnBhdGgpLG8ubG9hZCh0LGZ1bmN0aW9uKGEpe3MuaW1hZ2U9YSxzLm5lZWRzVXBkYXRlPSEwLGUhPT12b2lkIDAmJmUocyl9LGksciksc319LFllPWNsYXNzIGV4dGVuZHMga3R7Y29uc3RydWN0b3IodCxlPTEpe3N1cGVyKCksdGhpcy50eXBlPSJMaWdodCIsdGhpcy5jb2xvcj1uZXcgZnQodCksdGhpcy5pbnRlbnNpdHk9ZX1kaXNwb3NlKCl7fWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMuaW50ZW5zaXR5PXQuaW50ZW5zaXR5LHRoaXN9dG9KU09OKHQpe2xldCBlPXN1cGVyLnRvSlNPTih0KTtyZXR1cm4gZS5vYmplY3QuY29sb3I9dGhpcy5jb2xvci5nZXRIZXgoKSxlLm9iamVjdC5pbnRlbnNpdHk9dGhpcy5pbnRlbnNpdHksdGhpcy5ncm91bmRDb2xvciE9PXZvaWQgMCYmKGUub2JqZWN0Lmdyb3VuZENvbG9yPXRoaXMuZ3JvdW5kQ29sb3IuZ2V0SGV4KCkpLHRoaXMuZGlzdGFuY2UhPT12b2lkIDAmJihlLm9iamVjdC5kaXN0YW5jZT10aGlzLmRpc3RhbmNlKSx0aGlzLmFuZ2xlIT09dm9pZCAwJiYoZS5vYmplY3QuYW5nbGU9dGhpcy5hbmdsZSksdGhpcy5kZWNheSE9PXZvaWQgMCYmKGUub2JqZWN0LmRlY2F5PXRoaXMuZGVjYXkpLHRoaXMucGVudW1icmEhPT12b2lkIDAmJihlLm9iamVjdC5wZW51bWJyYT10aGlzLnBlbnVtYnJhKSx0aGlzLnNoYWRvdyE9PXZvaWQgMCYmKGUub2JqZWN0LnNoYWRvdz10aGlzLnNoYWRvdy50b0pTT04oKSksZX19O1llLnByb3RvdHlwZS5pc0xpZ2h0PSEwO3ZhciBUaD1jbGFzcyBleHRlbmRzIFlle2NvbnN0cnVjdG9yKHQsZSxpKXtzdXBlcih0LGkpLHRoaXMudHlwZT0iSGVtaXNwaGVyZUxpZ2h0Iix0aGlzLnBvc2l0aW9uLmNvcHkoa3QuRGVmYXVsdFVwKSx0aGlzLnVwZGF0ZU1hdHJpeCgpLHRoaXMuZ3JvdW5kQ29sb3I9bmV3IGZ0KGUpfWNvcHkodCl7cmV0dXJuIFllLnByb3RvdHlwZS5jb3B5LmNhbGwodGhpcyx0KSx0aGlzLmdyb3VuZENvbG9yLmNvcHkodC5ncm91bmRDb2xvciksdGhpc319O1RoLnByb3RvdHlwZS5pc0hlbWlzcGhlcmVMaWdodD0hMDt2YXIgbjA9bmV3IHd0LGkwPW5ldyBULHIwPW5ldyBULFNvPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuY2FtZXJhPXQsdGhpcy5iaWFzPTAsdGhpcy5ub3JtYWxCaWFzPTAsdGhpcy5yYWRpdXM9MSx0aGlzLmJsdXJTYW1wbGVzPTgsdGhpcy5tYXBTaXplPW5ldyBLKDUxMiw1MTIpLHRoaXMubWFwPW51bGwsdGhpcy5tYXBQYXNzPW51bGwsdGhpcy5tYXRyaXg9bmV3IHd0LHRoaXMuYXV0b1VwZGF0ZT0hMCx0aGlzLm5lZWRzVXBkYXRlPSExLHRoaXMuX2ZydXN0dW09bmV3IHFyLHRoaXMuX2ZyYW1lRXh0ZW50cz1uZXcgSygxLDEpLHRoaXMuX3ZpZXdwb3J0Q291bnQ9MSx0aGlzLl92aWV3cG9ydHM9W25ldyBXdCgwLDAsMSwxKV19Z2V0Vmlld3BvcnRDb3VudCgpe3JldHVybiB0aGlzLl92aWV3cG9ydENvdW50fWdldEZydXN0dW0oKXtyZXR1cm4gdGhpcy5fZnJ1c3R1bX11cGRhdGVNYXRyaWNlcyh0KXtsZXQgZT10aGlzLmNhbWVyYSxpPXRoaXMubWF0cml4O2kwLnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKSxlLnBvc2l0aW9uLmNvcHkoaTApLHIwLnNldEZyb21NYXRyaXhQb3NpdGlvbih0LnRhcmdldC5tYXRyaXhXb3JsZCksZS5sb29rQXQocjApLGUudXBkYXRlTWF0cml4V29ybGQoKSxuMC5tdWx0aXBseU1hdHJpY2VzKGUucHJvamVjdGlvbk1hdHJpeCxlLm1hdHJpeFdvcmxkSW52ZXJzZSksdGhpcy5fZnJ1c3R1bS5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeChuMCksaS5zZXQoLjUsMCwwLC41LDAsLjUsMCwuNSwwLDAsLjUsLjUsMCwwLDAsMSksaS5tdWx0aXBseShlLnByb2plY3Rpb25NYXRyaXgpLGkubXVsdGlwbHkoZS5tYXRyaXhXb3JsZEludmVyc2UpfWdldFZpZXdwb3J0KHQpe3JldHVybiB0aGlzLl92aWV3cG9ydHNbdF19Z2V0RnJhbWVFeHRlbnRzKCl7cmV0dXJuIHRoaXMuX2ZyYW1lRXh0ZW50c31kaXNwb3NlKCl7dGhpcy5tYXAmJnRoaXMubWFwLmRpc3Bvc2UoKSx0aGlzLm1hcFBhc3MmJnRoaXMubWFwUGFzcy5kaXNwb3NlKCl9Y29weSh0KXtyZXR1cm4gdGhpcy5jYW1lcmE9dC5jYW1lcmEuY2xvbmUoKSx0aGlzLmJpYXM9dC5iaWFzLHRoaXMucmFkaXVzPXQucmFkaXVzLHRoaXMubWFwU2l6ZS5jb3B5KHQubWFwU2l6ZSksdGhpc31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcigpLmNvcHkodGhpcyl9dG9KU09OKCl7bGV0IHQ9e307cmV0dXJuIHRoaXMuYmlhcyE9PTAmJih0LmJpYXM9dGhpcy5iaWFzKSx0aGlzLm5vcm1hbEJpYXMhPT0wJiYodC5ub3JtYWxCaWFzPXRoaXMubm9ybWFsQmlhcyksdGhpcy5yYWRpdXMhPT0xJiYodC5yYWRpdXM9dGhpcy5yYWRpdXMpLCh0aGlzLm1hcFNpemUueCE9PTUxMnx8dGhpcy5tYXBTaXplLnkhPT01MTIpJiYodC5tYXBTaXplPXRoaXMubWFwU2l6ZS50b0FycmF5KCkpLHQuY2FtZXJhPXRoaXMuY2FtZXJhLnRvSlNPTighMSkub2JqZWN0LGRlbGV0ZSB0LmNhbWVyYS5tYXRyaXgsdH19LFNsPWNsYXNzIGV4dGVuZHMgU297Y29uc3RydWN0b3IoKXtzdXBlcihuZXcgU2UoNTAsMSwuNSw1MDApKSx0aGlzLmZvY3VzPTF9dXBkYXRlTWF0cmljZXModCl7bGV0IGU9dGhpcy5jYW1lcmEsaT1WdSoyKnQuYW5nbGUqdGhpcy5mb2N1cyxyPXRoaXMubWFwU2l6ZS53aWR0aC90aGlzLm1hcFNpemUuaGVpZ2h0LHM9dC5kaXN0YW5jZXx8ZS5mYXI7KGkhPT1lLmZvdnx8ciE9PWUuYXNwZWN0fHxzIT09ZS5mYXIpJiYoZS5mb3Y9aSxlLmFzcGVjdD1yLGUuZmFyPXMsZS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCkpLHN1cGVyLnVwZGF0ZU1hdHJpY2VzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5mb2N1cz10LmZvY3VzLHRoaXN9fTtTbC5wcm90b3R5cGUuaXNTcG90TGlnaHRTaGFkb3c9ITA7dmFyIEFoPWNsYXNzIGV4dGVuZHMgWWV7Y29uc3RydWN0b3IodCxlLGk9MCxyPU1hdGguUEkvMyxzPTAsbz0xKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iU3BvdExpZ2h0Iix0aGlzLnBvc2l0aW9uLmNvcHkoa3QuRGVmYXVsdFVwKSx0aGlzLnVwZGF0ZU1hdHJpeCgpLHRoaXMudGFyZ2V0PW5ldyBrdCx0aGlzLmRpc3RhbmNlPWksdGhpcy5hbmdsZT1yLHRoaXMucGVudW1icmE9cyx0aGlzLmRlY2F5PW8sdGhpcy5zaGFkb3c9bmV3IFNsfWdldCBwb3dlcigpe3JldHVybiB0aGlzLmludGVuc2l0eSpNYXRoLlBJfXNldCBwb3dlcih0KXt0aGlzLmludGVuc2l0eT10L01hdGguUEl9ZGlzcG9zZSgpe3RoaXMuc2hhZG93LmRpc3Bvc2UoKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZGlzdGFuY2U9dC5kaXN0YW5jZSx0aGlzLmFuZ2xlPXQuYW5nbGUsdGhpcy5wZW51bWJyYT10LnBlbnVtYnJhLHRoaXMuZGVjYXk9dC5kZWNheSx0aGlzLnRhcmdldD10LnRhcmdldC5jbG9uZSgpLHRoaXMuc2hhZG93PXQuc2hhZG93LmNsb25lKCksdGhpc319O0FoLnByb3RvdHlwZS5pc1Nwb3RMaWdodD0hMDt2YXIgczA9bmV3IHd0LFpzPW5ldyBULE51PW5ldyBULEVsPWNsYXNzIGV4dGVuZHMgU297Y29uc3RydWN0b3IoKXtzdXBlcihuZXcgU2UoOTAsMSwuNSw1MDApKSx0aGlzLl9mcmFtZUV4dGVudHM9bmV3IEsoNCwyKSx0aGlzLl92aWV3cG9ydENvdW50PTYsdGhpcy5fdmlld3BvcnRzPVtuZXcgV3QoMiwxLDEsMSksbmV3IFd0KDAsMSwxLDEpLG5ldyBXdCgzLDEsMSwxKSxuZXcgV3QoMSwxLDEsMSksbmV3IFd0KDMsMCwxLDEpLG5ldyBXdCgxLDAsMSwxKV0sdGhpcy5fY3ViZURpcmVjdGlvbnM9W25ldyBUKDEsMCwwKSxuZXcgVCgtMSwwLDApLG5ldyBUKDAsMCwxKSxuZXcgVCgwLDAsLTEpLG5ldyBUKDAsMSwwKSxuZXcgVCgwLC0xLDApXSx0aGlzLl9jdWJlVXBzPVtuZXcgVCgwLDEsMCksbmV3IFQoMCwxLDApLG5ldyBUKDAsMSwwKSxuZXcgVCgwLDEsMCksbmV3IFQoMCwwLDEpLG5ldyBUKDAsMCwtMSldfXVwZGF0ZU1hdHJpY2VzKHQsZT0wKXtsZXQgaT10aGlzLmNhbWVyYSxyPXRoaXMubWF0cml4LHM9dC5kaXN0YW5jZXx8aS5mYXI7cyE9PWkuZmFyJiYoaS5mYXI9cyxpLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSksWnMuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpLGkucG9zaXRpb24uY29weShacyksTnUuY29weShpLnBvc2l0aW9uKSxOdS5hZGQodGhpcy5fY3ViZURpcmVjdGlvbnNbZV0pLGkudXAuY29weSh0aGlzLl9jdWJlVXBzW2VdKSxpLmxvb2tBdChOdSksaS51cGRhdGVNYXRyaXhXb3JsZCgpLHIubWFrZVRyYW5zbGF0aW9uKC1acy54LC1acy55LC1acy56KSxzMC5tdWx0aXBseU1hdHJpY2VzKGkucHJvamVjdGlvbk1hdHJpeCxpLm1hdHJpeFdvcmxkSW52ZXJzZSksdGhpcy5fZnJ1c3R1bS5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeChzMCl9fTtFbC5wcm90b3R5cGUuaXNQb2ludExpZ2h0U2hhZG93PSEwO3ZhciBDaD1jbGFzcyBleHRlbmRzIFlle2NvbnN0cnVjdG9yKHQsZSxpPTAscj0xKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iUG9pbnRMaWdodCIsdGhpcy5kaXN0YW5jZT1pLHRoaXMuZGVjYXk9cix0aGlzLnNoYWRvdz1uZXcgRWx9Z2V0IHBvd2VyKCl7cmV0dXJuIHRoaXMuaW50ZW5zaXR5KjQqTWF0aC5QSX1zZXQgcG93ZXIodCl7dGhpcy5pbnRlbnNpdHk9dC8oNCpNYXRoLlBJKX1kaXNwb3NlKCl7dGhpcy5zaGFkb3cuZGlzcG9zZSgpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kaXN0YW5jZT10LmRpc3RhbmNlLHRoaXMuZGVjYXk9dC5kZWNheSx0aGlzLnNoYWRvdz10LnNoYWRvdy5jbG9uZSgpLHRoaXN9fTtDaC5wcm90b3R5cGUuaXNQb2ludExpZ2h0PSEwO3ZhciBUbD1jbGFzcyBleHRlbmRzIFNve2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IFZpKC01LDUsNSwtNSwuNSw1MDApKX19O1RsLnByb3RvdHlwZS5pc0RpcmVjdGlvbmFsTGlnaHRTaGFkb3c9ITA7dmFyIFJoPWNsYXNzIGV4dGVuZHMgWWV7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iRGlyZWN0aW9uYWxMaWdodCIsdGhpcy5wb3NpdGlvbi5jb3B5KGt0LkRlZmF1bHRVcCksdGhpcy51cGRhdGVNYXRyaXgoKSx0aGlzLnRhcmdldD1uZXcga3QsdGhpcy5zaGFkb3c9bmV3IFRsfWRpc3Bvc2UoKXt0aGlzLnNoYWRvdy5kaXNwb3NlKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnRhcmdldD10LnRhcmdldC5jbG9uZSgpLHRoaXMuc2hhZG93PXQuc2hhZG93LmNsb25lKCksdGhpc319O1JoLnByb3RvdHlwZS5pc0RpcmVjdGlvbmFsTGlnaHQ9ITA7dmFyIExoPWNsYXNzIGV4dGVuZHMgWWV7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iQW1iaWVudExpZ2h0In19O0xoLnByb3RvdHlwZS5pc0FtYmllbnRMaWdodD0hMDt2YXIgUGg9Y2xhc3MgZXh0ZW5kcyBZZXtjb25zdHJ1Y3Rvcih0LGUsaT0xMCxyPTEwKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iUmVjdEFyZWFMaWdodCIsdGhpcy53aWR0aD1pLHRoaXMuaGVpZ2h0PXJ9Z2V0IHBvd2VyKCl7cmV0dXJuIHRoaXMuaW50ZW5zaXR5KnRoaXMud2lkdGgqdGhpcy5oZWlnaHQqTWF0aC5QSX1zZXQgcG93ZXIodCl7dGhpcy5pbnRlbnNpdHk9dC8odGhpcy53aWR0aCp0aGlzLmhlaWdodCpNYXRoLlBJKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMud2lkdGg9dC53aWR0aCx0aGlzLmhlaWdodD10LmhlaWdodCx0aGlzfXRvSlNPTih0KXtsZXQgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0LndpZHRoPXRoaXMud2lkdGgsZS5vYmplY3QuaGVpZ2h0PXRoaXMuaGVpZ2h0LGV9fTtQaC5wcm90b3R5cGUuaXNSZWN0QXJlYUxpZ2h0PSEwO3ZhciBBbD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuY29lZmZpY2llbnRzPVtdO2ZvcihsZXQgdD0wO3Q8OTt0KyspdGhpcy5jb2VmZmljaWVudHMucHVzaChuZXcgVCl9c2V0KHQpe2ZvcihsZXQgZT0wO2U8OTtlKyspdGhpcy5jb2VmZmljaWVudHNbZV0uY29weSh0W2VdKTtyZXR1cm4gdGhpc316ZXJvKCl7Zm9yKGxldCB0PTA7dDw5O3QrKyl0aGlzLmNvZWZmaWNpZW50c1t0XS5zZXQoMCwwLDApO3JldHVybiB0aGlzfWdldEF0KHQsZSl7bGV0IGk9dC54LHI9dC55LHM9dC56LG89dGhpcy5jb2VmZmljaWVudHM7cmV0dXJuIGUuY29weShvWzBdKS5tdWx0aXBseVNjYWxhciguMjgyMDk1KSxlLmFkZFNjYWxlZFZlY3RvcihvWzFdLC40ODg2MDMqciksZS5hZGRTY2FsZWRWZWN0b3Iob1syXSwuNDg4NjAzKnMpLGUuYWRkU2NhbGVkVmVjdG9yKG9bM10sLjQ4ODYwMyppKSxlLmFkZFNjYWxlZFZlY3RvcihvWzRdLDEuMDkyNTQ4KihpKnIpKSxlLmFkZFNjYWxlZFZlY3RvcihvWzVdLDEuMDkyNTQ4KihyKnMpKSxlLmFkZFNjYWxlZFZlY3RvcihvWzZdLC4zMTUzOTIqKDMqcypzLTEpKSxlLmFkZFNjYWxlZFZlY3RvcihvWzddLDEuMDkyNTQ4KihpKnMpKSxlLmFkZFNjYWxlZFZlY3RvcihvWzhdLC41NDYyNzQqKGkqaS1yKnIpKSxlfWdldElycmFkaWFuY2VBdCh0LGUpe2xldCBpPXQueCxyPXQueSxzPXQueixvPXRoaXMuY29lZmZpY2llbnRzO3JldHVybiBlLmNvcHkob1swXSkubXVsdGlwbHlTY2FsYXIoLjg4NjIyNyksZS5hZGRTY2FsZWRWZWN0b3Iob1sxXSwyKi41MTE2NjQqciksZS5hZGRTY2FsZWRWZWN0b3Iob1syXSwyKi41MTE2NjQqcyksZS5hZGRTY2FsZWRWZWN0b3Iob1szXSwyKi41MTE2NjQqaSksZS5hZGRTY2FsZWRWZWN0b3Iob1s0XSwyKi40MjkwNDMqaSpyKSxlLmFkZFNjYWxlZFZlY3RvcihvWzVdLDIqLjQyOTA0MypyKnMpLGUuYWRkU2NhbGVkVmVjdG9yKG9bNl0sLjc0MzEyNSpzKnMtLjI0NzcwOCksZS5hZGRTY2FsZWRWZWN0b3Iob1s3XSwyKi40MjkwNDMqaSpzKSxlLmFkZFNjYWxlZFZlY3RvcihvWzhdLC40MjkwNDMqKGkqaS1yKnIpKSxlfWFkZCh0KXtmb3IobGV0IGU9MDtlPDk7ZSsrKXRoaXMuY29lZmZpY2llbnRzW2VdLmFkZCh0LmNvZWZmaWNpZW50c1tlXSk7cmV0dXJuIHRoaXN9YWRkU2NhbGVkU0godCxlKXtmb3IobGV0IGk9MDtpPDk7aSsrKXRoaXMuY29lZmZpY2llbnRzW2ldLmFkZFNjYWxlZFZlY3Rvcih0LmNvZWZmaWNpZW50c1tpXSxlKTtyZXR1cm4gdGhpc31zY2FsZSh0KXtmb3IobGV0IGU9MDtlPDk7ZSsrKXRoaXMuY29lZmZpY2llbnRzW2VdLm11bHRpcGx5U2NhbGFyKHQpO3JldHVybiB0aGlzfWxlcnAodCxlKXtmb3IobGV0IGk9MDtpPDk7aSsrKXRoaXMuY29lZmZpY2llbnRzW2ldLmxlcnAodC5jb2VmZmljaWVudHNbaV0sZSk7cmV0dXJuIHRoaXN9ZXF1YWxzKHQpe2ZvcihsZXQgZT0wO2U8OTtlKyspaWYoIXRoaXMuY29lZmZpY2llbnRzW2VdLmVxdWFscyh0LmNvZWZmaWNpZW50c1tlXSkpcmV0dXJuITE7cmV0dXJuITB9Y29weSh0KXtyZXR1cm4gdGhpcy5zZXQodC5jb2VmZmljaWVudHMpfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuY29weSh0aGlzKX1mcm9tQXJyYXkodCxlPTApe2xldCBpPXRoaXMuY29lZmZpY2llbnRzO2ZvcihsZXQgcj0wO3I8OTtyKyspaVtyXS5mcm9tQXJyYXkodCxlK3IqMyk7cmV0dXJuIHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7bGV0IGk9dGhpcy5jb2VmZmljaWVudHM7Zm9yKGxldCByPTA7cjw5O3IrKylpW3JdLnRvQXJyYXkodCxlK3IqMyk7cmV0dXJuIHR9c3RhdGljIGdldEJhc2lzQXQodCxlKXtsZXQgaT10Lngscj10Lnkscz10Lno7ZVswXT0uMjgyMDk1LGVbMV09LjQ4ODYwMypyLGVbMl09LjQ4ODYwMypzLGVbM109LjQ4ODYwMyppLGVbNF09MS4wOTI1NDgqaSpyLGVbNV09MS4wOTI1NDgqcipzLGVbNl09LjMxNTM5MiooMypzKnMtMSksZVs3XT0xLjA5MjU0OCppKnMsZVs4XT0uNTQ2Mjc0KihpKmktcipyKX19O0FsLnByb3RvdHlwZS5pc1NwaGVyaWNhbEhhcm1vbmljczM9ITA7dmFyIEVvPWNsYXNzIGV4dGVuZHMgWWV7Y29uc3RydWN0b3IodD1uZXcgQWwsZT0xKXtzdXBlcih2b2lkIDAsZSksdGhpcy5zaD10fWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5zaC5jb3B5KHQuc2gpLHRoaXN9ZnJvbUpTT04odCl7cmV0dXJuIHRoaXMuaW50ZW5zaXR5PXQuaW50ZW5zaXR5LHRoaXMuc2guZnJvbUFycmF5KHQuc2gpLHRoaXN9dG9KU09OKHQpe2xldCBlPXN1cGVyLnRvSlNPTih0KTtyZXR1cm4gZS5vYmplY3Quc2g9dGhpcy5zaC50b0FycmF5KCksZX19O0VvLnByb3RvdHlwZS5pc0xpZ2h0UHJvYmU9ITA7dmFyIERoPWNsYXNze3N0YXRpYyBkZWNvZGVUZXh0KHQpe2lmKHR5cGVvZiBUZXh0RGVjb2RlciE9InVuZGVmaW5lZCIpcmV0dXJuIG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZSh0KTtsZXQgZT0iIjtmb3IobGV0IGk9MCxyPXQubGVuZ3RoO2k8cjtpKyspZSs9U3RyaW5nLmZyb21DaGFyQ29kZSh0W2ldKTt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoZSkpfWNhdGNoKGkpe3JldHVybiBlfX1zdGF0aWMgZXh0cmFjdFVybEJhc2UodCl7bGV0IGU9dC5sYXN0SW5kZXhPZigiLyIpO3JldHVybiBlPT09LTE/Ii4vIjp0LnN1YnN0cigwLGUrMSl9c3RhdGljIHJlc29sdmVVUkwodCxlKXtyZXR1cm4gdHlwZW9mIHQhPSJzdHJpbmcifHx0PT09IiI/IiI6KC9eaHR0cHM/OlwvXC8vaS50ZXN0KGUpJiYvXlwvLy50ZXN0KHQpJiYoZT1lLnJlcGxhY2UoLyheaHR0cHM/OlwvXC9bXlwvXSspLiovaSwiJDEiKSksL14oaHR0cHM/Oik/XC9cLy9pLnRlc3QodCl8fC9eZGF0YTouKiwuKiQvaS50ZXN0KHQpfHwvXmJsb2I6LiokL2kudGVzdCh0KT90OmUrdCl9fSxJaD1jbGFzcyBleHRlbmRzIEh0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnR5cGU9Ikluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5Iix0aGlzLmluc3RhbmNlQ291bnQ9MS8wfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5pbnN0YW5jZUNvdW50PXQuaW5zdGFuY2VDb3VudCx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuY29weSh0aGlzKX10b0pTT04oKXtsZXQgdD1zdXBlci50b0pTT04odGhpcyk7cmV0dXJuIHQuaW5zdGFuY2VDb3VudD10aGlzLmluc3RhbmNlQ291bnQsdC5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5PSEwLHR9fTtJaC5wcm90b3R5cGUuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeT0hMDt2YXIgTmg9Y2xhc3MgZXh0ZW5kcyBtbntjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0eXBlb2YgY3JlYXRlSW1hZ2VCaXRtYXA9PSJ1bmRlZmluZWQiJiZjb25zb2xlLndhcm4oIlRIUkVFLkltYWdlQml0bWFwTG9hZGVyOiBjcmVhdGVJbWFnZUJpdG1hcCgpIG5vdCBzdXBwb3J0ZWQuIiksdHlwZW9mIGZldGNoPT0idW5kZWZpbmVkIiYmY29uc29sZS53YXJuKCJUSFJFRS5JbWFnZUJpdG1hcExvYWRlcjogZmV0Y2goKSBub3Qgc3VwcG9ydGVkLiIpLHRoaXMub3B0aW9ucz17cHJlbXVsdGlwbHlBbHBoYToibm9uZSJ9fXNldE9wdGlvbnModCl7cmV0dXJuIHRoaXMub3B0aW9ucz10LHRoaXN9bG9hZCh0LGUsaSxyKXt0PT09dm9pZCAwJiYodD0iIiksdGhpcy5wYXRoIT09dm9pZCAwJiYodD10aGlzLnBhdGgrdCksdD10aGlzLm1hbmFnZXIucmVzb2x2ZVVSTCh0KTtsZXQgcz10aGlzLG89anIuZ2V0KHQpO2lmKG8hPT12b2lkIDApcmV0dXJuIHMubWFuYWdlci5pdGVtU3RhcnQodCksc2V0VGltZW91dChmdW5jdGlvbigpe2UmJmUobykscy5tYW5hZ2VyLml0ZW1FbmQodCl9LDApLG87bGV0IGE9e307YS5jcmVkZW50aWFscz10aGlzLmNyb3NzT3JpZ2luPT09ImFub255bW91cyI/InNhbWUtb3JpZ2luIjoiaW5jbHVkZSIsYS5oZWFkZXJzPXRoaXMucmVxdWVzdEhlYWRlcixmZXRjaCh0LGEpLnRoZW4oZnVuY3Rpb24obCl7cmV0dXJuIGwuYmxvYigpfSkudGhlbihmdW5jdGlvbihsKXtyZXR1cm4gY3JlYXRlSW1hZ2VCaXRtYXAobCxPYmplY3QuYXNzaWduKHMub3B0aW9ucyx7Y29sb3JTcGFjZUNvbnZlcnNpb246Im5vbmUifSkpfSkudGhlbihmdW5jdGlvbihsKXtqci5hZGQodCxsKSxlJiZlKGwpLHMubWFuYWdlci5pdGVtRW5kKHQpfSkuY2F0Y2goZnVuY3Rpb24obCl7ciYmcihsKSxzLm1hbmFnZXIuaXRlbUVycm9yKHQpLHMubWFuYWdlci5pdGVtRW5kKHQpfSkscy5tYW5hZ2VyLml0ZW1TdGFydCh0KX19O05oLnByb3RvdHlwZS5pc0ltYWdlQml0bWFwTG9hZGVyPSEwO3ZhciBKYSxoVD17Z2V0Q29udGV4dDpmdW5jdGlvbigpe3JldHVybiBKYT09PXZvaWQgMCYmKEphPW5ldyh3aW5kb3cuQXVkaW9Db250ZXh0fHx3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KSksSmF9LHNldENvbnRleHQ6ZnVuY3Rpb24obil7SmE9bn19LEZoPWNsYXNzIGV4dGVuZHMgbW57Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsaSxyKXtsZXQgcz10aGlzLG89bmV3IGJoKHRoaXMubWFuYWdlcik7by5zZXRSZXNwb25zZVR5cGUoImFycmF5YnVmZmVyIiksby5zZXRQYXRoKHRoaXMucGF0aCksby5zZXRSZXF1ZXN0SGVhZGVyKHRoaXMucmVxdWVzdEhlYWRlciksby5zZXRXaXRoQ3JlZGVudGlhbHModGhpcy53aXRoQ3JlZGVudGlhbHMpLG8ubG9hZCh0LGZ1bmN0aW9uKGEpe3RyeXtsZXQgbD1hLnNsaWNlKDApO2hULmdldENvbnRleHQoKS5kZWNvZGVBdWRpb0RhdGEobCxmdW5jdGlvbih1KXtlKHUpfSl9Y2F0Y2gobCl7cj9yKGwpOmNvbnNvbGUuZXJyb3IobCkscy5tYW5hZ2VyLml0ZW1FcnJvcih0KX19LGkscil9fSx6aD1jbGFzcyBleHRlbmRzIEVve2NvbnN0cnVjdG9yKHQsZSxpPTEpe3N1cGVyKHZvaWQgMCxpKTtsZXQgcj1uZXcgZnQoKS5zZXQodCkscz1uZXcgZnQoKS5zZXQoZSksbz1uZXcgVChyLnIsci5nLHIuYiksYT1uZXcgVChzLnIscy5nLHMuYiksbD1NYXRoLnNxcnQoTWF0aC5QSSksYz1sKk1hdGguc3FydCguNzUpO3RoaXMuc2guY29lZmZpY2llbnRzWzBdLmNvcHkobykuYWRkKGEpLm11bHRpcGx5U2NhbGFyKGwpLHRoaXMuc2guY29lZmZpY2llbnRzWzFdLmNvcHkobykuc3ViKGEpLm11bHRpcGx5U2NhbGFyKGMpfX07emgucHJvdG90eXBlLmlzSGVtaXNwaGVyZUxpZ2h0UHJvYmU9ITA7dmFyIFVoPWNsYXNzIGV4dGVuZHMgRW97Y29uc3RydWN0b3IodCxlPTEpe3N1cGVyKHZvaWQgMCxlKTtsZXQgaT1uZXcgZnQoKS5zZXQodCk7dGhpcy5zaC5jb2VmZmljaWVudHNbMF0uc2V0KGkucixpLmcsaS5iKS5tdWx0aXBseVNjYWxhcigyKk1hdGguc3FydChNYXRoLlBJKSl9fTtVaC5wcm90b3R5cGUuaXNBbWJpZW50TGlnaHRQcm9iZT0hMDt2YXIgQmg9Y2xhc3MgZXh0ZW5kcyBrdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iQXVkaW8iLHRoaXMubGlzdGVuZXI9dCx0aGlzLmNvbnRleHQ9dC5jb250ZXh0LHRoaXMuZ2Fpbj10aGlzLmNvbnRleHQuY3JlYXRlR2FpbigpLHRoaXMuZ2Fpbi5jb25uZWN0KHQuZ2V0SW5wdXQoKSksdGhpcy5hdXRvcGxheT0hMSx0aGlzLmJ1ZmZlcj1udWxsLHRoaXMuZGV0dW5lPTAsdGhpcy5sb29wPSExLHRoaXMubG9vcFN0YXJ0PTAsdGhpcy5sb29wRW5kPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmR1cmF0aW9uPXZvaWQgMCx0aGlzLnBsYXliYWNrUmF0ZT0xLHRoaXMuaXNQbGF5aW5nPSExLHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSEwLHRoaXMuc291cmNlPW51bGwsdGhpcy5zb3VyY2VUeXBlPSJlbXB0eSIsdGhpcy5fc3RhcnRlZEF0PTAsdGhpcy5fcHJvZ3Jlc3M9MCx0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5maWx0ZXJzPVtdfWdldE91dHB1dCgpe3JldHVybiB0aGlzLmdhaW59c2V0Tm9kZVNvdXJjZSh0KXtyZXR1cm4gdGhpcy5oYXNQbGF5YmFja0NvbnRyb2w9ITEsdGhpcy5zb3VyY2VUeXBlPSJhdWRpb05vZGUiLHRoaXMuc291cmNlPXQsdGhpcy5jb25uZWN0KCksdGhpc31zZXRNZWRpYUVsZW1lbnRTb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0ibWVkaWFOb2RlIix0aGlzLnNvdXJjZT10aGlzLmNvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50U291cmNlKHQpLHRoaXMuY29ubmVjdCgpLHRoaXN9c2V0TWVkaWFTdHJlYW1Tb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0ibWVkaWFTdHJlYW1Ob2RlIix0aGlzLnNvdXJjZT10aGlzLmNvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UodCksdGhpcy5jb25uZWN0KCksdGhpc31zZXRCdWZmZXIodCl7cmV0dXJuIHRoaXMuYnVmZmVyPXQsdGhpcy5zb3VyY2VUeXBlPSJidWZmZXIiLHRoaXMuYXV0b3BsYXkmJnRoaXMucGxheSgpLHRoaXN9cGxheSh0PTApe2lmKHRoaXMuaXNQbGF5aW5nPT09ITApe2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IEF1ZGlvIGlzIGFscmVhZHkgcGxheWluZy4iKTtyZXR1cm59aWYodGhpcy5oYXNQbGF5YmFja0NvbnRyb2w9PT0hMSl7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKTtyZXR1cm59dGhpcy5fc3RhcnRlZEF0PXRoaXMuY29udGV4dC5jdXJyZW50VGltZSt0O2xldCBlPXRoaXMuY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTtyZXR1cm4gZS5idWZmZXI9dGhpcy5idWZmZXIsZS5sb29wPXRoaXMubG9vcCxlLmxvb3BTdGFydD10aGlzLmxvb3BTdGFydCxlLmxvb3BFbmQ9dGhpcy5sb29wRW5kLGUub25lbmRlZD10aGlzLm9uRW5kZWQuYmluZCh0aGlzKSxlLnN0YXJ0KHRoaXMuX3N0YXJ0ZWRBdCx0aGlzLl9wcm9ncmVzcyt0aGlzLm9mZnNldCx0aGlzLmR1cmF0aW9uKSx0aGlzLmlzUGxheWluZz0hMCx0aGlzLnNvdXJjZT1lLHRoaXMuc2V0RGV0dW5lKHRoaXMuZGV0dW5lKSx0aGlzLnNldFBsYXliYWNrUmF0ZSh0aGlzLnBsYXliYWNrUmF0ZSksdGhpcy5jb25uZWN0KCl9cGF1c2UoKXtpZih0aGlzLmhhc1BsYXliYWNrQ29udHJvbD09PSExKXtjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvOiB0aGlzIEF1ZGlvIGhhcyBubyBwbGF5YmFjayBjb250cm9sLiIpO3JldHVybn1yZXR1cm4gdGhpcy5pc1BsYXlpbmc9PT0hMCYmKHRoaXMuX3Byb2dyZXNzKz1NYXRoLm1heCh0aGlzLmNvbnRleHQuY3VycmVudFRpbWUtdGhpcy5fc3RhcnRlZEF0LDApKnRoaXMucGxheWJhY2tSYXRlLHRoaXMubG9vcD09PSEwJiYodGhpcy5fcHJvZ3Jlc3M9dGhpcy5fcHJvZ3Jlc3MlKHRoaXMuZHVyYXRpb258fHRoaXMuYnVmZmVyLmR1cmF0aW9uKSksdGhpcy5zb3VyY2Uuc3RvcCgpLHRoaXMuc291cmNlLm9uZW5kZWQ9bnVsbCx0aGlzLmlzUGxheWluZz0hMSksdGhpc31zdG9wKCl7aWYodGhpcy5oYXNQbGF5YmFja0NvbnRyb2w9PT0hMSl7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKTtyZXR1cm59cmV0dXJuIHRoaXMuX3Byb2dyZXNzPTAsdGhpcy5zb3VyY2Uuc3RvcCgpLHRoaXMuc291cmNlLm9uZW5kZWQ9bnVsbCx0aGlzLmlzUGxheWluZz0hMSx0aGlzfWNvbm5lY3QoKXtpZih0aGlzLmZpbHRlcnMubGVuZ3RoPjApe3RoaXMuc291cmNlLmNvbm5lY3QodGhpcy5maWx0ZXJzWzBdKTtmb3IobGV0IHQ9MSxlPXRoaXMuZmlsdGVycy5sZW5ndGg7dDxlO3QrKyl0aGlzLmZpbHRlcnNbdC0xXS5jb25uZWN0KHRoaXMuZmlsdGVyc1t0XSk7dGhpcy5maWx0ZXJzW3RoaXMuZmlsdGVycy5sZW5ndGgtMV0uY29ubmVjdCh0aGlzLmdldE91dHB1dCgpKX1lbHNlIHRoaXMuc291cmNlLmNvbm5lY3QodGhpcy5nZXRPdXRwdXQoKSk7cmV0dXJuIHRoaXMuX2Nvbm5lY3RlZD0hMCx0aGlzfWRpc2Nvbm5lY3QoKXtpZih0aGlzLmZpbHRlcnMubGVuZ3RoPjApe3RoaXMuc291cmNlLmRpc2Nvbm5lY3QodGhpcy5maWx0ZXJzWzBdKTtmb3IobGV0IHQ9MSxlPXRoaXMuZmlsdGVycy5sZW5ndGg7dDxlO3QrKyl0aGlzLmZpbHRlcnNbdC0xXS5kaXNjb25uZWN0KHRoaXMuZmlsdGVyc1t0XSk7dGhpcy5maWx0ZXJzW3RoaXMuZmlsdGVycy5sZW5ndGgtMV0uZGlzY29ubmVjdCh0aGlzLmdldE91dHB1dCgpKX1lbHNlIHRoaXMuc291cmNlLmRpc2Nvbm5lY3QodGhpcy5nZXRPdXRwdXQoKSk7cmV0dXJuIHRoaXMuX2Nvbm5lY3RlZD0hMSx0aGlzfWdldEZpbHRlcnMoKXtyZXR1cm4gdGhpcy5maWx0ZXJzfXNldEZpbHRlcnModCl7cmV0dXJuIHR8fCh0PVtdKSx0aGlzLl9jb25uZWN0ZWQ9PT0hMD8odGhpcy5kaXNjb25uZWN0KCksdGhpcy5maWx0ZXJzPXQuc2xpY2UoKSx0aGlzLmNvbm5lY3QoKSk6dGhpcy5maWx0ZXJzPXQuc2xpY2UoKSx0aGlzfXNldERldHVuZSh0KXtpZih0aGlzLmRldHVuZT10LHRoaXMuc291cmNlLmRldHVuZSE9PXZvaWQgMClyZXR1cm4gdGhpcy5pc1BsYXlpbmc9PT0hMCYmdGhpcy5zb3VyY2UuZGV0dW5lLnNldFRhcmdldEF0VGltZSh0aGlzLmRldHVuZSx0aGlzLmNvbnRleHQuY3VycmVudFRpbWUsLjAxKSx0aGlzfWdldERldHVuZSgpe3JldHVybiB0aGlzLmRldHVuZX1nZXRGaWx0ZXIoKXtyZXR1cm4gdGhpcy5nZXRGaWx0ZXJzKClbMF19c2V0RmlsdGVyKHQpe3JldHVybiB0aGlzLnNldEZpbHRlcnModD9bdF06W10pfXNldFBsYXliYWNrUmF0ZSh0KXtpZih0aGlzLmhhc1BsYXliYWNrQ29udHJvbD09PSExKXtjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvOiB0aGlzIEF1ZGlvIGhhcyBubyBwbGF5YmFjayBjb250cm9sLiIpO3JldHVybn1yZXR1cm4gdGhpcy5wbGF5YmFja1JhdGU9dCx0aGlzLmlzUGxheWluZz09PSEwJiZ0aGlzLnNvdXJjZS5wbGF5YmFja1JhdGUuc2V0VGFyZ2V0QXRUaW1lKHRoaXMucGxheWJhY2tSYXRlLHRoaXMuY29udGV4dC5jdXJyZW50VGltZSwuMDEpLHRoaXN9Z2V0UGxheWJhY2tSYXRlKCl7cmV0dXJuIHRoaXMucGxheWJhY2tSYXRlfW9uRW5kZWQoKXt0aGlzLmlzUGxheWluZz0hMX1nZXRMb29wKCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPT09ITE/KGNvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIiksITEpOnRoaXMubG9vcH1zZXRMb29wKHQpe2lmKHRoaXMuaGFzUGxheWJhY2tDb250cm9sPT09ITEpe2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIik7cmV0dXJufXJldHVybiB0aGlzLmxvb3A9dCx0aGlzLmlzUGxheWluZz09PSEwJiYodGhpcy5zb3VyY2UubG9vcD10aGlzLmxvb3ApLHRoaXN9c2V0TG9vcFN0YXJ0KHQpe3JldHVybiB0aGlzLmxvb3BTdGFydD10LHRoaXN9c2V0TG9vcEVuZCh0KXtyZXR1cm4gdGhpcy5sb29wRW5kPXQsdGhpc31nZXRWb2x1bWUoKXtyZXR1cm4gdGhpcy5nYWluLmdhaW4udmFsdWV9c2V0Vm9sdW1lKHQpe3JldHVybiB0aGlzLmdhaW4uZ2Fpbi5zZXRUYXJnZXRBdFRpbWUodCx0aGlzLmNvbnRleHQuY3VycmVudFRpbWUsLjAxKSx0aGlzfX07dmFyIE9oPWNsYXNze2NvbnN0cnVjdG9yKHQsZT0yMDQ4KXt0aGlzLmFuYWx5c2VyPXQuY29udGV4dC5jcmVhdGVBbmFseXNlcigpLHRoaXMuYW5hbHlzZXIuZmZ0U2l6ZT1lLHRoaXMuZGF0YT1uZXcgVWludDhBcnJheSh0aGlzLmFuYWx5c2VyLmZyZXF1ZW5jeUJpbkNvdW50KSx0LmdldE91dHB1dCgpLmNvbm5lY3QodGhpcy5hbmFseXNlcil9Z2V0RnJlcXVlbmN5RGF0YSgpe3JldHVybiB0aGlzLmFuYWx5c2VyLmdldEJ5dGVGcmVxdWVuY3lEYXRhKHRoaXMuZGF0YSksdGhpcy5kYXRhfWdldEF2ZXJhZ2VGcmVxdWVuY3koKXtsZXQgdD0wLGU9dGhpcy5nZXRGcmVxdWVuY3lEYXRhKCk7Zm9yKGxldCBpPTA7aTxlLmxlbmd0aDtpKyspdCs9ZVtpXTtyZXR1cm4gdC9lLmxlbmd0aH19LGtoPWNsYXNze2NvbnN0cnVjdG9yKHQsZSxpKXt0aGlzLmJpbmRpbmc9dCx0aGlzLnZhbHVlU2l6ZT1pO2xldCByLHMsbztzd2l0Y2goZSl7Y2FzZSJxdWF0ZXJuaW9uIjpyPXRoaXMuX3NsZXJwLHM9dGhpcy5fc2xlcnBBZGRpdGl2ZSxvPXRoaXMuX3NldEFkZGl0aXZlSWRlbnRpdHlRdWF0ZXJuaW9uLHRoaXMuYnVmZmVyPW5ldyBGbG9hdDY0QXJyYXkoaSo2KSx0aGlzLl93b3JrSW5kZXg9NTticmVhaztjYXNlInN0cmluZyI6Y2FzZSJib29sIjpyPXRoaXMuX3NlbGVjdCxzPXRoaXMuX3NlbGVjdCxvPXRoaXMuX3NldEFkZGl0aXZlSWRlbnRpdHlPdGhlcix0aGlzLmJ1ZmZlcj1uZXcgQXJyYXkoaSo1KTticmVhaztkZWZhdWx0OnI9dGhpcy5fbGVycCxzPXRoaXMuX2xlcnBBZGRpdGl2ZSxvPXRoaXMuX3NldEFkZGl0aXZlSWRlbnRpdHlOdW1lcmljLHRoaXMuYnVmZmVyPW5ldyBGbG9hdDY0QXJyYXkoaSo1KX10aGlzLl9taXhCdWZmZXJSZWdpb249cix0aGlzLl9taXhCdWZmZXJSZWdpb25BZGRpdGl2ZT1zLHRoaXMuX3NldElkZW50aXR5PW8sdGhpcy5fb3JpZ0luZGV4PTMsdGhpcy5fYWRkSW5kZXg9NCx0aGlzLmN1bXVsYXRpdmVXZWlnaHQ9MCx0aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZT0wLHRoaXMudXNlQ291bnQ9MCx0aGlzLnJlZmVyZW5jZUNvdW50PTB9YWNjdW11bGF0ZSh0LGUpe2xldCBpPXRoaXMuYnVmZmVyLHI9dGhpcy52YWx1ZVNpemUscz10KnIrcixvPXRoaXMuY3VtdWxhdGl2ZVdlaWdodDtpZihvPT09MCl7Zm9yKGxldCBhPTA7YSE9PXI7KythKWlbcythXT1pW2FdO289ZX1lbHNle28rPWU7bGV0IGE9ZS9vO3RoaXMuX21peEJ1ZmZlclJlZ2lvbihpLHMsMCxhLHIpfXRoaXMuY3VtdWxhdGl2ZVdlaWdodD1vfWFjY3VtdWxhdGVBZGRpdGl2ZSh0KXtsZXQgZT10aGlzLmJ1ZmZlcixpPXRoaXMudmFsdWVTaXplLHI9aSp0aGlzLl9hZGRJbmRleDt0aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZT09PTAmJnRoaXMuX3NldElkZW50aXR5KCksdGhpcy5fbWl4QnVmZmVyUmVnaW9uQWRkaXRpdmUoZSxyLDAsdCxpKSx0aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZSs9dH1hcHBseSh0KXtsZXQgZT10aGlzLnZhbHVlU2l6ZSxpPXRoaXMuYnVmZmVyLHI9dCplK2Uscz10aGlzLmN1bXVsYXRpdmVXZWlnaHQsbz10aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZSxhPXRoaXMuYmluZGluZztpZih0aGlzLmN1bXVsYXRpdmVXZWlnaHQ9MCx0aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZT0wLHM8MSl7bGV0IGw9ZSp0aGlzLl9vcmlnSW5kZXg7dGhpcy5fbWl4QnVmZmVyUmVnaW9uKGkscixsLDEtcyxlKX1vPjAmJnRoaXMuX21peEJ1ZmZlclJlZ2lvbkFkZGl0aXZlKGkscix0aGlzLl9hZGRJbmRleCplLDEsZSk7Zm9yKGxldCBsPWUsYz1lK2U7bCE9PWM7KytsKWlmKGlbbF0hPT1pW2wrZV0pe2Euc2V0VmFsdWUoaSxyKTticmVha319c2F2ZU9yaWdpbmFsU3RhdGUoKXtsZXQgdD10aGlzLmJpbmRpbmcsZT10aGlzLmJ1ZmZlcixpPXRoaXMudmFsdWVTaXplLHI9aSp0aGlzLl9vcmlnSW5kZXg7dC5nZXRWYWx1ZShlLHIpO2ZvcihsZXQgcz1pLG89cjtzIT09bzsrK3MpZVtzXT1lW3IrcyVpXTt0aGlzLl9zZXRJZGVudGl0eSgpLHRoaXMuY3VtdWxhdGl2ZVdlaWdodD0wLHRoaXMuY3VtdWxhdGl2ZVdlaWdodEFkZGl0aXZlPTB9cmVzdG9yZU9yaWdpbmFsU3RhdGUoKXtsZXQgdD10aGlzLnZhbHVlU2l6ZSozO3RoaXMuYmluZGluZy5zZXRWYWx1ZSh0aGlzLmJ1ZmZlcix0KX1fc2V0QWRkaXRpdmVJZGVudGl0eU51bWVyaWMoKXtsZXQgdD10aGlzLl9hZGRJbmRleCp0aGlzLnZhbHVlU2l6ZSxlPXQrdGhpcy52YWx1ZVNpemU7Zm9yKGxldCBpPXQ7aTxlO2krKyl0aGlzLmJ1ZmZlcltpXT0wfV9zZXRBZGRpdGl2ZUlkZW50aXR5UXVhdGVybmlvbigpe3RoaXMuX3NldEFkZGl0aXZlSWRlbnRpdHlOdW1lcmljKCksdGhpcy5idWZmZXJbdGhpcy5fYWRkSW5kZXgqdGhpcy52YWx1ZVNpemUrM109MX1fc2V0QWRkaXRpdmVJZGVudGl0eU90aGVyKCl7bGV0IHQ9dGhpcy5fb3JpZ0luZGV4KnRoaXMudmFsdWVTaXplLGU9dGhpcy5fYWRkSW5kZXgqdGhpcy52YWx1ZVNpemU7Zm9yKGxldCBpPTA7aTx0aGlzLnZhbHVlU2l6ZTtpKyspdGhpcy5idWZmZXJbZStpXT10aGlzLmJ1ZmZlclt0K2ldfV9zZWxlY3QodCxlLGkscixzKXtpZihyPj0uNSlmb3IobGV0IG89MDtvIT09czsrK28pdFtlK29dPXRbaStvXX1fc2xlcnAodCxlLGkscil7RWUuc2xlcnBGbGF0KHQsZSx0LGUsdCxpLHIpfV9zbGVycEFkZGl0aXZlKHQsZSxpLHIscyl7bGV0IG89dGhpcy5fd29ya0luZGV4KnM7RWUubXVsdGlwbHlRdWF0ZXJuaW9uc0ZsYXQodCxvLHQsZSx0LGkpLEVlLnNsZXJwRmxhdCh0LGUsdCxlLHQsbyxyKX1fbGVycCh0LGUsaSxyLHMpe2xldCBvPTEtcjtmb3IobGV0IGE9MDthIT09czsrK2Epe2xldCBsPWUrYTt0W2xdPXRbbF0qbyt0W2krYV0qcn19X2xlcnBBZGRpdGl2ZSh0LGUsaSxyLHMpe2ZvcihsZXQgbz0wO28hPT1zOysrbyl7bGV0IGE9ZStvO3RbYV09dFthXSt0W2krb10qcn19fSxlZj0iXFxbXFxdXFwuOlxcLyIsZlQ9bmV3IFJlZ0V4cCgiWyIrZWYrIl0iLCJnIiksbmY9IlteIitlZisiXSIsZFQ9IlteIitlZi5yZXBsYWNlKCJcXC4iLCIiKSsiXSIscFQ9LygoPzpXQytbXC86XSkqKS8uc291cmNlLnJlcGxhY2UoIldDIixuZiksbVQ9LyhXQ09EKyk/Ly5zb3VyY2UucmVwbGFjZSgiV0NPRCIsZFQpLGdUPS8oPzpcLihXQyspKD86XFsoLispXF0pPyk/Ly5zb3VyY2UucmVwbGFjZSgiV0MiLG5mKSx4VD0vXC4oV0MrKSg/OlxbKC4rKVxdKT8vLnNvdXJjZS5yZXBsYWNlKCJXQyIsbmYpLHlUPW5ldyBSZWdFeHAoIl4iK3BUK21UK2dUK3hUKyIkIiksdlQ9WyJtYXRlcmlhbCIsIm1hdGVyaWFscyIsImJvbmVzIl0sSGg9Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkpe2xldCByPWl8fE50LnBhcnNlVHJhY2tOYW1lKGUpO3RoaXMuX3RhcmdldEdyb3VwPXQsdGhpcy5fYmluZGluZ3M9dC5zdWJzY3JpYmVfKGUscil9Z2V0VmFsdWUodCxlKXt0aGlzLmJpbmQoKTtsZXQgaT10aGlzLl90YXJnZXRHcm91cC5uQ2FjaGVkT2JqZWN0c18scj10aGlzLl9iaW5kaW5nc1tpXTtyIT09dm9pZCAwJiZyLmdldFZhbHVlKHQsZSl9c2V0VmFsdWUodCxlKXtsZXQgaT10aGlzLl9iaW5kaW5ncztmb3IobGV0IHI9dGhpcy5fdGFyZ2V0R3JvdXAubkNhY2hlZE9iamVjdHNfLHM9aS5sZW5ndGg7ciE9PXM7KytyKWlbcl0uc2V0VmFsdWUodCxlKX1iaW5kKCl7bGV0IHQ9dGhpcy5fYmluZGluZ3M7Zm9yKGxldCBlPXRoaXMuX3RhcmdldEdyb3VwLm5DYWNoZWRPYmplY3RzXyxpPXQubGVuZ3RoO2UhPT1pOysrZSl0W2VdLmJpbmQoKX11bmJpbmQoKXtsZXQgdD10aGlzLl9iaW5kaW5ncztmb3IobGV0IGU9dGhpcy5fdGFyZ2V0R3JvdXAubkNhY2hlZE9iamVjdHNfLGk9dC5sZW5ndGg7ZSE9PWk7KytlKXRbZV0udW5iaW5kKCl9fSxOdD1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSl7dGhpcy5wYXRoPWUsdGhpcy5wYXJzZWRQYXRoPWl8fE50LnBhcnNlVHJhY2tOYW1lKGUpLHRoaXMubm9kZT1OdC5maW5kTm9kZSh0LHRoaXMucGFyc2VkUGF0aC5ub2RlTmFtZSl8fHQsdGhpcy5yb290Tm9kZT10LHRoaXMuZ2V0VmFsdWU9dGhpcy5fZ2V0VmFsdWVfdW5ib3VuZCx0aGlzLnNldFZhbHVlPXRoaXMuX3NldFZhbHVlX3VuYm91bmR9c3RhdGljIGNyZWF0ZSh0LGUsaSl7cmV0dXJuIHQmJnQuaXNBbmltYXRpb25PYmplY3RHcm91cD9uZXcgTnQuQ29tcG9zaXRlKHQsZSxpKTpuZXcgTnQodCxlLGkpfXN0YXRpYyBzYW5pdGl6ZU5vZGVOYW1lKHQpe3JldHVybiB0LnJlcGxhY2UoL1xzL2csIl8iKS5yZXBsYWNlKGZULCIiKX1zdGF0aWMgcGFyc2VUcmFja05hbWUodCl7bGV0IGU9eVQuZXhlYyh0KTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIlByb3BlcnR5QmluZGluZzogQ2Fubm90IHBhcnNlIHRyYWNrTmFtZTogIit0KTtsZXQgaT17bm9kZU5hbWU6ZVsyXSxvYmplY3ROYW1lOmVbM10sb2JqZWN0SW5kZXg6ZVs0XSxwcm9wZXJ0eU5hbWU6ZVs1XSxwcm9wZXJ0eUluZGV4OmVbNl19LHI9aS5ub2RlTmFtZSYmaS5ub2RlTmFtZS5sYXN0SW5kZXhPZigiLiIpO2lmKHIhPT12b2lkIDAmJnIhPT0tMSl7bGV0IHM9aS5ub2RlTmFtZS5zdWJzdHJpbmcocisxKTt2VC5pbmRleE9mKHMpIT09LTEmJihpLm5vZGVOYW1lPWkubm9kZU5hbWUuc3Vic3RyaW5nKDAsciksaS5vYmplY3ROYW1lPXMpfWlmKGkucHJvcGVydHlOYW1lPT09bnVsbHx8aS5wcm9wZXJ0eU5hbWUubGVuZ3RoPT09MCl0aHJvdyBuZXcgRXJyb3IoIlByb3BlcnR5QmluZGluZzogY2FuIG5vdCBwYXJzZSBwcm9wZXJ0eU5hbWUgZnJvbSB0cmFja05hbWU6ICIrdCk7cmV0dXJuIGl9c3RhdGljIGZpbmROb2RlKHQsZSl7aWYoIWV8fGU9PT0iInx8ZT09PSIuInx8ZT09PS0xfHxlPT09dC5uYW1lfHxlPT09dC51dWlkKXJldHVybiB0O2lmKHQuc2tlbGV0b24pe2xldCBpPXQuc2tlbGV0b24uZ2V0Qm9uZUJ5TmFtZShlKTtpZihpIT09dm9pZCAwKXJldHVybiBpfWlmKHQuY2hpbGRyZW4pe2xldCBpPWZ1bmN0aW9uKHMpe2ZvcihsZXQgbz0wO288cy5sZW5ndGg7bysrKXtsZXQgYT1zW29dO2lmKGEubmFtZT09PWV8fGEudXVpZD09PWUpcmV0dXJuIGE7bGV0IGw9aShhLmNoaWxkcmVuKTtpZihsKXJldHVybiBsfXJldHVybiBudWxsfSxyPWkodC5jaGlsZHJlbik7aWYocilyZXR1cm4gcn1yZXR1cm4gbnVsbH1fZ2V0VmFsdWVfdW5hdmFpbGFibGUoKXt9X3NldFZhbHVlX3VuYXZhaWxhYmxlKCl7fV9nZXRWYWx1ZV9kaXJlY3QodCxlKXt0W2VdPXRoaXMudGFyZ2V0T2JqZWN0W3RoaXMucHJvcGVydHlOYW1lXX1fZ2V0VmFsdWVfYXJyYXkodCxlKXtsZXQgaT10aGlzLnJlc29sdmVkUHJvcGVydHk7Zm9yKGxldCByPTAscz1pLmxlbmd0aDtyIT09czsrK3IpdFtlKytdPWlbcl19X2dldFZhbHVlX2FycmF5RWxlbWVudCh0LGUpe3RbZV09dGhpcy5yZXNvbHZlZFByb3BlcnR5W3RoaXMucHJvcGVydHlJbmRleF19X2dldFZhbHVlX3RvQXJyYXkodCxlKXt0aGlzLnJlc29sdmVkUHJvcGVydHkudG9BcnJheSh0LGUpfV9zZXRWYWx1ZV9kaXJlY3QodCxlKXt0aGlzLnRhcmdldE9iamVjdFt0aGlzLnByb3BlcnR5TmFtZV09dFtlXX1fc2V0VmFsdWVfZGlyZWN0X3NldE5lZWRzVXBkYXRlKHQsZSl7dGhpcy50YXJnZXRPYmplY3RbdGhpcy5wcm9wZXJ0eU5hbWVdPXRbZV0sdGhpcy50YXJnZXRPYmplY3QubmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2RpcmVjdF9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlKHQsZSl7dGhpcy50YXJnZXRPYmplY3RbdGhpcy5wcm9wZXJ0eU5hbWVdPXRbZV0sdGhpcy50YXJnZXRPYmplY3QubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfYXJyYXkodCxlKXtsZXQgaT10aGlzLnJlc29sdmVkUHJvcGVydHk7Zm9yKGxldCByPTAscz1pLmxlbmd0aDtyIT09czsrK3IpaVtyXT10W2UrK119X3NldFZhbHVlX2FycmF5X3NldE5lZWRzVXBkYXRlKHQsZSl7bGV0IGk9dGhpcy5yZXNvbHZlZFByb3BlcnR5O2ZvcihsZXQgcj0wLHM9aS5sZW5ndGg7ciE9PXM7KytyKWlbcl09dFtlKytdO3RoaXMudGFyZ2V0T2JqZWN0Lm5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9hcnJheV9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlKHQsZSl7bGV0IGk9dGhpcy5yZXNvbHZlZFByb3BlcnR5O2ZvcihsZXQgcj0wLHM9aS5sZW5ndGg7ciE9PXM7KytyKWlbcl09dFtlKytdO3RoaXMudGFyZ2V0T2JqZWN0Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2FycmF5RWxlbWVudCh0LGUpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eVt0aGlzLnByb3BlcnR5SW5kZXhdPXRbZV19X3NldFZhbHVlX2FycmF5RWxlbWVudF9zZXROZWVkc1VwZGF0ZSh0LGUpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eVt0aGlzLnByb3BlcnR5SW5kZXhdPXRbZV0sdGhpcy50YXJnZXRPYmplY3QubmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2FycmF5RWxlbWVudF9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlKHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5W3RoaXMucHJvcGVydHlJbmRleF09dFtlXSx0aGlzLnRhcmdldE9iamVjdC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9mcm9tQXJyYXkodCxlKXt0aGlzLnJlc29sdmVkUHJvcGVydHkuZnJvbUFycmF5KHQsZSl9X3NldFZhbHVlX2Zyb21BcnJheV9zZXROZWVkc1VwZGF0ZSh0LGUpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eS5mcm9tQXJyYXkodCxlKSx0aGlzLnRhcmdldE9iamVjdC5uZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfZnJvbUFycmF5X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGUodCxlKXt0aGlzLnJlc29sdmVkUHJvcGVydHkuZnJvbUFycmF5KHQsZSksdGhpcy50YXJnZXRPYmplY3QubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMH1fZ2V0VmFsdWVfdW5ib3VuZCh0LGUpe3RoaXMuYmluZCgpLHRoaXMuZ2V0VmFsdWUodCxlKX1fc2V0VmFsdWVfdW5ib3VuZCh0LGUpe3RoaXMuYmluZCgpLHRoaXMuc2V0VmFsdWUodCxlKX1iaW5kKCl7bGV0IHQ9dGhpcy5ub2RlLGU9dGhpcy5wYXJzZWRQYXRoLGk9ZS5vYmplY3ROYW1lLHI9ZS5wcm9wZXJ0eU5hbWUscz1lLnByb3BlcnR5SW5kZXg7aWYodHx8KHQ9TnQuZmluZE5vZGUodGhpcy5yb290Tm9kZSxlLm5vZGVOYW1lKXx8dGhpcy5yb290Tm9kZSx0aGlzLm5vZGU9dCksdGhpcy5nZXRWYWx1ZT10aGlzLl9nZXRWYWx1ZV91bmF2YWlsYWJsZSx0aGlzLnNldFZhbHVlPXRoaXMuX3NldFZhbHVlX3VuYXZhaWxhYmxlLCF0KXtjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IFRyeWluZyB0byB1cGRhdGUgbm9kZSBmb3IgdHJhY2s6ICIrdGhpcy5wYXRoKyIgYnV0IGl0IHdhc24ndCBmb3VuZC4iKTtyZXR1cm59aWYoaSl7bGV0IGM9ZS5vYmplY3RJbmRleDtzd2l0Y2goaSl7Y2FzZSJtYXRlcmlhbHMiOmlmKCF0Lm1hdGVyaWFsKXtjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBtYXRlcmlhbCBhcyBub2RlIGRvZXMgbm90IGhhdmUgYSBtYXRlcmlhbC4iLHRoaXMpO3JldHVybn1pZighdC5tYXRlcmlhbC5tYXRlcmlhbHMpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogQ2FuIG5vdCBiaW5kIHRvIG1hdGVyaWFsLm1hdGVyaWFscyBhcyBub2RlLm1hdGVyaWFsIGRvZXMgbm90IGhhdmUgYSBtYXRlcmlhbHMgYXJyYXkuIix0aGlzKTtyZXR1cm59dD10Lm1hdGVyaWFsLm1hdGVyaWFsczticmVhaztjYXNlImJvbmVzIjppZighdC5za2VsZXRvbil7Y29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gYm9uZXMgYXMgbm9kZSBkb2VzIG5vdCBoYXZlIGEgc2tlbGV0b24uIix0aGlzKTtyZXR1cm59dD10LnNrZWxldG9uLmJvbmVzO2ZvcihsZXQgdT0wO3U8dC5sZW5ndGg7dSsrKWlmKHRbdV0ubmFtZT09PWMpe2M9dTticmVha31icmVhaztkZWZhdWx0OmlmKHRbaV09PT12b2lkIDApe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogQ2FuIG5vdCBiaW5kIHRvIG9iamVjdE5hbWUgb2Ygbm9kZSB1bmRlZmluZWQuIix0aGlzKTtyZXR1cm59dD10W2ldfWlmKGMhPT12b2lkIDApe2lmKHRbY109PT12b2lkIDApe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogVHJ5aW5nIHRvIGJpbmQgdG8gb2JqZWN0SW5kZXggb2Ygb2JqZWN0TmFtZSwgYnV0IGlzIHVuZGVmaW5lZC4iLHRoaXMsdCk7cmV0dXJufXQ9dFtjXX19bGV0IG89dFtyXTtpZihvPT09dm9pZCAwKXtsZXQgYz1lLm5vZGVOYW1lO2NvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogVHJ5aW5nIHRvIHVwZGF0ZSBwcm9wZXJ0eSBmb3IgdHJhY2s6ICIrYysiLiIrcisiIGJ1dCBpdCB3YXNuJ3QgZm91bmQuIix0KTtyZXR1cm59bGV0IGE9dGhpcy5WZXJzaW9uaW5nLk5vbmU7dGhpcy50YXJnZXRPYmplY3Q9dCx0Lm5lZWRzVXBkYXRlIT09dm9pZCAwP2E9dGhpcy5WZXJzaW9uaW5nLk5lZWRzVXBkYXRlOnQubWF0cml4V29ybGROZWVkc1VwZGF0ZSE9PXZvaWQgMCYmKGE9dGhpcy5WZXJzaW9uaW5nLk1hdHJpeFdvcmxkTmVlZHNVcGRhdGUpO2xldCBsPXRoaXMuQmluZGluZ1R5cGUuRGlyZWN0O2lmKHMhPT12b2lkIDApe2lmKHI9PT0ibW9ycGhUYXJnZXRJbmZsdWVuY2VzIil7aWYoIXQuZ2VvbWV0cnkpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogQ2FuIG5vdCBiaW5kIHRvIG1vcnBoVGFyZ2V0SW5mbHVlbmNlcyBiZWNhdXNlIG5vZGUgZG9lcyBub3QgaGF2ZSBhIGdlb21ldHJ5LiIsdGhpcyk7cmV0dXJufWlmKHQuZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSl7aWYoIXQuZ2VvbWV0cnkubW9ycGhBdHRyaWJ1dGVzKXtjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBtb3JwaFRhcmdldEluZmx1ZW5jZXMgYmVjYXVzZSBub2RlIGRvZXMgbm90IGhhdmUgYSBnZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMuIix0aGlzKTtyZXR1cm59dC5tb3JwaFRhcmdldERpY3Rpb25hcnlbc10hPT12b2lkIDAmJihzPXQubW9ycGhUYXJnZXREaWN0aW9uYXJ5W3NdKX1lbHNle2NvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogQ2FuIG5vdCBiaW5kIHRvIG1vcnBoVGFyZ2V0SW5mbHVlbmNlcyBvbiBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIix0aGlzKTtyZXR1cm59fWw9dGhpcy5CaW5kaW5nVHlwZS5BcnJheUVsZW1lbnQsdGhpcy5yZXNvbHZlZFByb3BlcnR5PW8sdGhpcy5wcm9wZXJ0eUluZGV4PXN9ZWxzZSBvLmZyb21BcnJheSE9PXZvaWQgMCYmby50b0FycmF5IT09dm9pZCAwPyhsPXRoaXMuQmluZGluZ1R5cGUuSGFzRnJvbVRvQXJyYXksdGhpcy5yZXNvbHZlZFByb3BlcnR5PW8pOkFycmF5LmlzQXJyYXkobyk/KGw9dGhpcy5CaW5kaW5nVHlwZS5FbnRpcmVBcnJheSx0aGlzLnJlc29sdmVkUHJvcGVydHk9byk6dGhpcy5wcm9wZXJ0eU5hbWU9cjt0aGlzLmdldFZhbHVlPXRoaXMuR2V0dGVyQnlCaW5kaW5nVHlwZVtsXSx0aGlzLnNldFZhbHVlPXRoaXMuU2V0dGVyQnlCaW5kaW5nVHlwZUFuZFZlcnNpb25pbmdbbF1bYV19dW5iaW5kKCl7dGhpcy5ub2RlPW51bGwsdGhpcy5nZXRWYWx1ZT10aGlzLl9nZXRWYWx1ZV91bmJvdW5kLHRoaXMuc2V0VmFsdWU9dGhpcy5fc2V0VmFsdWVfdW5ib3VuZH19O050LkNvbXBvc2l0ZT1IaDtOdC5wcm90b3R5cGUuQmluZGluZ1R5cGU9e0RpcmVjdDowLEVudGlyZUFycmF5OjEsQXJyYXlFbGVtZW50OjIsSGFzRnJvbVRvQXJyYXk6M307TnQucHJvdG90eXBlLlZlcnNpb25pbmc9e05vbmU6MCxOZWVkc1VwZGF0ZToxLE1hdHJpeFdvcmxkTmVlZHNVcGRhdGU6Mn07TnQucHJvdG90eXBlLkdldHRlckJ5QmluZGluZ1R5cGU9W050LnByb3RvdHlwZS5fZ2V0VmFsdWVfZGlyZWN0LE50LnByb3RvdHlwZS5fZ2V0VmFsdWVfYXJyYXksTnQucHJvdG90eXBlLl9nZXRWYWx1ZV9hcnJheUVsZW1lbnQsTnQucHJvdG90eXBlLl9nZXRWYWx1ZV90b0FycmF5XTtOdC5wcm90b3R5cGUuU2V0dGVyQnlCaW5kaW5nVHlwZUFuZFZlcnNpb25pbmc9W1tOdC5wcm90b3R5cGUuX3NldFZhbHVlX2RpcmVjdCxOdC5wcm90b3R5cGUuX3NldFZhbHVlX2RpcmVjdF9zZXROZWVkc1VwZGF0ZSxOdC5wcm90b3R5cGUuX3NldFZhbHVlX2RpcmVjdF9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlXSxbTnQucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheSxOdC5wcm90b3R5cGUuX3NldFZhbHVlX2FycmF5X3NldE5lZWRzVXBkYXRlLE50LnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZV0sW050LnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlFbGVtZW50LE50LnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE5lZWRzVXBkYXRlLE50LnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGVdLFtOdC5wcm90b3R5cGUuX3NldFZhbHVlX2Zyb21BcnJheSxOdC5wcm90b3R5cGUuX3NldFZhbHVlX2Zyb21BcnJheV9zZXROZWVkc1VwZGF0ZSxOdC5wcm90b3R5cGUuX3NldFZhbHVlX2Zyb21BcnJheV9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlXV07dmFyIFZoPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy51dWlkPXRuKCksdGhpcy5fb2JqZWN0cz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLHRoaXMubkNhY2hlZE9iamVjdHNfPTA7bGV0IHQ9e307dGhpcy5faW5kaWNlc0J5VVVJRD10O2ZvcihsZXQgaT0wLHI9YXJndW1lbnRzLmxlbmd0aDtpIT09cjsrK2kpdFthcmd1bWVudHNbaV0udXVpZF09aTt0aGlzLl9wYXRocz1bXSx0aGlzLl9wYXJzZWRQYXRocz1bXSx0aGlzLl9iaW5kaW5ncz1bXSx0aGlzLl9iaW5kaW5nc0luZGljZXNCeVBhdGg9e307bGV0IGU9dGhpczt0aGlzLnN0YXRzPXtvYmplY3RzOntnZXQgdG90YWwoKXtyZXR1cm4gZS5fb2JqZWN0cy5sZW5ndGh9LGdldCBpblVzZSgpe3JldHVybiB0aGlzLnRvdGFsLWUubkNhY2hlZE9iamVjdHNffX0sZ2V0IGJpbmRpbmdzUGVyT2JqZWN0KCl7cmV0dXJuIGUuX2JpbmRpbmdzLmxlbmd0aH19fWFkZCgpe2xldCB0PXRoaXMuX29iamVjdHMsZT10aGlzLl9pbmRpY2VzQnlVVUlELGk9dGhpcy5fcGF0aHMscj10aGlzLl9wYXJzZWRQYXRocyxzPXRoaXMuX2JpbmRpbmdzLG89cy5sZW5ndGgsYSxsPXQubGVuZ3RoLGM9dGhpcy5uQ2FjaGVkT2JqZWN0c187Zm9yKGxldCB1PTAsaD1hcmd1bWVudHMubGVuZ3RoO3UhPT1oOysrdSl7bGV0IGY9YXJndW1lbnRzW3VdLGQ9Zi51dWlkLGc9ZVtkXTtpZihnPT09dm9pZCAwKXtnPWwrKyxlW2RdPWcsdC5wdXNoKGYpO2ZvcihsZXQgeD0wLHY9bzt4IT09djsrK3gpc1t4XS5wdXNoKG5ldyBOdChmLGlbeF0sclt4XSkpfWVsc2UgaWYoZzxjKXthPXRbZ107bGV0IHg9LS1jLHY9dFt4XTtlW3YudXVpZF09Zyx0W2ddPXYsZVtkXT14LHRbeF09Zjtmb3IobGV0IG09MCxwPW87bSE9PXA7KyttKXtsZXQgYj1zW21dLF89Ylt4XSxTPWJbZ107YltnXT1fLFM9PT12b2lkIDAmJihTPW5ldyBOdChmLGlbbV0sclttXSkpLGJbeF09U319ZWxzZSB0W2ddIT09YSYmY29uc29sZS5lcnJvcigiVEhSRUUuQW5pbWF0aW9uT2JqZWN0R3JvdXA6IERpZmZlcmVudCBvYmplY3RzIHdpdGggdGhlIHNhbWUgVVVJRCBkZXRlY3RlZC4gQ2xlYW4gdGhlIGNhY2hlcyBvciByZWNyZWF0ZSB5b3VyIGluZnJhc3RydWN0dXJlIHdoZW4gcmVsb2FkaW5nIHNjZW5lcy4iKX10aGlzLm5DYWNoZWRPYmplY3RzXz1jfXJlbW92ZSgpe2xldCB0PXRoaXMuX29iamVjdHMsZT10aGlzLl9pbmRpY2VzQnlVVUlELGk9dGhpcy5fYmluZGluZ3Mscj1pLmxlbmd0aCxzPXRoaXMubkNhY2hlZE9iamVjdHNfO2ZvcihsZXQgbz0wLGE9YXJndW1lbnRzLmxlbmd0aDtvIT09YTsrK28pe2xldCBsPWFyZ3VtZW50c1tvXSxjPWwudXVpZCx1PWVbY107aWYodSE9PXZvaWQgMCYmdT49cyl7bGV0IGg9cysrLGY9dFtoXTtlW2YudXVpZF09dSx0W3VdPWYsZVtjXT1oLHRbaF09bDtmb3IobGV0IGQ9MCxnPXI7ZCE9PWc7KytkKXtsZXQgeD1pW2RdLHY9eFtoXSxtPXhbdV07eFt1XT12LHhbaF09bX19fXRoaXMubkNhY2hlZE9iamVjdHNfPXN9dW5jYWNoZSgpe2xldCB0PXRoaXMuX29iamVjdHMsZT10aGlzLl9pbmRpY2VzQnlVVUlELGk9dGhpcy5fYmluZGluZ3Mscj1pLmxlbmd0aCxzPXRoaXMubkNhY2hlZE9iamVjdHNfLG89dC5sZW5ndGg7Zm9yKGxldCBhPTAsbD1hcmd1bWVudHMubGVuZ3RoO2EhPT1sOysrYSl7bGV0IGM9YXJndW1lbnRzW2FdLHU9Yy51dWlkLGg9ZVt1XTtpZihoIT09dm9pZCAwKWlmKGRlbGV0ZSBlW3VdLGg8cyl7bGV0IGY9LS1zLGQ9dFtmXSxnPS0tbyx4PXRbZ107ZVtkLnV1aWRdPWgsdFtoXT1kLGVbeC51dWlkXT1mLHRbZl09eCx0LnBvcCgpO2ZvcihsZXQgdj0wLG09cjt2IT09bTsrK3Ype2xldCBwPWlbdl0sYj1wW2ZdLF89cFtnXTtwW2hdPWIscFtmXT1fLHAucG9wKCl9fWVsc2V7bGV0IGY9LS1vLGQ9dFtmXTtmPjAmJihlW2QudXVpZF09aCksdFtoXT1kLHQucG9wKCk7Zm9yKGxldCBnPTAseD1yO2chPT14OysrZyl7bGV0IHY9aVtnXTt2W2hdPXZbZl0sdi5wb3AoKX19fXRoaXMubkNhY2hlZE9iamVjdHNfPXN9c3Vic2NyaWJlXyh0LGUpe2xldCBpPXRoaXMuX2JpbmRpbmdzSW5kaWNlc0J5UGF0aCxyPWlbdF0scz10aGlzLl9iaW5kaW5ncztpZihyIT09dm9pZCAwKXJldHVybiBzW3JdO2xldCBvPXRoaXMuX3BhdGhzLGE9dGhpcy5fcGFyc2VkUGF0aHMsbD10aGlzLl9vYmplY3RzLGM9bC5sZW5ndGgsdT10aGlzLm5DYWNoZWRPYmplY3RzXyxoPW5ldyBBcnJheShjKTtyPXMubGVuZ3RoLGlbdF09cixvLnB1c2godCksYS5wdXNoKGUpLHMucHVzaChoKTtmb3IobGV0IGY9dSxkPWwubGVuZ3RoO2YhPT1kOysrZil7bGV0IGc9bFtmXTtoW2ZdPW5ldyBOdChnLHQsZSl9cmV0dXJuIGh9dW5zdWJzY3JpYmVfKHQpe2xldCBlPXRoaXMuX2JpbmRpbmdzSW5kaWNlc0J5UGF0aCxpPWVbdF07aWYoaSE9PXZvaWQgMCl7bGV0IHI9dGhpcy5fcGF0aHMscz10aGlzLl9wYXJzZWRQYXRocyxvPXRoaXMuX2JpbmRpbmdzLGE9by5sZW5ndGgtMSxsPW9bYV0sYz10W2FdO2VbY109aSxvW2ldPWwsby5wb3AoKSxzW2ldPXNbYV0scy5wb3AoKSxyW2ldPXJbYV0sci5wb3AoKX19fTtWaC5wcm90b3R5cGUuaXNBbmltYXRpb25PYmplY3RHcm91cD0hMDt2YXIgR2g9Y2xhc3N7Y29uc3RydWN0b3IodCxlLGk9bnVsbCxyPWUuYmxlbmRNb2RlKXt0aGlzLl9taXhlcj10LHRoaXMuX2NsaXA9ZSx0aGlzLl9sb2NhbFJvb3Q9aSx0aGlzLmJsZW5kTW9kZT1yO2xldCBzPWUudHJhY2tzLG89cy5sZW5ndGgsYT1uZXcgQXJyYXkobyksbD17ZW5kaW5nU3RhcnQ6TnIsZW5kaW5nRW5kOk5yfTtmb3IobGV0IGM9MDtjIT09bzsrK2Mpe2xldCB1PXNbY10uY3JlYXRlSW50ZXJwb2xhbnQobnVsbCk7YVtjXT11LHUuc2V0dGluZ3M9bH10aGlzLl9pbnRlcnBvbGFudFNldHRpbmdzPWwsdGhpcy5faW50ZXJwb2xhbnRzPWEsdGhpcy5fcHJvcGVydHlCaW5kaW5ncz1uZXcgQXJyYXkobyksdGhpcy5fY2FjaGVJbmRleD1udWxsLHRoaXMuX2J5Q2xpcENhY2hlSW5kZXg9bnVsbCx0aGlzLl90aW1lU2NhbGVJbnRlcnBvbGFudD1udWxsLHRoaXMuX3dlaWdodEludGVycG9sYW50PW51bGwsdGhpcy5sb29wPVp3LHRoaXMuX2xvb3BDb3VudD0tMSx0aGlzLl9zdGFydFRpbWU9bnVsbCx0aGlzLnRpbWU9MCx0aGlzLnRpbWVTY2FsZT0xLHRoaXMuX2VmZmVjdGl2ZVRpbWVTY2FsZT0xLHRoaXMud2VpZ2h0PTEsdGhpcy5fZWZmZWN0aXZlV2VpZ2h0PTEsdGhpcy5yZXBldGl0aW9ucz0xLzAsdGhpcy5wYXVzZWQ9ITEsdGhpcy5lbmFibGVkPSEwLHRoaXMuY2xhbXBXaGVuRmluaXNoZWQ9ITEsdGhpcy56ZXJvU2xvcGVBdFN0YXJ0PSEwLHRoaXMuemVyb1Nsb3BlQXRFbmQ9ITB9cGxheSgpe3JldHVybiB0aGlzLl9taXhlci5fYWN0aXZhdGVBY3Rpb24odGhpcyksdGhpc31zdG9wKCl7cmV0dXJuIHRoaXMuX21peGVyLl9kZWFjdGl2YXRlQWN0aW9uKHRoaXMpLHRoaXMucmVzZXQoKX1yZXNldCgpe3JldHVybiB0aGlzLnBhdXNlZD0hMSx0aGlzLmVuYWJsZWQ9ITAsdGhpcy50aW1lPTAsdGhpcy5fbG9vcENvdW50PS0xLHRoaXMuX3N0YXJ0VGltZT1udWxsLHRoaXMuc3RvcEZhZGluZygpLnN0b3BXYXJwaW5nKCl9aXNSdW5uaW5nKCl7cmV0dXJuIHRoaXMuZW5hYmxlZCYmIXRoaXMucGF1c2VkJiZ0aGlzLnRpbWVTY2FsZSE9PTAmJnRoaXMuX3N0YXJ0VGltZT09PW51bGwmJnRoaXMuX21peGVyLl9pc0FjdGl2ZUFjdGlvbih0aGlzKX1pc1NjaGVkdWxlZCgpe3JldHVybiB0aGlzLl9taXhlci5faXNBY3RpdmVBY3Rpb24odGhpcyl9c3RhcnRBdCh0KXtyZXR1cm4gdGhpcy5fc3RhcnRUaW1lPXQsdGhpc31zZXRMb29wKHQsZSl7cmV0dXJuIHRoaXMubG9vcD10LHRoaXMucmVwZXRpdGlvbnM9ZSx0aGlzfXNldEVmZmVjdGl2ZVdlaWdodCh0KXtyZXR1cm4gdGhpcy53ZWlnaHQ9dCx0aGlzLl9lZmZlY3RpdmVXZWlnaHQ9dGhpcy5lbmFibGVkP3Q6MCx0aGlzLnN0b3BGYWRpbmcoKX1nZXRFZmZlY3RpdmVXZWlnaHQoKXtyZXR1cm4gdGhpcy5fZWZmZWN0aXZlV2VpZ2h0fWZhZGVJbih0KXtyZXR1cm4gdGhpcy5fc2NoZWR1bGVGYWRpbmcodCwwLDEpfWZhZGVPdXQodCl7cmV0dXJuIHRoaXMuX3NjaGVkdWxlRmFkaW5nKHQsMSwwKX1jcm9zc0ZhZGVGcm9tKHQsZSxpKXtpZih0LmZhZGVPdXQoZSksdGhpcy5mYWRlSW4oZSksaSl7bGV0IHI9dGhpcy5fY2xpcC5kdXJhdGlvbixzPXQuX2NsaXAuZHVyYXRpb24sbz1zL3IsYT1yL3M7dC53YXJwKDEsbyxlKSx0aGlzLndhcnAoYSwxLGUpfXJldHVybiB0aGlzfWNyb3NzRmFkZVRvKHQsZSxpKXtyZXR1cm4gdC5jcm9zc0ZhZGVGcm9tKHRoaXMsZSxpKX1zdG9wRmFkaW5nKCl7bGV0IHQ9dGhpcy5fd2VpZ2h0SW50ZXJwb2xhbnQ7cmV0dXJuIHQhPT1udWxsJiYodGhpcy5fd2VpZ2h0SW50ZXJwb2xhbnQ9bnVsbCx0aGlzLl9taXhlci5fdGFrZUJhY2tDb250cm9sSW50ZXJwb2xhbnQodCkpLHRoaXN9c2V0RWZmZWN0aXZlVGltZVNjYWxlKHQpe3JldHVybiB0aGlzLnRpbWVTY2FsZT10LHRoaXMuX2VmZmVjdGl2ZVRpbWVTY2FsZT10aGlzLnBhdXNlZD8wOnQsdGhpcy5zdG9wV2FycGluZygpfWdldEVmZmVjdGl2ZVRpbWVTY2FsZSgpe3JldHVybiB0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGV9c2V0RHVyYXRpb24odCl7cmV0dXJuIHRoaXMudGltZVNjYWxlPXRoaXMuX2NsaXAuZHVyYXRpb24vdCx0aGlzLnN0b3BXYXJwaW5nKCl9c3luY1dpdGgodCl7cmV0dXJuIHRoaXMudGltZT10LnRpbWUsdGhpcy50aW1lU2NhbGU9dC50aW1lU2NhbGUsdGhpcy5zdG9wV2FycGluZygpfWhhbHQodCl7cmV0dXJuIHRoaXMud2FycCh0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGUsMCx0KX13YXJwKHQsZSxpKXtsZXQgcj10aGlzLl9taXhlcixzPXIudGltZSxvPXRoaXMudGltZVNjYWxlLGE9dGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ7YT09PW51bGwmJihhPXIuX2xlbmRDb250cm9sSW50ZXJwb2xhbnQoKSx0aGlzLl90aW1lU2NhbGVJbnRlcnBvbGFudD1hKTtsZXQgbD1hLnBhcmFtZXRlclBvc2l0aW9ucyxjPWEuc2FtcGxlVmFsdWVzO3JldHVybiBsWzBdPXMsbFsxXT1zK2ksY1swXT10L28sY1sxXT1lL28sdGhpc31zdG9wV2FycGluZygpe2xldCB0PXRoaXMuX3RpbWVTY2FsZUludGVycG9sYW50O3JldHVybiB0IT09bnVsbCYmKHRoaXMuX3RpbWVTY2FsZUludGVycG9sYW50PW51bGwsdGhpcy5fbWl4ZXIuX3Rha2VCYWNrQ29udHJvbEludGVycG9sYW50KHQpKSx0aGlzfWdldE1peGVyKCl7cmV0dXJuIHRoaXMuX21peGVyfWdldENsaXAoKXtyZXR1cm4gdGhpcy5fY2xpcH1nZXRSb290KCl7cmV0dXJuIHRoaXMuX2xvY2FsUm9vdHx8dGhpcy5fbWl4ZXIuX3Jvb3R9X3VwZGF0ZSh0LGUsaSxyKXtpZighdGhpcy5lbmFibGVkKXt0aGlzLl91cGRhdGVXZWlnaHQodCk7cmV0dXJufWxldCBzPXRoaXMuX3N0YXJ0VGltZTtpZihzIT09bnVsbCl7bGV0IGw9KHQtcykqaTtpZihsPDB8fGk9PT0wKXJldHVybjt0aGlzLl9zdGFydFRpbWU9bnVsbCxlPWkqbH1lKj10aGlzLl91cGRhdGVUaW1lU2NhbGUodCk7bGV0IG89dGhpcy5fdXBkYXRlVGltZShlKSxhPXRoaXMuX3VwZGF0ZVdlaWdodCh0KTtpZihhPjApe2xldCBsPXRoaXMuX2ludGVycG9sYW50cyxjPXRoaXMuX3Byb3BlcnR5QmluZGluZ3M7c3dpdGNoKHRoaXMuYmxlbmRNb2RlKXtjYXNlIGQwOmZvcihsZXQgdT0wLGg9bC5sZW5ndGg7dSE9PWg7Kyt1KWxbdV0uZXZhbHVhdGUobyksY1t1XS5hY2N1bXVsYXRlQWRkaXRpdmUoYSk7YnJlYWs7Y2FzZSBRaDpkZWZhdWx0OmZvcihsZXQgdT0wLGg9bC5sZW5ndGg7dSE9PWg7Kyt1KWxbdV0uZXZhbHVhdGUobyksY1t1XS5hY2N1bXVsYXRlKHIsYSl9fX1fdXBkYXRlV2VpZ2h0KHQpe2xldCBlPTA7aWYodGhpcy5lbmFibGVkKXtlPXRoaXMud2VpZ2h0O2xldCBpPXRoaXMuX3dlaWdodEludGVycG9sYW50O2lmKGkhPT1udWxsKXtsZXQgcj1pLmV2YWx1YXRlKHQpWzBdO2UqPXIsdD5pLnBhcmFtZXRlclBvc2l0aW9uc1sxXSYmKHRoaXMuc3RvcEZhZGluZygpLHI9PT0wJiYodGhpcy5lbmFibGVkPSExKSl9fXJldHVybiB0aGlzLl9lZmZlY3RpdmVXZWlnaHQ9ZSxlfV91cGRhdGVUaW1lU2NhbGUodCl7bGV0IGU9MDtpZighdGhpcy5wYXVzZWQpe2U9dGhpcy50aW1lU2NhbGU7bGV0IGk9dGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ7aSE9PW51bGwmJihlKj1pLmV2YWx1YXRlKHQpWzBdLHQ+aS5wYXJhbWV0ZXJQb3NpdGlvbnNbMV0mJih0aGlzLnN0b3BXYXJwaW5nKCksZT09PTA/dGhpcy5wYXVzZWQ9ITA6dGhpcy50aW1lU2NhbGU9ZSkpfXJldHVybiB0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGU9ZSxlfV91cGRhdGVUaW1lKHQpe2xldCBlPXRoaXMuX2NsaXAuZHVyYXRpb24saT10aGlzLmxvb3Ascj10aGlzLnRpbWUrdCxzPXRoaXMuX2xvb3BDb3VudCxvPWk9PT1KdztpZih0PT09MClyZXR1cm4gcz09PS0xP3I6byYmKHMmMSk9PT0xP2UtcjpyO2lmKGk9PT1Zdyl7cz09PS0xJiYodGhpcy5fbG9vcENvdW50PTAsdGhpcy5fc2V0RW5kaW5ncyghMCwhMCwhMSkpO3Q6e2lmKHI+PWUpcj1lO2Vsc2UgaWYocjwwKXI9MDtlbHNle3RoaXMudGltZT1yO2JyZWFrIHR9dGhpcy5jbGFtcFdoZW5GaW5pc2hlZD90aGlzLnBhdXNlZD0hMDp0aGlzLmVuYWJsZWQ9ITEsdGhpcy50aW1lPXIsdGhpcy5fbWl4ZXIuZGlzcGF0Y2hFdmVudCh7dHlwZToiZmluaXNoZWQiLGFjdGlvbjp0aGlzLGRpcmVjdGlvbjp0PDA/LTE6MX0pfX1lbHNle2lmKHM9PT0tMSYmKHQ+PTA/KHM9MCx0aGlzLl9zZXRFbmRpbmdzKCEwLHRoaXMucmVwZXRpdGlvbnM9PT0wLG8pKTp0aGlzLl9zZXRFbmRpbmdzKHRoaXMucmVwZXRpdGlvbnM9PT0wLCEwLG8pKSxyPj1lfHxyPDApe2xldCBhPU1hdGguZmxvb3Ioci9lKTtyLT1lKmEscys9TWF0aC5hYnMoYSk7bGV0IGw9dGhpcy5yZXBldGl0aW9ucy1zO2lmKGw8PTApdGhpcy5jbGFtcFdoZW5GaW5pc2hlZD90aGlzLnBhdXNlZD0hMDp0aGlzLmVuYWJsZWQ9ITEscj10PjA/ZTowLHRoaXMudGltZT1yLHRoaXMuX21peGVyLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImZpbmlzaGVkIixhY3Rpb246dGhpcyxkaXJlY3Rpb246dD4wPzE6LTF9KTtlbHNle2lmKGw9PT0xKXtsZXQgYz10PDA7dGhpcy5fc2V0RW5kaW5ncyhjLCFjLG8pfWVsc2UgdGhpcy5fc2V0RW5kaW5ncyghMSwhMSxvKTt0aGlzLl9sb29wQ291bnQ9cyx0aGlzLnRpbWU9cix0aGlzLl9taXhlci5kaXNwYXRjaEV2ZW50KHt0eXBlOiJsb29wIixhY3Rpb246dGhpcyxsb29wRGVsdGE6YX0pfX1lbHNlIHRoaXMudGltZT1yO2lmKG8mJihzJjEpPT09MSlyZXR1cm4gZS1yfXJldHVybiByfV9zZXRFbmRpbmdzKHQsZSxpKXtsZXQgcj10aGlzLl9pbnRlcnBvbGFudFNldHRpbmdzO2k/KHIuZW5kaW5nU3RhcnQ9RnIsci5lbmRpbmdFbmQ9RnIpOih0P3IuZW5kaW5nU3RhcnQ9dGhpcy56ZXJvU2xvcGVBdFN0YXJ0P0ZyOk5yOnIuZW5kaW5nU3RhcnQ9ZWwsZT9yLmVuZGluZ0VuZD10aGlzLnplcm9TbG9wZUF0RW5kP0ZyOk5yOnIuZW5kaW5nRW5kPWVsKX1fc2NoZWR1bGVGYWRpbmcodCxlLGkpe2xldCByPXRoaXMuX21peGVyLHM9ci50aW1lLG89dGhpcy5fd2VpZ2h0SW50ZXJwb2xhbnQ7bz09PW51bGwmJihvPXIuX2xlbmRDb250cm9sSW50ZXJwb2xhbnQoKSx0aGlzLl93ZWlnaHRJbnRlcnBvbGFudD1vKTtsZXQgYT1vLnBhcmFtZXRlclBvc2l0aW9ucyxsPW8uc2FtcGxlVmFsdWVzO3JldHVybiBhWzBdPXMsbFswXT1lLGFbMV09cyt0LGxbMV09aSx0aGlzfX0sV2g9Y2xhc3MgZXh0ZW5kcyBJbntjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuX3Jvb3Q9dCx0aGlzLl9pbml0TWVtb3J5TWFuYWdlcigpLHRoaXMuX2FjY3VJbmRleD0wLHRoaXMudGltZT0wLHRoaXMudGltZVNjYWxlPTF9X2JpbmRBY3Rpb24odCxlKXtsZXQgaT10Ll9sb2NhbFJvb3R8fHRoaXMuX3Jvb3Qscj10Ll9jbGlwLnRyYWNrcyxzPXIubGVuZ3RoLG89dC5fcHJvcGVydHlCaW5kaW5ncyxhPXQuX2ludGVycG9sYW50cyxsPWkudXVpZCxjPXRoaXMuX2JpbmRpbmdzQnlSb290QW5kTmFtZSx1PWNbbF07dT09PXZvaWQgMCYmKHU9e30sY1tsXT11KTtmb3IobGV0IGg9MDtoIT09czsrK2gpe2xldCBmPXJbaF0sZD1mLm5hbWUsZz11W2RdO2lmKGchPT12b2lkIDApKytnLnJlZmVyZW5jZUNvdW50LG9baF09ZztlbHNle2lmKGc9b1toXSxnIT09dm9pZCAwKXtnLl9jYWNoZUluZGV4PT09bnVsbCYmKCsrZy5yZWZlcmVuY2VDb3VudCx0aGlzLl9hZGRJbmFjdGl2ZUJpbmRpbmcoZyxsLGQpKTtjb250aW51ZX1sZXQgeD1lJiZlLl9wcm9wZXJ0eUJpbmRpbmdzW2hdLmJpbmRpbmcucGFyc2VkUGF0aDtnPW5ldyBraChOdC5jcmVhdGUoaSxkLHgpLGYuVmFsdWVUeXBlTmFtZSxmLmdldFZhbHVlU2l6ZSgpKSwrK2cucmVmZXJlbmNlQ291bnQsdGhpcy5fYWRkSW5hY3RpdmVCaW5kaW5nKGcsbCxkKSxvW2hdPWd9YVtoXS5yZXN1bHRCdWZmZXI9Zy5idWZmZXJ9fV9hY3RpdmF0ZUFjdGlvbih0KXtpZighdGhpcy5faXNBY3RpdmVBY3Rpb24odCkpe2lmKHQuX2NhY2hlSW5kZXg9PT1udWxsKXtsZXQgaT0odC5fbG9jYWxSb290fHx0aGlzLl9yb290KS51dWlkLHI9dC5fY2xpcC51dWlkLHM9dGhpcy5fYWN0aW9uc0J5Q2xpcFtyXTt0aGlzLl9iaW5kQWN0aW9uKHQscyYmcy5rbm93bkFjdGlvbnNbMF0pLHRoaXMuX2FkZEluYWN0aXZlQWN0aW9uKHQscixpKX1sZXQgZT10Ll9wcm9wZXJ0eUJpbmRpbmdzO2ZvcihsZXQgaT0wLHI9ZS5sZW5ndGg7aSE9PXI7KytpKXtsZXQgcz1lW2ldO3MudXNlQ291bnQrKz09PTAmJih0aGlzLl9sZW5kQmluZGluZyhzKSxzLnNhdmVPcmlnaW5hbFN0YXRlKCkpfXRoaXMuX2xlbmRBY3Rpb24odCl9fV9kZWFjdGl2YXRlQWN0aW9uKHQpe2lmKHRoaXMuX2lzQWN0aXZlQWN0aW9uKHQpKXtsZXQgZT10Ll9wcm9wZXJ0eUJpbmRpbmdzO2ZvcihsZXQgaT0wLHI9ZS5sZW5ndGg7aSE9PXI7KytpKXtsZXQgcz1lW2ldOy0tcy51c2VDb3VudD09PTAmJihzLnJlc3RvcmVPcmlnaW5hbFN0YXRlKCksdGhpcy5fdGFrZUJhY2tCaW5kaW5nKHMpKX10aGlzLl90YWtlQmFja0FjdGlvbih0KX19X2luaXRNZW1vcnlNYW5hZ2VyKCl7dGhpcy5fYWN0aW9ucz1bXSx0aGlzLl9uQWN0aXZlQWN0aW9ucz0wLHRoaXMuX2FjdGlvbnNCeUNsaXA9e30sdGhpcy5fYmluZGluZ3M9W10sdGhpcy5fbkFjdGl2ZUJpbmRpbmdzPTAsdGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lPXt9LHRoaXMuX2NvbnRyb2xJbnRlcnBvbGFudHM9W10sdGhpcy5fbkFjdGl2ZUNvbnRyb2xJbnRlcnBvbGFudHM9MDtsZXQgdD10aGlzO3RoaXMuc3RhdHM9e2FjdGlvbnM6e2dldCB0b3RhbCgpe3JldHVybiB0Ll9hY3Rpb25zLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVBY3Rpb25zfX0sYmluZGluZ3M6e2dldCB0b3RhbCgpe3JldHVybiB0Ll9iaW5kaW5ncy5sZW5ndGh9LGdldCBpblVzZSgpe3JldHVybiB0Ll9uQWN0aXZlQmluZGluZ3N9fSxjb250cm9sSW50ZXJwb2xhbnRzOntnZXQgdG90YWwoKXtyZXR1cm4gdC5fY29udHJvbEludGVycG9sYW50cy5sZW5ndGh9LGdldCBpblVzZSgpe3JldHVybiB0Ll9uQWN0aXZlQ29udHJvbEludGVycG9sYW50c319fX1faXNBY3RpdmVBY3Rpb24odCl7bGV0IGU9dC5fY2FjaGVJbmRleDtyZXR1cm4gZSE9PW51bGwmJmU8dGhpcy5fbkFjdGl2ZUFjdGlvbnN9X2FkZEluYWN0aXZlQWN0aW9uKHQsZSxpKXtsZXQgcj10aGlzLl9hY3Rpb25zLHM9dGhpcy5fYWN0aW9uc0J5Q2xpcCxvPXNbZV07aWYobz09PXZvaWQgMClvPXtrbm93bkFjdGlvbnM6W3RdLGFjdGlvbkJ5Um9vdDp7fX0sdC5fYnlDbGlwQ2FjaGVJbmRleD0wLHNbZV09bztlbHNle2xldCBhPW8ua25vd25BY3Rpb25zO3QuX2J5Q2xpcENhY2hlSW5kZXg9YS5sZW5ndGgsYS5wdXNoKHQpfXQuX2NhY2hlSW5kZXg9ci5sZW5ndGgsci5wdXNoKHQpLG8uYWN0aW9uQnlSb290W2ldPXR9X3JlbW92ZUluYWN0aXZlQWN0aW9uKHQpe2xldCBlPXRoaXMuX2FjdGlvbnMsaT1lW2UubGVuZ3RoLTFdLHI9dC5fY2FjaGVJbmRleDtpLl9jYWNoZUluZGV4PXIsZVtyXT1pLGUucG9wKCksdC5fY2FjaGVJbmRleD1udWxsO2xldCBzPXQuX2NsaXAudXVpZCxvPXRoaXMuX2FjdGlvbnNCeUNsaXAsYT1vW3NdLGw9YS5rbm93bkFjdGlvbnMsYz1sW2wubGVuZ3RoLTFdLHU9dC5fYnlDbGlwQ2FjaGVJbmRleDtjLl9ieUNsaXBDYWNoZUluZGV4PXUsbFt1XT1jLGwucG9wKCksdC5fYnlDbGlwQ2FjaGVJbmRleD1udWxsO2xldCBoPWEuYWN0aW9uQnlSb290LGY9KHQuX2xvY2FsUm9vdHx8dGhpcy5fcm9vdCkudXVpZDtkZWxldGUgaFtmXSxsLmxlbmd0aD09PTAmJmRlbGV0ZSBvW3NdLHRoaXMuX3JlbW92ZUluYWN0aXZlQmluZGluZ3NGb3JBY3Rpb24odCl9X3JlbW92ZUluYWN0aXZlQmluZGluZ3NGb3JBY3Rpb24odCl7bGV0IGU9dC5fcHJvcGVydHlCaW5kaW5ncztmb3IobGV0IGk9MCxyPWUubGVuZ3RoO2khPT1yOysraSl7bGV0IHM9ZVtpXTstLXMucmVmZXJlbmNlQ291bnQ9PT0wJiZ0aGlzLl9yZW1vdmVJbmFjdGl2ZUJpbmRpbmcocyl9fV9sZW5kQWN0aW9uKHQpe2xldCBlPXRoaXMuX2FjdGlvbnMsaT10Ll9jYWNoZUluZGV4LHI9dGhpcy5fbkFjdGl2ZUFjdGlvbnMrKyxzPWVbcl07dC5fY2FjaGVJbmRleD1yLGVbcl09dCxzLl9jYWNoZUluZGV4PWksZVtpXT1zfV90YWtlQmFja0FjdGlvbih0KXtsZXQgZT10aGlzLl9hY3Rpb25zLGk9dC5fY2FjaGVJbmRleCxyPS0tdGhpcy5fbkFjdGl2ZUFjdGlvbnMscz1lW3JdO3QuX2NhY2hlSW5kZXg9cixlW3JdPXQscy5fY2FjaGVJbmRleD1pLGVbaV09c31fYWRkSW5hY3RpdmVCaW5kaW5nKHQsZSxpKXtsZXQgcj10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWUscz10aGlzLl9iaW5kaW5ncyxvPXJbZV07bz09PXZvaWQgMCYmKG89e30scltlXT1vKSxvW2ldPXQsdC5fY2FjaGVJbmRleD1zLmxlbmd0aCxzLnB1c2godCl9X3JlbW92ZUluYWN0aXZlQmluZGluZyh0KXtsZXQgZT10aGlzLl9iaW5kaW5ncyxpPXQuYmluZGluZyxyPWkucm9vdE5vZGUudXVpZCxzPWkucGF0aCxvPXRoaXMuX2JpbmRpbmdzQnlSb290QW5kTmFtZSxhPW9bcl0sbD1lW2UubGVuZ3RoLTFdLGM9dC5fY2FjaGVJbmRleDtsLl9jYWNoZUluZGV4PWMsZVtjXT1sLGUucG9wKCksZGVsZXRlIGFbc10sT2JqZWN0LmtleXMoYSkubGVuZ3RoPT09MCYmZGVsZXRlIG9bcl19X2xlbmRCaW5kaW5nKHQpe2xldCBlPXRoaXMuX2JpbmRpbmdzLGk9dC5fY2FjaGVJbmRleCxyPXRoaXMuX25BY3RpdmVCaW5kaW5ncysrLHM9ZVtyXTt0Ll9jYWNoZUluZGV4PXIsZVtyXT10LHMuX2NhY2hlSW5kZXg9aSxlW2ldPXN9X3Rha2VCYWNrQmluZGluZyh0KXtsZXQgZT10aGlzLl9iaW5kaW5ncyxpPXQuX2NhY2hlSW5kZXgscj0tLXRoaXMuX25BY3RpdmVCaW5kaW5ncyxzPWVbcl07dC5fY2FjaGVJbmRleD1yLGVbcl09dCxzLl9jYWNoZUluZGV4PWksZVtpXT1zfV9sZW5kQ29udHJvbEludGVycG9sYW50KCl7bGV0IHQ9dGhpcy5fY29udHJvbEludGVycG9sYW50cyxlPXRoaXMuX25BY3RpdmVDb250cm9sSW50ZXJwb2xhbnRzKyssaT10W2VdO3JldHVybiBpPT09dm9pZCAwJiYoaT1uZXcgX2wobmV3IEZsb2F0MzJBcnJheSgyKSxuZXcgRmxvYXQzMkFycmF5KDIpLDEsdGhpcy5fY29udHJvbEludGVycG9sYW50c1Jlc3VsdEJ1ZmZlciksaS5fX2NhY2hlSW5kZXg9ZSx0W2VdPWkpLGl9X3Rha2VCYWNrQ29udHJvbEludGVycG9sYW50KHQpe2xldCBlPXRoaXMuX2NvbnRyb2xJbnRlcnBvbGFudHMsaT10Ll9fY2FjaGVJbmRleCxyPS0tdGhpcy5fbkFjdGl2ZUNvbnRyb2xJbnRlcnBvbGFudHMscz1lW3JdO3QuX19jYWNoZUluZGV4PXIsZVtyXT10LHMuX19jYWNoZUluZGV4PWksZVtpXT1zfWNsaXBBY3Rpb24odCxlLGkpe2xldCByPWV8fHRoaXMuX3Jvb3Qscz1yLnV1aWQsbz10eXBlb2YgdD09InN0cmluZyI/TWwuZmluZEJ5TmFtZShyLHQpOnQsYT1vIT09bnVsbD9vLnV1aWQ6dCxsPXRoaXMuX2FjdGlvbnNCeUNsaXBbYV0sYz1udWxsO2lmKGk9PT12b2lkIDAmJihvIT09bnVsbD9pPW8uYmxlbmRNb2RlOmk9UWgpLGwhPT12b2lkIDApe2xldCBoPWwuYWN0aW9uQnlSb290W3NdO2lmKGghPT12b2lkIDAmJmguYmxlbmRNb2RlPT09aSlyZXR1cm4gaDtjPWwua25vd25BY3Rpb25zWzBdLG89PT1udWxsJiYobz1jLl9jbGlwKX1pZihvPT09bnVsbClyZXR1cm4gbnVsbDtsZXQgdT1uZXcgR2godGhpcyxvLGUsaSk7cmV0dXJuIHRoaXMuX2JpbmRBY3Rpb24odSxjKSx0aGlzLl9hZGRJbmFjdGl2ZUFjdGlvbih1LGEscyksdX1leGlzdGluZ0FjdGlvbih0LGUpe2xldCBpPWV8fHRoaXMuX3Jvb3Qscj1pLnV1aWQscz10eXBlb2YgdD09InN0cmluZyI/TWwuZmluZEJ5TmFtZShpLHQpOnQsbz1zP3MudXVpZDp0LGE9dGhpcy5fYWN0aW9uc0J5Q2xpcFtvXTtyZXR1cm4gYSE9PXZvaWQgMCYmYS5hY3Rpb25CeVJvb3Rbcl18fG51bGx9c3RvcEFsbEFjdGlvbigpe2xldCB0PXRoaXMuX2FjdGlvbnMsZT10aGlzLl9uQWN0aXZlQWN0aW9ucztmb3IobGV0IGk9ZS0xO2k+PTA7LS1pKXRbaV0uc3RvcCgpO3JldHVybiB0aGlzfXVwZGF0ZSh0KXt0Kj10aGlzLnRpbWVTY2FsZTtsZXQgZT10aGlzLl9hY3Rpb25zLGk9dGhpcy5fbkFjdGl2ZUFjdGlvbnMscj10aGlzLnRpbWUrPXQscz1NYXRoLnNpZ24odCksbz10aGlzLl9hY2N1SW5kZXhePTE7Zm9yKGxldCBjPTA7YyE9PWk7KytjKWVbY10uX3VwZGF0ZShyLHQscyxvKTtsZXQgYT10aGlzLl9iaW5kaW5ncyxsPXRoaXMuX25BY3RpdmVCaW5kaW5ncztmb3IobGV0IGM9MDtjIT09bDsrK2MpYVtjXS5hcHBseShvKTtyZXR1cm4gdGhpc31zZXRUaW1lKHQpe3RoaXMudGltZT0wO2ZvcihsZXQgZT0wO2U8dGhpcy5fYWN0aW9ucy5sZW5ndGg7ZSsrKXRoaXMuX2FjdGlvbnNbZV0udGltZT0wO3JldHVybiB0aGlzLnVwZGF0ZSh0KX1nZXRSb290KCl7cmV0dXJuIHRoaXMuX3Jvb3R9dW5jYWNoZUNsaXAodCl7bGV0IGU9dGhpcy5fYWN0aW9ucyxpPXQudXVpZCxyPXRoaXMuX2FjdGlvbnNCeUNsaXAscz1yW2ldO2lmKHMhPT12b2lkIDApe2xldCBvPXMua25vd25BY3Rpb25zO2ZvcihsZXQgYT0wLGw9by5sZW5ndGg7YSE9PWw7KythKXtsZXQgYz1vW2FdO3RoaXMuX2RlYWN0aXZhdGVBY3Rpb24oYyk7bGV0IHU9Yy5fY2FjaGVJbmRleCxoPWVbZS5sZW5ndGgtMV07Yy5fY2FjaGVJbmRleD1udWxsLGMuX2J5Q2xpcENhY2hlSW5kZXg9bnVsbCxoLl9jYWNoZUluZGV4PXUsZVt1XT1oLGUucG9wKCksdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nc0ZvckFjdGlvbihjKX1kZWxldGUgcltpXX19dW5jYWNoZVJvb3QodCl7bGV0IGU9dC51dWlkLGk9dGhpcy5fYWN0aW9uc0J5Q2xpcDtmb3IobGV0IG8gaW4gaSl7bGV0IGE9aVtvXS5hY3Rpb25CeVJvb3QsbD1hW2VdO2whPT12b2lkIDAmJih0aGlzLl9kZWFjdGl2YXRlQWN0aW9uKGwpLHRoaXMuX3JlbW92ZUluYWN0aXZlQWN0aW9uKGwpKX1sZXQgcj10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWUscz1yW2VdO2lmKHMhPT12b2lkIDApZm9yKGxldCBvIGluIHMpe2xldCBhPXNbb107YS5yZXN0b3JlT3JpZ2luYWxTdGF0ZSgpLHRoaXMuX3JlbW92ZUluYWN0aXZlQmluZGluZyhhKX19dW5jYWNoZUFjdGlvbih0LGUpe2xldCBpPXRoaXMuZXhpc3RpbmdBY3Rpb24odCxlKTtpIT09bnVsbCYmKHRoaXMuX2RlYWN0aXZhdGVBY3Rpb24oaSksdGhpcy5fcmVtb3ZlSW5hY3RpdmVBY3Rpb24oaSkpfX07V2gucHJvdG90eXBlLl9jb250cm9sSW50ZXJwb2xhbnRzUmVzdWx0QnVmZmVyPW5ldyBGbG9hdDMyQXJyYXkoMSk7dmFyIFRvPWNsYXNze2NvbnN0cnVjdG9yKHQpe3R5cGVvZiB0PT0ic3RyaW5nIiYmKGNvbnNvbGUud2FybigiVEhSRUUuVW5pZm9ybTogVHlwZSBwYXJhbWV0ZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZC4iKSx0PWFyZ3VtZW50c1sxXSksdGhpcy52YWx1ZT10fWNsb25lKCl7cmV0dXJuIG5ldyBUbyh0aGlzLnZhbHVlLmNsb25lPT09dm9pZCAwP3RoaXMudmFsdWU6dGhpcy52YWx1ZS5jbG9uZSgpKX19LHFoPWNsYXNzIGV4dGVuZHMgR2l7Y29uc3RydWN0b3IodCxlLGk9MSl7c3VwZXIodCxlKSx0aGlzLm1lc2hQZXJBdHRyaWJ1dGU9aX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMubWVzaFBlckF0dHJpYnV0ZT10Lm1lc2hQZXJBdHRyaWJ1dGUsdGhpc31jbG9uZSh0KXtsZXQgZT1zdXBlci5jbG9uZSh0KTtyZXR1cm4gZS5tZXNoUGVyQXR0cmlidXRlPXRoaXMubWVzaFBlckF0dHJpYnV0ZSxlfXRvSlNPTih0KXtsZXQgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUuaXNJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcj0hMCxlLm1lc2hQZXJBdHRyaWJ1dGU9dGhpcy5tZXNoUGVyQXR0cmlidXRlLGV9fTtxaC5wcm90b3R5cGUuaXNJbnN0YW5jZWRJbnRlcmxlYXZlZEJ1ZmZlcj0hMDt2YXIgWGg9Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkscixzKXt0aGlzLmJ1ZmZlcj10LHRoaXMudHlwZT1lLHRoaXMuaXRlbVNpemU9aSx0aGlzLmVsZW1lbnRTaXplPXIsdGhpcy5jb3VudD1zLHRoaXMudmVyc2lvbj0wfXNldCBuZWVkc1VwZGF0ZSh0KXt0PT09ITAmJnRoaXMudmVyc2lvbisrfXNldEJ1ZmZlcih0KXtyZXR1cm4gdGhpcy5idWZmZXI9dCx0aGlzfXNldFR5cGUodCxlKXtyZXR1cm4gdGhpcy50eXBlPXQsdGhpcy5lbGVtZW50U2l6ZT1lLHRoaXN9c2V0SXRlbVNpemUodCl7cmV0dXJuIHRoaXMuaXRlbVNpemU9dCx0aGlzfXNldENvdW50KHQpe3JldHVybiB0aGlzLmNvdW50PXQsdGhpc319O1hoLnByb3RvdHlwZS5pc0dMQnVmZmVyQXR0cmlidXRlPSEwO3ZhciBvMD1uZXcgSyxZaT1jbGFzc3tjb25zdHJ1Y3Rvcih0PW5ldyBLKDEvMCwxLzApLGU9bmV3IEsoLTEvMCwtMS8wKSl7dGhpcy5taW49dCx0aGlzLm1heD1lfXNldCh0LGUpe3JldHVybiB0aGlzLm1pbi5jb3B5KHQpLHRoaXMubWF4LmNvcHkoZSksdGhpc31zZXRGcm9tUG9pbnRzKHQpe3RoaXMubWFrZUVtcHR5KCk7Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSsrKXRoaXMuZXhwYW5kQnlQb2ludCh0W2VdKTtyZXR1cm4gdGhpc31zZXRGcm9tQ2VudGVyQW5kU2l6ZSh0LGUpe2xldCBpPW8wLmNvcHkoZSkubXVsdGlwbHlTY2FsYXIoLjUpO3JldHVybiB0aGlzLm1pbi5jb3B5KHQpLnN1YihpKSx0aGlzLm1heC5jb3B5KHQpLmFkZChpKSx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCkuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLm1pbi5jb3B5KHQubWluKSx0aGlzLm1heC5jb3B5KHQubWF4KSx0aGlzfW1ha2VFbXB0eSgpe3JldHVybiB0aGlzLm1pbi54PXRoaXMubWluLnk9MS8wLHRoaXMubWF4Lng9dGhpcy5tYXgueT0tMS8wLHRoaXN9aXNFbXB0eSgpe3JldHVybiB0aGlzLm1heC54PHRoaXMubWluLnh8fHRoaXMubWF4Lnk8dGhpcy5taW4ueX1nZXRDZW50ZXIodCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpP3Quc2V0KDAsMCk6dC5hZGRWZWN0b3JzKHRoaXMubWluLHRoaXMubWF4KS5tdWx0aXBseVNjYWxhciguNSl9Z2V0U2l6ZSh0KXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/dC5zZXQoMCwwKTp0LnN1YlZlY3RvcnModGhpcy5tYXgsdGhpcy5taW4pfWV4cGFuZEJ5UG9pbnQodCl7cmV0dXJuIHRoaXMubWluLm1pbih0KSx0aGlzLm1heC5tYXgodCksdGhpc31leHBhbmRCeVZlY3Rvcih0KXtyZXR1cm4gdGhpcy5taW4uc3ViKHQpLHRoaXMubWF4LmFkZCh0KSx0aGlzfWV4cGFuZEJ5U2NhbGFyKHQpe3JldHVybiB0aGlzLm1pbi5hZGRTY2FsYXIoLXQpLHRoaXMubWF4LmFkZFNjYWxhcih0KSx0aGlzfWNvbnRhaW5zUG9pbnQodCl7cmV0dXJuISh0Lng8dGhpcy5taW4ueHx8dC54PnRoaXMubWF4Lnh8fHQueTx0aGlzLm1pbi55fHx0Lnk+dGhpcy5tYXgueSl9Y29udGFpbnNCb3godCl7cmV0dXJuIHRoaXMubWluLng8PXQubWluLngmJnQubWF4Lng8PXRoaXMubWF4LngmJnRoaXMubWluLnk8PXQubWluLnkmJnQubWF4Lnk8PXRoaXMubWF4Lnl9Z2V0UGFyYW1ldGVyKHQsZSl7cmV0dXJuIGUuc2V0KCh0LngtdGhpcy5taW4ueCkvKHRoaXMubWF4LngtdGhpcy5taW4ueCksKHQueS10aGlzLm1pbi55KS8odGhpcy5tYXgueS10aGlzLm1pbi55KSl9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4hKHQubWF4Lng8dGhpcy5taW4ueHx8dC5taW4ueD50aGlzLm1heC54fHx0Lm1heC55PHRoaXMubWluLnl8fHQubWluLnk+dGhpcy5tYXgueSl9Y2xhbXBQb2ludCh0LGUpe3JldHVybiBlLmNvcHkodCkuY2xhbXAodGhpcy5taW4sdGhpcy5tYXgpfWRpc3RhbmNlVG9Qb2ludCh0KXtyZXR1cm4gbzAuY29weSh0KS5jbGFtcCh0aGlzLm1pbix0aGlzLm1heCkuc3ViKHQpLmxlbmd0aCgpfWludGVyc2VjdCh0KXtyZXR1cm4gdGhpcy5taW4ubWF4KHQubWluKSx0aGlzLm1heC5taW4odC5tYXgpLHRoaXN9dW5pb24odCl7cmV0dXJuIHRoaXMubWluLm1pbih0Lm1pbiksdGhpcy5tYXgubWF4KHQubWF4KSx0aGlzfXRyYW5zbGF0ZSh0KXtyZXR1cm4gdGhpcy5taW4uYWRkKHQpLHRoaXMubWF4LmFkZCh0KSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5taW4uZXF1YWxzKHRoaXMubWluKSYmdC5tYXguZXF1YWxzKHRoaXMubWF4KX19O1lpLnByb3RvdHlwZS5pc0JveDI9ITA7dmFyIGEwPW5ldyBULCRhPW5ldyBULFloPWNsYXNze2NvbnN0cnVjdG9yKHQ9bmV3IFQsZT1uZXcgVCl7dGhpcy5zdGFydD10LHRoaXMuZW5kPWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMuc3RhcnQuY29weSh0KSx0aGlzLmVuZC5jb3B5KGUpLHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5zdGFydC5jb3B5KHQuc3RhcnQpLHRoaXMuZW5kLmNvcHkodC5lbmQpLHRoaXN9Z2V0Q2VudGVyKHQpe3JldHVybiB0LmFkZFZlY3RvcnModGhpcy5zdGFydCx0aGlzLmVuZCkubXVsdGlwbHlTY2FsYXIoLjUpfWRlbHRhKHQpe3JldHVybiB0LnN1YlZlY3RvcnModGhpcy5lbmQsdGhpcy5zdGFydCl9ZGlzdGFuY2VTcSgpe3JldHVybiB0aGlzLnN0YXJ0LmRpc3RhbmNlVG9TcXVhcmVkKHRoaXMuZW5kKX1kaXN0YW5jZSgpe3JldHVybiB0aGlzLnN0YXJ0LmRpc3RhbmNlVG8odGhpcy5lbmQpfWF0KHQsZSl7cmV0dXJuIHRoaXMuZGVsdGEoZSkubXVsdGlwbHlTY2FsYXIodCkuYWRkKHRoaXMuc3RhcnQpfWNsb3Nlc3RQb2ludFRvUG9pbnRQYXJhbWV0ZXIodCxlKXthMC5zdWJWZWN0b3JzKHQsdGhpcy5zdGFydCksJGEuc3ViVmVjdG9ycyh0aGlzLmVuZCx0aGlzLnN0YXJ0KTtsZXQgaT0kYS5kb3QoJGEpLHM9JGEuZG90KGEwKS9pO3JldHVybiBlJiYocz1JZShzLDAsMSkpLHN9Y2xvc2VzdFBvaW50VG9Qb2ludCh0LGUsaSl7bGV0IHI9dGhpcy5jbG9zZXN0UG9pbnRUb1BvaW50UGFyYW1ldGVyKHQsZSk7cmV0dXJuIHRoaXMuZGVsdGEoaSkubXVsdGlwbHlTY2FsYXIocikuYWRkKHRoaXMuc3RhcnQpfWFwcGx5TWF0cml4NCh0KXtyZXR1cm4gdGhpcy5zdGFydC5hcHBseU1hdHJpeDQodCksdGhpcy5lbmQuYXBwbHlNYXRyaXg0KHQpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0LnN0YXJ0LmVxdWFscyh0aGlzLnN0YXJ0KSYmdC5lbmQuZXF1YWxzKHRoaXMuZW5kKX1jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcigpLmNvcHkodGhpcyl9fTt2YXIgUW49bmV3IFQsS2E9bmV3IHd0LEZ1PW5ldyB3dCxaaD1jbGFzcyBleHRlbmRzIGdve2NvbnN0cnVjdG9yKHQpe2xldCBlPUQwKHQpLGk9bmV3IEh0LHI9W10scz1bXSxvPW5ldyBmdCgwLDAsMSksYT1uZXcgZnQoMCwxLDApO2ZvcihsZXQgYz0wO2M8ZS5sZW5ndGg7YysrKXtsZXQgdT1lW2NdO3UucGFyZW50JiZ1LnBhcmVudC5pc0JvbmUmJihyLnB1c2goMCwwLDApLHIucHVzaCgwLDAsMCkscy5wdXNoKG8ucixvLmcsby5iKSxzLnB1c2goYS5yLGEuZyxhLmIpKX1pLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBlZShyLDMpKSxpLnNldEF0dHJpYnV0ZSgiY29sb3IiLG5ldyBlZShzLDMpKTtsZXQgbD1uZXcgem4oe3ZlcnRleENvbG9yczohMCxkZXB0aFRlc3Q6ITEsZGVwdGhXcml0ZTohMSx0b25lTWFwcGVkOiExLHRyYW5zcGFyZW50OiEwfSk7c3VwZXIoaSxsKSx0aGlzLnR5cGU9IlNrZWxldG9uSGVscGVyIix0aGlzLmlzU2tlbGV0b25IZWxwZXI9ITAsdGhpcy5yb290PXQsdGhpcy5ib25lcz1lLHRoaXMubWF0cml4PXQubWF0cml4V29ybGQsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSExfXVwZGF0ZU1hdHJpeFdvcmxkKHQpe2xldCBlPXRoaXMuYm9uZXMsaT10aGlzLmdlb21ldHJ5LHI9aS5nZXRBdHRyaWJ1dGUoInBvc2l0aW9uIik7RnUuY29weSh0aGlzLnJvb3QubWF0cml4V29ybGQpLmludmVydCgpO2ZvcihsZXQgcz0wLG89MDtzPGUubGVuZ3RoO3MrKyl7bGV0IGE9ZVtzXTthLnBhcmVudCYmYS5wYXJlbnQuaXNCb25lJiYoS2EubXVsdGlwbHlNYXRyaWNlcyhGdSxhLm1hdHJpeFdvcmxkKSxRbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oS2EpLHIuc2V0WFlaKG8sUW4ueCxRbi55LFFuLnopLEthLm11bHRpcGx5TWF0cmljZXMoRnUsYS5wYXJlbnQubWF0cml4V29ybGQpLFFuLnNldEZyb21NYXRyaXhQb3NpdGlvbihLYSksci5zZXRYWVoobysxLFFuLngsUW4ueSxRbi56KSxvKz0yKX1pLmdldEF0dHJpYnV0ZSgicG9zaXRpb24iKS5uZWVkc1VwZGF0ZT0hMCxzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KX19O2Z1bmN0aW9uIEQwKG4pe2xldCB0PVtdO24mJm4uaXNCb25lJiZ0LnB1c2gobik7Zm9yKGxldCBlPTA7ZTxuLmNoaWxkcmVuLmxlbmd0aDtlKyspdC5wdXNoLmFwcGx5KHQsRDAobi5jaGlsZHJlbltlXSkpO3JldHVybiB0fXZhciBKaD1jbGFzcyBleHRlbmRzIGdve2NvbnN0cnVjdG9yKHQ9MTAsZT0xMCxpPTQ0NzM5MjQscj04OTQ3ODQ4KXtpPW5ldyBmdChpKSxyPW5ldyBmdChyKTtsZXQgcz1lLzIsbz10L2UsYT10LzIsbD1bXSxjPVtdO2ZvcihsZXQgZj0wLGQ9MCxnPS1hO2Y8PWU7ZisrLGcrPW8pe2wucHVzaCgtYSwwLGcsYSwwLGcpLGwucHVzaChnLDAsLWEsZywwLGEpO2xldCB4PWY9PT1zP2k6cjt4LnRvQXJyYXkoYyxkKSxkKz0zLHgudG9BcnJheShjLGQpLGQrPTMseC50b0FycmF5KGMsZCksZCs9Myx4LnRvQXJyYXkoYyxkKSxkKz0zfWxldCB1PW5ldyBIdDt1LnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBlZShsLDMpKSx1LnNldEF0dHJpYnV0ZSgiY29sb3IiLG5ldyBlZShjLDMpKTtsZXQgaD1uZXcgem4oe3ZlcnRleENvbG9yczohMCx0b25lTWFwcGVkOiExfSk7c3VwZXIodSxoKSx0aGlzLnR5cGU9IkdyaWRIZWxwZXIifX07dmFyIF9UPW5ldyBGbG9hdDMyQXJyYXkoMSksQ2s9bmV3IEludDMyQXJyYXkoX1QuYnVmZmVyKTtGZS5jcmVhdGU9ZnVuY3Rpb24obix0KXtyZXR1cm4gY29uc29sZS5sb2coIlRIUkVFLkN1cnZlLmNyZWF0ZSgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQiKSxuLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEZlLnByb3RvdHlwZSksbi5wcm90b3R5cGUuY29uc3RydWN0b3I9bixuLnByb3RvdHlwZS5nZXRQb2ludD10LG59O19vLnByb3RvdHlwZS5mcm9tUG9pbnRzPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlBhdGg6IC5mcm9tUG9pbnRzKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuc2V0RnJvbVBvaW50cygpLiIpLHRoaXMuc2V0RnJvbVBvaW50cyhuKX07SmgucHJvdG90eXBlLnNldENvbG9ycz1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkdyaWRIZWxwZXI6IHNldENvbG9ycygpIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIHBhc3MgdGhlbSBpbiB0aGUgY29uc3RydWN0b3IgaW5zdGVhZC4iKX07WmgucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlNrZWxldG9uSGVscGVyOiB1cGRhdGUoKSBubyBsb25nZXIgbmVlZHMgdG8gYmUgY2FsbGVkLiIpfTttbi5wcm90b3R5cGUuZXh0cmFjdFVybEJhc2U9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTG9hZGVyOiAuZXh0cmFjdFVybEJhc2UoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgVEhSRUUuTG9hZGVyVXRpbHMuZXh0cmFjdFVybEJhc2UoKSBpbnN0ZWFkLiIpLERoLmV4dHJhY3RVcmxCYXNlKG4pfTttbi5IYW5kbGVycz17YWRkOmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTG9hZGVyOiBIYW5kbGVycy5hZGQoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgTG9hZGluZ01hbmFnZXIuYWRkSGFuZGxlcigpIGluc3RlYWQuIil9LGdldDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkxvYWRlcjogSGFuZGxlcnMuZ2V0KCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIExvYWRpbmdNYW5hZ2VyLmdldEhhbmRsZXIoKSBpbnN0ZWFkLiIpfX07WWkucHJvdG90eXBlLmNlbnRlcj1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gyOiAuY2VudGVyKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0Q2VudGVyKCkuIiksdGhpcy5nZXRDZW50ZXIobil9O1lpLnByb3RvdHlwZS5lbXB0eT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDI6IC5lbXB0eSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmlzRW1wdHkoKS4iKSx0aGlzLmlzRW1wdHkoKX07WWkucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uQm94PWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDI6IC5pc0ludGVyc2VjdGlvbkJveCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNCb3goKS4iKSx0aGlzLmludGVyc2VjdHNCb3gobil9O1lpLnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDI6IC5zaXplKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0U2l6ZSgpLiIpLHRoaXMuZ2V0U2l6ZShuKX07R2UucHJvdG90eXBlLmNlbnRlcj1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gzOiAuY2VudGVyKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0Q2VudGVyKCkuIiksdGhpcy5nZXRDZW50ZXIobil9O0dlLnByb3RvdHlwZS5lbXB0eT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDM6IC5lbXB0eSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmlzRW1wdHkoKS4iKSx0aGlzLmlzRW1wdHkoKX07R2UucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uQm94PWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDM6IC5pc0ludGVyc2VjdGlvbkJveCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNCb3goKS4iKSx0aGlzLmludGVyc2VjdHNCb3gobil9O0dlLnByb3RvdHlwZS5pc0ludGVyc2VjdGlvblNwaGVyZT1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gzOiAuaXNJbnRlcnNlY3Rpb25TcGhlcmUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzU3BoZXJlKCkuIiksdGhpcy5pbnRlcnNlY3RzU3BoZXJlKG4pfTtHZS5wcm90b3R5cGUuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gzOiAuc2l6ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldFNpemUoKS4iKSx0aGlzLmdldFNpemUobil9O3NpLnByb3RvdHlwZS5lbXB0eT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlNwaGVyZTogLmVtcHR5KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaXNFbXB0eSgpLiIpLHRoaXMuaXNFbXB0eSgpfTtxci5wcm90b3R5cGUuc2V0RnJvbU1hdHJpeD1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5GcnVzdHVtOiAuc2V0RnJvbU1hdHJpeCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEZyb21Qcm9qZWN0aW9uTWF0cml4KCkuIiksdGhpcy5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeChuKX07WWgucHJvdG90eXBlLmNlbnRlcj1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5MaW5lMzogLmNlbnRlcigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldENlbnRlcigpLiIpLHRoaXMuZ2V0Q2VudGVyKG4pfTtkZS5wcm90b3R5cGUuZmxhdHRlblRvQXJyYXlPZmZzZXQ9ZnVuY3Rpb24obix0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXgzOiAuZmxhdHRlblRvQXJyYXlPZmZzZXQoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnRvQXJyYXkoKSBpbnN0ZWFkLiIpLHRoaXMudG9BcnJheShuLHQpfTtkZS5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDM6IC5tdWx0aXBseVZlY3RvcjMoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdmVjdG9yLmFwcGx5TWF0cml4MyggbWF0cml4ICkgaW5zdGVhZC4iKSxuLmFwcGx5TWF0cml4Myh0aGlzKX07ZGUucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yM0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4MzogLm11bHRpcGx5VmVjdG9yM0FycmF5KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07ZGUucHJvdG90eXBlLmFwcGx5VG9CdWZmZXJBdHRyaWJ1dGU9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4MzogLmFwcGx5VG9CdWZmZXJBdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgYXR0cmlidXRlLmFwcGx5TWF0cml4MyggbWF0cml4ICkgaW5zdGVhZC4iKSxuLmFwcGx5TWF0cml4Myh0aGlzKX07ZGUucHJvdG90eXBlLmFwcGx5VG9WZWN0b3IzQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXgzOiAuYXBwbHlUb1ZlY3RvcjNBcnJheSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9O2RlLnByb3RvdHlwZS5nZXRJbnZlcnNlPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDM6IC5nZXRJbnZlcnNlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG1hdHJpeEludi5jb3B5KCBtYXRyaXggKS5pbnZlcnQoKTsgaW5zdGVhZC4iKSx0aGlzLmNvcHkobikuaW52ZXJ0KCl9O3d0LnByb3RvdHlwZS5leHRyYWN0UG9zaXRpb249ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmV4dHJhY3RQb3NpdGlvbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmNvcHlQb3NpdGlvbigpLiIpLHRoaXMuY29weVBvc2l0aW9uKG4pfTt3dC5wcm90b3R5cGUuZmxhdHRlblRvQXJyYXlPZmZzZXQ9ZnVuY3Rpb24obix0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuZmxhdHRlblRvQXJyYXlPZmZzZXQoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnRvQXJyYXkoKSBpbnN0ZWFkLiIpLHRoaXMudG9BcnJheShuLHQpfTt3dC5wcm90b3R5cGUuZ2V0UG9zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuZ2V0UG9zaXRpb24oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVmVjdG9yMy5zZXRGcm9tTWF0cml4UG9zaXRpb24oIG1hdHJpeCApIGluc3RlYWQuIiksbmV3IFQoKS5zZXRGcm9tTWF0cml4Q29sdW1uKHRoaXMsMyl9O3d0LnByb3RvdHlwZS5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFrZVJvdGF0aW9uRnJvbVF1YXRlcm5pb24oKS4iKSx0aGlzLm1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKG4pfTt3dC5wcm90b3R5cGUubXVsdGlwbHlUb0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlUb0FycmF5KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07d3QucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yMz1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlWZWN0b3IzKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHZlY3Rvci5hcHBseU1hdHJpeDQoIG1hdHJpeCApIGluc3RlYWQuIiksbi5hcHBseU1hdHJpeDQodGhpcyl9O3d0LnByb3RvdHlwZS5tdWx0aXBseVZlY3RvcjQ9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm11bHRpcGx5VmVjdG9yNCgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB2ZWN0b3IuYXBwbHlNYXRyaXg0KCBtYXRyaXggKSBpbnN0ZWFkLiIpLG4uYXBwbHlNYXRyaXg0KHRoaXMpfTt3dC5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlWZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTt3dC5wcm90b3R5cGUucm90YXRlQXhpcz1mdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVBeGlzKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIFZlY3RvcjMudHJhbnNmb3JtRGlyZWN0aW9uKCBtYXRyaXggKSBpbnN0ZWFkLiIpLG4udHJhbnNmb3JtRGlyZWN0aW9uKHRoaXMpfTt3dC5wcm90b3R5cGUuY3Jvc3NWZWN0b3I9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmNyb3NzVmVjdG9yKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHZlY3Rvci5hcHBseU1hdHJpeDQoIG1hdHJpeCApIGluc3RlYWQuIiksbi5hcHBseU1hdHJpeDQodGhpcyl9O3d0LnByb3RvdHlwZS50cmFuc2xhdGU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAudHJhbnNsYXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07d3QucHJvdG90eXBlLnJvdGF0ZVg9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlWCgpIGhhcyBiZWVuIHJlbW92ZWQuIil9O3d0LnByb3RvdHlwZS5yb3RhdGVZPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLnJvdGF0ZVkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTt3dC5wcm90b3R5cGUucm90YXRlWj1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVaKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07d3QucHJvdG90eXBlLnJvdGF0ZUJ5QXhpcz1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVCeUF4aXMoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTt3dC5wcm90b3R5cGUuYXBwbHlUb0J1ZmZlckF0dHJpYnV0ZT1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuYXBwbHlUb0J1ZmZlckF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBhdHRyaWJ1dGUuYXBwbHlNYXRyaXg0KCBtYXRyaXggKSBpbnN0ZWFkLiIpLG4uYXBwbHlNYXRyaXg0KHRoaXMpfTt3dC5wcm90b3R5cGUuYXBwbHlUb1ZlY3RvcjNBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5hcHBseVRvVmVjdG9yM0FycmF5KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07d3QucHJvdG90eXBlLm1ha2VGcnVzdHVtPWZ1bmN0aW9uKG4sdCxlLGkscixzKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubWFrZUZydXN0dW0oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLm1ha2VQZXJzcGVjdGl2ZSggbGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tLCBuZWFyLCBmYXIgKSBpbnN0ZWFkLiIpLHRoaXMubWFrZVBlcnNwZWN0aXZlKG4sdCxpLGUscixzKX07d3QucHJvdG90eXBlLmdldEludmVyc2U9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmdldEludmVyc2UoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbWF0cml4SW52LmNvcHkoIG1hdHJpeCApLmludmVydCgpOyBpbnN0ZWFkLiIpLHRoaXMuY29weShuKS5pbnZlcnQoKX07amUucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uTGluZT1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5QbGFuZTogLmlzSW50ZXJzZWN0aW9uTGluZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNMaW5lKCkuIiksdGhpcy5pbnRlcnNlY3RzTGluZShuKX07RWUucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yMz1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5RdWF0ZXJuaW9uOiAubXVsdGlwbHlWZWN0b3IzKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIGlzIG5vdyB2ZWN0b3IuYXBwbHlRdWF0ZXJuaW9uKCBxdWF0ZXJuaW9uICkgaW5zdGVhZC4iKSxuLmFwcGx5UXVhdGVybmlvbih0aGlzKX07RWUucHJvdG90eXBlLmludmVyc2U9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5RdWF0ZXJuaW9uOiAuaW52ZXJzZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gaW52ZXJ0KCkuIiksdGhpcy5pbnZlcnQoKX07b2kucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uQm94PWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlJheTogLmlzSW50ZXJzZWN0aW9uQm94KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c0JveCgpLiIpLHRoaXMuaW50ZXJzZWN0c0JveChuKX07b2kucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uUGxhbmU9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUmF5OiAuaXNJbnRlcnNlY3Rpb25QbGFuZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNQbGFuZSgpLiIpLHRoaXMuaW50ZXJzZWN0c1BsYW5lKG4pfTtvaS5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25TcGhlcmU9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUmF5OiAuaXNJbnRlcnNlY3Rpb25TcGhlcmUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzU3BoZXJlKCkuIiksdGhpcy5pbnRlcnNlY3RzU3BoZXJlKG4pfTtyZS5wcm90b3R5cGUuYXJlYT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAuYXJlYSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldEFyZWEoKS4iKSx0aGlzLmdldEFyZWEoKX07cmUucHJvdG90eXBlLmJhcnljb29yZEZyb21Qb2ludD1mdW5jdGlvbihuLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAuYmFyeWNvb3JkRnJvbVBvaW50KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0QmFyeWNvb3JkKCkuIiksdGhpcy5nZXRCYXJ5Y29vcmQobix0KX07cmUucHJvdG90eXBlLm1pZHBvaW50PWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAubWlkcG9pbnQoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRNaWRwb2ludCgpLiIpLHRoaXMuZ2V0TWlkcG9pbnQobil9O3JlLnByb3RvdHlwZW5vcm1hbD1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLm5vcm1hbCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE5vcm1hbCgpLiIpLHRoaXMuZ2V0Tm9ybWFsKG4pfTtyZS5wcm90b3R5cGUucGxhbmU9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVHJpYW5nbGU6IC5wbGFuZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldFBsYW5lKCkuIiksdGhpcy5nZXRQbGFuZShuKX07cmUuYmFyeWNvb3JkRnJvbVBvaW50PWZ1bmN0aW9uKG4sdCxlLGkscil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVHJpYW5nbGU6IC5iYXJ5Y29vcmRGcm9tUG9pbnQoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRCYXJ5Y29vcmQoKS4iKSxyZS5nZXRCYXJ5Y29vcmQobix0LGUsaSxyKX07cmUubm9ybWFsPWZ1bmN0aW9uKG4sdCxlLGkpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAubm9ybWFsKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0Tm9ybWFsKCkuIikscmUuZ2V0Tm9ybWFsKG4sdCxlLGkpfTtVbi5wcm90b3R5cGUuZXh0cmFjdEFsbFBvaW50cz1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5TaGFwZTogLmV4dHJhY3RBbGxQb2ludHMoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLmV4dHJhY3RQb2ludHMoKSBpbnN0ZWFkLiIpLHRoaXMuZXh0cmFjdFBvaW50cyhuKX07VW4ucHJvdG90eXBlLmV4dHJ1ZGU9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuU2hhcGU6IC5leHRydWRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIEV4dHJ1ZGVHZW9tZXRyeSgpIGluc3RlYWQuIiksbmV3IGNpKHRoaXMsbil9O1VuLnByb3RvdHlwZS5tYWtlR2VvbWV0cnk9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuU2hhcGU6IC5tYWtlR2VvbWV0cnkoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgU2hhcGVHZW9tZXRyeSgpIGluc3RlYWQuIiksbmV3IHFpKHRoaXMsbil9O0sucHJvdG90eXBlLmZyb21BdHRyaWJ1dGU9ZnVuY3Rpb24obix0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5mcm9tQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMuZnJvbUJ1ZmZlckF0dHJpYnV0ZShuLHQsZSl9O0sucHJvdG90eXBlLmRpc3RhbmNlVG9NYW5oYXR0YW49ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogLmRpc3RhbmNlVG9NYW5oYXR0YW4oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYW5oYXR0YW5EaXN0YW5jZVRvKCkuIiksdGhpcy5tYW5oYXR0YW5EaXN0YW5jZVRvKG4pfTtLLnByb3RvdHlwZS5sZW5ndGhNYW5oYXR0YW49ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IyOiAubGVuZ3RoTWFuaGF0dGFuKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFuaGF0dGFuTGVuZ3RoKCkuIiksdGhpcy5tYW5oYXR0YW5MZW5ndGgoKX07VC5wcm90b3R5cGUuc2V0RXVsZXJGcm9tUm90YXRpb25NYXRyaXg9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5WZWN0b3IzOiAuc2V0RXVsZXJGcm9tUm90YXRpb25NYXRyaXgoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgRXVsZXIuc2V0RnJvbVJvdGF0aW9uTWF0cml4KCkgaW5zdGVhZC4iKX07VC5wcm90b3R5cGUuc2V0RXVsZXJGcm9tUXVhdGVybmlvbj1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlZlY3RvcjM6IC5zZXRFdWxlckZyb21RdWF0ZXJuaW9uKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIEV1bGVyLnNldEZyb21RdWF0ZXJuaW9uKCkgaW5zdGVhZC4iKX07VC5wcm90b3R5cGUuZ2V0UG9zaXRpb25Gcm9tTWF0cml4PWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5nZXRQb3NpdGlvbkZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tTWF0cml4UG9zaXRpb24oKS4iKSx0aGlzLnNldEZyb21NYXRyaXhQb3NpdGlvbihuKX07VC5wcm90b3R5cGUuZ2V0U2NhbGVGcm9tTWF0cml4PWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5nZXRTY2FsZUZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tTWF0cml4U2NhbGUoKS4iKSx0aGlzLnNldEZyb21NYXRyaXhTY2FsZShuKX07VC5wcm90b3R5cGUuZ2V0Q29sdW1uRnJvbU1hdHJpeD1mdW5jdGlvbihuLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5nZXRDb2x1bW5Gcm9tTWF0cml4KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuc2V0RnJvbU1hdHJpeENvbHVtbigpLiIpLHRoaXMuc2V0RnJvbU1hdHJpeENvbHVtbih0LG4pfTtULnByb3RvdHlwZS5hcHBseVByb2plY3Rpb249ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmFwcGx5UHJvamVjdGlvbigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSAuYXBwbHlNYXRyaXg0KCBtICkgaW5zdGVhZC4iKSx0aGlzLmFwcGx5TWF0cml4NChuKX07VC5wcm90b3R5cGUuZnJvbUF0dHJpYnV0ZT1mdW5jdGlvbihuLHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmZyb21BdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy5mcm9tQnVmZmVyQXR0cmlidXRlKG4sdCxlKX07VC5wcm90b3R5cGUuZGlzdGFuY2VUb01hbmhhdHRhbj1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuZGlzdGFuY2VUb01hbmhhdHRhbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1hbmhhdHRhbkRpc3RhbmNlVG8oKS4iKSx0aGlzLm1hbmhhdHRhbkRpc3RhbmNlVG8obil9O1QucHJvdG90eXBlLmxlbmd0aE1hbmhhdHRhbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5sZW5ndGhNYW5oYXR0YW4oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYW5oYXR0YW5MZW5ndGgoKS4iKSx0aGlzLm1hbmhhdHRhbkxlbmd0aCgpfTtXdC5wcm90b3R5cGUuZnJvbUF0dHJpYnV0ZT1mdW5jdGlvbihuLHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yNDogLmZyb21BdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy5mcm9tQnVmZmVyQXR0cmlidXRlKG4sdCxlKX07V3QucHJvdG90eXBlLmxlbmd0aE1hbmhhdHRhbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IC5sZW5ndGhNYW5oYXR0YW4oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYW5oYXR0YW5MZW5ndGgoKS4iKSx0aGlzLm1hbmhhdHRhbkxlbmd0aCgpfTtrdC5wcm90b3R5cGUuZ2V0Q2hpbGRCeU5hbWU9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5nZXRDaGlsZEJ5TmFtZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE9iamVjdEJ5TmFtZSgpLiIpLHRoaXMuZ2V0T2JqZWN0QnlOYW1lKG4pfTtrdC5wcm90b3R5cGUucmVuZGVyRGVwdGg9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAucmVuZGVyRGVwdGggaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5yZW5kZXJPcmRlciwgaW5zdGVhZC4iKX07a3QucHJvdG90eXBlLnRyYW5zbGF0ZT1mdW5jdGlvbihuLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAudHJhbnNsYXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC50cmFuc2xhdGVPbkF4aXMoIGF4aXMsIGRpc3RhbmNlICkgaW5zdGVhZC4iKSx0aGlzLnRyYW5zbGF0ZU9uQXhpcyh0LG4pfTtrdC5wcm90b3R5cGUuZ2V0V29ybGRSb3RhdGlvbj1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk9iamVjdDNEOiAuZ2V0V29ybGRSb3RhdGlvbigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBUSFJFRS5PYmplY3QzRC5nZXRXb3JsZFF1YXRlcm5pb24oIHRhcmdldCApIGluc3RlYWQuIil9O2t0LnByb3RvdHlwZS5hcHBseU1hdHJpeD1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLmFwcGx5TWF0cml4KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuYXBwbHlNYXRyaXg0KCkuIiksdGhpcy5hcHBseU1hdHJpeDQobil9O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGt0LnByb3RvdHlwZSx7ZXVsZXJPcmRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5ldWxlck9yZGVyIGlzIG5vdyAucm90YXRpb24ub3JkZXIuIiksdGhpcy5yb3RhdGlvbi5vcmRlcn0sc2V0OmZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5ldWxlck9yZGVyIGlzIG5vdyAucm90YXRpb24ub3JkZXIuIiksdGhpcy5yb3RhdGlvbi5vcmRlcj1ufX0sdXNlUXVhdGVybmlvbjp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLnVzZVF1YXRlcm5pb24gaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIGxpYnJhcnkgbm93IHVzZXMgcXVhdGVybmlvbnMgYnkgZGVmYXVsdC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLnVzZVF1YXRlcm5pb24gaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIGxpYnJhcnkgbm93IHVzZXMgcXVhdGVybmlvbnMgYnkgZGVmYXVsdC4iKX19fSk7b2UucHJvdG90eXBlLnNldERyYXdNb2RlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWVzaDogLnNldERyYXdNb2RlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIHJlbmRlcmVyIG5vdyBhbHdheXMgYXNzdW1lcyBUSFJFRS5UcmlhbmdsZXNEcmF3TW9kZS4gVHJhbnNmb3JtIHlvdXIgZ2VvbWV0cnkgdmlhIEJ1ZmZlckdlb21ldHJ5VXRpbHMudG9UcmlhbmdsZXNEcmF3TW9kZSgpIGlmIG5lY2Vzc2FyeS4iKX07T2JqZWN0LmRlZmluZVByb3BlcnRpZXMob2UucHJvdG90eXBlLHtkcmF3TW9kZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIlRIUkVFLk1lc2g6IC5kcmF3TW9kZSBoYXMgYmVlbiByZW1vdmVkLiBUaGUgcmVuZGVyZXIgbm93IGFsd2F5cyBhc3N1bWVzIFRIUkVFLlRyaWFuZ2xlc0RyYXdNb2RlLiIpLCR3fSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NZXNoOiAuZHJhd01vZGUgaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIHJlbmRlcmVyIG5vdyBhbHdheXMgYXNzdW1lcyBUSFJFRS5UcmlhbmdsZXNEcmF3TW9kZS4gVHJhbnNmb3JtIHlvdXIgZ2VvbWV0cnkgdmlhIEJ1ZmZlckdlb21ldHJ5VXRpbHMudG9UcmlhbmdsZXNEcmF3TW9kZSgpIGlmIG5lY2Vzc2FyeS4iKX19fSk7ZGwucHJvdG90eXBlLmluaXRCb25lcz1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlNraW5uZWRNZXNoOiBpbml0Qm9uZXMoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTtTZS5wcm90b3R5cGUuc2V0TGVucz1mdW5jdGlvbihuLHQpe2NvbnNvbGUud2FybigiVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEuc2V0TGVucyBpcyBkZXByZWNhdGVkLiBVc2UgLnNldEZvY2FsTGVuZ3RoIGFuZCAuZmlsbUdhdWdlIGZvciBhIHBob3RvZ3JhcGhpYyBzZXR1cC4iKSx0IT09dm9pZCAwJiYodGhpcy5maWxtR2F1Z2U9dCksdGhpcy5zZXRGb2NhbExlbmd0aChuKX07T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoWWUucHJvdG90eXBlLHtvbmx5U2hhZG93OntzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAub25seVNoYWRvdyBoYXMgYmVlbiByZW1vdmVkLiIpfX0sc2hhZG93Q2FtZXJhRm92OntzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYUZvdiBpcyBub3cgLnNoYWRvdy5jYW1lcmEuZm92LiIpLHRoaXMuc2hhZG93LmNhbWVyYS5mb3Y9bn19LHNoYWRvd0NhbWVyYUxlZnQ6e3NldDpmdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhTGVmdCBpcyBub3cgLnNoYWRvdy5jYW1lcmEubGVmdC4iKSx0aGlzLnNoYWRvdy5jYW1lcmEubGVmdD1ufX0sc2hhZG93Q2FtZXJhUmlnaHQ6e3NldDpmdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhUmlnaHQgaXMgbm93IC5zaGFkb3cuY2FtZXJhLnJpZ2h0LiIpLHRoaXMuc2hhZG93LmNhbWVyYS5yaWdodD1ufX0sc2hhZG93Q2FtZXJhVG9wOntzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYVRvcCBpcyBub3cgLnNoYWRvdy5jYW1lcmEudG9wLiIpLHRoaXMuc2hhZG93LmNhbWVyYS50b3A9bn19LHNoYWRvd0NhbWVyYUJvdHRvbTp7c2V0OmZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFCb3R0b20gaXMgbm93IC5zaGFkb3cuY2FtZXJhLmJvdHRvbS4iKSx0aGlzLnNoYWRvdy5jYW1lcmEuYm90dG9tPW59fSxzaGFkb3dDYW1lcmFOZWFyOntzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYU5lYXIgaXMgbm93IC5zaGFkb3cuY2FtZXJhLm5lYXIuIiksdGhpcy5zaGFkb3cuY2FtZXJhLm5lYXI9bn19LHNoYWRvd0NhbWVyYUZhcjp7c2V0OmZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFGYXIgaXMgbm93IC5zaGFkb3cuY2FtZXJhLmZhci4iKSx0aGlzLnNoYWRvdy5jYW1lcmEuZmFyPW59fSxzaGFkb3dDYW1lcmFWaXNpYmxlOntzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhVmlzaWJsZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbmV3IFRIUkVFLkNhbWVyYUhlbHBlciggbGlnaHQuc2hhZG93LmNhbWVyYSApIGluc3RlYWQuIil9fSxzaGFkb3dCaWFzOntzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0JpYXMgaXMgbm93IC5zaGFkb3cuYmlhcy4iKSx0aGlzLnNoYWRvdy5iaWFzPW59fSxzaGFkb3dEYXJrbmVzczp7c2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0RhcmtuZXNzIGhhcyBiZWVuIHJlbW92ZWQuIil9fSxzaGFkb3dNYXBXaWR0aDp7c2V0OmZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dNYXBXaWR0aCBpcyBub3cgLnNoYWRvdy5tYXBTaXplLndpZHRoLiIpLHRoaXMuc2hhZG93Lm1hcFNpemUud2lkdGg9bn19LHNoYWRvd01hcEhlaWdodDp7c2V0OmZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dNYXBIZWlnaHQgaXMgbm93IC5zaGFkb3cubWFwU2l6ZS5oZWlnaHQuIiksdGhpcy5zaGFkb3cubWFwU2l6ZS5oZWlnaHQ9bn19fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoUXQucHJvdG90eXBlLHtsZW5ndGg6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogLmxlbmd0aCBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLmNvdW50IGluc3RlYWQuIiksdGhpcy5hcnJheS5sZW5ndGh9fSxkeW5hbWljOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IC5keW5hbWljIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAudXNhZ2UgaW5zdGVhZC4iKSx0aGlzLnVzYWdlPT09bmx9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuZHluYW1pYyBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnVzYWdlIGluc3RlYWQuIiksdGhpcy5zZXRVc2FnZShubCl9fX0pO1F0LnByb3RvdHlwZS5zZXREeW5hbWljPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogLnNldER5bmFtaWMoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnNldFVzYWdlKCkgaW5zdGVhZC4iKSx0aGlzLnNldFVzYWdlKG49PT0hMD9ubDppbyksdGhpc307UXQucHJvdG90eXBlLmNvcHlJbmRpY2VzQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IC5jb3B5SW5kaWNlc0FycmF5KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sUXQucHJvdG90eXBlLnNldEFycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuc2V0QXJyYXkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIEJ1ZmZlckdlb21ldHJ5IC5zZXRBdHRyaWJ1dGUgdG8gcmVwbGFjZS9yZXNpemUgYXR0cmlidXRlIGJ1ZmZlcnMiKX07SHQucHJvdG90eXBlLmFkZEluZGV4PWZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hZGRJbmRleCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnNldEluZGV4KCkuIiksdGhpcy5zZXRJbmRleChuKX07SHQucHJvdG90eXBlLmFkZEF0dHJpYnV0ZT1mdW5jdGlvbihuLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuc2V0QXR0cmlidXRlKCkuIiksISh0JiZ0LmlzQnVmZmVyQXR0cmlidXRlKSYmISh0JiZ0LmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUpPyhjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkQXR0cmlidXRlKCkgbm93IGV4cGVjdHMgKCBuYW1lLCBhdHRyaWJ1dGUgKS4iKSx0aGlzLnNldEF0dHJpYnV0ZShuLG5ldyBRdChhcmd1bWVudHNbMV0sYXJndW1lbnRzWzJdKSkpOm49PT0iaW5kZXgiPyhjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5LmFkZEF0dHJpYnV0ZTogVXNlIC5zZXRJbmRleCgpIGZvciBpbmRleCBhdHRyaWJ1dGUuIiksdGhpcy5zZXRJbmRleCh0KSx0aGlzKTp0aGlzLnNldEF0dHJpYnV0ZShuLHQpfTtIdC5wcm90b3R5cGUuYWRkRHJhd0NhbGw9ZnVuY3Rpb24obix0LGUpe2UhPT12b2lkIDAmJmNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hZGREcmF3Q2FsbCgpIG5vIGxvbmdlciBzdXBwb3J0cyBpbmRleE9mZnNldC4iKSxjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkRHJhd0NhbGwoKSBpcyBub3cgLmFkZEdyb3VwKCkuIiksdGhpcy5hZGRHcm91cChuLHQpfTtIdC5wcm90b3R5cGUuY2xlYXJEcmF3Q2FsbHM9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuY2xlYXJEcmF3Q2FsbHMoKSBpcyBub3cgLmNsZWFyR3JvdXBzKCkuIiksdGhpcy5jbGVhckdyb3VwcygpfTtIdC5wcm90b3R5cGUuY29tcHV0ZU9mZnNldHM9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuY29tcHV0ZU9mZnNldHMoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTtIdC5wcm90b3R5cGUucmVtb3ZlQXR0cmlidXRlPWZ1bmN0aW9uKG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAucmVtb3ZlQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZGVsZXRlQXR0cmlidXRlKCkuIiksdGhpcy5kZWxldGVBdHRyaWJ1dGUobil9O0h0LnByb3RvdHlwZS5hcHBseU1hdHJpeD1mdW5jdGlvbihuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmFwcGx5TWF0cml4KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuYXBwbHlNYXRyaXg0KCkuIiksdGhpcy5hcHBseU1hdHJpeDQobil9O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEh0LnByb3RvdHlwZSx7ZHJhd2NhbGxzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5kcmF3Y2FsbHMgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ3JvdXBzLiIpLHRoaXMuZ3JvdXBzfX0sb2Zmc2V0czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5vZmZzZXRzIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdyb3Vwcy4iKSx0aGlzLmdyb3Vwc319fSk7R2kucHJvdG90eXBlLnNldER5bmFtaWM9ZnVuY3Rpb24obil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuSW50ZXJsZWF2ZWRCdWZmZXI6IC5zZXREeW5hbWljKCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC5zZXRVc2FnZSgpIGluc3RlYWQuIiksdGhpcy5zZXRVc2FnZShuPT09ITA/bmw6aW8pLHRoaXN9O0dpLnByb3RvdHlwZS5zZXRBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkludGVybGVhdmVkQnVmZmVyOiAuc2V0QXJyYXkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIEJ1ZmZlckdlb21ldHJ5IC5zZXRBdHRyaWJ1dGUgdG8gcmVwbGFjZS9yZXNpemUgYXR0cmlidXRlIGJ1ZmZlcnMiKX07Y2kucHJvdG90eXBlLmdldEFycmF5cz1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkV4dHJ1ZGVHZW9tZXRyeTogLmdldEFycmF5cygpIGhhcyBiZWVuIHJlbW92ZWQuIil9O2NpLnByb3RvdHlwZS5hZGRTaGFwZUxpc3Q9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5FeHRydWRlR2VvbWV0cnk6IC5hZGRTaGFwZUxpc3QoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTtjaS5wcm90b3R5cGUuYWRkU2hhcGU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5FeHRydWRlR2VvbWV0cnk6IC5hZGRTaGFwZSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9O1lyLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuU2NlbmU6IC5kaXNwb3NlKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07VG8ucHJvdG90eXBlLm9uVXBkYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVW5pZm9ybTogLm9uVXBkYXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG9iamVjdC5vbkJlZm9yZVJlbmRlcigpIGluc3RlYWQuIiksdGhpc307T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoeGUucHJvdG90eXBlLHt3cmFwQXJvdW5kOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcEFyb3VuZCBoYXMgYmVlbiByZW1vdmVkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcEFyb3VuZCBoYXMgYmVlbiByZW1vdmVkLiIpfX0sb3ZlcmRyYXc6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuTWF0ZXJpYWw6IC5vdmVyZHJhdyBoYXMgYmVlbiByZW1vdmVkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAub3ZlcmRyYXcgaGFzIGJlZW4gcmVtb3ZlZC4iKX19LHdyYXBSR0I6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcFJHQiBoYXMgYmVlbiByZW1vdmVkLiIpLG5ldyBmdH19LHNoYWRpbmc6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zaGFkaW5nIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB0aGUgYm9vbGVhbiAuZmxhdFNoYWRpbmcgaW5zdGVhZC4iKX0sc2V0OmZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnNoYWRpbmcgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHRoZSBib29sZWFuIC5mbGF0U2hhZGluZyBpbnN0ZWFkLiIpLHRoaXMuZmxhdFNoYWRpbmc9bj09PWMwfX0sc3RlbmNpbE1hc2s6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zdGVuY2lsTWFzayBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLnN0ZW5jaWxGdW5jTWFzayBpbnN0ZWFkLiIpLHRoaXMuc3RlbmNpbEZ1bmNNYXNrfSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc3RlbmNpbE1hc2sgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5zdGVuY2lsRnVuY01hc2sgaW5zdGVhZC4iKSx0aGlzLnN0ZW5jaWxGdW5jTWFzaz1ufX0sdmVydGV4VGFuZ2VudHM6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnZlcnRleFRhbmdlbnRzIGhhcyBiZWVuIHJlbW92ZWQuIil9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnZlcnRleFRhbmdlbnRzIGhhcyBiZWVuIHJlbW92ZWQuIil9fX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEZuLnByb3RvdHlwZSx7ZGVyaXZhdGl2ZXM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlNoYWRlck1hdGVyaWFsOiAuZGVyaXZhdGl2ZXMgaGFzIGJlZW4gbW92ZWQgdG8gLmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMuIiksdGhpcy5leHRlbnNpb25zLmRlcml2YXRpdmVzfSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS4gU2hhZGVyTWF0ZXJpYWw6IC5kZXJpdmF0aXZlcyBoYXMgYmVlbiBtb3ZlZCB0byAuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlcy4iKSx0aGlzLmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXM9bn19fSk7VnQucHJvdG90eXBlLmNsZWFyVGFyZ2V0PWZ1bmN0aW9uKG4sdCxlLGkpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmNsZWFyVGFyZ2V0KCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC5zZXRSZW5kZXJUYXJnZXQoKSBhbmQgLmNsZWFyKCkgaW5zdGVhZC4iKSx0aGlzLnNldFJlbmRlclRhcmdldChuKSx0aGlzLmNsZWFyKHQsZSxpKX07VnQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuYW5pbWF0ZSgpIGlzIG5vdyAuc2V0QW5pbWF0aW9uTG9vcCgpLiIpLHRoaXMuc2V0QW5pbWF0aW9uTG9vcChuKX07VnQucHJvdG90eXBlLmdldEN1cnJlbnRSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2V0Q3VycmVudFJlbmRlclRhcmdldCgpIGlzIG5vdyAuZ2V0UmVuZGVyVGFyZ2V0KCkuIiksdGhpcy5nZXRSZW5kZXJUYXJnZXQoKX07VnQucHJvdG90eXBlLmdldE1heEFuaXNvdHJvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2V0TWF4QW5pc290cm9weSgpIGlzIG5vdyAuY2FwYWJpbGl0aWVzLmdldE1heEFuaXNvdHJvcHkoKS4iKSx0aGlzLmNhcGFiaWxpdGllcy5nZXRNYXhBbmlzb3Ryb3B5KCl9O1Z0LnByb3RvdHlwZS5nZXRQcmVjaXNpb249ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2V0UHJlY2lzaW9uKCkgaXMgbm93IC5jYXBhYmlsaXRpZXMucHJlY2lzaW9uLiIpLHRoaXMuY2FwYWJpbGl0aWVzLnByZWNpc2lvbn07VnQucHJvdG90eXBlLnJlc2V0R0xTdGF0ZT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5yZXNldEdMU3RhdGUoKSBpcyBub3cgLnN0YXRlLnJlc2V0KCkuIiksdGhpcy5zdGF0ZS5yZXNldCgpfTtWdC5wcm90b3R5cGUuc3VwcG9ydHNGbG9hdFRleHR1cmVzPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzRmxvYXRUZXh0dXJlcygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdPRVNfdGV4dHVyZV9mbG9hdCcgKS4iKSx0aGlzLmV4dGVuc2lvbnMuZ2V0KCJPRVNfdGV4dHVyZV9mbG9hdCIpfTtWdC5wcm90b3R5cGUuc3VwcG9ydHNIYWxmRmxvYXRUZXh0dXJlcz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0hhbGZGbG9hdFRleHR1cmVzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ09FU190ZXh0dXJlX2hhbGZfZmxvYXQnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpfTtWdC5wcm90b3R5cGUuc3VwcG9ydHNTdGFuZGFyZERlcml2YXRpdmVzPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzU3RhbmRhcmREZXJpdmF0aXZlcygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIil9O1Z0LnByb3RvdHlwZS5zdXBwb3J0c0NvbXByZXNzZWRUZXh0dXJlUzNUQz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0NvbXByZXNzZWRUZXh0dXJlUzNUQygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YycgKS4iKSx0aGlzLmV4dGVuc2lvbnMuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpfTtWdC5wcm90b3R5cGUuc3VwcG9ydHNDb21wcmVzc2VkVGV4dHVyZVBWUlRDPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVQVlJUQygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIil9O1Z0LnByb3RvdHlwZS5zdXBwb3J0c0JsZW5kTWluTWF4PWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzQmxlbmRNaW5NYXgoKSBpcyBub3cgLmV4dGVuc2lvbnMuZ2V0KCAnRVhUX2JsZW5kX21pbm1heCcgKS4iKSx0aGlzLmV4dGVuc2lvbnMuZ2V0KCJFWFRfYmxlbmRfbWlubWF4Iil9O1Z0LnByb3RvdHlwZS5zdXBwb3J0c1ZlcnRleFRleHR1cmVzPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzVmVydGV4VGV4dHVyZXMoKSBpcyBub3cgLmNhcGFiaWxpdGllcy52ZXJ0ZXhUZXh0dXJlcy4iKSx0aGlzLmNhcGFiaWxpdGllcy52ZXJ0ZXhUZXh0dXJlc307VnQucHJvdG90eXBlLnN1cHBvcnRzSW5zdGFuY2VkQXJyYXlzPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzSW5zdGFuY2VkQXJyYXlzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ0FOR0xFX2luc3RhbmNlZF9hcnJheXMnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpfTtWdC5wcm90b3R5cGUuZW5hYmxlU2Npc3NvclRlc3Q9ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZW5hYmxlU2Npc3NvclRlc3QoKSBpcyBub3cgLnNldFNjaXNzb3JUZXN0KCkuIiksdGhpcy5zZXRTY2lzc29yVGVzdChuKX07VnQucHJvdG90eXBlLmluaXRNYXRlcmlhbD1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmluaXRNYXRlcmlhbCgpIGhhcyBiZWVuIHJlbW92ZWQuIil9O1Z0LnByb3RvdHlwZS5hZGRQcmVQbHVnaW49ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hZGRQcmVQbHVnaW4oKSBoYXMgYmVlbiByZW1vdmVkLiIpfTtWdC5wcm90b3R5cGUuYWRkUG9zdFBsdWdpbj1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmFkZFBvc3RQbHVnaW4oKSBoYXMgYmVlbiByZW1vdmVkLiIpfTtWdC5wcm90b3R5cGUudXBkYXRlU2hhZG93TWFwPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudXBkYXRlU2hhZG93TWFwKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07VnQucHJvdG90eXBlLnNldEZhY2VDdWxsaW5nPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0RmFjZUN1bGxpbmcoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTtWdC5wcm90b3R5cGUuYWxsb2NUZXh0dXJlVW5pdD1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmFsbG9jVGV4dHVyZVVuaXQoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTtWdC5wcm90b3R5cGUuc2V0VGV4dHVyZT1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNldFRleHR1cmUoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTtWdC5wcm90b3R5cGUuc2V0VGV4dHVyZTJEPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0VGV4dHVyZTJEKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX07VnQucHJvdG90eXBlLnNldFRleHR1cmVDdWJlPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0VGV4dHVyZUN1YmUoKSBoYXMgYmVlbiByZW1vdmVkLiIpfTtWdC5wcm90b3R5cGUuZ2V0QWN0aXZlTWlwTWFwTGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2V0QWN0aXZlTWlwTWFwTGV2ZWwoKSBpcyBub3cgLmdldEFjdGl2ZU1pcG1hcExldmVsKCkuIiksdGhpcy5nZXRBY3RpdmVNaXBtYXBMZXZlbCgpfTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhWdC5wcm90b3R5cGUse3NoYWRvd01hcEVuYWJsZWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYWRvd01hcC5lbmFibGVkfSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwRW5hYmxlZCBpcyBub3cgLnNoYWRvd01hcC5lbmFibGVkLiIpLHRoaXMuc2hhZG93TWFwLmVuYWJsZWQ9bn19LHNoYWRvd01hcFR5cGU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYWRvd01hcC50eXBlfSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwVHlwZSBpcyBub3cgLnNoYWRvd01hcC50eXBlLiIpLHRoaXMuc2hhZG93TWFwLnR5cGU9bn19LHNoYWRvd01hcEN1bGxGYWNlOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXBDdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXBDdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfX0sY29udGV4dDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmNvbnRleHQgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5nZXRDb250ZXh0KCkgaW5zdGVhZC4iKSx0aGlzLmdldENvbnRleHQoKX19LHZyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudnIgaGFzIGJlZW4gcmVuYW1lZCB0byAueHIiKSx0aGlzLnhyfX0sZ2FtbWFJbnB1dDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdhbW1hSW5wdXQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IHRoZSBlbmNvZGluZyBmb3IgdGV4dHVyZXMgdmlhIFRleHR1cmUuZW5jb2RpbmcgaW5zdGVhZC4iKSwhMX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFJbnB1dCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgdGhlIGVuY29kaW5nIGZvciB0ZXh0dXJlcyB2aWEgVGV4dHVyZS5lbmNvZGluZyBpbnN0ZWFkLiIpfX0sZ2FtbWFPdXRwdXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nYW1tYU91dHB1dCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgV2ViR0xSZW5kZXJlci5vdXRwdXRFbmNvZGluZyBpbnN0ZWFkLiIpLCExfSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFPdXRwdXQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IFdlYkdMUmVuZGVyZXIub3V0cHV0RW5jb2RpbmcgaW5zdGVhZC4iKSx0aGlzLm91dHB1dEVuY29kaW5nPW49PT0hMD8kdDpyaX19LHRvbmVNYXBwaW5nV2hpdGVQb2ludDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnRvbmVNYXBwaW5nV2hpdGVQb2ludCBoYXMgYmVlbiByZW1vdmVkLiIpLDF9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnRvbmVNYXBwaW5nV2hpdGVQb2ludCBoYXMgYmVlbiByZW1vdmVkLiIpfX0sZ2FtbWFGYWN0b3I6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nYW1tYUZhY3RvciBoYXMgYmVlbiByZW1vdmVkLiIpLDJ9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdhbW1hRmFjdG9yIGhhcyBiZWVuIHJlbW92ZWQuIil9fX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFQwLnByb3RvdHlwZSx7Y3VsbEZhY2U6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5jdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAuY3VsbEZhY2UgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX19LHJlbmRlclJldmVyc2VTaWRlZDp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLnJlbmRlclJldmVyc2VTaWRlZCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAucmVuZGVyUmV2ZXJzZVNpZGVkIGhhcyBiZWVuIHJlbW92ZWQuIFNldCBNYXRlcmlhbC5zaGFkb3dTaWRlIGluc3RlYWQuIil9fSxyZW5kZXJTaW5nbGVTaWRlZDp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLnJlbmRlclNpbmdsZVNpZGVkIGhhcyBiZWVuIHJlbW92ZWQuIFNldCBNYXRlcmlhbC5zaGFkb3dTaWRlIGluc3RlYWQuIil9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5yZW5kZXJTaW5nbGVTaWRlZCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfX19KTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhOZS5wcm90b3R5cGUse3dyYXBTOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLndyYXBTIGlzIG5vdyAudGV4dHVyZS53cmFwUy4iKSx0aGlzLnRleHR1cmUud3JhcFN9LHNldDpmdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAud3JhcFMgaXMgbm93IC50ZXh0dXJlLndyYXBTLiIpLHRoaXMudGV4dHVyZS53cmFwUz1ufX0sd3JhcFQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAud3JhcFQgaXMgbm93IC50ZXh0dXJlLndyYXBULiIpLHRoaXMudGV4dHVyZS53cmFwVH0sc2V0OmZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC53cmFwVCBpcyBub3cgLnRleHR1cmUud3JhcFQuIiksdGhpcy50ZXh0dXJlLndyYXBUPW59fSxtYWdGaWx0ZXI6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAubWFnRmlsdGVyIGlzIG5vdyAudGV4dHVyZS5tYWdGaWx0ZXIuIiksdGhpcy50ZXh0dXJlLm1hZ0ZpbHRlcn0sc2V0OmZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5tYWdGaWx0ZXIgaXMgbm93IC50ZXh0dXJlLm1hZ0ZpbHRlci4iKSx0aGlzLnRleHR1cmUubWFnRmlsdGVyPW59fSxtaW5GaWx0ZXI6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAubWluRmlsdGVyIGlzIG5vdyAudGV4dHVyZS5taW5GaWx0ZXIuIiksdGhpcy50ZXh0dXJlLm1pbkZpbHRlcn0sc2V0OmZ1bmN0aW9uKG4pe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5taW5GaWx0ZXIgaXMgbm93IC50ZXh0dXJlLm1pbkZpbHRlci4iKSx0aGlzLnRleHR1cmUubWluRmlsdGVyPW59fSxhbmlzb3Ryb3B5OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLmFuaXNvdHJvcHkgaXMgbm93IC50ZXh0dXJlLmFuaXNvdHJvcHkuIiksdGhpcy50ZXh0dXJlLmFuaXNvdHJvcHl9LHNldDpmdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuYW5pc290cm9weSBpcyBub3cgLnRleHR1cmUuYW5pc290cm9weS4iKSx0aGlzLnRleHR1cmUuYW5pc290cm9weT1ufX0sb2Zmc2V0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLm9mZnNldCBpcyBub3cgLnRleHR1cmUub2Zmc2V0LiIpLHRoaXMudGV4dHVyZS5vZmZzZXR9LHNldDpmdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAub2Zmc2V0IGlzIG5vdyAudGV4dHVyZS5vZmZzZXQuIiksdGhpcy50ZXh0dXJlLm9mZnNldD1ufX0scmVwZWF0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLnJlcGVhdCBpcyBub3cgLnRleHR1cmUucmVwZWF0LiIpLHRoaXMudGV4dHVyZS5yZXBlYXR9LHNldDpmdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAucmVwZWF0IGlzIG5vdyAudGV4dHVyZS5yZXBlYXQuIiksdGhpcy50ZXh0dXJlLnJlcGVhdD1ufX0sZm9ybWF0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLmZvcm1hdCBpcyBub3cgLnRleHR1cmUuZm9ybWF0LiIpLHRoaXMudGV4dHVyZS5mb3JtYXR9LHNldDpmdW5jdGlvbihuKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuZm9ybWF0IGlzIG5vdyAudGV4dHVyZS5mb3JtYXQuIiksdGhpcy50ZXh0dXJlLmZvcm1hdD1ufX0sdHlwZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC50eXBlIGlzIG5vdyAudGV4dHVyZS50eXBlLiIpLHRoaXMudGV4dHVyZS50eXBlfSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLnR5cGUgaXMgbm93IC50ZXh0dXJlLnR5cGUuIiksdGhpcy50ZXh0dXJlLnR5cGU9bn19LGdlbmVyYXRlTWlwbWFwczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5nZW5lcmF0ZU1pcG1hcHMgaXMgbm93IC50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcy4iKSx0aGlzLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzfSxzZXQ6ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLmdlbmVyYXRlTWlwbWFwcyBpcyBub3cgLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzLiIpLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9bn19fSk7QmgucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24obil7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogLmxvYWQgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIFRIUkVFLkF1ZGlvTG9hZGVyIGluc3RlYWQuIik7bGV0IHQ9dGhpcztyZXR1cm4gbmV3IEZoKCkubG9hZChuLGZ1bmN0aW9uKGkpe3Quc2V0QnVmZmVyKGkpfSksdGhpc307T2gucHJvdG90eXBlLmdldERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5BdWRpb0FuYWx5c2VyOiAuZ2V0RGF0YSgpIGlzIG5vdyAuZ2V0RnJlcXVlbmN5RGF0YSgpLiIpLHRoaXMuZ2V0RnJlcXVlbmN5RGF0YSgpfTthby5wcm90b3R5cGUudXBkYXRlQ3ViZU1hcD1mdW5jdGlvbihuLHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkN1YmVDYW1lcmE6IC51cGRhdGVDdWJlTWFwKCkgaXMgbm93IC51cGRhdGUoKS4iKSx0aGlzLnVwZGF0ZShuLHQpfTthby5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24obix0LGUsaSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQ3ViZUNhbWVyYTogLmNsZWFyKCkgaXMgbm93IC5yZW5kZXJUYXJnZXQuY2xlYXIoKS4iKSx0aGlzLnJlbmRlclRhcmdldC5jbGVhcihuLHQsZSxpKX07Tm4uY3Jvc3NPcmlnaW49dm9pZCAwO05uLmxvYWRUZXh0dXJlPWZ1bmN0aW9uKG4sdCxlLGkpe2NvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VVdGlscy5sb2FkVGV4dHVyZSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgVEhSRUUuVGV4dHVyZUxvYWRlcigpIGluc3RlYWQuIik7bGV0IHI9bmV3IEVoO3Iuc2V0Q3Jvc3NPcmlnaW4odGhpcy5jcm9zc09yaWdpbik7bGV0IHM9ci5sb2FkKG4sZSx2b2lkIDAsaSk7cmV0dXJuIHQmJihzLm1hcHBpbmc9dCksc307Tm4ubG9hZFRleHR1cmVDdWJlPWZ1bmN0aW9uKG4sdCxlLGkpe2NvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VVdGlscy5sb2FkVGV4dHVyZUN1YmUgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIFRIUkVFLkN1YmVUZXh0dXJlTG9hZGVyKCkgaW5zdGVhZC4iKTtsZXQgcj1uZXcgU2g7ci5zZXRDcm9zc09yaWdpbih0aGlzLmNyb3NzT3JpZ2luKTtsZXQgcz1yLmxvYWQobixlLHZvaWQgMCxpKTtyZXR1cm4gdCYmKHMubWFwcGluZz10KSxzfTtObi5sb2FkQ29tcHJlc3NlZFRleHR1cmU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5JbWFnZVV0aWxzLmxvYWRDb21wcmVzc2VkVGV4dHVyZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVEhSRUUuRERTTG9hZGVyIGluc3RlYWQuIil9O05uLmxvYWRDb21wcmVzc2VkVGV4dHVyZUN1YmU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5JbWFnZVV0aWxzLmxvYWRDb21wcmVzc2VkVGV4dHVyZUN1YmUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIFRIUkVFLkREU0xvYWRlciBpbnN0ZWFkLiIpfTt0eXBlb2YgX19USFJFRV9ERVZUT09MU19fIT0idW5kZWZpbmVkIiYmX19USFJFRV9ERVZUT09MU19fLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZWdpc3RlciIse2RldGFpbDp7cmV2aXNpb246JGh9fSkpO3R5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiJiYod2luZG93Ll9fVEhSRUVfXz9jb25zb2xlLndhcm4oIldBUk5JTkc6IE11bHRpcGxlIGluc3RhbmNlcyBvZiBUaHJlZS5qcyBiZWluZyBpbXBvcnRlZC4iKTp3aW5kb3cuX19USFJFRV9fPSRoKTtmdW5jdGlvbiByZihuLHQsZSl7aWYoZT09PTEpcmV0dXJuIG5ldyBmdCh0KTtsZXQgaT1waSh0KTtpZighaSl0aHJvdyBuZXcgRXJyb3IoYGQzIGZhaWxlZCB0byByZWNvZ25pemUgdGhlIGNvbG9yOiAke3R9YCk7cmV0dXJuIG5ldyBmdChzYyhpLG4pKDEtZSkpfXZhciBnbjsoZnVuY3Rpb24obil7bltuLkNJUkNMRT0wXT0iQ0lSQ0xFIixuW24uTElORT0xXT0iTElORSIsbltuLlRSSUFOR0xFPTJdPSJUUklBTkdMRSIsbltuLlRSQVBFWk9JRD0zXT0iVFJBUEVaT0lEIn0pKGdufHwoZ249e30pKTtmdW5jdGlvbiBOMChuLHQpe2xldCBlPXQubGVuZ3RoLzIsaT1uLmF0dHJpYnV0ZXMucG9zaXRpb247KCFpfHxpLmNvdW50IT09ZSozKSYmKGk9bmV3IFF0KG5ldyBGbG9hdDMyQXJyYXkoZSozKSwzKSxuLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLGkpKTtsZXQgcj1pLmFycmF5O2ZvcihsZXQgcz0wO3M8ZTtzKyspcltzKjNdPXRbcyoyXSxyW3MqMysxXT10W3MqMisxXTtpLm5lZWRzVXBkYXRlPSEwLG4uc2V0RHJhd1JhbmdlKDAsZSozKSxuLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpfWZ1bmN0aW9uIEYwKG4sdCxlKXtsZXQgaT1NYXRoLm1heCh0Lmxlbmd0aC8yLTEsMCkscj1pKjIqMyxzPXIqMyxvPW4uYXR0cmlidXRlcy5wb3NpdGlvbjsoIW98fG8uY291bnQhPT1yKSYmKG89bmV3IFF0KG5ldyBGbG9hdDMyQXJyYXkocyksMyksbi5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixvKSk7bGV0IGE9by5hcnJheTtmb3IobGV0IGw9MDtsPGk7bCsrKXtsZXRbYyx1LGgsZl09W3RbMipsXSx0WzIqbCsxXSx0WzIqbCsyXSx0WzIqbCszXV0sZD1uZXcgSyhjLHUpLGc9bmV3IEsoaCxmKSx4PW5ldyBLKGgtYyxmLXUpLHY9bmV3IEsoLXgueSx4LngpLnNldExlbmd0aChlLzIpLG09ZC5jbG9uZSgpLmFkZCh2KSxwPWQuY2xvbmUoKS5zdWIodiksYj1nLmNsb25lKCkuYWRkKHYpLF89Zy5jbG9uZSgpLnN1Yih2KSxTPVttLngsbS55LDAscC54LHAueSwwLGIueCxiLnksMCxiLngsYi55LDAscC54LHAueSwwLF8ueCxfLnksMF07YS5zZXQoUyxsKlMubGVuZ3RoKX1vLm5lZWRzVXBkYXRlPSEwLG4uc2V0RHJhd1JhbmdlKDAscyksbi5jb21wdXRlQm91bmRpbmdTcGhlcmUoKX1mdW5jdGlvbiBJbChuLHQsZSxpKXtsZXR7dmlzaWJsZTpyLGNvbG9yOnMsb3BhY2l0eTpvfT1pO2lmKEFycmF5LmlzQXJyYXkodC5tYXRlcmlhbCkpdGhyb3cgbmV3IEVycm9yKCJJbnZhcmlhbnQgZXJyb3I6IG9ubHkgZXhwZWN0IG9uZSBtYXRlcmlhbCBvbiBhbiBvYmplY3QiKTtsZXQgYT10Lm1hdGVyaWFsO2lmKGEudmlzaWJsZSE9PXImJihhLnZpc2libGU9cixhLm5lZWRzVXBkYXRlPSEwKSwhcilyZXR1cm4hMTtsZXQgbD1yZihuLHMsbyE9bnVsbD9vOjEpLGM9ZSh0Lmdlb21ldHJ5KTtyZXR1cm4gdC5nZW9tZXRyeSE9PWMmJih0Lmdlb21ldHJ5PWMpLGEuY29sb3IuZXF1YWxzKGwpfHwoYS5jb2xvci5zZXQobCksYS5uZWVkc1VwZGF0ZT0hMCksITB9dmFyIHdUPXtjcmVhdGVTY2VuZTooKT0+bmV3IFlyfSxSbz1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsaSxyKXt0aGlzLmNvb3JkaW5hdG9yPWUsdGhpcy5zY2VuZT13VC5jcmVhdGVTY2VuZSgpLHRoaXMuYmFja2dyb3VuZENvbG9yPSIjZmZmIixEaS5pc1dlYkdsMk9mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZCgpJiZ0IGluc3RhbmNlb2YgT2Zmc2NyZWVuQ2FudmFzJiYodC5zdHlsZT10LnN0eWxlfHx7fSksciYmdC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IixyKSx0aGlzLnJlbmRlcmVyPW5ldyBWdCh7Y2FudmFzOnQsYW50aWFsaWFzOiEwLGFscGhhOiEwfSksdGhpcy5yZW5kZXJlci5zZXRQaXhlbFJhdGlvKGkpfW9uUmVzaXplKHQpe3RoaXMucmVuZGVyZXIuc2V0U2l6ZSh0LndpZHRoLHQuaGVpZ2h0KX1kZXN0cm95T2JqZWN0KHQpe2xldCBlPXQub2JqM2Q7aWYodGhpcy5zY2VuZS5yZW1vdmUoZSksZSBpbnN0YW5jZW9mIG9lKXtlLmdlb21ldHJ5LmRpc3Bvc2UoKTtsZXQgaT1BcnJheS5pc0FycmF5KGUubWF0ZXJpYWwpP2UubWF0ZXJpYWw6W2UubWF0ZXJpYWxdO2ZvcihsZXQgciBvZiBpKXIuZGlzcG9zZSgpfX1zZXRVc2VEYXJrTW9kZSh0KXt0aGlzLmJhY2tncm91bmRDb2xvcj10PyIjMzAzMDMwIjoiI2ZmZiJ9Y3JlYXRlT3JVcGRhdGVMaW5lT2JqZWN0KHQsZSxpKXt2YXIgdTtpZighdCYmIWkudmlzaWJsZSlyZXR1cm4gbnVsbDtsZXR7dmlzaWJsZTpyLHdpZHRoOnN9PWk7aWYoIXQpe2xldCBoPXJmKHRoaXMuYmFja2dyb3VuZENvbG9yLGkuY29sb3IsKHU9aS5vcGFjaXR5KSE9bnVsbD91OjEpLGY9bmV3IEh0LGQ9bmV3IHpuKHtjb2xvcjpofSksZz1uZXcgb2UoZixkKTtyZXR1cm4gZC52aXNpYmxlPXIsRjAoZixlLHMpLHRoaXMuc2NlbmUuYWRkKGcpLHt0eXBlOmduLkxJTkUsZGF0YTplLG9iajNkOmcsd2lkdGg6c319bGV0e2RhdGE6byxvYmozZDphLHdpZHRoOmx9PXQ7cmV0dXJuIElsKHRoaXMuYmFja2dyb3VuZENvbG9yLGEsaD0+KChzIT09bHx8IW98fCFEaS5hcmVQb2x5bGluZXNFcXVhbChvLGUpKSYmRjAoaCxlLHMpLGgpLGkpP3t0eXBlOmduLkxJTkUsZGF0YTplLG9iajNkOmEsd2lkdGg6c306dH1jcmVhdGVNZXNoKHQsZSl7aWYoIWUudmlzaWJsZSlyZXR1cm4gbnVsbDtsZXR7dmlzaWJsZTppLGNvbG9yOnIsb3BhY2l0eTpzfT1lLG89cmYodGhpcy5iYWNrZ3JvdW5kQ29sb3IscixzIT1udWxsP3M6MSksYT1uZXcga2koe2NvbG9yOm8sdmlzaWJsZTppfSk7cmV0dXJuIG5ldyBvZSh0LGEpfWNyZWF0ZU9yVXBkYXRlVHJpYW5nbGVPYmplY3QodCxlLGkpe2xldHtzaXplOnJ9PWkscz1yKk1hdGguc3FydCgzKS8yLG89bmV3IEZsb2F0MzJBcnJheShbZS54LXIvMixlLnktcy8zLGUueCtyLzIsZS55LXMvMyxlLngsZS55K3MqMi8zXSk7aWYoIXQpe2xldCBsPW5ldyBIdDtOMChsLG8pO2xldCBjPXRoaXMuY3JlYXRlTWVzaChsLGkpO3JldHVybiBjPT09bnVsbD9udWxsOih0aGlzLnNjZW5lLmFkZChjKSx7dHlwZTpnbi5UUklBTkdMRSxkYXRhOmUsb2JqM2Q6Y30pfXJldHVybiBJbCh0aGlzLmJhY2tncm91bmRDb2xvcix0Lm9iajNkLGw9PihOMChsLG8pLGwpLGkpP3t0eXBlOmduLlRSSUFOR0xFLGRhdGE6ZSxvYmozZDp0Lm9iajNkfTp0fWNyZWF0ZU9yVXBkYXRlQ2lyY2xlT2JqZWN0KHQsZSxpKXtsZXR7cmFkaXVzOnJ9PWkscz1uZXcgWnIoaS5yYWRpdXMpO2lmKCF0KXtsZXQgYT10aGlzLmNyZWF0ZU1lc2gocyxpKTtyZXR1cm4gYT09PW51bGw/bnVsbDooYS5wb3NpdGlvbi5zZXQoZS54LGUueSwwKSx0aGlzLnNjZW5lLmFkZChhKSx7dHlwZTpnbi5DSVJDTEUsZGF0YTp7bG9jOmUscmFkaXVzOnJ9LG9iajNkOmF9KX1yZXR1cm4gSWwodGhpcy5iYWNrZ3JvdW5kQ29sb3IsdC5vYmozZCwoKT0+cyxpKT8odC5vYmozZC5wb3NpdGlvbi5zZXQoZS54LGUueSwwKSx7dHlwZTpnbi5DSVJDTEUsZGF0YTp7bG9jOmUscmFkaXVzOnJ9LG9iajNkOnQub2JqM2R9KTp0fWNyZWF0ZU9yVXBkYXRlVHJhcGV6b2lkT2JqZWN0KHQsZSxpLHIpe2lmKGUueSE9PWkueSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5wdXQgZXJyb3I6IHN0YXJ0LnkgIT0gZW5kLnkuIik7bGV0e2FsdGl0dWRlOnN9PXIsbz0yL01hdGguc3FydCgzKSpzLGE9bmV3IFVuKFtuZXcgSyhlLngtby8yLGUueS1zLzIpLG5ldyBLKGUueCxlLnkrcy8yKSxuZXcgSyhpLngsaS55K3MvMiksbmV3IEsoaS54K28vMixpLnktcy8yKV0pO2EuYXV0b0Nsb3NlPSEwO2xldCBsPW5ldyBxaShhKTtpZighdCl7bGV0IHU9dGhpcy5jcmVhdGVNZXNoKGwscik7cmV0dXJuIHU9PT1udWxsP251bGw6KHRoaXMuc2NlbmUuYWRkKHUpLHt0eXBlOmduLlRSQVBFWk9JRCxkYXRhOltlLGldLG9iajNkOnV9KX1yZXR1cm4gSWwodGhpcy5iYWNrZ3JvdW5kQ29sb3IsdC5vYmozZCwoKT0+bCxyKT97dHlwZTpnbi5UUkFQRVpPSUQsZGF0YTpbZSxpXSxvYmozZDp0Lm9iajNkfTp0fWZsdXNoKCl7dGhpcy5yZW5kZXJlci5yZW5kZXIodGhpcy5zY2VuZSx0aGlzLmNvb3JkaW5hdG9yLmdldENhbWVyYSgpKX1kaXNwb3NlKCl7dGhpcy5yZW5kZXJlci5kaXNwb3NlKCl9fTt2YXIgTmw9Y2xhc3N7Y29uc3RydWN0b3IodCxlKXt0aGlzLnJlbmRlckNhY2hlPXQsdGhpcy5yZW5kZXJlcj1lfXNldExpbmUodCxlLGkpe2xldCByPXRoaXMucmVuZGVyZXIuY3JlYXRlT3JVcGRhdGVMaW5lT2JqZWN0KHRoaXMucmVuZGVyQ2FjaGUuZ2V0RnJvbVByZXZpb3VzRnJhbWUodCksZSxpKTtyJiZ0aGlzLnJlbmRlckNhY2hlLnNldFRvQ3VycmVudEZyYW1lKHQscil9c2V0VHJpYW5nbGUodCxlLGkpe2xldCByPXRoaXMucmVuZGVyZXIuY3JlYXRlT3JVcGRhdGVUcmlhbmdsZU9iamVjdCh0aGlzLnJlbmRlckNhY2hlLmdldEZyb21QcmV2aW91c0ZyYW1lKHQpLGUsaSk7ciYmdGhpcy5yZW5kZXJDYWNoZS5zZXRUb0N1cnJlbnRGcmFtZSh0LHIpfXNldENpcmNsZSh0LGUsaSl7bGV0IHI9dGhpcy5yZW5kZXJlci5jcmVhdGVPclVwZGF0ZUNpcmNsZU9iamVjdCh0aGlzLnJlbmRlckNhY2hlLmdldEZyb21QcmV2aW91c0ZyYW1lKHQpLGUsaSk7ciYmdGhpcy5yZW5kZXJDYWNoZS5zZXRUb0N1cnJlbnRGcmFtZSh0LHIpfXNldFRyYXBlem9pZCh0LGUsaSxyKXtsZXQgcz10aGlzLnJlbmRlcmVyLmNyZWF0ZU9yVXBkYXRlVHJhcGV6b2lkT2JqZWN0KHRoaXMucmVuZGVyQ2FjaGUuZ2V0RnJvbVByZXZpb3VzRnJhbWUodCksZSxpLHIpO3MmJnRoaXMucmVuZGVyQ2FjaGUuc2V0VG9DdXJyZW50RnJhbWUodCxzKX19O3ZhciBzZj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucHJldkZyYW1lQ2FjaGU9bmV3IE1hcCx0aGlzLmN1cnJGcmFtZUNhY2hlPW5ldyBNYXB9Z2V0RnJvbVByZXZpb3VzRnJhbWUodCl7bGV0IGU9dGhpcy5wcmV2RnJhbWVDYWNoZS5nZXQodCk7cmV0dXJuIGUhPW51bGw/ZTpudWxsfXNldFRvQ3VycmVudEZyYW1lKHQsZSl7dGhpcy5jdXJyRnJhbWVDYWNoZS5zZXQodCxlKX1maW5hbGl6ZUZyYW1lQW5kR2V0UmVtb3ZlZCgpe2xldCB0PVtdO2ZvcihsZXRbZSxpXW9mIHRoaXMucHJldkZyYW1lQ2FjaGUuZW50cmllcygpKXRoaXMuY3VyckZyYW1lQ2FjaGUuaGFzKGUpfHx0LnB1c2goaSk7cmV0dXJuIHRoaXMucHJldkZyYW1lQ2FjaGU9dGhpcy5jdXJyRnJhbWVDYWNoZSx0aGlzLmN1cnJGcmFtZUNhY2hlPW5ldyBNYXAsdH19LEZsPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMucmF3U2VyaWVzRGF0YT1bXSx0aGlzLnNlcmllcz1bXSx0aGlzLnBhaW50RGlydHk9ITAsdGhpcy5yZW5kZXJDYWNoZT1uZXcgc2YsdGhpcy5jb29yZGluYXRlSWRlbnRpZmllcj1udWxsLHRoaXMubGF5b3V0PXt4OjAsd2lkdGg6MSx5OjAsaGVpZ2h0OjF9LHRoaXMuZ2V0TWV0YWRhdGFNYXBJbXBsPXQuZ2V0TWV0YWRhdGFNYXAsdGhpcy5jb29yZGluYXRvcj10LmNvb3JkaW5hdG9yLHRoaXMucmVuZGVyZXI9dC5yZW5kZXJlcix0aGlzLnBhaW50QnJ1c2g9bmV3IE5sKHRoaXMucmVuZGVyQ2FjaGUsdGhpcy5yZW5kZXJlcil9c2V0TGF5b3V0UmVjdCh0KXsodGhpcy5sYXlvdXQueCE9PXQueHx8dGhpcy5sYXlvdXQud2lkdGghPT10LndpZHRofHx0aGlzLmxheW91dC55IT09dC55fHx0aGlzLmxheW91dC5oZWlnaHQhPT10LmhlaWdodCkmJih0aGlzLnBhaW50RGlydHk9ITApLHRoaXMubGF5b3V0PXR9Z2V0TGF5b3V0UmVjdCgpe3JldHVybiB0aGlzLmxheW91dH1nZXRNZXRhZGF0YU1hcCgpe3JldHVybiB0aGlzLmdldE1ldGFkYXRhTWFwSW1wbCgpfW1hcmtBc1BhaW50RGlydHkoKXt0aGlzLnBhaW50RGlydHk9ITB9cmVuZGVyKCl7aWYodGhpcy50cmFuc2Zvcm1Db29yZGluYXRlc0lmU3RhbGUoKSwhIXRoaXMucGFpbnREaXJ0eSl7dGhpcy5yZWRyYXcoKTtmb3IobGV0IHQgb2YgdGhpcy5yZW5kZXJDYWNoZS5maW5hbGl6ZUZyYW1lQW5kR2V0UmVtb3ZlZCgpKXRoaXMucmVuZGVyZXIuZGVzdHJveU9iamVjdCh0KTt0aGlzLnBhaW50RGlydHk9ITF9fWlzQ29vcmRpbmF0ZVVwZGF0ZWQoKXtyZXR1cm4gdGhpcy5jb29yZGluYXRvci5nZXRVcGRhdGVJZGVudGlmaWVyKCkhPT10aGlzLmNvb3JkaW5hdGVJZGVudGlmaWVyfWNsZWFyQ29vcmRpbmF0ZUlkZW50aWZpZXIoKXt0aGlzLmNvb3JkaW5hdGVJZGVudGlmaWVyPW51bGx9c2V0RGF0YSh0KXt0aGlzLmNsZWFyQ29vcmRpbmF0ZUlkZW50aWZpZXIoKSx0aGlzLnJhd1Nlcmllc0RhdGE9dH10cmFuc2Zvcm1Db29yZGluYXRlc0lmU3RhbGUoKXtpZighdGhpcy5pc0Nvb3JkaW5hdGVVcGRhdGVkKCkpcmV0dXJuO2xldCB0PXRoaXMuZ2V0TGF5b3V0UmVjdCgpO3RoaXMuc2VyaWVzPW5ldyBBcnJheSh0aGlzLnJhd1Nlcmllc0RhdGEubGVuZ3RoKTtmb3IobGV0IGU9MDtlPHRoaXMucmF3U2VyaWVzRGF0YS5sZW5ndGg7ZSsrKXtsZXQgaT10aGlzLnJhd1Nlcmllc0RhdGFbZV07dGhpcy5zZXJpZXNbZV09e2lkOmkuaWQscG9seWxpbmU6bmV3IEZsb2F0MzJBcnJheShpLnBvaW50cy5sZW5ndGgqMil9O2ZvcihsZXQgcj0wO3I8aS5wb2ludHMubGVuZ3RoO3IrKyl7bGV0W3Msb109dGhpcy5jb29yZGluYXRvci50cmFuc2Zvcm1EYXRhVG9VaUNvb3JkKHQsW2kucG9pbnRzW3JdLngsaS5wb2ludHNbcl0ueV0pO3RoaXMuc2VyaWVzW2VdLnBvbHlsaW5lW3IqMl09cyx0aGlzLnNlcmllc1tlXS5wb2x5bGluZVtyKjIrMV09b319dGhpcy5jb29yZGluYXRlSWRlbnRpZmllcj10aGlzLmNvb3JkaW5hdG9yLmdldFVwZGF0ZUlkZW50aWZpZXIoKSx0aGlzLm1hcmtBc1BhaW50RGlydHkoKX19O3ZhciBMbzsoZnVuY3Rpb24obil7bltuLk5VTUJFUj0wXT0iTlVNQkVSIixuW24uTkFOPTFdPSJOQU4ifSkoTG98fChMbz17fSkpO3ZhciB6bD1jbGFzcyBleHRlbmRzIEZse3JlY29yZFBhcnRpdGlvbih0LGUsaSl7cmV0dXJuIHQ/e3R5cGU6TG8uTlVNQkVSLHBvbHlsaW5lOmV9Ont0eXBlOkxvLk5BTixwb2x5bGluZTplLm1hcCgocixzKT0+aXNOYU4ocik/cyUyPT09MD9pLng6aS55OnIpfX1wYXJ0aXRpb25Qb2x5bGluZSh0KXtsZXQgZT1bXSxpPTAscj0hMSxzPXRoaXMuY29vcmRpbmF0b3IudHJhbnNmb3JtRGF0YVRvVWlDb29yZCh0aGlzLmdldExheW91dFJlY3QoKSxbMCwwXSksbz17eDpzWzBdLHk6c1sxXX0sYT1udWxsO2ZvcihsZXQgbD0wO2w8dC5sZW5ndGg7bCs9Mil7bGV0IGM9dFtsXSx1PXRbbCsxXSxoPWlzTmFOKGMpfHxpc05hTih1KTtoIT09ciYmaSE9PWwmJihlLnB1c2godGhpcy5yZWNvcmRQYXJ0aXRpb24oIXIsdC5zbGljZShpLGwpLGE9PT1udWxsP3t4OmMseTp1fTphKSksaT1sKSxofHwoYT17eDpjLHk6dX0pLHI9aH1yZXR1cm4gaSE9PXQubGVuZ3RoLTEmJmUucHVzaCh0aGlzLnJlY29yZFBhcnRpdGlvbighcix0LnNsaWNlKGksdC5sZW5ndGgpLGEhPW51bGw/YTpvKSksZX1yZWRyYXcoKXt2YXIgdCxlLGk7Zm9yKGxldCByIG9mIHRoaXMuc2VyaWVzKXtsZXQgbz10aGlzLmdldE1ldGFkYXRhTWFwKClbci5pZF07aWYoIW8pY29udGludWU7aWYoci5wb2x5bGluZS5sZW5ndGglMiE9PTApdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgaGF2ZSBvZGQgbGVuZ3RoLWVkIHBvbHlsaW5lOiAke3IucG9seWxpbmUubGVuZ3RofWApO2xldCBhPXRoaXMucGFydGl0aW9uUG9seWxpbmUoci5wb2x5bGluZSk7Zm9yKGxldFtsLHt0eXBlOmMscG9seWxpbmU6dX1db2YgYS5lbnRyaWVzKCkpaWYoYz09PUxvLk5VTUJFUil1Lmxlbmd0aD09PTI/dGhpcy5wYWludEJydXNoLnNldENpcmNsZShKU09OLnN0cmluZ2lmeShbImNpcmNsZSIsci5pZCxsXSkse3g6dVswXSx5OnVbMV19LHtjb2xvcjpvLmNvbG9yLHZpc2libGU6by52aXNpYmxlLG9wYWNpdHk6KHQ9by5vcGFjaXR5KSE9bnVsbD90OjEscmFkaXVzOjR9KTp0aGlzLnBhaW50QnJ1c2guc2V0TGluZShKU09OLnN0cmluZ2lmeShbImxpbmUiLHIuaWQsbF0pLHUse2NvbG9yOm8uY29sb3IsdmlzaWJsZTpvLnZpc2libGUsb3BhY2l0eTooZT1vLm9wYWNpdHkpIT1udWxsP2U6MSx3aWR0aDoyfSk7ZWxzZSBpZighby5hdXgpZm9yKGxldCBoPTA7aDx1Lmxlbmd0aDtoKz0yKXRoaXMucGFpbnRCcnVzaC5zZXRUcmlhbmdsZShKU09OLnN0cmluZ2lmeShbIk5hTiIsci5pZCx1W2hdLHVbaCsxXV0pLHt4OnVbaF0seTp1W2grMV19LHtjb2xvcjpvLmNvbG9yLHZpc2libGU6by52aXNpYmxlLG9wYWNpdHk6KGk9by5vcGFjaXR5KSE9bnVsbD9pOjEsc2l6ZToxMn0pfX19O3ZhciBVbD1jbGFzcyBleHRlbmRzIGRye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmNhbWVyYT1uZXcgVmkoMCwxZTMsMWUzLDAsMCwxMDApfWlzWUF4aXNQb2ludGVkRG93bigpe3JldHVybiExfXNldERvbUNvbnRhaW5lclJlY3QodCl7c3VwZXIuc2V0RG9tQ29udGFpbmVyUmVjdCh0KSx0aGlzLmNhbWVyYS5sZWZ0PXQueCx0aGlzLmNhbWVyYS5yaWdodD10LngrdC53aWR0aCx0aGlzLmNhbWVyYS50b3A9dC55K3QuaGVpZ2h0LHRoaXMuY2FtZXJhLmJvdHRvbT10LnksdGhpcy5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfWdldENhbWVyYSgpe3JldHVybiB0aGlzLmNhbWVyYX19O3ZhciBNVD17cmVxdWVzdEFuaW1hdGlvbkZyYW1lOm49PnNlbGYucmVxdWVzdEFuaW1hdGlvbkZyYW1lKG4pfSxCbD1jbGFzc3tjb25zdHJ1Y3Rvcih0KXtzd2l0Y2godGhpcy5tZXRhZGF0YU1hcD17fSx0aGlzLnNob3VsZFJlcGFpbnQ9ITEsdGhpcy5jYWxsYmFja3M9dC5jYWxsYmFja3MsdC50eXBlKXtjYXNlIFRuLlNWRzp7dGhpcy5jb29yZGluYXRvcj1uZXcgZHIsdGhpcy5yZW5kZXJlcj1uZXcgT3ModC5jb250YWluZXIpO2JyZWFrfWNhc2UgVG4uV0VCR0w6e2xldCBlPW5ldyBVbDt0aGlzLmNvb3JkaW5hdG9yPWUsdGhpcy5yZW5kZXJlcj1uZXcgUm8odC5jb250YWluZXIsZSx0LmRldmljZVBpeGVsUmF0aW8sdC5jYWxsYmFja3Mub25Db250ZXh0TG9zdCk7YnJlYWt9fXRoaXMucmVuZGVyZXIuc2V0VXNlRGFya01vZGUodC51c2VEYXJrTW9kZSksdGhpcy5zZXJpZXNMaW5lVmlldz1uZXcgemwoe3JlbmRlcmVyOnRoaXMucmVuZGVyZXIsY29vcmRpbmF0b3I6dGhpcy5jb29yZGluYXRvcixnZXRNZXRhZGF0YU1hcDooKT0+dGhpcy5tZXRhZGF0YU1hcH0pLHRoaXMucmVzaXplKHQuZG9tRGltZW5zaW9uKX1kaXNwb3NlKCl7fXNldFhTY2FsZVR5cGUodCl7dGhpcy5jb29yZGluYXRvci5zZXRYU2NhbGUoZnIodCkpLHRoaXMuc2NoZWR1bGVSZXBhaW50KCl9c2V0WVNjYWxlVHlwZSh0KXt0aGlzLmNvb3JkaW5hdG9yLnNldFlTY2FsZShmcih0KSksdGhpcy5zY2hlZHVsZVJlcGFpbnQoKX1yZXNpemUodCl7dGhpcy5jb29yZGluYXRvci5zZXREb21Db250YWluZXJSZWN0KE5vKHt4OjAseTowfSx0KSksdGhpcy5yZW5kZXJlci5vblJlc2l6ZShObyh7eDowLHk6MH0sdCkpLHRoaXMuc2VyaWVzTGluZVZpZXcuc2V0TGF5b3V0UmVjdCh1ZihObyh7fSx0KSx7eDowLHk6MH0pKSx0aGlzLnNjaGVkdWxlUmVwYWludCgpfXNldE1ldGFkYXRhKHQpe2xldCBlPSExO09iamVjdC5lbnRyaWVzKHQpLmZvckVhY2goKFtpLHJdKT0+e2xldCBzPXRoaXMubWV0YWRhdGFNYXBbaV07KCFzfHxyLmNvbG9yIT09cy5jb2xvcnx8ci52aXNpYmxlIT09cy52aXNpYmxlfHxyLm9wYWNpdHkhPT1zLm9wYWNpdHkpJiYoZT0hMCksdGhpcy5tZXRhZGF0YU1hcFtpXT1yfSksZSYmdGhpcy5zZXJpZXNMaW5lVmlldy5tYXJrQXNQYWludERpcnR5KCksdGhpcy5zY2hlZHVsZVJlcGFpbnQoKX1zZXRWaWV3Qm94KHQpe3RoaXMuY29vcmRpbmF0b3Iuc2V0Vmlld0JveFJlY3Qoe3g6dC54WzBdLHdpZHRoOnQueFsxXS10LnhbMF0seTp0LnlbMF0saGVpZ2h0OnQueVsxXS10LnlbMF19KSx0aGlzLnNjaGVkdWxlUmVwYWludCgpfXNldERhdGEodCl7dGhpcy5zZXJpZXNMaW5lVmlldy5zZXREYXRhKHQpLHRoaXMuc2NoZWR1bGVSZXBhaW50KCl9c2V0VXNlRGFya01vZGUodCl7dGhpcy5yZW5kZXJlci5zZXRVc2VEYXJrTW9kZSh0KSx0aGlzLnNlcmllc0xpbmVWaWV3Lm1hcmtBc1BhaW50RGlydHkoKSx0aGlzLnNjaGVkdWxlUmVwYWludCgpfXNjaGVkdWxlUmVwYWludCgpe3RoaXMuc2hvdWxkUmVwYWludHx8KHRoaXMuc2hvdWxkUmVwYWludD0hMCxNVC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnJlcGFpbnQoKSx0aGlzLnNob3VsZFJlcGFpbnQ9ITF9KSl9cmVwYWludCgpe3RoaXMuc2VyaWVzTGluZVZpZXcucmVuZGVyKCksdGhpcy5yZW5kZXJlci5mbHVzaCgpLHRoaXMuY2FsbGJhY2tzLm9uRHJhd0VuZCgpfX07ZnVuY3Rpb24gejAobil7bGV0e2ZsYXR0ZW5lZFNlcmllczp0LGlkc0FuZExlbmd0aHM6ZX09bixpPW5ldyBGbG9hdDY0QXJyYXkodCkscj1bXTtpZihpLmxlbmd0aCUyIT09MCl0aHJvdyBuZXcgRXJyb3IoImBmbGF0dGVuZWRTZXJpZXNgIG11c3QgaGF2ZSBldmVuIG51bWJlciBvZiBlbGVtZW50cyIpO2xldCBzPTA7Zm9yKGxldHtpZDpvLGxlbmd0aDphfW9mIGUpe2xldCBsPVtdO2ZvcihsZXQgYz0wO2M8YTtjKyspbC5wdXNoKHt4OmlbcysrXSx5OmlbcysrXX0pO3IucHVzaCh7aWQ6byxwb2ludHM6bH0pfXJldHVybiByfXZhciB4bjsoZnVuY3Rpb24obil7bltuLlNFUklFU19EQVRBX1VQREFURUQ9MF09IlNFUklFU19EQVRBX1VQREFURUQiLG5bbi5TRVJJRVNfTUVUQURBVEFfQ0hBTkdFRD0xXT0iU0VSSUVTX01FVEFEQVRBX0NIQU5HRUQiLG5bbi5TQ0FMRV9VUERBVEVEPTJdPSJTQ0FMRV9VUERBVEVEIixuW24uVklFV19CT1hfVVBEQVRFRD0zXT0iVklFV19CT1hfVVBEQVRFRCIsbltuLklOSVQ9NF09IklOSVQiLG5bbi5ET01fUkVTSVpFRD01XT0iRE9NX1JFU0laRUQiLG5bbi5EQVJLX01PREVfVVBEQVRFRD02XT0iREFSS19NT0RFX1VQREFURUQiLG5bbi5ESVNQT1NFRD03XT0iRElTUE9TRUQifSkoeG58fCh4bj17fSkpO3ZhciBQbzsoZnVuY3Rpb24obil7bltuLk9OX1JFRFJBV19FTkQ9MF09Ik9OX1JFRFJBV19FTkQiLG5bbi5PTl9DT05URVhUX0xPU1Q9MV09Ik9OX0NPTlRFWFRfTE9TVCJ9KShQb3x8KFBvPXt9KSk7c2VsZi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixuPT57YlQobi5wb3J0c1swXSxuLmRhdGEpfSk7ZnVuY3Rpb24gYlQobix0KXtsZXR7Y2FudmFzOmUsZGV2aWNlUGl4ZWxSYXRpbzppLGRpbTpyLHJlbmRlcmVyVHlwZTpzLHVzZURhcmtNb2RlOm99PXQsYT17b25EcmF3RW5kOigpPT57bi5wb3N0TWVzc2FnZSh7dHlwZTpQby5PTl9SRURSQVdfRU5EfSl9LG9uQ29udGV4dExvc3Q6KCk9PntuLnBvc3RNZXNzYWdlKHt0eXBlOlBvLk9OX0NPTlRFWFRfTE9TVH0pfX0sbDtzd2l0Y2gocyl7Y2FzZSBUbi5XRUJHTDpsPXt0eXBlOlRuLldFQkdMLGRvbURpbWVuc2lvbjpyLGNhbGxiYWNrczphLGNvbnRhaW5lcjplLGRldmljZVBpeGVsUmF0aW86aSx1c2VEYXJrTW9kZTpvfTticmVhaztkZWZhdWx0OnRocm93IG5ldyBSYW5nZUVycm9yKGBJbnZhcmlhbnQgZXJyb3I6IGNhbm5vdCBoYXZlIE9mZnNjcmVlbiBjaGFydCBmb3IgcmVuZGVyZXIgdHlwZTogJHtzfWApfWxldCBjPW5ldyBCbChsKTtuLm9ubWVzc2FnZT1mdW5jdGlvbih1KXtsZXQgaD11LmRhdGE7c3dpdGNoKGgudHlwZSl7Y2FzZSB4bi5TRVJJRVNfREFUQV9VUERBVEVEOntsZXQgZj16MChoLmNvbXBhY3REYXRhU2VyaWVzKTtjLnNldERhdGEoZik7YnJlYWt9Y2FzZSB4bi5TRVJJRVNfTUVUQURBVEFfQ0hBTkdFRDp7Yy5zZXRNZXRhZGF0YShoLm1ldGFkYXRhKTticmVha31jYXNlIHhuLlZJRVdfQk9YX1VQREFURUQ6e2Muc2V0Vmlld0JveChoLmV4dGVudCk7YnJlYWt9Y2FzZSB4bi5ET01fUkVTSVpFRDp7Yy5yZXNpemUoaC5kaW0pO2JyZWFrfWNhc2UgeG4uREFSS19NT0RFX1VQREFURUQ6e2Muc2V0VXNlRGFya01vZGUoaC51c2VEYXJrTW9kZSk7YnJlYWt9Y2FzZSB4bi5TQ0FMRV9VUERBVEVEOntzd2l0Y2goaC5heGlzKXtjYXNlIngiOmMuc2V0WFNjYWxlVHlwZShoLnNjYWxlVHlwZSk7YnJlYWs7Y2FzZSJ5IjpjLnNldFlTY2FsZVR5cGUoaC5zY2FsZVR5cGUpO2JyZWFrO2RlZmF1bHQ6bGV0IGY9aC5heGlzO3Rocm93IG5ldyBSYW5nZUVycm9yKGBVbmtub3duIGF4aXM6ICR7Zn1gKX1icmVha31jYXNlIHhuLkRJU1BPU0VEOntjLmRpc3Bvc2UoKTticmVha319fX19KSgpOwovKioKICogQGxpY2Vuc2UKICogQ29weXJpZ2h0IDIwMTAtMjAyMiBUaHJlZS5qcyBBdXRob3JzCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKICovCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNoYXJ0X3dvcmtlci5qcy5tYXAK", + "ok": true, + "headers": [ + [ + "content-length", + "186402" + ], + [ + "content-type", + "text/javascript; charset=utf-8" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Loss/loss_bbox_aux_1%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIkxvc3MvbG9zc19iYm94X2F1eF8xIiwgInJ1blRvU2VyaWVzIjogeyIuIjogW3sid2FsbFRpbWUiOiAxNzMzMDY3NjMxLjUzNzg0NjYsICJzdGVwIjogMCwgInZhbHVlIjogMS44NDQ4Nzc3MTk4NzkxNTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NDYuNjUxMjI3NSwgInN0ZXAiOiAxMCwgInZhbHVlIjogMi4wODA5NzY3MjQ2MjQ2MzR9LCB7IndhbGxUaW1lIjogMTczMzA2NzY2MC43ODMzMDYsICJzdGVwIjogMjAsICJ2YWx1ZSI6IDEuODk2NDAwMzMyNDUwODY2N30sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njc0LjEzNjUyMzUsICJzdGVwIjogMzAsICJ2YWx1ZSI6IDEuODExNjEwMzQxMDcyMDgyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njg3LjA1NjIyOTYsICJzdGVwIjogNDAsICJ2YWx1ZSI6IDIuMDQ3ODIxMDQ0OTIxODc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2OTkuNDkyMTIzNiwgInN0ZXAiOiA1MCwgInZhbHVlIjogMS4zMjExOTU5NjAwNDQ4NjA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MTAuNjI4Mzk1MywgInN0ZXAiOiA2MCwgInZhbHVlIjogMS42NTY3NDkyNDg1MDQ2Mzg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MjIuNzU0NTk3MiwgInN0ZXAiOiA3MCwgInZhbHVlIjogMS40Mjk1MzE4MTI2Njc4NDY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MzMuNzI0NDQ3NSwgInN0ZXAiOiA4MCwgInZhbHVlIjogMC45NTQ4MzQ4Nzg0NDQ2NzE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NTAuOTQ1MzU2OCwgInN0ZXAiOiA5MCwgInZhbHVlIjogMS4yMzc0NTk4OTc5OTQ5OTUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NjEuOTc5OTM0NSwgInN0ZXAiOiAxMDAsICJ2YWx1ZSI6IDEuMDg3MDEzMzYzODM4MTk1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzcxLjYwNTUwMzMsICJzdGVwIjogMTEwLCAidmFsdWUiOiAwLjcyMzE0MDAwMTI5Njk5NzF9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc4MC41NDY0NTI1LCAic3RlcCI6IDEyMCwgInZhbHVlIjogMC42MTcyMzY5NzE4NTUxNjM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3OTAuNDg0NDAyNywgInN0ZXAiOiAxMzAsICJ2YWx1ZSI6IDAuODE1ODY5NTEwMTczNzk3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Nzk5LjEwNDczMzIsICJzdGVwIjogMTQwLCAidmFsdWUiOiAwLjQ0MjMzMTk5OTU0MDMyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODA5LjQ0MzcxNjUsICJzdGVwIjogMTUwLCAidmFsdWUiOiAwLjY0MDA2MDAwNzU3MjE3NDF9LCB7IndhbGxUaW1lIjogMTczMzA2NzgxOC45MTk4MTAzLCAic3RlcCI6IDE2MCwgInZhbHVlIjogMC42MDM3OTU1Mjg0MTE4NjUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MzYuNjQ4NTk1NiwgInN0ZXAiOiAxNzAsICJ2YWx1ZSI6IDAuNDMzNjM3ODU3NDM3MTMzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODQ2LjM4OTc2NzYsICJzdGVwIjogMTgwLCAidmFsdWUiOiAwLjY2NjgxNjUzMjYxMTg0Njl9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg1NS42NjU4NzExLCAic3RlcCI6IDE5MCwgInZhbHVlIjogMC40MzI3MjYwMjU1ODEzNTk4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODY0Ljg4ODI2MDQsICJzdGVwIjogMjAwLCAidmFsdWUiOiAwLjc4NDc4MzM2MzM0MjI4NTJ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg3NC4wMDA4MDk0LCAic3RlcCI6IDIxMCwgInZhbHVlIjogMC42MDExNzkxMjI5MjQ4MDQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4ODMuNzg0NTY0NywgInN0ZXAiOiAyMjAsICJ2YWx1ZSI6IDAuNDE1NTE2NDM2MTAwMDA2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODkyLjEyMjE4NiwgInN0ZXAiOiAyMzAsICJ2YWx1ZSI6IDAuNTA1ODIzMzczNzk0NTU1N30sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTAxLjA2ODQ4MzgsICJzdGVwIjogMjQwLCAidmFsdWUiOiAwLjUwMDY0NDY4MzgzNzg5MDZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzkxMC4wNzM5NzY1LCAic3RlcCI6IDI1MCwgInZhbHVlIjogMC40Njg3NjU3MzU2MjYyMjA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MjUuOTQ5MTE5OCwgInN0ZXAiOiAyNjAsICJ2YWx1ZSI6IDAuNzc4NTY1NjQ1MjE3ODk1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTM1LjQ3NDU4MSwgInN0ZXAiOiAyNzAsICJ2YWx1ZSI6IDAuNDMzNzg0NzIzMjgxODYwMzV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk0NC4wMTM5Njg1LCAic3RlcCI6IDI4MCwgInZhbHVlIjogMC40NzcwODM2ODMwMTM5MTZ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk1Mi41NDUwNDQsICJzdGVwIjogMjkwLCAidmFsdWUiOiAwLjQ3MjE3NjY0MTIyNTgxNDh9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk2MS4wMjU4MTQ4LCAic3RlcCI6IDMwMCwgInZhbHVlIjogMC4zMjc5MDk4ODY4MzcwMDU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NzAuMTMzNTA0MiwgInN0ZXAiOiAzMTAsICJ2YWx1ZSI6IDAuNTM4MDM4MjUzNzg0MTc5N30sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTgwLjIyNDgzODMsICJzdGVwIjogMzIwLCAidmFsdWUiOiAwLjQ0NjMzNjI5OTE4MDk4NDV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk4OC44MTUxNjQ2LCAic3RlcCI6IDMzMCwgInZhbHVlIjogMC41Mzk1NTU2Njg4MzA4NzE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMDUuMDg5NzMwNSwgInN0ZXAiOiAzNDAsICJ2YWx1ZSI6IDAuNDEzMTE0MjQ5NzA2MjY4M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDE0LjA2NDIyMTQsICJzdGVwIjogMzUwLCAidmFsdWUiOiAwLjQwMzg2MjAyOTMxNDA0MTE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMjIuNTUyMTA4LCAic3RlcCI6IDM2MCwgInZhbHVlIjogMC40NjQ0MjkxMTAyODg2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDMxLjgyMzgyNTQsICJzdGVwIjogMzcwLCAidmFsdWUiOiAwLjUwMTM2MDU5NTIyNjI4Nzh9LCB7IndhbGxUaW1lIjogMTczMzA2ODA0MC43ODY5NiwgInN0ZXAiOiAzODAsICJ2YWx1ZSI6IDAuMzYwOTI5NDI5NTMxMDk3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDUwLjE1OTM1NzUsICJzdGVwIjogMzkwLCAidmFsdWUiOiAwLjM5Mzc2NzMyNzA3MDIzNjJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODA1OS4xMjUyMTk4LCAic3RlcCI6IDQwMCwgInZhbHVlIjogMC4zMDEzNjI2OTMzMDk3ODM5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDY4LjA4OTI2NzcsICJzdGVwIjogNDEwLCAidmFsdWUiOiAwLjY2ODE3MTA0ODE2NDM2Nzd9LCB7IndhbGxUaW1lIjogMTczMzA2ODA4NC44NDMxNDE2LCAic3RlcCI6IDQyMCwgInZhbHVlIjogMC4zODYyNzA0MzM2NjQzMjE5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwOTQuNjY1NzkxLCAic3RlcCI6IDQzMCwgInZhbHVlIjogMC41MDgyMzI5NTExNjQyNDU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMDMuNzA3MjczNywgInN0ZXAiOiA0NDAsICJ2YWx1ZSI6IDAuMzQ2ODAzNTE2MTQ5NTIwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTEyLjY5ODk0MiwgInN0ZXAiOiA0NTAsICJ2YWx1ZSI6IDAuNDM2Nzg5MzYzNjIyNjY1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTIxLjUwMDMwMDIsICJzdGVwIjogNDYwLCAidmFsdWUiOiAwLjUzNDA1NDIxOTcyMjc0Nzh9LCB7IndhbGxUaW1lIjogMTczMzA2ODEzMC43MjcwOTg3LCAic3RlcCI6IDQ3MCwgInZhbHVlIjogMC40MDUzNTYyNTgxNTM5MTU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMzkuODU1MDY2MywgInN0ZXAiOiA0ODAsICJ2YWx1ZSI6IDAuNDAzODI3MTkwMzk5MTY5OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTQ5LjM2OTQ1MDMsICJzdGVwIjogNDkwLCAidmFsdWUiOiAwLjUzMjU0OTA4MzIzMjg3OTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODE1OC4wNjk0NTgyLCAic3RlcCI6IDUwMCwgInZhbHVlIjogMC41MjAwNDg3OTcxMzA1ODQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxNzQuMTE0NTQ5OSwgInN0ZXAiOiA1MTAsICJ2YWx1ZSI6IDAuNDgwMTUwMjIyNzc4MzIwM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTgyLjcxOTA0MjMsICJzdGVwIjogNTIwLCAidmFsdWUiOiAwLjM3Nzc1NjA4ODk3MjA5MTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODE5Mi40MTMwNjYxLCAic3RlcCI6IDUzMCwgInZhbHVlIjogMC40MDE0MzE2Nzk3MjU2NDd9LCB7IndhbGxUaW1lIjogMTczMzA2ODIwMS44MDc1NzcsICJzdGVwIjogNTQwLCAidmFsdWUiOiAwLjM5NDEzMDQ2ODM2ODUzMDN9LCB7IndhbGxUaW1lIjogMTczMzA2ODIxMC42NTQwMTEyLCAic3RlcCI6IDU1MCwgInZhbHVlIjogMC41OTYwMDk1NTI0Nzg3OTAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMjAuMTk0NTU5NiwgInN0ZXAiOiA1NjAsICJ2YWx1ZSI6IDAuNzI1NDM4ODMzMjM2Njk0M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjI5LjE1ODgwMSwgInN0ZXAiOiA1NzAsICJ2YWx1ZSI6IDAuMzIxMTE3OTY3MzY3MTcyMjR9LCB7IndhbGxUaW1lIjogMTczMzA2ODIzOC41OTEwNTg3LCAic3RlcCI6IDU4MCwgInZhbHVlIjogMC4yOTM5ODgyODc0NDg4ODMwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjU2LjA3MjU1ODIsICJzdGVwIjogNTkwLCAidmFsdWUiOiAwLjQyMTM1ODc5Mzk3MzkyMjczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNjUuNDMxMzQ5OCwgInN0ZXAiOiA2MDAsICJ2YWx1ZSI6IDAuNTAzNzA1NjgwMzcwMzMwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Mjc0LjY1NjA0MjgsICJzdGVwIjogNjEwLCAidmFsdWUiOiAwLjY2MDY5NzkzNzAxMTcxODh9LCB7IndhbGxUaW1lIjogMTczMzA2ODI4My43Njk1MTksICJzdGVwIjogNjIwLCAidmFsdWUiOiAwLjU5MjkyNDg5MjkwMjM3NDN9LCB7IndhbGxUaW1lIjogMTczMzA2ODI5My4zMzM2NzY4LCAic3RlcCI6IDYzMCwgInZhbHVlIjogMC40NTk4ODIwODA1NTQ5NjIxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzAyLjY0NjY4ODIsICJzdGVwIjogNjQwLCAidmFsdWUiOiAwLjM4NTcyNTUyODAwMTc4NTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODMxMS4zODc2Njg0LCAic3RlcCI6IDY1MCwgInZhbHVlIjogMC4zNDM3MDAyMDAzMTkyOTAxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzIwLjM4OTY1NjUsICJzdGVwIjogNjYwLCAidmFsdWUiOiAwLjQ1MjkwNjA0MjMzNzQxNzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODMyOC43MzA3OTU5LCAic3RlcCI6IDY3MCwgInZhbHVlIjogMC4zNjc4OTMyNDg3OTY0NjN9LCB7IndhbGxUaW1lIjogMTczMzA2ODM0NC40NjA3MDg5LCAic3RlcCI6IDY4MCwgInZhbHVlIjogMC4zOTg3MzQyMTE5MjE2OTE5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNTMuNzE2NDg5OCwgInN0ZXAiOiA2OTAsICJ2YWx1ZSI6IDAuMzU1NjI2NzAyMzA4NjU0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzYyLjA1NzQ4MiwgInN0ZXAiOiA3MDAsICJ2YWx1ZSI6IDAuMzM0OTg4NTA0NjQ4MjA4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzcxLjEwMzU5OCwgInN0ZXAiOiA3MTAsICJ2YWx1ZSI6IDAuNTMxNDI5OTQ2NDIyNTc2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzgwLjUzMjcyLCAic3RlcCI6IDcyMCwgInZhbHVlIjogMC40MTY0ODcyMTY5NDk0NjI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzOTAuMDg2MjkwOCwgInN0ZXAiOiA3MzAsICJ2YWx1ZSI6IDAuMzEyNzYxMDM4NTQxNzkzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Mzk4LjcyMDU4MywgInN0ZXAiOiA3NDAsICJ2YWx1ZSI6IDAuNDY5MjcyMDc3MDgzNTg3NjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODQwNy4xMjM1ODE2LCAic3RlcCI6IDc1MCwgInZhbHVlIjogMC40MDkzMDMzNjcxMzc5MDg5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDIzLjA2OTk1MjcsICJzdGVwIjogNzYwLCAidmFsdWUiOiAwLjQwOTAxMzkyNjk4Mjg3OTY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MzEuNDA0OTI5OSwgInN0ZXAiOiA3NzAsICJ2YWx1ZSI6IDAuMzMyNDAyOTE0NzYyNDk2OTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ0MC40MjQ1NDE1LCAic3RlcCI6IDc4MCwgInZhbHVlIjogMC4zNTM5NDc0MDEwNDY3NTI5M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDQ5LjAwNjA0MywgInN0ZXAiOiA3OTAsICJ2YWx1ZSI6IDAuMzc0OTcwNDY1ODk4NTEzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDU3LjYzNjcyMDIsICJzdGVwIjogODAwLCAidmFsdWUiOiAwLjM5ODA1MDgxNDg2NzAxOTY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NjcuMDQ2ODgzMywgInN0ZXAiOiA4MTAsICJ2YWx1ZSI6IDAuMzc4MDU3Nzc3ODgxNjIyM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDc1LjYyMDEwMDUsICJzdGVwIjogODIwLCAidmFsdWUiOiAwLjM3MzY4MjYxODE0MTE3NDN9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ4NC45Nzg1NiwgInN0ZXAiOiA4MzAsICJ2YWx1ZSI6IDAuMzczODQ1MDcwNjAwNTA5NjR9LCB7IndhbGxUaW1lIjogMTczMzA2ODUwMC43MzEyODk0LCAic3RlcCI6IDg0MCwgInZhbHVlIjogMC4zOTkzNDQ1MDM4Nzk1NDcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MDkuMzA3NTQ5NywgInN0ZXAiOiA4NTAsICJ2YWx1ZSI6IDAuNDE4MDk3MjU3NjE0MTM1NzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODUxOS4wMjE5NTA1LCAic3RlcCI6IDg2MCwgInZhbHVlIjogMC40MTUwMDA3MzY3MTM0MDk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MjcuNDk4MzUwNCwgInN0ZXAiOiA4NzAsICJ2YWx1ZSI6IDAuMzMyMzIzNDMxOTY4Njg4OTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODUzNi45MjAwODA0LCAic3RlcCI6IDg4MCwgInZhbHVlIjogMC40ODcyODk1NDc5MjAyMjcwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTQ0LjkwODYxNzUsICJzdGVwIjogODkwLCAidmFsdWUiOiAwLjM1ODQyMjk5NDYxMzY0NzQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NTMuNTc4ODU4OSwgInN0ZXAiOiA5MDAsICJ2YWx1ZSI6IDAuMzczOTAxMDY5MTY0Mjc2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTYyLjY4NTg5NDUsICJzdGVwIjogOTEwLCAidmFsdWUiOiAwLjQxNjk5NzU1MTkxODAyOTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODU3MS4yNDYyNjYsICJzdGVwIjogOTIwLCAidmFsdWUiOiAwLjMzNzg4NTIwMDk3NzMyNTQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1ODQuNzc2MjQ3MywgInN0ZXAiOiA5MzAsICJ2YWx1ZSI6IDAuMzg3NDYyOTczNTk0NjY1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTkzLjc3MjUzMTMsICJzdGVwIjogOTQwLCAidmFsdWUiOiAwLjM3MTEyODQzOTkwMzI1OTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODYwMi43NjY3NDEzLCAic3RlcCI6IDk1MCwgInZhbHVlIjogMC40NTQ1MzY5NzQ0MzAwODQyM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjExLjA0MDc5LCAic3RlcCI6IDk2MCwgInZhbHVlIjogMC4yODMyMDAyNjM5NzcwNTA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MjAuMjI3NjE4LCAic3RlcCI6IDk3MCwgInZhbHVlIjogMC4zMzQyNTc0NTM2ODAwMzg0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjI4Ljg0MjYwOTYsICJzdGVwIjogOTgwLCAidmFsdWUiOiAwLjQwNTA0MzAwNTk0MzI5ODM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MzcuNjMxNTAyNiwgInN0ZXAiOiA5OTAsICJ2YWx1ZSI6IDAuMzM0Nzc0NDA0NzY0MTc1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjQ2LjY3NDEzNjYsICJzdGVwIjogMTAwMCwgInZhbHVlIjogMC4zOTI3MDkxMzYwMDkyMTYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2NjIuNzU3OTAyNCwgInN0ZXAiOiAxMDEwLCAidmFsdWUiOiAwLjI1MjYwMjk2NDYzOTY2Mzd9LCB7IndhbGxUaW1lIjogMTczMzA2ODY3Mi4wNTU2MTgsICJzdGVwIjogMTAyMCwgInZhbHVlIjogMC4zMDEwNzIxMjA2NjY1MDM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2ODAuNTY0MjgxLCAic3RlcCI6IDEwMzAsICJ2YWx1ZSI6IDAuMzI1OTc3NDc0NDUxMDY1MDZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODY5MC4xODcxNTA1LCAic3RlcCI6IDEwNDAsICJ2YWx1ZSI6IDAuMzU4ODA5Njc5NzQ2NjI3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Njk4Ljg0OTI5MiwgInN0ZXAiOiAxMDUwLCAidmFsdWUiOiAwLjM0MDAyMzIxOTU4NTQxODd9LCB7IndhbGxUaW1lIjogMTczMzA2ODcwNy43NDQ3MDU3LCAic3RlcCI6IDEwNjAsICJ2YWx1ZSI6IDAuNzY1MzgxOTkxODYzMjUwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzE3LjM0NTkyNDEsICJzdGVwIjogMTA3MCwgInZhbHVlIjogMC4zNDI3NzU4NTE0ODgxMTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MjYuMzYyNjY5LCAic3RlcCI6IDEwODAsICJ2YWx1ZSI6IDAuNDE2MzQyNDY3MDY5NjI1ODV9LCB7IndhbGxUaW1lIjogMTczMzA2ODczNS4yNTMxMTI2LCAic3RlcCI6IDEwOTAsICJ2YWx1ZSI6IDAuNDQ4NDg1NzMyMDc4NTUyMjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODc0OS41NDkyNDczLCAic3RlcCI6IDExMDAsICJ2YWx1ZSI6IDAuMzU3MDAyNDM3MTE0NzE1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzU4LjM3NjY5NywgInN0ZXAiOiAxMTEwLCAidmFsdWUiOiAwLjQ0NzAxNTEwNjY3ODAwOTAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3NjcuMDA1MTQyLCAic3RlcCI6IDExMjAsICJ2YWx1ZSI6IDAuNTI1NzQwMzg1MDU1NTQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3NzYuNjIwMTQ4NCwgInN0ZXAiOiAxMTMwLCAidmFsdWUiOiAwLjQ1OTg0ODQ5MzMzNzYzMTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODc4NS40MDI0MjkzLCAic3RlcCI6IDExNDAsICJ2YWx1ZSI6IDAuMjQzNTkzODI2ODg5OTkxNzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODc5NC4yODAzMjU3LCAic3RlcCI6IDExNTAsICJ2YWx1ZSI6IDAuNDA1NzE3NzYwMzI0NDc4MTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODgwMi42OTg2MzcsICJzdGVwIjogMTE2MCwgInZhbHVlIjogMC4yNzg2ODIwODI4OTE0NjQyM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODExLjU1MjgzMSwgInN0ZXAiOiAxMTcwLCAidmFsdWUiOiAwLjM4Nzk1ODc2NTAyOTkwNzJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODgyNC45NjcwNTM0LCAic3RlcCI6IDExODAsICJ2YWx1ZSI6IDAuMjI2NjM2MjMwOTQ1NTg3MTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODgzNC4zNzg0OTIsICJzdGVwIjogMTE5MCwgInZhbHVlIjogMC4zNjk2NzM3Mjg5NDI4NzExfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NDMuNTE3NDU3MiwgInN0ZXAiOiAxMjAwLCAidmFsdWUiOiAwLjQ1MTY2Mjk1NzY2ODMwNDQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NTIuMjI5NzgwNCwgInN0ZXAiOiAxMjEwLCAidmFsdWUiOiAwLjM0NzM3NzQ3OTA3NjM4NTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODg2MS4xMTgyNTIsICJzdGVwIjogMTIyMCwgInZhbHVlIjogMC4zNjIxODQ5NDE3Njg2NDYyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODcwLjA1NzE5NTcsICJzdGVwIjogMTIzMCwgInZhbHVlIjogMC42MzA5MjU1MzYxNTU3MDA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NzguNzIxNzE2LCAic3RlcCI6IDEyNDAsICJ2YWx1ZSI6IDAuNDIzNTUwNDg2NTY0NjM2MjN9LCB7IndhbGxUaW1lIjogMTczMzA2ODg4Ny43Mzk0MTYxLCAic3RlcCI6IDEyNTAsICJ2YWx1ZSI6IDAuMzM5MTA2OTE3MzgxMjg2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTAzLjE2ODA2OCwgInN0ZXAiOiAxMjYwLCAidmFsdWUiOiAwLjQ4Mjk5MjA4MjgzNDI0Mzh9LCB7IndhbGxUaW1lIjogMTczMzA2ODkxMi40MTU3MTQ3LCAic3RlcCI6IDEyNzAsICJ2YWx1ZSI6IDAuMjc1NjQ5MDExMTM1MTAxM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTIxLjQ3NDIzMiwgInN0ZXAiOiAxMjgwLCAidmFsdWUiOiAwLjM0NTkyNTIxMTkwNjQzMzF9LCB7IndhbGxUaW1lIjogMTczMzA2ODkyOS43NDc5ODYsICJzdGVwIjogMTI5MCwgInZhbHVlIjogMC4zODE1NDY3OTUzNjgxOTQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MzkuNTAyNjY1LCAic3RlcCI6IDEzMDAsICJ2YWx1ZSI6IDAuMzM2NDg0OTM4ODU5OTM5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTQ4LjkyODkwMiwgInN0ZXAiOiAxMzEwLCAidmFsdWUiOiAwLjM5NTE5NzUxMDcxOTI5OTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODk1Ny4yMzU3NDQ1LCAic3RlcCI6IDEzMjAsICJ2YWx1ZSI6IDAuNDgzMzI2NzkyNzE2OTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODk2Ni4wNzgzNDc3LCAic3RlcCI6IDEzMzAsICJ2YWx1ZSI6IDAuMjg0MDYwMDYwOTc3OTM1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTc1LjU2NjQ3NzMsICJzdGVwIjogMTM0MCwgInZhbHVlIjogMC41MjkyMjUzNDk0MjYyNjk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5ODkuNzk5MjM1LCAic3RlcCI6IDEzNTAsICJ2YWx1ZSI6IDAuMzg2NjI2OTg4NjQ5MzY4M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTk4LjI4Mjc5MTksICJzdGVwIjogMTM2MCwgInZhbHVlIjogMC4yOTIwMjg4NDQzNTY1MzY4N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDA3LjE0OTU1ODgsICJzdGVwIjogMTM3MCwgInZhbHVlIjogMC4zNTQzNTA2ODYwNzMzMDMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwMTUuOTIyMzQwNCwgInN0ZXAiOiAxMzgwLCAidmFsdWUiOiAwLjIwMjYwMjkyMjkxNjQxMjM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwMjUuMzA0NTI4NywgInN0ZXAiOiAxMzkwLCAidmFsdWUiOiAwLjM2NTc2NzQxOTMzODIyNjN9LCB7IndhbGxUaW1lIjogMTczMzA2OTAzNC40ODI3MjM1LCAic3RlcCI6IDE0MDAsICJ2YWx1ZSI6IDAuMjcwNjkxNDU0NDEwNTUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNDIuNzk0MjU5OCwgInN0ZXAiOiAxNDEwLCAidmFsdWUiOiAwLjQyODg5NTgzMTEwODA5MzI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNTIuMTM4NzgwOCwgInN0ZXAiOiAxNDIwLCAidmFsdWUiOiAwLjI1OTcxNjY1OTc4NDMxN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDY1LjAwMjg0NzQsICJzdGVwIjogMTQzMCwgInZhbHVlIjogMC4zMDEzOTA0MDk0Njk2MDQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNzQuNTI1MTcyMiwgInN0ZXAiOiAxNDQwLCAidmFsdWUiOiAwLjMyMTAwMDA5OTE4MjEyODl9LCB7IndhbGxUaW1lIjogMTczMzA2OTA4My43ODM3NzQ2LCAic3RlcCI6IDE0NTAsICJ2YWx1ZSI6IDAuMzgzMTg1NDQ2MjYyMzU5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDkyLjI1OTIxNDIsICJzdGVwIjogMTQ2MCwgInZhbHVlIjogMC4yOTY1MzQ4MDY0ODk5NDQ0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTAxLjAzMDc2NDMsICJzdGVwIjogMTQ3MCwgInZhbHVlIjogMC4zNDU0NjcwMzEwMDIwNDQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMDkuOTA2NTcxNiwgInN0ZXAiOiAxNDgwLCAidmFsdWUiOiAwLjMwMzE2NzgxOTk3NjgwNjY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMTkuMTE4OTk3NiwgInN0ZXAiOiAxNDkwLCAidmFsdWUiOiAwLjIzMzkyOTM4MDc3NDQ5Nzk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMjguNDE2MjY0MywgInN0ZXAiOiAxNTAwLCAidmFsdWUiOiAwLjMyMzU3NzQwNDAyMjIxNjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTEzNy42MDY5MDQsICJzdGVwIjogMTUxMCwgInZhbHVlIjogMC40NTgwODQ5NzA3MTI2NjE3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTUwLjU0MzU3NDMsICJzdGVwIjogMTUyMCwgInZhbHVlIjogMC4zOTQ4MTMwMDExNTU4NTMyN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTU5Ljc1NzE0NywgInN0ZXAiOiAxNTMwLCAidmFsdWUiOiAwLjQ0MDA2MzQ0Njc2MDE3NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTE2OC4xNzAzNzQ0LCAic3RlcCI6IDE1NDAsICJ2YWx1ZSI6IDAuMjA0NDQyNzA5Njg0MzcxOTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTE3Ni44NDEwNTMyLCAic3RlcCI6IDE1NTAsICJ2YWx1ZSI6IDAuNDMzNzI3NzcxMDQzNzc3NDd9LCB7IndhbGxUaW1lIjogMTczMzA2OTE4NS44OTIzNjUyLCAic3RlcCI6IDE1NjAsICJ2YWx1ZSI6IDAuMjMzNjI2Njc4NTg2MDA2MTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTE5NC45MjQwNjY4LCAic3RlcCI6IDE1NzAsICJ2YWx1ZSI6IDAuMzc5MzM1NDAzNDQyMzgyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjAzLjkxMjUyNzMsICJzdGVwIjogMTU4MCwgInZhbHVlIjogMC4zMTMzNDk0ODUzOTczMzg4N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjEyLjcxNTY3MTUsICJzdGVwIjogMTU5MCwgInZhbHVlIjogMC4yNjI4MzgxODQ4MzM1MjY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMjUuNTMzOTUzLCAic3RlcCI6IDE2MDAsICJ2YWx1ZSI6IDAuMjg5MzMzNDMyOTEyODI2NTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTIzNS40NjM5NTMzLCAic3RlcCI6IDE2MTAsICJ2YWx1ZSI6IDAuNDQyMjM5MTY1MzA2MDkxM30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjQ0LjYyOTcwNjQsICJzdGVwIjogMTYyMCwgInZhbHVlIjogMC40OTY4NTIyMTkxMDQ3NjY4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjU0LjI3MTcxNSwgInN0ZXAiOiAxNjMwLCAidmFsdWUiOiAwLjMzNjg2NTg0MjM0MjM3Njd9LCB7IndhbGxUaW1lIjogMTczMzA2OTI2My4wMDUzODMsICJzdGVwIjogMTY0MCwgInZhbHVlIjogMC4yNTk5MDM0MzA5Mzg3MjA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNzEuODY2Nzg0OCwgInN0ZXAiOiAxNjUwLCAidmFsdWUiOiAwLjQzODk0ODMwMzQ2MTA3NDgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyODAuNTA5OTg3NiwgInN0ZXAiOiAxNjYwLCAidmFsdWUiOiAwLjI3NjgwOTk2MDYwMzcxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Mjg5LjY3OTgxMzYsICJzdGVwIjogMTY3MCwgInZhbHVlIjogMC4zNzc1OTU0MjQ2NTIwOTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMDMuNjA5MzI2NCwgInN0ZXAiOiAxNjgwLCAidmFsdWUiOiAwLjQ4ODIxNDgyMDYyMzM5Nzh9LCB7IndhbGxUaW1lIjogMTczMzA2OTMxMi40Nzk2NzM0LCAic3RlcCI6IDE2OTAsICJ2YWx1ZSI6IDAuMzg3NzY4NTY2NjA4NDI4OTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTMyMS44Mzg2MzMzLCAic3RlcCI6IDE3MDAsICJ2YWx1ZSI6IDAuNDY0NDYxMTQ3Nzg1MTg2Nzd9LCB7IndhbGxUaW1lIjogMTczMzA2OTMzMC4zNDgwNzgzLCAic3RlcCI6IDE3MTAsICJ2YWx1ZSI6IDAuMjk3NDk3NDgxMTA3NzExOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzM5LjI0NTIyNywgInN0ZXAiOiAxNzIwLCAidmFsdWUiOiAwLjIzNDEwNTY3NjQxMjU4MjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTM0Ni44NTcyMTMsICJzdGVwIjogMTczMCwgInZhbHVlIjogMC4yNDYxMDc1MDM3NzE3ODE5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzU1LjY1MzAwMDQsICJzdGVwIjogMTc0MCwgInZhbHVlIjogMC40NTc4NzQyOTgwOTU3MDMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNjQuNTEyMDk2NCwgInN0ZXAiOiAxNzUwLCAidmFsdWUiOiAwLjM1ODI3NTc0MTMzODcyOTg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNzMuNzM4Njk0LCAic3RlcCI6IDE3NjAsICJ2YWx1ZSI6IDAuMzIwNzcwNDEyNjgzNDg2OTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTM4Ny41NDExMjI3LCAic3RlcCI6IDE3NzAsICJ2YWx1ZSI6IDAuMzA4NjA5OTMyNjYxMDU2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Mzk2LjQ2NzEzNDUsICJzdGVwIjogMTc4MCwgInZhbHVlIjogMC4yNjQwNDA0NDAzMjA5Njg2M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDA1Ljk5NjM2MDgsICJzdGVwIjogMTc5MCwgInZhbHVlIjogMC4yMDM1OTI0OTQxMzAxMzQ1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDE1LjA1Mzg0NzMsICJzdGVwIjogMTgwMCwgInZhbHVlIjogMC4yNTIwNTMwMjIzODQ2NDM1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDIzLjkwNzU1OCwgInN0ZXAiOiAxODEwLCAidmFsdWUiOiAwLjIxMDY3ODE0NTI4OTQyMTA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MzIuNTMxMTg1MiwgInN0ZXAiOiAxODIwLCAidmFsdWUiOiAwLjQxNTU5MDg4MjMwMTMzMDU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NDEuMjE3NDMzNSwgInN0ZXAiOiAxODMwLCAidmFsdWUiOiAwLjMzNjM3Nzg1OTExNTYwMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ1MC4wODczNzc1LCAic3RlcCI6IDE4NDAsICJ2YWx1ZSI6IDAuMjQxMDc0MjM0MjQ3MjA3NjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ2My4xMDY3MjksICJzdGVwIjogMTg1MCwgInZhbHVlIjogMC4yMzU1MDM4OTcwNzA4ODQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NzEuNTcyNjgwNSwgInN0ZXAiOiAxODYwLCAidmFsdWUiOiAwLjI2MjA1ODg4MzkwNTQxMDc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0ODAuNDk3OTIxMiwgInN0ZXAiOiAxODcwLCAidmFsdWUiOiAwLjUxOTAxMzUyNDA1NTQ4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDg5LjM4NDU0OTQsICJzdGVwIjogMTg4MCwgInZhbHVlIjogMC40MjQwNjgxMjMxMDIxODgxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0OTcuOTc2Mzg0NCwgInN0ZXAiOiAxODkwLCAidmFsdWUiOiAwLjQyMTQ2MTQ5Mjc3Njg3MDd9LCB7IndhbGxUaW1lIjogMTczMzA2OTUwNi43OTM5MzgyLCAic3RlcCI6IDE5MDAsICJ2YWx1ZSI6IDAuMzIwNTk3NzY3ODI5ODk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MTUuODI0Mjk4MSwgInN0ZXAiOiAxOTEwLCAidmFsdWUiOiAwLjI0MzI5MTQ2NzQyODIwNzR9LCB7IndhbGxUaW1lIjogMTczMzA2OTUyNC42MzYxNTQsICJzdGVwIjogMTkyMCwgInZhbHVlIjogMC4yODk0MTE3MjM2MTM3Mzl9LCB7IndhbGxUaW1lIjogMTczMzA2OTUzMy41NDE3NDY0LCAic3RlcCI6IDE5MzAsICJ2YWx1ZSI6IDAuMjIwODAyOTMyOTc3Njc2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTUwLjQ3NzU2NjIsICJzdGVwIjogMTk0MCwgInZhbHVlIjogMC4zNzI3ODE4NzI3NDkzMjg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NTguODI3NTYsICJzdGVwIjogMTk1MCwgInZhbHVlIjogMC4yNjI3NTA1NjYwMDU3MDY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NjcuNzU3NDkyLCAic3RlcCI6IDE5NjAsICJ2YWx1ZSI6IDAuMjYxMjg4NTIzNjc0MDExMjN9LCB7IndhbGxUaW1lIjogMTczMzA2OTU3Ni4zNDQ3ODk1LCAic3RlcCI6IDE5NzAsICJ2YWx1ZSI6IDAuMjYzMzQxMzA3NjQwMDc1N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTg1LjUyODgyNCwgInN0ZXAiOiAxOTgwLCAidmFsdWUiOiAwLjQwMzA0MjU1NDg1NTM0Njd9LCB7IndhbGxUaW1lIjogMTczMzA2OTU5NC4zNDk4MzEzLCAic3RlcCI6IDE5OTAsICJ2YWx1ZSI6IDAuMzg2MjA1NTU0MDA4NDgzOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjAyLjQwMTIzMTgsICJzdGVwIjogMjAwMCwgInZhbHVlIjogMC41NzI3ODgzNTc3MzQ2ODAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MTAuMjQ5NTU3NywgInN0ZXAiOiAyMDEwLCAidmFsdWUiOiAwLjQ3MjE3ODc1NzE5MDcwNDM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MjYuNjg2NDAxOCwgInN0ZXAiOiAyMDIwLCAidmFsdWUiOiAwLjQwODM5NjA5NTAzNzQ2MDN9LCB7IndhbGxUaW1lIjogMTczMzA2OTYzNS4wMzA1MDE4LCAic3RlcCI6IDIwMzAsICJ2YWx1ZSI6IDAuMjcwMTY2ODE0MzI3MjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTY0My44MjIxMzAyLCAic3RlcCI6IDIwNDAsICJ2YWx1ZSI6IDAuMjU0Mjg5MjA5ODQyNjgxOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjUyLjE5NDA1MywgInN0ZXAiOiAyMDUwLCAidmFsdWUiOiAwLjI5OTU3ODY2NjY4NzAxMTd9LCB7IndhbGxUaW1lIjogMTczMzA2OTY2MC40NTMwMjMsICJzdGVwIjogMjA2MCwgInZhbHVlIjogMC40MjUzNjMxODMwMjE1NDU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NjkuNTkxNjMwNywgInN0ZXAiOiAyMDcwLCAidmFsdWUiOiAwLjMzNzAwMzg4NjY5OTY3NjV9LCB7IndhbGxUaW1lIjogMTczMzA2OTY3OC43Nzc5NTEyLCAic3RlcCI6IDIwODAsICJ2YWx1ZSI6IDAuNTI3OTc4ODM3NDkwMDgxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Njg2Ljk0NDM2MTQsICJzdGVwIjogMjA5MCwgInZhbHVlIjogMC40MDIyOTI3NTgyMjYzOTQ2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzAwLjYwMTU3OTIsICJzdGVwIjogMjEwMCwgInZhbHVlIjogMC4zMjYzMDQxOTczMTE0MDEzN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzA4LjcyNTkwOTIsICJzdGVwIjogMjExMCwgInZhbHVlIjogMC4yNDAzNzcwMzg3MTcyNjk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MTcuNDQ3ODM2NCwgInN0ZXAiOiAyMTIwLCAidmFsdWUiOiAwLjI5OTMwNjc4MDA5OTg2ODh9LCB7IndhbGxUaW1lIjogMTczMzA2OTcyNi4xNDA3NjExLCAic3RlcCI6IDIxMzAsICJ2YWx1ZSI6IDAuMzA4NTI5NDk2MTkyOTMyMTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTczNS4wMzc2NTYzLCAic3RlcCI6IDIxNDAsICJ2YWx1ZSI6IDAuMzM2NDM1MDc5NTc0NTg0OTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTc0My4zMDU2MjMzLCAic3RlcCI6IDIxNTAsICJ2YWx1ZSI6IDAuMjc4MTI5MjIwMDA4ODUwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzUyLjUwMDM3ODYsICJzdGVwIjogMjE2MCwgInZhbHVlIjogMC4zMjYwOTAzMzU4NDU5NDcyN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzYxLjQ1MDUxNTMsICJzdGVwIjogMjE3MCwgInZhbHVlIjogMC4zMTkwNDM2OTU5MjY2NjYyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzcwLjQzMjcyODMsICJzdGVwIjogMjE4MCwgInZhbHVlIjogMC4zOTYzMzYwNDg4NDE0NzY0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Nzg0LjM2MzAxNjYsICJzdGVwIjogMjE5MCwgInZhbHVlIjogMC4zNjcwMjA4MTU2MTA4ODU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3OTMuMTIyMDEzLCAic3RlcCI6IDIyMDAsICJ2YWx1ZSI6IDAuMTc0NjYwMjY1NDQ1NzA5MjN9LCB7IndhbGxUaW1lIjogMTczMzA2OTgwMS42MzU2Mzc1LCAic3RlcCI6IDIyMTAsICJ2YWx1ZSI6IDAuMjkwOTc0MDUwNzYwMjY5MTd9LCB7IndhbGxUaW1lIjogMTczMzA2OTgxMC42MDczNTksICJzdGVwIjogMjIyMCwgInZhbHVlIjogMC40MjA0NTAwMzE3NTczNTQ3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODE5LjM0MTQyMTEsICJzdGVwIjogMjIzMCwgInZhbHVlIjogMC4yNjEwODcwNTk5NzQ2NzA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MjcuMzI1NjAwMSwgInN0ZXAiOiAyMjQwLCAidmFsdWUiOiAwLjM5MDcxODEwMjQ1NTEzOTE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MzUuODY3MzIzNCwgInN0ZXAiOiAyMjUwLCAidmFsdWUiOiAwLjI4MTE3Nzk2Nzc4Njc4ODk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NDQuMjM1MzM3NSwgInN0ZXAiOiAyMjYwLCAidmFsdWUiOiAwLjMyMDc1MDQ3NDkyOTgwOTU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NTYuNzQ4NjA2LCAic3RlcCI6IDIyNzAsICJ2YWx1ZSI6IDAuMjYyMDQ4MDA2MDU3NzM5MjZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTg2NS4yNTcwNjYyLCAic3RlcCI6IDIyODAsICJ2YWx1ZSI6IDAuMjE1NDUyNjQxMjQ4NzAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NzQuMDA0NzAxNiwgInN0ZXAiOiAyMjkwLCAidmFsdWUiOiAwLjE5NjI3MjEzNDc4MDg4Mzh9LCB7IndhbGxUaW1lIjogMTczMzA2OTg4MS43ODEwNzM4LCAic3RlcCI6IDIzMDAsICJ2YWx1ZSI6IDAuMzczMTY4NzA2ODkzOTIwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODkwLjQxMzIwMDksICJzdGVwIjogMjMxMCwgInZhbHVlIjogMC4yNTQ3NjM3MjI0MTk3Mzg3N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODk4Ljg3NjAxMywgInN0ZXAiOiAyMzIwLCAidmFsdWUiOiAwLjI3NDgyNzQyMDcxMTUxNzMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MDguMzE3MDk5LCAic3RlcCI6IDIzMzAsICJ2YWx1ZSI6IDAuMjY5NDE0NTE0MzAzMjA3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTE3LjQxNDUxMzYsICJzdGVwIjogMjM0MCwgInZhbHVlIjogMC4zNjc3NTI3NjA2NDg3Mjc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MjUuODQ5ODQyOCwgInN0ZXAiOiAyMzUwLCAidmFsdWUiOiAwLjIyOTA0ODc1ODc0NTE5MzQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MzguNzAxNjc0MiwgInN0ZXAiOiAyMzYwLCAidmFsdWUiOiAwLjM0MzU1OTUzMzM1NzYyMDI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NDcuNDI1NDc4NSwgInN0ZXAiOiAyMzcwLCAidmFsdWUiOiAwLjM3NTA4MjQzMzIyMzcyNDM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NTYuMjA1NjAxNywgInN0ZXAiOiAyMzgwLCAidmFsdWUiOiAwLjQwMzIxNzgyMjMxMzMwODd9LCB7IndhbGxUaW1lIjogMTczMzA2OTk2NC4yNzQwNTY3LCAic3RlcCI6IDIzOTAsICJ2YWx1ZSI6IDAuMjk2NjY2MjM0NzMxNjc0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTczLjMyNTM5NjMsICJzdGVwIjogMjQwMCwgInZhbHVlIjogMC4yMjk2MDg4Nzg0OTMzMDkwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTgxLjQzMTQ0MDYsICJzdGVwIjogMjQxMCwgInZhbHVlIjogMC4yNTc1NjAzNDI1NTAyNzc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5OTAuMTM4OTY4MiwgInN0ZXAiOiAyNDIwLCAidmFsdWUiOiAwLjI4Mzg4Mzg2OTY0Nzk3OTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5OTguNzk3MTg2MSwgInN0ZXAiOiAyNDMwLCAidmFsdWUiOiAwLjMwNzkwNzk5ODU2MTg1OTEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMTIuNDU1MDQ4LCAic3RlcCI6IDI0NDAsICJ2YWx1ZSI6IDAuMjc2MjYwNzMzNjA0NDMxMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDAyMS41OTgyMzkyLCAic3RlcCI6IDI0NTAsICJ2YWx1ZSI6IDAuMjQ4MDMyODA4MzAzODMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMzAuMTkwMjU5MiwgInN0ZXAiOiAyNDYwLCAidmFsdWUiOiAwLjI2MDgwNjU5MDMxODY3OTh9LCB7IndhbGxUaW1lIjogMTczMzA3MDAzOS4yMTg1NzE0LCAic3RlcCI6IDI0NzAsICJ2YWx1ZSI6IDAuMjg1Mzc4NTE1NzIwMzY3NDN9LCB7IndhbGxUaW1lIjogMTczMzA3MDA0OC4yNjgxOTU5LCAic3RlcCI6IDI0ODAsICJ2YWx1ZSI6IDAuMzYwODM5OTMzMTU2OTY3MTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDA1Ni4xNTQ5OTk1LCAic3RlcCI6IDI0OTAsICJ2YWx1ZSI6IDAuMzg5NjYzNjA2ODgyMDk1MzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDA2NC40NDk4ODAxLCAic3RlcCI6IDI1MDAsICJ2YWx1ZSI6IDAuMzU0NjA5NjA4NjUwMjA3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDcyLjU0OTI5MTgsICJzdGVwIjogMjUxMCwgInZhbHVlIjogMC4yNDgxMTc4NjQxMzE5Mjc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwODcuNjU2MTM0MSwgInN0ZXAiOiAyNTIwLCAidmFsdWUiOiAwLjI5MTQzNTY4ODczNDA1NDU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwOTUuNDQwOTUyOCwgInN0ZXAiOiAyNTMwLCAidmFsdWUiOiAwLjI2NzU0MDU0NDI3MTQ2OTF9LCB7IndhbGxUaW1lIjogMTczMzA3MDEwMy43NjgxMTU1LCAic3RlcCI6IDI1NDAsICJ2YWx1ZSI6IDAuMjQzMDY5OTYxNjY3MDYwODV9LCB7IndhbGxUaW1lIjogMTczMzA3MDExMy4wNDgzOSwgInN0ZXAiOiAyNTUwLCAidmFsdWUiOiAwLjIzOTgzODMwMjEzNTQ2NzUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMjEuMDM3MDc4NiwgInN0ZXAiOiAyNTYwLCAidmFsdWUiOiAwLjI0NTI1NjEyNTkyNjk3MTQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMjkuNTgzNTU3OCwgInN0ZXAiOiAyNTcwLCAidmFsdWUiOiAwLjMwMTI2MTY2MzQzNjg4OTY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMzguMzU5OTQwOCwgInN0ZXAiOiAyNTgwLCAidmFsdWUiOiAwLjI2NDczNTAxMzI0NjUzNjI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNDcuMDg2NTExLCAic3RlcCI6IDI1OTAsICJ2YWx1ZSI6IDAuMzQ1NTY5NDkxMzg2NDEzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTU1LjQ4NjIyODcsICJzdGVwIjogMjYwMCwgInZhbHVlIjogMC40Mzk4MzI4MzYzODk1NDE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNzIuNTc2NTEyMywgInN0ZXAiOiAyNjEwLCAidmFsdWUiOiAwLjMwODY3NDM5NTA4NDM4MTF9LCB7IndhbGxUaW1lIjogMTczMzA3MDE4MS4yMTA0NjY5LCAic3RlcCI6IDI2MjAsICJ2YWx1ZSI6IDAuMzMxNDYxMjgwNTg0MzM1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTg5LjY5MTU5NzUsICJzdGVwIjogMjYzMCwgInZhbHVlIjogMC4yNzc2MjQwMTEwMzk3MzM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxOTguMzk4MzQ3NCwgInN0ZXAiOiAyNjQwLCAidmFsdWUiOiAwLjI2OTM5OTA0Njg5Nzg4ODJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDIwNi43MDY2MDEsICJzdGVwIjogMjY1MCwgInZhbHVlIjogMC4yMTU0NzM3NzEwOTUyNzU4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjE1LjU5ODk0OTcsICJzdGVwIjogMjY2MCwgInZhbHVlIjogMC4zMzQ2MDk4MDY1Mzc2MjgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMjQuMzE0NzY2LCAic3RlcCI6IDI2NzAsICJ2YWx1ZSI6IDAuMzMyMDQ5Mzk5NjE0MzM0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjMzLjUzODU4NzgsICJzdGVwIjogMjY4MCwgInZhbHVlIjogMC4yODA1OTc1OTczNjA2MTA5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjQ2Ljc1NzM1OTMsICJzdGVwIjogMjY5MCwgInZhbHVlIjogMC4yNTkxMzE2Njk5OTgxNjg5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjU2LjAyODA2MzgsICJzdGVwIjogMjcwMCwgInZhbHVlIjogMC4zOTY3Njk5NDA4NTMxMTg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNjQuOTUwMDMwOCwgInN0ZXAiOiAyNzEwLCAidmFsdWUiOiAwLjI1NjIzMjg4NzUwNjQ4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjczLjgwMzk2MjcsICJzdGVwIjogMjcyMCwgInZhbHVlIjogMC4zNDA3NDUzMjk4NTY4NzI1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjgyLjk1ODMxMDQsICJzdGVwIjogMjczMCwgInZhbHVlIjogMC4zMDE4MzM0ODA1OTY1NDIzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjkyLjI3NzE1NzgsICJzdGVwIjogMjc0MCwgInZhbHVlIjogMC4yODkwMDIyOTkzMDg3NzY4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzAwLjMzNjAxMzMsICJzdGVwIjogMjc1MCwgInZhbHVlIjogMC4yNzc3NzI2NjUwMjM4MDM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMDkuNDExMzk0LCAic3RlcCI6IDI3NjAsICJ2YWx1ZSI6IDAuNDI5MzM3NjUwNTM3NDkwODR9LCB7IndhbGxUaW1lIjogMTczMzA3MDMxNy41MzA3MzQ4LCAic3RlcCI6IDI3NzAsICJ2YWx1ZSI6IDAuNDAzNzYxMjk3NDY0MzcwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzMwLjQzNTM5NzQsICJzdGVwIjogMjc4MCwgInZhbHVlIjogMC4zMjgxNjE0NDgyNDAyODAxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzM5LjgyMjA0MDYsICJzdGVwIjogMjc5MCwgInZhbHVlIjogMC4yNjI5MTg1MDIwOTIzNjE0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzQ3Ljk5MjQxNzYsICJzdGVwIjogMjgwMCwgInZhbHVlIjogMC4yMDMyODIyMDcyNTA1OTUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNTYuODkxMTkzNiwgInN0ZXAiOiAyODEwLCAidmFsdWUiOiAwLjI5NTc0MzU1NDgzMDU1MTE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNjUuNTc2MTM1OSwgInN0ZXAiOiAyODIwLCAidmFsdWUiOiAwLjI2ODUyNzg5NTIxMjE3MzQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNzQuMzkyMzM3NiwgInN0ZXAiOiAyODMwLCAidmFsdWUiOiAwLjI3MDk2NjExMjYxMzY3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzgyLjQyNjI3MDcsICJzdGVwIjogMjg0MCwgInZhbHVlIjogMC4zNDMxMzk0Njk2MjM1NjU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzOTAuOTQwNjEwNCwgInN0ZXAiOiAyODUwLCAidmFsdWUiOiAwLjIzODEyNzY0ODgzMDQxMzgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0MDYuNjc4MDA0MywgInN0ZXAiOiAyODYwLCAidmFsdWUiOiAwLjI1MjI1MTcxNDQ2ODAwMjN9LCB7IndhbGxUaW1lIjogMTczMzA3MDQxNS4wODg5NjU3LCAic3RlcCI6IDI4NzAsICJ2YWx1ZSI6IDAuMjQzOTgyOTg1NjE1NzMwMjl9LCB7IndhbGxUaW1lIjogMTczMzA3MDQyMi45MTkyODEyLCAic3RlcCI6IDI4ODAsICJ2YWx1ZSI6IDAuMjMxMDg0NTQwNDg2MzM1NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzMS41MzY2MjQyLCAic3RlcCI6IDI4OTAsICJ2YWx1ZSI6IDAuMjU3Mjk0NTY1NDM5MjI0MjR9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzOS45ODAxNTg2LCAic3RlcCI6IDI5MDAsICJ2YWx1ZSI6IDAuMzI4MjY5Nzc5NjgyMTU5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDQ4LjA4NDgzMTUsICJzdGVwIjogMjkxMCwgInZhbHVlIjogMC40MTQyOTUwNDc1MjE1OTEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NTcuNDIzMDMwNiwgInN0ZXAiOiAyOTIwLCAidmFsdWUiOiAwLjQ0MjQ3NzMxNTY2NDI5MTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ2Ni43MjIxMjc0LCAic3RlcCI6IDI5MzAsICJ2YWx1ZSI6IDAuMzc4MjcwNTY2NDYzNDcwNDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ3OS4zMzE4MjMzLCAic3RlcCI6IDI5NDAsICJ2YWx1ZSI6IDAuMzA3NTczOTQ0MzMwMjE1NDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ4OC43ODE0OTcyLCAic3RlcCI6IDI5NTAsICJ2YWx1ZSI6IDAuMjg5MzgxMDU3MDI0MDAyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDk3LjIyNDE1MTYsICJzdGVwIjogMjk2MCwgInZhbHVlIjogMC4zNjg4NjYzODQwMjkzODg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MDUuNjMzMTExLCAic3RlcCI6IDI5NzAsICJ2YWx1ZSI6IDAuMjM5MDk2MDAwNzkwNTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MTMuMzUzMTg0NywgInN0ZXAiOiAyOTgwLCAidmFsdWUiOiAwLjIwMzc1ODUwNzk2Njk5NTI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MjIuMzAwNDE0MywgInN0ZXAiOiAyOTkwLCAidmFsdWUiOiAwLjM2MzYyOTcyODU1NTY3OTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDUzMC4yMTE5Njg3LCAic3RlcCI6IDMwMDAsICJ2YWx1ZSI6IDAuMjAyNzgyNDY3MDA3NjM3MDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDUzOC4yOTkyODQyLCAic3RlcCI6IDMwMTAsICJ2YWx1ZSI6IDAuMzAzNjYxNTg0ODU0MTI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NDcuMzk5NTM1MiwgInN0ZXAiOiAzMDIwLCAidmFsdWUiOiAwLjI0OTY4MzIzMTExNTM0MTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDU2NC4wNTAwMzgzLCAic3RlcCI6IDMwMzAsICJ2YWx1ZSI6IDAuMjM3NDM1MTYyMDY3NDEzMzN9LCB7IndhbGxUaW1lIjogMTczMzA3MDU3Mi4zNjg5Njc4LCAic3RlcCI6IDMwNDAsICJ2YWx1ZSI6IDAuMjM3MTU5OTk3MjI0ODA3NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDU4MC42NzAxMTYsICJzdGVwIjogMzA1MCwgInZhbHVlIjogMC4yNzQ5NzgyODAwNjc0NDM4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTg4LjY1MjQ0NTgsICJzdGVwIjogMzA2MCwgInZhbHVlIjogMC4yNzQyMzQxNDU4Nzk3NDU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1OTcuNDE5OTI3MSwgInN0ZXAiOiAzMDcwLCAidmFsdWUiOiAwLjIzOTI5NjA0ODg3OTYyMzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDYwNi4xMzY0MDksICJzdGVwIjogMzA4MCwgInZhbHVlIjogMC4zNzIyOTIyODAxOTcxNDM1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjE0LjQzODY3MjMsICJzdGVwIjogMzA5MCwgInZhbHVlIjogMC4zMzk2NDUxNDczMjM2MDg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MjMuOTk5MDYyOCwgInN0ZXAiOiAzMTAwLCAidmFsdWUiOiAwLjI4NDI5MDY3MTM0ODU3MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MDYzNy4yNTEyNDIsICJzdGVwIjogMzExMCwgInZhbHVlIjogMC4zNDMzMjY2NTgwMTA0ODI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NDUuNjgxMTgxLCAic3RlcCI6IDMxMjAsICJ2YWx1ZSI6IDAuMjk2MjA5MjQ1OTIwMTgxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjU0LjI2ODgyMzQsICJzdGVwIjogMzEzMCwgInZhbHVlIjogMC4yNDE5OTUzOTQyMjk4ODg5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjYzLjMxOTU1NywgInN0ZXAiOiAzMTQwLCAidmFsdWUiOiAwLjI1MTUyMzcwMzMzNjcxNTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDY3MS4xMTYzNTM1LCAic3RlcCI6IDMxNTAsICJ2YWx1ZSI6IDAuMzQwNTAyODU4MTYxOTI2Mjd9LCB7IndhbGxUaW1lIjogMTczMzA3MDY3OS43NjM4NjUyLCAic3RlcCI6IDMxNjAsICJ2YWx1ZSI6IDAuMzcyMTgyMDcxMjA4OTUzODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDY4Ny44NDM0NDYzLCAic3RlcCI6IDMxNzAsICJ2YWx1ZSI6IDAuMjU0NzA1NTc4MDg4NzYwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjk1Ljg1NDEyNywgInN0ZXAiOiAzMTgwLCAidmFsdWUiOiAwLjMyMzE4NTU5Mjg4OTc4NTc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MDQuNjIwNzQxOCwgInN0ZXAiOiAzMTkwLCAidmFsdWUiOiAwLjI1NDI2MDIxMjE4Mjk5ODY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MTcuMTA3MTUsICJzdGVwIjogMzIwMCwgInZhbHVlIjogMC4xOTk0NDQ4OTAwMjIyNzc4M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzI2LjA5Njk2NDgsICJzdGVwIjogMzIxMCwgInZhbHVlIjogMC4yOTUyNTAxNzczODM0MjI4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzM0Ljc3NTAxNTYsICJzdGVwIjogMzIyMCwgInZhbHVlIjogMC4xOTA2MjEzMTY0MzI5NTI4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzQ0LjQxMDYyNSwgInN0ZXAiOiAzMjMwLCAidmFsdWUiOiAwLjI4MDM2MzI5MTUwMTk5ODl9LCB7IndhbGxUaW1lIjogMTczMzA3MDc1Mi40OTk5MTU0LCAic3RlcCI6IDMyNDAsICJ2YWx1ZSI6IDAuNDQwMjQ0NjQ0ODgwMjk0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzYxLjcxOTQxNSwgInN0ZXAiOiAzMjUwLCAidmFsdWUiOiAwLjM5MTI2MTg0NTgyNzEwMjY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NzAuMzc0ODY3MiwgInN0ZXAiOiAzMjYwLCAidmFsdWUiOiAwLjI3MDc2ODI4NDc5NzY2ODQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NzkuNzI4MzUxLCAic3RlcCI6IDMyNzAsICJ2YWx1ZSI6IDAuMjU3OTYyNjczOTAyNTExNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzkzLjY3Njc1MjgsICJzdGVwIjogMzI4MCwgInZhbHVlIjogMC4yNDAwMzUzMjUyODg3NzI1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODAxLjg5ODMzMzUsICJzdGVwIjogMzI5MCwgInZhbHVlIjogMC4zODc5NTM4NDc2NDY3MTMyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODEwLjE1OTM2MTEsICJzdGVwIjogMzMwMCwgInZhbHVlIjogMC4zNDU4NzA1ODQyNDk0OTY0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODE4LjcyNDgwMDMsICJzdGVwIjogMzMxMCwgInZhbHVlIjogMC4xODM1MDEzNjI4MDA1OTgxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODI3LjAwNTE2MjIsICJzdGVwIjogMzMyMCwgInZhbHVlIjogMC4yMjg2OTQ5MTU3NzE0ODQzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODM1LjU3MjYyLCAic3RlcCI6IDMzMzAsICJ2YWx1ZSI6IDAuMjcyOTY2NTYzNzAxNjI5NjR9LCB7IndhbGxUaW1lIjogMTczMzA3MDg0My45NzI3MjU0LCAic3RlcCI6IDMzNDAsICJ2YWx1ZSI6IDAuNDA1MDgxNzc4NzY0NzI0NzN9LCB7IndhbGxUaW1lIjogMTczMzA3MDg1My4wODk5MjU1LCAic3RlcCI6IDMzNTAsICJ2YWx1ZSI6IDAuMzIwMDgzOTE2MTg3Mjg2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODY1LjQxNzgwODMsICJzdGVwIjogMzM2MCwgInZhbHVlIjogMC4yMTE0NzQ0NzgyNDQ3ODE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NzMuNjYwMDAzMiwgInN0ZXAiOiAzMzcwLCAidmFsdWUiOiAwLjI1OTc1NDA2MTY5ODkxMzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDg4My4zMzQzNDQxLCAic3RlcCI6IDMzODAsICJ2YWx1ZSI6IDAuMjM5MjIwNzA4NjA4NjI3MzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDg5Mi4zNzUzNjA3LCAic3RlcCI6IDMzOTAsICJ2YWx1ZSI6IDAuMjcyMTg0OTA4MzkwMDQ1MTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDkwMC43MjA3MjM2LCAic3RlcCI6IDM0MDAsICJ2YWx1ZSI6IDAuMzE2NjMyOTg2MDY4NzI1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTA4LjUwMjUxMywgInN0ZXAiOiAzNDEwLCAidmFsdWUiOiAwLjI3OTY5MjgyODY1NTI0Mjl9LCB7IndhbGxUaW1lIjogMTczMzA3MDkxNi42NTQxNDg2LCAic3RlcCI6IDM0MjAsICJ2YWx1ZSI6IDAuMzczNzY2MzAzMDYyNDM4OTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDkyNS4yMDcxMDY4LCAic3RlcCI6IDM0MzAsICJ2YWx1ZSI6IDAuMjU3OTc0Mzg2MjE1MjA5OTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDkzMy44MDg2MTksICJzdGVwIjogMzQ0MCwgInZhbHVlIjogMC4yMTQwMjY4MDg3Mzg3MDg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NDcuNDc4MTE5MSwgInN0ZXAiOiAzNDUwLCAidmFsdWUiOiAwLjI0MDUwODE2ODkzNTc3NTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NTYuMTg1NTgyNiwgInN0ZXAiOiAzNDYwLCAidmFsdWUiOiAwLjI0NzYxOTA5MjQ2NDQ0NzAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NjQuMjY0NjYwMSwgInN0ZXAiOiAzNDcwLCAidmFsdWUiOiAwLjI2MjY1ODU5NjAzODgxODM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NzIuMzg0NDM3MywgInN0ZXAiOiAzNDgwLCAidmFsdWUiOiAwLjI3MDk1NzUyOTU0NDgzMDN9LCB7IndhbGxUaW1lIjogMTczMzA3MDk4MC42NDU0Njg1LCAic3RlcCI6IDM0OTAsICJ2YWx1ZSI6IDAuNDYwNzk1NDMyMzI5MTc3ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDk4OS42ODYwOTQzLCAic3RlcCI6IDM1MDAsICJ2YWx1ZSI6IDAuMjQzODczODA0ODA3NjYyOTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDk5Ny43ODY4ODk4LCAic3RlcCI6IDM1MTAsICJ2YWx1ZSI6IDAuMjM1MjY5MjMzNTg0NDA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMDYuMjY5NzY2NiwgInN0ZXAiOiAzNTIwLCAidmFsdWUiOiAwLjMyMjg5NDE4NTc4MTQ3ODl9LCB7IndhbGxUaW1lIjogMTczMzA3MTAxOC44OTQ0MTE4LCAic3RlcCI6IDM1MzAsICJ2YWx1ZSI6IDAuMjQyMTIyMDk4ODAzNTIwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDI3LjE5NTUwNywgInN0ZXAiOiAzNTQwLCAidmFsdWUiOiAwLjE3NTUxNjI3NzU1MTY1MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDM1LjMxODkzMzUsICJzdGVwIjogMzU1MCwgInZhbHVlIjogMC4yNjIzMDc3NjMwOTk2NzA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNDMuNzQ0MTQxMywgInN0ZXAiOiAzNTYwLCAidmFsdWUiOiAwLjIyNTQ2MzcxODE3NTg4ODA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNTEuODcwNTQzLCAic3RlcCI6IDM1NzAsICJ2YWx1ZSI6IDAuMjkzNjA0NzkxMTY0Mzk4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDYwLjQ5NDUyMDQsICJzdGVwIjogMzU4MCwgInZhbHVlIjogMC4yNDk0MzMyNDkyMzUxNTMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNjguODc3ODY0NiwgInN0ZXAiOiAzNTkwLCAidmFsdWUiOiAwLjI1NjQ1MDE0NjQzNjY5MTN9LCB7IndhbGxUaW1lIjogMTczMzA3MTA3Ny43MTE0MDM0LCAic3RlcCI6IDM2MDAsICJ2YWx1ZSI6IDAuMjgwMzgzMjU5MDU3OTk4NjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTA4Ni4yMTA4NDk1LCAic3RlcCI6IDM2MTAsICJ2YWx1ZSI6IDAuMjE2ODY5OTk0OTk3OTc4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTAxLjY1NzE0NywgInN0ZXAiOiAzNjIwLCAidmFsdWUiOiAwLjIzOTkzNTc0MDgyODUxNDF9LCB7IndhbGxUaW1lIjogMTczMzA3MTEwOS42MTg4MzY5LCAic3RlcCI6IDM2MzAsICJ2YWx1ZSI6IDAuMjgyNjM2NzYxNjY1MzQ0MjR9LCB7IndhbGxUaW1lIjogMTczMzA3MTExOC4xMjc3NDM3LCAic3RlcCI6IDM2NDAsICJ2YWx1ZSI6IDAuMjU1ODYwNDc3Njg1OTI4MzR9LCB7IndhbGxUaW1lIjogMTczMzA3MTEyNi45OTE2MzE1LCAic3RlcCI6IDM2NTAsICJ2YWx1ZSI6IDAuMjEzNDU0MzY1NzMwMjg1NjR9LCB7IndhbGxUaW1lIjogMTczMzA3MTEzNS44MjU5Mzg1LCAic3RlcCI6IDM2NjAsICJ2YWx1ZSI6IDAuMzE0NzczOTc2ODAyODI1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTQ0LjI0NjcyNDgsICJzdGVwIjogMzY3MCwgInZhbHVlIjogMC4yMjMyNzE5MzYxNzgyMDc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNTIuOTYyOTkzLCAic3RlcCI6IDM2ODAsICJ2YWx1ZSI6IDAuMjQxOTExMzUxNjgwNzU1NjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTE2MC42MDE5NDEzLCAic3RlcCI6IDM2OTAsICJ2YWx1ZSI6IDAuMjU2ODQyOTcwODQ4MDgzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTczLjc0ODgwODksICJzdGVwIjogMzcwMCwgInZhbHVlIjogMC4yNjE4NDg2ODgxMjU2MTAzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTgyLjg4MTc2NzUsICJzdGVwIjogMzcxMCwgInZhbHVlIjogMC4yNjc0MjA4NTgxNDQ3NjAxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTkxLjIwODU3LCAic3RlcCI6IDM3MjAsICJ2YWx1ZSI6IDAuMzEyNTY0MzEzNDExNzEyNjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTIwMC4zMzE5ODIxLCAic3RlcCI6IDM3MzAsICJ2YWx1ZSI6IDAuNTc0NDU5MDE2MzIzMDg5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjA4LjM2NDIyODcsICJzdGVwIjogMzc0MCwgInZhbHVlIjogMC4yODA0Njk1OTYzODU5NTU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMTYuNTcwNDMyMiwgInN0ZXAiOiAzNzUwLCAidmFsdWUiOiAwLjIwMjQyNTgwNzcxNDQ2MjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMjQuNjYwNDIzOCwgInN0ZXAiOiAzNzYwLCAidmFsdWUiOiAwLjE3MDM4NjAwMTQ2NzcwNDc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMzIuODU5MjE2LCAic3RlcCI6IDM3NzAsICJ2YWx1ZSI6IDAuMTY0MDkzNTM5MTE4NzY2Nzh9LCB7IndhbGxUaW1lIjogMTczMzA3MTI0OC41MzE5Mzc2LCAic3RlcCI6IDM3ODAsICJ2YWx1ZSI6IDAuMzU3NzgxNDk5NjI0MjUyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjU3LjM5MDMxMTcsICJzdGVwIjogMzc5MCwgInZhbHVlIjogMC40MjU3NzY1NzEwMzUzODUxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjY1LjU2NTkwMTUsICJzdGVwIjogMzgwMCwgInZhbHVlIjogMC4xOTM4MTcxNTM1NzMwMzYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNzQuMTc3Mjg2LCAic3RlcCI6IDM4MTAsICJ2YWx1ZSI6IDAuMzA5ODIyODg3MTgyMjM1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjgzLjAxNjUyODQsICJzdGVwIjogMzgyMCwgInZhbHVlIjogMC4yMzAxNzY1MDg0MjY2NjYyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjkxLjcyODM3MTYsICJzdGVwIjogMzgzMCwgInZhbHVlIjogMC4xNzc5NzM5MjYwNjczNTIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyOTkuODkxMjIzMiwgInN0ZXAiOiAzODQwLCAidmFsdWUiOiAwLjIxMDU4NjQ4ODI0NjkxNzcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMDguNDc4MDI5NSwgInN0ZXAiOiAzODUwLCAidmFsdWUiOiAwLjI4NjE1ODM4Mjg5MjYwODY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMTYuOTUwMTAzNSwgInN0ZXAiOiAzODYwLCAidmFsdWUiOiAwLjMwNzM2NzAyNjgwNTg3Nzd9LCB7IndhbGxUaW1lIjogMTczMzA3MTMzMC4yMTM2Mzk3LCAic3RlcCI6IDM4NzAsICJ2YWx1ZSI6IDAuMjI2NDYzMTY4ODU5NDgxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzM4Ljk4NzYwMjcsICJzdGVwIjogMzg4MCwgInZhbHVlIjogMC4yNDE4MTM1ODUxNjIxNjI3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzQ3LjczNTU2MTYsICJzdGVwIjogMzg5MCwgInZhbHVlIjogMC4yMTU3NDMyNTg1OTU0NjY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNTcuMDMzMjIxNywgInN0ZXAiOiAzOTAwLCAidmFsdWUiOiAwLjIxODcxNDM0MTUyMTI2MzEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNjUuMjI0MjIzMSwgInN0ZXAiOiAzOTEwLCAidmFsdWUiOiAwLjI5NjQzOTIwMDYzOTcyNDczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNzQuMTMzNTAwNiwgInN0ZXAiOiAzOTIwLCAidmFsdWUiOiAwLjQ2MDMwODM3Mjk3NDM5NTc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzODIuODEyNzIyNCwgInN0ZXAiOiAzOTMwLCAidmFsdWUiOiAwLjI5ODg4Mzk0NDc0OTgzMjE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzOTEuNTY3MzI2NSwgInN0ZXAiOiAzOTQwLCAidmFsdWUiOiAwLjI1NzI0OTA4NzA5NTI2MDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTQwNC40NjYxNDQ2LCAic3RlcCI6IDM5NTAsICJ2YWx1ZSI6IDAuMjMzODkwMTE2MjE0NzUyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDEyLjMzNzc3OSwgInN0ZXAiOiAzOTYwLCAidmFsdWUiOiAwLjI1NjQyNjcyMTgxMTI5NDU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MjEuMTU2NDYzNCwgInN0ZXAiOiAzOTcwLCAidmFsdWUiOiAwLjI3NTg2NDg5OTE1ODQ3Nzh9LCB7IndhbGxUaW1lIjogMTczMzA3MTQzMC4xMTk0NTIsICJzdGVwIjogMzk4MCwgInZhbHVlIjogMC4xOTYwNzU0OTkwNTc3Njk3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDM4LjQxMjk0NCwgInN0ZXAiOiAzOTkwLCAidmFsdWUiOiAwLjM3MzY0NzgzODgzMDk0Nzl9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ0Ny43Mjc3NjYsICJzdGVwIjogNDAwMCwgInZhbHVlIjogMC4zNTI1MDA0MDg4ODc4NjMxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDU2LjE5NTU0LCAic3RlcCI6IDQwMTAsICJ2YWx1ZSI6IDAuMjkyMTU4ODQyMDg2NzkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NjQuNzQ4Mzk5NywgInN0ZXAiOiA0MDIwLCAidmFsdWUiOiAwLjI1MDU4MDU3OTA0MjQzNDd9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ3My4zOTU5Mjk4LCAic3RlcCI6IDQwMzAsICJ2YWx1ZSI6IDAuMzI2ODQ3MDc2NDE2MDE1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDkwLjI4NTM4MiwgInN0ZXAiOiA0MDQwLCAidmFsdWUiOiAwLjI0OTExMjQxMjMzMzQ4ODQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0OTguNzEwNzAzLCAic3RlcCI6IDQwNTAsICJ2YWx1ZSI6IDAuMjM1NzEzMjU4Mzg1NjU4MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTUwNy4wOTYzMDc1LCAic3RlcCI6IDQwNjAsICJ2YWx1ZSI6IDAuMTkyMzE3MzgxNTAxMTk3ODF9LCB7IndhbGxUaW1lIjogMTczMzA3MTUxNS4wNjY4MjQsICJzdGVwIjogNDA3MCwgInZhbHVlIjogMC4yODI0OTUwODE0MjQ3MTMxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTIzLjg4MDI2NTcsICJzdGVwIjogNDA4MCwgInZhbHVlIjogMC4yNzE3MTgxNDQ0MTY4MDkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MzIuMjg0Mzk4OCwgInN0ZXAiOiA0MDkwLCAidmFsdWUiOiAwLjE5NzI1OTI0NzMwMzAwOTAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NDAuOTE2ODA2LCAic3RlcCI6IDQxMDAsICJ2YWx1ZSI6IDAuMjE1NjE3NjU2NzA3NzYzNjd9LCB7IndhbGxUaW1lIjogMTczMzA3MTU0OS4xNzUzNDcsICJzdGVwIjogNDExMCwgInZhbHVlIjogMC4xODQ3OTg4MDY5MDU3NDY0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTY1LjgzNTIxODQsICJzdGVwIjogNDEyMCwgInZhbHVlIjogMC4yMjc4NTExODIyMjIzNjYzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTczLjYzMDk1MiwgInN0ZXAiOiA0MTMwLCAidmFsdWUiOiAwLjE2MDgwOTg4OTQzNTc2ODEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1ODIuMDk1NTQ5MywgInN0ZXAiOiA0MTQwLCAidmFsdWUiOiAwLjQyMTE3NDQ2NjYwOTk1NDgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1OTAuMDIyMDI5NCwgInN0ZXAiOiA0MTUwLCAidmFsdWUiOiAwLjE2NDkzNjQ5NzgwNzUwMjc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1OTkuMjQwMzc5OCwgInN0ZXAiOiA0MTYwLCAidmFsdWUiOiAwLjcxMTI4ODMzMjkzOTE0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjA4LjA3MTEzNiwgInN0ZXAiOiA0MTcwLCAidmFsdWUiOiAwLjI1NDczOTc2MTM1MjUzOTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2MTYuMTgzMjg1LCAic3RlcCI6IDQxODAsICJ2YWx1ZSI6IDAuMzE5MjcwNTIxNDAyMzU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2MjYuMDgyMzY1OCwgInN0ZXAiOiA0MTkwLCAidmFsdWUiOiAwLjE1OTkxMjU3MTMxMDk5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjQxLjAwNzQ1MzQsICJzdGVwIjogNDIwMCwgInZhbHVlIjogMC4yNDUwMjI5MDc4NTMxMjY1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjQ5LjA0MDMzMTEsICJzdGVwIjogNDIxMCwgInZhbHVlIjogMC4yMDQxNDIzMzIwNzcwMjYzN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjU4LjUzMTA5MTIsICJzdGVwIjogNDIyMCwgInZhbHVlIjogMC4yNzk5ODYyMzI1MTkxNDk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NjcuOTY1Nzc0MywgInN0ZXAiOiA0MjMwLCAidmFsdWUiOiAwLjMyMjgyNjUwNDcwNzMzNjR9LCB7IndhbGxUaW1lIjogMTczMzA3MTY3Ni4xMDg0NDg3LCAic3RlcCI6IDQyNDAsICJ2YWx1ZSI6IDAuMjA5ODUxOTM1NTA1ODY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2ODQuMzc4MjYxLCAic3RlcCI6IDQyNTAsICJ2YWx1ZSI6IDAuMzEyOTE0Njk5MzE2MDI0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjkzLjEwOTM2NzYsICJzdGVwIjogNDI2MCwgInZhbHVlIjogMC4yODk0NTc3NjgyMDE4Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTcwMi4xODM2MjQ1LCAic3RlcCI6IDQyNzAsICJ2YWx1ZSI6IDAuMjEzMTkwNjE1MTc3MTU0NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTcxMC42Mjk5MjQsICJzdGVwIjogNDI4MCwgInZhbHVlIjogMC4zMjMxOTk3NDg5OTI5MTk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MjYuNjc2NDYzMSwgInN0ZXAiOiA0MjkwLCAidmFsdWUiOiAwLjI2NjIwMDY2MTY1OTI0MDd9LCB7IndhbGxUaW1lIjogMTczMzA3MTczNS4yMTUzMTg3LCAic3RlcCI6IDQzMDAsICJ2YWx1ZSI6IDAuMjY2NTU2MjAzMzY1MzI1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzQyLjk1Njg1NTUsICJzdGVwIjogNDMxMCwgInZhbHVlIjogMC4yNjQyMTQ1MTU2ODYwMzUxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzUxLjU4NTQ4OSwgInN0ZXAiOiA0MzIwLCAidmFsdWUiOiAwLjQyNDA4MzUwMTEwMDU0MDE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NjAuMDM0NDA2LCAic3RlcCI6IDQzMzAsICJ2YWx1ZSI6IDAuMjc2MDA0NzkxMjU5NzY1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzY4LjQzMTA5MzIsICJzdGVwIjogNDM0MCwgInZhbHVlIjogMC4xODE1ODczNjgyNDk4OTMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NzcuNDAxOTE0OCwgInN0ZXAiOiA0MzUwLCAidmFsdWUiOiAwLjI5ODExMTc5NjM3OTA4OTM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3ODUuNTQ3MDk5OCwgInN0ZXAiOiA0MzYwLCAidmFsdWUiOiAwLjI3MjY2MzY1Mjg5Njg4MTF9LCB7IndhbGxUaW1lIjogMTczMzA3MTgwMC44ODQ1MTQsICJzdGVwIjogNDM3MCwgInZhbHVlIjogMC4zNTkyMzI0MjU2ODk2OTcyN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxODA5LjI2NTYyNzksICJzdGVwIjogNDM4MCwgInZhbHVlIjogMC4yNDI5OTgwMTg4NjA4MTY5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODE3LjM0NjE2NzMsICJzdGVwIjogNDM5MCwgInZhbHVlIjogMC4yMDU4NjYzMDcwMjAxODczOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODI2LjQzMDE3OTYsICJzdGVwIjogNDQwMCwgInZhbHVlIjogMC4zMDI5OTk2NDU0NzE1NzI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MzQuODg3MzkyMywgInN0ZXAiOiA0NDEwLCAidmFsdWUiOiAwLjI5Mzk4NDExNTEyMzc0ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MTg0My40NDY2MzUyLCAic3RlcCI6IDQ0MjAsICJ2YWx1ZSI6IDAuMjU4NjA3MDg5NTE5NTAwNzN9LCB7IndhbGxUaW1lIjogMTczMzA3MTg1MS41OTU4LCAic3RlcCI6IDQ0MzAsICJ2YWx1ZSI6IDAuMjQ2MzM4OTMzNzA2MjgzNTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTg1OS45MjM4OTIzLCAic3RlcCI6IDQ0NDAsICJ2YWx1ZSI6IDAuMjU5MzUwMzU5NDM5ODQ5ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MTg2OC42NzMwMzIzLCAic3RlcCI6IDQ0NTAsICJ2YWx1ZSI6IDAuMjQ1Nzc3OTQ5NjkwODE4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODgxLjMzNTk2MjMsICJzdGVwIjogNDQ2MCwgInZhbHVlIjogMC4yMjg2NjE3NzU1ODg5ODkyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODg5LjYzNjIwMiwgInN0ZXAiOiA0NDcwLCAidmFsdWUiOiAwLjIzOTUzODg2MzMwMTI3NzE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4OTguNDIwNTU3LCAic3RlcCI6IDQ0ODAsICJ2YWx1ZSI6IDAuMjY5MzIwNTc3MzgzMDQxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTA3LjMzNTc3MTMsICJzdGVwIjogNDQ5MCwgInZhbHVlIjogMC4yMzA0MDQwMTkzNTU3NzM5M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTE2LjI3NzkzMDUsICJzdGVwIjogNDUwMCwgInZhbHVlIjogMC4zMzEzMzU2NjM3OTU0NzEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5MjUuMzQ4NDc3MSwgInN0ZXAiOiA0NTEwLCAidmFsdWUiOiAwLjM2MzU4NzY3NzQ3ODc5MDN9LCB7IndhbGxUaW1lIjogMTczMzA3MTkzMy4zMjkwODY1LCAic3RlcCI6IDQ1MjAsICJ2YWx1ZSI6IDAuMTUzNzA3Mjk1NjU2MjA0MjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTk0MS40ODI0MTE2LCAic3RlcCI6IDQ1MzAsICJ2YWx1ZSI6IDAuMTY0MTM3MTg0NjE5OTAzNTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTk1NC4xNjg3MDI2LCAic3RlcCI6IDQ1NDAsICJ2YWx1ZSI6IDAuMjM2MTExMTE5Mzg5NTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NjIuMzk1NDk1NywgInN0ZXAiOiA0NTUwLCAidmFsdWUiOiAwLjE4OTQxNzYzMDQzNDAzNjI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NzAuNTEzMDg2NiwgInN0ZXAiOiA0NTYwLCAidmFsdWUiOiAwLjI2NTkwMDYxMTg3NzQ0MTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTk3OC44Njk2MDMsICJzdGVwIjogNDU3MCwgInZhbHVlIjogMC4zNzIyMzA2NDg5OTQ0NDU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5ODcuNzEwMTkyLCAic3RlcCI6IDQ1ODAsICJ2YWx1ZSI6IDAuMjk4MjYwNzc4MTg4NzA1NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTk5Ni40NDQxMzIzLCAic3RlcCI6IDQ1OTAsICJ2YWx1ZSI6IDAuMzg5NDUxMDU2NzE4ODI2M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDA0LjQ3NTYwNDMsICJzdGVwIjogNDYwMCwgInZhbHVlIjogMC4xOTQ3ODM3OTE4OTk2ODExfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMTIuNzQ0MzYyOCwgInN0ZXAiOiA0NjEwLCAidmFsdWUiOiAwLjE4MjQwODAxOTkwMDMyMTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMjUuMzk5NzU3LCAic3RlcCI6IDQ2MjAsICJ2YWx1ZSI6IDAuMTk5NDAwMjAxNDM5ODU3NDh9LCB7IndhbGxUaW1lIjogMTczMzA3MjAzNC4xMTc3ODY2LCAic3RlcCI6IDQ2MzAsICJ2YWx1ZSI6IDAuMTkwMTg3ODU2NTU0OTg1MDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjA0My4wMzY5ODMsICJzdGVwIjogNDY0MCwgInZhbHVlIjogMC4zMTU0NTk5OTY0NjE4NjgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNTEuNzg0NDEzLCAic3RlcCI6IDQ2NTAsICJ2YWx1ZSI6IDAuMjUxMzU2NTQyMTEwNDQzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDYwLjEwNzU4OSwgInN0ZXAiOiA0NjYwLCAidmFsdWUiOiAwLjI0NTcwNDMyMzA1MzM1OTk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNjguNjAyMzMyNCwgInN0ZXAiOiA0NjcwLCAidmFsdWUiOiAwLjI3MjU1OTEwNjM0OTk0NTA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNzYuODM1NzQ4NCwgInN0ZXAiOiA0NjgwLCAidmFsdWUiOiAwLjI3MDU5MDI0NTcyMzcyNDM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwODUuMzc1MTkzNCwgInN0ZXAiOiA0NjkwLCAidmFsdWUiOiAwLjI4NzExMzY2NjUzNDQyMzgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwOTMuNzQ3NjMxNSwgInN0ZXAiOiA0NzAwLCAidmFsdWUiOiAwLjIxMjYyMzQxNzM3NzQ3MTkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMDYuOTg4NzcyNiwgInN0ZXAiOiA0NzEwLCAidmFsdWUiOiAwLjI1ODcyMDE1OTUzMDYzOTY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMTUuNjY0MjM2LCAic3RlcCI6IDQ3MjAsICJ2YWx1ZSI6IDAuNDEyMTQ4OTgyMjg2NDUzMjV9LCB7IndhbGxUaW1lIjogMTczMzA3MjEyMy45NDk2MDk1LCAic3RlcCI6IDQ3MzAsICJ2YWx1ZSI6IDAuMzI0MjcxMjAyMDg3NDAyMzR9LCB7IndhbGxUaW1lIjogMTczMzA3MjEzMi4yNzk2NDMsICJzdGVwIjogNDc0MCwgInZhbHVlIjogMC4yMjg4NzgyNDQ3NTc2NTIyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTQwLjQxOTUzNiwgInN0ZXAiOiA0NzUwLCAidmFsdWUiOiAwLjE5MzYzODQ0Mzk0NjgzODM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNDkuMDg2MjA3NCwgInN0ZXAiOiA0NzYwLCAidmFsdWUiOiAwLjIxNDUzMTQyMTY2MTM3Njk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNTcuNDEwODExNCwgInN0ZXAiOiA0NzcwLCAidmFsdWUiOiAwLjI0MDgyNzk0Nzg1NDk5NTczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNjUuNDg4Mzg0LCAic3RlcCI6IDQ3ODAsICJ2YWx1ZSI6IDAuMjcxODUyNDkzMjg2MTMyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTc5LjY0NzQ1ODgsICJzdGVwIjogNDc5MCwgInZhbHVlIjogMC4yNTcxNTc1MzQzNjA4ODU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxODguMzI4NzM0NCwgInN0ZXAiOiA0ODAwLCAidmFsdWUiOiAwLjE5NDU4NDkzNTkwMzU0OTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjE5Ni44NDYwMDYyLCAic3RlcCI6IDQ4MTAsICJ2YWx1ZSI6IDAuMjYxNDU5OTE2ODMwMDYyODd9LCB7IndhbGxUaW1lIjogMTczMzA3MjIwNC41NjEyODAzLCAic3RlcCI6IDQ4MjAsICJ2YWx1ZSI6IDAuMjA0MDE3NjgzODYzNjM5ODN9LCB7IndhbGxUaW1lIjogMTczMzA3MjIxMy4wOTg2Njg4LCAic3RlcCI6IDQ4MzAsICJ2YWx1ZSI6IDAuMzYxNjM0MjI0NjUzMjQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMjEuNjY2MDYxNiwgInN0ZXAiOiA0ODQwLCAidmFsdWUiOiAwLjI2NDM1OTE0NjM1NjU4MjY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMjkuODkzMDEzNywgInN0ZXAiOiA0ODUwLCAidmFsdWUiOiAwLjIwNDc1MjQ2MDEyMjEwODQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMzguMDU1MjM3OCwgInN0ZXAiOiA0ODYwLCAidmFsdWUiOiAwLjI0NDE5OTMzNTU3NTEwMzc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNDYuMzQyNTg2LCAic3RlcCI6IDQ4NzAsICJ2YWx1ZSI6IDAuMjAwNjc3MjkwNTU4ODE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNjEuMjY2Mzk0MSwgInN0ZXAiOiA0ODgwLCAidmFsdWUiOiAwLjIzMDEzNTk5MjE2OTM4MDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjI2OS44NTE1NDMsICJzdGVwIjogNDg5MCwgInZhbHVlIjogMC4yMjMzOTY3MTg1MDIwNDQ2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjc4Ljg2MDY3NTMsICJzdGVwIjogNDkwMCwgInZhbHVlIjogMC4yODYxMDM3ODUwMzc5OTQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyODcuNTMzNjA0LCAic3RlcCI6IDQ5MTAsICJ2YWx1ZSI6IDAuMjAyMzE0NzY0MjYxMjQ1NzN9LCB7IndhbGxUaW1lIjogMTczMzA3MjI5NS45NDYzMjU4LCAic3RlcCI6IDQ5MjAsICJ2YWx1ZSI6IDAuMTc5MDkzMTY3MTg1NzgzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzA0LjM1NDUxNTMsICJzdGVwIjogNDkzMCwgInZhbHVlIjogMC4yNjY3Mjk3MTI0ODYyNjcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMTMuNTA5MDI3NSwgInN0ZXAiOiA0OTQwLCAidmFsdWUiOiAwLjI2ODgwNzk0NzYzNTY1MDYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMjEuMzI0NTAzMiwgInN0ZXAiOiA0OTUwLCAidmFsdWUiOiAwLjE5MDg0MTEwODU2MDU2MjEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMzcuMDI0MTQxMywgInN0ZXAiOiA0OTYwLCAidmFsdWUiOiAwLjE2NTA5ODkwNTU2MzM1NDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjM0NS41MzA1NTcyLCAic3RlcCI6IDQ5NzAsICJ2YWx1ZSI6IDAuMTc5MzI3MjQ5NTI2OTc3NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjM1My40MjkwMzMsICJzdGVwIjogNDk4MCwgInZhbHVlIjogMC4yMjY5MDQ1ODU5NTc1MjcxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzYyLjQxMjQ5LCAic3RlcCI6IDQ5OTAsICJ2YWx1ZSI6IDAuMjQyNTgxOTc4NDQwMjg0NzN9LCB7IndhbGxUaW1lIjogMTczMzA3MjM3MS43NDUyMDU2LCAic3RlcCI6IDUwMDAsICJ2YWx1ZSI6IDAuMjMxNTM2MzQzNjkzNzMzMjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjM4MC41Mjg5NzQ1LCAic3RlcCI6IDUwMTAsICJ2YWx1ZSI6IDAuMjg5OTQ3MzMwOTUxNjkwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzg5LjAyNTczNDQsICJzdGVwIjogNTAyMCwgInZhbHVlIjogMC4zMDQzMDk5OTM5ODIzMTUwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzk3Ljc4NDg1MTgsICJzdGVwIjogNTAzMCwgInZhbHVlIjogMC4xOTY1MDk2NzQxOTE0NzQ5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDExLjI5NzU4OTgsICJzdGVwIjogNTA0MCwgInZhbHVlIjogMC4yMTg4NjQ2MDQ4MzA3NDE4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDE5LjQ3MzM1NjUsICJzdGVwIjogNTA1MCwgInZhbHVlIjogMC4yMDczOTk3NTU3MTYzMjM4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDI4LjM3MTU0MDMsICJzdGVwIjogNTA2MCwgInZhbHVlIjogMC4yODc2NzM1MDMxNjA0NzY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MzcuMTE2MDM5NSwgInN0ZXAiOiA1MDcwLCAidmFsdWUiOiAwLjI2NzQ4Mzg2MDI1NDI4Nzd9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ0Ni4xNzQ1NDI3LCAic3RlcCI6IDUwODAsICJ2YWx1ZSI6IDAuMjkxNTIxMTkxNTk2OTg0ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ1NC40Mjc3ODM1LCAic3RlcCI6IDUwOTAsICJ2YWx1ZSI6IDAuMTk5NjAxMzM3MzEzNjUyMDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ2Mi40MDk4MDQ4LCAic3RlcCI6IDUxMDAsICJ2YWx1ZSI6IDAuMjQ5Mjk5OTQzNDQ3MTEzMDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ3MS4xNDkzMDUsICJzdGVwIjogNTExMCwgInZhbHVlIjogMC4yMjIzOTQwMTkzNjUzMTA2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDc4Ljk0NTg4ODUsICJzdGVwIjogNTEyMCwgInZhbHVlIjogMC4zMDIzMDI0MjAxMzkzMTI3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDkxLjMyMDk4MywgInN0ZXAiOiA1MTMwLCAidmFsdWUiOiAwLjMyNjkzNjY2MjE5NzExMzA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0OTkuMjU4MDYwNSwgInN0ZXAiOiA1MTQwLCAidmFsdWUiOiAwLjE2ODQzOTY4NjI5ODM3MDM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MDcuMTExNDE5NCwgInN0ZXAiOiA1MTUwLCAidmFsdWUiOiAwLjIxOTU3ODE2MTgzNTY3MDQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MTUuMzE2NTMwNSwgInN0ZXAiOiA1MTYwLCAidmFsdWUiOiAwLjYyMzc5MzM2MzU3MTE2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTIzLjQ5OTM0NzcsICJzdGVwIjogNTE3MCwgInZhbHVlIjogMC4yNzU4MjAwNDY2NjMyODQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MzEuMDg2NTU3OSwgInN0ZXAiOiA1MTgwLCAidmFsdWUiOiAwLjE3NTQzMzUzMTQwMzU0MTU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NDAuMDIxMTMyNSwgInN0ZXAiOiA1MTkwLCAidmFsdWUiOiAwLjI0MDAyODg1ODE4NDgxNDQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NDguNjUxMzc4MiwgInN0ZXAiOiA1MjAwLCAidmFsdWUiOiAwLjI2NTE1ODg5MTY3Nzg1NjQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NjEuNDE0NDgyNiwgInN0ZXAiOiA1MjEwLCAidmFsdWUiOiAwLjIwOTc3MTM3OTgyODQ1MzA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NjkuODk1NTE4LCAic3RlcCI6IDUyMjAsICJ2YWx1ZSI6IDAuMjkyNDIyNzQxNjUxNTM1MDN9LCB7IndhbGxUaW1lIjogMTczMzA3MjU3OC42NzgxNzI4LCAic3RlcCI6IDUyMzAsICJ2YWx1ZSI6IDAuMjY2NzA4OTEwNDY1MjQwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTg2Ljk0MTQ1OTcsICJzdGVwIjogNTI0MCwgInZhbHVlIjogMC4yNzMzOTIxMTEwNjMwMDM1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTk1LjAzMzYzNywgInN0ZXAiOiA1MjUwLCAidmFsdWUiOiAwLjMzNzc0NTEwMDI1OTc4MDl9LCB7IndhbGxUaW1lIjogMTczMzA3MjYwMy4xNzI3NDcsICJzdGVwIjogNTI2MCwgInZhbHVlIjogMC4yNDgwMjUyMzg1MTM5NDY1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjExLjA3OTIzNiwgInN0ZXAiOiA1MjcwLCAidmFsdWUiOiAwLjI4MjU3ODY0NzEzNjY4ODIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MTkuOTU0MzA4MywgInN0ZXAiOiA1MjgwLCAidmFsdWUiOiAwLjI0NDk1MzI0NDkyNDU0NTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjYyOC42MzM5MDY4LCAic3RlcCI6IDUyOTAsICJ2YWx1ZSI6IDAuMjQwMDIwNjAyOTQxNTEzMDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjY0MS4zNzQ4MTQ3LCAic3RlcCI6IDUzMDAsICJ2YWx1ZSI6IDAuMjI4MzUzOTYyMzAyMjA3OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjY0OS44NTczNDc3LCAic3RlcCI6IDUzMTAsICJ2YWx1ZSI6IDAuMTY3MDk2OTg3MzY2Njc2MzN9LCB7IndhbGxUaW1lIjogMTczMzA3MjY1Ny45NzA2MTc4LCAic3RlcCI6IDUzMjAsICJ2YWx1ZSI6IDAuMTg0ODA5Njk5NjU0NTc5MTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjY2Ny4wMjg4Mjc3LCAic3RlcCI6IDUzMzAsICJ2YWx1ZSI6IDAuMjk4MTIwNzM3MDc1ODA1NjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjY3NS45NDIzMjY1LCAic3RlcCI6IDUzNDAsICJ2YWx1ZSI6IDAuMjQxMTc1MzUzNTI3MDY5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjg0LjIzNzc0NzIsICJzdGVwIjogNTM1MCwgInZhbHVlIjogMC4zNzE0NjQ5Mzc5MjUzMzg3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjkxLjg1NzQ1MzYsICJzdGVwIjogNTM2MCwgInZhbHVlIjogMC4yNDk1MDczMDgwMDYyODY2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzAwLjE0NzMxNzIsICJzdGVwIjogNTM3MCwgInZhbHVlIjogMC4xODc5OTMzMzI3NDM2NDQ3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzEzLjE4MjMzODcsICJzdGVwIjogNTM4MCwgInZhbHVlIjogMC4xOTIyNzUzNjAyMjY2MzExNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzIxLjAyNDA0NCwgInN0ZXAiOiA1MzkwLCAidmFsdWUiOiAwLjE2ODEzNTAxNzE1NjYwMDk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MjkuODc2Mjc4LCAic3RlcCI6IDU0MDAsICJ2YWx1ZSI6IDAuMjI4MDIyNzk4ODk1ODM1ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MjczOC4zNjg3NTQsICJzdGVwIjogNTQxMCwgInZhbHVlIjogMC4xODAxMDc0NDQ1MjQ3NjUwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzQ2LjM4MTk4MSwgInN0ZXAiOiA1NDIwLCAidmFsdWUiOiAwLjI1MTIyNTExMzg2ODcxMzR9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc1NC42MTY5OTQxLCAic3RlcCI6IDU0MzAsICJ2YWx1ZSI6IDAuMzE2MzAzMTMzOTY0NTM4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzYyLjU0NjEzNjksICJzdGVwIjogNTQ0MCwgInZhbHVlIjogMC4xODgzMjA4NDUzNjU1MjQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3NzEuMzU5OTU2NSwgInN0ZXAiOiA1NDUwLCAidmFsdWUiOiAwLjI0MzkwMjI5NTgyNzg2NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc4Ny4xNTEwMzMyLCAic3RlcCI6IDU0NjAsICJ2YWx1ZSI6IDAuMTgwNzAyODk0OTI2MDcxMTd9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc5NS44MDE5NDEyLCAic3RlcCI6IDU0NzAsICJ2YWx1ZSI6IDAuMjUxODczNjQyMjA2MTkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MDQuMjQxMzIyNSwgInN0ZXAiOiA1NDgwLCAidmFsdWUiOiAwLjE2NzMwNDk2Mjg3MzQ1ODg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MTIuMzcyMzkwNywgInN0ZXAiOiA1NDkwLCAidmFsdWUiOiAwLjI2MzA5NDY5MzQyMjMxNzV9LCB7IndhbGxUaW1lIjogMTczMzA3MjgyMS4xNTg1MjAyLCAic3RlcCI6IDU1MDAsICJ2YWx1ZSI6IDAuMjc1NjM0MzQ4MzkyNDg2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODMwLjAyMTkyNywgInN0ZXAiOiA1NTEwLCAidmFsdWUiOiAwLjI5NTgyNDc5NTk2MTM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MzguNjk0NDE5LCAic3RlcCI6IDU1MjAsICJ2YWx1ZSI6IDAuMjA3OTQzOTMxMjIxOTYxOTh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg0Ni45MDQyOTEyLCAic3RlcCI6IDU1MzAsICJ2YWx1ZSI6IDAuMTcyNjgxOTg3Mjg1NjE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NTUuMjQ1NDM0OCwgInN0ZXAiOiA1NTQwLCAidmFsdWUiOiAwLjE5ODY2MTI1Mjg1NjI1NDU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NzAuNjQzNTA1NiwgInN0ZXAiOiA1NTUwLCAidmFsdWUiOiAwLjI4NTEwNjU2OTUyODU3OTd9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg3OC43Mjg0MDk1LCAic3RlcCI6IDU1NjAsICJ2YWx1ZSI6IDAuMjc1NjczMjcwMjI1NTI0OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODg2LjYwOTc0NjUsICJzdGVwIjogNTU3MCwgInZhbHVlIjogMC4yMzI1OTM4NzkxMDM2NjA1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODk1LjAyMDA5MTMsICJzdGVwIjogNTU4MCwgInZhbHVlIjogMC44NTY2NTc2ODM4NDkzMzQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MDMuNDAyMDI4NiwgInN0ZXAiOiA1NTkwLCAidmFsdWUiOiAwLjIwODcxOTIzODYzODg3Nzg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MTEuMjA5MDc3NCwgInN0ZXAiOiA1NjAwLCAidmFsdWUiOiAwLjMwNzA4Nzk1Nzg1OTAzOTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjkxOS44MzkwMDEsICJzdGVwIjogNTYxMCwgInZhbHVlIjogMC4yNTk4NTM2MzEyNTgwMTA4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTI4LjczMjExNTUsICJzdGVwIjogNTYyMCwgInZhbHVlIjogMC4zNzE5NzM4NDIzODI0MzEwM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTQxLjcwMjc3MDcsICJzdGVwIjogNTYzMCwgInZhbHVlIjogMC4yMDQyMzYyMzkxOTQ4N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTQ5Ljk3OTA1OSwgInN0ZXAiOiA1NjQwLCAidmFsdWUiOiAwLjIzNDcyMzEyMDkyNzgxMDY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NTguNzE4NTYzMywgInN0ZXAiOiA1NjUwLCAidmFsdWUiOiAwLjMyNTc2ODU2MDE3MTEyNzN9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk2Ni44MTMzNjAyLCAic3RlcCI6IDU2NjAsICJ2YWx1ZSI6IDAuMjAzNTQyMzUxNzIyNzE3Mjl9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk3NC45NjA3NjEzLCAic3RlcCI6IDU2NzAsICJ2YWx1ZSI6IDAuMTg1NDA5NjIwNDA0MjQzNDd9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk4My41NjEwNTIzLCAic3RlcCI6IDU2ODAsICJ2YWx1ZSI6IDAuMjMxMzgzODYwMTExMjM2NTd9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk5Mi4yMjcyMTM0LCAic3RlcCI6IDU2OTAsICJ2YWx1ZSI6IDAuMjUxNjIxNjMzNzY4MDgxNjd9LCB7IndhbGxUaW1lIjogMTczMzA3MzAwMC44MTYxMzk1LCAic3RlcCI6IDU3MDAsICJ2YWx1ZSI6IDAuMTk4NjI5OTYwNDE3NzQ3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDA5Ljc4MjM0NiwgInN0ZXAiOiA1NzEwLCAidmFsdWUiOiAwLjI0MTUyMTA2MDQ2Njc2NjM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMjIuODY3Mjg3NiwgInN0ZXAiOiA1NzIwLCAidmFsdWUiOiAwLjM2NjU1NzEyMTI3Njg1NTQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMzEuNTMzMTc0NSwgInN0ZXAiOiA1NzMwLCAidmFsdWUiOiAwLjI5Mjg0NTU0NzE5OTI0OTI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMzkuNTY5NTc0OCwgInN0ZXAiOiA1NzQwLCAidmFsdWUiOiAwLjI0NjY1Njk2OTE4OTY0Mzg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNDcuODQyMDE1NSwgInN0ZXAiOiA1NzUwLCAidmFsdWUiOiAwLjI0MTA3MjAxMzk3NDE4OTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNTYuMTU1NjMyNywgInN0ZXAiOiA1NzYwLCAidmFsdWUiOiAwLjE4NDk3MTA3OTIzMDMwODUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNjQuOTU0MTk1NSwgInN0ZXAiOiA1NzcwLCAidmFsdWUiOiAwLjM0MDk4OTI5MTY2NzkzODIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNzMuODM2Nzg2NywgInN0ZXAiOiA1NzgwLCAidmFsdWUiOiAwLjIyNDgwMjM1OTkzODYyMTUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwODIuNzI0MjEwNywgInN0ZXAiOiA1NzkwLCAidmFsdWUiOiAwLjMxODUzMzgzNzc5NTI1NzU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwOTUuMTAyMDkxOCwgInN0ZXAiOiA1ODAwLCAidmFsdWUiOiAwLjIxODc2NDYzMjk0MDI5MjM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMDMuMzE0OTAyMywgInN0ZXAiOiA1ODEwLCAidmFsdWUiOiAwLjI0NTk3NjY1NjY3NTMzODc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMTEuOTY5ODA0MywgInN0ZXAiOiA1ODIwLCAidmFsdWUiOiAwLjE2MzgwMjExNzEwOTI5ODd9LCB7IndhbGxUaW1lIjogMTczMzA3MzEyMC4zNTQ4MzIsICJzdGVwIjogNTgzMCwgInZhbHVlIjogMC4zMDcyMTg4Nzk0NjEyODg0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTI4LjIwODM3MDIsICJzdGVwIjogNTg0MCwgInZhbHVlIjogMC4yMDE4NTc2NzExNDE2MjQ0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTM2LjcxNDg3MjgsICJzdGVwIjogNTg1MCwgInZhbHVlIjogMC4xNjkwNDg3ODYxNjMzMzAwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTQ0LjkyNzAxMzQsICJzdGVwIjogNTg2MCwgInZhbHVlIjogMC4yNTA5ODM5MjM2NzM2Mjk3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTUzLjA0MDA5MywgInN0ZXAiOiA1ODcwLCAidmFsdWUiOiAwLjE1NTk5MzU4MDgxODE3NjI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNjYuMDAyMDY4LCAic3RlcCI6IDU4ODAsICJ2YWx1ZSI6IDAuMTkxNjMzNDMzMTAzNTYxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTc0LjY1ODE3NzYsICJzdGVwIjogNTg5MCwgInZhbHVlIjogMC4xNTU0NDMxMTcwMjI1MTQzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTgyLjUwNzQ4NDcsICJzdGVwIjogNTkwMCwgInZhbHVlIjogMC4yMjcwMDI0MjY5ODE5MjU5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTkxLjU1ODc2NiwgInN0ZXAiOiA1OTEwLCAidmFsdWUiOiAwLjE4NjIwMDQ2OTczMjI4NDU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxOTkuNDEwMTI0NSwgInN0ZXAiOiA1OTIwLCAidmFsdWUiOiAwLjEwNDIzNzMxMDU4ODM1OTgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMDcuNDY0NzgxMywgInN0ZXAiOiA1OTMwLCAidmFsdWUiOiAwLjIzNDMxNDAyNDQ0ODM5NDc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMTUuNjAyMTA2LCAic3RlcCI6IDU5NDAsICJ2YWx1ZSI6IDAuMjA4NTQ2OTk2MTE2NjM4MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MzIyNC4zNTczNjYsICJzdGVwIjogNTk1MCwgInZhbHVlIjogMC4yMDI2MDIxMTgyNTM3MDc4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjMyLjg3NjEzNTYsICJzdGVwIjogNTk2MCwgInZhbHVlIjogMC4yODIyNjQyOTIyNDAxNDI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNDUuMzczMDQ4NSwgInN0ZXAiOiA1OTcwLCAidmFsdWUiOiAwLjE5ODk4OTA3ODQwMjUxOTIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNTMuMTc4ODcxOSwgInN0ZXAiOiA1OTgwLCAidmFsdWUiOiAwLjI0NjIyMTgxMDU3OTI5OTkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNjEuNzk4NDgwMywgInN0ZXAiOiA1OTkwLCAidmFsdWUiOiAwLjIyMzAwMjM0NDM2OTg4ODN9LCB7IndhbGxUaW1lIjogMTczMzA3MzI3MC4wNTkxODg0LCAic3RlcCI6IDYwMDAsICJ2YWx1ZSI6IDAuMjE2ODE1NjgwMjY1NDI2NjR9LCB7IndhbGxUaW1lIjogMTczMzA3MzI3OC44OTQ5NDM1LCAic3RlcCI6IDYwMTAsICJ2YWx1ZSI6IDAuMzY0ODI3MDk2NDYyMjQ5NzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzI4Ny42ODE1MzI5LCAic3RlcCI6IDYwMjAsICJ2YWx1ZSI6IDAuMjUwMjU5MTMxMTkzMTYxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyOTcuMjczODgwNSwgInN0ZXAiOiA2MDMwLCAidmFsdWUiOiAwLjM5MDA1MjM3ODE3NzY0Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzMwNS45MTc2MjExLCAic3RlcCI6IDYwNDAsICJ2YWx1ZSI6IDAuMjk4MTY5MDE2ODM4MDczNzN9LCB7IndhbGxUaW1lIjogMTczMzA3MzMyMi4zNTQxNTEyLCAic3RlcCI6IDYwNTAsICJ2YWx1ZSI6IDAuMjE2NzkyODUxNjg2NDc3NjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzMzMS45NzY3Mjk2LCAic3RlcCI6IDYwNjAsICJ2YWx1ZSI6IDAuMTYwOTQxMzAyNzc2MzM2Njd9LCB7IndhbGxUaW1lIjogMTczMzA3MzM0MC41MjE1ODU3LCAic3RlcCI6IDYwNzAsICJ2YWx1ZSI6IDAuMTg5NDczMzkwNTc5MjIzNjN9LCB7IndhbGxUaW1lIjogMTczMzA3MzM0OS42MDE0NTY5LCAic3RlcCI6IDYwODAsICJ2YWx1ZSI6IDAuMzAxMzc1MjY5ODg5ODMxNTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzM1OS4wNzA2MDksICJzdGVwIjogNjA5MCwgInZhbHVlIjogMC4xODc4MzkwMzEyMTk0ODI0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzY4LjQwMjM0OCwgInN0ZXAiOiA2MTAwLCAidmFsdWUiOiAwLjIzMDYwNDA1MjU0MzY0MDE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNzcuNjc0NDQ0NCwgInN0ZXAiOiA2MTEwLCAidmFsdWUiOiAwLjI0NDk3NzUzMzgxNzI5MTI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzODYuMzk5ODA3NywgInN0ZXAiOiA2MTIwLCAidmFsdWUiOiAwLjE2Mzc1MzM0NTYwODcxMTI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzOTUuNDUwOTM2OCwgInN0ZXAiOiA2MTMwLCAidmFsdWUiOiAwLjIyODgyNDM3NzA1OTkzNjUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MDguMTUwNzI5NywgInN0ZXAiOiA2MTQwLCAidmFsdWUiOiAwLjE1NDQxNDU2NDM3MTEwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDE3LjMyMzE1NTksICJzdGVwIjogNjE1MCwgInZhbHVlIjogMC4xOTAzNDcxOTQ2NzE2MzA4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDI2LjI1NTYzNzQsICJzdGVwIjogNjE2MCwgInZhbHVlIjogMC4xOTM1MTExNTgyMjc5MjA1M30sIHsid2FsbFRpbWUiOiAxNzMzMDczNDM0LjgwODczODUsICJzdGVwIjogNjE3MCwgInZhbHVlIjogMC4xNjgxMzYyODM3NTUzMDI0M30sIHsid2FsbFRpbWUiOiAxNzMzMDczNDQ0LjUxMjEzMjQsICJzdGVwIjogNjE4MCwgInZhbHVlIjogMC4yMDkyMDMwMzQ2MzkzNTg1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDUzLjExNTM1NiwgInN0ZXAiOiA2MTkwLCAidmFsdWUiOiAwLjI0MjYwNTAzMDUzNjY1MTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ2Mi41NjUwMDIsICJzdGVwIjogNjIwMCwgInZhbHVlIjogMC4xNjIyMTI5ODI3NzM3ODA4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDcyLjAyMzgxOTcsICJzdGVwIjogNjIxMCwgInZhbHVlIjogMC4yMzM4ODE4MzExNjkxMjg0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDg0LjQ0NzY3LCAic3RlcCI6IDYyMjAsICJ2YWx1ZSI6IDAuMjAwOTgzOTQxNTU1MDIzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDkzLjY1OTM0NTEsICJzdGVwIjogNjIzMCwgInZhbHVlIjogMC4xOTQzMTA0NTY1MTQzNTg1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTAyLjQ0MDU3MzIsICJzdGVwIjogNjI0MCwgInZhbHVlIjogMC4yMTI5MjUxMzYwODkzMjQ5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTExLjI1NTI3MSwgInN0ZXAiOiA2MjUwLCAidmFsdWUiOiAwLjIzNjU0MDUxMTI1MDQ5NTl9LCB7IndhbGxUaW1lIjogMTczMzA3MzUyMC40ODQzNTE0LCAic3RlcCI6IDYyNjAsICJ2YWx1ZSI6IDAuMTg4NDQ0NDk1MjAxMTEwODR9LCB7IndhbGxUaW1lIjogMTczMzA3MzUyOS43ODA3OTg0LCAic3RlcCI6IDYyNzAsICJ2YWx1ZSI6IDAuMjgxMTIxOTk5MDI1MzQ0ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MzUzOS42Mzg0Nzk1LCAic3RlcCI6IDYyODAsICJ2YWx1ZSI6IDAuMjMzMjk1MzUxMjY2ODYwOTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzU0OC45MTAyOTcsICJzdGVwIjogNjI5MCwgInZhbHVlIjogMC4yMDMyMzY5OTcxMjc1MzI5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTYwLjYxOTA3NDMsICJzdGVwIjogNjMwMCwgInZhbHVlIjogMC4yNjY2MjI5NjA1Njc0NzQzN30sIHsid2FsbFRpbWUiOiAxNzMzMDczNTcwLjA2ODM2NSwgInN0ZXAiOiA2MzEwLCAidmFsdWUiOiAwLjE4OTI1MTAyMDU1MDcyNzg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NzkuNDgwNDQ5MiwgInN0ZXAiOiA2MzIwLCAidmFsdWUiOiAwLjI0NzYwNzIxNjIzODk3NTUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1ODcuNjY2NTc1NCwgInN0ZXAiOiA2MzMwLCAidmFsdWUiOiAwLjE5Njg2OTE2NDcwNTI3NjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzU5Ny4yMTczMTExLCAic3RlcCI6IDYzNDAsICJ2YWx1ZSI6IDAuMjA0MDc3NjAxNDMyODAwM30sIHsid2FsbFRpbWUiOiAxNzMzMDczNjA2LjIzNzQ3NTQsICJzdGVwIjogNjM1MCwgInZhbHVlIjogMC4xOTUyNzc0ODIyNzExOTQ0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjE1LjA3NjkyOTYsICJzdGVwIjogNjM2MCwgInZhbHVlIjogMC4yOTUzNDQ0NDIxMjkxMzUxM30sIHsid2FsbFRpbWUiOiAxNzMzMDczNjI0LjgzMzg1NjYsICJzdGVwIjogNjM3MCwgInZhbHVlIjogMC4yNTI1NjM0NzY1NjI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MzQuNjcxODgzMywgInN0ZXAiOiA2MzgwLCAidmFsdWUiOiAwLjIzNTUyMzU5NjQwNTk4Mjk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NDYuNTI3NTM5LCAic3RlcCI6IDYzOTAsICJ2YWx1ZSI6IDAuMjAyNjA5Nzc3NDUwNTYxNTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzY1NS43NDQ3OTU2LCAic3RlcCI6IDY0MDAsICJ2YWx1ZSI6IDAuMjM3Nzg1NTkyNjc1MjA5MDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzY2NS42MDY0OTksICJzdGVwIjogNjQxMCwgInZhbHVlIjogMC4yMjY4NjQ5NjM3Njk5MTI3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjc0LjY0MjExMjMsICJzdGVwIjogNjQyMCwgInZhbHVlIjogMC4yODQ0NDQ4Mzg3NjIyODMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2ODMuNjY5NjczMiwgInN0ZXAiOiA2NDMwLCAidmFsdWUiOiAwLjE2OTY3MjM4NDg1ODEzMTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzY5Mi44NzYxMjcyLCAic3RlcCI6IDY0NDAsICJ2YWx1ZSI6IDAuMjU3MjMzMzIxNjY2NzE3NTN9LCB7IndhbGxUaW1lIjogMTczMzA3MzcwMi41MTg0NzksICJzdGVwIjogNjQ1MCwgInZhbHVlIjogMC4xNzQ2MDMwMTUxODQ0MDI0N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzEyLjYyNjY4NjYsICJzdGVwIjogNjQ2MCwgInZhbHVlIjogMC4yNTM2MTQwNjgwMzEzMTEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzI0LjA0NjU4MzQsICJzdGVwIjogNjQ3MCwgInZhbHVlIjogMC4zMjA2OTkyNzQ1Mzk5NDc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MzIuODI3NzY1LCAic3RlcCI6IDY0ODAsICJ2YWx1ZSI6IDAuMjM2Njc2NTQzOTUxMDM0NTV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc0MS45NTY1NjYzLCAic3RlcCI6IDY0OTAsICJ2YWx1ZSI6IDAuMjExOTg0MDUzMjU0MTI3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzUwLjcxNzA1MzcsICJzdGVwIjogNjUwMCwgInZhbHVlIjogMC4yMzk5NzY5NTc0NDAzNzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzYwLjQ4NzQ2ODIsICJzdGVwIjogNjUxMCwgInZhbHVlIjogMC4xNTQ1ODk2NTMwMTUxMzY3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzY5Ljg2MjY2OTUsICJzdGVwIjogNjUyMCwgInZhbHVlIjogMC4xNzM0ODg2MzE4NDQ1MjA1N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzc5LjEyNjM5NzYsICJzdGVwIjogNjUzMCwgInZhbHVlIjogMC4xOTk5Mzk1MTkxNjY5NDY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3ODkuNDc3MDY4NywgInN0ZXAiOiA2NTQwLCAidmFsdWUiOiAwLjMwODk3NzUxNDUwNTM4NjM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3OTguMTAyNjk0NywgInN0ZXAiOiA2NTUwLCAidmFsdWUiOiAwLjMzNjE2NzgxMjM0NzQxMjF9LCB7IndhbGxUaW1lIjogMTczMzA3MzgxMC41NTIyMjUsICJzdGVwIjogNjU2MCwgInZhbHVlIjogMC4yMjczMjkwMTU3MzE4MTE1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczODIwLjAzNTczOSwgInN0ZXAiOiA2NTcwLCAidmFsdWUiOiAwLjIwNjY5NzMwMDA3NjQ4NDY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MjguMjM3OTYxOCwgInN0ZXAiOiA2NTgwLCAidmFsdWUiOiAwLjI2MjY3NzQzMTEwNjU2NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MzgzNi43OTc1NTg4LCAic3RlcCI6IDY1OTAsICJ2YWx1ZSI6IDAuMTc2NjMxMTM3NzI4NjkxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDczODQ1Ljk4Njg4NzUsICJzdGVwIjogNjYwMCwgInZhbHVlIjogMC4yMTg0NzkxMjY2OTE4MTgyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODU1LjI1MTUyMTYsICJzdGVwIjogNjYxMCwgInZhbHVlIjogMC4yMDYzOTc5NTA2NDkyNjE0N30sIHsid2FsbFRpbWUiOiAxNzMzMDczODY0LjY5MzEyMjQsICJzdGVwIjogNjYyMCwgInZhbHVlIjogMC4xOTA2NTk1ODI2MTQ4OTg2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODczLjgzNDA2NDcsICJzdGVwIjogNjYzMCwgInZhbHVlIjogMC4yMTI5MzU1ODE4MDMzMjE4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODg3LjUyNDA1NjcsICJzdGVwIjogNjY0MCwgInZhbHVlIjogMC4yNTcwNjI0OTQ3NTQ3OTEyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczODk3LjMzMzQyNDYsICJzdGVwIjogNjY1MCwgInZhbHVlIjogMC4yMjc2MzUzNjg3MDQ3OTU4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTA2Ljg3NjI1MzEsICJzdGVwIjogNjY2MCwgInZhbHVlIjogMC4yMjM3MzI5MTg1MDA5MDAyN30sIHsid2FsbFRpbWUiOiAxNzMzMDczOTE2LjM0OTc0MzYsICJzdGVwIjogNjY3MCwgInZhbHVlIjogMC4yNTY2MzUzOTc2NzI2NTMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5MjUuNjE4MzE0LCAic3RlcCI6IDY2ODAsICJ2YWx1ZSI6IDAuMTg4ODk2MDg5NzkyMjUxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTM0LjkxNjMxODQsICJzdGVwIjogNjY5MCwgInZhbHVlIjogMC4xNzg4NDg4NjI2NDgwMTAyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTQzLjc0MTg2MzUsICJzdGVwIjogNjcwMCwgInZhbHVlIjogMC4xNjgyNTczMjU4ODc2ODAwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTUyLjQ3NjY1OSwgInN0ZXAiOiA2NzEwLCAidmFsdWUiOiAwLjIzMTA3ODgwMzUzOTI3NjEyfV19fV0=", + "ok": true, + "headers": [ + [ + "content-length", + "15048" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Loss/loss_bbox_aux_0%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIkxvc3MvbG9zc19iYm94X2F1eF8wIiwgInJ1blRvU2VyaWVzIjogeyIuIjogW3sid2FsbFRpbWUiOiAxNzMzMDY3NjMxLjUzNzUyNSwgInN0ZXAiOiAwLCAidmFsdWUiOiAxLjg0NDg3NzcxOTg3OTE1MDR9LCB7IndhbGxUaW1lIjogMTczMzA2NzY0Ni42NTA4NjA4LCAic3RlcCI6IDEwLCAidmFsdWUiOiAyLjA4MTI1NTQzNTk0MzYwMzV9LCB7IndhbGxUaW1lIjogMTczMzA2NzY2MC43ODI5NTY4LCAic3RlcCI6IDIwLCAidmFsdWUiOiAxLjg5NzQwNDc4OTkyNDYyMTZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzY3NC4xMzYxNzUsICJzdGVwIjogMzAsICJ2YWx1ZSI6IDEuODE0MDAwMDEwNDkwNDE3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njg3LjA1NTgzNjcsICJzdGVwIjogNDAsICJ2YWx1ZSI6IDIuMDUyMjg3ODE3MDAxMzQyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njk5LjQ5MTczNDMsICJzdGVwIjogNTAsICJ2YWx1ZSI6IDEuMzI4MDA1MTk0NjY0MDAxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzEwLjYyODAzMTUsICJzdGVwIjogNjAsICJ2YWx1ZSI6IDEuNjY3NDc1MTA0MzMxOTcwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzIyLjc1NDI1MTcsICJzdGVwIjogNzAsICJ2YWx1ZSI6IDEuNDQzNDY1NDcxMjY3NzAwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzMzLjcyNDEwODcsICJzdGVwIjogODAsICJ2YWx1ZSI6IDAuOTY3OTYwNDc2ODc1MzA1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzUwLjk0NTAzNCwgInN0ZXAiOiA5MCwgInZhbHVlIjogMS4yNDgyODgzOTMwMjA2Mjk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NjEuOTc5NTY5NywgInN0ZXAiOiAxMDAsICJ2YWx1ZSI6IDEuMDkwOTkzODgxMjI1NTg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NzEuNjA1MTU3OSwgInN0ZXAiOiAxMTAsICJ2YWx1ZSI6IDAuNzI1NzE4ODU1ODU3ODQ5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzgwLjU0NjEwMiwgInN0ZXAiOiAxMjAsICJ2YWx1ZSI6IDAuNjE1ODg2ODY3MDQ2MzU2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzkwLjQ4NDA1OTgsICJzdGVwIjogMTMwLCAidmFsdWUiOiAwLjgxNjM3ODg5MTQ2ODA0ODF9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc5OS4xMDQzNjczLCAic3RlcCI6IDE0MCwgInZhbHVlIjogMC40NDYxODY5MDAxMzg4NTV9LCB7IndhbGxUaW1lIjogMTczMzA2NzgwOS40NDMzNTIyLCAic3RlcCI6IDE1MCwgInZhbHVlIjogMC42MzgzMTg5NTU4OTgyODQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MTguOTE5NDQzMSwgInN0ZXAiOiAxNjAsICJ2YWx1ZSI6IDAuNjA5NTQ2OTU5NDAwMTc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MzYuNjQ4MjU5OSwgInN0ZXAiOiAxNzAsICJ2YWx1ZSI6IDAuNDMzNTkzMDk0MzQ4OTA3NDd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg0Ni4zODk0MTcsICJzdGVwIjogMTgwLCAidmFsdWUiOiAwLjY3MDU0NTEwMTE2NTc3MTV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg1NS42NjU1MTAyLCAic3RlcCI6IDE5MCwgInZhbHVlIjogMC40MzQyNDQyMTU0ODg0MzM4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODY0Ljg4NzYzNzEsICJzdGVwIjogMjAwLCAidmFsdWUiOiAwLjc5Mzc2ODA0ODI4NjQzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODc0LjAwMDM0MzYsICJzdGVwIjogMjEwLCAidmFsdWUiOiAwLjYwNTEyMDAwMzIyMzQxOTJ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg4My43ODM5OTgzLCAic3RlcCI6IDIyMCwgInZhbHVlIjogMC40MjUyMDIxOTA4NzYwMDcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4OTIuMTIxODMyMSwgInN0ZXAiOiAyMzAsICJ2YWx1ZSI6IDAuNTA1NTQzNTI5OTg3MzM1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTAxLjA2ODEzMzQsICJzdGVwIjogMjQwLCAidmFsdWUiOiAwLjUwMTUwNjA5MDE2NDE4NDZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzkxMC4wNzM2MjUsICJzdGVwIjogMjUwLCAidmFsdWUiOiAwLjQ3MDI1NzUyMDY3NTY1OTJ9LCB7IndhbGxUaW1lIjogMTczMzA2NzkyNS45NDg3NzEyLCAic3RlcCI6IDI2MCwgInZhbHVlIjogMC43ODUyNzkxNTQ3Nzc1MjY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MzUuNDU5MzAxNSwgInN0ZXAiOiAyNzAsICJ2YWx1ZSI6IDAuNDM2NTQzNDA1MDU1OTk5NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk0NC4wMTMzNzIyLCAic3RlcCI6IDI4MCwgInZhbHVlIjogMC40ODE1MjQ1MjcwNzI5MDY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NTIuNTQ0NDI4LCAic3RlcCI6IDI5MCwgInZhbHVlIjogMC40NzU0MzU0MzU3NzE5NDIxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTYxLjAyNTQ1LCAic3RlcCI6IDMwMCwgInZhbHVlIjogMC4zMzIyMTgxNzAxNjYwMTU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NzAuMTMzMTY2LCAic3RlcCI6IDMxMCwgInZhbHVlIjogMC41NDM1MjU5MzQyMTkzNjA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5ODAuMjI0NDkzMywgInN0ZXAiOiAzMjAsICJ2YWx1ZSI6IDAuNDUwOTYzMDIwMzI0NzA3MDN9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk4OC44MTQ4MjU1LCAic3RlcCI6IDMzMCwgInZhbHVlIjogMC41NDM0MDExODE2OTc4NDU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMDUuMDg5MzM0LCAic3RlcCI6IDM0MCwgInZhbHVlIjogMC40MTY4NDkyODUzNjQxNTF9LCB7IndhbGxUaW1lIjogMTczMzA2ODAxNC4wNjM4NzIsICJzdGVwIjogMzUwLCAidmFsdWUiOiAwLjQwOTE4MTQ3NTYzOTM0MzI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMjIuNTUxNzYxMiwgInN0ZXAiOiAzNjAsICJ2YWx1ZSI6IDAuNDY5ODk2MDE4NTA1MDk2NDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODAzMS44MjM0NjczLCAic3RlcCI6IDM3MCwgInZhbHVlIjogMC41MDYyMTc1OTg5MTUxMDAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNDAuNzg2NTgxOCwgInN0ZXAiOiAzODAsICJ2YWx1ZSI6IDAuMzYyODY4NjM2ODQ2NTQyMzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODA1MC4xNTkwMjkyLCAic3RlcCI6IDM5MCwgInZhbHVlIjogMC4zOTYwODc0OTc0NzI3NjMwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDU5LjEyNDg3MzQsICJzdGVwIjogNDAwLCAidmFsdWUiOiAwLjMwNDc0NTE2NzQ5MzgyMDJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODA2OC4wODg5MzA0LCAic3RlcCI6IDQxMCwgInZhbHVlIjogMC42NzA1MzEzOTIwOTc0NzMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwODQuODQyNzgwNiwgInN0ZXAiOiA0MjAsICJ2YWx1ZSI6IDAuMzg5OTkyODMzMTM3NTEyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDk0LjY2NTQwODQsICJzdGVwIjogNDMwLCAidmFsdWUiOiAwLjUxNTA2NzUxNzc1NzQxNTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODEwMy43MDY5NDI2LCAic3RlcCI6IDQ0MCwgInZhbHVlIjogMC4zNTIwMTYyNDAzNTgzNTI2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTEyLjY5ODU4MzYsICJzdGVwIjogNDUwLCAidmFsdWUiOiAwLjQzOTA0MjUwODYwMjE0MjMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMjEuNDk5OTY0NywgInN0ZXAiOiA0NjAsICJ2YWx1ZSI6IDAuNTM0MTE4MDU2Mjk3MzAyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTMwLjcyNjc0ODIsICJzdGVwIjogNDcwLCAidmFsdWUiOiAwLjQxOTI1NjY1NzM2MTk4NDI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMzkuODU0NzI1LCAic3RlcCI6IDQ4MCwgInZhbHVlIjogMC40MDE3NjUxNjc3MTMxNjUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxNDkuMzY5MTE3NSwgInN0ZXAiOiA0OTAsICJ2YWx1ZSI6IDAuNTM1ODI4MTEzNTU1OTA4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTU4LjA2OTExMDIsICJzdGVwIjogNTAwLCAidmFsdWUiOiAwLjUyNDkzNzM5MTI4MTEyNzl9LCB7IndhbGxUaW1lIjogMTczMzA2ODE3NC4xMTQyMTA4LCAic3RlcCI6IDUxMCwgInZhbHVlIjogMC40ODMwNDIwMDE3MjQyNDMxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTgyLjcxODY5MywgInN0ZXAiOiA1MjAsICJ2YWx1ZSI6IDAuMzc5NTc2ODMyMDU2MDQ1NTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODE5Mi40MTI3MjEyLCAic3RlcCI6IDUzMCwgInZhbHVlIjogMC40MDQ2ODg3NDU3MzcwNzU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMDEuODA3MjM1LCAic3RlcCI6IDU0MCwgInZhbHVlIjogMC4zOTM5MjkwMzQ0NzE1MTE4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjEwLjY1MzY2NiwgInN0ZXAiOiA1NTAsICJ2YWx1ZSI6IDAuNjAyMTEzNjY0MTUwMjM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMjAuMTk0MjI5NCwgInN0ZXAiOiA1NjAsICJ2YWx1ZSI6IDAuNzI4NzA1Mjg2OTc5Njc1M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjI5LjE1ODQyNDksICJzdGVwIjogNTcwLCAidmFsdWUiOiAwLjMyNzU1NjI4MjI4MTg3NTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODIzOC41OTA2NzEzLCAic3RlcCI6IDU4MCwgInZhbHVlIjogMC4yOTgyMzA3NjcyNTAwNjEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjU2LjA3MTk3NzQsICJzdGVwIjogNTkwLCAidmFsdWUiOiAwLjQwODQ0MDIzMjI3NjkxNjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODI2NS40MzEwMjM0LCAic3RlcCI6IDYwMCwgInZhbHVlIjogMC41MTA2MjY2NzM2OTg0MjUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNzQuNjU1NzAyLCAic3RlcCI6IDYxMCwgInZhbHVlIjogMC42NTY1MjA4NDM1MDU4NTk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyODMuNzY5MTQ4LCAic3RlcCI6IDYyMCwgInZhbHVlIjogMC41OTU5MTQ0ODMwNzAzNzM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyOTMuMzMzMzI3NSwgInN0ZXAiOiA2MzAsICJ2YWx1ZSI6IDAuNDY1MzQ1NDQyMjk1MDc0NDZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODMwMi42NDYzMjc1LCAic3RlcCI6IDY0MCwgInZhbHVlIjogMC4zODg2MjAxMzgxNjgzMzQ5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzExLjM4NzMwMywgInN0ZXAiOiA2NTAsICJ2YWx1ZSI6IDAuMzQ4MTk2MzI3Njg2MzA5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzIwLjM4OTI5NywgInN0ZXAiOiA2NjAsICJ2YWx1ZSI6IDAuNDU1NDc0NjE1MDk3MDQ1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzI4LjczMDQ0MjMsICJzdGVwIjogNjcwLCAidmFsdWUiOiAwLjM2NTUzMzY0OTkyMTQxNzI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNDQuNDYwMzI0MywgInN0ZXAiOiA2ODAsICJ2YWx1ZSI6IDAuNDAwNDM4NTc2OTM2NzIxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzUzLjcxNjE1NDgsICJzdGVwIjogNjkwLCAidmFsdWUiOiAwLjM1ODkwODg5MTY3Nzg1NjQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNjIuMDU3MTI5NiwgInN0ZXAiOiA3MDAsICJ2YWx1ZSI6IDAuMzQzNjA0ODYyNjg5OTcxOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzcxLjEwMzI2NDgsICJzdGVwIjogNzEwLCAidmFsdWUiOiAwLjUzODA3NTkyMzkxOTY3Nzd9LCB7IndhbGxUaW1lIjogMTczMzA2ODM4MC41MzIzMTEyLCAic3RlcCI6IDcyMCwgInZhbHVlIjogMC40MjQ4MDg0NDI1OTI2MjA4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzkwLjA4NTk1OTIsICJzdGVwIjogNzMwLCAidmFsdWUiOiAwLjMxMTI5Mzg0MDQwODMyNTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODM5OC43MjAyNSwgInN0ZXAiOiA3NDAsICJ2YWx1ZSI6IDAuNDgwMDI0Nzg0ODAzMzkwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDA3LjEyMzI1MTQsICJzdGVwIjogNzUwLCAidmFsdWUiOiAwLjQxMTg4NjAwNjU5MzcwNDJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODQyMy4wNjkzNjE3LCAic3RlcCI6IDc2MCwgInZhbHVlIjogMC40MDMxMzY2NDA3ODcxMjQ2M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDMxLjQwNDU1OTQsICJzdGVwIjogNzcwLCAidmFsdWUiOiAwLjM0MDU5NDkxNzUzNTc4MTg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NDAuNDI0MTgxLCAic3RlcCI6IDc4MCwgInZhbHVlIjogMC4zNTI2NjUxNTYxMjYwMjIzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDQ5LjAwNTcwNTQsICJzdGVwIjogNzkwLCAidmFsdWUiOiAwLjM3NjA5Njc4NTA2ODUxMTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NTcuNjM2MTAzLCAic3RlcCI6IDgwMCwgInZhbHVlIjogMC4zOTYyNTA1MTYxNzYyMjM3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDY3LjA0NjUzNzIsICJzdGVwIjogODEwLCAidmFsdWUiOiAwLjM3NDUzNjc4MjUwMzEyODA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NzUuNjE5NzMwNywgInN0ZXAiOiA4MjAsICJ2YWx1ZSI6IDAuMzY3MDcwNzM0NTAwODg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0ODQuOTc4MTgxMSwgInN0ZXAiOiA4MzAsICJ2YWx1ZSI6IDAuMzczNDY0ODUyNTcxNDg3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTAwLjczMDkxNDgsICJzdGVwIjogODQwLCAidmFsdWUiOiAwLjM5NjQ4NDQzNDYwNDY0NDh9LCB7IndhbGxUaW1lIjogMTczMzA2ODUwOS4zMDcyMDA3LCAic3RlcCI6IDg1MCwgInZhbHVlIjogMC40MjE1NjMyMzc5MDU1MDIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MTkuMDIxNTc2MiwgInN0ZXAiOiA4NjAsICJ2YWx1ZSI6IDAuNDE4OTc0MjgwMzU3MzYwODR9LCB7IndhbGxUaW1lIjogMTczMzA2ODUyNy40OTgwMDc4LCAic3RlcCI6IDg3MCwgInZhbHVlIjogMC4zMzUxOTI0MTIxMzc5ODUyM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTM2LjkxOTczODgsICJzdGVwIjogODgwLCAidmFsdWUiOiAwLjQ4OTQ2NDQwMjE5ODc5MTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODU0NC45MDgyNzEzLCAic3RlcCI6IDg5MCwgInZhbHVlIjogMC4zNjUzMDc5ODY3MzYyOTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NTMuNTc4NDg3NiwgInN0ZXAiOiA5MDAsICJ2YWx1ZSI6IDAuMzc4NjE0ODQyODkxNjkzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTYyLjY4NTU0MDIsICJzdGVwIjogOTEwLCAidmFsdWUiOiAwLjQxODQxMzI4MTQ0MDczNDg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NzEuMjQ1ODY5OSwgInN0ZXAiOiA5MjAsICJ2YWx1ZSI6IDAuMzM2NjY0NjE3MDYxNjE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1ODQuNzc1ODQxLCAic3RlcCI6IDkzMCwgInZhbHVlIjogMC4zODcwNzk1NjY3MTcxNDc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1OTMuNzcyMTkzLCAic3RlcCI6IDk0MCwgInZhbHVlIjogMC4zNzIxNzQ1NjEwMjM3MTIxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjAyLjc2NjM4NDYsICJzdGVwIjogOTUwLCAidmFsdWUiOiAwLjQ1OTc1NDgyNDYzODM2Njd9LCB7IndhbGxUaW1lIjogMTczMzA2ODYxMS4wNDA0MjI3LCAic3RlcCI6IDk2MCwgInZhbHVlIjogMC4yNzY4Mzk1MjQ1MDc1MjI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MjAuMjI3MjgxOCwgInN0ZXAiOiA5NzAsICJ2YWx1ZSI6IDAuMzM3NzQ5NTcwNjA4MTM5MDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODYyOC44NDIyNDA4LCAic3RlcCI6IDk4MCwgInZhbHVlIjogMC40MDMyOTc4NzEzNTEyNDIwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjM3LjYzMTE3MTUsICJzdGVwIjogOTkwLCAidmFsdWUiOiAwLjMzNDcwMTE4MDQ1ODA2ODg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2NDYuNjczNzkyNCwgInN0ZXAiOiAxMDAwLCAidmFsdWUiOiAwLjM5MjExNDM0MTI1OTAwMjd9LCB7IndhbGxUaW1lIjogMTczMzA2ODY2Mi43NTc1NTI0LCAic3RlcCI6IDEwMTAsICJ2YWx1ZSI6IDAuMjYzNTA3NDI1Nzg1MDY0N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjcyLjA1NTI2MTYsICJzdGVwIjogMTAyMCwgInZhbHVlIjogMC4zMDY3MjE0MTkwOTU5OTMwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjgwLjU2MzkzNjUsICJzdGVwIjogMTAzMCwgInZhbHVlIjogMC4zMjM1NTUzMjA1MDEzMjc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2OTAuMTg2NjEwNywgInN0ZXAiOiAxMDQwLCAidmFsdWUiOiAwLjM2MTQ2OTk1NDI1MjI0MzA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2OTguODQ4OTMzNywgInN0ZXAiOiAxMDUwLCAidmFsdWUiOiAwLjM0MzY3NzEzMzMyMTc2MjF9LCB7IndhbGxUaW1lIjogMTczMzA2ODcwNy43NDQzNTYyLCAic3RlcCI6IDEwNjAsICJ2YWx1ZSI6IDAuNzczNjU4MDk2NzkwMzEzN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzE3LjM0NTU2NCwgInN0ZXAiOiAxMDcwLCAidmFsdWUiOiAwLjM0MjM4NDE1OTU2NDk3MTl9LCB7IndhbGxUaW1lIjogMTczMzA2ODcyNi4zNjIzMDczLCAic3RlcCI6IDEwODAsICJ2YWx1ZSI6IDAuNDE5NjI4Njc5NzUyMzQ5ODV9LCB7IndhbGxUaW1lIjogMTczMzA2ODczNS4yNTI3NDgzLCAic3RlcCI6IDEwOTAsICJ2YWx1ZSI6IDAuNDQyMDM0OTI5OTkwNzY4NDN9LCB7IndhbGxUaW1lIjogMTczMzA2ODc0OS41NDg4OTU4LCAic3RlcCI6IDExMDAsICJ2YWx1ZSI6IDAuMzU0NzI5Mjk0Nzc2OTE2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzU4LjM3NjMzOTQsICJzdGVwIjogMTExMCwgInZhbHVlIjogMC40NDM3OTEyMTA2NTEzOTc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3NjcuMDA0NzkyLCAic3RlcCI6IDExMjAsICJ2YWx1ZSI6IDAuNTIyMTk5OTg4MzY1MTczM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4Nzc2LjYxOTgwOCwgInN0ZXAiOiAxMTMwLCAidmFsdWUiOiAwLjQ1OTE4OTY4MzE5ODkyODgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3ODUuNDAyMDg4MiwgInN0ZXAiOiAxMTQwLCAidmFsdWUiOiAwLjI0NjczNTkwMDY0MDQ4NzY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3OTQuMjc5OTgwNywgInN0ZXAiOiAxMTUwLCAidmFsdWUiOiAwLjQwNTk0MDY1MTg5MzYxNTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODgwMi42OTgyOTM3LCAic3RlcCI6IDExNjAsICJ2YWx1ZSI6IDAuMjg4MjA4NDg0NjQ5NjU4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODExLjU1MjQyNjgsICJzdGVwIjogMTE3MCwgInZhbHVlIjogMC4zODUxNDcxODQxMzM1Mjk2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODI0Ljk2NjY5OTgsICJzdGVwIjogMTE4MCwgInZhbHVlIjogMC4yMzI1NzU3NDQzOTA0ODc2N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODM0LjM3ODE1OCwgInN0ZXAiOiAxMTkwLCAidmFsdWUiOiAwLjM2Njk5Mzg0NDUwOTEyNDc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NDMuNTE3MTE2MywgInN0ZXAiOiAxMjAwLCAidmFsdWUiOiAwLjQ0NjUwNTg3NDM5NTM3MDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODg1Mi4yMjk0MTI2LCAic3RlcCI6IDEyMTAsICJ2YWx1ZSI6IDAuMzQ4MjYwOTM5MTIxMjQ2MzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODg2MS4xMTc5MDksICJzdGVwIjogMTIyMCwgInZhbHVlIjogMC4zNjI3Njc5OTQ0MDM4MzkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NzAuMDU2ODUyMywgInN0ZXAiOiAxMjMwLCAidmFsdWUiOiAwLjYyNTMxNjc5ODY4Njk4MTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODg3OC43MjEzNzEyLCAic3RlcCI6IDEyNDAsICJ2YWx1ZSI6IDAuNDI1NjkxNjA0NjE0MjU3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODg3LjczOTA2MzUsICJzdGVwIjogMTI1MCwgInZhbHVlIjogMC4zNDAxMDM4NjQ2Njk3OTk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MDMuMTY3NzIzLCAic3RlcCI6IDEyNjAsICJ2YWx1ZSI6IDAuNDkzMjcxNDcwMDY5ODg1MjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODkxMi40MTUwNTQzLCAic3RlcCI6IDEyNzAsICJ2YWx1ZSI6IDAuMjg3NDcxNTkyNDI2MzAwMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODkyMS40NzM2MTY4LCAic3RlcCI6IDEyODAsICJ2YWx1ZSI6IDAuMzQxMjkwMjk1MTI0MDUzOTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODkyOS43NDc2Mjk2LCAic3RlcCI6IDEyOTAsICJ2YWx1ZSI6IDAuMzgzNjc4Njc0Njk3ODc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MzkuNTAyMjc5OCwgInN0ZXAiOiAxMzAwLCAidmFsdWUiOiAwLjMzNTg3NDE0MDI2MjYwMzc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NDguOTI4NDYwMSwgInN0ZXAiOiAxMzEwLCAidmFsdWUiOiAwLjM5NTQ2MTczODEwOTU4ODZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODk1Ny4yMzUzNzc2LCAic3RlcCI6IDEzMjAsICJ2YWx1ZSI6IDAuNDgwMjk3MTc4MDMwMDE0MDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODk2Ni4wNzgwMTA2LCAic3RlcCI6IDEzMzAsICJ2YWx1ZSI6IDAuMjkxNzI4NDk2NTUxNTEzNjd9LCB7IndhbGxUaW1lIjogMTczMzA2ODk3NS41NjYxMzQ1LCAic3RlcCI6IDEzNDAsICJ2YWx1ZSI6IDAuNTI4MzMwMzg1Njg0OTY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5ODkuNzk4NjI2NCwgInN0ZXAiOiAxMzUwLCAidmFsdWUiOiAwLjM5MDAzODM0MTI4Mzc5ODJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODk5OC4yODIwMDM5LCAic3RlcCI6IDEzNjAsICJ2YWx1ZSI6IDAuMjg5OTcyNzgyMTM1MDA5Nzd9LCB7IndhbGxUaW1lIjogMTczMzA2OTAwNy4xNDg5Mjk0LCAic3RlcCI6IDEzNzAsICJ2YWx1ZSI6IDAuMzU2ODIzNjUyOTgyNzExOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDE1LjkyMTc1MywgInN0ZXAiOiAxMzgwLCAidmFsdWUiOiAwLjIxNDMwNzAzOTk3NjEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwMjUuMzA0MTg2OCwgInN0ZXAiOiAxMzkwLCAidmFsdWUiOiAwLjM2NDM0NTkwODE2NDk3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDM0LjQ4MjM1NjgsICJzdGVwIjogMTQwMCwgInZhbHVlIjogMC4yNjQ1OTc4OTI3NjEyMzA0N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDQyLjc5MzkxNzQsICJzdGVwIjogMTQxMCwgInZhbHVlIjogMC40MzI1NDQzMjA4MjE3NjIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNTIuMTM4NDI1NCwgInN0ZXAiOiAxNDIwLCAidmFsdWUiOiAwLjI1ODQ4MjcyNDQyODE3Njl9LCB7IndhbGxUaW1lIjogMTczMzA2OTA2NS4wMDI0MzQ3LCAic3RlcCI6IDE0MzAsICJ2YWx1ZSI6IDAuMzAzMjkxMDUyNTc5ODc5NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTA3NC41MjQ4MjYsICJzdGVwIjogMTQ0MCwgInZhbHVlIjogMC4zMjE1Nzg4MDA2NzgyNTMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwODMuNzgzNDA2MywgInN0ZXAiOiAxNDUwLCAidmFsdWUiOiAwLjM3NzEyODU3MTI3MTg5NjM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwOTIuMjU4NzI1LCAic3RlcCI6IDE0NjAsICJ2YWx1ZSI6IDAuMzAzMjg3Mzg2ODk0MjI2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTAxLjAzMDM3MTQsICJzdGVwIjogMTQ3MCwgInZhbHVlIjogMC4zNDM3NzI1MzA1NTU3MjUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMDkuOTA2MTg5NywgInN0ZXAiOiAxNDgwLCAidmFsdWUiOiAwLjMwODk3Njg1ODg1NDI5Mzh9LCB7IndhbGxUaW1lIjogMTczMzA2OTExOS4xMTg2MDM3LCAic3RlcCI6IDE0OTAsICJ2YWx1ZSI6IDAuMjM1ODQ5MDM3NzY2NDU2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTI4LjQxNTkxMTQsICJzdGVwIjogMTUwMCwgInZhbHVlIjogMC4zMjQxNDk2NjgyMTY3MDUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMzcuNjA2NTU5OCwgInN0ZXAiOiAxNTEwLCAidmFsdWUiOiAwLjQ1MjgxODMzNDEwMjYzMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTE1MC41NDMyMzM0LCAic3RlcCI6IDE1MjAsICJ2YWx1ZSI6IDAuNDA1MTU1OTg2NTQ3NDcwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTU5Ljc1Njc5NDIsICJzdGVwIjogMTUzMCwgInZhbHVlIjogMC40NDU3MTAyNzE1OTY5MDg1N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTY4LjE2OTk5NjMsICJzdGVwIjogMTU0MCwgInZhbHVlIjogMC4yMTY4MTYyNDY1MDk1NTJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTE3Ni44NDA3MiwgInN0ZXAiOiAxNTUwLCAidmFsdWUiOiAwLjQzNTMwNTg5MzQyMTE3MzF9LCB7IndhbGxUaW1lIjogMTczMzA2OTE4NS44OTIwMzQ4LCAic3RlcCI6IDE1NjAsICJ2YWx1ZSI6IDAuMjI3Njk2MzI5MzU1MjM5ODd9LCB7IndhbGxUaW1lIjogMTczMzA2OTE5NC45MjM2MDUyLCAic3RlcCI6IDE1NzAsICJ2YWx1ZSI6IDAuMzg4NTgwNTkwNDg2NTI2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjAzLjkxMTkwNjcsICJzdGVwIjogMTU4MCwgInZhbHVlIjogMC4zMzAwNjQ2NTQzNTAyODA3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjEyLjcxNTIwMjYsICJzdGVwIjogMTU5MCwgInZhbHVlIjogMC4yNjM0Njg4NjE1Nzk4OTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTIyNS41MzM2MDIsICJzdGVwIjogMTYwMCwgInZhbHVlIjogMC4yOTA3NTM2NjI1ODYyMTIxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjM1LjQ2MzU2NjgsICJzdGVwIjogMTYxMCwgInZhbHVlIjogMC40Mzk4OTgxOTI4ODI1Mzc4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjQ0LjYyOTE3MjgsICJzdGVwIjogMTYyMCwgInZhbHVlIjogMC40OTYyMDQ1NTUwMzQ2Mzc0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjU0LjI3MTM1NiwgInN0ZXAiOiAxNjMwLCAidmFsdWUiOiAwLjM0ODAzNDA4Mzg0MzIzMTJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTI2My4wMDUwNTMsICJzdGVwIjogMTY0MCwgInZhbHVlIjogMC4yODE5NTQxMzk0NzEwNTQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNzEuODY2NDExNywgInN0ZXAiOiAxNjUwLCAidmFsdWUiOiAwLjQ0MzQzNTkwNzM2Mzg5MTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTI4MC41MDk2MzA3LCAic3RlcCI6IDE2NjAsICJ2YWx1ZSI6IDAuMjg2NzUzMDU4NDMzNTMyN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5Mjg5LjY3OTQ1NywgInN0ZXAiOiAxNjcwLCAidmFsdWUiOiAwLjM3NDc3MDU4MTcyMjI1OTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTMwMy42MDg3NTEsICJzdGVwIjogMTY4MCwgInZhbHVlIjogMC40ODU0MDM4OTUzNzgxMTI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMTIuNDc5MzEzLCAic3RlcCI6IDE2OTAsICJ2YWx1ZSI6IDAuMzgzMzU0MTg3MDExNzE4NzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTMyMS44MzgxNTkzLCAic3RlcCI6IDE3MDAsICJ2YWx1ZSI6IDAuNDczNjkyMTE5MTIxNTUxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzMwLjM0Nzc0OTcsICJzdGVwIjogMTcxMCwgInZhbHVlIjogMC4zMDk5NTQyODU2MjE2NDMwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzM5LjI0NDg0NTQsICJzdGVwIjogMTcyMCwgInZhbHVlIjogMC4yMzg1NzkxMjQyMTIyNjUwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzQ2Ljg1NjYxMDgsICJzdGVwIjogMTczMCwgInZhbHVlIjogMC4yNDQ3OTc3OTYwMTA5NzEwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzU1LjY1MjM2NzgsICJzdGVwIjogMTc0MCwgInZhbHVlIjogMC40NTY1MDAwMjM2MDM0MzkzM30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzY0LjUxMTcyOCwgInN0ZXAiOiAxNzUwLCAidmFsdWUiOiAwLjM2NDgyMzAxMzU0NDA4MjY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNzMuNzM4MzM4NSwgInN0ZXAiOiAxNzYwLCAidmFsdWUiOiAwLjMzNDM0MzA0NTk0OTkzNTl9LCB7IndhbGxUaW1lIjogMTczMzA2OTM4Ny41NDA3NDE3LCAic3RlcCI6IDE3NzAsICJ2YWx1ZSI6IDAuMzEyNzEzMzg0NjI4Mjk1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Mzk2LjQ2NjUzMTMsICJzdGVwIjogMTc4MCwgInZhbHVlIjogMC4yNzkwNDYxNDgwNjE3NTIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MDUuOTk2MDIzNywgInN0ZXAiOiAxNzkwLCAidmFsdWUiOiAwLjIxMTI4ODQ1MjE0ODQzNzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTQxNS4wNTM0NTU0LCAic3RlcCI6IDE4MDAsICJ2YWx1ZSI6IDAuMjUxNTc3NTU2MTMzMjcwMjZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTQyMy45MDcyMjI3LCAic3RlcCI6IDE4MTAsICJ2YWx1ZSI6IDAuMjEyMjE5MTc4Njc2NjA1MjJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTQzMi41MzA4MTk0LCAic3RlcCI6IDE4MjAsICJ2YWx1ZSI6IDAuNDIyNjk0MTE2ODMwODI1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDQxLjIxNjgzMywgInN0ZXAiOiAxODMwLCAidmFsdWUiOiAwLjM0NDgzMTgyNDMwMjY3MzM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NTAuMDg2NjA4LCAic3RlcCI6IDE4NDAsICJ2YWx1ZSI6IDAuMjQxNjMxNjg2Njg3NDY5NDh9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ2My4xMDYzNjUyLCAic3RlcCI6IDE4NTAsICJ2YWx1ZSI6IDAuMjMyMTI3MTU5ODMzOTA4MDh9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ3MS41NzIzMjQ4LCAic3RlcCI6IDE4NjAsICJ2YWx1ZSI6IDAuMjYxODI4MTg0MTI3ODA3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDgwLjQ5NzU0MjQsICJzdGVwIjogMTg3MCwgInZhbHVlIjogMC41MjUzOTA4NjM0MTg1NzkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0ODkuMzg0MjE1NCwgInN0ZXAiOiAxODgwLCAidmFsdWUiOiAwLjQzMzcwNTIxMDY4NTczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0OTcuOTc2MDQyNywgInN0ZXAiOiAxODkwLCAidmFsdWUiOiAwLjQxNzA2MzA4NzIyNDk2MDN9LCB7IndhbGxUaW1lIjogMTczMzA2OTUwNi43OTM1NDcyLCAic3RlcCI6IDE5MDAsICJ2YWx1ZSI6IDAuMzIxMDQ2MjYyOTc5NTA3NDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTUxNS44MjM5NTMsICJzdGVwIjogMTkxMCwgInZhbHVlIjogMC4yNDk0NjA0NTg3NTU0OTMxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTI0LjYzNTgwNTEsICJzdGVwIjogMTkyMCwgInZhbHVlIjogMC4yODYzMTM1NjM1ODUyODEzN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTMzLjU0MTM3MDQsICJzdGVwIjogMTkzMCwgInZhbHVlIjogMC4yMjcxMDgzNTkzMzY4NTMwM30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTUwLjQ3NzIxNDgsICJzdGVwIjogMTk0MCwgInZhbHVlIjogMC4zODA5ODY1NzEzMTE5NTA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NTguODI3MDI2NiwgInN0ZXAiOiAxOTUwLCAidmFsdWUiOiAwLjI2MDY1MTc5NzA1NjE5ODF9LCB7IndhbGxUaW1lIjogMTczMzA2OTU2Ny43NTcxNTExLCAic3RlcCI6IDE5NjAsICJ2YWx1ZSI6IDAuMjYyMTU5Nzk0NTY5MDE1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTc2LjM0NDQyNjksICJzdGVwIjogMTk3MCwgInZhbHVlIjogMC4yNjMxMjUxMjE1OTM0NzUzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTg1LjUyODQ3MDUsICJzdGVwIjogMTk4MCwgInZhbHVlIjogMC40MDU0NTQ0NTY4MDYxODI4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTk0LjM0OTQ4MywgInN0ZXAiOiAxOTkwLCAidmFsdWUiOiAwLjM5MTczNzY5OTUwODY2N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjAyLjQwMDg4MjcsICJzdGVwIjogMjAwMCwgInZhbHVlIjogMC41Njg3NDk2NjYyMTM5ODkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MTAuMjQ5MTAzNSwgInN0ZXAiOiAyMDEwLCAidmFsdWUiOiAwLjQ3NDUyMTg3NTM4MTQ2OTd9LCB7IndhbGxUaW1lIjogMTczMzA2OTYyNi42ODYwNjY2LCAic3RlcCI6IDIwMjAsICJ2YWx1ZSI6IDAuNDEyMTA3NzM1ODcyMjY4N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjM1LjAzMDE3MjMsICJzdGVwIjogMjAzMCwgInZhbHVlIjogMC4yNjMzMzMxMTIwMDE0MTkwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjQzLjgyMTc4OTcsICJzdGVwIjogMjA0MCwgInZhbHVlIjogMC4yNTU1NjE4Mjg2MTMyODEyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjUyLjE5MzY5OTQsICJzdGVwIjogMjA1MCwgInZhbHVlIjogMC4yOTcyNDAzNzY0NzI0NzMxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjYwLjQ1MjY2NzIsICJzdGVwIjogMjA2MCwgInZhbHVlIjogMC40MjQxNjUxODkyNjYyMDQ4M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjY5LjU5MTI5OTMsICJzdGVwIjogMjA3MCwgInZhbHVlIjogMC4zNDAwOTAzMzQ0MTU0MzU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NzguNzc3NTM5NywgInN0ZXAiOiAyMDgwLCAidmFsdWUiOiAwLjUyMjcwNjU2ODI0MTExOTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTY4Ni45NDQwMTcsICJzdGVwIjogMjA5MCwgInZhbHVlIjogMC40MDkyMjE5NDcxOTMxNDU3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzAwLjYwMTI0MDYsICJzdGVwIjogMjEwMCwgInZhbHVlIjogMC4zMzY1NDQ1NzMzMDcwMzczNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzA4LjcyNTU1MiwgInN0ZXAiOiAyMTEwLCAidmFsdWUiOiAwLjI0MDUwMjQzMTk4ODcxNjEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MTcuNDQ3NDc5LCAic3RlcCI6IDIxMjAsICJ2YWx1ZSI6IDAuMjk3MDI3MTcwNjU4MTExNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzI2LjE0MDQwODMsICJzdGVwIjogMjEzMCwgInZhbHVlIjogMC4zMDk2NzAyMDk4ODQ2NDM1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzM1LjAzNzMwNTYsICJzdGVwIjogMjE0MCwgInZhbHVlIjogMC4zMzI1ODY0NjcyNjYwODI3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzQzLjMwNTI5MiwgInN0ZXAiOiAyMTUwLCAidmFsdWUiOiAwLjI4NjY5OTkyMDg5MjcxNTQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NTIuNTAwMDQ1MywgInN0ZXAiOiAyMTYwLCAidmFsdWUiOiAwLjMyNDA0MTQyNjE4MTc5MzJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTc2MS40NTAxNzM2LCAic3RlcCI6IDIxNzAsICJ2YWx1ZSI6IDAuMzExOTcxMzY2NDA1NDg3MDZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTc3MC40MzIzNzc2LCAic3RlcCI6IDIxODAsICJ2YWx1ZSI6IDAuNDAxMDczNjM0NjI0NDgxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Nzg0LjM2MjU0NSwgInN0ZXAiOiAyMTkwLCAidmFsdWUiOiAwLjM3NDM0OTE3Njg4MzY5NzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTc5My4xMjE2MDM1LCAic3RlcCI6IDIyMDAsICJ2YWx1ZSI6IDAuMTc1ODA4NzQyNjQyNDAyNjV9LCB7IndhbGxUaW1lIjogMTczMzA2OTgwMS42MzUzMDEsICJzdGVwIjogMjIxMCwgInZhbHVlIjogMC4yOTQ5NTg4ODk0ODQ0MDU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MTAuNjA3MDE4MiwgInN0ZXAiOiAyMjIwLCAidmFsdWUiOiAwLjQwODc0ODIwOTQ3NjQ3MDk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MTkuMzQwOTY3NCwgInN0ZXAiOiAyMjMwLCAidmFsdWUiOiAwLjI3MjAwNDgxMjk1NTg1NjN9LCB7IndhbGxUaW1lIjogMTczMzA2OTgyNy4zMjUyNjQsICJzdGVwIjogMjI0MCwgInZhbHVlIjogMC4zODY5MTEwOTQxODg2OTAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MzUuODY2OTA1NSwgInN0ZXAiOiAyMjUwLCAidmFsdWUiOiAwLjI4MjA5MzI1NjcxMTk1OTg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NDQuMjM0OTkzNSwgInN0ZXAiOiAyMjYwLCAidmFsdWUiOiAwLjMxNjUxMDc2Njc0NDYxMzY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NTYuNzQ4Mjg1OCwgInN0ZXAiOiAyMjcwLCAidmFsdWUiOiAwLjI3MDA2Nzk2MDAyMzg4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NjUuMjU2NzIyLCAic3RlcCI6IDIyODAsICJ2YWx1ZSI6IDAuMjIzMDAwNzk0NjQ5MTI0MTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTg3NC4wMDQzMTgsICJzdGVwIjogMjI5MCwgInZhbHVlIjogMC4yMDMyMzkzMjE3MDg2NzkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4ODEuNzgwNzMyOSwgInN0ZXAiOiAyMzAwLCAidmFsdWUiOiAwLjM3NjMwOTQ4NDI0MzM5Mjk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4OTAuNDEyODE3LCAic3RlcCI6IDIzMTAsICJ2YWx1ZSI6IDAuMjYxMTIxMDM0NjIyMTkyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODk4Ljg3NTY1OTIsICJzdGVwIjogMjMyMCwgInZhbHVlIjogMC4yNjk2NzQwMDMxMjQyMzcwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTA4LjMxNjc0MTcsICJzdGVwIjogMjMzMCwgInZhbHVlIjogMC4yNzk0ODc5OTcyOTM0NzIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MTcuNDE0MTg1MywgInN0ZXAiOiAyMzQwLCAidmFsdWUiOiAwLjM3MTE3NTg4NTIwMDUwMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTkyNS44NDk0MzQ2LCAic3RlcCI6IDIzNTAsICJ2YWx1ZSI6IDAuMjMyODE2NzcwNjcyNzk4MTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTkzOC43MDEwNjU4LCAic3RlcCI6IDIzNjAsICJ2YWx1ZSI6IDAuMzQ1Njk4NTk1MDQ2OTk3MDd9LCB7IndhbGxUaW1lIjogMTczMzA2OTk0Ny40MjUxMywgInN0ZXAiOiAyMzcwLCAidmFsdWUiOiAwLjM4MTU2NTQ1MTYyMjAwOTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTk1Ni4yMDUwMDY2LCAic3RlcCI6IDIzODAsICJ2YWx1ZSI6IDAuNDAwMTMzMjgxOTQ2MTgyMjV9LCB7IndhbGxUaW1lIjogMTczMzA2OTk2NC4yNzM2ODgsICJzdGVwIjogMjM5MCwgInZhbHVlIjogMC4zMDA5NzYyMTY3OTMwNjAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NzMuMzI1MDY3LCAic3RlcCI6IDI0MDAsICJ2YWx1ZSI6IDAuMjM2MTgzMTgxNDA1MDY3NDR9LCB7IndhbGxUaW1lIjogMTczMzA2OTk4MS40MzExMDcsICJzdGVwIjogMjQxMCwgInZhbHVlIjogMC4yNTc4MTkyMDU1MjI1MzcyM30sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTkwLjEzODU4NSwgInN0ZXAiOiAyNDIwLCAidmFsdWUiOiAwLjI4MDQ4OTY4MzE1MTI0NTF9LCB7IndhbGxUaW1lIjogMTczMzA2OTk5OC43OTY3MzIsICJzdGVwIjogMjQzMCwgInZhbHVlIjogMC4zMDk2NDE3Nzg0NjkwODU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMTIuNDU0NzA3NiwgInN0ZXAiOiAyNDQwLCAidmFsdWUiOiAwLjI2ODA4MjIwMTQ4MDg2NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDAyMS41OTc5MDksICJzdGVwIjogMjQ1MCwgInZhbHVlIjogMC4yNTAwMTk0MDEzMTE4NzQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMzAuMTg5ODk5LCAic3RlcCI6IDI0NjAsICJ2YWx1ZSI6IDAuMjY3MzE5NTYwMDUwOTY0MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDAzOS4yMTgyMjkzLCAic3RlcCI6IDI0NzAsICJ2YWx1ZSI6IDAuMjkxNTUxNTMwMzYxMTc1NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDA0OC4yNjc4NTU0LCAic3RlcCI6IDI0ODAsICJ2YWx1ZSI6IDAuMzU1NzU4NTE3OTgwNTc1NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDA1Ni4xNTQ2MzM4LCAic3RlcCI6IDI0OTAsICJ2YWx1ZSI6IDAuMzg2ODk2MzcxODQxNDMwNjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDA2NC40NDk1MzIzLCAic3RlcCI6IDI1MDAsICJ2YWx1ZSI6IDAuMzYxMTI0MTI4MTAzMjU2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDcyLjU0ODcwNDYsICJzdGVwIjogMjUxMCwgInZhbHVlIjogMC4yNTg0NjUwODE0NTMzMjMzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDg3LjY1NTc5MTgsICJzdGVwIjogMjUyMCwgInZhbHVlIjogMC4yOTA1ODAwOTM4NjA2MjYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwOTUuNDQwNTc4NSwgInN0ZXAiOiAyNTMwLCAidmFsdWUiOiAwLjI2NzQ4NTQzOTc3NzM3NDI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMDMuNzY3NzQ1NSwgInN0ZXAiOiAyNTQwLCAidmFsdWUiOiAwLjI0MjEzMjU0NDUxNzUxNzF9LCB7IndhbGxUaW1lIjogMTczMzA3MDExMy4wNDgwMTEzLCAic3RlcCI6IDI1NTAsICJ2YWx1ZSI6IDAuMjQ2Mzg2NzUxNTMyNTU0NjN9LCB7IndhbGxUaW1lIjogMTczMzA3MDEyMS4wMzY2NiwgInN0ZXAiOiAyNTYwLCAidmFsdWUiOiAwLjI1MzAzNjczNzQ0MjAxNjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDEyOS41ODMyMjI2LCAic3RlcCI6IDI1NzAsICJ2YWx1ZSI6IDAuMzA0NDk4NDA0MjY0NDUwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTM4LjM1OTU1NDMsICJzdGVwIjogMjU4MCwgInZhbHVlIjogMC4yNjg5OTUyMjU0Mjk1MzQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNDcuMDg2MTY1NywgInN0ZXAiOiAyNTkwLCAidmFsdWUiOiAwLjM1NTU1OTQwODY2NDcwMzM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNTUuNDg1ODg0NCwgInN0ZXAiOiAyNjAwLCAidmFsdWUiOiAwLjQ0MzQwMDU5MTYxMTg2MjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDE3Mi41NzYxNTksICJzdGVwIjogMjYxMCwgInZhbHVlIjogMC4zMDcwNTY4NDQyMzQ0NjY1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTgxLjIxMDEyNCwgInN0ZXAiOiAyNjIwLCAidmFsdWUiOiAwLjMyNzUxMDIwNzg5MTQ2NDIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxODkuNjkxMjM3NywgInN0ZXAiOiAyNjMwLCAidmFsdWUiOiAwLjI3OTQ1MzE1ODM3ODYwMTF9LCB7IndhbGxUaW1lIjogMTczMzA3MDE5OC4zOTgwMTMsICJzdGVwIjogMjY0MCwgInZhbHVlIjogMC4yNzU2Mjk2Njk0Mjc4NzE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMDYuNzA2MjUyMywgInN0ZXAiOiAyNjUwLCAidmFsdWUiOiAwLjIyODAwMTE2MjQwOTc4MjR9LCB7IndhbGxUaW1lIjogMTczMzA3MDIxNS41OTg1ODk3LCAic3RlcCI6IDI2NjAsICJ2YWx1ZSI6IDAuMzI4MTY3Njc2OTI1NjU5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjI0LjMxNDQwMSwgInN0ZXAiOiAyNjcwLCAidmFsdWUiOiAwLjMyOTUyODMzMTc1NjU5MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MDIzMy41MzgyNDYyLCAic3RlcCI6IDI2ODAsICJ2YWx1ZSI6IDAuMjgyNjkwOTQyMjg3NDQ1MDd9LCB7IndhbGxUaW1lIjogMTczMzA3MDI0Ni43NTcwMDg2LCAic3RlcCI6IDI2OTAsICJ2YWx1ZSI6IDAuMjYxNTMzMjMwNTQzMTM2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjU2LjAyNzcyMjgsICJzdGVwIjogMjcwMCwgInZhbHVlIjogMC40MDQ3NzU3Mzg3MTYxMjU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNjQuOTQ5NjYxLCAic3RlcCI6IDI3MTAsICJ2YWx1ZSI6IDAuMjU4NTE1NTY2NTg3NDQ4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjczLjgwMzU5MjcsICJzdGVwIjogMjcyMCwgInZhbHVlIjogMC4zNDM2ODgzNjg3OTczMDIyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjgyLjk1Nzk3LCAic3RlcCI6IDI3MzAsICJ2YWx1ZSI6IDAuMzAzMzk2MDQ2MTYxNjUxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjkyLjI3NjgwMzcsICJzdGVwIjogMjc0MCwgInZhbHVlIjogMC4yOTQwMjE1NDY4NDA2Njc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMDAuMzM1NjU4LCAic3RlcCI6IDI3NTAsICJ2YWx1ZSI6IDAuMjgwNjMyNTU1NDg0NzcxNzN9LCB7IndhbGxUaW1lIjogMTczMzA3MDMwOS40MTEwMzY1LCAic3RlcCI6IDI3NjAsICJ2YWx1ZSI6IDAuNDI1NTgwMzgyMzQ3MTA2OTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDMxNy41MzAzODEyLCAic3RlcCI6IDI3NzAsICJ2YWx1ZSI6IDAuMzk4MzczMTg2NTg4Mjg3MzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDMzMC40MzUwMzE0LCAic3RlcCI6IDI3ODAsICJ2YWx1ZSI6IDAuMzI4ODk5MTQ1MTI2MzQyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzM5LjgyMTU4MTEsICJzdGVwIjogMjc5MCwgInZhbHVlIjogMC4yNzIwNDYzNTczOTMyNjQ3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzQ3Ljk5MTk2ODIsICJzdGVwIjogMjgwMCwgInZhbHVlIjogMC4yMDIxNTk1ODM1Njg1NzN9LCB7IndhbGxUaW1lIjogMTczMzA3MDM1Ni44OTAzNjUsICJzdGVwIjogMjgxMCwgInZhbHVlIjogMC4zMDA4Njg1MTExOTk5NTExN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzY1LjU3NTc4MDIsICJzdGVwIjogMjgyMCwgInZhbHVlIjogMC4yNjkyNDE1NDE2MjQwNjkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNzQuMzkxODU4LCAic3RlcCI6IDI4MzAsICJ2YWx1ZSI6IDAuMjcwNzk5Mjc5MjEyOTUxNjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDM4Mi40MjU5MTI5LCAic3RlcCI6IDI4NDAsICJ2YWx1ZSI6IDAuMzQ4NDI0MDQ3MjMxNjc0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzkwLjk0MDI4MjYsICJzdGVwIjogMjg1MCwgInZhbHVlIjogMC4yNDA4NTk4OTU5NDQ1OTUzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDA2LjY3NzYzNDcsICJzdGVwIjogMjg2MCwgInZhbHVlIjogMC4yNTM3NDYyMTE1Mjg3NzgxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0MTUuMDg4NDEzLCAic3RlcCI6IDI4NzAsICJ2YWx1ZSI6IDAuMjQwNDY4MzA4MzI5NTgyMjF9LCB7IndhbGxUaW1lIjogMTczMzA3MDQyMi45MTg5MzIyLCAic3RlcCI6IDI4ODAsICJ2YWx1ZSI6IDAuMjQyMjQ0OTU4ODc3NTYzNDh9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzMS41MzYyODg3LCAic3RlcCI6IDI4OTAsICJ2YWx1ZSI6IDAuMjU0OTc1NzM2MTQxMjA0ODN9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzOS45Nzk3OTksICJzdGVwIjogMjkwMCwgInZhbHVlIjogMC4zMjYzMTE5NDU5MTUyMjIxN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDQ4LjA4NDQ3LCAic3RlcCI6IDI5MTAsICJ2YWx1ZSI6IDAuNDE0OTIzMzk5Njg2ODEzMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ1Ny40MjI2OTU5LCAic3RlcCI6IDI5MjAsICJ2YWx1ZSI6IDAuNDQ2MzEyMzk3NzE4NDI5NTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ2Ni43MjE3ODc3LCAic3RlcCI6IDI5MzAsICJ2YWx1ZSI6IDAuMzc3NTg5MzE1MTc2MDEwMTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ3OS4zMzE0NTk4LCAic3RlcCI6IDI5NDAsICJ2YWx1ZSI6IDAuMzExMTUyMjc5Mzc2OTgzNjR9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ4OC43ODEwNjI0LCAic3RlcCI6IDI5NTAsICJ2YWx1ZSI6IDAuMjk0OTU2NzQzNzE3MTkzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDk3LjIyMzc5MTQsICJzdGVwIjogMjk2MCwgInZhbHVlIjogMC4zNzUxMDYyNzUwODE2MzQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MDUuNjMyNzcyMiwgInN0ZXAiOiAyOTcwLCAidmFsdWUiOiAwLjIzOTUwMDY4NjUyNjI5ODUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MTMuMzUyODM5LCAic3RlcCI6IDI5ODAsICJ2YWx1ZSI6IDAuMjA0OTk0MDk3MzUyMDI3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTIyLjMwMDA3NjIsICJzdGVwIjogMjk5MCwgInZhbHVlIjogMC4zNjA4OTM2MzY5NDE5MDk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MzAuMjExNjE2LCAic3RlcCI6IDMwMDAsICJ2YWx1ZSI6IDAuMjE1NTYwMDQ4ODE4NTg4MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDUzOC4yOTg5MzQsICJzdGVwIjogMzAxMCwgInZhbHVlIjogMC4zMDcyMTM5OTE4ODA0MTY4N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTQ3LjM5OTIwOSwgInN0ZXAiOiAzMDIwLCAidmFsdWUiOiAwLjI0NjMyNDQwNTA3NDExOTU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NjQuMDQ5Njc5OCwgInN0ZXAiOiAzMDMwLCAidmFsdWUiOiAwLjI0NDQ2OTk0MDY2MjM4NDAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NzIuMzY4NTg0LCAic3RlcCI6IDMwNDAsICJ2YWx1ZSI6IDAuMjM4NjQ4NjY3OTMxNTU2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTgwLjY2OTc1ODYsICJzdGVwIjogMzA1MCwgInZhbHVlIjogMC4yODA2MDIwMDgxMDQzMjQzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTg4LjY1MjA5NzcsICJzdGVwIjogMzA2MCwgInZhbHVlIjogMC4yNzY2NTU3MzM1ODUzNTc2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTk3LjQxOTU0ODUsICJzdGVwIjogMzA3MCwgInZhbHVlIjogMC4yMzczMDgwNzAwNjM1OTF9LCB7IndhbGxUaW1lIjogMTczMzA3MDYwNi4xMzYwNjIsICJzdGVwIjogMzA4MCwgInZhbHVlIjogMC4zNzk4MTE4ODI5NzI3MTczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MTQuNDM4MjY1OCwgInN0ZXAiOiAzMDkwLCAidmFsdWUiOiAwLjM0NzA1MzUyNzgzMjAzMTI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MjMuOTk4NzAwNiwgInN0ZXAiOiAzMTAwLCAidmFsdWUiOiAwLjI4NjkwNzI4NTQ1MTg4OTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MzcuMjUwODk1LCAic3RlcCI6IDMxMTAsICJ2YWx1ZSI6IDAuMzQzNTc5OTE4MTQ2MTMzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjQ1LjY4MDgxNjQsICJzdGVwIjogMzEyMCwgInZhbHVlIjogMC4yOTM5OTc0OTYzNjY1MDA4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjU0LjI2ODQxMTQsICJzdGVwIjogMzEzMCwgInZhbHVlIjogMC4yMzcxMTQxMTY1NDk0OTE4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjYzLjMxOTE4NDMsICJzdGVwIjogMzE0MCwgInZhbHVlIjogMC4yNjAwNDc3MzM3ODM3MjE5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NzEuMTE2MDIzNSwgInN0ZXAiOiAzMTUwLCAidmFsdWUiOiAwLjM0NTcyNzA4NjA2NzE5OTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDY3OS43NjM0NzE2LCAic3RlcCI6IDMxNjAsICJ2YWx1ZSI6IDAuMzgwNTIyMjUxMTI5MTUwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjg3Ljg0MzA0ODgsICJzdGVwIjogMzE3MCwgInZhbHVlIjogMC4yNTYxODgyNzM0Mjk4NzA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2OTUuODUzODAxNSwgInN0ZXAiOiAzMTgwLCAidmFsdWUiOiAwLjMyMDMwMzc5NzcyMTg2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDcwNC42MjAzODQyLCAic3RlcCI6IDMxOTAsICJ2YWx1ZSI6IDAuMjYxNzMxODkyODI0MTczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MTcuMTA2Nzk4LCAic3RlcCI6IDMyMDAsICJ2YWx1ZSI6IDAuMjAxODY3NjQwMDE4NDYzMTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDcyNi4wOTY2LCAic3RlcCI6IDMyMTAsICJ2YWx1ZSI6IDAuMzAxNzQ2NzU1ODM4Mzk0MTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDczNC43NzQzODE2LCAic3RlcCI6IDMyMjAsICJ2YWx1ZSI6IDAuMjAxMTI5MDQ5MDYyNzI4ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MDc0NC40MTAwOTgzLCAic3RlcCI6IDMyMzAsICJ2YWx1ZSI6IDAuMjkwNjcxMjI5MzYyNDg3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzUyLjQ5OTUzNCwgInN0ZXAiOiAzMjQwLCAidmFsdWUiOiAwLjQ0NTQxMjQ1Njk4OTI4ODMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NjEuNzE5MDcyLCAic3RlcCI6IDMyNTAsICJ2YWx1ZSI6IDAuMzg0MjQxNzAwMTcyNDI0M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzcwLjM3NDQ5NjIsICJzdGVwIjogMzI2MCwgInZhbHVlIjogMC4yNzM1MDQ0MzYwMTYwODI3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzc5LjcyODAwMDIsICJzdGVwIjogMzI3MCwgInZhbHVlIjogMC4yNjU2NTYxNzMyMjkyMTc1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzkzLjY3NjIyMjgsICJzdGVwIjogMzI4MCwgInZhbHVlIjogMC4yNDIxOTg3MDU2NzMyMTc3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwODAxLjg5ODAwNDMsICJzdGVwIjogMzI5MCwgInZhbHVlIjogMC4zODYyNjE3MDE1ODM4NjIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MTAuMTU5MDIxNCwgInN0ZXAiOiAzMzAwLCAidmFsdWUiOiAwLjM0OTYyMTY1MzU1NjgyMzczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MTguNzI0Mzk5NiwgInN0ZXAiOiAzMzEwLCAidmFsdWUiOiAwLjE4NDE1NDg4MzAyNzA3NjcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MjcuMDA0NTgzOCwgInN0ZXAiOiAzMzIwLCAidmFsdWUiOiAwLjIzMTc5OTAyMTM2MzI1ODM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MzUuNTcyMDQyNSwgInN0ZXAiOiAzMzMwLCAidmFsdWUiOiAwLjI3NTE0NDc4NTY0MjYyMzl9LCB7IndhbGxUaW1lIjogMTczMzA3MDg0My45NzIxMzMsICJzdGVwIjogMzM0MCwgInZhbHVlIjogMC40MTgxNjg2MDQzNzM5MzE5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NTMuMDg5NTM2MiwgInN0ZXAiOiAzMzUwLCAidmFsdWUiOiAwLjMyNTQxMzE2NzQ3NjY1NDA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NjUuNDE3NDI3MywgInN0ZXAiOiAzMzYwLCAidmFsdWUiOiAwLjIxMjA5NTI0NTcxODk1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODczLjY1OTYxMjQsICJzdGVwIjogMzM3MCwgInZhbHVlIjogMC4yNTg2MTI3ODE3NjMwNzY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4ODMuMzM0MDAwMywgInN0ZXAiOiAzMzgwLCAidmFsdWUiOiAwLjI0NTk3NjEzNTEzNDY5Njk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4OTIuMzc1MDE0LCAic3RlcCI6IDMzOTAsICJ2YWx1ZSI6IDAuMjc0ODc4OTc4NzI5MjQ4MDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDkwMC43MjAzNzA4LCAic3RlcCI6IDM0MDAsICJ2YWx1ZSI6IDAuMzExMDY1NDY1MjExODY4M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTA4LjUwMjE4NDYsICJzdGVwIjogMzQxMCwgInZhbHVlIjogMC4yNzkyOTg3NTI1NDYzMTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MTYuNjUzODAxLCAic3RlcCI6IDM0MjAsICJ2YWx1ZSI6IDAuMzc4MjM1NjM4MTQxNjMyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTI1LjIwNjQyOTcsICJzdGVwIjogMzQzMCwgInZhbHVlIjogMC4yNjUzNTU1NTcyMDMyOTI4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTMzLjgwODI4MzMsICJzdGVwIjogMzQ0MCwgInZhbHVlIjogMC4yMTI4NTAxMDg3NDI3MTM5M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTQ3LjQ3Nzc2NzUsICJzdGVwIjogMzQ1MCwgInZhbHVlIjogMC4yMzkyODAwMzAxMzEzNDAwM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTU2LjE4NTIwOTUsICJzdGVwIjogMzQ2MCwgInZhbHVlIjogMC4yNTM0OTY3OTU4OTI3MTU0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTY0LjI2NDMwNjUsICJzdGVwIjogMzQ3MCwgInZhbHVlIjogMC4yODY4NTUyODAzOTkzMjI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NzIuMzg0MTAxMiwgInN0ZXAiOiAzNDgwLCAidmFsdWUiOiAwLjI3MDczMzc3MzcwODM0MzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDk4MC42NDUxMjQsICJzdGVwIjogMzQ5MCwgInZhbHVlIjogMC40NTk2NzUzMTIwNDIyMzYzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTg5LjY4NTczMjEsICJzdGVwIjogMzUwMCwgInZhbHVlIjogMC4yNDQ1NjI0NzY4NzMzOTc4M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTk3Ljc4NjUzNTMsICJzdGVwIjogMzUxMCwgInZhbHVlIjogMC4yMzkyODUxNTYxMzA3OTA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMDYuMjY5NDA0NCwgInN0ZXAiOiAzNTIwLCAidmFsdWUiOiAwLjMzNDAwMjMxNTk5ODA3NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MTAxOC44OTQwNzQ3LCAic3RlcCI6IDM1MzAsICJ2YWx1ZSI6IDAuMjQ1MDE1NDQyMzcxMzY4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDI3LjE5NTE2MzIsICJzdGVwIjogMzU0MCwgInZhbHVlIjogMC4xNzM1MDYzNzkxMjc1MDI0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDM1LjMxODU2NDcsICJzdGVwIjogMzU1MCwgInZhbHVlIjogMC4yNjYyNzM5NzUzNzIzMTQ0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDQzLjc0Mzc4MjgsICJzdGVwIjogMzU2MCwgInZhbHVlIjogMC4yNDQ1NDE0OTYwMzg0MzY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNTEuODcwMjEsICJzdGVwIjogMzU3MCwgInZhbHVlIjogMC4yOTQwMjAyOTUxNDMxMjc0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDYwLjQ5NDE4NzYsICJzdGVwIjogMzU4MCwgInZhbHVlIjogMC4yNTU4NjMzOTgzMTM1MjIzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDY4Ljg3NzQ4MTIsICJzdGVwIjogMzU5MCwgInZhbHVlIjogMC4yNTkwMjk4MzU0NjI1NzAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNzcuNzExMDM2NCwgInN0ZXAiOiAzNjAwLCAidmFsdWUiOiAwLjI4ODg4MjcwMjU4OTAzNTAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwODYuMjEwNDMwNiwgInN0ZXAiOiAzNjEwLCAidmFsdWUiOiAwLjIyMDQ4NDg4MjU5MzE1NDl9LCB7IndhbGxUaW1lIjogMTczMzA3MTEwMS42NTY3OTQzLCAic3RlcCI6IDM2MjAsICJ2YWx1ZSI6IDAuMjQxMzkzMjM4MzA2MDQ1NTN9LCB7IndhbGxUaW1lIjogMTczMzA3MTEwOS42MTgyNTY2LCAic3RlcCI6IDM2MzAsICJ2YWx1ZSI6IDAuMjgzNDgzNTk0NjU1OTkwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTE4LjEyNzM3OTQsICJzdGVwIjogMzY0MCwgInZhbHVlIjogMC4yNjE4MDI4MjIzNTE0NTU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMjYuOTkxMjg2OCwgInN0ZXAiOiAzNjUwLCAidmFsdWUiOiAwLjIxODcxNDIzNzIxMzEzNDc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMzUuODI1NTQsICJzdGVwIjogMzY2MCwgInZhbHVlIjogMC4zMTg5ODM4NTI4NjMzMTE3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTQ0LjI0NjMzODQsICJzdGVwIjogMzY3MCwgInZhbHVlIjogMC4yMjUyMDIzMjIwMDYyMjU1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTUyLjk2MjYzNTgsICJzdGVwIjogMzY4MCwgInZhbHVlIjogMC4yNDEwNzU4MTM3NzAyOTQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNjAuNjAxNTg0MiwgInN0ZXAiOiAzNjkwLCAidmFsdWUiOiAwLjI2MDUwNjAwNDA5NTA3NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MTE3My43NDgzODk3LCAic3RlcCI6IDM3MDAsICJ2YWx1ZSI6IDAuMjY5NDE3Mjg1OTE5MTg5NDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTE4Mi44ODE0MTc4LCAic3RlcCI6IDM3MTAsICJ2YWx1ZSI6IDAuMjcwNDcxNzUxNjg5OTEwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTkxLjIwODIyMDIsICJzdGVwIjogMzcyMCwgInZhbHVlIjogMC4zMTI1MTcyMjU3NDIzNDAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMDAuMzMxNjExOSwgInN0ZXAiOiAzNzMwLCAidmFsdWUiOiAwLjU3NzE0OTkyNzYxNjExOTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTIwOC4zNjM4ODE2LCAic3RlcCI6IDM3NDAsICJ2YWx1ZSI6IDAuMjg4MjY0ODcwNjQzNjE1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjE2LjU3MDA2NCwgInN0ZXAiOiAzNzUwLCAidmFsdWUiOiAwLjIwOTUyOTk5NTkxODI3MzkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMjQuNjYwMDksICJzdGVwIjogMzc2MCwgInZhbHVlIjogMC4xNzY5NzA0ODE4NzI1NTg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMzIuODU4ODIxNCwgInN0ZXAiOiAzNzcwLCAidmFsdWUiOiAwLjE2NjA2NTQwOTc3OTU0ODY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNDguNTMxNTQ3LCAic3RlcCI6IDM3ODAsICJ2YWx1ZSI6IDAuMzYwMDQ5MTg4MTM3MDU0NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTI1Ny4zODk5NjMyLCAic3RlcCI6IDM3OTAsICJ2YWx1ZSI6IDAuNDMyNTEwNjQ0MTk3NDY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNjUuNTY1NTU3MiwgInN0ZXAiOiAzODAwLCAidmFsdWUiOiAwLjE5NDIwNzQwMDA4MzU0MTg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNzQuMTc2OTQ2OSwgInN0ZXAiOiAzODEwLCAidmFsdWUiOiAwLjMxMjA3MzU4ODM3MTI3Njg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyODMuMDE2MTkwNSwgInN0ZXAiOiAzODIwLCAidmFsdWUiOiAwLjIzODQwNjMzMDM0NzA2MTE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyOTEuNzI4MDI5NywgInN0ZXAiOiAzODMwLCAidmFsdWUiOiAwLjE4MDcwOTM2MjAzMDAyOTN9LCB7IndhbGxUaW1lIjogMTczMzA3MTI5OS44OTA1MjEsICJzdGVwIjogMzg0MCwgInZhbHVlIjogMC4yMTY2NDYwMzA1NDUyMzQ2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzA4LjQ3NzYwNzMsICJzdGVwIjogMzg1MCwgInZhbHVlIjogMC4yODQwNDE5NDExNjU5MjQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMTYuOTQ5NzUzOCwgInN0ZXAiOiAzODYwLCAidmFsdWUiOiAwLjMxNDUyMDg2NTY3ODc4NzIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMzAuMjEzMzA2NywgInN0ZXAiOiAzODcwLCAidmFsdWUiOiAwLjIyNTU3OTM2NjA4NzkxMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MTMzOC45ODcyNzEzLCAic3RlcCI6IDM4ODAsICJ2YWx1ZSI6IDAuMjQ3MDIxMTA4ODY1NzM3OTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTM0Ny43MzUyMjk3LCAic3RlcCI6IDM4OTAsICJ2YWx1ZSI6IDAuMjE2ODc3MDczMDQ5NTQ1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzU3LjAzMjgxMDIsICJzdGVwIjogMzkwMCwgInZhbHVlIjogMC4yMTYzMzA3NTE3NzY2OTUyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzY1LjIyMzg4OTQsICJzdGVwIjogMzkxMCwgInZhbHVlIjogMC4zMDQ0Nzk5MjY4MjQ1Njk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNzQuMTMzMTczLCAic3RlcCI6IDM5MjAsICJ2YWx1ZSI6IDAuNDY1NDQwODA5NzI2NzE1MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzgyLjgxMjM2OTMsICJzdGVwIjogMzkzMCwgInZhbHVlIjogMC4zMDM4Mzg4NDkwNjc2ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MTM5MS41NjY5OTc4LCAic3RlcCI6IDM5NDAsICJ2YWx1ZSI6IDAuMjYwMDY1MDE5MTMwNzA2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDA0LjQ2NTc3NzIsICJzdGVwIjogMzk1MCwgInZhbHVlIjogMC4yMzQwNDk1ODg0NDE4NDg3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDEyLjMzNzQxOTcsICJzdGVwIjogMzk2MCwgInZhbHVlIjogMC4yNjE1OTQ1MzM5MjAyODgxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MjEuMTU2MTMzLCAic3RlcCI6IDM5NzAsICJ2YWx1ZSI6IDAuMjgyODM0Nzk4MDk3NjEwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDMwLjExOTA5OSwgInN0ZXAiOiAzOTgwLCAidmFsdWUiOiAwLjE5ODQ1NzA5MjA0NjczNzY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MzguNDEyNTQyOCwgInN0ZXAiOiAzOTkwLCAidmFsdWUiOiAwLjM2NzI0NzAxNTIzNzgwODJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ0Ny43Mjc0MDU4LCAic3RlcCI6IDQwMDAsICJ2YWx1ZSI6IDAuMzUyNjgyNDExNjcwNjg0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDU2LjE5NTE5NTIsICJzdGVwIjogNDAxMCwgInZhbHVlIjogMC4yOTk4MjI5NTYzMjM2MjM2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDY0Ljc0ODA1MzYsICJzdGVwIjogNDAyMCwgInZhbHVlIjogMC4yNTM2NjYyODE3MDAxMzQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NzMuMzk1NDQ1OCwgInN0ZXAiOiA0MDMwLCAidmFsdWUiOiAwLjMzNDg3NTczMjY2MDI5MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ5MC4yODUwNDczLCAic3RlcCI6IDQwNDAsICJ2YWx1ZSI6IDAuMjQ5NzY0MjA0MDI1MjY4NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ5OC43MTAzNTksICJzdGVwIjogNDA1MCwgInZhbHVlIjogMC4yMzg3NzQ2Mjc0NDcxMjgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MDcuMDk1OTcwNiwgInN0ZXAiOiA0MDYwLCAidmFsdWUiOiAwLjE5OTEzMzI5MTg0MDU1MzI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MTUuMDY2NDU4MiwgInN0ZXAiOiA0MDcwLCAidmFsdWUiOiAwLjI4MTA5MDAyMTEzMzQyMjg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MjMuODc5OTIwNSwgInN0ZXAiOiA0MDgwLCAidmFsdWUiOiAwLjI2ODUwNzMwMTgwNzQwMzU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MzIuMjg0MDIxLCAic3RlcCI6IDQwOTAsICJ2YWx1ZSI6IDAuMjA1MjI4MjY5MTAwMTg5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTQwLjkxNjQ1OSwgInN0ZXAiOiA0MTAwLCAidmFsdWUiOiAwLjIxOTk0MDYzMjU4MTcxMDgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NDkuMTc1MDEzLCAic3RlcCI6IDQxMTAsICJ2YWx1ZSI6IDAuMTg2MTg1ODA2OTg5NjY5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTY1LjgzNDg2NDEsICJzdGVwIjogNDEyMCwgInZhbHVlIjogMC4yMjY1MTc5MDA4MjQ1NDY4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTczLjYzMDU4MDcsICJzdGVwIjogNDEzMCwgInZhbHVlIjogMC4xNjA1MDI1Njc4ODczMDYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1ODIuMDk1MjExMywgInN0ZXAiOiA0MTQwLCAidmFsdWUiOiAwLjQyMTUzNTY3MDc1NzI5Mzd9LCB7IndhbGxUaW1lIjogMTczMzA3MTU5MC4wMjE2MjkzLCAic3RlcCI6IDQxNTAsICJ2YWx1ZSI6IDAuMTcyNTU1MjM4MDA4NDk5MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTU5OS4yNDAwNDM5LCAic3RlcCI6IDQxNjAsICJ2YWx1ZSI6IDAuNzE4NDA2OTE1NjY0NjcyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjA4LjA3MDc5MiwgInN0ZXAiOiA0MTcwLCAidmFsdWUiOiAwLjI0NjMwMTc0MDQwNzk0MzczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2MTYuMTgyOTQ5MywgInN0ZXAiOiA0MTgwLCAidmFsdWUiOiAwLjMxMzQyMDExNjkwMTM5Nzd9LCB7IndhbGxUaW1lIjogMTczMzA3MTYyNi4wODIwMjE1LCAic3RlcCI6IDQxOTAsICJ2YWx1ZSI6IDAuMTY2NzQwMDAwMjQ3OTU1MzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTY0MS4wMDcwNDI0LCAic3RlcCI6IDQyMDAsICJ2YWx1ZSI6IDAuMjQ4MDUyOTA5OTcwMjgzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjQ5LjAzOTk3MTgsICJzdGVwIjogNDIxMCwgInZhbHVlIjogMC4yMDg0NjMwNzI3NzY3OTQ0M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjU4LjUzMDc0NjcsICJzdGVwIjogNDIyMCwgInZhbHVlIjogMC4yODU4ODA4OTM0Njg4NTY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NjcuOTY1NDI1NywgInN0ZXAiOiA0MjMwLCAidmFsdWUiOiAwLjMyMDkzODExMDM1MTU2MjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTY3Ni4xMDgwOTkyLCAic3RlcCI6IDQyNDAsICJ2YWx1ZSI6IDAuMjE4MDI2MDU2ODg1NzE5M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjg0LjM3Nzg3NjgsICJzdGVwIjogNDI1MCwgInZhbHVlIjogMC4zMjQ2NDQ4OTM0MDc4MjE2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjkzLjEwOTAzNiwgInN0ZXAiOiA0MjYwLCAidmFsdWUiOiAwLjI4NjcxNzc3MjQ4MzgyNTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTcwMi4xODMyODY3LCAic3RlcCI6IDQyNzAsICJ2YWx1ZSI6IDAuMjE1NjExNzcwNzQ5MDkyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzEwLjYyOTQ0NCwgInN0ZXAiOiA0MjgwLCAidmFsdWUiOiAwLjMyMjY5ODQ3MzkzMDM1ODl9LCB7IndhbGxUaW1lIjogMTczMzA3MTcyNi42NzYxMDEsICJzdGVwIjogNDI5MCwgInZhbHVlIjogMC4yNjg4NTI4MDAxMzA4NDQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MzUuMjE0OTY1OCwgInN0ZXAiOiA0MzAwLCAidmFsdWUiOiAwLjI3NDkxNDMyNDI4MzU5OTg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NDIuOTU2NDkzNiwgInN0ZXAiOiA0MzEwLCAidmFsdWUiOiAwLjI2NjMzNTQyNzc2MTA3Nzl9LCB7IndhbGxUaW1lIjogMTczMzA3MTc1MS41ODUxNDUsICJzdGVwIjogNDMyMCwgInZhbHVlIjogMC40Mjc2MjIxNjkyNTYyMTAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NjAuMDM0MDE0LCAic3RlcCI6IDQzMzAsICJ2YWx1ZSI6IDAuMjc3MzgwODI0MDg5MDUwM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzY4LjQzMDczNzUsICJzdGVwIjogNDM0MCwgInZhbHVlIjogMC4xODgzNzc1NzQwODYxODkyN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzc3LjQwMTUyMjksICJzdGVwIjogNDM1MCwgInZhbHVlIjogMC4yOTU3MzAxNzM1ODc3OTkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3ODUuNTQ2NzU1NiwgInN0ZXAiOiA0MzYwLCAidmFsdWUiOiAwLjI4MDE2MjMzNDQ0MjEzODY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MDAuODg0MTc0LCAic3RlcCI6IDQzNzAsICJ2YWx1ZSI6IDAuMzY2Mjc1MzcwMTIxMDAyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODA5LjI2NTI4MDUsICJzdGVwIjogNDM4MCwgInZhbHVlIjogMC4yNTE1MTk2MjA0MTg1NDg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MTcuMzQ1ODI0MiwgInN0ZXAiOiA0MzkwLCAidmFsdWUiOiAwLjIwMDc1MTU1Nzk0NjIwNTE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MjYuNDI5ODEzOSwgInN0ZXAiOiA0NDAwLCAidmFsdWUiOiAwLjMwMjkyMzk3NzM3NTAzMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTgzNC44ODcwMzAxLCAic3RlcCI6IDQ0MTAsICJ2YWx1ZSI6IDAuMzAwNTk3MzM5ODY4NTQ1NTN9LCB7IndhbGxUaW1lIjogMTczMzA3MTg0My40NDYyODcyLCAic3RlcCI6IDQ0MjAsICJ2YWx1ZSI6IDAuMjY0MDEzMTcxMTk1OTgzOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODUxLjU5NTQzNzUsICJzdGVwIjogNDQzMCwgInZhbHVlIjogMC4yNDc1ODc0NzIyMDAzOTM2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODU5LjkyMzQ4NCwgInN0ZXAiOiA0NDQwLCAidmFsdWUiOiAwLjI1NzU4MjgxMzUwMTM1ODAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NjguNjcyNjgzNywgInN0ZXAiOiA0NDUwLCAidmFsdWUiOiAwLjI1MTkxMDM1ODY2NzM3MzY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4ODEuMzM1NTc0LCAic3RlcCI6IDQ0NjAsICJ2YWx1ZSI6IDAuMjMxMTEzODIxMjY4MDgxNjd9LCB7IndhbGxUaW1lIjogMTczMzA3MTg4OS42MzU3MDgsICJzdGVwIjogNDQ3MCwgInZhbHVlIjogMC4yNDc3MTI3NDYyNjI1NTAzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODk4LjQyMDIyMTMsICJzdGVwIjogNDQ4MCwgInZhbHVlIjogMC4yNzIwMjU3MDQzODM4NTAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5MDcuMzM1NDA3LCAic3RlcCI6IDQ0OTAsICJ2YWx1ZSI6IDAuMjM2ODIzMjQ1ODgyOTg3OTh9LCB7IndhbGxUaW1lIjogMTczMzA3MTkxNi4yNzc1NDI4LCAic3RlcCI6IDQ1MDAsICJ2YWx1ZSI6IDAuMzMyMzc5OTA3MzY5NjEzNjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTkyNS4zNDgxMzgzLCAic3RlcCI6IDQ1MTAsICJ2YWx1ZSI6IDAuMzY4NzIyMzc5MjA3NjExMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTMzLjMyODcyMDYsICJzdGVwIjogNDUyMCwgInZhbHVlIjogMC4xNjMyMDc1NjA3Nzc2NjQxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTQxLjQ4MjA2ODgsICJzdGVwIjogNDUzMCwgInZhbHVlIjogMC4xNjQ1NzY5MzI3ODc4OTUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NTQuMTY4MzYxLCAic3RlcCI6IDQ1NDAsICJ2YWx1ZSI6IDAuMjMxMjUzNTA0NzUzMTEyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTYyLjM5NTE2MywgInN0ZXAiOiA0NTUwLCAidmFsdWUiOiAwLjE5NTc4MDg1ODM5NzQ4MzgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NzAuNTEyNzQyOCwgInN0ZXAiOiA0NTYwLCAidmFsdWUiOiAwLjI3NDkzMzIxODk1NTk5MzY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NzguODY5Mjc0NiwgInN0ZXAiOiA0NTcwLCAidmFsdWUiOiAwLjM3MjI5MDg0OTY4NTY2ODk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5ODcuNzA5ODUwNSwgInN0ZXAiOiA0NTgwLCAidmFsdWUiOiAwLjMwNDgwMTg4MTMxMzMyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTk2LjQ0MzY5NDgsICJzdGVwIjogNDU5MCwgInZhbHVlIjogMC4zODc3NzY4MjE4NTE3MzAzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDA0LjQ3NTI2OSwgInN0ZXAiOiA0NjAwLCAidmFsdWUiOiAwLjE5NTY1MDAyNjIwMjIwMTg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMTIuNzQ0MDIxLCAic3RlcCI6IDQ2MTAsICJ2YWx1ZSI6IDAuMTg0ODU4NDU2MjU0MDA1NDN9LCB7IndhbGxUaW1lIjogMTczMzA3MjAyNS4zOTk0MTgsICJzdGVwIjogNDYyMCwgInZhbHVlIjogMC4yMDQ1NTg5Njg1NDQwMDYzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDM0LjExNzQxNDcsICJzdGVwIjogNDYzMCwgInZhbHVlIjogMC4xOTYzNTUzNTc3NjYxNTE0M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDQzLjAzNjU0MSwgInN0ZXAiOiA0NjQwLCAidmFsdWUiOiAwLjMxNDM2NjQ4OTY0ODgxODk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNTEuNzgzNzg5NiwgInN0ZXAiOiA0NjUwLCAidmFsdWUiOiAwLjI1MDczMTQzODM5ODM2MTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjA2MC4xMDcyNDQzLCAic3RlcCI6IDQ2NjAsICJ2YWx1ZSI6IDAuMjUwOTE0Mjc1NjQ2MjA5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDY4LjYwMTk1MywgInN0ZXAiOiA0NjcwLCAidmFsdWUiOiAwLjI3Mjc4MzYwNzI0NDQ5MTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjA3Ni44MzUzODY1LCAic3RlcCI6IDQ2ODAsICJ2YWx1ZSI6IDAuMjc1MDc4NjU0Mjg5MjQ1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDg1LjM3NDg1ODEsICJzdGVwIjogNDY5MCwgInZhbHVlIjogMC4yODAyODYyNTI0OTg2MjY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwOTMuNzQ3MjkwMSwgInN0ZXAiOiA0NzAwLCAidmFsdWUiOiAwLjIxMTU0MjU0Njc0OTExNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTA2Ljk4ODQwMDIsICJzdGVwIjogNDcxMCwgInZhbHVlIjogMC4yNjA0Mjc1NjQzODI1NTMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMTUuNjYzODcyMiwgInN0ZXAiOiA0NzIwLCAidmFsdWUiOiAwLjQxODY3NDYxODAwNTc1MjU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMjMuOTQ5MjYzOCwgInN0ZXAiOiA0NzMwLCAidmFsdWUiOiAwLjMyODc2NDY3NzA0NzcyOTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjEzMi4yNzkzMDc2LCAic3RlcCI6IDQ3NDAsICJ2YWx1ZSI6IDAuMjMyODczOTQ2NDI4Mjk4OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjE0MC40MTkxODY0LCAic3RlcCI6IDQ3NTAsICJ2YWx1ZSI6IDAuMjAzOTY0NDEyMjEyMzcxODN9LCB7IndhbGxUaW1lIjogMTczMzA3MjE0OS4wODU4NjMsICJzdGVwIjogNDc2MCwgInZhbHVlIjogMC4yMTgxOTI1NzczNjIwNjA1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTU3LjQxMDQyNjksICJzdGVwIjogNDc3MCwgInZhbHVlIjogMC4yNDU4NTQ1ODYzNjI4Mzg3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTY1LjQ4ODA0NzQsICJzdGVwIjogNDc4MCwgInZhbHVlIjogMC4yNzI2MjY3NTc2MjE3NjUxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTc5LjY0Njg3NCwgInN0ZXAiOiA0NzkwLCAidmFsdWUiOiAwLjI1NTA3OTEyMDM5NzU2Nzc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxODguMzI4Mzg0NCwgInN0ZXAiOiA0ODAwLCAidmFsdWUiOiAwLjIwNTQ0MTIwNjY5MzY0OTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjE5Ni44NDU2MzU3LCAic3RlcCI6IDQ4MTAsICJ2YWx1ZSI6IDAuMjU4NjkzMDk5MDIxOTExNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjA0LjU2MDk0OCwgInN0ZXAiOiA0ODIwLCAidmFsdWUiOiAwLjIwODM5ODU1MDc0ODgyNTA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMTMuMDk4MzEzMywgInN0ZXAiOiA0ODMwLCAidmFsdWUiOiAwLjM1MDIyMjQwODc3MTUxNDl9LCB7IndhbGxUaW1lIjogMTczMzA3MjIyMS42NjU3MTEsICJzdGVwIjogNDg0MCwgInZhbHVlIjogMC4yNzA3MDg3Njk1NTk4NjAyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjI5Ljg5MjY0MTMsICJzdGVwIjogNDg1MCwgInZhbHVlIjogMC4yMTM0NDgyNDEzNTMwMzQ5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjM4LjA1NDg3NzMsICJzdGVwIjogNDg2MCwgInZhbHVlIjogMC4yNDMyMjU0ODUwODY0NDEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjQ2LjM0MjIzOTEsICJzdGVwIjogNDg3MCwgInZhbHVlIjogMC4xOTg0NjI2OTQ4ODMzNDY1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjYxLjI2NjA0MjUsICJzdGVwIjogNDg4MCwgInZhbHVlIjogMC4yMzAwNDMyMDI2Mzg2MjYxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNjkuODUwOTIxOSwgInN0ZXAiOiA0ODkwLCAidmFsdWUiOiAwLjIyNzg4NzcxOTg2OTYxMzY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNzguODYwMTI3MiwgInN0ZXAiOiA0OTAwLCAidmFsdWUiOiAwLjI4Nzg1MjA3ODY3NjIyMzc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyODcuNTMzMjY5LCAic3RlcCI6IDQ5MTAsICJ2YWx1ZSI6IDAuMjAzNDM5OTgwNzQ1MzE1NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjI5NS45NDU5ODE3LCAic3RlcCI6IDQ5MjAsICJ2YWx1ZSI6IDAuMTc3MTQxNjA2ODA3NzA4NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MjMwNC4zNTQxNzksICJzdGVwIjogNDkzMCwgInZhbHVlIjogMC4yNzQxMDg2NzgxMDI0OTMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMTMuNTA4NjIzNiwgInN0ZXAiOiA0OTQwLCAidmFsdWUiOiAwLjI3MDI2MTQ5NjMwNTQ2NTd9LCB7IndhbGxUaW1lIjogMTczMzA3MjMyMS4zMjQxNzgsICJzdGVwIjogNDk1MCwgInZhbHVlIjogMC4xOTY3MzQwNDA5NzU1NzA2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzM3LjAyMzc2MTcsICJzdGVwIjogNDk2MCwgInZhbHVlIjogMC4xNzAzNDg0NTA1NDE0OTYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzQ1LjUyOTk4NTQsICJzdGVwIjogNDk3MCwgInZhbHVlIjogMC4xNzc4MzM3MjEwNDE2NzkzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzUzLjQyODY5NjksICJzdGVwIjogNDk4MCwgInZhbHVlIjogMC4yMjE4MTI5NDg1ODQ1NTY1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzYyLjQxMjE1MiwgInN0ZXAiOiA0OTkwLCAidmFsdWUiOiAwLjI1MzI5MjkxODIwNTI2MTIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNzEuNzQ0ODY1LCAic3RlcCI6IDUwMDAsICJ2YWx1ZSI6IDAuMjM3NDA0ODUzMTA1NTQ1MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjM4MC41Mjg2MjU3LCAic3RlcCI6IDUwMTAsICJ2YWx1ZSI6IDAuMjg5NjUzNzE4NDcxNTI3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzg5LjAyNTM3OTcsICJzdGVwIjogNTAyMCwgInZhbHVlIjogMC4zMDIyOTgxMjg2MDQ4ODg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzOTcuNzg0NDUzMiwgInN0ZXAiOiA1MDMwLCAidmFsdWUiOiAwLjE5ODU4MDM1NDQ1MjEzMzE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MTEuMjk3MjU5NiwgInN0ZXAiOiA1MDQwLCAidmFsdWUiOiAwLjIyMTk1MDI0Nzg4Mzc5Njd9LCB7IndhbGxUaW1lIjogMTczMzA3MjQxOS40NzMwMjMyLCAic3RlcCI6IDUwNTAsICJ2YWx1ZSI6IDAuMjA1MTE0NDk4NzM0NDc0MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MjQyOC4zNzExOTk0LCAic3RlcCI6IDUwNjAsICJ2YWx1ZSI6IDAuMjk2MjEzNzc1ODczMTg0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDM3LjExNTU2MjcsICJzdGVwIjogNTA3MCwgInZhbHVlIjogMC4yNzMzODUzNzU3MzgxNDM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NDYuMTc0MTkyNywgInN0ZXAiOiA1MDgwLCAidmFsdWUiOiAwLjI4ODk5MDk3NDQyNjI2OTUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NTQuNDI3Mzg5LCAic3RlcCI6IDUwOTAsICJ2YWx1ZSI6IDAuMjAzODQyNDkwOTExNDgzNzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ2Mi40MDk0NTEyLCAic3RlcCI6IDUxMDAsICJ2YWx1ZSI6IDAuMjU1MjIyMjAxMzQ3MzUxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDcxLjE0ODk1OTIsICJzdGVwIjogNTExMCwgInZhbHVlIjogMC4yMjU0OTM3ODg3MTkxNzcyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDc4Ljk0NTUyMSwgInN0ZXAiOiA1MTIwLCAidmFsdWUiOiAwLjI5NDY3NjgxMDUwMzAwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDkxLjMyMDYxMSwgInN0ZXAiOiA1MTMwLCAidmFsdWUiOiAwLjMyODcxOTc5NDc1MDIxMzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ5OS4yNTc3MDQ3LCAic3RlcCI6IDUxNDAsICJ2YWx1ZSI6IDAuMTcyMjQ2NjY0NzYyNDk2OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjUwNy4xMTEwODY4LCAic3RlcCI6IDUxNTAsICJ2YWx1ZSI6IDAuMjI1OTYxNDE2OTU5NzYyNTd9LCB7IndhbGxUaW1lIjogMTczMzA3MjUxNS4zMTYxODA1LCAic3RlcCI6IDUxNjAsICJ2YWx1ZSI6IDAuNjI4MzgxMDczNDc0ODg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MjMuNDk4NzY3MSwgInN0ZXAiOiA1MTcwLCAidmFsdWUiOiAwLjI3NjQzMjM5NDk4MTM4NDN9LCB7IndhbGxUaW1lIjogMTczMzA3MjUzMS4wODYyMTcyLCAic3RlcCI6IDUxODAsICJ2YWx1ZSI6IDAuMTc4MTIxNDQ3NTYzMTcxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTQwLjAyMDUxODMsICJzdGVwIjogNTE5MCwgInZhbHVlIjogMC4yMzY0Mzc5MzE2NTY4Mzc0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTQ4LjY1MDc4NDUsICJzdGVwIjogNTIwMCwgInZhbHVlIjogMC4yNjc2NzE5MTI5MDg1NTQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NjEuNDEzODk1MSwgInN0ZXAiOiA1MjEwLCAidmFsdWUiOiAwLjIxNDM1MDQ5MTc2MjE2MTI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NjkuODk0OTM3MywgInN0ZXAiOiA1MjIwLCAidmFsdWUiOiAwLjI4NjY5MzI3NDk3NDgyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTc4LjY3NzU3OTQsICJzdGVwIjogNTIzMCwgInZhbHVlIjogMC4yNjY2NzExNTA5MjI3NzUyN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTg2Ljk0MDg1ODEsICJzdGVwIjogNTI0MCwgInZhbHVlIjogMC4yNzkwMzY4Nzk1Mzk0ODk3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTk1LjAzMzI4LCAic3RlcCI6IDUyNTAsICJ2YWx1ZSI6IDAuMzQ3MDEwMTY1NDUyOTU3MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjYwMy4xNzI0MDUyLCAic3RlcCI6IDUyNjAsICJ2YWx1ZSI6IDAuMjU0MzExNTMxNzgyMTUwMjd9LCB7IndhbGxUaW1lIjogMTczMzA3MjYxMS4wNzg3MzgyLCAic3RlcCI6IDUyNzAsICJ2YWx1ZSI6IDAuMjg5NjQ4MDU2MDMwMjczNDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjYxOS45NTM3MjI1LCAic3RlcCI6IDUyODAsICJ2YWx1ZSI6IDAuMjQ4NTk4OTkyODI0NTU0NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjYyOC42MzM1NDk1LCAic3RlcCI6IDUyOTAsICJ2YWx1ZSI6IDAuMjUxNDY5NzMxMzMwODcxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjQxLjM3NDQ2LCAic3RlcCI6IDUzMDAsICJ2YWx1ZSI6IDAuMjI5NzM0NzQ4NjAxOTEzNDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjY0OS44NTY3NjMxLCAic3RlcCI6IDUzMTAsICJ2YWx1ZSI6IDAuMTY4MzYyMjAwMjYwMTYyMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MjY1Ny45NzAyNzY4LCAic3RlcCI6IDUzMjAsICJ2YWx1ZSI6IDAuMTg5NTQ2NjE0ODg1MzMwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjY3LjAyODQ3MDgsICJzdGVwIjogNTMzMCwgInZhbHVlIjogMC4yOTg3NzM0Njc1NDA3NDA5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjc1Ljk0MTk2MzcsICJzdGVwIjogNTM0MCwgInZhbHVlIjogMC4yNDQ5Njc3NTg2NTU1NDgxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2ODQuMjM3NDA2NSwgInN0ZXAiOiA1MzUwLCAidmFsdWUiOiAwLjM3MDI4ODc1OTQ2OTk4NTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2OTEuODU3MTAwNywgInN0ZXAiOiA1MzYwLCAidmFsdWUiOiAwLjI1MDk4Mjk5OTgwMTYzNTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MDAuMTQ2OTY3NCwgInN0ZXAiOiA1MzcwLCAidmFsdWUiOiAwLjE5MTczNzk3OTY1MDQ5NzQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MTMuMTgxOTYxLCAic3RlcCI6IDUzODAsICJ2YWx1ZSI6IDAuMTk3ODkxNjY3NDg1MjM3MTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjcyMS4wMjM2ODcxLCAic3RlcCI6IDUzOTAsICJ2YWx1ZSI6IDAuMTc4NDgzMjYyNjU4MTE5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzI5Ljg3NTkyOTQsICJzdGVwIjogNTQwMCwgInZhbHVlIjogMC4yMzMzMTEyOTU1MDkzMzgzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzM4LjM2ODEwMzcsICJzdGVwIjogNTQxMCwgInZhbHVlIjogMC4xODU1Nzk0MzQwMzcyMDg1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzQ2LjM4MTYwMDksICJzdGVwIjogNTQyMCwgInZhbHVlIjogMC4yNTU1NDMxMTI3NTQ4MjE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3NTQuNjE2NjEyNywgInN0ZXAiOiA1NDMwLCAidmFsdWUiOiAwLjMxNjgwMTMwOTU4NTU3MTN9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc2Mi41NDU1MzUsICJzdGVwIjogNTQ0MCwgInZhbHVlIjogMC4xOTIyMTExODA5MjUzNjkyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzcxLjM1OTU5NzIsICJzdGVwIjogNTQ1MCwgInZhbHVlIjogMC4yNTE5MTE2NDAxNjcyMzYzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzg3LjE1MDYzNSwgInN0ZXAiOiA1NDYwLCAidmFsdWUiOiAwLjE4ODU2MjYzMTYwNzA1NTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3OTUuODAxNDI2NCwgInN0ZXAiOiA1NDcwLCAidmFsdWUiOiAwLjI1MzYwNjk0NTI3NjI2MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjgwNC4yNDA5NywgInN0ZXAiOiA1NDgwLCAidmFsdWUiOiAwLjE2ODY5MTM5NjcxMzI1Njg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MTIuMzcyMDYzMiwgInN0ZXAiOiA1NDkwLCAidmFsdWUiOiAwLjI2NjgwNjg0MDg5NjYwNjQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MjEuMTU4MTc4MywgInN0ZXAiOiA1NTAwLCAidmFsdWUiOiAwLjI4OTAzMzI2MzkyMTczNzY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MzAuMDIxNTEyNSwgInN0ZXAiOiA1NTEwLCAidmFsdWUiOiAwLjI5MTUwMTM0MzI1MDI3NDY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MzguNjk0MDgzMiwgInN0ZXAiOiA1NTIwLCAidmFsdWUiOiAwLjIxMzAzNzIwNzcyMjY2Mzg4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NDYuOTAzOTMwMiwgInN0ZXAiOiA1NTMwLCAidmFsdWUiOiAwLjE3ODY3NjI0NzU5Njc0MDcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NTUuMjQ0ODMsICJzdGVwIjogNTU0MCwgInZhbHVlIjogMC4xOTU4MzYxMjY4MDQzNTE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NzAuNjQyOTUxNywgInN0ZXAiOiA1NTUwLCAidmFsdWUiOiAwLjI5MTkxODM2NzE0NzQ0NTd9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg3OC43Mjc3NjY4LCAic3RlcCI6IDU1NjAsICJ2YWx1ZSI6IDAuMjc2NTYwMjc2NzQ2NzQ5OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODg2LjYwOTE1MzUsICJzdGVwIjogNTU3MCwgInZhbHVlIjogMC4yMzU3MzA0MjQ1MjMzNTM1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODk1LjAxOTY3NjIsICJzdGVwIjogNTU4MCwgInZhbHVlIjogMC44NjIyNDI2OTg2Njk0MzM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MDMuNDAxNjkxNCwgInN0ZXAiOiA1NTkwLCAidmFsdWUiOiAwLjIxMjc0NTM4MzM4MTg0MzU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MTEuMjA4NzM0LCAic3RlcCI6IDU2MDAsICJ2YWx1ZSI6IDAuMzA4NjEzMTIxNTA5NTUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MTkuODM4NjMwMiwgInN0ZXAiOiA1NjEwLCAidmFsdWUiOiAwLjI2MjcyNTUwMjI1MjU3ODc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MjguNzMxNzYyNiwgInN0ZXAiOiA1NjIwLCAidmFsdWUiOiAwLjM3NTYzNTU2NDMyNzI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NDEuNzAyMzk2NCwgInN0ZXAiOiA1NjMwLCAidmFsdWUiOiAwLjIwNzE3NTM3NDAzMTA2Njl9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk0OS45Nzg2ODA2LCAic3RlcCI6IDU2NDAsICJ2YWx1ZSI6IDAuMjM3MDExMTM0NjI0NDgxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTU4LjcxNzk3MywgInN0ZXAiOiA1NjUwLCAidmFsdWUiOiAwLjMzNTQ5MzgwMzAyNDI5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTY2LjgxMjc0MDgsICJzdGVwIjogNTY2MCwgInZhbHVlIjogMC4yMDczMjgzMzQ0NTA3MjE3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTc0Ljk2MDEwMzUsICJzdGVwIjogNTY3MCwgInZhbHVlIjogMC4xODQzMDA4Njk3MDMyOTI4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTgzLjU2MDY3MzcsICJzdGVwIjogNTY4MCwgInZhbHVlIjogMC4yMzUxMDQ4NzM3NzY0MzU4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTkyLjIyNjYxNDUsICJzdGVwIjogNTY5MCwgInZhbHVlIjogMC4yNTUxODEyNTI5NTYzOTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMDAuODE1Nzg5LCAic3RlcCI6IDU3MDAsICJ2YWx1ZSI6IDAuMTk4NzMzMzQ0Njc0MTEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDA5Ljc4MjAwMzQsICJzdGVwIjogNTcxMCwgInZhbHVlIjogMC4yNDQ2NzgyNDM5OTQ3MTI4M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMDIyLjg2NjkxNjcsICJzdGVwIjogNTcyMCwgInZhbHVlIjogMC4zNjc5MTMxODY1NTAxNDA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMzEuNTMyNTg3MywgInN0ZXAiOiA1NzMwLCAidmFsdWUiOiAwLjMxMDQzMTAzMzM3Mjg3OTAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMzkuNTY5MDAxLCAic3RlcCI6IDU3NDAsICJ2YWx1ZSI6IDAuMjUzODMwNDMyODkxODQ1N30sIHsid2FsbFRpbWUiOiAxNzMzMDczMDQ3Ljg0MTY3NSwgInN0ZXAiOiA1NzUwLCAidmFsdWUiOiAwLjI0MDg4NjcxODAzNDc0NDI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNTYuMTU1Mjc3LCAic3RlcCI6IDU3NjAsICJ2YWx1ZSI6IDAuMTg2MTAyMzYwNDg2OTg0MjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzA2NC45NTM4MzA3LCAic3RlcCI6IDU3NzAsICJ2YWx1ZSI6IDAuMzQzNTY5MTg5MzEwMDczODV9LCB7IndhbGxUaW1lIjogMTczMzA3MzA3My44MzY0MzA1LCAic3RlcCI6IDU3ODAsICJ2YWx1ZSI6IDAuMjM2NDk2NzQ2NTQwMDY5NTh9LCB7IndhbGxUaW1lIjogMTczMzA3MzA4Mi43MjM4NzQ2LCAic3RlcCI6IDU3OTAsICJ2YWx1ZSI6IDAuMzI0MzE4MzQ5MzYxNDE5N30sIHsid2FsbFRpbWUiOiAxNzMzMDczMDk1LjEwMTc0NTgsICJzdGVwIjogNTgwMCwgInZhbHVlIjogMC4yMjMzNjYwMjIxMDk5ODUzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTAzLjMxNDU0MSwgInN0ZXAiOiA1ODEwLCAidmFsdWUiOiAwLjI0OTIzNDY0NjU1ODc2MTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzExMS45Njk0Njc2LCAic3RlcCI6IDU4MjAsICJ2YWx1ZSI6IDAuMTY2NDQwNzQwMjI3Njk5Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzEyMC4zNTQyNTY0LCAic3RlcCI6IDU4MzAsICJ2YWx1ZSI6IDAuMzA5MzM4NTM5ODM4NzkwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTI4LjIwODAyNzEsICJzdGVwIjogNTg0MCwgInZhbHVlIjogMC4yMDU0MTczMDUyMzEwOTQzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTM2LjcxNDUyNjQsICJzdGVwIjogNTg1MCwgInZhbHVlIjogMC4xNzE1OTcxODI3NTA3MDE5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNDQuOTI2NjQxNSwgInN0ZXAiOiA1ODYwLCAidmFsdWUiOiAwLjI1NjY0NzA4MDE4MzAyOTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzE1My4wMzk1Mzg0LCAic3RlcCI6IDU4NzAsICJ2YWx1ZSI6IDAuMTYxNjgzMDM3ODc3MDgyODJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzE2Ni4wMDE1NTk3LCAic3RlcCI6IDU4ODAsICJ2YWx1ZSI6IDAuMTk2MzM1NDc5NjE3MTE4ODR9LCB7IndhbGxUaW1lIjogMTczMzA3MzE3NC42NTc4MzUsICJzdGVwIjogNTg5MCwgInZhbHVlIjogMC4xNTY1MTk2MzY1MTE4MDI2N30sIHsid2FsbFRpbWUiOiAxNzMzMDczMTgyLjUwNzE0NywgInN0ZXAiOiA1OTAwLCAidmFsdWUiOiAwLjIyNTEyMzYxNDA3Mjc5OTY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxOTEuNTU4NDE4LCAic3RlcCI6IDU5MTAsICJ2YWx1ZSI6IDAuMTg3OTkxMzk1NTkyNjg5NTF9LCB7IndhbGxUaW1lIjogMTczMzA3MzE5OS40MDk1MTc1LCAic3RlcCI6IDU5MjAsICJ2YWx1ZSI6IDAuMTEyMDYxMzU4OTg4Mjg1MDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzIwNy40NjQzNzE0LCAic3RlcCI6IDU5MzAsICJ2YWx1ZSI6IDAuMjMyMTY3ODI1MTAyODA2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjE1LjYwMTY5NCwgInN0ZXAiOiA1OTQwLCAidmFsdWUiOiAwLjIwOTcwMDMxNjE5MDcxOTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzIyNC4zNTcwMzEzLCAic3RlcCI6IDU5NTAsICJ2YWx1ZSI6IDAuMjA1MTIxMTc0NDU0Njg5MDN9LCB7IndhbGxUaW1lIjogMTczMzA3MzIzMi44NzU2NzMzLCAic3RlcCI6IDU5NjAsICJ2YWx1ZSI6IDAuMjg2OTYzODIwNDU3NDU4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjQ1LjM3MjY3NDIsICJzdGVwIjogNTk3MCwgInZhbHVlIjogMC4yMDkwOTc4NzcxNDQ4MTM1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjUzLjE3ODUxMSwgInN0ZXAiOiA1OTgwLCAidmFsdWUiOiAwLjI1MTczNDM0NjE1MTM1MTkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNjEuNzcxNDMxMiwgInN0ZXAiOiA1OTkwLCAidmFsdWUiOiAwLjIxNjk3NzU5NjI4Mjk1ODk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNzAuMDU4ODMwMywgInN0ZXAiOiA2MDAwLCAidmFsdWUiOiAwLjIxOTE5NjI0NTA3NDI3MjE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNzguODk0NDIxOCwgInN0ZXAiOiA2MDEwLCAidmFsdWUiOiAwLjM3MTYxODgzNzExODE0ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MzI4Ny42ODExOTg0LCAic3RlcCI6IDYwMjAsICJ2YWx1ZSI6IDAuMjU4MTkyODM3MjM4MzExNzd9LCB7IndhbGxUaW1lIjogMTczMzA3MzI5Ny4yNzM1MTg4LCAic3RlcCI6IDYwMzAsICJ2YWx1ZSI6IDAuMzg3MDkzMTI2NzczODM0MjN9LCB7IndhbGxUaW1lIjogMTczMzA3MzMwNS45MTcyNzksICJzdGVwIjogNjA0MCwgInZhbHVlIjogMC4zMDI4NTQyMzk5NDA2NDMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzMjIuMzUzODA5NiwgInN0ZXAiOiA2MDUwLCAidmFsdWUiOiAwLjIyNjAxMjg4NTU3MDUyNjEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzMzEuOTc2MzMzMSwgInN0ZXAiOiA2MDYwLCAidmFsdWUiOiAwLjE2MTYzNDk1MTgyOTkxMDI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNDAuNTIxMjQ0NSwgInN0ZXAiOiA2MDcwLCAidmFsdWUiOiAwLjE4ODU1NTg2NjQ3OTg3MzY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNDkuNjAxMTEyNiwgInN0ZXAiOiA2MDgwLCAidmFsdWUiOiAwLjMwNzE1NzI3ODA2MDkxMzF9LCB7IndhbGxUaW1lIjogMTczMzA3MzM1OS4wNzAyNjgsICJzdGVwIjogNjA5MCwgInZhbHVlIjogMC4xOTA1ODY1MzcxMjI3MjY0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzY4LjQwMTk5ODUsICJzdGVwIjogNjEwMCwgInZhbHVlIjogMC4yMzA2NDYyMDc5Mjg2NTc1M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMzc3LjY3NDA5MjgsICJzdGVwIjogNjExMCwgInZhbHVlIjogMC4yNDQ2NDU0MDE4MzU0NDE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzODYuMzk5NDA0OCwgInN0ZXAiOiA2MTIwLCAidmFsdWUiOiAwLjE2ODI1ODYzNzE4OTg2NTF9LCB7IndhbGxUaW1lIjogMTczMzA3MzM5NS40NTA1Nzk2LCAic3RlcCI6IDYxMzAsICJ2YWx1ZSI6IDAuMjM0ODAyMTQxNzg1NjIxNjR9LCB7IndhbGxUaW1lIjogMTczMzA3MzQwOC4xNTAzNzk0LCAic3RlcCI6IDYxNDAsICJ2YWx1ZSI6IDAuMTU0NTIwNTU2MzMwNjgwODV9LCB7IndhbGxUaW1lIjogMTczMzA3MzQxNy4zMjI4MDI1LCAic3RlcCI6IDYxNTAsICJ2YWx1ZSI6IDAuMTkzNjg3Nzk2NTkyNzEyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDI2LjI1NTA0NjYsICJzdGVwIjogNjE2MCwgInZhbHVlIjogMC4xOTY5NTQ2ODI0NjkzNjc5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDM0LjgwODM3LCAic3RlcCI6IDYxNzAsICJ2YWx1ZSI6IDAuMTcxMTUzNDI2MTcwMzQ5MTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ0NC41MTE3NzEsICJzdGVwIjogNjE4MCwgInZhbHVlIjogMC4yMTkzNzg3Mzk1OTU0MTMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NTMuMTE0NzY5NywgInN0ZXAiOiA2MTkwLCAidmFsdWUiOiAwLjI0Njc3MTU0NDIxODA2MzM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NjIuNTY0NTk5OCwgInN0ZXAiOiA2MjAwLCAidmFsdWUiOiAwLjE2MjIyODE5Njg1OTM1OTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NzIuMDIzNDA5NiwgInN0ZXAiOiA2MjEwLCAidmFsdWUiOiAwLjI0MDUyMjYzNzk2MzI5NDk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0ODQuNDQ3MzAwNCwgInN0ZXAiOiA2MjIwLCAidmFsdWUiOiAwLjIwNTcyODQ4NjE4MDMwNTQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0OTMuNjU5MDE2NiwgInN0ZXAiOiA2MjMwLCAidmFsdWUiOiAwLjE5NzgyMTI1OTQ5ODU5NjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzUwMi40NDAyMzEzLCAic3RlcCI6IDYyNDAsICJ2YWx1ZSI6IDAuMjEzODE0OTg4NzMyMzM3OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzUxMS4yNTQ5MDc0LCAic3RlcCI6IDYyNTAsICJ2YWx1ZSI6IDAuMjM3NjE1MzE3MTA2MjQ2OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzUyMC40ODQwMDI2LCAic3RlcCI6IDYyNjAsICJ2YWx1ZSI6IDAuMTkzMDg3NDczNTExNjk1ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzUyOS43ODA0MzA4LCAic3RlcCI6IDYyNzAsICJ2YWx1ZSI6IDAuMjgxMzc4OTI0ODQ2NjQ5MTd9LCB7IndhbGxUaW1lIjogMTczMzA3MzUzOS42MzgxMzk3LCAic3RlcCI6IDYyODAsICJ2YWx1ZSI6IDAuMjM3MDQ1ODA5NjI2NTc5Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzU0OC45MDk3NDMsICJzdGVwIjogNjI5MCwgInZhbHVlIjogMC4yMDk3MjEwNDM3MDU5NDAyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTYwLjYxODY5MjYsICJzdGVwIjogNjMwMCwgInZhbHVlIjogMC4yNzExMTI1OTEwMjgyMTM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NzAuMDY3OTYyMiwgInN0ZXAiOiA2MzEwLCAidmFsdWUiOiAwLjE5MTc0MDMwNDIzMTY0MzY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NzkuNDgwMTEsICJzdGVwIjogNjMyMCwgInZhbHVlIjogMC4yNTI0NzcwNDk4Mjc1NzU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1ODcuNjY2MjMwMiwgInN0ZXAiOiA2MzMwLCAidmFsdWUiOiAwLjE5ODExMTQ3NDUxNDAwNzU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1OTcuMjE2OTY4OCwgInN0ZXAiOiA2MzQwLCAidmFsdWUiOiAwLjIwODY1MTU3MjQ2NTg5NjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzYwNi4yMzcxMzczLCAic3RlcCI6IDYzNTAsICJ2YWx1ZSI6IDAuMTk1NDM0MDc4NTc0MTgwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjE1LjA3NjUzNCwgInN0ZXAiOiA2MzYwLCAidmFsdWUiOiAwLjI5NjIxMDU1NzIyMjM2NjMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MjQuODMzNDg4MiwgInN0ZXAiOiA2MzcwLCAidmFsdWUiOiAwLjI2MDA1NDIzMDY5MDAwMjQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MzQuNjcxNDg2NCwgInN0ZXAiOiA2MzgwLCAidmFsdWUiOiAwLjIzODcyMzg0NDI4OTc3OTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NDYuNTI3MTk5NSwgInN0ZXAiOiA2MzkwLCAidmFsdWUiOiAwLjIwNjcwNTEwODI4NDk1MDI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NTUuNzQ0NDIzNCwgInN0ZXAiOiA2NDAwLCAidmFsdWUiOiAwLjI0MDExNzIyMjA3MDY5Mzk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NjUuNjA2MTU1LCAic3RlcCI6IDY0MTAsICJ2YWx1ZSI6IDAuMjI5NDQwODM4MDk4NTI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NzQuNjQxNzUzNCwgInN0ZXAiOiA2NDIwLCAidmFsdWUiOiAwLjI4ODM0NjMyMDM5MDcwMTN9LCB7IndhbGxUaW1lIjogMTczMzA3MzY4My42NjkzMTI1LCAic3RlcCI6IDY0MzAsICJ2YWx1ZSI6IDAuMTcyNTc5NTU2NzAzNTY3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjkyLjg3NTc3NDQsICJzdGVwIjogNjQ0MCwgInZhbHVlIjogMC4yNTk4MDUwNTM0NzI1MTg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MDIuNTE4MTQ0NiwgInN0ZXAiOiA2NDUwLCAidmFsdWUiOiAwLjE3NTQ2OTA4NTU3NDE1MDA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MTIuNjI2MzQwNiwgInN0ZXAiOiA2NDYwLCAidmFsdWUiOiAwLjI1ODk5NjQ1Njg2MTQ5NTk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MjQuMDQ1OTU5LCAic3RlcCI6IDY0NzAsICJ2YWx1ZSI6IDAuMzI0NDE0OTM4Njg4Mjc4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzMyLjgyNzQxMDIsICJzdGVwIjogNjQ4MCwgInZhbHVlIjogMC4yMzgwMTU0ODc3OTAxMDc3M30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzQxLjk1NjE4NjUsICJzdGVwIjogNjQ5MCwgInZhbHVlIjogMC4yMTY3MjY0MzcyMTEwMzY2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzUwLjcxNjcwMzcsICJzdGVwIjogNjUwMCwgInZhbHVlIjogMC4yNDI2MTg2MzUyOTY4MjE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NjAuNDg3MTIzNSwgInN0ZXAiOiA2NTEwLCAidmFsdWUiOiAwLjE1NzIxNDQ3NzY1ODI3MTh9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc2OS44NjIzMDUsICJzdGVwIjogNjUyMCwgInZhbHVlIjogMC4xNzU3Mjc4MjkzMzcxMjAwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzc5LjEyNjA1OTgsICJzdGVwIjogNjUzMCwgInZhbHVlIjogMC4yMDI5MDA3NjczMjYzNTQ5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzg5LjQ3NjcxNjUsICJzdGVwIjogNjU0MCwgInZhbHVlIjogMC4zMTQ5MzcyMDQxMjI1NDMzM30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzk4LjEwMjMzMiwgInN0ZXAiOiA2NTUwLCAidmFsdWUiOiAwLjM0NDM0OTc0MTkzNTczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MTAuNTUxODc5NCwgInN0ZXAiOiA2NTYwLCAidmFsdWUiOiAwLjIzMjc1MDgwMzIzMjE5M30sIHsid2FsbFRpbWUiOiAxNzMzMDczODIwLjAzNTM3MDgsICJzdGVwIjogNjU3MCwgInZhbHVlIjogMC4yMTMxOTY4NDM4NjI1MzM1N30sIHsid2FsbFRpbWUiOiAxNzMzMDczODI4LjIzNzU5NSwgInN0ZXAiOiA2NTgwLCAidmFsdWUiOiAwLjI2NDMxMTAxNTYwNTkyNjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzgzNi43OTcyMjQsICJzdGVwIjogNjU5MCwgInZhbHVlIjogMC4xODA3Nzk4MTQ3MjAxNTM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NDUuOTg2NTMwNSwgInN0ZXAiOiA2NjAwLCAidmFsdWUiOiAwLjIyMTY5ODg4MDE5NTYxNzY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NTUuMjUxMTkxNCwgInN0ZXAiOiA2NjEwLCAidmFsdWUiOiAwLjIxMzk4ODQyMzM0NzQ3MzE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NjQuNjkyNzc0MywgInN0ZXAiOiA2NjIwLCAidmFsdWUiOiAwLjE5MDI2NTIwODQ4Mjc0MjN9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg3My44MzM3MDczLCAic3RlcCI6IDY2MzAsICJ2YWx1ZSI6IDAuMjA5OTUxODYyNjkyODMyOTV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg4Ny41MjM3MDc0LCAic3RlcCI6IDY2NDAsICJ2YWx1ZSI6IDAuMjYyMTIyNTcxNDY4MzUzMjd9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg5Ny4zMzMwMDU3LCAic3RlcCI6IDY2NTAsICJ2YWx1ZSI6IDAuMjMyMDMwNzY0MjIyMTQ1MDh9LCB7IndhbGxUaW1lIjogMTczMzA3MzkwNi44NzU4OTY3LCAic3RlcCI6IDY2NjAsICJ2YWx1ZSI6IDAuMjI3NDg4NDU4MTU2NTg1N30sIHsid2FsbFRpbWUiOiAxNzMzMDczOTE2LjM0OTQwNywgInN0ZXAiOiA2NjcwLCAidmFsdWUiOiAwLjI1OTU2NDkzNjE2MTA0MTI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5MjUuNjE3OTQ2LCAic3RlcCI6IDY2ODAsICJ2YWx1ZSI6IDAuMTkzNDQyMDkxMzQ1Nzg3MDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzkzNC45MTU5NzI3LCAic3RlcCI6IDY2OTAsICJ2YWx1ZSI6IDAuMTgzNDgwMjAzMTUxNzAyODh9LCB7IndhbGxUaW1lIjogMTczMzA3Mzk0My43NDE0ODQsICJzdGVwIjogNjcwMCwgInZhbHVlIjogMC4xNzY0NjI3NTQ2MDcyMDA2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTUyLjQ3NjMxMjksICJzdGVwIjogNjcxMCwgInZhbHVlIjogMC4yMzcxNTg1OTY1MTU2NTU1Mn1dfX1d", + "ok": true, + "headers": [ + [ + "content-length", + "15075" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Loss/loss_bbox_aux_4%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIkxvc3MvbG9zc19iYm94X2F1eF80IiwgInJ1blRvU2VyaWVzIjogeyIuIjogW3sid2FsbFRpbWUiOiAxNzMzMDY3NjMxLjUzODk1MDIsICJzdGVwIjogMCwgInZhbHVlIjogMS44NDQ4Nzc3MTk4NzkxNTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NDYuNjUyMzI1NiwgInN0ZXAiOiAxMCwgInZhbHVlIjogMi4wODAxMDA1MzYzNDY0MzU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NjAuNzg0MzI5MiwgInN0ZXAiOiAyMCwgInZhbHVlIjogMS44OTMyMDk2OTU4MTYwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njc0LjEzNzU2OTIsICJzdGVwIjogMzAsICJ2YWx1ZSI6IDEuODA0MDYxODg5NjQ4NDM3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njg3LjA1NzI1MjQsICJzdGVwIjogNDAsICJ2YWx1ZSI6IDIuMDM0MTUyMjY5MzYzNDAzM30sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njk5LjQ5MzIzOCwgInN0ZXAiOiA1MCwgInZhbHVlIjogMS4zMDE4Mjc0MzA3MjUwOTc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MTAuNjI5NDQwMywgInN0ZXAiOiA2MCwgInZhbHVlIjogMS42Mjg5MjQwMTIxODQxNDN9LCB7IndhbGxUaW1lIjogMTczMzA2NzcyMi43NTU2MjgsICJzdGVwIjogNzAsICJ2YWx1ZSI6IDEuNDAxOTI1MzI1MzkzNjc2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzMzLjcyNTQ2NiwgInN0ZXAiOiA4MCwgInZhbHVlIjogMC45NDMyMzkzOTA4NTAwNjcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NTAuOTQ2MzY5NiwgInN0ZXAiOiA5MCwgInZhbHVlIjogMS4yNDkwNzYzNjY0MjQ1NjA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NjEuOTgxMDExLCAic3RlcCI6IDEwMCwgInZhbHVlIjogMS4xMDE0MjAwNDQ4OTg5ODY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NzEuNjA2NTI3NiwgInN0ZXAiOiAxMTAsICJ2YWx1ZSI6IDAuNzI1NzgyNDU0MDEzODI0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzgwLjU0NzQ5MjUsICJzdGVwIjogMTIwLCAidmFsdWUiOiAwLjYxODY4MjI2NTI4MTY3NzJ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc5MC40ODU0ODQsICJzdGVwIjogMTMwLCAidmFsdWUiOiAwLjgwODA4ODEyMzc5ODM3MDR9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc5OS4xMDU3NTEzLCAic3RlcCI6IDE0MCwgInZhbHVlIjogMC40MzM0MjMyMjExMTEyOTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MDkuNDQ0NzczNywgInN0ZXAiOiAxNTAsICJ2YWx1ZSI6IDAuNjQzMTA0NjEyODI3MzAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MTguOTIwODU4LCAic3RlcCI6IDE2MCwgInZhbHVlIjogMC41OTMxNjc2NjI2MjA1NDQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MzYuNjQ5NjU3MiwgInN0ZXAiOiAxNzAsICJ2YWx1ZSI6IDAuNDQyNTk2ODUyNzc5Mzg4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODQ2LjM5MDc0MTYsICJzdGVwIjogMTgwLCAidmFsdWUiOiAwLjY2Mzk2NjgzNDU0NTEzNTV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg1NS42NjcwMDM2LCAic3RlcCI6IDE5MCwgInZhbHVlIjogMC40MzQ0MDI2NDQ2MzQyNDY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4NjQuODg5OTg2LCAic3RlcCI6IDIwMCwgInZhbHVlIjogMC43ODE0OTk2ODM4NTY5NjQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4NzQuMDAxOTQ4LCAic3RlcCI6IDIxMCwgInZhbHVlIjogMC42MDE1Mjg0NjU3NDc4MzMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4ODMuNzg2MjY0NywgInN0ZXAiOiAyMjAsICJ2YWx1ZSI6IDAuNDA0NzM4OTYyNjUwMjk5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODkyLjEyMzI0MzgsICJzdGVwIjogMjMwLCAidmFsdWUiOiAwLjUxMDA3NDI1Nzg1MDY0N30sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTAxLjA2OTQ5MywgInN0ZXAiOiAyNDAsICJ2YWx1ZSI6IDAuNTAxNDQ5NzYzNzc0ODcxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTEwLjA3NTAwNTMsICJzdGVwIjogMjUwLCAidmFsdWUiOiAwLjQ2ODg5MzM0OTE3MDY4NDh9LCB7IndhbGxUaW1lIjogMTczMzA2NzkyNS45NTAxMTgsICJzdGVwIjogMjYwLCAidmFsdWUiOiAwLjc3Mjk2NTE5Mjc5NDc5OTh9LCB7IndhbGxUaW1lIjogMTczMzA2NzkzNS40NzU2Mzc0LCAic3RlcCI6IDI3MCwgInZhbHVlIjogMC40MzE1MDI1ODA2NDI3MDAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NDQuMDE1NzA3NywgInN0ZXAiOiAyODAsICJ2YWx1ZSI6IDAuNDc0MDQzODE2MzI4MDQ4N30sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTUyLjU0Njc3MSwgInN0ZXAiOiAyOTAsICJ2YWx1ZSI6IDAuNDcxNzc1MzUyOTU0ODY0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTYxLjAyNjgzOTcsICJzdGVwIjogMzAwLCAidmFsdWUiOiAwLjMyNjU2NjQ1Nzc0ODQxMzF9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk3MC4xMzQ3MTYzLCAic3RlcCI6IDMxMCwgInZhbHVlIjogMC41MzQzNDk3Mzk1NTE1NDQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5ODAuMjI1ODg4MywgInN0ZXAiOiAzMjAsICJ2YWx1ZSI6IDAuNDQ5Mjk2MjA2MjM1ODg1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTg4LjgxNjE2NjksICJzdGVwIjogMzMwLCAidmFsdWUiOiAwLjUzNzk2Mjk3MzExNzgyODR9LCB7IndhbGxUaW1lIjogMTczMzA2ODAwNS4wOTA3MzE5LCAic3RlcCI6IDM0MCwgInZhbHVlIjogMC40MTQyNzk4NDgzMzcxNzM0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDE0LjA2NTI5MjgsICJzdGVwIjogMzUwLCAidmFsdWUiOiAwLjQwMTA0NjU3NDExNTc1MzJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODAyMi41NTMxMzQsICJzdGVwIjogMzYwLCAidmFsdWUiOiAwLjQ2MDU3MzQ5NDQzNDM1Njd9LCB7IndhbGxUaW1lIjogMTczMzA2ODAzMS44MjQ4MzEsICJzdGVwIjogMzcwLCAidmFsdWUiOiAwLjQ5NzMxMTA4NTQ2MjU3MDJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODA0MC43ODc5NTUzLCAic3RlcCI6IDM4MCwgInZhbHVlIjogMC4zNjk2Njc3Mzg2NzYwNzExN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDUwLjE2MDM2ODcsICJzdGVwIjogMzkwLCAidmFsdWUiOiAwLjM5MjE3ODA1ODYyNDI2NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODA1OS4xMjYyNDM4LCAic3RlcCI6IDQwMCwgInZhbHVlIjogMC4yOTcyOTQ3MDYxMDYxODU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNjguMDkwMjY3LCAic3RlcCI6IDQxMCwgInZhbHVlIjogMC42Njk2MzU2NTM0OTU3ODg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwODQuODQ0MywgInN0ZXAiOiA0MjAsICJ2YWx1ZSI6IDAuMzg0ODgzNDYzMzgyNzIwOTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODA5NC42NjY4MzksICJzdGVwIjogNDMwLCAidmFsdWUiOiAwLjUwMjQ4MjcxMjI2ODgyOTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODEwMy43MDgyODgyLCAic3RlcCI6IDQ0MCwgInZhbHVlIjogMC4zNDM1NDM4Mjc1MzM3MjE5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMTIuNjk5OTIyLCAic3RlcCI6IDQ1MCwgInZhbHVlIjogMC40Mjk3NDEwMjQ5NzEwMDgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMjEuNTAxMzA0LCAic3RlcCI6IDQ2MCwgInZhbHVlIjogMC41MzM4NzQ1NzEzMjMzOTQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMzAuNzI4MDg3LCAic3RlcCI6IDQ3MCwgInZhbHVlIjogMC4zOTcwNDg5NTAxOTUzMTI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMzkuODU2MDczNiwgInN0ZXAiOiA0ODAsICJ2YWx1ZSI6IDAuNDA0NzQzNDMyOTk4NjU3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTQ5LjM3MDQ1NTUsICJzdGVwIjogNDkwLCAidmFsdWUiOiAwLjUzMzg1NDcyMjk3NjY4NDZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODE1OC4wNzA0NTgsICJzdGVwIjogNTAwLCAidmFsdWUiOiAwLjUyMDc4MjcwOTEyMTcwNDF9LCB7IndhbGxUaW1lIjogMTczMzA2ODE3NC4xMTU1NTQsICJzdGVwIjogNTEwLCAidmFsdWUiOiAwLjQ4MDc2NDA2MTIxMjUzOTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODE4Mi43MjAwNTYsICJzdGVwIjogNTIwLCAidmFsdWUiOiAwLjM3ODIwMDcwOTgxOTc5Mzd9LCB7IndhbGxUaW1lIjogMTczMzA2ODE5Mi40MTQwNjQyLCAic3RlcCI6IDUzMCwgInZhbHVlIjogMC40MDI5OTI4MTQ3NzkyODE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMDEuODA4NjA1LCAic3RlcCI6IDU0MCwgInZhbHVlIjogMC4zOTE0NDMxMzMzNTQxODd9LCB7IndhbGxUaW1lIjogMTczMzA2ODIxMC42NTUwMDI4LCAic3RlcCI6IDU1MCwgInZhbHVlIjogMC41OTEzNTY5OTI3MjE1NTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMjAuMTk1NTk5MywgInN0ZXAiOiA1NjAsICJ2YWx1ZSI6IDAuNzI1MzcwMDQ5NDc2NjIzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjI5LjE1OTg2MjUsICJzdGVwIjogNTcwLCAidmFsdWUiOiAwLjMxNjEzMDE2MTI4NTQwMDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODIzOC41OTIwNTk2LCAic3RlcCI6IDU4MCwgInZhbHVlIjogMC4yOTIxODU4NzI3OTMxOTc2M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjU2LjA3NDI3NDgsICJzdGVwIjogNTkwLCAidmFsdWUiOiAwLjQyMzgxMTE5NzI4MDg4Mzh9LCB7IndhbGxUaW1lIjogMTczMzA2ODI2NS40MzIzNzQyLCAic3RlcCI6IDYwMCwgInZhbHVlIjogMC40OTk5ODA4OTY3MTEzNDk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNzQuNjU3MDM3MywgInN0ZXAiOiA2MTAsICJ2YWx1ZSI6IDAuNjYzOTg1MTMzMTcxMDgxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjgzLjc3MDU2NDMsICJzdGVwIjogNjIwLCAidmFsdWUiOiAwLjU5MTQ2NDYzODcxMDAyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjkzLjMzNDY5NCwgInN0ZXAiOiA2MzAsICJ2YWx1ZSI6IDAuNDU2Mjg1MjA4NDYzNjY4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzAyLjY0NzcxMjIsICJzdGVwIjogNjQwLCAidmFsdWUiOiAwLjM4MzIyNjkzMTA5NTEyMzN9LCB7IndhbGxUaW1lIjogMTczMzA2ODMxMS4zODg3MzYsICJzdGVwIjogNjUwLCAidmFsdWUiOiAwLjM0Mjg1NjI4Nzk1NjIzNzh9LCB7IndhbGxUaW1lIjogMTczMzA2ODMyMC4zOTA3MTQyLCAic3RlcCI6IDY2MCwgInZhbHVlIjogMC40NTM2NzA3Njk5Mjk4ODU4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzI4LjczMTgxNzIsICJzdGVwIjogNjcwLCAidmFsdWUiOiAwLjM3MTA2MTY4MjcwMTExMDg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNDQuNDYxNzIyNCwgInN0ZXAiOiA2ODAsICJ2YWx1ZSI6IDAuMzk3OTk4MTI0MzYxMDM4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzUzLjcxNzUyNDUsICJzdGVwIjogNjkwLCAidmFsdWUiOiAwLjM1NjAyMDAwMzU1NzIwNTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODM2Mi4wNTg0ODQsICJzdGVwIjogNzAwLCAidmFsdWUiOiAwLjMzMDUwODg4Nzc2Nzc5MTc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNzEuMTA0NTk0MiwgInN0ZXAiOiA3MTAsICJ2YWx1ZSI6IDAuNTIyMzIzNTQ4NzkzNzkyN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzgwLjUzMzc2NzIsICJzdGVwIjogNzIwLCAidmFsdWUiOiAwLjQwNzAyNTgxNDA1NjM5NjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODM5MC4wODcyODE3LCAic3RlcCI6IDczMCwgInZhbHVlIjogMC4zMTU0NTM3Njc3NzY0ODkyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Mzk4LjcyMTYwMzksICJzdGVwIjogNzQwLCAidmFsdWUiOiAwLjQ2NDM4NjIyNDc0NjcwNDF9LCB7IndhbGxUaW1lIjogMTczMzA2ODQwNy4xMjQ1ODU2LCAic3RlcCI6IDc1MCwgInZhbHVlIjogMC40MDkzMzY2ODYxMzQzMzg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MjMuMDcxOTc2NCwgInN0ZXAiOiA3NjAsICJ2YWx1ZSI6IDAuNDEyMDgwNzY0NzcwNTA3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDMxLjQwNjAyMjMsICJzdGVwIjogNzcwLCAidmFsdWUiOiAwLjMzMDE0Nzc3MzAyNzQyMDA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NDAuNDI1NTg5MywgInN0ZXAiOiA3ODAsICJ2YWx1ZSI6IDAuMzU0NTU3NzgyNDExNTc1M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDQ5LjAwNzIzMzQsICJzdGVwIjogNzkwLCAidmFsdWUiOiAwLjM3NTYxMDQ3MDc3MTc4OTU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NTcuNjM4NDg0NywgInN0ZXAiOiA4MDAsICJ2YWx1ZSI6IDAuMzk5NDQ1NTkzMzU3MDg2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDY3LjA0NzkwODMsICJzdGVwIjogODEwLCAidmFsdWUiOiAwLjM4MDUxMjMyNjk1NTc5NTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ3NS42MjExMzcsICJzdGVwIjogODIwLCAidmFsdWUiOiAwLjM3Mzc1OTU2NzczNzU3OTM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0ODQuOTc5NzIzNSwgInN0ZXAiOiA4MzAsICJ2YWx1ZSI6IDAuMzc3NjkyNDMxMjExNDcxNTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODUwMC43MzIzMzM3LCAic3RlcCI6IDg0MCwgInZhbHVlIjogMC40MDY0NDQyMjE3MzUwMDA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MDkuMzA4NTcyOCwgInN0ZXAiOiA4NTAsICJ2YWx1ZSI6IDAuNDE3MzIzNDEwNTExMDE2ODV9LCB7IndhbGxUaW1lIjogMTczMzA2ODUxOS4wMjMwMTcsICJzdGVwIjogODYwLCAidmFsdWUiOiAwLjQxNDE5MjY0Njc0MTg2NzA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MjcuNDk5MzU5MSwgInN0ZXAiOiA4NzAsICJ2YWx1ZSI6IDAuMzMxOTIyNTMxMTI3OTI5N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTM2LjkyMTE0MDIsICJzdGVwIjogODgwLCAidmFsdWUiOiAwLjQ4NTI3MjQwNzUzMTczODN9LCB7IndhbGxUaW1lIjogMTczMzA2ODU0NC45MDk2NTgyLCAic3RlcCI6IDg5MCwgInZhbHVlIjogMC4zNTMwNzMyMDk1MjQxNTQ2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTUzLjU3OTk3MTgsICJzdGVwIjogOTAwLCAidmFsdWUiOiAwLjM3NTkzMDA3MDg3NzA3NTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODU2Mi42ODY4OTgyLCAic3RlcCI6IDkxMCwgInZhbHVlIjogMC40MTU2NTA0ODY5NDYxMDU5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTcxLjI0NzI3MzcsICJzdGVwIjogOTIwLCAidmFsdWUiOiAwLjM0MTc1Njk2OTY5MDMyMjl9LCB7IndhbGxUaW1lIjogMTczMzA2ODU4NC43NzczNzY3LCAic3RlcCI6IDkzMCwgInZhbHVlIjogMC4zODY4MjAyODY1MTIzNzQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1OTMuNzczODYwNywgInN0ZXAiOiA5NDAsICJ2YWx1ZSI6IDAuMzcxNzAzMjM3Mjk1MTUwNzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODYwMi43Njc4MDY1LCAic3RlcCI6IDk1MCwgInZhbHVlIjogMC40NTI2ODg3ODM0MDcyMTEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MTEuMDQxOTI0LCAic3RlcCI6IDk2MCwgInZhbHVlIjogMC4yODc1MDc0MTQ4MTc4MTAwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjIwLjIyODY2MywgInN0ZXAiOiA5NzAsICJ2YWx1ZSI6IDAuMzM1MDUxODM0NTgzMjgyNDd9LCB7IndhbGxUaW1lIjogMTczMzA2ODYyOC44NDM3ODUsICJzdGVwIjogOTgwLCAidmFsdWUiOiAwLjQwNjM1MDc5MTQ1NDMxNTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODYzNy42MzI1MjE0LCAic3RlcCI6IDk5MCwgInZhbHVlIjogMC4zMzU4MTExMzgxNTMwNzYxN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjQ2LjY3NTE1NDIsICJzdGVwIjogMTAwMCwgInZhbHVlIjogMC4zOTI0MjIwMjA0MzUzMzMyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjYyLjc1ODkyOCwgInN0ZXAiOiAxMDEwLCAidmFsdWUiOiAwLjI1MDkyNjk3MTQzNTU0Njl9LCB7IndhbGxUaW1lIjogMTczMzA2ODY3Mi4wNTY2NDI1LCAic3RlcCI6IDEwMjAsICJ2YWx1ZSI6IDAuMzAxOTg1MzgzMDMzNzUyNDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODY4MC41NjUyNjk1LCAic3RlcCI6IDEwMzAsICJ2YWx1ZSI6IDAuMzI5NDI4ODgxNDA2Nzg0MDZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODY5MC4xODgxODQzLCAic3RlcCI6IDEwNDAsICJ2YWx1ZSI6IDAuMzU3MDUwODk1NjkwOTE3OTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODY5OC44NTA1OTg2LCAic3RlcCI6IDEwNTAsICJ2YWx1ZSI6IDAuMzQwODcyODI0MTkyMDQ3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzA3Ljc0NTc0MywgInN0ZXAiOiAxMDYwLCAidmFsdWUiOiAwLjc2MTY0MDYwODMxMDY5OTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODcxNy4zNDY5NDY1LCAic3RlcCI6IDEwNzAsICJ2YWx1ZSI6IDAuMzM5ODkzMjUxNjU3NDg1OTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODcyNi4zNjM3MDczLCAic3RlcCI6IDEwODAsICJ2YWx1ZSI6IDAuNDE3OTU1OTM1MDAxMzczM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzM1LjI1NDExMzIsICJzdGVwIjogMTA5MCwgInZhbHVlIjogMC40NDg5NzkyODgzMzk2MTQ4N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzQ5LjU1MDI1NTgsICJzdGVwIjogMTEwMCwgInZhbHVlIjogMC4zNTgyOTM0NzM3MjA1NTA1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzU4LjM3NzY5NzcsICJzdGVwIjogMTExMCwgInZhbHVlIjogMC40NDcyNDE3MjM1Mzc0NDUwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzY3LjAwNjE3NjUsICJzdGVwIjogMTEyMCwgInZhbHVlIjogMC41MjYxMzk0OTc3NTY5NTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODc3Ni42MjExNjU1LCAic3RlcCI6IDExMzAsICJ2YWx1ZSI6IDAuNDYwODE5NjYxNjE3Mjc5MDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODc4NS40MDM1OTQsICJzdGVwIjogMTE0MCwgInZhbHVlIjogMC4yNDIwNTQwNDUyMDAzNDc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3OTQuMjgxMzk1LCAic3RlcCI6IDExNTAsICJ2YWx1ZSI6IDAuNDA3MzM0NDQ2OTA3MDQzNDZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODgwMi42OTk2NzM0LCAic3RlcCI6IDExNjAsICJ2YWx1ZSI6IDAuMjc0ODI4OTEwODI3NjM2N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODExLjU1NDAzNjQsICJzdGVwIjogMTE3MCwgInZhbHVlIjogMC4zOTE4MjM0MTA5ODc4NTR9LCB7IndhbGxUaW1lIjogMTczMzA2ODgyNC45NjgwNDUyLCAic3RlcCI6IDExODAsICJ2YWx1ZSI6IDAuMjI3OTg1MjQ3OTY5NjI3Mzh9LCB7IndhbGxUaW1lIjogMTczMzA2ODgzNC4zNzk1MzU0LCAic3RlcCI6IDExOTAsICJ2YWx1ZSI6IDAuMzcwNzk5NjAxMDc4MDMzNDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODg0My41MTg0ODk0LCAic3RlcCI6IDEyMDAsICJ2YWx1ZSI6IDAuNDUyNDk5NTA4ODU3NzI3MDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODg1Mi4yMzA4MTk3LCAic3RlcCI6IDEyMTAsICJ2YWx1ZSI6IDAuMzQ5MTY0NDg1OTMxMzk2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODYxLjExOTI2NCwgInN0ZXAiOiAxMjIwLCAidmFsdWUiOiAwLjM2MjA2MjcyMjQ0NDUzNDN9LCB7IndhbGxUaW1lIjogMTczMzA2ODg3MC4wNTgyMDQsICJzdGVwIjogMTIzMCwgInZhbHVlIjogMC42MzM1NDM2MTA1NzI4MTQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NzguNzIyNzE0NCwgInN0ZXAiOiAxMjQwLCAidmFsdWUiOiAwLjQyNTA2NTcyNjA0MTc5Mzh9LCB7IndhbGxUaW1lIjogMTczMzA2ODg4Ny43NDA0NDMyLCAic3RlcCI6IDEyNTAsICJ2YWx1ZSI6IDAuMzMyODY4MDk5MjEyNjQ2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTAzLjE2OTA5OTMsICJzdGVwIjogMTI2MCwgInZhbHVlIjogMC40ODA0MDY3NjExNjk0MzM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MTIuNDE3NjI4OCwgInN0ZXAiOiAxMjcwLCAidmFsdWUiOiAwLjI3Mjc5MDU4MDk4NzkzMDN9LCB7IndhbGxUaW1lIjogMTczMzA2ODkyMS40NzU5NTEsICJzdGVwIjogMTI4MCwgInZhbHVlIjogMC4zNDY5NTQxNjY4ODkxOTA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MjkuNzQ4OTc2NywgInN0ZXAiOiAxMjkwLCAidmFsdWUiOiAwLjM4Mjc5NzY4ODI0NTc3MzN9LCB7IndhbGxUaW1lIjogMTczMzA2ODkzOS41MDM3MTE3LCAic3RlcCI6IDEzMDAsICJ2YWx1ZSI6IDAuMzM4MTkzODMzODI3OTcyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTQ4LjkzMDExMTYsICJzdGVwIjogMTMxMCwgInZhbHVlIjogMC4zOTQyNjk4NTM4MzAzMzc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NTcuMjM2Nzc3OCwgInN0ZXAiOiAxMzIwLCAidmFsdWUiOiAwLjQ5MDgxNTEwMzA1NDA0NjYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NjYuMDc5MzUyLCAic3RlcCI6IDEzMzAsICJ2YWx1ZSI6IDAuMjgyMjQ0NDczNjk1NzU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NzUuNTY3NTA3NywgInN0ZXAiOiAxMzQwLCAidmFsdWUiOiAwLjUzMDQ2Nzk4NzA2MDU0Njl9LCB7IndhbGxUaW1lIjogMTczMzA2ODk4OS44MDA5MzgsICJzdGVwIjogMTM1MCwgInZhbHVlIjogMC4zODYxMTYzNTU2NTc1Nzc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5OTguMjg0NTUwNywgInN0ZXAiOiAxMzYwLCAidmFsdWUiOiAwLjI5MTA5NTEwNzc5MzgwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDA3LjE1MTQ4NzgsICJzdGVwIjogMTM3MCwgInZhbHVlIjogMC4zNTMxMTU2Nzc4MzM1NTcxM30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDE1LjkyNDA1NDQsICJzdGVwIjogMTM4MCwgInZhbHVlIjogMC4yMDMzNzU3NTY3NDA1NzAwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDI1LjMwNTU1LCAic3RlcCI6IDEzOTAsICJ2YWx1ZSI6IDAuMzY2MTkyMjgxMjQ2MTg1M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDM0LjQ4MzczNDQsICJzdGVwIjogMTQwMCwgInZhbHVlIjogMC4yNzIzMDA4OTkwMjg3NzgxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNDIuNzk1MjY2OSwgInN0ZXAiOiAxNDEwLCAidmFsdWUiOiAwLjQyNzkxMTU0OTgwNjU5NDg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNTIuMTM5ODA2NywgInN0ZXAiOiAxNDIwLCAidmFsdWUiOiAwLjI1ODYxNDc0ODcxNjM1NDM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNjUuMDAzODg0NiwgInN0ZXAiOiAxNDMwLCAidmFsdWUiOiAwLjI5OTEzOTg1NzI5MjE3NTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTA3NC41MjYyMTQ2LCAic3RlcCI6IDE0NDAsICJ2YWx1ZSI6IDAuMzIxMTY4ODY5NzMzODEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDgzLjc4NDc5OTMsICJzdGVwIjogMTQ1MCwgInZhbHVlIjogMC4zODQ3MzA1NDc2NjY1NDk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwOTIuMjYwNjAwNiwgInN0ZXAiOiAxNDYwLCAidmFsdWUiOiAwLjI5MjY3NDk1ODcwNTkwMjF9LCB7IndhbGxUaW1lIjogMTczMzA2OTEwMS4wMzE5Mjg4LCAic3RlcCI6IDE0NzAsICJ2YWx1ZSI6IDAuMzQzNTU4OTM3MzExMTcyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTA5LjkwNzc0NzUsICJzdGVwIjogMTQ4MCwgInZhbHVlIjogMC4zMDE2NTg5ODc5OTg5NjI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMTkuMTIwMDExLCAic3RlcCI6IDE0OTAsICJ2YWx1ZSI6IDAuMjMyMDQwOTExOTEyOTE4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTI4LjQxNzMxNjQsICJzdGVwIjogMTUwMCwgInZhbHVlIjogMC4zMjM0MjU0NzE3ODI2ODQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMzcuNjA3OTEyNSwgInN0ZXAiOiAxNTEwLCAidmFsdWUiOiAwLjQ1ODUzMjc1MDYwNjUzNjg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxNTAuNTQ0NjY0NiwgInN0ZXAiOiAxNTIwLCAidmFsdWUiOiAwLjM5NzA1NDQ5MzQyNzI3NjZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTE1OS43NTgxOTQyLCAic3RlcCI6IDE1MzAsICJ2YWx1ZSI6IDAuNDM5Njk1MjM5MDY3MDc3NjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTE2OC4xNzE1MTksICJzdGVwIjogMTU0MCwgInZhbHVlIjogMC4yMDA0Mjk1NzM2NTUxMjg0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTc2Ljg0MjA3NiwgInN0ZXAiOiAxNTUwLCAidmFsdWUiOiAwLjQzMjcxMDIzMDM1MDQ5NDR9LCB7IndhbGxUaW1lIjogMTczMzA2OTE4NS44OTMzODYxLCAic3RlcCI6IDE1NjAsICJ2YWx1ZSI6IDAuMjMzODQ5NzkzNjcyNTYxNjV9LCB7IndhbGxUaW1lIjogMTczMzA2OTE5NC45MjUxOTg4LCAic3RlcCI6IDE1NzAsICJ2YWx1ZSI6IDAuMzgwMjM1MDE2MzQ1OTc3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjAzLjkxNDMxNTcsICJzdGVwIjogMTU4MCwgInZhbHVlIjogMC4zMTQzODc1MzAwODg0MjQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMTIuNzE2OTkyLCAic3RlcCI6IDE1OTAsICJ2YWx1ZSI6IDAuMjYzMDgyMzU1MjYwODQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMjUuNTM1MTYxNSwgInN0ZXAiOiAxNjAwLCAidmFsdWUiOiAwLjI4OTIxNTE3NzI5NzU5MjE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMzUuNDY0OTkzNSwgInN0ZXAiOiAxNjEwLCAidmFsdWUiOiAwLjQ0NDY4MzE2NDM1ODEzOTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNDQuNjMxMDY1OCwgInN0ZXAiOiAxNjIwLCAidmFsdWUiOiAwLjQ5ODMwODg5NzAxODQzMjZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTI1NC4yOTQ1ODQsICJzdGVwIjogMTYzMCwgInZhbHVlIjogMC4zMzg1ODA5MzYxOTM0NjYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNjMuMDA2NDE1NiwgInN0ZXAiOiAxNjQwLCAidmFsdWUiOiAwLjI1NzkxNTQ5NjgyNjE3MTl9LCB7IndhbGxUaW1lIjogMTczMzA2OTI3MS44Njc3NzkzLCAic3RlcCI6IDE2NTAsICJ2YWx1ZSI6IDAuNDQyNDM5MTk4NDkzOTU3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjgwLjUxMDk5NTYsICJzdGVwIjogMTY2MCwgInZhbHVlIjogMC4yNzQ5MTE3NjEyODM4NzQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyODkuNjgwODQyLCAic3RlcCI6IDE2NzAsICJ2YWx1ZSI6IDAuMzc3MjAxMjg4OTM4NTIyMzR9LCB7IndhbGxUaW1lIjogMTczMzA2OTMwMy42MTEwODQ1LCAic3RlcCI6IDE2ODAsICJ2YWx1ZSI6IDAuNDg4OTU5NDMxNjQ4MjU0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzEyLjQ4MDc1NCwgInN0ZXAiOiAxNjkwLCAidmFsdWUiOiAwLjM4NTgyNDQ0MTkwOTc5MDA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMjEuODM5NzI3OSwgInN0ZXAiOiAxNzAwLCAidmFsdWUiOiAwLjQ2NDU2Mjc0MzkwMjIwNjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTMzMC4zNDkwOTUzLCAic3RlcCI6IDE3MTAsICJ2YWx1ZSI6IDAuMjk2MTM1MDk3NzQyMDgwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzM5LjI0NjM5MjcsICJzdGVwIjogMTcyMCwgInZhbHVlIjogMC4yMzM4MjA4NDA3MTYzNjJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTM0Ni44NTg5MzI3LCAic3RlcCI6IDE3MzAsICJ2YWx1ZSI6IDAuMjQ1ODMxODMyMjg5Njk1NzR9LCB7IndhbGxUaW1lIjogMTczMzA2OTM1NS42NTQ2OTE3LCAic3RlcCI6IDE3NDAsICJ2YWx1ZSI6IDAuNDU1NzkyNTc2MDc0NjAwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzY0LjUxMzE1MDIsICJzdGVwIjogMTc1MCwgInZhbHVlIjogMC4zNTkyMDgxMzY3OTY5NTEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNzMuNzM5NzM3NywgInN0ZXAiOiAxNzYwLCAidmFsdWUiOiAwLjMxOTY5MDEzODEwMTU3Nzc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzODcuNTQyMTQ3OSwgInN0ZXAiOiAxNzcwLCAidmFsdWUiOiAwLjMwODQ3NjgwNTY4Njk1MDd9LCB7IndhbGxUaW1lIjogMTczMzA2OTM5Ni40Njg4NjMyLCAic3RlcCI6IDE3ODAsICJ2YWx1ZSI6IDAuMjYyMjEzODU1OTgxODI2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDA1Ljk5NzM2NTIsICJzdGVwIjogMTc5MCwgInZhbHVlIjogMC4yMDI5MzI5NTM4MzQ1MzM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MTUuMDU0OTMxNiwgInN0ZXAiOiAxODAwLCAidmFsdWUiOiAwLjI1MjQ5MDg3ODEwNTE2MzZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTQyMy45MDg1NTY3LCAic3RlcCI6IDE4MTAsICJ2YWx1ZSI6IDAuMjEyMzM5MzcxNDQyNzk0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDMyLjUzMjI1ODMsICJzdGVwIjogMTgyMCwgInZhbHVlIjogMC40MTU3NDEzODQwMjkzODg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NDEuMjE5MjA1MSwgInN0ZXAiOiAxODMwLCAidmFsdWUiOiAwLjMzNTI2MTc2MjE0MjE4MTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ1MC4wODk1MzIxLCAic3RlcCI6IDE4NDAsICJ2YWx1ZSI6IDAuMjQwOTcwNjg2MDc4MDcxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDYzLjEwNzc4NDMsICJzdGVwIjogMTg1MCwgInZhbHVlIjogMC4yMzMxMDgzMjY3OTI3MTY5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDcxLjU3MzcxMzgsICJzdGVwIjogMTg2MCwgInZhbHVlIjogMC4yNjA4NjcwMjk0Mjg0ODIwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDgwLjQ5ODkyMTIsICJzdGVwIjogMTg3MCwgInZhbHVlIjogMC41MTkwNjIzOTk4NjQxOTY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0ODkuMzg1NDU4LCAic3RlcCI6IDE4ODAsICJ2YWx1ZSI6IDAuNDIwMzYwNTM1MzgzMjI0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDk3Ljk3NzM4MywgInN0ZXAiOiAxODkwLCAidmFsdWUiOiAwLjQyMjc5NjY2NjYyMjE2MTg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MDYuNzk0OTYxNywgInN0ZXAiOiAxOTAwLCAidmFsdWUiOiAwLjMxOTc1MTY1MDA5NDk4NTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MTUuODI1MzE0NSwgInN0ZXAiOiAxOTEwLCAidmFsdWUiOiAwLjI0MzI5NjkyMTI1MzIwNDM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MjQuNjM3MTc2NSwgInN0ZXAiOiAxOTIwLCAidmFsdWUiOiAwLjI4Nzc2NjY5NTAyMjU4M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTMzLjU0MjgzNTUsICJzdGVwIjogMTkzMCwgInZhbHVlIjogMC4yMTc1NTQwMzI4MDI1ODE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NTAuNDc4NTgyOSwgInN0ZXAiOiAxOTQwLCAidmFsdWUiOiAwLjM3MTQ3ODc2NjIwMjkyNjY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NTguODI4NjM2MiwgInN0ZXAiOiAxOTUwLCAidmFsdWUiOiAwLjI2MTg1MjIwNDc5OTY1MjF9LCB7IndhbGxUaW1lIjogMTczMzA2OTU2Ny43NTg1MzEsICJzdGVwIjogMTk2MCwgInZhbHVlIjogMC4yNjAyNjc2MTUzMTgyOTgzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTc2LjM0NTgxNjEsICJzdGVwIjogMTk3MCwgInZhbHVlIjogMC4yNjMxMzk3NTQ1MzM3Njc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1ODUuNTI5ODA3LCAic3RlcCI6IDE5ODAsICJ2YWx1ZSI6IDAuNDA4NjcxNDY4NDk2MzIyNjN9LCB7IndhbGxUaW1lIjogMTczMzA2OTU5NC4zNTA4NjM1LCAic3RlcCI6IDE5OTAsICJ2YWx1ZSI6IDAuMzg3OTA5MTczOTY1NDU0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjAyLjQwMjI5NDksICJzdGVwIjogMjAwMCwgInZhbHVlIjogMC41NzYxNDU1ODkzNTE2NTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTYxMC4yNTA2MDM0LCAic3RlcCI6IDIwMTAsICJ2YWx1ZSI6IDAuNDcxMDY1NTIxMjQwMjM0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjI2LjY4NzQzMDQsICJzdGVwIjogMjAyMCwgInZhbHVlIjogMC40MDc2MzUwMDMzMjgzMjMzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjM1LjAzMTUyODcsICJzdGVwIjogMjAzMCwgInZhbHVlIjogMC4yNzIyNDU1ODU5MTg0MjY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NDMuODIzMTc5LCAic3RlcCI6IDIwNDAsICJ2YWx1ZSI6IDAuMjU0NTI4MTk0NjY1OTA4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjUyLjE5NTA0MzMsICJzdGVwIjogMjA1MCwgInZhbHVlIjogMC4yOTg3OTI2MDA2MzE3MTM4N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjYwLjQ1NDA2NDQsICJzdGVwIjogMjA2MCwgInZhbHVlIjogMC40MjUxODE4NjU2OTIxMzg2N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjY5LjU5MjY3NjIsICJzdGVwIjogMjA3MCwgInZhbHVlIjogMC4zMzU1NTE4NTc5NDgzMDMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NzguNzc5MDA0OCwgInN0ZXAiOiAyMDgwLCAidmFsdWUiOiAwLjUzMDI2NzA1OTgwMzAwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Njg2Ljk0NTQ0NSwgInN0ZXAiOiAyMDkwLCAidmFsdWUiOiAwLjQwMTAzNDAyNzMzODAyNzk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MDAuNjAyNjgyOCwgInN0ZXAiOiAyMTAwLCAidmFsdWUiOiAwLjMyNTg5MzE5MzQ4MzM1MjY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MDguNzI2OTM5LCAic3RlcCI6IDIxMTAsICJ2YWx1ZSI6IDAuMjQxOTQ5NTQzMzU2ODk1NDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTcxNy40NDg4Njk3LCAic3RlcCI6IDIxMjAsICJ2YWx1ZSI6IDAuMjk4MTcyODAxNzMzMDE2OTd9LCB7IndhbGxUaW1lIjogMTczMzA2OTcyNi4xNDE4MjgzLCAic3RlcCI6IDIxMzAsICJ2YWx1ZSI6IDAuMzA3NDAzNTA0ODQ4NDgwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzM1LjAzODY4MywgInN0ZXAiOiAyMTQwLCAidmFsdWUiOiAwLjMzNzcwNjQ3NjQ0OTk2NjQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NDMuMzA2Njk1LCAic3RlcCI6IDIxNTAsICJ2YWx1ZSI6IDAuMjc5MzIxMjgzMTAyMDM1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzUyLjUwMTM4NjIsICJzdGVwIjogMjE2MCwgInZhbHVlIjogMC4zMjQyMjc5MjkxMTUyOTU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NjEuNDUxNTI3NiwgInN0ZXAiOiAyMTcwLCAidmFsdWUiOiAwLjMyMDA4MzY3Nzc2ODcwNzN9LCB7IndhbGxUaW1lIjogMTczMzA2OTc3MC40MzM3NDIzLCAic3RlcCI6IDIxODAsICJ2YWx1ZSI6IDAuMzkzMDgwOTc5NTg1NjQ3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Nzg0LjM2NDIzNywgInN0ZXAiOiAyMTkwLCAidmFsdWUiOiAwLjM2NDkxMDcyMTc3ODg2OTYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3OTMuMTIzMDUwMiwgInN0ZXAiOiAyMjAwLCAidmFsdWUiOiAwLjE3NDI3MTUyMzk1MjQ4NDEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MDEuNjM2NjgyNSwgInN0ZXAiOiAyMjEwLCAidmFsdWUiOiAwLjI5MDk3MTA3MDUyODAzMDR9LCB7IndhbGxUaW1lIjogMTczMzA2OTgxMC42MDg0MjA4LCAic3RlcCI6IDIyMjAsICJ2YWx1ZSI6IDAuNDIwMTYzMDM1MzkyNzYxMjN9LCB7IndhbGxUaW1lIjogMTczMzA2OTgxOS4zNDI3NTU4LCAic3RlcCI6IDIyMzAsICJ2YWx1ZSI6IDAuMjU2NzUwNzYyNDYyNjE1OTd9LCB7IndhbGxUaW1lIjogMTczMzA2OTgyNy4zMjY1OTUzLCAic3RlcCI6IDIyNDAsICJ2YWx1ZSI6IDAuMzkxMTk3NzcwODMzOTY5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODM1Ljg2ODQ5OCwgInN0ZXAiOiAyMjUwLCAidmFsdWUiOiAwLjI4MTMzNDYwODc5MzI1ODY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NDQuMjM2Mzc4LCAic3RlcCI6IDIyNjAsICJ2YWx1ZSI6IDAuMzIwMzE1NTk5NDQxNTI4M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODU2Ljc0OTczMDYsICJzdGVwIjogMjI3MCwgInZhbHVlIjogMC4yNjA0MjU4MDYwNDU1MzIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NjUuMjU4MDk0NSwgInN0ZXAiOiAyMjgwLCAidmFsdWUiOiAwLjIxMzMzNjM2MzQzNDc5MTU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NzQuMDA2MjQyNSwgInN0ZXAiOiAyMjkwLCAidmFsdWUiOiAwLjE5MjkyNDA1MjQ3Njg4MjkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4ODEuNzgyMDkyNiwgInN0ZXAiOiAyMzAwLCAidmFsdWUiOiAwLjM3MzIyNjk3MDQzNDE4ODg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4OTAuNDE0MjQyMywgInN0ZXAiOiAyMzEwLCAidmFsdWUiOiAwLjI1NTQ3NTQ5MTI4NTMyNDF9LCB7IndhbGxUaW1lIjogMTczMzA2OTg5OC44NzcwMzMsICJzdGVwIjogMjMyMCwgInZhbHVlIjogMC4yNzQ5NzQwMTgzMzUzNDI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MDguMzE4MTE0NSwgInN0ZXAiOiAyMzMwLCAidmFsdWUiOiAwLjI2ODIzOTMxOTMyNDQ5MzR9LCB7IndhbGxUaW1lIjogMTczMzA2OTkxNy40MTU1NTYsICJzdGVwIjogMjM0MCwgInZhbHVlIjogMC4zNjc2NTQyMzQxNzA5MTM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MjUuODUxMTcsICJzdGVwIjogMjM1MCwgInZhbHVlIjogMC4yMzA1NTEzMzIyMzUzMzYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MzguNzAzNDAyLCAic3RlcCI6IDIzNjAsICJ2YWx1ZSI6IDAuMzQ0ODY2NDU0NjAxMjg3ODR9LCB7IndhbGxUaW1lIjogMTczMzA2OTk0Ny40MjY1MDUzLCAic3RlcCI6IDIzNzAsICJ2YWx1ZSI6IDAuMzcyNzA4MjAxNDA4Mzg2MjN9LCB7IndhbGxUaW1lIjogMTczMzA2OTk1Ni4yMDczMDg4LCAic3RlcCI6IDIzODAsICJ2YWx1ZSI6IDAuNDA2ODkxNTI0NzkxNzE3NTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTk2NC4yNzUxMDUsICJzdGVwIjogMjM5MCwgInZhbHVlIjogMC4yOTYyODY5NzAzNzY5Njg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NzMuMzI2NDMwMywgInN0ZXAiOiAyNDAwLCAidmFsdWUiOiAwLjIyNzQ3ODE0NjU1MzAzOTU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5ODEuNDMyNDc3NywgInN0ZXAiOiAyNDEwLCAidmFsdWUiOiAwLjI1Njc1NDA0MDcxODA3ODZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTk5MC4xNDAwNTUsICJzdGVwIjogMjQyMCwgInZhbHVlIjogMC4yODI3ODg2MzQzMDAyMzE5M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTk4Ljc5ODUzODIsICJzdGVwIjogMjQzMCwgInZhbHVlIjogMC4zMDgwODE0Nzc4ODA0Nzc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMTIuNDU2MTM5LCAic3RlcCI6IDI0NDAsICJ2YWx1ZSI6IDAuMjc0OTc1ODk1ODgxNjUyODN9LCB7IndhbGxUaW1lIjogMTczMzA3MDAyMS41OTkyNSwgInN0ZXAiOiAyNDUwLCAidmFsdWUiOiAwLjI0NzIwMTM1MzMxMTUzODd9LCB7IndhbGxUaW1lIjogMTczMzA3MDAzMC4xOTEyOTA2LCAic3RlcCI6IDI0NjAsICJ2YWx1ZSI6IDAuMjU5MDYzNzIwNzAzMTI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMzkuMjE5NjEyLCAic3RlcCI6IDI0NzAsICJ2YWx1ZSI6IDAuMjg1MDc3MTU0NjM2MzgzMDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDA0OC4yNjkyMTQyLCAic3RlcCI6IDI0ODAsICJ2YWx1ZSI6IDAuMzU5ODI5Mzk2MDA5NDQ1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDU2LjE1NjAzNjQsICJzdGVwIjogMjQ5MCwgInZhbHVlIjogMC4zODc1NTUzMDExODk0MjI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNjQuNDUwOTIzNCwgInN0ZXAiOiAyNTAwLCAidmFsdWUiOiAwLjM1NDU0NzQ3MDgwODAyOTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDA3Mi41NTExNzY1LCAic3RlcCI6IDI1MTAsICJ2YWx1ZSI6IDAuMjQ1Mjc4NTUyMTc0NTY4MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MDA4Ny42NTcxMzM2LCAic3RlcCI6IDI1MjAsICJ2YWx1ZSI6IDAuMjkwOTYyNzU1NjgwMDg0MjN9LCB7IndhbGxUaW1lIjogMTczMzA3MDA5NS40NDIwMDA0LCAic3RlcCI6IDI1MzAsICJ2YWx1ZSI6IDAuMjY2OTI4MzE1MTYyNjU4N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTAzLjc2OTEyOTgsICJzdGVwIjogMjU0MCwgInZhbHVlIjogMC4yNDM2ODU2Nzc2NDc1OTA2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTEzLjA0OTUzMDMsICJzdGVwIjogMjU1MCwgInZhbHVlIjogMC4yMzk2OTk0OTc4MTg5NDY4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTIxLjAzODA5ODMsICJzdGVwIjogMjU2MCwgInZhbHVlIjogMC4yNDQ5NTM5NjAxODAyODI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMjkuNTg0ODMxLCAic3RlcCI6IDI1NzAsICJ2YWx1ZSI6IDAuMjk5MTQzMjU0NzU2OTI3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTM4LjM2MTA4NjEsICJzdGVwIjogMjU4MCwgInZhbHVlIjogMC4yNjUzNzQwNjQ0NDU0OTU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNDcuMDg3NTQyLCAic3RlcCI6IDI1OTAsICJ2YWx1ZSI6IDAuMzQ3MDQyNzA5NTg5MDA0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTU1LjQ4NzIxOCwgInN0ZXAiOiAyNjAwLCAidmFsdWUiOiAwLjQ0MjY2NTgxNTM1MzM5MzU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNzIuNTc3NTM0LCAic3RlcCI6IDI2MTAsICJ2YWx1ZSI6IDAuMzA3MTMwMzA2OTU5MTUyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTgxLjIxMTQ1MzQsICJzdGVwIjogMjYyMCwgInZhbHVlIjogMC4zMzA2NzIyNjQwOTkxMjExfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxODkuNjkyNjI2NywgInN0ZXAiOiAyNjMwLCAidmFsdWUiOiAwLjI3Njk5NDQzNjk3OTI5Mzh9LCB7IndhbGxUaW1lIjogMTczMzA3MDE5OC4zOTkzOSwgInN0ZXAiOiAyNjQwLCAidmFsdWUiOiAwLjI2NzE4NTI0MDk4Mzk2M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjA2LjcwNzY3NiwgInN0ZXAiOiAyNjUwLCAidmFsdWUiOiAwLjIxMzY3Njk1OTI3NjE5OTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMTUuNTk5OTQ1LCAic3RlcCI6IDI2NjAsICJ2YWx1ZSI6IDAuMzM0NzkzMjY5NjM0MjQ2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjI0LjMxNjMzNzgsICJzdGVwIjogMjY3MCwgInZhbHVlIjogMC4zMjc4MTgyMTQ4OTMzNDEwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjMzLjUzOTYzMTgsICJzdGVwIjogMjY4MCwgInZhbHVlIjogMC4yODEyNzc0NDc5Mzg5MTkwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjQ2Ljc1ODQ0MywgInN0ZXAiOiAyNjkwLCAidmFsdWUiOiAwLjI1OTA2NDU1NTE2ODE1MTg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNTYuMDI5MzQ3NCwgInN0ZXAiOiAyNzAwLCAidmFsdWUiOiAwLjM5NTM2MzU2OTI1OTY0MzU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNjQuOTUxMDUzNCwgInN0ZXAiOiAyNzEwLCAidmFsdWUiOiAwLjI1OTcyMzE1NjY5MDU5NzUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNzMuODI3MjY0MywgInN0ZXAiOiAyNzIwLCAidmFsdWUiOiAwLjM0MDIxMTE1MzAzMDM5NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDI4Mi45NTkzMzA2LCAic3RlcCI6IDI3MzAsICJ2YWx1ZSI6IDAuMzAxMzc2NzYwMDA1OTUwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjkyLjI3ODE3NDYsICJzdGVwIjogMjc0MCwgInZhbHVlIjogMC4yODg0NTcwMzYwMTgzNzE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMDAuMzM3MDQxMSwgInN0ZXAiOiAyNzUwLCAidmFsdWUiOiAwLjI3NTkzODcxOTUxMTAzMjF9LCB7IndhbGxUaW1lIjogMTczMzA3MDMwOS40MTI0NjUzLCAic3RlcCI6IDI3NjAsICJ2YWx1ZSI6IDAuNDI4ODI5MzQyMTI2ODQ2M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzE3LjUzMTc5MzgsICJzdGVwIjogMjc3MCwgInZhbHVlIjogMC40MDM2NzMzODA2MTMzMjd9LCB7IndhbGxUaW1lIjogMTczMzA3MDMzMC40MzY0MTYsICJzdGVwIjogMjc4MCwgInZhbHVlIjogMC4zMjc1NDE3OTgzNTMxOTUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMzkuODIzMzQ3NiwgInN0ZXAiOiAyNzkwLCAidmFsdWUiOiAwLjI2MTYxMzE2MDM3MTc4MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDM0Ny45OTM5MzQyLCAic3RlcCI6IDI4MDAsICJ2YWx1ZSI6IDAuMjAzMzU4MzIyMzgxOTczMjd9LCB7IndhbGxUaW1lIjogMTczMzA3MDM1Ni44OTMyMDU2LCAic3RlcCI6IDI4MTAsICJ2YWx1ZSI6IDAuMjkzNjQxMjY5MjA3MDAwNzN9LCB7IndhbGxUaW1lIjogMTczMzA3MDM2NS41NzcyODc3LCAic3RlcCI6IDI4MjAsICJ2YWx1ZSI6IDAuMjY3OTM3MzYyMTk0MDYxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzc0LjM5Mzc5MDcsICJzdGVwIjogMjgzMCwgInZhbHVlIjogMC4yNzAwOTY0ODA4NDY0MDUwM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzgyLjQyNzI2NzgsICJzdGVwIjogMjg0MCwgInZhbHVlIjogMC4zNDI3Nzc0OTA2MTU4NDQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzOTAuOTQxNjA0LCAic3RlcCI6IDI4NTAsICJ2YWx1ZSI6IDAuMjM2OTY4NTQ3MTA1Nzg5MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MDQwNi42Nzg5OTU2LCAic3RlcCI6IDI4NjAsICJ2YWx1ZSI6IDAuMjUxODU2NTA1ODcwODE5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDE1LjA5MDI3MzQsICJzdGVwIjogMjg3MCwgInZhbHVlIjogMC4yNDQ0MTIwMDQ5NDc2NjIzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDIyLjkyMDI4MTQsICJzdGVwIjogMjg4MCwgInZhbHVlIjogMC4yMzAwMjU2NjM5NzE5MDA5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDMxLjUzNzcxMDcsICJzdGVwIjogMjg5MCwgInZhbHVlIjogMC4yNTYzNjk2NTAzNjM5MjIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0MzkuOTgxMjQzMSwgInN0ZXAiOiAyOTAwLCAidmFsdWUiOiAwLjMyNzU4NTgxNjM4MzM2MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ0OC4wODU4MjgsICJzdGVwIjogMjkxMCwgInZhbHVlIjogMC40MTI4MDA4NzgyODYzNjE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NTcuNDI0MDI5NiwgInN0ZXAiOiAyOTIwLCAidmFsdWUiOiAwLjQ0MDQ2Nzc3NDg2ODAxMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ2Ni43MjMyMTIsICJzdGVwIjogMjkzMCwgInZhbHVlIjogMC4zNzc0NDA2OTA5OTQyNjI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NzkuMzMyOTEyMiwgInN0ZXAiOiAyOTQwLCAidmFsdWUiOiAwLjMwNjcxNjg1OTM0MDY2Nzd9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ4OC43ODI2NDA3LCAic3RlcCI6IDI5NTAsICJ2YWx1ZSI6IDAuMjg4ODAwODM1NjA5NDM2MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ5Ny4yMjUxNTksICJzdGVwIjogMjk2MCwgInZhbHVlIjogMC4zNjY3MjMwMDEwMDMyNjU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MDUuNjM0MTI0OCwgInN0ZXAiOiAyOTcwLCAidmFsdWUiOiAwLjI0MTk4NDc1NDgwMDc5NjV9LCB7IndhbGxUaW1lIjogMTczMzA3MDUxMy4zNTQyNDUsICJzdGVwIjogMjk4MCwgInZhbHVlIjogMC4yMDM5Njk3MDIxMjQ1OTU2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTIyLjMwMTQ0MSwgInN0ZXAiOiAyOTkwLCAidmFsdWUiOiAwLjM1NjQwMzI5MTIyNTQzMzM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MzAuMjEyOTYxNywgInN0ZXAiOiAzMDAwLCAidmFsdWUiOiAwLjE5NTQwMDQ3NjQ1NTY4ODQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MzguMzAwMjgwOCwgInN0ZXAiOiAzMDEwLCAidmFsdWUiOiAwLjMwMzgyODY4NjQ3NTc1Mzh9LCB7IndhbGxUaW1lIjogMTczMzA3MDU0Ny40MDA1NDg3LCAic3RlcCI6IDMwMjAsICJ2YWx1ZSI6IDAuMjUwOTIxMjE5NTg3MzI2MDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDU2NC4wNTEwMzg3LCAic3RlcCI6IDMwMzAsICJ2YWx1ZSI6IDAuMjM2MjY3NDQ3NDcxNjE4NjV9LCB7IndhbGxUaW1lIjogMTczMzA3MDU3Mi4zNzAwMDI1LCAic3RlcCI6IDMwNDAsICJ2YWx1ZSI6IDAuMjM2NDk4MjgxMzU5NjcyNTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDU4MC42NzEzMDkyLCAic3RlcCI6IDMwNTAsICJ2YWx1ZSI6IDAuMjcyMDMzMzMzNzc4MzgxMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDU4OC42NTM0NzE1LCAic3RlcCI6IDMwNjAsICJ2YWx1ZSI6IDAuMjczNjYyMDMwNjk2ODY4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTk3LjQyMTAzNzcsICJzdGVwIjogMzA3MCwgInZhbHVlIjogMC4yMzk3ODcwMjcyMzk3OTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MDYuMTM3NTYwNiwgInN0ZXAiOiAzMDgwLCAidmFsdWUiOiAwLjM3MjgxNTYwODk3ODI3MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDYxNC40Mzk4NzQsICJzdGVwIjogMzA5MCwgInZhbHVlIjogMC4zMzcxOTk2MjgzNTMxMTg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MjQuMDAwMzE3MywgInN0ZXAiOiAzMTAwLCAidmFsdWUiOiAwLjI3OTg5Nzg2ODYzMzI3MDI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MzcuMjUyMjc4NiwgInN0ZXAiOiAzMTEwLCAidmFsdWUiOiAwLjM0NDU4MTMzNTc4MzAwNDc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NDUuNjgyMjQ0LCAic3RlcCI6IDMxMjAsICJ2YWx1ZSI6IDAuMjk3NDQ3MDg1MzgwNTU0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjU0LjI2OTgyNiwgInN0ZXAiOiAzMTMwLCAidmFsdWUiOiAwLjI0MTU3MDM4MzMxMDMxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjYzLjMyMDU4OCwgInN0ZXAiOiAzMTQwLCAidmFsdWUiOiAwLjI0ODEzNjA3MzM1MDkwNjM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NzEuMTE3MzY0NiwgInN0ZXAiOiAzMTUwLCAidmFsdWUiOiAwLjMzOTQ5ODQ5MDA5NTEzODU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NzkuNzY0ODc3MywgInN0ZXAiOiAzMTYwLCAidmFsdWUiOiAwLjM2ODg5MDA0NzA3MzM2NDI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2ODcuODQ0NjE5LCAic3RlcCI6IDMxNzAsICJ2YWx1ZSI6IDAuMjUzNzAzNjUzODEyNDA4NDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDY5NS44NTUxMTQ1LCAic3RlcCI6IDMxODAsICJ2YWx1ZSI6IDAuMzIyODAwOTA0NTEyNDA1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzA0LjYyMTc3MjUsICJzdGVwIjogMzE5MCwgInZhbHVlIjogMC4yNTI4MDkxNjY5MDgyNjQxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzE3LjEwODE4MSwgInN0ZXAiOiAzMjAwLCAidmFsdWUiOiAwLjE5ODY3MDI1MzE1NzYxNTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MjYuMDk3OTY4LCAic3RlcCI6IDMyMTAsICJ2YWx1ZSI6IDAuMjk0MTkyMzczNzUyNTk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MzQuNzc2NzI0MywgInN0ZXAiOiAzMjIwLCAidmFsdWUiOiAwLjE4NDUzOTEzOTI3MDc4MjQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NDQuNDExNzUwOCwgInN0ZXAiOiAzMjMwLCAidmFsdWUiOiAwLjI3OTczOTc2NzMxMzAwMzU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NTIuNTAwOTg0NCwgInN0ZXAiOiAzMjQwLCAidmFsdWUiOiAwLjQzODU1MzEyNDY2NjIxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzYxLjcyMDQzODIsICJzdGVwIjogMzI1MCwgInZhbHVlIjogMC4zOTE0NjI2MjQwNzMwMjg1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzcwLjM3NTkzMzQsICJzdGVwIjogMzI2MCwgInZhbHVlIjogMC4yNzE1MTA0NTIwMzIwODkyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzc5LjcyOTM1NDEsICJzdGVwIjogMzI3MCwgInZhbHVlIjogMC4yNTg0ODA2NjgwNjc5MzIxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzkzLjY3Nzc3ODUsICJzdGVwIjogMzI4MCwgInZhbHVlIjogMC4yMzc5ODE2NjIxNTQxOTc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MDEuODk5MzI4LCAic3RlcCI6IDMyOTAsICJ2YWx1ZSI6IDAuMzg2MjQwNTQxOTM0OTY3MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDgxMC4xNjAzNjk2LCAic3RlcCI6IDMzMDAsICJ2YWx1ZSI6IDAuMzQzNDk2MDI0NjA4NjEyMDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDgxOC43MjU4NzE4LCAic3RlcCI6IDMzMTAsICJ2YWx1ZSI6IDAuMTc4Njk1MTU3MTcwMjk1NzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDgyNy4wMDY4NDQ4LCAic3RlcCI6IDMzMjAsICJ2YWx1ZSI6IDAuMjI3OTc1NTYyMjE0ODUxMzh9LCB7IndhbGxUaW1lIjogMTczMzA3MDgzNS41NzQzNDk5LCAic3RlcCI6IDMzMzAsICJ2YWx1ZSI6IDAuMjcxMjY1NzQ1MTYyOTYzODd9LCB7IndhbGxUaW1lIjogMTczMzA3MDg0My45NzQ0Njc1LCAic3RlcCI6IDMzNDAsICJ2YWx1ZSI6IDAuNDA1Nzk2NDk4MDYwMjI2NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDg1My4wOTEwNjg1LCAic3RlcCI6IDMzNTAsICJ2YWx1ZSI6IDAuMzIxOTA2NTY2NjE5ODczMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDg2NS40MTg4ODcxLCAic3RlcCI6IDMzNjAsICJ2YWx1ZSI6IDAuMjA3ODYxNjkxNzEzMzMzMTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDg3My42NjEwMDEyLCAic3RlcCI6IDMzNzAsICJ2YWx1ZSI6IDAuMjU4MDc5NjQ4MDE3ODgzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwODgzLjMzNTM1NSwgInN0ZXAiOiAzMzgwLCAidmFsdWUiOiAwLjIzODY5MzIzNzMwNDY4NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDg5Mi4zNzYzNTksICJzdGVwIjogMzM5MCwgInZhbHVlIjogMC4yNzE0MjYwMjIwNTI3NjQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MDAuNzIxNzIwNSwgInN0ZXAiOiAzNDAwLCAidmFsdWUiOiAwLjMxMzE2ODcwNDUwOTczNTF9LCB7IndhbGxUaW1lIjogMTczMzA3MDkwOC41MDM1NDgsICJzdGVwIjogMzQxMCwgInZhbHVlIjogMC4yNzg1NDQ0ODU1NjkwMDAyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTE2LjY1NTEzOTcsICJzdGVwIjogMzQyMCwgInZhbHVlIjogMC4zNzE5Mjc0NDAxNjY0NzM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MjUuMjA5MDE0NCwgInN0ZXAiOiAzNDMwLCAidmFsdWUiOiAwLjI1NjcwNzYzODUwMjEyMDk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MzMuODA5NjE1NCwgInN0ZXAiOiAzNDQwLCAidmFsdWUiOiAwLjIxMzMzOTI5ODk2MzU0Njc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NDcuNDc5MTIyMiwgInN0ZXAiOiAzNDUwLCAidmFsdWUiOiAwLjI0MDU3OTYwNTEwMjUzOTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NTYuMTg2NzM4MywgInN0ZXAiOiAzNDYwLCAidmFsdWUiOiAwLjI0NzQyOTkzNzEyNDI1MjMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NjQuMjY1NjY2LCAic3RlcCI6IDM0NzAsICJ2YWx1ZSI6IDAuMjYyOTE4NzQwNTEwOTQwNTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDk3Mi4zODU0NzYsICJzdGVwIjogMzQ4MCwgInZhbHVlIjogMC4yNjg2NDY1MDg0NTUyNzY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5ODAuNjQ2NDcxLCAic3RlcCI6IDM0OTAsICJ2YWx1ZSI6IDAuNDYwOTY1NjkyOTk2OTc4NzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDk4OS42ODcxMjYyLCAic3RlcCI6IDM1MDAsICJ2YWx1ZSI6IDAuMjQzNjk3MTUxNTQxNzA5OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTk3Ljc4ODA1NDcsICJzdGVwIjogMzUxMCwgInZhbHVlIjogMC4yMzI4MTM3NzU1MzkzOTgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMDYuMjcwODA3NSwgInN0ZXAiOiAzNTIwLCAidmFsdWUiOiAwLjMyNDYzMzA5MTY4ODE1NjEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMTguODk1NDY2OCwgInN0ZXAiOiAzNTMwLCAidmFsdWUiOiAwLjI0MDEwMTA4NDExMzEyMTAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMjcuMTk2NTUxMywgInN0ZXAiOiAzNTQwLCAidmFsdWUiOiAwLjE3Nzg4NDY4MzAxMjk2MjM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMzUuMzIwMDA4OCwgInN0ZXAiOiAzNTUwLCAidmFsdWUiOiAwLjI2MzI1NTgwNDc3NzE0NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTA0My43NDUyMDIsICJzdGVwIjogMzU2MCwgInZhbHVlIjogMC4yMTk1ODUxMzU1NzkxMDkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNTEuODcxNTk1OSwgInN0ZXAiOiAzNTcwLCAidmFsdWUiOiAwLjI4NTg5MjQyNjk2NzYyMDg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNjAuNDk1NTcsICJzdGVwIjogMzU4MCwgInZhbHVlIjogMC4yNDczMzg1NjMyMDM4MTE2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDY4Ljg3ODkxMjQsICJzdGVwIjogMzU5MCwgInZhbHVlIjogMC4yNTY2ODIzMzYzMzA0MTM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNzcuNzEyNDAzLCAic3RlcCI6IDM2MDAsICJ2YWx1ZSI6IDAuMjc3OTk2ODY3ODk1MTI2MzR9LCB7IndhbGxUaW1lIjogMTczMzA3MTA4Ni4yMTE4OTM2LCAic3RlcCI6IDM2MTAsICJ2YWx1ZSI6IDAuMjE2NDg3MDIwMjU0MTM1MTN9LCB7IndhbGxUaW1lIjogMTczMzA3MTEwMS42NTgyNCwgInN0ZXAiOiAzNjIwLCAidmFsdWUiOiAwLjIzODU1NTA3MzczODA5ODE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMDkuNjIwNTU0LCAic3RlcCI6IDM2MzAsICJ2YWx1ZSI6IDAuMjgzMDk3NTk0OTc2NDI1MTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTExOC4xMjg3ODk3LCAic3RlcCI6IDM2NDAsICJ2YWx1ZSI6IDAuMjU1MTA5MDcxNzMxNTY3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTI2Ljk5MjY2NjcsICJzdGVwIjogMzY1MCwgInZhbHVlIjogMC4yMTE5MTI2MzE5ODg1MjU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMzUuODI2OTc5LCAic3RlcCI6IDM2NjAsICJ2YWx1ZSI6IDAuMzEzMTM1NjUzNzM0MjA3MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTE0NC4yNDc4NzA0LCAic3RlcCI6IDM2NzAsICJ2YWx1ZSI6IDAuMjIxNjAyNjAzNzkzMTQ0MjN9LCB7IndhbGxUaW1lIjogMTczMzA3MTE1Mi45NjM5OTE0LCAic3RlcCI6IDM2ODAsICJ2YWx1ZSI6IDAuMjQxNTg3NjY4NjU3MzAyODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTE2MC42MDI5ODgsICJzdGVwIjogMzY5MCwgInZhbHVlIjogMC4yNTc0NjgyMjM1NzE3NzczNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTczLjc0OTg0MzYsICJzdGVwIjogMzcwMCwgInZhbHVlIjogMC4yNjEwNDI5MjI3MzUyMTQyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTgyLjg4MjgxNSwgInN0ZXAiOiAzNzEwLCAidmFsdWUiOiAwLjI2NjEwMTMwMDcxNjQwMDE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExOTEuMjA5NjM1LCAic3RlcCI6IDM3MjAsICJ2YWx1ZSI6IDAuMzEzMzczMzU3MDU3NTcxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjAwLjMzMjk5MiwgInN0ZXAiOiAzNzMwLCAidmFsdWUiOiAwLjU3MzY3NDM4MDc3OTI2NjR9LCB7IndhbGxUaW1lIjogMTczMzA3MTIwOC4zNjUyNTgyLCAic3RlcCI6IDM3NDAsICJ2YWx1ZSI6IDAuMjgwMzg5NTQ3MzQ4MDIyNDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTIxNi41NzE0NjY0LCAic3RlcCI6IDM3NTAsICJ2YWx1ZSI6IDAuMjAxNjAyMjgwMTM5OTIzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjI0LjY2MTQ2MjUsICJzdGVwIjogMzc2MCwgInZhbHVlIjogMC4xNjk4NzE4ODE2MDQxOTQ2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjMyLjg2MDI3NTMsICJzdGVwIjogMzc3MCwgInZhbHVlIjogMC4xNjM2MDQwNTA4NzQ3MTAwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjQ4LjUzMzAyMjQsICJzdGVwIjogMzc4MCwgInZhbHVlIjogMC4zNTY5NjU1MTIwMzcyNzcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNTcuMzkxMzUxNywgInN0ZXAiOiAzNzkwLCAidmFsdWUiOiAwLjQyNDM3ODA2NzI1NTAyMDE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNjUuNTY2ODk4MywgInN0ZXAiOiAzODAwLCAidmFsdWUiOiAwLjE5MzQ0ODQzOTI0MDQ1NTYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNzQuMTk3NjY5NywgInN0ZXAiOiAzODEwLCAidmFsdWUiOiAwLjMwOTM4NTUzODEwMTE5NjN9LCB7IndhbGxUaW1lIjogMTczMzA3MTI4My4wMTc1Mzg1LCAic3RlcCI6IDM4MjAsICJ2YWx1ZSI6IDAuMjI5MDY3MzU1Mzk0MzYzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjkxLjcyOTM4MzcsICJzdGVwIjogMzgzMCwgInZhbHVlIjogMC4xNzY4ODc1MTIyMDcwMzEyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjk5Ljg5MzA1MjMsICJzdGVwIjogMzg0MCwgInZhbHVlIjogMC4yMDc4MzI5MDI2Njk5MDY2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzA4LjQ3OTEwMiwgInN0ZXAiOiAzODUwLCAidmFsdWUiOiAwLjI4NDQ3MjgyMzE0MzAwNTM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMTYuOTUxMTgwNywgInN0ZXAiOiAzODYwLCAidmFsdWUiOiAwLjMwNDc4OTg0MTE3NTA3OTM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMzAuMjE0ODE3OCwgInN0ZXAiOiAzODcwLCAidmFsdWUiOiAwLjIyMzM1NDYwNzgyMDUxMDg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMzguOTg4NjM1MywgInN0ZXAiOiAzODgwLCAidmFsdWUiOiAwLjI0MDUxNDg1OTU1NzE1MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MTM0Ny43MzY1NjQ2LCAic3RlcCI6IDM4OTAsICJ2YWx1ZSI6IDAuMjE1MTQwMjgzMTA3NzU3NTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTM1Ny4wMzQzODM1LCAic3RlcCI6IDM5MDAsICJ2YWx1ZSI6IDAuMjE2MjI2NjM3MzYzNDMzODR9LCB7IndhbGxUaW1lIjogMTczMzA3MTM2NS4yMjUyMzcsICJzdGVwIjogMzkxMCwgInZhbHVlIjogMC4yOTUxNTgyMDc0MTY1MzQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNzQuMTM0NTMsICJzdGVwIjogMzkyMCwgInZhbHVlIjogMC40NTkwNzYxOTU5NTUyNzY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzODIuODEzNzM2MiwgInN0ZXAiOiAzOTMwLCAidmFsdWUiOiAwLjI5ODAyMTY3NDE1NjE4ODk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzOTEuNTY4MzEzMSwgInN0ZXAiOiAzOTQwLCAidmFsdWUiOiAwLjI1NTg5MTY1MDkxNTE0NTl9LCB7IndhbGxUaW1lIjogMTczMzA3MTQwNC40NjcxODksICJzdGVwIjogMzk1MCwgInZhbHVlIjogMC4yMzI3ODk5MDM4NzkxNjU2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDEyLjMzODgwNTQsICJzdGVwIjogMzk2MCwgInZhbHVlIjogMC4yNTUyMDQxMTEzMzc2NjE3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDIxLjE1NzQ4MjksICJzdGVwIjogMzk3MCwgInZhbHVlIjogMC4yNzMxMDA3MDM5NTQ2OTY2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDMwLjEyMDQ3MiwgInN0ZXAiOiAzOTgwLCAidmFsdWUiOiAwLjE5NDU4OTY3NDQ3MjgwODg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MzguNDEzOTg2LCAic3RlcCI6IDM5OTAsICJ2YWx1ZSI6IDAuMzczMTE0MDc5MjM2OTg0MjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ0Ny43Mjg4MTA4LCAic3RlcCI6IDQwMDAsICJ2YWx1ZSI6IDAuMzUzMTg3MjAzNDA3Mjg3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDU2LjE5NjU3MSwgInN0ZXAiOiA0MDEwLCAidmFsdWUiOiAwLjI5MTc1OTc4ODk5MDAyMDc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NjQuNzQ5NDMzMywgInN0ZXAiOiA0MDIwLCAidmFsdWUiOiAwLjI0OTExNTU4NjI4MDgyMjc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NzMuMzk3Mjg3MSwgInN0ZXAiOiA0MDMwLCAidmFsdWUiOiAwLjMyNTY2NDQzMDg1NjcwNDd9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ5MC4yODYzOTIsICJzdGVwIjogNDA0MCwgInZhbHVlIjogMC4yNDczODQxNDU4NTU5MDM2M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDk4LjcxMTcwOTUsICJzdGVwIjogNDA1MCwgInZhbHVlIjogMC4yMzYwOTkwMDQ3NDU0ODM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MDcuMDk3NTc1LCAic3RlcCI6IDQwNjAsICJ2YWx1ZSI6IDAuMTkxNTM2Nzg0MTcyMDU4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTE1LjA2Nzg1ODcsICJzdGVwIjogNDA3MCwgInZhbHVlIjogMC4yODU2NjgxNjQ0OTE2NTM0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTIzLjg4MTI1MTgsICJzdGVwIjogNDA4MCwgInZhbHVlIjogMC4yNzE4NjY1NTk5ODIyOTk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MzIuMjg1NTQ5MiwgInN0ZXAiOiA0MDkwLCAidmFsdWUiOiAwLjE5NjY0NDg3MjQyNjk4Njd9LCB7IndhbGxUaW1lIjogMTczMzA3MTU0MC45MTc4MTcsICJzdGVwIjogNDEwMCwgInZhbHVlIjogMC4yMTY2MjI3Njk4MzI2MTEwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTQ5LjE3NjM3MTYsICJzdGVwIjogNDExMCwgInZhbHVlIjogMC4xODM0NDg3MzE4OTkyNjE0N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTY1LjgzNjI2MzQsICJzdGVwIjogNDEyMCwgInZhbHVlIjogMC4yMjYwMzU4NDgyNTk5MjU4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTczLjYzMTk2OSwgInN0ZXAiOiA0MTMwLCAidmFsdWUiOiAwLjE2MDg5MzI5MTIzNDk3MDF9LCB7IndhbGxUaW1lIjogMTczMzA3MTU4Mi4wOTY1NTA1LCAic3RlcCI6IDQxNDAsICJ2YWx1ZSI6IDAuNDE5OTUxMzE5Njk0NTE5MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTU5MC4wMjMxMDI1LCAic3RlcCI6IDQxNTAsICJ2YWx1ZSI6IDAuMTYwODcxMTc3OTExNzU4NDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTU5OS4yNDE0Mjk4LCAic3RlcCI6IDQxNjAsICJ2YWx1ZSI6IDAuNzA5NDQ3NjIyMjk5MTk0M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjA4LjA3MjIyNzUsICJzdGVwIjogNDE3MCwgInZhbHVlIjogMC4yNTM5MzU2MDUyODc1NTE5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2MTYuMTg0MzQ1MiwgInN0ZXAiOiA0MTgwLCAidmFsdWUiOiAwLjMxMzI3NDMyMzk0MDI3NzF9LCB7IndhbGxUaW1lIjogMTczMzA3MTYyNi4wODM0MDMzLCAic3RlcCI6IDQxOTAsICJ2YWx1ZSI6IDAuMTU5NjA5MDQ5NTU4NjM5NTN9LCB7IndhbGxUaW1lIjogMTczMzA3MTY0MS4wMDg2MTkzLCAic3RlcCI6IDQyMDAsICJ2YWx1ZSI6IDAuMjQ1MDY1OTI3NTA1NDkzMTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTY0OS4wNDEzNDE1LCAic3RlcCI6IDQyMTAsICJ2YWx1ZSI6IDAuMjAxODY1ODUxODc5MTE5ODd9LCB7IndhbGxUaW1lIjogMTczMzA3MTY1OC41MzIxMDY0LCAic3RlcCI6IDQyMjAsICJ2YWx1ZSI6IDAuMjc5OTg3MzM1MjA1MDc4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjY3Ljk2Njc4MDIsICJzdGVwIjogNDIzMCwgInZhbHVlIjogMC4zMjQwMjI3NDAxMjU2NTYxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjc2LjEwOTUwNCwgInN0ZXAiOiA0MjQwLCAidmFsdWUiOiAwLjIwODQ0OTQzODIxNDMwMjA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2ODQuMzc5MzAyNywgInN0ZXAiOiA0MjUwLCAidmFsdWUiOiAwLjMxNDIxMzQ1NDcyMzM1ODE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2OTMuMTEwMzgxMSwgInN0ZXAiOiA0MjYwLCAidmFsdWUiOiAwLjI4ODg1NDI3MTE3MzQ3NzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTcwMi4xODQ2NTc4LCAic3RlcCI6IDQyNzAsICJ2YWx1ZSI6IDAuMjExNTUzOTQ2MTM3NDI4Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTcxMC42MzEyMTUzLCAic3RlcCI6IDQyODAsICJ2YWx1ZSI6IDAuMzIyMTIzMzE4OTEwNTk4NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MTcyNi42Nzc1MDEyLCAic3RlcCI6IDQyOTAsICJ2YWx1ZSI6IDAuMjYzNzUwMDc2MjkzOTQ1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzM1LjIxNjM0NzUsICJzdGVwIjogNDMwMCwgInZhbHVlIjogMC4yNjgyMzU0NDUwMjI1ODN9LCB7IndhbGxUaW1lIjogMTczMzA3MTc0Mi45NTc4NjQsICJzdGVwIjogNDMxMCwgInZhbHVlIjogMC4yNjI2MDU2MDc1MDk2MTMwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzUxLjU4NjQ5MDYsICJzdGVwIjogNDMyMCwgInZhbHVlIjogMC40MjQ2NDExMDI1NTI0MTM5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzYwLjAzNTU5MSwgInN0ZXAiOiA0MzMwLCAidmFsdWUiOiAwLjI3NjQ4MDI1NzUxMTEzODl9LCB7IndhbGxUaW1lIjogMTczMzA3MTc2OC40MzIxMTM2LCAic3RlcCI6IDQzNDAsICJ2YWx1ZSI6IDAuMTgwNzQxNDE0NDI3NzU3MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTc3Ny40MDI5NTk2LCAic3RlcCI6IDQzNTAsICJ2YWx1ZSI6IDAuMjk2ODQ3NzAxMDcyNjkyODd9LCB7IndhbGxUaW1lIjogMTczMzA3MTc4NS41NDgxMjY1LCAic3RlcCI6IDQzNjAsICJ2YWx1ZSI6IDAuMjczMzI1ODAwODk1NjkwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODAwLjg4NTU5LCAic3RlcCI6IDQzNzAsICJ2YWx1ZSI6IDAuMzU3NTYxMTExNDUwMTk1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxODA5LjI2NjYyOTUsICJzdGVwIjogNDM4MCwgInZhbHVlIjogMC4yNDEzODE2NDUyMDI2MzY3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODE3LjM0NzIxMDYsICJzdGVwIjogNDM5MCwgInZhbHVlIjogMC4yMDU0NTAyMjE4OTYxNzE1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxODI2LjQzMTIxOTgsICJzdGVwIjogNDQwMCwgInZhbHVlIjogMC4zMDU0NTM4MDcxMTU1NTQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MzQuODg4NDA2LCAic3RlcCI6IDQ0MTAsICJ2YWx1ZSI6IDAuMjkzNDUxNzI2NDM2NjE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NDMuNDQ3Njc1LCAic3RlcCI6IDQ0MjAsICJ2YWx1ZSI6IDAuMjU3NTI0NTIwMTU4NzY3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxODUxLjU5NjgyNTQsICJzdGVwIjogNDQzMCwgInZhbHVlIjogMC4yNDY1NTE1NDM0NzQxOTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NTkuOTI0OTM5NiwgInN0ZXAiOiA0NDQwLCAidmFsdWUiOiAwLjI1ODI3MjQzOTI0MTQwOTN9LCB7IndhbGxUaW1lIjogMTczMzA3MTg2OC42NzQwMjk0LCAic3RlcCI6IDQ0NTAsICJ2YWx1ZSI6IDAuMjQ1MjQzMTAyMzEyMDg4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4ODEuMzM2OTUwMywgInN0ZXAiOiA0NDYwLCAidmFsdWUiOiAwLjIyNjgxNTIyMzY5Mzg0NzY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4ODkuNjM3NTk5MiwgInN0ZXAiOiA0NDcwLCAidmFsdWUiOiAwLjIzOTQ2OTQyMzg5MDExMzgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4OTguNDIxNjE4NywgInN0ZXAiOiA0NDgwLCAidmFsdWUiOiAwLjI2ODYyNzY3MzM4NzUyNzQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5MDcuMzM2ODE0LCAic3RlcCI6IDQ0OTAsICJ2YWx1ZSI6IDAuMjI5MjE4OTc0NzA5NTEwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTE2LjI3OTAwMzYsICJzdGVwIjogNDUwMCwgInZhbHVlIjogMC4zMjg5MDA4NzM2NjEwNDEyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTI1LjM0OTQ3MDEsICJzdGVwIjogNDUxMCwgInZhbHVlIjogMC4zNjM3MDg4ODM1MjM5NDEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTMzLjMzMDEyNjUsICJzdGVwIjogNDUyMCwgInZhbHVlIjogMC4xNTIyMzgyOTQ0ODIyMzExNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTQxLjQ4MzQ1OTUsICJzdGVwIjogNDUzMCwgInZhbHVlIjogMC4xNjQ1OTEzMTI0MDg0NDcyN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTU0LjE2OTY5OTcsICJzdGVwIjogNDU0MCwgInZhbHVlIjogMC4yMzM5ODczOTA5OTUwMjU2M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTYyLjM5NjUyMTYsICJzdGVwIjogNDU1MCwgInZhbHVlIjogMC4xODgzNjUzNTUxMzQwMTAzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTcwLjUxNDA3ODYsICJzdGVwIjogNDU2MCwgInZhbHVlIjogMC4yNjQ4MzY0MzA1NDk2MjE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NzguODcwNjQxMiwgInN0ZXAiOiA0NTcwLCAidmFsdWUiOiAwLjM3MTIxNzc1NzQ2MzQ1NTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTk4Ny43MTExOTQ1LCAic3RlcCI6IDQ1ODAsICJ2YWx1ZSI6IDAuMjk2ODE0ODU4OTEzNDIxNjN9LCB7IndhbGxUaW1lIjogMTczMzA3MTk5Ni40NDU0MzMsICJzdGVwIjogNDU5MCwgInZhbHVlIjogMC4zODc1NjAxNTg5Njc5NzE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMDQuNDc2NjE3LCAic3RlcCI6IDQ2MDAsICJ2YWx1ZSI6IDAuMTkyNTQxOTg2NzAzODcyNjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjAxMi43NDUzODE2LCAic3RlcCI6IDQ2MTAsICJ2YWx1ZSI6IDAuMTgxNzMxMDE1NDQzODAxODh9LCB7IndhbGxUaW1lIjogMTczMzA3MjAyNS40MDA4NDM0LCAic3RlcCI6IDQ2MjAsICJ2YWx1ZSI6IDAuMTk4ODA0NTEyNjE5OTcyMjN9LCB7IndhbGxUaW1lIjogMTczMzA3MjAzNC4xMTg4NDc0LCAic3RlcCI6IDQ2MzAsICJ2YWx1ZSI6IDAuMTg5MTg4MzAxNTYzMjYyOTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjA0My4wMzgzMjE3LCAic3RlcCI6IDQ2NDAsICJ2YWx1ZSI6IDAuMzEyMjYyNzQzNzExNDcxNTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjA1MS43ODYxMTcsICJzdGVwIjogNDY1MCwgInZhbHVlIjogMC4yNTE2MTA1MTc1MDE4MzEwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDYwLjEwODYxMTMsICJzdGVwIjogNDY2MCwgInZhbHVlIjogMC4yNDM5NDUxODEzNjk3ODE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNjguNjAzMzg3NiwgInN0ZXAiOiA0NjcwLCAidmFsdWUiOiAwLjI3MjkxODE2NDczMDA3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDc2LjgzNjc4OTgsICJzdGVwIjogNDY4MCwgInZhbHVlIjogMC4yNjg2MTY5NDQ1NTE0Njc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwODUuMzc2MjE3NCwgInN0ZXAiOiA0NjkwLCAidmFsdWUiOiAwLjI4NjcyNDU5NzIxNTY1MjQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwOTMuNzQ4NjYzNywgInN0ZXAiOiA0NzAwLCAidmFsdWUiOiAwLjIxNDM0OTIxMDI2MjI5ODU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMDYuOTg5NzgzLCAic3RlcCI6IDQ3MTAsICJ2YWx1ZSI6IDAuMjU5MDI5ODA1NjYwMjQ3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTE1LjY2NTI4NiwgInN0ZXAiOiA0NzIwLCAidmFsdWUiOiAwLjQxNjgyNTExNTY4MDY5NDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjEyMy45NTA2ODUsICJzdGVwIjogNDczMCwgInZhbHVlIjogMC4zMjQyNDc5NTYyNzU5Mzk5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTMyLjI4MDc0NDgsICJzdGVwIjogNDc0MCwgInZhbHVlIjogMC4yMjgxMzQ2MDIzMDgyNzMzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTQwLjQyMDY0MjEsICJzdGVwIjogNDc1MCwgInZhbHVlIjogMC4xOTQwNjM3ODI2OTE5NTU1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTQ5LjA4NzIwOTUsICJzdGVwIjogNDc2MCwgInZhbHVlIjogMC4yMTM0OTI4ODUyMzE5NzE3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTU3LjQxMTg4OTYsICJzdGVwIjogNDc3MCwgInZhbHVlIjogMC4yMzk4NDQ1OTA0MjU0OTEzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTY1LjQ4OTM3ODUsICJzdGVwIjogNDc4MCwgInZhbHVlIjogMC4yNzE2MzgyNzQxOTI4MTAwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTc5LjY0OTIwNDUsICJzdGVwIjogNDc5MCwgInZhbHVlIjogMC4yNTg5ODQ4MDQxNTM0NDI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxODguMzI5NzM2MiwgInN0ZXAiOiA0ODAwLCAidmFsdWUiOiAwLjE5MzcwNzI3MjQxMDM5Mjc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxOTYuODQ3MDYzNSwgInN0ZXAiOiA0ODEwLCAidmFsdWUiOiAwLjI1ODgzMjM5NTA3Njc1MTd9LCB7IndhbGxUaW1lIjogMTczMzA3MjIwNC41NjIzMjEyLCAic3RlcCI6IDQ4MjAsICJ2YWx1ZSI6IDAuMjAyOTgzODQxMzAwMDEwNjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjIxMy4wOTk2OTQzLCAic3RlcCI6IDQ4MzAsICJ2YWx1ZSI6IDAuMzYxNjAxMTE0MjczMDcxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjIxLjY2NzEzMDcsICJzdGVwIjogNDg0MCwgInZhbHVlIjogMC4yNjQ5MjU3MTgzMDc0OTUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMjkuODk0MDM5OSwgInN0ZXAiOiA0ODUwLCAidmFsdWUiOiAwLjIwMzgxODI2MTYyMzM4MjU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMzguMDU2MjcwMSwgInN0ZXAiOiA0ODYwLCAidmFsdWUiOiAwLjI0Mjk1Mzk3MTAyODMyNzk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNDYuMzQzNjM2MywgInN0ZXAiOiA0ODcwLCAidmFsdWUiOiAwLjIwMDk2MjI2MDM2NTQ4NjE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNjEuMjY3NDI4NCwgInN0ZXAiOiA0ODgwLCAidmFsdWUiOiAwLjIyOTc1Njk4MTEzNDQxNDY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNjkuODUyNjg3NCwgInN0ZXAiOiA0ODkwLCAidmFsdWUiOiAwLjIyMDgxODY4MzUwNTA1ODN9LCB7IndhbGxUaW1lIjogMTczMzA3MjI3OC44ODA0MjY2LCAic3RlcCI6IDQ5MDAsICJ2YWx1ZSI6IDAuMjg1Mjk3NzgxMjI5MDE5MTd9LCB7IndhbGxUaW1lIjogMTczMzA3MjI4Ny41MzQ2MDQsICJzdGVwIjogNDkxMCwgInZhbHVlIjogMC4yMDE1OTAyNDAwMDE2Nzg0N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjk1Ljk0NzM3ODIsICJzdGVwIjogNDkyMCwgInZhbHVlIjogMC4xNzgwMjYzMTg1NTAxMDk4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzA0LjM1NTUzMiwgInN0ZXAiOiA0OTMwLCAidmFsdWUiOiAwLjI2NTE3MTI4OTQ0Mzk2OTd9LCB7IndhbGxUaW1lIjogMTczMzA3MjMxMy41MTAwNTg2LCAic3RlcCI6IDQ5NDAsICJ2YWx1ZSI6IDAuMjY0MTMzODQwNzk5MzMxNjd9LCB7IndhbGxUaW1lIjogMTczMzA3MjMyMS4zMjU1NDIsICJzdGVwIjogNDk1MCwgInZhbHVlIjogMC4xODc0NDQwMzEyMzg1NTU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMzcuMDI1MTc0LCAic3RlcCI6IDQ5NjAsICJ2YWx1ZSI6IDAuMTY0NTM2ODMzNzYzMTIyNTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjM0NS41MzIyNzU0LCAic3RlcCI6IDQ5NzAsICJ2YWx1ZSI6IDAuMTc2OTUxODg1MjIzMzg4Njd9LCB7IndhbGxUaW1lIjogMTczMzA3MjM1My40MzAwMjMsICJzdGVwIjogNDk4MCwgInZhbHVlIjogMC4yMjUzNjc3NTQ2OTc3OTk2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzYyLjQxMzUyNywgInN0ZXAiOiA0OTkwLCAidmFsdWUiOiAwLjI0MDY5Njk5NjQ1MDQyNDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjM3MS43NDYyMjI1LCAic3RlcCI6IDUwMDAsICJ2YWx1ZSI6IDAuMjI5NDIwMDY1ODc5ODIxNzh9LCB7IndhbGxUaW1lIjogMTczMzA3MjM4MC41Mjk5NzExLCAic3RlcCI6IDUwMTAsICJ2YWx1ZSI6IDAuMjg5OTkxMTk5OTcwMjQ1MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjM4OS4wMjY3NiwgInN0ZXAiOiA1MDIwLCAidmFsdWUiOiAwLjMwNDc4ODY3ODg4NDUwNjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjM5Ny43ODU4NjI3LCAic3RlcCI6IDUwMzAsICJ2YWx1ZSI6IDAuMTk2MTk2Mzc3Mjc3Mzc0Mjd9LCB7IndhbGxUaW1lIjogMTczMzA3MjQxMS4yOTg2NTQ4LCAic3RlcCI6IDUwNDAsICJ2YWx1ZSI6IDAuMjIwMTg4MzY0Mzg2NTU4NTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjQxOS40NzQ1MiwgInN0ZXAiOiA1MDUwLCAidmFsdWUiOiAwLjIwNjk5NjAyMzY1NDkzNzc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MjguMzcyNTU3NiwgInN0ZXAiOiA1MDYwLCAidmFsdWUiOiAwLjI4Nzg3MTg2NzQxODI4OTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQzNy4xMTcwNDY4LCAic3RlcCI6IDUwNzAsICJ2YWx1ZSI6IDAuMjY2Mjk0MTUxNTQ0NTcwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDQ2LjE3NTU2MDIsICJzdGVwIjogNTA4MCwgInZhbHVlIjogMC4yOTA1MjI5MzMwMDYyODY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NTQuNDI4OTQ2LCAic3RlcCI6IDUwOTAsICJ2YWx1ZSI6IDAuMTk4OTUxMTk5NjUwNzY0NDd9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ2Mi40MTA4NjgsICJzdGVwIjogNTEwMCwgInZhbHVlIjogMC4yNDgxOTUyMDExNTg1MjM1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDcxLjE1MDYyNSwgInN0ZXAiOiA1MTEwLCAidmFsdWUiOiAwLjIxODU2MzQzNzQ2MTg1MzAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NzguOTQ2OTMsICJzdGVwIjogNTEyMCwgInZhbHVlIjogMC4zMDE2MDAyNzc0MjM4NTg2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDkxLjMyMTk4NzQsICJzdGVwIjogNTEzMCwgInZhbHVlIjogMC4zMjUxNjE3NTUwODQ5OTE0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDk5LjI1OTA4MzcsICJzdGVwIjogNTE0MCwgInZhbHVlIjogMC4xNjgwNTY3NTYyNTgwMTA4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTA3LjExMjQwOTYsICJzdGVwIjogNTE1MCwgInZhbHVlIjogMC4yMTkwMTkzNjgyOTA5MDExOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTE1LjMxNzU3MTQsICJzdGVwIjogNTE2MCwgInZhbHVlIjogMC42MTYzNDQ1MTE1MDg5NDE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MjMuNTAxMDYwNywgInN0ZXAiOiA1MTcwLCAidmFsdWUiOiAwLjI3NDMyMjU5OTE3MjU5MjE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MzEuMDg3NTkzMywgInN0ZXAiOiA1MTgwLCAidmFsdWUiOiAwLjE3NDMxNzU2ODU0MDU3MzEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NDAuMDIyODg0LCAic3RlcCI6IDUxOTAsICJ2YWx1ZSI6IDAuMjM4MjI2MjIwMDExNzExMTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjU0OC42NTMwNzkzLCAic3RlcCI6IDUyMDAsICJ2YWx1ZSI6IDAuMjY0NDU4NjI2NTA4NzEyNzd9LCB7IndhbGxUaW1lIjogMTczMzA3MjU2MS40MTYyMDYsICJzdGVwIjogNTIxMCwgInZhbHVlIjogMC4yMDkzMTMwMDUyMDg5NjkxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTY5Ljg5NzI3MTksICJzdGVwIjogNTIyMCwgInZhbHVlIjogMC4yODk0NTA4MjQyNjA3MTE2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTc4LjY3OTkxMTEsICJzdGVwIjogNTIzMCwgInZhbHVlIjogMC4yNjcxMTgzNjQ1NzI1MjV9LCB7IndhbGxUaW1lIjogMTczMzA3MjU4Ni45NDMxODU2LCAic3RlcCI6IDUyNDAsICJ2YWx1ZSI6IDAuMjcyNjcyNDE0Nzc5NjYzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTk1LjAzNDY4OSwgInN0ZXAiOiA1MjUwLCAidmFsdWUiOiAwLjMzNTYzMzUxNjMxMTY0NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjYwMy4xNzM4MDM4LCAic3RlcCI6IDUyNjAsICJ2YWx1ZSI6IDAuMjQ2MzgyMzQwNzg4ODQxMjV9LCB7IndhbGxUaW1lIjogMTczMzA3MjYxMS4wODA2NDEzLCAic3RlcCI6IDUyNzAsICJ2YWx1ZSI6IDAuMjc1OTUyNjM3MTk1NTg3MTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjYxOS45NTU4ODU2LCAic3RlcCI6IDUyODAsICJ2YWx1ZSI6IDAuMjQzOTY5NjM0MTc1MzAwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjI4LjYzNDkxNTQsICJzdGVwIjogNTI5MCwgInZhbHVlIjogMC4yMzkyNTc0ODQ2NzQ0NTM3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjQxLjM3NTkxODYsICJzdGVwIjogNTMwMCwgInZhbHVlIjogMC4yMjU1MzUzNjI5NTg5MDgwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjQ5Ljg1ODY1NTcsICJzdGVwIjogNTMxMCwgInZhbHVlIjogMC4xNjYzMDQyNjA0OTIzMjQ4M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjU3Ljk3MTYyNzIsICJzdGVwIjogNTMyMCwgInZhbHVlIjogMC4xODI0MDkyNzE1OTc4NjIyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjY3LjAyOTg1NDgsICJzdGVwIjogNTMzMCwgInZhbHVlIjogMC4yOTQ0MjE4NTE2MzQ5NzkyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjc1Ljk0MzM5MSwgInN0ZXAiOiA1MzQwLCAidmFsdWUiOiAwLjI0MDAzMTEwODI2MDE1NDcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2ODQuMjM4Nzc2LCAic3RlcCI6IDUzNTAsICJ2YWx1ZSI6IDAuMzcxNzExMjU0MTE5ODczMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjY5MS44NTg0NzM4LCAic3RlcCI6IDUzNjAsICJ2YWx1ZSI6IDAuMjQ4NDQ4NjI1MjA2OTQ3MzN9LCB7IndhbGxUaW1lIjogMTczMzA3MjcwMC4xNDgzMzksICJzdGVwIjogNTM3MCwgInZhbHVlIjogMC4xODU5MTQ0MjcwNDIwMDc0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzEzLjE4MzM5NTQsICJzdGVwIjogNTM4MCwgInZhbHVlIjogMC4xODg3ODcwMTMyOTIzMTI2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzIxLjAyNTA1MywgInN0ZXAiOiA1MzkwLCAidmFsdWUiOiAwLjE2NDk2NDQwNzY4MjQxODgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MjkuODc3MjgyNiwgInN0ZXAiOiA1NDAwLCAidmFsdWUiOiAwLjIyNTUwMTEyMDA5MDQ4NDYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MzguMzcwNDc0OCwgInN0ZXAiOiA1NDEwLCAidmFsdWUiOiAwLjE3OTA1NzI3MDI4ODQ2NzR9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc0Ni4zODMwNDY2LCAic3RlcCI6IDU0MjAsICJ2YWx1ZSI6IDAuMjQ5NzYxMzQzMDAyMzE5MzR9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc1NC42MTgwMDE3LCAic3RlcCI6IDU0MzAsICJ2YWx1ZSI6IDAuMzEzMTQ5NTcxNDE4NzYyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzYyLjU0Nzg4NzgsICJzdGVwIjogNTQ0MCwgInZhbHVlIjogMC4xODcwOTg2ODE5MjY3MjczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3NzEuMzYwOTY3MiwgInN0ZXAiOiA1NDUwLCAidmFsdWUiOiAwLjI0MzQ3NDM3OTE4MTg2MTg4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3ODcuMTUyMDYzOCwgInN0ZXAiOiA1NDYwLCAidmFsdWUiOiAwLjE3ODY4OTQzNTEyNDM5NzI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3OTUuODAzMTQ3LCAic3RlcCI6IDU0NzAsICJ2YWx1ZSI6IDAuMjUwNjYxNzAwOTYzOTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MDQuMjQyMzU5OSwgInN0ZXAiOiA1NDgwLCAidmFsdWUiOiAwLjE2NzY2MTEzMDQyODMxNDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjgxMi4zNzM0Mjc2LCAic3RlcCI6IDU0OTAsICJ2YWx1ZSI6IDAuMjY1MDM5NDE0MTY3NDA0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODIxLjE1OTU0OTUsICJzdGVwIjogNTUwMCwgInZhbHVlIjogMC4yNzQyODEyMzM1NDkxMTgwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODMwLjAyMjk3NCwgInN0ZXAiOiA1NTEwLCAidmFsdWUiOiAwLjI5NDgzMjA1MDgwMDMyMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MjgzOC42OTU0MjU3LCAic3RlcCI6IDU1MjAsICJ2YWx1ZSI6IDAuMjA3NDMyODIxMzkzMDEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NDYuOTA1Mjg2LCAic3RlcCI6IDU1MzAsICJ2YWx1ZSI6IDAuMTY5NjM4MzA1OTAyNDgxMDh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg1NS4yNDcxNjI2LCAic3RlcCI6IDU1NDAsICJ2YWx1ZSI6IDAuMTk3NzY5NTY3MzcwNDE0NzN9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg3MC42NDUxOTQ1LCAic3RlcCI6IDU1NTAsICJ2YWx1ZSI6IDAuMjgzMjQzOTgzOTgzOTkzNTN9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg3OC43MzAxNjc5LCAic3RlcCI6IDU1NjAsICJ2YWx1ZSI6IDAuMjc1MTg4MDI4ODEyNDA4NDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg4Ni42MTE0ODAyLCAic3RlcCI6IDU1NzAsICJ2YWx1ZSI6IDAuMjMzMjE1MzE3MTMwMDg4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODk1LjAyMTIyNzQsICJzdGVwIjogNTU4MCwgInZhbHVlIjogMC44NTYyMzU1NjM3NTUwMzU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MDMuNDAzMDU4NSwgInN0ZXAiOiA1NTkwLCAidmFsdWUiOiAwLjIwODYzOTc0MDk0MzkwODd9LCB7IndhbGxUaW1lIjogMTczMzA3MjkxMS4yMTAwOTY0LCAic3RlcCI6IDU2MDAsICJ2YWx1ZSI6IDAuMzA4OTU1NzU4ODEwMDQzMzN9LCB7IndhbGxUaW1lIjogMTczMzA3MjkxOS44NDAwNTEsICJzdGVwIjogNTYxMCwgInZhbHVlIjogMC4yNjAxOTU5MTA5MzA2MzM1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTI4LjczMzE5OTEsICJzdGVwIjogNTYyMCwgInZhbHVlIjogMC4zNjg1MjY4NDYxNzA0MjU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NDEuNzAzODE4OCwgInN0ZXAiOiA1NjMwLCAidmFsdWUiOiAwLjIwMzM5NzA5NTIwMzM5OTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NDkuOTgwMjA4NCwgInN0ZXAiOiA1NjQwLCAidmFsdWUiOiAwLjIzMzg0Mzc0MzgwMTExNjk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NTguNzIwMjgxNiwgInN0ZXAiOiA1NjUwLCAidmFsdWUiOiAwLjMyNDU0MjM0MzYxNjQ4NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk2Ni44MTUwNzU2LCAic3RlcCI6IDU2NjAsICJ2YWx1ZSI6IDAuMjAzMDQwMTIyOTg1ODM5ODR9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk3NC45NjI0ODkxLCAic3RlcCI6IDU2NzAsICJ2YWx1ZSI6IDAuMTg1MTc2NzMwMTU1OTQ0ODJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk4My41NjIwNzg3LCAic3RlcCI6IDU2ODAsICJ2YWx1ZSI6IDAuMjMwMjM4NzUwNTc2OTcyOTZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk5Mi4yMjg5NDcsICJzdGVwIjogNTY5MCwgInZhbHVlIjogMC4yNTA5MDUwMzY5MjYyNjk1M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMDAwLjgxNzI3OTYsICJzdGVwIjogNTcwMCwgInZhbHVlIjogMC4xOTc5NjgyMTQ3NTAyODk5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDA5Ljc4MzM2NzQsICJzdGVwIjogNTcxMCwgInZhbHVlIjogMC4yNDA3OTUzNDQxMTQzMDM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMjIuODY4MzU4NCwgInN0ZXAiOiA1NzIwLCAidmFsdWUiOiAwLjM2NTk1MzI2NjYyMDYzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDMxLjUzNDg4NzMsICJzdGVwIjogNTczMCwgInZhbHVlIjogMC4yODgxODI0OTcwMjQ1MzYxM30sIHsid2FsbFRpbWUiOiAxNzMzMDczMDM5LjU3MTI4NzYsICJzdGVwIjogNTc0MCwgInZhbHVlIjogMC4yNDMxMzc1NjgyMzUzOTczNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDQ3Ljg0MzA1MjYsICJzdGVwIjogNTc1MCwgInZhbHVlIjogMC4yMzc3MjQ5MDAyNDU2NjY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNTYuMTU2NjY5NiwgInN0ZXAiOiA1NzYwLCAidmFsdWUiOiAwLjE4MzY3NjM2MjAzNzY1ODd9LCB7IndhbGxUaW1lIjogMTczMzA3MzA2NC45NTUyMzEyLCAic3RlcCI6IDU3NzAsICJ2YWx1ZSI6IDAuMzQwMzIzMzI4OTcxODYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDczLjgzNzgzMjUsICJzdGVwIjogNTc4MCwgInZhbHVlIjogMC4yMjIwODY0ODkyMDA1OTIwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDgyLjcyNTIxOCwgInN0ZXAiOiA1NzkwLCAidmFsdWUiOiAwLjMxNjU2MzY2NTg2Njg1MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MzA5NS4xMDMxMzkyLCAic3RlcCI6IDU4MDAsICJ2YWx1ZSI6IDAuMjE4NzEzMTA0NzI0ODg0MDN9LCB7IndhbGxUaW1lIjogMTczMzA3MzEwMy4zMTU5NTY2LCAic3RlcCI6IDU4MTAsICJ2YWx1ZSI6IDAuMjQ1OTYyMDA4ODMzODg1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTExLjk3MDgzNzYsICJzdGVwIjogNTgyMCwgInZhbHVlIjogMC4xNjI0MDMxMDY2ODk0NTMxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTIwLjM1NjUxMTYsICJzdGVwIjogNTgzMCwgInZhbHVlIjogMC4zMDQ5NjA4NDY5MDA5Mzk5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTI4LjIwOTQwNTQsICJzdGVwIjogNTg0MCwgInZhbHVlIjogMC4yMDExMTQ4OTI5NTk1OTQ3M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMTM2LjcxNTg5OTcsICJzdGVwIjogNTg1MCwgInZhbHVlIjogMC4xNjc3NjI5OTQ3NjYyMzUzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTQ0LjkyODAzMTIsICJzdGVwIjogNTg2MCwgInZhbHVlIjogMC4yNTA5NTUyODM2NDE4MTUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNTMuMDQxNjY3LCAic3RlcCI6IDU4NzAsICJ2YWx1ZSI6IDAuMTU2NDc2OTU5NTg2MTQzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTY2LjAwMzI4NjEsICJzdGVwIjogNTg4MCwgInZhbHVlIjogMC4xOTA2NTcwNDk0MTc0OTU3M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMTc0LjY1OTI0MjQsICJzdGVwIjogNTg5MCwgInZhbHVlIjogMC4xNTQ4OTc4Njg2MzMyNzAyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTgyLjUwODUyNjYsICJzdGVwIjogNTkwMCwgInZhbHVlIjogMC4yMjY5NDI5NTY0NDc2MDEzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTkxLjU1OTc2NjgsICJzdGVwIjogNTkxMCwgInZhbHVlIjogMC4xODYyNTkyNjk3MTQzNTU0N30sIHsid2FsbFRpbWUiOiAxNzMzMDczMTk5LjQxMTg5NjUsICJzdGVwIjogNTkyMCwgInZhbHVlIjogMC4xMDM4ODM5OTY2MDU4NzMxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjA3LjQ2NTc4NTUsICJzdGVwIjogNTkzMCwgInZhbHVlIjogMC4yMzMwMjY5MjE3NDkxMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzIxNS42MDMxNTUxLCAic3RlcCI6IDU5NDAsICJ2YWx1ZSI6IDAuMjA3OTIwNjEwOTA0NjkzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjI0LjM1ODQzODMsICJzdGVwIjogNTk1MCwgInZhbHVlIjogMC4yMDEyOTM5NjAyMTM2NjEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMzIuODc3NDcsICJzdGVwIjogNTk2MCwgInZhbHVlIjogMC4yODEzNTUyNjE4MDI2NzMzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjQ1LjM3NDExNjcsICJzdGVwIjogNTk3MCwgInZhbHVlIjogMC4xOTg0ODYzMjgxMjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzI1My4xNzk4NTU2LCAic3RlcCI6IDU5ODAsICJ2YWx1ZSI6IDAuMjQ1NTAxODc1ODc3MzgwMzd9LCB7IndhbGxUaW1lIjogMTczMzA3MzI2MS44MDAzODg2LCAic3RlcCI6IDU5OTAsICJ2YWx1ZSI6IDAuMjIwODU4MjQ2MDg4MDI3OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzI3MC4wNjAxNzgzLCAic3RlcCI6IDYwMDAsICJ2YWx1ZSI6IDAuMjE2MjU1OTMzMDQ2MzQwOTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzI3OC44OTYzMDc3LCAic3RlcCI6IDYwMTAsICJ2YWx1ZSI6IDAuMzYyMjc1NDIxNjE5NDE1M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMjg3LjY4MjU3OSwgInN0ZXAiOiA2MDIwLCAidmFsdWUiOiAwLjI0OTYxMzY3MjQ5NDg4ODN9LCB7IndhbGxUaW1lIjogMTczMzA3MzI5Ny4yNzQ5NTQsICJzdGVwIjogNjAzMCwgInZhbHVlIjogMC4zODg3Nzg3NzU5MzA0MDQ2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzA1LjkxODc0MjIsICJzdGVwIjogNjA0MCwgInZhbHVlIjogMC4yOTcyNzg4MjE0NjgzNTMyN30sIHsid2FsbFRpbWUiOiAxNzMzMDczMzIyLjM1NTEzNDUsICJzdGVwIjogNjA1MCwgInZhbHVlIjogMC4yMTQ5ODk3NTE1NzczNzczMn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzMxLjk3Nzc3MjIsICJzdGVwIjogNjA2MCwgInZhbHVlIjogMC4xNTkxNjEwOTA4NTA4MzAwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzQwLjUyMjY1OTMsICJzdGVwIjogNjA3MCwgInZhbHVlIjogMC4xODc0MjUzMDA0Nzg5MzUyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzQ5LjYwMjQ3MjUsICJzdGVwIjogNjA4MCwgInZhbHVlIjogMC4zMDAxMjYyNTQ1NTg1NjMyM30sIHsid2FsbFRpbWUiOiAxNzMzMDczMzU5LjA3MTcwODIsICJzdGVwIjogNjA5MCwgInZhbHVlIjogMC4xODYyNjczNjEwNDQ4ODM3M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMzY4LjQwMzQzNTUsICJzdGVwIjogNjEwMCwgInZhbHVlIjogMC4yMzAzNzE4NjI2NDk5MTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNzcuNjc1NDg1NCwgInN0ZXAiOiA2MTEwLCAidmFsdWUiOiAwLjI0MzA4ODkwMTA0MjkzODIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzODYuNDAwODgzNCwgInN0ZXAiOiA2MTIwLCAidmFsdWUiOiAwLjE2MzQ2NTI2MTQ1OTM1MDU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzOTUuNDUxOTk2MywgInN0ZXAiOiA2MTMwLCAidmFsdWUiOiAwLjIyODM4MzkyODUzNzM2ODc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MDguMTUxNzM1MywgInN0ZXAiOiA2MTQwLCAidmFsdWUiOiAwLjE1MjcwMzE2NjAwNzk5NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzQxNy4zMjQyMzEsICJzdGVwIjogNjE1MCwgInZhbHVlIjogMC4xODk1ODA3OTgxNDkxMDg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MjYuMjU3MzcsICJzdGVwIjogNjE2MCwgInZhbHVlIjogMC4xOTMwMTY2OTI5OTYwMjUwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDM0LjgwOTc5NSwgInN0ZXAiOiA2MTcwLCAidmFsdWUiOiAwLjE2ODM1NTc2Mjk1ODUyNjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ0NC41MTMxNjEyLCAic3RlcCI6IDYxODAsICJ2YWx1ZSI6IDAuMjA3MzEzODk1MjI1NTI0OX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDUzLjExNzA5OCwgInN0ZXAiOiA2MTkwLCAidmFsdWUiOiAwLjI0MTk4MDI2OTU1MTI3NzE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NjIuNTY2MDUyMiwgInN0ZXAiOiA2MjAwLCAidmFsdWUiOiAwLjE2MTcyOTcyMzIxNTEwMzE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NzIuMDI0OTc4LCAic3RlcCI6IDYyMTAsICJ2YWx1ZSI6IDAuMjMzNTU2MTUxMzkwMDc1Njh9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ4NC40NDg3ODg0LCAic3RlcCI6IDYyMjAsICJ2YWx1ZSI6IDAuMTk4NDM5Nzc2ODk3NDMwNDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ5My42NjAzNTkxLCAic3RlcCI6IDYyMzAsICJ2YWx1ZSI6IDAuMTkyOTU4OTM2MDk1MjM3NzN9LCB7IndhbGxUaW1lIjogMTczMzA3MzUwMi40NDE2MTQsICJzdGVwIjogNjI0MCwgInZhbHVlIjogMC4yMTM3ODY0NTMwMDg2NTE3M30sIHsid2FsbFRpbWUiOiAxNzMzMDczNTExLjI1NjYyMywgInN0ZXAiOiA2MjUwLCAidmFsdWUiOiAwLjIzNjY4NTUxNDQ1MDA3MzI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MjAuNDg1MzU2NiwgInN0ZXAiOiA2MjYwLCAidmFsdWUiOiAwLjE4NjA5MjgzODY0NDk4MTM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MjkuNzgxNzk4LCAic3RlcCI6IDYyNzAsICJ2YWx1ZSI6IDAuMjgwMTQwOTY2MTc2OTg2N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNTM5LjYzOTUyMDQsICJzdGVwIjogNjI4MCwgInZhbHVlIjogMC4yMzI2OTg5MDI0ODc3NTQ4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTQ4LjkxMTM1LCAic3RlcCI6IDYyOTAsICJ2YWx1ZSI6IDAuMjAyNDEwNjY4MTM0Njg5MzN9LCB7IndhbGxUaW1lIjogMTczMzA3MzU2MC42MjAxMzA4LCAic3RlcCI6IDYzMDAsICJ2YWx1ZSI6IDAuMjY1NTczNDQxOTgyMjY5M30sIHsid2FsbFRpbWUiOiAxNzMzMDczNTcwLjA2OTM2MiwgInN0ZXAiOiA2MzEwLCAidmFsdWUiOiAwLjE4ODc3MTI2Mjc2NDkzMDczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NzkuNDgxNDk0MiwgInN0ZXAiOiA2MzIwLCAidmFsdWUiOiAwLjI0NjE3MDg5MzMxMTUwMDU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1ODcuNjY3Njc2NCwgInN0ZXAiOiA2MzMwLCAidmFsdWUiOiAwLjE5MjMzMTQ5MjkwMDg0ODR9LCB7IndhbGxUaW1lIjogMTczMzA3MzU5Ny4yMTgyOTU2LCAic3RlcCI6IDYzNDAsICJ2YWx1ZSI6IDAuMjAzNTE1NzUzMTQ5OTg2Mjd9LCB7IndhbGxUaW1lIjogMTczMzA3MzYwNi4yMzg0OTUzLCAic3RlcCI6IDYzNTAsICJ2YWx1ZSI6IDAuMTk2NjI1NDI2NDExNjI4NzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzYxNS4wNzc5Nzg2LCAic3RlcCI6IDYzNjAsICJ2YWx1ZSI6IDAuMjk0NjIxNzY1NjEzNTU1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjI0LjgzNDg3MTUsICJzdGVwIjogNjM3MCwgInZhbHVlIjogMC4yNTE0ODg4NjQ0MjE4NDQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MzQuNjcyOTMsICJzdGVwIjogNjM4MCwgInZhbHVlIjogMC4yMzU0NTcxOTY4MzE3MDMxOX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjQ2LjUyODU2NjYsICJzdGVwIjogNjM5MCwgInZhbHVlIjogMC4yMDA5NDg1NjYxOTgzNDl9LCB7IndhbGxUaW1lIjogMTczMzA3MzY1NS43NDU4NTA2LCAic3RlcCI6IDY0MDAsICJ2YWx1ZSI6IDAuMjM1NDY1MjU4MzU5OTA5MDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzY2NS42MDc0OTU4LCAic3RlcCI6IDY0MTAsICJ2YWx1ZSI6IDAuMjI1MjU0MjM3NjUxODI0OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzY3NC42NDMxNjA2LCAic3RlcCI6IDY0MjAsICJ2YWx1ZSI6IDAuMjgzMTQ3MDY2ODMxNTg4NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MzY4My42NzA3MDg0LCAic3RlcCI6IDY0MzAsICJ2YWx1ZSI6IDAuMTY4NzI3ODQ0OTUzNTM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2OTIuODc3MTU1OCwgInN0ZXAiOiA2NDQwLCAidmFsdWUiOiAwLjI1NTYwMjU5ODE5MDMwNzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzcwMi41MTk1MTA1LCAic3RlcCI6IDY0NTAsICJ2YWx1ZSI6IDAuMTczODM5MDE3NzQ4ODMyN30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzEyLjYyNzY5OCwgInN0ZXAiOiA2NDYwLCAidmFsdWUiOiAwLjI1MzAwMTY4OTkxMDg4ODY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MjQuMDQ3ODgxNCwgInN0ZXAiOiA2NDcwLCAidmFsdWUiOiAwLjMxODUzODgxNDc4MzA5NjN9LCB7IndhbGxUaW1lIjogMTczMzA3MzczMi44Mjg3OTY2LCAic3RlcCI6IDY0ODAsICJ2YWx1ZSI6IDAuMjMzOTc1Mjc2MzUwOTc1MDR9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc0MS45NTc3NzEzLCAic3RlcCI6IDY0OTAsICJ2YWx1ZSI6IDAuMjEwNTYxMzk0NjkxNDY3Mjl9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc1MC43MTgwNTA3LCAic3RlcCI6IDY1MDAsICJ2YWx1ZSI6IDAuMjM3OTU1Njc0NTI5MDc1NjJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc2MC40ODg0ODM0LCAic3RlcCI6IDY1MTAsICJ2YWx1ZSI6IDAuMTUzMjU3NzI3NjIyOTg1ODR9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc2OS44NjM3NDU1LCAic3RlcCI6IDY1MjAsICJ2YWx1ZSI6IDAuMTczNjc2Njg0NDk4Nzg2OTN9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc3OS4xMjc0MjM4LCAic3RlcCI6IDY1MzAsICJ2YWx1ZSI6IDAuMTk4MzMzNDcyMDEzNDczNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzg5LjQ3ODA3ODYsICJzdGVwIjogNjU0MCwgInZhbHVlIjogMC4zMDk5MjE4MzA4OTI1NjI4N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzk4LjEwMzc0MiwgInN0ZXAiOiA2NTUwLCAidmFsdWUiOiAwLjMzMzk5MjI3MjYxNTQzMjc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MTAuNTUzMjY0NCwgInN0ZXAiOiA2NTYwLCAidmFsdWUiOiAwLjIyNjcwODIzMzM1NjQ3NTgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MjAuMDM2ODA2MywgInN0ZXAiOiA2NTcwLCAidmFsdWUiOiAwLjIwMjcwNDIzNTkxMTM2OTMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MjguMjM5MDExMywgInN0ZXAiOiA2NTgwLCAidmFsdWUiOiAwLjI2NDIzODc3NDc3NjQ1ODc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MzYuNzk4NjE4LCAic3RlcCI6IDY1OTAsICJ2YWx1ZSI6IDAuMTc0NDA2OTQ1NzA1NDEzODJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg0NS45ODc5MjMxLCAic3RlcCI6IDY2MDAsICJ2YWx1ZSI6IDAuMjE3MzQ3NzI2MjI1ODUyOTd9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg1NS4yNTI1NDA2LCAic3RlcCI6IDY2MTAsICJ2YWx1ZSI6IDAuMjA1MDc5ODk4MjM4MTgyMDd9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg2NC42OTQxMzA3LCAic3RlcCI6IDY2MjAsICJ2YWx1ZSI6IDAuMTkwNDQxOTgwOTU3OTg0OTJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg3My44MzUwNTQ2LCAic3RlcCI6IDY2MzAsICJ2YWx1ZSI6IDAuMjEyMjEyMzM5MDQzNjE3MjV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg4Ny41MjUwODM1LCAic3RlcCI6IDY2NDAsICJ2YWx1ZSI6IDAuMjU1MDA4OTM1OTI4MzQ0N30sIHsid2FsbFRpbWUiOiAxNzMzMDczODk3LjMzNDY1NCwgInN0ZXAiOiA2NjUwLCAidmFsdWUiOiAwLjIyNTg1OTg4MDQ0NzM4Nzd9LCB7IndhbGxUaW1lIjogMTczMzA3MzkwNi44NzcyNjk3LCAic3RlcCI6IDY2NjAsICJ2YWx1ZSI6IDAuMjIzMDAwMTgzNzAxNTE1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTE2LjM1MDc0NDUsICJzdGVwIjogNjY3MCwgInZhbHVlIjogMC4yNTQ4NjcyMjU4ODUzOTEyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTI1LjYxOTM0OTIsICJzdGVwIjogNjY4MCwgInZhbHVlIjogMC4xODc3OTUxNzcxMDIwODg5M30sIHsid2FsbFRpbWUiOiAxNzMzMDczOTM0LjkxNzM0NjUsICJzdGVwIjogNjY5MCwgInZhbHVlIjogMC4xNzYwNDc0NDQzNDM1NjY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5NDMuNzQyOTMwNywgInN0ZXAiOiA2NzAwLCAidmFsdWUiOiAwLjE2NjA2MTk2NzYxMTMxMjg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5NTIuNDc3Njc0MiwgInN0ZXAiOiA2NzEwLCAidmFsdWUiOiAwLjIzMDg0Nzg4MDI0NDI1NTA3fV19fV0=", + "ok": true, + "headers": [ + [ + "content-length", + "15035" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Loss/loss_bbox_aux_3%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIkxvc3MvbG9zc19iYm94X2F1eF8zIiwgInJ1blRvU2VyaWVzIjogeyIuIjogW3sid2FsbFRpbWUiOiAxNzMzMDY3NjMxLjUzODYxMzYsICJzdGVwIjogMCwgInZhbHVlIjogMS44NDQ4Nzc3MTk4NzkxNTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NDYuNjUyMDAyNiwgInN0ZXAiOiAxMCwgInZhbHVlIjogMi4wODAzNzI4MTAzNjM3Njk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NjAuNzgzOTkyOCwgInN0ZXAiOiAyMCwgInZhbHVlIjogMS44OTQxOTY4Njc5NDI4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njc0LjEzNzIzNTYsICJzdGVwIjogMzAsICJ2YWx1ZSI6IDEuODA2Mzg4ODU0OTgwNDY4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njg3LjA1NjkyMTUsICJzdGVwIjogNDAsICJ2YWx1ZSI6IDIuMDM4Mzg1MzkxMjM1MzUxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njk5LjQ5MjgwMDIsICJzdGVwIjogNTAsICJ2YWx1ZSI6IDEuMzA3NTkwMTI2OTkxMjcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MTAuNjI5MDk2NSwgInN0ZXAiOiA2MCwgInZhbHVlIjogMS42MzY0MzAxNDQzMDk5OTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MjIuNzU1MzAwOCwgInN0ZXAiOiA3MCwgInZhbHVlIjogMS40MDcyMjUyNTExOTc4MTV9LCB7IndhbGxUaW1lIjogMTczMzA2NzczMy43MjUxNDE1LCAic3RlcCI6IDgwLCAidmFsdWUiOiAwLjk0MTYyNjQyOTU1NzgwMDN9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc1MC45NDYwMzkyLCAic3RlcCI6IDkwLCAidmFsdWUiOiAxLjIzODI1NzQwODE0MjA4OTh9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc2MS45ODA2MTczLCAic3RlcCI6IDEwMCwgInZhbHVlIjogMS4wOTQyMjI1NDU2MjM3NzkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NzEuNjA2MTk2MiwgInN0ZXAiOiAxMTAsICJ2YWx1ZSI6IDAuNzI0NjA2OTkwODE0MjA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3ODAuNTQ3MTU3LCAic3RlcCI6IDEyMCwgInZhbHVlIjogMC42MTg2OTQxODYyMTA2MzIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3OTAuNDg1MTIxMywgInN0ZXAiOiAxMzAsICJ2YWx1ZSI6IDAuODEwOTUwMTAwNDIxOTA1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Nzk5LjEwNTQwNDYsICJzdGVwIjogMTQwLCAidmFsdWUiOiAwLjQzNjM2MTg3OTExMDMzNjN9LCB7IndhbGxUaW1lIjogMTczMzA2NzgwOS40NDQ0MDUsICJzdGVwIjogMTUwLCAidmFsdWUiOiAwLjY0MTk2NTc0Njg3OTU3NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzgxOC45MjA1MTU1LCAic3RlcCI6IDE2MCwgInZhbHVlIjogMC41OTQ2MzIxNDg3NDI2NzU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MzYuNjQ5MzAzMiwgInN0ZXAiOiAxNzAsICJ2YWx1ZSI6IDAuNDM4OTIyMjg2MDMzNjMwMzd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg0Ni4zOTA0MTI2LCAic3RlcCI6IDE4MCwgInZhbHVlIjogMC42NjQ4ODc1NDc0OTI5ODF9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg1NS42NjY1NTQyLCAic3RlcCI6IDE5MCwgInZhbHVlIjogMC40MzQwOTEzODkxNzkyMjk3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODY0Ljg4OTQxMTcsICJzdGVwIjogMjAwLCAidmFsdWUiOiAwLjc4MjE2MTM1NTAxODYxNTd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg3NC4wMDE1MjUsICJzdGVwIjogMjEwLCAidmFsdWUiOiAwLjYwMTUwNjExNDAwNjA0MjV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg4My43ODU3MTA2LCAic3RlcCI6IDIyMCwgInZhbHVlIjogMC40MDc1OTgyODY4NjcxNDE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4OTIuMTIyOTAzOCwgInN0ZXAiOiAyMzAsICJ2YWx1ZSI6IDAuNTA5MjQxNTgwOTYzMTM0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTAxLjA2OTE2NSwgInN0ZXAiOiAyNDAsICJ2YWx1ZSI6IDAuNTAxMzc2OTI2ODk4OTU2M30sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTEwLjA3NDY2NjcsICJzdGVwIjogMjUwLCAidmFsdWUiOiAwLjQ2OTEwMzAzODMxMTAwNDY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MjUuOTQ5NzkzOCwgInN0ZXAiOiAyNjAsICJ2YWx1ZSI6IDAuNzc0MjExNzY0MzM1NjMyM30sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTM1LjQ3NTMwMzYsICJzdGVwIjogMjcwLCAidmFsdWUiOiAwLjQzMjQ5ODUxNDY1MjI1MjJ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk0NC4wMTUxMjcyLCAic3RlcCI6IDI4MCwgInZhbHVlIjogMC40NzUxMzUyMDcxNzYyMDg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NTIuNTQ2MTkwNywgInN0ZXAiOiAyOTAsICJ2YWx1ZSI6IDAuNDcxNzU1MDI3NzcwOTk2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTYxLjAyNjQ5MDcsICJzdGVwIjogMzAwLCAidmFsdWUiOiAwLjMyNjc3NzYzNzAwNDg1MjN9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk3MC4xMzQzNzIyLCAic3RlcCI6IDMxMCwgInZhbHVlIjogMC41MzU1MTc5OTA1ODkxNDE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5ODAuMjI1NTAzNCwgInN0ZXAiOiAzMjAsICJ2YWx1ZSI6IDAuNDQ3ODE5NTYwNzY2MjIwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTg4LjgxNTgzNjIsICJzdGVwIjogMzMwLCAidmFsdWUiOiAwLjUzODA5NTQ3NDI0MzE2NDF9LCB7IndhbGxUaW1lIjogMTczMzA2ODAwNS4wOTAzODk1LCAic3RlcCI6IDM0MCwgInZhbHVlIjogMC40MTM3MTA5NTE4MDUxMTQ3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDE0LjA2NDk0NjcsICJzdGVwIjogMzUwLCAidmFsdWUiOiAwLjQwMDg3NjEwNDgzMTY5NTU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMjIuNTUyNzk1NiwgInN0ZXAiOiAzNjAsICJ2YWx1ZSI6IDAuNDYwNjQ4MTc5MDU0MjYwMjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODAzMS44MjQ0OTI1LCAic3RlcCI6IDM3MCwgInZhbHVlIjogMC40OTc3Mjg3MDU0MDYxODg5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDQwLjc4NzYxODQsICJzdGVwIjogMzgwLCAidmFsdWUiOiAwLjM2ODkyODc5MDA5MjQ2ODI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNTAuMTYwMDMzNywgInN0ZXAiOiAzOTAsICJ2YWx1ZSI6IDAuMzkyNTIxMTQyOTU5NTk0N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDU5LjEyNTkwOTMsICJzdGVwIjogNDAwLCAidmFsdWUiOiAwLjI5NzcyNjI0MzczNDM1OTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNjguMDg5OTM0LCAic3RlcCI6IDQxMCwgInZhbHVlIjogMC42Njg3MjIwOTMxMDUzMTYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwODQuODQzODMzNywgInN0ZXAiOiA0MjAsICJ2YWx1ZSI6IDAuMzg0NzMyNDI1MjEyODYwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDk0LjY2NjQ0NzksICJzdGVwIjogNDMwLCAidmFsdWUiOiAwLjUwMjYzNTI0MDU1NDgwOTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODEwMy43MDc5NTMyLCAic3RlcCI6IDQ0MCwgInZhbHVlIjogMC4zNDM1MjExNzc3Njg3MDczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMTIuNjk5NTc0NywgInN0ZXAiOiA0NTAsICJ2YWx1ZSI6IDAuNDI5ODY2MDE1OTExMTAyM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTIxLjUwMDk4OTQsICJzdGVwIjogNDYwLCAidmFsdWUiOiAwLjUzMzk1OTMyOTEyODI2NTR9LCB7IndhbGxUaW1lIjogMTczMzA2ODEzMC43Mjc3NTk4LCAic3RlcCI6IDQ3MCwgInZhbHVlIjogMC4zOTU3ODY3MzI0MzUyMjY0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTM5Ljg1NTc0NDQsICJzdGVwIjogNDgwLCAidmFsdWUiOiAwLjQwNDYwNDQwNTE2NDcxODYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxNDkuMzcwMTMyMiwgInN0ZXAiOiA0OTAsICJ2YWx1ZSI6IDAuNTMzNTY2NTM0NTE5MTk1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTU4LjA3MDEzOTYsICJzdGVwIjogNTAwLCAidmFsdWUiOiAwLjUyMTYwNzI3OTc3NzUyNjl9LCB7IndhbGxUaW1lIjogMTczMzA2ODE3NC4xMTUyMjYsICJzdGVwIjogNTEwLCAidmFsdWUiOiAwLjQ4MDQ2MzMyNTk3NzMyNTQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxODIuNzE5NzIzLCAic3RlcCI6IDUyMCwgInZhbHVlIjogMC4zNzkzMjc0MTY0MTk5ODI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxOTIuNDEzNzI2OCwgInN0ZXAiOiA1MzAsICJ2YWx1ZSI6IDAuNDAxNjQ1MDY0MzUzOTQyODd9LCB7IndhbGxUaW1lIjogMTczMzA2ODIwMS44MDgyNzQ3LCAic3RlcCI6IDU0MCwgInZhbHVlIjogMC4zOTEwNzgyOTMzMjM1MTY4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjEwLjY1NDY2ODYsICJzdGVwIjogNTUwLCAidmFsdWUiOiAwLjU5MTQ3MjU2NjEyNzc3NzF9LCB7IndhbGxUaW1lIjogMTczMzA2ODIyMC4xOTUyNzU4LCAic3RlcCI6IDU2MCwgInZhbHVlIjogMC43MjQ1OTg4ODQ1ODI1MTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMjkuMTU5NTE2MywgInN0ZXAiOiA1NzAsICJ2YWx1ZSI6IDAuMzE2MDg0Mzg0OTE4MjEyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjM4LjU5MTczMjcsICJzdGVwIjogNTgwLCAidmFsdWUiOiAwLjI5MjI3OTc1MDEwODcxODg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNTYuMDczNzExNCwgInN0ZXAiOiA1OTAsICJ2YWx1ZSI6IDAuNDIzNDk3NDk4MDM1NDMwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjY1LjQzMjA0NTIsICJzdGVwIjogNjAwLCAidmFsdWUiOiAwLjQ5OTg1MTk3MTg2NDcwMDN9LCB7IndhbGxUaW1lIjogMTczMzA2ODI3NC42NTY3MDMyLCAic3RlcCI6IDYxMCwgInZhbHVlIjogMC42NjMwMjgzNTk0MTMxNDd9LCB7IndhbGxUaW1lIjogMTczMzA2ODI4My43NzAyMjk2LCAic3RlcCI6IDYyMCwgInZhbHVlIjogMC41OTEyMDgzMzg3Mzc0ODc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyOTMuMzM0MzQ3LCAic3RlcCI6IDYzMCwgInZhbHVlIjogMC40NTYxMjQ2NjMzNTI5NjYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMDIuNjQ3MzY1MywgInN0ZXAiOiA2NDAsICJ2YWx1ZSI6IDAuMzgzMDY5MjQ3MDA3Mzd9LCB7IndhbGxUaW1lIjogMTczMzA2ODMxMS4zODgzNDY0LCAic3RlcCI6IDY1MCwgInZhbHVlIjogMC4zNDI3OTk0MjUxMjUxMjIwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzIwLjM5MDMzNjgsICJzdGVwIjogNjYwLCAidmFsdWUiOiAwLjQ1MjczMDUwNjY1ODU1NDF9LCB7IndhbGxUaW1lIjogMTczMzA2ODMyOC43MzE0Njk2LCAic3RlcCI6IDY3MCwgInZhbHVlIjogMC4zNjg3NTE4ODM1MDY3NzQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNDQuNDYxMzgzOCwgInN0ZXAiOiA2ODAsICJ2YWx1ZSI6IDAuMzk3ODM3ODc3MjczNTU5NTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODM1My43MTcxODY1LCAic3RlcCI6IDY5MCwgInZhbHVlIjogMC4zNTU3ODQ0NzU4MDMzNzUyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzYyLjA1ODE1MjIsICJzdGVwIjogNzAwLCAidmFsdWUiOiAwLjMzMDk5Mzc3MTU1MzAzOTU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNzEuMTA0Mjc2LCAic3RlcCI6IDcxMCwgInZhbHVlIjogMC41MjI0MTc2MDQ5MjMyNDgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzODAuNTMzNDE4MiwgInN0ZXAiOiA3MjAsICJ2YWx1ZSI6IDAuNDA3MDIxMDE1ODgyNDkyMDd9LCB7IndhbGxUaW1lIjogMTczMzA2ODM5MC4wODY5NjM3LCAic3RlcCI6IDczMCwgInZhbHVlIjogMC4zMTUxODQyOTUxNzc0NTk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzOTguNzIxMjc5NCwgInN0ZXAiOiA3NDAsICJ2YWx1ZSI6IDAuNDY0NTgzMjc3NzAyMzMxNTR9LCB7IndhbGxUaW1lIjogMTczMzA2ODQwNy4xMjQyNTgzLCAic3RlcCI6IDc1MCwgInZhbHVlIjogMC40MDkyNDE2NDY1MjgyNDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODQyMy4wNzEwODI4LCAic3RlcCI6IDc2MCwgInZhbHVlIjogMC40MTA4OTA5MDcwNDkxNzkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MzEuNDA1NjU5NywgInN0ZXAiOiA3NzAsICJ2YWx1ZSI6IDAuMzMwMjc0MjU0MDgzNjMzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDQwLjQyNTI0NTUsICJzdGVwIjogNzgwLCAidmFsdWUiOiAwLjM1NDE4MTI1OTg3MDUyOTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ0OS4wMDY4OTI0LCAic3RlcCI6IDc5MCwgInZhbHVlIjogMC4zNzUxMTQ2NDk1MzQyMjU0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDU3LjYzNzkwNTEsICJzdGVwIjogODAwLCAidmFsdWUiOiAwLjM5OTEzOTQwNDI5Njg3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDY3LjA0NzU1MjYsICJzdGVwIjogODEwLCAidmFsdWUiOiAwLjM4MDAzNDg2Mzk0ODgyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDc1LjYyMDc5NjQsICJzdGVwIjogODIwLCAidmFsdWUiOiAwLjM3MzcwNDEwNTYxNTYxNTg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0ODQuOTc5MzU5MSwgInN0ZXAiOiA4MzAsICJ2YWx1ZSI6IDAuMzc3MDk2MjM1NzUyMTA1N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTAwLjczMTk3ODcsICJzdGVwIjogODQwLCAidmFsdWUiOiAwLjQwNjMyMTUyNTU3MzczMDQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MDkuMzA4MjQ2OSwgInN0ZXAiOiA4NTAsICJ2YWx1ZSI6IDAuNDE3MzM0MjU4NTU2MzY1OTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODUxOS4wMjI2NzI0LCAic3RlcCI6IDg2MCwgInZhbHVlIjogMC40MTM5MjM4Mjk3OTM5MzAwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTI3LjQ5OTAzNzMsICJzdGVwIjogODcwLCAidmFsdWUiOiAwLjMzMTMyNjc4MjcwMzM5OTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MzYuOTIwNzg0MiwgInN0ZXAiOiA4ODAsICJ2YWx1ZSI6IDAuNDg0NzEyMTUzNjczMTcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NDQuOTA5MzE1LCAic3RlcCI6IDg5MCwgInZhbHVlIjogMC4zNTM2NTI4MzQ4OTIyNzI5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTUzLjU3OTYwMDMsICJzdGVwIjogOTAwLCAidmFsdWUiOiAwLjM3NTY2Mjk4MjQ2MzgzNjY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NjIuNjg2NTU2MywgInN0ZXAiOiA5MTAsICJ2YWx1ZSI6IDAuNDE1OTU1NzUyMTM0MzIzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTcxLjI0Njk0MDEsICJzdGVwIjogOTIwLCAidmFsdWUiOiAwLjM0MTI3NjY3NTQ2MjcyMjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODU4NC43NzY5OTE4LCAic3RlcCI6IDkzMCwgInZhbHVlIjogMC4zODY2MjU1ODc5NDAyMTYwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTkzLjc3MzM5NywgInN0ZXAiOiA5NDAsICJ2YWx1ZSI6IDAuMzcxNzI4ODM3NDkwMDgxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjAyLjc2NzQ0NTYsICJzdGVwIjogOTUwLCAidmFsdWUiOiAwLjQ1MjY3Njc0MzI2ODk2Njd9LCB7IndhbGxUaW1lIjogMTczMzA2ODYxMS4wNDE0NjMxLCAic3RlcCI6IDk2MCwgInZhbHVlIjogMC4yODY2MzQ0NzQ5OTI3NTIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MjAuMjI4MzExLCAic3RlcCI6IDk3MCwgInZhbHVlIjogMC4zMzUwNzY0MjE0OTkyNTIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MjguODQzNDI5LCAic3RlcCI6IDk4MCwgInZhbHVlIjogMC40MDYzNTQzMzc5MzA2NzkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MzcuNjMyMjAxNCwgInN0ZXAiOiA5OTAsICJ2YWx1ZSI6IDAuMzM1NzI2MTQxOTI5NjI2NDZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODY0Ni42NzQ4MTU0LCAic3RlcCI6IDEwMDAsICJ2YWx1ZSI6IDAuMzkyNTAwNDAwNTQzMjEyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjYyLjc1ODU3MjYsICJzdGVwIjogMTAxMCwgInZhbHVlIjogMC4yNTE3MjY5ODQ5Nzc3MjIxN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjcyLjA1NjMwMzUsICJzdGVwIjogMTAyMCwgInZhbHVlIjogMC4zMDE4NjA0ODE1MDA2MjU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2ODAuNTY0OTM4OCwgInN0ZXAiOiAxMDMwLCAidmFsdWUiOiAwLjMyOTE2NTMzOTQ2OTkwOTY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2OTAuMTg3ODU4NiwgInN0ZXAiOiAxMDQwLCAidmFsdWUiOiAwLjM1NzExNjIyMjM4MTU5MTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODY5OC44NTAyNjY3LCAic3RlcCI6IDEwNTAsICJ2YWx1ZSI6IDAuMzQwNDcyNDAwMTg4NDQ2MDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODcwNy43NDUzOCwgInN0ZXAiOiAxMDYwLCAidmFsdWUiOiAwLjc2MTcyMDE4MDUxMTQ3NDZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODcxNy4zNDY1OTI3LCAic3RlcCI6IDEwNzAsICJ2YWx1ZSI6IDAuMzM5ODU3MDcxNjM4MTA3M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzI2LjM2MzM2MTYsICJzdGVwIjogMTA4MCwgInZhbHVlIjogMC40MTgwMDIwMzkxOTQxMDcwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzM1LjI1Mzc4NDQsICJzdGVwIjogMTA5MCwgInZhbHVlIjogMC40NDg5Mjc5OTg1NDI3ODU2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzQ5LjU0OTkxOCwgInN0ZXAiOiAxMTAwLCAidmFsdWUiOiAwLjM1ODE4NzUyNjQ2NDQ2MjN9LCB7IndhbGxUaW1lIjogMTczMzA2ODc1OC4zNzczNzE1LCAic3RlcCI6IDExMTAsICJ2YWx1ZSI6IDAuNDQ3MjM4OTUxOTIxNDYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3NjcuMDA1ODQ4NiwgInN0ZXAiOiAxMTIwLCAidmFsdWUiOiAwLjUyNTk5MzgyNDAwNTEyN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4Nzc2LjYyMDgyMjcsICJzdGVwIjogMTEzMCwgInZhbHVlIjogMC40NjA4NTA0MTc2MTM5ODMxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Nzg1LjQwMzI0NiwgInN0ZXAiOiAxMTQwLCAidmFsdWUiOiAwLjI0MjI2MTAyMjMyOTMzMDQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3OTQuMjgwOTg0MiwgInN0ZXAiOiAxMTUwLCAidmFsdWUiOiAwLjQwNzcwNDk0OTM3ODk2NzN9LCB7IndhbGxUaW1lIjogMTczMzA2ODgwMi42OTkzMzEsICJzdGVwIjogMTE2MCwgInZhbHVlIjogMC4yNzUwODc2MjQ3ODgyODQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MTEuNTUzNjQxOCwgInN0ZXAiOiAxMTcwLCAidmFsdWUiOiAwLjM5MjIzNjUzMDc4MDc5MjI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MjQuOTY3Njg3LCAic3RlcCI6IDExODAsICJ2YWx1ZSI6IDAuMjI3NzIyMzkxNDg2MTY3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODM0LjM3OTE5MjYsICJzdGVwIjogMTE5MCwgInZhbHVlIjogMC4zNzA4MTAzNTk3MTY0MTU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NDMuNTE4MTQ4MiwgInN0ZXAiOiAxMjAwLCAidmFsdWUiOiAwLjQ1MjIzNzAxMDAwMjEzNjIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NTIuMjMwNDgxLCAic3RlcCI6IDEyMTAsICJ2YWx1ZSI6IDAuMzQ5Mjg2NTI2NDQxNTc0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODYxLjExODkzMzIsICJzdGVwIjogMTIyMCwgInZhbHVlIjogMC4zNjIwOTIzMTYxNTA2NjUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NzAuMDU3ODY5NywgInN0ZXAiOiAxMjMwLCAidmFsdWUiOiAwLjYzMzcyNjc3NTY0NjIwOTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODg3OC43MjIzNjU5LCAic3RlcCI6IDEyNDAsICJ2YWx1ZSI6IDAuNDI1MTU5MDA3MzEwODY3M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODg3Ljc0MDExNzUsICJzdGVwIjogMTI1MCwgInZhbHVlIjogMC4zMzI3ODAzNjExNzU1MzcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MDMuMTY4NzczNCwgInN0ZXAiOiAxMjYwLCAidmFsdWUiOiAwLjQ4MDEwOTAzNTk2ODc4MDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODkxMi40MTcwMDc0LCAic3RlcCI6IDEyNzAsICJ2YWx1ZSI6IDAuMjczMDEzMTc0NTMzODQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MjEuNDc1Mzc0LCAic3RlcCI6IDEyODAsICJ2YWx1ZSI6IDAuMzQ3MTg4ODYwMTc3OTkzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTI5Ljc0ODYzNDYsICJzdGVwIjogMTI5MCwgInZhbHVlIjogMC4zODI4MzQ4MjE5Mzk0Njg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MzkuNTAzMzUxLCAic3RlcCI6IDEzMDAsICJ2YWx1ZSI6IDAuMzM4MDU1Nzg5NDcwNjcyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTQ4LjkyOTcxNywgInN0ZXAiOiAxMzEwLCAidmFsdWUiOiAwLjM5NDQ2Mzc3NzU0MjExNDI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NTcuMjM2NDIxOCwgInN0ZXAiOiAxMzIwLCAidmFsdWUiOiAwLjQ4OTU5ODY5MTQ2MzQ3MDQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NjYuMDc5MDI0MywgInN0ZXAiOiAxMzMwLCAidmFsdWUiOiAwLjI4MjQ2MDQ4MDkyODQyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTc1LjU2NzE3MjgsICJzdGVwIjogMTM0MCwgInZhbHVlIjogMC41MzAyNjMxODU1MDEwOTg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5ODkuODAwMzYyMywgInN0ZXAiOiAxMzUwLCAidmFsdWUiOiAwLjM4NjE4OTY5OTE3Mjk3MzYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5OTguMjgzOTk1OSwgInN0ZXAiOiAxMzYwLCAidmFsdWUiOiAwLjI5MTEzMjE4MTg4Mjg1ODN9LCB7IndhbGxUaW1lIjogMTczMzA2OTAwNy4xNTA4NTM0LCAic3RlcCI6IDEzNzAsICJ2YWx1ZSI6IDAuMzUzMTk5OTU4ODAxMjY5NTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTAxNS45MjM0ODgxLCAic3RlcCI6IDEzODAsICJ2YWx1ZSI6IDAuMjAzMTMyNTk5NTkyMjA4ODZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTAyNS4zMDUyMjQyLCAic3RlcCI6IDEzOTAsICJ2YWx1ZSI6IDAuMzY2MTY2MDg1MDA0ODA2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDM0LjQ4MzM4OTYsICJzdGVwIjogMTQwMCwgInZhbHVlIjogMC4yNzIwMzA2NTE1NjkzNjY0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDQyLjc5NDkzMzMsICJzdGVwIjogMTQxMCwgInZhbHVlIjogMC40Mjc4OTg1ODU3OTYzNTYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNTIuMTM5NDYyLCAic3RlcCI6IDE0MjAsICJ2YWx1ZSI6IDAuMjU4NjkyMjM0NzU0NTYyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDY1LjAwMzUxNjIsICJzdGVwIjogMTQzMCwgInZhbHVlIjogMC4yOTkzOTQ3NTY1NTU1NTcyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDc0LjUyNTg3MDgsICJzdGVwIjogMTQ0MCwgInZhbHVlIjogMC4zMjEwMzQ2Njk4NzYwOTg2M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDgzLjc4NDQ0NywgInN0ZXAiOiAxNDUwLCAidmFsdWUiOiAwLjM4NDUzNTgxOTI5MjA2ODV9LCB7IndhbGxUaW1lIjogMTczMzA2OTA5Mi4yNjAxNTYyLCAic3RlcCI6IDE0NjAsICJ2YWx1ZSI6IDAuMjkyNzk4NzU3NTUzMTAwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTAxLjAzMTUyMjgsICJzdGVwIjogMTQ3MCwgInZhbHVlIjogMC4zNDM1MTIyOTY2NzY2MzU3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTA5LjkwNzM2NDgsICJzdGVwIjogMTQ4MCwgInZhbHVlIjogMC4zMDE3OTM5MzI5MTQ3MzM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMTkuMTE5NjYxNiwgInN0ZXAiOiAxNDkwLCAidmFsdWUiOiAwLjIzMjA4MzA1MjM5Njc3NDN9LCB7IndhbGxUaW1lIjogMTczMzA2OTEyOC40MTY5ODMxLCAic3RlcCI6IDE1MDAsICJ2YWx1ZSI6IDAuMzIzMzExMzI4ODg3OTM5NDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTEzNy42MDc1NjczLCAic3RlcCI6IDE1MTAsICJ2YWx1ZSI6IDAuNDU4NDQ3MjE3OTQxMjg0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTUwLjU0NDMyODUsICJzdGVwIjogMTUyMCwgInZhbHVlIjogMC4zOTY3MTkxNTc2OTU3NzAyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTU5Ljc1Nzg2MjMsICJzdGVwIjogMTUzMCwgInZhbHVlIjogMC40Mzk4Mzc4NzI5ODIwMjUxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTY4LjE3MTE0MTksICJzdGVwIjogMTU0MCwgInZhbHVlIjogMC4yMDA3OTI1ODA4NDI5NzE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxNzYuODQxNzM3LCAic3RlcCI6IDE1NTAsICJ2YWx1ZSI6IDAuNDMyNzUwNTIzMDkwMzYyNTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTE4NS44OTMwNjI2LCAic3RlcCI6IDE1NjAsICJ2YWx1ZSI6IDAuMjMzNzc0NjMyMjE1NDk5ODh9LCB7IndhbGxUaW1lIjogMTczMzA2OTE5NC45MjQ4MjEsICJzdGVwIjogMTU3MCwgInZhbHVlIjogMC4zODAxOTYxMjQzMTUyNjE4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjAzLjkxMzczNiwgInN0ZXAiOiAxNTgwLCAidmFsdWUiOiAwLjMxNDM5NzQ1NDI2MTc3OTh9LCB7IndhbGxUaW1lIjogMTczMzA2OTIxMi43MTY1NDUzLCAic3RlcCI6IDE1OTAsICJ2YWx1ZSI6IDAuMjYyOTg3NDA1MDYxNzIxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjI1LjUzNDY1NjgsICJzdGVwIjogMTYwMCwgInZhbHVlIjogMC4yODkyMTAzNzkxMjM2ODc3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjM1LjQ2NDYwMzcsICJzdGVwIjogMTYxMCwgInZhbHVlIjogMC40NDQ1ODY4NzMwNTQ1MDQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNDQuNjMwNjAzLCAic3RlcCI6IDE2MjAsICJ2YWx1ZSI6IDAuNDk4MTk5MTk0NjY5NzIzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjU0LjI3MjM5NjgsICJzdGVwIjogMTYzMCwgInZhbHVlIjogMC4zMzg3MTg3MTIzMjk4NjQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNjMuMDA2MDc1MSwgInN0ZXAiOiAxNjQwLCAidmFsdWUiOiAwLjI1NzkwNzI3MTM4NTE5Mjg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNzEuODY3NDM5NSwgInN0ZXAiOiAxNjUwLCAidmFsdWUiOiAwLjQ0MjA1NjYyNjA4MTQ2Njd9LCB7IndhbGxUaW1lIjogMTczMzA2OTI4MC41MTA2NTcsICJzdGVwIjogMTY2MCwgInZhbHVlIjogMC4yNzQ5MzEyNTIwMDI3MTYwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Mjg5LjY4MDQ5NTMsICJzdGVwIjogMTY3MCwgInZhbHVlIjogMC4zNzcxODI1NDMyNzc3NDA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMDMuNjEwNTM2MywgInN0ZXAiOiAxNjgwLCAidmFsdWUiOiAwLjQ4ODgyMDI1NDgwMjcwMzg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMTIuNDgwMzcyNCwgInN0ZXAiOiAxNjkwLCAidmFsdWUiOiAwLjM4NTc5OTY0NjM3NzU2MzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTMyMS44MzkzNzUzLCAic3RlcCI6IDE3MDAsICJ2YWx1ZSI6IDAuNDY0NDU5ODM2NDgzMDAxN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzMwLjM0ODc2MDQsICJzdGVwIjogMTcxMCwgInZhbHVlIjogMC4yOTY1Nzc3MjE4MzQxODI3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzM5LjI0NjAxMywgInN0ZXAiOiAxNzIwLCAidmFsdWUiOiAwLjIzMzg1MDcxNzU0NDU1NTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNDYuODU4MzQ4NiwgInN0ZXAiOiAxNzMwLCAidmFsdWUiOiAwLjI0NTc1NDgwODE4NzQ4NDc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNTUuNjU0MTI4NiwgInN0ZXAiOiAxNzQwLCAidmFsdWUiOiAwLjQ1NTc2NzMzMzUwNzUzNzg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNjQuNTEyODExNywgInN0ZXAiOiAxNzUwLCAidmFsdWUiOiAwLjM1ODc1ODA5MTkyNjU3NDd9LCB7IndhbGxUaW1lIjogMTczMzA2OTM3My43MzkzOTY2LCAic3RlcCI6IDE3NjAsICJ2YWx1ZSI6IDAuMzE5ODI3ODU0NjMzMzMxM30sIHsid2FsbFRpbWUiOiAxNzMzMDY5Mzg3LjU0MTgwNTUsICJzdGVwIjogMTc3MCwgInZhbHVlIjogMC4zMDg2MTQ1ODE4MjMzNDl9LCB7IndhbGxUaW1lIjogMTczMzA2OTM5Ni40NjgyODA2LCAic3RlcCI6IDE3ODAsICJ2YWx1ZSI6IDAuMjYyMzA0ODEyNjY5NzU0MDN9LCB7IndhbGxUaW1lIjogMTczMzA2OTQwNS45OTcwMjksICJzdGVwIjogMTc5MCwgInZhbHVlIjogMC4yMDMwNDQ4MDE5NTA0NTQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MTUuMDU0NTQsICJzdGVwIjogMTgwMCwgInZhbHVlIjogMC4yNTIwNzY0MTcyMDc3MTc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MjMuOTA4MjM4MiwgInN0ZXAiOiAxODEwLCAidmFsdWUiOiAwLjIxMjExNjU1NDM3OTQ2MzJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTQzMi41MzE4ODQ0LCAic3RlcCI6IDE4MjAsICJ2YWx1ZSI6IDAuNDE1OTAxMjQzNjg2Njc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NDEuMjE4NjEyMiwgInN0ZXAiOiAxODMwLCAidmFsdWUiOiAwLjMzNTMxNzMxMzY3MTExMjA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NTAuMDg4ODk4NywgInN0ZXAiOiAxODQwLCAidmFsdWUiOiAwLjI0MTA2NDkzNTkyMjYyMjY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NjMuMTA3Mzk2OCwgInN0ZXAiOiAxODUwLCAidmFsdWUiOiAwLjIzMzM3NzM2NzI1ODA3MTl9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ3MS41NzMzNjMzLCAic3RlcCI6IDE4NjAsICJ2YWx1ZSI6IDAuMjYwODk5NzIyNTc2MTQxMzZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ4MC40OTg1NzU0LCAic3RlcCI6IDE4NzAsICJ2YWx1ZSI6IDAuNTE5NTM3MDMxNjUwNTQzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDg5LjM4NTI1ODIsICJzdGVwIjogMTg4MCwgInZhbHVlIjogMC40MjA1NDA0NTIwMDM0Nzl9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ5Ny45NzcwNTQ4LCAic3RlcCI6IDE4OTAsICJ2YWx1ZSI6IDAuNDIyNjc2NjUyNjY5OTA2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTA2Ljc5NDYxNiwgInN0ZXAiOiAxOTAwLCAidmFsdWUiOiAwLjMxOTg0MDI4MjIwMTc2Njk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MTUuODI0OTg4NiwgInN0ZXAiOiAxOTEwLCAidmFsdWUiOiAwLjI0MzM2OTYzODkxOTgzMDMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MjQuNjM2ODQxLCAic3RlcCI6IDE5MjAsICJ2YWx1ZSI6IDAuMjg3NDQ4NzM0MDQ1MDI4N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTMzLjU0MjQzNzMsICJzdGVwIjogMTkzMCwgInZhbHVlIjogMC4yMTc1Mjk2Njk0MDQwMjk4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTUwLjQ3ODI2MTcsICJzdGVwIjogMTk0MCwgInZhbHVlIjogMC4zNzE0NDcyMDU1NDM1MTgwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTU4LjgyODI5OTUsICJzdGVwIjogMTk1MCwgInZhbHVlIjogMC4yNjE4NjQ1MTMxNTg3OTgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NjcuNzU4MTk2LCAic3RlcCI6IDE5NjAsICJ2YWx1ZSI6IDAuMjYwMjc3NjU4NzAwOTQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NzYuMzQ1NDc1NCwgInN0ZXAiOiAxOTcwLCAidmFsdWUiOiAwLjI2MzAyMTU1ODUyMzE3ODF9LCB7IndhbGxUaW1lIjogMTczMzA2OTU4NS41Mjk0NywgInN0ZXAiOiAxOTgwLCAidmFsdWUiOiAwLjQwNzgyMTk1MzI5NjY2MTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTU5NC4zNTA1MTc1LCAic3RlcCI6IDE5OTAsICJ2YWx1ZSI6IDAuMzg3NzUwNDE2OTk0MDk0ODV9LCB7IndhbGxUaW1lIjogMTczMzA2OTYwMi40MDE5NTE4LCAic3RlcCI6IDIwMDAsICJ2YWx1ZSI6IDAuNTc2MDk3NDI4Nzk4Njc1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjEwLjI1MDI1OTYsICJzdGVwIjogMjAxMCwgInZhbHVlIjogMC40NzEwOTc1NTg3MzY4MDExNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjI2LjY4NzEwMjYsICJzdGVwIjogMjAyMCwgInZhbHVlIjogMC40MDcyODgwNzQ0OTM0MDgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MzUuMDMxMTkzMywgInN0ZXAiOiAyMDMwLCAidmFsdWUiOiAwLjI3MTgyNjkyMjg5MzUyNDE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NDMuODIyODM1LCAic3RlcCI6IDIwNDAsICJ2YWx1ZSI6IDAuMjU0MTQzODYzOTE2Mzk3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjUyLjE5NDcxNDMsICJzdGVwIjogMjA1MCwgInZhbHVlIjogMC4yOTg4OTM3Nzk1MTYyMjAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NjAuNDUzNzI2LCAic3RlcCI6IDIwNjAsICJ2YWx1ZSI6IDAuNDI1NDQ1NDA3NjI5MDEzMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTY2OS41OTIzNCwgInN0ZXAiOiAyMDcwLCAidmFsdWUiOiAwLjMzNTg2NDQ1NDUwNzgyNzc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NzguNzc4NjI1NSwgInN0ZXAiOiAyMDgwLCAidmFsdWUiOiAwLjUyOTkwNDc4Mjc3MjA2NDJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTY4Ni45NDUwOTk0LCAic3RlcCI6IDIwOTAsICJ2YWx1ZSI6IDAuNDAwOTQ1Mzk1MjMxMjQ2OTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTcwMC42MDIzMSwgInN0ZXAiOiAyMTAwLCAidmFsdWUiOiAwLjMyNjE2MTExNjM2MTYxODA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MDguNzI2NTk1OSwgInN0ZXAiOiAyMTEwLCAidmFsdWUiOiAwLjI0MjEyNDAyMTA1MzMxNDJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTcxNy40NDg1MjQ3LCAic3RlcCI6IDIxMjAsICJ2YWx1ZSI6IDAuMjk4MzIzMjE0MDU0MTA3Njd9LCB7IndhbGxUaW1lIjogMTczMzA2OTcyNi4xNDE0OTA1LCAic3RlcCI6IDIxMzAsICJ2YWx1ZSI6IDAuMzA3NDQ2MjQxMzc4Nzg0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzM1LjAzODM1MDYsICJzdGVwIjogMjE0MCwgInZhbHVlIjogMC4zMzc4NDA2MTY3MDMwMzM0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzQzLjMwNjM2MDIsICJzdGVwIjogMjE1MCwgInZhbHVlIjogMC4yNzk0MzI2NTQzODA3OTgzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzUyLjUwMTA1NjQsICJzdGVwIjogMjE2MCwgInZhbHVlIjogMC4zMjQ0OTAwMTA3MzgzNzI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NjEuNDUxMjA1LCAic3RlcCI6IDIxNzAsICJ2YWx1ZSI6IDAuMzIwMjY5NjQ0MjYwNDA2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzcwLjQzMzM4NzUsICJzdGVwIjogMjE4MCwgInZhbHVlIjogMC4zOTMxMzgzNDkwNTYyNDM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3ODQuMzYzODE0NCwgInN0ZXAiOiAyMTkwLCAidmFsdWUiOiAwLjM2NTE5NzA5MjI5NDY5M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzkzLjEyMjcyMywgInN0ZXAiOiAyMjAwLCAidmFsdWUiOiAwLjE3NDE3ODAzNDA2NzE1MzkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MDEuNjM2MzI2MywgInN0ZXAiOiAyMjEwLCAidmFsdWUiOiAwLjI5MDg4MTU3NDE1MzkwMDE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MTAuNjA4MDk4NSwgInN0ZXAiOiAyMjIwLCAidmFsdWUiOiAwLjQxOTM3Mzc1MDY4NjY0NTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTgxOS4zNDIzMDE2LCAic3RlcCI6IDIyMzAsICJ2YWx1ZSI6IDAuMjU3NzM0NzE1OTM4NTY4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODI3LjMyNjI3NTgsICJzdGVwIjogMjI0MCwgInZhbHVlIjogMC4zOTExODQ4NjY0MjgzNzUyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODM1Ljg2ODEyMjgsICJzdGVwIjogMjI1MCwgInZhbHVlIjogMC4yODE0MDAyMzM1MDcxNTYzN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODQ0LjIzNjA1NzUsICJzdGVwIjogMjI2MCwgInZhbHVlIjogMC4zMjAxNzQ5MzI0Nzk4NTg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NTYuNzQ5MzEzNCwgInN0ZXAiOiAyMjcwLCAidmFsdWUiOiAwLjI2MDg2MzM2Mzc0MjgyODM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NjUuMjU3NzQ4LCAic3RlcCI6IDIyODAsICJ2YWx1ZSI6IDAuMjEzNDU2MTUzODY5NjI4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODc0LjAwNTkwNywgInN0ZXAiOiAyMjkwLCAidmFsdWUiOiAwLjE5MzI4NDIxMzU0MjkzODIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4ODEuNzgxNzY5OCwgInN0ZXAiOiAyMzAwLCAidmFsdWUiOiAwLjM3MzQwMDQ3OTU1NTEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4OTAuNDEzOTA5MiwgInN0ZXAiOiAyMzEwLCAidmFsdWUiOiAwLjI1NTUxOTUwOTMxNTQ5MDd9LCB7IndhbGxUaW1lIjogMTczMzA2OTg5OC44NzY2ODIzLCAic3RlcCI6IDIzMjAsICJ2YWx1ZSI6IDAuMjc0ODM1NTU2NzQ1NTI5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTA4LjMxNzc4MDUsICJzdGVwIjogMjMzMCwgInZhbHVlIjogMC4yNjg0NDA0NTUxOTgyODc5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTE3LjQxNTIxNSwgInN0ZXAiOiAyMzQwLCAidmFsdWUiOiAwLjM2NzUxODQ4NDU5MjQzNzc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MjUuODUwNjM3MiwgInN0ZXAiOiAyMzUwLCAidmFsdWUiOiAwLjIzMDc2MzI1NjU0OTgzNTJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTkzOC43MDI4NDg3LCAic3RlcCI6IDIzNjAsICJ2YWx1ZSI6IDAuMzQ0ODYxMDkwMTgzMjU4MDZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTk0Ny40MjYxNzMsICJzdGVwIjogMjM3MCwgInZhbHVlIjogMC4zNzMwNzM5OTUxMTMzNzI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NTYuMjA2NzQ4MiwgInN0ZXAiOiAyMzgwLCAidmFsdWUiOiAwLjQwNzAyOTkyNjc3Njg4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTY0LjI3NDc1NDUsICJzdGVwIjogMjM5MCwgInZhbHVlIjogMC4yOTYzMDM2ODk0Nzk4Mjc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NzMuMzI2MDk2LCAic3RlcCI6IDI0MDAsICJ2YWx1ZSI6IDAuMjI3NjI3NDcxMDg5MzYzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTgxLjQzMjEzNywgInN0ZXAiOiAyNDEwLCAidmFsdWUiOiAwLjI1NjkwNzk2OTcxMzIxMTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5OTAuMTM5NjgxLCAic3RlcCI6IDI0MjAsICJ2YWx1ZSI6IDAuMjgyNjUyNDA3ODg0NTk3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTk4Ljc5ODEsICJzdGVwIjogMjQzMCwgInZhbHVlIjogMC4zMDgwNTQ1MzY1ODEwMzk0M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDEyLjQ1NTczMTksICJzdGVwIjogMjQ0MCwgInZhbHVlIjogMC4yNzUwMTE5ODY0OTQwNjQzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDIxLjU5ODkxNDYsICJzdGVwIjogMjQ1MCwgInZhbHVlIjogMC4yNDc0MDIzOTk3NzgzNjYxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMzAuMTkwOTQwOSwgInN0ZXAiOiAyNDYwLCAidmFsdWUiOiAwLjI1OTE3MzM5MzI0OTUxMTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDAzOS4yMTkyOTM0LCAic3RlcCI6IDI0NzAsICJ2YWx1ZSI6IDAuMjg1MzMyMzIyMTIwNjY2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDQ4LjI2ODg4MzIsICJzdGVwIjogMjQ4MCwgInZhbHVlIjogMC4zNjAwMjA4NDYxMjg0NjM3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDU2LjE1NTY3MTgsICJzdGVwIjogMjQ5MCwgInZhbHVlIjogMC4zODc2NDY2NzUxMDk4NjMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNjQuNDUwNTY2OCwgInN0ZXAiOiAyNTAwLCAidmFsdWUiOiAwLjM1NDg5NDY2Nzg2Mzg0NTh9LCB7IndhbGxUaW1lIjogMTczMzA3MDA3Mi41NTA1NDU3LCAic3RlcCI6IDI1MTAsICJ2YWx1ZSI6IDAuMjQ1NTE2MDMxOTgwNTE0NTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDA4Ny42NTY3OTEsICJzdGVwIjogMjUyMCwgInZhbHVlIjogMC4yOTA5OTQxMzc1MjU1NTg0N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDk1LjQ0MTYyMTUsICJzdGVwIjogMjUzMCwgInZhbHVlIjogMC4yNjY5NjE0ODUxNDc0NzYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMDMuNzY4NzkyOSwgInN0ZXAiOiAyNTQwLCAidmFsdWUiOiAwLjI0MzYyNTY0MDg2OTE0MDYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMTMuMDQ5MTU3NiwgInN0ZXAiOiAyNTUwLCAidmFsdWUiOiAwLjIzOTc4Mzk4NzQwMjkxNTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMjEuMDM3NzQ5NSwgInN0ZXAiOiAyNTYwLCAidmFsdWUiOiAwLjI0NDg5NjQ4NjQwMTU1NzkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMjkuNTg0MzM0MSwgInN0ZXAiOiAyNTcwLCAidmFsdWUiOiAwLjI5OTE2MTk0MDgxMzA2NDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDEzOC4zNjA3MTIzLCAic3RlcCI6IDI1ODAsICJ2YWx1ZSI6IDAuMjY1MTA4Njc0NzY0NjMzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTQ3LjA4NzIwMzMsICJzdGVwIjogMjU5MCwgInZhbHVlIjogMC4zNDcwNjg0ODg1OTc4Njk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNTUuNDg2ODkwOCwgInN0ZXAiOiAyNjAwLCAidmFsdWUiOiAwLjQ0MjkwMzYwODA4MzcyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTcyLjU3NzIwMDcsICJzdGVwIjogMjYxMCwgInZhbHVlIjogMC4zMDcyMjk0Mjk0ODM0MTM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxODEuMjExMTM2NiwgInN0ZXAiOiAyNjIwLCAidmFsdWUiOiAwLjMzMDgwMDQ0Mzg4NzcxMDU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxODkuNjkyMzA3LCAic3RlcCI6IDI2MzAsICJ2YWx1ZSI6IDAuMjc2OTU1NjM0MzU1NTQ1MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDE5OC4zOTkwNjQ4LCAic3RlcCI6IDI2NDAsICJ2YWx1ZSI6IDAuMjY3NDYwMjI3MDEyNjM0M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjA2LjcwNzMxNDMsICJzdGVwIjogMjY1MCwgInZhbHVlIjogMC4yMTM2Mjg0MTEyOTMwMjk3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjE1LjU5OTYwOTEsICJzdGVwIjogMjY2MCwgInZhbHVlIjogMC4zMzQ1MDQ5MDIzNjI4MjM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMjQuMzE1ODY4OSwgInN0ZXAiOiAyNjcwLCAidmFsdWUiOiAwLjMyNzQzMjgxMTI2MDIyMzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDIzMy41MzkzMDk3LCAic3RlcCI6IDI2ODAsICJ2YWx1ZSI6IDAuMjgxMTQ2NjQ1NTQ1OTU5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjQ2Ljc1ODA4MDcsICJzdGVwIjogMjY5MCwgInZhbHVlIjogMC4yNTg5NDM4MjU5NjAxNTkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNTYuMDI4OTcxNCwgInN0ZXAiOiAyNzAwLCAidmFsdWUiOiAwLjM5NTMyMjYyMDg2ODY4Mjg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNjQuOTUwNzEzNiwgInN0ZXAiOiAyNzEwLCAidmFsdWUiOiAwLjI1OTU2OTEwODQ4NjE3NTU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNzMuODA0NjMsICJzdGVwIjogMjcyMCwgInZhbHVlIjogMC4zNDAyNTAyODM0Nzk2OTA1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjgyLjk1ODk5NzcsICJzdGVwIjogMjczMCwgInZhbHVlIjogMC4zMDEzNjAyNDk1MTkzNDgxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjkyLjI3NzgzODIsICJzdGVwIjogMjc0MCwgInZhbHVlIjogMC4yODg0NDEzMDAzOTIxNTA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMDAuMzM2NjkzMywgInN0ZXAiOiAyNzUwLCAidmFsdWUiOiAwLjI3NjAxNzA2OTgxNjU4OTM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMDkuNDEyMTA0OCwgInN0ZXAiOiAyNzYwLCAidmFsdWUiOiAwLjQyODg4MDU3MjMxOTAzMDc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMTcuNTMxNDIyNCwgInN0ZXAiOiAyNzcwLCAidmFsdWUiOiAwLjQwMzY0ODU4NTA4MTEwMDQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMzAuNDM2MDgxNiwgInN0ZXAiOiAyNzgwLCAidmFsdWUiOiAwLjMyNzU5MDEwNzkxNzc4NTY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMzkuODIyOTIyMiwgInN0ZXAiOiAyNzkwLCAidmFsdWUiOiAwLjI2MTYyNjEyNDM4MjAxOTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNDcuOTkzNDM2OCwgInN0ZXAiOiAyODAwLCAidmFsdWUiOiAwLjIwMzMxNTE5ODQyMTQ3ODI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNTYuODkyNDk1LCAic3RlcCI6IDI4MTAsICJ2YWx1ZSI6IDAuMjkzODAzOTg5ODg3MjM3NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDM2NS41NzY5NTEzLCAic3RlcCI6IDI4MjAsICJ2YWx1ZSI6IDAuMjY3OTc1MjQwOTQ1ODE2MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDM3NC4zOTMyOTQzLCAic3RlcCI6IDI4MzAsICJ2YWx1ZSI6IDAuMjcwMTE5MTYwNDEzNzQyMDd9LCB7IndhbGxUaW1lIjogMTczMzA3MDM4Mi40MjY5MzA3LCAic3RlcCI6IDI4NDAsICJ2YWx1ZSI6IDAuMzQyNjY4NTMzMzI1MTk1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzkwLjk0MTI4NTgsICJzdGVwIjogMjg1MCwgInZhbHVlIjogMC4yMzY5NTE4ODc2MDc1NzQ0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDA2LjY3ODY3NDcsICJzdGVwIjogMjg2MCwgInZhbHVlIjogMC4yNTE5Nzc1OTI3MDY2ODAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0MTUuMDg5OTQ2MywgInN0ZXAiOiAyODcwLCAidmFsdWUiOiAwLjI0NDM3ODQ3NzMzNDk3NjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDQyMi45MTk5NjI0LCAic3RlcCI6IDI4ODAsICJ2YWx1ZSI6IDAuMjMwMDY0NjMwNTA4NDIyODV9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzMS41MzczNzI2LCAic3RlcCI6IDI4OTAsICJ2YWx1ZSI6IDAuMjU2NDM5MzU3OTk1OTg2OTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzOS45ODA4OTEyLCAic3RlcCI6IDI5MDAsICJ2YWx1ZSI6IDAuMzI3NTY5ODEyNTM2MjM5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDQ4LjA4NTQ5MDIsICJzdGVwIjogMjkxMCwgInZhbHVlIjogMC40MTI2Njg0NjY1Njc5OTMxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDU3LjQyMzcwMjIsICJzdGVwIjogMjkyMCwgInZhbHVlIjogMC40NDA3Nzg0MzQyNzY1ODA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NjYuNzIyODc1NiwgInN0ZXAiOiAyOTMwLCAidmFsdWUiOiAwLjM3NzM1MjgwMzk0NTU0MTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ3OS4zMzI0ODksICJzdGVwIjogMjk0MCwgInZhbHVlIjogMC4zMDY3ODUwNDcwNTQyOTA3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDg4Ljc4MjI5NjQsICJzdGVwIjogMjk1MCwgInZhbHVlIjogMC4yODkwODIyODg3NDIwNjU0M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDk3LjIyNDgzNiwgInN0ZXAiOiAyOTYwLCAidmFsdWUiOiAwLjM2Njc1Mjk4MjEzOTU4NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDUwNS42MzM3OTUsICJzdGVwIjogMjk3MCwgInZhbHVlIjogMC4yNDIwMDIxMjk1NTQ3NDg1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTEzLjM1Mzg1MDEsICJzdGVwIjogMjk4MCwgInZhbHVlIjogMC4yMDQwMzc5MDQ3MzkzNzk4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTIyLjMwMTExNDgsICJzdGVwIjogMjk5MCwgInZhbHVlIjogMC4zNTY1NjMzODkzMDEzMDAwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTMwLjIxMjYyNDMsICJzdGVwIjogMzAwMCwgInZhbHVlIjogMC4xOTU4MzYyNzU4MTU5NjM3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTM4LjI5OTk1MDQsICJzdGVwIjogMzAxMCwgInZhbHVlIjogMC4zMDM5MjkwNjA2OTc1NTU1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTQ3LjQwMDIxNjgsICJzdGVwIjogMzAyMCwgInZhbHVlIjogMC4yNTA4OTY1NzMwNjY3MTE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NjQuMDUwNjk4OCwgInN0ZXAiOiAzMDMwLCAidmFsdWUiOiAwLjIzNjMyMTY1Nzg5NjA0MTg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NzIuMzY5NjU5LCAic3RlcCI6IDMwNDAsICJ2YWx1ZSI6IDAuMjM2NTMyMTgxNTAxMzg4NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDU4MC42NzA4NDksICJzdGVwIjogMzA1MCwgInZhbHVlIjogMC4yNzIxMzE3NDEwNDY5MDU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1ODguNjUzMTM4NCwgInN0ZXAiOiAzMDYwLCAidmFsdWUiOiAwLjI3MzcyMTQ1NjUyNzcwOTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1OTcuNDIwNTczNSwgInN0ZXAiOiAzMDcwLCAidmFsdWUiOiAwLjIzOTU3ODM1MTM3ODQ0MDg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MDYuMTM3MDc0LCAic3RlcCI6IDMwODAsICJ2YWx1ZSI6IDAuMzcyOTQzMTAzMzEzNDQ2MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDYxNC40Mzk0NjIyLCAic3RlcCI6IDMwOTAsICJ2YWx1ZSI6IDAuMzM3MDA1ODIzODUwNjMxN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjIzLjk5OTg4OCwgInN0ZXAiOiAzMTAwLCAidmFsdWUiOiAwLjI4MDEwNzI4OTU1MjY4ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDYzNy4yNTE5NDQ1LCAic3RlcCI6IDMxMTAsICJ2YWx1ZSI6IDAuMzQ0NDY1NDA0NzQ4OTE2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjQ1LjY4MTkwMzQsICJzdGVwIjogMzEyMCwgInZhbHVlIjogMC4yOTczNTgyMTQ4NTUxOTQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NTQuMjY5NDk1MiwgInN0ZXAiOiAzMTMwLCAidmFsdWUiOiAwLjI0MTUxMDEzNzkxNTYxMTI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NjMuMzIwMjU4NiwgInN0ZXAiOiAzMTQwLCAidmFsdWUiOiAwLjI0ODM4MDM5Mjc4OTg0MDd9LCB7IndhbGxUaW1lIjogMTczMzA3MDY3MS4xMTcwNDUsICJzdGVwIjogMzE1MCwgInZhbHVlIjogMC4zMzk2ODAxMzUyNTAwOTE1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjc5Ljc2NDUyNywgInN0ZXAiOiAzMTYwLCAidmFsdWUiOiAwLjM2OTMwNjY4MzU0MDM0NDI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2ODcuODQ0MjQ3LCAic3RlcCI6IDMxNzAsICJ2YWx1ZSI6IDAuMjUzNzA3Nzk2MzM1MjIwMzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDY5NS44NTQ3OTY2LCAic3RlcCI6IDMxODAsICJ2YWx1ZSI6IDAuMzIyODE2MDczODk0NTAwNzN9LCB7IndhbGxUaW1lIjogMTczMzA3MDcwNC42MjE0MTksICJzdGVwIjogMzE5MCwgInZhbHVlIjogMC4yNTI5NDI0MTMwOTE2NTk1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzE3LjEwNzgxMzEsICJzdGVwIjogMzIwMCwgInZhbHVlIjogMC4xOTg2OTg0NjEwNTU3NTU2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzI2LjA5NzYyOCwgInN0ZXAiOiAzMjEwLCAidmFsdWUiOiAwLjI5NDE5OTI4Nzg5MTM4Nzk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MzQuNzc2MTU3LCAic3RlcCI6IDMyMjAsICJ2YWx1ZSI6IDAuMTg0NjU3NDM5NTg5NTAwNDN9LCB7IndhbGxUaW1lIjogMTczMzA3MDc0NC40MTEzNDY3LCAic3RlcCI6IDMyMzAsICJ2YWx1ZSI6IDAuMjc5ODcxMzQ0NTY2MzQ1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzUyLjUwMDYxNCwgInN0ZXAiOiAzMjQwLCAidmFsdWUiOiAwLjQzODYwMDMwMTc0MjU1Mzd9LCB7IndhbGxUaW1lIjogMTczMzA3MDc2MS43MjAxMDksICJzdGVwIjogMzI1MCwgInZhbHVlIjogMC4zOTE0NTUxNDM2OTAxMDkyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzcwLjM3NTU2MTUsICJzdGVwIjogMzI2MCwgInZhbHVlIjogMC4yNzE1MDk5NzUxOTQ5MzEwM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzc5LjcyOTAzMywgInN0ZXAiOiAzMjcwLCAidmFsdWUiOiAwLjI1ODQxMDE4NTU3NTQ4NTIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3OTMuNjc3NDM0LCAic3RlcCI6IDMyODAsICJ2YWx1ZSI6IDAuMjM4MDM1MDgyODE3MDc3NjR9LCB7IndhbGxUaW1lIjogMTczMzA3MDgwMS44OTg5OTkyLCAic3RlcCI6IDMyOTAsICJ2YWx1ZSI6IDAuMzg2MjMwNzk2NTc1NTQ2MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDgxMC4xNjAwMjgsICJzdGVwIjogMzMwMCwgInZhbHVlIjogMC4zNDM1MjU1NTg3MTAwOTgyN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwODE4LjcyNTQ5ODcsICJzdGVwIjogMzMxMCwgInZhbHVlIjogMC4xNzg1NDg3ODMwNjM4ODg1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODI3LjAwNjI4NjksICJzdGVwIjogMzMyMCwgInZhbHVlIjogMC4yMjc5NDM1Njk0MjE3NjgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MzUuNTczNzc5OCwgInN0ZXAiOiAzMzMwLCAidmFsdWUiOiAwLjI3MTI4NzY0OTg2OTkxODh9LCB7IndhbGxUaW1lIjogMTczMzA3MDg0My45NzM4OTEsICJzdGVwIjogMzM0MCwgInZhbHVlIjogMC40MDU2NjUwOTk2MjA4MTkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NTMuMDkwNjg4NywgInN0ZXAiOiAzMzUwLCAidmFsdWUiOiAwLjMyMjAyNDU4MzgxNjUyODN9LCB7IndhbGxUaW1lIjogMTczMzA3MDg2NS40MTg1MTUyLCAic3RlcCI6IDMzNjAsICJ2YWx1ZSI6IDAuMjA3OTU3ODA0MjAzMDMzNDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDg3My42NjA2NjcyLCAic3RlcCI6IDMzNzAsICJ2YWx1ZSI6IDAuMjU4MjA3MTQyMzUzMDU3ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDg4My4zMzUwMjMyLCAic3RlcCI6IDMzODAsICJ2YWx1ZSI6IDAuMjM4Nzg1ODYyOTIyNjY4NDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDg5Mi4zNzYwNDE3LCAic3RlcCI6IDMzOTAsICJ2YWx1ZSI6IDAuMjcxNjEwOTc1MjY1NTAyOTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDkwMC43MjEzODYyLCAic3RlcCI6IDM0MDAsICJ2YWx1ZSI6IDAuMzEzMDQ5MDE4MzgzMDI2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTA4LjUwMzIxMjUsICJzdGVwIjogMzQxMCwgInZhbHVlIjogMC4yNzg1Nzg4NDc2NDY3MTMyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTE2LjY1NDc5ODMsICJzdGVwIjogMzQyMCwgInZhbHVlIjogMC4zNzIxNjM5MjE1OTQ2MTk3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTI1LjIwODM5MTQsICJzdGVwIjogMzQzMCwgInZhbHVlIjogMC4yNTY3ODYyMjcyMjYyNTczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MzMuODA5MjkyOCwgInN0ZXAiOiAzNDQwLCAidmFsdWUiOiAwLjIxMzI4NjcyNzY2Njg1NDg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NDcuNDc4Nzk1MywgInN0ZXAiOiAzNDUwLCAidmFsdWUiOiAwLjI0MDI0MDE1NjY1MDU0MzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDk1Ni4xODYzNTI3LCAic3RlcCI6IDM0NjAsICJ2YWx1ZSI6IDAuMjQ3NDQwMDQwMTExNTQxNzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDk2NC4yNjUzMzAzLCAic3RlcCI6IDM0NzAsICJ2YWx1ZSI6IDAuMjYzMDAzODg1NzQ2MDAyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTcyLjM4NTE1NDIsICJzdGVwIjogMzQ4MCwgInZhbHVlIjogMC4yNjg2MTE5Njc1NjM2MjkxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTgwLjY0NjE0NjgsICJzdGVwIjogMzQ5MCwgInZhbHVlIjogMC40NjA3NTM3MDkwNzc4MzUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5ODkuNjg2Nzg2NywgInN0ZXAiOiAzNTAwLCAidmFsdWUiOiAwLjI0MzU1OTc3NzczNjY2MzgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5OTcuNzg3NTcxNywgInN0ZXAiOiAzNTEwLCAidmFsdWUiOiAwLjIzMzAzNTY4MzYzMTg5Njk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMDYuMjcwNDQ5LCAic3RlcCI6IDM1MjAsICJ2YWx1ZSI6IDAuMzI0NTEwMzM1OTIyMjQxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDE4Ljg5NTEzLCAic3RlcCI6IDM1MzAsICJ2YWx1ZSI6IDAuMjQwMDk1NzA0NzkzOTMwMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTAyNy4xOTYyMjU2LCAic3RlcCI6IDM1NDAsICJ2YWx1ZSI6IDAuMTc3Nzg5OTExNjI3NzY5NDd9LCB7IndhbGxUaW1lIjogMTczMzA3MTAzNS4zMTk2MTQsICJzdGVwIjogMzU1MCwgInZhbHVlIjogMC4yNjMyOTIwNzQyMDM0OTEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNDMuNzQ0ODUzLCAic3RlcCI6IDM1NjAsICJ2YWx1ZSI6IDAuMjE5Njk0MTY3Mzc1NTY0NTh9LCB7IndhbGxUaW1lIjogMTczMzA3MTA1MS44NzEyNTQyLCAic3RlcCI6IDM1NzAsICJ2YWx1ZSI6IDAuMjg1OTkwOTUzNDQ1NDM0NTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTA2MC40OTUyMzIsICJzdGVwIjogMzU4MCwgInZhbHVlIjogMC4yNDczNjQ5MzgyNTkxMjQ3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDY4Ljg3ODU1ODQsICJzdGVwIjogMzU5MCwgInZhbHVlIjogMC4yNTY2MzA2ODg5MDU3MTU5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDc3LjcxMjA3MzgsICJzdGVwIjogMzYwMCwgInZhbHVlIjogMC4yNzgwMjU1MDc5MjY5NDA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwODYuMjExNTM0LCAic3RlcCI6IDM2MTAsICJ2YWx1ZSI6IDAuMjE2NTAwMjM3NTg0MTE0MDd9LCB7IndhbGxUaW1lIjogMTczMzA3MTEwMS42NTc4NDksICJzdGVwIjogMzYyMCwgInZhbHVlIjogMC4yMzg1MzE0NDA0OTY0NDQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMDkuNjE5OTk5LCAic3RlcCI6IDM2MzAsICJ2YWx1ZSI6IDAuMjgyNzE1NzY3NjIxOTk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMTguMTI4NDMyLCAic3RlcCI6IDM2NDAsICJ2YWx1ZSI6IDAuMjU0OTk4NTA1MTE1NTA5MDN9LCB7IndhbGxUaW1lIjogMTczMzA3MTEyNi45OTIzMTkzLCAic3RlcCI6IDM2NTAsICJ2YWx1ZSI6IDAuMjExOTg3Njc0MjM2Mjk3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTM1LjgyNjYxNTgsICJzdGVwIjogMzY2MCwgInZhbHVlIjogMC4zMTMwNzUwMzU4MTA0NzA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNDQuMjQ3NTE2OSwgInN0ZXAiOiAzNjcwLCAidmFsdWUiOiAwLjIyMTY3NDAxMDE1NzU4NTE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNTIuOTYzNjQyMSwgInN0ZXAiOiAzNjgwLCAidmFsdWUiOiAwLjI0MTQ4MTgxMDgwODE4MTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNjAuNjAyNjM1NiwgInN0ZXAiOiAzNjkwLCAidmFsdWUiOiAwLjI1NzMwMjEzNTIyOTExMDd9LCB7IndhbGxUaW1lIjogMTczMzA3MTE3My43NDk0OTcyLCAic3RlcCI6IDM3MDAsICJ2YWx1ZSI6IDAuMjYxMDY5MDI5NTY5NjI1ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MTE4Mi44ODI0NTg0LCAic3RlcCI6IDM3MTAsICJ2YWx1ZSI6IDAuMjY2MTM1NTQzNTg0ODIzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTkxLjIwOTI4NzQsICJzdGVwIjogMzcyMCwgInZhbHVlIjogMC4zMTMxODMwNjkyMjkxMjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTIwMC4zMzI2NjM4LCAic3RlcCI6IDM3MzAsICJ2YWx1ZSI6IDAuNTczNTg0MTM5MzQ3MDc2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjA4LjM2NDkzMSwgInN0ZXAiOiAzNzQwLCAidmFsdWUiOiAwLjI4MDQxNDg3OTMyMjA1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjE2LjU3MTEyOCwgInN0ZXAiOiAzNzUwLCAidmFsdWUiOiAwLjIwMTQ5ODg4MDk4MjM5OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjI0LjY2MTEzMywgInN0ZXAiOiAzNzYwLCAidmFsdWUiOiAwLjE2OTgzMTM5NTE0OTIzMDk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMzIuODU5OTI3LCAic3RlcCI6IDM3NzAsICJ2YWx1ZSI6IDAuMTYzNTkyMTc0NjQ5MjM4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjQ4LjUzMjYzMywgInN0ZXAiOiAzNzgwLCAidmFsdWUiOiAwLjM1NzAxMTMxODIwNjc4NzF9LCB7IndhbGxUaW1lIjogMTczMzA3MTI1Ny4zOTEwMTc0LCAic3RlcCI6IDM3OTAsICJ2YWx1ZSI6IDAuNDI0MzY1MDQzNjQwMTM2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjY1LjU2NjU2NDgsICJzdGVwIjogMzgwMCwgInZhbHVlIjogMC4xOTMzNzA1OTU1NzQzNzg5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjc0LjE5NzMxOTcsICJzdGVwIjogMzgxMCwgInZhbHVlIjogMC4zMDkzNTEyNjU0MzA0NTA0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjgzLjAxNzIwMTIsICJzdGVwIjogMzgyMCwgInZhbHVlIjogMC4yMjkwNzQ0OTMwNTA1NzUyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjkxLjcyOTA1NSwgInN0ZXAiOiAzODMwLCAidmFsdWUiOiAwLjE3NzAxNjQ5NjY1ODMyNTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTI5OS44OTIzODgzLCAic3RlcCI6IDM4NDAsICJ2YWx1ZSI6IDAuMjA3OTc2NjA5NDY4NDYwMDh9LCB7IndhbGxUaW1lIjogMTczMzA3MTMwOC40Nzg3NDkzLCAic3RlcCI6IDM4NTAsICJ2YWx1ZSI6IDAuMjg0NDgxMTA4MTg4NjI5MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTMxNi45NTA4MzA3LCAic3RlcCI6IDM4NjAsICJ2YWx1ZSI6IDAuMzA0OTE2Nzk5MDY4NDUwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzMwLjIxNDMzNTcsICJzdGVwIjogMzg3MCwgInZhbHVlIjogMC4yMjMzMzgzMDU5NTAxNjQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMzguOTg4MzEwMywgInN0ZXAiOiAzODgwLCAidmFsdWUiOiAwLjI0MDQ1NzgxNzkxMjEwMTc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNDcuNzM2MjQ2LCAic3RlcCI6IDM4OTAsICJ2YWx1ZSI6IDAuMjE1MTE3MTU2NTA1NTg0NzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTM1Ny4wMzM5OTcsICJzdGVwIjogMzkwMCwgInZhbHVlIjogMC4yMTYxOTcwNzM0NTk2MjUyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzY1LjIyNDkwNDUsICJzdGVwIjogMzkxMCwgInZhbHVlIjogMC4yOTUzMDcxMjk2MjE1MDU3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzc0LjEzNDIwMywgInN0ZXAiOiAzOTIwLCAidmFsdWUiOiAwLjQ1OTAyOTQwNjMwOTEyNzh9LCB7IndhbGxUaW1lIjogMTczMzA3MTM4Mi44MTMzOTY1LCAic3RlcCI6IDM5MzAsICJ2YWx1ZSI6IDAuMjk3OTgxMTQyOTk3NzQxN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzkxLjU2Nzk4OTYsICJzdGVwIjogMzk0MCwgInZhbHVlIjogMC4yNTU5MDQyNTcyOTc1MTU4N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDA0LjQ2NjgyODMsICJzdGVwIjogMzk1MCwgInZhbHVlIjogMC4yMzI3NTUzMzMxODUxOTU5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDEyLjMzODQ2MiwgInN0ZXAiOiAzOTYwLCAidmFsdWUiOiAwLjI1NTIzMTgyNzQ5NzQ4MjN9LCB7IndhbGxUaW1lIjogMTczMzA3MTQyMS4xNTcxNTc3LCAic3RlcCI6IDM5NzAsICJ2YWx1ZSI6IDAuMjczMTgzNDA1Mzk5MzIyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDMwLjEyMDE1MDYsICJzdGVwIjogMzk4MCwgInZhbHVlIjogMC4xOTQ3ODgwMzg3MzA2MjEzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDM4LjQxMzYxMiwgInN0ZXAiOiAzOTkwLCAidmFsdWUiOiAwLjM3MjQ2MzM0NTUyNzY0ODl9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ0Ny43Mjg0NTUzLCAic3RlcCI6IDQwMDAsICJ2YWx1ZSI6IDAuMzUzMjQ2Njg4ODQyNzczNDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ1Ni4xOTYyMzMsICJzdGVwIjogNDAxMCwgInZhbHVlIjogMC4yOTE3NDE1NDk5Njg3MTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NjQuNzQ5MDkwNywgInN0ZXAiOiA0MDIwLCAidmFsdWUiOiAwLjI0OTEzNzAxNDE1MDYxOTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ3My4zOTY4MzAzLCAic3RlcCI6IDQwMzAsICJ2YWx1ZSI6IDAuMzI1NjkxMDc0MTMyOTE5M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDkwLjI4NjA1MiwgInN0ZXAiOiA0MDQwLCAidmFsdWUiOiAwLjI0NzIxMTI5MjM4NjA1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDk4LjcxMTM4MTQsICJzdGVwIjogNDA1MCwgInZhbHVlIjogMC4yMzYzMDQ3MzAxNzY5MjU2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTA3LjA5NzIsICJzdGVwIjogNDA2MCwgInZhbHVlIjogMC4xOTE2NTQ2OTcwNjA1ODUwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTE1LjA2NzUwNTEsICJzdGVwIjogNDA3MCwgInZhbHVlIjogMC4yODU3MTI2ODkxNjEzMDA2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTIzLjg4MDkzMjYsICJzdGVwIjogNDA4MCwgInZhbHVlIjogMC4yNzE4NjA1Mzk5MTMxNzc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MzIuMjg1MTE3OSwgInN0ZXAiOiA0MDkwLCAidmFsdWUiOiAwLjE5NjUzMjI0OTQ1MDY4MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTU0MC45MTc0Nzg2LCAic3RlcCI6IDQxMDAsICJ2YWx1ZSI6IDAuMjE2NTYyMTY2ODEwMDM1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTQ5LjE3NjA0MTEsICJzdGVwIjogNDExMCwgInZhbHVlIjogMC4xODM0Nzk1NzczMDI5MzI3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTY1LjgzNTkwMiwgInN0ZXAiOiA0MTIwLCAidmFsdWUiOiAwLjIyNjAxNzU2NDUzNTE0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTczLjYzMTYxNjYsICJzdGVwIjogNDEzMCwgInZhbHVlIjogMC4xNjA3OTUyMTE3OTE5OTIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1ODIuMDk2MjI0NSwgInN0ZXAiOiA0MTQwLCAidmFsdWUiOiAwLjQxOTYxMDI2MTkxNzExNDI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1OTAuMDIyNzY2NiwgInN0ZXAiOiA0MTUwLCAidmFsdWUiOiAwLjE2MDg3MjA0MjE3OTEwNzY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1OTkuMjQxMDkxNSwgInN0ZXAiOiA0MTYwLCAidmFsdWUiOiAwLjcwOTMzNTY4NDc3NjMwNjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTYwOC4wNzE4MzcsICJzdGVwIjogNDE3MCwgInZhbHVlIjogMC4yNTM3OTE2MDA0NjU3NzQ1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjE2LjE4NDAwMzgsICJzdGVwIjogNDE4MCwgInZhbHVlIjogMC4zMTMwNjU2MTgyNzY1OTYwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjI2LjA4MzA3MzksICJzdGVwIjogNDE5MCwgInZhbHVlIjogMC4xNTk1NTUwMTc5NDgxNTA2M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjQxLjAwODI0NDgsICJzdGVwIjogNDIwMCwgInZhbHVlIjogMC4yNDUwMjQ1NjE4ODIwMTkwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjQ5LjA0MTAxMDQsICJzdGVwIjogNDIxMCwgInZhbHVlIjogMC4yMDE2MzEwMDk1Nzg3MDQ4M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjU4LjUzMTc2NywgInN0ZXAiOiA0MjIwLCAidmFsdWUiOiAwLjI3OTkzNzUwNTcyMjA0NTl9LCB7IndhbGxUaW1lIjogMTczMzA3MTY2Ny45NjY0NDY0LCAic3RlcCI6IDQyMzAsICJ2YWx1ZSI6IDAuMzIzODcyNTk2MDI1NDY2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjc2LjEwOTE1OTcsICJzdGVwIjogNDI0MCwgInZhbHVlIjogMC4yMDgzOTc4ODAxOTY1NzEzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjg0LjM3ODk2ODcsICJzdGVwIjogNDI1MCwgInZhbHVlIjogMC4zMTQwNjU5NjMwMjk4NjE0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjkzLjExMDA1MjMsICJzdGVwIjogNDI2MCwgInZhbHVlIjogMC4yODg5NTM2MzIxMTYzMTc3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzAyLjE4NDMxNjIsICJzdGVwIjogNDI3MCwgInZhbHVlIjogMC4yMTE1NTM0MDk2OTU2MjUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MTAuNjMwNzkzOCwgInN0ZXAiOiA0MjgwLCAidmFsdWUiOiAwLjMyMjE1NTY4NDIzMjcxMTh9LCB7IndhbGxUaW1lIjogMTczMzA3MTcyNi42NzcxNTcsICJzdGVwIjogNDI5MCwgInZhbHVlIjogMC4yNjM5MTc2NTQ3NTI3MzEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MzUuMjE2MDEwMywgInN0ZXAiOiA0MzAwLCAidmFsdWUiOiAwLjI2Njc0NzgzMjI5ODI3ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MTc0Mi45NTc1MjIyLCAic3RlcCI6IDQzMTAsICJ2YWx1ZSI6IDAuMjYyNTAxODY1NjI1MzgxNDd9LCB7IndhbGxUaW1lIjogMTczMzA3MTc1MS41ODYxNzA3LCAic3RlcCI6IDQzMjAsICJ2YWx1ZSI6IDAuNDI0NTYxMjMyMzI4NDE0OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzYwLjAzNTIxMjgsICJzdGVwIjogNDMzMCwgInZhbHVlIjogMC4yNzY0MjA4OTEyODQ5NDI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NjguNDMxNzc2OCwgInN0ZXAiOiA0MzQwLCAidmFsdWUiOiAwLjE4MDgwOTQyMzMyNzQ0NTk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NzcuNDAyNjAxNywgInN0ZXAiOiA0MzUwLCAidmFsdWUiOiAwLjI5Njk4NjIyMjI2NzE1MDl9LCB7IndhbGxUaW1lIjogMTczMzA3MTc4NS41NDc3OTcyLCAic3RlcCI6IDQzNjAsICJ2YWx1ZSI6IDAuMjczMjQ4NjcyNDg1MzUxNTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTgwMC44ODUyMDQsICJzdGVwIjogNDM3MCwgInZhbHVlIjogMC4zNTc5MzE1ODQxMTk3OTY3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODA5LjI2NjMxODgsICJzdGVwIjogNDM4MCwgInZhbHVlIjogMC4yNDIxNjkzMzU0ODQ1MDQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MTcuMzQ2ODY5MiwgInN0ZXAiOiA0MzkwLCAidmFsdWUiOiAwLjIwNTQxMjA4OTgyNDY3NjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTgyNi40MzA4Nzk2LCAic3RlcCI6IDQ0MDAsICJ2YWx1ZSI6IDAuMzA1NTM4NjI0NTI1MDcwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODM0Ljg4ODA1OTEsICJzdGVwIjogNDQxMCwgInZhbHVlIjogMC4yOTM0OTAyMzEwMzcxMzk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NDMuNDQ3MzM4NiwgInN0ZXAiOiA0NDIwLCAidmFsdWUiOiAwLjI1NzU0NDE4OTY5MTU0MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTg1MS41OTY0OSwgInN0ZXAiOiA0NDMwLCAidmFsdWUiOiAwLjI0NjM1MDQ2NzIwNTA0NzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTg1OS45MjQ1ODkyLCAic3RlcCI6IDQ0NDAsICJ2YWx1ZSI6IDAuMjU3OTgzMzg2NTE2NTcxMDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTg2OC42NzM2OTU4LCAic3RlcCI6IDQ0NTAsICJ2YWx1ZSI6IDAuMjQ1MTkwMTg4Mjg4Njg4NjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTg4MS4zMzY2MTI3LCAic3RlcCI6IDQ0NjAsICJ2YWx1ZSI6IDAuMjI2NjAyMzMwODAzODcxMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTg4OS42MzcxNDc0LCAic3RlcCI6IDQ0NzAsICJ2YWx1ZSI6IDAuMjM5MTIzNDc4NTMxODM3NDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTg5OC40MjEyODY4LCAic3RlcCI6IDQ0ODAsICJ2YWx1ZSI6IDAuMjY4MzMxNzY2MTI4NTQwMDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTkwNy4zMzY0NzA2LCAic3RlcCI6IDQ0OTAsICJ2YWx1ZSI6IDAuMjI4OTAzMzgzMDE2NTg2M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTE2LjI3ODY1ODYsICJzdGVwIjogNDUwMCwgInZhbHVlIjogMC4zMjg5NzI4MTY0NjcyODUxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTI1LjM0OTE0NTIsICJzdGVwIjogNDUxMCwgInZhbHVlIjogMC4zNjMyMzUyOTQ4MTg4NzgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5MzMuMzI5Nzg5NCwgInN0ZXAiOiA0NTIwLCAidmFsdWUiOiAwLjE1MjA0ODYxNzYwMTM5NDY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NDEuNDgzMTIxLCAic3RlcCI6IDQ1MzAsICJ2YWx1ZSI6IDAuMTY0NDMzODM2OTM2OTUwNjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTk1NC4xNjkzNjM1LCAic3RlcCI6IDQ1NDAsICJ2YWx1ZSI6IDAuMjMzODU1OTc3NjU0NDU3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTYyLjM5NjE4MDQsICJzdGVwIjogNDU1MCwgInZhbHVlIjogMC4xODgzMjg2Mzg2NzI4Mjg2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTcwLjUxMzc0ODQsICJzdGVwIjogNDU2MCwgInZhbHVlIjogMC4yNjQ4MTY2MTIwMDUyMzM3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTc4Ljg3MDMxNjcsICJzdGVwIjogNDU3MCwgInZhbHVlIjogMC4zNzA5OTQ1Njc4NzEwOTM3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTg3LjcxMDg2MzgsICJzdGVwIjogNDU4MCwgInZhbHVlIjogMC4yOTY2NjUyODEwNTczNTc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5OTYuNDQ1MDA2NCwgInN0ZXAiOiA0NTkwLCAidmFsdWUiOiAwLjM4NzUyODY1NzkxMzIwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDA0LjQ3NjI5MDcsICJzdGVwIjogNDYwMCwgInZhbHVlIjogMC4xOTI3NDY2MzkyNTE3MDg5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDEyLjc0NTAzMzcsICJzdGVwIjogNDYxMCwgInZhbHVlIjogMC4xODE1NjY1NjYyMjg4NjY1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDI1LjQwMDQyNTQsICJzdGVwIjogNDYyMCwgInZhbHVlIjogMC4xOTg5OTk5MjY0NDc4NjgzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDM0LjExODQ5ODgsICJzdGVwIjogNDYzMCwgInZhbHVlIjogMC4xODk2MTQzODUzNjY0Mzk4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDQzLjAzNzc1NzIsICJzdGVwIjogNDY0MCwgInZhbHVlIjogMC4zMTI2NDgxNDczNDQ1ODkyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDUxLjc4NTUzMzIsICJzdGVwIjogNDY1MCwgInZhbHVlIjogMC4yNTE5MDI1MjA2NTY1ODU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNjAuMTA4Mjg0NSwgInN0ZXAiOiA0NjYwLCAidmFsdWUiOiAwLjI0NDU0Njk5NDU2NjkxNzQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNjguNjAzMDU1NywgInN0ZXAiOiA0NjcwLCAidmFsdWUiOiAwLjI3Mjk3Njg3NTMwNTE3NTh9LCB7IndhbGxUaW1lIjogMTczMzA3MjA3Ni44MzY0MzgyLCAic3RlcCI6IDQ2ODAsICJ2YWx1ZSI6IDAuMjY4OTM3MDIxNDkzOTExNzR9LCB7IndhbGxUaW1lIjogMTczMzA3MjA4NS4zNzU4ODEyLCAic3RlcCI6IDQ2OTAsICJ2YWx1ZSI6IDAuMjg2ODA0MDgwMDA5NDYwNDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjA5My43NDgzMjc1LCAic3RlcCI6IDQ3MDAsICJ2YWx1ZSI6IDAuMjE0MTk4MjE2Nzk1OTIxMzN9LCB7IndhbGxUaW1lIjogMTczMzA3MjEwNi45ODk0MzksICJzdGVwIjogNDcxMCwgInZhbHVlIjogMC4yNTg3NjUzOTk0NTYwMjQxN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTE1LjY2NDkzOTQsICJzdGVwIjogNDcyMCwgInZhbHVlIjogMC40MTU5ODYwMDE0OTE1NDY2M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTIzLjk1MDM0NzQsICJzdGVwIjogNDczMCwgInZhbHVlIjogMC4zMjQxNDc3OTA2NzAzOTQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMzIuMjgwNDAxMiwgInN0ZXAiOiA0NzQwLCAidmFsdWUiOiAwLjIyODI1NTgyMzI1NDU4NTI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNDAuNDIwMzAyLCAic3RlcCI6IDQ3NTAsICJ2YWx1ZSI6IDAuMTk0MTcxODc1NzE1MjU1NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MjE0OS4wODY4ODMsICJzdGVwIjogNDc2MCwgInZhbHVlIjogMC4yMTM4MTU1NTQ5NzY0NjMzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTU3LjQxMTUzNjcsICJzdGVwIjogNDc3MCwgInZhbHVlIjogMC4yMzk3ODgyNzg5MzczMzk3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTY1LjQ4OTA0ODUsICJzdGVwIjogNDc4MCwgInZhbHVlIjogMC4yNzE1NDEwNTkwMTcxODE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNzkuNjQ4NTkzNywgInN0ZXAiOiA0NzkwLCAidmFsdWUiOiAwLjI1ODk4NjMyNDA3MTg4NDE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxODguMzI5Mzg4NCwgInN0ZXAiOiA0ODAwLCAidmFsdWUiOiAwLjE5NDExOTcyMTY1MTA3NzI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxOTYuODQ2NzExMiwgInN0ZXAiOiA0ODEwLCAidmFsdWUiOiAwLjI1OTIwNjIwNTYwNjQ2MDU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMDQuNTYxOTc2NywgInN0ZXAiOiA0ODIwLCAidmFsdWUiOiAwLjIwMzEwMTk2MjgwNDc5NDN9LCB7IndhbGxUaW1lIjogMTczMzA3MjIxMy4wOTkzNDg4LCAic3RlcCI6IDQ4MzAsICJ2YWx1ZSI6IDAuMzYwOTM0NDM2MzIxMjU4NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjIyMS42NjY3OTYsICJzdGVwIjogNDg0MCwgInZhbHVlIjogMC4yNjQ1NzMxODY2MzU5NzEwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjI5Ljg5MzY5MjMsICJzdGVwIjogNDg1MCwgInZhbHVlIjogMC4yMDM3MjYzNTEyNjExMzg5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjM4LjA1NTkzNDQsICJzdGVwIjogNDg2MCwgInZhbHVlIjogMC4yNDI5MDY1NzA0MzQ1NzAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNDYuMzQzMzA0NiwgInN0ZXAiOiA0ODcwLCAidmFsdWUiOiAwLjIwMDcxMjU5MTQwOTY4MzIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNjEuMjY3MDk3LCAic3RlcCI6IDQ4ODAsICJ2YWx1ZSI6IDAuMjI5NDUwNDk0MDUwOTc5NjF9LCB7IndhbGxUaW1lIjogMTczMzA3MjI2OS44NTIzMTExLCAic3RlcCI6IDQ4OTAsICJ2YWx1ZSI6IDAuMjIxMDI3MjU1MDU4Mjg4NTd9LCB7IndhbGxUaW1lIjogMTczMzA3MjI3OC44ODAxMDUzLCAic3RlcCI6IDQ5MDAsICJ2YWx1ZSI6IDAuMjg1MzU3MjY2NjY0NTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyODcuNTM0Mjg0NCwgInN0ZXAiOiA0OTEwLCAidmFsdWUiOiAwLjIwMTM3MTQ3NjA1NDE5MTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjI5NS45NDcwMzc1LCAic3RlcCI6IDQ5MjAsICJ2YWx1ZSI6IDAuMTc3ODY5OTYwNjY1NzAyODJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjMwNC4zNTUyMDg5LCAic3RlcCI6IDQ5MzAsICJ2YWx1ZSI6IDAuMjY1MTcwNjMzNzkyODc3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzEzLjUwOTcwOTQsICJzdGVwIjogNDk0MCwgInZhbHVlIjogMC4yNjM4NzAyMzkyNTc4MTI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMjEuMzI1MjAwNiwgInN0ZXAiOiA0OTUwLCAidmFsdWUiOiAwLjE4Nzk2NjYwMDA2MDQ2Mjk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMzcuMDI0ODI0MSwgInN0ZXAiOiA0OTYwLCAidmFsdWUiOiAwLjE2NDg5OTMxOTQxMDMyNDF9LCB7IndhbGxUaW1lIjogMTczMzA3MjM0NS41MzE3MTc4LCAic3RlcCI6IDQ5NzAsICJ2YWx1ZSI6IDAuMTc3MzA5MzM0Mjc4MTA2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzUzLjQyOTY5LCAic3RlcCI6IDQ5ODAsICJ2YWx1ZSI6IDAuMjI1Mzc5MzMyOTAwMDQ3M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzYyLjQxMzE5MDgsICJzdGVwIjogNDk5MCwgInZhbHVlIjogMC4yNDA4OTY5NDAyMzEzMjMyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzcxLjc0NTg4OSwgInN0ZXAiOiA1MDAwLCAidmFsdWUiOiAwLjIyOTIxODg3MDQwMTM4MjQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzODAuNTI5NjMxMSwgInN0ZXAiOiA1MDEwLCAidmFsdWUiOiAwLjI4OTk2ODkwNzgzMzA5OTM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzODkuMDI2NDE0NCwgInN0ZXAiOiA1MDIwLCAidmFsdWUiOiAwLjMwNDU5MTcxNTMzNTg0NTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzOTcuNzg1NTI4NywgInN0ZXAiOiA1MDMwLCAidmFsdWUiOiAwLjE5NjI3ODgxMDUwMTA5ODYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MTEuMjk4MjY1NywgInN0ZXAiOiA1MDQwLCAidmFsdWUiOiAwLjIxOTk1MjI4NTI4OTc2NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjQxOS40NzQwODEsICJzdGVwIjogNTA1MCwgInZhbHVlIjogMC4yMDY3Mjg3NDE1MjY2MDM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MjguMzcyMjI4LCAic3RlcCI6IDUwNjAsICJ2YWx1ZSI6IDAuMjg3NTU1MTg3OTQwNTk3NTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjQzNy4xMTY3MjM4LCAic3RlcCI6IDUwNzAsICJ2YWx1ZSI6IDAuMjY2MjU3NDM1MDgzMzg5M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDQ2LjE3NTI0MDUsICJzdGVwIjogNTA4MCwgInZhbHVlIjogMC4yOTAzODk2ODY4MjI4OTEyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDU0LjQyODU5MiwgInN0ZXAiOiA1MDkwLCAidmFsdWUiOiAwLjE5ODczMDY2MjQ2NTA5NTUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NjIuNDEwNTI2MywgInN0ZXAiOiA1MTAwLCAidmFsdWUiOiAwLjI0ODkwNjc5MTIxMDE3NDU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NzEuMTUwMTIwNywgInN0ZXAiOiA1MTEwLCAidmFsdWUiOiAwLjIxOTc1MzIyMDY3NzM3NTh9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ3OC45NDY1ODEsICJzdGVwIjogNTEyMCwgInZhbHVlIjogMC4zMDE1MzkzMzE2NzQ1NzU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0OTEuMzIxNjM0OCwgInN0ZXAiOiA1MTMwLCAidmFsdWUiOiAwLjMyNTU2MTE5NTYxMTk1Mzc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0OTkuMjU4NzQ3LCAic3RlcCI6IDUxNDAsICJ2YWx1ZSI6IDAuMTY4MzAyNjcwMTIxMTkyOTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjUwNy4xMTIwOTQsICJzdGVwIjogNTE1MCwgInZhbHVlIjogMC4yMTg4NDE0NjMzMjc0MDc4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTE1LjMxNzIyNzQsICJzdGVwIjogNTE2MCwgInZhbHVlIjogMC42MTY4ODM4NzM5Mzk1MTQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MjMuNTAwNDg2OSwgInN0ZXAiOiA1MTcwLCAidmFsdWUiOiAwLjI3NDEzNjkzMDcwNDExNjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjUzMS4wODcyNTg2LCAic3RlcCI6IDUxODAsICJ2YWx1ZSI6IDAuMTc0MTk3MzE2MTY5NzM4Nzd9LCB7IndhbGxUaW1lIjogMTczMzA3MjU0MC4wMjIyNzYsICJzdGVwIjogNTE5MCwgInZhbHVlIjogMC4yMzgxMDM3OTIwNzEzNDI0N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTQ4LjY1MjUwOSwgInN0ZXAiOiA1MjAwLCAidmFsdWUiOiAwLjI2NDYwNzE2MTI4MzQ5MzA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NjEuNDE1NjE5LCAic3RlcCI6IDUyMTAsICJ2YWx1ZSI6IDAuMjA5NTI3OTk5MTYyNjczOTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjU2OS44OTY3MDEzLCAic3RlcCI6IDUyMjAsICJ2YWx1ZSI6IDAuMjg5NjI0ODY5ODIzNDU1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTc4LjY3OTMzOCwgInN0ZXAiOiA1MjMwLCAidmFsdWUiOiAwLjI2NzA5NjYzODY3OTUwNDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjU4Ni45NDI2MDg2LCAic3RlcCI6IDUyNDAsICJ2YWx1ZSI6IDAuMjcyOTIyNDg2MDY2ODE4MjR9LCB7IndhbGxUaW1lIjogMTczMzA3MjU5NS4wMzQzMzMyLCAic3RlcCI6IDUyNTAsICJ2YWx1ZSI6IDAuMzM1NzM2NTQyOTQwMTM5Nzd9LCB7IndhbGxUaW1lIjogMTczMzA3MjYwMy4xNzM0MjIzLCAic3RlcCI6IDUyNjAsICJ2YWx1ZSI6IDAuMjQ2NTc5OTQ1MDg3NDMyODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjYxMS4wODAxODM3LCAic3RlcCI6IDUyNzAsICJ2YWx1ZSI6IDAuMjc1MjU3MjAwMDAyNjcwM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjE5Ljk1NTM0NywgInN0ZXAiOiA1MjgwLCAidmFsdWUiOiAwLjI0Mzk1MzY0NTIyOTMzOTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjYyOC42MzQ1Nzc4LCAic3RlcCI6IDUyOTAsICJ2YWx1ZSI6IDAuMjM5NjAzMTAyMjA3MTgzODR9LCB7IndhbGxUaW1lIjogMTczMzA3MjY0MS4zNzU1MTIxLCAic3RlcCI6IDUzMDAsICJ2YWx1ZSI6IDAuMjI1NjI0NDcxOTAyODQ3M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjQ5Ljg1ODI1NDcsICJzdGVwIjogNTMxMCwgInZhbHVlIjogMC4xNjYzNjkwOTU0NDQ2NzkyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjU3Ljk3MTI5NDksICJzdGVwIjogNTMyMCwgInZhbHVlIjogMC4xODI2ODMzMDM5NTIyMTcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NjcuMDI5NTExMiwgInN0ZXAiOiA1MzMwLCAidmFsdWUiOiAwLjI5NTM3MzE3MTU2NzkxNjg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NzUuOTQzMDUwMSwgInN0ZXAiOiA1MzQwLCAidmFsdWUiOiAwLjI0MDQxNjUyNjc5NDQzMzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjY4NC4yMzg0Mjg2LCAic3RlcCI6IDUzNTAsICJ2YWx1ZSI6IDAuMzcxNjQxMzk3NDc2MTk2M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjkxLjg1ODE1NTUsICJzdGVwIjogNTM2MCwgInZhbHVlIjogMC4yNDg4NTYyNzYyNzM3Mjc0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzAwLjE0ODAxMiwgInN0ZXAiOiA1MzcwLCAidmFsdWUiOiAwLjE4NjE0NjcyMTI0Mzg1ODM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MTMuMTgzMDYxNiwgInN0ZXAiOiA1MzgwLCAidmFsdWUiOiAwLjE4ODc0MzkzNDAzNTMwMTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjcyMS4wMjQ3MjE5LCAic3RlcCI6IDUzOTAsICJ2YWx1ZSI6IDAuMTY1MTUzMDU2MzgzMTMyOTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjcyOS44NzY5NTU1LCAic3RlcCI6IDU0MDAsICJ2YWx1ZSI6IDAuMjI1NjkyNTI1NTA2MDE5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzM4LjM2OTkxNTcsICJzdGVwIjogNTQxMCwgInZhbHVlIjogMC4xNzkxMzMyNTEzMDkzOTQ4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzQ2LjM4MjY5ODMsICJzdGVwIjogNTQyMCwgInZhbHVlIjogMC4yNDk4Nzc0NTI4NTAzNDE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3NTQuNjE3NjczNiwgInN0ZXAiOiA1NDMwLCAidmFsdWUiOiAwLjMxMzY5NTIyMjEzOTM1ODV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc2Mi41NDczMDUsICJzdGVwIjogNTQ0MCwgInZhbHVlIjogMC4xODc0ODA0NjQ1Nzc2NzQ4N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzcxLjM2MDYxOTUsICJzdGVwIjogNTQ1MCwgInZhbHVlIjogMC4yNDM5ODA1NzE2Mjc2MTY4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzg3LjE1MTcyMSwgInN0ZXAiOiA1NDYwLCAidmFsdWUiOiAwLjE3OTAxNDgwMTk3OTA2NDk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3OTUuODAyNzEsICJzdGVwIjogNTQ3MCwgInZhbHVlIjogMC4yNTA2MDMxOTkwMDUxMjY5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODA0LjI0MjAxMTUsICJzdGVwIjogNTQ4MCwgInZhbHVlIjogMC4xNjc1Njc4NDkxNTkyNDA3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODEyLjM3MzA5ODEsICJzdGVwIjogNTQ5MCwgInZhbHVlIjogMC4yNjQ2NTI1NTAyMjA0ODk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MjEuMTU5MjEyLCAic3RlcCI6IDU1MDAsICJ2YWx1ZSI6IDAuMjc0NzI0Mzk0MDgzMDIzMDd9LCB7IndhbGxUaW1lIjogMTczMzA3MjgzMC4wMjI2MjI4LCAic3RlcCI6IDU1MTAsICJ2YWx1ZSI6IDAuMjk0NTQxNjU2OTcwOTc3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODM4LjY5NTEwNDYsICJzdGVwIjogNTUyMCwgInZhbHVlIjogMC4yMDczMDM1NTM4MTk2NTYzN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyODQ2LjkwNDk1MzcsICJzdGVwIjogNTUzMCwgInZhbHVlIjogMC4xNjk2NjU5NDc1NTY0OTU2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyODU1LjI0NjU4NTYsICJzdGVwIjogNTU0MCwgInZhbHVlIjogMC4xOTc1NDE1MDUwOTgzNDI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NzAuNjQ0NjIzMywgInN0ZXAiOiA1NTUwLCAidmFsdWUiOiAwLjI4MzM2MjI2OTQwMTU1MDN9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg3OC43Mjk1NzU2LCAic3RlcCI6IDU1NjAsICJ2YWx1ZSI6IDAuMjc1MzQzNjI2NzM3NTk0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODg2LjYxMDkyMTQsICJzdGVwIjogNTU3MCwgInZhbHVlIjogMC4yMzMyNjI4MDcxMzA4MTM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4OTUuMDIwODQ5NywgInN0ZXAiOiA1NTgwLCAidmFsdWUiOiAwLjg1NjA1NjUxMTQwMjEzMDF9LCB7IndhbGxUaW1lIjogMTczMzA3MjkwMy40MDI3MzIxLCAic3RlcCI6IDU1OTAsICJ2YWx1ZSI6IDAuMjA4NTc1MzUzMDI2MzkwMDh9LCB7IndhbGxUaW1lIjogMTczMzA3MjkxMS4yMDk3Njc2LCAic3RlcCI6IDU2MDAsICJ2YWx1ZSI6IDAuMzA4Nzc5NDQ4MjcwNzk3NzN9LCB7IndhbGxUaW1lIjogMTczMzA3MjkxOS44Mzk3MDQ1LCAic3RlcCI6IDU2MTAsICJ2YWx1ZSI6IDAuMjU5OTA3NzUyMjc1NDY2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTI4LjczMjgwMTQsICJzdGVwIjogNTYyMCwgInZhbHVlIjogMC4zNjg2MzA5MTU4ODAyMDMyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTQxLjcwMzQ0OTUsICJzdGVwIjogNTYzMCwgInZhbHVlIjogMC4yMDMyNjgxMTA3NTIxMDU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NDkuOTc5ODY2NywgInN0ZXAiOiA1NjQwLCAidmFsdWUiOiAwLjIzMzgyMDQ1MzI4NjE3MDk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NTguNzE5NzE2MywgInN0ZXAiOiA1NjUwLCAidmFsdWUiOiAwLjMyNDgxMDI2NjQ5NDc1MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTY2LjgxNDUwMjcsICJzdGVwIjogNTY2MCwgInZhbHVlIjogMC4yMDI5NDgxMzgxMTc3OTAyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTc0Ljk2MTkyODYsICJzdGVwIjogNTY3MCwgInZhbHVlIjogMC4xODUxMjUzNTA5NTIxNDg0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTgzLjU2MTczOTQsICJzdGVwIjogNTY4MCwgInZhbHVlIjogMC4yMzAxNTk0NzYzOTk0MjE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5OTIuMjI4MzYyOCwgInN0ZXAiOiA1NjkwLCAidmFsdWUiOiAwLjI1MDk3NDIzNzkxODg1Mzc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMDAuODE2OTM1OCwgInN0ZXAiOiA1NzAwLCAidmFsdWUiOiAwLjE5ODA2MjA2MjI2MzQ4ODc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMDkuNzgzMDQ2NywgInN0ZXAiOiA1NzEwLCAidmFsdWUiOiAwLjI0MDUxODc2MzY2MTM4NDU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMjIuODY3OTcyNCwgInN0ZXAiOiA1NzIwLCAidmFsdWUiOiAwLjM2NTgyODc1MjUxNzcwMDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzAzMS41MzQzMTEsICJzdGVwIjogNTczMCwgInZhbHVlIjogMC4yODg5MTcyNDM0ODA2ODI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMzkuNTcwNzM5NSwgInN0ZXAiOiA1NzQwLCAidmFsdWUiOiAwLjI0NDA0NTAxOTE0OTc4MDI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNDcuODQyNzIyNCwgInN0ZXAiOiA1NzUwLCAidmFsdWUiOiAwLjIzNzc3MjUzOTI1ODAwMzIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNTYuMTU2MzM2LCAic3RlcCI6IDU3NjAsICJ2YWx1ZSI6IDAuMTg0MTk4Nzk2NzQ5MTE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNjQuOTU0ODkzNiwgInN0ZXAiOiA1NzcwLCAidmFsdWUiOiAwLjMzOTk4NzMwNzc4Njk0MTUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNzMuODM3NDgxMywgInN0ZXAiOiA1NzgwLCAidmFsdWUiOiAwLjIyMTk3MjQzNTcxMjgxNDMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwODIuNzI0ODg3NiwgInN0ZXAiOiA1NzkwLCAidmFsdWUiOiAwLjMxNzU0NDU3OTUwNTkyMDR9LCB7IndhbGxUaW1lIjogMTczMzA3MzA5NS4xMDI4MTAxLCAic3RlcCI6IDU4MDAsICJ2YWx1ZSI6IDAuMjE4NDgwNDUyODk1MTY0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTAzLjMxNTU3NTYsICJzdGVwIjogNTgxMCwgInZhbHVlIjogMC4yNDU4MzA1OTU0OTMzMTY2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTExLjk3MDQ2MDcsICJzdGVwIjogNTgyMCwgInZhbHVlIjogMC4xNjIzNDAwMzAwNzQxMTk1N30sIHsid2FsbFRpbWUiOiAxNzMzMDczMTIwLjM1NTk1NTYsICJzdGVwIjogNTgzMCwgInZhbHVlIjogMC4zMDUxMzczNjYwNTY0NDIyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTI4LjIwOTA3NjQsICJzdGVwIjogNTg0MCwgInZhbHVlIjogMC4yMDEyNDUwMDk4OTkxMzk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMzYuNzE1NTUzNSwgInN0ZXAiOiA1ODUwLCAidmFsdWUiOiAwLjE2Nzk2Nzg1NTkzMDMyODM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNDQuOTI3Njg5MywgInN0ZXAiOiA1ODYwLCAidmFsdWUiOiAwLjI1MTA4Mjk4NjU5MzI0NjQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNTMuMDQxMTUwOCwgInN0ZXAiOiA1ODcwLCAidmFsdWUiOiAwLjE1NjY1Mjg1Mjg5Mjg3NTY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNjYuMDAyOTM5NSwgInN0ZXAiOiA1ODgwLCAidmFsdWUiOiAwLjE5MDY1MTg3ODcxNDU2MTQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNzQuNjU4ODg4MywgInN0ZXAiOiA1ODkwLCAidmFsdWUiOiAwLjE1NDk2NzE0NDEzMTY2MDQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxODIuNTA4MTk1LCAic3RlcCI6IDU5MDAsICJ2YWx1ZSI6IDAuMjI2NzY4NDc4NzUxMTgyNTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzE5MS41NTk0MjM0LCAic3RlcCI6IDU5MTAsICJ2YWx1ZSI6IDAuMTg2MTM0MzM4Mzc4OTA2MjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzE5OS40MTEzMTg1LCAic3RlcCI6IDU5MjAsICJ2YWx1ZSI6IDAuMTAzODU1NzI5MTAzMDg4Mzh9LCB7IndhbGxUaW1lIjogMTczMzA3MzIwNy40NjU0NDUsICJzdGVwIjogNTkzMCwgInZhbHVlIjogMC4yMzMwODc1MjQ3NzE2OTAzN30sIHsid2FsbFRpbWUiOiAxNzMzMDczMjE1LjYwMjgxMDYsICJzdGVwIjogNTk0MCwgInZhbHVlIjogMC4yMDc5OTY5MzQ2NTIzMjg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMjQuMzU4MTAxNiwgInN0ZXAiOiA1OTUwLCAidmFsdWUiOiAwLjIwMTcyNjU3MDcyNTQ0MDk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMzIuODc3MDI2NiwgInN0ZXAiOiA1OTYwLCAidmFsdWUiOiAwLjI4MTY4NTIzMzExNjE0OTl9LCB7IndhbGxUaW1lIjogMTczMzA3MzI0NS4zNzM3MjQ3LCAic3RlcCI6IDU5NzAsICJ2YWx1ZSI6IDAuMTk5MDI3OTQwNjMwOTEyNzh9LCB7IndhbGxUaW1lIjogMTczMzA3MzI1My4xNzk1MjQyLCAic3RlcCI6IDU5ODAsICJ2YWx1ZSI6IDAuMjQ1ODkwNTU3NzY1OTYwN30sIHsid2FsbFRpbWUiOiAxNzMzMDczMjYxLjc5OTgxMzMsICJzdGVwIjogNTk5MCwgInZhbHVlIjogMC4yMjA3OTE5MzU5MjA3MTUzM30sIHsid2FsbFRpbWUiOiAxNzMzMDczMjcwLjA1OTg1NzEsICJzdGVwIjogNjAwMCwgInZhbHVlIjogMC4yMTY0MTAyMTk2NjkzNDIwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjc4Ljg5NTg1MzUsICJzdGVwIjogNjAxMCwgInZhbHVlIjogMC4zNjIzMDMyMjcxODYyMDN9LCB7IndhbGxUaW1lIjogMTczMzA3MzI4Ny42ODIyMzMsICJzdGVwIjogNjAyMCwgInZhbHVlIjogMC4yNDk2ODkyODA5ODY3ODU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyOTcuMjc0NTYxNiwgInN0ZXAiOiA2MDMwLCAidmFsdWUiOiAwLjM4ODgyNTcxNDU4ODE2NTN9LCB7IndhbGxUaW1lIjogMTczMzA3MzMwNS45MTg0MDgyLCAic3RlcCI6IDYwNDAsICJ2YWx1ZSI6IDAuMjk3MjU0MDI1OTM2MTI2N30sIHsid2FsbFRpbWUiOiAxNzMzMDczMzIyLjM1NDgxMDcsICJzdGVwIjogNjA1MCwgInZhbHVlIjogMC4yMTUzMTg2NTAwMDcyNDc5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzMxLjk3NzQxNjMsICJzdGVwIjogNjA2MCwgInZhbHVlIjogMC4xNTk1OTA3ODA3MzUwMTU4N30sIHsid2FsbFRpbWUiOiAxNzMzMDczMzQwLjUyMjMwMjYsICJzdGVwIjogNjA3MCwgInZhbHVlIjogMC4xODcyOTg0MTcwOTEzNjk2M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMzQ5LjYwMjE0MDQsICJzdGVwIjogNjA4MCwgInZhbHVlIjogMC4yOTk1Nzg5MzQ5MDc5MTMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNTkuMDcxMzcwOCwgInN0ZXAiOiA2MDkwLCAidmFsdWUiOiAwLjE4NjI4Nzg5NDg0NTAwODg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNjguNDAzMDkyNCwgInN0ZXAiOiA2MTAwLCAidmFsdWUiOiAwLjIzMDIxMzk0MDE0MzU4NTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzM3Ny42NzUxNTIsICJzdGVwIjogNjExMCwgInZhbHVlIjogMC4yNDMxMTQ4MjkwNjM0MTU1M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMzg2LjQwMDUxNDEsICJzdGVwIjogNjEyMCwgInZhbHVlIjogMC4xNjM0NDU2MjE3Mjg4OTcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzOTUuNDUxNjU0MiwgInN0ZXAiOiA2MTMwLCAidmFsdWUiOiAwLjIyODI3MTc2NzQ5NzA2MjY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MDguMTUxNDAyLCAic3RlcCI6IDYxNDAsICJ2YWx1ZSI6IDAuMTUzMTE5NjUzNDYzMzYzNjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzQxNy4zMjM4ODUsICJzdGVwIjogNjE1MCwgInZhbHVlIjogMC4xODk3Njg3NjEzOTY0MDgwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDI2LjI1NjgwNiwgInN0ZXAiOiA2MTYwLCAidmFsdWUiOiAwLjE5MzEzMjI4MTMwMzQwNTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MzQuODA5NDM1MSwgInN0ZXAiOiA2MTcwLCAidmFsdWUiOiAwLjE2ODM2MTE0MjI3NzcxNzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ0NC41MTI4Mjk4LCAic3RlcCI6IDYxODAsICJ2YWx1ZSI6IDAuMjA3MzI3ODEyOTEwMDc5OTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ1My4xMTY1MTU0LCAic3RlcCI6IDYxOTAsICJ2YWx1ZSI6IDAuMjQyMDAyMjE4OTYxNzE1N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNDYyLjU2NTcxNTMsICJzdGVwIjogNjIwMCwgInZhbHVlIjogMC4xNjE3NTg0Mzc3NTI3MjM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NzIuMDI0NTU0NSwgInN0ZXAiOiA2MjEwLCAidmFsdWUiOiAwLjIzMzU0NTEzOTQzMTk1MzQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0ODQuNDQ4Mzg3NCwgInN0ZXAiOiA2MjIwLCAidmFsdWUiOiAwLjE5OTAyNDQ5ODQ2MjY3N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNDkzLjY2MDA0MTYsICJzdGVwIjogNjIzMCwgInZhbHVlIjogMC4xOTMxMTk4MjM5MzI2NDc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MDIuNDQxMjgzMiwgInN0ZXAiOiA2MjQwLCAidmFsdWUiOiAwLjIxMzUyODU0MzcxMDcwODYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MTEuMjU2MjMwOCwgInN0ZXAiOiA2MjUwLCAidmFsdWUiOiAwLjIzNjQ0NDcxMTY4NTE4MDY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MjAuNDg1MDI3LCAic3RlcCI6IDYyNjAsICJ2YWx1ZSI6IDAuMTg2NzAxODc4OTA1Mjk2MzN9LCB7IndhbGxUaW1lIjogMTczMzA3MzUyOS43ODE0NzQ2LCAic3RlcCI6IDYyNzAsICJ2YWx1ZSI6IDAuMjc5OTI4ODMzMjQ2MjMxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTM5LjYzOTE5MjYsICJzdGVwIjogNjI4MCwgInZhbHVlIjogMC4yMzI1OTk0MDc0MzQ0NjM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NDguOTExMDMsICJzdGVwIjogNjI5MCwgInZhbHVlIjogMC4yMDIzOTMzMDgyODE4OTg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NjAuNjE5Nzg1MywgInN0ZXAiOiA2MzAwLCAidmFsdWUiOiAwLjI2NTQ4ODgzMzE4OTAxMDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzU3MC4wNjkwNDI3LCAic3RlcCI6IDYzMTAsICJ2YWx1ZSI6IDAuMTg4OTIxNjYwMTg0ODYwMjN9LCB7IndhbGxUaW1lIjogMTczMzA3MzU3OS40ODExNjgsICJzdGVwIjogNjMyMCwgInZhbHVlIjogMC4yNDY0ODI3MDAxMDk0ODE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1ODcuNjY3MjkzOCwgInN0ZXAiOiA2MzMwLCAidmFsdWUiOiAwLjE5MjI1MzkwMjU1NDUxMjAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1OTcuMjE3OTcyMywgInN0ZXAiOiA2MzQwLCAidmFsdWUiOiAwLjIwMzkyODE0Mjc4NjAyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjA2LjIzODE2MTYsICJzdGVwIjogNjM1MCwgInZhbHVlIjogMC4xOTY1OTk4ODU4MjEzNDI0N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNjE1LjA3NzYxNzIsICJzdGVwIjogNjM2MCwgInZhbHVlIjogMC4yOTQ1NzYxMDg0NTU2NTc5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjI0LjgzNDUyMzcsICJzdGVwIjogNjM3MCwgInZhbHVlIjogMC4yNTE1NTI4NTAwMDgwMTA4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjM0LjY3MjU3MDUsICJzdGVwIjogNjM4MCwgInZhbHVlIjogMC4yMzUzNzk4NzQ3MDYyNjgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NDYuNTI4MjQ1LCAic3RlcCI6IDYzOTAsICJ2YWx1ZSI6IDAuMjAxMjIwMDgwMjU2NDYyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjU1Ljc0NTQ3OTgsICJzdGVwIjogNjQwMCwgInZhbHVlIjogMC4yMzU5MDYzMDI5Mjg5MjQ1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjY1LjYwNzE3NDYsICJzdGVwIjogNjQxMCwgInZhbHVlIjogMC4yMjUyODA3OTE1MjEwNzI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NzQuNjQyODI3LCAic3RlcCI6IDY0MjAsICJ2YWx1ZSI6IDAuMjgzMTIwNjAyMzY5MzA4NDd9LCB7IndhbGxUaW1lIjogMTczMzA3MzY4My42NzAzNjMsICJzdGVwIjogNjQzMCwgInZhbHVlIjogMC4xNjg2NTI4NjIzMTA0MDk1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjkyLjg3NjgxNjcsICJzdGVwIjogNjQ0MCwgInZhbHVlIjogMC4yNTU2NDY4MjQ4MzY3MzA5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzAyLjUxOTE2MzQsICJzdGVwIjogNjQ1MCwgInZhbHVlIjogMC4xNzM4OTI2MTcyMjU2NDY5N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzEyLjYyNzM1NzcsICJzdGVwIjogNjQ2MCwgInZhbHVlIjogMC4yNTMwMDYzMDkyNzA4NTg3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzI0LjA0NzM4ODMsICJzdGVwIjogNjQ3MCwgInZhbHVlIjogMC4zMTg4MjM3NTQ3ODc0NDUwN30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzMyLjgyODQ0ODMsICJzdGVwIjogNjQ4MCwgInZhbHVlIjogMC4yMzM3NzIyMTgyMjczODY0N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzQxLjk1NzM4MTUsICJzdGVwIjogNjQ5MCwgInZhbHVlIjogMC4yMTAyMjg5Nzk1ODc1NTQ5M30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzUwLjcxNzcxNzYsICJzdGVwIjogNjUwMCwgInZhbHVlIjogMC4yMzc3MjQ3NTEyMzQwNTQ1N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzYwLjQ4ODE2MjUsICJzdGVwIjogNjUxMCwgInZhbHVlIjogMC4xNTMzNjkwOTg5MDE3NDg2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzY5Ljg2MzM2NzMsICJzdGVwIjogNjUyMCwgInZhbHVlIjogMC4xNzM2MTExMDQ0ODgzNzI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NzkuMTI3MTAxMiwgInN0ZXAiOiA2NTMwLCAidmFsdWUiOiAwLjE5ODIzNDU0MzIwNDMwNzU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3ODkuNDc3NzQzNCwgInN0ZXAiOiA2NTQwLCAidmFsdWUiOiAwLjMwOTM5MzE2NzQ5NTcyNzU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3OTguMTAzMzg4OCwgInN0ZXAiOiA2NTUwLCAidmFsdWUiOiAwLjMzMzk0Nzc3Nzc0ODEwNzl9LCB7IndhbGxUaW1lIjogMTczMzA3MzgxMC41NTI5MzgsICJzdGVwIjogNjU2MCwgInZhbHVlIjogMC4yMjY3NjMyNjMzNDQ3NjQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MjAuMDM2NDQ0NywgInN0ZXAiOiA2NTcwLCAidmFsdWUiOiAwLjIwMjY2NDg5Njg0NTgxNzU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MjguMjM4NjY5OSwgInN0ZXAiOiA2NTgwLCAidmFsdWUiOiAwLjI2MzQ0MTY4MTg2MTg3NzQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MzYuNzk4MjUxOSwgInN0ZXAiOiA2NTkwLCAidmFsdWUiOiAwLjE3NDM1MTUxMzM4NTc3Mjd9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg0NS45ODc1NjksICJzdGVwIjogNjYwMCwgInZhbHVlIjogMC4yMTcwODQ3MjA3MzA3ODE1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczODU1LjI1MjIxODcsICJzdGVwIjogNjYxMCwgInZhbHVlIjogMC4yMDQ3NTgyNzE1NzQ5NzQwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczODY0LjY5MzgwNTUsICJzdGVwIjogNjYyMCwgInZhbHVlIjogMC4xOTAzODE1ODY1NTE2NjYyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczODczLjgzNDczMTMsICJzdGVwIjogNjYzMCwgInZhbHVlIjogMC4yMTIyODgwMzY5NDI0ODJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg4Ny41MjQ3Mzc2LCAic3RlcCI6IDY2NDAsICJ2YWx1ZSI6IDAuMjU1NTc0NjEzODA5NTg1NTd9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg5Ny4zMzQzMDc0LCAic3RlcCI6IDY2NTAsICJ2YWx1ZSI6IDAuMjI1NzgyMzY0NjA2ODU3M30sIHsid2FsbFRpbWUiOiAxNzMzMDczOTA2Ljg3NjkzMzMsICJzdGVwIjogNjY2MCwgInZhbHVlIjogMC4yMjI3NDE1NDQyNDY2NzM1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTE2LjM1MDM5OTMsICJzdGVwIjogNjY3MCwgInZhbHVlIjogMC4yNTQ5MjQ4MzM3NzQ1NjY2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTI1LjYxOTAxODYsICJzdGVwIjogNjY4MCwgInZhbHVlIjogMC4xODc5MTMzMTM1MDgwMzM3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTM0LjkxNzAxMDgsICJzdGVwIjogNjY5MCwgInZhbHVlIjogMC4xNzYxODUwNTY1NjcxOTIwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTQzLjc0MjU3MjgsICJzdGVwIjogNjcwMCwgInZhbHVlIjogMC4xNjYzMTcxMzUwOTU1OTYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5NTIuNDc3MzM2NCwgInN0ZXAiOiA2NzEwLCAidmFsdWUiOiAwLjIzMDg4NjIwNjAzMDg0NTY0fV19fV0=", + "ok": true, + "headers": [ + [ + "content-length", + "15059" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Loss/loss_bbox_dn_2%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIkxvc3MvbG9zc19iYm94X2RuXzIiLCAicnVuVG9TZXJpZXMiOiB7Ii4iOiBbeyJ3YWxsVGltZSI6IDE3MzMwNjc2MzEuNTQwMzkwNSwgInN0ZXAiOiAwLCAidmFsdWUiOiAwLjA1NDM2MTU3NDM1MTc4NzU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NDYuNjUzNzEzMiwgInN0ZXAiOiAxMCwgInZhbHVlIjogMC4wNTM1MjU0NDc4NDU0NTg5ODR9LCB7IndhbGxUaW1lIjogMTczMzA2NzY2MC43ODU3NzI2LCAic3RlcCI6IDIwLCAidmFsdWUiOiAwLjA0NTU1MjE3MTc2Njc1Nzk2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njc0LjEzOTAyODgsICJzdGVwIjogMzAsICJ2YWx1ZSI6IDAuMDUxNDAwOTM3MTM5OTg3OTQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2ODcuMDU4Njg4MiwgInN0ZXAiOiA0MCwgInZhbHVlIjogMC4wNjYwMTAxMzk4ODI1NjQ1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njk5LjQ5NDc0MiwgInN0ZXAiOiA1MCwgInZhbHVlIjogMC4xMDEzOTMzNzE4MjA0NDk4M30sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzEwLjYzMDkxMTgsICJzdGVwIjogNjAsICJ2YWx1ZSI6IDAuMDg4Mjc3NTMzNjUwMzk4MjV9LCB7IndhbGxUaW1lIjogMTczMzA2NzcyMi43NTcxMDMsICJzdGVwIjogNzAsICJ2YWx1ZSI6IDAuMDM0NzYyOTIyNjc0NDE3NDk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MzMuNzI2OTQwOSwgInN0ZXAiOiA4MCwgInZhbHVlIjogMC4xMjQwNzU2NDM3MTgyNDI2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzUwLjk0Nzc4NTYsICJzdGVwIjogOTAsICJ2YWx1ZSI6IDAuMDQyOTE0OTMwNzMxMDU4MTJ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc2MS45ODI0NzU1LCAic3RlcCI6IDEwMCwgInZhbHVlIjogMC4wNjM3MTgxOTIyNzkzMzg4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzcxLjYwNzkyNDcsICJzdGVwIjogMTEwLCAidmFsdWUiOiAwLjA3MDI0Njc2MzUyNzM5MzM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3ODAuNTQ4OTI0NCwgInN0ZXAiOiAxMjAsICJ2YWx1ZSI6IDAuMTI1NzgyMTYxOTUxMDY1MDZ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc5MC40ODY5MiwgInN0ZXAiOiAxMzAsICJ2YWx1ZSI6IDAuMDUxNjExNjU0NDYwNDMwMTQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3OTkuMTA3MTQ1NSwgInN0ZXAiOiAxNDAsICJ2YWx1ZSI6IDAuMDg3ODAyODQyMjU5NDA3MDR9LCB7IndhbGxUaW1lIjogMTczMzA2NzgwOS40NDYzMTY3LCAic3RlcCI6IDE1MCwgInZhbHVlIjogMC4xMzkyOTY4NDQ2MDE2MzExNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODE4LjkyMjIzMjQsICJzdGVwIjogMTYwLCAidmFsdWUiOiAwLjA2MjQ2ODE0ODc2Nzk0ODE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MzYuNjUxMTQ5MywgInN0ZXAiOiAxNzAsICJ2YWx1ZSI6IDAuMDY1NzM4OTAxNDk1OTMzNTN9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg0Ni4zOTIwNjgsICJzdGVwIjogMTgwLCAidmFsdWUiOiAwLjA3ODY5NjgyNDYxMDIzMzN9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg1NS42Njg1Mjg4LCAic3RlcCI6IDE5MCwgInZhbHVlIjogMC4wNzYzMDcxNjI2NDI0Nzg5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODY0Ljg5MjM3NDMsICJzdGVwIjogMjAwLCAidmFsdWUiOiAwLjA3OTU0ODcyMzk5NTY4NTU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4NzQuMDAzNDUsICJzdGVwIjogMjEwLCAidmFsdWUiOiAwLjA2NDEzNTU0NDAwMjA1NjEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4ODMuNzg4NjE1LCAic3RlcCI6IDIyMCwgInZhbHVlIjogMC4wNjMwMDE0OTExMjkzOTgzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODkyLjEyNDY3OSwgInN0ZXAiOiAyMzAsICJ2YWx1ZSI6IDAuMDU2NzgyNzIyNDczMTQ0NTN9LCB7IndhbGxUaW1lIjogMTczMzA2NzkwMS4wNzA4NzgzLCAic3RlcCI6IDI0MCwgInZhbHVlIjogMC4xMDExNjEyMjY2MzAyMTA4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTEwLjA3NjQyMSwgInN0ZXAiOiAyNTAsICJ2YWx1ZSI6IDAuMDgzNjUwMDA3ODQzOTcxMjV9LCB7IndhbGxUaW1lIjogMTczMzA2NzkyNS45NTE1NDI0LCAic3RlcCI6IDI2MCwgInZhbHVlIjogMC4wNjMwOTU1NjIxNjAwMTUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MzUuNDc3MTAyLCAic3RlcCI6IDI3MCwgInZhbHVlIjogMC4wNTEzNzYwNzgyNzc4MjYzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTQ0LjAxODA2NjYsICJzdGVwIjogMjgwLCAidmFsdWUiOiAwLjA1Mzc0ODg4MzMwNjk4MDEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NTIuNTQ5MTc2NywgInN0ZXAiOiAyOTAsICJ2YWx1ZSI6IDAuMTIyNjU1OTIwNjg0MzM3NjJ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk2MS4wMjgyNDc4LCAic3RlcCI6IDMwMCwgInZhbHVlIjogMC4xMDkzODAyNjAxMDk5MDE0M30sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTcwLjEzNjA4MSwgInN0ZXAiOiAzMTAsICJ2YWx1ZSI6IDAuMDg4NjYwNTgyOTAwMDQ3M30sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTgwLjIyNzMyMDQsICJzdGVwIjogMzIwLCAidmFsdWUiOiAwLjA2MDQwNjY5NjA1MTM1OTE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5ODguODE3NTYxNiwgInN0ZXAiOiAzMzAsICJ2YWx1ZSI6IDAuMDY4NTE3NTQzMzc1NDkyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDA1LjA5MjE2OTUsICJzdGVwIjogMzQwLCAidmFsdWUiOiAwLjA2Mzc4NzY5ODc0NTcyNzU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMTQuMDY2NzIwNSwgInN0ZXAiOiAzNTAsICJ2YWx1ZSI6IDAuMDI5MzYyNDEwMzA2OTMwNTQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMjIuNTU0NTQ1OSwgInN0ZXAiOiAzNjAsICJ2YWx1ZSI6IDAuMDYwMzg5MTA4OTU1ODYwMTR9LCB7IndhbGxUaW1lIjogMTczMzA2ODAzMS44MjYyMzI0LCAic3RlcCI6IDM3MCwgInZhbHVlIjogMC4wNjQ5MDM5NzQ1MzMwODEwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDQwLjc4OTMzOSwgInN0ZXAiOiAzODAsICJ2YWx1ZSI6IDAuMDU0NjY2NTQ1MjQyMDcxMTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODA1MC4xNjE4MjE2LCAic3RlcCI6IDM5MCwgInZhbHVlIjogMC4xMDA5NTU2NTc2NjA5NjExNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDU5LjEyNzY0MTcsICJzdGVwIjogNDAwLCAidmFsdWUiOiAwLjEwOTA1OTI4OTA5Nzc4NTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNjguMDkxNjU3OSwgInN0ZXAiOiA0MTAsICJ2YWx1ZSI6IDAuMTExNDkxOTAzNjYyNjgxNTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODA4NC44NDYwMDgsICJzdGVwIjogNDIwLCAidmFsdWUiOiAwLjA4MTE2MTkxNjI1NTk1MDkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwOTQuNjY4MzI5LCAic3RlcCI6IDQzMCwgInZhbHVlIjogMC4wNDQ4NjEyNjgyNTIxMzQzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTAzLjcwOTgwNTUsICJzdGVwIjogNDQwLCAidmFsdWUiOiAwLjA1NDk1OTQ0OTkxNzA3ODAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMTIuNzAxMjY1OCwgInN0ZXAiOiA0NTAsICJ2YWx1ZSI6IDAuMDU3MzM3MTY0ODc4ODQ1MjE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMjEuNTAyODQ4LCAic3RlcCI6IDQ2MCwgInZhbHVlIjogMC4wNDcyNzM4NTU2NTYzODU0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTMwLjcyOTUxMDMsICJzdGVwIjogNDcwLCAidmFsdWUiOiAwLjA2OTg5MjUyNTY3MjkxMjZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODEzOS44NTc0Nzc3LCAic3RlcCI6IDQ4MCwgInZhbHVlIjogMC4wNjEyODM4OTM4ODMyMjgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxNDkuMzcxODA1LCAic3RlcCI6IDQ5MCwgInZhbHVlIjogMC4wNzI3NjEzODY2MzI5MTkzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTU4LjA3MTgxNDUsICJzdGVwIjogNTAwLCAidmFsdWUiOiAwLjA3MDkyMDUxOTUzMDc3MzE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxNzQuMTE2OTk0MSwgInN0ZXAiOiA1MTAsICJ2YWx1ZSI6IDAuMDg2ODkyNTM3NzcyNjU1NDl9LCB7IndhbGxUaW1lIjogMTczMzA2ODE4Mi43MjE0MzI3LCAic3RlcCI6IDUyMCwgInZhbHVlIjogMC4wNDc4NzYxNDE5NjUzODkyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTkyLjQxNTUxMTgsICJzdGVwIjogNTMwLCAidmFsdWUiOiAwLjA4MDYwNTY0MTAwNzQyMzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODIwMS44MzIyOTg1LCAic3RlcCI6IDU0MCwgInZhbHVlIjogMC4wNzMzNjg5MjkzMjY1MzQyN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjEwLjY1NjM4NywgInN0ZXAiOiA1NTAsICJ2YWx1ZSI6IDAuMDcyODk2MDg1Njc5NTMxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjIwLjE5Njk4OCwgInN0ZXAiOiA1NjAsICJ2YWx1ZSI6IDAuMDczMjUyMTYzODI3NDE5Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODIyOS4xNjEzNjE3LCAic3RlcCI6IDU3MCwgInZhbHVlIjogMC4wODA1Nzg2NjI0NTUwODE5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjM4LjU5MzQ5NzUsICJzdGVwIjogNTgwLCAidmFsdWUiOiAwLjA2OTc0NTQ4MTAxNDI1MTcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNTYuMDc2NjgzLCAic3RlcCI6IDU5MCwgInZhbHVlIjogMC4wNTI1Njg1OTk1ODE3MTg0NDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODI2NS40MzM4MzQ2LCAic3RlcCI6IDYwMCwgInZhbHVlIjogMC4xMjIzNTE5MDcxOTM2NjA3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Mjc0LjY1ODQwODIsICJzdGVwIjogNjEwLCAidmFsdWUiOiAwLjA1MzM3NzgxNDU5MDkzMDk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyODMuNzcyMDA2LCAic3RlcCI6IDYyMCwgInZhbHVlIjogMC4wNTgzNDkyNzQwOTg4NzMxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjkzLjMzNjA5NTMsICJzdGVwIjogNjMwLCAidmFsdWUiOiAwLjA1OTMyNzE5MjYwNDU0MTc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMDIuNjQ5MTA2MywgInN0ZXAiOiA2NDAsICJ2YWx1ZSI6IDAuMDczODI2MzcyNjIzNDQzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzExLjM5MDEzOTYsICJzdGVwIjogNjUwLCAidmFsdWUiOiAwLjA1NzE1MTA4NjYyODQzNzA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMjAuMzkyMTQwOSwgInN0ZXAiOiA2NjAsICJ2YWx1ZSI6IDAuMDcxMDYzMDE5MzM1MjY5OTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODMyOC43MzM0MTg3LCAic3RlcCI6IDY3MCwgInZhbHVlIjogMC4wNzA0NTQ3NjEzODU5MTc2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzQ0LjQ2MzE1MywgInN0ZXAiOiA2ODAsICJ2YWx1ZSI6IDAuMDgwNzU3NTczMjQ2OTU1ODd9LCB7IndhbGxUaW1lIjogMTczMzA2ODM1My43MTg5MzQzLCAic3RlcCI6IDY5MCwgInZhbHVlIjogMC4wNTAyNDUwMzE3MTQ0MzkzOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzYyLjA1OTg3MTcsICJzdGVwIjogNzAwLCAidmFsdWUiOiAwLjA4MTY4OTc0NTE4Nzc1OTR9LCB7IndhbGxUaW1lIjogMTczMzA2ODM3MS4xMDYwNzY3LCAic3RlcCI6IDcxMCwgInZhbHVlIjogMC4wNDQxNjA4NTc3OTY2NjkwMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODM4MC41MzUxOTcsICJzdGVwIjogNzIwLCAidmFsdWUiOiAwLjA3NzQxMTE4OTY3NTMzMTEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzOTAuMDg4NjU4MywgInN0ZXAiOiA3MzAsICJ2YWx1ZSI6IDAuMDQzMjc1NDEyMTcyMDc5MDg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzOTguNzIzMDIwNiwgInN0ZXAiOiA3NDAsICJ2YWx1ZSI6IDAuMDg3MzkwNTQyMDMwMzM0NDd9LCB7IndhbGxUaW1lIjogMTczMzA2ODQwNy4xMjYwMDcsICJzdGVwIjogNzUwLCAidmFsdWUiOiAwLjA1OTQxNzE4MDcxNjk5MTQyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDIzLjA3NDQ1MjYsICJzdGVwIjogNzYwLCAidmFsdWUiOiAwLjA2MzMwNzg1OTAwMzU0Mzg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MzEuNDA3Mzc5NiwgInN0ZXAiOiA3NzAsICJ2YWx1ZSI6IDAuMDc1NDMzOTYyMDQ3MTAwMDd9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ0MC40MjcwMzk0LCAic3RlcCI6IDc4MCwgInZhbHVlIjogMC4wNDQ4NDI4MjgwNjUxNTY5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDQ5LjAwODY5LCAic3RlcCI6IDc5MCwgInZhbHVlIjogMC4wNTk3NjA3NzU0MTcwODk0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDU3LjY0MDkxMDQsICJzdGVwIjogODAwLCAidmFsdWUiOiAwLjA0MDc2NjExMjUwNjM4OTYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NjcuMDQ5NDQxNiwgInN0ZXAiOiA4MTAsICJ2YWx1ZSI6IDAuMDU4MjY5OTgxMjk0ODcwMzh9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ3NS42MjI1NywgInN0ZXAiOiA4MjAsICJ2YWx1ZSI6IDAuMDU5MjM2NjYwNTk5NzA4NTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ4NC45ODExMTM0LCAic3RlcCI6IDgzMCwgInZhbHVlIjogMC4wNDcyMDI3MTM3ODc1NTU2OTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODUwMC43MzM3ODM3LCAic3RlcCI6IDg0MCwgInZhbHVlIjogMC4wNDI2MzUzOTYxMjI5MzI0MzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODUwOS4zMSwgInN0ZXAiOiA4NTAsICJ2YWx1ZSI6IDAuMDQ0OTMwMDExMDM0MDExODR9LCB7IndhbGxUaW1lIjogMTczMzA2ODUxOS4wMjQ0NDg0LCAic3RlcCI6IDg2MCwgInZhbHVlIjogMC4wMzU3OTE2MjgwNjI3MjUwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTI3LjUwMDc4NzcsICJzdGVwIjogODcwLCAidmFsdWUiOiAwLjA2Mjc0NTU3MTEzNjQ3NDYxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MzYuOTIyNTY4OCwgInN0ZXAiOiA4ODAsICJ2YWx1ZSI6IDAuMDU2MzQ3NjU2OTk1MDU4MDZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODU0NC45MTEwNzk2LCAic3RlcCI6IDg5MCwgInZhbHVlIjogMC4wNTAyNjE5MTQ3MzAwNzIwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTUzLjU4MTQyNjYsICJzdGVwIjogOTAwLCAidmFsdWUiOiAwLjA2MDI5MTAxNDYxMTcyMTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NjIuNjg4MjksICJzdGVwIjogOTEwLCAidmFsdWUiOiAwLjA2OTk3OTEwMTQxOTQ0ODg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NzEuMjQ4NjkxOCwgInN0ZXAiOiA5MjAsICJ2YWx1ZSI6IDAuMDUyNjIxNTU4MzA4NjAxMzh9LCB7IndhbGxUaW1lIjogMTczMzA2ODU4NC43Nzg4MTM2LCAic3RlcCI6IDkzMCwgInZhbHVlIjogMC4wNDAxNTE4ODY2NDE5NzkyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTkzLjc3NTY1OTMsICJzdGVwIjogOTQwLCAidmFsdWUiOiAwLjA2MTg1MzI1OTgwMTg2NDYyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjAyLjc2OTMyOSwgInN0ZXAiOiA5NTAsICJ2YWx1ZSI6IDAuMDI3Njc4Nzk4ODg0MTUzMzY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MTEuMDQzMzMxMSwgInN0ZXAiOiA5NjAsICJ2YWx1ZSI6IDAuMDY4NTY0MzI1NTcxMDYwMTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODYyMC4yMzAwNTAzLCAic3RlcCI6IDk3MCwgInZhbHVlIjogMC4wNTIyNjY2Mjc1NTAxMjUxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjI4Ljg0NTIwMjIsICJzdGVwIjogOTgwLCAidmFsdWUiOiAwLjA0NzgyMDQ1NjMyNjAwNzg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MzcuNjMzOTE3OCwgInN0ZXAiOiA5OTAsICJ2YWx1ZSI6IDAuMDM3ODQ4MjQ5MDc3Nzk2OTM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2NDYuNjc2NTU4MywgInN0ZXAiOiAxMDAwLCAidmFsdWUiOiAwLjA2NTk1MjY4MTAwNTAwMTA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2NjIuNzYwNTIyLCAic3RlcCI6IDEwMTAsICJ2YWx1ZSI6IDAuMDU1MDA2NTE4OTU5OTk5MDg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2NzIuMDU4MDQsICJzdGVwIjogMTAyMCwgInZhbHVlIjogMC4wNTA3NTUwMDkwNTUxMzc2MzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODY4MC41NjY2MzgyLCAic3RlcCI6IDEwMzAsICJ2YWx1ZSI6IDAuMDY3NTI2NjA4NzA1NTIwNjN9LCB7IndhbGxUaW1lIjogMTczMzA2ODY5MC4xODk2MDI0LCAic3RlcCI6IDEwNDAsICJ2YWx1ZSI6IDAuMDM5MzE2NTM0OTk2MDMyNzE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2OTguODUyMDEyLCAic3RlcCI6IDEwNTAsICJ2YWx1ZSI6IDAuMDYzMDAyNDM3MzUzMTM0MTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODcwNy43NDcxNTc2LCAic3RlcCI6IDEwNjAsICJ2YWx1ZSI6IDAuMDQzNjUwMzczODE2NDkwMTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODcxNy4zNDgzMzk2LCAic3RlcCI6IDEwNzAsICJ2YWx1ZSI6IDAuMDQzODM1MTM3MDM5NDIyOTl9LCB7IndhbGxUaW1lIjogMTczMzA2ODcyNi4zNjUwOCwgInN0ZXAiOiAxMDgwLCAidmFsdWUiOiAwLjAzMzA1OTAwMDk2ODkzMzEwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzM1LjI1NTQ2NzQsICJzdGVwIjogMTA5MCwgInZhbHVlIjogMC4wNDQyOTg3NjA1OTI5Mzc0N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzQ5LjU1MTcxNzMsICJzdGVwIjogMTEwMCwgInZhbHVlIjogMC4wMzMxMDgxODk3MDIwMzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODc1OC4zNzkwNjIsICJzdGVwIjogMTExMCwgInZhbHVlIjogMC4wNTQ4ODc3NzE2MDY0NDUzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzY3LjAwNzU2MiwgInN0ZXAiOiAxMTIwLCAidmFsdWUiOiAwLjA2MTYxNzU5MDQ4NzAwMzMyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Nzc2LjYyMjU3NSwgInN0ZXAiOiAxMTMwLCAidmFsdWUiOiAwLjA1MDc5OTI2OTIyOTE3MzY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3ODUuNDA1MDYyNywgInN0ZXAiOiAxMTQwLCAidmFsdWUiOiAwLjA2NDY0NTk5ODE3OTkxMjU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3OTQuMjgyODM1MiwgInN0ZXAiOiAxMTUwLCAidmFsdWUiOiAwLjA2OTExMTgxNjU4NTA2MzkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MDIuNzAxMDQ4NCwgInN0ZXAiOiAxMTYwLCAidmFsdWUiOiAwLjA3MDk0NzQ2ODI4MDc5MjI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MTEuNTU1NjM1LCAic3RlcCI6IDExNzAsICJ2YWx1ZSI6IDAuMDU1MzMwMzI0OTE4MDMxNjl9LCB7IndhbGxUaW1lIjogMTczMzA2ODgyNC45Njk0ODIsICJzdGVwIjogMTE4MCwgInZhbHVlIjogMC4wNDk5MTA4ODQzNTA1MzgyNTR9LCB7IndhbGxUaW1lIjogMTczMzA2ODgzNC4zODA5NzQsICJzdGVwIjogMTE5MCwgInZhbHVlIjogMC4wNDQ3NzQ2OTI1MDU1OTgwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODQzLjUxOTkwNTgsICJzdGVwIjogMTIwMCwgInZhbHVlIjogMC4wNTEyMTU2ODIxNzg3MzU3M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODUyLjIzMjI5NjUsICJzdGVwIjogMTIxMCwgInZhbHVlIjogMC4wNDA4OTc5NTQyNTUzNDI0ODR9LCB7IndhbGxUaW1lIjogMTczMzA2ODg2MS4xMjA2NjY3LCAic3RlcCI6IDEyMjAsICJ2YWx1ZSI6IDAuMDQwODQxMzk2ODk4MDMxMjM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NzAuMDU5NTk0OSwgInN0ZXAiOiAxMjMwLCAidmFsdWUiOiAwLjA2NTA4NjE1NjEyOTgzNzA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NzguNzI0MDg2MywgInN0ZXAiOiAxMjQwLCAidmFsdWUiOiAwLjA2ODI4OTgyMzgzMDEyNzcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4ODcuNzQxODY0NywgInN0ZXAiOiAxMjUwLCAidmFsdWUiOiAwLjAzODY4MjEyNTUwODc4NTI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MDMuMTcwNTM2MywgInN0ZXAiOiAxMjYwLCAidmFsdWUiOiAwLjAzNjk5MTUyOTE2NjY5ODQ1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTEyLjQyMDU2NSwgInN0ZXAiOiAxMjcwLCAidmFsdWUiOiAwLjA1Mzk5MTg2MTY0MTQwNzAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MjEuNDc4MzU5MiwgInN0ZXAiOiAxMjgwLCAidmFsdWUiOiAwLjA2NjY4NjAzNDIwMjU3NTY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MjkuNzUwMzM0NywgInN0ZXAiOiAxMjkwLCAidmFsdWUiOiAwLjA0NTYyMzQ1MTQ3MTMyODczNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTM5LjUwNTEsICJzdGVwIjogMTMwMCwgInZhbHVlIjogMC4wNDIyMTgzMzg2OTgxNDg3M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTQ4LjkzMTcwMjQsICJzdGVwIjogMTMxMCwgInZhbHVlIjogMC4wMzI1MzI5MTE3NDc2OTQwMTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODk1Ny4yMzgxNjU2LCAic3RlcCI6IDEzMjAsICJ2YWx1ZSI6IDAuMDYxMDQxNTYzNzQ5MzEzMzU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NjYuMDgwNzM3NiwgInN0ZXAiOiAxMzMwLCAidmFsdWUiOiAwLjA1NzU0MzI1OTExNDAyNzAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NzUuNTY4OTg1NywgInN0ZXAiOiAxMzQwLCAidmFsdWUiOiAwLjA1ODIzMjc4Nzk5NjUzMDUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5ODkuODAzMzQzMywgInN0ZXAiOiAxMzUwLCAidmFsdWUiOiAwLjAzMDYwOTUyNzYwMjc5MTc4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTk4LjI4NjkwOSwgInN0ZXAiOiAxMzYwLCAidmFsdWUiOiAwLjAyODg4Njg1ODM3Mzg4MDM4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDA3LjE1NDE5MTMsICJzdGVwIjogMTM3MCwgInZhbHVlIjogMC4wMzk2NTQ5NjY0NDM3NzcwODR9LCB7IndhbGxUaW1lIjogMTczMzA2OTAxNS45MjYzODY4LCAic3RlcCI6IDEzODAsICJ2YWx1ZSI6IDAuMDM3MTQ0Mjk5NTk2NTQ4MDh9LCB7IndhbGxUaW1lIjogMTczMzA2OTAyNS4zMDY5NDk0LCAic3RlcCI6IDEzOTAsICJ2YWx1ZSI6IDAuMDQ2OTEyNTM5NzUwMzM3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDM0LjQ4NTE2OSwgInN0ZXAiOiAxNDAwLCAidmFsdWUiOiAwLjA1NTcxNTQ0OTE1NDM3Njk4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDQyLjc5NjY2MzgsICJzdGVwIjogMTQxMCwgInZhbHVlIjogMC4wNjA1NzkwNjE1MDgxNzg3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDUyLjE0MTIyOSwgInN0ZXAiOiAxNDIwLCAidmFsdWUiOiAwLjA0MzEwNzg3NDY5MTQ4NjM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNjUuMDA1Mzc3LCAic3RlcCI6IDE0MzAsICJ2YWx1ZSI6IDAuMDQzODYyODE1OTQ2MzQwNTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTA3NC41Mjc2MzUsICJzdGVwIjogMTQ0MCwgInZhbHVlIjogMC4wNDc0NTI3MDMxMTgzMjQyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDgzLjc4NjI0NTYsICJzdGVwIjogMTQ1MCwgInZhbHVlIjogMC4wNDkyOTUwOTc1ODk0OTI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwOTIuMjYyNTIyMiwgInN0ZXAiOiAxNDYwLCAidmFsdWUiOiAwLjA1NzA1MDg1Mzk2NzY2NjYyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTAxLjAzMzUxODgsICJzdGVwIjogMTQ3MCwgInZhbHVlIjogMC4wNTUzNjczNjkyMDQ3NTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMDkuOTA5NDQxLCAic3RlcCI6IDE0ODAsICJ2YWx1ZSI6IDAuMDY0MTk4MjQwNjM3Nzc5MjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTExOS4xMjE0NTE5LCAic3RlcCI6IDE0OTAsICJ2YWx1ZSI6IDAuMDQ0Mzk4Nzg0NjM3NDUxMTd9LCB7IndhbGxUaW1lIjogMTczMzA2OTEyOC40MTg3MywgInN0ZXAiOiAxNTAwLCAidmFsdWUiOiAwLjA1Mjc3ODAwOTMyNTI2NTg4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTM3LjYwOTI4OTQsICJzdGVwIjogMTUxMCwgInZhbHVlIjogMC4wNTk0NDE4NjgyMTU3OTkzM30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTUwLjU0NjExNTYsICJzdGVwIjogMTUyMCwgInZhbHVlIjogMC4wMzQzNjg5NTQ1OTg5MDM2NTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTE1OS43NTk1Njg1LCAic3RlcCI6IDE1MzAsICJ2YWx1ZSI6IDAuMDQ1MTE5MTU1MTk4MzM1NjV9LCB7IndhbGxUaW1lIjogMTczMzA2OTE2OC4xNzMxNTQ4LCAic3RlcCI6IDE1NDAsICJ2YWx1ZSI6IDAuMDU0MTU3MjE5ODI3MTc1MTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTE3Ni44NDM0OTQ3LCAic3RlcCI6IDE1NTAsICJ2YWx1ZSI6IDAuMDUzMTk2NjY4NjI0ODc3OTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTE4NS44OTQ3NzE4LCAic3RlcCI6IDE1NjAsICJ2YWx1ZSI6IDAuMDM0ODc1MTk1NDczNDMyNTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTE5NC45MjY3NzQ1LCAic3RlcCI6IDE1NzAsICJ2YWx1ZSI6IDAuMDYxNDYyODM0NDc3NDI0NjJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTIwMy45MTY3NDM1LCAic3RlcCI6IDE1ODAsICJ2YWx1ZSI6IDAuMDMyNDAzMTQ4NzEwNzI3Njl9LCB7IndhbGxUaW1lIjogMTczMzA2OTIxMi43MTg4Mzg3LCAic3RlcCI6IDE1OTAsICJ2YWx1ZSI6IDAuMDM4Njc0OTk1MzAzMTUzOTl9LCB7IndhbGxUaW1lIjogMTczMzA2OTIyNS41MzY2NTc4LCAic3RlcCI6IDE2MDAsICJ2YWx1ZSI6IDAuMDM4NTAzMTQzOTM2Mzk1NjQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMzUuNDY2MzY0LCAic3RlcCI6IDE2MTAsICJ2YWx1ZSI6IDAuMDQ2OTIyMzAzNzM2MjA5ODd9LCB7IndhbGxUaW1lIjogMTczMzA2OTI0NC42MzI5MzM0LCAic3RlcCI6IDE2MjAsICJ2YWx1ZSI6IDAuMDQxNzI5NTQzMzU4MDg3NTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTI1NC4yOTYxNDY0LCAic3RlcCI6IDE2MzAsICJ2YWx1ZSI6IDAuMDUwNjg3MDk3MDEyOTk2Njc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNjMuMDA3ODgyNiwgInN0ZXAiOiAxNjQwLCAidmFsdWUiOiAwLjA0NzcyNDY1MzAzNTQwMjN9LCB7IndhbGxUaW1lIjogMTczMzA2OTI3MS44NjkxNzE2LCAic3RlcCI6IDE2NTAsICJ2YWx1ZSI6IDAuMDUzOTE4OTU3NzEwMjY2MTF9LCB7IndhbGxUaW1lIjogMTczMzA2OTI4MC41MTIzNzEzLCAic3RlcCI6IDE2NjAsICJ2YWx1ZSI6IDAuMDk3ODc0OTA5NjM5MzU4NTJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTI4OS42ODIyNTksICJzdGVwIjogMTY3MCwgInZhbHVlIjogMC4wNDYxODU0NDg3NjU3NTQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMDMuNjEzMzMxMywgInN0ZXAiOiAxNjgwLCAidmFsdWUiOiAwLjA2MDA2NTk2OTgyNDc5MDk1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzEyLjQ4MjE4NzUsICJzdGVwIjogMTY5MCwgInZhbHVlIjogMC4wNDExNTQwMDgzNTg3MTY5NjV9LCB7IndhbGxUaW1lIjogMTczMzA2OTMyMS44NDEzOTQsICJzdGVwIjogMTcwMCwgInZhbHVlIjogMC4wNDM4MzQwMzA2MjgyMDQzNDZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTMzMC4zNTA0NzY1LCAic3RlcCI6IDE3MTAsICJ2YWx1ZSI6IDAuMDQ2NDA4MjczMjc5NjY2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzM5LjI0Nzk4OTcsICJzdGVwIjogMTcyMCwgInZhbHVlIjogMC4wMzY2NzUzNzEyMjk2NDg1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzQ2Ljg2MTMwODgsICJzdGVwIjogMTczMCwgInZhbHVlIjogMC4wNzY2Mzg1NjQ0Njc0MzAxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzU1LjY1NzA0MzcsICJzdGVwIjogMTc0MCwgInZhbHVlIjogMC4wMzQ1MDU2MTY4NzM1MDI3M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzY0LjUxNDU2NDgsICJzdGVwIjogMTc1MCwgInZhbHVlIjogMC4wNjY3Mzc0MDU5NTU3OTE0N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzczLjc0MTE3OTIsICJzdGVwIjogMTc2MCwgInZhbHVlIjogMC4wODgxMjYxMzA0MDIwODgxN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5Mzg3LjU0MzYxOCwgInN0ZXAiOiAxNzcwLCAidmFsdWUiOiAwLjA0ODgzMzQzNzI2Mzk2NTYxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzOTYuNDcxMjUyMiwgInN0ZXAiOiAxNzgwLCAidmFsdWUiOiAwLjA2NjkzMTkyNTcxNDAxNTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MDUuOTk4NzQzLCAic3RlcCI6IDE3OTAsICJ2YWx1ZSI6IDAuMDUyNDM4Mzk2OTYwNDk2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDE1LjA1NjMyNiwgInN0ZXAiOiAxODAwLCAidmFsdWUiOiAwLjA0MzMzMDQ4MzEzODU2MTI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MjMuOTA5OTU0LCAic3RlcCI6IDE4MTAsICJ2YWx1ZSI6IDAuMDQyMzY0ODIwODM3OTc0NTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTQzMi41MzM2ODkzLCAic3RlcCI6IDE4MjAsICJ2YWx1ZSI6IDAuMDUxNDkxMzcyMjg3MjczNDF9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ0MS4yMjE2MTYsICJzdGVwIjogMTgzMCwgInZhbHVlIjogMC4wNDA2OTgyODI0MjA2MzUyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDUwLjA5MjI5MywgInN0ZXAiOiAxODQwLCAidmFsdWUiOiAwLjAzNDM1MTU2NDk0Mzc5MDQzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDYzLjEwOTUwMjMsICJzdGVwIjogMTg1MCwgInZhbHVlIjogMC4wMzY3MTkzMTEwMjg3MTg5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDcxLjU3NTEyMTQsICJzdGVwIjogMTg2MCwgInZhbHVlIjogMC4wMzE2MjY1NTIzNDMzNjg1M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDgwLjUwMDMxNiwgInN0ZXAiOiAxODcwLCAidmFsdWUiOiAwLjA3NDY1NDU0OTM2MDI3NTI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0ODkuMzg3MDI1OCwgInN0ZXAiOiAxODgwLCAidmFsdWUiOiAwLjA0NjYzODEwNTA2NDYzMDUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0OTcuOTc4ODM5NCwgInN0ZXAiOiAxODkwLCAidmFsdWUiOiAwLjA1NjMyMjMxMDExOTg2NzMyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTA2LjgxNjkzNDYsICJzdGVwIjogMTkwMCwgInZhbHVlIjogMC4wMzI4MDg4MTA0NzI0ODg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MTUuODI2NzE0NSwgInN0ZXAiOiAxOTEwLCAidmFsdWUiOiAwLjA1MDE1NzkzNDQyNzI2MTM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MjQuNjM4NTY4NCwgInN0ZXAiOiAxOTIwLCAidmFsdWUiOiAwLjAzNTk4Njk1OTkzNDIzNDYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MzMuNTQ0MjY5LCAic3RlcCI6IDE5MzAsICJ2YWx1ZSI6IDAuMDU4Mjk2OTU5ODQ3MjExODR9LCB7IndhbGxUaW1lIjogMTczMzA2OTU1MC40ODAwMDgsICJzdGVwIjogMTk0MCwgInZhbHVlIjogMC4wMjQyMTM5NDkyMTgzOTIzNzJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTU1OC44MzAxMjIsICJzdGVwIjogMTk1MCwgInZhbHVlIjogMC4wNjAwNTkxODIzNDU4NjcxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTY3Ljc1OTk2NTIsICJzdGVwIjogMTk2MCwgInZhbHVlIjogMC4wNDAzMjY1NTgwNTM0OTM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NzYuMzQ3MjY3NCwgInN0ZXAiOiAxOTcwLCAidmFsdWUiOiAwLjA1MTcwNDE2ODMxOTcwMjE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1ODUuNTMxMTc1LCAic3RlcCI6IDE5ODAsICJ2YWx1ZSI6IDAuMDQ5ODQzODA2NzczNDI0MTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTU5NC4zNTIzMSwgInN0ZXAiOiAxOTkwLCAidmFsdWUiOiAwLjA1MTYzNTI0NjcyMzg5MDMwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjAyLjQwMzczMzcsICJzdGVwIjogMjAwMCwgInZhbHVlIjogMC4wNjAzNTI2NDk1Mzk3MDkwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjEwLjI1MTk4ODQsICJzdGVwIjogMjAxMCwgInZhbHVlIjogMC4wNTI0MjM4NjgzMjgzMzI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MjYuNjg4ODM1NCwgInN0ZXAiOiAyMDIwLCAidmFsdWUiOiAwLjA0ODU5Njk1NTgzNTgxOTI0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjM1LjAzMjkyNjYsICJzdGVwIjogMjAzMCwgInZhbHVlIjogMC4wMzY2OTc5OTExOTIzNDA4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjQzLjgyNDYzMTUsICJzdGVwIjogMjA0MCwgInZhbHVlIjogMC4wNTMyMzExMjAxMDk1NTgxMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTY1Mi4xOTYzOTA2LCAic3RlcCI6IDIwNTAsICJ2YWx1ZSI6IDAuMDU2NjgxOTA4NjY3MDg3NTU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NjAuNDU1NDg3NywgInN0ZXAiOiAyMDYwLCAidmFsdWUiOiAwLjA3NzMxNDY0NTA1MTk1NjE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NjkuNTk0MDcxOSwgInN0ZXAiOiAyMDcwLCAidmFsdWUiOiAwLjAzNDUwMzc5NTIwNjU0Njc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NzguNzgwNDQ4MiwgInN0ZXAiOiAyMDgwLCAidmFsdWUiOiAwLjA1MjIzMjA2NDMwNjczNTk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2ODYuOTQ2OTA2LCAic3RlcCI6IDIwOTAsICJ2YWx1ZSI6IDAuMDQ5NjQwNDIwODI0Mjg5MzJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTcwMC42MDQxMzEsICJzdGVwIjogMjEwMCwgInZhbHVlIjogMC4wMzU5NDcwNTQ2MjQ1NTc0OTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTcwOC43MjgzNjM4LCAic3RlcCI6IDIxMTAsICJ2YWx1ZSI6IDAuMDM5NDQwODYyODM0NDUzNTh9LCB7IndhbGxUaW1lIjogMTczMzA2OTcxNy40NTAyNTA0LCAic3RlcCI6IDIxMjAsICJ2YWx1ZSI6IDAuMDQ1MTM0MzczMDA5MjA0ODY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MjYuMTQzMjYxLCAic3RlcCI6IDIxMzAsICJ2YWx1ZSI6IDAuMDMxNzc3MDk1MDQ5NjE5Njc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MzUuMDQwMDU1OCwgInN0ZXAiOiAyMTQwLCAidmFsdWUiOiAwLjAzMjM2MzI4MDY1Mzk1MzU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NDMuMzA4MDc1NCwgInN0ZXAiOiAyMTUwLCAidmFsdWUiOiAwLjA0MTA0ODEyNDQzMjU2Mzc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NTIuNTAyODE4NiwgInN0ZXAiOiAyMTYwLCAidmFsdWUiOiAwLjA0Mjg4NzA4NzkxMTM2NzQxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzYxLjQ1Mjk1MjQsICJzdGVwIjogMjE3MCwgInZhbHVlIjogMC4wMzY3Njk0Mzg1MzQ5NzUwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzcwLjQzNTE0NTYsICJzdGVwIjogMjE4MCwgInZhbHVlIjogMC4wNTI0MDc3NDg5OTcyMTE0NTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTc4NC4zNjU4MzYxLCAic3RlcCI6IDIxOTAsICJ2YWx1ZSI6IDAuMDQzMzE5ODczNTExNzkxMjN9LCB7IndhbGxUaW1lIjogMTczMzA2OTc5My4xMjQ0NDg4LCAic3RlcCI6IDIyMDAsICJ2YWx1ZSI6IDAuMDM0MDU2MzkxNTY2OTkxODA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MDEuNjM4MTQ2NiwgInN0ZXAiOiAyMjEwLCAidmFsdWUiOiAwLjA1NDE5OTU2MTQ3NjcwNzQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MTAuNjA5ODI5NywgInN0ZXAiOiAyMjIwLCAidmFsdWUiOiAwLjAzOTc2ODQwNTI1ODY1NTU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MTkuMzQ0NTU5LCAic3RlcCI6IDIyMzAsICJ2YWx1ZSI6IDAuMDU5NzA0MTI0OTI3NTIwNzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTgyNy4zMjgwMjYsICJzdGVwIjogMjI0MCwgInZhbHVlIjogMC4wNDc1MjA0MzYzNDY1MzA5MTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTgzNS44NzAxMjIyLCAic3RlcCI6IDIyNTAsICJ2YWx1ZSI6IDAuMDM0OTcxNjk5MTE4NjE0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODQ0LjIzNzg1NDcsICJzdGVwIjogMjI2MCwgInZhbHVlIjogMC4wNDc1NDU2NzUxODgzMDI5OTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTg1Ni43NTEzMDQxLCAic3RlcCI6IDIyNzAsICJ2YWx1ZSI6IDAuMDY2MTM3Nzc1Nzc4NzcwNDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTg2NS4yNTk0NjEyLCAic3RlcCI6IDIyODAsICJ2YWx1ZSI6IDAuMDU5NDk2OTk4Nzg2OTI2Mjd9LCB7IndhbGxUaW1lIjogMTczMzA2OTg3NC4wMDc3NzE1LCAic3RlcCI6IDIyOTAsICJ2YWx1ZSI6IDAuMDQwOTY5MjY3NDg3NTI1OTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTg4MS43ODM0OTI2LCAic3RlcCI6IDIzMDAsICJ2YWx1ZSI6IDAuMDQ2Nzc0MDA3MzgwMDA4N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODkwLjQxNTY0MiwgInN0ZXAiOiAyMzEwLCAidmFsdWUiOiAwLjAzMTQ3NzEyMzQ5ODkxNjYyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODk4Ljg3ODQ1NTQsICJzdGVwIjogMjMyMCwgInZhbHVlIjogMC4wNTA4MzE0MTg0ODQ0NDkzOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTA4LjMxOTUxOCwgInN0ZXAiOiAyMzMwLCAidmFsdWUiOiAwLjAzNzU3OTk2NDg0NjM3MjYwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTE3LjQxNzA0MTMsICJzdGVwIjogMjM0MCwgInZhbHVlIjogMC4wMzgwMjM1NjQ5NjQ1MzI4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTI1Ljg1MjY1NzMsICJzdGVwIjogMjM1MCwgInZhbHVlIjogMC4wMzkzMjk1NDc0MzUwNDUyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTM4LjcwNTc4OTMsICJzdGVwIjogMjM2MCwgInZhbHVlIjogMC4wNzQwOTk4NTM2MzQ4MzQyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTQ3LjQyNzk3MSwgInN0ZXAiOiAyMzcwLCAidmFsdWUiOiAwLjAyOTg4MTc0MTg1MTU2ODIyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTU2LjIwOTY5MDgsICJzdGVwIjogMjM4MCwgInZhbHVlIjogMC4wNDUxODk1NjY5MTAyNjY4NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTk2NC4yNzY1NzE4LCAic3RlcCI6IDIzOTAsICJ2YWx1ZSI6IDAuMDc1NTk2MTMxMzg0MzcyNzF9LCB7IndhbGxUaW1lIjogMTczMzA2OTk3My4zMjc4NDQ5LCAic3RlcCI6IDI0MDAsICJ2YWx1ZSI6IDAuMDMyODc5MTcwMDMwMzU1NDUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5ODEuNDMzODcyMiwgInN0ZXAiOiAyNDEwLCAidmFsdWUiOiAwLjAyNDM4MzMwMDkxNTM2MDQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5OTAuMTQxNDUyLCAic3RlcCI6IDI0MjAsICJ2YWx1ZSI6IDAuMDQ3Njk2MTE3MzExNzE2MDh9LCB7IndhbGxUaW1lIjogMTczMzA2OTk5OC44MDA0Nzk0LCAic3RlcCI6IDI0MzAsICJ2YWx1ZSI6IDAuMDQxOTA2NDY4NTcwMjMyMzl9LCB7IndhbGxUaW1lIjogMTczMzA3MDAxMi40NTc1OTQ5LCAic3RlcCI6IDI0NDAsICJ2YWx1ZSI6IDAuMDQwOTU1NDAxOTU3MDM1MDY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMjEuNjAwODIyNCwgInN0ZXAiOiAyNDUwLCAidmFsdWUiOiAwLjAzNzU1Mzg1MDU2MTM4MDM4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDMwLjE5MjY4OTQsICJzdGVwIjogMjQ2MCwgInZhbHVlIjogMC4wMzcxMDkxNDc3NTcyOTE3OTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDAzOS4yMjEwMTEyLCAic3RlcCI6IDI0NzAsICJ2YWx1ZSI6IDAuMDQ5MTcyODk2ODkxODMyMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDA0OC4yNzA2Mjg3LCAic3RlcCI6IDI0ODAsICJ2YWx1ZSI6IDAuMDQzNTY5ODg1MTk0MzAxNjA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNTYuMTU3NDU3LCAic3RlcCI6IDI0OTAsICJ2YWx1ZSI6IDAuMDM1Mzc5NDA2MDY0NzQ4NzY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNjQuNDUyMzM3MywgInN0ZXAiOiAyNTAwLCAidmFsdWUiOiAwLjAyNzMyOTI3MzUyMTkwMDE3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDcyLjU1MzU5NDYsICJzdGVwIjogMjUxMCwgInZhbHVlIjogMC4wNTc1NTU2NjA2MDU0MzA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwODcuNjU4NjcxMSwgInN0ZXAiOiAyNTIwLCAidmFsdWUiOiAwLjAzMTI3MjQ2MzUwMDQ5OTcyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDk1LjQ0MzM3OTksICJzdGVwIjogMjUzMCwgInZhbHVlIjogMC4wMjYyNTU5ODM4NTkzMDA2MTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDEwMy43NzA1NzEsICJzdGVwIjogMjU0MCwgInZhbHVlIjogMC4wNTMzMzAyMTI4MzE0OTcxOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTEzLjA1MTEyNDYsICJzdGVwIjogMjU1MCwgInZhbHVlIjogMC4wNDMzMzE4MzE2OTM2NDkyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTIxLjAzOTQ1MzcsICJzdGVwIjogMjU2MCwgInZhbHVlIjogMC4wNTM5ODQxMTMwMzc1ODYyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTI5LjU4NjgxMiwgInN0ZXAiOiAyNTcwLCAidmFsdWUiOiAwLjAzOTU2MDY5MDUyMjE5MzkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMzguMzYyNTA0NSwgInN0ZXAiOiAyNTgwLCAidmFsdWUiOiAwLjA0MTY2NzI5Mzc1NzIwMDI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNDcuMDg5MDAwNywgInN0ZXAiOiAyNTkwLCAidmFsdWUiOiAwLjA0Mzk3Mjk5MTQwNjkxNzU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNTUuNDg4NTYzOCwgInN0ZXAiOiAyNjAwLCAidmFsdWUiOiAwLjAzNjc4MjIzODYzMjQ0MDU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNzIuNTc4OTkzLCAic3RlcCI6IDI2MTAsICJ2YWx1ZSI6IDAuMDQ2NzI1MTIwMzk1NDIxOTh9LCB7IndhbGxUaW1lIjogMTczMzA3MDE4MS4yMTI4MjY3LCAic3RlcCI6IDI2MjAsICJ2YWx1ZSI6IDAuMDM1OTIwOTQ0MDY0ODU1NTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxODkuNjk0MDk3LCAic3RlcCI6IDI2MzAsICJ2YWx1ZSI6IDAuMDQ2NjQ0MDg0MTU1NTU5NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDE5OC40MDA3OTcsICJzdGVwIjogMjY0MCwgInZhbHVlIjogMC4wNTEyMjAyNzU0NjE2NzM3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjA2LjcwOTEzMTIsICJzdGVwIjogMjY1MCwgInZhbHVlIjogMC4wNDEwODU2ODI4MDkzNTI4NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDIxNS42MDEzODAzLCAic3RlcCI6IDI2NjAsICJ2YWx1ZSI6IDAuMDM2MTUxODg5NzExNjE4NDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDIyNC4zMTc5NzgxLCAic3RlcCI6IDI2NzAsICJ2YWx1ZSI6IDAuMDQzODU5NTg5ODQ0OTQyMDl9LCB7IndhbGxUaW1lIjogMTczMzA3MDIzMy41NDEwNywgInN0ZXAiOiAyNjgwLCAidmFsdWUiOiAwLjA0ODg0MjMzMzI1NzE5ODMzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjQ2Ljc1OTk0NTQsICJzdGVwIjogMjY5MCwgInZhbHVlIjogMC4wMzI0OTE4NTkwNDg2MDQ5NjV9LCB7IndhbGxUaW1lIjogMTczMzA3MDI1Ni4wMzA4Nzg4LCAic3RlcCI6IDI3MDAsICJ2YWx1ZSI6IDAuMDU3MzUwMTAyODEyMDUxNzd9LCB7IndhbGxUaW1lIjogMTczMzA3MDI2NC45NTI0MzE3LCAic3RlcCI6IDI3MTAsICJ2YWx1ZSI6IDAuMDMxOTk1NTUzNTIzMzAyMDh9LCB7IndhbGxUaW1lIjogMTczMzA3MDI3My44Mjg3MDk0LCAic3RlcCI6IDI3MjAsICJ2YWx1ZSI6IDAuMDQ1ODg5MzQwMzQxMDkxMTU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyODIuOTYwNzgxLCAic3RlcCI6IDI3MzAsICJ2YWx1ZSI6IDAuMDQwODU5NDM0NzUzNjU2Mzl9LCB7IndhbGxUaW1lIjogMTczMzA3MDI5Mi4yNzk1NzU2LCAic3RlcCI6IDI3NDAsICJ2YWx1ZSI6IDAuMDM1NzczMTY5MjQ5Mjk2MTl9LCB7IndhbGxUaW1lIjogMTczMzA3MDMwMC4zMzg0NTgsICJzdGVwIjogMjc1MCwgInZhbHVlIjogMC4wNTQ0ODg5ODMwMDUyODUyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzA5LjQxMzg3NTMsICJzdGVwIjogMjc2MCwgInZhbHVlIjogMC4wNDgyNDgxNTY5MDUxNzQyNTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDMxNy41MzMyNTMsICJzdGVwIjogMjc3MCwgInZhbHVlIjogMC4wNDQ4Njk1NTMyOTc3NTgxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMzAuNDM3ODkyNywgInN0ZXAiOiAyNzgwLCAidmFsdWUiOiAwLjA0MjYxNzAwMDYzOTQzODYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMzkuODI1MTUwNywgInN0ZXAiOiAyNzkwLCAidmFsdWUiOiAwLjA0MTA4NTcwODg4NjM4NDk2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzQ3Ljk5NjU0NjUsICJzdGVwIjogMjgwMCwgInZhbHVlIjogMC4wMzQ0NzMyNDc4MjYwOTkzOTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDM1Ni44OTU4ODQ1LCAic3RlcCI6IDI4MTAsICJ2YWx1ZSI6IDAuMDQxMTI2MjU0OTQ1OTkzNDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDM2NS41Nzg3Mjk5LCAic3RlcCI6IDI4MjAsICJ2YWx1ZSI6IDAuMDM0MjYxMTA3NDQ0NzYzMTg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNzQuMzk1MzgwMywgInN0ZXAiOiAyODMwLCAidmFsdWUiOiAwLjAzMjA3MDQxMzIzMTg0OTY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzODIuNDI4NzEwNywgInN0ZXAiOiAyODQwLCAidmFsdWUiOiAwLjA1MjI4MjE0MzM4NDIxODIxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzkwLjk0MzA0MDQsICJzdGVwIjogMjg1MCwgInZhbHVlIjogMC4wMjk3MTQ0NjUxNDEyOTYzODd9LCB7IndhbGxUaW1lIjogMTczMzA3MDQwNi42ODA0MTcsICJzdGVwIjogMjg2MCwgInZhbHVlIjogMC4wNjMzMDg1MDcyMDQwNTU3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDE1LjA5MjA3MTgsICJzdGVwIjogMjg3MCwgInZhbHVlIjogMC4wNTgwNjQ5NTI0OTI3MTM5M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDIyLjkyMTgyMjgsICJzdGVwIjogMjg4MCwgInZhbHVlIjogMC4wMzAwNTE0Mjg4MjQ2NjMxNjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzMS41MzkwOTYsICJzdGVwIjogMjg5MCwgInZhbHVlIjogMC4wMzM2MTkwMjc1ODQ3OTExODN9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzOS45ODI3MzYsICJzdGVwIjogMjkwMCwgInZhbHVlIjogMC4wMzYxODE0Mzg3MTQyNjU4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDQ4LjA4NzI2OTgsICJzdGVwIjogMjkxMCwgInZhbHVlIjogMC4wNDc1NTM3OTYzMjExNTM2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDU3LjQyNTM5MzgsICJzdGVwIjogMjkyMCwgInZhbHVlIjogMC4wMzMzNTYyNzkxMzQ3NTAzNjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ2Ni43MjQ2NDA4LCAic3RlcCI6IDI5MzAsICJ2YWx1ZSI6IDAuMDUxMTc4NjUyNzkzMTY5MDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ3OS4zMzQ0MDc2LCAic3RlcCI6IDI5NDAsICJ2YWx1ZSI6IDAuMDQyNzczNzI3MzI3NTg1MjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ4OC43ODQxMzEsICJzdGVwIjogMjk1MCwgInZhbHVlIjogMC4wMjk2NTM4ODYzMzMxMDc5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDk3LjIyNjY2LCAic3RlcCI6IDI5NjAsICJ2YWx1ZSI6IDAuMDMyNjkwMTcxMTUyMzUzMjl9LCB7IndhbGxUaW1lIjogMTczMzA3MDUwNS42MzU1MTQzLCAic3RlcCI6IDI5NzAsICJ2YWx1ZSI6IDAuMDMyMDE3MTExNzc4MjU5Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDUxMy4zNTU2NDA2LCAic3RlcCI6IDI5ODAsICJ2YWx1ZSI6IDAuMDU4NDIzOTU0OTkzNDg2NDA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MjIuMzE5MTM4MywgInN0ZXAiOiAyOTkwLCAidmFsdWUiOiAwLjAzNzg0OTM2MjkzOTU5NjE3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTMwLjIxNDM0MiwgInN0ZXAiOiAzMDAwLCAidmFsdWUiOiAwLjA1NDE1NTE5Njk5NDU0MzA3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTM4LjMwMTY4ODcsICJzdGVwIjogMzAxMCwgInZhbHVlIjogMC4wMzA0Nzc5MjYxMzUwNjMxN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTQ3LjQwMjIwMjgsICJzdGVwIjogMzAyMCwgInZhbHVlIjogMC4wNDQ0MTQ1Njg2OTI0NDU3NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDU2NC4wNTI2OTMsICJzdGVwIjogMzAzMCwgInZhbHVlIjogMC4wMzg2MDU4MDE3NjExNTAzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTcyLjM3MTQwNTQsICJzdGVwIjogMzA0MCwgInZhbHVlIjogMC4wMjk3MTA1MjM3ODQxNjA2MTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDU4MC42NzI4MzksICJzdGVwIjogMzA1MCwgInZhbHVlIjogMC4wNTMzMDAyMzE2OTUxNzUxN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTg4LjY1NDg4NjcsICJzdGVwIjogMzA2MCwgInZhbHVlIjogMC4wMjkyMDM3MDM2MjY5OTAzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTk3LjQyMjU0MTEsICJzdGVwIjogMzA3MCwgInZhbHVlIjogMC4wMzM3NDY0ODQ2NjcwNjI3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjA2LjEzOTA5ODQsICJzdGVwIjogMzA4MCwgInZhbHVlIjogMC4wNjM5NzM3MDk5NDA5MTAzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjE0LjQ0MTUyNDUsICJzdGVwIjogMzA5MCwgInZhbHVlIjogMC4wNjAyMTk0NTE3ODUwODc1ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MDYyNC4wMDE5NDIsICJzdGVwIjogMzEwMCwgInZhbHVlIjogMC4wMjgxOTcyNTg3MTA4NjEyMDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDYzNy4yNTM3MTg2LCAic3RlcCI6IDMxMTAsICJ2YWx1ZSI6IDAuMDQ3NzUxNTM0NzMwMTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NDUuNjgzNzA0NCwgInN0ZXAiOiAzMTIwLCAidmFsdWUiOiAwLjAzMjM4MDE0ODc2ODQyNDk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NTQuMjcxMjY4NiwgInN0ZXAiOiAzMTMwLCAidmFsdWUiOiAwLjA0NTQxMzY2NTQ3MzQ2MTE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NjMuMzIyMDgxMywgInN0ZXAiOiAzMTQwLCAidmFsdWUiOiAwLjAzNzkwNjg4ODg3MjM4NTAyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjcxLjExODczNywgInN0ZXAiOiAzMTUwLCAidmFsdWUiOiAwLjA1NzUzNzAyNjcwMzM1Nzd9LCB7IndhbGxUaW1lIjogMTczMzA3MDY3OS43NjYyNzcsICJzdGVwIjogMzE2MCwgInZhbHVlIjogMC4wMjY3NzQ2NDY3MTQzMjk3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjg3Ljg0NjI5MDYsICJzdGVwIjogMzE3MCwgInZhbHVlIjogMC4wNTYwNTgyMDE5Mzg4Njc1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjk1Ljg1NjQ2OSwgInN0ZXAiOiAzMTgwLCAidmFsdWUiOiAwLjAzMDY0MTA4MjY3NDI2NDkwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzA0LjYyMzIxMiwgInN0ZXAiOiAzMTkwLCAidmFsdWUiOiAwLjAzNDMyODUwMTY3MTU1MjY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MTcuMTA5NjI2NSwgInN0ZXAiOiAzMjAwLCAidmFsdWUiOiAwLjA0NjYwMDk4OTk5NzM4NjkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MjYuMDk5NDU3NSwgInN0ZXAiOiAzMjEwLCAidmFsdWUiOiAwLjA0NjE1MjgyNjM5ODYxMTA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MzQuNzc5MTg2LCAic3RlcCI6IDMyMjAsICJ2YWx1ZSI6IDAuMDQzNTc0NDIyNTk3ODg1MTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDc0NC40MTMyODE3LCAic3RlcCI6IDMyMzAsICJ2YWx1ZSI6IDAuMDI4MDMzMzQwMzQ5NzkzNDM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NTIuNTAyMzgxMywgInN0ZXAiOiAzMjQwLCAidmFsdWUiOiAwLjAzOTkxOTc5NzMzMTA5NDc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NjEuNzIyMTA1LCAic3RlcCI6IDMyNTAsICJ2YWx1ZSI6IDAuMDI2NDUxMDYyNDExMDY5ODd9LCB7IndhbGxUaW1lIjogMTczMzA3MDc3MC4zNzczOTQ0LCAic3RlcCI6IDMyNjAsICJ2YWx1ZSI6IDAuMDI2NjQ3MzQwNTA2MzE1MjN9LCB7IndhbGxUaW1lIjogMTczMzA3MDc3OS43MzA3MDY3LCAic3RlcCI6IDMyNzAsICJ2YWx1ZSI6IDAuMDM1MDIwOTM2MjgwNDg4OTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDc5My42NzkzNDkyLCAic3RlcCI6IDMyODAsICJ2YWx1ZSI6IDAuMDM0MjA0OTI2MzQxNzcyMDh9LCB7IndhbGxUaW1lIjogMTczMzA3MDgwMS45MDA3MDQsICJzdGVwIjogMzI5MCwgInZhbHVlIjogMC4wMjc0NzIzNjU2NDc1NTQzOTh9LCB7IndhbGxUaW1lIjogMTczMzA3MDgxMC4xNjE3NzU2LCAic3RlcCI6IDMzMDAsICJ2YWx1ZSI6IDAuMDI2NjY0MDI5ODA2ODUyMzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDgxOC43MjczMTUsICJzdGVwIjogMzMxMCwgInZhbHVlIjogMC4wMzgxMjg3MzM2MzQ5NDg3M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwODI3LjAwOTEzMjksICJzdGVwIjogMzMyMCwgInZhbHVlIjogMC4wNDM4NjkxMTE2ODY5NDQ5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODM1LjU3NjY5ODgsICJzdGVwIjogMzMzMCwgInZhbHVlIjogMC4wNjM2MDc2MzMxMTM4NjEwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODQzLjk3Njg3NDgsICJzdGVwIjogMzM0MCwgInZhbHVlIjogMC4wMzk0MTkwNzczMzY3ODgxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODUzLjA5MjY2OCwgInN0ZXAiOiAzMzUwLCAidmFsdWUiOiAwLjA1Nzc0NDUzMjgyMzU2MjYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NjUuNDIwMzE5NiwgInN0ZXAiOiAzMzYwLCAidmFsdWUiOiAwLjAzMDkwMTU2NjE0NzgwNDI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NzMuNjYyMzczMywgInN0ZXAiOiAzMzcwLCAidmFsdWUiOiAwLjAzMzk1NzQ0NDEzMTM3NDM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4ODMuMzM2NzQ4OCwgInN0ZXAiOiAzMzgwLCAidmFsdWUiOiAwLjAzNDc0NzAyNjg2MDcxMzk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4OTIuMzc3NzMxOCwgInN0ZXAiOiAzMzkwLCAidmFsdWUiOiAwLjAzNTc3NTI0MDUxMDcwMjEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MDAuNzIzMTA4MywgInN0ZXAiOiAzNDAwLCAidmFsdWUiOiAwLjA0NzIwMjY0NjczMjMzMDMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MDguNTA0OTI1LCAic3RlcCI6IDM0MTAsICJ2YWx1ZSI6IDAuMDI5NDA4NDkyMTQ3OTIyNTE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MTYuNjU2NTAwOCwgInN0ZXAiOiAzNDIwLCAidmFsdWUiOiAwLjA0NDQ1MDQ1NDQxMzg5MDg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MjUuMjExODY2OSwgInN0ZXAiOiAzNDMwLCAidmFsdWUiOiAwLjAzNDYzMTYzNTk5MzcxOTF9LCB7IndhbGxUaW1lIjogMTczMzA3MDkzMy44MTEwMzkyLCAic3RlcCI6IDM0NDAsICJ2YWx1ZSI6IDAuMDM3MTI0NjMwMDYzNzcyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTQ3LjQ4MDU1ODksICJzdGVwIjogMzQ1MCwgInZhbHVlIjogMC4wMzIzMDQ4NTY5MjYyMDI3NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDk1Ni4xODgzNDEsICJzdGVwIjogMzQ2MCwgInZhbHVlIjogMC4wMzA2MTEwMzYzNDUzNjI2NjN9LCB7IndhbGxUaW1lIjogMTczMzA3MDk2NC4yNjcxMjA0LCAic3RlcCI6IDM0NzAsICJ2YWx1ZSI6IDAuMDkzNDY3MDQ5MzAwNjcwNjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDk3Mi4zODY5MTksICJzdGVwIjogMzQ4MCwgInZhbHVlIjogMC4wNDEwNjU0NjE5MzM2MTI4MjN9LCB7IndhbGxUaW1lIjogMTczMzA3MDk4MC42NDc4NzQ2LCAic3RlcCI6IDM0OTAsICJ2YWx1ZSI6IDAuMDQxMzIxNDM3ODA1ODkxMDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDk4OS42ODg1MjExLCAic3RlcCI6IDM1MDAsICJ2YWx1ZSI6IDAuMDM0ODY2NTcxNDI2MzkxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTk3Ljc4OTQ3NiwgInN0ZXAiOiAzNTEwLCAidmFsdWUiOiAwLjA1MjI5NDA2MDU4Nzg4Mjk5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDA2LjI3MjI0MywgInN0ZXAiOiAzNTIwLCAidmFsdWUiOiAwLjA2MzYwOTk3MjU5NjE2ODUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMTguODk2OTQzNiwgInN0ZXAiOiAzNTMwLCAidmFsdWUiOiAwLjA0MTQ5MDc1NTk3NTI0NjQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMjcuMTk4MTM2LCAic3RlcCI6IDM1NDAsICJ2YWx1ZSI6IDAuMDIzNjIxMzAyMDk4MDM1ODEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMzUuMzIxNDUwMiwgInN0ZXAiOiAzNTUwLCAidmFsdWUiOiAwLjA1MDU3ODg2NjE1Mzk1NTQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNDMuNzQ2NTk4NywgInN0ZXAiOiAzNTYwLCAidmFsdWUiOiAwLjAzMjgyOTY0OTc0NjQxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDUxLjg3MzA1MDcsICJzdGVwIjogMzU3MCwgInZhbHVlIjogMC4wNDY4NDk4NDMxMTQ2MTQ0OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDYwLjQ5NzAyMzMsICJzdGVwIjogMzU4MCwgInZhbHVlIjogMC4wNDAyNjEyOTg0MTgwNDUwNDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTA2OC44ODAzODEsICJzdGVwIjogMzU5MCwgInZhbHVlIjogMC4wNDY3MDg4NTk1MDMyNjkxOTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTA3Ny43MTM5MTI1LCAic3RlcCI6IDM2MDAsICJ2YWx1ZSI6IDAuMDQwMTM1NzQ4Njg0NDA2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTA4Ni4yMTMzMTgzLCAic3RlcCI6IDM2MTAsICJ2YWx1ZSI6IDAuMDM4NDMxMjkwNTM3MTE4OTF9LCB7IndhbGxUaW1lIjogMTczMzA3MTEwMS42NTk3NDE5LCAic3RlcCI6IDM2MjAsICJ2YWx1ZSI6IDAuMDM5NjAyNzQ5MDQ5NjYzNTQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMDkuNjIyOTUzNywgInN0ZXAiOiAzNjMwLCAidmFsdWUiOiAwLjA0ODMwNDYwNjIyOTA2Njg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMTguMTMwMjExLCAic3RlcCI6IDM2NDAsICJ2YWx1ZSI6IDAuMDM1MTg4MjIwNDQxMzQxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTI2Ljk5NDExODUsICJzdGVwIjogMzY1MCwgInZhbHVlIjogMC4wMzI2MDM4ODU5Nzg0NjAzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTM1LjgyODM2OTEsICJzdGVwIjogMzY2MCwgInZhbHVlIjogMC4wNDM4NzM0NDQxOTk1NjIwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTQ0LjI0OTQzMywgInN0ZXAiOiAzNjcwLCAidmFsdWUiOiAwLjAzODA5NzUwNDUyNjM3NjcyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTUyLjk2NTQ2MTMsICJzdGVwIjogMzY4MCwgInZhbHVlIjogMC4wMzM4Nzc0OTk0MDE1NjkzNjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTE2MC42MDQ0MDc4LCAic3RlcCI6IDM2OTAsICJ2YWx1ZSI6IDAuMDMzNzc3NzQzNTc3OTU3MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTE3My43NTEyODIyLCAic3RlcCI6IDM3MDAsICJ2YWx1ZSI6IDAuMDM3NDU1ODAwOTIwNzI0ODd9LCB7IndhbGxUaW1lIjogMTczMzA3MTE4Mi44ODQyMDYzLCAic3RlcCI6IDM3MTAsICJ2YWx1ZSI6IDAuMDMwMTEzNjI2MjcxNDg2MjgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExOTEuMjExMTUxMSwgInN0ZXAiOiAzNzIwLCAidmFsdWUiOiAwLjA1ODY3MTYzMDkxODk3OTY0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjAwLjMzNDM3NCwgInN0ZXAiOiAzNzMwLCAidmFsdWUiOiAwLjAyNDQ1MzI4NjA4MTU1MjUwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjA4LjM2NjY4LCAic3RlcCI6IDM3NDAsICJ2YWx1ZSI6IDAuMDI2ODg5MjE5ODgwMTA0MDY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMTYuNTcyODk5LCAic3RlcCI6IDM3NTAsICJ2YWx1ZSI6IDAuMDU0NDM1NzExMzU0MDE3MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTIyNC42NjI4NTI4LCAic3RlcCI6IDM3NjAsICJ2YWx1ZSI6IDAuMDI2MTM2MTM3NTQ1MTA4Nzk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMzIuODYxNzI5NCwgInN0ZXAiOiAzNzcwLCAidmFsdWUiOiAwLjA1NTExNzY2NjcyMTM0Mzk5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjQ4LjUzNDU0NDIsICJzdGVwIjogMzc4MCwgInZhbHVlIjogMC4wMjc3MDE3NjE1NzM1NTMwODV9LCB7IndhbGxUaW1lIjogMTczMzA3MTI1Ny4zOTI3MzMsICJzdGVwIjogMzc5MCwgInZhbHVlIjogMC4wMzMwNjEzOTYzMzA1OTUwMTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTI2NS41NjgzMTEyLCAic3RlcCI6IDM4MDAsICJ2YWx1ZSI6IDAuMDMyOTI4NzEyNjY2MDM0N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjc0LjE5OTEwODYsICJzdGVwIjogMzgxMCwgInZhbHVlIjogMC4wMzM1NzkyNTI2NjAyNzQ1MDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTI4My4wMTg5MzY0LCAic3RlcCI6IDM4MjAsICJ2YWx1ZSI6IDAuMDMzMzg5MDM1NjEyMzQ0NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MTI5MS43MzA3ODY4LCAic3RlcCI6IDM4MzAsICJ2YWx1ZSI6IDAuMDMxNzEwNzU1MDc5OTg0NjY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyOTkuODk1MDk0OSwgInN0ZXAiOiAzODQwLCAidmFsdWUiOiAwLjAzMDUyNjEzNjk3OTQ2MDcxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzA4LjQ4MDUzOTMsICJzdGVwIjogMzg1MCwgInZhbHVlIjogMC4wNDQ2Njk5MTQ5OTA2NjM1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzE2Ljk1MjYyMzgsICJzdGVwIjogMzg2MCwgInZhbHVlIjogMC4wMzg0MjMyNjk5ODcxMDYzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzMwLjIxNjQzMiwgInN0ZXAiOiAzODcwLCAidmFsdWUiOiAwLjA0MDc0OTk3ODI3NDEwNjk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMzguOTkwMTAzNSwgInN0ZXAiOiAzODgwLCAidmFsdWUiOiAwLjA0MzE0NzUxMTc4MDI2MTk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNDcuNzM3OTg2MywgInN0ZXAiOiAzODkwLCAidmFsdWUiOiAwLjAyNTc1NTgxNTIwNzk1ODIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNTcuMDM1OTgwNywgInN0ZXAiOiAzOTAwLCAidmFsdWUiOiAwLjAzMTg3OTU4NTIzNjMxMDk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNjUuMjI2NjYwNSwgInN0ZXAiOiAzOTEwLCAidmFsdWUiOiAwLjA2MTMxMjkxMzg5NDY1MzMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNzQuMTM1OTE2NSwgInN0ZXAiOiAzOTIwLCAidmFsdWUiOiAwLjA0NzMzNTIwMDAxMTczMDE5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzgyLjgxNTE1MDMsICJzdGVwIjogMzkzMCwgInZhbHVlIjogMC4wNDk3NDg4MTU1OTYxMDM2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzkxLjU2OTY4NzgsICJzdGVwIjogMzk0MCwgInZhbHVlIjogMC4wMjk5MjU4MDY0NDc4NjM1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDA0LjQ2ODY5MjMsICJzdGVwIjogMzk1MCwgInZhbHVlIjogMC4wMjgzMTE0NDA3MjExNTQyMTN9LCB7IndhbGxUaW1lIjogMTczMzA3MTQxMi4zNDAyNDA3LCAic3RlcCI6IDM5NjAsICJ2YWx1ZSI6IDAuMDI4OTg1OTQzNjQ1MjM4ODc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MjEuMTU4ODY4OCwgInN0ZXAiOiAzOTcwLCAidmFsdWUiOiAwLjA0MjkwMTYxMjgxODI0MTEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MzAuMTIxOTE1MywgInN0ZXAiOiAzOTgwLCAidmFsdWUiOiAwLjAzMzk4NDI2OTk0NjgxMzU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MzguNDE1MzkyOSwgInN0ZXAiOiAzOTkwLCAidmFsdWUiOiAwLjA0NzU0NDI4MTkyOTczMTM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NDcuNzMwMjQ2MywgInN0ZXAiOiA0MDAwLCAidmFsdWUiOiAwLjAyNDExNzQ5NDAwMTk4NDU5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDU2LjE5Nzk3NDIsICJzdGVwIjogNDAxMCwgInZhbHVlIjogMC4wNzQzNTIzOTg1MTQ3NDc2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDY0Ljc1MDg2ODMsICJzdGVwIjogNDAyMCwgInZhbHVlIjogMC4wMzc3NDQyOTExMjY3MjgwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDczLjM5OTE1NTQsICJzdGVwIjogNDAzMCwgInZhbHVlIjogMC4wMzU2NzA0Mjk0NjgxNTQ5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDkwLjI4Nzg3MzMsICJzdGVwIjogNDA0MCwgInZhbHVlIjogMC4wMzk2NjEwMjM3NjU4MDIzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDk4LjcxMzEyOSwgInN0ZXAiOiA0MDUwLCAidmFsdWUiOiAwLjA0MjY5NDY1ODA0MTAwMDM2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTA3LjA5ODk3OCwgInN0ZXAiOiA0MDYwLCAidmFsdWUiOiAwLjAyOTYyODkwMjY3MzcyMTMxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTE1LjA2OTI1NjUsICJzdGVwIjogNDA3MCwgInZhbHVlIjogMC4wNjcxMjA5OTE2NDcyNDM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MjMuOTA4MjUzMiwgInN0ZXAiOiA0MDgwLCAidmFsdWUiOiAwLjAyOTE1MTY2NTA0NjgxMTEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTMyLjI4NzA4NzcsICJzdGVwIjogNDA5MCwgInZhbHVlIjogMC4wMzU1MTU3ODg5NDI1NzU0NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTU0MC45MTkxNTEsICJzdGVwIjogNDEwMCwgInZhbHVlIjogMC4wMjU4MzQzNTkyMjg2MTA5OTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTU0OS4xNzc3OTMsICJzdGVwIjogNDExMCwgInZhbHVlIjogMC4wMjc2NDI3NjQxNTEwOTYzNDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTU2NS44Mzc3MzQ1LCAic3RlcCI6IDQxMjAsICJ2YWx1ZSI6IDAuMDI3NTg4NzI1MDkwMDI2ODU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NzMuNjMzNDU4LCAic3RlcCI6IDQxMzAsICJ2YWx1ZSI6IDAuMDMyNjE3NDQyMzA5ODU2NDE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1ODIuMDk4MDIwNiwgInN0ZXAiOiA0MTQwLCAidmFsdWUiOiAwLjA0MzI2NzIxMjgwODEzMjE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1OTAuMDI0NTExOCwgInN0ZXAiOiA0MTUwLCAidmFsdWUiOiAwLjAzOTYzOTQ1ODA2MDI2NDU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1OTkuMjQyODk4NywgInN0ZXAiOiA0MTYwLCAidmFsdWUiOiAwLjAzMjg1NjIyNTk2NzQwNzIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2MDguMDczNjY1OSwgInN0ZXAiOiA0MTcwLCAidmFsdWUiOiAwLjAzNTg3OTY1Mjk0NzE4NzQyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjE2LjE4NTkyOCwgInN0ZXAiOiA0MTgwLCAidmFsdWUiOiAwLjA2MjkxNTMxNzcxNDIxNDMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2MjYuMDg0ODM5MywgInN0ZXAiOiA0MTkwLCAidmFsdWUiOiAwLjAyNzQwOTM5MTQ3NzcwNDA0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjQxLjAxMDMzNzgsICJzdGVwIjogNDIwMCwgInZhbHVlIjogMC4wMzUxMjY3MTk2MjM4MDQwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjQ5LjA0Mjc5NTcsICJzdGVwIjogNDIxMCwgInZhbHVlIjogMC4wNDIzMzYyNDc4NjEzODUzNDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTY1OC41MzM1MTQ3LCAic3RlcCI6IDQyMjAsICJ2YWx1ZSI6IDAuMDQwOTE4NDk5MjMxMzM4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjY3Ljk2ODE4MiwgInN0ZXAiOiA0MjMwLCAidmFsdWUiOiAwLjAyNzQ3OTk0Mjg4ODAyMTQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NzYuMTEwOTA5MiwgInN0ZXAiOiA0MjQwLCAidmFsdWUiOiAwLjAyNjIyNjkzOTYzMzQ4ODY1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjg0LjM4MDcxMSwgInN0ZXAiOiA0MjUwLCAidmFsdWUiOiAwLjA0ODU0MDg5NzY2NzQwNzk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2OTMuMTExODA1LCAic3RlcCI6IDQyNjAsICJ2YWx1ZSI6IDAuMDIzNjM0NTUyOTU1NjI3NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTcwMi4xODYwNTY5LCAic3RlcCI6IDQyNzAsICJ2YWx1ZSI6IDAuMDQzNzc1MTA3NzExNTUzNTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MTAuNjMzMDIyLCAic3RlcCI6IDQyODAsICJ2YWx1ZSI6IDAuMDIzNTI3ODUxMzI4MjUzNzQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MjYuNjc4OTU5NCwgInN0ZXAiOiA0MjkwLCAidmFsdWUiOiAwLjAzNTM4OTA3NjkxODM2MzU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MzUuMjE3NzgsICJzdGVwIjogNDMwMCwgInZhbHVlIjogMC4wMzkyNDY3MDgxNTQ2NzgzNDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTc0Mi45NTkyODEsICJzdGVwIjogNDMxMCwgInZhbHVlIjogMC4wMzU1ODU2NTMwMzY4MzI4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzUxLjU4Nzg4OTIsICJzdGVwIjogNDMyMCwgInZhbHVlIjogMC4wMzA3MjM2NDI1NTc4NTk0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzYwLjAzNzE4NTIsICJzdGVwIjogNDMzMCwgInZhbHVlIjogMC4wMzEyNTQ4NTAzMjc5Njg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NjguNDMzNTE2NSwgInN0ZXAiOiA0MzQwLCAidmFsdWUiOiAwLjAzMjY3ODg0MjU0NDU1NTY2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzc3LjQwNDQxMjcsICJzdGVwIjogNDM1MCwgInZhbHVlIjogMC4wNDM3MjUyMzcyNTAzMjgwNjR9LCB7IndhbGxUaW1lIjogMTczMzA3MTc4NS41NDk1MTEsICJzdGVwIjogNDM2MCwgInZhbHVlIjogMC4wNDE3ODU0ODIzMTcyMDkyNDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTgwMC44ODcxNDcyLCAic3RlcCI6IDQzNzAsICJ2YWx1ZSI6IDAuMDM5MzY3NjE2MTc2NjA1MjI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MDkuMjY4MTAzMSwgInN0ZXAiOiA0MzgwLCAidmFsdWUiOiAwLjAzMTQwNDg5NzU3MDYxMDA0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODE3LjM0ODY2NSwgInN0ZXAiOiA0MzkwLCAidmFsdWUiOiAwLjA2ODY1ODQzMzg1NDU3OTkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MjYuNDMyNjQxNSwgInN0ZXAiOiA0NDAwLCAidmFsdWUiOiAwLjA0NDc5NzA4MTUwMDI5MTgyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODM0Ljg4OTgwOSwgInN0ZXAiOiA0NDEwLCAidmFsdWUiOiAwLjA0NjMwNDk0ODYyNzk0ODc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NDMuNDQ5MDg4LCAic3RlcCI6IDQ0MjAsICJ2YWx1ZSI6IDAuMDUyODU3NDE3NjEzMjY3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODUxLjU5ODI2ODcsICJzdGVwIjogNDQzMCwgInZhbHVlIjogMC4wMzMxMTA4NjA3MzUxNzc5OTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTg1OS45MjY0MTE2LCAic3RlcCI6IDQ0NDAsICJ2YWx1ZSI6IDAuMDI4NDQxMzE1NTE2ODI5NDl9LCB7IndhbGxUaW1lIjogMTczMzA3MTg2OC42NzU0NjU2LCAic3RlcCI6IDQ0NTAsICJ2YWx1ZSI6IDAuMDQwNDUwOTU2NjcyNDMwMDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTg4MS4zMzgzOSwgInN0ZXAiOiA0NDYwLCAidmFsdWUiOiAwLjAzMzM5NjgyNTE5NDM1ODgyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODg5LjYzOTkyNDUsICJzdGVwIjogNDQ3MCwgInZhbHVlIjogMC4wMzUyNjg5Mjg4NTU2NTc1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODk4LjQyMzA0MjUsICJzdGVwIjogNDQ4MCwgInZhbHVlIjogMC4wMzI5NzU1MzIxMTQ1MDU3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTA3LjMzODIyMzcsICJzdGVwIjogNDQ5MCwgInZhbHVlIjogMC4wNDA1ODA5NjU1Nzg1NTYwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTE2LjI4MDQyMDgsICJzdGVwIjogNDUwMCwgInZhbHVlIjogMC4wNDQzNjc2Nzg0NjM0NTkwMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTkyNS4zNTA4Njg1LCAic3RlcCI6IDQ1MTAsICJ2YWx1ZSI6IDAuMDQ2NzkyMzA5NzMxMjQ1MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTkzMy4zMzE1NzMsICJzdGVwIjogNDUyMCwgInZhbHVlIjogMC4wNDk3MDA4NTI0ODM1MTA5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTQxLjQ4NDg2ODMsICJzdGVwIjogNDUzMCwgInZhbHVlIjogMC4wMzU4MzY0NTA3NTU1OTYxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTU0LjE3MTE3NTcsICJzdGVwIjogNDU0MCwgInZhbHVlIjogMC4wMjY4NzE2ODMwNzYwMjQwNTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTk2Mi4zOTc5OTUyLCAic3RlcCI6IDQ1NTAsICJ2YWx1ZSI6IDAuMDMwMzk5ODAzMDcyMjE0MTI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NzAuNTE1NDU4MywgInN0ZXAiOiA0NTYwLCAidmFsdWUiOiAwLjA0MjE0NTQ2MDg0NDAzOTkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NzguODcyMDU5NiwgInN0ZXAiOiA0NTcwLCAidmFsdWUiOiAwLjAzMDUyMjM4NTYxMjEzMDE2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTg3LjcxMjU5MywgInN0ZXAiOiA0NTgwLCAidmFsdWUiOiAwLjA1MzMxOTk3MjAwODQ2NjcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5OTYuNDQ3MjE4LCAic3RlcCI6IDQ1OTAsICJ2YWx1ZSI6IDAuMDUyMDk1NTY5NjcwMjAwMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MjAwNC40NzgwNDM4LCAic3RlcCI6IDQ2MDAsICJ2YWx1ZSI6IDAuMDE5NzY3NzI5NTY1NTAxMjEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMTIuNzQ2ODA4OCwgInN0ZXAiOiA0NjEwLCAidmFsdWUiOiAwLjAzMjM5MDc4NDQ3MjIyNzF9LCB7IndhbGxUaW1lIjogMTczMzA3MjAyNS40MDIzNDk3LCAic3RlcCI6IDQ2MjAsICJ2YWx1ZSI6IDAuMDQyNjg2MDM3NzE5MjQ5NzI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMzQuMTIwMzY5NywgInN0ZXAiOiA0NjMwLCAidmFsdWUiOiAwLjAyNTMwOTU0MDMzMTM2MzY3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDQzLjAzOTg3NDMsICJzdGVwIjogNDY0MCwgInZhbHVlIjogMC4wMzgzNTgxNzc5ODk3MjEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNTEuNzg4NTcxNiwgInN0ZXAiOiA0NjUwLCAidmFsdWUiOiAwLjAzMTEzMjcwOTIzNDk1MjkyN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDYwLjExMDExMTIsICJzdGVwIjogNDY2MCwgInZhbHVlIjogMC4wNDY2NzQ5MTA5MzI3NzkzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDY4LjYwNDg0NDgsICJzdGVwIjogNDY3MCwgInZhbHVlIjogMC4wNTA5Nzk2MzY2MDk1NTQyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDc2LjgzODIyNCwgInN0ZXAiOiA0NjgwLCAidmFsdWUiOiAwLjA0MDU0MjEwMzM1MDE2MjUwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDg1LjM3NzU4MTgsICJzdGVwIjogNDY5MCwgInZhbHVlIjogMC4wMjc0MTQ0MzczODM0MTMzMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjA5My43NTAwNjQ4LCAic3RlcCI6IDQ3MDAsICJ2YWx1ZSI6IDAuMDM5MzkxMzYxMTc2OTY3NjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjEwNi45OTEyNDc3LCAic3RlcCI6IDQ3MTAsICJ2YWx1ZSI6IDAuMDQyNDA0NzI2MTQ3NjUxNjd9LCB7IndhbGxUaW1lIjogMTczMzA3MjExNS42NjY3MDA2LCAic3RlcCI6IDQ3MjAsICJ2YWx1ZSI6IDAuMDUzNzI4NTE3MTQ0OTE4NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjEyMy45NTIxMDk4LCAic3RlcCI6IDQ3MzAsICJ2YWx1ZSI6IDAuMDQ3Nzg5OTM4NzQ3ODgyODR9LCB7IndhbGxUaW1lIjogMTczMzA3MjEzMi4yODIxODcsICJzdGVwIjogNDc0MCwgInZhbHVlIjogMC4wMzEyNzE5ODI5MzgwNTEyMjR9LCB7IndhbGxUaW1lIjogMTczMzA3MjE0MC40MjIxODExLCAic3RlcCI6IDQ3NTAsICJ2YWx1ZSI6IDAuMDYxNzMzODY3OTczMDg5MjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjE0OS4wODg1OTczLCAic3RlcCI6IDQ3NjAsICJ2YWx1ZSI6IDAuMDI3MTQ2Mjg1Mzk5Nzk0NTh9LCB7IndhbGxUaW1lIjogMTczMzA3MjE1Ny40MTMzMTg0LCAic3RlcCI6IDQ3NzAsICJ2YWx1ZSI6IDAuMDMwOTM0MjE2NDU0NjI1MTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjE2NS40OTA3NzU4LCAic3RlcCI6IDQ3ODAsICJ2YWx1ZSI6IDAuMDU1NjI4OTU5MDg5NTE3NTl9LCB7IndhbGxUaW1lIjogMTczMzA3MjE3OS42NTE3MzU4LCAic3RlcCI6IDQ3OTAsICJ2YWx1ZSI6IDAuMDM1NjQyMDUwMjA2NjYxMjI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxODguMzMxMDgzNSwgInN0ZXAiOiA0ODAwLCAidmFsdWUiOiAwLjAyODgxODc4OTg2OTU0Njg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxOTYuODQ4NDY4LCAic3RlcCI6IDQ4MTAsICJ2YWx1ZSI6IDAuMDQwOTA4ODg0MjU3MDc4MTd9LCB7IndhbGxUaW1lIjogMTczMzA3MjIwNC41NjM3MzEsICJzdGVwIjogNDgyMCwgInZhbHVlIjogMC4wMzU4NzkxMDUzMjk1MTM1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjEzLjEwMTEwMjYsICJzdGVwIjogNDgzMCwgInZhbHVlIjogMC4wMjM4NDc5NDEzMDkyMTM2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjIxLjY2ODU5ODIsICJzdGVwIjogNDg0MCwgInZhbHVlIjogMC4wMjY0ODg5MDIwNDcyNzY0OTd9LCB7IndhbGxUaW1lIjogMTczMzA3MjIyOS44OTU1MzA3LCAic3RlcCI6IDQ4NTAsICJ2YWx1ZSI6IDAuMDI2NTY3NjkwMDc0NDQzODE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMzguMDU3Njk4NSwgInN0ZXAiOiA0ODYwLCAidmFsdWUiOiAwLjAzODY4MDA0Njc5Njc5ODcwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjQ2LjM0NTA5MTYsICJzdGVwIjogNDg3MCwgInZhbHVlIjogMC4wMjU1NTYzMjU5MTI0NzU1ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjI2MS4yNjg4ODUsICJzdGVwIjogNDg4MCwgInZhbHVlIjogMC4wMzU2MTI1NjA4MDg2NTg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNjkuODU0MjU5MywgInN0ZXAiOiA0ODkwLCAidmFsdWUiOiAwLjAzODM1NTEwMDg5OTkzNDc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNzguODgxODYyNCwgInN0ZXAiOiA0OTAwLCAidmFsdWUiOiAwLjAzNzQ2MTEzMTgxMTE0MTk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyODcuNTM2MDExNywgInN0ZXAiOiA0OTEwLCAidmFsdWUiOiAwLjAzMDIwNjc0NzM1MzA3NjkzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjk1Ljk0ODgzMywgInN0ZXAiOiA0OTIwLCAidmFsdWUiOiAwLjAzNDk2NzI0NzM5NjcwNzUzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzA0LjM1NjkyNCwgInN0ZXAiOiA0OTMwLCAidmFsdWUiOiAwLjA0NjUyMzg1NDEzNjQ2Njk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMTMuNTExNDIzOCwgInN0ZXAiOiA0OTQwLCAidmFsdWUiOiAwLjAzMDQ4NzgyOTgxOTMyMTYzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzIxLjMyNzAwNTEsICJzdGVwIjogNDk1MCwgInZhbHVlIjogMC4wMzQyMzg2MTQxNDE5NDEwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzM3LjAyNjYzMzUsICJzdGVwIjogNDk2MCwgInZhbHVlIjogMC4wMzA3MjAxODE3NjMxNzIxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzQ1LjUzNDYxMTcsICJzdGVwIjogNDk3MCwgInZhbHVlIjogMC4wMjY5MTEwNDI2MzA2NzI0NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjM1My40MzE0MTg3LCAic3RlcCI6IDQ5ODAsICJ2YWx1ZSI6IDAuMDI1NTA5NTM2MjY2MzI2OTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNjIuNDE0OTAxMywgInN0ZXAiOiA0OTkwLCAidmFsdWUiOiAwLjA0NDE0Mjc2Nzc4Njk3OTY3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzcxLjc0NzY0MDQsICJzdGVwIjogNTAwMCwgInZhbHVlIjogMC4wNDQyOTgyNTAyMjgxNjY1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzgwLjUzMTM0NDQsICJzdGVwIjogNTAxMCwgInZhbHVlIjogMC4wMjkxMzA0MzgzNDI2OTA0Njh9LCB7IndhbGxUaW1lIjogMTczMzA3MjM4OS4wMjgyMSwgInN0ZXAiOiA1MDIwLCAidmFsdWUiOiAwLjA0MTIwMjk4NDc1MDI3MDg0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzk3Ljc4NzI4NiwgInN0ZXAiOiA1MDMwLCAidmFsdWUiOiAwLjAzMDUxMjIyODYwODEzMTQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MTEuMzAwMTgzNSwgInN0ZXAiOiA1MDQwLCAidmFsdWUiOiAwLjA0MDU3ODQyNDkzMDU3MjUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MTkuNDc2MDY4MywgInN0ZXAiOiA1MDUwLCAidmFsdWUiOiAwLjAzOTQ0NTc3NjQ5MjM1NzI1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDI4LjM3Mzk1MjIsICJzdGVwIjogNTA2MCwgInZhbHVlIjogMC4wNDY5NzA4OTY0MjI4NjMwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDM3LjExODgwNzMsICJzdGVwIjogNTA3MCwgInZhbHVlIjogMC4wNDA3NTQ4MDI1MjUwNDM0OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDQ2LjE3NzExOTMsICJzdGVwIjogNTA4MCwgInZhbHVlIjogMC4wNDk0NzI5NTc4NDk1MDI1NjN9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ1NC40MzAzMjYsICJzdGVwIjogNTA5MCwgInZhbHVlIjogMC4wMzcyNTg4NDEwOTczNTQ4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDYyLjQxMjMwNSwgInN0ZXAiOiA1MTAwLCAidmFsdWUiOiAwLjA0NDUxMTczOTE2NDU5MDgzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDcxLjE1MjQ3NiwgInN0ZXAiOiA1MTEwLCAidmFsdWUiOiAwLjAyOTAzNzk4NTk1MDcwODM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NzguOTQ4NDY0MiwgInN0ZXAiOiA1MTIwLCAidmFsdWUiOiAwLjAzMDExMTY1OTMxODIwODY5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDkxLjMyMzQ0NjUsICJzdGVwIjogNTEzMCwgInZhbHVlIjogMC4wNDQ3NTE3NTk2MTg1MjA3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDk5LjI2MDUwMzMsICJzdGVwIjogNTE0MCwgInZhbHVlIjogMC4wMjM2MTM3NDE2MjEzNzUwODR9LCB7IndhbGxUaW1lIjogMTczMzA3MjUwNy4xMTM4MDg0LCAic3RlcCI6IDUxNTAsICJ2YWx1ZSI6IDAuMDQwNDQ4ODM2OTgyMjUwMjE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MTUuMzE5MDMxMiwgInN0ZXAiOiA1MTYwLCAidmFsdWUiOiAwLjAyNTExNTc4NDI1NzY1MDM3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTIzLjUxODkzMjYsICJzdGVwIjogNTE3MCwgInZhbHVlIjogMC4wMjk5NDM1MjU3OTExNjgyMTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjUzMS4wODkwNDI3LCAic3RlcCI6IDUxODAsICJ2YWx1ZSI6IDAuMDI0Nzg3ODQzMjI3Mzg2NDc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NDAuMDI1MjU5LCAic3RlcCI6IDUxOTAsICJ2YWx1ZSI6IDAuMDI5NjQ1NzUyMTYxNzQxMjU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NDguNjU1NDM3LCAic3RlcCI6IDUyMDAsICJ2YWx1ZSI6IDAuMDI5MTU0Nzc3NTI2ODU1NDd9LCB7IndhbGxUaW1lIjogMTczMzA3MjU2MS40MTg2MDUzLCAic3RlcCI6IDUyMTAsICJ2YWx1ZSI6IDAuMDQ2ODA0MzIwMDY3MTY3Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjU2OS44OTk2ODYzLCAic3RlcCI6IDUyMjAsICJ2YWx1ZSI6IDAuMDM1NTEzMTU4ODg3NjI0NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MjU3OC42ODIyNTI0LCAic3RlcCI6IDUyMzAsICJ2YWx1ZSI6IDAuMDQ1OTAzNDY2NjQxOTAyOTI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1ODYuOTQ1NTgsICJzdGVwIjogNTI0MCwgInZhbHVlIjogMC4wMzI5NzQxNzk4MzQxMjc0MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjU5NS4wMzYxMTE4LCAic3RlcCI6IDUyNTAsICJ2YWx1ZSI6IDAuMDQ2MTI3MzgyNjY1ODcyNTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MDMuMTc1MjI2NCwgInN0ZXAiOiA1MjYwLCAidmFsdWUiOiAwLjA0NDg0NjY0Mjc2MjQyMjU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MTEuMDgyNjE3MywgInN0ZXAiOiA1MjcwLCAidmFsdWUiOiAwLjA2NzgyMjIyNTM5MTg2NDc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MTkuOTU4MTIyLCAic3RlcCI6IDUyODAsICJ2YWx1ZSI6IDAuMDI5MDk5MTcwMTE4NTcwMzI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MjguNjM2MzEwNiwgInN0ZXAiOiA1MjkwLCAidmFsdWUiOiAwLjAyNjc2OTQ0MDYyMTEzNzYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NDEuMzc3Mzg5LCAic3RlcCI6IDUzMDAsICJ2YWx1ZSI6IDAuMDI2ODE4MTA0MDg4MzA2NDI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NDkuODYwMzQ3LCAic3RlcCI6IDUzMTAsICJ2YWx1ZSI6IDAuMDM1Nzc5ODc4NDk3MTIzNzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjY1Ny45NzMxMzY0LCAic3RlcCI6IDUzMjAsICJ2YWx1ZSI6IDAuMDM0MzA0MTgyOTc2NDg0M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjY3LjAzMTIxODUsICJzdGVwIjogNTMzMCwgInZhbHVlIjogMC4wMzY5OTM1NjMxNzUyMDE0MTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjY3NS45NDQ4MTU5LCAic3RlcCI6IDUzNDAsICJ2YWx1ZSI6IDAuMDI1NzAzMzg1NDcyMjk3Njd9LCB7IndhbGxUaW1lIjogMTczMzA3MjY4NC4yNDAxNzgzLCAic3RlcCI6IDUzNTAsICJ2YWx1ZSI6IDAuMDQwMjEwMTk0ODg1NzMwNzR9LCB7IndhbGxUaW1lIjogMTczMzA3MjY5MS44NTk4NzgsICJzdGVwIjogNTM2MCwgInZhbHVlIjogMC4wMjg5OTgyNDQ1NTM4MDQzOTh9LCB7IndhbGxUaW1lIjogMTczMzA3MjcwMC4xNDk3NTg2LCAic3RlcCI6IDUzNzAsICJ2YWx1ZSI6IDAuMDM2OTA3MjU1NjQ5NTY2NjV9LCB7IndhbGxUaW1lIjogMTczMzA3MjcxMy4xODQ4NjgzLCAic3RlcCI6IDUzODAsICJ2YWx1ZSI6IDAuMDM1MTA5ODgxMzExNjU1MDQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MjEuMDI2NDc0LCAic3RlcCI6IDUzOTAsICJ2YWx1ZSI6IDAuMDMxODIwNTI0NDgzOTE5MTQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MjkuODc4NjgxNywgInN0ZXAiOiA1NDAwLCAidmFsdWUiOiAwLjA0MDU4NTc2Mzc1MjQ2MDQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MzguMzcyODM4MywgInN0ZXAiOiA1NDEwLCAidmFsdWUiOiAwLjAzNjAzODg2NDQwMzk2MzA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3NDYuMzg0NDMyLCAic3RlcCI6IDU0MjAsICJ2YWx1ZSI6IDAuMDI3MDM2NjgzNjMzOTIzNTN9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc1NC42MTkzOTk4LCAic3RlcCI6IDU0MzAsICJ2YWx1ZSI6IDAuMDMzNzM4NzY1ODY1NTY0MzQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3NjIuNTUwMjg5MiwgInN0ZXAiOiA1NDQwLCAidmFsdWUiOiAwLjAzNjc2NDE3NDY5OTc4MzMyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzcxLjM2MjM2ODMsICJzdGVwIjogNTQ1MCwgInZhbHVlIjogMC4wMzI4MjkyNjYwNDE1MTcyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzg3LjE1MzQ3NTgsICJzdGVwIjogNTQ2MCwgInZhbHVlIjogMC4wMzg3NTIyOTEzNTE1NTY3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzk1LjgwNDU5NjcsICJzdGVwIjogNTQ3MCwgInZhbHVlIjogMC4wNDUzNTQyOTkyNDcyNjQ4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODA0LjI0MzgxOTcsICJzdGVwIjogNTQ4MCwgInZhbHVlIjogMC4wMjc2MDU2NjAyNTk3MjM2NjN9LCB7IndhbGxUaW1lIjogMTczMzA3MjgxMi4zNzQ4MTgzLCAic3RlcCI6IDU0OTAsICJ2YWx1ZSI6IDAuMDMwODI0MjI5MTIxMjA4MTl9LCB7IndhbGxUaW1lIjogMTczMzA3MjgyMS4xNjA5NzYyLCAic3RlcCI6IDU1MDAsICJ2YWx1ZSI6IDAuMDMxNjcyNTY3MTI5MTM1MTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjgzMC4wMjQzNjY5LCAic3RlcCI6IDU1MTAsICJ2YWx1ZSI6IDAuMDM1NTgzNzc5MjE1ODEyNjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjgzOC42OTY4NDI3LCAic3RlcCI6IDU1MjAsICJ2YWx1ZSI6IDAuMDM1MjU5NDQwNTQxMjY3Mzk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NDYuOTA2NjI4NCwgInN0ZXAiOiA1NTMwLCAidmFsdWUiOiAwLjAyODY0OTU2NDgzMjQ0ODk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NTUuMjQ5NTEzNiwgInN0ZXAiOiA1NTQwLCAidmFsdWUiOiAwLjA0NjAxODAxMTg2ODAwMDAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NzAuNjQ3NTQyNSwgInN0ZXAiOiA1NTUwLCAidmFsdWUiOiAwLjAzNDkyODEyODEyMzI4MzM4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODc4LjczMjQ5NjUsICJzdGVwIjogNTU2MCwgInZhbHVlIjogMC4wMzMwMDAzNDI1NDc4OTM1MjR9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg4Ni42MTM4Njc4LCAic3RlcCI6IDU1NzAsICJ2YWx1ZSI6IDAuMDM4ODQ2Nzc5NjE0Njg2OTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4OTUuMDIyOTM5LCAic3RlcCI6IDU1ODAsICJ2YWx1ZSI6IDAuMDM0NDg3OTcwMTczMzU4OTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjkwMy40MDQ0NDgsICJzdGVwIjogNTU5MCwgInZhbHVlIjogMC4wMjg5MjUzODkwNTE0MzczNzh9LCB7IndhbGxUaW1lIjogMTczMzA3MjkxMS4yMTE1MDc2LCAic3RlcCI6IDU2MDAsICJ2YWx1ZSI6IDAuMDMwNDU0NDkwMzMzNzk1NTQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MTkuODQxNDM4MywgInN0ZXAiOiA1NjEwLCAidmFsdWUiOiAwLjAyNzAyNjAzNDg5MTYwNTM3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTI4LjczNDYxMzIsICJzdGVwIjogNTYyMCwgInZhbHVlIjogMC4wMzUxMDk2MDE5MTQ4ODI2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTQxLjcwNTI2NzcsICJzdGVwIjogNTYzMCwgInZhbHVlIjogMC4wMzkzMDg3MTkzMzY5ODY1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTQ5Ljk4MTc1OSwgInN0ZXAiOiA1NjQwLCAidmFsdWUiOiAwLjAzMTI3NjA1NDY4MDM0NzQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NTguNzIyNjYxNSwgInN0ZXAiOiA1NjUwLCAidmFsdWUiOiAwLjA2OTQ0NjQyOTYxMDI1MjM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NjYuODE3NDc0NiwgInN0ZXAiOiA1NjYwLCAidmFsdWUiOiAwLjAzMjU4OTUxNzUzMzc3OTE0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTc0Ljk2NDkyMjIsICJzdGVwIjogNTY3MCwgInZhbHVlIjogMC4wMjgwNjAzNTk4ODAzMjgxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTgzLjU2MzU2OCwgInN0ZXAiOiA1NjgwLCAidmFsdWUiOiAwLjA0OTc2NjcyNjc5MTg1ODY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5OTIuMjMxMzA0LCAic3RlcCI6IDU2OTAsICJ2YWx1ZSI6IDAuMDI4NDk2MDUzMDY5ODI5OTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzAwMC44MTg3NTQsICJzdGVwIjogNTcwMCwgInZhbHVlIjogMC4wMTk5NzAxMDQwOTgzMjAwMDd9LCB7IndhbGxUaW1lIjogMTczMzA3MzAwOS43ODQ3Nzc0LCAic3RlcCI6IDU3MTAsICJ2YWx1ZSI6IDAuMDQ4NTE1NjA2NjcxNTcxNzN9LCB7IndhbGxUaW1lIjogMTczMzA3MzAyMi44Njk4NDM3LCAic3RlcCI6IDU3MjAsICJ2YWx1ZSI6IDAuMDQ1NDk2MDcyNjIwMTUzNDN9LCB7IndhbGxUaW1lIjogMTczMzA3MzAzMS41MzcyMTkzLCAic3RlcCI6IDU3MzAsICJ2YWx1ZSI6IDAuMDI2NDU2Mjg1MjY4MDY4MzE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMzkuNTczNjI1NiwgInN0ZXAiOiA1NzQwLCAidmFsdWUiOiAwLjA0MjkwMjMzOTI0OTg0OTMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNDcuODQ0NDE3LCAic3RlcCI6IDU3NTAsICJ2YWx1ZSI6IDAuMDMwNzI1ODMzMDI4NTU0OTE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNTYuMTU4MDcyMiwgInN0ZXAiOiA1NzYwLCAidmFsdWUiOiAwLjAyODQyNTE2NjM4MzM4NTY1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDY0Ljk1NjY0MSwgInN0ZXAiOiA1NzcwLCAidmFsdWUiOiAwLjA0MzQ4MDc2NTA3NDQ5MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzA3My44MzkyNzIsICJzdGVwIjogNTc4MCwgInZhbHVlIjogMC4wMzg1MjExMDcyODYyMTQ4M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMDgyLjcyNjU2ODcsICJzdGVwIjogNTc5MCwgInZhbHVlIjogMC4wMjg2MTAwMzIwNTE4MDE2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDk1LjEwNDYxMTksICJzdGVwIjogNTgwMCwgInZhbHVlIjogMC4wNDY1MzcwMTE4NjE4MDExNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTAzLjMxNzM3MDIsICJzdGVwIjogNTgxMCwgInZhbHVlIjogMC4wMjc1MzExNTI1OTExMDkyNzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzExMS45NzIyMTcsICJzdGVwIjogNTgyMCwgInZhbHVlIjogMC4wMjY3MDQ0MjY4NTQ4NDg4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTIwLjM1ODg2ODgsICJzdGVwIjogNTgzMCwgInZhbHVlIjogMC4wMzcyMzc3NDg1MDM2ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MzEyOC4yMTA4NDA1LCAic3RlcCI6IDU4NDAsICJ2YWx1ZSI6IDAuMDM2NTEzODU3NTQzNDY4NDc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMzYuNzE3Mjg4NywgInN0ZXAiOiA1ODUwLCAidmFsdWUiOiAwLjAyNzUwMzc5MjE5NjUxMjIyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTQ0LjkyOTQyMywgInN0ZXAiOiA1ODYwLCAidmFsdWUiOiAwLjA1NDgwODM2MzMxODQ0MzN9LCB7IndhbGxUaW1lIjogMTczMzA3MzE1My4wNDM4ODgzLCAic3RlcCI6IDU4NzAsICJ2YWx1ZSI6IDAuMDMzNDY1NjUzNjU3OTEzMjF9LCB7IndhbGxUaW1lIjogMTczMzA3MzE2Ni4wMDQ3NTEsICJzdGVwIjogNTg4MCwgInZhbHVlIjogMC4wMzQyODgyNjQ4MTEwMzg5N30sIHsid2FsbFRpbWUiOiAxNzMzMDczMTc0LjY2MDY5OTQsICJzdGVwIjogNTg5MCwgInZhbHVlIjogMC4wMzM4MTg2OTE5Njg5MTc4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTgyLjUwOTk3MjYsICJzdGVwIjogNTkwMCwgInZhbHVlIjogMC4wNDk3MDM0NTI3MzYxMzkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxOTEuNTYxMTUxNSwgInN0ZXAiOiA1OTEwLCAidmFsdWUiOiAwLjAyMzQyMTA1Mjg0MzMzMjI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxOTkuNDE0MjYyMywgInN0ZXAiOiA1OTIwLCAidmFsdWUiOiAwLjA0NDY5NzkwMzA5NjY3NTg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMDcuNDY3MTQ3NiwgInN0ZXAiOiA1OTMwLCAidmFsdWUiOiAwLjAyNzA1NTgxMTEzNjk2MDk4M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMjE1LjYwNDUzOTQsICJzdGVwIjogNTk0MCwgInZhbHVlIjogMC4wMzE2MzI5ODIxOTQ0MjM2NzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzIyNC4zNTk4NTg1LCAic3RlcCI6IDU5NTAsICJ2YWx1ZSI6IDAuMDI3MDk5ODYyNjk0NzQwMjk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMzIuODc5MzIzMiwgInN0ZXAiOiA1OTYwLCAidmFsdWUiOiAwLjAzOTkxNDY4OTk1ODA5NTU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNDUuMzc1NzE2NywgInN0ZXAiOiA1OTcwLCAidmFsdWUiOiAwLjA0MjE2MDk1MDYwMTEwMDkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNTMuMTgxMzAyMywgInN0ZXAiOiA1OTgwLCAidmFsdWUiOiAwLjAzNzQxNDU0MzMzMDY2OTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzI2MS44MDI5NzE4LCAic3RlcCI6IDU5OTAsICJ2YWx1ZSI6IDAuMDM0MDYyNzgwNDM5ODUzNjd9LCB7IndhbGxUaW1lIjogMTczMzA3MzI3MC4wNjE1MzQ0LCAic3RlcCI6IDYwMDAsICJ2YWx1ZSI6IDAuMDM3ODMwMzkzNzYxMzk2NDF9LCB7IndhbGxUaW1lIjogMTczMzA3MzI3OC44OTgyMDY1LCAic3RlcCI6IDYwMTAsICJ2YWx1ZSI6IDAuMDM4NTAyMjM0OTY1NTYyODJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzI4Ny42ODM5OTYsICJzdGVwIjogNjAyMCwgInZhbHVlIjogMC4wNDAyODgxMzkxMzQ2NDU0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjk3LjI3NjM1NDMsICJzdGVwIjogNjAzMCwgInZhbHVlIjogMC4wMzkzMjQwOTM2MTAwNDgyOTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzMwNS45MjAxNDg0LCAic3RlcCI6IDYwNDAsICJ2YWx1ZSI6IDAuMDM4MzQyMDYyMzgzODkwMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzMyMi4zNTY1Njg2LCAic3RlcCI6IDYwNTAsICJ2YWx1ZSI6IDAuMDMzNTYxODI5NDc3NTQ4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzMxLjk3OTE2NiwgInN0ZXAiOiA2MDYwLCAidmFsdWUiOiAwLjA0MDU4NzkyODE0NjEyMzg4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzQwLjUyNDE0MjUsICJzdGVwIjogNjA3MCwgInZhbHVlIjogMC4wMzMwMDc0MzkyMjU5MTIwOTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzM0OS42MDM4NzY2LCAic3RlcCI6IDYwODAsICJ2YWx1ZSI6IDAuMDI4Njg2OTIzOTA2MjA3MDg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNTkuMDczMTQxMywgInN0ZXAiOiA2MDkwLCAidmFsdWUiOiAwLjA0NDU0NzQxNjI2OTc3OTIwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzY4LjQwNDg5OTEsICJzdGVwIjogNjEwMCwgInZhbHVlIjogMC4wMjY5NDY3OTA1MTYzNzY0OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzM3Ny42NzY5MDI4LCAic3RlcCI6IDYxMTAsICJ2YWx1ZSI6IDAuMDM0NTEzMTkwMzg4Njc5NTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzODYuNDAyMzksICJzdGVwIjogNjEyMCwgInZhbHVlIjogMC4wMzAzMDQ2MTI1OTE4NjI2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzk1LjQ1MzQwNiwgInN0ZXAiOiA2MTMwLCAidmFsdWUiOiAwLjAzNjk0OTQ3NDM2NDUxOTEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MDguMTUzMTg0NCwgInN0ZXAiOiA2MTQwLCAidmFsdWUiOiAwLjAyNjU2NTI5NDcxMjc4MTkwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDE3LjMyNTgxNjIsICJzdGVwIjogNjE1MCwgInZhbHVlIjogMC4wMjg2OTYyNjUwNzE2MzA0Nzh9LCB7IndhbGxUaW1lIjogMTczMzA3MzQyNi4yNTk3NjM1LCAic3RlcCI6IDYxNjAsICJ2YWx1ZSI6IDAuMDM4NTc4NjA3MTQxOTcxNTl9LCB7IndhbGxUaW1lIjogMTczMzA3MzQzNC44MTEyNDM4LCAic3RlcCI6IDYxNzAsICJ2YWx1ZSI6IDAuMDM1NDk3NDgyODY2MDQ4ODF9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ0NC41MTQ1NDg1LCAic3RlcCI6IDYxODAsICJ2YWx1ZSI6IDAuMDYzODcyMzgyMDQ0NzkyMTh9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ1My4xMTk0NTc3LCAic3RlcCI6IDYxOTAsICJ2YWx1ZSI6IDAuMDMxOTEzNzk4MzAyNDEyMDN9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ2Mi41Njc0ODksICJzdGVwIjogNjIwMCwgInZhbHVlIjogMC4wMzA1NTA3MzUwNzEzMDE0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDcyLjAyNjU3MTUsICJzdGVwIjogNjIxMCwgInZhbHVlIjogMC4wMzc1OTY2NTc4NzIyMDAwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDg0LjQ1MDI5OTcsICJzdGVwIjogNjIyMCwgInZhbHVlIjogMC4wMzI2MTI4ODI1NTQ1MzExfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0OTMuNjYxNzg3NSwgInN0ZXAiOiA2MjMwLCAidmFsdWUiOiAwLjAyNTY5NzMxMzI0OTExMTE3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTAyLjQ0MzExMzMsICJzdGVwIjogNjI0MCwgInZhbHVlIjogMC4wNDEzNjUxNzI3MTM5OTQ5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTExLjI1ODI2MTcsICJzdGVwIjogNjI1MCwgInZhbHVlIjogMC4wMzY2NDM3MDI1MzY4MjEzNjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzUyMC41MTE1NzcxLCAic3RlcCI6IDYyNjAsICJ2YWx1ZSI6IDAuMDI3NjI2MDU2MjI0MTA3NzQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MjkuNzgzMjE0OCwgInN0ZXAiOiA2MjcwLCAidmFsdWUiOiAwLjAzNzkwNjk1NTkyNzYxMDR9LCB7IndhbGxUaW1lIjogMTczMzA3MzUzOS42NDA5MDAxLCAic3RlcCI6IDYyODAsICJ2YWx1ZSI6IDAuMDMyMjAzMTcxNDAyMjE1OTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzU0OC45MTI3NDQ4LCAic3RlcCI6IDYyOTAsICJ2YWx1ZSI6IDAuMDI5MjAxMjM5MzQ3NDU3ODg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NjAuNjIxNTUxLCAic3RlcCI6IDYzMDAsICJ2YWx1ZSI6IDAuMDMxMjk4MTMwNzUwNjU2MTN9LCB7IndhbGxUaW1lIjogMTczMzA3MzU3MC4wNzA3NTg2LCAic3RlcCI6IDYzMTAsICJ2YWx1ZSI6IDAuMDM1MjczMTUzMzM0ODU2MDN9LCB7IndhbGxUaW1lIjogMTczMzA3MzU3OS40ODMwMjA1LCAic3RlcCI6IDYzMjAsICJ2YWx1ZSI6IDAuMDM1NTQ1NjQzNDE5MDI3MzN9LCB7IndhbGxUaW1lIjogMTczMzA3MzU4Ny42NjkxMTEzLCAic3RlcCI6IDYzMzAsICJ2YWx1ZSI6IDAuMDMzMTM3MTI0MDMxNzgyMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzU5Ny4yMTk2NzQzLCAic3RlcCI6IDYzNDAsICJ2YWx1ZSI6IDAuMDM1ODE0NTc1ODUwOTYzNTl9LCB7IndhbGxUaW1lIjogMTczMzA3MzYwNi4yMzk5MDU4LCAic3RlcCI6IDYzNTAsICJ2YWx1ZSI6IDAuMDMxNjkzMDMzODc0MDM0ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MzYxNS4wNzk0NjUsICJzdGVwIjogNjM2MCwgInZhbHVlIjogMC4wMzQxOTY5OTUxOTg3MjY2NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzYyNC44MzYyNDYzLCAic3RlcCI6IDYzNzAsICJ2YWx1ZSI6IDAuMDMxMjQ4NTM3ODIzNTU3ODU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MzQuNjc0MzY3NCwgInN0ZXAiOiA2MzgwLCAidmFsdWUiOiAwLjA0MTAwNDM4OTUyNDQ1OTg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NDYuNTMwMDI4NiwgInN0ZXAiOiA2MzkwLCAidmFsdWUiOiAwLjAzMTY3OTY0ODkwNTk5MjUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NTUuNzQ3MjY2NSwgInN0ZXAiOiA2NDAwLCAidmFsdWUiOiAwLjAzMjc4NDY5NjY2ODM4NjQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NjUuNjA4OTc2NiwgInN0ZXAiOiA2NDEwLCAidmFsdWUiOiAwLjAzMTI1NTY4NDc5Mjk5NTQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NzQuNjQ0NTMxMiwgInN0ZXAiOiA2NDIwLCAidmFsdWUiOiAwLjAyOTc5NDg5Nzg4NDEzMDQ3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjgzLjY3MjEyMiwgInN0ZXAiOiA2NDMwLCAidmFsdWUiOiAwLjAzNTUyMTMyMDk5ODY2ODY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2OTIuODc4NTUxNywgInN0ZXAiOiA2NDQwLCAidmFsdWUiOiAwLjAzMjYyODM1MzY4NTE0MDYxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MDIuNTIwOTUwOCwgInN0ZXAiOiA2NDUwLCAidmFsdWUiOiAwLjAzMjE3OTU4NjU4OTMzNjM5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzEyLjYyOTExNDQsICJzdGVwIjogNjQ2MCwgInZhbHVlIjogMC4wMzE0Nzk4ODM5MzkwMjc3ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzcyNC4wNDk0MjA2LCAic3RlcCI6IDY0NzAsICJ2YWx1ZSI6IDAuMDI1OTI5ODM0NjkzNjcwMjczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MzIuODMwMjY0OCwgInN0ZXAiOiA2NDgwLCAidmFsdWUiOiAwLjA0MjIwODE1Mzc1NDQ3MjczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NDEuOTU5NjE3MSwgInN0ZXAiOiA2NDkwLCAidmFsdWUiOiAwLjAzODEyNDYzNTgxNTYyMDQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NTAuNzE5NDIxOSwgInN0ZXAiOiA2NTAwLCAidmFsdWUiOiAwLjA2MDA4MTE0MjkzMjE3NjU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NjAuNDg5ODc2MywgInN0ZXAiOiA2NTEwLCAidmFsdWUiOiAwLjAzNjAzMTIzNTAwOTQzMTg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NjkuODY1MTc3NiwgInN0ZXAiOiA2NTIwLCAidmFsdWUiOiAwLjAzMDgxMjExNjMzOTgwMjc0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzc5LjEyODg0NjQsICJzdGVwIjogNjUzMCwgInZhbHVlIjogMC4wMzMxOTgxNDgwMTIxNjEyNTV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc4OS40Nzk0NTg4LCAic3RlcCI6IDY1NDAsICJ2YWx1ZSI6IDAuMDM2MDU2NTE0ODI5Mzk3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzk4LjEwNTE3MDIsICJzdGVwIjogNjU1MCwgInZhbHVlIjogMC4wMzMyMTUyMzk2NDQwNTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MTAuNTU0NzI2LCAic3RlcCI6IDY1NjAsICJ2YWx1ZSI6IDAuMDQ5MjMwNzc2NzI3MTk5NTU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MjAuMDM4MjYxNywgInN0ZXAiOiA2NTcwLCAidmFsdWUiOiAwLjA0NDE5NDc5NTE5MTI4Nzk5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODI4LjI0MDQ0NTEsICJzdGVwIjogNjU4MCwgInZhbHVlIjogMC4wMzIyMzk0ODE4MDY3NTUwNjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzgzNi44MDAwNTI2LCAic3RlcCI6IDY1OTAsICJ2YWx1ZSI6IDAuMDI4MzM5MDg0MjM3ODEzOTV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg0NS45ODkzNTQxLCAic3RlcCI6IDY2MDAsICJ2YWx1ZSI6IDAuMDM1NDQ0Njc2ODc2MDY4MTE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NTUuMjUzOTgxNiwgInN0ZXAiOiA2NjEwLCAidmFsdWUiOiAwLjAzMzY1NTMwODE4NzAwNzkwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODY0LjY5NTUxNjMsICJzdGVwIjogNjYyMCwgInZhbHVlIjogMC4wMzA3NTU1MjkxODAxNjkxMDZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg3My44MzY0NDksICJzdGVwIjogNjYzMCwgInZhbHVlIjogMC4wMjc0MDcxMTcxODc5NzY4Mzd9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg4Ny41MjY1NDAzLCAic3RlcCI6IDY2NDAsICJ2YWx1ZSI6IDAuMDM0MzY3NzA2NjI2NjUzNjd9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg5Ny4zMzYxMTUxLCAic3RlcCI6IDY2NTAsICJ2YWx1ZSI6IDAuMDM1NjQ0MjAzNDI0NDUzNzM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5MDYuODc4NjgzMywgInN0ZXAiOiA2NjYwLCAidmFsdWUiOiAwLjA0NTkzNDgzMzU4NjIxNTk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5MTYuMzUyMTQsICJzdGVwIjogNjY3MCwgInZhbHVlIjogMC4wMzYyMzkxODA3MTM4OTE5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTI1LjYyMDczMywgInN0ZXAiOiA2NjgwLCAidmFsdWUiOiAwLjAyOTQ4OTg1MjQ4ODA0MDkyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTM0LjkxODc5MzQsICJzdGVwIjogNjY5MCwgInZhbHVlIjogMC4wMzQxMDAwMzMzNDI4MzgyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTQzLjc0NDQwMzEsICJzdGVwIjogNjcwMCwgInZhbHVlIjogMC4wNDU3ODczMDA5MTQ1MjU5ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzk1Mi40NzkwNSwgInN0ZXAiOiA2NzEwLCAidmFsdWUiOiAwLjA0NDcxOTYxNzgxMzgyNTYxfV19fV0=", + "ok": true, + "headers": [ + [ + "content-length", + "15051" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Loss/loss_bbox_dn_3%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIkxvc3MvbG9zc19iYm94X2RuXzMiLCAicnVuVG9TZXJpZXMiOiB7Ii4iOiBbeyJ3YWxsVGltZSI6IDE3MzMwNjc2MzEuNTQwNzI5OCwgInN0ZXAiOiAwLCAidmFsdWUiOiAwLjA1NDM2MTU3NDM1MTc4NzU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NDYuNjU0MDU1NCwgInN0ZXAiOiAxMCwgInZhbHVlIjogMC4wNTM1MDczMjgwMzM0NDcyNjZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzY2MC43ODYxMTg1LCAic3RlcCI6IDIwLCAidmFsdWUiOiAwLjA0NTUwMzg2NTkyNzQ1NzgxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NzQuMTM5Mzc0MywgInN0ZXAiOiAzMCwgInZhbHVlIjogMC4wNTEyNzgzMDgwMzM5NDMxNzZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzY4Ny4wNTkwMjA1LCAic3RlcCI6IDQwLCAidmFsdWUiOiAwLjA2NTcyMTk3Mzc3NjgxNzMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2OTkuNDk1MDg3MSwgInN0ZXAiOiA1MCwgInZhbHVlIjogMC4xMDA5NDYyNjI0Nzg4Mjg0M30sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzEwLjYzMTI2MzMsICJzdGVwIjogNjAsICJ2YWx1ZSI6IDAuMDg3ODkxMjk1NTUyMjUzNzJ9LCB7IndhbGxUaW1lIjogMTczMzA2NzcyMi43NTc0MzQ2LCAic3RlcCI6IDcwLCAidmFsdWUiOiAwLjAzNDYwOTAyMzQ4MTYwNzQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MzMuNzI3MjU4NCwgInN0ZXAiOiA4MCwgInZhbHVlIjogMC4xMjQwOTA3MzExNDM5NTE0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzUwLjk0ODE1MTQsICJzdGVwIjogOTAsICJ2YWx1ZSI6IDAuMDQzMjAwODE2OTU5MTQyNjg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NjEuOTgyODM3LCAic3RlcCI6IDEwMCwgInZhbHVlIjogMC4wNjQ0NzUwMzcxNTc1MzU1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzcxLjYwODI1NDcsICJzdGVwIjogMTEwLCAidmFsdWUiOiAwLjA3MDUwMDA5MDcxODI2OTM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3ODAuNTQ5MjU0NywgInN0ZXAiOiAxMjAsICJ2YWx1ZSI6IDAuMTI2MTcwMTczMjg3MzkxNjZ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc5MC40ODcyNzgsICJzdGVwIjogMTMwLCAidmFsdWUiOiAwLjA1MTYzMDI5MjA4Nzc5MzM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3OTkuMTA3NDcyMiwgInN0ZXAiOiAxNDAsICJ2YWx1ZSI6IDAuMDg3NTM2MTcxMDc4NjgxOTV9LCB7IndhbGxUaW1lIjogMTczMzA2NzgwOS40NDY4MjIyLCAic3RlcCI6IDE1MCwgInZhbHVlIjogMC4xMzkyMjc2NDM2MDkwNDY5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODE4LjkyMjU0NjEsICJzdGVwIjogMTYwLCAidmFsdWUiOiAwLjA2MjE3NDQ5MTU4NDMwMDk5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODM2LjY1MTQ2ODMsICJzdGVwIjogMTcwLCAidmFsdWUiOiAwLjA2NjA0Mzg3NjExMTUwNzQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4NDYuMzkyMzgyNiwgInN0ZXAiOiAxODAsICJ2YWx1ZSI6IDAuMDc4NTUwODMwNDgzNDM2NTh9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg1NS42Njg4NzcsICJzdGVwIjogMTkwLCAidmFsdWUiOiAwLjA3NjQ5Mjc3MTUwNjMwOTUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4NjQuODkyOTM5OCwgInN0ZXAiOiAyMDAsICJ2YWx1ZSI6IDAuMDc5NTM1MTQxNTg3MjU3Mzl9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg3NC4wMDM4MDQ0LCAic3RlcCI6IDIxMCwgInZhbHVlIjogMC4wNjQzOTcyMzgxOTQ5NDI0N30sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODgzLjc4OTE4NTUsICJzdGVwIjogMjIwLCAidmFsdWUiOiAwLjA2Mjg2Mjg1MDcyNTY1MDc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4OTIuMTI1MDEzNCwgInN0ZXAiOiAyMzAsICJ2YWx1ZSI6IDAuMDU3MDMyMTc1MzYyMTEwMTR9LCB7IndhbGxUaW1lIjogMTczMzA2NzkwMS4wNzEyMTU2LCAic3RlcCI6IDI0MCwgInZhbHVlIjogMC4xMDE1MTc0NzYxNDE0NTI3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTEwLjA3Njc2OTQsICJzdGVwIjogMjUwLCAidmFsdWUiOiAwLjA4MzYyNjc5OTI4NTQxMTgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MjUuOTUxODc5LCAic3RlcCI6IDI2MCwgInZhbHVlIjogMC4wNjI5Mjg3NjYwMTIxOTE3N30sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTM1LjQ3NzQ0MDgsICJzdGVwIjogMjcwLCAidmFsdWUiOiAwLjA1MTM5NjY3OTEzMzE3NjgwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTQ0LjAxODYxNTcsICJzdGVwIjogMjgwLCAidmFsdWUiOiAwLjA1MzYyODA5MDc2OTA1MjUwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTUyLjU0OTczOTEsICJzdGVwIjogMjkwLCAidmFsdWUiOiAwLjEyMjAzNDI1MTY4OTkxMDg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NjEuMDI4NTcwNCwgInN0ZXAiOiAzMDAsICJ2YWx1ZSI6IDAuMTA4NzUyMzEwMjc2MDMxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTcwLjEzNjQwNTcsICJzdGVwIjogMzEwLCAidmFsdWUiOiAwLjA4ODExMDgzNDM2MDEyMjY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5ODAuMjI3NjMxMywgInN0ZXAiOiAzMjAsICJ2YWx1ZSI6IDAuMDYwMjY4NTg0NjM4ODM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5ODguODE3OTA1NywgInN0ZXAiOiAzMzAsICJ2YWx1ZSI6IDAuMDY4MDY4MjUxMDEzNzU1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDA1LjA5MjQ5MTEsICJzdGVwIjogMzQwLCAidmFsdWUiOiAwLjA2MzQyNDAyODQ1NjIxMTA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMTQuMDY3MDU5NSwgInN0ZXAiOiAzNTAsICJ2YWx1ZSI6IDAuMDI5MzE4NDQ0NDMwODI4MDk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMjIuNTU0ODg4LCAic3RlcCI6IDM2MCwgInZhbHVlIjogMC4wNTk3MzM5MTk3OTkzMjc4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDMxLjgyNjU1NDMsICJzdGVwIjogMzcwLCAidmFsdWUiOiAwLjA2MzcxMTQ3MTg1NTY0MDQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNDAuNzg5Njk0OCwgInN0ZXAiOiAzODAsICJ2YWx1ZSI6IDAuMDU0NDg3NjE5NTQ5MDM2MDI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNTAuMTYyMTU0NywgInN0ZXAiOiAzOTAsICJ2YWx1ZSI6IDAuMDk5NzIzMzMxNjMwMjI5OTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODA1OS4xMjgwMDgxLCAic3RlcCI6IDQwMCwgInZhbHVlIjogMC4xMDYxMDgzMzc2NDA3NjIzM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDY4LjA5MTk4NzYsICJzdGVwIjogNDEwLCAidmFsdWUiOiAwLjEwOTkwMTMzODgxNTY4OTA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwODQuODQ2MzI5NywgInN0ZXAiOiA0MjAsICJ2YWx1ZSI6IDAuMDgwMjA3NTExNzgyNjQ2MTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODA5NC42Njg2NDE2LCAic3RlcCI6IDQzMCwgInZhbHVlIjogMC4wNDQ0NDU5MjA3MzU1OTc2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTAzLjcxMDE1NSwgInN0ZXAiOiA0NDAsICJ2YWx1ZSI6IDAuMDU0MTc5OTg4ODAxNDc5MzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODExMi43MDE1ODMxLCAic3RlcCI6IDQ1MCwgInZhbHVlIjogMC4wNTYzNTgwNTgwMDU1NzEzNjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODEyMS41MDMxNjYsICJzdGVwIjogNDYwLCAidmFsdWUiOiAwLjA0NjYwNjg4MzQwNjYzOTF9LCB7IndhbGxUaW1lIjogMTczMzA2ODEzMC43Mjk4NTM5LCAic3RlcCI6IDQ3MCwgInZhbHVlIjogMC4wNjkwMzYwOTYzMzQ0NTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMzkuODU3ODE3MiwgInN0ZXAiOiA0ODAsICJ2YWx1ZSI6IDAuMDYxMTU2MTE2NDI1OTkxMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODE0OS4zNzIxMjA5LCAic3RlcCI6IDQ5MCwgInZhbHVlIjogMC4wNzIzODk1NjU0MDgyMjk4M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTU4LjA3MjEzMywgInN0ZXAiOiA1MDAsICJ2YWx1ZSI6IDAuMDcxNDEzMDAyOTA4MjI5ODN9LCB7IndhbGxUaW1lIjogMTczMzA2ODE3NC4xMTczMTQ2LCAic3RlcCI6IDUxMCwgInZhbHVlIjogMC4wODY0NDAzMDk4ODIxNjR9LCB7IndhbGxUaW1lIjogMTczMzA2ODE4Mi43MjE3NjQ2LCAic3RlcCI6IDUyMCwgInZhbHVlIjogMC4wNDc4Mjk3MDk5NDcxMDkyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTkyLjQxNTg2MDIsICJzdGVwIjogNTMwLCAidmFsdWUiOiAwLjA4MDU0Mzc4NjI4NzMwNzc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMDEuODMyNzYxLCAic3RlcCI6IDU0MCwgInZhbHVlIjogMC4wNzMyMjQxNjQ1NDU1MzYwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjEwLjY1Njc2MSwgInN0ZXAiOiA1NTAsICJ2YWx1ZSI6IDAuMDcyNzcyNjIyMTA4NDU5NDd9LCB7IndhbGxUaW1lIjogMTczMzA2ODIyMC4xOTczMTIsICJzdGVwIjogNTYwLCAidmFsdWUiOiAwLjA3MzQ1NDMxMjk4MDE3NTAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMjkuMTYxNjk3LCAic3RlcCI6IDU3MCwgInZhbHVlIjogMC4wNzk0NTE3NjIxMzk3OTcyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjM4LjU5Mzg0NzUsICJzdGVwIjogNTgwLCAidmFsdWUiOiAwLjA2OTcyNjU3MTQ0MDY5NjcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNTYuMDc3MjU5NSwgInN0ZXAiOiA1OTAsICJ2YWx1ZSI6IDAuMDUyMzQ5MjI0Njg2NjIyNjJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODI2NS40MzQxNjgzLCAic3RlcCI6IDYwMCwgInZhbHVlIjogMC4xMjIxMjc4OTgwMzc0MzM2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Mjc0LjY1ODczNDMsICJzdGVwIjogNjEwLCAidmFsdWUiOiAwLjA1MzA5MDE4ODY1MjI3Njk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyODMuNzcyMzM0OCwgInN0ZXAiOiA2MjAsICJ2YWx1ZSI6IDAuMDU3OTc3MzMzNjY0ODk0MTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyOTMuMzM2NDI4NCwgInN0ZXAiOiA2MzAsICJ2YWx1ZSI6IDAuMDU4ODg5OTg1MDg0NTMzNjl9LCB7IndhbGxUaW1lIjogMTczMzA2ODMwMi42NDk0NDIsICJzdGVwIjogNjQwLCAidmFsdWUiOiAwLjA3NDA2NTkzODU5MTk1NzA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMTEuMzkwNDcwNywgInN0ZXAiOiA2NTAsICJ2YWx1ZSI6IDAuMDU3MTEwOTY4OTc3MjEyOTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMjAuMzkyNDY4NSwgInN0ZXAiOiA2NjAsICJ2YWx1ZSI6IDAuMDcxOTgxNzI4MDc2OTM0ODF9LCB7IndhbGxUaW1lIjogMTczMzA2ODMyOC43MzM3ODg3LCAic3RlcCI6IDY3MCwgInZhbHVlIjogMC4wNzExNzAyNzc4OTM1NDMyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzQ0LjQ2MzU4NTksICJzdGVwIjogNjgwLCAidmFsdWUiOiAwLjA4MDQwNzMyMTQ1MzA5NDQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNTMuNzE5Mjc2NCwgInN0ZXAiOiA2OTAsICJ2YWx1ZSI6IDAuMDUwMjY4OTM2OTAyMjg0NjJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODM2Mi4wNjAxOTMsICJzdGVwIjogNzAwLCAidmFsdWUiOiAwLjA4MTA5MjQ5OTE5NjUyOTM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNzEuMTA2NDA0NSwgInN0ZXAiOiA3MTAsICJ2YWx1ZSI6IDAuMDQyOTE2OTk4MjY3MTczNzd9LCB7IndhbGxUaW1lIjogMTczMzA2ODM4MC41MzU1MjIyLCAic3RlcCI6IDcyMCwgInZhbHVlIjogMC4wNzY3OTkzNjI4OTc4NzI5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzkwLjA4ODk4MjYsICJzdGVwIjogNzMwLCAidmFsdWUiOiAwLjA0MzM0MDY2NDM1Njk0Njk0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Mzk4LjcyMzMzNjIsICJzdGVwIjogNzQwLCAidmFsdWUiOiAwLjA4Njk2MzQwMDI0NDcxMjgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MDcuMTI2MzMxNiwgInN0ZXAiOiA3NTAsICJ2YWx1ZSI6IDAuMDU5MDM5NDgwOTg0MjEwOTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODQyMy4wNzUwMjgyLCAic3RlcCI6IDc2MCwgInZhbHVlIjogMC4wNjM4NjA3NjY1ODk2NDE1N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDMxLjQwNzcxMjcsICJzdGVwIjogNzcwLCAidmFsdWUiOiAwLjA3NDg0NzA0MjU2MDU3NzM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NDAuNDI3MzcyNSwgInN0ZXAiOiA3ODAsICJ2YWx1ZSI6IDAuMDQ1MTg5MjQyODEwMDEwOTF9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ0OS4wMDkwMjYsICJzdGVwIjogNzkwLCAidmFsdWUiOiAwLjA1OTQ1ODc2MjQwNzMwMjg1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDU3LjY0MTQ5ODYsICJzdGVwIjogODAwLCAidmFsdWUiOiAwLjA0MDkzMDIyNjQ0NTE5ODA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NjcuMDY1OTk3OCwgInN0ZXAiOiA4MTAsICJ2YWx1ZSI6IDAuMDU4Mjk5NTA3OTQ1Nzc1OTg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NzUuNjIyOTIyLCAic3RlcCI6IDgyMCwgInZhbHVlIjogMC4wNTk0MjUzNTAyNzg2MTU5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDg0Ljk4MTQzMTcsICJzdGVwIjogODMwLCAidmFsdWUiOiAwLjA0Njk4OTIwNjIyNDY3OTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MDAuNzM0MTA5MiwgInN0ZXAiOiA4NDAsICJ2YWx1ZSI6IDAuMDQyMDA1OTExNDY5NDU5NTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MDkuMzEwMzI0MiwgInN0ZXAiOiA4NTAsICJ2YWx1ZSI6IDAuMDQ0MjQ2MDk5ODg5Mjc4NDF9LCB7IndhbGxUaW1lIjogMTczMzA2ODUxOS4wMjQ3NDcsICJzdGVwIjogODYwLCAidmFsdWUiOiAwLjAzNTY4MTA5NDk3NDI3OTQwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTI3LjUwMTExOSwgInN0ZXAiOiA4NzAsICJ2YWx1ZSI6IDAuMDYwNzY0NDU4MDMwNDYyMjY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MzYuOTIyOTAxMiwgInN0ZXAiOiA4ODAsICJ2YWx1ZSI6IDAuMDU1OTQ0OTA0Njg1MDIwNDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODU0NC45MTE0MDkxLCAic3RlcCI6IDg5MCwgInZhbHVlIjogMC4wNTAwNDQ1NjYzOTI4OTg1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTUzLjU4MTc2NjgsICJzdGVwIjogOTAwLCAidmFsdWUiOiAwLjA1OTg0MDkzNjIxMzczMTc2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTYyLjY4ODYyNDEsICJzdGVwIjogOTEwLCAidmFsdWUiOiAwLjA2OTU2NzI4NTQ3ODExNTA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NzEuMjQ5MDI5MiwgInN0ZXAiOiA5MjAsICJ2YWx1ZSI6IDAuMDUyNTUwMjA0MDk4MjI0NjR9LCB7IndhbGxUaW1lIjogMTczMzA2ODU4NC43NzkxODMsICJzdGVwIjogOTMwLCAidmFsdWUiOiAwLjAzOTg4ODc2OTM4ODE5ODg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1OTMuNzc2MDI3MiwgInN0ZXAiOiA5NDAsICJ2YWx1ZSI6IDAuMDYxODAyODQ1NDQ4MjU1NTR9LCB7IndhbGxUaW1lIjogMTczMzA2ODYwMi43Njk2NjYyLCAic3RlcCI6IDk1MCwgInZhbHVlIjogMC4wMjY2OTMwMDY5Nzc0Mzg5Mjd9LCB7IndhbGxUaW1lIjogMTczMzA2ODYxMS4wNDM2NjI1LCAic3RlcCI6IDk2MCwgInZhbHVlIjogMC4wNjg1Njc4MzQ3OTQ1MjEzM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjIwLjIzMDM2MDMsICJzdGVwIjogOTcwLCAidmFsdWUiOiAwLjA1MjAyMDc3NzAxNjg3ODEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MjguODQ1NTI2LCAic3RlcCI6IDk4MCwgInZhbHVlIjogMC4wNDc0MTE2MTMxNjYzMzIyNDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODYzNy42MzQyMzc1LCAic3RlcCI6IDk5MCwgInZhbHVlIjogMC4wMzc4MDE2NDk0MjE0NTM0NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODY0Ni42NzY5MDc4LCAic3RlcCI6IDEwMDAsICJ2YWx1ZSI6IDAuMDY0OTQwMTQ3MTAxODc5MTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODY2Mi43NjA5MzMyLCAic3RlcCI6IDEwMTAsICJ2YWx1ZSI6IDAuMDUzOTYzNDQ1MTI3MDEwMzQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2NzIuMDU4MzY1LCAic3RlcCI6IDEwMjAsICJ2YWx1ZSI6IDAuMDUwNjc4NTEzOTQ0MTQ5MDJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODY4MC41NjcwODEyLCAic3RlcCI6IDEwMzAsICJ2YWx1ZSI6IDAuMDY2NTQ3NjY5NDcwMzEwMjF9LCB7IndhbGxUaW1lIjogMTczMzA2ODY5MC4xODk5NzE3LCAic3RlcCI6IDEwNDAsICJ2YWx1ZSI6IDAuMDM5MTQyMDY4NDc1NDg0ODV9LCB7IndhbGxUaW1lIjogMTczMzA2ODY5OC44NTIzMzI2LCAic3RlcCI6IDEwNTAsICJ2YWx1ZSI6IDAuMDYzMTE3OTk1ODU4MTkyNDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODcwNy43NDc0ODY0LCAic3RlcCI6IDEwNjAsICJ2YWx1ZSI6IDAuMDQzMDIyODc4NDY4MDM2NjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODcxNy4zNDg2Nzk1LCAic3RlcCI6IDEwNzAsICJ2YWx1ZSI6IDAuMDQzNjExNzUwMDA2Njc1NzJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODcyNi4zNjUzOTMsICJzdGVwIjogMTA4MCwgInZhbHVlIjogMC4wMzI5MTA3MzgxNDAzNDQ2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzM1LjI1NTc4NzgsICJzdGVwIjogMTA5MCwgInZhbHVlIjogMC4wNDM5Njg5ODI5OTQ1NTY0M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzQ5LjU1MjA1OTQsICJzdGVwIjogMTEwMCwgInZhbHVlIjogMC4wMzMwMjUxMzgwODAxMjAwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzU4LjM3OTM4MTcsICJzdGVwIjogMTExMCwgInZhbHVlIjogMC4wNTQ2NjY5MTc3NzExMDF9LCB7IndhbGxUaW1lIjogMTczMzA2ODc2Ny4wMDc5MTA3LCAic3RlcCI6IDExMjAsICJ2YWx1ZSI6IDAuMDYwMzA3NDE3MDY0OTA1MTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODc3Ni42MjI5MjM0LCAic3RlcCI6IDExMzAsICJ2YWx1ZSI6IDAuMDUwNTYwMjUwODc4MzM0MDQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3ODUuNDA1MzkwMywgInN0ZXAiOiAxMTQwLCAidmFsdWUiOiAwLjA2NDA1MDA2MzQ5MDg2NzYxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3OTQuMjgzMTc5LCAic3RlcCI6IDExNTAsICJ2YWx1ZSI6IDAuMDY3NzEwNTYzNTQwNDU4Njh9LCB7IndhbGxUaW1lIjogMTczMzA2ODgwMi43MDEzNjQsICJzdGVwIjogMTE2MCwgInZhbHVlIjogMC4wNjk1NDk1NDU2NDU3MTM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MTEuNTU2MDI5NiwgInN0ZXAiOiAxMTcwLCAidmFsdWUiOiAwLjA1NTIxOTI0NzkzNzIwMjQ1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODI0Ljk2OTg1MzQsICJzdGVwIjogMTE4MCwgInZhbHVlIjogMC4wNDk0NjE4MTU1MDYyMTk4NjR9LCB7IndhbGxUaW1lIjogMTczMzA2ODgzNC4zODEzMTgsICJzdGVwIjogMTE5MCwgInZhbHVlIjogMC4wNDQ2MjUxMTA5MjQyNDM5M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODQzLjUyMDIzNTMsICJzdGVwIjogMTIwMCwgInZhbHVlIjogMC4wNTE1NTk0NzQzMTkyMTk1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODUyLjIzMjYzODEsICJzdGVwIjogMTIxMCwgInZhbHVlIjogMC4wNDA4MTE4ODg4NzM1NzcxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODYxLjEyMTAwODIsICJzdGVwIjogMTIyMCwgInZhbHVlIjogMC4wNDA4Mjk3MDMyMTE3ODQzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODcwLjA1OTk0MjUsICJzdGVwIjogMTIzMCwgInZhbHVlIjogMC4wNjQ2NjAxODQwODUzNjkxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODc4LjcyNDQxLCAic3RlcCI6IDEyNDAsICJ2YWx1ZSI6IDAuMDY4OTE1MTk1NzYzMTExMTF9LCB7IndhbGxUaW1lIjogMTczMzA2ODg4Ny43NDIxOTYzLCAic3RlcCI6IDEyNTAsICJ2YWx1ZSI6IDAuMDM4NDQ5MzIwOTQyMTYzNDd9LCB7IndhbGxUaW1lIjogMTczMzA2ODkwMy4xNzA4Njk2LCAic3RlcCI6IDEyNjAsICJ2YWx1ZSI6IDAuMDM2ODIxMjkwODUwNjM5MzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODkxMi40MjExNjgsICJzdGVwIjogMTI3MCwgInZhbHVlIjogMC4wNTI1NzkxMDQ5MDAzNjAxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTIxLjQ3ODkzMzgsICJzdGVwIjogMTI4MCwgInZhbHVlIjogMC4wNjU5OTQ2NDI2NzQ5MjI5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTI5Ljc1MDY2LCAic3RlcCI6IDEyOTAsICJ2YWx1ZSI6IDAuMDQ2MDI5NTk3NTIwODI4MjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODkzOS41MDU0MjcxLCAic3RlcCI6IDEzMDAsICJ2YWx1ZSI6IDAuMDQxNzc1ODU5ODkyMzY4MzJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODk0OC45MzIwODE3LCAic3RlcCI6IDEzMTAsICJ2YWx1ZSI6IDAuMDMyMjUxMTQxOTY1Mzg5MjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODk1Ny4yMzg0ODE1LCAic3RlcCI6IDEzMjAsICJ2YWx1ZSI6IDAuMDYxMDY2NTA4MjkzMTUxODU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NjYuMDgxMDczNSwgInN0ZXAiOiAxMzMwLCAidmFsdWUiOiAwLjA1NzgwNjM1NDAxNjA2NTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODk3NS41NjkzMjY0LCAic3RlcCI6IDEzNDAsICJ2YWx1ZSI6IDAuMDU3ODY5MTQwMDU4NzU1ODc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5ODkuODAzOTE2NywgInN0ZXAiOiAxMzUwLCAidmFsdWUiOiAwLjAzMDQ1MjU1MzE4Mjg0MDM0N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTk4LjI4NzQ1OTQsICJzdGVwIjogMTM2MCwgInZhbHVlIjogMC4wMjg4ODk2NTk3OTIxODQ4M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDA3LjE1NDgyMywgInN0ZXAiOiAxMzcwLCAidmFsdWUiOiAwLjAzOTIwODU4NzI1OTA1NDE4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDE1LjkyNjk1MTIsICJzdGVwIjogMTM4MCwgInZhbHVlIjogMC4wMzY3MjY4OTk0NDUwNTY5MTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTAyNS4zMDcyNzI0LCAic3RlcCI6IDEzOTAsICJ2YWx1ZSI6IDAuMDQ3MDI2NjkwMDk1NjYzMDd9LCB7IndhbGxUaW1lIjogMTczMzA2OTAzNC40ODU0OTY4LCAic3RlcCI6IDE0MDAsICJ2YWx1ZSI6IDAuMDU1OTIwMjU0NDM5MTE1NTI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNDIuNzk3MDMwNCwgInN0ZXAiOiAxNDEwLCAidmFsdWUiOiAwLjA1OTg4MjU0Mzk4MTA3NTI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNTIuMTQxNTU2MywgInN0ZXAiOiAxNDIwLCAidmFsdWUiOiAwLjA0MjgxNjA4MDE1Mjk4ODQzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDY1LjAwNTc0OTIsICJzdGVwIjogMTQzMCwgInZhbHVlIjogMC4wNDQxNTA0ODI4NjMxODc3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDc0LjUyNzk4NCwgInN0ZXAiOiAxNDQwLCAidmFsdWUiOiAwLjA0NzM4OTgwOTA0MjIxNTM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwODMuNzg2NTgyNSwgInN0ZXAiOiAxNDUwLCAidmFsdWUiOiAwLjA0OTQwNDY4ODE3OTQ5Mjk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwOTIuMjYzMDM0MywgInN0ZXAiOiAxNDYwLCAidmFsdWUiOiAwLjA1NjE1Njk4NTQ2MTcxMTg4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTAxLjAzMzkwNjIsICJzdGVwIjogMTQ3MCwgInZhbHVlIjogMC4wNTQxNDUxNjEwNjI0NzkwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTA5LjkwOTc4MjIsICJzdGVwIjogMTQ4MCwgInZhbHVlIjogMC4wNjM1NTM0ODk3NDQ2NjMyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTE5LjEyMTc4OTUsICJzdGVwIjogMTQ5MCwgInZhbHVlIjogMC4wNDQxNjIwOTQ1OTMwNDgwOTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTEyOC40MTkwNjUyLCAic3RlcCI6IDE1MDAsICJ2YWx1ZSI6IDAuMDUyMDg4NjgxNjA4NDM4NDl9LCB7IndhbGxUaW1lIjogMTczMzA2OTEzNy42MDk2MDcyLCAic3RlcCI6IDE1MTAsICJ2YWx1ZSI6IDAuMDU5NDU5MDkzOTU4MTM5NDJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTE1MC41NDY0NDIzLCAic3RlcCI6IDE1MjAsICJ2YWx1ZSI6IDAuMDM0MzU2ODIxMzI4NDAxNTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxNTkuNzU5ODk3NywgInN0ZXAiOiAxNTMwLCAidmFsdWUiOiAwLjA0NDg5ODA0ODA0MzI1MTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxNjguMTczNTIyLCAic3RlcCI6IDE1NDAsICJ2YWx1ZSI6IDAuMDUzNjkwMTA5NDAxOTQxM30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTc2Ljg0MzgyMSwgInN0ZXAiOiAxNTUwLCAidmFsdWUiOiAwLjA1MzExOTExOTI1NjczNDg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxODUuODk1MDk1NiwgInN0ZXAiOiAxNTYwLCAidmFsdWUiOiAwLjAzNDc5MDkyOTQwNjg4MTMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxOTQuOTI3MTQyLCAic3RlcCI6IDE1NzAsICJ2YWx1ZSI6IDAuMDYxMzE4NzI1MzQ3NTE4OTJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTIwMy45MTczMjQ1LCAic3RlcCI6IDE1ODAsICJ2YWx1ZSI6IDAuMDMyMzc1MjI3NjU5OTQwNzJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTIxMi43MTkyNjksICJzdGVwIjogMTU5MCwgInZhbHVlIjogMC4wMzgzNjAxNDg2NjgyODkxODV9LCB7IndhbGxUaW1lIjogMTczMzA2OTIyNS41MzY5OTY2LCAic3RlcCI6IDE2MDAsICJ2YWx1ZSI6IDAuMDM4MjM2NDUwNDAzOTI4NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTIzNS40NjY2ODg0LCAic3RlcCI6IDE2MTAsICJ2YWx1ZSI6IDAuMDQ2ODMzMzEwMjc2MjY5OTF9LCB7IndhbGxUaW1lIjogMTczMzA2OTI0NC42MzMzNjk0LCAic3RlcCI6IDE2MjAsICJ2YWx1ZSI6IDAuMDQxMTU4OTAzMzkwMTY5MTQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNTQuMjk2NDg4MywgInN0ZXAiOiAxNjMwLCAidmFsdWUiOiAwLjA1MDM2NzgyNDczMzI1NzI5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjYzLjAwODI1MjYsICJzdGVwIjogMTY0MCwgInZhbHVlIjogMC4wNDczNzY0NTM4NzY0OTUzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjcxLjg2OTQ4ODcsICJzdGVwIjogMTY1MCwgInZhbHVlIjogMC4wNTQzMDY4Mzg2NjE0MzIyNjZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTI4MC41MTI3MDUzLCAic3RlcCI6IDE2NjAsICJ2YWx1ZSI6IDAuMDk1Njk4MTQ4MDEyMTYxMjV9LCB7IndhbGxUaW1lIjogMTczMzA2OTI4OS42ODI2MDgsICJzdGVwIjogMTY3MCwgInZhbHVlIjogMC4wNDcwNTA1MjQ1MDI5OTI2M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzAzLjYxMzg3NzgsICJzdGVwIjogMTY4MCwgInZhbHVlIjogMC4wNTk3ODYwNjY0MTI5MjU3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzEyLjQ4MjUxODQsICJzdGVwIjogMTY5MCwgInZhbHVlIjogMC4wNDA5NTUxMTg4MzQ5NzIzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzIxLjg0MTc2OCwgInN0ZXAiOiAxNzAwLCAidmFsdWUiOiAwLjA0MzY2OTcxMTc5ODQyOTQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMzAuMzUwODA0MywgInN0ZXAiOiAxNzEwLCAidmFsdWUiOiAwLjA0NDk1OTAxOTg2OTU2NTk2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzM5LjI0ODM2MjgsICJzdGVwIjogMTcyMCwgInZhbHVlIjogMC4wMzYzOTAzMDgyOTA3MTk5ODZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTM0Ni44NjE4NzYsICJzdGVwIjogMTczMCwgInZhbHVlIjogMC4wNzU3NTk2NzE2Mjg0NzUxOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzU1LjY1NzM4NjgsICJzdGVwIjogMTc0MCwgInZhbHVlIjogMC4wMzQ0NDg0NzQ2NDU2MTQ2MjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTM2NC41MTQ5MDIsICJzdGVwIjogMTc1MCwgInZhbHVlIjogMC4wNjU3MDgxMzgwNDg2NDg4M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzczLjc0MTUxOCwgInN0ZXAiOiAxNzYwLCAidmFsdWUiOiAwLjA4ODAwNzg2NzMzNjI3MzJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTM4Ny41NDM5NTgsICJzdGVwIjogMTc3MCwgInZhbHVlIjogMC4wNDg0Mjc5MzU2ODk2ODc3M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5Mzk2LjQ3MTgyNSwgInN0ZXAiOiAxNzgwLCAidmFsdWUiOiAwLjA2NjM3ODMxMDMyMjc2MTU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MDUuOTk5MDc0NywgInN0ZXAiOiAxNzkwLCAidmFsdWUiOiAwLjA1MDI1MzEzNzk0NjEyODg0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDE1LjA1NjY1NTQsICJzdGVwIjogMTgwMCwgInZhbHVlIjogMC4wNDI4ODQ4NTY0NjI0Nzg2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDIzLjkxMDI3MDIsICJzdGVwIjogMTgxMCwgInZhbHVlIjogMC4wNDIzMzE4MTg0OTEyMjA0NzR9LCB7IndhbGxUaW1lIjogMTczMzA2OTQzMi41MzQwMjgsICJzdGVwIjogMTgyMCwgInZhbHVlIjogMC4wNTA2Mjk3NjQ3OTUzMDMzNDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ0MS4yMjIxOTkyLCAic3RlcCI6IDE4MzAsICJ2YWx1ZSI6IDAuMDQwNjc5NDA2Mzc0NjkyOTJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ1MC4wOTI4NjI2LCAic3RlcCI6IDE4NDAsICJ2YWx1ZSI6IDAuMDM0MzQ3MzU5MDkxMDQzNDd9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ2My4xMDk4NTUyLCAic3RlcCI6IDE4NTAsICJ2YWx1ZSI6IDAuMDM2NDYwODU3ODM4MzkyMjZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ3MS41NzU0NTMzLCAic3RlcCI6IDE4NjAsICJ2YWx1ZSI6IDAuMDMxMzI4NzUyNjM2OTA5NDg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0ODAuNTAwNjMyMywgInN0ZXAiOiAxODcwLCAidmFsdWUiOiAwLjA3MzM3NDY4ODYyNTMzNTd9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ4OS4zODczNDYsICJzdGVwIjogMTg4MCwgInZhbHVlIjogMC4wNDYyOTc1NTAyMDE0MTYwMTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ5Ny45NzkxNjcyLCAic3RlcCI6IDE4OTAsICJ2YWx1ZSI6IDAuMDU1OTU4NTk1MTI2ODY3Mjk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MDYuODE3Mjg4NCwgInN0ZXAiOiAxOTAwLCAidmFsdWUiOiAwLjAzMjQ5NTI3MTQxNDUxODM1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTE1LjgyNzA0NDcsICJzdGVwIjogMTkxMCwgInZhbHVlIjogMC4wNTAxMzM2OTc2ODg1Nzk1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTI0LjYzODkyNDgsICJzdGVwIjogMTkyMCwgInZhbHVlIjogMC4wMzU1NzQ0MDYzODU0MjE3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTMzLjU0NDY3MDgsICJzdGVwIjogMTkzMCwgInZhbHVlIjogMC4wNTc4MDU1MzA3MjY5MDk2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTUwLjQ4MDQwMSwgInN0ZXAiOiAxOTQwLCAidmFsdWUiOiAwLjAyNDEzOTAxNTAwNDAzODgxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NTguODMwNDQyNCwgInN0ZXAiOiAxOTUwLCAidmFsdWUiOiAwLjA1OTE1NTE4MTA1MDMwMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTU2Ny43NjAyODg1LCAic3RlcCI6IDE5NjAsICJ2YWx1ZSI6IDAuMDM5NzQ5MjA1MTEyNDU3Mjc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NzYuMzQ3NTk0LCAic3RlcCI6IDE5NzAsICJ2YWx1ZSI6IDAuMDUxMTg0ODMzMDQ5Nzc0MTd9LCB7IndhbGxUaW1lIjogMTczMzA2OTU4NS41MzE0OTU2LCAic3RlcCI6IDE5ODAsICJ2YWx1ZSI6IDAuMDQ5MDE5NjU3MDc1NDA1MTJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTU5NC4zNTI2NjAyLCAic3RlcCI6IDE5OTAsICJ2YWx1ZSI6IDAuMDUxNDc5NzE5NTc5MjE5ODJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTYwMi40MDQwNzgsICJzdGVwIjogMjAwMCwgInZhbHVlIjogMC4wNjAzNDM0Mjk0NDYyMjA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MTAuMjUyMzA5MywgInN0ZXAiOiAyMDEwLCAidmFsdWUiOiAwLjA1MjM0MzE5NzE2NjkxOTcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MjYuNjg5MTY1NCwgInN0ZXAiOiAyMDIwLCAidmFsdWUiOiAwLjA0ODIyOTYwNDk1OTQ4NzkxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjM1LjAzMzI1MSwgInN0ZXAiOiAyMDMwLCAidmFsdWUiOiAwLjAzNjcwNTkxODYxMDA5NTk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NDMuODI0OTc2MiwgInN0ZXAiOiAyMDQwLCAidmFsdWUiOiAwLjA1MzA4Mjk4Mzk0MDgzOTc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NTIuMTk2NzI3NSwgInN0ZXAiOiAyMDUwLCAidmFsdWUiOiAwLjA1NjI2OTA1NzA5NTA1MDgxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NjAuNDU1ODMyMiwgInN0ZXAiOiAyMDYwLCAidmFsdWUiOiAwLjA3Njk3NDE5ODIyMjE2MDM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NjkuNTk0NDA3OCwgInN0ZXAiOiAyMDcwLCAidmFsdWUiOiAwLjAzNDYyNDA0Mzg1MjA5MDgzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Njc4Ljc4MDgyNjgsICJzdGVwIjogMjA4MCwgInZhbHVlIjogMC4wNTE3NzYxNzgxODExNzE0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Njg2Ljk0NzI0MTMsICJzdGVwIjogMjA5MCwgInZhbHVlIjogMC4wNDkxMDI2Nzg4OTQ5OTY2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzAwLjYwNDQ1MjYsICJzdGVwIjogMjEwMCwgInZhbHVlIjogMC4wMzU5Mjg3OTMyNTE1MTQ0MzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTcwOC43Mjg3MDQ1LCAic3RlcCI6IDIxMTAsICJ2YWx1ZSI6IDAuMDM5MDY0NDE4NTI0NTAzNzF9LCB7IndhbGxUaW1lIjogMTczMzA2OTcxNy40NTA1NzE4LCAic3RlcCI6IDIxMjAsICJ2YWx1ZSI6IDAuMDQ0NTQ3NDkwNzc1NTg1MTc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MjYuMTQzNTgyOCwgInN0ZXAiOiAyMTMwLCAidmFsdWUiOiAwLjAzMTU2MjQzMjY0Njc1MTQwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzM1LjA0MDM3MDIsICJzdGVwIjogMjE0MCwgInZhbHVlIjogMC4wMzI1MTgyMDQzMDE1OTU2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzQzLjMwODM5NzMsICJzdGVwIjogMjE1MCwgInZhbHVlIjogMC4wNDA1MTk1NzI3OTQ0Mzc0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzUyLjUwMzE1NDUsICJzdGVwIjogMjE2MCwgInZhbHVlIjogMC4wNDI4ODI4MTg3Mjg2ODUzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzYxLjQ1MzI5NzEsICJzdGVwIjogMjE3MCwgInZhbHVlIjogMC4wMzY2MDkwMDg5MDgyNzE3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzcwLjQzNTQ2NTgsICJzdGVwIjogMjE4MCwgInZhbHVlIjogMC4wNTIxODY2NDU1Njc0MTcxNDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTc4NC4zNjYyMTIxLCAic3RlcCI6IDIxOTAsICJ2YWx1ZSI6IDAuMDQzMjE4Mzk2NjA0MDYxMTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTc5My4xMjQ4MDc2LCAic3RlcCI6IDIyMDAsICJ2YWx1ZSI6IDAuMDM0MTIwOTA5ODY5NjcwODd9LCB7IndhbGxUaW1lIjogMTczMzA2OTgwMS42Mzg0ODY2LCAic3RlcCI6IDIyMTAsICJ2YWx1ZSI6IDAuMDUzOTU2MDk4ODU0NTQxNzh9LCB7IndhbGxUaW1lIjogMTczMzA2OTgxMC42MTAxNjQ2LCAic3RlcCI6IDIyMjAsICJ2YWx1ZSI6IDAuMDM5ODA2ODQ2NTI5MjQ1Mzh9LCB7IndhbGxUaW1lIjogMTczMzA2OTgxOS4zNDUxODE3LCAic3RlcCI6IDIyMzAsICJ2YWx1ZSI6IDAuMDU4NjU5MDk1MzE3MTI1MzJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTgyNy4zMjgzNDQ2LCAic3RlcCI6IDIyNDAsICJ2YWx1ZSI6IDAuMDQ3NDIwNTc2MjE0NzkwMzQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MzUuODcwNDk2NywgInN0ZXAiOiAyMjUwLCAidmFsdWUiOiAwLjAzNDY5NzcxMTQ2Nzc0MjkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NDQuMjM4MTgxNiwgInN0ZXAiOiAyMjYwLCAidmFsdWUiOiAwLjA0NzI0ODQ5NzYwNTMyMzc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NTYuNzUxNzA1MiwgInN0ZXAiOiAyMjcwLCAidmFsdWUiOiAwLjA2NTk0MTE0MDA1NTY1NjQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NjUuMjU5Nzk2NiwgInN0ZXAiOiAyMjgwLCAidmFsdWUiOiAwLjA1ODk0MDUzNzI3Mzg4MzgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NzQuMDA4MTAzNiwgInN0ZXAiOiAyMjkwLCAidmFsdWUiOiAwLjA0MDUxOTkxNTUyMTE0NDg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4ODEuNzgzODIzNywgInN0ZXAiOiAyMzAwLCAidmFsdWUiOiAwLjA0NjY0Nzk2NTkwODA1MDU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4OTAuNDE1OTg2NSwgInN0ZXAiOiAyMzEwLCAidmFsdWUiOiAwLjAzMTQ0NDEzMjMyODAzMzQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4OTguODc4Nzk2OCwgInN0ZXAiOiAyMzIwLCAidmFsdWUiOiAwLjA1MDQ3NDYyNTA4MDgyMzl9LCB7IndhbGxUaW1lIjogMTczMzA2OTkwOC4zMTk4NTYsICJzdGVwIjogMjMzMCwgInZhbHVlIjogMC4wMzc2Mjg2MjgzMTM1NDE0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTE3LjQxNzM3NiwgInN0ZXAiOiAyMzQwLCAidmFsdWUiOiAwLjAzNzM5MzczNzU4NDM1MjQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MjUuODUyOTk1NiwgInN0ZXAiOiAyMzUwLCAidmFsdWUiOiAwLjAzODYzMzY2NjkzMjU4Mjg1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTM4LjcwNjM0LCAic3RlcCI6IDIzNjAsICJ2YWx1ZSI6IDAuMDc0NDQyMzg2NjI3MTk3Mjd9LCB7IndhbGxUaW1lIjogMTczMzA2OTk0Ny40MjgyOTQsICJzdGVwIjogMjM3MCwgInZhbHVlIjogMC4wMjk3OTc2Mzk2OTc3OTAxNDZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTk1Ni4yMTAyNDYzLCAic3RlcCI6IDIzODAsICJ2YWx1ZSI6IDAuMDQ0ODc4MDQ2OTU5NjM4NTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NjQuMjc2OTI1OCwgInN0ZXAiOiAyMzkwLCAidmFsdWUiOiAwLjA3NDk4NDAyMTQ4NDg1MTg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NzMuMzI4MTgwMywgInN0ZXAiOiAyNDAwLCAidmFsdWUiOiAwLjAzMjUzOTc5MjM1ODg3NTI3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTgxLjQzNDE5NTUsICJzdGVwIjogMjQxMCwgInZhbHVlIjogMC4wMjQyNjEwMzg3NTA0MTAwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTkwLjE0MTgxNDcsICJzdGVwIjogMjQyMCwgInZhbHVlIjogMC4wNDc0NzQ3NzE3MzgwNTIzN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTk4LjgwMDkzLCAic3RlcCI6IDI0MzAsICJ2YWx1ZSI6IDAuMDQxNzg2NDYyMDY4NTU3NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDAxMi40NTc5Mjg0LCAic3RlcCI6IDI0NDAsICJ2YWx1ZSI6IDAuMDQwNzUzMTYzMzk3MzEyMTY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMjEuNjAxMTU0MywgInN0ZXAiOiAyNDUwLCAidmFsdWUiOiAwLjAzNzQ0NzM3ODAzOTM2MDA0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDMwLjE5MzAzNTQsICJzdGVwIjogMjQ2MCwgInZhbHVlIjogMC4wMzY5OTc2OTA3OTY4NTIxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDM5LjIyMTMzNywgInN0ZXAiOiAyNDcwLCAidmFsdWUiOiAwLjA0ODc1NDc4ODkzNTE4NDQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNDguMjcwOTcyMywgInN0ZXAiOiAyNDgwLCAidmFsdWUiOiAwLjA0MzM1NDYzNzkyMDg1NjQ3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDU2LjE1NzgxMDQsICJzdGVwIjogMjQ5MCwgInZhbHVlIjogMC4wMzU0MzI2NzM5OTA3MjY0N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDY0LjQ1MjY3NDIsICJzdGVwIjogMjUwMCwgInZhbHVlIjogMC4wMjcyOTkyMDY3MDM5MDEyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDcyLjU1NDE3NjgsICJzdGVwIjogMjUxMCwgInZhbHVlIjogMC4wNTY3NDc4OTEwMDg4NTM5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDg3LjY1OTAwNzgsICJzdGVwIjogMjUyMCwgInZhbHVlIjogMC4wMzEyMjkyOTQ4MzY1MjExNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDk1LjQ0MzcwODcsICJzdGVwIjogMjUzMCwgInZhbHVlIjogMC4wMjYxNzAyOTY1OTQ1MDA1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTAzLjc3MDkyNiwgInN0ZXAiOiAyNTQwLCAidmFsdWUiOiAwLjA1MzIxODM5ODI0MzE4ODg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMTMuMDUxNDkzNCwgInN0ZXAiOiAyNTUwLCAidmFsdWUiOiAwLjA0MjgwNDc1ODk5NTc3MTQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMjEuMDM5NzgzLCAic3RlcCI6IDI1NjAsICJ2YWx1ZSI6IDAuMDU0NDI4NTk5Nzc0ODM3NDk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMjkuNTg3MjY3LCAic3RlcCI6IDI1NzAsICJ2YWx1ZSI6IDAuMDM5MDE2MTM1MDM2OTQ1MzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDEzOC4zNjI4NTc2LCAic3RlcCI6IDI1ODAsICJ2YWx1ZSI6IDAuMDQxMDQ4MjY5NzE4ODg1NDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDE0Ny4wODkzMzAyLCAic3RlcCI6IDI1OTAsICJ2YWx1ZSI6IDAuMDQzOTkwNjgyODEwNTQ0OTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDE1NS40ODg5ODE1LCAic3RlcCI6IDI2MDAsICJ2YWx1ZSI6IDAuMDM2NjQ3NjI4OTkyNzk1OTQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNzIuNTc5MzI0NSwgInN0ZXAiOiAyNjEwLCAidmFsdWUiOiAwLjA0NjUwNjA4NDUwMTc0MzMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxODEuMjEzMTYwOCwgInN0ZXAiOiAyNjIwLCAidmFsdWUiOiAwLjAzNjA4MTkyODc1OTgxMzMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxODkuNjk0NDQ2MywgInN0ZXAiOiAyNjMwLCAidmFsdWUiOiAwLjA0NjUyMzI2OTI2NTg5MDEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxOTguNDAxMTMxNiwgInN0ZXAiOiAyNjQwLCAidmFsdWUiOiAwLjA1MDczNjcwNjcwMzkwMTI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMDYuNzA5NDUzMywgInN0ZXAiOiAyNjUwLCAidmFsdWUiOiAwLjA0MDQyMzM1MjI3MTMxODQzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjE1LjYwMTgzMSwgInN0ZXAiOiAyNjYwLCAidmFsdWUiOiAwLjAzNTg4MzQ3MTM2OTc0MzM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMjQuMzE4MzEyNiwgInN0ZXAiOiAyNjcwLCAidmFsdWUiOiAwLjA0MjkyNTQ1ODQwMTQ0MTU3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjMzLjU0MTQwMSwgInN0ZXAiOiAyNjgwLCAidmFsdWUiOiAwLjA0ODcxODIxMDMwOTc0Mzg4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNDYuNzYwMjgzMiwgInN0ZXAiOiAyNjkwLCAidmFsdWUiOiAwLjAzMjQxMDc3NDM3OTk2ODY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNTYuMDMxMjIwNCwgInN0ZXAiOiAyNzAwLCAidmFsdWUiOiAwLjA1NzAyNjYxMzUwMzY5NDUzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjY0Ljk1Mjc3MTQsICJzdGVwIjogMjcxMCwgInZhbHVlIjogMC4wMzE5MTkyODE5Mjk3MzEzN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjczLjgyOTA0MzQsICJzdGVwIjogMjcyMCwgInZhbHVlIjogMC4wNDU1NDA0NjY5MDQ2NDAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyODIuOTYxMTA5LCAic3RlcCI6IDI3MzAsICJ2YWx1ZSI6IDAuMDQwODMxOTkwNTQwMDI3NjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDI5Mi4yNzk5Mjk0LCAic3RlcCI6IDI3NDAsICJ2YWx1ZSI6IDAuMDM1NTU1NDUyMTA4MzgzMTh9LCB7IndhbGxUaW1lIjogMTczMzA3MDMwMC4zMzg4MDM4LCAic3RlcCI6IDI3NTAsICJ2YWx1ZSI6IDAuMDU0MTcxNjgxNDA0MTEzNzd9LCB7IndhbGxUaW1lIjogMTczMzA3MDMwOS40MTQyMjQ2LCAic3RlcCI6IDI3NjAsICJ2YWx1ZSI6IDAuMDQ4MjgzMDI1NjIyMzY3ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDMxNy41MzM1ODYzLCAic3RlcCI6IDI3NzAsICJ2YWx1ZSI6IDAuMDQ0MTk5ODI0MzMzMTkwOTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDMzMC40MzgyMzgxLCAic3RlcCI6IDI3ODAsICJ2YWx1ZSI6IDAuMDQyMjgxOTMzMTI4ODMzNzd9LCB7IndhbGxUaW1lIjogMTczMzA3MDMzOS44MjU1NjY4LCAic3RlcCI6IDI3OTAsICJ2YWx1ZSI6IDAuMDQwOTE2MDYyODkxNDgzMzF9LCB7IndhbGxUaW1lIjogMTczMzA3MDM0Ny45OTcwMjc2LCAic3RlcCI6IDI4MDAsICJ2YWx1ZSI6IDAuMDM0MzQ3MjM2MTU2NDYzNjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDM1Ni44OTY1MTQsICJzdGVwIjogMjgxMCwgInZhbHVlIjogMC4wNDAzODQ0MTkyNjI0MDkyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzY1LjU3OTA2MiwgInN0ZXAiOiAyODIwLCAidmFsdWUiOiAwLjAzNDI3OTM0Mjc0MDc3NDE1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzc0LjM5NTcyMDIsICJzdGVwIjogMjgzMCwgInZhbHVlIjogMC4wMzE5MTA2ODAyMzQ0MzIyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzgyLjQyOTA0NiwgInN0ZXAiOiAyODQwLCAidmFsdWUiOiAwLjA1MjI2NzEyNjczOTAyNTExNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzkwLjk0MzM1NzUsICJzdGVwIjogMjg1MCwgInZhbHVlIjogMC4wMjk3MzkzMDUzNzcwMDY1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDA2LjY4MDc3MTQsICJzdGVwIjogMjg2MCwgInZhbHVlIjogMC4wNjI1NzgzNDI4NTQ5NzY2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDE1LjA5MjUxODYsICJzdGVwIjogMjg3MCwgInZhbHVlIjogMC4wNTc4MTIxMTMzMTQ4NjcwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDIyLjkyMjE2MDQsICJzdGVwIjogMjg4MCwgInZhbHVlIjogMC4wMjk4MTk4OTgzMDczMjM0NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzMS41Mzk0MTk3LCAic3RlcCI6IDI4OTAsICJ2YWx1ZSI6IDAuMDMzNTkwMTgyNjYyMDEwMTl9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzOS45ODMwNjksICJzdGVwIjogMjkwMCwgInZhbHVlIjogMC4wMzYxMzczNzIyNTUzMjUzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDQ4LjA4NzU5MTYsICJzdGVwIjogMjkxMCwgInZhbHVlIjogMC4wNDc3MDg2MzA1NjE4Mjg2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDU3LjQyNTcyMzYsICJzdGVwIjogMjkyMCwgInZhbHVlIjogMC4wMzI5OTg2NDM4MTU1MTc0MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ2Ni43MjUsICJzdGVwIjogMjkzMCwgInZhbHVlIjogMC4wNTA5NjI4ODM5NzkwODIxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDc5LjMzNDc3OSwgInN0ZXAiOiAyOTQwLCAidmFsdWUiOiAwLjA0MjIxNzEzNTQyOTM4MjMyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDg4Ljc4NDQ2NDYsICJzdGVwIjogMjk1MCwgInZhbHVlIjogMC4wMjk3MTIwNDE4Mzk5NTcyMzd9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ5Ny4yMjcwMSwgInN0ZXAiOiAyOTYwLCAidmFsdWUiOiAwLjAzMjUwNTIxNDIxNDMyNDk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MDUuNjM1ODU2NCwgInN0ZXAiOiAyOTcwLCAidmFsdWUiOiAwLjAzMjA4Njg3OTAxNDk2ODg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MTMuMzU1OTk1MiwgInN0ZXAiOiAyOTgwLCAidmFsdWUiOiAwLjA1NzYyODM4NTcyMjYzNzE3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTIyLjMxOTQ3NTIsICJzdGVwIjogMjk5MCwgInZhbHVlIjogMC4wMzc3MjMzMTc3NDIzNDc3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTMwLjIxNDY3MiwgInN0ZXAiOiAzMDAwLCAidmFsdWUiOiAwLjA1MjgzNTc1MTMyNDg5MjA0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTM4LjMwMjAyNiwgInN0ZXAiOiAzMDEwLCAidmFsdWUiOiAwLjAzMDQ2MTE1MTE1Mjg0OTE5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTQ3LjQwMjUyNTIsICJzdGVwIjogMzAyMCwgInZhbHVlIjogMC4wNDQzMDQxMzk5MTIxMjg0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTY0LjA1MzA3NiwgInN0ZXAiOiAzMDMwLCAidmFsdWUiOiAwLjAzODI5MjMyNjAzMzExNTM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NzIuMzcxNzc1NCwgInN0ZXAiOiAzMDQwLCAidmFsdWUiOiAwLjAyOTc4MTM1MDg2NTk2MDEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1ODAuNjczMjc4LCAic3RlcCI6IDMwNTAsICJ2YWx1ZSI6IDAuMDUyMTQ5Njg2OTYyMzY2MTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1ODguNjU1MjEyOSwgInN0ZXAiOiAzMDYwLCAidmFsdWUiOiAwLjAyOTA2NDAxODI3OTMxNDA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1OTcuNDIyODk2MSwgInN0ZXAiOiAzMDcwLCAidmFsdWUiOiAwLjAzMzcxMTg1MDY0MzE1Nzk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MDYuMTM5NDIwMywgInN0ZXAiOiAzMDgwLCAidmFsdWUiOiAwLjA2Mzk0MzM3MTE3NjcxOTY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MTQuNDQxOTE2MiwgInN0ZXAiOiAzMDkwLCAidmFsdWUiOiAwLjA2MDE2Njk2OTg5NTM2Mjg1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjI0LjAwMjM1MzcsICJzdGVwIjogMzEwMCwgInZhbHVlIjogMC4wMjgyMTQyNTM0ODUyMDI3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjM3LjI1NDA0MDUsICJzdGVwIjogMzExMCwgInZhbHVlIjogMC4wNDc4OTgzNDQ2OTU1NjgwODV9LCB7IndhbGxUaW1lIjogMTczMzA3MDY0NS42ODQwNDE3LCAic3RlcCI6IDMxMjAsICJ2YWx1ZSI6IDAuMDMyMzM1MTg0NTE0NTIyNTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDY1NC4yNzE1ODQ3LCAic3RlcCI6IDMxMzAsICJ2YWx1ZSI6IDAuMDQ1Mjk3NjI2NDA1OTU0MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDY2My4zMjI0MjczLCAic3RlcCI6IDMxNDAsICJ2YWx1ZSI6IDAuMDM3MTQzODIyNzU5Mzg5ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MDY3MS4xMTkwNzA1LCAic3RlcCI6IDMxNTAsICJ2YWx1ZSI6IDAuMDU3MTgxMzg4MTM5NzI0NzN9LCB7IndhbGxUaW1lIjogMTczMzA3MDY3OS43NjY2MDAxLCAic3RlcCI6IDMxNjAsICJ2YWx1ZSI6IDAuMDI2OTk2MTg5NzI4Mzc5MjV9LCB7IndhbGxUaW1lIjogMTczMzA3MDY4Ny44NDY2ODYsICJzdGVwIjogMzE3MCwgInZhbHVlIjogMC4wNTYxOTIyNjM5NjA4MzgzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjk1Ljg1NjgwMzIsICJzdGVwIjogMzE4MCwgInZhbHVlIjogMC4wMzA2MzAzNzYxODk5NDcxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzA0LjYyMzUzMjMsICJzdGVwIjogMzE5MCwgInZhbHVlIjogMC4wMzQzODMwOTk1MjYxNjY5MTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDcxNy4xMDk5NzQ0LCAic3RlcCI6IDMyMDAsICJ2YWx1ZSI6IDAuMDQ2MzYzNDI4MjM1MDU0MDE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MjYuMDk5Nzk2NSwgInN0ZXAiOiAzMjEwLCAidmFsdWUiOiAwLjA0NjI3NDQwNDk3Mjc5MTY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MzQuNzc5NzQ5NiwgInN0ZXAiOiAzMjIwLCAidmFsdWUiOiAwLjA0MzQ2NDI0MzQxMjAxNzgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NDQuNDEzNjMzOCwgInN0ZXAiOiAzMjMwLCAidmFsdWUiOiAwLjAyNzk1OTQ1MTA3OTM2ODU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NTIuNTAyNzM5LCAic3RlcCI6IDMyNDAsICJ2YWx1ZSI6IDAuMDM5NTg1Mjg4NjE0MDM0NjV9LCB7IndhbGxUaW1lIjogMTczMzA3MDc2MS43MjI0Mzg4LCAic3RlcCI6IDMyNTAsICJ2YWx1ZSI6IDAuMDI2MzMyMjE4MTk5OTY4MzM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NzAuMzc3NzQyNSwgInN0ZXAiOiAzMjYwLCAidmFsdWUiOiAwLjAyNjU2MTQ3NjI5MDIyNTk4M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzc5LjczMTAyNjQsICJzdGVwIjogMzI3MCwgInZhbHVlIjogMC4wMzQ5MTczMjEwNTYxMjc1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzkzLjY3OTY5MTgsICJzdGVwIjogMzI4MCwgInZhbHVlIjogMC4wMzQxNDAyOTYyODAzODQwNjR9LCB7IndhbGxUaW1lIjogMTczMzA3MDgwMS45MDEwNDM3LCAic3RlcCI6IDMyOTAsICJ2YWx1ZSI6IDAuMDI3NDM0MDk1NzQwMzE4M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwODEwLjE2MjEwNDQsICJzdGVwIjogMzMwMCwgInZhbHVlIjogMC4wMjY2Njk1OTM1Mjc5MTMwOTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDgxOC43Mjc2NTk3LCAic3RlcCI6IDMzMTAsICJ2YWx1ZSI6IDAuMDM3NzI1ODY5NTY2MjAyMTY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MjcuMDA5NjcxNywgInN0ZXAiOiAzMzIwLCAidmFsdWUiOiAwLjA0Mzc2NTkzMjMyMTU0ODQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MzUuNTc3MjU3NiwgInN0ZXAiOiAzMzMwLCAidmFsdWUiOiAwLjA2Mzc5MTAyMTcwNDY3Mzc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NDMuOTc3NDU0MiwgInN0ZXAiOiAzMzQwLCAidmFsdWUiOiAwLjAzOTI2ODgwNjU3NjcyODgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NTMuMDkzMDQ0MywgInN0ZXAiOiAzMzUwLCAidmFsdWUiOiAwLjA1Nzc2OTI1Mzg0OTk4MzIxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODY1LjQyMDcyMTMsICJzdGVwIjogMzM2MCwgInZhbHVlIjogMC4wMzA1NTMzMDczODQyNTI1NDh9LCB7IndhbGxUaW1lIjogMTczMzA3MDg3My42NjI3MTc2LCAic3RlcCI6IDMzNzAsICJ2YWx1ZSI6IDAuMDMzNDUwNDM5NTcyMzM0Mjl9LCB7IndhbGxUaW1lIjogMTczMzA3MDg4My4zMzcwNzEsICJzdGVwIjogMzM4MCwgInZhbHVlIjogMC4wMzQ2OTk2MDM5MTUyMTQ1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODkyLjM3ODA2MSwgInN0ZXAiOiAzMzkwLCAidmFsdWUiOiAwLjAzNTcxNjIxMzI4NTkyMzAwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTAwLjcyMzQyMDksICJzdGVwIjogMzQwMCwgInZhbHVlIjogMC4wNDY1MDMxNDE1MjI0MDc1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTA4LjUwNTI0NTIsICJzdGVwIjogMzQxMCwgInZhbHVlIjogMC4wMjkzODcwMTU4NDkzNTE4ODN9LCB7IndhbGxUaW1lIjogMTczMzA3MDkxNi42NTY4NDIsICJzdGVwIjogMzQyMCwgInZhbHVlIjogMC4wNDQ0MDQwNjMzNzM4MDQwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTI1LjIxMjYzOSwgInN0ZXAiOiAzNDMwLCAidmFsdWUiOiAwLjAzNDMxNzUzODE0MjIwNDI4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTMzLjgxMTM3MDYsICJzdGVwIjogMzQ0MCwgInZhbHVlIjogMC4wMzcwOTkxMTkyNzU4MDgzMzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDk0Ny40ODA4ODg0LCAic3RlcCI6IDM0NTAsICJ2YWx1ZSI6IDAuMDMyMjM5NDM3MTAzMjcxNDg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NTYuMTg4NzI0LCAic3RlcCI6IDM0NjAsICJ2YWx1ZSI6IDAuMDMwNDI3ODI0NzA1ODM5MTU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NjQuMjY3NDQ2OCwgInN0ZXAiOiAzNDcwLCAidmFsdWUiOiAwLjA5MzM0NTYyNzE4ODY4MjU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NzIuMzg3MjQ5NSwgInN0ZXAiOiAzNDgwLCAidmFsdWUiOiAwLjA0MDk1MDg4MzE3OTkwMzAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5ODAuNjQ4MTk4OCwgInN0ZXAiOiAzNDkwLCAidmFsdWUiOiAwLjA0MTQ4Njg1MTg3MTAxMzY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5ODkuNjg4ODU3NiwgInN0ZXAiOiAzNTAwLCAidmFsdWUiOiAwLjAzNDk2MzIyNzgwODQ3NTQ5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTk3Ljc4OTgyNTQsICJzdGVwIjogMzUxMCwgInZhbHVlIjogMC4wNTE2MTk3OTc5NDUwMjI1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDA2LjI3MjU2NywgInN0ZXAiOiAzNTIwLCAidmFsdWUiOiAwLjA2MzU4MTI0MzE1NzM4Njc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMTguODk3Mjg0NywgInN0ZXAiOiAzNTMwLCAidmFsdWUiOiAwLjA0MTQzMzQwODg1NjM5MTkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMjcuMTk4NDgxNiwgInN0ZXAiOiAzNTQwLCAidmFsdWUiOiAwLjAyMzQ3MDEyNjA5MjQzMzkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMzUuMzIxODEzMywgInN0ZXAiOiAzNTUwLCAidmFsdWUiOiAwLjA1MDIxMDkwMDYwNDcyNDg4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDQzLjc0Njk0NjMsICJzdGVwIjogMzU2MCwgInZhbHVlIjogMC4wMzI1NDc0NTUyODEwMTkyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDUxLjg3MzM4NzgsICJzdGVwIjogMzU3MCwgInZhbHVlIjogMC4wNDY3OTA4OTc4NDYyMjE5MjR9LCB7IndhbGxUaW1lIjogMTczMzA3MTA2MC40OTczNDEsICJzdGVwIjogMzU4MCwgInZhbHVlIjogMC4wMzk5MDkyNzMzODYwMDE1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDY4Ljg4MDczLCAic3RlcCI6IDM1OTAsICJ2YWx1ZSI6IDAuMDQ2NDg3ODE1Njc4MTE5NjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTA3Ny43MTQyNTMsICJzdGVwIjogMzYwMCwgInZhbHVlIjogMC4wMzk5ODQ3MTc5NjUxMjYwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDg2LjIxMzY1NDUsICJzdGVwIjogMzYxMCwgInZhbHVlIjogMC4wMzgyMzc0NTk5NTc1OTk2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTAxLjY2MDA3NTcsICJzdGVwIjogMzYyMCwgInZhbHVlIjogMC4wMzkzMDU5OTI0MjQ0ODgwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTA5LjYyMzUxMDYsICJzdGVwIjogMzYzMCwgInZhbHVlIjogMC4wNDc5NjgzNzI3MDI1OTg1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTE4LjEzMDU2MjgsICJzdGVwIjogMzY0MCwgInZhbHVlIjogMC4wMzUyMzg4MTczMzQxNzUxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTI2Ljk5NDQ0NzcsICJzdGVwIjogMzY1MCwgInZhbHVlIjogMC4wMzIzNDY4NDgzOTg0NDcwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTM1LjgyODY5NjcsICJzdGVwIjogMzY2MCwgInZhbHVlIjogMC4wNDM4NDI3NDAzNTY5MjIxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTQ0LjI0OTc4NTIsICJzdGVwIjogMzY3MCwgInZhbHVlIjogMC4wMzc2OTEwMDQ1NzQyOTg4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTUyLjk2NTgxMDUsICJzdGVwIjogMzY4MCwgInZhbHVlIjogMC4wMzM2MzU5NzAyMDUwNjg1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTYwLjYwNDc1MzcsICJzdGVwIjogMzY5MCwgInZhbHVlIjogMC4wMzM2NTg3MzU0NTQwODI0OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTczLjc1MTYyMDUsICJzdGVwIjogMzcwMCwgInZhbHVlIjogMC4wMzcyMjQzODk2MTI2NzQ3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTgyLjg4NDUyOTgsICJzdGVwIjogMzcxMCwgInZhbHVlIjogMC4wMzAwOTE3NjA2ODAwNzk0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTkxLjIxMTQ4OSwgInN0ZXAiOiAzNzIwLCAidmFsdWUiOiAwLjA1ODYwMTk0OTM2Mzk0NjkxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjAwLjMzNDcwODcsICJzdGVwIjogMzczMCwgInZhbHVlIjogMC4wMjQzNjg4NTQyMzk1ODMwMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTIwOC4zNjcwMTQsICJzdGVwIjogMzc0MCwgInZhbHVlIjogMC4wMjY3MjUwNTM3ODcyMzE0NDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTIxNi41NzMyMzcyLCAic3RlcCI6IDM3NTAsICJ2YWx1ZSI6IDAuMDU0MDYxMTA3MzM3NDc0ODJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTIyNC42NjMxODUsICJzdGVwIjogMzc2MCwgInZhbHVlIjogMC4wMjYxNjUzNDM4MjEwNDg3Mzd9LCB7IndhbGxUaW1lIjogMTczMzA3MTIzMi44NjIwNzEsICJzdGVwIjogMzc3MCwgInZhbHVlIjogMC4wNTQ4ODAxMDQ5NTkwMTEwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjQ4LjUzNDkwMDcsICJzdGVwIjogMzc4MCwgInZhbHVlIjogMC4wMjc1OTg3MDg4NjgwMjY3MzN9LCB7IndhbGxUaW1lIjogMTczMzA3MTI1Ny4zOTMwNTk1LCAic3RlcCI6IDM3OTAsICJ2YWx1ZSI6IDAuMDMyNjQ5NjQzNzE5MTk2MzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTI2NS41Njg2MzkzLCAic3RlcCI6IDM4MDAsICJ2YWx1ZSI6IDAuMDMyNzAxMDA4MDIxODMxNTF9LCB7IndhbGxUaW1lIjogMTczMzA3MTI3NC4xOTk0NTU1LCAic3RlcCI6IDM4MTAsICJ2YWx1ZSI6IDAuMDMzNTUwOTczOTgxNjE4ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MTI4My4wMTkyNjIzLCAic3RlcCI6IDM4MjAsICJ2YWx1ZSI6IDAuMDMzMTk1MDAzODY3MTQ5MzV9LCB7IndhbGxUaW1lIjogMTczMzA3MTI5MS43MzExMjU0LCAic3RlcCI6IDM4MzAsICJ2YWx1ZSI6IDAuMDMxNjY1NzgzMzc1NTAxNjN9LCB7IndhbGxUaW1lIjogMTczMzA3MTI5OS44OTU1MTQyLCAic3RlcCI6IDM4NDAsICJ2YWx1ZSI6IDAuMDI5ODEwNzYzODk1NTExNjI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMDguNDgwOTAyNywgInN0ZXAiOiAzODUwLCAidmFsdWUiOiAwLjA0NDQ5MDAxNjk5Njg2MDUwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzE2Ljk1Mjk2MywgInN0ZXAiOiAzODYwLCAidmFsdWUiOiAwLjAzODAzNzcyODUxODI0NzYwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzMwLjIxNjc5MjYsICJzdGVwIjogMzg3MCwgInZhbHVlIjogMC4wNDA0ODY4MzEyMTgwMDQyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzM4Ljk5MDQyMSwgInN0ZXAiOiAzODgwLCAidmFsdWUiOiAwLjA0MzI2MzM5MDY2MDI4NTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNDcuNzM4MzE3MywgInN0ZXAiOiAzODkwLCAidmFsdWUiOiAwLjAyNTcxMDU3NTI4MjU3Mzd9LCB7IndhbGxUaW1lIjogMTczMzA3MTM1Ny4wMzYzNTU1LCAic3RlcCI6IDM5MDAsICJ2YWx1ZSI6IDAuMDMxNzI4NjYyNTUwNDQ5Mzd9LCB7IndhbGxUaW1lIjogMTczMzA3MTM2NS4yMjY5OTM2LCAic3RlcCI6IDM5MTAsICJ2YWx1ZSI6IDAuMDYwNjAzNjc0NTAxMTgwNjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTM3NC4xMzYyNDksICJzdGVwIjogMzkyMCwgInZhbHVlIjogMC4wNDc0OTg4NzA2NDA5OTMxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzgyLjgxNTQ3ODMsICJzdGVwIjogMzkzMCwgInZhbHVlIjogMC4wNTAxNzg3MjUyNzI0MTcwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzkxLjU3MDAyMzgsICJzdGVwIjogMzk0MCwgInZhbHVlIjogMC4wMjk4MDM4NTcyMDcyOTgyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDA0LjQ2OTA0NjQsICJzdGVwIjogMzk1MCwgInZhbHVlIjogMC4wMjgyNjMxMDUwNzk1MzE2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDEyLjM0MDU2MiwgInN0ZXAiOiAzOTYwLCAidmFsdWUiOiAwLjAyODg1MTk3MTAzMDIzNTI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MjEuMTU5MjA3MywgInN0ZXAiOiAzOTcwLCAidmFsdWUiOiAwLjA0MjcyNTc5NDAxNzMxNDkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MzAuMTIyMjUxNywgInN0ZXAiOiAzOTgwLCAidmFsdWUiOiAwLjAzMzkxNDk0NjAxOTY0OTUwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDM4LjQxNTc0MDMsICJzdGVwIjogMzk5MCwgInZhbHVlIjogMC4wNDc1OTYyMzg1NTM1MjQwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDQ3LjczMDU4MTgsICJzdGVwIjogNDAwMCwgInZhbHVlIjogMC4wMjM5Mzg3ODA2NTA0OTY0ODN9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ1Ni4xOTgyOTgyLCAic3RlcCI6IDQwMTAsICJ2YWx1ZSI6IDAuMDczOTQ5MDE2NjMwNjQ5NTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ2NC43NTEyMDI4LCAic3RlcCI6IDQwMjAsICJ2YWx1ZSI6IDAuMDM3NDczODE2NDI0NjA4MjN9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ3My4zOTk2MDE3LCAic3RlcCI6IDQwMzAsICJ2YWx1ZSI6IDAuMDM1NDIxMzE1NTgwNjA2NDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ5MC4yODgyMDk0LCAic3RlcCI6IDQwNDAsICJ2YWx1ZSI6IDAuMDM5Mjc4MDQxNTcxMzc4NzF9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ5OC43MTM0NTA3LCAic3RlcCI6IDQwNTAsICJ2YWx1ZSI6IDAuMDQyOTk1MDY1NDUwNjY4MzM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MDcuMDk5MzE1NiwgInN0ZXAiOiA0MDYwLCAidmFsdWUiOiAwLjAyOTMyNTIwMzk3MDA3NDY1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTE1LjA2OTU4NTYsICJzdGVwIjogNDA3MCwgInZhbHVlIjogMC4wNjcwNDY3MjQyNTk4NTMzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTIzLjkwODU4NywgInN0ZXAiOiA0MDgwLCAidmFsdWUiOiAwLjAyOTA2ODAyNjY5MTY3NTE4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTMyLjI4NzQyODEsICJzdGVwIjogNDA5MCwgInZhbHVlIjogMC4wMzU0Mzg2OTQwNTk4NDg3ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MTU0MC45MTk0NTg0LCAic3RlcCI6IDQxMDAsICJ2YWx1ZSI6IDAuMDI1Nzg0ODQ4MjU3ODk5Mjg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NDkuMTc4NDEyNCwgInN0ZXAiOiA0MTEwLCAidmFsdWUiOiAwLjAyNzU1MzMyNTUxODk2NTcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NjUuODM4MDcxMywgInN0ZXAiOiA0MTIwLCAidmFsdWUiOiAwLjAyNzU1NjE3NzIyODY4OTE5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTczLjYzMzc5NTcsICJzdGVwIjogNDEzMCwgInZhbHVlIjogMC4wMzI2MjMzNzY2OTczMDE4NjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTU4Mi4wOTgzNCwgInN0ZXAiOiA0MTQwLCAidmFsdWUiOiAwLjA0MzE3NTIyNzk0MDA4MjU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1OTAuMDI0OTAwNywgInN0ZXAiOiA0MTUwLCAidmFsdWUiOiAwLjAzODEyOTkzMzE3ODQyNDgzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTk5LjI0MzIzOTQsICJzdGVwIjogNDE2MCwgInZhbHVlIjogMC4wMzI3MDkyMTg1NjE2NDkzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjA4LjA3NDAzMzMsICJzdGVwIjogNDE3MCwgInZhbHVlIjogMC4wMzU4MjczOTA4NDk1OTAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2MTYuMTg2MjY3LCAic3RlcCI6IDQxODAsICJ2YWx1ZSI6IDAuMDYyNTY3MTM3MTgxNzU4ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MTYyNi4wODUxODQ4LCAic3RlcCI6IDQxOTAsICJ2YWx1ZSI6IDAuMDI2NTc2NzM1MDc5Mjg4NDgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NDEuMDEwNzQ1NSwgInN0ZXAiOiA0MjAwLCAidmFsdWUiOiAwLjAzNTE1NzEyNTQ0MzIyMDE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NDkuMDQzMTM2NiwgInN0ZXAiOiA0MjEwLCAidmFsdWUiOiAwLjA0MjEwOTQ5Njg5MTQ5ODU2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjU4LjUzMzg1NiwgInN0ZXAiOiA0MjIwLCAidmFsdWUiOiAwLjA0MDY5MjMzNjg1NzMxODg4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NjcuOTY4NTA0NywgInN0ZXAiOiA0MjMwLCAidmFsdWUiOiAwLjAyNzU1OTA2NjE5MTMxNTY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NzYuMTExMjUwMiwgInN0ZXAiOiA0MjQwLCAidmFsdWUiOiAwLjAyNjE2Nzk0OTY2MTYxMjUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2ODQuMzgxMDU4MiwgInN0ZXAiOiA0MjUwLCAidmFsdWUiOiAwLjA0ODkxNzQxMjc1Nzg3MzUzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjkzLjExMjE2MTQsICJzdGVwIjogNDI2MCwgInZhbHVlIjogMC4wMjM2Njg3ODQ2NDgxODAwMDh9LCB7IndhbGxUaW1lIjogMTczMzA3MTcwMi4xODYzNzYsICJzdGVwIjogNDI3MCwgInZhbHVlIjogMC4wNDMyOTc2NDg0Mjk4NzA2MDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTcxMC42MzM0NDc0LCAic3RlcCI6IDQyODAsICJ2YWx1ZSI6IDAuMDIzNDcwMTY1MjA3OTgyMDYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MjYuNjc5MjgyNCwgInN0ZXAiOiA0MjkwLCAidmFsdWUiOiAwLjAzNTA1Mjg5MTgyMDY2OTE3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzM1LjIxODExNDQsICJzdGVwIjogNDMwMCwgInZhbHVlIjogMC4wMzkxODQ0NDM2NTI2Mjk4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzQyLjk1OTYwNiwgInN0ZXAiOiA0MzEwLCAidmFsdWUiOiAwLjAzNTQ3ODEwMDE4MDYyNTkxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzUxLjU4ODIyMTgsICJzdGVwIjogNDMyMCwgInZhbHVlIjogMC4wMzA1ODk3NDQ0NDg2NjE4MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTc2MC4wMzc1NTU3LCAic3RlcCI6IDQzMzAsICJ2YWx1ZSI6IDAuMDMxMzUzODIzODQwNjE4MTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NjguNDMzODU5LCAic3RlcCI6IDQzNDAsICJ2YWx1ZSI6IDAuMDMyNjA2NzkxNzA0ODkzMTF9LCB7IndhbGxUaW1lIjogMTczMzA3MTc3Ny40MDQ3NDU2LCAic3RlcCI6IDQzNTAsICJ2YWx1ZSI6IDAuMDQzNjg2NDA0ODI0MjU2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzg1LjU0OTg1OTgsICJzdGVwIjogNDM2MCwgInZhbHVlIjogMC4wNDE0NjMxNjY0NzUyOTYwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODAwLjg4NzUwMDgsICJzdGVwIjogNDM3MCwgInZhbHVlIjogMC4wMzkxMjkzODM4NjIwMTg1ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MTgwOS4yNjg0Mzk4LCAic3RlcCI6IDQzODAsICJ2YWx1ZSI6IDAuMDMxMzY1NTg4MzA3MzgwNjc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MTcuMzQ5MTIzNSwgInN0ZXAiOiA0MzkwLCAidmFsdWUiOiAwLjA2NzgwNDM4ODcwMTkxNTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MjYuNDMyOTg0OCwgInN0ZXAiOiA0NDAwLCAidmFsdWUiOiAwLjA0NTAwMzM4ODA3NzAyMDY0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODM0Ljg5MDEzNzcsICJzdGVwIjogNDQxMCwgInZhbHVlIjogMC4wNDYwMjMwMzcyODQ2MTI2NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTg0My40NDk0MTQ1LCAic3RlcCI6IDQ0MjAsICJ2YWx1ZSI6IDAuMDUyNjQ5MTU4OTg0NDIyNjg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NTEuNTk4NTg3OCwgInN0ZXAiOiA0NDMwLCAidmFsdWUiOiAwLjAzMjk1Nzk5MzQ0Nzc4MDYxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NTkuOTI2NzM5LCAic3RlcCI6IDQ0NDAsICJ2YWx1ZSI6IDAuMDI4MzEwMDYyMzYzNzQzNzgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NjguNjc1NzkwOCwgInN0ZXAiOiA0NDUwLCAidmFsdWUiOiAwLjA0MDAzMjYxNzc0Nzc4MzY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4ODEuMzM4NzI1LCAic3RlcCI6IDQ0NjAsICJ2YWx1ZSI6IDAuMDMzMzQ2MzE3NzA4NDkyMjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTg4OS42NDAzODU0LCAic3RlcCI6IDQ0NzAsICJ2YWx1ZSI6IDAuMDM1MTEzODkzNDQ5MzA2NDl9LCB7IndhbGxUaW1lIjogMTczMzA3MTg5OC40MjMzNjQ2LCAic3RlcCI6IDQ0ODAsICJ2YWx1ZSI6IDAuMDMyODI1NTcwNTUzNTQxMTgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5MDcuMzM4NTU2LCAic3RlcCI6IDQ0OTAsICJ2YWx1ZSI6IDAuMDQwMjk5MzUyMjU4NDQzODN9LCB7IndhbGxUaW1lIjogMTczMzA3MTkxNi4yODA3NTM2LCAic3RlcCI6IDQ1MDAsICJ2YWx1ZSI6IDAuMDQ0MjY1NjA5MjM0NTcxNDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTkyNS4zNTExOTU4LCAic3RlcCI6IDQ1MTAsICJ2YWx1ZSI6IDAuMDQ2Nzc2OTUwMzU5MzQ0NDh9LCB7IndhbGxUaW1lIjogMTczMzA3MTkzMy4zMzE5MTM3LCAic3RlcCI6IDQ1MjAsICJ2YWx1ZSI6IDAuMDQ5NDgwOTI5OTcwNzQxMjd9LCB7IndhbGxUaW1lIjogMTczMzA3MTk0MS40ODUxOTgzLCAic3RlcCI6IDQ1MzAsICJ2YWx1ZSI6IDAuMDM1ODQ5ODcyOTc2NTQxNTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTk1NC4xNzE0OTksICJzdGVwIjogNDU0MCwgInZhbHVlIjogMC4wMjY4NjE1NTIxNDkwNTczOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTYyLjM5ODMzMjgsICJzdGVwIjogNDU1MCwgInZhbHVlIjogMC4wMzAyODEyMTk2MzE0MzM0ODd9LCB7IndhbGxUaW1lIjogMTczMzA3MTk3MC41MTU3OTEsICJzdGVwIjogNDU2MCwgInZhbHVlIjogMC4wNDEzODAwOTYyMjY5MzA2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTc4Ljg3MjM4MiwgInN0ZXAiOiA0NTcwLCAidmFsdWUiOiAwLjAzMDQ2MjkwNzYyNzIyNDkyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTg3LjcxMjkzNzQsICJzdGVwIjogNDU4MCwgInZhbHVlIjogMC4wNTI4OTU4MjE2MzA5NTQ3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTk2LjQ0NzYzMzUsICJzdGVwIjogNDU5MCwgInZhbHVlIjogMC4wNTE5Mjc1MjE4MjQ4MzY3M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDA0LjQ3ODM3MzMsICJzdGVwIjogNDYwMCwgInZhbHVlIjogMC4wMTk3NTg3NzIxMDQ5Nzg1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDEyLjc0NzEzODcsICJzdGVwIjogNDYxMCwgInZhbHVlIjogMC4wMzIxODc0ODc5MzAwNTk0M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDI1LjQwMjc0MTcsICJzdGVwIjogNDYyMCwgInZhbHVlIjogMC4wNDIyMTE5OTA4MDM0ODAxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDM0LjEyMDcxODIsICJzdGVwIjogNDYzMCwgInZhbHVlIjogMC4wMjUyNzE4NDU5ODE0Nzg2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDQzLjA0MDIxNDgsICJzdGVwIjogNDY0MCwgInZhbHVlIjogMC4wMzc3NzQ2MDAwODg1OTYzNDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjA1MS43ODkxNDQ1LCAic3RlcCI6IDQ2NTAsICJ2YWx1ZSI6IDAuMDMxMDg3MjMwODkwOTg5MzA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNjAuMTEwNDQyLCAic3RlcCI6IDQ2NjAsICJ2YWx1ZSI6IDAuMDQ2MTg0NzcwNzYyOTIwMzh9LCB7IndhbGxUaW1lIjogMTczMzA3MjA2OC42MDUxODQ4LCAic3RlcCI6IDQ2NzAsICJ2YWx1ZSI6IDAuMDUwODAzMzI2MDcwMzA4Njg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNzYuODM4NTU1LCAic3RlcCI6IDQ2ODAsICJ2YWx1ZSI6IDAuMDQwMzI5MTMyMjI5MDg5NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MjA4NS4zNzc5MjIsICJzdGVwIjogNDY5MCwgInZhbHVlIjogMC4wMjczNzI0OTA2MTQ2NTI2MzR9LCB7IndhbGxUaW1lIjogMTczMzA3MjA5My43NTAzOTE1LCAic3RlcCI6IDQ3MDAsICJ2YWx1ZSI6IDAuMDM5MTU0Nzc5MTY1OTgzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTA2Ljk5MTU3MSwgInN0ZXAiOiA0NzEwLCAidmFsdWUiOiAwLjA0MjY4OTQyNDAwODEzMTAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMTUuNjY3MDQ5NiwgInN0ZXAiOiA0NzIwLCAidmFsdWUiOiAwLjA1MzY1MjM3NTkzNjUwODE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMjMuOTUyNDUxMiwgInN0ZXAiOiA0NzMwLCAidmFsdWUiOiAwLjA0NzQxODc2NTcyMzcwNTI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMzIuMjgyNTE5MywgInN0ZXAiOiA0NzQwLCAidmFsdWUiOiAwLjAzMTEzNjkyODEyNjIxNTkzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTQwLjQyMjUxMDEsICJzdGVwIjogNDc1MCwgInZhbHVlIjogMC4wNjExNzUyMjM0Mzk5MzE4N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTQ5LjA4ODk3MDcsICJzdGVwIjogNDc2MCwgInZhbHVlIjogMC4wMjcxMTY4NzA1MDc1OTc5MjN9LCB7IndhbGxUaW1lIjogMTczMzA3MjE1Ny40MTM2NDE1LCAic3RlcCI6IDQ3NzAsICJ2YWx1ZSI6IDAuMDMwOTk5NjU2NzY2NjUzMDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjE2NS40OTExMDk2LCAic3RlcCI6IDQ3ODAsICJ2YWx1ZSI6IDAuMDU1MzIyNzUxNDAyODU0OTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjE3OS42NTIyOTksICJzdGVwIjogNDc5MCwgInZhbHVlIjogMC4wMzU2OTg5NTc3NDEyNjA1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTg4LjMzMTM5NTEsICJzdGVwIjogNDgwMCwgInZhbHVlIjogMC4wMjg2MzYyNTgwOTU1MDI4NTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjE5Ni44NDg4MDU0LCAic3RlcCI6IDQ4MTAsICJ2YWx1ZSI6IDAuMDQwNzQ3NDY3NDI4NDQ1ODE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMDQuNTY0MDU1MiwgInN0ZXAiOiA0ODIwLCAidmFsdWUiOiAwLjAzNTg4NTkyNjMzNjA1MDAzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjEzLjEwMTQyMjgsICJzdGVwIjogNDgzMCwgInZhbHVlIjogMC4wMjM4NTA2MTA0Nzk3MTI0ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjIyMS42Njg5NjQ0LCAic3RlcCI6IDQ4NDAsICJ2YWx1ZSI6IDAuMDI2NDM0NjQ4NzgyMDE0ODQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMjkuODk1ODg3NiwgInN0ZXAiOiA0ODUwLCAidmFsdWUiOiAwLjAyNjQ4MDQxMDI0ODA0MTE1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjM4LjA1ODA0NTksICJzdGVwIjogNDg2MCwgInZhbHVlIjogMC4wMzgzNjg2NjA5NTY2MjExN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjQ2LjM0NTQyNzUsICJzdGVwIjogNDg3MCwgInZhbHVlIjogMC4wMjU1NDg3NjM1NzMxNjk3MDh9LCB7IndhbGxUaW1lIjogMTczMzA3MjI2MS4yNjkyMTkyLCAic3RlcCI6IDQ4ODAsICJ2YWx1ZSI6IDAuMDM1NjA1NTU3MjYyODk3NDl9LCB7IndhbGxUaW1lIjogMTczMzA3MjI2OS44NTQ2Mjc0LCAic3RlcCI6IDQ4OTAsICJ2YWx1ZSI6IDAuMDM3ODk2NjEwNzk2NDUxNTd9LCB7IndhbGxUaW1lIjogMTczMzA3MjI3OC44ODIxODg4LCAic3RlcCI6IDQ5MDAsICJ2YWx1ZSI6IDAuMDM3MzY0ODQwNTA3NTA3MzI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyODcuNTM2MzQ2MiwgInN0ZXAiOiA0OTEwLCAidmFsdWUiOiAwLjAzMDA5Mjk4ODE2MzIzMjgwM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjk1Ljk0OTE2NTMsICJzdGVwIjogNDkyMCwgInZhbHVlIjogMC4wMzQ3Nzc1NTkzNDAwMDAxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzA0LjM1NzI0NywgInN0ZXAiOiA0OTMwLCAidmFsdWUiOiAwLjA0NjYzOTk5Mzc4NjgxMTgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMTMuNTExNzU3LCAic3RlcCI6IDQ5NDAsICJ2YWx1ZSI6IDAuMDMwMzk1Nzk0NjU5ODUyOTh9LCB7IndhbGxUaW1lIjogMTczMzA3MjMyMS4zMjczNDgsICJzdGVwIjogNDk1MCwgInZhbHVlIjogMC4wMzM4Mzg0NzY5ODU2OTI5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzM3LjAyNzAwMjYsICJzdGVwIjogNDk2MCwgInZhbHVlIjogMC4wMzA2MDAyNTkwODA1MjkyMTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjM0NS41MzUxOTEzLCAic3RlcCI6IDQ5NzAsICJ2YWx1ZSI6IDAuMDI2ODEwMzc0MTEwOTM3MTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjM1My40MzE3NTc1LCAic3RlcCI6IDQ5ODAsICJ2YWx1ZSI6IDAuMDI1MzQxODkyNjE0OTYwNjd9LCB7IndhbGxUaW1lIjogMTczMzA3MjM2Mi40MTUyMzI3LCAic3RlcCI6IDQ5OTAsICJ2YWx1ZSI6IDAuMDQzNjE1ODg1MDc4OTA3MDF9LCB7IndhbGxUaW1lIjogMTczMzA3MjM3MS43NDc5OTQsICJzdGVwIjogNTAwMCwgInZhbHVlIjogMC4wNDQxMTc0MDIyODUzMzc0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzgwLjUzMTY4ODcsICJzdGVwIjogNTAxMCwgInZhbHVlIjogMC4wMjkwMzg4MjA0MTU3MzUyNDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjM4OS4wMjg1MzQsICJzdGVwIjogNTAyMCwgInZhbHVlIjogMC4wNDEwMjI4OTMwNDEzNzIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzOTcuNzg3NjAyNCwgInN0ZXAiOiA1MDMwLCAidmFsdWUiOiAwLjAzMDUyNjQwODkyNTY1MjUwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDExLjMwMDgwNTgsICJzdGVwIjogNTA0MCwgInZhbHVlIjogMC4wNDAyMTIzOTI4MDcwMDY4MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQxOS40NzYzODI3LCAic3RlcCI6IDUwNTAsICJ2YWx1ZSI6IDAuMDM5NDY2MTc2MTgyMDMxNjN9LCB7IndhbGxUaW1lIjogMTczMzA3MjQyOC4zNzQyOTAyLCAic3RlcCI6IDUwNjAsICJ2YWx1ZSI6IDAuMDQ3MDI0NTgxNTgxMzU0MTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjQzNy4xMTkyNTgsICJzdGVwIjogNTA3MCwgInZhbHVlIjogMC4wNDA2NzgxMzk3NzU5OTE0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDQ2LjE3NzQ4ODgsICJzdGVwIjogNTA4MCwgInZhbHVlIjogMC4wNDkxMjM4MDg3NDE1Njk1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDU0LjQzMDcwMzQsICJzdGVwIjogNTA5MCwgInZhbHVlIjogMC4wMzcwMDA5OTE0MDQwNTY1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDYyLjQxMjYzNDQsICJzdGVwIjogNTEwMCwgInZhbHVlIjogMC4wNDQ0NTkxMTE5ODg1NDQ0NjR9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ3MS4xNTI5MzQsICJzdGVwIjogNTExMCwgInZhbHVlIjogMC4wMjg5MTc3MTEyMjgxMzIyNDh9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ3OC45NDg4MDksICJzdGVwIjogNTEyMCwgInZhbHVlIjogMC4wMzAwNjgxNDA0NzY5NDIwNjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ5MS4zMjM3ODk2LCAic3RlcCI6IDUxMzAsICJ2YWx1ZSI6IDAuMDQ0NDE2NDI3NjEyMzA0Njl9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ5OS4yNjA4Mzc2LCAic3RlcCI6IDUxNDAsICJ2YWx1ZSI6IDAuMDIzNDQ5NDUwNzMxMjc3NDY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MDcuMTE0MTQ5MywgInN0ZXAiOiA1MTUwLCAidmFsdWUiOiAwLjA0MDEyNjczMzQ4MTg4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTE1LjMxOTM2NzQsICJzdGVwIjogNTE2MCwgInZhbHVlIjogMC4wMjUwMTQ4NDE5MjkwNzgxMDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjUyMy41MTk0ODQ4LCAic3RlcCI6IDUxNzAsICJ2YWx1ZSI6IDAuMDI5OTY4NDcwMzM1MDA2NzE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MzEuMDg5MzYyOSwgInN0ZXAiOiA1MTgwLCAidmFsdWUiOiAwLjAyNDcyOTc3MTUzOTU2ODl9LCB7IndhbGxUaW1lIjogMTczMzA3MjU0MC4wMjU4MTg2LCAic3RlcCI6IDUxOTAsICJ2YWx1ZSI6IDAuMDI5NTU3Nzc3NTY4Njk3OTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjU0OC42NTYwMTAyLCAic3RlcCI6IDUyMDAsICJ2YWx1ZSI6IDAuMDI5MjMxMzQ3MTQzNjUwMDU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NjEuNDE5MTgyMywgInN0ZXAiOiA1MjEwLCAidmFsdWUiOiAwLjA0NjMxMTkzNzI3MjU0ODY3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTY5LjkwMDI0NzMsICJzdGVwIjogNTIyMCwgInZhbHVlIjogMC4wMzUzNzMwODc5NzI0MDI1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTc4LjY4MjgyNzcsICJzdGVwIjogNTIzMCwgInZhbHVlIjogMC4wNDU3NzkwNzkxOTg4MzcyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTg2Ljk0NjE2NjgsICJzdGVwIjogNTI0MCwgInZhbHVlIjogMC4wMzI4ODQyMTAzNDgxMjkyN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTk1LjAzNjQyOCwgInN0ZXAiOiA1MjUwLCAidmFsdWUiOiAwLjA0NTY0OTk5MDQzOTQxNDk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MDMuMTc1NTUyNiwgInN0ZXAiOiA1MjYwLCAidmFsdWUiOiAwLjA0NTAxMzI2MDA5NjMxMTU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MTEuMDgzMDgsICJzdGVwIjogNTI3MCwgInZhbHVlIjogMC4wNjcyNTE4NzU5OTY1ODk2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjE5Ljk1ODY0MjUsICJzdGVwIjogNTI4MCwgInZhbHVlIjogMC4wMjkxODE5NTE2NTY5Mzc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MjguNjM2NjU0NiwgInN0ZXAiOiA1MjkwLCAidmFsdWUiOiAwLjAyNjc2NjgyNTQ2NzM0ODF9LCB7IndhbGxUaW1lIjogMTczMzA3MjY0MS4zNzc3Mzg1LCAic3RlcCI6IDUzMDAsICJ2YWx1ZSI6IDAuMDI2NzU5NDQ1NjY3MjY2ODQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NDkuODYwNzA3MywgInN0ZXAiOiA1MzEwLCAidmFsdWUiOiAwLjAzNTcxNTA1MDk5NTM0OTg4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjU3Ljk3MzQ1NDUsICJzdGVwIjogNTMyMCwgInZhbHVlIjogMC4wMzM4NzA1MjkzODM0MjA5NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjY2Ny4wMzE1MzUsICJzdGVwIjogNTMzMCwgInZhbHVlIjogMC4wMzY5MzEzNjU3MjgzNzgyOTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjY3NS45NDUxNDMyLCAic3RlcCI6IDUzNDAsICJ2YWx1ZSI6IDAuMDI1NTExMjIwMDk3NTQxODF9LCB7IndhbGxUaW1lIjogMTczMzA3MjY4NC4yNDA0OTg1LCAic3RlcCI6IDUzNTAsICJ2YWx1ZSI6IDAuMDQwNjQ3Mzk0OTU1MTU4MjM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2OTEuODYwMTk4NSwgInN0ZXAiOiA1MzYwLCAidmFsdWUiOiAwLjAyOTAyMzQzMTI0MTUxMjN9LCB7IndhbGxUaW1lIjogMTczMzA3MjcwMC4xNTAxMDMzLCAic3RlcCI6IDUzNzAsICJ2YWx1ZSI6IDAuMDM2NzQ3NDk2NTc1MTE3MTF9LCB7IndhbGxUaW1lIjogMTczMzA3MjcxMy4xODUxOTY2LCAic3RlcCI6IDUzODAsICJ2YWx1ZSI6IDAuMDM0NDY1OTcyMzM0MTQ2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzIxLjAyNjgxNSwgInN0ZXAiOiA1MzkwLCAidmFsdWUiOiAwLjAzMTkyODc0MDQ0MTc5OTE2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzI5Ljg3OTAwMjMsICJzdGVwIjogNTQwMCwgInZhbHVlIjogMC4wNDAzODc5OTE4MTU4MDU0MzV9LCB7IndhbGxUaW1lIjogMTczMzA3MjczOC4zNzMzODgsICJzdGVwIjogNTQxMCwgInZhbHVlIjogMC4wMzU4NzgwNzcxNDkzOTExNzR9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc0Ni4zODQ3NjY2LCAic3RlcCI6IDU0MjAsICJ2YWx1ZSI6IDAuMDI2OTQ2MjI0MjcyMjUxMTN9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc1NC42MTk3Mzc0LCAic3RlcCI6IDU0MzAsICJ2YWx1ZSI6IDAuMDMzNjM0MzE5OTAxNDY2Mzd9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc2Mi41NTA4NjA2LCAic3RlcCI6IDU0NDAsICJ2YWx1ZSI6IDAuMDM2NjQ2NDc3ODc4MDkzNzJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc3MS4zNjI3MjMsICJzdGVwIjogNTQ1MCwgInZhbHVlIjogMC4wMzIxNjc4NTE5MjQ4OTYyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzg3LjE1Mzg3MDMsICJzdGVwIjogNTQ2MCwgInZhbHVlIjogMC4wMzg1OTI4NDUyMDE0OTIzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzk1LjgwNDk1NTIsICJzdGVwIjogNTQ3MCwgInZhbHVlIjogMC4wNDUxOTE2MzgxNzE2NzI4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODA0LjI0NDE1NjEsICJzdGVwIjogNTQ4MCwgInZhbHVlIjogMC4wMjc2NDE2NTU4NzcyMzI1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODEyLjM3NTEzNCwgInN0ZXAiOiA1NDkwLCAidmFsdWUiOiAwLjAzMDY4MDQzODUwMzYyMzAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MjEuMTYxMzY1LCAic3RlcCI6IDU1MDAsICJ2YWx1ZSI6IDAuMDMxNDE4NjQ3NjE3MTAxNjd9LCB7IndhbGxUaW1lIjogMTczMzA3MjgzMC4wMjQ3MDI1LCAic3RlcCI6IDU1MTAsICJ2YWx1ZSI6IDAuMDM1NTM2NTI3NjMzNjY2OTl9LCB7IndhbGxUaW1lIjogMTczMzA3MjgzOC42OTcxNjc2LCAic3RlcCI6IDU1MjAsICJ2YWx1ZSI6IDAuMDM1MjY0MTYwNDg0MDc1NTQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NDYuOTA2OTY0MywgInN0ZXAiOiA1NTMwLCAidmFsdWUiOiAwLjAyODM2MzEyNzI2MTQwMDIyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyODU1LjI1MDA4NCwgInN0ZXAiOiA1NTQwLCAidmFsdWUiOiAwLjA0NjA1ODQ2MTA3MDA2MDczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NzAuNjQ4MTIwNCwgInN0ZXAiOiA1NTUwLCAidmFsdWUiOiAwLjAzNDM1NTA0MDYzOTYzODl9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg3OC43MzMwNjg3LCAic3RlcCI6IDU1NjAsICJ2YWx1ZSI6IDAuMDMyOTEwOTU3OTMyNDcyMjN9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg4Ni42MTQ0MjM1LCAic3RlcCI6IDU1NzAsICJ2YWx1ZSI6IDAuMDM4ODI4NjQ4NjI2ODA0MzV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg5NS4wMjMyNjI1LCAic3RlcCI6IDU1ODAsICJ2YWx1ZSI6IDAuMDM0MjgzOTY5NTUxMzI0ODQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MDMuNDA0Nzg1NCwgInN0ZXAiOiA1NTkwLCAidmFsdWUiOiAwLjAyODc3NzMwNjg5OTQyODM2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTExLjIxMTg3NTQsICJzdGVwIjogNTYwMCwgInZhbHVlIjogMC4wMzAyODU0NzM5MTI5NTQzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTE5Ljg0MTgyNjcsICJzdGVwIjogNTYxMCwgInZhbHVlIjogMC4wMjcxMDIyNjU1MDY5ODI4MDN9LCB7IndhbGxUaW1lIjogMTczMzA3MjkyOC43MzQ5NzY1LCAic3RlcCI6IDU2MjAsICJ2YWx1ZSI6IDAuMDM0OTQ2MDQ2NzY5NjE4OTl9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk0MS43MDU1OTI2LCAic3RlcCI6IDU2MzAsICJ2YWx1ZSI6IDAuMDM5MTU0MDA4MDMwODkxNDJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk0OS45ODIwOTQ4LCAic3RlcCI6IDU2NDAsICJ2YWx1ZSI6IDAuMDMxMjIwNTUxNTgwMTkwNjZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk1OC43MjMyMzk0LCAic3RlcCI6IDU2NTAsICJ2YWx1ZSI6IDAuMDY4ODI4NzQ2Njc2NDQ1MDF9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk2Ni44MTgwNTc4LCAic3RlcCI6IDU2NjAsICJ2YWx1ZSI6IDAuMDMyNjY0MTc5ODAxOTQwOTJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk3NC45NjU0NjU4LCAic3RlcCI6IDU2NzAsICJ2YWx1ZSI6IDAuMDI3OTU5Mjk4MzQyNDY2MzU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5ODMuNTYzOTMzLCAic3RlcCI6IDU2ODAsICJ2YWx1ZSI6IDAuMDQ5MjEyODkxNjA4NDc2NjR9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk5Mi4yMzE4NjQyLCAic3RlcCI6IDU2OTAsICJ2YWx1ZSI6IDAuMDI4MjA4ODA3MTEwNzg2NDM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMDAuODE5MDk1OCwgInN0ZXAiOiA1NzAwLCAidmFsdWUiOiAwLjAxOTkxNTExNTA4ODIyNDQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMDkuNzg1MTEzNiwgInN0ZXAiOiA1NzEwLCAidmFsdWUiOiAwLjA0ODIyNjgxMDk5MTc2NDA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMjIuODcwMTgyNSwgInN0ZXAiOiA1NzIwLCAidmFsdWUiOiAwLjA0NTE2MjY0NDIzNzI3OTg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMzEuNTM3NzgxLCAic3RlcCI6IDU3MzAsICJ2YWx1ZSI6IDAuMDI2MDAyMzk0MDM1NDU4NTY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMzkuNTc0MTk0NCwgInN0ZXAiOiA1NzQwLCAidmFsdWUiOiAwLjA0MjYzMzI1MDM1NTcyMDUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNDcuODQ0NzUwNiwgInN0ZXAiOiA1NzUwLCAidmFsdWUiOiAwLjAzMDYzNjQ1MDI3NTc3ODc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNTYuMTU4NDAyMiwgInN0ZXAiOiA1NzYwLCAidmFsdWUiOiAwLjAyODI5MzU4MzU0MjEwODUzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDY0Ljk1Njk4MjQsICJzdGVwIjogNTc3MCwgInZhbHVlIjogMC4wNDMzMDMxMzk1MDc3NzA1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDczLjgzOTYwMTUsICJzdGVwIjogNTc4MCwgInZhbHVlIjogMC4wMzc0NDY2ODUxMzUzNjQ1M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMDgyLjcyNjkxNSwgInN0ZXAiOiA1NzkwLCAidmFsdWUiOiAwLjAyODUwNzA2Njg5MDU5NzM0M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMDk1LjEwNDkzNywgInN0ZXAiOiA1ODAwLCAidmFsdWUiOiAwLjA0Njc2OTI1MzkwOTU4Nzg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMDMuMzE3Njk4LCAic3RlcCI6IDU4MTAsICJ2YWx1ZSI6IDAuMDI3NTIzNjcyMjA4MTg5OTY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMTEuOTcyNTM3LCAic3RlcCI6IDU4MjAsICJ2YWx1ZSI6IDAuMDI2NTQzMzU0NjE1NTY5MTE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMjAuMzU5NDM3MiwgInN0ZXAiOiA1ODMwLCAidmFsdWUiOiAwLjAzNjg2ODM0ODcxNzY4OTUxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTI4LjIxMTE3NzgsICJzdGVwIjogNTg0MCwgInZhbHVlIjogMC4wMzYyNDI1NDQ2NTEwMzE0OTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzEzNi43MTc2MDI1LCAic3RlcCI6IDU4NTAsICJ2YWx1ZSI6IDAuMDI3MzU2MzYwMTA3NjYwMjk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNDQuOTI5NzY0NSwgInN0ZXAiOiA1ODYwLCAidmFsdWUiOiAwLjA1NDU1ODQzNzMxNzYwOTc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNTMuMDQ0NjM5OCwgInN0ZXAiOiA1ODcwLCAidmFsdWUiOiAwLjAzMzEyMjQ5NDgxNjc4MDA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNjYuMDA1MDg3NCwgInN0ZXAiOiA1ODgwLCAidmFsdWUiOiAwLjAzNDYxMjYzMzI4NzkwNjY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNzQuNjYxMDMsICJzdGVwIjogNTg5MCwgInZhbHVlIjogMC4wMzM3NDE0NDQzNDkyODg5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTgyLjUxMDI5NzUsICJzdGVwIjogNTkwMCwgInZhbHVlIjogMC4wNDk2MDQ2MDIxNTgwNjk2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTkxLjU2MTQ2NjIsICJzdGVwIjogNTkxMCwgInZhbHVlIjogMC4wMjMzNTg0ODI4Njc0NzkzMjR9LCB7IndhbGxUaW1lIjogMTczMzA3MzE5OS40MTQ4Mjk3LCAic3RlcCI6IDU5MjAsICJ2YWx1ZSI6IDAuMDQzNzc3MTYwMzQ2NTA4MDI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMDcuNDY3NDY3OCwgInN0ZXAiOiA1OTMwLCAidmFsdWUiOiAwLjAyNjk1MzczMjU5NDg0NzY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMTUuNjA0ODg0MSwgInN0ZXAiOiA1OTQwLCAidmFsdWUiOiAwLjAzMTE5NzQ1NDc4MDM0MDE5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjI0LjM2MDE4NjYsICJzdGVwIjogNTk1MCwgInZhbHVlIjogMC4wMjY5NTk2MzkwNDI2MTU4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjMyLjg3OTc2OTgsICJzdGVwIjogNTk2MCwgInZhbHVlIjogMC4wMzkwODU2MjY2MDIxNzI4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjQ1LjM3NjA1MDUsICJzdGVwIjogNTk3MCwgInZhbHVlIjogMC4wNDE3MTc5MzE2MjgyMjcyMzR9LCB7IndhbGxUaW1lIjogMTczMzA3MzI1My4xODE2MTgsICJzdGVwIjogNTk4MCwgInZhbHVlIjogMC4wMzcyMDYxNTQzMTY2NjM3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjYxLjgwMzUyNTcsICJzdGVwIjogNTk5MCwgInZhbHVlIjogMC4wMzQwMjAwMzY0NTg5NjkxMTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzI3MC4wNjE4NiwgInN0ZXAiOiA2MDAwLCAidmFsdWUiOiAwLjAzNzg3NDgyNTI5ODc4NjE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNzguODk4NjYxNCwgInN0ZXAiOiA2MDEwLCAidmFsdWUiOiAwLjAzODIwOTc4NDc3NTk3MjM2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjg3LjY4NDMyMDIsICJzdGVwIjogNjAyMCwgInZhbHVlIjogMC4wMzk3ODU3Njg4MzY3MzY2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjk3LjI3NjY4NDMsICJzdGVwIjogNjAzMCwgInZhbHVlIjogMC4wMzk3MzM1MTc5MTUwMTA0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzA1LjkyMDQ2ODMsICJzdGVwIjogNjA0MCwgInZhbHVlIjogMC4wMzgzMzg1NDU3MDk4NDg0MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MzMyMi4zNTY5MTE0LCAic3RlcCI6IDYwNTAsICJ2YWx1ZSI6IDAuMDMzMjg2MDgzNDg5NjU2NDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzMzMS45Nzk0OTU1LCAic3RlcCI6IDYwNjAsICJ2YWx1ZSI6IDAuMDQwNTIxNTY5NTUwMDM3Mzg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNDAuNTI0NDc4LCAic3RlcCI6IDYwNzAsICJ2YWx1ZSI6IDAuMDMyMTIwODc2MDE0MjMyNjM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNDkuNjA0MjAzMiwgInN0ZXAiOiA2MDgwLCAidmFsdWUiOiAwLjAyODYyNjM1ODEzNjUzNDY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNTkuMDczNDc0NiwgInN0ZXAiOiA2MDkwLCAidmFsdWUiOiAwLjA0MzkyMjgxOTE5NzE3Nzg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNjguNDA1MjIzNiwgInN0ZXAiOiA2MTAwLCAidmFsdWUiOiAwLjAyNjg2NjY0Mjc1ODI1MDIzN30sIHsid2FsbFRpbWUiOiAxNzMzMDczMzc3LjY3NzIzMDYsICJzdGVwIjogNjExMCwgInZhbHVlIjogMC4wMzQwOTY5Mzc2MjY2MDAyNjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzM4Ni40MDI3NzEsICJzdGVwIjogNjEyMCwgInZhbHVlIjogMC4wMzAwMzgyMzAxMjExMzU3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzk1LjQ1MzczNDIsICJzdGVwIjogNjEzMCwgInZhbHVlIjogMC4wMzY3ODA0NTc5NDM2Nzc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MDguMTUzNTExNSwgInN0ZXAiOiA2MTQwLCAidmFsdWUiOiAwLjAyNjQ4ODQ2ODA1MDk1NjcyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDE3LjMyNjE2NTIsICJzdGVwIjogNjE1MCwgInZhbHVlIjogMC4wMjg1MDI4NTczMTI1NjAwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDI2LjI2MDMyLCAic3RlcCI6IDYxNjAsICJ2YWx1ZSI6IDAuMDM4Mjc4ODI1NTgxMDczNzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzQzNC44MTE1Nzc2LCAic3RlcCI6IDYxNzAsICJ2YWx1ZSI6IDAuMDM1MzU5MDgwODgwODgwMzU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NDQuNTE0ODkyLCAic3RlcCI6IDYxODAsICJ2YWx1ZSI6IDAuMDYzMzA1Mzc3OTYwMjA1MDh9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ1My4xMjAwMjI4LCAic3RlcCI6IDYxOTAsICJ2YWx1ZSI6IDAuMDMxNzU3MjM1NTI3MDM4NTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NjIuNTY3ODMwOCwgInN0ZXAiOiA2MjAwLCAidmFsdWUiOiAwLjAzMDUxMTU2OTIzMTc0ODU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NzIuMDI2OTkxMSwgInN0ZXAiOiA2MjEwLCAidmFsdWUiOiAwLjAzNzI0MTUwNzMyMTU5NjE0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDg0LjQ1MDYxNiwgInN0ZXAiOiA2MjIwLCAidmFsdWUiOiAwLjAzMjI1MzMxNzUzNDkyMzU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0OTMuNjYyMTIyNywgInN0ZXAiOiA2MjMwLCAidmFsdWUiOiAwLjAyNTcxNTYwMDY5OTE4NjMyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTAyLjQ0MzQ0MzUsICJzdGVwIjogNjI0MCwgInZhbHVlIjogMC4wNDA3MzA2ODg3MjA5NDE1NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MzUxMS4yNTg2MzU1LCAic3RlcCI6IDYyNTAsICJ2YWx1ZSI6IDAuMDM2NTI4ODk2NTQwNDAzMzY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MjAuNTExOTE0MywgInN0ZXAiOiA2MjYwLCAidmFsdWUiOiAwLjAyNzY0MzM4OTk5OTg2NjQ4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTI5Ljc4MzU0NCwgInN0ZXAiOiA2MjcwLCAidmFsdWUiOiAwLjAzNzkyMDEzMjI3OTM5NjA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MzkuNjQxMjMwOCwgInN0ZXAiOiA2MjgwLCAidmFsdWUiOiAwLjAzMTkzMDE3NDY3ODU2NDA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NDguOTEzMDc4LCAic3RlcCI6IDYyOTAsICJ2YWx1ZSI6IDAuMDI5MTA4MzIxMjk0MTg4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTYwLjYyMTg4NjMsICJzdGVwIjogNjMwMCwgInZhbHVlIjogMC4wMzExNjM4MDA1MDc3ODM4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTcwLjA3MTA4NzQsICJzdGVwIjogNjMxMCwgInZhbHVlIjogMC4wMzUwNDUwNDI2MzQwMTAzMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzU3OS40ODMzNTk2LCAic3RlcCI6IDYzMjAsICJ2YWx1ZSI6IDAuMDM1NTIwMDI0NTk3NjQ0ODA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1ODcuNjY5NDM4NCwgInN0ZXAiOiA2MzMwLCAidmFsdWUiOiAwLjAzMjc5MzY2MzQ0MjEzNDg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1OTcuMjIwMDE1MywgInN0ZXAiOiA2MzQwLCAidmFsdWUiOiAwLjAzNTY3OTI0NzIzMDI5MTM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MDYuMjQwMjM0NiwgInN0ZXAiOiA2MzUwLCAidmFsdWUiOiAwLjAzMTc1MjI5NTc5MjEwMjgxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjE1LjA3OTgyLCAic3RlcCI6IDYzNjAsICJ2YWx1ZSI6IDAuMDM0MTU3NTQ4MDk5NzU2MjR9LCB7IndhbGxUaW1lIjogMTczMzA3MzYyNC44MzY1NzMxLCAic3RlcCI6IDYzNzAsICJ2YWx1ZSI6IDAuMDMxMTA5Mzg4OTE3Njg0NTU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MzQuNjc0NzI0MywgInN0ZXAiOiA2MzgwLCAidmFsdWUiOiAwLjA0MTA4MTkzNTE2NzMxMjYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NDYuNTMwMzQ5NSwgInN0ZXAiOiA2MzkwLCAidmFsdWUiOiAwLjAzMTU3NDYyNTUyMTg5ODI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NTUuNzQ3NTgzNiwgInN0ZXAiOiA2NDAwLCAidmFsdWUiOiAwLjAzMjY4MDQ1OTMyMDU0NTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzY2NS42MDkzMTA0LCAic3RlcCI6IDY0MTAsICJ2YWx1ZSI6IDAuMDMwOTMzMzk4NzUzNDA0NjE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NzQuNjQ0ODYwMywgInN0ZXAiOiA2NDIwLCAidmFsdWUiOiAwLjAyOTQ2MTQzOTY5ODkzNDU1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjgzLjY3MjQzODksICJzdGVwIjogNjQzMCwgInZhbHVlIjogMC4wMzU0NTMzNzkxNTQyMDUzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjkyLjg3ODg4OTgsICJzdGVwIjogNjQ0MCwgInZhbHVlIjogMC4wMzI1NDg4OTMyNDMwNzQ0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzAyLjUyMTI4NDgsICJzdGVwIjogNjQ1MCwgInZhbHVlIjogMC4wMzE5NjgwMzQ4MDM4NjczNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzEyLjYyOTQzNTUsICJzdGVwIjogNjQ2MCwgInZhbHVlIjogMC4wMzEzMDExMjIxNTg3NjU3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzI0LjA0OTc2MDMsICJzdGVwIjogNjQ3MCwgInZhbHVlIjogMC4wMjU5MTkzNDgwMDE0ODAxMDN9LCB7IndhbGxUaW1lIjogMTczMzA3MzczMi44MzA1ODcsICJzdGVwIjogNjQ4MCwgInZhbHVlIjogMC4wNDE5ODg5MDkyNDQ1MzczNTR9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc0MS45NjAwMjksICJzdGVwIjogNjQ5MCwgInZhbHVlIjogMC4wMzgyOTE5NjQ2Nzk5NTY0MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc1MC43MTk3NDMsICJzdGVwIjogNjUwMCwgInZhbHVlIjogMC4wNTk0MjE2OTU3Njg4MzMxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzYwLjQ5MDIwMjIsICJzdGVwIjogNjUxMCwgInZhbHVlIjogMC4wMzU2ODIzNTAzOTcxMDk5ODV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc2OS44NjU1MDQsICJzdGVwIjogNjUyMCwgInZhbHVlIjogMC4wMzA2NTY3NTg2OTU4NDA4MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc3OS4xNTI0NjgyLCAic3RlcCI6IDY1MzAsICJ2YWx1ZSI6IDAuMDMyNzY0Njg0NDA4OTAzMTJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc4OS40Nzk3OTk3LCAic3RlcCI6IDY1NDAsICJ2YWx1ZSI6IDAuMDM1OTQyMTA3NDM5MDQxMTR9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc5OC4xMDU0OTc2LCAic3RlcCI6IDY1NTAsICJ2YWx1ZSI6IDAuMDMyODY4MzM2ODg2MTY3NTI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MTAuNTU1MDY2NiwgInN0ZXAiOiA2NTYwLCAidmFsdWUiOiAwLjA0ODgyNDU4NTk3NDIxNjQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MjAuMDM4NTkzMywgInN0ZXAiOiA2NTcwLCAidmFsdWUiOiAwLjA0MzI0NjI4MDQwMTk0NTExNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODI4LjI0MDc5NzMsICJzdGVwIjogNjU4MCwgInZhbHVlIjogMC4wMzIyMDkwNjg1MzY3NTg0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczODM2LjgwMDM4NzQsICJzdGVwIjogNjU5MCwgInZhbHVlIjogMC4wMjgzMDkwNzMyOTkxNjk1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODQ1Ljk4OTcwODIsICJzdGVwIjogNjYwMCwgInZhbHVlIjogMC4wMzQ3MDMwNTcyNTkzMjEyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDczODU1LjI1NDMwODUsICJzdGVwIjogNjYxMCwgInZhbHVlIjogMC4wMzM2MDcwNTgyMjcwNjIyMjV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg2NC42OTU4NjE2LCAic3RlcCI6IDY2MjAsICJ2YWx1ZSI6IDAuMDMwNzY5MTg3OTU3MDQ4NDE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NzMuODM2NzcyNCwgInN0ZXAiOiA2NjMwLCAidmFsdWUiOiAwLjAyNzM1MDM0Mzc2MzgyODI3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODg3LjUyNjg3NDgsICJzdGVwIjogNjY0MCwgInZhbHVlIjogMC4wMzQzMzQxNzE1NjMzODY5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczODk3LjMzNjQ0NjMsICJzdGVwIjogNjY1MCwgInZhbHVlIjogMC4wMzUzMjIxNzQ0Mjk4OTM0OTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzkwNi44NzkwMjM2LCAic3RlcCI6IDY2NjAsICJ2YWx1ZSI6IDAuMDQ1NTYxOTMyMDI3MzM5OTM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5MTYuMzUyNDY3MywgInN0ZXAiOiA2NjcwLCAidmFsdWUiOiAwLjAzNTk4ODUyNDU1NjE1OTk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5MjUuNjIxMDY2OCwgInN0ZXAiOiA2NjgwLCAidmFsdWUiOiAwLjAyOTIzNTYyOTM2NDg0ODEzN30sIHsid2FsbFRpbWUiOiAxNzMzMDczOTM0LjkxOTEyNjMsICJzdGVwIjogNjY5MCwgInZhbHVlIjogMC4wMzQwMTI0MjE5NjU1OTkwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTQzLjc0NDc1MzYsICJzdGVwIjogNjcwMCwgInZhbHVlIjogMC4wNDUwNjYwODA5ODc0NTM0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTUyLjQ3OTM2NCwgInN0ZXAiOiA2NzEwLCAidmFsdWUiOiAwLjA0NDE1MDYwNTc5Nzc2NzY0fV19fV0=", + "ok": true, + "headers": [ + [ + "content-length", + "15072" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Loss/loss_bbox_dn_0%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIkxvc3MvbG9zc19iYm94X2RuXzAiLCAicnVuVG9TZXJpZXMiOiB7Ii4iOiBbeyJ3YWxsVGltZSI6IDE3MzMwNjc2MzEuNTM5NjkxLCAic3RlcCI6IDAsICJ2YWx1ZSI6IDAuMDU0MzYxNTc0MzUxNzg3NTd9LCB7IndhbGxUaW1lIjogMTczMzA2NzY0Ni42NTMwNTcsICJzdGVwIjogMTAsICJ2YWx1ZSI6IDAuMDUzNTU3MTAxNjM3MTI1MDE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NjAuNzg1MDk2NCwgInN0ZXAiOiAyMCwgInZhbHVlIjogMC4wNDU2NDExMjQyNDg1MDQ2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njc0LjEzODMzMjYsICJzdGVwIjogMzAsICJ2YWx1ZSI6IDAuMDUxNjMzNDM5OTU4MDk1NTV9LCB7IndhbGxUaW1lIjogMTczMzA2NzY4Ny4wNTgwMTY1LCAic3RlcCI6IDQwLCAidmFsdWUiOiAwLjA2NjY0ODIwNzYwNDg4NTF9LCB7IndhbGxUaW1lIjogMTczMzA2NzY5OS40OTQwNDYsICJzdGVwIjogNTAsICJ2YWx1ZSI6IDAuMTAyNDc4NjIzMzkwMTk3NzV9LCB7IndhbGxUaW1lIjogMTczMzA2NzcxMC42MzAyMTIsICJzdGVwIjogNjAsICJ2YWx1ZSI6IDAuMDg5NDMyMDgzMDcwMjc4MTd9LCB7IndhbGxUaW1lIjogMTczMzA2NzcyMi43NTY0MDYsICJzdGVwIjogNzAsICJ2YWx1ZSI6IDAuMDM1MzU4OTY5MTIyMTcxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzMzLjcyNjI0NjgsICJzdGVwIjogODAsICJ2YWx1ZSI6IDAuMTI0NDkzODc0NjA5NDcwMzd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc1MC45NDcxMTYxLCAic3RlcCI6IDkwLCAidmFsdWUiOiAwLjA0Mjc0Mzg1MDQ5OTM5MTU1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzYxLjk4MTc5OSwgInN0ZXAiOiAxMDAsICJ2YWx1ZSI6IDAuMDYyMzcyMDEwMjAxMjE1NzQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NzEuNjA3MjY0OCwgInN0ZXAiOiAxMTAsICJ2YWx1ZSI6IDAuMDY5MDQ3MjIwMDUxMjg4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzgwLjU0ODI1NTQsICJzdGVwIjogMTIwLCAidmFsdWUiOiAwLjEyMjIwMDk1ODQzMDc2NzA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3OTAuNDg2MjQ5NywgInN0ZXAiOiAxMzAsICJ2YWx1ZSI6IDAuMDUwNDA3NjAzMzgzMDY0Mjd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc5OS4xMDY0NjU4LCAic3RlcCI6IDE0MCwgInZhbHVlIjogMC4wODY5NzMwMTg5NDQyNjM0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODA5LjQ0NTU5NCwgInN0ZXAiOiAxNTAsICJ2YWx1ZSI6IDAuMTM2NDgzMzU2MzU2NjIwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODE4LjkyMTU3MDMsICJzdGVwIjogMTYwLCAidmFsdWUiOiAwLjA2MjQyNDg4MzI0NjQyMTgxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODM2LjY1MDQxOTUsICJzdGVwIjogMTcwLCAidmFsdWUiOiAwLjA2NDMxNTMxOTA2MTI3OTN9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg0Ni4zOTE0MzE2LCAic3RlcCI6IDE4MCwgInZhbHVlIjogMC4wNzkxMDUxMTY0MjY5NDQ3M30sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODU1LjY2Nzc3MjgsICJzdGVwIjogMTkwLCAidmFsdWUiOiAwLjA3NTEyNjc1OTcwNzkyNzd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg2NC44OTEyNjA0LCAic3RlcCI6IDIwMCwgInZhbHVlIjogMC4wNzkxNTUxNzY4Nzc5NzU0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODc0LjAwMjc3MSwgInN0ZXAiOiAyMTAsICJ2YWx1ZSI6IDAuMDYyODkxMTg1MjgzNjYwODl9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg4My43ODc0OTA2LCAic3RlcCI6IDIyMCwgInZhbHVlIjogMC4wNjI5ODk2NzQ1MDg1NzE2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODkyLjEyNDAxNDEsICJzdGVwIjogMjMwLCAidmFsdWUiOiAwLjA1NTUwOTMwMjc2NTEzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTAxLjA3MDIxOCwgInN0ZXAiOiAyNDAsICJ2YWx1ZSI6IDAuMDk4Mjg4NTg4MjI1ODQxNTJ9LCB7IndhbGxUaW1lIjogMTczMzA2NzkxMC4wNzU3NTUxLCAic3RlcCI6IDI1MCwgInZhbHVlIjogMC4wODE3MjYzMjc1Mzg0OTAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MjUuOTUwODM0MywgInN0ZXAiOiAyNjAsICJ2YWx1ZSI6IDAuMDYyNzM5MzM1MDAwNTE0OTh9LCB7IndhbGxUaW1lIjogMTczMzA2NzkzNS40NzYzNzIsICJzdGVwIjogMjcwLCAidmFsdWUiOiAwLjA1MDY5MzA4NzI3OTc5NjZ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk0NC4wMTY5NTA2LCAic3RlcCI6IDI4MCwgInZhbHVlIjogMC4wNTMyNzc0MTgwMTczODczOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTUyLjU0ODA1MTQsICJzdGVwIjogMjkwLCAidmFsdWUiOiAwLjEyMjU3MzMxNjA5NzI1OTUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NjEuMDI3NTc3LCAic3RlcCI6IDMwMCwgInZhbHVlIjogMC4xMDk2NTIzNzAyMTQ0NjIyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTcwLjEzNTQxNzUsICJzdGVwIjogMzEwLCAidmFsdWUiOiAwLjA4ODAwMjg2Nzk5NjY5MjY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5ODAuMjI2NjY4NiwgInN0ZXAiOiAzMjAsICJ2YWx1ZSI6IDAuMDU5ODMxOTQzMzYyOTUxMjh9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk4OC44MTY5MTc3LCAic3RlcCI6IDMzMCwgInZhbHVlIjogMC4wNjg4MTc5NjU2ODYzMjEyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDA1LjA5MTQ1MywgInN0ZXAiOiAzNDAsICJ2YWx1ZSI6IDAuMDYzNzg2MDE0OTE0NTEyNjN9LCB7IndhbGxUaW1lIjogMTczMzA2ODAxNC4wNjYwMzkzLCAic3RlcCI6IDM1MCwgInZhbHVlIjogMC4wMjkzMjY2NzczMjIzODc2OTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODAyMi41NTM4ODcsICJzdGVwIjogMzYwLCAidmFsdWUiOiAwLjA2MDkxNzY5NDEyMTU5OTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODAzMS44MjU1NTcyLCAic3RlcCI6IDM3MCwgInZhbHVlIjogMC4wNjY1MzA1MjU2ODQzNTY2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDQwLjc4ODcwMDMsICJzdGVwIjogMzgwLCAidmFsdWUiOiAwLjA1NDI3MjYzNjc3MTIwMjA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNTAuMTYxMTU3LCAic3RlcCI6IDM5MCwgInZhbHVlIjogMC4xMDIyNjMzODM1NjczMzMyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDU5LjEyNjk3NzIsICJzdGVwIjogNDAwLCAidmFsdWUiOiAwLjExNDA4NTcxMTUzODc5MTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNjguMDkwOTk3NywgInN0ZXAiOiA0MTAsICJ2YWx1ZSI6IDAuMTE1MDIzMDI0MzgwMjA3MDZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODA4NC44NDUyMjU2LCAic3RlcCI6IDQyMCwgInZhbHVlIjogMC4wODM1MjY2MTEzMjgxMjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODA5NC42Njc1NzUxLCAic3RlcCI6IDQzMCwgInZhbHVlIjogMC4wNDYwNjkwNDgzNDUwODg5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTAzLjcwOTA0NjgsICJzdGVwIjogNDQwLCAidmFsdWUiOiAwLjA1NTcwMTU4MzYyMzg4NjExfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMTIuNzAwNjE4NSwgInN0ZXAiOiA0NTAsICJ2YWx1ZSI6IDAuMDYxMDMwOTYxNTczMTIzOTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODEyMS41MDIxNTgsICJzdGVwIjogNDYwLCAidmFsdWUiOiAwLjA0ODk1NjIwNDIwNTc1MTQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMzAuNzI4ODYzNywgInN0ZXAiOiA0NzAsICJ2YWx1ZSI6IDAuMDc2ODA5MDMzNzUxNDg3NzN9LCB7IndhbGxUaW1lIjogMTczMzA2ODEzOS44NTY4MDkxLCAic3RlcCI6IDQ4MCwgInZhbHVlIjogMC4wNjMzMzQ2MjE0ODkwNDh9LCB7IndhbGxUaW1lIjogMTczMzA2ODE0OS4zNzExNjk4LCAic3RlcCI6IDQ5MCwgInZhbHVlIjogMC4wNzcyOTU1NTY2NjQ0NjY4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTU4LjA3MTE3NDQsICJzdGVwIjogNTAwLCAidmFsdWUiOiAwLjA2OTk5Nzc4MDAyNTAwNTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxNzQuMTE2MzIwNCwgInN0ZXAiOiA1MTAsICJ2YWx1ZSI6IDAuMDkwODQzODU2MzM0Njg2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODE4Mi43MjA3NzksICJzdGVwIjogNTIwLCAidmFsdWUiOiAwLjA1MDIyODQ5NTE1MDgwNDUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxOTIuNDE0ODM1NSwgInN0ZXAiOiA1MzAsICJ2YWx1ZSI6IDAuMDg3MTU2NTg2MzQ5MDEwNDd9LCB7IndhbGxUaW1lIjogMTczMzA2ODIwMS44MzE1OTksICJzdGVwIjogNTQwLCAidmFsdWUiOiAwLjA3NzA5MjU1ODE0NTUyMzA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMTAuNjU1NzQyNCwgInN0ZXAiOiA1NTAsICJ2YWx1ZSI6IDAuMDc3OTU0MDQ2NDI4MjAzNTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODIyMC4xOTYzMTQ4LCAic3RlcCI6IDU2MCwgInZhbHVlIjogMC4wNzgxMzMxOTU2Mzg2NTY2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjI5LjE2MDYwMDQsICJzdGVwIjogNTcwLCAidmFsdWUiOiAwLjA4NzM4NTcyODk1NTI2ODg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMzguNTkyODQwNywgInN0ZXAiOiA1ODAsICJ2YWx1ZSI6IDAuMDczNjc2MzAzMDI5MDYwMzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODI1Ni4wNzU1MTIyLCAic3RlcCI6IDU5MCwgInZhbHVlIjogMC4wNTMxNzk0Njg5NTk1Njk5M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjY1LjQzMzE1MiwgInN0ZXAiOiA2MDAsICJ2YWx1ZSI6IDAuMTMxNzQzMjM3Mzc2MjEzMDd9LCB7IndhbGxUaW1lIjogMTczMzA2ODI3NC42NTc3NDksICJzdGVwIjogNjEwLCAidmFsdWUiOiAwLjA1NjcwNTY4MzQ2OTc3MjM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyODMuNzcxMzI3NSwgInN0ZXAiOiA2MjAsICJ2YWx1ZSI6IDAuMDYyOTMyMTYzNDc2OTQzOTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODI5My4zMzU0MjI4LCAic3RlcCI6IDYzMCwgInZhbHVlIjogMC4wNjQ0ODg3ODM0Nzg3MzY4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzAyLjY0ODQ0MTgsICJzdGVwIjogNjQwLCAidmFsdWUiOiAwLjA4MDI1MDg2NjcxMTEzOTY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMTEuMzg5NDY5LCAic3RlcCI6IDY1MCwgInZhbHVlIjogMC4wNjA5Mzk3MjkyMTM3MTQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMjAuMzkxNDY0MiwgInN0ZXAiOiA2NjAsICJ2YWx1ZSI6IDAuMDc2ODM5NzUyNDk1Mjg4ODV9LCB7IndhbGxUaW1lIjogMTczMzA2ODMyOC43MzI2OTcyLCAic3RlcCI6IDY3MCwgInZhbHVlIjogMC4wNzI2MzE4NjU3Mzk4MjIzOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzQ0LjQ2MjQ2OTYsICJzdGVwIjogNjgwLCAidmFsdWUiOiAwLjA4NjIyMDE3NTAyNzg0NzI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNTMuNzE4Mjc4LCAic3RlcCI6IDY5MCwgInZhbHVlIjogMC4wNTQyNTQzNDU1OTU4MzY2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzYyLjA1OTIxMDgsICJzdGVwIjogNzAwLCAidmFsdWUiOiAwLjA5MDYyOTkyMDM2MzQyNjIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNzEuMTA1Mzk3NSwgInN0ZXAiOiA3MTAsICJ2YWx1ZSI6IDAuMDUxMTQ1NTM4Njg3NzA1OTk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzODAuNTM0NTA1NCwgInN0ZXAiOiA3MjAsICJ2YWx1ZSI6IDAuMDkwMDE2NzUyNDgxNDYwNTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODM5MC4wODgwMTI3LCAic3RlcCI6IDczMCwgInZhbHVlIjogMC4wNDYwNjI1MTA0NjA2MTUxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Mzk4LjcyMjM0NDIsICJzdGVwIjogNzQwLCAidmFsdWUiOiAwLjA5NzM5MDk3OTUyODQyNzEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MDcuMTI1MzM1LCAic3RlcCI6IDc1MCwgInZhbHVlIjogMC4wNjY4MTE3MDMxNDU1MDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODQyMy4wNzMyNzk0LCAic3RlcCI6IDc2MCwgInZhbHVlIjogMC4wNjkyNjg2MjE1MDQzMDY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MzEuNDA2NzQ0NywgInN0ZXAiOiA3NzAsICJ2YWx1ZSI6IDAuMDg2NDk1Nzk0MzU1ODY5M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDQwLjQyNjM0ODIsICJzdGVwIjogNzgwLCAidmFsdWUiOiAwLjA0NzM1ODQ2NDQ0OTY0NDA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NDkuMDA3OTk5LCAic3RlcCI6IDc5MCwgInZhbHVlIjogMC4wNjYzNzg4NTQyMTUxNDUxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDU3LjYzOTc2LCAic3RlcCI6IDgwMCwgInZhbHVlIjogMC4wNDcwNTc5OTM3MTAwNDEwNDZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ2Ny4wNDg2MjY0LCAic3RlcCI6IDgxMCwgInZhbHVlIjogMC4wNjU0MjgyOTQyNDE0MjgzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDc1LjYyMTg5OTQsICJzdGVwIjogODIwLCAidmFsdWUiOiAwLjA2ODk2NTMyMzI2OTM2NzIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0ODQuOTgwNDUzLCAic3RlcCI6IDgzMCwgInZhbHVlIjogMC4wNTUwMzkzODM0NzEwMTIxMTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODUwMC43MzMwODE2LCAic3RlcCI6IDg0MCwgInZhbHVlIjogMC4wNTI4MjM0OTg4NDUxMDA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MDkuMzA5MzI0NSwgInN0ZXAiOiA4NTAsICJ2YWx1ZSI6IDAuMDQ5NjQ0MDQ1NTMxNzQ5NzI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MTkuMDIzNzY3LCAic3RlcCI6IDg2MCwgInZhbHVlIjogMC4wNDEzOTgyMDQ4NjMwNzE0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTI3LjUwMDExNywgInN0ZXAiOiA4NzAsICJ2YWx1ZSI6IDAuMDczMDQ4MjA0MTgzNTc4NDl9LCB7IndhbGxUaW1lIjogMTczMzA2ODUzNi45MjE4ODU3LCAic3RlcCI6IDg4MCwgInZhbHVlIjogMC4wNjg0MTI0MzA1ODQ0MzA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NDQuOTEwNDA2OCwgInN0ZXAiOiA4OTAsICJ2YWx1ZSI6IDAuMDYyOTA4Mzk2MTI0ODM5Nzh9LCB7IndhbGxUaW1lIjogMTczMzA2ODU1My41ODA3MjczLCAic3RlcCI6IDkwMCwgInZhbHVlIjogMC4wNzE5MjY0NTk2NzAwNjY4M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTYyLjY4NzYxNiwgInN0ZXAiOiA5MTAsICJ2YWx1ZSI6IDAuMDgyMDE4NTg0MDEyOTg1MjN9LCB7IndhbGxUaW1lIjogMTczMzA2ODU3MS4yNDgwMTMzLCAic3RlcCI6IDkyMCwgInZhbHVlIjogMC4wNTcwMTMwNzk1MjQwNDAyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTg0Ljc3ODEyODYsICJzdGVwIjogOTMwLCAidmFsdWUiOiAwLjA0ODE3OTgxNjQ1NDY0ODk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1OTMuNzc0OTI5LCAic3RlcCI6IDk0MCwgInZhbHVlIjogMC4wNjc1MzczNTk4OTMzMjE5OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjAyLjc2ODY2LCAic3RlcCI6IDk1MCwgInZhbHVlIjogMC4wMzM0MTc5MDY2MTIxNTc4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjExLjA0MjY4MjYsICJzdGVwIjogOTYwLCAidmFsdWUiOiAwLjA3MzczMTk3Mzc2NzI4MDU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MjAuMjI5MzgzMiwgInN0ZXAiOiA5NzAsICJ2YWx1ZSI6IDAuMDY0MTg1OTkxODgzMjc3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjI4Ljg0NDUzNTQsICJzdGVwIjogOTgwLCAidmFsdWUiOiAwLjA1NTY0MTQzNTA4NjcyNzE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MzcuNjMzMjU3MiwgInN0ZXAiOiA5OTAsICJ2YWx1ZSI6IDAuMDQzNjE1NTk0NTA2MjYzNzN9LCB7IndhbGxUaW1lIjogMTczMzA2ODY0Ni42NzU4NzcsICJzdGVwIjogMTAwMCwgInZhbHVlIjogMC4wNzY1Mzk4MjkzNzMzNTk2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjYyLjc1OTY3OTYsICJzdGVwIjogMTAxMCwgInZhbHVlIjogMC4wNjk2Nzc2Mjg1NzY3NTU1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjcyLjA1NzM3NzgsICJzdGVwIjogMTAyMCwgInZhbHVlIjogMC4wNTYyMTAwODU3NDk2MjYxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjgwLjU2NTk5MzgsICJzdGVwIjogMTAzMCwgInZhbHVlIjogMC4wNzI2MjM3NjY5NTg3MTM1M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjkwLjE4ODk0MTIsICJzdGVwIjogMTA0MCwgInZhbHVlIjogMC4wNDgxNzQ4MjA4NDAzNTg3MzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODY5OC44NTEzNDYsICJzdGVwIjogMTA1MCwgInZhbHVlIjogMC4wNzM2ODkzMTkxOTMzNjMxOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzA3Ljc0NjQ4NiwgInN0ZXAiOiAxMDYwLCAidmFsdWUiOiAwLjA1Mzg4OTQ2ODMxMjI2MzQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MTcuMzQ3Njc1LCAic3RlcCI6IDEwNzAsICJ2YWx1ZSI6IDAuMDUwMjQ2MzY1MzY4MzY2MjR9LCB7IndhbGxUaW1lIjogMTczMzA2ODcyNi4zNjQ0MTY4LCAic3RlcCI6IDEwODAsICJ2YWx1ZSI6IDAuMDM4Mzc4ODAxMTk2ODEzNTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODczNS4yNTQ4MzUxLCAic3RlcCI6IDEwOTAsICJ2YWx1ZSI6IDAuMDUyMTk3MjI1MzkxODY0Nzh9LCB7IndhbGxUaW1lIjogMTczMzA2ODc0OS41NTA5ODMyLCAic3RlcCI6IDExMDAsICJ2YWx1ZSI6IDAuMDM1NTY2Njg3NTgzOTIzMzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODc1OC4zNzg0MTA4LCAic3RlcCI6IDExMTAsICJ2YWx1ZSI6IDAuMDYzNDA0ODI4MzEwMDEyODJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODc2Ny4wMDY5MTE1LCAic3RlcCI6IDExMjAsICJ2YWx1ZSI6IDAuMDY3MTA2OTQ3MzAyODE4M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4Nzc2LjYyMTkxMzIsICJzdGVwIjogMTEzMCwgInZhbHVlIjogMC4wNTU5ODk1MDM4NjA0NzM2M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4Nzg1LjQwNDM4NiwgInN0ZXAiOiAxMTQwLCAidmFsdWUiOiAwLjA3NjczODAyOTcxODM5OTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3OTQuMjgyMTMzLCAic3RlcCI6IDExNTAsICJ2YWx1ZSI6IDAuMDc5NjM0ODE1NDU0NDgzMDN9LCB7IndhbGxUaW1lIjogMTczMzA2ODgwMi43MDAzOTY4LCAic3RlcCI6IDExNjAsICJ2YWx1ZSI6IDAuMDkzNjc0OTUwMzAxNjQ3MTl9LCB7IndhbGxUaW1lIjogMTczMzA2ODgxMS41NTQ4NzQ0LCAic3RlcCI6IDExNzAsICJ2YWx1ZSI6IDAuMDU5Nzg1MjgwMzc2NjcyNzQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MjQuOTY4ODA0LCAic3RlcCI6IDExODAsICJ2YWx1ZSI6IDAuMDYxODc1MzA2MDY5ODUwOTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODgzNC4zODAyOTAzLCAic3RlcCI6IDExOTAsICJ2YWx1ZSI6IDAuMDQ3MjMzODQ2MDM4NTc5OTR9LCB7IndhbGxUaW1lIjogMTczMzA2ODg0My41MTkyNDUxLCAic3RlcCI6IDEyMDAsICJ2YWx1ZSI6IDAuMDU5Nzg3NjY0NTYyNDYzNzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODg1Mi4yMzE1ODk2LCAic3RlcCI6IDEyMTAsICJ2YWx1ZSI6IDAuMDQ1NTY1NzMxODIzNDQ0MzY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NjEuMTIwMDA2NiwgInN0ZXAiOiAxMjIwLCAidmFsdWUiOiAwLjA0OTMyODAzNjYwNjMxMTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODg3MC4wNTg5NTA0LCAic3RlcCI6IDEyMzAsICJ2YWx1ZSI6IDAuMDc1MDgzOTU2MTIyMzk4Mzh9LCB7IndhbGxUaW1lIjogMTczMzA2ODg3OC43MjM0MjgyLCAic3RlcCI6IDEyNDAsICJ2YWx1ZSI6IDAuMDcyMTc0MDY0ODE1MDQ0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODg3Ljc0MTE5ODgsICJzdGVwIjogMTI1MCwgInZhbHVlIjogMC4wNDM5MDY1Mjg1MDI3MDI3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTAzLjE2OTgzMzQsICJzdGVwIjogMTI2MCwgInZhbHVlIjogMC4wMzk5NzkwNDgwNzMyOTE3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTEyLjQxOTA0MywgInN0ZXAiOiAxMjcwLCAidmFsdWUiOiAwLjA2ODA4NzgxNjIzODQwMzMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MjEuNDc3MjEsICJzdGVwIjogMTI4MCwgInZhbHVlIjogMC4wNzU1NDYyMzQ4NDYxMTUxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTI5Ljc0OTY4OTMsICJzdGVwIjogMTI5MCwgInZhbHVlIjogMC4wNTAyNjg2MjAyNTI2MDkyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTM5LjUwNDQzMzksICJzdGVwIjogMTMwMCwgInZhbHVlIjogMC4wNDYxMzIxNjU5Mzg2MTU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NDguOTMwOTQ1NCwgInN0ZXAiOiAxMzEwLCAidmFsdWUiOiAwLjAzNzA3NTI4NDg2ODQ3ODc3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTU3LjIzNzUwMjYsICJzdGVwIjogMTMyMCwgInZhbHVlIjogMC4wNzIwMTEwOTgyNjU2NDc4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTY2LjA4MDA3OSwgInN0ZXAiOiAxMzMwLCAidmFsdWUiOiAwLjA2Njc2MDY3NDExODk5NTY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NzUuNTY4MjkzMywgInN0ZXAiOiAxMzQwLCAidmFsdWUiOiAwLjA2OTY1NTkyNTAzNTQ3NjY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5ODkuODAyMTgwMywgInN0ZXAiOiAxMzUwLCAidmFsdWUiOiAwLjAzOTMyNTY4NDMwOTAwNTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5OTguMjg1ODAwMiwgInN0ZXAiOiAxMzYwLCAidmFsdWUiOiAwLjAzODUwNTgxODY5NDgyOTk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwMDcuMTUyODgsICJzdGVwIjogMTM3MCwgInZhbHVlIjogMC4wNDY4MDAxMTQyMTQ0MjAzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDE1LjkyNTI3NSwgInN0ZXAiOiAxMzgwLCAidmFsdWUiOiAwLjA0NzE3NzczOTQ0MTM5NDgwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDI1LjMwNjI5MzIsICJzdGVwIjogMTM5MCwgInZhbHVlIjogMC4wNTM1MjM1NjI4NDg1Njc5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDM0LjQ4NDQ1MTgsICJzdGVwIjogMTQwMCwgInZhbHVlIjogMC4wNjIxNTk2MTY1MDAxMzkyMzZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTA0Mi43OTYwMDM4LCAic3RlcCI6IDE0MTAsICJ2YWx1ZSI6IDAuMDcyNzI2NTQ3NzE4MDQ4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDUyLjE0MDUzNiwgInN0ZXAiOiAxNDIwLCAidmFsdWUiOiAwLjA0ODQ0NzkwNjk3MDk3Nzc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNjUuMDA0NzI0LCAic3RlcCI6IDE0MzAsICJ2YWx1ZSI6IDAuMDU0MTc2MjkzMzEzNTAzMjY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNzQuNTI2OTgwNCwgInN0ZXAiOiAxNDQwLCAidmFsdWUiOiAwLjA1NDUwNTg0NzM5NDQ2NjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTA4My43ODU1NzAxLCAic3RlcCI6IDE0NTAsICJ2YWx1ZSI6IDAuMDU3NjYzNzgzNDMxMDUzMTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTA5Mi4yNjE2MDY3LCAic3RlcCI6IDE0NjAsICJ2YWx1ZSI6IDAuMDcxMjkzNjIyMjU1MzI1MzJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTEwMS4wMzI3NTg3LCAic3RlcCI6IDE0NzAsICJ2YWx1ZSI6IDAuMDYwNDgzNjQ1NjQ3NzY0MjA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMDkuOTA4NTkwMywgInN0ZXAiOiAxNDgwLCAidmFsdWUiOiAwLjA3NTk1MjYxOTMxNDE5MzczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMTkuMTIwNzYzLCAic3RlcCI6IDE0OTAsICJ2YWx1ZSI6IDAuMDU1NzUzMzcyNjA5NjE1MzI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMjguNDE4MDU3LCAic3RlcCI6IDE1MDAsICJ2YWx1ZSI6IDAuMDY1OTkzNDI4MjMwMjg1NjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTEzNy42MDg2MjMsICJzdGVwIjogMTUxMCwgInZhbHVlIjogMC4wNjU0MjAyODQ4NjcyODY2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTUwLjU0NTQyNDcsICJzdGVwIjogMTUyMCwgInZhbHVlIjogMC4wNDI0NjUyNTQ2NjQ0MjEwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTU5Ljc1ODkxNzMsICJzdGVwIjogMTUzMCwgInZhbHVlIjogMC4wNTM2NDQ3Njg4OTM3MTg3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTY4LjE3MjM2MDIsICJzdGVwIjogMTU0MCwgInZhbHVlIjogMC4wNjgyMjc4MDUxOTcyMzg5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTc2Ljg0MjgzMjYsICJzdGVwIjogMTU1MCwgInZhbHVlIjogMC4wNzE0MTQ5NjI0MTA5MjY4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTg1Ljg5NDEyMzMsICJzdGVwIjogMTU2MCwgInZhbHVlIjogMC4wNDAwNDE5OTQzMDM0NjQ4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTk0LjkyNjAyNzMsICJzdGVwIjogMTU3MCwgInZhbHVlIjogMC4wNzczODQ1NTM4NDk2OTcxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjAzLjkxNTU3OTgsICJzdGVwIjogMTU4MCwgInZhbHVlIjogMC4wNDA1MDA0NTQ2MDQ2MjU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMTIuNzE3OTU3NywgInN0ZXAiOiAxNTkwLCAidmFsdWUiOiAwLjA0MTI4MzM1MDQzNzg3OTU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMjUuNTM1OTM2NiwgInN0ZXAiOiAxNjAwLCAidmFsdWUiOiAwLjA0Nzc3MjE5MTQ2NDkwMDk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMzUuNDY1NzIxMSwgInN0ZXAiOiAxNjEwLCAidmFsdWUiOiAwLjA1NDEyMjczNDgxNDg4MjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNDQuNjMyMDUxLCAic3RlcCI6IDE2MjAsICJ2YWx1ZSI6IDAuMDUxMTg0NDYwNTIwNzQ0MzI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNTQuMjk1NDQ5NSwgInN0ZXAiOiAxNjMwLCAidmFsdWUiOiAwLjA2MDQzMDEwOTUwMDg4NTAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNjMuMDA3MTkzNiwgInN0ZXAiOiAxNjQwLCAidmFsdWUiOiAwLjA1ODQ1Mzg1Nzg5ODcxMjE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNzEuODY4NTAyNCwgInN0ZXAiOiAxNjUwLCAidmFsdWUiOiAwLjA2NzgzNjc5MTI3NjkzMTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyODAuNTExNzEzNSwgInN0ZXAiOiAxNjYwLCAidmFsdWUiOiAwLjExNzQyMTUyMjczNjU0OTM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyODkuNjgxNTg0NCwgInN0ZXAiOiAxNjcwLCAidmFsdWUiOiAwLjA0NjEyMzkxODE0NTg5NTAwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzAzLjYxMjIxNiwgInN0ZXAiOiAxNjgwLCAidmFsdWUiOiAwLjA4MDExNTE4NDE4Nzg4OTF9LCB7IndhbGxUaW1lIjogMTczMzA2OTMxMi40ODE1MDc4LCAic3RlcCI6IDE2OTAsICJ2YWx1ZSI6IDAuMDQ4ODg5MzM4OTcwMTg0MzI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMjEuODQwNDk2NSwgInN0ZXAiOiAxNzAwLCAidmFsdWUiOiAwLjA1MDQ5MTM2MjgxMDEzNDg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMzAuMzQ5ODI4LCAic3RlcCI6IDE3MTAsICJ2YWx1ZSI6IDAuMDU1ODk3MzI1Mjc3MzI4NDl9LCB7IndhbGxUaW1lIjogMTczMzA2OTMzOS4yNDcyMzEsICJzdGVwIjogMTcyMCwgInZhbHVlIjogMC4wNDQ2OTg1MjE0OTQ4NjU0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzQ2Ljg2MDE3MSwgInN0ZXAiOiAxNzMwLCAidmFsdWUiOiAwLjA5NzA5NDQzMTUxOTUwODM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNTUuNjU1OTIyNCwgInN0ZXAiOiAxNzQwLCAidmFsdWUiOiAwLjA0MTc5OTY4Njg0OTExNzI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNjQuNTEzODkxMiwgInN0ZXAiOiAxNzUwLCAidmFsdWUiOiAwLjA3ODA5NDY4MzU4NzU1MTEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNzMuNzQwNDkwMiwgInN0ZXAiOiAxNzYwLCAidmFsdWUiOiAwLjEwNTA2Mzg1NTY0ODA0MDc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzODcuNTQyODk5NiwgInN0ZXAiOiAxNzcwLCAidmFsdWUiOiAwLjA2MTQwMjMzNTc2Mjk3NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTM5Ni40NzAwOTU0LCAic3RlcCI6IDE3ODAsICJ2YWx1ZSI6IDAuMDc5Nzc5MjA3NzA2NDUxNDJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTQwNS45OTgwODQzLCAic3RlcCI6IDE3OTAsICJ2YWx1ZSI6IDAuMDY3Mjc5MzUzNzM3ODMxMTJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTQxNS4wNTU2NzM0LCAic3RlcCI6IDE4MDAsICJ2YWx1ZSI6IDAuMDUyMTAzMjczNTcwNTM3NTd9LCB7IndhbGxUaW1lIjogMTczMzA2OTQyMy45MDkzMDA2LCAic3RlcCI6IDE4MTAsICJ2YWx1ZSI6IDAuMDQ4Mzk1NzgyNzA5MTIxNzA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MzIuNTMzMDAyOSwgInN0ZXAiOiAxODIwLCAidmFsdWUiOiAwLjA2MDE2MDY3Nzg4MDA0ODc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NDEuMjIwNDc2OSwgInN0ZXAiOiAxODMwLCAidmFsdWUiOiAwLjA1MjgxODY1MjI0MjQyMjEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDUwLjA5MTE0MzQsICJzdGVwIjogMTg0MCwgInZhbHVlIjogMC4wNDIyMTcyMDk5MzUxODgyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDYzLjEwODY5OCwgInN0ZXAiOiAxODUwLCAidmFsdWUiOiAwLjA1MTA1NTU2NTQ3NjQxNzU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NzEuNTc0NDQwNywgInN0ZXAiOiAxODYwLCAidmFsdWUiOiAwLjAzNTUyMzI0MzI0ODQ2MjY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0ODAuNDk5NjU3MiwgInN0ZXAiOiAxODcwLCAidmFsdWUiOiAwLjA4MjY4NDA0MDA2OTU4MDA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0ODkuMzg2MzY0NywgInN0ZXAiOiAxODgwLCAidmFsdWUiOiAwLjA2MTk0Nzg4OTYyNjAyNjE1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDk3Ljk3ODE1OTQsICJzdGVwIjogMTg5MCwgInZhbHVlIjogMC4wNjQ2NjE5MjAwNzA2NDgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MDYuNzk1NjkxNywgInN0ZXAiOiAxOTAwLCAidmFsdWUiOiAwLjA0MzY5NDkxMzM4NzI5ODU4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTE1LjgyNjA2LCAic3RlcCI6IDE5MTAsICJ2YWx1ZSI6IDAuMDY1MDc1MjE4Njc3NTIwNzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTUyNC42Mzc5MDc1LCAic3RlcCI6IDE5MjAsICJ2YWx1ZSI6IDAuMDQ1ODcwMTEwMzkyNTcwNDk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MzMuNTQzNTgzLCAic3RlcCI6IDE5MzAsICJ2YWx1ZSI6IDAuMDc0Njk5MzU3MTUxOTg1MTd9LCB7IndhbGxUaW1lIjogMTczMzA2OTU1MC40NzkzMzQ2LCAic3RlcCI6IDE5NDAsICJ2YWx1ZSI6IDAuMDI4ODYwNjM5NzgwNzU5ODF9LCB7IndhbGxUaW1lIjogMTczMzA2OTU1OC44Mjk0NDg1LCAic3RlcCI6IDE5NTAsICJ2YWx1ZSI6IDAuMDczNzYzODU0ODAxNjU0ODJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTU2Ny43NTkyNzk3LCAic3RlcCI6IDE5NjAsICJ2YWx1ZSI6IDAuMDQ3OTU5OTE2MjkzNjIxMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTU3Ni4zNDY1NjcyLCAic3RlcCI6IDE5NzAsICJ2YWx1ZSI6IDAuMDYzODQ5ODM2NTg3OTA1ODh9LCB7IndhbGxUaW1lIjogMTczMzA2OTU4NS41MzA1MDk1LCAic3RlcCI6IDE5ODAsICJ2YWx1ZSI6IDAuMDYxMTc5NjQ1MzU5NTE2MTQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1OTQuMzUxNjExMSwgInN0ZXAiOiAxOTkwLCAidmFsdWUiOiAwLjA1ODQzNjYzNTg4MTY2MjM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MDIuNDAzMDYxNCwgInN0ZXAiOiAyMDAwLCAidmFsdWUiOiAwLjA3ODE3NTEwNTE1NDUxNDMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MTAuMjUxMzMwMSwgInN0ZXAiOiAyMDEwLCAidmFsdWUiOiAwLjA2MzMwMzgxMzMzODI3OTcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MjYuNjg4MTU2NCwgInN0ZXAiOiAyMDIwLCAidmFsdWUiOiAwLjA1Njc5NjYyODk4MTgyODY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MzUuMDMyMjYxNCwgInN0ZXAiOiAyMDMwLCAidmFsdWUiOiAwLjA0Njk0Mjc4NTM4MjI3MDgxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NDMuODIzOTQyMiwgInN0ZXAiOiAyMDQwLCAidmFsdWUiOiAwLjA2MjYxOTM2NTc1MTc0MzMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NTIuMTk1NzQ3MSwgInN0ZXAiOiAyMDUwLCAidmFsdWUiOiAwLjA3MDczNDQ3ODUzMzI2Nzk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NjAuNDU0ODEyOCwgInN0ZXAiOiAyMDYwLCAidmFsdWUiOiAwLjA5MDcxMTM1NTIwOTM1MDU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NjkuNTkzNDEwNSwgInN0ZXAiOiAyMDcwLCAidmFsdWUiOiAwLjA0MzU0Mjg0NzAzNzMxNTM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NzguNzc5NzYyMywgInN0ZXAiOiAyMDgwLCAidmFsdWUiOiAwLjA2MTEyMzc4MDkwNjIwMDQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2ODYuOTQ2MjA3OCwgInN0ZXAiOiAyMDkwLCAidmFsdWUiOiAwLjA2MDQxNzgzODM5NDY0MTg3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzAwLjYwMzQxODQsICJzdGVwIjogMjEwMCwgInZhbHVlIjogMC4wNDU0MjA5NDA5NjU0MTQwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzA4LjcyNzY2OTcsICJzdGVwIjogMjExMCwgInZhbHVlIjogMC4wNDcwNjI0NDU0MzE5NDc3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzE3LjQ0OTU5MjgsICJzdGVwIjogMjEyMCwgInZhbHVlIjogMC4wNjA3Mzc5NjAwNDA1NjkzMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTcyNi4xNDI1NzMsICJzdGVwIjogMjEzMCwgInZhbHVlIjogMC4wMzgzMTQzMzUwNDgxOTg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MzUuMDM5NDA1MywgInN0ZXAiOiAyMTQwLCAidmFsdWUiOiAwLjAzODI1NTQ2NDI4NTYxMjEwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzQzLjMwNzQxNzQsICJzdGVwIjogMjE1MCwgInZhbHVlIjogMC4wNDk1MjE0MDUyNDk4MzQwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzUyLjUwMjEzMjQsICJzdGVwIjogMjE2MCwgInZhbHVlIjogMC4wNDcxMzQxNjA5OTU0ODM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NjEuNDUyMjk0LCAic3RlcCI6IDIxNzAsICJ2YWx1ZSI6IDAuMDQxMzAwNzg0Nzk2NDc2MzY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NzAuNDM0NDgxNCwgInN0ZXAiOiAyMTgwLCAidmFsdWUiOiAwLjA2NjEzNzg1MDI4NDU3NjQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3ODQuMzY1MDU0LCAic3RlcCI6IDIxOTAsICJ2YWx1ZSI6IDAuMDUwMTg4NjY4MDcyMjIzNjZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTc5My4xMjM3OTYsICJzdGVwIjogMjIwMCwgInZhbHVlIjogMC4wNDEwMTEwMTMwOTA2MTA1MDR9LCB7IndhbGxUaW1lIjogMTczMzA2OTgwMS42Mzc0MjY5LCAic3RlcCI6IDIyMTAsICJ2YWx1ZSI6IDAuMDY3OTc1NzY2OTU2ODA2MTh9LCB7IndhbGxUaW1lIjogMTczMzA2OTgxMC42MDkxNjczLCAic3RlcCI6IDIyMjAsICJ2YWx1ZSI6IDAuMDQ1ODMzMDczNTU2NDIzMTl9LCB7IndhbGxUaW1lIjogMTczMzA2OTgxOS4zNDM3MDg4LCAic3RlcCI6IDIyMzAsICJ2YWx1ZSI6IDAuMDgxMDY4NzgzOTk4NDg5Mzh9LCB7IndhbGxUaW1lIjogMTczMzA2OTgyNy4zMjczMjAzLCAic3RlcCI6IDIyNDAsICJ2YWx1ZSI6IDAuMDYxNTk1MjA4OTQyODkwMTd9LCB7IndhbGxUaW1lIjogMTczMzA2OTgzNS44NjkzNTU3LCAic3RlcCI6IDIyNTAsICJ2YWx1ZSI6IDAuMDQxMTc4NTgwMzczNTI1NjJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTg0NC4yMzcxNDgsICJzdGVwIjogMjI2MCwgInZhbHVlIjogMC4wNTI0ODQ1OTQyODU0ODgxM30sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODU2Ljc1MDQ3MDksICJzdGVwIjogMjI3MCwgInZhbHVlIjogMC4wOTAyNjY4Njg0NzIwOTkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NjUuMjU4ODE2MiwgInN0ZXAiOiAyMjgwLCAidmFsdWUiOiAwLjA3NjAwOTkyMTcyOTU2NDY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NzQuMDA3MDI1LCAic3RlcCI6IDIyOTAsICJ2YWx1ZSI6IDAuMDUxNTUxOTA4MjU0NjIzNDF9LCB7IndhbGxUaW1lIjogMTczMzA2OTg4MS43ODI4MjYsICJzdGVwIjogMjMwMCwgInZhbHVlIjogMC4wNjAyMzgyODMxMjc1NDYzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODkwLjQxNDk5NTcsICJzdGVwIjogMjMxMCwgInZhbHVlIjogMC4wMzY4NzM0NjcyNjY1NTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4OTguODc3Nzc4OCwgInN0ZXAiOiAyMzIwLCAidmFsdWUiOiAwLjA1NzczMDU5NjUxMjU1NjA3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTA4LjMxODg0NjUsICJzdGVwIjogMjMzMCwgInZhbHVlIjogMC4wNDY0OTY0MzIyNzQ1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTE3LjQxNjM2MTgsICJzdGVwIjogMjM0MCwgInZhbHVlIjogMC4wNDMwOTY0NjQxMjczMDIxN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTI1Ljg1MTk5NDMsICJzdGVwIjogMjM1MCwgInZhbHVlIjogMC4wNDk3NTcwNDEwMzcwODI2N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTM4LjcwNDYyLCAic3RlcCI6IDIzNjAsICJ2YWx1ZSI6IDAuMDk0MDk0ODM1MjIxNzY3NDN9LCB7IndhbGxUaW1lIjogMTczMzA2OTk0Ny40MjcyNjY0LCAic3RlcCI6IDIzNzAsICJ2YWx1ZSI6IDAuMDM4MDk2MDAzMjM0Mzg2NDQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NTYuMjA4NTY0MywgInN0ZXAiOiAyMzgwLCAidmFsdWUiOiAwLjA1MTMyMjE2OTYwMTkxNzI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NjQuMjc1ODk2MywgInN0ZXAiOiAyMzkwLCAidmFsdWUiOiAwLjA5NzA0NTY0NTExNzc1OTd9LCB7IndhbGxUaW1lIjogMTczMzA2OTk3My4zMjcxNTA4LCAic3RlcCI6IDI0MDAsICJ2YWx1ZSI6IDAuMDM5OTQzNjI4MDEzMTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5ODEuNDMzMjE0NCwgInN0ZXAiOiAyNDEwLCAidmFsdWUiOiAwLjAyOTU1MDgzNzM1Mjg3MTg5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTkwLjE0MDgwMDIsICJzdGVwIjogMjQyMCwgInZhbHVlIjogMC4wNTgyMDg1ODg1MTA3NTE3MjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTk5OC43OTk1NjQ0LCAic3RlcCI6IDI0MzAsICJ2YWx1ZSI6IDAuMDUwMzM2NTUwOTIxMjAxNzA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMTIuNDU2ODg0LCAic3RlcCI6IDI0NDAsICJ2YWx1ZSI6IDAuMDQ4MTM0ODI2MTIzNzE0NDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDAyMS42MDAwOTM4LCAic3RlcCI6IDI0NTAsICJ2YWx1ZSI6IDAuMDQzOTUwMDEzODE2MzU2NjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDAzMC4xOTIwMjk3LCAic3RlcCI6IDI0NjAsICJ2YWx1ZSI6IDAuMDQ0MDU5OTM1OTU3MTkzMzc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMzkuMjIwMzUzMSwgInN0ZXAiOiAyNDcwLCAidmFsdWUiOiAwLjA2MDk3MDcxNjE3ODQxNzIwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDQ4LjI2OTk2MzMsICJzdGVwIjogMjQ4MCwgInZhbHVlIjogMC4wNTczNDc3NzQ1MDU2MTUyMzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDA1Ni4xNTY4MDI0LCAic3RlcCI6IDI0OTAsICJ2YWx1ZSI6IDAuMDM5OTAzOTM4NzcwMjk0MTl9LCB7IndhbGxUaW1lIjogMTczMzA3MDA2NC40NTE2NjEzLCAic3RlcCI6IDI1MDAsICJ2YWx1ZSI6IDAuMDMyMjczNjc2MjQ2NDA0NjV9LCB7IndhbGxUaW1lIjogMTczMzA3MDA3Mi41NTI0NywgInN0ZXAiOiAyNTEwLCAidmFsdWUiOiAwLjA3Mjc4NDkzNzkxODE4NjE5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwODcuNjU3OTMyOCwgInN0ZXAiOiAyNTIwLCAidmFsdWUiOiAwLjAzNzI4NDYyMDEwNjIyMDI0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDk1LjQ0Mjc0NzgsICJzdGVwIjogMjUzMCwgInZhbHVlIjogMC4wMzMyMTk3NzcwNDc2MzQxMjV9LCB7IndhbGxUaW1lIjogMTczMzA3MDEwMy43Njk5MDE4LCAic3RlcCI6IDI1NDAsICJ2YWx1ZSI6IDAuMDYxODEzNjUyNTE1NDExMzh9LCB7IndhbGxUaW1lIjogMTczMzA3MDExMy4wNTAzNjY0LCAic3RlcCI6IDI1NTAsICJ2YWx1ZSI6IDAuMDUzMzYxMTc3NDQ0NDU4MDF9LCB7IndhbGxUaW1lIjogMTczMzA3MDEyMS4wMzg4MDQ4LCAic3RlcCI6IDI1NjAsICJ2YWx1ZSI6IDAuMDY5MDEzOTMwODU3MTgxNTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDEyOS41ODU5MDA4LCAic3RlcCI6IDI1NzAsICJ2YWx1ZSI6IDAuMDUyNjI2ODYzMTIxOTg2Mzl9LCB7IndhbGxUaW1lIjogMTczMzA3MDEzOC4zNjE4MzAyLCAic3RlcCI6IDI1ODAsICJ2YWx1ZSI6IDAuMDUwOTUxMDU5OTA3Njc0Nzl9LCB7IndhbGxUaW1lIjogMTczMzA3MDE0Ny4wODgzMTA1LCAic3RlcCI6IDI1OTAsICJ2YWx1ZSI6IDAuMDU1MTAyMDA1NjAwOTI5MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDE1NS40ODc5NDIyLCAic3RlcCI6IDI2MDAsICJ2YWx1ZSI6IDAuMDQzMDg1NDk2ODcyNjYzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTcyLjU3ODI2NDUsICJzdGVwIjogMjYxMCwgInZhbHVlIjogMC4wNjEzNDYzODkzNTMyNzUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxODEuMjEyMTc2NiwgInN0ZXAiOiAyNjIwLCAidmFsdWUiOiAwLjA0MTg4NDMzMjg5NTI3ODkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxODkuNjkzNDA2LCAic3RlcCI6IDI2MzAsICJ2YWx1ZSI6IDAuMDUzODQyNjg2MTE2Njk1NDA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxOTguNDAwMTM5OCwgInN0ZXAiOiAyNjQwLCAidmFsdWUiOiAwLjA2NTA2ODMxMTk4OTMwNzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDIwNi43MDg0NDAzLCAic3RlcCI6IDI2NTAsICJ2YWx1ZSI6IDAuMDU0MDIxNTU5NjU1NjY2MzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDIxNS42MDA2Mzk4LCAic3RlcCI6IDI2NjAsICJ2YWx1ZSI6IDAuMDQwOTUyODA5MTU0OTg3MzM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMjQuMzE3MjgyMiwgInN0ZXAiOiAyNjcwLCAidmFsdWUiOiAwLjA1NTgzOTA1NDI4NjQ3OTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMzMuNTQwMzgyNiwgInN0ZXAiOiAyNjgwLCAidmFsdWUiOiAwLjA2MzgxMDM1NTk2MTMyMjc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNDYuNzU5MTk2OCwgInN0ZXAiOiAyNjkwLCAidmFsdWUiOiAwLjA0MzEwODg4Nzk3MDQ0NzU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNTYuMDMwMTc1NCwgInN0ZXAiOiAyNzAwLCAidmFsdWUiOiAwLjA2NjIyNjYzODg1MzU0OTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNjQuOTUxNzc0LCAic3RlcCI6IDI3MTAsICJ2YWx1ZSI6IDAuMDM3MDU0OTQxMDU4MTU4ODc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNzMuODI4MDE2MywgInN0ZXAiOiAyNzIwLCAidmFsdWUiOiAwLjA1ODY1OTY4NzYzODI4Mjc3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjgyLjk2MDExNCwgInN0ZXAiOiAyNzMwLCAidmFsdWUiOiAwLjA0ODQ2NDYyNjA3MzgzNzI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyOTIuMjc4OTA4MywgInN0ZXAiOiAyNzQwLCAidmFsdWUiOiAwLjA0NTI0MzQzNDYwNzk4MjYzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzAwLjMzNzc5MzYsICJzdGVwIjogMjc1MCwgInZhbHVlIjogMC4wNjUzMzEzMzIzODU1NDAwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzA5LjQxMzIxNDIsICJzdGVwIjogMjc2MCwgInZhbHVlIjogMC4wNjUzMzM4OTUzODUyNjUzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzE3LjUzMjU3NDcsICJzdGVwIjogMjc3MCwgInZhbHVlIjogMC4wNTY0MDAyNjkyNjk5NDMyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzMwLjQzNzE3NTUsICJzdGVwIjogMjc4MCwgInZhbHVlIjogMC4wNTQ1MjA0MDIxMDM2NjI0OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzM5LjgyNDMwNDgsICJzdGVwIjogMjc5MCwgInZhbHVlIjogMC4wNTY2NjI4OTg1MTA2OTQ1MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDM0Ny45OTUxOTYsICJzdGVwIjogMjgwMCwgInZhbHVlIjogMC4wNDI4OTAwMTU5ODk1NDIwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzU2Ljg5NDYxNDIsICJzdGVwIjogMjgxMCwgInZhbHVlIjogMC4wNTIwNjU5NjEwNjI5MDgxN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzY1LjU3ODA1MDEsICJzdGVwIjogMjgyMCwgInZhbHVlIjogMC4wMzk4MDU0OTA1MjM1NzY3MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDM3NC4zOTQ3MDM2LCAic3RlcCI6IDI4MzAsICJ2YWx1ZSI6IDAuMDQwMTE5MzQ5OTU2NTEyNDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDM4Mi40MjgwMTE0LCAic3RlcCI6IDI4NDAsICJ2YWx1ZSI6IDAuMDY1MDkyOTY1OTYwNTAyNjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDM5MC45NDIzNjQsICJzdGVwIjogMjg1MCwgInZhbHVlIjogMC4wMzQ1OTk5MTE0MjE1Mzc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0MDYuNjc5Njk3LCAic3RlcCI6IDI4NjAsICJ2YWx1ZSI6IDAuMDczMDQzNDczMDY0ODk5NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDQxNS4wOTEyMjI1LCAic3RlcCI6IDI4NzAsICJ2YWx1ZSI6IDAuMDY0ODE1MDIyMDUxMzM0Mzh9LCB7IndhbGxUaW1lIjogMTczMzA3MDQyMi45MjExNjcxLCAic3RlcCI6IDI4ODAsICJ2YWx1ZSI6IDAuMDQ5OTMxNjgyNjQ2Mjc0NTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzMS41Mzg0MjYyLCAic3RlcCI6IDI4OTAsICJ2YWx1ZSI6IDAuMDM3MjU0NzYxOTA0NDc4MDd9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzOS45ODIwMzI1LCAic3RlcCI6IDI5MDAsICJ2YWx1ZSI6IDAuMDQyMTk3NDEwMDE3MjUxOTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ0OC4wODY1NTIsICJzdGVwIjogMjkxMCwgInZhbHVlIjogMC4wNTY5Njk1NTY5NTc0ODMyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDU3LjQyNDc0MDYsICJzdGVwIjogMjkyMCwgInZhbHVlIjogMC4wMzY5MzYzNDI3MTYyMTcwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDY2LjcyMzk2MiwgInN0ZXAiOiAyOTMwLCAidmFsdWUiOiAwLjA2MDIyOTMzMTI1NDk1OTEwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDc5LjMzMzYyMzYsICJzdGVwIjogMjk0MCwgInZhbHVlIjogMC4wNTI5ODY5MTI0MjkzMzI3M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDg4Ljc4MzQwODQsICJzdGVwIjogMjk1MCwgInZhbHVlIjogMC4wMzQ4Mjk5MTA4NDQ1NjQ0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDk3LjIyNTg5NTYsICJzdGVwIjogMjk2MCwgInZhbHVlIjogMC4wNDI3OTM2ODM3MDc3MTQwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTA1LjYzNDg1NTcsICJzdGVwIjogMjk3MCwgInZhbHVlIjogMC4wMzcyNjk0MDk3NDU5MzE2MjV9LCB7IndhbGxUaW1lIjogMTczMzA3MDUxMy4zNTQ5NzY0LCAic3RlcCI6IDI5ODAsICJ2YWx1ZSI6IDAuMDcwMzY1MjUwMTEwNjI2MjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDUyMi4zMDIxOTk2LCAic3RlcCI6IDI5OTAsICJ2YWx1ZSI6IDAuMDU1MzY5NDE4MTE0NDIzNzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDUzMC4yMTM2ODU1LCAic3RlcCI6IDMwMDAsICJ2YWx1ZSI6IDAuMDc0NTM1ODk4ODY0MjY5MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDUzOC4zMDEwMjU0LCAic3RlcCI6IDMwMTAsICJ2YWx1ZSI6IDAuMDM1OTUzOTMxNTEwNDQ4NDU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NDcuNDAxNTAzOCwgInN0ZXAiOiAzMDIwLCAidmFsdWUiOiAwLjA1MTkzMDk5Mzc5NTM5NDl9LCB7IndhbGxUaW1lIjogMTczMzA3MDU2NC4wNTE3NDcsICJzdGVwIjogMzAzMCwgInZhbHVlIjogMC4wNTMxMDU2ODU4NTk5MTg1OTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDU3Mi4zNzA3MzI1LCAic3RlcCI6IDMwNDAsICJ2YWx1ZSI6IDAuMDM2NzUwNjg5MTQ4OTAyODl9LCB7IndhbGxUaW1lIjogMTczMzA3MDU4MC42NzIxMDUzLCAic3RlcCI6IDMwNTAsICJ2YWx1ZSI6IDAuMDcyMzM5OTY2ODkzMTk2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTg4LjY1NDIyMDMsICJzdGVwIjogMzA2MCwgInZhbHVlIjogMC4wMzgyMjMxMzYyMTY0MDIwNTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDU5Ny40MjE4NTIsICJzdGVwIjogMzA3MCwgInZhbHVlIjogMC4wNDA5ODcxMzAyNTQ1MDcwNjV9LCB7IndhbGxUaW1lIjogMTczMzA3MDYwNi4xMzg0MTUsICJzdGVwIjogMzA4MCwgInZhbHVlIjogMC4wNzU3MTM1ODIzMzY5MDI2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjE0LjQ0MDc0MzQsICJzdGVwIjogMzA5MCwgInZhbHVlIjogMC4wNzY0NDg3MDg3NzI2NTkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MjQuMDAxMjUwNSwgInN0ZXAiOiAzMTAwLCAidmFsdWUiOiAwLjAzNTM4MzQ3MDM1NjQ2NDM4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjM3LjI1MzAxOCwgInN0ZXAiOiAzMTEwLCAidmFsdWUiOiAwLjA1NjY4NjgxMTE0OTEyMDMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NDUuNjgzMDE1OCwgInN0ZXAiOiAzMTIwLCAidmFsdWUiOiAwLjAzODcyNzMwNTgyOTUyNDk5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjU0LjI3MDU4NDYsICJzdGVwIjogMzEzMCwgInZhbHVlIjogMC4wNTEyMDA0NDk0NjY3MDUzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjYzLjMyMTM3OCwgInN0ZXAiOiAzMTQwLCAidmFsdWUiOiAwLjA0OTcyMTgxODQxNzMxMDcxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjcxLjExODA4MDEsICJzdGVwIjogMzE1MCwgInZhbHVlIjogMC4wNjY4ODI3NTkzMzI2NTY4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjc5Ljc2NTYwMiwgInN0ZXAiOiAzMTYwLCAidmFsdWUiOiAwLjAzNjI0MjU2NzAwMjc3MzI4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjg3Ljg0NTQ4OTUsICJzdGVwIjogMzE3MCwgInZhbHVlIjogMC4wNjg0OTkzMTE4MDQ3NzE0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjk1Ljg1NTgzMDIsICJzdGVwIjogMzE4MCwgInZhbHVlIjogMC4wMzg5ODY4ODQwNTc1MjE4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzA0LjYyMjUwNSwgInN0ZXAiOiAzMTkwLCAidmFsdWUiOiAwLjA0MjU0NjkzNTM3OTUwNTE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MTcuMTA4OTExLCAic3RlcCI6IDMyMDAsICJ2YWx1ZSI6IDAuMDYzODAwMjMwNjIyMjkxNTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDcyNi4wOTg3MDg2LCAic3RlcCI6IDMyMTAsICJ2YWx1ZSI6IDAuMDYwMTY4MzQwODAyMTkyNjl9LCB7IndhbGxUaW1lIjogMTczMzA3MDczNC43Nzc5NjAzLCAic3RlcCI6IDMyMjAsICJ2YWx1ZSI6IDAuMDY2MjQ4MDIyMDE5ODYzMTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDc0NC40MTI1MywgInN0ZXAiOiAzMjMwLCAidmFsdWUiOiAwLjAzNTM2NTI2ODU4ODA2NjF9LCB7IndhbGxUaW1lIjogMTczMzA3MDc1Mi41MDE3MDg1LCAic3RlcCI6IDMyNDAsICJ2YWx1ZSI6IDAuMDUyODMwMjk3NDk5ODk1MDk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NjEuNzIxMjk2MywgInN0ZXAiOiAzMjUwLCAidmFsdWUiOiAwLjAzMTMxNjAyMzMxOTk1OTY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NzAuMzc2NzEzLCAic3RlcCI6IDMyNjAsICJ2YWx1ZSI6IDAuMDM0MDU4Mzk1NzczMTcyMzh9LCB7IndhbGxUaW1lIjogMTczMzA3MDc3OS43MzAwNTk5LCAic3RlcCI6IDMyNzAsICJ2YWx1ZSI6IDAuMDQzMjMzNTY1OTg2MTU2NDY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3OTMuNjc4NTkwOCwgInN0ZXAiOiAzMjgwLCAidmFsdWUiOiAwLjAzOTMyNDA0NTE4MTI3NDQxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODAxLjkwMDA1NSwgInN0ZXAiOiAzMjkwLCAidmFsdWUiOiAwLjAzMDg3MjQxMDE2MzI4MzM0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODEwLjE2MTExODcsICJzdGVwIjogMzMwMCwgInZhbHVlIjogMC4wMzY3NjA1MTY0NjQ3MTAyMzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDgxOC43MjY2MDE4LCAic3RlcCI6IDMzMTAsICJ2YWx1ZSI6IDAuMDQ3OTEzNzcxMTIyNjk0MDE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MjcuMDA4MDM2NiwgInN0ZXAiOiAzMzIwLCAidmFsdWUiOiAwLjA1NDI2OTYxNTU2MDc3MDAzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODM1LjU3NTU3LCAic3RlcCI6IDMzMzAsICJ2YWx1ZSI6IDAuMDc3ODAyODUxNzk2MTUwMjF9LCB7IndhbGxUaW1lIjogMTczMzA3MDg0My45NzU3MjgsICJzdGVwIjogMzM0MCwgInZhbHVlIjogMC4wNDc1NTUyNzE1MzYxMTE4M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwODUzLjA5MTkwMzcsICJzdGVwIjogMzM1MCwgInZhbHVlIjogMC4wNjc4MDEzODYxMTc5MzUxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODY1LjQxOTYxNywgInN0ZXAiOiAzMzYwLCAidmFsdWUiOiAwLjAzNzk2MzU0NjgxMjUzNDMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NzMuNjYxNzM0OCwgInN0ZXAiOiAzMzcwLCAidmFsdWUiOiAwLjA0NDYzNzQzNzkwOTg0MTU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4ODMuMzM2MDg3LCAic3RlcCI6IDMzODAsICJ2YWx1ZSI6IDAuMDM5NzYyOTk2MTM3MTQyMTh9LCB7IndhbGxUaW1lIjogMTczMzA3MDg5Mi4zNzcwNzAyLCAic3RlcCI6IDMzOTAsICJ2YWx1ZSI6IDAuMDQyOTI1MzA5Mzg5ODI5NjM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MDAuNzIyNDQxNCwgInN0ZXAiOiAzNDAwLCAidmFsdWUiOiAwLjA2MDE4NTg2ODI5MzA0Njk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MDguNTA0Mjg4LCAic3RlcCI6IDM0MTAsICJ2YWx1ZSI6IDAuMDM1MDUwODg3NjE0NDg4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTE2LjY1NTg1ODUsICJzdGVwIjogMzQyMCwgInZhbHVlIjogMC4wNTIyNTI0MzA0Njg3OTc2ODR9LCB7IndhbGxUaW1lIjogMTczMzA3MDkyNS4yMTA0OTI4LCAic3RlcCI6IDM0MzAsICJ2YWx1ZSI6IDAuMDQzMDA4NzkzMTQ1NDE4MTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDkzMy44MTAzNjg1LCAic3RlcCI6IDM0NDAsICJ2YWx1ZSI6IDAuMDQ0ODU0ODEyMzI0MDQ3MDl9LCB7IndhbGxUaW1lIjogMTczMzA3MDk0Ny40Nzk5MDM1LCAic3RlcCI6IDM0NTAsICJ2YWx1ZSI6IDAuMDQxODA4Mzc3OTUxMzgzNTl9LCB7IndhbGxUaW1lIjogMTczMzA3MDk1Ni4xODc1Njg0LCAic3RlcCI6IDM0NjAsICJ2YWx1ZSI6IDAuMDM3NTkyMzE0MTgzNzEyMDA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NjQuMjY2NDIzMiwgInN0ZXAiOiAzNDcwLCAidmFsdWUiOiAwLjEyODc0ODU1MTAxMTA4NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDk3Mi4zODYyNDE0LCAic3RlcCI6IDM0ODAsICJ2YWx1ZSI6IDAuMDQ2ODYxMzk1MjM5ODMwMDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDk4MC42NDcyMTgsICJzdGVwIjogMzQ5MCwgInZhbHVlIjogMC4wNTMzNTkzNDQ2MDE2MzExNjV9LCB7IndhbGxUaW1lIjogMTczMzA3MDk4OS42ODc4NTk4LCAic3RlcCI6IDM1MDAsICJ2YWx1ZSI6IDAuMDQyNTI2NjMyNTQ3Mzc4NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDk5Ny43ODg4MTQsICJzdGVwIjogMzUxMCwgInZhbHVlIjogMC4wNjU5NDQzMjE0NTM1NzEzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDA2LjI3MTU1NDcsICJzdGVwIjogMzUyMCwgInZhbHVlIjogMC4wNzc4OTM1NTUxNjQzMzcxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDE4Ljg5NjIzNSwgInN0ZXAiOiAzNTMwLCAidmFsdWUiOiAwLjA1MjMxNDA0Njc3MDMzNDI0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDI3LjE5NzM3ODksICJzdGVwIjogMzU0MCwgInZhbHVlIjogMC4wMjc0ODMyODgxOTg3MDk0ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MTAzNS4zMjA3ODA4LCAic3RlcCI6IDM1NTAsICJ2YWx1ZSI6IDAuMDU3MDA4MzcwNzU3MTAyOTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNDMuNzQ1OTM5NSwgInN0ZXAiOiAzNTYwLCAidmFsdWUiOiAwLjA0Mjg3MTMxODc1NzUzNDAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNTEuODcyMzQzNSwgInN0ZXAiOiAzNTcwLCAidmFsdWUiOiAwLjA1ODg4OTY3OTYxMDcyOTIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNjAuNDk2MzQyNCwgInN0ZXAiOiAzNTgwLCAidmFsdWUiOiAwLjA1MTQyMDIxNTUxNzI4MjQ4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDY4Ljg3OTY3MSwgInN0ZXAiOiAzNTkwLCAidmFsdWUiOiAwLjA1OTAzNjc3NjQyMzQ1NDI4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDc3LjcxMzE0NSwgInN0ZXAiOiAzNjAwLCAidmFsdWUiOiAwLjA0ODc1MzkyNDY2NzgzNTIzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDg2LjIxMjYzOSwgInN0ZXAiOiAzNjEwLCAidmFsdWUiOiAwLjA0NTczNDYxNDEzMzgzNDg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMDEuNjU4OTk1NCwgInN0ZXAiOiAzNjIwLCAidmFsdWUiOiAwLjA1MjU3MDI1NzMzNTkwMTI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMDkuNjIxODE3OCwgInN0ZXAiOiAzNjMwLCAidmFsdWUiOiAwLjA1Nzk2MjcxNTYyNTc2Mjk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMTguMTI5NTM5LCAic3RlcCI6IDM2NDAsICJ2YWx1ZSI6IDAuMDQ4ODg4NzQyOTIzNzM2NTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTEyNi45OTM0MzQyLCAic3RlcCI6IDM2NTAsICJ2YWx1ZSI6IDAuMDQyMDA3MjE1MzIxMDYzOTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMzUuODI3NzIyNSwgInN0ZXAiOiAzNjYwLCAidmFsdWUiOiAwLjA1NTI0MTE3ODcyMTE4OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTE0NC4yNDg2MzcyLCAic3RlcCI6IDM2NzAsICJ2YWx1ZSI6IDAuMDQ5OTc1MzEzMjQ2MjUwMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTE1Mi45NjQ3MjE3LCAic3RlcCI6IDM2ODAsICJ2YWx1ZSI6IDAuMDQwMTM4ODUxODUxMjI0OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTYwLjYwMzczMTYsICJzdGVwIjogMzY5MCwgInZhbHVlIjogMC4wNDYxNTMxMjgxNDcxMjUyNDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTE3My43NTA1NzY1LCAic3RlcCI6IDM3MDAsICJ2YWx1ZSI6IDAuMDQ1MDM0MzExNzExNzg4MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MTE4Mi44ODM1NDUsICJzdGVwIjogMzcxMCwgInZhbHVlIjogMC4wMzY1MzEwNDYwMzI5MDU1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTkxLjIxMDQxMDYsICJzdGVwIjogMzcyMCwgInZhbHVlIjogMC4wNzQ5MjAzNzExNzQ4MTIzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjAwLjMzMzcyMjYsICJzdGVwIjogMzczMCwgInZhbHVlIjogMC4wMzExMTk3MzQwNDg4NDMzODR9LCB7IndhbGxUaW1lIjogMTczMzA3MTIwOC4zNjYwMTM1LCAic3RlcCI6IDM3NDAsICJ2YWx1ZSI6IDAuMDMxNDExMTc4NDEwMDUzMjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTIxNi41NzIyMTEzLCAic3RlcCI6IDM3NTAsICJ2YWx1ZSI6IDAuMDY1MDY4NzU5MDI0MTQzMjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTIyNC42NjIxODc4LCAic3RlcCI6IDM3NjAsICJ2YWx1ZSI6IDAuMDMwMjQ2NTE4NTUyMzAzMzE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMzIuODYxMDY0MiwgInN0ZXAiOiAzNzcwLCAidmFsdWUiOiAwLjA3NjYyNTM2MjAzODYxMjM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNDguNTMzODI1LCAic3RlcCI6IDM3ODAsICJ2YWx1ZSI6IDAuMDM1OTkwNzY3MTgwOTE5NjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTI1Ny4zOTIwNzcyLCAic3RlcCI6IDM3OTAsICJ2YWx1ZSI6IDAuMDQzNjE5OTI3MDE4ODgwODQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNjUuNTY3NjI5OCwgInN0ZXAiOiAzODAwLCAidmFsdWUiOiAwLjA0MDg4MTU3Nzg3OTE5MDQ0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjc0LjE5ODQyMjIsICJzdGVwIjogMzgxMCwgInZhbHVlIjogMC4wNDM2MzAzMTY4NTM1MjMyNTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTI4My4wMTgyNzM4LCAic3RlcCI6IDM4MjAsICJ2YWx1ZSI6IDAuMDQxODYyMzk4Mzg2MDAxNTl9LCB7IndhbGxUaW1lIjogMTczMzA3MTI5MS43MzAxMjUsICJzdGVwIjogMzgzMCwgInZhbHVlIjogMC4wMzczNDAwMTg4OTgyNDg2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjk5Ljg5NDI4NjksICJzdGVwIjogMzg0MCwgInZhbHVlIjogMC4wNDQ1MTEzNTE3MzQzOTk3OTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTMwOC40Nzk4NTksICJzdGVwIjogMzg1MCwgInZhbHVlIjogMC4wNTcxNTMyNDcyOTY4MTAxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzE2Ljk1MTk2ODIsICJzdGVwIjogMzg2MCwgInZhbHVlIjogMC4wNTMzMjUzMTAzNDk0NjQ0MTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTMzMC4yMTU2ODA0LCAic3RlcCI6IDM4NzAsICJ2YWx1ZSI6IDAuMDU0NjkzNDAwODU5ODMyNzY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMzguOTg5Mzc0LCAic3RlcCI6IDM4ODAsICJ2YWx1ZSI6IDAuMDUzODQ0MzYyNDk3MzI5NzF9LCB7IndhbGxUaW1lIjogMTczMzA3MTM0Ny43MzczMDczLCAic3RlcCI6IDM4OTAsICJ2YWx1ZSI6IDAuMDM0MzE2Njg4Nzc2MDE2MjM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNTcuMDM1MjI1NCwgInN0ZXAiOiAzOTAwLCAidmFsdWUiOiAwLjAzODc0MzQ3NzMxNDcxMDYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNjUuMjI1OTg5NiwgInN0ZXAiOiAzOTEwLCAidmFsdWUiOiAwLjA4MDUzMDUwOTM1MjY4NDAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNzQuMTM1MjQ4MiwgInN0ZXAiOiAzOTIwLCAidmFsdWUiOiAwLjA1OTIxOTAzOTk3NjU5NjgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzODIuODE0NDYzOSwgInN0ZXAiOiAzOTMwLCAidmFsdWUiOiAwLjA2MjI1NTUwMTc0NzEzMTM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzOTEuNTY5MDMyLCAic3RlcCI6IDM5NDAsICJ2YWx1ZSI6IDAuMDM5NTkzMTAwNTQ3NzkwNTN9LCB7IndhbGxUaW1lIjogMTczMzA3MTQwNC40Njc5ODIzLCAic3RlcCI6IDM5NTAsICJ2YWx1ZSI6IDAuMDM0MDUxMDY4MTI3MTU1MzA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MTIuMzM5NTYyMiwgInN0ZXAiOiAzOTYwLCAidmFsdWUiOiAwLjAzNzE2MjA1NDMzMDExMDU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MjEuMTU4MjE2NywgInN0ZXAiOiAzOTcwLCAidmFsdWUiOiAwLjA1MTY5NTI3NjA1MTc1OTcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MzAuMTIxMjQ0LCAic3RlcCI6IDM5ODAsICJ2YWx1ZSI6IDAuMDQwNjI2MzM1ODg5MTAxMDN9LCB7IndhbGxUaW1lIjogMTczMzA3MTQzOC40MTQ3MzQ4LCAic3RlcCI6IDM5OTAsICJ2YWx1ZSI6IDAuMDU1MzY3NjQ0ODc2MjQxNjg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NDcuNzI5NTcwNCwgInN0ZXAiOiA0MDAwLCAidmFsdWUiOiAwLjAyOTU0NjM1Mzk2NTk5NzY5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDU2LjE5NzMwODMsICJzdGVwIjogNDAxMCwgInZhbHVlIjogMC4wOTQxMzQ4MzczODg5OTIzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDY0Ljc1MDE5OTYsICJzdGVwIjogNDAyMCwgInZhbHVlIjogMC4wNDk5ODAzMjAwMzY0MTEyODV9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ3My4zOTgyNzMyLCAic3RlcCI6IDQwMzAsICJ2YWx1ZSI6IDAuMDQ0NTg0ODg4OTY0ODkxNDM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0OTAuMjg3MTI5OSwgInN0ZXAiOiA0MDQwLCAidmFsdWUiOiAwLjA1MzQ1NzY1ODczNzg5Nzg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0OTguNzEyNDYzMSwgInN0ZXAiOiA0MDUwLCAidmFsdWUiOiAwLjA1MjA1ODIwODczMzc5NzA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MDcuMDk4MzM2LCAic3RlcCI6IDQwNjAsICJ2YWx1ZSI6IDAuMDM2NTU2MTczMTE1OTY4NzA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MTUuMDY4NTg5LCAic3RlcCI6IDQwNzAsICJ2YWx1ZSI6IDAuMDc1NTkyNzg2MDczNjg0Njl9LCB7IndhbGxUaW1lIjogMTczMzA3MTUyMy44ODE5NzE2LCAic3RlcCI6IDQwODAsICJ2YWx1ZSI6IDAuMDM1OTQzNjc5NTExNTQ3MDl9LCB7IndhbGxUaW1lIjogMTczMzA3MTUzMi4yODYzOTQxLCAic3RlcCI6IDQwOTAsICJ2YWx1ZSI6IDAuMDQ1MDY3MzUxMzExNDQ1MjM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NDAuOTE4NTExLCAic3RlcCI6IDQxMDAsICJ2YWx1ZSI6IDAuMDMyNzYwNzQzMDUxNzY3MzV9LCB7IndhbGxUaW1lIjogMTczMzA3MTU0OS4xNzcxMTU3LCAic3RlcCI6IDQxMTAsICJ2YWx1ZSI6IDAuMDM0MzUzNDUzNjY1OTcxNzU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NjUuODM3MDA0MiwgInN0ZXAiOiA0MTIwLCAidmFsdWUiOiAwLjAzMjczODkyNzc1MTc3OTU1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTczLjYzMjcxODYsICJzdGVwIjogNDEzMCwgInZhbHVlIjogMC4wMzcwODE3NzgwNDk0Njg5OTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTU4Mi4wOTcyODg0LCAic3RlcCI6IDQxNDAsICJ2YWx1ZSI6IDAuMDU4NjI0NDQ2MzkyMDU5MzI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1OTAuMDIzODU1NywgInN0ZXAiOiA0MTUwLCAidmFsdWUiOiAwLjA1Mzg2NjY5OTMzNzk1OTI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1OTkuMjQyMTg3LCAic3RlcCI6IDQxNjAsICJ2YWx1ZSI6IDAuMDM1Nzc4ODcyNjY4NzQzMTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2MDguMDcyOTgzNywgInN0ZXAiOiA0MTcwLCAidmFsdWUiOiAwLjA0NTEwMjA4MjE5Mjg5Nzh9LCB7IndhbGxUaW1lIjogMTczMzA3MTYxNi4xODUxMjk2LCAic3RlcCI6IDQxODAsICJ2YWx1ZSI6IDAuMDg1Mzg0Nzg2MTI4OTk3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjI2LjA4NDE2OCwgInN0ZXAiOiA0MTkwLCAidmFsdWUiOiAwLjAzMzIwOTYyOTM1Njg2MTExNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjQxLjAwOTUxNDgsICJzdGVwIjogNDIwMCwgInZhbHVlIjogMC4wNDUwNDcxMzQxNjA5OTU0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjQ5LjA0MjEwNDIsICJzdGVwIjogNDIxMCwgInZhbHVlIjogMC4wNTc3NTcxNjE1NTc2NzQ0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjU4LjUzMjgzOTgsICJzdGVwIjogNDIyMCwgInZhbHVlIjogMC4wNTgwMTc5ODQwMzI2MzA5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjY3Ljk2NzQ5ODMsICJzdGVwIjogNDIzMCwgInZhbHVlIjogMC4wMzE4MDY3ODE4ODgwMDgxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjc2LjExMDI0MzMsICJzdGVwIjogNDI0MCwgInZhbHVlIjogMC4wMzM3NjA1NTg4MTM4MTAzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjg0LjM4MDA0OSwgInN0ZXAiOiA0MjUwLCAidmFsdWUiOiAwLjA1NTYyMDA0MDc0NDU0MzA3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjkzLjExMTEzNTIsICJzdGVwIjogNDI2MCwgInZhbHVlIjogMC4wMjY4NjU2MTI3MTU0ODI3MTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTcwMi4xODUzOTEyLCAic3RlcCI6IDQyNzAsICJ2YWx1ZSI6IDAuMDU4MjgzMDIzNTM2MjA1Mjl9LCB7IndhbGxUaW1lIjogMTczMzA3MTcxMC42MzIxNjY2LCAic3RlcCI6IDQyODAsICJ2YWx1ZSI6IDAuMDMwMTI5OTg3NzQ2NDc3MTI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MjYuNjc4MjUsICJzdGVwIjogNDI5MCwgInZhbHVlIjogMC4wNDQxNzEyMTQxMDM2OTg3M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzM1LjIxNzA5MDgsICJzdGVwIjogNDMwMCwgInZhbHVlIjogMC4wNTAwNzUyOTYzMTI1NzA1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzQyLjk1ODU4OCwgInN0ZXAiOiA0MzEwLCAidmFsdWUiOiAwLjA0ODM3MzAxMzczNDgxNzUwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzUxLjU4NzIyMiwgInN0ZXAiOiA0MzIwLCAidmFsdWUiOiAwLjAzOTM4MzQ0MTIwOTc5MzA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NjAuMDM2NDIyNywgInN0ZXAiOiA0MzMwLCAidmFsdWUiOiAwLjAzNDk3OTc3MTgyMjY5MDk2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzY4LjQzMjg1LCAic3RlcCI6IDQzNDAsICJ2YWx1ZSI6IDAuMDQ0MjczMDIyNTYyMjY1Mzk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NzcuNDAzNzM3NSwgInN0ZXAiOiA0MzUwLCAidmFsdWUiOiAwLjA1ODI3MDE3MTI4NDY3NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTc4NS41NDg4NTY1LCAic3RlcCI6IDQzNjAsICJ2YWx1ZSI6IDAuMDU4MDI3NjQ3NDM1NjY1MTN9LCB7IndhbGxUaW1lIjogMTczMzA3MTgwMC44ODYzNDYzLCAic3RlcCI6IDQzNzAsICJ2YWx1ZSI6IDAuMDQ5MTcxMDMwNTIxMzkyODJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTgwOS4yNjczNzI4LCAic3RlcCI6IDQzODAsICJ2YWx1ZSI6IDAuMDQzMzk1MTA5NDc0NjU4OTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MTcuMzQ3OTU5LCAic3RlcCI6IDQzOTAsICJ2YWx1ZSI6IDAuMDg2NDMxMzE3MDMxMzgzNTF9LCB7IndhbGxUaW1lIjogMTczMzA3MTgyNi40MzE5ODM3LCAic3RlcCI6IDQ0MDAsICJ2YWx1ZSI6IDAuMDU0MTc5NDUyMzU5Njc2MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTgzNC44ODkxNDE2LCAic3RlcCI6IDQ0MTAsICJ2YWx1ZSI6IDAuMDU0ODQ0NTYxOTY0MjczNDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTg0My40NDg0MTY1LCAic3RlcCI6IDQ0MjAsICJ2YWx1ZSI6IDAuMDY1ODQ0ODExNDk5MTE4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODUxLjU5NzU2MzUsICJzdGVwIjogNDQzMCwgInZhbHVlIjogMC4wMzk4MzQzNDI4OTY5MzgzMjR9LCB7IndhbGxUaW1lIjogMTczMzA3MTg1OS45MjU3NTI5LCAic3RlcCI6IDQ0NDAsICJ2YWx1ZSI6IDAuMDMzNjIyNjk2OTk1NzM1MTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTg2OC42NzQ3ODI4LCAic3RlcCI6IDQ0NTAsICJ2YWx1ZSI6IDAuMDUwMTUxNDAzOTkzMzY4MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTg4MS4zMzc2OTMsICJzdGVwIjogNDQ2MCwgInZhbHVlIjogMC4wMzc0NTY5NDQ1ODQ4NDY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4ODkuNjM4NjIxLCAic3RlcCI6IDQ0NzAsICJ2YWx1ZSI6IDAuMDQ5Nzg2NTg2MzE0NDM5Nzc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4OTguNDIyMzY1NywgInN0ZXAiOiA0NDgwLCAidmFsdWUiOiAwLjAzOTcyMjc3MDQ1MjQ5OTM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5MDcuMzM3NTU3LCAic3RlcCI6IDQ0OTAsICJ2YWx1ZSI6IDAuMDU0Mjk4MTMyNjU4MDA0NzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTkxNi4yNzk3Mzk5LCAic3RlcCI6IDQ1MDAsICJ2YWx1ZSI6IDAuMDUzMzQ5MzUzMzczMDUwNjl9LCB7IndhbGxUaW1lIjogMTczMzA3MTkyNS4zNTAyMDgsICJzdGVwIjogNDUxMCwgInZhbHVlIjogMC4wNTI0NTUwMDgwMjk5Mzc3NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTkzMy4zMzA5MDM4LCAic3RlcCI6IDQ1MjAsICJ2YWx1ZSI6IDAuMDc3NzU0MTE3NTQ4NDY1NzN9LCB7IndhbGxUaW1lIjogMTczMzA3MTk0MS40ODQxODk1LCAic3RlcCI6IDQ1MzAsICJ2YWx1ZSI6IDAuMDQyNDc3NDQwMDg4OTg3MzV9LCB7IndhbGxUaW1lIjogMTczMzA3MTk1NC4xNzA0MzI2LCAic3RlcCI6IDQ1NDAsICJ2YWx1ZSI6IDAuMDMyOTU2MDAwNDE3NDcwOTN9LCB7IndhbGxUaW1lIjogMTczMzA3MTk2Mi4zOTcyNzAyLCAic3RlcCI6IDQ1NTAsICJ2YWx1ZSI6IDAuMDM3NTQ0ODUzOTg1MzA5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTcwLjUxNDgwMzQsICJzdGVwIjogNDU2MCwgInZhbHVlIjogMC4wNTM1OTUzODY0NDU1MjIzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTc4Ljg3MTM5MDYsICJzdGVwIjogNDU3MCwgInZhbHVlIjogMC4wMzkwOTkzNjE3NDc1MDMyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTg3LjcxMTkyNTcsICJzdGVwIjogNDU4MCwgInZhbHVlIjogMC4wNzAyMjA0MzMxNzU1NjM4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTk2LjQ0NjM2OTYsICJzdGVwIjogNDU5MCwgInZhbHVlIjogMC4wNjU4NTQ1NjQzMDkxMjAxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDA0LjQ3NzM2NjQsICJzdGVwIjogNDYwMCwgInZhbHVlIjogMC4wMjQxNDM2MTc2MDAyMDI1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDEyLjc0NjE1OCwgInN0ZXAiOiA0NjEwLCAidmFsdWUiOiAwLjA0MzI5OTQyMTY2ODA1MjY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMjUuNDAxNTU4LCAic3RlcCI6IDQ2MjAsICJ2YWx1ZSI6IDAuMDU3OTQ0MzM1MDQzNDMwMzN9LCB7IndhbGxUaW1lIjogMTczMzA3MjAzNC4xMTk1OTQsICJzdGVwIjogNDYzMCwgInZhbHVlIjogMC4wMzEwNTc0NzUxMzQ3MzAzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDQzLjAzOTExNDcsICJzdGVwIjogNDY0MCwgInZhbHVlIjogMC4wNTAzMjgwNjA5ODQ2MTE1MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDUxLjc4NzM0OTUsICJzdGVwIjogNDY1MCwgInZhbHVlIjogMC4wMzg4MDM2MzcwMjc3NDA0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDYwLjEwOTM2MjgsICJzdGVwIjogNDY2MCwgInZhbHVlIjogMC4wNjAwMjU1NzI3NzY3OTQ0MzR9LCB7IndhbGxUaW1lIjogMTczMzA3MjA2OC42MDQxNTQsICJzdGVwIjogNDY3MCwgInZhbHVlIjogMC4wNjA1NTYyNjI3MzE1NTIxMjR9LCB7IndhbGxUaW1lIjogMTczMzA3MjA3Ni44Mzc1NDU5LCAic3RlcCI6IDQ2ODAsICJ2YWx1ZSI6IDAuMDUxNzMzMzg1NzcxNTEyOTg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwODUuMzc2OTQ1MywgInN0ZXAiOiA0NjkwLCAidmFsdWUiOiAwLjAzMzAwMTMyMjI5OTI0MjAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwOTMuNzQ5NDA2NiwgInN0ZXAiOiA0NzAwLCAidmFsdWUiOiAwLjA0Njk5MzAyNDY0NzIzNTg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMDYuOTkwNTE3OSwgInN0ZXAiOiA0NzEwLCAidmFsdWUiOiAwLjA1NTY3NTgzNDQxNzM0MzE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMTUuNjY2MDMxOCwgInN0ZXAiOiA0NzIwLCAidmFsdWUiOiAwLjA2MTYwNzY1NTEzNzc3NzMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMjMuOTUxNDMzNywgInN0ZXAiOiA0NzMwLCAidmFsdWUiOiAwLjA2MTg4NjIwMjU0Mzk3MzkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMzIuMjgxNDc3NSwgInN0ZXAiOiA0NzQwLCAidmFsdWUiOiAwLjA0MjM3MDM3NTI0NTgwOTU1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTQwLjQyMTQ1OTIsICJzdGVwIjogNDc1MCwgInZhbHVlIjogMC4wODQyMzYwMjU4MTAyNDE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNDkuMDg3OTU0NSwgInN0ZXAiOiA0NzYwLCAidmFsdWUiOiAwLjAzMjY3NTkyOTM2NzU0MjI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNTcuNDEyNjYyMywgInN0ZXAiOiA0NzcwLCAidmFsdWUiOiAwLjA0MTk4NzA1NDA0OTk2ODcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNjUuNDkwMTEyMywgInN0ZXAiOiA0NzgwLCAidmFsdWUiOiAwLjA2OTgyNjkwODQwOTU5NTQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNzkuNjUwNDc2LCAic3RlcCI6IDQ3OTAsICJ2YWx1ZSI6IDAuMDQzMzQwODY1NTIyNjIzMDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjE4OC4zMzA0NDYsICJzdGVwIjogNDgwMCwgInZhbHVlIjogMC4wMzg2MjIzNjgxMjcxMDc2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTk2Ljg0NzgwOCwgInN0ZXAiOiA0ODEwLCAidmFsdWUiOiAwLjA1MDI1MzM4MDA4OTk5ODI0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjA0LjU2MzA3MjQsICJzdGVwIjogNDgyMCwgInZhbHVlIjogMC4wNDY2NzUzNzI4Njg3NzYzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjEzLjEwMDQxNzYsICJzdGVwIjogNDgzMCwgInZhbHVlIjogMC4wMjcxMzA3NDE2MjYwMjQyNDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjIyMS42Njc4Nzc0LCAic3RlcCI6IDQ4NDAsICJ2YWx1ZSI6IDAuMDMxMjY2ODY4MTE0NDcxNDM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMjkuODk0ODMyLCAic3RlcCI6IDQ4NTAsICJ2YWx1ZSI6IDAuMDM0MzU4MzU2MTQ4MDA0NTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjIzOC4wNTcwMjczLCAic3RlcCI6IDQ4NjAsICJ2YWx1ZSI6IDAuMDQ3ODE0MzAyMTQ2NDM0Nzg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNDYuMzQ0Mzg1NCwgInN0ZXAiOiA0ODcwLCAidmFsdWUiOiAwLjAzMzg3NjI0Mzk3ODczODc4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjYxLjI2ODE4MTYsICJzdGVwIjogNDg4MCwgInZhbHVlIjogMC4wNDMxNzg2ODg3MzQ3Njk4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjY5Ljg1MzUxMzIsICJzdGVwIjogNDg5MCwgInZhbHVlIjogMC4wNDc1NzUxMjM2MDgxMTIzMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MjI3OC44ODExODg0LCAic3RlcCI6IDQ5MDAsICJ2YWx1ZSI6IDAuMDQ0MjkxNjIyOTM2NzI1NjE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyODcuNTM1MzQ4NCwgInN0ZXAiOiA0OTEwLCAidmFsdWUiOiAwLjAzNzc1NTAzMTEzODY1ODUyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjk1Ljk0ODE1OSwgInN0ZXAiOiA0OTIwLCAidmFsdWUiOiAwLjA0MzY5NDk5MTYxODM5NDg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMDQuMzU2MjU3NywgInN0ZXAiOiA0OTMwLCAidmFsdWUiOiAwLjA2NDMzNDM5MjU0NzYwNzQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMTMuNTEwNzg2MywgInN0ZXAiOiA0OTQwLCAidmFsdWUiOiAwLjAzODIzNjEwMDIyNjY0MDd9LCB7IndhbGxUaW1lIjogMTczMzA3MjMyMS4zMjYyOTksICJzdGVwIjogNDk1MCwgInZhbHVlIjogMC4wNDI4MzgyOTAzMzM3NDc4NjR9LCB7IndhbGxUaW1lIjogMTczMzA3MjMzNy4wMjU5MjU5LCAic3RlcCI6IDQ5NjAsICJ2YWx1ZSI6IDAuMDM4NzMyODkwMDM5NjgyMzl9LCB7IndhbGxUaW1lIjogMTczMzA3MjM0NS41MzM1MDAyLCAic3RlcCI6IDQ5NzAsICJ2YWx1ZSI6IDAuMDMxNDcyMDAxMjI0NzU2MjR9LCB7IndhbGxUaW1lIjogMTczMzA3MjM1My40MzA3NDA4LCAic3RlcCI6IDQ5ODAsICJ2YWx1ZSI6IDAuMDMwOTM5NDE4ODIyNTI2OTMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNjIuNDE0MjU1NCwgInN0ZXAiOiA0OTkwLCAidmFsdWUiOiAwLjA1NDQwNjE1NDkwMDc4OTI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNzEuNzQ2OTczOCwgInN0ZXAiOiA1MDAwLCAidmFsdWUiOiAwLjA2NDA4NjYwODU4ODY5NTUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzODAuNTMwNjkxNiwgInN0ZXAiOiA1MDEwLCAidmFsdWUiOiAwLjAzNTkwOTI1NzgyOTE4OTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjM4OS4wMjc0OTE2LCAic3RlcCI6IDUwMjAsICJ2YWx1ZSI6IDAuMDUzMDIxODcwNTUzNDkzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzk3Ljc4NjU4OSwgInN0ZXAiOiA1MDMwLCAidmFsdWUiOiAwLjAzNzQ1NjcxMzYxNjg0Nzk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MTEuMjk5MzgxNywgInN0ZXAiOiA1MDQwLCAidmFsdWUiOiAwLjA1NDY2OTY2MzMxMDA1MDk2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDE5LjQ3NTM2NDIsICJzdGVwIjogNTA1MCwgInZhbHVlIjogMC4wNDUwNTk2MjEzMzQwNzU5M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDI4LjM3MzI5NywgInN0ZXAiOiA1MDYwLCAidmFsdWUiOiAwLjA1NDUwMzIxMzYxNDIyNTM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MzcuMTE3ODY0MSwgInN0ZXAiOiA1MDcwLCAidmFsdWUiOiAwLjA2MTIyMTc3ODM5Mjc5MTc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NDYuMTc2Mjk2NywgInN0ZXAiOiA1MDgwLCAidmFsdWUiOiAwLjA2MjcyNDQ2MzY0MTY0MzUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NTQuNDI5Njc4LCAic3RlcCI6IDUwOTAsICJ2YWx1ZSI6IDAuMDQ4NjM2NzQxOTM2MjA2ODJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ2Mi40MTE2MTQsICJzdGVwIjogNTEwMCwgInZhbHVlIjogMC4wNTQ1MDg3NjQyOTY3NzAwOTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ3MS4xNTE1ODM3LCAic3RlcCI6IDUxMTAsICJ2YWx1ZSI6IDAuMDM1MDI0MTEzOTUzMTEzNTU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NzguOTQ3NzY3MywgInN0ZXAiOiA1MTIwLCAidmFsdWUiOiAwLjAzNTczNzI3MjM1MTk4MDIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0OTEuMzIyNzE0OCwgInN0ZXAiOiA1MTMwLCAidmFsdWUiOiAwLjA1ODM3MTI0MjEzNTc2MzE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0OTkuMjU5ODI0OCwgInN0ZXAiOiA1MTQwLCAidmFsdWUiOiAwLjAzMDE1NDUzMzY4NDI1MzY5M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTA3LjExMzE0LCAic3RlcCI6IDUxNTAsICJ2YWx1ZSI6IDAuMDUwNTY1NTU1NjkxNzE5MDU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MTUuMzE4MzQ1NSwgInN0ZXAiOiA1MTYwLCAidmFsdWUiOiAwLjAzMjM2NjM3MjY0NDkwMTI3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTIzLjUxNzc3MSwgInN0ZXAiOiA1MTcwLCAidmFsdWUiOiAwLjAzNjgzMDg3OTc0Nzg2NzU4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTMxLjA4ODMzMzgsICJzdGVwIjogNTE4MCwgInZhbHVlIjogMC4wMzAyNzY2ODIyMjc4NDk5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTQwLjAyNDE0MDEsICJzdGVwIjogNTE5MCwgInZhbHVlIjogMC4wMzYzMzc4NjczNzkxODg1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTQ4LjY1NDMxMDUsICJzdGVwIjogNTIwMCwgInZhbHVlIjogMC4wMzM0NTg1MTk3MjY5OTE2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTYxLjQxNzQ4NjIsICJzdGVwIjogNTIxMCwgInZhbHVlIjogMC4wNjAwNzE0MjM2NDk3ODc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NjkuODk4NTI0LCAic3RlcCI6IDUyMjAsICJ2YWx1ZSI6IDAuMDQ2OTAxOTkzNDUzNTAyNjU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NzguNjgxMTQ2NCwgInN0ZXAiOiA1MjMwLCAidmFsdWUiOiAwLjA1NTE5NDQ0MTIyOTEwNDk5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTg2Ljk0NDQyNzUsICJzdGVwIjogNTI0MCwgInZhbHVlIjogMC4wMzgzMzEyNTkwNDIwMjQ2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTk1LjAzNTQzNjQsICJzdGVwIjogNTI1MCwgInZhbHVlIjogMC4wNjIyODAyOTcyNzkzNTc5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjAzLjE3NDU1NzQsICJzdGVwIjogNTI2MCwgInZhbHVlIjogMC4wNjA1NTk3NTMzMjg1NjE3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjExLjA4MTY5NjcsICJzdGVwIjogNTI3MCwgInZhbHVlIjogMC4wOTI0NTQ3NzYxNjc4Njk1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjE5Ljk1NzA2NDksICJzdGVwIjogNTI4MCwgInZhbHVlIjogMC4wMzUzNzg1MjY4OTYyMzgzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjI4LjYzNTYzNTYsICJzdGVwIjogNTI5MCwgInZhbHVlIjogMC4wMzI4MDIxOTgwODIyMDg2M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjQxLjM3NjY1NSwgInN0ZXAiOiA1MzAwLCAidmFsdWUiOiAwLjAzMjE5NzE0Mzg4MjUxMzA0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjQ5Ljg1OTUyNDMsICJzdGVwIjogNTMxMCwgInZhbHVlIjogMC4wNDMwODk1MTY0NjA4OTU1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjU3Ljk3MjM3OSwgInN0ZXAiOiA1MzIwLCAidmFsdWUiOiAwLjA0NzczNzAyNDcyNDQ4MzQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NjcuMDMwNTY1NywgInN0ZXAiOiA1MzMwLCAidmFsdWUiOiAwLjA0Njk3MTc1MzIzOTYzMTY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NzUuOTQ0MTM2NiwgInN0ZXAiOiA1MzQwLCAidmFsdWUiOiAwLjAzMjE3NzI1ODI4Mjg5OTg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2ODQuMjM5NTAxNywgInN0ZXAiOiA1MzUwLCAidmFsdWUiOiAwLjA1MDYxMzgzNTQ1Mzk4NzEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2OTEuODU5MjIzMSwgInN0ZXAiOiA1MzYwLCAidmFsdWUiOiAwLjAzNTkwMTk0MTM1OTA0MzEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MDAuMTQ5MDc5LCAic3RlcCI6IDUzNzAsICJ2YWx1ZSI6IDAuMDQ4NzE4NDk3MTU3MDk2ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjcxMy4xODQxMzc4LCAic3RlcCI6IDUzODAsICJ2YWx1ZSI6IDAuMDQ1NzYzNTM3Mjg3NzEyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzIxLjAyNTc5NzQsICJzdGVwIjogNTM5MCwgInZhbHVlIjogMC4wMzk2NjMwMjQyNDY2OTI2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzI5Ljg3ODAyNzIsICJzdGVwIjogNTQwMCwgInZhbHVlIjogMC4wNTAzMTU3MDQxOTY2OTE1MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzM4LjM3MTcyOTYsICJzdGVwIjogNTQxMCwgInZhbHVlIjogMC4wNDY0OTQxNzEwMjMzNjg4MzV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc0Ni4zODM3NzMsICJzdGVwIjogNTQyMCwgInZhbHVlIjogMC4wMzY2Njg4NjY4NzI3ODc0NzZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc1NC42MTg3MTY3LCAic3RlcCI6IDU0MzAsICJ2YWx1ZSI6IDAuMDQwNzI4MTkyNzc2NDQxNTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3NjIuNTQ5MTM2LCAic3RlcCI6IDU0NDAsICJ2YWx1ZSI6IDAuMDQ2NzE4OTE3Nzg3MDc1MDR9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc3MS4zNjE3MSwgInN0ZXAiOiA1NDUwLCAidmFsdWUiOiAwLjA0MTk2Mzg3MTU2ODQ0MTM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3ODcuMTUyODEzNywgInN0ZXAiOiA1NDYwLCAidmFsdWUiOiAwLjA1MDkwMjYxMjUwNzM0MzI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3OTUuODAzOTI0MywgInN0ZXAiOiA1NDcwLCAidmFsdWUiOiAwLjA2MDE5MTE1MDc1NDY5MDE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MDQuMjQzMTM2LCAic3RlcCI6IDU0ODAsICJ2YWx1ZSI6IDAuMDMxMjAwOTM0MjAxNDc4OTU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MTIuMzc0MTcwNSwgInN0ZXAiOiA1NDkwLCAidmFsdWUiOiAwLjAzOTk0MTIxNDAyNTAyMDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjgyMS4xNjAyOTE3LCAic3RlcCI6IDU1MDAsICJ2YWx1ZSI6IDAuMDM3MjUyOTAyOTg0NjE5MTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjgzMC4wMjM3MjE3LCAic3RlcCI6IDU1MTAsICJ2YWx1ZSI6IDAuMDQzNzQ0NTc1MjMyMjY3Mzh9LCB7IndhbGxUaW1lIjogMTczMzA3MjgzOC42OTYxNzQ2LCAic3RlcCI6IDU1MjAsICJ2YWx1ZSI6IDAuMDQxMzA5NjMyMzYwOTM1MjF9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg0Ni45MDU5OSwgInN0ZXAiOiA1NTMwLCAidmFsdWUiOiAwLjAzNzU0NzQ5ODk0MTQyMTUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NTUuMjQ4NDAxOSwgInN0ZXAiOiA1NTQwLCAidmFsdWUiOiAwLjA1MDU4MTE1MzQ4MjE5ODcxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODcwLjY0NjQyNzIsICJzdGVwIjogNTU1MCwgInZhbHVlIjogMC4wNTI1NTAzNDE5MzM5NjU2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODc4LjczMTM4NCwgInN0ZXAiOiA1NTYwLCAidmFsdWUiOiAwLjAzOTYyNjA4NDI2ODA5MzExfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4ODYuNjEyNzQ4OSwgInN0ZXAiOiA1NTcwLCAidmFsdWUiOiAwLjA0OTkxNDkzNzQ2NjM4Mjk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4OTUuMDIyMjQ2NiwgInN0ZXAiOiA1NTgwLCAidmFsdWUiOiAwLjA0MjUwNTE4MjMyNTgzOTk5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTAzLjQwMzc5MSwgInN0ZXAiOiA1NTkwLCAidmFsdWUiOiAwLjAzODQxMzkyNjk1OTAzNzc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MTEuMjEwODQ2NCwgInN0ZXAiOiA1NjAwLCAidmFsdWUiOiAwLjAzODYzMTExNTEwODcyODQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MTkuODQwNzg5NiwgInN0ZXAiOiA1NjEwLCAidmFsdWUiOiAwLjAzNTM0Njg0MzMwMjI0OTkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MjguNzMzOTU2LCAic3RlcCI6IDU2MjAsICJ2YWx1ZSI6IDAuMDQ1NjA5OTczMzcxMDI4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTQxLjcwNDU0OSwgInN0ZXAiOiA1NjMwLCAidmFsdWUiOiAwLjA1MDg3NzU5MzQ1NzY5ODgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NDkuOTgwOTc2LCAic3RlcCI6IDU2NDAsICJ2YWx1ZSI6IDAuMDM4MjMyMDM1OTM0OTI1MDh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk1OC43MjE1MDM1LCAic3RlcCI6IDU2NTAsICJ2YWx1ZSI6IDAuMDkwODE0ODU4Njc1MDAzMDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk2Ni44MTYzNDU3LCAic3RlcCI6IDU2NjAsICJ2YWx1ZSI6IDAuMDQxNzI0NzM3NzMzNjAyNTI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NzQuOTYzNzk1LCAic3RlcCI6IDU2NzAsICJ2YWx1ZSI6IDAuMDM3MjAzMTU1NDU3OTczNDh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk4My41NjI4NTc5LCAic3RlcCI6IDU2ODAsICJ2YWx1ZSI6IDAuMDU5NjU5MTQ1NzcyNDU3MTJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk5Mi4yMzAxODUsICJzdGVwIjogNTY5MCwgInZhbHVlIjogMC4wMzQxODYzMjk2OTI2MDIxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDAwLjgxODA0MjUsICJzdGVwIjogNTcwMCwgInZhbHVlIjogMC4wMjU4MDkzNjYyNTU5OTg2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDA5Ljc4NDExNiwgInN0ZXAiOiA1NzEwLCAidmFsdWUiOiAwLjA2MjM5MDc3MDc2MzE1ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MzAyMi44NjkxMTIsICJzdGVwIjogNTcyMCwgInZhbHVlIjogMC4wNTE2NTg1NjcwNDExNTg2NzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzAzMS41MzYxMTE2LCAic3RlcCI6IDU3MzAsICJ2YWx1ZSI6IDAuMDM0OTc5OTAyMjA3ODUxNDF9LCB7IndhbGxUaW1lIjogMTczMzA3MzAzOS41NzI1MSwgInN0ZXAiOiA1NzQwLCAidmFsdWUiOiAwLjA1NjQxNzMxNjE5ODM0OX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDQ3Ljg0Mzc4NiwgInN0ZXAiOiA1NzUwLCAidmFsdWUiOiAwLjAzOTQ0ODg1NzMwNzQzNDA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNTYuMTU3NDA0NywgInN0ZXAiOiA1NzYwLCAidmFsdWUiOiAwLjAzMzU4NDQ2MDYxNjExMTc1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDY0Ljk1NTk2OTMsICJzdGVwIjogNTc3MCwgInZhbHVlIjogMC4wNTU3ODc5NzY4MzExOTc3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDczLjgzODU3NCwgInN0ZXAiOiA1NzgwLCAidmFsdWUiOiAwLjA1NDc3MjkwMjI4MDA5MjI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwODIuNzI1OTM5NSwgInN0ZXAiOiA1NzkwLCAidmFsdWUiOiAwLjAzNzQyNTA3MTAwMTA1Mjg1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDk1LjEwMzkxNSwgInN0ZXAiOiA1ODAwLCAidmFsdWUiOiAwLjA1NTAxOTI4OTI1NTE0MjIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMDMuMzE2NzEwNywgInN0ZXAiOiA1ODEwLCAidmFsdWUiOiAwLjAzNTY4NjIyODQyNDMxMDY4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTExLjk3MTU2MDcsICJzdGVwIjogNTgyMCwgInZhbHVlIjogMC4wMzE0NjIyMTQ4ODcxNDIxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTIwLjM1Nzc0NTQsICJzdGVwIjogNTgzMCwgInZhbHVlIjogMC4wNDY3NTQyNzgyNDI1ODgwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTI4LjIxMDE2MTIsICJzdGVwIjogNTg0MCwgInZhbHVlIjogMC4wNDYwNjUxNTkxNDIwMTczNjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzEzNi43MTY2MzM4LCAic3RlcCI6IDU4NTAsICJ2YWx1ZSI6IDAuMDM3NzMwMTY0ODI1OTE2Mjl9LCB7IndhbGxUaW1lIjogMTczMzA3MzE0NC45Mjg3NjcsICJzdGVwIjogNTg2MCwgInZhbHVlIjogMC4wNjgxMDYzODMwODUyNTA4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTUzLjA0Mjg1NzQsICJzdGVwIjogNTg3MCwgInZhbHVlIjogMC4wNDQxODgwNzQ3Njc1ODk1N30sIHsid2FsbFRpbWUiOiAxNzMzMDczMTY2LjAwNDA0MDIsICJzdGVwIjogNTg4MCwgInZhbHVlIjogMC4wNDcyOTU3MTE5MzQ1NjY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNzQuNjYwMDA4NCwgInN0ZXAiOiA1ODkwLCAidmFsdWUiOiAwLjA0MDIyODI0MDE5MTkzNjQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxODIuNTA5MjU5LCAic3RlcCI6IDU5MDAsICJ2YWx1ZSI6IDAuMDYzODUzNzYzMDQzODgwNDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzE5MS41NjA0OTIsICJzdGVwIjogNTkxMCwgInZhbHVlIjogMC4wMjc5MTExMDA1MzY1ODQ4NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzE5OS40MTMxNTc1LCAic3RlcCI6IDU5MjAsICJ2YWx1ZSI6IDAuMDU2MzQ3NDU5NTU0NjcyMjR9LCB7IndhbGxUaW1lIjogMTczMzA3MzIwNy40NjY0OTIyLCAic3RlcCI6IDU5MzAsICJ2YWx1ZSI6IDAuMDMzNjcwOTE3MTUzMzU4NDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzIxNS42MDM4ODE4LCAic3RlcCI6IDU5NDAsICJ2YWx1ZSI6IDAuMDM4MTgzOTA1MTg0MjY4OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzIyNC4zNTkxODAyLCAic3RlcCI6IDU5NTAsICJ2YWx1ZSI6IDAuMDMzNDQ3MTUzODY2MjkxMDQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMzIuODc4NDM1LCAic3RlcCI6IDU5NjAsICJ2YWx1ZSI6IDAuMDQ4NjUyMjA5MzQxNTI2MDN9LCB7IndhbGxUaW1lIjogMTczMzA3MzI0NS4zNzQ4Njg2LCAic3RlcCI6IDU5NzAsICJ2YWx1ZSI6IDAuMDUzNjkwMTMxNzUzNjgzMDl9LCB7IndhbGxUaW1lIjogMTczMzA3MzI1My4xODA1NzEzLCAic3RlcCI6IDU5ODAsICJ2YWx1ZSI6IDAuMDQ3NDA5ODg0NjMxNjMzNzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzI2MS44MDE2Mzg4LCAic3RlcCI6IDU5OTAsICJ2YWx1ZSI6IDAuMDQxNjk0MDU5OTY3OTk0Njl9LCB7IndhbGxUaW1lIjogMTczMzA3MzI3MC4wNjA4OSwgInN0ZXAiOiA2MDAwLCAidmFsdWUiOiAwLjA0Njk1ODQwMTc5OTIwMTk2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjc4Ljg5NzMxMDcsICJzdGVwIjogNjAxMCwgInZhbHVlIjogMC4wNDgyOTcwNTUwNjU2MzE4NjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzI4Ny42ODMzMjEsICJzdGVwIjogNjAyMCwgInZhbHVlIjogMC4wNTYzMDA1NzY3NzYyNjYxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyOTcuMjc1NjgyNCwgInN0ZXAiOiA2MDMwLCAidmFsdWUiOiAwLjA0NTgzMTEwNjYwMzE0NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzMwNS45MTk0Njk0LCAic3RlcCI6IDYwNDAsICJ2YWx1ZSI6IDAuMDUwMTM1NDk3MDAzNzkzNzE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzMjIuMzU1ODY0LCAic3RlcCI6IDYwNTAsICJ2YWx1ZSI6IDAuMDQ2MDU5NTI2NTAzMDg2MDl9LCB7IndhbGxUaW1lIjogMTczMzA3MzMzMS45Nzg1MDc1LCAic3RlcCI6IDYwNjAsICJ2YWx1ZSI6IDAuMDQ3ODM3NzA0NDIwMDg5NzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzM0MC41MjM0MTgsICJzdGVwIjogNjA3MCwgInZhbHVlIjogMC4wNDE5ODY4MzA1MzI1NTA4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzQ5LjYwMzIyMDIsICJzdGVwIjogNjA4MCwgInZhbHVlIjogMC4wMzc3MjYyMzgzNjk5NDE3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzU5LjA3MjQzOSwgInN0ZXAiOiA2MDkwLCAidmFsdWUiOiAwLjA1NTk5MTQ2NzA4ODQ2MDkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNjguNDA0MjAxLCAic3RlcCI6IDYxMDAsICJ2YWx1ZSI6IDAuMDMzNzA1NDM5NDE4NTU0MzA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNzcuNjc2MjM1NCwgInN0ZXAiOiA2MTEwLCAidmFsdWUiOiAwLjA0MjkyMjM3NzU4NjM2NDc0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzg2LjQwMTYzOTUsICJzdGVwIjogNjEyMCwgInZhbHVlIjogMC4wMzk5OTAwOTM1NTkwMjY3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzk1LjQ1MjczMTEsICJzdGVwIjogNjEzMCwgInZhbHVlIjogMC4wNDk0MzM2ODk1NjQ0NjY0NzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzQwOC4xNTI0NTUzLCAic3RlcCI6IDYxNDAsICJ2YWx1ZSI6IDAuMDMxMjgyOTg3NDQ1NTkyODh9LCB7IndhbGxUaW1lIjogMTczMzA3MzQxNy4zMjUxNDEyLCAic3RlcCI6IDYxNTAsICJ2YWx1ZSI6IDAuMDM1OTk4NDcxMDgxMjU2ODY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MjYuMjU4NjEyLCAic3RlcCI6IDYxNjAsICJ2YWx1ZSI6IDAuMDQ2OTExMjA2MDk2NDEwNzV9LCB7IndhbGxUaW1lIjogMTczMzA3MzQzNC44MTA1MzQ1LCAic3RlcCI6IDYxNzAsICJ2YWx1ZSI6IDAuMDUwMzQyNjkzOTI0OTAzODd9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ0NC41MTM4OTgsICJzdGVwIjogNjE4MCwgInZhbHVlIjogMC4wOTAxNjc3NjA4NDg5OTkwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDUzLjExODM0NTMsICJzdGVwIjogNjE5MCwgInZhbHVlIjogMC4wNDIzNTMzMzIwNDI2OTQwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDYyLjU2NjgwNywgInN0ZXAiOiA2MjAwLCAidmFsdWUiOiAwLjAzNjk2OTE0MDE3MjAwNDd9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ3Mi4wMjU3NSwgInN0ZXAiOiA2MjEwLCAidmFsdWUiOiAwLjA0OTQyMzkxNDQwMjcyMzMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0ODQuNDQ5NTQyOCwgInN0ZXAiOiA2MjIwLCAidmFsdWUiOiAwLjA0NDgwMzUzNzQyODM3OTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0OTMuNjYxMDc2OCwgInN0ZXAiOiA2MjMwLCAidmFsdWUiOiAwLjAzMzQ4MzcyNTA0MTE1MTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MDIuNDQyMzQyOCwgInN0ZXAiOiA2MjQwLCAidmFsdWUiOiAwLjA1MzY2MjcyODUxODI0NzYwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTExLjI1NzQ4OTIsICJzdGVwIjogNjI1MCwgInZhbHVlIjogMC4wNDc4NDM3MDIxMzc0NzAyNDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzUyMC41MTA5MjcsICJzdGVwIjogNjI2MCwgInZhbHVlIjogMC4wMzI3MTQwMjQxODYxMzQzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTI5Ljc4MjUyNTUsICJzdGVwIjogNjI3MCwgInZhbHVlIjogMC4wNDk5ODg0NzA5NzE1ODQzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTM5LjY0MDI0NjYsICJzdGVwIjogNjI4MCwgInZhbHVlIjogMC4wNDUzNDM0NTg2NTI0OTYzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTQ4LjkxMjA4NiwgInN0ZXAiOiA2MjkwLCAidmFsdWUiOiAwLjAzNDk5OTgyNTA2MDM2NzU4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTYwLjYyMDgzMjQsICJzdGVwIjogNjMwMCwgInZhbHVlIjogMC4wNDI2MDM0NDQzMDgwNDI1MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzU3MC4wNzAwOTk4LCAic3RlcCI6IDYzMTAsICJ2YWx1ZSI6IDAuMDQ2MDQyOTg5OTM5NDUxMjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzU3OS40ODIzMDI0LCAic3RlcCI6IDYzMjAsICJ2YWx1ZSI6IDAuMDQ5MDEwNTQ4NzQwNjI1Mzh9LCB7IndhbGxUaW1lIjogMTczMzA3MzU4Ny42Njg0MjE3LCAic3RlcCI6IDYzMzAsICJ2YWx1ZSI6IDAuMDQ0MTI1NjM4OTAyMTg3MzV9LCB7IndhbGxUaW1lIjogMTczMzA3MzU5Ny4yMTkwMjg1LCAic3RlcCI6IDYzNDAsICJ2YWx1ZSI6IDAuMDQ2ODI5NTI1MzgxMzI2Njc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MDYuMjM5MjM3MywgInN0ZXAiOiA2MzUwLCAidmFsdWUiOiAwLjAzOTU0MzMwODMxNzY2MTI4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjE1LjA3ODc5NjYsICJzdGVwIjogNjM2MCwgInZhbHVlIjogMC4wNDA5MTA5OTI3NzEzODcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MjQuODM1NTc5LCAic3RlcCI6IDYzNzAsICJ2YWx1ZSI6IDAuMDQxOTQ3MzgzNDMzNTgwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjM0LjY3MzY5MzcsICJzdGVwIjogNjM4MCwgInZhbHVlIjogMC4wNTM0NjAxOTU2NjA1OTExMjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzY0Ni41MjkzMDU1LCAic3RlcCI6IDYzOTAsICJ2YWx1ZSI6IDAuMDQ2MDEyNzI5NDA2MzU2ODF9LCB7IndhbGxUaW1lIjogMTczMzA3MzY1NS43NDY1OTIsICJzdGVwIjogNjQwMCwgInZhbHVlIjogMC4wMzkwMjEyMDUxNTcwNDE1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjY1LjYwODI1LCAic3RlcCI6IDY0MTAsICJ2YWx1ZSI6IDAuMDM5Nzc4MDIwMjMyOTE1ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MzY3NC42NDM4ODA2LCAic3RlcCI6IDY0MjAsICJ2YWx1ZSI6IDAuMDM5MzY5Nzk5MTk2NzIwMTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzY4My42NzE0NTgyLCAic3RlcCI6IDY0MzAsICJ2YWx1ZSI6IDAuMDQ0MTAzNjE0OTg1OTQyODR9LCB7IndhbGxUaW1lIjogMTczMzA3MzY5Mi44Nzc4Nzk0LCAic3RlcCI6IDY0NDAsICJ2YWx1ZSI6IDAuMDQ0MzMxNjkyMTU5MTc1ODd9LCB7IndhbGxUaW1lIjogMTczMzA3MzcwMi41MjAyNzgyLCAic3RlcCI6IDY0NTAsICJ2YWx1ZSI6IDAuMDQzMDk0NjgzNDM4NTM5NTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MTIuNjI4NDQ1NCwgInN0ZXAiOiA2NDYwLCAidmFsdWUiOiAwLjA0MTQzOTE3OTMzMTA2NDIyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzI0LjA0ODY2MDMsICJzdGVwIjogNjQ3MCwgInZhbHVlIjogMC4wMzMxMjQ4MDA3NzE0NzQ4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzMyLjgyOTUyNzYsICJzdGVwIjogNjQ4MCwgInZhbHVlIjogMC4wNTQyOTk4MzUxMTU2NzExNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzQxLjk1ODY4LCAic3RlcCI6IDY0OTAsICJ2YWx1ZSI6IDAuMDQ5NDIxMTYxNDEzMTkyNzV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc1MC43MTg3NzEsICJzdGVwIjogNjUwMCwgInZhbHVlIjogMC4wNzk3MDAxMTIzNDI4MzQ0N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzYwLjQ4OTIyMzIsICJzdGVwIjogNjUxMCwgInZhbHVlIjogMC4wNDU3NjU1NDg5NDQ0NzMyN30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzY5Ljg2NDQ4NDUsICJzdGVwIjogNjUyMCwgInZhbHVlIjogMC4wMzY0ODgxODI4NDI3MzE0NzZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc3OS4xMjgxNjksICJzdGVwIjogNjUzMCwgInZhbHVlIjogMC4wNDM2NTE0NTQxNTA2NzY3M30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzg5LjQ3ODgxODQsICJzdGVwIjogNjU0MCwgInZhbHVlIjogMC4wNDg5MzYzMDM3MDQ5NzcwMzZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc5OC4xMDQ0NzA1LCAic3RlcCI6IDY1NTAsICJ2YWx1ZSI6IDAuMDQyNzE4NzY0Mzk0NTIxNzF9LCB7IndhbGxUaW1lIjogMTczMzA3MzgxMC41NTQwMzIzLCAic3RlcCI6IDY1NjAsICJ2YWx1ZSI6IDAuMDY1NzY4ODgyNjMyMjU1NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzgyMC4wMzc1Njc5LCAic3RlcCI6IDY1NzAsICJ2YWx1ZSI6IDAuMDY2MDc4OTE2MTkyMDU0NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MzgyOC4yMzk3NTQyLCAic3RlcCI6IDY1ODAsICJ2YWx1ZSI6IDAuMDQxODAzMzgyMzM3MDkzMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MzgzNi43OTkzNzUzLCAic3RlcCI6IDY1OTAsICJ2YWx1ZSI6IDAuMDMzNzMzNzU5MDc1NDAzMjE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NDUuOTg4Njc2NSwgInN0ZXAiOiA2NjAwLCAidmFsdWUiOiAwLjA0MzQ1MDY4NzA4MDYyMTcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NTUuMjUzMjc3MywgInN0ZXAiOiA2NjEwLCAidmFsdWUiOiAwLjA0MDUxMzIwMjU0ODAyNzA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NjQuNjk0ODYxMiwgInN0ZXAiOiA2NjIwLCAidmFsdWUiOiAwLjAzNzEwODQ1MTEyODAwNTk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NzMuODM1Nzk3LCAic3RlcCI6IDY2MzAsICJ2YWx1ZSI6IDAuMDMzOTU5NDI1OTg1ODEzMTR9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg4Ny41MjU4MDI5LCAic3RlcCI6IDY2NDAsICJ2YWx1ZSI6IDAuMDQ4MDI5MDI3ODc5MjM4MTN9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg5Ny4zMzU0NDMzLCAic3RlcCI6IDY2NTAsICJ2YWx1ZSI6IDAuMDQ5NTY2MzY1Nzc4NDQ2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTA2Ljg3ODAxMiwgInN0ZXAiOiA2NjYwLCAidmFsdWUiOiAwLjA2NTM4MjIwNDk0OTg1NTh9LCB7IndhbGxUaW1lIjogMTczMzA3MzkxNi4zNTE0NzA3LCAic3RlcCI6IDY2NzAsICJ2YWx1ZSI6IDAuMDQ4OTE4OTA2NTk5MjgzMjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzkyNS42MjAwNjgsICJzdGVwIjogNjY4MCwgInZhbHVlIjogMC4wMzY0Nzc1ODQzOTE4MzIzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTM0LjkxODEwMiwgInN0ZXAiOiA2NjkwLCAidmFsdWUiOiAwLjA0NTQ4MjA2OTI1MzkyMTUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5NDMuNzQzNjk5NiwgInN0ZXAiOiA2NzAwLCAidmFsdWUiOiAwLjA3MTUwNzMwNDkwNjg0NTA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5NTIuNDc4Mzg5LCAic3RlcCI6IDY3MTAsICJ2YWx1ZSI6IDAuMDYxOTY3MzU3OTkzMTI1OTE2fV19fV0=", + "ok": true, + "headers": [ + [ + "content-length", + "15010" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Loss/loss_bbox_dn_1%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIkxvc3MvbG9zc19iYm94X2RuXzEiLCAicnVuVG9TZXJpZXMiOiB7Ii4iOiBbeyJ3YWxsVGltZSI6IDE3MzMwNjc2MzEuNTQwMDE0LCAic3RlcCI6IDAsICJ2YWx1ZSI6IDAuMDU0MzYxNTc0MzUxNzg3NTd9LCB7IndhbGxUaW1lIjogMTczMzA2NzY0Ni42NTMzNzgsICJzdGVwIjogMTAsICJ2YWx1ZSI6IDAuMDUzNTQxMTY4NTcwNTE4NDk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NjAuNzg1NDMsICJzdGVwIjogMjAsICJ2YWx1ZSI6IDAuMDQ1NTk2NDM1NjY2MDg0Mjl9LCB7IndhbGxUaW1lIjogMTczMzA2NzY3NC4xMzg2ODUyLCAic3RlcCI6IDMwLCAidmFsdWUiOiAwLjA1MTUxOTMyNjg2NTY3MzA2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njg3LjA1ODM0NzcsICJzdGVwIjogNDAsICJ2YWx1ZSI6IDAuMDY2MzI2Njc3Nzk5MjI0ODV9LCB7IndhbGxUaW1lIjogMTczMzA2NzY5OS40OTQzODUyLCAic3RlcCI6IDUwLCAidmFsdWUiOiAwLjEwMTkyNDcyNDg3Njg4MDY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MTAuNjMwNTU1NiwgInN0ZXAiOiA2MCwgInZhbHVlIjogMC4wODg3ODAwNzUzMTE2NjA3N30sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzIyLjc1Njc1MSwgInN0ZXAiOiA3MCwgInZhbHVlIjogMC4wMzQ5ODU3NTgzNjQyMDA1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzMzLjcyNjU4MzIsICJzdGVwIjogODAsICJ2YWx1ZSI6IDAuMTI0MTQ1ODM1NjM4MDQ2MjZ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc1MC45NDc0NDYzLCAic3RlcCI6IDkwLCAidmFsdWUiOiAwLjA0MjU2MzM5NzQzNzMzNDA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NjEuOTgyMTM0OCwgInN0ZXAiOiAxMDAsICJ2YWx1ZSI6IDAuMDYyNjA5MTIxMjAzNDIyNTV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc3MS42MDc1ODgsICJzdGVwIjogMTEwLCAidmFsdWUiOiAwLjA2OTQxNTE3NDQyNDY0ODI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3ODAuNTQ4NTc1MiwgInN0ZXAiOiAxMjAsICJ2YWx1ZSI6IDAuMTI0MDQ5NjYzNTQzNzAxMTd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc5MC40ODY1NzQ0LCAic3RlcCI6IDEzMCwgInZhbHVlIjogMC4wNTEwOTg4OTA2MDI1ODg2NTR9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc5OS4xMDY4MTEsICJzdGVwIjogMTQwLCAidmFsdWUiOiAwLjA4NzUwNTI4ODQyMjEwNzd9LCB7IndhbGxUaW1lIjogMTczMzA2NzgwOS40NDU5OTQ0LCAic3RlcCI6IDE1MCwgInZhbHVlIjogMC4xMzgxNDIxMzg3MTk1NTg3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODE4LjkyMTkwNCwgInN0ZXAiOiAxNjAsICJ2YWx1ZSI6IDAuMDYyNDgxMTEyNzc4MTg2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODM2LjY1MDc1MjUsICJzdGVwIjogMTcwLCAidmFsdWUiOiAwLjA2NDk3ODY2NjYwMzU2NTIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4NDYuMzkxNzUzNywgInN0ZXAiOiAxODAsICJ2YWx1ZSI6IDAuMDc4NzUwMDM2NjU2ODU2NTR9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg1NS42NjgxNzk1LCAic3RlcCI6IDE5MCwgInZhbHVlIjogMC4wNzU2Njk0OTcyNTE1MTA2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODY0Ljg5MTgyOTUsICJzdGVwIjogMjAwLCAidmFsdWUiOiAwLjA3OTI2OTA4MTM1NDE0MTI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4NzQuMDAzMTA2NCwgInN0ZXAiOiAyMTAsICJ2YWx1ZSI6IDAuMDYzNTM4ODE5NTUxNDY3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODgzLjc4ODA1OCwgInN0ZXAiOiAyMjAsICJ2YWx1ZSI6IDAuMDYyOTc5OTQ0MDUwMzEyMDR9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg5Mi4xMjQzNDg0LCAic3RlcCI6IDIzMCwgInZhbHVlIjogMC4wNTYzMjAzNTA2MTcxNzAzMzR9LCB7IndhbGxUaW1lIjogMTczMzA2NzkwMS4wNzA1NCwgInN0ZXAiOiAyNDAsICJ2YWx1ZSI6IDAuMTAwNTA5OTg2MjgxMzk0OTZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzkxMC4wNzYxMDAzLCAic3RlcCI6IDI1MCwgInZhbHVlIjogMC4wODMzNjk2ODcxOTk1OTI1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTI1Ljk1MTIxMDcsICJzdGVwIjogMjYwLCAidmFsdWUiOiAwLjA2MzE2MTQ3NzQ0NjU1NjA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MzUuNDc2NzM3NSwgInN0ZXAiOiAyNzAsICJ2YWx1ZSI6IDAuMDUxMjg0OTk4NjU1MzE5MjE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NDQuMDE3NTAzMywgInN0ZXAiOiAyODAsICJ2YWx1ZSI6IDAuMDUzNzU3NjM0MDEzODkxMjJ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk1Mi41NDg2MDE2LCAic3RlcCI6IDI5MCwgInZhbHVlIjogMC4xMjMwMDU3OTI0OTg1ODg1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTYxLjAyNzkyMiwgInN0ZXAiOiAzMDAsICJ2YWx1ZSI6IDAuMTA5NjgxMDEwMjQ2Mjc2ODZ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk3MC4xMzU3NDksICJzdGVwIjogMzEwLCAidmFsdWUiOiAwLjA4ODc3MTg0OTg3MDY4MTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5ODAuMjI3MDAyMSwgInN0ZXAiOiAzMjAsICJ2YWx1ZSI6IDAuMDYwNTQzNzk3OTEwMjEzNDd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk4OC44MTcyMzg2LCAic3RlcCI6IDMzMCwgInZhbHVlIjogMC4wNjkwMTg2NDcwNzQ2OTk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMDUuMDkxODQwMywgInN0ZXAiOiAzNDAsICJ2YWx1ZSI6IDAuMDY0MTAwMjIwNzk5NDQ2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDE0LjA2NjM3NCwgInN0ZXAiOiAzNTAsICJ2YWx1ZSI6IDAuMDI5NTI2MzIzMDgwMDYyODY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMjIuNTU0MjE5MiwgInN0ZXAiOiAzNjAsICJ2YWx1ZSI6IDAuMDYxMDY4MTI4Nzk0NDMxNjg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMzEuODI1OTAyMiwgInN0ZXAiOiAzNzAsICJ2YWx1ZSI6IDAuMDY2MTQwMjk0MDc1MDEyMjF9LCB7IndhbGxUaW1lIjogMTczMzA2ODA0MC43ODkwMjI3LCAic3RlcCI6IDM4MCwgInZhbHVlIjogMC4wNTQ2NjcyOTAzMDAxMzA4NDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODA1MC4xNjE0ODc4LCAic3RlcCI6IDM5MCwgInZhbHVlIjogMC4xMDIyODc5OTI4MzUwNDQ4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDU5LjEyNzMxMzYsICJzdGVwIjogNDAwLCAidmFsdWUiOiAwLjExMzA1NTkyMjA5MTAwNzIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNjguMDkxMzIxMiwgInN0ZXAiOiA0MTAsICJ2YWx1ZSI6IDAuMTE0MDgxODg5MzkwOTQ1NDN9LCB7IndhbGxUaW1lIjogMTczMzA2ODA4NC44NDU1NTcyLCAic3RlcCI6IDQyMCwgInZhbHVlIjogMC4wODI5ODUxNDc4MzM4MjQxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDk0LjY2NzkyLCAic3RlcCI6IDQzMCwgInZhbHVlIjogMC4wNDU1Nzg2NjYwMzEzNjA2MjZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODEwMy43MDkzODM1LCAic3RlcCI6IDQ0MCwgInZhbHVlIjogMC4wNTUyNDY5NDkxOTU4NjE4MTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODExMi43MDA5NTA5LCAic3RlcCI6IDQ1MCwgInZhbHVlIjogMC4wNTk0MjM0ODM5MDgxNzY0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTIxLjUwMjQ5NiwgInN0ZXAiOiA0NjAsICJ2YWx1ZSI6IDAuMDQ4MTc4NzY1OTIyNzg0ODA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMzAuNzI5MTk1NCwgInN0ZXAiOiA0NzAsICJ2YWx1ZSI6IDAuMDczNjY3OTI4NTc2NDY5NDJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODEzOS44NTcxNDkxLCAic3RlcCI6IDQ4MCwgInZhbHVlIjogMC4wNjI1NTA5Njk0MjE4NjM1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTQ5LjM3MTQ4MSwgInN0ZXAiOiA0OTAsICJ2YWx1ZSI6IDAuMDc0OTM3MDgyODI3MDkxMjJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODE1OC4wNzE0ODg2LCAic3RlcCI6IDUwMCwgInZhbHVlIjogMC4wNjk3MzYxMzc5ODYxODMxN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTc0LjExNjY4NSwgInN0ZXAiOiA1MTAsICJ2YWx1ZSI6IDAuMDg4ODQ1Nzg5NDMyNTI1NjN9LCB7IndhbGxUaW1lIjogMTczMzA2ODE4Mi43MjExMDc1LCAic3RlcCI6IDUyMCwgInZhbHVlIjogMC4wNDg0MzUxMjE3NzQ2NzM0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTkyLjQxNTE4LCAic3RlcCI6IDUzMCwgInZhbHVlIjogMC4wODMyNzAxNTQ4OTMzOTgyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjAxLjgzMTk2OTcsICJzdGVwIjogNTQwLCAidmFsdWUiOiAwLjA3NDc0ODc4NDMwMzY2NTE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMTAuNjU2MDY3MSwgInN0ZXAiOiA1NTAsICJ2YWx1ZSI6IDAuMDc1MDE2OTk3NzU0NTczODJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODIyMC4xOTY2MzE3LCAic3RlcCI6IDU2MCwgInZhbHVlIjogMC4wNzQ5MzQ0MDgwNjg2NTY5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjI5LjE2MTAyOCwgInN0ZXAiOiA1NzAsICJ2YWx1ZSI6IDAuMDgzNTUwNTEyNzkwNjc5OTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODIzOC41OTMxNzg1LCAic3RlcCI6IDU4MCwgInZhbHVlIjogMC4wNzEwMDQ1NDcxNzg3NDUyN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjU2LjA3NjA5OTksICJzdGVwIjogNTkwLCAidmFsdWUiOiAwLjA1MzcxMzcxNjU2NjU2MjY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNjUuNDMzNDc3NCwgInN0ZXAiOiA2MDAsICJ2YWx1ZSI6IDAuMTI1Mzc4MjIxMjczNDIyMjR9LCB7IndhbGxUaW1lIjogMTczMzA2ODI3NC42NTgwODUsICJzdGVwIjogNjEwLCAidmFsdWUiOiAwLjA1NDkzMzg0NTk5Njg1NjY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyODMuNzcxNjcxMywgInN0ZXAiOiA2MjAsICJ2YWx1ZSI6IDAuMDU5ODMyMDY2Mjk3NTMxMTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODI5My4zMzU3NTc1LCAic3RlcCI6IDYzMCwgInZhbHVlIjogMC4wNjEzMDY1MjUwMjE3OTE0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzAyLjY0ODc3NywgInN0ZXAiOiA2NDAsICJ2YWx1ZSI6IDAuMDc1MDA3Njk5NDI5OTg4ODZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODMxMS4zODk4MDk2LCAic3RlcCI6IDY1MCwgInZhbHVlIjogMC4wNTgxMDQ4ODc2MDQ3MTM0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzIwLjM5MTgwNiwgInN0ZXAiOiA2NjAsICJ2YWx1ZSI6IDAuMDcyNTcyNTE0NDE0Nzg3Mjl9LCB7IndhbGxUaW1lIjogMTczMzA2ODMyOC43MzMwNzIzLCAic3RlcCI6IDY3MCwgInZhbHVlIjogMC4wNzIxMjcyMDA2NjMwODk3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzQ0LjQ2MjgxNDgsICJzdGVwIjogNjgwLCAidmFsdWUiOiAwLjA4MjI3ODE5MjA0MzMwNDQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNTMuNzE4NTk1LCAic3RlcCI6IDY5MCwgInZhbHVlIjogMC4wNTEyMTU2NjM1NTIyODQyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzYyLjA1OTUyOSwgInN0ZXAiOiA3MDAsICJ2YWx1ZSI6IDAuMDgzMjIyNTY4MDM1MTI1NzN9LCB7IndhbGxUaW1lIjogMTczMzA2ODM3MS4xMDU3NTksICJzdGVwIjogNzEwLCAidmFsdWUiOiAwLjA0NjI3NjYzMjY5NjM5MDE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzODAuNTM0ODQ3MywgInN0ZXAiOiA3MjAsICJ2YWx1ZSI6IDAuMDgxNzM5Njg2NDI5NTAwNTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODM5MC4wODgzMzU1LCAic3RlcCI6IDczMCwgInZhbHVlIjogMC4wNDM3MTUyNTcxOTc2MTg0ODR9LCB7IndhbGxUaW1lIjogMTczMzA2ODM5OC43MjI2OTc3LCAic3RlcCI6IDc0MCwgInZhbHVlIjogMC4wODgzNDY0MjE3MTg1OTc0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDA3LjEyNTY3NzYsICJzdGVwIjogNzUwLCAidmFsdWUiOiAwLjA2MDcwMTcwMTc5MDA5NDM3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDIzLjA3Mzg5MjgsICJzdGVwIjogNzYwLCAidmFsdWUiOiAwLjA2MzY3NjM5NDUyMjE5MDF9LCB7IndhbGxUaW1lIjogMTczMzA2ODQzMS40MDcwNjYsICJzdGVwIjogNzcwLCAidmFsdWUiOiAwLjA3Nzg4MzE0NjcwMzI0MzI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NDAuNDI2NzA3LCAic3RlcCI6IDc4MCwgInZhbHVlIjogMC4wNDQ3MTY0NzczOTQxMDQwMDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ0OS4wMDgzNTE2LCAic3RlcCI6IDc5MCwgInZhbHVlIjogMC4wNjA1MzAxNTIxNzE4NTAyMDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ1Ny42NDAzMzkxLCAic3RlcCI6IDgwMCwgInZhbHVlIjogMC4wNDE2ODU1MDY3MDE0Njk0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDY3LjA0ODk2OCwgInN0ZXAiOiA4MTAsICJ2YWx1ZSI6IDAuMDU5NDU4MTM2NTU4NTMyNzE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NzUuNjIyMjMxNywgInN0ZXAiOiA4MjAsICJ2YWx1ZSI6IDAuMDYwNjI1MDU3NjY3NDkzODJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ4NC45ODA3ODksICJzdGVwIjogODMwLCAidmFsdWUiOiAwLjA0ODI5ODY1MzIxNTE2OTkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MDAuNzMzNDQxNiwgInN0ZXAiOiA4NDAsICJ2YWx1ZSI6IDAuMDQ0NTMzODc0ODM5NTQ0Mjk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MDkuMzA5NjY2OSwgInN0ZXAiOiA4NTAsICJ2YWx1ZSI6IDAuMDQ2MjM0Mzk5MDgwMjc2NDl9LCB7IndhbGxUaW1lIjogMTczMzA2ODUxOS4wMjQxMDk4LCAic3RlcCI6IDg2MCwgInZhbHVlIjogMC4wMzYzNTEwMzI1NTUxMDMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MjcuNTAwNDQ4LCAic3RlcCI6IDg3MCwgInZhbHVlIjogMC4wNjU0MDIwOTA1NDk0Njl9LCB7IndhbGxUaW1lIjogMTczMzA2ODUzNi45MjIyMTgzLCAic3RlcCI6IDg4MCwgInZhbHVlIjogMC4wNTc1MDY2MzU3ODUxMDI4NDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODU0NC45MTA3NDEsICJzdGVwIjogODkwLCAidmFsdWUiOiAwLjA1MzYxNjkwNzQ0NzU3NjUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NTMuNTgxMTA2NCwgInN0ZXAiOiA5MDAsICJ2YWx1ZSI6IDAuMDYxOTc2MTI3MzI2NDg4NDk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NjIuNjg3OTU5NywgInN0ZXAiOiA5MTAsICJ2YWx1ZSI6IDAuMDcyMjc2NzcxMDY4NTczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NzEuMjQ4MzM1NiwgInN0ZXAiOiA5MjAsICJ2YWx1ZSI6IDAuMDUzNjUxMjI4NTQ3MDk2MjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODU4NC43Nzg0Njg2LCAic3RlcCI6IDkzMCwgInZhbHVlIjogMC4wNDEzNjQxNjMxNjAzMjQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1OTMuNzc1MzE1OCwgInN0ZXAiOiA5NDAsICJ2YWx1ZSI6IDAuMDYyMzQ5MDQzNzg2NTI1NzI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MDIuNzY4OTk4LCAic3RlcCI6IDk1MCwgInZhbHVlIjogMC4wMzA1MTY3OTc2NzY2ODI0NzJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODYxMS4wNDMwMDk1LCAic3RlcCI6IDk2MCwgInZhbHVlIjogMC4wNjczODE3OTkyMjEwMzg4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjIwLjIyOTcxMjUsICJzdGVwIjogOTcwLCAidmFsdWUiOiAwLjA1NDQxNjE0OTg1NDY2MDAzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjI4Ljg0NDg2NDgsICJzdGVwIjogOTgwLCAidmFsdWUiOiAwLjA1MDA3MjcyMjEzNjk3NDMzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjM3LjYzMzU3NSwgInN0ZXAiOiA5OTAsICJ2YWx1ZSI6IDAuMDM4NzM4ODc2NTgxMTkyMDJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODY0Ni42NzYyMTg1LCAic3RlcCI6IDEwMDAsICJ2YWx1ZSI6IDAuMDY4OTMwMzcyNTk1Nzg3MDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODY2Mi43NjAxMTQ3LCAic3RlcCI6IDEwMTAsICJ2YWx1ZSI6IDAuMDU5MjIzODk3NzU1MTQ2MDN9LCB7IndhbGxUaW1lIjogMTczMzA2ODY3Mi4wNTc3MTA2LCAic3RlcCI6IDEwMjAsICJ2YWx1ZSI6IDAuMDUxMjU4NjU3MTI3NjE4Nzl9LCB7IndhbGxUaW1lIjogMTczMzA2ODY4MC41NjYzMjUyLCAic3RlcCI6IDEwMzAsICJ2YWx1ZSI6IDAuMDY4ODY0NTU0MTY2NzkzODJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODY5MC4xODkyNzM0LCAic3RlcCI6IDEwNDAsICJ2YWx1ZSI6IDAuMDQwNTk3MDczNzMzODA2NjF9LCB7IndhbGxUaW1lIjogMTczMzA2ODY5OC44NTE2NzQ4LCAic3RlcCI6IDEwNTAsICJ2YWx1ZSI6IDAuMDYzNjg1NTM2Mzg0NTgyNTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODcwNy43NDY4MjcxLCAic3RlcCI6IDEwNjAsICJ2YWx1ZSI6IDAuMDQ2NTI0MjU2NDY3ODE5MjE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MTcuMzQ4MDIwOCwgInN0ZXAiOiAxMDcwLCAidmFsdWUiOiAwLjA0NTc0MTU0MzE3Mzc4OTk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MjYuMzY0NzU4MywgInN0ZXAiOiAxMDgwLCAidmFsdWUiOiAwLjAzNDMwMDE2NzExMzU0MjU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MzUuMjU1MTU1OCwgInN0ZXAiOiAxMDkwLCAidmFsdWUiOiAwLjA0NTgyMjg5OTc4ODYxODA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3NDkuNTUxMzc1LCAic3RlcCI6IDExMDAsICJ2YWx1ZSI6IDAuMDMzNzY0NTUyMzI1MDEwM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzU4LjM3ODc0MjcsICJzdGVwIjogMTExMCwgInZhbHVlIjogMC4wNTY3ODA0Mjc2OTQzMjA2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzY3LjAwNzIzMjcsICJzdGVwIjogMTEyMCwgInZhbHVlIjogMC4wNjQ5NjU4NjY1MDYwOTk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3NzYuNjIyMjM2NSwgInN0ZXAiOiAxMTMwLCAidmFsdWUiOiAwLjA1MTczNTkwNDA2Nzc1NDc0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Nzg1LjQwNDczMTMsICJzdGVwIjogMTE0MCwgInZhbHVlIjogMC4wNjg2NjcwNjkwNzc0OTE3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Nzk0LjI4MjQ3NSwgInN0ZXAiOiAxMTUwLCAidmFsdWUiOiAwLjA3MTUzNTU0MjYwNzMwNzQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MDIuNzAwNzI5NiwgInN0ZXAiOiAxMTYwLCAidmFsdWUiOiAwLjA3NTkxMzQyOTI2MDI1Mzl9LCB7IndhbGxUaW1lIjogMTczMzA2ODgxMS41NTUyNjE0LCAic3RlcCI6IDExNzAsICJ2YWx1ZSI6IDAuMDU0Njg1NDQzNjM5NzU1MjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODgyNC45NjkxNTUzLCAic3RlcCI6IDExODAsICJ2YWx1ZSI6IDAuMDUyMzUwNjYyNjQ4Njc3ODI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MzQuMzgwNjMyNiwgInN0ZXAiOiAxMTkwLCAidmFsdWUiOiAwLjA0NTk0NDkxNzk0NzA1MzkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NDMuNTE5NTY0NCwgInN0ZXAiOiAxMjAwLCAidmFsdWUiOiAwLjA1MzY0MTYyODQ3Mzk5NzExNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODUyLjIzMTk1MTUsICJzdGVwIjogMTIxMCwgInZhbHVlIjogMC4wNDExNDU2MDAzNzg1MTMzMzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODg2MS4xMjAzMjcyLCAic3RlcCI6IDEyMjAsICJ2YWx1ZSI6IDAuMDQ0MTM3NjgyNzY1NzIyMjc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NzAuMDU5MjY4NywgInN0ZXAiOiAxMjMwLCAidmFsdWUiOiAwLjA2NzIzMjgwMjUxMDI2MTU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NzguNzIzNzY2OCwgInN0ZXAiOiAxMjQwLCAidmFsdWUiOiAwLjA2NTkwMjk0ODM3OTUxNjZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODg4Ny43NDE1MTQsICJzdGVwIjogMTI1MCwgInZhbHVlIjogMC4wNDA3MDI5ODM3MzY5OTE4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTAzLjE3MDIyMTMsICJzdGVwIjogMTI2MCwgInZhbHVlIjogMC4wMzcyNjMyMjIwMzg3NDU4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTEyLjQxOTY4MjMsICJzdGVwIjogMTI3MCwgInZhbHVlIjogMC4wNTc0NjA4ODkyMjAyMzc3M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTIxLjQ3Nzc4MjUsICJzdGVwIjogMTI4MCwgInZhbHVlIjogMC4wNjg4MzA5Mjk2OTY1NTk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MjkuNzUwMDE0MywgInN0ZXAiOiAxMjkwLCAidmFsdWUiOiAwLjA0NjY4NDU5Mjk2MjI2NTAxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTM5LjUwNDc3MSwgInN0ZXAiOiAxMzAwLCAidmFsdWUiOiAwLjA0MDkyNDQ1NTk3MDUyNTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NDguOTMxMzIyOCwgInN0ZXAiOiAxMzEwLCAidmFsdWUiOiAwLjAzMzEzMDMxNzkyNjQwNjg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NTcuMjM3ODM3LCAic3RlcCI6IDEzMjAsICJ2YWx1ZSI6IDAuMDYwOTI5NTAzMjkxODQ1MzJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODk2Ni4wODAzOTYyLCAic3RlcCI6IDEzMzAsICJ2YWx1ZSI6IDAuMDU3NzM4ODcwMzgyMzA4OTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODk3NS41Njg2MzE2LCAic3RlcCI6IDEzNDAsICJ2YWx1ZSI6IDAuMDYxNDg0MjgwOTczNjcyODd9LCB7IndhbGxUaW1lIjogMTczMzA2ODk4OS44MDI3ODY4LCAic3RlcCI6IDEzNTAsICJ2YWx1ZSI6IDAuMDMxMzk1NzgxNzg1MjQ5NzF9LCB7IndhbGxUaW1lIjogMTczMzA2ODk5OC4yODYzNTEsICJzdGVwIjogMTM2MCwgInZhbHVlIjogMC4wMzE3NDAwNzMxMTQ2MzM1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDA3LjE1MzU0NTQsICJzdGVwIjogMTM3MCwgInZhbHVlIjogMC4wNDEyMzc1MDcwMTU0NjY2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDE1LjkyNTgzODcsICJzdGVwIjogMTM4MCwgInZhbHVlIjogMC4wMzg4OTU2NDA1MjIyNDE1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDI1LjMwNjYxNjMsICJzdGVwIjogMTM5MCwgInZhbHVlIjogMC4wNDcyMTA3MzQzMzc1NjgyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDM0LjQ4NDc5NjgsICJzdGVwIjogMTQwMCwgInZhbHVlIjogMC4wNTY0MDkyMTc0MTcyNDAxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDQyLjc5NjMzMzYsICJzdGVwIjogMTQxMCwgInZhbHVlIjogMC4wNjM5Mjc1MDg4OTA2Mjg4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDUyLjE0MDg5NCwgInN0ZXAiOiAxNDIwLCAidmFsdWUiOiAwLjA0NjI3NDEwNjk0OTU2Nzc5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDY1LjAwNTA1NzYsICJzdGVwIjogMTQzMCwgInZhbHVlIjogMC4wNDQ4MjA3MDM1NjYwNzQzN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDc0LjUyNzMxNTksICJzdGVwIjogMTQ0MCwgInZhbHVlIjogMC4wNDg3NDcxNDA5MTQyMDE3MzZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTA4My43ODU5MTQ3LCAic3RlcCI6IDE0NTAsICJ2YWx1ZSI6IDAuMDUwNjg3OTM4OTI4NjA0MTI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwOTIuMjYyMDc4LCAic3RlcCI6IDE0NjAsICJ2YWx1ZSI6IDAuMDYwNDMyMDMxNzUwNjc5MDE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMDEuMDMzMTQ0LCAic3RlcCI6IDE0NzAsICJ2YWx1ZSI6IDAuMDU3OTEyNDg3NTM2NjY4Nzh9LCB7IndhbGxUaW1lIjogMTczMzA2OTEwOS45MDkxMTE1LCAic3RlcCI6IDE0ODAsICJ2YWx1ZSI6IDAuMDY3MTU2NDkzNjYzNzg3ODR9LCB7IndhbGxUaW1lIjogMTczMzA2OTExOS4xMjExMDcsICJzdGVwIjogMTQ5MCwgInZhbHVlIjogMC4wNDY4NDEzMzQ1NTE1NzI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMjguNDE4Mzk4NCwgInN0ZXAiOiAxNTAwLCAidmFsdWUiOiAwLjA1NDU1NTA4NDU1NjM0MTE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMzcuNjA4OTQ5MiwgInN0ZXAiOiAxNTEwLCAidmFsdWUiOiAwLjA1OTczOTI5MTY2NzkzODIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxNTAuNTQ1Nzg0MiwgInN0ZXAiOiAxNTIwLCAidmFsdWUiOiAwLjAzNTIwODMzNzAwODk1MzA5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTU5Ljc1OTI0NCwgInN0ZXAiOiAxNTMwLCAidmFsdWUiOiAwLjA0NTY1OTQ4NjIwNDM4NTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxNjguMTcyNzc2LCAic3RlcCI6IDE1NDAsICJ2YWx1ZSI6IDAuMDU2NzA1OTIxODg4MzUxNDR9LCB7IndhbGxUaW1lIjogMTczMzA2OTE3Ni44NDMxNjIzLCAic3RlcCI6IDE1NTAsICJ2YWx1ZSI6IDAuMDU2NDQ1Njc2ODMzMzkxMTl9LCB7IndhbGxUaW1lIjogMTczMzA2OTE4NS44OTQ0MzcsICJzdGVwIjogMTU2MCwgInZhbHVlIjogMC4wMzQyNjc3NDIxODY3ODQ3NDR9LCB7IndhbGxUaW1lIjogMTczMzA2OTE5NC45MjYzOTU3LCAic3RlcCI6IDE1NzAsICJ2YWx1ZSI6IDAuMDY0MjQyNzY1MzA3NDI2NDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTIwMy45MTYxNzEzLCAic3RlcCI6IDE1ODAsICJ2YWx1ZSI6IDAuMDMzMDkxNzAxNTY3MTczMDA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMTIuNzE4MzkzNiwgInN0ZXAiOiAxNTkwLCAidmFsdWUiOiAwLjAzOTYwMjE4MjgwNTUzODE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMjUuNTM2MzE0LCAic3RlcCI6IDE2MDAsICJ2YWx1ZSI6IDAuMDM5MDg3NjM4MjU4OTM0MDJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTIzNS40NjYwNDIsICJzdGVwIjogMTYxMCwgInZhbHVlIjogMC4wNDc5MDU4ODQ2ODMxMzIxN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjQ0LjYzMjQ4NjgsICJzdGVwIjogMTYyMCwgInZhbHVlIjogMC4wNDQyOTk1NTQwNzk3NzEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjU0LjI5NTgxMDIsICJzdGVwIjogMTYzMCwgInZhbHVlIjogMC4wNTIzNDEyNTYyOTA2NzQyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjYzLjAwNzUyODUsICJzdGVwIjogMTY0MCwgInZhbHVlIjogMC4wNDk0MzY3NzAzNzk1NDMzMDR9LCB7IndhbGxUaW1lIjogMTczMzA2OTI3MS44Njg4MzUsICJzdGVwIjogMTY1MCwgInZhbHVlIjogMC4wNTM3OTEyMDI2MDQ3NzA2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjgwLjUxMjA0NzMsICJzdGVwIjogMTY2MCwgInZhbHVlIjogMC4xMDQwODQwNDQ2OTQ5MDA1MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Mjg5LjY4MTkyMiwgInN0ZXAiOiAxNjcwLCAidmFsdWUiOiAwLjA0MzYwMzY1ODY3NjE0NzQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMDMuNjEyNzI2LCAic3RlcCI6IDE2ODAsICJ2YWx1ZSI6IDAuMDYzMjQ1NjQ2NjU1NTU5NTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTMxMi40ODE4NTM3LCAic3RlcCI6IDE2OTAsICJ2YWx1ZSI6IDAuMDQyODI3MTY2NjE2OTE2NjU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMjEuODQwOTgxMiwgInN0ZXAiOiAxNzAwLCAidmFsdWUiOiAwLjA0NTUwNzM3ODg3NjIwOTI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMzAuMzUwMTUyNSwgInN0ZXAiOiAxNzEwLCAidmFsdWUiOiAwLjA0ODQwOTAxNDk0MDI2MTg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMzkuMjQ3NjA3NSwgInN0ZXAiOiAxNzIwLCAidmFsdWUiOiAwLjAzODU4MDkxMzA5NjY2NjMzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzQ2Ljg2MDc0NjQsICJzdGVwIjogMTczMCwgInZhbHVlIjogMC4wODA1OTg1MjU3MDI5NTMzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzU1LjY1NjQ2NzcsICJzdGVwIjogMTc0MCwgInZhbHVlIjogMC4wMzYwMTA0MjkyNjMxMTQ5M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzY0LjUxNDIzNzYsICJzdGVwIjogMTc1MCwgInZhbHVlIjogMC4wNjkxMTE3MzQ2Mjg2NzczN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzczLjc0MDg1LCAic3RlcCI6IDE3NjAsICJ2YWx1ZSI6IDAuMDg5OTAyODkyNzA4Nzc4Mzh9LCB7IndhbGxUaW1lIjogMTczMzA2OTM4Ny41NDMyODk3LCAic3RlcCI6IDE3NzAsICJ2YWx1ZSI6IDAuMDUxMDA3MjE0OTMzNjMzODA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzOTYuNDcwNjY0NywgInN0ZXAiOiAxNzgwLCAidmFsdWUiOiAwLjA2Nzg1MjUwNDU1MTQxMDY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MDUuOTk4NDE0MywgInN0ZXAiOiAxNzkwLCAidmFsdWUiOiAwLjA1MjcyNDYzMzM2NTg2OTUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MTUuMDU1OTk3NiwgInN0ZXAiOiAxODAwLCAidmFsdWUiOiAwLjA0NTg2NjA2NDcyNzMwNjM2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDIzLjkwOTYxNjIsICJzdGVwIjogMTgxMCwgInZhbHVlIjogMC4wNDMxMjg5ODk2MzY4OTgwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDMyLjUzMzM0NywgInN0ZXAiOiAxODIwLCAidmFsdWUiOiAwLjA1NDAzNDI4ODk3MjYxNjE5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDQxLjIyMTA1MTcsICJzdGVwIjogMTgzMCwgInZhbHVlIjogMC4wNDE1ODA5OTc0MDc0MzYzN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDUwLjA5MTcxODIsICJzdGVwIjogMTg0MCwgInZhbHVlIjogMC4wMzU2ODYwNDIxNTk3OTU3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDYzLjEwOTA5NDksICJzdGVwIjogMTg1MCwgInZhbHVlIjogMC4wMzgwMzA0MzgxMjUxMzM1MTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ3MS41NzQ3OTYyLCAic3RlcCI6IDE4NjAsICJ2YWx1ZSI6IDAuMDMzOTY3OTE1OTIyNDAzMzM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0ODAuNDk5OTkzLCAic3RlcCI6IDE4NzAsICJ2YWx1ZSI6IDAuMDc0NjcyNDkwMzU4MzUyNjZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ4OS4zODY3MDIsICJzdGVwIjogMTg4MCwgInZhbHVlIjogMC4wNDg2ODU2MjUxOTU1MDMyMzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ5Ny45Nzg0OTIzLCAic3RlcCI6IDE4OTAsICJ2YWx1ZSI6IDAuMDU3NjkwOTQ4MjQ3OTA5NTQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MDYuNzk2MDI5OCwgInN0ZXAiOiAxOTAwLCAidmFsdWUiOiAwLjAzNDg0NTc5OTIwNzY4NzM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MTUuODI2Mzc3MiwgInN0ZXAiOiAxOTEwLCAidmFsdWUiOiAwLjA1Mjk0OTA5NzAwNzUxMzA0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTI0LjYzODI0MywgInN0ZXAiOiAxOTIwLCAidmFsdWUiOiAwLjAzOTU1NzA0NzE4ODI4MjAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MzMuNTQzOTM5NCwgInN0ZXAiOiAxOTMwLCAidmFsdWUiOiAwLjA2MTAyMjk1OTY0OTU2MjgzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTUwLjQ3OTY3LCAic3RlcCI6IDE5NDAsICJ2YWx1ZSI6IDAuMDI0NjYxODc2MjYxMjM0MjgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NTguODI5Nzg4NywgInN0ZXAiOiAxOTUwLCAidmFsdWUiOiAwLjA2MTcwOTc3NjUyMDcyOTA2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTY3Ljc1OTYxODgsICJzdGVwIjogMTk2MCwgInZhbHVlIjogMC4wNDIxNjYxNDM2NTU3NzY5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTc2LjM0NjkyMzYsICJzdGVwIjogMTk3MCwgInZhbHVlIjogMC4wNTMzNjUxOTcwMzI2OTAwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTg1LjUzMDg0NiwgInN0ZXAiOiAxOTgwLCAidmFsdWUiOiAwLjA1MjYyNzE0MjUxODc1ODc3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTk0LjM1MTk2ODgsICJzdGVwIjogMTk5MCwgInZhbHVlIjogMC4wNTE0MTExOTY1ODk0Njk5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjAyLjQwMzQwMDQsICJzdGVwIjogMjAwMCwgInZhbHVlIjogMC4wNjE0NDQ3NTE5MTgzMTU4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjEwLjI1MTY1OSwgInN0ZXAiOiAyMDEwLCAidmFsdWUiOiAwLjA1MzEyODU4NTIxOTM4MzI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MjYuNjg4NTExMSwgInN0ZXAiOiAyMDIwLCAidmFsdWUiOiAwLjA1MDgxODM0MjcxNTUwMTc4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjM1LjAzMjU4MzUsICJzdGVwIjogMjAzMCwgInZhbHVlIjogMC4wMzczOTI0MzAwMDc0NTc3M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjQzLjgyNDI4OSwgInN0ZXAiOiAyMDQwLCAidmFsdWUiOiAwLjA1NTI0NTg3NjMxMjI1NTg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NTIuMTk2MDcxNCwgInN0ZXAiOiAyMDUwLCAidmFsdWUiOiAwLjA1OTkwOTg2MTUzNDgzMzkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NjAuNDU1MTQzNywgInN0ZXAiOiAyMDYwLCAidmFsdWUiOiAwLjA3OTAyODUyNDQ1ODQwODM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NjkuNTkzNzM1NywgInN0ZXAiOiAyMDcwLCAidmFsdWUiOiAwLjAzNTE3ODk1NTY0NDM2OTEyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Njc4Ljc4MDEwOTIsICJzdGVwIjogMjA4MCwgInZhbHVlIjogMC4wNTQzNzc2ODk5NTc2MTg3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Njg2Ljk0NjU1NSwgInN0ZXAiOiAyMDkwLCAidmFsdWUiOiAwLjA1MjU2MzQ5MjIwODcxOTI1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzAwLjYwMzc5OSwgInN0ZXAiOiAyMTAwLCAidmFsdWUiOiAwLjAzODU0NzM3ODAzMzM5OTU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MDguNzI4MDAyMywgInN0ZXAiOiAyMTEwLCAidmFsdWUiOiAwLjA0MDY1MDA4ODM0MDA0NDAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MTcuNDQ5OTMzOCwgInN0ZXAiOiAyMTIwLCAidmFsdWUiOiAwLjA0ODgwMzQyMjYwMDAzMDl9LCB7IndhbGxUaW1lIjogMTczMzA2OTcyNi4xNDI5MjI0LCAic3RlcCI6IDIxMzAsICJ2YWx1ZSI6IDAuMDMyNjM3MTMwNDY5MDgzNzg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MzUuMDM5NzMyNSwgInN0ZXAiOiAyMTQwLCAidmFsdWUiOiAwLjAzMjQzOTYwNDQwMTU4ODQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NDMuMzA3NzQ1NSwgInN0ZXAiOiAyMTUwLCAidmFsdWUiOiAwLjA0MzM5MDA0MzA3OTg1MzA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NTIuNTAyNDYxNywgInN0ZXAiOiAyMTYwLCAidmFsdWUiOiAwLjA0Mjk1NzI1Mzc1NDEzODk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NjEuNDUyNjE0LCAic3RlcCI6IDIxNzAsICJ2YWx1ZSI6IDAuMDM2NzEwOTU4OTI3ODY5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzcwLjQzNDgxOSwgInN0ZXAiOiAyMTgwLCAidmFsdWUiOiAwLjA1MzcxNzExNzc1NjYwNTE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3ODQuMzY1NDY3OCwgInN0ZXAiOiAyMTkwLCAidmFsdWUiOiAwLjA0NDA5NTkyOTcxMjA1NzExNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzkzLjEyNDEzMDIsICJzdGVwIjogMjIwMCwgInZhbHVlIjogMC4wMzUzMDY1MjQ0ODUzNDk2NTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTgwMS42Mzc4MDIsICJzdGVwIjogMjIxMCwgInZhbHVlIjogMC4wNTYzMDE4MDk4NDczNTQ4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODEwLjYwOTQ4NzgsICJzdGVwIjogMjIyMCwgInZhbHVlIjogMC4wNDExMjM3MTA1NzI3MTk1NzR9LCB7IndhbGxUaW1lIjogMTczMzA2OTgxOS4zNDQxMzI3LCAic3RlcCI6IDIyMzAsICJ2YWx1ZSI6IDAuMDY0OTcwMjQ3NDQ3NDkwNjl9LCB7IndhbGxUaW1lIjogMTczMzA2OTgyNy4zMjc2MzU4LCAic3RlcCI6IDIyNDAsICJ2YWx1ZSI6IDAuMDQ4NzA3Njc4OTE0MDcwMTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTgzNS44Njk3NDEyLCAic3RlcCI6IDIyNTAsICJ2YWx1ZSI6IDAuMDM2Nzc3NzIzNTgwNTk4ODN9LCB7IndhbGxUaW1lIjogMTczMzA2OTg0NC4yMzc0OTI4LCAic3RlcCI6IDIyNjAsICJ2YWx1ZSI6IDAuMDQ3ODY1MzE2MjcxNzgxOTJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTg1Ni43NTA4NTYyLCAic3RlcCI6IDIyNzAsICJ2YWx1ZSI6IDAuMDcxMjU4MTc5ODQzNDI1NzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTg2NS4yNTkxMzgsICJzdGVwIjogMjI4MCwgInZhbHVlIjogMC4wNjExNzEzMTU2MTA0MDg3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODc0LjAwNzQsICJzdGVwIjogMjI5MCwgInZhbHVlIjogMC4wNDMyMzExNDQ1NDc0NjI0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODgxLjc4MzE3OTUsICJzdGVwIjogMjMwMCwgInZhbHVlIjogMC4wNDg3NDYyODQwOTc0MzMwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODkwLjQxNTMxNTQsICJzdGVwIjogMjMxMCwgInZhbHVlIjogMC4wMzI0NzQ2MTQ2Nzk4MTMzODV9LCB7IndhbGxUaW1lIjogMTczMzA2OTg5OC44NzgxMjY2LCAic3RlcCI6IDIzMjAsICJ2YWx1ZSI6IDAuMDUyMDMyODIwODgwNDEzMDU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MDguMzE5MTc5NSwgInN0ZXAiOiAyMzMwLCAidmFsdWUiOiAwLjAzODg4MTM4MDExMDk3OTA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MTcuNDE2NzA2MywgInN0ZXAiOiAyMzQwLCAidmFsdWUiOiAwLjAzNzk4NTk0Njk4MzA5ODk4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTI1Ljg1MjMyNTQsICJzdGVwIjogMjM1MCwgInZhbHVlIjogMC4wNDE4ODIwMDA4NjM1NTIwOTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTkzOC43MDUyMjQsICJzdGVwIjogMjM2MCwgInZhbHVlIjogMC4wNzYyNTk2ODAwOTIzMzQ3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTQ3LjQyNzYwNzMsICJzdGVwIjogMjM3MCwgInZhbHVlIjogMC4wMzA4NDkwMzIxMDQwMTUzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTU2LjIwOTEzNjUsICJzdGVwIjogMjM4MCwgInZhbHVlIjogMC4wNDU5NzQ4NjU1NTU3NjMyNDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTk2NC4yNzYyNTEsICJzdGVwIjogMjM5MCwgInZhbHVlIjogMC4wNzc2ODMxOTU0NzE3NjM2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTczLjMyNzQ3OSwgInN0ZXAiOiAyNDAwLCAidmFsdWUiOiAwLjAzNDI1NjA0ODUwMDUzNzg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5ODEuNDMzNTQyMywgInN0ZXAiOiAyNDEwLCAidmFsdWUiOiAwLjAyNDQyMzI2MjEwNDM5MjA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5OTAuMTQxMTMzNSwgInN0ZXAiOiAyNDIwLCAidmFsdWUiOiAwLjA0OTQyNzU4MzgxMzY2NzN9LCB7IndhbGxUaW1lIjogMTczMzA2OTk5OC44MDAwNDQsICJzdGVwIjogMjQzMCwgInZhbHVlIjogMC4wNDMwNDkyMDEzNjkyODU1ODN9LCB7IndhbGxUaW1lIjogMTczMzA3MDAxMi40NTcyMTY3LCAic3RlcCI6IDI0NDAsICJ2YWx1ZSI6IDAuMDQyMzEyMTA3OTgwMjUxMzF9LCB7IndhbGxUaW1lIjogMTczMzA3MDAyMS42MDA0MTY0LCAic3RlcCI6IDI0NTAsICJ2YWx1ZSI6IDAuMDQwMDM0MTExNTg5MTkzMzQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMzAuMTkyMzUsICJzdGVwIjogMjQ2MCwgInZhbHVlIjogMC4wMzk0Mjg3NTU2NDA5ODM1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDM5LjIyMDY4MSwgInN0ZXAiOiAyNDcwLCAidmFsdWUiOiAwLjA1MzM5NTk2MDQ3OTk3NDc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNDguMjcwMzA0NCwgInN0ZXAiOiAyNDgwLCAidmFsdWUiOiAwLjA0NDg5NDQyNzA2MTA4MDkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNTYuMTU3MTI5OCwgInN0ZXAiOiAyNDkwLCAidmFsdWUiOiAwLjAzNjU4NTgxMTUyNTU4MzI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNjQuNDUxOTk4NywgInN0ZXAiOiAyNTAwLCAidmFsdWUiOiAwLjAyNzM0MTA1NjYxNTExNDIxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDcyLjU1MzA0NiwgInN0ZXAiOiAyNTEwLCAidmFsdWUiOiAwLjA2MTM3MzU2OTA3MTI5Mjg4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwODcuNjU4MzA3MywgInN0ZXAiOiAyNTIwLCAidmFsdWUiOiAwLjAzMDYyNjIwOTQ1Mjc0ODN9LCB7IndhbGxUaW1lIjogMTczMzA3MDA5NS40NDMwNjQyLCAic3RlcCI6IDI1MzAsICJ2YWx1ZSI6IDAuMDI3MjA5MDI4NjAxNjQ2NDIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMDMuNzcwMjQ1NiwgInN0ZXAiOiAyNTQwLCAidmFsdWUiOiAwLjA1NDIzNTEzMDU0ODQ3NzE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMTMuMDUwNzQzOCwgInN0ZXAiOiAyNTUwLCAidmFsdWUiOiAwLjA0NTEzMjM2ODgwMzAyNDI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMjEuMDM5MTMxNiwgInN0ZXAiOiAyNTYwLCAidmFsdWUiOiAwLjA1NDExNDY0MzQ4NDM1NDAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMjkuNTg2MzUwNCwgInN0ZXAiOiAyNTcwLCAidmFsdWUiOiAwLjA0MjAwNTg4OTExNzcxNzc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMzguMzYyMTczOCwgInN0ZXAiOiAyNTgwLCAidmFsdWUiOiAwLjA0MzMzMDA4ODI1Nzc4OTYxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNDcuMDg4NjYzNiwgInN0ZXAiOiAyNTkwLCAidmFsdWUiOiAwLjA0NTYzOTgwNTQ5NTczODk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNTUuNDg4MjUzLCAic3RlcCI6IDI2MDAsICJ2YWx1ZSI6IDAuMDM2NzA4OTU0NzIxNjg5MjI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNzIuNTc4NjY1NSwgInN0ZXAiOiAyNjEwLCAidmFsdWUiOiAwLjA0Nzg4Njk2NzY1ODk5NjU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxODEuMjEyNDk1NiwgInN0ZXAiOiAyNjIwLCAidmFsdWUiOiAwLjAzNzIwNzE0MTUxODU5MjgzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTg5LjY5Mzc2MjgsICJzdGVwIjogMjYzMCwgInZhbHVlIjogMC4wNDc5NjMzMjEyMDg5NTM4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTk4LjQwMDQ2MzgsICJzdGVwIjogMjY0MCwgInZhbHVlIjogMC4wNTM0OTc1NTI4NzE3MDQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMDYuNzA4Nzk2NSwgInN0ZXAiOiAyNjUwLCAidmFsdWUiOiAwLjA0MjMxOTAyOTU2OTYyNTg1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjE1LjYwMDk3NDgsICJzdGVwIjogMjY2MCwgInZhbHVlIjogMC4wMzU4NjgyMzQ5MzI0MjI2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjI0LjMxNzYwODYsICJzdGVwIjogMjY3MCwgInZhbHVlIjogMC4wNDY4MDk4OTMxMDE0NTM3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjMzLjU0MDczNjcsICJzdGVwIjogMjY4MCwgInZhbHVlIjogMC4wNTExMTg4NTA3MDgwMDc4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjQ2Ljc1OTU0MDYsICJzdGVwIjogMjY5MCwgInZhbHVlIjogMC4wMzM3NzUxMzU4NzQ3NDgyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjU2LjAzMDQ5ODMsICJzdGVwIjogMjcwMCwgInZhbHVlIjogMC4wNTkwNzM5MzYxOTQxODE0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjY0Ljk1MjExMDMsICJzdGVwIjogMjcxMCwgInZhbHVlIjogMC4wMzIwOTgzMDA3NTUwMjM5NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDI3My44MjgzNTEsICJzdGVwIjogMjcyMCwgInZhbHVlIjogMC4wNDc3OTg2NzgyNzg5MjMwMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDI4Mi45NjA0MzY4LCAic3RlcCI6IDI3MzAsICJ2YWx1ZSI6IDAuMDQxNzczMjI2MTEyMTI3MzA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyOTIuMjc5MjQyMywgInN0ZXAiOiAyNzQwLCAidmFsdWUiOiAwLjAzNjQwMTg5NzY2ODgzODV9LCB7IndhbGxUaW1lIjogMTczMzA3MDMwMC4zMzgxMzA1LCAic3RlcCI6IDI3NTAsICJ2YWx1ZSI6IDAuMDU1MzgyOTI5NzQyMzM2Mjd9LCB7IndhbGxUaW1lIjogMTczMzA3MDMwOS40MTM1MzYsICJzdGVwIjogMjc2MCwgInZhbHVlIjogMC4wNTA1MTQxMTMxNTc5ODc1OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDMxNy41MzI5MTgsICJzdGVwIjogMjc3MCwgInZhbHVlIjogMC4wNDc4NTQ5MTUyNjEyNjg2MTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDMzMC40Mzc1NDk0LCAic3RlcCI6IDI3ODAsICJ2YWx1ZSI6IDAuMDQzNTIwMjk3ODU1MTM4Nzh9LCB7IndhbGxUaW1lIjogMTczMzA3MDMzOS44MjQ3MzQ0LCAic3RlcCI6IDI3OTAsICJ2YWx1ZSI6IDAuMDQyMDIzNjIxNDk5NTM4NDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDM0Ny45OTU5NDk1LCAic3RlcCI6IDI4MDAsICJ2YWx1ZSI6IDAuMDM1Njk1NzkxMjQ0NTA2ODM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNTYuODk1MjY2NSwgInN0ZXAiOiAyODEwLCAidmFsdWUiOiAwLjA0MjcwMjU0ODIwNTg1MjUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNjUuNTc4MzkwOCwgInN0ZXAiOiAyODIwLCAidmFsdWUiOiAwLjAzNDUzMjE1MjExNjI5ODY3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzc0LjM5NTA0NzQsICJzdGVwIjogMjgzMCwgInZhbHVlIjogMC4wMzMxMTk4MTI2MDc3NjUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzODIuNDI4MzY4MywgInN0ZXAiOiAyODQwLCAidmFsdWUiOiAwLjA1MzQ5NTk2OTYyMzMyNzI1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzkwLjk0MjcwMjMsICJzdGVwIjogMjg1MCwgInZhbHVlIjogMC4wMzA3MDU3MzMyMjQ3NDk1NjV9LCB7IndhbGxUaW1lIjogMTczMzA3MDQwNi42ODAwOTA0LCAic3RlcCI6IDI4NjAsICJ2YWx1ZSI6IDAuMDYzMzI4Mjg4NDk1NTQwNjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDQxNS4wOTE2MzI2LCAic3RlcCI6IDI4NzAsICJ2YWx1ZSI6IDAuMDU5NDM2NzY0NTY4MDkwNDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDQyMi45MjE0ODU3LCAic3RlcCI6IDI4ODAsICJ2YWx1ZSI6IDAuMDMwNzg1MzUzODU0Mjk4NTl9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzMS41Mzg3NTksICJzdGVwIjogMjg5MCwgInZhbHVlIjogMC4wMzM4Mjc5OTc3NDQwODM0MDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzOS45ODIzNzE4LCAic3RlcCI6IDI5MDAsICJ2YWx1ZSI6IDAuMDM2OTQwMTAxNTM0MTI4MTl9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ0OC4wODY5MzY1LCAic3RlcCI6IDI5MTAsICJ2YWx1ZSI6IDAuMDQ3ODg5MDIwMjkzOTUxMDM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NTcuNDI1MDY4NiwgInN0ZXAiOiAyOTIwLCAidmFsdWUiOiAwLjAzNDAzOTMxNDgzNjI2MzY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NjYuNzI0MzA1OSwgInN0ZXAiOiAyOTMwLCAidmFsdWUiOiAwLjA1MTgwNjA0NzU1ODc4NDQ4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDc5LjMzMzk4OTYsICJzdGVwIjogMjk0MCwgInZhbHVlIjogMC4wNDQ2NTAzNjA5NDE4ODY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0ODguNzgzNzYzNiwgInN0ZXAiOiAyOTUwLCAidmFsdWUiOiAwLjAzMDI4MjEzOTc3ODEzNzIwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDk3LjIyNjIyMjUsICJzdGVwIjogMjk2MCwgInZhbHVlIjogMC4wMzMxMDQxOTI0NjU1NDM3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTA1LjYzNTE4MjYsICJzdGVwIjogMjk3MCwgInZhbHVlIjogMC4wMzI2MTU2MzU1NDQwNjE2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTEzLjM1NTMxMSwgInN0ZXAiOiAyOTgwLCAidmFsdWUiOiAwLjA2MDM0OTQ0NTc5MDA1MjQxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTIyLjMxODY2ODYsICJzdGVwIjogMjk5MCwgInZhbHVlIjogMC4wMzg2MTg1NzU3ODE1ODM3ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDUzMC4yMTQwMDk1LCAic3RlcCI6IDMwMDAsICJ2YWx1ZSI6IDAuMDU4NTAyMDU1NzA0NTkzNjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDUzOC4zMDEzNTU4LCAic3RlcCI6IDMwMTAsICJ2YWx1ZSI6IDAuMDMxMTYzOTc5MzIxNzE4MjE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NDcuNDAxODYxNCwgInN0ZXAiOiAzMDIwLCAidmFsdWUiOiAwLjA0NTI4NzQ5MzYxNjM0MjU0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTY0LjA1MjI5OTMsICJzdGVwIjogMzAzMCwgInZhbHVlIjogMC4wMzk5NzUxNjI1OTU1MTA0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTcyLjM3MTA2MzcsICJzdGVwIjogMzA0MCwgInZhbHVlIjogMC4wMzA2ODc4NzA0NTc3Njg0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTgwLjY3MjQ0OTQsICJzdGVwIjogMzA1MCwgInZhbHVlIjogMC4wNTU4MDAzMDAwOTE1MDUwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTg4LjY1NDU0NywgInN0ZXAiOiAzMDYwLCAidmFsdWUiOiAwLjAyOTQ2ODczMDA5MjA0ODY0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTk3LjQyMjIxNSwgInN0ZXAiOiAzMDcwLCAidmFsdWUiOiAwLjAzNDM2MjIzNDE3NTIwNTIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MDYuMTM4NzU4NCwgInN0ZXAiOiAzMDgwLCAidmFsdWUiOiAwLjA2NDgzODkwMTE2MjE0NzUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MTQuNDQxMTM5NywgInN0ZXAiOiAzMDkwLCAidmFsdWUiOiAwLjA2MTcwMjQ4NjEyNzYxNDk3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjI0LjAwMTU3NjcsICJzdGVwIjogMzEwMCwgInZhbHVlIjogMC4wMjk1NjU2NzcwNDY3NzU4MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MDYzNy4yNTMzODQsICJzdGVwIjogMzExMCwgInZhbHVlIjogMC4wNDg0NjM2NTAwNDc3NzkwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjQ1LjY4MzM1NzcsICJzdGVwIjogMzEyMCwgInZhbHVlIjogMC4wMzIxMzM4OTIxNzg1MzU0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjU0LjI3MDkzNDYsICJzdGVwIjogMzEzMCwgInZhbHVlIjogMC4wNDY2NzkyMjEwOTM2NTQ2M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjYzLjMyMTc0MjMsICJzdGVwIjogMzE0MCwgInZhbHVlIjogMC4wMzk0OTMyNzc2Njg5NTI5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjcxLjExODQwMTUsICJzdGVwIjogMzE1MCwgInZhbHVlIjogMC4wNTg5MTUwNjAwMTM1MzI2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjc5Ljc2NTk0MjgsICJzdGVwIjogMzE2MCwgInZhbHVlIjogMC4wMjc3MTA4NzczNTg5MTM0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjg3Ljg0NTkxNjUsICJzdGVwIjogMzE3MCwgInZhbHVlIjogMC4wNTYzOTM5NzM1MjkzMzg4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjk1Ljg1NjE1NTYsICJzdGVwIjogMzE4MCwgInZhbHVlIjogMC4wMzExNzE2NTUyODIzNzgxOTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDcwNC42MjI4NzQ3LCAic3RlcCI6IDMxOTAsICJ2YWx1ZSI6IDAuMDM1MjM1NTY4ODgxMDM0ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MDcxNy4xMDkyMzgsICJzdGVwIjogMzIwMCwgInZhbHVlIjogMC4wNDgwOTY0MDM0Nzk1NzYxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzI2LjA5OTA1NzcsICJzdGVwIjogMzIxMCwgInZhbHVlIjogMC4wNDc5Mjg0NDg3NjY0Njk5NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDczNC43Nzg1MTQsICJzdGVwIjogMzIyMCwgInZhbHVlIjogMC4wNDgyMzM3MzI1ODExMzg2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzQ0LjQxMjg5NzgsICJzdGVwIjogMzIzMCwgInZhbHVlIjogMC4wMjg2ODUxNDUwODAwODk1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzUyLjUwMjA0NTYsICJzdGVwIjogMzI0MCwgInZhbHVlIjogMC4wNDE5NDk3Njc2MTkzNzE0MTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDc2MS43MjE3NDk1LCAic3RlcCI6IDMyNTAsICJ2YWx1ZSI6IDAuMDI3NjA3MzQwMzY1NjQ4Mjd9LCB7IndhbGxUaW1lIjogMTczMzA3MDc3MC4zNzcwNjUyLCAic3RlcCI6IDMyNjAsICJ2YWx1ZSI6IDAuMDI3MDU1MjMzNzE2OTY0NzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDc3OS43MzAzNzY3LCAic3RlcCI6IDMyNzAsICJ2YWx1ZSI6IDAuMDM1Njk2NzA3NjY1OTIwMjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDc5My42NzkwMDY4LCAic3RlcCI6IDMyODAsICJ2YWx1ZSI6IDAuMDM0Nzg4Nzg3MzY0OTU5NzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDgwMS45MDAzNzksICJzdGVwIjogMzI5MCwgInZhbHVlIjogMC4wMjgwMTg5NjgxNzk4MjE5Njh9LCB7IndhbGxUaW1lIjogMTczMzA3MDgxMC4xNjE0NDU0LCAic3RlcCI6IDMzMDAsICJ2YWx1ZSI6IDAuMDI3MzA3MjUzMzMwOTQ1OTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDgxOC43MjY5NzE0LCAic3RlcCI6IDMzMTAsICJ2YWx1ZSI6IDAuMDM5NjM5MTUyNTg2NDYwMTE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MjcuMDA4NTcyOCwgInN0ZXAiOiAzMzIwLCAidmFsdWUiOiAwLjA0NDYzODU4NTI5OTI1MzQ2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODM1LjU3NjEzNCwgInN0ZXAiOiAzMzMwLCAidmFsdWUiOiAwLjA2NTA4NTY0OTQ5MDM1NjQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NDMuOTc2Mjk1NywgInN0ZXAiOiAzMzQwLCAidmFsdWUiOiAwLjA0MDU4OTc3OTYxNTQwMjIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NTMuMDkyMjgzNywgInN0ZXAiOiAzMzUwLCAidmFsdWUiOiAwLjA1NzU1MDQ2MDEwMDE3Mzk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NjUuNDE5OTgzOSwgInN0ZXAiOiAzMzYwLCAidmFsdWUiOiAwLjAzMzM3ODA5MDcwOTQ0Nzg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NzMuNjYyMDU2NCwgInN0ZXAiOiAzMzcwLCAidmFsdWUiOiAwLjAzNjExMDAxNzQ0ODY2MzcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4ODMuMzM2NDE2MiwgInN0ZXAiOiAzMzgwLCAidmFsdWUiOiAwLjAzNDgzNTk2NDQ0MTI5OTQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4OTIuMzc3Mzg3MywgInN0ZXAiOiAzMzkwLCAidmFsdWUiOiAwLjAzNTk2Mjc1NjcyMzE2NTUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MDAuNzIyNzgxMiwgInN0ZXAiOiAzNDAwLCAidmFsdWUiOiAwLjA0OTM4Nzc2NzkxMDk1NzMzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTA4LjUwNDU5NjIsICJzdGVwIjogMzQxMCwgInZhbHVlIjogMC4wMjk4MTU2MzY1NzUyMjIwMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDkxNi42NTYxODMsICJzdGVwIjogMzQyMCwgInZhbHVlIjogMC4wNDQzMjc4MTA0MDY2ODQ4NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDkyNS4yMTExMjk3LCAic3RlcCI6IDM0MzAsICJ2YWx1ZSI6IDAuMDM1NjEyNDY3Njc2NDAxMTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDkzMy44MTA3MDk3LCAic3RlcCI6IDM0NDAsICJ2YWx1ZSI6IDAuMDM4MzE4Mjk1MDMxNzg1OTY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NDcuNDgwMjM4NywgInN0ZXAiOiAzNDUwLCAidmFsdWUiOiAwLjAzMzcxMzQ2NzQxOTE0NzQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NTYuMTg3OTY0MiwgInN0ZXAiOiAzNDYwLCAidmFsdWUiOiAwLjAzMTc1Njc1ODY4OTg4MDM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NjQuMjY2NzgzNSwgInN0ZXAiOiAzNDcwLCAidmFsdWUiOiAwLjA5NzU5OTI2Nzk1OTU5NDczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NzIuMzg2NTYzLCAic3RlcCI6IDM0ODAsICJ2YWx1ZSI6IDAuMDQzMTMwNDM1MDQ5NTMzODQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5ODAuNjQ3NTQ0NCwgInN0ZXAiOiAzNDkwLCAidmFsdWUiOiAwLjA0MjU5NzYzMjg1NTE3NjkyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTg5LjY4ODE5MTcsICJzdGVwIjogMzUwMCwgInZhbHVlIjogMC4wMzUxMzI2NjE0NjE4MzAxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTk3Ljc4OTE0ODYsICJzdGVwIjogMzUxMCwgInZhbHVlIjogMC4wNTQ2NzQ1NjIwNjY3OTM0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDA2LjI3MTg4ODUsICJzdGVwIjogMzUyMCwgInZhbHVlIjogMC4wNjM0Njc0OTUxNDM0MTM1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDE4Ljg5NjU5ODYsICJzdGVwIjogMzUzMCwgInZhbHVlIjogMC4wNDI1MTQyMTI0Mjk1MjM0N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDI3LjE5Nzc4NywgInN0ZXAiOiAzNTQwLCAidmFsdWUiOiAwLjAyMzg3NDU4ODMxMDcxODUzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDM1LjMyMTEyNDYsICJzdGVwIjogMzU1MCwgInZhbHVlIjogMC4wNTIxMDYwNzg3MTQxMzIzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDQzLjc0NjI2OSwgInN0ZXAiOiAzNTYwLCAidmFsdWUiOiAwLjAzNTE1NTk3MDYwMzIyNzYxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDUxLjg3MjY5OSwgInN0ZXAiOiAzNTcwLCAidmFsdWUiOiAwLjA0NzgxMjgzODEwNzM0NzQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNjAuNDk2Njc4OCwgInN0ZXAiOiAzNTgwLCAidmFsdWUiOiAwLjA0MjkxMjQ2ODMxNDE3MDg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNjguODgwMDM1OSwgInN0ZXAiOiAzNTkwLCAidmFsdWUiOiAwLjA0ODE4NjI2MTIwNjg2NTMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNzcuNzEzNDY0LCAic3RlcCI6IDM2MDAsICJ2YWx1ZSI6IDAuMDQxMzE0NTA4NzY1OTM1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDg2LjIxMjk4NzQsICJzdGVwIjogMzYxMCwgInZhbHVlIjogMC4wMzgxMzQwMzA5OTc3NTMxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTAxLjY1OTMzNCwgInN0ZXAiOiAzNjIwLCAidmFsdWUiOiAwLjA0MTIyMzI2MTUwNTM2NTM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMDkuNjIyMzc1LCAic3RlcCI6IDM2MzAsICJ2YWx1ZSI6IDAuMDQ3NzM0Njk2NDE4MDQ2OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTExOC4xMjk4ODA3LCAic3RlcCI6IDM2NDAsICJ2YWx1ZSI6IDAuMDM2MjEwOTYxNjM5ODgxMTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMjYuOTkzNzg5LCAic3RlcCI6IDM2NTAsICJ2YWx1ZSI6IDAuMDMzNTY5MDYzOTkxMzA4MjF9LCB7IndhbGxUaW1lIjogMTczMzA3MTEzNS44MjgwNDEzLCAic3RlcCI6IDM2NjAsICJ2YWx1ZSI6IDAuMDQ1Nzc3MTQ1NzczMTcyMzh9LCB7IndhbGxUaW1lIjogMTczMzA3MTE0NC4yNDkwODE2LCAic3RlcCI6IDM2NzAsICJ2YWx1ZSI6IDAuMDM4ODE0OTc2ODExNDA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNTIuOTY1MDU5MywgInN0ZXAiOiAzNjgwLCAidmFsdWUiOiAwLjAzNTA2MDQzMTgwODIzMzI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNjAuNjA0MDY5NywgInN0ZXAiOiAzNjkwLCAidmFsdWUiOiAwLjAzNTI1NTQxMzUwMjQ1NDc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNzMuNzUwOTUyNSwgInN0ZXAiOiAzNzAwLCAidmFsdWUiOiAwLjAzNzkwMDQwMzE0MTk3NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTE4Mi44ODM4NzIzLCAic3RlcCI6IDM3MTAsICJ2YWx1ZSI6IDAuMDMwNjQ5NjQxNTI4NzI1NjI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExOTEuMjEwODEwNywgInN0ZXAiOiAzNzIwLCAidmFsdWUiOiAwLjA2MTM4MTcyMDAwNjQ2NTkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMDAuMzM0MDQ5NywgInN0ZXAiOiAzNzMwLCAidmFsdWUiOiAwLjAyNTIzODM0MjU4MzE3OTQ3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjA4LjM2NjM1MzgsICJzdGVwIjogMzc0MCwgInZhbHVlIjogMC4wMjc0NDI2NDcxNDQxOTg0MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MTIxNi41NzI1NTQ4LCAic3RlcCI6IDM3NTAsICJ2YWx1ZSI6IDAuMDU1MzMyMjI4NTQxMzc0MjF9LCB7IndhbGxUaW1lIjogMTczMzA3MTIyNC42NjI1MSwgInN0ZXAiOiAzNzYwLCAidmFsdWUiOiAwLjAyNjA1ODUzNzg4NTU0NjY4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjMyLjg2MTM5NDQsICJzdGVwIjogMzc3MCwgInZhbHVlIjogMC4wNTk3OTI2MDQyOTczOTk1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjQ4LjUzNDE3OTcsICJzdGVwIjogMzc4MCwgInZhbHVlIjogMC4wMjgwMjUwNTE1Nzg4NzkzNTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTI1Ny4zOTIzOTAzLCAic3RlcCI6IDM3OTAsICJ2YWx1ZSI6IDAuMDMzNjg5Nzg5NDc0MDEwNDd9LCB7IndhbGxUaW1lIjogMTczMzA3MTI2NS41Njc5ODM2LCAic3RlcCI6IDM4MDAsICJ2YWx1ZSI6IDAuMDMzNTAxNjYyMzEzOTM4MTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTI3NC4xOTg3NjI0LCAic3RlcCI6IDM4MTAsICJ2YWx1ZSI6IDAuMDM1MDM2NDkzMDkyNzc1MzQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyODMuMDE4NTk3NiwgInN0ZXAiOiAzODIwLCAidmFsdWUiOiAwLjAzNTE5NTEwMTA1MjUyMjY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyOTEuNzMwNDQ2LCAic3RlcCI6IDM4MzAsICJ2YWx1ZSI6IDAuMDMyMTcxOTgzMjcxODM3MjM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyOTkuODk0NzM1LCAic3RlcCI6IDM4NDAsICJ2YWx1ZSI6IDAuMDMyMDMyNjgzNDkxNzA2ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MTMwOC40ODAyMDA4LCAic3RlcCI6IDM4NTAsICJ2YWx1ZSI6IDAuMDQ2NDQ0OTIyNjg1NjIzMTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTMxNi45NTIzMDQxLCAic3RlcCI6IDM4NjAsICJ2YWx1ZSI6IDAuMDM5NDc1NDQ0NzA0Mjk0MjA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMzAuMjE2MDM1LCAic3RlcCI6IDM4NzAsICJ2YWx1ZSI6IDAuMDQyOTA2Mjc2ODgxNjk0Nzk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMzguOTg5Njk2MywgInN0ZXAiOiAzODgwLCAidmFsdWUiOiAwLjA0NDA5MTM3MzY4MjAyMjA5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzQ3LjczNzYzNjMsICJzdGVwIjogMzg5MCwgInZhbHVlIjogMC4wMjU5MDkzNjQyMjM0ODAyMjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTM1Ny4wMzU1OTgsICJzdGVwIjogMzkwMCwgInZhbHVlIjogMC4wMzM0Mzc1Mzg4OTIwMzA3MTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTM2NS4yMjYzMTg2LCAic3RlcCI6IDM5MTAsICJ2YWx1ZSI6IDAuMDY0MDAxMjk5NDQwODYwNzV9LCB7IndhbGxUaW1lIjogMTczMzA3MTM3NC4xMzU1Nzk2LCAic3RlcCI6IDM5MjAsICJ2YWx1ZSI6IDAuMDQ4ODY5MDg4MjkyMTIxODl9LCB7IndhbGxUaW1lIjogMTczMzA3MTM4Mi44MTQ4MTg5LCAic3RlcCI6IDM5MzAsICJ2YWx1ZSI6IDAuMDUxNDU4MDcxOTE3Mjk1NDU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzOTEuNTY5MzU1LCAic3RlcCI6IDM5NDAsICJ2YWx1ZSI6IDAuMDMwNjAyMzMwMzQxOTM1MTU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MDQuNDY4MzUwNCwgInN0ZXAiOiAzOTUwLCAidmFsdWUiOiAwLjAyOTA1MDM3NjI2NjI0MTA3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDEyLjMzOTkwODQsICJzdGVwIjogMzk2MCwgInZhbHVlIjogMC4wMjk2MjA0ODkxMDU1ODIyMzd9LCB7IndhbGxUaW1lIjogMTczMzA3MTQyMS4xNTg1MzQsICJzdGVwIjogMzk3MCwgInZhbHVlIjogMC4wNDM5MDMzNjU3MzEyMzkzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDMwLjEyMTU3MjUsICJzdGVwIjogMzk4MCwgInZhbHVlIjogMC4wMzQyNTA3NjIzMTM2MDQzNTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTQzOC40MTUwNjgsICJzdGVwIjogMzk5MCwgInZhbHVlIjogMC4wNDk5NDk2MjM2NDQzNTE5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDQ3LjcyOTkxNzMsICJzdGVwIjogNDAwMCwgInZhbHVlIjogMC4wMjUwNTMxMTkyODY4OTQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NTYuMTk3NjMxLCAic3RlcCI6IDQwMTAsICJ2YWx1ZSI6IDAuMDc1NDEzMjc5MjM1MzYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NjQuNzUwNTIyLCAic3RlcCI6IDQwMjAsICJ2YWx1ZSI6IDAuMDM5MjI4MjgyODY4ODYyMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ3My4zOTg3MTcsICJzdGVwIjogNDAzMCwgInZhbHVlIjogMC4wMzYzNjA4MTUxNjc0MjcwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDkwLjI4NzUyOTUsICJzdGVwIjogNDA0MCwgInZhbHVlIjogMC4wNDA4MzA1NDE0MDIxMDE1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDk4LjcxMjgwMSwgInN0ZXAiOiA0MDUwLCAidmFsdWUiOiAwLjA0Mzc4NjE5MDQ1MDE5MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTUwNy4wOTg2NTg4LCAic3RlcCI6IDQwNjAsICJ2YWx1ZSI6IDAuMDMwNDkwMDQ2MzY3MDQ5MjE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MTUuMDY4OTMzNywgInN0ZXAiOiA0MDcwLCAidmFsdWUiOiAwLjA2NjA2ODkyNDk2MzQ3NDI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MjMuOTA3OTE0MiwgInN0ZXAiOiA0MDgwLCAidmFsdWUiOiAwLjAyOTg3NjM1MTM1NjUwNjM0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTMyLjI4Njc1NCwgInN0ZXAiOiA0MDkwLCAidmFsdWUiOiAwLjAzNjY0MTY1MzYyNzE1NzIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NDAuOTE4ODMyLCAic3RlcCI6IDQxMDAsICJ2YWx1ZSI6IDAuMDI2NTE5MjU5NDM3OTE4NjYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NDkuMTc3NDQ3OCwgInN0ZXAiOiA0MTEwLCAidmFsdWUiOiAwLjAyODI0NjgwNTA3MTgzMDc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NjUuODM3MzI1NiwgInN0ZXAiOiA0MTIwLCAidmFsdWUiOiAwLjAyODA4NTQ1MTU3MzEzMzQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NzMuNjMzMDQ5MiwgInN0ZXAiOiA0MTMwLCAidmFsdWUiOiAwLjAzMjI2MDAyMzA1NzQ2MDc4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTgyLjA5NzYwNDMsICJzdGVwIjogNDE0MCwgInZhbHVlIjogMC4wNDUwMTI4ODc1NjcyODE3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTkwLjAyNDE4MiwgInN0ZXAiOiA0MTUwLCAidmFsdWUiOiAwLjA0MjUzOTE3OTMyNTEwMzc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1OTkuMjQyNTE5NiwgInN0ZXAiOiA0MTYwLCAidmFsdWUiOiAwLjAzMjc0MzI4NjM0MTQyODc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2MDguMDczMzE2OCwgInN0ZXAiOiA0MTcwLCAidmFsdWUiOiAwLjAzNjM1NTc1OTk0ODQ5MjA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2MTYuMTg1NTc3OSwgInN0ZXAiOiA0MTgwLCAidmFsdWUiOiAwLjA2NjQ1MDUyMTM0OTkwNjkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2MjYuMDg0NDk1MywgInN0ZXAiOiA0MTkwLCAidmFsdWUiOiAwLjAzMDUzNDg2NzE5NzI3NTE2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjQxLjAwOTk0OTQsICJzdGVwIjogNDIwMCwgInZhbHVlIjogMC4wMzU0MzU1OTgzNDM2MTA3NjR9LCB7IndhbGxUaW1lIjogMTczMzA3MTY0OS4wNDI0MzQyLCAic3RlcCI6IDQyMTAsICJ2YWx1ZSI6IDAuMDQ1MTA5NDUwODE3MTA4MTU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NTguNTMzMTg0OCwgInN0ZXAiOiA0MjIwLCAidmFsdWUiOiAwLjA0MjUwMzc4OTA2NzI2ODM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NjcuOTY3ODQ4MywgInN0ZXAiOiA0MjMwLCAidmFsdWUiOiAwLjAyODA4MTE0ODg2MjgzODc0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjc2LjExMDU2MzUsICJzdGVwIjogNDI0MCwgInZhbHVlIjogMC4wMjY4NDI5MjM4MzQ5MTk5M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjg0LjM4MDM3OTcsICJzdGVwIjogNDI1MCwgInZhbHVlIjogMC4wNDc2ODI3MjQ4OTMwOTMxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjkzLjExMTQ1NDcsICJzdGVwIjogNDI2MCwgInZhbHVlIjogMC4wMjQyNzU4NDQ5MTY3MDEzMTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTcwMi4xODU3MjksICJzdGVwIjogNDI3MCwgInZhbHVlIjogMC4wNDU5MzYzMTYyNTE3NTQ3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzEwLjYzMjU4NzIsICJzdGVwIjogNDI4MCwgInZhbHVlIjogMC4wMjM5NDYyOTY0MjM2NzM2M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzI2LjY3ODYxOCwgInN0ZXAiOiA0MjkwLCAidmFsdWUiOiAwLjAzNjgxNTUyNDEwMTI1NzMyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzM1LjIxNzQzLCAic3RlcCI6IDQzMDAsICJ2YWx1ZSI6IDAuMDM5OTUwNzQzMzE3NjA0MDY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NDIuOTU4OTQ0NiwgInN0ZXAiOiA0MzEwLCAidmFsdWUiOiAwLjAzNjU3MjM2Njk1Mjg5NjEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NTEuNTg3NTQ5NCwgInN0ZXAiOiA0MzIwLCAidmFsdWUiOiAwLjAzMTUyODY2Mjg5MDE5NTg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NjAuMDM2ODE0LCAic3RlcCI6IDQzMzAsICJ2YWx1ZSI6IDAuMDMwODY4MDg2OTYzODkxOTgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NjguNDMzMTg1OCwgInN0ZXAiOiA0MzQwLCAidmFsdWUiOiAwLjAzMzA0NzI4ODY1NjIzNDc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NzcuNDA0MDczMiwgInN0ZXAiOiA0MzUwLCAidmFsdWUiOiAwLjA0NDQ4OTU3MzY4NzMxNDk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3ODUuNTQ5MTg0MywgInN0ZXAiOiA0MzYwLCAidmFsdWUiOiAwLjA0Mjc4Nzc2Nzk0NjcyMDEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MDAuODg2NjY3NywgInN0ZXAiOiA0MzcwLCAidmFsdWUiOiAwLjA0MDQ1MjQ5NTIxNzMyMzN9LCB7IndhbGxUaW1lIjogMTczMzA3MTgwOS4yNjc3MDIsICJzdGVwIjogNDM4MCwgInZhbHVlIjogMC4wMzI3ODU1NTM0ODUxNTUxMDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTgxNy4zNDgyNzUsICJzdGVwIjogNDM5MCwgInZhbHVlIjogMC4wNzA4NjI5MzM5OTMzMzk1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODI2LjQzMjMxMTMsICJzdGVwIjogNDQwMCwgInZhbHVlIjogMC4wNDU3NDMyNzkxNTkwNjkwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODM0Ljg4OTQ3MywgInN0ZXAiOiA0NDEwLCAidmFsdWUiOiAwLjA0NjY2MTg5MTA0MzE4NjE5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NDMuNDQ4NzU1MywgInN0ZXAiOiA0NDIwLCAidmFsdWUiOiAwLjA1MzU0NTI0MDMxMjgxNDcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NTEuNTk3OTE5LCAic3RlcCI6IDQ0MzAsICJ2YWx1ZSI6IDAuMDMzNzI4OTgzMjUzMjQwNTg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NTkuOTI2MDg2NCwgInN0ZXAiOiA0NDQwLCAidmFsdWUiOiAwLjAyODUzODY2ODUyODE5OTE5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODY4LjY3NTEyMiwgInN0ZXAiOiA0NDUwLCAidmFsdWUiOiAwLjA0MjEyMjY3Njk2ODU3NDUyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODgxLjMzODA3MTgsICJzdGVwIjogNDQ2MCwgInZhbHVlIjogMC4wMzQwNzQyMzk0MzI4MTE3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODg5LjYzOTI4MDgsICJzdGVwIjogNDQ3MCwgInZhbHVlIjogMC4wMzU3NTg2ODUzMjA2MTU3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxODk4LjQyMjcxNzMsICJzdGVwIjogNDQ4MCwgInZhbHVlIjogMC4wMzM3NjU4MTE0NzMxMzExOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTA3LjMzNzg5NTksICJzdGVwIjogNDQ5MCwgInZhbHVlIjogMC4wNDE2NzY4MzA1MDAzNjQzMDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTkxNi4yODAwOTI1LCAic3RlcCI6IDQ1MDAsICJ2YWx1ZSI6IDAuMDQ1MjQ2MzEwNTMyMDkzMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTkyNS4zNTA1NDE0LCAic3RlcCI6IDQ1MTAsICJ2YWx1ZSI6IDAuMDQ3MDY1NjUyOTA2ODk0Njg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5MzMuMzMxMjQwMiwgInN0ZXAiOiA0NTIwLCAidmFsdWUiOiAwLjA1NDQ1NDA4ODIxMTA1OTU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NDEuNDg0NTIxLCAic3RlcCI6IDQ1MzAsICJ2YWx1ZSI6IDAuMDM1Nzk1NTI0NzE2Mzc3MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTk1NC4xNzA4MzMsICJzdGVwIjogNDU0MCwgInZhbHVlIjogMC4wMjcyNTY5NjU2MzcyMDcwM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTYyLjM5NzYzNzQsICJzdGVwIjogNDU1MCwgInZhbHVlIjogMC4wMzE4NDUwODE1OTc1NjY2MDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTk3MC41MTUxMzYyLCAic3RlcCI6IDQ1NjAsICJ2YWx1ZSI6IDAuMDQzNTE1Mjc5ODg5MTA2NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MTk3OC44NzE3MzgyLCAic3RlcCI6IDQ1NzAsICJ2YWx1ZSI6IDAuMDMxNTU3MDY4MjI4NzIxNjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTk4Ny43MTIyNjcsICJzdGVwIjogNDU4MCwgInZhbHVlIjogMC4wNTYyNDU1MzU2MTIxMDYzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTk2LjQ0Njc5NzgsICJzdGVwIjogNDU5MCwgInZhbHVlIjogMC4wNTI5NDc5NjA3OTM5NzIwMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjAwNC40Nzc2OTc2LCAic3RlcCI6IDQ2MDAsICJ2YWx1ZSI6IDAuMDIwMzIzMjQ2NzE3NDUzMDAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMTIuNzQ2NDgwNywgInN0ZXAiOiA0NjEwLCAidmFsdWUiOiAwLjAzMzg3Mjk5OTI1MDg4ODgyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDI1LjQwMTkyNzIsICJzdGVwIjogNDYyMCwgInZhbHVlIjogMC4wNDM2ODYzMTU0MTcyODk3MzR9LCB7IndhbGxUaW1lIjogMTczMzA3MjAzNC4xMTk5NDAzLCAic3RlcCI6IDQ2MzAsICJ2YWx1ZSI6IDAuMDI1NTk0NTg2NTA2NDg1OTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjA0My4wMzk0NTM1LCAic3RlcCI6IDQ2NDAsICJ2YWx1ZSI6IDAuMDQwNTkwMDE0MzA4NjkxMDI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNTEuNzg3OTE4LCAic3RlcCI6IDQ2NTAsICJ2YWx1ZSI6IDAuMDMxNTA0MTQ2NzU0NzQxNjd9LCB7IndhbGxUaW1lIjogMTczMzA3MjA2MC4xMDk3MDQzLCAic3RlcCI6IDQ2NjAsICJ2YWx1ZSI6IDAuMDQ4MzcxODMyODE3NzkyODl9LCB7IndhbGxUaW1lIjogMTczMzA3MjA2OC42MDQ0ODcsICJzdGVwIjogNDY3MCwgInZhbHVlIjogMC4wNTEwNjgyMzg5MTQwMTI5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDc2LjgzNzg5NDIsICJzdGVwIjogNDY4MCwgInZhbHVlIjogMC4wNDE1MTA2NTI3NTA3MzA1MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjA4NS4zNzcyNjg2LCAic3RlcCI6IDQ2OTAsICJ2YWx1ZSI6IDAuMDI4MjU1NDkyNDQ4ODA2NzYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwOTMuNzQ5NzQ0NCwgInN0ZXAiOiA0NzAwLCAidmFsdWUiOiAwLjA0MDAyMzQ3OTYxMDY4MTUzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTA2Ljk5MDkxNTMsICJzdGVwIjogNDcxMCwgInZhbHVlIjogMC4wNDMxMTUzODQ4NzY3MjgwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTE1LjY2NjM2MzUsICJzdGVwIjogNDcyMCwgInZhbHVlIjogMC4wNTQ3NDgxMTQxOTg0NDYyNzR9LCB7IndhbGxUaW1lIjogMTczMzA3MjEyMy45NTE3NjcsICJzdGVwIjogNDczMCwgInZhbHVlIjogMC4wNDk0MTE5NzQ4NDczMTY3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTMyLjI4MTg0MSwgInN0ZXAiOiA0NzQwLCAidmFsdWUiOiAwLjAzMjQwMzk2NDU0OTMwMzA1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTQwLjQyMTgzMSwgInN0ZXAiOiA0NzUwLCAidmFsdWUiOiAwLjA2NTE2MDEyNTQ5NDAwMzN9LCB7IndhbGxUaW1lIjogMTczMzA3MjE0OS4wODgyODEyLCAic3RlcCI6IDQ3NjAsICJ2YWx1ZSI6IDAuMDI3ODAyODA2MzQ3NjA4NTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNTcuNDEzMDAwOCwgInN0ZXAiOiA0NzcwLCAidmFsdWUiOiAwLjAzMTQwODkyNDYwOTQyMjY4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTY1LjQ5MDQzMjMsICJzdGVwIjogNDc4MCwgInZhbHVlIjogMC4wNTczMjE4MTY2ODI4MTU1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTc5LjY1MTA1NCwgInN0ZXAiOiA0NzkwLCAidmFsdWUiOiAwLjAzNjIwODkwOTAwNDkyNjY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxODguMzMwNzcsICJzdGVwIjogNDgwMCwgInZhbHVlIjogMC4wMjkwMTEyMzA5MTU3ODQ4MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjE5Ni44NDgxMzkzLCAic3RlcCI6IDQ4MTAsICJ2YWx1ZSI6IDAuMDQyMTQyODgyOTQzMTUzMzh9LCB7IndhbGxUaW1lIjogMTczMzA3MjIwNC41NjM0MDM4LCAic3RlcCI6IDQ4MjAsICJ2YWx1ZSI6IDAuMDM3MjE3Njg0MDkwMTM3NDh9LCB7IndhbGxUaW1lIjogMTczMzA3MjIxMy4xMDA3NjMzLCAic3RlcCI6IDQ4MzAsICJ2YWx1ZSI6IDAuMDI0MjUwNTk0ODk5MDU4MzQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMjEuNjY4MjI4NCwgInN0ZXAiOiA0ODQwLCAidmFsdWUiOiAwLjAyNjU3MDgyODYzMTUyMDI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMjkuODk1MTg4MywgInN0ZXAiOiA0ODUwLCAidmFsdWUiOiAwLjAyNjkwOTc5Mjc5NTc3NzMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMzguMDU3MzUzMywgInN0ZXAiOiA0ODYwLCAidmFsdWUiOiAwLjAzOTQxNzQ3NTQ2MTk1OTg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNDYuMzQ0NzQ2NCwgInN0ZXAiOiA0ODcwLCAidmFsdWUiOiAwLjAyNjI3NDE5MTIxNTYzNDM0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjYxLjI2ODU0MzIsICJzdGVwIjogNDg4MCwgInZhbHVlIjogMC4wMzU4MjA3NzQ3MzQwMjAyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjY5Ljg1Mzg4NjYsICJzdGVwIjogNDg5MCwgInZhbHVlIjogMC4wMzkzNzgxODg1NTA0NzIyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjc4Ljg4MTUyMzQsICJzdGVwIjogNDkwMCwgInZhbHVlIjogMC4wMzc0ODM4NTYwODE5NjI1ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MjI4Ny41MzU2NzU4LCAic3RlcCI6IDQ5MTAsICJ2YWx1ZSI6IDAuMDMxNDM4OTI4MDk3NDg2NDk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyOTUuOTQ4NDc2LCAic3RlcCI6IDQ5MjAsICJ2YWx1ZSI6IDAuMDM1MjM3MzE5NzY3NDc1MTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjMwNC4zNTY1ODI2LCAic3RlcCI6IDQ5MzAsICJ2YWx1ZSI6IDAuMDQ3MzIxOTkwMTMyMzMxODV9LCB7IndhbGxUaW1lIjogMTczMzA3MjMxMy41MTExMDY3LCAic3RlcCI6IDQ5NDAsICJ2YWx1ZSI6IDAuMDMxMzc4NzQ2MDMyNzE0ODQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMjEuMzI2NjM2NiwgInN0ZXAiOiA0OTUwLCAidmFsdWUiOiAwLjAzNjExNjI1MzU4NDYyMzM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMzcuMDI2MzAwNywgInN0ZXAiOiA0OTYwLCAidmFsdWUiOiAwLjAzMTMzMDQzMjc0MjgzNDA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNDUuNTM0MDYyLCAic3RlcCI6IDQ5NzAsICJ2YWx1ZSI6IDAuMDI3MTM2NzIwNzE2OTUzMjc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNTMuNDMxMDg2NSwgInN0ZXAiOiA0OTgwLCAidmFsdWUiOiAwLjAyNjA3MDEyNTQwMTAyMDA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNjIuNDE0NTY4NCwgInN0ZXAiOiA0OTkwLCAidmFsdWUiOiAwLjA0NTUwMjMwNTAzMDgyMjc1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzcxLjc0NzMwNTYsICJzdGVwIjogNTAwMCwgInZhbHVlIjogMC4wNDcxMTUyNTE0MjE5Mjg0MDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjM4MC41MzEwMTU2LCAic3RlcCI6IDUwMTAsICJ2YWx1ZSI6IDAuMDI5NjMzODY2NjIzMDQ0MDE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzODkuMDI3ODc1NCwgInN0ZXAiOiA1MDIwLCAidmFsdWUiOiAwLjA0MjEyMzkzOTg0MTk4NTd9LCB7IndhbGxUaW1lIjogMTczMzA3MjM5Ny43ODY5NDA2LCAic3RlcCI6IDUwMzAsICJ2YWx1ZSI6IDAuMDMxMTM5Mzc1NjQxOTQyMDI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MTEuMjk5NzE2NywgInN0ZXAiOiA1MDQwLCAidmFsdWUiOiAwLjA0MTk3MjM3NjQwNjE5Mjc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MTkuNDc1NzA3MywgInN0ZXAiOiA1MDUwLCAidmFsdWUiOiAwLjAzOTg0OTAxMzA5MDEzMzY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MjguMzczNjEwMywgInN0ZXAiOiA1MDYwLCAidmFsdWUiOiAwLjA0NzIyNzMyNjc4MDU1NzYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MzcuMTE4MzMyLCAic3RlcCI6IDUwNzAsICJ2YWx1ZSI6IDAuMDQxNzAyMDU4MTY2MjY1NDl9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ0Ni4xNzY2MzQzLCAic3RlcCI6IDUwODAsICJ2YWx1ZSI6IDAuMDUxNjc0MzkyMDc0MzQ2NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ1NC40MzAwMDMyLCAic3RlcCI6IDUwOTAsICJ2YWx1ZSI6IDAuMDM4ODI1MjgwOTY0Mzc0NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ2Mi40MTE5NzcsICJzdGVwIjogNTEwMCwgInZhbHVlIjogMC4wNDQ2OTYwMjU1NTAzNjU0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDcxLjE1MjA1MTQsICJzdGVwIjogNTExMCwgInZhbHVlIjogMC4wMzAzNjI3NTg3ODU0ODYyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDc4Ljk0ODEyNjMsICJzdGVwIjogNTEyMCwgInZhbHVlIjogMC4wMzA2MzQ4NjE0Mzk0NjY0NzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ5MS4zMjMxMTkyLCAic3RlcCI6IDUxMzAsICJ2YWx1ZSI6IDAuMDQ2NTA0NzE3MzIwMjAzNzh9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ5OS4yNjAxNTg1LCAic3RlcCI6IDUxNDAsICJ2YWx1ZSI6IDAuMDI0ODU3Njg4Njk1MTkyMzM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MDcuMTEzNDczNywgInN0ZXAiOiA1MTUwLCAidmFsdWUiOiAwLjA0MTgzNzE3NDQ0NTM5MDd9LCB7IndhbGxUaW1lIjogMTczMzA3MjUxNS4zMTg2OTI3LCAic3RlcCI6IDUxNjAsICJ2YWx1ZSI6IDAuMDI1MTMwOTQwNjAxMjI5NjY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MjMuNTE4MzYwMSwgInN0ZXAiOiA1MTcwLCAidmFsdWUiOiAwLjAzMTA5NTUwNDc2MDc0MjE4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTMxLjA4ODY2LCAic3RlcCI6IDUxODAsICJ2YWx1ZSI6IDAuMDI1MzI3ODkxMTExMzczOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTQwLjAyNDcwMjMsICJzdGVwIjogNTE5MCwgInZhbHVlIjogMC4wMzA1MzQ1ODc4MDA1MDI3Nzd9LCB7IndhbGxUaW1lIjogMTczMzA3MjU0OC42NTQ4NzkzLCAic3RlcCI6IDUyMDAsICJ2YWx1ZSI6IDAuMDI5MDU5NjgzOTA0MDUxNzh9LCB7IndhbGxUaW1lIjogMTczMzA3MjU2MS40MTgwNjUzLCAic3RlcCI6IDUyMTAsICJ2YWx1ZSI6IDAuMDQ3MDc1OTM0NzA4MTE4NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjU2OS44OTkxMjI1LCAic3RlcCI6IDUyMjAsICJ2YWx1ZSI6IDAuMDM2MzgyOTY5NDY4ODMyMDE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NzguNjgxNzA4MywgInN0ZXAiOiA1MjMwLCAidmFsdWUiOiAwLjA0NjYwMjQyNzk1OTQ0MjE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1ODYuOTQ1MDAwNiwgInN0ZXAiOiA1MjQwLCAidmFsdWUiOiAwLjAzMzAzNDQ3MzY1NzYwODAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1OTUuMDM1NzYyNSwgInN0ZXAiOiA1MjUwLCAidmFsdWUiOiAwLjA0NzU4MTM3NDY0NTIzMzE1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjAzLjE3NDg5MzksICJzdGVwIjogNTI2MCwgInZhbHVlIjogMC4wNDcwOTgzMzExNTMzOTI3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjExLjA4MjE1NzEsICJzdGVwIjogNTI3MCwgInZhbHVlIjogMC4wNzAxNzI3NjQzNjA5MDQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MTkuOTU3NTgwOCwgInN0ZXAiOiA1MjgwLCAidmFsdWUiOiAwLjAyOTQzNDAxMDM4NjQ2Njk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MjguNjM1OTkwNiwgInN0ZXAiOiA1MjkwLCAidmFsdWUiOiAwLjAyNjg4NDg0NDUyNjY0ODUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NDEuMzc2OTgzNiwgInN0ZXAiOiA1MzAwLCAidmFsdWUiOiAwLjAyNzIyMzc4NDQ3NjUxODYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NDkuODU5OTg4MiwgInN0ZXAiOiA1MzEwLCAidmFsdWUiOiAwLjAzNTgxMDI3Njg2NTk1OTE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NTcuOTcyNzMxNCwgInN0ZXAiOiA1MzIwLCAidmFsdWUiOiAwLjAzNTE1NjcxMTkzNTk5NzAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NjcuMDMwODkyNiwgInN0ZXAiOiA1MzMwLCAidmFsdWUiOiAwLjAzODk0ODk5Nzg1NTE4NjQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NzUuOTQ0NDY5NSwgInN0ZXAiOiA1MzQwLCAidmFsdWUiOiAwLjAyNjI1NzA0NzQyOTY4MDgyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjg0LjIzOTg0MjQsICJzdGVwIjogNTM1MCwgInZhbHVlIjogMC4wNDEyMTUxMjU0NzEzNTM1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjkxLjg1OTU0NDgsICJzdGVwIjogNTM2MCwgInZhbHVlIjogMC4wMjk0MzUwODY5OTUzNjMyMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MjcwMC4xNDk0MTUzLCAic3RlcCI6IDUzNzAsICJ2YWx1ZSI6IDAuMDM3NjYxMDYwNjkwODc5ODJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjcxMy4xODQ1MzIsICJzdGVwIjogNTM4MCwgInZhbHVlIjogMC4wMzcwMjk3OTE2MjMzNTM5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzIxLjAyNjEzNDcsICJzdGVwIjogNTM5MCwgInZhbHVlIjogMC4wMzIzMzk1NTA1NTQ3NTIzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzI5Ljg3ODM1NzIsICJzdGVwIjogNTQwMCwgInZhbHVlIjogMC4wNDIxMzU1NzM5MjM1ODc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MzguMzcyMjc5NiwgInN0ZXAiOiA1NDEwLCAidmFsdWUiOiAwLjAzNzYyNDc5NDk4OTgyNDI5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzQ2LjM4NDEwODUsICJzdGVwIjogNTQyMCwgInZhbHVlIjogMC4wMjc4NDUwNzM0OTEzMzQ5MTV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc1NC42MTkwNjI0LCAic3RlcCI6IDU0MzAsICJ2YWx1ZSI6IDAuMDM0NTU4MTk5MzQ2MDY1NTJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc2Mi41NDk3MjAzLCAic3RlcCI6IDU0NDAsICJ2YWx1ZSI6IDAuMDM3ODIyOTkxNjA5NTczMzY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3NzEuMzYyMDQ2LCAic3RlcCI6IDU0NTAsICJ2YWx1ZSI6IDAuMDMzMDc4Mzc5OTI5MDY1NzA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3ODcuMTUzMTQ1MywgInN0ZXAiOiA1NDYwLCAidmFsdWUiOiAwLjAzOTk1MjQ3MTg1MjMwMjU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3OTUuODA0MjY4NCwgInN0ZXAiOiA1NDcwLCAidmFsdWUiOiAwLjA0NTc2NTk0MzgyNTI0NDkwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODA0LjI0MzQ2MDcsICJzdGVwIjogNTQ4MCwgInZhbHVlIjogMC4wMjgyODc4MzM1NTY1MzI4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODEyLjM3NDQ4OCwgInN0ZXAiOiA1NDkwLCAidmFsdWUiOiAwLjAzMTgyNTI4MTY3OTYzMDI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MjEuMTYwNjI5MywgInN0ZXAiOiA1NTAwLCAidmFsdWUiOiAwLjAzMTUwNDI5OTQ5MTY0MzkwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODMwLjAyNDA1MDUsICJzdGVwIjogNTUxMCwgInZhbHVlIjogMC4wMzY2MDQwODQwNzQ0OTcyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODM4LjY5NjQ5MjIsICJzdGVwIjogNTUyMCwgInZhbHVlIjogMC4wMzU5NDYxMzQ0Nzc4NTM3NzV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg0Ni45MDYzMTM0LCAic3RlcCI6IDU1MzAsICJ2YWx1ZSI6IDAuMDI5NzIxODE4ODY0MzQ1NTV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg1NS4yNDg5NjY3LCAic3RlcCI6IDU1NDAsICJ2YWx1ZSI6IDAuMDQ2Mzc0NDU4ODE5NjI3NzZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg3MC42NDY5OTA1LCAic3RlcCI6IDU1NTAsICJ2YWx1ZSI6IDAuMDM1NTU0Nzk2NDU3MjkwNjV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg3OC43MzE5NDY1LCAic3RlcCI6IDU1NjAsICJ2YWx1ZSI6IDAuMDM0MDQxNTc2MDg3NDc0ODJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg4Ni42MTMzMDYzLCAic3RlcCI6IDU1NzAsICJ2YWx1ZSI6IDAuMDM5MzcwNzI2Nzk0MDA0NDR9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg5NS4wMjI2MDMzLCAic3RlcCI6IDU1ODAsICJ2YWx1ZSI6IDAuMDM1MzUyNjUxMDI5ODI1MjF9LCB7IndhbGxUaW1lIjogMTczMzA3MjkwMy40MDQxMzI0LCAic3RlcCI6IDU1OTAsICJ2YWx1ZSI6IDAuMDI5NTM1ODA1ODA2NTE3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTExLjIxMTE3OSwgInN0ZXAiOiA1NjAwLCAidmFsdWUiOiAwLjAzMTMwNzAwNDM5MjE0NzA2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTE5Ljg0MTExNjQsICJzdGVwIjogNTYxMCwgInZhbHVlIjogMC4wMjcyNjE0MzQxMjI5MjAwMzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjkyOC43MzQyODczLCAic3RlcCI6IDU2MjAsICJ2YWx1ZSI6IDAuMDM3NDM1MTQ3OTExMzEwMTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NDEuNzA0OTQxNSwgInN0ZXAiOiA1NjMwLCAidmFsdWUiOiAwLjAzOTIzNzAxMTIyNDAzMTQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NDkuOTgxMzkwNSwgInN0ZXAiOiA1NjQwLCAidmFsdWUiOiAwLjAzMTU5NDYzNDA1NjA5MTMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NTguNzIyMDcsICJzdGVwIjogNTY1MCwgInZhbHVlIjogMC4wNzIzNjE2MzMxODE1NzE5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTY2LjgxNjkyNjcsICJzdGVwIjogNTY2MCwgInZhbHVlIjogMC4wMzMxNjQxNTg0NjM0NzgwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTc0Ljk2NDM1OTUsICJzdGVwIjogNTY3MCwgInZhbHVlIjogMC4wMjg5NTcwNjMzMzIyMDAwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTgzLjU2MzE5MTcsICJzdGVwIjogNTY4MCwgInZhbHVlIjogMC4wNTE0NDMyNzEzMzg5Mzk2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTkyLjIzMDc0NywgInN0ZXAiOiA1NjkwLCAidmFsdWUiOiAwLjAyOTIyOTUwMzEyNDk1MjMxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDAwLjgxODQxNTIsICJzdGVwIjogNTcwMCwgInZhbHVlIjogMC4wMjA0ODk1MDY0MjM0NzMzNTh9LCB7IndhbGxUaW1lIjogMTczMzA3MzAwOS43ODQ0NDIsICJzdGVwIjogNTcxMCwgInZhbHVlIjogMC4wNDk2MjczMzM4Nzk0NzA4MjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzAyMi44Njk0NDI1LCAic3RlcCI6IDU3MjAsICJ2YWx1ZSI6IDAuMDQ2NjEyNDMwMzYzODkzNTF9LCB7IndhbGxUaW1lIjogMTczMzA3MzAzMS41MzY2NjcsICJzdGVwIjogNTczMCwgInZhbHVlIjogMC4wMjc2NTAwNDcwOTM2Mjk4Mzd9LCB7IndhbGxUaW1lIjogMTczMzA3MzAzOS41NzMwNzk4LCAic3RlcCI6IDU3NDAsICJ2YWx1ZSI6IDAuMDQ0NjgwNzE0NjA3MjM4Nzd9LCB7IndhbGxUaW1lIjogMTczMzA3MzA0Ny44NDQxLCAic3RlcCI6IDU3NTAsICJ2YWx1ZSI6IDAuMDMxMzY0NTg5OTI5NTgwNjl9LCB7IndhbGxUaW1lIjogMTczMzA3MzA1Ni4xNTc3NTA4LCAic3RlcCI6IDU3NjAsICJ2YWx1ZSI6IDAuMDI5MjcyODk1MzA2MzQ4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDY0Ljk1NjMxNjIsICJzdGVwIjogNTc3MCwgInZhbHVlIjogMC4wNDQ2NDcxNzU4MTg2ODE3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDczLjgzODk0MSwgInN0ZXAiOiA1NzgwLCAidmFsdWUiOiAwLjA0MTk0ODI0MDI1MDM0OTA0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDgyLjcyNjI1OTIsICJzdGVwIjogNTc5MCwgInZhbHVlIjogMC4wMjg2NDk4MzY3Nzg2NDA3NDd9LCB7IndhbGxUaW1lIjogMTczMzA3MzA5NS4xMDQzMDIyLCAic3RlcCI6IDU4MDAsICJ2YWx1ZSI6IDAuMDQ2MjEwMzgyMTMzNzIyMzA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMDMuMzE3MDUxNCwgInN0ZXAiOiA1ODEwLCAidmFsdWUiOiAwLjAyODA4MDc0NjUzMTQ4NjUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMTEuOTcxODg4OCwgInN0ZXAiOiA1ODIwLCAidmFsdWUiOiAwLjAyNzA5MzQxMDQ5MTk0MzM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMjAuMzU4MzAzOCwgInN0ZXAiOiA1ODMwLCAidmFsdWUiOiAwLjAzNzYzOTcwMzYwMTU5ODc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMjguMjEwNDkyMSwgInN0ZXAiOiA1ODQwLCAidmFsdWUiOiAwLjAzNzQwMjgxMjM5MTUxOTU0N30sIHsid2FsbFRpbWUiOiAxNzMzMDczMTM2LjcxNjk3MjgsICJzdGVwIjogNTg1MCwgInZhbHVlIjogMC4wMjgzOTg5MjE3MTMyMzI5OTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzE0NC45MjkwOTksICJzdGVwIjogNTg2MCwgInZhbHVlIjogMC4wNTQ5MDczMjE5Mjk5MzE2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTUzLjA0MzM2NiwgInN0ZXAiOiA1ODcwLCAidmFsdWUiOiAwLjAzNDU0MzgzODM1MTk2NDk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNjYuMDA0NDEsICJzdGVwIjogNTg4MCwgInZhbHVlIjogMC4wMzQ5MzA2ODczOTc3MTg0M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMTc0LjY2MDM1NjMsICJzdGVwIjogNTg5MCwgInZhbHVlIjogMC4wMzQxMTI5MTUzOTY2OTAzN30sIHsid2FsbFRpbWUiOiAxNzMzMDczMTgyLjUwOTU5OTQsICJzdGVwIjogNTkwMCwgInZhbHVlIjogMC4wNTA5Mzg5OTM2OTIzOTgwN30sIHsid2FsbFRpbWUiOiAxNzMzMDczMTkxLjU2MDgyOCwgInN0ZXAiOiA1OTEwLCAidmFsdWUiOiAwLjAyMzgwNTE2NTY2MzM2MTU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxOTkuNDEzNzE3MywgInN0ZXAiOiA1OTIwLCAidmFsdWUiOiAwLjA0NjQ0NjA0MDI3MjcxMjcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMDcuNDY2ODI2MiwgInN0ZXAiOiA1OTMwLCAidmFsdWUiOiAwLjAyNzI3NzI0NDI1NDk0NjcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMTUuNjA0MjEyNSwgInN0ZXAiOiA1OTQwLCAidmFsdWUiOiAwLjAzMjQwMzIzODExNzY5NDg1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjI0LjM1OTUxNCwgInN0ZXAiOiA1OTUwLCAidmFsdWUiOiAwLjAyNzAxODg3MTE1ODM2MTQzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjMyLjg3ODg4LCAic3RlcCI6IDU5NjAsICJ2YWx1ZSI6IDAuMDQxMTgwNTczNDAzODM1M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMjQ1LjM3NTI3NjYsICJzdGVwIjogNTk3MCwgInZhbHVlIjogMC4wNDM0Mjk4NDQwODE0MDE4MjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzI1My4xODA5MTMyLCAic3RlcCI6IDU5ODAsICJ2YWx1ZSI6IDAuMDM4ODgzMzA5ODExMzUzNjgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNjEuODAyMjI3NywgInN0ZXAiOiA1OTkwLCAidmFsdWUiOiAwLjAzNDY5MjE2MDc4NTE5ODIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNzAuMDYxMjEwNiwgInN0ZXAiOiA2MDAwLCAidmFsdWUiOiAwLjAzNzk4MjE1NDYzNzU3NTE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNzguODk3NzY3LCAic3RlcCI6IDYwMTAsICJ2YWx1ZSI6IDAuMDM5ODA0NjIyNTMwOTM3MTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyODcuNjgzNjQwNSwgInN0ZXAiOiA2MDIwLCAidmFsdWUiOiAwLjA0MjA5NzYxMzIxNTQ0NjQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyOTcuMjc2MDIxNywgInN0ZXAiOiA2MDMwLCAidmFsdWUiOiAwLjAzODk4NzgyMjgzMDY3NzAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzMDUuOTE5ODA5OCwgInN0ZXAiOiA2MDQwLCAidmFsdWUiOiAwLjAzOTI0NjU3MDMxODkzNzN9LCB7IndhbGxUaW1lIjogMTczMzA3MzMyMi4zNTYyNDM0LCAic3RlcCI6IDYwNTAsICJ2YWx1ZSI6IDAuMDM0ODM3ODEyMTg1Mjg3NDc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzMzEuOTc4ODQ3NywgInN0ZXAiOiA2MDYwLCAidmFsdWUiOiAwLjA0MTg5ODE3NjA3NDAyODAxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzQwLjUyMzgwNzMsICJzdGVwIjogNjA3MCwgInZhbHVlIjogMC4wMzQxMjk4MzkzOTA1MTYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzQ5LjYwMzU0MjYsICJzdGVwIjogNjA4MCwgInZhbHVlIjogMC4wMjkxMTg5OTYxMTM1Mzg3NDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzM1OS4wNzI4LCAic3RlcCI6IDYwOTAsICJ2YWx1ZSI6IDAuMDQ2MzE1NTU4MjU0NzE4Nzh9LCB7IndhbGxUaW1lIjogMTczMzA3MzM2OC40MDQ1MjIyLCAic3RlcCI6IDYxMDAsICJ2YWx1ZSI6IDAuMDI3MzAxODc0MDExNzU0OTl9LCB7IndhbGxUaW1lIjogMTczMzA3MzM3Ny42NzY1NjE4LCAic3RlcCI6IDYxMTAsICJ2YWx1ZSI6IDAuMDM0NzY5MzU5OTc2MDUzMjR9LCB7IndhbGxUaW1lIjogMTczMzA3MzM4Ni40MDIwMzgsICJzdGVwIjogNjEyMCwgInZhbHVlIjogMC4wMzEzNDYzNjk1MzQ3MzA5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzk1LjQ1MzA3OCwgInN0ZXAiOiA2MTMwLCAidmFsdWUiOiAwLjAzNzEyMDE0NDgxNDI1Mjg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MDguMTUyODUyNSwgInN0ZXAiOiA2MTQwLCAidmFsdWUiOiAwLjAyNjkyNzQ1MDY3MTc5MjAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MTcuMzI1NDcxLCAic3RlcCI6IDYxNTAsICJ2YWx1ZSI6IDAuMDI5MjY4MjIzNzkyMzE0NTN9LCB7IndhbGxUaW1lIjogMTczMzA3MzQyNi4yNTkxOTcyLCAic3RlcCI6IDYxNjAsICJ2YWx1ZSI6IDAuMDM5NzQ4MDEzMDE5NTYxNzd9LCB7IndhbGxUaW1lIjogMTczMzA3MzQzNC44MTA5MDA0LCAic3RlcCI6IDYxNzAsICJ2YWx1ZSI6IDAuMDM3MjA0ODI0Mzg4MDI3MTl9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ0NC41MTQyMjIsICJzdGVwIjogNjE4MCwgInZhbHVlIjogMC4wNjY5Mjk5ODg1NjMwNjA3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDUzLjExODkxMTMsICJzdGVwIjogNjE5MCwgInZhbHVlIjogMC4wMzI5NzAyNzU3Mjk4OTQ2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDYyLjU2NzE0MTUsICJzdGVwIjogNjIwMCwgInZhbHVlIjogMC4wMzEwNTM3NjEwMjAzMDI3NzN9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ3Mi4wMjYwOTM3LCAic3RlcCI6IDYyMTAsICJ2YWx1ZSI6IDAuMDM4NTI3Nzc5MjgxMTM5Mzc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0ODQuNDQ5ODgxOCwgInN0ZXAiOiA2MjIwLCAidmFsdWUiOiAwLjAzMzg3NTg5MzgwMTQ1MDczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0OTMuNjYxMzk1OCwgInN0ZXAiOiA2MjMwLCAidmFsdWUiOiAwLjAyNjMxMjU0MzA3OTI1NzAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MDIuNDQyNzA0MiwgInN0ZXAiOiA2MjQwLCAidmFsdWUiOiAwLjA0MjMzMTA4NDYwOTAzMTY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MTEuMjU3ODc2LCAic3RlcCI6IDYyNTAsICJ2YWx1ZSI6IDAuMDM3MzIxODk1MzYwOTQ2NjU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MjAuNTExMjYzLCAic3RlcCI6IDYyNjAsICJ2YWx1ZSI6IDAuMDI4MzY1MTQyNjQzNDUxNjl9LCB7IndhbGxUaW1lIjogMTczMzA3MzUyOS43ODI4ODYsICJzdGVwIjogNjI3MCwgInZhbHVlIjogMC4wMzg1NzUwODY3NDI2Mzk1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTM5LjY0MDU2NSwgInN0ZXAiOiA2MjgwLCAidmFsdWUiOiAwLjAzMzg1NTYzNTY3MjgwNzY5M30sIHsid2FsbFRpbWUiOiAxNzMzMDczNTQ4LjkxMjQwODgsICJzdGVwIjogNjI5MCwgInZhbHVlIjogMC4wMjk0MTc3OTk3ODU3MzMyMjN9LCB7IndhbGxUaW1lIjogMTczMzA3MzU2MC42MjEyMzQyLCAic3RlcCI6IDYzMDAsICJ2YWx1ZSI6IDAuMDMxNTU1NjI2NTQxMzc2MTE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NzAuMDcwNDMwOCwgInN0ZXAiOiA2MzEwLCAidmFsdWUiOiAwLjAzNzA3NDA3NDE0OTEzMTc3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTc5LjQ4MjY2NjMsICJzdGVwIjogNjMyMCwgInZhbHVlIjogMC4wMzYxNTY5NDQ5MzA1NTM0MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzU4Ny42Njg3NzY4LCAic3RlcCI6IDYzMzAsICJ2YWx1ZSI6IDAuMDM0NTc2Njk5MTM3Njg3Njh9LCB7IndhbGxUaW1lIjogMTczMzA3MzU5Ny4yMTkzNDEzLCAic3RlcCI6IDYzNDAsICJ2YWx1ZSI6IDAuMDM2Njg1ODU0MTk2NTQ4NDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzYwNi4yMzk1NjUxLCAic3RlcCI6IDYzNTAsICJ2YWx1ZSI6IDAuMDMyMzU2MzM2NzEyODM3MjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzYxNS4wNzkxMzMsICJzdGVwIjogNjM2MCwgInZhbHVlIjogMC4wMzU3MTQ2ODk2NDIxOTA5M30sIHsid2FsbFRpbWUiOiAxNzMzMDczNjI0LjgzNTkxNzcsICJzdGVwIjogNjM3MCwgInZhbHVlIjogMC4wMzIxMzE4MDk3NDEyNTg2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjM0LjY3NDAyODQsICJzdGVwIjogNjM4MCwgInZhbHVlIjogMC4wNDIyNTY5NTg3ODI2NzI4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjQ2LjUyOTY4ODgsICJzdGVwIjogNjM5MCwgInZhbHVlIjogMC4wMzIzMjk4ODcxNTE3MTgxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjU1Ljc0NjkzNzgsICJzdGVwIjogNjQwMCwgInZhbHVlIjogMC4wMzM1OTM2NDcxODE5ODc3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjY1LjYwODYxMywgInN0ZXAiOiA2NDEwLCAidmFsdWUiOiAwLjAzMTU1ODkwNDc5NjgzODc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NzQuNjQ0MjE1NiwgInN0ZXAiOiA2NDIwLCAidmFsdWUiOiAwLjAzMDY0NDMzMTEyNzQwNTE2N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNjgzLjY3MTc5NjYsICJzdGVwIjogNjQzMCwgInZhbHVlIjogMC4wMzU5NjUxMjk3MzMwODU2M30sIHsid2FsbFRpbWUiOiAxNzMzMDczNjkyLjg3ODIyNjgsICJzdGVwIjogNjQ0MCwgInZhbHVlIjogMC4wMzMyNjA2MDI1MDQwMTQ5N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzAyLjUyMDYxNDQsICJzdGVwIjogNjQ1MCwgInZhbHVlIjogMC4wMzI5NTg2ODI2MjY0ODU4MjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzcxMi42Mjg3Nzg3LCAic3RlcCI6IDY0NjAsICJ2YWx1ZSI6IDAuMDMxNzMzNjY5MzQwNjEwNTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MjQuMDQ5MDAxNywgInN0ZXAiOiA2NDcwLCAidmFsdWUiOiAwLjAyNjQwNDAxMTk5NDYwMDI5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzMyLjgyOTg2NzQsICJzdGVwIjogNjQ4MCwgInZhbHVlIjogMC4wNDMzNzY2ODQxODg4NDI3N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzQxLjk1OTE3LCAic3RlcCI6IDY0OTAsICJ2YWx1ZSI6IDAuMDM5Mzg3NjI4NDM2MDg4NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc1MC43MTkwOTE3LCAic3RlcCI6IDY1MDAsICJ2YWx1ZSI6IDAuMDYyMzEzNjMxMTc2OTQ4NTV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc2MC40ODk1MzU2LCAic3RlcCI6IDY1MTAsICJ2YWx1ZSI6IDAuMDM3MjU3OTM5NTc3MTAyNjZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc2OS44NjQ4MzUsICJzdGVwIjogNjUyMCwgInZhbHVlIjogMC4wMzExOTMxNjEzODMyNzEyMTd9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc3OS4xMjg1MDUyLCAic3RlcCI6IDY1MzAsICJ2YWx1ZSI6IDAuMDM0NTA1ODI1NDg5NzU5NDQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3ODkuNDc5MTQxMiwgInN0ZXAiOiA2NTQwLCAidmFsdWUiOiAwLjAzNjk3NDcwNTc1NTcxMDZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc5OC4xMDQ4MzEsICJzdGVwIjogNjU1MCwgInZhbHVlIjogMC4wMzU0NzcwNjQ1NDk5MjI5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODEwLjU1NDM5OCwgInN0ZXAiOiA2NTYwLCAidmFsdWUiOiAwLjA1MDE0Mzc3ODMyNDEyNzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzgyMC4wMzc5MjIxLCAic3RlcCI6IDY1NzAsICJ2YWx1ZSI6IDAuMDQ1NzUyMzgzNzY4NTU4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczODI4LjI0MDEwMTMsICJzdGVwIjogNjU4MCwgInZhbHVlIjogMC4wMzI1OTg1MDI5MzM5NzkwMzR9LCB7IndhbGxUaW1lIjogMTczMzA3MzgzNi43OTk3MjA4LCAic3RlcCI6IDY1OTAsICJ2YWx1ZSI6IDAuMDI4NzE3OTA1MjgyOTc0MjQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NDUuOTg5MDEsICJzdGVwIjogNjYwMCwgInZhbHVlIjogMC4wMzY1OTM0OTY3OTk0Njg5OTR9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg1NS4yNTM2MSwgInN0ZXAiOiA2NjEwLCAidmFsdWUiOiAwLjAzNDAxMTY5MTgwODcwMDU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NjQuNjk1MTg5NSwgInN0ZXAiOiA2NjIwLCAidmFsdWUiOiAwLjAzMTMyOTc2MjE5MDU4MDM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NzMuODM2MTI0MiwgInN0ZXAiOiA2NjMwLCAidmFsdWUiOiAwLjAyODA5ODIyOTMxODg1NzE5M30sIHsid2FsbFRpbWUiOiAxNzMzMDczODg3LjUyNjIwNTUsICJzdGVwIjogNjY0MCwgInZhbHVlIjogMC4wMzQ5NjQ4MTQ3ODIxNDI2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODk3LjMzNTc5MTMsICJzdGVwIjogNjY1MCwgInZhbHVlIjogMC4wMzc3ODQzNjc3OTk3NTg5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTA2Ljg3ODM0MSwgInN0ZXAiOiA2NjYwLCAidmFsdWUiOiAwLjA0NzYwMTc2MzE1OTAzNjYzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTE2LjM1MTgwNTcsICJzdGVwIjogNjY3MCwgInZhbHVlIjogMC4wMzc3NDkwNzA2NzQxODA5ODR9LCB7IndhbGxUaW1lIjogMTczMzA3MzkyNS42MjAzODU2LCAic3RlcCI6IDY2ODAsICJ2YWx1ZSI6IDAuMDMwNzExNDAzMTE2NTgzODI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5MzQuOTE4NDM4NywgInN0ZXAiOiA2NjkwLCAidmFsdWUiOiAwLjAzNDg0MDgyOTY3MDQyOTIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5NDMuNzQ0MDUzNCwgInN0ZXAiOiA2NzAwLCAidmFsdWUiOiAwLjA0ODk0NjcwNDcxNTQ5MDM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5NTIuNDc4NzI5NSwgInN0ZXAiOiA2NzEwLCAidmFsdWUiOiAwLjA0NjYxNTkzMjEzNjc3NDA2fV19fV0=", + "ok": true, + "headers": [ + [ + "content-length", + "15018" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Lr/pg_1%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIkxyL3BnXzEiLCAicnVuVG9TZXJpZXMiOiB7Ii4iOiBbeyJ3YWxsVGltZSI6IDE3MzMwNjc2MzEuNTM2NTc2MywgInN0ZXAiOiAwLCAidmFsdWUiOiA5Ljk5OTk5OTk3NDc1MjQyN2UtMDd9LCB7IndhbGxUaW1lIjogMTczMzA2NzY0Ni42NDk2Mjg2LCAic3RlcCI6IDEwLCAidmFsdWUiOiA2LjAwMDAwMDIxMjIyNTEzMmUtMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzY2MC43ODE1Nzg1LCAic3RlcCI6IDIwLCAidmFsdWUiOiAxLjEwMDAwMDAwODU5MTQ1MDhlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NzQuMTM0NzM4LCAic3RlcCI6IDMwLCAidmFsdWUiOiAxLjU5OTk5OTk5NTk2MDM4ODNlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2ODcuMDU0NDE4LCAic3RlcCI6IDQwLCAidmFsdWUiOiAyLjA5OTk5OTk4MzMyOTMyNmUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2NzY5OS40OTAzMTU0LCAic3RlcCI6IDUwLCAidmFsdWUiOiAyLjU5OTk5OTk3MDY5ODI2MzVlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MTAuNjI2NTk5LCAic3RlcCI6IDYwLCAidmFsdWUiOiAzLjA5OTk5OTk1ODA2NzIwMWUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2NzcyMi43NTI4MzUzLCAic3RlcCI6IDcwLCAidmFsdWUiOiAzLjYwMDAwMDEyNzMzNTA3OWUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2NzczMy43MjI3MTc1LCAic3RlcCI6IDgwLCAidmFsdWUiOiA0LjA5OTk5OTkzMjgwNTA3NmUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc1MC45NDQyMDM2LCAic3RlcCI6IDkwLCAidmFsdWUiOiA0LjYwMDAwMDEwMjA3Mjk1NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc2MS45NzgwOTYyLCAic3RlcCI6IDEwMCwgInZhbHVlIjogNS4wOTk5OTk5MDc1NDI5NTE0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzcxLjYwMzUxMzcsICJzdGVwIjogMTEwLCAidmFsdWUiOiA1LjYwMDAwMDA3NjgxMDgyOTNlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3ODAuNTQ0NDAxNiwgInN0ZXAiOiAxMjAsICJ2YWx1ZSI6IDYuMDk5OTk5ODgyMjgwODI2NmUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc5MC40ODI0MjI2LCAic3RlcCI6IDEzMCwgInZhbHVlIjogNi42MDAwMDAwNTE1NDg3MDVlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3OTkuMTAyNzkwNiwgInN0ZXAiOiAxNDAsICJ2YWx1ZSI6IDcuMTAwMDAwMjIwODE2NTgyZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODA5LjQ0MTc2NTUsICJzdGVwIjogMTUwLCAidmFsdWUiOiA3LjU5OTk5OTY2MjQ4ODY5OWUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2NzgxOC45MTgwNDM5LCAic3RlcCI6IDE2MCwgInZhbHVlIjogOC4wOTk5OTk4MzE3NTY1NzdlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MzYuNjQ3MzY4NywgInN0ZXAiOiAxNzAsICJ2YWx1ZSI6IDguNjAwMDAwMDAxMDI0NDU1ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODQ2LjM4NzkxOTQsICJzdGVwIjogMTgwLCAidmFsdWUiOiA5LjEwMDAwMDE3MDI5MjMzM2UtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg1NS42NjQxNjg2LCAic3RlcCI6IDE5MCwgInZhbHVlIjogOS42MDAwMDAzMzk1NjAyMTFlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4NjQuODg1NjAwNiwgInN0ZXAiOiAyMDAsICJ2YWx1ZSI6IDAuMDAwMTAwOTk5OTk3ODEyMzIzMjd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg3My45OTg5MDk3LCAic3RlcCI6IDIxMCwgInZhbHVlIjogMC4wMDAxMDU5OTk5OTk1MDUwMDIwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODgzLjc4MTkzMzMsICJzdGVwIjogMjIwLCAidmFsdWUiOiAwLjAwMDExMTAwMDAwMTE5NzY4MDgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4OTIuMTIwMTksICJzdGVwIjogMjMwLCAidmFsdWUiOiAwLjAwMDExNjAwMDAwMjg5MDM1OTYxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MDEuMDY2NTUwNywgInN0ZXAiOiAyNDAsICJ2YWx1ZSI6IDAuMDAwMTIwOTk5OTk3MzA3MDgwNzh9LCB7IndhbGxUaW1lIjogMTczMzA2NzkxMC4wNzIyNDUsICJzdGVwIjogMjUwLCAidmFsdWUiOiAwLjAwMDEyNTk5OTk5ODk5OTc1OTU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MjUuOTQ3ODI4MywgInN0ZXAiOiAyNjAsICJ2YWx1ZSI6IDAuMDAwMTMwOTk5OTkzNDE2NDgwNzJ9LCB7IndhbGxUaW1lIjogMTczMzA2NzkzNS40NTc4NjUyLCAic3RlcCI6IDI3MCwgInZhbHVlIjogMC4wMDAxMzYwMDAwMDIzODUxMTcxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTQ0LjAxMTU0LCAic3RlcCI6IDI4MCwgInZhbHVlIjogMC4wMDAxNDA5OTk5OTY4MDE4MzgyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTUyLjU0MjYwNjQsICJzdGVwIjogMjkwLCAidmFsdWUiOiAwLjAwMDE0NjAwMDAwNTc3MDQ3NDY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NjEuMDI0MDA4OCwgInN0ZXAiOiAzMDAsICJ2YWx1ZSI6IDAuMDAwMTUxMDAwMDAwMTg3MTk1ODR9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk3MC4xMzE3ODAxLCAic3RlcCI6IDMxMCwgInZhbHVlIjogMC4wMDAxNTU5OTk5OTQ2MDM5MTd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk4MC4yMjMwODgsICJzdGVwIjogMzIwLCAidmFsdWUiOiAwLjAwMDE2MTAwMDAwMzU3MjU1MzR9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk4OC44MTMyNjQsICJzdGVwIjogMzMwLCAidmFsdWUiOiAwLjAwMDE2NTk5OTk5Nzk4OTI3NDU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMDUuMDg4MzM2LCAic3RlcCI6IDM0MCwgInZhbHVlIjogMC4wMDAxNzEwMDAwMDY5NTc5MTA5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDE0LjA2MjEzMzMsICJzdGVwIjogMzUwLCAidmFsdWUiOiAwLjAwMDE3NjAwMDAwMTM3NDYzMjEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMjIuNTUwMzMzMywgInN0ZXAiOiAzNjAsICJ2YWx1ZSI6IDAuMDAwMTgwOTk5OTk1NzkxMzUzMjl9LCB7IndhbGxUaW1lIjogMTczMzA2ODAzMS44MjIwNDA4LCAic3RlcCI6IDM3MCwgInZhbHVlIjogMC4wMDAxODYwMDAwMDQ3NTk5ODk2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDQwLjc4NDkyNjQsICJzdGVwIjogMzgwLCAidmFsdWUiOiAwLjAwMDE5MDk5OTk5OTE3NjcxMDg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNTAuMTU3NDMwMiwgInN0ZXAiOiAzOTAsICJ2YWx1ZSI6IDAuMDAwMTk1OTk5OTkzNTkzNDMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNTkuMTIzMzc2LCAic3RlcCI6IDQwMCwgInZhbHVlIjogMC4wMDAyMDEwMDAwMDI1NjIwNjg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNjguMDg3NTEzNCwgInN0ZXAiOiA0MTAsICJ2YWx1ZSI6IDAuMDAwMjA1OTk5OTk2OTc4Nzg5NTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODA4NC44NDE2NTc2LCAic3RlcCI6IDQyMCwgInZhbHVlIjogMC4wMDAyMTEwMDAwMDU5NDc0MjU5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDk0LjY2Mzk1NTUsICJzdGVwIjogNDMwLCAidmFsdWUiOiAwLjAwMDIxNjAwMDAwMDM2NDE0NzEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMDMuNzA1NTIxOCwgInN0ZXAiOiA0NDAsICJ2YWx1ZSI6IDAuMDAwMjIwOTk5OTk0NzgwODY4M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTEyLjY5NzE4ODksICJzdGVwIjogNDUwLCAidmFsdWUiOiAwLjAwMDIyNjAwMDAwMzc0OTUwNDY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMjEuNDk4NTI2LCAic3RlcCI6IDQ2MCwgInZhbHVlIjogMC4wMDAyMzA5OTk5OTgxNjYyMjU4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTMwLjcyNTE5NzgsICJzdGVwIjogNDcwLCAidmFsdWUiOiAwLjAwMDIzNjAwMDAwNzEzNDg2MjI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMzkuODUzMjIxNywgInN0ZXAiOiA0ODAsICJ2YWx1ZSI6IDAuMDAwMjQxMDAwMDAxNTUxNTgzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTQ5LjM2NzczMiwgInN0ZXAiOiA0OTAsICJ2YWx1ZSI6IDAuMDAwMjQ2MDAwMDEwNTIwMjE5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTU4LjA2NzczMTYsICJzdGVwIjogNTAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODE3NC4xMTMyNzk2LCAic3RlcCI6IDUxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxODIuNzE3MjgyLCAic3RlcCI6IDUyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxOTIuNDExMzQ4NiwgInN0ZXAiOiA1MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjAxLjgwNTg3MjIsICJzdGVwIjogNTQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODIxMC42NTIyNjEsICJzdGVwIjogNTUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODIyMC4xOTI2OTMsICJzdGVwIjogNTYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODIyOS4xNTY3ODcsICJzdGVwIjogNTcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODIzOC41ODg5MjIzLCAic3RlcCI6IDU4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNTYuMDcwNzU3NCwgInN0ZXAiOiA1OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjY1LjQyOTU3NSwgInN0ZXAiOiA2MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Mjc0LjY1NDIwNDgsICJzdGVwIjogNjEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODI4My43Njc2NzY2LCAic3RlcCI6IDYyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyOTMuMzMxNzE1MywgInN0ZXAiOiA2MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzAyLjY0NDc1NDYsICJzdGVwIjogNjQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODMxMS4zODU3NDksICJzdGVwIjogNjUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODMyMC4zODc4OTk0LCAic3RlcCI6IDY2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMjguNzI5MDYyMywgInN0ZXAiOiA2NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzQ0LjQ1OTQ5OTgsICJzdGVwIjogNjgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODM1My43MTQ3NjM5LCAic3RlcCI6IDY5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNjIuMDU1Mzg1OCwgInN0ZXAiOiA3MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzcxLjEwMTc2NjMsICJzdGVwIjogNzEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODM4MC41MzA4NzMzLCAic3RlcCI6IDcyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzOTAuMDg0NTgxNiwgInN0ZXAiOiA3MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Mzk4LjcxODg4MTgsICJzdGVwIjogNzQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODQwNy4xMjE3MDk4LCAic3RlcCI6IDc1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MjMuMDY4MDk0MywgInN0ZXAiOiA3NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDMxLjQwMjgzMzUsICJzdGVwIjogNzcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ0MC40MjI4MDEzLCAic3RlcCI6IDc4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NDkuMDA0MjgxLCAic3RlcCI6IDc5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NTcuNjM0MDI0MSwgInN0ZXAiOiA4MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDY3LjA0NTEzMzgsICJzdGVwIjogODEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ3NS42MTc5NTA3LCAic3RlcCI6IDgyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0ODQuOTc2NjM1NywgInN0ZXAiOiA4MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTAwLjczMDA0MTcsICJzdGVwIjogODQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODUwOS4zMDU0OTU3LCAic3RlcCI6IDg1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MTkuMDIwMTE0MiwgInN0ZXAiOiA4NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTI3LjQ5NjU5NCwgInN0ZXAiOiA4NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTM2LjkxODE3MywgInN0ZXAiOiA4ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTQ0LjkwNjY5NzMsICJzdGVwIjogODkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODU1My41NjkxMDIzLCAic3RlcCI6IDkwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NjIuNjg0MDc5LCAic3RlcCI6IDkxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NzEuMjQ0MTY3NiwgInN0ZXAiOiA5MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTg0Ljc3NTAxMSwgInN0ZXAiOiA5MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTkzLjc3MDc5NTgsICJzdGVwIjogOTQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODYwMi43NjUwMDEsICJzdGVwIjogOTUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODYxMS4wMzg4NjQ0LCAic3RlcCI6IDk2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MjAuMjI1ODk3NiwgInN0ZXAiOiA5NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjI4Ljg0MDg4OSwgInN0ZXAiOiA5ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjM3LjYyOTc4LCAic3RlcCI6IDk5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2NDYuNjcyMDY0NSwgInN0ZXAiOiAxMDAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODY2Mi43NTY2MzMzLCAic3RlcCI6IDEwMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjcyLjA1MzcwNjYsICJzdGVwIjogMTAyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2ODAuNTYyNDkyMSwgInN0ZXAiOiAxMDMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODY5MC4xODUwNzA4LCAic3RlcCI6IDEwNDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Njk4Ljg0NzQ1NywgInN0ZXAiOiAxMDUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODcwNy43NDI3NDg3LCAic3RlcCI6IDEwNjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzE3LjM0NDE3NTYsICJzdGVwIjogMTA3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MjYuMzYwODk1LCAic3RlcCI6IDEwODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzM1LjI1MDk2MTgsICJzdGVwIjogMTA5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3NDkuNTQ3OTk5LCAic3RlcCI6IDExMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzU4LjM3NDg4MjcsICJzdGVwIjogMTExMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3NjcuMDAzMzY3MiwgInN0ZXAiOiAxMTIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODc3Ni42MTg0MjQyLCAic3RlcCI6IDExMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Nzg1LjQwMDUzODQsICJzdGVwIjogMTE0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3OTQuMjc4NTkyLCAic3RlcCI6IDExNTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODAyLjY5NjkwMDQsICJzdGVwIjogMTE2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MTEuNTUwOTc2OCwgInN0ZXAiOiAxMTcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODgyNC45NjU4OTU0LCAic3RlcCI6IDExODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODM0LjM3NjU4MywgInN0ZXAiOiAxMTkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODg0My41MTU2NjU4LCAic3RlcCI6IDEyMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODUyLjIyNzgyMSwgInN0ZXAiOiAxMjEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODg2MS4xMTYyOTk5LCAic3RlcCI6IDEyMjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODcwLjA1NTMyOSwgInN0ZXAiOiAxMjMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODg3OC43MTk5ODU3LCAic3RlcCI6IDEyNDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODg3LjczMTU4NjUsICJzdGVwIjogMTI1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MDMuMTY2ODI2MiwgInN0ZXAiOiAxMjYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODkxMi40MDUyMDg2LCAic3RlcCI6IDEyNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTIxLjQ3MTU2NzYsICJzdGVwIjogMTI4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MjkuNzQ2MjI5NiwgInN0ZXAiOiAxMjkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODkzOS41MDA0NzYsICJzdGVwIjogMTMwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NDguOTI2OTU4MywgInN0ZXAiOiAxMzEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODk1Ny4yMzM5OTIsICJzdGVwIjogMTMyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NjYuMDc2NjEwOCwgInN0ZXAiOiAxMzMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODk3NS41NjQ3MzQ3LCAic3RlcCI6IDEzNDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTg5Ljc5NzM5NSwgInN0ZXAiOiAxMzUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODk5OC4yNTcxMiwgInN0ZXAiOiAxMzYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTAwNy4xNDY5MTA3LCAic3RlcCI6IDEzNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDE1LjkxOTg4NjgsICJzdGVwIjogMTM4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwMjUuMzAyNzg3OCwgInN0ZXAiOiAxMzkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTAzNC40ODA5NDcsICJzdGVwIjogMTQwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNDIuNzkyNDUxNiwgInN0ZXAiOiAxNDEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTA1Mi4xMzY4MjE3LCAic3RlcCI6IDE0MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDY1LjAwMTUzODgsICJzdGVwIjogMTQzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNzQuNTIzMzM4LCAic3RlcCI6IDE0NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDgzLjc3NTgxNzIsICJzdGVwIjogMTQ1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwOTIuMjU2ODIxMiwgInN0ZXAiOiAxNDYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTEwMS4wMjg5NjI2LCAic3RlcCI6IDE0NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTA5LjkwNDQ5MzYsICJzdGVwIjogMTQ4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMTkuMTE3MDM1LCAic3RlcCI6IDE0OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTI4LjQxNDI1MDYsICJzdGVwIjogMTUwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMzcuNjA0OTk1MywgInN0ZXAiOiAxNTEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTE1MC41NDIzMTc5LCAic3RlcCI6IDE1MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTU5Ljc1NTM3NjYsICJzdGVwIjogMTUzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxNjguMTY4NTMzLCAic3RlcCI6IDE1NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTc2LjgzOTI4NywgInN0ZXAiOiAxNTUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTE4NS44OTA2MTY0LCAic3RlcCI6IDE1NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTk0LjkyMTk2MywgInN0ZXAiOiAxNTcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTIwMy45MDk5Mjg4LCAic3RlcCI6IDE1ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjEyLjcxMzU5NCwgInN0ZXAiOiAxNTkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTIyNS41MzI3MDk4LCAic3RlcCI6IDE2MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjM1LjQ2MjEwNCwgInN0ZXAiOiAxNjEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTI0NC42Mjc2NzcyLCAic3RlcCI6IDE2MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjU0LjI2OTk4MDIsICJzdGVwIjogMTYzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNjMuMDAzNTI3LCAic3RlcCI6IDE2NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjcxLjg2NDg2MDUsICJzdGVwIjogMTY1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyODAuNTA4MTcyNSwgInN0ZXAiOiAxNjYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTI4OS42NzgwOTQ2LCAic3RlcCI6IDE2NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzAzLjYwNzE5NTEsICJzdGVwIjogMTY4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMTIuNDc3NTc4NiwgInN0ZXAiOiAxNjkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTMyMS44MzY4MDUzLCAic3RlcCI6IDE3MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzMwLjM0NjI0NjUsICJzdGVwIjogMTcxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMzkuMjQzMjI4NCwgInN0ZXAiOiAxNzIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTM0Ni44NTQ3ODczLCAic3RlcCI6IDE3MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzU1LjY1MDM3NTYsICJzdGVwIjogMTc0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNjQuNTEwMDIsICJzdGVwIjogMTc1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNzMuNzM2NTg5NywgInN0ZXAiOiAxNzYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTM4Ny41Mzk4MDQyLCAic3RlcCI6IDE3NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Mzk2LjQ2NDY3NTIsICJzdGVwIjogMTc4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MDUuOTk0NTI0NSwgInN0ZXAiOiAxNzkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTQxNS4wNTE4NTE1LCAic3RlcCI6IDE4MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDIzLjkwNTg1NSwgInN0ZXAiOiAxODEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTQzMi41MjkxNywgInN0ZXAiOiAxODIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ0MS4yMTQ4NjcsICJzdGVwIjogMTgzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NTAuMDg0NTkxNiwgInN0ZXAiOiAxODQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ2My4xMDUzNTg4LCAic3RlcCI6IDE4NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDcxLjU3MDU1NjIsICJzdGVwIjogMTg2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0ODAuNDk1OTU1LCAic3RlcCI6IDE4NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDg5LjM4Mjg1NzMsICJzdGVwIjogMTg4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0OTcuOTc0NDU5NCwgInN0ZXAiOiAxODkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTUwNi43OTE5NzY1LCAic3RlcCI6IDE5MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTE1LjgyMjUyNzQsICJzdGVwIjogMTkxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MjQuNjM0Mzg2NSwgInN0ZXAiOiAxOTIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTUzMy41Mzk4ODkzLCAic3RlcCI6IDE5MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTUwLjQ3NjM1NSwgInN0ZXAiOiAxOTQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTU1OC44MjU1ODgyLCAic3RlcCI6IDE5NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTY3Ljc1NTY4MzcsICJzdGVwIjogMTk2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NzYuMzQyODU5LCAic3RlcCI6IDE5NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTg1LjUyNjgxMTQsICJzdGVwIjogMTk4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1OTQuMzQ4MDYwNCwgInN0ZXAiOiAxOTkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTYwMi4zOTkyNDg4LCAic3RlcCI6IDIwMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjEwLjI0NzQ5MDYsICJzdGVwIjogMjAxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MjYuNjg1MTU1OSwgInN0ZXAiOiAyMDIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTYzNS4wMjg1NzYsICJzdGVwIjogMjAzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NDMuODIwNDE2LCAic3RlcCI6IDIwNDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjUyLjE5MjI3OTgsICJzdGVwIjogMjA1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NjAuNDUxMjI4OSwgInN0ZXAiOiAyMDYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTY2OS41ODk4ODI5LCAic3RlcCI6IDIwNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Njc4Ljc3NTk0MzUsICJzdGVwIjogMjA4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2ODYuOTQyNTgwNywgInN0ZXAiOiAyMDkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTcwMC42MDAzMDc1LCAic3RlcCI6IDIxMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzA4LjcyNDExNzgsICJzdGVwIjogMjExMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MTcuNDQ2MTM1LCAic3RlcCI6IDIxMjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzI2LjEzOTAxNiwgInN0ZXAiOiAyMTMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTczNS4wMzU3MjI3LCAic3RlcCI6IDIxNDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzQzLjMwMzYxMjcsICJzdGVwIjogMjE1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NTIuNDk4NDU2LCAic3RlcCI6IDIxNjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzYxLjQ0ODc5NTgsICJzdGVwIjogMjE3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NzAuNDMxMDI0OCwgInN0ZXAiOiAyMTgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTc4NC4zNjE3MzY4LCAic3RlcCI6IDIxOTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzkzLjEyMDE5NCwgInN0ZXAiOiAyMjAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTgwMS42MjkxNTgzLCAic3RlcCI6IDIyMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODEwLjYwNTQ2MDQsICJzdGVwIjogMjIyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MTkuMzM5MjgwNCwgInN0ZXAiOiAyMjMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTgyNy4zMjM5MDc2LCAic3RlcCI6IDIyNDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODM1Ljg2NTE1NDcsICJzdGVwIjogMjI1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NDQuMjMzMzIxNywgInN0ZXAiOiAyMjYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTg1Ni43NDc0MDUzLCAic3RlcCI6IDIyNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODY1LjI1NTE5NTQsICJzdGVwIjogMjI4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NzQuMDAyNDk4NiwgInN0ZXAiOiAyMjkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTg4MS43NzkxNjU1LCAic3RlcCI6IDIzMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODkwLjQxMTIwMzYsICJzdGVwIjogMjMxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4OTguODc0MjI1MSwgInN0ZXAiOiAyMzIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTkwOC4zMTUzNjQxLCAic3RlcCI6IDIzMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTE3LjQxMjgxNDQsICJzdGVwIjogMjM0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MjUuODQ3NjI0NSwgInN0ZXAiOiAyMzUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTkzOC42OTk4MjEsICJzdGVwIjogMjM2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NDcuNDIzNjM5MywgInN0ZXAiOiAyMzcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTk1Ni4yMDMxMDU3LCAic3RlcCI6IDIzODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTY0LjI3MTk2MTUsICJzdGVwIjogMjM5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NzMuMzIzNjg3LCAic3RlcCI6IDI0MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTgxLjQyOTQ3MDUsICJzdGVwIjogMjQxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5OTAuMTM3MTA2MiwgInN0ZXAiOiAyNDIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTk5OC43OTUxODM0LCAic3RlcCI6IDI0MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDEyLjQ1MzgwNDUsICJzdGVwIjogMjQ0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMjEuNTcyMjY3NSwgInN0ZXAiOiAyNDUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDAzMC4xODg1MjUyLCAic3RlcCI6IDI0NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDM5LjIxNjgzMiwgInN0ZXAiOiAyNDcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDA0OC4yNjY0NTk1LCAic3RlcCI6IDI0ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDU2LjE1MzEwMTcsICJzdGVwIjogMjQ5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNjQuNDQ3ODk0MywgInN0ZXAiOiAyNTAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDA3Mi41NDY1NjM0LCAic3RlcCI6IDI1MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDg3LjY1NDc1NiwgInN0ZXAiOiAyNTIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDA5NS40Mzg4MzQsICJzdGVwIjogMjUzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMDMuNzY2MzA1NywgInN0ZXAiOiAyNTQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDExMy4wNDYxODIsICJzdGVwIjogMjU1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMjEuMDM1MjMwNiwgInN0ZXAiOiAyNTYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDEyOS41NzYzMzczLCAic3RlcCI6IDI1NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTM4LjM1ODEwODUsICJzdGVwIjogMjU4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNDcuMDg0Nzg2MiwgInN0ZXAiOiAyNTkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDE1NS40ODQyNzgsICJzdGVwIjogMjYwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNzIuNTc1MjY2MSwgInN0ZXAiOiAyNjEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDE4MS4yMDg0Njg0LCAic3RlcCI6IDI2MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTg5LjY4OTUzNSwgInN0ZXAiOiAyNjMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDE5OC4zOTY2MTg4LCAic3RlcCI6IDI2NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjA2LjcwNDgzNTQsICJzdGVwIjogMjY1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMTUuNTk3MTQ5MSwgInN0ZXAiOiAyNjYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDIyNC4zMTI3OTM1LCAic3RlcCI6IDI2NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjMzLjUzNjY5NzQsICJzdGVwIjogMjY4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNDYuNzU2MDg1NCwgInN0ZXAiOiAyNjkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDI1Ni4wMjYwODU0LCAic3RlcCI6IDI3MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjY0Ljk0ODI3MjUsICJzdGVwIjogMjcxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNzMuODAyMTkzOSwgInN0ZXAiOiAyNzIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDI4Mi45NTY0MDQsICJzdGVwIjogMjczMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyOTIuMjc1Mzg1NCwgInN0ZXAiOiAyNzQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDMwMC4zMzQwMTc4LCAic3RlcCI6IDI3NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzA5LjQwOTYyMzYsICJzdGVwIjogMjc2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMTcuNTI4OTgwMywgInN0ZXAiOiAyNzcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDMzMC40MzQwODM3LCAic3RlcCI6IDI3ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzM5LjgyMDAyNzYsICJzdGVwIjogMjc5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNDcuOTkwMzgzNiwgInN0ZXAiOiAyODAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDM1Ni44ODgyOTQ3LCAic3RlcCI6IDI4MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzY1LjU3NDMxOCwgInN0ZXAiOiAyODIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDM3NC4zODk5NTg0LCAic3RlcCI6IDI4MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzgyLjQyNDQ4LCAic3RlcCI6IDI4NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzkwLjkzODYxNiwgInN0ZXAiOiAyODUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDQwNi42NzY3Mzc4LCAic3RlcCI6IDI4NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDE1LjA4NjI2NSwgInN0ZXAiOiAyODcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDQyMi45MTc1MTk4LCAic3RlcCI6IDI4ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDMxLjUzNDgyNDQsICJzdGVwIjogMjg5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0MzkuOTc4Mjc2LCAic3RlcCI6IDI5MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDQ4LjA4Mjc5NywgInN0ZXAiOiAyOTEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ1Ny40MjExMjE0LCAic3RlcCI6IDI5MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDY2LjcyMDM3NCwgInN0ZXAiOiAyOTMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ3OS4zMzA1MTQ0LCAic3RlcCI6IDI5NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDg4Ljc3OTU2NywgInN0ZXAiOiAyOTUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ5Ny4yMjIzNDczLCAic3RlcCI6IDI5NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTA1LjYzMTEyNzgsICJzdGVwIjogMjk3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MTMuMzUxMzI2NywgInN0ZXAiOiAyOTgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDUyMi4yOTgzODcsICJzdGVwIjogMjk5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MzAuMjA5OTQxOSwgInN0ZXAiOiAzMDAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDUzOC4yOTc1MzU3LCAic3RlcCI6IDMwMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTQ3LjM5NzgwNzQsICJzdGVwIjogMzAyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NjQuMDQ4NzY0MiwgInN0ZXAiOiAzMDMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDU3Mi4zNjcxMzksICJzdGVwIjogMzA0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1ODAuNjY4MTQyLCAic3RlcCI6IDMwNTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTg4LjY1MDY5MzIsICJzdGVwIjogMzA2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1OTcuNDE3OTg1LCAic3RlcCI6IDMwNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjA2LjEzNDcwNSwgInN0ZXAiOiAzMDgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDYxNC40MzY0NjYyLCAic3RlcCI6IDMwOTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjIzLjk5NzI3MiwgInN0ZXAiOiAzMTAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDYzNy4yNDk5NTc2LCAic3RlcCI6IDMxMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjQ1LjY3OTIwNDUsICJzdGVwIjogMzEyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NTQuMjY3MDA5NywgInN0ZXAiOiAzMTMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDY2My4zMTc4MDQ2LCAic3RlcCI6IDMxNDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjcxLjExNDM1NzIsICJzdGVwIjogMzE1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NzkuNzYxOTkyLCAic3RlcCI6IDMxNjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjg3Ljg0MTA4MDcsICJzdGVwIjogMzE3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2OTUuODUyMTc5NSwgInN0ZXAiOiAzMTgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDcwNC42MTg5NzMsICJzdGVwIjogMzE5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MTcuMTA1OTM5MSwgInN0ZXAiOiAzMjAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDcyNi4wOTUxOTM2LCAic3RlcCI6IDMyMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzM0Ljc3MjQ2ODgsICJzdGVwIjogMzIyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NDQuNDA4MTIwOSwgInN0ZXAiOiAzMjMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDc1Mi40OTc5NzEsICJzdGVwIjogMzI0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NjEuNzE3NDgwNCwgInN0ZXAiOiAzMjUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDc3MC4zNzI5NjUsICJzdGVwIjogMzI2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NzkuNzI2NTYsICJzdGVwIjogMzI3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3OTMuNjc1MzM3NiwgInN0ZXAiOiAzMjgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDgwMS44OTY1NzksICJzdGVwIjogMzI5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MTAuMTU3NjIyNiwgInN0ZXAiOiAzMzAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDgxOC43MjI1MiwgInN0ZXAiOiAzMzEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDgyNy4wMDI1NzYsICJzdGVwIjogMzMyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MzUuNTcwMjUzMSwgInN0ZXAiOiAzMzMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDg0My45Njk5ODE3LCAic3RlcCI6IDMzNDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODUzLjA4NzgxNTgsICJzdGVwIjogMzM1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NjUuNDE2NjA3LCAic3RlcCI6IDMzNjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODczLjY1NzkxNCwgInN0ZXAiOiAzMzcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDg4My4zMzI0MTIsICJzdGVwIjogMzM4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4OTIuMzczMzIzLCAic3RlcCI6IDMzOTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTAwLjcxODgwMzYsICJzdGVwIjogMzQwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MDguNTAwNzc4MiwgInN0ZXAiOiAzNDEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDkxNi42NTIzNTc2LCAic3RlcCI6IDM0MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTI1LjIwNDI4MDQsICJzdGVwIjogMzQzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MzMuODA2ODg5OCwgInN0ZXAiOiAzNDQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDk0Ny40NzY4Nzk2LCAic3RlcCI6IDM0NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTU2LjE4MzcxNzcsICJzdGVwIjogMzQ2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NjQuMjYyOTAxNSwgInN0ZXAiOiAzNDcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDk3Mi4zODI2MTksICJzdGVwIjogMzQ4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5ODAuNjQzNzYxNCwgInN0ZXAiOiAzNDkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDk4OS42ODQwMjg0LCAic3RlcCI6IDM1MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTk3Ljc4NDg3NzMsICJzdGVwIjogMzUxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMDYuMjY3OTY1NiwgInN0ZXAiOiAzNTIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTAxOC44OTMxNDcsICJzdGVwIjogMzUzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMjcuMTkzMTYzMiwgInN0ZXAiOiAzNTQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTAzNS4zMTcxMzk5LCAic3RlcCI6IDM1NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDQzLjc0MjI2ODMsICJzdGVwIjogMzU2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNTEuODY4Nzk2MywgInN0ZXAiOiAzNTcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTA2MC40OTI3OTksICJzdGVwIjogMzU4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNjguODc1NzczNCwgInN0ZXAiOiAzNTkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTA3Ny43MDk2MDA0LCAic3RlcCI6IDM2MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDg2LjIwOTAwMjUsICJzdGVwIjogMzYxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMDEuNjU1ODU5LCAic3RlcCI6IDM2MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTA5LjYxNjM5NjIsICJzdGVwIjogMzYzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMTguMTI1OTQ4NCwgInN0ZXAiOiAzNjQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTEyNi45ODk2NTYyLCAic3RlcCI6IDM2NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTM1LjgyNDA2NSwgInN0ZXAiOiAzNjYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTE0NC4yNDQ5MTA1LCAic3RlcCI6IDM2NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTUyLjk2MTI1ODYsICJzdGVwIjogMzY4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNjAuNTk5OTIxNywgInN0ZXAiOiAzNjkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTE3My43NDc0NzgyLCAic3RlcCI6IDM3MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTgyLjg3OTk2NzcsICJzdGVwIjogMzcxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExOTEuMjA2NTk2NCwgInN0ZXAiOiAzNzIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTIwMC4zMzAwMDQsICJzdGVwIjogMzczMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMDguMzYyNDUwOCwgInN0ZXAiOiAzNzQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTIxNi41Njg1NDk5LCAic3RlcCI6IDM3NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjI0LjY1ODYzNDIsICJzdGVwIjogMzc2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMzIuODU3MzEyMiwgInN0ZXAiOiAzNzcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTI0OC41MzA1Nzc3LCAic3RlcCI6IDM3ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjU3LjM4ODIxNDgsICJzdGVwIjogMzc5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNjUuNTY0MTQ4MiwgInN0ZXAiOiAzODAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTI3NC4xNzU0ODczLCAic3RlcCI6IDM4MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjgzLjAxNDc4MjIsICJzdGVwIjogMzgyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyOTEuNzI2MzEyOSwgInN0ZXAiOiAzODMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTI5OS44ODg0MTksICJzdGVwIjogMzg0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMDguNDc2MTgxNywgInN0ZXAiOiAzODUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTMxNi45NDgyNDI0LCAic3RlcCI6IDM4NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzMwLjIxMjQxMSwgInN0ZXAiOiAzODcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTMzOC45ODU3ODcsICJzdGVwIjogMzg4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNDcuNzMzODQxMiwgInN0ZXAiOiAzODkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTM1Ny4wMzEwMTA0LCAic3RlcCI6IDM5MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzY1LjIyMjI4MTIsICJzdGVwIjogMzkxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNzQuMTMxNzg5LCAic3RlcCI6IDM5MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzgyLjgxMDksICJzdGVwIjogMzkzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzOTEuNTY1NDkzMywgInN0ZXAiOiAzOTQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTQwNC40NjQ4MjAxLCAic3RlcCI6IDM5NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDEyLjMzNTcxOTYsICJzdGVwIjogMzk2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MjEuMTU0NDg4NiwgInN0ZXAiOiAzOTcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTQzMC4xMTc0NjI5LCAic3RlcCI6IDM5ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDM4LjQxMTE0NDUsICJzdGVwIjogMzk5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NDcuNzI1NjY4MiwgInN0ZXAiOiA0MDAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ1Ni4xOTM2NjkzLCAic3RlcCI6IDQwMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDY0Ljc0NjY1NiwgInN0ZXAiOiA0MDIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ3My4zOTM5MzEyLCAic3RlcCI6IDQwMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDkwLjI4NDEzMTMsICJzdGVwIjogNDA0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0OTguNzA4OTQyNywgInN0ZXAiOiA0MDUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTUwNy4wOTQ1Njk3LCAic3RlcCI6IDQwNjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTE1LjA2NDk0MzYsICJzdGVwIjogNDA3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MjMuODc4NTIyLCAic3RlcCI6IDQwODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTMyLjI4MjUxOTMsICJzdGVwIjogNDA5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NDAuOTE1MDgzLCAic3RlcCI6IDQxMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTQ5LjE3MzYzOTUsICJzdGVwIjogNDExMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NjUuODMzOTI2NCwgInN0ZXAiOiA0MTIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTU3My42MjkxNTM1LCAic3RlcCI6IDQxMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTgyLjA5MzU3OSwgInN0ZXAiOiA0MTQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTU5MC4wMTk5OTYyLCAic3RlcCI6IDQxNTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTk5LjIzODQ4OTYsICJzdGVwIjogNDE2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2MDguMDYxNDAwNCwgInN0ZXAiOiA0MTcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTYxNi4xODE1MzUyLCAic3RlcCI6IDQxODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjI2LjA4MDU5NTcsICJzdGVwIjogNDE5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NDEuMDA2MDkzNSwgInN0ZXAiOiA0MjAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTY0OS4wMzgyMTA5LCAic3RlcCI6IDQyMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjU4LjUyOTE1NCwgInN0ZXAiOiA0MjIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTY2Ny45NjM4MzksICJzdGVwIjogNDIzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NzYuMTA2NTAwOSwgInN0ZXAiOiA0MjQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTY4NC4zNzYyMDQ3LCAic3RlcCI6IDQyNTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjkzLjEwNzQzOSwgInN0ZXAiOiA0MjYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTcwMi4xODE3MDQsICJzdGVwIjogNDI3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MTAuNjI3NjEyLCAic3RlcCI6IDQyODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzI2LjY3NTIwNzksICJzdGVwIjogNDI5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MzUuMjEzNDU4OCwgInN0ZXAiOiA0MzAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTc0Mi45NTUwMDE0LCAic3RlcCI6IDQzMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzUxLjU4Mzc1NjIsICJzdGVwIjogNDMyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NjAuMDMyNTcxNiwgInN0ZXAiOiA0MzMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTc2OC40MjkyOTM2LCAic3RlcCI6IDQzNDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzc3LjM5OTg0NzUsICJzdGVwIjogNDM1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3ODUuNTQ1MzM0NiwgInN0ZXAiOiA0MzYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTgwMC44ODMyNTUsICJzdGVwIjogNDM3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MDkuMjYzNTc2MywgInN0ZXAiOiA0MzgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTgxNy4zNDQxMzk2LCAic3RlcCI6IDQzOTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODI2LjQyODE3OSwgInN0ZXAiOiA0NDAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTgzNC44ODU2MTUzLCAic3RlcCI6IDQ0MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODQzLjQ0NDU5NCwgInN0ZXAiOiA0NDIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTg1MS41OTM4MDksICJzdGVwIjogNDQzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NTkuOTIxNTA0NSwgInN0ZXAiOiA0NDQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTg2OC42NzEwODcsICJzdGVwIjogNDQ1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4ODEuMzM0NzIxLCAic3RlcCI6IDQ0NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODg5LjYzNDAxODcsICJzdGVwIjogNDQ3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4OTguNDE4ODAwNCwgInN0ZXAiOiA0NDgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTkwNy4zMzQwNDU2LCAic3RlcCI6IDQ0OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTE2LjI3NTkxMTYsICJzdGVwIjogNDUwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5MjUuMzQ2NzE2LCAic3RlcCI6IDQ1MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTMzLjMyNzE3ODcsICJzdGVwIjogNDUyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NDEuNDgwNjM0LCAic3RlcCI6IDQ1MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTU0LjE2NzQzOCwgInN0ZXAiOiA0NTQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTk2Mi4zOTM2NTU4LCAic3RlcCI6IDQ1NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTcwLjUxMTA1MywgInN0ZXAiOiA0NTYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTk3OC44Njc3MzEsICJzdGVwIjogNDU3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5ODcuNzA4NDUzLCAic3RlcCI6IDQ1ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTk2LjQ0MTg2MjgsICJzdGVwIjogNDU5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMDQuNDczODM1MiwgInN0ZXAiOiA0NjAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjAxMi43NDIzNjU0LCAic3RlcCI6IDQ2MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDI1LjM5ODQ2NCwgInN0ZXAiOiA0NjIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjAzNC4xMTU3NzIyLCAic3RlcCI6IDQ2MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDQzLjAzNTAzOSwgInN0ZXAiOiA0NjQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjA1MS43ODE5MTUyLCAic3RlcCI6IDQ2NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDYwLjEwNTYxNTQsICJzdGVwIjogNDY2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNjguNjAwNDc5OCwgInN0ZXAiOiA0NjcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjA3Ni44MzM5MTEyLCAic3RlcCI6IDQ2ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDg1LjM3MzQ1NywgInN0ZXAiOiA0NjkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjA5My43NDU5MDI4LCAic3RlcCI6IDQ3MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTA2Ljk4NzUwNTIsICJzdGVwIjogNDcxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMTUuNjYyMzI3OCwgInN0ZXAiOiA0NzIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjEyMy45NDc3MzQ4LCAic3RlcCI6IDQ3MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTMyLjI3Nzc0NTcsICJzdGVwIjogNDc0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNDAuNDE3NjAyNSwgInN0ZXAiOiA0NzUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjE0OS4wODQ0MzQsICJzdGVwIjogNDc2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNTcuNDA4OTM5OCwgInN0ZXAiOiA0NzcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjE2NS40ODY1MjY1LCAic3RlcCI6IDQ3ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTc5LjY0NTUzMjYsICJzdGVwIjogNDc5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxODguMzI2NzEyNCwgInN0ZXAiOiA0ODAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjE5Ni44NDQyNDU3LCAic3RlcCI6IDQ4MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjA0LjU1OTQwNiwgInN0ZXAiOiA0ODIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjIxMy4wOTY3NzU1LCAic3RlcCI6IDQ4MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjIxLjY2NDAxNzcsICJzdGVwIjogNDg0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMjkuODkxMjE2LCAic3RlcCI6IDQ4NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjM4LjA1MzMyNTcsICJzdGVwIjogNDg2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNDYuMzQwNzE1LCAic3RlcCI6IDQ4NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjYxLjI2NTExOTMsICJzdGVwIjogNDg4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNjkuODQ5MjkxMywgInN0ZXAiOiA0ODkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjI3OC44NTg0NjUsICJzdGVwIjogNDkwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyODcuNTMxODA2LCAic3RlcCI6IDQ5MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjk1Ljk0NDI3NjYsICJzdGVwIjogNDkyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMDQuMzUyODI0NywgInN0ZXAiOiA0OTMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjMxMy41MDcyMzg0LCAic3RlcCI6IDQ5NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzIxLjMyMjUwNCwgInN0ZXAiOiA0OTUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjMzNy4wMjI4NjMsICJzdGVwIjogNDk2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNDUuNTI3ODMyMywgInN0ZXAiOiA0OTcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjM1My40MjcxMjcsICJzdGVwIjogNDk4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNjIuNDEwNzgyOCwgInN0ZXAiOiA0OTkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjM3MS43NDM0ODk3LCAic3RlcCI6IDUwMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzgwLjUyNzIxMDIsICJzdGVwIjogNTAxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzODkuMDIzODUyOCwgInN0ZXAiOiA1MDIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjM5Ny43ODI4MjE3LCAic3RlcCI6IDUwMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDExLjI5NjMyNSwgInN0ZXAiOiA1MDQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjQxOS40NzEzMDUsICJzdGVwIjogNTA1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MjguMzY5NzYzOSwgInN0ZXAiOiA1MDYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjQzNy4xMTM5Nzg0LCAic3RlcCI6IDUwNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDQ2LjE3MjczNTcsICJzdGVwIjogNTA4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NTQuNDI1OTM5OCwgInN0ZXAiOiA1MDkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ2Mi40MDgwNjk0LCAic3RlcCI6IDUxMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDcxLjE0NzUwMDUsICJzdGVwIjogNTExMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NzguOTQ0MDEyNCwgInN0ZXAiOiA1MTIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ5MS4zMTk3MDM2LCAic3RlcCI6IDUxMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDk5LjI1NjIzNDYsICJzdGVwIjogNTE0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MDcuMTA5Mzc1NSwgInN0ZXAiOiA1MTUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjUxNS4zMTQ1ODY0LCAic3RlcCI6IDUxNjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTIzLjQ5NjYyNDIsICJzdGVwIjogNTE3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MzEuMDg0ODA2NCwgInN0ZXAiOiA1MTgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjU0MC4wMTg0OTIyLCAic3RlcCI6IDUxOTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTQ4LjY0ODc5ODIsICJzdGVwIjogNTIwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NjEuNDEyNjM3NSwgInN0ZXAiOiA1MjEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjU2OS44OTMwNjE0LCAic3RlcCI6IDUyMjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTc4LjY3NTgxNzcsICJzdGVwIjogNTIzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1ODYuOTM4ODIzMiwgInN0ZXAiOiA1MjQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjU5NS4wMzE5MjExLCAic3RlcCI6IDUyNTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjAzLjE3MDkwMzIsICJzdGVwIjogNTI2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MTEuMDc2OTkwMSwgInN0ZXAiOiA1MjcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjYxOS45NTE4MDM0LCAic3RlcCI6IDUyODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjI4LjYzMjE0NSwgInN0ZXAiOiA1MjkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjY0MS4zNzM0NTgsICJzdGVwIjogNTMwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NDkuODU1MTIzOCwgInN0ZXAiOiA1MzEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjY1Ny45Njg2NzQsICJzdGVwIjogNTMyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NjcuMDI2NTg2NSwgInN0ZXAiOiA1MzMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjY3NS45NDA0MjksICJzdGVwIjogNTM0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2ODQuMjM1OTgyNywgInN0ZXAiOiA1MzUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjY5MS44NTU3MDg0LCAic3RlcCI6IDUzNjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzAwLjE0NTU0MDcsICJzdGVwIjogNTM3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MTMuMTgxMDgyNSwgInN0ZXAiOiA1MzgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjcyMS4wMjE4ODksICJzdGVwIjogNTM5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MjkuODc0NTI3NywgInN0ZXAiOiA1NDAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjczOC4zNjU5NTE4LCAic3RlcCI6IDU0MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzQ2LjM4MDA0OTUsICJzdGVwIjogNTQyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3NTQuNjE1MTk3LCAic3RlcCI6IDU0MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzYyLjU0Mzc0MSwgInN0ZXAiOiA1NDQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc3MS4zNTgwMiwgInN0ZXAiOiA1NDUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc4Ny4xNDk3MzA0LCAic3RlcCI6IDU0NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzk1Ljc5OTc1NzUsICJzdGVwIjogNTQ3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MDQuMjM5NTU4LCAic3RlcCI6IDU0ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODEyLjM3MDMzMzcsICJzdGVwIjogNTQ5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MjEuMTU2NTcxNiwgInN0ZXAiOiA1NTAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjgzMC4wMjAwNDE1LCAic3RlcCI6IDU1MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODM4LjY5MjUxOSwgInN0ZXAiOiA1NTIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg0Ni45MDI0OTgyLCAic3RlcCI6IDU1MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODU1LjI0Mjk0ODUsICJzdGVwIjogNTU0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NzAuNjQxNzE0MywgInN0ZXAiOiA1NTUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg3OC43MjU4ODM3LCAic3RlcCI6IDU1NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODg2LjYwNzM1NjgsICJzdGVwIjogNTU3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4OTUuMDE3OTgzMiwgInN0ZXAiOiA1NTgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjkwMy40MDAwMjYsICJzdGVwIjogNTU5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MTEuMjA3MjU1NiwgInN0ZXAiOiA1NjAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjkxOS44MzY5NjY1LCAic3RlcCI6IDU2MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTI4LjczMDI5ODMsICJzdGVwIjogNTYyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NDEuNzAxNDc3MywgInN0ZXAiOiA1NjMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk0OS45NzcxMjYxLCAic3RlcCI6IDU2NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTU4LjcxNTk1NywgInN0ZXAiOiA1NjUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk2Ni44MTA4OTE5LCAic3RlcCI6IDU2NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTc0Ljk1ODMwMzUsICJzdGVwIjogNTY3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5ODMuNTU5MTk5NiwgInN0ZXAiOiA1NjgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk5Mi4yMjQ2OTY0LCAic3RlcCI6IDU2OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDAwLjgxNDM2LCAic3RlcCI6IDU3MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDA5Ljc4MDQ4NzgsICJzdGVwIjogNTcxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMjIuODY2MDU3NCwgInN0ZXAiOiA1NzIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzAzMS41MzA3NjUsICJzdGVwIjogNTczMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMzkuNTY3MjE2LCAic3RlcCI6IDU3NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDQ3Ljg0MDA2NDgsICJzdGVwIjogNTc1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNTYuMTUzNzc5NywgInN0ZXAiOiA1NzYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzA2NC45NTI0NTQ2LCAic3RlcCI6IDU3NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDczLjgzNDgzOSwgInN0ZXAiOiA1NzgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzA4Mi43MjIxMTgsICJzdGVwIjogNTc5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwOTUuMTAwNzc4NiwgInN0ZXAiOiA1ODAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzEwMy4zMTMwMzgsICJzdGVwIjogNTgxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMTEuOTY3NzU5NCwgInN0ZXAiOiA1ODIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzEyMC4zNTI0OTQ1LCAic3RlcCI6IDU4MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTI4LjIwNjYyMDIsICJzdGVwIjogNTg0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMzYuNzEzMTI1MiwgInN0ZXAiOiA1ODUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzE0NC45MjUyMzg2LCAic3RlcCI6IDU4NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTUzLjAzNzg1NywgInN0ZXAiOiA1ODcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzE2Ni4wMDA0MTI3LCAic3RlcCI6IDU4ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTc0LjY1NjE0NTgsICJzdGVwIjogNTg5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxODIuNTA1NzI0MiwgInN0ZXAiOiA1OTAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzE5MS41NTY5ODYsICJzdGVwIjogNTkxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxOTkuNDA3NjIxNCwgInN0ZXAiOiA1OTIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzIwNy40NjI3MiwgInN0ZXAiOiA1OTMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzIxNS42MDAyNTU1LCAic3RlcCI6IDU5NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjI0LjM1NTU5OTQsICJzdGVwIjogNTk1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMzIuODczOTQ0NSwgInN0ZXAiOiA1OTYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzI0NS4zNzE3ODMzLCAic3RlcCI6IDU5NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjUzLjE3NzAzNSwgInN0ZXAiOiA1OTgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzI2MS43Njk2MDgsICJzdGVwIjogNTk5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNzAuMDU3NDQ0OCwgInN0ZXAiOiA2MDAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzI3OC44OTI5MDEsICJzdGVwIjogNjAxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyODcuNjc5Nzc1NSwgInN0ZXAiOiA2MDIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzI5Ny4yNzIxNDg0LCAic3RlcCI6IDYwMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzA1LjkxNTc5OTQsICJzdGVwIjogNjA0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzMjIuMzUyOTIxLCAic3RlcCI6IDYwNTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzMxLjk3NDg5MjEsICJzdGVwIjogNjA2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNDAuNTE5ODA3NiwgInN0ZXAiOiA2MDcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzM0OS41OTk1MDk1LCAic3RlcCI6IDYwODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzU5LjA2ODYwMzgsICJzdGVwIjogNjA5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNjguNDAwNDc0MywgInN0ZXAiOiA2MTAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzM3Ny42NzI2MDk2LCAic3RlcCI6IDYxMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzg2LjM5Nzg3NjMsICJzdGVwIjogNjEyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzOTUuNDQ5MTQyLCAic3RlcCI6IDYxMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDA4LjE0OTQ0MSwgInN0ZXAiOiA2MTQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzQxNy4zMjEzNjI1LCAic3RlcCI6IDYxNTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDI2LjI1MzIzMSwgInN0ZXAiOiA2MTYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzQzNC44MDY3NDQ2LCAic3RlcCI6IDYxNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDQ0LjUxMDIzNjMsICJzdGVwIjogNjE4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NTMuMTEyODY0NSwgInN0ZXAiOiA2MTkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ2Mi41NjMxNjM4LCAic3RlcCI6IDYyMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDcyLjAyMTgzMTUsICJzdGVwIjogNjIxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0ODQuNDQ2MzYsICJzdGVwIjogNjIyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0OTMuNjU3NjAyMywgInN0ZXAiOiA2MjMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzUwMi40Mzg1OTEsICJzdGVwIjogNjI0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MTEuMjUzMzM4OCwgInN0ZXAiOiA2MjUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzUyMC40ODI2MSwgInN0ZXAiOiA2MjYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzUyOS43NzkwNTI1LCAic3RlcCI6IDYyNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTM5LjYzNjc2NCwgInN0ZXAiOiA2MjgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzU0OC45MDgyMjIsICJzdGVwIjogNjI5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NjAuNjE3ODE0LCAic3RlcCI6IDYzMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTcwLjA2NjQ2OSwgInN0ZXAiOiA2MzEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzU3OS40Nzg2NTk2LCAic3RlcCI6IDYzMjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTg3LjY2NDcxMSwgInN0ZXAiOiA2MzMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzU5Ny4yMTU1NDQsICJzdGVwIjogNjM0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MDYuMjM1NzU1NCwgInN0ZXAiOiA2MzUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzYxNS4wNzUxMTg1LCAic3RlcCI6IDYzNjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjI0LjgzMjEwNSwgInN0ZXAiOiA2MzcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzYzNC42NzAwNjM3LCAic3RlcCI6IDYzODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjQ2LjUyNjI3NiwgInN0ZXAiOiA2MzkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzY1NS43NDMwMjEsICJzdGVwIjogNjQwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NjUuNjA0Nzk3OCwgInN0ZXAiOiA2NDEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzY3NC42NDAzMzYzLCAic3RlcCI6IDY0MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjgzLjY2NzkyMjUsICJzdGVwIjogNjQzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2OTIuODc0MzExLCAic3RlcCI6IDY0NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzAyLjUxNjczOSwgInN0ZXAiOiA2NDUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzcxMi42MjQ5ODI0LCAic3RlcCI6IDY0NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzI0LjA0NTA2MDYsICJzdGVwIjogNjQ3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MzIuODI1OTU4NywgInN0ZXAiOiA2NDgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc0MS45NTQ3MjYyLCAic3RlcCI6IDY0OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzUwLjcxNTI5MSwgInN0ZXAiOiA2NTAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc2MC40ODU3MjY4LCAic3RlcCI6IDY1MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzY5Ljg2MDg0MjcsICJzdGVwIjogNjUyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NzkuMTI0NzE0LCAic3RlcCI6IDY1MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzg5LjQ3NTMxNSwgInN0ZXAiOiA2NTQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc5OC4xMDA5NDg4LCAic3RlcCI6IDY1NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODEwLjU1MDkyMDUsICJzdGVwIjogNjU2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MjAuMDMzOTA1NywgInN0ZXAiOiA2NTcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzgyOC4yMzU5MTE2LCAic3RlcCI6IDY1ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODM2Ljc5NTgyNjQsICJzdGVwIjogNjU5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NDUuOTg1MTM0LCAic3RlcCI6IDY2MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODU1LjI0OTYwMTEsICJzdGVwIjogNjYxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NjQuNjkxMTgwNSwgInN0ZXAiOiA2NjIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg3My44MzIzMjEyLCAic3RlcCI6IDY2MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODg3LjUyMjc1MjMsICJzdGVwIjogNjY0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4OTcuMzMxNTczNSwgInN0ZXAiOiA2NjUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzkwNi44NzQ0NjY3LCAic3RlcCI6IDY2NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTE2LjM0ODAxNTUsICJzdGVwIjogNjY3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5MjUuNjE2MzI3OCwgInN0ZXAiOiA2NjgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzkzNC45MTQ0NDg3LCAic3RlcCI6IDY2OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTQzLjc0MDA2NiwgInN0ZXAiOiA2NzAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mzk1Mi40NzQ5MDUzLCAic3RlcCI6IDY3MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH1dfX1d", + "ok": true, + "headers": [ + [ + "content-length", + "8646" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Loss/loss_bbox_dn_5%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIkxvc3MvbG9zc19iYm94X2RuXzUiLCAicnVuVG9TZXJpZXMiOiB7Ii4iOiBbeyJ3YWxsVGltZSI6IDE3MzMwNjc2MzEuNTQxMzczNywgInN0ZXAiOiAwLCAidmFsdWUiOiAwLjA1NDM2MTU3NDM1MTc4NzU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NDYuNjU0NzIzNCwgInN0ZXAiOiAxMCwgInZhbHVlIjogMC4wNTM0Nzc4NDYwODYwMjUyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NjYwLjc4Njc5NzMsICJzdGVwIjogMjAsICJ2YWx1ZSI6IDAuMDQ1NDI0MDg1MTEwNDI1OTV9LCB7IndhbGxUaW1lIjogMTczMzA2NzY3NC4xNDAwNTYxLCAic3RlcCI6IDMwLCAidmFsdWUiOiAwLjA1MTA4MDQ4NzY2ODUxNDI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2ODcuMDU5Njk1LCAic3RlcCI6IDQwLCAidmFsdWUiOiAwLjA2NTI2MjEwMTU5MDYzMzM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2OTkuNDk1NzY1NCwgInN0ZXAiOiA1MCwgInZhbHVlIjogMC4xMDAzNjE4MDkxMzQ0ODMzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzEwLjYzMTk2MDYsICJzdGVwIjogNjAsICJ2YWx1ZSI6IDAuMDg3NTUwMjk3Mzc5NDkzNzF9LCB7IndhbGxUaW1lIjogMTczMzA2NzcyMi43NTgxMTk4LCAic3RlcCI6IDcwLCAidmFsdWUiOiAwLjAzNDYyNjUyMTE3MDEzOTMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MzMuNzI3OTA1OCwgInN0ZXAiOiA4MCwgInZhbHVlIjogMC4xMjQ1MDc0NjQ0Njg0NzkxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzUwLjk0ODgyMywgInN0ZXAiOiA5MCwgInZhbHVlIjogMC4wNDQ5NDg2NDEyMTA3OTQ0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzYxLjk4MzQ5NiwgInN0ZXAiOiAxMDAsICJ2YWx1ZSI6IDAuMDY2OTIwODY5MDUyNDEwMTN9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc3MS42MDg5MiwgInN0ZXAiOiAxMTAsICJ2YWx1ZSI6IDAuMDcxMDA0NzYzMjQ1NTgyNTh9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc4MC41NDk5MjQsICJzdGVwIjogMTIwLCAidmFsdWUiOiAwLjEyNjUxNTY0MTgwODUwOTgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3OTAuNDg4MDE5NSwgInN0ZXAiOiAxMzAsICJ2YWx1ZSI6IDAuMDUxMjI3OTQyMTA5MTA3OTd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc5OS4xMDgxMzM2LCAic3RlcCI6IDE0MCwgInZhbHVlIjogMC4wODY1ODUyNTM0NzcwOTY1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODA5LjQ0ODAwNzgsICJzdGVwIjogMTUwLCAidmFsdWUiOiAwLjEzOTk1NTE2MzAwMjAxNDE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MTguOTIzMjA4NSwgInN0ZXAiOiAxNjAsICJ2YWx1ZSI6IDAuMDYxODc4NjcwMDA2OTkwNDN9LCB7IndhbGxUaW1lIjogMTczMzA2NzgzNi42NTIxOTUyLCAic3RlcCI6IDE3MCwgInZhbHVlIjogMC4wNjcxMzEwODcxODM5NTIzM30sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODQ2LjM5MzA5NSwgInN0ZXAiOiAxODAsICJ2YWx1ZSI6IDAuMDc4MzM4ODI0MjEyNTUxMTJ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg1NS42Njk2MTIsICJzdGVwIjogMTkwLCAidmFsdWUiOiAwLjA3Njg4OTY4NjI4NjQ0OTQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4NjQuODk0MDYwNiwgInN0ZXAiOiAyMDAsICJ2YWx1ZSI6IDAuMDc5NTU4NDYxOTA0NTI1NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg3NC4wMDQ0NzE1LCAic3RlcCI6IDIxMCwgInZhbHVlIjogMC4wNjQ3MjExNDQ3MzU4MTMxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODgzLjc5MDMxNjgsICJzdGVwIjogMjIwLCAidmFsdWUiOiAwLjA2MjY0OTI5NDczNDAwMTE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4OTIuMTI1NjY0MiwgInN0ZXAiOiAyMzAsICJ2YWx1ZSI6IDAuMDU3MjQ2NjkyNDc4NjU2Nzd9LCB7IndhbGxUaW1lIjogMTczMzA2NzkwMS4wNzE4NjA2LCAic3RlcCI6IDI0MCwgInZhbHVlIjogMC4xMDE4NzExNzc1NTQxMzA1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTEwLjA3NzQyMzgsICJzdGVwIjogMjUwLCAidmFsdWUiOiAwLjA4MzE5MTY3NzkyNzk3MDg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MjUuOTUyNjIwNywgInN0ZXAiOiAyNjAsICJ2YWx1ZSI6IDAuMDYyMzQ2NDk5NDEzMjUxODh9LCB7IndhbGxUaW1lIjogMTczMzA2NzkzNS40NzgyMDU3LCAic3RlcCI6IDI3MCwgInZhbHVlIjogMC4wNTEzMDUwODkxNDU4OTg4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTQ0LjAxOTg1MzYsICJzdGVwIjogMjgwLCAidmFsdWUiOiAwLjA1MzM2Mjc0OTUxNjk2Mzk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NTIuNTUwOTczNCwgInN0ZXAiOiAyOTAsICJ2YWx1ZSI6IDAuMTIwODkzNDYzNDkyMzkzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTYxLjAyOTM0MjIsICJzdGVwIjogMzAwLCAidmFsdWUiOiAwLjEwODI4ODM3NzUyMzQyMjI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NzAuMTM3MTQxMiwgInN0ZXAiOiAzMTAsICJ2YWx1ZSI6IDAuMDg3NDYxNzM5Nzc4NTE4Njh9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk4MC4yMjgzNjg4LCAic3RlcCI6IDMyMCwgInZhbHVlIjogMC4wNjAyODY1MzY4MTI3ODIyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTg4LjgxODU1OCwgInN0ZXAiOiAzMzAsICJ2YWx1ZSI6IDAuMDY3NzU1MTQwMzY0MTcwMDd9LCB7IndhbGxUaW1lIjogMTczMzA2ODAwNS4wOTMyMjQsICJzdGVwIjogMzQwLCAidmFsdWUiOiAwLjA2MzE2NjE4NjIxMzQ5MzM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMTQuMDY3ODI3MiwgInN0ZXAiOiAzNTAsICJ2YWx1ZSI6IDAuMDI5MzM3OTA3MjA5OTkyNDF9LCB7IndhbGxUaW1lIjogMTczMzA2ODAyMi41NTU2MzA3LCAic3RlcCI6IDM2MCwgInZhbHVlIjogMC4wNTk1OTIwOTQyNzIzNzUxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDMxLjgyNzMwOTgsICJzdGVwIjogMzcwLCAidmFsdWUiOiAwLjA2MjkwOTA1OTIyNjUxMjkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNDAuNzkwNDMxMywgInN0ZXAiOiAzODAsICJ2YWx1ZSI6IDAuMDU0MzI4Njk4NjY0OTAzNjR9LCB7IndhbGxUaW1lIjogMTczMzA2ODA1MC4xNjI5MDc4LCAic3RlcCI6IDM5MCwgInZhbHVlIjogMC4wOTg1NjQ4MTg1MDE0NzI0N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDU5LjEyODc1MSwgInN0ZXAiOiA0MDAsICJ2YWx1ZSI6IDAuMTA0NzA1MzExMzU3OTc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNjguMDkyNzMxLCAic3RlcCI6IDQxMCwgInZhbHVlIjogMC4xMTA4MDQzNTY2MzQ2MTY4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDg0Ljg0Njk5OCwgInN0ZXAiOiA0MjAsICJ2YWx1ZSI6IDAuMDc5ODQ4MDM2MTcwMDA1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDk0LjY2OTMzNTYsICJzdGVwIjogNDMwLCAidmFsdWUiOiAwLjA0NDYxODQxNjU3NzU3NzU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMDMuNzEwODQ4LCAic3RlcCI6IDQ0MCwgInZhbHVlIjogMC4wNTM3Mzc3OTY4NDMwNTE5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTEyLjcwMjIzOTgsICJzdGVwIjogNDUwLCAidmFsdWUiOiAwLjA1NTkzMjA4MjIzNTgxMzE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMjEuNTAzODQwNywgInN0ZXAiOiA0NjAsICJ2YWx1ZSI6IDAuMDQ2MjI1MjM0ODY2MTQyMjd9LCB7IndhbGxUaW1lIjogMTczMzA2ODEzMC43MzA1MSwgInN0ZXAiOiA0NzAsICJ2YWx1ZSI6IDAuMDY5Mjc2Nzk0NzkxMjIxNjJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODEzOS44NTg0Nzk1LCAic3RlcCI6IDQ4MCwgInZhbHVlIjogMC4wNjExNTcwODEyNzYxNzgzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTQ5LjM3Mjc0ODQsICJzdGVwIjogNDkwLCAidmFsdWUiOiAwLjA3MjEwMTU0ODMxNDA5NDU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxNTguMDcyODAxNCwgInN0ZXAiOiA1MDAsICJ2YWx1ZSI6IDAuMDcyOTIzNDA2OTU4NTgwMDJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODE3NC4xMTgwNDM3LCAic3RlcCI6IDUxMCwgInZhbHVlIjogMC4wODYxMTQ5MjA2NzU3NTQ1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTgyLjcyMjUwMjUsICJzdGVwIjogNTIwLCAidmFsdWUiOiAwLjA0NzQ4MDczOTY1MzExMDUwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTkyLjQxNjYwNCwgInN0ZXAiOiA1MzAsICJ2YWx1ZSI6IDAuMDgwOTUwMDI5MTk0MzU1MDF9LCB7IndhbGxUaW1lIjogMTczMzA2ODIwMS44MzM4NTU2LCAic3RlcCI6IDU0MCwgInZhbHVlIjogMC4wNzI5MzY3NzMzMDAxNzA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMTAuNjU3NDc5MywgInN0ZXAiOiA1NTAsICJ2YWx1ZSI6IDAuMDcxOTYwODM2NjQ4OTQxMDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODIyMC4xOTgwMzc5LCAic3RlcCI6IDU2MCwgInZhbHVlIjogMC4wNzUwNzgwNDc4MTE5ODUwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjI5LjE2MjM1NywgInN0ZXAiOiA1NzAsICJ2YWx1ZSI6IDAuMDc4MjA4MDg4ODc0ODE2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjM4LjU5NDQ4NTMsICJzdGVwIjogNTgwLCAidmFsdWUiOiAwLjA2OTUyNzY3MDc0MTA4MTI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNTYuMDc4NDk2MiwgInN0ZXAiOiA1OTAsICJ2YWx1ZSI6IDAuMDUyMTUwMjIzNDA0MTY5MDh9LCB7IndhbGxUaW1lIjogMTczMzA2ODI2NS40MzQ4ODM4LCAic3RlcCI6IDYwMCwgInZhbHVlIjogMC4xMjE5MjYzNTIzODE3MDYyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Mjc0LjY1OTQ0MjcsICJzdGVwIjogNjEwLCAidmFsdWUiOiAwLjA1MzMxOTg2MDI0OTc1Nzc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyODMuNzczMDYyNywgInN0ZXAiOiA2MjAsICJ2YWx1ZSI6IDAuMDU3NzQ1NjU3ODYxMjMyNzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODI5My4zMzcyMDE4LCAic3RlcCI6IDYzMCwgInZhbHVlIjogMC4wNTgzNjc0Mzg2MTQzNjg0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzAyLjY1MDE4ODcsICJzdGVwIjogNjQwLCAidmFsdWUiOiAwLjA3NDM2Nzc2MTYxMTkzODQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMTEuMzkxMjA4MiwgInN0ZXAiOiA2NTAsICJ2YWx1ZSI6IDAuMDU2ODI5NTg2NjI1MDk5MTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODMyMC4zOTMyMDU2LCAic3RlcCI6IDY2MCwgInZhbHVlIjogMC4wNzI0MDUwMTA0NjE4MDcyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzI4LjczNDU0MDUsICJzdGVwIjogNjcwLCAidmFsdWUiOiAwLjA3MTgyMTY5NzA1NjI5MzQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNDQuNDY0Mjg1LCAic3RlcCI6IDY4MCwgInZhbHVlIjogMC4wODAwMzIxMTc2NjQ4MTR9LCB7IndhbGxUaW1lIjogMTczMzA2ODM1My43MTk5MzQ1LCAic3RlcCI6IDY5MCwgInZhbHVlIjogMC4wNTAzNDU5MjM3NTE1OTI2MzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODM2Mi4wNjA4NTE2LCAic3RlcCI6IDcwMCwgInZhbHVlIjogMC4wODA2MDkxNDI3ODAzMDM5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzcxLjEwNzA4NSwgInN0ZXAiOiA3MTAsICJ2YWx1ZSI6IDAuMDQyNTgzNDgwNDc3MzMzMDd9LCB7IndhbGxUaW1lIjogMTczMzA2ODM4MC41MzYxNzkzLCAic3RlcCI6IDcyMCwgInZhbHVlIjogMC4wNzY0Mzg4NTE2NTQ1Mjk1N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzkwLjA4OTYxNTgsICJzdGVwIjogNzMwLCAidmFsdWUiOiAwLjA0MzM3NTk2ODkzMzEwNTQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzOTguNzI0MDAwNSwgInN0ZXAiOiA3NDAsICJ2YWx1ZSI6IDAuMDg2NjU4NTk2OTkyNDkyNjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODQwNy4xMjY5OTQ4LCAic3RlcCI6IDc1MCwgInZhbHVlIjogMC4wNTkwNTgwMzY2NTUxODc2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDIzLjA3NjI2MDYsICJzdGVwIjogNzYwLCAidmFsdWUiOiAwLjA2NDA5OTE0NzkxNTg0MDE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MzEuNDA4NDEyNSwgInN0ZXAiOiA3NzAsICJ2YWx1ZSI6IDAuMDc0NjI4OTA0NDYxODYwNjZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ0MC40MjgxMjI1LCAic3RlcCI6IDc4MCwgInZhbHVlIjogMC4wNDUyNTg4MTYzMzE2MjQ5ODV9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ0OS4wMDk3NDIsICJzdGVwIjogNzkwLCAidmFsdWUiOiAwLjA1OTcwMDE1Mzc2ODA2MjU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NTcuNjQyODA5NCwgInN0ZXAiOiA4MDAsICJ2YWx1ZSI6IDAuMDQwOTY3NDY0NDQ3MDIxNDg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NjcuMDY2NzAyMSwgInN0ZXAiOiA4MTAsICJ2YWx1ZSI6IDAuMDU4MTA2MDY0Nzk2NDQ3NzU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NzUuNjIzNTc1NCwgInN0ZXAiOiA4MjAsICJ2YWx1ZSI6IDAuMDU5NDg1OTU3MDI2NDgxNjN9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ4NC45ODIwOTUyLCAic3RlcCI6IDgzMCwgInZhbHVlIjogMC4wNDY2ODk5NDk5Mjk3MTQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MDAuNzM0ODI3OCwgInN0ZXAiOiA4NDAsICJ2YWx1ZSI6IDAuMDQxNTQzODExNTU5Njc3MTI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MDkuMzExMDU1MiwgInN0ZXAiOiA4NTAsICJ2YWx1ZSI6IDAuMDQ0MDk1ODgxMjgzMjgzMjM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MTkuMDI1NzgsICJzdGVwIjogODYwLCAidmFsdWUiOiAwLjAzNTYzMzAwMTQ3NjUyNjI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MjcuNTAxODY3OCwgInN0ZXAiOiA4NzAsICJ2YWx1ZSI6IDAuMDYwODMxNjQ3MzY2Mjg1MzI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MzYuOTIzNjM2MiwgInN0ZXAiOiA4ODAsICJ2YWx1ZSI6IDAuMDU1ODc4NzU4NDMwNDgwOTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODU0NC45MTIxNTIsICJzdGVwIjogODkwLCAidmFsdWUiOiAwLjA0OTg2NjEwNjM2MTE1MDc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NTMuNTgyNTEzLCAic3RlcCI6IDkwMCwgInZhbHVlIjogMC4wNTk1MDg4NTI2NjA2NTU5NzV9LCB7IndhbGxUaW1lIjogMTczMzA2ODU2Mi42ODkzNjEsICJzdGVwIjogOTEwLCAidmFsdWUiOiAwLjA2OTI4NzU1MzQyOTYwMzU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NzEuMjQ5NzcxLCAic3RlcCI6IDkyMCwgInZhbHVlIjogMC4wNTI2MTI3MzY4MjExNzQ2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTg0Ljc3OTg1NjIsICJzdGVwIjogOTMwLCAidmFsdWUiOiAwLjAzOTc4NDExODUzMzEzNDQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1OTMuNzc2NzgwNiwgInN0ZXAiOiA5NDAsICJ2YWx1ZSI6IDAuMDYxNzI4NjMzOTQwMjE5ODh9LCB7IndhbGxUaW1lIjogMTczMzA2ODYwMi43NzAzNDgsICJzdGVwIjogOTUwLCAidmFsdWUiOiAwLjAyNjA4Mzg1NjgyMTA2MDE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MTEuMDQ0MzI5MiwgInN0ZXAiOiA5NjAsICJ2YWx1ZSI6IDAuMDY5MjA5Njk0ODYyMzY1NzJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODYyMC4yMzEwMjA3LCAic3RlcCI6IDk3MCwgInZhbHVlIjogMC4wNTE2NjkyMTM5MjA4MzE2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjI4Ljg0NjIxMjksICJzdGVwIjogOTgwLCAidmFsdWUiOiAwLjA0NzIyNjM0NzAyOTIwOTE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MzcuNjM0ODc4MiwgInN0ZXAiOiA5OTAsICJ2YWx1ZSI6IDAuMDM3NTk0MTAyMzIzMDU1Mjd9LCB7IndhbGxUaW1lIjogMTczMzA2ODY0Ni42Nzc1NDEsICJzdGVwIjogMTAwMCwgInZhbHVlIjogMC4wNjQ1OTg2NDk3NDAyMTkxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjYyLjc2MTgxNjMsICJzdGVwIjogMTAxMCwgInZhbHVlIjogMC4wNTM1NTQ0NzkwMzI3NTQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2NzIuMDU5MTEwNiwgInN0ZXAiOiAxMDIwLCAidmFsdWUiOiAwLjA1MDY1MzIxMTc3MjQ0MTg2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjgwLjU2NzgwMjQsICJzdGVwIjogMTAzMCwgInZhbHVlIjogMC4wNjU4NTE1NjkxNzU3MjAyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjkwLjE5MDcwMjcsICJzdGVwIjogMTA0MCwgInZhbHVlIjogMC4wMzg5OTgzNDY3NzU3NzAxOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Njk4Ljg1MzAzOSwgInN0ZXAiOiAxMDUwLCAidmFsdWUiOiAwLjA2MjgxMzExODEwMDE2NjMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MDcuNzQ4MTYxOCwgInN0ZXAiOiAxMDYwLCAidmFsdWUiOiAwLjA0MjgwODI0MjE0MjIwMDQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MTcuMzQ5MzM4NSwgInN0ZXAiOiAxMDcwLCAidmFsdWUiOiAwLjA0MzUzMjEwNzAyNTM4NDl9LCB7IndhbGxUaW1lIjogMTczMzA2ODcyNi4zNjYwNDIsICJzdGVwIjogMTA4MCwgInZhbHVlIjogMC4wMzI4NjY2MjMyNTI2MzAyMzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODczNS4yNTY0MTI3LCAic3RlcCI6IDEwOTAsICJ2YWx1ZSI6IDAuMDQzODI0MzM3NDIyODQ3NzV9LCB7IndhbGxUaW1lIjogMTczMzA2ODc0OS41NTI3OTY2LCAic3RlcCI6IDExMDAsICJ2YWx1ZSI6IDAuMDMyOTQzNzg4OTE1ODcyNTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3NTguMzgwMTEsICJzdGVwIjogMTExMCwgInZhbHVlIjogMC4wNTQ2MDg4NDc5NDU5Mjg1NzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODc2Ny4wMDg2NTg0LCAic3RlcCI6IDExMjAsICJ2YWx1ZSI6IDAuMDU5NzE0ODMxNDExODM4NTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODc3Ni42MjM2MzUzLCAic3RlcCI6IDExMzAsICJ2YWx1ZSI6IDAuMDUwMzk3MTg3NDcxMzg5Nzd9LCB7IndhbGxUaW1lIjogMTczMzA2ODc4NS40MDYyMzMsICJzdGVwIjogMTE0MCwgInZhbHVlIjogMC4wNjM4NDc2NjEwMTgzNzE1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Nzk0LjI4MzkxNDYsICJzdGVwIjogMTE1MCwgInZhbHVlIjogMC4wNjcyMDYxODkwMzYzNjkzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODAyLjcwMjExMzksICJzdGVwIjogMTE2MCwgInZhbHVlIjogMC4wNjg3Mjc5NDc3NzE1NDkyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODExLjU1Njg1ODMsICJzdGVwIjogMTE3MCwgInZhbHVlIjogMC4wNTQ2ODIyNjk2OTI0MjA5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODI0Ljk3MDUyNSwgInN0ZXAiOiAxMTgwLCAidmFsdWUiOiAwLjA0OTIyNTkyNjM5OTIzMDk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MzQuMzgyMDAzNSwgInN0ZXAiOiAxMTkwLCAidmFsdWUiOiAwLjA0NDYzOTkxMTUwMjU5OTcxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODQzLjUyMDkxMTcsICJzdGVwIjogMTIwMCwgInZhbHVlIjogMC4wNTE0MDgxMzQ0MDA4NDQ1NzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODg1Mi4yMzMzMzI0LCAic3RlcCI6IDEyMTAsICJ2YWx1ZSI6IDAuMDQwNTI2MzA4MTE5Mjk3MDN9LCB7IndhbGxUaW1lIjogMTczMzA2ODg2MS4xMjE2NjM4LCAic3RlcCI6IDEyMjAsICJ2YWx1ZSI6IDAuMDQwNjYxMTkzNDMwNDIzNzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODg3MC4wNjA1ODcyLCAic3RlcCI6IDEyMzAsICJ2YWx1ZSI6IDAuMDY0NDI4NDI2MzI1MzIxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODc4LjcyNTA4NzQsICJzdGVwIjogMTI0MCwgInZhbHVlIjogMC4wNjg2NTA0MzkzODE1OTk0M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODg3Ljc0Mjg5MzIsICJzdGVwIjogMTI1MCwgInZhbHVlIjogMC4wMzgzMDA3MzAyODgwMjg3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTAzLjE3MTU2ODksICJzdGVwIjogMTI2MCwgInZhbHVlIjogMC4wMzY2MDcwNjA1ODE0NDU2OTR9LCB7IndhbGxUaW1lIjogMTczMzA2ODkxMi40MjI0MzY3LCAic3RlcCI6IDEyNzAsICJ2YWx1ZSI6IDAuMDUxODU3NDkwMDkyNTE1OTQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MjEuNDgwMjMyLCAic3RlcCI6IDEyODAsICJ2YWx1ZSI6IDAuMDY1NDAzOTQ1NzQ0MDM3NjN9LCB7IndhbGxUaW1lIjogMTczMzA2ODkyOS43NTE0MTYyLCAic3RlcCI6IDEyOTAsICJ2YWx1ZSI6IDAuMDQ2MjMzODQwMjg2NzMxNzJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODkzOS41MDYxNzIyLCAic3RlcCI6IDEzMDAsICJ2YWx1ZSI6IDAuMDQxNTczMTE4NDE4NDU1MTI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NDguOTMyODUzNywgInN0ZXAiOiAxMzEwLCAidmFsdWUiOiAwLjAzMjE0MzI5ODUzNjUzOTA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NTcuMjM5MTM5MywgInN0ZXAiOiAxMzIwLCAidmFsdWUiOiAwLjA2MDk5NDM3OTIyMjM5MzAzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTY2LjA4MTcxNDQsICJzdGVwIjogMTMzMCwgInZhbHVlIjogMC4wNTc5NjU0NjExNjQ3MTI5MDZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODk3NS41NzAwMDYxLCAic3RlcCI6IDEzNDAsICJ2YWx1ZSI6IDAuMDU3OTYzNjU4MTI0MjA4NDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODk4OS44MDUxMzcyLCAic3RlcCI6IDEzNTAsICJ2YWx1ZSI6IDAuMDMwMzU2NDUxODY5MDEwOTI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5OTguMjg4NzA3MywgInN0ZXAiOiAxMzYwLCAidmFsdWUiOiAwLjAyODg1MjY1MDg5NTcxNDc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwMDcuMTU2MjM3LCAic3RlcCI6IDEzNzAsICJ2YWx1ZSI6IDAuMDM5MDMxNDc1NzgyMzk0NDF9LCB7IndhbGxUaW1lIjogMTczMzA2OTAxNS45MjgxODQzLCAic3RlcCI6IDEzODAsICJ2YWx1ZSI6IDAuMDM2MzQyMzY3NTI5ODY5MDh9LCB7IndhbGxUaW1lIjogMTczMzA2OTAyNS4zMDgwMTQ5LCAic3RlcCI6IDEzOTAsICJ2YWx1ZSI6IDAuMDQ3MTc2MjE5NTIyOTUzMDN9LCB7IndhbGxUaW1lIjogMTczMzA2OTAzNC40ODYyMzU2LCAic3RlcCI6IDE0MDAsICJ2YWx1ZSI6IDAuMDU1OTU1NzIyOTI4MDQ3MTh9LCB7IndhbGxUaW1lIjogMTczMzA2OTA0Mi43OTc3NTkzLCAic3RlcCI6IDE0MTAsICJ2YWx1ZSI6IDAuMDU5OTI4Mjk0MjcxMjMwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDUyLjE0MjMzNTQsICJzdGVwIjogMTQyMCwgInZhbHVlIjogMC4wNDI3Mjg5MTU4MTA1ODUwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDY1LjAwNjQyNjYsICJzdGVwIjogMTQzMCwgInZhbHVlIjogMC4wNDQwMzYxNDI1MjgwNTcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNzQuNTI4NjU0NiwgInN0ZXAiOiAxNDQwLCAidmFsdWUiOiAwLjA0NzQ3ODA5NDY5Njk5ODU5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDgzLjc4NzI3NDgsICJzdGVwIjogMTQ1MCwgInZhbHVlIjogMC4wNDk0Njc4NDY3NTEyMTMwNzR9LCB7IndhbGxUaW1lIjogMTczMzA2OTA5Mi4yNjM5NDQ0LCAic3RlcCI6IDE0NjAsICJ2YWx1ZSI6IDAuMDU2MTYwNTY5MTkwOTc5MDA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMDEuMDM0NjY0LCAic3RlcCI6IDE0NzAsICJ2YWx1ZSI6IDAuMDUzNjk3NTIyNzI5NjM1MjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTEwOS45MTA1MDEsICJzdGVwIjogMTQ4MCwgInZhbHVlIjogMC4wNjM0MTQ0ODQyNjI0NjY0M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTE5LjEyMjQ3MDEsICJzdGVwIjogMTQ5MCwgInZhbHVlIjogMC4wNDM3NTE2MDQ4NTUwNjA1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTI4LjQxOTczNjEsICJzdGVwIjogMTUwMCwgInZhbHVlIjogMC4wNTE1OTc1MzkzMzU0ODkyN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTM3LjYxMDI0NTUsICJzdGVwIjogMTUxMCwgInZhbHVlIjogMC4wNTkzNDYzNzQxMjQyODg1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTUwLjU0NzE4NjEsICJzdGVwIjogMTUyMCwgInZhbHVlIjogMC4wMzQyNDMzNTI3MTEyMDA3MTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTE1OS43NjA2MTQ2LCAic3RlcCI6IDE1MzAsICJ2YWx1ZSI6IDAuMDQ0NzY4NjMxNDU4MjgyNDd9LCB7IndhbGxUaW1lIjogMTczMzA2OTE2OC4xNzQzNjksICJzdGVwIjogMTU0MCwgInZhbHVlIjogMC4wNTM4Mjg1NTk4MTU4ODM2MzZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTE3Ni44NDQ1NjE2LCAic3RlcCI6IDE1NTAsICJ2YWx1ZSI6IDAuMDUzMzA2NjA5MzkyMTY2MTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTE4NS44OTU3Mzg0LCAic3RlcCI6IDE1NjAsICJ2YWx1ZSI6IDAuMDM0ODYyMjQyNjM5MDY0Nzl9LCB7IndhbGxUaW1lIjogMTczMzA2OTE5NC45Mjc5MTYsICJzdGVwIjogMTU3MCwgInZhbHVlIjogMC4wNjEwNTE5Mjc1MDY5MjM2NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTIwMy45MTg0NjcsICJzdGVwIjogMTU4MCwgInZhbHVlIjogMC4wMzIzNDA1ODI0NjAxNjUwMjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTIxMi43MjAxMzgzLCAic3RlcCI6IDE1OTAsICJ2YWx1ZSI6IDAuMDM4MTAxMTE4MDU3OTY2MjN9LCB7IndhbGxUaW1lIjogMTczMzA2OTIyNS41Mzc3Mjg1LCAic3RlcCI6IDE2MDAsICJ2YWx1ZSI6IDAuMDM4MTEyNDQyOTQwNDczNTU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMzUuNDY3NDEwMywgInN0ZXAiOiAxNjEwLCAidmFsdWUiOiAwLjA0Njg2MDMxMTE4MDM1MzE2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjQ0LjYzNDUyMzksICJzdGVwIjogMTYyMCwgInZhbHVlIjogMC4wNDA5NzY1MTMxNzcxNTY0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjU0LjI5NzI1ODQsICJzdGVwIjogMTYzMCwgInZhbHVlIjogMC4wNTAyMzczODM2OTM0NTY2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjYzLjAwOTAzOSwgInN0ZXAiOiAxNjQwLCAidmFsdWUiOiAwLjA0NzE0MDM5NzEzMTQ0MzAyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjcxLjg3MDE4NCwgInN0ZXAiOiAxNjUwLCAidmFsdWUiOiAwLjA1NDMzMDY5MTY5NTIxMzMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyODAuNTEzNDQyMywgInN0ZXAiOiAxNjYwLCAidmFsdWUiOiAwLjA5NTAyMTE1ODQ1NjgwMjM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyODkuNjgzMzQ5NiwgInN0ZXAiOiAxNjcwLCAidmFsdWUiOiAwLjA0NzA1MzY2NDkyMjcxNDIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMDMuNjE0ODk4MiwgInN0ZXAiOiAxNjgwLCAidmFsdWUiOiAwLjA1OTc0OTkzODU0NzYxMTI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMTIuNDgzMjA5NCwgInN0ZXAiOiAxNjkwLCAidmFsdWUiOiAwLjA0MDg0NTIwNzg3MDAwNjU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMjEuODQyNTE1NSwgInN0ZXAiOiAxNzAwLCAidmFsdWUiOiAwLjA0MzU0NzUzMzQ1MjUxMDgzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzMwLjM1MTQ1NjksICJzdGVwIjogMTcxMCwgInZhbHVlIjogMC4wNDQ3MzEzODk3MzExNjg3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzM5LjI0OTE3ODYsICJzdGVwIjogMTcyMCwgInZhbHVlIjogMC4wMzYzMTU4MjExMTEyMDIyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzQ2Ljg2MzAyNjYsICJzdGVwIjogMTczMCwgInZhbHVlIjogMC4wNzU2MTUyMTk3NzE4NjIwM30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzU1LjY1ODExODIsICJzdGVwIjogMTc0MCwgInZhbHVlIjogMC4wMzQ1MTEzNTM4MjA1NjIzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzY0LjUxNTU1MTgsICJzdGVwIjogMTc1MCwgInZhbHVlIjogMC4wNjU0MTUyNzgwNzcxMjU1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzczLjc0MjE4NzMsICJzdGVwIjogMTc2MCwgInZhbHVlIjogMC4wODc2ODM0OTE0MDg4MjQ5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Mzg3LjU0NDY2ODQsICJzdGVwIjogMTc3MCwgInZhbHVlIjogMC4wNDgyODQ1MDgyODc5MDY2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Mzk2LjQ3MzA5NTIsICJzdGVwIjogMTc4MCwgInZhbHVlIjogMC4wNjY0OTUzNTg5NDM5MzkyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDA1Ljk5OTg5NDYsICJzdGVwIjogMTc5MCwgInZhbHVlIjogMC4wNDkyMjkyNzE3MDk5MTg5NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTQxNS4wNTczODYsICJzdGVwIjogMTgwMCwgInZhbHVlIjogMC4wNDI2Mjk1MzI1MTYwMDI2NTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTQyMy45MTA5OTk1LCAic3RlcCI6IDE4MTAsICJ2YWx1ZSI6IDAuMDQyNDczNDgzODMwNjkwMzg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MzIuNTM0Njk4MiwgInN0ZXAiOiAxODIwLCAidmFsdWUiOiAwLjA1MDQ0MTI4MDAwNzM2MjM2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDQxLjIyMzM1NzIsICJzdGVwIjogMTgzMCwgInZhbHVlIjogMC4wNDA2NzcwODU1MTg4MzY5NzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ1MC4wOTQwMTk3LCAic3RlcCI6IDE4NDAsICJ2YWx1ZSI6IDAuMDM0MzE2MDQ0MzAwNzk0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDYzLjExMDczMDYsICJzdGVwIjogMTg1MCwgInZhbHVlIjogMC4wMzYzNDQ5MzQyNTQ4ODQ3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDcxLjU3NjIwMDcsICJzdGVwIjogMTg2MCwgInZhbHVlIjogMC4wMzEyNjc2MjA2MjMxMTE3MjV9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ4MC41MDEzODQzLCAic3RlcCI6IDE4NzAsICJ2YWx1ZSI6IDAuMDcyMzQ1NjE0NDMzMjg4NTd9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ4OS4zODgxMDI4LCAic3RlcCI6IDE4ODAsICJ2YWx1ZSI6IDAuMDQ2MTg3ODYyNzUzODY4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDk3Ljk3OTg4ODIsICJzdGVwIjogMTg5MCwgInZhbHVlIjogMC4wNTU5MzcxMjYyNzg4NzcyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTA2LjgxODAwOSwgInN0ZXAiOiAxOTAwLCAidmFsdWUiOiAwLjAzMjQwNzE0MjIyMTkyNzY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MTUuODI3NzcsICJzdGVwIjogMTkxMCwgInZhbHVlIjogMC4wNTAwOTE2NzY0MTQwMTI5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTI0LjYzOTYzNDEsICJzdGVwIjogMTkyMCwgInZhbHVlIjogMC4wMzU0Njg5MDI0Mzg4NzkwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTMzLjU0NTQzMTQsICJzdGVwIjogMTkzMCwgInZhbHVlIjogMC4wNTc1MDg1MTcwNTY3MDM1N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTUwLjQ4MTA3MzYsICJzdGVwIjogMTk0MCwgInZhbHVlIjogMC4wMjQwNTcxOTgzMTU4NTg4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTU4LjgzMTEwODgsICJzdGVwIjogMTk1MCwgInZhbHVlIjogMC4wNTkwMDE0OTc5MjQzMjc4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTY3Ljc2MDk1OTYsICJzdGVwIjogMTk2MCwgInZhbHVlIjogMC4wMzk1MjQxOTc1Nzg0MzAxNzZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTU3Ni4zNDgyNzgzLCAic3RlcCI6IDE5NzAsICJ2YWx1ZSI6IDAuMDUwNzg1NjM4MzkxOTcxNTl9LCB7IndhbGxUaW1lIjogMTczMzA2OTU4NS41MzIxOTYsICJzdGVwIjogMTk4MCwgInZhbHVlIjogMC4wNDg4MjI0MjE1ODA1NTMwNTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTU5NC4zNTMzNjAyLCAic3RlcCI6IDE5OTAsICJ2YWx1ZSI6IDAuMDUxMzU1ODc2MDI4NTM3NzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTYwMi40MDQ3NjkyLCAic3RlcCI6IDIwMDAsICJ2YWx1ZSI6IDAuMDYwMTEzODE3NDUzMzg0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjEwLjI1Mjk2OTUsICJzdGVwIjogMjAxMCwgInZhbHVlIjogMC4wNTIzNTY0ODE1NTIxMjQwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjI2LjY4OTg4NTYsICJzdGVwIjogMjAyMCwgInZhbHVlIjogMC4wNDgxMDUzNjI4MDI3NDM5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjM1LjAzMzk4MDgsICJzdGVwIjogMjAzMCwgInZhbHVlIjogMC4wMzY3NTg4NjYxNjExMDgwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjQzLjgyNTcxMzYsICJzdGVwIjogMjA0MCwgInZhbHVlIjogMC4wNTMwMjY1NzE4Njk4NTAxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjUyLjE5NzQ0MjUsICJzdGVwIjogMjA1MCwgInZhbHVlIjogMC4wNTYxODM4MzczNTQxODMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NjAuNDU2NTg5MiwgInN0ZXAiOiAyMDYwLCAidmFsdWUiOiAwLjA3Njc0MjMzNjE1Mzk4NDA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NjkuNTk1MDY0NCwgInN0ZXAiOiAyMDcwLCAidmFsdWUiOiAwLjAzNDYyODAyMjQ2MjEyOTU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NzguNzgxNTAwMywgInN0ZXAiOiAyMDgwLCAidmFsdWUiOiAwLjA1MTgyMjQzMTM4NTUxNzEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2ODYuOTQ3OTIyMiwgInN0ZXAiOiAyMDkwLCAidmFsdWUiOiAwLjA0OTA3OTUxMTMxNDYzMDUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MDAuNjA1MTgwNywgInN0ZXAiOiAyMTAwLCAidmFsdWUiOiAwLjAzNjAxODU4MDE5ODI4Nzk2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzA4LjcyOTQyMTYsICJzdGVwIjogMjExMCwgInZhbHVlIjogMC4wMzg4NjgyNzgyNjQ5OTkzOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzE3LjQ1MTMyNzYsICJzdGVwIjogMjEyMCwgInZhbHVlIjogMC4wNDQyNDQwODA3ODE5MzY2NDZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTcyNi4xNDQzMjE0LCAic3RlcCI6IDIxMzAsICJ2YWx1ZSI6IDAuMDMxNDU4OTkyNTExMDM0MDF9LCB7IndhbGxUaW1lIjogMTczMzA2OTczNS4wNDExNDQ0LCAic3RlcCI6IDIxNDAsICJ2YWx1ZSI6IDAuMDMyNTcwMTIzNjcyNDg1MzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTc0My4zMDkxODQzLCAic3RlcCI6IDIxNTAsICJ2YWx1ZSI6IDAuMDM5ODcyMzU1NzU5MTQzODN9LCB7IndhbGxUaW1lIjogMTczMzA2OTc1Mi41MDM5MTk4LCAic3RlcCI6IDIxNjAsICJ2YWx1ZSI6IDAuMDQzMDUzMjAyMzMxMDY2MTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTc2MS40NTQwMzMsICJzdGVwIjogMjE3MCwgInZhbHVlIjogMC4wMzY2MjM5NTg0OTgyMzk1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzcwLjQzNjE5OTcsICJzdGVwIjogMjE4MCwgInZhbHVlIjogMC4wNTIxMzE3OTA2Njc3NzIyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Nzg0LjM2Njk2MTcsICJzdGVwIjogMjE5MCwgInZhbHVlIjogMC4wNDMxMjgwOTE4NDE5MzYxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzkzLjEyNTQ4MiwgInN0ZXAiOiAyMjAwLCAidmFsdWUiOiAwLjAzNDA4NzMxNTIwMTc1OTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MDEuNjM5MjE3OSwgInN0ZXAiOiAyMjEwLCAidmFsdWUiOiAwLjA1NDA3MDAyMTk1NzE1OTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MTAuNjEwODUxLCAic3RlcCI6IDIyMjAsICJ2YWx1ZSI6IDAuMDM5OTQwMjcxNTI2NTc1MDl9LCB7IndhbGxUaW1lIjogMTczMzA2OTgxOS4zNDYxMzMyLCAic3RlcCI6IDIyMzAsICJ2YWx1ZSI6IDAuMDU4MTUwNDAzMjAxNTgwMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTgyNy4zMjkwMjUsICJzdGVwIjogMjI0MCwgInZhbHVlIjogMC4wNDczOTIwMDY5NjM0OTE0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODM1Ljg3MTI2ODUsICJzdGVwIjogMjI1MCwgInZhbHVlIjogMC4wMzQ1OTU1MjY3NTQ4NTYxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODQ0LjIzODkxMTYsICJzdGVwIjogMjI2MCwgInZhbHVlIjogMC4wNDcxNDY3MDAzMjI2MjgwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODU2Ljc1MjQ1MzgsICJzdGVwIjogMjI3MCwgInZhbHVlIjogMC4wNjU4NzU1MzAyNDI5MTk5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODY1LjI2MDU4NzUsICJzdGVwIjogMjI4MCwgInZhbHVlIjogMC4wNTg0ODI2MDU5NjM5NDUzOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODc0LjAwODgyNjcsICJzdGVwIjogMjI5MCwgInZhbHVlIjogMC4wNDAzMTQ0NzMyMTE3NjUyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODgxLjc4NDU1MTksICJzdGVwIjogMjMwMCwgInZhbHVlIjogMC4wNDY0MTUzODExMzM1NTYzNjZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTg5MC40MTY3MDE2LCAic3RlcCI6IDIzMTAsICJ2YWx1ZSI6IDAuMDMxNDMzMDY0NDkwNTU2NzJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTg5OC44Nzk1NDI0LCAic3RlcCI6IDIzMjAsICJ2YWx1ZSI6IDAuMDUwMjYwOTgzNDA3NDk3NDA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MDguMzIwNTE0NywgInN0ZXAiOiAyMzMwLCAidmFsdWUiOiAwLjAzNzQ2NTA5NTUyMDAxOTUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MTcuNDE4MDY0OCwgInN0ZXAiOiAyMzQwLCAidmFsdWUiOiAwLjAzNzIwNzkwNTIwMzEwNDAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MjUuODUzNjM0LCAic3RlcCI6IDIzNTAsICJ2YWx1ZSI6IDAuMDM4NDQ5MTY0NDc5OTcwOTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTkzOC43MDc1NTUsICJzdGVwIjogMjM2MCwgInZhbHVlIjogMC4wNzQ2MDYwNzU4ODI5MTE2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTQ3LjQyOTA0NTcsICJzdGVwIjogMjM3MCwgInZhbHVlIjogMC4wMjk4MzYxOTQ1ODk3MzQwNzd9LCB7IndhbGxUaW1lIjogMTczMzA2OTk1Ni4yMTE0NjI1LCAic3RlcCI6IDIzODAsICJ2YWx1ZSI6IDAuMDQ0NTY1ODg2MjU5MDc4OTh9LCB7IndhbGxUaW1lIjogMTczMzA2OTk2NC4yNzc2NTIsICJzdGVwIjogMjM5MCwgInZhbHVlIjogMC4wNzQ2NDIyMzM1NTA1NDg1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTczLjMyODkwNDIsICJzdGVwIjogMjQwMCwgInZhbHVlIjogMC4wMzI0NDA1OTUzMjg4MDc4M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTgxLjQzNDkzNzcsICJzdGVwIjogMjQxMCwgInZhbHVlIjogMC4wMjQyMTI0NTM1MTQzMzc1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTkwLjE0MjU4MjQsICJzdGVwIjogMjQyMCwgInZhbHVlIjogMC4wNDc2MTYxNzYzMDcyMDEzODV9LCB7IndhbGxUaW1lIjogMTczMzA2OTk5OC44MDE5MDE4LCAic3RlcCI6IDI0MzAsICJ2YWx1ZSI6IDAuMDQxNjUzNzQxMTUxMDk0NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDAxMi40NTg1NzcyLCAic3RlcCI6IDI0NDAsICJ2YWx1ZSI6IDAuMDQwNzMyMzY4ODI2ODY2MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDAyMS42MDE4NDQ1LCAic3RlcCI6IDI0NTAsICJ2YWx1ZSI6IDAuMDM3MzYxOTEyNDI5MzMyNzN9LCB7IndhbGxUaW1lIjogMTczMzA3MDAzMC4xOTM2OTM0LCAic3RlcCI6IDI0NjAsICJ2YWx1ZSI6IDAuMDM2OTg0NzExODg1NDUyMjd9LCB7IndhbGxUaW1lIjogMTczMzA3MDAzOS4yMjE5ODUzLCAic3RlcCI6IDI0NzAsICJ2YWx1ZSI6IDAuMDQ4NzIxMDIyOTAzOTE5MjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDA0OC4yNzE2MTEsICJzdGVwIjogMjQ4MCwgInZhbHVlIjogMC4wNDM0NDAzNTY4NTA2MjQwODR9LCB7IndhbGxUaW1lIjogMTczMzA3MDA1Ni4xNTg0NTQyLCAic3RlcCI6IDI0OTAsICJ2YWx1ZSI6IDAuMDM1NDg2NTAwNzEwMjQ4OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDA2NC40NTMzNDU4LCAic3RlcCI6IDI1MDAsICJ2YWx1ZSI6IDAuMDI3MTc4NzkwNDIwMjkzODA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNzIuNTU1MzAzMywgInN0ZXAiOiAyNTEwLCAidmFsdWUiOiAwLjA1NjM1OTYwMDI3NTc1NDkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwODcuNjU5NzIzNSwgInN0ZXAiOiAyNTIwLCAidmFsdWUiOiAwLjAzMTE0NDgzMzE5MjIyOTI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwOTUuNDQ0NDIwMywgInN0ZXAiOiAyNTMwLCAidmFsdWUiOiAwLjAyNjE2NTY3MTY0NjU5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTAzLjc3MTcwMDYsICJzdGVwIjogMjU0MCwgInZhbHVlIjogMC4wNTMyMTA2NDk2MzkzNjgwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTEzLjA1MjQ3NzEsICJzdGVwIjogMjU1MCwgInZhbHVlIjogMC4wNDI3MTIzNDU3MTkzMzc0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTIxLjA0MDQ5OTQsICJzdGVwIjogMjU2MCwgInZhbHVlIjogMC4wNTQ1MjcyMTkzODQ5MDg2NzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDEyOS41ODgyMzQsICJzdGVwIjogMjU3MCwgInZhbHVlIjogMC4wMzg4OTg3MzI1MTMxODkzMTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDEzOC4zNjM1Njc4LCAic3RlcCI6IDI1ODAsICJ2YWx1ZSI6IDAuMDQwODAyMTEzNzExODMzOTU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNDcuMDkwMDA0NCwgInN0ZXAiOiAyNTkwLCAidmFsdWUiOiAwLjA0NDA2MDM5NDE2NzkwMDA4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTU1LjQ4OTYzOTMsICJzdGVwIjogMjYwMCwgInZhbHVlIjogMC4wMzY0Mzk2NTcyMTEzMDM3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTcyLjU4MDAyODUsICJzdGVwIjogMjYxMCwgInZhbHVlIjogMC4wNDY0Nzg2NjI2Mzk4NTYzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTgxLjIxMzg3NywgInN0ZXAiOiAyNjIwLCAidmFsdWUiOiAwLjAzNjE4Nzk2MTY5NzU3ODQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxODkuNjk1MjE3NCwgInN0ZXAiOiAyNjMwLCAidmFsdWUiOiAwLjA0NjQzMTk2NjEyNTk2NTEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxOTguNDAxODU5OCwgInN0ZXAiOiAyNjQwLCAidmFsdWUiOiAwLjA1MDU5OTM1NTI1MDU5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjA2LjcxMDE4ODYsICJzdGVwIjogMjY1MCwgInZhbHVlIjogMC4wNDAwNDUwMTE3ODg2MDY2NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDIxNS42MDI2MzQ3LCAic3RlcCI6IDI2NjAsICJ2YWx1ZSI6IDAuMDM1ODUyNzMzOTk5NDkwNzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDIyNC4zMTkwNDUzLCAic3RlcCI6IDI2NzAsICJ2YWx1ZSI6IDAuMDQyNTAyMTg3MTkyNDQwMDN9LCB7IndhbGxUaW1lIjogMTczMzA3MDIzMy41NDIxNDUzLCAic3RlcCI6IDI2ODAsICJ2YWx1ZSI6IDAuMDQ4NjA3MDk5ODAxMzAxOTU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNDYuNzYwOTYxNSwgInN0ZXAiOiAyNjkwLCAidmFsdWUiOiAwLjAzMjMzMDY1NDU2MTUxOTYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNTYuMDMxODc4LCAic3RlcCI6IDI3MDAsICJ2YWx1ZSI6IDAuMDU2OTE4MDg0NjIxNDI5NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDI2NC45NTM0MzE4LCAic3RlcCI6IDI3MTAsICJ2YWx1ZSI6IDAuMDMxODQ1Njk2MjcwNDY1ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MDI3My44Mjk3MTI5LCAic3RlcCI6IDI3MjAsICJ2YWx1ZSI6IDAuMDQ1NDQ5Njc3ODU0Nzc2Mzh9LCB7IndhbGxUaW1lIjogMTczMzA3MDI4Mi45NjE4LCAic3RlcCI6IDI3MzAsICJ2YWx1ZSI6IDAuMDQwOTE1NDgxNzQ2MTk2NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDI5Mi4yODA1ODYsICJzdGVwIjogMjc0MCwgInZhbHVlIjogMC4wMzU0MDAwNTkwNzQxNjM0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzAwLjMzOTQ2MzIsICJzdGVwIjogMjc1MCwgInZhbHVlIjogMC4wNTQwNjMzMjc2MTA0OTI3MDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDMwOS40MTQ4ODQzLCAic3RlcCI6IDI3NjAsICJ2YWx1ZSI6IDAuMDQ4MjUzMDkyOTE0ODE5NzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDMxNy41MzQyNTk2LCAic3RlcCI6IDI3NzAsICJ2YWx1ZSI6IDAuMDQzOTc2OTM2NDg5MzQzNjR9LCB7IndhbGxUaW1lIjogMTczMzA3MDMzMC40Mzg5Nzc1LCAic3RlcCI6IDI3ODAsICJ2YWx1ZSI6IDAuMDQyMTEzMzgyMzY5Mjc5ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDMzOS44MjY1MzAyLCAic3RlcCI6IDI3OTAsICJ2YWx1ZSI6IDAuMDQwODY3MzU4NDQ2MTIxMjE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNDcuOTk4MTA2NywgInN0ZXAiOiAyODAwLCAidmFsdWUiOiAwLjAzNDM1OTkzOTM5NjM4MTM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNTYuODk3OTEzNSwgInN0ZXAiOiAyODEwLCAidmFsdWUiOiAwLjA0MDEwMTYwMjY3MzUzMDU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNjUuNTc5Nzg1OCwgInN0ZXAiOiAyODIwLCAidmFsdWUiOiAwLjAzNDI1MTYzNzc1NjgyNDQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNzQuMzk2NDM1NSwgInN0ZXAiOiAyODMwLCAidmFsdWUiOiAwLjAzMTg4MzgwOTcxNTUwOTQxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzgyLjQyOTc3NzksICJzdGVwIjogMjg0MCwgInZhbHVlIjogMC4wNTI0MDY3NDMxNjg4MzA4N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzkwLjk0NDAwNCwgInN0ZXAiOiAyODUwLCAidmFsdWUiOiAwLjAyOTcyODgyMjQxMDEwNjY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0MDYuNjgxNDgzMywgInN0ZXAiOiAyODYwLCAidmFsdWUiOiAwLjA2MjMwNjUyNzA0ODM0OTM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0MTUuMDkzMzI3OCwgInN0ZXAiOiAyODcwLCAidmFsdWUiOiAwLjA1Nzc1MjY2MTQwNjk5Mzg2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDIyLjkyMjkxOTUsICJzdGVwIjogMjg4MCwgInZhbHVlIjogMC4wMjk3NTA4MzcwMTMxMjU0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDMxLjU0MDI3NjUsICJzdGVwIjogMjg5MCwgInZhbHVlIjogMC4wMzM1NjE5ODIyMTQ0NTA4MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzOS45ODM4NzE1LCAic3RlcCI6IDI5MDAsICJ2YWx1ZSI6IDAuMDM2MTY3Mzg2OTE5MjYwMDI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NDguMDg4MzEyNiwgInN0ZXAiOiAyOTEwLCAidmFsdWUiOiAwLjA0NzY2OTc2NDYwODE0NDc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NTcuNDI2NDY4NCwgInN0ZXAiOiAyOTIwLCAidmFsdWUiOiAwLjAzMjk3NDgyMDU4NDA1ODc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NjYuNzI1NzUwNywgInN0ZXAiOiAyOTMwLCAidmFsdWUiOiAwLjA1MDkwMDM5OTY4NDkwNjAwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDc5LjMzNTQ0MDIsICJzdGVwIjogMjk0MCwgInZhbHVlIjogMC4wNDIyMTk3MjgyMzE0MzAwNTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ4OC43ODUxNTEyLCAic3RlcCI6IDI5NTAsICJ2YWx1ZSI6IDAuMDI5NzIzMDg3MzI1NjkyMTc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0OTcuMjI3NjY5NSwgInN0ZXAiOiAyOTYwLCAidmFsdWUiOiAwLjAzMjM1NDUzMzY3MjMzMjc2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTA1LjYzNjUxMDEsICJzdGVwIjogMjk3MCwgInZhbHVlIjogMC4wMzIwOTA0MTgwNDA3NTI0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTEzLjM1NjYyODcsICJzdGVwIjogMjk4MCwgInZhbHVlIjogMC4wNTc4MTkyMDk5OTI4ODU1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTIyLjMyMDE2NTksICJzdGVwIjogMjk5MCwgInZhbHVlIjogMC4wMzc2NzczMjkwMzM2MTMyMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDUzMC4yMTUzMTAzLCAic3RlcCI6IDMwMDAsICJ2YWx1ZSI6IDAuMDUyODE5Nzk1OTA2NTQzNzN9LCB7IndhbGxUaW1lIjogMTczMzA3MDUzOC4zMDI3MDM0LCAic3RlcCI6IDMwMTAsICJ2YWx1ZSI6IDAuMDMwNDYwNjg1NDkxNTYxODl9LCB7IndhbGxUaW1lIjogMTczMzA3MDU0Ny40MDMyMTM3LCAic3RlcCI6IDMwMjAsICJ2YWx1ZSI6IDAuMDQ0MzM0NDE1MzQ2Mzg0MDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDU2NC4wNTM5MjUsICJzdGVwIjogMzAzMCwgInZhbHVlIjogMC4wMzgyMTE3NzQwODA5OTE3NDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDU3Mi4zNzI1MDc2LCAic3RlcCI6IDMwNDAsICJ2YWx1ZSI6IDAuMDI5ODYwMDgzMDEzNzcyOTY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1ODAuNjc0MDQwNiwgInN0ZXAiOiAzMDUwLCAidmFsdWUiOiAwLjA1MjA3MDk4NjQ3OTUyMDh9LCB7IndhbGxUaW1lIjogMTczMzA3MDU4OC42NTU5NTIsICJzdGVwIjogMzA2MCwgInZhbHVlIjogMC4wMjg5NjgxNTE2NTg3NzM0MjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDU5Ny40MjM1NzU2LCAic3RlcCI6IDMwNzAsICJ2YWx1ZSI6IDAuMDMzNzI0MDM5NzkzMDE0NTI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MDYuMTQwMTMzNCwgInN0ZXAiOiAzMDgwLCAidmFsdWUiOiAwLjA2Mzk2NTAxNTExMzM1MzczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MTQuNDQyNzc3NCwgInN0ZXAiOiAzMDkwLCAidmFsdWUiOiAwLjA2MDA5NTU3MDk4MTUwMjUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MjQuMDAzMTMyOCwgInN0ZXAiOiAzMTAwLCAidmFsdWUiOiAwLjAyODExODYxNDEwNzM3MDM3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjM3LjI1NDc1NzYsICJzdGVwIjogMzExMCwgInZhbHVlIjogMC4wNDc4NzAzODI2NjY1ODc4M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjQ1LjY4NDc3MDYsICJzdGVwIjogMzEyMCwgInZhbHVlIjogMC4wMzIzNzI0MDM4ODk4OTQ0ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MDY1NC4yNzIzMzQ4LCAic3RlcCI6IDMxMzAsICJ2YWx1ZSI6IDAuMDQ1MzM1MTQ3NTI5ODQwNDd9LCB7IndhbGxUaW1lIjogMTczMzA3MDY2My4zMjMxOTksICJzdGVwIjogMzE0MCwgInZhbHVlIjogMC4wMzcxMzQ4NTU5ODU2NDE0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjcxLjExOTc4MzIsICJzdGVwIjogMzE1MCwgInZhbHVlIjogMC4wNTcwMTQzMTYzMjA0MTkzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjc5Ljc2NzM0MiwgInN0ZXAiOiAzMTYwLCAidmFsdWUiOiAwLjAyNzAxOTQyOTk1MTkwNjIwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjg3Ljg0NzUxMDMsICJzdGVwIjogMzE3MCwgInZhbHVlIjogMC4wNTYwNzYxOTUwOTEwMDkxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjk1Ljg1NzUyOTYsICJzdGVwIjogMzE4MCwgInZhbHVlIjogMC4wMzA2MjkzNDQyODQ1MzQ0NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDcwNC42MjQyNjQyLCAic3RlcCI6IDMxOTAsICJ2YWx1ZSI6IDAuMDM0NTE4MTc0ODI3MDk4ODQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MTcuMTEwNjIsICJzdGVwIjogMzIwMCwgInZhbHVlIjogMC4wNDYxMjEzNDc2OTU1ODkwNjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDcyNi4xMDA0NjUsICJzdGVwIjogMzIxMCwgInZhbHVlIjogMC4wNDYzNDEzODk0MTc2NDgzMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDczNC43ODA4NjY2LCAic3RlcCI6IDMyMjAsICJ2YWx1ZSI6IDAuMDQyNzQ2MDc0NDk3Njk5NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDc0NC40MTQzOTAzLCAic3RlcCI6IDMyMzAsICJ2YWx1ZSI6IDAuMDI3OTIzNjE5Mzc0NjMyODM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NTIuNTAzMzk2LCAic3RlcCI6IDMyNDAsICJ2YWx1ZSI6IDAuMDM5NjUxMDY2MDY0ODM0NTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NjEuNzIzMTM4OCwgInN0ZXAiOiAzMjUwLCAidmFsdWUiOiAwLjAyNjMxNDE4NTkzMjI3ODYzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzcwLjM5OTI1ODYsICJzdGVwIjogMzI2MCwgInZhbHVlIjogMC4wMjY1NTU1NDkzNTMzNjExM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzc5LjczMTY2MzcsICJzdGVwIjogMzI3MCwgInZhbHVlIjogMC4wMzQ4NTY0NDIzNjIwNzAwODR9LCB7IndhbGxUaW1lIjogMTczMzA3MDc5My42ODA1MDMxLCAic3RlcCI6IDMyODAsICJ2YWx1ZSI6IDAuMDM0MTAyMDk3MTUzNjYzNjM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MDEuOTAxNzYxNSwgInN0ZXAiOiAzMjkwLCAidmFsdWUiOiAwLjAyNzQzNTUxMzIxMzI3Njg2M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwODEwLjE2Mjg1NzgsICJzdGVwIjogMzMwMCwgInZhbHVlIjogMC4wMjY2MzA5OTAyMDcxOTUyODJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDgxOC43Mjg0MTA3LCAic3RlcCI6IDMzMTAsICJ2YWx1ZSI6IDAuMDM3NzYxNjM2MDc4MzU3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwODI3LjAxMDg5NywgInN0ZXAiOiAzMzIwLCAidmFsdWUiOiAwLjA0Mzc4NzE4ODgyNzk5MTQ4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODM1LjU3ODQ4NDgsICJzdGVwIjogMzMzMCwgInZhbHVlIjogMC4wNjM3OTkwNjA4ODExMzc4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODQzLjk3ODcyMDcsICJzdGVwIjogMzM0MCwgInZhbHVlIjogMC4wMzkzNDQ0NzQ2NzMyNzExOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODUzLjA5Mzg5NjYsICJzdGVwIjogMzM1MCwgInZhbHVlIjogMC4wNTc3NTI5NzQzMzEzNzg5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODY1LjQyMTM4OTgsICJzdGVwIjogMzM2MCwgInZhbHVlIjogMC4wMzA0MjUyMjYzMTU4NTU5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODczLjY2MzM1OSwgInN0ZXAiOiAzMzcwLCAidmFsdWUiOiAwLjAzMzI4NjA3OTc2NDM2NjE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4ODMuMzM3NzI5NywgInN0ZXAiOiAzMzgwLCAidmFsdWUiOiAwLjAzNDY2MDQ2MjI5MDA0ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDg5Mi4zNzg3MTEsICJzdGVwIjogMzM5MCwgInZhbHVlIjogMC4wMzU1ODc5MDY4Mzc0NjMzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTAwLjcyNDA2NDgsICJzdGVwIjogMzQwMCwgInZhbHVlIjogMC4wNDY0MjYwNzI3MTY3MTI5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTA4LjUwNTg5MTgsICJzdGVwIjogMzQxMCwgInZhbHVlIjogMC4wMjk0MDUzNDQyNzc2MjAzMTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDkxNi42NTc0ODY3LCAic3RlcCI6IDM0MjAsICJ2YWx1ZSI6IDAuMDQ0NDc3MjMxODAwNTU2MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MDkyNS4yMTQxMzYxLCAic3RlcCI6IDM0MzAsICJ2YWx1ZSI6IDAuMDM0MTMxODg0NTc0ODkwMTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDkzMy44MTIwNDEsICJzdGVwIjogMzQ0MCwgInZhbHVlIjogMC4wMzcxMjkzMDUzMDMwOTY3N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTQ3LjQ4MTYxNzIsICJzdGVwIjogMzQ1MCwgInZhbHVlIjogMC4wMzIyNTg1NjY0Njg5NTQwODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDk1Ni4xODk1NzI4LCAic3RlcCI6IDM0NjAsICJ2YWx1ZSI6IDAuMDMwNDMyMzM0MTY5NzQ1NDQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NjQuMjY4MTg1NiwgInN0ZXAiOiAzNDcwLCAidmFsdWUiOiAwLjA5MzUyMjQ1OTI2ODU2OTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NzIuMzg4MDMsICJzdGVwIjogMzQ4MCwgInZhbHVlIjogMC4wNDA5Nzc5MDI3MTA0Mzc3NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDk4MC42NDg5MzY3LCAic3RlcCI6IDM0OTAsICJ2YWx1ZSI6IDAuMDQxNjkzNzgwNTcxMjIyMzA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5ODkuNjg5NTEyLCAic3RlcCI6IDM1MDAsICJ2YWx1ZSI6IDAuMDM0OTg5MjQ4OTYxMjEwMjV9LCB7IndhbGxUaW1lIjogMTczMzA3MDk5Ny43OTA0OTQyLCAic3RlcCI6IDM1MTAsICJ2YWx1ZSI6IDAuMDUxMjQ3NzcxODI5MzY2Njg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMDYuMjczMjQ5NiwgInN0ZXAiOiAzNTIwLCAidmFsdWUiOiAwLjA2MzUzMTY1OTU0MzUxNDI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMTguODk4MDM2LCAic3RlcCI6IDM1MzAsICJ2YWx1ZSI6IDAuMDQxNDE4Nzc1OTE2MDk5NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTAyNy4xOTkyMTQ3LCAic3RlcCI6IDM1NDAsICJ2YWx1ZSI6IDAuMDIzNDM4MTU3NTEzNzM3Njh9LCB7IndhbGxUaW1lIjogMTczMzA3MTAzNS4zMjI3ODkyLCAic3RlcCI6IDM1NTAsICJ2YWx1ZSI6IDAuMDUwMDYwNDM2MTI5NTcwMDF9LCB7IndhbGxUaW1lIjogMTczMzA3MTA0My43NDc2NDA4LCAic3RlcCI6IDM1NjAsICJ2YWx1ZSI6IDAuMDMyNjA4MDA2MTQ5NTMwNDF9LCB7IndhbGxUaW1lIjogMTczMzA3MTA1MS44NzQxNzgsICJzdGVwIjogMzU3MCwgInZhbHVlIjogMC4wNDYzNjQ4MDY1OTI0NjQ0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDYwLjQ5ODA4NywgInN0ZXAiOiAzNTgwLCAidmFsdWUiOiAwLjAzOTc5NjkzNzI1NzA1MTQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNjguODgxNDg2MiwgInN0ZXAiOiAzNTkwLCAidmFsdWUiOiAwLjA0NjM5NjQ3MTU2MDAwMTM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNzcuNzE0OTk2MywgInN0ZXAiOiAzNjAwLCAidmFsdWUiOiAwLjAzOTkxODU0OTM1ODg0NDc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwODYuMjE0NDAxNSwgInN0ZXAiOiAzNjEwLCAidmFsdWUiOiAwLjAzODI4NzgxNDcwNjU2Mzk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMDEuNjYwNzc1NCwgInN0ZXAiOiAzNjIwLCAidmFsdWUiOiAwLjAzOTMyMDQyMDQ3MzgxNDAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMDkuNjI0NjI0NywgInN0ZXAiOiAzNjMwLCAidmFsdWUiOiAwLjA0Nzk0NjEwNjY0MjQ4NDY2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTE4LjEzMTIzOTQsICJzdGVwIjogMzY0MCwgInZhbHVlIjogMC4wMzUyNjA5NDU1NTg1NDc5NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MTEyNi45OTUxMTI0LCAic3RlcCI6IDM2NTAsICJ2YWx1ZSI6IDAuMDMyMjc4NDQwODkyNjk2Mzh9LCB7IndhbGxUaW1lIjogMTczMzA3MTEzNS44MjkzNjMzLCAic3RlcCI6IDM2NjAsICJ2YWx1ZSI6IDAuMDQzNzM1NjE1OTA5MDk5NTh9LCB7IndhbGxUaW1lIjogMTczMzA3MTE0NC4yNTA0NzUyLCAic3RlcCI6IDM2NzAsICJ2YWx1ZSI6IDAuMDM3NjcwNjgzMTE1NzIwNzV9LCB7IndhbGxUaW1lIjogMTczMzA3MTE1Mi45NjY0NCwgInN0ZXAiOiAzNjgwLCAidmFsdWUiOiAwLjAzMzU5MTU5MDgyMTc0MzAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNjAuNjA1NDA1OCwgInN0ZXAiOiAzNjkwLCAidmFsdWUiOiAwLjAzMzU2MDc0NTQxODA3MTc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNzMuNzUyMzcyNywgInN0ZXAiOiAzNzAwLCAidmFsdWUiOiAwLjAzNzIwNTA3MDI1NzE4Njg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExODIuODg1MjU2LCAic3RlcCI6IDM3MTAsICJ2YWx1ZSI6IDAuMDMwMDc4MDkwNzI3MzI5MjU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExOTEuMjEyMjQ3OCwgInN0ZXAiOiAzNzIwLCAidmFsdWUiOiAwLjA1ODU5NDM2ODM5ODE4OTU0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjAwLjMzNTQxOTcsICJzdGVwIjogMzczMCwgInZhbHVlIjogMC4wMjQzMDIwMTY5NDM2OTMxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjA4LjM2NzczNywgInN0ZXAiOiAzNzQwLCAidmFsdWUiOiAwLjAyNjY3MTA5NDgxOTkwMzM3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjE2LjU3NDAwNjMsICJzdGVwIjogMzc1MCwgInZhbHVlIjogMC4wNTM5OTE0NDgxMzQxODM4ODR9LCB7IndhbGxUaW1lIjogMTczMzA3MTIyNC42NjM4Mzc3LCAic3RlcCI6IDM3NjAsICJ2YWx1ZSI6IDAuMDI2MjA3NTE5Njk1MTYyNzczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMzIuODYyNzkxOCwgInN0ZXAiOiAzNzcwLCAidmFsdWUiOiAwLjA1NDg2NjgyODAyNDM4NzM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNDguNTM1NjY1OCwgInN0ZXAiOiAzNzgwLCAidmFsdWUiOiAwLjAyNzUxODM1NDM1NjI4ODkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNTcuMzkzNzk3LCAic3RlcCI6IDM3OTAsICJ2YWx1ZSI6IDAuMDMyNjc5NzQwMzM5NTE3NTl9LCB7IndhbGxUaW1lIjogMTczMzA3MTI2NS41Njk0MTkxLCAic3RlcCI6IDM4MDAsICJ2YWx1ZSI6IDAuMDMyNTY1MjczMzQ0NTE2NzU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNzQuMjAwMjA3NywgInN0ZXAiOiAzODEwLCAidmFsdWUiOiAwLjAzMzU3MDk1NjQzODc3OTgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyODMuMDIwMDAzNiwgInN0ZXAiOiAzODIwLCAidmFsdWUiOiAwLjAzMzIyNDI1ODU3MTg2MzE3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjkxLjczMTg4MTYsICJzdGVwIjogMzgzMCwgInZhbHVlIjogMC4wMzE2Mzk3ODA4NDkyMTgzN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjk5Ljg5NjI4NTUsICJzdGVwIjogMzg0MCwgInZhbHVlIjogMC4wMjk1Njk1NTY5MzY2MjE2NjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTMwOC40ODE2NTIsICJzdGVwIjogMzg1MCwgInZhbHVlIjogMC4wNDQzNDQxOTQyMzM0MTc1MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzE2Ljk1Mzc1NjMsICJzdGVwIjogMzg2MCwgInZhbHVlIjogMC4wMzc5ODIzMzcxNzY3OTk3NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MTMzMC4yMTc0NjcsICJzdGVwIjogMzg3MCwgInZhbHVlIjogMC4wNDA0ODgxMTY0NDMxNTcxOTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTMzOC45OTEwODgyLCAic3RlcCI6IDM4ODAsICJ2YWx1ZSI6IDAuMDQzMjI0ODAwMzc4MDg0MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MTM0Ny43MzkwMTQsICJzdGVwIjogMzg5MCwgInZhbHVlIjogMC4wMjU3MTM1NzA0MTU5NzM2NjN9LCB7IndhbGxUaW1lIjogMTczMzA3MTM1Ny4wMzcyMTYsICJzdGVwIjogMzkwMCwgInZhbHVlIjogMC4wMzE2ODc4MDcyOTE3NDYxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzY1LjIyNzYzMTgsICJzdGVwIjogMzkxMCwgInZhbHVlIjogMC4wNjAzNDk3NzM2MTU1OTg2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzc0LjEzNjkxNTcsICJzdGVwIjogMzkyMCwgInZhbHVlIjogMC4wNDc0OTEyODU5NDk5NDU0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzgyLjgxNjE2MzUsICJzdGVwIjogMzkzMCwgInZhbHVlIjogMC4wNTA0MDU4NjM2NzI0OTQ4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzkxLjU3MDY3MDQsICJzdGVwIjogMzk0MCwgInZhbHVlIjogMC4wMjk3MjYzODA0ODIzMTYwMTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTQwNC40Njk4MDU1LCAic3RlcCI6IDM5NTAsICJ2YWx1ZSI6IDAuMDI4MjUxNDQ0OTIwODk3NDg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MTIuMzQxMzE0OCwgInN0ZXAiOiAzOTYwLCAidmFsdWUiOiAwLjAyODgwOTU3MzUwMTM0ODQ5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDIxLjE1OTk1LCAic3RlcCI6IDM5NzAsICJ2YWx1ZSI6IDAuMDQyNjQ4OTMzODI3ODc3MDQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MzAuMTIzMDA2NiwgInN0ZXAiOiAzOTgwLCAidmFsdWUiOiAwLjAzMzkxMzQzNzI3NzA3ODYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MzguNDE2NDc3LCAic3RlcCI6IDM5OTAsICJ2YWx1ZSI6IDAuMDQ3NzQwMTgzNzcwNjU2NTg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NDcuNzMxMzg4LCAic3RlcCI6IDQwMDAsICJ2YWx1ZSI6IDAuMDIzOTEwOTIyOTI5NjQ0NTg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NTYuMTk5MDM4NSwgInN0ZXAiOiA0MDEwLCAidmFsdWUiOiAwLjA3Mzk1OTA0NTExMjEzMzAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NjQuNzUxODkxLCAic3RlcCI6IDQwMjAsICJ2YWx1ZSI6IDAuMDM3NDcyNTM4NjUwMDM1ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ3My40MDA0OTE3LCAic3RlcCI6IDQwMzAsICJ2YWx1ZSI6IDAuMDM1MjY1Mjc4MDcxMTY1MDg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0OTAuMjg4OTQyOCwgInN0ZXAiOiA0MDQwLCAidmFsdWUiOiAwLjAzOTExMjcyMDYzODUxMzU2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDk4LjcxNDE4ODYsICJzdGVwIjogNDA1MCwgInZhbHVlIjogMC4wNDI5MjczNzY5MjU5NDUyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTA3LjEwMDAzMjYsICJzdGVwIjogNDA2MCwgInZhbHVlIjogMC4wMjkyNzY1Mjc0NjQzODk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MTUuMDcwMzM1NiwgInN0ZXAiOiA0MDcwLCAidmFsdWUiOiAwLjA2NjU1MTc1MjM4ODQ3NzMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MjMuOTA5MzM2OCwgInN0ZXAiOiA0MDgwLCAidmFsdWUiOiAwLjAyOTA0ODYzODQxODMxNjg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MzIuMjg4MTc0MiwgInN0ZXAiOiA0MDkwLCAidmFsdWUiOiAwLjAzNTM3ODY2ODQ1NzI2OTY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NDAuOTIwMTcwMywgInN0ZXAiOiA0MTAwLCAidmFsdWUiOiAwLjAyNTY3NjQ3NzcwMDQ3MTg3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTQ5LjE3OTM3MjgsICJzdGVwIjogNDExMCwgInZhbHVlIjogMC4wMjc1MjkxMTY3MTk5NjExNjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTU2NS44Mzg3MzIsICJzdGVwIjogNDEyMCwgInZhbHVlIjogMC4wMjc1NDg1MDQ5OTMzMTk1MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTczLjYzNDQ1NzYsICJzdGVwIjogNDEzMCwgInZhbHVlIjogMC4wMzI1OTg3Mzc2MjcyNjc4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTgyLjA5ODk5NTcsICJzdGVwIjogNDE0MCwgInZhbHVlIjogMC4wNDMxNDI4ODQ5Njk3MTEzMDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTU5MC4wMjU1ODYsICJzdGVwIjogNDE1MCwgInZhbHVlIjogMC4wMzc5MjAzMjk3MTk3ODE4NzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTU5OS4yNDM5NTUsICJzdGVwIjogNDE2MCwgInZhbHVlIjogMC4wMzI2NDU5NDgyMzEyMjAyNDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTYwOC4wNzQ3MDQsICJzdGVwIjogNDE3MCwgInZhbHVlIjogMC4wMzU4MTA3MzUwNzY2NjU4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjE2LjE4Njk0NzYsICJzdGVwIjogNDE4MCwgInZhbHVlIjogMC4wNjI0ODgyNDY3MDkxMDgzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjI2LjA4NTg0NjQsICJzdGVwIjogNDE5MCwgInZhbHVlIjogMC4wMjY5NTg4ODQ2NzEzMzA0NTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTY0MS4wMTE1NjUsICJzdGVwIjogNDIwMCwgInZhbHVlIjogMC4wMzUxNDc5Nzk4NTU1Mzc0MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTY0OS4wNDM4NjQ3LCAic3RlcCI6IDQyMTAsICJ2YWx1ZSI6IDAuMDQyMjc2NzQwMDc0MTU3NzE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NTguNTM0NTk3NiwgInN0ZXAiOiA0MjIwLCAidmFsdWUiOiAwLjA0MDc0NjMzMTIxNDkwNDc4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjY3Ljk2OTI0NiwgInN0ZXAiOiA0MjMwLCAidmFsdWUiOiAwLjAyNzYxOTIyOTYyOTYzNTgxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NzYuMTEyMDI1MywgInN0ZXAiOiA0MjQwLCAidmFsdWUiOiAwLjAyNjE2NTc4NTI2Nzk0OTEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjg0LjM4MTgyNCwgInN0ZXAiOiA0MjUwLCAidmFsdWUiOiAwLjA0OTAwNDI4NjUyNzYzMzY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2OTMuMTEyOTM3NywgInN0ZXAiOiA0MjYwLCAidmFsdWUiOiAwLjAyMzY5MDIyOTI4MTc4MzEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzAyLjE4NzEyMDQsICJzdGVwIjogNDI3MCwgInZhbHVlIjogMC4wNDMwMzI2MzEyNzgwMzgwMjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTcxMC42MzQzMjg2LCAic3RlcCI6IDQyODAsICJ2YWx1ZSI6IDAuMDIzNDY1MDE0OTk0MTQ0NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTcyNi42ODAwMTU2LCAic3RlcCI6IDQyOTAsICJ2YWx1ZSI6IDAuMDM0OTQyMTY1MDE3MTI3OTl9LCB7IndhbGxUaW1lIjogMTczMzA3MTczNS4yMTg5NDkzLCAic3RlcCI6IDQzMDAsICJ2YWx1ZSI6IDAuMDM5MDgzODg2ODkxNjAzNDd9LCB7IndhbGxUaW1lIjogMTczMzA3MTc0Mi45NjAzNjQsICJzdGVwIjogNDMxMCwgInZhbHVlIjogMC4wMzU0MjA1NTkzNDY2NzU4N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzUxLjU4OTA1NTMsICJzdGVwIjogNDMyMCwgInZhbHVlIjogMC4wMzA1NzM4NDQ5MDk2Njc5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzYwLjAzODUxOTEsICJzdGVwIjogNDMzMCwgInZhbHVlIjogMC4wMzEzNzIyMTkzMjQxMTE5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzY4LjQzNDYzNTYsICJzdGVwIjogNDM0MCwgInZhbHVlIjogMC4wMzI1Mjg5MjU2ODcwNzQ2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzc3LjQyMjU0NTIsICJzdGVwIjogNDM1MCwgInZhbHVlIjogMC4wNDM2ODkxMzkxODczMzU5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzg1LjU1MDU4OTMsICJzdGVwIjogNDM2MCwgInZhbHVlIjogMC4wNDEzNzQwMjAyNzg0NTM4M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxODAwLjg4ODA0NzIsICJzdGVwIjogNDM3MCwgInZhbHVlIjogMC4wMzkxNjMxMDUxODk4MDAyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODA5LjI2OTEwNTQsICJzdGVwIjogNDM4MCwgInZhbHVlIjogMC4wMzEzNzM4MTM3NDgzNTk2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODE3LjM0OTc4OCwgInN0ZXAiOiA0MzkwLCAidmFsdWUiOiAwLjA2NzY0Nzg4OTI1NjQ3NzM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MjYuNDMzNjcsICJzdGVwIjogNDQwMCwgInZhbHVlIjogMC4wNDUwMTgwMzk2NDM3NjQ0OTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTgzNC44OTA3OTk1LCAic3RlcCI6IDQ0MTAsICJ2YWx1ZSI6IDAuMDQ1OTU4OTY2MDE2NzY5NDF9LCB7IndhbGxUaW1lIjogMTczMzA3MTg0My40NTAwODksICJzdGVwIjogNDQyMCwgInZhbHVlIjogMC4wNTI1NTA5NzE1MDgwMjYxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODUxLjU5OTI2OTQsICJzdGVwIjogNDQzMCwgInZhbHVlIjogMC4wMzI5NTMxMTcwNDI3Nzk5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODU5LjkyNzQwMDYsICJzdGVwIjogNDQ0MCwgInZhbHVlIjogMC4wMjgzMzczNjg3NDE2MzE1MDh9LCB7IndhbGxUaW1lIjogMTczMzA3MTg2OC42NzY0NDg2LCAic3RlcCI6IDQ0NTAsICJ2YWx1ZSI6IDAuMDM5ODkzNjg2NzcxMzkyODJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTg4MS4zMzk0NjM1LCAic3RlcCI6IDQ0NjAsICJ2YWx1ZSI6IDAuMDMzMjc0NzU0ODgxODU4ODI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4ODkuNjQxMzg0NiwgInN0ZXAiOiA0NDcwLCAidmFsdWUiOiAwLjAzNTAyNzA1NjkzMjQ0OTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4OTguNDI0MTA4NywgInN0ZXAiOiA0NDgwLCAidmFsdWUiOiAwLjAzMjgzNjQ2MzMwMjM3Mzg4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTA3LjMzOTI4MTYsICJzdGVwIjogNDQ5MCwgInZhbHVlIjogMC4wNDAyNDYxMjE1ODUzNjkxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTE2LjI4MTQ4MjUsICJzdGVwIjogNDUwMCwgInZhbHVlIjogMC4wNDQyNjA5NzQ5NzM0NDAxN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTI1LjM1MTkzNjgsICJzdGVwIjogNDUxMCwgInZhbHVlIjogMC4wNDY3OTk2ODU4MDYwMzU5OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTkzMy4zMzI2NDE0LCAic3RlcCI6IDQ1MjAsICJ2YWx1ZSI6IDAuMDQ5NTYxOTEwMzMxMjQ5MjR9LCB7IndhbGxUaW1lIjogMTczMzA3MTk0MS40ODU5NDM2LCAic3RlcCI6IDQ1MzAsICJ2YWx1ZSI6IDAuMDM1ODYwMjg1MTYyOTI1NzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTk1NC4xNzI1MzA3LCAic3RlcCI6IDQ1NDAsICJ2YWx1ZSI6IDAuMDI2ODM5MTc5OTE4MTY5OTc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NjIuMzk5MDgxNywgInN0ZXAiOiA0NTUwLCAidmFsdWUiOiAwLjAzMDIyNzM1NzUyMTY1MzE3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTcwLjUxNjUxMywgInN0ZXAiOiA0NTYwLCAidmFsdWUiOiAwLjA0MTE2OTUyNDE5MjgxMDA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NzguODczMTMzNywgInN0ZXAiOiA0NTcwLCAidmFsdWUiOiAwLjAzMDQ0MTMyMTQzMjU5MDQ4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTg3LjcxMzY4MywgInN0ZXAiOiA0NTgwLCAidmFsdWUiOiAwLjA1MjgwMjUxMDU1OTU1ODg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5OTYuNDQ4NTY5LCAic3RlcCI6IDQ1OTAsICJ2YWx1ZSI6IDAuMDUxOTIwOTcyNzY0NDkyMDM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMDQuNDc5MTQ1LCAic3RlcCI6IDQ2MDAsICJ2YWx1ZSI6IDAuMDE5NzYwNjUzMzc2NTc5Mjg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMTIuNzQ3ODg3NCwgInN0ZXAiOiA0NjEwLCAidmFsdWUiOiAwLjAzMjA1NTkyOTMwMzE2OTI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMjUuNDAzNDc2LCAic3RlcCI6IDQ2MjAsICJ2YWx1ZSI6IDAuMDQyMDMzNjIwMTc4Njk5NDl9LCB7IndhbGxUaW1lIjogMTczMzA3MjAzNC4xMjE0MDM3LCAic3RlcCI6IDQ2MzAsICJ2YWx1ZSI6IDAuMDI1MjY3MzUxNDE4NzMzNTk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNDMuMDQwOTA3LCAic3RlcCI6IDQ2NDAsICJ2YWx1ZSI6IDAuMDM3NzMwOTM5Njg2Mjk4Mzd9LCB7IndhbGxUaW1lIjogMTczMzA3MjA1MS43OTAyNzI3LCAic3RlcCI6IDQ2NTAsICJ2YWx1ZSI6IDAuMDMxMTE1MTI5NTkwMDM0NDg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNjAuMTExMTExOSwgInN0ZXAiOiA0NjYwLCAidmFsdWUiOiAwLjA0NTk4MjgwMDQyNDA5ODk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNjguNjA1ODY1NSwgInN0ZXAiOiA0NjcwLCAidmFsdWUiOiAwLjA1MDcyODQ3MzgxMjM0MTY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNzYuODM5MjUxNSwgInN0ZXAiOiA0NjgwLCAidmFsdWUiOiAwLjA0MDI5NjQ1MDI1NzMwMTMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwODUuMzc4NTU4NiwgInN0ZXAiOiA0NjkwLCAidmFsdWUiOiAwLjAyNzM2NTE4MTU5NTA4NzA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwOTMuNzUxMDY4OCwgInN0ZXAiOiA0NzAwLCAidmFsdWUiOiAwLjAzOTIwMTU4MzcxMzI5MzA3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTA2Ljk5MjMyMTUsICJzdGVwIjogNDcxMCwgInZhbHVlIjogMC4wNDI3MTQ2MjU1OTcwMDAxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTE1LjY2NzgwNTIsICJzdGVwIjogNDcyMCwgInZhbHVlIjogMC4wNTM3NjE4NDczMTcyMTg3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTIzLjk1MzIzMTMsICJzdGVwIjogNDczMCwgInZhbHVlIjogMC4wNDcyNjAxNjg5Mzk4Mjg4N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTMyLjI4MzI3OTIsICJzdGVwIjogNDc0MCwgInZhbHVlIjogMC4wMzExMTk4MDg1NTQ2NDkzNTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjE0MC40MjMzMDIsICJzdGVwIjogNDc1MCwgInZhbHVlIjogMC4wNjA5Mzk2MjExODAyOTU5NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjE0OS4wODk3MDA1LCAic3RlcCI6IDQ3NjAsICJ2YWx1ZSI6IDAuMDI3MTAzMzc1NjQzNDkxNzQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNTcuNDE0MzgzNCwgInN0ZXAiOiA0NzcwLCAidmFsdWUiOiAwLjAzMDk5NTE0MzU3NzQ1NjQ3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTY1LjQ5MTkxNywgInN0ZXAiOiA0NzgwLCAidmFsdWUiOiAwLjA1NTM2Mjg5NTEzMTExMTE0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTc5LjY1MzQxLCAic3RlcCI6IDQ3OTAsICJ2YWx1ZSI6IDAuMDM1NzA2NDQ5MzAwMDUwNzM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxODguMzMyMDU0NCwgInN0ZXAiOiA0ODAwLCAidmFsdWUiOiAwLjAyODU4NjE3MzQzMDA4NTE4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTk2Ljg0OTQ2OTQsICJzdGVwIjogNDgxMCwgInZhbHVlIjogMC4wNDA3Mzc4NzEwODA2MzY5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjA0LjU2NDcwMTgsICJzdGVwIjogNDgyMCwgInZhbHVlIjogMC4wMzYwODA4MTg2MjMzMDQzN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjEzLjEwMjA3OSwgInN0ZXAiOiA0ODMwLCAidmFsdWUiOiAwLjAyMzg0NTkxNjYxMzkzNjQyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjIxLjY2OTYyNDgsICJzdGVwIjogNDg0MCwgInZhbHVlIjogMC4wMjYzOTkxMDk1MTI1Njc1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjI5Ljg5NjU4MjYsICJzdGVwIjogNDg1MCwgInZhbHVlIjogMC4wMjY0NzI2NDg2MDU3MDQzMDh9LCB7IndhbGxUaW1lIjogMTczMzA3MjIzOC4wNTg2OTcyLCAic3RlcCI6IDQ4NjAsICJ2YWx1ZSI6IDAuMDM4Mjc5NjQ1MTQ0OTM5NDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjI0Ni4zNDYxODQ1LCAic3RlcCI6IDQ4NzAsICJ2YWx1ZSI6IDAuMDI1NjA0MTM0NDI1NTIwODk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNjEuMjcwMTUxNiwgInN0ZXAiOiA0ODgwLCAidmFsdWUiOiAwLjAzNTYzMTk4ODE5NzU2NTA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNjkuODU1NDM2LCAic3RlcCI6IDQ4OTAsICJ2YWx1ZSI6IDAuMDM3ODg3ODg5ODkxODYyODd9LCB7IndhbGxUaW1lIjogMTczMzA3MjI3OC44ODI5NCwgInN0ZXAiOiA0OTAwLCAidmFsdWUiOiAwLjAzNzM3MDUyNTMwMDUwMjc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyODcuNTM3MDksICJzdGVwIjogNDkxMCwgInZhbHVlIjogMC4wMzAwNTg2NDQ3MTE5NzEyODN9LCB7IndhbGxUaW1lIjogMTczMzA3MjI5NS45NDk5MDYsICJzdGVwIjogNDkyMCwgInZhbHVlIjogMC4wMzQ4MTQ0NTgzNDA0MDY0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzA0LjM1NzkyOSwgInN0ZXAiOiA0OTMwLCAidmFsdWUiOiAwLjA0NjYzMzAyNzQ5Mzk1MzcwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzEzLjUxMjQxNjQsICJzdGVwIjogNDk0MCwgInZhbHVlIjogMC4wMzA0MTQxMDgxODY5NjAyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzIxLjMyODA0NjYsICJzdGVwIjogNDk1MCwgInZhbHVlIjogMC4wMzM4MDkzOTczNjk2MjMxODR9LCB7IndhbGxUaW1lIjogMTczMzA3MjMzNy4wMjc3NTUzLCAic3RlcCI6IDQ5NjAsICJ2YWx1ZSI6IDAuMDMwNTYxODE3ODA5OTM5Mzg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNDUuNTM2NDE2NSwgInN0ZXAiOiA0OTcwLCAidmFsdWUiOiAwLjAyNjg3NjIxODYxNjk2MjQzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzUzLjQzMjQ3NywgInN0ZXAiOiA0OTgwLCAidmFsdWUiOiAwLjAyNTMyNTAwMDI4NjEwMjI5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzYyLjQxNTk0NzQsICJzdGVwIjogNDk5MCwgInZhbHVlIjogMC4wNDM1ODI5NDYwNjIwODgwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzcxLjc0ODcyNjQsICJzdGVwIjogNTAwMCwgInZhbHVlIjogMC4wNDQwODk2MjI3OTU1ODE4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzgwLjUzMjQyMTQsICJzdGVwIjogNTAxMCwgInZhbHVlIjogMC4wMjg5NTc0NTYzNTAzMjY1Mzh9LCB7IndhbGxUaW1lIjogMTczMzA3MjM4OS4wMjkzMDMzLCAic3RlcCI6IDUwMjAsICJ2YWx1ZSI6IDAuMDQwOTk5NjU0NjgwNDkwNDk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzOTcuNzg4MzM5NCwgInN0ZXAiOiA1MDMwLCAidmFsdWUiOiAwLjAzMDU5MzY1Nzg2NjEyMDM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MTEuMzAxNzExNiwgInN0ZXAiOiA1MDQwLCAidmFsdWUiOiAwLjA0MDE2MjYwODAyNzQ1ODE5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MTkuNDc3MDQ5OCwgInN0ZXAiOiA1MDUwLCAidmFsdWUiOiAwLjAzOTQ4MjEzNTMyNTY3MDI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MjguMzc0OTQyMywgInN0ZXAiOiA1MDYwLCAidmFsdWUiOiAwLjA0Njk5MTE4NDM1MzgyODQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MzcuMTIwMTUwNiwgInN0ZXAiOiA1MDcwLCAidmFsdWUiOiAwLjA0MDY2MDI3NzAwOTAxMDMxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDQ2LjE3ODE2ODMsICJzdGVwIjogNTA4MCwgInZhbHVlIjogMC4wNDkwNTEwMDkxMTg1NTY5NzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ1NC40MzEzNzM2LCAic3RlcCI6IDUwOTAsICJ2YWx1ZSI6IDAuMDM3MDAwMzUwNjU0MTI1MjE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NjIuNDEzMzAxNywgInN0ZXAiOiA1MTAwLCAidmFsdWUiOiAwLjA0NDQyMTYwOTQ5MTEwOTg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NzEuMTUzNzk0LCAic3RlcCI6IDUxMTAsICJ2YWx1ZSI6IDAuMDI4ODgxOTA3NDYzMDczNzN9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ3OC45NDk1MjA4LCAic3RlcCI6IDUxMjAsICJ2YWx1ZSI6IDAuMDMwMDU4MzgyMDc5MDA1MjR9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ5MS4zMjQ0OTg0LCAic3RlcCI6IDUxMzAsICJ2YWx1ZSI6IDAuMDQ0MzQ2MDY0MzI5MTQ3MzR9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ5OS4yNjE1NTE0LCAic3RlcCI6IDUxNDAsICJ2YWx1ZSI6IDAuMDIzNDgyNDEzOTYyNDgzNDA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MDcuMTE0ODY3MiwgInN0ZXAiOiA1MTUwLCAidmFsdWUiOiAwLjA0MDEwNjczMjM5ODI3MTU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MTUuMzIwMTIzLCAic3RlcCI6IDUxNjAsICJ2YWx1ZSI6IDAuMDI0OTk1MjM3NTg4ODgyNDQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MjMuNTIwNzQzNCwgInN0ZXAiOiA1MTcwLCAidmFsdWUiOiAwLjAyOTk0NTE1MDAxNzczODM0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTMxLjA5MDUwNDIsICJzdGVwIjogNTE4MCwgInZhbHVlIjogMC4wMjQ3MDU5NTk0ODM5ODExMzN9LCB7IndhbGxUaW1lIjogMTczMzA3MjU0MC4wMjcwNzcsICJzdGVwIjogNTE5MCwgInZhbHVlIjogMC4wMjk1Mjk1Mzk4NjgyMzU1ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MjU0OC42NTcxMjgsICJzdGVwIjogNTIwMCwgInZhbHVlIjogMC4wMjkxODQ0MjMzODcwNTA2M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTYxLjQyMDQwMTYsICJzdGVwIjogNTIxMCwgInZhbHVlIjogMC4wNDYxNjYwNjk4MDU2MjIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NjkuOTAxNTA0LCAic3RlcCI6IDUyMjAsICJ2YWx1ZSI6IDAuMDM1NzY2MDkxMTk3NzI5MTF9LCB7IndhbGxUaW1lIjogMTczMzA3MjU3OC42ODQwNjUzLCAic3RlcCI6IDUyMzAsICJ2YWx1ZSI6IDAuMDQ1ODEzNTY3OTM2NDIwNDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjU4Ni45NDc0MjA2LCAic3RlcCI6IDUyNDAsICJ2YWx1ZSI6IDAuMDMyODM0MTQ5ODk3MDk4NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjU5NS4wMzcxODI4LCAic3RlcCI6IDUyNTAsICJ2YWx1ZSI6IDAuMDQ1NjA2NTk4MjU4MDE4NDk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MDMuMTc2MzIxNywgInN0ZXAiOiA1MjYwLCAidmFsdWUiOiAwLjA0NTE2NzM4NjUzMTgyOTgzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjExLjA4NDA5NiwgInN0ZXAiOiA1MjcwLCAidmFsdWUiOiAwLjA2NzAxODQzNDQwNTMyNjg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MTkuOTU5Nzk4NiwgInN0ZXAiOiA1MjgwLCAidmFsdWUiOiAwLjAyOTE3MzY0MDUzNDI4MTczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MjguNjM3MzcxMywgInN0ZXAiOiA1MjkwLCAidmFsdWUiOiAwLjAyNjcxOTU3OTQ3MzEzNzg1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjQxLjM3ODQwMDYsICJzdGVwIjogNTMwMCwgInZhbHVlIjogMC4wMjY3ODM0MzgzOTk0MzQwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjQ5Ljg2MTM4MjcsICJzdGVwIjogNTMxMCwgInZhbHVlIjogMC4wMzU2Nzk5OTYwMTM2NDEzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjU3Ljk3NDEzNDIsICJzdGVwIjogNTMyMCwgInZhbHVlIjogMC4wMzM5NzgzNTc5MTExMDk5MjR9LCB7IndhbGxUaW1lIjogMTczMzA3MjY2Ny4wMzIxOTYsICJzdGVwIjogNTMzMCwgInZhbHVlIjogMC4wMzY4Nzg2Njc3NzE4MTYyNTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjY3NS45NDU4Nzg1LCAic3RlcCI6IDUzNDAsICJ2YWx1ZSI6IDAuMDI1NDY2NzQwMTMxMzc4MTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2ODQuMjQxMTgwNCwgInN0ZXAiOiA1MzUwLCAidmFsdWUiOiAwLjA0MDY5MTg0ODg0NDI4OTc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2OTEuODYwODY2MywgInN0ZXAiOiA1MzYwLCAidmFsdWUiOiAwLjAyOTAzNzI2ODgzMjMyNTkzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzAwLjE1MTE1OTgsICJzdGVwIjogNTM3MCwgInZhbHVlIjogMC4wMzY2OTUzOTgzOTAyOTMxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzEzLjE4NTkyMDUsICJzdGVwIjogNTM4MCwgInZhbHVlIjogMC4wMzQxNTk1ODU4MzM1NDk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MjEuMDI3NTQ5NSwgInN0ZXAiOiA1MzkwLCAidmFsdWUiOiAwLjAzMjE4MTIyOTQ0MjM1ODAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MjkuODc5NzQ3NiwgInN0ZXAiOiA1NDAwLCAidmFsdWUiOiAwLjA0MDM1NzE5NDg0MDkwODA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MzguMzc0NjQxNCwgInN0ZXAiOiA1NDEwLCAidmFsdWUiOiAwLjAzNTg2MzAxOTUyNjAwNDc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3NDYuMzg1NDg1MiwgInN0ZXAiOiA1NDIwLCAidmFsdWUiOiAwLjAyNjkxODUzOTc3NzM5ODExfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3NTQuNjIwNTE1MywgInN0ZXAiOiA1NDMwLCAidmFsdWUiOiAwLjAzMzY5NDI1MjM3MTc4ODAyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzYyLjU3NjE5NTIsICJzdGVwIjogNTQ0MCwgInZhbHVlIjogMC4wMzY2NzQ1NDc5NDA0OTI2M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzcxLjM2MzQ4NzUsICJzdGVwIjogNTQ1MCwgInZhbHVlIjogMC4wMzIxNjgzNjk3NDAyNDc3MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc4Ny4xNTQ1NjEzLCAic3RlcCI6IDU0NjAsICJ2YWx1ZSI6IDAuMDM4NTk1MzU2MDQ3MTUzNDd9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc5NS44MDU2MTY5LCAic3RlcCI6IDU0NzAsICJ2YWx1ZSI6IDAuMDQ1MTgwODQ2MDA1Njc4MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MjgwNC4yNDQ4MzU2LCAic3RlcCI6IDU0ODAsICJ2YWx1ZSI6IDAuMDI3NjY1NzUyOTE3NTI4MTUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MTIuMzc1Nzc2MywgInN0ZXAiOiA1NDkwLCAidmFsdWUiOiAwLjAzMDY1NDkwNzIyNjU2MjV9LCB7IndhbGxUaW1lIjogMTczMzA3MjgyMS4xNjIwNTQzLCAic3RlcCI6IDU1MDAsICJ2YWx1ZSI6IDAuMDMxNDAwODc0MjU3MDg3NzF9LCB7IndhbGxUaW1lIjogMTczMzA3MjgzMC4wMjUzNTg0LCAic3RlcCI6IDU1MTAsICJ2YWx1ZSI6IDAuMDM1NTUyOTQxMjYyNzIyMDE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MzguNjk3ODI3OCwgInN0ZXAiOiA1NTIwLCAidmFsdWUiOiAwLjAzNTI5Mjk1Njk3ODA4MjY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NDYuOTA3NjI1NywgInN0ZXAiOiA1NTMwLCAidmFsdWUiOiAwLjAyODM2NjY3OTMyNTY5OTgwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODU1LjI1MTIwNzgsICJzdGVwIjogNTU0MCwgInZhbHVlIjogMC4wNDYwNzkxMjUyNTUzNDYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NzAuNjQ5MzUxOCwgInN0ZXAiOiA1NTUwLCAidmFsdWUiOiAwLjAzNDM0NzIyODcwNTg4MzAyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODc4LjczNDMzOTIsICJzdGVwIjogNTU2MCwgInZhbHVlIjogMC4wMzI5MTkxNTM1NzExMjg4NDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg4Ni42MTU2ODY0LCAic3RlcCI6IDU1NzAsICJ2YWx1ZSI6IDAuMDM4ODIxNjg5Nzg0NTI2ODI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4OTUuMDI0MDMwNCwgInN0ZXAiOiA1NTgwLCAidmFsdWUiOiAwLjAzNDE5NTUzNDg4NDkyOTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MDMuNDA1NTQzLCAic3RlcCI6IDU1OTAsICJ2YWx1ZSI6IDAuMDI4NzY2ODgxNjc0NTI4MTIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MTEuMjEyNTE3MywgInN0ZXAiOiA1NjAwLCAidmFsdWUiOiAwLjAzMDI3MzEzOTQ3Njc3NjEyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTE5Ljg0MjQ4NywgInN0ZXAiOiA1NjEwLCAidmFsdWUiOiAwLjAyNzE0OTM2MDYyNjkzNTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MjguNzM1NjEyMiwgInN0ZXAiOiA1NjIwLCAidmFsdWUiOiAwLjAzNDgzNjA1MDEyMjk3NjN9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk0MS43MDYzMTkzLCAic3RlcCI6IDU2MzAsICJ2YWx1ZSI6IDAuMDM5MTQ2NTU3NDUwMjk0NDk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NDkuOTgyODUwNiwgInN0ZXAiOiA1NjQwLCAidmFsdWUiOiAwLjAzMTIzMDg4OTI2MDc2ODg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NTguNzI0NDkyLCAic3RlcCI6IDU2NTAsICJ2YWx1ZSI6IDAuMDY4ODczNjgxMTI4MDI1MDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk2Ni44MTkzMTMsICJzdGVwIjogNTY2MCwgInZhbHVlIjogMC4wMzI2OTg4Njk3MDUyMDAxOTV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk3NC45NjY3NCwgInN0ZXAiOiA1NjcwLCAidmFsdWUiOiAwLjAyODA1MDU3NTQwNTM1OTI2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTgzLjU2NDcwMDEsICJzdGVwIjogNTY4MCwgInZhbHVlIjogMC4wNDkyMDA2NjE0ODA0MjY3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTkyLjIzMzEyODMsICJzdGVwIjogNTY5MCwgInZhbHVlIjogMC4wMjgxNDE0MjAzMzQ1Nzc1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDAwLjgxOTgxNTYsICJzdGVwIjogNTcwMCwgInZhbHVlIjogMC4wMTk5MTMwMTk2MTI0MzE1MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzAwOS43ODU5MDg1LCAic3RlcCI6IDU3MTAsICJ2YWx1ZSI6IDAuMDQ4MTI3MTAzNTk2OTI1NzM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMjIuODcwODQ1NiwgInN0ZXAiOiA1NzIwLCAidmFsdWUiOiAwLjA0NTEzNzg5NzEzMzgyNzIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMzEuNTM4OTUxMiwgInN0ZXAiOiA1NzMwLCAidmFsdWUiOiAwLjAyNjA0ODMxMzgyNjMyMjU1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDM5LjU3NTMyODYsICJzdGVwIjogNTc0MCwgInZhbHVlIjogMC4wNDI0MTg4OTM0MjY2NTY3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDQ3Ljg0NTQ0OTQsICJzdGVwIjogNTc1MCwgInZhbHVlIjogMC4wMzA1OTkwNjEzOTk2OTgyNTd9LCB7IndhbGxUaW1lIjogMTczMzA3MzA1Ni4xNTkwOTc3LCAic3RlcCI6IDU3NjAsICJ2YWx1ZSI6IDAuMDI4Mjc1NDMwMjAyNDg0MTN9LCB7IndhbGxUaW1lIjogMTczMzA3MzA2NC45NTc2NTQ1LCAic3RlcCI6IDU3NzAsICJ2YWx1ZSI6IDAuMDQzMTU5MjkxMTQ4MTg1NzN9LCB7IndhbGxUaW1lIjogMTczMzA3MzA3My44NDAyNzk2LCAic3RlcCI6IDU3ODAsICJ2YWx1ZSI6IDAuMDM3MTkzNDY1OTc3OTA3MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MzA4Mi43Mjc3MjI0LCAic3RlcCI6IDU3OTAsICJ2YWx1ZSI6IDAuMDI4NDM1Nzk0NjM2NjA3MTd9LCB7IndhbGxUaW1lIjogMTczMzA3MzA5NS4xMDU2NDE0LCAic3RlcCI6IDU4MDAsICJ2YWx1ZSI6IDAuMDQ2ODM3MzU5NjY2ODI0MzR9LCB7IndhbGxUaW1lIjogMTczMzA3MzEwMy4zMTg0MjcsICJzdGVwIjogNTgxMCwgInZhbHVlIjogMC4wMjc1MDI2MDk0MTY4NDI0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTExLjk3MzI4MjYsICJzdGVwIjogNTgyMCwgInZhbHVlIjogMC4wMjY1NTY3MDIzMzA3MDg1MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MzEyMC4zNjA0MDgzLCAic3RlcCI6IDU4MzAsICJ2YWx1ZSI6IDAuMDM2NzAwNzIxODMwMTI5NjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzEyOC4yMTE5MTQsICJzdGVwIjogNTg0MCwgInZhbHVlIjogMC4wMzYwMTc0NTE0MzUzMjc1M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMTM2LjcxODM3LCAic3RlcCI6IDU4NTAsICJ2YWx1ZSI6IDAuMDI3MjgyMDgxNTQ0Mzk5MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzE0NC45MzA0MjMzLCAic3RlcCI6IDU4NjAsICJ2YWx1ZSI6IDAuMDU0NDE0NDYyMjk4MTU0ODN9LCB7IndhbGxUaW1lIjogMTczMzA3MzE1My4wNDU4MTksICJzdGVwIjogNTg3MCwgInZhbHVlIjogMC4wMzMwMzE0NDg3MjE4ODU2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTY2LjAwNTc4NCwgInN0ZXAiOiA1ODgwLCAidmFsdWUiOiAwLjAzNDgwMDY3ODQ5MTU5MjQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNzQuNjYxNzk1MSwgInN0ZXAiOiA1ODkwLCAidmFsdWUiOiAwLjAzMzY5MjM4NjAwMTM0ODQ5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTgyLjUxMTAyMjMsICJzdGVwIjogNTkwMCwgInZhbHVlIjogMC4wNDk2NTExOTQzNjM4MzI0NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MzE5MS41NjIxOTk0LCAic3RlcCI6IDU5MTAsICJ2YWx1ZSI6IDAuMDIzMzUyOTc2ODg4NDE4MTk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxOTkuNDE2MTI5NCwgInN0ZXAiOiA1OTIwLCAidmFsdWUiOiAwLjA0MzgwNjE0MzEwNTAzMDA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMDcuNDY4MTg4OCwgInN0ZXAiOiA1OTMwLCAidmFsdWUiOiAwLjAyNjk2MTI3ODE3MDM0NzIxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjE1LjYwNTYwNTgsICJzdGVwIjogNTk0MCwgInZhbHVlIjogMC4wMzEwNTQ5ODEwNTI4NzU1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjI0LjM2MDkxNywgInN0ZXAiOiA1OTUwLCAidmFsdWUiOiAwLjAyNjkxNzA2NjQyNTA4NTA2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjMyLjg4MDcyMywgInN0ZXAiOiA1OTYwLCAidmFsdWUiOiAwLjAzOTA0MTYzNDY0OTAzODMxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjQ1LjM3Njc2NjQsICJzdGVwIjogNTk3MCwgInZhbHVlIjogMC4wNDE3Mjk0MjA0MjM1MDc2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjUzLjE4MjMxNTYsICJzdGVwIjogNTk4MCwgInZhbHVlIjogMC4wMzcwNDg1MjIzODI5NzQ2MjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzI2MS44MDQ2NzMyLCAic3RlcCI6IDU5OTAsICJ2YWx1ZSI6IDAuMDM0MDQyNjg5OTQ5Mjc0MDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzI3MC4wNjI0OTY0LCAic3RlcCI6IDYwMDAsICJ2YWx1ZSI6IDAuMDM3OTA4NzY2NDE4Njk1NDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzI3OC44OTk1NDgsICJzdGVwIjogNjAxMCwgInZhbHVlIjogMC4wMzgyNTczMjMyMDU0NzEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjg3LjY4NDk3MzcsICJzdGVwIjogNjAyMCwgInZhbHVlIjogMC4wMzk2MjM0MzE4NjE0MDA2MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MzI5Ny4yNzczNDMsICJzdGVwIjogNjAzMCwgInZhbHVlIjogMC4wMzk3MTgwMDIwODA5MTczNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzA1LjkyMTEzMDIsICJzdGVwIjogNjA0MCwgInZhbHVlIjogMC4wMzgwMDg1NTk0OTUyMTA2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzIyLjM1NzYwNzEsICJzdGVwIjogNjA1MCwgInZhbHVlIjogMC4wMzMyMjAzMzU4NDExNzg4OTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzMzMS45ODAyMjM3LCAic3RlcCI6IDYwNjAsICJ2YWx1ZSI6IDAuMDQwNDk4MTU2MTAwNTExNTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzM0MC41MjUyNjAyLCAic3RlcCI6IDYwNzAsICJ2YWx1ZSI6IDAuMDMyMjU2MDUxODk4MDAyNjI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNDkuNjA0OTQ2OSwgInN0ZXAiOiA2MDgwLCAidmFsdWUiOiAwLjAyODYyODI4MDM4NjMyODY5N30sIHsid2FsbFRpbWUiOiAxNzMzMDczMzU5LjA3NDIyNywgInN0ZXAiOiA2MDkwLCAidmFsdWUiOiAwLjA0MzkxNzQ1NDc3OTE0ODF9LCB7IndhbGxUaW1lIjogMTczMzA3MzM2OC40MDU5OTQ0LCAic3RlcCI6IDYxMDAsICJ2YWx1ZSI6IDAuMDI2ODgwMDc2MTU1MDY2NDl9LCB7IndhbGxUaW1lIjogMTczMzA3MzM3Ny42NzgwMTIxLCAic3RlcCI6IDYxMTAsICJ2YWx1ZSI6IDAuMDMzOTQxMjkxMjcyNjQwMjN9LCB7IndhbGxUaW1lIjogMTczMzA3MzM4Ni40MDM0NzIyLCAic3RlcCI6IDYxMjAsICJ2YWx1ZSI6IDAuMDMwMDIwNzU0Nzg0MzQ1NjI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzOTUuNDU0Mzc4NiwgInN0ZXAiOiA2MTMwLCAidmFsdWUiOiAwLjAzNjc3MzQ5OTEwMTQwMDM3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDA4LjE1NDI0OCwgInN0ZXAiOiA2MTQwLCAidmFsdWUiOiAwLjAyNjQ2OTIyNjkyNjU2NTE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MTcuMzI2ODg3NiwgInN0ZXAiOiA2MTUwLCAidmFsdWUiOiAwLjAyODQ4NzcyMTQ1ODA3NzQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MjYuMjYxNTcxNCwgInN0ZXAiOiA2MTYwLCAidmFsdWUiOiAwLjAzODI1NTkxMTMyMDQ0NzkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MzQuODEyMzk2MywgInN0ZXAiOiA2MTcwLCAidmFsdWUiOiAwLjAzNTMxOTg0NjEyMzQ1Njk1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDQ0LjUxNTYxMzgsICJzdGVwIjogNjE4MCwgInZhbHVlIjogMC4wNjMwOTc0NjIwNTgwNjczMn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDUzLjEyMTI2NzgsICJzdGVwIjogNjE5MCwgInZhbHVlIjogMC4wMzE3NDQ3NDgzNTM5NTgxM30sIHsid2FsbFRpbWUiOiAxNzMzMDczNDYyLjU2ODU4MDIsICJzdGVwIjogNjIwMCwgInZhbHVlIjogMC4wMzA0OTA3MzM2ODMxMDkyODN9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ3Mi4wMjc3MzY3LCAic3RlcCI6IDYyMTAsICJ2YWx1ZSI6IDAuMDM3MjE4Mzg4MTcwMDAzODl9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ4NC40NTEyOTcsICJzdGVwIjogNjIyMCwgInZhbHVlIjogMC4wMzIyNTY2Nzc3NDY3NzI3NjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ5My42NjI3OTksICJzdGVwIjogNjIzMCwgInZhbHVlIjogMC4wMjU2NTc0MzIxNTM4MjA5OX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTAyLjQ0NDEwNzgsICJzdGVwIjogNjI0MCwgInZhbHVlIjogMC4wNDA3NDA0MjI5MDQ0OTE0MjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzUxMS4yNTk0MDUxLCAic3RlcCI6IDYyNTAsICJ2YWx1ZSI6IDAuMDM2NTU0NzUzNzgwMzY0OTl9LCB7IndhbGxUaW1lIjogMTczMzA3MzUyMC41MTI1NTczLCAic3RlcCI6IDYyNjAsICJ2YWx1ZSI6IDAuMDI3NjQ1ODkzMzk0OTQ3MDUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MjkuNzg0MjA5MywgInN0ZXAiOiA2MjcwLCAidmFsdWUiOiAwLjAzNzk1OTM4NTY2MzI3MDk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MzkuNjQxODc3MiwgInN0ZXAiOiA2MjgwLCAidmFsdWUiOiAwLjAzMTg3NzE2NzUyMjkwNzI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NDguOTEzODAzMywgInN0ZXAiOiA2MjkwLCAidmFsdWUiOiAwLjAyOTA5ODk4MDEyODc2NTEwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTYwLjYyMjYwNzcsICJzdGVwIjogNjMwMCwgInZhbHVlIjogMC4wMzExNTQxMTEwMjc3MTc1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTcwLjA3MTgsICJzdGVwIjogNjMxMCwgInZhbHVlIjogMC4wMzUwNDc1NzU4MzE0MTMyN30sIHsid2FsbFRpbWUiOiAxNzMzMDczNTc5LjQ4NDExOCwgInN0ZXAiOiA2MzIwLCAidmFsdWUiOiAwLjAzNTQ5MTAwNDU4NjIxOTc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1ODcuNjcwMTgzLCAic3RlcCI6IDYzMzAsICJ2YWx1ZSI6IDAuMDMyODIwNTc4NjY0NTQxMjQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1OTcuMjIwNzc3MywgInN0ZXAiOiA2MzQwLCAidmFsdWUiOiAwLjAzNTY4ODY2MTAzODg3NTU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MDYuMjQwOTczLCAic3RlcCI6IDYzNTAsICJ2YWx1ZSI6IDAuMDMxNzY3NzkyOTk5NzQ0NDE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MTUuMDgwNTcwNywgInN0ZXAiOiA2MzYwLCAidmFsdWUiOiAwLjAzNDEzOTY3MDQzMTYxMzkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MjQuODM3MjIxMSwgInN0ZXAiOiA2MzcwLCAidmFsdWUiOiAwLjAzMTA4MjUxNjUzNjExNjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzYzNC42NzU0MDksICJzdGVwIjogNjM4MCwgInZhbHVlIjogMC4wNDExMTQyNzQ0MTIzOTM1N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNjQ2LjUzMTA0NzYsICJzdGVwIjogNjM5MCwgInZhbHVlIjogMC4wMzE1NTMxNTY2NzM5MDgyMzR9LCB7IndhbGxUaW1lIjogMTczMzA3MzY1NS43NDgzMjUsICJzdGVwIjogNjQwMCwgInZhbHVlIjogMC4wMzI2NzEwOTAyMTU0NDQ1NjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzY2NS42MTAwNjIxLCAic3RlcCI6IDY0MTAsICJ2YWx1ZSI6IDAuMDMwODgwNTA3MDgxNzQ3MDU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NzQuNjQ1NTUxNCwgInN0ZXAiOiA2NDIwLCAidmFsdWUiOiAwLjAyOTM5ODQ2NTUyOTA4NDIwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjgzLjY3MzIyODcsICJzdGVwIjogNjQzMCwgInZhbHVlIjogMC4wMzU0Mjk4OTQ5MjQxNjM4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjkyLjg3OTYzNzUsICJzdGVwIjogNjQ0MCwgInZhbHVlIjogMC4wMzI1MjA1NDc1MDkxOTM0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzAyLjUyMjAzNTQsICJzdGVwIjogNjQ1MCwgInZhbHVlIjogMC4wMzE5NjU3Njk4MjczNjU4NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MzcxMi42MzAxNjk5LCAic3RlcCI6IDY0NjAsICJ2YWx1ZSI6IDAuMDMxMjI2OTg1MTU2NTM2MTAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MjQuMDUwNDI1MywgInN0ZXAiOiA2NDcwLCAidmFsdWUiOiAwLjAyNTkxMjcxMTM5NjgxMzM5M30sIHsid2FsbFRpbWUiOiAxNzMzMDczNzMyLjgzMTI1NCwgInN0ZXAiOiA2NDgwLCAidmFsdWUiOiAwLjA0MjAwNjQ0NzkxMTI2MjUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NDEuOTYwODE2OSwgInN0ZXAiOiA2NDkwLCAidmFsdWUiOiAwLjAzODM5NTkwNDAwNDU3MzgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NTAuNzIwMzgwOCwgInN0ZXAiOiA2NTAwLCAidmFsdWUiOiAwLjA1OTMxMTMxOTE0MjU4MDAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NjAuNDkwODY5LCAic3RlcCI6IDY1MTAsICJ2YWx1ZSI6IDAuMDM1NjMyODUyNDY0OTE0MzJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc2OS44NjYxODExLCAic3RlcCI6IDY1MjAsICJ2YWx1ZSI6IDAuMDMwNjIyNzM1NjE5NTQ0OTgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NzkuMTUzMTg2LCAic3RlcCI6IDY1MzAsICJ2YWx1ZSI6IDAuMDMyNzA4NjI5OTY1NzgyMTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3ODkuNDgwNDYxMSwgInN0ZXAiOiA2NTQwLCAidmFsdWUiOiAwLjAzNTg4NjgyNzg1NjMwMjI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3OTguMTA2MTg0LCAic3RlcCI6IDY1NTAsICJ2YWx1ZSI6IDAuMDMyODc0ODQ4NjkzNjA5MjR9LCB7IndhbGxUaW1lIjogMTczMzA3MzgxMC41NTU4MjEsICJzdGVwIjogNjU2MCwgInZhbHVlIjogMC4wNDg3MTg3OTUxODAzMjA3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODIwLjAzOTM5NTYsICJzdGVwIjogNjU3MCwgInZhbHVlIjogMC4wNDI4Nzc1NTExNjgyMDMzNTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzgyOC4yNDE1NCwgInN0ZXAiOiA2NTgwLCAidmFsdWUiOiAwLjAzMjE4MzE4NTIxOTc2NDcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MzYuODAxMTI2NSwgInN0ZXAiOiA2NTkwLCAidmFsdWUiOiAwLjAyODMxMDE0NjE4Mjc3NTQ5N30sIHsid2FsbFRpbWUiOiAxNzMzMDczODQ1Ljk5MDU0MDMsICJzdGVwIjogNjYwMCwgInZhbHVlIjogMC4wMzQ1NDEzMzEyMzE1OTQwODZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg1NS4yNTUwMzY4LCAic3RlcCI6IDY2MTAsICJ2YWx1ZSI6IDAuMDMzNTc0OTEyNjk3MDc2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODY0LjY5NjUxNDEsICJzdGVwIjogNjYyMCwgInZhbHVlIjogMC4wMzA3NzYwMDMzNzU2NDk0NTJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg3My44Mzc0MjA1LCAic3RlcCI6IDY2MzAsICJ2YWx1ZSI6IDAuMDI3MzYyMTQ5MjA4Nzg0MTAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4ODcuNTI3NTkwNSwgInN0ZXAiOiA2NjQwLCAidmFsdWUiOiAwLjAzNDMyOTMxMDA1OTU0NzQyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODk3LjMzNzE0OTYsICJzdGVwIjogNjY1MCwgInZhbHVlIjogMC4wMzU0MDMxODQ1OTI3MjM4NDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzkwNi44Nzk3MzgzLCAic3RlcCI6IDY2NjAsICJ2YWx1ZSI6IDAuMDQ1NTAwMzY0MTU0NTc3MjU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5MTYuMzUzMTkzLCAic3RlcCI6IDY2NzAsICJ2YWx1ZSI6IDAuMDM1OTY5NTY2NTUzODMxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTI1LjYyMTc3NDIsICJzdGVwIjogNjY4MCwgInZhbHVlIjogMC4wMjkyMzAzODYwMTg3NTMwNTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzkzNC45MTk5MTU0LCAic3RlcCI6IDY2OTAsICJ2YWx1ZSI6IDAuMDM0MDIzMjgxMTg2ODE5MDh9LCB7IndhbGxUaW1lIjogMTczMzA3Mzk0My43NDU1NDgyLCAic3RlcCI6IDY3MDAsICJ2YWx1ZSI6IDAuMDQ0OTMyOTYxNDYzOTI4MjJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mzk1Mi40ODAwODksICJzdGVwIjogNjcxMCwgInZhbHVlIjogMC4wNDQwMTEyODczOTExODU3Nn1dfX1d", + "ok": true, + "headers": [ + [ + "content-length", + "15045" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Loss/loss_bbox_dn_4%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIkxvc3MvbG9zc19iYm94X2RuXzQiLCAicnVuVG9TZXJpZXMiOiB7Ii4iOiBbeyJ3YWxsVGltZSI6IDE3MzMwNjc2MzEuNTQxMDQ4MywgInN0ZXAiOiAwLCAidmFsdWUiOiAwLjA1NDM2MTU3NDM1MTc4NzU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NDYuNjU0Mzg2MywgInN0ZXAiOiAxMCwgInZhbHVlIjogMC4wNTM0OTIwNDMxNjczNTI2NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzY2MC43ODY0NTI1LCAic3RlcCI6IDIwLCAidmFsdWUiOiAwLjA0NTQ2MTUwOTM3Njc2NDN9LCB7IndhbGxUaW1lIjogMTczMzA2NzY3NC4xMzk3MTU0LCAic3RlcCI6IDMwLCAidmFsdWUiOiAwLjA1MTE2OTA1MjcyMDA2OTg4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njg3LjA1OTM1NTUsICJzdGVwIjogNDAsICJ2YWx1ZSI6IDAuMDY1NDU5MTE3MjkzMzU3ODV9LCB7IndhbGxUaW1lIjogMTczMzA2NzY5OS40OTU0MjQ3LCAic3RlcCI6IDUwLCAidmFsdWUiOiAwLjEwMDU4NjU3ODI0OTkzMTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MTAuNjMxNjAzNywgInN0ZXAiOiA2MCwgInZhbHVlIjogMC4wODc2ODEzMzgxOTEwMzI0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzIyLjc1Nzc3NDQsICJzdGVwIjogNzAsICJ2YWx1ZSI6IDAuMDM0NjA2MjU1NTkwOTE1Njh9LCB7IndhbGxUaW1lIjogMTczMzA2NzczMy43Mjc1Nzg5LCAic3RlcCI6IDgwLCAidmFsdWUiOiAwLjEyNDI3ODY0OTY4Nzc2NzAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NTAuOTQ4NDkzLCAic3RlcCI6IDkwLCAidmFsdWUiOiAwLjA0NDE2NjYxNzA5NTQ3MDQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NjEuOTgzMTYxNCwgInN0ZXAiOiAxMDAsICJ2YWx1ZSI6IDAuMDY2MDA2NTcxMDU0NDU4NjJ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc3MS42MDg1NzI3LCAic3RlcCI6IDExMCwgInZhbHVlIjogMC4wNzA5ODg4OTM1MDg5MTExM30sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzgwLjU0OTU3OTksICJzdGVwIjogMTIwLCAidmFsdWUiOiAwLjEyNjY0MTc1MDMzNTY5MzM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3OTAuNDg3NjgyOCwgInN0ZXAiOiAxMzAsICJ2YWx1ZSI6IDAuMDUxNTg0NDgyMTkyOTkzMTY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3OTkuMTA3ODAyOSwgInN0ZXAiOiAxNDAsICJ2YWx1ZSI6IDAuMDg3MTY4NjcxMTkwNzM4Njh9LCB7IndhbGxUaW1lIjogMTczMzA2NzgwOS40NDc1MDIxLCAic3RlcCI6IDE1MCwgInZhbHVlIjogMC4xMzk1MDUxNzc3MzYyODIzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODE4LjkyMjg5NTIsICJzdGVwIjogMTYwLCAidmFsdWUiOiAwLjA2MTk2NjczOTU5NDkzNjM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MzYuNjUxODA1NiwgInN0ZXAiOiAxNzAsICJ2YWx1ZSI6IDAuMDY2NTk5NzExNzc1Nzc5NzJ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg0Ni4zOTI3MDU0LCAic3RlcCI6IDE4MCwgInZhbHVlIjogMC4wNzg0MjQ5NzUyNzU5OTMzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODU1LjY2OTIyMDQsICJzdGVwIjogMTkwLCAidmFsdWUiOiAwLjA3Njc1MTk5MjEwNjQzNzY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4NjQuODkzNDkwOCwgInN0ZXAiOiAyMDAsICJ2YWx1ZSI6IDAuMDc5NTQ3MDg0ODY3OTU0MjV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg3NC4wMDQxNDQsICJzdGVwIjogMjEwLCAidmFsdWUiOiAwLjA2NDYyMzI1MTU1NzM1MDE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4ODMuNzg5NzU5MiwgInN0ZXAiOiAyMjAsICJ2YWx1ZSI6IDAuMDYyODEzMDU4NDk1NTIxNTV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg5Mi4xMjUzMzU3LCAic3RlcCI6IDIzMCwgInZhbHVlIjogMC4wNTcxODQwOTI3MDA0ODE0MTV9LCB7IndhbGxUaW1lIjogMTczMzA2NzkwMS4wNzE1MzIsICJzdGVwIjogMjQwLCAidmFsdWUiOiAwLjEwMTgzODE0OTEzMDM0NDM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MTAuMDc3MTAwOCwgInN0ZXAiOiAyNTAsICJ2YWx1ZSI6IDAuMDgzNTk4NTMxNzgyNjI3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTI1Ljk1MjI4MDMsICJzdGVwIjogMjYwLCAidmFsdWUiOiAwLjA2Mjc3OTA2ODk0NjgzODM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MzUuNDc3ODU1NCwgInN0ZXAiOiAyNzAsICJ2YWx1ZSI6IDAuMDUxNDAxNDgxMDMyMzcxNTJ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk0NC4wMTkyODM4LCAic3RlcCI6IDI4MCwgInZhbHVlIjogMC4wNTM1MDIwNjc5MjM1NDU4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTUyLjU1MDQwNDgsICJzdGVwIjogMjkwLCAidmFsdWUiOiAwLjEyMTM4MzU0Nzc4Mjg5Nzk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NjEuMDI5MDA0MywgInN0ZXAiOiAzMDAsICJ2YWx1ZSI6IDAuMTA4NDMyMjMzMzMzNTg3NjV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk3MC4xMzY4MTA1LCAic3RlcCI6IDMxMCwgInZhbHVlIjogMC4wODc3NzQ2MTIwMDk1MjUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5ODAuMjI4MDUyNCwgInN0ZXAiOiAzMjAsICJ2YWx1ZSI6IDAuMDYwMjc2NDYzNjI3ODE1MjV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk4OC44MTgyMzU2LCAic3RlcCI6IDMzMCwgInZhbHVlIjogMC4wNjc5MzIyMTgzMTMyMTcxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDA1LjA5Mjg4MTQsICJzdGVwIjogMzQwLCAidmFsdWUiOiAwLjA2MzI0MTkzNjI2NjQyMjI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMTQuMDY3NDY4NiwgInN0ZXAiOiAzNTAsICJ2YWx1ZSI6IDAuMDI5MzM0NzI3Njc0NzIyNjd9LCB7IndhbGxUaW1lIjogMTczMzA2ODAyMi41NTUyOTE0LCAic3RlcCI6IDM2MCwgInZhbHVlIjogMC4wNTk2NDM4NDIyNzk5MTEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDMxLjgyNjk2MjUsICJzdGVwIjogMzcwLCAidmFsdWUiOiAwLjA2MzE1MjczNzkxNTUxNTl9LCB7IndhbGxUaW1lIjogMTczMzA2ODA0MC43OTAxMDMsICJzdGVwIjogMzgwLCAidmFsdWUiOiAwLjA1NDM3Nzc0MjExMTY4Mjg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNTAuMTYyNTQ2OSwgInN0ZXAiOiAzOTAsICJ2YWx1ZSI6IDAuMDk4OTg5ODI5NDIxMDQzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDU5LjEyODQwMSwgInN0ZXAiOiA0MDAsICJ2YWx1ZSI6IDAuMTA0OTM5MzQxNTQ1MTA0OTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODA2OC4wOTIzNzk4LCAic3RlcCI6IDQxMCwgInZhbHVlIjogMC4xMTAzMTE2NDIyODkxNjE2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDg0Ljg0NjY2MDYsICJzdGVwIjogNDIwLCAidmFsdWUiOiAwLjA3OTgyNDUzNzAzODgwMzF9LCB7IndhbGxUaW1lIjogMTczMzA2ODA5NC42NjkwMDU2LCAic3RlcCI6IDQzMCwgInZhbHVlIjogMC4wNDQ1MzkzOTk0NDUwNTY5MTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODEwMy43MTA0OTQ1LCAic3RlcCI6IDQ0MCwgInZhbHVlIjogMC4wNTM5MzcyMDQxODIxNDc5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTEyLjcwMTkwOTUsICJzdGVwIjogNDUwLCAidmFsdWUiOiAwLjA1NjAxNTYwMzI0NDMwNDY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMjEuNTAzNDg2LCAic3RlcCI6IDQ2MCwgInZhbHVlIjogMC4wNDYzODY4MDA3MDYzODY1NjZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODEzMC43MzAxODcsICJzdGVwIjogNDcwLCAidmFsdWUiOiAwLjA2OTIzNDc3MzUxNjY1NDk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMzkuODU4MTUxLCAic3RlcCI6IDQ4MCwgInZhbHVlIjogMC4wNjExNjkwNzI5ODU2NDkxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTQ5LjM3MjQyOTYsICJzdGVwIjogNDkwLCAidmFsdWUiOiAwLjA3MjI4MDg4Mzc4OTA2MjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODE1OC4wNzI0NTIsICJzdGVwIjogNTAwLCAidmFsdWUiOiAwLjA3MjU0MTg4NTA3Nzk1MzM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxNzQuMTE3NzAzMiwgInN0ZXAiOiA1MTAsICJ2YWx1ZSI6IDAuMDg2MjU4NjQ5ODI2MDQ5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTgyLjcyMjE2NywgInN0ZXAiOiA1MjAsICJ2YWx1ZSI6IDAuMDQ3NjY1NjEwOTA5NDYxOTc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxOTIuNDE2MjY3OSwgInN0ZXAiOiA1MzAsICJ2YWx1ZSI6IDAuMDgwOTE3ODQyNjg2MTc2M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjAxLjgzMzM5MzMsICJzdGVwIjogNTQwLCAidmFsdWUiOiAwLjA3MzAzMjM2NDI0OTIyOTQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMTAuNjU3MTU3NCwgInN0ZXAiOiA1NTAsICJ2YWx1ZSI6IDAuMDcyNDYzODMyNzk1NjE5OTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODIyMC4xOTc3MDY3LCAic3RlcCI6IDU2MCwgInZhbHVlIjogMC4wNzM2MzY4OTY5MDgyODMyM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjI5LjE2MjAyNjQsICJzdGVwIjogNTcwLCAidmFsdWUiOiAwLjA3ODU2NzUyNzIzNDU1NDI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMzguNTk0MTcyNywgInN0ZXAiOiA1ODAsICJ2YWx1ZSI6IDAuMDY5NTg3ODE5Mjc4MjQwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjU2LjA3NzkxLCAic3RlcCI6IDU5MCwgInZhbHVlIjogMC4wNTIyMjE1MDY4MzQwMzAxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjY1LjQzNDU0NjIsICJzdGVwIjogNjAwLCAidmFsdWUiOiAwLjEyMTg5OTYzNDU5OTY4NTY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNzQuNjU5MTE5LCAic3RlcCI6IDYxMCwgInZhbHVlIjogMC4wNTM0MDQyNzE2MDI2MzA2MTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODI4My43NzI3MzM0LCAic3RlcCI6IDYyMCwgInZhbHVlIjogMC4wNTc4MDE5MzIwOTY0ODEzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjkzLjMzNjg2MywgInN0ZXAiOiA2MzAsICJ2YWx1ZSI6IDAuMDU4NDU2MjQ5NTM1MDgzNzd9LCB7IndhbGxUaW1lIjogMTczMzA2ODMwMi42NDk4NjgsICJzdGVwIjogNjQwLCAidmFsdWUiOiAwLjA3NDQ2MjgxNjExOTE5NDAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMTEuMzkwODY1OCwgInN0ZXAiOiA2NTAsICJ2YWx1ZSI6IDAuMDU2OTQ2MTMyMzMyMDg2NTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODMyMC4zOTI4Njc4LCAic3RlcCI6IDY2MCwgInZhbHVlIjogMC4wNzI1MDE5MTI3MTMwNTA4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzI4LjczNDIwNjcsICJzdGVwIjogNjcwLCAidmFsdWUiOiAwLjA3MTgxOTE4NjIxMDYzMjMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNDQuNDYzOTY1NywgInN0ZXAiOiA2ODAsICJ2YWx1ZSI6IDAuMDgwMDYwMzkyNjE4MTc5MzJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODM1My43MTk1OTczLCAic3RlcCI6IDY5MCwgInZhbHVlIjogMC4wNTAzMjYxNzU5ODc3MjA0OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzYyLjA2MDUxNSwgInN0ZXAiOiA3MDAsICJ2YWx1ZSI6IDAuMDgwNjkzOTMwMzg3NDk2OTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODM3MS4xMDY3NDA1LCAic3RlcCI6IDcxMCwgInZhbHVlIjogMC4wNDI2OTgzNjQ3MDQ4NDczMzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODM4MC41MzU4NjM0LCAic3RlcCI6IDcyMCwgInZhbHVlIjogMC4wNzY0ODcxNjEyMTkxMjAwM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzkwLjA4OTI5OTIsICJzdGVwIjogNzMwLCAidmFsdWUiOiAwLjA0MzQxMzMyMjQxODkyODE0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Mzk4LjcyMzY4MzgsICJzdGVwIjogNzQwLCAidmFsdWUiOiAwLjA4NjgxMjA3MTUwMjIwODcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MDcuMTI2NjY4NywgInN0ZXAiOiA3NTAsICJ2YWx1ZSI6IDAuMDU5MTIwMDQ0MTEyMjA1NTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MjMuMDc1Njk5LCAic3RlcCI6IDc2MCwgInZhbHVlIjogMC4wNjQwNzcxNjEyNTI0OTg2M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDMxLjQwODA5OCwgInN0ZXAiOiA3NzAsICJ2YWx1ZSI6IDAuMDc0Njg4NjU4MTE4MjQ3OTl9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ0MC40Mjc3NzczLCAic3RlcCI6IDc4MCwgInZhbHVlIjogMC4wNDUyNjIwNDYxNTgzMTM3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDQ5LjAwOTQwNSwgInN0ZXAiOiA3OTAsICJ2YWx1ZSI6IDAuMDU5NjkwNzU0ODYwNjM5NTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ1Ny42NDIxOTE2LCAic3RlcCI6IDgwMCwgInZhbHVlIjogMC4wNDA5NTY0NTI0ODg4OTkyM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDY3LjA2NjM1OCwgInN0ZXAiOiA4MTAsICJ2YWx1ZSI6IDAuMDU4MTY0MzA1OTg0OTczOTF9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ3NS42MjMyNDU3LCAic3RlcCI6IDgyMCwgInZhbHVlIjogMC4wNTk0OTI3NDQ1MDU0MDU0MjZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ4NC45ODE3NjMxLCAic3RlcCI6IDgzMCwgInZhbHVlIjogMC4wNDY3NDk2MjkwODAyOTU1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTAwLjczNDQ5NDQsICJzdGVwIjogODQwLCAidmFsdWUiOiAwLjA0MTU5NjYwNjM3Mzc4NjkyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTA5LjMxMDY5ODcsICJzdGVwIjogODUwLCAidmFsdWUiOiAwLjA0NDA3NjA4NTA5MDYzNzIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MTkuMDI1Mzc4LCAic3RlcCI6IDg2MCwgInZhbHVlIjogMC4wMzU2MzM2Mzg1MDExNjczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MjcuNTAxNTIzNSwgInN0ZXAiOiA4NzAsICJ2YWx1ZSI6IDAuMDYwODM0ODU0ODQxMjMyM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTM2LjkyMzMwODEsICJzdGVwIjogODgwLCAidmFsdWUiOiAwLjA1NTk0MjIyMjQ3NjAwNTU1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTQ0LjkxMTgxMSwgInN0ZXAiOiA4OTAsICJ2YWx1ZSI6IDAuMDQ5ODYzNzc0MzI5NDIzOTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NTMuNTgyMTc2LCAic3RlcCI6IDkwMCwgInZhbHVlIjogMC4wNTk1NTUzMzY4MzMwMDAxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTYyLjY4OTAzMzMsICJzdGVwIjogOTEwLCAidmFsdWUiOiAwLjA2OTMwMDgyMjkxMzY0Njd9LCB7IndhbGxUaW1lIjogMTczMzA2ODU3MS4yNDk0MTE2LCAic3RlcCI6IDkyMCwgInZhbHVlIjogMC4wNTI2MzM1MDkwMzk4Nzg4NDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODU4NC43Nzk1MDg4LCAic3RlcCI6IDkzMCwgInZhbHVlIjogMC4wMzk3ODE3MTk0NDYxODIyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTkzLjc3NjQyMDYsICJzdGVwIjogOTQwLCAidmFsdWUiOiAwLjA2MTc1MjUyMDUwMTYxMzYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MDIuNzcwMDAzMywgInN0ZXAiOiA5NTAsICJ2YWx1ZSI6IDAuMDI2MTI0MDQ3MTE1NDQ1MTM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MTEuMDQ0MDA0MiwgInN0ZXAiOiA5NjAsICJ2YWx1ZSI6IDAuMDY5MTg3NDQ3NDI4NzAzMzF9LCB7IndhbGxUaW1lIjogMTczMzA2ODYyMC4yMzA2ODIsICJzdGVwIjogOTcwLCAidmFsdWUiOiAwLjA1MTcyMzcxMTE5MjYwNzg4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MjguODQ1ODcxNywgInN0ZXAiOiA5ODAsICJ2YWx1ZSI6IDAuMDQ3MjI2Mjg3NDI0NTY0MzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODYzNy42MzQ1NTA2LCAic3RlcCI6IDk5MCwgInZhbHVlIjogMC4wMzc1OTkwNzkzMTA4OTQwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjQ2LjY3NzIzMzIsICJzdGVwIjogMTAwMCwgInZhbHVlIjogMC4wNjQ3NDY3MDAyMjcyNjA1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjYyLjc2MTQwMDUsICJzdGVwIjogMTAxMCwgInZhbHVlIjogMC4wNTM1Mjg2MTgwNjc1MDI5NzV9LCB7IndhbGxUaW1lIjogMTczMzA2ODY3Mi4wNTg3NzY0LCAic3RlcCI6IDEwMjAsICJ2YWx1ZSI6IDAuMDUwNjU1Mzg3MzQxOTc2MTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2ODAuNTY3NDYyLCAic3RlcCI6IDEwMzAsICJ2YWx1ZSI6IDAuMDY1OTkxODE4OTA0ODc2NzF9LCB7IndhbGxUaW1lIjogMTczMzA2ODY5MC4xOTAzNTIsICJzdGVwIjogMTA0MCwgInZhbHVlIjogMC4wMzkwMDk0NzQyMTc4OTE2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Njk4Ljg1MjcxMTcsICJzdGVwIjogMTA1MCwgInZhbHVlIjogMC4wNjI5MTc3NzY0MDU4MTEzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzA3Ljc0NzgyMywgInN0ZXAiOiAxMDYwLCAidmFsdWUiOiAwLjA0MjgwMjcwNjM2MDgxNjk1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzE3LjM0OTAxOCwgInN0ZXAiOiAxMDcwLCAidmFsdWUiOiAwLjA0MzU0MjQyOTgwNDgwMTk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MjYuMzY1NzIyMiwgInN0ZXAiOiAxMDgwLCAidmFsdWUiOiAwLjAzMjg2Njg2OTEyMTc4OTkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MzUuMjU2MTA2NiwgInN0ZXAiOiAxMDkwLCAidmFsdWUiOiAwLjA0Mzg0MzMzMjY3ODA3OTYwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzQ5LjU1MjQ0NDUsICJzdGVwIjogMTEwMCwgInZhbHVlIjogMC4wMzI5NzIwNzUwNDUxMDg3OTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODc1OC4zNzk3NzE3LCAic3RlcCI6IDExMTAsICJ2YWx1ZSI6IDAuMDU0NjMxNTc1OTQyMDM5NDl9LCB7IndhbGxUaW1lIjogMTczMzA2ODc2Ny4wMDgzMTA2LCAic3RlcCI6IDExMjAsICJ2YWx1ZSI6IDAuMDU5ODMyODk3MDM3MjY3Njg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3NzYuNjIzMzA0NiwgInN0ZXAiOiAxMTMwLCAidmFsdWUiOiAwLjA1MDQyMzAyOTgxMDE5MDJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODc4NS40MDU4OTQsICJzdGVwIjogMTE0MCwgInZhbHVlIjogMC4wNjM4NTQwOTgzMjAwMDczMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Nzk0LjI4MzU2MDgsICJzdGVwIjogMTE1MCwgInZhbHVlIjogMC4wNjcyNzE2NDk4Mzc0OTM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MDIuNzAxNzc5LCAic3RlcCI6IDExNjAsICJ2YWx1ZSI6IDAuMDY4ODQ1MzgzODIyOTE3OTR9LCB7IndhbGxUaW1lIjogMTczMzA2ODgxMS41NTY0NjY2LCAic3RlcCI6IDExNzAsICJ2YWx1ZSI6IDAuMDU0ODYzOTc0NDUyMDE4NzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODgyNC45NzAxOTE1LCAic3RlcCI6IDExODAsICJ2YWx1ZSI6IDAuMDQ5MjQ4ODI5NDgzOTg1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODM0LjM4MTY1OTUsICJzdGVwIjogMTE5MCwgInZhbHVlIjogMC4wNDQ2NDc4ODM2MjM4Mzg0MjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODg0My41MjA1NjgxLCAic3RlcCI6IDEyMDAsICJ2YWx1ZSI6IDAuMDUxNDM3NDI2MzU4NDYxMzh9LCB7IndhbGxUaW1lIjogMTczMzA2ODg1Mi4yMzI5ODM2LCAic3RlcCI6IDEyMTAsICJ2YWx1ZSI6IDAuMDQwNTUyMjk5NDY5NzA5Mzk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NjEuMTIxMzM1LCAic3RlcCI6IDEyMjAsICJ2YWx1ZSI6IDAuMDQwNjgwNDE1OTI4MzYzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODcwLjA2MDI3MzIsICJzdGVwIjogMTIzMCwgInZhbHVlIjogMC4wNjQ0ODgwOTA1NzQ3NDEzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODc4LjcyNDc1MSwgInN0ZXAiOiAxMjQwLCAidmFsdWUiOiAwLjA2ODY3MjkxNzc4MzI2MDM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4ODcuNzQyNTMwOCwgInN0ZXAiOiAxMjUwLCAidmFsdWUiOiAwLjAzODI5OTMxNDY3NzcxNTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODkwMy4xNzEyNTI1LCAic3RlcCI6IDEyNjAsICJ2YWx1ZSI6IDAuMDM2NjgwODU0ODU2OTY3OTI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MTIuNDIxODU5NywgInN0ZXAiOiAxMjcwLCAidmFsdWUiOiAwLjA1MTkyODg4NTI4MTA4NTk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MjEuNDc5NjAyNiwgInN0ZXAiOiAxMjgwLCAidmFsdWUiOiAwLjA2NTQ4ODU2MTk4Nzg3Njg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MjkuNzUxMDgzOSwgInN0ZXAiOiAxMjkwLCAidmFsdWUiOiAwLjA0NjI1NjYwMTgxMDQ1NTMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MzkuNTA1ODI5MywgInN0ZXAiOiAxMzAwLCAidmFsdWUiOiAwLjA0MTU5OTk4ODkzNzM3NzkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NDguOTMyNDQ5OCwgInN0ZXAiOiAxMzEwLCAidmFsdWUiOiAwLjAzMjE1MjU2MzMzMzUxMTM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NTcuMjM4ODEsICJzdGVwIjogMTMyMCwgInZhbHVlIjogMC4wNjEwNDAxMTQ2MTEzODcyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTY2LjA4MTM4NzUsICJzdGVwIjogMTMzMCwgInZhbHVlIjogMC4wNTc5NzA0MzA3MDE5NzEwNTR9LCB7IndhbGxUaW1lIjogMTczMzA2ODk3NS41Njk2Njk1LCAic3RlcCI6IDEzNDAsICJ2YWx1ZSI6IDAuMDU3OTE3OTQ1MDg2OTU2MDI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5ODkuODA0NTI2NiwgInN0ZXAiOiAxMzUwLCAidmFsdWUiOiAwLjAzMDM0NTA2MTc5MzkyMzM3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTk4LjI4ODEzMiwgInN0ZXAiOiAxMzYwLCAidmFsdWUiOiAwLjAyODg1MjU1NTkwMDgxMjE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwMDcuMTU1NTcxNywgInN0ZXAiOiAxMzcwLCAidmFsdWUiOiAwLjAzOTAyMTY2MzM2Nzc0ODI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwMTUuOTI3NjA3LCAic3RlcCI6IDEzODAsICJ2YWx1ZSI6IDAuMDM2NDMwNDUyMDE4OTc2MjF9LCB7IndhbGxUaW1lIjogMTczMzA2OTAyNS4zMDc2Njc1LCAic3RlcCI6IDEzOTAsICJ2YWx1ZSI6IDAuMDQ3MTQ3ODI1MzYwMjk4MTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTAzNC40ODU4OTg1LCAic3RlcCI6IDE0MDAsICJ2YWx1ZSI6IDAuMDU1OTI5NzgwMDA2NDA4Njl9LCB7IndhbGxUaW1lIjogMTczMzA2OTA0Mi43OTc0MjAzLCAic3RlcCI6IDE0MTAsICJ2YWx1ZSI6IDAuMDU5OTYzMjQ0OTQ0ODEwODd9LCB7IndhbGxUaW1lIjogMTczMzA2OTA1Mi4xNDE5OTMsICJzdGVwIjogMTQyMCwgInZhbHVlIjogMC4wNDI3MjM5NzIzNTAzNTg5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDY1LjAwNjA5NTQsICJzdGVwIjogMTQzMCwgInZhbHVlIjogMC4wNDQwMTUyMzk5MjQxOTI0M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDc0LjUyODMyMjIsICJzdGVwIjogMTQ0MCwgInZhbHVlIjogMC4wNDc0NjAwNTMxMTYwODMxNDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTA4My43ODY5MzE1LCAic3RlcCI6IDE0NTAsICJ2YWx1ZSI6IDAuMDQ5NDQ5MzUwNjg0ODgxMjF9LCB7IndhbGxUaW1lIjogMTczMzA2OTA5Mi4yNjM0ODQ3LCAic3RlcCI6IDE0NjAsICJ2YWx1ZSI6IDAuMDU2MTczOTU3ODg0MzExNjc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMDEuMDM0Mjc5NiwgInN0ZXAiOiAxNDcwLCAidmFsdWUiOiAwLjA1Mzc3NzQ1MjU1ODI3OTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMDkuOTEwMTEwNSwgInN0ZXAiOiAxNDgwLCAidmFsdWUiOiAwLjA2MzM4NzY4NDUyNDA1OTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTExOS4xMjIxMjc4LCAic3RlcCI6IDE0OTAsICJ2YWx1ZSI6IDAuMDQzODkzMjI5MjE2MzM3MjA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMjguNDE5NDAzNiwgInN0ZXAiOiAxNTAwLCAidmFsdWUiOiAwLjA1MTYzNTQ5NjMxODM0MDN9LCB7IndhbGxUaW1lIjogMTczMzA2OTEzNy42MDk5Mjk4LCAic3RlcCI6IDE1MTAsICJ2YWx1ZSI6IDAuMDU5Mjk4ODc2NjcyOTgzMTd9LCB7IndhbGxUaW1lIjogMTczMzA2OTE1MC41NDY4NDA0LCAic3RlcCI6IDE1MjAsICJ2YWx1ZSI6IDAuMDM0Mjc0NzcxODA5NTc3OTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTE1OS43NjAyODUxLCAic3RlcCI6IDE1MzAsICJ2YWx1ZSI6IDAuMDQ0NzcyNTcyODE1NDE4MjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTE2OC4xNzM5OTQ1LCAic3RlcCI6IDE1NDAsICJ2YWx1ZSI6IDAuMDUzODEzNjI4ODUyMzY3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTc2Ljg0NDIzNDIsICJzdGVwIjogMTU1MCwgInZhbHVlIjogMC4wNTMyNTUwMjE1NzIxMTMwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTg1Ljg5NTQwOTMsICJzdGVwIjogMTU2MCwgInZhbHVlIjogMC4wMzQ4NDQxNzEyNTU4MjY5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTk0LjkyNzUwNjcsICJzdGVwIjogMTU3MCwgInZhbHVlIjogMC4wNjExMzk2NjkyNjkzMjMzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjAzLjkxNzkwOCwgInN0ZXAiOiAxNTgwLCAidmFsdWUiOiAwLjAzMjM1NDAwNDY4MTExMDM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMTIuNzE5NzEyMywgInN0ZXAiOiAxNTkwLCAidmFsdWUiOiAwLjAzODEyMTgzNDM5NzMxNTk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMjUuNTM3Mzc0NSwgInN0ZXAiOiAxNjAwLCAidmFsdWUiOiAwLjAzODExODc5ODI4NTcyMjczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMzUuNDY3MDk2OCwgInN0ZXAiOiAxNjEwLCAidmFsdWUiOiAwLjA0Njg1Nzc2NjgwNzA3OTMxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjQ0LjYzNDAwMTMsICJzdGVwIjogMTYyMCwgInZhbHVlIjogMC4wNDA5Nzc2NjgwMTcxNDg5N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjU0LjI5NjkxOTMsICJzdGVwIjogMTYzMCwgInZhbHVlIjogMC4wNTAyNjA2NDA2ODA3ODk5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjYzLjAwODY3NCwgInN0ZXAiOiAxNjQwLCAidmFsdWUiOiAwLjA0NzE4ODQ1MzM3NjI5MzE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNzEuODY5ODYyOCwgInN0ZXAiOiAxNjUwLCAidmFsdWUiOiAwLjA1NDMyMjcxMjEyMzM5NDAxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyODAuNTEzMTA0NCwgInN0ZXAiOiAxNjYwLCAidmFsdWUiOiAwLjA5NTE2MzIxMTIyNjQ2MzMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyODkuNjgzMDI2LCAic3RlcCI6IDE2NzAsICJ2YWx1ZSI6IDAuMDQ3MDcxNjU4MDc0ODU1ODA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMDMuNjE0MzkwMSwgInN0ZXAiOiAxNjgwLCAidmFsdWUiOiAwLjA1OTc1ODU5NjEyMjI2NDg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMTIuNDgyODc3LCAic3RlcCI6IDE2OTAsICJ2YWx1ZSI6IDAuMDQwODYwMjUwNTkyMjMxNzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTMyMS44NDIxMDIzLCAic3RlcCI6IDE3MDAsICJ2YWx1ZSI6IDAuMDQzNTY1NDk2ODAyMzMwMDJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTMzMC4zNTExMjc0LCAic3RlcCI6IDE3MTAsICJ2YWx1ZSI6IDAuMDQ0NjYzMjU0MTcxNjA5ODh9LCB7IndhbGxUaW1lIjogMTczMzA2OTMzOS4yNDg3NDk1LCAic3RlcCI6IDE3MjAsICJ2YWx1ZSI6IDAuMDM2MzA2ODYxNzg4MDM0NDR9LCB7IndhbGxUaW1lIjogMTczMzA2OTM0Ni44NjI0NDE4LCAic3RlcCI6IDE3MzAsICJ2YWx1ZSI6IDAuMDc1NjE4NzY2MjQ4MjI2MTd9LCB7IndhbGxUaW1lIjogMTczMzA2OTM1NS42NTc3Njg3LCAic3RlcCI6IDE3NDAsICJ2YWx1ZSI6IDAuMDM0NTEzNTAzMzEzMDY0NTc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNjQuNTE1MjI4NSwgInN0ZXAiOiAxNzUwLCAidmFsdWUiOiAwLjA2NTQ0OTc2NjgxNDcwODcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNzMuNzQxODYxLCAic3RlcCI6IDE3NjAsICJ2YWx1ZSI6IDAuMDg3NzA1NzQ2MjkzMDY3OTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTM4Ny41NDQzNDUsICJzdGVwIjogMTc3MCwgInZhbHVlIjogMC4wNDgzMjgyMzIwMjAxMzk2OTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTM5Ni40NzI0ODM0LCAic3RlcCI6IDE3ODAsICJ2YWx1ZSI6IDAuMDY2NDEwNzIwMzQ4MzU4MTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTQwNS45OTk0ODQ4LCAic3RlcCI6IDE3OTAsICJ2YWx1ZSI6IDAuMDQ5Mzc1NDAzNjcyNDU2NzR9LCB7IndhbGxUaW1lIjogMTczMzA2OTQxNS4wNTcwNDUsICJzdGVwIjogMTgwMCwgInZhbHVlIjogMC4wNDI2NjM1MTQ2MTQxMDUyMjV9LCB7IndhbGxUaW1lIjogMTczMzA2OTQyMy45MTA2NjksICJzdGVwIjogMTgxMCwgInZhbHVlIjogMC4wNDI0NzQxMzU3NTY0OTI2MTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTQzMi41MzQzNjEsICJzdGVwIjogMTgyMCwgInZhbHVlIjogMC4wNTA0NjgwMTY0MTU4MzQ0M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDQxLjIyMjgwNDMsICJzdGVwIjogMTgzMCwgInZhbHVlIjogMC4wNDA2ODI4MTEyOTAwMjU3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDUwLjA5MzQzNDMsICJzdGVwIjogMTg0MCwgInZhbHVlIjogMC4wMzQzMzYyNTAyNzUzNzM0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDYzLjExMDM2MDEsICJzdGVwIjogMTg1MCwgInZhbHVlIjogMC4wMzYzNzMzOTE3NDc0NzQ2N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDcxLjU3NTg1NjQsICJzdGVwIjogMTg2MCwgInZhbHVlIjogMC4wMzEyNzkyODgyMzIzMjY1MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDgwLjUwMTA2MzYsICJzdGVwIjogMTg3MCwgInZhbHVlIjogMC4wNzIzOTU3NDE5Mzk1NDQ2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDg5LjM4Nzc1NzMsICJzdGVwIjogMTg4MCwgInZhbHVlIjogMC4wNDYxNzQwNDE5MjY4NjA4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDk3Ljk3OTU0MiwgInN0ZXAiOiAxODkwLCAidmFsdWUiOiAwLjA1NTk0MDIxMDgxOTI0NDM4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTA2LjgxNzY3MSwgInN0ZXAiOiAxOTAwLCAidmFsdWUiOiAwLjAzMjQyNTI1NDU4MzM1ODc2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTE1LjgyNzQzNTMsICJzdGVwIjogMTkxMCwgInZhbHVlIjogMC4wNTAwOTc2MzY4Nzg0OTA0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTI0LjYzOTMyLCAic3RlcCI6IDE5MjAsICJ2YWx1ZSI6IDAuMDM1NDk3MDg0MjU5OTg2ODh9LCB7IndhbGxUaW1lIjogMTczMzA2OTUzMy41NDUwOTYsICJzdGVwIjogMTkzMCwgInZhbHVlIjogMC4wNTc1NTY0OTg3OTU3NDc3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTUwLjQ4MDczNzcsICJzdGVwIjogMTk0MCwgInZhbHVlIjogMC4wMjQwNzM4OTg3OTIyNjY4NDZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTU1OC44MzA3ODUzLCAic3RlcCI6IDE5NTAsICJ2YWx1ZSI6IDAuMDU4OTcyODMxODE1NDgxMTg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NjcuNzYwNjA5OSwgInN0ZXAiOiAxOTYwLCAidmFsdWUiOiAwLjAzOTU1MTEwMTYyNDk2NTY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NzYuMzQ3OTM3LCAic3RlcCI6IDE5NzAsICJ2YWx1ZSI6IDAuMDUwODM4MzY2MTUwODU2MDJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTU4NS41MzE4NjksICJzdGVwIjogMTk4MCwgInZhbHVlIjogMC4wNDg4MjE5NzA4MjA0MjY5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTk0LjM1MzAzNiwgInN0ZXAiOiAxOTkwLCAidmFsdWUiOiAwLjA1MTM0MjM3NTU3NjQ5NjEyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjAyLjQwNDQxNywgInN0ZXAiOiAyMDAwLCAidmFsdWUiOiAwLjA2MDExNDU5MjMxMzc2NjQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MTAuMjUyNjMxLCAic3RlcCI6IDIwMTAsICJ2YWx1ZSI6IDAuMDUyMzQ4NDE2Mjk4NjI3ODV9LCB7IndhbGxUaW1lIjogMTczMzA2OTYyNi42ODk1NDIsICJzdGVwIjogMjAyMCwgInZhbHVlIjogMC4wNDgxMjc2NjIzOTA0NzA1MDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTYzNS4wMzM2MjU2LCAic3RlcCI6IDIwMzAsICJ2YWx1ZSI6IDAuMDM2NzM0MDc0MzU0MTcxNzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTY0My44MjUzNzMsICJzdGVwIjogMjA0MCwgInZhbHVlIjogMC4wNTMwMDY0MjkyMjUyMDYzNzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTY1Mi4xOTcxMjY2LCAic3RlcCI6IDIwNTAsICJ2YWx1ZSI6IDAuMDU2MTk4NzMxMDY0Nzk2NDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTY2MC40NTYyNDcsICJzdGVwIjogMjA2MCwgInZhbHVlIjogMC4wNzY3NTcwMjEyNDgzNDA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NjkuNTk0NzM0MiwgInN0ZXAiOiAyMDcwLCAidmFsdWUiOiAwLjAzNDYxOTA1MTk2MzA5MDl9LCB7IndhbGxUaW1lIjogMTczMzA2OTY3OC43ODExNjEsICJzdGVwIjogMjA4MCwgInZhbHVlIjogMC4wNTE4MTA1OTk4NjM1MjkyMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTY4Ni45NDc1NzI1LCAic3RlcCI6IDIwOTAsICJ2YWx1ZSI6IDAuMDQ5MDg1Njk5MDIxODE2MjU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MDAuNjA0ODUwMywgInN0ZXAiOiAyMTAwLCAidmFsdWUiOiAwLjAzNjAwNjA1MjA0NzAxNDIzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzA4LjcyOTA5ODYsICJzdGVwIjogMjExMCwgInZhbHVlIjogMC4wMzg4ODc2ODcwMjc0NTQzNzZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTcxNy40NTA5OTQsICJzdGVwIjogMjEyMCwgInZhbHVlIjogMC4wNDQyODQyMjQ1MTAxOTI4N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzI2LjE0Mzk5NTMsICJzdGVwIjogMjEzMCwgInZhbHVlIjogMC4wMzE1MDQ5MDY3MTM5NjI1NTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTczNS4wNDA3NTY1LCAic3RlcCI6IDIxNDAsICJ2YWx1ZSI6IDAuMDMyNTU4NTY0MDk2Njg5MjI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NDMuMzA4NzY3OCwgInN0ZXAiOiAyMTUwLCAidmFsdWUiOiAwLjAzOTk2OTQ2MjkwMTM1MzgzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzUyLjUwMzU0ODYsICJzdGVwIjogMjE2MCwgInZhbHVlIjogMC4wNDI5Nzg5OTA4MjMwMzA0N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzYxLjQ1MzY5MzQsICJzdGVwIjogMjE3MCwgInZhbHVlIjogMC4wMzY2MDgzOTA1MTAwODIyNDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTc3MC40MzU4NTksICJzdGVwIjogMjE4MCwgInZhbHVlIjogMC4wNTIxMzk0MDE0MzU4NTIwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Nzg0LjM2NjU1MjgsICJzdGVwIjogMjE5MCwgInZhbHVlIjogMC4wNDMxNDE1ODExMTgxMDY4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzkzLjEyNTE0MzUsICJzdGVwIjogMjIwMCwgInZhbHVlIjogMC4wMzQwOTY1NDI3NDU4Mjg2M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODAxLjYzODg3NDgsICJzdGVwIjogMjIxMCwgInZhbHVlIjogMC4wNTQwOTAxNzIwNTIzODM0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODEwLjYxMDQ4MywgInN0ZXAiOiAyMjIwLCAidmFsdWUiOiAwLjAzOTkwMTk3MTgxNzAxNjZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTgxOS4zNDU2NzgsICJzdGVwIjogMjIzMCwgInZhbHVlIjogMC4wNTgyMDQzOTAxMDg1ODUzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODI3LjMyODY3NzcsICJzdGVwIjogMjI0MCwgInZhbHVlIjogMC4wNDczNjU0OTc3OTc3Mjc1ODV9LCB7IndhbGxUaW1lIjogMTczMzA2OTgzNS44NzA4ODU0LCAic3RlcCI6IDIyNTAsICJ2YWx1ZSI6IDAuMDM0NTk5NTYxMjQ0MjQ5MzQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NDQuMjM4NTQzNSwgInN0ZXAiOiAyMjYwLCAidmFsdWUiOiAwLjA0NzE0Mjk4OTkzMzQ5MDc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NTYuNzUyMTA5LCAic3RlcCI6IDIyNzAsICJ2YWx1ZSI6IDAuMDY1OTM1NTIyMzE3ODg2MzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTg2NS4yNjAxNzgzLCAic3RlcCI6IDIyODAsICJ2YWx1ZSI6IDAuMDU4NTIzMTg5Mjc2NDU2ODN9LCB7IndhbGxUaW1lIjogMTczMzA2OTg3NC4wMDg0NzA1LCAic3RlcCI6IDIyOTAsICJ2YWx1ZSI6IDAuMDQwMzMwMzQ2NjczNzI3MDM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4ODEuNzg0MjMyOSwgInN0ZXAiOiAyMzAwLCAidmFsdWUiOiAwLjA0NjQ3NjcxNDMxMzAzMDI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4OTAuNDE2MzczLCAic3RlcCI6IDIzMTAsICJ2YWx1ZSI6IDAuMDMxNDMzMDA4NjExMjAyMjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTg5OC44NzkyMDYyLCAic3RlcCI6IDIzMjAsICJ2YWx1ZSI6IDAuMDUwMjc0MTQxMTMyODMxNTczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MDguMzIwMTkxOSwgInN0ZXAiOiAyMzMwLCAidmFsdWUiOiAwLjAzNzUxMjk1MDU5OTE5MzU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MTcuNDE3NzMxLCAic3RlcCI6IDIzNDAsICJ2YWx1ZSI6IDAuMDM3MjIwNTc0OTE1NDA5MDl9LCB7IndhbGxUaW1lIjogMTczMzA2OTkyNS44NTMzMTksICJzdGVwIjogMjM1MCwgInZhbHVlIjogMC4wMzg0NjY5Mzc4Mzk5ODQ4OTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTkzOC43MDY5NzM4LCAic3RlcCI6IDIzNjAsICJ2YWx1ZSI6IDAuMDc0NjEwMTk2MDUzOTgxNzh9LCB7IndhbGxUaW1lIjogMTczMzA2OTk0Ny40Mjg2OTI4LCAic3RlcCI6IDIzNzAsICJ2YWx1ZSI6IDAuMDI5ODI5NzEwNzIxOTY5NjA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NTYuMjEwOTAyLCAic3RlcCI6IDIzODAsICJ2YWx1ZSI6IDAuMDQ0NjA0NzI5ODYxMDIxMDR9LCB7IndhbGxUaW1lIjogMTczMzA2OTk2NC4yNzczMjA2LCAic3RlcCI6IDIzOTAsICJ2YWx1ZSI6IDAuMDc0Njg3NzY0MDQ4NTc2MzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTk3My4zMjg1NTksICJzdGVwIjogMjQwMCwgInZhbHVlIjogMC4wMzI0NjQxMDU2MzU4ODE0MjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTk4MS40MzQ1ODU2LCAic3RlcCI6IDI0MTAsICJ2YWx1ZSI6IDAuMDI0MjIyNTgyNTc4NjU5MDU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5OTAuMTQyMjIzNCwgInN0ZXAiOiAyNDIwLCAidmFsdWUiOiAwLjA0NzYwODcwNzEwMDE1Mjk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5OTguODAxNDU0NSwgInN0ZXAiOiAyNDMwLCAidmFsdWUiOiAwLjA0MTY3ODA5NzA5OTA2NTc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMTIuNDU4MjU4NiwgInN0ZXAiOiAyNDQwLCAidmFsdWUiOiAwLjA0MDcyOTQ2MzEwMDQzMzM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMjEuNjAxNDg0OCwgInN0ZXAiOiAyNDUwLCAidmFsdWUiOiAwLjAzNzM3ODA2OTAxMzM1NzE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMzAuMTkzMzU0NiwgInN0ZXAiOiAyNDYwLCAidmFsdWUiOiAwLjAzNjk0MjI4NDU1NDI0MzA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMzkuMjIxNjY1OSwgInN0ZXAiOiAyNDcwLCAidmFsdWUiOiAwLjA0ODczMzU2MjIzMTA2Mzg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNDguMjcxMjkxNywgInN0ZXAiOiAyNDgwLCAidmFsdWUiOiAwLjA0MzQyMTY4OTQyMDkzODQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNTYuMTU4MTMwNCwgInN0ZXAiOiAyNDkwLCAidmFsdWUiOiAwLjAzNTQ5NTg1NDkxNDE4ODM4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDY0LjQ1MzAxMjcsICJzdGVwIjogMjUwMCwgInZhbHVlIjogMC4wMjcxODMwMjYwNzUzNjMxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDcyLjU1NDc0ODgsICJzdGVwIjogMjUxMCwgInZhbHVlIjogMC4wNTY0MjkxMTA0Njc0MzM5M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDg3LjY1OTM2NSwgInN0ZXAiOiAyNTIwLCAidmFsdWUiOiAwLjAzMTE0MTI2ODA4OTQxMzY0M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDk1LjQ0NDA5ODUsICJzdGVwIjogMjUzMCwgInZhbHVlIjogMC4wMjYxNzE0NzkzNzQxNzAzMDN9LCB7IndhbGxUaW1lIjogMTczMzA3MDEwMy43NzEzNDY2LCAic3RlcCI6IDI1NDAsICJ2YWx1ZSI6IDAuMDUzMjAwNjI4NjA4NDY1MTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMTMuMDUxOTQyMywgInN0ZXAiOiAyNTUwLCAidmFsdWUiOiAwLjA0MjczMjM5NTIzMTcyMzc4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTIxLjA0MDE3NzYsICJzdGVwIjogMjU2MCwgInZhbHVlIjogMC4wNTQ0ODkzMTQ1NTYxMjE4MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDEyOS41ODc3ODI5LCAic3RlcCI6IDI1NzAsICJ2YWx1ZSI6IDAuMDM4OTE3NTc1MDMxNTE4OTM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMzguMzYzMjQyLCAic3RlcCI6IDI1ODAsICJ2YWx1ZSI6IDAuMDQwODMzNjQ0NTY4OTIwMTM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNDcuMDg5Njc0MiwgInN0ZXAiOiAyNTkwLCAidmFsdWUiOiAwLjA0NDA0NDIzMzg1ODU4NTM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNTUuNDg5MzIxMiwgInN0ZXAiOiAyNjAwLCAidmFsdWUiOiAwLjAzNjQ4NTQyNjEyNzkxMDYxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTcyLjU3OTY5NDcsICJzdGVwIjogMjYxMCwgInZhbHVlIjogMC4wNDY0Nzk4ODgyNjAzNjQ1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTgxLjIxMzU0MDMsICJzdGVwIjogMjYyMCwgInZhbHVlIjogMC4wMzYxODQ5MDY5NTk1MzM2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTg5LjY5NDg1NjQsICJzdGVwIjogMjYzMCwgInZhbHVlIjogMC4wNDY0NDI3NDMzOTA3OTg1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTk4LjQwMTUzMSwgInN0ZXAiOiAyNjQwLCAidmFsdWUiOiAwLjA1MDU5NDM0MTAwOTg1NTI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMDYuNzA5ODYyMiwgInN0ZXAiOiAyNjUwLCAidmFsdWUiOiAwLjA0MDEwMTk5NzU1NDMwMjIxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjE1LjYwMjMxLCAic3RlcCI6IDI2NjAsICJ2YWx1ZSI6IDAuMDM1ODYxMDQ4ODQ3NDM2OTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMjQuMzE4Njk4NCwgInN0ZXAiOiAyNjcwLCAidmFsdWUiOiAwLjA0MjU4NDk4NTQ5NDYxMzY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMzMuNTQxODA0OCwgInN0ZXAiOiAyNjgwLCAidmFsdWUiOiAwLjA0ODYyMDc3NTM0MTk4NzYxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNDYuNzYwNjA2MywgInN0ZXAiOiAyNjkwLCAidmFsdWUiOiAwLjAzMjM0Njc5OTk2OTY3MzE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNTYuMDMxNTQzNSwgInN0ZXAiOiAyNzAwLCAidmFsdWUiOiAwLjA1NjkyMjA0MDg3OTcyNjQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNjQuOTUzMTA5NywgInN0ZXAiOiAyNzEwLCAidmFsdWUiOiAwLjAzMTg1NzI3NDQ3MjcxMzQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNzMuODI5MzYzLCAic3RlcCI6IDI3MjAsICJ2YWx1ZSI6IDAuMDQ1NDY2NDY0MDEyODYxMjV9LCB7IndhbGxUaW1lIjogMTczMzA3MDI4Mi45NjE0NTQsICJzdGVwIjogMjczMCwgInZhbHVlIjogMC4wNDA4OTg1ODc1NTQ2OTMyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjkyLjI4MDI2MDYsICJzdGVwIjogMjc0MCwgInZhbHVlIjogMC4wMzU0MTM3OTA0OTQyMDM1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzAwLjMzOTE0NDcsICJzdGVwIjogMjc1MCwgInZhbHVlIjogMC4wNTQwNTg5NTAzOTQzOTIwMTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDMwOS40MTQ1NDU4LCAic3RlcCI6IDI3NjAsICJ2YWx1ZSI6IDAuMDQ4MjYzNDgyNzQ5NDYyMTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDMxNy41MzM5Mjg2LCAic3RlcCI6IDI3NzAsICJ2YWx1ZSI6IDAuMDQ0MDAxNjM1MTY0MDIyNDQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMzAuNDM4NjE5MSwgInN0ZXAiOiAyNzgwLCAidmFsdWUiOiAwLjA0MjE0NzE3MDc1MjI4NjkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMzkuODI2MTA0MiwgInN0ZXAiOiAyNzkwLCAidmFsdWUiOiAwLjA0MDg1MTQ3NzUzMzU3ODg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNDcuOTk3NjAwNiwgInN0ZXAiOiAyODAwLCAidmFsdWUiOiAwLjAzNDM1MDIzODc0MDQ0NDE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNTYuODk3Mjc0MywgInN0ZXAiOiAyODEwLCAidmFsdWUiOiAwLjA0MDExMTA3MjM2MTQ2OTI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNjUuNTc5NDQ2MywgInN0ZXAiOiAyODIwLCAidmFsdWUiOiAwLjAzNDI2MTk2Nzk4NjgyMjEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNzQuMzk2MTAzNCwgInN0ZXAiOiAyODMwLCAidmFsdWUiOiAwLjAzMTg4NzAxMzQ2NTE2NjA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzODIuNDI5NDQwNSwgInN0ZXAiOiAyODQwLCAidmFsdWUiOiAwLjA1MjM4MzM3ODE0ODA3ODkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzOTAuOTQzNjg1LCAic3RlcCI6IDI4NTAsICJ2YWx1ZSI6IDAuMDI5NzAzNDMyNjk0MDc3NDkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0MDYuNjgxMTYzLCAic3RlcCI6IDI4NjAsICJ2YWx1ZSI6IDAuMDYyMzAwNDQzNjQ5MjkxOTl9LCB7IndhbGxUaW1lIjogMTczMzA3MDQxNS4wOTI5OTQsICJzdGVwIjogMjg3MCwgInZhbHVlIjogMC4wNTc3NTIwNDMwMDg4MDQzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDIyLjkyMjU1MjMsICJzdGVwIjogMjg4MCwgInZhbHVlIjogMC4wMjk3NDU5OTU5OTgzODI1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDMxLjUzOTkzNTQsICJzdGVwIjogMjg5MCwgInZhbHVlIjogMC4wMzM1NjgzMDAzMDY3OTcwM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDM5Ljk4MzUxMDcsICJzdGVwIjogMjkwMCwgInZhbHVlIjogMC4wMzYxNjQ1ODkyMjYyNDU4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDQ4LjA4Nzk5NSwgInN0ZXAiOiAyOTEwLCAidmFsdWUiOiAwLjA0NzY2OTkxNzM0NTA0N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDU3LjQyNjE0MzYsICJzdGVwIjogMjkyMCwgInZhbHVlIjogMC4wMzI5NjA3ODc0MTU1MDQ0NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ2Ni43MjU0MDU1LCAic3RlcCI6IDI5MzAsICJ2YWx1ZSI6IDAuMDUwOTA4MjMwMjQ1MTEzMzd9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ3OS4zMzUxMTIzLCAic3RlcCI6IDI5NDAsICJ2YWx1ZSI6IDAuMDQyMjEzMzUwNTM0NDM5MDl9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ4OC43ODQ4MDgsICJzdGVwIjogMjk1MCwgInZhbHVlIjogMC4wMjk3MjE3MTgyODE1MDc0OTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ5Ny4yMjczMzQzLCAic3RlcCI6IDI5NjAsICJ2YWx1ZSI6IDAuMDMyMzU1OTMwNjU2MTk0Njl9LCB7IndhbGxUaW1lIjogMTczMzA3MDUwNS42MzYxODg3LCAic3RlcCI6IDI5NzAsICJ2YWx1ZSI6IDAuMDMyMDk3MzYxOTgxODY4NzQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MTMuMzU2MzE1MSwgInN0ZXAiOiAyOTgwLCAidmFsdWUiOiAwLjA1Nzc1OTk0MDYyNDIzNzA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MjIuMzE5ODI3NiwgInN0ZXAiOiAyOTkwLCAidmFsdWUiOiAwLjAzNzY4MzM1NjU1MzMxNjExNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTMwLjIxNDk5NTQsICJzdGVwIjogMzAwMCwgInZhbHVlIjogMC4wNTI4MTAxNjk3NTY0MTI1MDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDUzOC4zMDIzNTk4LCAic3RlcCI6IDMwMTAsICJ2YWx1ZSI6IDAuMDMwNDU5OTI5MjU3NjMxMzAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NDcuNDAyODkwNCwgInN0ZXAiOiAzMDIwLCAidmFsdWUiOiAwLjA0NDMyNTg1ODM1NDU2ODQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NjQuMDUzNTI0NSwgInN0ZXAiOiAzMDMwLCAidmFsdWUiOiAwLjAzODIwMjE0MDQ4MDI3OTkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NzIuMzcyMTgzMywgInN0ZXAiOiAzMDQwLCAidmFsdWUiOiAwLjAyOTg0ODc1ODEzMTI2NTY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1ODAuNjczNjk3NSwgInN0ZXAiOiAzMDUwLCAidmFsdWUiOiAwLjA1MjA4NjQyNzgwNzgwNzkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1ODguNjU1NjAzLCAic3RlcCI6IDMwNjAsICJ2YWx1ZSI6IDAuMDI4OTc1OTMxOTI3NTYxNzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDU5Ny40MjMyNjAyLCAic3RlcCI6IDMwNzAsICJ2YWx1ZSI6IDAuMDMzNjk3MTQ2OTIyMzQ5OTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDYwNi4xMzk3OTIyLCAic3RlcCI6IDMwODAsICJ2YWx1ZSI6IDAuMDYzOTU4MDA0MTE3MDEyMDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDYxNC40NDIzNjY4LCAic3RlcCI6IDMwOTAsICJ2YWx1ZSI6IDAuMDYwMTA3NDA2MjI4NzgwNzQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MjQuMDAyNzk2LCAic3RlcCI6IDMxMDAsICJ2YWx1ZSI6IDAuMDI4MTE5MTU0Mjc0NDYzNjU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MzcuMjU0NDIyLCAic3RlcCI6IDMxMTAsICJ2YWx1ZSI6IDAuMDQ3ODc5NDc5ODI1NDk2Njc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NDUuNjg0NDIwOCwgInN0ZXAiOiAzMTIwLCAidmFsdWUiOiAwLjAzMjM2ODM4NDMwMTY2MjQ0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjU0LjI3MTk5NywgInN0ZXAiOiAzMTMwLCAidmFsdWUiOiAwLjA0NTMzMjY0MDQwOTQ2OTYwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjYzLjMyMjg2MTcsICJzdGVwIjogMzE0MCwgInZhbHVlIjogMC4wMzcxODA2MDYyNzU3OTY4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjcxLjExOTQ1MTMsICJzdGVwIjogMzE1MCwgInZhbHVlIjogMC4wNTcwMjcwODI4OTAyNzIxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjc5Ljc2NzAxMTIsICJzdGVwIjogMzE2MCwgInZhbHVlIjogMC4wMjcwMTc4NjE2MDQ2OTA1NTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDY4Ny44NDcxMzI0LCAic3RlcCI6IDMxNzAsICJ2YWx1ZSI6IDAuMDU2MDk3MTAxNDIwMTY0MTF9LCB7IndhbGxUaW1lIjogMTczMzA3MDY5NS44NTcxOTI1LCAic3RlcCI6IDMxODAsICJ2YWx1ZSI6IDAuMDMwNjI0MDM3NjA4NTA0Mjk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MDQuNjIzOTI4LCAic3RlcCI6IDMxOTAsICJ2YWx1ZSI6IDAuMDM0NDc0ODgzMjI4NTQwNDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDcxNy4xMTAyOTg0LCAic3RlcCI6IDMyMDAsICJ2YWx1ZSI6IDAuMDQ2MTQzNTM5MjQ5ODk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MjYuMTAwMTI4NCwgInN0ZXAiOiAzMjEwLCAidmFsdWUiOiAwLjA0NjMxMDM0NjU3MzU5MTIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MzQuNzgwMzAzLCAic3RlcCI6IDMyMjAsICJ2YWx1ZSI6IDAuMDQyOTQ1MDg2OTU2MDI0MTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDc0NC40MTQwMDUzLCAic3RlcCI6IDMyMzAsICJ2YWx1ZSI6IDAuMDI3OTMzMTIyNTkwMTg0MjF9LCB7IndhbGxUaW1lIjogMTczMzA3MDc1Mi41MDMwNzMyLCAic3RlcCI6IDMyNDAsICJ2YWx1ZSI6IDAuMDM5NjU0Mzc3ODQ3OTA5OTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDc2MS43MjI4MDI0LCAic3RlcCI6IDMyNTAsICJ2YWx1ZSI6IDAuMDI2MzE2MjU5MDU2MzI5NzI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NzAuMzc4MDg1LCAic3RlcCI6IDMyNjAsICJ2YWx1ZSI6IDAuMDI2NTUzNjA2NjE0NDcwNDgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NzkuNzMxMzQ2MSwgInN0ZXAiOiAzMjcwLCAidmFsdWUiOiAwLjAzNDg2ODQwNDI2OTIxODQ0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzkzLjY4MDA4MjgsICJzdGVwIjogMzI4MCwgInZhbHVlIjogMC4wMzQxMTAxNDM3ODA3MDgzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODAxLjkwMTQyOTIsICJzdGVwIjogMzI5MCwgInZhbHVlIjogMC4wMjc0MzgxMjQ2NDE3NzYwODV9LCB7IndhbGxUaW1lIjogMTczMzA3MDgxMC4xNjI1MDYzLCAic3RlcCI6IDMzMDAsICJ2YWx1ZSI6IDAuMDI2NjQzNjM3NTY3NzU4NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDgxOC43MjgwNzQzLCAic3RlcCI6IDMzMTAsICJ2YWx1ZSI6IDAuMDM3NzcwODU2MTcxODQ2Mzl9LCB7IndhbGxUaW1lIjogMTczMzA3MDgyNy4wMTAzMzksICJzdGVwIjogMzMyMCwgInZhbHVlIjogMC4wNDM3NzIyNzI3NjU2MzY0NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDgzNS41Nzc5MzEyLCAic3RlcCI6IDMzMzAsICJ2YWx1ZSI6IDAuMDYzODE4MzgwMjM2NjI1Njd9LCB7IndhbGxUaW1lIjogMTczMzA3MDg0My45NzgxMzA2LCAic3RlcCI6IDMzNDAsICJ2YWx1ZSI6IDAuMDM5MzI3MDMyODY0MDkzNzh9LCB7IndhbGxUaW1lIjogMTczMzA3MDg1My4wOTM1MDE4LCAic3RlcCI6IDMzNTAsICJ2YWx1ZSI6IDAuMDU3NzM0MjQ3Mjk3MDQ4NTd9LCB7IndhbGxUaW1lIjogMTczMzA3MDg2NS40MjEwNjA2LCAic3RlcCI6IDMzNjAsICJ2YWx1ZSI6IDAuMDMwNDQwNzczODE0OTE2NjF9LCB7IndhbGxUaW1lIjogMTczMzA3MDg3My42NjMwNDksICJzdGVwIjogMzM3MCwgInZhbHVlIjogMC4wMzMzMTg1OTAzNzI4MDA4M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwODgzLjMzNzM4NzgsICJzdGVwIjogMzM4MCwgInZhbHVlIjogMC4wMzQ2NjA2Mjk5MjgxMTIwM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwODkyLjM3ODM4NDQsICJzdGVwIjogMzM5MCwgInZhbHVlIjogMC4wMzU1OTU5MDg3NjEwMjQ0NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDkwMC43MjM3NDcsICJzdGVwIjogMzQwMCwgInZhbHVlIjogMC4wNDY0MjY5NzQyMzY5NjUxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTA4LjUwNTU1NCwgInN0ZXAiOiAzNDEwLCAidmFsdWUiOiAwLjAyOTQwNzIxNDM3MzM1MDE0M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTE2LjY1NzE2NDgsICJzdGVwIjogMzQyMCwgInZhbHVlIjogMC4wNDQ0OTQyNDg5MjY2Mzk1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTI1LjIxMzQ5MjIsICJzdGVwIjogMzQzMCwgInZhbHVlIjogMC4wMzQxNTY0MjY3ODczNzY0MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDkzMy44MTE3MDIsICJzdGVwIjogMzQ0MCwgInZhbHVlIjogMC4wMzcxMjQ4OTgyODQ2NzM2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTQ3LjQ4MTI4MzIsICJzdGVwIjogMzQ1MCwgInZhbHVlIjogMC4wMzIyNjA5MjQ1Nzc3MTMwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTU2LjE4OTE3ODcsICJzdGVwIjogMzQ2MCwgInZhbHVlIjogMC4wMzA0Mjc5ODg2MTg2MTIyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTY0LjI2Nzg1OSwgInN0ZXAiOiAzNDcwLCAidmFsdWUiOiAwLjA5MzM3ODUzNjQwMzE3OTE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NzIuMzg3NjcwNSwgInN0ZXAiOiAzNDgwLCAidmFsdWUiOiAwLjA0MDk4MzkyNjUwNDg1MDM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5ODAuNjQ4NTg4NywgInN0ZXAiOiAzNDkwLCAidmFsdWUiOiAwLjA0MTY1Njk0NDkwMDc1MTExNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTg5LjY4OTE4MzcsICJzdGVwIjogMzUwMCwgInZhbHVlIjogMC4wMzQ5ODYzMzU3ODQxOTY4NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDk5Ny43OTAxNjQsICJzdGVwIjogMzUxMCwgInZhbHVlIjogMC4wNTEzMjAyNTEwNzc0MTM1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDA2LjI3MjkxMzIsICJzdGVwIjogMzUyMCwgInZhbHVlIjogMC4wNjM1MTY2MDkzNzA3MDg0N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDE4Ljg5NzY4OCwgInN0ZXAiOiAzNTMwLCAidmFsdWUiOiAwLjA0MTQxODg1Nzg3MjQ4NjExNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDI3LjE5ODg3NTQsICJzdGVwIjogMzU0MCwgInZhbHVlIjogMC4wMjM0NDEzNTk0MDA3NDkyMDd9LCB7IndhbGxUaW1lIjogMTczMzA3MTAzNS4zMjIzODc1LCAic3RlcCI6IDM1NTAsICJ2YWx1ZSI6IDAuMDUwMDcyMjUyNzUwMzk2NzN9LCB7IndhbGxUaW1lIjogMTczMzA3MTA0My43NDczMjQ3LCAic3RlcCI6IDM1NjAsICJ2YWx1ZSI6IDAuMDMyNjAxMjAzNzY5NDQ1NDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTA1MS44NzM4MjI3LCAic3RlcCI6IDM1NzAsICJ2YWx1ZSI6IDAuMDQ2NTczNDM3NzUwMzM5NTF9LCB7IndhbGxUaW1lIjogMTczMzA3MTA2MC40OTc3NDgxLCAic3RlcCI6IDM1ODAsICJ2YWx1ZSI6IDAuMDM5ODEyMTIxNTQwMzA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNjguODgxMTQzNiwgInN0ZXAiOiAzNTkwLCAidmFsdWUiOiAwLjA0NjQxMjQ5MDMwODI4NDc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNzcuNzE0NjYwNiwgInN0ZXAiOiAzNjAwLCAidmFsdWUiOiAwLjAzOTkyMjEwMzI4NTc4OTQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwODYuMjE0MDY3LCAic3RlcCI6IDM2MTAsICJ2YWx1ZSI6IDAuMDM4Mjc1NjA2OTMwMjU1ODl9LCB7IndhbGxUaW1lIjogMTczMzA3MTEwMS42NjA0MTIsICJzdGVwIjogMzYyMCwgInZhbHVlIjogMC4wMzkzMTI5Njk4OTMyMTcwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTA5LjYyNDA3NjQsICJzdGVwIjogMzYzMCwgInZhbHVlIjogMC4wNDc5NzU5Mjc1OTEzMjM4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTE4LjEzMDkwMTYsICJzdGVwIjogMzY0MCwgInZhbHVlIjogMC4wMzUyNTk0MTQ0NjQyMzUzMDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTEyNi45OTQ3OTEsICJzdGVwIjogMzY1MCwgInZhbHVlIjogMC4wMzIyODc1MTE5NzQ1NzMxMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MTEzNS44MjkwMjgsICJzdGVwIjogMzY2MCwgInZhbHVlIjogMC4wNDM3Nzk1ODkyMzU3ODI2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTQ0LjI1MDEzNjksICJzdGVwIjogMzY3MCwgInZhbHVlIjogMC4wMzc2NDUxMTY0NDg0MDI0MDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTE1Mi45NjYxMywgInN0ZXAiOiAzNjgwLCAidmFsdWUiOiAwLjAzMzU4NzY5Nzg5MzM4MTEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNjAuNjA1MDg3MywgInN0ZXAiOiAzNjkwLCAidmFsdWUiOiAwLjAzMzU4MTQ2NTQ4MjcxMTc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNzMuNzUyMDI1MSwgInN0ZXAiOiAzNzAwLCAidmFsdWUiOiAwLjAzNzE4MjU2OTUwMzc4NDE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExODIuODg0OTMyLCAic3RlcCI6IDM3MTAsICJ2YWx1ZSI6IDAuMDMwMDc1Njg3OTE1MDg2NzQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExOTEuMjExOTEwMiwgInN0ZXAiOiAzNzIwLCAidmFsdWUiOiAwLjA1ODYwNjA3MzI2MDMwNzMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMDAuMzM1MDkzLCAic3RlcCI6IDM3MzAsICJ2YWx1ZSI6IDAuMDI0MzIzNjY0NjA1NjE3NTIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMDguMzY3Mzk1OSwgInN0ZXAiOiAzNzQwLCAidmFsdWUiOiAwLjAyNjY3Njg1OTcwNjY0MDI0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjE2LjU3MzY2NjYsICJzdGVwIjogMzc1MCwgInZhbHVlIjogMC4wNTM5ODQ4NzY3MjIwOTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMjQuNjYzNTEwMywgInN0ZXAiOiAzNzYwLCAidmFsdWUiOiAwLjAyNjIwNjc3Mjc3NDQ1NzkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMzIuODYyNDI5OSwgInN0ZXAiOiAzNzcwLCAidmFsdWUiOiAwLjA1NDg1OTUyMjczMDExMjA3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjQ4LjUzNTI5MjEsICJzdGVwIjogMzc4MCwgInZhbHVlIjogMC4wMjc1MzEzNjY3OTUzMDE0Mzd9LCB7IndhbGxUaW1lIjogMTczMzA3MTI1Ny4zOTM0NDI5LCAic3RlcCI6IDM3OTAsICJ2YWx1ZSI6IDAuMDMyNjc2MDQ0ODUxNTQxNTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTI2NS41NjkwODEsICJzdGVwIjogMzgwMCwgInZhbHVlIjogMC4wMzI1ODYxNzIyMjMwOTExMjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTI3NC4xOTk4Njc1LCAic3RlcCI6IDM4MTAsICJ2YWx1ZSI6IDAuMDMzNTc5NTgwNDg1ODIwNzd9LCB7IndhbGxUaW1lIjogMTczMzA3MTI4My4wMTk2NTc2LCAic3RlcCI6IDM4MjAsICJ2YWx1ZSI6IDAuMDMzMjI4MzYzODQxNzcyMDh9LCB7IndhbGxUaW1lIjogMTczMzA3MTI5MS43MzE1MzkyLCAic3RlcCI6IDM4MzAsICJ2YWx1ZSI6IDAuMDMxNjQ2NzY1NzY4NTI3OTg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyOTkuODk1OTU1OCwgInN0ZXAiOiAzODQwLCAidmFsdWUiOiAwLjAyOTYwMDgzMjYxMTMyMjQwM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzA4LjQ4MTMwNiwgInN0ZXAiOiAzODUwLCAidmFsdWUiOiAwLjA0NDM3MDE0ODMzMDkyNjg5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzE2Ljk1MzM4NzcsICJzdGVwIjogMzg2MCwgInZhbHVlIjogMC4wMzc5ODU3NDU4MTc0MjI4N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzMwLjIxNzEzNjQsICJzdGVwIjogMzg3MCwgInZhbHVlIjogMC4wNDA0OTY5MDA2Nzc2ODA5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzM4Ljk5MDc2MDgsICJzdGVwIjogMzg4MCwgInZhbHVlIjogMC4wNDMyMjUxMzU2NTQyMTEwNDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTM0Ny43Mzg2NjksICJzdGVwIjogMzg5MCwgInZhbHVlIjogMC4wMjU3MTA5MjkxODUxNTIwNTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTM1Ny4wMzY3NDUsICJzdGVwIjogMzkwMCwgInZhbHVlIjogMC4wMzE3MDI0MDI5NzkxMzU1MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzY1LjIyNzMxODMsICJzdGVwIjogMzkxMCwgInZhbHVlIjogMC4wNjA0MDEwOTY5NDAwNDA1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzc0LjEzNjU3MDUsICJzdGVwIjogMzkyMCwgInZhbHVlIjogMC4wNDc0ODk2NTc5OTgwODUwMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzgyLjgxNTgyMTQsICJzdGVwIjogMzkzMCwgInZhbHVlIjogMC4wNTAzNTg1MDQwNTY5MzA1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzkxLjU3MDM0MywgInN0ZXAiOiAzOTQwLCAidmFsdWUiOiAwLjAyOTcyNzUzNzE4NDk1MzY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MDQuNDY5NDU5MywgInN0ZXAiOiAzOTUwLCAidmFsdWUiOiAwLjAyODI1NTYxNTM4MzM4NjYxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDEyLjM0MDk3MywgInN0ZXAiOiAzOTYwLCAidmFsdWUiOiAwLjAyODgxMjcxMzkyMTA3MDF9LCB7IndhbGxUaW1lIjogMTczMzA3MTQyMS4xNTk2MTM0LCAic3RlcCI6IDM5NzAsICJ2YWx1ZSI6IDAuMDQyNjY0NDc5NDY0MjkyNTI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MzAuMTIyNjc1NCwgInN0ZXAiOiAzOTgwLCAidmFsdWUiOiAwLjAzMzkxNzI5NjY3NzgyNzgzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDM4LjQxNjEzMzYsICJzdGVwIjogMzk5MCwgInZhbHVlIjogMC4wNDc2ODA1NDkzMjM1NTg4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDQ3LjczMTA0MjQsICJzdGVwIjogNDAwMCwgInZhbHVlIjogMC4wMjM5MTUxNzM0ODU4NzUxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDU2LjE5ODcwMDQsICJzdGVwIjogNDAxMCwgInZhbHVlIjogMC4wNzM5NTgxNjU5NDM2MjI1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDY0Ljc1MTU0NjYsICJzdGVwIjogNDAyMCwgInZhbHVlIjogMC4wMzc0NjU5NzA5NjMyMzk2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDczLjQwMDA1MywgInN0ZXAiOiA0MDMwLCAidmFsdWUiOiAwLjAzNTI4NTU3MzQ1MjcxMTEwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDkwLjI4ODYwMTYsICJzdGVwIjogNDA0MCwgInZhbHVlIjogMC4wMzkxNTMyNTE3OTY5NjA4M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDk4LjcxMzg1MTUsICJzdGVwIjogNDA1MCwgInZhbHVlIjogMC4wNDI5NDU2MjMzOTc4MjcxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTA3LjA5OTY5NjQsICJzdGVwIjogNDA2MCwgInZhbHVlIjogMC4wMjkyODYxODE1NTQxOTgyNjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTUxNS4wNzAwMDA0LCAic3RlcCI6IDQwNzAsICJ2YWx1ZSI6IDAuMDY2NTY2OTQ0MTIyMzE0NDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTUyMy45MDkwMDg3LCAic3RlcCI6IDQwODAsICJ2YWx1ZSI6IDAuMDI5MDQ4MTI4MDUzNTQ1OTUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MzIuMjg3ODM3NSwgInN0ZXAiOiA0MDkwLCAidmFsdWUiOiAwLjAzNTM5MTMzMDcxODk5NDE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NDAuOTE5ODQ3NywgInN0ZXAiOiA0MTAwLCAidmFsdWUiOiAwLjAyNTY4MTU0NzgyMDU2ODA4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTQ5LjE3ODg3MjMsICJzdGVwIjogNDExMCwgInZhbHVlIjogMC4wMjc1MzMyMDcwODg3MDg4Nzh9LCB7IndhbGxUaW1lIjogMTczMzA3MTU2NS44MzgzOTYzLCAic3RlcCI6IDQxMjAsICJ2YWx1ZSI6IDAuMDI3NTQ3NjM1MTM4MDM0ODJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTU3My42MzQxMzA3LCAic3RlcCI6IDQxMzAsICJ2YWx1ZSI6IDAuMDMyNTkxNzExNzI5NzY0OTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTU4Mi4wOTg2NzI5LCAic3RlcCI6IDQxNDAsICJ2YWx1ZSI6IDAuMDQzMTYzNTUyODgwMjg3MTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTU5MC4wMjUyNDE2LCAic3RlcCI6IDQxNTAsICJ2YWx1ZSI6IDAuMDM3OTcwOTYwMTQwMjI4Mjd9LCB7IndhbGxUaW1lIjogMTczMzA3MTU5OS4yNDM1ODQ5LCAic3RlcCI6IDQxNjAsICJ2YWx1ZSI6IDAuMDMyNjUzNjg5Mzg0NDYwNDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTYwOC4wNzQzNjEsICJzdGVwIjogNDE3MCwgInZhbHVlIjogMC4wMzU4MTE4MDQyMzQ5ODE1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjE2LjE4NjU5NywgInN0ZXAiOiA0MTgwLCAidmFsdWUiOiAwLjA2MjQ4NzY2MTgzODUzMTQ5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjI2LjA4NTUxMjQsICJzdGVwIjogNDE5MCwgInZhbHVlIjogMC4wMjY5NTQzMTc0NjU0MjQ1Mzh9LCB7IndhbGxUaW1lIjogMTczMzA3MTY0MS4wMTExOTA0LCAic3RlcCI6IDQyMDAsICJ2YWx1ZSI6IDAuMDM1MTU0MTA3OTU4MDc4Mzg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NDkuMDQzNTE2LCAic3RlcCI6IDQyMTAsICJ2YWx1ZSI6IDAuMDQyMjI0MTQ2NDI1NzI0MDN9LCB7IndhbGxUaW1lIjogMTczMzA3MTY1OC41MzQyNzU1LCAic3RlcCI6IDQyMjAsICJ2YWx1ZSI6IDAuMDQwNzI4Mjg1OTA4Njk5MDM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NjcuOTY4ODk2OSwgInN0ZXAiOiA0MjMwLCAidmFsdWUiOiAwLjAyNzYwOTY0MjU5NTA1MjcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NzYuMTExNjc4OCwgInN0ZXAiOiA0MjQwLCAidmFsdWUiOiAwLjAyNjE2NzA2ODYzMDQ1NjkyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjg0LjM4MTQ0NjEsICJzdGVwIjogNDI1MCwgInZhbHVlIjogMC4wNDg5ODkwODczNDMyMTU5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjkzLjExMjU2NjUsICJzdGVwIjogNDI2MCwgInZhbHVlIjogMC4wMjM2ODY5MDgxODU0ODIwMjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTcwMi4xODY3OSwgInN0ZXAiOiA0MjcwLCAidmFsdWUiOiAwLjA0MzAzMDM0NzY3NTA4NTA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MTAuNjMzODk1MiwgInN0ZXAiOiA0MjgwLCAidmFsdWUiOiAwLjAyMzQ2NzQ3NzQxMTAzMTcyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzI2LjY3OTY3NzUsICJzdGVwIjogNDI5MCwgInZhbHVlIjogMC4wMzQ5NTQxMzQzNzQ4NTY5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzM1LjIxODUwMSwgInN0ZXAiOiA0MzAwLCAidmFsdWUiOiAwLjAzOTEwMTA0MTg1MzQyNzg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NDIuOTYwMDE5LCAic3RlcCI6IDQzMTAsICJ2YWx1ZSI6IDAuMDM1NDM4MDY4MjExMDc4NjQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NTEuNTg4NjEyNiwgInN0ZXAiOiA0MzIwLCAidmFsdWUiOiAwLjAzMDU2NjUwNzk1MDQyNTE0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzYwLjAzODEzMTUsICJzdGVwIjogNDMzMCwgInZhbHVlIjogMC4wMzEzNzY3MzgxMDEyNDM5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzY4LjQzNDI5NjYsICJzdGVwIjogNDM0MCwgInZhbHVlIjogMC4wMzI1MzMyNTA3NDkxMTExNzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTc3Ny40MDUxMzU5LCAic3RlcCI6IDQzNTAsICJ2YWx1ZSI6IDAuMDQzNjg4MTIyMTgzMDg0NDl9LCB7IndhbGxUaW1lIjogMTczMzA3MTc4NS41NTAyNjI3LCAic3RlcCI6IDQzNjAsICJ2YWx1ZSI6IDAuMDQxMzk2MjQ1MzYwMzc0NDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTgwMC44ODc4NDIsICJzdGVwIjogNDM3MCwgInZhbHVlIjogMC4wMzkxNTQxNzkzOTQyNDUxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODA5LjI2ODc3MzMsICJzdGVwIjogNDM4MCwgInZhbHVlIjogMC4wMzEzNzg1Mjk5NjU4Nzc1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxODE3LjM0OTQ0NywgInN0ZXAiOiA0MzkwLCAidmFsdWUiOiAwLjA2NzY1NDE2MjY0NTMzOTk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MjYuNDMzMzE5MywgInN0ZXAiOiA0NDAwLCAidmFsdWUiOiAwLjA0NTAwNzkyMTc1NTMxMzg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MzQuODkwNDU4OCwgInN0ZXAiOiA0NDEwLCAidmFsdWUiOiAwLjA0NTk2MjQxNTYzNTU4NTc4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODQzLjQ0OTc1MTYsICJzdGVwIjogNDQyMCwgInZhbHVlIjogMC4wNTI1NjEyNDIxMzMzNzg5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODUxLjU5ODkyMzcsICJzdGVwIjogNDQzMCwgInZhbHVlIjogMC4wMzI5NTIwODUxMzczNjcyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODU5LjkyNzA3ODIsICJzdGVwIjogNDQ0MCwgInZhbHVlIjogMC4wMjgzMTkwNDIxNzYwMDgyMjR9LCB7IndhbGxUaW1lIjogMTczMzA3MTg2OC42NzYxMjIsICJzdGVwIjogNDQ1MCwgInZhbHVlIjogMC4wMzk5MjIxNDA1Mzg2OTI0NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MTg4MS4zMzkxMzczLCAic3RlcCI6IDQ0NjAsICJ2YWx1ZSI6IDAuMDMzMzAwMDI3MjUxMjQzNTl9LCB7IndhbGxUaW1lIjogMTczMzA3MTg4OS42NDA5MjQ1LCAic3RlcCI6IDQ0NzAsICJ2YWx1ZSI6IDAuMDM1MDM2Mzg1MDU5MzU2Njl9LCB7IndhbGxUaW1lIjogMTczMzA3MTg5OC40MjM3NTg1LCAic3RlcCI6IDQ0ODAsICJ2YWx1ZSI6IDAuMDMyODM2NTE5MTgxNzI4MzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTkwNy4zMzg5NTcsICJzdGVwIjogNDQ5MCwgInZhbHVlIjogMC4wNDAyNDk0ODE3OTcyMTgzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTE2LjI4MTE1NDQsICJzdGVwIjogNDUwMCwgInZhbHVlIjogMC4wNDQyMzY1MjIxNjc5MjEwNjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTkyNS4zNTE1ODYsICJzdGVwIjogNDUxMCwgInZhbHVlIjogMC4wNDY3ODg0MTMwNzc1OTI4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTMzLjMzMjMyMjQsICJzdGVwIjogNDUyMCwgInZhbHVlIjogMC4wNDk1NzMwNjc1NzU2OTMxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTQxLjQ4NTU5MTcsICJzdGVwIjogNDUzMCwgInZhbHVlIjogMC4wMzU4NTA4MTkyMDAyNzczM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTU0LjE3MjEzNzcsICJzdGVwIjogNDU0MCwgInZhbHVlIjogMC4wMjY4NDQzNTA2MjExMDQyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTYyLjM5ODc0MTUsICJzdGVwIjogNDU1MCwgInZhbHVlIjogMC4wMzAyMzA5NTgwMTQ3MjY2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTcwLjUxNjE4OSwgInN0ZXAiOiA0NTYwLCAidmFsdWUiOiAwLjA0MTIxMjg5NDAyMjQ2NDc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NzguODcyNzkyMiwgInN0ZXAiOiA0NTcwLCAidmFsdWUiOiAwLjAzMDQ0MjM4MzE0MDMyNTU0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTg3LjcxMzMzNzQsICJzdGVwIjogNDU4MCwgInZhbHVlIjogMC4wNTI4MzgyNDcyNjkzOTIwMTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTk5Ni40NDgxNDQ3LCAic3RlcCI6IDQ1OTAsICJ2YWx1ZSI6IDAuMDUxOTE3NDI2Mjg4MTI3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDA0LjQ3ODc3NzYsICJzdGVwIjogNDYwMCwgInZhbHVlIjogMC4wMTk3NTg5MjI5NzkyMzU2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDEyLjc0NzU1NDMsICJzdGVwIjogNDYxMCwgInZhbHVlIjogMC4wMzIwODg3NjAyODY1Njk1OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjAyNS40MDMwNzg4LCAic3RlcCI6IDQ2MjAsICJ2YWx1ZSI6IDAuMDQyMDc5MDMxNDY3NDM3NzQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMzQuMTIxMDYyNSwgInN0ZXAiOiA0NjMwLCAidmFsdWUiOiAwLjAyNTI2ODgxNTQ1NzgyMDg5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDQzLjA0MDU0MjEsICJzdGVwIjogNDY0MCwgInZhbHVlIjogMC4wMzc3MjUwNjg2Mjg3ODc5OTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjA1MS43ODk3MDk2LCAic3RlcCI6IDQ2NTAsICJ2YWx1ZSI6IDAuMDMxMTA4ODQ1MDI1MzAwOTh9LCB7IndhbGxUaW1lIjogMTczMzA3MjA2MC4xMTA3NzUyLCAic3RlcCI6IDQ2NjAsICJ2YWx1ZSI6IDAuMDQ2MDEwNTMxNDg1MDgwNzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjA2OC42MDU1MDUsICJzdGVwIjogNDY3MCwgInZhbHVlIjogMC4wNTA3MDEyOTQwOTQzMjQxMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDc2LjgzODkwNSwgInN0ZXAiOiA0NjgwLCAidmFsdWUiOiAwLjA0MDMyMTA4OTMyNzMzNTM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwODUuMzc4MjM5MiwgInN0ZXAiOiA0NjkwLCAidmFsdWUiOiAwLjAyNzM2NjcxODI3NzMzNTE2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDkzLjc1MDcyODEsICJzdGVwIjogNDcwMCwgInZhbHVlIjogMC4wMzkyMDE4MDcyMzA3MTA5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTA2Ljk5MTk2NzIsICJzdGVwIjogNDcxMCwgInZhbHVlIjogMC4wNDI2ODk1NjkyOTQ0NTI2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTE1LjY2NzQzOTUsICJzdGVwIjogNDcyMCwgInZhbHVlIjogMC4wNTM3NTg5MDA2MTI1OTI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMjMuOTUyODgzMiwgInN0ZXAiOiA0NzMwLCAidmFsdWUiOiAwLjA0NzI4MjA1ODc0NTYyMjYzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTMyLjI4Mjk0MzIsICJzdGVwIjogNDc0MCwgInZhbHVlIjogMC4wMzExMjU3OTUwOTYxNTg5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTQwLjQyMjk1MiwgInN0ZXAiOiA0NzUwLCAidmFsdWUiOiAwLjA2MDk5MzE0MjQyNjAxMzk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNDkuMDg5MzY4OCwgInN0ZXAiOiA0NzYwLCAidmFsdWUiOiAwLjAyNzEwOTg0MDg4NDgwNDcyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTU3LjQxNDA0MiwgInN0ZXAiOiA0NzcwLCAidmFsdWUiOiAwLjAzMTAwMjg5MDMxODYzMjEyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTY1LjQ5MTQ5MiwgInN0ZXAiOiA0NzgwLCAidmFsdWUiOiAwLjA1NTMxMDM3MjI2MzE5MzEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNzkuNjUyODU1NCwgInN0ZXAiOiA0NzkwLCAidmFsdWUiOiAwLjAzNTY5NzgzMjcwMzU5MDM5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxODguMzMxNzMwNCwgInN0ZXAiOiA0ODAwLCAidmFsdWUiOiAwLjAyODYwMzAzNzgxOTI2NjMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxOTYuODQ5MTQ0LCAic3RlcCI6IDQ4MTAsICJ2YWx1ZSI6IDAuMDQwNzQxMDMzODUyMTAwMzd9LCB7IndhbGxUaW1lIjogMTczMzA3MjIwNC41NjQzNzI1LCAic3RlcCI6IDQ4MjAsICJ2YWx1ZSI6IDAuMDM2MDM0NzI1NjA2NDQxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjEzLjEwMTc0OCwgInN0ZXAiOiA0ODMwLCAidmFsdWUiOiAwLjAyMzg0NDAxMTEyNzk0ODc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMjEuNjY5MywgInN0ZXAiOiA0ODQwLCAidmFsdWUiOiAwLjAyNjQwNTg1NDE1MDY1Mjg4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjI5Ljg5NjIzNzYsICJzdGVwIjogNDg1MCwgInZhbHVlIjogMC4wMjY0Nzc5MDMxMjc2NzAyODh9LCB7IndhbGxUaW1lIjogMTczMzA3MjIzOC4wNTgzNzA0LCAic3RlcCI6IDQ4NjAsICJ2YWx1ZSI6IDAuMDM4Mjg0OTg3MjExMjI3NDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjI0Ni4zNDU4Mzg4LCAic3RlcCI6IDQ4NzAsICJ2YWx1ZSI6IDAuMDI1NTk5NTQ2NzMwNTE4MzR9LCB7IndhbGxUaW1lIjogMTczMzA3MjI2MS4yNjk2MzMsICJzdGVwIjogNDg4MCwgInZhbHVlIjogMC4wMzU2MjQ2NTMxMDA5Njc0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjY5Ljg1NTA2NjUsICJzdGVwIjogNDg5MCwgInZhbHVlIjogMC4wMzc4OTAwOTE1Mzg0MjkyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjc4Ljg4MjU5OSwgInN0ZXAiOiA0OTAwLCAidmFsdWUiOiAwLjAzNzM3MTEyNTA3MjI0MDgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyODcuNTM2NzcxLCAic3RlcCI6IDQ5MTAsICJ2YWx1ZSI6IDAuMDMwMDg1NjMwNzE0ODkzMzR9LCB7IndhbGxUaW1lIjogMTczMzA3MjI5NS45NDk1NjE0LCAic3RlcCI6IDQ5MjAsICJ2YWx1ZSI6IDAuMDM0NzkyMjU5MzM1NTE3ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MjMwNC4zNTc1NjcsICJzdGVwIjogNDkzMCwgInZhbHVlIjogMC4wNDY2NDMyNDk2OTA1MzI2ODR9LCB7IndhbGxUaW1lIjogMTczMzA3MjMxMy41MTIwOTM4LCAic3RlcCI6IDQ5NDAsICJ2YWx1ZSI6IDAuMDMwNDEwNzg1MjI4MDEzOTkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMjEuMzI3NjcyMiwgInN0ZXAiOiA0OTUwLCAidmFsdWUiOiAwLjAzMzgxNzM4MDY2NjczMjc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMzcuMDI3Mzk3NiwgInN0ZXAiOiA0OTYwLCAidmFsdWUiOiAwLjAzMDU2ODA4NTYxMDg2NjU0N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzQ1LjUzNTgyNTMsICJzdGVwIjogNDk3MCwgInZhbHVlIjogMC4wMjY4NzYxMTYxNzE0NzkyMjV9LCB7IndhbGxUaW1lIjogMTczMzA3MjM1My40MzIxNDY4LCAic3RlcCI6IDQ5ODAsICJ2YWx1ZSI6IDAuMDI1MzMxMzk0NzQ2ODk5NjA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNjIuNDE1NjEzMiwgInN0ZXAiOiA0OTkwLCAidmFsdWUiOiAwLjA0MzU4OTU4NDUyOTM5OTg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNzEuNzQ4Mzg2LCAic3RlcCI6IDUwMDAsICJ2YWx1ZSI6IDAuMDQ0MDk4NDE0NDgwNjg2MTl9LCB7IndhbGxUaW1lIjogMTczMzA3MjM4MC41MzIwOTU0LCAic3RlcCI6IDUwMTAsICJ2YWx1ZSI6IDAuMDI4OTYyNzM4ODExOTY5NzU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzODkuMDI4OTY1NywgInN0ZXAiOiA1MDIwLCAidmFsdWUiOiAwLjA0MDk5NzMwMDI5NzAyMTg2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzk3Ljc4Nzk5OTIsICJzdGVwIjogNTAzMCwgInZhbHVlIjogMC4wMzA1OTM2MDM4NDk0MTEwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDExLjMwMTI1OCwgInN0ZXAiOiA1MDQwLCAidmFsdWUiOiAwLjA0MDE1MzAxMTY3OTY0OTM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MTkuNDc2NzE4NywgInN0ZXAiOiA1MDUwLCAidmFsdWUiOiAwLjAzOTQ3Njk5NDQyNTA1ODM2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDI4LjM3NDYxMDQsICJzdGVwIjogNTA2MCwgInZhbHVlIjogMC4wNDcwMTE3MTQ0Mjg2NjMyNTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjQzNy4xMTk3MjcxLCAic3RlcCI6IDUwNzAsICJ2YWx1ZSI6IDAuMDQwNjU5ODQ0ODc1MzM1Njl9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ0Ni4xNzc4MzU3LCAic3RlcCI6IDUwODAsICJ2YWx1ZSI6IDAuMDQ5MDc3NDE3NzAxNDgyNzd9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ1NC40MzEwNSwgInN0ZXAiOiA1MDkwLCAidmFsdWUiOiAwLjAzNjk2MDYxMjk4MjUxMTUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NjIuNDEyOTg0NCwgInN0ZXAiOiA1MTAwLCAidmFsdWUiOiAwLjA0NDQyMDczNDA0Nzg4OTcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NzEuMTUzMzYxMywgInN0ZXAiOiA1MTEwLCAidmFsdWUiOiAwLjAyODg4MDM0Mjg0MTE0ODM3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDc4Ljk0OTE0NiwgInN0ZXAiOiA1MTIwLCAidmFsdWUiOiAwLjAzMDA1NDgyMjU2NDEyNTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0OTEuMzI0MTc0MiwgInN0ZXAiOiA1MTMwLCAidmFsdWUiOiAwLjA0NDMzODQwODg1NzU4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDk5LjI2MTIzMjYsICJzdGVwIjogNTE0MCwgInZhbHVlIjogMC4wMjM0ODY3ODAwMDI3MTMyMDN9LCB7IndhbGxUaW1lIjogMTczMzA3MjUwNy4xMTQ1Mjk2LCAic3RlcCI6IDUxNTAsICJ2YWx1ZSI6IDAuMDQwMTAyNTU2MzQ3ODQ2OTg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MTUuMzE5Nzc1OCwgInN0ZXAiOiA1MTYwLCAidmFsdWUiOiAwLjAyNDk4Njk2NTU4MTc3NDcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MjMuNTIwMTYzNSwgInN0ZXAiOiA1MTcwLCAidmFsdWUiOiAwLjAyOTk0ODI5OTc1MDY4NTY5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTMxLjA4OTg0OTIsICJzdGVwIjogNTE4MCwgInZhbHVlIjogMC4wMjQ3MTEwODkyMDg3MjIxMTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjU0MC4wMjY0OTc4LCAic3RlcCI6IDUxOTAsICJ2YWx1ZSI6IDAuMDI5NTMxODQzOTYwMjg1MTg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NDguNjU2NTYzMywgInN0ZXAiOiA1MjAwLCAidmFsdWUiOiAwLjAyOTE4MzM5NTIwNjkyODI1M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTYxLjQxOTgyMDMsICJzdGVwIjogNTIxMCwgInZhbHVlIjogMC4wNDYxNzY1NTI3NzI1MjE5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTY5LjkwMDkxMTYsICJzdGVwIjogNTIyMCwgInZhbHVlIjogMC4wMzU3MjYxNzA5ODY4OTA3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTc4LjY4MzQ2MjksICJzdGVwIjogNTIzMCwgInZhbHVlIjogMC4wNDU4MDQ5Njk5NjY0MTE1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTg2Ljk0NjgxNjcsICJzdGVwIjogNTI0MCwgInZhbHVlIjogMC4wMzI4Mjg4MzAxODI1NTIzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTk1LjAzNjg0MDcsICJzdGVwIjogNTI1MCwgInZhbHVlIjogMC4wNDU2MzAwNzUwMzc0Nzk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MDMuMTc1OTg5MiwgInN0ZXAiOiA1MjYwLCAidmFsdWUiOiAwLjA0NTEyNzQ2MjU5NTcwMTIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MTEuMDgzNjE2MywgInN0ZXAiOiA1MjcwLCAidmFsdWUiOiAwLjA2NzAwNjk5Nzc2NDExMDU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MTkuOTU5MjAxOCwgInN0ZXAiOiA1MjgwLCAidmFsdWUiOiAwLjAyOTE2NjQ2OTM1MDQ1NzE5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MjguNjM3MDU1NCwgInN0ZXAiOiA1MjkwLCAidmFsdWUiOiAwLjAyNjczMTg5MTU1NzU3NDI3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjQxLjM3ODA2OSwgInN0ZXAiOiA1MzAwLCAidmFsdWUiOiAwLjAyNjc3MTI1MTExMjIyMjY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NDkuODYxMDQ5LCAic3RlcCI6IDUzMTAsICJ2YWx1ZSI6IDAuMDM1NjgwNDEzMjQ2MTU0Nzg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NTcuOTczOCwgInN0ZXAiOiA1MzIwLCAidmFsdWUiOiAwLjAzMzk1NDYzNTI2MjQ4OTMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NjcuMDMxODcyLCAic3RlcCI6IDUzMzAsICJ2YWx1ZSI6IDAuMDM2ODg2NTA5NTA3ODk0NTE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NzUuOTQ1NTI5NSwgInN0ZXAiOiA1MzQwLCAidmFsdWUiOiAwLjAyNTQ2NDYyMjMwMzg0MzQ5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjg0LjI0MDgzNjksICJzdGVwIjogNTM1MCwgInZhbHVlIjogMC4wNDA2OTA2NzkxMDMxMzYwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjkxLjg2MDUxOTQsICJzdGVwIjogNTM2MCwgInZhbHVlIjogMC4wMjkwNTQzMzgxMTI0NzM0ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MjcwMC4xNTA2ODUsICJzdGVwIjogNTM3MCwgInZhbHVlIjogMC4wMzY3MDcyNjM0Mzk4OTM3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzEzLjE4NTU3MywgInN0ZXAiOiA1MzgwLCAidmFsdWUiOiAwLjAzNDIwNjAyOTAyNzcwMDQyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzIxLjAyNzIyMTcsICJzdGVwIjogNTM5MCwgInZhbHVlIjogMC4wMzIxNDc2MzQ3NzQ0NDY0OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzI5Ljg3OTQwMDcsICJzdGVwIjogNTQwMCwgInZhbHVlIjogMC4wNDAzNjEyMDMyNTMyNjkxOTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjczOC4zNzQwNzk3LCAic3RlcCI6IDU0MTAsICJ2YWx1ZSI6IDAuMDM1ODY0MjUyNTk3MDkzNTh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc0Ni4zODUxNjE5LCAic3RlcCI6IDU0MjAsICJ2YWx1ZSI6IDAuMDI2OTA4NTgyMDc2NDMwMzJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc1NC42MjAxMzcyLCAic3RlcCI6IDU0MzAsICJ2YWx1ZSI6IDAuMDMzNjg4MzMyODg1NTAzNzd9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc2Mi41NzU1MjIsICJzdGVwIjogNTQ0MCwgInZhbHVlIjogMC4wMzY2NDgxODAzMzU3NjAxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzcxLjM2MzE1NjMsICJzdGVwIjogNTQ1MCwgInZhbHVlIjogMC4wMzIxNTM1ODQwNjMwNTMxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzg3LjE1NDIwNSwgInN0ZXAiOiA1NDYwLCAidmFsdWUiOiAwLjAzODU4NzkyNzgxODI5ODM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3OTUuODA1Mjk0MywgInN0ZXAiOiA1NDcwLCAidmFsdWUiOiAwLjA0NTE2NjEyNzM4MzcwODk1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODA0LjI0NDUwNCwgInN0ZXAiOiA1NDgwLCAidmFsdWUiOiAwLjAyNzY2MDczNjgxNDE0MTI3M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyODEyLjM3NTQ0OCwgInN0ZXAiOiA1NDkwLCAidmFsdWUiOiAwLjAzMDY2MDE5OTAwMTQzMTQ2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODIxLjE2MTcxMywgInN0ZXAiOiA1NTAwLCAidmFsdWUiOiAwLjAzMTM5NDk2MjIyMTM4NDA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MzAuMDI1MDQ0MiwgInN0ZXAiOiA1NTEwLCAidmFsdWUiOiAwLjAzNTU0NjczNDkyOTA4NDc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MzguNjk3NDg5NywgInN0ZXAiOiA1NTIwLCAidmFsdWUiOiAwLjAzNTI5MDc2Mjc4MjA5Njg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NDYuOTA3MzA4NiwgInN0ZXAiOiA1NTMwLCAidmFsdWUiOiAwLjAyODM2NTE5ODUyMjgwNjE2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODU1LjI1MDYzMjUsICJzdGVwIjogNTU0MCwgInZhbHVlIjogMC4wNDYwNzMzODQ1ODI5OTYzN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyODcwLjY0ODc5MiwgInN0ZXAiOiA1NTUwLCAidmFsdWUiOiAwLjAzNDM0Nzc2NTE0NzY4NjAwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODc4LjczMzc1NTQsICJzdGVwIjogNTU2MCwgInZhbHVlIjogMC4wMzI5MjA5MzA1MzQ2MDEyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODg2LjYxNTA5NzgsICJzdGVwIjogNTU3MCwgInZhbHVlIjogMC4wMzg3OTYyNTM1MDIzNjg5M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyODk1LjAyMzY3NDIsICJzdGVwIjogNTU4MCwgInZhbHVlIjogMC4wMzQyMDI1MDg2MjgzNjgzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTAzLjQwNTIwODYsICJzdGVwIjogNTU5MCwgInZhbHVlIjogMC4wMjg3NjIwODE2Mzc5Nzg1NTR9LCB7IndhbGxUaW1lIjogMTczMzA3MjkxMS4yMTIyMDIzLCAic3RlcCI6IDU2MDAsICJ2YWx1ZSI6IDAuMDMwMjY1NjM2NzQyMTE1MDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjkxOS44NDIxNjM4LCAic3RlcCI6IDU2MTAsICJ2YWx1ZSI6IDAuMDI3MTQ2MDgwNTA4ODI4MTYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MjguNzM1Mjk3LCAic3RlcCI6IDU2MjAsICJ2YWx1ZSI6IDAuMDM0ODY1Mjc1MDI1MzY3NzR9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk0MS43MDU5OTMyLCAic3RlcCI6IDU2MzAsICJ2YWx1ZSI6IDAuMDM5MTI2OTI4ODk1NzExOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTQ5Ljk4MjQ3OCwgInN0ZXAiOiA1NjQwLCAidmFsdWUiOiAwLjAzMTIzMTkwMjUzOTczMDA3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTU4LjcyMzkyNzMsICJzdGVwIjogNTY1MCwgInZhbHVlIjogMC4wNjg4NjYyMDA3NDUxMDU3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTY2LjgxODczMywgInN0ZXAiOiA1NjYwLCAidmFsdWUiOiAwLjAzMjY5MDA4OTE5NTk2NjcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NzQuOTY2MTU1LCAic3RlcCI6IDU2NzAsICJ2YWx1ZSI6IDAuMDI4MDI5NDk1ODUwMjA1NDJ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk4My41NjQzNTI4LCAic3RlcCI6IDU2ODAsICJ2YWx1ZSI6IDAuMDQ5MTgxMTE4NjA3NTIxMDZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk5Mi4yMzI1MzA2LCAic3RlcCI6IDU2OTAsICJ2YWx1ZSI6IDAuMDI4MTQ2MjkxMTUxNjQyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDAwLjgxOTQ3MDYsICJzdGVwIjogNTcwMCwgInZhbHVlIjogMC4wMTk4OTk4Nzg2NTA5MDM3MDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzAwOS43ODU1MzYzLCAic3RlcCI6IDU3MTAsICJ2YWx1ZSI6IDAuMDQ4MTI5MTA0MDc3ODE2MDF9LCB7IndhbGxUaW1lIjogMTczMzA3MzAyMi44NzA1MDIyLCAic3RlcCI6IDU3MjAsICJ2YWx1ZSI6IDAuMDQ1MDY5NTM0MzMxNTYwMTM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMzEuNTM4MzY0LCAic3RlcCI6IDU3MzAsICJ2YWx1ZSI6IDAuMDI2MDk1ODA5NDE0OTgyNzk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMzkuNTc0NzcwNywgInN0ZXAiOiA1NzQwLCAidmFsdWUiOiAwLjA0MjM5OTMwOTU3NTU1NzcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNDcuODQ1MTAyNSwgInN0ZXAiOiA1NzUwLCAidmFsdWUiOiAwLjAzMDU5OTM5NjY3NTgyNTEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNTYuMTU4NzI5OCwgInN0ZXAiOiA1NzYwLCAidmFsdWUiOiAwLjAyODI3Njc5OTI0NjY2ODgxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDY0Ljk1NzMyNiwgInN0ZXAiOiA1NzcwLCAidmFsdWUiOiAwLjA0MzE3NzkxMDE0OTA5NzQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNzMuODM5OTQyNSwgInN0ZXAiOiA1NzgwLCAidmFsdWUiOiAwLjAzNzIyNTc3OTE0NTk1NjA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwODIuNzI3Mzc0OCwgInN0ZXAiOiA1NzkwLCAidmFsdWUiOiAwLjAyODQzNzM5ODM3NDA4MDY1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDk1LjEwNTMyMSwgInN0ZXAiOiA1ODAwLCAidmFsdWUiOiAwLjA0NjgxMjYwODgzODA4MTM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMDMuMzE4MDk0LCAic3RlcCI6IDU4MTAsICJ2YWx1ZSI6IDAuMDI3NTA1NTIwNzMxMjEwNzF9LCB7IndhbGxUaW1lIjogMTczMzA3MzExMS45NzI5MjgsICJzdGVwIjogNTgyMCwgInZhbHVlIjogMC4wMjY1NTQwMDE0OTUyNDIxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTIwLjM2MDA2NSwgInN0ZXAiOiA1ODMwLCAidmFsdWUiOiAwLjAzNjY5NzY0MTAxNTA1Mjc5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTI4LjIxMTU2ODQsICJzdGVwIjogNTg0MCwgInZhbHVlIjogMC4wMzYwMzY2MjE3NzkyMDM0MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzEzNi43MTgwMzE0LCAic3RlcCI6IDU4NTAsICJ2YWx1ZSI6IDAuMDI3Mjg1MTg4NDM2NTA4MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MzE0NC45MzAxMDMsICJzdGVwIjogNTg2MCwgInZhbHVlIjogMC4wNTQ0MDMyMDA3NDU1ODI1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTUzLjA0NTI4MDcsICJzdGVwIjogNTg3MCwgInZhbHVlIjogMC4wMzMwMDkzNzYzNzY4NjcyOTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzE2Ni4wMDU0NTM4LCAic3RlcCI6IDU4ODAsICJ2YWx1ZSI6IDAuMDM0Nzc2MjIxOTYwNzgzMDA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNzQuNjYxNDI2LCAic3RlcCI6IDU4OTAsICJ2YWx1ZSI6IDAuMDMzNzA3NTc0MDA5ODk1MzI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxODIuNTEwNjg2NiwgInN0ZXAiOiA1OTAwLCAidmFsdWUiOiAwLjA0OTY0ODMxNDcxNDQzMTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxOTEuNTYxODcwMywgInN0ZXAiOiA1OTEwLCAidmFsdWUiOiAwLjAyMzM1MzQ2NDkwMTQ0NzI5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTk5LjQxNTU0MTYsICJzdGVwIjogNTkyMCwgInZhbHVlIjogMC4wNDM3ODkxMjU5Nzg5NDY2ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzIwNy40Njc4NTksICJzdGVwIjogNTkzMCwgInZhbHVlIjogMC4wMjY5NjA4MTk5NTk2NDA1MDN9LCB7IndhbGxUaW1lIjogMTczMzA3MzIxNS42MDUyODMsICJzdGVwIjogNTk0MCwgInZhbHVlIjogMC4wMzEwODA0ODk5NzgxOTQyMzd9LCB7IndhbGxUaW1lIjogMTczMzA3MzIyNC4zNjA1ODIsICJzdGVwIjogNTk1MCwgInZhbHVlIjogMC4wMjY5MTcwNzU3MzgzMTA4MTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzIzMi44ODAyNzk4LCAic3RlcCI6IDU5NjAsICJ2YWx1ZSI6IDAuMDM5MDIxODIzNTU1MjMxMDk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNDUuMzc2NDMzOCwgInN0ZXAiOiA1OTcwLCAidmFsdWUiOiAwLjA0MTcyNDU3NzU0NjExOTY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNTMuMTgxOTgyLCAic3RlcCI6IDU5ODAsICJ2YWx1ZSI6IDAuMDM3MDcyMDc3MzkzNTMxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjYxLjgwNDA5ODgsICJzdGVwIjogNTk5MCwgInZhbHVlIjogMC4wMzQwMzU1NTYwMTgzNTI1MX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjcwLjA2MjE3MTcsICJzdGVwIjogNjAwMCwgInZhbHVlIjogMC4wMzc5MTUxMjU0ODkyMzQ5MjR9LCB7IndhbGxUaW1lIjogMTczMzA3MzI3OC44OTkxMDE1LCAic3RlcCI6IDYwMTAsICJ2YWx1ZSI6IDAuMDM4MjUzODIxNDMyNTkwNDg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyODcuNjg0NjU3MywgInN0ZXAiOiA2MDIwLCAidmFsdWUiOiAwLjAzOTYzNzkyNjk2NTk1MTkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyOTcuMjc3MDE2LCAic3RlcCI6IDYwMzAsICJ2YWx1ZSI6IDAuMDM5NzI1NTI3MTY3MzIwMjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzMwNS45MjA3OTkzLCAic3RlcCI6IDYwNDAsICJ2YWx1ZSI6IDAuMDM4MDM1MDMxNDA4MDcxNTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzMyMi4zNTcyODg0LCAic3RlcCI6IDYwNTAsICJ2YWx1ZSI6IDAuMDMzMjI2ODUxMzczOTEwOTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzMzEuOTc5OTAwMSwgInN0ZXAiOiA2MDYwLCAidmFsdWUiOiAwLjA0MDUwMjY5MzUwNDA5NTA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNDAuNTI0OTE0LCAic3RlcCI6IDYwNzAsICJ2YWx1ZSI6IDAuMDMyMjUwMjY2NTIyMTY5MTF9LCB7IndhbGxUaW1lIjogMTczMzA3MzM0OS42MDQ1OTA0LCAic3RlcCI6IDYwODAsICJ2YWx1ZSI6IDAuMDI4NjI2NDc1NDgzMTc5MDkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNTkuMDczOTAzLCAic3RlcCI6IDYwOTAsICJ2YWx1ZSI6IDAuMDQzOTE3NzYwMjUyOTUyNTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNjguNDA1NjIzMiwgInN0ZXAiOiA2MTAwLCAidmFsdWUiOiAwLjAyNjg3NzAyODg2NzYwMjM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNzcuNjc3NjMwMiwgInN0ZXAiOiA2MTEwLCAidmFsdWUiOiAwLjAzMzk0ODkyMDY2NzE3MTQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzODYuNDAzMTE3LCAic3RlcCI6IDYxMjAsICJ2YWx1ZSI6IDAuMDMwMDI3NTIzNjM2ODE3OTMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzOTUuNDU0MDU3LCAic3RlcCI6IDYxMzAsICJ2YWx1ZSI6IDAuMDM2NzY1MzEwOTEzMzI0MzU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MDguMTUzOTA1OSwgInN0ZXAiOiA2MTQwLCAidmFsdWUiOiAwLjAyNjQ3MDU4ODUyMDE2OTI1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDE3LjMyNjU0MywgInN0ZXAiOiA2MTUwLCAidmFsdWUiOiAwLjAyODQ4ODQ4MzI3OTk0MzQ2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDI2LjI2MDk4MzUsICJzdGVwIjogNjE2MCwgInZhbHVlIjogMC4wMzgyNTcxNjMwMTc5ODgyMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzQzNC44MTE5OTEyLCAic3RlcCI6IDYxNzAsICJ2YWx1ZSI6IDAuMDM1MzI1MTQzNDg2MjYxMzd9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ0NC41MTUyOTY1LCAic3RlcCI6IDYxODAsICJ2YWx1ZSI6IDAuMDYzMTA2NDEwMjA1MzY0MjN9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ1My4xMjA2OTQyLCAic3RlcCI6IDYxOTAsICJ2YWx1ZSI6IDAuMDMxNzM3MjY3OTcxMDM4ODJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ2Mi41NjgyNTY2LCAic3RlcCI6IDYyMDAsICJ2YWx1ZSI6IDAuMDMwNDg4ODc0NzYzMjUwMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ3Mi4wMjczODEyLCAic3RlcCI6IDYyMTAsICJ2YWx1ZSI6IDAuMDM3MjEzNzI3ODMxODQwNTE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0ODQuNDUwOTU1LCAic3RlcCI6IDYyMjAsICJ2YWx1ZSI6IDAuMDMyMjUyMTE0MjY2MTU3MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ5My42NjI0NTM0LCAic3RlcCI6IDYyMzAsICJ2YWx1ZSI6IDAuMDI1Njc4ODk5MTM5MTY1ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MzUwMi40NDM3ODgsICJzdGVwIjogNjI0MCwgInZhbHVlIjogMC4wNDA3NTM1OTU1MzA5ODY3ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzUxMS4yNTkwMzAzLCAic3RlcCI6IDYyNTAsICJ2YWx1ZSI6IDAuMDM2NTQzNzMwNjQ2MzcxODR9LCB7IndhbGxUaW1lIjogMTczMzA3MzUyMC41MTIyNDExLCAic3RlcCI6IDYyNjAsICJ2YWx1ZSI6IDAuMDI3NjQ1MTAzNjMzNDAzNzc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MjkuNzgzODczOCwgInN0ZXAiOiA2MjcwLCAidmFsdWUiOiAwLjAzNzkxOTI2ODAxMjA0NjgxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTM5LjY0MTU1NTUsICJzdGVwIjogNjI4MCwgInZhbHVlIjogMC4wMzE4Nzc4NDU1MjU3NDE1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTQ4LjkxMzQxMywgInN0ZXAiOiA2MjkwLCAidmFsdWUiOiAwLjAyOTA5NTE0MTIxNzExMjU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NjAuNjIyMjc3NywgInN0ZXAiOiA2MzAwLCAidmFsdWUiOiAwLjAzMTE0ODA3MjMzMjE0Mzc4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTcwLjA3MTQ2OTgsICJzdGVwIjogNjMxMCwgInZhbHVlIjogMC4wMzUwNDgyMjAzMDY2MzQ5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NzkuNDgzNzc4LCAic3RlcCI6IDYzMjAsICJ2YWx1ZSI6IDAuMDM1NDkyNzU1NDcyNjYwMDY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1ODcuNjY5ODUyLCAic3RlcCI6IDYzMzAsICJ2YWx1ZSI6IDAuMDMyODE3OTU5Nzg1NDYxNDI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1OTcuMjIwNDMwNiwgInN0ZXAiOiA2MzQwLCAidmFsdWUiOiAwLjAzNTY3OTk2OTkzNjYwOTI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MDYuMjQwNjI4MiwgInN0ZXAiOiA2MzUwLCAidmFsdWUiOiAwLjAzMTc2MTA3NjMwMTMzNjI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MTUuMDgwMjMyNCwgInN0ZXAiOiA2MzYwLCAidmFsdWUiOiAwLjAzNDE0NDc3NDA3OTMyMjgxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjI0LjgzNjkwNjQsICJzdGVwIjogNjM3MCwgInZhbHVlIjogMC4wMzEwODU3NTk0MDEzMjE0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjM0LjY3NTA2MSwgInN0ZXAiOiA2MzgwLCAidmFsdWUiOiAwLjA0MTExMDQ0MTA4ODY3NjQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NDYuNTMwNzE0LCAic3RlcCI6IDYzOTAsICJ2YWx1ZSI6IDAuMDMxNTU4NzE0ODA3MDMzNTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzY1NS43NDc5ODUxLCAic3RlcCI6IDY0MDAsICJ2YWx1ZSI6IDAuMDMyNjY5MDY3MzgyODEyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjY1LjYwOTcwNDMsICJzdGVwIjogNjQxMCwgInZhbHVlIjogMC4wMzA4ODE2Mzk1Njk5OTc3ODd9LCB7IndhbGxUaW1lIjogMTczMzA3MzY3NC42NDUyMzMyLCAic3RlcCI6IDY0MjAsICJ2YWx1ZSI6IDAuMDI5NDE0NTA4NDkxNzU0NTMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2ODMuNjcyODc5MiwgInN0ZXAiOiA2NDMwLCAidmFsdWUiOiAwLjAzNTQyNDg4MDY4MzQyMjA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2OTIuODc5MzAwNiwgInN0ZXAiOiA2NDQwLCAidmFsdWUiOiAwLjAzMjUxNzU4OTYyODY5NjQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MDIuNTIxNjk2NiwgInN0ZXAiOiA2NDUwLCAidmFsdWUiOiAwLjAzMTk3MDkwMzI3NzM5NzE1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzEyLjYyOTg0MDksICJzdGVwIjogNjQ2MCwgInZhbHVlIjogMC4wMzEyMzIxNzgyMTEyMTIxNTh9LCB7IndhbGxUaW1lIjogMTczMzA3MzcyNC4wNTAxMDE1LCAic3RlcCI6IDY0NzAsICJ2YWx1ZSI6IDAuMDI1OTEwODU2MjAyMjQ0NzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzczMi44MzA5Mjc4LCAic3RlcCI6IDY0ODAsICJ2YWx1ZSI6IDAuMDQyMDAyMjgzMDM2NzA4ODN9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc0MS45NjA0MDk0LCAic3RlcCI6IDY0OTAsICJ2YWx1ZSI6IDAuMDM4MzgzNzYzMjgzNDkxMTM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NTAuNzIwMDYwOCwgInN0ZXAiOiA2NTAwLCAidmFsdWUiOiAwLjA1OTMwMzQ2OTk1NTkyMTE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NjAuNDkwNTMwNSwgInN0ZXAiOiA2NTEwLCAidmFsdWUiOiAwLjAzNTYzNTY1NzYwODUwOTA2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzY5Ljg2NTg2MDUsICJzdGVwIjogNjUyMCwgInZhbHVlIjogMC4wMzA2MjE4Mjg1MTEzNTczMDd9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc3OS4xNTI4NDA5LCAic3RlcCI6IDY1MzAsICJ2YWx1ZSI6IDAuMDMyNzA5NjkxNjczNTE3MjN9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc4OS40ODAxMzk3LCAic3RlcCI6IDY1NDAsICJ2YWx1ZSI6IDAuMDM1ODgzMzc4MjM3NDg1ODg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3OTguMTA1ODQ5NywgInN0ZXAiOiA2NTUwLCAidmFsdWUiOiAwLjAzMjg2ODg0MzUyNTY0ODEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MTAuNTU1NDY3NiwgInN0ZXAiOiA2NTYwLCAidmFsdWUiOiAwLjA0ODczMTcxNDQ4NzA3NTgwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczODIwLjAzOTA0MDMsICJzdGVwIjogNjU3MCwgInZhbHVlIjogMC4wNDI4ODM2MjMzOTEzODk4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczODI4LjI0MTIwMDIsICJzdGVwIjogNjU4MCwgInZhbHVlIjogMC4wMzIxNzk3MzU2MDA5NDgzMzR9LCB7IndhbGxUaW1lIjogMTczMzA3MzgzNi44MDA3ODk2LCAic3RlcCI6IDY1OTAsICJ2YWx1ZSI6IDAuMDI4MzE1NDc3MDczMTkyNTk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NDUuOTkwMTQ1NCwgInN0ZXAiOiA2NjAwLCAidmFsdWUiOiAwLjAzNDUzOTM4NjYzMDA1ODI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NTUuMjU0Njk4NSwgInN0ZXAiOiA2NjEwLCAidmFsdWUiOiAwLjAzMzU3NDU3MzY5NTY1OTY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NjQuNjk2MTgzMiwgInN0ZXAiOiA2NjIwLCAidmFsdWUiOiAwLjAzMDc3NzkyMzc2Mjc5ODMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NzMuODM3MTA5NiwgInN0ZXAiOiA2NjMwLCAidmFsdWUiOiAwLjAyNzM0MTgyNDAyNDkxNTY5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczODg3LjUyNzI1OTMsICJzdGVwIjogNjY0MCwgInZhbHVlIjogMC4wMzQzMjg5MDc3MjgxOTUxOX0sIHsid2FsbFRpbWUiOiAxNzMzMDczODk3LjMzNjgyODIsICJzdGVwIjogNjY1MCwgInZhbHVlIjogMC4wMzUzODgyNjEwNzk3ODgyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTA2Ljg3OTQwMywgInN0ZXAiOiA2NjYwLCAidmFsdWUiOiAwLjA0NTUwNzQxNjEyOTExMjI0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTE2LjM1Mjg2NTcsICJzdGVwIjogNjY3MCwgInZhbHVlIjogMC4wMzU5NzM4NjU1Mzg4MzU1MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzkyNS42MjE0NDE0LCAic3RlcCI6IDY2ODAsICJ2YWx1ZSI6IDAuMDI5MjM2MTc1MTE5ODc2ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzkzNC45MTk1NDc2LCAic3RlcCI6IDY2OTAsICJ2YWx1ZSI6IDAuMDM0MDA3MzcwNDcxOTU0MzQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5NDMuNzQ1MjA0NCwgInN0ZXAiOiA2NzAwLCAidmFsdWUiOiAwLjA0NDk1MDA5MDM0ODcyMDU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5NTIuNDc5NzU2OCwgInN0ZXAiOiA2NzEwLCAidmFsdWUiOiAwLjA0NDAyOTEzODk4MjI5NTk5fV19fV0=", + "ok": true, + "headers": [ + [ + "content-length", + "14996" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Lr/pg_2%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIkxyL3BnXzIiLCAicnVuVG9TZXJpZXMiOiB7Ii4iOiBbeyJ3YWxsVGltZSI6IDE3MzMwNjc2MzEuNTM2NTkxNSwgInN0ZXAiOiAwLCAidmFsdWUiOiA5Ljk5OTk5OTk3NDc1MjQyN2UtMDd9LCB7IndhbGxUaW1lIjogMTczMzA2NzY0Ni42NDk2NTQ2LCAic3RlcCI6IDEwLCAidmFsdWUiOiA2LjAwMDAwMDIxMjIyNTEzMmUtMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzY2MC43ODE1OTM4LCAic3RlcCI6IDIwLCAidmFsdWUiOiAxLjEwMDAwMDAwODU5MTQ1MDhlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc2NzQuMTM0NzUzMiwgInN0ZXAiOiAzMCwgInZhbHVlIjogMS41OTk5OTk5OTU5NjAzODgzZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njg3LjA1NDQzMzgsICJzdGVwIjogNDAsICJ2YWx1ZSI6IDIuMDk5OTk5OTgzMzI5MzI2ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njk5LjQ5MDMzMDcsICJzdGVwIjogNTAsICJ2YWx1ZSI6IDIuNTk5OTk5OTcwNjk4MjYzNWUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2NzcxMC42MjY2MTQ2LCAic3RlcCI6IDYwLCAidmFsdWUiOiAzLjA5OTk5OTk1ODA2NzIwMWUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2NzcyMi43NTI4NDk4LCAic3RlcCI6IDcwLCAidmFsdWUiOiAzLjYwMDAwMDEyNzMzNTA3OWUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2NzczMy43MjI3MzMsICJzdGVwIjogODAsICJ2YWx1ZSI6IDQuMDk5OTk5OTMyODA1MDc2ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzUwLjk0NDIxODQsICJzdGVwIjogOTAsICJ2YWx1ZSI6IDQuNjAwMDAwMTAyMDcyOTU0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzYxLjk3ODExMTcsICJzdGVwIjogMTAwLCAidmFsdWUiOiA1LjA5OTk5OTkwNzU0Mjk1MTRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NzEuNjAzNTI4NSwgInN0ZXAiOiAxMTAsICJ2YWx1ZSI6IDUuNjAwMDAwMDc2ODEwODI5M2UtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc4MC41NDQ0MjQ1LCAic3RlcCI6IDEyMCwgInZhbHVlIjogNi4wOTk5OTk4ODIyODA4MjY2ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzkwLjQ4MjQzNzgsICJzdGVwIjogMTMwLCAidmFsdWUiOiA2LjYwMDAwMDA1MTU0ODcwNWUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc5OS4xMDI4MDkyLCAic3RlcCI6IDE0MCwgInZhbHVlIjogNy4xMDAwMDAyMjA4MTY1ODJlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MDkuNDQxNzc5LCAic3RlcCI6IDE1MCwgInZhbHVlIjogNy41OTk5OTk2NjI0ODg2OTllLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MTguOTE4MDU4NCwgInN0ZXAiOiAxNjAsICJ2YWx1ZSI6IDguMDk5OTk5ODMxNzU2NTc3ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODM2LjY0NzM4MzcsICJzdGVwIjogMTcwLCAidmFsdWUiOiA4LjYwMDAwMDAwMTAyNDQ1NWUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg0Ni4zODc5MzM3LCAic3RlcCI6IDE4MCwgInZhbHVlIjogOS4xMDAwMDAxNzAyOTIzMzNlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4NTUuNjY0MTgzLCAic3RlcCI6IDE5MCwgInZhbHVlIjogOS42MDAwMDAzMzk1NjAyMTFlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4NjQuODg1NjE4NywgInN0ZXAiOiAyMDAsICJ2YWx1ZSI6IDAuMDAwMTAwOTk5OTk3ODEyMzIzMjd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg3My45OTg5MjQzLCAic3RlcCI6IDIxMCwgInZhbHVlIjogMC4wMDAxMDU5OTk5OTk1MDUwMDIwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODgzLjc4MTk0ODYsICJzdGVwIjogMjIwLCAidmFsdWUiOiAwLjAwMDExMTAwMDAwMTE5NzY4MDgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4OTIuMTIwMjA0LCAic3RlcCI6IDIzMCwgInZhbHVlIjogMC4wMDAxMTYwMDAwMDI4OTAzNTk2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTAxLjA2NjU2NiwgInN0ZXAiOiAyNDAsICJ2YWx1ZSI6IDAuMDAwMTIwOTk5OTk3MzA3MDgwNzh9LCB7IndhbGxUaW1lIjogMTczMzA2NzkxMC4wNzIyNTg3LCAic3RlcCI6IDI1MCwgInZhbHVlIjogMC4wMDAxMjU5OTk5OTg5OTk3NTk1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTI1Ljk0Nzg0MzMsICJzdGVwIjogMjYwLCAidmFsdWUiOiAwLjAwMDEzMDk5OTk5MzQxNjQ4MDcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MzUuNDU3ODgwMywgInN0ZXAiOiAyNzAsICJ2YWx1ZSI6IDAuMDAwMTM2MDAwMDAyMzg1MTE3MTF9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk0NC4wMTE1NiwgInN0ZXAiOiAyODAsICJ2YWx1ZSI6IDAuMDAwMTQwOTk5OTk2ODAxODM4Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk1Mi41NDI2MjM1LCAic3RlcCI6IDI5MCwgInZhbHVlIjogMC4wMDAxNDYwMDAwMDU3NzA0NzQ2N30sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTYxLjAyNDAyMjYsICJzdGVwIjogMzAwLCAidmFsdWUiOiAwLjAwMDE1MTAwMDAwMDE4NzE5NTg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NzAuMTMxNzk1LCAic3RlcCI6IDMxMCwgInZhbHVlIjogMC4wMDAxNTU5OTk5OTQ2MDM5MTd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk4MC4yMjMxMDI4LCAic3RlcCI6IDMyMCwgInZhbHVlIjogMC4wMDAxNjEwMDAwMDM1NzI1NTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5ODguODEzMjc4NCwgInN0ZXAiOiAzMzAsICJ2YWx1ZSI6IDAuMDAwMTY1OTk5OTk3OTg5Mjc0NTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODAwNS4wODgzNTA1LCAic3RlcCI6IDM0MCwgInZhbHVlIjogMC4wMDAxNzEwMDAwMDY5NTc5MTA5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDE0LjA2MjE0ODMsICJzdGVwIjogMzUwLCAidmFsdWUiOiAwLjAwMDE3NjAwMDAwMTM3NDYzMjEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMjIuNTUwMzQ3MywgInN0ZXAiOiAzNjAsICJ2YWx1ZSI6IDAuMDAwMTgwOTk5OTk1NzkxMzUzMjl9LCB7IndhbGxUaW1lIjogMTczMzA2ODAzMS44MjIwNTgsICJzdGVwIjogMzcwLCAidmFsdWUiOiAwLjAwMDE4NjAwMDAwNDc1OTk4OTY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNDAuNzg0OTQ3NCwgInN0ZXAiOiAzODAsICJ2YWx1ZSI6IDAuMDAwMTkwOTk5OTk5MTc2NzEwODR9LCB7IndhbGxUaW1lIjogMTczMzA2ODA1MC4xNTc0NDQ3LCAic3RlcCI6IDM5MCwgInZhbHVlIjogMC4wMDAxOTU5OTk5OTM1OTM0MzJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODA1OS4xMjMzOTEsICJzdGVwIjogNDAwLCAidmFsdWUiOiAwLjAwMDIwMTAwMDAwMjU2MjA2ODR9LCB7IndhbGxUaW1lIjogMTczMzA2ODA2OC4wODc1Mjc4LCAic3RlcCI6IDQxMCwgInZhbHVlIjogMC4wMDAyMDU5OTk5OTY5Nzg3ODk1N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDg0Ljg0MTY4MywgInN0ZXAiOiA0MjAsICJ2YWx1ZSI6IDAuMDAwMjExMDAwMDA1OTQ3NDI1OTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODA5NC42NjM5NzA1LCAic3RlcCI6IDQzMCwgInZhbHVlIjogMC4wMDAyMTYwMDAwMDAzNjQxNDcxM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTAzLjcwNTUzNjYsICJzdGVwIjogNDQwLCAidmFsdWUiOiAwLjAwMDIyMDk5OTk5NDc4MDg2ODN9LCB7IndhbGxUaW1lIjogMTczMzA2ODExMi42OTcyMDM0LCAic3RlcCI6IDQ1MCwgInZhbHVlIjogMC4wMDAyMjYwMDAwMDM3NDk1MDQ2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTIxLjQ5ODU0MDksICJzdGVwIjogNDYwLCAidmFsdWUiOiAwLjAwMDIzMDk5OTk5ODE2NjIyNTg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMzAuNzI1MjEyNiwgInN0ZXAiOiA0NzAsICJ2YWx1ZSI6IDAuMDAwMjM2MDAwMDA3MTM0ODYyMjR9LCB7IndhbGxUaW1lIjogMTczMzA2ODEzOS44NTMyMzY0LCAic3RlcCI6IDQ4MCwgInZhbHVlIjogMC4wMDAyNDEwMDAwMDE1NTE1ODM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxNDkuMzY3NzQ2NCwgInN0ZXAiOiA0OTAsICJ2YWx1ZSI6IDAuMDAwMjQ2MDAwMDEwNTIwMjE5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTU4LjA2Nzc0NjYsICJzdGVwIjogNTAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODE3NC4xMTMyOTQ0LCAic3RlcCI6IDUxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxODIuNzE3Mjk2OCwgInN0ZXAiOiA1MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTkyLjQxMTM2MzQsICJzdGVwIjogNTMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODIwMS44MDU4ODY3LCAic3RlcCI6IDU0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMTAuNjUyMjc1OCwgInN0ZXAiOiA1NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjIwLjE5MjcwNywgInN0ZXAiOiA1NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjI5LjE1NjgwMTcsICJzdGVwIjogNTcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODIzOC41ODg5MzcsICJzdGVwIjogNTgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODI1Ni4wNzA3NzM4LCAic3RlcCI6IDU5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNjUuNDI5NTg5NywgInN0ZXAiOiA2MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Mjc0LjY1NDIyLCAic3RlcCI6IDYxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyODMuNzY3NjkxNiwgInN0ZXAiOiA2MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjkzLjMzMTczMDQsICJzdGVwIjogNjMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODMwMi42NDQ3NjksICJzdGVwIjogNjQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODMxMS4zODU3NjQ0LCAic3RlcCI6IDY1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMjAuMzg3OTE0MiwgInN0ZXAiOiA2NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzI4LjcyOTA3NjYsICJzdGVwIjogNjcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODM0NC40NTk1MTU2LCAic3RlcCI6IDY4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNTMuNzE0Nzc4MiwgInN0ZXAiOiA2OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzYyLjA1NTQwMzIsICJzdGVwIjogNzAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODM3MS4xMDE3ODA3LCAic3RlcCI6IDcxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzODAuNTMwODg3NiwgInN0ZXAiOiA3MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzkwLjA4NDU5NjYsICJzdGVwIjogNzMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODM5OC43MTg4OTY5LCAic3RlcCI6IDc0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MDcuMTIxNzI0NCwgInN0ZXAiOiA3NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDIzLjA2ODExMTcsICJzdGVwIjogNzYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODQzMS40MDI4NDg3LCAic3RlcCI6IDc3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NDAuNDIyODE2OCwgInN0ZXAiOiA3ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDQ5LjAwNDI5NjMsICJzdGVwIjogNzkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ1Ny42MzQwNDA4LCAic3RlcCI6IDgwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NjcuMDQ1MTQ5MywgInN0ZXAiOiA4MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDc1LjYxNzk2NTUsICJzdGVwIjogODIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ4NC45NzY2NjMsICJzdGVwIjogODMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODUwMC43MzAwNTc1LCAic3RlcCI6IDg0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MDkuMzA1NTA5OCwgInN0ZXAiOiA4NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTE5LjAyMDEyODcsICJzdGVwIjogODYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODUyNy40OTY2MDg3LCAic3RlcCI6IDg3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MzYuOTE4MTg3NiwgInN0ZXAiOiA4ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTQ0LjkwNjcxMjMsICJzdGVwIjogODkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODU1My41NjkxMTYsICJzdGVwIjogOTAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODU2Mi42ODQwOTM1LCAic3RlcCI6IDkxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NzEuMjQ0MTgyMywgInN0ZXAiOiA5MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTg0Ljc3NTAyNiwgInN0ZXAiOiA5MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTkzLjc3MDgxMDQsICJzdGVwIjogOTQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODYwMi43NjUwMTY2LCAic3RlcCI6IDk1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MTEuMDM4ODg0LCAic3RlcCI6IDk2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MjAuMjI1OTEyMywgInN0ZXAiOiA5NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjI4Ljg0MDkwMzgsICJzdGVwIjogOTgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODYzNy42Mjk3OTQ2LCAic3RlcCI6IDk5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2NDYuNjcyMDc5OCwgInN0ZXAiOiAxMDAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODY2Mi43NTY2NTk3LCAic3RlcCI6IDEwMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjcyLjA1MzcyMTIsICJzdGVwIjogMTAyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2ODAuNTYyNTA3LCAic3RlcCI6IDEwMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjkwLjE4NTA4NTUsICJzdGVwIjogMTA0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2OTguODQ3NDcxNywgInN0ZXAiOiAxMDUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODcwNy43NDI3NjQsICJzdGVwIjogMTA2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MTcuMzQ0MTksICJzdGVwIjogMTA3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MjYuMzYwOTEsICJzdGVwIjogMTA4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MzUuMjUwOTgsICJzdGVwIjogMTA5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3NDkuNTQ4MDE0LCAic3RlcCI6IDExMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzU4LjM3NDg5NywgInN0ZXAiOiAxMTEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODc2Ny4wMDMzODE1LCAic3RlcCI6IDExMjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4Nzc2LjYxODQzODUsICJzdGVwIjogMTEzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3ODUuNDAwNTUyMywgInN0ZXAiOiAxMTQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODc5NC4yNzg2MDcsICJzdGVwIjogMTE1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MDIuNjk2OTE0NywgInN0ZXAiOiAxMTYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODgxMS41NTA5OTM0LCAic3RlcCI6IDExNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODI0Ljk2NTkxMDcsICJzdGVwIjogMTE4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MzQuMzc2NTk4NCwgInN0ZXAiOiAxMTkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODg0My41MTU2ODA2LCAic3RlcCI6IDEyMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODUyLjIyNzgzNjEsICJzdGVwIjogMTIxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NjEuMTE2MzE0LCAic3RlcCI6IDEyMjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODcwLjA1NTM0MzIsICJzdGVwIjogMTIzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NzguNzE5OTk5OCwgInN0ZXAiOiAxMjQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODg4Ny43MzE2MDIsICJzdGVwIjogMTI1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MDMuMTY2ODQxMywgInN0ZXAiOiAxMjYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODkxMi40MDUyMzU4LCAic3RlcCI6IDEyNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTIxLjQ3MTU4NiwgInN0ZXAiOiAxMjgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODkyOS43NDYyNDU0LCAic3RlcCI6IDEyOTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTM5LjUwMDQ5MDcsICJzdGVwIjogMTMwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NDguOTI2OTc1NywgInN0ZXAiOiAxMzEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODk1Ny4yMzQwMDcxLCAic3RlcCI6IDEzMjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTY2LjA3NjYyNTMsICJzdGVwIjogMTMzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NzUuNTY0NzQ5NSwgInN0ZXAiOiAxMzQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODk4OS43OTc0MTEsICJzdGVwIjogMTM1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5OTguMjU3MTM2LCAic3RlcCI6IDEzNjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDA3LjE0NjkyOTcsICJzdGVwIjogMTM3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwMTUuOTE5OTExNiwgInN0ZXAiOiAxMzgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTAyNS4zMDI4MDIsICJzdGVwIjogMTM5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwMzQuNDgwOTYyLCAic3RlcCI6IDE0MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDQyLjc5MjQ2NywgInN0ZXAiOiAxNDEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTA1Mi4xMzY4MzY1LCAic3RlcCI6IDE0MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDY1LjAwMTU2NDUsICJzdGVwIjogMTQzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNzQuNTIzMzUzMywgInN0ZXAiOiAxNDQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTA4My43NzU4MzE3LCAic3RlcCI6IDE0NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDkyLjI1NjgzNjQsICJzdGVwIjogMTQ2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMDEuMDI4OTc5NSwgInN0ZXAiOiAxNDcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTEwOS45MDQ1MTcsICJzdGVwIjogMTQ4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMTkuMTE3MDUwMiwgInN0ZXAiOiAxNDkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTEyOC40MTQyNjYsICJzdGVwIjogMTUwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMzcuNjA1MDA4OCwgInN0ZXAiOiAxNTEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTE1MC41NDIzMzMxLCAic3RlcCI6IDE1MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTU5Ljc1NTM5MSwgInN0ZXAiOiAxNTMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTE2OC4xNjg1NTAzLCAic3RlcCI6IDE1NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTc2LjgzOTMwMTYsICJzdGVwIjogMTU1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxODUuODkwNjMxMiwgInN0ZXAiOiAxNTYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTE5NC45MjE5OCwgInN0ZXAiOiAxNTcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTIwMy45MDk5NDgsICJzdGVwIjogMTU4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMTIuNzEzNjA5MiwgInN0ZXAiOiAxNTkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTIyNS41MzI3MjU2LCAic3RlcCI6IDE2MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjM1LjQ2MjExOSwgInN0ZXAiOiAxNjEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTI0NC42Mjc2OTE1LCAic3RlcCI6IDE2MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjU0LjI2OTk5NTUsICJzdGVwIjogMTYzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNjMuMDAzNTQxNywgInN0ZXAiOiAxNjQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTI3MS44NjQ4NzUsICJzdGVwIjogMTY1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyODAuNTA4MTg4LCAic3RlcCI6IDE2NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Mjg5LjY3ODEwOTIsICJzdGVwIjogMTY3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMDMuNjA3MjEsICJzdGVwIjogMTY4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMTIuNDc3NTk0LCAic3RlcCI6IDE2OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzIxLjgzNjgyMDEsICJzdGVwIjogMTcwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMzAuMzQ2MjYxNywgInN0ZXAiOiAxNzEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTMzOS4yNDMyNDUxLCAic3RlcCI6IDE3MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzQ2Ljg1NDgwNTcsICJzdGVwIjogMTczMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNTUuNjUwMzkzNSwgInN0ZXAiOiAxNzQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTM2NC41MTAwMzUzLCAic3RlcCI6IDE3NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzczLjczNjYwNTQsICJzdGVwIjogMTc2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzODcuNTM5ODI1MiwgInN0ZXAiOiAxNzcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTM5Ni40NjQ2OTM4LCAic3RlcCI6IDE3ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDA1Ljk5NDUzOSwgInN0ZXAiOiAxNzkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTQxNS4wNTE4NjY4LCAic3RlcCI6IDE4MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDIzLjkwNTg2OTcsICJzdGVwIjogMTgxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MzIuNTI5MTg1LCAic3RlcCI6IDE4MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDQxLjIxNDg4NzksICJzdGVwIjogMTgzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NTAuMDg0NjE1NSwgInN0ZXAiOiAxODQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ2My4xMDUzNzM5LCAic3RlcCI6IDE4NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDcxLjU3MDU3MzMsICJzdGVwIjogMTg2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0ODAuNDk1OTY5NSwgInN0ZXAiOiAxODcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ4OS4zODI4NzE2LCAic3RlcCI6IDE4ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDk3Ljk3NDQ3NDQsICJzdGVwIjogMTg5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MDYuNzkxOTkwOCwgInN0ZXAiOiAxOTAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTUxNS44MjI1NDI3LCAic3RlcCI6IDE5MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTI0LjYzNDQwMSwgInN0ZXAiOiAxOTIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTUzMy41Mzk5MDQ4LCAic3RlcCI6IDE5MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTUwLjQ3NjM3LCAic3RlcCI6IDE5NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTU4LjgyNTYwMiwgInN0ZXAiOiAxOTUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTU2Ny43NTU2OTgyLCAic3RlcCI6IDE5NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTc2LjM0Mjg3NCwgInN0ZXAiOiAxOTcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTU4NS41MjY4MjU3LCAic3RlcCI6IDE5ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTk0LjM0ODA3NDQsICJzdGVwIjogMTk5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MDIuMzk5MjYzOSwgInN0ZXAiOiAyMDAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTYxMC4yNDc1MDYxLCAic3RlcCI6IDIwMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjI2LjY4NTE3MDcsICJzdGVwIjogMjAyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MzUuMDI4NTkwNywgInN0ZXAiOiAyMDMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTY0My44MjA0MzAzLCAic3RlcCI6IDIwNDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjUyLjE5MjI5NDYsICJzdGVwIjogMjA1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NjAuNDUxMjQ5OCwgInN0ZXAiOiAyMDYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTY2OS41ODk5MDI5LCAic3RlcCI6IDIwNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Njc4Ljc3NTk1ODMsICJzdGVwIjogMjA4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2ODYuOTQyNTk2NCwgInN0ZXAiOiAyMDkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTcwMC42MDAzMjMsICJzdGVwIjogMjEwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MDguNzI0MTMyOCwgInN0ZXAiOiAyMTEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTcxNy40NDYxNDksICJzdGVwIjogMjEyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MjYuMTM5MDMsICJzdGVwIjogMjEzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MzUuMDM1NzM4NSwgInN0ZXAiOiAyMTQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTc0My4zMDM2MjcsICJzdGVwIjogMjE1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NTIuNDk4NDcwNSwgInN0ZXAiOiAyMTYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTc2MS40NDg4MTAzLCAic3RlcCI6IDIxNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzcwLjQzMTAzOTgsICJzdGVwIjogMjE4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3ODQuMzYxNzUyLCAic3RlcCI6IDIxOTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzkzLjEyMDIwODUsICJzdGVwIjogMjIwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MDEuNjI5MTczLCAic3RlcCI6IDIyMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODEwLjYwNTQ3NTcsICJzdGVwIjogMjIyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MTkuMzM5Mjk1LCAic3RlcCI6IDIyMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODI3LjMyMzkyMjIsICJzdGVwIjogMjI0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MzUuODY1MTcyMSwgInN0ZXAiOiAyMjUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTg0NC4yMzMzMzYsICJzdGVwIjogMjI2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NTYuNzQ3NDIwMywgInN0ZXAiOiAyMjcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTg2NS4yNTUyMTAyLCAic3RlcCI6IDIyODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODc0LjAwMjUyMjcsICJzdGVwIjogMjI5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4ODEuNzc5MTgwMywgInN0ZXAiOiAyMzAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTg5MC40MTEyMjIsICJzdGVwIjogMjMxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4OTguODc0MjM5NCwgInN0ZXAiOiAyMzIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTkwOC4zMTUzNzg0LCAic3RlcCI6IDIzMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTE3LjQxMjgyODcsICJzdGVwIjogMjM0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MjUuODQ3NjQyLCAic3RlcCI6IDIzNTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTM4LjY5OTgzNywgInN0ZXAiOiAyMzYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTk0Ny40MjM2NjY3LCAic3RlcCI6IDIzNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTU2LjIwMzEyMDUsICJzdGVwIjogMjM4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NjQuMjcxOTc2NywgInN0ZXAiOiAyMzkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTk3My4zMjM3MDkyLCAic3RlcCI6IDI0MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTgxLjQyOTQ4NDgsICJzdGVwIjogMjQxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5OTAuMTM3MTIwNSwgInN0ZXAiOiAyNDIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA2OTk5OC43OTUxOTc3LCAic3RlcCI6IDI0MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDEyLjQ1MzgxOTgsICJzdGVwIjogMjQ0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMjEuNTcyMjgyMywgInN0ZXAiOiAyNDUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDAzMC4xODg1NDAyLCAic3RlcCI6IDI0NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDM5LjIxNjg0NiwgInN0ZXAiOiAyNDcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDA0OC4yNjY0NzQyLCAic3RlcCI6IDI0ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDU2LjE1MzExNTUsICJzdGVwIjogMjQ5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNjQuNDQ3OTE2LCAic3RlcCI6IDI1MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDcyLjU0NjU4LCAic3RlcCI6IDI1MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDg3LjY1NDc3MTYsICJzdGVwIjogMjUyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwOTUuNDM4ODQ4MywgInN0ZXAiOiAyNTMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDEwMy43NjYzMjA1LCAic3RlcCI6IDI1NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTEzLjA0NjE5OSwgInN0ZXAiOiAyNTUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDEyMS4wMzUyNDUsICJzdGVwIjogMjU2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMjkuNTc2MzUyNCwgInN0ZXAiOiAyNTcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDEzOC4zNTgxMjIzLCAic3RlcCI6IDI1ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTQ3LjA4NDgwMDUsICJzdGVwIjogMjU5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNTUuNDg0MjkyNSwgInN0ZXAiOiAyNjAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDE3Mi41NzUyODExLCAic3RlcCI6IDI2MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTgxLjIwODQ4MywgInN0ZXAiOiAyNjIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDE4OS42ODk1NDkyLCAic3RlcCI6IDI2MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTk4LjM5NjYzMzYsICJzdGVwIjogMjY0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMDYuNzA0ODUxLCAic3RlcCI6IDI2NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjE1LjU5NzE2OTQsICJzdGVwIjogMjY2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMjQuMzEyODA4NSwgInN0ZXAiOiAyNjcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDIzMy41MzY3MTYyLCAic3RlcCI6IDI2ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjQ2Ljc1NjA5OTcsICJzdGVwIjogMjY5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNTYuMDI2MDk5NCwgInN0ZXAiOiAyNzAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDI2NC45NDgyODY4LCAic3RlcCI6IDI3MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjczLjgwMjIwODQsICJzdGVwIjogMjcyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyODIuOTU2NDE5NSwgInN0ZXAiOiAyNzMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDI5Mi4yNzU0LCAic3RlcCI6IDI3NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzAwLjMzNDAzMjMsICJzdGVwIjogMjc1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMDkuNDA5NjM3MiwgInN0ZXAiOiAyNzYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDMxNy41Mjg5OTQzLCAic3RlcCI6IDI3NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzMwLjQzNDA5OTIsICJzdGVwIjogMjc4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMzkuODIwMDQyOCwgInN0ZXAiOiAyNzkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDM0Ny45OTAzOTgyLCAic3RlcCI6IDI4MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzU2Ljg4ODMxMDcsICJzdGVwIjogMjgxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNjUuNTc0MzMzMiwgInN0ZXAiOiAyODIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDM3NC4zODk5NzQsICJzdGVwIjogMjgzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzODIuNDI0NDk0MywgInN0ZXAiOiAyODQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDM5MC45Mzg2MzA2LCAic3RlcCI6IDI4NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDA2LjY3Njc1MjMsICJzdGVwIjogMjg2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0MTUuMDg2MjgzLCAic3RlcCI6IDI4NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDIyLjkxNzUzNDQsICJzdGVwIjogMjg4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0MzEuNTM0ODM5NCwgInN0ZXAiOiAyODkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzOS45NzgyOTEzLCAic3RlcCI6IDI5MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDQ4LjA4MjgxMSwgInN0ZXAiOiAyOTEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ1Ny40MjExMzYxLCAic3RlcCI6IDI5MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDY2LjcyMDM4ODcsICJzdGVwIjogMjkzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NzkuMzMwNTI5MiwgInN0ZXAiOiAyOTQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ4OC43Nzk1ODI1LCAic3RlcCI6IDI5NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDk3LjIyMjM2MSwgInN0ZXAiOiAyOTYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDUwNS42MzExNDIxLCAic3RlcCI6IDI5NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTEzLjM1MTM0MTUsICJzdGVwIjogMjk4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MjIuMjk4NDAyNSwgInN0ZXAiOiAyOTkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDUzMC4yMDk5NTY2LCAic3RlcCI6IDMwMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTM4LjI5NzU1LCAic3RlcCI6IDMwMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTQ3LjM5NzgyMTcsICJzdGVwIjogMzAyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NjQuMDQ4Nzc5NywgInN0ZXAiOiAzMDMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDU3Mi4zNjcxNTM2LCAic3RlcCI6IDMwNDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTgwLjY2ODE2MzgsICJzdGVwIjogMzA1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1ODguNjUwNzA4LCAic3RlcCI6IDMwNjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTk3LjQxOCwgInN0ZXAiOiAzMDcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDYwNi4xMzQ3MjAzLCAic3RlcCI6IDMwODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjE0LjQzNjQ4NDMsICJzdGVwIjogMzA5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MjMuOTk3Mjg2NiwgInN0ZXAiOiAzMTAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDYzNy4yNDk5NzI2LCAic3RlcCI6IDMxMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjQ1LjY3OTIyLCAic3RlcCI6IDMxMjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjU0LjI2NzAyNSwgInN0ZXAiOiAzMTMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDY2My4zMTc4MTg5LCAic3RlcCI6IDMxNDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjcxLjExNDM3MTMsICJzdGVwIjogMzE1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NzkuNzYyMDA3NSwgInN0ZXAiOiAzMTYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDY4Ny44NDEwOTc4LCAic3RlcCI6IDMxNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjk1Ljg1MjE5NDUsICJzdGVwIjogMzE4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MDQuNjE4OTg3OCwgInN0ZXAiOiAzMTkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDcxNy4xMDU5NTM1LCAic3RlcCI6IDMyMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzI2LjA5NTIwODIsICJzdGVwIjogMzIxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MzQuNzcyNDg0OCwgInN0ZXAiOiAzMjIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDc0NC40MDgxMzc2LCAic3RlcCI6IDMyMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzUyLjQ5Nzk4NTYsICJzdGVwIjogMzI0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NjEuNzE3NDk0NywgInN0ZXAiOiAzMjUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDc3MC4zNzI5OCwgInN0ZXAiOiAzMjYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDc3OS43MjY1NzQyLCAic3RlcCI6IDMyNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzkzLjY3NTM1MjYsICJzdGVwIjogMzI4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MDEuODk2NTkzOCwgInN0ZXAiOiAzMjkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDgxMC4xNTc2MzcxLCAic3RlcCI6IDMzMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODE4LjcyMjUzNTYsICJzdGVwIjogMzMxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MjcuMDAyNTkzOCwgInN0ZXAiOiAzMzIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDgzNS41NzAyNzUzLCAic3RlcCI6IDMzMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODQzLjk2OTk5NjcsICJzdGVwIjogMzM0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NTMuMDg3ODMzNCwgInN0ZXAiOiAzMzUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDg2NS40MTY2MjIsICJzdGVwIjogMzM2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NzMuNjU3OTMsICJzdGVwIjogMzM3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4ODMuMzMyNDI3MywgInN0ZXAiOiAzMzgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDg5Mi4zNzMzMzgyLCAic3RlcCI6IDMzOTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTAwLjcxODgxODcsICJzdGVwIjogMzQwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MDguNTAwNzkyNSwgInN0ZXAiOiAzNDEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDkxNi42NTIzNzI2LCAic3RlcCI6IDM0MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTI1LjIwNDI5OCwgInN0ZXAiOiAzNDMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDkzMy44MDY5MDQsICJzdGVwIjogMzQ0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NDcuNDc2ODk5NCwgInN0ZXAiOiAzNDUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDk1Ni4xODM3MzU0LCAic3RlcCI6IDM0NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTY0LjI2MjkxNjMsICJzdGVwIjogMzQ3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NzIuMzgyNjMzLCAic3RlcCI6IDM0ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTgwLjY0Mzc3NTcsICJzdGVwIjogMzQ5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5ODkuNjg0MDQzNCwgInN0ZXAiOiAzNTAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MDk5Ny43ODQ4OTE4LCAic3RlcCI6IDM1MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDA2LjI2Nzk4MDYsICJzdGVwIjogMzUyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMTguODkzMTYyLCAic3RlcCI6IDM1MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDI3LjE5MzE4MTUsICJzdGVwIjogMzU0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMzUuMzE3MTU0NiwgInN0ZXAiOiAzNTUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTA0My43NDIyODMzLCAic3RlcCI6IDM1NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDUxLjg2ODgxMTgsICJzdGVwIjogMzU3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNjAuNDkyODE0NSwgInN0ZXAiOiAzNTgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTA2OC44NzU3ODk0LCAic3RlcCI6IDM1OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDc3LjcwOTYxNSwgInN0ZXAiOiAzNjAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTA4Ni4yMDkwMTY4LCAic3RlcCI6IDM2MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTAxLjY1NTg3MzUsICJzdGVwIjogMzYyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMDkuNjE2NDEzLCAic3RlcCI6IDM2MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTE4LjEyNTk2MzcsICJzdGVwIjogMzY0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMjYuOTg5NjcyMiwgInN0ZXAiOiAzNjUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTEzNS44MjQwNzg2LCAic3RlcCI6IDM2NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTQ0LjI0NDkyNTcsICJzdGVwIjogMzY3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNTIuOTYxMjczNCwgInN0ZXAiOiAzNjgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTE2MC41OTk5MzY3LCAic3RlcCI6IDM2OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTczLjc0NzQ5MjMsICJzdGVwIjogMzcwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExODIuODc5OTgyMiwgInN0ZXAiOiAzNzEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTE5MS4yMDY2MTEyLCAic3RlcCI6IDM3MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjAwLjMzMDAxOSwgInN0ZXAiOiAzNzMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTIwOC4zNjI0NjYsICJzdGVwIjogMzc0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMTYuNTY4NTY1LCAic3RlcCI6IDM3NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjI0LjY1ODY2MTEsICJzdGVwIjogMzc2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMzIuODU3MzI3NSwgInN0ZXAiOiAzNzcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTI0OC41MzA1OTI3LCAic3RlcCI6IDM3ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjU3LjM4ODIzNTMsICJzdGVwIjogMzc5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNjUuNTY0MTYzLCAic3RlcCI6IDM4MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjc0LjE3NTUwMTMsICJzdGVwIjogMzgxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyODMuMDE0Nzk3LCAic3RlcCI6IDM4MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjkxLjcyNjMyODgsICJzdGVwIjogMzgzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyOTkuODg4NDM4LCAic3RlcCI6IDM4NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzA4LjQ3NjE5NjUsICJzdGVwIjogMzg1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMTYuOTQ4MjU3LCAic3RlcCI6IDM4NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzMwLjIxMjQyNTcsICJzdGVwIjogMzg3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMzguOTg1ODAxLCAic3RlcCI6IDM4ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzQ3LjczMzg1NiwgInN0ZXAiOiAzODkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTM1Ny4wMzEwMjc2LCAic3RlcCI6IDM5MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzY1LjIyMjI5NTUsICJzdGVwIjogMzkxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNzQuMTMxODA0MiwgInN0ZXAiOiAzOTIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTM4Mi44MTA5MTU1LCAic3RlcCI6IDM5MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzkxLjU2NTUwODEsICJzdGVwIjogMzk0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MDQuNDY0ODM1MiwgInN0ZXAiOiAzOTUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTQxMi4zMzU3MzQ2LCAic3RlcCI6IDM5NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDIxLjE1NDUwNDMsICJzdGVwIjogMzk3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MzAuMTE3NDc3NywgInN0ZXAiOiAzOTgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTQzOC40MTExNTk4LCAic3RlcCI6IDM5OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDQ3LjcyNTY4NDIsICJzdGVwIjogNDAwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NTYuMTkzNjg1LCAic3RlcCI6IDQwMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDY0Ljc0NjY3MjIsICJzdGVwIjogNDAyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NzMuMzkzOTQ2LCAic3RlcCI6IDQwMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDkwLjI4NDE0NjUsICJzdGVwIjogNDA0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0OTguNzA4OTYsICJzdGVwIjogNDA1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MDcuMDk0NTg0LCAic3RlcCI6IDQwNjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTE1LjA2NDk1ODgsICJzdGVwIjogNDA3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MjMuODc4NTM2NSwgInN0ZXAiOiA0MDgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTUzMi4yODI1MzQsICJzdGVwIjogNDA5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NDAuOTE1MDk3MiwgInN0ZXAiOiA0MTAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTU0OS4xNzM2NjYyLCAic3RlcCI6IDQxMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTY1LjgzMzk0MTIsICJzdGVwIjogNDEyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NzMuNjI5MTY5LCAic3RlcCI6IDQxMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTgyLjA5MzU5MzQsICJzdGVwIjogNDE0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1OTAuMDIwMDExNCwgInN0ZXAiOiA0MTUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTU5OS4yMzg1MDU4LCAic3RlcCI6IDQxNjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjA4LjA2MTQxNTIsICJzdGVwIjogNDE3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2MTYuMTgxNTU3NCwgInN0ZXAiOiA0MTgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTYyNi4wODA2MTA4LCAic3RlcCI6IDQxOTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjQxLjAwNjExMTEsICJzdGVwIjogNDIwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NDkuMDM4MjI2MSwgInN0ZXAiOiA0MjEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTY1OC41MjkxNjksICJzdGVwIjogNDIyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NjcuOTYzODU0LCAic3RlcCI6IDQyMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjc2LjEwNjUxNTYsICJzdGVwIjogNDI0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2ODQuMzc2MjE5LCAic3RlcCI6IDQyNTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjkzLjEwNzQ1MzYsICJzdGVwIjogNDI2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MDIuMTgxNzE5LCAic3RlcCI6IDQyNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzEwLjYyNzYyNzQsICJzdGVwIjogNDI4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MjYuNjc1MjIyNiwgInN0ZXAiOiA0MjkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTczNS4yMTM0NzM4LCAic3RlcCI6IDQzMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzQyLjk1NTAxNjYsICJzdGVwIjogNDMxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NTEuNTgzNzcxNywgInN0ZXAiOiA0MzIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTc2MC4wMzI1ODg1LCAic3RlcCI6IDQzMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzY4LjQyOTMwODIsICJzdGVwIjogNDM0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NzcuMzk5ODYzLCAic3RlcCI6IDQzNTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzg1LjU0NTM0OTYsICJzdGVwIjogNDM2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MDAuODgzMjcsICJzdGVwIjogNDM3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MDkuMjYzNTkxNSwgInN0ZXAiOiA0MzgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTgxNy4zNDQxNTQ0LCAic3RlcCI6IDQzOTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODI2LjQyODE5MzYsICJzdGVwIjogNDQwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MzQuODg1NjMwMSwgInN0ZXAiOiA0NDEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTg0My40NDQ2MDg3LCAic3RlcCI6IDQ0MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODUxLjU5MzgyMywgInN0ZXAiOiA0NDMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTg1OS45MjE1MTk1LCAic3RlcCI6IDQ0NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODY4LjY3MTEwMjMsICJzdGVwIjogNDQ1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4ODEuMzM0NzM1OSwgInN0ZXAiOiA0NDYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTg4OS42MzQwMzUsICJzdGVwIjogNDQ3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4OTguNDE4ODE1OSwgInN0ZXAiOiA0NDgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTkwNy4zMzQwNjAyLCAic3RlcCI6IDQ0OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTE2LjI3NTkyNywgInN0ZXAiOiA0NTAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTkyNS4zNDY3MzA3LCAic3RlcCI6IDQ1MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTMzLjMyNzE5NDUsICJzdGVwIjogNDUyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NDEuNDgwNjYxLCAic3RlcCI6IDQ1MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTU0LjE2NzQ1MjgsICJzdGVwIjogNDU0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NjIuMzkzNjcyNSwgInN0ZXAiOiA0NTUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTk3MC41MTEwNjgzLCAic3RlcCI6IDQ1NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTc4Ljg2Nzc0NTYsICJzdGVwIjogNDU3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5ODcuNzA4NDY3NywgInN0ZXAiOiA0NTgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MTk5Ni40NDE4Nzg2LCAic3RlcCI6IDQ1OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDA0LjQ3Mzg1MDcsICJzdGVwIjogNDYwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMTIuNzQyMzgwNiwgInN0ZXAiOiA0NjEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjAyNS4zOTg0NzksICJzdGVwIjogNDYyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMzQuMTE1Nzg4MiwgInN0ZXAiOiA0NjMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjA0My4wMzUwNTY0LCAic3RlcCI6IDQ2NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDUxLjc4MTkzNDcsICJzdGVwIjogNDY1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNjAuMTA1NjMsICJzdGVwIjogNDY2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNjguNjAwNDk0MSwgInN0ZXAiOiA0NjcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjA3Ni44MzM5MjYsICJzdGVwIjogNDY4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwODUuMzczNDcyMiwgInN0ZXAiOiA0NjkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjA5My43NDU5MTgzLCAic3RlcCI6IDQ3MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTA2Ljk4NzUxOTcsICJzdGVwIjogNDcxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMTUuNjYyMzQyLCAic3RlcCI6IDQ3MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTIzLjk0Nzc0OTksICJzdGVwIjogNDczMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMzIuMjc3NzYsICJzdGVwIjogNDc0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNDAuNDE3NjE3LCAic3RlcCI6IDQ3NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTQ5LjA4NDQ0OCwgInN0ZXAiOiA0NzYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjE1Ny40MDg5NTQxLCAic3RlcCI6IDQ3NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTY1LjQ4NjU0MDYsICJzdGVwIjogNDc4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNzkuNjQ1NTUsICJzdGVwIjogNDc5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxODguMzI2NzI2NywgInN0ZXAiOiA0ODAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjE5Ni44NDQyNTk3LCAic3RlcCI6IDQ4MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjA0LjU1OTQyMDYsICJzdGVwIjogNDgyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMTMuMDk2NzksICJzdGVwIjogNDgzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMjEuNjY0MDMyNSwgInN0ZXAiOiA0ODQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjIyOS44OTEyMzA4LCAic3RlcCI6IDQ4NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjM4LjA1MzM0MzgsICJzdGVwIjogNDg2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNDYuMzQwNzMxLCAic3RlcCI6IDQ4NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjYxLjI2NTEzMzksICJzdGVwIjogNDg4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNjkuODQ5MzA5LCAic3RlcCI6IDQ4OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjc4Ljg1ODQ3OSwgInN0ZXAiOiA0OTAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjI4Ny41MzE4MjA4LCAic3RlcCI6IDQ5MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjk1Ljk0NDI5MTYsICJzdGVwIjogNDkyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMDQuMzUyODM5MiwgInN0ZXAiOiA0OTMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjMxMy41MDcyNTI1LCAic3RlcCI6IDQ5NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzIxLjMyMjUxODMsICJzdGVwIjogNDk1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMzcuMDIyODc4MiwgInN0ZXAiOiA0OTYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjM0NS41Mjc4NTIzLCAic3RlcCI6IDQ5NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzUzLjQyNzE0MTcsICJzdGVwIjogNDk4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNjIuNDEwNzk3LCAic3RlcCI6IDQ5OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzcxLjc0MzUwNSwgInN0ZXAiOiA1MDAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjM4MC41MjcyMjUsICJzdGVwIjogNTAxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzODkuMDIzODY4MywgInN0ZXAiOiA1MDIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjM5Ny43ODI4Mzc0LCAic3RlcCI6IDUwMzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDExLjI5NjMzOTgsICJzdGVwIjogNTA0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MTkuNDcxMzE5LCAic3RlcCI6IDUwNTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDI4LjM2OTc3ODIsICJzdGVwIjogNTA2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MzcuMTEzOTkzNiwgInN0ZXAiOiA1MDcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ0Ni4xNzI3NTQzLCAic3RlcCI6IDUwODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDU0LjQyNTk1NTgsICJzdGVwIjogNTA5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NjIuNDA4MDg0NCwgInN0ZXAiOiA1MTAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ3MS4xNDc1MTYsICJzdGVwIjogNTExMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NzguOTQ0MDI3MiwgInN0ZXAiOiA1MTIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ5MS4zMTk3MTgsICJzdGVwIjogNTEzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0OTkuMjU2MjUsICJzdGVwIjogNTE0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MDcuMTA5MzkzNiwgInN0ZXAiOiA1MTUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjUxNS4zMTQ2MDE0LCAic3RlcCI6IDUxNjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTIzLjQ5NjY0MDQsICJzdGVwIjogNTE3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1MzEuMDg0ODIxNSwgInN0ZXAiOiA1MTgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjU0MC4wMTg1MDgyLCAic3RlcCI6IDUxOTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTQ4LjY0ODgxNSwgInN0ZXAiOiA1MjAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjU2MS40MTI2NjUxLCAic3RlcCI6IDUyMTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTY5Ljg5MzA4MTIsICJzdGVwIjogNTIyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NzguNjc1ODM0MiwgInN0ZXAiOiA1MjMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjU4Ni45Mzg4NDU2LCAic3RlcCI6IDUyNDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTk1LjAzMTkzNywgInN0ZXAiOiA1MjUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjYwMy4xNzA5MTgsICJzdGVwIjogNTI2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MTEuMDc3MDA1LCAic3RlcCI6IDUyNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjE5Ljk1MTgxOCwgInN0ZXAiOiA1MjgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjYyOC42MzIxNiwgInN0ZXAiOiA1MjkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjY0MS4zNzM0NzI1LCAic3RlcCI6IDUzMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjQ5Ljg1NTEzOTMsICJzdGVwIjogNTMxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NTcuOTY4Njg4NywgInN0ZXAiOiA1MzIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjY2Ny4wMjY2MDIsICJzdGVwIjogNTMzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NzUuOTQwNDQzOCwgInN0ZXAiOiA1MzQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjY4NC4yMzU5OTcsICJzdGVwIjogNTM1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2OTEuODU1NzIyNywgInN0ZXAiOiA1MzYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjcwMC4xNDU1NTUsICJzdGVwIjogNTM3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MTMuMTgxMDk3NSwgInN0ZXAiOiA1MzgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjcyMS4wMjE5MDM1LCAic3RlcCI6IDUzOTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzI5Ljg3NDU0MiwgInN0ZXAiOiA1NDAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjczOC4zNjU5NjgyLCAic3RlcCI6IDU0MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzQ2LjM4MDA2NDUsICJzdGVwIjogNTQyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3NTQuNjE1MjExMiwgInN0ZXAiOiA1NDMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc2Mi41NDM3NjE3LCAic3RlcCI6IDU0NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzcxLjM1ODAzNDQsICJzdGVwIjogNTQ1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3ODcuMTQ5NzQ3MSwgInN0ZXAiOiA1NDYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc5NS43OTk3NzMsICJzdGVwIjogNTQ3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MDQuMjM5NTcyNSwgInN0ZXAiOiA1NDgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjgxMi4zNzAzNDk0LCAic3RlcCI6IDU0OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODIxLjE1NjU4NzgsICJzdGVwIjogNTUwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MzAuMDIwMDU3NywgInN0ZXAiOiA1NTEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjgzOC42OTI1MzQyLCAic3RlcCI6IDU1MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODQ2LjkwMjUxMjYsICJzdGVwIjogNTUzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NTUuMjQyOTY5MywgInN0ZXAiOiA1NTQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg3MC42NDE3Mjk4LCAic3RlcCI6IDU1NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODc4LjcyNTkwNTQsICJzdGVwIjogNTU2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4ODYuNjA3Mzc5NCwgInN0ZXAiOiA1NTcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg5NS4wMTgwMDA0LCAic3RlcCI6IDU1ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTAzLjQwMDA0MDQsICJzdGVwIjogNTU5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MTEuMjA3MjcwNCwgInN0ZXAiOiA1NjAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MjkxOS44MzY5ODI3LCAic3RlcCI6IDU2MTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTI4LjczMDMxMzUsICJzdGVwIjogNTYyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NDEuNzAxNDkyNSwgInN0ZXAiOiA1NjMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk0OS45NzcxNDA3LCAic3RlcCI6IDU2NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTU4LjcxNTk3NzIsICJzdGVwIjogNTY1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NjYuODEwOTE3NCwgInN0ZXAiOiA1NjYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk3NC45NTgzMjYsICJzdGVwIjogNTY3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5ODMuNTU5MjE0LCAic3RlcCI6IDU2ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTkyLjIyNDcxNDMsICJzdGVwIjogNTY5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMDAuODE0Mzc1LCAic3RlcCI6IDU3MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDA5Ljc4MDUwMiwgInN0ZXAiOiA1NzEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzAyMi44NjYwNzE3LCAic3RlcCI6IDU3MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDMxLjUzMDc4MiwgInN0ZXAiOiA1NzMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzAzOS41NjcyMzc5LCAic3RlcCI6IDU3NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDQ3Ljg0MDA3ODYsICJzdGVwIjogNTc1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNTYuMTUzNzk0NSwgInN0ZXAiOiA1NzYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzA2NC45NTI0Njk4LCAic3RlcCI6IDU3NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDczLjgzNDg1NDEsICJzdGVwIjogNTc4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwODIuNzIyMTMzLCAic3RlcCI6IDU3OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDk1LjEwMDc5MzYsICJzdGVwIjogNTgwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMDMuMzEzMDUyNywgInN0ZXAiOiA1ODEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzExMS45Njc3NzMsICJzdGVwIjogNTgyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMjAuMzUyNTEzLCAic3RlcCI6IDU4MzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTI4LjIwNjYzNTcsICJzdGVwIjogNTg0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMzYuNzEzMTM5OCwgInN0ZXAiOiA1ODUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzE0NC45MjUyNTM0LCAic3RlcCI6IDU4NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTUzLjAzNzg3MTQsICJzdGVwIjogNTg3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNjYuMDAwNDI3MiwgInN0ZXAiOiA1ODgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzE3NC42NTYxNiwgInN0ZXAiOiA1ODkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzE4Mi41MDU3Mzk1LCAic3RlcCI6IDU5MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTkxLjU1NzAwMSwgInN0ZXAiOiA1OTEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzE5OS40MDc2Mzc4LCAic3RlcCI6IDU5MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjA3LjQ2MjczNSwgInN0ZXAiOiA1OTMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzIxNS42MDAyNzA1LCAic3RlcCI6IDU5NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjI0LjM1NTYxNDIsICJzdGVwIjogNTk1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMzIuODczOTU4OCwgInN0ZXAiOiA1OTYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzI0NS4zNzE3OTgzLCAic3RlcCI6IDU5NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjUzLjE3NzA0OTksICJzdGVwIjogNTk4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNjEuNzY5NjMyLCAic3RlcCI6IDU5OTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjcwLjA1NzQ1OTQsICJzdGVwIjogNjAwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNzguODkyOTIzNCwgInN0ZXAiOiA2MDEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzI4Ny42Nzk3ODk1LCAic3RlcCI6IDYwMjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjk3LjI3MjE2MjcsICJzdGVwIjogNjAzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzMDUuOTE1ODE0LCAic3RlcCI6IDYwNDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzIyLjM1MjkzNiwgInN0ZXAiOiA2MDUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzMzMS45NzQ5MDcsICJzdGVwIjogNjA2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNDAuNTE5ODIyMSwgInN0ZXAiOiA2MDcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzM0OS41OTk1MjQ1LCAic3RlcCI6IDYwODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzU5LjA2ODYxOCwgInN0ZXAiOiA2MDkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzM2OC40MDA0ODk2LCAic3RlcCI6IDYxMDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzc3LjY3MjYyNDMsICJzdGVwIjogNjExMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzODYuMzk3ODkxLCAic3RlcCI6IDYxMjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzk1LjQ0OTE1NjUsICJzdGVwIjogNjEzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MDguMTQ5NDU2LCAic3RlcCI6IDYxNDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDE3LjMyMTM3NjgsICJzdGVwIjogNjE1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MjYuMjUzMjQ3NywgInN0ZXAiOiA2MTYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzQzNC44MDY3NTk0LCAic3RlcCI6IDYxNzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDQ0LjUxMDI1MTgsICJzdGVwIjogNjE4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NTMuMTEyODg0OCwgInN0ZXAiOiA2MTkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ2Mi41NjMxNzgsICJzdGVwIjogNjIwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NzIuMDIxODQ2NSwgInN0ZXAiOiA2MjEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ4NC40NDYzNzQ0LCAic3RlcCI6IDYyMjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDkzLjY1NzYxNjQsICJzdGVwIjogNjIzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MDIuNDM4NjA1MywgInN0ZXAiOiA2MjQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzUxMS4yNTMzNTMsICJzdGVwIjogNjI1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MjAuNDgyNjI0LCAic3RlcCI6IDYyNjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTI5Ljc3OTA2NjYsICJzdGVwIjogNjI3MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MzkuNjM2Nzc4OCwgInN0ZXAiOiA2MjgwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzU0OC45MDgyMzg2LCAic3RlcCI6IDYyOTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTYwLjYxNzgyODEsICJzdGVwIjogNjMwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NzAuMDY2NDgzNywgInN0ZXAiOiA2MzEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzU3OS40Nzg2NzYsICJzdGVwIjogNjMyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1ODcuNjY0NzI1MywgInN0ZXAiOiA2MzMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzU5Ny4yMTU1NTgsICJzdGVwIjogNjM0MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MDYuMjM1NzY5NSwgInN0ZXAiOiA2MzUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzYxNS4wNzUxMzQsICJzdGVwIjogNjM2MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MjQuODMyMTE5MiwgInN0ZXAiOiA2MzcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzYzNC42NzAwNzgsICJzdGVwIjogNjM4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NDYuNTI2MjkxLCAic3RlcCI6IDYzOTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjU1Ljc0MzAzNTMsICJzdGVwIjogNjQwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NjUuNjA0ODEyNCwgInN0ZXAiOiA2NDEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzY3NC42NDAzNTA4LCAic3RlcCI6IDY0MjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjgzLjY2NzkzNywgInN0ZXAiOiA2NDMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzY5Mi44NzQzMjQ4LCAic3RlcCI6IDY0NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzAyLjUxNjc1MywgInN0ZXAiOiA2NDUwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzcxMi42MjQ5OTYyLCAic3RlcCI6IDY0NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzI0LjA0NTA3NiwgInN0ZXAiOiA2NDcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzczMi44MjU5NzQsICJzdGVwIjogNjQ4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NDEuOTU0NzQzNiwgInN0ZXAiOiA2NDkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc1MC43MTUzMDYsICJzdGVwIjogNjUwMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NjAuNDg1NzQxNCwgInN0ZXAiOiA2NTEwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc2OS44NjA4NTgsICJzdGVwIjogNjUyMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NzkuMTI0NzI4MiwgInN0ZXAiOiA2NTMwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc4OS40NzUzMjk0LCAic3RlcCI6IDY1NDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzk4LjEwMDk2MjQsICJzdGVwIjogNjU1MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MTAuNTUwOTM1LCAic3RlcCI6IDY1NjAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODIwLjAzMzkyMSwgInN0ZXAiOiA2NTcwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzgyOC4yMzU5MjY2LCAic3RlcCI6IDY1ODAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODM2Ljc5NTg0MDcsICJzdGVwIjogNjU5MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NDUuOTg1MTQ4NCwgInN0ZXAiOiA2NjAwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg1NS4yNDk2MTYsICJzdGVwIjogNjYxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NjQuNjkxMTk1NSwgInN0ZXAiOiA2NjIwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg3My44MzIzMzUsICJzdGVwIjogNjYzMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4ODcuNTIyNzY2OCwgInN0ZXAiOiA2NjQwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg5Ny4zMzE1ODg1LCAic3RlcCI6IDY2NTAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTA2Ljg3NDQ4MSwgInN0ZXAiOiA2NjYwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3MzkxNi4zNDgwMjk0LCAic3RlcCI6IDY2NzAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTI1LjYxNjM0MjUsICJzdGVwIjogNjY4MCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5MzQuOTE0NDYzOCwgInN0ZXAiOiA2NjkwLCAidmFsdWUiOiAwLjAwMDI1MDAwMDAxMTg3NDM2Mjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mzk0My43NDAwODEzLCAic3RlcCI6IDY3MDAsICJ2YWx1ZSI6IDAuMDAwMjUwMDAwMDExODc0MzYyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTUyLjQ3NDkyMDUsICJzdGVwIjogNjcxMCwgInZhbHVlIjogMC4wMDAyNTAwMDAwMTE4NzQzNjI4fV19fV0=", + "ok": true, + "headers": [ + [ + "content-length", + "8650" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Lr/pg_0%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIkxyL3BnXzAiLCAicnVuVG9TZXJpZXMiOiB7Ii4iOiBbeyJ3YWxsVGltZSI6IDE3MzMwNjc2MzEuNTM2NTU3LCAic3RlcCI6IDAsICJ2YWx1ZSI6IDUuMDAwMDAwMDU4NDMwNDg3ZS0wOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NjQ2LjY0OTYwNDgsICJzdGVwIjogMTAsICJ2YWx1ZSI6IDMuMDAwMDAwMTA2MTEyNTY2ZS0wN30sIHsid2FsbFRpbWUiOiAxNzMzMDY3NjYwLjc4MTU1OTUsICJzdGVwIjogMjAsICJ2YWx1ZSI6IDUuNDk5OTk5ODE1NTgzNTc4ZS0wN30sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njc0LjEzNDcxNDEsICJzdGVwIjogMzAsICJ2YWx1ZSI6IDguMDAwMDAwMDkzNDg4Nzc5ZS0wN30sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njg3LjA1NDM5OTUsICJzdGVwIjogNDAsICJ2YWx1ZSI6IDEuMDUwMDAwMDM3MTM5Mzk4ZS0wNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3Njk5LjQ5MDI5NjYsICJzdGVwIjogNTAsICJ2YWx1ZSI6IDEuMzAwMDAwMDA4MDg2NDk5M2UtMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzcxMC42MjY1ODAyLCAic3RlcCI6IDYwLCAidmFsdWUiOiAxLjU0OTk5OTk3OTAzMzYwMDVlLTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3MjIuNzUyODE2NywgInN0ZXAiOiA3MCwgInZhbHVlIjogMS43OTk5OTk5NDk5ODA3MDE4ZS0wNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzMzLjcyMjY5ODUsICJzdGVwIjogODAsICJ2YWx1ZSI6IDIuMDQ5OTk5OTIwOTI3ODAzZS0wNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzUwLjk0NDE4NCwgInN0ZXAiOiA5MCwgInZhbHVlIjogMi4zMDAwMDAwMDU1NjE3NDJlLTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3NjEuOTc4MDc2NywgInN0ZXAiOiAxMDAsICJ2YWx1ZSI6IDIuNTUwMDAwMDkwMTk1NjgxZS0wNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3NzcxLjYwMzQ5NTEsICJzdGVwIjogMTEwLCAidmFsdWUiOiAyLjc5OTk5OTk0NzQ1NTk0NDVlLTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3ODAuNTQ0Mzc5MiwgInN0ZXAiOiAxMjAsICJ2YWx1ZSI6IDMuMDUwMDAwMDMyMDg5ODgzNWUtMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzc5MC40ODI0MDM4LCAic3RlcCI6IDEzMCwgInZhbHVlIjogMy4yOTk5OTk4ODkzNTAxNDdlLTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc3OTkuMTAyNzY5LCAic3RlcCI6IDE0MCwgInZhbHVlIjogMy41NDk5OTk5NzM5ODQwODZlLTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MDkuNDQxNzQ3NCwgInN0ZXAiOiAxNTAsICJ2YWx1ZSI6IDMuODAwMDAwMDU4NjE4MDI1ZS0wNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODE4LjkxODAyNiwgInN0ZXAiOiAxNjAsICJ2YWx1ZSI6IDQuMDQ5OTk5OTE1ODc4Mjg4NGUtMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzgzNi42NDczNDc3LCAic3RlcCI6IDE3MCwgInZhbHVlIjogNC4zMDAwMDAwMDA1MTIyMjdlLTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4NDYuMzg3ODk1OCwgInN0ZXAiOiAxODAsICJ2YWx1ZSI6IDQuNTUwMDAwMDg1MTQ2MTY2ZS0wNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODU1LjY2NDE1MTIsICJzdGVwIjogMTkwLCAidmFsdWUiOiA0LjgwMDAwMDE2OTc4MDEwNWUtMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg2NC44ODU1NzIyLCAic3RlcCI6IDIwMCwgInZhbHVlIjogNS4wNDk5OTk3OTk2NjY2OTM0ZS0wNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODczLjk5ODg5MTQsICJzdGVwIjogMjEwLCAidmFsdWUiOiA1LjI5OTk5OTg4NDMwMDYzMmUtMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzg4My43ODE5MDI4LCAic3RlcCI6IDIyMCwgInZhbHVlIjogNS41NDk5OTk5Njg5MzQ1NzFlLTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4OTIuMTIwMTcxMywgInN0ZXAiOiAyMzAsICJ2YWx1ZSI6IDUuODAwMDAwMDUzNTY4NTFlLTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MDEuMDY2NTMyMSwgInN0ZXAiOiAyNDAsICJ2YWx1ZSI6IDYuMDUwMDAwMTM4MjAyNDQ5ZS0wNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTEwLjA3MjIyNzIsICJzdGVwIjogMjUwLCAidmFsdWUiOiA2LjMwMDAwMDIyMjgzNjM4OGUtMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzkyNS45NDc4MSwgInN0ZXAiOiAyNjAsICJ2YWx1ZSI6IDYuNTQ5OTk5ODUyNzIyOTc2ZS0wNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTM1LjQ1Nzg0NzQsICJzdGVwIjogMjcwLCAidmFsdWUiOiA2Ljc5OTk5OTkzNzM1NjkxNWUtMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk0NC4wMTE1MTE4LCAic3RlcCI6IDI4MCwgInZhbHVlIjogNy4wNTAwMDAwMjE5OTA4NTRlLTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5NTIuNTQyNTc0NiwgInN0ZXAiOiAyOTAsICJ2YWx1ZSI6IDcuMzAwMDAwMTA2NjI0NzkzZS0wNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTYxLjAyMzk5MDksICJzdGVwIjogMzAwLCAidmFsdWUiOiA3LjU1MDAwMDE5MTI1ODczMmUtMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk3MC4xMzE3NjIsICJzdGVwIjogMzEwLCAidmFsdWUiOiA3LjgwMDAwMDI3NTg5MjY3MWUtMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk4MC4yMjMwNzAxLCAic3RlcCI6IDMyMCwgInZhbHVlIjogOC4wNTAwMDAzNjA1MjY2MWUtMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk4OC44MTMyNDU1LCAic3RlcCI6IDMzMCwgInZhbHVlIjogOC4zMDAwMDA0NDUxNjA1NDllLTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMDUuMDg4MzE3MiwgInN0ZXAiOiAzNDAsICJ2YWx1ZSI6IDguNTQ5OTk5NjIwMjk5Nzg2ZS0wNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDE0LjA2MjExNDIsICJzdGVwIjogMzUwLCAidmFsdWUiOiA4Ljc5OTk5OTcwNDkzMzcyNWUtMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODAyMi41NTAzMTU0LCAic3RlcCI6IDM2MCwgInZhbHVlIjogOS4wNDk5OTk3ODk1Njc2NjRlLTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwMzEuODIyMDIyNywgInN0ZXAiOiAzNzAsICJ2YWx1ZSI6IDkuMjk5OTk5ODc0MjAxNjAzZS0wNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDQwLjc4NDkwNzgsICJzdGVwIjogMzgwLCAidmFsdWUiOiA5LjU0OTk5OTk1ODgzNTU0MmUtMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODA1MC4xNTc0MTE2LCAic3RlcCI6IDM5MCwgInZhbHVlIjogOS44MDAwMDAwNDM0Njk0ODFlLTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwNTkuMTIzMzU3OCwgInN0ZXAiOiA0MDAsICJ2YWx1ZSI6IDEuMDA1MDAwMDEyODEwMzQyZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDY4LjA4NzQ5NTYsICJzdGVwIjogNDEwLCAidmFsdWUiOiAxLjAzMDAwMDAyMTI3MzczNTllLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwODQuODQxNjI2LCAic3RlcCI6IDQyMCwgInZhbHVlIjogMS4wNTUwMDAwMjk3MzcxMjk4ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDk0LjY2MzkzNjksICJzdGVwIjogNDMwLCAidmFsdWUiOiAxLjA4MDAwMDAzODIwMDUyMzdlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMDMuNzA1NTA0MiwgInN0ZXAiOiA0NDAsICJ2YWx1ZSI6IDEuMTA0OTk5OTU1NzE0NDQ3NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODExMi42OTcxNzE3LCAic3RlcCI6IDQ1MCwgInZhbHVlIjogMS4xMjk5OTk5NjQxNzc4NDEzZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTIxLjQ5ODUwNzUsICJzdGVwIjogNDYwLCAidmFsdWUiOiAxLjE1NDk5OTk3MjY0MTIzNTJlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxMzAuNzI1MTc5NywgInN0ZXAiOiA0NzAsICJ2YWx1ZSI6IDEuMTc5OTk5OTgxMTA0NjI5MWUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODEzOS44NTMyMDM1LCAic3RlcCI6IDQ4MCwgInZhbHVlIjogMS4yMDQ5OTk5ODk1NjgwMjNlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxNDkuMzY3NzE0NiwgInN0ZXAiOiA0OTAsICJ2YWx1ZSI6IDEuMjI5OTk5OTk4MDMxNDE2OWUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODE1OC4wNjc3MTMsICJzdGVwIjogNTAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODE3NC4xMTMyNiwgInN0ZXAiOiA1MTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTgyLjcxNzI2MzUsICJzdGVwIjogNTIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODE5Mi40MTEzMjk3LCAic3RlcCI6IDUzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMDEuODA1ODUzOCwgInN0ZXAiOiA1NDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjEwLjY1MjI0MjcsICJzdGVwIjogNTUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODIyMC4xOTI2NzQ2LCAic3RlcCI6IDU2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMjkuMTU2NzY5LCAic3RlcCI6IDU3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyMzguNTg4OTA0MSwgInN0ZXAiOiA1ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjU2LjA3MDcyNjksICJzdGVwIjogNTkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODI2NS40Mjk1NTY4LCAic3RlcCI6IDYwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNzQuNjU0MTg3LCAic3RlcCI6IDYxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyODMuNzY3NjU3OCwgInN0ZXAiOiA2MjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjkzLjMzMTY5NjcsICJzdGVwIjogNjMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODMwMi42NDQ3MzY4LCAic3RlcCI6IDY0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMTEuMzg1NzMwNywgInN0ZXAiOiA2NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzIwLjM4Nzg3NiwgInN0ZXAiOiA2NjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzI4LjcyOTA0NDQsICJzdGVwIjogNjcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODM0NC40NTk0Nzk4LCAic3RlcCI6IDY4MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzNTMuNzE0NzQ1OCwgInN0ZXAiOiA2OTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzYyLjA1NTM2MzcsICJzdGVwIjogNzAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODM3MS4xMDE3NDc4LCAic3RlcCI6IDcxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzODAuNTMwODU1NywgInN0ZXAiOiA3MjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzkwLjA4NDU2MzUsICJzdGVwIjogNzMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODM5OC43MTg4NjQ0LCAic3RlcCI6IDc0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MDcuMTIxNjkxMiwgInN0ZXAiOiA3NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDIzLjA2ODA2LCAic3RlcCI6IDc2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MzEuNDAyODE0NiwgInN0ZXAiOiA3NzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDQwLjQyMjc4MjIsICJzdGVwIjogNzgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ0OS4wMDQyNjMyLCAic3RlcCI6IDc5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0NTcuNjMzOTk1MywgInN0ZXAiOiA4MDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDY3LjA0NTExNiwgInN0ZXAiOiA4MTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDc1LjYxNzkzMjgsICJzdGVwIjogODIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ4NC45NzY2MTc2LCAic3RlcCI6IDgzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MDAuNzMwMDIyNCwgInN0ZXAiOiA4NDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTA5LjMwNTQ3NzksICJzdGVwIjogODUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODUxOS4wMjAwOTYsICJzdGVwIjogODYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODUyNy40OTY1NzU4LCAic3RlcCI6IDg3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1MzYuOTE4MTU0NSwgInN0ZXAiOiA4ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTQ0LjkwNjY3OCwgInN0ZXAiOiA4OTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTUzLjU2OTA4NDYsICJzdGVwIjogOTAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODU2Mi42ODQwNjA4LCAic3RlcCI6IDkxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NzEuMjQ0MTQ5MiwgInN0ZXAiOiA5MjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTg0Ljc3NDk5MTUsICJzdGVwIjogOTMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODU5My43NzA3NzcyLCAic3RlcCI6IDk0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MDIuNzY0OTgyNSwgInN0ZXAiOiA5NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjExLjAzODg0NDgsICJzdGVwIjogOTYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODYyMC4yMjU4NzQsICJzdGVwIjogOTcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODYyOC44NDA4NzEzLCAic3RlcCI6IDk4MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2MzcuNjI5NzYyNCwgInN0ZXAiOiA5OTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjQ2LjY3MjA0NTIsICJzdGVwIjogMTAwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2NjIuNzU2NjE0NCwgInN0ZXAiOiAxMDEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODY3Mi4wNTM2ODgsICJzdGVwIjogMTAyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2ODAuNTYyNDc0NSwgInN0ZXAiOiAxMDMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODY5MC4xODUwNTIsICJzdGVwIjogMTA0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2OTguODQ3NDM3OSwgInN0ZXAiOiAxMDUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODcwNy43NDI3MzAxLCAic3RlcCI6IDEwNjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzE3LjM0NDE1NzUsICJzdGVwIjogMTA3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MjYuMzYwODc3LCAic3RlcCI6IDEwODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzM1LjI1MDg3NiwgInN0ZXAiOiAxMDkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODc0OS41NDc5NzM2LCAic3RlcCI6IDExMDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzU4LjM3NDg2NTMsICJzdGVwIjogMTExMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3NjcuMDAzMzUwMywgInN0ZXAiOiAxMTIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODc3Ni42MTg0MDcsICJzdGVwIjogMTEzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3ODUuNDAwNTIwNiwgInN0ZXAiOiAxMTQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODc5NC4yNzg1NzQyLCAic3RlcCI6IDExNTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODAyLjY5Njg4MjUsICJzdGVwIjogMTE2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MTEuNTUwOTU1OCwgInN0ZXAiOiAxMTcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODgyNC45NjU4NzA0LCAic3RlcCI6IDExODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODM0LjM3NjU2NSwgInN0ZXAiOiAxMTkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODg0My41MTU2MzUzLCAic3RlcCI6IDEyMDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODUyLjIyNzgwMTgsICJzdGVwIjogMTIxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4NjEuMTE2MjgxNSwgInN0ZXAiOiAxMjIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODg3MC4wNTUzMTE3LCAic3RlcCI6IDEyMzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODc4LjcxOTk2NzgsICJzdGVwIjogMTI0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4ODcuNzMxNTY4NiwgInN0ZXAiOiAxMjUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODkwMy4xNjY4MDYyLCAic3RlcCI6IDEyNjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTEyLjQwNTE3NjQsICJzdGVwIjogMTI3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5MjEuNDcxNTM5NywgInN0ZXAiOiAxMjgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODkyOS43NDYyMDY1LCAic3RlcCI6IDEyOTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTM5LjUwMDQ1NzUsICJzdGVwIjogMTMwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NDguOTI2OTM3NiwgInN0ZXAiOiAxMzEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODk1Ny4yMzM5NzMzLCAic3RlcCI6IDEzMjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTY2LjA3NjU5MzIsICJzdGVwIjogMTMzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5NzUuNTY0NzE2NiwgInN0ZXAiOiAxMzQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODk4OS43OTczNjY5LCAic3RlcCI6IDEzNTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTk4LjI1NzA5MywgInN0ZXAiOiAxMzYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTAwNy4xNDY4NzA0LCAic3RlcCI6IDEzNzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDE1LjkxOTg1OCwgInN0ZXAiOiAxMzgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTAyNS4zMDI3NjkyLCAic3RlcCI6IDEzOTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDM0LjQ4MDkyODQsICJzdGVwIjogMTQwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNDIuNzkyNDMyOCwgInN0ZXAiOiAxNDEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTA1Mi4xMzY4MDQsICJzdGVwIjogMTQyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNjUuMDAxNTA2MywgInN0ZXAiOiAxNDMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTA3NC41MjMzMTk1LCAic3RlcCI6IDE0NDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDgzLjc3NTc5OSwgInN0ZXAiOiAxNDUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTA5Mi4yNTY4MDI2LCAic3RlcCI6IDE0NjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTAxLjAyODk0MjMsICJzdGVwIjogMTQ3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMDkuOTA0NDczOCwgInN0ZXAiOiAxNDgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTExOS4xMTcwMTYsICJzdGVwIjogMTQ5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxMjguNDE0MjMyNywgInN0ZXAiOiAxNTAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTEzNy42MDQ5Nzc2LCAic3RlcCI6IDE1MTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTUwLjU0MjI5ODgsICJzdGVwIjogMTUyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxNTkuNzU1MzU4LCAic3RlcCI6IDE1MzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTY4LjE2ODUxMiwgInN0ZXAiOiAxNTQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTE3Ni44MzkyNjg0LCAic3RlcCI6IDE1NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTg1Ljg5MDU5NzgsICJzdGVwIjogMTU2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxOTQuOTIxOTQyNywgInN0ZXAiOiAxNTcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTIwMy45MDk4OTk1LCAic3RlcCI6IDE1ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjEyLjcxMzU3NTEsICJzdGVwIjogMTU5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMjUuNTMyNjkwMywgInN0ZXAiOiAxNjAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTIzNS40NjIwODQ1LCAic3RlcCI6IDE2MTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjQ0LjYyNzY1NzcsICJzdGVwIjogMTYyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyNTQuMjY5OTYxNCwgInN0ZXAiOiAxNjMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTI2My4wMDM1MDc2LCAic3RlcCI6IDE2NDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjcxLjg2NDg0MiwgInN0ZXAiOiAxNjUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTI4MC41MDgxNDg3LCAic3RlcCI6IDE2NjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Mjg5LjY3ODA3NjUsICJzdGVwIjogMTY3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMDMuNjA3MTc2MywgInN0ZXAiOiAxNjgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTMxMi40Nzc1NjAzLCAic3RlcCI6IDE2OTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzIxLjgzNjc4NywgInN0ZXAiOiAxNzAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTMzMC4zNDYyMjA1LCAic3RlcCI6IDE3MTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzM5LjI0MzIwNjcsICJzdGVwIjogMTcyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNDYuODU0NzU4MywgInN0ZXAiOiAxNzMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTM1NS42NTAzNDgsICJzdGVwIjogMTc0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzNjQuNTEwMDAxNCwgInN0ZXAiOiAxNzUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTM3My43MzY1NzA4LCAic3RlcCI6IDE3NjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Mzg3LjUzOTc4MTMsICJzdGVwIjogMTc3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzOTYuNDY0NjMyNywgInN0ZXAiOiAxNzgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTQwNS45OTQ1MDY0LCAic3RlcCI6IDE3OTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDE1LjA1MTgzMzIsICJzdGVwIjogMTgwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0MjMuOTA1ODM2NiwgInN0ZXAiOiAxODEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTQzMi41MjkxNTE3LCAic3RlcCI6IDE4MjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDQxLjIxNDgzOTcsICJzdGVwIjogMTgzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NTAuMDg0NTY1NCwgInN0ZXAiOiAxODQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ2My4xMDUzMzk4LCAic3RlcCI6IDE4NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDcxLjU3MDUzNTIsICJzdGVwIjogMTg2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0ODAuNDk1OTM2LCAic3RlcCI6IDE4NzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDg5LjM4MjgzOTIsICJzdGVwIjogMTg4MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0OTcuOTc0NDQxMywgInN0ZXAiOiAxODkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTUwNi43OTE5NTgzLCAic3RlcCI6IDE5MDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTE1LjgyMjUwOSwgInN0ZXAiOiAxOTEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTUyNC42MzQzNjc3LCAic3RlcCI6IDE5MjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTMzLjUzOTg3MDcsICJzdGVwIjogMTkzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NTAuNDc2MzMxMiwgInN0ZXAiOiAxOTQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTU1OC44MjU1NzA2LCAic3RlcCI6IDE5NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTY3Ljc1NTY2MzYsICJzdGVwIjogMTk2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1NzYuMzQyODQwNCwgInN0ZXAiOiAxOTcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTU4NS41MjY3OTM1LCAic3RlcCI6IDE5ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTk0LjM0ODA0MTgsICJzdGVwIjogMTk5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MDIuMzk5MjMwNywgInN0ZXAiOiAyMDAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTYxMC4yNDc0NzI1LCAic3RlcCI6IDIwMTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjI2LjY4NTEzNjMsICJzdGVwIjogMjAyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MzUuMDI4NTU3NSwgInN0ZXAiOiAyMDMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTY0My44MjAzOTgsICJzdGVwIjogMjA0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NTIuMTkyMjYyLCAic3RlcCI6IDIwNTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjYwLjQ1MTIxMDUsICJzdGVwIjogMjA2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2NjkuNTg5ODY1LCAic3RlcCI6IDIwNzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Njc4Ljc3NTkyNDcsICJzdGVwIjogMjA4MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2ODYuOTQyNTQ5MiwgInN0ZXAiOiAyMDkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTcwMC42MDAyODksICJzdGVwIjogMjEwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3MDguNzI0MDk5NCwgInN0ZXAiOiAyMTEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTcxNy40NDYxMTY3LCAic3RlcCI6IDIxMjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzI2LjEzODk5NywgInN0ZXAiOiAyMTMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTczNS4wMzU3MDQsICJzdGVwIjogMjE0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NDMuMzAzNTk0NiwgInN0ZXAiOiAyMTUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTc1Mi40OTg0MzgsICJzdGVwIjogMjE2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NjEuNDQ4Nzc4LCAic3RlcCI6IDIxNzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzcwLjQzMTAwNywgInN0ZXAiOiAyMTgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTc4NC4zNjE3MTQ0LCAic3RlcCI6IDIxOTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NzkzLjEyMDE3NTgsICJzdGVwIjogMjIwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MDEuNjI5MTM5MiwgInN0ZXAiOiAyMjEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTgxMC42MDU0NDIsICJzdGVwIjogMjIyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MTkuMzM5MjYyNywgInN0ZXAiOiAyMjMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTgyNy4zMjM4ODQsICJzdGVwIjogMjI0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4MzUuODY1MTMxLCAic3RlcCI6IDIyNTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODQ0LjIzMzMwMzMsICJzdGVwIjogMjI2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NTYuNzQ3Mzg2NSwgInN0ZXAiOiAyMjcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTg2NS4yNTUxNzczLCAic3RlcCI6IDIyODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODc0LjAwMjQ3MDcsICJzdGVwIjogMjI5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4ODEuNzc5MTQ3MSwgInN0ZXAiOiAyMzAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTg5MC40MTExNjM2LCAic3RlcCI6IDIzMTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODk4Ljg3NDIwNzcsICJzdGVwIjogMjMyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MDguMzE1MzQ1OCwgInN0ZXAiOiAyMzMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTkxNy40MTI3OTY3LCAic3RlcCI6IDIzNDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTI1Ljg0NzYwMzgsICJzdGVwIjogMjM1MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MzguNjk5NzkzMywgInN0ZXAiOiAyMzYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTk0Ny40MjM2MjEyLCAic3RlcCI6IDIzNzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTU2LjIwMzA3OTIsICJzdGVwIjogMjM4MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5NjQuMjcxOTM4LCAic3RlcCI6IDIzOTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTczLjMyMzY1ODcsICJzdGVwIjogMjQwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5ODEuNDI5NDUyLCAic3RlcCI6IDI0MTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTkwLjEzNzA4NzgsICJzdGVwIjogMjQyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5OTguNzk1MTY1MywgInN0ZXAiOiAyNDMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDAxMi40NTM3ODUyLCAic3RlcCI6IDI0NDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDIxLjU3MjI0OSwgInN0ZXAiOiAyNDUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDAzMC4xODg1MDY4LCAic3RlcCI6IDI0NjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDM5LjIxNjgxMzgsICJzdGVwIjogMjQ3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNDguMjY2NDQwOSwgInN0ZXAiOiAyNDgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDA1Ni4xNTMwODM2LCAic3RlcCI6IDI0OTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDY0LjQ0Nzg3NTcsICJzdGVwIjogMjUwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwNzIuNTQ2NTM1MywgInN0ZXAiOiAyNTEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDA4Ny42NTQ3MzYzLCAic3RlcCI6IDI1MjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDk1LjQzODgxNTgsICJzdGVwIjogMjUzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMDMuNzY2Mjg3MywgInN0ZXAiOiAyNTQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDExMy4wNDYxNjA1LCAic3RlcCI6IDI1NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTIxLjAzNTIxMiwgInN0ZXAiOiAyNTYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDEyOS41NzYzMTksICJzdGVwIjogMjU3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxMzguMzU4MDkwMiwgInN0ZXAiOiAyNTgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDE0Ny4wODQ3Njc2LCAic3RlcCI6IDI1OTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTU1LjQ4NDI1OSwgInN0ZXAiOiAyNjAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDE3Mi41NzUyNDY4LCAic3RlcCI6IDI2MTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTgxLjIwODQ1MDYsICJzdGVwIjogMjYyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxODkuNjg5NTE2NSwgInN0ZXAiOiAyNjMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDE5OC4zOTY2MDAyLCAic3RlcCI6IDI2NDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjA2LjcwNDgxNzMsICJzdGVwIjogMjY1MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyMTUuNTk3MTMxMywgInN0ZXAiOiAyNjYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDIyNC4zMTI3NzU0LCAic3RlcCI6IDI2NzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjMzLjUzNjY2OCwgInN0ZXAiOiAyNjgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDI0Ni43NTYwNjY4LCAic3RlcCI6IDI2OTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjU2LjAyNjA2NzMsICJzdGVwIjogMjcwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNjQuOTQ4MjU0OCwgInN0ZXAiOiAyNzEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDI3My44MDIxNzU4LCAic3RlcCI6IDI3MjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjgyLjk1NjM4NTQsICJzdGVwIjogMjczMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyOTIuMjc1MzY3NywgInN0ZXAiOiAyNzQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDMwMC4zMzM5OTk0LCAic3RlcCI6IDI3NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzA5LjQwOTYwNjUsICJzdGVwIjogMjc2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMTcuNTI4OTYyNCwgInN0ZXAiOiAyNzcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDMzMC40MzQwNjQxLCAic3RlcCI6IDI3ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzM5LjgyMDAwOTcsICJzdGVwIjogMjc5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNDcuOTkwMzY1LCAic3RlcCI6IDI4MDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzU2Ljg4ODI2NjgsICJzdGVwIjogMjgxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzNjUuNTc0Mjk5NiwgInN0ZXAiOiAyODIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDM3NC4zODk5NCwgInN0ZXAiOiAyODMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDM4Mi40MjQ0NjE2LCAic3RlcCI6IDI4NDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzkwLjkzODU5NzcsICJzdGVwIjogMjg1MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0MDYuNjc2NzE4LCAic3RlcCI6IDI4NjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDE1LjA4NjI0NDgsICJzdGVwIjogMjg3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0MjIuOTE3NTAxNywgInN0ZXAiOiAyODgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDQzMS41MzQ4MDYzLCAic3RlcCI6IDI4OTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDM5Ljk3ODI1NzcsICJzdGVwIjogMjkwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NDguMDgyNzc5LCAic3RlcCI6IDI5MTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDU3LjQyMTEwMywgInN0ZXAiOiAyOTIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ2Ni43MjAzNTUzLCAic3RlcCI6IDI5MzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDc5LjMzMDQ5NSwgInN0ZXAiOiAyOTQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ4OC43Nzk1NDkxLCAic3RlcCI6IDI5NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDk3LjIyMjMyOTQsICJzdGVwIjogMjk2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MDUuNjMxMTEwNCwgInN0ZXAiOiAyOTcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDUxMy4zNTEzMDg4LCAic3RlcCI6IDI5ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTIyLjI5ODM2ODcsICJzdGVwIjogMjk5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1MzAuMjA5OTIzLCAic3RlcCI6IDMwMDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTM4LjI5NzUxNzgsICJzdGVwIjogMzAxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NDcuMzk3Nzg5NywgInN0ZXAiOiAzMDIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDU2NC4wNDg3NDQ0LCAic3RlcCI6IDMwMzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTcyLjM2NzEyMDcsICJzdGVwIjogMzA0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1ODAuNjY4MTEzMiwgInN0ZXAiOiAzMDUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDU4OC42NTA2NzQsICJzdGVwIjogMzA2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1OTcuNDE3OTY2MSwgInN0ZXAiOiAzMDcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDYwNi4xMzQ2ODY3LCAic3RlcCI6IDMwODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjE0LjQzNjQ0NSwgInN0ZXAiOiAzMDkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDYyMy45OTcyNTM3LCAic3RlcCI6IDMxMDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjM3LjI0OTkzODUsICJzdGVwIjogMzExMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NDUuNjc5MTg1NiwgInN0ZXAiOiAzMTIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDY1NC4yNjY5OTE5LCAic3RlcCI6IDMxMzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjYzLjMxNzc4NjIsICJzdGVwIjogMzE0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2NzEuMTE0MzM5NiwgInN0ZXAiOiAzMTUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDY3OS43NjE5NzM5LCAic3RlcCI6IDMxNjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjg3Ljg0MTA1OSwgInN0ZXAiOiAzMTcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDY5NS44NTIxNjAyLCAic3RlcCI6IDMxODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzA0LjYxODk1NDQsICJzdGVwIjogMzE5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MTcuMTA1OTIsICJzdGVwIjogMzIwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MjYuMDk1MTc1MywgInN0ZXAiOiAzMjEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDczNC43NzI0NDI2LCAic3RlcCI6IDMyMjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzQ0LjQwODA5MzUsICJzdGVwIjogMzIzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NTIuNDk3OTUzLCAic3RlcCI6IDMyNDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzYxLjcxNzQ2MjUsICJzdGVwIjogMzI1MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3NzAuMzcyOTQ2NywgInN0ZXAiOiAzMjYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDc3OS43MjY1NDE4LCAic3RlcCI6IDMyNzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzkzLjY3NTMxNzUsICJzdGVwIjogMzI4MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4MDEuODk2NTYxNiwgInN0ZXAiOiAzMjkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDgxMC4xNTc2MDQ3LCAic3RlcCI6IDMzMDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODE4LjcyMjUwMiwgInN0ZXAiOiAzMzEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDgyNy4wMDI1MzU4LCAic3RlcCI6IDMzMjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODM1LjU3MDIyNTIsICJzdGVwIjogMzMzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NDMuOTY5OTU4LCAic3RlcCI6IDMzNDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODUzLjA4Nzc5NTUsICJzdGVwIjogMzM1MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NjUuNDE2NTg3NCwgInN0ZXAiOiAzMzYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDg3My42NTc4ODk4LCAic3RlcCI6IDMzNzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODgzLjMzMjM5MzQsICJzdGVwIjogMzM4MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4OTIuMzczMzA0OCwgInN0ZXAiOiAzMzkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDkwMC43MTg3ODU4LCAic3RlcCI6IDM0MDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTA4LjUwMDc1OTYsICJzdGVwIjogMzQxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5MTYuNjUyMzM5NSwgInN0ZXAiOiAzNDIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDkyNS4yMDQyNDk5LCAic3RlcCI6IDM0MzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTMzLjgwNjg3MTcsICJzdGVwIjogMzQ0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NDcuNDc2ODYxMiwgInN0ZXAiOiAzNDUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDk1Ni4xODM2OTcsICJzdGVwIjogMzQ2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NjQuMjYyODc3NSwgInN0ZXAiOiAzNDcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDk3Mi4zODI2MDA1LCAic3RlcCI6IDM0ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTgwLjY0Mzc0MzUsICJzdGVwIjogMzQ5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5ODkuNjg0MDEsICJzdGVwIjogMzUwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5OTcuNzg0ODU4NywgInN0ZXAiOiAzNTEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTAwNi4yNjc5NDcyLCAic3RlcCI6IDM1MjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDE4Ljg5MzEyNzcsICJzdGVwIjogMzUzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMjcuMTkzMDcxOCwgInN0ZXAiOiAzNTQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTAzNS4zMTcxMjIsICJzdGVwIjogMzU1MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNDMuNzQyMjUsICJzdGVwIjogMzU2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNTEuODY4Nzc3NSwgInN0ZXAiOiAzNTcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTA2MC40OTI3ODA3LCAic3RlcCI6IDM1ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDY4Ljg3NTc1MzksICJzdGVwIjogMzU5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwNzcuNzA5NTgxOSwgInN0ZXAiOiAzNjAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTA4Ni4yMDg5ODQ2LCAic3RlcCI6IDM2MTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTAxLjY1NTgzOTcsICJzdGVwIjogMzYyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExMDkuNjE2MzY4NSwgInN0ZXAiOiAzNjMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTExOC4xMjU5MywgInN0ZXAiOiAzNjQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTEyNi45ODk2MjY2LCAic3RlcCI6IDM2NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTM1LjgyNDA0NywgInN0ZXAiOiAzNjYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTE0NC4yNDQ4OTIxLCAic3RlcCI6IDM2NzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTUyLjk2MTI0MDgsICJzdGVwIjogMzY4MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNjAuNTk5OTAzMywgInN0ZXAiOiAzNjkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTE3My43NDc0NTk3LCAic3RlcCI6IDM3MDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTgyLjg3OTk0OTMsICJzdGVwIjogMzcxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExOTEuMjA2NTc4LCAic3RlcCI6IDM3MjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjAwLjMyOTk4NjMsICJzdGVwIjogMzczMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyMDguMzYyNDMzLCAic3RlcCI6IDM3NDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjE2LjU2ODUzMiwgInN0ZXAiOiAzNzUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTIyNC42NTg2MTY1LCAic3RlcCI6IDM3NjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjMyLjg1NzI5NCwgInN0ZXAiOiAzNzcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTI0OC41MzA1NTksICJzdGVwIjogMzc4MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNTcuMzg4MTk2NywgInN0ZXAiOiAzNzkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTI2NS41NjQxMzA1LCAic3RlcCI6IDM4MDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjc0LjE3NTQ2OTQsICJzdGVwIjogMzgxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyODMuMDE0NzY0LCAic3RlcCI6IDM4MjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjkxLjcyNjI5MzgsICJzdGVwIjogMzgzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyOTkuODg4Mzg5NiwgInN0ZXAiOiAzODQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTMwOC40NzYxNjMxLCAic3RlcCI6IDM4NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzE2Ljk0ODIyNCwgInN0ZXAiOiAzODYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTMzMC4yMTIzOTE5LCAic3RlcCI6IDM4NzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzM4Ljk4NTc2ODgsICJzdGVwIjogMzg4MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNDcuNzMzODIxOSwgInN0ZXAiOiAzODkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTM1Ny4wMzA5ODkyLCAic3RlcCI6IDM5MDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzY1LjIyMjI2MzYsICJzdGVwIjogMzkxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzNzQuMTMxNzcxMywgInN0ZXAiOiAzOTIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTM4Mi44MTA4ODE5LCAic3RlcCI6IDM5MzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzkxLjU2NTQ3NDMsICJzdGVwIjogMzk0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MDQuNDY0ODAxLCAic3RlcCI6IDM5NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDEyLjMzNTcwMTUsICJzdGVwIjogMzk2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MjEuMTU0NDcsICJzdGVwIjogMzk3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MzAuMTE3NDQzNiwgInN0ZXAiOiAzOTgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTQzOC40MTExMjU3LCAic3RlcCI6IDM5OTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDQ3LjcyNTYzNzQsICJzdGVwIjogNDAwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NTYuMTkzNjM1NywgInN0ZXAiOiA0MDEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ2NC43NDY2MjY0LCAic3RlcCI6IDQwMjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDczLjM5MzkxMywgInN0ZXAiOiA0MDMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTQ5MC4yODQxMTIyLCAic3RlcCI6IDQwNDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDk4LjcwODkyMjksICJzdGVwIjogNDA1MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1MDcuMDk0NTUxNiwgInN0ZXAiOiA0MDYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTUxNS4wNjQ5MjU3LCAic3RlcCI6IDQwNzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTIzLjg3ODUwNCwgInN0ZXAiOiA0MDgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTUzMi4yODI1MDE1LCAic3RlcCI6IDQwOTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTQwLjkxNTA2NSwgInN0ZXAiOiA0MTAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTU0OS4xNzM2MjA3LCAic3RlcCI6IDQxMTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTY1LjgzMzkwNjQsICJzdGVwIjogNDEyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NzMuNjI5MTM1LCAic3RlcCI6IDQxMzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTgyLjA5MzU2MiwgInN0ZXAiOiA0MTQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTU5MC4wMTk5Nzc2LCAic3RlcCI6IDQxNTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTk5LjIzODQ2MzQsICJzdGVwIjogNDE2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2MDguMDYxMzgxNiwgInN0ZXAiOiA0MTcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTYxNi4xODE1MDc4LCAic3RlcCI6IDQxODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjI2LjA4MDU3NjcsICJzdGVwIjogNDE5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2NDEuMDA2MDcyMywgInN0ZXAiOiA0MjAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTY0OS4wMzgxOTE2LCAic3RlcCI6IDQyMTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjU4LjUyOTEzNiwgInN0ZXAiOiA0MjIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTY2Ny45NjM4MjA1LCAic3RlcCI6IDQyMzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjc2LjEwNjQ4MjUsICJzdGVwIjogNDI0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE2ODQuMzc2MTg2OCwgInN0ZXAiOiA0MjUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTY5My4xMDc0MjA3LCAic3RlcCI6IDQyNjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzAyLjE4MTY4NTQsICJzdGVwIjogNDI3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MTAuNjI3NTkzMywgInN0ZXAiOiA0MjgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTcyNi42NzUxODk1LCAic3RlcCI6IDQyOTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzM1LjIxMzQ0MDQsICJzdGVwIjogNDMwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3NDIuOTU0OTgzNSwgInN0ZXAiOiA0MzEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTc1MS41ODM3MzgzLCAic3RlcCI6IDQzMjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzYwLjAzMjU1LCAic3RlcCI6IDQzMzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzY4LjQyOTI3NiwgInN0ZXAiOiA0MzQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTc3Ny4zOTk4MjkxLCAic3RlcCI6IDQzNTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzg1LjU0NTMxNywgInN0ZXAiOiA0MzYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTgwMC44ODMyMzU3LCAic3RlcCI6IDQzNzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODA5LjI2MzU1NzcsICJzdGVwIjogNDM4MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4MTcuMzQ0MTIwNywgInN0ZXAiOiA0MzkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTgyNi40MjgxNjAyLCAic3RlcCI6IDQ0MDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODM0Ljg4NTU5NywgInN0ZXAiOiA0NDEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTg0My40NDQ1NzU1LCAic3RlcCI6IDQ0MjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODUxLjU5Mzc5MDUsICJzdGVwIjogNDQzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NTkuOTIxNDg2LCAic3RlcCI6IDQ0NDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODY4LjY3MTA2ODIsICJzdGVwIjogNDQ1MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4ODEuMzM0NzAxNSwgInN0ZXAiOiA0NDYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTg4OS42MzM5ODYsICJzdGVwIjogNDQ3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4OTguNDE4NzgyLCAic3RlcCI6IDQ0ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTA3LjMzNDAyNzMsICJzdGVwIjogNDQ5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5MTYuMjc1ODg2MywgInN0ZXAiOiA0NTAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTkyNS4zNDY2OTY2LCAic3RlcCI6IDQ1MTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTMzLjMyNzE2MDEsICJzdGVwIjogNDUyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NDEuNDgwNjE1NiwgInN0ZXAiOiA0NTMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTk1NC4xNjc0MTg3LCAic3RlcCI6IDQ1NDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTYyLjM5MzYyNCwgInN0ZXAiOiA0NTUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTk3MC41MTEwMzQsICJzdGVwIjogNDU2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NzguODY3NzEzMiwgInN0ZXAiOiA0NTcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTk4Ny43MDg0MzQ2LCAic3RlcCI6IDQ1ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTk2LjQ0MTg0NCwgInN0ZXAiOiA0NTkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjAwNC40NzM4MTY0LCAic3RlcCI6IDQ2MDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDEyLjc0MjM0NjMsICJzdGVwIjogNDYxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMjUuMzk4NDQzNSwgInN0ZXAiOiA0NjIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjAzNC4xMTU3NTMyLCAic3RlcCI6IDQ2MzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDQzLjAzNTAxODIsICJzdGVwIjogNDY0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNTEuNzgxODc4LCAic3RlcCI6IDQ2NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDYwLjEwNTU5NzMsICJzdGVwIjogNDY2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwNjguNjAwNDYxNSwgInN0ZXAiOiA0NjcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjA3Ni44MzM4OTI2LCAic3RlcCI6IDQ2ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDg1LjM3MzQzOTMsICJzdGVwIjogNDY5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwOTMuNzQ1ODg0LCAic3RlcCI6IDQ3MDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTA2Ljk4NzQ4NTYsICJzdGVwIjogNDcxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxMTUuNjYyMzA5NCwgInN0ZXAiOiA0NzIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjEyMy45NDc3MTU1LCAic3RlcCI6IDQ3MzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTMyLjI3NzcyNzEsICJzdGVwIjogNDc0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNDAuNDE3NTg0NCwgInN0ZXAiOiA0NzUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjE0OS4wODQ0MTU3LCAic3RlcCI6IDQ3NjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTU3LjQwODkyMSwgInN0ZXAiOiA0NzcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjE2NS40ODY1MDg4LCAic3RlcCI6IDQ3ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTc5LjY0NTUwMiwgInN0ZXAiOiA0NzkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjE4OC4zMjY2OTQzLCAic3RlcCI6IDQ4MDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTk2Ljg0NDIyNzMsICJzdGVwIjogNDgxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMDQuNTU5Mzg4LCAic3RlcCI6IDQ4MjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjEzLjA5Njc1NzQsICJzdGVwIjogNDgzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMjEuNjYzOTk5MywgInN0ZXAiOiA0ODQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjIyOS44OTExOTgsICJzdGVwIjogNDg1MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyMzguMDUzMzA1LCAic3RlcCI6IDQ4NjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjQ2LjM0MDY4NiwgInN0ZXAiOiA0ODcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjI2MS4yNjUwOTk4LCAic3RlcCI6IDQ4ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjY5Ljg0OTI3MDMsICJzdGVwIjogNDg5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNzguODU4NDQ3NiwgInN0ZXAiOiA0OTAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjI4Ny41MzE3ODY3LCAic3RlcCI6IDQ5MTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjk1Ljk0NDI1ODUsICJzdGVwIjogNDkyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMDQuMzUyODA1OSwgInN0ZXAiOiA0OTMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjMxMy41MDcyMjEsICJzdGVwIjogNDk0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMjEuMzIyNDg2LCAic3RlcCI6IDQ5NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzM3LjAyMjg0MjIsICJzdGVwIjogNDk2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNDUuNTI3ODA0NiwgInN0ZXAiOiA0OTcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjM1My40MjcxMDg4LCAic3RlcCI6IDQ5ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzYyLjQxMDc2NDcsICJzdGVwIjogNDk5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzNzEuNzQzNDcxNiwgInN0ZXAiOiA1MDAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjM4MC41MjcxOTE5LCAic3RlcCI6IDUwMTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzg5LjAyMzgzNDcsICJzdGVwIjogNTAyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzOTcuNzgyODAyNiwgInN0ZXAiOiA1MDMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjQxMS4yOTYzMDYsICJzdGVwIjogNTA0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MTkuNDcxMjg2NSwgInN0ZXAiOiA1MDUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjQyOC4zNjk3NDYsICJzdGVwIjogNTA2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MzcuMTEzOTYwMywgInN0ZXAiOiA1MDcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ0Ni4xNzI3MTY0LCAic3RlcCI6IDUwODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDU0LjQyNTkyMDIsICJzdGVwIjogNTA5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NjIuNDA4MDUwNSwgInN0ZXAiOiA1MTAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ3MS4xNDc0ODIsICJzdGVwIjogNTExMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0NzguOTQzOTk0LCAic3RlcCI6IDUxMjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDkxLjMxOTY4NDMsICJzdGVwIjogNTEzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0OTkuMjU2MjE2OCwgInN0ZXAiOiA1MTQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjUwNy4xMDkzNTQzLCAic3RlcCI6IDUxNTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTE1LjMxNDU2OCwgInN0ZXAiOiA1MTYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjUyMy40OTY1OTY4LCAic3RlcCI6IDUxNzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTMxLjA4NDc4ODMsICJzdGVwIjogNTE4MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NDAuMDE4NDY0MywgInN0ZXAiOiA1MTkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjU0OC42NDg3Njk5LCAic3RlcCI6IDUyMDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTYxLjQxMjYxMTIsICJzdGVwIjogNTIxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NjkuODkzMDMyOCwgInN0ZXAiOiA1MjIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjU3OC42NzU3OTEsICJzdGVwIjogNTIzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1ODYuOTM4Nzk1MywgInN0ZXAiOiA1MjQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjU5NS4wMzE5MDExLCAic3RlcCI6IDUyNTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjAzLjE3MDg4NDYsICJzdGVwIjogNTI2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MTEuMDc2OTY2MywgInN0ZXAiOiA1MjcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjYxOS45NTE3ODUzLCAic3RlcCI6IDUyODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjI4LjYzMjEyNywgInN0ZXAiOiA1MjkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjY0MS4zNzM0MzksICJzdGVwIjogNTMwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NDkuODU1MTA0NywgInN0ZXAiOiA1MzEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjY1Ny45Njg2NTQ5LCAic3RlcCI6IDUzMjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjY3LjAyNjU2ODcsICJzdGVwIjogNTMzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2NzUuOTQwNDExMywgInN0ZXAiOiA1MzQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjY4NC4yMzU5NjQzLCAic3RlcCI6IDUzNTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjkxLjg1NTY5LCAic3RlcCI6IDUzNjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzAwLjE0NTUyMjQsICJzdGVwIjogNTM3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MTMuMTgxMDYzMiwgInN0ZXAiOiA1MzgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjcyMS4wMjE4NzEsICJzdGVwIjogNTM5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MjkuODc0NTA5NiwgInN0ZXAiOiA1NDAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjczOC4zNjU5MjE3LCAic3RlcCI6IDU0MTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzQ2LjM4MDAzMDksICJzdGVwIjogNTQyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3NTQuNjE1MTc4OCwgInN0ZXAiOiA1NDMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc2Mi41NDM3MTIxLCAic3RlcCI6IDU0NDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzcxLjM1ODAwMTcsICJzdGVwIjogNTQ1MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3ODcuMTQ5NzExNCwgInN0ZXAiOiA1NDYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc5NS43OTk3MzkxLCAic3RlcCI6IDU0NzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODA0LjIzOTUzOTEsICJzdGVwIjogNTQ4MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MTIuMzcwMzE1LCAic3RlcCI6IDU0OTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODIxLjE1NjU1MzUsICJzdGVwIjogNTUwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4MzAuMDIwMDIzLCAic3RlcCI6IDU1MTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODM4LjY5MjUsICJzdGVwIjogNTUyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NDYuOTAyNDgsICJzdGVwIjogNTUzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NTUuMjQyOTIwOSwgInN0ZXAiOiA1NTQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg3MC42NDE2ODYsICJzdGVwIjogNTU1MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NzguNzI1ODU0OSwgInN0ZXAiOiA1NTYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg4Ni42MDczMzAzLCAic3RlcCI6IDU1NzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODk1LjAxNzk2MjIsICJzdGVwIjogNTU4MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MDMuNDAwMDA3NywgInN0ZXAiOiA1NTkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjkxMS4yMDcyMzc1LCAic3RlcCI6IDU2MDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTE5LjgzNjk0MjQsICJzdGVwIjogNTYxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MjguNzMwMjc1NCwgInN0ZXAiOiA1NjIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk0MS43MDE0NTgsICJzdGVwIjogNTYzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NDkuOTc3MTA3OCwgInN0ZXAiOiA1NjQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk1OC43MTU5Mjc4LCAic3RlcCI6IDU2NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTY2LjgxMDg2MjMsICJzdGVwIjogNTY2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5NzQuOTU4MjczMiwgInN0ZXAiOiA1NjcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mjk4My41NTkxODEyLCAic3RlcCI6IDU2ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTkyLjIyNDY2NTQsICJzdGVwIjogNTY5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMDAuODE0MzQxNSwgInN0ZXAiOiA1NzAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzAwOS43ODA0NjksICJzdGVwIjogNTcxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMjIuODY2MDM5LCAic3RlcCI6IDU3MjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDMxLjUzMDczNywgInN0ZXAiOiA1NzMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzAzOS41NjcxODc4LCAic3RlcCI6IDU3NDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDQ3Ljg0MDA0NzQsICJzdGVwIjogNTc1MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNTYuMTUzNzYxLCAic3RlcCI6IDU3NjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDY0Ljk1MjQzNzIsICJzdGVwIjogNTc3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwNzMuODM0ODIxMiwgInN0ZXAiOiA1NzgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzA4Mi43MjIxLCAic3RlcCI6IDU3OTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDk1LjEwMDc1OTMsICJzdGVwIjogNTgwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMDMuMzEzMDIwNSwgInN0ZXAiOiA1ODEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzExMS45Njc3NDIsICJzdGVwIjogNTgyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxMjAuMzUyNDY3LCAic3RlcCI6IDU4MzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTI4LjIwNjYwMiwgInN0ZXAiOiA1ODQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzEzNi43MTMxMDY5LCAic3RlcCI6IDU4NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTQ0LjkyNTIyMDMsICJzdGVwIjogNTg2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNTMuMDM3ODM5MiwgInN0ZXAiOiA1ODcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzE2Ni4wMDAzOTI3LCAic3RlcCI6IDU4ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTc0LjY1NjEyNzUsICJzdGVwIjogNTg5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxODIuNTA1NzAwOCwgInN0ZXAiOiA1OTAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzE5MS41NTY5NjIzLCAic3RlcCI6IDU5MTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTk5LjQwNzU5NDIsICJzdGVwIjogNTkyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMDcuNDYyNzAxMywgInN0ZXAiOiA1OTMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzIxNS42MDAyMzc0LCAic3RlcCI6IDU5NDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjI0LjM1NTU4MDYsICJzdGVwIjogNTk1MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMzIuODczOTI2NCwgInN0ZXAiOiA1OTYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzI0NS4zNzE3NjQsICJzdGVwIjogNTk3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNTMuMTc3MDE3LCAic3RlcCI6IDU5ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjYxLjc2OTU4MTgsICJzdGVwIjogNTk5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyNzAuMDU3NDI3LCAic3RlcCI6IDYwMDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjc4Ljg5Mjg4MiwgInN0ZXAiOiA2MDEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzI4Ny42Nzk3NTc2LCAic3RlcCI6IDYwMjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjk3LjI3MjEyOTgsICJzdGVwIjogNjAzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzMDUuOTE1NzgwNSwgInN0ZXAiOiA2MDQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzMyMi4zNTI5MDE1LCAic3RlcCI6IDYwNTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzMxLjk3NDg3MzMsICJzdGVwIjogNjA2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNDAuNTE5Nzg4NSwgInN0ZXAiOiA2MDcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzM0OS41OTk0OTExLCAic3RlcCI6IDYwODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzU5LjA2ODU4NDcsICJzdGVwIjogNjA5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzNjguNDAwNDU2MiwgInN0ZXAiOiA2MTAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzM3Ny42NzI1ODU1LCAic3RlcCI6IDYxMTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzg2LjM5Nzg1NzIsICJzdGVwIjogNjEyMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzOTUuNDQ5MTI0LCAic3RlcCI6IDYxMzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDA4LjE0OTQyMjQsICJzdGVwIjogNjE0MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0MTcuMzIxMzQzNywgInN0ZXAiOiA2MTUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzQyNi4yNTMyMDMyLCAic3RlcCI6IDYxNjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDM0LjgwNjcyNiwgInN0ZXAiOiA2MTcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ0NC41MTAyMTc0LCAic3RlcCI6IDYxODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDUzLjExMjgzNTQsICJzdGVwIjogNjE5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NjIuNTYzMTQ1NCwgInN0ZXAiOiA2MjAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ3Mi4wMjE4MTI0LCAic3RlcCI6IDYyMTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDg0LjQ0NjM0MSwgInN0ZXAiOiA2MjIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ5My42NTc1ODQyLCAic3RlcCI6IDYyMzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTAyLjQzODU3MywgInN0ZXAiOiA2MjQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzUxMS4yNTMzMjEyLCAic3RlcCI6IDYyNTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTIwLjQ4MjU5MTIsICJzdGVwIjogNjI2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1MjkuNzc5MDM0NCwgInN0ZXAiOiA2MjcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzUzOS42MzY3NDY0LCAic3RlcCI6IDYyODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTQ4LjkwODIwMiwgInN0ZXAiOiA2MjkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzU2MC42MTc3OTE0LCAic3RlcCI6IDYzMDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTcwLjA2NjQ1MDgsICJzdGVwIjogNjMxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NzkuNDc4NjI2LCAic3RlcCI6IDYzMjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTg3LjY2NDY5MiwgInN0ZXAiOiA2MzMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzU5Ny4yMTU1MjU0LCAic3RlcCI6IDYzNDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjA2LjIzNTczNywgInN0ZXAiOiA2MzUwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzYxNS4wNzUxLCAic3RlcCI6IDYzNjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjI0LjgzMjA4NjgsICJzdGVwIjogNjM3MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MzQuNjcwMDQ1NCwgInN0ZXAiOiA2MzgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzY0Ni41MjYyNTY2LCAic3RlcCI6IDYzOTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjU1Ljc0MzAwMjcsICJzdGVwIjogNjQwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2NjUuNjA0Nzc5NSwgInN0ZXAiOiA2NDEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzY3NC42NDAzMTg2LCAic3RlcCI6IDY0MjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjgzLjY2NzkwMywgInN0ZXAiOiA2NDMwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzY5Mi44NzQyOTI0LCAic3RlcCI6IDY0NDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzAyLjUxNjcyLCAic3RlcCI6IDY0NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzEyLjYyNDk2NDIsICJzdGVwIjogNjQ2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MjQuMDQ1MDQwOCwgInN0ZXAiOiA2NDcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzczMi44MjU5Mzk3LCAic3RlcCI6IDY0ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzQxLjk1NDcwNiwgInN0ZXAiOiA2NDkwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc1MC43MTUyNzI3LCAic3RlcCI6IDY1MDAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzYwLjQ4NTcwODUsICJzdGVwIjogNjUxMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3NjkuODYwODI0MywgInN0ZXAiOiA2NTIwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc3OS4xMjQ2OTU1LCAic3RlcCI6IDY1MzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzg5LjQ3NTI5NywgInN0ZXAiOiA2NTQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzc5OC4xMDA5MzEsICJzdGVwIjogNjU1MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MTAuNTUwOTAwNywgInN0ZXAiOiA2NTYwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzgyMC4wMzM4ODE3LCAic3RlcCI6IDY1NzAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczODI4LjIzNTg4NywgInN0ZXAiOiA2NTgwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzgzNi43OTU4MDgzLCAic3RlcCI6IDY1OTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczODQ1Ljk4NTExNDgsICJzdGVwIjogNjYwMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4NTUuMjQ5NTgzNywgInN0ZXAiOiA2NjEwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg2NC42OTExNjE5LCAic3RlcCI6IDY2MjAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczODczLjgzMjMwMzMsICJzdGVwIjogNjYzMCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4ODcuNTIyNzMyMywgInN0ZXAiOiA2NjQwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg5Ny4zMzE1NTU0LCAic3RlcCI6IDY2NTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTA2Ljg3NDQ0NzYsICJzdGVwIjogNjY2MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5MTYuMzQ3OTk3MiwgInN0ZXAiOiA2NjcwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzkyNS42MTYzMDk0LCAic3RlcCI6IDY2ODAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTM0LjkxNDQyODIsICJzdGVwIjogNjY5MCwgInZhbHVlIjogMS4yNDk5OTk5Njg0MjIzNDRlLTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5NDMuNzQwMDQ3MiwgInN0ZXAiOiA2NzAwLCAidmFsdWUiOiAxLjI0OTk5OTk2ODQyMjM0NGUtMDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzk1Mi40NzQ4ODEyLCAic3RlcCI6IDY3MTAsICJ2YWx1ZSI6IDEuMjQ5OTk5OTY4NDIyMzQ0ZS0wNX1dfX1d", + "ok": true, + "headers": [ + [ + "content-length", + "8627" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Test/coco_eval_bbox_1%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIlRlc3QvY29jb19ldmFsX2Jib3hfMSIsICJydW5Ub1NlcmllcyI6IHsiLiI6IFt7IndhbGxUaW1lIjogMTczMzA2Nzc0MC4xNTE4MzYsICJzdGVwIjogMCwgInZhbHVlIjogNS43OTcyMzgzNzI5MDY1NzdlLTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc4MjkuNzU1ODE3MiwgInN0ZXAiOiAxLCAidmFsdWUiOiAwLjAwMDYwMTI4OTM4NjM5NTM2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTEzLjc5MzMxMSwgInN0ZXAiOiAyLCAidmFsdWUiOiAwLjAwMTU0NzgwMTE5MTkxODU1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTk2Ljk5NTM4MjUsICJzdGVwIjogMywgInZhbHVlIjogMC4wMDQ3ODU4MzI5NDg5ODI3MTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODA4MC4xNTcwOTE0LCAic3RlcCI6IDQsICJ2YWx1ZSI6IDAuMDA0NTY5NTU4ODkyMzk5MDczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxNjQuMTkyMjg0LCAic3RlcCI6IDUsICJ2YWx1ZSI6IDAuMDEwMTUzMDM2NTY0NTg4NTQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNDcuODcyMTgwNSwgInN0ZXAiOiA2LCAidmFsdWUiOiAwLjAxMDA5MDMzNzEzNDg5NzcwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzMzLjI1NzA0NjIsICJzdGVwIjogNywgInZhbHVlIjogMC4wMTE5Nzc1NjkyMDAwOTg1MTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODQxNC41NjAzNjgsICJzdGVwIjogOCwgInZhbHVlIjogMC4wMTk1MTMwNzQzMDg2MzM4MDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ5Ni4zNjAyODA1LCAic3RlcCI6IDksICJ2YWx1ZSI6IDAuMDI0NjMxNjM2MjE3MjM2NTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODU3Ny4zMzgxNzUzLCAic3RlcCI6IDEwLCAidmFsdWUiOiAwLjAyMjQ0MjY1MDA0OTkyNDg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2NTcuMDE5MjI2OCwgInN0ZXAiOiAxMSwgInZhbHVlIjogMC4wMzI4NjEyODExODYzNDIyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzM5LjUwNDc1ODYsICJzdGVwIjogMTIsICJ2YWx1ZSI6IDAuMDI2MDg5MTE2OTMwOTYxNjF9LCB7IndhbGxUaW1lIjogMTczMzA2ODgxOS4zNDk0NzQ3LCAic3RlcCI6IDEzLCAidmFsdWUiOiAwLjAyNzc5NDQ2NTQyMjYzMDMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4OTguNzcxMDY3LCAic3RlcCI6IDE0LCAidmFsdWUiOiAwLjA0NTMyNDQ3NDU3MzEzNTM3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTgxLjg3ODY4ODgsICJzdGVwIjogMTUsICJ2YWx1ZSI6IDAuMDMwMzM4OTE4NzkwMjIxMjE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNjEuNTI2MzMzLCAic3RlcCI6IDE2LCAidmFsdWUiOiAwLjAzMDEwMTI4NjI0NzM3MjYyN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTQxLjc0NzM1OTgsICJzdGVwIjogMTcsICJ2YWx1ZSI6IDAuMDM0MjUzNzE2NDY4ODExMDM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMjAuMDEwNjkwNSwgInN0ZXAiOiAxOCwgInZhbHVlIjogMC4wNDM2NTM2NDgzNDY2NjI1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzAxLjY1MzQ1MiwgInN0ZXAiOiAxOSwgInZhbHVlIjogMC4wNDcyNzQzMjg3NjgyNTMzMjZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTM4MC4xOTMxMjgsICJzdGVwIjogMjAsICJ2YWx1ZSI6IDAuMDM4MTIwMTc2NjQzMTMzMTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ1OS4yNTI1MDI0LCAic3RlcCI6IDIxLCAidmFsdWUiOiAwLjAzNzc5Nzk1MzkzMzQ3NzR9LCB7IndhbGxUaW1lIjogMTczMzA2OTUzOC4yODY2LCAic3RlcCI6IDIyLCAidmFsdWUiOiAwLjA0NzYyOTA0NzE4NTE4MjU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MTguMzI4Njg3MiwgInN0ZXAiOiAyMywgInZhbHVlIjogMC4wNjMzOTg3NDExODU2NjUxM30sIHsid2FsbFRpbWUiOiAxNzMzMDY5Njk4LjY3MDM3NzUsICJzdGVwIjogMjQsICJ2YWx1ZSI6IDAuMDY1MDcxNTE1NzM4OTY0MDh9LCB7IndhbGxUaW1lIjogMTczMzA2OTc3Ni42MjQ0MzI4LCAic3RlcCI6IDI1LCAidmFsdWUiOiAwLjA1NjQwNjU0MjY1ODgwNTg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NTMuNDgzNjA0MiwgInN0ZXAiOiAyNiwgInZhbHVlIjogMC4wNTI4NTI1MTE0MDU5NDQ4MjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTkyOS45MDUyODEzLCAic3RlcCI6IDI3LCAidmFsdWUiOiAwLjA2MjAyMzQ2NDU5MDMxMTA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMDYuNjQ2NDg0NCwgInN0ZXAiOiAyOCwgInZhbHVlIjogMC4wNTg4MjM5NDY4NjM0MTI4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDgzLjMxODQxNzUsICJzdGVwIjogMjksICJ2YWx1ZSI6IDAuMDY1NTIzNDE1ODAzOTA5M30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTYxLjg3NDYwNzYsICJzdGVwIjogMzAsICJ2YWx1ZSI6IDAuMDc1NTI5MjY5ODc0MDk1OTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDI0Mi43MTI1NzkzLCAic3RlcCI6IDMxLCAidmFsdWUiOiAwLjA3NDQ3MTA3MTM2MjQ5NTQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMjEuNjU5NTEyMywgInN0ZXAiOiAzMiwgInZhbHVlIjogMC4wNzQ5MjU5MzY3NTg1MTgyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzk4Ljc1Njc0MDMsICJzdGVwIjogMzMsICJ2YWx1ZSI6IDAuMDgwMDg4NTYzMjYzNDE2Mjl9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ3Ny41Nzc3NjYsICJzdGVwIjogMzQsICJ2YWx1ZSI6IDAuMDgyMjI2NDc3NTYzMzgxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTU0LjQxNjEwOTYsICJzdGVwIjogMzUsICJ2YWx1ZSI6IDAuMDg0MDI5MjEyNTk0MDMyMjl9LCB7IndhbGxUaW1lIjogMTczMzA3MDYzMy40NjM1OTIsICJzdGVwIjogMzYsICJ2YWx1ZSI6IDAuMDc2OTQ2NTg2MzcwNDY4MTR9LCB7IndhbGxUaW1lIjogMTczMzA3MDcwOC44Mjg4Mzc5LCAic3RlcCI6IDM3LCAidmFsdWUiOiAwLjA4MjE4MDkzMjE2NDE5MjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDc4OC4xOTU2ODksICJzdGVwIjogMzgsICJ2YWx1ZSI6IDAuMDgxNjg5NDMyMjYzMzc0MzN9LCB7IndhbGxUaW1lIjogMTczMzA3MDg2My43NjIzNjUzLCAic3RlcCI6IDM5LCAidmFsdWUiOiAwLjA4MzE3Nzg5NDM1Mzg2NjU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NDAuNDI0MzM1NywgInN0ZXAiOiA0MCwgInZhbHVlIjogMC4wODM3MzY3MDI3OTk3OTcwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDE1LjUwNzYwMTcsICJzdGVwIjogNDEsICJ2YWx1ZSI6IDAuMDg0NTQxNjkzMzI5ODExMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDkwLjM4NjA2ODYsICJzdGVwIjogNDIsICJ2YWx1ZSI6IDAuMDg2ODQxNDc4OTQzODI0Nzd9LCB7IndhbGxUaW1lIjogMTczMzA3MTE2OC42ODk1MzQ3LCAic3RlcCI6IDQzLCAidmFsdWUiOiAwLjA5MDA1MTAxMDI1MTA0NTIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNDMuOTcxMDY3NCwgInN0ZXAiOiA0NCwgInZhbHVlIjogMC4wODk0NjMxNTk0NDE5NDc5NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzIzLjQ5NTkxOTUsICJzdGVwIjogNDUsICJ2YWx1ZSI6IDAuMDkxMzIzNTAyMzYxNzc0NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTQwMC41NzY4NDI4LCAic3RlcCI6IDQ2LCAidmFsdWUiOiAwLjA4OTcyMTI2OTkwNTU2NzE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NzguNTk0NDMzMywgInN0ZXAiOiA0NywgInZhbHVlIjogMC4wOTQwNTQyOTY2MTI3Mzk1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTU3LjM0MTk5OSwgInN0ZXAiOiA0OCwgInZhbHVlIjogMC4wOTQ4NjkyNDg1NjkwMTE2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjM2LjYyMzM3OTIsICJzdGVwIjogNDksICJ2YWx1ZSI6IDAuMDkyODU0NzYwNTg3MjE1NDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTcxNi4yNTEyMzk4LCAic3RlcCI6IDUwLCAidmFsdWUiOiAwLjA5ODU3ODM3MTEwNzU3ODI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3OTUuMDU1ODE0NywgInN0ZXAiOiA1MSwgInZhbHVlIjogMC4wOTY0NTYxNzc1MzI2NzI4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODcyLjc5MDA0NzYsICJzdGVwIjogNTIsICJ2YWx1ZSI6IDAuMDk3MDAyMzY0Njk1MDcyMTd9LCB7IndhbGxUaW1lIjogMTczMzA3MTk0OC4zNTc2OTksICJzdGVwIjogNTMsICJ2YWx1ZSI6IDAuMDk1NTQxOTk4NzQ0MDEwOTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjAyMy42NTY5MzcxLCAic3RlcCI6IDU0LCAidmFsdWUiOiAwLjA5NTk1ODUwMTEwMDU0MDE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwOTkuNDU4MTQ0MiwgInN0ZXAiOiA1NSwgInZhbHVlIjogMC4wOTgwNDYyNDMxOTA3NjUzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTc1Ljc2NjUwNjQsICJzdGVwIjogNTYsICJ2YWx1ZSI6IDAuMDk2NjA0MTM4NjEyNzQ3MTl9LCB7IndhbGxUaW1lIjogMTczMzA3MjI1MC4zMjc5NjQzLCAic3RlcCI6IDU3LCAidmFsdWUiOiAwLjA5ODk1ODIwMTcwNjQwOTQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMjguNzc5MTExNCwgInN0ZXAiOiA1OCwgInZhbHVlIjogMC4xMDE3NTI0MTUyOTk0MTU1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDA5LjQzOTM4MjgsICJzdGVwIjogNTksICJ2YWx1ZSI6IDAuMDk5MjEwNDE4NzYwNzc2NTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ4NC40MjIzNSwgInN0ZXAiOiA2MCwgInZhbHVlIjogMC4wOTc4NTg5OTUxOTkyMDM0OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTU3Ljg5NjMxOTQsICJzdGVwIjogNjEsICJ2YWx1ZSI6IDAuMDk4OTkxOTE1NTgzNjEwNTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjYzMi42OTc0MjI3LCAic3RlcCI6IDYyLCAidmFsdWUiOiAwLjEwMTU2ODI4OTEwMTEyMzgxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MDcuNDg5ODA1MiwgInN0ZXAiOiA2MywgInZhbHVlIjogMC4xMDI3NDE4NTI0MDI2ODcwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzgyLjM4NzI3MzgsICJzdGVwIjogNjQsICJ2YWx1ZSI6IDAuMTA0MTA4MzExMjM1OTA0N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyODYxLjA2NTM4MywgInN0ZXAiOiA2NSwgInZhbHVlIjogMC4xMDgxOTcyNzkyNzQ0NjM2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTM4LjEzMDk1MTYsICJzdGVwIjogNjYsICJ2YWx1ZSI6IDAuMTA4OTMxMzk5ODgxODM5NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MzAxMy45MzExNjM4LCAic3RlcCI6IDY3LCAidmFsdWUiOiAwLjEwNzQzNjE4NzU2NTMyNjY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwODkuOTQ3NzI5LCAic3RlcCI6IDY4LCAidmFsdWUiOiAwLjEwNjY5OTcyMDAyNTA2MjU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNjQuMTI3MzA0OCwgInN0ZXAiOiA2OSwgInZhbHVlIjogMC4xMDcxNzEyOTcwNzMzNjQyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjM4LjUyMjM4MjMsICJzdGVwIjogNzAsICJ2YWx1ZSI6IDAuMTA2ODMyNzU3NTkyMjAxMjN9LCB7IndhbGxUaW1lIjogMTczMzA3MzMxNi44MTAxMjA4LCAic3RlcCI6IDcxLCAidmFsdWUiOiAwLjEwNTM3Nzc1NjA1OTE2OTc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzOTguMjgzMDg3MywgInN0ZXAiOiA3MiwgInZhbHVlIjogMC4xMDk4NTA5MjgxODczNzAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NzguNzE5MjU5LCAic3RlcCI6IDczLCAidmFsdWUiOiAwLjEwNDMwNTY4NDU2NjQ5Nzh9LCB7IndhbGxUaW1lIjogMTczMzA3MzU1OS4wMzUwOTQ1LCAic3RlcCI6IDc0LCAidmFsdWUiOiAwLjEwODgwNzcyMDI0MzkzMDgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MzkuMjA1NjI0OCwgInN0ZXAiOiA3NSwgInZhbHVlIjogMC4xMDM0OTMwMDUwMzczMDc3NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzIwLjUzNDI1ODQsICJzdGVwIjogNzYsICJ2YWx1ZSI6IDAuMTA2ODUxOTU3NzM4Mzk5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczODAwLjg5MjM0NiwgInN0ZXAiOiA3NywgInZhbHVlIjogMC4xMDgyMjg2Njg1NzA1MTg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4ODAuNjI2MjA0MywgInN0ZXAiOiA3OCwgInZhbHVlIjogMC4xMDIzMTMzNjk1MTI1NTc5OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTYyLjQxOTQyMjYsICJzdGVwIjogNzksICJ2YWx1ZSI6IDAuMTA5NTc2NDE4OTk1ODU3MjR9XX19XQ==", + "ok": true, + "headers": [ + [ + "content-length", + "1942" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Test/coco_eval_bbox_5%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIlRlc3QvY29jb19ldmFsX2Jib3hfNSIsICJydW5Ub1NlcmllcyI6IHsiLiI6IFt7IndhbGxUaW1lIjogMTczMzA2Nzc0MC4xNTE4OTk2LCAic3RlcCI6IDAsICJ2YWx1ZSI6IDAuMH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODI5Ljc1NTg4OTcsICJzdGVwIjogMSwgInZhbHVlIjogMC4wfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MTMuNzkzMzgzLCAic3RlcCI6IDIsICJ2YWx1ZSI6IDAuMH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTk2Ljk5NTQ1MiwgInN0ZXAiOiAzLCAidmFsdWUiOiAwLjB9LCB7IndhbGxUaW1lIjogMTczMzA2ODA4MC4xNTcyNywgInN0ZXAiOiA0LCAidmFsdWUiOiAwLjB9LCB7IndhbGxUaW1lIjogMTczMzA2ODE2NC4xOTIzNTc1LCAic3RlcCI6IDUsICJ2YWx1ZSI6IDAuMH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjQ3Ljg3MjIzNTUsICJzdGVwIjogNiwgInZhbHVlIjogMC4wfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMzMuMjU3MTA3LCAic3RlcCI6IDcsICJ2YWx1ZSI6IDAuMDUxNDMwMTQzNDE1OTI3ODl9LCB7IndhbGxUaW1lIjogMTczMzA2ODQxNC41NjA0NDIsICJzdGVwIjogOCwgInZhbHVlIjogMC4wfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0OTYuMzYwMzYzNSwgInN0ZXAiOiA5LCAidmFsdWUiOiAwLjAzMzY2MzM2NTk4OTkyMzQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NzcuMzM4MjM1NiwgInN0ZXAiOiAxMCwgInZhbHVlIjogMC4xNDkwMDk4OTgzMDQ5MzkyN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjU3LjAxOTMxMTcsICJzdGVwIjogMTEsICJ2YWx1ZSI6IDAuMDU5MDc1OTA2ODcyNzQ5MzN9LCB7IndhbGxUaW1lIjogMTczMzA2ODczOS41MDQ4MjQ5LCAic3RlcCI6IDEyLCAidmFsdWUiOiAwLjEyNjczMjY3NzIyMTI5ODIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MTkuMzQ5NTQ0NSwgInN0ZXAiOiAxMywgInZhbHVlIjogMC4zMjAzOTAwNDU2NDI4NTI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4OTguNzcxMTM4MiwgInN0ZXAiOiAxNCwgInZhbHVlIjogMC4wOTkwNjgyOTE0ODUzMDk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5ODEuODc4NzU5MSwgInN0ZXAiOiAxNSwgInZhbHVlIjogMC4wNzcyMjc3MTkxMjgxMzE4N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDYxLjUyNjM5NTYsICJzdGVwIjogMTYsICJ2YWx1ZSI6IDAuMzAzOTYwMzgyOTM4Mzg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxNDEuNzQ3NDI3MiwgInN0ZXAiOiAxNywgInZhbHVlIjogMC4wMzQzMjM0MzE1NTE0NTY0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjIwLjAxMDc2NDgsICJzdGVwIjogMTgsICJ2YWx1ZSI6IDAuMTEzODYxMzg5NDU4MTc5NDd9LCB7IndhbGxUaW1lIjogMTczMzA2OTMwMS42NTM1MTE4LCAic3RlcCI6IDE5LCAidmFsdWUiOiAwLjE5NTY0MzU1OTA5ODI0Mzd9LCB7IndhbGxUaW1lIjogMTczMzA2OTM4MC4xOTMyNDE0LCAic3RlcCI6IDIwLCAidmFsdWUiOiAwLjM0NjI4NzEzMTMwOTUwOTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ1OS4yNTI1NzEsICJzdGVwIjogMjEsICJ2YWx1ZSI6IDAuMjYxMzg2MTI2Mjc5ODMwOTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTUzOC4yODY2ODQ1LCAic3RlcCI6IDIyLCAidmFsdWUiOiAwLjcyMzU5NzM0NzczNjM1ODZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTYxOC4zMjg3NTczLCAic3RlcCI6IDIzLCAidmFsdWUiOiAwLjQwMTMyMDEyOTYzMjk0OTgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2OTguNjcwNDUyLCAic3RlcCI6IDI0LCAidmFsdWUiOiAwLjQxMjU0MTI0MDQ1MzcyMDF9LCB7IndhbGxUaW1lIjogMTczMzA2OTc3Ni42MjQ0OTE1LCAic3RlcCI6IDI1LCAidmFsdWUiOiAwLjIwNTk0MDU4OTMwODczODd9LCB7IndhbGxUaW1lIjogMTczMzA2OTg1My40ODM2ODc2LCAic3RlcCI6IDI2LCAidmFsdWUiOiAwLjI4MDE5ODAwNzgyMjAzNjc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MjkuOTA1MzY1NywgInN0ZXAiOiAyNywgInZhbHVlIjogMC40NzgyMTc4MTAzOTIzNzk3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDA2LjY0NjU1NzMsICJzdGVwIjogMjgsICJ2YWx1ZSI6IDAuMzQ5NTA0OTQ3NjYyMzUzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDgzLjMxODQ4NzYsICJzdGVwIjogMjksICJ2YWx1ZSI6IDAuMzc3ODg3Nzg1NDM0NzIyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTYxLjg3NDY4MiwgInN0ZXAiOiAzMCwgInZhbHVlIjogMC40ODc0NTg3MzU3MDQ0MjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDI0Mi43MTI2NTEsICJzdGVwIjogMzEsICJ2YWx1ZSI6IDAuNDAyOTcwMjg0MjIzNTU2NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzIxLjY1OTU4MzMsICJzdGVwIjogMzIsICJ2YWx1ZSI6IDAuMzAzOTYwMzgyOTM4Mzg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzOTguNzU2ODAzLCAic3RlcCI6IDMzLCAidmFsdWUiOiAwLjE3NTc0MjU4MTQ4NjcwMTk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NzcuNTc3ODQxLCAic3RlcCI6IDM0LCAidmFsdWUiOiAwLjQwMzg5Njk1NzYzNTg3OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDU1NC40MTYxNzk0LCAic3RlcCI6IDM1LCAidmFsdWUiOiAwLjE2ODg3Mjg5Mjg1NjU5Nzl9LCB7IndhbGxUaW1lIjogMTczMzA3MDYzMy40NjM2Nzc2LCAic3RlcCI6IDM2LCAidmFsdWUiOiAwLjQyODcxMjg3NDY1MDk1NTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDcwOC44Mjg5MDczLCAic3RlcCI6IDM3LCAidmFsdWUiOiAwLjI5NjQzNTY1NDE2MzM2MDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDc4OC4xOTU3NTAyLCAic3RlcCI6IDM4LCAidmFsdWUiOiAwLjE2NTM0NjUzMzA2MDA3Mzg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NjMuNzYyNDM5NSwgInN0ZXAiOiAzOSwgInZhbHVlIjogMC4xMjUyODk5NjE2OTU2NzEwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTQwLjQyNDM5MjIsICJzdGVwIjogNDAsICJ2YWx1ZSI6IDAuNDMwMDMyOTk4MzIzNDQwNTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTAxNS41MDc2ODY2LCAic3RlcCI6IDQxLCAidmFsdWUiOiAwLjMwNDk1MDUwNTQ5NTA3MTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTA5MC4zODYxMzg0LCAic3RlcCI6IDQyLCAidmFsdWUiOiAwLjY0MzMxNjgwNTM2MjcwMTR9LCB7IndhbGxUaW1lIjogMTczMzA3MTE2OC42ODk1OTU3LCAic3RlcCI6IDQzLCAidmFsdWUiOiAwLjU1MjE3ODIwNDA1OTYwMDh9LCB7IndhbGxUaW1lIjogMTczMzA3MTI0My45NzExMjI3LCAic3RlcCI6IDQ0LCAidmFsdWUiOiAwLjQ0NDQyMjQ1MzY0MTg5MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTMyMy40OTU5OTEyLCAic3RlcCI6IDQ1LCAidmFsdWUiOiAwLjQyMTc4MjE2NTc2NTc2MjMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MDAuNTc2OTEyMiwgInN0ZXAiOiA0NiwgInZhbHVlIjogMC4zNTYxNjA2MTA5MTQyMzAzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDc4LjU5NDUwMjQsICJzdGVwIjogNDcsICJ2YWx1ZSI6IDAuMjkwODUzMzgxMTU2OTIxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTU3LjM0MjA1OTQsICJzdGVwIjogNDgsICJ2YWx1ZSI6IDAuNDk0ODg0NDkwOTY2Nzk2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjM2LjYyMzQzOTMsICJzdGVwIjogNDksICJ2YWx1ZSI6IDAuMzEyOTc5MzEwNzUwOTYxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzE2LjI1MTMwODQsICJzdGVwIjogNTAsICJ2YWx1ZSI6IDAuNTI5MzM5OTA5NTUzNTI3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzk1LjA1NTg3NDMsICJzdGVwIjogNTEsICJ2YWx1ZSI6IDAuNDU3MTQyODU5Njk3MzQxOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODcyLjc5MDExNywgInN0ZXAiOiA1MiwgInZhbHVlIjogMC4zNDI2MjkyNTM4NjQyODgzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTQ4LjM1Nzc2OSwgInN0ZXAiOiA1MywgInZhbHVlIjogMC4zMTM1Nzg0ODY0NDI1NjU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMjMuNjU3MDE1MywgInN0ZXAiOiA1NCwgInZhbHVlIjogMC4yNjg2OTQwMTMzNTcxNjI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwOTkuNDU4MjE3NCwgInN0ZXAiOiA1NSwgInZhbHVlIjogMC4xNzI1NzQyNTE4OTAxODI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNzUuNzY2NTkwOCwgInN0ZXAiOiA1NiwgInZhbHVlIjogMC4yNDIzMTk2NTgzOTg2MjgyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjUwLjMyODAzNiwgInN0ZXAiOiA1NywgInZhbHVlIjogMC40MTY4NzQxMTA2OTg2OTk5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzI4Ljc3OTE4MTcsICJzdGVwIjogNTgsICJ2YWx1ZSI6IDAuMTQ1MDQ5NTEyMzg2MzIyMDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQwOS40Mzk0NDIyLCAic3RlcCI6IDU5LCAidmFsdWUiOiAwLjA2ODY0Njg2MzEwMjkxMjl9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ4NC40MjI0MDc2LCAic3RlcCI6IDYwLCAidmFsdWUiOiAwLjA3NjIzNzYyNjM3Mzc2Nzg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NTcuODk2NDEwNSwgInN0ZXAiOiA2MSwgInZhbHVlIjogMC4wNTYyNTg4Mzg2MjM3NjIxM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjMyLjY5NzQ5MzMsICJzdGVwIjogNjIsICJ2YWx1ZSI6IDAuMjQ4NzEyODY3NDk4Mzk3ODN9LCB7IndhbGxUaW1lIjogMTczMzA3MjcwNy40ODk4NzYsICJzdGVwIjogNjMsICJ2YWx1ZSI6IDAuMjQyODcxMjg0NDg0ODYzMjh9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc4Mi4zODczMzA1LCAic3RlcCI6IDY0LCAidmFsdWUiOiAwLjI2MTY4MzE2NjAyNzA2OTF9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg2MS4wNjU0NzEyLCAic3RlcCI6IDY1LCAidmFsdWUiOiAwLjE4NjA1Mzc1Mjg5OTE2OTkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MzguMTMxMDIxMywgInN0ZXAiOiA2NiwgInZhbHVlIjogMC4zMDQ3MTk0Nzc4OTE5MjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzAxMy45NTM1MDc0LCAic3RlcCI6IDY3LCAidmFsdWUiOiAwLjI1ODgyODM3MTc2MzIyOTM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwODkuOTQ3ODAzNywgInN0ZXAiOiA2OCwgInZhbHVlIjogMC40MzIxNzgyMjkwOTM1NTE2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTY0LjEyNzM4MTYsICJzdGVwIjogNjksICJ2YWx1ZSI6IDAuMzg4NTE0ODQ2NTYzMzM5MjN9LCB7IndhbGxUaW1lIjogMTczMzA3MzIzOC41MjI0NTQ3LCAic3RlcCI6IDcwLCAidmFsdWUiOiAwLjU0MzEyMTE1OTA3NjY5MDd9LCB7IndhbGxUaW1lIjogMTczMzA3MzMxNi44MTAxOTEyLCAic3RlcCI6IDcxLCAidmFsdWUiOiAwLjM3NTg0MTU4Nzc4MTkwNjEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzOTguMjgzMTU5MywgInN0ZXAiOiA3MiwgInZhbHVlIjogMC4xMzgzMzA5ODExMzUzNjgzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNDc4LjcxOTMyLCAic3RlcCI6IDczLCAidmFsdWUiOiAwLjI2MjY1OTEzMjQ4MDYyMTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NTkuMDM1MTYzNCwgInN0ZXAiOiA3NCwgInZhbHVlIjogMC4yMTY0MDczNTg2NDYzOTI4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjM5LjIwNTcxMDQsICJzdGVwIjogNzUsICJ2YWx1ZSI6IDAuMjIxNjE3MTYyMjI3NjMwNjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzcyMC41MzQzMjkyLCAic3RlcCI6IDc2LCAidmFsdWUiOiAwLjI2MzYzNTA2OTEzMTg1MTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzgwMC44OTI0MDQsICJzdGVwIjogNzcsICJ2YWx1ZSI6IDAuMjY2MDA2NTg4OTM1ODUyMDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg4MC42MjYyNzMsICJzdGVwIjogNzgsICJ2YWx1ZSI6IDAuMzA0NzE5NDc3ODkxOTIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5NjIuNDE5NDkyMiwgInN0ZXAiOiA3OSwgInZhbHVlIjogMC4yMTY0MDczNTg2NDYzOTI4Mn1dfX1d", + "ok": true, + "headers": [ + [ + "content-length", + "1826" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Test/coco_eval_bbox_4%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIlRlc3QvY29jb19ldmFsX2Jib3hfNCIsICJydW5Ub1NlcmllcyI6IHsiLiI6IFt7IndhbGxUaW1lIjogMTczMzA2Nzc0MC4xNTE4ODU1LCAic3RlcCI6IDAsICJ2YWx1ZSI6IDAuMDAwMjc1NTU2NDA1NTQwNTU1N30sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODI5Ljc1NTg3NTgsICJzdGVwIjogMSwgInZhbHVlIjogMC4wMDAzNjgzMDY5MzcxNjE4MzMwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTEzLjc5MzM2OTMsICJzdGVwIjogMiwgInZhbHVlIjogMC4wMDE4MTk4MDQ4OTI4NzUyNTQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5OTYuOTk1NDM5LCAic3RlcCI6IDMsICJ2YWx1ZSI6IDAuMDAyOTI2ODQxNjExMDQyNjE4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDgwLjE1NzE3ODQsICJzdGVwIjogNCwgInZhbHVlIjogMC4wMTE2MDE3Mjc0NTU4NTQ0MTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODE2NC4xOTIzNDU0LCAic3RlcCI6IDUsICJ2YWx1ZSI6IDAuMDA4ODc1MDI5MTYxNTcyNDU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNDcuODcyMjIzOSwgInN0ZXAiOiA2LCAidmFsdWUiOiAwLjAyMDk2OTQ0MzAyMzIwNDgwM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzMzLjI1NzA5MzQsICJzdGVwIjogNywgInZhbHVlIjogMC4wMjkzMjI1MTgwMzU3Njk0NjN9LCB7IndhbGxUaW1lIjogMTczMzA2ODQxNC41NjA0Mjg2LCAic3RlcCI6IDgsICJ2YWx1ZSI6IDAuMDY5OTA3Njk1MDU1MDA3OTN9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ5Ni4zNjAzNTEzLCAic3RlcCI6IDksICJ2YWx1ZSI6IDAuMDkxNTQ0NTY4NTM4NjY1Nzd9LCB7IndhbGxUaW1lIjogMTczMzA2ODU3Ny4zMzgyMjI1LCAic3RlcCI6IDEwLCAidmFsdWUiOiAwLjA3MDM0NjQ4MjA5ODEwMjU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2NTcuMDE5Mjk5MywgInN0ZXAiOiAxMSwgInZhbHVlIjogMC4xMDM4MjE3NTQ0NTU1NjY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MzkuNTA0ODEzLCAic3RlcCI6IDEyLCAidmFsdWUiOiAwLjA2NDM5NTQzNTE1NDQzODAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MTkuMzQ5NTMxNywgInN0ZXAiOiAxMywgInZhbHVlIjogMC4wODUyNTY4MDc1MDYwODQ0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODk4Ljc3MTEyNiwgInN0ZXAiOiAxNCwgInZhbHVlIjogMC4xMzczMTc3NzY2Nzk5OTI2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTgxLjg3ODc0NiwgInN0ZXAiOiAxNSwgInZhbHVlIjogMC4wMzUyMjMxNDg3NjMxNzk3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDYxLjUyNjM4MTcsICJzdGVwIjogMTYsICJ2YWx1ZSI6IDAuMDgwNDY1MDYzNDUyNzIwNjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTE0MS43NDc0MDQ2LCAic3RlcCI6IDE3LCAidmFsdWUiOiAwLjEwMDIyODEwMTAxNTA5MDk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMjAuMDEwNzUyLCAic3RlcCI6IDE4LCAidmFsdWUiOiAwLjA5MDEwNjI0ODg1NTU5MDgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMDEuNjUzNDk5MSwgInN0ZXAiOiAxOSwgInZhbHVlIjogMC4wOTM2NzcwOTYwNjg4NTkxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzODAuMTkzMjIsICJzdGVwIjogMjAsICJ2YWx1ZSI6IDAuMDgwOTQ1NzMwMjA5MzUwNTl9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ1OS4yNTI1NDgsICJzdGVwIjogMjEsICJ2YWx1ZSI6IDAuMDg2NTI4MzYwODQzNjU4NDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTUzOC4yODY2NzE0LCAic3RlcCI6IDIyLCAidmFsdWUiOiAwLjEyNzAyMDgwNjA3NDE0MjQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MTguMzI4NzQ1NCwgInN0ZXAiOiAyMywgInZhbHVlIjogMC4xNTg2MjkwMDAxODY5MjAxN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5Njk4LjY3MDQyODgsICJzdGVwIjogMjQsICJ2YWx1ZSI6IDAuMTcxMjc2MjExNzM4NTg2NDN9LCB7IndhbGxUaW1lIjogMTczMzA2OTc3Ni42MjQ0Nzg4LCAic3RlcCI6IDI1LCAidmFsdWUiOiAwLjEzODU0NjUxMTUzMDg3NjE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NTMuNDgzNjc0LCAic3RlcCI6IDI2LCAidmFsdWUiOiAwLjA4NzQ3MzkyMTQ3Nzc5NDY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MjkuOTA1MzUzMywgInN0ZXAiOiAyNywgInZhbHVlIjogMC4xNjQ3NzMwOTE2NzM4NTF9LCB7IndhbGxUaW1lIjogMTczMzA3MDAwNi42NDY1NDQyLCAic3RlcCI6IDI4LCAidmFsdWUiOiAwLjExMjY1MjQ3MzE1MTY4MzgxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwODMuMzE4NDY0MywgInN0ZXAiOiAyOSwgInZhbHVlIjogMC4xMTQ2NzI2MDg2NzM1NzI1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTYxLjg3NDY2ODYsICJzdGVwIjogMzAsICJ2YWx1ZSI6IDAuMTU3MTU5MTk0MzUwMjQyNjF9LCB7IndhbGxUaW1lIjogMTczMzA3MDI0Mi43MTI2Mjc0LCAic3RlcCI6IDMxLCAidmFsdWUiOiAwLjE2NDM1NzgyNjExMzcwMDg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMjEuNjU5NTcwNSwgInN0ZXAiOiAzMiwgInZhbHVlIjogMC4xNzI1NzY5NDkwMDAzNTg1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzk4Ljc1Njc5LCAic3RlcCI6IDMzLCAidmFsdWUiOiAwLjE5MjMwMTgyNDY4ODkxMTQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NzcuNTc3ODI3NywgInN0ZXAiOiAzNCwgInZhbHVlIjogMC4xMjExMDM4OTc2OTA3NzMwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTU0LjQxNjE2NywgInN0ZXAiOiAzNSwgInZhbHVlIjogMC4xODAyODM3ODQ4NjYzMzN9LCB7IndhbGxUaW1lIjogMTczMzA3MDYzMy40NjM2NDEsICJzdGVwIjogMzYsICJ2YWx1ZSI6IDAuMTg2MjQ5NzAzMTY4ODY5MDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDcwOC44Mjg4ODQ4LCAic3RlcCI6IDM3LCAidmFsdWUiOiAwLjE4NDI2ODgxNzMwNTU2NDg4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3ODguMTk1NzM3LCAic3RlcCI6IDM4LCAidmFsdWUiOiAwLjE5NTgyNDMyNTA4NDY4NjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NjMuNzYyNDI1NywgInN0ZXAiOiAzOSwgInZhbHVlIjogMC4xOTAyMTM3Njk2NzQzMDExNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTQwLjQyNDM3OTYsICJzdGVwIjogNDAsICJ2YWx1ZSI6IDAuMTc3MDQ5NDcyOTI4MDQ3MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MTAxNS41MDc2NzIzLCAic3RlcCI6IDQxLCAidmFsdWUiOiAwLjE5MzUwNTQzNjE4MjAyMjF9LCB7IndhbGxUaW1lIjogMTczMzA3MTA5MC4zODYxMjYsICJzdGVwIjogNDIsICJ2YWx1ZSI6IDAuMjA1MDY0NzQzNzU3MjQ3OTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTE2OC42ODk1ODI2LCAic3RlcCI6IDQzLCAidmFsdWUiOiAwLjE4NzAxODE3MDk1Mjc5Njk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNDMuOTcxMTEwMywgInN0ZXAiOiA0NCwgInZhbHVlIjogMC4yMjUzNzAzNzczMDIxNjk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMjMuNDk1OTc3OSwgInN0ZXAiOiA0NSwgInZhbHVlIjogMC4xOTMzMjMzNDM5OTIyMzMyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDAwLjU3Njg5OSwgInN0ZXAiOiA0NiwgInZhbHVlIjogMC4xODk3NDM2Njc4NDA5NTc2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDc4LjU5NDQ4OTgsICJzdGVwIjogNDcsICJ2YWx1ZSI6IDAuMTk4Mjc4MDA5ODkxNTF9LCB7IndhbGxUaW1lIjogMTczMzA3MTU1Ny4zNDIwNDY3LCAic3RlcCI6IDQ4LCAidmFsdWUiOiAwLjE5OTgxMDE3NzA4Nzc4Mzh9LCB7IndhbGxUaW1lIjogMTczMzA3MTYzNi42MjM0MjcsICJzdGVwIjogNDksICJ2YWx1ZSI6IDAuMjAzMjA4NzQ0NTI1OTA5NDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTcxNi4yNTEyOTcsICJzdGVwIjogNTAsICJ2YWx1ZSI6IDAuMjI3Njc5MzU2OTMyNjQwMDh9LCB7IndhbGxUaW1lIjogMTczMzA3MTc5NS4wNTU4NjEyLCAic3RlcCI6IDUxLCAidmFsdWUiOiAwLjIwNzY1ODc4MjYwMTM1NjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTg3Mi43OTAxMDQyLCAic3RlcCI6IDUyLCAidmFsdWUiOiAwLjE5Mzg1ODc0MjcxMzkyODIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NDguMzU3NzU2LCAic3RlcCI6IDUzLCAidmFsdWUiOiAwLjIwMjA5NTQzNDA2OTYzMzQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwMjMuNjU3MDAyLCAic3RlcCI6IDU0LCAidmFsdWUiOiAwLjE5NDYyNjYxNDQ1MTQwODR9LCB7IndhbGxUaW1lIjogMTczMzA3MjA5OS40NTgyMDQ1LCAic3RlcCI6IDU1LCAidmFsdWUiOiAwLjIwNjQ2ODI5OTAzMTI1NzYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNzUuNzY2NTc1OCwgInN0ZXAiOiA1NiwgInZhbHVlIjogMC4yMTAyNDc2NTA3NDI1MzA4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjUwLjMyODAyMjUsICJzdGVwIjogNTcsICJ2YWx1ZSI6IDAuMjEwNzMyOTk2NDYzNzc1NjN9LCB7IndhbGxUaW1lIjogMTczMzA3MjMyOC43NzkxNjkzLCAic3RlcCI6IDU4LCAidmFsdWUiOiAwLjIyNzk0MTU3MjY2NjE2ODJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQwOS40Mzk0MjkzLCAic3RlcCI6IDU5LCAidmFsdWUiOiAwLjIxMjQ1MDY5ODAxODA3NDA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0ODQuNDIyMzk1NSwgInN0ZXAiOiA2MCwgInZhbHVlIjogMC4yMjM2MjU4NTM2NTc3MjI0N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTU3Ljg5NjM4NywgInN0ZXAiOiA2MSwgInZhbHVlIjogMC4yMTg5NzYzMDM5MzUwNTA5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjMyLjY5NzQ2OTUsICJzdGVwIjogNjIsICJ2YWx1ZSI6IDAuMjE5Nzg5MTAyNjczNTMwNTh9LCB7IndhbGxUaW1lIjogMTczMzA3MjcwNy40ODk4NjM5LCAic3RlcCI6IDYzLCAidmFsdWUiOiAwLjIyODAxNDMzNTAzNjI3Nzc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3ODIuMzg3MzE4OCwgInN0ZXAiOiA2NCwgInZhbHVlIjogMC4yMjk1NjE5OTk0NDAxOTMxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODYxLjA2NTQ1ODUsICJzdGVwIjogNjUsICJ2YWx1ZSI6IDAuMjMxODk2NzU4MDc5NTI4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTM4LjEzMTAwOSwgInN0ZXAiOiA2NiwgInZhbHVlIjogMC4yMjQ3MTUyNzc1NTI2MDQ2OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDEzLjkzMTIwNzQsICJzdGVwIjogNjcsICJ2YWx1ZSI6IDAuMjI4MDkwNDIwMzY1MzMzNTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzA4OS45NDc3OTEzLCAic3RlcCI6IDY4LCAidmFsdWUiOiAwLjIyNTM2MDAzNTg5NjMwMTI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNjQuMTI3MzY4MiwgInN0ZXAiOiA2OSwgInZhbHVlIjogMC4yMjM5OTA5MTcyMDU4MTA1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjM4LjUyMjQ0MTQsICJzdGVwIjogNzAsICJ2YWx1ZSI6IDAuMjI2OTYyNTA2NzcxMDg3NjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzMxNi44MTAxNzczLCAic3RlcCI6IDcxLCAidmFsdWUiOiAwLjIzNzk1MjczOTAwMDMyMDQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzOTguMjgzMTM3OCwgInN0ZXAiOiA3MiwgInZhbHVlIjogMC4yMzg3MzI0NDIyNTk3ODg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NzguNzE5MzA2MiwgInN0ZXAiOiA3MywgInZhbHVlIjogMC4yMzg0NTIyMjU5MjM1MzgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NTkuMDM1MTUwOCwgInN0ZXAiOiA3NCwgInZhbHVlIjogMC4yNDA1ODUyNjc1NDM3OTI3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjM5LjIwNTY5NywgInN0ZXAiOiA3NSwgInZhbHVlIjogMC4yMzU4NjMyMDg3NzA3NTE5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzIwLjUzNDMxNjUsICJzdGVwIjogNzYsICJ2YWx1ZSI6IDAuMjMxMjQ5NjAwNjQ4ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MzgwMC44OTIzOTE0LCAic3RlcCI6IDc3LCAidmFsdWUiOiAwLjIzMjQxNDA2Njc5MTUzNDQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4ODAuNjI2MjYxLCAic3RlcCI6IDc4LCAidmFsdWUiOiAwLjIzMTU1Mzk4NjY2ODU4NjczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5NjIuNDE5NDgwMywgInN0ZXAiOiA3OSwgInZhbHVlIjogMC4yMzc4ODg5NzY5MzE1NzE5Nn1dfX1d", + "ok": true, + "headers": [ + [ + "content-length", + "1926" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Test/coco_eval_bbox_2%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIlRlc3QvY29jb19ldmFsX2Jib3hfMiIsICJydW5Ub1NlcmllcyI6IHsiLiI6IFt7IndhbGxUaW1lIjogMTczMzA2Nzc0MC4xNTE4NTU1LCAic3RlcCI6IDAsICJ2YWx1ZSI6IDAuMH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODI5Ljc1NTgzNjIsICJzdGVwIjogMSwgInZhbHVlIjogOS4wOTU5NjQ3NDIzMDA1NjZlLTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MTMuNzkzMzI5NywgInN0ZXAiOiAyLCAidmFsdWUiOiAzLjM2MzQ5OTQ0NTE4NTg4ZS0wNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTk2Ljk5NTQwMSwgInN0ZXAiOiAzLCAidmFsdWUiOiAwLjAwMDkwODc1MzYwMTgzNDE3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDgwLjE1NzExMTQsICJzdGVwIjogNCwgInZhbHVlIjogMC4wMDEwMjYyNjI4Nzg0NDAzMjA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxNjQuMTkyMzA1OCwgInN0ZXAiOiA1LCAidmFsdWUiOiAwLjAwMDg0MjM2NzU4OTkzOTM4NTd9LCB7IndhbGxUaW1lIjogMTczMzA2ODI0Ny44NzIxOTc5LCAic3RlcCI6IDYsICJ2YWx1ZSI6IDAuMDAwNjc4MjIyMjc3MjAxNzEyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzMzLjI1NzA2NCwgInN0ZXAiOiA3LCAidmFsdWUiOiAwLjAwMTg4MjY0OTcyNTMwMzA1Mzl9LCB7IndhbGxUaW1lIjogMTczMzA2ODQxNC41NjAzODc2LCAic3RlcCI6IDgsICJ2YWx1ZSI6IDAuMDA0NTA5MjAxNzM4OTgzMzkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0OTYuMzYwMzIwNiwgInN0ZXAiOiA5LCAidmFsdWUiOiAwLjAwODA0ODQ3OTQ0NTI3ODY0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTc3LjMzODE5MzIsICJzdGVwIjogMTAsICJ2YWx1ZSI6IDAuMDA1MDM1MTc0MDc5MjM5MzY4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjU3LjAxOTI2NDcsICJzdGVwIjogMTEsICJ2YWx1ZSI6IDAuMDExNzMxOTAyMTM3Mzk4NzJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODczOS41MDQ3NzY3LCAic3RlcCI6IDEyLCAidmFsdWUiOiAwLjAwNzIzNDU3MDEwNDYyODgwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODE5LjM0OTQ5MzMsICJzdGVwIjogMTMsICJ2YWx1ZSI6IDAuMDA2ODA0OTUzMzI5MjY1MTE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4OTguNzcxMDg2NywgInN0ZXAiOiAxNCwgInZhbHVlIjogMC4wMTIwMTIyOTcyODc1ODMzNTF9LCB7IndhbGxUaW1lIjogMTczMzA2ODk4MS44Nzg3MDc2LCAic3RlcCI6IDE1LCAidmFsdWUiOiAwLjAwNDk3MTQ5NDg5ODIwMDAzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDYxLjUyNjM1MjIsICJzdGVwIjogMTYsICJ2YWx1ZSI6IDAuMDA1ODYyNzM0NzQ2MTg3OTI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxNDEuNzQ3Mzc3NCwgInN0ZXAiOiAxNywgInZhbHVlIjogMC4wMDc0NzQ0ODIwNTk0Nzg3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjIwLjAxMDcxLCAic3RlcCI6IDE4LCAidmFsdWUiOiAwLjAwODE5NzY3MDgwMjQ3NDAyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzAxLjY1MzQ3MDgsICJzdGVwIjogMTksICJ2YWx1ZSI6IDAuMDA3MTI3NDgxMDQ3MDY0MDY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzODAuMTkzMTc0OCwgInN0ZXAiOiAyMCwgInZhbHVlIjogMC4wMDkyNTc4OTk1OTcyODcxNzh9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ1OS4yNTI1MjEsICJzdGVwIjogMjEsICJ2YWx1ZSI6IDAuMDA5MzU5Mjk2NDExMjc1ODY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MzguMjg2NjE5MiwgInN0ZXAiOiAyMiwgInZhbHVlIjogMC4wMTAwMjUyMDY5NTMyODcxMjV9LCB7IndhbGxUaW1lIjogMTczMzA2OTYxOC4zMjg3MDcsICJzdGVwIjogMjMsICJ2YWx1ZSI6IDAuMDEyMTY3NzE0NTM2MTkwMDMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2OTguNjcwMzk3LCAic3RlcCI6IDI0LCAidmFsdWUiOiAwLjAwOTEyMDc5MjE1MDQ5NzQzN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5Nzc2LjYyNDQ1MDQsICJzdGVwIjogMjUsICJ2YWx1ZSI6IDAuMDExODE1MDI0NTM5ODI4M30sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODUzLjQ4MzYyMjMsICJzdGVwIjogMjYsICJ2YWx1ZSI6IDAuMDEyNjg3OTY4MDkwMTc2NTgyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MjkuOTA1MzIwMiwgInN0ZXAiOiAyNywgInZhbHVlIjogMC4wMTEwMjg1ODMxNjE1MzI4Nzl9LCB7IndhbGxUaW1lIjogMTczMzA3MDAwNi42NDY1MDQsICJzdGVwIjogMjgsICJ2YWx1ZSI6IDAuMDExODc0ODk2NDc0MTgyNjA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwODMuMzE4NDM1NywgInN0ZXAiOiAyOSwgInZhbHVlIjogMC4wMTE4NzY2MTg0ODk2MjMwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTYxLjg3NDYyNjQsICJzdGVwIjogMzAsICJ2YWx1ZSI6IDAuMDEzMjQ4MDE0MjYzODA4NzI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNDIuNzEyNTk4MywgInN0ZXAiOiAzMSwgInZhbHVlIjogMC4wMTM5NTUwMTU2ODkxMzQ1OTh9LCB7IndhbGxUaW1lIjogMTczMzA3MDMyMS42NTk1MzE2LCAic3RlcCI6IDMyLCAidmFsdWUiOiAwLjAxNTk4NzY0OTU1OTk3NDY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzOTguNzU2NzYsICJzdGVwIjogMzMsICJ2YWx1ZSI6IDAuMDE1NTAwMDkyODc4OTM3NzIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NzcuNTc3Nzg1LCAic3RlcCI6IDM0LCAidmFsdWUiOiAwLjAxNTUzNTE0MzIwNDAzMzM3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTU0LjQxNjEyNzcsICJzdGVwIjogMzUsICJ2YWx1ZSI6IDAuMDE2MjY2ODk3MzIwNzQ3Mzc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MzMuNDYzNjExNCwgInN0ZXAiOiAzNiwgInZhbHVlIjogMC4wMTUxNTgzOTk5Mzk1MzcwNDh9LCB7IndhbGxUaW1lIjogMTczMzA3MDcwOC44Mjg4NTYyLCAic3RlcCI6IDM3LCAidmFsdWUiOiAwLjAxNjU2MTgzMjI3ODk2NjkwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzg4LjE5NTcwNzYsICJzdGVwIjogMzgsICJ2YWx1ZSI6IDAuMDE1Njk3MjExMDI3MTQ1Mzg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NjMuNzYyMzg0NCwgInN0ZXAiOiAzOSwgInZhbHVlIjogMC4wMTU1NDIyODM2NTQyMTI5NTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDk0MC40MjQzNTM0LCAic3RlcCI6IDQwLCAidmFsdWUiOiAwLjAxNjIyOTYwNTMwMjIxNDYyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDE1LjUwNzYyMDMsICJzdGVwIjogNDEsICJ2YWx1ZSI6IDAuMDE2NjMzMTgwOTAxNDA4MTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwOTAuMzg2MDg2NywgInN0ZXAiOiA0MiwgInZhbHVlIjogMC4wMTg3ODE1MzM0NjQ3ODkzOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTY4LjY4OTU1MzUsICJzdGVwIjogNDMsICJ2YWx1ZSI6IDAuMDE5MzkyODMzMTEzNjcwMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MTI0My45NzEwODQ2LCAic3RlcCI6IDQ0LCAidmFsdWUiOiAwLjAyMTE0MDYwMzM0ODYxMjc4NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzIzLjQ5NTkzOCwgInN0ZXAiOiA0NSwgInZhbHVlIjogMC4wMjAxMTMxNjI2OTYzNjE1NDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTQwMC41NzY4NjA0LCAic3RlcCI6IDQ2LCAidmFsdWUiOiAwLjAxODcwMzMwNjA5MzgxMTk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NzguNTk0NDUxNywgInN0ZXAiOiA0NywgInZhbHVlIjogMC4wMTg4NjE4Mzk1NDc3NTMzMzR9LCB7IndhbGxUaW1lIjogMTczMzA3MTU1Ny4zNDIwMTg0LCAic3RlcCI6IDQ4LCAidmFsdWUiOiAwLjAyMDk2NTUzODkxODk3MjAxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjM2LjYyMzM5NzgsICJzdGVwIjogNDksICJ2YWx1ZSI6IDAuMDIxMTg3MDA3NDI3MjE1NTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MTYuMjUxMjU4NiwgInN0ZXAiOiA1MCwgInZhbHVlIjogMC4wMjIxODUzMzg2NjEwNzQ2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzk1LjA1NTgzMzMsICJzdGVwIjogNTEsICJ2YWx1ZSI6IDAuMDIyNjc4NTIwNTMwNDYyMjY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NzIuNzkwMDY2NywgInN0ZXAiOiA1MiwgInZhbHVlIjogMC4wMjI4MTk2NDE5Nzc1NDg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NDguMzU3NzE3NSwgInN0ZXAiOiA1MywgInZhbHVlIjogMC4wMjIzMTQzMDYzNDg1NjIyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDIzLjY1Njk1NjQsICJzdGVwIjogNTQsICJ2YWx1ZSI6IDAuMDIxNzQ2MTEzODk2MzY5OTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwOTkuNDU4MTYzNywgInN0ZXAiOiA1NSwgInZhbHVlIjogMC4wMjI2MTEyNTQ4MjYxODgwODd9LCB7IndhbGxUaW1lIjogMTczMzA3MjE3NS43NjY1MjY1LCAic3RlcCI6IDU2LCAidmFsdWUiOiAwLjAyMjMxMzc2ODA0NDExNDExM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjUwLjMyNzk4MzYsICJzdGVwIjogNTcsICJ2YWx1ZSI6IDAuMDIyOTUwNDY4NTg0ODk1MTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMjguNzc5MTI5NywgInN0ZXAiOiA1OCwgInZhbHVlIjogMC4wMjQ5MTMyMTk3MzUwMjYzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDA5LjQzOTQwMTEsICJzdGVwIjogNTksICJ2YWx1ZSI6IDAuMDIyNTgwNjM0ODAyNTc5ODh9LCB7IndhbGxUaW1lIjogMTczMzA3MjQ4NC40MjIzNjc4LCAic3RlcCI6IDYwLCAidmFsdWUiOiAwLjAyMzAwOTQ1NjY5NDEyNjEzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NTcuODk2MzQ5LCAic3RlcCI6IDYxLCAidmFsdWUiOiAwLjAyNDQwNDAzNzc0MzgwNjg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MzIuNjk3NDQxMywgInN0ZXAiOiA2MiwgInZhbHVlIjogMC4wMjQ1NDkwOTY4MjI3Mzg2NDd9LCB7IndhbGxUaW1lIjogMTczMzA3MjcwNy40ODk4MjQ4LCAic3RlcCI6IDYzLCAidmFsdWUiOiAwLjAyMzc1MDY0NDE3NzE5ODQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3ODIuMzg3MjkyNCwgInN0ZXAiOiA2NCwgInZhbHVlIjogMC4wMjUxMDQ1NjU1NDU5MTY1NTd9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg2MS4wNjU0MjIsICJzdGVwIjogNjUsICJ2YWx1ZSI6IDAuMDI1ODc1ODIxNzA5NjMyODc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MzguMTMwOTcxLCAic3RlcCI6IDY2LCAidmFsdWUiOiAwLjAyNTcxMDQ4NDAxMjk2MTM4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDEzLjkzMTE4MSwgInN0ZXAiOiA2NywgInZhbHVlIjogMC4wMjU2ODA1NjA2MTg2Mzg5OTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzA4OS45NDc3NTE1LCAic3RlcCI6IDY4LCAidmFsdWUiOiAwLjAyMzc3MDY5NzQxNDg3NTAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNjQuMTI3MzIzNiwgInN0ZXAiOiA2OSwgInZhbHVlIjogMC4wMjYxOTEwMDE3NTc5NzkzOTN9LCB7IndhbGxUaW1lIjogMTczMzA3MzIzOC41MjI0MDEzLCAic3RlcCI6IDcwLCAidmFsdWUiOiAwLjAyNjc1MjQ1MTQzNDczMTQ4M30sIHsid2FsbFRpbWUiOiAxNzMzMDczMzE2LjgxMDE0MDEsICJzdGVwIjogNzEsICJ2YWx1ZSI6IDAuMDI1NDIxNTc4NDM3MDg5OTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzM5OC4yODMxMDcsICJzdGVwIjogNzIsICJ2YWx1ZSI6IDAuMDI4NDcxOTM5MjY1NzI3OTk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NzguNzE5Mjc4LCAic3RlcCI6IDczLCAidmFsdWUiOiAwLjAyNzY4NDg5NzE4NDM3MTk0OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNTU5LjAzNTExMjksICJzdGVwIjogNzQsICJ2YWx1ZSI6IDAuMDI4NDY5NzM1NzU2NTE2NDU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MzkuMjA1NjU1OCwgInN0ZXAiOiA3NSwgInZhbHVlIjogMC4wMjc4NDM5NzgyNTU5ODcxNjd9LCB7IndhbGxUaW1lIjogMTczMzA3MzcyMC41MzQyNzc0LCAic3RlcCI6IDc2LCAidmFsdWUiOiAwLjAyNjQ0NTg4Nzk4Mjg0NTMwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczODAwLjg5MjM2MzUsICJzdGVwIjogNzcsICJ2YWx1ZSI6IDAuMDI4NjcyNjkxNDM0NjIxODF9LCB7IndhbGxUaW1lIjogMTczMzA3Mzg4MC42MjYyMzM2LCAic3RlcCI6IDc4LCAidmFsdWUiOiAwLjAyNjcwOTE4MjE4NzkxNDg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5NjIuNDE5NDQxLCAic3RlcCI6IDc5LCAidmFsdWUiOiAwLjAyNjQxODM2OTI2MzQxMDU2OH1dfX1d", + "ok": true, + "headers": [ + [ + "content-length", + "1939" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Test/coco_eval_bbox_3%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIlRlc3QvY29jb19ldmFsX2Jib3hfMyIsICJydW5Ub1NlcmllcyI6IHsiLiI6IFt7IndhbGxUaW1lIjogMTczMzA2Nzc0MC4xNTE4NzEyLCAic3RlcCI6IDAsICJ2YWx1ZSI6IDEuMTQ0NDcyMzIxMzU3MTcwNmUtMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzgyOS43NTU4NTE3LCAic3RlcCI6IDEsICJ2YWx1ZSI6IDAuMDAwMTEzNTI0MzgwMTQwMDA2NTR9LCB7IndhbGxUaW1lIjogMTczMzA2NzkxMy43OTMzNDUsICJzdGVwIjogMiwgInZhbHVlIjogMC4wMDA0OTY2ODE0ODg1ODQ3Mjd9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk5Ni45OTU0MTUyLCAic3RlcCI6IDMsICJ2YWx1ZSI6IDAuMDAxMzAxNzgwOTI1MTMyMzM0Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDgwLjE1NzEyNzYsICJzdGVwIjogNCwgInZhbHVlIjogMC4wMDE0MTYwMTM1NzYwOTAzMzU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxNjQuMTkyMzIxNSwgInN0ZXAiOiA1LCAidmFsdWUiOiAwLjAwMjc5MTgxNDI3MzIyMzI4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjQ3Ljg3MjIxMTUsICJzdGVwIjogNiwgInZhbHVlIjogMC4wMDI5NjIzOTI5ODc2ODM0MTU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMzMuMjU3MDc5NCwgInN0ZXAiOiA3LCAidmFsdWUiOiAwLjAwNDIwNjY2NDg2MDI0ODU2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDE0LjU2MDQwMzgsICJzdGVwIjogOCwgInZhbHVlIjogMC4wMDY0NDk2MDk1MjkyMjcwMTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ5Ni4zNjAzMzgsICJzdGVwIjogOSwgInZhbHVlIjogMC4wMDczMjQyNjAxOTM4NTQ1N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTc3LjMzODIwODQsICJzdGVwIjogMTAsICJ2YWx1ZSI6IDAuMDA2OTQ1Nzg3OTI4OTk4NDd9LCB7IndhbGxUaW1lIjogMTczMzA2ODY1Ny4wMTkyODU3LCAic3RlcCI6IDExLCAidmFsdWUiOiAwLjAwNjg0MjcxNDI2ODcxNDE4OTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODczOS41MDQ4MDA4LCAic3RlcCI6IDEyLCAidmFsdWUiOiAwLjAxMDMxMzczNzIwNjE2MTAyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODE5LjM0OTUwNzYsICJzdGVwIjogMTMsICJ2YWx1ZSI6IDAuMDA5NTYwOTkzODcyNTgyOTEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4OTguNzcxMTEyNCwgInN0ZXAiOiAxNCwgInZhbHVlIjogMC4wMTI5OTY4MDMwMzc4MjIyNDd9LCB7IndhbGxUaW1lIjogMTczMzA2ODk4MS44Nzg3MjIyLCAic3RlcCI6IDE1LCAidmFsdWUiOiAwLjAxMTU0MDMyNjI4OTgzMjU5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MDYxLjUyNjM2NzIsICJzdGVwIjogMTYsICJ2YWx1ZSI6IDAuMDExODY5NTk5MTExMzc4MTkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxNDEuNzQ3MzkxNSwgInN0ZXAiOiAxNywgInZhbHVlIjogMC4wMTQ0OTUwOTg5NjMzNzk4Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjIwLjAxMDcyNiwgInN0ZXAiOiAxOCwgInZhbHVlIjogMC4wMTYyNDE2NjAzNDE2MjA0NDV9LCB7IndhbGxUaW1lIjogMTczMzA2OTMwMS42NTM0ODU4LCAic3RlcCI6IDE5LCAidmFsdWUiOiAwLjAxNTM1NjQzMTcxNTE5MDQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzODAuMTkzMTk4NCwgInN0ZXAiOiAyMCwgInZhbHVlIjogMC4wMTYwMzgyNDI3Mjc1MTgwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDU5LjI1MjUzNSwgInN0ZXAiOiAyMSwgInZhbHVlIjogMC4wMTQ3NTQzNDM3Nzc4OTQ5NzR9LCB7IndhbGxUaW1lIjogMTczMzA2OTUzOC4yODY2MzQyLCAic3RlcCI6IDIyLCAidmFsdWUiOiAwLjAyMTQ3OTg5MTYxMzEyNTh9LCB7IndhbGxUaW1lIjogMTczMzA2OTYxOC4zMjg3MzI1LCAic3RlcCI6IDIzLCAidmFsdWUiOiAwLjAyNTg0NDY2NzEwNjg2NjgzN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5Njk4LjY3MDQxMjgsICJzdGVwIjogMjQsICJ2YWx1ZSI6IDAuMDI1OTcwOTgwNTI1MDE2Nzg1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NzYuNjI0NDY1LCAic3RlcCI6IDI1LCAidmFsdWUiOiAwLjAyMTY5Nzg2NTc5OTA2OTQwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODUzLjQ4MzYzNywgInN0ZXAiOiAyNiwgInZhbHVlIjogMC4wMjM0Nzg1NjU3Mzc2MDUwOTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTkyOS45MDUzNCwgInN0ZXAiOiAyNywgInZhbHVlIjogMC4wMjMxNTIyNTgyNDcxMzcwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDA2LjY0NjUxOTIsICJzdGVwIjogMjgsICJ2YWx1ZSI6IDAuMDE5OTAwMzYxMDc1OTk3MzUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwODMuMzE4NDUwNywgInN0ZXAiOiAyOSwgInZhbHVlIjogMC4wMjM2MDQzNTk0Nzc3NTg0MDh9LCB7IndhbGxUaW1lIjogMTczMzA3MDE2MS44NzQ2NDEsICJzdGVwIjogMzAsICJ2YWx1ZSI6IDAuMDI4MDUzNDc3NDA2NTAxNzd9LCB7IndhbGxUaW1lIjogMTczMzA3MDI0Mi43MTI2MTM2LCAic3RlcCI6IDMxLCAidmFsdWUiOiAwLjAyNzAyMDk3OTY3MjY3MDM2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzIxLjY1OTU0NjQsICJzdGVwIjogMzIsICJ2YWx1ZSI6IDAuMDI1MTM1NDc5ODY3NDU4MzQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzOTguNzU2Nzc2LCAic3RlcCI6IDMzLCAidmFsdWUiOiAwLjAyOTk2MjQ1NTg1MzgxOTg0N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDc3LjU3NzgxMzEsICJzdGVwIjogMzQsICJ2YWx1ZSI6IDAuMDI5MDEyNDA4MTA3NTE5MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDU1NC40MTYxNTM0LCAic3RlcCI6IDM1LCAidmFsdWUiOiAwLjAzMTI0MzMxNjgyOTIwNDU2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MzMuNDYzNjI2NCwgInN0ZXAiOiAzNiwgInZhbHVlIjogMC4wMzAxODA3MzM2NTA5MjI3NzV9LCB7IndhbGxUaW1lIjogMTczMzA3MDcwOC44Mjg4NzE3LCAic3RlcCI6IDM3LCAidmFsdWUiOiAwLjAyOTc2NDA0MzE2NzIzMzQ2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzg4LjE5NTcyMzMsICJzdGVwIjogMzgsICJ2YWx1ZSI6IDAuMDMwMDEwNTgxMDE2NTQwNTI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NjMuNzYyNDAwMiwgInN0ZXAiOiAzOSwgInZhbHVlIjogMC4wMzE3NjkxMDQzMDE5Mjk0NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MDk0MC40MjQzNjc0LCAic3RlcCI6IDQwLCAidmFsdWUiOiAwLjAyOTU1ODU2NzMzMDI0MTIwM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDE1LjUwNzYzNTQsICJzdGVwIjogNDEsICJ2YWx1ZSI6IDAuMDMxNTA4MDg4MTExODc3NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTA5MC4zODYxMTE3LCAic3RlcCI6IDQyLCAidmFsdWUiOiAwLjAzMjEwODYzNDcxMDMxMTg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNjguNjg5NTY5LCAic3RlcCI6IDQzLCAidmFsdWUiOiAwLjAzMzYxNDIxMDc4NDQzNTI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNDMuOTcxMDk4MiwgInN0ZXAiOiA0NCwgInZhbHVlIjogMC4wMzQ3NzQ2MDE0NTk1MDMxNzR9LCB7IndhbGxUaW1lIjogMTczMzA3MTMyMy40OTU5NjM4LCAic3RlcCI6IDQ1LCAidmFsdWUiOiAwLjAzNDk0OTQ4MTQ4NzI3NDE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MDAuNTc2ODc0NSwgInN0ZXAiOiA0NiwgInZhbHVlIjogMC4wMzQ0NDA1MzIzMjY2OTgzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NzguNTk0NDY2LCAic3RlcCI6IDQ3LCAidmFsdWUiOiAwLjAzNTYxMzUxODIwODI2NTMwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTU3LjM0MjAzMzQsICJzdGVwIjogNDgsICJ2YWx1ZSI6IDAuMDM4NDQ3MzU3NzE0MTc2MTh9LCB7IndhbGxUaW1lIjogMTczMzA3MTYzNi42MjM0MTMzLCAic3RlcCI6IDQ5LCAidmFsdWUiOiAwLjAzNjY1MTU2Mjg5OTM1MTEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MTYuMjUxMjg0LCAic3RlcCI6IDUwLCAidmFsdWUiOiAwLjAzODczODU3NDgzMjY3Nzg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3OTUuMDU1ODQ4LCAic3RlcCI6IDUxLCAidmFsdWUiOiAwLjAzNTM3MzYwOTUxMzA0NDM2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NzIuNzkwMDkxLCAic3RlcCI6IDUyLCAidmFsdWUiOiAwLjAzNjEwMjUyOTYxNTE2Mzh9LCB7IndhbGxUaW1lIjogMTczMzA3MTk0OC4zNTc3MzIsICJzdGVwIjogNTMsICJ2YWx1ZSI6IDAuMDM0Njk4NjYxNDE2NzY5MDN9LCB7IndhbGxUaW1lIjogMTczMzA3MjAyMy42NTY5ODIyLCAic3RlcCI6IDU0LCAidmFsdWUiOiAwLjAzNjYyODQxMzk0NTQzNjQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwOTkuNDU4MTksICJzdGVwIjogNTUsICJ2YWx1ZSI6IDAuMDM3MTI2NTIyNTExMjQzODJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjE3NS43NjY1NDIyLCAic3RlcCI6IDU2LCAidmFsdWUiOiAwLjAzNTI5NTE2NjA3NTIyOTY0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMjUwLjMyNzk5ODQsICJzdGVwIjogNTcsICJ2YWx1ZSI6IDAuMDM1MzIxODY4OTU2MDg5MDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjMyOC43NzkxNTUsICJzdGVwIjogNTgsICJ2YWx1ZSI6IDAuMDM3ODE5MTQzMzg0Njk1MDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjQwOS40Mzk0MTU1LCAic3RlcCI6IDU5LCAidmFsdWUiOiAwLjAzNTQxOTMxNTA5OTcxNjE4N30sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDg0LjQyMjM4MiwgInN0ZXAiOiA2MCwgInZhbHVlIjogMC4wMzY3NjQwMDMzMzY0Mjk1OTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjU1Ny44OTYzNzIzLCAic3RlcCI6IDYxLCAidmFsdWUiOiAwLjAzNzI3ODYxODY2MzU0OTQyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MzIuNjk3NDU2LCAic3RlcCI6IDYyLCAidmFsdWUiOiAwLjAzNzkzMTk0MTQ0OTY0MjE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MDcuNDg5ODM5OCwgInN0ZXAiOiA2MywgInZhbHVlIjogMC4wMzgxODAzNDM4MDY3NDM2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzgyLjM4NzMwNjUsICJzdGVwIjogNjQsICJ2YWx1ZSI6IDAuMDM5MjI4MjMwNzE0Nzk3OTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NjEuMDY1NDQ1NCwgInN0ZXAiOiA2NSwgInZhbHVlIjogMC4wNDE3MDY3NTIwMzIwNDE1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTM4LjEzMDk5NiwgInN0ZXAiOiA2NiwgInZhbHVlIjogMC4wNDA3OTQxMjY2ODk0MzQwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDEzLjkzMTE5NSwgInN0ZXAiOiA2NywgInZhbHVlIjogMC4wMzk5NjU0NjkzOTAxNTM4ODV9LCB7IndhbGxUaW1lIjogMTczMzA3MzA4OS45NDc3Nzc3LCAic3RlcCI6IDY4LCAidmFsdWUiOiAwLjAzOTUwMjE3MzY2MjE4NTY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNjQuMTI3MzM5NiwgInN0ZXAiOiA2OSwgInZhbHVlIjogMC4wNDAyNzI1MzAxNjgyOTQ5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjM4LjUyMjQxNjYsICJzdGVwIjogNzAsICJ2YWx1ZSI6IDAuMDQxMDI4MjMxMzgyMzY5OTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzMTYuODEwMTYyOCwgInN0ZXAiOiA3MSwgInZhbHVlIjogMC4wNDAxNzAxMzY4MzkxNTEzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzk4LjI4MzEyMzMsICJzdGVwIjogNzIsICJ2YWx1ZSI6IDAuMDQyMTI4NDU0ODkzODI3NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ3OC43MTkyOTI5LCAic3RlcCI6IDczLCAidmFsdWUiOiAwLjAzODQzMTQzMjA5ODE1MDI1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NTkuMDM1MTM4LCAic3RlcCI6IDc0LCAidmFsdWUiOiAwLjA0MTA1NDg2MzQ4MjcxMzd9LCB7IndhbGxUaW1lIjogMTczMzA3MzYzOS4yMDU2NzMyLCAic3RlcCI6IDc1LCAidmFsdWUiOiAwLjAzODE4ODU2OTI0NzcyMjYyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzIwLjUzNDMwMjUsICJzdGVwIjogNzYsICJ2YWx1ZSI6IDAuMDM5OTM5NTgyMzQ3ODY5ODd9LCB7IndhbGxUaW1lIjogMTczMzA3MzgwMC44OTIzNzg2LCAic3RlcCI6IDc3LCAidmFsdWUiOiAwLjA0MTU3Mzk3ODk2MDUxNDA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4ODAuNjI2MjQ4MSwgInN0ZXAiOiA3OCwgInZhbHVlIjogMC4wMzg2NzU5MDc5OTkyNzcxMTV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzk2Mi40MTk0NjY3LCAic3RlcCI6IDc5LCAidmFsdWUiOiAwLjA0MjYwODcxNTU5MzgxNDg1fV19fV0=", + "ok": true, + "headers": [ + [ + "content-length", + "1938" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Test/coco_eval_bbox_0%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIlRlc3QvY29jb19ldmFsX2Jib3hfMCIsICJydW5Ub1NlcmllcyI6IHsiLiI6IFt7IndhbGxUaW1lIjogMTczMzA2Nzc0MC4xNTE3Njk0LCAic3RlcCI6IDAsICJ2YWx1ZSI6IDEuMTgxOTc3MDQwNjg3MzQzZS0wNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODI5Ljc1NTc0NjYsICJzdGVwIjogMSwgInZhbHVlIjogMC4wMDAxMDk2MTI1OTI0OTU5Nzc4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTEzLjc5MzI0MjcsICJzdGVwIjogMiwgInZhbHVlIjogMC4wMDAyODI4MTYxODE0MjUwMDUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5OTYuOTk1MzEzNCwgInN0ZXAiOiAzLCAidmFsdWUiOiAwLjAwMTQ0MTI4NjQxMTEzNjM4ODh9LCB7IndhbGxUaW1lIjogMTczMzA2ODA4MC4xNTcwMDU4LCAic3RlcCI6IDQsICJ2YWx1ZSI6IDAuMDAxNDYzMTQ0NDM1NTQ3MjkyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTY0LjE5MjIxMywgInN0ZXAiOiA1LCAidmFsdWUiOiAwLjAwMjg3MTkwNjYxNzY1NjM1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNDcuODcyMDk1MywgInN0ZXAiOiA2LCAidmFsdWUiOiAwLjAwMjg4NTQ5OTUwMzQ2MzUwNjd9LCB7IndhbGxUaW1lIjogMTczMzA2ODMzMy4yNTY5ODMsICJzdGVwIjogNywgInZhbHVlIjogMC4wMDM5NTA3NjYyODc3NDQwNDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODQxNC41NjAyOTUsICJzdGVwIjogOCwgInZhbHVlIjogMC4wMDczNDQxNzA0NzM1MTU5ODd9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ5Ni4zNjAxOTc1LCAic3RlcCI6IDksICJ2YWx1ZSI6IDAuMDEwNzIwODM2OTI5OTc2OTR9LCB7IndhbGxUaW1lIjogMTczMzA2ODU3Ny4zMzgxMTIsICJzdGVwIjogMTAsICJ2YWx1ZSI6IDAuMDA4NDg1OTU3OTgwMTU1OTQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2NTcuMDE5MTQ2NywgInN0ZXAiOiAxMSwgInZhbHVlIjogMC4wMTM4NjM3MjM3MjUwODA0OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzM5LjUwNDY4NTksICJzdGVwIjogMTIsICJ2YWx1ZSI6IDAuMDEwNzgzNzg1OTU0MTE3Nzc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MTkuMzQ5NDAxNywgInN0ZXAiOiAxMywgInZhbHVlIjogMC4wMTA4NTkxNDI5ODg5MjAyMTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODg5OC43NzA5OTU2LCAic3RlcCI6IDE0LCAidmFsdWUiOiAwLjAxODU1NDQyNDg2NzAzMzk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5ODEuODc4NTk5NiwgInN0ZXAiOiAxNSwgInZhbHVlIjogMC4wMTEwOTA1MjYzNTcyOTMxMjl9LCB7IndhbGxUaW1lIjogMTczMzA2OTA2MS41MjYyNDQ0LCAic3RlcCI6IDE2LCAidmFsdWUiOiAwLjAxMTQwMDIxOTk4NDM1MjU4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTQxLjc0NzI4OTcsICJzdGVwIjogMTcsICJ2YWx1ZSI6IDAuMDEzMzE4Mzk4MDM2MDYyNzE3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMjAuMDEwNjA3NywgInN0ZXAiOiAxOCwgInZhbHVlIjogMC4wMTYyNDQxMDU5OTQ3MDEzODV9LCB7IndhbGxUaW1lIjogMTczMzA2OTMwMS42NTMzODA2LCAic3RlcCI6IDE5LCAidmFsdWUiOiAwLjAxNjEzNjI1MTM4OTk4MDMxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzgwLjE5MzA1MDksICJzdGVwIjogMjAsICJ2YWx1ZSI6IDAuMDE1NTgzNTA4NjQ3OTc4MzA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NTkuMjUyNDMxMiwgInN0ZXAiOiAyMSwgInZhbHVlIjogMC4wMTUwNjM5MjA5ODk2MzI2MDd9LCB7IndhbGxUaW1lIjogMTczMzA2OTUzOC4yODY1MjUyLCAic3RlcCI6IDIyLCAidmFsdWUiOiAwLjAxODg1MjA0OTQ4NDg0ODk3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjE4LjMyODYwMTgsICJzdGVwIjogMjMsICJ2YWx1ZSI6IDAuMDIzNTI5NTgzNTg4MjQyNTN9LCB7IndhbGxUaW1lIjogMTczMzA2OTY5OC42NzAzMDc2LCAic3RlcCI6IDI0LCAidmFsdWUiOiAwLjAyMjgyMDkyNzIwMjcwMTU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NzYuNjI0MzcwNiwgInN0ZXAiOiAyNSwgInZhbHVlIjogMC4wMjE1MDgzMDgxMjc1MjI0N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODUzLjQ4MzUzMzQsICJzdGVwIjogMjYsICJ2YWx1ZSI6IDAuMDIxNzU0Mzc2NTkwMjUxOTIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk5MjkuOTA1MTk5OCwgInN0ZXAiOiAyNywgInZhbHVlIjogMC4wMjIzMjY3MTE1NjUyNTYxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDA2LjY0NjQxMjEsICJzdGVwIjogMjgsICJ2YWx1ZSI6IDAuMDIxNTI4NzUyNTIwNjgwNDI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwODMuMzE4MzQ1NSwgInN0ZXAiOiAyOSwgInZhbHVlIjogMC4wMjM1NzY3OTc5MTc0ODUyMzd9LCB7IndhbGxUaW1lIjogMTczMzA3MDE2MS44NzQ1NDMyLCAic3RlcCI6IDMwLCAidmFsdWUiOiAwLjAyOTIxMjAxNDc0OTY0NjE4N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjQyLjcxMjUwODcsICJzdGVwIjogMzEsICJ2YWx1ZSI6IDAuMDI2NTA3NTM1OTQ5MzQ5NDAzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMjEuNjU5NDQxMiwgInN0ZXAiOiAzMiwgInZhbHVlIjogMC4wMjc0MTYwNDExMjA4ODY4MDN9LCB7IndhbGxUaW1lIjogMTczMzA3MDM5OC43NTY2NzQzLCAic3RlcCI6IDMzLCAidmFsdWUiOiAwLjAzMjIxMTc3NjgyMjgwNTQwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDc3LjU3NzY5MzIsICJzdGVwIjogMzQsICJ2YWx1ZSI6IDAuMDMwMTIxNDAwOTUyMzM5MTcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NTQuNDE2MDM2MSwgInN0ZXAiOiAzNSwgInZhbHVlIjogMC4wMzU4ODg3NjUwMDcyNTc0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjMzLjQ2MzUyMTUsICJzdGVwIjogMzYsICJ2YWx1ZSI6IDAuMDMxMjAxMDYwODYxMzQ5MTA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MDguODI4NzY1LCAic3RlcCI6IDM3LCAidmFsdWUiOiAwLjAzMzY4MzY1MDE5NTU5ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDc4OC4xOTU2MDg0LCAic3RlcCI6IDM4LCAidmFsdWUiOiAwLjAzMTk2Mjg1MjkyNTA2MjE4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NjMuNzYyMjk1LCAic3RlcCI6IDM5LCAidmFsdWUiOiAwLjAzNDc5MTY2NzAxNDM2MDQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NDAuNDI0MjUxOCwgInN0ZXAiOiA0MCwgInZhbHVlIjogMC4wMzIzNDM4ODMwNjczNjk0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDE1LjUwNzUzMDUsICJzdGVwIjogNDEsICJ2YWx1ZSI6IDAuMDMyMDgxNjI2MzU1NjQ4MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MTA5MC4zODU5OTksICJzdGVwIjogNDIsICJ2YWx1ZSI6IDAuMDM2ODIwMTc2OTg4ODQwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTY4LjY4OTQ3MTIsICJzdGVwIjogNDMsICJ2YWx1ZSI6IDAuMDM2NzY4MzY1NjUxMzY5MDk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEyNDMuOTcwOTg0MiwgInN0ZXAiOiA0NCwgInZhbHVlIjogMC4wMzkxMjUxODE3MzQ1NjE5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzIzLjQ5NTg0NzUsICJzdGVwIjogNDUsICJ2YWx1ZSI6IDAuMDM5MDgyNzkxNjU2MjU1NzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTQwMC41NzY3NzI1LCAic3RlcCI6IDQ2LCAidmFsdWUiOiAwLjAzNjkwMjk0OTIxMzk4MTYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NzguNTk0MzYwNCwgInN0ZXAiOiA0NywgInZhbHVlIjogMC4wMzk1MDM0OTk4NjU1MzE5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTU3LjM0MTkzNTksICJzdGVwIjogNDgsICJ2YWx1ZSI6IDAuMDM5ODgxMzE1MDgyMzExNjN9LCB7IndhbGxUaW1lIjogMTczMzA3MTYzNi42MjMzMDc3LCAic3RlcCI6IDQ5LCAidmFsdWUiOiAwLjA0MDUyNzEzMTQwODQ1Mjk5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MTYuMjUxMTY4MywgInN0ZXAiOiA1MCwgInZhbHVlIjogMC4wNDM0Mjc0NDQ5OTQ0NDk2MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTc5NS4wNTU3NTE2LCAic3RlcCI6IDUxLCAidmFsdWUiOiAwLjA0MzU4OTE3NDc0NzQ2NzA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NzIuNzg5OTc2MSwgInN0ZXAiOiA1MiwgInZhbHVlIjogMC4wNDExNTM4NDA3MjA2NTM1MzR9LCB7IndhbGxUaW1lIjogMTczMzA3MTk0OC4zNTc2MTQsICJzdGVwIjogNTMsICJ2YWx1ZSI6IDAuMDQyNjcwMzAyMDkzMDI5MDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjAyMy42NTY4NjQsICJzdGVwIjogNTQsICJ2YWx1ZSI6IDAuMDQyMTk2MTA5ODkwOTM3ODA1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwOTkuNDU4MDcyNCwgInN0ZXAiOiA1NSwgInZhbHVlIjogMC4wNDMzMjk0ODEwMzU0NzA5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTc1Ljc2NjQ0MiwgInN0ZXAiOiA1NiwgInZhbHVlIjogMC4wNDI1ODUyMzEzNjM3NzMzNDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjI1MC4zMjc4ODQyLCAic3RlcCI6IDU3LCAidmFsdWUiOiAwLjA0MzYyNTAzMDY2NjU4OTc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMjguNzc5MDQxNSwgInN0ZXAiOiA1OCwgInZhbHVlIjogMC4wNDYyOTA0NTcyNDg2ODc3NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjQwOS40MzkzMTk0LCAic3RlcCI6IDU5LCAidmFsdWUiOiAwLjA0NDc3OTYwMjQzODIxMTQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0ODQuNDIyMjY4NCwgInN0ZXAiOiA2MCwgInZhbHVlIjogMC4wNDUxOTcxMTQzNDg0MTE1Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTU3Ljg5NjI0NiwgInN0ZXAiOiA2MSwgInZhbHVlIjogMC4wNDQ4NTE5ODQ4Mjg3MTA1NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjYzMi42OTczNTQzLCAic3RlcCI6IDYyLCAidmFsdWUiOiAwLjA0NTcyMTU2ODE2NzIwOTYyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzA3LjQ4OTczNSwgInN0ZXAiOiA2MywgInZhbHVlIjogMC4wNDYxMzY1NTgwNTU4Nzc2ODZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc4Mi4zODcxODkxLCAic3RlcCI6IDY0LCAidmFsdWUiOiAwLjA0NzQ5MTg5Njg5NzU1NDR9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg2MS4wNjUyOTIxLCAic3RlcCI6IDY1LCAidmFsdWUiOiAwLjA1MDM0NzUzNjgwMjI5MTg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MzguMTMwODc4NywgInN0ZXAiOiA2NiwgInZhbHVlIjogMC4wNTAwODgyMTU2MTkzMjU2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDEzLjkzMTA4NDksICJzdGVwIjogNjcsICJ2YWx1ZSI6IDAuMDQ4ODU0NTU1OTM0NjY3NTl9LCB7IndhbGxUaW1lIjogMTczMzA3MzA4OS45NDc2NTYsICJzdGVwIjogNjgsICJ2YWx1ZSI6IDAuMDQ4MjU3NDQ3Nzc5MTc4NjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzE2NC4xMjcyMzI2LCAic3RlcCI6IDY5LCAidmFsdWUiOiAwLjA0ODkwODM0MTY3NTk5Njc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMzguNTIyMzA1MywgInN0ZXAiOiA3MCwgInZhbHVlIjogMC4wNDkxMTYxOTc5NzM0ODk3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzE2LjgxMDA0ODgsICJzdGVwIjogNzEsICJ2YWx1ZSI6IDAuMDQ4MzU1MTkxOTQ2MDI5NjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzM5OC4yODMwMDE3LCAic3RlcCI6IDcyLCAidmFsdWUiOiAwLjA1MjE1ODY4MzUzODQzNjg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NzguNzE5MTk2MywgInN0ZXAiOiA3MywgInZhbHVlIjogMC4wNDg4NjgxNzE4NzA3MDg0NjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzU1OS4wMzUwMjM1LCAic3RlcCI6IDc0LCAidmFsdWUiOiAwLjA1MTYzMDU1Mjg1ODExNDI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MzkuMjA1NTUyOCwgInN0ZXAiOiA3NSwgInZhbHVlIjogMC4wNDg4MTU0OTI1NDA1OTc5MTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzcyMC41MzQxODc4LCAic3RlcCI6IDc2LCAidmFsdWUiOiAwLjA0OTQ4MDg0MDU2Mzc3NDExfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MDAuODkyMjY1OCwgInN0ZXAiOiA3NywgInZhbHVlIjogMC4wNTA1MzUzMTM3ODUwNzYxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDczODgwLjYyNjEyNywgInN0ZXAiOiA3OCwgInZhbHVlIjogMC4wNDc4NDYzNzY4OTU5MDQ1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTYyLjQxOTM1MDksICJzdGVwIjogNzksICJ2YWx1ZSI6IDAuMDUxNjcxNTYwODUzNzE5NzF9XX19XQ==", + "ok": true, + "headers": [ + [ + "content-length", + "1936" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Test/coco_eval_bbox_7%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIlRlc3QvY29jb19ldmFsX2Jib3hfNyIsICJydW5Ub1NlcmllcyI6IHsiLiI6IFt7IndhbGxUaW1lIjogMTczMzA2Nzc0MC4xNTE5NDQ0LCAic3RlcCI6IDAsICJ2YWx1ZSI6IDIuMjExODk5OTgyMjg1MTAzOGUtMDZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzgyOS43NTU5MTM3LCAic3RlcCI6IDEsICJ2YWx1ZSI6IDAuMDAwODYxNTMyNTc4NzEwNDY2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTEzLjc5MzQwNzcsICJzdGVwIjogMiwgInZhbHVlIjogMC4wMDEzMDc4NDU4MTQxNTM1NTJ9LCB7IndhbGxUaW1lIjogMTczMzA2Nzk5Ni45OTU0NzYyLCAic3RlcCI6IDMsICJ2YWx1ZSI6IDAuMDAxODY1ODI5MTA4MjgyOTIzN30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDgwLjE1NzMwNDMsICJzdGVwIjogNCwgInZhbHVlIjogMC4wMDM0NzI5MDYwNzE2OTI3MDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODE2NC4xOTIzODExLCAic3RlcCI6IDUsICJ2YWx1ZSI6IDAuMDEyNjExNTA5MzAwNzY4Mzc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNDcuODcyMjU5OSwgInN0ZXAiOiA2LCAidmFsdWUiOiAwLjAxMTA0OTcxMDIxNDEzODAzMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzMzLjI1NzEzMywgInN0ZXAiOiA3LCAidmFsdWUiOiAwLjAxNTQyMjQzMDgyMDc2MzExMX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDE0LjU2MDQ2NzIsICJzdGVwIjogOCwgInZhbHVlIjogMC4wMjIwMzIyNzIwNzA2NDYyODZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ5Ni4zNjAzODY4LCAic3RlcCI6IDksICJ2YWx1ZSI6IDAuMDI4OTU1NTM1OTYzMTc3Njh9LCB7IndhbGxUaW1lIjogMTczMzA2ODU3Ny4zMzgyNzE0LCAic3RlcCI6IDEwLCAidmFsdWUiOiAwLjAyMjc5MDkzMzAyNzg2MzUwM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjU3LjAxOTMzNDMsICJzdGVwIjogMTEsICJ2YWx1ZSI6IDAuMDI0MjUzNDM1NDMyOTEwOTJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODczOS41MDQ4NDgyLCAic3RlcCI6IDEyLCAidmFsdWUiOiAwLjAxOTIyMDM4MDExMjUyODh9LCB7IndhbGxUaW1lIjogMTczMzA2ODgxOS4zNDk1Njg4LCAic3RlcCI6IDEzLCAidmFsdWUiOiAwLjAyNDYxMjQ3MTQ2MTI5NjA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4OTguNzcxMTYzMiwgInN0ZXAiOiAxNCwgInZhbHVlIjogMC4wNDk2MDU2Nzg3NjY5NjU4NjZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODk4MS44Nzg3ODIsICJzdGVwIjogMTUsICJ2YWx1ZSI6IDAuMDMyMjY5NTkzMzI4MjM3NTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNjEuNTI2NDIxMywgInN0ZXAiOiAxNiwgInZhbHVlIjogMC4wMzc1NjA4NTQxMDcxNDE0OTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTE0MS43NDc0NTA4LCAic3RlcCI6IDE3LCAidmFsdWUiOiAwLjA0MzY5NTk1Mjc0MzI5MTg1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjIwLjAxMDc4OTksICJzdGVwIjogMTgsICJ2YWx1ZSI6IDAuMDQ4NTU5MzYzOTMxNDE3NDY1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMDEuNjUzNTQ3LCAic3RlcCI6IDE5LCAidmFsdWUiOiAwLjA0MjgzNDE5NjIzOTcwOTg1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzgwLjE5MzI4NDUsICJzdGVwIjogMjAsICJ2YWx1ZSI6IDAuMDQzNTcyNzEyNjg5NjM4MTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ1OS4yNTI1OTUyLCAic3RlcCI6IDIxLCAidmFsdWUiOiAwLjAyNjExMTM1NTA1MTM5ODI3N30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTM4LjI4NjcwOSwgInN0ZXAiOiAyMiwgInZhbHVlIjogMC4wNDA3NzAyMjUyMjY4NzkxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NjE4LjMyODc4MDIsICJzdGVwIjogMjMsICJ2YWx1ZSI6IDAuMDQ0MzIyNjkxODU3ODE0Nzl9LCB7IndhbGxUaW1lIjogMTczMzA2OTY5OC42NzA0NzcyLCAic3RlcCI6IDI0LCAidmFsdWUiOiAwLjA1NTg2NTY2Nzc2MDM3MjE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NzYuNjI0NTE3MiwgInN0ZXAiOiAyNSwgInZhbHVlIjogMC4wNTc3OTkwMTg5MTk0Njc5MjZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTg1My40ODM3MTEsICJzdGVwIjogMjYsICJ2YWx1ZSI6IDAuMDU2MzE2Mjk3NTAxMzI1NjF9LCB7IndhbGxUaW1lIjogMTczMzA2OTkyOS45MDUzODk4LCAic3RlcCI6IDI3LCAidmFsdWUiOiAwLjA1OTAyMzI2NDc5NTU0MTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMDYuNjQ2NTgxMiwgInN0ZXAiOiAyOCwgInZhbHVlIjogMC4wMzAxNzczOTU3OTA4MTUzNTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDA4My4zMTg1MTEyLCAic3RlcCI6IDI5LCAidmFsdWUiOiAwLjA1OTg4NzcyNTg1OTg4MDQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNjEuODc0NzE4LCAic3RlcCI6IDMwLCAidmFsdWUiOiAwLjA2NDc5OTI0OTE3MjIxMDd9LCB7IndhbGxUaW1lIjogMTczMzA3MDI0Mi43MTI2ODksICJzdGVwIjogMzEsICJ2YWx1ZSI6IDAuMDU5ODI1MDMyOTQ5NDQ3NjN9LCB7IndhbGxUaW1lIjogMTczMzA3MDMyMS42NTk2MDYsICJzdGVwIjogMzIsICJ2YWx1ZSI6IDAuMDYwNjU4MjQyNTUzNDcyNTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDM5OC43NTY4MzgsICJzdGVwIjogMzMsICJ2YWx1ZSI6IDAuMDYyODYwMzAyNjI3MDg2NjR9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ3Ny41Nzc4NjYzLCAic3RlcCI6IDM0LCAidmFsdWUiOiAwLjA2MDU1Njk4MTcxMjU3OTczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA1NTQuNDE2MjAzMywgInN0ZXAiOiAzNSwgInZhbHVlIjogMC4wNjYwODU0MDU2NDc3NTQ2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNjMzLjQ2MzcwMiwgInN0ZXAiOiAzNiwgInZhbHVlIjogMC4wNTc3MDM1MDk5MjY3OTU5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzA4LjgyODkzMSwgInN0ZXAiOiAzNywgInZhbHVlIjogMC4wNjc0OTQ3Nzk4MjUyMTA1N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzg4LjE5NTc4NjUsICJzdGVwIjogMzgsICJ2YWx1ZSI6IDAuMDY0MTkxMzcxMjAyNDY4ODd9LCB7IndhbGxUaW1lIjogMTczMzA3MDg2My43NjI0NjYyLCAic3RlcCI6IDM5LCAidmFsdWUiOiAwLjA2NDY1MzQ2MzY2MTY3MDY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NDAuNDI0NDE2NSwgInN0ZXAiOiA0MCwgInZhbHVlIjogMC4wNjc2MTA3Nzc5MTQ1MjQwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDE1LjUwNzcxMjgsICJzdGVwIjogNDEsICJ2YWx1ZSI6IDAuMDY0OTc1MDc1NDIzNzE3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDkwLjM4NjE2MTYsICJzdGVwIjogNDIsICJ2YWx1ZSI6IDAuMDcwOTkzNDc1NjE1OTc4MjR9LCB7IndhbGxUaW1lIjogMTczMzA3MTE2OC42ODk2MjEsICJzdGVwIjogNDMsICJ2YWx1ZSI6IDAuMDcwNDMzNjAxNzM3MDIyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjQzLjk3MTE0NzgsICJzdGVwIjogNDQsICJ2YWx1ZSI6IDAuMDY5NDM2NTY1MDQxNTQyMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTMyMy40OTYwMTY3LCAic3RlcCI6IDQ1LCAidmFsdWUiOiAwLjA3MjQxOTkxMTYyMzAwMTF9LCB7IndhbGxUaW1lIjogMTczMzA3MTQwMC41NzY5Mzc3LCAic3RlcCI6IDQ2LCAidmFsdWUiOiAwLjA3MDM4MzIyMDkxMTAyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDc4LjU5NDUyNTgsICJzdGVwIjogNDcsICJ2YWx1ZSI6IDAuMDcwNDE5NDgyODg2NzkxMjN9LCB7IndhbGxUaW1lIjogMTczMzA3MTU1Ny4zNDIwOTUsICJzdGVwIjogNDgsICJ2YWx1ZSI6IDAuMDY2ODA2ODgyNjE5ODU3Nzl9LCB7IndhbGxUaW1lIjogMTczMzA3MTYzNi42MjM0NzM2LCAic3RlcCI6IDQ5LCAidmFsdWUiOiAwLjA2NTk2MDI1ODI0NTQ2ODE0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MTYuMjUxMzMxOCwgInN0ZXAiOiA1MCwgInZhbHVlIjogMC4wNzE5NzQ0ODYxMTI1OTQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3OTUuMDU1ODk5NCwgInN0ZXAiOiA1MSwgInZhbHVlIjogMC4wNzEyNDU3NjcxNzYxNTEyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODcyLjc5MDE0MTYsICJzdGVwIjogNTIsICJ2YWx1ZSI6IDAuMDczNzI2MDM1NjU0NTQ0ODN9LCB7IndhbGxUaW1lIjogMTczMzA3MTk0OC4zNTc3OTIsICJzdGVwIjogNTMsICJ2YWx1ZSI6IDAuMDczNDA3NzYxNzUyNjA1NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjAyMy42NTcwNDA0LCAic3RlcCI6IDU0LCAidmFsdWUiOiAwLjA2OTg2Mzc4ODc4MzU1MDI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwOTkuNDU4MjQyNCwgInN0ZXAiOiA1NSwgInZhbHVlIjogMC4wNzEyNjYwOTk4MTA2MDAyOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTc1Ljc2NjYxNjMsICJzdGVwIjogNTYsICJ2YWx1ZSI6IDAuMDU1MTcyMTc4ODk0MjgxMzl9LCB7IndhbGxUaW1lIjogMTczMzA3MjI1MC4zMjgwNjEzLCAic3RlcCI6IDU3LCAidmFsdWUiOiAwLjA1OTA0NDI1MzA4MTA4MzN9LCB7IndhbGxUaW1lIjogMTczMzA3MjMyOC43NzkyMDU4LCAic3RlcCI6IDU4LCAidmFsdWUiOiAwLjA3NjYyMjg0Mzc0MjM3MDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MjQwOS40Mzk0Nzc0LCAic3RlcCI6IDU5LCAidmFsdWUiOiAwLjA3MDg5MDQ0ODk4NzQ4Mzk4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0ODQuNDIyNDMzNCwgInN0ZXAiOiA2MCwgInZhbHVlIjogMC4wNzA2MzQzNDI3MzAwNDUzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTU3Ljg5NjQzNiwgInN0ZXAiOiA2MSwgInZhbHVlIjogMC4wNzI1NDgwNjkwNTk4NDg3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjMyLjY5NzUxODgsICJzdGVwIjogNjIsICJ2YWx1ZSI6IDAuMDczOTE0MjIyNDE5MjYxOTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjcwNy40ODk4OTksICJzdGVwIjogNjMsICJ2YWx1ZSI6IDAuMDcxNTQ3MTA1OTA4MzkzODZ9LCB7IndhbGxUaW1lIjogMTczMzA3Mjc4Mi4zODczNTQsICJzdGVwIjogNjQsICJ2YWx1ZSI6IDAuMDczNTc3Mzk2NTcxNjM2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODYxLjA2NTQ5NiwgInN0ZXAiOiA2NSwgInZhbHVlIjogMC4wNzYwMDc1MzAwOTMxOTMwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTM4LjEzMTA0NDksICJzdGVwIjogNjYsICJ2YWx1ZSI6IDAuMDc2Mzc2NDM4MTQwODY5MTR9LCB7IndhbGxUaW1lIjogMTczMzA3MzAxMy45NTM2MDk3LCAic3RlcCI6IDY3LCAidmFsdWUiOiAwLjA3NTc5OTAzMzA0NTc2ODc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwODkuOTQ3ODI2NiwgInN0ZXAiOiA2OCwgInZhbHVlIjogMC4wNzMyMTc3NDk1OTU2NDIwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTY0LjEyNzQwNjYsICJzdGVwIjogNjksICJ2YWx1ZSI6IDAuMDczMzE2NjI2MjUwNzQzODd9LCB7IndhbGxUaW1lIjogMTczMzA3MzIzOC41MjI0NzkzLCAic3RlcCI6IDcwLCAidmFsdWUiOiAwLjA3NDEwMDk2Mzc3MTM0MzIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzMTYuODEwMjI4LCAic3RlcCI6IDcxLCAidmFsdWUiOiAwLjA3MzI4NDg1Njk3NTA3ODU4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzOTguMjgzMTg3NiwgInN0ZXAiOiA3MiwgInZhbHVlIjogMC4wNzY2MzM4MjU4OTgxNzA0N30sIHsid2FsbFRpbWUiOiAxNzMzMDczNDc4LjcxOTM0NTgsICJzdGVwIjogNzMsICJ2YWx1ZSI6IDAuMDYzMzM1OTYyNTkzNTU1NDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzU1OS4wMzUxODc1LCAic3RlcCI6IDc0LCAidmFsdWUiOiAwLjA3NjUwNDI3NTIwMjc1MTE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MzkuMjA1NzM1LCAic3RlcCI6IDc1LCAidmFsdWUiOiAwLjA2MzcwMTIyNzMwNzMxOTY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MjAuNTM0MzUzNSwgInN0ZXAiOiA3NiwgInZhbHVlIjogMC4wNzYwNjI5MDI4MDgxODkzOX0sIHsid2FsbFRpbWUiOiAxNzMzMDczODAwLjg5MjQyODQsICJzdGVwIjogNzcsICJ2YWx1ZSI6IDAuMDc2NjEyOTQxOTIwNzU3M30sIHsid2FsbFRpbWUiOiAxNzMzMDczODgwLjYyNjI5NywgInN0ZXAiOiA3OCwgInZhbHVlIjogMC4wNjIzNTc0NDQzMTYxNDg3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTYyLjQxOTUxNTgsICJzdGVwIjogNzksICJ2YWx1ZSI6IDAuMDc3MDMxNDExMjMwNTY0MTJ9XX19XQ==", + "ok": true, + "headers": [ + [ + "content-length", + "1922" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Test/coco_eval_bbox_8%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIlRlc3QvY29jb19ldmFsX2Jib3hfOCIsICJydW5Ub1NlcmllcyI6IHsiLiI6IFt7IndhbGxUaW1lIjogMTczMzA2Nzc0MC4xNTE5NTcsICJzdGVwIjogMCwgInZhbHVlIjogMS4xMTMzMzAyOTA1MzYzOTYyZS0wNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODI5Ljc1NTkyNSwgInN0ZXAiOiAxLCAidmFsdWUiOiAwLjAwMTkxMDc3MTU5MjUyMDE3NzR9LCB7IndhbGxUaW1lIjogMTczMzA2NzkxMy43OTM0MTk2LCAic3RlcCI6IDIsICJ2YWx1ZSI6IDAuMDAyNDYzNjc0ODcxMjUwOTg3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5OTYuOTk1NDg3NSwgInN0ZXAiOiAzLCAidmFsdWUiOiAwLjAwMzUzMjM1NzUxMzkwNDU3MTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODA4MC4xNTczMTcyLCAic3RlcCI6IDQsICJ2YWx1ZSI6IDAuMDA1MjgwMDEyNzMwNTA5MDQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgxNjQuMTkyMzkzLCAic3RlcCI6IDUsICJ2YWx1ZSI6IDAuMDE4MTk2MTU2MjQ4NDUwMjh9LCB7IndhbGxUaW1lIjogMTczMzA2ODI0Ny44NzIyNzEzLCAic3RlcCI6IDYsICJ2YWx1ZSI6IDAuMDE4MTk2NTEwMTUxMDI4NjMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMzMuMjU3MTU2MSwgInN0ZXAiOiA3LCAidmFsdWUiOiAwLjAyMjExMDIyMDA0NDg1MTMwM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDE0LjU2MDQ3OTIsICJzdGVwIjogOCwgInZhbHVlIjogMC4wMzYxMTA0NDk1ODIzMzgzM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDk2LjM2MDM5OCwgInN0ZXAiOiA5LCAidmFsdWUiOiAwLjA0MjU2Mjc3NTMxMzg1NDIyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NzcuMzM4MjgzLCAic3RlcCI6IDEwLCAidmFsdWUiOiAwLjAzNzEwMjAxMDEwMTA3OTk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2NTcuMDE5MzQ1NSwgInN0ZXAiOiAxMSwgInZhbHVlIjogMC4wMzg1NjY5MjgzNTY4ODU5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NzM5LjUwNDg1OTQsICJzdGVwIjogMTIsICJ2YWx1ZSI6IDAuMDQyMDE4OTY4NjExOTU1NjR9LCB7IndhbGxUaW1lIjogMTczMzA2ODgxOS4zNDk1OCwgInN0ZXAiOiAxMywgInZhbHVlIjogMC4wMzMxMTEzNDEyOTc2MjY0OTV9LCB7IndhbGxUaW1lIjogMTczMzA2ODg5OC43NzExNzUsICJzdGVwIjogMTQsICJ2YWx1ZSI6IDAuMDY5MjE3NzE5MTM3NjY4NjF9LCB7IndhbGxUaW1lIjogMTczMzA2ODk4MS44Nzg3OTMyLCAic3RlcCI6IDE1LCAidmFsdWUiOiAwLjA0OTQyNzY1MDg2ODg5MjY3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNjEuNTI2NDMzLCAic3RlcCI6IDE2LCAidmFsdWUiOiAwLjA1MTc2MzU1Njg5NzY0MDIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxNDEuNzQ3NDYyNSwgInN0ZXAiOiAxNywgInZhbHVlIjogMC4wNTc0NTk5NTA0NDcwODI1Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjIwLjAxMDgwMTYsICJzdGVwIjogMTgsICJ2YWx1ZSI6IDAuMDYzNzc5MDg1ODc0NTU3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzAxLjY1MzU1OTIsICJzdGVwIjogMTksICJ2YWx1ZSI6IDAuMDU0MzM2MjgzMzU1OTUxMzF9LCB7IndhbGxUaW1lIjogMTczMzA2OTM4MC4xOTMzMDk1LCAic3RlcCI6IDIwLCAidmFsdWUiOiAwLjA1ODI4MzY2NDI4NjEzNjYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk0NTkuMjUyNjA2NiwgInN0ZXAiOiAyMSwgInZhbHVlIjogMC4wNDI5NzY0MDE3NDYyNzMwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTM4LjI4NjcyMDUsICJzdGVwIjogMjIsICJ2YWx1ZSI6IDAuMDU1MDY5MTQ4NTQwNDk2ODI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MTguMzI4NzkxNiwgInN0ZXAiOiAyMywgInZhbHVlIjogMC4wNjA4MTc1Mjg1MTYwNTQxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Njk4LjY3MDQ4OSwgInN0ZXAiOiAyNCwgInZhbHVlIjogMC4wNzA4MzM0NzQzOTc2NTkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NzYuNjI0NTM5NiwgInN0ZXAiOiAyNSwgInZhbHVlIjogMC4wNzQyMDk1ODU3ODU4NjU3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5ODUzLjQ4MzcyMzIsICJzdGVwIjogMjYsICJ2YWx1ZSI6IDAuMDcxNTYxNDQ4Mjc2MDQyOTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTkyOS45MDU0MDEyLCAic3RlcCI6IDI3LCAidmFsdWUiOiAwLjA3NTA1Nzc3NDc4MjE4MDc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMDYuNjQ2NTkzMywgInN0ZXAiOiAyOCwgInZhbHVlIjogMC4wNDcyMTc5NzYzMDE5MDg0OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDgzLjMxODUyMywgInN0ZXAiOiAyOSwgInZhbHVlIjogMC4wNzIzNDg3Mjg3NzU5NzgwOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTYxLjg3NDcyOTYsICJzdGVwIjogMzAsICJ2YWx1ZSI6IDAuMDgwNzE3ODc2NTUzNTM1NDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDI0Mi43MTI3MDAxLCAic3RlcCI6IDMxLCAidmFsdWUiOiAwLjA3NzQzOTEwNzAwMDgyNzc5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMjEuNjU5NjE3LCAic3RlcCI6IDMyLCAidmFsdWUiOiAwLjA3OTE5Mjc0MjcwNTM0NTE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzOTguNzU2ODUzOCwgInN0ZXAiOiAzMywgInZhbHVlIjogMC4wODAxMzM4NDc4OTIyODQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NzcuNTc3ODc4NSwgInN0ZXAiOiAzNCwgInZhbHVlIjogMC4wNzY5NTM3NTM4MjkwMDIzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTU0LjQxNjIxNDcsICJzdGVwIjogMzUsICJ2YWx1ZSI6IDAuMDgyMTY5Njg5MjM4MDcxNDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDYzMy40NjM3MTQsICJzdGVwIjogMzYsICJ2YWx1ZSI6IDAuMDczNTkyNTM2MTUxNDA5MTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDcwOC44Mjg5NDIzLCAic3RlcCI6IDM3LCAidmFsdWUiOiAwLjA4MjcyNjkxODE2MDkxNTM3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3ODguMTk1Nzk4OSwgInN0ZXAiOiAzOCwgInZhbHVlIjogMC4wODEzMDUyMjA3MjMxNTIxNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODYzLjc2MjQ3ODYsICJzdGVwIjogMzksICJ2YWx1ZSI6IDAuMDgwMjQ4NjY4Nzg5ODYzNTl9LCB7IndhbGxUaW1lIjogMTczMzA3MDk0MC40MjQ0Mjg3LCAic3RlcCI6IDQwLCAidmFsdWUiOiAwLjA4MzM0NzkwOTE1MjUwNzc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwMTUuNTA3NzI0NSwgInN0ZXAiOiA0MSwgInZhbHVlIjogMC4wODIzMDA5NzU5MTg3Njk4NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDkwLjM4NjE3MzIsICJzdGVwIjogNDIsICJ2YWx1ZSI6IDAuMDg5MDE0OTI1MDYyNjU2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMTY4LjY4OTY0MzksICJzdGVwIjogNDMsICJ2YWx1ZSI6IDAuMDg4MzAzNDM5MzE5MTMzNzZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTI0My45NzExNjA3LCAic3RlcCI6IDQ0LCAidmFsdWUiOiAwLjA4ODEwMDA0NTkxOTQxODMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMjMuNDk2MDI5LCAic3RlcCI6IDQ1LCAidmFsdWUiOiAwLjA5MTI4MjA5MjAzNDgxNjc0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MDAuNTc2OTQ5NiwgInN0ZXAiOiA0NiwgInZhbHVlIjogMC4wODg4NzQ3NDk4MzkzMDU4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDc4LjU5NDUzNzUsICJzdGVwIjogNDcsICJ2YWx1ZSI6IDAuMDg5NDgwMDk0NjExNjQ0NzR9LCB7IndhbGxUaW1lIjogMTczMzA3MTU1Ny4zNDIxMDcsICJzdGVwIjogNDgsICJ2YWx1ZSI6IDAuMDg1OTg5MzYzNDkxNTM1MTl9LCB7IndhbGxUaW1lIjogMTczMzA3MTYzNi42MjM0ODQ4LCAic3RlcCI6IDQ5LCAidmFsdWUiOiAwLjA4NDM0MDU4NzI1ODMzODkzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MTYuMjUxMzQzMywgInN0ZXAiOiA1MCwgInZhbHVlIjogMC4wOTEwNDM1OTE0OTkzMjg2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzk1LjA1NTkyNzgsICJzdGVwIjogNTEsICJ2YWx1ZSI6IDAuMDkwNDg3NTk5MzcyODYzNzd9LCB7IndhbGxUaW1lIjogMTczMzA3MTg3Mi43OTAxNTQyLCAic3RlcCI6IDUyLCAidmFsdWUiOiAwLjA5MjUxNTc4ODk3MjM3Nzc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NDguMzU3ODAzMywgInN0ZXAiOiA1MywgInZhbHVlIjogMC4wOTI1NDA4NzUwNzcyNDc2Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDIzLjY1NzA1MjUsICJzdGVwIjogNTQsICJ2YWx1ZSI6IDAuMDg5NzA3NTMxMDM0OTQ2NDR9LCB7IndhbGxUaW1lIjogMTczMzA3MjA5OS40NTgyNTQsICJzdGVwIjogNTUsICJ2YWx1ZSI6IDAuMDkxMDY1Mzk5MzQ4NzM1ODF9LCB7IndhbGxUaW1lIjogMTczMzA3MjE3NS43NjY2MjgzLCAic3RlcCI6IDU2LCAidmFsdWUiOiAwLjA3NTUxNjg3MjEwNzk4MjY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIyNTAuMzI4MDczLCAic3RlcCI6IDU3LCAidmFsdWUiOiAwLjA3OTQ4ODc5ODk3NTk0NDUyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMjguNzc5MjE3NywgInN0ZXAiOiA1OCwgInZhbHVlIjogMC4wOTY4ODU1MjQ2OTAxNTEyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDA5LjQzOTQ4OTYsICJzdGVwIjogNTksICJ2YWx1ZSI6IDAuMDkxMzE5MjQwNjI5NjczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0ODQuNDIyNDQ1OCwgInN0ZXAiOiA2MCwgInZhbHVlIjogMC4wOTA5NTM1NzM1ODQ1NTY1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTU3Ljg5NjQ0ODksICJzdGVwIjogNjEsICJ2YWx1ZSI6IDAuMDkyNzg2ODE4NzQyNzUyMDh9LCB7IndhbGxUaW1lIjogMTczMzA3MjYzMi42OTc1MzEsICJzdGVwIjogNjIsICJ2YWx1ZSI6IDAuMDk0OTQxOTUxMzM0NDc2NDd9LCB7IndhbGxUaW1lIjogMTczMzA3MjcwNy40ODk5MTA2LCAic3RlcCI6IDYzLCAidmFsdWUiOiAwLjA5MjExMjgyNDMyMDc5MzE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3ODIuMzg3MzY1NiwgInN0ZXAiOiA2NCwgInZhbHVlIjogMC4wOTM4NTkzNDQ3MjA4NDA0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODYxLjA2NTUwODEsICJzdGVwIjogNjUsICJ2YWx1ZSI6IDAuMDk2Mjk2NjkwNDA0NDE1MTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjkzOC4xMzEwNTYzLCAic3RlcCI6IDY2LCAidmFsdWUiOiAwLjA5NjgwOTExMTUzNTU0OTE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwMTMuOTUzNjIzMywgInN0ZXAiOiA2NywgInZhbHVlIjogMC4wOTYxNzYzOTMzMzAwOTcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMwODkuOTQ3ODM4MywgInN0ZXAiOiA2OCwgInZhbHVlIjogMC4wOTM3MjQxMjQxMzM1ODY4OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMTY0LjEyNzQxODMsICJzdGVwIjogNjksICJ2YWx1ZSI6IDAuMDk0MzI2OTI4MjU3OTQyMn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMjM4LjUyMjQ5MTIsICJzdGVwIjogNzAsICJ2YWx1ZSI6IDAuMDk0ODgxMDk0OTkyMTYwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzE2LjgxMDI0MTIsICJzdGVwIjogNzEsICJ2YWx1ZSI6IDAuMDk0MzI4NTgyMjg2ODM0NzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzM5OC4yODMyMDE3LCAic3RlcCI6IDcyLCAidmFsdWUiOiAwLjA5NzcyNjc0NzM5MzYwODF9LCB7IndhbGxUaW1lIjogMTczMzA3MzQ3OC43MTkzNjk2LCAic3RlcCI6IDczLCAidmFsdWUiOiAwLjA4NDQyOTEyOTk1ODE1Mjc3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM1NTkuMDM1MTk5MiwgInN0ZXAiOiA3NCwgInZhbHVlIjogMC4wOTc2MzA2MDUxMDE1ODUzOX0sIHsid2FsbFRpbWUiOiAxNzMzMDczNjM5LjIwNTc0NywgInN0ZXAiOiA3NSwgInZhbHVlIjogMC4wODUwMDExOTI5ODY5NjUxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzIwLjUzNDM2NTQsICJzdGVwIjogNzYsICJ2YWx1ZSI6IDAuMDk2NTYwNzYxMzMyNTExOX0sIHsid2FsbFRpbWUiOiAxNzMzMDczODAwLjg5MjQzOTgsICJzdGVwIjogNzcsICJ2YWx1ZSI6IDAuMDk3MTgwODEzNTUwOTQ5MX0sIHsid2FsbFRpbWUiOiAxNzMzMDczODgwLjYyNjMwODcsICJzdGVwIjogNzgsICJ2YWx1ZSI6IDAuMDgzMzA1MTUwMjcwNDYyMDR9LCB7IndhbGxUaW1lIjogMTczMzA3Mzk2Mi40MTk1Mjc1LCAic3RlcCI6IDc5LCAidmFsdWUiOiAwLjA5ODM1NTQ3MjA4Nzg2MDExfV19fV0=", + "ok": true, + "headers": [ + [ + "content-length", + "1909" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Test/coco_eval_bbox_10%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIlRlc3QvY29jb19ldmFsX2Jib3hfMTAiLCAicnVuVG9TZXJpZXMiOiB7Ii4iOiBbeyJ3YWxsVGltZSI6IDE3MzMwNjc3NDAuMTUxOTgxOCwgInN0ZXAiOiAwLCAidmFsdWUiOiAwLjAwNzE0Mjg1NzE4Mjc3MDk2NzV9LCB7IndhbGxUaW1lIjogMTczMzA2NzgyOS43NTU5NDkzLCAic3RlcCI6IDEsICJ2YWx1ZSI6IDAuMDAxNTYyNTAwMDIzMjgzMDY0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTEzLjc5MzQ0MjcsICJzdGVwIjogMiwgInZhbHVlIjogMC4wMzYwNTY1NDgzNTcwMDk4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTk2Ljk5NTUxLCAic3RlcCI6IDMsICJ2YWx1ZSI6IDAuMDEwNjY5NjQzMDU5MzcyOTAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwODAuMTU3MzQwOCwgInN0ZXAiOiA0LCAidmFsdWUiOiAwLjAyMjg3MjAyMzI4NDQzNTI3Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTY0LjE5MjQxNTcsICJzdGVwIjogNSwgInZhbHVlIjogMC4wNzE3NTU5NTMxMzMxMDYyM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjQ3Ljg3MjI5NSwgInN0ZXAiOiA2LCAidmFsdWUiOiAwLjIwNTM3MjAyMDYwMjIyNjI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMzMuMjU3MTgxNCwgInN0ZXAiOiA3LCAidmFsdWUiOiAwLjA5NzE4NzQ5NjcyMTc0NDU0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0MTQuNTYwNTAzMiwgInN0ZXAiOiA4LCAidmFsdWUiOiAwLjE1NTgzMzMzMzczMDY5NzYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0OTYuMzYwNDIxMiwgInN0ZXAiOiA5LCAidmFsdWUiOiAwLjMyMjc4MjcyNTA5NTc0ODl9LCB7IndhbGxUaW1lIjogMTczMzA2ODU3Ny4zMzgzMDY3LCAic3RlcCI6IDEwLCAidmFsdWUiOiAwLjE4NTI4MjczNzAxNjY3Nzg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg2NTcuMDE5MzY4MiwgInN0ZXAiOiAxMSwgInZhbHVlIjogMC4yMTY4ODk4ODgwNDgxNzJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODczOS41MDQ4ODI2LCAic3RlcCI6IDEyLCAidmFsdWUiOiAwLjIyNDUwODkyNjI3MjM5MjI3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MTkuMzQ5NjAyNywgInN0ZXAiOiAxMywgInZhbHVlIjogMC4xNzU5MjI2MTczMTYyNDYwM30sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODk4Ljc3MTE5ODUsICJzdGVwIjogMTQsICJ2YWx1ZSI6IDAuMzM1MjIzMjI3NzM5MzM0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4OTgxLjg3ODgxNTcsICJzdGVwIjogMTUsICJ2YWx1ZSI6IDAuMTI2MDQxNjY1NjczMjU1OTJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTA2MS41MjY0NTczLCAic3RlcCI6IDE2LCAidmFsdWUiOiAwLjEzMTc3MDgzNDMyNjc0NDA4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkxNDEuNzQ3NDg1MiwgInN0ZXAiOiAxNywgInZhbHVlIjogMC4xODc3ODI3MzQ2MzI0OTIwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5MjIwLjAxMDgyNTQsICJzdGVwIjogMTgsICJ2YWx1ZSI6IDAuMTgyNjA0MTYzODg1MTE2NTh9LCB7IndhbGxUaW1lIjogMTczMzA2OTMwMS42NTM1ODM1LCAic3RlcCI6IDE5LCAidmFsdWUiOiAwLjIzMzM0ODIyMDU4Njc3NjczfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzODAuMTkzMzQxLCAic3RlcCI6IDIwLCAidmFsdWUiOiAwLjIwNzExMzEwMjA3ODQzNzh9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ1OS4yNTI2MywgInN0ZXAiOiAyMSwgInZhbHVlIjogMC4yMDk5OTk5OTM0NDM0ODkwN30sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTM4LjI4Njc0NCwgInN0ZXAiOiAyMiwgInZhbHVlIjogMC4yNjcwODMzNDY4NDM3MTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MTguMzI4ODE0LCAic3RlcCI6IDIzLCAidmFsdWUiOiAwLjM4Mjc2Nzg1NjEyMTA2MzIzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2OTguNjcwNTEzLCAic3RlcCI6IDI0LCAidmFsdWUiOiAwLjM1Nzg3MjAwOTI3NzM0Mzc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NzYuNjI0NTY1LCAic3RlcCI6IDI1LCAidmFsdWUiOiAwLjM2Mzc1MDAxMDcyODgzNjA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NTMuNDgzNzQ2OCwgInN0ZXAiOiAyNiwgInZhbHVlIjogMC4yMDIzMDY1NTM3MjE0Mjc5Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTI5LjkwNTQyMzksICJzdGVwIjogMjcsICJ2YWx1ZSI6IDAuMzI2MjY0ODg4MDQ4MTcyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwMDYuNjQ2NjE2NSwgInN0ZXAiOiAyOCwgInZhbHVlIjogMC4yMjg0MDc3NDA1OTI5NTY1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDgzLjMxODU0NjgsICJzdGVwIjogMjksICJ2YWx1ZSI6IDAuMjM4MDUwNTk0OTI1ODgwNDN9LCB7IndhbGxUaW1lIjogMTczMzA3MDE2MS44NzQ3NTMsICJzdGVwIjogMzAsICJ2YWx1ZSI6IDAuMjgwNzQ0MDQ1OTcyODI0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMjQyLjcxMjcyMzMsICJzdGVwIjogMzEsICJ2YWx1ZSI6IDAuMzcwMjk3NjEwNzU5NzM1MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzIxLjY1OTYzOTEsICJzdGVwIjogMzIsICJ2YWx1ZSI6IDAuMzM3ODEyNTEzMTEzMDIxODV9LCB7IndhbGxUaW1lIjogMTczMzA3MDM5OC43NTY4OTIsICJzdGVwIjogMzMsICJ2YWx1ZSI6IDAuMzY1NDE2Njc1ODA2MDQ1NTN9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ3Ny41Nzc5MDIzLCAic3RlcCI6IDM0LCAidmFsdWUiOiAwLjIxMzY3NTU4ODM2OTM2OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDU1NC40MTYyMzg4LCAic3RlcCI6IDM1LCAidmFsdWUiOiAwLjM0Mjg0MjI1MTA2MjM5MzJ9LCB7IndhbGxUaW1lIjogMTczMzA3MDYzMy40NjM3MzcyLCAic3RlcCI6IDM2LCAidmFsdWUiOiAwLjI3ODcyMDIyOTg2NDEyMDV9LCB7IndhbGxUaW1lIjogMTczMzA3MDcwOC44Mjg5NjQ3LCAic3RlcCI6IDM3LCAidmFsdWUiOiAwLjI4NzczODA4NDc5MzA5MDh9LCB7IndhbGxUaW1lIjogMTczMzA3MDc4OC4xOTU4MjIsICJzdGVwIjogMzgsICJ2YWx1ZSI6IDAuMzQ3NTQ0NjQwMzAyNjU4MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwODYzLjc2MjUwMjcsICJzdGVwIjogMzksICJ2YWx1ZSI6IDAuMjk2MjM1MTE0MzM2MDEzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTQwLjQyNDQ1MjUsICJzdGVwIjogNDAsICJ2YWx1ZSI6IDAuMjgzNDIyNjE5MTA0Mzg1NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDE1LjUwNzc0ODEsICJzdGVwIjogNDEsICJ2YWx1ZSI6IDAuMzM4MzQ4MjA5ODU3OTQwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDkwLjM4NjE5NjEsICJzdGVwIjogNDIsICJ2YWx1ZSI6IDAuMzA4Nzk0NjQ3NDU1MjE1NDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTE2OC42ODk2ODA2LCAic3RlcCI6IDQzLCAidmFsdWUiOiAwLjI4NzM2NjA2MjQwMjcyNTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTI0My45NzExODQsICJzdGVwIjogNDQsICJ2YWx1ZSI6IDAuMzQ0OTcwMjI2Mjg3ODQxOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzIzLjQ5NjA1MywgInN0ZXAiOiA0NSwgInZhbHVlIjogMC4yOTM2OTA0NzI4NDEyNjI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MDAuNTc2OTcyNywgInN0ZXAiOiA0NiwgInZhbHVlIjogMC4yOTI3NTI5ODExODU5MTMxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0NzguNTk0NTYwNiwgInN0ZXAiOiA0NywgInZhbHVlIjogMC4yODk3MTcyNTcwMjI4NTc2N30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTU3LjM0MjEzMDcsICJzdGVwIjogNDgsICJ2YWx1ZSI6IDAuMjk5OTcwMjM5NDAwODYzNjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTYzNi42MjM1MDc1LCAic3RlcCI6IDQ5LCAidmFsdWUiOiAwLjI4MTkzNDUyOTU0MjkyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzE2LjI1MTM2NywgInN0ZXAiOiA1MCwgInZhbHVlIjogMC4zODA0MzE1MzI4NTk4MDIyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNzk1LjA1NTk1MDksICJzdGVwIjogNTEsICJ2YWx1ZSI6IDAuMjkyNTI5NzYxNzkxMjI5MjV9LCB7IndhbGxUaW1lIjogMTczMzA3MTg3Mi43OTAxNzksICJzdGVwIjogNTIsICJ2YWx1ZSI6IDAuMjcyNzIzMjI3NzM5MzM0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTQ4LjM1NzgyNjIsICJzdGVwIjogNTMsICJ2YWx1ZSI6IDAuMjg0MzAwNTk1NTIxOTI2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDIzLjY1NzA3NjgsICJzdGVwIjogNTQsICJ2YWx1ZSI6IDAuMjg5NTY4NDU0MDI3MTc1OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDk5LjQ1ODI4MTMsICJzdGVwIjogNTUsICJ2YWx1ZSI6IDAuMzE4MzkyODQzMDA4MDQxNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTc1Ljc2NjY1MjMsICJzdGVwIjogNTYsICJ2YWx1ZSI6IDAuMzI1NzczODA1Mzc5ODY3NTV9LCB7IndhbGxUaW1lIjogMTczMzA3MjI1MC4zMjgwOTYsICJzdGVwIjogNTcsICJ2YWx1ZSI6IDAuMzI4NDY3MjQ5ODcwMzAwM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzI4Ljc3OTI0MDgsICJzdGVwIjogNTgsICJ2YWx1ZSI6IDAuMzMxMTMwOTUxNjQyOTkwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDA5LjQzOTUxMzIsICJzdGVwIjogNTksICJ2YWx1ZSI6IDAuMjk4NTQxNjY1MDc3MjA5NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDg0LjQyMjQ3LCAic3RlcCI6IDYwLCAidmFsdWUiOiAwLjMwNDMzMDM0ODk2ODUwNTg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NTcuODk2NDc0NiwgInN0ZXAiOiA2MSwgInZhbHVlIjogMC4zMDc1MTQ4NzYxMjcyNDMwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNjMyLjY5NzU1NDMsICJzdGVwIjogNjIsICJ2YWx1ZSI6IDAuMzEyNjA0MTU5MTE2NzQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MDcuNDg5OTMzMywgInN0ZXAiOiA2MywgInZhbHVlIjogMC4zMTQ4OTU4Mzg0OTkwNjkyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3ODIuMzg3Mzg4NywgInN0ZXAiOiA2NCwgInZhbHVlIjogMC4zMjEzNjkwNTE5MzMyODg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI4NjEuMDY1NTMxNSwgInN0ZXAiOiA2NSwgInZhbHVlIjogMC4zMDc4MTI1MTE5MjA5Mjg5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTM4LjEzMTA3OTcsICJzdGVwIjogNjYsICJ2YWx1ZSI6IDAuMzE3MDgzMzI4OTYyMzI2MDV9LCB7IndhbGxUaW1lIjogMTczMzA3MzAxMy45NTM2NjA1LCAic3RlcCI6IDY3LCAidmFsdWUiOiAwLjMwOTM4OTg4OTI0MDI2NDl9LCB7IndhbGxUaW1lIjogMTczMzA3MzA4OS45NDc4NjEyLCAic3RlcCI6IDY4LCAidmFsdWUiOiAwLjMwNTU1MDYwNTA1ODY3MDA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNjQuMTI3NDQxNiwgInN0ZXAiOiA2OSwgInZhbHVlIjogMC4zMjMyMTQyOTI1MjYyNDUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMzguNTIyNTE1LCAic3RlcCI6IDcwLCAidmFsdWUiOiAwLjMxMTY1MTc5NjEwMjUyMzh9LCB7IndhbGxUaW1lIjogMTczMzA3MzMxNi44MTAyNjU4LCAic3RlcCI6IDcxLCAidmFsdWUiOiAwLjMyNjM1NDE3NTgwNjA0NTUzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzOTguMjgzMjMwMywgInN0ZXAiOiA3MiwgInZhbHVlIjogMC4zMjY2MzY5MTA0Mzg1Mzc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NzguNzE5Mzk0LCAic3RlcCI6IDczLCAidmFsdWUiOiAwLjM0NDQxOTYyODM4MTcyOTF9LCB7IndhbGxUaW1lIjogMTczMzA3MzU1OS4wMzUyMjI4LCAic3RlcCI6IDc0LCAidmFsdWUiOiAwLjMxNTE0ODgwMDYxMTQ5NTk3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MzkuMjA1NzcwMywgInN0ZXAiOiA3NSwgInZhbHVlIjogMC4zMTg5Mjg1Njk1NTUyODI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM3MjAuNTM0Mzg5NywgInN0ZXAiOiA3NiwgInZhbHVlIjogMC4zMTM2NDU4Mzk2OTExNjIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MDAuODkyNDYzMiwgInN0ZXAiOiA3NywgInZhbHVlIjogMC4zMjM1NzE0MTM3NTU0MTY4N30sIHsid2FsbFRpbWUiOiAxNzMzMDczODgwLjYyNjMzMTYsICJzdGVwIjogNzgsICJ2YWx1ZSI6IDAuMzIyNTU5NTM1NTAzMzg3NDV9LCB7IndhbGxUaW1lIjogMTczMzA3Mzk2Mi40MTk1NSwgInN0ZXAiOiA3OSwgInZhbHVlIjogMC4zMTM0OTcwMzY2OTU0ODAzNX1dfX1d", + "ok": true, + "headers": [ + [ + "content-length", + "1903" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Test/coco_eval_bbox_6%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIlRlc3QvY29jb19ldmFsX2Jib3hfNiIsICJydW5Ub1NlcmllcyI6IHsiLiI6IFt7IndhbGxUaW1lIjogMTczMzA2Nzc0MC4xNTE5MzE4LCAic3RlcCI6IDAsICJ2YWx1ZSI6IDAuMH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODI5Ljc1NTkwMTgsICJzdGVwIjogMSwgInZhbHVlIjogMC4wMDAxNDM5OTIzNjUzMzc5MDgyN30sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTEzLjc5MzM5NiwgInN0ZXAiOiAyLCAidmFsdWUiOiAwLjAwMDIwNDY4MjAzMDAxNjU1NjM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5OTYuOTk1NDYzOCwgInN0ZXAiOiAzLCAidmFsdWUiOiAwLjAwMDU2NTc0NjE1ODgyNzA5NjJ9LCB7IndhbGxUaW1lIjogMTczMzA2ODA4MC4xNTcyOTAyLCAic3RlcCI6IDQsICJ2YWx1ZSI6IDAuMDAwNzI2Mjc0NDQ3NTE1NjA2OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MTY0LjE5MjM2OTcsICJzdGVwIjogNSwgInZhbHVlIjogMC4wMDMyMTg5NzE0MjU2Njc0MDV9LCB7IndhbGxUaW1lIjogMTczMzA2ODI0Ny44NzIyNDcyLCAic3RlcCI6IDYsICJ2YWx1ZSI6IDAuMDAyNDQ0ODM0MjE1NTY2NTE2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMzMuMjU3MTIsICJzdGVwIjogNywgInZhbHVlIjogMC4wMDQzMDIyODU2MTE2Mjk0ODZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODQxNC41NjA0NTQ0LCAic3RlcCI6IDgsICJ2YWx1ZSI6IDAuMDAzMTUzMTg2NTI0Mjg2ODY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg0OTYuMzYwMzc1LCAic3RlcCI6IDksICJ2YWx1ZSI6IDAuMDA2Mzc0MDA5ODg0ODkzODk0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg1NzcuMzM4MjU5LCAic3RlcCI6IDEwLCAidmFsdWUiOiAwLjAwNTkyODUyNTcwMTE2NTE5OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjU3LjAxOTMyMywgInN0ZXAiOiAxMSwgInZhbHVlIjogMC4wMDQzNzczMzYyNDEzMDQ4NzR9LCB7IndhbGxUaW1lIjogMTczMzA2ODczOS41MDQ4MzY2LCAic3RlcCI6IDEyLCAidmFsdWUiOiAwLjAwNTExODA3NjY4OTU0MTM0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MTkuMzQ5NTU2NywgInN0ZXAiOiAxMywgInZhbHVlIjogMC4wMDQ2MTk2MzkzNjY4NjUxNTh9LCB7IndhbGxUaW1lIjogMTczMzA2ODg5OC43NzExNTA2LCAic3RlcCI6IDE0LCAidmFsdWUiOiAwLjAyMzQ4NzAwNTM4Mjc3NjI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg5ODEuODc4NzcwNiwgInN0ZXAiOiAxNSwgInZhbHVlIjogMC4wMDMzMDAzMzk0NDkxOTcwNTR9LCB7IndhbGxUaW1lIjogMTczMzA2OTA2MS41MjY0MDgyLCAic3RlcCI6IDE2LCAidmFsdWUiOiAwLjAwNjMzNDkwMTc4NzM0MDY0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTQxLjc0NzQzOTYsICJzdGVwIjogMTcsICJ2YWx1ZSI6IDAuMDA1MTI0NjM5MjU0MDYzMzY4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMjAuMDEwNzc3LCAic3RlcCI6IDE4LCAidmFsdWUiOiAwLjAxNDg4MzcxMTkzNDA4OTY2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMDEuNjUzNTM0MiwgInN0ZXAiOiAxOSwgInZhbHVlIjogMC4wMTA2MzI5OTczNzg3MDY5MzJ9LCB7IndhbGxUaW1lIjogMTczMzA2OTM4MC4xOTMyNjIzLCAic3RlcCI6IDIwLCAidmFsdWUiOiAwLjAwNTIxOTY2Mzk1ODk5NjUzNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDU5LjI1MjU4MzcsICJzdGVwIjogMjEsICJ2YWx1ZSI6IDAuMDA0MjU0OTYzNzE0NjI5NDEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk1MzguMjg2Njk2NCwgInN0ZXAiOiAyMiwgInZhbHVlIjogMC4wMTM4ODI2NTE5MjUwODY5NzV9LCB7IndhbGxUaW1lIjogMTczMzA2OTYxOC4zMjg3NjksICJzdGVwIjogMjMsICJ2YWx1ZSI6IDAuMDA3Mzc2MTk0MDAwMjQ0MTQxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2OTguNjcwNDY1MiwgInN0ZXAiOiAyNCwgInZhbHVlIjogMC4wMDY2MDU3OTYwNTAyODAzMzI2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NzYuNjI0NTA0MywgInN0ZXAiOiAyNSwgInZhbHVlIjogMC4wMDc4MDk5OTAwODU2NjE0MTF9LCB7IndhbGxUaW1lIjogMTczMzA2OTg1My40ODM2OTksICJzdGVwIjogMjYsICJ2YWx1ZSI6IDAuMDE3Mjg4ODQxMzA3MTYzMjR9LCB7IndhbGxUaW1lIjogMTczMzA2OTkyOS45MDUzNzgzLCAic3RlcCI6IDI3LCAidmFsdWUiOiAwLjAyODA3OTM2MjU4NjE0MDYzM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDA2LjY0NjU2OTUsICJzdGVwIjogMjgsICJ2YWx1ZSI6IDAuMDA0ODYzMzUzOTExNzg3MjcxNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDgzLjMxODQ5OTMsICJzdGVwIjogMjksICJ2YWx1ZSI6IDAuMDA2NTA5MjQ1ODM4OTY5OTQ2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAxNjEuODc0NzA1MywgInN0ZXAiOiAzMCwgInZhbHVlIjogMC4wMjk1ODMyMTc1NzYxNDYxMjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDI0Mi43MTI2NzcsICJzdGVwIjogMzEsICJ2YWx1ZSI6IDAuMDE1NTAwMjM0NDM5OTY5MDYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMjEuNjU5NTk0OCwgInN0ZXAiOiAzMiwgInZhbHVlIjogMC4wMTc0MzM5NjE4NTMzODQ5N30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzk4Ljc1NjgyNiwgInN0ZXAiOiAzMywgInZhbHVlIjogMC4wMjAyOTgwNTA3MTY1MTkzNTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDQ3Ny41Nzc4NTQsICJzdGVwIjogMzQsICJ2YWx1ZSI6IDAuMDI1NjU3Mzg3NDUwMzM3NDF9LCB7IndhbGxUaW1lIjogMTczMzA3MDU1NC40MTYxOTEzLCAic3RlcCI6IDM1LCAidmFsdWUiOiAwLjAzMTg4NTEyODQ2ODI3NTA3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MzMuNDYzNjksICJzdGVwIjogMzYsICJ2YWx1ZSI6IDAuMDE2OTU5NjAwMTUwNTg1MTc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MDguODI4OTE5NiwgInN0ZXAiOiAzNywgInZhbHVlIjogMC4wMzUyMTI5MTUzOTA3Mjk5MDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDc4OC4xOTU3NzM4LCAic3RlcCI6IDM4LCAidmFsdWUiOiAwLjAzMDQ5MTY1OTQxNzc0ODQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NjMuNzYyNDUzMywgInN0ZXAiOiAzOSwgInZhbHVlIjogMC4wMjAxNTI5NzQ4NzM3ODEyMDR9LCB7IndhbGxUaW1lIjogMTczMzA3MDk0MC40MjQ0MDQ0LCAic3RlcCI6IDQwLCAidmFsdWUiOiAwLjAxOTQzMTk0ODY2MTgwNDJ9LCB7IndhbGxUaW1lIjogMTczMzA3MTAxNS41MDc3MDAyLCAic3RlcCI6IDQxLCAidmFsdWUiOiAwLjAwODU5OTA0NDc1NTEwMTIwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMDkwLjM4NjE1MDEsICJzdGVwIjogNDIsICJ2YWx1ZSI6IDAuMDA4NzU4NTMyODE0NjgxNTN9LCB7IndhbGxUaW1lIjogMTczMzA3MTE2OC42ODk2MDgzLCAic3RlcCI6IDQzLCAidmFsdWUiOiAwLjAwODE1MzA3MTYyNzAyMDgzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjQzLjk3MTEzNDQsICJzdGVwIjogNDQsICJ2YWx1ZSI6IDAuMDIwMzI1NDg3NDc5NTY3NTI4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEzMjMuNDk2MDA0LCAic3RlcCI6IDQ1LCAidmFsdWUiOiAwLjAwODkzNTcxNjAwMzE3OTU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE0MDAuNTc2OTI1LCAic3RlcCI6IDQ2LCAidmFsdWUiOiAwLjAxOTk4MjI0Mjk1Njc1NzU0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDc4LjU5NDUxNDEsICJzdGVwIjogNDcsICJ2YWx1ZSI6IDAuMDA4NTQ3ODU3NDAzNzU1MTg4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE1NTcuMzQyMDcxNSwgInN0ZXAiOiA0OCwgInZhbHVlIjogMC4wMDkyMDE5NDc1OTk2NDk0M30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjM2LjYyMzQ2MjIsICJzdGVwIjogNDksICJ2YWx1ZSI6IDAuMDE4NzM0ODcyMzQxMTU2MDA2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MTYuMjUxMzIwMSwgInN0ZXAiOiA1MCwgInZhbHVlIjogMC4wMDg5NTc2NDY3ODcxNjY1OTV9LCB7IndhbGxUaW1lIjogMTczMzA3MTc5NS4wNTU4ODcyLCAic3RlcCI6IDUxLCAidmFsdWUiOiAwLjAwOTg5Mjc5MzM3MjI3MzQ0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODcyLjc5MDEyOTIsICJzdGVwIjogNTIsICJ2YWx1ZSI6IDAuMDA5Mjg3MDMwNDM2MDk4NTc2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NDguMzU3NzgwNSwgInN0ZXAiOiA1MywgInZhbHVlIjogMC4wMDkzODM5NDIwMDA1Njc5MTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjAyMy42NTcwMjc1LCAic3RlcCI6IDU0LCAidmFsdWUiOiAwLjAwOTU2NzcxNTIyNzYwMzkxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMDk5LjQ1ODIyOTgsICJzdGVwIjogNTUsICJ2YWx1ZSI6IDAuMDA5Nzc1NDAzODg3MDMzNDYzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIxNzUuNzY2NjAzNSwgInN0ZXAiOiA1NiwgInZhbHVlIjogMC4wMDk0MDM4Mzc4NDQ3Mjk0MjR9LCB7IndhbGxUaW1lIjogMTczMzA3MjI1MC4zMjgwNDkyLCAic3RlcCI6IDU3LCAidmFsdWUiOiAwLjAwODk1OTYzNzk1NDgzMTEyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcyMzI4Ljc3OTE5MzksICJzdGVwIjogNTgsICJ2YWx1ZSI6IDAuMDA5MjUwNjkzOTU0NTI3Mzc4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MDkuNDM5NDY1LCAic3RlcCI6IDU5LCAidmFsdWUiOiAwLjAwOTE0MDA1NDY5NTMwODIwOH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDg0LjQyMjQyMDUsICJzdGVwIjogNjAsICJ2YWx1ZSI6IDAuMDA5Njk4NTY0MTg2NjkyMjM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NTcuODk2NDIzMywgInN0ZXAiOiA2MSwgInZhbHVlIjogMC4wMDkzNjQ5Mjk5ODE1Mjk3MTN9LCB7IndhbGxUaW1lIjogMTczMzA3MjYzMi42OTc1MDYyLCAic3RlcCI6IDYyLCAidmFsdWUiOiAwLjAwOTM5MDcyNzYxNjg0NjU2MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzA3LjQ4OTg4NzUsICJzdGVwIjogNjMsICJ2YWx1ZSI6IDAuMDA5MTE3OTU2MjczMjU3NzMyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3ODIuMzg3MzQyNSwgInN0ZXAiOiA2NCwgInZhbHVlIjogMC4wMjA0NTIxODQ2MDI2MTgyMTd9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg2MS4wNjU0ODM4LCAic3RlcCI6IDY1LCAidmFsdWUiOiAwLjAyMzU2OTIwMjA1MDU2NjY3M30sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTM4LjEzMTAzMzIsICJzdGVwIjogNjYsICJ2YWx1ZSI6IDAuMDIzNDQ4NDk4OTE5NjA2MjF9LCB7IndhbGxUaW1lIjogMTczMzA3MzAxMy45NTM1OTMsICJzdGVwIjogNjcsICJ2YWx1ZSI6IDAuMDM0NTU1ODMwMDYxNDM1N30sIHsid2FsbFRpbWUiOiAxNzMzMDczMDg5Ljk0NzgxNTIsICJzdGVwIjogNjgsICJ2YWx1ZSI6IDAuMDIxMDYyNzAwMDc3ODkxMzV9LCB7IndhbGxUaW1lIjogMTczMzA3MzE2NC4xMjczOTQsICJzdGVwIjogNjksICJ2YWx1ZSI6IDAuMDIxMDQyNTc5Nzg0OTg5MzU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMyMzguNTIyNDY3NCwgInN0ZXAiOiA3MCwgInZhbHVlIjogMC4wMTAwNTgyMTMwMjUzMzE0OTd9LCB7IndhbGxUaW1lIjogMTczMzA3MzMxNi44MTAyMDQ3LCAic3RlcCI6IDcxLCAidmFsdWUiOiAwLjAxMDAxMDIyMjkwNDM4NDEzNn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzk4LjI4MzE3MzYsICJzdGVwIjogNzIsICJ2YWx1ZSI6IDAuMDIzMTgyMjI2MzQ0OTQzMDQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NzguNzE5MzMzLCAic3RlcCI6IDczLCAidmFsdWUiOiAwLjAwOTcxNTY4ODQxNDg3MTY5M30sIHsid2FsbFRpbWUiOiAxNzMzMDczNTU5LjAzNTE3NTMsICJzdGVwIjogNzQsICJ2YWx1ZSI6IDAuMDIzNDQ5NTczNjY1ODU3MzE1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MzkuMjA1NzIyOCwgInN0ZXAiOiA3NSwgInZhbHVlIjogMC4wMDk2NzQ3MTY3NDA4NDY2MzR9LCB7IndhbGxUaW1lIjogMTczMzA3MzcyMC41MzQzNDE2LCAic3RlcCI6IDc2LCAidmFsdWUiOiAwLjAwOTQ4MTYxNzI0OTU0ODQzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDczODAwLjg5MjQxNjIsICJzdGVwIjogNzcsICJ2YWx1ZSI6IDAuMDA5ODA0MDI5MDE3Njg2ODQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4ODAuNjI2Mjg1LCAic3RlcCI6IDc4LCAidmFsdWUiOiAwLjAwOTgwMDU2OTE1NDMyMjE0N30sIHsid2FsbFRpbWUiOiAxNzMzMDczOTYyLjQxOTUwNDIsICJzdGVwIjogNzksICJ2YWx1ZSI6IDAuMDIzNDIwNTE2NDAxNTI5MzEyfV19fV0=", + "ok": true, + "headers": [ + [ + "content-length", + "1923" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Test/coco_eval_bbox_9%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIlRlc3QvY29jb19ldmFsX2Jib3hfOSIsICJydW5Ub1NlcmllcyI6IHsiLiI6IFt7IndhbGxUaW1lIjogMTczMzA2Nzc0MC4xNTE5NjkyLCAic3RlcCI6IDAsICJ2YWx1ZSI6IDYuNjg0MDQ4OTEyNTc1MjM2ZS0wNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODI5Ljc1NTkzNjksICJzdGVwIjogMSwgInZhbHVlIjogMC4wMDIwNzM0NTg2Mjg3Mjg5ODZ9LCB7IndhbGxUaW1lIjogMTczMzA2NzkxMy43OTM0MzA4LCAic3RlcCI6IDIsICJ2YWx1ZSI6IDAuMDAyMDYxODQ3NTk3MzYwNjExfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5OTYuOTk1NDk4NCwgInN0ZXAiOiAzLCAidmFsdWUiOiAwLjAwMzQzMDAyODkxMTY3OTk4M30sIHsid2FsbFRpbWUiOiAxNzMzMDY4MDgwLjE1NzMyODgsICJzdGVwIjogNCwgInZhbHVlIjogMC4wMDU0NDE1MTU3MDY0Nzk1NDl9LCB7IndhbGxUaW1lIjogMTczMzA2ODE2NC4xOTI0MDQzLCAic3RlcCI6IDUsICJ2YWx1ZSI6IDAuMDEyMjc0NjcyMjc3MjcxNzQ4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgyNDcuODcyMjgzMiwgInN0ZXAiOiA2LCAidmFsdWUiOiAwLjAxNDY0NzM3NTc5MjI2NDkzOH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MzMzLjI1NzE2OSwgInN0ZXAiOiA3LCAidmFsdWUiOiAwLjAyNDc2NzQ0MzUzNzcxMjA5N30sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDE0LjU2MDQ5MTMsICJzdGVwIjogOCwgInZhbHVlIjogMC4wMzg3NzkzMDcxNTY4MDEyMjR9LCB7IndhbGxUaW1lIjogMTczMzA2ODQ5Ni4zNjA0MDkzLCAic3RlcCI6IDksICJ2YWx1ZSI6IDAuMDMyNTMzNTMwMTQ1ODgzNTZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODU3Ny4zMzgyOTQ1LCAic3RlcCI6IDEwLCAidmFsdWUiOiAwLjAzNjk1MTE1NDQ3MDQ0MzcyNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjU3LjAxOTM1NjcsICJzdGVwIjogMTEsICJ2YWx1ZSI6IDAuMDMwMzU2MzkwNDAxNzIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MzkuNTA0ODcxLCAic3RlcCI6IDEyLCAidmFsdWUiOiAwLjA0MDgxNTczNzA5ODQ1NTQzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg4MTkuMzQ5NTkxMywgInN0ZXAiOiAxMywgInZhbHVlIjogMC4wMzI3MDM4MzE3OTE4Nzc3NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY4ODk4Ljc3MTE4NjQsICJzdGVwIjogMTQsICJ2YWx1ZSI6IDAuMDY0OTc0MjQwOTU4NjkwNjR9LCB7IndhbGxUaW1lIjogMTczMzA2ODk4MS44Nzg4MDQyLCAic3RlcCI6IDE1LCAidmFsdWUiOiAwLjA1NTY4MDc0NDM0OTk1NjUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNjEuNTI2NDQ1MiwgInN0ZXAiOiAxNiwgInZhbHVlIjogMC4wNjAyOTIyMTc4ODA0ODc0NH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MTQxLjc0NzQ3MzcsICJzdGVwIjogMTcsICJ2YWx1ZSI6IDAuMDY0NDMxODM4NjkxMjM0NTl9LCB7IndhbGxUaW1lIjogMTczMzA2OTIyMC4wMTA4MTM1LCAic3RlcCI6IDE4LCAidmFsdWUiOiAwLjA2ODg2NjM3MjEwODQ1OTQ3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkzMDEuNjUzNTcxNiwgInN0ZXAiOiAxOSwgInZhbHVlIjogMC4wNTMwNjMxNTc5NDU4NzEzNX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzgwLjE5MzMyNjIsICJzdGVwIjogMjAsICJ2YWx1ZSI6IDAuMDYwMDk2ODkzNDU5NTU4NDl9LCB7IndhbGxUaW1lIjogMTczMzA2OTQ1OS4yNTI2MTgzLCAic3RlcCI6IDIxLCAidmFsdWUiOiAwLjA0MjEwOTQwMDAzMzk1MDgwNn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTM4LjI4NjczMjIsICJzdGVwIjogMjIsICJ2YWx1ZSI6IDAuMDUzMjI4NTg2OTEyMTU1MTV9LCB7IndhbGxUaW1lIjogMTczMzA2OTYxOC4zMjg4MDI4LCAic3RlcCI6IDIzLCAidmFsdWUiOiAwLjA1Njc4OTQ2ODk3Mzg3NTA0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Njk4LjY3MDUwMDgsICJzdGVwIjogMjQsICJ2YWx1ZSI6IDAuMDY5MzUwOTY1MzIxMDY0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk3NzYuNjI0NTUyMiwgInN0ZXAiOiAyNSwgInZhbHVlIjogMC4wNzM3ODgzNDQ4NjAwNzY5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NTMuNDgzNzM0OCwgInN0ZXAiOiAyNiwgInZhbHVlIjogMC4wNzY5NzMzNTYzMDY1NTI4OX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTI5LjkwNTQxMjQsICJzdGVwIjogMjcsICJ2YWx1ZSI6IDAuMDc4NTAxMTcyMzYzNzU4MDl9LCB7IndhbGxUaW1lIjogMTczMzA3MDAwNi42NDY2MDQ4LCAic3RlcCI6IDI4LCAidmFsdWUiOiAwLjA0NDY1NTcxNzkwOTMzNjA5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwODMuMzE4NTM0NCwgInN0ZXAiOiAyOSwgInZhbHVlIjogMC4wNzEwNjcyMjg5MTMzMDcxOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTYxLjg3NDc0MTMsICJzdGVwIjogMzAsICJ2YWx1ZSI6IDAuMDc4NjI2ODYzNjU4NDI4MTl9LCB7IndhbGxUaW1lIjogMTczMzA3MDI0Mi43MTI3MTEzLCAic3RlcCI6IDMxLCAidmFsdWUiOiAwLjA3NjA2ODYzOTc1NTI0OTAyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMjEuNjU5NjI3NywgInN0ZXAiOiAzMiwgInZhbHVlIjogMC4wNzY2OTU0NTcxMDA4NjgyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwMzk4Ljc1Njg3MjIsICJzdGVwIjogMzMsICJ2YWx1ZSI6IDAuMDc2MzQ2NTA5MTU4NjExM30sIHsid2FsbFRpbWUiOiAxNzMzMDcwNDc3LjU3Nzg5MDYsICJzdGVwIjogMzQsICJ2YWx1ZSI6IDAuMDc1OTY5NDU3NjI2MzQyNzd9LCB7IndhbGxUaW1lIjogMTczMzA3MDU1NC40MTYyMjY2LCAic3RlcCI6IDM1LCAidmFsdWUiOiAwLjA3NzQ1MTQ1MjYxMjg3Njg5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA2MzMuNDYzNzI1MywgInN0ZXAiOiAzNiwgInZhbHVlIjogMC4wNzExMjc0NjY4NTc0MzMzMn0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNzA4LjgyODk1MzMsICJzdGVwIjogMzcsICJ2YWx1ZSI6IDAuMDc2Njk3MzE5NzQ2MDE3NDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDc4OC4xOTU4MTA4LCAic3RlcCI6IDM4LCAidmFsdWUiOiAwLjA3NjI1MzY1MjU3MjYzMTg0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NjMuNzYyNDkwMywgInN0ZXAiOiAzOSwgInZhbHVlIjogMC4wNzU4MTE1NTc0NzE3NTIxN30sIHsid2FsbFRpbWUiOiAxNzMzMDcwOTQwLjQyNDQ0MDYsICJzdGVwIjogNDAsICJ2YWx1ZSI6IDAuMDgzMDg4Njg4NTUyMzc5NjF9LCB7IndhbGxUaW1lIjogMTczMzA3MTAxNS41MDc3MzYsICJzdGVwIjogNDEsICJ2YWx1ZSI6IDAuMDc5MDM4NDU2MDgyMzQ0MDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTA5MC4zODYxODQ1LCAic3RlcCI6IDQyLCAidmFsdWUiOiAwLjA4NDUzMDY4ODgyMjI2OTQ0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzExNjguNjg5NjY4NCwgInN0ZXAiOiA0MywgInZhbHVlIjogMC4wODQ0ODM3NjUwNjU2NzAwMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMjQzLjk3MTE3MjMsICJzdGVwIjogNDQsICJ2YWx1ZSI6IDAuMDgxMTM2NTM5NTc4NDM3OH0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzIzLjQ5NjA0MSwgInN0ZXAiOiA0NSwgInZhbHVlIjogMC4wODcyODY4Mjk5NDg0MjUyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDAwLjU3Njk2MSwgInN0ZXAiOiA0NiwgInZhbHVlIjogMC4wODU4OTgyODAxNDM3Mzc3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDc4LjU5NDU0ODcsICJzdGVwIjogNDcsICJ2YWx1ZSI6IDAuMDg1NjQ5ODU1NDM0ODk0NTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTU1Ny4zNDIxMTksICJzdGVwIjogNDgsICJ2YWx1ZSI6IDAuMDgzNDE4MzYxODQyNjMyM30sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjM2LjYyMzQ5NTgsICJzdGVwIjogNDksICJ2YWx1ZSI6IDAuMDc3NjI0OTYxNzMzODE4MDV9LCB7IndhbGxUaW1lIjogMTczMzA3MTcxNi4yNTEzNTUsICJzdGVwIjogNTAsICJ2YWx1ZSI6IDAuMDg2NzIzMDU5NDE1ODE3MjZ9LCB7IndhbGxUaW1lIjogMTczMzA3MTc5NS4wNTU5Mzk0LCAic3RlcCI6IDUxLCAidmFsdWUiOiAwLjA4NDgxMzMwNDI0NTQ3MTk1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE4NzIuNzkwMTY2NCwgInN0ZXAiOiA1MiwgInZhbHVlIjogMC4wODg1OTA0MjA3ODI1NjYwN30sIHsid2FsbFRpbWUiOiAxNzMzMDcxOTQ4LjM1NzgxNDYsICJzdGVwIjogNTMsICJ2YWx1ZSI6IDAuMDg1NTk1NTQ4MTUyOTIzNTh9LCB7IndhbGxUaW1lIjogMTczMzA3MjAyMy42NTcwNjQ3LCAic3RlcCI6IDU0LCAidmFsdWUiOiAwLjA4NTEyODQ4NjE1NjQ2MzYyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIwOTkuNDU4MjY4MiwgInN0ZXAiOiA1NSwgInZhbHVlIjogMC4wODUyMTgwMzQ2ODQ2NTgwNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyMTc1Ljc2NjY0MDQsICJzdGVwIjogNTYsICJ2YWx1ZSI6IDAuMDY4MDc4NjA3MzIwNzg1NTJ9LCB7IndhbGxUaW1lIjogMTczMzA3MjI1MC4zMjgwODQ1LCAic3RlcCI6IDU3LCAidmFsdWUiOiAwLjA3MjYwNTUzNTM4Nzk5Mjg2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMjguNzc5MjI5MiwgInN0ZXAiOiA1OCwgInZhbHVlIjogMC4wOTAzMjQ2MjUzNzI4ODY2Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDA5LjQzOTUwMSwgInN0ZXAiOiA1OSwgInZhbHVlIjogMC4wODQyMjA3NDQ2Njk0Mzc0MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDg0LjQyMjQ1OCwgInN0ZXAiOiA2MCwgInZhbHVlIjogMC4wODMxMjQ5MzU2MjY5ODM2NH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNTU3Ljg5NjQ2MTUsICJzdGVwIjogNjEsICJ2YWx1ZSI6IDAuMDg1ODM0NjgxOTg3NzYyNDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjYzMi42OTc1NDI3LCAic3RlcCI6IDYyLCAidmFsdWUiOiAwLjA4ODIwNTA2OTMwMzUxMjU3fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MDcuNDg5OTIxNiwgInN0ZXAiOiA2MywgInZhbHVlIjogMC4wODU2ODU5NjA5NDg0NjcyNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzgyLjM4NzM3NjgsICJzdGVwIjogNjQsICJ2YWx1ZSI6IDAuMDg2OTI0NjQ5Nzc1MDI4MjN9LCB7IndhbGxUaW1lIjogMTczMzA3Mjg2MS4wNjU1MTk2LCAic3RlcCI6IDY1LCAidmFsdWUiOiAwLjA4OTkxNDY3MjA3NjcwMjEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI5MzguMTMxMDY4MiwgInN0ZXAiOiA2NiwgInZhbHVlIjogMC4wODk4NjEwNDI3OTc1NjU0Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDEzLjk1MzYzNTcsICJzdGVwIjogNjcsICJ2YWx1ZSI6IDAuMDg5MDM1NjE1MzI0OTc0MDZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzA4OS45NDc4NDk1LCAic3RlcCI6IDY4LCAidmFsdWUiOiAwLjA4NjgwODYyMTg4MzM5MjMzfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNjQuMTI3NDMsICJzdGVwIjogNjksICJ2YWx1ZSI6IDAuMDg2NTg2NjM5Mjg1MDg3NTl9LCB7IndhbGxUaW1lIjogMTczMzA3MzIzOC41MjI1MDMsICJzdGVwIjogNzAsICJ2YWx1ZSI6IDAuMDg3MDc0ODQ2MDI5MjgxNjJ9LCB7IndhbGxUaW1lIjogMTczMzA3MzMxNi44MTAyNTM0LCAic3RlcCI6IDcxLCAidmFsdWUiOiAwLjA4NjU1NDY2MTM5MzE2NTU5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMzOTguMjgzMjE1OCwgInN0ZXAiOiA3MiwgInZhbHVlIjogMC4wODk5MzYyODYyMTEwMTM4fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NzguNzE5MzgyLCAic3RlcCI6IDczLCAidmFsdWUiOiAwLjA3NjE4MDYwNzA4MDQ1OTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MzU1OS4wMzUyMTA4LCAic3RlcCI6IDc0LCAidmFsdWUiOiAwLjA4OTk3MTA1MDYyMDA3OTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM2MzkuMjA1NzU4OCwgInN0ZXAiOiA3NSwgInZhbHVlIjogMC4wNzcwOTAzNjc2NzQ4Mjc1OH0sIHsid2FsbFRpbWUiOiAxNzMzMDczNzIwLjUzNDM3NzYsICJzdGVwIjogNzYsICJ2YWx1ZSI6IDAuMDg5MTU4ODE4MTI1NzI0Nzl9LCB7IndhbGxUaW1lIjogMTczMzA3MzgwMC44OTI0NTE1LCAic3RlcCI6IDc3LCAidmFsdWUiOiAwLjA5MDA4MTMxOTIxMjkxMzUxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4ODAuNjI2MzIwMSwgInN0ZXAiOiA3OCwgInZhbHVlIjogMC4wNzU1OTY4MzE3Mzg5NDg4Mn0sIHsid2FsbFRpbWUiOiAxNzMzMDczOTYyLjQxOTUzODcsICJzdGVwIjogNzksICJ2YWx1ZSI6IDAuMDkxNDk3NTAzMjIxMDM1fV19fV0=", + "ok": true, + "headers": [ + [ + "content-length", + "1925" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6007/experiment/defaultExperimentId/data/plugin/timeseries/timeSeries?requests=%5B%7B%22plugin%22:%22scalars%22,%22tag%22:%22Test/coco_eval_bbox_11%22%7D%5D": { + "data": "W3sicGx1Z2luIjogInNjYWxhcnMiLCAidGFnIjogIlRlc3QvY29jb19ldmFsX2Jib3hfMTEiLCAicnVuVG9TZXJpZXMiOiB7Ii4iOiBbeyJ3YWxsVGltZSI6IDE3MzMwNjc3NDAuMTUyNDQ2LCAic3RlcCI6IDAsICJ2YWx1ZSI6IDAuMH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3ODI5Ljc1NjQ2NTIsICJzdGVwIjogMSwgInZhbHVlIjogMC4wfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjc5MTMuNzkzOTAyLCAic3RlcCI6IDIsICJ2YWx1ZSI6IDAuMH0sIHsid2FsbFRpbWUiOiAxNzMzMDY3OTk2Ljk5NTk2OTgsICJzdGVwIjogMywgInZhbHVlIjogMC4wfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgwODAuMTU3ODg4NCwgInN0ZXAiOiA0LCAidmFsdWUiOiAwLjB9LCB7IndhbGxUaW1lIjogMTczMzA2ODE2NC4xOTI5MzY3LCAic3RlcCI6IDUsICJ2YWx1ZSI6IDAuMH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4MjQ3Ljg3MjgwOTYsICJzdGVwIjogNiwgInZhbHVlIjogMC4wfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjgzMzMuMjU3NjA0LCAic3RlcCI6IDcsICJ2YWx1ZSI6IDAuMTc0OTk5OTk3MDE5NzY3NzZ9LCB7IndhbGxUaW1lIjogMTczMzA2ODQxNC41NjA5ODg0LCAic3RlcCI6IDgsICJ2YWx1ZSI6IDAuMH0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NDk2LjM2MDk5MjIsICJzdGVwIjogOSwgInZhbHVlIjogMC4xMDAwMDAwMDE0OTAxMTYxMn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NTc3LjMzODc0MSwgInN0ZXAiOiAxMCwgInZhbHVlIjogMC4zMDAwMDAwMTE5MjA5Mjg5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY4NjU3LjAxOTg5OCwgInN0ZXAiOiAxMSwgInZhbHVlIjogMC4yNzUwMDAwMDU5NjA0NjQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjg3MzkuNTA1NDM1NywgInN0ZXAiOiAxMiwgInZhbHVlIjogMC4xMjV9LCB7IndhbGxUaW1lIjogMTczMzA2ODgxOS4zNTAxMDIyLCAic3RlcCI6IDEzLCAidmFsdWUiOiAwLjc3NDk5OTk3NjE1ODE0MjF9LCB7IndhbGxUaW1lIjogMTczMzA2ODg5OC43NzE2ODMsICJzdGVwIjogMTQsICJ2YWx1ZSI6IDAuNDQ5OTk5OTg4MDc5MDcxMDR9LCB7IndhbGxUaW1lIjogMTczMzA2ODk4MS44NzkyNTc3LCAic3RlcCI6IDE1LCAidmFsdWUiOiAwLjA3NTAwMDAwMjk4MDIzMjI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkwNjEuNTI2OTMsICJzdGVwIjogMTYsICJ2YWx1ZSI6IDAuMzAwMDAwMDExOTIwOTI4OTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTE0MS43NDgwMzAyLCAic3RlcCI6IDE3LCAidmFsdWUiOiAwLjEwMDAwMDAwMTQ5MDExNjEyfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjkyMjAuMDExMjY4NCwgInN0ZXAiOiAxOCwgInZhbHVlIjogMC4xNzQ5OTk5OTcwMTk3Njc3Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzAxLjY1NDA3NiwgInN0ZXAiOiAxOSwgInZhbHVlIjogMC4zMjQ5OTk5ODgwNzkwNzEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5MzgwLjE5Mzg1NjUsICJzdGVwIjogMjAsICJ2YWx1ZSI6IDAuMzQ5OTk5OTk0MDM5NTM1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NDU5LjI1MzEyOTcsICJzdGVwIjogMjEsICJ2YWx1ZSI6IDAuNDAwMDAwMDA1OTYwNDY0NX0sIHsid2FsbFRpbWUiOiAxNzMzMDY5NTM4LjI4NzI2NDYsICJzdGVwIjogMjIsICJ2YWx1ZSI6IDAuODI0OTk5OTg4MDc5MDcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk2MTguMzI5MjUyNywgInN0ZXAiOiAyMywgInZhbHVlIjogMC40NDk5OTk5ODgwNzkwNzEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDY5Njk4LjY3MDk3NDcsICJzdGVwIjogMjQsICJ2YWx1ZSI6IDAuNDI1MDAwMDExOTIwOTI4OTZ9LCB7IndhbGxUaW1lIjogMTczMzA2OTc3Ni42MjUwMTc2LCAic3RlcCI6IDI1LCAidmFsdWUiOiAwLjIwMDAwMDAwMjk4MDIzMjI0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNjk4NTMuNDg0MjAzNiwgInN0ZXAiOiAyNiwgInZhbHVlIjogMC4zMDAwMDAwMTE5MjA5Mjg5Nn0sIHsid2FsbFRpbWUiOiAxNzMzMDY5OTI5LjkwNTk0NjcsICJzdGVwIjogMjcsICJ2YWx1ZSI6IDAuNDc0OTk5OTk0MDM5NTM1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMDA2LjY0NzExMTIsICJzdGVwIjogMjgsICJ2YWx1ZSI6IDAuMzc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAwODMuMzE4OTk5NSwgInN0ZXAiOiAyOSwgInZhbHVlIjogMC40NDk5OTk5ODgwNzkwNzEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcwMTYxLjg3NTE4NzQsICJzdGVwIjogMzAsICJ2YWx1ZSI6IDAuNTUwMDAwMDExOTIwOTI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAyNDIuNzEzMTc1LCAic3RlcCI6IDMxLCAidmFsdWUiOiAwLjQyNTAwMDAxMTkyMDkyODk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzAzMjEuNjYwMDk3LCAic3RlcCI6IDMyLCAidmFsdWUiOiAwLjM0OTk5OTk5NDAzOTUzNTV9LCB7IndhbGxUaW1lIjogMTczMzA3MDM5OC43NTczNjY0LCAic3RlcCI6IDMzLCAidmFsdWUiOiAwLjMyNDk5OTk4ODA3OTA3MTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA0NzcuNTc4MzY1LCAic3RlcCI6IDM0LCAidmFsdWUiOiAwLjU3NDk5OTk4ODA3OTA3MX0sIHsid2FsbFRpbWUiOiAxNzMzMDcwNTU0LjQxNjY4MjUsICJzdGVwIjogMzUsICJ2YWx1ZSI6IDAuNDI1MDAwMDExOTIwOTI4OTZ9LCB7IndhbGxUaW1lIjogMTczMzA3MDYzMy40NjQxOTE3LCAic3RlcCI6IDM2LCAidmFsdWUiOiAwLjQ0OTk5OTk4ODA3OTA3MTA0fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3MDguODI5NDA5NCwgInN0ZXAiOiAzNywgInZhbHVlIjogMC41MjQ5OTk5NzYxNTgxNDIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA3ODguMTk2MjU4NSwgInN0ZXAiOiAzOCwgInZhbHVlIjogMC4yNzUwMDAwMDU5NjA0NjQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA4NjMuNzYyOTY4OCwgInN0ZXAiOiAzOSwgInZhbHVlIjogMC4zNDk5OTk5OTQwMzk1MzU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzA5NDAuNDI1MjA2MiwgInN0ZXAiOiA0MCwgInZhbHVlIjogMC42NzUwMDAwMTE5MjA5Mjl9LCB7IndhbGxUaW1lIjogMTczMzA3MTAxNS41MDgyMjczLCAic3RlcCI6IDQxLCAidmFsdWUiOiAwLjMwMDAwMDAxMTkyMDkyODk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzEwOTAuMzg2Njc4MiwgInN0ZXAiOiA0MiwgInZhbHVlIjogMC42OTk5OTk5ODgwNzkwNzF9LCB7IndhbGxUaW1lIjogMTczMzA3MTE2OC42OTAxMDkzLCAic3RlcCI6IDQzLCAidmFsdWUiOiAwLjcyNTAwMDAyMzg0MTg1Nzl9LCB7IndhbGxUaW1lIjogMTczMzA3MTI0My45NzE2MzcyLCAic3RlcCI6IDQ0LCAidmFsdWUiOiAwLjgwMDAwMDAxMTkyMDkyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxMzIzLjQ5NjU4OTQsICJzdGVwIjogNDUsICJ2YWx1ZSI6IDAuNjQ5OTk5OTc2MTU4MTQyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDAwLjU3NzQzODQsICJzdGVwIjogNDYsICJ2YWx1ZSI6IDAuNzc0OTk5OTc2MTU4MTQyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNDc4LjU5NTA2MDgsICJzdGVwIjogNDcsICJ2YWx1ZSI6IDAuNjAwMDAwMDIzODQxODU3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNTU3LjM0MjU0NDgsICJzdGVwIjogNDgsICJ2YWx1ZSI6IDAuNzc0OTk5OTc2MTU4MTQyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxNjM2LjYyMzk3NDYsICJzdGVwIjogNDksICJ2YWx1ZSI6IDAuODc1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE3MTYuMjUxODY4NSwgInN0ZXAiOiA1MCwgInZhbHVlIjogMC44MjQ5OTk5ODgwNzkwNzF9LCB7IndhbGxUaW1lIjogMTczMzA3MTc5NS4wNTYzNjY3LCAic3RlcCI6IDUxLCAidmFsdWUiOiAwLjgwMDAwMDAxMTkyMDkyOX0sIHsid2FsbFRpbWUiOiAxNzMzMDcxODcyLjc5MDY3MzMsICJzdGVwIjogNTIsICJ2YWx1ZSI6IDAuODAwMDAwMDExOTIwOTI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzE5NDguMzU4Mjg2OSwgInN0ZXAiOiA1MywgInZhbHVlIjogMC42NzUwMDAwMTE5MjA5Mjl9LCB7IndhbGxUaW1lIjogMTczMzA3MjAyMy42NTc1MzU4LCAic3RlcCI6IDU0LCAidmFsdWUiOiAwLjY0OTk5OTk3NjE1ODE0MjF9LCB7IndhbGxUaW1lIjogMTczMzA3MjA5OS40NTg3NjQ4LCAic3RlcCI6IDU1LCAidmFsdWUiOiAwLjQwMDAwMDAwNTk2MDQ2NDV9LCB7IndhbGxUaW1lIjogMTczMzA3MjE3NS43NjcxMDIyLCAic3RlcCI6IDU2LCAidmFsdWUiOiAwLjV9LCB7IndhbGxUaW1lIjogMTczMzA3MjI1MC4zMjg1NDEsICJzdGVwIjogNTcsICJ2YWx1ZSI6IDAuODAwMDAwMDExOTIwOTI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzIzMjguNzc5Njk1MywgInN0ZXAiOiA1OCwgInZhbHVlIjogMC4zNDk5OTk5OTQwMzk1MzU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI0MDkuNDM5OTM3NCwgInN0ZXAiOiA1OSwgInZhbHVlIjogMC4yMDAwMDAwMDI5ODAyMzIyNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNDg0LjQyMzAyMSwgInN0ZXAiOiA2MCwgInZhbHVlIjogMC4yNzUwMDAwMDU5NjA0NjQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI1NTcuODk2OTc0NiwgInN0ZXAiOiA2MSwgInZhbHVlIjogMC4yNzUwMDAwMDU5NjA0NjQ1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI2MzIuNjk4MDExNiwgInN0ZXAiOiA2MiwgInZhbHVlIjogMC41MjQ5OTk5NzYxNTgxNDIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzI3MDcuNDkwMzkxNywgInN0ZXAiOiA2MywgInZhbHVlIjogMC40NDk5OTk5ODgwNzkwNzEwNH0sIHsid2FsbFRpbWUiOiAxNzMzMDcyNzgyLjM4Nzg0OTgsICJzdGVwIjogNjQsICJ2YWx1ZSI6IDAuNDc0OTk5OTk0MDM5NTM1NX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyODYxLjA2NjAzMzgsICJzdGVwIjogNjUsICJ2YWx1ZSI6IDAuNX0sIHsid2FsbFRpbWUiOiAxNzMzMDcyOTM4LjEzMTUyMzYsICJzdGVwIjogNjYsICJ2YWx1ZSI6IDAuNTI0OTk5OTc2MTU4MTQyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDEzLjk1MzY3MzEsICJzdGVwIjogNjcsICJ2YWx1ZSI6IDAuNjQ5OTk5OTc2MTU4MTQyMX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMDg5Ljk0ODMxMTgsICJzdGVwIjogNjgsICJ2YWx1ZSI6IDAuNjk5OTk5OTg4MDc5MDcxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzMxNjQuMTI3OTQxMSwgInN0ZXAiOiA2OSwgInZhbHVlIjogMC44MjQ5OTk5ODgwNzkwNzF9LCB7IndhbGxUaW1lIjogMTczMzA3MzIzOC41MjMwMjEsICJzdGVwIjogNzAsICJ2YWx1ZSI6IDAuODUwMDAwMDIzODQxODU3OX0sIHsid2FsbFRpbWUiOiAxNzMzMDczMzE2LjgxMDY5MywgInN0ZXAiOiA3MSwgInZhbHVlIjogMC42MjV9LCB7IndhbGxUaW1lIjogMTczMzA3MzM5OC4yODM2OTYyLCAic3RlcCI6IDcyLCAidmFsdWUiOiAwLjQyNTAwMDAxMTkyMDkyODk2fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM0NzguNzE5ODIzLCAic3RlcCI6IDczLCAidmFsdWUiOiAwLjYwMDAwMDAyMzg0MTg1Nzl9LCB7IndhbGxUaW1lIjogMTczMzA3MzU1OS4wMzU2ODQ4LCAic3RlcCI6IDc0LCAidmFsdWUiOiAwLjUyNDk5OTk3NjE1ODE0MjF9LCB7IndhbGxUaW1lIjogMTczMzA3MzYzOS4yMDYyMjYzLCAic3RlcCI6IDc1LCAidmFsdWUiOiAwLjUyNDk5OTk3NjE1ODE0MjF9LCB7IndhbGxUaW1lIjogMTczMzA3MzcyMC41MzQ5MzksICJzdGVwIjogNzYsICJ2YWx1ZSI6IDAuNTUwMDAwMDExOTIwOTI5fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4MDAuODkyOTE5OCwgInN0ZXAiOiA3NywgInZhbHVlIjogMC40NzQ5OTk5OTQwMzk1MzU1fSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM4ODAuNjI2ODE1NiwgInN0ZXAiOiA3OCwgInZhbHVlIjogMC41MjQ5OTk5NzYxNTgxNDIxfSwgeyJ3YWxsVGltZSI6IDE3MzMwNzM5NjIuNDIwMDQ5MiwgInN0ZXAiOiA3OSwgInZhbHVlIjogMC41MjQ5OTk5NzYxNTgxNDIxfV19fV0=", + "ok": true, + "headers": [ + [ + "content-length", + "1379" + ], + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + } + }, + "base_uri": "https://localhost:8080/", + "height": 821 + }, + "id": "HutUlygrSfch", + "outputId": "da1c151e-4e0b-4334-e76b-f7cd171c53ee" + }, + "id": "HutUlygrSfch", + "execution_count": 18, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "application/javascript": [ + "\n", + " (async () => {\n", + " const url = new URL(await google.colab.kernel.proxyPort(6007, {'cache': true}));\n", + " url.searchParams.set('tensorboardColab', 'true');\n", + " const iframe = document.createElement('iframe');\n", + " iframe.src = url;\n", + " iframe.setAttribute('width', '100%');\n", + " iframe.setAttribute('height', '800');\n", + " iframe.setAttribute('frameborder', 0);\n", + " document.body.appendChild(iframe);\n", + " })();\n", + " " + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Inference custom model on a example image" + ], + "metadata": { + "id": "oPXFdSCac0U7" + }, + "id": "oPXFdSCac0U7" + }, + { + "cell_type": "code", + "source": [ + "!wget -O arduino.jpg https://images.unsplash.com/photo-1603732551658-5fabbafa84eb?ixlib=rb-4.0.3&q=85&fm=jpg&crop=entropy&cs=srgb&dl=sahand-babali-gavODTHG36Y-unsplash.jpg&w=1920" + ], + "metadata": { + "id": "Z8h72WZcTNLJ" + }, + "id": "Z8h72WZcTNLJ", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Preview of the image\n", + "from IPython.display import Image as IPyImage\n", + "IPyImage(filename=f'{HOME}/arduino.jpg', width=600)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 417 + }, + "id": "AA-zVp6NTrmL", + "outputId": "4f3a3db9-ab6a-4599-c9b3-aea9cd173576" + }, + "id": "AA-zVp6NTrmL", + "execution_count": 34, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "image/jpeg": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "image/jpeg": { + "width": 600 + } + }, + "execution_count": 34 + } + ] + }, + { + "cell_type": "code", + "source": [ + "from PIL import Image\n", + "\n", + "# Resize image\n", + "image = Image.open(\"arduino.jpg\")\n", + "image = image.resize((640, 640))\n", + "image.save(\"arduino_640.jpg\")" + ], + "metadata": { + "id": "eM4yayxBamBv" + }, + "id": "eM4yayxBamBv", + "execution_count": 36, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "!python D-FINE/tools/inference/torch_inf.py -c D-FINE/configs/dfine/custom/dfine_hgnetv2_l_custom.yml -r output/dfine_hgnetv2_l_custom/last.pth --input arduino_640.jpg --device cuda:0" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "0VwBjSFIZhOb", + "outputId": "804abada-febc-4eb5-fa03-20a9ae079b53" + }, + "id": "0VwBjSFIZhOb", + "execution_count": 30, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "2024-12-01 18:11:22.983370: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n", + "2024-12-01 18:11:23.000386: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:485] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", + "2024-12-01 18:11:23.021204: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:8454] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", + "2024-12-01 18:11:23.027462: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1452] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n", + "2024-12-01 18:11:23.042368: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "To enable the following instructions: AVX2 AVX512F AVX512_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", + "2024-12-01 18:11:24.274637: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n", + "/content/D-FINE/tools/inference/torch_inf.py:118: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n", + " checkpoint = torch.load(args.resume, map_location='cpu')\n", + "Image processing complete.\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Show results\n", + "IPyImage(filename=f'{HOME}/torch_results.jpg', width=600)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "P6NTL3rhZ0uY", + "outputId": "bd7c1a27-30b2-4ba2-df9b-e93d6c7d3086" + }, + "id": "P6NTL3rhZ0uY", + "execution_count": 35, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAKAAoADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD0uiiivRPECiiigBKWkNFMBaKSigQUUUUALSUUUAFFFFABRRRQAtJRRQAh6VEzEVJ1qNhQMkVlmXBOH7e9QmXc32eTI9DVe53RkYPvT4Z0mVVnwH/hb1rCS69DojK/uv4n+Jj61amz0+4kCl2fgYqLwfH5FkAV2gksQa3zhFMFyu+M9M0wWIt0LQfNGfTtSVr3e7KbbXKvhXQd5uHaT1q1HwgFZ6/vJ0jH1NaNbJanNJ6WYUlLRVEFZ8xzBx0PBqZmKEOP4f5UkiblIqOBsgo3UcVLWvqXFu2m6LB9R0PNJUcb/wDLM9V/lT6cdrMJpXuuoGkNLSVRA0io3TIqUikxQIptFz0qP7Pk9KvFRRtA7U7k2IoYQnPerAGKQCnUikFLSUUDFopKKAClpDVaafEvlggYHP1pPRXBK7sWTSYqlBdSIwjmUknoR3q8GDdDQmmDi1uHSilNJTEJRRmlALHAGTQA00LAkoTzchd3zH2qR1FpPELhSQ3O0UPeLcTbWUIg4C/41y1ql/hO3D0+VvnGXN3HAkkNmoEbjGcdaxYot0656Z5Na13bxxSxFHBDLkj0NMkihig2qcyNTpLTTqKtK0teg9No+VDlR0NPqvbIY12mrFdCVlY5G7u4UUUUwEooooEJTXQMKfSdqAKE0LAHacVn/Pbtuwa3WUGoHt1btQ0mrMSbTujKSOQsZOcmr1veSo2HO4e9S+TjgCmtCD2ocYyVmEZyi7pltJY5T8p2t6U8qCMOOPWswoyHjkVNHdMpweR6GspU2tjeNZPRnDeNrO4guriWxggl/dQgmVdxUvIyjb+PevL/ALTf6bebLrzAynlZOQfwr3LUbcajqN0kbFCIrWQD1KSyMP1UVzOqWumSzyx6zCIpZ3GJGPHAAwPbv9Sa54ulGF3FOXvdNd9Pu1/A9qVepC0IzaVo9Xb4UY+iX9vqLwq9tabZXaMARDcCFJyT3+6e3pV+6EMOowWqWVuys5SVjGODsZgB7/Lz7EetcI9wmka5IbGUmKNyEYHOOMZ/WvRNMGl+IYobpYo0uUbzC6ouWO0jk4565+oFenSng5vWK2fTrrb9PmedXrYmDv7SVvV/5lewKJdSrNZ2cnlhSQIQQCc5XnOSOOfccVsC00rVJLuIW8MCGCIhUQKN26TJwPwqiNJk0+Moksky9cybc57ngDJPvWJqN1La+e6Eq2xen1Nc2Mw9J1FKmktenoaYXMazhUjUk5Ky3b/micjrGmYvJBA5IRiBWakjQPsnUj3rXt79Wf8AejDZ71bntYLxOQDXnyTT1OmDjJe6Z0UEVwuVINRS6LuO6M4brUM9lc2Dl4CSvpU9pra7tk42mp1K06n07RS0lemeIFLSUUwCiiigQUUUlAC0UlFAC0UUlAC0UlFABSM+1ST2oJqulwjrK7nhTjFZVqns43OjC0PbTs9luR2Wox3ryKmQyHBBFXa56w2jVH8ogZyxrfU7hmow05zh7+5pjadKFT9z8PmOpDgDcegpcelRXEmBsH41tLsjljp7z6FZ1M0v1plzGEIAH3atwrsUuevaoHUu/uaFq7dED0jfqwhuVePZc8qOjelK8klixkHzRNz7GmTRBUA9aiS8MBETr5kbHBU+lZSju4/cbQlspvXuX7QQXTNPCNrsOVNTEFSQRzTEt4iga1baRztPUVILjny7pSp7NThLl0X/AAQnHm1e/foxlFSPEUGRyvqKj7Z7A1rzK1zHkfNysKryrslWQdOhqcHNI67kINDV0SnZkE2UkSQfQ1YpjhZIQB6YP1oicNGvPzjhhUp6p9zRx0a7fkPpKWkrQyCkpaSgQYooooAKWkooAWiiigYUUUhoEKTgVj3gbz2I/irWbpVP5ROFcZBNKV7FRavqGmeZuZ3+ZF7HrV4xbpD5RxuqtJG0DDyz8ueRTZN0UYkV+GOc5/SuKonfm2PQpSSXLa5aQkg57GlNV7STzU46+lakdqsa+ZcHaOy9zXSqiUdTjdKUpOy0K8FtJO2FHHcmrYaK1BWEB5O7noKjnu8Jgfu4+yjqayri8ZvlTgegqHzVNDT3KSv1/rYffXq7yS2+X19Kz4p3WR5JM4PepFty7bn/ACqUwhxjHFaqlFKzMJV5OV0VTI88g2Hgd6txKe/J9aRIQhwo4qyqgCrSSVkZttu7ALinUdqM0AFFLSUDCikzS0AFJS0mKBBRiiigBMU0qDT6KAIWSoJIgenWrhFMZc00FjnyjrrFyOf+PeH/ANCkrlfGlhdajbLkllj5HHNduqf8T27BH/LtD/6FLTrmySZCpAINZ01FrVdX+Z0YtyVRcr+zH/0lHzvPbvblldTxXX2sQ8O6JZ6rFMTI5HmR56+1anijw0qM0kafKeuBXEatPdGKK2lOY4uBXPVpOm+aJ0Yeuq0eSa1PY9J1C21uwWaJgSRyKxdZ0sS3VyiryIoz+Zf/AArz/wALa1d6XqcawktHIwDJ/hXsKw+fqVwXHJtoSR/wKSt41Oflfn+jM3R5I1V/d/8Abonjmo6VJBIx2kVSiuZrZsHJHoa9e1LRI5wfkGa4vVPDbRklV4+lVOjfY5qWIcNzIgvYrhdr4yfWq95o0VwpePAPtUU+nSxNwCCKu6N9olv44HBKk81xyoO+h6UMUnH3j6MozRRXaecJS0lFAC0UlFABRRRQAUUUUCEPWjtS0UAFIaKDzQAh4rnNSadbiSG3GS4L49cV0TDis26hxcJOv3kP6VM4c0bF06jhLyOU0qS6N39pbIPpXcWkvmwg1mLYhJmCrwTkfjV2yXymcHhRzQ2klJCjGTbi9y5JIIlz37VXiUyyZNNJM8pParO4RJx16Clsr9R6SduiGzEBto6CmxL1Y9KYMu2BUrnaNo7daNlZbgnzNyeyIpR5jZNUxH512Wx8q8CrUpKp7mnW0W1MnqacVr6Ck3bXdirx/jVhLnI2yqJF9+tRMtMIx0puKluTGcobF2FCMm1feveF/wClMl2OriMFZMcxnqKrBypByQR3FTfayzKZV3N0DjqKwnTlFXWp1U6sJNKSsNX5XZT606qdzqtrEwV5AWCkl653Q9fub7XJrZsG35KnvjtSp4iLfJ1NK2ClGHtb6PY6ZiY7kf3X/nSqAl2CfuuNv49qbcqXhJH3hyKRGFzahgfm/ka3cehxKVrPsWjwcGkqKCbzV+bhxw1S1Sd0KSsw70UhpaZIlGaWkoAKWkpaACkozRQAUGjtUc88dvbyTzNtiiQu7YzgAZJ4pN21Y4xcnZatjzyKrzxbue9Q/wBsW3/PK9/8AZv/AIikOr2x/wCWV7/4Azf/ABFL2tP+ZfebvBYn/n3L7mQy3E8RGecHrVmS6R7VlCgZH61Um1C1cH9ze/8AgDN/8RVL7XCrE7LzHp9jm/8Aiazm6U/tL7y4YfFwuvZy+5m1Z6illDxbGS4Y4Vuyj1pzXk6StK0nnAjOT2PpWKdRgVc+Xef+Akv/AMTSJqsQJxHd49Pskv8A8TWUo073jJfeawp4rl5ZU5fczXaUzHIOc96ekIXk8msyPVrQcGO7Vv8Arzl/+JqePV4M4MV6fQiym/8Aia0jXglZtGcsDiJO6py+5mgEzT9uBiq9rqFveSyRxeaHjAZlkheMgHODhgM9D+VWq2U1JXTOapSnSlyzVn5jduKXFLRTMxMUUUUAFJmlpKADvS0UUAFFJS0DCikpRQAlFFFACUhpTRQBnxj/AIn13/16wf8AoUtW2WoLjTre5uPPfzlkKhC0U7x5AJIB2kZ6n86jOkW3/PW9/wDA2b/4qskpx0SXXr/wDrqSw9RqTk07JfCnskv5l2Ir+yS4hZWXORXmOv6EFldSvB6GvT30e3xjzLz/AMDZv/iqytR8PwSIdpuCf9q4kb+Zq7zas0vv/wCAZcuHT5ozlf8Awr/5I8z8NaDNHqq3LJuWE7gPWvVdOnW71O5ccH7NCCPT5pKx7LQ0gclzMB/szOv8jWgLD+zp/tdp5hDACRWdnPHuSfU1iqc4tOyt6+XodKrUXTnFSbk1bZLqn/M+xry24YdKzbmwVwcrW1E3mxK+OopHiB7V1JnnOPQ4a+0BJCSFwaj0zQvJnDlBn1xXaPag9qEtwvam2JKxt0UUVmbBRRRQAUUUUAFBoooEJQaKKAAUGk70tABRRRQAh5FRGEEHPNTUlAyGNOOeq8VBLKDOsSrlTwSPWnXUzLIsUPLucH2p8EBRSxHzVlbmujZvltLr1JUi8qIfrULsWP1qa4dvIjOMA5JqvGyb8swHpRCd05S6BUpNNQgtWTJ+7Gf4qbnLc0hGGY5zu/lTXOEz3P8AKqvpzdyLa8r2W41/3s2B07VcUYAFV7dONx71ODnvVpWVjJtydxSKawBp9JTAhZcVBMCBkdjVw1BKmVNAtjgvFZeK58tf4pBn3HWo/Dcudc3RDCcjj0rS8W6ZNeIHhyGXa34Hg0/w5pP2CMEjMh6k1yUqKU3I9HE4lypxh0SOvHzJVO3PkXTxH7r8j61cjGEFU75QqeYDgpyDXVLa5wQV5Jdx7vHb3BdnVQRyM1YinjuIw8Thl9RXmOp6xc3krushChivHeuh8EXLlLiJmJHDc+tcWHrznP3loz1cZhaFKlaDbkt+x2NFAoNdx5AdKKKM0AFFFFAAeaKM0UAJVHWz/wAU/qX/AF6y/wDoBq90qhrn/IA1L/r1l/8AQDU1f4cvRnRg/wDeaf8AiX5nPS21vaDUI/3f2aPVkLpcufLkzbR/6xjnA3EHJz8wHrUyD/iQ6X9vCCyN65mDf6sQky+VnP8ADnyuvtXV0Z7DrXfLGe6uZfj5W+/rcxV27I56zmuV8NmOwQy3G9/JQMu5IWlcRvhiOAgyAeuMVkQWUTeGrZnhnRrbV9sYlkyeb0Ak4JBPUZPvjg5Pcxq8uAqkn0Aq2NP2MRcSpGVAJGecVCx6g3Zby5vz0/EuNOb2RkmEd6WOwlkP7tDj1NaRmtrd/wB0nmEd26VBNdTTNjJwf4VFcPPN/CvvD2cI/E7+n+ZGtvaw/wDHw+8/3VqozyQSM1scIeiHsK1ItGuJV8yUrBH1LSHFV7r+z7eBo4neeY8BxworJqMnZu7Nk5xV0lFfiYdtK02vXrR5WT7PDlG7/NJWtBK0oYMhQqcc96y7bjXbpsc/Zoef+BS1ro2a1oxsvm/zFjJc1Rf4Y/8ApKHUUGkrU5BaKKTNAC0UUlABSmkooAO9LSheCx4Ud6jdsttPA9KylU15Vubwpac0thQwPI6etLSDpS1aVkZN3YUUhoNMQtNo6UtACUUtJQAnWo3jBHNS0hFAilJAD2pEXbwRxVxlqMx80wHJjaAOlPxmmquKfSAZto2Cn9qXFAyzRRRSKCkzQaKAFopKKBhRRSUCFozSUtACUd6WkoADRRmmu6xruYgCgNxJJFj256scCodRnksrJ52QhF+83oKz7rVIxOjY/do2QT3NM1LXEu9Nlt3xtdcZrjr1ailaK0PUwtCg4pzer/AvWaLLElwrbs/Mpq/vEp3AYzyayNAdF0mGFWzsGKuzSC3gck43nC/U1vzNxU7HFypTlC90n+RHqNznyYwQN3OPauO1rVrnTNeRmBa22jj+Zro7lg+pxMR8qYT6DFZPizTWuLdXRcvH1x6VnGnzU3B9dTZ1vZ1lUXTQ27PU7W6t42EgGcY5qz/rJcDof5V5jpUskOp26PIyoD93NeoWg3IH9aMPGSVpdNgxtSnOSlDd7lpV2qBTI+GI96euSo9QStOwICSRmVhkL6D1rWU7K5zwp3bXSwrqUIU/e6kelNppbnrknuaX2NWr9TOTTfurQDTWGRT6aaohlSWEOvI6oy/kcikhgC84qwRjJ/usD+B4pyr8orOGkpI2qawiwHSq14u+3dfUGrRqKVdyketamPoeTXSpa5t92ZA5yK63wnBJHHvKFQw/OrT+H7U3xuXjDOT3ratYBGo4AHoKxhRUHdG9TEOpGzLy9KKQGitTAKKKKACijFFMQUUlLQAtZ2usqeHtRycZtpAP++TV+sXxPIf7FuU6jyZCf++TWdbSEvQ68Ek8TTv/ADL8zQjupLiZUijITPLtxV2aA2ygs+D3JrGl1I7v3S4x0Jrq7uw+3aDC0mDeFQygHnntXPW3XNsa0LcslDcoi9eJNiMFB5z3qJVlup8orSSN3Pf8aLdLfT2xfRNJIo4UHjPvSXOrtJIhixAqZwsf9aqne3ux+ZnUtf8AeS+RfOmw2wDX1yqH/nmnLU1tVitgVsbVU/6aScmsUzs5JAJPqaNkj/eOK19lf43cx9vb4Fb8ye6u5bht08zP7E8D8Krbgx4FSCFe5zTwgHQVokkrIxbcndszrdT/AG5d8cfZof8A0KWtVRiqMI/4n13/ANesH/oUtPvNQW0njiVN7MMtg/dFZwaS17v8zqxMW6it/LH/ANJRepKjt5lubdJlBCt61LWqaexzNNOzDvSUtFAhKWkJx1pVBZgFGSegFAxKlSPABYHnovc1JFEqvtwHk/u9h9ahvL5IMxwtvkPDP/QVzyqOT5YHTGlGC55jLmcRcMRuHRR0WqSSNI+fWmKjzNlqsxqEGB1rWFNQXmY1KrqPyJF4FPpo5paszFPSkooFIANFFJQMWiiigApKWg0AIRSYpaWgQ3FLS0lACCnUlLQNFikoNHakULSUd6KACijvSUALRSdKWgBKWkooAWkoooAMVFPEs0ZQ9DUtIaBGbPYRSwtCUyCpx9cVx2m2N5JfW4uGzFvG4e1egdJFPoazIrUq7EDBUn9KiSTbv2NYNrlt3IdHg8l5Qv3TIxUegzxVy+ja4vIoU5KEH8aWxVYbcyvwoGSakscnfdSfec5HtnpUzso27IqndyT7srCLzLufIxztFTSR+bGCwyeh+oqG0LJezROc7mLqfbNacSBmkj7sNy/Uf/Wpp2in2E1eTXc5iXw9bteLchcMDnFdFbLsjAp2wHmp1URx+aw68IPU1pJpamUIuTsPRTGGOAXI3Kp7Y71Vl3u2VyWJ5JqTJyZXfaB95j/Kq1xLmJhjC9Ao6n61gk+Zrq/wOltKKfRfiOMyxqNpBb+92oics2SSSe5qnbI7qC457Cr8abB71rBaX6nPOTvy9CSkpRRVkBHjzSh6SKU/HqP1pMEdRgnmmS5C7l4YHIqTzN+fYbl91P8A9fIrJ+7UT7m8fepNdUJTSM06krUwIzGCelKBin4pKYhaKTtRQAtFIKKBi0d6KKQCUvvSUUxAaxteRp9Mu4lVmkaBwgUZLHaeBWyapXURdeOtKUeeLRpSqulUjUXRp/cZkU1qOXS8H/bjN/8AEVam8URwuPL+2uwGObWRR/6DVqOZ41CKmOOSeage2WRy7ck1j7KT+Jr7v+CdLxGHj8MJf+BL/wCRM19aW7lJeO6HOSfs0p/9lqzHf2igfurwn1NlN/8AE1eit1U8CraLgVajNKya+7/gmTqYeTu4S/8AAl/8iZw1S37Q3o/7cpv/AIil/tS27x3v/gDN/wDEVp0U7VO6+7/ghzYb+SX/AIEv/kTO/tW1/wCeV7/4Azf/ABFL/a1t/wA8r3/wBm/+IrQootU7r7v+CPmw38kv/Al/8iZtg32zWbqWOOdY2ghjDSwvHkhpCQNwGeo/OrTeHRLK7iUlyeuatRHEoJ7c1Zjn22bsuCXcY9RWb9xWZcpRrT5krKyXfZJeXYzbeGWyVrOUfdYsp9Qanpt/cmS5hB+8q8n1pQcjNaQVkc03eQtIzBAWY4AodgiFm4ArPWb7ZKd52wA/i1NySFGLkSW0kt/eFIxhB0JFacMqw7iOGU8v/dHtSxPC3+hWjrGSpLyAckegrNvh8ipCxKE4+tcd3Unba56FlSp33sOuNR3l47cbVY8nuahigLHc9OgthGAW5NWAM12xioqyPOnOU3eQgAAwBTguKUClApiAUd6BRQAUUUUgDFFFFAwooFFABRQaSgBaKTtS0AFFFFABRRS0DJjRSim96QxaKSigBaQmgniigAooooAKSl60UAFGaSigA70UdKKYhjdM+lQO22O4Ye/61Yb7pqpIpKuo7uo/lWczWnt/XYSVN0MNqv8AHy/+6Kt7QTBEOAXyfoBTY4RG7vklm9e1KHBuFH90H9ama91lU5e8vIoTRnKzJ95DmryS5RJo+q4YVHGNymm2q7JXiPC/eB7AVcrLV7EQu9Fv0LuFYmQcR/e/+tQW3ku/yoo/IUxDv/djhU5UH09ahuJgcBf9WvT/AGj61nG8tOprPlir9Pz8vRDLmbzB0wv8K/1+tQW8cskavIPvZwfpxTlRpXNXYlC22wfwSfoR/iK0aUbWMFJzvf8AqwyKMIpHof51IKYxKsMdDxUlOOjaCWqTEpaSjpVECNyKpuzpyvLRHp6qe1XDVacbHWTt0P0qZq6LhK0ieORZIw6HKmnVQRja3GM/uZD/AN8mr9OL6CkuqEpaKKZIneiijvTAKKM0ZoAKKKKBBR0oooAO1NK5FOpKYERizSiMDrUgooFYaFANOpcUUhhRRRQAUlKOtNagABbJwpPY4q1I+YIYNhj2HJz3JFVbW8FtclnAaMEFoz/FVjVZV+0SQjKRPtYj0OM159acvaWPToQh7K/UoOpa5Of4eKnHAqvE5dy34VY7V3x2R5stGyO8dRYTDHzEVh/aMMDGPrWuWUzCGQ4SUbcnsarLpgEzKD8g5JrF6TafU6I+9TTXQkWUM4mGU46+lRQ3CNKUXOF6VDPHJJPsiOI14zVq2tlixxk+tXGmlqZTrN3RcXkc0/FIoxTq0MxKDRRQAUZoooAKKKKQBSUtFACd6WkqN2YjCce9TKSjuXCDk7IkoppBKYJpwHAojLm2CUHHcKWiiqJCiijvQAUUUUDJ6KKO1IYlHWigUAFFHakzQAvej8KKTNABS5zSd6KYB1oozQDSAKKKKYhG6Gqp/wBeR/tr/KrZ6VUzm6X/AHz+grOe6Nafwy/ruW6qk7L5f9oVaNV5o8yRODyrg5/GnNXi7E03aauOgH8I60l2SFCwnIU5JH8Z/wAKYWJmeMHGCdx9BnpUjSBF+X7+OP8AZHrUX5l5fmaJODts/wAkRzXGxDgAlf8AWf4VHtZ5cHHHpVSFVLOgHBbJz/FmtiOMG0ibADIPLfH6H8v5U4+69fmTP31ptuv1GIgQYFOHG8Y6rn8jS4pOd64OM5X8xVz+FkQ+JDZR8mR1HNORgyAjpQDuQH1FQW5Ks0Z7Hih7pgtYtFiiiiqICopVDIRUpppFNAykqiWJoX5Iqa1kJQxufnT17io5Mxy7x07/AEpZQQyyr1HP1rO3RdDS/V7Pct0lVpNSs45EjaZVZ/uqTz+NWacZxlsxTpThZyVk9vP0DNHakzWTr9xe29vbix3maSYrtQqGcCN2wCysByo7flVt/wBeo6NJ1Z8qdt9/JXNYUVww8QagYJQJrp7lLl4FjSaIo+0xruDGAdWlVenvmrNrq15fW8Rtru7a5dWkaNpIVUIER87vJ5yJY+w6+1bvC4hK7h+Mf8zX6tD/AJ+R/wDJv/kTsOtHSuRtdZe50m61D7dqKLHKsUEZWEvOXRGTA8vgtvAA/H6NsdYnvzZ+Xf3I85ImkQyweYpkRXwq+V8wUMuTx16cUvq2IV37N6ea/wAw+rQ/5+R/8m/+ROwqlp2r2OqCX7HOsnlOUcDqD6/Q+tcr421G70bSTDbanczXlwpCxyCILt7k7UB9uCK8/wDAt3e/2orRO9ozTpBuTJzkgMDuJHTHauCVdqaiov8AD/M3jgoODk6iX/gX/wAie8UlVNLmkuNIsp5W3SSwRu7YxklQSatmuiMuZJo4atN05uD3Tt9wClpKBVEBS0UUgCkpaSgBT0pjZxTqSgCsbY3FzFGB8zMAKqTT3E+o3WJCU3kAn24rYtiI52nP/LGNpPyHH61k2ifIWPU1k0pVNei/M0u4UtHu/wAizbJsXrk1a7VFGuBUvatTMqXcAlTFQxrKIkiLYQdfer5GaaYwaYrEKoOgFTKgFKFxSuyohZj0oBIjnnS2hMj9BVaHVIZ5VRVYKR94+vpTJ7W61GCadVxbwjLEnp/9esyNZPNjtohwzDb9axc+qexvGnpZrc6TFFG1k+VhhhwR70VqmYtW0CiiigAooooASignFNLhSMDc56ConO2i3NIU+bV7CthVy/fovrSEbV3P949F9KUjyfmkIaU9B2WqzOWb1JrGMXN3f9enkbzmqa5Vv/W/mTB8981IDUUaY5apR1rotbQ5W23di0UUUAFFFFABRS0lICejtSHpRQUFJ2paTpTAM0tJmjFABRig0CgAo60UmaAF70UUlAhaKKTNACM20biMgcmqMZzNAcfey351auTi2kPcjaPqeKgKhbyIDoFxWb+I1Wkf69C5UM7bUwoy54UGpjwCT0HU1Xkb+MjkjAHoKqWvuomPurmZStt0E80Url3ViWb1qV2LkqO/LH+lMuCj6pLADtchn3erYyBU9vGCoPbr9azo6l4jR2XXchMRjKyAcDt7VfjuEjidnbEUi4Y+hHQ011yuKSJQF2EDHpWso3MozcbEw6A0xztG70OafTXGVIp2voTe2qBCChx2JqI/LMTjqM/l/wDWzS25ypB60TfLh/7pzUbxNNFPy/zJuopM02M5QD04p1WnczatoFIaU9KSgCGRcimCWNINrD5k6ehH/wBapm5Fc74okuLfTGmtz8ynkexrOtfkbjujbCuPtYqezOS1m6H29vLkDq7FgQeRz3r0LR5Hk0m1Mrln8sZY9TXlcIkur9IgNz/xegr1HSwY7aND2FY4XDxpRdt3udWY4+eKmrvRbI0aytbinn+wxW04t5nndUlKbthMMvOMjOK1ao6h/wAful/9fTf+iZK6ZuyTXdfmjnwn8R/4Zf8ApLMl/Cz/ANmWlrDeRQS2vyxSR25xjcj8qX5bfGrZz+FMXwk0dmkEd6gbynhlYwnDoyxpgAOCMLEnc9PwrpzTa7Vja6+157Lr8jn5mYNp4R0+2RkZ7l0WVZIcXMqGLbEsfUNycKeeODjoKgt/D8OiaaiyXwFpb+TNcO8ZLs8IUAhix2qdi/LzgZAIFdLmvO/iTrJmtZtDtXbf5e+XYeS3VV+nc/hWVXH1oxd5N3/Q1pRlUkoo4LxTqWqaz4ja63OkM7AQhTwir0z+tavhbUI7rxVp9uMBRcKUOMbsc5/GuZtbl7TT9szvm4JYKeqL3/M1HYPKdSW4twyiFg5deNnOAfzxXlUpe/zM9GtBOnyo+idF/wCQBp3/AF6xf+gir9cd4Q8UQ3dvDpdziO4iURwnoJAOAPrXYZrtpfw4+iOHGq2JqX/mf5i9KWk7UVRzC0UUUwFpKKXNIBDSUtIaACVtmm3Ld3Kxj8Tk/wAqr26bYwMU++OLS2j7u7SH+Q/rSxjCis6erb8/yLq/Zj2X56kgGBS0lLWpAlFFFIAPAyKYLcTNHubAYfOfTmnbWkcRrjcxwMnip1ltYB5Ay5U4dweGPfHtXLiZtWSOzCQTvzbFe+mRoVtLRtttydhPJPqayvKKFJl4MZ3A+9ad+YmljZSAqJtLDjPNVt3nsu0YjTp706MbonEStKxYgkaVdzEljySamzUKAAcDFSg8V0nKFAopryLEhdzhRQA9VZ2CqMsegpjAoSH4IODntUdncPIxuFbA6KB296hW4kleWM5cjkt6CuSVVufu7I74UIqn7yu2QzPJHcy3LSsYo04QD8yas2twDapKEZZXGTvHK0pdY4jEo6/eJ71GqmQ8dPWtIQ5leW35+phUq8rtHf8AL0Fyzt61KiBOTyaVVCjApwHrW5zh1p1GKWkAUUUUDCiiigAzQvzEhQSR1x2prMFUknAFYuu67d6Z9igsFyJvmeULkdawrVvZpWV2zpw9BVW7uyR0WaSlpK2MANGDRRTEJSmkpaBgaTpRRQIXNIaWkoGLSUUZoEFFFJ1oAhuDult4vUmRvoOB+ppJF/0uL3XP601CHvriTtHiMH6df1NVdMv11W+na3KiGAbPMJ4yK56lWNNKUurOyhQnXcox6L9UXd5kLf8APNTj6mkZgiPM/IUcD1PYU75WVQn3e2KqXTmSQRL0Q/ma06WW7Oe9nqtEMlUtqMc56lUcnHsM1oRps3J/dJFQFfljB6hNv5E1MhzIevIB5+lEdLfcE9bv5/eSYoAxS0VoZBSGloNAFZG2TlfWppBuUiqtySk8Tds4NWuq0o6XRUtUmRWxOCp61PUKjayn3I/r/Wps0o7BPe4GkoNIasgQ1marZ/bLV4j0YYrU7Ux1yKAOQ0rQE04k7cnPWumtk2rmnGHLZqRRimSSA8VRv/8Aj90v/r6b/wBEyVdqjf8A/H5pf/X03/omSs6m3zX5o68J/Ef+GX/pLLxpKCeeKQ+lWcxna7rEOh6RPfTMo2DCBj95j0FeB3X2qbxHJfXMkjoSZ2lz94en4nium+JGsvr13Ja2Mokt7B9rRqfvt3b+g+lcs872dpBZvuHljcx/2uw/DOK4a8+eVlsj1cLS9nDme7Kd7eNdOXYYYnn+gq1b+Zap9ikjWOQyBnY9cYGAfYdarWiyiT7f5SPFDIu4P0LHOBjv0rW0qzF8bqeZxJcEqsUe8BpJXbAPuByT+FVSjd3fQdWXRHU3GmXdxBDd20ShILcPKEYZjwpYE47sAW/Kur8KeMBehLDUXAuekcp6Sex9/wCdcVbX93o/n2oZVgvI1M/l7C7RnnG7nBx2rS8R2GmsF1LRZFNqURpUBx5bsThf97gnHbGa3oO0Ip7NbizCCnXm+qb/ADPVhTq4Dw343jjgFrrEhGwfu7jBO4ejY7+9as/j7R49wh+0TMBkbY8An05rZo8vld7HV0VT03UrbVbJLq1kDI3Ud1PofQ1cpCCiijPFABTWNKaEXzJkT+8wFDdlcEruyIbzLXqR9o41X8cZP86kUVWV/Pu5Zv77FvwzVoVFNWgi6jvJtC0ZooqyBaVI3lcIiksxwAKFRncKqksTgAd6vAJaRSLvAwP30o7f7K+9Z1J8q8zWlT53rsUr6S0sxFDIWb5iZJF/i/2R7ViC+lkvJJcbYjxjHQdqlv531G5UKu2NBtRR0Ap626om0D61MKXWe7HUr6qMNkV2Ju5Aqn5Ack+tX4owqhR0psUCxDCjrVhVGK1ilFWRjKTk+ZjscUtFFMAHWs3UQz3JiLfKozirsz7UJFZV2jzyLKpJBGKznujalaz7i2V75MxgyNjjBY9qsi6ZmdIsCAEAvjGaoi2UfvJOEXr70ecbsKiAqgPCis3SUpXNfbuETTUee5bouanAAGFFQW6lUANWQMVulZWORvmd2AFLRQaACnKo2mR22Rr1Y0mEjjM0rbYx+bH0FMZshJ7lcL/yxtx39zWU6nSJ0U6XWX9f8AkzuUOEKq33QaSkeUq4Ep3zv/AvRBS06croirFRkFFAorQzILqMy27oDjcCK5ZNZgsrY6bqUDSeWx8tweceldeRkVn3Ok2t1IJJIlZvUis6lNTVmaU6sqbvE1hQetFJWhIvFJQaKBBRmgUUAFFFFABQTRRQACiik6mgApC6xq0jfdQFj+FLVTUHP2MxjrKyxj8Tk/oKUtiofEJZqRYjf96TLN9TXnd7qF5ok1zbWzGOKRyTz94A16URtjwOwrhNX0pr2PzQCXQZwO9RUpKpHkZth8RLDzVRdzY8MasJNOkQsWYDKE9s1t2kPV2/CvPvC9y0d+bVFOwtls9vavS48eWAPSssLTnThyz3X5GuZV6Vau50lZPX5vcjc/Nj0/r/AJNPjzlT9V/r/Ws3WdTTS0jcjc0jBQvr7/59aw7zxXcWmoNFG0UsWAecAg1NWuoS5bN210Lw+DdeHO5KN9NdNjtD0oqjpWoLqemxXSgAtkMM5wQcGr1dSfMk0cEouMnF9BKCaDSVRJBcIGAJGQGBqXaU+XIOO47jsaSQZBFRxuApDMAFIGT6Hp+v9KiT5XzPYuCc1yrfoLI4QAEgfOCB9eP8KmzxXPeMtTtLKyisS5NxPgjaeUH94ntUnhbU3v8ATmSUs0kJwGbqy9j/ADrCjX55tW06HXicJ7KlGV9eqN38KQ0uaO1dRwCUnSg0HmgBDSdKXvSGmAZqhfn/AEzS/wDr6b/0TJV6qF//AMfml/8AXy3/AKJkrOpt81+aOnCfxH/hl/6Sy8a5jxr4gTRdJ8pJhHdXeY42P8I7t/T8a6OaaOCF5ZWCRxqWZj0AHU14H4xvbjxTqv2+3l3w7vKSP/nkuf8AJNTWqckdN2LDUvaTu9kZdrBdaZcT3s6g4BWM5++x749uvNVJZHu5UjRfmY4A9SasXF28Z8kMXSNPLVm7+p/Gm2Sz2irqEbR/MzRKGGSOOWA9s9fWuKKZ6kmi1bxGW5ttKmlihijmKPKo4yTgsT3xWlfSW0GsK+nRND5BXO5lbMi9WG3IwcdATRo2n202myu8a3F1NMIIYhJtdCVYhuw5IA56896m8P6VNfa1FB5ZBjYvIpQEgLyRtPU9sd67YJR+RxSbl8zZs5LPUNMvIrwvJqKBUtsYBKjKqq8cnLDOT0HHSoNZkS2SDSIGVo7XJmZekkx+8fcDhR9Per0L2ltpKayIlgvELWkKLkh5AAfOGf7qnkDjdiubPPI5+tGHV4p+Rvjn+/qLzf5jwz9zkAYA9KP3sjhY1eRyQFVepPpQiNI6oilmY4CqMkn0q9pDpHqCpIwj3cBm4wa3mm1ZOxxp21tcu6VqWoeGrvzfJaPB2zQMcpIMA9fUAiu01LxdDcaVby6ZLKsr3Uccn7hvlBJyucYzgdAcmuS1Cxi1LUv7Mt0hku5J0PmBQTyigDPp94/8B96567nksNb8pZUee0v1SNyoHyqT1x2z1rJUZNcvP0vttrbv879tTvdCg+WTg72T+JdUn/Ke2HWbQNtKXmT0H2KbJ/8AHKP7Xtv+eV7/AOAM3/xFcHb6p9v+IFpdNFazTCFEaJfnKlmALI3sMvkds1seELwXGpPG0YN1HbkXjohQiXKkh8k72yWweMYYV0Rw03T5+bont5ev4nJOOHjo4y8/eX/yJ18E0dzbxzxNujkUOjYxkEZBpJLhbbLnIJVgmAT8xBxVTRT/AMSDTv8Ar1i/9BFWpBkGueP7yF2c9aKo1pQjtFtfiQ2q7Vq2OKghXaMVOKswQtKqlmAAJJ4AFAyTjGTVviyUgMPtGPmbtEP8aic+VGtOnzvyHootVZQ4WQD97L2jHoPesa9uzdsIYQVhQ/Kvr7n3ou7szYhiBEYP4k+poiiEa5/iqacHfmkOrV05IbBFEIlGOtShRj3pVXvTxitjFIaBTsUUtIApDS0lAyOUZWs6CVreVoHUbGJIY9q1GGageFSeRmk4qSswUpRd4leTFyuxBiPufWnxQJEMKKmVMcAVIq4pqy0E7t3Yiin5rJ8SXlxp/h+6urWTy5k2bWwDjLgHg8dDXPSa/ex6VdXxe/jNvceS0UzwRsVKK4bmLg4YfLzRFSnJxgr2tfVLe6W7XY7aeDcqCrymkm2le97pRb2T/mR3GacxSCLzpshT91R1c+1eV6R8QLy9vGicX0jyMFtoomgG5yeAzGLHTnpXSweK5bfTZr+5SS71IXv2SOG5dIxCQq7txAC8NvGcDpSlSrOSgobvl3W+vn5PXbTc2jglGLnzp210v3S6pd9jq2LK6TXKb52/1FsOij1NNd2hlbLCW9f7zdoh6Vjtr/2OwW5kgd7uWJprmSJ1lECDqdwOCMEHjJ/KteGIRL6k8knvWf1eS1mtP8v0/MwqVeXRb/1+I6CEIHJJLbSxJ6k1YZVUtjPCgj8aiX77D1RqkJySfWJTUyk1KxMIpwuxgoo7UVsc4UUZopAS4pKXNJQUFFJRTELRRQKACkFLSdqAFpKWk7UAFFGaKBCHoapXH7y/to+yBpD/ACH9auGqkeH1G4fsgCD8Bz+tJ7pFLSLZPMcRO3+yf5Vmw24MecdavXbYt398D9adCgEQFNbsUvhSMqHSYIrozpGFcnnFbKDCgelIEA5p3QU2SlY5XxnA7xWkysFCOVJJxjI/+sa4cAtMWTcwTnnggdq9R1W2+1WjwsoYEdCMiuRsfCypKxuJHZSfuDgVnKld3RtGu4x5X0N/wpIx0xFOMZJ46V0YNZ2nW6QRBEXaq8ACtAGrtbQyvfUUikNKaO1ADSMiud8WCZNBuZIWKugDZH1rojVLUIVntZYmXKspUj1FKUVKLi+pdKo6c4zW6dzx/UXmnlE887XDsAruw7j+n+Fdn4Dklf7Q7fdO1RxgcZyf1rHh0G4urlrEwGOFHyZWPb29673TNPhsoEhgTaij86xo0XB3Z04nFKorI1e1FIOlFdBxC5pp6UZpDQAUUnPSgcdaBAaz9Q/4/NM/6+W/9EyVfNZmrTR28unzzOEjjuHZmPYCGSoq/D81+aOnCfxH/hl/6Szn/iPeSw6LFZxt5aXbMrvnHQAgfTJ/SvG7aO40q0uPNUCaYhV56KOp/Gt3WPE//CTareRSO0cbufs4J+UADA49a5d7mR49kj7yvyhs56cVx1ZKcro78PTdOFmSQQvqN7HAhClzjceij1NaFi0VzqNml9IqWkRVGYIcBAeeBySefzqtBHNZW28SKGuoypXHzBc/pnB/Kugs9Nhn8PL5CW819IzsFWQ+aoXB+73GN3GMnII6HGlKNveZNV3fKijfG0fVZ308OtqZCYQwwyjsK7zQ9IntNOu4bvBa8Rd6Bz5m/ccAkE8cElv4SCCOx4nSZEtr6G4lj8yNG+ZR1I6HHv6e9dvqEhezgktZ4Zrq9haKGRFMQWLcTJIwIAVmPynBIOGx1ArapfSJlTtrJnMalfm8+zxhSsVvCsSJ79WP4nP6elUwMnArSjstPmwv9qKk7DpJCwQHjgt+fOOw9agXTpxqi6fKBHM7rHzgjnoc9CMHOe4ohNQoXXb9DqqUva49xls5W/Ev+G5dPtNRFxqSJIibdqSZxycE8A8gZIHcj6VTv5pdS1G4uDGC0jFjhQv5gYGf61va3Ypb6XZ6TYKJZhLekl5BGQsc7KHZ88napGPf2Fcps86KH58sYi7YHJIHAHuct+ArpjRl7S8pJr3unZvz8n/Vx1aNJ0eaCaaa3ae6fkuxtaLqKaOlxPHMY78qI7YhFdVLH5jnnB2g4rBtpIWUic8SXeCT2GfmP5Uy4uJm04IiNJdSAMgjGNrA5PHrgEfnWfY3BvGkRhiVcKh3dQPvE1ySwU5Rc27JNr8X+GhvOdpJeUf/AElHSafcG11uC5W5aELGfLkjBOWGSB9DwPxrv/A+q299NqxZljuri8ebySeQvA/HFeXJMxuLbbkLD8v1b/61W9Nv7rSNSElq481JGlJIyADxj6c1xUJOM0uhhiaSnBvqe06J/wAgHTv+vWL/ANBFXCAaxPCurWuo6RBBC3762iSOSNuoIGNw9RxW6RXo0v4cfRHm41NYmon/ADP8xoAFOFGKTpVnKLuYEMjMjA5DKeRVOed3Pl9ADng5z7mrTVEIscmk4pu7HzNKyI4ogvJHNWAvOTSBcmpMcVRKQUUUUigFKKbXJaDp/wBsitbVtO0tpGsVm3mzDmPlQu/kbi43HtgqetS+a/u276v/AID/AK8zqw+HhUhKc5NWaWivvfzXY6+iuOglNjLFeQ21irzLLFA1vb+Urq00MaMwycjLFuvQjpXQWd+xivftrxK1lKUlkUFUI2K+7BJx8rDuehrSNObUm+jtp8v80LE0FS5eR3TV9rdWu77GhRXKN4lvvMlV4UtwJnC/6PJM4QRRyKGRSDkiQ5PRcAd810llO91YW1xIgR5YldkDbgpIBIz3+tbVcPOlFSl1OdqxPxSGlpDXOIwfGP8AyK15/wAAyP8Aga15Fqmq3XiLU7lmcQxzSiQxA8D5VX88KK9a8Yk/8Izdjt8n/oa14/runSaRq0kJyFzlD6iuZVZ068pR3tH82/0PZg19QpX/AJ6n/pNMZdzR2s0b6c5ikjcNuXjDAYBH5132jW95q2gyxwGzuXkvEvWmuYyd8jx5kU+2X4+hz1rzeys5tRuFjjQ7ScAdzXtfhKxFhZ3FqBxFKq/j5UdaYevVgoJ9HfbXZ9fm/vFUrR5KnJvy/wDt0SO10K/tNLsrBUtJoEZ5bhDK0YclywQfK3yDP44A6ZFdRSCiumrWlVd5eb+88hu4KQJR7qw/SnjkL7wD+dRrzOg9c/yp6fdi94WH61x1PiOqj8H9eQlLSDpRW5yhS0lLQBJRRR060ihKKKKYgoozSUALRUE93DbDMrgH+6OT+Vc9qHi+yt7n7MbqK3c8fOckfXsPxqlFsai3sdRRWbptyDEyyyD72VZm65rSpNWdhNWYhozQTSUhACNwz93qfpVSwG6FpD1kYt+dSXfmfZ3EWNxGPwNPgTy4EX0FFtbjv7tiG758tPVs/wCfzqygwoqpIHa7+YgqPugf1q4OlCVtwk7vQWkpaSmSRyLkVX8jLdKtnmjFMTQ1FCjGKkFJilpDAUUUUAIaY6hhzT6SgCqLcbs4xU6LgU6jvTFYUUZpM0UhgaQ0c0maBBmkpabTAOled/EzxDBawx6aoDypieUA9FPygfkxP5V22r6pBo2l3F/cECOFCcf3j2FeCXV/F4kku57hhHeSElnPddwP9K5MXU5Y8q62PTyulzVbvaz/ABTKUsNpaSfabd96TjKL/cHf/D86q2Nmb2SQbxHHGruzkdAMn/6341avII1cf6REi4woIbgD8KW3iaO1eJLuPy5SGcYbnHTtXNB32v8Acz0J0ZLdr/wKP+ZpaOsOo65HJqc0KRYyTL8qcDAHGOPYYzjHU1Pdaf8A8TNVsVEkNy262ER3EqTgLjqD2wf161FcwWUcUEdqwPy7mmdjucn/AGRkLg5GOvv0rf8ACNqYL37WInkkZZEt5IsfJIFJLDcRkgdsjOeCCK6/aKKvr9zORYWcna6/8Cj/AJmzB4bso9Jga88hWMLESxOdwXJLtIh5VkwR6E4XrWVqN405WGNCjXWxfLj58qBceXFwev8AEQR1APer9xeqtsIprTyIn2z3CKw2bPvKFBPHmON5XjjGOBmsm1kLXEk+o2sjxXO0NMqMzxKHXJQtwTgFRn1rN1bRctb+jOijhOatCErNNq/vR2v6l5L3RLu1Wxm0YW8nlBY7u1kLTPLgDJUnBBPYdM1Tiu5bO5sZZo2M9jNtbzBxhSG2FcDJB3Zyc4x0xUV3b6dZkTXESpcJdQvsC+bbSp5MbEE7gdxYgsMgfMRkVS1Gcvp9v5sUMSXFw9w0UQZEQHIX5TwFOMjHau2nldSdGP7x2dvs91fvq/I6a2NwtPEyqRo3abd+Z9zY1G7ttU1O8uZrTNtcymZcJ80a5YjHODksdx989aq6gbe6t/OZGDM7OGdcrNkt8xOeCMY49DWMJWOnxh3jZY3/AHccgz1J2/h160SSAwxxO4ESxfulbnjJzsH8BYjP4itY5RWUlJVmmm1t+O/oL+0MK6bh7HR2+0+l/wDMutYXU1q9zGj+WvyvKEJUHB2/N2PHHoAaxZtLbyt8d5EkkbjBzgc8kZHQjGR1713+m6/badohtJ/M+xyzb5QjrlsopdcZB5KgZ6AMcZ6HlpbOW682+WONI5JvLKjiMk5IQe4A49MCvFjVq3cXJrfoddSOGfLOFJPRfb8l5lK3KRWsUNxeQGVDuJ80HdnkZz14Iq1axs93lpEYO4aYRnJ8vjAA9Cf6VSubGynCSHIeBwuQDlwOisMcEdMjgjtkVsaZE0FjJdRRRvKZFZpD90DIATHGRxnB9B6Gs3GUHzcz+4SdCat7Jf8Agxf5ltL9rS9hu7AvBKiIDyCCwGD07HGfxNd9p/jiC7jVP7OvZbkLl0t4g4Hv1zivNP3gn2kZTGST71LbXE9hNHcW8rJNGchgcEf/AFq1w86jik5W+Rz454OVWUlRvq/tPuepf8JN/wBQTWv/AAE/+vWhp2pJqUMki29xAY5PLaO4TYwOAemfRhWf4b8Swa3D5cm2K9QfPHnhvdav2H/H5qn/AF9L/wCiY67EqkZK8rp+XkeRVeHnTmoUuVpXvzN9UuvqXaTBJp1FdB5gvWkNLRSABzQaKD0oGITisHQtJa30GJI9SvAL21R3IKAgsg6MFzwOBknArdYZU1l6Rqlrb6JZW13DfRzQwojYspSOFAIPy1jUqyhJO9rr/I9HBwlOjNRTbvHb0kJqVnDPqNlaMCiC0kUeXwVKvCVI+hAx9Ksw6XDFFJHI73CzFmmEwVhKxwMsMY4CgADAx2qv9rTUNct5IYJ1hit5QWkgeMZLR45YD0P5Vqr0qsPUmoy10v8AoiMddOnFqzS2/wC3pGOnhqxguZbmyL2U0jElrdUXClUUqAVIx8in1zk55rUtreO0tYbaFdsUKLGgznCgYFS55xSV0zrTmrSdzhuFB6UUVkBma1p39qaXNZeb5Xmbfn27sYYHpkelcp4o8NXWqwrI8kEksfI8uIoT7ZLGu8K5phjFZulCTu9/V/11OiGLrQpqlG3Km3qk9XZPdeS+44nw/wCFZ9PRZFkgWQ9pIC5H5MK6zTrWW1Fw00qSSTS+YSiFAPlVcYJP931qyse05qQU1Tinf9WKWKqSi4u1n2il59EOoNFJmqMAT/j4i+v9KfEflg/3JBUaf8fMP++BT0BCW2f78grCpudVD4fn+qEHSlFNB4FOFbHKwooFFMZIaKM0ZoGHWiop5fJheTaW2jOBXGeI/F7acoj+UyMpfZv2Kq+rHr+HemlpcuEHN2Rv+IL6OKw8iO58u4kmiVQjEN/rFyPlIPTPQiuHvvE8WmS3Ud1c3MsiNtjW2uJ1JIHzFt0hwM8fUGsmbX7fXbew1GOPyJ9Puw0q5yNrKcEe2Vrlr2znu9duoN5CwyMskj9euBn3PFLnoxbdRX26ebuepS9pToQVOTV3LZ26ROqi1mYeIYp0uzNb/YZJduXI3gNgHcSc5HrjgcVx7fbdcmYmQKoYEnH3mP4/rXRaZos1lpUdwMTs13HtER5Kbcsp7j3rorPwxp9jI5i3yxNn/WAAnPIyRgHHNaScHTl7FbtdNNlfptv2Lqzv7N1Xd2/9ukS+H7m6Twlp0s2RIoAy3dQx2k/gK9Gt5xLGCDzivPZ7d7Kxt7ZWcxpGFQN3CjArrdGuvPhRv7yDj0pVre1utuh5VTW9jbpO9IDQetSYAee1L2pPrS96AG7RuzTqB70UAHtRRRQAc0DrRRQAtJSig0DCk6mlpD1oEFBopKADvRRSZoAKKSj3oAKbQaDTEBpKD1rn/GXiFPDegS3IYfaJBsgX/aPf8KTaSuyoxcnZHB/EXxVbXOrrop+e0iyJmB/jP+FcK9iljFMkUocsclv9nsP61JLBaamyair7WDfvozyWb/69UrmRvMfLE5OTXmyk5y5me1CCpwUUSWRhkuTJdENHEpfy2/5aHsv59fbNX7ewuBpv2zYvkbtuQwz9dvXGeM9M1BHZ/aJ4LSzj86Xby0YJMjHk/gOn4E1rTanePpcGkyKI47ZiCuCCTnofoc/15rqoxa1Rz1ZJ7lOJNzDsK9QS7sYPD0Yt8f2fGjMWWQiRogfuOD0ZnZl47FiOM15vEmAK6aXTrhrFtJtQm+2X7TfMzBQZT8qx59VBwB/eLVrVina5nTk43sUtTvHkKpIwd5SLi4KMMMzDIXIP3VXAAPKksK7b+03u/DMMWmX00dkJ4lgZpfmsZN6kRzesYxuVv9nmuWj1CC01FxqNr9psL+CIuMkyKu0AMjsAdykEehwRz1qa50aPSdL1G7i1e1uLK5hEdv5coDzfOjYZOq4CnOehFY14p02vI6cC2sRB+a/MZqOo65qVzJp+u3UksVg7STKwHykcfeVeMkhQemWFY5ne5uJpdsYY/OQUXG3PIxjHA9MUt2ptLZLMg+e5EkwYcqcfKvIyOCScEg5HpUOz5ERQC7n72M7VHU/p+ldFklocqbctSyQIwWZflC/dPHB659Mnj6A1U3p5IXy1DDjcM5P1/DjtSSl97xuGBVyCCMc+/vUfWrjFbinN3sKfmXBrqdMubCy8KTvLMtzdeU1raWXk52yScvIR0PAAHcYH48tU9vH5hwRkd8fX/Gs61KM7N9CqFRxdl1Czto7m4PmN5cgAD4Jy+Ocd+T/Or80k677SSJYlilY7F656c4/H6ZNTAf2dHbz20MUjB8vN1AJGQPqMf49Kp5JJJJJPJJ7muCtPmlbojvpQ5VfuIZFLY3Lu6Yzz+VIelVBbOL3zeNuc5qS9uPItywBLnhQO5rE1uJb3rpfEwOUkhIZZFOCDXpvhDxDHqT3UdyyR38sgk2DowCKvy/8AfOce9ecCSO0sbSxe0SOeJXnvpXPzkttKgfQY4PfNMErxMksbMkituRl4KmuyjNS5V2f6M5Z0rxqPvH/26J7rmg1yvhbxamqqtlekR3wHyt0Ew9R7+1dUeldh4zVnZi5pPpR0o70hBR1o70UAJSFc06g0ANAxThRxRQAtJ3oozQMWko7UUABFJjinUmaQCCilpOtACmmml60jcCgDlPGXiKbw4LS5jabHzkLEUBLApg5ZWwOW6D0rkpviHrcCW8xlZoD+8VAYg2WHr5Xb6flV74qsWtLTngbzj8VrjJ7WN7GF5WJ8uAbAF5zjrUxlhkm6yu031lquVWWjtv8Aqe7h5ONCHKlt2i/tPuux6NZeNZY4Li4kge5s4TFJLPJIqSRpIAANqoA3zbvStvxT4nh8M2CztB9omdsLCH25GeSTg4HI7Vx/hTw+2taJLuvBFazNFHcQ+VuMgQBhhs8ck9jXVa34Rh16xkFxP5eoOix/aY94UKHDY8vfgjjuevNehhPqVqbqvS75t9tN/wAb26W6nn4xRVba2kdtN4o0NN1n7fNCjQrGLmA3EGJdzFAQDuGBtPzLxz354rVrH0zQ10+6Nw0iSSLGYkZYtjEEgkucnex2rk8dPetgVz1/Z8/7rb+u5yO3Qf1oopKxAbIu+J19VIrxLxZYPqHjCWGfzBD9nEqBO+Bjr2Gc5Ne2scDPYVxk7w3sruIUIZWRWZctsJyR9DgUpwlODjF2Zvh5KMtdjjU8OpBpGpPZ27RefEIlt/N8xs5U9foeuByTWsbOyuZ4rmSC4S5Kq0+yFyJHCgEkY9q6RLYhlR1bzHXIDdW9KngQDUGhVSTkEYP3SByD7cmsoUHGKTd36f8ABPQVeDSjKL0bejtvbyfYwgiM1qsMUoVHLYMLqFXawzkjHXA/GttgtlJHIgDAhgCDnI7fjzS2qtJY3EJLFkOVXb0pJWWXToSQAYztHy9fXvW8E43T6mdacZ8vKrJK29+rfZdylqpMscUpRFQKPuDA9/50nhi7QzzwoxPlsOoxg9CPzH61Z1KWO4tNsQwm4jnscZ6fj+lYGlyeR4k4wFuYtwH+0OD/AOg/rVtXhfscVVe96no6HIyKf1qrBJuQVZB4qTnHCik7UtABS96SlpAFHvRR2oAKKKKAFopKM0AFHaikoAWkoooAKQ0dqM0AJQaO1JQAhNJSk8U0nmmIGZVUsxAUDJJ7CvDvFfiC18V67PaM5WGM+XayZ4yO/wCJruviN4oj0XTksUO6e6++AeRH3/OvJWsraGX7bBIHilGYx3U9/wAq48RU+wj0cHSsudleaL7Fbpbo4OxiWYfxNTbXySs80212C7Y4z3Y/xfh1+uKg5aZUDgZONzdBnuavi3Sa7MVpGWRRhSo5fA5b8cE+1Z04XZ01JWRp6PJdaHJFqD2jmOdGWMsSobpnB9OxHcEjvSzGCacSQeb8ygyCQgkP3we479utaAvLTUbJIH8q2mLJHl9zAfKAZM4wBhVUDtljzVO2tZZLhbeJfMldwihDnc2cDB712wWt3uckn0WxqaMi2iS6tKoK2pAhUjh5z90fRcFj9AO9a2l6D4l1XR3+y6cWglZnW4dhGz7uG5JG8HA68ccVNoenW+teKNP0RCJNPstzykdJmHLt9CQFH+yBXZ6z4h8Qme7bQbW1TTNO3pNcTYwzIAWUDPA5wPXHWsqlR3st/M1pwVrvbyPMp7drRv7M1iCW0miJKSFPmQEHgj+JScc54AOM5qHy7G1YyRXn2iZSCiiHCnAB+Yv1HLDp2yeDXd+N3i8Q+BtL8RrEEnDCOQDsDkEfQMOPrXmqAlgB1wf5VV+ejJvTR3Lw65MVTW+qt95LGGnnaR+5JOBj64H+e1Ty3DwgCORo2zx5bEdOp/oPpQmIofQnofT/AD1/KqbvvYtjA6AegrZLmfkczfIvMfJKZTk9epPcn1NMxSCl96u1jK99xVAbjoa07ONRNHEY2cucbV6k9h+uPxNU7aPJ3Htzz/n/ADitUXstlDbPbxOUYOfMfosmMZHuAQR+JrmxFTlWh1Yend6kFxdz3CrFMm0xs2RnJLE8kn14A/CoO1NHrS15p6IE1W0/Ure11+O/uoTLa2WWQdmmx8v1AOCfpTdQuTb2x2AtK/yoo6k0XcsE+n6ZpUSFYLANc3jHGXmPB5/AAfSgTM64ll2s87Mbi9l8+YntuOQP1rVUg46ZxwDWWb+UyAiNCZxgsV5++eP5da14pQ1gbhrUyeacQv5nOQybvlA5PzAdf4vau+jhcRyxnGKs79V2f9W3NHCilNSk78q6d3F9/wDIt2+nahJG18tmxt05Eiv+8AH8QGcj16V1emfEKK2sRFqys9wjKiSJgeaD3Pof51g6Rq1uZUSTesJ53i9ZW28fwjHZgTz0z6GuP1e6a6nZrJE+zKzMFZQ5Az7jggEV0vAY2Dso367nnxhhqr99tW/ur/5I+hbS8t7+2S4tpFkiboR/I+hqbrxXnvwseRrO+82QuymMcYC/xHjHHQAfhXoRNTFTStNWaODFUo0arhGV1ZP70n+oD3ozRS8UznAUGjNFAB2ooo96Bhmik5o70ALS+1JRQAUlLRSAKKTmloAKY3Sn000Aea/FDAtrXccD5x/6DXm11rcy2qxBEKhQvvivavFfh5NdhjDsymIkgdjnH+FcBrPg6LS9Olu2COqD7uDyfzrkq05czdvy7I9ajVpOlCPOk0ra37t9E+51Hw91W1tvBrXl1MsMQmIy3qFUY9+ldzYX9vqNnHd2sm+CQZVsYzXjPhLUIbnQNS02WNE2L5karng55HJ967L4eXphS50iV8mM+bF/unr+tGHqtvkZOPoxf7yDvsvuSR3tLTQacK6zzB2aCeKQmkJ4oGNY8VyVugt7lxj/AFUpAX6H/CurY8VzV6PL1S5XoH2yD8Rj+lXHsXSfvE8+FmhLZ2rggk5yM880kwZb6Fjn+75jL978B9adNJ9og27GwiDLnoO2BUNy6LDA4YbgBtVT0Hf8c/zqYnYyeNIxezA4AdSVwSePQGkhQ/Y7iM8BScZP5cfhTbqXFzFMpZUb5S5HbFQwzyyXreUhdpCNu/2707Nq4rpOwkgtmsFYI5l9QMAHpye9clfyfZL61ucf6ifBwf4WIzXZ2Mvlwyo7BUDYPy/Nz256DiuQ8QwZWZUyQw+U/SrWqlExrbKR6BZv+7AzV9TXO6BdNcaZbSn7zRqT9cc/rW/G2azTurnK1Z2JxRSDpSimAtGaTvS0gCl7UlFABS0neloAKDQKCcUAJRRQKACk6+ooNHbmgAoopKAENIaU0nWgBCarX15Bp1lNd3D7YoVLMas968w+Ivia1e9TQGc+VjM7KejdgfpUVJ8kbmlGk6k1E4nWr2PxhdXF2ZPKulYkBjxs7fkKyborGqLGSEUbVHt6/jU66X9iM6ecrO/3T6J/9eqsUKy3qQzSiOPPzOewHJx7+leetXc9mySsiS3SAWTu215pG2qO8ajkt9T0H41taSEsZAt5EyW93GFMy5LLGWG4rjqSAV/E1RtbWW5mmuLezYwRHzHRQSqLnoT6VuanfRX1ojq7FmlPlwsf+PdABwAAF+YnsOiiuynGysck5XdyrcRLIy3SPBtmLHy4xgxHP3SPpjB7/nWtYL/Zuly6ieJ5SYLTHBBx87/gDtHu3tWdptjJfXcdtGQpc8s3RFAyWPsACfwrufCekWvibXZLm4T/AIk+mxqkUT8BgM43fX5mb3Nazkox1IhFyehV+Gcht/FkLNG/lzQvEr7TtzwRz/wGtCaXXdJ1TWNFsdHF2L67dmleJnWRHU4H90Y3A5/Ot7/hZulx34tLawnezDrEs6EKmScDC9h/h0q14t8cT+F9QWzGmrOJIhJHIZio6kEEY7EetcspTlP4dzojGEYfFsYPjGBPD3w80zQGkV7h3DPj2yzH6biBXFLoLR6WL8XVs7GJZXt9x8xY2bap5GCMnnB4q291d+KtWm1PVpJBa26qbh4V/wBTGWwAgPuc4781t+KZ7GDTIbOKSO6kY7kka3MR2E5Lxsp24Y9QejEkAcgVUcoU3BbtamuEUZ4iE3smrfecTcOcAf3hkH1Gev4n+Qqtj3I56itALahFLpGJDyWkmPPp8ijIFSx4IzDE7D1htgB/30+TXUppKxxOm273KMMKu+PmKduQCfxPAqaaKRET5EEDHCuNrZPfDDrjvU0xLkCWREAIyZZ/NbHptHQVVitWN3+6BnO4LFsUjzHPTANS5NlqCS1NGxikjYTRIWaM/KAMkv2A/L/x33qKe9kvUgBTy1jTATOeTySfcmrctyNNme3hifeYSnnFuAx4Yjt6rx9azVHpXnVp88jtpQ5YjsUhOBUoXA5rN1S4aCHZEC0sp2IB15rJM0ehLpOqQWmrXGq3EbOtlGwteMqZyOCfpyfwFYs5az09bdiTPOfNl9iei1taq9nJJp9lbKRZaVb7pmIwZZWOWz/wLj6CsaO+kuBdRmNGFw6l3I+YbcnCnt1/QVdOPM7mdSXKtTV061fVtUtl8uIPKgjSPGFABPfPBAGc9Oua17UxaVrG8zyJawhfIYQEO4RldR833GO1DuxwcZGM1PothC1m0sb7jMfs7MqlfLi+Xe3Q4J3Kv4sRmtC7ltbvxAul3YW1haVZJ3lmVtmY1DJv7FSrbSO/HQnPbDF1UoxT0V1sv73l5vXfU2nH4315I/8AthzEmjRx6VFdx3duZJ3KRIRtZWXB+ZQ3HTng56jOaw9JsJ/t8i3GYVjOXJGQfw7jgVJ4jgkW+V7RjJZrIRFInXrwanu5pUtYrYtunkxvI6k1v/amKlO/Pp6L/I4pRUYW6s9M+HrRO2pyRzrL5nls2wYAPzjGPwH513Aryf4fx3Fpr0UKyArtkEu08Nxx+uK9XB4pU5uonJ93+Zw4+PLWX+GP/pKHcUUUVZyC0UUUhiAUtFFABRR9aSgBaKKO1ABRSUe1AC0UUhpAFI3pS5pDQBE6ZFc14p0032jzxDrtyMV1BHFV7mISIQfSqEfPej3P9k+JInkXMTNtkQ9x3Fdq1xFonjeG5tZVa34DhWzhG7Vka54aln8YQ2EACvdSgQljgbj0yfrXc+DfBVrayadqV+pnacS2N0kq8W9wrfKw/IfnXnSXJUPXhNVKNu526nKg06k2NEzRt95DtNLmu48rbRi00mlNNzVCGE1ga2Nl5by4++pQ/hyP61vHmsnXI82aSAcxyA/geP61cdyouzRDC3mWioTlcH5Seh7cVnbQxPXAq/p8yrvDFl+XouB+tVnQw5A9enWiOjaO2WqTHSJvsPNDZIYbhzwOg9qsTAC5tZZFEZYAFY89O386ridfsMkZOCTgALyfx9OKdKHNjBKAoXO35eufUmiz6gOkidtSkKAiRRvA6kke1ZHiCBYz8oIwASCc4JHStZbYwXEUjydX+c5wRVfxAjPaIHVdwU7mQfKec04v3kiKivBlTwhc7rBounlSMuD6dR/OuxiPFeeeFJvK1S7gJ4ZVkH4cH+YrvoG461mla6OOWruXQeKdUamn5piFFO7U2lFIYopaSjrQAveik60dKAF+tBpBQRQAdqKO9JQAtIaWm96AFpKT86SgQEUhpc0hFAGP4l1yLw9oc9/IRvA2xKf4mPSvCb+1i1a4XVVuCUkbM4c/MG/+vXf/ABSglvrq3tDKVQRb4x23ZIOfyFeWlGt0W0DfvM5kwf4uw/CuLESblY9XBwShzdWWrqUwztIvzL0IPQe1XdO0tdSRI0kgWdyHeViSF3cJHgA8k5J9PwNS6fb2t3ZrbzW7NfRTFypfAlXb8sYHqT+lXrKO/wDDcsklt5MwGIpxjcFkwT3GQRyAfZhWdLV6HRUslqGmulnnTbofZmFxvmm53bQrKU74zkgEf3uaha3O4y+Xs3HcYwpATJ4Az1rf1j7HfwxXlvZCZ5pB5RjkzLOTkuGAPBB9s+nFaUSTeKtU/sbT7aSC0tgnlLPH80aqCSTg/wC3+PHrXR7blktPUx9jeLu/QyYYmsdFO3Aub9erMF8uAH1P99h+S+9df4PR5Ph34jitgTc/PkL1I2D+m6uU8QafLpusRW15eCeVoA0jQvuKADAU5A7DH0Na3gXxI3h66kWWGaW1lUCVYhkxDPynHcjPPfn2qptzhePqEYKMrMiPlT6TpHhvSHWea8kW5vJEH/LQ8Kn0UZJrV+K0qHWNPt1O54rYlvXluP5V0D+LPBekLJf6bDC95KDhYLcozHuCSBgZ6/yrkdGF94n8TzazKYjNDIkixMhZWYnCJgcheMbug49amDbfO1ZK/wB7FJJLkTu3+SE0qwu9OsY2iZorhwZlY58qbCEtBKh6MF3EcYIPuDWFqdzb3eoSNZQGCzz+6hyflX8ScEnn8faum8TanPFp0MK314LiZn8xJyyzJDgfu5em4Bt2D3Ga4/GBznJ5OOw/z+pod5QlN9mdGHssRTiu6/MkWbYpzIyD1RFJP4np+dRtNDIQDHJMc8edKWH5D/GoJiSQOg9P6Vc0nTpdRvI4IiA8jbRkdu5/AV0StGPNI4YuUpcsSBrmSJigjjiI7LGP5nNS21zOjNdsWlWNTgMSxBI6ge3r7VpeIxYSaoun2EG1bRFgadRxuH97H6ntg1D9ujtraazgEm7aI1ZiMKp5fH1P6VzTxEXTulqzphQkqlm9EQXt2byZXCGONECRoTnaB/UnJ/GoBxQKCOlcJ1ji/wAuT2qrpd/aw/2pq06F5Iojb2SlcqXYYZvqAePrUGozNiK1jP724cIMc4B71Prj2Q1VEsMHTdLgWJSOk0nXcfcnn8BRboDfUxbiQ2NlBYn55CRJMD/E3938BWvotl/bGqSB1SJp2LEKMCNepZf90Dkdx05rHhuTcQyQtEmZJxI0+3LjAxge3JPvXWrbjTtIeW2wLi6QZ2NnbCDy698MwA9Rgg9a66cbLzOWcrvyN2wuLbSUv9RltU8n5I7dEnwXUKNodeQQysDkjggjiua1VvtNnNcK0j6lM5dWO0KykA8qOjc+uPatdLq11u58o28NvajF1OqDbg7FEjJjODuUnGOc+wNcLrck8Gr24s2kKDiJj3+Y8n6jFYSdkuju/u1PQaT5+q5I/wDtgmgyXCrcGckQJ1Vv71WrJZ5rs6isqxiKTAzyeQeR9P8ACl1CV3EdsgXzpCN20dTWppOnu80VpM6vDb7mkKdNueefc4H5VrFWVjzpSu+Y63wRbNazO0i4eSJZFHdVJbj9Aa9AU5FcloiN/aE8jDBaKNsDsCz/AOFdVFXVRXLG3m/zODGy5qyl/dj/AOkonB4pRTR0pRzWxyi/1paTpSBlYkA5IOD7UgHUlFHegANFFFAC0UlLSGFJR2opgFFFJSAXFIKMjFJmgBcUxlzTgwYZDAj1BzRQBg6xo8V4Fl24mjO5HHUEciukth9rScxjY2pWouAF6faIz82Pc4/SqzqGBqXTpjBbPtGXsphcIPVDw4/z61nWV0mbYeVpNPqTXD+eIrr/AJ7IGb/e6H9aizVuaFI2uoE+6rCeL3R//r1Topu8QrRtK/cDTTTqaTWpiMPrVLUozLYToOpQkfUcirjVFJyCPWqQHP2B3uMBGV0OQ/T1/pSzMHZyJA/OcqMCqsYKGSEZDRsVGPQcVotbPbaa6lDvLqXJHbngfpTdkzujrEr29rLNBLJ0RBn6n0q/cLB/Z4kjBC7lZR2B7io7XUoEMYkhI2KVyp4IPtSreQf2YLcsVbB3cdRngfrUy5m9ily2EueLQMSOF4755H+FZ9zdS3UPlStkZJ/TFRmR2UKWJUdBnpWVqM92LyKK3kWNeCWYZ3EngVrCFjOUrmbp8n2PxTAD0ctEfxHH64r0iBvlFeZa5m2uo7kDDIyyfiCDXotnKJIkZTwwyPpUT0mcbWnoainipgarRnipwakkeKcKaDTqChcUUUUgCg0UUAFFFJQAAZ60cUUUABpKUmkNABSGignigQ0801jTvxqC4uIrW3luJ3CRRqWZj2Apgeb/ABWuEgm08KR5zo4IB5C5HP8AOvMtHS1k16Nb9ZHtgzF1jbDHg9DXR+MLufVnbU5FZSZMqpIOE6AYznp7etZItrb7TZ3Nor5EG6fecguc9PbFefiZXdj18JBxiFpaSyzFWkO6TkE+3I5ruNB1m0v1XStVRE81lijGz5ewJLAjDAqpz3xjvWJo4dYJbZ9hhkgMu7ALDbzjPYetR2luXvHV04DjZuUEMT6Z4Nc0JXlZ/wBaHZKNo3RaY/2Vqu2ylha7jlAFzBuOG9VOeceuOcV2Pg7U/wCyLPVdbvbmKa6EW5oi5M33urZ45JUY69K4ifUYrgRxwmaFkbckhcABh04UAD61es721axeK4s5JNU37fNdtyOuckuD0IGQPXI9OfQnT5o2OWEuVl+SF9UjnupmtpGmIma4iPWRsEoxPRVyMjqPxrLEFwFmjIQJt+d5JNqnvkc/NnsOanjuY2mcxzedHMSssIGGYcFmUHADYXAPccV2uj6Po7eE5fEOqq8kaJi3SRiGEIOFHXqx5/EelYKpKj7sldGvJGpqtDzoW7iB585KSIrgn+8MfnXZ+G7rSrbQpLuQS22oWBO6a3OWlRyAAyHhhyQc47Vy0dncGz+3YFvZzNIqPIN2Oc4yR1I4z3wRVUPcRR8NgMMHB69+fxx+ldbSqK1zm+B8zRbu5mnupJpVZdxyEZidoJ+VeSTj/CqpnQFSBvU8nnHyj3x3NLKi7opPOLpt8xwEK4bpjnqeOtV4mMckLrgEA9QCODnv9aVT+HL0NsL/ALzC/dfmOcqx3LuAPQN1q/pOrz6XM0tuUWYqUV2XdgEdP5H61nkMBlgepGfXmgKWYAdSa2qQVSHLI4oTcJ3iakAGmWq3M7shufk+R95kVj8zemcgj8O1R3tz9rvHmCbE4VF/uqOAPypyXduumPaxfNKZNrsRwqjnA+p6/SqwryJWvoerHYUnJpGcAEngAUE1VmH2y8tdMSRY2upAjOx4Rc8k1IxbSa0/sTVdUkO+9kItbGPumerj9B+NZNzKtmbW0KiXymDyr/fbqQfbHFa2qyWqa1dSWK40yxAhtkPQvjlvxOTWPFKl3BHH9nAmWVpHnJ5cHAA+g5/OtKUeZmVSXKjZ8P6ZFqVxJ5rLAhYySMvHkoOS2D1XHHqDj1q/dX039pyGVGiiBAijU5MKgYXZ2Py49mqhaRrGQwufJmAyp2nH0J6DPvW9otlb63KbeZSBEm8xocMvIHynB+TJyc/dwT0ruso77HMm5baP8zA1smHTXntJF859ylIRhVTAJYd8HP3T0qhpk7HSYnnUMiKSrN1B3EfyAp3idZtC13yVkLhI1ZTkEMrfMPwKkdOKiuXe4W0tbdFUzAEIOmTXB8Uk2+r/AFPTqaRmkrNwj/7YOsI5nuDf7lCqSoJGTnHUfT19SK7jQrLbAkO3Es2JJf8AZX+Ff6/iK57SbRpDAk4Uw26kvsHDAHp9Se/0r0DRbVwjTy8ySHcTXbRjd3fQ8PFVOWPIupfsI9uq3A7C3i/9CkraXisq241m59fs8P8A6FJWoDW1P4fm/wA2Y4r+Iv8ADH/0lE6mnAtk5A29veowcVIzA+WR024/HJzTe6MktGLVaEsl5co33W2yKfqMEfpUzttRmHYVBZyedGsxIJKAZ9f85pN6pDivdbLVJRniiqIF6UtJ0ooAWkpaSgYUUUgoAWkPrR2oNADT3rhfFF9aWUWrN5Vob93JiknjRiirDGeNw5OTgD3z2Ndy1eW/EfVXtrG9sISfNuLsFsddgij/AK4pc1OFSE6seZJ7fJndgJTj7Rwdny9NPtRMAXt5o99JNFHDdW+FldZYUkQqScDJB2jj+Gusv/E2jy6dBc6GttYaknmyENCqtGFifjOMNkkAep9cV5pp2uqoWK+jMiDjOSCPr6/jXovhSx0y8vIvNjdLe9Zo/OdiIypilDLxz1I5Gcd6xpV8PCVO9O6TV9F5deuuuve2x6nNVnf33tLq/wCVnZm7uRrNl5d351ndO4BUJ5WAjEKpHzF8rnJOMBu9bNs62+owu/8AqpMxSf7rcf4H8KhbRre1vvtPk/vSS6nzGZCSMFlGcZPqBnk+tPnj8yNlPcV1Vp06iXKuh8+/dlfqjSTMawGTrbSNZzf7jfdP+fSqroY5XRuqnFWYmF6Y9541CAxOfSZOh/MfrUUrGaOKdh8zrh/Z14P8q5KbtKzOmqk43XQhJphp5phOK6EchGajfpUhqNqYjmr0eTqMpHGSHH5f/WrXgvluY2QXAUsPuSDIz9azdZUJdRSf3lK/l/8ArqmjbRmrcFNHXSm0h5UrkA5+lUr3UrayTM0gB/ujkmmajexx28kXniKV1O09xWQ0mkaQd8rm8uz1yd3P9K2S7ib7GoNWthapO7bAwztPWsW98SszYt0Ax0YjmsfUb9r+7eYoEz0Udqp7qTklsTqzVine+huFmYu+NwLenevQPC9z9p0K0Yn5lTYT7qcf0FeY6dNsvkz9xjtb6Hiu58FSlIbu0Y8xTZH0Yf4isam6Zk1udxEasrVOI1aQ8VJmiYdKcKYKcKBju1HtSUtIYUnvS96KAE70UUUAHbmgUUZoASijvRQAhpCK5+x1a8vFtFN1DFNcoGVG02YLnbuIDlwpx696nS9upLxrRNSszMCRj7DIFJHUBvMwSM8gHNJKo1fke1/l33OueEjCThKpG6/xf/ImxXC+NtWMt1Bolt8zMQ0voT/Cp/Qn8K0tS8QyadbTyvf2rNGWQD7DIFkcdVDl9pIOeM9j6V5rPezPqH21/M+1B/MbflTk+vHSnKNXld4P8P8AMqnhoX5nUjZf4v8A5Em1XQUi3eSZJXUfvJGP3j347Csuzja1vExjEaqWVhnK59O9b95r8iacVER3upyBCRj1O7cf5VkRSRysAwAl24BznePrXnYnl0UYtfd/mejhKLV3UqK//b3/AMiWNWhZbsNGA24hmEYwBvGcY7DmqunrO2tJAql4IZI3X1ZwRtQfVsD2ANQ3E7Wlq10UkLBgu0sOR+VdBpfh3VLnSW1G1CbLGZpwrSgNJIMM2OPmC9Occg/WuaneyuvyOydODelRf+Tf5G34i0W60u3VPKsV3oZA9nAdsi7grIVPO4Fhz3B9q5BXkWGSJJHiDfu3Gcbf9lvb0Nd5Hruo629ks0y2ckkWY0tIsSBGkVVHMigB2YHqOFB74rlvECiGYXDTpK24x+c5T9+ABneUdgSMkdT0GTngdtGtK/I4u/pf8jOWA54c8Jx69bba9Uiro2iXuqtPDBEwYAq7lgoU4JC8kcsRiul1XUDrraJ4WsovIiQqtzHGdwGDzyCcjqep7Vz0GsS6dAYEkH2dmEirJ2YYAIPqvGD9R3NamhrFoKjWbySS3kkT/RHUIQdoJORuB5AxjHOR7ZucXN3s9dtH/kYwozirXXn70f8AM6f4g6rbW8VtoFigTy0UzoOgUH5E/rXC3mnX0C5mt/LAIO5jhiCM9PTv+Ip5u4LrUJNQvBBOpkE8kJkC+blh8g9sHA+hqrcLPcaNc6jdrILSQyx24ikGEbHCAbs7QPQEYXHfjXDYWfMot8t5W2Vtr7vr5eaNKjpunF8qd1fr3a6Ndh9pZHUbqDT4Ay3LHBeRvlI6ggdvp6morjTbmyuEtLyGSKfcQY8ZfB9B3rXs9Nj+zvcSQLbXT2wkshuO9pgWA288MSY247YrO8ax3MWu3UUrCRAH2vEAoIGR0H+0Gz7gitoUHUjFOVuZb9Nltrrv5a6EKmqeKSitpfqNQOC0M0LLLjMkJGC3H319G9R3/lJZxWtvdxPdTqYHPylOSw69Ox7VRe2mi1OOO6ZkkaNmjcPv2tlTgN3A/rWlcvaSWluIwkk5Jd5APu9sD+ZrHFS9nFJP4l+tv0OalSTlzPoVpnEtxJMqLGHYsEUYApmajuHKIu08k80sZLKCa8067iuyohdjhVGSajhtIz4ck1QSqNSvpjDafN/q4lHzEj36U6G0/tjWLXSFkCLKd8z5+5GOWP5VWQRS6rcvbjFjBIYrQdyB3Prxms6kmoNrojqwVONXE06ctpSSfzdiD7RZ29xawTeXPFCS0sZLYkcj1UYxnFWNJ0xAUkuGX7Kg8yVo2GRGDg9cDPQD1OKpaZBNd363drYSzpbOJp4oELYTdnOPTtXT2Wm6pJZpdfZJGka6W+nbyS+IgcqNg7cuxHptNfSf2ZSp2tVa1W9vu9fw9dzilXhLemv/ACb/AOSMvMAWWVwnzdHz91fb36VWuLuOCEyx3Cq/IUjJGfwBq20UuoXczrDIsT3TSvFbwFjGp6AZ6+w68c1gTXkcsstn8rqHwjlQrHnPNaSy6Fre03dui0+7p18jNVYuV/ZrT/F/8kSauRqFil7JLvnRFQkZwVBIHUD0q3YxOqxXYRdnksgZuqkN1Hvz+tMu7aKLTVtMM4DgfK2Cc5Poa3NMtfOdS0axRQqGK43AnsMcck8n/wCtXzcVKLtZ7vt2PUr+xnB1IySvBfzaWkl2faxs6NprgxQMMFsSyj37D8B/Ou5t4gigAYrD0yxvQpl86APIdx3Qlv8A2cVrJDqQHF1a/wDgM3/xyvTi3FW5X+H+Z8vOnTnJydWP/k3/AMiSQj/idXX/AF7w/wDoUlaSc1n2lrPHdTXFxNHI8iIgEcZQAKWPdj/erRWqpp8uq7/mTipRdT3HdWir69IpPez3CeaO3t5JpW2xxqXY4zgAZNUo9Xtv3ihLo4bn/Q5eDgf7P0p2snGh3/8A17Sf+gmvNp9Vuo/EF9a29xdrFG8hZ3vZRuKkAZweMAY+nXpWtHDVcRNxptaJP7/n5f1ut6EMOqPtK17ttaNdEu68z0z+1rYjHl3n/gFN/wDE1hP4pTT7lbZbOVoA2WmZHTap5PBXPFchHqmpf2LJcm6vFLzAKDeynClwuMk8dx+tLLqN4ukagsk1ywjm8vZ9qkkGPk45PP3j1FaYjL8XThKcbPldvy8/P/gnZg6OAqVY0pcy5mlutLu3b+ux632pRXB6TqN5qrTfvzcEXUkhCXckCY8qM7VbAOAS3GOOCeuT2djOl1p9tcRBxHLErqHOWAIBGc96vEYWVDSX9f16HjNWLWKSij3rlAM0UdTSUALQaSl7UAJRn3opM0AI3SvNvF3hu41e8vLq3bLxS7fLPQjyozXpJ5zVC40mxuZGlms7eSRurtEpJ/HFROLla3Q6MPUjDmU7pNW0V+qfddj52v8ATJIZWR42jlXqpFev+FbU6ZoGiIk/2+z8/wAyW1YlHhkMUmeOo4ydw4OOlad/4UsLsYWBYuc5iGz+VPttGTTLiK5skSOaL7sgUZH41zyoSb2X3/8AAOyni6FO/vNuzWy6pr+Z9zqLa4EFsXgzd6d/FG/34f8AD6jg1K9ukkH2i1k82Dv/AHk9mH9azbadbiYSWzLZ6gOqdI5fp6E+nQ1NE7NdlrX/AELUV4e3bhJfYZ/kapXizmaU1/X4ElsX+z3MCHEkTC6hPuMBv/ZTV6ULK0xjH7udVu4x6Z4cfniq1ncwXWpQ/ILW+Rtsts5wJFPDbc98HOPap4v9HWSKTrYzHPvC/DfkeamT1uioR92z22Kh6Uw04nimmutHEMIqI1KelMIpiMLxIVh08XLAkQuCceh4rgL3xFPOSIh5afrXp9/bJeWctu/3ZFKmvGLqJ7e4lhkGGjYqfqK1g9DSDbfKNvLya6lMkjfNgAewqsM7Cc801n3HFMXJB7ChsuxMqsyFvSliA5DUgmBXOABjBxVdrgKzd6hs0SsWlIR+OorrPCl3jWcZ4uIP/HlOf8a4Jpyx64+ldB4blkt7yzuJAUjWcBS3G4NwceoqZtcpLV9j2KFsiriHIqhb52jJ56VfTpQciJ19adTF5pw7UFDhS4pKKQxaTOaKKAEpaSl70AJRxSKyuvyMGA4JBzRQAUd6KSmIxNAgleC1u5l2rHZxQ24yDwUVnb8Tgf8AAPeoo7K8iuoUNqzR213cXYlV1/ehxJhAM5z+8xzgfL1rS0U40LTv+vWP/wBBFW3cRoznt0HqadPEuFJXXRL8Lfq/vOzExc8XOK/mf5nCanpU0t6D5L+fFdS3IeSYmBgclQEB4b7uTgZ+bk5rmvEtw02tySSLMk7xqZhPIJGZ8k8HJ+UDaB+PTNdpc3QknaRN3Xkt3pus6JDrNhHMuI5toKvjJx/dNcscydWb5rbW6979/wCuh6lbBVKVFaWTKfg2K1h0bUryKNri9iTy/J25+QjJ59GIA+gPrXnzaTqdtZz6o1sZIHmZQoBDg4LMwAH3Vxz6V9BeEPD8ekaKsbR4lmAaUHqPQfhVDXfC8cj7GkMWnzgxzlePLjJ3Ptx3bAB9q4KlW82+hpCnaCj2Pn+1kfU4rmR8vsQwxRLyXdhy2PQDJ/KvTPDHiazg0uTTZwYbicMJIWVt2SvzbDjADAd8YJPWuLj0lE1CWHThNBbzTY818kxRZ4BI745IrX8PaYt9q8aR3T+bZjzN6LufcDgBV/iGSP1rrVKPKc/PLm0Oq1nwpHFptlrMNwrXVzLEJ43IMeXIwqjHRcAYOeBmuJ1Lc1zGpeUJDPcbGWLcTukZgce/Hb0rovEfieeXR4tKu7W6truJdyxyKFSIg5yoxk9MDJOASK59OIoj5hkJ53k53cGphiJUE01fb9V+p6FOCnCNv7//AKSitcxNILd542PyEOqDPzHHH6EUPcXh0W30yZyyxv8AKCPuEjnDenbHrVmWby9oAyW4AAySfzqnLeM7hVRj/DwMHPcfln8q3p4mpKMYqGzX53XyV35aeREMNFe/KaV1Le/ZrsQNFLBMZIjJGWdPKdVIUkY/ixwc/wAhXTDTLfUNU0yxi0+68+3Cm8iikV/MxgZVcgZbgde9Zi2l2dK/tIW7SWsnynGCODtwQTkckc+pplvcahot1BqMEF0XlTcBMgCvGeATz37emARV141K2qTTjo9Y72t+nUVOUIwjGTi1/wBv92+i8z1W3W20zwtHZ6pZPFqenr5iRqeJCcA4b+IkYUjpyBivLr7Urm81NoL20SOdiEcSg7gB0XJ5GAK3dX8VXmuxW/8AaJLxW4+ZYzsd2CfKcEnO0sSTkZGPSqlzFC8dm0sqS3e8LDdAHbL83JZurAcD25FedGXs4NNbo0Sc8XFvdyT082mYyzWmmybbuRzbbz+6IwytjBB9OeDUEIQR/uwAvYDsKxNemN1fmaVuXBYAdOtN0zUjBiKU5iP3W9KurdzbZx02krG+2DwRmo5JVgiaRjhVGadkHBHIPSm22nHX9UGneZ5VvGhmuZf7iCsrmhFcWUunaNZ34bOpaq5CR90g7H2Jx+VVlkiTUoLOMsY4VO3B6uRyT7daab5pIpL+bjywYLVM8BRxkfhUFgsMl/FLDvOE+ct3bHOPapnG9KbfZ/kdWXytjqCX88fzRueELaSC8+0b3SGGMtcbTjzEPHl/8CJC/jXbanfPpNrNbx3Nul5eFTLGCxdXdiDkkAAAbcEYI2jqK5W9jGnafBpo4mcCe5+pHyJ+AOfq3tWgmj3mt6Pc6nLch5LWPbgryyoAfmb1wQB649q9GUV8T2PIhJ/CtzM8WWbeEJIT5zSGePhWG1sZwQwBP1/KuditLGWddSgwFIJZD/C1Ldz2/iAyQSyt9oiOImds7gO1Qyp9ktktIhlsc47mue7nO76Gj9yNo9S5ZN9qlkkkB2KVYZHB4PFdnotjJJMYJV+4+9z7kAgfhzWBpUatLGNmBCqkIeRkdvfk5Nd74ettoui4y/nAE/8AAFP9a1pJud30f/toYmSVDlXWH/uQ2bePaoGOBVgDjFCrinqMmu08EcgqTHFIBTj0pDM/Wj/xJL/P/PvJ/wCgmvLtP0fUta1y+XT4oVEkjeZIYhgBj93Ga9N11j/Y17/17v8A+gmszw1dw6TosLFMTSszMPfcetJYqphnN03q0vzZ6FGClRgnspS/KJBceAdTOki3We2O1VwNpOcEEfyrhLiO90+8n067ghjYtvOyMDH3T8voPlFeh2HxCbUNYu7OKJfJt2CeZz8zdxj65Fcv4ouLfVfEFzd27g+Tbqsi4+64fH9axeYYmVCrCTuuVv52PTwFOmsfh+X+eH/pSO9tNJt2jnN5HBdPPN577oRsDbQvCnOOFHf1rXVcDA6VWgOUFWQeK6Z1JT+JnzydxaOlGKKgAoo7UlAw5FHejNFAhDQaM0tAxOopuKdikFAhNoNIUB4Ip9FAFOezSUHsexqM3I2Lb6orPGOI7lB88f19RV+mtGrjBAINJpS3HGTjsVrwJJbxxat++tmH7jUYeSo7bsdR+oqYXk9ksUep+ZLamPYmoxPvZl/28D5l6epHvVVYbnT2drPbLA/MtpKfkf6f3T7ipbOSONZJrCXFoGBvLC5HMQJ5YAcj/eHBrCcOXf8Ar/I6oT5tv6/zRcNN7U6m10HKMPFMNSGmH3piIHry7x1YfZtZE6jCXC7v+BDg/wBK9SauT8cWQutF80D5oHDZ9jwaqLsOO6PKWyCQO3eoWkPTNXLpolj2xc4zk1mzJLFCk8kTrE5wrEcH6etRKoktTqVN30HNLjjNLJDcJam5aJxF2YjG76etXoIGQL9jt4pXK5NzOwZV/wB1f8c0y4S6MTqRPcSmQF5WU89gB7VyTxKvZM66WEnNXjFv0RV+2w2ygW0AebHzSzAEA/7K9PxOfwq1piX+o3pMST3NwBuO0FiAO/sKvWXheCYywTXvmXgid1ithvRCozh3PGe2Bnk10ujzGAWUsUiwacsMUojjcRiSXAznu7ZDdc9e1S6ltdwdFyXK9Du9IuRd2MM6niSNX/MVrxniuY8MSxGzeGGVZI4ZpIkZTwVDZX9DXSxniuyDvE8qatJonX61IKjXmpBVCQ6iijrSGBopKWgQUhmhgjmnnUtFDE0rAHG7GAF/EkUpFU7t4CrW10/l292jQNJjiMkZVj7ZA/Os61/ZvlN8OourFS2MfR/F76/ez2M0MS4VjbSQxbNhUZ2j1HBGDW/FKJY0kX7rgEfjWHstvC9kJ5Z7GWeFDHbx20u8sxGN7cfKACeOck1qaWWbTbfeNrbBkHtxWOGTV7O6N8ZK/LdWev3dC3SUp+tIcV1nCZ+jsF0GwJOALWMk/wDARUDXUV7EtxbyLLbyRnYynIz3/Gsi4nnudC0rRbQkXN3aoZGX/lnCFG5j+HH51iaRfJoGvvpF55trY3H/AB7+Y4ZUlDcnI/hIwM+v0rz6sv3cYrsj2lT/ANoq1H/M1+JKdQgiWRLiZUkiJDhjg/X8a6XQH3aPHczqQgYuFPU88Cn3miabdXSyT2cbSpgAkA81cdQJI4EH7uLk+hb/AOtXBClyNtPc9fEYz29OMLWsdlYXMV1bh4z1HI9DVh40kQq65B4rkrK7lt5xJGMDoV7EV1VtcJcxh0P1HpV2scqZ534y8OXun2dxJpAAgnJM8e3OcqVz+Rrz6O3utO0+DUYVEMUUg2SAAOecBxz83IIIxx+NfRUkazRlHUFSOQa8x8V+EG0+6+3WcKy2j5EsLDIQEglkHZuK0pVXT06Ezp8+vU4HUL+81e4ae6EdzOeA7nAjGeg/2T09ulQiyOn2ySrMjxBsSQxnJjODg+4xuJ+nvVme2Fs5PysrkNHlM4Oc444VsdR+NN+0XUNxDPs2MCdu4YUjHPAA4retyz1Xl+ZthE+RK6uufql9ld2UryMTfZzGqSsW/dqejkjAH61GumyQPDbho5ZRKMMD8hzkYz75P4CpI5fs19JKIgEYZjiHSItnJH4dsdDXQ6fazTtZTLFHcrLceQkQl3NnacnAXI67s/7JzThialGFuifZ/P8AN/1YudFTULtW5X1XeVuvextaF4Y1i6M1rcRraQ28ZiYb8hmeUtIVx6D7o9QK6jxN4b/tO0kNvZ2W1LTy0kkdleDaThkwCOM9Pl6dSDW5pumx6Xp8NnGpIT77E8sx6ms/xPqElrBa6VZjN9fuFx/djB+Yn+VYrG1VU9ot7t/eY+zXLY8d1SyFvrV1E9zJujKtGJAWZuMhc9iBgfhVWW4aK2aM7ZBLwytnIA5JQ/w5JINb+u3CS+KtSMLgRu4G9NufujPJ6AVgyoILkOs8TSkgRhDuEYBzk9uuK3sp0G2u/wCoJtYyFn/J+SOd1e2iubmGKyDtLgAIf4h/iO/51hl0WUqhDAdR611ksos5lvoSkrqxDxsCDgjHP1BPIrA1TTkYfbrLJhY/ih/ut7+/erqwvqcEJ20J7LUjbx7WO+PHyn0rWe3vNKgt4ll/f6zF5ku08xx54B/nXK20m1kkZdy5G9PWugnvt9vJfthZbgeXGn/PNB1xXI1rY6U9LkF09rOJoDIyiGMJbIo+82Rkn2xk1qaTprizmn4CwqpJPckgAfXkn6A1n2emebfyfZi88a4w+3rxzj2zmuiNvdwWTRyZSHcHKkgc4wOOvStqkEsPP0f5GmWybzGhp9uP5orySyXNy9xO26WRy7E9yabdX8ml2yRXRmhhveSASNy+uPStlvD8y6Q2opcQSxKNzIjchR1auQ1aFvEG2+S6eZ1+RwxyQBwK2xFRcvLE4KMHzXZFFpUen3T3IcPHjMbZ65qSxk3yzzFW3kbVPbB6/n0/OopysaQ2gY7VwpI5+tdBp8AnuwyL+5twFjBHU/w/4ms4RtoE5rWb2Rs6FYAXcEbAFgrSO3qxK/yziuy01cXF8B/z3H/otKytNtfJvbZT94wyk/8AfSVs6cMXOoDH/LwP/RSVulyyt5/+2mMpOdJyf8n/ALkNECpFXHNNUVKBXQeYKBgUnFOpMUAZWuDOjX2O0D/+gmueaSC3ufIlZUK52q3GQT2rr7mBLiCSGQbo5FKsM4yCMGsW68PWc5O9Zm/3p5G/maynByb/AK7+R2Uq1JU1GbaabeiT3S812MGwtbXTpp5Wkj/fPu6ior3ToIdL1W+iTBuHViT3G9a24/C9grcQsD/syP8A41f/ALAsZIDFMszxt1RrmQg/hurCWHmqcoJLVNb9/kduFxuHpYqlXlKTUJJ/CujT/mNiMYXFTDpxUaDipBXYeQhc0UU0mkA7NZl74g0+xnMEkpaZfvJHglfrzTdc1ePRdKkumwZPuxKf4mPT8O9eXxabf31u+qeYC7vuVW+8/q30zWkVBK83ZFRhKb91Hr1neQX9stxbtujbgHoQfQ1NXnfhbXnsZEWQ7reUhZk/ut0z9RXohGDjNTNWlZbPYcotK4UUdqBUkBRQaMUDCilpM0AJS44oo7UAFV7iyhuGDsCJFBAdSVYDuMjsfSrFFAIU009ad2ppzQA00xhk08000xETj2rM1a3Fxp1xEQSGQjA61rMOKrSrwaBrRnk93YaXo91NbTPPPcpnc6xBhB7kH5cj05/CuR1C2u11O4S7maSSNyhkc/ewe3tXeeNL5LWaRBbq+3DbguWZSSGJOfXjn2rkbhG1BzeXBdWdQzFIiV4AGc56nA/OuCLcpPRu3ZX/ACPbWHnNJQt31aX52KdiJRcxIIyMOCSDj/61a7i6j028hSORrCU+WGTOyR153ZPXp2469KesputHit/IIt7KUO062+M8fdZh1J68+lWnsERRb3dtHm4dHIgAj+VsFQMZ2g9QT6104fEqhJtwk72fwvZO9/8Ag/8ADrsp4GpUoqClG6b3nFbpd35Fe0kRIUkQymf7ThnLspP3iFGMEcquee/aptJS7jsC29WKk2qRbGc53hhjaDkZJP4Nj0rotIso/wB/Yw2Fnc71ZJ/N+Zg2RuZXKY4LY4zjA56Etg1Gz0vWLyGS3s5kaOIAQSnYjou3hgpycEnGOPWlUxlPkcZ02tb2at38ut7fJfKqmDnOu3Tknq9pL/MxrB59PimSOW73eVK4UPJCVcSMu7AA3bQo4PHUdeK9hTmuEW60/UtUsxc2dhPNKH2FMkRgktgqVHzFskkkk5ruLc7kU+ortnjaeKgnTVrN/jr/AFoeFmGGnh6ijPrrun5dPQtLUq+lRLUgrE4kOpRSUopDCij8KSgBapahZx31q0EgJVvQ4q5SHmmI5W18LJDeiV5C6g5CsB17EnvXURoEXA6UuMUtABTTxSmmt0NAHl96NT0W503XLOVxi2iAPXaNg4+lbvh+w0vxc2teINYaFpIYHEdlF8nkKAMMOwH+Jp9zbyv4dsWjAb/RY9ykcMNo4rlINKupL4RaY8iwXR8qUDI2A8sp9q45U70ot9lqevLEWxVSH95/mbvw1TVVtrye9mDWbSn7MrDJLHqQeuOOld2IVXHr1NQWtrbwpDBAoSG3UIijpx3q+6kqSAOa4XudyRCisDwOe1SW93JZzCUMSCeV7EU056556VFIScK3QCkM622uo7qESRng9R6VM0SzoY5AChHOfSuOtL6WxnDA5Toy+tWvGfimPQvCcs8bYup12RKeoJ70vIZ5j4oubGHxBd2+n6g1tZ+ZiVVydz9NwHsKwdUgt4L7Ftei5BQb2UkqpBxwT1B6/jirPh5YJtD1vUJbmL7XHHt8iZdwlViASPcHB4rPgjVEiik+Yn53A68dBiuumml5Jr80RFpyfdqX/pLL2g6fJqWprECdoy8rZ5VQeSPzr1bwnYWUkMWo20UZggRobaTZh2AY5Y/XtXl9mjrdtDcTXVq0yssZhUK25yqlT7FcivcvDljb22g29lCdyWwMJ9QV45rHEylKcl0v+iNIRUaVPvbX/wACkWZZoYbaS7nYJFCpd2z2FeYajrMy2t94im+W8vcwWKH/AJZJ0z+A/U103i+9GpXsXh21fbCv72+kB4CjkKf5mvM/E+pLqF8sVu3+jwL5cS4yOOB+fT86xpxvL8y4pN2bto39yuZMcJuT5QkCDILyN3Hb8epptwoESxwDecYQf3vVj9ev4Uac5eFYZIneUyybnRUywU4CgsML6k+lF4ZUkWGzJMMq+YkhUBySq89OFw2R7H2r03SkrUpWacmnq+jd76eT8zaFOMavt6cneME9V/dVupAbi1kSJ7a0OBD5l1E78OvqO55z7cVUvw2mXp2xhLaQfvIZU27xuIwcD/ZPXuDViLTHutLW4ilVdsKBkbGW6AAenLfzq8bC91myuZi6CC0G57iRgNykSEKB3LMz9B1PtXoVKGCpVk3bl95PTtby9bW7rzOeni606Em97xtrLtLzMC206TVNTjt9Ma2Zrgny43RFO7OMZI69OuM1oad4V1LWHihs/LnkniaWIKkJOEIB3AnKjJwCcHPQV6P8N/A63mjXmoCZYBfiS1kRod7LESM+W24bTx1IbscV1kPgCLTNXhurS/kFtayPJb26xqGi3kll3fxKdx6jOAvPFYVI5dySt8VtNPW3Te9vKyfoOONr/wBOX/yR4RazS2lv5Ut06BkDqkceFOehxxkVfCRNaPKiMxDqrSMuwqTu+XbknnAP4fn1PibSjN4wt9I026YSRweVvJUeUAR8q4AOAAOuTxWFrGlXeiXs1pcTed5hWYyHq/BCn24zxXBmH1d4Zulo/RdvRf8AD99z18ixM546MJrTTrJ9V3kyDVby7hsbnQJhDayTEMFQDPHofQ8Vy+n2MmmiZ5Z1BPy8Bv8ACl12C+vddF75m9Jm3K47VJcyi4uYrd5NqkgM/XHvWSi5y5m/y/yPBnWhFcqpr/yb/wCSJrJYjHK4cSTOwUHacBevp1J/lXX6JavEVX7NLJs5baV5Y9epFY2nQia5afywqR4VFA43YwPyHNd9pNn5FuikfMeSa66NJ35nJ/h/kefisVBJQVNf+Tf/ACQJPMNStz/Z9xkQyjbujyfmTn73+c1p6ekoa7llheHzZgyq5UnGxF7EjqDTCv8AxOLX/r3m/wDQo60lxmtIQ99tvZ+XZeRniMQvYwjGCXNHz/nb6t9iRBxmpO1NUYqQYxWx5wlFOxSUANIzTGSpcUmM0AQ7OlOC1JtoAxQFgUYFOFJS0DA01mwOaU9awL3UheWN6nkXEaquFcDGef8APFTKXKjSEHN2vY4zxFqTeJdfSygdvs8Z8uMgZz/eb/PYV1h8iwu4rFxHcBICdqcBQR2+nFcjbXtj4f8AEO5ZFuLQqElcIQUz/EO/B6+ozXaaxYxWyx30LLtkjCb1UMrKecf7J/PIwRXPj53ceX4baHpYKlyxknvfU4C9lW11qRYlPlzfM/orf/qr0rw1eyX2iQSStudcoT64OB+leY6nOLzVHjhBOyTlvwAx/X8q9I8NWrWOkxQO2W5Y+xPOK6qWtCLktTixTSqtJm7RSZpaRzhRSUtABmijNJQMXHvRRSUALR1opOKAHGmmn/pTTQA33pp5px4HNIaYhjVBJ3FWWFQuKBM4TxHZl7m5QpHsniZDJKwVUBww5+qngetchb6deLbwoqpMjboASflDEdfwBr1S/wBLtdS2R3vmCBG3Fo2UYOMDOTjGa5+7tRfy3keix7IhPGFmztRVjjCcZ5LEsc8AZ2kda86fNCq7df8AJn0WFqc2GafRfP4onDStBBp0yW87tBeQp1zxKpXIwOvIPbuPStXTb9kka5uoZZbs+SFLEBfLRQrIwP8AsrxwcHBqkXhs2jaRNyvKRlhxk9/5/lSXIaGKCeNjiF8OCc5B6/5966frcoLlSW1vy8/JeRjGLlaQ21u7i1lSLzJolnhxtZsguuOn5dD6+1StHFY6oz226SAqJIjJjJVlB5xxnqPwrHvtftyPKSJi8MpKMenpxVu21LzrG1csv2lUIZT6BiRn8D+lceNq1MRFye56mVSp0sVDm21/FGrCzQmO9xhopgyj1HU/yr1ewYNEMHjt9O1eNXd2bg+Yu0DywNi9FOcV6j4Xu/tWk2rk8mIA/UcH+VPLW+Rxf9aGHFPs3XhKHVfqzohT+1MXpTq9M+XHA0tN70tAC9KKTPPSlpAJQelLSZFAw70UlFMQtNIyKWjHFAGPpsQfQLAEZ/0aP/0EUlnpcVjNNcoMSzDaPYetWdHH/Eg0/wD69o//AEEVoXNqk8CX1k5lhA2yL3Q1w1ZtUYx7pHrRpKWNqzfST/MhiUKgA7VbUZQrmoLURtHjPJqwMdq4j0CEqVywGRTCA4Aq03yqQOc0ohIdSBQMhsbISz7pCBEgLSE9ABXjvjbxEPEXiln3lbOI+XH6bR3r1Hx5qn9k6B/ZtuwS7vRmQjqqd68I1GXzbnCLgcKAKqGrJm7IuWhK29y0IPkrIoZs9c5x/I10WhtDDIuo3cYNvb3JD7EzJv2Mycf3cj9K5RH8p/JDfJEctg/efv8Al0rfW/lvbpriKT7PLMMSAnhvlI3fXBI/GuppulyruvzIoOKrcz7S/wDSWLLrE1/qcWp3AxN5gkYAcfeyBXdeJLbxQsx1jwndztZX+1p47fBMb4wcj+teeSIQArqgdAB8vRx2arkGv3trCLWKQgAYOJHQ49CVYZH1pVKEn8K/LsvMuFWm4x5ppO22vdvovM6m+lPh/wAOSW8sxk1Kfm5YtlgT0Un17n2HvXEWvmSOPvNgZ49hnPv3qa4uprzYHCIiglUXoCep56n3NW9HWR7+C2XZH5sgZZGUnYQGAPUcc5P074xUSpyp0n7rvp27+pph1TqV/wCIrWl/N/K/7pQkjt4YJpHBCIS2QxByeTyPrUNmst1HGX3K7gjIbGF9OPbireu6dMt+tuu1rfAmkaNQFIONnGTjPUg960dIgWO8s53gaZVuV3xHhXQLuIz7iiM6kYRnNv4r7+rOiMozrVIQ1Xs7fckjOayEbvCzeZGjAFkyFD7R8vPcA8inzXcRhW3jj8xonZiW4C8kgD8K3tdsGn0+71+xBlUK73ELkqsd1K+FCjuVUCn+Hfh/qGoaQt1JKkJfKkNy25TsP6qacajdS9R9H+hyOL+ryUF1j+Uj034f6vaahoc4tYTAkDgLEeqjaP65ra1S8XTbCa+kcgxKSF/vMeleUW95qPw91a0e5j3wPF5MuPuvgnB+uDS+NPiHDq6wWWlxN5WN7vIcDce34VitXoS3bVnG63qsz69Gwk2yoWkMi8EMTnrVjWtYu9RkhS8C+asKAufvOBuIb/x/+Vc5qaS+fEsZLzXDFdw6+5qzMrJqaIxJ2RFevThOKyxatRZ6/D0r4+Py/NGPps08Gkt5zfKT8gPardlCn2VZcJJNM/y+qYOAPxP8qpXspllWJRgDjAroNEstqiTH+r+Vfdz3/Cu6MdEkfNzna8mdDodgAyJjKxfeP95u5rs7dAAKzNJshbwKMc96241wBXfGKirI8eUnOTkys/Os23/XvN/6FHWkoqhIP+J3a/8AXvN/6FHWkBUQ+KXr+iOiv/Dpf4f/AG6Q4cU8Cm4p3arOYO1LikFLQMO9HSj6UUALSUUUAA60UDikNADGPFYmvM0lqyISCfStmQ1Qlt/NYlulNEs82uvDd0+J4iXmdsMhPUVTudTuF0qPS5XnjngkKDHePn5c9Rg8fTHpXoc8lot1HBJIYwjBncdsVw2rr/aevSPbJuDEYOOvvSjKFSpySWi1+Z1w5qdLnvZv8h3hyxElwGYEheck5JNenWAIiUVzuh6ObeNQV57muphTYoA7VpUld6HKrt3ZZHNLTV6U6sig70hoooAKDQKOlAxc0lGaSgBe1J70tFADzTaXrSUAJnnHNJ0p1NPHamIQ1GwFSU1ulAHO+JEAsfMxkxuCufU5H9a5eaEGC7WOeZIS4LBGxn5VP867jUrdbq2eJujd65SRoUtL2CNg1w8yqFIxhSi5JP1zXl49SU4yRvQlJRqNfyr/ANKicLqV59htHt503sx+VieAAcg4/GsEPd6i7GOWSSWWQAQqpJxjrgV3r6NH4i1CW3e58q0iCySnAzgZHBP1/WmwPpvh29jksYYri4WNozHHygJOcl+r9qqEXNXPQVX3U2Ylv4Rvi1lBehEhlYsxDAPHkcF2IwAeOPrVy6tNHtJvL0yJ5t0QVh1UNzkg9T29Kl1PUbrUCr6pdllX7sKdB+H9TUVvFd3h8u1i8mM9wPmP410Qp9kc1TEJdRgijACzJGgGNyRElmI7n0rvvCEjGEIseyJfur9aw9P8M+RNambJMshU5/3Gb+ldzYWiWwCIMYFXRpKDl6/oicbXnVjScv5f/bpGotOpqj5adW5xijrTu1QXF1b2kYkuZ4oUJ2hpHCgn0yahTV9MlkWOPUbR3YhVVZ1JJPQAZqXOKdmzaGHrTjzRi2u9mXKBRS0zEOtIc+lGaQ8UAFBHFFANMAopDxQT3oAo6Mf+JDpw/wCnaP8A9BFZ9r4hXQdYaN2/dsfnjPRh/jV7Rm/4kOn/APXtH/6CK5LxhAG1GNTkeZyCO5x0rmaXsVfsjvqtrGzs/tP8z0O5tIjEup6c++0k5ZR/B/8AWp8BDx7s1zPhTV5tJt4vMzJbsNs0Z5/Gunu7RII1vLF/MsZfm452f/Wrz5Kx6kJqSHrjJJHAq1A0UMct3cMFggUuxPtVOHLcDkt0rkfin4gGnaXDoNs/76YeZcEHovYVKV3ZFtpK7OU16/m8Ta40ySYkuH2oD0VP/wBVYFzpM0rzHTIGmksY2eZuygd/r3xUGj6sLPUTLMx2+UyqQM844r1fw7pSaB4E1LVNRQxSXELlhIMFiw4FNqUZWEmpxueJW43MIxzgZat3TbmOC+hd4kl2EP5TjIYDt9K6HwD4K/tvT726lcIg4jyM8j19qowab/aGrPHCsMkiRy7NrbVwkbMBx/ufpXRKtFxcIvVW/MnD0n7VSls1L/0lklykA1KW50yNhZI2P3o3eWpA5P45xQ8UV5HtVI2uJT8k4GBIB/Djs1YFrqN9MsyBTFGwUSKXKhiMnmrMV0YoYnaEusp/1PmkAnkg5HQ4HpXZQp1qkeaKVtt/K5lOFGNuaT17K/Vruuxdls0hUqs6NKPvRjqP8af5P7k2yo0z8thVz5bH39D3FLbNaao1slmsVrJkiSS6uCsUJ55ZuoBYAZ7kgd6oSXkkOIonIbrKVn4kOSPl/vZwSPUVusPiaityLtv/AMAUY0KUueE5L5L/AOSNK3ha3eNLy2iRyf3bug2se4b2/lV6KWSxurEWVmJc3JDQF9rM7DaF56YBbB75rMjjlgRPtyySW8vO3zDx/tYB/nUs22ymhknDTx5zHOJGBZcHvnjBx0rzq1G8fhS2/P0O/DYhSm1KpJq0t1/df947Dw3YT3XiKOxuJmaJwLq6gB+QSDovvjI5rtNPt3bTHeMnKXt3gZ/6eJK4DwLd6bea6LeUXSSzFgJI7yVMLgYXKsD6muqg0m4hjuIf7P1t/wDSJnjlh1LCMhkZgcGcc4IzkZznPNclVzUldbf12NqMKE6UlGb3W6S795FP4i3tqnhIpeR75ZHAi/vDHU14M1w3mHy97DPGa9A8X3iXl8wVLtIgNkaXNwZsY68l26+xriZtOnQ7bQr5cp2kMpOCfTAohLW1vz/yM62FaipRkmn3cVtb+8+5v6JcLfacWgSNtTkmAQhcmKNRzj0zk/WsnVJmtNTupDyVLZ3dz+7H9a6Tws2maBqEJ1CC5mtQCZoowu4yYOMcjgfhVfxfpX2hjqVvC62N2SIXcpuYgqTuCscMMD61U+WSVPzNcGqtBzrKSTUXazW616M5ewU3E29bdN7HCYLck/jXc6Tpe6QIkzqkXQqF5bvjINYej2gh/eKAdv7uMerHqfwrv9KsxBbovfGTXoUqCvfXTzZ89isdP4Ul/wCAx/yJ4NPm2jGoXI+ix/8AxFWBZT4x/ad3/wB8xf8AxFWkXAFSqvNbezj5/e/8zj+t1O0f/AY/5Fe208x3S3El3PO6oyKJAgABIJ+6o/uitAU1RTs4qoxUdjOpVlUacunkl+CHClpKXtTMwpe1FFAwopRSdKADNFFFABSdRS0lAEZGaiddqkVYxUbjNAjGvrNJUcbVy3U4pmnaPBbjIjXPritRotxqZV2rtAp3FbUakYUcCpUGKUDPWlAxSKHDine1NFLSGL/OkooPWgA70UZ70UAFApO9LQAlLSd6WgY+kPNLSUAJTTk+1O4pDTEIaY3Sn9frTT0oAqTjivNL24Nrq91DctIkZdgGVCwY46Y+lenSjIwK4TxNpNw1208Dt+9PKjscVzYig6qVjqwtalBTVVtXVtFfqn3XY5RpHRZDPK0cbuWEQPPsMfSlgS5uj5dpCY0P8RHJroNO8KtMQ9zyevTFdNaeHrSNRsWUY7rM6/yNVClOKs0vv/4ATnh5bTl/4Cv/AJI5vSvCBJElxkk+tdfZaTBbrhEA98VOmi246vdf+Bcv/wAVUq6Rbf37v/wMl/8Aiq05qi0SX3/8Az5MNu5y/wDAV/8AJEN1Eq3WnDH/AC8H/wBFSVqKoHSqcWmW8dxHKDOzxklPMuJHAJBGcMxHQn860AMCiCkruXX/ACRVedOShGm20lbVW6t933FHFOzSd6Ks5znfGNz9j0+0nJkHl3S/6uRkYgo4wCCDzk1mX2q2baZo1jZ6lcXW67hS9diwYHO87XJ3Y3AAHPTFafi1EmsLdJFVlErNgjusTkfqBXGags11qen20qRlEjhBURgbs4HOOv41hKu4Nxvpdv8A8l0t6bnt4WMXGk7X2/GbO8t9Qnh8OtOqy3MyyyRREI0hYCVkRmwCSNoBJ+tP8NTvPo37yaeZ0uZ0Mk6srMBK4HBA7YGO3Ttir1jCkUClYkQ7AnyqB8ozgfQZP51YSOOJSsaKilixCjAySST9SST+Nd86sJRlFLd3/PT8TxbjqTrSnpikFc4g7UmOaKKBB1NNY4oprUAUdHP/ABI9P/69o/8A0EVR162iurfLj50OVb0q3pB/4ken/wDXtH/6CKZdhZFIJyO9Z00nSin2R04ttYqo1/M/zMKxuTICCAJV++v94eorpND1z+y5fLl/eWMpw6Hnb71wt7JJY3vmDIQnqO1asV0Ly2ZoseZjlex9xXJVpezdnsdlCv7VXj8SPTLhrPSLObVfNVrOOMyJz37CvnfXtTm1bVrm9uWJeZyf90dhXYajqFzNoy2LySeXv3bM8Vxt/Cu1vainQtqxVsXzNRXzM2GRYElOCZGG1eOAD1Nbtpfa14juLHRri/nmhZgqK7kgAf8A1qwrbj93NxGejY+7XRaRtgdURVF1uBilY4C+mKt07aPculW5tj1HV0tfDvhm30bQwo1HVsRBgcEAD5mPpgcVyP8Awj7z+IbLR7CSNHigMMtzESFaQxu2GHqQpB9jWU/iTUbLXW1G7t455ljMbhh05zuHoa7+10ubTNH8PtE4kv76/E9xJ1yGik3c+yk/lXiVKdajUV3q9n3Pdws6c4v0l/6SzzO+0Wa0LJPIgJbYQpzkY5/w/GmfYRckN9oSEQ/MCwzntwPXmtzxdqsGseJJZ7UBbWPEMO0Yyqgjd+NYXmo1x5GRuUbiK+hpV506bb3T/RHkVoKUqcY7W/8AbpG7pTWOjaHFqVtdR/2skxfynjyFYB/mIzyCHGBxggHJrStPCS3nhe/1u5vljaZZDPvh4lAYltpyNpyzAcHoPSuYXCzJIVDbGDYPQ47V1+pap/wlLWkFkkoDMWmsozgJgD5vfnn8Kxjjq6d1LV76I19nFK3Q5ua3MbKdxKsMoCeQPf0qFHiVo4J332xfc8YOSp2kZH55/Cut+IWpaTpeh2kVnDC10g8pnj6FAByffJ/nXlGmTzm4kuN53HnH4ipniE4K66r8xYag1Vdn0l/6SztdP0+Wxa/WBw0ywrdWki/xhTzj8DXWT/E5G8MmJYWF/IoQAfdA7nNebXV3dWk1rqNjKymA8xnke4+hqC5vrC/ImgY27nl4iOFPt7VlU+Lm6MUHpZbo1QxuJmvbkgrCVd1HRV3D/EUnh2NksJ9SuRgOw8pT644x+dQabqtmstvpmx3gmlVrt+7oCOPp1Nbeo6fLcaFNdNILa0t7lI7cKPlBY8D6Bf1NRGVpt/11Olxf1eKfd/lEyJZBGZJZGyoyzE1Vgu73UdMt4nwLdZXEQH95jyTVG8uZLycaTGSXMxR5AOCo710slutrbWtnANu1uPXOD/n8aqMevmvzMo1FFy7csv8A0llrQ7ETTKQP3UQ2r7+9dnDHtAGKpaPYi2tUAHOK1woAr1UrKyPmm3J3YgGKlUcU0LmpVFAhwHFL3oxRSGL3o70U13SNGkkZVRQSzMcAAdyaBpNuyH0v0qh/bOlf9BKz/wC/6/40o1rSz/zErL/v+v8AjUe1p/zL7zp+pYn/AJ9y+5l6iqX9taUOupWX/f8AX/GrFvdW92hktp4pkBwWjcMAfTIpqpCTsmRPDVqa5pwaXmmS0UlFUYhR7UtFACetMI5p5ptACbcDNJinUUACinUgpc8UDClpB60vWkAnSjtRSUAL2pc0lFABR2oooAWiiigY40hoooAQ8UUdaKYhKQ06m0ARlM1XmtkkHIBPvVztTGHNAmU1twPYVZjQKvAp23NOUdqBIAKUClxSigYgHNPFNFLQMUjnikPFLmkIzQBzvi07dPjJ7O4/8gyVzfl58Rbevlm3X/x9K6Lxjzp1sv8Aen2/nG4rGhTf4gvW/u3Nuv8A5FSuCr/Fl6P8ke3htIUfNx/9LZ3sY2qB7U/tSYwKK7zxAzxQSMUUlAC96Sg47UhoASmGnGmkUCMPTNV06PRrKN7+1V1t4wytMoIO0cHmibVNOYHF9an/ALbL/jWw3eq8q5FZwhOMUrrTy/4J2Vq+Hq1JVHCWrb+Jdf8At05TUJdPuEI+125z6Sr/AI1g293/AGdc4WRXiJ4KsDtrup4gRWJf2KyqQRVShOas2vu/4JnGrQhLmjCX/gS/+RMu+v7e6XcrIGxyNwwa5+dfNl25GO5rTkhmtSUwSvb2p9hZEvuYdTURpVI2V193/BHOvh5Ny5JXf95f/ImabKFo8F4/++hTI/3YETtwv+rdecV2lvZDHSm3ujxzxH5eauVOUla6+7/gip16EHfkl/4Ev/kTDjmt9RtRHcOkdynCSOcBh6GtSXxMW0CKzG4ajHOcSq+V8oxuhx6E76wZYZrK6VWYqVP7uT09jWuqR6vaFXwt8nB/2hXLOk3JKfTy/wCCetQxlFRlKnF3s18S6q38pij5ygQd8D8jWppXw/uNb1ZJVvhblIyWcfMC38K/jVa4iiheONFdWVvm3dc4Nes+EdN05/CMQik3PKd0koPzRyUV5WjL1/RFRiv3fp/7dI8mvLS5029lsb6LyrmM8jsw9R6iqy63deHZ1v7KQLcj5EyM5zxivQ/iVHnwzNJcWrPq1ntaGZF4ZMgEk+mO1eJT6ib0i5ZSqRjCr6tXEtVc1k7FjW9Rk1O9KgBFJ3Mq9Ae9XdOgWOME8dqy9Nt2lk3tySc1s3Ti3t8A4NEldF0ZqEuaSvuvvViCaeRJyRC7xdGUKeRVF7acSi4ghIA/gPG4e4rPnl3OSTXVeDoRqIms55HESruwDxitKfO9G9PT/gkTlQvdRd/8S/8AkRmj2O9zf3c6WxZlCxA5YDcMn8Bz+Fek6L4j0GHSpPD2pL9o065kJeViMoT3/A4+lcXfa1YaVMtja2ivsIkLem07sfjjFdbZXtnrGji9gQCMgrJHjoe4os3Nxv26evmdDnQVCL5Xu+q7R/umDfWmjWuvXEun3EcltbxiKB2cZkI6t+f8qdpxS81i3PmIx8wjAPJGxjn9KW7x8ltEoUE9B2rqdJsxbWqjHPeuqlRk1v8Ah/wTyMTjKMZNKLvZr4l1TX8vmaMSbQAOlTAUiLwKkrsPHEUU8CjFLSGHWlpKWgAqjrP/ACA9Q/69pP8A0E1dPJqjrP8AyBNR/wCvaT/0E1FX+HL0Z04L/eaf+Jfmea3t/e2V/qjJHbXsdu0puDNaxkxlpNqndsyWyQeTjnpgUyy8SJbwaiJrWyu3W1jlhkaziGx2KAjAUA43nr3Wurk0zTrXQtUuyku6WS4Mga4kKufMZQSpbBPA5x71ymmw6PHbSRttXziFIZ2yQDnrmvbo1MtqUFz0k9teWKvtf9fW+p31MdiIV5xUmrN9Wa2n6rp8mvapp9xcaa1la2rtHdPYwqzOCnQBRkj5wB3688VV8MatLLPrciX6WaboXRY0iMjJtfCIoG0sflHTr2yamGnWVuplgBJCn5hKxJzjqc89Bj0xxV3wzp9lrN/qc9zHMX8yGQEXMgYOqsudwbOeT371EquX0WrUvisk+WOjWrfzSd/utYt1q+Io1bzdoq7Tb1XNFfm09Tq/D1zeXOhW0uoMrXfzLNtGMMrFSD7jGDjjINafeoba2itLdIIF2xp0GST6kknkknnJ61NXnVZKVSUoqybZ4z3F6UnWjqKMYrMANIeKWk70CCijmoLiZ4dpSFpF77eooY0ruxPS1ThvGaXy5oWiJ+6T0NYl7r95aMrbkxJPJGgFozAbGcDc3mDJIjPAH5VPM3pFXer+S3OilhnNNuSSVt79b9k+zOnorm9N1q+1O7a2R4Y3WPzCXtgQBnAHyzE5PPbsaktNbuZtQs4XeNorksYz9nKeYgVjvU+Y3GQvUA4YU2qi15XbTt19GX9UvflqJtJv7XRX6xN+iqMmrW0WotYESNMsDXDFE3AKpUEcclvmBwB/MZk0+9TUbUXEcckYLuhSUAMCrFTkAnuprV0pxjzNaHLYt0lFKayEJS9qDxRn8qAClFJSjmgYuaSikzxTEFL1pAOKKAA9aKKKAE9qQjIp3WkoEAGKKdxikoCwUUUUDFHNAoFGaACl7UUYoAw/EtncXdlALaJpGjm3kKQCPlcA8kdyKxdIsNSLs9xZy+dLcRSM+5NoCyKxJ+bPQHoK7UjI5oVQo4FYyoqTbvv6HZSxjpqC5U+XZu/e/RpbvsP7U2l7UVscYmaKKO9ABxTTS4pDQJgaYacaSgQw1DIvHFTmo2Gc0AU3QHNU5oN2citNlFRNHk8VSYjDmsFl+8KbFYCJunFbZh9qUQ57UXFYpww4A4qYxVOI8cUpXii4zA1PTI7pCCozXKt9o067QtkMh+Rz3Hoa9GMIPWsfVdJS7hYbRmlKKkrMqE3CV0ZM3k6vFbSxIFuzKVZc9fkY/wBKv+HL7UNAvZLuT/j2biWAnhx9PX3rmomm0rU4SygsjZU9iMEYP510eoXVpPo51EHbKOCue/oa4tY80ZbX/RHvc6qQpzW9v/bpGt4z8RWOrxRWFreYh8sSSbhyO4Q/jXid7snvzFCAI1POBwTW68rOzFz8zHJNUksRFOWHQnNcrlpZGttblqwhWKLcewrN1O63uVB4rQupxDBhfSubuJC7k1INkR+Z66/wPHIdbliQ8tbM231rmbO3eeZUVSSTgD1Ne1eDfAcU0SXUV35Wo28WUTAIfPUGtObl0MormdzzuXTJZNSndlJJbbz78f1rpfD0Mml6feRsPkZgQD/epdVs7m2vmnjkUxSSKXBHKNuHH54q9dAfZ1hiJ5OM+p7mujSTslrZfqZVFKnSVST05pflEbpFsbq8MxGVXgGuwhTCgVm6RZi3tlGOTWyi4FdiSSsjxW3J3YlPAoAp1ACUvaiigAo7UUmaACqGtf8AIEv/APr2k/8AQTV81na0f+JJf/8AXvJ/6Cair/Dl6M6cF/vNP/EvzOb8RT+V4Ruxn791Kv8A5GenfD7wfpWsaZdX2o2/mxJGsYB67jySP0rTttBj8S25sJmYRi4uJSVODxI+P1Ndl4M0FtD8MPaw5lYzu3zcEjoK5qtVKhGC3sj0YUr4qrN7cz/M8s8ZeG4/Bk1vJplxLLbXaMTHKc7MY6H8am8AzhjfsON3l/puFWvi9qCf2olirrvt4FVl/wB6qPgVdhuRjH7uI/mD/jTjUm401J/a/wDbZGyilTxLX8i/9OUzv1ORTutRoeKfmus8AUGl6im0ucUDENB5opOtAgrLu9ZjsZjFLbzn+6yJuB/KtM1DKgYdKGrjTt0ILO6g1iFlg3Fs424wyntxXNXF1daZJp7XEPmWsOoXLsyj5sgyIePq+a0NTsZQTNayNFKRg7TjcPesBFvLxQ1xI7lJZAmTzuZyWJ9TnNZpSVVPyf6I7KdRLDTtvzR06bSL0Jt2u5722ZN8zFmKZG0dFXH0AJ9yak02xvY5dBllaJ0tWe2g+Y5ZDGck8cEBBgc5PcVBDGRFIwjMe6RjtJzjnH9K2tOgZLDR5GP37yQ/h5UtdFbEctJP+Zr/AC/LQ3w8G5ySW0Zf+ksmt9EkttbjvUvJZIgk/mJJsyWdkPZQcfL3PGFA4zV3TbV7O1eKQqWa4mlG08YeVnH44YVape1VOtOatL+t/wDM81sKWkzg0VgIU0lHWimAopRyNo6mm0zzMSDkZ6getTO/K7FQtzK5LSHpxR7UlUSGaWkpc0AJS54pKKBBSjrSUooAKUUUGgYmMHNLxRik70AL2opM0ooAXtQPeil4NIBKKKKACjNFJ0piA0DiijGKADtSUtFACGkpaQ8UANIprDinnpSEUAQFaTbUpFJjFMkj2YpQoxUhpuKBkZHNJtzUhFAWgBoWopIs5qzjFNYYHvQI5PxBpqzm3CjDNIVz/wAAY/0ri9WaWC0MDlldW69mr0zUUBubD/r4P/op65jxdpqtpks4HzJzmsnFT5r9/wBEd0puEaTX8v8A7dI4qGbz1/2hVhckc1y0d/JaXbI/TNdNazrPCCpBrzpRs9D1Kc+ZalDU1dFz/DWMPmbiupmVHhYP0xXPCPYXcDIXpSj3CfYu2Ti1eGVTykik4+tfQXw/ga3trvXLslYmjyM9lFfO+hSEatFcuA0cMiu0Z/j56V7vrHjS11DR4NN06BoI2A80bcAe1PkcmioySRzuryeZC04GBJcB/wAS4qTSoftMwc/dHTNZeqT+a8VrH90OoH03Cus0u0EFuoI5NdtCNpNvsv1PPx9TnpRitlKX5RNKBNo9qsCmIMCn10HmC0d6KKACiiigBOKKMUdDQAlZ+t8aJff9e8n/AKCa0e1Z+tD/AIkl/wCn2eT/ANBNRV/hy9GdOC/3mn/iX5l7wbZQ3SXj3AzHHJPznGMytz+lJBrN1okWrXFozz2ccoVPNYsA2OcH8axJLSU+GZ5Yblo2e8miKK2Nw81qS5gvNM8F21g4/dXDtLu7tzXFGHPyv0R6eIq+ynUS7yf42RFPpc2spc6/qdjgXyko6ncoGMKMdRVfw/bLb6xqcSLgIsAA/wCAGuh0vXhP4KFjJF5UsTrCgHIcdc1kaV/yMms4/wCmH/oBqlFxnFf3v/bZFU5qeHrv/p2v/TlM30qSo1p9dx4QveikooAD0pM0tJQA1s7eOtP2rMheJSCPvRk5I9/cVG5Paq74JG7II6EHBFJp7oqMktGiWS2eQHMbcDJ46CudEsenWTXjKGEVzK+09DiVq1bia9WZZ7a7fci4Cs3aua1TVbaXw5cQ31vtm8+VlkjOMsZGPI6Hkmspc/tErdH+h2U1D6vJ3+1Hf0kXBcxyWsku5WwCxwe/eugnCQ6boYHBE/8A7RlryGyuZGuYYY3Yea4VhnqCa9Sv7jcdKRegnJ/8hvRj48rpwXl+Z04Gpzc8vKX/AKSzYU5p1QxH5alFbHkhS0lGaAF7UdqSjtQAp6VDIhPzKcMOhqUGjGaACivMh4k1gKAZZd2OuR1pTr2tFjtunC54BxTsNxZ6ZR3rzQa7rZwftbcewpG17WQM/bG/Snyi1PTDS5rlvB+tXepx3MV2294iCrY5INdNnmkIeOKKbmlB9qQDqM5pM0tABniijpRQMKWkozQAtFFFAAfalzikpc0AHvSUUdqADNHtSUtAgpKU0hoADQaKSgANNNOpKAG0lPxSEUCGGkNOIpueaAKbapp0bsj39qrqSGVplBB9DzR/bGljP/EytDj/AKbr/jWXpMIm1SV4pJwlvNOZh57lGd5HCrtzt4GSeO6mmJLM91E/nymWe8ubeSIuSqxoH24XoPupz/te9VClOpDmjJbX28m+/ZHo1qVCjUdOUW7O3xL/AORNb+2NMA/5CNpnGQfPX/GrCTRXEIlhkSSNujIwIP4iuPF/qUBumvZpopE+0RI0chfARHx+7PA+5kHqTweDV3wrJcB72GdiNrbxH5zSgZkkBO488lcY/wBkH+KrWGqRhzTknp+qXfz/AM7E4ijRUZSppqzW7vvfyXY1r/m407/r4P8A6KkqPULSO6tZYJBlHUg1Jfc3Wnf9fB/9FSU+c/Ka56e8vX9EY1/4dL/D/wC3SPDPFGhPZXbKOQD8reorO0m+e3l8lz9K9M8Q6eLlWLDP9K81vtOeO5yvBBrnrUrO62OnDV1KPK90a95dgwhVPJ61nW90FuURlyh4NExIjGeuKs6LZC7MztGzMCFix3Y9qwlCysjqhPmd2dFLodrpur6d9mlWXzFWVgOdpJ6V2V6yhmAwoXrj1rF0fw9Payrd3YCiPlUzkk9qsXshmlWBCSznn+tVRg7KPUK9VQi5C2lv57i5YfL58QXPoZFFd1EuMelYItRb6XEoH/LeD/0atdFGMcV2pWm0uy/U8ubbw8G/5pflElA4p1IOlLVnOFFFFABRRSHmgBaKKSgANZ2tf8gS/wD+veT/ANBNaFVdRga6066t0IDyxMilumSCOaiom4NLsdGFkoV4SlsmvzMqKxUQW90JyzS3FyDFnhcStzWhqE0t5b28EmNkCbEA9Kzre01K3Zibe1YtI75+0MPvMWx9z3qZ31Hn/RbX/wACW/8AjdZUuWMUpJ/czsxkJ1a85QceV/3o9/UsQ3Vo+nw6fFFieCVnkbHXI4qjpQ/4qTW/+2H/AKAasGe8lkjMWnWiMkYVj9pb5j3P+rpdMsbmHUtQvLkQr9q8vakbltu0EckgVCvKUdPtN7Ps1+prFKlRrqTWsElqnd88H0b6Js1hTs00U4Gus8YWkoooGJQaO9GaAGEZqKRdw5qamstAjLuImAJQ4NcRr3nvpDKU3KtzISR/vtXockfFYt5o1vIrjbLh2LECZ8ZJyeM46mj3lJSj5/odFKdL2cqdRtXaeivtfzXc800uZItRhlkB2q2eBXo8cv2i401wcjzjj/v29ZY8LxeaCqMOf7xroLDR4bd4pCJWaPO3dKxAOCOhOOhNZ1o1KklJpdOvn6G9GrQpKXLKT0a+FdU1/N5mynAqQdKjFSCtDhHZ4pKKBQMOlL9ab1NKelACiikFLmgDy94go9zUezHFQC4J+0NPLtWEZJRg2eMn+Ee1Cs2yYzyFDEgkYAhvlOfYehpuNRfYf3rrbz80egsIv+fsf/Jv/kSftVW4k2oRnrUQmkYAAhnZwi7ZAVyQTgnHBGDx9KoT3RfI6nJU89wcHpRUVSmryg/vX+YfVIrepH/yb/5E6TwnqbWtzcsiblKgHP1rqx4ibp5I/OuP0qxeK1DCRoy3JC4/qDVxo5B/y8S/kv8AhXJ7eTfwv8P8wlhKd/4i/wDJv/kToj4nZTzAPzqN/F2wf8e/61zjxOf+W8n5L/hVKbeuf3rn8B/hSdaXZ/h/mL6pT/5+L/yb/wCROp/4TgBtv2Qknp81dPYXZvLSOcoULdVPavLNOh+0aiuXYBPmyMZ/UYr0LR3lS7urd7h5o1RHXeFBBJcHoB/dFVTrOUkmt/QVTBxjTlOE07a9e6XVLubZNGaaGzS10nALS+1JRQA72ozxSDrQTzQMKXNJSDigQtFJS9qBBS9KQUZoGBoPFHaigAzSGlpKACijtSUABpKUikoEIaZjFPPFNJoAxrO1j0+0l1Npwsct5OJY8cAh2G4/gBWNeeKdHX7RJBaxSzyx7Gk8sfOvoT3FUPE19PZWkW07opJrlGXtnzX5rkDKEjAVRzXBCvOkrJ9Ez3cRQjWrSm+ja+5nWaX4l+36/DNcwwrdT4ikdUGSMcZP4Cut0SCC3tJFgijiBuJshFC9JGA6ewFeX6faXk8y3FrbySeUwdmVeBj3r0zRZd9jn1llb/yI1a4epJvlb6f5GOMp2pSl3cfykT3x/wBJ07/r4P8A6Kkp8w4NLdWv2kRETSRPE+9Wj25zgjuCOjGqz2U+P+QldH/gMX/xFbLmi3pe/p2ORqnVpw99JpW1v3b6J9zLv4t4IxXG6vpecso5rt5rGXJ/064P1WP/AOJrLudNZs5uJW+oX/CrcnJWcX+H+ZmqMIu6qx/8m/8AkTzWeB94Qjkda6jwq9pHfLLKNu0fdHQN61Pc6P8ANuwT9apGwkgbfGmD0rmnCXSL/D/M7Kc6aa/ex/8AJv8A5E7bVb1Y0UhhtIwvPU+tVNDtPtNybhhxnisG1trm8lVZGfC9K7bT9KlhgULfXCH0VY/6rVUlKOri/wAP8yMRyVHZVY2/7e/+RLl8mLOMf9PEH/o1K1VrNGmvIUEuoXUiK6vsIjAJVgwzhAeoFaYrWN3Jyatt+pz1nCNKNOMk7NvS/VLul2HU4U0UtWcwtHaiigYUlL2pKBAKKKKAE70hpaQnFADCvNM2Z7VN9KQ0ARrGFzgdetSAUY70nQUAOFRXNylrCZJM7R6DNM+1rv24Ygd8cVV1HWLeys5pcq8qjCIe5qJT00NoUm5K+xYsNRj1FpUjSRGjx99cZq0M9zXL+Hdcn1PX7jz444wYBtVOhwef511MSZ1BVJ+V0zj3BolLkV2b+xjOK5NwpKfMuyVl9KYapO6ujkkuV2YU0jNLmg0xDCvFRmMNU1JgGmIhWMDtUmKcFoxSGAp1JS0ALmikooAWlFJmigYooJpOvSjkGgDylINE+x+RJNIzsjh2HGWPepraz0eS3kWfUSXdNj7U2/Jg8Dk85Oc/pXNZJwfYGlVWNwxUHGK5liq2tpb6ntciOkOm6WyOW1RGkO0f6r5CBngrnnr6+lU4jp2i6lDcXEP2y0X74K/eJ5PFZbo4XoadfnfpCt1wKmriqtSHJJ6f0hqKTTO6j8e+FGwo0dxj/ZH+NPPjXwoRzpMn/fA/xryuEDzPqKmJxXn3fc6rR7HpTeMfCB66XL7/AC//AF6gbxX4Kc86ZL/3yf8AGvPbYK97CjjKMwBFTaxbW8N/m3GInzhfQg4NF3tcLRteyPRLa88P6jHLLpFs0DR4DbgRnn61pafKE1e7GeTDD/N64bwWPMkuIwf7prsv9Vrc4zn9zFx/31XRQb9pFef6M5q6XsKrXb/26J0sbZHWpQRVKB8qKuJXpnhIcKUUlLmgAooooAWkoHSigA70UZooAWkoooAWkJ5oooAU0lFFABRR0NJQAtNJpSaSgBDUb9Keajb9KBHCa/aNe6SvzAYvJeT0GZWqhK3hPw6oN7O2pXYGREn3QfoP6muju7IXug3UGcFpp8Edj5rV5TdaJNBLsOSVJyTXDOi5QjJdke08QoV6kX/M/wAzopvG+patdiys4Y7KzyBsjAyV/p+Fd3oLZsx/10k/9DavOtD0rbOsmMt0r0fQ4ytlz/z0lH/j7VrQp8jXo/0OfEVva0p22Uo/lI2AM0jKMU9RxQRxXUeYUpEyarSW4PatBl5pPLpgZD2akYxUP9mI3G2tsxe1KIhRcLGdZ6akL7gBWvGu2mqmKmUc0mA9eKkpgHFOFIB1FIKXvQMdRSCg0AFA5FJ2oFAC0ZpKSgBaTFGaO9ABRRRQAlRTKsgCliPoalNUry2W5UBiwA9DjNDV0OLsylLrttDKY1ikZF4LhcisvVtdttQt1tbXTPLfPzzMclvwrZNsoQIqAKB6VSNh+9JCgChQXVlOrvyrcqeHLSddSjnWNfLjYrIwHI3Dj8MiuuMqxXts7fdDFfzrkJ9WfQ5mYf6h3TzQB2B/+vTbvxpa3FxFBAjHMinefrUunKfMkjso1IRhG7O4vWBuNw6EVW61ELkThSDUorOg7wRhiVaqxelBoo7VsYCUUtJigBaKBjFFACUUtJmgBaSiigBwIopO2aBQMX6UtJ1NGaAPBixUDHpinLO6SjaeDVhbeJicyDAHFMe3QOu1wcVzKhKx6TxML2uONw/QnjFLN8+jN9TTls96k7wKJFSGyaMuGGaf1ee9hLFU9rmDbuXcVdZDitCzTTvKU+Tz3NXPK01hypH41yfVqh0fXaS3MKNvKnjc9FYE1PrLRtPGYXDD5mz6ZOa1fsOlt3b86T+ytLc8u350fVqnYn69R7k/gFwNRuc9BFu/I109rdG61eWU9fKQfq1YelQ2OlzvNbuSzRlCCeua0NHB+1yE/wBxf5tW9Gi4yTl3/RmVTERqU6ig9OX/ANuidjangVoJWbbdq0FrtPLRKKKRadSGJS0Dmk6UAKKKSlJoAKKTPaigAooooELSUUUDFpabS0AIaKKM0AFJS5pDQAh5qNh8tSGmkZFAjKn0mxlLu9lbF2OSxiXJPrnFYN74dhd90cSqD2UAV2DLxULIDxioVKH8qOhYzEJWVSX3s5qy8PW8ZBlhjfH95Qa6C3t4oIliijVEHRVGAPwp4WpVXFXGEY6pWIqYitUVpzbXm2xw6UY4o7UvemZEZXmk21IRQBQIbtB7UbcU+jrQMaBThS0CgQ4dKWkxS0hi0vtTe9TLBKyB9vynoT3pNpbjjFy0SGUlKQVJBGCO1JTE+wUlJS0AFHWiigApMc8UtFABSGiigBDTCM0801jgGgBjKKs22nxSYe7uFtISMq7/AMX0qca2pt/KltIH2j5WxyK5/WdTe8kTzV3iMYRR0Wo9+WlrG9qUNb38hfEieEYNKuGMs95cBTsKkhc/hivH4XJmVxwN2RXdaiJr2JovL2qRWBa6A6zgMCQDxXRQ/dp3d7mVSr7TRKyR3GhXJuIA2T0A5roFPFYmjWZtosY7VsrWKio6IHKUneRJQevFJRTEFFFFABQay/EV5PYaDc3Ns+yZNu04B6sB3471zmnatql9JLHLqtxatDbC5maSzhZEUgEcqxOSDkZA4BqOacpOFODk0ru1tr26tHpUMu9rh/rM6sYRu46826Sf2Yy7ncA0lcTpurX+pPIi6zcwMsH2lRNYRDzI843Lhjx9cdaZFrOpyRu7ajfoBbfaVzp8LF03BRgK5OSTxnHQnpWro4pNr2Mrr/D/APJFf2fR/wCgmH3VP/lZ3OaO1cro8uqa1Zm5t9dljUMFKy2UYYZVWHRiOjA9e9aH9m63/wBDB/5JJ/jWE51YScZU2mv8P/yQvqFBf8xMPuqf/KzbpcYrE/s3XP8AoYf/ACST/GnLpOvMpI8QcD/pyT/GoeIkt6b/APJf/khrL6L0WJh91T/5WbOaKxP7M1zp/wAJD/5JJ/jR/Zmuf9DD/wCSSf40/bT/AOfb/wDJf/khfUaH/QTD7qn/AMrPGBcSjsv/AHwP8KDcygfw/wDfA/wq8Yh/dpphB/hrRUIfyr7jN5jVf/Lx/eyqt5MB1H/fIpRcSyZXjn/ZFWlgX+6KlS2VWyF5qvZQ/lX3EfX6y155fexsalVAO3j0UCp1jJ9PyqWKDcelaENkW7U/YU39lfcc7zDE3/iS+9mYsR9vyqVYTWsLE56VMlj7UfV6f8q+4X1/Ff8APyX3szYLbJ7/AIE10Wk2qxZcZywAJLE9Pr9ajhssY4rZs7fYBxR7OEXdJCeKxM04ym2n0uzRgGKvJyKqxLhatR9KZCJR0pelAopDDNFFAOKAAUUZo+tAAaKSlBoAKKKTvQAtFBpKAFozxRSZoAWjNJmigQUGkooAKSlpKAEI4pm3NSUlADCtLinYpAKYCEUYpaO1ACYpKWjrQA0U6m96M80ASFSACR16UlW9pNkwccxkYP1qpURlcucOWwZpe1N6ClBNUQLnFVNVnv1ms4Le4kTzIpGSOEoGdw0YGS4IA+Yn8O/SrJPFYV7bhtZt2JYnyZWBz0+ZOn51lVV0vVfmduAmo1btX0lur/Zfco3/AIluksbK5N1O8lxBHLseSJSC4BCjEBz1HPH0qTUNUuYre6ew1C4uDbWxuJGYxKFHOMDy/m+6xxkdOtcq9tMXiWebzEtFEEeVxnaoUH8s8e9aaadImhX91DPsFxG1vIpTduRVJ4ORjqw79arnwsajhJO2ut5d/Xtt5vU9OCqVXGUVF3tvGP8AkdTquvLpdz5TRRn92JBvm2NJyRtjGDvbjpx95fWrX2+Qa0untbFY2heVZi4+YqUBAX0+ccn0PHeq17pEt7JO32pEFxD5Ev7nJ2BmI2nd8rYY888gHAxV17TfqcF5vx5UMkWzHXeUOc+2z9a7m6HKrb2d997afieDoWqDRRXISFLSd6KADvQaSigA6U1xkUpooAqtAC3pUTWycjGauFeaaVHpTAoNaqeMUkdiituxV4rS4wKdwEQBegqUUwCngUgHCiiikAZpaSigZi+LP+RZvP8AgH/oa1R8O6CU8LTx3MoNxqUJ8yRedqsmFAz6A/mTV7xZ/wAizef8A/8AQ1q7o/GiWH/XtH/6CKxp1p08TKMesY/g3/X3Hty/5EsH/wBPZf8ApETndO8N6tbTpLcGxcx2C6cgWR8GPOSx+UcjA4788imaJ4X1bRTdT281nFM0CRRxqzNG7KR8z/KCDgEcZ+8TxXZd6O9eq8xrNNO1na+nY8bnZieFNFm0LRzaT+TuMm7ETlh9xQTkgHkgn2zW6BRjNXLWzL4Z+E9PWvPxeK5pOrU3ZrSpTrSsiO2tWnbPRO5rTWFEj2KOKrvMxykPyoOMjvTVeVDkMT7GvCq4pzlrse9QwkacdNylPH5UrLUVX7kLNH5ijDDqKoE16+Hq+0gmeJiqPsqjXQ8gNmewpPshz0rqTpvtTf7N9q7dDz7M5oWh9KlW1PpXQjTvapE0/wBqNBWbMq0sSSOK24LMBeRU9vaBOoq4kYHGKTZSiVFswe1TLZr6VeSIAVKIxU3KsU0tQO1WYogtTKvtTlXmk2OwqrU6jFNAp4qRj8iikpaBhmkoNIaAFooFFABRRSUCFoz60lFAwz82KWmZ+elzgZpJ3uU0k0Ozg0U3dmlFEXdXFJWk0LRSUUyQNFFFABSUUlAB2oozRQAUUlLQAho7UUYoASnJGXR2HRBk009Ku6aolS4jbhSo596mpLljc0pQ558pQNRyyLHGzMcKBkmqmpanFplyLeUEuSRgVh3mpy3oZB8sR7etKdWMVdsunh6k3ZI6/TrlbnRrhhKH2uAvrimA964jRNVaPVxaqSsTDBHYntXaK2RUUHeLfdl4uPJNR7If1oJxSCgmtzlGk1lXrhNRhY9reY/+PR1qBS7bR1rA18yxuGSJ2YWs3AUn+KOsqrXL81+aOvBxk6jsvsy/9JZzTS+ZHx1Zi2asaxez6f4f02CNf+PgyF8/3SNtZMN0uFjztcDBVuCDR41vmTWdI09GBjjtlyB6k/8A1q8qpJ6teZ7+FilOEXtdfmeo2kxmto5CMFlBNT+1Z+msTboPQAVoCvZPlRelLSUooASijqaM0AHSkzRQaAA0ZpM0UAHWkpaTNABRigZzS0wG9KdRRmgAopKWkMKWkzSZoAx/Fh/4pm7/AOAf+hrVzRz/AMSSw/69o/8A0EVT8Wf8izd/8A/9DWrmj/8AIFsP+veP/wBBFci/3t/4V+bPbl/yJIf9fZf+kRL1OVSTwOaWONnYKoya1Le2S3G5yN3vVV8RGkrdTz8NhZVXfoR2tkFw8nXsKszttgbHHYU8MG6EGobr/Vj615FWpKd5SPdo0o00oxRHGgCinlKIzUjsMVjbQ2vqVsbXHo3BqhMhSRlrQl+5UWoIPlcde9duBq8s+V9TgzGjz0+Zbo5wwj0pPIGOlWytG2vbufP2Kgtx6U4QD0qzjFLt7UXAg8sDFKsfNT7RTguKLgRheKkVeKdt7UoFIBCOlKq0uKcOKAFApRR2oFIY6iiloASkNLQaBCUUDrQaACiiigYUlHakoAZI2GBpQcimy/w0q1K3ZUtkHQ1IOaiPWpAeBRDYKm9x1JRRVEBRR2ooGFJQaKBBR1oooASgVBc3UVoqGUv87bFCRs5JwT0UE9Aag/tS3HHl3f8A4By//E1LqQTs2jeGFrzjzQg2vJMv00mqg1KFgSI7wgdf9Dm/+Jph1S3/AOed3/4By/8AxNT7an/MvvLeBxS3py+5lwtipbG6jgvVSb/VS/KT6HsaqQ3MdzAJYiShJHzKVOQSCCDyOQao3915TpCsEsrurMAm3gDAOckf3hTm4uF+hFGnVVbkStJXunpa2977WMLxvetB4vlV48YRVB/ve/5YqPT7W51RglrCzk9T0C/U9qztZvGuPEdveavHJ9nUBSuVBKj8cfrU9/8AEmKaJdL8PxJaRDOXKkMPoBx+JNeXUvF2d/uZ9DRpucbpr/wKP+Zu3mj6VoMKm5ull1OVh5aIcAfQdT9TW1A+UBrxvTGu5PEQmkuTdSl8vuJLEfjx+tesaZdfaI3HlvG0b7GV8ZzgHsT2IrswrSieXmFKfM5aWXZp/kzTFIaBQa7Dyjmte8SnRNQMbgiEQCTcluZW3FtuPvqAPema7qXiLTtQtN9mGaRZIYX2KA65UsQPMJwNo6gYqp4o06TVtVnsIHjWaWxQKZCQMiUNzgHsDU2v315aXjalqJHlpEILZATkA8sT6E9OO1ZKlQqUXKesk5dX05eW3zbvvomfTQxCwnsuVLWCb0T3und7/iebX2oRXmqSXMxuo7h2wwTaADVu1C6jqMcjLNJLnylkkxgHHHSobxkvTJJFGgV7hpyTkNk/w9OlamgaRNLqGnShki8yd5PMQkthV5XGMY/xqlhcBZL2jTsuvVtfjv3t2Z1QxdRybVKLspPRdot3+Vr/AOW53+iaslzey2AtriOSCMM7uF2cnAGQx54P5GuiHIrm9A0ObS7+6nkumlSZEVVJBI2s+CflHOCPqS2exro1NdeJVONS1LbT8tfxPkZWvoPopKTOK5hC96KTNGaACijNJQAtHaiigBKXtRSUALRmkxRmgAooozTAWkzzSUUhimkooFMRj+Kz/wAU1d/8A/8AQ1rS0GBptGsMDj7PHz/wEVmeK+fDV3/wD/0Na3PCkwOh2kR+8sEZH02ivMxE5Qrtx/lX5s+lw9KNTKacZf8AP2X/AKRE1lRLWIkDJ/mah2tKdzkkmpLg5dF/GnquRxXmTblLU6YxUYpIgCtEdyH8KskieAkdf601l4psDbZivZhSXYfmCHinZ5pkqMjblGVqMzAfX0pbaMaV9hZjkBR1Y4qSWFnXd1H8qbDGzSeY4+gqc5Bxng9qqF1qTOz0MDbRtp9FfTHyRGVo21JRigBoXilp2KTGKAACloFKKQBRQKWgQtAopRQAoGTTmRkAJ6Gp7a33fM3SrU0QeIgCuaeIUZ8qOynhHKDk/kZlFHQ4PagV0nGIaO1LTT1oAKBRSUALSGiigZFNyo9jQhpZPu01OlJfEyn8KHMeaevQVG/Y09Pu0luwlqkx9BpKKogKKKKBhmkNBpKBCnpSdKWmmgDM1w2yrZtdoj26TM0iuu4YEUh6d+lUXshZeGn/AHKwmaZJrmONcBUZ13rx2CZX6CtG9uUg1LSfN/1ZuSCfQ7HA/nWlcBY5mVTkZ4p0MT7Obgv5k/uSO6tB+wpT6W/9ukYWh3k1nDrMllBHPZhmezjRwobAXO3tt3nqOOa56LEdxdG+jUr9ocut6RseRoYSSNpb5hg7V9GIB4ru18QaZo9pew6nMEjmiO0Huax9J1WK+j8tWBZVBxWtDHKnXknH4vPX7/8AgbhUV6Cmumgzw356+HrYXOftAMnm7uu7e2c/jSajClzfwRSAlGglyASM/NHxxVvTTm0f/r4n/wDRrVDOM6tbf9cJf/Qo65XNuEZLTb80ay1xtX/uJ+UjzzV7KW50iwCsgIsIDCrdXfB3Bff7v6Vzb6RLpVyY52HnqoK47t/nFeqeMta/s7SYfITEu7ANedwXj3xaaZt0meauvmUpVVJwslfr6eXlr3uzbD04qGj1NrxBp1vC8lxZpm3ubZ3zGy/eUHI5Pr1+mK6DTvLbxIHRQkv2lxJGV/fKPJHLHJ/d56Dpkqc1lCU3fhpLhSfP02QOP9zv+n8q63RJ1ukuplPDyqf/ACGlPDY391Gkltfr3XXv+HQivTcfaS6W/wDbomyKQmlFBPFM8g52ZHHji2nQjdDbLLtPRgHIwfzqn8VPEzXul2tsbJUIfhxzk1rwwG58brEGClrHqe37yofiD4TZrO0WK4V5C+cEYrzW6UXJy0d2fQ11WkqKhquSP6nlFoGW1G7qa7LSZEtzobEd5c/8C4Fc5dadcaZiK5QKTyMHrWzE4Y6Qi9VUH9f/AK1czleUWv5l+aO7Bx1mpfyVP/Tcj0mPoKmXiqtu2UBq0DXtnyI7NBNJQOtACjpRmk70meaAFHWikNRyyrDE0jnCqMmgCYUGr/hu0g1mwN4xIXeVAz6Vn3kiQ61cWK9IwCDmslVi58i3N5YecYKb2YmeKBmkA5zS1qYC0GikzSGBPFFIaOlMQtJnmjNGaACikz3o96AMfxV/yLV3/wAA/wDQ1q/oMpt9P06TsbeMN9Noqj4r/wCRbu/+Af8Aoa1a0sZ0OxH/AE7x/wDoIrglFSxMk/5V+bPfjNwyanJdKsv/AEiJ00+PMU+1SRvgVRtpvOslyfnjODVlGyAa8icXCbizupyU4KSJmwah6XEf1p4NMj+e5HoopFFs81GY13ZwKkpjttBPoM1oyEVLm5YN5MXDfxN6VW8uQfNvbP1p0Cl8uerHJq4YjtyRisdXqa7aGTRiiivqD48SilooABzS0Dg0negApaKKAClpM0tAhasW8HmNk9KZBEZG9q0o1CDArlxFfkXKtzuwuG53zS2HqoVcAVEHLyYH3RVgdKbtA6CvPUj1HHsZV9GY5dw6GoVNaV2qyIYz1I4rJViCVPUV6WGnzRs+h4+Lpck+ZbMlpKAaK6DlCkNHejNACZooooAbJ9w0yPpWNp2pXeoxxKt1DHNJCJjG+nyqADjoxYA8nt1qWxu7m7leODULRmUZ5s5ACM4yCXG4Z7jNTapvyP8Ar5ndPCxgnGVSN0/73/yJruPlpY+RWcZL03w08X9mboxGYRi0fOwEDP8ArPUillOo2cZea8tFA9bVv/jlZubjL3ov8P8AMFhouGlSP/k3/wAiaR4pM1R028lvFuPOeNzFLsVo0KgjYrdCT/ePerorWMuZXOWrTdOXK9dvxV0LRmkPWjtTMxaM0lANACGkJpSeaaTTArskTazpBmUNH9q5Uj/pm5z+YFVPGV//AMIxeTj/AFoOHXHYGnag225sD3Fwf/RUleaeL9RvFv7lZpXl844y5zgDpXFVjKMnOPR/oj2KcoSpU6U+sf8A26Rn67rkutXiyyjaijCrVvwjqclpryKzEpKNuK5yCGe8uEihUsx/Suu0eztdPu4lZhLck8n+79KxjOTqJ9S6lOEaLjsj0LTGzZv/ANd5v/RjUxrm1HifTbaeXyxMrxFvQsUx/I0zSHzaN/12l/8ARjVleIl26jYz+XvI3HAHOAV/xrqd/Yq3l+hirfX6l1f+J+Ujr/Huj6dqOiDS9OaNZ4T5hfrzjoTXg1hG9pcPbzcSBiGHvXr0vmqdsYZXbsawdX0jTNGuf7RuSshK5I9DXJiI+y3d7nRhpqqtFaxiaFexR3z2sx/c3CFHBrsPDEItbWe3DbgkoXPqNi15msg1DVw8I2oz5GPSvTfD6lBcrn/lqP8A0BK0w8GmpPq/0ZGIqxlTqQXSP/t0ToR0pDQo4oPSvQPFMfTI5tT8etb2/wAkiWZXJOOjZzWJ8UE1fRdQsfMuSQQSpDZFdCbO5t9aGqWN0sE3k+Vhoi3Gc54Ye1YHi6yv9aVHvbsTtH0Kxlcfmxrz3Sq3kuXRvy/zPfnXws4U5KpZqKT0luv+3Tz671W8v3QzvvZRgV0WlF5r2w8wYKrtx9ATWdB4eZJwRv49Wz/Sus0jRnS5gneVdsWflCdcjHXNL6u2laOzXbo031KoYunSlJyqp3jNbS3cJJfZ7tHW2wxGKtCoYwMCphXonzw6ikoBoAWjtSZozxQAGs/VSTYyqO61oNVedBIpBGc0CPP7fxPrGlb4LKdo4y2SuM81v+Hrm6vLyS6umLyOOWNSzaFDJNv2jmtSysktVAUc1lGkoy5jolWlKCgaI6UE00E0Z5rUwFopKM0AGaBSUZoAX60Z4ptL0oAKKM0UAY/in/kWrvP+x/6GtXdJ/wCQLY/9e8f/AKCKpeKf+Rau/wDgH/oa1c0n/kDWP/XvH/6CK5F/vb/wr82e5L/kSQ/6+y/9IiaFlJ5V3sP3ZOD9a0CrwscDK1kODjcPvDkVuWswuLdJPUc1yY+j7yn3Fltb3XB9CMPJJwqn6mrESLCnJ+pNO+VQSeAOaosWuG3N93sK8+yiepfmNBZFbowNMl5jYe1UvKxypwasRSmRCrfeFNSvoJq2qI7X5QParMku4VVTjK9wafULRWKerMzNLSHrSZr6c+RFooooELRSUtABS5pKO9AC1JHGZGwKaqljgVoW6KqAjvWFesqa03OnDYd1ZXewQr5TbD+FQXd08NzGi9G4PtVmYfLuHUU0JHOA5GTXlVJOTue7h1Gno1oWkPyjPWlJpoOBims2AakGQXQOA69VrOulw4lX7rdatRXsU88kKsCy8EVGyZ3wnvytdeHqW17HFiaXMrdysjZp4NQKdrFT1FTA16Z4m24tIaWmmgAzTHfYjNjOBmnZ4qGYnYcUxnPeF9TjW2aS7RxKUjiUKCTsRcKPz3N/wKrmiw6jGdPMelyYs7Q2u4lf3pLJ8456AJnnnk8UvgpY2u7ZXUHMC8f8BFeiSSwW6nJVcdq8z67VSa01S+Wlvydj6epRp+0m31k/zOBg0LxCuvreF4Nrxz75RHgjc0e1fvHsgAwOinPJzS65YT28T/abgyuUzjpit3VPEcNuCBMq4964/UfENtdllMuTsIzms6tWrWacuit+JLdOEWtET+HZCRdr284H/wAcWt/tXO+GSHF0w/56j/0Ba6OvSpfD83+Z4eM/iL/DH/0lCHpSZp3Wm961OYXPNHeim5oAVvWmZpT6U09KAM3UzmexH/Tc/wDot64rxhpYnZZM7QTgt6V22opKWtZI4Wl8qUsyoQDjYw7kDqRWPqkcl5bPG1hcDI7tH/8AFVi7e8nf7n2R6Ci5RpSi1orayS+1J9Wjzq81GHSIRb2K5kYfM5qfw1BcPfG5lYnee9Pn0Iif54jwehxXQ6NYyxFSLWVgP7pX+pFc9GChO7v9z/yN8Rz1Icqcdf70f8zptFyLQ5/56Sf+htWlLpS3gW5IYyQk7QkjIQOM8qR6CsdLh9Ns42liKhpn3LkEqGckdOOhFbTXn2W2dy+1NuTmt3HmopW6IwqVfZ4ydSEravVPzezXc4/xvrllZ+StkbpbsnDq91K//oTGuGudQvLlD50xkDdn+bH51seK7Az3S6ojB42+U+1YlpbteXkcA6MeT6DvXmzUG9FsevTxGIS1m7vzZq6FZyuyyyKAD93aoU/pXo2k26wQ/KD8zbmJYsScAd/oKw9OtU84BMbFAAxXVQIFUAV6VCnGME7aniYvFVqk3Fzbj6suKeKU01c4p1bnGRvVKe383gir5HNN2jNMDHGmqGzirsFuI6tbaAKAFUVIKaMCl96Qh2eeaM0Z5pDQMX2pKKKBC9RTSKcKM0DI9vOKAMGnGkoAcDxRmkpe1AC9aSkzRmgBT0ptLnmkoAXPSjtSCgn2oAXOaCab3p1AGP4p/wCRcu/+Af8Aoa1c0rjRrH/r3j/9BFU/FP8AyLl3/wAA/wDQ1q3pX/IGsf8Ar3j/APQRXIv97f8AhX5s9yf/ACJIf9fZf+kRLuas6VNsmeAng/MtVaYXMUqSr1U5rWvT9pBxPLw9X2dRSN+5bEJHqcUkMW7AHWo5XEkKODwcGnxybenpXz7+LU+mXw6EjIFzVVjsmVvU4NWGbIqrP90fUVMmVEkmUht60wTpjk4qwOQKzr+6itz5caiS4P8AD2X3NaKm5u0dzN1YwV5bEWaKSlPWvoz5QOlA60maWgApaQGloAKcASeKb3qzb7CeoJ9Kzq1FCN2a0aLqysSwIoTPelgzEXUnjdkVGgMUz8/I3I9qr6ncSWqoyIX3EYxXkVJuTuz3aVNQXKjRlm2Bcj5ScGoo38mdoj91uVpUO+NQ45IyRTLuMtCHT7ycismaolhull3AdVOCKgOpRDUFtSfnYZxVITCK5Scf6uXhvY1Ye0gF0L1gN6jAPtQm2bVIJarZipZ2+n3E91nBk5JNSSMJY1lQ5I5qteousaZJHDJgnjIPSpbKEWdlFbM+5guCT3rWD5XdHNUjdEFyoyJl6N1pqtmrJQfPCeh5FUgSjFT2NepQndcp4eKp2lzdyx1ptIDmlHWtzlA0xxxTzTWGRQM4eS81DRRbtHbyRSpEqMWKkEgY4wTVK68Qa5fEhpWUH+7Xa3tklypDAGqSaTEv8IrlWEjvd/h/kenPMpTbbpx11+1/8kcQbW+nbMnmuT6kf41attGnZwTazN9Cv+NdsljGvRRxVmOFV6CtVRttJ/h/kYPFRe9KP/k3/wAkUtCtZLaOffC0W+XKqxBONqjsT3BraFRquBTs1pGPKrGFaq6s+Zq2y08lbrfsOzSd6SjNMyFzmmmiimAU1jTqaaAI25qCWIMDxVk0wimBkvpkcj7mUVZht1iXCirhFNC807iK0mFZGZA6owbafasD4i67BNp0cdkCjy8OBxiumkUFa5LxTpIu7Ysg+deRWU6fN7y3N6VXl92Sujz46ncLZfY3YtHnjNXrSRbDTZrxvvuNsdZwtHeUpINu08mrX2Wa/uba2UEwxngDua8+dB3909SniVb3tztPCXmmxjMpJY8812kI4Fc7oVq0CbHQqRxgjFdLGOK9NKySPGk7ybJRxS5zSUUCFo4o60hoASjFFHegApwPFJigHFAC0GkooAXPNApOKDQAueaKSjPFAC5pKTNGaBC0ZpM0lAxc0ZpM0UAKTRjikoB4oAcKTOKTNGeKAF60tNFGaAMnxSf+Kcu/+Af+hrVvSf8AkDWP/XvH/wCgiqnij/kXLv8A4B/6GtWtK/5A9j/17x/+giuRf72/8K/NnuT/AORJD/r7L/0iJdyKRxkUDpSZzXWeIW7CUtbvCT8ydPpVxGBUVkRSeRcCTseDWkysh3pyDzivCxtJwqXXU+iwFZVKVnuixmon+eVIx1zk1EbhugXms6e9kkdobc4PR5f6CualTlVlyxOqrVhRjzSL17qRRjb2pBk6M/Zf/r1nxxBMkkljyWPU0RxrGoUCn5r3qFCNJeZ85iMTKq9dibNGeaTPaiug5haXvTelLQAopaQe1KJFW4jjf+PpUTmoK7Lp03UlyoIpo/tPlMfmxxTY7d4b55Nx2k5FQ3tm4v4p4zxkZq1fNItg80I3OoOBXk1ajqSue7RoqnGyF1O4ktrMzxoZDjgCp7R2uLCN5kxJjOD2qloc1xd6UhvI9sh52mkOqJFqsdoQd7dvasvM38ieC/jkvTApJcDJHpWkDuGKzbn7Pp/m3ZAUkZLVPY3aXdsk0ZyrdDSYylcQ7ZJLc/df5kPoadE5u7F4WOHA2mrOoRGSHen305FZySiK5SccJLww9DWezOmn78HHr0JtGsRo9p5LSFyzE5Y1Fd2962uwPG3+j4+aodat725mtvsj7QHBb6VtMzLanbzIq1qjmkgmXgMvVap3afdmXoetRaHc3F3FM1whXa5Az3q80ed0R6HkV1UKltexw4mlzJruUkan5qAZRyh6iplOa9Na6niNNOzHE5pDmk6UZpgNK5pmypT0ptACBaXb3oFKTQAtFGaTNACnijNJSd6AHUE0neigBCeaCaO9IaAA80007tTSeaAExSEU6kpgMbpVK4iDqQRV4ioXXNNCscZqugJKxkjGCeuKp6fENM1C3ZkyQ4wMda7h4Q2arLYwrdwzugbynDgfSpnG6di4S95XehqX11BJ5LJHtcjDcYP406Igjg1neP8AW9NstNs57Bl+1O/7xQece9cxpXjBG1ERSnCOOvvXJRqpPkO/EUHKPtF/w/md7SZpiOHQMpyCMg04da6zzh1LxTaXNABTaUmg0AGeKSig0wCjNJmkoAXNGcU3NGaAHg0Z5pmeK43xX4s/s6QW9u3z9zSbSV2Fm3ZbnaZpc1574d8ZPcXQiuTweAa75HDqGU5B6UJqSuhuLi7SVmSZopuaM0AFLmm5opiHZzRmm0UAOzRTaXNAC0d6bmjNAzO8RxyT6DcxwxvI7bcKikk/MO1UrDxFpUGmWsMl1tkSFFYeWxwQAD2rfzSVzToz9r7SEkna2qv+qPVoY6gsJ9Ur03JKTkmpKLu0lreMu3kZI8T6P/z+f+Qn/wAKD4n0f/n8/wDIT/4VrZozmny1/wCZf+Av/wCSI9rlv/Pqf/gyP/yox38TaQyEfa//ACG/+FaVr4y0P7OizX2HAwf3LnP/AI7UtRMhb5dx2E5K+tYV8PWqpJyX3P8A+SOjD43L6LbVKev/AE8j/wDKype+MNLnYxw3XlxdC/lvlv0qBPEeiouBd4A/6Zv/AIVrBQBxS5qqWHq01ZSX/gL/APkia2MwFWV5Up/+DI//ACsy/wDhKNH/AOfv/wAhP/hSf8JPo/8Az+f+Qn/wrVorXlr/AMy/8Bf/AMkY+1y3/n1P/wAGR/8AlR//2Q==\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "image/jpeg": { + "width": 600 + } + }, + "execution_count": 35 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Load Test and Valid Dataset" + ], + "metadata": { + "id": "eYezvhv_iEpY" + }, + "id": "eYezvhv_iEpY" + }, + { + "cell_type": "code", + "source": [ + "import supervision as sv\n", + "\n", + "ds_test = sv.DetectionDataset.from_coco(\n", + " images_directory_path=f\"{dataset.location}/test\",\n", + " annotations_path=f\"{dataset.location}/test/_annotations.coco.json\",\n", + ")\n", + "\n", + "ds_valid = sv.DetectionDataset.from_coco(\n", + " images_directory_path=f\"{dataset.location}/valid\",\n", + " annotations_path=f\"{dataset.location}/valid/_annotations.coco.json\",\n", + ")\n", + "\n", + "ds_merged = sv.DetectionDataset.merge([ds_test, ds_valid])\n", + "len(ds_merged)\n", + "\n", + "\n", + "print(ds_test.classes)\n", + "print(ds_valid.classes)\n", + "print(ds_merged.classes)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "bETZFp1tbEV6", + "outputId": "9791f571-e953-44e8-da2e-14b888cdf514" + }, + "id": "bETZFp1tbEV6", + "execution_count": 48, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "['circuit', 'Button', 'Buzzer', 'Capacitor', 'Capacitor Jumper', 'Capacitor Network', 'Clock', 'Connector', 'Diode', 'EM', 'Electrolytic Capacitor', 'Electrolytic capacitor', 'Ferrite Bead', 'Flex Cable', 'Fuse', 'IC', 'Inductor', 'Jumper', 'Led', 'Pads', 'Pins', 'Potentiometer', 'RP', 'Resistor', 'Resistor Jumper', 'Resistor Network', 'Switch', 'Test Point', 'Transducer', 'Transformer', 'Transistor', 'Unknown Unlabeled']\n", + "['circuit', 'Button', 'Buzzer', 'Capacitor', 'Capacitor Jumper', 'Capacitor Network', 'Clock', 'Connector', 'Diode', 'EM', 'Electrolytic Capacitor', 'Electrolytic capacitor', 'Ferrite Bead', 'Flex Cable', 'Fuse', 'IC', 'Inductor', 'Jumper', 'Led', 'Pads', 'Pins', 'Potentiometer', 'RP', 'Resistor', 'Resistor Jumper', 'Resistor Network', 'Switch', 'Test Point', 'Transducer', 'Transformer', 'Transistor', 'Unknown Unlabeled']\n", + "['Button', 'Buzzer', 'Capacitor', 'Capacitor Jumper', 'Capacitor Network', 'Clock', 'Connector', 'Diode', 'EM', 'Electrolytic Capacitor', 'Electrolytic capacitor', 'Ferrite Bead', 'Flex Cable', 'Fuse', 'IC', 'Inductor', 'Jumper', 'Led', 'Pads', 'Pins', 'Potentiometer', 'RP', 'Resistor', 'Resistor Jumper', 'Resistor Network', 'Switch', 'Test Point', 'Transducer', 'Transformer', 'Transistor', 'Unknown Unlabeled', 'circuit']\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Calculate Model Metrics\n", + "\n", + "\n", + "* Mean Average Precission\n", + "* F1 Score\n", + "* Confusion Matrix\n", + "\n", + "\n" + ], + "metadata": { + "id": "fEqJhh47iK0o" + }, + "id": "fEqJhh47iK0o" + }, + { + "cell_type": "code", + "source": [ + "import supervision as sv\n", + "import torch\n", + "import torch.nn as nn\n", + "import torchvision.transforms as T\n", + "from PIL import Image\n", + "from supervision.metrics import F1Score, MeanAveragePrecision\n", + "from tqdm import tqdm\n", + "\n", + "MODEL_FILENAME = \"output/dfine_hgnetv2_l_custom/last.pth\"\n", + "YAML_CONFIG_PATH = \"./D-FINE/configs/dfine/custom/dfine_hgnetv2_l_custom.yml\"\n", + "TRANSFORMS = T.Compose(\n", + " [T.Resize((640,640)), T.ToTensor()]\n", + ")\n", + "\n", + "DEVICE = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")" + ], + "metadata": { + "id": "PgiW8-ShhzgE" + }, + "id": "PgiW8-ShhzgE", + "execution_count": 53, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "def run_on_image(model, image_array):\n", + " im_pil = Image.fromarray(image_array)\n", + " w, h = im_pil.size\n", + " orig_size = torch.tensor([[w, h]]).to(DEVICE)\n", + " im_data = TRANSFORMS(im_pil).unsqueeze(0).to(DEVICE)\n", + " output = model(im_data, orig_size)\n", + " labels, boxes, scores = output\n", + " class_id = labels.detach().cpu().numpy().astype(int)\n", + " xyxy = boxes.detach().cpu().numpy()\n", + " confidence = scores.detach().cpu().numpy()\n", + "\n", + " detections = sv.Detections(\n", + " xyxy=xyxy[0],\n", + " confidence=confidence[0],\n", + " class_id=class_id[0],\n", + " )\n", + " return detections" + ], + "metadata": { + "id": "KC3kwCNbiusI" + }, + "id": "KC3kwCNbiusI", + "execution_count": 54, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "cfg = YAMLConfig(\n", + " YAML_CONFIG_PATH, resume=MODEL_FILENAME\n", + ")\n", + "\n", + "if \"HGNetv2\" in cfg.yaml_cfg:\n", + " cfg.yaml_cfg[\"HGNetv2\"][\"pretrained\"] = False\n", + "checkpoint = torch.load(MODEL_FILENAME, map_location=DEVICE)\n", + "if \"ema\" in checkpoint:\n", + " state = checkpoint[\"ema\"][\"module\"]\n", + "else:\n", + " state = checkpoint[\"model\"]\n", + "\n", + "\n", + "cfg.model.load_state_dict(state)\n", + "\n", + "class Model(nn.Module):\n", + " def __init__(self):\n", + " super().__init__()\n", + " self.model = cfg.model.deploy()\n", + " self.postprocessor = cfg.postprocessor.deploy()\n", + "\n", + " def forward(self, images, orig_target_sizes):\n", + " outputs = self.model(images)\n", + " outputs = self.postprocessor(outputs, orig_target_sizes)\n", + " return outputs\n", + "\n", + "model = Model().to(DEVICE)\n", + "\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "vfP6Tj2si4EV", + "outputId": "b4e4654a-f964-498e-a0aa-70535ee94391" + }, + "id": "vfP6Tj2si4EV", + "execution_count": 55, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# @title Collect predictions\n", + "\n", + "predictions = []\n", + "targets = []\n", + "print(\"Evaluating...\")\n", + "for _, image, target_detections in tqdm(ds_valid, total=len(ds_valid)):\n", + " detections = run_on_image(model, image)\n", + " detections = detections[detections.confidence > 0.001]\n", + " predictions.append(detections)\n", + " targets.append(target_detections)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "psDNR0SgkCoO", + "outputId": "59bd9f0c-88d8-406b-c3e4-f31decdcafe4" + }, + "id": "psDNR0SgkCoO", + "execution_count": 68, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Evaluating...\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 64/64 [00:03<00:00, 17.25it/s]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# @title Collect maP and F1 metrics\n", + "\n", + "mAP_metric = MeanAveragePrecision()\n", + "f1_score = F1Score()\n", + "\n", + "f1_score_result = f1_score.update(predictions, targets).compute()\n", + "mAP_result = mAP_metric.update(predictions, targets).compute()" + ], + "metadata": { + "id": "EzyutMQxk1V7" + }, + "id": "EzyutMQxk1V7", + "execution_count": 69, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# @title maP Results\n", + "\n", + "print(mAP_result.map50_95)\n", + "print(mAP_result.map50)\n", + "print(mAP_result.map75)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "JMgfVOYuk93p", + "outputId": "c282e6fb-2335-44ec-bfeb-74aa35376939" + }, + "id": "JMgfVOYuk93p", + "execution_count": 81, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "0.04512539627062785\n", + "0.09946413772293412\n", + "0.026075016568393537\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "mAP_result.plot()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 607 + }, + "id": "7TmvFvHilnpN", + "outputId": "1a4858a8-76fd-4b21-f126-5e4207c99066" + }, + "id": "7TmvFvHilnpN", + "execution_count": 71, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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UVFRWrZsmXbs2KGFCxfqpZde0kMPPeSsnz59uhYvXqzFixdr69at6ty5s/r06aN9+/a5oTeA93KZmXk6CE9JTU1VQECAUlJSVK5cOU+HAwAAABRa06ZN1aVLF82cOVOS9O6776p37946ePCgAgMDz3p/9957r7744gtt3LhRktSjRw+FhIRo0aJFkqSjR4+qTJky+uCDD9SlS5ei68hfcD3yZbE8jifZxJbn1M7bc3OueSlOha0nOdMNAAAAXGAyMzO1bds2RUREOMuioqKUnZ2thISEs97fzp079e677yosLMxZFhkZqfXr12vv3r0yMy1dulTBwcG66qqriqQPwMXCz9MBAAAAADg7ycnJysnJUVBQkEaPHq3169crPj5eJUuWVGJiYqH3M378eD3zzDM6fvy47rzzTs2aNSvfutTUVNWoUUO+vr4KCgrSBx98oIoVK7qjS4DX4kw3AAAAcAELCQlR9erVz6nt2LFjlZCQoNdee03vv/++FixY4KxbtmyZXn/9db3zzjuKj4/X4MGD1atXL+3fv7+oQgcuCpzpBgAAAC4wgYGB8vHxUVJSkiZMmCBJSktL04kTJxQcHFzo/QQFBSkoKEj169fXiRMnNGLECEVHR8vHx0fjxo3T2LFj1bNnT0nSlVdeqbffflsvvvii85gA/h5nugEAAIALjL+/vxo1aqQNGzY4y9atWydfX181b97cWZaenq7du3crPT39b/fp6+urzMxMZ9qww4cPy+VynbbNsWPHiqgXwMWBohsAAOA84O45lyVp48aNioyMVOnSpRUYGKihQ4cWdTdQjIYPH67Y2FitWLFC8fHxGjdunPr165dv5PK4uDjVqlVLcXFx+dp+8cUXeuyxx7Rp0yb9+uuveu+99/Tggw/quuuuU8mSJSVJXbt21cyZM7V69Wrt2rVL06ZN0/bt29WtW7di7SdwofNo0f1PP1xynTx5UuHh4XK5XEpKSnJDpAAAAO7l7jmXt23bpk6dOik8PFxffvmlNmzYoN69e7uhJyguI0aM0KhRozR06FC1a9dOTZo0UWxsbKHalilTRp9++qm6d++uunXrKiYmRj179nSmB5OkuXPnqnPnzrrlllvUpEkTvfHGG3rttdfUunVrd3UJ8Eoenaf7ueee0/jx47VkyRJVqVJFgwcPVtOmTbV06dKz2s+DDz6o9evXa926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X6WmpmrVqlWeDue88+fXEK+pU/78RYa8nJKdnS0fHx8dPXpUy5cvpwDPI+9zhOdLfrmvJ/JSsF27dnk6hPMWRWXBVq5cKTOTr6+vp0PxehTdF4mMjAytXr3a02Gcd7Kzs5WTk6PMzExPh3LeSUtL0/z585WSkuLpUDwub8Fdo0YNLV682NMhnVeys7PlcrmUlZWlAwcOKC0tTS6Xy9NheVzu8+bIkSPq37+/JJEX5X89XX755frqq6/k48PXESn/ayk9PV1paWmeDum8kfd5M336dP3xxx+eDum88p///EcNGzbU77//7ulQzjvLli1TTEyMunXrpsWLF+vHH3/0dEjnhQULFqh37976/PPPPR3KRYFPuYtAamqq6tSpow0bNng6lPNKamqq+vfvr6ioKPXv318vvPCCp0M6b+QWl1988YUCAgIkXbxnFnJycuTr66u0tDQ1adJEnTt31uuvv+7psM4buUfIU1NT1b59e3Xv3l0NGzbU//3f/2nz5s2eDs9j8hYIzZs3V2JioqdDOi/kvp5SU1PVtGlTtW7dWtOnTy9wu4tN3tfSddddp4iICPXo0UMTJ070dGgel/f1VLt2bW3evFkhISGeDuu8MX/+fI0dO1aLFi1SlSpVPB3OeeX111/XrbfeqjJlysjM9OSTT+rOO+/UunXrPB2aRy1YsEAjRoxQXFycIiMjPR3ORYF5ur1c7hebpk2basWKFaetz8nJuSjPMBw/flxXXXWV6tSpo7CwMP322296/vnnNXToUE2bNk3ly5f3dIgek5aWpkaNGql169YUl//fsWPHVKtWLdWrV0+fffaZJOnFF1/Uzp07Va5cObVo0UKdO3f2cJSec+LECUVFRaly5coaNWqUPvnkE33++edKS0vTE088oQ4dOng6xGJlZnK5XEpNTVWzZs3UvHlzvfnmm8663MLzYpX7/lu2bFlt3LhRkrRkyRIdOHBAJ06c0PDhw1WhQgUPR+kZmZmZioiIUM2aNdWtWzft2bNH//nPf9SyZUstWLBA1apV83SIxS739ZT72RQREaGlS5c66/N+j8nd9mLy/PPPKzo6WkuWLFG/fv20f/9+/frrr0pLS1OdOnVUq1YtT4foMTk5ORowYIAuu+wyPfXUU5KkDz74QC+//LI2bdqkBQsWqH379h6N0RNef/11DRgwQK+//rr69eunX375RZ999pm2b9+uTp06qW7duqpevbqnw/Q6fp4OAO5z7NgxtWzZUnXq1HEK7nfeeUeHDx9WTk6Obr/99ouy4JakTZs26dixY3r22WdVtWpVSdK//vUv9e/fX2lpaZo3b54uvfRSD0dZ/DIzM9W+fXuVKVPGKbjnzJmj7777Tj4+Pmrfvr369u3r4Sg9w8yUnZ2tn376SZMnT9amTZtUqVIlHThwQP7+/ho8eLDGjh3r6TA94vDhw8rIyNA999yj9u3bq3379vrkk0/00ksvafjw4Vq4cKGioqI8HWaxyb08uG3btsrMzHQK7oceekjbt2/XTz/9pIEDB6p79+6qV6+eh6Mtfl988YVycnJUuXJl7dq1S9OnT9eXX36pEydOKDMzU7NmzdKqVat09dVXX3QHhn/88UcdPnxYL774oho3bixJ6tevn2644QYNGDBAb775pkJCQi6q4tLlcunEiRPq3Lmz/Pz8nIL7iSeeUEJCgrKzs3X11VdrzJgxcrlcF1VusrOz9cQTT6hMmTLq1KmTtm7dqptvvllmpu+//15XXXWV+vXrp/vuu8/ToRa73M/s/fv3Kzg42FleunRpDR48WD4+Prrvvvu0cOFCNWvWzHOBekDeK6+2bt2q3r17KygoSAcOHNBrr72mli1b6qGHHlKDBg08GKX3uXg+yS5C77//vo4ePaoaNWro6NGjGj58uCZOnKhJkyZp/PjxuvLKK/Xrr79Kuvgu5StdurQyMjK0Y8cOSae+BJ48eVJr1qzRO++8o4ceesizAXpIYmKi/P39FRoaqnfeeUcDBw7U3Llz9csvv2j79u266aabNG3aNE+H6XZ5LwDKzs5WqVKltHPnTh04cEB169bVb7/9prfeekvr16/XmjVr1K1bNy1btkxbt271YNSekTsmws6dO3Xw4EFJ0tq1a7Vr1y4NGjRIYWFhmjRpknbu3OnhSN0v7/uon5+fBg4cqOTkZM2fP19DhgzRG2+8ocqVK6t27dp66aWXNGnSpIti4KM/X1DXoUMHPfTQQ0pLS1Pr1q21adMmLVmyRJ9//rm++uortW3bVv/617909OjRi6rgliR/f39lZWU5n00bNmzQF198oU8//VT79u1TTEyMpItjbIC8r6eTJ0+qcuXKqlq1qhYuXKgbb7xRL730knx8fJSdna1JkyZp6NChki6O3Ej/ux3hyy+/VKVKlXTVVVfphhtu0LXXXqvXX39dX3/9tVq3bq2XX35Zb731lqfDLXYul0slSpRQjx499Morr2jz5s1avXq12rdvr4yMDN1222269NJLFRcXJ+niuIXul19+UVZWlu666y49+eSTuvHGGxUZGalBgwZpxYoV2rNnjx5++GH9+uuvWrZsmaSLIy/FxuDVnnvuOWvbtq1ddtll1rx5c0tISLA9e/bYjz/+aGFhYXbVVVd5OkSP+P33361mzZoWHR1tKSkp1rVrV2vRooX9+uuvtnTpUitdurR98MEHng6z2GRkZNjevXvNzOzHH3+0Hj16WKVKlezqq6+2bdu2mZlZWlqaPf3003bppZfap59+6slw3SorK8v5NyMjw06cOOGsO3LkiHXu3NleeOGFfG1+/PFHK1eunL322mvFGqsn5M1PXjExMVa7dm379ttvbfr06Va2bFnbtm2bvffee9akSRNbsmSJJ8ItNrn5yMjIsFWrVll2draZmT355JPmcrmsSZMmtmvXLmf7l19+2Ro0aGBvvvmmR+ItLrl5yc7OtszMTDt+/Liz7tVXX7W+ffvaRx99lK/NL7/8YlWrVrW33367WGMtbn9+DZmdev6Eh4dbt27d7PDhwzZw4EBr2LChbdu2zdavX2/ly5c/7f3HG+Xm5ujRo/b111+b2an331tvvdVCQkKsZcuW9v3335uZ2cmTJy0uLs4qVKhgr776qsdi9qQjR45YvXr1rGfPnpaRkeEs37dvn7Vt29b+7//+z4PRFa+VK1fme0/Zvn27de/e3Tp37mw//PCDLVq0yL777jszMxs/frxVr17d0tPTPRVusXn11VctPDzc9u3b5yx77rnnrE+fPrZ3717nM8vMbNSoUXbFFVfke7/GP0fR7WVyXzQnT550lj311FPWo0cPW7NmTb5tv/nmG6tUqZKtXbu2OEP0iMOHD9u9995rZmY5OTlmZrZq1Srz9fW1efPm2datWy0uLs7MzJKSkqxZs2Y2c+ZMj8VbnNLS0qxJkybWtWtXS0tLMzOzn376yQYNGuTkJNeBAwesQYMGNmfOHE+E6na5r5/U1FTr3r27RUZG2hVXXGFz5861H3/80czMjh8/bklJSU6bnJwcS09Pt9atW9vKlSs9Endxyf0inJKSYjfeeKN9++23zrqNGzda586drXv37rZ9+3bbunWrs+6aa66xXr16FXu8xSVvXurXr2/NmzfPt/6VV16x2NhYO3nyZL5Cq2XLlnbLLbcUa6zFKe/r6eabb7Y2bdrYjTfeaE899ZSzTXx8vB05ciRfu127dlm9evVs9erVxRpvccp9Hhw+fNj69etnZv/L19atW61cuXI2btw427Nnj7377rtmdqoAjYqKsnHjxnkm6GKSm5vU1FRr3LixhYWF2cGDB83s1Gts9OjRtmTJEuezPHfb8PBwmzJlikdiLk7vvPOO3X///XbzzTfb6tWrbc+ePWZ26vmR93te7vPplltusVtvvdUToRa72NhYK1mypK1fvz7f8qVLl1pkZKR169bNtmzZ4iz/8MMPLTw83P7444/iDrVYzZ0711wul7lcLps4cWK+dbt373Z+z60dFixYYJ06dbLMzMxijdPbXVzXbXm5tLQ0Z0qE0aNHO5eG3HPPPRo/fryaN2+eb3uXy6XSpUurXLlyngi32KSmpurKK6/UN998I+l/l5716NFDTzzxhKKjo/X++++rV69ekqTAwECFhIQoPT3dYzEXl9TUVDVo0EB//PGH/vjjD2VkZEiSateurdmzZ6tjx46S/nd5Ufny5RUUFKRSpUp5LGZ38vHxUUZGhlq2bCk/Pz/FxMSoQ4cOuu+++/Tggw9q8+bN8vf3V8WKFZ02LpdLr7/+uvbs2aMaNWp4MHr3yjt6cP369ZWdna2mTZs661u3bq1bbrlFaWlpuvvuu5WVleWsq1evnqpVq+aVt7HkzUuTJk0UFBSk33//XfPmzXO2ufnmmzVkyBD5+fnJ19dXWVlZMjPVrFlTTZo08WD07pU7D/fVV1+t48ePq1evXvL399eUKVM0fPhwSVJYWJgzQ0KuNWvWSJLXjsJ8ppHtfXx8ZGZq3LixXnzxRT399NN67LHH1KZNG0mnbouqUqWKjh07Jsk7L/vMm5sGDRro2LFjSk9PV3JysiSpXLlymjZtmrp37+58lpuZypYtq0qVKjnfZ7wxN5K0aNEiDRgwQHv37tWuXbv0r3/9Sw899JC2bNmi0qVL5xsULPfzbO/evapfv77ngi4m8+bN06hRo/TSSy+pbdu2+dbddNNNio6O1smTJ9W7d28tXrxYH374oWbOnKmAgAAFBQV5KGr3mzdvnkaOHKmVK1fqpZde0urVq/Pd1pT3e4ufn59OnjypZcuWqUqVKipZsqQnQvZenqz4UXTS0tKsXr161qtXL7v77rutZ8+eVq5cOZsxY8YZ2yxYsMCaNm2a75JHb5OSkmK1atWyG2644YzbPPvss+bn52d9+/a1yZMn28yZM83f3/+0KwO8TUpKitWoUcMGDhxoZmb169e34cOH/2Wb559/3qpUqWLffPNNcYToEc8//7xFRkbmW3bHHXeYj4+PXXfddZaQkOAs37x5s02YMMFKly5tb7zxRjFHWnxyzyilpqZaaGio3Xzzzc66EydOWHJysvN3XFycdevWzcqVK2d33nmnDR8+3EqUKGGrVq0q9rjdLfdMUkpKioWGhlrfvn0tJyfH7rrrLrvpppvs+PHj+S7Zy5WVlWUvv/yyBQYG2meffVbcYReruXPnWmRkpHPJa3JysvXp08dcLtdpZ/nXrl1r06dPt0suucRrX0+5r6Xcz6brr78+37q8V0KsWrXKKlSoYBERERYTE2OTJk2yEiVKnHY5vrfIzc2RI0esZs2adtNNN5mZWceOHa1Hjx5/2faFF16w4OBg++9//+v2OD1l586d1qRJk3y3pEyePNlcLpd1797dNm3a5Cw/fvy4bdq0ybp162bNmjXLd/WjN/rwww/N5XLZ0qVLzcxsx44d9uijj9rIkSPtsccec87YfvnllzZy5Ei79NJL7corr7R27do5t5AV9F59oZszZ475+fnZW2+9ZWZmGzZssIoVKzpXMea9WiQjI8NWr15t7du3t6ZNmzrPmbzb4J+h6PYS06ZNsw4dOjhvLL/88ou1atXKXC6XTZ48Od+2X3zxhT399NPm7+9vy5Yt80C0xePEiRNWu3Zta9iwobNs+vTpdscdd9h1111nL7/8siUmJpqZ2fr1661bt27WokULi4iIcD7UvPXNJj093SpVqpTvYMQzzzxjERERBR6EWb9+vY0aNcouvfRSe/3114sz1GI3f/58q1mzZr48LFmyxCIjIy0iIsLuvvtuS0lJsZSUFHvppZfsmmuucT7QvPX5YnbqsrN+/fqZn5+fs+z//u//rFOnTlavXj274447nEtAd+7caTNnzrSOHTvazTff7Fx27435OXr0qFWqVMn69+/vLHvrrbesRIkS9tVXX522/Zdffmn33nuvlSpVyutfS2ZmDzzwgDVt2jTfsoULF1q/fv2sfPnyNmrUKGf5rFmzrE6dOl7/esrKyrImTZpYlSpVnGWTJ0+2G2+80Vq0aGGzZs2yHTt2mJnZnj177NZbb7WOHTtaly5dnPvcvTU3R48etapVq9q//vUvZ9mrr75qYWFhzu0sefv++eef2/Dhw61s2bJeP6bGtm3brGrVqvlOCPzyyy/WrFkzi4qKsltvvdV+++03MzP74IMPrEePHta6dWunqCxoDAFvkJ2dbc8995xdccUVNnLkSEtISLD69etbu3btLDIy0gICAqxt27bOuDVmp+51T0xMLPCWTG+Qk5Njx44ds3bt2p1WYI8cOdKuvPLK0y6p/+qrrywmJsa6devmPGe8LS+eRtHtJaKjo61r165m9r8XydSpU61bt25WokQJ+89//uOsGz9+vIWGhnp9YZmVlWXDhg2zgIAA+/DDD23w4MFWt25dGzRokLVt29YaN25sw4YNc9540tPTLTs72w4fPmxmp/LirblZsWKFPfDAA/mWfffdd1auXDmbP39+vuUnT560jz/+2Dp06GDvvPOOmXnvc8bM7N1337XGjRvbU0895dzr1KRJE5s1a5Y9+eSTVqZMGfvhhx/M7NTZqtxC05ufL2anzpzMnj3bwsLCbNCgQXbzzTdbixYt7IEHHrBp06ZZ5cqVrU2bNpaSkuK0ycrKcnLirflJSkqySZMmOX/n9rFPnz524403njZAz6effmqjR4+2999/P9/23mrt2rUWFBRkzzzzjJmdeh41aNDApkyZYlOnTrXatWs7gxqZmf36669m5p3Pl7z9efzxx83f39/mzZtngwcPtgYNGtg999xj/fv3t6ZNm1r//v2dwjv3Mz33ueTNufnss8/ssccey7fujz/+sKpVq542GFh2drbFx8db3759vfrAXq4ffvjBWrRoYdOmTXM+dxYvXmzXXHONPfbYY1ahQgXnM3r//v22bt06p9D29uIpIyPDFi1aZA0aNDBfX18bO3aspaammtmpArtq1arOVX1/5o1nuHPlnojL+1n83nvvWcOGDZ3xnPIejPn555+99kDE+YCi20u88sorVr58eWfAlZMnT1qDBg3siSeesJEjR1qTJk2cLzMnTpxwPsy98cP7z4YNG2Yul8vCwsLs559/dpbPnDkz3xtP7huNt+cjr9z//9y+33///da0aVNnYJa8LoaDEbnGjx9v9evXt9q1a1ulSpWsffv2zrrg4OC/vG3DW+T9IpL7e2Zmpr344otWu3Zta9SokTN6sNmpGQGCgoJOO5jjbfLm5c9fSvL+PXv2bLviiiucsyt5v9h4c/H0Z0lJSfbggw9ahQoVLCwszIKCguzaa681s1MDNvr4+DiFgrf685f63P/z6dOnm8vlssaNG//lyPZ5D1x5mzMVPLmvjdzXTWxsrF1xxRX5BsHKdfTo0XxtvNmDDz5oDRo0sE6dOtmdd95pLpfLuWImKirKunfvflobby0qv/rqK4uLi7PXXnvNfvnlFzM7dZvBPffc43yHyX0+vPbaa1atWjXbu3ev1z9HcvPy+uuv5zugmfczKCIiwnkfNjvzexSKlp+n7ylH0YiKilL//v3Vv39/XXPNNfryyy/VrFkz3XvvvVq3bp3mzZun/fv3q3r16ipRooTq1q0ryfvms8zIyNDzzz+vjIwMlShRQmPGjNG8efNUu3ZtBQQEqFatWs5ALffdd5/mzJmjVatWqV27ds58sN6Wk1y5uTl69Kj8/f01evRop6+5/0ZGRmrp0qXasWOHQkNDlZWVJT+/U28T5cuXz7etN8rJyZGPj4+mT5+u9u3bKzk5WZmZmbr99tslSUlJSbrsssu8esA06X95SE9P1+OPP64dO3aocePGat26tQYPHix/f3+5XC7VqVNH0qnBjy677DL16NHDmV/YGxWUl6ZNm6pJkybq3bu3/Pz8nNfM3XffrdjYWD3yyCOaN2+efH19ZWZyuVy69NJLJXn3aylXYGCgxowZo2uvvVaff/65AgMDNWzYMEmnBsVq1KiRLrnkEg9H6T65z5mjR4/qqaeeUkpKinx8fDR+/HiNHz9eVatWVXp6ukJDQ53PpltvvVXPPfec3nrrLV1//fWnvU97iz/n5siRI/Lz89P48eOdzxtfX19JUnh4uLKyspSQkKAmTZo4uZJODTAneV9+8srN1SOPPKJq1aopISFBBw8e1HvvvaeuXbvKzFS9evUC23rjXPevvPKKJkyYoKZNmyopKUmhoaHq2LGjYmJitHv3blWrVi3f9pmZmapWrZrKly/v1c+TP+elRo0aatWqlcaMGSNfX1+dOHFCJUuW1AMPPKB77rlHn3zyiTp16nTac8Sbc+RJFN1eIjQ0VJMnT1aHDh0UHx+vqKgo3Xfffc66mjVreu1onrnS09PVrl07Z/Tx3bt3a8WKFXr99dc1btw4paeny+VyOaMHS1KjRo2cAxDe7M+5+fXXX7VixQq99tprqlSpklMMdO3aVQ0aNNDEiRPVqVMnp+C+WPj4+Oj48eO65JJL1LVr13zrjh8/ro8//lgHDhxQ7dq1PRRh8cj9IhwVFaWqVasqPDxc6enpeuaZZ7Rr1y4NHz483wGZ3C+/kpwvO7nPKW9SUF5SU1O1aNEi/fLLLxo1apT8/PycLzZDhw7VsmXLtHv3btWsWdPr8lFYFSpUUGRkpCIjI/MtX7VqlRITE1W1alUPReZ+uQdpoqKiVKVKFdWsWVPJyclq3bq14uLidMstt+jYsWPOaykrK0u+vr5eP7K9dObctGrVSm+++aYaNWrkvI+Eh4erW7dumjJlivr06eP1s678mY+PjzIzM+Xv7++M/H/y5EmVKFHCydGvv/6q1q1bezhS9/v666/16KOP6pFHHtGQIUP07bff6q233tLTTz8tl8ul6OhoZ1uXy6Vjx44pLi5OtWvXdg54eqMz5WXhwoUqWbKk7rrrLmc08qZNm8rlcum9995Tp06dPBz5RcSDZ9lRTObPn2/Vq1e3nTt3ejoUt8nJybE777wz30iwq1atsqpVq1qrVq3s999/P63N4sWLLTg42DZu3FicoRa7M+WmWrVq+XKTe+nRRx99ZKGhofbhhx96JF5PSEtLs5deeumM6/fv329jx461UqVKef1gPbmXlU2ZMsX69u1rx48fNzOzhx56yPr372+hoaH25JNPntbm+eeftwoVKnjtqP9/l5caNWrYzJkz87XZuXOnuVwue+6554o9Xk9KS0uzzz77zBmx/M++//57mzRpkl166aVe/3oyMxszZky+gcFWrlxp9erVsxo1apw2E8TFNLK9WcG5qV+/vlWvXt3JTe6lr1999ZWFhoY6I1RfLH766Sfn94Juafnwww+tXbt21rhx44viPtwlS5ZYz549LTMz03766SerVq2a3X777dapUye75ppr7JFHHjGzU7dSvvjii3bttddao0aNnMHBvPXS6cLmJdeUKVMsKirKQ9FenLzvmpOLyNGjR7Vly5Z88+HmtXXrVj3yyCP697//rZkzZzqXgnqrvXv3auDAgZKk22+/XdOnT9edd94pl8ul6667Tvv375ckbdq0SePGjdOwYcP07LPPXhRHhgvKzR133JEvN7lnK5s2bSo/P7/T5s71VmbmHBkePXp0gdsEBwerQ4cOWrVqlW688Uavvmok92zsDz/8oGbNmsnf31/333+/3nzzTXXr1k133HGHVq9erccff1yStH79eg0cOFBjxoxRbGxsvnlivcnf5eX222/X2rVrnbxIUp06dXT33XerVq1angq72GVnZ+uxxx5T+/bt9cYbbxT4WqlTp44qVKigFStWeP3rSZJ+/PFH9ejRQ5IUExOjKVOm6K677lKrVq3Up08fbd68WZL05Zdfavz48Ro+fLjmzJmjqKgoD0ZdPArKzciRI9W6dWsnN7mXvjZr1kxVq1bVZZdd5smQi9XXX3+tZs2aqW/fvpJ02tVnZubc3vPNN9/Iz89P2dnZngjV7XL7tXXrVgUFBalkyZL66quvFBkZqeeff17Lli3TpEmT9O677+o///mPSpQoodWrV6tUqVJKSEhQiRIllJWV5XVXHJ1NXp5++mmn3Z133qk1a9ZI8t557c87nqz4ce5Onjxpd911l7lcLvvggw8K3CZ3AJvcM5beenTP7NQo0o0aNXIGjejRo0e+wXl69epl4eHhtmfPHluxYoUNGTLkohjt1KxwubnqqqvyTaeRlpZW7HG605//j//897fffmvNmjWz9evX51v+V4P8eKuTJ09aenq6RUREOK+RIUOG2MKFC83M7NixY7Z48WJr0KCBzZo1y44fP2533323M3ewtw5mdDZ5yTv6ct5BnrxF3r4UNMjXkiVLLCwsrMA5kwt6TXlTbv4sMzPT2rRpY1988YWZmQ0YMMAWL17srB81apRVq1bNvvnmG1u3bt1FNbJ9YXOTd/7pi23u4J07d5q/v7916dKlUNtfDGe658yZYxEREXbs2DGbO3euNWjQwPnOcuTIEWvTpo0z6N7Ro0cvmtG4C5OX+vXrO4MH5/LWgfbOR5zpvkDY/z8KZXmORtWpU0c1a9ZUYGBggdsHBgZq8uTJuvbaa73+KFbu/U4JCQmSpCNHjigzM9NZP2bMGH399dd6+umn1a1bNz311FO67rrrvD4vUuFyEx8fr8cff9w5YupN9z1lZ2fL5XIpKytLBw4cUFpamnOk28yUlZWlpk2b6osvvlDbtm0lSSdOnJB0KncFXUniTUfKc3JyJP3vvcXX11eXXnqprrzySq1evVrSqYGK1q5dq6ysLF1yySW66qqrVLp0aSUkJMjX11ezZ89W586dnX14Q37+SV527typpKQkZxvJO3Ii5X89paenKy0tTdKp/uXmbMCAAfr444/VsmVLSafuU859HRU0qJO35Ca3/3nlvod89NFHkqTDhw/rt99+c9YPGzZMycnJmj17ttq0aaNHHnnEGRjLm5xrbg4dOqQnn3zSeU/OPdPrLc+ZXAWdnc7OzladOnX0888/64MPPjhtfUGfTd44Dst///tfvfLKK3rmmWeUnp6ua665RiVLltSRI0c0cOBAtWnTRi+//LKOHj2qEydOKCkpSU8++aQaNmyo0qVLy8fHRzk5OV6Xm3PJy4wZM9SuXbt8+/HGgfbOW56q9lE4WVlZlp2dbceOHXOW5Z2+J+/k9tnZ2RfN0d+jR4/as88+a/fdd58tX77csrKybO7cuTZgwAA7fvy4vfDCCxYYGGiff/65nTx50m6//XaLjo623377zdmHt+bqXHOzf/9+T4de5HL/j1NSUiwiIsKaN29u1apVs/Hjx1tCQoKZ/e91k7vt0aNHbfDgwTZgwABPhV1scu/jT09Pt/vuu88GDhxoAwcOtEOHDtny5cutTZs2lpWVZVu3brXo6Gi7//777aeffrL+/ftbhw4d8l0R4U2vJ/JSsLyvpy5duljTpk2tbdu29uCDD56xzdGjR23kyJH29NNPO/fBe6O8z5mpU6fa0KFDbfbs2Xbo0CF755137Prrr7eDBw/aZ599ZuXKlbMXX3zRkpOT7dZbb7Xbb78932e5Nz1nzP55bpKSkpx9eVtuzMzeeOMNu/POO61r16728ssvO1O6Zmdn55vmycxsw4YNNmnSJE+E6RELFy606tWrW4MGDSwwMNCuuOIKS05OtsGDB1vbtm3NzOztt9+2AQMGWN26da1ixYp22223mZlZampqgdOfeoN/mpfcKYRRvCi6z2MpKSl2/fXXW0REhPXs2dOef/75M26bnp5uY8eOtTfffPO0N2lvk5KSYo0bN7YWLVpYo0aNzM/Pz+6++2576623rH///vbKK6+Ymdlzzz1n1atXt6uvvtoqVapk+/btMzPLd6matyE3p8vMzLSWLVta7969bc2aNfbAAw9Yu3btrEWLFrZ69Wozy/9F7sCBAxYQEGAul8t++OEHT4XtdrnvEykpKXbFFVdYly5drE+fPla/fn2rU6eOpaenW69evaxr165mZrZ27Vq76aabLDw83K688ko7cOCA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Z7hzZWZm2p133plvcL2aNWtavXr1rGLFita9e3ebMGFCvjYXQ4FJXrwLRfd5YNiwYeZyuSwsLMx+/vlnZ/nMmTOtYcOGztzb3jRQz5n8+c3i8OHD1qdPH6eIfOqpp6xUqVJ2ww03WL169axevXr57h8kN96fm9zXQVpamj344IPWr18/mzJlitPXpUuX2muvveacjczN2+DBgwscYO1ikpGRYddcc43179/fzE69x1SqVMnGjRtnDRo0sMsvv9xGjx7tbO8tz5m/czHnJff1lJ6eblOnTrWxY8fa+PHjnfvXFy9ebLGxsXby5Ml870EtW7a0W265xSMxe1pOTo6lpqbabbfdZhMnTjSzU+OvlClTxgYNGmRhYWFWrly5fFOnedNz5q+Qm1O++uori4uLs9dee81++eUXMzN74YUX7J577nHOTub2+7XXXrNq1arZ3r17vTIXf3amAwkHDx60ypUr2yOPPGKtW7e2a665xsxOzT5y++23W8eOHb36IAR58X5+QrHKyMjQ888/r4yMDJUoUUJjxozRvHnzVLt2bQUEBKhWrVrKzs6Wr6+v7rvvPs2ZM0erVq1Su3bt5OPjI0lyuVwe7oV7mJl8fX21c+dOffHFF2revLmaNGmiiIgILV++XHv27NELL7ygd999Vy1bttS2bds0evTofPsgN96fGx8fHx09elRRUVGqWrWqwsPDlZ6ermeeeUa7du3S8OHDlZWVJT+/U29vvr6+Tttq1apJOpVPb8nHmeS+jxw9elSXXnqpJKlUqVKKjY3Vtddeq44dO2rTpk1aunSpevTooVtuuUXvvPOOwsLCnH14Y47IS34+Pj5KT09XVFSUqlSpopo1ayo5OVmtW7dWXFycbrnlFh07dsx5PWVlZcnX11c1a9ZUkyZNPBx98ch9zpw4cUIlS5aUy+VS2bJlFR4errlz5+rgwYNatmyZ3n77bXXs2FE///yzJk+erMqVKzv78KbnTF7k5nSvvPKKJkyYoKZNmyopKUmhoaHq2LGjYmJitHv3budzKFdmZqaqVaum8uXLe10u/szMnO+yzz77rH7//XfdddddqlKlikJCQjRhwgSNHTtWERERevPNNyVJrVu3VqNGjVS2bFm5XC6v/PwmLxcJDxb8F520tDRr0aKFde7c2QYOHGgRERHWrl07O3DggLM+18mTJ+3kyZN23XXX2fz58z0VcrHJPYOSmJholStXtssvv9y6dOliCxcuNDOziIgIc7lctnr16gLbe/PRYXLzP7l9mTJlivXt29e5TPGhhx6y/v37W2hoqD355JOntXn++eetQoUKXj/4YK7cPOVOedWxY0f74YcfLDs7206ePGmjR4+2ChUq2BtvvJFv+9x7B73pOZMXeSnYmDFj7F//+pfz98qVK61evXpWo0YN++abb/Jtm5WVZS+//LIFBgaeNkCWN9u6datFRkbaQw89lO8Koh49epjL5bL33nuvwHbe+pzJi9z8T3x8vNWvX98WLVpkZmabN2+2yZMnW7169Sw2Nva07TMyMqxnz542cOBAr8xHXnnPxq5bt85q1apl11xzjVWrVs25ovP777+3evXq2ZQpU8zs9PvZvTFH5OXi4ePpov9iYWYaM2aMatasqY8++sg5EvrTTz+pT58+2r9/v8qUKeNs7+fnp9dee01ffvmlGjdu7MHI3S8nJ8c5i/vaa6+pW7du2rJli7p166a3335bTz31lEaNGqWoqCilpaU57czM+d1bj+6Rm/xy+/LDDz+oWbNm8vf31/33368333xT3bp10x133KHVq1fr8ccflyStX79eAwcO1JgxYxQbG6v27dt7MPrikZ2dLZfLpUOHDuntt99W+/btVbVqVfXu3Vtr166Vn5+f+vXrJzNTVlaWpFPPM0nO2Uxves7kIi9n9uOPP6pHjx6SpJiYGE2ZMkV33XWXWrVqpT59+mjz5s2SpC+//FLjx4/X8OHDNWfOHEVFRXkwavfL/f/PyMjQrFmzVK1aNW3ZskULFy7UkiVLJEnjx4/XVVddpcTExAL34a3PGXJTsB9//FFXXHGFbr75Zv3888+67rrrtHfvXoWGhmrZsmWaOnWqJOnkyZN66aWX1KdPH+3atUuLFi1yzlZ6I8tzJjc2NlZPPPGEevTooU8//VS33HKLRowYoU8++UQNGjTQ3XffrWnTpmnr1q3Oe28ub3vOkJeLjOfq/YtLTk6Ode3a1Rl45rbbbrO2bdvaQw89ZK1bt7YWLVrY77//bman7gUaO3aslSpVyl5//XVPhl1sdu3aZe3bt7c6depYiRIlnCPCc+bMsb59+1pMTIxFRkZaTEzMRTdIBLn5n5MnT1p6erpFREQ4U30NGTLEOet/7NgxW7x4sTVo0MBmzZplx48ft7vv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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "# @title F1 Results\n", + "\n", + "print(f1_score_result.f1_50)\n", + "print(f1_score_result.f1_75)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "6vSxW4NHqt-S", + "outputId": "44988692-f909-4bc1-d7bd-e2d046e48639" + }, + "id": "6vSxW4NHqt-S", + "execution_count": 82, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "0.07544642837625108\n", + "0.027499445961266147\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "f1_score_result.plot()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 607 + }, + "id": "tONUkmSutw9j", + "outputId": "739f95f4-3fa6-4305-bfa5-68ee6676a58b" + }, + "id": "tONUkmSutw9j", + "execution_count": 83, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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6XoB4FIougHARtHR0fr000/l4eGhBx980NXhAMB174EHHpCHh4dWrVql6OhoV4cDABTdAGCnzz//XMnJybrllltUunTpDK8dOXJEDodDDodD33//vSTpo48+sqal76f8559/6vnnn9fNN98sPz8/FS1aVDfffLOmTp0qY0yG5abv67h69WrVrVtX3t7eKleunL788kur3dtvv61y5cqpePHiGjhwoEaNGiWHw6Ebbrghw/J27Nihjh07yt/fXz4+PmrSpIlWrlx5Vdthp6lTpyowMFCBgYEaMWJEpr6rP/74o9q0aaNixYrJ399f999/v/bt22e9HhcXp/Lly8vhcKht27bW9LZt28rhcKhMmTI6ffq0Nf1K+8UpPDxcTZs2VYkSJeTn56d69eppxIgRNuyB/5Od42X79u1Wjn7++Wdr3l9++cWavnXr1hxvb3aOv5wcz9k5Tn/44QcrZucjqzO66WN7//33VaZMGZUpU0aTJk3K1Da774/cEhQUJIfDofj4+EyvnT17Vg6HQ6VKlbKmZScf2d0vUs6394MPPshy/+X08yA725GamqqRI0da7+933nnnEnvxotKlS6tevXpKTk7WF198cdm2AJAnDADANv379zeSTP/+/TO9dvjwYSPpko++fftabRcsWHDJdu+//36G5fbt29dIMhUqVDBeXl4Z2s6bN88YY8wnn3ySaTn+/v5GkqlcubK1rG3bthkfH58s1zt//vwcb4fTvHnzMsV0NVq2bGkkmYoVK2Za74QJE6x2mzdvNt7e3pnalCpVyhw+fNhqt3LlSuu1iIgIExERYf1/6dKlOdovxhjz7bffGofDkWU7O2XneElLSzNlypQxksw777xjzTt9+nQjyQQFBZnU1NQcba8x2Tv+sns8Z/c43bhxY6Z2Y8eOzbRfnLGVLVs2U162bNmS4/U65cbx3KJFCyPJbN++PdNrO3fuNJJMs2bNjDHZz0d290t2t9e5/8qVK3fJ/ZeTz4Psbsdrr72W6XXne75ly5ZZ7s9+/foZKevPXgDIa5zpBgAb7d27V5J04403ZnqtUqVKio6OVnR0tO644w5JUvfu3a1p77//vtW2Zs2amjlzprZv366jR4/qjz/+sPqIz58/P8t1//nnn2rTpo0iIyN1+PBhLVy4UGXLlpUkvfnmm5KkGjVqaOfOnfrwww+zPMM2ZMgQ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OnnypBISEuRwOFwdFrLgfF+dOXNGDz/8sCSRq3wuNTVVaWlprg4D2bB27Vp9/fXXrg4Dl0HRDVxHOCuXPxljrCKuefPmuvvuu3XHHXfokUce0c6dO8lbPpK+4K5Zs6ZSU1NVr149Sf931oezP/lD+vdVq1at1KFDB9WuXVsvvviidu7c6erwkE7691WDBg0UHR3t6pBwBUuWLFGXLl109913a/jw4Tp+/DifffnUzJkz9dBDD6lo0aKuDgWXQdGNyzp//rwiIyO1ZcsWJSYmWtP54M1/4uLiVKlSJf3888+uDgX/4TwT16VLF5UrV04zZ87UggULFBUVpSeffFJhYWFKSUlxdZgFnrOIS0hI0M0336zWrVtr+fLlkqQLFy4oPj5eEmfn8gvnlSPt2rVTYGCgpk6dqr59+2rLli3q16+fvvvuO1eHCGX8caR+/fpq2LChlRtjDD865kPh4eHq27evateurcaNG2vRokXq2rWrVq5cyd+qfGbWrFl67rnn9NFHH+nOO+90dTi4DIehesIlJCQkqGnTpvLy8tLu3bt1zz336N5779Wzzz4r6eIfS7585g/OswfVq1fXl19+6epwkIUTJ06oXbt2euONN9ShQwdJF99jffr00Z9//qmXX35ZXbp04T3lYikpKerZs6dWrlypCxcuSJJGjRqlyMhIHTt2TK1atdIrr7yiChUquDhSSNLff/+tu+++W++++65at24tSfrmm2/00UcfaevWrZo7d65atGjh4iiRkpKihg0bKjY2VsePH5ckjRs3Tnv37tWBAwfUq1cvdejQQTVq1HBxpEhJSdFTTz2lIkWK6N1335UknTlzRt27d1dMTIxGjBihrl27ytPT08WRYt26dbr33nu1aNEide/eXb///rvCwsL0119/qVKlSho8eLB8fX1dHSb+P850I0tpaWnq06ePbrjhBn3++efauHGjKlSooDlz5mjo0KGSLp5l4Dcb10tISFCDBg1Uv359q+A+c+aMjh07lqEduXItf39/eXl56dtvv5Ukbdy4UWPHjtUnn3yigIAAvfHGGzp58qSLoyyY0p9pS0lJ0R133KEGDRqob9++6tWrl7766is1adJEISEhWrVqlXr27KnTp0+7MGJIF/9OJSUlaf/+/fr7778lSRERETp06JAeffRRNWrUSGPGjGH8BBdJ3xfYy8tLvXr1UmxsrGbPnq2QkBAtW7ZMZcqU0Y033qiPPvpIY8aM0aFDh1wYMaSLuYqLi9P27dutad9//73CwsJUvnx5vf3229qzZ48kvle4Ulpamg4ePKhq1arphx9+0M6dO3X//ffrq6++0q5duzRx4kTdd999OnLkiKtDhZMBspCammruuusuM23aNGva77//bqZMmWJq1KhhRo4c6brgkEHPnj2Nw+EwcXFxxhhjnn76adOsWTNTuHBh07VrV/Pxxx+7OMKCJyUlxRhz8X2UmppqTXvuuedM06ZNzbfffms++OADU6FCBbNlyxZz5swZU6ZMGfP888+7MuwCyZmrhIQEs27dOmOMMWfPnjWzZ882N910k6lTp4759ddfrfZ//fWXCQwMNK+88opL4i3InLly/us0aNAgc+ONN5qff/7ZTJ482RQvXtzs2bPHfP7556Zu3bpm0aJFrgi3QHPm6Ny5c2bt2rXW5+Dbb79tHA6HqVu3rjl06JDV/uOPPza1atUyK1ascEm8yGju3LmmUaNG5osvvjDffPON8fHxMW+++aZJSEgw1apVM4888oirQyzQjh49aowxJjEx0cydO9fcfPPNxtPT04wYMcLEx8cbY4z5888/Tfny5U2fPn1cGSrS4fJyZJKWliYPDw81adJE5cuXV3h4uDZv3qz3339fgwcP1saNG7Vs2TK98MIL6t69u6vDLbDM/7+8f+/evbrvvvt04403qlSpUtq3b5/69+8vHx8fLVu2TPHx8Ro+fLgeeOABV4dcIDgHDIqLi1P37t01bdo01ahRQw6HQ//8849atmypypUr64UXXlCJEiXUoEEDSdLQoUO1d+9effHFFy7egoLDmStnH+5jx45pz549qlWrlv79918tX75cxYoVU+fOnVWoUCGrfUhIiM6ePWv194b90g/E9eSTT+qll16yBrj78ccfNXbsWBUqVEhTp07VhQsXdPPNN0uS2rZtK19fX61atcqV4Rco6XPVpEkTFS1aVDt27LBe/+STT5SQkKD+/fvL4XBYlyk3bdpU1atX14IFC1wVeoG1YsUKlS5dWs2aNZPD4dCpU6fUvn17+fv768UXX1RsbKzq1q2rWrVqac2aNerXr5+2bNmiKlWq0CUqj82bN88as6Jly5b6999/9fHHH2v//v0aMmSIKlasaH0/XLp0qZ5//nn9+OOPKl++PLlyMS4vhyU5OVnJycny8Lh4WLz00kv66aef9O6776pYsWLasGGDzp49q8cee0xBQUFav369iyMuuM6dO6d3331Xp0+fVs2aNfXFF1/o999/1w8//KDFixdr8ODBCgkJ0fTp0+VwOMhVHkn/ZfOWW25Ramqqatasaf2hCw4O1rp167Rz505NmDBBJ06csOZNS0tTkSJFlJqayiV7eSB9rmrXrq2KFSuqdevW2rhxoySpaNGi6tGjh9q3b69ChQpJUoY+jM4+3eTKfpcbUV6Sbr/9dvXu3VsJCQl65plnMgz0VKNGDVWoUIHbHuWR9LmqW7euAgMD9ddff2nWrFlWm549eyokJEReXl7y9PRUSkqKjDG64YYbVLduXRdGXzDNnj1b3bp1U3JystVtsFSpUgoPD9fu3bv1xhtvKCgoSLVq1ZIk+fj4KDAwUEWLFqWIy2OzZs3SgAEDdNNNN2nNmjVKSkpS0aJFFRISoieeeEIVK1bM0D4pKUkVKlRQiRIlyFV+4LqT7MhPzpw5Y26//XYTFhZmTfv777/NM888Y+rXr28++ugj6/JlY4x56623TNWqVc2ZM2dcEW6BFhcXZ6pUqWIcDofZt2+fNf3QoUNm4cKF5uzZs8YYY13O9/LLL5t69eqZf//91yXxFjTx8fGmatWqplu3bta0mJgYc+rUKXP69GljjDF//PGHufXWW02jRo3MbbfdZgYMGGC8vLzM6tWrXRR1wZKWlmaMufi5V6VKFfPwww8bYy5eplyjRo3Lzvfhhx+akiVLmu+++y4vQi3wnLmKj483FStWND179rReS05ONrGxsdb/w8LCzL333mv8/PzME088YQYMGGAKFSpk1q5dm+dxF0TOvzlxcXGmYsWKpmvXriYtLc08/fTTpnv37ub8+fNWm/RSUlLMxx9/bAICAsz333+f12EXaHPnzjWFChWyLut35ic5OdkYY8yRI0dMzZo1TZMmTcwzzzxjPv30U3P33Xeb5s2bZ5lL2Gf27NnG09PTrFmzxsycOdOUL1/eupQ8K+fOnTOdOnUyvXr1sj5H4VoU3TBxcXGmQoUKplOnTple2717twkJCTH16tUzr776qjHGmAsXLpjXX3/dtG7d2iQkJOR1uAVa+i8znTp1Mo888oi5cOGC9Xr6vo7OD9mhQ4eavn37ZuoHidyXmppq2rZta3x9fc3hw4eNMcYMHz7ctG7d2lSoUME88MADVrH2zz//mHnz5plHH33UPPXUU+aLL74wxhj+OOaR8+fPm9KlS5v777/fmnbw4EFTo0YNM3v27Eztv/nmG9O7d2/j7+9vlixZkoeR4sKFC6Zbt27Gy8vLmvbiiy+au+66y9SoUcP079/f/P3338YYY/bv32/efPNN07ZtW9OzZ0+zZs0aYwzvq7xy9uxZU7p0aeuHLGOMWblypSlUqJD56aefMrXfunWrGT58uClatKhZunRpXoZa4K1atco4HA7z5ptvGmOMOXDggBk7dqzp1q2bGTt2rNmyZYsx5uI4FsOHDzcNGzY09evXN/fee69VlFN4540ZM2YYh8NhwsPDjTEX93udOnXMsGHDMrVNTEw0CxcuNO3atTN16tSxcsVnoOvRp7uAS0xMVK1atdS6dWt9/PHHkqQjR47o/PnzqlChgnx9fXXo0CH973//04wZMxQYGKgbbrhBGzdu1MKFC/XQQw+5eAsKDuflek2aNNGyZcs0d+5cffDBB1q1apUqVaqU6RZu8fHxCgsL09ChQ7V06VK1b9/ehdEXHGFhYRo5cqTat2+vo0eP6siRI3rqqacUHR2tqKgobd26VWFhYbrjjjuseZyXZDo/jrkMzH7R0dFat26devfubU07e/asevbsqcKFC2fqr3369GmNGTNGnTt31t13302u8lBSUpJCQ0O1cOFC1alTRykpKdq7d6/uvfde+fr66t1331XVqlX1xRdfyM/PT9LF95SHh0eGu2yQK/vFxsZq+vTpGj9+vKT/G3vkgQcekLe3tz788EMVK1bMar9+/XqtXbtW7dq1U/v27bkVaR76/PPP1atXLz355JNq0qSJhg0bpltuuUVnzpyRMUYHDx7UggUL1KZNG6WkpCglJUXx8fEKCgqSw+FQSkqKvLy8XL0Z171///1XEyZMUKNGjfTggw9ad9t45ZVX9NNPP2nlypXy8/Oz3jsJCQkaNGiQEhMTtXz5chUqVIhc5ReuqvbhemlpaebFF180DofD/Pjjj8YYYwYPHmzq1atnAgICzA033GD9qpaYmGh+/fVXM3LkSPPmm2+a9evXW8uA/ZKSkkzlypVN165drWnx8fGmXLlyWY4kv23bNjNkyBBTvHhx6+wBucp9zl/5/7tvV61aZfz9/U39+vUzdAHYvXu3ue+++8zQoUPNhQsXOEuQhy6VK+c05+sbN240RYoUsc6Qpp/XebVIWloa7ycbpX9fOJ8nJSWZ+fPnmxtvvPGSI8q//PLLeR5rQZc+V+mvuvrv/6dNm2aqV69ujh07ZozJeFVWYmKiMYb3lSusXLnSlC5d2vj5+ZmXX37Zunpx165dpkePHubuu+/O0IXDib9drpH+PbJ3715TpEgRExoamuF1Yy6+p5zP//u+hOtwpruAi4iI0KxZs7Rnzx75+/srKSlJw4YNU4kSJRQWFqaFCxfqs88+U9u2bTPNazh7kKfCw8P14IMPSpIuXLigQoUKadq0aVq8eLEWLVqkatWqWW2PHTumL7/8UjVr1lTz5s3JlQ2co/wnJibq+eefV0JCgv755x+NGzdOzZo1048//qjt27erf//+8vb2tvb9o48+qqNHjyoiIsK1G1CA/DdX8fHxio2N1dixY1W7dm2VKFHCapeYmKiePXuqYsWK+uCDDyTJGlwS9kufqzfeeEP79u3TzTffrNtvv1133323lixZIofDoQcffJAR5V0sq1zVq1dPdevW1f333y9J1hm21NRU1a5dW61atbIGVTOc1c5zEREROnz4sA4dOqTHHntMVatW1bfffqs5c+botddeU7Vq1ayczJs3Ty+99JK2bdtmDRyJvBMREaGDBw/q6NGjCgkJUfny5VW4cGFJ/3d13PDhw7Vz504tXrxYwcHBkjK+r5zvUeQPZKIASktL09mzZyVJrVq10iuvvKIqVaro3LlzmjVrlrp376727dtr7ty5euihhzRq1Cjrcpb0HA4HfzBtlpaWpoSEBEmybvmVkpJijabcrFkzHT58WFu3brXaS1LFihX12GOPqXnz5tayyFXu8vDw0Llz59SqVSv99ddfatu2rRo2bKgpU6Zozpw5uvXWW/X000+rSJEicjgc1nuodOnS1iWyyBv/zdVdd92l+vXr66233lJYWJjOnDljtfPz89M999yjTz75RMeOHeMLSx7z8PDQ2bNn1aJFC+3cuVN16tRRYmKipk+fbv19euihhxhRPh/IKlfx8fGaN2+e3nnnHUmSl5eXkpOT5enpqX79+mnHjh06cuSIJP4m5bWFCxeqT58+WrNmjaKiotSzZ099/PHHatOmjUJDQ1W9evUMf6uqVKmiSpUq8RnoAs5cffbZZ9q+fbt69eqlZcuWKTY2VtL/fe7d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0y0iGZObmzurxMViMQKBAHv37mXbtm0qcllEWVkvmUzicDhmXjOVm5vLypUrGR4e5vHHH+fq1av4fD7Wrl3L66+/jsfjobGxkd27d9Pc3ExzczN79uzR66YyQFnNLdNlbvouqt/vJxaLsWnTJmKxGJFIZGZdsFhLWYldaE23iFji4MGDnDhxgv7+flpbW9mwYYM2DMpSyso6iUSCuro6lixZwq5du8jPz6ezs5P+/n7Ky8sJBoM8+uijHDhwgL6+PkKhEOfOnaOiooLnn3+empoaZZUhymruGR0dpbu7m+7ubgYHBykrK2NgYACXy6V1wVlGWUm2U+kWEUtcvnyZcDjMI488wooVK2bWWumEM/soK+t0dnbS1NQEwI4dO0gmkyxYsIDJyUl8Ph8nT56kra2NVatWEQwGARgbGyMvLw+n06msMkhZzU2jo6O8++67RCIRPvnkE5W4LKasJJupdIuIZfSOTPtQVta4ceMGHR0dtLe389xzz1FbW8uWLVu4evUqHR0dNDY2EgwG6erqYtGiRfT29lo98rylrOau8fFx3G43DodDJS7LKSvJVjqDEhHLqMTZh7Kyxh133EFTUxNbtmzh8OHD5OTkEIlE6Ozs5N5778XlcvHCCy+wefNmLly4wMDAgNUjz1vKau7yeDw4HA6MMSpxWU5ZSbbSnW4REZEsF4/Heeedd9i3bx+HDh2ivr5+1tMHiUSC69ev6x3PWUBZiYjIP+kSkIiISJYrKCigpaUFh8OBz+djYmKCzZs3Y4whmUzidrtxu91WjykoKxERuZVKt4iIiA0UFBTw1ltvAdDU1MTk5CQNDQ16hDILKSsREbmZHi8XERGxkXg8zs6dOwkEAly5coWFCxdqzX2WUlYiIgIq3SIiIrYTj8eJRqOUlZVZPYr8D8pKRERUukVERGzMGKN3O9uEshIRmZ9UukVERERERETSRAuLRERERERERNJEpVtEREREREQkTVS6RURERERERNJEpVtEREREREQkTVS6RURERERERNJEpVtEREREREQkTVS6RURERERERNJEpVtEREREREQkTVS6RURERERERNJEpVtEREREREQkTf4D5aENrUbz8+wAAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "# @title Calculate Confusion Matrix\n", + "\n", + "confusion_matrix = sv.ConfusionMatrix.from_detections(\n", + " predictions=predictions,\n", + " targets=targets,\n", + " classes=ds_merged.classes\n", + ")\n", + "\n", + "_ = confusion_matrix.plot()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "BQrL04NpmiiU", + "outputId": "b4e42938-3390-4944-e695-154fee80d19c" + }, + "id": "BQrL04NpmiiU", + "execution_count": 76, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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e77YWrRoofnz58vT01NJSUlKSkrS+PHjJUnh4eHav3+/Nm3apF27dik3N1ePPPKIVa+Rixcv6vXXX9eyZcv0448/qnLlyoU+pyeffFKBgYGaNm1aoXVGjhypXbt2ac2aNfr+++/1xBNPqGPHjoqPjy801tatW+vo0aP67bffJEk7d+5UpUqVjGROVlaWdu3apTZt2kiSPv30U73wwgsaN26cfvjhBz377LMaMGCA/vvf/1rFEhERoccee0xHjhzRwIEDrY6lpKSoQ4cOysnJ0fbt2wscUpWRkSGLxWJVAAAAAACwF+VsHUBxOHnypHJzc1W3bt3r1h09erTxdUBAgGbMmKFhw4Zp8eLFxv6srCwtXLhQzZs3lyStXLlSQUFB2rt3r5o1a6aGDRuqYcOGRv3p06fr008/1aZNmzRy5EidOHFC69at0/bt29W+fXtJUs2aNQuMx8nJSV5eXjKZTPLz8zP2x8fHa9OmTYqJiVGLFi0kSatXr5a/v782btyoJ554woh18eLFVvEUxmQy6bXXXlPXrl01ZswY3XvvvVbHz5w5oxUrVujMmTO66667JEnjx4/X1q1btWLFCr366qsFxlq/fn1VrFhRO3fu1OOPP67o6GiNGzdOb731liRp7969ysrKMu7jjTfeUHh4uIYPHy5JRm+mN954Q23btjXafeqppzRgwABj+6effpJ0Ze6g3r17q1atWvrwww/l5ORU4P3OmjVLU6dOve5zAQAAAADAFspET5nc3Nwbrrtjxw61a9dO1apVk4eHh5555hn9/vvvunjxolGnXLlyatq0qbFdt25deXt7Ky4uTtKVnjLjx49XUFCQvL295e7urri4OKOnTGxsrBwdHdW6deubvqe4uDiVK1fOSAxJko+Pj+rUqWPEIV1J6jRo0OCG2w0LC9M//vEPvfzyy/mOHTlyRNnZ2apdu7bc3d2NsnPnTp06darQNk0mk1q1aqXo6GilpKTo6NGjGj58uDIyMnTs2DHt3LlTTZs2laurq3FvLVu2tGqjZcuWVvclSffff3+B1+vQoYMCAwO1du3aQhMykjR58mSlpqYa5eohaAAAAAAAa7ZeYelOXH2pTPSUqVWrlkwmk44dO3bNegkJCerSpYuee+45zZw5UxUrVtS3336rQYMGKTMz00gaXM/48eO1fft2vfHGGwoMDJSLi4sef/xx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+fLl+vbbb/XHH3/o008/tWpn1qxZWrVqld555x39+OOPGjNmjJ5++mnt3Lmz0LgyMjJksVisCgAAAADgzrFv3z4tXbpUDRo0sNo/ZswYff755/r444+1c+dOnT17Vj169DCOZ2dnq3PnzsrMzNR3332nlStXKjIyUq+88opR5/Tp0+rcubPatm2r2NhYjR49WoMHD9a2bdtuOD6SMigWdevWVUJCQr79H374odLT07Vq1SrVr19fDz30kBYuXKj333/fyELOnz9fkydPVo8ePRQUFKR33nlHXl5eRhsZGRl69dVXtXz5coWFhalmzZoKDw/X008/raVLlxYa06xZs+Tl5WUUf3//Yr9vAAAAAIB9SktLU9++ffXuu++qQoUKxv7U1FS99957mjdvnh566CE1adJEK1as0Hfffafdu3dLkv7zn//o6NGj+uCDD9SoUSN16tRJ06dP16JFi5SZmSlJeuedd1SjRg3NnTtXQUFBGjlypB5//HG9+eabNxwjSRkUi9zc3AJnxI6Li1PDhg3l5uZm7GvZsqVycnJ0/PhxpaamKikpSc2bNzeOlytXTvfff7+xffLkSV28eFEdOnSQu7u7UVatWqVTp04VGtPkyZOVmppqlMTExGK6WwAAAAAoe2y9wtL1Vl/6+0iIjIyMa97PiBEj1LlzZ7Vv395q/4EDB5SVlWW1v27duqpevbp27dolSdq1a5dCQkJUpUoVo05YWJgsFot+/PFHo87f2w4LCzPauBHlbrgmcA1xcXGqUaNGibSdN//Mli1bVK1aNatj15pQ2Gw2M+EwAAAAAJQRfx/9MGXKFEVERBRYd82aNTp48KD27duX71hycrKcnJzk7e1ttb9KlSpKTk426lydkMk7nnfsWnUsFosuXbokFxeX694TSRncsq+++kpHjhzRmDFj8h0LCgpSZGSkLly4YPSWiYmJkYODg+rUqSMvLy9VrVpVe/bsUatWrSRJly9f1oEDB9S4cWNJUnBwsMxms86cOaPWrVvfvhsDAAAAANiNxMREeXp6GtuF/SN8YmKiXnjhBW3fvl3Ozs63K7ybQlIGRZKRkaHk5GRlZ2fr119/1datWzVr1ix16dJF/fr1y1e/b9++mjJlivr376+IiAj99ttvGjVqlJ555hkjo/jCCy/otddeU61atVS3bl3NmzdPKSkpRhseHh4aP368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TkREhGJiYhQTEyN/f39VqlRJY8eOlcVisbbJyMhQbGysqlevrnLlyqlNmzbW40rS4sWLFRAQoFWrVqlhw4YymUxKSUnJdx4ZGRkym802CwAAAAAAroKeMldo7969+vLLL1WrVi3ruvj4eL355puaP3++wsLC9Pnnn+vBBx9UYGCgOnbsqLFjx2rfvn365JNPVKlSJR05ckTnz58vMP7l2u7YsUM33nijNmzYoEaNGsnT01OSNGvWLCUkJGjBggUKDw/XokWL1LNnT33//fcKCwuzxh49erQSEhIUHh4uLy8vu16XCRMmaM6cOSpbtqz69OmjPn36yGQy6a233lJ6erruuusuvfzyyxo1apR1nyVLlmjgwIHasWOHvvnmGz322GOqWbOmBg0aJEmKiYnRvn379M4776hatWr66KOPFBUVpT179ljP69y5c3rppZe0cOFCVaxYUZUrV86XW3x8vCZOnGjX8wUAAACA0sr4+8vVuGJO9kJR5jJWr14tHx8fZWdnKyMjQ25ubpozZ46ki70wpkyZog0bNqht27aSpDp16mjLli1asGCBOnbsqJSUFIWHh6tVq1aSLs7bUpjLtQ0MDJQkVaxY0WbI07Rp0zRq1Cjdd999kqSXXnpJmzZt0syZM/XKK69Y2w0fPlx333138S9IASZPnqz27dtLkgYOHKi4uDgdPXpUderUkSTdc8892rRpk01RJjg4WDNmzJBhGKpXr5727NmjGTNmaNCgQUpJSVFiYqJSUlJUrVo1SVJsbKzWrl2rxMRETZkyRdLFYVhz585Vs2bNCs0tLi5OI0eOtD42m80KDg62+zUAAAAAAKAoKMpcRqdOnTRv3jydPXtWM2bMUJkyZdS7d29J0pEjR3Tu3Dl16dLFZp/MzEyFh4dLkgYPHqzevXtr586d6tq1q3r16qV27doVeKyraStdLDD8/PPP1oJInvbt22v37t026/IKPY7QtGlT6/dVqlRR2bJlrQWZvHU7duyw2eemm26ScclMTW3btlVCQoJycnK0Z88e5eTkqG7dujb7ZGRkqGLFitbHnp6eNscuiMlkkslkKtJ5AQAAAADgaBRlLqNcuXIKDQ2VJC1atEjNmjXT66+/roEDByo9PV2S9PHHH6t69eo2++UVArp3764ffvhBa9as0fr169W5c2cNHTpU06ZNy3esq2lblPO4GnkT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iouLU8+ePRUbG6s77rjD2n7mzJkyDENr1661rgsNDdXChQsl2Q49io6O1ubNmzVr1iwZhiHDMHTixAlJ0vfff6877rhDfn5+8vX11c0336yjR4/a5DZt2jRVrVpVFStW1NChQ5WVleXYiwEAAAAA1wtnj1G6DscvUZRBPj4+PvLx8dGKFSuUkZGRb3vHjh21ZcsW5eTkSJI2b96sSpUqKSkpSZL0008/6ejRo4qIiMi376xZs9S2bVsNGjRIqampSk1NVXBwsH766SfdcsstMplM+uyzz/Ttt9/qkUceUXZ2tnXfTZs26ejRo9q0aZOWLFmixYsX2wyL+qeMjAyZzWabBQAAAAAAV0FRBvmUKVNGixcv1pIlSxQQEKD27dvrueee03fffSdJuvnmm3XmzBnt2rVLFotFn3/+uZ5++mlrUSYpKUnVq1dXaGhovtj+/v7y9PRU2bJlFRQUpKCgILm7u+uVV16Rv7+/3nnnHbVq1Up169bVww8/rHr16ln3LV++vObMmaP69evrjjvu0O23366NGzcWeh7x8fHy9/e3LsHBwfa9UAAAAAAAFANFGRSod+/e+vnnn7Vq1SpFRUUpKSlJLVq00OLFixUQEKBmzZopKSlJe/bskaenpx577DHt2rVL6enp2rx5szp27HhVx0tOTtbNN98sDw+PQts0atRI7u7u1sdVq1bVr7/+Wmj7uLg4paWlWZeTJ09eVU4AAAAAcD0xXPirtKIog0J5eXmpS5cuGjt2rL788ktFR0dr/Pjxki7eQSkpKclagKlQoYIaNGigLVu2FKko4+3t/a9t/lmwMQxDubm5hbY3mUzy8/OzWQAAAAAAcBUUZXDFGjZsqLNnz0r6/3llNm7caJ07JiIiQm+//bYOHTpU4HwyeTw9Pa3z0eRp2rSpvvjiCybuBQAAAABcNyjKIJ8//vhDt956q95880199913On78uN577z1NnTpVd955pyTplltu0ZkzZ7R69WqbosyyZctUtWpV1a1bt9D4tWvX1vbt23XixAn9/vvvys3NVUxMjMxms+677z598803Onz4sN544w0dPHjwWpwyAAAAAFz3DMN1l9KKogzy8fHxUZs2bTRjxgzdcsstaty4scaOHatBgwZpzpw5ki5OutukSRMFBgaqfv36ki4WanJzc/916FJsbKzc3d3VsGFDBQYGKiUl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FgAAAAAAXEWpK8qUL19ec+bMUf369XXHHXfo9ttvt/aCudSoUaM0c+ZMbd68WTfeeKPNtqZNm2r8+PEKCwtT//791apVK2uMjRs3as+ePXrrrbfUsmVLtWnTRkuXLtXmzZv19ddfS7rY2yavKJOUlKQuXbqoQYMG2rJli3XdP4sysbGxuv3221W3bl1NnDhRP/zwg44cOWKXa3LbbbdpyJAhCg0N1ahRo1SpUiVt2rSpwLYeHh6aOHGiWrVqpZCQEPXr108PP/xwvqKMp6enFi1apEaNGun222/XpEmTNHv2bOXm5iojI0NTpkzRokWL1K1bN9WpU0fR0dF68MEHtWDBggKPGx8fr379+mn48OEKCwtTu3btNHv2bC1dulQXLlzQoUOH9Mknn+i1117TTTfdpJYtW+r111/X+fPnCz3v+Ph4+fv7W5e83kkAAAAAgPycPW3MdTiljMo4OwF7a9Sokdzd3a2Pq1atqj179ti0SUhI0NmzZ/XNN9+oTp06+WI0bdrU5nHVqlWtPTL279+v4OBgmw/4DRs2VEBAgPbv36/WrVurY8eOev3115WTk6PNmzera9euCgoKUlJSkpo2baojR44oIiKi0GNWrVpV0sXhOvXr1y/ahSgktmEYCgoKumwPk1deeUWLFi1SSkqKzp8/r8zMTDVv3tymTbNmzVS2bFnr47Zt2yo9PV0nT55Uenq6zp07py5dutjsk5mZqfDw8AKPuXv3bn333Xc2Q5IsFotyc3N1/PhxHTp0SGXKlFHLli2t2+vXr3/ZiZ7j4uI0cuRI62Oz2UxhBgAAAADgMkpEUcbPz09paWn51p8+fVr+/v426zw8PGweG4ah3Nxcm3U333yzPv74Y7377rsaPXp0vrhXEuNybrnlFp05c0Y7d+7U559/rilTpigoKEgvvviimjVrpmrVqiksLKzQYxrGxTrg5Y7p6+tr12uS55133lFsbKwSEhLUtm1b+fr66r///a+2b99++ZO+RN4wrY8//ljVq1e32WYymQrd5/HHH9ewYcPybatZs6YOHTp0xce/9FiFHQ8AAAAAAGcrEUWZevXq6dNPP823fufOnapbt+5Vx7vxxhsVExOjqKgolSlTRrGxsVe8b4MGDXTy5EmdPHnS2uti3759On36tBo2bChJCggIUNOmTTVnzhx5eHiofv36qly5svr27avV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0fFnz559xW2HDRtWrGMtXbpUffv2zfc+MTMzU++8847Drh/gbEz0C9hZdna23nrrLXXr1s0hM3s3atRIr7/+um666Sa7x54yZYoOHTqkhQsXqkwZ+9dsu3fvLsMwtGrVKmv8/fv369Zbb1WfPn00a9asYh+jevXqDn3T6e/vr+TkZIoyhXD0c2jEiBEymUx68cUX7RazU6dONo937typ7Oxs1atXT5J06NAhubu7q2XLlvrss8+KdazNmzere/fuat++vT7//HPt379fderU0YsvvqhvvvlG77//frHil3RZWVmKiorS/Pnz7f7BNCIiQiNGjNCdd95p17ilXU5Ojvbs2aNatWqpfPnyxYrlyJ+vJJ04cULr169XZmamOnbsWGiBvjgc+Tv+f//7n6ZOnap58+Y5JPfx48frzTff1NatWxUUFCTp4u1iH3nkES1evFj33ntvsY+Rk5OjxYsXa+PGjfr111+Vm5trs70or6F5xfjmzZvrs88+U4UKFWyOt3btWi1YsEAnTpwoVu5r165VXFycnn/+ebVs2VLlypWz2e7n51es+HfeeafuvvtuDRgwoFhxrnX8f77f+e2333Tu3DkFBARIkk6fPq2yZcuqcuXKOnbsWLGO5e7urtTUVFWuXNlm/R9//KHKlSsrJyenWPEBV0VPGVy3Dh8+rE2bNhX4pmHcuHFFjuvov8i++OKLeuaZZxzypu3rr7/Wxo0b9emnn6pJkyb53pB8+OGHxYr/4YcfKjIyUv369dM777yj77//Xp07d1a/fv3s0gNBkh599FFFRkYW+qazuHr16qUVK1ZoxIgRxY51OV988YUWLFigo0eP6v3331f16tX1xhtvKCQkRB06dChSzKVLl15Ru+L8JcrRz6Hs7GwtWrRIGzZsKPBNc1GeR5s2bbLZ39fXV0uWLLF+AP3rr7/08MMP6+abby5W7pI0evRoTZ48WSNHjpSvr691/a233qo5c+YUO36eN954Q/Pnz9fx48e1bds21apVSzNnzlRISEiRixKfffaZYmJi9NVXX+X7cJKWlqZ27dpp/vz5xbpOjuoNJUlDhgzRyJEjdfLkyQKfO02bNi1y7GvZ22rnzp3y8PBQkyZNJEkrV65UYmKiGjZsqAkTJsjT07NY8YcPH64mTZpo4MCBysnJUceOHfXll1+qbNmyWr16tSIiIooc25E/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W9555x1LuXLlLG+//bZl8uTJ1u+LKiYmxtK4cWPL+fPn8207d+6cpXHjxpYnn3yyOKnnc/LkSbu9ZsydO9dSqVIly+TJky3e3t7W17fExERLRESEXY5hsVgsDz30kKV27dqWDz74wJr/+++/bwkJCbH079+/2PF3795tady4scXPz88yYcIE6/qYmBjL/fffX+z4FovF8t5771mmT59uc+0XL15sWbFihV3iWywXf5etXbvWcu7cOYvFYrHk5uYWK55hGP+6uLm52SN1h7npppssCQkJFovFYvM7ePv27Zbq1asXK3ZmZqbl1ltvtfvrjcVisURHR1/xUhw1a9a0vPjii3bKOr/mzZtblixZYrFYbK//zp07LVWqVCl2/IkTJ1rq1KljefPNN21eg9555x3LTTfdVOz4b7zxhqVMmTKWPn36WN/P9unTx+Lh4WFZtmxZseNf6uDBg5aVK1daVq5caTl48GCxYpUvX97y22+/WSwWiyUgIMBSvnz5QpfiOn36tOXZZ5+1eHt7W9q2bWv5/PPPix0TsAeKMrgu1a5du9AlJCTELsdYunSppV27dpaqVataTpw4YbFYLJYZM2YU+01t9+7dLVFRUZY//vjDuu7333+3REVFWW677bZixa5QoYLlwIEDFovF9g3J8ePHLd7e3sWKnRfz+PHjxY7jTAkJCZayZctann32WesbkmeeecZStmxZy/Tp0+1yjNzcXOuH6LwPE15eXpYxY8bYJf6PP/5oeeGFFyyhoaGWqlWrWp555hnL/v377RK7YsWKlk2bNuVb/9lnn1kqVapU7PhVq1a1rFy5Mt/6FStWWKpVq1bs+KXFm2++aQkNDbU+f6pXr25ZuHBhsWL+8ssvlmrVqlmCg4MtL730kmXFihWWFStWWF588UVLcHCwpVq1apZffvml2Lnn5ORYJk6caPHz87O4ublZ3NzcLP7+/pZJkyZZcnJyihy3QYMGlo8++shisdi+vu3Zs8dSsWLFYued5+zZs5bBgwdbTCaTNX9PT0/L4MGDHVLgy3P+/HlLZmamw+Lby++//2659dZbrUWSvJ/Dww8/bBk5cqRDj3327Fm7xTpy5IglJibG0rlzZ0vnzp0tTz75ZLH/MFKuXDnLsWPHLBZL/t/BJpOp2DlXqlTJIUWZa8XX19d6TRzB29vb+h7l0ut/9OhRu1z/G264wbJhw4Z88ffv328JCAgodvz69esX+D4kISHBUr9+/WLHv1RGRoblwIEDlqysrGLHWrx4seXChQsWi+VikXzx4sWFLsXx0ksvWSpUqGBp2LChXQvMgD0wfAnXJUcPL/rn3U/yhswEBARo5syZxeomv3nzZn311VeqUKGCdV3FihX14osvqn379sXKOzc3t8DhPT/++KPN7XuL6tZbb9XmzZvzDcuxp2HDhik0NDTfXZDmzJmjI0eOFPvOJC+//LLmzZtnc9vonj17qlGjRpowYYJdbpVtGIb+85//6JlnntGRI0eUnp6uhg0bFmlOn0u9++67SkxM1ObNm9WtWzclJCTo9ttvt8tdK/KcO3euwCEUlStXLvIEgJf6888/CxxCUb9+/WLfLjbPN998o3fffVcpKSnKzMy02VaUrvfX8nbJefr166d+/frp3LlzSk9Pt5lno6iqVKmirVu3asiQIYqLi7MZvtetWze98sordhk+85///Eevv/66zWvali1bNGHCBF24cEEvvPBCkeIeP3483x1DJMlkMuns2bPFyvlSZcuW1dy5c/Xf//7XOnHzDTfckG8yWHuz5xwMGzdu1MaNGwuctyNvOGhRjRgxQh4eHkpJSbEZTte3b1+NHDlSCQkJxYpfkIyMDL3yyiuaOnVqkSdKv9S6devUs2dPNW/e3Poc3bp1qxo1aqT//e9/6tKlS5HiBgQEKDU1Nd+E8rt27VL16tWLnfeDDz5o/b/lKMePH1d2drbCwsJs1h8+fFgeHh7F+v3v6KHnjhw6LEk//fRTgcM/c3NzrcNli+PYsWPq0aNHvvU9e/bUc889V+z40sXf8U8++aR1frW8IVhPPvmkqlevrtGjR191zEuHLEVHR9slz4KMHj1a3t7eCg0N1ZIlSwqdI644Q+yAoqIog+uexQHzgrz88st67bXX1KtXL5s3P61atVJsbGyxYptMpgLnJUhPTy/WrPSS1LVrV82cOVOvvvqqpIvXJD09XePHj7fL7S27d++u0aNHa8+ePQXescIeY/0/+OCDAieaa9eunV588cViF2VSU1PVrl27AuOnpqYWK/Y/eXp6Wu8kYg/33XefatasqREjRqhKlSo6ceKEXnnllXztinNb77Zt22r8+PFaunSp9UPi+fPnNXHiRLVt27bIcfM0a9ZMc+bM0ezZs23Wz5kzR82aNSt2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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "WizJNF2OmtKE" + }, + "id": "WizJNF2OmtKE", + "execution_count": null, + "outputs": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.7" + }, + "colab": { + "provenance": [], + "machine_shape": "hm", + "gpuType": "A100" + }, + "accelerator": "GPU" + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file